2026-03-19 03:44:34 38d2f28 feat(Data/Nat/Factorization/Defs): more theorems about `f.prod (· ^ ·)` (#36792) ESTIMATED CHANGES Modified Mathlib/Data/Nat/Factorization/Basic.lean - theorem Nat.eq_factorization_iff Modified Mathlib/Data/Nat/Factorization/Defs.lean + theorem Nat.dvd_iff_exists_le_factorization + theorem Nat.dvd_prod_pow_of_factorization_le + theorem Nat.eq_factorization_iff +/- def Nat.factorizationEquiv + theorem Nat.factorization_prod_pow_eq_self_of_le_factorization + theorem Nat.prod_pow_dvd_of_le_factorization +/- theorem Nat.prod_pow_factorization_eq_self Modified Mathlib/Data/Nat/Factorization/Divisors.lean Modified Mathlib/Data/Nat/Factorization/Root.lean Modified Mathlib/Tactic/NormNum/Irrational.lean 2026-03-19 02:11:59 36f4d76 feat(Analysis/InnerProductSpace/Spectrum): eigenspaces of a compact selfadjoint operator exhaust the Hilbert space (#36520) This PR proves that the eigenspaces of a compact self-adjoint operator are finite dimensional and have trivial orthogonal complement. ESTIMATED CHANGES Modified Mathlib/Analysis/InnerProductSpace/Spectrum.lean + theorem ContinuousLinearMap.eq_zero_of_forall_hasEigenvalue_eq_zero + theorem ContinuousLinearMap.finite_dimensional_eigenspace + theorem ContinuousLinearMap.orthogonalComplement_iSup_eigenspaces_eq_bot Modified Mathlib/Analysis/Normed/Group/Submodule.lean + theorem LinearMap.continuous_domRestrict Modified Mathlib/LinearAlgebra/Eigenspace/Basic.lean + theorem Module.End.eigenspace_mem_invtSubmodule + theorem Module.End.genEigenspace_mem_invtSubmodule + theorem Module.End.restrict_eigenspace Modified Mathlib/Topology/Algebra/Module/LinearMap.lean 2026-03-19 01:06:09 9abae7f feat(CStarAlgebra): lemmas related to `CFC.rpow` and `IsStrictlyPositive` (#36784) This PR adds a few lemmas related to `CFC.rpow` for strictly positive elements. Furthermore, it adjusts the arguments of several existing lemmas now that `IsStrictlyPositive` exists, and adds autoparams where appropriate. (I don't think it makes sense to add deprecations here: we really want to keep the same lemma names, and it should be fairly easy to adjust downstream code.) ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/StrictPositivity.lean + theorem Units.isStrictlyPositive_iff + theorem Units.isStrictlyPositive_of_le Modified Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Order.lean Modified Mathlib/Analysis/SpecialFunctions/ContinuousFunctionalCalculus/Rpow/Basic.lean + theorem CFC.inverse_eq_rpow_neg_one + theorem CFC.inverse_rpow +/- theorem CFC.rpow_mul_rpow_neg +/- theorem CFC.rpow_neg_mul_rpow +/- theorem IsStrictlyPositive.nnrpow +/- theorem IsStrictlyPositive.rpow +/- theorem IsStrictlyPositive.sqrt 2026-03-18 23:07:20 de8a06c chore(Combinatorics/SimpleGraph): move `WalkDecomp` and `WalkCounting` to `Walks` (#36819) These lived in `Connectivity` probably because `Walk` was meant to live there. Split `WalkCounting` into `Walks.Counting` for anything that doesn't mention reachability, and `Connectivity.Finite` for anything that does. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Combinatorics/SimpleGraph/AdjMatrix.lean Added Mathlib/Combinatorics/SimpleGraph/Connectivity/Finite.lean + theorem SimpleGraph.ConnectedComponent.card_le_card_of_le + theorem SimpleGraph.ConnectedComponent.odd_oddComponents_ncard_subset_supp + theorem SimpleGraph.disjiUnion_supp_toFinset_eq_supp_toFinset + theorem SimpleGraph.ncard_oddComponents_mono + theorem SimpleGraph.odd_ncard_oddComponents + theorem SimpleGraph.reachable_iff_exists_finsetWalkLength_nonempty Modified Mathlib/Combinatorics/SimpleGraph/Connectivity/Represents.lean Modified Mathlib/Combinatorics/SimpleGraph/LapMatrix.lean Modified Mathlib/Combinatorics/SimpleGraph/Matching.lean Modified Mathlib/Combinatorics/SimpleGraph/Paths.lean Renamed Mathlib/Combinatorics/SimpleGraph/Connectivity/WalkCounting.lean to Mathlib/Combinatorics/SimpleGraph/Walks/Counting.lean - theorem SimpleGraph.ConnectedComponent.card_le_card_of_le - theorem SimpleGraph.ConnectedComponent.odd_oddComponents_ncard_subset_supp - theorem SimpleGraph.disjiUnion_supp_toFinset_eq_supp_toFinset - theorem SimpleGraph.ncard_oddComponents_mono - theorem SimpleGraph.odd_ncard_oddComponents - theorem SimpleGraph.reachable_iff_exists_finsetWalkLength_nonempty Renamed Mathlib/Combinatorics/SimpleGraph/Connectivity/WalkDecomp.lean to Mathlib/Combinatorics/SimpleGraph/Walks/Decomp.lean 2026-03-18 22:42:15 83bd0ba feat: torsion of an affine connection (#36285) We define the torsion tensor of an affine connection, i.e. a covariant derivative on the tangent bundle `TM` of some manifold `M`. Note that we intentionally do not define the torsion tensor for a connection on a set, as we don't know any actual application of that. (It is easy to add in the future, if need ever arises.) From the path towards the the Levi-Civita connection and Riemannian geometry. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Geometry/Manifold/VectorBundle/CovariantDerivative/Torsion.lean + def CovariantDerivative.torsion + theorem CovariantDerivative.torsion_antisymm + theorem CovariantDerivative.torsion_apply + theorem CovariantDerivative.torsion_apply_eq_extend + theorem CovariantDerivative.torsion_eq_zero_iff + theorem CovariantDerivative.torsion_self + theorem IsCovariantDerivativeOn.torsion_antisymm + theorem IsCovariantDerivativeOn.torsion_apply + theorem IsCovariantDerivativeOn.torsion_apply_eq_extend + theorem IsCovariantDerivativeOn.torsion_self Modified Mathlib/Geometry/Manifold/VectorField/LieBracket.lean 2026-03-18 22:07:56 82865a1 feat(Combinatorics/SimpleGraph/LapMatrix): {`adjMatrix`/`degMatrix`/`lapMatrix`} are Hermitian (#36335) Also a small cleanup and golf. This should let us access the eigenvalues of these matrices, for spectral graph theory. ESTIMATED CHANGES Modified Mathlib/Combinatorics/SimpleGraph/AdjMatrix.lean Modified Mathlib/Combinatorics/SimpleGraph/LapMatrix.lean + theorem SimpleGraph.isHermitian_adjMatrix + theorem SimpleGraph.isHermitian_degMatrix + theorem SimpleGraph.isHermitian_lapMatrix 2026-03-18 19:14:54 9ea9209 feat(ProbabilityTheory): Conditional Jensen's Inequality (#27953) This PR adds several variants of the conditional Jensen's inequality. I made some changes to Mathlib/Analysis/Convex/Approximation.lean because I need the sequence of affine functions to be bouneded above at each point in the proof of `conditional_jensen_hereditarilyLindelofSpace`. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Analysis/Convex/Approximation.lean Added Mathlib/MeasureTheory/Function/ConditionalExpectation/CondJensen.lean + theorem AEStronglyMeasurable.norm_condExp_le + theorem ConcaveOn.condExp_map_le + theorem ConcaveOn.condExp_map_le_of_finiteDimensional + theorem ConcaveOn.condExp_map_le_univ + theorem Convex.condExp_mem + theorem ConvexOn.map_condExp_le + theorem ConvexOn.map_condExp_le_of_finiteDimensional + theorem ConvexOn.map_condExp_le_univ Modified Mathlib/MeasureTheory/MeasurableSpace/Constructions.lean + theorem Measurable.codRestrict Modified Mathlib/MeasureTheory/Measure/Restrict.lean + theorem IsCountablySpanning.null_of_forall_inter_null + theorem IsCountablySpanning.null_of_forall_restrict_null + theorem MeasureTheory.Measure.forall_measure_inter_isCountablySpanning_eq_zero Modified Mathlib/MeasureTheory/Measure/Typeclasses/SFinite.lean 2026-03-18 18:48:59 0005884 feat: generalize Hölder's inequality for sums to `Real.HolderTriple` (#35198) Currently the API exists only for `Real.HolderConjugate`. This generalizes it in anticipation of #35197, which implements the Hölder framework for `lp` spaces. ESTIMATED CHANGES Modified Mathlib/Analysis/MeanInequalities.lean + theorem NNReal.Lr_le_Lp_mul_Lq + theorem NNReal.Lr_le_Lp_mul_Lq_tsum + theorem NNReal.Lr_rpow_le_Lp_mul_Lq + theorem NNReal.Lr_rpow_le_Lp_mul_Lq_tsum - theorem NNReal.inner_le_Lp_mul_Lq_tsum' + theorem NNReal.summable_and_Lr_rpow_le_Lp_mul_Lq_tsum + theorem NNReal.summable_and_inner_le_Lp_mul_Lq_tsum + theorem NNReal.summable_mul_rpow_of_Lp_Lq + theorem Real.Lr_le_Lp_mul_Lq_tsum_of_nonneg + theorem Real.Lr_rpow_le_Lp_mul_Lq + theorem Real.Lr_rpow_le_Lp_mul_Lq_of_nonneg + theorem Real.Lr_rpow_le_Lp_mul_Lq_tsum_of_nonneg - theorem Real.inner_le_Lp_mul_Lq_tsum_of_nonneg' + theorem Real.summable_Lr_of_Lp_Lq_of_nonneg + theorem Real.summable_and_Lr_rpow_le_Lp_mul_Lq_tsum_of_nonneg + theorem Real.summable_and_inner_le_Lp_mul_Lq_tsum_of_nonneg Modified Mathlib/Data/Real/ConjExponents.lean + theorem NNReal.HolderTriple.all_pos + theorem Real.HolderTriple.all_pos 2026-03-18 18:34:59 954b5c5 feat: Poisson Integral Formula for harmonic functions (#36278) Establish two versions of the Poisson Integral Formula for harmonic functions on arbitrary disks in the complex plane, formulated with the real part of the Herglotz–Riesz kernel of integration and with the Poisson kernel, respectively. This material is used in [Project VD](https://github.com/kebekus/ProjectVD), formalizing Value Distribution Theory for meromorphic functions on the complex plane. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/Complex/Harmonic/Poisson.lean + theorem InnerProductSpace.HarmonicContOnCl.circleAverage_poissonKernel_smul + theorem InnerProductSpace.HarmonicContOnCl.circleAverage_re_herglotzRieszKernel_smul + theorem InnerProductSpace.HarmonicOnNhd.circleAverage_poissonKernel_smul + theorem InnerProductSpace.HarmonicOnNhd.circleAverage_re_herglotzRieszKernel_smul Modified Mathlib/Analysis/Complex/Poisson.lean + theorem herglotzRieszKernel_fun_def 2026-03-18 18:34:57 fce83a1 feat: introduce canonical factors, a.k.a. "Blaschke factors", as used in complex analysis (#36264) Introduce canonical factors, also known as "Blaschke factors", used in complex analysis when discussing meromorphic functions defined on spheres. This material is used in [Project VD](https://github.com/kebekus/ProjectVD), formalizing Value Distribution Theory for meromorphic functions on the complex plane. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/Complex/CanonicalDecomposition.lean + theorem Complex.analyticOnNhd_canonicalFactor + theorem Complex.canonicalFactor_apply + theorem Complex.canonicalFactor_apply_self + theorem Complex.canonicalFactor_def + theorem Complex.canonicalFactor_ne_zero + theorem Complex.meromorphicNFOn_canonicalFactor + theorem Complex.meromorphicOn_canonicalFactor + theorem Complex.meromorphicOrderAt_canonicalFactor + theorem Complex.norm_canonicalFactor_eval_circle_eq_one 2026-03-18 18:00:55 e7f2949 feat: monotonicity of D^n(U) in n and in U as CLMs (#32401) ESTIMATED CHANGES Modified Mathlib/Analysis/Distribution/ContDiffMapSupportedIn.lean + theorem ContDiffMapSupportedIn.monoCLM_apply + theorem ContDiffMapSupportedIn.monoCLM_eq_of_scalars + theorem ContDiffMapSupportedIn.monoCLM_eq_zero + theorem ContDiffMapSupportedIn.monoLM_apply + theorem ContDiffMapSupportedIn.monoLM_eq_of_scalars + theorem ContDiffMapSupportedIn.monoLM_eq_zero + theorem ContDiffMapSupportedIn.seminorm_monoLM_eq + theorem ContDiffMapSupportedIn.seminorm_monoLM_le Modified Mathlib/Analysis/Distribution/TestFunction.lean + theorem TestFunction.monoCLM_apply + theorem TestFunction.monoCLM_eq_of_scalars + theorem TestFunction.monoCLM_eq_zero 2026-03-18 17:28:42 e90aebb chore: golf using `fin_omega`, `simp_all` and `grind +splitIndPred` (#36509) The goal of this PR is to decrease the number of times lemmas are called explicitly. Any decrease in compilation time is a welcome side effect, although it is not a primary objective. Trace profiling results (differences <30 ms considered measurement noise): * `Fin.lt_sub_iff`: 46 ms before, <30 ms after 🎉 * `ArchimedeanClass.add_left_cancel_of_ne_top`: 134 ms before, <30 ms after 🎉 * `exists_seq_of_forall_finset_exists'`: <30 ms before, 53 ms after * `Filter.hasBasis_biInf_of_directed'`: unchanged 🎉 * `Filter.hasBasis_biInf_of_directed`: <30 ms before, 53 ms after Profiled using `set_option trace.profiler true in`. This PR is batched under the following guidelines: * Up to ~5 changed files per PR * Up to ~25 changed declarations per PR * Up to ~100 changed lines per PR ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Fin/Basic.lean Modified Mathlib/Algebra/Order/Ring/Archimedean.lean Modified Mathlib/Data/Fintype/Basic.lean Modified Mathlib/Geometry/Manifold/Immersion.lean Modified Mathlib/Order/Filter/Bases/Basic.lean 2026-03-18 17:28:40 7bd45ed feat(Algebra): injective dimension equal supremum of localized module (#32033) In this PR, we proved that for module over Noetherian ring, projective dimension is equal to the supremum of injective dimension of localized modules over all prime/maximal ideals. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/RingTheory/LocalProperties/InjectiveDimension.lean + theorem ModuleCat.hasInjectiveDimensionLE_iff_forall_maximalSpectrum + theorem ModuleCat.hasInjectiveDimensionLE_iff_forall_primeSpectrum + theorem ModuleCat.injectiveDimension_eq_iSup_localizedModule_maximal + theorem ModuleCat.injectiveDimension_eq_iSup_localizedModule_prime + theorem ModuleCat.injectiveDimension_le_injectiveDimension_of_isLocalizedModule + theorem ModuleCat.localizedModule_hasInjectiveDimensionLE Modified Mathlib/RingTheory/LocalProperties/ProjectiveDimension.lean 2026-03-18 16:52:49 2f6dd10 feat: added simp lemmas to LieRinehartAlgebra (#36650) This pull request adds simp lemmas for the defining properties of Lie-Rinehart-Algebras. Additionally the definition of anchor is moved out of the Hom namespace. (Even though the anchor itself is a Hom, it is an object associated to an LR-algebra, not a Hom of algebras). ESTIMATED CHANGES Modified Mathlib/Algebra/LieRinehartAlgebra/Defs.lean - def LieRinehartAlgebra.Hom.anchor - theorem LieRinehartAlgebra.Hom.anchor_derivation + theorem LieRinehartAlgebra.LieRinehartRing.leibniz_mul_right + theorem LieRinehartAlgebra.LieRinehartRing.leibniz_smul_right + theorem LieRinehartAlgebra.LieRinehartRing.lie_smul_eq_mul + def LieRinehartAlgebra.anchor + theorem LieRinehartAlgebra.anchor_apply + theorem LieRinehartAlgebra.anchor_derivation 2026-03-18 16:39:37 db0e46b feat(Adjoin/Polynomial/Bivariate): IsAlgebraic.adjoin_singleton (#35874) This PR builds up to the following theorem: - `IsAlgebraic.adjoin_singleton`: Given two transcendental elements `a`, `b` over `R`, if one of them, say `a`, is algebraic over `R[b]` then `b` is algebraic over `R[a]`. In particular, it uses maps between `R[a]` and `R[X]` as well of some of the Bivariate polynomial API. The results are necessary in preparation for the following: Given a function field `K` and `(y : K)` such that `(hy : Transcendental Fq y)` then we have: ``` FiniteDimensional Fq⟮y⟯ K ``` ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Polynomial/Bivariate.lean Added Mathlib/RingTheory/Adjoin/Polynomial/Bivariate.lean + theorem IsAlgebraic.adjoin_singleton + def Polynomial.Bivariate.Transcendental.algEquivAdjoin + theorem Polynomial.Bivariate.Transcendental.algEquivAdjoin_apply + theorem Polynomial.Bivariate.Transcendental.algEquivAdjoin_swap_eq_aeval + theorem Polynomial.Bivariate.aeval_aeval_eq_aeval_algEquivAdjoin 2026-03-18 16:07:29 95636e7 fix: update link to mathlib4 naming conventions (#36812) * Old link: https://github.com/leanprover-community/mathlib4/wiki#naming-convention * (Archived version of old link target: https://github.com/leanprover-community/mathlib4/wiki/Home/176440af993c15719de8f59dd8b4a73241c1669b#naming-convention) * New link: https://leanprover-community.github.io/contribute/naming.html ESTIMATED CHANGES Modified Mathlib/Tactic/Translate/GuessName.lean 2026-03-18 16:07:26 59cb29b chore(IsFractionRing): make argument explicit (#36655) Makes the base ring an explicit argument in `IsFractionRing.div_surjective`. This argument cannot be inferred by typeclass inference, because the base ring is not an `outParam` or `semiOutParam` in the type of `IsFractionRing`. It is also rarely determined by the expected type, since this is typically used as the discriminant for an `obtain` or `rcases`. Also update every usage of `IsFractionRing.div_surjective` to take advantage of this explicit argument. ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/Epi.lean Modified Mathlib/FieldTheory/Galois/IsGaloisGroup.lean Modified Mathlib/NumberTheory/NumberField/Completion/FinitePlace.lean Modified Mathlib/NumberTheory/NumberField/ProductFormula.lean Modified Mathlib/NumberTheory/RamificationInertia/HilbertTheory.lean Modified Mathlib/RingTheory/Invariant/Basic.lean Modified Mathlib/RingTheory/Localization/AsSubring.lean Modified Mathlib/RingTheory/Localization/FractionRing.lean Modified Mathlib/RingTheory/Localization/Integral.lean Modified Mathlib/RingTheory/Valuation/Discrete/Basic.lean Modified Mathlib/RingTheory/Valuation/ValuationRing.lean 2026-03-18 15:36:57 bf010ad feat: ContinuousLinearMap.continuous_of_continuous_uncurry (#36776) If a bilinear map `E × F → G` is jointly continuous, then it defines a continuous linear map `E → F → G`. In other words, a continuous bilinear map is hypocontinuous. The key argument was essentially already present in [ContinuousLinearMap.toSpanSingletonCLE](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Topology/Algebra/Module/StrongTopology.html#ContinuousLinearMap.toSpanSingletonCLE). ESTIMATED CHANGES Modified Mathlib/Topology/Algebra/Module/StrongTopology.lean + theorem ContinuousLinearMap.continuous_of_continuous_uncurry 2026-03-18 15:36:55 8bd4cb1 feat: add `IsUniformEmbedding.of_comp` (#36771) Also deprecate `IsUniformInducing.isUniformInducing_comp_iff` in favor of the existing `IsUniformInducing.of_comp_iff`, which is a more standard name. ESTIMATED CHANGES Modified Mathlib/Topology/Algebra/SeparationQuotient/Section.lean Modified Mathlib/Topology/UniformSpace/Closeds.lean Modified Mathlib/Topology/UniformSpace/UniformEmbedding.lean + theorem IsUniformEmbedding.of_comp 2026-03-18 15:17:46 f86a8b6 refactor(Analysis/Lp): EuclideanSpace.single -> PiLp.single (#36685) Resolving a TODO in the code. This also makes `PiLp.single` the simp-normal form, as opposite to `toLp _ (Pi.single _ _)` that was in the code. ESTIMATED CHANGES Modified Mathlib/Analysis/CStarAlgebra/Matrix.lean Modified Mathlib/Analysis/InnerProductSpace/PiL2.lean +/- theorem EuclideanSpace.ofLp_single - def EuclideanSpace.single +/- theorem EuclideanSpace.toLp_single Modified Mathlib/Analysis/Matrix/Spectrum.lean Modified Mathlib/Analysis/Normed/Lp/PiLp.lean + theorem PiLp.dist_single_same + theorem PiLp.edist_single_same + theorem PiLp.nndist_single_same + theorem PiLp.nnnorm_single +/- theorem PiLp.nnnorm_toLp_single + theorem PiLp.norm_single + theorem PiLp.ofLp_single + def PiLp.single + theorem PiLp.single_add + theorem PiLp.single_apply + theorem PiLp.single_eq_of_ne' + theorem PiLp.single_eq_of_ne + theorem PiLp.single_eq_same + theorem PiLp.single_eq_zero_iff + theorem PiLp.single_neg + theorem PiLp.single_sub + theorem PiLp.toLp_single 2026-03-18 15:17:44 cd71411 feat(Analysis/Lp): simp lemma for LinearMap.det and toLpLin (#36661) Analog to [LinearMap.det_toLin'](https://leanprover-community.github.io/mathlib4_docs/Mathlib/LinearAlgebra/Determinant.html#LinearMap.det_toLin') ESTIMATED CHANGES Modified Mathlib/Analysis/Normed/Lp/Matrix.lean + theorem LinearMap.det_toLpLin 2026-03-18 15:17:42 b8caa95 feat: binomial random variables (#28248) Define the binomial distribution and compute the expectation, variance, conditional variance of a binomial random variable. From MiscYD ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/MeasureTheory/Function/ConditionalExpectation/Basic.lean Modified Mathlib/MeasureTheory/Integral/Bochner/Set.lean + theorem MeasureTheory.integral_eq_setIntegral Modified Mathlib/Order/Filter/Germ/Basic.lean +/- theorem Filter.const_eventuallyEq Modified Mathlib/Probability/CondVar.lean Added Mathlib/Probability/Distributions/Binomial.lean + theorem ProbabilityTheory.ae_le_of_hasLaw_binomial Added Mathlib/Probability/Distributions/TwoValued.lean + theorem MeasureTheory.integral_of_ae_eq_zero_or_one + theorem MeasureTheory.integral_one_sub_of_ae_eq_zero_or_one + theorem ProbabilityTheory.condVar_of_ae_eq_zero_or_one + theorem ProbabilityTheory.variance_of_ae_eq_zero_or_one 2026-03-18 15:04:27 3611c4e feat: differentiation of test function as a CLM (#31809) ESTIMATED CHANGES Modified Mathlib/Analysis/Distribution/TestFunction.lean + theorem TestFunction.fderivCLM_apply + theorem TestFunction.fderivCLM_apply_of_gt + theorem TestFunction.fderivCLM_apply_of_le + theorem TestFunction.fderivCLM_eq_of_scalars + theorem TestFunction.fderivCLM_ofSupportedIn 2026-03-18 13:51:51 369423a refactor(Combinatorics/SimpleGraph): make the vertex argument explicit in `Walk.rotate` (#36800) It is annoying for it not to appear in the infoview. In general, no implicit data argument to a definition should be inferrable only through proof arguments. ESTIMATED CHANGES Modified Mathlib/Combinatorics/SimpleGraph/Connectivity/Connected.lean Modified Mathlib/Combinatorics/SimpleGraph/Connectivity/Subgraph.lean Modified Mathlib/Combinatorics/SimpleGraph/Connectivity/WalkDecomp.lean +/- theorem SimpleGraph.Walk.mem_support_rotate_iff +/- def SimpleGraph.Walk.rotate +/- theorem SimpleGraph.Walk.rotate_darts +/- theorem SimpleGraph.Walk.rotate_edges +/- theorem SimpleGraph.Walk.support_rotate Modified Mathlib/Combinatorics/SimpleGraph/Hamiltonian.lean Modified Mathlib/Combinatorics/SimpleGraph/Matching.lean Modified Mathlib/Combinatorics/SimpleGraph/Paths.lean 2026-03-18 13:09:14 41280ad feat(ModularForms): (normalized) derivative of modular forms (#36405) Derivative of modular forms, stems from [Sphere Packing project](https://github.com/thefundamentaltheor3m/Sphere-Packing-Lean). The major goal is two-fold: prove Ramanujan's identities and also prove that Serre derivative preserves modularity (first uses second). ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/NumberTheory/ModularForms/Derivative.lean + def Derivative.normalizedDerivOfComplex + theorem Derivative.normalizedDerivOfComplex_add + theorem Derivative.normalizedDerivOfComplex_const + theorem Derivative.normalizedDerivOfComplex_mdifferentiable + theorem Derivative.normalizedDerivOfComplex_mul + theorem Derivative.normalizedDerivOfComplex_neg + theorem Derivative.normalizedDerivOfComplex_pow + theorem Derivative.normalizedDerivOfComplex_smul + theorem Derivative.normalizedDerivOfComplex_sub + def Derivative.serreDerivative + theorem Derivative.serreDerivative_add + theorem Derivative.serreDerivative_apply + theorem Derivative.serreDerivative_eq + theorem Derivative.serreDerivative_mdifferentiable + theorem Derivative.serreDerivative_mul + theorem Derivative.serreDerivative_smul + theorem Derivative.serreDerivative_sub 2026-03-18 12:31:41 a28e611 feat(Algebra/Order/Floor/Ring): generalize `Int.abs_sub_lt_one_of_floor_eq_floor` (#36805) This PR weakens the `CommRing R` assumption on `Int.abs_sub_lt_one_of_floor_eq_floor` into `Ring R`. ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Floor/Ring.lean +/- theorem Int.abs_sub_lt_one_of_floor_eq_floor 2026-03-18 12:31:39 614a290 chore(Algebra/SkewMonoidAlgebra/Basic): generalize lemmas from Monoid to Mul (#36737) ESTIMATED CHANGES Modified Mathlib/Algebra/SkewMonoidAlgebra/Basic.lean 2026-03-18 12:31:37 b459ce1 feat: `IsCofinal s` implies `IsCofinal (f '' s)` (#36715) ESTIMATED CHANGES Modified Mathlib/Order/Cofinal.lean + theorem GaloisConnection.isCofinal_range - theorem GaloisConnection.map_cofinal + theorem GaloisConnection.map_isCofinal + theorem IsCofinal.image - theorem OrderIso.map_cofinal + theorem OrderIso.map_isCofinal Modified Mathlib/SetTheory/Cardinal/Cofinality.lean 2026-03-18 12:31:35 f114902 chore(Algebra/Group/InjSurj): clean up instances (#36413) This PR give a bit of speedup by cleaning up some `Function.Injective.` and `Function.Surjective.` instances. The main point is to put the arguments in the correct order in `{ ..., ... with }`, matching the order of the `extends` clause. ESTIMATED CHANGES Modified Mathlib/Algebra/Group/InjSurj.lean 2026-03-18 11:57:02 4b627f0 chore(CategoryTheory): Remove `erw` and `respectTransparency` (#36801) Remove `erw` and `respectTransparency` in `imageSubobjectMap_arrow`. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Subobject/Limits.lean 2026-03-18 11:57:01 82b3f55 feat(Algebra/MonoidAlgebra): explicit conversion functions to/from `Finsupp` (#36762) Introduce `coeff : R[M] → M →₀ R` and `ofCoeff : (M →₀ R) → R[M]` as a way to convert explicitly between `MonoidAlgebra` and `Finsupp` and thus avoid defeq abuse. These will be used more widely in future PRs. ESTIMATED CHANGES Modified Mathlib/Algebra/MonoidAlgebra/Defs.lean + def MonoidAlgebra.coeff + def MonoidAlgebra.coeffAddEquiv + def MonoidAlgebra.coeffEquiv + theorem MonoidAlgebra.coeff_add + theorem MonoidAlgebra.coeff_eq_zero + theorem MonoidAlgebra.coeff_finsuppSum + theorem MonoidAlgebra.coeff_inj + theorem MonoidAlgebra.coeff_injective + theorem MonoidAlgebra.coeff_neg + theorem MonoidAlgebra.coeff_ofCoeff + theorem MonoidAlgebra.coeff_smul + theorem MonoidAlgebra.coeff_sub + theorem MonoidAlgebra.coeff_sum + theorem MonoidAlgebra.coeff_zero + def MonoidAlgebra.ofCoeff + theorem MonoidAlgebra.ofCoeff_add + theorem MonoidAlgebra.ofCoeff_coeff + theorem MonoidAlgebra.ofCoeff_eq_zero + theorem MonoidAlgebra.ofCoeff_finsuppSum + theorem MonoidAlgebra.ofCoeff_inj + theorem MonoidAlgebra.ofCoeff_injective + theorem MonoidAlgebra.ofCoeff_neg + theorem MonoidAlgebra.ofCoeff_smul + theorem MonoidAlgebra.ofCoeff_sub + theorem MonoidAlgebra.ofCoeff_sum + theorem MonoidAlgebra.ofCoeff_zero + theorem MonoidAlgebra.«exists» + theorem MonoidAlgebra.«forall» Modified Mathlib/Algebra/MvPolynomial/Basic.lean Modified Mathlib/Algebra/Polynomial/Laurent.lean 2026-03-18 10:19:58 f3f9265 perf(RingTheory/Ideal/Quotient/HasFiniteQuotients): fix the `HasFiniteQuotients` instance (#36535) This instance was removed in #36395 for performance reasons. This PR restores the instance in a form that is more performant. ESTIMATED CHANGES Modified Mathlib/RingTheory/Ideal/Quotient/HasFiniteQuotients.lean 2026-03-18 10:19:55 0647c6e chore(Topology): rename lim -> Filter.lim and limUnder -> Filter.limUnder, and make a lemma protected (#36522) Add the namespace `Filter` to `lim` and `limUnder`, since the docstring for `lim` suggests that they were never intended to be placed in the namespace. Also make `MeasureTheory.StronglyMeasurable.limUnder` protected, to allow its proof to refer to `Filter.limUnder` as `limUnder`. See discussion here: https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Rename.20lim.20to.20Filter.2Elim.3F/with/578862980 ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Constructions/Polish/StronglyMeasurable.lean - theorem MeasureTheory.StronglyMeasurable.limUnder Modified Mathlib/MeasureTheory/Function/FactorsThrough.lean Modified Mathlib/Topology/Defs/Filter.lean 2026-03-18 09:33:20 fe4b012 feat(MeasureTheory): add `continuousWithinAt_Ici/Iic_primitive_Ioi/Iio` and `continuousOn_Ici/Iic_primitive_Ioi/Iio/Ici/Iic` (#34966) This PR proves: - `continuousWithinAt_Ici/Iic_primitive_Ioi/Iio` - `continuousOn_Ici/Iic_primitive_Ioi/Iio/Ici/Iic` - `integral_Ioi_sub_Ioi`, `integral_Ioi_sub_Ioi'`, `integral_Iio_sub_Iio`, `integral_Iio_sub_Iio'` - `Ioi_diff_Ioc` ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Integral/Bochner/Set.lean + theorem MeasureTheory.integral_Ico_eq_integral_Ioc Modified Mathlib/MeasureTheory/Integral/DominatedConvergence.lean + theorem MeasureTheory.IntegrableOn.continuousOn_Ici_primitive_Ici + theorem MeasureTheory.IntegrableOn.continuousOn_Ici_primitive_Ioi + theorem MeasureTheory.IntegrableOn.continuousOn_Iic_primitive_Iic + theorem MeasureTheory.IntegrableOn.continuousOn_Iic_primitive_Iio + theorem MeasureTheory.IntegrableOn.continuousWithinAt_Ici_primitive_Ioi + theorem MeasureTheory.IntegrableOn.continuousWithinAt_Iic_primitive_Iio Modified Mathlib/MeasureTheory/Integral/IntervalIntegral/Basic.lean + theorem intervalIntegral.integral_Iio_sub_Iio' + theorem intervalIntegral.integral_Iio_sub_Iio + theorem intervalIntegral.integral_Ioi_sub_Ioi' + theorem intervalIntegral.integral_Ioi_sub_Ioi Modified Mathlib/Order/Interval/Set/LinearOrder.lean + theorem Set.Ioi_diff_Ioc 2026-03-18 09:21:07 2352820 feat: processes with independent increments (#36718) Define a predicate stating that a stochastic process has independent increments. Prove an equivalent definition using sequences instead of `Fin`. Prove some basic invariance properties. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Probability/Distributions/Gaussian/IsGaussianProcess/Independence.lean Modified Mathlib/Probability/Independence/BoundedContinuousFunction.lean Renamed Mathlib/Probability/Independence/Process.lean to Mathlib/Probability/Independence/Process/Basic.lean Added Mathlib/Probability/Independence/Process/HasIndepIncrements.lean + theorem ProbabilityTheory.HasIndepIncrements.indepFun_eval_sub + theorem ProbabilityTheory.HasIndepIncrements.indepFun_sub_sub + def ProbabilityTheory.HasIndepIncrements + theorem ProbabilityTheory.hasIndepIncrements_iff_nat 2026-03-18 09:00:56 db6b41a doc(AlgebraicTopology/DoldKan): fix typos (#36765) Issues were spotted and fixed by Codex. ESTIMATED CHANGES Modified Mathlib/AlgebraicTopology/DoldKan/Compatibility.lean Modified Mathlib/AlgebraicTopology/DoldKan/Equivalence.lean Modified Mathlib/AlgebraicTopology/DoldKan/EquivalencePseudoabelian.lean 2026-03-18 08:30:55 30ea316 chore: replace `aesop` with `grind` where the latter is significantly faster (#35947) This experiment investigates the impact of replacing particularly heavy `aesop` calls with `grind`, specifically how this change affects the instruction count as measured by the benchmarking infrastructure. Trace profiling results (differences <30 ms considered measurement noise): * `Submonoid.mem_closure_image_one_lt_iff`: 125 ms before, 61 ms after 🎉 * `SimpleGraph.Connected.connected_delete_edge_of_not_isBridge`: 230 ms before, 51 ms after 🎉 * `SimpleGraph.Subgraph.IsMatching.exists_of_disjoint_sets_of_equiv`: 899 ms before, 666 ms after 🎉 * `SimpleGraph.IsCycles.existsUnique_ne_adj`: 855 ms before, 599 ms after 🎉 * `SimpleGraph.Walk.IsPath.isCycles_spanningCoe_toSubgraph_sup_edge`: 962 ms before, 619 ms after 🎉 * `SimpleGraph.IsAlternating.sup_edge`: 2854 ms before, 1615 ms after 🎉 * `SimpleGraph.Subgraph.IsPerfectMatching.symmDiff_of_isAlternating`: 3103 ms before, 1734 ms after 🎉 * `SimpleGraph.edgeSet_replaceVertex_of_not_adj`: 1525 ms before, 933 ms after 🎉 * `SimpleGraph.edgeSet_replaceVertex_of_adj`: 2194 ms before, 1605 ms after 🎉 * `SimpleGraph.tutte_exists_isPerfectMatching_of_near_matchings`: 3161 ms before, 1652 ms after 🎉 * `RootPairing.Base.sub_notMem_range_root`: 1025 ms before, 978 ms after 🎉 * `RootPairing.EmbeddedG2.mem_allRoots`: 3832 ms before, 3255 ms after 🎉 * `RootSystem.GeckConstruction.Lemmas.0.RootPairing.chainBotCoeff_mul_chainTopCoeff.aux_2`: 3572 ms before, 2631 ms after 🎉 * `isCompact_generateFrom`: 1987 ms before, 763 ms after 🎉 * `IsCompactOpenCovered.of_isCompact_of_forall_exists_isCompactOpenCovered`: 2279 ms before, 2009 ms after 🎉 * `UniformContinuousOn.comp_tendstoUniformly_eventually`: 416 ms before, 151 ms after 🎉 Profiled using `set_option trace.profiler true in`. ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Irreducible/Indecomposable.lean Modified Mathlib/Combinatorics/SimpleGraph/Connectivity/Connected.lean Modified Mathlib/Combinatorics/SimpleGraph/Matching.lean Modified Mathlib/Combinatorics/SimpleGraph/Operations.lean Modified Mathlib/Combinatorics/SimpleGraph/Tutte.lean Modified Mathlib/LinearAlgebra/RootSystem/Base.lean Modified Mathlib/LinearAlgebra/RootSystem/Finite/G2.lean Modified Mathlib/LinearAlgebra/RootSystem/GeckConstruction/Lemmas.lean Modified Mathlib/Topology/Compactness/Compact.lean Modified Mathlib/Topology/Sets/CompactOpenCovered.lean Modified Mathlib/Topology/UniformSpace/UniformConvergenceTopology.lean 2026-03-18 07:57:00 2749d58 feat(NumberTheory/RatFunc/Ostrowski): prove Ostrowski's theorem for K(X) (#30505) We prove Ostrowski's theorem for the field of rational functions `K(X)`, where `K` is any field. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/FieldTheory/RatFunc/AsPolynomial.lean +/- theorem Polynomial.valuation_eq_valuation_X_pow_natDegree_of_one_lt_valuation_X + theorem RatFunc.coePolynomial_eq_algebraMap Modified Mathlib/FieldTheory/RatFunc/Degree.lean + theorem RatFunc.intDegree_div Modified Mathlib/NumberTheory/FunctionField.lean Added Mathlib/NumberTheory/RatFunc/Ostrowski.lean + theorem RatFunc.adicValuation_ne_inftyValuation + theorem RatFunc.adicValuation_not_isEquiv_infty_valuation + theorem RatFunc.exists_zpow_uniformizingPolynomial + theorem RatFunc.irreducible_min_polynomial_valuation_lt_one_and_ne_zero + theorem RatFunc.setOf_polynomial_valuation_lt_one_and_ne_zero_nonempty + theorem RatFunc.uniformizingPolynomial_isUniformizer + theorem RatFunc.uniformizingPolynomial_ne_zero + def RatFunc.valuationIdeal + theorem RatFunc.valuation_eq_valuation_X_zpow_intDegree_of_one_lt_valuation_X + theorem RatFunc.valuation_eq_valuation_uniformizingPolynomial_pow_of_valuation_X_le_one + theorem RatFunc.valuation_isEquiv_adic_of_not_isEquiv_infty + theorem RatFunc.valuation_isEquiv_adic_of_valuation_X_le_one + theorem RatFunc.valuation_isEquiv_inftyValuation_of_one_lt_valuation_X + theorem RatFunc.valuation_isEquiv_infty_or_adic + theorem RatFunc.valuation_isEquiv_valuationIdeal_adic_of_valuation_X_le_one + theorem RatFunc.valuation_uniformizingPolynomial_lt_one Modified docs/1000.yaml 2026-03-18 05:54:56 034c50c feat(Data/Nat/Factorization/Divisors): calculate divisors using prime factorization (#34554) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Data/Nat/Factorization/Divisors.lean + theorem Nat.Iic_factorization_prod_pow_injective + theorem Nat.Iio_factorization_prod_pow_injective + theorem Nat.coe_divisors_eq_prod_pow_le_factorization + theorem Nat.coe_properDivisors_eq_prod_pow_lt_factorization + theorem Nat.divisors_eq_image_Iic_factorization_prod_pow + theorem Nat.divisors_eq_map_attach_Iic_factorization_prod_pow + theorem Nat.properDivisors_eq_image_Iio_factorization_prod_pow + theorem Nat.properDivisors_eq_map_attach_Iio_factorization_prod_pow 2026-03-18 05:00:03 6d1799a chore: remove 712 more `set_option backward.isDefEq.respectTransparency` (#36791) These are just the ones that are freely removable because of earlier fixes. ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/Subalgebra/Basic.lean Modified Mathlib/Algebra/Algebra/Subalgebra/IsSimpleOrder.lean Modified Mathlib/Algebra/Algebra/Subalgebra/Rank.lean Modified Mathlib/Algebra/Category/MonCat/FilteredColimits.lean Modified Mathlib/Algebra/Category/Ring/Under/Limits.lean Modified Mathlib/Algebra/Homology/Additive.lean Modified Mathlib/Algebra/Homology/SpectralObject/Homology.lean Modified Mathlib/Algebra/Module/Congruence/Defs.lean Modified Mathlib/AlgebraicGeometry/AffineTransitionLimit.lean Modified Mathlib/Analysis/Normed/Affine/AddTorsorBases.lean Modified Mathlib/Analysis/Normed/Field/Krasner.lean Modified Mathlib/Analysis/Normed/Module/Basic.lean Modified Mathlib/Analysis/Normed/Ring/Lemmas.lean Modified Mathlib/Analysis/Normed/Ring/WithAbs.lean Modified Mathlib/Analysis/Normed/Unbundled/AlgebraNorm.lean Modified Mathlib/Analysis/Normed/Unbundled/IsPowMulFaithful.lean Modified Mathlib/Analysis/Normed/Unbundled/SpectralNorm.lean Modified Mathlib/CategoryTheory/Abelian/GrothendieckCategory/ColimCoyoneda.lean Modified Mathlib/CategoryTheory/Action/Basic.lean Modified Mathlib/CategoryTheory/Action/Continuous.lean Modified Mathlib/CategoryTheory/Adjunction/Basic.lean Modified Mathlib/CategoryTheory/Comma/Arrow.lean Modified Mathlib/CategoryTheory/Comma/Over/Basic.lean Modified Mathlib/CategoryTheory/Core.lean Modified Mathlib/CategoryTheory/Equivalence.lean Modified Mathlib/CategoryTheory/Limits/ConeCategory.lean Modified Mathlib/CategoryTheory/Limits/Constructions/EventuallyConstant.lean Modified Mathlib/CategoryTheory/Limits/Constructions/Over/Connected.lean Modified Mathlib/CategoryTheory/Limits/Final.lean Modified Mathlib/CategoryTheory/Limits/IsLimit.lean Modified Mathlib/CategoryTheory/Limits/Over.lean Modified Mathlib/CategoryTheory/Limits/Preserves/Basic.lean Modified Mathlib/CategoryTheory/Limits/Preserves/Bifunctor.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Equalizers.lean Modified Mathlib/CategoryTheory/Limits/Shapes/IsTerminal.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Multiequalizer.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Pullback/PullbackCone.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Reflexive.lean Modified Mathlib/CategoryTheory/Limits/Shapes/WideEqualizers.lean Modified Mathlib/CategoryTheory/Limits/Sifted.lean Modified Mathlib/CategoryTheory/Limits/VanKampen.lean Modified Mathlib/CategoryTheory/Monoidal/CommGrp_.lean Modified Mathlib/CategoryTheory/Monoidal/CommMon_.lean Modified Mathlib/CategoryTheory/Monoidal/FunctorCategory.lean Modified Mathlib/CategoryTheory/Monoidal/Grp_.lean Modified Mathlib/CategoryTheory/Monoidal/Limits/Colimits.lean Modified Mathlib/CategoryTheory/Monoidal/Mon_.lean Modified Mathlib/CategoryTheory/Monoidal/Transport.lean Modified Mathlib/CategoryTheory/MorphismProperty/Limits.lean Modified Mathlib/CategoryTheory/MorphismProperty/OfObjectProperty.lean Modified Mathlib/CategoryTheory/Opposites.lean Modified Mathlib/CategoryTheory/PUnit.lean Modified Mathlib/CategoryTheory/Pi/Basic.lean Modified Mathlib/CategoryTheory/Products/Basic.lean Modified Mathlib/CategoryTheory/Sites/CoversTop.lean Modified Mathlib/CategoryTheory/Sites/Equivalence.lean Modified Mathlib/CategoryTheory/Sites/IsSheafFor.lean Modified Mathlib/CategoryTheory/Sites/Sheaf.lean Modified Mathlib/CategoryTheory/Sites/Sieves.lean Modified Mathlib/CategoryTheory/SmallObject/Iteration/FunctorOfCocone.lean Modified Mathlib/CategoryTheory/SmallObject/TransfiniteCompositionLifting.lean Modified Mathlib/CategoryTheory/Subobject/MonoOver.lean Modified Mathlib/Data/NNReal/Defs.lean Modified Mathlib/FieldTheory/AbelRuffini.lean Modified Mathlib/FieldTheory/AlgebraicClosure.lean Modified Mathlib/FieldTheory/AxGrothendieck.lean Modified Mathlib/FieldTheory/CardinalEmb.lean Modified Mathlib/FieldTheory/Differential/Basic.lean Modified Mathlib/FieldTheory/Differential/Liouville.lean Modified Mathlib/FieldTheory/Extension.lean Modified Mathlib/FieldTheory/Galois/Abelian.lean Modified Mathlib/FieldTheory/Galois/Basic.lean Modified Mathlib/FieldTheory/Galois/GaloisClosure.lean Modified Mathlib/FieldTheory/Galois/Infinite.lean Modified Mathlib/FieldTheory/Galois/IsGaloisGroup.lean Modified Mathlib/FieldTheory/Galois/Profinite.lean Modified Mathlib/FieldTheory/IntermediateField/Adjoin/Algebra.lean Modified Mathlib/FieldTheory/IntermediateField/Adjoin/Basic.lean Modified Mathlib/FieldTheory/IntermediateField/Adjoin/Defs.lean Modified Mathlib/FieldTheory/IntermediateField/Algebraic.lean Modified Mathlib/FieldTheory/IntermediateField/Basic.lean Modified Mathlib/FieldTheory/IsAlgClosed/AlgebraicClosure.lean Modified Mathlib/FieldTheory/IsAlgClosed/Classification.lean Modified Mathlib/FieldTheory/Isaacs.lean Modified Mathlib/FieldTheory/KrullTopology.lean Modified Mathlib/FieldTheory/Minpoly/Basic.lean Modified Mathlib/FieldTheory/Minpoly/IsIntegrallyClosed.lean Modified Mathlib/FieldTheory/Normal/Basic.lean Modified Mathlib/FieldTheory/Normal/Closure.lean Modified Mathlib/FieldTheory/Normal/Defs.lean Modified Mathlib/FieldTheory/NormalizedTrace.lean Modified Mathlib/FieldTheory/PrimitiveElement.lean Modified Mathlib/FieldTheory/PurelyInseparable/Basic.lean Modified Mathlib/FieldTheory/PurelyInseparable/PerfectClosure.lean Modified Mathlib/FieldTheory/PurelyInseparable/Tower.lean Modified Mathlib/FieldTheory/RatFunc/AsPolynomial.lean Modified Mathlib/FieldTheory/RatFunc/Luroth.lean Modified Mathlib/FieldTheory/Relrank.lean Modified Mathlib/FieldTheory/Separable.lean Modified Mathlib/FieldTheory/SeparableClosure.lean Modified Mathlib/FieldTheory/SeparableDegree.lean Modified Mathlib/FieldTheory/SeparablyGenerated.lean Modified Mathlib/FieldTheory/SplittingField/IsSplittingField.lean Modified Mathlib/Geometry/Euclidean/PerpBisector.lean Modified Mathlib/Geometry/Euclidean/Projection.lean Modified Mathlib/Geometry/Euclidean/Sphere/OrthRadius.lean Modified Mathlib/Geometry/Euclidean/Sphere/Tangent.lean Modified Mathlib/Geometry/Manifold/VectorBundle/CovariantDerivative/Basic.lean Modified Mathlib/LinearAlgebra/AffineSpace/AffineSubspace/Basic.lean Modified Mathlib/LinearAlgebra/AffineSpace/AffineSubspace/Defs.lean Modified Mathlib/LinearAlgebra/AffineSpace/Basis.lean Modified Mathlib/LinearAlgebra/AffineSpace/FiniteDimensional.lean Modified Mathlib/LinearAlgebra/AffineSpace/Matrix.lean Modified Mathlib/LinearAlgebra/CliffordAlgebra/Even.lean Modified Mathlib/LinearAlgebra/CliffordAlgebra/EvenEquiv.lean Modified Mathlib/LinearAlgebra/Dimension/Constructions.lean Modified Mathlib/LinearAlgebra/Dimension/FreeAndStrongRankCondition.lean Modified Mathlib/LinearAlgebra/FiniteDimensional/Basic.lean Modified Mathlib/LinearAlgebra/FiniteDimensional/Lemmas.lean Modified Mathlib/LinearAlgebra/FreeAlgebra.lean Modified Mathlib/LinearAlgebra/JordanChevalley.lean Modified Mathlib/LinearAlgebra/TensorAlgebra/Basic.lean Modified Mathlib/LinearAlgebra/TensorProduct/Quotient.lean Modified Mathlib/LinearAlgebra/TensorProduct/Subalgebra.lean Modified Mathlib/LinearAlgebra/TensorProduct/Submodule.lean Modified Mathlib/NumberTheory/ClassNumber/FunctionField.lean Modified Mathlib/NumberTheory/Cyclotomic/Basic.lean Modified Mathlib/NumberTheory/Cyclotomic/Discriminant.lean Modified Mathlib/NumberTheory/Cyclotomic/PrimitiveRoots.lean Modified Mathlib/NumberTheory/FunctionField.lean Modified Mathlib/NumberTheory/KummerDedekind.lean Modified Mathlib/NumberTheory/MahlerMeasure.lean Modified Mathlib/NumberTheory/NumberField/Basic.lean Modified Mathlib/NumberTheory/NumberField/CMField.lean Modified Mathlib/NumberTheory/NumberField/Cyclotomic/Basic.lean Modified Mathlib/NumberTheory/NumberField/Ideal/Basic.lean Modified Mathlib/NumberTheory/NumberField/InfinitePlace/TotallyRealComplex.lean Modified Mathlib/NumberTheory/NumberField/Norm.lean Modified Mathlib/NumberTheory/Padics/PadicVal/Defs.lean Modified Mathlib/NumberTheory/RamificationInertia/Galois.lean Modified Mathlib/NumberTheory/RamificationInertia/HilbertTheory.lean Modified Mathlib/Probability/Distributions/Gaussian/Multivariate.lean Modified Mathlib/RepresentationTheory/FiniteIndex.lean Modified Mathlib/RepresentationTheory/Homological/GroupCohomology/FiniteCyclic.lean Modified Mathlib/RepresentationTheory/Homological/GroupHomology/FiniteCyclic.lean Modified Mathlib/RingTheory/AdicCompletion/Algebra.lean Modified Mathlib/RingTheory/Adjoin/Field.lean Modified Mathlib/RingTheory/Adjoin/PowerBasis.lean Modified Mathlib/RingTheory/Adjoin/Tower.lean Modified Mathlib/RingTheory/AdjoinRoot.lean Modified Mathlib/RingTheory/Algebraic/Basic.lean Modified Mathlib/RingTheory/Algebraic/Defs.lean Modified Mathlib/RingTheory/Algebraic/Integral.lean Modified Mathlib/RingTheory/Algebraic/MvPolynomial.lean Modified Mathlib/RingTheory/AlgebraicIndependent/AlgebraicClosure.lean Modified Mathlib/RingTheory/AlgebraicIndependent/Basic.lean Modified Mathlib/RingTheory/AlgebraicIndependent/RankAndCardinality.lean Modified Mathlib/RingTheory/AlgebraicIndependent/TranscendenceBasis.lean Modified Mathlib/RingTheory/AlgebraicIndependent/Transcendental.lean Modified Mathlib/RingTheory/Artinian/Algebra.lean Modified Mathlib/RingTheory/DedekindDomain/Basic.lean Modified Mathlib/RingTheory/DedekindDomain/IntegralClosure.lean Modified Mathlib/RingTheory/EssentialFiniteness.lean Modified Mathlib/RingTheory/Etale/Field.lean Modified Mathlib/RingTheory/Etale/QuasiFinite.lean Modified Mathlib/RingTheory/Extension/Presentation/Core.lean Modified Mathlib/RingTheory/Filtration.lean Modified Mathlib/RingTheory/Flat/Basic.lean Modified Mathlib/RingTheory/Flat/Equalizer.lean Modified Mathlib/RingTheory/Ideal/GoingUp.lean Modified Mathlib/RingTheory/Ideal/Pure.lean Modified Mathlib/RingTheory/Ideal/Quotient/Nilpotent.lean Modified Mathlib/RingTheory/Ideal/Quotient/Operations.lean Modified Mathlib/RingTheory/IntegralClosure/Algebra/Basic.lean Modified Mathlib/RingTheory/IntegralClosure/Algebra/Ideal.lean Modified Mathlib/RingTheory/IntegralClosure/IntegralRestrict.lean Modified Mathlib/RingTheory/IntegralClosure/IntegrallyClosed.lean Modified Mathlib/RingTheory/IntegralClosure/IsIntegral/AlmostIntegral.lean Modified Mathlib/RingTheory/IntegralClosure/IsIntegral/Basic.lean Modified Mathlib/RingTheory/IntegralClosure/IsIntegralClosure/Basic.lean Modified Mathlib/RingTheory/Invariant/Profinite.lean Modified Mathlib/RingTheory/IsAdjoinRoot.lean Modified Mathlib/RingTheory/LinearDisjoint.lean Modified Mathlib/RingTheory/LocalProperties/IntegrallyClosed.lean Modified Mathlib/RingTheory/Localization/AsSubring.lean Modified Mathlib/RingTheory/Localization/Integral.lean Modified Mathlib/RingTheory/Localization/Submodule.lean Modified Mathlib/RingTheory/MvPolynomial/Localization.lean Modified Mathlib/RingTheory/Norm/Basic.lean Modified Mathlib/RingTheory/Norm/Transitivity.lean Modified Mathlib/RingTheory/NormalClosure.lean Modified Mathlib/RingTheory/Polynomial/GaussLemma.lean Modified Mathlib/RingTheory/Polynomial/IsIntegral.lean Modified Mathlib/RingTheory/Polynomial/Tower.lean Modified Mathlib/RingTheory/QuasiFinite/Basic.lean Modified Mathlib/RingTheory/ReesAlgebra.lean Modified Mathlib/RingTheory/RootsOfUnity/AlgebraicallyClosed.lean Modified Mathlib/RingTheory/Smooth/Field.lean Modified Mathlib/RingTheory/Smooth/IntegralClosure.lean Modified Mathlib/RingTheory/Smooth/NoetherianDescent.lean Modified Mathlib/RingTheory/TensorProduct/DirectLimitFG.lean Modified Mathlib/RingTheory/TensorProduct/Finite.lean Modified Mathlib/RingTheory/TensorProduct/Quotient.lean Modified Mathlib/RingTheory/Trace/Basic.lean Modified Mathlib/RingTheory/Unramified/Field.lean Modified Mathlib/RingTheory/Unramified/LocalStructure.lean Modified Mathlib/RingTheory/Valuation/AlgebraInstances.lean Modified Mathlib/RingTheory/Valuation/LocalSubring.lean Modified Mathlib/RingTheory/ZariskisMainTheorem.lean Modified Mathlib/Topology/Algebra/Valued/WithVal.lean Modified Mathlib/Topology/Category/LightProfinite/AsLimit.lean Modified Mathlib/Topology/ContinuousMap/Algebra.lean Modified Mathlib/Topology/Sheaves/Skyscraper.lean 2026-03-18 03:37:05 553b79e feat(Tactic/FastInstance): skip mkAuxTheorem for proof fields when types agree at instances transparency (#36717) This PR improves how \`fast_instance%\` handles proof-valued constructor fields. Previously, proof fields were always wrapped in \`mkAuxTheorem\`, which creates a separate auxiliary theorem carrying the expected type. This is unnecessary when the proof's actual type already agrees with the expected type at instances transparency — in that case the proof can be assigned directly. The new behaviour: check whether the proof's type agrees with the expected type at instances transparency. If yes, assign directly. If no (indicating a binder type mismatch), wrap with \`mkAuxTheorem\` as before. This is a natural analogue of the data-field binder type checking that \`fast_instance%\` already performs, applied to proof fields. 🤖 Prepared with Claude Code ESTIMATED CHANGES Modified Mathlib/Tactic/FastInstance.lean Modified MathlibTest/fast_instance.lean 2026-03-18 02:22:06 f156f7a feat(Computability.Primrec.List): add primrec proofs for drop, takeWhile, and dropWhile (#36473) This PR adds missing proofs that several standard `List` operations are primitive recursive (Primrec), as well as a basic property of `tail` and `drop`. Specifically, it introduces: * `List.tail_iterate`: Applying `tail` to a list `n` times is equivalent to dropping `n` elements. * `Primrec.list_drop`: `List.drop` is primitive recursive. * `Primrec.list_take`: `List.take` is primitive recursive. * `Primrec.list_takeWhile`: `List.takeWhile` is primitive recursive. * `Primrec.list_dropWhile`: `List.dropWhile` is primitive recursive. These are basic computability properties for lists that were currently missing from `Mathlib.Computability.Primrec.List`. All proofs use standard combinators and `of_eq`. ESTIMATED CHANGES Modified Mathlib/Computability/Primrec/List.lean + theorem Primrec.list_drop + theorem Primrec.list_dropWhile + theorem Primrec.list_take + theorem Primrec.list_takeWhile Modified Mathlib/Data/List/TakeDrop.lean + theorem List.tail_iterate 2026-03-18 00:45:18 316a037 doc(SetTheory/Ordinal/Arithmetic): improve documentation (#35858) This PR does the following: - Use better variable names in the docs (instead of just variants of the letter `o`). - Remove mentions of things defined in other files, or specify that they are defined on other files. ESTIMATED CHANGES Modified Mathlib/SetTheory/Ordinal/Arithmetic.lean 2026-03-17 23:30:13 bce0198 chore: mark `toSubfield`, `toSubmodule`, `toSubring` as `reducible` (#36395) This PR marks `IntermediateField.toSubfield`, `Subalgebra.toSubring` and `Subalgebra.toSubmodule` as `implicit_reducible`, because these are all used to construct instances on substructures, and hence need to be reducible when unifying type classes. This allows removing at least 100 backwards compatability flags (possibly more because I haven't checked these exhaustively) ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/Subalgebra/Basic.lean Modified Mathlib/Algebra/Algebra/Subalgebra/Lattice.lean Modified Mathlib/FieldTheory/IntermediateField/Adjoin/Basic.lean +/- theorem IntermediateField.finrank_bot' Modified Mathlib/FieldTheory/IntermediateField/Basic.lean Modified Mathlib/FieldTheory/LinearDisjoint.lean Modified Mathlib/RingTheory/DedekindDomain/LinearDisjoint.lean Modified Mathlib/RingTheory/Ideal/Quotient/HasFiniteQuotients.lean Modified Mathlib/RingTheory/LinearDisjoint.lean Modified Mathlib/RingTheory/TensorProduct/Basic.lean 2026-03-17 23:30:11 c0ae7a0 feat: Nat/Int casts on char two rings (#34622) ESTIMATED CHANGES Modified Mathlib/Algebra/CharP/Two.lean + theorem CharTwo.intCast_cases + theorem CharTwo.intCast_eq_ite + theorem CharTwo.intCast_eq_mod + theorem CharTwo.natCast_cases + theorem CharTwo.natCast_eq_ite + theorem CharTwo.natCast_eq_mod + theorem CharTwo.ofNat_eq_mod + theorem CharTwo.range_intCast + theorem CharTwo.range_natCast +/- theorem CharTwo.two_eq_zero Modified Mathlib/Data/Set/Insert.lean + theorem Set.range_ite_const 2026-03-17 22:36:03 f04df22 feat(SetTheory/Ordinal/Basic): the `#s`-th element of `α` is an upper-bound for the set's mex (#36539) This is a translation of `card_typein_min_le_mk` to be in terms of `α`. ESTIMATED CHANGES Modified Mathlib/AlgebraicGeometry/Properties.lean Modified Mathlib/Data/Set/Basic.lean + theorem Set.compl_ssubset_univ +/- theorem Set.not_top_subset + theorem Set.not_univ_subset + theorem Set.ssubset_univ_iff_nonempty_compl Modified Mathlib/SetTheory/Ordinal/Basic.lean + theorem Ordinal.not_lt_enum_ord_mk_min_compl + theorem Ordinal.ord_mk_le_type + theorem Ordinal.ord_mk_lt_type +/- theorem Ordinal.type_fintype 2026-03-17 21:22:10 ce78b47 feat(SimpleGraph): taking twice from a walk equals taking the minimum (#35292) this is an analogue to `List.take_take`. ESTIMATED CHANGES Modified Mathlib/Combinatorics/SimpleGraph/Walks/Operations.lean + theorem SimpleGraph.Walk.take_take 2026-03-17 20:24:08 58f63c6 feat(Analysis/Normed): Schauder basis definition and characterization via projections (#34209) A Schauder basis is a fundamental concept in functional analysis, providing a way to represent every element of a Banach space as a unique convergent series. This PR adds the core structures, some theorems necessary to work with these bases and a characterization of a Schauder basis using projections. This PR is based on Chapter 1. from Albiac, F., & Kalton, N. J. (2016). Topics in Banach Space Theory. This is a first PR in a series of three aiming for Eberlein-Smulyan Theorem. The next one will contain theory of basic sequences and the final one will contain a proof of Eberlein-Smulyan Theorem using basic sequences. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/Normed/Module/Bases.lean + theorem GeneralSchauderBasis.finrank_range_proj + theorem GeneralSchauderBasis.linearIndependent + def GeneralSchauderBasis.proj + theorem GeneralSchauderBasis.proj_apply + theorem GeneralSchauderBasis.proj_apply_basis_mem + theorem GeneralSchauderBasis.proj_comp + theorem GeneralSchauderBasis.proj_empty + theorem GeneralSchauderBasis.range_proj_eq_span + theorem GeneralSchauderBasis.tendsto_proj + structure GeneralSchauderBasis + def SchauderBasis.RankOneDecomposition.basis + def SchauderBasis.RankOneDecomposition.basisCoeff + theorem SchauderBasis.RankOneDecomposition.basisCoeff_spec + theorem SchauderBasis.RankOneDecomposition.basis_coe + theorem SchauderBasis.RankOneDecomposition.basis_proj + theorem SchauderBasis.RankOneDecomposition.exists_coeff + structure SchauderBasis.RankOneDecomposition + theorem SchauderBasis.bddAbove_range_nnnorm_proj + theorem SchauderBasis.enorm_proj_le_enormProjBound + theorem SchauderBasis.exists_norm_proj_le + theorem SchauderBasis.finrank_range_proj + theorem SchauderBasis.finrank_range_succSub_eq_one + theorem SchauderBasis.nnnorm_proj_le_nnnormProjBound + theorem SchauderBasis.norm_proj_le_nnnormProjBound + def SchauderBasis.proj + theorem SchauderBasis.proj_apply + theorem SchauderBasis.proj_apply_basis_mem + theorem SchauderBasis.proj_comp + theorem SchauderBasis.proj_zero + theorem SchauderBasis.range_proj_eq_span + def SchauderBasis.succSub + theorem SchauderBasis.succSub_ortho + theorem SchauderBasis.sum_succSub + theorem SchauderBasis.tendsto_proj + theorem UnconditionalSchauderBasis.bddAbove_range_nnnorm_proj + theorem UnconditionalSchauderBasis.enorm_proj_le_enormProjBound + theorem UnconditionalSchauderBasis.exists_norm_proj_le + theorem UnconditionalSchauderBasis.nnnorm_proj_le_nnnormProjBound + theorem UnconditionalSchauderBasis.norm_proj_le_nnnormProjBound Modified docs/references.bib 2026-03-17 19:40:12 d99fdfb feat(CategoryTheory/ObjectProperty/Kernels): Object properties of (co)kernels (#36481) Introduce two object properties `kernels` and `cokernels` as well as predicates `IsClosedUnderKernels` and `IsClosedUnderCokernels`. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/ObjectProperty/Kernels.lean + inductive CategoryTheory.MorphismProperty.cokernels + inductive CategoryTheory.MorphismProperty.kernels + theorem CategoryTheory.ObjectProperty.hasColimit_parallelPair_comp_ι + theorem CategoryTheory.ObjectProperty.hasLimit_parallelPair_comp_ι + theorem CategoryTheory.ObjectProperty.prop_cokernel + theorem CategoryTheory.ObjectProperty.prop_kernel + theorem CategoryTheory.ObjectProperty.prop_of_isColimit_cokernelCofork + theorem CategoryTheory.ObjectProperty.prop_of_isLimit_kernelFork 2026-03-17 19:12:20 5160b96 feat(Mathlib/Analysis/Asymptotics/Defs): congr lemmas for IsBigO* (#35745) This PR primarily provides two calculational lemmas that are commonly used in bounding functions. First, it provides `IsBigO*.sum_congr`. This theorem allows the user to bound each term of a (finite) sum individually. This is different than `IsBigO.sum` which requires all terms to be bound by the _same_ function. Second, it provides `IsBigO*.sum_congr'`. This theorem allows the user to bound the terms of a sum individually _when the length of the sum changes with respect to the running variable_. This is a common setup with certain techniques such as the method of the hyperbola. Note: This makes the overall length of this file go above 1500 lines. I'm happy to break it up at the request of reviewers, but that's a bigger change to the API. AI Usage: Looking up various lemma names in Google Gemini. ESTIMATED CHANGES Modified Mathlib/Analysis/Asymptotics/Defs.lean + theorem Asymptotics.IsBigO.add_add + theorem Asymptotics.IsBigO.sum_congr' + theorem Asymptotics.IsBigO.sum_congr + theorem Asymptotics.IsBigOWith.add_add + theorem Asymptotics.IsBigOWith.sum_congr' + theorem Asymptotics.IsBigOWith.sum_congr + theorem Asymptotics.IsLittleO.sum_congr' + theorem Asymptotics.IsLittleO.sum_congr 2026-03-17 18:33:23 1c7e491 feat(Analysis/CStarAlgebra/Unitary): left multiplication by a unitary as a linear isometric equivalence (#36319) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Module/Equiv/Basic.lean + def Units.mulLeftLinearEquiv + theorem Units.mulLeftLinearEquiv_apply + theorem Units.mulLeftLinearEquiv_mul_apply + theorem Units.mulLeftLinearEquiv_trans_mulLeftLinearEquiv + def Units.mulRightLinearEquiv + theorem Units.mulRightLinearEquiv_apply + theorem Units.mulRightLinearEquiv_mul_apply + theorem Units.mulRightLinearEquiv_trans_mulRightLinearEquiv + theorem Units.symm_mulLeftLinearEquiv + theorem Units.symm_mulLeftLinearEquiv_apply + theorem Units.symm_mulRightLinearEquiv + theorem Units.symm_mulRightLinearEquiv_apply + theorem Units.toEquiv_mulLeftLinearEquiv + theorem Units.toEquiv_mulRightLinearEquiv + theorem Units.toLinearMap_mulLeftLinearEquiv + theorem Units.toLinearMap_mulRightLinearEquiv Added Mathlib/Analysis/CStarAlgebra/Unitary/Maps.lean + theorem Unitary.mulLeft_apply + theorem Unitary.mulLeft_mul_apply + theorem Unitary.mulLeft_trans_mulLeft + theorem Unitary.mulRight_apply + theorem Unitary.mulRight_mul_apply + theorem Unitary.mulRight_one + theorem Unitary.mulRight_trans_mulRight + theorem Unitary.symm_mulLeft + theorem Unitary.symm_mulLeft_apply + theorem Unitary.symm_mulRight + theorem Unitary.symm_mulRight_apply + theorem Unitary.toLinearEquiv_mulLeft + theorem Unitary.toLinearEquiv_mulRight + theorem Unitary.toLinearMap_mulRight 2026-03-17 17:53:13 310419d feat: f is lowersemicontinuous iff -f is uppersemicontinuous (#36598) Proved that a function `f` is lowersemicontinuous iff `-f` is uppersemicontinuous. Also changed the hypothesis of `upperSemicontinuousOn_iff_preimage_Iio` from LinearOrder to Preorder. Used in the proof of conditional Jensen's inequality for concave functions. ESTIMATED CHANGES Modified Mathlib/Topology/Semicontinuity/Basic.lean + theorem lowerSemiContinuous_inv_iff + theorem lowerSemicontinuouAt_inv_iff + theorem lowerSemicontinuousOn_inv_iff + theorem lowerSemicontinuousWithinAt_inv_iff + theorem upperSemiContinuous_inv_iff + theorem upperSemicontinuousAt_inv_iff +/- theorem upperSemicontinuousOn_iff_preimage_Ici +/- theorem upperSemicontinuousOn_iff_preimage_Iio + theorem upperSemicontinuousOn_inv_iff + theorem upperSemicontinuousWithinAt_inv_iff 2026-03-17 16:51:07 ba09c9e feat(MeasureTheory/Analysis): the Fourier coefficients of a function can be computed by integrating over a box (#34636) The main result proved in this PR is `integral_preimage`, which is the analogue of the one-dimensional result: [UnitAddCircle.integral_preimage](https://leanprover-community.github.io/mathlib4_docs/Mathlib/MeasureTheory/Integral/IntervalIntegral/Periodic.html#UnitAddCircle.integral_preimage). This theorem allows us to compute an integral over UnitAddTorus as an integral over a box in the Euclidean space. As an application, I prove that the Fourier coefficients of a function can be computed by integrating over a box. The main motivation for this PR is the higher dimensional Poisson summation formula, which is needed in the [Sphere Packing project](https://github.com/thefundamentaltheor3m/Sphere-Packing-Lean). ESTIMATED CHANGES Modified Mathlib/Analysis/Fourier/AddCircleMulti.lean + theorem UnitAddTorus.coe_measurableEquivPiIoc + theorem UnitAddTorus.coe_measurableEquivPiIoc_apply + theorem UnitAddTorus.coe_symm_measurableEquivPiIoc + theorem UnitAddTorus.coe_symm_measurableEquivPiIoc_apply + theorem UnitAddTorus.integral_preimage + theorem UnitAddTorus.lintegral_preimage + theorem UnitAddTorus.mFourierCoeff_eq_integral + def UnitAddTorus.measurableEquivPiIoc + theorem UnitAddTorus.measurePreserving_equivPiIoc Modified Mathlib/MeasureTheory/MeasurableSpace/Constructions.lean + theorem MeasurableSet.univ_pi' Modified Mathlib/MeasureTheory/MeasurableSpace/Embedding.lean + def MeasurableEquiv.subtypePiEquivPi 2026-03-17 16:36:52 3acef9d feat: relax type class assumption on T% elaborator (#36767) Mathematically this isn’t super relevant, but the current setup does not allow to use this elaborator in very foundational lemmas that do not require a `FiberBundle` instance. This is blocking progress on connections. ESTIMATED CHANGES Modified Mathlib/Geometry/Manifold/Notation.lean Modified MathlibTest/DifferentialGeometry/Notation/Basic.lean 2026-03-17 15:35:02 42da4bc feat(RingTheory): `Extension.CotangentSpace` commutes with base change (#35594) From Pi1. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/RingTheory/Extension/Basic.lean Added Mathlib/RingTheory/Extension/Cotangent/BaseChange.lean + def Algebra.Extension.tensorCotangentSpace + theorem Algebra.Extension.tensorCotangentSpace_tmul + theorem Algebra.Extension.tensorCotangentSpace_tmul_tmul Modified Mathlib/RingTheory/Extension/Cotangent/Basic.lean + theorem Algebra.Extension.CotangentSpace.map_tmul_eq_tmul_map + theorem Algebra.Extension.exact_hCotangentι_cotangentComplex 2026-03-17 14:50:59 ea9c914 doc(CategoryTheory/Triangulated/Yoneda): Add stacks tag 0149 (#36766) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Triangulated/Yoneda.lean 2026-03-17 14:50:57 2d78c61 feat(Analysis/Calculus/Deriv/Star): a formula for `deriv (conj ∘ f ∘ conj)` (#26881) Added a lemma that `deriv (conj ∘ f ∘ conj) = conj ∘ deriv f ∘ conj`, proved by cases on whether the derivative mathematically exists or not. This PR replaces [#26805](https://github.com/leanprover-community/mathlib4/pull/26805); see discussion there. ESTIMATED CHANGES Modified Mathlib/Analysis/Calculus/Deriv/Star.lean + theorem DifferentiableAt.star_conj + theorem deriv_conj_conj + theorem deriv_star_conj + theorem differentiableAt_conj_conj_iff + theorem differentiableAt_star_conj_iff + theorem hasDerivAt_conj_conj_iff + theorem hasDerivAt_star_conj_iff 2026-03-17 14:29:49 73bce7a chore: replace long terminal `rw […]`:s (≥5 lemmas) with bare `simp`:s (#36640) The goal of this PR is to decrease the number of times lemmas are called explicitly. Any decrease in compilation time is a welcome side effect, although it is not a primary objective. Trace profiling results (differences <30 ms considered measurement noise): * `CategoryTheory.Functor.reflectsMonomorphisms.of_iso`: unchanged 🎉 * `CategoryTheory.Functor.reflectsEpimorphisms.of_iso`: unchanged 🎉 * `Orientation.oangle_add_right_smul_rotation_pi_div_two`: unchanged 🎉 * `Equiv.Perm.IsCycle.sign`: unchanged 🎉 * `sdiff_sdiff_right`: unchanged 🎉 * `dvd_coeff_zero_of_aeval_eq_prime_smul_of_minpoly_isEisensteinAt`: unchanged 🎉 Profiled using `set_option trace.profiler true in`. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Functor/EpiMono.lean Modified Mathlib/Geometry/Euclidean/Angle/Oriented/RightAngle.lean Modified Mathlib/GroupTheory/Perm/Cycle/Basic.lean Modified Mathlib/Order/BooleanAlgebra/Basic.lean Modified Mathlib/RingTheory/Polynomial/Eisenstein/IsIntegral.lean 2026-03-17 14:29:47 9b6d0a3 feat(Data/Nat): formula for cardinal of finsuppAntidiag on Nat (#36166) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Order/Antidiag/FinsuppEquiv.lean + theorem Finset.card_finsuppAntidiag_nat_eq_choose + theorem Finset.card_finsuppAntidiag_nat_eq_multichoose + theorem Finset.count_coe_finsuppAntidiagEquiv_apply + theorem Finset.finsuppAntidiagEquiv_symm_apply_apply 2026-03-17 14:09:13 a33a82b chore(README.md): fix bors logo 404 (#36761) ESTIMATED CHANGES Modified README.md 2026-03-17 13:42:39 be8e750 chore: golf proofs (#36024) The goal of this PR is to decrease the number of times lemmas are called explicitly (replacing calls to lemmas with calls to tactics). Any decrease in compilation time is a welcome side effect, although it is not a primary objective. Trace profiling results (differences <30 ms considered measurement noise): * `Fin.coe_sub_one`: unchanged 🎉 * `LieAlgebra.engel_isBot_of_isMin.lieCharpoly_coeff_natDegree`: 66 ms before, 35 ms after 🎉 * `WithTop.mul_lt_mul`: unchanged 🎉 * `CFC.spectrum_nonempty`: unchanged 🎉 * `ODE.hasDerivWithinAt_picard_Icc`: unchanged 🎉 * `Matrix.vecMul_injective_iff_isUnit`: 240 ms before, 68 ms after 🎉 * `MeasureTheory.SimpleFunc.measure_preimage_lt_top_of_memLp`: unchanged 🎉 * `Polynomial.content_eq_gcd_range_of_lt`: unchanged 🎉 * `RingHom.finiteType_isStableUnderBaseChange`: 163 ms before, 49 ms after 🎉 * `RingHom.Flat.holdsForLocalizationAway`: 91 ms before, <30 ms after 🎉 Profiled using `set_option trace.profiler true in`. ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Fin/Basic.lean Modified Mathlib/Algebra/Lie/CartanExists.lean Modified Mathlib/Algebra/Order/Ring/WithTop.lean Modified Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Instances.lean Modified Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Order.lean Modified Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Unital.lean Modified Mathlib/Analysis/ODE/PicardLindelof.lean Modified Mathlib/LinearAlgebra/Matrix/NonsingularInverse.lean Modified Mathlib/MeasureTheory/Function/SimpleFuncDenseLp.lean Modified Mathlib/RingTheory/Polynomial/Content.lean Modified Mathlib/RingTheory/RingHom/FiniteType.lean Modified Mathlib/RingTheory/RingHom/Flat.lean 2026-03-17 13:22:00 d86a5de chore(AlgebraicGeometry): unsqueeze terminal `simp`:s (`simp only […]` to `simp`) (#36290) The goal of this PR is to decrease the number of times lemmas are called explicitly. Any decrease in compilation time is a welcome side effect, although it is not a primary objective. Trace profiling results (differences <30 ms considered measurement noise): * `AlgebraicGeometry.IsClosedImmersion.Spec_iff`: 141 ms before, 108 ms after 🎉 * `AlgebraicGeometry.ProjIsoSpecTopComponent.FromSpec.carrier.denom_notMem`: unchanged 🎉 Profiled using `set_option trace.profiler true in`. ESTIMATED CHANGES Modified Mathlib/AlgebraicGeometry/Morphisms/ClosedImmersion.lean Modified Mathlib/AlgebraicGeometry/ProjectiveSpectrum/Scheme.lean 2026-03-17 12:17:50 d81f18c feat: more API for Function.IsPartialInv (#36471) This also renames some lemmas to enable dot notation. ESTIMATED CHANGES Modified Mathlib/Data/Set/Finite/Basic.lean Modified Mathlib/Logic/Encodable/Basic.lean + theorem Encodable.decode₂_isPartialInv - theorem Encodable.decode₂_is_partial_inv Modified Mathlib/Logic/Function/Basic.lean + theorem Function.Injective.isPartialInv + theorem Function.IsPartialInv.comp + theorem Function.IsPartialInv.eq + theorem Function.IsPartialInv.get_eq + theorem Function.IsPartialInv.injective + theorem Function.IsPartialInv.surjective_getD - theorem Function.injective_of_isPartialInv - theorem Function.isPartialInv_left - theorem Function.partialInv_of_injective 2026-03-17 12:17:49 51ac54b feat(CategoryTheory/Monoidal): the left adjoint of a lax monoidal functor is oplax monoidal (#36470) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Monoidal/Functor.lean + def CategoryTheory.Adjunction.laxMonoidalEquivOplaxMonoidal + def CategoryTheory.Adjunction.leftAdjointOplaxMonoidal 2026-03-17 12:17:47 95f726a feat(Algebra/Category/ModuleCat/Presheaf): the pushforward by a functor is monoidal (#36457) If `F : C ⥤ D` is a functor and `R : Dᵒᵖ ⥤ CommRingCat` is a presheaf of commutative rings, then the pushforward functor from the category of presheaves of modules on `R` to the category of presheaves of modules on `F.op ⋙ R` is monoidal. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Category/ModuleCat/Presheaf/Pushforward.lean Added Mathlib/Algebra/Category/ModuleCat/Presheaf/PushforwardZeroMonoidal.lean 2026-03-17 12:17:45 60d7069 feat(FieldTheory/Galois/IsGaloisGroup): Galois groups for quotients by normal subgroups (#36391) Assume `G `is a finite Galois group for `L/K`, `N ⊴ G` is normal, and `F = Fix(N)`. This PR proves: - `G ⧸ N` acts on `F` via `(g.N) • x := g • x` as a `MulSemiringAction`. Under `SMulCommClass G K L`, it is also `SMulCommClass (G ⧸ N) K F` - instance `quotient` : `IsGaloisGroup (G ⧸ N) K F` — the quotient group is a Galois group for the intermediate extension `F/K`. - theorem `quotientMap` under the hypothesis ` E ≤ F`: `IsGaloisGroup (H.map (QuotientGroup.mk' N)) E F` — if `H` is the Galois group for `L/E`, the image of `H` under the quotient map is a Galois group for `F/E`. ESTIMATED CHANGES Modified Mathlib/FieldTheory/Galois/IsGaloisGroup.lean + theorem IsGaloisGroup.coe_quotient_smul + theorem IsGaloisGroup.quotientMap + theorem IsGaloisGroup.smul_eq_self + theorem IsGaloisGroup.smul_mem_of_normal 2026-03-17 12:17:43 196ebbc feat(NumberTheory/NumberField/Discriminant/Basic): define the root discriminant (#36317) This PR adds the definition of the root discriminant of a number field. ESTIMATED CHANGES Modified Mathlib/NumberTheory/NumberField/Discriminant/Basic.lean + theorem NumberField.rootDiscr_def + theorem NumberField.rootDiscr_rat 2026-03-17 12:17:41 c271878 feat(DedekindDomain/Factorization): add `iInf` version of `finprod_heightOneSpectrum_factorization` (#35539) This PR adds an `iInf` version of `finprod_heightOneSpectrum_factorization`. This requires two lemmas: - `prod_eq_iInf_of_coprime` - An `iInf` version of `mul_eq_inf_of_coprime`. - `HeightOneSpectrum.pow_sup_pow_eq_top` - Bundled up version of `Ideal.IsMaximal.coprime_of_ne` + `Ideal.pow_sup_pow_eq_top` for `HeightOneSpectrum`. ESTIMATED CHANGES Modified Mathlib/Algebra/Module/DedekindDomain.lean Modified Mathlib/RingTheory/DedekindDomain/Factorization.lean + theorem Ideal.iInf_maxPowDividing_eq Modified Mathlib/RingTheory/DedekindDomain/Ideal/Lemmas.lean + theorem IsDedekindDomain.HeightOneSpectrum.inf_pow_eq_prod + theorem IsDedekindDomain.HeightOneSpectrum.isCoprime_of_ne + theorem IsDedekindDomain.HeightOneSpectrum.isCoprime_pow_of_ne + def IsDedekindDomain.HeightOneSpectrum.quotientEquivPiOfProdEq + theorem IsDedekindDomain.inf_pow_eq_prod_of_prime - theorem IsDedekindDomain.inf_prime_pow_eq_prod + def IsDedekindDomain.quotientEquivPiFactors + def IsDedekindDomain.quotientEquivPiOfFinsetProdEq + def IsDedekindDomain.quotientEquivPiOfProdEq Modified Mathlib/RingTheory/Ideal/Operations.lean + theorem Ideal.mul_eq_inf_of_isCoprime + theorem Ideal.prod_eq_iInf_of_pairwise_isCoprime Modified Mathlib/RingTheory/Ideal/Quotient/Operations.lean 2026-03-17 11:40:40 265b8e2 feat: define pullbacks of `HeightOneSpectrum` (#36137) ESTIMATED CHANGES Modified Mathlib/RingTheory/DedekindDomain/Ideal/Lemmas.lean + def IsDedekindDomain.HeightOneSpectrum.under 2026-03-17 11:40:38 a47bc60 chore(Algebra): make `TensorProduct.equivOfCompatibleSMul` more linear (#35643) ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/TensorProduct/Associator.lean + theorem TensorProduct.CompatibleSMul.of_algebraMap_surjective Modified Mathlib/LinearAlgebra/TensorProduct/Basic.lean +/- def TensorProduct.equivOfCompatibleSMul - def TensorProduct.mapOfCompatibleSMul' +/- def TensorProduct.mapOfCompatibleSMul +/- theorem TensorProduct.mapOfCompatibleSMul_surjective +/- theorem TensorProduct.mapOfCompatibleSMul_tmul Modified Mathlib/RingTheory/Coalgebra/TensorProduct.lean Modified Mathlib/RingTheory/LinearDisjoint.lean Modified Mathlib/RingTheory/Localization/BaseChange.lean Modified Mathlib/RingTheory/Smooth/Fiber.lean Modified Mathlib/RingTheory/TensorProduct/Maps.lean +/- def Algebra.TensorProduct.equivOfCompatibleSMul - def Algebra.TensorProduct.mapOfCompatibleSMul' +/- def Algebra.TensorProduct.mapOfCompatibleSMul +/- theorem Algebra.TensorProduct.mapOfCompatibleSMul_surjective +/- theorem Algebra.TensorProduct.mapOfCompatibleSMul_tmul Modified Mathlib/RingTheory/TensorProduct/Nontrivial.lean 2026-03-17 11:27:08 ea243b7 feat(GroupTheory/Nilpotent): remove `[IsNilpotent]` assumption from some theorems (#36093) This PR uses the junk value of `nilpotencyClass` to remove `[IsNilpotent]` assumption from some theorems. ESTIMATED CHANGES Modified Mathlib/GroupTheory/Nilpotent.lean +/- theorem nilpotencyClass_le_of_upperCentralSeries_eq +/- theorem upperCentralSeries.StrictMonoOn +/- theorem upperCentralSeries.card_image_eq_of_le_nilpotencyClass 2026-03-17 11:07:13 1aee957 chore: remove some `set_option linter.flexible false` (#36747) Trace profiling results (differences <30 ms considered measurement noise): * `ContMDiff.inl`: unchanged 🎉 * `HasMFDerivWithinAt.prodMap`: 1052 ms before, 944 ms after 🎉 * `cmp_swap`: unchanged 🎉 ESTIMATED CHANGES Modified Mathlib/Geometry/Manifold/ContMDiff/Constructions.lean Modified Mathlib/Geometry/Manifold/MFDeriv/SpecificFunctions.lean Modified Mathlib/Order/Compare.lean 2026-03-17 11:07:11 4a1f4fc feat: delaborators for `MDifferentiable(On)` (#36318) And make a precise list which elaborators are missing delaborators at the moment. Continuation of #36230. ESTIMATED CHANGES Modified Mathlib/Geometry/Manifold/Notation.lean Modified MathlibTest/DifferentialGeometry/Notation/Delaborators.lean Modified MathlibTest/DifferentialGeometry/Notation/Sphere.lean 2026-03-17 10:49:02 c33c89c chore(Data): remove some `set_option linter.flexible false` (#36751) ESTIMATED CHANGES Modified Mathlib/Data/Nat/Digits/Defs.lean Modified Mathlib/Data/Nat/Digits/Lemmas.lean Modified Mathlib/Data/Num/Lemmas.lean Modified Mathlib/Data/Rat/Cast/CharZero.lean Modified Mathlib/Data/Set/Prod.lean Modified Mathlib/Data/WSeq/Basic.lean 2026-03-17 10:09:41 6e77ee2 feat(Algebra/Homology/SpectralObject): homology of the differentials (#36182) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Homology/SpectralObject/Homology.lean + theorem CategoryTheory.Abelian.SpectralObject.dCokernelSequence_exact + theorem CategoryTheory.Abelian.SpectralObject.dKernelSequence_exact + theorem CategoryTheory.Abelian.SpectralObject.map_fourδ₁Toδ₀_EMap_fourδ₄Toδ₃ 2026-03-17 09:03:47 609a4e8 chore(Algebra/Group/End): golf `MulAut.conj` (#36713) ESTIMATED CHANGES Modified Mathlib/Algebra/Group/End.lean 2026-03-17 08:07:25 6d0b430 feat(Tactic/Linter): add unicode linter for unicode variant-selectors (#35412) This PR continues the work from #17129. Original PR: https://github.com/leanprover-community/mathlib4/pull/17129 ESTIMATED CHANGES Modified Mathlib/GroupTheory/GroupExtension/Defs.lean Modified Mathlib/Lean/MessageData/Trace.lean Modified Mathlib/Tactic/DefEqAbuse.lean Modified Mathlib/Tactic/Hint.lean Modified Mathlib/Tactic/Linter/TextBased.lean +/- def Mathlib.Linter.TextBased.UnicodeLinter.findBadUnicodeAux + def Mathlib.Linter.TextBased.removeQuotations Modified Mathlib/Tactic/Linter/TextBased/UnicodeLinter.lean Modified Mathlib/Tactic/Widget/Calc.lean Modified Mathlib/Tactic/Widget/CongrM.lean Modified Mathlib/Tactic/Widget/Conv.lean Modified Mathlib/Tactic/Widget/GCongr.lean Modified MathlibTest/LintStyle.lean Modified MathlibTest/hint.lean Modified MathlibTest/hintAll.lean 2026-03-17 07:13:30 b7a438f feat(RingTheory): lemmas about power of maximal ideal (#36101) This adds `IsMaximal.mul_mem_pow` that generalizes `Ideal.IsPrime.mul_mem_pow ` from (IsPrime + IsDedekindDomain) to IsMaximal (Except for the trivial bot case, which is why the prime version is kept) Also added a related `Quotient.isUnit_mk_pow_iff_notMem` for determining units in a quotient by power Disclosure of AI usage: this was produced when I chat with LLM for certain exercise problems, and I identified these small lemmas that can be implemented. Also asked LLM for some hints for idea. Code entirely written by me ESTIMATED CHANGES Modified Mathlib/RingTheory/DedekindDomain/Ideal/Lemmas.lean Modified Mathlib/RingTheory/Ideal/Operations.lean + theorem Ideal.IsMaximal.exists_inv_pow + theorem Ideal.IsMaximal.mem_pow_mul + theorem Ideal.IsMaximal.mul_mem_pow Modified Mathlib/RingTheory/Ideal/Quotient/Nilpotent.lean + theorem Ideal.Quotient.isUnit_mk_pow_iff_isUnit_mk + theorem Ideal.Quotient.isUnit_mk_pow_iff_notMem 2026-03-17 07:00:48 34ad346 doc: correct the LLM-hallucinated reference (#36755) ```lean4 /-- For a prime `p`, a ℚ-linear combination `∑_{i < p} αᵢ ζⁱ` vanishes if and only if all coefficients `αᵢ` are equal. This follows from the irreducibility of the `p`-th cyclotomic polynomial. See Washington, *Introduction to Cyclotomic Fields*, Lemma 2.8.5. -/ lemma sum_eq_zero_iff_forall_eq (hp : p.Prime) (hζ : IsPrimitiveRoot ζ p) (α : Fin p → ℚ) : ``` This lemma was introduced in #34592. According to the author's other PRs (especially #34578), #34592 seems to have been generated by LLM. This docstring references Lemma 2.8.5 in "Washington, Introduction to Cyclotomic Fields". I checked it on Springer, and found that there is no Lemma 2.8.5. According to the author's last comment in #34578 and @bryangingechen 's check in this PR, the correct reference is "de Launey–Flannery, Algebraic Design Theory". So, I correct this LLM-hallucination reference, but I keep the lemma itself since it may be useful. (I don't know much about cyclotomic fields) ESTIMATED CHANGES Modified Mathlib/RingTheory/Polynomial/Cyclotomic/Roots.lean 2026-03-17 04:09:13 3cdc026 doc(Computability): fix misnamed theorems (#36753) ESTIMATED CHANGES Modified Mathlib/Computability/PartrecCode.lean 2026-03-17 01:22:16 4106ea7 doc(CategoryTheory): fix typos (#36588) Found by `PyCharm`'s code inspection tool. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Adhesive/Basic.lean Modified Mathlib/CategoryTheory/Adhesive/Subobject.lean Modified Mathlib/CategoryTheory/Bicategory/Yoneda.lean Modified Mathlib/CategoryTheory/Monoidal/Cartesian/GrpLimits.lean Modified Mathlib/CategoryTheory/Preadditive/AdditiveFunctor.lean Modified Mathlib/CategoryTheory/RegularCategory/Basic.lean Modified Mathlib/CategoryTheory/Sites/Hypercover/One.lean Modified Mathlib/CategoryTheory/Sites/SheafOfTypes.lean Modified Mathlib/CategoryTheory/Triangulated/TStructure/TruncLEGT.lean 2026-03-17 00:27:40 a997c5f feat(Tactic/DefEqAbuse): disambiguate identical-sides isDefEq failures (#36048) This PR adds automatic disambiguation for `#defeq_abuse` failures where both sides render identically at default pp settings (e.g. `⊤ =?= ⊤` or `Quiver C =?= Quiver C`). These arise from instance diamonds where the difference is only in hidden instance arguments or universe levels. When detected, the `MessageData` is re-rendered with escalated pp options (`pp.universes`, then `pp.explicit`) to reveal the hidden difference. For example, `⊤ =?= ⊤` becomes `@Top.top T inst₁ =?= @Top.top T inst₂`. 🤖 Prepared with Claude Code ESTIMATED CHANGES Modified Mathlib/Tactic/DefEqAbuse.lean + def Mathlib.Tactic.DefEqAbuse.disambiguateFailures Modified MathlibTest/DefEqAbuse.lean + theorem zoC_eq_iff + def zoDirectC + def zoFromGrC 2026-03-17 00:01:55 991d92f doc(AlgebraicTopology): fix typos (#36749) ESTIMATED CHANGES Modified Mathlib/AlgebraicTopology/DoldKan/Compatibility.lean Modified Mathlib/AlgebraicTopology/DoldKan/Homotopies.lean 2026-03-17 00:01:53 322cb62 chore(Data/EReal): remove `set_option linter.flexible false` (#36662) ESTIMATED CHANGES Modified Mathlib/Data/EReal/Operations.lean 2026-03-16 23:49:49 bac0453 doc(AlgebraicGeometry): fix typos (#36748) Found by `PyCharm`'s code inspection tool. ESTIMATED CHANGES Modified Mathlib/AlgebraicGeometry/Morphisms/QuasiCompact.lean Modified Mathlib/AlgebraicGeometry/Sites/SheafQuasiCompact.lean 2026-03-16 22:33:59 81d9b27 chore(CategoryTheory): remove some `set_option linter.flexible false` (#36750) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Limits/Constructions/Equalizers.lean Modified Mathlib/CategoryTheory/Limits/Shapes/BinaryProducts.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Equalizers.lean 2026-03-16 20:27:28 4a5208f chore(*): remove some `set_option linter.flexible false` (#36742) ESTIMATED CHANGES Modified Mathlib/AlgebraicGeometry/Cover/Directed.lean Modified Mathlib/Logic/Equiv/List.lean Modified Mathlib/RingTheory/Polynomial/Cyclotomic/Eval.lean Modified Mathlib/RingTheory/Valuation/ValuativeRel/Basic.lean Modified Mathlib/SetTheory/Ordinal/Notation.lean Modified Mathlib/Tactic/NormNum/Irrational.lean 2026-03-16 20:27:26 61154fb chore(*): remove some `set_option linter.flexible false` (#36738) These `set_option`s are derived from the fact that prior to #29027, linarith and nlinarith were not properly marked as flexible. ESTIMATED CHANGES Modified Mathlib/Analysis/Calculus/LHopital.lean Modified Mathlib/Analysis/SpecialFunctions/Pow/NNReal.lean Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Inverse.lean Modified Mathlib/Combinatorics/Additive/SmallTripling.lean 2026-03-16 20:27:25 5449ee7 chore(Algebra): remove some `set_option linter.flexible false` (#36725) ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Submonoid/Basic.lean Modified Mathlib/Algebra/LinearRecurrence.lean Modified Mathlib/Algebra/Module/ZLattice/Summable.lean Modified Mathlib/Algebra/Ring/Subring/Basic.lean 2026-03-16 20:12:26 e931833 chore(*): golf and remove some `set_option linter.flexible false` (#36741) ESTIMATED CHANGES Modified Mathlib/Combinatorics/Additive/Corner/Roth.lean Modified Mathlib/GroupTheory/FreeGroup/Basic.lean Modified Mathlib/GroupTheory/HNNExtension.lean Modified Mathlib/NumberTheory/PellMatiyasevic.lean Modified Mathlib/Topology/Piecewise.lean 2026-03-16 19:44:41 5833ef5 feat(TestFunction): add `limitCLM`, a variant of `mkCLM` starting from buncled CLMs on D^n_K (#36445) This will make it much more convenient to deduce not only continuity but also linearity from the work done on D^n_K. This makes it convenient enough to define differentiation (for example) directly as a CLM, hence avoiding the LM/CLM duplication. ESTIMATED CHANGES Modified Mathlib/Analysis/Distribution/TestFunction.lean 2026-03-16 19:13:09 a04c548 feat(GroupTheory/FreeGroup/Basic): deprecate `FreeGroup Empty ≃ Unit` using `Equiv.ofUnique`, add `Mul` suggestion using `MulEquiv.ofUnique` and add `FreeGroup α ≃* Multiplicative ℤ` (#34621) feat(GroupTheory/FreeGroup/Basic): deprecate `FreeGroup Empty ≃ Unit` using `Equiv.ofUnique`, add `Mul` suggestion using `MulEquiv.ofUnique` and add `FreeGroup α ≃* Multiplicative ℤ`. This is a dependency of a larger PR to formalize finitely presented groups https://github.com/leanprover-community/mathlib4/pull/34236. ESTIMATED CHANGES Modified Mathlib/GroupTheory/FreeGroup/Basic.lean + def FreeAddGroup.addEquivIntOfUnique + def FreeGroup.equivIntOfUnique - def FreeGroup.freeGroupEmptyEquivUnit + def FreeGroup.mulEquivIntOfUnique 2026-03-16 18:35:17 2252e64 feat(ValuationSubring): simp lemmas for idealOfLE/ofPrime in relation to top/bot (#33631) simp lemmas for `idealOfLE`/`ofPrime` in the trivial cases of `⊥`, `⊤` . This is my second try at this PR (after I bailed on #33618), sorry about this! ESTIMATED CHANGES Modified Mathlib/Algebra/Ring/Subring/Basic.lean + theorem Subring.inclusion_injective Modified Mathlib/RingTheory/Valuation/ValuationSubring.lean + theorem ValuationSubring.idealOfLE_self + theorem ValuationSubring.idealOfLE_top + theorem ValuationSubring.ofPrime_bot + theorem ValuationSubring.ofPrime_top 2026-03-16 18:02:22 867c38a feat(CategoryTheory/Equivalence): tag `Equivalence` with `to_dual` (#36579) This PR tags `Equivalence` with `to_dual`. This will allow us to dualize equivalences with `to_dual`. This PR also adds `dsimp%` in modified declarations, in order to get rid of some `backward.isDefEq.respectTransparency`. It is quite annoying that we have to manually write out the dual of `Equivalence.functor_unitIso_comp` and `Equivalence.mk'`. Hopefully this can be done more automatically in the future. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Category/RelCat.lean Modified Mathlib/CategoryTheory/Equivalence.lean - theorem CategoryTheory.Equivalence.counitInv_app_functor - theorem CategoryTheory.Equivalence.counitInv_functor_comp - theorem CategoryTheory.Equivalence.counitInv_naturality + theorem CategoryTheory.Equivalence.counitIso_functor_comp - theorem CategoryTheory.Equivalence.inverse_counitInv_comp - theorem CategoryTheory.Equivalence.unitInv_app_inverse - theorem CategoryTheory.Equivalence.unitInv_naturality Modified Mathlib/CategoryTheory/Localization/Construction.lean 2026-03-16 17:41:44 9376162 feat: lemmas about Taylor series (#36187) Also protect `HasFTaylorSeriesUpTo.fderiv`, so that it doesn't shadow `fderiv`. Used for Sobolev spaces. ESTIMATED CHANGES Modified Mathlib/Analysis/Calculus/ContDiff/FTaylorSeries.lean + theorem HasFTaylorSeriesUpTo.fderiv_eq + theorem HasFTaylorSeriesUpTo.tsupport_mono + theorem HasFTaylorSeriesUpTo.tsupport_subset 2026-03-16 17:41:42 b6c69f4 feat: some lemmas about (E)NNReal powers (#36185) Used for Sobolev spaces. ESTIMATED CHANGES Modified Mathlib/Analysis/SpecialFunctions/Pow/NNReal.lean + theorem ENNReal.rpow_inv_rpow_eq_iff + theorem ENNReal.rpow_rpow_inv_eq_iff + theorem NNReal.rpow_eq_left_iff + theorem NNReal.rpow_eq_rpow_right_iff + theorem NNReal.rpow_inv_rpow_eq_iff + theorem NNReal.rpow_right_inj + theorem NNReal.rpow_rpow_inv_eq_iff + theorem NNReal.zero_rpow_def 2026-03-16 17:41:40 3e00168 feat(Probability.Kernel): add representation of kernel as a map of a uniform measure (#30112) Add results about isolation of kernels randomness. In particular, it shows that one can write a Markov kernel as the map by a deterministic of a uniform measure on `[0, 1]`. It corresponds to Lemma 4.22 in "[Foundations of Modern Probability](https://link.springer.com/book/10.1007/978-3-030-61871-1)" by Olav Kallenberg, 2021. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Probability/Kernel/Representation.lean + theorem MeasureTheory.Measure.exists_measurable_map_eq + theorem ProbabilityTheory.Kernel.exists_measurable_map_eq_unitInterval 2026-03-16 16:18:14 342450a fix(Tactic/Ring/Common): remove `Ord Rat` instance (#36538) This PR fixes a diamond that I accidentally introduced with an `Ord Rat` instance. We instead use the instance coming from `LinearOrder Rat` ESTIMATED CHANGES Modified Mathlib/Tactic/Ring/Common.lean 2026-03-16 15:17:45 062369b chore(NumberTheory/ArithmeticFunction/Defs): modernize instances (#36175) This PR modernizes the instances in `ArithmeticFunction/Defs` using `where` notation. ESTIMATED CHANGES Modified Mathlib/NumberTheory/ArithmeticFunction/Defs.lean 2026-03-16 15:17:40 3000c85 feat(Algebra/Group/Submonoid): submonoid support (#33942) * Define support of submonoid (biggest subgroup it contains) * Define "pointed" (zero-support) and "spanning" (generates as a subgroup) submonoids ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Group/Submonoid/Support.lean + theorem Subgroup.gc_toSubmonoid_mulSupport + theorem Submonoid.IsMulPointed.eq_one_of_mem_of_inv_mem + theorem Submonoid.IsMulPointed.mk + def Submonoid.IsMulPointed + theorem Submonoid.IsMulSpanning.maximal_isMulPointed + theorem Submonoid.IsMulSpanning.mem_or_inv_mem + theorem Submonoid.IsMulSpanning.mk + theorem Submonoid.IsMulSpanning.of_le + def Submonoid.IsMulSpanning + theorem Submonoid.mem_mulSupport + def Submonoid.mulSupport + theorem Submonoid.mulSupport_toSubmonoid + theorem isMulPointed_iff_mulSupport_eq_bot Modified Mathlib/Tactic/Translate/ToAdditive.lean 2026-03-16 15:03:10 2d626c4 fix(LinearAlgebra): remove some `set_option linter.flexible false` (#36727) ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/Contraction.lean Modified Mathlib/LinearAlgebra/Matrix/Charpoly/Coeff.lean 2026-03-16 15:03:07 761e048 chore(AlgebraicTopology): remove some `set_option linter.flexible false` (#36726) ESTIMATED CHANGES Modified Mathlib/Algebra/Homology/Augment.lean Modified Mathlib/AlgebraicTopology/SimplexCategory/Augmented/Monoidal.lean 2026-03-16 15:03:04 fd5d8fc refactor(Kernel.discard): redefine using `PUnit` (#36687) Make `Kernel.discard` universe-polymorphic. The main purpose is to use this kernel in categories. ESTIMATED CHANGES Modified Mathlib/Probability/Kernel/Basic.lean +/- def ProbabilityTheory.Kernel.discard +/- theorem ProbabilityTheory.Kernel.discard_apply +/- theorem ProbabilityTheory.Kernel.discard_eq_const Modified Mathlib/Probability/Kernel/Composition/Comp.lean 2026-03-16 14:16:44 656f248 fix(Algebra/Order/Monoid/Canonical/Defs): fix deprecation (#36729) Make `not_neg` a deprecated version of `not_lt_zero` instead of `not_lt_one`. This was introduced in #32397. ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Monoid/Canonical/Defs.lean 2026-03-16 14:16:42 109f09f chore(Tactic): rewrite `group` tactic docstring (#36590) This PR rewrites the docstrings for the `group` tactic, to consistently match the official style guide, to make sure they are complete while not getting too long. Apart from a few stylistic changes, we make precise where `group` performs its normalization, and that it can close the goal if it becomes a syntactic equality. ESTIMATED CHANGES Modified Mathlib/Tactic/Group.lean 2026-03-16 14:16:40 a19553a feat: improve `fin_cases` on `DihedralGroup` (#36586) Better version of https://github.com/leanprover-community/mathlib4/pull/33504 This PR: - Renames `fintypeHelper` -> `equivSum` and flips the direction - Makes `equivSum` public - Generates lemmas via `@[simps]` - The deprecation of `fintypeHelper` is unnecessary because it is private The same motivating example still works; after using `fin_cases <;> dsimp` on a goal about a finite dihedral group, we're left with simple goal states. ``` example (g : DihedralGroup 3) : (g^6 = 1) := by fin_cases g <;> dsimp unsolved goals case «0» n : ℕ ⊢ r 0 ^ 6 = 1 case «1» n : ℕ ⊢ r 1 ^ 6 = 1 case «2» n : ℕ ⊢ r 2 ^ 6 = 1 case «3» n : ℕ ⊢ sr 0 ^ 6 = 1 case «4» n : ℕ ⊢ sr 1 ^ 6 = 1 case «5» n : ℕ ⊢ sr 2 ^ 6 = 1 ``` ESTIMATED CHANGES Modified Mathlib/GroupTheory/SpecificGroups/Dihedral.lean + def DihedralGroup.equivSum 2026-03-16 13:48:09 03f7be4 feat(SetTheory/Ordinal/Arithmetic): `IsLeftCancelMulZero Ordinal` (#36670) ESTIMATED CHANGES Modified Mathlib/SetTheory/Ordinal/Arithmetic.lean 2026-03-16 13:22:28 7bc0888 chore(ci): add continue-on-error to non-critical workflow steps (#36244) This PR adds `continue-on-error: true` to non-critical workflow steps that interact with Zulip or perform cosmetic actions (emoji reactions, PR comments, label additions). These should never cause CI failures. Affected workflows: - `zulip_emoji_ci_status.yaml` — emoji update step - `zulip_emoji_closed_pr.yaml` — emoji update step - `zulip_emoji_labelling.yaml` — emoji update step (already had it) - `zulip_emoji_merge_delegate.yaml` — emoji update step (already had it) - `maintainer_bors.yml` / `maintainer_bors_wf_run.yml` — Zulip emoji reaction step - `maintainer_merge.yml` / `maintainer_merge_wf_run.yml` — Zulip message, PR comment, and label steps 🤖 Prepared with Claude Code ESTIMATED CHANGES Modified .github/workflows/maintainer_bors_wf_run.yml Modified .github/workflows/maintainer_merge_wf_run.yml Modified .github/workflows/zulip_emoji_ci_status.yaml Modified .github/workflows/zulip_emoji_closed_pr.yaml Modified .github/workflows/zulip_emoji_labelling.yaml Modified .github/workflows/zulip_emoji_merge_delegate.yaml 2026-03-16 13:11:18 4a9223f ci(maintainer_*_wf_run): use env vars rather than github actions direct interpolation (#36690) Fixes [#mathlib reviewers > `maintainer merge` Zulip post doesn't show title](https://leanprover.zulipchat.com/#narrow/channel/345428-mathlib-reviewers/topic/.60maintainer.20merge.60.20Zulip.20post.20doesn.27t.20show.20title/with/579562221). (This bug was introduced in #35110.) Also make debug line at the end more compact. Prepared with codex. ESTIMATED CHANGES Modified .github/workflows/maintainer_bors_wf_run.yml Modified .github/workflows/maintainer_merge_wf_run.yml 2026-03-16 12:12:14 6fb0dd2 feat(Order/Filter/Defs): tag `mem_of_superset` with `gcongr` (#36710) This PR tags `mem_of_superset` with `gcongr`, and then golfs various proofs using `grw`/`gcongr`. ESTIMATED CHANGES Modified Mathlib/Analysis/Calculus/ContDiff/Defs.lean Modified Mathlib/Analysis/Calculus/InverseFunctionTheorem/ApproximatesLinearOn.lean Modified Mathlib/Analysis/LocallyConvex/ContinuousOfBounded.lean Modified Mathlib/Analysis/LocallyConvex/WithSeminorms.lean Modified Mathlib/Analysis/Normed/Operator/Compact.lean Modified Mathlib/Analysis/Seminorm.lean Modified Mathlib/Order/Filter/Bases/Finite.lean Modified Mathlib/Order/Filter/Basic.lean Modified Mathlib/Order/Filter/Defs.lean Modified Mathlib/Order/Filter/Map.lean Modified Mathlib/Topology/List.lean Modified Mathlib/Topology/Order.lean Modified Mathlib/Topology/Partial.lean Modified Mathlib/Topology/Semicontinuity/Hemicontinuity.lean 2026-03-16 11:47:24 6b84688 feat(Analysis.LocallyConvex.Separation): add Eidelheit's separation theorem (#36091) Adds `geometric_hahn_banach_of_interior_nonempty`, formalizing Eidelheit's separation theorem for disjoint convex sets where one has a nonempty interior. This resolves the longstanding TODO in `Mathlib.Analysis.LocallyConvex.Separation`. The patch also removes the TODO for the topological property `Convex ℝ s → interior (closure s) ⊆ s`, as this is already handled by `Convex.closure_interior_eq_closure_of_nonempty_interior` (imported from `Mathlib.Analysis.Convex.Topology`). Key implementation details: * Uses `geometric_hahn_banach_open` to separate `interior A` and `B`. * Requires `B.Nonempty` to guarantee the separating continuous linear functional is nontrivial (`f ≠ 0`), avoiding the triviality trap where `A` covers the entire space. * Uses `closure_minimal` to extend the weak inequality from `interior A` to the entirety of `A`. ESTIMATED CHANGES Modified Mathlib/Analysis/LocallyConvex/Separation.lean + theorem RCLike.geometric_hahn_banach_of_nonempty_interior' + theorem RCLike.geometric_hahn_banach_of_nonempty_interior + theorem RCLike.geometric_hahn_banach_of_nonempty_interior_point + theorem geometric_hahn_banach_of_nonempty_interior' + theorem geometric_hahn_banach_of_nonempty_interior + theorem geometric_hahn_banach_of_nonempty_interior_point 2026-03-16 11:24:31 15a45ed refactor(CategoryTheory/Sites): remove universe parameter from `Functor.IsContinuous` (#36459) The current definition of `Functor.IsContinuous` depends on a universe parameter `t` and says that `F : C ⥤ D` is continuous if precomposing with `F.op` preserves being a sheaf for presheaves with values in `Type t`. We show SGA 4 III 1.5, which says that if `t` is large enough such that both `C` and `D` are `t`-small, then being continuous for `t` implies being continuous for any universe `t'`. Using this, we drop the parameter from the definition and show it implies the old one. ESTIMATED CHANGES Modified Mathlib/Algebra/Category/ModuleCat/Sheaf/PullbackContinuous.lean Modified Mathlib/Algebra/Category/ModuleCat/Sheaf/PullbackFree.lean +/- theorem SheafOfModules.bijective_pushforwardSections +/- def SheafOfModules.pushforwardSections Modified Mathlib/Algebra/Category/ModuleCat/Sheaf/PushforwardContinuous.lean Modified Mathlib/CategoryTheory/Adjunction/Basic.lean + theorem CategoryTheory.Adjunction.comp_map_bijective_iff + theorem CategoryTheory.Adjunction.map_comp_bijective_iff Modified Mathlib/CategoryTheory/Sites/Continuous.lean + theorem CategoryTheory.Functor.W_map_of_adjunction_of_isContinuous +/- theorem CategoryTheory.Functor.op_comp_isSheaf +/- theorem CategoryTheory.Functor.op_comp_isSheaf_of_isSheaf +/- theorem CategoryTheory.Functor.op_comp_isSheaf_of_types +/- def CategoryTheory.Functor.sheafPushforwardContinuousComp +/- def CategoryTheory.Functor.sheafPushforwardContinuousId' +/- def CategoryTheory.Functor.sheafPushforwardContinuousIso +/- def CategoryTheory.Functor.sheafPushforwardContinuousNatTrans Modified Mathlib/CategoryTheory/Sites/CoverPreserving.lean +/- theorem CategoryTheory.Functor.isContinuous_of_coverPreserving Modified Mathlib/CategoryTheory/Sites/Equivalence.lean Modified Mathlib/CategoryTheory/Sites/Localization.lean + theorem CategoryTheory.Presieve.IsSheaf.comp_of_W_map_of_adjunction + theorem CategoryTheory.Sieve.W_shrinkFunctor_ι_of_mem Modified Mathlib/CategoryTheory/Sites/Point/Comap.lean Modified Mathlib/CategoryTheory/Sites/Pullback.lean +/- def CategoryTheory.Functor.sheafPullbackConstruction.sheafAdjunctionContinuous Modified Mathlib/CategoryTheory/Sites/Subcanonical.lean Modified Mathlib/Topology/Sheaves/SheafCondition/Sites.lean 2026-03-16 10:37:54 a8fbd15 chore: use `IsLUB` `IsGLB` in `ConditionallyCompleteLattice` (#35774) Also, some docstrings in `Order.ConditionallyCompleteLattice.Defs` are outdated (they still use Lean3 structure notation). #36671 is an orthogonal PR to fix this. ESTIMATED CHANGES Modified Mathlib/Algebra/Tropical/Lattice.lean Modified Mathlib/Data/Int/ConditionallyCompleteOrder.lean Modified Mathlib/Data/Nat/Lattice.lean Modified Mathlib/Data/Real/Archimedean.lean Modified Mathlib/Order/CompleteLatticeIntervals.lean Modified Mathlib/Order/ConditionallyCompleteLattice/Basic.lean +/- theorem isGLB_csInf +/- theorem isLUB_csSup Modified Mathlib/Order/ConditionallyCompleteLattice/Defs.lean Modified Mathlib/Order/Copy.lean 2026-03-16 10:20:56 595196b feat: multivariate Gaussian distributions (#36143) Define the standard Gaussian distribution over a Euclidean space and multivariate Gaussian distributions over `EuclideanSpace ℝ ι`. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Analysis/InnerProductSpace/Dual.lean + theorem OrthonormalBasis.norm_dual Modified Mathlib/Analysis/InnerProductSpace/PiL2.lean + def EuclideanSpace.restrict₂ + theorem EuclideanSpace.restrict₂_apply Added Mathlib/Probability/Distributions/Gaussian/Multivariate.lean + theorem ProbabilityTheory.charFunDual_stdGaussian + theorem ProbabilityTheory.charFun_multivariateGaussian + theorem ProbabilityTheory.charFun_stdGaussian + theorem ProbabilityTheory.covarianceBilin_multivariateGaussian + theorem ProbabilityTheory.covarianceBilin_stdGaussian + theorem ProbabilityTheory.covariance_eval_multivariateGaussian + theorem ProbabilityTheory.integral_id_multivariateGaussian' + theorem ProbabilityTheory.integral_id_multivariateGaussian + theorem ProbabilityTheory.integral_id_stdGaussian + theorem ProbabilityTheory.integral_strongDual_stdGaussian + theorem ProbabilityTheory.map_pi_eq_stdGaussian + theorem ProbabilityTheory.measurePreserving_eval_multivariateGaussian + theorem ProbabilityTheory.measurePreserving_restrict₂_multivariateGaussian + def ProbabilityTheory.multivariateGaussian + theorem ProbabilityTheory.multivariateGaussian_of_not_posSemidef + theorem ProbabilityTheory.multivariateGaussian_zero_one + def ProbabilityTheory.stdGaussian + theorem ProbabilityTheory.stdGaussian_eq_map_pi_orthonormalBasis + theorem ProbabilityTheory.stdGaussian_map + theorem ProbabilityTheory.variance_dual_stdGaussian + theorem ProbabilityTheory.variance_eval_multivariateGaussian 2026-03-16 06:09:36 09d467d feat(CategoryTheory/Abelian/Preradical): introduce and characterize radicals (#35586) Following Stenström, a preradical `Φ` is called radical if it coincides with its self colon. We encode this as the existence of an isomorphism `Φ.colon Φ ≅ Φ`. We then prove a basic characterization of radical preradicals in terms of the vanishing of `Φ.r` on `Φ.quotient`. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Abelian/Preradical/Radical.lean + def CategoryTheory.Abelian.Preradical.isRadical + theorem CategoryTheory.Abelian.Preradical.isRadical_iff_isIso + theorem CategoryTheory.Abelian.Preradical.isRadical_iff_isZero + theorem CategoryTheory.Abelian.Radical.isZero 2026-03-16 05:13:04 f4a0900 feat(translate): support `to_additive (attr := to_fun)` (#36305) This PR adds extensible support for letting `to_additive`/`to_dual` interact with other attributes that create declarations, such as `to_fun` and `simps`. Previously, this behaviour was hard-coded just for `simps`. This PR removes `simps` from the imports of `Translate.Core`. For this, `simps` is removed from the existing attribute linter. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/FiniteSupport/Basic.lean Modified Mathlib/Algebra/Group/Defs.lean Modified Mathlib/Algebra/Notation/Defs.lean Modified Mathlib/Lean/Meta/Simp.lean Modified Mathlib/MeasureTheory/Group/Arithmetic.lean +/- theorem AEMeasurable.const_smul - theorem AEMeasurable.fun_const_smul - theorem Measurable.fun_const_smul Modified Mathlib/Order/Defs/LinearOrder.lean Modified Mathlib/Order/Defs/Unbundled.lean Modified Mathlib/Order/Filter/Basic.lean - theorem Filter.EventuallyEq.fun_div - theorem Filter.EventuallyEq.fun_inv - theorem Filter.EventuallyEq.fun_mul - theorem Filter.EventuallyEq.fun_pow_const Modified Mathlib/Order/Notation.lean Modified Mathlib/Tactic.lean Modified Mathlib/Tactic/Simps/Basic.lean Modified Mathlib/Tactic/ToFun.lean + def Mathlib.Tactic.toFunImpl Added Mathlib/Tactic/Translate/Attributes.lean + def Mathlib.Tactic.registerGeneratingAttr Modified Mathlib/Tactic/Translate/Core.lean Modified Mathlib/Topology/Algebra/IsUniformGroup/Basic.lean 2026-03-16 04:23:05 4d4be2c chore: update Mathlib dependencies 2026-03-16 (#36708) This PR updates the Mathlib dependencies. ESTIMATED CHANGES Modified lake-manifest.json 2026-03-16 00:46:18 fde0cc5 feat(Tactic/FastInstance): use expected type to fill in arguments (#36420) This PR improves `fast_instance%` by letting it use the expected type to fill in arguments. This allows us to then define `inferInstanceAs% A` as a macro for `fast_instance% inferInstanceAs A`. ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Ring/StandardPart.lean Modified Mathlib/NumberTheory/Padics/WithVal.lean Modified Mathlib/Order/BooleanAlgebra/Set.lean Modified Mathlib/Tactic/FastInstance.lean - def Mathlib.Elab.FastInstance.elabFastInstance + def Mathlib.Elab.FastInstance.error Modified MathlibTest/DefEqAbuse.lean Added MathlibTest/InferInstanceAsPercent.lean + def MyNat + def TestNat + def myNatInv_leaky + def testField_direct + def testField_fixed + def testField_leaky Modified MathlibTest/fast_instance.lean Modified MathlibTest/slow_instances.lean 2026-03-15 23:37:04 9b38741 feat(SimpleGraph/Walks/Operations): `p.dropLast.support` lemmas (#35631) ESTIMATED CHANGES Modified Mathlib/Combinatorics/SimpleGraph/Walks/Operations.lean + theorem SimpleGraph.Walk.support_dropLast + theorem SimpleGraph.Walk.support_dropLast_concat 2026-03-15 23:11:03 a944b6c chore(CategoryTheory/NatIso): use `to_dual` (#36577) This PR uses `to_dual` on the basic theorems about natural isomorphisms. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Iso.lean + theorem CategoryTheory.IsIso.mk' Modified Mathlib/CategoryTheory/NatIso.lean +/- theorem CategoryTheory.NatIso.cancel_natIso_hom_left - theorem CategoryTheory.NatIso.cancel_natIso_hom_right +/- theorem CategoryTheory.NatIso.cancel_natIso_inv_left - theorem CategoryTheory.NatIso.cancel_natIso_inv_right 2026-03-15 22:43:29 02730e2 refactor: redefine `Order.cof` for a preorder (#35513) ... instead of using an unbundled relation. This makes it easier to work with, and avoids some `swap rᶜ` incantations. There are still a bunch of lemmas that make use of unbundled order relations; these will get fixed in follow-up PRs. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Presentable/IsCardinalFiltered.lean Modified Mathlib/Order/Cofinal.lean +/- theorem IsCofinal.singleton_top + theorem isCofinal_singleton_iff Modified Mathlib/SetTheory/Cardinal/Cofinality.lean - theorem Cardinal.unbounded_of_unbounded_iUnion - theorem Cardinal.unbounded_of_unbounded_sUnion + theorem GaloisConnection.cof_le + theorem GaloisConnection.cof_le_lift +/- def Order.cof + theorem Order.cof_eq + theorem Order.cof_eq_one + theorem Order.cof_eq_one_iff + theorem Order.cof_eq_zero + theorem Order.cof_eq_zero_iff +/- theorem Order.cof_le + theorem Order.cof_le_cardinalMk + theorem Order.cof_ne_zero + theorem Order.cof_ne_zero_iff - theorem Order.le_cof + theorem Order.le_cof_iff + theorem OrderIso.cof_eq + theorem OrderIso.lift_cof_eq +/- theorem Ordinal.cof_eq' - theorem Ordinal.cof_eq - theorem Ordinal.cof_eq_cof_toType + theorem Ordinal.cof_eq_one_iff - theorem Ordinal.cof_eq_one_iff_is_succ +/- theorem Ordinal.cof_eq_zero +/- theorem Ordinal.cof_le_card +/- theorem Ordinal.cof_succ + theorem Ordinal.cof_toType +/- theorem Ordinal.cof_type - theorem Ordinal.cof_type_le - theorem Ordinal.cof_type_lt +/- theorem Ordinal.cof_zero - theorem Ordinal.le_cof_type +/- theorem Ordinal.lift_cof - theorem Ordinal.lt_cof_type +/- theorem Ordinal.ord_cof_eq +/- theorem Ordinal.ord_cof_le - theorem RelIso.cof_eq - theorem RelIso.cof_eq_lift + theorem isCofinal_of_isCofinal_iUnion + theorem isCofinal_of_isCofinal_sUnion 2026-03-15 17:36:49 6a711ae feat(SimpleGraph): `IsEdgeReachable` lemmas (#35400) ESTIMATED CHANGES Modified Mathlib/Combinatorics/SimpleGraph/Connectivity/EdgeConnectivity.lean + theorem SimpleGraph.IsEdgeConnected.le_degree + theorem SimpleGraph.IsEdgeConnected.of_subsingleton + theorem SimpleGraph.IsEdgeReachable.le_degree + theorem SimpleGraph.IsEdgeReachable.of_subsingleton 2026-03-15 17:09:15 11fa0b4 feat: add Ad.lean for collecting adjoint action properties (#36628) Add Ad.lean for collecting adjoint action properties ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Lie/AdjointAction/Basic.lean + theorem LieAlgebra.ad_isSemisimple_of_isSemisimple + theorem LieAlgebra.ad_nilpotent_of_nilpotent + theorem LieAlgebra.commute_ad_of_commute + theorem LieAlgebra.isNilpotent_ad_of_isNilpotent + theorem LieSubalgebra.isNilpotent_ad_of_isNilpotent_ad Renamed Mathlib/Algebra/Lie/Derivation/AdjointAction.lean to Mathlib/Algebra/Lie/AdjointAction/Derivation.lean Modified Mathlib/Algebra/Lie/Derivation/Killing.lean Modified Mathlib/Algebra/Lie/Engel.lean Modified Mathlib/Algebra/Lie/Nilpotent.lean - theorem LieAlgebra.ad_nilpotent_of_nilpotent - theorem LieAlgebra.isNilpotent_ad_of_isNilpotent - theorem LieSubalgebra.isNilpotent_ad_of_isNilpotent_ad Modified Mathlib/Algebra/Polynomial/AlgebraMap.lean + theorem Polynomial.aeval_op_apply 2026-03-15 15:56:18 7a0d2c9 chore(WellFounded): drop unneeded `Set.Nonempty` assumptions (#35933) ... in theorems that also assume that a specific element belongs to the set. ESTIMATED CHANGES Modified Archive/Imo/Imo1988Q6.lean Modified Counterexamples/AharoniKorman.lean Modified Mathlib/Combinatorics/Quiver/Arborescence.lean Modified Mathlib/Data/DFinsupp/WellFounded.lean Modified Mathlib/FieldTheory/Minpoly/Basic.lean Modified Mathlib/FieldTheory/SeparableClosure.lean Modified Mathlib/FieldTheory/SeparablyGenerated.lean Modified Mathlib/Order/Atoms.lean Modified Mathlib/Order/ConditionallyCompleteLattice/Defs.lean Modified Mathlib/Order/Cover.lean Modified Mathlib/Order/InitialSeg.lean Modified Mathlib/Order/OrderIsoNat.lean Modified Mathlib/Order/PiLex.lean Modified Mathlib/Order/SuccPred/Basic.lean Modified Mathlib/Order/WellFounded.lean +/- theorem Function.argminOn_le +/- theorem Function.not_lt_argminOn +/- theorem WellFounded.not_lt_min + theorem WellFounded.prop_min Modified Mathlib/Order/WellFoundedSet.lean Modified Mathlib/RingTheory/MvPowerSeries/LexOrder.lean Modified Mathlib/RingTheory/Polynomial/Basic.lean Modified Mathlib/RingTheory/PrincipalIdealDomain.lean Modified Mathlib/SetTheory/Cardinal/Cofinality.lean Modified Mathlib/SetTheory/ZFC/Class.lean Modified Mathlib/Topology/EMetricSpace/Paracompact.lean 2026-03-15 15:25:53 b9468be feat: invariant root submodules are spanned by their roots (#36647) Invariant root submodules are spanned by their roots ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/RootSystem/Irreducible.lean + theorem RootPairing.eq_zero_iff_forall_coroot'_eq_zero + theorem RootPairing.invtRootSubmodule.eq_span_root + theorem RootPairing.invtRootSubmodule.le_ker_coroot' 2026-03-15 15:25:51 fb4f235 chore(NNReal): add 2 lemmas, use them (#36375) ESTIMATED CHANGES Modified Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Instances.lean Modified Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Isometric.lean Modified Mathlib/Analysis/Normed/Algebra/Spectrum.lean Modified Mathlib/Analysis/Normed/Ring/Lemmas.lean Modified Mathlib/MeasureTheory/Measure/FiniteMeasure.lean Modified Mathlib/Topology/MetricSpace/Basic.lean + theorem NNReal.isClosedEmbedding_coe Modified Mathlib/Topology/MetricSpace/Isometry.lean + theorem NNReal.isometry_coe 2026-03-15 15:25:49 b2a3ce8 chore: avoid passing explicit lemmas to `grind` and (terminal) `simp_all` where unnecessary (#35693) The goal of this PR is to decrease the number of times lemmas are called explicitly (replacing calls to lemmas with calls to tactics). Any decrease in compilation time is a welcome side effect, although it is not a primary objective. Trace profiling results (differences <30 ms considered measurement noise): * `SimpleGraph.Walk.IsCycle.getVert_injOn`: 684 ms before, 596 ms after 🎉 * `List.HasPeriod.gcd`: 846 ms before, 807 ms after 🎉 * `List.Sublist.orderedInsert_sublist`: unchanged 🎉 * `Affine.Simplex.exists_forall_dist_eq_iff_exists_excenterExists_and_eq_excenter`: unchanged 🎉 * `Matrix.pow_apply_pos_iff_nonempty_path`: unchanged 🎉 * `RootPairing.Hom.coweightHom_injective`: unchanged 🎉 * `RootPairing.isReduced_iff'`: unchanged 🎉 * `Set.Ico_eq_Ico_iff`: unchanged 🎉 * `Set.Ioc_eq_Ioc_iff`: unchanged 🎉 Profiled using `set_option trace.profiler true in`. ESTIMATED CHANGES Modified Mathlib/Combinatorics/SimpleGraph/Paths.lean Modified Mathlib/Data/List/PeriodicityLemma.lean Modified Mathlib/Data/List/Sort.lean Modified Mathlib/Geometry/Euclidean/Incenter.lean Modified Mathlib/LinearAlgebra/Matrix/Irreducible/Defs.lean Modified Mathlib/LinearAlgebra/RootSystem/Hom.lean Modified Mathlib/LinearAlgebra/RootSystem/Reduced.lean Modified Mathlib/Order/Interval/Set/LinearOrder.lean 2026-03-15 14:55:55 2d206e3 chore: rename `Ordinal.smul_eq_mul` → `Ordinal.nsmul_eq_mul` (#36669) And make it a `simp` lemma too. ESTIMATED CHANGES Modified Mathlib/SetTheory/Ordinal/Arithmetic.lean + theorem Ordinal.nsmul_eq_mul - theorem Ordinal.smul_eq_mul 2026-03-15 14:55:53 23f8316 feat: lemmas on ordinal multiplication (#36580) Downstreamed from the CGT repo. ESTIMATED CHANGES Modified Mathlib/SetTheory/Ordinal/Arithmetic.lean + theorem Ordinal.exists_lt_mul + theorem Ordinal.forall_lt_mul + theorem Ordinal.lt_mul_add_one_iff + theorem Ordinal.lt_mul_iff 2026-03-15 14:55:52 c0d113d refactor(padicValNat): redefine using `maxPowDvdDiv` (#34711) - rename `maxPowDiv` to `maxPowDvdDiv`; - make it return `a / b ^ n` too; - optimize it to use `O(log (logb b a))` steps; - redefine `padicValNat` to be `maxPowDvdDiv .. |>.1` ESTIMATED CHANGES Modified Mathlib/Data/Nat/MaxPowDiv.lean + def Nat.divMaxPow + theorem Nat.divMaxPow_base_mul + theorem Nat.divMaxPow_base_pow + theorem Nat.divMaxPow_base_pow_mul + theorem Nat.divMaxPow_mul_pow_padicValNat + theorem Nat.divMaxPow_one_left + theorem Nat.divMaxPow_one_right + theorem Nat.divMaxPow_self + theorem Nat.divMaxPow_zero_left + theorem Nat.divMaxPow_zero_right + theorem Nat.fst_maxPowDvdDiv - theorem Nat.maxPowDiv.base_mul_eq_succ - theorem Nat.maxPowDiv.base_pow_mul - theorem Nat.maxPowDiv.go_succ - theorem Nat.maxPowDiv.le_of_dvd - theorem Nat.maxPowDiv.pow_dvd - theorem Nat.maxPowDiv.zero - theorem Nat.maxPowDiv.zero_base - def Nat.maxPowDiv + theorem Nat.maxPowDvdDiv.go_spec + def Nat.maxPowDvdDiv + theorem Nat.maxPowDvdDiv_base_mul + theorem Nat.maxPowDvdDiv_base_pow + theorem Nat.maxPowDvdDiv_base_pow_mul + theorem Nat.maxPowDvdDiv_of_base_le_one + theorem Nat.maxPowDvdDiv_of_not_dvd + theorem Nat.maxPowDvdDiv_of_pow_mul_eq + theorem Nat.maxPowDvdDiv_one_left + theorem Nat.maxPowDvdDiv_one_right + theorem Nat.maxPowDvdDiv_self + theorem Nat.maxPowDvdDiv_zero_left + theorem Nat.maxPowDvdDiv_zero_right + theorem Nat.not_dvd_divMaxPow + theorem Nat.pow_dvd_iff_le_padicValNat + theorem Nat.pow_padicValNat_mul_divMaxPow + theorem Nat.snd_maxPowDvdDiv + def padicValNat + theorem padicValNat_base + theorem padicValNat_base_mul + theorem padicValNat_base_pow + theorem padicValNat_base_pow_mul + theorem padicValNat_one_left + theorem padicValNat_one_right + theorem padicValNat_zero_left + theorem padicValNat_zero_right + theorem pow_padicValNat_dvd Modified Mathlib/NumberTheory/Padics/PadicNumbers.lean Modified Mathlib/NumberTheory/Padics/PadicVal/Basic.lean - theorem padicValNat.maxPowDiv_eq_emultiplicity - theorem padicValNat.maxPowDiv_eq_multiplicity - theorem padicValNat.padicValNat_eq_maxPowDiv - theorem padicValNat.self - theorem pow_padicValNat_dvd Modified Mathlib/NumberTheory/Padics/PadicVal/Defs.lean + theorem Nat.toNat_emultiplicity - def padicValNat Modified Mathlib/NumberTheory/SumTwoSquares.lean 2026-03-15 13:59:16 36f5c70 chore: make `diff_subset_iff` `simp` (#36633) In order to be able to make the `≤` and `⊆` relations on sets be the same, we need to align which lemmas are and aren't simp. This PR is a step in that direction. ESTIMATED CHANGES Modified Mathlib/Combinatorics/Matroid/Circuit.lean Modified Mathlib/Combinatorics/Matroid/Minor/Delete.lean Modified Mathlib/Combinatorics/SimpleGraph/Subgraph.lean Modified Mathlib/Order/BooleanAlgebra/Set.lean 2026-03-15 13:15:47 815dd04 feat(Data/Finsupp): more API for `sumElim` (#36675) For this, also make `mapDomain_apply` simp. ESTIMATED CHANGES Modified Mathlib/Data/Finsupp/Basic.lean +/- theorem Finsupp.coe_sumElim +/- theorem Finsupp.mapDomain_apply + theorem Finsupp.mapDomain_swap_sumElim +/- def Finsupp.sumElim +/- theorem Finsupp.sumElim_apply + theorem Finsupp.sumElim_eq_add +/- theorem Finsupp.sumElim_inl +/- theorem Finsupp.sumElim_inr + theorem Finsupp.sumElim_single_single + theorem Finsupp.sumElim_single_zero + theorem Finsupp.sumElim_zero_single + theorem Finsupp.sumElim_zero_zero 2026-03-15 12:36:25 3271f7c feat(Tactic/ComputeAsymptotics/Multiseries): Multiseries definition and structural lemmas (#34922) Define `Multiseries` and `MultiseriesExpansion` and restate some `Seq` API for `Multiseries`. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Tactic.lean Added Mathlib/Tactic/ComputeAsymptotics/Multiseries/Defs.lean + theorem ComputeAsymptotics.MultiseriesExpansion.Multiseries.Pairwise_cons_nil + theorem ComputeAsymptotics.MultiseriesExpansion.Multiseries.Pairwise_nil + def ComputeAsymptotics.MultiseriesExpansion.Multiseries.cons + theorem ComputeAsymptotics.MultiseriesExpansion.Multiseries.cons_eq_cons + theorem ComputeAsymptotics.MultiseriesExpansion.Multiseries.cons_ne_nil + def ComputeAsymptotics.MultiseriesExpansion.Multiseries.corec + theorem ComputeAsymptotics.MultiseriesExpansion.Multiseries.corec_cons + theorem ComputeAsymptotics.MultiseriesExpansion.Multiseries.corec_nil + def ComputeAsymptotics.MultiseriesExpansion.Multiseries.destruct + theorem ComputeAsymptotics.MultiseriesExpansion.Multiseries.destruct_cons + theorem ComputeAsymptotics.MultiseriesExpansion.Multiseries.destruct_eq_cons + theorem ComputeAsymptotics.MultiseriesExpansion.Multiseries.destruct_eq_none + theorem ComputeAsymptotics.MultiseriesExpansion.Multiseries.destruct_nil + theorem ComputeAsymptotics.MultiseriesExpansion.Multiseries.eq_of_bisim + theorem ComputeAsymptotics.MultiseriesExpansion.Multiseries.eq_of_bisim_strong + def ComputeAsymptotics.MultiseriesExpansion.Multiseries.head + theorem ComputeAsymptotics.MultiseriesExpansion.Multiseries.head_cons + theorem ComputeAsymptotics.MultiseriesExpansion.Multiseries.head_nil + def ComputeAsymptotics.MultiseriesExpansion.Multiseries.map + theorem ComputeAsymptotics.MultiseriesExpansion.Multiseries.map_comp + theorem ComputeAsymptotics.MultiseriesExpansion.Multiseries.map_cons + theorem ComputeAsymptotics.MultiseriesExpansion.Multiseries.map_id + theorem ComputeAsymptotics.MultiseriesExpansion.Multiseries.map_nil + theorem ComputeAsymptotics.MultiseriesExpansion.Multiseries.mem_cons_iff + def ComputeAsymptotics.MultiseriesExpansion.Multiseries.nil + theorem ComputeAsymptotics.MultiseriesExpansion.Multiseries.nil_ne_cons + theorem ComputeAsymptotics.MultiseriesExpansion.Multiseries.notMem_nil + def ComputeAsymptotics.MultiseriesExpansion.Multiseries.recOn + def ComputeAsymptotics.MultiseriesExpansion.Multiseries.tail + theorem ComputeAsymptotics.MultiseriesExpansion.Multiseries.tail_cons + theorem ComputeAsymptotics.MultiseriesExpansion.Multiseries.tail_nil + def ComputeAsymptotics.MultiseriesExpansion.Multiseries.toSeq + def ComputeAsymptotics.MultiseriesExpansion.Multiseries + theorem ComputeAsymptotics.MultiseriesExpansion.const_toFun + theorem ComputeAsymptotics.MultiseriesExpansion.eq_mk + theorem ComputeAsymptotics.MultiseriesExpansion.ext_iff + def ComputeAsymptotics.MultiseriesExpansion.mk + theorem ComputeAsymptotics.MultiseriesExpansion.mk_eq_mk_iff + theorem ComputeAsymptotics.MultiseriesExpansion.mk_eq_mk_iff_iff + theorem ComputeAsymptotics.MultiseriesExpansion.mk_replaceFun + theorem ComputeAsymptotics.MultiseriesExpansion.mk_seq + theorem ComputeAsymptotics.MultiseriesExpansion.mk_toFun + theorem ComputeAsymptotics.MultiseriesExpansion.ms_eq_mk_iff + def ComputeAsymptotics.MultiseriesExpansion.ofReal + def ComputeAsymptotics.MultiseriesExpansion.recOn + def ComputeAsymptotics.MultiseriesExpansion.replaceFun + theorem ComputeAsymptotics.MultiseriesExpansion.replaceFun_seq + theorem ComputeAsymptotics.MultiseriesExpansion.replaceFun_toFun + def ComputeAsymptotics.MultiseriesExpansion.seq + def ComputeAsymptotics.MultiseriesExpansion.toFun + def ComputeAsymptotics.MultiseriesExpansion.toReal + def ComputeAsymptotics.MultiseriesExpansion 2026-03-15 10:57:22 b12200d chore(SetTheory/Ordinal): deprecate more theorems on `succ` (#35853) The idea is that we should simply write `x + 1` instead of `succ x`. ESTIMATED CHANGES Modified Mathlib/SetTheory/Cardinal/Cofinality.lean Modified Mathlib/SetTheory/Cardinal/Ordinal.lean Modified Mathlib/SetTheory/Ordinal/Arithmetic.lean +/- theorem Cardinal.isSuccLimit_ord Modified Mathlib/SetTheory/Ordinal/Basic.lean + theorem Ordinal.card_add_one Modified Mathlib/SetTheory/Ordinal/Exponential.lean Modified Mathlib/SetTheory/Ordinal/FixedPoint.lean Modified Mathlib/SetTheory/Ordinal/Notation.lean Modified Mathlib/SetTheory/Ordinal/Principal.lean Modified Mathlib/SetTheory/Ordinal/Topology.lean 2026-03-15 08:40:41 8917890 feat(Homology): add lemma about injective/projective dimension (#36632) In this PR, we add the instance `HasProjectiveDimensionLT X 1` => `Projective X` and the injective analogues. We also added the interaction of `Projective` and `Injective` with `Retract`. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Abelian/Injective/Dimension.lean +/- theorem CategoryTheory.injective_iff_hasInjectiveDimensionLT_one +/- theorem CategoryTheory.injective_iff_subsingleton_ext_one Modified Mathlib/CategoryTheory/Abelian/Projective/Dimension.lean +/- theorem CategoryTheory.projective_iff_hasProjectiveDimensionLT_one +/- theorem CategoryTheory.projective_iff_subsingleton_ext_one Modified Mathlib/CategoryTheory/Preadditive/Injective/Basic.lean + theorem CategoryTheory.Retract.injective Modified Mathlib/CategoryTheory/Preadditive/Projective/Basic.lean + theorem CategoryTheory.Retract.projective 2026-03-15 05:55:55 60ed60f doc(Tactic/Contrapose): typo (#36668) ESTIMATED CHANGES Modified Mathlib/Tactic/Contrapose.lean 2026-03-14 20:09:40 5a2fd49 feat(Algebra/Module/Submodule): Add pointwise negation lemma (#36634) - Add `Submodule.neg_eq_iff_neg_le` proving `-S = S ↔ -S ≤ S` - Make arguments of `Submodule.neg_le_neg` and `Submodule.neg_le` implicit For completeness I added the set version: - Add `Set.inv_eq_iff_inv_subset` proving `s⁻¹ = s ↔ s⁻¹ ⊆ s` and its additive version I did not manage to give a short proof of the submodule version from the set version like it is the case for `neg_le` and `neg_le_neg`. ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Pointwise/Set/Basic.lean + theorem Set.inv_eq_self_iff_inv_subset Modified Mathlib/Algebra/Module/Submodule/Pointwise.lean + theorem Submodule.neg_eq_self_iff_neg_le +/- theorem Submodule.neg_le +/- theorem Submodule.neg_le_neg 2026-03-14 14:51:28 be0a10d chore: replace long terminal `simp only […]`:s (≥4 lemmas) with bare `simp`:s (#36639) The goal of this PR is to decrease the number of times lemmas are called explicitly. Any decrease in compilation time is a welcome side effect, although it is not a primary objective. Trace profiling results (differences <30 ms considered measurement noise): * `Polynomial.degree_sum_le`: unchanged 🎉 * `AlgebraicGeometry.Scheme.PartialMap.ext_iff`: unchanged 🎉 * `MeromorphicAt.inv`: 515 ms before, 469 ms after 🎉 * `IsLowerSet.le_card_inter_finset'`: unchanged 🎉 * `SimpleGraph.adj_and_reachable_delete_edges_iff_exists_cycle`: unchanged 🎉 * `List.Vector.scanl_get`: unchanged 🎉 * `isSeparable_algebraMap`: unchanged 🎉 * `ArithmeticFunction.vonMangoldt.not_summable_residueClass_prime_div`: 643 ms before, 597 ms after 🎉 * `CompleteLattice.isCompactElement_iff_exists_le_sSup_of_le_sSup`: 163 ms before, 120 ms after 🎉 * `ProbabilityTheory.meas_ge_le_variance_div_sq`: unchanged 🎉 * `MvPowerSeries.mem_nonZeroDivisorsRight_of_constantCoeff`: 936 ms before, 485 ms after 🎉 * `Polynomial.mem_span_C_X_sub_C_X_sub_C_iff_eval_eval_eq_zero`: unchanged 🎉 * `ENNReal.limsup_sub_const`: 185 ms before, 95 ms after 🎉 Profiled using `set_option trace.profiler true in`. This PR is batched under the following guidelines: * Up to ~5 changed files per PR * Up to ~25 changed declarations per PR * Up to ~100 changed lines per PR ESTIMATED CHANGES Modified Mathlib/Algebra/Polynomial/Degree/Defs.lean Modified Mathlib/AlgebraicGeometry/RationalMap.lean Modified Mathlib/Analysis/Meromorphic/Basic.lean Modified Mathlib/Combinatorics/SetFamily/HarrisKleitman.lean Modified Mathlib/Combinatorics/SimpleGraph/Connectivity/Connected.lean Modified Mathlib/Data/Vector/Basic.lean Modified Mathlib/FieldTheory/Separable.lean Modified Mathlib/NumberTheory/LSeries/PrimesInAP.lean Modified Mathlib/Order/CompactlyGenerated/Basic.lean Modified Mathlib/Probability/Moments/Variance.lean Modified Mathlib/RingTheory/MvPowerSeries/NoZeroDivisors.lean Modified Mathlib/RingTheory/Polynomial/Ideal.lean Modified Mathlib/Topology/Instances/ENNReal/Lemmas.lean 2026-03-14 13:47:30 55aa437 chore(NumberTheory/NumberField): move number field completion material to new subdir (#36393) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/NumberTheory/NumberField/Completion/FinitePlace.lean + theorem IsDedekindDomain.HeightOneSpectrum.embedding_mul_absNorm + theorem IsDedekindDomain.HeightOneSpectrum.equivHeightOneSpectrum_symm_apply + theorem NumberField.FinitePlace.add_le + theorem NumberField.FinitePlace.coe_apply + theorem NumberField.FinitePlace.embedding_apply + theorem NumberField.FinitePlace.hasFiniteMulSupport + theorem NumberField.FinitePlace.hasFiniteMulSupport_int + theorem NumberField.FinitePlace.isFinitePlace + theorem NumberField.FinitePlace.maximalIdeal_inj + theorem NumberField.FinitePlace.maximalIdeal_injective + theorem NumberField.FinitePlace.maximalIdeal_mk + theorem NumberField.FinitePlace.mk_apply + theorem NumberField.FinitePlace.mk_eq_iff + theorem NumberField.FinitePlace.mk_maximalIdeal + theorem NumberField.FinitePlace.norm_def + theorem NumberField.FinitePlace.norm_embedding' + theorem NumberField.FinitePlace.norm_embedding + theorem NumberField.FinitePlace.norm_embedding_eq + theorem NumberField.FinitePlace.norm_embedding_int + theorem NumberField.FinitePlace.norm_eq_one_iff_notMem + theorem NumberField.FinitePlace.norm_le_one + theorem NumberField.FinitePlace.norm_lt_one_iff_mem + theorem NumberField.FinitePlace.pos_iff + def NumberField.FinitePlace + def NumberField.IsFinitePlace + theorem NumberField.RingOfIntegers.HeightOneSpectrum.absNorm_ne_zero + theorem NumberField.RingOfIntegers.HeightOneSpectrum.adicAbv_add_le_max + theorem NumberField.RingOfIntegers.HeightOneSpectrum.adicAbv_def + theorem NumberField.RingOfIntegers.HeightOneSpectrum.adicAbv_intCast_le_one + theorem NumberField.RingOfIntegers.HeightOneSpectrum.adicAbv_natCast_le_one + theorem NumberField.RingOfIntegers.HeightOneSpectrum.isNonarchimedean_adicAbv + theorem NumberField.RingOfIntegers.HeightOneSpectrum.one_lt_absNorm + theorem NumberField.RingOfIntegers.HeightOneSpectrum.one_lt_absNorm_nnreal + theorem NumberField.isFinitePlace_iff + theorem NumberField.rankOne_hom'_def + theorem NumberField.toNNReal_valued_eq_adicAbv Added Mathlib/NumberTheory/NumberField/Completion/InfinitePlace.lean + theorem NumberField.InfinitePlace.Completion.Rat.norm_infinitePlace_completion + theorem NumberField.InfinitePlace.Completion.WithAbs.ratCast_equiv + theorem NumberField.InfinitePlace.Completion.algebraMap_coe + theorem NumberField.InfinitePlace.Completion.bijective_extensionEmbeddingOfIsReal + theorem NumberField.InfinitePlace.Completion.bijective_extensionEmbedding_of_isComplex + def NumberField.InfinitePlace.Completion.extensionEmbedding + def NumberField.InfinitePlace.Completion.extensionEmbeddingOfIsReal + theorem NumberField.InfinitePlace.Completion.extensionEmbeddingOfIsReal_apply + theorem NumberField.InfinitePlace.Completion.extensionEmbeddingOfIsReal_coe + theorem NumberField.InfinitePlace.Completion.extensionEmbedding_coe + theorem NumberField.InfinitePlace.Completion.isClosed_image_extensionEmbedding + theorem NumberField.InfinitePlace.Completion.isClosed_image_extensionEmbeddingOfIsReal + def NumberField.InfinitePlace.Completion.isometryEquivComplexOfIsComplex + def NumberField.InfinitePlace.Completion.isometryEquivRealOfIsReal + theorem NumberField.InfinitePlace.Completion.isometry_extensionEmbedding + theorem NumberField.InfinitePlace.Completion.isometry_extensionEmbeddingOfIsReal + theorem NumberField.InfinitePlace.Completion.liesOver_conjugate_extensionEmbedding + theorem NumberField.InfinitePlace.Completion.liesOver_extensionEmbedding + theorem NumberField.InfinitePlace.Completion.norm_coe + def NumberField.InfinitePlace.Completion.ringEquivComplexOfIsComplex + def NumberField.InfinitePlace.Completion.ringEquivRealOfIsReal + theorem NumberField.InfinitePlace.Completion.subfield_ne_real_of_isComplex + theorem NumberField.InfinitePlace.Completion.surjective_extensionEmbeddingOfIsReal + theorem NumberField.InfinitePlace.Completion.surjective_extensionEmbedding_of_isComplex + theorem NumberField.InfinitePlace.LiesOver.embedding_liesOver_of_isReal + theorem NumberField.InfinitePlace.LiesOver.extensionEmbedding_liesOver_of_isReal + theorem NumberField.InfinitePlace.LiesOver.isometry_algebraMap + theorem NumberField.InfinitePlace.isometry_embedding + theorem NumberField.InfinitePlace.isometry_embedding_of_isReal Modified Mathlib/NumberTheory/NumberField/FinitePlaces.lean - theorem IsDedekindDomain.HeightOneSpectrum.embedding_mul_absNorm - theorem IsDedekindDomain.HeightOneSpectrum.equivHeightOneSpectrum_symm_apply - theorem NumberField.FinitePlace.add_le - theorem NumberField.FinitePlace.coe_apply - theorem NumberField.FinitePlace.embedding_apply - theorem NumberField.FinitePlace.hasFiniteMulSupport - theorem NumberField.FinitePlace.hasFiniteMulSupport_int - theorem NumberField.FinitePlace.isFinitePlace - theorem NumberField.FinitePlace.maximalIdeal_inj - theorem NumberField.FinitePlace.maximalIdeal_injective - theorem NumberField.FinitePlace.maximalIdeal_mk - theorem NumberField.FinitePlace.mk_apply - theorem NumberField.FinitePlace.mk_eq_iff - theorem NumberField.FinitePlace.mk_maximalIdeal - theorem NumberField.FinitePlace.norm_def - theorem NumberField.FinitePlace.norm_embedding' - theorem NumberField.FinitePlace.norm_embedding - theorem NumberField.FinitePlace.norm_embedding_eq - theorem NumberField.FinitePlace.norm_embedding_int - theorem NumberField.FinitePlace.norm_eq_one_iff_notMem - theorem NumberField.FinitePlace.norm_le_one - theorem NumberField.FinitePlace.norm_lt_one_iff_mem - theorem NumberField.FinitePlace.pos_iff - def NumberField.FinitePlace - def NumberField.IsFinitePlace - theorem NumberField.RingOfIntegers.HeightOneSpectrum.absNorm_ne_zero - theorem NumberField.RingOfIntegers.HeightOneSpectrum.adicAbv_add_le_max - theorem NumberField.RingOfIntegers.HeightOneSpectrum.adicAbv_def - theorem NumberField.RingOfIntegers.HeightOneSpectrum.adicAbv_intCast_le_one - theorem NumberField.RingOfIntegers.HeightOneSpectrum.adicAbv_natCast_le_one - theorem NumberField.RingOfIntegers.HeightOneSpectrum.isNonarchimedean_adicAbv - theorem NumberField.RingOfIntegers.HeightOneSpectrum.one_lt_absNorm - theorem NumberField.RingOfIntegers.HeightOneSpectrum.one_lt_absNorm_nnreal - theorem NumberField.isFinitePlace_iff - theorem NumberField.rankOne_hom'_def - theorem NumberField.toNNReal_valued_eq_adicAbv Modified Mathlib/NumberTheory/NumberField/InfiniteAdeleRing.lean Modified Mathlib/NumberTheory/NumberField/InfinitePlace/Completion.lean - theorem NumberField.InfinitePlace.Completion.Rat.norm_infinitePlace_completion - theorem NumberField.InfinitePlace.Completion.WithAbs.ratCast_equiv - theorem NumberField.InfinitePlace.Completion.algebraMap_coe - theorem NumberField.InfinitePlace.Completion.bijective_extensionEmbeddingOfIsReal - theorem NumberField.InfinitePlace.Completion.bijective_extensionEmbedding_of_isComplex - def NumberField.InfinitePlace.Completion.extensionEmbedding - def NumberField.InfinitePlace.Completion.extensionEmbeddingOfIsReal - theorem NumberField.InfinitePlace.Completion.extensionEmbeddingOfIsReal_apply - theorem NumberField.InfinitePlace.Completion.extensionEmbeddingOfIsReal_coe - theorem NumberField.InfinitePlace.Completion.extensionEmbedding_coe - theorem NumberField.InfinitePlace.Completion.isClosed_image_extensionEmbedding - theorem NumberField.InfinitePlace.Completion.isClosed_image_extensionEmbeddingOfIsReal - def NumberField.InfinitePlace.Completion.isometryEquivComplexOfIsComplex - def NumberField.InfinitePlace.Completion.isometryEquivRealOfIsReal - theorem NumberField.InfinitePlace.Completion.isometry_extensionEmbedding - theorem NumberField.InfinitePlace.Completion.isometry_extensionEmbeddingOfIsReal - theorem NumberField.InfinitePlace.Completion.liesOver_conjugate_extensionEmbedding - theorem NumberField.InfinitePlace.Completion.liesOver_extensionEmbedding - theorem NumberField.InfinitePlace.Completion.norm_coe - def NumberField.InfinitePlace.Completion.ringEquivComplexOfIsComplex - def NumberField.InfinitePlace.Completion.ringEquivRealOfIsReal - theorem NumberField.InfinitePlace.Completion.subfield_ne_real_of_isComplex - theorem NumberField.InfinitePlace.Completion.surjective_extensionEmbeddingOfIsReal - theorem NumberField.InfinitePlace.Completion.surjective_extensionEmbedding_of_isComplex - theorem NumberField.InfinitePlace.LiesOver.embedding_liesOver_of_isReal - theorem NumberField.InfinitePlace.LiesOver.extensionEmbedding_liesOver_of_isReal - theorem NumberField.InfinitePlace.LiesOver.isometry_algebraMap - theorem NumberField.InfinitePlace.isometry_embedding - theorem NumberField.InfinitePlace.isometry_embedding_of_isReal Modified Mathlib/NumberTheory/NumberField/ProductFormula.lean 2026-03-14 13:47:28 272dcf5 feat: haar measures on short exact sequences (#32672) This PR proves that if `1 → A → B → C → 1` is a short exact sequence of topological groups, then Haar measures on `A` and `C` induce a Haar measure on `B`. The final result of the file is a consequence needed for FLT: If `B → C` is injective on an open set `U`, then `U` has bounded measure. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/MeasureTheory/Integral/Bochner/Basic.lean + theorem MeasureTheory.dist_integral_le_lintegral_edist + theorem MeasureTheory.edist_integral_le_lintegral_edist Added Mathlib/MeasureTheory/Measure/Haar/Extension.lean + theorem TopologicalGroup.IsSES.inducedMeasure_lt_of_injOn + theorem TopologicalGroup.IsSES.integral_inducedMeasure + theorem TopologicalGroup.IsSES.integral_pullback_invFun_apply + theorem TopologicalGroup.IsSES.integrate_apply + theorem TopologicalGroup.IsSES.integrate_mono + theorem TopologicalGroup.IsSES.pullback_def + theorem TopologicalGroup.IsSES.pushforward_apply_apply + theorem TopologicalGroup.IsSES.pushforward_def + theorem TopologicalGroup.IsSES.pushforward_mono Modified Mathlib/Topology/ContinuousMap/CompactlySupported.lean + theorem CompactlySupportedContinuousMap.pullback_monoidHom_def 2026-03-14 13:08:03 c39f23b feat: covariance lemmas (#36615) Covariance of variables divided by a constant, expanded versions of covariance of a subtraction. ESTIMATED CHANGES Modified Mathlib/Probability/Moments/Covariance.lean + theorem ProbabilityTheory.covariance_fun_div_left + theorem ProbabilityTheory.covariance_fun_div_right + theorem ProbabilityTheory.covariance_fun_sub_left + theorem ProbabilityTheory.covariance_fun_sub_right 2026-03-14 13:08:01 f0e87e9 feat(MeasureTheory): continuity from below implies countable additivity (#36512) ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Measure/AddContent.lean + theorem MeasureTheory.addContent_iUnion_eq_tsum_of_addContent_iUnion_eq_iSup 2026-03-14 13:07:59 9e2e062 feat(NumberTheory/NumberField/InfiniteAdeleRing): norm and product formula for the infinite adele ring (#36204) ESTIMATED CHANGES Modified Mathlib/NumberTheory/NumberField/InfiniteAdeleRing.lean + theorem NumberField.InfiniteAdeleRing.coe_norm_eq_abs_norm + theorem NumberField.InfiniteAdeleRing.norm_def + theorem NumberField.InfiniteAdeleRing.norm_eq_zero_of_not_isUnit 2026-03-14 13:07:56 2e273c9 feat(Algebra): add `AlgHom.ulift` (#35590) ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/Basic.lean + def ULift.algebra' + theorem ULift.algebraMap_apply' Modified Mathlib/Algebra/Algebra/Equiv.lean + theorem AlgHom.down_ulift_apply + def AlgHom.ulift + theorem AlgHom.ulift_apply + theorem ULift.down_algEquiv_symm_apply Modified Mathlib/Algebra/Ring/ULift.lean + theorem RingHom.comp_ulift_eq + theorem RingHom.down_ulift_apply + def RingHom.ulift + theorem RingHom.ulift_apply 2026-03-14 12:09:58 5f404ea feat(GroupTheory/Finiteness): copy FreeGroup lemmas to FreeMonoid (#36630) In #35033 and #36589 an instance and lemma were added about finitely generated FreeGroups, duplicate these for FreeMonoids. ESTIMATED CHANGES Modified Mathlib/GroupTheory/Finiteness.lean + theorem Monoid.fg_iff_exists_freeGroup_hom_surjective_finite 2026-03-14 12:09:55 cd059f1 feat(Translate): add support for specifying argument names (#36402) This PR adds a `(rename := x → y, ...)` option to `@[to_additive]` and `@[to_dual]` for specifying the argument names of the translated declaration. ESTIMATED CHANGES Modified Mathlib/Order/Hom/Lattice.lean - theorem InfHom.mk_le_mk - def InfHom.subtypeVal - theorem InfHom.subtypeVal_apply - theorem InfHom.subtypeVal_coe +/- theorem SupHom.mk_le_mk Modified Mathlib/Order/Lattice.lean Modified Mathlib/Tactic/Translate/Core.lean + def Mathlib.Tactic.Translate.elabRename +/- def Mathlib.Tactic.Translate.renameBinderNames Modified Mathlib/Tactic/Translate/ToAdditive.lean Modified Mathlib/Tactic/Translate/ToDual.lean Modified MathlibTest/ToDual.lean + def renameTest 2026-03-14 12:09:53 edb32c4 feat(Probability/UniformOn): add uniformOn_pi (#36276) ESTIMATED CHANGES Modified Mathlib/Probability/UniformOn.lean + theorem ProbabilityTheory.uniformOn_pi 2026-03-14 12:09:51 2d7ada4 feat(NumberTheory/ArithmeticFunction/Defs): `Algebra` instance on `ArithmeticFunction` (#36176) This PR adds the `Algebra` instance on `ArithmeticFunction`. ESTIMATED CHANGES Modified Mathlib/NumberTheory/ArithmeticFunction/Defs.lean + theorem ArithmeticFunction.smul_map 2026-03-14 11:33:41 0aeb8ea feat(Topology/Order): Remove hypothesis in extendFrom lemmas (#36627) Remove a hypothesis in some extendFrom lemmas by using cases. ESTIMATED CHANGES Modified Mathlib/Topology/Order/ExtendFrom.lean Modified Mathlib/Topology/Order/Rolle.lean 2026-03-14 11:33:39 f349f79 feat: add `not_linearIndependent_iff` variants (#36250) These are useful because you know that `∀ i ∈ f.support, g i ≠ 0` whereas `not_linearIndependent_iff` only gives you `∃ i ∈ s, g i ≠ 0`. In a finset language you could state this is `Nonempty s` + `∀ i ∈ s, g i ≠ 0` but I think just using `Finsupp` is better. ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/LinearIndependent/Defs.lean + theorem not_linearIndependent_iff_finsupp + theorem not_linearIndependent_iff_linearCombination 2026-03-14 11:33:37 a8c0a9d feat(LinearAlgebra/UnitaryGroup): the transpose and conjugate of a unitary matrix as a unitary matrix (#35447) ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/UnitaryGroup.lean + def Matrix.UnitaryGroup.map_star + theorem Matrix.UnitaryGroup.map_star_inv_eq_transpose + def Matrix.UnitaryGroup.transpose + theorem Matrix.UnitaryGroup.transpose_inv_eq_map_star + theorem Matrix.map_star_mem_unitaryGroup_iff + theorem Matrix.transpose_mem_unitaryGroup_iff 2026-03-14 11:33:36 731b7f4 feat(CategoryTheory): exact functors from the localization w.r.t. a Serre class (#34444) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Abelian/SerreClass/Localization.lean + theorem CategoryTheory.ObjectProperty.SerreClassLocalization.essImage_whiskeringLeft + theorem CategoryTheory.ObjectProperty.SerreClassLocalization.exactFunctor_comp_iff + theorem CategoryTheory.ObjectProperty.SerreClassLocalization.inverseImage_isomorphisms + theorem CategoryTheory.ObjectProperty.SerreClassLocalization.isIso_map_iff + theorem CategoryTheory.ObjectProperty.SerreClassLocalization.preservesFiniteColimits + theorem CategoryTheory.ObjectProperty.SerreClassLocalization.preservesFiniteColimits_comp_iff + theorem CategoryTheory.ObjectProperty.SerreClassLocalization.preservesFiniteLimits + theorem CategoryTheory.ObjectProperty.SerreClassLocalization.preservesFiniteLimits_comp_iff + def CategoryTheory.ObjectProperty.SerreClassLocalization.whiskeringLeft + theorem CategoryTheory.ObjectProperty.SerreClassLocalization.whiskeringLeft_obj_obj Modified Mathlib/CategoryTheory/Limits/ExactFunctor.lean Modified Mathlib/CategoryTheory/Localization/Construction.lean Modified Mathlib/CategoryTheory/Localization/Predicate.lean + def CategoryTheory.Localization.fullyFaithfulWhiskeringLeft 2026-03-14 11:22:00 11d58e7 feat(RamificationInertia): decomposition fields and inertia fields are unique (up to isomorphism) (#35800) Add uniqueness (up to isomorphism) of the decomposition and inertia fields. Also, fixes some typos. ESTIMATED CHANGES Modified Mathlib/NumberTheory/RamificationInertia/HilbertTheory.lean + theorem IsDecompositionField.algebraMap_ringEquiv_apply + theorem IsDecompositionField.algebraMap_ringEquiv_symm_apply + theorem IsInertiaField.algebraMap_ringEquiv_apply + theorem IsInertiaField.algebraMap_ringEquiv_symm_apply 2026-03-14 10:21:58 a2d3220 feat(NumberTheory/Modular): interior and closure of fundamental domain (#35946) Show that the open and closed fundamental domains for the modular group are related by the interior / closure operations. ESTIMATED CHANGES Modified Mathlib/Analysis/Complex/Norm.lean + theorem Complex.one_le_normSq_iff + theorem Complex.one_lt_normSq_iff Modified Mathlib/Analysis/Complex/UpperHalfPlane/Topology.lean + theorem UpperHalfPlane.isOpenMap_im + theorem UpperHalfPlane.isOpenMap_norm + theorem UpperHalfPlane.isOpenMap_re Modified Mathlib/NumberTheory/Modular.lean + theorem ModularGroup.coe_fd + theorem ModularGroup.coe_fdo + theorem ModularGroup.fd_eq_closure_fdo + theorem ModularGroup.fdo_eq_interior_fd + theorem ModularGroup.fdo_subset_fd + theorem ModularGroup.isClosed_coe_fd + theorem ModularGroup.isClosed_fd + theorem ModularGroup.isOpen_fdo 2026-03-14 09:23:15 dbf6364 chore: replace long terminal `simp only […]`:s (≥5 lemmas) with bare `simp`:s (#36631) The goal of this PR is to decrease the number of times lemmas are called explicitly. Any decrease in compilation time is a welcome side effect, although it is not a primary objective. Trace profiling results (differences <30 ms considered measurement noise): * `Complex.HadamardThreeLines.norm_le_interp_of_mem_verticalClosedStrip₀₁'`: unchanged 🎉 * `spectrum.hasFPowerSeriesOnBall_inverse_one_sub_smul`: unchanged 🎉 * `Finset.nnnorm_prod_le_sup_nnnorm`: unchanged 🎉 * `Nat.WithBot.add_eq_one_iff`: unchanged 🎉 * `Besicovitch.exists_disjoint_closedBall_covering_ae_of_finiteMeasure_aux`: unchanged 🎉 * `tendsto_sub_mul_tsum_nat_cpow`: unchanged 🎉 * `hasDerivAt_jacobiTheta₂_fst`: unchanged 🎉 * `WittVector.RecursionMain.succNthDefiningPoly_degree`: unchanged 🎉 * `C_p_pow_dvd_bind₁_rename_wittPolynomial_sub_sum`: unchanged 🎉 * `Profinite.Nobeling.isClosedEmbedding`: unchanged 🎉 * `ENNReal.limsup_const_sub`: unchanged 🎉 Profiled using `set_option trace.profiler true in`. This PR is batched under the following guidelines: * Up to ~5 changed files per PR * Up to ~25 changed declarations per PR * Up to ~100 changed lines per PR ESTIMATED CHANGES Modified Mathlib/Analysis/Complex/Hadamard.lean Modified Mathlib/Analysis/Normed/Algebra/Spectrum.lean Modified Mathlib/Analysis/Normed/Group/Ultra.lean Modified Mathlib/Data/Nat/WithBot.lean Modified Mathlib/MeasureTheory/Covering/Besicovitch.lean Modified Mathlib/MeasureTheory/Covering/Differentiation.lean Modified Mathlib/NumberTheory/LSeries/RiemannZeta.lean Modified Mathlib/NumberTheory/ModularForms/JacobiTheta/TwoVariable.lean Modified Mathlib/RingTheory/WittVector/FrobeniusFractionField.lean Modified Mathlib/RingTheory/WittVector/StructurePolynomial.lean Modified Mathlib/Topology/Category/Profinite/Nobeling/Induction.lean Modified Mathlib/Topology/Instances/ENNReal/Lemmas.lean 2026-03-14 09:23:13 0e3327b chore(Order/GameAdd): add `elab_as_elim` attributes (#33416) This PR does three things: - Rename `GameAdd.fix` to the more illustrative `GameAdd.recursion` - Add `elab_as_elim` attributes on `GameAdd.recursion` - Deprecate the duplicate `GameAdd.induction` ESTIMATED CHANGES Modified Mathlib/Order/GameAdd.lean - def Prod.GameAdd.fix - theorem Prod.GameAdd.fix_eq + def Prod.GameAdd.recursion + theorem Prod.GameAdd.recursion_eq - def Sym2.GameAdd.fix - theorem Sym2.GameAdd.fix_eq + def Sym2.GameAdd.recursion + theorem Sym2.GameAdd.recursion_eq Modified Mathlib/SetTheory/ZFC/Ordinal.lean 2026-03-14 09:06:27 e772d76 chore: replace long terminal `rw […]`:s (≥6 lemmas) with bare `simp`:s (#36382) The goal of this PR is to decrease the number of times lemmas are called explicitly. Any decrease in compilation time is a welcome side effect, although it is not a primary objective. Trace profiling results (differences <30 ms considered measurement noise): * `Polynomial.derivative_pow`: unchanged 🎉 * `NormedSpace.expSeries_apply_zero`: unchanged 🎉 * `EReal.sign_mul_inv_abs`: 193 ms before, 157 ms after 🎉 * `Matrix.trace_eq_sum_roots_charpoly_of_splits`: unchanged 🎉 * `RingOfIntegers.isUnit_norm_of_isGalois`: unchanged 🎉 * `sdiff_sup`: unchanged 🎉 * `MvPolynomial.quotientEquivQuotientMvPolynomial_rightInverse`: unchanged 🎉 * `TopCat.Sheaf.existsUnique_gluing'`: unchanged 🎉 * `StalkSkyscraperPresheafAdjunctionAuxs.to_skyscraper_fromStalk`: unchanged 🎉 Profiled using `set_option trace.profiler true in`. This PR is batched under the following guidelines: * Up to ~5 changed files per PR * Up to ~25 changed declarations per PR * Up to ~100 changed lines per PR ESTIMATED CHANGES Modified Mathlib/Algebra/Polynomial/Derivative.lean Modified Mathlib/Analysis/Normed/Algebra/Exponential.lean Modified Mathlib/Data/EReal/Inv.lean Modified Mathlib/LinearAlgebra/Matrix/Charpoly/Eigs.lean Modified Mathlib/NumberTheory/NumberField/Norm.lean Modified Mathlib/Order/BooleanAlgebra/Basic.lean Modified Mathlib/RingTheory/Polynomial/Quotient.lean Modified Mathlib/Topology/Sheaves/SheafCondition/UniqueGluing.lean Modified Mathlib/Topology/Sheaves/Skyscraper.lean 2026-03-14 02:26:16 e8bf9c4 fix(Translate): don't panic when translating an axiom (#36477) This PR fixes a panic in `to_additive`/`to_dual` which happens when translating an axiom. This panic also appears when translating an imported theorem (in the module system). ESTIMATED CHANGES Modified Mathlib/Tactic/Translate/Core.lean Modified MathlibTest/toAdditive.lean 2026-03-14 00:50:13 a138487 ci: get cache for parent commit, try 2 (revert #36608) (#36623) With the update to leantar v0.1.17, the changes from #33044 should be OK again. This reverts commit 911abcfa945d7d7fbcc073606307a97e10c66c1f. Cf. [#mathlib4 > Mathlib has moved to the new module system @ 💬](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Mathlib.20has.20moved.20to.20the.20new.20module.20system/near/579345546) ESTIMATED CHANGES Modified .github/workflows/build_template.yml Modified Cache/IO.lean 2026-03-13 23:21:45 1efa5b0 chore(CategoryTheory/Sites): generalize universes in `Presieve.isSheafFor_iff_yonedaSheafCondition` (#36461) We add a `shrinkYoneda` version and deduce the existing one from that. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/ShrinkYoneda.lean + def CategoryTheory.shrinkYonedaIsoYoneda + theorem CategoryTheory.shrinkYonedaObjObjEquiv_map_app + theorem CategoryTheory.shrinkYonedaObjObjEquiv_obj_map Modified Mathlib/CategoryTheory/Sites/IsSheafFor.lean - theorem CategoryTheory.Presieve.extension_iff_amalgamation + theorem CategoryTheory.Presieve.isSheafFor_iff_bijective_shrinkFunctor_ι_comp - def CategoryTheory.Presieve.natTransEquivCompatibleFamily + theorem CategoryTheory.Presieve.shrinkFunctor_ι_comp_eq_iff_isAmalgamation Modified Mathlib/CategoryTheory/Sites/Sieves.lean + def CategoryTheory.Sieve.shrinkFunctor + def CategoryTheory.Sieve.shrinkFunctorUliftFunctorIso + theorem CategoryTheory.Sieve.shrinkFunctorUliftFunctorIso_inv_ι 2026-03-13 23:21:44 fb8315e feat(MeasureTheory/Constructions/Pi): add pi_pi_finset (#36288) This PR adds `Measure.pi_pi_finset`, which computes the product measure of a partial pi set `(s : Set ι).pi f` as `∏ i ∈ s, μ i (f i)` when all measures are probability measures. This generalises `Measure.pi_pi` from `Set.univ.pi` to an arbitrary `Finset`. ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Constructions/Pi.lean +/- theorem MeasureTheory.Measure.pi_pi + theorem MeasureTheory.Measure.pi_pi_finset 2026-03-13 23:10:46 709cd81 ci: Revert "chore(cache): Update leantar to 0.1.18 (#36614)" (#36624) CI is failing again after the update, so reverting for now. This reverts commit 7c885dc01c26f0eea1ac382e1a1dab674e966ff2. ESTIMATED CHANGES Modified Cache/IO.lean 2026-03-13 21:23:34 7c885dc chore(cache): Update leantar to 0.1.18 (#36614) This includes a [bug fix](https://github.com/digama0/leangz/commit/7f12e76ca0384d558f568e9df441b43a747601d8) that is critical to our cache push logic. It caused failures today after #33044, e.g. https://github.com/leanprover-community/mathlib4/actions/runs/23060564805/job/66985730455 ESTIMATED CHANGES Modified Cache/IO.lean 2026-03-13 20:58:03 c335381 feat(CategoryTheory/MorphismProperty): Change mono/epi/iso morphismproperty to abbrev (#36610) This PR changes `MorphismProperty.monomorphisms`, `MorphismProperty.epimorphisms` and `MorphismProperty.isomorphisms` to being `abbrev`s. This allows instance search to look for `monomorphisms C f` etc... ESTIMATED CHANGES Modified Mathlib/AlgebraicGeometry/Morphisms/Finite.lean Modified Mathlib/AlgebraicGeometry/Morphisms/FlatDescent.lean Modified Mathlib/CategoryTheory/MorphismProperty/Basic.lean - def CategoryTheory.MorphismProperty.epimorphisms - def CategoryTheory.MorphismProperty.isomorphisms - def CategoryTheory.MorphismProperty.monomorphisms Modified Mathlib/CategoryTheory/MorphismProperty/Limits.lean 2026-03-13 19:58:17 b00721f fix(Translate): check if target is reserved name (#36383) This PR makes sure that `to_dual`/`to_additive` can translate between reserved names by first realizing them. This is needed in #35031 to translate `CoconeMorphism.mk.congr_simp`. I've made a private function `realizeGlobalConst` which is basically a variant of `Lean.hasConst` but which also checks for reserved names. This should ideally be an API function provided by Lean, but I didn't find it. ESTIMATED CHANGES Modified Mathlib/Tactic/Translate/Core.lean Modified MathlibTest/toAdditive.lean 2026-03-13 19:39:29 0764272 feat: uniqueness of partial fraction decomposition (#35702) We prove a uniqueness theorem for each existence theorem in the file. ESTIMATED CHANGES Modified Mathlib/Algebra/Polynomial/PartialFractions.lean +/- theorem Polynomial.eq_quo_mul_pow_add_sum_rem_mul_pow +/- theorem Polynomial.eq_quo_mul_prod_add_sum_rem_mul_prod +/- theorem Polynomial.eq_quo_mul_prod_pow_add_sum_rem_mul_prod_pow +/- theorem Polynomial.mul_prod_pow_inverse_eq_quo_add_sum_rem_mul_pow_inverse + theorem Polynomial.quo_add_rem_div_add_rem_div_unique + theorem Polynomial.quo_add_sum_rem_div_unique + theorem Polynomial.quo_add_sum_rem_mul_pow_inverse_unique + theorem Polynomial.quo_mul_pow_add_sum_rem_mul_pow_unique + theorem Polynomial.quo_mul_prod_add_sum_rem_mul_prod_unique + theorem Polynomial.quo_mul_prod_pow_add_sum_rem_mul_prod_pow_unique 2026-03-13 18:43:25 f2326c1 feat: lemmas on ordinal exponentiation/logarithms (#36583) Downstreamed from the CGT repo. ESTIMATED CHANGES Modified Mathlib/SetTheory/Ordinal/Exponential.lean + theorem Ordinal.div_two_opow_log + theorem Ordinal.lt_omega0_omega0_opow + theorem Ordinal.one_lt_opow + theorem Ordinal.one_lt_pow + theorem Ordinal.opow_mul_lt_opow + theorem Ordinal.two_opow_log_add 2026-03-13 18:43:22 3c1397d fix(Translate): correctly translate namespace of private names (#36581) This PR fixes a limitation of `to_additive`/`to_dual` when used on private declarations. The name translation algorithm has been improved so that when it tries to translate the namespace, it tries this both with and without the private prefix. ESTIMATED CHANGES Modified Mathlib/Tactic/Translate/Core.lean Modified MathlibTest/ToDual.lean 2026-03-13 18:43:20 bf9541a chore(CategoryTheory/Functor/Category): use `to_dual` (#36576) This PR uses `to_dual` on some theorems about the category instance of functor. `to_dual` can deal with `Functor.category` correctly, because the fields `NatTrans` and `vcomp` are already tagged `to_dual` and the arguments are swapped in the expected way. `hcomp` has two possible definitions that are dual to eachother and equivalent. For `to_dual` to use it, we need to prove that they are equivalent, with `to_dual_insert_cast`. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Functor/Category.lean - theorem CategoryTheory.NatTrans.mono_of_mono_app Modified Mathlib/CategoryTheory/NatTrans.lean 2026-03-13 18:43:17 ca58971 feat(CategoryTheory/MorphismProperty): Morphism property from object properties (#36479) Introduces `MorphismProperty.ofObjectProperty` with basic API. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/MorphismProperty/OfObjectProperty.lean + theorem CategoryTheory.MorphismProperty.monotone_ofObjectProperty_left + theorem CategoryTheory.MorphismProperty.monotone_ofObjectProperty_right + def CategoryTheory.MorphismProperty.ofObjectProperty + theorem CategoryTheory.MorphismProperty.ofObjectProperty_iff + theorem CategoryTheory.MorphismProperty.ofObjectProperty_inverseImage + theorem CategoryTheory.MorphismProperty.ofObjectProperty_map_le 2026-03-13 18:00:22 c36c888 doc(CategoryTheory/Triangulated/Pretriangulated): Add stacks tag 014A (#36601) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Triangulated/Pretriangulated.lean 2026-03-13 18:00:20 2466e3b fix(CategoryTheory/Preadditive/Biproducts): Fix names in docstrings (#36600) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Preadditive/Biproducts.lean 2026-03-13 18:00:18 7564c5a feat: generalize some `ContinuousMul` hypotheses to `SeparatelyContinuousMul` (#36562) As discussed at [#mathlib4 > A `ContinuousConstMul` class @ 💬](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/A.20.60ContinuousConstMul.60.20class/near/578259560) ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Constructions/BorelSpace/Basic.lean Modified Mathlib/MeasureTheory/Measure/Content.lean +/- theorem MeasureTheory.Content.is_mul_left_invariant_innerContent +/- theorem MeasureTheory.Content.is_mul_left_invariant_outerMeasure Modified Mathlib/Topology/Algebra/Algebra/Rat.lean Modified Mathlib/Topology/Algebra/Constructions.lean Modified Mathlib/Topology/Algebra/Field.lean +/- theorem Filter.tendsto_cocompact_mul_left₀ +/- theorem Filter.tendsto_cocompact_mul_right₀ Modified Mathlib/Topology/Algebra/Group/ClosedSubgroup.lean Modified Mathlib/Topology/Algebra/Group/Quotient.lean Modified Mathlib/Topology/Algebra/GroupWithZero.lean Modified Mathlib/Topology/Algebra/InfiniteSum/Group.lean Modified Mathlib/Topology/Algebra/OpenSubgroup.lean +/- theorem OpenSubgroup.isClopen +/- theorem OpenSubgroup.isClosed +/- theorem Subgroup.discreteTopology +/- theorem Subgroup.isClosed_of_isOpen +/- theorem Subgroup.isOpen_mono +/- theorem Subgroup.isOpen_of_mem_nhds +/- theorem Subgroup.isOpen_of_one_mem_interior +/- theorem Subgroup.quotient_finite_of_isOpen Modified Mathlib/Topology/ApproximateUnit.lean +/- theorem Filter.IsApproximateUnit.iff_le_nhds_one +/- theorem Filter.IsApproximateUnit.iff_neBot_and_le_nhds_one +/- theorem Filter.IsApproximateUnit.nhds_one Modified Mathlib/Topology/ContinuousMap/StoneWeierstrass.lean 2026-03-13 18:00:16 63057c9 feat: add `NonUnitalSubring.centralizer` (#36547) We have this for all the other variants (`NonUnitalSemiring`, `Subsemiring`, `Subring`), but this one was missing. The lemmas are copy-pasted from their counterparts. ESTIMATED CHANGES Modified Mathlib/Algebra/Ring/Subring/Basic.lean + theorem Subring.centralizer_toNonUnitalSubring Modified Mathlib/RingTheory/NonUnitalSubring/Basic.lean + theorem NonUnitalSubring.center_le_centralizer + def NonUnitalSubring.centralizer + theorem NonUnitalSubring.centralizer_eq_top_iff_subset + theorem NonUnitalSubring.centralizer_le + theorem NonUnitalSubring.centralizer_toNonUnitalSubsemiring + theorem NonUnitalSubring.centralizer_univ + theorem NonUnitalSubring.closure_le_centralizer_centralizer + theorem NonUnitalSubring.coe_centralizer + theorem NonUnitalSubring.mem_centralizer_iff 2026-03-13 17:41:26 749cae3 chore: replace long terminal `simp only […]`:s (≥6 lemmas) with bare `simp`:s (#36565) The goal of this PR is to decrease the number of times lemmas are called explicitly. Any decrease in compilation time is a welcome side effect, although it is not a primary objective. Trace profiling results (differences <30 ms considered measurement noise): * `Polynomial.natDegree_multiset_prod_X_sub_C_eq_card`: unchanged 🎉 * `UpperHalfPlane.ModularGroup_T_zpow_mem_verticalStrip`: unchanged 🎉 * `cexp_neg_quadratic_isLittleO_abs_rpow_cocompact`: unchanged 🎉 * `ContinuousMap.idealOfSet_ofIdeal_eq_closure`: unchanged 🎉 * `tendsto_ite`: unchanged 🎉 Profiled using `set_option trace.profiler true in`. This PR is batched under the following guidelines: * Up to ~5 changed files per PR * Up to ~25 changed declarations per PR * Up to ~100 changed lines per PR ESTIMATED CHANGES Modified Mathlib/Analysis/Complex/UpperHalfPlane/Topology.lean Modified Mathlib/Analysis/SpecialFunctions/Gaussian/PoissonSummation.lean Modified Mathlib/Topology/ContinuousMap/Ideals.lean Modified Mathlib/Topology/IndicatorConstPointwise.lean 2026-03-13 17:27:37 911abcf ci: revert #33044 (#36608) This seems to be causing build problems, and after some discussion with @marcelolynch I don't understand how this helps after all: [#mathlib4 > CI failure @ 💬](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/CI.20failure/near/579315155) ESTIMATED CHANGES Modified .github/workflows/build_template.yml 2026-03-13 15:13:06 090e39d ci: also get cache for parent commit (#33044) Instead of only attempting to fetch the cache corresponding to the commit, we also try to fetch the cache for the "parent" commit as well. The parent commit is taken from the following candidates in the following order: - `github.event.before`: the last pushed commit; exists for `pull_request_target: synchronize` and `push` events - `github.pull_request.base.sha`: the commit for the base branch; exists for `pull_request_target: opened` (and `reopened`) events - `HEAD^`: exists for all events, but the cache may not have been uploaded cf. https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Mathlib.20has.20moved.20to.20the.20new.20module.20system/near/563452000 ESTIMATED CHANGES Modified .github/workflows/build_template.yml 2026-03-13 14:13:55 778f8e6 chore(Tactic): remove all `backward.privateInPublic` (#36568) This PR gets rid of all `backward.privateInPublic` in the `Mathlib.Tactic` folder. ESTIMATED CHANGES Modified Mathlib/Tactic/CategoryTheory/ToApp.lean Modified Mathlib/Tactic/FunProp/Theorems.lean Modified Mathlib/Tactic/Linter/MinImports.lean Modified Mathlib/Tactic/Peel.lean + theorem Mathlib.Tactic.Peel.and_imp_left_of_imp_imp + theorem Mathlib.Tactic.Peel.eventually_congr + theorem Mathlib.Tactic.Peel.eventually_imp + theorem Mathlib.Tactic.Peel.frequently_congr + theorem Mathlib.Tactic.Peel.frequently_imp Modified Mathlib/Tactic/Ring/Common.lean Modified Mathlib/Tactic/Simps/Basic.lean Modified Mathlib/Tactic/TFAE.lean + def Mathlib.Tactic.TFAE.Parser.binder + def Mathlib.Tactic.TFAE.Parser.impArrow + def Mathlib.Tactic.TFAE.Parser.impFrom + def Mathlib.Tactic.TFAE.Parser.impIff + def Mathlib.Tactic.TFAE.Parser.impTo + def Mathlib.Tactic.TFAE.Parser.tfaeHaveDecl + def Mathlib.Tactic.TFAE.Parser.tfaeHaveEqnsDecl + def Mathlib.Tactic.TFAE.Parser.tfaeHaveIdDecl + def Mathlib.Tactic.TFAE.Parser.tfaeHaveIdLhs + def Mathlib.Tactic.TFAE.Parser.tfaeHavePatDecl + def Mathlib.Tactic.TFAE.Parser.tfaeType Modified Mathlib/Tactic/ToExpr.lean 2026-03-13 12:23:12 3f94ad8 chore(Order/Concept): `IsIntent` and `IsExtent` (#29996) We define predicates for a set to be an intent/extent, and use them to define alternate constructors for a concept. Using these, we golf the complete lattice instances. The fields `Concept.intent` and `Concept.extent` already existed, and these serve as unbundled versions of them. ESTIMATED CHANGES Modified Mathlib/Order/Concept.lean - theorem Concept.extent_bot - theorem Concept.extent_inf - theorem Concept.extent_sInf - theorem Concept.extent_sSup - theorem Concept.extent_sup - theorem Concept.extent_top - theorem Concept.intent_bot - theorem Concept.intent_inf - theorem Concept.intent_sInf - theorem Concept.intent_sSup - theorem Concept.intent_sup - theorem Concept.intent_top + theorem Concept.isExtent_extent + theorem Concept.isExtent_iff_exists_concept + theorem Concept.isIntent_iff_exists_concept + theorem Concept.isIntent_intent + def Concept.ofIsExtent + def Concept.ofIsIntent + def Order.IsExtent + def Order.IsIntent + theorem Order.isExtent_iff + theorem Order.isExtent_lowerPolar + theorem Order.isIntent_iff + theorem Order.isIntent_upperPolar + theorem mem_lowerPolar_iff + theorem mem_lowerPolar_singleton + theorem mem_upperPolar_iff + theorem mem_upperPolar_singleton 2026-03-13 11:40:12 80ba5bd feat(CategoryTheory/Abelian): the localization w.r.t. a Serre class is abelian (#35966) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Abelian/SerreClass/Localization.lean + def CategoryTheory.ObjectProperty.SerreClassLocalization.abelian + theorem CategoryTheory.ObjectProperty.SerreClassLocalization.epi_iff + theorem CategoryTheory.ObjectProperty.SerreClassLocalization.epi_map_iff + theorem CategoryTheory.ObjectProperty.SerreClassLocalization.epi_map_tfae + theorem CategoryTheory.ObjectProperty.SerreClassLocalization.hasBinaryProducts + theorem CategoryTheory.ObjectProperty.SerreClassLocalization.hasCoequalizers + theorem CategoryTheory.ObjectProperty.SerreClassLocalization.hasCokernels + theorem CategoryTheory.ObjectProperty.SerreClassLocalization.hasEqualizers + theorem CategoryTheory.ObjectProperty.SerreClassLocalization.hasFiniteProducts + theorem CategoryTheory.ObjectProperty.SerreClassLocalization.hasKernels + theorem CategoryTheory.ObjectProperty.SerreClassLocalization.inverseImage_epimorphisms + theorem CategoryTheory.ObjectProperty.SerreClassLocalization.inverseImage_monomorphisms + theorem CategoryTheory.ObjectProperty.SerreClassLocalization.isNormalEpiCategory + theorem CategoryTheory.ObjectProperty.SerreClassLocalization.isNormalMonoCategory + theorem CategoryTheory.ObjectProperty.SerreClassLocalization.mono_iff + theorem CategoryTheory.ObjectProperty.SerreClassLocalization.mono_map_iff + theorem CategoryTheory.ObjectProperty.SerreClassLocalization.mono_map_tfae + theorem CategoryTheory.ObjectProperty.SerreClassLocalization.preservesCokernel + theorem CategoryTheory.ObjectProperty.SerreClassLocalization.preservesEpimorphisms + theorem CategoryTheory.ObjectProperty.SerreClassLocalization.preservesKernel + theorem CategoryTheory.ObjectProperty.SerreClassLocalization.preservesMonomorphisms 2026-03-13 11:19:01 a19b206 feat(FieldTheory/Galois): add fixedField_eq_iff_fixingSubgroup_eq and IsGaloisGroup.subgroup_iff (#36365) This PR adds two results to the Galois correspondence API: - `IsGalois.fixedField_eq_iff_fixingSubgroup_eq`: `fixedField H = K ↔ K.fixingSubgroup = H` which just an explicit restatement of the order isomorphism. - `IsGaloisGroup.subgroup_iff`: `IsGaloisGroup H F L ↔ FixedPoints.intermediateField H = F` -- assuming `IsGaloisGroup G K L`--, where `H` is a subgroup of `G`, with the two directions as standalone lemmas. ESTIMATED CHANGES Modified Mathlib/FieldTheory/Galois/Basic.lean + theorem IsGalois.fixedField_eq_iff_fixingSubgroup_eq Modified Mathlib/FieldTheory/Galois/IsGaloisGroup.lean + theorem IsGaloisGroup.fixedPoints_of_isGaloisGroup + theorem IsGaloisGroup.of_fixedPoints_eq + theorem IsGaloisGroup.subgroup_iff 2026-03-13 11:18:59 2101152 feat(CategoryTheory/Limits): `IsPullback.mono_fst_of_mono` and similar (#35871) This lemma is more convenient than going through `MorphismProperty.IsStableUnderBasechange`. We use `(inst : Mono f := by infer_instance)` instead of `[Mono f]` because on occasion, these proof arguments are not by `inferInstance`, and this design lets us more easily use the lemma in such cases. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Limits/Shapes/Pullback/IsPullback/Basic.lean +/- theorem CategoryTheory.IsPullback.isIso_fst_of_isIso +/- theorem CategoryTheory.IsPullback.isIso_fst_of_mono +/- theorem CategoryTheory.IsPullback.isIso_snd_iso_of_mono +/- theorem CategoryTheory.IsPullback.isIso_snd_of_isIso + theorem CategoryTheory.IsPullback.mono_fst_of_mono + theorem CategoryTheory.IsPullback.mono_snd_of_mono + theorem CategoryTheory.IsPushout.epi_inl_of_epi + theorem CategoryTheory.IsPushout.epi_inr_of_epi +/- theorem CategoryTheory.IsPushout.isIso_inl_iso_of_epi +/- theorem CategoryTheory.IsPushout.isIso_inl_of_isIso +/- theorem CategoryTheory.IsPushout.isIso_inr_iso_of_epi +/- theorem CategoryTheory.IsPushout.isIso_inr_of_isIso Modified Mathlib/CategoryTheory/MorphismProperty/Limits.lean 2026-03-13 10:49:10 c54287e chore(Group/Theory/Finiteness): move and golf `fg_iff_exists_freeGroup_hom_surjective` (#36589) Move `fg_iff_exists_freeGroup_hom_surjective` next to `fg_iff_exists_freeGroup_hom_surjective_finite` and slightly golf the last two lines of the proof with `fg_of_surjective`. ESTIMATED CHANGES Modified Mathlib/GroupTheory/Finiteness.lean 2026-03-13 10:49:08 27f2c92 chore(RingTheory/OreLocalization/Basic): mark addition as `private` again (#36567) #36430 removed `private` from some declarations. However, they should be private, and the instance where it is used should be `no_expose`. ESTIMATED CHANGES Modified Mathlib/RingTheory/OreLocalization/Basic.lean - def OreLocalization.add'' - theorem OreLocalization.add''_char - def OreLocalization.add' - def OreLocalization.add 2026-03-13 10:49:06 2bdddb2 doc(Dynamics): fix typos (#36564) The issues were found and fixed by Codex. ESTIMATED CHANGES Modified Mathlib/Dynamics/Ergodic/Action/OfMinimal.lean Modified Mathlib/Dynamics/Ergodic/Function.lean Modified Mathlib/Dynamics/Newton.lean Modified Mathlib/Dynamics/TopologicalEntropy/Semiconj.lean 2026-03-13 10:21:30 4da16c3 feat: add generalizations of some padicVal{Nat,Int} lemmas (#34588) Also drop the unnecessary primality condition from padicValInt_dvd. From flt-regular. ESTIMATED CHANGES Modified Mathlib/NumberTheory/Padics/PadicVal/Basic.lean +/- theorem padicValInt.mul +/- theorem padicValInt_dvd_iff + theorem padicValInt_dvd_iff_of_ne_one +/- theorem padicValInt_mul_eq_succ +/- theorem padicValInt_self + theorem padicValNat_dvd_iff_le_of_ne_one + theorem padicValNat_dvd_iff_of_ne_one Modified Mathlib/NumberTheory/Padics/PadicVal/Defs.lean + theorem padicValNat_eq_emultiplicity_of_ne_one 2026-03-13 09:57:46 7d6517d chore: clean up `Mathlib/Probability/Martingale/OptionalStopping.lean` (#36542) ESTIMATED CHANGES Modified Mathlib/Probability/Martingale/OptionalStopping.lean 2026-03-13 09:45:57 e8fb080 feat(Geometry/Convex/Cone): coercion from submodule to cone (#35308) Add coercion from submodule to cone and support lemmas. The main feature is * `PointedCone.ofSubmodule` coercing a submodule to a pointed cone and the corresponding `Coe` instance. There are further lemmas coercing membership and lattice operations. ESTIMATED CHANGES Modified Mathlib/Geometry/Convex/Cone/Pointed.lean + theorem PointedCone.coe_ofSubmodule + theorem PointedCone.mem_ofSubmodule_iff + theorem PointedCone.ofSubmodule_iInf + theorem PointedCone.ofSubmodule_iSup + theorem PointedCone.ofSubmodule_inf + theorem PointedCone.ofSubmodule_inj + theorem PointedCone.ofSubmodule_sInf + theorem PointedCone.ofSubmodule_sSup + theorem PointedCone.ofSubmodule_sup 2026-03-13 09:06:49 0f9aebd chore(CategoryTheory/Limits/Cones): fixing non-dsimp-nf lemmas (#36373) We use the `dsimp%` term elaborator to put certain lemmas into dsimp normal form, so that they can be used without doing `set_option backward.isDefEq.respectTransparency false`. This removes all but one of these in the file `CategoryTheory/Limits/Cones`. The remaining one has to do with `Quiver.Hom.unop_op`. ESTIMATED CHANGES Modified Mathlib/Algebra/Category/Ring/FinitePresentation.lean Modified Mathlib/AlgebraicGeometry/AffineTransitionLimit.lean Modified Mathlib/CategoryTheory/Equivalence.lean + theorem CategoryTheory.Equivalence.counitIso_hom_inv_id_app + theorem CategoryTheory.Equivalence.counitIso_inv_hom_id_app + theorem CategoryTheory.Equivalence.unitIso_hom_inv_id_app + theorem CategoryTheory.Equivalence.unitIso_inv_hom_id_app Modified Mathlib/CategoryTheory/Limits/Cones.lean Modified Mathlib/CategoryTheory/Limits/Shapes/SequentialProduct.lean Modified Mathlib/CategoryTheory/Limits/Yoneda.lean Modified Mathlib/Condensed/Discrete/Colimit.lean 2026-03-13 08:20:57 4756257 feat(CategoryTheory/ObjectProperty/FiniteProducts): Add API and dualize (#36482) Add some API to `IsClosedUnderBinaryProducts` and `IsClosedUnderProducts`. Also add dual versions for both. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/ObjectProperty/FiniteProducts.lean + theorem CategoryTheory.ObjectProperty.IsClosedUnderBinaryCoproducts.closedUnderIsomorphisms + theorem CategoryTheory.ObjectProperty.IsClosedUnderFiniteCoproducts.mk' + theorem CategoryTheory.ObjectProperty.prop_coprod + theorem CategoryTheory.ObjectProperty.prop_coproduct + theorem CategoryTheory.ObjectProperty.prop_initial + theorem CategoryTheory.ObjectProperty.prop_of_isColimit_binaryCofan + theorem CategoryTheory.ObjectProperty.prop_of_isColimit_cofan + theorem CategoryTheory.ObjectProperty.prop_of_isInitial + theorem CategoryTheory.ObjectProperty.prop_of_isLimit_binaryFan + theorem CategoryTheory.ObjectProperty.prop_of_isLimit_fan + theorem CategoryTheory.ObjectProperty.prop_product + theorem CategoryTheory.ObjectProperty.prop_terminal 2026-03-13 08:20:56 5dec42f feat: supporting lemmas for theory of bases in Lie theory (#36297) Split out from other work to simplify review. ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Pointwise/Set/Basic.lean + theorem Set.inv_range' Modified Mathlib/Algebra/Lie/Subalgebra.lean + theorem LieSubalgebra.disjoint_toSubmodule + theorem LieSubalgebra.lieSpan_neg Modified Mathlib/Algebra/Lie/Submodule.lean + theorem LieSubmodule.mem_sup_left + theorem LieSubmodule.mem_sup_right Modified Mathlib/Algebra/Lie/TraceForm.lean Modified Mathlib/Algebra/Lie/Weights/Cartan.lean + theorem LieAlgebra.eq_rootSpace_zero_iff_isCartan + theorem LieAlgebra.mem_biSup_genWeightSpace_of Modified Mathlib/Algebra/Lie/Weights/Killing.lean + theorem LieAlgebra.IsKilling.eq_coroot_of_mem_corootSpace_of_two + theorem LieSubalgebra.isNonZero_coe_root Modified Mathlib/Algebra/Module/LinearMap/Defs.lean + theorem LinearMap.coe_zero_iff Modified Mathlib/Data/Set/Finite/Range.lean + theorem Set.Finite.exists_subset_finite_image_eq Modified Mathlib/LinearAlgebra/Basis/Basic.lean + theorem Module.Basis.linearIndependent_coord Modified Mathlib/LinearAlgebra/LinearIndependent/Defs.lean + theorem LinearIndependent.neg + theorem linearIndependent_neg_iff Modified Mathlib/LinearAlgebra/Matrix/Nondegenerate.lean + theorem LinearIndependent.sum_smul_of_nondegenerate Modified Mathlib/Order/CompactlyGenerated/Basic.lean + theorem disjoint_biSup_of_finite_disjoint_biSup + theorem iSupIndep.disjoint_biSup_biSup Modified Mathlib/Order/ModularLattice.lean + theorem disjoint_sup_right_of_disjoint_sup_right + theorem le_iff_eq_of_codisjoint_of_disjoint Modified Mathlib/Order/SupIndep.lean + theorem iSupIndep.disjoint_biSup_biSup' + theorem iSupIndep.le_iff_eq_of_iSup_eq_top + theorem iSupIndep.mem_of_biSup_eq_top + theorem iSupIndep_fin_three + theorem iSup_fin_three Modified Mathlib/RingTheory/Regular/Category.lean 2026-03-13 08:20:54 860f05b feat: a group is finitely generated if and only if there exists a surjective homomorphism from a `FreeGroup` on an arbitrary finite type `α` to the group (#35033) This is a dependency of a larger PR to formalize finitely presented groups #34236. ESTIMATED CHANGES Modified Mathlib/GroupTheory/Finiteness.lean + theorem Group.fg_iff_exists_freeGroup_hom_surjective_finite 2026-03-13 08:08:57 20cb067 feat(CategoryTheory/Sites): the monoidal category structure on sheaves using fiber functors (#35584) In #19915, a monoidal category structure on categories of sheaves was constructed under the assumption that the class of morphisms of presheaves which become isomorphisms after sheafification is stable by tensor products. It was also proven that this condition could be checked when we are able to construct the internal hom of (pre)sheaves. In this PR, we give an alternative condition, which involves the existence of enough points for the site. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/CategoryTheory/Sites/Point/Conservative.lean + theorem CategoryTheory.ObjectProperty.IsConservativeFamilyOfPoints.W_iff Added Mathlib/CategoryTheory/Sites/Point/IsMonoidalW.lean + theorem CategoryTheory.ObjectProperty.IsConservativeFamilyOfPoints.isMonoidal_W Modified Mathlib/CategoryTheory/Sites/Point/Monoidal.lean 2026-03-13 04:22:45 0b81b17 feat(LinearAlgebra/Eigenspace/ContinuousLinearMap): eigenspaces of a continuous linear map are closed (#36078) This PR proves that eigenspaces of a continuous linear map are closed. This is in a new file to avoid heavy topology imports in the existing eigenspace files. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/LinearAlgebra/Eigenspace/ContinuousLinearMap.lean Modified Mathlib/Tactic/Linter/DirectoryDependency.lean 2026-03-13 03:19:02 ecdcc43 feat(Analysis/InnerProductSpace): add theorems about the adjoint, kernel, range, and orthogonal complement (#35582) Add theorems about the interaction between the adjoint, kernel, range, and orthogonal complement from Linear Algebra Done Right 4th edition. This includes theorems from the singular value decomposition section which are needed for #33731. - `LinearMap.orthogonal_ker` and `LinearMap.orthogonal_range` are inherited from the `ContinuousLinearMap` versions. - `ker_adjoint_comp_self` and `adjoint_comp_self_injective_iff` are new theorems for both `ContinuousLinearMap` and finite-dimensional `LinearMap`. - `LinearMap.range_adjoint_comp_self` and `LinearMap.finrank_range_adjoint` apply to only finite-dimensional `LinearMap`. ESTIMATED CHANGES Modified Mathlib/Analysis/InnerProductSpace/Adjoint.lean + theorem ContinuousLinearMap.adjoint_comp_self_injective_iff + theorem ContinuousLinearMap.ker_adjoint_comp_self + theorem ContinuousLinearMap.ker_self_comp_adjoint + theorem ContinuousLinearMap.self_comp_adjoint_injective_iff + theorem LinearMap.adjoint_comp_self_injective_iff + theorem LinearMap.finrank_range_adjoint + theorem LinearMap.ker_adjoint_comp_self + theorem LinearMap.ker_self_comp_adjoint + theorem LinearMap.orthogonal_ker + theorem LinearMap.orthogonal_range + theorem LinearMap.range_adjoint_comp_self + theorem LinearMap.range_self_comp_adjoint + theorem LinearMap.self_comp_adjoint_injective_iff 2026-03-13 01:33:23 f296f1e chore: backquote tactic names in error messages (#34895) This matches the messages produced by `Lean.Meta.throwTacticEx`. ESTIMATED CHANGES Modified Mathlib/Tactic/Abel.lean Modified Mathlib/Tactic/FieldSimp.lean Modified Mathlib/Tactic/Push.lean Modified Mathlib/Tactic/Ring/RingNF.lean Modified Mathlib/Util/AtLocation.lean Modified MathlibTest/FieldSimp.lean Modified MathlibTest/abel.lean Modified MathlibTest/push_neg.lean Modified MathlibTest/ring.lean 2026-03-13 00:10:35 cd57315 chore: update Mathlib dependencies 2026-03-12 (#36570) This PR updates the Mathlib dependencies. ESTIMATED CHANGES Modified lake-manifest.json 2026-03-12 23:35:21 9b12c6a ci(splice_bot_wf_run): set min_repo_permission to write (#36558) ESTIMATED CHANGES Modified .github/workflows/splice_bot_wf_run.yaml 2026-03-12 22:43:36 b48524b doc(Condensed): fix typos (#36566) Found by `PyCharm`'s code inspection tool. ESTIMATED CHANGES Modified Mathlib/Condensed/Light/Explicit.lean Modified Mathlib/Condensed/Light/InternallyProjective.lean 2026-03-12 22:43:34 113db26 chore: run `rm_set_option.py` (#36554) Just the script, no adding of `@[reducible]` or `@[implicit_reducible]`. ESTIMATED CHANGES Modified Archive/Imo/Imo1959Q2.lean Modified Archive/Imo/Imo1963Q5.lean Modified Archive/Imo/Imo1982Q3.lean Modified Archive/Imo/Imo2006Q3.lean Modified Archive/Wiedijk100Theorems/BuffonsNeedle.lean Modified Archive/Wiedijk100Theorems/HeronsFormula.lean Modified Archive/Wiedijk100Theorems/SolutionOfCubicQuartic.lean Modified Counterexamples/HeawoodUnitDistance.lean Modified Mathlib/Algebra/Algebra/ZMod.lean Modified Mathlib/Algebra/Category/AlgCat/Symmetric.lean Modified Mathlib/Algebra/Category/HopfAlgCat/Monoidal.lean Modified Mathlib/Algebra/Category/ModuleCat/Monoidal/Basic.lean Modified Mathlib/Algebra/Category/Ring/LinearAlgebra.lean Modified Mathlib/Algebra/Field/Equiv.lean Modified Mathlib/Algebra/Homology/Functor.lean Modified Mathlib/Algebra/Lie/Derivation/Basic.lean Modified Mathlib/Algebra/Lie/Free.lean Modified Mathlib/Algebra/Lie/NonUnitalNonAssocAlgebra.lean Modified Mathlib/Algebra/MvPolynomial/Nilpotent.lean Modified Mathlib/Algebra/Order/Floor/Ring.lean Modified Mathlib/Algebra/Order/Floor/Semifield.lean Modified Mathlib/Algebra/Order/Group/Unbundled/Abs.lean Modified Mathlib/Algebra/Quandle.lean Modified Mathlib/Algebra/Star/NonUnitalSubalgebra.lean Modified Mathlib/AlgebraicGeometry/Artinian.lean Modified Mathlib/AlgebraicGeometry/FunctionField.lean Modified Mathlib/AlgebraicGeometry/Geometrically/Basic.lean Modified Mathlib/AlgebraicGeometry/Limits.lean Modified Mathlib/AlgebraicGeometry/LimitsOver.lean Modified Mathlib/AlgebraicGeometry/Morphisms/ClosedImmersion.lean Modified Mathlib/AlgebraicGeometry/Morphisms/Finite.lean Modified Mathlib/AlgebraicGeometry/Morphisms/SchemeTheoreticallyDominant.lean Modified Mathlib/AlgebraicGeometry/Morphisms/UniversallyOpen.lean Modified Mathlib/AlgebraicGeometry/Normalization.lean Modified Mathlib/AlgebraicTopology/FundamentalGroupoid/Basic.lean Modified Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Continuity.lean Modified Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Integral.lean Modified Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Order.lean Modified Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Range.lean Modified Mathlib/Analysis/CStarAlgebra/ContinuousMap.lean Modified Mathlib/Analysis/CStarAlgebra/GelfandDuality.lean Modified Mathlib/Analysis/CStarAlgebra/GelfandNaimarkSegal.lean Modified Mathlib/Analysis/Calculus/FDeriv/Symmetric.lean Modified Mathlib/Analysis/Calculus/LogDeriv.lean Modified Mathlib/Analysis/Calculus/MeanValue.lean Modified Mathlib/Analysis/Calculus/SmoothSeries.lean Modified Mathlib/Analysis/Calculus/UniformLimitsDeriv.lean Modified Mathlib/Analysis/Complex/BorelCaratheodory.lean Modified Mathlib/Analysis/Complex/Exponential.lean Modified Mathlib/Analysis/Complex/Harmonic/Analytic.lean Modified Mathlib/Analysis/Complex/Harmonic/Liouville.lean Modified Mathlib/Analysis/Complex/Harmonic/MeanValue.lean Modified Mathlib/Analysis/Complex/Polynomial/Basic.lean Modified Mathlib/Analysis/Complex/UpperHalfPlane/Measure.lean Modified Mathlib/Analysis/Complex/UpperHalfPlane/Metric.lean Modified Mathlib/Analysis/Convex/BetweenList.lean Modified Mathlib/Analysis/Convex/Body.lean Modified Mathlib/Analysis/Convex/Continuous.lean Modified Mathlib/Analysis/Convex/Function.lean Modified Mathlib/Analysis/Convex/SpecificFunctions/Basic.lean Modified Mathlib/Analysis/Convex/Strong.lean Modified Mathlib/Analysis/Distribution/FourierMultiplier.lean Modified Mathlib/Analysis/Distribution/SchwartzSpace/Basic.lean Modified Mathlib/Analysis/Distribution/SchwartzSpace/Fourier.lean Modified Mathlib/Analysis/Distribution/TemperedDistribution.lean Modified Mathlib/Analysis/Fourier/AddCircle.lean Modified Mathlib/Analysis/Fourier/AddCircleMulti.lean Modified Mathlib/Analysis/Fourier/FourierTransformDeriv.lean Modified Mathlib/Analysis/Fourier/PoissonSummation.lean Modified Mathlib/Analysis/InnerProductSpace/Basic.lean Modified Mathlib/Analysis/InnerProductSpace/Coalgebra.lean Modified Mathlib/Analysis/InnerProductSpace/Defs.lean Modified Mathlib/Analysis/InnerProductSpace/NormPow.lean Modified Mathlib/Analysis/InnerProductSpace/Reproducing.lean Modified Mathlib/Analysis/InnerProductSpace/TensorProduct.lean Modified Mathlib/Analysis/InnerProductSpace/TwoDim.lean Modified Mathlib/Analysis/LocallyConvex/AbsConvex.lean Modified Mathlib/Analysis/LocallyConvex/WithSeminorms.lean Modified Mathlib/Analysis/Matrix/LDL.lean Modified Mathlib/Analysis/MellinTransform.lean Modified Mathlib/Analysis/Normed/Algebra/GelfandFormula.lean Modified Mathlib/Analysis/Normed/Algebra/QuaternionExponential.lean Modified Mathlib/Analysis/Normed/Group/AddCircle.lean Modified Mathlib/Analysis/Normed/Module/Basic.lean Modified Mathlib/Analysis/Normed/Module/HahnBanach.lean Modified Mathlib/Analysis/Normed/Module/MultipliableUniformlyOn.lean Modified Mathlib/Analysis/Normed/Ring/Units.lean Modified Mathlib/Analysis/Normed/Unbundled/SpectralNorm.lean Modified Mathlib/Analysis/ODE/PicardLindelof.lean Modified Mathlib/Analysis/Quaternion.lean Modified Mathlib/Analysis/Real/Pi/Bounds.lean Modified Mathlib/Analysis/SpecialFunctions/BinaryEntropy.lean Modified Mathlib/Analysis/SpecialFunctions/Complex/Arg.lean Modified Mathlib/Analysis/SpecialFunctions/Complex/LogBounds.lean Modified Mathlib/Analysis/SpecialFunctions/ContinuousFunctionalCalculus/ExpLog/Basic.lean Modified Mathlib/Analysis/SpecialFunctions/Elliptic/Weierstrass.lean Modified Mathlib/Analysis/SpecialFunctions/Gamma/Deligne.lean Modified Mathlib/Analysis/SpecialFunctions/Gamma/Deriv.lean Modified Mathlib/Analysis/SpecialFunctions/Gaussian/FourierTransform.lean Modified Mathlib/Analysis/SpecialFunctions/Gaussian/GaussianIntegral.lean Modified Mathlib/Analysis/SpecialFunctions/ImproperIntegrals.lean Modified Mathlib/Analysis/SpecialFunctions/Integrability/LogMeromorphic.lean Modified Mathlib/Analysis/SpecialFunctions/Integrals/Basic.lean Modified Mathlib/Analysis/SpecialFunctions/Log/Deriv.lean Modified Mathlib/Analysis/SpecialFunctions/Sigmoid.lean Modified Mathlib/Analysis/SpecialFunctions/Stirling.lean Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Angle.lean Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Arctan.lean Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Basic.lean Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Bounds.lean Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Chebyshev/Basic.lean Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Complex.lean Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Cotangent.lean Modified Mathlib/Analysis/SpecificLimits/Basic.lean Modified Mathlib/CategoryTheory/Abelian/GrothendieckAxioms/Basic.lean Modified Mathlib/CategoryTheory/Abelian/GrothendieckCategory/Basic.lean Modified Mathlib/CategoryTheory/Abelian/Preradical/Colon.lean Modified Mathlib/CategoryTheory/Center/Linear.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Pullback/Cospan.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Pullback/PullbackCone.lean Modified Mathlib/CategoryTheory/Limits/Shapes/WidePullbacks.lean Modified Mathlib/CategoryTheory/Localization/Monoidal/Functor.lean Modified Mathlib/CategoryTheory/LocallyDirected.lean Modified Mathlib/CategoryTheory/Monoidal/Internal/Module.lean Modified Mathlib/CategoryTheory/Monoidal/Subcategory.lean Modified Mathlib/CategoryTheory/Monoidal/Transport.lean Modified Mathlib/CategoryTheory/Preadditive/Transfer.lean Modified Mathlib/CategoryTheory/Shift/Adjunction.lean Modified Mathlib/CategoryTheory/Shift/CommShift.lean Modified Mathlib/CategoryTheory/Shift/Induced.lean Modified Mathlib/CategoryTheory/Shift/Localization.lean Modified Mathlib/CategoryTheory/Sites/Abelian.lean Modified Mathlib/CategoryTheory/Sites/MayerVietorisSquare.lean Modified Mathlib/CategoryTheory/Sites/SheafCohomology/Basic.lean Modified Mathlib/CategoryTheory/WithTerminal/Basic.lean Modified Mathlib/Combinatorics/Additive/AP/Three/Behrend.lean Modified Mathlib/Combinatorics/Additive/Corner/Roth.lean Modified Mathlib/Computability/Primrec/Basic.lean Modified Mathlib/Condensed/Epi.lean Modified Mathlib/Data/Set/Finite/Basic.lean Modified Mathlib/FieldTheory/IntermediateField/Adjoin/Basic.lean Modified Mathlib/FieldTheory/RatFunc/AsPolynomial.lean Modified Mathlib/FieldTheory/RatFunc/Basic.lean Modified Mathlib/FieldTheory/RatFunc/Degree.lean Modified Mathlib/FieldTheory/RatFunc/Luroth.lean Modified Mathlib/Geometry/Euclidean/Angle/Oriented/Basic.lean Modified Mathlib/Geometry/Euclidean/Angle/Oriented/Rotation.lean Modified Mathlib/Geometry/Euclidean/Circumcenter.lean Modified Mathlib/Geometry/Euclidean/MongePoint.lean Modified Mathlib/Geometry/Manifold/ContMDiff/Atlas.lean Modified Mathlib/Geometry/Manifold/ContMDiff/Basic.lean Modified Mathlib/Geometry/Manifold/ContMDiff/Defs.lean Modified Mathlib/Geometry/Manifold/ContMDiff/NormedSpace.lean Modified Mathlib/Geometry/Manifold/Diffeomorph.lean Modified Mathlib/Geometry/Manifold/IsManifold/Basic.lean Modified Mathlib/Geometry/Manifold/IsManifold/ExtChartAt.lean Modified Mathlib/Geometry/Manifold/IsManifold/InteriorBoundary.lean Modified Mathlib/Geometry/Manifold/MFDeriv/FDeriv.lean Modified Mathlib/Geometry/Manifold/MFDeriv/Tangent.lean Modified Mathlib/Geometry/Manifold/Riemannian/Basic.lean Modified Mathlib/Geometry/Manifold/VectorBundle/Riemannian.lean Modified Mathlib/GroupTheory/SpecificGroups/Cyclic.lean Modified Mathlib/GroupTheory/SpecificGroups/Dihedral.lean Modified Mathlib/GroupTheory/SpecificGroups/Quaternion.lean Modified Mathlib/GroupTheory/SpecificGroups/ZGroup.lean Modified Mathlib/LinearAlgebra/Dimension/Localization.lean Modified Mathlib/LinearAlgebra/QuadraticForm/QuadraticModuleCat/Monoidal.lean Modified Mathlib/LinearAlgebra/QuadraticForm/QuadraticModuleCat/Symmetric.lean Modified Mathlib/LinearAlgebra/Reflection.lean Modified Mathlib/LinearAlgebra/RootSystem/BaseExists.lean Modified Mathlib/Logic/Denumerable.lean Modified Mathlib/MeasureTheory/Constructions/BorelSpace/Basic.lean Modified Mathlib/MeasureTheory/Constructions/Polish/Basic.lean Modified Mathlib/MeasureTheory/Function/FactorsThrough.lean Modified Mathlib/MeasureTheory/Function/LpSpace/ContinuousFunctions.lean Modified Mathlib/MeasureTheory/Integral/Bochner/ContinuousLinearMap.lean Modified Mathlib/MeasureTheory/Integral/CircleAverage.lean Modified Mathlib/MeasureTheory/Integral/CircleIntegral.lean Modified Mathlib/MeasureTheory/Integral/CurveIntegral/Basic.lean Modified Mathlib/MeasureTheory/Integral/DominatedConvergence.lean Modified Mathlib/MeasureTheory/Integral/IntervalIntegral/TrapezoidalRule.lean Modified Mathlib/MeasureTheory/Measure/CharacteristicFunction/Basic.lean Modified Mathlib/MeasureTheory/Measure/CharacteristicFunction/TaylorExpansion.lean Modified Mathlib/MeasureTheory/Measure/FiniteMeasureExt.lean Modified Mathlib/MeasureTheory/Measure/Lebesgue/VolumeOfBalls.lean Modified Mathlib/MeasureTheory/Measure/LevyConvergence.lean Modified Mathlib/ModelTheory/Order.lean Modified Mathlib/NumberTheory/Chebyshev.lean Modified Mathlib/NumberTheory/DiophantineApproximation/Basic.lean Modified Mathlib/NumberTheory/FunctionField.lean Modified Mathlib/NumberTheory/Harmonic/EulerMascheroni.lean Modified Mathlib/NumberTheory/Harmonic/GammaDeriv.lean Modified Mathlib/NumberTheory/LSeries/Basic.lean Modified Mathlib/NumberTheory/LSeries/Deriv.lean Modified Mathlib/NumberTheory/LSeries/Dirichlet.lean Modified Mathlib/NumberTheory/LSeries/HurwitzZeta.lean Modified Mathlib/NumberTheory/LSeries/HurwitzZetaOdd.lean Modified Mathlib/NumberTheory/LSeries/MellinEqDirichlet.lean Modified Mathlib/NumberTheory/LSeries/ZMod.lean Modified Mathlib/NumberTheory/LucasLehmer.lean Modified Mathlib/NumberTheory/ModularForms/Delta.lean Modified Mathlib/NumberTheory/ModularForms/EisensteinSeries/E2/Summable.lean Modified Mathlib/NumberTheory/ModularForms/EisensteinSeries/QExpansion.lean Modified Mathlib/NumberTheory/ModularForms/JacobiTheta/TwoVariable.lean Modified Mathlib/NumberTheory/NumberField/CanonicalEmbedding/Basic.lean Modified Mathlib/NumberTheory/NumberField/CanonicalEmbedding/ConvexBody.lean Modified Mathlib/NumberTheory/NumberField/CanonicalEmbedding/NormLeOne.lean Modified Mathlib/NumberTheory/NumberField/CanonicalEmbedding/PolarCoord.lean Modified Mathlib/NumberTheory/NumberField/Discriminant/Basic.lean Modified Mathlib/NumberTheory/NumberField/Ideal/Asymptotics.lean Modified Mathlib/NumberTheory/Padics/Complex.lean Modified Mathlib/NumberTheory/Padics/MahlerBasis.lean Modified Mathlib/NumberTheory/ZetaValues.lean Modified Mathlib/Order/Atoms.lean Modified Mathlib/Order/BooleanGenerators.lean Modified Mathlib/Probability/Distributions/Gaussian/Basic.lean Modified Mathlib/Probability/Distributions/Gaussian/CharFun.lean Modified Mathlib/Probability/Distributions/Gaussian/Fernique.lean Modified Mathlib/Probability/Distributions/Gaussian/HasGaussianLaw/Basic.lean Modified Mathlib/Probability/Distributions/Gaussian/HasGaussianLaw/Independence.lean Modified Mathlib/Probability/Moments/ComplexMGF.lean Modified Mathlib/Probability/Moments/SubGaussian.lean Modified Mathlib/RepresentationTheory/FinGroupCharZero.lean Modified Mathlib/RepresentationTheory/Homological/FiniteCyclic.lean Modified Mathlib/RepresentationTheory/Homological/GroupCohomology/Basic.lean Modified Mathlib/RepresentationTheory/Homological/GroupCohomology/Shapiro.lean Modified Mathlib/RepresentationTheory/Homological/GroupHomology/Basic.lean Modified Mathlib/RepresentationTheory/Homological/GroupHomology/Shapiro.lean Modified Mathlib/RepresentationTheory/Homological/Resolution.lean Modified Mathlib/RepresentationTheory/Rep.lean Modified Mathlib/RingTheory/DedekindDomain/Dvr.lean Modified Mathlib/RingTheory/DedekindDomain/Ideal/Basic.lean Modified Mathlib/RingTheory/DedekindDomain/Ideal/Lemmas.lean Modified Mathlib/RingTheory/DedekindDomain/Instances.lean Modified Mathlib/RingTheory/DiscreteValuationRing/TFAE.lean Modified Mathlib/RingTheory/FractionalIdeal/Operations.lean Modified Mathlib/RingTheory/HopfAlgebra/TensorProduct.lean Modified Mathlib/RingTheory/IntegralClosure/IsIntegralClosure/Basic.lean Modified Mathlib/RingTheory/KrullDimension/Zero.lean Modified Mathlib/RingTheory/LaurentSeries.lean Modified Mathlib/RingTheory/LittleWedderburn.lean Modified Mathlib/RingTheory/LocalProperties/Exactness.lean Modified Mathlib/RingTheory/Localization/Basic.lean Modified Mathlib/RingTheory/Localization/FractionRing.lean Modified Mathlib/RingTheory/Polynomial/Chebyshev.lean Modified Mathlib/RingTheory/Polynomial/Cyclotomic/Basic.lean Modified Mathlib/RingTheory/Polynomial/Dickson.lean Modified Mathlib/RingTheory/Polynomial/Resultant/Basic.lean Modified Mathlib/RingTheory/RingHom/Flat.lean Modified Mathlib/RingTheory/RootsOfUnity/Complex.lean Modified Mathlib/RingTheory/SimpleRing/Field.lean Modified Mathlib/RingTheory/Trace/Quotient.lean Modified Mathlib/Tactic/ComputeAsymptotics/Multiseries/Majorized.lean Modified Mathlib/Topology/Algebra/FilterBasis.lean Modified Mathlib/Topology/Algebra/Nonarchimedean/AdicTopology.lean Modified Mathlib/Topology/Algebra/Nonarchimedean/Bases.lean Modified Mathlib/Topology/Algebra/UniformFilterBasis.lean Modified Mathlib/Topology/Algebra/Valued/ValuationTopology.lean Modified Mathlib/Topology/Compactness/CompactlyGeneratedSpace.lean Modified Mathlib/Topology/ContinuousMap/Compact.lean Modified Mathlib/Topology/ContinuousMap/Ideals.lean Modified Mathlib/Topology/ContinuousMap/StoneWeierstrass.lean Modified Mathlib/Topology/ContinuousMap/Weierstrass.lean Modified Mathlib/Topology/Homotopy/Basic.lean Modified Mathlib/Topology/Homotopy/Path.lean Modified Mathlib/Topology/MetricSpace/CoveringNumbers.lean Modified Mathlib/Topology/MetricSpace/Gluing.lean Modified Mathlib/Topology/MetricSpace/PiNat.lean Modified Mathlib/Topology/MetricSpace/Polish.lean Modified Mathlib/Topology/Metrizable/CompletelyMetrizable.lean Modified Mathlib/Topology/NoetherianSpace.lean Modified Mathlib/Topology/Order/Bornology.lean Modified Mathlib/Topology/Order/LowerUpperTopology.lean Modified Mathlib/Topology/Path.lean Modified Mathlib/Topology/UniformSpace/Uniformizable.lean Modified Mathlib/Topology/VectorBundle/Riemannian.lean Modified MathlibTest/Bound/bound.lean Modified MathlibTest/FieldSimp.lean Modified MathlibTest/Linarith/Basic.lean Modified MathlibTest/cancel_denoms.lean Modified MathlibTest/linear_combination'.lean Modified MathlibTest/linear_combination.lean Modified MathlibTest/reduce_mod_char.lean 2026-03-12 22:43:32 73402ef doc(RingTheory): fix typos (#36531) Found by `PyCharm`'s code inspection tool. ESTIMATED CHANGES Modified Mathlib/RingTheory/Algebraic/StronglyTranscendental.lean Modified Mathlib/RingTheory/Extension/Cotangent/Basic.lean Modified Mathlib/RingTheory/Flat/TorsionFree.lean Modified Mathlib/RingTheory/FractionalIdeal/Extended.lean Modified Mathlib/RingTheory/IntegralClosure/Algebra/Ideal.lean Modified Mathlib/RingTheory/LaurentSeries.lean Modified Mathlib/RingTheory/PowerSeries/Expand.lean Modified Mathlib/RingTheory/QuasiFinite/Basic.lean Modified Mathlib/RingTheory/RootsOfUnity/CyclotomicUnits.lean Modified Mathlib/RingTheory/Smooth/Fiber.lean Modified Mathlib/RingTheory/TensorProduct/IsBaseChangeHom.lean Modified Mathlib/RingTheory/ZariskisMainTheorem.lean 2026-03-12 22:43:29 e9a008d chore: golf proofs (#36309) The goal of this PR is to decrease the number of times lemmas are called explicitly (replacing calls to lemmas with calls to tactics). Any decrease in compilation time is a welcome side effect, although it is not a primary objective. Trace profiling results (differences <30 ms considered measurement noise): * `AlgebraicGeometry.AffineSpace.SpecIso_hom_appTop`: 627 ms before, 385 ms after 🎉 * `AlgebraicGeometry.AffineSpace.reindex_comp`: unchanged 🎉 * `Polynomial.content_eq_zero_iff`: unchanged 🎉 * `Polynomial.mem_image_comap_C_basicOpen`: 1219 ms before, 797 ms after 🎉 * `IsClosed.isClopenable`: unchanged 🎉 Profiled using `set_option trace.profiler true in`. This PR is batched under the following guidelines: * Up to ~5 changed files per PR * Up to ~25 changed declarations per PR * Up to ~100 changed lines per PR ESTIMATED CHANGES Modified Mathlib/AlgebraicGeometry/AffineSpace.lean Modified Mathlib/RingTheory/Polynomial/Content.lean Modified Mathlib/RingTheory/Spectrum/Prime/Polynomial.lean Modified Mathlib/Topology/MetricSpace/Polish.lean 2026-03-12 22:43:27 7e960f8 chore(Algebra): unsqueeze terminal `simp`:s (`simp only […]` to `simp`) (#36289) The goal of this PR is to decrease the number of times lemmas are called explicitly. Any decrease in compilation time is a welcome side effect, although it is not a primary objective. Trace profiling results (differences <30 ms considered measurement noise): * `spectrum.inv₀_mem_iff`: unchanged 🎉 * `Fin.partialProd_contractNth`: unchanged 🎉 * `GenContFract.fib_le_of_contsAux_b`: 1225 ms before, 1045 ms after 🎉 * `normalize_eq_normalize`: unchanged 🎉 * `gcd_mul_left`: 100 ms before, 65 ms after 🎉 * `lcm_mul_left`: unchanged 🎉 * `LieSubmodule.lieIdeal_oper_eq_linear_span`: unchanged 🎉 * `LieIdeal.comap_bracket_incl`: unchanged 🎉 * `MvPolynomial.eval₂_eq_eval_map`: unchanged 🎉 * `geom_sum_pos'`: unchanged 🎉 * `Polynomial.natDegree_multiset_prod_X_sub_C_eq_card`: unchanged 🎉 * `Polynomial.eq_X_add_C_of_degree_le_one`: unchanged 🎉 * `Polynomial.hasseDeriv_coeff`: 491 ms before, 433 ms after 🎉 * `QuadraticAlgebra.algebraMap_dvd_iff`: unchanged 🎉 * `AlgebraicGeometry.IsAffineOpen.iSup_of_disjoint_aux`: 679 ms before, 609 ms after 🎉 Profiled using `set_option trace.profiler true in`. This PR is batched under the following guidelines: * Up to ~5 changed files per PR * Up to ~25 changed declarations per PR * Up to ~100 changed lines per PR ESTIMATED CHANGES Modified Mathlib/Algebra/ContinuedFractions/Computation/Approximations.lean Modified Mathlib/Algebra/Lie/IdealOperations.lean Modified Mathlib/Algebra/MvPolynomial/Eval.lean Modified Mathlib/Algebra/Order/Ring/GeomSum.lean Modified Mathlib/Algebra/Polynomial/BigOperators.lean Modified Mathlib/Algebra/Polynomial/Degree/SmallDegree.lean Modified Mathlib/Algebra/Polynomial/HasseDeriv.lean Modified Mathlib/Algebra/QuadraticAlgebra/Defs.lean 2026-03-12 22:43:24 453061e chore(Geometry): fix markdown lists (#35484) ESTIMATED CHANGES Modified Mathlib/Geometry/Manifold/Algebra/Monoid.lean Modified Mathlib/Geometry/RingedSpace/PresheafedSpace/Gluing.lean 2026-03-12 21:45:39 14d0854 doc(Lean): fix typos (#36561) Found by `PyCharm`'s code inspection tool. ESTIMATED CHANGES Modified Mathlib/Lean/FoldEnvironment.lean 2026-03-12 21:45:37 6fb6116 doc(GroupTheory): fix typos (#36543) Found by `PyCharm`'s code inspection tool. ESTIMATED CHANGES Modified Mathlib/GroupTheory/GroupAction/SubMulAction/Combination.lean 2026-03-12 21:45:35 cb37836 doc(RepresentationTheory): fix typos (#36537) Found by `PyCharm`'s code inspection tool. Fixes were made by Codex. ESTIMATED CHANGES Modified Mathlib/RepresentationTheory/Action.lean Modified Mathlib/RepresentationTheory/Equiv.lean 2026-03-12 21:45:34 0d6ab39 feat: `Unique (InfinitePlace ℚ)` (#36536) ESTIMATED CHANGES Modified Mathlib/NumberTheory/NumberField/InfinitePlace/Basic.lean 2026-03-12 21:45:32 bf2f41f chore(CategoryTheory/MorphismProperty/Comma): API for `mapLeft` and `mapRight` (#36400) From Pi1. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/MorphismProperty/Comma.lean + def CategoryTheory.MorphismProperty.Comma.mapLeftComp + def CategoryTheory.MorphismProperty.Comma.mapLeftEq + def CategoryTheory.MorphismProperty.Comma.mapLeftId + def CategoryTheory.MorphismProperty.Comma.mapLeftIso + def CategoryTheory.MorphismProperty.Comma.mapRightComp + def CategoryTheory.MorphismProperty.Comma.mapRightEq + def CategoryTheory.MorphismProperty.Comma.mapRightId + def CategoryTheory.MorphismProperty.Comma.mapRightIso 2026-03-12 21:45:30 cb5d4ae doc(misc): fix typos (#36396) Found by `PyCharm`'s code inspection tool ESTIMATED CHANGES Modified Archive/Imo/Imo1988Q6.lean Modified MathlibTest/HaveLetLinter.lean Modified MathlibTest/fun_prop2.lean Modified MathlibTest/fun_prop_dev.lean 2026-03-12 21:45:28 00e25e2 feat: `lt` lemmas for `OrderMonoidIso` (#36310) ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Hom/Monoid.lean + theorem OrderMonoidIso.lt_symm_apply + theorem OrderMonoidIso.symm_apply_lt 2026-03-12 21:45:27 70474d6 chore: golf using `grind` (#36051) The goal of this PR is to decrease the number of times lemmas are called explicitly (replacing calls to lemmas with calls to tactics). Any decrease in compilation time is a welcome side effect, although it is not a primary objective. Trace profiling results (differences <30 ms considered measurement noise): * `Cycle.chain_of_pairwise`: unchanged 🎉 * `List.argmax_cons`: 387 ms before, 94 ms after 🎉 * `ciSup_subtype`: 118 ms before, 77 ms after 🎉 * `exists_seq_forall_proj_of_forall_finite`: unchanged 🎉 * `Polynomial.roots_quadratic_eq_pair_iff_of_ne_zero'`: unchanged 🎉 Profiled using `set_option trace.profiler true in`. This PR is batched under the following guidelines: * Up to ~5 changed files per PR * Up to ~25 changed declarations per PR * Up to ~100 changed lines per PR ESTIMATED CHANGES Modified Mathlib/Data/List/Cycle.lean Modified Mathlib/Data/List/MinMax.lean Modified Mathlib/Order/ConditionallyCompleteLattice/Indexed.lean Modified Mathlib/Order/KonigLemma.lean Modified Mathlib/RingTheory/Polynomial/SmallDegreeVieta.lean 2026-03-12 21:45:25 c1a1f0d chore(Topology): Generalised some of the instances for Function.locallyFinsuppWithin (#35807) In this PR, we generalised the various instances for locally fin supp functions. These changes were originally made on the PR #26304 about algebraic cycles, but it was decided that these changes are more appropriate in their own PR. ESTIMATED CHANGES Modified Mathlib/Topology/LocallyFinsupp.lean + theorem Function.locallyFinsupp.locallyFiniteSupport +/- theorem Function.locallyFinsuppWithin.coe_add +/- theorem Function.locallyFinsuppWithin.coe_neg +/- theorem Function.locallyFinsuppWithin.coe_nsmul +/- theorem Function.locallyFinsuppWithin.coe_sub +/- theorem Function.locallyFinsuppWithin.coe_zero +/- theorem Function.locallyFinsuppWithin.coe_zsmul - def Function.locallyFinsuppWithin.mk_of_mem + def Function.locallyFinsuppWithin.mk_of_mem_addSubgroup + def Function.locallyFinsuppWithin.mk_of_mem_addSubmonoid 2026-03-12 21:45:23 3bd087c chore: golf using `grind` (#35772) The goal of this PR is to decrease the number of times lemmas are called explicitly (replacing calls to lemmas with calls to tactics). Any decrease in compilation time is a welcome side effect, although it is not a primary objective. Trace profiling results (differences <30 ms considered measurement noise): * `CategoryTheory.Precoverage.toGrothendieck_toCoverage`: unchanged 🎉 * `Int.nonneg_or_nonpos_of_mul_nonneg`: unchanged 🎉 * `Associated.separable`: 113 ms before, 67 ms after 🎉 * `ModelWithCorners.isInteriorPoint_disjointUnion_left`: unchanged 🎉 * `ModelWithCorners.isInteriorPoint_disjointUnion_right`: unchanged 🎉 Profiled using `set_option trace.profiler true in`. This PR is batched under the following guidelines: * Up to ~5 changed files per PR * Up to ~25 changed declarations per PR * Up to ~100 changed lines per PR ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Sites/Coverage.lean Modified Mathlib/Data/Int/Order/Basic.lean Modified Mathlib/FieldTheory/Separable.lean Modified Mathlib/Geometry/Manifold/IsManifold/InteriorBoundary.lean 2026-03-12 20:50:43 56d887c feat: grind lemmas for `IsStarNormal` (#36548) When `grind` sees an `IsStarNormal x` hypothesis, we want it to automatically add `Commute x (star x)` to the context, and when it see `Commute a b`, it should also add `a * b = b * a` to the context. ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Commute/Defs.lean Modified Mathlib/Algebra/Star/SelfAdjoint.lean 2026-03-12 20:50:41 86d01ff chore: golf proofs (#35847) This PR removes unused `have`/`haveI`/`let`/`letI` calls. The goal of this PR is to decrease the number of times lemmas are called explicitly (replacing calls to lemmas with calls to tactics). Any decrease in compilation time is a welcome side effect, although it is not a primary objective. Trace profiling results (differences <30 ms considered measurement noise): * `GenContFract.compExactValue_correctness_of_stream_eq_some`: unchanged 🎉 * `Finset.disjoint_range_addLeftEmbedding`: unchanged 🎉 * `CategoryTheory.ComposableArrows.IsComplex.epi_cokerToKer'`: unchanged 🎉 * `CategoryTheory.ComposableArrows.IsComplex.mono_cokerToKer'`: unchanged 🎉 * `ComplexShape.QFactorsThroughHomotopy_of_exists_prev`: unchanged 🎉 * `AlgebraicGeometry.IsAffineOpen.primeIdealOf_genericPoint`: unchanged 🎉 * `AlgebraicGeometry.functionField_isFractionRing_of_isAffineOpen`: unchanged 🎉 * `AlgebraicGeometry.smooth_of_grpObj_of_isAlgClosed`: 266 ms before, 232 ms after 🎉 * `AlgebraicGeometry.Scheme.ker_morphismRestrict_ideal`: 570 ms before, 538 ms after 🎉 * `AlgebraicGeometry.Scheme.IdealSheafData.isLocalization_away`: unchanged 🎉 * `AlgebraicGeometry.affineAnd_isLocal`: unchanged 🎉 * `AlgebraicGeometry.IsZariskiLocalAtTarget.of_iSup_eq_top`: unchanged 🎉 * `AlgebraicGeometry.HasAffineProperty.iff_of_isAffine`: unchanged 🎉 * `AlgebraicGeometry.isDominant_of_of_appTop_injective`: unchanged 🎉 * `AlgebraicGeometry.IsPreimmersion.SpecMap_iff`: unchanged 🎉 * `AlgebraicGeometry.quasiCompact_affineProperty_iff_quasiSeparatedSpace`: unchanged 🎉 Profiled using `set_option trace.profiler true in`. This PR is batched under the following guidelines: * Up to ~5 changed files per PR * Up to ~25 changed declarations per PR * Up to ~100 changed lines per PR ESTIMATED CHANGES Modified Mathlib/Algebra/ContinuedFractions/Computation/CorrectnessTerminating.lean Modified Mathlib/Algebra/Homology/ExactSequenceFour.lean Modified Mathlib/Algebra/Homology/Localization.lean Modified Mathlib/AlgebraicGeometry/FunctionField.lean Modified Mathlib/AlgebraicGeometry/Group/Smooth.lean Modified Mathlib/AlgebraicGeometry/IdealSheaf/Basic.lean Modified Mathlib/AlgebraicGeometry/IdealSheaf/Subscheme.lean Modified Mathlib/AlgebraicGeometry/Morphisms/AffineAnd.lean Modified Mathlib/AlgebraicGeometry/Morphisms/Basic.lean Modified Mathlib/AlgebraicGeometry/Morphisms/ClosedImmersion.lean Modified Mathlib/AlgebraicGeometry/Morphisms/Preimmersion.lean Modified Mathlib/AlgebraicGeometry/Morphisms/QuasiSeparated.lean 2026-03-12 20:50:39 f7071a9 feat(Bicategory/Yoneda): add the yoneda pseudofunctor (#30927) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Bicategory/Yoneda.lean + def CategoryTheory.Bicategory.associatorNatIsoLeftCat + def CategoryTheory.Bicategory.associatorNatIsoMiddleCat + def CategoryTheory.Bicategory.associatorNatIsoRightCat + def CategoryTheory.Bicategory.leftUnitorNatIsoCat + def CategoryTheory.Bicategory.postcomposingCat + def CategoryTheory.Bicategory.postcomposing₂ + def CategoryTheory.Bicategory.postcomp₂ + def CategoryTheory.Bicategory.precomposingCat + def CategoryTheory.Bicategory.rightUnitorNatIsoCat + def CategoryTheory.Bicategory.yoneda + def CategoryTheory.Bicategory.yoneda₀ Modified Mathlib/Data/Opposite.lean +/- theorem Opposite.unop_injective 2026-03-12 20:50:35 f2f0417 feat(LiminfLimsup): liminf of an antitone function is its supremum (#26561) ESTIMATED CHANGES Modified Mathlib/Topology/Order/LiminfLimsup.lean + theorem Antitone.liminf_nhdsGT_eq_iSup₂ + theorem Antitone.liminf_nhdsGT_eq_iSup₂_of_exists_gt + theorem Antitone.limsup_nhdsLT_eq_iInf₂ + theorem Antitone.limsup_nhdsLT_eq_iInf₂_of_exists_lt + theorem Monotone.liminf_nhdsLT_eq_iSup₂ + theorem Monotone.liminf_nhdsLT_eq_iSup₂_of_exists_lt + theorem Monotone.limsup_nhdsGT_eq_iInf₂ + theorem Monotone.limsup_nhdsGT_eq_iInf₂_of_exists_gt 2026-03-12 20:14:27 03f39a8 feat: missing lemmas for `Subalgebra.toNonUnitalSubalgebra` (#36546) ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/Subalgebra/Basic.lean + theorem Subalgebra.mem_toNonUnitalSubalgebra + theorem Subalgebra.toNonUnitalSubalgebra_inj + theorem Subalgebra.toNonUnitalSubalgebra_injective Modified Mathlib/Algebra/Algebra/Subalgebra/Lattice.lean + def Subalgebra.toNonUnitalSubalgebraOrderEmbedding + theorem Subalgebra.toNonUnitalSubalgebra_le_toNonUnitalSubalgebra Modified Mathlib/Algebra/Star/Subalgebra.lean + theorem StarSubalgebra.mem_toNonUnitalStarSubalgebra + theorem StarSubalgebra.toNonUnitalStarSubalgebra_inj + theorem StarSubalgebra.toNonUnitalStarSubalgebra_injective 2026-03-12 19:51:03 66d7282 chore: remove some unneeded `set_option backward.isDefEq.respectTransparency` (#36525) ESTIMATED CHANGES 2026-03-12 19:24:24 4bf038e chore(MeasureTheory): protect `Measure.sub_self` (#36551) ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Measure/Sub.lean - theorem MeasureTheory.Measure.sub_self - theorem MeasureTheory.Measure.zero_sub 2026-03-12 19:24:21 294f8be feat: covariant derivatives on vector bundles (#36279) From the path towards the the Levi-Civita connection and Riemannian geometry. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Geometry/Manifold/MFDeriv/NormedSpace.lean + theorem extDerivFun_add + theorem extDerivFun_zero Added Mathlib/Geometry/Manifold/VectorBundle/CovariantDerivative/Basic.lean + theorem ContMDiffCovariantDerivativeOn.affine_combination + theorem ContMDiffCovariantDerivativeOn.finite_affine_combination + theorem CovariantDerivative.ContMDiffCovariantDerivative.affine_combination + theorem CovariantDerivative.ContMDiffCovariantDerivative.finite_affine_combination + def CovariantDerivative.addOneForm + def CovariantDerivative.affine_combination + theorem CovariantDerivative.contMDiffCovariantDerivativeOn_univ_iff + def CovariantDerivative.difference + def CovariantDerivative.finite_affine_combination + theorem CovariantDerivative.isCovariantDerivativeOn + def CovariantDerivative.of_isCovariantDerivativeOn_of_open_cover + theorem CovariantDerivative.of_isCovariantDerivativeOn_of_open_cover_coe + theorem CovariantDerivative.zero + structure CovariantDerivative + theorem IsCovariantDerivativeOn.add_one_form + theorem IsCovariantDerivativeOn.affine_combination + theorem IsCovariantDerivativeOn.congr_of_eqOn + theorem IsCovariantDerivativeOn.congr_of_eventuallyEq + def IsCovariantDerivativeOn.difference + theorem IsCovariantDerivativeOn.difference_apply + theorem IsCovariantDerivativeOn.finite_affine_combination + theorem IsCovariantDerivativeOn.iUnion + theorem IsCovariantDerivativeOn.mono + theorem IsCovariantDerivativeOn.smul_const + theorem IsCovariantDerivativeOn.zero + structure IsCovariantDerivativeOn Modified Mathlib/Topology/Algebra/Module/LinearMap.lean + theorem ContinuousLinearMap.smulRight_zero + theorem ContinuousLinearMap.zero_smulRight 2026-03-12 18:27:17 9cfd2cf feat(CategoryTheory/Limits/Shapes/ZeroMorphisms): Induced zero morphisms by fully faithful functors (#36480) Given a fully faithful functor `F : D ⥤ C` where `C` has zero morphisms, this PR constructs a `HasZeroMorphisms D` by taking preimages. As a special case, given an object property in a category with zero morphisms, this PR makes an instance `HasZeroMopshisms P.FullSubcategory`. This is similar to `CategoryTheory.Preadditive.fullSubcategory`, which transports a preadditive structure onto a full subcategory of an object property. However, since we also have the instance `CategoryTheory.Preadditive.preadditiveHasZeroMorphisms`, this creates a diamond: ``` Preadditive C --> Preadditive P.FullSubcategory --> HasZeroMorphisms P.FullSubcategory Preadditive C --> HasZeroMorphisms C --> HasZeroMorphisms P.FullSubcategory ``` The resulting instances were defeq, though not reducibly. Following Joel's suggestion, I changed `CategoryTheory.Preadditive.fullSubcategory` to explicitly set the zero field to make them reducibly defeq. This avoids having to add `backwards.isDefEq.respectTransparency`. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Limits/Preserves/Shapes/Zero.lean + theorem CategoryTheory.Functor.FullyFaithful.preservesZeroMorphisms Modified Mathlib/CategoryTheory/Limits/Shapes/ZeroMorphisms.lean + def CategoryTheory.Functor.FullyFaithful.hasZeroMorphisms + theorem CategoryTheory.Functor.FullyFaithful.hasZeroMorphisms_def + theorem CategoryTheory.Limits.ObjectProperty.homMk_zero + theorem CategoryTheory.Limits.ObjectProperty.zero_hom Modified Mathlib/CategoryTheory/Preadditive/Basic.lean 2026-03-12 18:27:14 a9ad4c7 ci: Use splice bot action with in-job token minting (#36476) Update to use the `leanprover-community/SpliceBot` action, which allows for same-job token minting ESTIMATED CHANGES Modified .github/workflows/splice_bot_wf_run.yaml 2026-03-12 18:27:11 b6176c7 chore(Order/OrderDual): move material on `OrderDual` (#35150) This PR moves material about `OrderDual` from `Mathlib.Order.Synonym` to `Mathlib.Order.OrderDual`, so that these two files become independent. This way, `Mathlib.Order.Synonym` will not be on the long pole. Note: it seems that the file `Mathlib.Order.Synonym` used to define `OrderDual`. Maybe that file should now be renamed to `Order.Lex`? ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Field/Basic.lean Modified Mathlib/Algebra/Order/Group/Synonym.lean Modified Mathlib/Data/Fintype/Defs.lean Modified Mathlib/Data/Nat/Cast/Synonym.lean Modified Mathlib/Data/PSigma/Order.lean Modified Mathlib/Data/Prod/Lex.lean Modified Mathlib/Data/Sigma/Order.lean Modified Mathlib/Data/Sum/Order.lean Modified Mathlib/Order/Compare.lean Added Mathlib/Order/Lex.lean + theorem Colex.exists + theorem Colex.forall + def Colex + theorem Lex.exists + theorem Lex.forall + def Lex + def ofColex + theorem ofColex_inj + theorem ofColex_symm_eq + theorem ofColex_toColex + def ofLex + theorem ofLex_inj + theorem ofLex_symm_eq + theorem ofLex_toLex + def toColex + theorem toColex_inj + theorem toColex_ofColex + theorem toColex_symm_eq + def toLex + theorem toLex_inj + theorem toLex_ofLex + theorem toLex_symm_eq Modified Mathlib/Order/Max.lean Modified Mathlib/Order/Monotone/Defs.lean Modified Mathlib/Order/OrderDual.lean + theorem OrderDual.ext + theorem OrderDual.le_toDual + theorem OrderDual.lt_toDual + def OrderDual.ofDual + theorem OrderDual.ofDual_comp_toDual + theorem OrderDual.ofDual_inj + theorem OrderDual.ofDual_le_ofDual + theorem OrderDual.ofDual_lt_ofDual + theorem OrderDual.ofDual_symm_eq + theorem OrderDual.ofDual_toDual + theorem OrderDual.ofDual_trans_toDual + def OrderDual.toDual + theorem OrderDual.toDual_comp_ofDual + theorem OrderDual.toDual_inj + theorem OrderDual.toDual_le_toDual + theorem OrderDual.toDual_lt_toDual + theorem OrderDual.toDual_ofDual + theorem OrderDual.toDual_symm_eq + theorem OrderDual.toDual_trans_ofDual Modified Mathlib/Order/PiLex.lean Modified Mathlib/Order/Synonym.lean - theorem Colex.exists - theorem Colex.forall - def Colex - theorem Lex.exists - theorem Lex.forall - def Lex - theorem OrderDual.ext - theorem OrderDual.le_toDual - theorem OrderDual.lt_toDual - def OrderDual.ofDual - theorem OrderDual.ofDual_comp_toDual - theorem OrderDual.ofDual_inj - theorem OrderDual.ofDual_le_ofDual - theorem OrderDual.ofDual_lt_ofDual - theorem OrderDual.ofDual_symm_eq - theorem OrderDual.ofDual_toDual - theorem OrderDual.ofDual_trans_toDual - def OrderDual.toDual - theorem OrderDual.toDual_comp_ofDual - theorem OrderDual.toDual_inj - theorem OrderDual.toDual_le_toDual - theorem OrderDual.toDual_lt_toDual - theorem OrderDual.toDual_ofDual - theorem OrderDual.toDual_symm_eq - theorem OrderDual.toDual_trans_ofDual - def ofColex - theorem ofColex_inj - theorem ofColex_symm_eq - theorem ofColex_toColex - def ofLex - theorem ofLex_inj - theorem ofLex_symm_eq - theorem ofLex_toLex - def toColex - theorem toColex_inj - theorem toColex_ofColex - theorem toColex_symm_eq - def toLex - theorem toLex_inj - theorem toLex_ofLex - theorem toLex_symm_eq 2026-03-12 17:39:49 1174c64 refactor(CategoryTheory/FintypeCat): redefine `FintypeCat` as a full subcategory of `Type` (#36498) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/FintypeCat.lean +/- theorem FintypeCat.Skeleton.incl_mk_nat_card +/- theorem FintypeCat.id_hom - def FintypeCat.incl - structure FintypeCat Modified Mathlib/CategoryTheory/Galois/Basic.lean Modified Mathlib/CategoryTheory/Galois/Decomposition.lean Modified Mathlib/CategoryTheory/Galois/Equivalence.lean Modified Mathlib/CategoryTheory/Galois/EssSurj.lean Modified Mathlib/CategoryTheory/Galois/Examples.lean Modified Mathlib/CategoryTheory/Galois/GaloisObjects.lean Modified Mathlib/CategoryTheory/Galois/Topology.lean Modified Mathlib/CategoryTheory/Preadditive/Mat.lean Modified Mathlib/Condensed/Discrete/Colimit.lean Modified Mathlib/Order/Category/FinBoolAlg.lean - def fintypeToFinBoolAlgOp Modified Mathlib/Topology/Category/LightProfinite/Basic.lean Modified Mathlib/Topology/Category/Profinite/AsLimit.lean Modified Mathlib/Topology/Category/Profinite/Basic.lean 2026-03-12 17:39:47 7b163d0 chore: replace long terminal `simp only […]`:s (≥7 lemmas) with bare `simp`:s (#36377) The goal of this PR is to decrease the number of times lemmas are called explicitly. Any decrease in compilation time is a welcome side effect, although it is not a primary objective. Trace profiling results (differences <30 ms considered measurement noise): * `SimpleGraph.Walk.toSubgraph_adj_getVert`: unchanged 🎉 * `MeasureTheory.MemLp.induction_dense`: unchanged 🎉 * `DirichletCharacter.re_log_comb_nonneg'`: unchanged 🎉 * `Zsqrtd.intCast_dvd`: unchanged 🎉 * `ProbabilityTheory.Kernel.iIndepSets.iIndep`: unchanged 🎉 * `LaurentSeries.exists_ratFunc_val_lt`: unchanged 🎉 * `Polynomial.cyclotomic_pos_and_nonneg`: unchanged 🎉 * `PowerSeries.eq_shift_mul_X_add_const`: unchanged 🎉 * `PowerSeries.eq_X_mul_shift_add_const`: unchanged 🎉 Profiled using `set_option trace.profiler true in`. This PR is batched under the following guidelines: * Up to ~5 changed files per PR * Up to ~25 changed declarations per PR * Up to ~100 changed lines per PR ESTIMATED CHANGES Modified Mathlib/Combinatorics/SimpleGraph/Connectivity/Subgraph.lean Modified Mathlib/MeasureTheory/Function/SimpleFuncDenseLp.lean Modified Mathlib/NumberTheory/LSeries/Nonvanishing.lean Modified Mathlib/NumberTheory/Zsqrtd/Basic.lean Modified Mathlib/Probability/Independence/Kernel/Indep.lean Modified Mathlib/RingTheory/LaurentSeries.lean Modified Mathlib/RingTheory/Polynomial/Cyclotomic/Eval.lean Modified Mathlib/RingTheory/PowerSeries/Basic.lean 2026-03-12 17:39:45 66fdfed feat: add indiscrete topology lemmas (#36336) Prove that the indiscrete topology is compact and that every function to the indiscrete topology is continuous. ESTIMATED CHANGES Modified Mathlib/Topology/Compactness/Compact.lean Modified Mathlib/Topology/Order.lean + theorem clusterPt_of_indiscreteTopology + theorem continuous_of_indiscreteTopology 2026-03-12 17:39:43 407d331 feat(Algebra/Homology/SpectralObject): induced morphisms that are epi/mono (#36153) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Homology/SpectralObject/EpiMono.lean + theorem CategoryTheory.Abelian.SpectralObject.d_map_fourδ₄Toδ₃ + theorem CategoryTheory.Abelian.SpectralObject.epi_map + theorem CategoryTheory.Abelian.SpectralObject.isIso_mapFourδ₁Toδ₀' + theorem CategoryTheory.Abelian.SpectralObject.isIso_mapFourδ₂Toδ₁' + theorem CategoryTheory.Abelian.SpectralObject.isIso_mapFourδ₄Toδ₃' + theorem CategoryTheory.Abelian.SpectralObject.isIso_map_fourδ₁Toδ₀ + theorem CategoryTheory.Abelian.SpectralObject.isIso_map_fourδ₁Toδ₀_of_isZero + theorem CategoryTheory.Abelian.SpectralObject.isIso_map_fourδ₄Toδ₃ + theorem CategoryTheory.Abelian.SpectralObject.isIso_map_fourδ₄Toδ₃_of_isZero + theorem CategoryTheory.Abelian.SpectralObject.isoMapFourδ₁Toδ₀'_hom_inv_id + theorem CategoryTheory.Abelian.SpectralObject.isoMapFourδ₁Toδ₀'_inv_hom_id + theorem CategoryTheory.Abelian.SpectralObject.isoMapFourδ₄Toδ₄'_hom_inv_id + theorem CategoryTheory.Abelian.SpectralObject.isoMapFourδ₄Toδ₄'_inv_hom_id + theorem CategoryTheory.Abelian.SpectralObject.mapFourδ₁Toδ₀'_comp + theorem CategoryTheory.Abelian.SpectralObject.mapFourδ₁Toδ₀'_mapFourδ₃Toδ₃' + theorem CategoryTheory.Abelian.SpectralObject.mapFourδ₄Toδ₃'_comp + theorem CategoryTheory.Abelian.SpectralObject.map_fourδ₁Toδ₀_d + theorem CategoryTheory.Abelian.SpectralObject.mono_map 2026-03-12 17:39:40 2c9f249 feat(Algebra/Homology): a homology exact sequence for triangles of cochain complexes (#35939) ... which become distinguished in the derived category. ESTIMATED CHANGES Modified Mathlib/Algebra/Homology/DerivedCategory/Basic.lean + theorem DerivedCategory.mappingCocone_triangle_distinguished + theorem DerivedCategory.mappingCone_triangle_distinguished Modified Mathlib/Algebra/Homology/DerivedCategory/HomologySequence.lean + theorem CochainComplex.homologyFunctorFactors_hom_app_homologyδOfTriangle + theorem CochainComplex.homologyMap_comp_eq_zero_of_distTriang + theorem CochainComplex.homologyMap_exact₁_of_distTriang + theorem CochainComplex.homologyMap_exact₂_of_distTriang + theorem CochainComplex.homologyMap_exact₃_of_distTriang + theorem CochainComplex.homologyMap_homologyδOfTriangle + theorem CochainComplex.homologyδOfTriangle_homologyMap +/- theorem DerivedCategory.HomologySequence.comp_δ +/- theorem DerivedCategory.HomologySequence.epi_homologyMap_mor₂_iff +/- theorem DerivedCategory.HomologySequence.exact₁ +/- theorem DerivedCategory.HomologySequence.exact₃ +/- theorem DerivedCategory.HomologySequence.mono_homologyMap_mor₁_iff +/- theorem DerivedCategory.HomologySequence.δ_comp 2026-03-12 17:39:38 4213a88 feat(CategoryTheory/Sites/Point): fiber functors are monoidal (#35572) If `Φ` is a point of a site, the target category `A` is monoidal and the tensor product commutes with filtered colimits on both variables, then the functors `Φ.presheafFiber : (Cᵒᵖ ⥤ A) ⥤ A)` and `Φ.sheafFiber : Sheaf J A ⥤ A` are monoidal. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/CategoryTheory/Sites/Point/Basic.lean Modified Mathlib/CategoryTheory/Sites/Point/Conservative.lean Added Mathlib/CategoryTheory/Sites/Point/Monoidal.lean + theorem CategoryTheory.GrothendieckTopology.Point.tensorHom_comp_toPresheafFiber_μ + theorem CategoryTheory.GrothendieckTopology.Point.toPresheafFiber_δ + theorem CategoryTheory.GrothendieckTopology.Point.toPresheafFiber_ε + theorem CategoryTheory.GrothendieckTopology.Point.toPresheafFiber_η Modified Mathlib/CategoryTheory/Sites/Point/Skyscraper.lean 2026-03-12 17:39:36 0791ac7 feat(Algebra/Homology/SpectralObject): first quadrant spectral objects (#35375) When a spectral object indexed by the extended integers lies on the first quadrant (typeclass `IsFirstQuadrant`), it will be possible to construct a spectral sequence where the objects on the pages are indexed by `ℕ × ℕ` (TODO). ESTIMATED CHANGES Modified Mathlib/Algebra/Homology/SpectralObject/HasSpectralSequence.lean + theorem CategoryTheory.Abelian.SpectralObject.isZero₁_of_isFirstQuadrant + theorem CategoryTheory.Abelian.SpectralObject.isZero₁_of_isThirdQuadrant + theorem CategoryTheory.Abelian.SpectralObject.isZero₂_of_isFirstQuadrant + theorem CategoryTheory.Abelian.SpectralObject.isZero₂_of_isThirdQuadrant 2026-03-12 16:40:24 1049ae2 chore: make `lean_lib Cache` buildable (#36514) This PR adds ``globs := #[`Cache.+]`` to `lean_lib Cache` so that `lake build Cache` now succeeds. Otherwise, building `Cache` fails, as `Cache.lean` does not exist. We also update ``globs := #[.submodules `MathlibTest]`` to the same syntax for consistency. (The `.+` suffix [is notation for](https://github.com/leanprover/lean4/blob/24acf2b895670fdeeafc64c4f606e7a0ebc19e6d/src/lake/Lake/Config/Glob.lean#L36-L37) `.submodules`.) ESTIMATED CHANGES Modified lakefile.lean 2026-03-12 16:40:23 60dc6e3 feat(SimpleGraph/Walks/Operations): `p.dropLast.length` lemmas (#35642) ESTIMATED CHANGES Modified Mathlib/Combinatorics/SimpleGraph/Walks/Operations.lean + theorem SimpleGraph.Walk.length_dropLast + theorem SimpleGraph.Walk.length_dropLast_add_one 2026-03-12 15:45:54 7947165 chore: use `IsLUB` `IsGLB` in `CompleteLattice` (#35328) ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Submonoid/Saturation.lean Modified Mathlib/Algebra/Module/Submodule/Lattice.lean Modified Mathlib/AlgebraicGeometry/IdealSheaf/Basic.lean Modified Mathlib/AlgebraicTopology/SimplicialComplex/Basic.lean Modified Mathlib/CategoryTheory/Sites/Sieves.lean Modified Mathlib/CategoryTheory/Subfunctor/Basic.lean Modified Mathlib/CategoryTheory/Subobject/Lattice.lean Modified Mathlib/Combinatorics/Digraph/Basic.lean Modified Mathlib/Combinatorics/SimpleGraph/Basic.lean Modified Mathlib/Combinatorics/SimpleGraph/Subgraph.lean Modified Mathlib/Data/Fintype/Order.lean Modified Mathlib/Data/Set/BooleanAlgebra.lean Modified Mathlib/Geometry/Convex/Cone/Basic.lean Modified Mathlib/LinearAlgebra/AffineSpace/AffineSubspace/Defs.lean Modified Mathlib/MeasureTheory/Measure/MeasureSpace.lean Modified Mathlib/Order/Atoms.lean Modified Mathlib/Order/Bounds/Image.lean +/- theorem isLUB_prod Modified Mathlib/Order/CompactlyGenerated/Basic.lean Modified Mathlib/Order/CompleteBooleanAlgebra.lean Modified Mathlib/Order/CompleteLattice/Basic.lean + theorem sInf_apply_eq_sInf_image + theorem sSup_apply_eq_sSup_image Modified Mathlib/Order/CompleteLattice/Defs.lean +/- theorem le_sSup +/- theorem sSup_le Modified Mathlib/Order/CompleteLattice/Lemmas.lean Modified Mathlib/Order/CompleteLattice/PiLex.lean Modified Mathlib/Order/CompleteLatticeIntervals.lean Modified Mathlib/Order/Concept.lean Modified Mathlib/Order/ConditionallyCompleteLattice/Basic.lean Modified Mathlib/Order/Copy.lean Modified Mathlib/Order/Filter/Basic.lean Modified Mathlib/Order/FixedPoints.lean Modified Mathlib/Order/GaloisConnection/Basic.lean Modified Mathlib/Order/Hom/Order.lean Modified Mathlib/Order/Interval/Basic.lean Modified Mathlib/Order/Nucleus.lean Modified Mathlib/Order/ScottContinuity/Prod.lean Modified Mathlib/Order/SupClosed.lean Modified Mathlib/Probability/Process/Filtration.lean Modified Mathlib/RingTheory/TwoSidedIdeal/Lattice.lean Modified Mathlib/Topology/Algebra/Group/GroupTopology.lean Modified Mathlib/Topology/Algebra/Module/ClosedSubmodule.lean Modified Mathlib/Topology/Algebra/Ring/Basic.lean Modified Mathlib/Topology/UniformSpace/Basic.lean 2026-03-12 15:10:52 8f787c6 feat(NumberTheory/FunctionField): add instances on `FqtInfty` (#35720) This PR proves the relevant instances on `FqtInfty` by locally replacing the existing valued instance `RatFunc.valuedRatFunc` coming from the ideal `X` with the required `UniformSpace` instance coming from the valuation at infinity and then deriving the relevant instances. ESTIMATED CHANGES Modified Mathlib/FieldTheory/RatFunc/AsPolynomial.lean Modified Mathlib/NumberTheory/FunctionField.lean +/- def FunctionField.FqtInfty 2026-03-12 13:47:33 be5810e chore: golf using `grind` and `simp` (#36380) The goal of this PR is to decrease the number of times lemmas are called explicitly. Any decrease in compilation time is a welcome side effect, although it is not a primary objective. Trace profiling results (differences <30 ms considered measurement noise): * `AlgebraicGeometry.Scheme.zariskiTopology_le_propQCTopology`: unchanged 🎉 * `CategoryTheory.Pretriangulated.shift_opShiftFunctorEquivalence_counitIso_inv_app`: unchanged 🎉 * `Finset.exists_subset_or_subset_of_two_mul_lt_card`: 210 ms before, 173 ms after 🎉 Profiled using `set_option trace.profiler true in`. This PR is batched under the following guidelines: * Up to ~5 changed files per PR * Up to ~25 changed declarations per PR * Up to ~100 changed lines per PR ESTIMATED CHANGES Modified Mathlib/AlgebraicGeometry/Sites/QuasiCompact.lean Modified Mathlib/CategoryTheory/Triangulated/Opposite/Basic.lean Modified Mathlib/Data/Finset/Card.lean 2026-03-12 13:28:43 151b5c4 ci: explain the expected format of bad PR titles better (#36523) If a PR kind was not recognised, explain which ones are expected. This also clarifies the check's logic: this error was supposed to be emitted already, but wasn't (due to a last-minute refactoring of the linter). Remove the old code path was never run (and is run now). ESTIMATED CHANGES Modified Mathlib/Tactic/Linter/ValidatePRTitle.lean Modified MathlibTest/ValidatePRTitle.lean 2026-03-12 13:16:47 c2993b3 doc(SetTheory): fix typos (#36528) Found by `PyCharm`'s code inspection tool. ESTIMATED CHANGES Modified Mathlib/SetTheory/Cardinal/HasCardinalLT.lean 2026-03-12 12:47:58 e06b88a doc(Topology): fix typos (#36526) Found by `PyCharm`'s code inspection tool. ESTIMATED CHANGES Modified Mathlib/Topology/Algebra/Valued/WithVal.lean Modified Mathlib/Topology/Category/TopCat/OpenNhds.lean Modified Mathlib/Topology/Germ.lean Modified Mathlib/Topology/MetricSpace/CoveringNumbers.lean Modified Mathlib/Topology/MetricSpace/PartitionOfUnity.lean Modified Mathlib/Topology/NatEmbedding.lean 2026-03-12 12:47:56 b77fb9c feat(SetTheory/Ordinal): `o ≤ c.ord ↔ o.card ≤ c` in special cases (#36171) `o ≤ c.ord ↔ o.card ≤ c` when `o` is initial, or when `c` is finite. The left-to-right direction always holds (`Cardinal.card_le_of_le_ord`). Not to be confused with `c.ord ≤ o ↔ c ≤ o.card` which also always holds (`Cardinal.ord_le`). ESTIMATED CHANGES Modified Mathlib/SetTheory/Cardinal/Aleph.lean + theorem Ordinal.IsInitial.le_ord_iff_card_le Modified Mathlib/SetTheory/Ordinal/Basic.lean + theorem Cardinal.le_ord_iff_card_le_of_lt_aleph0 2026-03-12 12:47:54 cc5ce88 feat(SetTheory/Ordinal/Arithmetic): `typein (· < ·) = natCast` for `ℕ` and `Fin n` (#35840) ESTIMATED CHANGES Modified Mathlib/SetTheory/Ordinal/Arithmetic.lean + theorem Ordinal.enum_lt_fin + theorem Ordinal.enum_lt_nat + theorem Ordinal.typein_lt_fin + theorem Ordinal.typein_lt_nat Modified Mathlib/SetTheory/Ordinal/Basic.lean + theorem Ordinal.type_Iio_lt 2026-03-12 12:47:52 f1ef83d feat(Geometry/Manifold): interior and boundary are preserved by (local) diffeomorphisms (#34938) If `f` is a local diffeomorphism at `x`, `f x` is an interior point iff `x` is. We prove this and a bunch of corollaries, in particular that `BoundarylessManifold` is invariant under diffeomorphisms which we need for subsequent work. ESTIMATED CHANGES Modified Mathlib/Geometry/Manifold/IsManifold/ExtChartAt.lean + theorem writtenInExtChartAt_mapsTo Modified Mathlib/Geometry/Manifold/IsManifold/InteriorBoundary.lean + theorem Diffeomorph.boundarylessManifold + theorem Diffeomorph.boundarylessManifold_iff + theorem Diffeomorph.image_boundary + theorem Diffeomorph.image_interior + theorem Diffeomorph.preimage_boundary + theorem Diffeomorph.preimage_interior + theorem IsLocalDiffeomorph.boundarylessManifold + theorem IsLocalDiffeomorph.preimage_boundary + theorem IsLocalDiffeomorph.preimage_interior + theorem IsLocalDiffeomorphAt.isBoundaryPoint_iff + theorem IsLocalDiffeomorphAt.isInteriorPoint_iff + theorem IsLocalDiffeomorphOn.preimage_boundary_inter + theorem IsLocalDiffeomorphOn.preimage_interior_inter + theorem MDifferentiableAt.isInteriorPoint_of_surjective_mfderiv + theorem ModelWithCorners.isBoundaryPoint_iff_not_isInteriorPoint 2026-03-12 12:09:04 d87f455 feat(GroupTheory/SpecificGroups/Alternating/Simple): the alternating group on at least 5 letters is simple. (#33082) This is preparatory material for the conclusion of the story of the proof of simplicity of the alternating group using the Iwasawa criterion which is #36524. ESTIMATED CHANGES Modified Mathlib/GroupTheory/GroupAction/ConjAct.lean + theorem ConjAct.coe_smul + theorem ConjAct.toConjAct_inv_smul + theorem ConjAct.toConjAct_smul_eq_mulAut_conj Modified Mathlib/GroupTheory/Perm/ConjAct.lean + theorem Equiv.Perm.conj_smul_range_ofSubtype + theorem Equiv.Perm.support_conj_eq_smul_support Modified Mathlib/GroupTheory/Perm/Finite.lean + theorem Equiv.Perm.mem_range_ofSubtype_iff Modified Mathlib/GroupTheory/Perm/Sign.lean +/- theorem Equiv.Perm.sign_ofSubtype Modified Mathlib/GroupTheory/Perm/Support.lean + theorem Equiv.Perm.mem_support_ofSubtype Modified Mathlib/GroupTheory/SpecificGroups/Alternating.lean - theorem Equiv.Perm.closure_cycleType_eq_2_2_eq_alternatingGroup + theorem Equiv.Perm.closure_cycleType_eq_two_two_eq_alternatingGroup + theorem Equiv.Perm.cycleType_eq_two_two_subset_alternatingGroup + theorem Equiv.Perm.isThreeCycle_subset_alternatingGroup + theorem alternatingGroup.closure_cycleType_eq_two_two_eq_top + theorem alternatingGroup.closure_isThreeCycles_eq_top + theorem alternatingGroup.conj_smul_range_ofSubtype + theorem alternatingGroup.map_ofSubtype + theorem alternatingGroup.mem_range_ofSubtype_iff + def alternatingGroup.ofSubtype + theorem alternatingGroup.ofSubtype_comp_subtype + theorem alternatingGroup.range_ofSubtype Modified Mathlib/GroupTheory/SpecificGroups/Alternating/MaximalSubgroups.lean Modified Mathlib/GroupTheory/SpecificGroups/KleinFour.lean + theorem IsKleinFour.isMulCommutative 2026-03-12 11:52:53 95b694b chore(NumberTheory/Zsqrtd): inline duplicated order lemmas into instances (#35481) This PR follows reviewer feedback by removing duplicated order/additive wrapper theorems in `Zsqrtd` and inlining the proofs into the corresponding typeclass instances. Changes include: - remove redundant wrappers such as `Zsqrtd.le_total`, `Zsqrtd.add_le_add_left`, `Zsqrtd.le_of_add_le_add_left`, `Zsqrtd.add_lt_add_left`, and `Zsqrtd.le_antisymm` - keep the canonical API through `LinearOrder` / ordered additive structure fields - update downstream use in `PellMatiyasevic` to the canonical theorem (`_root_.le_antisymm`) This reduces namespace-level duplicate APIs and keeps proofs aligned with standard typeclass lemmas. ESTIMATED CHANGES Modified Mathlib/NumberTheory/PellMatiyasevic.lean Modified Mathlib/NumberTheory/Zsqrtd/Basic.lean 2026-03-12 10:20:54 9cc6a7c doc(Tactic): fix typos (#36521) Found by `PyCharm`'s code inspection tool. ESTIMATED CHANGES Modified Mathlib/Tactic/CategoryTheory/Elementwise.lean Modified Mathlib/Tactic/Simproc/ExistsAndEq.lean Modified Mathlib/Tactic/Translate/Reorder.lean 2026-03-12 10:20:52 5846101 doc(Data): fix typos (#36519) Found by `PyCharm`'s code inspection tool. ESTIMATED CHANGES Modified Mathlib/Data/Finset/NatDivisors.lean Modified Mathlib/Data/FunLike/Graded.lean Modified Mathlib/Data/Matrix/ColumnRowPartitioned.lean Modified Mathlib/Data/Seq/Defs.lean Modified Mathlib/Data/Set/Operations.lean 2026-03-12 10:20:50 690b800 doc(NumberTheory): fix typos (#36518) Found by `PyCharm`'s code inspection tool. ESTIMATED CHANGES Modified Mathlib/NumberTheory/Height/Basic.lean Modified Mathlib/NumberTheory/MulChar/Duality.lean Modified Mathlib/NumberTheory/Padics/Complex.lean 2026-03-12 10:20:48 88a2f71 doc(Probability): fix typos (#36517) Found by `PyCharm`'s code inspection tool. ESTIMATED CHANGES Modified Mathlib/Probability/Distributions/Gaussian/IsGaussianProcess/Def.lean Modified Mathlib/Probability/Distributions/Gaussian/IsGaussianProcess/Independence.lean Modified Mathlib/Probability/Independence/Process.lean 2026-03-12 10:20:46 b3e0cae doc(LinearAlgebra): fix typos (#36516) Found by `PyCharm`'s code inspection tool. ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/PiTensorProduct/Dual.lean Modified Mathlib/LinearAlgebra/RootSystem/Reduced.lean Modified Mathlib/LinearAlgebra/TensorPower/Symmetric.lean Modified Mathlib/LinearAlgebra/Transvection.lean 2026-03-12 10:20:44 eaf7b99 feat(Algebra/Star/SelfAdjoint): `natCast` doesn't need associativity (#36511) ESTIMATED CHANGES Modified Mathlib/Algebra/Star/SelfAdjoint.lean 2026-03-12 10:20:42 363a363 feat(scripts/autolabel): add dependencies for `t-ring-theory` (#34678) these changes are motivated by clearing the [triage queue: PRs without topic label](https://leanprover-community.github.io/queueboard/triage.html#unlabelled): about 60-70% of unlabelled PRs were `feat(RingTheory/...)` which also modified stuff falling under `t-algebra`, `t-group-theory` or `t-data`. - [x] depends on: #34066 ESTIMATED CHANGES Modified scripts/autolabel.lean 2026-03-12 10:20:40 3f1f134 feat(scripts/autolabel): add missing folders (#34677) add the following rules for folders not covered by the script yet: - `Mathlib/Geometry/Polygon` to `t-euclidean-geometry` - `Mathlib/Geometry/Diffeology` to `t-differential-geometry` - `Cache` to `ci` ESTIMATED CHANGES Modified scripts/autolabel.lean 2026-03-12 08:30:08 b037f4b feat(CategoryTheory/Sites): left adjoint is cocontinuous if and only if the right adjoint preserves covers (#36490) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Adjunction/Basic.lean + theorem CategoryTheory.Adjunction.homEquiv_symm_unit Modified Mathlib/CategoryTheory/Sites/CoverLifting.lean + theorem CategoryTheory.Adjunction.isCocontinuous_iff_coverPreserving + theorem CategoryTheory.Adjunction.isContinuous_of_isCocontinuous Modified Mathlib/CategoryTheory/Sites/Over.lean + theorem CategoryTheory.GrothendieckTopology.coverPreserving_overPullback + theorem CategoryTheory.Sieve.overEquiv_functorPullback_map 2026-03-12 08:06:27 3024fb6 chore(CategoryTheory/Adjunction): fix `Adjunction.ofNatIsoLeft` to not use `Adjunction.mkOfHomEquiv` (#36493) This gives the correct def-eqs for the `unit` and `counit`. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Adjunction/Basic.lean + theorem CategoryTheory.Adjunction.homEquiv_ofNatIsoLeft_apply + theorem CategoryTheory.Adjunction.homEquiv_ofNatIsoLeft_symm_apply + theorem CategoryTheory.Adjunction.homEquiv_ofNatIsoRight_apply + theorem CategoryTheory.Adjunction.homEquiv_ofNatIsoRight_symm_apply +/- def CategoryTheory.Adjunction.ofNatIsoLeft +/- def CategoryTheory.Adjunction.ofNatIsoRight Modified Mathlib/CategoryTheory/Monoidal/Closed/Basic.lean Modified Mathlib/RepresentationTheory/FiniteIndex.lean 2026-03-12 07:50:16 cdc017d feat(AlgebraicGeometry): `ℓ`-adic cohomology (#36306) Let `X` be a scheme and `ℓ` be a prime number. We define the sheaf associated to the topological group `ℤ_[ℓ]` on the pro-étale site of `X` following Definition 6.8.1 of [Bhatt-Scholze](https://www.math.uni-bonn.de/people/scholze/proetale.pdf). Its cohomology groups are the `ℓ`-adic cohomology groups of `X`. We will eventually be able to show that this definition agrees with the classical definition as the inverse limit of étale cohomology groups (see Proposition 5.6.2 in the article cited above). ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/AlgebraicGeometry/Cover/QuasiCompact.lean Modified Mathlib/AlgebraicGeometry/Sites/ConstantSheaf.lean + theorem AlgebraicGeometry.isSheaf_fpqcTopology_continuousMapPresheaf + theorem AlgebraicGeometry.isSheaf_fpqcTopology_continuousMapPresheafAb Added Mathlib/AlgebraicGeometry/Sites/ElladicCohomology.lean + def AlgebraicGeometry.Scheme.EllAdicCohomology + theorem AlgebraicGeometry.Scheme.isZero_ellAdicSheaf_of_isEmpty Modified Mathlib/AlgebraicGeometry/Sites/Proetale.lean + theorem AlgebraicGeometry.Scheme.ProEt.bot_mem_topology + theorem AlgebraicGeometry.Scheme.ProEt.topology_eq_top_of_isEmpty + theorem AlgebraicGeometry.Scheme.proetalePrecoverage_le_fpqcPrecoverage + theorem AlgebraicGeometry.Scheme.proetaleTopology_eq_propQCTopology + theorem AlgebraicGeometry.Scheme.proetaleTopology_le_fpqcTopology Modified Mathlib/AlgebraicGeometry/Sites/QuasiCompact.lean + theorem AlgebraicGeometry.Scheme.bot_mem_propQCPrecoverage + theorem AlgebraicGeometry.Scheme.bot_mem_propQCTopology + theorem AlgebraicGeometry.Scheme.bot_mem_qcPrecoverage + theorem AlgebraicGeometry.Scheme.propQCPrecoverage_monotone Modified Mathlib/CategoryTheory/Abelian/GrothendieckAxioms/Sheaf.lean Modified Mathlib/CategoryTheory/Sites/Sheaf.lean + theorem CategoryTheory.Presheaf.IsSheaf.of_le Modified Mathlib/CategoryTheory/Sites/SheafCohomology/Basic.lean + theorem CategoryTheory.Sheaf.cohomologyFunctor_obj + theorem CategoryTheory.Sheaf.subsingleton_H_of_isZero Modified Mathlib/CategoryTheory/Sites/SubcanonicalOver.lean - theorem CategoryTheory.GrothendieckTopology.subcanonical_over 2026-03-12 02:11:36 77a266e doc(Geometry): fix typos (#36504) Found by `PyCharm`'s code inspection tool. ESTIMATED CHANGES Modified Mathlib/Geometry/Euclidean/Volume/Measure.lean Modified Mathlib/Geometry/Manifold/VectorBundle/LocalFrame.lean Modified Mathlib/Geometry/Manifold/VectorBundle/Tensoriality.lean 2026-03-12 02:11:34 7666069 feat: `Finset.disjoint_preimage` (#36488) ESTIMATED CHANGES Modified Mathlib/Data/Finset/Preimage.lean + theorem Finset.disjoint_preimage 2026-03-12 01:16:09 fa07bb8 chore: golf proofs (#35189) The goal of this golfing PR is to decrease the number of times lemmas are called explicitly (replacing calls to lemmas with calls to tactics). Any decrease in compilation time is a welcome side effect, although it is not a primary objective. Trace profiling results (shown if ≥10 ms before or after): * `Complex.orderClosedTopology`: 227 ms before, <10 ms after 🎉 * `CategoryTheory.Functor.map_shiftFunctorComm`: 73 ms before, <10 ms after 🎉 * `CategoryTheory.extensiveTopology.presheafIsLocallySurjective_iff`: 154 ms before, 65 ms after 🎉 * `CategoryTheory.Presieve.functorPushforward_overForget`: 13 ms before, <10 ms after 🎉 * `Equiv.Perm.IsCycle.isCycle_pow_pos_of_lt_prime_order`: 15 ms before, <10 ms after 🎉 * `Equiv.Perm.IsCycle.isConj_iff`: <10 ms before, <10 ms after 🎉 * `Equiv.Perm.zpow_eq_ofSubtype_subtypePerm_iff`: 31 ms before, 32 ms after * `StieltjesFunction.measure_Ici`: 242 ms before, 102 ms after 🎉 * `le_iff_eq_sup_sdiff`: 54 ms before, 19 ms after 🎉 This golfing PR is batched under the following guidelines: * Up to ~5 changed files per PR * Up to ~25 changed declarations per PR * Up to ~100 changed lines per PR ESTIMATED CHANGES Modified Mathlib/Analysis/Complex/Basic.lean +/- theorem Complex.orderClosedTopology Modified Mathlib/CategoryTheory/Shift/CommShift.lean Modified Mathlib/CategoryTheory/Sites/Coherent/LocallySurjective.lean Modified Mathlib/CategoryTheory/Sites/Sieves.lean Modified Mathlib/GroupTheory/Perm/Cycle/Basic.lean Modified Mathlib/MeasureTheory/Measure/Stieltjes.lean Modified Mathlib/Order/BooleanAlgebra/Basic.lean 2026-03-11 22:03:19 d8f2208 feat(Combinatorics/SimpleGraph/Hamiltonian): if mapping a Hamiltonian walk results in a path, the mapping function is injective (#36469) ESTIMATED CHANGES Modified Mathlib/Combinatorics/SimpleGraph/Hamiltonian.lean + theorem SimpleGraph.Walk.IsHamiltonian.injective_of_isPath_map +/- theorem SimpleGraph.Walk.IsHamiltonian.map +/- theorem SimpleGraph.Walk.IsHamiltonian.mem_support + theorem SimpleGraph.Walk.IsHamiltonian.setOf_support - theorem SimpleGraph.Walk.IsHamiltonian.support_toFinset + theorem SimpleGraph.Walk.IsHamiltonian.toFinset_support +/- theorem SimpleGraph.Walk.IsHamiltonianCycle.map Modified Mathlib/Combinatorics/SimpleGraph/Paths.lean + theorem SimpleGraph.Walk.IsPath.injOn_support_of_isPath_map 2026-03-11 20:49:26 b495b14 feat(RamificationInertia): add `ramificationIdx_algebra_tower'` (#35493) The result [Ideal.ramificationIdx_algebra_tower](https://leanprover-community.github.io/mathlib4_docs/Mathlib/NumberTheory/RamificationInertia/Basic.html#Ideal.ramificationIdx_algebra_tower) is stated in a very general situation whereas most of its applications should be when there is a tower of prime ideals like in [Ideal.inertiaDeg_algebra_tower](https://leanprover-community.github.io/mathlib4_docs/Mathlib/NumberTheory/RamificationInertia/Basic.html#Ideal.inertiaDeg_algebra_tower). This PR adds a version of `Ideal.ramificationIdx_algebra_tower` specialized to this case. The instances needed are stronger but there is no side condition. I believe that this corresponds to the more useful situation and thus I replaced all the use of `Ideal.ramificationIdx_algebra_tower` by the new version even if that means having to adjust the hypotheses. ESTIMATED CHANGES Modified Mathlib/NumberTheory/NumberField/Cyclotomic/Ideal.lean Modified Mathlib/NumberTheory/RamificationInertia/Basic.lean + theorem Ideal.ramificationIdx_algebra_tower' Modified Mathlib/NumberTheory/RamificationInertia/Galois.lean + theorem Ideal.ramificationIdxIn_mul_ramificationIdxIn' Modified Mathlib/RingTheory/Localization/AtPrime/Extension.lean 2026-03-11 20:11:54 d2d3074 feat(RingTheory/UniqueFactorizationDomain/Multiplicity): more API (#36381) This adds a few API lemmas on factorization in `UniqueFactorizationMonoid`s. It also includes a minor cleanup of sections and variables. The results will be useful for proving the Northcott property for heights on number fields. ESTIMATED CHANGES Modified Mathlib/RingTheory/UniqueFactorizationDomain/Multiplicity.lean + theorem UniqueFactorizationMonoid.associated_finprod_pow_count +/- theorem UniqueFactorizationMonoid.count_normalizedFactors_eq' +/- theorem UniqueFactorizationMonoid.count_normalizedFactors_eq +/- theorem UniqueFactorizationMonoid.emultiplicity_eq_count_normalizedFactors + theorem UniqueFactorizationMonoid.finprod_pow_count_eq_of_subsingleton_units + theorem UniqueFactorizationMonoid.multiplicity_eq_count_normalizedFactors 2026-03-11 17:24:49 23df8c3 feat(NumberTheory/Chebyshev): express the Chebyshev theta function in terms of the prime counting function (#35573) This is a sibling theorem to Chebyshev.primeCounting_eq_theta_div_log_add_integral. ESTIMATED CHANGES Modified Mathlib/NumberTheory/Chebyshev.lean + theorem Chebyshev.theta_eq_primeCounting_mul_log_sub_integral 2026-03-11 15:48:20 e13d3e6 chore: use `RelHomClass` in `IsChain.image` (#34760) ESTIMATED CHANGES Modified Counterexamples/AharoniKorman.lean Modified Mathlib/Order/Height.lean Modified Mathlib/Order/Preorder/Chain.lean +/- theorem IsChain.image + theorem IsChain.image_of_map_rel +/- theorem IsChain.image_relEmbedding 2026-03-11 14:51:16 66efb43 chore(Order/Defs/LinearOrder): avoid `grind` in very fundamental lemmas (#35841) Some lemmas can be optimized more elegantly, but it requires moving lemmas from other files, so I will do it in a subsequent PR. ESTIMATED CHANGES Modified Mathlib/Order/Defs/LinearOrder.lean +/- theorem le_min +/- theorem le_of_not_gt +/- theorem lt_or_gt_of_ne +/- theorem lt_trichotomy +/- theorem max_def' +/- theorem min_assoc +/- theorem min_def' +/- theorem min_eq_left +/- theorem min_le_left +/- theorem min_le_right +/- theorem min_left_comm +/- theorem min_self 2026-03-11 14:30:43 66c417e chore(CategoryTheory/Sites): generalize some universe parameters (#36448) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Sites/CompatiblePlus.lean Modified Mathlib/CategoryTheory/Sites/CompatibleSheafification.lean Modified Mathlib/CategoryTheory/Sites/PreservesSheafification.lean 2026-03-11 14:13:40 af9d0b3 feat(Homology): HasInjectiveDimensionLT with enough projectives (#36437) For category woth enough projectives, `HasInjectiveDimensionLT X n` only need `Subsingleton (Ext Y X n)` ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Abelian/Injective/Dimension.lean + theorem CategoryTheory.hasInjectiveDimensionLT_of_enoughProjectives 2026-03-11 14:13:37 354c5d1 feat(Homology): HasProjectiveDimensionLT with enough injectives (#36436) For category woth enough projectives, `HasProjectiveDimensionLT X n` only need `Subsingleton (Ext X Y n)` ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Abelian/Projective/Dimension.lean + theorem CategoryTheory.hasProjectiveDimensionLT_of_enoughInjectives 2026-03-11 14:13:35 22106d1 feat(CategoryTheory/Limits/Preserves/Shapes/Kernels): Preserve monos of preserve kernels (#36411) If a functor to a normal epi category preserves kernels and zero morphisms, then it preserves monomorphisms. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Limits/Shapes/NormalMono/Equalizers.lean + theorem CategoryTheory.NormalEpiCategory.preservesMonomorphisms_of_preservesKernels + theorem CategoryTheory.NormalMonoCategory.preservesEpimorphisms_of_preservesCokernels 2026-03-11 14:13:33 d3a668e feat(CategoryTheory/Abelian/Exact): add easy lemmas about short exactness (#35598) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Abelian/ShortExact.lean + theorem CategoryTheory.ShortExact.reflects_shortExact_of_faithful + theorem CategoryTheory.ShortExact.shortExact_map_iff 2026-03-11 14:02:14 37d0aa3 ci: Fix permissions in maintainer_merge_wf_run.yml (#36484) Job-level permissions override top-level ones ESTIMATED CHANGES Modified .github/workflows/maintainer_merge_wf_run.yml 2026-03-11 13:32:34 eed7f01 ci: Revert splice_bot_wf_run.yaml to using app keys (#36475) The change for this file was unsound, as you can't share secrets across jobs. We can come up with another strategy for this file (e.g., a reusable action), but let's revert to restore functionality ESTIMATED CHANGES Modified .github/workflows/splice_bot_wf_run.yaml 2026-03-11 12:33:20 972247e chore: remove stray comment about backward.isDefEq.respectTransparency (#36095) This PR removes a stray comment in `lakefile.lean` that referred to the `backward.isDefEq.respectTransparency` option. The option itself was already removed, but the comment was left behind. See https://leanprover.zulipchat.com/#narrow/channel/113488-general/topic/backward.2EisDefEq.2ErespectTransparency/near/576953838 🤖 Prepared with Claude Code ESTIMATED CHANGES Modified lakefile.lean 2026-03-11 10:33:49 2ff4632 feat(Analysis/InnerProductSpace/Rayleigh): the spectral radius of a self-adjoint operator equals the norm (#36246) This PR uses Rayleigh quotients to prove that the spectral radius of a self-adjoint operator equals the norm. ESTIMATED CHANGES Modified Mathlib/Analysis/InnerProductSpace/Rayleigh.lean + theorem ContinuousLinearMap.abs_rayleighQuotient_le_of_norm_mem_resolventSet + theorem ContinuousLinearMap.rayleighQuotient_le_of_norm_mem_resolventSet + theorem ContinuousLinearMap.spectralRadius_eq_nnnorm 2026-03-11 10:12:20 1c5c767 feat: show `Seminorm.IsBounded` using real constants (#36460) (And fix an indentation mistake) ESTIMATED CHANGES Modified Mathlib/Analysis/Distribution/ContDiffMapSupportedIn.lean Modified Mathlib/Analysis/LocallyConvex/WithSeminorms.lean + theorem Seminorm.IsBounded.of_real 2026-03-11 04:20:41 4644b1d feat(Analysis/Complex/Trigonometric): `cos(2x) = 1 - 2 * sin(x)^2` (#35943) This is one of the 3 commonly used forms of the cosine double-angle formula. ESTIMATED CHANGES Modified Mathlib/Analysis/Complex/Trigonometric.lean + theorem Complex.cos_two_mul_eq_one_sub 2026-03-11 03:16:02 0f1d0fb feat(Geometry.Euclidean.Sphere): inner product of chord with radius vector is negative (#36241) For distinct points `A` and `B` on a sphere, the inner product `⟪B -ᵥ A, A -ᵥ s.center⟫` is negative. This is a natural companion to the existing `inner_pos_of_dist_lt_radius` and `inner_nonneg_of_dist_le_radius`. ESTIMATED CHANGES Modified Mathlib/Geometry/Euclidean/Sphere/Basic.lean + theorem EuclideanGeometry.inner_vsub_center_vsub_pos 2026-03-11 02:31:19 218bca7 feat(Data/Finsupp/Order): `{map,emb}Domain` preserve tsub (#36369) `mapDomain` by an injective map, and `embDomain`, preserve truncated subtraction. ESTIMATED CHANGES Modified Mathlib/Data/Finsupp/Order.lean + theorem Finsupp.embDomain_tsub + theorem Finsupp.mapDomain_tsub 2026-03-11 02:19:25 c68faf6 chore: deprecate Turing files (#35609) This follow-up deprecates files moved in #35608 This PR was made with the assistance of Claude Code ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Computability/PostTuringMachine.lean Added Mathlib/Computability/TMComputable.lean Added Mathlib/Computability/TMConfig.lean Added Mathlib/Computability/TMToPartrec.lean Added Mathlib/Computability/Tape.lean Added Mathlib/Computability/TuringMachine.lean 2026-03-11 01:46:53 82ff578 feat(Mathlib/Analysis/Polynomial/MahlerMeasure): Mahler Measure estimate in terms of supNorm (#35280) The Mahler measure of a polynomial is bounded above by `√(p.natDegree + 1) * p.supNorm`. This is a tighter estimate than `(p.natDegree + 1) * p.supNorm`, which is implied by `mahlerMeasure_le_sum_norm_coeff`. AI Usage: Claude Code (Opus 4.6) provided first drafts for several sorries in the main calc block. Gemini Pro was used for one-off looks ups of lemma names like `ae_restrict_iff'`. The final code was edited by me. [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) ESTIMATED CHANGES Modified Mathlib/Analysis/Polynomial/MahlerMeasure.lean + theorem Polynomial.mahlerMeasure_le_sqrt_natDegree_add_one_mul_supNorm 2026-03-11 00:43:07 a19d30d feat(RingTheory/MvPowerSeries): introduce `rename` (#33188) This file establishes the `rename` operation on multivariate power series under a map with finite fibers, which modifies the set of variables. This file is patterned after 'Mathlib/Algebra/MvPolynomial/Rename.lean` ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Data/Finsupp/Antidiagonal.lean + theorem Finsupp.image_prodMap_embDomain_antidiagonal Modified Mathlib/Data/Finsupp/Basic.lean + theorem Finsupp.embDomain_trans_apply + theorem Finsupp.mapDomain_apply_eq_sum + theorem Finsupp.mapDomain_apply_eq_zero_iff_of_subsingletonAddUnits + theorem Finsupp.mapDomain_support_of_subsingletonAddUnits + theorem Finsupp.mem_range_embDomain_iff Modified Mathlib/Data/Finsupp/Defs.lean + theorem Finsupp.embDomain_refl Modified Mathlib/Data/Finsupp/Order.lean + theorem Finsupp.isLowerSet_range_embDomain Modified Mathlib/Data/Finsupp/Weight.lean + theorem Finsupp.degree_comapDomain_le_of_canonicallyOrderedAdd + theorem Finsupp.degree_mapDomain_eq_of_subsingletonAddUnits Added Mathlib/Order/Filter/TendstoCofinite.lean + theorem Filter.TendstoCofinite.comp + theorem Filter.TendstoCofinite.embedding + theorem Filter.TendstoCofinite.equiv + theorem Filter.TendstoCofinite.finite_preimage + theorem Filter.TendstoCofinite.finite_preimage_singleton + theorem Filter.TendstoCofinite.id + theorem Filter.TendstoCofinite.mapDomain_add + theorem Filter.TendstoCofinite.mapDomain_eq_zero + theorem Filter.TendstoCofinite.mapDomain_smul + theorem Filter.tendstoCofinite_iff_finite_preimage_singleton + theorem Filter.tendstoCofinite_of_finite + theorem Filter.tendstoCofinite_of_injective + theorem Finsupp.mapDomain_tendstoCofinite Modified Mathlib/RingTheory/MvPowerSeries/Basic.lean +/- theorem MvPowerSeries.X_def Added Mathlib/RingTheory/MvPowerSeries/Rename.lean + theorem MvPowerSeries.coeff_embDomain_rename + theorem MvPowerSeries.coeff_killCompl + theorem MvPowerSeries.coeff_rename + theorem MvPowerSeries.coeff_rename_eq_zero + theorem MvPowerSeries.constantCoeff_rename + def MvPowerSeries.killCompl + def MvPowerSeries.killComplFun + theorem MvPowerSeries.killCompl_C + theorem MvPowerSeries.killCompl_X + theorem MvPowerSeries.killCompl_X_eq_zero + theorem MvPowerSeries.killCompl_comp_rename + theorem MvPowerSeries.killCompl_map + theorem MvPowerSeries.killCompl_monomial_embDomain + theorem MvPowerSeries.killCompl_monomial_eq_zero + theorem MvPowerSeries.killCompl_rename_app + def MvPowerSeries.rename + def MvPowerSeries.renameEquiv + theorem MvPowerSeries.renameEquiv_refl + theorem MvPowerSeries.renameEquiv_symm + theorem MvPowerSeries.renameEquiv_trans + def MvPowerSeries.renameFun + theorem MvPowerSeries.rename_C + theorem MvPowerSeries.rename_X + theorem MvPowerSeries.rename_coe + theorem MvPowerSeries.rename_comp_rename + theorem MvPowerSeries.rename_id + theorem MvPowerSeries.rename_id_apply + theorem MvPowerSeries.rename_inj + theorem MvPowerSeries.rename_injective + theorem MvPowerSeries.rename_map + theorem MvPowerSeries.rename_monomial + theorem MvPowerSeries.rename_rename 2026-03-11 00:21:18 f2b7f45 chore: `Seminorm.continuous_from_bounded` -> `WithSeminorms.continuous_of_isBounded` (#36397) ESTIMATED CHANGES Modified Mathlib/Analysis/Distribution/ContDiffMapSupportedIn.lean Modified Mathlib/Analysis/Distribution/SchwartzSpace/Basic.lean Modified Mathlib/Analysis/LocallyConvex/PointwiseConvergence.lean Modified Mathlib/Analysis/LocallyConvex/WeakDual.lean Modified Mathlib/Analysis/LocallyConvex/WithSeminorms.lean - theorem Seminorm.cont_normedSpace_to_withSeminorms - theorem Seminorm.cont_withSeminorms_normedSpace - theorem Seminorm.continuous_from_bounded - theorem Seminorm.continuous_iff_continuous_comp - theorem Seminorm.continuous_of_continuous_comp + theorem WithSeminorms.continuous_iff_continuous_comp + theorem WithSeminorms.continuous_normedSpace_dom + theorem WithSeminorms.continuous_normedSpace_rng + theorem WithSeminorms.continuous_of_continuous_comp + theorem WithSeminorms.continuous_of_isBounded +/- theorem WithSeminorms.uniformEquicontinuous_iff_bddAbove_and_continuous_iSup +/- theorem WithSeminorms.uniformEquicontinuous_iff_exists_continuous_seminorm 2026-03-10 23:22:20 a41960b feat(Analysis/CStarAlgebra/CFC/Order): conjugating with a star projection in a C*-algebra (#35997) When `e` is a star projection and `0 ≤ a ≤ e`, we get `e * a * e = a`. ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/Unitization.lean + theorem Unitization.inr_inj Modified Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Order.lean + theorem IsStarProjection.conjugate_of_nonneg_of_le + theorem IsStarProjection.mul_right_and_mul_left_of_nonneg_of_le + theorem Unitization.sqrt_inr 2026-03-10 23:22:19 e206344 feat(Analysis/Convex/SimplicialComplex): add AbstractSimplicialComplex + constructions (#33364) This adds the concept of [abstract simplicial complex](https://en.wikipedia.org/wiki/Abstract_simplicial_complex) (and refactors SimplicialComplex in terms of it). It also adds constructions that makes it easy to define a simplicial complex for any index family of points which is downward closed and which is affinely independent. I also include a construction of (abstract and geometric) simplicial complexes associated with a SimpleGraph, where vertices become 0-faces and edges become 1-faces, which could be useful later in defining the topological notion of a graph embedding. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/AlgebraicTopology/SimplicialComplex/Basic.lean + theorem AbstractSimplicialComplex.toPreAbstractSimplicialComplex_injective + theorem AbstractSimplicialComplex.toPreAbstractSimplicialComplex_le_iff + theorem AbstractSimplicialComplex.toPreAbstractSimplicialComplex_lt_iff + theorem AbstractSimplicialComplex.top_toPreAbstractSimplicialComplex + structure AbstractSimplicialComplex + def PreAbstractSimplicialComplex.addSingletons + def PreAbstractSimplicialComplex.map + def PreAbstractSimplicialComplex.toAbstractSimplicialComplex + structure PreAbstractSimplicialComplex Added Mathlib/Analysis/Convex/SimplicialComplex/AffineIndependentUnion.lean + def Geometry.AbstractSimplicialComplex.ofSimpleGraph + def Geometry.SimplicialComplex.ofAffineIndependent Modified Mathlib/Analysis/Convex/SimplicialComplex/Basic.lean +/- structure Geometry.SimplicialComplex Modified Mathlib/Data/Sym/Sym2.lean + theorem Sym2.toFinset_ne_empty Modified Mathlib/LinearAlgebra/AffineSpace/Independent.lean + theorem LinearIndependent.affineIndependent Modified Mathlib/Order/UpperLower/Relative.lean + theorem IsRelLowerSet.mem_of_le + theorem IsRelUpperSet.mem_of_le Modified Mathlib/Tactic/Linter/DirectoryDependency.lean 2026-03-10 22:48:24 ff3c134 fix(Mathlib/CategoryTheory/Limits): fix naming of a lemma (#36455) The lemma `preservesFiniteCoproductsOfPreservesBinaryAndInitial` does not follow the naming convention, as it's type is a Prop. Moreover, it is inconsistent with the product version, which does follow the convention [PreservesFiniteProducts.of_preserves_binary_and_terminal](https://leanprover-community.github.io/mathlib4_docs/Mathlib/CategoryTheory/Limits/Constructions/FiniteProductsOfBinaryProducts.html#CategoryTheory.Limits.PreservesFiniteProducts.of_preserves_binary_and_terminal) ESTIMATED CHANGES Modified Mathlib/AlgebraicGeometry/Limits.lean Modified Mathlib/CategoryTheory/Limits/Constructions/FiniteProductsOfBinaryProducts.lean + theorem CategoryTheory.PreservesFiniteCoproducts.of_preserves_binary_and_initial - theorem CategoryTheory.preservesFiniteCoproductsOfPreservesBinaryAndInitial Modified Mathlib/CategoryTheory/Limits/Constructions/LimitsOfProductsAndEqualizers.lean Modified Mathlib/CategoryTheory/Preadditive/LeftExact.lean 2026-03-10 22:48:22 6a9cd49 feat(ENat): relate iInf of ENats to addition (#36452) There are currently virtually no lemmas in mathlib relating the infimum of extended natural numbers to their addition: https://loogle.lean-lang.org/?q=ENat%2C+iInf%2C+_+%2B+_. This PR adds a collection, adapted from the analogous ones for ENNReal. In each case, the name (and proof) is picked to match that for ENNReal. ESTIMATED CHANGES Modified Mathlib/Data/ENat/Lattice.lean + theorem ENat.add_iInf + theorem ENat.add_iInf₂ + theorem ENat.add_sInf + theorem ENat.iInf_add + theorem ENat.iInf_add_iInf + theorem ENat.iInf_add_iInf_of_monotone + theorem ENat.iInf₂_add + theorem ENat.le_iInf_add_iInf + theorem ENat.le_iInf₂_add_iInf₂ + theorem ENat.sInf_add + theorem ENat.sub_iInf 2026-03-10 22:48:21 c729b52 feat(Analysis/Fourier): the Fourier transform as bounded continuous function (#35954) This is the main step in proving that the Fourier transform defined via the integral is equal to the Fourier transform on `L1` via extension of Schwartz functions. We do not use the Riemann-Lebesgue lemma here to define the map into `ZeroAtInftyContinuousMap` because it is possible to deduce Riemann-Lebesgue from embedding of Schwartz functions. ESTIMATED CHANGES Modified Mathlib/Analysis/Fourier/FourierTransform.lean + theorem Real.Lp.coe_fourierTransform + def Real.Lp.fourierTransform + def Real.Lp.fourierTransformCLM + theorem Real.Lp.fourierTransformCLM_apply + theorem Real.Lp.fourierTransform_apply + theorem Real.fourierTransform_toLp + theorem Real.fourier_congr_ae + theorem VectorFourier.fourierIntegral_congr_ae 2026-03-10 22:48:19 66eefd6 feat(Analysis/SchwartzMap): estimates for `Lp` and `BCF` norms (#35953) ESTIMATED CHANGES Modified Mathlib/Analysis/Distribution/SchwartzSpace/Basic.lean + theorem SchwartzMap.norm_toBoundedContinuousFunction_le + theorem SchwartzMap.norm_toLp' + theorem SchwartzMap.norm_toLp_one + theorem SchwartzMap.norm_toLp_top_le + theorem SchwartzMap.norm_toZeroAtInfty Modified Mathlib/Analysis/Distribution/SchwartzSpace/Fourier.lean + theorem SchwartzMap.norm_fourier_Lp_top_leq_toLp_one + theorem SchwartzMap.norm_fourier_apply_le_toLp_one + theorem SchwartzMap.norm_fourier_toBoundedContinuousFunction_le_toLp_one 2026-03-10 22:48:17 dcc3f2a chore(Tactic): rewrite `finiteness` tactic docstring (#35818) This PR (re)writes the docstrings for the `finiteness` tactic, to consistently match the official style guide, to make sure they are complete while not getting too long. A bit of restructuring and clarification. ESTIMATED CHANGES Modified Mathlib/Tactic/Finiteness.lean 2026-03-10 22:48:16 f84529f feat(Analysis/Distribution): Fourier multiplier (#34099) We define Fourier multiplier with temperate growth functions acting on Schwartz functions as well as tempered distributions. We prove that the directional derivative and the Laplacian can be represented as Fourier multiplier. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/Distribution/FourierMultiplier.lean + def SchwartzMap.fourierMultiplierCLM + theorem SchwartzMap.fourierMultiplierCLM_apply + theorem SchwartzMap.fourierMultiplierCLM_compL_fourierMultiplierCLM + theorem SchwartzMap.fourierMultiplierCLM_const + theorem SchwartzMap.fourierMultiplierCLM_fourierMultiplierCLM_apply + theorem SchwartzMap.fourierMultiplierCLM_ofReal + theorem SchwartzMap.fourierMultiplierCLM_smul + theorem SchwartzMap.fourierMultiplierCLM_sum + theorem SchwartzMap.laplacian_eq_fourierMultiplierCLM + theorem SchwartzMap.lineDeriv_eq_fourierMultiplierCLM + def TemperedDistribution.fourierMultiplierCLM + theorem TemperedDistribution.fourierMultiplierCLM_apply + theorem TemperedDistribution.fourierMultiplierCLM_apply_apply + theorem TemperedDistribution.fourierMultiplierCLM_compL_fourierMultiplierCLM + theorem TemperedDistribution.fourierMultiplierCLM_const + theorem TemperedDistribution.fourierMultiplierCLM_fourierMultiplierCLM_apply + theorem TemperedDistribution.fourierMultiplierCLM_smul + theorem TemperedDistribution.fourierMultiplierCLM_sum + theorem TemperedDistribution.fourierMultiplierCLM_toTemperedDistributionCLM_eq + theorem TemperedDistribution.laplacian_eq_fourierMultiplierCLM + theorem TemperedDistribution.lineDeriv_eq_fourierMultiplierCLM 2026-03-10 22:34:26 b7fcb00 feat(Chebyshev/RootsExtrema): bound iterated derivatives of Chebyshev T on [-1, 1] (#34364) ESTIMATED CHANGES Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Chebyshev/RootsExtrema.lean + theorem Polynomial.Chebyshev.abs_iterate_derivative_T_real_le Modified Mathlib/RingTheory/Polynomial/Chebyshev.lean + theorem Polynomial.Chebyshev.T_derivative_mem_span_T + theorem Polynomial.Chebyshev.T_iterate_derivative_mem_span_T + theorem Polynomial.Chebyshev.U_eq_two_mul_T_add_U + theorem Polynomial.Chebyshev.U_mem_span_T + theorem Polynomial.Chebyshev.two_mul_T_eq_U_sub_U 2026-03-10 22:08:16 f622314 feat(Analysis/SchwartzMap): translation of arguments (#35781) We only define the translation with subtraction, because this is more common in applications. ESTIMATED CHANGES Modified Mathlib/Analysis/Distribution/SchwartzSpace/Basic.lean + def SchwartzMap.compSubConstCLM + theorem SchwartzMap.compSubConstCLM_apply + theorem SchwartzMap.compSubConstCLM_comp + theorem SchwartzMap.compSubConstCLM_zero Modified Mathlib/Analysis/Distribution/SchwartzSpace/Deriv.lean 2026-03-10 21:47:19 fafbbbf chore(GroupTheory/SpecificGroups/Alternating): clean up some proofs (#36450) This PR cleans up a few proofs in `GroupTheory/SpecificGroups/Alternating.lean`. ESTIMATED CHANGES Modified Mathlib/GroupTheory/SpecificGroups/Alternating.lean 2026-03-10 21:47:17 31e1951 chore(Analysis/InnerProductSpace): remove a hypothesis from LinearMap.IsSymmetric.card_filter_eigenvalues_eq (#36106) Use proof by cases to remove an unnecessary hypothesis from `LinearMap.IsSymmetric.card_filter_eigenvalues_eq` and the related private `LinearMap.IsSymmetric.card_filter_unsortedEigenvalues_eq`. This required proving a statement similar to `LinearMap.IsSymmetric.hasEigenvalue_eigenvalues` but for `unsortedEigenvalues`. ESTIMATED CHANGES Modified Mathlib/Analysis/InnerProductSpace/Spectrum.lean +/- theorem LinearMap.IsSymmetric.card_filter_eigenvalues_eq 2026-03-10 21:33:27 b0b8870 feat(Analysis/CStarAlgebra): `IsIdempotentElem a ↔ spectrum R a ⊆ {0, 1}` (#35916) ... also adds a tfae for `IsStarProjection` in C*-algebras and that if `star x * x` is idempotent then so is `x * star x`. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Projection.lean + theorem isIdempotentElem_iff_quasispectrum_subset + theorem isIdempotentElem_iff_spectrum_subset + theorem isIdempotentElem_star_mul_self_iff_isIdempotentElem_self_mul_star Modified Mathlib/Analysis/CStarAlgebra/Projection.lean + theorem isStarProjection_iff_quasispectrum_subset_and_isSelfAdjoint + theorem isStarProjection_iff_quasispectrum_subset_and_isStarNormal + theorem isStarProjection_iff_spectrum_subset_and_isSelfAdjoint + theorem isStarProjection_iff_spectrum_subset_and_isStarNormal Modified Mathlib/FieldTheory/IsAlgClosed/Spectrum.lean + theorem IsIdempotentElem.finite_quasispectrum + theorem IsIdempotentElem.finite_spectrum +/- theorem IsIdempotentElem.quasispectrum_subset 2026-03-10 20:56:00 1d9dd82 feat(ENat): relate addition with strict inequality (#36454) We have these theorems for WithTop and for ENNReal, but not for ENat. None of these follow from general typeclass facts, eg add_lt_add requires strict monotonicity of addition, which fails in ENat. It's worth having these explicitly, since they're already there for ENNReal, and to avoid defeq abuse around ENat/WithTop. ESTIMATED CHANGES Modified Mathlib/Data/ENat/Basic.lean 2026-03-10 20:55:58 e13110e feat(AlgebraicGeometry): intersection of affine opens in separated schemes is affine (#36453) ESTIMATED CHANGES Modified Mathlib/AlgebraicGeometry/Morphisms/Affine.lean + theorem AlgebraicGeometry.IsAffineOpen.biInf + theorem AlgebraicGeometry.IsAffineOpen.iInf + theorem AlgebraicGeometry.IsAffineOpen.inf + theorem AlgebraicGeometry.diagonal_isAffine_iff_forall_isAffineOpen_inf + theorem AlgebraicGeometry.isAffineHom_diagonal_iff 2026-03-10 20:55:56 b3fb4df feat(Analysis): Eliminate a hypothesis on IsTheta.rpow (#36084) A strengthened version of `IsTheta.rpow`: if $f$ and $g$ are eventually nonnegative functions with $f = \Theta(g)$ and $r \in \mathbb{R}$, then $f^r = \Theta(g^r)$. The previous version had a hypothesis that $r \geq 0$. The present version proves by splitting into two cases; in the case $r < 0$, the lower and upper bounds must be used in reverse order. Since `IsTheta.rpow` is not used elsewhere in Mathlib, this should be an easy one to merge. (Claude AI was used to help in the golfing.) ESTIMATED CHANGES Modified Mathlib/Analysis/SpecialFunctions/Pow/Asymptotics.lean +/- theorem Asymptotics.IsTheta.rpow 2026-03-10 20:55:55 e821a3f feat(Analysis/Distribution/ContDiffMapSupportedIn): Add a wrapper for fderiv on D_K^n (#30240) Add a wrapper for `fderiv` as a continuous linear map from `D_K^n` to `D_K^(n-1)`. Co-Authored by: @ADedecker ESTIMATED CHANGES Modified Mathlib/Analysis/Distribution/ContDiffMapSupportedIn.lean + theorem ContDiffMapSupportedIn.fderivCLM_apply + theorem ContDiffMapSupportedIn.fderivCLM_apply_of_gt + theorem ContDiffMapSupportedIn.fderivCLM_apply_of_le + theorem ContDiffMapSupportedIn.fderivCLM_eq_of_scalars + theorem ContDiffMapSupportedIn.fderivLM_apply + theorem ContDiffMapSupportedIn.fderivLM_apply_of_gt + theorem ContDiffMapSupportedIn.fderivLM_apply_of_le + theorem ContDiffMapSupportedIn.fderivLM_eq_of_scalars +/- theorem ContDiffMapSupportedIn.iteratedFDerivLM_apply_of_gt + theorem ContDiffMapSupportedIn.seminorm_fderivLM_le + theorem ContDiffMapSupportedIn.seminorm_fderivLM_top 2026-03-10 20:04:30 d5a55b5 feat(Data/Multiset/Powerset): show injectivity and monotonicity of powerset (#35465) Add Injective, Monotone, and StrictMono proofs for `Multiset.powerset`. Also, add a theorem showing that the sizes of two powersets are bidirectionally related to the sizes of the underlying Multisets (`powerset_le_powerset_iff_le`), a couple of other small `Multiset.powerset` lemmas, and theorems for append and map for `List.Subperm`. Also, thanks to Ruben Van de Velde for looking this over on the Zulip! ESTIMATED CHANGES Modified Mathlib/Data/List/Perm/Subperm.lean + theorem List.Subperm.append + theorem List.map_subperm_map_iff Modified Mathlib/Data/List/Sublists.lean + theorem List.Sublist.sublists' + theorem List.sublists'_sublist_sublists'_iff + theorem List.subperm_of_sublists'_subperm_sublists' Modified Mathlib/Data/Multiset/Powerset.lean + theorem Multiset.powerset_eq_singleton_zero_iff + theorem Multiset.powerset_injective + theorem Multiset.powerset_le_powerset_iff_le + theorem Multiset.powerset_mono + theorem Multiset.powerset_strictMono + theorem Multiset.self_mem_powerset + theorem Multiset.zero_mem_powerset 2026-03-10 19:38:16 6103ab7 feat(Analysis/Convex): `extremePoints ℝ (closedBall x r) ⊆ sphere x r` (#35899) ... in a nontrivial normed space, with equality in a nontrivial strictly convex space. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/Convex/Strict/Extreme.lean + theorem StrictConvex.diff_interior_subset_extremePoints + theorem StrictConvex.extremePoints_eq_diff_interior + theorem StrictConvexSpace.extremePoints_closedBall_eq_sphere + theorem StrictConvexSpace.sphere_subset_extremePoints_closedBall + theorem disjoint_interior_extremePoints + theorem extremePoints_closedBall_subset_sphere 2026-03-10 19:08:48 bd534f1 chore(Geometry/Manifold/MFDeriv/NormedSpace): use custom elaborators … (#36449) …at scale ESTIMATED CHANGES Modified Mathlib/Geometry/Manifold/MFDeriv/NormedSpace.lean +/- theorem Differentiable.comp_mdifferentiable +/- theorem Differentiable.comp_mdifferentiableAt +/- theorem DifferentiableAt.comp_mdifferentiableAt +/- theorem DifferentiableAt.comp_mdifferentiableWithinAt +/- theorem MDifferentiable.clm_postcomp +/- theorem MDifferentiable.clm_precomp +/- theorem MDifferentiable.smul +/- theorem MDifferentiableAt.clm_postcomp +/- theorem MDifferentiableAt.smul +/- theorem MDifferentiableOn.clm_precomp +/- theorem MDifferentiableOn.smul +/- theorem MDifferentiableWithinAt.cle_arrowCongr +/- theorem MDifferentiableWithinAt.differentiableWithinAt_comp_extChartAt_symm 2026-03-10 18:51:31 3e3898f feat(Analysis/Normed/Operator): prove the Fredholm alternative (#35048) This PR proves the Fredholm alternative for compact operators on a Banach space over a nontrivially normed field - [x] depends on: #35001 - [x] depends on: #35052 - [x] depends on: #35226 ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Analysis/Normed/Operator/Banach.lean + theorem ContinuousLinearMap.spectrum_eq Added Mathlib/Analysis/Normed/Operator/FredholmAlternative.lean + theorem IsCompactOperator.antilipschitz_of_not_hasEigenvalue + theorem IsCompactOperator.hasEigenvalue_iff_mem_spectrum + theorem IsCompactOperator.hasEigenvalue_or_mem_resolventSet 2026-03-10 18:38:58 b7cc971 chore(Computability/Partrec): remove `linter.flexible` exceptions (#35682) This removes all `set_option linter.flexible false` from this module. Some proofs simply required moving around the usage of `simp`. For others I used `grind`, which is permitted to follow flexible tactics. In all cases I prioritized leaving the structure of the proof either mostly as-is or slightly improving readability. ESTIMATED CHANGES Modified Mathlib/Computability/Partrec.lean 2026-03-10 17:32:27 aa1dd64 fix(docs): deduplicate yaml key (#36001) Having two identical keys in the same structure isn't valid yaml. This PR adopts the same pattern used for other theorems with multiple declarations. ESTIMATED CHANGES Modified docs/1000.yaml 2026-03-10 17:20:42 83db511 fix: weird imports in `TestFunction.lean` (#36303) ESTIMATED CHANGES Modified Mathlib/Analysis/Distribution/TestFunction.lean 2026-03-10 16:35:41 0e6621d feat: mfderiv_smul (#34263) Some invisible mathematics is showing up when working with scalar multiplication by a function: a priori, the `mfderiv` yields an element in a suitable tangent space --- which we identity implicitly with the corresponding vector/scalar. We insert the canonical identification `NormedSpace.fromTangentSpace` as needed to deal with this. From the path towards geodesics and the Levi-Civita connection. ESTIMATED CHANGES Modified Mathlib/Geometry/Manifold/IsManifold/Basic.lean + def NormedSpace.fromTangentSpace Modified Mathlib/Geometry/Manifold/MFDeriv/NormedSpace.lean + theorem HasMFDerivAt.smul +/- theorem MDifferentiable.smul +/- theorem MDifferentiableAt.smul +/- theorem MDifferentiableOn.smul +/- theorem MDifferentiableWithinAt.smul + theorem fromTangentSpace_mfderiv_smul' + theorem fromTangentSpace_mfderiv_smul + theorem fromTangentSpace_mfderiv_smul_apply' + theorem fromTangentSpace_mfderiv_smul_apply + theorem mfderiv_smul 2026-03-10 16:06:08 09c7a88 ci: remove outdated logic in workflows (#35277) Remove outdated code in workflows: - a step used in an investigation - should not be needed in any case with ephemeral runners - 'clean cache directory' step no longer relevant with ephemeral runners - merge_group triggers: we don't use them anymore - stale.yml, an experimental unused pipeline ESTIMATED CHANGES Modified .github/workflows/actionlint.yml Modified .github/workflows/build.yml Modified .github/workflows/build_template.yml Deleted .github/workflows/stale.yml Modified docs/workflows.md 2026-03-10 15:17:02 3f7b757 feat(Topology/Instances/EReal): limsup of multiplication by a constant (#35272) add an analogue of `limsup_const_mul_of_ne_top` which applies to `EReal` instead of `ENNReal` ESTIMATED CHANGES Modified Mathlib/Topology/Instances/EReal/Lemmas.lean + theorem EReal.liminf_const_mul_of_nonneg_of_ne_top + theorem EReal.liminf_const_mul_of_nonpos_of_ne_bot + theorem EReal.limsup_const_mul_of_nonneg_of_ne_top + theorem EReal.limsup_const_mul_of_nonpos_of_ne_bot 2026-03-10 15:02:44 d9cd7ac feat: lemmas for the analytic part of the proof of the Gelfond–Schneider theorem (Part 3/5) (#35315) ESTIMATED CHANGES Modified Mathlib/Analysis/Analytic/Order.lean + theorem analyticOrderAt_deriv_of_pos + theorem analyticOrderAt_iterated_deriv 2026-03-10 14:28:30 1f8cbfe ci: Move GitHub apps private keys to Azure Key Vault and mint tokens Key Vault signing (#36150) This PR migrates most GitHub App token minting in mathlib4 workflows from `actions/create-github-app-token` (using private keys in repo secrets) to the new Azure Key Vault-backed action introduced in [mathlib-ci#6](https://github.com/leanprover-community/mathlib-ci/pull/6). Documentation on how to set this up can be found over there. For an example run see https://github.com/leanprover-community/mathlib4/actions/runs/22678441098 Pending migrations because I didn't have access to the keys: MATHLIB_LEAN_PR_TESTING_* (other org; still uses actions/create-github-app-token) LPC_TEAM_CHECK_* in splice_bot_wf_run.yaml (still uses private key for now) Changes: - Migrated most workflow to Azure-minted tokens - Added/adjusted workflow permissions for OIDC minting (added id-token: write where Azure minting is used) Prepared with Codex ESTIMATED CHANGES Modified .github/workflows/bors.yml Modified .github/workflows/build.yml Modified .github/workflows/build_fork.yml Modified .github/workflows/build_template.yml Modified .github/workflows/ci_dev.yml Modified .github/workflows/dependent-issues.yml Modified .github/workflows/maintainer_bors_wf_run.yml Modified .github/workflows/maintainer_merge.yml Modified .github/workflows/maintainer_merge_wf_run.yml Modified .github/workflows/merge_conflicts.yml Modified .github/workflows/nightly_bump_and_merge.yml Modified .github/workflows/nightly_detect_failure.yml Modified .github/workflows/nightly_merge_master.yml Modified .github/workflows/nolints.yml Modified .github/workflows/remove_deprecated_decls.yml Modified .github/workflows/splice_bot_wf_run.yaml Modified .github/workflows/update_dependencies.yml Modified .github/workflows/update_dependencies_zulip.yml Modified .gitignore 2026-03-10 13:37:32 fbc9185 chore: fix induction and recursor names (#35884) * `Finset.induction_on_{min,max}`, `Finset.induction_on_{min,max}_value` * `FreeAbelianGroup.induction_on`, `FreeAbelianGroup.induction_on'` Applications of these induction principles are also fixed. ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Rearrangement.lean Modified Mathlib/Combinatorics/Additive/SubsetSum.lean Modified Mathlib/Data/Finset/Max.lean +/- theorem Finset.induction_on_max +/- theorem Finset.induction_on_max_value +/- theorem Finset.induction_on_min +/- theorem Finset.induction_on_min_value Modified Mathlib/GroupTheory/FreeAbelianGroup.lean Modified Mathlib/LinearAlgebra/Multilinear/Basic.lean 2026-03-10 12:49:26 b4e4e50 chore: remove unnecessary private and backward.privateInPublic (#36430) This PR removes `private` modifiers and corresponding `set_option backward.privateInPublic` from definitions in three files where they are not really sensible. These private definitions were being exposed to public proofs via `backward.privateInPublic`, which means the private names (with `_private.` mangling) appear in downstream goal states. When the tactic analysis regression linter tries to re-run replacement tactics on those goals, it encounters "Unknown constant" errors because the private constants aren't accessible from other modules. Files changed: - `Mathlib.RingTheory.OreLocalization.Basic`: remove `private` from `add''`, `add''_char`, `add'`, `add`, `nsmul` - `Mathlib.Analysis.Complex.Norm`: change `private` to `protected` for `norm_nonneg`, `norm_add_le'`, `norm_eq_zero_iff`, `norm_map_zero'`, `norm_neg'` (these names clash with global names from `NormedAddCommGroup`) - `Mathlib.Analysis.Normed.Module.Multilinear.Basic`: remove `private` from `uniformity_eq_seminorm` Verified locally: all three files and their downstream dependencies build successfully. 🤖 Prepared with Claude Code ESTIMATED CHANGES Modified Mathlib/Analysis/Complex/Norm.lean Modified Mathlib/Analysis/Normed/Module/Multilinear/Basic.lean + theorem ContinuousMultilinearMap.uniformity_eq_seminorm Modified Mathlib/RingTheory/OreLocalization/Basic.lean + def OreLocalization.add'' + theorem OreLocalization.add''_char + def OreLocalization.add' + def OreLocalization.add + def OreLocalization.nsmul 2026-03-10 12:16:36 237a3de feat(Topology/Compactness/CompactSystem): introduce compact Systems (#36013) A compact system is a set systems with the property that, whenever a countable intersections of sets in the set system is empty, there is a finite subset of sets with empty intersection. These are needed e.g. in measure theory if one wants to show sigma-additivity of a set function on a ring. Main result: The set of sets which are either compact and closed, or univ, is a compact system. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Data/Set/Accumulate.lean + theorem Set.accumulate_eq_biInter_lt + theorem Set.directed_accumulate + theorem Set.exists_accumulate_eq_univ_iff_of_directed + theorem Set.exists_subset_accumulate_of_directed Modified Mathlib/Data/Set/Dissipate.lean + theorem Set.directed_dissipate + theorem Set.dissipate_eq_biInter_lt + theorem Set.exists_dissipate_eq_empty_iff_of_directed + theorem Set.exists_subset_dissipate_of_directed Modified Mathlib/MeasureTheory/PiSystem.lean + theorem IsPiSystem.dissipate_mem Added Mathlib/Topology/Compactness/CompactSystem.lean + theorem IsCompactSystem.iff_nonempty_iInter + theorem IsCompactSystem.insert_empty + theorem IsCompactSystem.insert_univ + theorem IsCompactSystem.mono + theorem IsCompactSystem.nonempty_iInter + theorem IsCompactSystem.of_IsEmpty + theorem IsCompactSystem.of_nonempty_iInter + def IsCompactSystem + theorem isCompactSystem_iff_nonempty_iInter_of_directed + theorem isCompactSystem_iff_nonempty_iInter_of_lt + theorem isCompactSystem_iff_of_directed + theorem isCompactSystem_insert_empty_iff + theorem isCompactSystem_insert_univ_iff + theorem isCompactSystem_insert_univ_isCompact_isClosed + theorem isCompactSystem_isCompact + theorem isCompactSystem_isCompact_isClosed 2026-03-10 12:02:17 8187a40 feat: add dist_center_midpoint_lt_radius for spheres (#35957) Adds two results about chords of spheres in Euclidean affine spaces: - `Sphere.inner_vsub_center_midpoint_vsub`: the vector from the center of a sphere to the midpoint of a chord is orthogonal to the chord. - `Sphere.dist_center_midpoint_lt_radius`: the distance from the center to the midpoint of a chord with distinct endpoints is strictly less than the radius. This follows by applying the Pythagorean theorem to the right triangle formed by the center, the midpoint, and an endpoint, using the orthogonality result above. ESTIMATED CHANGES Modified Mathlib/Geometry/Euclidean/Sphere/Basic.lean + theorem EuclideanGeometry.Sphere.dist_center_lt_radius_of_sbtw + theorem EuclideanGeometry.Sphere.dist_center_midpoint_lt_radius + theorem EuclideanGeometry.Sphere.inner_vsub_center_midpoint_vsub 2026-03-10 11:05:44 aeed612 feat(Manifold/VectorBundle): tensoriality construction (#36432) Given vector bundles `V` and `W` over a manifold, one can construct a section of the hom-bundle `Π x, V x →L[𝕜] W x` from a *tensorial* operation sending sections of `V` to sections of `W`. This PR provides this construction. Future PRs will use this to prove locality results about covariant derivatives. From the path towards Riemannian geometry, including geodesics and the Levi-Civita connection. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Geometry/Manifold/VectorBundle/Tensoriality.lean + theorem TensorialAt.mkHom_apply + theorem TensorialAt.mkHom_apply_eq_extend + theorem TensorialAt.mkHom₂_apply + theorem TensorialAt.mkHom₂_apply_eq_extend + theorem TensorialAt.pointwise + theorem TensorialAt.pointwise₂ + theorem TensorialAt.sum + theorem TensorialAt.zero + structure TensorialAt Modified Mathlib/Topology/FiberBundle/Basic.lean + theorem FiberBundle.t0Space + theorem FiberBundle.t1Space + theorem FiberBundle.t2Space + theorem FiberBundle.t3Space Modified Mathlib/Topology/VectorBundle/Basic.lean Added Mathlib/Topology/VectorBundle/FiniteDimensional.lean 2026-03-10 11:05:41 28e28bb feat(Data/Finsupp): characterise when `Finsupp` is `Nontrivial` (#35764) From ClassFieldTheory ESTIMATED CHANGES Modified Mathlib/Data/Finsupp/Defs.lean +/- theorem Finsupp.nontrivial_of_nontrivial Modified Mathlib/Data/Finsupp/Single.lean + theorem Finsupp.nontrivial_iff 2026-03-10 10:33:48 16ad79a fix(Data/Rel): change what `image_eq_cod_of_dom_subset` states (#35696) It used to be identical to its neighbor, `preimage_eq_dom_of_cod_subset`. Both lemmas seem to have been introduced in #25587. ESTIMATED CHANGES Modified Mathlib/Data/Rel.lean +/- theorem SetRel.image_eq_cod_of_dom_subset 2026-03-10 09:47:28 ec392ac feat(CategoryTheory/Limits/Preserves/Shapes/Kernels): Mapping `zeroKernelFork` (#36410) A compatibility iso relating `KernelFork.map` and `kernel.zeroKernelFork`. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Limits/Preserves/Shapes/Kernels.lean + def CategoryTheory.Limits.mapZeroCokernelCofork + def CategoryTheory.Limits.mapZeroKernelFork 2026-03-10 06:45:47 5c8398d feat(RingTheory): add the class `HasFiniteQuotients` (#35530) As discussed on [Zulip](https://leanprover.zulipchat.com/#narrow/channel/116395-maths/topic/Rings.20with.20finite.20quotients/with/574554760), this PR add the class of commutative rings `R` such that, for all nonzero ideals `I` of `R`, the quotient `R ⧸ I` is finite and prove several results including: - If `R` has finite quotients then it has dimension ≤ 1 - If `R` has finite quotients then it is a Noetherian ring - Assume that `R` a finite quotients and that `S` is a domain and a finite `R`-module. Then `S` has finite quotients - A domain that is also a finite `ℤ`-module has finite quotients. Also add two instances: - Assume that `S` is a finite `R`-module and that `S ⧸ J` is a `(R ⧸ I)`-module with `I`, resp. `J`, an ideal of `R`, resp. `S`, then `S ⧸ J` is a finite `(R ⧸ I)`-module. - For nonzero `n` , `ℤ ⧸ Ideal.span {n}` is finite. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Data/ZMod/QuotientRing.lean Added Mathlib/RingTheory/Ideal/Quotient/HasFiniteQuotients.lean + theorem Ring.HasFiniteQuotients.maximalOfPrime + theorem Ring.HasFiniteQuotients.of_module_finite 2026-03-10 05:56:11 777eb7c chore: bump toolchain to v4.29.0-rc6 (#36422) ESTIMATED CHANGES Modified Archive/Imo/Imo2019Q2.lean Modified Archive/MinimalSheffer.lean Modified Mathlib/Algebra/Algebra/ZMod.lean Modified Mathlib/Algebra/BrauerGroup/Defs.lean Modified Mathlib/Algebra/Category/FGModuleCat/Colimits.lean Modified Mathlib/Algebra/Category/FGModuleCat/Limits.lean Modified Mathlib/Algebra/Category/Grp/Abelian.lean Modified Mathlib/Algebra/Category/ModuleCat/Abelian.lean Modified Mathlib/Algebra/Category/ModuleCat/Descent.lean Modified Mathlib/Algebra/Category/ModuleCat/EpiMono.lean Modified Mathlib/Algebra/Category/ModuleCat/Presheaf/Sheafify.lean Modified Mathlib/Algebra/CharP/Invertible.lean Modified Mathlib/Algebra/CharP/MixedCharZero.lean Modified Mathlib/Algebra/DirectSum/Decomposition.lean Modified Mathlib/Algebra/Expr.lean Modified Mathlib/Algebra/Field/IsField.lean Modified Mathlib/Algebra/FreeMonoid/Basic.lean Modified Mathlib/Algebra/GCDMonoid/Basic.lean Modified Mathlib/Algebra/Group/Action/Basic.lean Modified Mathlib/Algebra/Group/Action/Defs.lean Modified Mathlib/Algebra/Group/Action/Pointwise/Finset.lean Modified Mathlib/Algebra/Group/Action/Pointwise/Set/Basic.lean Modified Mathlib/Algebra/Group/Hom/Basic.lean Modified Mathlib/Algebra/Group/Invertible/Basic.lean Modified Mathlib/Algebra/Group/Invertible/Defs.lean Modified Mathlib/Algebra/Group/Pi/Basic.lean Modified Mathlib/Algebra/Group/Pointwise/Finset/Basic.lean Modified Mathlib/Algebra/Group/Pointwise/Finset/Scalar.lean Modified Mathlib/Algebra/Group/Pointwise/Set/Basic.lean Modified Mathlib/Algebra/Group/Pointwise/Set/Scalar.lean Modified Mathlib/Algebra/Group/Submonoid/Pointwise.lean Modified Mathlib/Algebra/Group/Units/Defs.lean Modified Mathlib/Algebra/GroupWithZero/Action/Defs.lean Modified Mathlib/Algebra/GroupWithZero/Basic.lean Modified Mathlib/Algebra/GroupWithZero/InjSurj.lean Modified Mathlib/Algebra/GroupWithZero/Invertible.lean Modified Mathlib/Algebra/GroupWithZero/Units/Basic.lean Modified Mathlib/Algebra/Homology/ComplexShapeSigns.lean Modified Mathlib/Algebra/Lie/Basic.lean Modified Mathlib/Algebra/Lie/Classical.lean Modified Mathlib/Algebra/Lie/Extension.lean Modified Mathlib/Algebra/Module/GradedModule.lean Modified Mathlib/Algebra/Module/NatInt.lean Modified Mathlib/Algebra/Module/Submodule/Defs.lean Modified Mathlib/Algebra/Module/Torsion/Basic.lean Modified Mathlib/Algebra/MonoidAlgebra/Module.lean Modified Mathlib/Algebra/Order/Archimedean/Basic.lean Modified Mathlib/Algebra/Order/Floor/Defs.lean Modified Mathlib/Algebra/Order/Group/Lattice.lean Modified Mathlib/Algebra/Order/Monoid/Unbundled/Basic.lean Modified Mathlib/Algebra/Ring/Invertible.lean Modified Mathlib/Algebra/SkewMonoidAlgebra/Basic.lean Modified Mathlib/Algebra/Star/RingQuot.lean Modified Mathlib/AlgebraicGeometry/Cover/Directed.lean Modified Mathlib/AlgebraicTopology/ModelCategory/Basic.lean Modified Mathlib/Analysis/CStarAlgebra/CStarMatrix.lean Modified Mathlib/Analysis/CStarAlgebra/Matrix.lean Modified Mathlib/Analysis/CStarAlgebra/Module/Defs.lean Modified Mathlib/Analysis/Complex/UpperHalfPlane/Metric.lean Modified Mathlib/Analysis/Distribution/TestFunction.lean Modified Mathlib/Analysis/InnerProductSpace/Basic.lean Modified Mathlib/Analysis/InnerProductSpace/Defs.lean Modified Mathlib/Analysis/InnerProductSpace/OfNorm.lean Modified Mathlib/Analysis/LocallyConvex/WithSeminorms.lean Modified Mathlib/Analysis/Matrix/Order.lean Modified Mathlib/Analysis/Matrix/PosDef.lean Modified Mathlib/Analysis/Normed/Algebra/Exponential.lean Modified Mathlib/Analysis/Normed/Field/Basic.lean Modified Mathlib/Analysis/Normed/Group/AddTorsor.lean Modified Mathlib/Analysis/Normed/Module/Basic.lean Modified Mathlib/Analysis/Normed/Unbundled/SpectralNorm.lean Modified Mathlib/Analysis/RCLike/Basic.lean Modified Mathlib/CategoryTheory/Abelian/Basic.lean Modified Mathlib/CategoryTheory/Abelian/NonPreadditive.lean Modified Mathlib/CategoryTheory/Abelian/Transfer.lean Modified Mathlib/CategoryTheory/Bicategory/Monad/Basic.lean Modified Mathlib/CategoryTheory/CatCommSq.lean Modified Mathlib/CategoryTheory/Center/Linear.lean Modified Mathlib/CategoryTheory/ConcreteCategory/Forget.lean Modified Mathlib/CategoryTheory/Enriched/Basic.lean Modified Mathlib/CategoryTheory/Enriched/FunctorCategory.lean Modified Mathlib/CategoryTheory/Enriched/Ordinary/Basic.lean Modified Mathlib/CategoryTheory/EpiMono.lean Modified Mathlib/CategoryTheory/FiberedCategory/HasFibers.lean Modified Mathlib/CategoryTheory/Functor/Functorial.lean Modified Mathlib/CategoryTheory/Groupoid.lean Modified Mathlib/CategoryTheory/Groupoid/Subgroupoid.lean Modified Mathlib/CategoryTheory/IsConnected.lean Modified Mathlib/CategoryTheory/Limits/Constructions/LimitsOfProductsAndEqualizers.lean Modified Mathlib/CategoryTheory/Limits/Creates.lean Modified Mathlib/CategoryTheory/Limits/Final.lean Modified Mathlib/CategoryTheory/Limits/FullSubcategory.lean Modified Mathlib/CategoryTheory/Limits/MorphismProperty.lean Modified Mathlib/CategoryTheory/Limits/Preorder.lean Modified Mathlib/CategoryTheory/Limits/Preserves/Creates/Finite.lean Modified Mathlib/CategoryTheory/Limits/Shapes/ConcreteCategory.lean Modified Mathlib/CategoryTheory/Limits/Shapes/NormalMono/Basic.lean Modified Mathlib/CategoryTheory/Limits/Shapes/ZeroMorphisms.lean Modified Mathlib/CategoryTheory/Localization/Bifunctor.lean Modified Mathlib/CategoryTheory/Localization/CalculusOfFractions/Preadditive.lean Modified Mathlib/CategoryTheory/Localization/HasLocalization.lean Modified Mathlib/CategoryTheory/Localization/Linear.lean Modified Mathlib/CategoryTheory/Localization/LocallySmall.lean Modified Mathlib/CategoryTheory/Localization/Monoidal/Functor.lean Modified Mathlib/CategoryTheory/Localization/Predicate.lean Modified Mathlib/CategoryTheory/Localization/Triangulated.lean Modified Mathlib/CategoryTheory/Localization/Trifunctor.lean Modified Mathlib/CategoryTheory/LocallyCartesianClosed/ChosenPullbacksAlong.lean Modified Mathlib/CategoryTheory/LocallyCartesianClosed/ExponentiableMorphism.lean Modified Mathlib/CategoryTheory/Monad/Comonadicity.lean Modified Mathlib/CategoryTheory/Monad/Limits.lean Modified Mathlib/CategoryTheory/Monad/Monadicity.lean Modified Mathlib/CategoryTheory/Monoidal/Action/End.lean Modified Mathlib/CategoryTheory/Monoidal/Action/Opposites.lean Modified Mathlib/CategoryTheory/Monoidal/Bimod.lean Modified Mathlib/CategoryTheory/Monoidal/Braided/Basic.lean Modified Mathlib/CategoryTheory/Monoidal/Braided/Multifunctor.lean Modified Mathlib/CategoryTheory/Monoidal/Braided/Reflection.lean Modified Mathlib/CategoryTheory/Monoidal/Cartesian/Basic.lean Modified Mathlib/CategoryTheory/Monoidal/Cartesian/CommGrp_.lean Modified Mathlib/CategoryTheory/Monoidal/Cartesian/Grp_.lean Modified Mathlib/CategoryTheory/Monoidal/Cartesian/Mon_.lean Modified Mathlib/CategoryTheory/Monoidal/Closed/Basic.lean Modified Mathlib/CategoryTheory/Monoidal/Closed/Cartesian.lean Modified Mathlib/CategoryTheory/Monoidal/Closed/FunctorCategory/Basic.lean Modified Mathlib/CategoryTheory/Monoidal/Closed/FunctorCategory/Complete.lean Modified Mathlib/CategoryTheory/Monoidal/Closed/Ideal.lean Modified Mathlib/CategoryTheory/Monoidal/Closed/Types.lean Modified Mathlib/CategoryTheory/Monoidal/Closed/Zero.lean Modified Mathlib/CategoryTheory/Monoidal/DayConvolution.lean Modified Mathlib/CategoryTheory/Monoidal/Functor.lean Modified Mathlib/CategoryTheory/Monoidal/Grp_.lean Modified Mathlib/CategoryTheory/Monoidal/Mod_.lean Modified Mathlib/CategoryTheory/Monoidal/Mon_.lean Modified Mathlib/CategoryTheory/Monoidal/Multifunctor.lean Modified Mathlib/CategoryTheory/Monoidal/OfHasFiniteProducts.lean Modified Mathlib/CategoryTheory/Monoidal/Rigid/Basic.lean Modified Mathlib/CategoryTheory/Monoidal/Rigid/Braided.lean Modified Mathlib/CategoryTheory/Monoidal/Rigid/OfEquivalence.lean Modified Mathlib/CategoryTheory/Monoidal/Transport.lean Modified Mathlib/CategoryTheory/Preadditive/Schur.lean Modified Mathlib/CategoryTheory/Preadditive/Transfer.lean Modified Mathlib/CategoryTheory/Quotient/Linear.lean Modified Mathlib/CategoryTheory/Quotient/Preadditive.lean Modified Mathlib/CategoryTheory/Shift/Adjunction.lean Modified Mathlib/CategoryTheory/Shift/Basic.lean Modified Mathlib/CategoryTheory/Shift/CommShift.lean Modified Mathlib/CategoryTheory/Shift/Induced.lean Modified Mathlib/CategoryTheory/Shift/InducedShiftSequence.lean Modified Mathlib/CategoryTheory/Shift/Localization.lean Modified Mathlib/CategoryTheory/Shift/Opposite.lean Modified Mathlib/CategoryTheory/Shift/ShiftSequence.lean Modified Mathlib/CategoryTheory/Sites/Limits.lean Modified Mathlib/CategoryTheory/Sites/Monoidal.lean Modified Mathlib/CategoryTheory/Sites/Point/Basic.lean Modified Mathlib/CategoryTheory/Thin.lean Modified Mathlib/CategoryTheory/Triangulated/TStructure/AbelianSubcategory.lean Modified Mathlib/CategoryTheory/Triangulated/TStructure/Heart.lean Modified Mathlib/Combinatorics/Configuration.lean Modified Mathlib/Combinatorics/Hindman.lean Modified Mathlib/Combinatorics/Quiver/Arborescence.lean Modified Mathlib/Combinatorics/Quiver/ConnectedComponent.lean Modified Mathlib/Combinatorics/SimpleGraph/CompleteMultipartite.lean Modified Mathlib/Combinatorics/SimpleGraph/Connectivity/Connected.lean Modified Mathlib/Combinatorics/SimpleGraph/Extremal/Turan.lean Modified Mathlib/Combinatorics/SimpleGraph/Hamiltonian.lean Modified Mathlib/Combinatorics/SimpleGraph/Subgraph.lean Modified Mathlib/Combinatorics/SimpleGraph/Trails.lean Modified Mathlib/Computability/Primrec/Basic.lean Modified Mathlib/Computability/Primrec/List.lean Modified Mathlib/Computability/TuringMachine/Tape.lean Modified Mathlib/Control/Functor/Multivariate.lean Modified Mathlib/Control/Monad/Writer.lean Modified Mathlib/Control/Traversable/Equiv.lean Modified Mathlib/Control/ULiftable.lean Modified Mathlib/Data/Analysis/Topology.lean Modified Mathlib/Data/FinEnum.lean Modified Mathlib/Data/FinEnum/Option.lean Modified Mathlib/Data/Fintype/Basic.lean Modified Mathlib/Data/Fintype/Card.lean Modified Mathlib/Data/Fintype/Defs.lean Modified Mathlib/Data/Fintype/EquivFin.lean Modified Mathlib/Data/Fintype/OfMap.lean Modified Mathlib/Data/Fintype/Option.lean Modified Mathlib/Data/Fintype/Perm.lean Modified Mathlib/Data/Fintype/Sets.lean Modified Mathlib/Data/Fintype/Sum.lean Modified Mathlib/Data/FunLike/Fintype.lean Modified Mathlib/Data/List/GetD.lean Modified Mathlib/Data/List/Rotate.lean Modified Mathlib/Data/Matrix/Invertible.lean Modified Mathlib/Data/QPF/Multivariate/Basic.lean Modified Mathlib/Data/QPF/Multivariate/Constructions/Quot.lean Modified Mathlib/Data/QPF/Univariate/Basic.lean Modified Mathlib/Data/Quot.lean Modified Mathlib/Data/Set/Countable.lean Modified Mathlib/Data/Set/Finite/Basic.lean Modified Mathlib/Data/Set/Finite/Lattice.lean Modified Mathlib/Data/Set/Finite/Monad.lean Modified Mathlib/Data/Setoid/Basic.lean Modified Mathlib/Data/Setoid/Partition.lean Modified Mathlib/Data/W/Basic.lean Modified Mathlib/Deprecated/Estimator.lean Modified Mathlib/Dynamics/Flow.lean Modified Mathlib/FieldTheory/Differential/Basic.lean Modified Mathlib/FieldTheory/Finite/Basic.lean Modified Mathlib/FieldTheory/Finiteness.lean Modified Mathlib/FieldTheory/Galois/IsGaloisGroup.lean Modified Mathlib/FieldTheory/IntermediateField/Adjoin/Basic.lean Modified Mathlib/FieldTheory/KrullTopology.lean Modified Mathlib/FieldTheory/Minpoly/Field.lean Modified Mathlib/FieldTheory/Minpoly/IsConjRoot.lean Modified Mathlib/FieldTheory/PolynomialGaloisGroup.lean Modified Mathlib/FieldTheory/RatFunc/Basic.lean Modified Mathlib/Geometry/Convex/Cone/Basic.lean Modified Mathlib/Geometry/Diffeology/Basic.lean Modified Mathlib/Geometry/Manifold/ChartedSpace.lean Modified Mathlib/Geometry/Manifold/HasGroupoid.lean Modified Mathlib/Geometry/Manifold/PartitionOfUnity.lean Modified Mathlib/Geometry/Manifold/VectorBundle/LocalFrame.lean Modified Mathlib/GroupTheory/Coset/Defs.lean Modified Mathlib/GroupTheory/Divisible.lean Modified Mathlib/GroupTheory/DoubleCoset.lean Modified Mathlib/GroupTheory/FixedPointFree.lean Modified Mathlib/GroupTheory/Index.lean Modified Mathlib/GroupTheory/Nilpotent.lean Modified Mathlib/GroupTheory/OrderOfElement.lean Modified Mathlib/GroupTheory/OreLocalization/Basic.lean Modified Mathlib/GroupTheory/PGroup.lean Modified Mathlib/GroupTheory/Perm/Centralizer.lean Modified Mathlib/GroupTheory/Perm/Cycle/Basic.lean Modified Mathlib/GroupTheory/Perm/Sign.lean Modified Mathlib/GroupTheory/QuotientGroup/Finite.lean Modified Mathlib/GroupTheory/SpecificGroups/Cyclic.lean Modified Mathlib/GroupTheory/Subgroup/Center.lean Modified Mathlib/GroupTheory/Sylow.lean Modified Mathlib/GroupTheory/Torsion.lean Modified Mathlib/LinearAlgebra/Basis/Defs.lean Modified Mathlib/LinearAlgebra/CliffordAlgebra/Inversion.lean Modified Mathlib/LinearAlgebra/Dimension/Finite.lean Modified Mathlib/LinearAlgebra/Dimension/StrongRankCondition.lean Modified Mathlib/LinearAlgebra/FiniteDimensional/Basic.lean Modified Mathlib/LinearAlgebra/FiniteDimensional/Defs.lean Modified Mathlib/LinearAlgebra/Matrix/Basis.lean Modified Mathlib/LinearAlgebra/Matrix/Block.lean Modified Mathlib/LinearAlgebra/Matrix/GeneralLinearGroup/Projective.lean Modified Mathlib/LinearAlgebra/Matrix/Irreducible/Defs.lean Modified Mathlib/LinearAlgebra/Matrix/NonsingularInverse.lean Modified Mathlib/LinearAlgebra/Matrix/SchurComplement.lean Modified Mathlib/LinearAlgebra/Matrix/SemiringInverse.lean Modified Mathlib/LinearAlgebra/Projectivization/Basic.lean Modified Mathlib/LinearAlgebra/RootSystem/Defs.lean +/- def RootPairing.indexNeg Modified Mathlib/LinearAlgebra/RootSystem/Finite/G2.lean +/- def RootPairing.EmbeddedG2.ofPairingInThree Modified Mathlib/Logic/Basic.lean Modified Mathlib/Logic/Denumerable.lean Modified Mathlib/Logic/Encodable/Basic.lean Modified Mathlib/Logic/Equiv/List.lean Modified Mathlib/Logic/Relation.lean Modified Mathlib/Logic/Unique.lean Modified Mathlib/MeasureTheory/Constructions/BorelSpace/Basic.lean Modified Mathlib/MeasureTheory/Constructions/Cylinders.lean Modified Mathlib/MeasureTheory/Constructions/Polish/Basic.lean Modified Mathlib/MeasureTheory/Function/AEEqFun.lean Modified Mathlib/MeasureTheory/MeasurableSpace/Basic.lean Modified Mathlib/MeasureTheory/MeasurableSpace/Constructions.lean Modified Mathlib/MeasureTheory/MeasurableSpace/Defs.lean Modified Mathlib/MeasureTheory/MeasurableSpace/EventuallyMeasurable.lean Modified Mathlib/MeasureTheory/MeasurableSpace/Invariants.lean Modified Mathlib/MeasureTheory/OuterMeasure/Caratheodory.lean Modified Mathlib/MeasureTheory/PiSystem.lean Modified Mathlib/ModelTheory/Basic.lean Modified Mathlib/ModelTheory/Equivalence.lean Modified Mathlib/ModelTheory/Graph.lean Modified Mathlib/ModelTheory/LanguageMap.lean Modified Mathlib/ModelTheory/Order.lean Modified Mathlib/NumberTheory/ClassNumber/Finite.lean Modified Mathlib/NumberTheory/FunctionField.lean Modified Mathlib/NumberTheory/ModularForms/Delta.lean Modified Mathlib/NumberTheory/ModularForms/SlashActions.lean Modified Mathlib/Order/Antisymmetrization.lean Modified Mathlib/Order/Atoms.lean Modified Mathlib/Order/BooleanAlgebra/Defs.lean Modified Mathlib/Order/BooleanGenerators.lean Modified Mathlib/Order/Comparable.lean Modified Mathlib/Order/Compare.lean Modified Mathlib/Order/CompleteBooleanAlgebra.lean Modified Mathlib/Order/ConditionallyCompleteLattice/Defs.lean Modified Mathlib/Order/Copy.lean Modified Mathlib/Order/Defs/PartialOrder.lean Modified Mathlib/Order/DirectedInverseSystem.lean Modified Mathlib/Order/Extension/Well.lean Modified Mathlib/Order/Filter/Germ/Basic.lean Modified Mathlib/Order/Filter/Pointwise.lean Modified Mathlib/Order/GaloisConnection/Defs.lean Modified Mathlib/Order/Interval/Finset/Basic.lean Modified Mathlib/Order/Interval/Finset/Defs.lean Modified Mathlib/Order/Lattice.lean Modified Mathlib/Order/OmegaCompletePartialOrder.lean Modified Mathlib/Order/OrderDual.lean Modified Mathlib/Order/RelClasses.lean Modified Mathlib/Order/SuccPred/Basic.lean Modified Mathlib/Order/SuccPred/CompleteLinearOrder.lean Modified Mathlib/Order/SuccPred/LinearLocallyFinite.lean Modified Mathlib/Order/SupClosed.lean Modified Mathlib/Order/Types/Defs.lean Modified Mathlib/Order/WellFounded.lean Modified Mathlib/Probability/Process/Predictable.lean Modified Mathlib/Probability/Process/Stopping.lean Modified Mathlib/RingTheory/AlgebraTower.lean Modified Mathlib/RingTheory/Bialgebra/Basic.lean Modified Mathlib/RingTheory/DedekindDomain/AdicValuation.lean Modified Mathlib/RingTheory/DiscreteValuationRing/Basic.lean Modified Mathlib/RingTheory/EuclideanDomain.lean Modified Mathlib/RingTheory/GradedAlgebra/Basic.lean Modified Mathlib/RingTheory/IdealFilter/Topology.lean Modified Mathlib/RingTheory/IntegralDomain.lean Modified Mathlib/RingTheory/Invariant/Basic.lean Modified Mathlib/RingTheory/LittleWedderburn.lean Modified Mathlib/RingTheory/Localization/Basic.lean Modified Mathlib/RingTheory/Localization/Defs.lean Modified Mathlib/RingTheory/MvPolynomial/WeightedHomogeneous.lean Modified Mathlib/RingTheory/NonUnitalSubring/Basic.lean Modified Mathlib/RingTheory/OreLocalization/OreSet.lean Modified Mathlib/RingTheory/Polynomial/UniqueFactorization.lean Modified Mathlib/RingTheory/PowerBasis.lean Modified Mathlib/RingTheory/PrincipalIdealDomain.lean Modified Mathlib/RingTheory/UniqueFactorizationDomain/Finite.lean Modified Mathlib/RingTheory/UniqueFactorizationDomain/GCDMonoid.lean Modified Mathlib/RingTheory/UniqueFactorizationDomain/NormalizedFactors.lean Modified Mathlib/RingTheory/Valuation/Basic.lean Modified Mathlib/RingTheory/Valuation/Discrete/RankOne.lean Modified Mathlib/RingTheory/Valuation/RankOne.lean Modified Mathlib/RingTheory/Valuation/ValuativeRel/Basic.lean Modified Mathlib/RingTheory/Valuation/ValuativeRel/Trivial.lean Modified Mathlib/SetTheory/Ordinal/Basic.lean Modified Mathlib/SetTheory/ZFC/Basic.lean Modified Mathlib/Tactic/Inhabit.lean Modified Mathlib/Tactic/Linarith/Preprocessing.lean Modified Mathlib/Tactic/NormNum/Basic.lean Modified Mathlib/Tactic/NormNum/Result.lean Modified Mathlib/Topology/Algebra/FilterBasis.lean Modified Mathlib/Topology/Algebra/IsUniformGroup/Defs.lean Modified Mathlib/Topology/Algebra/Nonarchimedean/AdicTopology.lean Modified Mathlib/Topology/Algebra/Nonarchimedean/Bases.lean Modified Mathlib/Topology/Algebra/UniformFilterBasis.lean Modified Mathlib/Topology/Algebra/Valued/ValuationTopology.lean Modified Mathlib/Topology/Basic.lean Modified Mathlib/Topology/Bornology/Basic.lean Modified Mathlib/Topology/CWComplex/Classical/Basic.lean Modified Mathlib/Topology/CWComplex/Classical/Finite.lean Modified Mathlib/Topology/Category/CompHausLike/Cartesian.lean Modified Mathlib/Topology/Compactness/Compact.lean Modified Mathlib/Topology/Compactness/CompactlyGeneratedSpace.lean Modified Mathlib/Topology/Compactness/DeltaGeneratedSpace.lean Modified Mathlib/Topology/Compactness/LocallyFinite.lean Modified Mathlib/Topology/Compactness/SigmaCompact.lean Modified Mathlib/Topology/Connected/Clopen.lean Modified Mathlib/Topology/Connected/PathConnected.lean Modified Mathlib/Topology/Convenient/GeneratedBy.lean Modified Mathlib/Topology/Defs/Filter.lean Modified Mathlib/Topology/Defs/Induced.lean Modified Mathlib/Topology/EMetricSpace/Defs.lean Modified Mathlib/Topology/FiberBundle/Basic.lean Modified Mathlib/Topology/FiberBundle/Constructions.lean Modified Mathlib/Topology/Homotopy/HSpaces.lean Modified Mathlib/Topology/Instances/ENNReal/Lemmas.lean Modified Mathlib/Topology/MetricSpace/Defs.lean Modified Mathlib/Topology/MetricSpace/Gluing.lean Modified Mathlib/Topology/MetricSpace/PiNat.lean Modified Mathlib/Topology/MetricSpace/Pseudo/Constructions.lean Modified Mathlib/Topology/MetricSpace/Pseudo/Defs.lean Modified Mathlib/Topology/Metrizable/CompletelyMetrizable.lean Modified Mathlib/Topology/Metrizable/Uniformity.lean Modified Mathlib/Topology/Order.lean Modified Mathlib/Topology/Order/Basic.lean Modified Mathlib/Topology/Order/Bornology.lean Modified Mathlib/Topology/Order/LawsonTopology.lean Modified Mathlib/Topology/Order/LowerUpperTopology.lean Modified Mathlib/Topology/Order/ScottTopology.lean Modified Mathlib/Topology/Order/UpperLowerSetTopology.lean Modified Mathlib/Topology/Separation/Basic.lean Modified Mathlib/Topology/Separation/Hausdorff.lean Modified Mathlib/Topology/Sets/Closeds.lean Modified Mathlib/Topology/Sets/Opens.lean Modified Mathlib/Topology/Spectral/ConstructibleTopology.lean Modified Mathlib/Topology/UniformSpace/AbsoluteValue.lean Modified Mathlib/Topology/UniformSpace/Defs.lean Modified Mathlib/Topology/UniformSpace/OfCompactT2.lean Modified Mathlib/Topology/UniformSpace/OfFun.lean Modified Mathlib/Topology/UniformSpace/UniformEmbedding.lean Modified Mathlib/Topology/VectorBundle/Basic.lean Modified MathlibTest/DeriveFintype.lean Modified MathlibTest/MinImports.lean Modified MathlibTest/Simps.lean Modified MathlibTest/Subsingleton.lean Modified MathlibTest/ToDual.lean Modified MathlibTest/apply_with.lean Modified MathlibTest/toAdditive.lean Modified lake-manifest.json Modified lakefile.lean Modified lean-toolchain 2026-03-10 05:41:01 9d092b1 feat(Geometry/Euclidean): the Euclidean volume measure (#34697) This PR starts a series to set up volume measure for Euclidean geometry, so it can be used in formalizing problems involving area and volume. This PR only introduce the basic definition and properties. Some future PR will also include - Integral along an affine subspace to calculate the volume of an object - Define volume of a simplex using the base * height / n formula (not assuming measurability) - Show that the defined volume matches the measure of the interior (see the draft #34826 for the target lemma) - More specialized formula for the area of triangles. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Geometry/Euclidean/Volume/Measure.lean + theorem AffineSubspace.euclideanHausdorffMeasure_coe_image + theorem EuclideanGeometry.euclideanHausdorffMeasure_eq + theorem EuclideanGeometry.measurePreserving_vaddConst + theorem EuclideanSpace.euclideanHausdorffMeasure_eq_volume + theorem InnerProductSpace.euclideanHausdorffMeasure_eq_volume + theorem Isometry.euclideanHausdorffMeasure_image + theorem Isometry.euclideanHausdorffMeasure_preimage + theorem Isometry.map_euclideanHausdorffMeasure + theorem IsometryEquiv.measurePreserving_euclideanHausdorffMeasure + def MeasureTheory.Measure.euclideanHausdorffMeasure + theorem MeasureTheory.Measure.euclideanHausdorffMeasure_def + theorem MeasureTheory.Measure.euclideanHausdorffMeasure_smul₀ Modified Mathlib/MeasureTheory/Measure/Hausdorff.lean 2026-03-10 04:41:24 155346a chore: remove obsolete set_option backward.* (#36424) Removes another 45 no-longer-needed `set_option backward.*`, in preparation for moving Mathlib to `v4.29.0-rc6`. ESTIMATED CHANGES Modified Mathlib/AlgebraicGeometry/ProjectiveSpectrum/Functor.lean Modified Mathlib/AlgebraicTopology/DoldKan/NReflectsIso.lean Modified Mathlib/AlgebraicTopology/Quasicategory/Basic.lean Modified Mathlib/AlgebraicTopology/SimplicialObject/Basic.lean Modified Mathlib/AlgebraicTopology/SimplicialSet/Degenerate.lean Modified Mathlib/AlgebraicTopology/SimplicialSet/Dimension.lean Modified Mathlib/AlgebraicTopology/SimplicialSet/Finite.lean Modified Mathlib/AlgebraicTopology/SimplicialSet/HoFunctorMonoidal.lean Modified Mathlib/AlgebraicTopology/SimplicialSet/Horn.lean Modified Mathlib/AlgebraicTopology/SimplicialSet/NerveAdjunction.lean Modified Mathlib/AlgebraicTopology/SimplicialSet/Subcomplex.lean Modified Mathlib/Analysis/AbsoluteValue/Equivalence.lean Modified Mathlib/Analysis/Normed/Ring/WithAbs.lean Modified Mathlib/Analysis/Real/Hyperreal.lean Modified Mathlib/CategoryTheory/Monoidal/Cartesian/FunctorCategory.lean Modified Mathlib/CategoryTheory/Sites/Adjunction.lean Modified Mathlib/Combinatorics/Derangements/Finite.lean Modified Mathlib/Combinatorics/SimpleGraph/Finite.lean Modified Mathlib/FieldTheory/RatFunc/AsPolynomial.lean Modified Mathlib/Geometry/Manifold/VectorField/LieBracket.lean Modified Mathlib/GroupTheory/Sylow.lean Modified Mathlib/LinearAlgebra/Dimension/Finite.lean Modified Mathlib/NumberTheory/NumberField/InfinitePlace/Completion.lean Modified Mathlib/Order/Interval/Set/OrdConnected.lean Modified Mathlib/RepresentationTheory/Action.lean Modified Mathlib/RingTheory/AlgebraicIndependent/Basic.lean Modified Mathlib/RingTheory/KrullDimension/Polynomial.lean Modified Mathlib/RingTheory/Valuation/RankOne.lean Modified Mathlib/Topology/IndicatorConstPointwise.lean Modified Mathlib/Topology/IsClosedRestrict.lean Modified Mathlib/Topology/Order/HullKernel.lean 2026-03-10 04:19:37 98ece81 feat: properties of the real and imaginary parts in a complex star module (#36408) This expands the API for `StarModule ℂ A` to include a number of standard results concerning `realPart` and `imaginaryPart`. In particular, we provide extensionality lemmas, a characterization of when the real and imaginary parts commute, characterization of unitary elements in terms of real and imaginary parts, as well as a few other fundamental but useful lemmas. ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/Complex/Module.lean + theorem Commute.realPart_imaginaryPart + theorem ComplexStarModule.ext + theorem ComplexStarModule.ext_iff + theorem imaginaryPart_eq_zero_iff + theorem isStarNormal_iff_commute_realPart_imaginaryPart + theorem ker_imaginaryPart + theorem mem_unitary_iff_isStarNormal_and_realPart_sq_add_imaginaryPart_sq_eq_one + theorem realPart_one +/- theorem star_mul_self_add_self_mul_star + theorem star_mul_self_eq_realPart_sq_add_imaginaryPart_sq + theorem star_mul_self_sub_self_mul_star 2026-03-10 02:02:23 a182019 feat(Algebra): add two lemmas about submodule smul (#35646) This is the first PR split from the larger PR #34936 to make the review process easier. It adds the following two lemmas regarding pointwise smul and restrictScalars: `Submodule.restrictScalars_image_smul_eq` and `Submodule.restrictScalars_map_smul_eq` ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/Operations.lean + theorem Submodule.restrictScalars_image_smul_eq Modified Mathlib/RingTheory/Ideal/Maps.lean + theorem Submodule.restrictScalars_map_smul_eq 2026-03-10 01:33:42 374f54c chore(Computability): move TM files to a single folder (#35608) This PR takes files relevant to Turing machines and moves them to a single folder for better organization. In the process, we do some renaming of these files * We remove the "TM" from the front of these files, as it's now redundant. * TuringMachine.lean --> TuringMachine/StackTuringMachine.lean * (really the key difference between the TM2 model presented in this file, and the TM1 model from the previous, is the introduction of stacks instead of tapes) I also remove `EvalsTo` and friends from TuringMachine.Computable, as these in #33291 were moved out of the TM namespace. https://github.com/leanprover-community/mathlib4/pull/35609 is a follow-up PR to add module deprecations. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Computability/StateTransition.lean Renamed Mathlib/Computability/TMComputable.lean to Mathlib/Computability/TuringMachine/Computable.lean - def Turing.EvalsTo.refl - def Turing.EvalsTo.trans - structure Turing.EvalsTo - def Turing.EvalsToInTime.refl - def Turing.EvalsToInTime.trans - structure Turing.EvalsToInTime Renamed Mathlib/Computability/TMConfig.lean to Mathlib/Computability/TuringMachine/Config.lean Renamed Mathlib/Computability/PostTuringMachine.lean to Mathlib/Computability/TuringMachine/PostTuringMachine.lean Renamed Mathlib/Computability/TuringMachine.lean to Mathlib/Computability/TuringMachine/StackTuringMachine.lean Renamed Mathlib/Computability/Tape.lean to Mathlib/Computability/TuringMachine/Tape.lean Renamed Mathlib/Computability/TMToPartrec.lean to Mathlib/Computability/TuringMachine/ToPartrec.lean 2026-03-10 01:23:11 60b70fa chore(Order/ConditionallyCompleteLattice/Basic): remove `backward.isDefEq.respectTransparency` (#35960) ESTIMATED CHANGES 2026-03-09 22:29:23 2264cdc ci: Move nightly-docgen, nightly-regression-report to mathlib-ci (#36417) These workflows have been moved to `mathlib-ci`: https://github.com/leanprover-community/mathlib-ci/actions/workflows/nightly-docgen.yml https://github.com/leanprover-community/mathlib-ci/actions/workflows/nightly-regression-report.yml ESTIMATED CHANGES Deleted .github/workflows/nightly-docgen.yml Deleted .github/workflows/nightly-regression-report.yml Modified docs/workflows.md 2026-03-09 21:42:26 7ae0ce3 chore: drop synthInstance.maxHeartbeats options (#36403) Of the 6 `set_option synthInstance.maxHeartbeats` lines in Mathlib, 4 are currently unnecessary. (And they have enough margin that they succeed safely with reductions; so they're not likely to break quickly again soon.) Another is quite well resolved with a hint `apply RingHom.isLocalHom_comp` and then it succeeds quickly. ESTIMATED CHANGES Modified Mathlib/Geometry/RingedSpace/OpenImmersion.lean Modified Mathlib/NumberTheory/RamificationInertia/Unramified.lean Modified Mathlib/RingTheory/Etale/QuasiFinite.lean Modified Mathlib/RingTheory/Kaehler/Basic.lean Modified Mathlib/RingTheory/Spectrum/Prime/Polynomial.lean 2026-03-09 18:53:46 c7113cf refactor(CategoryTheory/Limits/Shapes/Kernels): define `zeroKernelFork` using `KernelFork.ofι` (#36409) I think this is a more natural definition with better defeqs. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Limits/Shapes/Kernels.lean +/- def CategoryTheory.Limits.cokernel.zeroCokernelCofork + theorem CategoryTheory.Limits.cokernel.zeroCokernelCofork_π +/- def CategoryTheory.Limits.kernel.zeroKernelFork + theorem CategoryTheory.Limits.kernel.zeroKernelFork_ι 2026-03-09 18:39:08 3741129 feat(RepresentationTheory/Action): Create representation from Action, second step of refactor Rep (#36341) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/RepresentationTheory/Action.lean + theorem Action.tensor_ρ_apply + theorem Representation.LinearizeMonoidal.assoc_comp_δ + theorem Representation.LinearizeMonoidal.lTensor_comp_δ + theorem Representation.LinearizeMonoidal.leftUnitor_δ + def Representation.LinearizeMonoidal.linearizeDiagonalEquiv + def Representation.LinearizeMonoidal.linearizeOfMulActionIso + def Representation.LinearizeMonoidal.linearizeTrivialIso + theorem Representation.LinearizeMonoidal.linearizeTrivialIso_apply + theorem Representation.LinearizeMonoidal.linearizeTrivialIso_symm_apply + theorem Representation.LinearizeMonoidal.linearizeTrivial_def + theorem Representation.LinearizeMonoidal.rTensor_comp_δ + theorem Representation.LinearizeMonoidal.rightUnitor_δ + def Representation.LinearizeMonoidal.δ + theorem Representation.LinearizeMonoidal.δ_apply_single + theorem Representation.LinearizeMonoidal.δ_μ + def Representation.LinearizeMonoidal.ε + theorem Representation.LinearizeMonoidal.ε_one + theorem Representation.LinearizeMonoidal.ε_η + def Representation.LinearizeMonoidal.η + theorem Representation.LinearizeMonoidal.η_single + theorem Representation.LinearizeMonoidal.η_ε + def Representation.LinearizeMonoidal.μ + theorem Representation.LinearizeMonoidal.μ_apply_apply + theorem Representation.LinearizeMonoidal.μ_apply_single_single + theorem Representation.LinearizeMonoidal.μ_comp_assoc + theorem Representation.LinearizeMonoidal.μ_comp_lTensor + theorem Representation.LinearizeMonoidal.μ_comp_rTensor + theorem Representation.LinearizeMonoidal.μ_leftUnitor + theorem Representation.LinearizeMonoidal.μ_rightUnitor + theorem Representation.LinearizeMonoidal.μ_δ + def Representation.linearize + def Representation.linearizeMap + theorem Representation.linearizeMap_single + theorem Representation.linearizeMap_toLinearMap + theorem Representation.linearize_single Added Mathlib/RepresentationTheory/Equiv.lean + def Representation.diagonalOneEquivLeftRegular + theorem Representation.diagonalOneEquivLeftRegular_apply_single + theorem Representation.diagonalOneEquivLeftRegular_symm_apply_single + def Representation.finsuppTensorLeft + theorem Representation.finsuppTensorLeft_apply_tmul + theorem Representation.finsuppTensorLeft_apply_tmul_apply + theorem Representation.finsuppTensorLeft_symm_apply_single + def Representation.finsuppTensorRight + theorem Representation.finsuppTensorRight_apply_tmul + theorem Representation.finsuppTensorRight_apply_tmul_apply + theorem Representation.finsuppTensorRight_symm_apply_single + def Representation.freeLift + def Representation.freeLiftLEquiv + theorem Representation.freeLift_single_single + def Representation.leftRegularMapEquiv + theorem Representation.leftRegularMapEquiv_symm_single + def Representation.leftRegularTensorTrivialIsoFree + theorem Representation.leftRegularTensorTrivialIsoFree_apply_single_tmul_single + theorem Representation.leftRegularTensorTrivialIsoFree_symm_apply_single_single + def Representation.ofMulActionSubsingletonEquivTrivial + theorem Representation.ofMulActionSubsingletonEquivTrivial_apply + theorem Representation.ofMulActionSubsingletonEquivTrivial_symm_apply Modified Mathlib/RepresentationTheory/Intertwining.lean + theorem LinearEquiv.isIntertwining_symm_isIntertwining + theorem Representation.Equiv.mk_apply + theorem Representation.Equiv.mk_symm 2026-03-09 18:09:23 f07649f feat(Ringtheory/DedekindDomain): add RingEquiv lemmas (#35532) Co-authored by: @xgenereux. ESTIMATED CHANGES Modified Mathlib/RingTheory/DedekindDomain/Basic.lean +/- theorem Ring.DimensionLEOne.eq_bot_of_lt +/- theorem Ring.DimensionLEOne.isIntegralClosure +/- theorem Ring.DimensionLEOne.not_lt_lt + theorem Ring.DimensionLEOne.of_ringEquiv Modified Mathlib/RingTheory/DedekindDomain/Ideal/Lemmas.lean + theorem IsDedekindDomain.HeightOneSpectrum.RingEquiv.nontrivial_heightOneSpectrum + def IsDedekindDomain.HeightOneSpectrum.comap + def IsDedekindDomain.HeightOneSpectrum.equivOfRingEquiv Modified Mathlib/RingTheory/Ideal/Maps.lean + theorem Ideal.eq_bot_of_comap_eq_bot' 2026-03-09 17:17:56 1ef81a8 feat(Order/WellFounded): the cardinality of a set is an upper-bound for the amount of elements before the set's mex (#35769) The "mex" of a set is its minimum excluded value, see https://en.wikipedia.org/wiki/Mex_(mathematics) ESTIMATED CHANGES Modified Mathlib/Order/WellFounded.lean + theorem WellFounded.mem_of_lt_min_compl + theorem WellFounded.notMem_of_lt_min Modified Mathlib/SetTheory/Cardinal/Basic.lean + theorem WellFounded.cardinalMk_subtype_lt_min_compl_le Modified Mathlib/SetTheory/Ordinal/Basic.lean + theorem Ordinal.card_typein_min_le_mk 2026-03-09 16:36:20 9ffa3e2 chore: tag abs_inv and abs_div with grind= (#30758) ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Field/Basic.lean Modified Mathlib/Algebra/Order/Ring/Abs.lean Modified Mathlib/NumberTheory/ModularForms/EisensteinSeries/Summable.lean 2026-03-09 15:15:32 e308ae1 feat(Algebra/Star/Basic): `StarAddMonoid.toStarModule{Nat,Int}` doesn't need commutativity (#36348) ESTIMATED CHANGES Modified Mathlib/Algebra/Star/Basic.lean 2026-03-09 14:19:42 c487996 feat(dsimp%): throw an error when no progress is made (#36384) This PR adds the feature to `dsimp%` that it complains if no progress is made, mirroring the behaviour of the `simp` tactic. This is a useful quality of life improvement. ESTIMATED CHANGES Modified Mathlib/Tactic/DSimpPercent.lean Modified MathlibTest/DSimpPercent.lean 2026-03-09 13:45:32 9d0ea7d feat: integrability with respect to a countable sum of measures (#36355) Create a new file to prove that `Integrable f (Measure.sum μ) ↔ (∀ i, Integrable f (μ i)) ∧ Summable (fun i ↦ ∫ x, ‖f x‖ ∂μ i)` and specialize this for sums of Dirac masses. Also move existing results about integrals against sums of measures to the new file. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Analysis/Fourier/ZMod.lean Modified Mathlib/MeasureTheory/Integral/Bochner/Basic.lean - theorem MeasureTheory.hasSum_integral_measure - theorem MeasureTheory.integral_count - theorem MeasureTheory.integral_countable' - theorem MeasureTheory.integral_countable - theorem MeasureTheory.integral_finset - theorem MeasureTheory.integral_fintype - theorem MeasureTheory.integral_sum_measure Modified Mathlib/MeasureTheory/Integral/Bochner/Set.lean Added Mathlib/MeasureTheory/Integral/Bochner/SumMeasure.lean + theorem MeasureTheory.Integrable.summable_integral + theorem MeasureTheory.Integrable.summable_of_dirac + theorem MeasureTheory.hasSum_integral_measure + theorem MeasureTheory.hasSum_integral_sum_dirac + theorem MeasureTheory.integrable_sum_dirac + theorem MeasureTheory.integrable_sum_dirac_iff + theorem MeasureTheory.integrable_sum_measure + theorem MeasureTheory.integrable_sum_measure_iff + theorem MeasureTheory.integral_count + theorem MeasureTheory.integral_countable + theorem MeasureTheory.integral_fintype + theorem MeasureTheory.integral_sum_dirac + theorem MeasureTheory.integral_sum_dirac_eq_tsum + theorem MeasureTheory.integral_sum_measure + theorem MeasureTheory.setIntegral_countable + theorem MeasureTheory.setIntegral_finset Modified Mathlib/Probability/ProbabilityMassFunction/Integrals.lean 2026-03-09 13:28:39 d7c4716 feat(Analysis): a closed convex set is the intersection of countably many half-spaces (#31180) This lemma is needed in the proof of conditional Jensen's inequality: #27953 ESTIMATED CHANGES Modified Mathlib/Analysis/LocallyConvex/Separation.lean + theorem RCLike.iInter_countable_halfSpaces_eq + theorem RCLike.iInter_halfSpaces_eq' 2026-03-09 12:13:30 4db86fb chore(RepresentationTheory/Intertwining): Revert #35100 (#36394) ESTIMATED CHANGES Modified Mathlib/RepresentationTheory/Intertwining.lean +/- theorem Representation.IntertwiningMap.coe_neg +/- theorem Representation.IntertwiningMap.coe_zsmul + theorem Representation.IntertwiningMap.sub_toLinearMap +/- theorem Representation.IntertwiningMap.toLinearMap_apply 2026-03-09 11:53:30 901a413 feat: Lévy convergence theorem (#36178) In a finite dimensional inner product space, convergence of probability measures is equivalent to the pointwise convergence of their characteristic functions. ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Measure/LevyConvergence.lean + theorem MeasureTheory.ProbabilityMeasure.tendsto_charPoly_of_tendsto_charFun + theorem MeasureTheory.ProbabilityMeasure.tendsto_iff_tendsto_charFun + theorem MeasureTheory.ProbabilityMeasure.tendsto_of_tendsto_charFun + theorem MeasureTheory.ProbabilityMeasure.tendsto_of_tight_of_separatesPoints Modified docs/1000.yaml 2026-03-09 11:53:27 7bfc01a feat(CategoryTheory/Monoidal/Cartesian/Grp_): `Grp` has limits (#36092) This PR proves that `Grp` has limits. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Monoidal/Cartesian/GrpLimits.lean 2026-03-09 11:53:24 4317fcb chore: make `SimplicialObject` and `SSet` abbrevs (#35298) Currently, use of projections like `X.obj` and `X.map` when `X : SSet` constitutes a defeq abuse at reducible transparency, because `SSet` is a `def` instead of an abbrev. It makes more sense to have it as an abbrev. The same applies to the related `SimplicialObject` and their `Truncated` variants. ESTIMATED CHANGES Modified Mathlib/AlgebraicTopology/DoldKan/NReflectsIso.lean Modified Mathlib/AlgebraicTopology/Quasicategory/StrictBicategory.lean Modified Mathlib/AlgebraicTopology/SimplicialObject/Basic.lean - def CategoryTheory.SimplicialObject.Truncated - def CategoryTheory.SimplicialObject Modified Mathlib/AlgebraicTopology/SimplicialSet/Basic.lean - def SSet.Truncated - def SSet Modified Mathlib/AlgebraicTopology/SimplicialSet/HoFunctorMonoidal.lean Modified Mathlib/AlgebraicTopology/SimplicialSet/Monoidal.lean Modified Mathlib/AlgebraicTopology/SimplicialSet/NerveAdjunction.lean Modified Mathlib/AlgebraicTopology/SimplicialSet/ProdStdSimplex.lean Modified Mathlib/AlgebraicTopology/SimplicialSet/Subcomplex.lean 2026-03-09 11:27:59 f93a448 chore(AlgebraicTopology): unsqueeze terminal `simp`:s (`simp only […]` to `simp`) (#36291) The goal of this PR is to decrease the number of times lemmas are called explicitly. Any decrease in compilation time is a welcome side effect, although it is not a primary objective. Trace profiling results (differences <30 ms considered measurement noise): * `AlgebraicTopology.DoldKan.MorphComponents.preComp_φ`: unchanged 🎉 * `AlgebraicTopology.DoldKan.HigherFacesVanish.inclusionOfMooreComplexMap`: unchanged 🎉 Profiled using `set_option trace.profiler true in`. This PR is batched under the following guidelines: * Up to ~5 changed files per PR * Up to ~25 changed declarations per PR * Up to ~100 changed lines per PR ESTIMATED CHANGES Modified Mathlib/AlgebraicTopology/DoldKan/Decomposition.lean Modified Mathlib/AlgebraicTopology/DoldKan/Normalized.lean 2026-03-09 11:27:57 89674d2 fix: non-defeq projections in `WithAbs` (#36111) Previously the following fails ```lean example (v : AbsoluteValue R ℝ) : (normedField v).toNormedCommRing.toNormedRing = (normedRing v) := by with_reducible_and_instances rfl ``` Fix requires removing `fast_instance%` from `normedRing` and adding `@[implicit_reducible]` to `AbsoluteValue.toNormedField`. Also remove out-of-date docstring. ESTIMATED CHANGES Modified Mathlib/Analysis/Normed/Field/Basic.lean Modified Mathlib/Analysis/Normed/Field/WithAbs.lean Modified Mathlib/Analysis/Normed/Ring/Basic.lean Modified Mathlib/Analysis/Normed/Ring/WithAbs.lean Added MathlibTest/instance_diamonds/Analysis/Normed/Field/WithAbs.lean 2026-03-09 11:27:55 1dcaffe feat(RingTheory): define finite split algebras (#35989) From Pi1. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/RingTheory/Etale/Pi.lean Added Mathlib/RingTheory/TotallySplit.lean + theorem Algebra.IsFiniteSplit.of_algEquiv + theorem Algebra.IsFiniteSplit.of_subsingleton 2026-03-09 11:27:54 0452866 chore(Data/Finsupp): update pointwise module structure (#35659) This is the 3rd PR split from #34936 to make the review process easier. It adds a scalar tower instance for the pointwise module structure `Module (α → β) (α →₀ β)` where `β` is a semiring. ESTIMATED CHANGES Modified Mathlib/Data/Finsupp/Pointwise.lean + theorem Finsupp.pointwise_smul_support_finite 2026-03-09 10:32:25 1fd7447 feat: add `empty_eq_image` simp lemmas (#33363) Creates new simp lemmas `empty_eq_image`, similar to existing simp lemmas, but with the LHS equality reversed, so that simp can identify these when in this form. ESTIMATED CHANGES Modified Mathlib/Data/Finset/Image.lean + theorem Finset.empty_eq_image + theorem Finset.empty_eq_map Modified Mathlib/Data/Multiset/MapFold.lean + theorem Multiset.zero_eq_map Modified Mathlib/Data/Option/Basic.lean + theorem Option.none_eq_map_iff + theorem Option.some_eq_map_iff Modified Mathlib/Data/Set/Image.lean + theorem Set.empty_eq_image Modified Mathlib/Order/Filter/Map.lean + theorem Filter.bot_eq_map_iff 2026-03-09 00:42:01 c287e21 chore(Tactic/Convert): fix docstring back-ticks (#36315) This PR fixes a style mistake in the docstring of `convert` which was introduced in #34840. ESTIMATED CHANGES Modified Mathlib/Tactic/Convert.lean 2026-03-08 23:44:29 31672e2 feat: tag `Pow.mk` with `to_additive` (#36302) This PR uses the new `reorder` support in `to_additive` to automatically generate `SMul` instances from `Pow` instances. I've tried to address most such instances, but this is probably not exhaustive. I've also taken the opportunity to uniformize the instance names a bit. I wonder, should we change the order of the arguments in `Monoid.npow : ℕ → M → M` and `npowRec` to be consistent with the usual power operation, now that `to_additive` can support this kind of reordering? I suspect that the current ordering only exists for the sake of `to_additive`. ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Defs.lean Modified Mathlib/Algebra/Group/Hom/Instances.lean Modified Mathlib/Algebra/Group/Pointwise/Finset/Basic.lean Modified Mathlib/Algebra/Group/Pointwise/Set/Basic.lean Modified Mathlib/Algebra/Group/Subgroup/Defs.lean Modified Mathlib/Algebra/Group/Subgroup/ZPowers/Basic.lean Modified Mathlib/Algebra/Group/Submonoid/Defs.lean Modified Mathlib/Algebra/Group/TransferInstance.lean - theorem Equiv.smul_def Modified Mathlib/Algebra/Group/ULift.lean - theorem ULift.smul_down Modified Mathlib/Algebra/Notation/Defs.lean Modified Mathlib/Algebra/Notation/Pi/Defs.lean Modified Mathlib/Algebra/Notation/Prod.lean - theorem Prod.smul_def - theorem Prod.smul_fst - theorem Prod.smul_mk - theorem Prod.smul_snd - theorem Prod.smul_swap Modified Mathlib/Algebra/Order/Interval/Basic.lean Modified Mathlib/Data/BitVec.lean Modified Mathlib/Data/ZMod/IntUnitsPower.lean Modified Mathlib/Geometry/Manifold/Algebra/SmoothFunctions.lean Modified Mathlib/GroupTheory/Congruence/Defs.lean Modified Mathlib/Order/Filter/Germ/Basic.lean Modified Mathlib/Order/Filter/Pointwise.lean Modified Mathlib/Tactic/Simps/Basic.lean Modified Mathlib/Tactic/ToAdditive.lean Modified Mathlib/Topology/Algebra/RestrictedProduct/Basic.lean Modified Mathlib/Topology/Algebra/SeparationQuotient/Basic.lean Modified Mathlib/Topology/ContinuousMap/Algebra.lean Modified Mathlib/Topology/ContinuousMap/Bounded/Basic.lean Modified MathlibTest/instance_diamonds.lean 2026-03-08 21:37:30 f399585 perf: try lowering prio for A(0) instances, A a graded object (#35446) If Lean is looking for `Mul X` where `X` is coincidentally of the form `A 0` then the first thing it tries is `GradedMonoid.GradeZero.mul` which, if wrong, can take a long time to fail. In this PR I steer typeclass inference away from "A(0)-instances" by lowering their priority. Benchmarking is 100% green indicating that this decision is not hurting us. ESTIMATED CHANGES Modified Mathlib/Algebra/DirectSum/Ring.lean Modified Mathlib/Algebra/GradedMonoid.lean 2026-03-08 21:13:04 54d413b feat(CategoryTheory/Over): `Over X` is equivalent to `PUnit` if `X` is strict initial (#36339) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Comma/Over/StrictInitial.lean + def CategoryTheory.MorphismProperty.overEquivOfIsInitial + def CategoryTheory.MorphismProperty.underEquivOfIsTerminal + def CategoryTheory.overEquivOfIsInitial + def CategoryTheory.underEquivOfIsTerminal 2026-03-08 20:29:54 ee97ee6 ci(maintainer_*): add backwards compatibility, fix comment posting, reduce frequency (#36372) Further followups to #35110. In rough order of importance: First, on older PRs, the older versions of the bors / maintainer merge actions may still get triggered (see https://github.com/leanprover-community/mathlib4/pull/35110#issuecomment-4018550225 for an explanation; in hindsight I should have realized it would still be a problem after merging 🤦 ). This causes the new wf_run workflows not to work properly. I've adjusted the workflows so that they can read either type of artifact, making them backwards-compatible. (At some point in the future we may be able to revert this part) Second, Zulip notifications from the maintainer merge workflow are now working but it is failing to post a comment due to missing permissions for the github token. I added `pull-requests: write` to fix that. Third, Zulip emojis are failing for bors commands due to steps being out of order. Fourth, in #33042 I introduced conditionals to reduce the frequency of the maintainer merge workflow getting triggered. I do the same thing for the maintainer bors workflow here. Prepared with codex ESTIMATED CHANGES Modified .github/workflows/maintainer_bors.yml Modified .github/workflows/maintainer_bors_wf_run.yml Modified .github/workflows/maintainer_merge.yml Modified .github/workflows/maintainer_merge_wf_run.yml 2026-03-08 20:29:53 7505c6c chore(Data/Matrix/Mul): fix references in docstrings (#36343) ESTIMATED CHANGES Modified Mathlib/Data/Matrix/Mul.lean Modified Mathlib/LinearAlgebra/Matrix/RowCol.lean 2026-03-08 20:06:16 fd7333f chore(CategoryTheory/ShrinkYoneda): `shrinkYoneda.obj X` is representable (#36292) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/ShrinkYoneda.lean + def CategoryTheory.FunctorToTypes.shrinkCompUliftFunctorIso + def CategoryTheory.shrinkYonedaRepresentableBy + def CategoryTheory.shrinkYonedaUliftFunctorIso Modified Mathlib/CategoryTheory/Yoneda.lean + def CategoryTheory.Functor.CorepresentableBy.id + theorem CategoryTheory.Functor.CorepresentableBy.id_homEquiv_apply + theorem CategoryTheory.Functor.CorepresentableBy.id_homEquiv_symm_apply +/- theorem CategoryTheory.corepresentable_of_natIso +/- theorem CategoryTheory.isRepresentable_of_natIso 2026-03-08 18:42:37 13da6e0 chore(AlgebraicGeometry/Sites): allow imports from `NumberTheory` and `AlgebraicTopology` (#36359) The first such usage will be in #36306 and many more will hopefully come. Arithmetic geometry relies on number theory and sheaf cohomology requires some homotopical methods. ESTIMATED CHANGES Modified Mathlib/Tactic/Linter/DirectoryDependency.lean 2026-03-08 18:24:43 7d8e8ab doc(AlgebraicTopology): fix typos (#36371) Found by `PyCharm`'s code inspection tool. ESTIMATED CHANGES Modified Mathlib/AlgebraicTopology/ModelCategory/BifibrantObjectHomotopy.lean Modified Mathlib/AlgebraicTopology/SimplexCategory/Augmented/Basic.lean Modified Mathlib/AlgebraicTopology/SimplexCategory/GeneratorsRelations/EpiMono.lean Modified Mathlib/AlgebraicTopology/SimplicialSet/HoFunctorMonoidal.lean Modified Mathlib/AlgebraicTopology/SimplicialSet/NerveAdjunction.lean 2026-03-08 18:24:41 f70c292 doc(AlgebraicGeometry): fix typos (#36370) Found by `PyCharm`'s code inspection tool. ESTIMATED CHANGES Modified Mathlib/AlgebraicGeometry/Geometrically/Irreducible.lean Modified Mathlib/AlgebraicGeometry/Geometrically/Reduced.lean Modified Mathlib/AlgebraicGeometry/Modules/Tilde.lean Modified Mathlib/AlgebraicGeometry/Morphisms/Flat.lean Modified Mathlib/AlgebraicGeometry/Normalization.lean Modified Mathlib/AlgebraicGeometry/Sites/SheafQuasiCompact.lean 2026-03-08 17:29:31 ea96845 feat(Data/Set/Image): `LeftInverse (rangeSplitting f) (rangeFactorization f) ↔ f.Injective` (#36368) ESTIMATED CHANGES Modified Mathlib/Data/Set/Image.lean + theorem Set.leftInverse_rangeFactorization_iff_injective 2026-03-08 17:29:29 416f1b3 chore(Data/Matrix/Composition): fix docstring (#36342) ESTIMATED CHANGES Modified Mathlib/Data/Matrix/Composition.lean 2026-03-08 17:29:28 3298c0b feat: `Int.mul_{pos,nonpos,neg}_iff` (#36340) Completing a rectangle of lemmas. ESTIMATED CHANGES Modified Mathlib/Data/Int/Order/Basic.lean +/- theorem Int.le.elim +/- theorem Int.lt.elim +/- theorem Int.mul_nonneg_of_nonneg_or_nonpos +/- theorem Int.nonneg_or_nonpos_of_mul_nonneg 2026-03-08 17:01:37 eddcb62 chore: rename `Ordinal.nat_lt_omega0` → `Ordinal.natCast_lt_omega0` (#36361) ESTIMATED CHANGES Modified Mathlib/SetTheory/Cardinal/Ordinal.lean Modified Mathlib/SetTheory/Ordinal/Arithmetic.lean + theorem Ordinal.natCast_lt_omega0 - theorem Ordinal.nat_lt_omega0 +/- theorem Ordinal.one_lt_omega0 Modified Mathlib/SetTheory/Ordinal/Exponential.lean Modified Mathlib/SetTheory/Ordinal/Family.lean Modified Mathlib/SetTheory/Ordinal/Notation.lean Modified Mathlib/SetTheory/Ordinal/Principal.lean Modified Mathlib/SetTheory/Ordinal/Veblen.lean 2026-03-08 16:49:20 5ad1ece fix: decompress already downloaded files (#36367) The new parallel decompression (#32987) forgets about files which are already present in the `.cache/mathlib` folder. This PR adds the final decompression step back which only decompresses anything which hasn't already been decompressed prior. ESTIMATED CHANGES Modified Cache/Requests.lean 2026-03-08 16:02:08 9f2706c ci(maintainer_*_wf_run): add required github.token (#36363) Follow-up to #35110; those actions are currently broken due to missing github.token inputs to the artifact bridge step. I also move some app token steps later and add conditionals so they only run if necessary. This is technically unrelated, but I think these being so early in the workflows confused me into thinking that there were tokens provided (even though they're not even hooked up to the step in question). ESTIMATED CHANGES Modified .github/workflows/maintainer_bors_wf_run.yml Modified .github/workflows/maintainer_merge_wf_run.yml 2026-03-08 15:07:30 eda3563 chore(Order/Hom/Bounded): use `to_dual` (#36354) ESTIMATED CHANGES Modified Mathlib/Order/Hom/Bounded.lean - theorem BotHom.bot_apply - theorem BotHom.cancel_left - theorem BotHom.cancel_right - theorem BotHom.coe_bot - theorem BotHom.coe_comp - theorem BotHom.coe_copy - theorem BotHom.coe_id - theorem BotHom.coe_inf - theorem BotHom.coe_sup - def BotHom.comp - theorem BotHom.comp_apply - theorem BotHom.comp_assoc - theorem BotHom.comp_id - theorem BotHom.copy_eq - theorem BotHom.dual_comp - theorem BotHom.dual_id - theorem BotHom.ext - theorem BotHom.id_apply - theorem BotHom.id_comp - theorem BotHom.inf_apply - theorem BotHom.sup_apply - theorem BotHom.symm_dual_comp - theorem BotHom.symm_dual_id - def BotHomClass.toBotHom - theorem BoundedOrderHom.coe_comp_botHom - def BoundedOrderHom.toBotHom +/- def BoundedOrderHom.toTopHom - theorem map_eq_bot_iff Modified Mathlib/Order/Lattice.lean 2026-03-08 14:39:35 d0a2700 feat: `ContinuousSMul (∀ i, N i) (∀ i, γ i)` (#34990) FLT ESTIMATED CHANGES Modified Mathlib/Topology/Algebra/MulAction.lean 2026-03-08 14:05:11 8a9bdec chore(deps): bump the actions-version-updates group across 1 directory with 8 updates (#36358) Bumps the actions-version-updates group with 8 updates in the /.github/workflows directory: | Package | From | To | | --- | --- | --- | | [reviewdog/action-actionlint](https://github.com/reviewdog/action-actionlint) | `1.70.0` | `1.71.0` | | [actions/upload-artifact](https://github.com/actions/upload-artifact) | `6.0.0` | `7.0.0` | | [actions/download-artifact](https://github.com/actions/download-artifact) | `7.0.0` | `8.0.0` | | [docker/login-action](https://github.com/docker/login-action) | `3.7.0` | `4.0.0` | | [docker/metadata-action](https://github.com/docker/metadata-action) | `5.10.0` | `6.0.0` | | [docker/build-push-action](https://github.com/docker/build-push-action) | `6.18.0` | `7.0.0` | | [actions/attest-build-provenance](https://github.com/actions/attest-build-provenance) | `3.2.0` | `4.1.0` | | [corentinmusard/otel-cicd-action](https://github.com/corentinmusard/otel-cicd-action) | `3.0.0` | `4.0.0` | Updates `reviewdog/action-actionlint` from 1.70.0 to 1.71.0
Release notes

Sourced from reviewdog/action-actionlint's releases.

Release v1.71.0

v1.71.0: PR #193 - chore(deps): update actionlint to 1.7.11

Commits

Updates `actions/upload-artifact` from 6.0.0 to 7.0.0
Release notes

Sourced from actions/upload-artifact's releases.

v7.0.0

v7 What's new

Direct Uploads

Adds support for uploading single files directly (unzipped). Callers can set the new archive parameter to false to skip zipping the file during upload. Right now, we only support single files. The action will fail if the glob passed resolves to multiple files. The name parameter is also ignored with this setting. Instead, the name of the artifact will be the name of the uploaded file.

ESM

To support new versions of the @actions/* packages, we've upgraded the package to ESM.

What's Changed

New Contributors

Full Changelog: https://github.com/actions/upload-artifact/compare/v6...v7.0.0

Commits

Updates `actions/download-artifact` from 7.0.0 to 8.0.0
Release notes

Sourced from actions/download-artifact's releases.

v8.0.0

v8 - What's new

Direct downloads

To support direct uploads in actions/upload-artifact, the action will no longer attempt to unzip all downloaded files. Instead, the action checks the Content-Type header ahead of unzipping and skips non-zipped files. Callers wishing to download a zipped file as-is can also set the new skip-decompress parameter to false.

Enforced checks (breaking)

A previous release introduced digest checks on the download. If a download hash didn't match the expected hash from the server, the action would log a warning. Callers can now configure the behavior on mismatch with the digest-mismatch parameter. To be secure by default, we are now defaulting the behavior to error which will fail the workflow run.

ESM

To support new versions of the @actions/* packages, we've upgraded the package to ESM.

What's Changed

Full Changelog: https://github.com/actions/download-artifact/compare/v7...v8.0.0

Commits

Updates `docker/login-action` from 3.7.0 to 4.0.0
Release notes

Sourced from docker/login-action's releases.

v4.0.0

Full Changelog: https://github.com/docker/login-action/compare/v3.7.0...v4.0.0

Commits

Updates `docker/metadata-action` from 5.10.0 to 6.0.0
Release notes

Sourced from docker/metadata-action's releases.

v6.0.0

Full Changelog: https://github.com/docker/metadata-action/compare/v5.10.0...v6.0.0

Commits

Updates `docker/build-push-action` from 6.18.0 to 7.0.0
Release notes

Sourced from docker/build-push-action's releases.

v7.0.0

Full Changelog: https://github.com/docker/build-push-action/compare/v6.19.2...v7.0.0

v6.19.2

Full Changelog: https://github.com/docker/build-push-action/compare/v6.19.1...v6.19.2

v6.19.1

Full Changelog: https://github.com/docker/build-push-action/compare/v6.19.0...v6.19.1

v6.19.0

Full Changelog: https://github.com/docker/build-push-action/compare/v6.18.0...v6.19.0

Commits

Updates `actions/attest-build-provenance` from 3.2.0 to 4.1.0
Release notes

Sourced from actions/attest-build-provenance's releases.

v4.1.0

[!NOTE] As of version 4, actions/attest-build-provenance is simply a wrapper on top of actions/attest.

Existing applications may continue to use the attest-build-provenance action, but new implementations should use actions/attest instead.

What's Changed

Full Changelog: https://github.com/actions/attest-build-provenance/compare/v4.0.0...v4.1.0

v4.0.0

[!NOTE] As of version 4, actions/attest-build-provenance is simply a wrapper on top of actions/attest.

Existing applications may continue to use the attest-build-provenance action, but new implementations should use actions/attest instead.

What's Changed

Full Changelog: https://github.com/actions/attest-build-provenance/compare/v3.2.0...v4.0.0

Commits

Updates `corentinmusard/otel-cicd-action` from 3.0.0 to 4.0.0
Release notes

Sourced from corentinmusard/otel-cicd-action's releases.

v4.0.0

⚠ BREAKING CHANGES

Upgraded action from node20 to node24.

Make sure your runner is on version v2.327.1 or later to ensure compatibility with this release. See Release Notes

Changelog

Sourced from corentinmusard/otel-cicd-action's changelog.

Changelog

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

[Unreleased]

[4.0.0] - 2026-02-07

⚠ BREAKING CHANGES

Upgraded action from node20 to node24.

Make sure your runner is on version v2.327.1 or later to ensure compatibility with this release. See Release Notes

[3.0.0] - 2026-01-30

⚠ BREAKING CHANGES

Added

Added missing semconv attributes:

Fixed

[2.2.4] - 2025-08-07

Fixed

[2.2.3] - 2025-01-30

Fixed

... (truncated)

Commits

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) ESTIMATED CHANGES Modified .github/workflows/actionlint.yml Modified .github/workflows/build_template.yml Modified .github/workflows/docker_build.yml Modified .github/workflows/export_telemetry.yaml 2026-03-08 13:38:58 fab28e6 chore(Mathlib/CategoryTheory/Limits/Shapes/Pullback/IsPullback/Basic.lean): automated extraction (#36352) This PR was automatically created from PR #35867 by @edegeltje via a [review comment](https://github.com/leanprover-community/mathlib4/pull/35867#discussion_r2901626284) by @chrisflav. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Limits/Shapes/Pullback/IsPullback/Basic.lean + theorem CategoryTheory.IsPullback.app + theorem CategoryTheory.IsPullback.iff_app + theorem CategoryTheory.IsPullback.of_forall_isPullback_app + theorem CategoryTheory.IsPushout.app + theorem CategoryTheory.IsPushout.iff_app + theorem CategoryTheory.IsPushout.of_forall_isPushout_app 2026-03-08 13:24:24 9f6054c ci: refactor maintainer_*.yml workflows to use new helper actions (#35110) The workflows `maintainer_{bors,merge}.yml` workflows were rewritten in #26288 so that they were split into two workflows. The first workflow is triggered by an issue comment, PR review, or PR review comment and does not have access to secrets. The second workflow is triggered by the successful completion of the first workflow and does the actual labeling of the PR using its access to secrets. Data about the PR and the triggering comment / review is passed between workflows by use of a workflow artifact. It turns out this is a fairly useful pattern, so I've created [leanprover-community/privilege-escalation-brdge](https://github.com/leanprover-community/privilege-escalation-bridge) with some helper actions that we will be able to use in more workflows. This PR refactors the abovementioned PRs to use the new actions. There is a slight change in behavior: previously PRs which were opened from a branch in this repo (as opposed to a branch in a fork) would just be handled using some steps in the first workflow (since the workflow does get access to secrets for such PRs) and the second workflow would not be triggered. Now all PRs are treated equally -- they all go through both workflows. This will slow down labeling for the (rare) PRs which are still opened from branches in this repo, however, I think that's outweighed by the resulting simplification of the workflows. Other than this though the behavior should be unchanged. Prepared with codex. ESTIMATED CHANGES Modified .github/workflows/maintainer_bors.yml Modified .github/workflows/maintainer_bors_wf_run.yml Modified .github/workflows/maintainer_merge.yml Modified .github/workflows/maintainer_merge_wf_run.yml 2026-03-08 12:55:20 4fb3c3c feat(Algebra/Star/SelfAdjoint): `IsSelfAdjoint` of `Invertible` (#36350) ESTIMATED CHANGES Modified Mathlib/Algebra/Star/SelfAdjoint.lean + theorem IsSelfAdjoint.invOf_iff + theorem IsSelfAdjoint.inv_iff + theorem IsSelfAdjoint.inv₀_iff 2026-03-08 12:15:52 4622497 doc(Analysis): fix typos (#36351) Found by `PyCharm`'s code inspection tool. ESTIMATED CHANGES Modified Mathlib/Analysis/Analytic/Composition.lean Modified Mathlib/Analysis/Calculus/DifferentialForm/VectorField.lean Modified Mathlib/Analysis/Calculus/TangentCone/Seq.lean Modified Mathlib/Analysis/Complex/Positivity.lean Modified Mathlib/Analysis/Complex/Trigonometric.lean Modified Mathlib/Analysis/Complex/UnitDisc/Basic.lean Modified Mathlib/Analysis/Complex/ValueDistribution/LogCounting/Basic.lean Modified Mathlib/Analysis/Convex/Basic.lean Modified Mathlib/Analysis/Distribution/Distribution.lean Modified Mathlib/Analysis/InnerProductSpace/Coalgebra.lean Modified Mathlib/Analysis/InnerProductSpace/GramSchmidtOrtho.lean Modified Mathlib/Analysis/InnerProductSpace/OfNorm.lean Modified Mathlib/Analysis/InnerProductSpace/PiL2.lean Modified Mathlib/Analysis/LocallyConvex/WithSeminorms.lean Modified Mathlib/Analysis/Normed/Algebra/GelfandMazur.lean Modified Mathlib/Analysis/Normed/Algebra/UnitizationL1.lean Modified Mathlib/Analysis/Normed/Field/Approximation.lean Modified Mathlib/Analysis/Normed/Field/Dense.lean Modified Mathlib/Analysis/Normed/Module/ContinuousInverse.lean Modified Mathlib/Analysis/Normed/Module/PiTensorProduct/InjectiveSeminorm.lean Modified Mathlib/Analysis/Normed/Module/RCLike/Real.lean Modified Mathlib/Analysis/Normed/Operator/ContinuousAlgEquiv.lean Modified Mathlib/Analysis/Normed/Unbundled/FiniteExtension.lean Modified Mathlib/Analysis/Normed/Unbundled/SpectralNorm.lean Modified Mathlib/Analysis/Real/Hyperreal.lean Modified Mathlib/Analysis/SpecialFunctions/Arcosh.lean Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Chebyshev/Extremal.lean 2026-03-08 12:15:51 d81512b chore: remove some superfluous parens (#36295) A followup to https://github.com/leanprover-community/mathlib4/pull/35921 ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Group/Pointwise/Interval.lean Modified Mathlib/Analysis/Complex/MeanValue.lean Modified Mathlib/Analysis/Complex/Poisson.lean Modified Mathlib/FieldTheory/RatFunc/AsPolynomial.lean Modified Mathlib/GroupTheory/ArchimedeanDensely.lean Modified Mathlib/GroupTheory/OrderOfElement.lean Modified Mathlib/GroupTheory/SpecificGroups/Alternating/Centralizer.lean Modified Mathlib/Probability/Process/Stopping.lean Modified Mathlib/RingTheory/AlgebraicIndependent/TranscendenceBasis.lean Modified Mathlib/RingTheory/Conductor.lean Modified Mathlib/RingTheory/Ideal/Colon.lean Modified Mathlib/RingTheory/LaurentSeries.lean Modified Mathlib/Topology/Algebra/Valued/WithVal.lean Modified Mathlib/Topology/Baire/Lemmas.lean Modified Mathlib/Topology/Homeomorph/Lemmas.lean 2026-03-08 12:15:49 eec69d8 chore: exhaustively replace `measurability`/`continuity` → `fun_prop`, `simp_all` → `simp` where possible (#35886) The goal of this PR is to exhaustively replace `measurability`/`continuity` and `simp_all` with the preferred `fun_prop` and `simp` where possible. Trace profiling results (differences <30 ms considered measurement noise): * `PeriodPair.weierstrassPExcept_add`: unchanged 🎉 * `PeriodPair.derivWeierstrassPExcept_sub`: unchanged 🎉 * `PeriodPair.coeff_weierstrassPExceptSeries`: 353 ms before, 320 ms after 🎉 * `Polynomial.Chebyshev.integral_measureT`: unchanged 🎉 * `Polynomial.Chebyshev.integrable_measureT`: 513 ms before, 338 ms after 🎉 * `LinearMap.fst_prodOfFinsuppNat`: unchanged 🎉 * `Representation.leftRegular_norm_apply`: unchanged 🎉 * `ValuativeRel.isDiscrete_trivialRel`: unchanged 🎉 Profiled using `set_option trace.profiler true in`. This PR is batched under the following guidelines: * Up to ~5 changed files per PR * Up to ~25 changed declarations per PR * Up to ~100 changed lines per PR ESTIMATED CHANGES Modified Mathlib/Analysis/Fourier/Convolution.lean Modified Mathlib/Analysis/SpecialFunctions/Elliptic/Weierstrass.lean Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Chebyshev/Orthogonality.lean Modified Mathlib/LinearAlgebra/Finsupp/Pi.lean Modified Mathlib/RepresentationTheory/Basic.lean Modified Mathlib/RingTheory/Valuation/ValuativeRel/Trivial.lean 2026-03-08 12:15:47 1ad49ce chore(SetTheory/Ordinal/Basic): remove `backward.privateInPublic` (#35552) ESTIMATED CHANGES Modified Mathlib/SetTheory/Ordinal/Basic.lean 2026-03-08 12:15:46 ae140ba chore(Geometry): fix markdown lists (#35477) We make sure to also indent subsequent lines of an item: this is required by the markdown specification (though not doc-gen), it expresses intent more clearly, and makes it easier to catch accidental misindentations. Furthermore, we split some text out of the ultimate item of some markdown lists, where the text was accidentally attached to it. ESTIMATED CHANGES Modified Mathlib/Geometry/Diffeology/Basic.lean Modified Mathlib/Geometry/Euclidean/Sphere/Ptolemy.lean Modified Mathlib/Geometry/Manifold/ContMDiff/Constructions.lean Modified Mathlib/Geometry/Manifold/IntegralCurve/ExistUnique.lean Modified Mathlib/Geometry/Manifold/IsManifold/InteriorBoundary.lean Modified Mathlib/Geometry/Manifold/MFDeriv/Defs.lean 2026-03-08 12:15:44 2467d5a chore(Algebra): fix indentation in markdown lists (#35458) Make sure to also indent subsequent lines of an item: this is required by the markdown specification (though not doc-gen), it expresses intent more clearly, and makes it easier to catch accidental misindentations. ESTIMATED CHANGES Modified Mathlib/Algebra/BigOperators/Group/Finset/Gaps.lean Modified Mathlib/Algebra/Homology/BifunctorShift.lean Modified Mathlib/Algebra/Homology/DerivedCategory/Basic.lean Modified Mathlib/Algebra/Homology/DerivedCategory/Ext/TStructure.lean Modified Mathlib/Algebra/Homology/Embedding/Basic.lean Modified Mathlib/Algebra/Homology/Linear.lean Modified Mathlib/Algebra/Homology/ShortComplex/Ab.lean Modified Mathlib/Algebra/Lie/Derivation/AdjointAction.lean Modified Mathlib/Algebra/Lie/Derivation/Basic.lean Modified Mathlib/Algebra/Lie/Derivation/Killing.lean Modified Mathlib/Algebra/Module/CharacterModule.lean Modified Mathlib/Algebra/Module/Submodule/Pointwise.lean Modified Mathlib/Algebra/Module/Submodule/Union.lean Modified Mathlib/Algebra/Module/ZLattice/Covolume.lean Modified Mathlib/Algebra/MvPolynomial/CommRing.lean Modified Mathlib/Algebra/MvPolynomial/Degrees.lean Modified Mathlib/Algebra/MvPolynomial/Equiv.lean Modified Mathlib/Algebra/MvPolynomial/PDeriv.lean Modified Mathlib/Algebra/MvPolynomial/Rename.lean Modified Mathlib/Algebra/MvPolynomial/Variables.lean Modified Mathlib/Algebra/Ring/Semireal/Defs.lean Modified Mathlib/Algebra/SkewMonoidAlgebra/Basic.lean 2026-03-08 12:15:43 c07c4ce chore(NumberTheory): fix indentation in markdown lists (#35441) Make sure to also indent subsequent lines of an item: this is required by the markdown specification (though not doc-gen), it expresses intent more clearly, and makes it easier to catch accidental misindentations. ESTIMATED CHANGES Modified Mathlib/NumberTheory/ClassNumber/FunctionField.lean Modified Mathlib/NumberTheory/ModularForms/DedekindEta.lean Modified Mathlib/NumberTheory/NumberField/ClassNumber.lean Modified Mathlib/NumberTheory/NumberField/FractionalIdeal.lean Modified Mathlib/NumberTheory/NumberField/ProductFormula.lean Modified Mathlib/NumberTheory/Ostrowski.lean Modified Mathlib/NumberTheory/SiegelsLemma.lean 2026-03-08 12:15:41 9f0e4c4 chore(Order): fix indentation in markdown lists (#35440) Make sure to also indent subsequent lines of an item: this is required by the markdown specification (though not doc-gen), it expresses intent more clearly, and makes it easier to catch accidental misindentations. ESTIMATED CHANGES Modified Mathlib/Order/BourbakiWitt.lean Modified Mathlib/Order/GameAdd.lean Modified Mathlib/Order/Interval/Finset/Gaps.lean Modified Mathlib/Order/PrimeSeparator.lean 2026-03-08 11:50:36 32ca87f chore: replace uses of `aesop` with `simp` (#35945) Since `aesop` runs `simp_all` by default, it is preferable to call `simp` directly when it suffices to close the goal. This makes the proof intent more explicit and is typically faster (sometimes significantly so in the cases below). Trace profiling results (differences <30 ms considered measurement noise): * `Polynomial.splits_mul_iff`: 998 ms before, 807 ms after 🎉 * `summable_condensed_iff_of_eventually_nonneg`: 927 ms before, 835 ms after 🎉 * `CategoryTheory.PreservesFiniteLimitsOfFlat.uniq`: 1476 ms before, 1327 ms after 🎉 * `IsCyclotomicExtension.union_of_isPrimitiveRoot`: 528 ms before, 306 ms after 🎉 * `Representation.FiniteCyclicGroup.coinvariantsKer_leftRegular_eq_ker`: 324 ms before, 292 ms after 🎉 * `of_adjoin_eq_top`: unchanged 🎉 Profiled using `set_option trace.profiler true in`. This PR is batched under the following guidelines: * Up to ~5 changed files per PR * Up to ~25 changed declarations per PR * Up to ~100 changed lines per PR ESTIMATED CHANGES Modified Mathlib/Algebra/Polynomial/Splits.lean Modified Mathlib/AlgebraicGeometry/Noetherian.lean Modified Mathlib/AlgebraicTopology/SimplicialSet/StdSimplex.lean Modified Mathlib/Analysis/PSeries.lean Modified Mathlib/CategoryTheory/Functor/Flat.lean Modified Mathlib/LinearAlgebra/Multilinear/Curry.lean Modified Mathlib/NumberTheory/Cyclotomic/Basic.lean Modified Mathlib/NumberTheory/NumberField/CanonicalEmbedding/NormLeOne.lean Modified Mathlib/RepresentationTheory/Homological/FiniteCyclic.lean Modified Mathlib/RepresentationTheory/Homological/GroupHomology/FiniteCyclic.lean Modified Mathlib/RepresentationTheory/Homological/GroupHomology/LowDegree.lean Modified Mathlib/RingTheory/TensorProduct/IsBaseChangeHom.lean Modified Mathlib/RingTheory/ZariskisMainTheorem.lean 2026-03-08 10:43:23 a380657 fix(Tactic/Recall): use flat name to avoid `module` namespace issues (#36238) This PR fixes the `recall` command to work inside `module` files. The `recall` command generates a temporary definition (inside `withoutModifyingEnv`) to type-check the recalled value. Previously, it used the recalled declaration's name as the `DeclNameGenerator` prefix, creating hierarchical names like `IfNormalization.recall_1`. In `module` files, this opens deep namespaces that cause "Invalid name after `end`" errors. Since the generated name is discarded anyway, use `.anonymous` as the prefix to produce a flat name, avoiding the namespace issue entirely. 🤖 Prepared with Claude Code ESTIMATED CHANGES Modified Mathlib/Tactic/Recall.lean Added MathlibTest/RecallModule.lean + def recallModuleTest 2026-03-08 06:01:21 06e9473 chore(Order/Hom/Lattice): use `to_dual` (#36159) ESTIMATED CHANGES Modified Mathlib/Order/Hom/Lattice.lean - theorem InfHom.bot_apply - theorem InfHom.cancel_left - theorem InfHom.cancel_right - theorem InfHom.coe_bot - theorem InfHom.coe_comp - theorem InfHom.coe_const - theorem InfHom.coe_copy - theorem InfHom.coe_id - theorem InfHom.coe_inf - theorem InfHom.coe_mk - theorem InfHom.coe_top - def InfHom.comp - theorem InfHom.comp_apply - theorem InfHom.comp_assoc - theorem InfHom.comp_id - def InfHom.const - theorem InfHom.const_apply - theorem InfHom.copy_eq - theorem InfHom.dual_comp - theorem InfHom.dual_id - theorem InfHom.ext - theorem InfHom.id_apply - theorem InfHom.id_comp - theorem InfHom.inf_apply +/- theorem InfHom.mk_le_mk - theorem InfHom.symm_dual_comp - theorem InfHom.symm_dual_id - theorem InfHom.toFun_eq_coe - theorem InfHom.top_apply - theorem LatticeHom.coe_comp_inf_hom' - theorem LatticeHom.coe_comp_inf_hom - theorem LatticeHom.coe_toInfHom +/- theorem LatticeHom.coe_toSupHom +/- theorem SupHom.coe_mk +/- theorem SupHom.comp_id +/- theorem SupHom.id_comp +/- theorem SupHom.toFun_eq_coe 2026-03-07 22:58:44 401ee04 chore: refactor `CartesianMonoidalCategory` instance on functors (#36331) The `CartesianMonoidalCategory` instance on functors categories to a cartesian monoidal category is bad: it is defined using `ofChosenFiniteProduct`, which redefines a whole `MonoidalCategoryStruct` on the category, instead of using the already existing pointwise monoidal structure from the file `CategoryTheory.Monoidal.FunctorCategory`. The two structures end up being `defeq`, as [Functor.chosenProd](https://leanprover-community.github.io/mathlib4_docs/Mathlib/CategoryTheory/Monoidal/Cartesian/FunctorCategory.html#CategoryTheory.Functor.chosenProd) is defeq to the pointwise tensor product, but this defeq requires unfolding a few defs to be seen. This PR deprecates the `Functor.chosenProd` and `Functor.chosenTerminal` and use the underlying pointwise monoidal structure for the instance underlying the cartesian monoidal category instance. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Monoidal/Cartesian/FunctorCategory.lean - def CategoryTheory.Functor.chosenProd.fst - def CategoryTheory.Functor.chosenProd.isLimit - def CategoryTheory.Functor.chosenProd.snd - def CategoryTheory.Functor.chosenProd - def CategoryTheory.Functor.chosenTerminalIsTerminal 2026-03-07 22:58:42 e4fa93f feat: definition of a character of a representation (#35100) This PR begins to transfer definitions and theorems about characters from `FDRep` to `Representation`. Once #34888 is merged, the theorems involving isomorphisms of representations will be appropriately restated. ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/Dimension/StrongRankCondition.lean + theorem Module.finrank_eq_zero_of_subsingleton Modified Mathlib/RepresentationTheory/Character.lean + theorem Representation.card_inv_mul_sum_char_eq_finrank + theorem Representation.card_inv_mul_sum_char_mul_char_eq_finrank + theorem Representation.char_conj + theorem Representation.char_dual + theorem Representation.char_iso + theorem Representation.char_linHom + theorem Representation.char_mul_comm + theorem Representation.char_one + theorem Representation.char_orthonormal + theorem Representation.char_tensor + def Representation.character Modified Mathlib/RepresentationTheory/Intertwining.lean + def LinearMap.intertwiningMap_of_isIntertwiningMap + theorem LinearMap.toIntertwiningMap +/- theorem Representation.IntertwiningMap.coe_neg + theorem Representation.IntertwiningMap.coe_ofBijective +/- theorem Representation.IntertwiningMap.coe_zsmul + def Representation.IntertwiningMap.ofBijective - theorem Representation.IntertwiningMap.sub_toLinearMap +/- theorem Representation.IntertwiningMap.toLinearMap_apply + def Representation.IntertwiningMap.toLinearMapl Modified Mathlib/RepresentationTheory/Invariants.lean + def Representation.invariantsEquivIntertwiningMap + theorem Representation.mem_linHom_invariants_iff_isIntertwining Modified Mathlib/RepresentationTheory/Irreducible.lean + theorem Representation.IsIrreducible.finrank_intertwiningMap_self 2026-03-07 22:36:08 9d9eb9f doc(CategoryTheory): fix typos (#36337) Found by `PyCharm`'s code inspection tool. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Abelian/Injective/Resolution.lean Modified Mathlib/CategoryTheory/Comma/Over/Basic.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Pullback/Categorical/Basic.lean Modified Mathlib/CategoryTheory/LocallyCartesianClosed/ExponentiableMorphism.lean Modified Mathlib/CategoryTheory/Sites/Descent/DescentDataAsCoalgebra.lean Modified Mathlib/CategoryTheory/Sites/Descent/Precoverage.lean Modified Mathlib/CategoryTheory/Sites/Hypercover/One.lean Modified Mathlib/CategoryTheory/Sites/Point/Over.lean Modified Mathlib/CategoryTheory/Sites/SheafOfTypes.lean 2026-03-07 22:10:04 447d413 feat(NumberTheory/NumberField/FinitePlaces): `Module.Finite (v.adicCompletion K) (w.adicCompletion L)` (#36067) Let `v : HeightOneSpectrum (𝓞 K)` and `w : HeightOneSpectrum (𝓞 L)` be such that we have `Algebra (v.adicCompletion K) (w.adicCompletion L)`. If this algebra gives continuous scalar multiplication and we have `IsScalarTower K (v.adicCompletion K) (w.adicCompletion L)`, then `w.adicCompletion L` is finite-dimensional over `v.adicCompletion K`. ESTIMATED CHANGES Modified Mathlib/NumberTheory/NumberField/FinitePlaces.lean + theorem IsDedekindDomain.HeightOneSpectrum.embedding_mul_absNorm + theorem IsDedekindDomain.HeightOneSpectrum.equivHeightOneSpectrum_symm_apply + theorem NumberField.FinitePlace.add_le + theorem NumberField.FinitePlace.coe_apply + theorem NumberField.FinitePlace.embedding_apply + theorem NumberField.FinitePlace.hasFiniteMulSupport + theorem NumberField.FinitePlace.hasFiniteMulSupport_int + theorem NumberField.FinitePlace.isFinitePlace + theorem NumberField.FinitePlace.maximalIdeal_inj + theorem NumberField.FinitePlace.maximalIdeal_injective + theorem NumberField.FinitePlace.maximalIdeal_mk + theorem NumberField.FinitePlace.mk_apply + theorem NumberField.FinitePlace.mk_eq_iff + theorem NumberField.FinitePlace.mk_maximalIdeal + theorem NumberField.FinitePlace.norm_def + theorem NumberField.FinitePlace.norm_embedding' + theorem NumberField.FinitePlace.norm_embedding + theorem NumberField.FinitePlace.norm_embedding_eq + theorem NumberField.FinitePlace.norm_embedding_int + theorem NumberField.FinitePlace.norm_eq_one_iff_notMem + theorem NumberField.FinitePlace.norm_le_one + theorem NumberField.FinitePlace.norm_lt_one_iff_mem + theorem NumberField.FinitePlace.pos_iff + def NumberField.FinitePlace + def NumberField.IsFinitePlace - theorem NumberField.RingOfIntegers.HeightOneSpectrum.FinitePlace.add_le - theorem NumberField.RingOfIntegers.HeightOneSpectrum.FinitePlace.coe_apply - theorem NumberField.RingOfIntegers.HeightOneSpectrum.FinitePlace.embedding_apply - theorem NumberField.RingOfIntegers.HeightOneSpectrum.FinitePlace.hasFiniteMulSupport - theorem NumberField.RingOfIntegers.HeightOneSpectrum.FinitePlace.hasFiniteMulSupport_int - theorem NumberField.RingOfIntegers.HeightOneSpectrum.FinitePlace.isFinitePlace - theorem NumberField.RingOfIntegers.HeightOneSpectrum.FinitePlace.maximalIdeal_inj - theorem NumberField.RingOfIntegers.HeightOneSpectrum.FinitePlace.maximalIdeal_injective - theorem NumberField.RingOfIntegers.HeightOneSpectrum.FinitePlace.maximalIdeal_mk - theorem NumberField.RingOfIntegers.HeightOneSpectrum.FinitePlace.mk_apply - theorem NumberField.RingOfIntegers.HeightOneSpectrum.FinitePlace.mk_eq_iff - theorem NumberField.RingOfIntegers.HeightOneSpectrum.FinitePlace.mk_maximalIdeal - theorem NumberField.RingOfIntegers.HeightOneSpectrum.FinitePlace.norm_def - theorem NumberField.RingOfIntegers.HeightOneSpectrum.FinitePlace.norm_embedding' - theorem NumberField.RingOfIntegers.HeightOneSpectrum.FinitePlace.norm_embedding - theorem NumberField.RingOfIntegers.HeightOneSpectrum.FinitePlace.norm_embedding_eq - theorem NumberField.RingOfIntegers.HeightOneSpectrum.FinitePlace.norm_embedding_int - theorem NumberField.RingOfIntegers.HeightOneSpectrum.FinitePlace.norm_eq_one_iff_notMem - theorem NumberField.RingOfIntegers.HeightOneSpectrum.FinitePlace.norm_le_one - theorem NumberField.RingOfIntegers.HeightOneSpectrum.FinitePlace.norm_lt_one_iff_mem - theorem NumberField.RingOfIntegers.HeightOneSpectrum.FinitePlace.pos_iff - def NumberField.RingOfIntegers.HeightOneSpectrum.FinitePlace - theorem NumberField.RingOfIntegers.HeightOneSpectrum.IsDedekindDomain.HeightOneSpectrum.embedding_mul_absNorm - theorem NumberField.RingOfIntegers.HeightOneSpectrum.IsDedekindDomain.HeightOneSpectrum.equivHeightOneSpectrum_symm_apply - def NumberField.RingOfIntegers.HeightOneSpectrum.IsFinitePlace - theorem NumberField.RingOfIntegers.HeightOneSpectrum.RingOfIntegers.HeightOneSpectrum.adicAbv_add_le_max - theorem NumberField.RingOfIntegers.HeightOneSpectrum.RingOfIntegers.HeightOneSpectrum.adicAbv_intCast_le_one - theorem NumberField.RingOfIntegers.HeightOneSpectrum.RingOfIntegers.HeightOneSpectrum.adicAbv_natCast_le_one + theorem NumberField.RingOfIntegers.HeightOneSpectrum.adicAbv_add_le_max + theorem NumberField.RingOfIntegers.HeightOneSpectrum.adicAbv_intCast_le_one + theorem NumberField.RingOfIntegers.HeightOneSpectrum.adicAbv_natCast_le_one - theorem NumberField.RingOfIntegers.HeightOneSpectrum.isFinitePlace_iff - theorem NumberField.RingOfIntegers.HeightOneSpectrum.rankOne_hom'_def - theorem NumberField.RingOfIntegers.HeightOneSpectrum.toNNReal_valued_eq_adicAbv + theorem NumberField.isFinitePlace_iff + theorem NumberField.rankOne_hom'_def + theorem NumberField.toNNReal_valued_eq_adicAbv Modified Mathlib/RingTheory/DedekindDomain/AdicValuation.lean + theorem IsDedekindDomain.HeightOneSpectrum.denseRange_algebraMap 2026-03-07 21:35:10 db6061f feat: `Set.BijOn.ncard_eq` (#36296) ESTIMATED CHANGES Modified Mathlib/Data/Set/Card.lean + theorem Set.BijOn.ncard_eq 2026-03-07 21:35:08 3d34876 feat(AlgebraicGeometry/Sites): the fpqc topology is subcanonical (#36240) From Proetale. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/AlgebraicGeometry/EffectiveEpi.lean Added Mathlib/AlgebraicGeometry/Sites/Fpqc.lean + theorem AlgebraicGeometry.Scheme.Hom.singleton_mem_fppfPrecoverage + theorem AlgebraicGeometry.Scheme.Hom.singleton_mem_fpqcPrecoverage + def AlgebraicGeometry.Scheme.fppfPrecoverage + theorem AlgebraicGeometry.Scheme.fppfPrecoverage_eq_inf + theorem AlgebraicGeometry.Scheme.fppfPrecoverage_le_fpqcPrecoverage + theorem AlgebraicGeometry.Scheme.fppfTopology_le_fpqcTopology + def AlgebraicGeometry.Scheme.fpqcPrecoverage + theorem AlgebraicGeometry.Scheme.fpqcTopology_eq_propQCTopology + theorem AlgebraicGeometry.Scheme.zariskiPrecoverage_le_fppfPrecoverage + theorem AlgebraicGeometry.Scheme.zariskiPrecoverage_le_fpqcPrecoverage + theorem AlgebraicGeometry.Scheme.zariskiTopology_le_fpqcTopology Modified Mathlib/CategoryTheory/Sites/Canonical.lean + theorem CategoryTheory.GrothendieckTopology.Subcanonical.of_le Modified Mathlib/CategoryTheory/Sites/EffectiveEpimorphic.lean + theorem CategoryTheory.Presieve.EffectiveEpimorphic.iff_forall_isSheafFor_yoneda + theorem CategoryTheory.Presieve.EffectiveEpimorphic.isSheafFor_of_isRepresentable + theorem CategoryTheory.Presieve.IsSheafFor.singleton_of_isRepresentable_of_effectiveEpi + theorem CategoryTheory.Sieve.EffectiveEpimorphic.iff_forall_isSheafFor_yoneda Modified Mathlib/CategoryTheory/Sites/IsSheafFor.lean + theorem CategoryTheory.Presieve.isSheafFor_iff_of_nat_equiv Modified Mathlib/CategoryTheory/Sites/SheafOfTypes.lean + theorem CategoryTheory.Presieve.isSheafFor_comp_uliftFunctor_iff 2026-03-07 21:11:07 5abab3d chore(CategoryTheory/Limits/Cones): address use of `simps!` (#36322) There was a TODO that `simps` didn't work, but it seems that it does now. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Limits/Cones.lean - theorem CategoryTheory.Limits.coconeOfConeLeftOp_ι_app 2026-03-07 21:00:02 8040154 feat(Algebra/Homology/SpectralObject): differentials on pages (#36032) Compositions of five morphisms in the index category of a spectral object give differentials, which eventually will be the differentials on each page of the constructed spectral sequences attached to spectral objects in abelian categories. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Homology/SpectralObject/Differentials.lean + theorem CategoryTheory.Abelian.SpectralObject.cyclesMap_Ψ + theorem CategoryTheory.Abelian.SpectralObject.cyclesMap_Ψ_exact + theorem CategoryTheory.Abelian.SpectralObject.d_EIsoH_hom + theorem CategoryTheory.Abelian.SpectralObject.d_d + theorem CategoryTheory.Abelian.SpectralObject.d_ιE_fromOpcycles + theorem CategoryTheory.Abelian.SpectralObject.sequenceΨ_exact + theorem CategoryTheory.Abelian.SpectralObject.toCycles_Ψ + theorem CategoryTheory.Abelian.SpectralObject.toCycles_πE_d + theorem CategoryTheory.Abelian.SpectralObject.Ψ_fromOpcycles + theorem CategoryTheory.Abelian.SpectralObject.Ψ_opcyclesMap + theorem CategoryTheory.Abelian.SpectralObject.Ψ_opcyclesMap_exact + theorem CategoryTheory.Abelian.SpectralObject.πE_EIsoH_hom + theorem CategoryTheory.Abelian.SpectralObject.πE_d_ιE 2026-03-07 20:02:37 1b6e7d4 chore(CategoryTheory/Sites): API for the trivial sieve and the trivial topology (#36325) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Sites/Closed.lean Modified Mathlib/CategoryTheory/Sites/Grothendieck.lean + theorem CategoryTheory.GrothendieckTopology.bot_eq_top_iff_isEmpty + theorem CategoryTheory.GrothendieckTopology.bot_lt_top_iff_nonempty + theorem CategoryTheory.GrothendieckTopology.eq_top_iff + theorem CategoryTheory.GrothendieckTopology.eq_top_of_isEmpty Modified Mathlib/CategoryTheory/Sites/Hypercover/Zero.lean + def CategoryTheory.PreZeroHypercover.empty + theorem CategoryTheory.PreZeroHypercover.presieve₀_empty Modified Mathlib/CategoryTheory/Sites/Over.lean + theorem CategoryTheory.Sieve.overEquiv_bot + theorem CategoryTheory.Sieve.overEquiv_symm_bot Modified Mathlib/CategoryTheory/Sites/Sieves.lean + theorem CategoryTheory.Presieve.ofArrows_of_isEmpty + theorem CategoryTheory.Sieve.arrows_bot + theorem CategoryTheory.Sieve.arrows_eq_bot_iff + theorem CategoryTheory.Sieve.bot_apply + theorem CategoryTheory.Sieve.generate_eq_bot_iff + theorem CategoryTheory.Sieve.pullback_bot + theorem CategoryTheory.Sieve.pushforward_bot + theorem CategoryTheory.Sieve.pushforward_eq_bot_iff + theorem CategoryTheory.bot_apply 2026-03-07 17:46:05 bf66be1 chore: golf using `grind` (#35528) The goal of this golfing PR is to decrease the number of times lemmas are called explicitly (replacing calls to lemmas with calls to tactics). Any decrease in compilation time is a welcome side effect, although it is not a primary objective. Trace profiling results (differences <20 ms considered measurement noise): * `CochainComplex.HomComplex.mem_coboundaries_iff`: <20 ms before, 43 ms after * `Affine.Simplex.Scalene.dist_ne`: unchanged 🎉 * `List.next_getLast_cons`: unchanged 🎉 * `AbsolutelyContinuousOnInterval.biUnion_uIoc_subset_of_mem_disjWithin`: unchanged 🎉 * `Filter.high_scores`: 109 ms before, 139 ms after This golfing PR is batched under the following guidelines: * Up to ~5 changed files per PR * Up to ~25 changed declarations per PR * Up to ~100 changed lines per PR ESTIMATED CHANGES Modified Mathlib/Algebra/Homology/HomotopyCategory/HomComplexCohomology.lean Modified Mathlib/Analysis/Normed/Affine/Simplex.lean Modified Mathlib/Combinatorics/SimpleGraph/Regularity/Chunk.lean Modified Mathlib/Data/List/Cycle.lean Modified Mathlib/MeasureTheory/Function/AbsolutelyContinuous.lean Modified Mathlib/Order/Filter/AtTopBot/Finite.lean 2026-03-07 17:17:20 fb11e0d feat(Data/Nat/Choose/Central): `centralBinom n ≤ 4 ^ n` (#36311) ESTIMATED CHANGES Modified Mathlib/Data/Nat/Choose/Central.lean + theorem Nat.centralBinom_le_four_pow + theorem Nat.centralBinom_lt_four_pow 2026-03-07 15:19:05 3bad2b8 ci: Use local action tied to the running ref to get mathlib-ci with a stable SHA (#36266) This PR removes duplicated `mathlib-ci` checkout wiring from workflows and makes the pinned `mathlib-ci` ref come from one source of truth (a local action that should be used for this purpose) Why: - Eliminates SHA duplication across many workflow files. - Makes ref bumps a single-file change. - Reduces drift and copy/paste errors. Notes - Existing per-workflow ref overrides are preserved (e.g. `inputs.mathlib_ci_ref`, `master` in validator workflow, env override in nightly failure workflow). - Checkout paths are kept separate (`workflow-actions`, `ci-tools`, `tools-branch`, `pr-branch`) to avoid overlap. This also bumps the mathlib-ci ref from `4af75ac` to `261ca4c`. Prepared with Codex ESTIMATED CHANGES Added .github/actions/get-mathlib-ci/README.md Added .github/actions/get-mathlib-ci/action.yml Modified .github/workflows/PR_summary.yml Modified .github/workflows/build_template.yml Modified .github/workflows/commit_verification.yml Modified .github/workflows/latest_import.yml Modified .github/workflows/long_file_report.yml Modified .github/workflows/maintainer_bors.yml Modified .github/workflows/maintainer_bors_wf_run.yml Modified .github/workflows/maintainer_merge.yml Modified .github/workflows/maintainer_merge_wf_run.yml Modified .github/workflows/nightly-regression-report.yml Modified .github/workflows/nightly_bump_and_merge.yml Modified .github/workflows/nightly_detect_failure.yml Modified .github/workflows/technical_debt_metrics.yml Modified .github/workflows/update_dependencies_zulip.yml Modified .github/workflows/validate_mathlib_ci_paths.yml Modified .github/workflows/weekly-lints.yml Modified .github/workflows/zulip_emoji_ci_status.yaml Modified .github/workflows/zulip_emoji_closed_pr.yaml Modified .github/workflows/zulip_emoji_labelling.yaml Modified .github/workflows/zulip_emoji_merge_delegate.yaml 2026-03-07 15:19:03 7e1db1e feat(CategoryTheory/Triangulated/TStructure): the spectral object (#35370) Given a t-structure `t` on a triangulated category `C` and any object `X : C`, we define a spectral object `t.spectralObject X : SpectralObject C EInt` which roughly consists of all possible truncations of `X`. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/CategoryTheory/Triangulated/TStructure/Basic.lean Modified Mathlib/CategoryTheory/Triangulated/TStructure/ETrunc.lean + theorem CategoryTheory.Triangulated.TStructure.eTruncLT_obj_map_eTruncLTι_app_eTruncLT_map_app Added Mathlib/CategoryTheory/Triangulated/TStructure/SpectralObject.lean + theorem CategoryTheory.Triangulated.TStructure.spectralObject_δ + theorem CategoryTheory.Triangulated.TStructure.triangleω₁δ_distinguished + theorem CategoryTheory.Triangulated.TStructure.ω₁δ_naturality 2026-03-07 14:39:57 3081583 feat(Algebra/BigOperators/Finprod): Nat.cast_finprod' (#36232) This adds a version of `Nat.cast_finprod` that also works for infinite index sets. ESTIMATED CHANGES Modified Mathlib/Algebra/BigOperators/Finprod.lean + theorem Nat.cast_finprod' Modified Mathlib/Algebra/FiniteSupport/Basic.lean + theorem Function.HasFiniteMulSupport.of_comp 2026-03-07 13:38:52 3194853 chore(CategoryTheory/Limits/Cones): rename namespace from `Cones` to `Cone` (#36293) This PR changes the `CategoryTheory.Limits.Cones` and `CategoryTheory.Limits.Cocones` namespaces by removing the `s` at the end. This is so that the namespace correspond to an actual declaration, namely `CategoryTheory.Limits.Cone` and `CategoryTheory.Limits.Cocone`. This makes more sense for the automatic name translation used by `to_dual`. The fixes in other files were done using a text-based search & replace. Note: `Cones.extend` has been renamed to `Cone.extendHom`, in order to not clash with the already existing `Cone.extend`. ESTIMATED CHANGES Modified Mathlib/Algebra/Category/Grp/AB.lean Modified Mathlib/Algebra/Category/ModuleCat/Kernels.lean Modified Mathlib/Algebra/Category/ModuleCat/Sheaf/Quasicoherent.lean Modified Mathlib/Algebra/Category/MonCat/Limits.lean Modified Mathlib/Algebra/Homology/GrothendieckAbelian.lean Modified Mathlib/Algebra/Homology/ShortComplex/LeftHomology.lean Modified Mathlib/Algebra/Homology/ShortComplex/Limits.lean Modified Mathlib/Algebra/Homology/ShortComplex/RightHomology.lean Modified Mathlib/AlgebraicGeometry/AffineTransitionLimit.lean Modified Mathlib/AlgebraicGeometry/ColimitsOver.lean Modified Mathlib/AlgebraicGeometry/Morphisms/Flat.lean Modified Mathlib/AlgebraicTopology/FundamentalGroupoid/Product.lean Modified Mathlib/AlgebraicTopology/RelativeCellComplex/AttachCells.lean Modified Mathlib/CategoryTheory/Abelian/GrothendieckAxioms/Basic.lean Modified Mathlib/CategoryTheory/Abelian/GrothendieckCategory/Subobject.lean Modified Mathlib/CategoryTheory/Adhesive/Basic.lean Modified Mathlib/CategoryTheory/Adjunction/Limits.lean +/- def CategoryTheory.Adjunction.functorialityAdjunction' +/- def CategoryTheory.Adjunction.functorialityAdjunction Modified Mathlib/CategoryTheory/Category/Cat/Limit.lean Modified Mathlib/CategoryTheory/EffectiveEpi/Coproduct.lean Modified Mathlib/CategoryTheory/Functor/Flat.lean Modified Mathlib/CategoryTheory/Functor/KanExtension/DenseAt.lean Modified Mathlib/CategoryTheory/Functor/KanExtension/Pointwise.lean Modified Mathlib/CategoryTheory/Functor/KanExtension/Preserves.lean Modified Mathlib/CategoryTheory/Functor/ReflectsIso/Limits.lean Modified Mathlib/CategoryTheory/Functor/RegularEpi.lean Modified Mathlib/CategoryTheory/GlueData.lean Modified Mathlib/CategoryTheory/GradedObject/Trifunctor.lean Modified Mathlib/CategoryTheory/GuitartExact/KanExtension.lean Modified Mathlib/CategoryTheory/Limits/Comma.lean Modified Mathlib/CategoryTheory/Limits/ConeCategory.lean Modified Mathlib/CategoryTheory/Limits/Cones.lean + theorem CategoryTheory.Limits.Cocone.cocone_iso_of_hom_iso + def CategoryTheory.Limits.Cocone.equivalenceOfReindexing + def CategoryTheory.Limits.Cocone.eta + def CategoryTheory.Limits.Cocone.ext + def CategoryTheory.Limits.Cocone.extendComp + def CategoryTheory.Limits.Cocone.extendHom + def CategoryTheory.Limits.Cocone.extendId + def CategoryTheory.Limits.Cocone.extendIso + def CategoryTheory.Limits.Cocone.forget + def CategoryTheory.Limits.Cocone.functoriality + def CategoryTheory.Limits.Cocone.functorialityCompFunctoriality + def CategoryTheory.Limits.Cocone.functorialityEquivalence + def CategoryTheory.Limits.Cocone.precompose + def CategoryTheory.Limits.Cocone.precomposeComp + def CategoryTheory.Limits.Cocone.precomposeEquivalence + def CategoryTheory.Limits.Cocone.precomposeId + def CategoryTheory.Limits.Cocone.whiskering + def CategoryTheory.Limits.Cocone.whiskeringEquivalence - theorem CategoryTheory.Limits.Cocones.cocone_iso_of_hom_iso - def CategoryTheory.Limits.Cocones.equivalenceOfReindexing - def CategoryTheory.Limits.Cocones.eta - def CategoryTheory.Limits.Cocones.ext - def CategoryTheory.Limits.Cocones.extend - def CategoryTheory.Limits.Cocones.extendComp - def CategoryTheory.Limits.Cocones.extendId - def CategoryTheory.Limits.Cocones.extendIso - def CategoryTheory.Limits.Cocones.forget - def CategoryTheory.Limits.Cocones.functoriality - def CategoryTheory.Limits.Cocones.functorialityCompFunctoriality - def CategoryTheory.Limits.Cocones.functorialityEquivalence - def CategoryTheory.Limits.Cocones.precompose - def CategoryTheory.Limits.Cocones.precomposeComp - def CategoryTheory.Limits.Cocones.precomposeEquivalence - def CategoryTheory.Limits.Cocones.precomposeId - def CategoryTheory.Limits.Cocones.whiskering - def CategoryTheory.Limits.Cocones.whiskeringEquivalence + theorem CategoryTheory.Limits.Cone.cone_iso_of_hom_iso + def CategoryTheory.Limits.Cone.equivalenceOfReindexing + def CategoryTheory.Limits.Cone.eta + def CategoryTheory.Limits.Cone.ext + def CategoryTheory.Limits.Cone.extendComp + def CategoryTheory.Limits.Cone.extendHom + def CategoryTheory.Limits.Cone.extendId + def CategoryTheory.Limits.Cone.extendIso + def CategoryTheory.Limits.Cone.forget + def CategoryTheory.Limits.Cone.functoriality + def CategoryTheory.Limits.Cone.functorialityCompFunctoriality + def CategoryTheory.Limits.Cone.functorialityEquivalence + def CategoryTheory.Limits.Cone.postcompose + def CategoryTheory.Limits.Cone.postcomposeComp + def CategoryTheory.Limits.Cone.postcomposeEquivalence + def CategoryTheory.Limits.Cone.postcomposeId + def CategoryTheory.Limits.Cone.whiskering + def CategoryTheory.Limits.Cone.whiskeringEquivalence - theorem CategoryTheory.Limits.Cones.cone_iso_of_hom_iso - def CategoryTheory.Limits.Cones.equivalenceOfReindexing - def CategoryTheory.Limits.Cones.eta - def CategoryTheory.Limits.Cones.ext - def CategoryTheory.Limits.Cones.extend - def CategoryTheory.Limits.Cones.extendComp - def CategoryTheory.Limits.Cones.extendId - def CategoryTheory.Limits.Cones.extendIso - def CategoryTheory.Limits.Cones.forget - def CategoryTheory.Limits.Cones.functoriality - def CategoryTheory.Limits.Cones.functorialityCompFunctoriality - def CategoryTheory.Limits.Cones.functorialityEquivalence - def CategoryTheory.Limits.Cones.postcompose - def CategoryTheory.Limits.Cones.postcomposeComp - def CategoryTheory.Limits.Cones.postcomposeEquivalence - def CategoryTheory.Limits.Cones.postcomposeId - def CategoryTheory.Limits.Cones.whiskering - def CategoryTheory.Limits.Cones.whiskeringEquivalence Modified Mathlib/CategoryTheory/Limits/Connected.lean Modified Mathlib/CategoryTheory/Limits/Constructions/EventuallyConstant.lean Modified Mathlib/CategoryTheory/Limits/Constructions/Filtered.lean Modified Mathlib/CategoryTheory/Limits/Constructions/FiniteProductsOfBinaryProducts.lean Modified Mathlib/CategoryTheory/Limits/Constructions/LimitsOfProductsAndEqualizers.lean Modified Mathlib/CategoryTheory/Limits/Constructions/Over/Connected.lean Modified Mathlib/CategoryTheory/Limits/Constructions/Over/Products.lean Modified Mathlib/CategoryTheory/Limits/Creates.lean Modified Mathlib/CategoryTheory/Limits/FilteredColimitCommutesFiniteLimit.lean Modified Mathlib/CategoryTheory/Limits/Final.lean Modified Mathlib/CategoryTheory/Limits/FormalCoproducts/Basic.lean Modified Mathlib/CategoryTheory/Limits/FormalCoproducts/Cech.lean Modified Mathlib/CategoryTheory/Limits/Fubini.lean Modified Mathlib/CategoryTheory/Limits/FunctorCategory/Basic.lean Modified Mathlib/CategoryTheory/Limits/FunctorCategory/BinaryBiproducts.lean Modified Mathlib/CategoryTheory/Limits/FunctorCategory/Shapes/Pullbacks.lean Modified Mathlib/CategoryTheory/Limits/FunctorCategory/Shapes/Terminal.lean Modified Mathlib/CategoryTheory/Limits/HasLimits.lean Modified Mathlib/CategoryTheory/Limits/IsLimit.lean Modified Mathlib/CategoryTheory/Limits/MonoCoprod.lean Modified Mathlib/CategoryTheory/Limits/Presentation.lean Modified Mathlib/CategoryTheory/Limits/Preserves/Basic.lean Modified Mathlib/CategoryTheory/Limits/Preserves/Bifunctor.lean Modified Mathlib/CategoryTheory/Limits/Preserves/Shapes/BinaryProducts.lean Modified Mathlib/CategoryTheory/Limits/Preserves/Shapes/Biproducts.lean Modified Mathlib/CategoryTheory/Limits/Preserves/Shapes/Kernels.lean Modified Mathlib/CategoryTheory/Limits/Preserves/Shapes/Over.lean Modified Mathlib/CategoryTheory/Limits/Preserves/Shapes/Products.lean Modified Mathlib/CategoryTheory/Limits/Preserves/Shapes/Pullbacks.lean Modified Mathlib/CategoryTheory/Limits/Presheaf.lean Modified Mathlib/CategoryTheory/Limits/Shapes/BinaryBiproducts.lean Modified Mathlib/CategoryTheory/Limits/Shapes/BinaryProducts.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Biproducts.lean Modified Mathlib/CategoryTheory/Limits/Shapes/End.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Equalizers.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Kernels.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Multiequalizer.lean Modified Mathlib/CategoryTheory/Limits/Shapes/NormalMono/Basic.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Opposites/Equalizers.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Opposites/Products.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Opposites/Pullbacks.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Preorder/TransfiniteCompositionOfShape.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Preorder/WellOrderContinuous.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Products.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Pullback/Connected.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Pullback/Cospan.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Pullback/EquifiberedLimits.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Pullback/IsPullback/Basic.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Pullback/PullbackCone.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Reflexive.lean Modified Mathlib/CategoryTheory/Limits/Shapes/WidePullbacks.lean Modified Mathlib/CategoryTheory/Limits/Types/Pushouts.lean Modified Mathlib/CategoryTheory/Limits/VanKampen.lean Modified Mathlib/CategoryTheory/Localization/FiniteProducts.lean Modified Mathlib/CategoryTheory/Monad/Limits.lean Modified Mathlib/CategoryTheory/Monoidal/Cartesian/FunctorCategory.lean Modified Mathlib/CategoryTheory/Monoidal/Closed/Ideal.lean Modified Mathlib/CategoryTheory/Monoidal/ExternalProduct/KanExtension.lean Modified Mathlib/CategoryTheory/Monoidal/Internal/Limits.lean Modified Mathlib/CategoryTheory/Monoidal/Limits/Basic.lean Modified Mathlib/CategoryTheory/Monoidal/Limits/Colimits.lean Modified Mathlib/CategoryTheory/MorphismProperty/Ind.lean Modified Mathlib/CategoryTheory/MorphismProperty/Limits.lean Modified Mathlib/CategoryTheory/ObjectProperty/FiniteProducts.lean Modified Mathlib/CategoryTheory/Preadditive/Biproducts.lean Modified Mathlib/CategoryTheory/Preadditive/LeftExact.lean Modified Mathlib/CategoryTheory/Presentable/Dense.lean Modified Mathlib/CategoryTheory/Presentable/IsCardinalFiltered.lean Modified Mathlib/CategoryTheory/Presentable/StrongGenerator.lean Modified Mathlib/CategoryTheory/Sites/CartesianMonoidal.lean Modified Mathlib/CategoryTheory/Sites/Coherent/RegularSheaves.lean Modified Mathlib/CategoryTheory/Sites/CompatiblePlus.lean Modified Mathlib/CategoryTheory/Sites/CoverPreserving.lean Modified Mathlib/CategoryTheory/Sites/Hypercover/One.lean Modified Mathlib/CategoryTheory/Sites/Limits.lean Modified Mathlib/CategoryTheory/Sites/Sheaf.lean Modified Mathlib/CategoryTheory/Sites/Whiskering.lean Modified Mathlib/CategoryTheory/SmallObject/Iteration/Basic.lean Modified Mathlib/CategoryTheory/SmallObject/Iteration/FunctorOfCocone.lean Modified Mathlib/CategoryTheory/SmallObject/TransfiniteIteration.lean Modified Mathlib/CategoryTheory/WithTerminal/Cone.lean Modified Mathlib/Condensed/Light/Epi.lean Modified Mathlib/Geometry/RingedSpace/LocallyRingedSpace/HasColimits.lean Modified Mathlib/Geometry/RingedSpace/OpenImmersion.lean Modified Mathlib/Geometry/RingedSpace/PresheafedSpace/HasColimits.lean Modified Mathlib/Geometry/RingedSpace/Stalks.lean Modified Mathlib/Topology/Algebra/Category/ProfiniteGrp/Limits.lean Modified Mathlib/Topology/Category/LightProfinite/AsLimit.lean Modified Mathlib/Topology/Category/Profinite/AsLimit.lean Modified Mathlib/Topology/Category/Profinite/Nobeling/Basic.lean Modified Mathlib/Topology/Category/Profinite/Product.lean Modified Mathlib/Topology/Category/TopCat/Limits/Basic.lean Modified Mathlib/Topology/Sheaves/SheafCondition/EqualizerProducts.lean Modified Mathlib/Topology/Sheaves/SheafCondition/PairwiseIntersections.lean 2026-03-07 11:26:57 9c26b87 feat(MulChar): generalize duality results on finite abelian groups to multiplicative characters (#33878) ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Submonoid/Units.lean + theorem IsUnit.coe Modified Mathlib/NumberTheory/MulChar/Basic.lean - def MulChar.mulEquivToUnitHom + theorem MulChar.restrict_eq_one_iff Modified Mathlib/NumberTheory/MulChar/Duality.lean + theorem MulChar.apply_mulCharEquiv + theorem MulChar.mem_subgroupOrderIsoSubgroupMulChar_iff + theorem MulChar.mem_subgroupOrderIsoSubgroupMulChar_symm_iff + theorem MulChar.mulCharEquiv_symm_apply_apply + theorem MulChar.restrictHom_surjective Modified Mathlib/NumberTheory/MulChar/Lemmas.lean +/- theorem MulChar.eq_iff + theorem MulChar.restrict_ofUnitHom 2026-03-07 10:30:55 1a3385b refactor(Distributions): remove "WithOrder" duplication (#36301) As explained in https://leanprover-community.github.io/mathlib4_docs/Mathlib/Analysis/Distribution/Distribution.html#Order-of-distributions, we consider test functions of finite regularities in order to track the change of regularities of certain operations (which in turns gives the order properties of the transpose operation at the level of distributions). To "hide" this to the user, my original approach was to duplicate everything: the `WithOrder` variant would track the regularities, while the default variant would just apply to smooth functions. @j-loreaux suggested avoiding some of this duplication by making the latter an abbreviation for the former. After some thoughts and discussion with @fpvandoorn, I came to the conclusion that we should just remove the specialization to the smooth case for now, as we will see later what is most convenient in practice. ESTIMATED CHANGES Modified Mathlib/Analysis/Distribution/ContDiffMapSupportedIn.lean + theorem ContDiffMapSupportedIn.continuous_iff_comp_order_le - theorem ContDiffMapSupportedIn.continuous_iff_comp_withOrder +/- theorem ContDiffMapSupportedIn.iteratedFDerivLM_apply + theorem ContDiffMapSupportedIn.iteratedFDerivLM_apply_of_gt + theorem ContDiffMapSupportedIn.iteratedFDerivLM_apply_of_le - theorem ContDiffMapSupportedIn.iteratedFDerivLM_eq_withOrder - theorem ContDiffMapSupportedIn.iteratedFDerivWithOrderLM_apply - theorem ContDiffMapSupportedIn.iteratedFDerivWithOrderLM_apply_of_gt - theorem ContDiffMapSupportedIn.iteratedFDerivWithOrderLM_apply_of_le - theorem ContDiffMapSupportedIn.iteratedFDerivWithOrderLM_eq_of_scalars +/- theorem ContDiffMapSupportedIn.norm_iteratedFDeriv_apply_le_seminorm + theorem ContDiffMapSupportedIn.norm_iteratedFDeriv_apply_le_seminorm_top - theorem ContDiffMapSupportedIn.norm_iteratedFDeriv_apply_le_seminorm_withOrder +/- theorem ContDiffMapSupportedIn.structureMapCLM_apply - theorem ContDiffMapSupportedIn.structureMapCLM_apply_withOrder + theorem ContDiffMapSupportedIn.structureMapCLM_top_apply +/- theorem ContDiffMapSupportedIn.structureMapLM_apply - theorem ContDiffMapSupportedIn.structureMapLM_apply_withOrder + theorem ContDiffMapSupportedIn.structureMapLM_top_apply 2026-03-07 09:38:41 1d042d3 feat(CategoryTheory/Triangulated/TStructure): properties of truncations indexed by `EInt` that use the octahedron axiom (#35369) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Triangulated/TStructure/ETrunc.lean + theorem CategoryTheory.Triangulated.TStructure.eTruncGEIsoGEGE_hom_inv_id_app + theorem CategoryTheory.Triangulated.TStructure.eTruncGEIsoGEGE_inv_hom_id_app + theorem CategoryTheory.Triangulated.TStructure.eTruncLTGEIsoGELT_hom_app_fac' + theorem CategoryTheory.Triangulated.TStructure.eTruncLTGEIsoGELT_hom_app_fac + theorem CategoryTheory.Triangulated.TStructure.eTruncLTGEIsoGELT_hom_naturality + theorem CategoryTheory.Triangulated.TStructure.eTruncLTGEIsoGELT_naturality_app + theorem CategoryTheory.Triangulated.TStructure.eTruncLTLTIsoLT_hom_inv_id_app + theorem CategoryTheory.Triangulated.TStructure.eTruncLTLTIsoLT_inv_hom_id_app + theorem CategoryTheory.Triangulated.TStructure.eTruncLTLTIsoLT_inv_hom_id_app_eTruncLT_obj + theorem CategoryTheory.Triangulated.TStructure.isIso_eTruncGEIsoGEGE + theorem CategoryTheory.Triangulated.TStructure.isIso_eTruncGE_obj_map_truncGEπ_app + theorem CategoryTheory.Triangulated.TStructure.isIso_eTruncLTLTIsoLT + theorem CategoryTheory.Triangulated.TStructure.isIso_eTruncLT_obj_map_truncLTπ_app 2026-03-06 23:58:12 6e9770b feat(ModularForm/NumberTheory/Delta): Define the delta function (#34881) We define the Delta function on the upper half plane and show how it transforms under the slash operator, this is in preparation to proving it is a modular form. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/Complex/SqrtDeriv.lean + theorem Complex.continuousAt_sqrt + theorem Complex.continuousOn_sqrt + theorem Complex.derivWithin_sqrt + theorem Complex.deriv_sqrt + theorem Complex.differentiableAt_sqrt + theorem Complex.differentiableOn_sqrt + theorem Complex.differentiableWithinAt_sqrt + theorem Complex.hasDerivAt_sqrt + theorem Complex.hasDerivWithinAt_sqrt + theorem Complex.hasStrictDerivAt_sqrt Modified Mathlib/Analysis/Complex/UpperHalfPlane/Basic.lean + theorem UpperHalfPlane.mem_slitPlane Modified Mathlib/Analysis/RCLike/Sqrt.lean + theorem sqrt_eq_exp Added Mathlib/NumberTheory/ModularForms/Delta.lean + theorem ModularForm.csqrt_I_pow_24 + theorem ModularForm.csqrt_pow_24_eq + theorem ModularForm.delta_S_invariant + theorem ModularForm.delta_T_invariant + theorem ModularForm.delta_eq_q_prod + theorem ModularForm.delta_ne_zero + theorem ModularForm.eta_comp_eqOn_const_mul_csqrt_eta + theorem ModularForm.eta_comp_eq_csqrt_I_inv + theorem ModularForm.logDeriv_eta_comp_div_eq + theorem ModularForm.logDeriv_eta_comp_eq_logDeriv_csqrt_eta Modified Mathlib/Topology/Algebra/InfiniteSum/Basic.lean + theorem HasProd.pow + theorem Multipliable.pow + theorem Multipliable.tprod_pow 2026-03-06 23:17:20 1b2df6c feat: some lemmas about finite index subgroups/submodules (#36227) This adds some results on the (quotient by the) image of the `n`th power / multiplication-by-`n` map and related material on the (relative) index of a subgroup / submodule. These are helpful for proving the *Northcott property* of heights on number fields. ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Subgroup/Map.lean + theorem Subgroup.subgroupOf_mono Modified Mathlib/GroupTheory/FiniteAbelian/Basic.lean + theorem Subgroup.finiteIndex_range_powMonoidHom_of_fg + theorem Subgroup.isFiniteRelIndex_map_powMonoidHom_of_fg + theorem Submodule.fg_toAddSubgroup + theorem Submodule.isFiniteRelIndex_of_map_linearMapMulLeft_le Modified Mathlib/GroupTheory/Index.lean + theorem Subgroup.isFiniteRelIndex_iff_finiteIndex + theorem Subgroup.isFiniteRelIndex_iff_relIndex_ne_zero + theorem Subgroup.isFiniteRelIndex_of_le +/- theorem Subgroup.not_finiteIndex_iff Modified Mathlib/GroupTheory/OrderOfElement.lean + theorem Subgroup.pow_relIndex_mem Modified Mathlib/GroupTheory/Torsion.lean + theorem CommGroup.isTorsion_quotient_range_powMonoidHom 2026-03-06 22:57:38 5bf814c feat(CategoryTheory/Sites): adjunction induces adjunction on `Functor.sheafPushforwardContinuous` (#36294) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Sites/Continuous.lean + def CategoryTheory.Adjunction.sheafPushforwardContinuous 2026-03-06 22:33:21 d8810f6 feat(AlgebraicGeometry): functoriality of Proj (#36267) ```lean theorem AlgebraicGeometry.Proj.map_comp : map (g.comp f) (irrelevant_le_map_comp hf hg) = map g hg ≫ map f hf theorem AlgebraicGeometry.Proj.map_id : map (.id 𝒜) (by simp) = 𝟙 (Proj 𝒜) ``` ESTIMATED CHANGES Modified Mathlib/AlgebraicGeometry/GammaSpecAdjunction.lean + theorem AlgebraicGeometry.ext_to_Spec Modified Mathlib/AlgebraicGeometry/ProjectiveSpectrum/Basic.lean Modified Mathlib/AlgebraicGeometry/ProjectiveSpectrum/Functor.lean + theorem AlgebraicGeometry.Proj.awayToSection_comp_appLE + theorem AlgebraicGeometry.Proj.awayι_comp_map + theorem AlgebraicGeometry.Proj.map_comp + theorem AlgebraicGeometry.Proj.map_id + theorem AlgebraicGeometry.Proj.map_preimage_basicOpen + theorem AlgebraicGeometry.Proj.ι_comp_map Modified Mathlib/AlgebraicGeometry/ProjectiveSpectrum/Proper.lean Modified Mathlib/AlgebraicGeometry/Restrict.lean + theorem AlgebraicGeometry.Scheme.Hom.resLE_app_top Modified Mathlib/RingTheory/GradedAlgebra/Homogeneous/Ideal.lean Modified Mathlib/RingTheory/GradedAlgebra/Homogeneous/Maps.lean + theorem HomogeneousIdeal.irrelevant_le_map_comp Modified Mathlib/RingTheory/GradedAlgebra/HomogeneousLocalization.lean + theorem HomogeneousLocalization.Away.map_comp + theorem HomogeneousLocalization.Away.map_id + theorem HomogeneousLocalization.Away.map_map + theorem HomogeneousLocalization.map_comp + theorem HomogeneousLocalization.map_id + theorem HomogeneousLocalization.map_map 2026-03-06 22:04:53 f3179c5 chore(RepresentatioTheory/IntertwiningMap): Add APIs for Equiv and TensorProduct (#36273) ESTIMATED CHANGES Modified Mathlib/RepresentationTheory/Intertwining.lean + theorem Representation.Equiv.apply_symm_apply +/- theorem Representation.Equiv.coe_invFun + theorem Representation.Equiv.coe_symm +/- theorem Representation.Equiv.coe_toIntertwiningMap +/- theorem Representation.Equiv.coe_toLinearMap +/- theorem Representation.Equiv.conj_apply_self + theorem Representation.Equiv.ext + def Representation.Equiv.mk + def Representation.Equiv.refl + theorem Representation.Equiv.refl_apply + def Representation.Equiv.symm + theorem Representation.Equiv.symm_apply_apply + theorem Representation.Equiv.symm_trans + theorem Representation.Equiv.toIntertwiningMap_mk' + theorem Representation.Equiv.toIntertwiningMap_refl + theorem Representation.Equiv.toIntertwiningMap_trans +/- theorem Representation.Equiv.toLinearEquiv_apply + theorem Representation.Equiv.toLinearEquiv_inj + theorem Representation.Equiv.toLinearEquiv_injective + theorem Representation.Equiv.toLinearEquiv_mk' + theorem Representation.Equiv.toLinearMap_mk' + theorem Representation.Equiv.toLinearMap_refl + theorem Representation.Equiv.toLinearMap_symm + theorem Representation.Equiv.toLinearMap_trans + def Representation.Equiv.trans + theorem Representation.Equiv.trans_apply + theorem Representation.Equiv.trans_symm +/- structure Representation.Equiv + theorem Representation.IntertwiningMap.id_apply + def Representation.IntertwiningMap.lTensor + theorem Representation.IntertwiningMap.lTensor_apply + theorem Representation.IntertwiningMap.lTensor_comp_rTensor + theorem Representation.IntertwiningMap.lTensor_id + def Representation.IntertwiningMap.rTensor + theorem Representation.IntertwiningMap.rTensor_apply + theorem Representation.IntertwiningMap.rTensor_comp_lTensor + theorem Representation.IntertwiningMap.rTensor_id - theorem Representation.IntertwiningMap.smul_toLinearMap + def Representation.IntertwiningMap.tensor + theorem Representation.IntertwiningMap.tensor_apply +/- theorem Representation.IntertwiningMap.toLinearMap_apply + theorem Representation.IntertwiningMap.toLinearMap_id + theorem Representation.IntertwiningMap.toLinearMap_lTensor + theorem Representation.IntertwiningMap.toLinearMap_mk + theorem Representation.IntertwiningMap.toLinearMap_rTensor + theorem Representation.IntertwiningMap.toLinearMap_smul + theorem Representation.IntertwiningMap.toLinearMap_tensor + def Representation.TensorProduct.assoc + theorem Representation.TensorProduct.assoc_apply + theorem Representation.TensorProduct.assoc_symm_toLinearMap + def Representation.TensorProduct.comm + theorem Representation.TensorProduct.comm_apply + theorem Representation.TensorProduct.comm_comp_lTensor + theorem Representation.TensorProduct.comm_comp_rTensor + theorem Representation.TensorProduct.comm_symm + def Representation.TensorProduct.lid + theorem Representation.TensorProduct.lid_apply + theorem Representation.TensorProduct.lid_symm_apply + def Representation.TensorProduct.rid + theorem Representation.TensorProduct.rid_apply + theorem Representation.TensorProduct.rid_symm_apply + theorem Representation.TensorProduct.toLinearMap_assoc + theorem Representation.TensorProduct.toLinearMap_comm + theorem Representation.TensorProduct.toLinearMap_lid + theorem Representation.TensorProduct.toLinearMap_rid 2026-03-06 21:32:31 aae3b08 feat(FieldTheory/RatFunc): Lüroth's theorem (#36109) ESTIMATED CHANGES Modified Mathlib/FieldTheory/RatFunc/Luroth.lean + theorem RatFunc.IntermediateField.isAlgebraic_X + theorem RatFunc.Luroth.C_c_mul_φ + theorem RatFunc.Luroth.Q₀_mem_lifts + theorem RatFunc.Luroth.Q₀_mul_Φ + theorem RatFunc.Luroth.Q₀_ne_zero + theorem RatFunc.Luroth.Q₁_mul_Φ + theorem RatFunc.Luroth.Q₁_ne_zero + theorem RatFunc.Luroth.Q₂_map + theorem RatFunc.Luroth.Q₂_mul_Φ + theorem RatFunc.Luroth.Q₂_natDegree + theorem RatFunc.Luroth.Q₂_ne_zero + theorem RatFunc.Luroth.Q₃_map + theorem RatFunc.Luroth.Q₃_mul_Φ + def RatFunc.Luroth.b + theorem RatFunc.Luroth.b_ne_zero + theorem RatFunc.Luroth.c_denom + theorem RatFunc.Luroth.c_ne_zero + theorem RatFunc.Luroth.exists_φ_coeff_not_mem + def RatFunc.Luroth.generatorIndex + theorem RatFunc.Luroth.generator_denom_dvd_c_num + theorem RatFunc.Luroth.generator_eq_coeff + theorem RatFunc.Luroth.le_Φ_coeff_generatorIndex_natDegree + theorem RatFunc.Luroth.le_Φ_coeff_natDegree_natDegree + theorem RatFunc.Luroth.m_le_swap_Φ_natDegree + theorem RatFunc.Luroth.map_Q₁ + theorem RatFunc.Luroth.q_ne_zero + theorem RatFunc.Luroth.swap_Q₁_natDegree + theorem RatFunc.Luroth.swap_Φ_natDegree_eq_θ_natDegree + theorem RatFunc.Luroth.swap_θ + theorem RatFunc.Luroth.Φ'_map + theorem RatFunc.Luroth.Φ'_ne_zero + theorem RatFunc.Luroth.Φ_coeff_generatorIndex + theorem RatFunc.Luroth.Φ_coeff_generatorIndex_ne_zero + theorem RatFunc.Luroth.Φ_coeff_φ_natDegree' + theorem RatFunc.Luroth.Φ_coeff_φ_natDegree + theorem RatFunc.Luroth.Φ_coeff_φ_natDegree_ne_zero + theorem RatFunc.Luroth.Φ_natDegree_eq_θ_natDegree + theorem RatFunc.Luroth.Φ_natDegree_eq_φ_natDegree + theorem RatFunc.Luroth.Φ_ne_zero + theorem RatFunc.Luroth.θ_natDegree_le + theorem RatFunc.Luroth.φ_dvd_generator_minpolyX + theorem RatFunc.Luroth.φ_monic + theorem RatFunc.Luroth.φ_mul_q + theorem RatFunc.Luroth.φ_natDegree + theorem RatFunc.Luroth.φ_ne_zero Modified Mathlib/RingTheory/Coprime/Basic.lean + theorem IsCoprime.isUnit_of_associated Modified docs/references.bib 2026-03-06 20:54:47 5ace363 doc: remove TODO that has meanwhile been implemented (#36280) Remove an outdated TODO from a docstring. ESTIMATED CHANGES Modified Mathlib/Analysis/Complex/Harmonic/Liouville.lean 2026-03-06 20:54:46 5fa1909 chore(Tactic/CancelDenoms/Core): namespace in `Mathlib.Tactic` (#36177) This PR properly namespaces the `cancel_denoms` tactic. This is needed to stop library search from suggesting lemmas internal to this tactic. ESTIMATED CHANGES Modified Mathlib/Tactic/CancelDenoms/Core.lean - structure CancelDenoms.CancelResult - theorem CancelDenoms.add_subst - def CancelDenoms.cancelDenominatorsInType - theorem CancelDenoms.cancel_factors_eq - theorem CancelDenoms.cancel_factors_eq_div - theorem CancelDenoms.cancel_factors_le - theorem CancelDenoms.cancel_factors_lt - theorem CancelDenoms.cancel_factors_ne - def CancelDenoms.derive - def CancelDenoms.deriveThms - theorem CancelDenoms.derive_trans - theorem CancelDenoms.derive_trans₂ - theorem CancelDenoms.div_subst - def CancelDenoms.findCompLemma - theorem CancelDenoms.inv_subst - theorem CancelDenoms.mul_subst - theorem CancelDenoms.neg_subst - theorem CancelDenoms.pow_subst - theorem CancelDenoms.sub_subst - def CancelDenoms.synthesizeUsingNormNum + structure Mathlib.Tactic.CancelDenoms.CancelResult + theorem Mathlib.Tactic.CancelDenoms.add_subst + def Mathlib.Tactic.CancelDenoms.cancelDenominatorsInType + theorem Mathlib.Tactic.CancelDenoms.cancel_factors_eq + theorem Mathlib.Tactic.CancelDenoms.cancel_factors_eq_div + theorem Mathlib.Tactic.CancelDenoms.cancel_factors_le + theorem Mathlib.Tactic.CancelDenoms.cancel_factors_lt + theorem Mathlib.Tactic.CancelDenoms.cancel_factors_ne + def Mathlib.Tactic.CancelDenoms.derive + def Mathlib.Tactic.CancelDenoms.deriveThms + theorem Mathlib.Tactic.CancelDenoms.derive_trans + theorem Mathlib.Tactic.CancelDenoms.derive_trans₂ + theorem Mathlib.Tactic.CancelDenoms.div_subst + def Mathlib.Tactic.CancelDenoms.findCompLemma + theorem Mathlib.Tactic.CancelDenoms.inv_subst + theorem Mathlib.Tactic.CancelDenoms.mul_subst + theorem Mathlib.Tactic.CancelDenoms.neg_subst + theorem Mathlib.Tactic.CancelDenoms.pow_subst + theorem Mathlib.Tactic.CancelDenoms.sub_subst - def cancelDenominators - def cancelDenominatorsAt - def cancelDenominatorsTarget Modified scripts/nolints.json 2026-03-06 20:01:46 5e5be11 feat: `Set.sumEquiv` lemmas (#36268) ESTIMATED CHANGES Modified Mathlib/Data/Finset/Sum.lean Modified Mathlib/Order/Hom/Set.lean + theorem Set.InjOn.sumElim + theorem Set.MapsTo.sumElim + theorem Set.sumEquiv_symm_apply 2026-03-06 19:32:41 294b7c2 feat(Data/Nat/Factorization/Basic): three small lemmas (#36281) Added three small lemmas generalized to p, that were frequently needed here with p=2. ESTIMATED CHANGES Modified Mathlib/Data/Nat/Factorization/Basic.lean + theorem Nat.ordCompl_div_of_dvd + theorem Nat.ordCompl_div_pow_of_dvd + theorem Nat.ordCompl_pow_mul_eq_self_iff + theorem Nat.ordCompl_pow_mul_of_not_dvd 2026-03-06 18:58:56 5d9a325 refactor: some cleanup in LpSpace.Basic (#36258) I noticed some possible improvements when I mimicked these proofs for Sobolev spaces. No functional changes. ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Function/LpSpace/Basic.lean 2026-03-06 18:06:32 b187818 feat(Combinatorics): prove the Rado selection lemma (#35041) Prove the Rado selection lemma, a generic result useful to prove a variety of compactness results in combinatorics. This generalises Konig's infinity lemma, and the de Bruijn-Erdos theorem, and allows the former to be conveniently stated in the language of sets rather than categories. We leave these generalisations of results in mathlib to later PRs. This PR should supercede #29030 ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Combinatorics/Compactness.lean + theorem Finset.rado_selection + theorem Finset.rado_selection_subtype + theorem Set.Finite.rado_selection + theorem Set.Finite.rado_selection_subtype 2026-03-06 17:55:16 54703f8 chore(Topology/Algebra/Valued/NormedValued): replace Valued.norm by Valuation.norm (#36284) We replace the definition `Valued.norm` by `Valuation.norm`. ESTIMATED CHANGES Modified Mathlib/NumberTheory/Padics/Complex.lean +/- theorem PadicComplex.norm_eq_norm' +/- theorem PadicComplex.norm_eq_norm Modified Mathlib/Topology/Algebra/Valued/NormedValued.lean + def Valuation.norm + theorem Valuation.norm_add_le + theorem Valuation.norm_def + theorem Valuation.norm_eq_zero + theorem Valuation.norm_nonneg + theorem Valuation.norm_pos_iff_valuation_pos - def Valued.norm - theorem Valued.norm_add_le - theorem Valued.norm_def - theorem Valued.norm_eq_zero - theorem Valued.norm_nonneg - theorem Valued.norm_pos_iff_valuation_pos 2026-03-06 17:10:05 a3d2529 feat(AlgebraicGeometry/EllipticCurve/Affine/Point): expose coordinates (#36270) This PR seems to add a lot of noise, but there are two good reasons for it: - Currently the infoview shows `Point.some ...` for any affine point, so the computation of an addition of two points would show `Point.some ... + Point.some ... = Point.some ...` in the infoview, so the user has to hover over each of them to see what's going on. - When creating (resp extracting) the coordinates of explicit points in downstream files, one needs to type `Point.some (x := x) (y := y) h` (resp `@Point.some _ _ _ x y h`) to create (resp extract) an affine point `(x, y)` and the proof `h` that it is nonsingular, which has been pretty annoying so far. Of course the former can be solved by some metaprogramming / pretty printing, but I think the latter is good enough a reason to have this quality of life change. ESTIMATED CHANGES Modified Mathlib/AlgebraicGeometry/EllipticCurve/Affine/Point.lean +/- theorem WeierstrassCurve.Affine.Point.neg_some +/- theorem WeierstrassCurve.Affine.Point.some_ne_zero Modified Mathlib/AlgebraicGeometry/EllipticCurve/Jacobian/Point.lean Modified Mathlib/AlgebraicGeometry/EllipticCurve/Projective/Point.lean 2026-03-06 17:10:03 d07ceae feat: `Isometry.mapRingHom` (#36257) ESTIMATED CHANGES Modified Mathlib/Topology/MetricSpace/Completion.lean +/- def Isometry.extensionHom +/- theorem Isometry.extensionHom_coe + theorem Isometry.isometry_mapRingHom + def Isometry.mapRingHom + theorem Isometry.mapRingHom_coe 2026-03-06 17:10:01 fa151ad feat(RingTheory/PowerSeries/Substitution): add `constantCoeff_subst_X_pow` (#36190) This PR adds a lemma for the constant coefficient after substituting `X ^ k`. ESTIMATED CHANGES Modified Mathlib/RingTheory/PowerSeries/Substitution.lean + theorem PowerSeries.coeff_subst_X_pow + theorem PowerSeries.constantCoeff_subst_X_pow 2026-03-06 17:09:59 951eb7c feat: tag ContDiff.{continuous,differentiable} as fun_prop (#35986) The second one requires proving a side condition n \neq 0, which should be fine when passing a discharger. ESTIMATED CHANGES Modified Mathlib/Analysis/Calculus/ContDiff/Defs.lean 2026-03-06 17:09:57 bd2137b feat(NumberTheory/Height/MvPolynomial): upper bound for polynomial maps (#35927) We continue filling Mathlib.NumberTheory.Height.MvPolynomial. This PR contributes upper height bounds for the values of (homogeneous) polynomial maps on tuples. ESTIMATED CHANGES Modified Mathlib/NumberTheory/Height/MvPolynomial.lean + theorem AbsoluteValue.eval_mvPolynomial_le + theorem Height.logHeight_eval_le' + theorem Height.logHeight_eval_le + def Height.mulHeightBound + theorem Height.mulHeightBound_eq + theorem Height.mulHeightBound_zero_one + theorem Height.mulHeight_eval_le' + theorem Height.mulHeight_eval_le + theorem IsNonarchimedean.eval_mvPolynomial_le 2026-03-06 17:09:55 672363d feat(Topology/Sheaves): points of the site of a topological space and specializations (#35757) In this PR, we show that there is at most one morphism between two points of the site `(Opens X, grothendieckTopology X)` when `X` is a topological space, and that for points corresponding to elements `x : X` and `y : X`, such a morphism exists if and only if `x` specializes to `y`. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/CategoryTheory/Limits/Yoneda.lean Modified Mathlib/CategoryTheory/ShrinkYoneda.lean Modified Mathlib/CategoryTheory/Sites/Point/Basic.lean + theorem CategoryTheory.GrothendieckTopology.Point.fiber_map_injective_of_mono + theorem CategoryTheory.GrothendieckTopology.Point.subsingleton_fiber_obj Modified Mathlib/CategoryTheory/Sites/Point/Skyscraper.lean Added Mathlib/Topology/Sheaves/Points.lean + theorem Opens.isConservativeFamilyOfPoints_pointsGrothendieckTopology + def Opens.pointGrothendieckTopology + def Opens.pointGrothendieckTopologyHomEquiv + def Opens.pointsGrothendieckTopology 2026-03-06 17:09:52 581f3bb feat(Algebra/Homology/SpectralObject): `HasSpectralSequence` (#35374) ESTIMATED CHANGES Modified Mathlib/Algebra/Homology/SpectralObject/HasSpectralSequence.lean + def CategoryTheory.Abelian.SpectralObject.coreE₂CohomologicalFin + def CategoryTheory.Abelian.SpectralObject.coreE₂CohomologicalNat + def CategoryTheory.Abelian.SpectralObject.coreE₂HomologicalNat + theorem CategoryTheory.Abelian.SpectralObject.isZero_H_obj_mk₁_i₀_le' + theorem CategoryTheory.Abelian.SpectralObject.isZero_H_obj_mk₁_i₀_le + theorem CategoryTheory.Abelian.SpectralObject.isZero_H_obj_mk₁_i₃_le' + theorem CategoryTheory.Abelian.SpectralObject.isZero_H_obj_mk₁_i₃_le 2026-03-06 17:09:50 6321788 feat(Analysis/Complex/UpperHalfPlane): invariant measure (#34402) Add the invariant measure on the upper half-plane (& prove that it is indeed invariant). Also includes various minor improvements to upper half-plane & related code: * improve documentation of `GeneralLinearGroup/FinTwo.lean` * remove no-longer-needed coercion notation ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Analysis/Complex/Basic.lean + def Complex.conjCAE + theorem Complex.conjCAE_apply + theorem Complex.conjCAE_toAlgEquiv + theorem Complex.conjCAE_toLinearMap - def Complex.conjCLE - theorem Complex.conjCLE_coe + theorem Complex.conjCLE_coe_toLinearMap + theorem Complex.conjCLE_toLinearEquiv + theorem Complex.conjLIE_toCLE Modified Mathlib/Analysis/Complex/UpperHalfPlane/Manifold.lean + theorem UpperHalfPlane.analyticAt_smul + theorem UpperHalfPlane.deriv_smul + theorem UpperHalfPlane.deriv_smul_ne_zero + theorem UpperHalfPlane.det_smulFDeriv + theorem UpperHalfPlane.hasStrictDerivAt_smul + theorem UpperHalfPlane.hasStrictFDerivAt_smul + theorem UpperHalfPlane.meromorphicOrderAt_comp_smul + theorem UpperHalfPlane.smulFDeriv_J_mul Added Mathlib/Analysis/Complex/UpperHalfPlane/Measure.lean + theorem UpperHalfPlane.measurableEmbedding_coe + theorem UpperHalfPlane.measurable_coe + theorem UpperHalfPlane.volume_def + theorem UpperHalfPlane.volume_eq_lintegral Modified Mathlib/Analysis/Complex/UpperHalfPlane/MoebiusAction.lean + def UpperHalfPlane.J + theorem UpperHalfPlane.J_sq + theorem UpperHalfPlane.coe_J_smul + theorem UpperHalfPlane.denom_J + theorem UpperHalfPlane.denom_J_mul + theorem UpperHalfPlane.det_J + theorem UpperHalfPlane.sigma_J + theorem UpperHalfPlane.val_J Modified Mathlib/Analysis/Complex/UpperHalfPlane/Topology.lean + theorem UpperHalfPlane.J_smul Modified Mathlib/LinearAlgebra/Matrix/GeneralLinearGroup/FinTwo.lean Modified Mathlib/NumberTheory/ModularForms/Basic.lean - def UpperHalfPlane.J - theorem UpperHalfPlane.J_smul - theorem UpperHalfPlane.J_sq - theorem UpperHalfPlane.coe_J_smul - theorem UpperHalfPlane.denom_J - theorem UpperHalfPlane.det_J - theorem UpperHalfPlane.sigma_J - theorem UpperHalfPlane.val_J Modified Mathlib/Topology/Algebra/Algebra/Equiv.lean + theorem ContinuousAlgEquiv.coeCLE_apply + theorem ContinuousAlgEquiv.coeCLE_refl + theorem ContinuousAlgEquiv.coe_coeCLE 2026-03-06 17:09:48 e2c39d6 refactor: deprecate bespoke `Hyperreal` machinery (#33650) Currently, these six definitions are in the `Hyperreal` namespace: - `IsSt x r`: a predicate for `r` being a standard part of `x` - `st x`: the standard part of `x` - `Infinitesimal x`: predicate for infinitesimal elements - `InfinitePos x`: predicate for infinite and positive elements - `InfiniteNeg x`: predicate for infinite and negative elements - `Infinite x`: predicate for infinite (positive or negative) elements. We deprecate all six of these and all of their API, in favor of reasoning with [`ArchimedeanClass`](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Algebra/Order/Archimedean/Class.html#ArchimedeanClass) and [`ArchimedeanClass.stdPart`](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Algebra/Order/Ring/StandardPart.html#ArchimedeanClass.stdPart). The replacements are as follows: - `IsSt x r`: `0 ≤ ArchimedeanClass.mk x ∧ stdPart x = r` - `st x`: `stdPart x` - `Infinitesimal x`: `0 < ArchimedeanClass.mk x` - `InfinitePos x`: `0 < x ∧ ArchimedeanClass.mk x < 0` - `InfiniteNeg x`: `x < 0 ∧ ArchimedeanClass.mk x < 0` - `Infinite x`: `ArchimedeanClass.mk x < 0` All of these equivalences are proved within the PR, though these new theorems have also been insta-deprecated. Most of the existing API on these predicates was largely uninteresting boilerplate, and has been deprecated without replacement. For the few results of mathematical interest (those whose proofs are longer than a few lines), I've golfed their proofs as a stress test to ensure that this new API is capable of easily proving them. I've kept everything in the same file to minimize the diff. A future PR will move the obsolete material to `Deprecated.Hyperreal`. ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Ring/StandardPart.lean Modified Mathlib/Analysis/Real/Hyperreal.lean + theorem Hyperreal.infiniteNeg_iff +/- theorem Hyperreal.infiniteNeg_neg +/- theorem Hyperreal.infinitePos_abs_iff_infinite + theorem Hyperreal.infinitePos_iff +/- theorem Hyperreal.infinitePos_neg +/- theorem Hyperreal.infinite_abs_iff + theorem Hyperreal.infinite_iff +/- theorem Hyperreal.infinite_neg + theorem Hyperreal.infinitesimal_iff +/- theorem Hyperreal.infinitesimal_neg +/- theorem Hyperreal.infinitesimal_real_iff + theorem Hyperreal.isSt_iff - def Hyperreal.st + theorem Hyperreal.st_eq + theorem Hyperreal.stdPart_map + theorem Hyperreal.stdPart_map₂ 2026-03-06 16:20:50 ee78550 chore: golf with `map_subtype_inj` (#36272) This PR uses `Subgroup.map_subtype_inj` in a couple places that were missed by #36249. ESTIMATED CHANGES Modified Mathlib/GroupTheory/SpecificGroups/Cyclic.lean Modified Mathlib/RingTheory/Valuation/Discrete/Basic.lean 2026-03-06 16:20:47 344712b chore: update Mathlib dependencies 2026-03-06 (#36261) This PR updates the Mathlib dependencies. ESTIMATED CHANGES Modified lake-manifest.json 2026-03-06 16:20:45 127b4cf chore: remove some superfluous parens (#36254) A followup to #35921 Same regex, but LLM-powered false positive filtering. One of the great qualities of LLMs is that they don't get bored. ESTIMATED CHANGES Modified Mathlib/Algebra/Module/SpanRank.lean Modified Mathlib/Algebra/Order/Archimedean/Class.lean Modified Mathlib/Analysis/Calculus/FDeriv/Mul.lean Modified Mathlib/Analysis/Calculus/TangentCone/ProperSpace.lean Modified Mathlib/Analysis/InnerProductSpace/Dual.lean Modified Mathlib/Analysis/Matrix/HermitianFunctionalCalculus.lean Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Cotangent.lean Modified Mathlib/Computability/AkraBazzi/GrowsPolynomially.lean Modified Mathlib/Computability/AkraBazzi/SumTransform.lean Modified Mathlib/Computability/Primrec/List.lean Modified Mathlib/Computability/TMConfig.lean Modified Mathlib/Data/FinEnum.lean Modified Mathlib/Geometry/Manifold/MFDeriv/SpecificFunctions.lean Modified Mathlib/GroupTheory/Perm/Cycle/Basic.lean Modified Mathlib/LinearAlgebra/Matrix/Block.lean Modified Mathlib/MeasureTheory/Function/SimpleFunc.lean Modified Mathlib/ModelTheory/Complexity.lean Modified Mathlib/NumberTheory/FLT/Three.lean Modified Mathlib/Order/Hom/WithTopBot.lean Modified Mathlib/RingTheory/LaurentSeries.lean Modified Mathlib/RingTheory/PowerSeries/Inverse.lean Modified Mathlib/Tactic/Linter/TextBased.lean Modified Mathlib/Topology/Algebra/InfiniteSum/SummationFilter.lean 2026-03-06 16:20:43 4dafe2d chore(Probability): fix typo in namespace (#36253) ESTIMATED CHANGES Modified Mathlib/Probability/Distributions/Cauchy.lean - theorem Probability.cauchyMeasure_of_scale_ne_zero - theorem Probability.cauchyMeasure_zero_scale - theorem Probability.cauchyPDFReal_def' - theorem Probability.cauchyPDFReal_def - theorem Probability.cauchyPDFReal_scale_zero - theorem Probability.cauchyPDF_def - theorem Probability.cauchyPDF_pos - theorem Probability.cauchyPDF_scale_zero - theorem Probability.integrable_cauchyPDFReal - theorem Probability.integral_cauchyPDFReal - theorem Probability.lintegral_cauchyPDF_eq_one - theorem Probability.measurable_cauchyPDF - theorem Probability.measurable_cauchyPDFReal - theorem Probability.stronglyMeasurable_cauchyPDF - theorem Probability.stronglyMeasurable_cauchyPDFReal + theorem ProbabilityTheory.cauchyMeasure_of_scale_ne_zero + theorem ProbabilityTheory.cauchyMeasure_zero_scale + theorem ProbabilityTheory.cauchyPDFReal_def' + theorem ProbabilityTheory.cauchyPDFReal_def + theorem ProbabilityTheory.cauchyPDFReal_scale_zero + theorem ProbabilityTheory.cauchyPDF_def + theorem ProbabilityTheory.cauchyPDF_pos + theorem ProbabilityTheory.cauchyPDF_scale_zero + theorem ProbabilityTheory.integrable_cauchyPDFReal + theorem ProbabilityTheory.integral_cauchyPDFReal_eq_one + theorem ProbabilityTheory.lintegral_cauchyPDF_eq_one + theorem ProbabilityTheory.measurable_cauchyPDF + theorem ProbabilityTheory.measurable_cauchyPDFReal + theorem ProbabilityTheory.stronglyMeasurable_cauchyPDF + theorem ProbabilityTheory.stronglyMeasurable_cauchyPDFReal 2026-03-06 16:20:40 622182a feat(AlgebraicGeometry): Functoriality of Proj (just the map) (#36252) ```lean def AlgebraicGeometry.Proj.map [GradedRing 𝒜] [GradedRing ℬ] (f : 𝒜 →+*ᵍ ℬ) (f_le_map : ℬ₊ ≤ 𝒜₊.map f) : Proj ℬ ⟶ Proj 𝒜 ``` where `𝒜₊` denotes the irrelevant ideal of `𝒜`. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/AlgebraicGeometry/ProjectiveSpectrum/Functor.lean + theorem AlgebraicGeometry.Proj.germ_map_sectionInBasicOpen + theorem AlgebraicGeometry.Proj.isLocallyFraction_comapStructureSheafFun + theorem AlgebraicGeometry.Proj.localRingHom_comp_stalkIso + theorem AlgebraicGeometry.Proj.val_sectionInBasicOpen_apply + def AlgebraicGeometry.ProjectiveSpectrum.comap + def AlgebraicGeometry.ProjectiveSpectrum.comapFun Modified Mathlib/RingTheory/GradedAlgebra/Homogeneous/Ideal.lean Modified Mathlib/RingTheory/GradedAlgebra/HomogeneousLocalization.lean + def HomogeneousLocalization.NumDenSameDeg.map + theorem HomogeneousLocalization.val_localRingHom Modified Mathlib/RingTheory/Localization/AtPrime/Basic.lean + theorem Localization.localRingHom_mk 2026-03-06 16:20:38 e067b0f feat: midpoint_mem_openSegment (#36237) This lemma already exsited for `segment`, I am simply writing the `openSegment` version of it (and the two following lemmas) ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Invertible.lean + theorem invOf_lt_one Modified Mathlib/Analysis/Convex/Segment.lean + theorem mem_openSegment_add_sub + theorem mem_openSegment_sub_add +/- theorem mem_segment_add_sub +/- theorem mem_segment_sub_add + theorem midpoint_mem_openSegment +/- theorem midpoint_mem_segment 2026-03-06 16:20:35 0bcc938 feat: FiberBundle.extend (#36234) Extend an element of a fiber at a point to a local section. From the path towards Riemannian geometry. ESTIMATED CHANGES Modified Mathlib/Geometry/Manifold/VectorBundle/Basic.lean Modified Mathlib/Geometry/Manifold/VectorBundle/MDifferentiable.lean + theorem FiberBundle.contMDiffAt_extend' + theorem FiberBundle.exists_contMDiffOn_extend + theorem FiberBundle.exists_mdifferentiableOn_extend + theorem FiberBundle.mdifferentiableAt_extend Modified Mathlib/Topology/FiberBundle/Basic.lean + theorem FiberBundle.extend_apply_self 2026-03-06 16:20:33 c8654b2 feat: some delaborators for differential geometry (#36230) We'd like to have delaborators corresponding to the differential geometry custom elaborators, so users also see more compact infoview states. This PR adds a few of them (for some of the elaborators). The remaining elaborators will be added in future PRs. Written for the path towards the Levi-Civita connection and geodesics. ESTIMATED CHANGES Modified Mathlib/Geometry/Manifold/Notation.lean Modified MathlibTest/DifferentialGeometry/Notation/Advanced.lean Modified MathlibTest/DifferentialGeometry/Notation/Basic.lean Added MathlibTest/DifferentialGeometry/Notation/Delaborators.lean Modified MathlibTest/DifferentialGeometry/Notation/Sphere.lean 2026-03-06 16:20:30 aaa4f75 feat(Algebra/FiniteSupport/Basic): some more API (#36223) ESTIMATED CHANGES Modified Mathlib/Algebra/BigOperators/Finprod.lean Modified Mathlib/Algebra/FiniteSupport/Basic.lean + theorem Function.HasFiniteMulSupport.comp_of_injective + theorem Function.HasFiniteMulSupport.fun_comp_of_injective 2026-03-06 16:20:28 560ca18 refactor: generalize convergence in distributions to variables over different spaces (#36215) Convergence in distributions make sense if each of the random variables are defined over distinct probability spaces. ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Function/ConvergenceInDistribution.lean +/- theorem MeasureTheory.TendstoInDistribution.add_of_tendstoInMeasure_const +/- structure MeasureTheory.TendstoInDistribution +/- theorem MeasureTheory.tendstoInDistribution_const +/- theorem MeasureTheory.tendstoInDistribution_of_tendstoInMeasure_sub 2026-03-06 16:20:25 d9b55f7 chore: make #min_imports suggest 'public import's (#36212) With mathlib's transition to the module system, this is a safer default. Being more refined about this would be nice, but a much further-reaching change: we leave this for future authors. ESTIMATED CHANGES Modified Mathlib/Tactic/MinImports.lean Modified MathlibTest/MinImports.lean 2026-03-06 16:20:23 3aaf299 feat(CategoryTheory/Sites): the equivalence between `DescentData'` and `DescentData` (#35401) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Sites/Descent/DescentDataPrime.lean + def CategoryTheory.Pseudofunctor.DescentData'.ofDescentData + theorem CategoryTheory.Pseudofunctor.DescentData'.pullHom'_ofDescentData_hom 2026-03-06 16:20:21 e82f6f2 feat(AlgebraicGeometry/Sites): characterization of sheaves for the `P`-qc topology (#34917) From Proetale. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/AlgebraicGeometry/AffineScheme.lean Modified Mathlib/AlgebraicGeometry/Cover/QuasiCompact.lean Modified Mathlib/AlgebraicGeometry/Cover/Sigma.lean + theorem AlgebraicGeometry.Scheme.Cover.presieve₀_sigma Modified Mathlib/AlgebraicGeometry/Sites/BigZariski.lean + theorem AlgebraicGeometry.Scheme.Cover.isSheafFor_sigma_iff + def AlgebraicGeometry.Scheme.affineOneHypercover Modified Mathlib/AlgebraicGeometry/Sites/QuasiCompact.lean + theorem AlgebraicGeometry.Scheme.zariskiTopology_le_propQCTopology Added Mathlib/AlgebraicGeometry/Sites/SheafQuasiCompact.lean Modified Mathlib/CategoryTheory/Sites/Hypercover/SheafOfTypes.lean + theorem CategoryTheory.Precoverage.ZeroHypercover.Hom.isSheafFor_iff 2026-03-06 16:20:18 c542d63 feat(ProbabilityTheory): add Poisson limit theorem (#33449) ESTIMATED CHANGES Modified Mathlib.lean Renamed Mathlib/Probability/Distributions/Poisson.lean to Mathlib/Probability/Distributions/Poisson/Basic.lean + theorem ProbabilityTheory.poissonPMFReal_ofReal_eq_poissonPMF Added Mathlib/Probability/Distributions/Poisson/PoissonLimitThm.lean + theorem ProbabilityTheory.binomial_tendsto_poissonPMFReal_atTop + theorem ProbabilityTheory.tendsto_choose_mul_pow_atTop + theorem ProbabilityTheory.tendsto_choose_mul_pow_of_tendsto_mul_atTop + theorem ProbabilityTheory.tendsto_zero_of_tendsto_mul_atTop Modified Mathlib/Probability/ProbabilityMassFunction/Binomial.lean + theorem PMF.binomial_apply_of_le Modified docs/1000.yaml 2026-03-06 16:20:15 3d34913 feat(Tactic/Simproc/VecPerm): add simproc for permuting entries of a vector (#33129) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Tactic.lean Added Mathlib/Tactic/Simproc/VecPerm.lean + def Mathlib.Tactic.FinVec.arrayOfVecFinQ + theorem Mathlib.Tactic.FinVec.eq_etaExpand + def Mathlib.Tactic.FinVec.mkFin Added MathlibTest/Simproc/VecPerm.lean 2026-03-06 16:20:12 b2e54f8 feat: tightness from convergence of characteristic functions (#26293) If the characteristic functions of a sequence of measures `μ : ℕ → Measure E` on a finite dimensional inner product space converge pointwise to a function which is continuous at 0, then `{μ n | n}` is tight. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/MeasureTheory/Measure/LevyConvergence.lean + theorem MeasureTheory.isTightMeasureSet_of_tendsto_charFun Modified Mathlib/MeasureTheory/Measure/TightNormed.lean + theorem MeasureTheory.isTightMeasureSet_range_of_tendsto_limsup_measureReal_inner_of_norm_eq_one Modified Mathlib/Order/Filter/ENNReal.lean + theorem ENNReal.ofReal_limsup_toReal 2026-03-06 15:35:37 808d25c feat(MeasureTheory/Probability): Add more condLExp API (#36271) ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Function/ConditionalLExpectation.lean + theorem MeasureTheory.condLExp_finset_sum + theorem MeasureTheory.condLExp_one + theorem MeasureTheory.condLExp_tsum + theorem MeasureTheory.condLExp_zero 2026-03-06 15:35:35 f469faa chore: unsqueeze terminal `simp`:s (`simp only […]` to `simp`) (#36265) The goal of this PR is to decrease the number of times lemmas are called explicitly. Any decrease in compilation time is a welcome side effect, although it is not a primary objective. Trace profiling results (differences <30 ms considered measurement noise): * `spectrum.inv₀_mem_iff`: unchanged 🎉 * `Fin.partialProd_contractNth`: unchanged 🎉 * `CharP.intCast_eq_zero_iff`: unchanged 🎉 * `normalize_eq_normalize`: unchanged 🎉 * `gcd_mul_left`: unchanged 🎉 * `lcm_mul_left`: unchanged 🎉 * `dNext_nat`: unchanged 🎉 * `prevD_nat`: 105 ms before, 68 ms after 🎉 * `LieAlgebra.engel_isBot_of_isMin.lieCharpoly_coeff_natDegree`: unchanged 🎉 Profiled using `set_option trace.profiler true in`. This PR is batched under the following guidelines: * Up to ~5 changed files per PR * Up to ~25 changed declarations per PR * Up to ~100 changed lines per PR ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/Spectrum/Basic.lean Modified Mathlib/Algebra/BigOperators/Fin.lean Modified Mathlib/Algebra/CharP/Defs.lean Modified Mathlib/Algebra/GCDMonoid/Basic.lean Modified Mathlib/Algebra/Homology/Homotopy.lean Modified Mathlib/Algebra/Lie/CartanExists.lean 2026-03-06 15:35:33 f92eea8 feat(Algebra/GCDMonoid): finset gcd of integers is nonnegative (#36263) Also golf a proof, and add the binary version too. ESTIMATED CHANGES Modified Mathlib/Algebra/GCDMonoid/Finset.lean + theorem Finset.Int.finsetGcd_nonneg + theorem Finset.gcd_cons Modified Mathlib/Algebra/GCDMonoid/Nat.lean + theorem Int.gcd_nonneg + theorem Int.lcm_nonneg 2026-03-06 15:35:32 2b77323 chore(Algebra/Homology/SpectralObject): fix documentation (#36256) ESTIMATED CHANGES Modified Mathlib/Algebra/Homology/SpectralObject/Basic.lean 2026-03-06 15:35:30 a443121 chore(Data/Fin): rewrite `fin_omega` tactic docstring (#36255) This PR (re)writes the docstring for the `fin_omega` tactic, to consistently match the official style guide, to make sure it is complete while not getting too long. The goal is to explain the tactic's scope a bit clearer (namely, inequalities in `Fin`). ESTIMATED CHANGES Modified Mathlib/Data/Fin/Basic.lean 2026-03-06 15:35:28 1bb9634 feat(RingTheory): two constructions about base change and restriction of graded algebra (#36226) In the below, `S` is an `R`-algebra. First construction (`𝒜` is a graded `R`-algebra, `ℬ` is a graded `S`-algebra): ```lean /-- A map from the base change of a graded algebra is the same as a map to the scalar restriction. In category-theoretical terms, this is an adjunction between: 1. `𝒜 ↦ (𝒜 · |>.baseChange S)`, a functor from Graded `R`-Algebra to Graded `S`-Algebra; and: 2. `ℬ ↦ (ℬ · |>.restrictScalars R)`, a functor from Graded `S`-Algebra to Graded `R`-Algebra. -/ GradedAlgHom.liftEquiv : (𝒜 →ₐᵍ[R] (ℬ · |>.restrictScalars R)) ≃ ((𝒜 · |>.baseChange S) →ₐᵍ[S] ℬ) ``` Second construction (`𝒜` and `ℬ` are graded `S`-algebras): ```lean /-- Restrict the base ring to a "smaller" ring. -/ GradedAlgHom.restrictScalars (f : 𝒜 →ₐᵍ[S] ℬ) : (𝒜 · |>.restrictScalars R) →ₐᵍ[R] (ℬ · |>.restrictScalars R) ``` In categorical terms, the second construction is the functoriality of restriction (`S-GAlg ⥤ R-GAlg`), and the first construction is the adjunction with base change (`R-GAlg ⥤ S-GAlg`, by tensor product). ESTIMATED CHANGES Modified Mathlib/RingTheory/Etale/StandardEtale.lean Modified Mathlib/RingTheory/GradedAlgebra/AlgHom.lean + theorem GradedAlgHom.coe_restrictScalars + def GradedAlgHom.restrictScalars + theorem GradedAlgHom.restrictScalars_coe_algHom + theorem GradedAlgHom.restrictScalars_coe_linearMap + theorem GradedAlgHom.restrictScalars_injective Modified Mathlib/RingTheory/GradedAlgebra/Basic.lean Modified Mathlib/RingTheory/GradedAlgebra/TensorProduct.lean + def GradedAlgHom.includeRight + theorem GradedAlgHom.includeRight_apply + def GradedAlgHom.liftEquiv + theorem GradedAlgHom.liftEquiv_symm_apply + theorem GradedAlgHom.liftEquiv_tmul Modified Mathlib/RingTheory/TensorProduct/Basic.lean + def AlgHom.liftEquiv + theorem AlgHom.liftEquiv_symm_apply + theorem AlgHom.liftEquiv_tmul + theorem Algebra.TensorProduct.ext_ring Modified Mathlib/RingTheory/TensorProduct/MonoidAlgebra.lean Modified Mathlib/RingTheory/Unramified/Basic.lean 2026-03-06 15:35:26 f8f9447 chore: `FinitePlace.norm_def` -> `FinitePlace.norm_embedding` (#36184) Rename `FinitePlace.norm_def*` to `FinitePlace.norm_embedding*` to accommodate a new `FinitePlace.norm_def` which unfolds the definition. ESTIMATED CHANGES Modified Mathlib/NumberTheory/NumberField/FinitePlaces.lean - theorem NumberField.RingOfIntegers.HeightOneSpectrum.FinitePlace.norm_def' +/- theorem NumberField.RingOfIntegers.HeightOneSpectrum.FinitePlace.norm_def - theorem NumberField.RingOfIntegers.HeightOneSpectrum.FinitePlace.norm_def_int + theorem NumberField.RingOfIntegers.HeightOneSpectrum.FinitePlace.norm_embedding' + theorem NumberField.RingOfIntegers.HeightOneSpectrum.FinitePlace.norm_embedding + theorem NumberField.RingOfIntegers.HeightOneSpectrum.FinitePlace.norm_embedding_int Modified Mathlib/Topology/Algebra/Valued/NormedValued.lean + theorem Valued.toNormedField.norm_def 2026-03-06 15:35:25 9877239 feat(Algebra/ModuleCat): API on short complex in ModuleCat (#35882) Adding some API on short complex in ModuleCat, for construction and exactness. ESTIMATED CHANGES Modified Mathlib/Algebra/Homology/ShortComplex/ModuleCat.lean + theorem ModuleCat.shortComplex_exact + theorem ModuleCat.shortComplex_shortExact 2026-03-06 15:35:23 f2a0d43 feat(RingTheory/DedekindDomain/AdicValuation): values in adic integers have unit denominator (#35724) If `R` is a Dedekind domain and v a valuation on R, then any v-adic integer in the field of fractions of `K` can be written as `n / d` with `n d : R` and `v d = 1`. Part of showing `R` is dense in `O_v`, which is used to show that `R / v` is isomorphic to the residue field of `O_v` and to construct the base change isomorphism for finite adeles. ESTIMATED CHANGES Modified Mathlib/RingTheory/DedekindDomain/AdicValuation.lean + theorem IsDedekindDomain.HeightOneSpectrum.exists_primeCompl_mul_eq_of_integer + theorem IsDedekindDomain.HeightOneSpectrum.exists_primeCompl_mul_eq_or_mul_eq + theorem IsDedekindDomain.HeightOneSpectrum.intValuation_eq_one_iff_mem_primeCompl 2026-03-06 15:35:20 c505a69 feat(CategoryTheory/Abelian/Preradical): add Stenström's colon construction for preradicals (#35585) Given preradicals `Φ` and `Ψ` on an abelian category `C`, this file defines their **colon** `Φ : Ψ` in the sense of Stenström. Categorically, `Φ : Ψ` is constructed objectwise as a pullback of the canonical projection `Φ.π X : X ⟶ Φ.quotient.obj X` along the inclusion `Functor.whiskerLeft Φ.quotient Ψ.ι`. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/CategoryTheory/Abelian/Preradical/Basic.lean Added Mathlib/CategoryTheory/Abelian/Preradical/Colon.lean + theorem CategoryTheory.Abelian.Preradical.colon_ι_app_π_app + theorem CategoryTheory.Abelian.Preradical.isIso_toColon_hom_left_app_iff + theorem CategoryTheory.Abelian.Preradical.isIso_toColon_iff + theorem CategoryTheory.Abelian.Preradical.isPullback_colon + theorem CategoryTheory.Abelian.Preradical.isPullback_colon_obj + theorem CategoryTheory.Abelian.Preradical.shortExact_shortComplex + theorem CategoryTheory.Abelian.Preradical.shortExact_shortComplexObj + theorem CategoryTheory.Abelian.Preradical.toColon_hom_left_app_colon_ι_app + theorem CategoryTheory.Abelian.Preradical.toColon_hom_left_app_colonπ_app + theorem CategoryTheory.Abelian.Preradical.toColon_hom_left_colonπ + theorem CategoryTheory.Abelian.Preradical.ι_π + theorem CategoryTheory.Abelian.Preradical.ι_π_app 2026-03-06 15:35:18 9657368 feat(SimpleGraph/Subgraph): small things about `spanningCoe` and a small golf (#35331) ESTIMATED CHANGES Modified Mathlib/Combinatorics/SimpleGraph/Subgraph.lean + def SimpleGraph.Subgraph.coeEmbeddingSpanningCoe + theorem SimpleGraph.Subgraph.edgeSet_spanningCoe +/- theorem SimpleGraph.Subgraph.inclusion.injective 2026-03-06 15:35:15 1202f7b feat: Radon-Nikodym derivative of a map is a conditional expectation (#35089) The Radon-Nikodym derivative of the pushforward of two measures is written as a conditional expectation. This will be useful to prove the data processing inequality for the Kullback-Leibler divergence (or more generally f-divergences). ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/MeasureTheory/Function/ConditionalExpectation/Basic.lean Added Mathlib/MeasureTheory/Function/ConditionalExpectation/LebesgueBochner.lean + theorem MeasureTheory.toReal_condLExp Added Mathlib/MeasureTheory/Function/ConditionalExpectation/RadonNikodym.lean + theorem MeasureTheory.rnDeriv_map + theorem MeasureTheory.rnDeriv_map_ae_eq_trim + theorem MeasureTheory.rnDeriv_trim + theorem MeasureTheory.toReal_rnDeriv_map + theorem MeasureTheory.toReal_rnDeriv_map_ae_eq_trim + theorem MeasureTheory.toReal_rnDeriv_trim Modified Mathlib/MeasureTheory/Function/ConditionalLExpectation.lean + theorem MeasureTheory.condLExp_lt_top + theorem MeasureTheory.condLExp_ne_top Modified Mathlib/MeasureTheory/Integral/Lebesgue/Markov.lean Modified Mathlib/MeasureTheory/Measure/Trim.lean + theorem MeasureTheory.SigmaFinite.of_trim 2026-03-06 15:35:12 0ef88da feat(MeasureTheory): WithLp 2 (U × V) → U × V is measure preserving (#34859) Intermediate lemmas towards #34826, and analogue to three existing lemma in the same file: ``` theorem EuclideanSpace.volume_preserving_symm_measurableEquiv_toLp : MeasurePreserving (MeasurableEquiv.toLp 2 (ι → ℝ)).symm := by theorem PiLp.volume_preserving_ofLp : MeasurePreserving (@ofLp 2 (ι → ℝ)) := theorem PiLp.volume_preserving_toLp : MeasurePreserving (@toLp 2 (ι → ℝ)) := ``` ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Measure/Haar/InnerProductSpace.lean + theorem WithLp.volume_preserving_ofLp + theorem WithLp.volume_preserving_symm_measurableEquiv_toLp_prod + theorem WithLp.volume_preserving_toLp 2026-03-06 15:35:09 b6c2e13 doc(Algebra/Quotient): update `HasQuotient.Quotient` doc-string (#33702) `HasQuotient.quotient'` has been deprecated (in #33037), so it should not be mentioned in the doc-string of `HasQuotent.Quotient`. ESTIMATED CHANGES Modified Mathlib/Algebra/Quotient.lean 2026-03-06 15:35:07 e9467ad feat: pipeline downloads and decompression in `cache get` (#32987) This PR modifies `lake exe cache get` to decompress files as they download, rather than waiting for all downloads to complete first. Previously the cache system had two sequential phases: download all files using `curl --parallel`, then decompress all files using a single `leantar` call. Now a background task spawns sequential batched `leantar` calls to decompress files as downloads complete, pipelining network I/O and disk I/O. 🤖 Prepared with Claude Code - [x] depends on: #34667 ESTIMATED CHANGES Modified Cache/IO.lean + def Cache.IO.spawnLeanTarDecompress Modified Cache/Requests.lean + structure Cache.Requests.DecompConfig + def Cache.Requests.decompressBatch + def Cache.Requests.dispatchDecompBatch + def Cache.Requests.harvestDecompTask + def Cache.Requests.hashFromFileName 2026-03-06 15:35:04 2e3bc24 feat: product rule for Lie bracket on manifolds (#26743) On the path towards geodesics and the Levi-Civita connection. ESTIMATED CHANGES Modified Mathlib/Geometry/Manifold/MFDeriv/Atlas.lean + theorem fderivWithin_extChartAt_comp_extChartAt_symm_range + theorem mfderivWithin_extChartAt_symm_inverse_apply + theorem mfderivWithin_range_extChartAt_symm + theorem mfderiv_extChartAt_self Modified Mathlib/Geometry/Manifold/MFDeriv/NormedSpace.lean + theorem DifferentiableWithinAt.mdifferentiableWithinAt_of_comp_extChartAt_symm + theorem MDifferentiableWithinAt.differentiableWithinAt_comp_extChartAt_symm Modified Mathlib/Geometry/Manifold/VectorField/LieBracket.lean + theorem VectorField.mfderiv_extChartAt_inverse_comp_mfderivWithin_extChartAT_symm +/- theorem VectorField.mlieBracketWithin_of_mem_nhdsWithin + theorem VectorField.mlieBracketWithin_smul_left + theorem VectorField.mlieBracketWithin_smul_right + theorem VectorField.mlieBracket_smul_left + theorem VectorField.mlieBracket_smul_right + theorem VectorField.mpullback_mfderivWithin_apply_smul Modified Mathlib/Geometry/Manifold/VectorField/Pullback.lean + theorem VectorField.mpullbackWithin_const_smul + theorem VectorField.mpullbackWithin_const_smul_apply +/- theorem VectorField.mpullbackWithin_smul +/- theorem VectorField.mpullbackWithin_smul_apply + theorem VectorField.mpullback_const_smul + theorem VectorField.mpullback_const_smul_apply +/- theorem VectorField.mpullback_smul +/- theorem VectorField.mpullback_smul_apply 2026-03-06 14:49:50 b564744 chore(CategoryTheory/Monoidal): add `shrinkYondaMon` and `shrinkYonedaGrp` (#36259) Shrinked versions of `yonedaMon` and `yonedaGrp`. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Category/Grp/Shrink.lean Added Mathlib/Algebra/Category/MonCat/Shrink.lean Added Mathlib/CategoryTheory/Monoidal/Cartesian/ShrinkYoneda.lean + theorem CategoryTheory.shrinkYonedaGrpObjObjEquiv_symm_comp + theorem CategoryTheory.shrinkYonedaGrp_map_app_shrinkYonedaObjObjEquiv_symm + theorem CategoryTheory.shrinkYonedaGrp_obj_map_shrinkYonedaGrpObjObjEquiv_symm + theorem CategoryTheory.shrinkYonedaMonObjObjEquiv_symm_comp + theorem CategoryTheory.shrinkYonedaMon_map_app_shrinkYonedaObjObjEquiv_symm + theorem CategoryTheory.shrinkYonedaMon_obj_map_shrinkYonedaMonObjObjEquiv_symm 2026-03-06 14:49:49 1921cda chore: golf using custom elaborators (#36235) The final pieces from #30357. ESTIMATED CHANGES Modified Mathlib/Geometry/Manifold/BumpFunction.lean Modified Mathlib/Geometry/Manifold/Complex.lean +/- theorem MDifferentiable.exists_eq_const_of_compactSpace Modified Mathlib/Geometry/Manifold/ContMDiff/Atlas.lean Modified Mathlib/Geometry/Manifold/ContMDiff/Basic.lean Modified Mathlib/Geometry/Manifold/ContMDiff/Constructions.lean Modified Mathlib/Geometry/Manifold/ContMDiffMap.lean +/- theorem ContMDiffMap.coeFn_mk Modified Mathlib/Geometry/Manifold/Diffeomorph.lean Modified Mathlib/Geometry/Manifold/GroupLieAlgebra.lean Modified Mathlib/Geometry/Manifold/Instances/Icc.lean +/- theorem contMDiffOn_projIcc +/- theorem contMDiff_subtype_coe_Icc Modified Mathlib/Geometry/Manifold/Instances/Sphere.lean +/- theorem contMDiff_circleExp Modified Mathlib/Geometry/Manifold/IntegralCurve/Basic.lean Modified Mathlib/Geometry/Manifold/IntegralCurve/ExistUnique.lean Modified Mathlib/Geometry/Manifold/IntegralCurve/UniformTime.lean Modified Mathlib/Geometry/Manifold/LocalDiffeomorph.lean +/- theorem IsLocalDiffeomorph.contMDiff Modified Mathlib/Geometry/Manifold/Notation.lean Modified Mathlib/Geometry/Manifold/PartitionOfUnity.lean +/- theorem BumpCovering.coe_toSmoothPartitionOfUnity +/- def BumpCovering.toSmoothPartitionOfUnity +/- theorem SmoothPartitionOfUnity.contMDiff_smul +/- theorem SmoothPartitionOfUnity.contMDiff_sum Modified Mathlib/Geometry/Manifold/Riemannian/Basic.lean Modified Mathlib/Geometry/Manifold/Riemannian/PathELength.lean +/- theorem Manifold.riemannianEDist_le_pathELength Modified Mathlib/Geometry/Manifold/Sheaf/Smooth.lean Modified Mathlib/Geometry/Manifold/SmoothEmbedding.lean Modified Mathlib/Geometry/Manifold/VectorBundle/Hom.lean Modified Mathlib/Geometry/Manifold/VectorBundle/Riemannian.lean Modified Mathlib/Geometry/Manifold/VectorBundle/Tangent.lean +/- theorem contMDiff_vectorSpace_iff_contDiff Modified Mathlib/Geometry/Manifold/WhitneyEmbedding.lean 2026-03-06 14:49:47 88d3792 feat(Algebra/BigOperators/Finprod): API for `fun a ↦ f a ^ count a s` (#36233) This adds three API lemmas around `fun a ↦ f a ^ count a s`, where `s` is a multiset. ESTIMATED CHANGES Modified Mathlib/Algebra/BigOperators/Finprod.lean + theorem Multiset.hasFiniteMulSupport_fun_pow_count + theorem Multiset.mulSupport_fun_pow_count_subset + theorem Multiset.prod_map_eq_finprod 2026-03-06 14:49:45 9781fe9 feat(Algebra/Homology/DerivedCategory/Ext/ExtClass): `extClass` is natural (#36228) Prove that `extClass` is compatible with morphisms of short exact sequences. ESTIMATED CHANGES Modified Mathlib/Algebra/Homology/DerivedCategory/Ext/ExtClass.lean + theorem CategoryTheory.ShortComplex.ShortExact.extClass_naturality Modified Mathlib/Algebra/Homology/DerivedCategory/ShortExact.lean Modified Mathlib/Algebra/Homology/DerivedCategory/SingleTriangle.lean Modified Mathlib/Algebra/Homology/HomotopyCategory/ShortExact.lean + theorem CochainComplex.mappingCone.map_descShortComplex 2026-03-06 14:49:43 17eea48 feat(CategoryTheory/Functor): exactness properties of conservative families of exact functors (#36059) A morphism of homological complexes is a quasi-isomorphism iff it is so after applying a conservative family of exact functors. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Functor/ReflectsIso/Exact.lean + theorem CategoryTheory.JointlyReflectIsomorphisms.exactAt_iff + theorem CategoryTheory.JointlyReflectIsomorphisms.exact_iff + theorem CategoryTheory.JointlyReflectIsomorphisms.isZero_iff + theorem CategoryTheory.JointlyReflectIsomorphisms.quasiIsoAt_iff + theorem CategoryTheory.JointlyReflectIsomorphisms.quasiIso_iff + theorem CategoryTheory.JointlyReflectIsomorphisms.shortComplexQuasiIso_iff + theorem CategoryTheory.JointlyReflectIsomorphisms.shortExact_iff Added Mathlib/CategoryTheory/Functor/ReflectsIso/Limits.lean Modified Mathlib/CategoryTheory/Limits/Preserves/Basic.lean Modified Mathlib/CategoryTheory/Limits/Shapes/ZeroObjects.lean + theorem CategoryTheory.Limits.IsZero.isIso 2026-03-06 14:49:41 9535c3c feat(AlgebraicGeometry): the pro-étale site of a scheme (#35948) From Proetale. Co-authored by: Jiedong Jiang ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/AlgebraicGeometry/Morphisms/WeaklyEtale.lean + theorem AlgebraicGeometry.etale_le_weaklyEtale Added Mathlib/AlgebraicGeometry/Sites/Proetale.lean + def AlgebraicGeometry.Scheme.ProEt.forgetFullyFaithful + def AlgebraicGeometry.Scheme.ProEt.precoverage + theorem AlgebraicGeometry.Scheme.ProEt.topology_eq_inducedTopology + theorem AlgebraicGeometry.Scheme.etalePrecoverage_le_proetalePrecoverage + theorem AlgebraicGeometry.Scheme.etaleTopology_le_proetaleTopology + def AlgebraicGeometry.Scheme.proetalePrecoverage + theorem AlgebraicGeometry.Scheme.proetalePrecoverage_le_precoverage_weaklyEtale Modified Mathlib/AlgebraicGeometry/Sites/QuasiCompact.lean + theorem AlgebraicGeometry.Scheme.zariskiPrecoverage_le_propQCPrecoverage Modified Mathlib/CategoryTheory/Limits/MorphismProperty.lean Modified docs/references.bib 2026-03-06 14:49:39 a96921c feat: improve the mean value property of harmonic functions (#35778) Improving existing results, establish a mean value property for functions harmonic on a disk and continuous on its closure. ESTIMATED CHANGES Modified Mathlib/Analysis/Complex/Harmonic/MeanValue.lean + theorem HarmonicContOnCl.circleAverage_eq Modified Mathlib/MeasureTheory/Integral/CircleAverage.lean + theorem Real.ContinuousOn.circleAverage + theorem Real.ContinuousOn.eq_of_eqOn_Ioo + theorem Real.circleMap.continuous 2026-03-06 14:49:38 1c8d479 feat(Probability): Countable infimum of stopping times is a stopping time (#33372) ESTIMATED CHANGES Modified Mathlib/Probability/Process/Stopping.lean + theorem MeasureTheory.isStoppingTime_of_measurableSet_lt_of_isRightContinuous' + theorem MeasureTheory.isStoppingTime_of_measurableSet_lt_of_isRightContinuous 2026-03-06 13:45:37 2050510 chore(RingTheory/Valuation/RankOne): modify the definition of Valuation.RankOne using its range rather than its codomain (#26872) * try again * added restrict0 * Update Range.lean * removed min_imports * added results on restrict * added * removed spaces * removed imports * min some imports * Update Range.lean * created v.restrict * updated range * wip * some updates * fixed linter * wip * created mul_iso * Update Mathlib/Algebra/GroupWithZero/WithZero.lean * Update Mathlib/Algebra/GroupWithZero/WithZero.lean * Update Mathlib/Algebra/GroupWithZero/WithZero.lean * build fix * Update Mathlib/Algebra/GroupWithZero/WithZero.lean * fixed apostrophes * wip * perhaps stopping here * fixed build using Yakov' PR * updated * applied reviewer's suggestions * Update Mathlib/Algebra/Order/GroupWithZero/WithZero.lean * moving towards yakov's suggestion * Update Mathlib/Algebra/GroupWithZero/Range.lean * Update Mathlib/Algebra/Order/GroupWithZero/WithZero.lean * removed extra basic * Update Mathlib/Algebra/Order/GroupWithZero/Range.lean * Update Mathlib/Algebra/GroupWithZero/Range.lean * Update Range.lean * Update Range.lean * removed an equiv * fixed something * fix build * Update Mathlib/Algebra/GroupWithZero/Range.lean * Update Mathlib/Algebra/GroupWithZero/Range.lean * commented withZeroUnits_mul * first commit * Update Mathlib/Algebra/GroupWithZero/WithZero.lean * Update Mathlib/Algebra/GroupWithZero/WithZero.lean * moved variable * commented IsOrderedMonoid * fixed build * Update Mathlib/Algebra/GroupWithZero/Range.lean Yes, certainly much better, thanks. * fixed HomClass * addressed reviewer's comments * one more comment * one more comment * Update Mathlib/Algebra/Order/GroupWithZero/Range.lean * Update Mathlib/Algebra/Order/GroupWithZero/Range.lean * Update Mathlib/Algebra/Order/GroupWithZero/Range.lean * Update Mathlib/Algebra/GroupWithZero/Range.lean * updated name * Update Mathlib/Algebra/Order/GroupWithZero/Range.lean * changed capitalization * updated docstring * renaming * Update Mathlib/Algebra/GroupWithZero/Range.lean * Update Mathlib/Algebra/Order/GroupWithZero/Range.lean * fix build * fix build+reviewer's comments * fixed build * removed simp * reverted remove import * Update Mathlib/Algebra/Order/GroupWithZero/Range.lean * perhaps OK? * fixed capitalization of OrderEmbedding * mk_all * fix build * module * Update Mathlib/Algebra/Order/GroupWithZero/Range.lean * WIP * WIP * WIP * fix DiscreteValuativeRel * Update Mathlib/Algebra/GroupWithZero/Range.lean * WIP * WIP * WIP * WIP * WIP * WIP * WIP * WIP * remove simp lemma * WIP * WIP * WIP * last files * remove simp, add namespace * fix * remove decidable assumption * more changes * delete space * some build fix * add embedding_strictMono back * delete orderEmbedding * fix Valuation.Basic * update ValuativeRel.Basic * merging with some errors * almost fix build * tries * add WithVal.valueGroup₀_equiv * fill in proofs * add strictMono statement * closed strictMono_valueGroup₀_equiv * progress on IsEquiv.uniformContinuous_equivWithVal * WIP * partial fixes * another fix * fix one error * minigolf * add exists_div_eq_of_unit * added two lemmas while proving uniformContinuous_congr * WIP * prove IsEquiv.uniformContinuous_equiv * advancing on congr * added Salvatore's fix * WIP * delete old proof * valuation_compare fixed? who knows * WIP * ops * WIP * delete sorries * move lemma * wip * closed something * removed useless lemma * WIP * with barmonoid * WIP * trying with inv * WIP * WIP * fix name * prove order preserving * working on Kenny's prf * WIP * add orderMonoidIso * delete comments * wip * fix file * finish? * fixing some build * fixed other builds * fix * clean up * some golfing * first fifteen files are done * second round of reviews * fixed RatFunc notation * applied one correction * two deprecatsion and one ToD0 * added one reviewer's comment * first suggestion by Salvatore * Update Mathlib/Topology/Algebra/Valued/ValuedField.lean * WIP * one more leftover * even more leftovers * WIP * restored MI's trials * implemented more comments * add valueGroup.mk * fix merge issue * add missing docstrings * applied reviewer's comment * applied comments * review changes * review changes --------- ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/GroupWithZero/Range.lean + def MonoidWithZeroHom.ValueGroup₀.mk + theorem MonoidWithZeroHom.ValueGroup₀.mk_eq_of_ne_zero + theorem MonoidWithZeroHom.ValueGroup₀.zero_or_exists_mk' + theorem MonoidWithZeroHom.ValueGroup₀.zero_or_exists_mk + theorem MonoidWithZeroHom.mem_valueGroup_iff_of_comm' + def MonoidWithZeroHom.valueGroup.mk + theorem MonoidWithZeroHom.valueGroup.mk_inj + theorem MonoidWithZeroHom.valueGroup.mk_mul Modified Mathlib/FieldTheory/RatFunc/AsPolynomial.lean + theorem RatFunc.valuation_surjective Modified Mathlib/NumberTheory/FunctionField.lean +/- theorem FunctionField.valuedFqtInfty.def Modified Mathlib/NumberTheory/LocalField/Basic.lean Modified Mathlib/NumberTheory/NumberField/FinitePlaces.lean +/- theorem NumberField.RingOfIntegers.HeightOneSpectrum.FinitePlace.norm_def + theorem NumberField.RingOfIntegers.HeightOneSpectrum.rankOne_hom'_def Modified Mathlib/NumberTheory/Padics/Complex.lean + theorem PadicComplex.RankOne.hom_eq_embedding - theorem PadicComplex.rankOne_hom_eq Modified Mathlib/NumberTheory/Padics/HeightOneSpectrum.lean Modified Mathlib/NumberTheory/Padics/WithVal.lean Modified Mathlib/RingTheory/DedekindDomain/AdicValuation.lean + theorem IsDedekindDomain.HeightOneSpectrum.adicCompletion_valueGroup_eq +/- theorem IsDedekindDomain.HeightOneSpectrum.valuedAdicCompletion_def Modified Mathlib/RingTheory/LaurentSeries.lean + theorem LaurentSeries.valuation_surjective +/- theorem RatFunc.coe_X +/- theorem RatFunc.coe_coe Modified Mathlib/RingTheory/Valuation/Basic.lean + theorem Valuation.IsEquiv.eq_iff + theorem Valuation.IsEquiv.le_iff_le + theorem Valuation.IsEquiv.orderMonoidIso_spec - theorem Valuation.IsEquiv.val_eq + theorem Valuation.IsEquiv.valueGroup₀Fun_spec + theorem Valuation.IsEquiv.valueGroup₀Fun_zero + theorem Valuation.restrict_eq_mk Modified Mathlib/RingTheory/Valuation/Discrete/Basic.lean + theorem Valuation.IsRankOneDiscrete.embedding_generator' + theorem Valuation.IsRankOneDiscrete.generator'_lt_one + theorem Valuation.IsRankOneDiscrete.generator'_zpowers_eq_top Added Mathlib/RingTheory/Valuation/Discrete/RankOne.lean + theorem Valuation.IsRankOneDiscrete.generator_eq_neg_exp_one_of_surjective + theorem Valuation.IsRankOneDiscrete.valueGroup₀_equiv_withZeroMulInt_apply_zero + theorem Valuation.IsRankOneDiscrete.valueGroup₀_equiv_withZeroMulInt_apply_zpow + theorem Valuation.IsRankOneDiscrete.valueGroup₀_equiv_withZeroMulInt_restrict_apply_of_surjective + theorem Valuation.IsRankOneDiscrete.valueGroup₀_equiv_withZeroMulInt_strictMono Modified Mathlib/RingTheory/Valuation/DiscreteValuativeRel.lean Modified Mathlib/RingTheory/Valuation/Extension.lean Modified Mathlib/RingTheory/Valuation/RankOne.lean + theorem Valuation.RankLeOne.exists_val_lt + def Valuation.RankLeOne.rankOne_of_exists + def Valuation.RankLeOne.rankOne_of_nontrivial + theorem Valuation.RankOne.exists_val_lt +/- theorem Valuation.RankOne.hom_eq_zero_iff + theorem Valuation.RankOne.restrict_RankOne_hom_eq +/- theorem Valuation.RankOne.strictMono +/- theorem Valuation.RankOne.zero_of_hom_zero Modified Mathlib/RingTheory/Valuation/ValuativeRel/Basic.lean +/- def ValuativeRel.ValueGroupWithZero.embed +/- theorem ValuativeRel.ValueGroupWithZero.embed_valuation + theorem ValuativeRel.ValueGroupWithZero.embedding_embed_valuation + theorem ValuativeRel.leftInverse_embedding_embed + def ValuativeRel.valueGroupWithZero_equiv_valueGroup₀ Modified Mathlib/RingTheory/Valuation/ValuativeRel/Trivial.lean Modified Mathlib/Topology/Algebra/Valued/LocallyCompact.lean Modified Mathlib/Topology/Algebra/Valued/NormedValued.lean +/- theorem Valued.coe_valuation_eq_rankOne_hom_comp_valuation +/- def Valued.norm +/- theorem Valued.norm_def +/- theorem Valued.toNormedField.norm_le_iff +/- theorem Valued.toNormedField.norm_lt_iff Modified Mathlib/Topology/Algebra/Valued/ValuationTopology.lean +/- theorem Valuation.subgroups_basis +/- theorem Valued.hasBasis_uniformity +/- theorem Valued.isClopen_ball +/- theorem Valued.isClopen_closedBall +/- theorem Valued.isClopen_sphere +/- theorem Valued.isClosed_ball +/- theorem Valued.isClosed_closedBall +/- theorem Valued.isClosed_integer +/- theorem Valued.isClosed_sphere +/- theorem Valued.isOpen_ball +/- theorem Valued.isOpen_closedBall +/- theorem Valued.isOpen_integer +/- theorem Valued.isOpen_sphere +/- theorem Valued.mem_nhds +/- theorem Valued.mem_nhds_zero +/- theorem Valued.toUniformSpace_eq Modified Mathlib/Topology/Algebra/Valued/ValuativeRel.lean Modified Mathlib/Topology/Algebra/Valued/ValuedField.lean +/- theorem Valued.continuous_extension - theorem Valued.continuous_extensionValuation +/- theorem Valued.continuous_valuation + theorem Valued.continuous_valuation_of_surjective + theorem Valued.extensionValuation_toFun +/- theorem Valued.extension_eq_zero_iff +/- theorem Valued.extension_extends +/- theorem Valued.valuation_isClosedMap +/- theorem Valued.valuedCompletion_apply Modified Mathlib/Topology/Algebra/Valued/WithVal.lean + theorem Valuation.IsEquiv.uniformContinuous +/- theorem Valuation.IsEquiv.uniformContinuous_congr +/- theorem Valuation.IsEquiv.uniformContinuous_equiv +/- theorem Valuation.IsEquiv.uniformContinuous_equiv_symm +/- def Valuation.IsEquiv.uniformEquiv + theorem Valuation.restrict_exists_div_eq + theorem WithVal.strictMono_valueGroupEquiv + theorem WithVal.strictMono_valueGroupEquiv_symm + theorem WithVal.strictMono_valueGroupOrderIso₀ + theorem WithVal.strictMono_valueGroupOrderIso₀_symm +/- def WithVal.uniformEquiv + theorem WithVal.val_apply_equiv + def WithVal.valueGroupEquiv + def WithVal.valueGroupOrderIso₀ + theorem WithVal.valueGroupOrderIso₀_restrict + theorem WithVal.valueGroupOrderIso₀_symm_restrict + theorem WithVal.valueGroup_eq Modified Mathlib/Topology/Algebra/Valued/WithZeroMulInt.lean 2026-03-06 11:44:46 c328044 feat: lemmas about characteristic function (#36251) Characteristic function of a random variable multiplied by a constant. Characteristic function of a sum over a finite set. ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Measure/CharacteristicFunction/Basic.lean + theorem MeasureTheory.charFun_map_mul_comp + theorem MeasureTheory.charFun_map_smul_comp Modified Mathlib/Probability/Independence/Basic.lean Modified Mathlib/Probability/Independence/CharacteristicFunction.lean +/- theorem ProbabilityTheory.charFunDual_map_sum_pi_eq_prod +/- theorem ProbabilityTheory.charFun_map_sum_pi_eq_prod + theorem ProbabilityTheory.iIndepFun.charFunDual_map_finset_sum_eq_prod + theorem ProbabilityTheory.iIndepFun.charFunDual_map_fun_finset_sum_eq_prod +/- theorem ProbabilityTheory.iIndepFun.charFunDual_map_fun_sum_eq_prod +/- theorem ProbabilityTheory.iIndepFun.charFunDual_map_sum_eq_prod + theorem ProbabilityTheory.iIndepFun.charFun_map_finset_sum_eq_prod + theorem ProbabilityTheory.iIndepFun.charFun_map_fun_finset_sum_eq_prod +/- theorem ProbabilityTheory.iIndepFun.charFun_map_fun_sum_eq_prod +/- theorem ProbabilityTheory.iIndepFun.charFun_map_sum_eq_prod 2026-03-06 11:44:43 6a2d9f6 chore(Algebra/Group/Subgroup/Ker): add commonly used `map_subtype_inj` (#36249) This PR adds `Subgroup.map_subtype_inj` which has come up several times now. ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Subgroup/Ker.lean + theorem Subgroup.map_subtype_inj Modified Mathlib/GroupTheory/Focal.lean Modified Mathlib/GroupTheory/IsPerfect.lean Modified Mathlib/GroupTheory/SchurZassenhaus.lean Modified Mathlib/GroupTheory/Solvable.lean Modified Mathlib/GroupTheory/SpecificGroups/Alternating.lean Modified Mathlib/GroupTheory/Transfer.lean 2026-03-06 11:44:42 f365e50 feat(Analysis/Calculus): remove `[Finite ι]` assumption from `hasDerivAt_update` and `hasDerivAt_single` (#36213) Remove `[Finite ι]` assumption from `hasDerivAt_update` and `hasDerivAt_single`. ESTIMATED CHANGES Modified Mathlib/Analysis/Calculus/Deriv/Pi.lean 2026-03-06 11:44:39 7f31b36 feat(NumberTheory/Height/MvPolynomial): new file (#35925) We add a module Mathlib.NumberTheory.Height.MvPolynomial, whose contents are meant to be about height bounds for the image of a polynomial map between projective spaces with given basis, expressed in terms of coordinate tuples. This first instalment contains upper bounds for linea maps; upper and lower bounds for polynomial maps will follow. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/NumberTheory/Height/Basic.lean Added Mathlib/NumberTheory/Height/MvPolynomial.lean + theorem AbsoluteValue.iSup_abv_linearMap_apply_le + theorem Height.logHeight_linearMap_apply_le + theorem Height.mulHeight_linearMap_apply_le + theorem IsNonarchimedean.apply_sum_le + theorem IsNonarchimedean.iSup_abv_linearMap_apply_le 2026-03-06 11:44:36 8262051 feat(Topology/Homotopy/Basic): maps homotopic rel S agree on S (#35866) ESTIMATED CHANGES Modified Mathlib/Topology/Homotopy/Basic.lean + theorem ContinuousMap.HomotopicRel.fst_eq_snd 2026-03-06 11:44:34 e00d9a7 chore(RingTheory): fix indentation in markdown lists (#35439) Make sure to also indent subsequent lines of an item: this is required by the markdown specification (though not doc-gen), it expresses intent more clearly, and makes it easier to catch accidental misindentations. ESTIMATED CHANGES Modified Mathlib/RingTheory/DedekindDomain/Factorization.lean Modified Mathlib/RingTheory/DividedPowers/Basic.lean Modified Mathlib/RingTheory/DividedPowers/DPMorphism.lean Modified Mathlib/RingTheory/DividedPowers/RatAlgebra.lean Modified Mathlib/RingTheory/Etale/QuasiFinite.lean Modified Mathlib/RingTheory/Extension/Basic.lean Modified Mathlib/RingTheory/Flat/EquationalCriterion.lean Modified Mathlib/RingTheory/Ideal/Quotient/PowTransition.lean Modified Mathlib/RingTheory/IdealFilter/Topology.lean Modified Mathlib/RingTheory/IntegralClosure/IntegralRestrict.lean Modified Mathlib/RingTheory/Jacobson/Artinian.lean Modified Mathlib/RingTheory/MvPolynomial/Groebner.lean Modified Mathlib/RingTheory/MvPowerSeries/Basic.lean Modified Mathlib/RingTheory/MvPowerSeries/Expand.lean Modified Mathlib/RingTheory/MvPowerSeries/NoZeroDivisors.lean Modified Mathlib/RingTheory/MvPowerSeries/Order.lean Modified Mathlib/RingTheory/NormalClosure.lean Modified Mathlib/RingTheory/Perfectoid/BDeRham.lean Modified Mathlib/RingTheory/Perfectoid/FontaineTheta.lean Modified Mathlib/RingTheory/PolynomialLaw/Basic.lean Modified Mathlib/RingTheory/PowerSeries/PiTopology.lean Modified Mathlib/RingTheory/ReesAlgebra.lean Modified Mathlib/RingTheory/RingHom/FiniteType.lean Modified Mathlib/RingTheory/UniqueFactorizationDomain/ClassGroup.lean Modified Mathlib/RingTheory/WittVector/TeichmullerSeries.lean Modified Mathlib/RingTheory/ZMod/UnitsCyclic.lean 2026-03-06 09:45:47 b029f5e feat: the power converges to exp (#36247) Prove that `(1 + t/n + o(1/n)) ^ n → exp t` for `t ∈ ℂ`. Co-authored-by @hanwenzhu ESTIMATED CHANGES Modified Mathlib/Analysis/SpecialFunctions/Complex/LogBounds.lean + theorem Complex.tendsto_pow_exp_of_isLittleO_sub_add_div 2026-03-06 09:45:44 87847ca feat(Finset): add `card_le_one_iff_subsingleton` (#36209) We have `card_le_one_iff_subsingleton_coe` for the coercion to type, but the coercion to set is (often) more useful. ESTIMATED CHANGES Modified Mathlib/Data/Finset/Card.lean + theorem Finset.card_le_one_iff_subsingleton 2026-03-06 09:45:42 451735f feat(CategoryTheory/Sites): fiber functors invert morphisms which become isomorphisms after sheafification (#35961) The assumptions on the target category are relaxed. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Sites/Point/Basic.lean + theorem CategoryTheory.GrothendieckTopology.Point.W_isInvertedBy_presheafFiber' - theorem CategoryTheory.GrothendieckTopology.Point.W_isInvertedBy_presheafFiber Modified Mathlib/CategoryTheory/Sites/Point/Conservative.lean Modified Mathlib/CategoryTheory/Sites/Point/Skyscraper.lean + theorem CategoryTheory.GrothendieckTopology.Point.W_isInvertedBy_presheafFiber + theorem CategoryTheory.GrothendieckTopology.Point.skyscraperPresheafHomEquiv_naturality_left 2026-03-06 09:45:40 a005b7e fix(Tactic): make `eta_expand` idempotent (#35607) The docstring of `eta_expand` says that it puts terms into a normal form, implying that it is idempontent, however, this is not the case in some tricky cases. This PR changes `eta_expand` so that it gives the normal form in one step. ESTIMATED CHANGES Modified Mathlib/Tactic/DefEqTransformations.lean Modified MathlibTest/DefEqTransformations.lean 2026-03-06 09:45:37 ab0ddc2 refactor(PiTensorProduct/{InjectiveNorm, ProjectiveNorm}): Golfs (#35567) This PR cleans up the proofs in Analysis/Normed/Module/PiTensorProduct/{InjectiveSeminorm.lean, ProjectiveSeminorm.lean} In addition, it performs the following minor structural changes: * Weaken assumptions from `NontriviallyNormedField 𝕜` to `NormedField 𝕜` where possible * The proofs showing that `projectiveSeminorm` actually defines a `Seminorm` are split off into separate lemmas. This mimics the idiom used e.g. in `Analysis.Normed.Modula.Operator.Basic` to define the operator norm. * Register a `Nonempty x.lifts` instance in PiTensorProduct.lean, to avoid creating a half-dozen local instances. This is the first in a series of three PRs with the goal to [deprecate `PiTensorProuduct.injectiveSeminorm`](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/injectiveSeminorm/with/568798633). ESTIMATED CHANGES Modified Mathlib/Analysis/Normed/Module/PiTensorProduct/InjectiveSeminorm.lean Modified Mathlib/Analysis/Normed/Module/PiTensorProduct/ProjectiveSeminorm.lean + theorem PiTensorProduct.projectiveSeminorm_add_le + theorem PiTensorProduct.projectiveSeminorm_smul_le + theorem PiTensorProduct.projectiveSeminorm_zero Modified Mathlib/LinearAlgebra/PiTensorProduct.lean 2026-03-06 09:14:15 fc5a886 feat: dividing a Gaussian random variable by a constant (#36248) ESTIMATED CHANGES Modified Mathlib/Probability/Distributions/Gaussian/Real.lean + theorem ProbabilityTheory.gaussianReal_div_const + theorem ProbabilityTheory.gaussianReal_map_div_const 2026-03-06 09:14:14 7424ab9 chore(CategoryTheory/Sites): extract characterization of topology in terms of subobject classifier (#36221) We extract the following marvelous lemma from an existing proof by Bhavik Mehta: Let `J` be a Grothendieck topology and `S` a sieve. Then `S` is covering for `J` if and only if the subobject classifier of `Sheaf J (Type max u v)` (the sheaf of closed `J`-sieves) is a sheaf for `S`. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Sites/Closed.lean + theorem CategoryTheory.GrothendieckTopology.mem_iff_isSheafFor_closedSieves 2026-03-06 09:14:12 58db26d feat: lemmas about `Measure.count` (#36205) * Also add some `gcongr` attributes for `Real.toENNReal`. Used for Sobolev spaces ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Data/Real/ENatENNReal.lean Added Mathlib/MeasureTheory/Function/LpSeminorm/Count.lean + theorem MeasureTheory.eLpNorm_count_lt_top + theorem MeasureTheory.eLpNorm_count_lt_top_of_lt + theorem MeasureTheory.eLpNorm_dirac + theorem MeasureTheory.enorm_le_eLpNorm_count Modified Mathlib/MeasureTheory/Measure/Count.lean + theorem Function.Injective.map_count_le + theorem Subsingleton.count_eq_dirac + theorem Unique.count_eq_dirac 2026-03-06 09:14:09 1ae138b chore: use the API instead of the definition on Equiv.ofBijective (#36191) We modify declarations that use the actual definition of `Equiv.ofBijective` instead on relying on the API. With these modifications mathlib compiles with ```lean noncomputable def ofBijective (f : α → β) (hf : Bijective f) : α ≃ β where toFun := f invFun := sorry left_inv := sorry right_inv := sorry ``` ESTIMATED CHANGES Modified Mathlib/FieldTheory/Perfect.lean Modified Mathlib/Topology/Homeomorph/Lemmas.lean 2026-03-06 08:34:15 5a04c9c feat: (continuous) bilinear map (#36193) On the path towards Riemannian geometry. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/LinearAlgebra/BilinearMap.lean + def IsBilinearMap.toLinearMap + structure IsBilinearMap Added Mathlib/Topology/Algebra/Module/FiniteDimensionBilinear.lean + def ContinuousLinearMap.evalL + theorem ContinuousLinearMap.evalL_apply + def IsBilinearMap.toContinuousBilinearMap + theorem IsBilinearMap.toContinuousBilinearMap_apply + def LinearMap.toContinuousBilinearMap + theorem LinearMap.toContinuousBilinearMap_apply 2026-03-06 08:34:14 844193d refactor(CategoryTheory/Sites): redefine the category of sheaves using `ObjectProperty.FullSubcategory` (#36081) This PR refactors `Sheaf` so that it becomes a fullsubcategory of the category of presheaves. Mostly it changes `val` into `obj` or `hom` (deprecated alias have been added for the non-automatically generated lemmas). Functors to categories of sheaves are now constructed using `ObectProperty.lift`. (I have used the output of Claude from #36129 only in order to fix the single remaining sorry in `Condensed.Discrete.LocallyConstant`). ESTIMATED CHANGES Modified Mathlib/Algebra/Category/ModuleCat/Presheaf/Sheafification.lean Modified Mathlib/Algebra/Category/ModuleCat/Presheaf/Sheafify.lean +/- theorem PresheafOfModules.Sheafify.map_smul_eq +/- theorem PresheafOfModules.comp_toPresheaf_map_sheafifyHomEquiv'_symm_hom Modified Mathlib/Algebra/Category/ModuleCat/Sheaf.lean +/- def SheafOfModules.evaluation +/- def SheafOfModules.forget Modified Mathlib/Algebra/Category/ModuleCat/Sheaf/Abelian.lean Modified Mathlib/Algebra/Category/ModuleCat/Sheaf/ChangeOfRings.lean Modified Mathlib/Algebra/Category/ModuleCat/Sheaf/Colimits.lean Modified Mathlib/Algebra/Category/ModuleCat/Sheaf/Limits.lean Modified Mathlib/Algebra/Category/ModuleCat/Sheaf/Localization.lean Modified Mathlib/Algebra/Category/ModuleCat/Sheaf/PullbackContinuous.lean Modified Mathlib/Algebra/Category/ModuleCat/Sheaf/PullbackFree.lean +/- theorem SheafOfModules.unitToPushforwardObjUnit_val_app_apply Modified Mathlib/Algebra/Category/ModuleCat/Sheaf/PushforwardContinuous.lean Modified Mathlib/AlgebraicGeometry/AffineScheme.lean Modified Mathlib/AlgebraicGeometry/GammaSpecAdjunction.lean Modified Mathlib/AlgebraicGeometry/GluingOneHypercover.lean +/- theorem AlgebraicGeometry.Scheme.GlueData.sheafValGluedMk_val Modified Mathlib/AlgebraicGeometry/Modules/Presheaf.lean Modified Mathlib/AlgebraicGeometry/Modules/Sheaf.lean Modified Mathlib/AlgebraicGeometry/Modules/Tilde.lean Modified Mathlib/AlgebraicGeometry/Morphisms/QuasiCompact.lean Modified Mathlib/AlgebraicGeometry/ProjectiveSpectrum/StructureSheaf.lean Modified Mathlib/AlgebraicGeometry/Sites/Representability.lean Modified Mathlib/AlgebraicGeometry/Spec.lean Modified Mathlib/AlgebraicGeometry/SpreadingOut.lean Modified Mathlib/AlgebraicGeometry/StructureSheaf.lean Modified Mathlib/CategoryTheory/Generator/Sheaf.lean Modified Mathlib/CategoryTheory/Sites/Adjunction.lean + theorem CategoryTheory.Sheaf.adjunction_counit_app_hom - theorem CategoryTheory.Sheaf.adjunction_counit_app_val + theorem CategoryTheory.Sheaf.adjunction_unit_app_hom - theorem CategoryTheory.Sheaf.adjunction_unit_app_val Modified Mathlib/CategoryTheory/Sites/CartesianClosed.lean Modified Mathlib/CategoryTheory/Sites/CartesianMonoidal.lean + theorem CategoryTheory.Sheaf.cartesianMonoidalCategoryFst_hom - theorem CategoryTheory.Sheaf.cartesianMonoidalCategoryFst_val + theorem CategoryTheory.Sheaf.cartesianMonoidalCategoryLift_hom - theorem CategoryTheory.Sheaf.cartesianMonoidalCategoryLift_val + theorem CategoryTheory.Sheaf.cartesianMonoidalCategorySnd_hom - theorem CategoryTheory.Sheaf.cartesianMonoidalCategorySnd_val + theorem CategoryTheory.Sheaf.cartesianMonoidalCategoryWhiskerLeft_hom - theorem CategoryTheory.Sheaf.cartesianMonoidalCategoryWhiskerLeft_val + theorem CategoryTheory.Sheaf.cartesianMonoidalCategoryWhiskerRight_hom - theorem CategoryTheory.Sheaf.cartesianMonoidalCategoryWhiskerRight_val +/- theorem CategoryTheory.Sheaf.tensorProd_isSheaf Modified Mathlib/CategoryTheory/Sites/Coherent/Equivalence.lean Modified Mathlib/CategoryTheory/Sites/Coherent/ExtensiveColimits.lean Modified Mathlib/CategoryTheory/Sites/Coherent/ExtensiveSheaves.lean Modified Mathlib/CategoryTheory/Sites/Coherent/LocallySurjective.lean Modified Mathlib/CategoryTheory/Sites/Coherent/SequentialLimit.lean Modified Mathlib/CategoryTheory/Sites/Coherent/SheafComparison.lean Modified Mathlib/CategoryTheory/Sites/ConcreteSheafification.lean Modified Mathlib/CategoryTheory/Sites/ConstantSheaf.lean + theorem CategoryTheory.constantCommuteCompose_hom_app_hom - theorem CategoryTheory.constantCommuteCompose_hom_app_val Modified Mathlib/CategoryTheory/Sites/Continuous.lean +/- def CategoryTheory.Functor.sheafPushforwardContinuous Modified Mathlib/CategoryTheory/Sites/CoverLifting.lean + theorem CategoryTheory.Functor.pushforwardContinuousSheafificationCompatibility_hom_app_hom - theorem CategoryTheory.Functor.pushforwardContinuousSheafificationCompatibility_hom_app_val + theorem CategoryTheory.Functor.sheafAdjunctionCocontinuous_counit_app_hom - theorem CategoryTheory.Functor.sheafAdjunctionCocontinuous_counit_app_val + theorem CategoryTheory.Functor.sheafAdjunctionCocontinuous_homEquiv_apply_hom - theorem CategoryTheory.Functor.sheafAdjunctionCocontinuous_homEquiv_apply_val + theorem CategoryTheory.Functor.sheafAdjunctionCocontinuous_unit_app_hom - theorem CategoryTheory.Functor.sheafAdjunctionCocontinuous_unit_app_val +/- def CategoryTheory.Functor.sheafPushforwardCocontinuous Modified Mathlib/CategoryTheory/Sites/CoverPreserving.lean Modified Mathlib/CategoryTheory/Sites/DenseSubsite/Basic.lean +/- theorem CategoryTheory.Functor.IsCoverDense.ext +/- def CategoryTheory.Functor.IsCoverDense.homOver +/- def CategoryTheory.Functor.IsCoverDense.isoOver +/- theorem CategoryTheory.Functor.IsCoverDense.iso_of_restrict_iso +/- theorem CategoryTheory.Functor.IsCoverDense.sheafHom_eq +/- theorem CategoryTheory.Functor.IsCoverDense.sheafHom_restrict_eq Modified Mathlib/CategoryTheory/Sites/DenseSubsite/OneHypercoverDense.lean Modified Mathlib/CategoryTheory/Sites/DenseSubsite/SheafEquiv.lean Modified Mathlib/CategoryTheory/Sites/Descent/IsPrestack.lean Modified Mathlib/CategoryTheory/Sites/Equivalence.lean +/- def CategoryTheory.Equivalence.sheafCongr.functor +/- def CategoryTheory.Equivalence.sheafCongr.inverse Modified Mathlib/CategoryTheory/Sites/GlobalSections.lean Modified Mathlib/CategoryTheory/Sites/Hypercover/One.lean +/- theorem CategoryTheory.GrothendieckTopology.OneHypercover.multiforkLift_map Modified Mathlib/CategoryTheory/Sites/Limits.lean Modified Mathlib/CategoryTheory/Sites/Localization.lean Modified Mathlib/CategoryTheory/Sites/LocallyBijective.lean Modified Mathlib/CategoryTheory/Sites/LocallyFullyFaithful.lean Modified Mathlib/CategoryTheory/Sites/LocallyInjective.lean Modified Mathlib/CategoryTheory/Sites/LocallySurjective.lean Modified Mathlib/CategoryTheory/Sites/MayerVietorisSquare.lean Modified Mathlib/CategoryTheory/Sites/Over.lean Modified Mathlib/CategoryTheory/Sites/Point/Conservative.lean Modified Mathlib/CategoryTheory/Sites/Point/Skyscraper.lean + theorem CategoryTheory.GrothendieckTopology.Point.skyscraperSheafAdjunction_homEquiv_apply_hom - theorem CategoryTheory.GrothendieckTopology.Point.skyscraperSheafAdjunction_homEquiv_apply_val Modified Mathlib/CategoryTheory/Sites/PreservesSheafification.lean Modified Mathlib/CategoryTheory/Sites/RegularEpi.lean Modified Mathlib/CategoryTheory/Sites/Sheaf.lean +/- theorem CategoryTheory.Sheaf.Hom.add_app - structure CategoryTheory.Sheaf.Hom + theorem CategoryTheory.Sheaf.cond +/- theorem CategoryTheory.Sheaf.hom_ext + theorem CategoryTheory.Sheaf.hom_ext_iff - structure CategoryTheory.Sheaf - def CategoryTheory.fullyFaithfulSheafToPresheaf - def CategoryTheory.sheafToPresheaf Modified Mathlib/CategoryTheory/Sites/SheafHom.lean Modified Mathlib/CategoryTheory/Sites/Sheafification.lean Modified Mathlib/CategoryTheory/Sites/Subcanonical.lean +/- def CategoryTheory.GrothendieckTopology.yonedaEquiv +/- theorem CategoryTheory.GrothendieckTopology.yonedaEquiv_symm_app_apply +/- theorem CategoryTheory.GrothendieckTopology.yonedaEquiv_symm_map Modified Mathlib/CategoryTheory/Sites/Subsheaf.lean Modified Mathlib/CategoryTheory/Sites/Types.lean Modified Mathlib/CategoryTheory/Sites/Whiskering.lean +/- def CategoryTheory.sheafCompose Modified Mathlib/Condensed/Basic.lean + theorem Condensed.comp_hom - theorem Condensed.comp_val +/- theorem Condensed.hom_ext + theorem Condensed.id_hom - theorem Condensed.id_val Modified Mathlib/Condensed/CartesianClosed.lean Modified Mathlib/Condensed/Discrete/Characterization.lean Modified Mathlib/Condensed/Discrete/Colimit.lean Modified Mathlib/Condensed/Discrete/LocallyConstant.lean Modified Mathlib/Condensed/Discrete/Module.lean Modified Mathlib/Condensed/Epi.lean Modified Mathlib/Condensed/Equivalence.lean Modified Mathlib/Condensed/Explicit.lean +/- theorem Condensed.equalizerCondition Modified Mathlib/Condensed/Light/Basic.lean + theorem LightCondensed.comp_hom - theorem LightCondensed.comp_val +/- theorem LightCondensed.hom_ext + theorem LightCondensed.id_hom - theorem LightCondensed.id_val Modified Mathlib/Condensed/Light/CartesianClosed.lean Modified Mathlib/Condensed/Light/Epi.lean Modified Mathlib/Condensed/Light/Explicit.lean +/- theorem LightCondensed.equalizerCondition Modified Mathlib/Condensed/Light/InternallyProjective.lean Modified Mathlib/Condensed/Light/Module.lean Modified Mathlib/Condensed/Light/TopCatAdjunction.lean +/- theorem LightCondSet.continuous_coinducingCoprod Modified Mathlib/Condensed/Module.lean Modified Mathlib/Condensed/TopCatAdjunction.lean +/- theorem CondensedSet.continuous_coinducingCoprod Modified Mathlib/Condensed/TopComparison.lean Modified Mathlib/Geometry/Manifold/Sheaf/Basic.lean Modified Mathlib/Geometry/Manifold/Sheaf/LocallyRingedSpace.lean Modified Mathlib/Geometry/Manifold/Sheaf/Smooth.lean +/- def smoothSheafCommRing +/- def smoothSheafRing Modified Mathlib/Geometry/RingedSpace/Basic.lean Modified Mathlib/Topology/Sheaves/CommRingCat.lean Modified Mathlib/Topology/Sheaves/Functors.lean Modified Mathlib/Topology/Sheaves/Sheaf.lean Modified Mathlib/Topology/Sheaves/SheafCondition/Sites.lean +/- def TopCat.Sheaf.isTerminalOfEmpty Modified Mathlib/Topology/Sheaves/SheafCondition/UniqueGluing.lean Modified Mathlib/Topology/Sheaves/Skyscraper.lean Modified Mathlib/Topology/Sheaves/Stalks.lean 2026-03-06 08:00:33 08e81c6 feat(RingTheory/Ideal/Span): two lemmas for span (range x) (#36229) ESTIMATED CHANGES Modified Mathlib/RingTheory/Ideal/Span.lean + theorem Ideal.span_range_eq_iSup + theorem Ideal.span_range_eq_span_range_support 2026-03-06 05:52:19 fad8d3a feat(Data): some lemmas about WithBot ENat (#28582) Add some lemma about withBot ENat discovered when dealing with `ringKrullDim` ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Monoid/Unbundled/WithTop.lean + theorem AddLECancellable.withBot + theorem AddLECancellable.withTop + theorem IsAddLeftRegular.withBot + theorem IsAddLeftRegular.withTop + theorem IsAddRightRegular.withBot + theorem IsAddRightRegular.withTop Modified Mathlib/CategoryTheory/Abelian/Injective/Dimension.lean Modified Mathlib/CategoryTheory/Abelian/Projective/Dimension.lean Modified Mathlib/Data/ENat/Basic.lean + theorem ENat.WithBot.add_le_add_natCast_left_iff + theorem ENat.WithBot.add_le_add_natCast_right_iff + theorem ENat.WithBot.add_le_add_one_left_iff + theorem ENat.WithBot.add_le_add_one_right_iff + theorem ENat.WithBot.add_natCast_cancel + theorem ENat.WithBot.add_ofNat_cancel + theorem ENat.WithBot.add_one_cancel + theorem ENat.WithBot.add_one_le_iff + theorem ENat.WithBot.lt_add_one_iff + theorem ENat.WithBot.natCast_add_cancel + theorem ENat.WithBot.ofNat_add_cancel + theorem ENat.WithBot.one_add_cancel - theorem WithBot.add_one_le_iff - theorem WithBot.lt_add_one_iff Modified Mathlib/Order/KrullDimension.lean 2026-03-06 04:53:11 27a737d feat(LinearAlgebra/ExteriorAlgebra): `Basis` for `ExteriorAlgebra` (#35424) Adds a basis for the `ExteriorAlgebra` over a module given a basis for that module along with some basic API. Important lemmas include * `basis_eq_coe_basis` : each basis element on `ExteriorAlgebra` corresponds to a basis element on an `exteriorPower` * `basis_mul_of_not_disjoint` : the product of basis elements whose index sets are not disjoint * `basis_mul_of_disjoint` : the product of basis elements whose index sets are disjoint ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Data/Set/PowersetCard.lean + theorem Set.powersetCard.ofCard_coe +/- theorem Set.powersetCard.prodEquiv_symm_apply Added Mathlib/LinearAlgebra/ExteriorAlgebra/Basis.lean + theorem ExteriorAlgebra.basis_apply + theorem ExteriorAlgebra.basis_apply_ofCard + theorem ExteriorAlgebra.basis_apply_powersetCard + theorem ExteriorAlgebra.basis_eq_coe_basis + theorem ExteriorAlgebra.basis_mul_of_disjoint + theorem ExteriorAlgebra.basis_mul_of_not_disjoint 2026-03-06 03:50:17 95dde25 feat(Cache): warn when downstream project pins different dependency versions (#36173) This PR adds a check in `lake exe cache get` that detects when a downstream project's `lake-manifest.json` pins shared dependencies at different sources than mathlib's manifest. When this happens, `lake exe cache get` computes wrong hashes (because `LEAN_SRC_PATH` resolves source files from the downstream project's dependency versions) and downloads 0 files with no explanation. Uses `Lake.Manifest.tryLoadEntries` and `Lake.PackageEntry` rather than hand-rolling JSON parsing. Compares the full source (url, rev, subDir) not just rev, and also detects git-vs-path mismatches. Distinguishes direct vs inherited (transitive) dependencies via `PackageEntry.inherited`, giving different advice for each case: - Direct deps: "Remove these dependencies from your lakefile and let them come transitively from Mathlib." - Inherited deps (e.g. via doc-gen): "Try putting `require mathlib` last in your lakefile so that Mathlib's versions take precedence, then run `lake update`." Context: https://leanprover.zulipchat.com/#narrow/channel/113488-general/topic/.60lake.20exe.20cache.20get.60.20does.20not.20download.20mathlib/near/577412808 🤖 Prepared with Claude Code ESTIMATED CHANGES Modified Cache/Requests.lean + def Cache.Requests.checkForManifestMismatch + def Cache.Requests.packageEntrySrcDesc + def Cache.Requests.packageEntrySrcMatch 2026-03-06 01:12:25 95d07df feat(NumberTheory/ArithmeticFunction/Defs): a finite product of multiplicative functions is multiplicative (#36200) This PR proves that a finite product of multiplicative functions is multiplicative. ESTIMATED CHANGES Modified Mathlib/NumberTheory/ArithmeticFunction/Defs.lean + theorem ArithmeticFunction.isMultiplicative_finsetProd 2026-03-06 01:12:23 a3b1103 chore(SetTheory/Ordinal/Arithmetic): remove `backward.privateInPublic` (#35851) ESTIMATED CHANGES Modified Mathlib/SetTheory/Ordinal/Arithmetic.lean 2026-03-06 01:12:20 5dfa22a feat(ContinuousAlternatingMap): generalize some definitions (#34513) ESTIMATED CHANGES Modified Mathlib/Analysis/Normed/Module/Alternating/Basic.lean - def ContinuousAlternatingMap.compContinuousLinearMapCLM - theorem ContinuousAlternatingMap.compContinuousLinearMapCLM_apply + theorem ContinuousAlternatingMap.continuous_compContinuousLinearMapCLM - def ContinuousLinearEquiv.continuousAlternatingMapCongr - def ContinuousLinearEquiv.continuousAlternatingMapCongrLeft - def ContinuousLinearEquiv.continuousAlternatingMapCongrRight - theorem ContinuousLinearEquiv.continuousAlternatingMapCongrRight_symm - def ContinuousLinearMap.compContinuousAlternatingMapCLM Modified Mathlib/Topology/Algebra/Module/Alternating/Topology.lean + def ContinuousAlternatingMap.compContinuousLinearMapCLM + def ContinuousLinearEquiv.continuousAlternatingMapCongr + def ContinuousLinearEquiv.continuousAlternatingMapCongrLeft + def ContinuousLinearEquiv.continuousAlternatingMapCongrRight + theorem ContinuousLinearEquiv.continuousAlternatingMapCongrRight_symm + def ContinuousLinearMap.compContinuousAlternatingMapCLM 2026-03-06 00:15:40 c11cb8e feat(Lean/FoldEnvironment): efficient folding through the environment (#36207) This PR defines a function for folding through all declarations in the environment. I need this for `#infoview_search`. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Lean/FoldEnvironment.lean + def Lean.Meta.foldModules + def Lean.Meta.visitConst 2026-03-06 00:15:38 e51b9f1 feat(Tactic/Widget/Conv): expose API for creating conv syntax (#36157) This PR exposes some functions used by the `conv?` widget. This is needed for `#infoview_search`. ESTIMATED CHANGES Modified Mathlib/Tactic/Widget/Conv.lean - inductive Mathlib.Tactic.Conv.Path - def Mathlib.Tactic.Conv.pathToStx 2026-03-06 00:15:37 89c5d63 feat(CategoryTheory/Topos/Classifier): subobject classifiers, isos and equivalences (#35895) this PR adds `Classifier.ofEquivalence`, `Classifier.ofIso` and `Classifier.uniqueUpToIso`, as well as accompanying lemmas ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Topos/Classifier.lean + def CategoryTheory.Classifier.hom + theorem CategoryTheory.Classifier.hom_comp_hom + theorem CategoryTheory.Classifier.hom_refl + def CategoryTheory.Classifier.ofEquivalence + def CategoryTheory.Classifier.ofIso + theorem CategoryTheory.Classifier.truth_comp_hom + def CategoryTheory.Classifier.uniqueUpToIso + theorem CategoryTheory.Classifier.χ_comp_hom 2026-03-06 00:15:35 d75e7c2 feat(Topology/Algebra/Module/LinearMap): units in `M →L[R] M` are homeomorphisms (#35268) This PR proves that a units in `M →L[R] M` are homeomorphisms. ESTIMATED CHANGES Modified Mathlib/Analysis/Normed/Module/Basic.lean Modified Mathlib/Topology/Algebra/Module/LinearMap.lean + def ContinuousLinearMap.homeomorphOfUnit + theorem ContinuousLinearMap.isHomeomorph_of_isUnit 2026-03-06 00:15:33 c3371b9 feat(CategoryTheory/Sites): points of presheaf toposes (#35201) Let `C` be a category. For the Grothendieck topology `⊥`, we know that the category of sheaves with values in `A` identify to `Cᵒᵖ ⥤ A`. In this PR, we show that any `X : C` defines a point for this site, and that these points form a conservative family of points. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/CategoryTheory/Limits/Presheaf.lean Modified Mathlib/CategoryTheory/Limits/Shapes/IsTerminal.lean + def CategoryTheory.Limits.IsInitial.op + def CategoryTheory.Limits.IsInitial.unop + def CategoryTheory.Limits.IsTerminal.op + def CategoryTheory.Limits.IsTerminal.unop Added Mathlib/CategoryTheory/Sites/Point/Presheaf.lean + theorem CategoryTheory.GrothendieckTopology.isConservative_pointsBot Modified Mathlib/CategoryTheory/Sites/Sheafification.lean 2026-03-06 00:15:31 d3be269 feat(to_dual): support recursively reordering arguments (#34863) This PR implements the feature of recursively reordering arguments of arguments in `to_dual`. All of the material on reorderings has been put in the new file `Mathlib.Tactic.Translate.Reorder`. Ideally, when tagging a structure with `to_dual`, it will try to automatically add the correct `reorder` arguments. But this is only a small quality of life improvement, so I will leave that for a potential future PR. Currently, you have to manually re-tag the projections and constructor if you want them to get a `reorder`. This PR also improves the trace messages of `trace.translate_detail`. This PR also adds new error messages for when the given `(reorder := ...)` is malformed. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/CategoryTheory/Iso.lean - theorem CategoryTheory.Iso.ext_inv Modified Mathlib/Data/Array/Defs.lean Modified Mathlib/Order/Basic.lean Modified Mathlib/Order/BoundedOrder/Basic.lean - theorem OrderBot.ext_bot Modified Mathlib/Order/Defs/PartialOrder.lean Modified Mathlib/Order/Directed.lean - theorem directed_of_isDirected_ge Modified Mathlib/Order/Hom/Basic.lean Modified Mathlib/Order/Lattice.lean - theorem SemilatticeInf.dual_dual - theorem SemilatticeInf.ext - theorem SemilatticeInf.ext_inf Modified Mathlib/Tactic.lean Modified Mathlib/Tactic/ToDual.lean Modified Mathlib/Tactic/Translate/Core.lean - def Mathlib.Tactic.Translate.List.swapFirstTwo - def Mathlib.Tactic.Translate.elabArgStx - def Mathlib.Tactic.Translate.guessReorder - def Mathlib.Tactic.Translate.reorderForall - def Mathlib.Tactic.Translate.reorderLambda Added Mathlib/Tactic/Translate/Reorder.lean + def Mathlib.Tactic.Translate.Reorder.isEmpty + def Mathlib.Tactic.Translate.Reorder.permute! + def Mathlib.Tactic.Translate.Reorder.permuteUniv + def Mathlib.Tactic.Translate.Reorder.range + def Mathlib.Tactic.Translate.Reorder.reverse + structure Mathlib.Tactic.Translate.Reorder + def Mathlib.Tactic.Translate.elabArgStx Modified Mathlib/Tactic/Translate/ToDual.lean Modified MathlibTest/ToDual.lean + def SemilatticeSup.casesOn' + theorem SemilatticeSup.ext + def SemilatticeSup.foo + inductive WithBot.LE + inductive WithBot + inductive WithTop.LE + inductive WithTop + theorem le_imp_le_of_forall Modified MathlibTest/toAdditive.lean 2026-03-05 23:10:19 af2d194 chore: bump mathlib-ci ref to include zulip emoji bot changes (#36231) This bumps the ref to mathlib-ci from `7355aeb` to `4af75ac`, picking up https://github.com/leanprover-community/mathlib-ci/pull/5 ESTIMATED CHANGES Modified .github/workflows/PR_summary.yml Modified .github/workflows/build_template.yml Modified .github/workflows/commit_verification.yml Modified .github/workflows/latest_import.yml Modified .github/workflows/long_file_report.yml Modified .github/workflows/maintainer_bors.yml Modified .github/workflows/maintainer_bors_wf_run.yml Modified .github/workflows/maintainer_merge.yml Modified .github/workflows/maintainer_merge_wf_run.yml Modified .github/workflows/nightly-regression-report.yml Modified .github/workflows/nightly_bump_and_merge.yml Modified .github/workflows/nightly_detect_failure.yml Modified .github/workflows/technical_debt_metrics.yml Modified .github/workflows/update_dependencies_zulip.yml Modified .github/workflows/weekly-lints.yml Modified .github/workflows/zulip_emoji_ci_status.yaml Modified .github/workflows/zulip_emoji_closed_pr.yaml Modified .github/workflows/zulip_emoji_labelling.yaml Modified .github/workflows/zulip_emoji_merge_delegate.yaml 2026-03-05 23:10:17 8bb9eea feat(Order/GroupWithZero/Unbundled/Basic): {antitone|strictAnti}On_inv_pos (#36222) This adds two lemmas saying that `x ↦ x⁻¹` is (strictly) antitone on positive elements (under suitable assumptions). ESTIMATED CHANGES Modified Mathlib/Algebra/Order/GroupWithZero/Unbundled/Basic.lean + theorem antitoneOn_inv_pos + theorem strictAntiOn_inv_pos 2026-03-05 21:52:25 d39c0a2 feat(Probability/UniformOn): calculate uniform measure on finite sets (#36206) This PR adds two new lemmas for computing the uniform distribution on finite sets. ESTIMATED CHANGES Modified Mathlib/Probability/UniformOn.lean + theorem ProbabilityTheory.uniformOn_apply_finset' + theorem ProbabilityTheory.uniformOn_apply_finset 2026-03-05 21:52:23 0ed793f chore(Analysis): golf using custom elaborators (#36199) ESTIMATED CHANGES Modified Mathlib/Analysis/Complex/UpperHalfPlane/Manifold.lean +/- theorem UpperHalfPlane.contMDiffAt_ofComplex +/- theorem UpperHalfPlane.contMDiff_coe +/- theorem UpperHalfPlane.contMDiff_denom +/- theorem UpperHalfPlane.contMDiff_denom_zpow +/- theorem UpperHalfPlane.contMDiff_inv_denom +/- theorem UpperHalfPlane.contMDiff_num +/- theorem UpperHalfPlane.contMDiff_smul +/- theorem UpperHalfPlane.eq_zero_of_frequently +/- theorem UpperHalfPlane.mdifferentiableAt_ofComplex +/- theorem UpperHalfPlane.mdifferentiable_coe +/- theorem UpperHalfPlane.mdifferentiable_denom +/- theorem UpperHalfPlane.mdifferentiable_denom_zpow +/- theorem UpperHalfPlane.mdifferentiable_inv_denom +/- theorem UpperHalfPlane.mdifferentiable_num +/- theorem UpperHalfPlane.mdifferentiable_smul +/- theorem UpperHalfPlane.mul_eq_zero_iff Modified Mathlib/Analysis/Distribution/AEEqOfIntegralContDiff.lean 2026-03-05 21:52:22 d0f4c1b chore: fix typo (#35993) There is a typo in this lemma. I think it would be nice to add this to simp (and remove `symm_toRingEquiv` from the simp set) but it breaks downwards proofs which are annoying to fix since `Ideal.map` has not been refactored yet. ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/Equiv.lean +/- theorem AlgEquiv.toRingEquiv_symm 2026-03-05 21:04:33 760db6f feat(Data/Fintype/Pi): piFinset of intersections (#36211) A straightforward but useful lemma. ESTIMATED CHANGES Modified Mathlib/Data/Fintype/Pi.lean + theorem Fintype.piFinset_inter 2026-03-05 21:04:31 b55b75a feat(Topology/VectorBundle): add `simp` lemmas (#35984) ESTIMATED CHANGES Modified Mathlib/Topology/VectorBundle/Basic.lean + theorem Bundle.Pretrivialization.Trivialization.Bundle.Trivialization.coe_continuousLinearEquivAt_eq' + theorem Bundle.Pretrivialization.Trivialization.Bundle.Trivialization.symm_continuousLinearEquivAt_eq' + theorem Bundle.Pretrivialization.Trivialization.linearMapAt_symm + theorem Bundle.Pretrivialization.Trivialization.symm_linearMapAt Modified Mathlib/Topology/VectorBundle/Hom.lean 2026-03-05 21:04:30 cc9b17c chore: fix delaborators for `[Comm][Semi]RingCat` and some more (#35721) Since #31622 terms of type `CommRingCat` are pretty printed as `{ carrier := R, commRing := inst }`. We make it pretty print as `CommRingCat.of R` again, which was the previous behaviour. ESTIMATED CHANGES Modified Mathlib/Algebra/Category/Ring/Basic.lean Modified Mathlib/CategoryTheory/FintypeCat.lean Modified Mathlib/Topology/Category/TopCat/Basic.lean Modified Mathlib/Topology/Category/TopCommRingCat.lean Added MathlibTest/Delab/ConcreteCategories.lean 2026-03-05 21:04:28 dd7b96b feat(CategoryTheory/Triangulated/TStructure): extensions of truncations to the extended integers (#35368) Given a `t`-structure, we extend the definition of the truncation functors `truncLT` and `truncGE` for indices in `ℤ` to `EInt`, as `t.eTruncLT : EInt ⥤ C ⥤ C` and `t.eTruncGE : EInt ⥤ C ⥤ C`. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/CategoryTheory/Preadditive/AdditiveFunctor.lean + theorem CategoryTheory.Functor.Additive.of_isZero Added Mathlib/CategoryTheory/Triangulated/TStructure/ETrunc.lean + theorem CategoryTheory.Triangulated.TStructure.eTriangleLTGE_distinguished + theorem CategoryTheory.Triangulated.TStructure.eTruncGE_obj_bot + theorem CategoryTheory.Triangulated.TStructure.eTruncGE_obj_coe + theorem CategoryTheory.Triangulated.TStructure.eTruncGE_obj_map_eTruncGEπ_app + theorem CategoryTheory.Triangulated.TStructure.eTruncGE_obj_top + theorem CategoryTheory.Triangulated.TStructure.eTruncGEδLT_coe + theorem CategoryTheory.Triangulated.TStructure.eTruncGEπ_app_eTruncGE_map_app + theorem CategoryTheory.Triangulated.TStructure.eTruncGEπ_bot + theorem CategoryTheory.Triangulated.TStructure.eTruncGEπ_coe + theorem CategoryTheory.Triangulated.TStructure.eTruncGEπ_naturality + theorem CategoryTheory.Triangulated.TStructure.eTruncGEπ_top + theorem CategoryTheory.Triangulated.TStructure.eTruncLT_map_app_eTruncLTι_app + theorem CategoryTheory.Triangulated.TStructure.eTruncLT_map_eq_truncLTι + theorem CategoryTheory.Triangulated.TStructure.eTruncLT_obj_bot + theorem CategoryTheory.Triangulated.TStructure.eTruncLT_obj_coe + theorem CategoryTheory.Triangulated.TStructure.eTruncLT_obj_map_eTruncLTι_app + theorem CategoryTheory.Triangulated.TStructure.eTruncLT_obj_top + theorem CategoryTheory.Triangulated.TStructure.eTruncLT_ι_bot + theorem CategoryTheory.Triangulated.TStructure.eTruncLT_ι_coe + theorem CategoryTheory.Triangulated.TStructure.eTruncLT_ι_top + theorem CategoryTheory.Triangulated.TStructure.eTruncLTι_naturality + theorem CategoryTheory.Triangulated.TStructure.isGE_eTruncGE_obj_obj + theorem CategoryTheory.Triangulated.TStructure.isLE_eTruncLT_obj_obj + theorem CategoryTheory.Triangulated.TStructure.isZero_eTruncGE_obj_obj + theorem CategoryTheory.Triangulated.TStructure.isZero_eTruncLT_obj_obj 2026-03-05 21:04:27 d14b6e4 feat: Reproducing Kernel Hilbert Spaces and Moore's theorem (#34528) We define vector-valued reproducing Kernel Hilbert spaces, which are Hilbert spaces of functions, as well as characterize these spaces in terms of infinite-dimensional positive semidefinite matrices. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Analysis/InnerProductSpace/Continuous.lean Added Mathlib/Analysis/InnerProductSpace/Reproducing.lean + theorem RKHS.OfKernel.kernel_ofKernel + theorem RKHS.coeCLM_apply + theorem RKHS.coe_add + theorem RKHS.coe_neg + theorem RKHS.coe_smul + theorem RKHS.coe_sub + theorem RKHS.coe_zero + theorem RKHS.continuous_eval + theorem RKHS.ext + theorem RKHS.inner_kerFun + theorem RKHS.isHermitian_kernel + def RKHS.kerFun + theorem RKHS.kerFun_apply + theorem RKHS.kerFun_dense + theorem RKHS.kerFun_inner + def RKHS.kernel + theorem RKHS.kernel_apply + theorem RKHS.kernel_inner + theorem RKHS.posSemidef_kernel + theorem RKHS.posSemidef_tfae Modified docs/references.bib 2026-03-05 19:46:10 d494882 chore(*): fix outdated underscored names in docstrings (#36196) This PR goes through docstrings and renames all references to unquoted names with underscores, which have in the meantime gotten renamed (mostly back from the Lean 3 times). These issues were found by a WIP linter, which should help ease the transition to Verso docstrings. ESTIMATED CHANGES Modified Mathlib/Algebra/DirectSum/Ring.lean Modified Mathlib/Algebra/GCDMonoid/Nat.lean Modified Mathlib/Algebra/Group/Subgroup/Actions.lean Modified Mathlib/Algebra/Module/ULift.lean Modified Mathlib/Algebra/MvPolynomial/Basic.lean Modified Mathlib/Algebra/Star/RingQuot.lean Modified Mathlib/AlgebraicGeometry/GammaSpecAdjunction.lean Modified Mathlib/AlgebraicTopology/DoldKan/FunctorGamma.lean Modified Mathlib/Analysis/Normed/Module/Basic.lean Modified Mathlib/CategoryTheory/Limits/Shapes/BinaryProducts.lean Modified Mathlib/CategoryTheory/Monoidal/Discrete.lean Modified Mathlib/CategoryTheory/Opposites.lean Modified Mathlib/CategoryTheory/Sites/Sheaf.lean Modified Mathlib/Combinatorics/Young/YoungDiagram.lean Modified Mathlib/Data/DFinsupp/Defs.lean Modified Mathlib/Data/PSigma/Order.lean Modified Mathlib/Data/Set/UnionLift.lean Modified Mathlib/FieldTheory/IntermediateField/Adjoin/Defs.lean Modified Mathlib/GroupTheory/CoprodI.lean Modified Mathlib/GroupTheory/Coset/Basic.lean Modified Mathlib/GroupTheory/DoubleCoset.lean Modified Mathlib/GroupTheory/GroupAction/MultipleTransitivity.lean Modified Mathlib/GroupTheory/GroupAction/SubMulAction.lean Modified Mathlib/LinearAlgebra/CliffordAlgebra/Basic.lean Modified Mathlib/LinearAlgebra/Complex/Module.lean Modified Mathlib/LinearAlgebra/Matrix/Diagonal.lean Modified Mathlib/LinearAlgebra/Matrix/Dual.lean Modified Mathlib/LinearAlgebra/Matrix/MvPolynomial.lean Modified Mathlib/LinearAlgebra/Matrix/ToLinearEquiv.lean Modified Mathlib/LinearAlgebra/Trace.lean Modified Mathlib/MeasureTheory/Measure/MeasureSpaceDef.lean Modified Mathlib/NumberTheory/ModularForms/SlashActions.lean Modified Mathlib/RingTheory/AdjoinRoot.lean Modified Mathlib/RingTheory/MvPowerSeries/Order.lean Modified Mathlib/Tactic/Group.lean Modified Mathlib/Testing/Plausible/Functions.lean Modified Mathlib/Topology/Category/Profinite/Basic.lean Modified Mathlib/Topology/FiberBundle/Basic.lean Modified Mathlib/Topology/MetricSpace/Bounded.lean Modified Mathlib/Topology/MetricSpace/Cauchy.lean Modified Mathlib/Topology/MetricSpace/Completion.lean Modified Mathlib/Topology/MetricSpace/Defs.lean Modified Mathlib/Topology/MetricSpace/Pseudo/Defs.lean 2026-03-05 19:18:40 1ca945c feat: relation between `emultiplicity` and `ramificationIdx` (#36144) If `w` is an ideal of `S` lying above the ideal `v` of `R` then the multiplicity of the push-forward of some ideal `I` of `R` in `w` is given by multiplying the multiplicity of `I` in `v` with the ramification index. ESTIMATED CHANGES Modified Mathlib/NumberTheory/RamificationInertia/Basic.lean + theorem Ideal.IsDedekindDomain.emultiplicity_map_eq_ramificationIdx_mul + theorem Ideal.IsDedekindDomain.emultiplicity_map_eq_zero_of_ne Modified Mathlib/RingTheory/Multiplicity.lean + theorem emultiplicity_eq_zero_of_irreducible_ne 2026-03-05 19:18:38 8fedd66 feat(Algebra/MvPolynomial/Rename): some lemmas about `rename` and `killCompl` (#34757) ESTIMATED CHANGES Modified Mathlib/Algebra/MvPolynomial/Rename.lean + theorem MvPolynomial.coeff_killCompl + theorem MvPolynomial.killCompl_monomial + theorem MvPolynomial.killCompl_monomial_eq_monomial_comapDomain_of_subset + theorem MvPolynomial.killCompl_monomial_eq_zero_of_notMem_range + theorem MvPolynomial.killCompl_monomial_eq_zero_of_not_subset + theorem MvPolynomial.killCompl_monomial_mapDomain + theorem MvPolynomial.rename_eq_zero_iff_of_injective + theorem MvPolynomial.rename_zero + theorem MvPolynomial.support_killCompl + theorem MvPolynomial.support_rename_killCompl_subset 2026-03-05 16:10:07 3a4b36f refactor(Topology/Category/TopCat/Opens): define `IsOpenEmbedding.functor` (#36198) Define `IsOpenEmbedding.functor` as `IsOpenEmbedding.isOpenMap.functor`, so it won't default to `IsInducing.functor` (which is equal but not defeq). Do the same for `IsOpenembedding.functorNhds` and `IsOpenEmbedding.adjunctionNhds`. ESTIMATED CHANGES Modified Mathlib/AlgebraicGeometry/Modules/Sheaf.lean Modified Mathlib/AlgebraicGeometry/OpenImmersion.lean Modified Mathlib/Geometry/RingedSpace/LocallyRingedSpace.lean Modified Mathlib/Geometry/RingedSpace/OpenImmersion.lean Modified Mathlib/Geometry/RingedSpace/PresheafedSpace.lean Modified Mathlib/Geometry/RingedSpace/PresheafedSpace/Gluing.lean Modified Mathlib/Geometry/RingedSpace/Stalks.lean Modified Mathlib/Topology/Category/TopCat/OpenNhds.lean Modified Mathlib/Topology/Category/TopCat/Opens.lean Modified Mathlib/Topology/Sheaves/Functors.lean Modified Mathlib/Topology/Sheaves/SheafCondition/Sites.lean 2026-03-05 16:10:05 f7e6e89 feat(Algebra/Homology): more API for `SpectralObject.E` (#36030) ESTIMATED CHANGES Modified Mathlib/Algebra/Homology/SpectralObject/Page.lean + theorem CategoryTheory.Abelian.SpectralObject.EIsoH_hom_naturality + theorem CategoryTheory.Abelian.SpectralObject.EIsoH_hom_opcyclesIsoH_inv + theorem CategoryTheory.Abelian.SpectralObject.EToCycles_i + theorem CategoryTheory.Abelian.SpectralObject.cyclesIsoH_hom_EIsoH_inv + theorem CategoryTheory.Abelian.SpectralObject.cyclesIsoH_hom_inv_id + theorem CategoryTheory.Abelian.SpectralObject.cyclesIsoH_inv + theorem CategoryTheory.Abelian.SpectralObject.cyclesIsoH_inv_hom_id + theorem CategoryTheory.Abelian.SpectralObject.kernelSequenceCyclesE_exact + theorem CategoryTheory.Abelian.SpectralObject.opcyclesIsoH_hom + theorem CategoryTheory.Abelian.SpectralObject.opcyclesIsoH_hom_inv_id + theorem CategoryTheory.Abelian.SpectralObject.opcyclesIsoH_inv_hom_id + theorem CategoryTheory.Abelian.SpectralObject.opcyclesMap_threeδ₂Toδ₁_opcyclesToE + theorem CategoryTheory.Abelian.SpectralObject.opcyclesToE_map + theorem CategoryTheory.Abelian.SpectralObject.shortComplexOpcyclesThreeδ₂Toδ₁_exact + theorem CategoryTheory.Abelian.SpectralObject.shortComplexOpcyclesThreeδ₂Toδ₁_shortExact + theorem CategoryTheory.Abelian.SpectralObject.πE_EToCycles 2026-03-05 16:10:02 08ce375 feat(Topology/Algebra/Group/Extension): define short exact sequence of topological groups (#35081) This PR defines a short exact sequence of topological groups to be a closed embedding followed by an open quotient map (extracted from #32672). ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Topology/Algebra/Group/Extension.lean + structure TopologicalAddGroup.IsSES + theorem TopologicalGroup.IsSES.ofClosedSubgroup + structure TopologicalGroup.IsSES 2026-03-05 16:10:00 c91937e feat(RingTheory): make HomogeneousLocalization.map take a graded ring hom (#30399) and also make `Away.map`. ESTIMATED CHANGES Modified Mathlib/AlgebraicGeometry/ProjectiveSpectrum/Basic.lean Modified Mathlib/AlgebraicGeometry/ProjectiveSpectrum/Scheme.lean Modified Mathlib/RingTheory/GradedAlgebra/HomogeneousLocalization.lean + theorem HomogeneousLocalization.Away.map_mk +/- def HomogeneousLocalization.map +/- theorem HomogeneousLocalization.map_mk 2026-03-05 15:28:27 4968c80 feat: lemmas about Fin.cons vs vecCons and Finset.univ vs Finset.range (#36186) Used for Sobolev spaces. ESTIMATED CHANGES Modified Mathlib/Data/Fin/VecNotation.lean + theorem Matrix.Fin.cons_vecCons + theorem Matrix.Fin.cons_vecEmpty + theorem Matrix.Fin.snoc_vecCons + theorem Matrix.Fin.snoc_vecEmpty Modified Mathlib/Data/Fintype/Fin.lean + theorem Finset.image_fin_univ + theorem Finset.sup_fin_univ Modified Mathlib/LinearAlgebra/Dimension/RankNullity.lean 2026-03-05 14:29:49 d8499b6 feat: lemmas about LocallyIntegrable (#36194) * Also lemmas about `IntegrableOn`, `IntegrableAtFilter` and `LocallyIntegrableOn`. * Add some `@[gcongr]` tagging * Some basic lemmas about `ae` (that are useful because their proofs abuse defeq) * Used for Sobolev spaces ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Function/LocallyIntegrable.lean + theorem ContinuousLinearMap.locallyIntegrableOn_comp + theorem MeasureTheory.LocallyIntegrable.congr + theorem MeasureTheory.LocallyIntegrable.mono_measure + theorem MeasureTheory.LocallyIntegrableOn.congr + theorem MeasureTheory.LocallyIntegrableOn.mono_measure' + theorem MeasureTheory.LocallyIntegrableOn.mono_measure + theorem MeasureTheory.locallyIntegrableOn_congr + theorem MeasureTheory.locallyIntegrable_congr Modified Mathlib/MeasureTheory/Integral/IntegrableOn.lean + theorem ContinuousLinearMap.integrableAtFilter_comp + theorem ContinuousLinearMap.integrableOn_comp + theorem MeasureTheory.IntegrableAtFilter.congr + theorem MeasureTheory.IntegrableAtFilter.mono_measure + theorem MeasureTheory.IntegrableOn.mono_measure' + theorem MeasureTheory.integrableAtFilter_congr Modified Mathlib/MeasureTheory/Measure/AbsolutelyContinuous.lean Modified Mathlib/MeasureTheory/Measure/Restrict.lean + theorem Set.EqOn.aeEq_restrict Modified Mathlib/MeasureTheory/Measure/Typeclasses/Finite.lean Modified Mathlib/MeasureTheory/OuterMeasure/AE.lean + theorem MeasureTheory.aeEq_iff + theorem Set.EqOn.aeEq 2026-03-05 14:29:47 3ac97da feat(NumberField/InfinitePlace/Ramification): add `placesOver` (#36132) - This PR defines sets of infinite places of `L` that lie above a fixed infinite place `v` of `K`, as well as subsets of ramified/unramified such places. - Also define analogous concepts for complex embeddings. - Fix order of parameters in `ComplexEmbedding.LiesOver` to match the order of params in `AbsoluteValue.LiesOver` make it protected. ESTIMATED CHANGES Modified Mathlib/Analysis/Normed/Ring/WithAbs.lean - theorem AbsoluteValue.LiesOver.comp_eq Modified Mathlib/NumberTheory/NumberField/InfinitePlace/Completion.lean +/- theorem NumberField.InfinitePlace.LiesOver.embedding_liesOver_of_isReal Modified Mathlib/NumberTheory/NumberField/InfinitePlace/Embeddings.lean + theorem NumberField.ComplexEmbedding.disjoint_unmixedEmbeddingsOver_mixedEmbeddingsOver + def NumberField.ComplexEmbedding.mixedEmbeddingsOver + theorem NumberField.ComplexEmbedding.union_unmixedEmbeddingsOver_mixedEmbeddingsOver + def NumberField.ComplexEmbedding.unmixedEmbeddingsOver Modified Mathlib/NumberTheory/NumberField/InfinitePlace/Ramification.lean + theorem NumberField.InfinitePlace.coe_mk_comp + theorem NumberField.InfinitePlace.conjugate_embedding_mem_mixedEmbeddingsOver + theorem NumberField.InfinitePlace.disjoint_ramifiedPlacesOver_unramifiedPlacesOver + theorem NumberField.InfinitePlace.embedding_mem_mixedEmbeddingsOver + theorem NumberField.InfinitePlace.liesOver_conjugate_embedding_of_mem_ramifiedPlacesOver + theorem NumberField.InfinitePlace.liesOver_embedding_of_mem_ramifiedPlacesOver + theorem NumberField.InfinitePlace.mk_mem_ramifiedPlacesOver + theorem NumberField.InfinitePlace.mk_mem_unramifiedPlacesOver + def NumberField.InfinitePlace.placesOver + def NumberField.InfinitePlace.ramifiedPlacesOver + theorem NumberField.InfinitePlace.union_ramifiedPlacesOver_unramifiedPlacesOver + def NumberField.InfinitePlace.unramifiedPlacesOver 2026-03-05 14:29:45 bc4f613 feat(NumberTheory/Height/Basic): height bounds for products (#35923) This adds height bounds for (point-wise) products of tuples and for products of field elements. ESTIMATED CHANGES Modified Mathlib/NumberTheory/Height/Basic.lean + theorem Height.logHeight_mul_le + theorem Height.logHeight_neg + theorem Height.logHeight₁_mul_le + theorem Height.logHeight₁_prod_le + theorem Height.mulHeight_mul_le + theorem Height.mulHeight_neg + theorem Height.mulHeight₁_mul_le + theorem Height.mulHeight₁_prod_le 2026-03-05 14:29:42 82c1896 feat(CategoryTheory/Sites): characterization of conservative families of points (#35175) Given a family of points `P` of a site, we characterize the property the `P` is a conservative family in terms of covering sieves. We show that if `(C, J)` has enough points, then so does `(Over X, J.over X)` for `X : C`. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Sites/Point/Basic.lean + theorem CategoryTheory.GrothendieckTopology.Point.presheafFiber_map_shrinkYoneda_map_shrinkYonedaCompPresheafFiberIso_inv_app + theorem CategoryTheory.GrothendieckTopology.Point.shrinkYonedaCompPresheafFiberIso_inv_app_toPresheafFiber Modified Mathlib/CategoryTheory/Sites/Point/Conservative.lean + theorem CategoryTheory.ObjectProperty.IsConservativeFamilyOfPoints.jointly_reflect_isLocallySurjective + theorem CategoryTheory.ObjectProperty.IsConservativeFamilyOfPoints.jointly_reflect_ofArrows_mem + theorem CategoryTheory.ObjectProperty.IsConservativeFamilyOfPoints.jointly_reflect_ofArrows_mem_of_small + theorem CategoryTheory.ObjectProperty.IsConservativeFamilyOfPoints.mk' Modified Mathlib/CategoryTheory/Sites/Point/Over.lean + theorem CategoryTheory.ObjectProperty.IsConservativeFamilyOfPoints.over 2026-03-05 14:29:39 0ff022a feat(Algebra/Order/BigOperators): order properties of subsets in groups with zero (#35008) We have these lemmas for CommMonoid, but not yet for CommMonoidWithZero. We rename the CommMonoid versions, for consistency with all the surrounding lemmas: the local convention here is for the CommMonoid version to have primes, and the AddCommMonoid and CommMonoidWithZero versions not to (since the latter applies in the more common case of rings). The explicit changes are: - `prod_le_prod_of_subset_of_le_one` -> `prod_le_prod_of_subset_of_le_one'` - `prod_anti_set_of_le_one` -> `prod_anti_set_of_le_one'` In both cases, the old name is reused for the version in CommMonoidWithZero. - [x] depends on: #35005 ESTIMATED CHANGES Modified Mathlib/Algebra/Order/BigOperators/Group/Finset.lean + theorem Finset.prod_anti_set_of_le_one' - theorem Finset.prod_anti_set_of_le_one + theorem Finset.prod_le_prod_of_subset_of_le_one' - theorem Finset.prod_le_prod_of_subset_of_le_one Modified Mathlib/Algebra/Order/BigOperators/GroupWithZero/Finset.lean +/- theorem Finset.one_le_prod + theorem Finset.prod_anti_set_of_le_one + theorem Finset.prod_le_prod_of_subset_of_le_one + theorem Finset.prod_le_prod_of_subset_of_one_le + theorem Finset.prod_mono_set_of_one_le Modified Mathlib/NumberTheory/Height/Basic.lean Modified Mathlib/Probability/ProductMeasure.lean Modified Mathlib/Topology/Algebra/InfiniteSum/ENNReal.lean Modified Mathlib/Topology/Algebra/InfiniteSum/Order.lean 2026-03-05 14:29:37 e9b5e1a feat(RingTheory): define R-linear graded algebra homomorphism (#30365) This PR defines R-linear graded algebra homomorphisms, which are R-algebra homomorphisms that preserve the grading. We also provide the basic properties (aka the "API"). Zulip discussion: [#mathlib4 > redefine Graded Algebra](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/redefine.20Graded.20Algebra/near/543847326) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/RingTheory/GradedAlgebra/AlgHom.lean + theorem GradedAlgHom.cancel_left + theorem GradedAlgHom.cancel_right + theorem GradedAlgHom.coe_addMonoidHom_injective + theorem GradedAlgHom.coe_algHom_injective + theorem GradedAlgHom.coe_algHom_mk + theorem GradedAlgHom.coe_comp + theorem GradedAlgHom.coe_fn_inj + theorem GradedAlgHom.coe_fn_injective + theorem GradedAlgHom.coe_id + theorem GradedAlgHom.coe_linearMap_injective + theorem GradedAlgHom.coe_mk' + theorem GradedAlgHom.coe_mk + theorem GradedAlgHom.coe_mks + theorem GradedAlgHom.coe_monoidHom_injective + theorem GradedAlgHom.coe_mul + theorem GradedAlgHom.coe_ofClass + theorem GradedAlgHom.coe_one + theorem GradedAlgHom.coe_pow + theorem GradedAlgHom.coe_ringHom_injective + theorem GradedAlgHom.coe_toAlgHom + theorem GradedAlgHom.commutes + def GradedAlgHom.comp + theorem GradedAlgHom.comp_assoc + theorem GradedAlgHom.comp_id + theorem GradedAlgHom.comp_ofId + theorem GradedAlgHom.comp_toAlgHom + theorem GradedAlgHom.comp_toGradedRingHom + theorem GradedAlgHom.default_apply + theorem GradedAlgHom.ext + theorem GradedAlgHom.id_comp + theorem GradedAlgHom.id_toAlgHom + def GradedAlgHom.mk' + theorem GradedAlgHom.mk_coe + def GradedAlgHom.ofClass + theorem GradedAlgHom.toAlgHom_ofClass + def GradedAlgHom.toEnd + theorem GradedAlgHom.toGradedRingHom_injective + theorem GradedAlgHom.toGradedRingHom_ofClass + structure GradedAlgHom 2026-03-05 14:15:13 b630f5a feat(RatFunc): add notation for RatFunc (#36172) This PR adds notation for RatFunc. This syntax makes it fit nicely with preexisting notation for Polynomial, as you can see in this example: ``` Algebra.IsAlgebraic.rank_of_isFractionRing k[X] k⟮X⟯ K[X] K⟮X⟯ ``` The parentheses are chosen to be like the one for `IntermediateField.adjoin` on purpose. I think this is nice because of consistency and it's easy to remember. However this means that there's a potential clash when using a variable `X : F` that one would like to adjoin to a field. See also related PR #35928 and discussion [#mathlib4 > Notation for Algebra.adjoin @ 💬](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Notation.20for.20Algebra.2Eadjoin/near/576551144). ESTIMATED CHANGES Modified Mathlib/FieldTheory/Laurent.lean +/- def RatFunc.laurent +/- def RatFunc.laurentAux Modified Mathlib/FieldTheory/RatFunc/AsPolynomial.lean +/- def RatFunc.C +/- def RatFunc.X +/- theorem RatFunc.X_ne_zero +/- theorem RatFunc.algebraMap_C +/- theorem RatFunc.algebraMap_X +/- theorem RatFunc.algebraMap_comp_C +/- theorem RatFunc.algebraMap_eq_C +/- theorem RatFunc.denom_X +/- theorem RatFunc.eq_C_iff +/- def RatFunc.eval +/- theorem RatFunc.eval_add +/- theorem RatFunc.eval_eq_zero_of_eval₂_denom_eq_zero +/- theorem RatFunc.eval_mul +/- theorem RatFunc.eval₂_denom_ne_zero +/- theorem RatFunc.num_X +/- theorem RatFunc.smul_eq_C_mul +/- theorem RatFunc.transcendental_X +/- theorem RatFunc.v_def Modified Mathlib/FieldTheory/RatFunc/Basic.lean +/- theorem RatFunc.algebraMap_injective +/- theorem RatFunc.algebraMap_ne_zero +/- theorem RatFunc.associated_denom_inv +/- theorem RatFunc.associated_num_inv +/- def RatFunc.coePolynomial +/- def RatFunc.denom +/- theorem RatFunc.denom_add_dvd +/- theorem RatFunc.denom_algebraMap +/- theorem RatFunc.denom_dvd +/- theorem RatFunc.denom_inv_dvd +/- theorem RatFunc.denom_mul_dvd +/- theorem RatFunc.denom_ne_zero +/- theorem RatFunc.denom_one +/- theorem RatFunc.denom_zero +/- theorem RatFunc.finrank_ratFunc_ratFunc +/- def RatFunc.instAddCommGroup +/- def RatFunc.instCommMonoid +/- theorem RatFunc.isCoprime_num_denom +/- def RatFunc.liftAlgHom +/- def RatFunc.liftMonoidWithZeroHom +/- def RatFunc.liftRingHom +/- def RatFunc.mapAlgHom +/- theorem RatFunc.monic_denom +/- theorem RatFunc.mul_inv_cancel +/- def RatFunc.num +/- def RatFunc.numDenom +/- theorem RatFunc.num_denom_add +/- theorem RatFunc.num_denom_mul +/- theorem RatFunc.num_denom_neg +/- theorem RatFunc.num_div_denom +/- theorem RatFunc.num_dvd +/- theorem RatFunc.num_eq_zero_iff +/- theorem RatFunc.num_inv_dvd +/- theorem RatFunc.num_mul_denom_add_denom_mul_num_ne_zero +/- theorem RatFunc.num_mul_dvd +/- theorem RatFunc.num_mul_eq_mul_denom_iff +/- theorem RatFunc.num_ne_zero +/- theorem RatFunc.num_one +/- theorem RatFunc.num_zero +/- theorem RatFunc.ofFractionRing_one +/- theorem RatFunc.ofFractionRing_zero +/- theorem RatFunc.rank_ratFunc_ratFunc +/- theorem RatFunc.smul_eq_C_smul +/- def RatFunc.toFractionRingRingEquiv +/- theorem RatFunc.toFractionRing_smul Modified Mathlib/FieldTheory/RatFunc/Defs.lean +/- theorem RatFunc.ofFractionRing_injective +/- theorem RatFunc.toFractionRing_inj Modified Mathlib/FieldTheory/RatFunc/Degree.lean +/- def RatFunc.intDegree +/- theorem RatFunc.intDegree_X +/- theorem RatFunc.intDegree_add +/- theorem RatFunc.intDegree_add_le +/- theorem RatFunc.intDegree_inv +/- theorem RatFunc.intDegree_mul +/- theorem RatFunc.intDegree_neg +/- theorem RatFunc.intDegree_one +/- theorem RatFunc.intDegree_zero +/- theorem RatFunc.natDegree_num_mul_right_sub_natDegree_denom_mul_left_eq_intDegree Modified Mathlib/FieldTheory/RatFunc/Luroth.lean +/- theorem RatFunc.IntermediateField.adjoin_X +/- theorem RatFunc.adjoin_X +/- theorem RatFunc.isAlgebraic_adjoin_simple_X +/- theorem RatFunc.minpolyX_aeval_X Modified Mathlib/RingTheory/LaurentSeries.lean +/- theorem LaurentSeries.LaurentSeries_coe +/- theorem LaurentSeries.coe_range_dense +/- theorem LaurentSeries.continuous_coe +/- theorem LaurentSeries.exists_ratFunc_eq_v +/- theorem LaurentSeries.inducing_coe +/- def LaurentSeries.powerSeriesAlgEquiv +/- theorem LaurentSeries.tendsto_valuation +/- theorem LaurentSeries.valuation_coe_ratFunc +/- theorem RatFunc.coe_X +/- theorem RatFunc.coe_coe +/- theorem RatFunc.valuation_eq_LaurentSeries_valuation 2026-03-05 14:03:24 0fe9017 feat(NumberTheory/Padics): Algebraically closedness of `C_p` (#36120) In this PR, we show that C_p is algebraically closed. In particular, we show that if K is a dense characteristic 0 subfield of L, then K is algebraically closed implies L is algebraically closed. With #26390, the only missing part is continuity of roots and using polynomial in K approximate polynomials in L. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/Normed/Field/Approximation.lean + theorem Polynomial.exists_aroots_norm_sub_lt_of_norm_coeff_sub_lt + theorem Polynomial.exists_monic_and_natDegree_eq_and_norm_map_algebraMap_coeff_sub_lt + theorem Polynomial.exists_roots_norm_sub_lt_of_norm_coeff_sub_lt Added Mathlib/Analysis/Normed/Field/Dense.lean + theorem IsAlgClosed.of_denseRange Modified Mathlib/Analysis/Normed/Field/Krasner.lean Modified Mathlib/NumberTheory/Padics/Complex.lean 2026-03-05 13:43:49 998cee5 feat: two lemmas about ContinuousMultilinearMap (#36188) * Rename `continuousMultilinearCurryFin0_symm_apply` and remove its simp-lemma (simp can now prove it using the new simp-lemma) * Add a new version of `continuousMultilinearCurryFin0_symm_apply`. * The new lemma is very similar to the old one, and these lemmas are most likely to be used only by `simp`, so I don't think a deprecation cycle is needed. * Also add `ContinuousMultilinearMap.fin0_apply_enorm` Used for Sobolev spaces. ESTIMATED CHANGES Modified Mathlib/Analysis/Normed/Module/Multilinear/Curry.lean + theorem ContinuousMultilinearMap.fin0_apply_enorm +/- theorem continuousMultilinearCurryFin0_symm_apply + theorem continuousMultilinearCurryFin0_symm_apply_apply 2026-03-05 13:43:47 bfb66f7 feat(Algebra/Homology): exact sequences for `SpectralObject.E` (#36029) ESTIMATED CHANGES Modified Mathlib/Algebra/Homology/SpectralObject/Page.lean + theorem CategoryTheory.Abelian.SpectralObject.cokernelSequenceE_exact + theorem CategoryTheory.Abelian.SpectralObject.cokernelSequenceOpcyclesE_exact + theorem CategoryTheory.Abelian.SpectralObject.cyclesIso_inv_cyclesMap + theorem CategoryTheory.Abelian.SpectralObject.kernelSequenceE_exact + theorem CategoryTheory.Abelian.SpectralObject.kernelSequenceOpcyclesE_exact - theorem CategoryTheory.Abelian.SpectralObject.leftHomologyDataShortComplexE_f' + theorem CategoryTheory.Abelian.SpectralObject.leftHomologyDataShortComplex_f' + theorem CategoryTheory.Abelian.SpectralObject.liftE_ιE_fromOpcycles + theorem CategoryTheory.Abelian.SpectralObject.map_ιE + theorem CategoryTheory.Abelian.SpectralObject.opcyclesIso_hom_δFromOpcycles + theorem CategoryTheory.Abelian.SpectralObject.opcyclesMap_opcyclesIso_hom + theorem CategoryTheory.Abelian.SpectralObject.opcyclesToE_ιE + theorem CategoryTheory.Abelian.SpectralObject.p_opcyclesIso_hom + theorem CategoryTheory.Abelian.SpectralObject.p_opcyclesIso_inv + theorem CategoryTheory.Abelian.SpectralObject.p_opcyclesToE - theorem CategoryTheory.Abelian.SpectralObject.rightHomologyDataShortComplexE_g' + theorem CategoryTheory.Abelian.SpectralObject.rightHomologyDataShortComplex_g' + theorem CategoryTheory.Abelian.SpectralObject.toCycles_πE_descE + theorem CategoryTheory.Abelian.SpectralObject.ιE_δFromOpcycles + theorem CategoryTheory.Abelian.SpectralObject.πE_map + theorem CategoryTheory.Abelian.SpectralObject.πE_ιE 2026-03-05 13:43:45 1d173fa feat(Analysis/Normed): relate compactness of operators to locally compact spaces (#35098) ESTIMATED CHANGES Modified Mathlib/Analysis/Normed/Module/FiniteDimension.lean + theorem FiniteDimensional.of_isCompactOperator_id Modified Mathlib/Analysis/Normed/Operator/Compact.lean + theorem isCompactOperator_id + theorem isCompactOperator_of_locallyCompactSpace_dom + theorem isCompactOperator_of_locallyCompactSpace_rng 2026-03-05 12:46:04 1dc478f chore(Topology/Order/LeftRight): use `to_dual` (#35637) This overlaps with #35635, but the overlap is small (and that PR still needs some work, so I'd rather get this out of the way first). ESTIMATED CHANGES Modified Mathlib/Order/Interval/Set/LinearOrder.lean Modified Mathlib/Tactic/Translate/ToDual.lean Modified Mathlib/Topology/Order/LeftRight.lean - theorem Filter.Eventually.exists_gt - theorem continuousWithinAt_Iio_iff_Iic - theorem continuousWithinAt_inter_Iio_iff_Iic - theorem frequently_gt_nhds - theorem nhdsGT_le_nhdsNE - theorem nhdsWithin_Iic_neBot 2026-03-05 12:34:07 90795a0 feat(Combinatorics/SimpleGraphs): generalize SimpleGraph.map to any function (#36130) The point is to be able to use map to define graph contractions. Added the injectivity assumption where needed. ESTIMATED CHANGES Modified Mathlib/Combinatorics/SimpleGraph/Clique.lean +/- theorem SimpleGraph.cliqueFinset_map_of_equiv Modified Mathlib/Combinatorics/SimpleGraph/Coloring.lean Modified Mathlib/Combinatorics/SimpleGraph/Maps.lean + theorem SimpleGraph.map_adj' +/- theorem SimpleGraph.map_id +/- theorem SimpleGraph.map_map +/- theorem SimpleGraph.map_monotone Modified Mathlib/Combinatorics/SimpleGraph/Triangle/Basic.lean 2026-03-05 12:13:53 12760c9 feat: integral of the evaluation map (#36179) `∫ x, x i ∂Measure.pi μ = ∫ x, x ∂μ i` ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Integral/Pi.lean + theorem MeasureTheory.integrable_eval + theorem MeasureTheory.integral_eval 2026-03-05 12:13:50 0eae836 feat(FieldTheory/RatFunc/Luroth): algEquivOfTranscendental (#36133) This is the rational analogue of `Polynomial.algEquivOfTranscendental`. For this, I needed a simp lemma relating `AdjoinSimple.gen` and the `Algebra (Algebra.adjoin ..) (IntermediateField ..)` instance. ESTIMATED CHANGES Modified Mathlib/FieldTheory/IntermediateField/Adjoin/Algebra.lean + theorem IntermediateField.algebraAdjoinAdjoin.algebraMap_eq_gen_self Modified Mathlib/FieldTheory/IntermediateField/Adjoin/Defs.lean + theorem IntermediateField.AdjoinSimple.coe_aeval_gen_apply Modified Mathlib/FieldTheory/RatFunc/AsPolynomial.lean + theorem RatFunc.algEquivOfTranscendental_X + theorem RatFunc.algEquivOfTranscendental_algebraMap + theorem RatFunc.algEquivOfTranscendental_apply + theorem RatFunc.algEquivOfTranscendental_symm_aeval + theorem RatFunc.algEquivOfTranscendental_symm_gen Modified Mathlib/FieldTheory/RatFunc/Luroth.lean 2026-03-05 12:13:47 6440f9f feat: independence of Gaussian processes (#32334) Prove different versions of the following statement: if some stochastic processes are jointly Gaussian, then they are independent if their marginals are uncorrelated. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Probability/Distributions/Gaussian/IsGaussianProcess/Independence.lean + theorem ProbabilityTheory.IsGaussianProcess.iIndepFun_of_covariance_eq_zero + theorem ProbabilityTheory.IsGaussianProcess.iIndepFun_of_covariance_inner + theorem ProbabilityTheory.IsGaussianProcess.iIndepFun_of_covariance_strongDual + theorem ProbabilityTheory.IsGaussianProcess.indepFun_of_covariance_eq_zero + theorem ProbabilityTheory.IsGaussianProcess.indepFun_of_covariance_inner + theorem ProbabilityTheory.IsGaussianProcess.indepFun_of_covariance_strongDual 2026-03-05 11:23:51 286b90f feat(Order): Add `eventually_finset_ball` (#36183) ESTIMATED CHANGES Modified Mathlib/Order/Filter/CountableInter.lean + theorem eventually_finset_ball 2026-03-05 11:23:49 9e7dfb2 fix(NumberTheory/Padics): remove diamond normed instance on C_p (#36118) In this PR, we refactor the normed instance on $\mathbb{C}_p$ to the norm extended along completion, and show that this is compatible with valuation. Also added NontriviallyNormedField and CharZero instances. Before this PR, there were two non-defeq normed instance on $\mathbb{C}_p$. 1. Induced by `UniformSpace.Completion.instNorm` from the norm on the algebraic closure of Q_p, 2. Converted from `Valued.norm` from the valuation on $\mathbb{C}_p$. We choose the first one and show that it is propositionally equal to the second one as a theorem. ESTIMATED CHANGES Modified Mathlib/NumberTheory/Padics/Complex.lean - theorem PadicAlgCl.isAlgebraic + theorem PadicComplex.nnnorm_extends' +/- theorem PadicComplex.nnnorm_extends - theorem PadicComplex.norm_def + theorem PadicComplex.norm_eq_norm' + theorem PadicComplex.norm_eq_norm + theorem PadicComplex.norm_extends' 2026-03-05 11:23:47 39f0219 feat(CategoryTheory/Monoidal/Grp_): add constructor for `Grp.mk A ⟶ Grp.mk B` (#36113) This PR adds a constructor for `Grp.mk A ⟶ Grp.mk B`. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Monoidal/Grp_.lean + def CategoryTheory.Grp.ofHom 2026-03-05 11:23:46 362209f feat(RingTheory/Valuation): add API (#36110) Prerequisites for #26872. Co-authored by: @faenuccio. ESTIMATED CHANGES Modified Mathlib/Algebra/GroupWithZero/Range.lean + theorem MonoidWithZeroHom.ValueGroup₀.restrict₀_eq_one_iff + theorem MonoidWithZeroHom.ValueGroup₀.restrict₀_range_eq_top + theorem MonoidWithZeroHom.ValueGroup₀.restrict₀_surjective Modified Mathlib/Algebra/Order/GroupWithZero/Range.lean + theorem MonoidWithZeroHom.ValueGroup₀.embedding_strictMono + theorem MonoidWithZeroHom.ValueGroup₀.embedding_unit_ne_zero + theorem MonoidWithZeroHom.ValueGroup₀.embedding_unit_pos - def MonoidWithZeroHom.ValueGroup₀.orderEmbedding - theorem MonoidWithZeroHom.ValueGroup₀.orderEmbedding_apply - theorem MonoidWithZeroHom.ValueGroup₀.orderEmbedding_mul Modified Mathlib/RingTheory/Valuation/Basic.lean + theorem Valuation.IsEquiv.restrict + theorem Valuation.embedding_restrict + theorem Valuation.exists_div_eq_of_unit + def Valuation.restrict + theorem Valuation.restrict_def + theorem Valuation.restrict_eq_one_iff + theorem Valuation.restrict_eq_zero_iff + theorem Valuation.restrict_inj + theorem Valuation.restrict_le_iff + theorem Valuation.restrict_le_iff_le_embedding + theorem Valuation.restrict_le_one_iff + theorem Valuation.restrict_lt_iff + theorem Valuation.restrict_lt_iff_lt_embedding + theorem Valuation.restrict_lt_one_iff + theorem Valuation.restrict_pos_iff 2026-03-05 11:23:44 e4c3741 feat(RingTheory/Polynomial/GaussLemma): `mem_lifts` lemma for primitive polynomials (#36068) A lemma that's needed for the proof of Lüroth's theorem. ESTIMATED CHANGES Modified Mathlib/RingTheory/Polynomial/GaussLemma.lean + theorem Polynomial.IsPrimitive.map_mul_mem_lifts_iff + theorem Polynomial.IsPrimitive.mul_map_mem_lifts_iff 2026-03-05 11:23:42 af60a26 feat: better error message in T% elaborator (#36040) When applying the `T%` elaborator to sections of a fibre bundle, previously in the case of missing typeclass assumptions the elaborator would silently do nothing. Now it errors about this case. Thanks to Patrick Massot for reporting this bug in person. ESTIMATED CHANGES Modified Mathlib/Geometry/Manifold/Notation.lean Modified MathlibTest/DifferentialGeometry/Notation/Basic.lean 2026-03-05 11:23:40 1f1cdf3 chore(Geometry/Manifold/VectorField/Pullback): golf using custom elab… (#36012) …orators ESTIMATED CHANGES Modified Mathlib/Geometry/Manifold/VectorField/Pullback.lean 2026-03-05 11:23:39 0bc810b chore(Geometry/Manifold/VectorBundle/MDifferentiable): golf using cus… (#36011) …tom elaborators ESTIMATED CHANGES Modified Mathlib/Geometry/Manifold/VectorBundle/MDifferentiable.lean +/- theorem Bundle.mdifferentiableAt_zeroSection +/- theorem Bundle.mdifferentiableOn_zeroSection +/- theorem Bundle.mdifferentiable_zeroSection +/- theorem MDifferentiableAt.smul_section +/- theorem MDifferentiableOn.smul_section +/- theorem mdifferentiable_neg_section +/- theorem mdifferentiable_smul_section 2026-03-05 11:23:37 f0fb0d6 chore(Geometry/Manifold/MFDeriv): golf using custom elaborators (#36010) ESTIMATED CHANGES Modified Mathlib/Geometry/Manifold/MFDeriv/Atlas.lean +/- theorem ModelWithCorners.mdifferentiableOn_symm +/- theorem OpenPartialHomeomorph.MDifferentiable.ker_mfderiv_eq_bot +/- theorem OpenPartialHomeomorph.MDifferentiable.mdifferentiableAt_symm +/- theorem OpenPartialHomeomorph.MDifferentiable.mfderiv_bijective +/- theorem OpenPartialHomeomorph.MDifferentiable.mfderiv_injective +/- theorem OpenPartialHomeomorph.MDifferentiable.mfderiv_surjective +/- theorem OpenPartialHomeomorph.MDifferentiable.range_mfderiv_eq_top +/- theorem OpenPartialHomeomorph.MDifferentiable.range_mfderiv_eq_univ +/- theorem mdifferentiableAt_atlas +/- theorem mdifferentiableOn_atlas +/- theorem mdifferentiableOn_atlas_symm +/- theorem mdifferentiableOn_extChartAt Modified Mathlib/Geometry/Manifold/MFDeriv/FDeriv.lean +/- theorem mdifferentiable_iff_differentiable +/- theorem mfderiv_eq_fderiv Modified Mathlib/Geometry/Manifold/MFDeriv/Tangent.lean Modified Mathlib/Geometry/Manifold/MFDeriv/UniqueDifferential.lean 2026-03-05 11:23:35 4877fda chore(Geometry/Manifold/MFDeriv/SpecificFunctions): golf using custom… (#36009) … elaborators ESTIMATED CHANGES Modified Mathlib/Geometry/Manifold/MFDeriv/SpecificFunctions.lean +/- theorem ContinuousLinearEquiv.mfderiv_eq +/- theorem ContinuousLinearMap.mfderivWithin_eq +/- theorem ContinuousLinearMap.mfderiv_eq +/- theorem HasMFDerivAt.add +/- theorem HasMFDerivAt.const_smul +/- theorem HasMFDerivAt.neg +/- theorem HasMFDerivAt.sub +/- theorem HasMFDerivAt.sum +/- theorem HasMFDerivWithinAt.add +/- theorem HasMFDerivWithinAt.neg +/- theorem HasMFDerivWithinAt.sum +/- theorem MDifferentiable.add +/- theorem MDifferentiable.const_smul +/- theorem MDifferentiable.fst +/- theorem MDifferentiable.neg +/- theorem MDifferentiable.prodMap +/- theorem MDifferentiable.prodMk +/- theorem MDifferentiable.prodMk_space +/- theorem MDifferentiable.snd +/- theorem MDifferentiable.sub +/- theorem MDifferentiable.sum +/- theorem MDifferentiableAt.add +/- theorem MDifferentiableAt.const_smul +/- theorem MDifferentiableAt.fst +/- theorem MDifferentiableAt.neg +/- theorem MDifferentiableAt.prodMap' +/- theorem MDifferentiableAt.prodMap +/- theorem MDifferentiableAt.prodMk +/- theorem MDifferentiableAt.snd +/- theorem MDifferentiableAt.sub +/- theorem MDifferentiableAt.sum +/- theorem MDifferentiableOn.add +/- theorem MDifferentiableOn.neg +/- theorem MDifferentiableOn.prodMap +/- theorem MDifferentiableOn.prodMk +/- theorem MDifferentiableOn.sum +/- theorem MDifferentiableWithinAt.add +/- theorem MDifferentiableWithinAt.neg +/- theorem MDifferentiableWithinAt.prodMap' +/- theorem MDifferentiableWithinAt.prodMap +/- theorem MDifferentiableWithinAt.snd +/- theorem const_smul_mfderiv +/- theorem hasMFDerivAt_neg +/- theorem mdifferentiableAt_const +/- theorem mdifferentiableAt_fst +/- theorem mdifferentiableAt_id +/- theorem mdifferentiableAt_neg +/- theorem mdifferentiableAt_snd +/- theorem mdifferentiableOn_const +/- theorem mdifferentiableOn_fst +/- theorem mdifferentiableOn_id +/- theorem mdifferentiableOn_snd +/- theorem mdifferentiableWithinAt_const +/- theorem mdifferentiableWithinAt_id +/- theorem mdifferentiable_const +/- theorem mdifferentiable_fst +/- theorem mdifferentiable_id +/- theorem mdifferentiable_snd +/- theorem mfderivWithin_prodMk +/- theorem mfderiv_add +/- theorem mfderiv_id +/- theorem mfderiv_neg +/- theorem mfderiv_prodMk +/- theorem mfderiv_prod_eq_add_comp +/- theorem mfderiv_sub 2026-03-05 11:23:33 3e8515c chore(Geometry/Manifold/Algebra): golf using custom elaborators (#36007) ESTIMATED CHANGES Modified Mathlib/Geometry/Manifold/Algebra/LieGroup.lean +/- theorem ContMDiff.div +/- theorem ContMDiff.div₀ +/- theorem ContMDiff.inv +/- theorem ContMDiff.inv₀ +/- theorem ContMDiffAt.div +/- theorem ContMDiffAt.div₀ +/- theorem ContMDiffAt.inv +/- theorem ContMDiffAt.inv₀ +/- theorem ContMDiffOn.div +/- theorem ContMDiffOn.div₀ +/- theorem ContMDiffOn.inv +/- theorem ContMDiffOn.inv₀ +/- theorem ContMDiffWithinAt.inv₀ +/- theorem contMDiffOn_inv₀ +/- theorem contMDiff_inv Modified Mathlib/Geometry/Manifold/Algebra/Monoid.lean +/- theorem ContMDiff.div_const +/- theorem ContMDiff.mul +/- theorem ContMDiff.pow +/- theorem ContMDiff.prod +/- theorem ContMDiffAt.prod +/- theorem ContMDiffOn.div_const +/- theorem ContMDiffOn.mul +/- theorem ContMDiffOn.pow +/- theorem ContMDiffWithinAt.div_const +/- theorem ContMDiffWithinAt.mul +/- theorem ContMDiffWithinAt.pow +/- theorem ContMDiffWithinAt.prod +/- theorem contMDiffAt_finset_prod' +/- theorem contMDiffAt_finset_prod +/- theorem contMDiffAt_mul_left +/- theorem contMDiffAt_mul_right +/- theorem contMDiffOn_finset_prod' +/- theorem contMDiffOn_finset_prod +/- theorem contMDiffWithinAt_finset_prod' +/- theorem contMDiffWithinAt_finset_prod +/- theorem contMDiff_finprod +/- theorem contMDiff_finprod_cond +/- theorem contMDiff_finset_prod' +/- theorem contMDiff_finset_prod +/- theorem contMDiff_mul +/- theorem contMDiff_mul_left +/- theorem contMDiff_mul_right +/- theorem contMDiff_pow +/- theorem mdifferentiableAt_mul_left +/- theorem mdifferentiableAt_mul_right +/- theorem mdifferentiable_mul_left +/- theorem mdifferentiable_mul_right Modified Mathlib/Geometry/Manifold/Algebra/SmoothFunctions.lean Modified Mathlib/Geometry/Manifold/Algebra/Structures.lean 2026-03-05 11:23:31 86514de feat(NumberTheory/Height/Basic): {mul|log}Height_{eq_one_of_subsingleton|sumElim_zero_eq} (#35922) This adds the facts that the multiplicative/logarithmic height of a tuple indexed by a subsingleton is one/zero and that the height does not change when we add/remove zeros in the tuple. ESTIMATED CHANGES Modified Mathlib/NumberTheory/Height/Basic.lean + theorem Height.logHeight_eq_logHeight_restrict_support + theorem Height.logHeight_eq_zero_of_subsingleton + theorem Height.logHeight_sumElim_zero_eq + theorem Height.mulHeight_eq_mulHeight_restrict_support + theorem Height.mulHeight_eq_one_of_subsingleton + theorem Height.mulHeight_sumElim_zero_eq 2026-03-05 11:23:29 7b60111 refactor: nicer definition for ordinal logarithm (#35850) By leveraging the API on `Order.IsNormal`, we can define the ordinal logarithm in a way that more immediately proves the characterizing Galois connection. Note that this removes `Ordinal.log_def` and `Ordinal.succ_log_def` without deprecation - these are auxiliary results that should have been private and are tedious to re-prove. ESTIMATED CHANGES Modified Mathlib/SetTheory/Ordinal/Exponential.lean +/- theorem Ordinal.div_opow_log_lt +/- theorem Ordinal.div_opow_log_pos +/- def Ordinal.log - theorem Ordinal.log_def +/- theorem Ordinal.log_of_left_le_one +/- theorem Ordinal.log_one_left +/- theorem Ordinal.log_zero_left - theorem Ordinal.succ_log_def 2026-03-05 11:23:26 8e1dd63 feat(Data/List): add theorem `length_eq_two'` (#35775) ESTIMATED CHANGES Modified Mathlib/Data/List/Basic.lean + theorem List.length_eq_two' 2026-03-05 11:23:24 83f6619 feat: radical lemmas for natural numbers and integers (#35673) These are needed as part of a project I'm doing for my PhD under Frank Stephan. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/RingTheory/Radical.lean Modified Mathlib/RingTheory/Radical/NatInt.lean + theorem Int.one_lt_radical_iff + theorem Int.radical_eq_one_iff + theorem Int.radical_eq_prod_primeFactors + theorem Int.radical_le_one_iff + theorem Int.radical_natAbs_eq_radical + theorem Int.radical_pos + theorem Int.two_le_radical_iff +/- theorem Nat.one_lt_radical_iff + theorem Nat.radical_eq_one_iff + theorem Nat.radical_eq_prod_primeFactors +/- theorem Nat.radical_le_one_iff +/- theorem Nat.radical_le_self_iff +/- theorem Nat.radical_pos + theorem Nat.self_lt_radical_iff +/- theorem Nat.two_le_radical_iff + theorem UniqueFactorizationMonoid.primeFactors_eq_primeFactors_natAbs 2026-03-05 11:23:21 40710e1 feat(Data): define grading-preserving isomorphisms (#30367) The class `GradedEquivLike E 𝒜 ℬ` says that `E` is a type of grading-preserving isomorphisms between `𝒜` and `ℬ`. It is the combination of `GradedFunLike E 𝒜 ℬ` and `EquivLike E A B`. ESTIMATED CHANGES Modified Mathlib/Data/FunLike/Graded.lean + def Graded.equiv + theorem Graded.map_mem + theorem Graded.map_mem_iff + def Graded.subtypeMap - def mapGraded - theorem map_mem Modified Mathlib/RingTheory/GradedAlgebra/RingHom.lean 2026-03-05 10:25:49 f262e9e feat: lemmas related to inner product (#36180) Real inner product is a positive semidefinite bilinear form. Inner product with `toEuclideanCLM`. Two more small ones. ESTIMATED CHANGES Modified Mathlib/Analysis/CStarAlgebra/Matrix.lean + theorem Matrix.inner_toEuclideanCLM Modified Mathlib/Analysis/InnerProductSpace/Basic.lean + theorem isNonneg_inner + theorem isPosSemidef_inner + theorem isSymm_inner Modified Mathlib/Analysis/InnerProductSpace/PiL2.lean + theorem EuclideanSpace.coe_proj + theorem EuclideanSpace.real_norm_sq_eq 2026-03-05 10:25:47 a240321 feat(RingTheory): isomorphism between perfection of R and perfection of R/I (#36161) We construct the following isomorphism: ```lean def Perfection.quotientMulEquiv (p : ℕ) [Fact (Nat.Prime p)] {R : Type*} [CommRing R] (I : Ideal R) [CharP (R ⧸ I) p] [IsAdicComplete I R] : Perfection R p ≃* Perfection (R ⧸ I) p ``` I also removed simp lemmas which expose the raw definition and instead prioritised lemmas which talk about the intended constructors, i.e. for `x : Perfection R p` we don't want `x.1 n` and instead want `x.coeff R p n`, and when `M` is perfect then maps `M -> Perfection N p` is determined by the zeroth coefficients. ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/SModEq/Basic.lean Modified Mathlib/RingTheory/AdicCompletion/Algebra.lean Modified Mathlib/RingTheory/Perfection.lean + theorem Perfection.coeffMonoidHom_pow_p_pow' + theorem Perfection.coeffMonoidHom_pow_p_pow_self + theorem Perfection.coeffMonoidHom_zero_liftMonoidHom +/- theorem Perfection.coeff_map + theorem Perfection.coeff_mapMonoidHom Modified Mathlib/RingTheory/Teichmuller.lean + theorem Perfection.coeff_quotientMulEquiv + theorem Perfection.coeff_zero_symm_quotientMulEquiv + theorem Perfection.mk_teichmuller₀ + theorem Perfection.teichmuller₀_mapMonoidHom_idealQuotientMk 2026-03-05 10:25:45 237efa9 chore(*): reduce defeq abuse about `Set` (#36152) Also fix some `/-` <-> `/--` typos I've noticed while fixing defeq abuse. ESTIMATED CHANGES Modified Mathlib/Analysis/Complex/CoveringMap.lean Modified Mathlib/Analysis/Convex/Basic.lean Modified Mathlib/Analysis/LocallyConvex/WeakDual.lean Modified Mathlib/Analysis/LocallyConvex/WeakOperatorTopology.lean +/- theorem ContinuousLinearMapWOT.hasBasis_seminorms Modified Mathlib/Combinatorics/Derangements/Finite.lean Modified Mathlib/Combinatorics/SimpleGraph/Finite.lean Modified Mathlib/GroupTheory/Sylow.lean Modified Mathlib/LinearAlgebra/Dimension/Finite.lean Modified Mathlib/NumberTheory/ModularForms/EisensteinSeries/Defs.lean Modified Mathlib/Order/CompleteLatticeIntervals.lean Modified Mathlib/Order/Interval/Set/OrdConnected.lean Modified Mathlib/Order/Interval/Set/OrderIso.lean Modified Mathlib/Order/OrderIsoNat.lean Modified Mathlib/RingTheory/AlgebraicIndependent/Basic.lean Modified Mathlib/RingTheory/FreeCommRing.lean Modified Mathlib/RingTheory/Ideal/AssociatedPrime/Basic.lean Modified Mathlib/RingTheory/Ideal/IsPrincipal.lean Modified Mathlib/RingTheory/Ideal/Maps.lean Modified Mathlib/RingTheory/LaurentSeries.lean Modified Mathlib/RingTheory/UniqueFactorizationDomain/Finite.lean Modified Mathlib/SetTheory/Cardinal/Order.lean +/- theorem Cardinal.mk_set Modified Mathlib/Topology/Algebra/Module/Cardinality.lean Modified Mathlib/Topology/Category/TopCat/Limits/Products.lean Modified Mathlib/Topology/Compactness/Lindelof.lean Modified Mathlib/Topology/Constructions/SumProd.lean Modified Mathlib/Topology/ContinuousMap/Ideals.lean Modified Mathlib/Topology/DenseEmbedding.lean Modified Mathlib/Topology/IndicatorConstPointwise.lean Modified Mathlib/Topology/Instances/Complex.lean Modified Mathlib/Topology/Irreducible.lean Modified Mathlib/Topology/IsClosedRestrict.lean Modified Mathlib/Topology/LocalAtTarget.lean Modified Mathlib/Topology/MetricSpace/CantorScheme.lean Modified Mathlib/Topology/MetricSpace/GromovHausdorff.lean Modified Mathlib/Topology/MetricSpace/Pseudo/Defs.lean Modified Mathlib/Topology/MetricSpace/Thickening.lean Modified Mathlib/Topology/Metrizable/Urysohn.lean Modified Mathlib/Topology/Order.lean +/- theorem TopologicalSpace.mkOfClosure_sets Modified Mathlib/Topology/Order/Basic.lean Modified Mathlib/Topology/Order/HullKernel.lean Modified Mathlib/Topology/Perfect.lean Modified Mathlib/Topology/UniformSpace/Ascoli.lean Modified Mathlib/Topology/UniformSpace/Basic.lean Modified Mathlib/Topology/UniformSpace/LocallyUniformConvergence.lean Modified Mathlib/Topology/UniformSpace/UniformEmbedding.lean 2026-03-05 10:25:41 bbd1294 chore(Geometry/Manifold/ContMDiffMFDeriv): golf using custom elaborators (#36008) ESTIMATED CHANGES Modified Mathlib/Geometry/Manifold/ContMDiffMFDeriv.lean +/- theorem ContMDiff.contMDiff_tangentMap +/- theorem ContMDiff.continuous_tangentMap +/- theorem ContMDiffAt.mfderiv_const +/- theorem ContMDiffOn.continuousOn_tangentMapWithin 2026-03-05 10:25:40 faa2693 chore(Order/SuccPred/Limit): use `to_dual` on everything that was missing (#35639) ESTIMATED CHANGES Modified Mathlib/Data/Fintype/Card.lean Modified Mathlib/Order/Bounds/Basic.lean Modified Mathlib/Order/SuccPred/Limit.lean - theorem IsGLB.isPredLimit_of_notMem - theorem IsGLB.isPredPrelimit_of_notMem - theorem IsGLB.mem_of_not_isPredLimit - theorem IsGLB.mem_of_not_isPredPrelimit - theorem Order.IsPredLimit.isGLB_Ioi - theorem Order.IsPredLimit.le_iff_forall_le - theorem Order.IsPredLimit.lt_iff_exists_lt - theorem Order.IsPredLimit.nonempty_Ioi - theorem Order.IsPredPrelimit.isGLB_Ioi - theorem Order.IsPredPrelimit.isMax_of_noMin - theorem Order.IsPredPrelimit.le_iff_forall_le - theorem Order.IsPredPrelimit.lt_iff_exists_lt - theorem Order.isGLB_Ioi_iff_isPredPrelimit - theorem Order.isPredLimit_toDual_iff - theorem Order.isPredPrelimit_iff - theorem Order.isPredPrelimit_iff_of_noMin - theorem Order.not_isPredLimit - theorem Order.not_isPredLimit_of_noMin +/- theorem Order.not_isPredLimit_of_not_isPredPrelimit - theorem Order.not_isPredPrelimit - theorem Order.not_isPredPrelimit_of_noMin 2026-03-05 10:25:38 4646bc6 chore: reduce defeq abuse (#35286) Cherry-picked from #35182, improved ESTIMATED CHANGES Modified Mathlib/Algebra/Module/SnakeLemma.lean Modified Mathlib/Algebra/MonoidAlgebra/Grading.lean +/- theorem AddMonoidAlgebra.single_mem_grade Modified Mathlib/RingTheory/AdjoinRoot.lean + def AdjoinRoot.quotMapCMapSpanMkEquivQuotMapCQuotMapMk + theorem AdjoinRoot.quotMapCMapSpanMkEquivQuotMapCQuotMapMk_mk + theorem AdjoinRoot.quotMapCMapSpanMkEquivQuotMapCQuotMapMk_symm_quotQuotMk - def AdjoinRoot.quotMapCMapSpanMkEquivQuotMapCQuotMapSpanMk - theorem AdjoinRoot.quotMapCMapSpanMkEquivQuotMapCQuotMapSpanMk_mk - theorem AdjoinRoot.quotMapCMapSpanMkEquivQuotMapCQuotMapSpanMk_symm_quotQuotMk + def AdjoinRoot.quotMapOfEquivQuotMapCMapMk + theorem AdjoinRoot.quotMapOfEquivQuotMapCMapMk_mk + theorem AdjoinRoot.quotMapOfEquivQuotMapCMapMk_symm_mk - def AdjoinRoot.quotMapOfEquivQuotMapCMapSpanMk - theorem AdjoinRoot.quotMapOfEquivQuotMapCMapSpanMk_mk - theorem AdjoinRoot.quotMapOfEquivQuotMapCMapSpanMk_symm_mk Modified Mathlib/RingTheory/Kaehler/Basic.lean + theorem KaehlerDifferential.fromIdeal_surjective Modified Mathlib/RingTheory/KrullDimension/Polynomial.lean 2026-03-05 10:25:36 2e7b749 feat(RingTheory): define maps of homogeneous ideals (#30334) In this file we define `HomogeneousIdeal.map` and `HomogeneousIdeal.comap`, similar to and based on the existing `Ideal.map` and `Ideal.comap`. More concretely, a graded ring homomorphism `𝒜 →+*ᵍ ℬ` induces a "Galois connection" between the homogeneous ideals in `𝒜` and the homogeneous ideals in `ℬ`. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/RingTheory/GradedAlgebra/Homogeneous/Ideal.lean + theorem coe_toIdeal + theorem toIdeal_le_toIdeal_iff Added Mathlib/RingTheory/GradedAlgebra/Homogeneous/Maps.lean + theorem HomogeneousIdeal.coe_comap + def HomogeneousIdeal.comap + theorem HomogeneousIdeal.comap_comap + theorem HomogeneousIdeal.comap_id + theorem HomogeneousIdeal.comap_mono + theorem HomogeneousIdeal.gc_map_comap + def HomogeneousIdeal.map + theorem HomogeneousIdeal.map_comp + theorem HomogeneousIdeal.map_id + theorem HomogeneousIdeal.map_le_iff_le_comap + theorem HomogeneousIdeal.map_map + theorem HomogeneousIdeal.map_mono + theorem HomogeneousIdeal.toIdeal_comap + theorem HomogeneousIdeal.toIdeal_map 2026-03-05 09:00:48 45362d7 feat: add `dsimp%` elaborator (#36043) This PR adds a `dsimp%` elaborators that puts a given term in `dsimp`-normal form. This is useful as a way to avoid the `have foo := …; dsimp at foo; rw [foo]` pattern. From [SymmMonCoherence](https://github.com/robin-carlier/SymmMonCoherence) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Tactic.lean Modified Mathlib/Tactic/Common.lean Added Mathlib/Tactic/DSimpPercent.lean + def Mathlib.Tactic.dsimpPercentElaborator Added MathlibTest/DSimpPercent.lean + def f + theorem f_apply + def g + theorem g_apply 2026-03-05 09:00:45 89b0edf chore: replace uses of `omega` with `lia` (#35944) As [previously discussed](https://github.com/leanprover-community/mathlib4/pull/32666), the plan is to migrate from `omega` to `lia`, the linear integer arithmetic component of `grind`. Trace profiling results (differences <30 ms considered measurement noise): * `AnalyticAt.analyticOrderAt_sub_eq_one_of_deriv_ne_zero`: 1094 ms before, 979 ms after 🎉 * `CategoryTheory.Pretriangulated.shiftFunctorCompIsoId_op_inv_app`: unchanged 🎉 * `Lagrange.leadingCoeff_eq_sum`: unchanged 🎉 * `Finset.intervalGapsWithin_snd_of_lt`: unchanged 🎉 * `Finset.intervalGapsWithin_le_fst`: unchanged 🎉 * `Ideal.exists_radical_pow_le_of_fg`: unchanged 🎉 * `PowerSeries.coeff_X_mul_largeSchroderSeriesSeries_sq`: unchanged 🎉 ESTIMATED CHANGES Modified Mathlib/Analysis/Analytic/Order.lean Modified Mathlib/CategoryTheory/Triangulated/Opposite/Basic.lean Modified Mathlib/LinearAlgebra/Lagrange.lean Modified Mathlib/Order/Interval/Finset/Gaps.lean Modified Mathlib/RingTheory/Finiteness/Ideal.lean Modified Mathlib/RingTheory/PowerSeries/Schroder.lean 2026-03-05 08:48:25 f318334 feat(Combinatorics/SimpleGraph/Acyclic): add colorable and chromaticN… (#34954) …umber bridges for acyclic and tree graphs Add thin bridge lemmas expressing that acyclic graphs (forests) and trees are 2-colorable, and that their chromatic number is at most 2, directly in terms of `Colorable` and `chromaticNumber`. The existing `IsAcyclic.isBipartite` already proves this via the definitional equality `IsBipartite = Colorable 2`, but these bridges improve discoverability for users who reason about `Colorable` or `chromaticNumber` without passing through `IsBipartite`. This is a first step toward building out the graph coloring API. New declarations: - `IsAcyclic.colorable_two` - `IsTree.colorable_two` - `IsAcyclic.chromaticNumber_le_two` - `IsTree.chromaticNumber_le_two` All are one-line proofs reusing existing results; no new imports needed. ESTIMATED CHANGES Modified Mathlib/Combinatorics/SimpleGraph/Acyclic.lean + theorem SimpleGraph.IsAcyclic.chromaticNumber_le_two + theorem SimpleGraph.IsAcyclic.colorable_two + theorem SimpleGraph.IsTree.chromaticNumber_le_two + theorem SimpleGraph.IsTree.colorable_two 2026-03-05 07:13:04 44e8425 chore: remove set_option backward.isDefEq.respectTransparency false (#36164) This PR removes some occurrences of `set_option backward.isDefEq.respectTransparency false` from Mathlib and related test files after moving to v4.29.0-rc4. 🤖 Prepared with Claude Code ESTIMATED CHANGES Modified Archive/Imo/Imo2024Q6.lean Modified Mathlib/Algebra/Module/FinitePresentation.lean Modified Mathlib/Algebra/Order/Field/Rat.lean Modified Mathlib/Algebra/Order/Floor/Ring.lean Modified Mathlib/Algebra/Order/Ring/Abs.lean Modified Mathlib/Algebra/Order/Ring/Cast.lean Modified Mathlib/Analysis/Calculus/FDeriv/Equiv.lean Modified Mathlib/Analysis/Distribution/SchwartzSpace/Fourier.lean Modified Mathlib/Analysis/MeanInequalities.lean Modified Mathlib/Analysis/RCLike/TangentCone.lean Modified Mathlib/Data/NNRat/Defs.lean Modified Mathlib/Data/Rat/Cast/Order.lean Modified Mathlib/FieldTheory/IntermediateField/Basic.lean Modified Mathlib/FieldTheory/PurelyInseparable/PerfectClosure.lean Modified Mathlib/GroupTheory/DivisibleHull.lean Modified Mathlib/LinearAlgebra/Alternating/Basic.lean Modified Mathlib/LinearAlgebra/Projectivization/Constructions.lean Modified Mathlib/LinearAlgebra/RootSystem/Base.lean Modified Mathlib/LinearAlgebra/RootSystem/GeckConstruction/Lemmas.lean Modified Mathlib/MeasureTheory/Integral/CurveIntegral/Basic.lean Modified Mathlib/MeasureTheory/Measure/CharacteristicFunction/TaylorExpansion.lean Modified Mathlib/ModelTheory/Arithmetic/Presburger/Semilinear/Basic.lean Modified Mathlib/NumberTheory/Multiplicity.lean Modified Mathlib/NumberTheory/Niven.lean Modified Mathlib/NumberTheory/Padics/PadicIntegers.lean Modified Mathlib/NumberTheory/Pell.lean Modified Mathlib/NumberTheory/Rayleigh.lean Modified Mathlib/NumberTheory/Real/Irrational.lean Modified Mathlib/NumberTheory/SumFourSquares.lean Modified Mathlib/NumberTheory/Transcendental/Liouville/Measure.lean Modified Mathlib/RingTheory/NormalClosure.lean Modified Mathlib/RingTheory/Polynomial/Cyclotomic/Roots.lean Modified Mathlib/RingTheory/PowerSeries/Exp.lean Modified Mathlib/RingTheory/Trace/Basic.lean Modified Mathlib/Topology/Algebra/Order/Field.lean 2026-03-05 06:33:03 f5e1ab1 feat(RingTheory): base change of graded algebra (#30322) In this file we show that if `𝒜` is a graded `R`-algebra, and `S` is any `R`-algebra, then `S ⊗[R] 𝒜` (which is actually `fun i ↦ (𝒜 i).baseChange S`) is a graded `S`-algebra with the same grading. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/DirectSum/Basic.lean + theorem DirectSum.id_apply + theorem DirectSum.id_symm_apply Modified Mathlib/Algebra/DirectSum/Decomposition.lean +/- theorem DirectSum.decomposeLinearEquiv_apply + theorem DirectSum.decomposeLinearEquiv_apply_coe +/- theorem DirectSum.decomposeLinearEquiv_symm_apply + theorem DirectSum.decomposeLinearEquiv_symm_lof Modified Mathlib/Algebra/DirectSum/Module.lean + theorem DirectSum.coeLinearMap_lof + theorem DirectSum.lequivCongrLeft_lof + theorem DirectSum.lequivCongrLeft_symm_lof + theorem DirectSum.lid_apply + theorem DirectSum.lid_symm_apply Modified Mathlib/Algebra/Order/Module/HahnEmbedding.lean Modified Mathlib/LinearAlgebra/DirectSum/Finsupp.lean Modified Mathlib/LinearAlgebra/DirectSum/TensorProduct.lean - theorem TensorProduct.coe_directSumRight' + theorem TensorProduct.coe_directSumRight - def TensorProduct.directSumRight' - theorem TensorProduct.directSumRight'_restrict +/- def TensorProduct.directSumRight + theorem TensorProduct.restrictScalar_directSumRight Added Mathlib/LinearAlgebra/TensorProduct/Decomposition.lean + theorem DirectSum.IsInternal.baseChange + theorem DirectSum.IsInternal.toBaseChange_bijective + theorem DirectSum.IsInternal.toBaseChange_injective + theorem DirectSum.toBaseChange_bijective + theorem DirectSum.toBaseChange_injective Modified Mathlib/LinearAlgebra/TensorProduct/Tower.lean + theorem LinearEquiv.baseChange_symm_tmul +/- theorem LinearEquiv.baseChange_tmul + theorem Submodule.coe_toBaseChange_tmul + def Submodule.toBaseChange + theorem Submodule.toBaseChange_surjective' + theorem Submodule.toBaseChange_surjective Modified Mathlib/RingTheory/Flat/Basic.lean Added Mathlib/RingTheory/GradedAlgebra/TensorProduct.lean + theorem GradedAlgebra.algebraMap_apply + theorem GradedAlgebra.coe_algebraMap_apply Modified Mathlib/RingTheory/TensorProduct/IsBaseChangePi.lean 2026-03-05 01:06:19 592989b feat(Integral.Bochner.Set): add `tendsto_setIntegral_of_monotone₀` (#34025) Adds the lemma `tendsto_setIntegral_of_monotone₀`, a version of `tendsto_setIntegral_of_monotone` requiring only `AEMeasurableSet` in the hypotheses. The previous version is redefined as a specialization. Also renames `integral_union_ae` to `setIntegral_union₀` for consistency with the rest of the library (it matches the existing `setIntegral_union`). ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Integral/Bochner/Set.lean - theorem MeasureTheory.integral_diff - theorem MeasureTheory.integral_union_ae + theorem MeasureTheory.setIntegral_diff + theorem MeasureTheory.setIntegral_diff₀ + theorem MeasureTheory.setIntegral_union₀ + theorem MeasureTheory.tendsto_setIntegral_of_monotone₀ 2026-03-05 00:53:22 891dd96 feat(ContinuousMultilinearMap): generalize some definitions (#34491) ... from normes spaces to topological vector spaces ESTIMATED CHANGES Modified Mathlib/Analysis/Normed/Module/Multilinear/Basic.lean - def ContinuousLinearEquiv.continuousMultilinearMapCongrLeft - theorem ContinuousLinearEquiv.continuousMultilinearMapCongrLeft_apply - theorem ContinuousLinearEquiv.continuousMultilinearMapCongrLeft_symm - def ContinuousLinearEquiv.continuousMultilinearMapCongrRight - theorem ContinuousLinearEquiv.continuousMultilinearMapCongrRight_apply - theorem ContinuousLinearEquiv.continuousMultilinearMapCongrRight_symm - def ContinuousLinearMap.compContinuousMultilinearMapL - def ContinuousMultilinearMap.compContinuousLinearMapL - theorem ContinuousMultilinearMap.compContinuousLinearMapL_apply Modified Mathlib/Analysis/Normed/Operator/BoundedLinearMaps.lean Modified Mathlib/Topology/Algebra/Group/Basic.lean + theorem continuous_of_tendsto_nhds_one Modified Mathlib/Topology/Algebra/Module/Multilinear/Topology.lean + def ContinuousLinearEquiv.continuousMultilinearMapCongrLeft + theorem ContinuousLinearEquiv.continuousMultilinearMapCongrLeft_apply + theorem ContinuousLinearEquiv.continuousMultilinearMapCongrLeft_symm + def ContinuousLinearEquiv.continuousMultilinearMapCongrRight + theorem ContinuousLinearEquiv.continuousMultilinearMapCongrRight_apply + theorem ContinuousLinearEquiv.continuousMultilinearMapCongrRight_symm + def ContinuousLinearMap.compContinuousMultilinearMapL + theorem ContinuousLinearMap.compContinuousMultilinearMapL_apply + def ContinuousMultilinearMap.compContinuousLinearMapL + theorem ContinuousMultilinearMap.eventually_nhds_zero_mapsTo + theorem ContinuousMultilinearMap.isVonNBounded_image2_apply Modified Mathlib/Topology/Algebra/Module/StrongTopology.lean 2026-03-05 00:38:53 5c17a4f feat(CategoryTheory/Monoidal/Cartesian/Grp_): conjugation as a morphism (#36112) This PR adds conjugation as a morphism. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Monoidal/Cartesian/Grp_.lean + def CategoryTheory.GrpObj.conj + theorem CategoryTheory.GrpObj.lift_conj_eq_mul_mul_inv 2026-03-04 23:17:21 229f9ed chore: bump toolchain to v4.29.0-rc4 (#36122) ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Ext.lean Modified Mathlib/Algebra/Quaternion.lean Modified Mathlib/LinearAlgebra/CliffordAlgebra/SpinGroup.lean Modified Mathlib/RingTheory/Polynomial/UniversalFactorizationRing.lean Modified MathlibTest/DefEqAbuse.lean - theorem test_zo_cmd_abuse - theorem zo_eq_iff Modified MathlibTest/slow_instances.lean Modified lake-manifest.json Modified lakefile.lean Modified lean-toolchain 2026-03-04 22:18:46 7e398f1 feat(CI): add sentence about use of AI in new contributors comment (#36141) ESTIMATED CHANGES Modified .github/workflows/label_new_contributor.yml 2026-03-04 21:21:23 5e594a4 fix(Translate): don't look in arguments of free variables in `shouldTranslate` (#35549) This PR addresses a `to_additive` limitation reported at [#mathlib4 > #35179 breaks to_additive call in FLT](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/.2335179.20breaks.20to_additive.20call.20in.20FLT/with/574823087) by making sure `shouldTranslate` doesn't looks at the arguments of free variable applications This PR refactors `shouldTranslate` in a few ways - The monad is changed from `OptionT` to `ExceptT`, with the underlying type changing from `Option Expr` to `ExceptT Expr Unit`. Although this is technically a bit less efficient, it makes the program shorter and more intuitive, because a failure now actually corresponds to a monadic failure instead of a monadic success. - When visiting a `Expr.app` node, we now loop through the whole application at once, instead of doing this step by step and checking the cache at each step. This allows us to detect when the head is a free variable, and skip its arguments. It also lets us deal with `ignoreArgsAttr` more naturally. - This change removes the need for the `inApp : Bool` argument that used to be passed around in order to tell whether a constant was in an application. ESTIMATED CHANGES Modified Mathlib/Tactic/Translate/Core.lean Modified Mathlib/Tactic/Translate/ToAdditive.lean Modified Mathlib/Tactic/Translate/ToDual.lean Modified MathlibTest/toAdditive.lean + def dontTranslateId + theorem functionTypeMonoid 2026-03-04 19:54:36 2a6bde3 feat(LinearAlgebra/ExteriorAlgebra/Basic): adds multiplication lemmas for `ExteriorAlgebra` (#35433) This adds lemmas for dealing with multiplication of elements in the `ExteriorAlgebra`: * `ιMulti_eq_zero_of_not_inj` : a product containing duplicates is zero * `ιMulti_mul_ιMulti` : `ιMulti R m a * ιMulti R n b = ιMulti R (m+n) (Fin.append a b)` * `ιMulti_family_mul_of_not_disjoint` : if two sets of elements are not disjoint their product is zero * `ιMulti_perm` : the permutation corresponding to adjoining two sets of elements and sorting the result * `ιMulti_family_mul_of_disjoint` : the product of two elements of the form `ιMulti_family` is of the form `ιMulti_family` up to sign ESTIMATED CHANGES Modified Mathlib/Data/Finset/Basic.lean + def Equiv.Finset.disjUnionEquiv + theorem Equiv.Finset.disjUnionEquiv_inl + theorem Equiv.Finset.disjUnionEquiv_inr + theorem Equiv.Finset.disjUnionEquiv_symm_left + theorem Equiv.Finset.disjUnionEquiv_symm_right Modified Mathlib/LinearAlgebra/ExteriorAlgebra/Basic.lean + theorem ExteriorAlgebra.ιMulti_eq_zero_of_not_inj + theorem ExteriorAlgebra.ιMulti_family_mul_of_disjoint + theorem ExteriorAlgebra.ιMulti_family_mul_of_not_disjoint + theorem ExteriorAlgebra.ιMulti_mul_ιMulti Modified Mathlib/Order/Hom/PowersetCard.lean + def Set.powersetCard.orderIsoOfFin + def Set.powersetCard.permOfDisjoint 2026-03-04 18:43:50 b72c034 feat(NumberTheory/ModularForm/EisensteinSeries/E2): Prove E2 is MDifferentiable (#35819) Proof that E2 is MDifferentiable. This proof comes from the Sphere packing project where it was produced by Gauss. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/NumberTheory/ModularForms/DedekindEta.lean Added Mathlib/NumberTheory/ModularForms/EisensteinSeries/E2/MDifferentiable.lean + theorem E2_mdifferentiable 2026-03-04 18:26:18 e1cd909 feat(IsGaloisGroup): if `B/A` and `B/A'` are Galois with the same Galois group, then `A ≃+* A'` (#35797) ESTIMATED CHANGES Modified Mathlib/FieldTheory/Galois/IsGaloisGroup.lean + theorem IsGaloisGroup.algebraMap_ringEquivFixedPoints_symm_apply + theorem IsGaloisGroup.algebraMap_ringEquiv_apply + theorem IsGaloisGroup.algebraMap_ringEquiv_symm_apply 2026-03-04 18:26:16 bf4bf08 feat(Combinatorics/SimpleGraph/AdjMatrix): adjacency matrix API (#34601) ESTIMATED CHANGES Modified Mathlib/Combinatorics/SimpleGraph/AdjMatrix.lean + theorem Matrix.IsAdjMatrix.compl_compl + theorem Matrix.IsAdjMatrix.compl_inj + theorem Matrix.IsAdjMatrix.hadamard_self + theorem Matrix.compl_of_one_sub_one + theorem Matrix.compl_zero + theorem Matrix.compl_zero_eq_of_one_sub_one + theorem SimpleGraph.IsCompl.adjMatrix_add_adjMatrix_eq_adjMatrix_completeGraph + theorem SimpleGraph.adjMatrix_add_compl_adjMatrix_eq_adjMatrix_completeGraph + theorem SimpleGraph.adjMatrix_completeGraph_eq_of_one_sub_one + theorem SimpleGraph.adjMatrix_hadamard_diagonal + theorem SimpleGraph.adjMatrix_hadamard_intCast + theorem SimpleGraph.adjMatrix_hadamard_natCast + theorem SimpleGraph.adjMatrix_hadamard_ofNat + theorem SimpleGraph.adjMatrix_hadamard_one + theorem SimpleGraph.adjMatrix_hadamard_self + theorem SimpleGraph.compl_adjMatrix_completeGraph + theorem SimpleGraph.compl_adjMatrix_eq_adjMatrix_compl + theorem SimpleGraph.diag_adjMatrix + theorem SimpleGraph.diagonal_hadamard_adjMatrix + theorem SimpleGraph.intCast_hadamard_adjMatrix +/- theorem SimpleGraph.isAdjMatrix_adjMatrix + theorem SimpleGraph.natCast_card_dart_eq_dotProduct + theorem SimpleGraph.natCast_hadamard_adjMatrix + theorem SimpleGraph.ofNat_hadamard_adjMatrix - theorem SimpleGraph.one_add_adjMatrix_add_compl_adjMatrix_eq_allOnes + theorem SimpleGraph.one_add_adjMatrix_add_compl_adjMatrix_eq_of_one + theorem SimpleGraph.one_hadamard_adjMatrix 2026-03-04 18:05:48 433f0a4 chore(Topology/Algebra/InfiniteSum/Group): generalize the Cauchy criterion to `CommMonoid` (#36138) The Cauchy criterion can be upgraded to `CommMonoid` for free. ESTIMATED CHANGES Modified Mathlib/Topology/Algebra/InfiniteSum/Group.lean +/- theorem multipliable_iff_cauchySeq_finset 2026-03-04 18:05:46 2754e4a feat(CategoryTheory/Sites): sheaf condition and coproducts (#26231) We show that under suitable conditions, checking that a presheaf is a sheaf for a covering is equivalent to checking it on the single object covering by the coproduct. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Products.lean + def CategoryTheory.Limits.Cofan.isColimitEquivOfEquiv + def CategoryTheory.Limits.Fan.isLimitEquivOfEquiv Added Mathlib/CategoryTheory/Sites/CoproductSheafCondition.lean + def CategoryTheory.PreZeroHypercover.isLimitSigmaOfIsColimitEquiv + theorem CategoryTheory.Presieve.isSheafFor_sigmaDesc_iff Modified Mathlib/CategoryTheory/Sites/Hypercover/SheafOfTypes.lean + theorem CategoryTheory.PreZeroHypercover.isLimit_toPreOneHypercover_type_iff + def CategoryTheory.PreZeroHypercover.sectionsEquivOfHasPullbacks Modified Mathlib/CategoryTheory/Sites/Hypercover/Zero.lean + theorem CategoryTheory.PreZeroHypercover.presieve₀_sigmaOfIsColimit 2026-03-04 16:50:23 d38b507 feat(CategoryTheory/MorphismProperty): API for sites on `P.Over ⊤ X` (#36126) From Proetale ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/CategoryTheory/MorphismProperty/Comma.lean + theorem CategoryTheory.MorphismProperty.Over.changeProp_obj_hom + theorem CategoryTheory.MorphismProperty.Over.changeProp_obj_left Added Mathlib/CategoryTheory/MorphismProperty/CommaSites.lean + theorem CategoryTheory.MorphismProperty.exists_map_eq_of_presieve + theorem CategoryTheory.MorphismProperty.locallyCoverDense_forget_of_le + theorem CategoryTheory.MorphismProperty.toGrothendieck_comap_forget_eq_inducedTopology Modified Mathlib/CategoryTheory/Sites/DenseSubsite/InducedTopology.lean + theorem CategoryTheory.Precoverage.locallyCoverDense_of_map_functorPullback_mem + theorem CategoryTheory.Precoverage.toGrothendieck_comap_eq_inducedTopology + theorem CategoryTheory.Precoverage.toGrothendieck_comap_le_inducedTopology 2026-03-04 16:50:20 8c6c3f0 feat(Algebra/Polynomial/Eval/Subring): notMem_map_range (#36108) A "not" version of `mem_map_range`. ESTIMATED CHANGES Modified Mathlib/Algebra/Polynomial/Eval/Subring.lean + theorem Polynomial.notMem_map_range + theorem Polynomial.notMem_map_rangeS 2026-03-04 16:50:18 7755ed2 feat(CategoryTheory/Sites): being subcanonical is reflected by fully faithful continuous functors (#36082) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Sites/Subcanonical.lean + theorem CategoryTheory.GrothendieckTopology.subcanonical_of_full_of_faithful Modified Mathlib/CategoryTheory/Yoneda.lean 2026-03-04 16:50:15 c44d6c6 chore(Tactic/FunProp): document that config options must come before … (#35987) …the discharger This being undocumented just bit me: let's make the documentation clearer ESTIMATED CHANGES Modified Mathlib/Tactic/FunProp/Elab.lean 2026-03-04 16:50:13 c106469 feat(Combinatorics/SetFamily/Intersecting): L-intersecting families (#34777) Define L-intersecting families and establish their basic properties. A family 𝒜 of finsets is L-intersecting if all pairwise intersection sizes of distinct members of 𝒜 belong to L ⊆ ℕ. From LeanCamCombi. ESTIMATED CHANGES Modified Mathlib/Combinatorics/SetFamily/Intersecting.lean + theorem Set.IsIntersectingOf.anti + theorem Set.IsIntersectingOf.mono + def Set.IsIntersectingOf 2026-03-04 16:26:53 cc82a90 doc: fix reference to Bourbaki in Analysis.Convex.Approximation (#36131) ESTIMATED CHANGES Modified Mathlib/Analysis/Convex/Approximation.lean 2026-03-04 16:26:50 8a0549d feat(Algebra/Polynomial/Bivariate): more API for swap (#35974) ESTIMATED CHANGES Modified Mathlib/Algebra/Polynomial/Bivariate.lean + theorem Polynomial.Bivariate.swap_monomial + theorem Polynomial.Bivariate.swap_swap_apply + theorem Polynomial.Bivariate.swap_symm 2026-03-04 16:26:48 4250d1a feat(GroupTheory/FreeGroup/Basic): surjection between types induces surjection between free groups on those types (#34624) feat(GroupTheory/FreeGroup/Basic): adds the theorem that if `α` and `β` are arbitrary types and there is a surjection between them, then the induced FreeGroup.map is also surjective. This is a dependency of a larger PR to formalize finitely presented groups https://github.com/leanprover-community/mathlib4/pull/34236. ESTIMATED CHANGES Modified Mathlib/GroupTheory/FreeGroup/Basic.lean +/- theorem FreeGroup.map_eq_lift + theorem FreeGroup.map_surjective + theorem FreeGroup.range_map 2026-03-04 16:26:45 4a0fab5 feat(Analysis/Normed): Krasner's lemma (#26390) This PR continues the work from #18444. Original PR: https://github.com/leanprover-community/mathlib4/pull/18444 ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Field/Subfield/Basic.lean + theorem Subfield.map_mem_map Modified Mathlib/Analysis/Normed/Algebra/Basic.lean Added Mathlib/Analysis/Normed/Field/Krasner.lean + theorem IsKrasner.krasner + theorem IsKrasner.of_completeSpace_of_normal Modified Mathlib/Analysis/Normed/Unbundled/AlgebraNorm.lean + theorem MulAlgebraNorm.coe_AlgebraNorm + def MulAlgebraNorm.toAlgebraNorm + def NormedAlgebra.toMulAlgebraNorm + theorem NormedAlgebra.toMulAlgebraNorm_apply Modified Mathlib/Analysis/Normed/Unbundled/SpectralNorm.lean + theorem NormedAlgebra.norm_eq_spectralNorm + def spectralNorm.normedAlgebra' + def spectralNorm.normedAlgebra + def spectralNorm.seminormedRing Modified Mathlib/FieldTheory/IntermediateField/Basic.lean + theorem IntermediateField.map_mem_map + theorem IntermediateField.mem_map Modified Mathlib/FieldTheory/Normal/Defs.lean 2026-03-04 16:09:22 ca2cb3b feat(AlgebraicGeometry): `fromTildeΓ` is an isomorphism given a global presentation (#36124) ESTIMATED CHANGES Modified Mathlib/AlgebraicGeometry/Modules/Tilde.lean + theorem AlgebraicGeometry.isIso_fromTildeΓ_of_presentation 2026-03-04 16:09:20 d5b8374 chore(CategoryTheory): reduce `Set α = α → Prop` defeq abuse (#36115) ESTIMATED CHANGES Modified Mathlib/AlgebraicGeometry/EllipticCurve/Affine/Point.lean Modified Mathlib/AlgebraicGeometry/IdealSheaf/Basic.lean Modified Mathlib/AlgebraicGeometry/ProjectiveSpectrum/Scheme.lean Modified Mathlib/AlgebraicGeometry/Sites/Pretopology.lean Modified Mathlib/AlgebraicGeometry/Sites/Small.lean Modified Mathlib/CategoryTheory/CofilteredSystem.lean Modified Mathlib/CategoryTheory/Sites/DenseSubsite/InducedTopology.lean Modified Mathlib/CategoryTheory/Sites/Over.lean Modified Mathlib/CategoryTheory/Sites/Spaces.lean 2026-03-04 16:09:18 177e455 feat(CategoryTheory/Sites): the maximal `1`-hypercover containing a `0`-hypercover (#35904) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Sites/Hypercover/Saturate.lean + structure CategoryTheory.PreZeroHypercover.Relation + def CategoryTheory.PreZeroHypercover.fromSaturateOfHasPullbacks + def CategoryTheory.PreZeroHypercover.fromSaturateToSaturateHomotopy + def CategoryTheory.PreZeroHypercover.isLimitSaturateEquivOfHasPullbacks + theorem CategoryTheory.PreZeroHypercover.isLimit_saturate_type_iff + def CategoryTheory.PreZeroHypercover.saturate + def CategoryTheory.PreZeroHypercover.sectionsSaturateEquiv + def CategoryTheory.PreZeroHypercover.toPreOneHypercoverHomotopy + def CategoryTheory.PreZeroHypercover.toSaturateOfHasPullbacks + theorem CategoryTheory.PreZeroHypercover.toSaturateOfHasPullbacks_fromSaturateOfHasPullbacks 2026-03-04 14:59:59 24248ce chore(Mathlib/LinearAlgebra/Matrix/Kronecker.lean): automated extraction (#36136) This PR was automatically created from PR #35233 by @kim-em via a [review comment](https://github.com/leanprover-community/mathlib4/pull/35233#discussion_r2883828233) by @Vierkantor. ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/Matrix/Kronecker.lean 2026-03-04 14:59:57 a48343c chore(Mathlib/Algebra/Category/ModuleCat/Sheaf/Quasicoherent.lean): automated extraction (#36135) This PR was automatically created from PR #35233 by @kim-em via a [review comment](https://github.com/leanprover-community/mathlib4/pull/35233#discussion_r2883827665) by @Vierkantor. ESTIMATED CHANGES Modified Mathlib/Algebra/Category/ModuleCat/Sheaf/Quasicoherent.lean 2026-03-04 14:59:55 58f7089 feat(CategoryTheory/Abelian): five lemma variant for zero objects on the left resp. on the right (#36125) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Abelian/DiagramLemmas/Four.lean + theorem CategoryTheory.Abelian.isIso_of_epi_of_isIso + theorem CategoryTheory.Abelian.isIso_of_isIso_of_mono 2026-03-04 14:59:54 fd3512c feat(FieldTheory/IntermediateField/Basic): Add missing `coe_div` and attributes (#36123) Adding simp and norm_cast attributes, since the `Subfield` versions has them. ESTIMATED CHANGES Modified Mathlib/FieldTheory/IntermediateField/Basic.lean 2026-03-04 14:59:51 25075fe feat: independence of processes with almost everywhere equal marginals (#36066) If `X` is a process independent from `Y` and for all `i`, `X' i` is almost everywhere equal to `X i`, then `X'` is also independent from `Y`. This implies that independence results about measurable processes should generally also hold for processes whose marginals are only aemeasurable. ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Constructions/Cylinders.lean + theorem MeasureTheory.MeasurableSet.eq_preimage_restrict_countable Modified Mathlib/Probability/Independence/BoundedContinuousFunction.lean Modified Mathlib/Probability/Independence/Process.lean + theorem ProbabilityTheory.IndepFun.indepFun_process₀ + theorem ProbabilityTheory.IndepFun.process_congr + theorem ProbabilityTheory.IndepFun.process_congr_left + theorem ProbabilityTheory.IndepFun.process_congr_right + theorem ProbabilityTheory.IndepFun.process_indepFun_process₀ + theorem ProbabilityTheory.IndepFun.process_indepFun₀ + theorem ProbabilityTheory.Kernel.IndepFun.indepFun_process₀ + theorem ProbabilityTheory.Kernel.IndepFun.process_congr + theorem ProbabilityTheory.Kernel.IndepFun.process_congr_left + theorem ProbabilityTheory.Kernel.IndepFun.process_congr_right + theorem ProbabilityTheory.Kernel.IndepFun.process_indepFun_process₀ + theorem ProbabilityTheory.Kernel.IndepFun.process_indepFun₀ + theorem ProbabilityTheory.Kernel.iIndepFun.iIndepFun_process₀ + theorem ProbabilityTheory.Kernel.iIndepFun.process_congr + theorem ProbabilityTheory.iIndepFun.iIndepFun_process₀ + theorem ProbabilityTheory.iIndepFun.process_congr 2026-03-04 14:59:49 bad25bb ci: add conditionals on {lean,batteries}-pr-testing steps (#35958) These steps only need to run from mathlib4-nightly-testing and when the branch names fit the *-pr-testing pattern. There's no need to mint a token for other runs. Less importantly, this is also breaking CI on dependabot PRs cf. https://github.com/leanprover-community/mathlib4/pull/35917#issuecomment-3980111057 ESTIMATED CHANGES Modified .github/workflows/build_template.yml 2026-03-04 14:59:48 43a34ca chore: remove some superfluous parens (#35921) Found by manually auditing the output of regex-searching for '\([A-Za-z0-9_][A-Za-z0-9_]+\)'. Most results are false positives (such as, documentation or export statements), a few are more interesting. Not exhaustive, I looked at perhaps a fifth or a tenth of all results. ESTIMATED CHANGES Modified Counterexamples/AharoniKorman.lean Modified Counterexamples/CanonicallyOrderedCommSemiringTwoMul.lean Modified Mathlib/Algebra/Category/ModuleCat/Presheaf/Pullback.lean Modified Mathlib/Algebra/Category/Ring/Basic.lean Modified Mathlib/Algebra/Group/Pointwise/Finset/BigOperators.lean Modified Mathlib/Algebra/Group/Subgroup/Basic.lean Modified Mathlib/Algebra/Lie/Semisimple/Lemmas.lean Modified Mathlib/Algebra/Order/Antidiag/Nat.lean Modified Mathlib/Algebra/Order/Archimedean/Class.lean Modified Mathlib/Algebra/Order/CompleteField.lean Modified Mathlib/Algebra/SkewMonoidAlgebra/Basic.lean 2026-03-04 14:59:46 b764b11 feat(Data/Nat/Choose/Lucas): add choose_mul_mul and choose_pow_mul_pow_mul modular congruence lemmas (#35893) ESTIMATED CHANGES Modified Mathlib/Data/Nat/Choose/Lucas.lean + theorem Choose.choose_mul_mul_modEq_choose + theorem Choose.choose_mul_mul_modEq_choose_nat + theorem Choose.choose_pow_mul_pow_mul_modEq_choose + theorem Choose.choose_pow_mul_pow_mul_modEq_choose_nat 2026-03-04 14:59:44 89758f0 chore: delete deprecated module Topology/PartialHomeomorph (#35890) This module was deprecated on October 3, and is blocking refactoring of the manifold library. ESTIMATED CHANGES Modified Mathlib.lean Deleted Mathlib/Topology/PartialHomeomorph.lean 2026-03-04 14:59:42 9a16aa5 feat: asymptotics of the `logCounting` function of Value Distribution Theory (#35767) If `f` is meromorphic over a field `𝕜`, show that the logarithmic counting function for the poles of `f` is asymptotically bounded if and only if `f` has only removable singularities. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/Complex/ValueDistribution/LogCounting/Asymptotic.lean + theorem Function.locallyFinsuppWithin.one_isLittleO_logCounting_single + theorem Function.locallyFinsuppWithin.zero_iff_logCounting_bounded + theorem ValueDistribution.logCounting_isBigO_one_iff_analyticOnNhd 2026-03-04 14:59:40 c326498 feat(NumberTheory/Height/Basic): add {mul|log}Height_comp_le, {mul|log}Height_fun_mul_eq (#35408) This adds * two missing `logHeight` lemmas (their `mulHeight` versions are already there) * `{mul|log}Height_comp_le`: the height of `x ∘ f` is bounded by the height of `x` * `{mul|log}Height_fun_mul_eq`: the height of the "multiplication table" `fun (i, j) ↦ x i * y j` is the {product|sum} of the heights of `x` and of `y` * `{mul|log}Height_fun_prod_eq`: the analogous result for products with arbitrarily many factors * plus some API lemmas needed for these. ESTIMATED CHANGES Modified Mathlib/Analysis/Normed/Ring/Basic.lean + theorem Real.iSup_fun_mul_eq_iSup_mul_iSup_of_nonneg + theorem Real.iSup_prod_eq_prod_iSup_of_nonneg + theorem Real.iSup_prod_eq_prod_iSup_of_nonnegHomClass Modified Mathlib/Data/Fintype/Order.lean + theorem Finite.ciInf_prod + theorem Finite.ciSup_prod Modified Mathlib/Data/Real/Archimedean.lean + theorem Real.iSup_nonneg_of_nonnegHomClass Modified Mathlib/NumberTheory/Height/Basic.lean + theorem Height.logHeight_comp_equiv + theorem Height.logHeight_comp_le + theorem Height.logHeight_fun_mul_eq + theorem Height.logHeight_fun_prod_eq +/- theorem Height.logHeight_one + theorem Height.logHeight_swap +/- theorem Height.logHeight_zero +/- theorem Height.mulHeight_comp_equiv + theorem Height.mulHeight_comp_le + theorem Height.mulHeight_fun_mul_eq + theorem Height.mulHeight_fun_prod_eq Modified Mathlib/Order/ConditionallyCompleteLattice/Indexed.lean + theorem ciInf_prod + theorem ciSup_prod 2026-03-04 14:59:38 9a59085 feat(Algebra/Homology/SpectralObject): construction of the objects on the pages of the spectral sequence (#35378) Given a spectral object `X` in an abelian category, we define the objects which shall appear on the various pages of the spectral sequence attached to `X`. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Homology/SpectralObject/Page.lean + theorem CategoryTheory.Abelian.SpectralObject.cokernelSequenceCyclesE_exact + theorem CategoryTheory.Abelian.SpectralObject.cyclesIso_hom_i + theorem CategoryTheory.Abelian.SpectralObject.cyclesIso_inv_i + theorem CategoryTheory.Abelian.SpectralObject.isIso_map + theorem CategoryTheory.Abelian.SpectralObject.isZero_E_of_isZero_H + theorem CategoryTheory.Abelian.SpectralObject.isZero_H_obj_of_isIso + theorem CategoryTheory.Abelian.SpectralObject.leftHomologyDataShortComplexE_f' + theorem CategoryTheory.Abelian.SpectralObject.map_comp + theorem CategoryTheory.Abelian.SpectralObject.map_id + theorem CategoryTheory.Abelian.SpectralObject.rightHomologyDataShortComplexE_g' + def CategoryTheory.Abelian.SpectralObject.shortComplex + def CategoryTheory.Abelian.SpectralObject.shortComplexMap + theorem CategoryTheory.Abelian.SpectralObject.shortComplexMap_comp + theorem CategoryTheory.Abelian.SpectralObject.shortComplexMap_id + theorem CategoryTheory.Abelian.SpectralObject.δToCycles_cyclesIso_inv + theorem CategoryTheory.Abelian.SpectralObject.δToCycles_πE + theorem CategoryTheory.Abelian.SpectralObject.δ_eq_zero_of_isIso₁ + theorem CategoryTheory.Abelian.SpectralObject.δ_eq_zero_of_isIso₂ 2026-03-04 14:59:36 2848a7a feat(Order/Filter/Pointwise): `((∀ᶠ|∃ᶠ) x in op f, p x) ↔ ((∀ᶠ|∃ᶠ) x in f, p (op x))` (#35312) This lemma is required when I prove that $z \mapsto \sin^{-1} z^{-1}$ is not meromorphic at $0$: ```lean4 @[simp] lemma Filter.frequently_inv {α : Type*} [Inv α] {f : Filter α} {p : α → Prop} : (∃ᶠ a in f⁻¹, p a) ↔ (∃ᶠ a in f, p a⁻¹) := frequently_map example : ¬(∀ᶠ z in 𝓝[≠] (0 : ℂ), sin⁻¹ z⁻¹ = 0) ↔ (∃ᶠ z in cobounded ℂ, sin z ≠ 0) := by simp [← inv_cobounded₀] ``` So I added the simp lemmas of `(∀ᶠ|∃ᶠ) x in op f, p x` for unary operations `op` (`-f`, `f⁻¹` & `a • f`). While I was at it, I also added the simp lemmas of `∃ᶠ x in pure a, p x` & `∃ᶠ x in (0|1), p x`, which previously existed only for the `∀ᶠ` versions. Binary operation versions will be added if necessary.
Appendix: Full proof of that $z \mapsto \sin^{-1} z^{-1}$ is not meromorphic at $0$ ```lean4 module import Mathlib.Analysis.Meromorphic.Basic import Mathlib.Analysis.SpecialFunctions.Trigonometric.Complex import Mathlib.Analysis.SpecialFunctions.Trigonometric.Deriv import Mathlib.Analysis.SpecificLimits.RCLike open Complex Filter Bornology open scoped Real Topology Pointwise @[simp] lemma Filter.frequently_inv {α : Type*} [Inv α] {f : Filter α} {p : α → Prop} : (∃ᶠ a in f⁻¹, p a) ↔ (∃ᶠ a in f, p a⁻¹) := frequently_map example : ¬MeromorphicAt (fun z => sin⁻¹ z⁻¹) 0 := by apply mt MeromorphicAt.eventually_eq_zero_or_eventually_ne_zero conv => equals (∃ᶠ z in cobounded ℂ, sin z ≠ 0) ∧ (∃ᶠ z in cobounded ℂ, sin z = 0) => simp [← inv_cobounded₀] constructor case left => have ht : Tendsto (fun x : ℝ ↦ ↑x * I) (cobounded ℝ) (cobounded ℂ) := by have ht₁ : Tendsto ((↑) : ℝ → ℂ) (cobounded ℝ) (cobounded ℂ) := RCLike.tendsto_ofReal_cobounded_cobounded ℂ have ht₂ : Tendsto (fun z : ℂ ↦ z * I) (cobounded ℂ) (cobounded ℂ) := tendsto_mul_right_cobounded (by simp) exact ht₂.comp ht₁ refine ht.frequently_map _ (fun x ↦ mt ?_) (eventually_ne_cobounded 0).frequently rw [sin_eq_zero_iff] rintro ⟨n, hn⟩ simpa using congr_arg im hn case right => suffices ht : Tendsto (fun n : ℤ ↦ (↑n * ↑π : ℂ)) atTop (cobounded ℂ) by apply ht.frequently; simp [sin_int_mul_pi, atTop_neBot] have ht₁ : Tendsto ((↑) : ℤ → ℝ) atTop (cobounded ℝ) := tendsto_intCast_atTop_cobounded have ht₂ : Tendsto ((↑) : ℝ → ℂ) (cobounded ℝ) (cobounded ℂ) := RCLike.tendsto_ofReal_cobounded_cobounded ℂ have ht₃ : Tendsto (fun z : ℂ ↦ z * ↑π) (cobounded ℂ) (cobounded ℂ) := tendsto_mul_right_cobounded (by simp) exact ht₃.comp <| ht₂.comp ht₁ ```
ESTIMATED CHANGES Modified Mathlib/Order/Filter/Map.lean + theorem Filter.frequently_pure Modified Mathlib/Order/Filter/Pointwise.lean + theorem Filter.eventually_inv + theorem Filter.eventually_smul_filter + theorem Filter.frequently_inv + theorem Filter.frequently_inv_filter + theorem Filter.frequently_one 2026-03-04 14:59:34 ed88622 feat(Algebra/Polynomial/AlgebraMap): add Polynomial.aeval_eq_aeval_map (#34788) This lemma is a special case of `Polynomial.map_aeval_eq_aeval_map` when `U = T` and `ψ` the identity. ESTIMATED CHANGES Modified Mathlib/Algebra/Polynomial/AlgebraMap.lean + theorem Polynomial.aeval_eq_aeval_map 2026-03-04 14:59:32 0d84e87 feat(MeasureTheory): add `MeasurableEmbedding.natCast` (#34521) This PR adds a lemma stating that the coercion from `ℕ` is a measurable embedding. This is useful for proving properties about discrete probability distributions on `ℕ` by lifting them to `ℝ` and will be used in #34435. ESTIMATED CHANGES Modified Mathlib/MeasureTheory/MeasurableSpace/Embedding.lean + theorem MeasurableEmbedding.natCast 2026-03-04 14:59:30 2a8445b feat(MeasureTheory): Strong measurability is preserved under division in a group with zero (#34427) I proved that if `f,g` are two strongly measurable functions taking values in a group with zero, then `f/g` is still strongly measurable. As mentioned over here [#Is there code for X? > StronglyMeaurable.div₀](https://leanprover.zulipchat.com/#narrow/channel/217875-Is-there-code-for-X.3F/topic/StronglyMeaurable.2Ediv.E2.82.80/with/569988425), I probably should also change the name of [MeasureTheory.StronglyMeasurable.div](https://leanprover-community.github.io/mathlib4_docs/Mathlib/MeasureTheory/Function/StronglyMeasurable/Basic.html#MeasureTheory.StronglyMeasurable.div) into `StronglyMeasurable.div'` according to the docstring of [ContinuousDiv](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Topology/Algebra/Group/Defs.html#ContinuousDiv). If I do this, then @to_additive will generate a theorem named `StronglyMeasurable.sub'`, which is a bit weird, so I am unsure whether I should change these names. ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Function/StronglyMeasurable/AEStronglyMeasurable.lean + theorem MeasureTheory.AEStronglyMeasurable.div₀ Modified Mathlib/MeasureTheory/Function/StronglyMeasurable/Basic.lean + theorem MeasureTheory.StronglyMeasurable.div + theorem MeasureTheory.StronglyMeasurable.div₀ Modified Mathlib/Probability/Process/Adapted.lean 2026-03-04 12:02:13 816802b feat(Algebra/Polynomial): add aevalEquiv and its bivariate version (#35283) ESTIMATED CHANGES Modified Mathlib/Algebra/Polynomial/AlgebraMap.lean + def Polynomial.aevalEquiv + theorem Polynomial.aevalEquiv_apply Modified Mathlib/Algebra/Polynomial/Bivariate.lean + def Polynomial.aevalAevalEquiv + theorem Polynomial.aevalAevalEquiv_apply + theorem Polynomial.aevalAeval_C + theorem Polynomial.aevalAeval_X + theorem Polynomial.aevalAeval_Y Modified Mathlib/FieldTheory/RatFunc/Luroth.lean Modified Mathlib/RingTheory/AdjoinRoot.lean +/- theorem AdjoinRoot.liftHom_mk 2026-03-04 11:37:16 d9804c6 doc(CategoryTheory/Bicategory/Kan): clarify Kan adjunction docstrings (#35146) * The two IsAbsKan.adjunction docstrings in Kan/Adjunction were corrected to match the actual definitions: they now describe deriving adjunctions from absolute left Kan (co)universal data, not from an input adjunction. * Grammar and phrasing were cleaned up in the IsKan.adjunction docs (commutes with f/u). * In Kan/HasKan and Kan/IsKan, stale/non-API names were replaced by the current identifiers (lan, lanLift, HasLeftKanExtension) and Kan capitalization was normalized. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Bicategory/Kan/Adjunction.lean Modified Mathlib/CategoryTheory/Bicategory/Kan/HasKan.lean Modified Mathlib/CategoryTheory/Bicategory/Kan/IsKan.lean 2026-03-04 11:26:10 8d466dd feat(NumberTheory/Height/Northcott): define Northcott functions (#35988) This PR defines Northcott functions and provides some API. Extracted from #35918. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/GroupTheory/Descent.lean Added Mathlib/NumberTheory/Height/Northcott.lean + theorem Northcott.exists_min_image + theorem northcott_iff_tendsto Modified docs/references.bib 2026-03-04 10:55:15 6a04da4 feat(RingTheory): add some easy lemmas (#35789) This PR adds three small helper lemmas needed for the ongoing formalization of the Cohen Structure Theorem. ESTIMATED CHANGES Modified Mathlib/RingTheory/AdicCompletion/Algebra.lean + theorem AdicCompletion.algebraMap_apply Modified Mathlib/RingTheory/MvPolynomial/Ideal.lean + theorem MvPolynomial.idealOfVars_fg 2026-03-04 10:55:12 6ad342f feat(RingTheory/Lasker): second uniqueness theorem for primary decomposition (#35599) This PR proves the second uniqueness theorem for primary decomposition. ESTIMATED CHANGES Modified Mathlib/RingTheory/Ideal/AssociatedPrime/Basic.lean Modified Mathlib/RingTheory/IsPrimary.lean Modified Mathlib/RingTheory/Lasker.lean - theorem Ideal.IsMinimalPrimaryDecomposition.minimalPrimes_subset_image_radical + theorem Submodule.IsMinimalPrimaryDecomposition.Ideal.IsMinimalPrimaryDecomposition.minimalPrimes_subset_image_radical + theorem Submodule.IsMinimalPrimaryDecomposition.Submodule.isLasker + theorem Submodule.IsMinimalPrimaryDecomposition.comap_localized₀_eq_iInf + theorem Submodule.IsMinimalPrimaryDecomposition.comap_localized₀_eq_ite +/- theorem Submodule.IsMinimalPrimaryDecomposition.image_radical_eq_associated_primes + theorem Submodule.IsMinimalPrimaryDecomposition.injOn + theorem Submodule.IsMinimalPrimaryDecomposition.mem_associatedPrimes - theorem Submodule.isLasker 2026-03-04 10:41:55 3a31ced feat(InfinitePlace/Completion): embeddings of `w.Completion` factor through embeddings of `v.Completion` when `w` lies over `v` (#29942) The class `ComplexEmbedding.LiesOver ψ φ` formalises the property that the complex field embedding `φ : L →+* ℂ` restricted to `K` gives `ψ : K →+* ℂ`, whenever `Algebra K L`. If `w : InfinitePlace L` and `v : InfinitePlace K` are such that we have `Algebra v.Completion w.Completion`, then `extensionEmbedding w : L →+* ℂ` restricted to `K` gives `extensionEmbedding v : K →+* ℂ`. To avoid diamonds arising from propeq instances when `K = L` we do not construct the global instance `Algebra v.Completion w.Completion` from `Algebra K L`, but assume it instead. It is then required to assume the following compatibility assumptions for the main result of this PR to be true: - `IsScalarTower (WithAbs v.1) v.Completion w.Completion` - `ContinuousSMul v.Completion w.Completion` ESTIMATED CHANGES Modified Mathlib/NumberTheory/NumberField/InfinitePlace/Completion.lean + theorem NumberField.InfinitePlace.Completion.algebraMap_coe + theorem NumberField.InfinitePlace.Completion.extensionEmbeddingOfIsReal_apply + theorem NumberField.InfinitePlace.Completion.liesOver_conjugate_extensionEmbedding + theorem NumberField.InfinitePlace.Completion.liesOver_extensionEmbedding + theorem NumberField.InfinitePlace.LiesOver.embedding_liesOver_of_isReal + theorem NumberField.InfinitePlace.LiesOver.extensionEmbedding_liesOver_of_isReal + theorem NumberField.InfinitePlace.LiesOver.isometry_algebraMap Modified Mathlib/NumberTheory/NumberField/InfinitePlace/Embeddings.lean +/- theorem NumberField.ComplexEmbedding.Extension.comp_eq 2026-03-04 10:01:25 80f4a5f feat(RingTheory): Teichmuller map (#30989) Let `R` be an `I`-adically complete ring, and `p` be a prime number with `p ∈ I`. This PR constructs the Teichmüller map `Perfection (R ⧸ I) p →*₀ R` such that it composed with the quotient map `R →+* R ⧸ I` is the "0-th coefficient" map `Perfection (R ⧸ I) p →+* R ⧸ I`. This generalises the existing [PreTilt.untilt](https://leanprover-community.github.io/mathlib4_docs/Mathlib/RingTheory/Perfectoid/Untilt.html#PreTilt.untilt). I have also moved `Mathlib/LinearAlgebra/SModEq` to a folder to be `/SModEq/Basic.lean`, because I needed to add some lemmas to `/SModEq/Prime.lean`; I also added a lemma to the end of `/Basic.lean` called `ideal`. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/LinearAlgebra/SModEq/Basic.lean + theorem SModEq.idealQuotientMk Added Mathlib/LinearAlgebra/SModEq/Pow.lean + theorem SModEq.pow_add_one + theorem SModEq.pow_mul_of_le + theorem SModEq.pow_pow_add_one Modified Mathlib/RingTheory/Perfectoid/Untilt.lean - theorem PreTilt.exists_smodEq_untiltAux - theorem PreTilt.pow_dvd_mul_untiltAux_sub_untiltAux_mul - theorem PreTilt.pow_dvd_one_untiltAux_sub_one - theorem PreTilt.pow_dvd_untiltAux_sub_untiltAux - def PreTilt.untilt - def PreTilt.untiltAux - theorem PreTilt.untiltAux_smodEq_untiltFun - def PreTilt.untiltFun Added Mathlib/RingTheory/Teichmuller.lean + theorem Perfection.coe_teichmuller_eq_teichmuller₀ + theorem Perfection.exists_teichmullerFun + theorem Perfection.mk_comp_teichmuller' + theorem Perfection.mk_comp_teichmuller + theorem Perfection.mk_comp_teichmuller₀ + theorem Perfection.mk_teichmuller + theorem Perfection.teichmullerAux_sModEq + theorem Perfection.teichmullerFun_eq_teichmuller₀ + theorem Perfection.teichmullerFun_sModEq + theorem Perfection.teichmullerFun_spec' + theorem Perfection.teichmullerFun_spec + theorem Perfection.teichmuller_eq_teichmuller₀_toMonoidHom + theorem Perfection.teichmuller_sModEq + theorem Perfection.teichmuller_spec' + theorem Perfection.teichmuller_spec + theorem Perfection.teichmuller_zero + theorem Perfection.teichmuller₀_sModEq + theorem Perfection.teichmuller₀_spec' + theorem Perfection.teichmuller₀_spec 2026-03-04 09:37:50 7c0aa26 feat(Algebra/TrivSqZeroExt): the canonical ideal has square zero (#35690) - Mv `Mathlib/Algebra/TrivSqZeroExt.lean` to `Mathlib/Algebra/TrivSqZeroExt/Basic.lean` - Define `TrivSqZeroExt.kerIdeal`: the canonical ideal of `TrivSqZeroExt R M` - Prove `TrivSqZero.sqZero`: this ideal has square zero. co-authored with @mariainesdff ESTIMATED CHANGES Modified Counterexamples/InvertibleModuleNotIdeal.lean Modified Mathlib.lean Modified Mathlib/Algebra/DualNumber.lean Renamed Mathlib/Algebra/TrivSqZeroExt.lean to Mathlib/Algebra/TrivSqZeroExt/Basic.lean Added Mathlib/Algebra/TrivSqZeroExt/Ideal.lean + def TrivSqZeroExt.kerIdeal + theorem TrivSqZeroExt.kerIdeal_sq + theorem TrivSqZeroExt.mem_kerIdeal_iff_inr Modified Mathlib/LinearAlgebra/TensorAlgebra/Basic.lean Modified Mathlib/Topology/Instances/TrivSqZeroExt.lean 2026-03-04 09:37:48 6370fdc feat(LinearAlgebra/ConvexSpace): show AffineSpace is a ConvexSpace (#34594) This PR shows that every affine space is a convex space, resolving a TODO item in `Mathlib.LinearAlgebra.ConvexSpace`. The key components are: - `AddTorsor.convexCombination`: convex combination using `affineCombination` - `convexCombination_single`: unit law for convex combinations - `convexCombination_assoc`: associativity law (monadic join) - `AddTorsor.instConvexSpace`: the `ConvexSpace R P` instance 🤖 Prepared with Claude Code ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/LinearAlgebra/ConvexSpace/AffineSpace.lean 2026-03-04 08:58:32 bf8875c chore: adapt names after #34658 (#36080) This fixes the remaining theorem names referring to `finite_{mulS|s}upport` where the statement has changed to involve `HasFinite{Mul}Support`. ESTIMATED CHANGES Modified Mathlib/Algebra/BigOperators/Finprod.lean - theorem finite_mulSupport_of_finprod_ne_one - theorem finite_support_of_finsum_eq_one + theorem hasFiniteMulSupport_of_finprod_ne_one + theorem hasFiniteSupport_of_finsum_eq_one Modified Mathlib/Algebra/DirectSum/Basic.lean - theorem DirectSum.finite_support + theorem DirectSum.hasFiniteSupport Modified Mathlib/Algebra/FiniteSupport/Basic.lean Modified Mathlib/Data/Finsupp/Defs.lean - theorem Finsupp.finite_support + theorem Finsupp.hasFiniteSupport Modified Mathlib/Data/Finsupp/Pointwise.lean Modified Mathlib/LinearAlgebra/Basis/Defs.lean Modified Mathlib/NumberTheory/Height/Basic.lean Modified Mathlib/NumberTheory/Height/NumberField.lean Modified Mathlib/NumberTheory/NumberField/FinitePlaces.lean + theorem NumberField.RingOfIntegers.HeightOneSpectrum.FinitePlace.hasFiniteMulSupport + theorem NumberField.RingOfIntegers.HeightOneSpectrum.FinitePlace.hasFiniteMulSupport_int - theorem NumberField.RingOfIntegers.HeightOneSpectrum.FinitePlace.mulSupport_finite - theorem NumberField.RingOfIntegers.HeightOneSpectrum.FinitePlace.mulSupport_finite_int Modified Mathlib/NumberTheory/NumberField/ProductFormula.lean Modified Mathlib/RingTheory/DedekindDomain/Factorization.lean - theorem Ideal.finite_mulSupport - theorem Ideal.finite_mulSupport_coe - theorem Ideal.finite_mulSupport_inv + theorem Ideal.hasFiniteMulSupport + theorem Ideal.hasFiniteMulSupport_coe + theorem Ideal.hasFiniteMulSupport_inv Modified Mathlib/RingTheory/HahnSeries/Basic.lean Modified Mathlib/RingTheory/HahnSeries/Summable.lean + theorem HahnSeries.SummableFamily.hasFiniteSupport_smul - theorem HahnSeries.SummableFamily.smul_support_finite Modified Mathlib/RingTheory/MvPowerSeries/Substitution.lean Modified Mathlib/Topology/Algebra/InfiniteSum/Group.lean - theorem Multipliable.finite_mulSupport_of_discreteTopology + theorem Multipliable.hasFiniteMulSupport_of_discreteTopology Modified Mathlib/Topology/Algebra/Ring/Compact.lean 2026-03-04 08:58:29 20467f9 feat: cyclic group with explicit generator is equivalent to `ZMod n` (#34629) We provide an equivalence between a cyclic group (given by an explicit generator) and `ZMod n`, where `n` is equal to the cardinality of the group. The equivalence sends `1` to the generator. See [Zulip](https://leanprover.zulipchat.com/#narrow/channel/217875-Is-there-code-for-X.3F/topic/ZMod.20to.20cyclic.20group/near/571147306). ESTIMATED CHANGES Modified Mathlib/GroupTheory/SpecificGroups/Cyclic.lean + theorem zmodAddEquivOfGenerator_apply_intCast + theorem zmodAddEquivOfGenerator_apply_one + theorem zmodAddEquivOfGenerator_symm_apply_generator + theorem zmodAddEquivOfGenerator_symm_apply_zsmul + theorem zmodMulEquivOfGenerator_apply_ofAdd_intCast + theorem zmodMulEquivOfGenerator_apply_ofAdd_one + theorem zmodMulEquivOfGenerator_symm_apply_generator + theorem zmodMulEquivOfGenerator_symm_apply_zpow 2026-03-04 08:58:27 b66958d feat(FieldTheory/RatFunc): Degree of field extension K(X)/K(f) (#34215) Prove that the degree of the field extension K(X)/K(f) of a rational function f equals the maximum of the degrees of its numerator and denominator. This is a crucial lemma towards proving Luroth's theorem. This contribution was created as part of the Heidelberg Lean workshop "Formalising algebraic geometry" in November 2025. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/FieldTheory/IntermediateField/Adjoin/Algebra.lean + theorem IntermediateField.algebraAdjoinAdjoin.coe_algebraMap Added Mathlib/FieldTheory/RatFunc/Luroth.lean + theorem RatFunc.C_minpolyX + theorem RatFunc.IntermediateField.adjoin_X + theorem RatFunc.adjoin_X + theorem RatFunc.eq_C_of_minpolyX_coeff_eq_zero + theorem RatFunc.finrank_eq_max_natDegree + theorem RatFunc.irreducible_minpolyX' + theorem RatFunc.irreducible_minpolyX + theorem RatFunc.isAlgebraic_adjoin_simple_X' + theorem RatFunc.isAlgebraic_adjoin_simple_X + theorem RatFunc.minpolyX_aeval_X + theorem RatFunc.minpolyX_eq_zero_iff + theorem RatFunc.minpolyX_map + theorem RatFunc.natDegree_denom_le_natDegree_minpolyX + theorem RatFunc.natDegree_minpolyX + theorem RatFunc.natDegree_num_le_natDegree_minpolyX + theorem RatFunc.transcendental_of_ne_C 2026-03-04 08:47:30 4e2c52a chore: split natural number lemmas from `RingTheory.Radical` (#36098) The new copyright headers are based on #25335. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/RingTheory/Polynomial/Radical.lean Renamed Mathlib/RingTheory/Radical.lean to Mathlib/RingTheory/Radical/Basic.lean - theorem Nat.one_lt_radical_iff - theorem Nat.radical_le_one_iff - theorem Nat.radical_le_self_iff - theorem Nat.radical_pos - theorem Nat.two_le_radical_iff - theorem UniqueFactorizationMonoid.primeFactors_eq_natPrimeFactors Added Mathlib/RingTheory/Radical/NatInt.lean + theorem Nat.one_lt_radical_iff + theorem Nat.radical_le_one_iff + theorem Nat.radical_le_self_iff + theorem Nat.radical_pos + theorem Nat.two_le_radical_iff + theorem UniqueFactorizationMonoid.primeFactors_eq_natPrimeFactors 2026-03-04 07:32:08 1a8a236 feat(LinearAlgebra/QuadraticForm): Sylvester's law of inertia (#34204) Prove the uniqueness part of Sylvester's law of inertia (we already have the existence part, but the uniqueness is a long-standing TODO). This PR is based on work carried out by Sina Keller, Philipp Schumann, and Nicolas Trutmann in the course of their studies at ETH Zürich. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/LinearAlgebra/QuadraticForm/Basic.lean + def QuadraticMap.restrict Added Mathlib/LinearAlgebra/QuadraticForm/Signature.lean + theorem QuadraticForm.sigNeg_of_equiv_weightedSumSquares + theorem QuadraticForm.sigNeg_weightedSumSquares + theorem QuadraticForm.sigPos_add_finrank_le_of_nonpos + theorem QuadraticForm.sigPos_add_sigNeg_add_radical + theorem QuadraticForm.sigPos_of_equiv_weightedSumSquares + theorem QuadraticForm.sigPos_weightedSumSquares + theorem QuadraticMap.Equivalent.sigNeg_eq + theorem QuadraticMap.Equivalent.sigPos_eq + theorem QuadraticMap.IsometryEquiv.map_negDef_iff + theorem QuadraticMap.IsometryEquiv.map_posDef_iff + theorem exists_finrank_eq_sigNeg_and_negDef + theorem exists_finrank_eq_sigPos_and_posDef + theorem le_sigNeg_of_negDef + theorem le_sigPos_of_posDef + def sigNeg + theorem sigNeg_isGreatest + theorem sigNeg_neg + def sigPos + theorem sigPos_isGreatest + theorem sigPos_le_finrank + theorem sigPos_neg 2026-03-04 07:16:30 650d5ca feat(Torsion/Basic): Add a few convenient lemmas for torsion submodules (#35534) This PR adds a few convenient lemmas in Torsion/Basic. In particular, it adds: - A version of `torsionBySet_span_singleton_eq` for Ideals. These two are added to the simp set. - Show two instances of `isTorsionBy`/`isTorsionBySet` being `IsTorsion` in the form of `torsionBy_isTorsion_nonZeroDivisor` and `torsionBySet_ideal_isTorsion_of_noZeroDivisors`. - Add a version of `iSup_torsionBySet_ideal_eq_torsionBySet_iInf` and `supIndep_torsionBySet_ideal` for `sup` instead of `iSup`. Note: To go from `iSup` to `sup` I need to talk about `Fin 2` which requires `Finset.univ_fin2` that is in Mathlib but in a weird place. I just put it as a have in my proof. Note2: one could also use `{P,Q}` and `id` instead of the map from `Fin 2` but that makes the proof of `disjoint_torsionBySet_ideal` inconvenient. ESTIMATED CHANGES Modified Mathlib/Algebra/Module/Torsion/Basic.lean + theorem Submodule.disjoint_torsionBySet_ideal + theorem Submodule.sup_torsionBySet_ideal_eq_torsionBySet_inf + theorem Submodule.torsionBySet_ideal_isTorsion_of_noZeroDivisors + theorem Submodule.torsionBySet_ideal_span_singleton_eq + theorem Submodule.torsionBy_isTorsion_nonZeroDivisor 2026-03-04 07:05:19 258952c feat(Analysis/Complex): weaken hypothesis in Borel-Caratheodory theorem (#35914) Replace the hypothesis Re z < m with Re z <= m which is sufficient for the proof. The conclusions are unchanged. The non-strict inequality is used in the PNT project, somehow it had been made strict when upstreaming the result. ESTIMATED CHANGES Modified Mathlib/Analysis/Complex/BorelCaratheodory.lean + theorem Complex.norm_le_norm_two_mul_sub - theorem Complex.norm_lt_norm_two_mul_sub 2026-03-04 01:31:35 b87935d chore: update Mathlib dependencies 2026-03-04 (#36096) This PR updates the Mathlib dependencies. ESTIMATED CHANGES Modified lake-manifest.json 2026-03-04 00:06:54 8e096f8 ci: add daily master tags (#35426) This PR adds a GitHub Actions workflow that creates a `master-YYYY-MM-DD` tag from master each day at 10:00 UTC. Downstream repos that depend on mathlib can pin to these tags instead of waiting for the monthly toolchain release tags. The workflow is idempotent (skips if the tag already exists) and can also be triggered manually via workflow_dispatch. 🤖 Prepared with Claude Code ESTIMATED CHANGES Added .github/workflows/daily-master-tag.yml 2026-03-03 23:24:39 e46ec08 chore: update mathlib-ci ref to include merge-lean-testing-pr fixes (#36090) This PR updates the pinned `mathlib-ci` SHA in all workflow files from `7c2dcf95` to `7355aeb4`, picking up: - mathlib-ci#2 / mathlib-ci#4: fix `merge-lean-testing-pr.sh` to detect the nightly-testing remote dynamically (instead of hardcoding remote names) - mathlib-ci#1: fail early if needed branches are checked out in other worktrees 🤖 Prepared with Claude Code ESTIMATED CHANGES Modified .github/workflows/PR_summary.yml Modified .github/workflows/build_template.yml Modified .github/workflows/commit_verification.yml Modified .github/workflows/latest_import.yml Modified .github/workflows/long_file_report.yml Modified .github/workflows/maintainer_bors.yml Modified .github/workflows/maintainer_bors_wf_run.yml Modified .github/workflows/maintainer_merge.yml Modified .github/workflows/maintainer_merge_wf_run.yml Modified .github/workflows/nightly-regression-report.yml Modified .github/workflows/nightly_bump_and_merge.yml Modified .github/workflows/nightly_detect_failure.yml Modified .github/workflows/technical_debt_metrics.yml Modified .github/workflows/update_dependencies_zulip.yml Modified .github/workflows/weekly-lints.yml Modified .github/workflows/zulip_emoji_ci_status.yaml Modified .github/workflows/zulip_emoji_closed_pr.yaml Modified .github/workflows/zulip_emoji_labelling.yaml Modified .github/workflows/zulip_emoji_merge_delegate.yaml 2026-03-03 23:24:37 9910d48 chore(CategoryTheory/Sites): golf sheaf isomorphisms using `FullyFaithful.preimageIso` (#36070) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Sites/DenseSubsite/Basic.lean 2026-03-03 23:24:35 09e7054 feat: countable intersections/unions of ae eq sets are ae eq (#36065) Also put some declarations in the `Filter` namespace so as to allow for dot notation. ESTIMATED CHANGES Modified Mathlib/MeasureTheory/MeasurableSpace/EventuallyMeasurable.lean Modified Mathlib/MeasureTheory/Measure/MeasureSpace.lean Modified Mathlib/MeasureTheory/Measure/NullMeasurable.lean Modified Mathlib/MeasureTheory/OuterMeasure/AE.lean + theorem MeasureTheory.ae_eq_set_biInter + theorem MeasureTheory.ae_eq_set_biUnion Modified Mathlib/Order/Filter/CountableInter.lean - theorem EventuallyEq.countable_bInter - theorem EventuallyEq.countable_bUnion - theorem EventuallyEq.countable_iInter - theorem EventuallyEq.countable_iUnion - theorem EventuallyLE.countable_bInter - theorem EventuallyLE.countable_bUnion - theorem EventuallyLE.countable_iInter - theorem EventuallyLE.countable_iUnion + theorem Filter.EventuallyEq.countable_bInter + theorem Filter.EventuallyEq.countable_bUnion + theorem Filter.EventuallyEq.countable_iInter + theorem Filter.EventuallyEq.countable_iUnion + theorem Filter.EventuallyLE.countable_bInter + theorem Filter.EventuallyLE.countable_bUnion + theorem Filter.EventuallyLE.countable_iInter + theorem Filter.EventuallyLE.countable_iUnion +/- theorem Filter.mem_ofCountableInter +/- theorem Filter.mem_ofCountableUnion +/- def Filter.ofCountableInter +/- def Filter.ofCountableUnion Modified Mathlib/Topology/Baire/BaireMeasurable.lean 2026-03-03 23:24:32 f469ffc feat(Algebra/Homology): lifting properties for cochain complexes (#35971) From a degreewise lifting, we obtain a lifting, provided a suitable `1`-cocycle is a coboundary. This will be used in order to verify the axioms of model category structures for categories of bounded below complexes in abelian categories with enough injectives. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Homology/ModelCategory/Lifting.lean + def CochainComplex.Lifting.cocycle₁' + theorem CochainComplex.Lifting.coe_cocycle₁'_v_comp_eq_zero + theorem CochainComplex.Lifting.comp_coe_cocycle₁_comp + theorem CochainComplex.Lifting.comp_coe_cocyle₁'_v_eq_zero + theorem CochainComplex.Lifting.exists_hom + theorem CochainComplex.Lifting.hasLift + theorem CochainComplex.Lifting.π_f_cochain₁_v_ι_f 2026-03-03 23:24:30 c5a9b27 feat(RingTheory/MvPolynomial): add eval results (#35803) Co-authored by: @AntoineChambert-Loir. ESTIMATED CHANGES Modified Mathlib/Algebra/MvPolynomial/Eval.lean + theorem MvPolynomial.aeval_range + theorem MvPolynomial.coe_eval₂AlgHom + def MvPolynomial.eval₂AlgHom + theorem MvPolynomial.eval₂AlgHom_X + theorem MvPolynomial.eval₂AlgHom_apply + theorem MvPolynomial.eval₂Hom_smul + theorem MvPolynomial.eval₂_X_pow + theorem MvPolynomial.eval₂_mul_eq_zero_of_left + theorem MvPolynomial.eval₂_mul_eq_zero_of_right Modified Mathlib/Algebra/Polynomial/AlgebraMap.lean - def Polynomial.eval₂AlgHom' + def Polynomial.eval₂AlgHom - theorem Polynomial.mapAlgHom_eq_eval₂AlgHom'_CAlgHom + theorem Polynomial.mapAlgHom_eq_eval₂AlgHom_CAlgHom Modified Mathlib/LinearAlgebra/Semisimple.lean Modified Mathlib/RingTheory/MatrixPolynomialAlgebra.lean Modified Mathlib/RingTheory/MvPolynomial/Ideal.lean + theorem MvPolynomial.mk_eq_eval₂ + theorem MvPolynomial.mkₐ_eq_aeval 2026-03-03 22:45:13 0671720 feat: deprecate file (#36076) File moved in #36025. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/MeasureTheory/Measure/CharacteristicFunction.lean 2026-03-03 22:45:12 98cc46e refactor(GroupTheory/Nilpotent): add junk value to `Group.nilpotencyClass` (#35824) This PR adds a junk value to `Group.nilpotencyClass` (similar to `nilpotencyClass` for rings). Can't hurt, since it only makes things more general, and occasionally allows for simpler statements. ESTIMATED CHANGES Modified Mathlib/GroupTheory/Nilpotent.lean + theorem Group.nilpotencyClass_def + theorem Group.nilpotencyClass_of_not_nilpotent +/- theorem nilpotencyClass_quotient_center +/- theorem upperCentralSeries_nilpotencyClass 2026-03-03 22:45:10 1d311cb refactor(Algebra/Algebra/Subalgebra/Operations): generalize `FixedPoints.subalgebra` to `Semiring` by introducing `FixedPoints.subsemiring` (#35809) This PR introduces the missing `FixedPoints.subsemiring` in order to generalize `FixedPoints.subalgebra` to `Semiring`. ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/Subalgebra/Operations.lean +/- def FixedPoints.subalgebra + def FixedPoints.subsemiring 2026-03-03 22:45:08 9c13d4d chore(Algebra/Order/BigOperators): move lemmas which don't use addition out of Ring (#35005) These lemmas all use no addition or additive operations whatsoever, so we move them out of Ring/ and into GroupWithZero. This is more consistent with the existing pattern in Algebra/BigOperators, and aids searchability. This PR also golfs and generalises `Finset.one_le_prod`. This could be a separate PR, but note that this change requires the move made in this PR, so it seems easier to combine the changes. ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Antidiag/Nat.lean Modified Mathlib/Algebra/Order/BigOperators/GroupWithZero/Finset.lean + theorem Finset.le_prod_max_one +/- theorem Finset.one_le_prod + theorem Finset.prod_le_one + theorem Finset.prod_le_prod + theorem Finset.prod_lt_prod + theorem Finset.prod_lt_prod_of_nonempty + theorem Finset.prod_nonneg + theorem Finset.prod_pos Modified Mathlib/Algebra/Order/BigOperators/Ring/Finset.lean - theorem Finset.le_prod_max_one - theorem Finset.prod_le_one - theorem Finset.prod_le_prod - theorem Finset.prod_lt_prod - theorem Finset.prod_lt_prod_of_nonempty - theorem Finset.prod_nonneg - theorem Finset.prod_pos Modified Mathlib/Analysis/Convex/Combination.lean Modified Mathlib/Analysis/Convex/NNReal.lean Modified Mathlib/Analysis/MeanInequalitiesPow.lean Modified Mathlib/Data/NNRat/BigOperators.lean Modified Mathlib/Data/NNReal/Basic.lean Modified Mathlib/Data/Nat/Squarefree.lean Modified Mathlib/Data/Nat/Totient.lean Modified Mathlib/GroupTheory/Exponent.lean Modified Mathlib/NumberTheory/ArithmeticFunction/Moebius.lean Modified Mathlib/NumberTheory/Primorial.lean Modified Mathlib/Topology/Metrizable/ContinuousMap.lean 2026-03-03 21:56:08 057422b chore: remove superfluous usage of `simpa using by ...` (#36085) This PR removes superfluous usages of `simpa using by [tac]` which is functionally equivalent to `simp; [tac]`. In some cases, the proofs could be simplified even further. ESTIMATED CHANGES Modified Archive/Imo/Imo2025Q3.lean Modified Mathlib/Algebra/BigOperators/Ring/Nat.lean Modified Mathlib/Algebra/Polynomial/Bivariate.lean Modified Mathlib/Algebra/Polynomial/CoeffList.lean Modified Mathlib/Algebra/QuadraticAlgebra/Defs.lean Modified Mathlib/AlgebraicGeometry/EllipticCurve/Affine/Point.lean Modified Mathlib/Analysis/Normed/Operator/Banach.lean Modified Mathlib/Analysis/PSeries.lean Modified Mathlib/Analysis/SpecialFunctions/Elliptic/Weierstrass.lean Modified Mathlib/Data/Fin/Basic.lean Modified Mathlib/Data/Fin/SuccPred.lean Modified Mathlib/Data/Nat/Digits/Lemmas.lean Modified Mathlib/GroupTheory/Perm/Fin.lean Modified Mathlib/NumberTheory/EllipticDivisibilitySequence.lean Modified Mathlib/NumberTheory/LucasLehmer.lean Modified Mathlib/NumberTheory/Multiplicity.lean Modified Mathlib/NumberTheory/NumberField/CanonicalEmbedding/NormLeOne.lean Modified Mathlib/RingTheory/Polynomial/SmallDegreeVieta.lean Modified Mathlib/Topology/Algebra/InfiniteSum/ConditionalInt.lean Modified Mathlib/Topology/Separation/Profinite.lean 2026-03-03 21:12:18 2a0ebf2 feat(MeasureTheory/Measure): haarScalarFactor_map (#34189) From FLT. ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Measure/Haar/Unique.lean + theorem MeasureTheory.Measure.haarScalarFactor_eq_integral_div_of_continuous_nonneg_pos + theorem MeasureTheory.Measure.haarScalarFactor_map 2026-03-03 20:34:14 ac63371 feat(Algebra/Polynomial/BigOperators): A lemma about degrees of sums (#35973) A lemma that's needed for the proof of Lüroth's theorem. ESTIMATED CHANGES Modified Mathlib/Algebra/Polynomial/BigOperators.lean + theorem Polynomial.degree_sum_eq_of_linearIndepOn + theorem Polynomial.natDegree_sum_eq_of_linearIndepOn 2026-03-03 20:34:13 310f891 feat(Order/PartialSups): add exists_partialSups_eq (#34029) In a linear order, there exists an index `j ≤ i` for which `partialSups f i = f j`. ESTIMATED CHANGES Modified Mathlib/Order/PartialSups.lean + theorem exists_partialSups_eq 2026-03-03 20:34:11 4d9c37e feat(AlgebraicGeometry.EffectiveEpi): effective epimorphisms in schemes (#30811) We prove the following: * `exists_comp_eq_of_flat_of_isAffine`: For a surjective and flat morphism `π : X ⟶ Y` between affine schemes, any morphism `f : X ⟶ S` of schemes whose two pullbacks to `X ×[Y] X` agree descends to a morphism `u : Y ⟶ S` with `π ≫ u = f`. * `isRegularEpi_of_flat_of_surjective_of_isAffine`: A surjective and flat morphism between affine schemes is a regular epimorphism in the category of schemes. This implies `EffectiveEpi π` by `inferInstance`. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/AlgebraicGeometry/EffectiveEpi.lean + theorem AlgebraicGeometry.isRegularEpi_of_flat_of_surjective_of_isAffine 2026-03-03 20:34:08 627f637 feat(RingTheory/PowerSeries/Substitution): add API (#26961) ESTIMATED CHANGES Modified Mathlib/RingTheory/PowerSeries/Basic.lean + theorem PowerSeries.rescale_algebraMap_map + theorem PowerSeries.rescale_map Modified Mathlib/RingTheory/PowerSeries/Substitution.lean - theorem MvPowerSeries.rescaleUnit + theorem PowerSeries.coe_rescaleAlgHom + theorem PowerSeries.rescale_eq + theorem PowerSeries.rescale_eq_subst + theorem PowerSeries.subst_def + theorem PowerSeries.subst_rescale_of_degree_eq_one 2026-03-03 19:57:39 777aaa6 refactor(Topology/Sheaves): harmonize names (#36074) Make the name of the pullback/pushforward adjunction for presheaves `Presheaf.pullbackPushforwardAdjunction`, so it follows the same convention as the name of the similar adjunction for sheaves. ESTIMATED CHANGES Modified Mathlib/Topology/Sheaves/Presheaf.lean + def TopCat.Presheaf.pullbackPushforwardAdjunction - def TopCat.Presheaf.pushforwardPullbackAdjunction Modified Mathlib/Topology/Sheaves/Stalks.lean + theorem TopCat.Presheaf.pullbackPushforwardAdjunction_unit_app_app_germToPullbackStalk + theorem TopCat.Presheaf.pullbackPushforwardAdjunction_unit_pullback_map_germToPullbackStalk - theorem TopCat.Presheaf.pushforwardPullbackAdjunction_unit_app_app_germToPullbackStalk - theorem TopCat.Presheaf.pushforwardPullbackAdjunction_unit_pullback_map_germToPullbackStalk 2026-03-03 19:57:37 fa360fd chore(ENNReal/Inv): lemma variants for `norm_cast` (#35926) The `norm_cast` lemma intertwining division with the `NNReal`-to-`ENNReal` cast has a side condition that the denominator be nonzero. (Otherwise it fails, because division by zero is different in those two types.) So `norm_cast` currently works in this setting only if it can find a suitable nonzeroness hypothesis. We add a variant of the lemma in which the side condition is made instance-implicit, by phrasing it using `NeZero`. This in particular allows `norm_cast` to work for this cast when the denominator is a numeral. For example, this now works, for `↑` the cast from `NNReal` to `ENNReal`: ```lean example (x : NNReal) : (↑x) / 3 = ↑(x / 3) := by norm_cast ``` ESTIMATED CHANGES Modified Mathlib/Data/ENNReal/Inv.lean + theorem ENNReal.coe_div' + theorem ENNReal.coe_inv' Modified Mathlib/MeasureTheory/Measure/MutuallySingular.lean Modified MathlibTest/norm_cast.lean 2026-03-03 19:57:35 1b8c8e7 feat: `klDiv` and scalar multiplication (#35301) The Kullback-Leibler divergence in Mathlib is defined for finite measures, not just probability measures. This PR adds lemmas that show how `klDiv` changes when we multiply one or both of the measures by a scalar. ESTIMATED CHANGES Modified Mathlib/InformationTheory/KullbackLeibler/Basic.lean + theorem InformationTheory.klDiv_ne_top + theorem InformationTheory.klDiv_smul_right_eq_smul_left + theorem InformationTheory.klDiv_smul_same + theorem InformationTheory.toReal_klDiv_smul_left + theorem InformationTheory.toReal_klDiv_smul_right + theorem InformationTheory.toReal_klDiv_smul_right_eq_smul_left + theorem InformationTheory.toReal_klDiv_smul_same Modified Mathlib/MeasureTheory/Measure/AbsolutelyContinuous.lean + theorem MeasureTheory.Measure.AbsolutelyContinuous.smul_right Modified Mathlib/MeasureTheory/Measure/Decomposition/Lebesgue.lean + theorem MeasureTheory.Measure.rnDeriv_smul_same Modified Mathlib/MeasureTheory/Measure/LogLikelihoodRatio.lean + theorem MeasureTheory.llr_smul_inv_left_eq_smul_right + theorem MeasureTheory.llr_smul_nnreal_left + theorem MeasureTheory.llr_smul_nnreal_right + theorem MeasureTheory.llr_smul_nnreal_same + theorem MeasureTheory.llr_smul_same Modified Mathlib/MeasureTheory/Measure/MeasureSpace.lean + theorem MeasureTheory.Measure.coe_nnreal_smul 2026-03-03 19:42:22 fd194c9 feat(Topology/Sheaves/Functors): pullback of a sheaf by an open embedding (#36071) The pullback of a sheaf by an open embedding `f` is isomorphic to its naive pullback , i.e. to the composition by the functor `IsOpenMap.functor f` (sending an open `U` to `f '' U`). Also, this is an isomorphism of functors. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Sites/Sheafification.lean + theorem CategoryTheory.sheafifyLift_comp Modified Mathlib/Topology/Sheaves/Functors.lean + def Topology.IsOpenEmbedding.sheafPullback + def Topology.IsOpenEmbedding.sheafPullbackIso 2026-03-03 19:42:20 317b32a feat(RingTheory/MvPolynomial): MvPolynomial is isomorphic to the direct sum of its homogeneous submodules (#35581) This PR closes a TODO in `Mathlib/RingTheory/MvPolynomial/Homogeneous.lean`. It defines the equivalence `MvPolynomial σ R ≃ₐ[R] ⨁ i, homogeneousSubmodule σ R i`, and the more general statement for weighted homogeneous submodules. Note: I'm not sure this is actually worth merging, as it's basically already contained in the `weightedGradedAlgebra` typeclass... But having this exact statement could be helpful so it could go either way? ESTIMATED CHANGES Modified Mathlib/RingTheory/MvPolynomial/Homogeneous.lean 2026-03-03 19:42:19 2f6e5d4 feat: `rnDeriv` as ratio of densities wrt a dominating measure (#35015) For a dominating measure `ξ` of two sigma-finite measures `μ` and `ν`, ``` μ.rnDeriv ν =ᵐ[ν] fun x ↦ μ.rnDeriv ξ x / ν.rnDeriv ξ x ``` ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Measure/Decomposition/RadonNikodym.lean + theorem MeasureTheory.Measure.rnDeriv_add_self + theorem MeasureTheory.Measure.rnDeriv_div_rnDeriv_eq_div_rnDeriv_add + theorem MeasureTheory.Measure.rnDeriv_eq_div + theorem MeasureTheory.Measure.rnDeriv_eq_div_rnDeriv_add + theorem MeasureTheory.Measure.rnDeriv_self_add 2026-03-03 17:54:32 753a220 feat(CategoryTheory/Monoidal/Grp_): a monoid object with invertible homs is a group object (#36002) This PR constructs a group object from a monoid object with invertible homs. ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Invertible/Defs.lean +/- theorem Invertible.congr + theorem invOf_eq_iff_left + theorem invOf_eq_iff_right +/- theorem invOf_eq_left_inv +/- theorem invOf_eq_right_inv +/- theorem invOf_mul_cancel_left' +/- theorem invOf_mul_cancel_left +/- theorem invOf_mul_cancel_right' +/- theorem invOf_mul_cancel_right +/- theorem invertible_unique +/- theorem mul_invOf_cancel_left' +/- theorem mul_invOf_cancel_left +/- theorem mul_invOf_cancel_right' +/- theorem mul_invOf_cancel_right Modified Mathlib/CategoryTheory/Monoidal/Grp_.lean + def CategoryTheory.GrpObj.ofInvertible 2026-03-03 17:54:30 9892a77 feat(NumberTheory/Height/NumberField): lemmas/positivity extension for `totalWeight` (#35924) This adds some convenience lemmas expressing the `totalWeight` of a number field in different terms, and also a positivity extension, so that `positivity` knows that `totalWeight K > 0`. ESTIMATED CHANGES Modified Mathlib/NumberTheory/Height/NumberField.lean + theorem NumberField.totalWeight_eq_finrank + theorem NumberField.totalWeight_eq_sum_mult + theorem NumberField.totalWeight_pos 2026-03-03 17:54:28 b6fb2c3 chore(Mathlib/Topology/Algebra/Module/LinearMap.lean): automated extraction (#35736) This PR was automatically created from PR #35538 by @bilichboris via a [review comment](https://github.com/leanprover-community/mathlib4/pull/35538#discussion_r2849347321) by @j-loreaux. ESTIMATED CHANGES Modified Mathlib/Topology/Algebra/Module/LinearMap.lean + theorem Submodule.topologicalClosure_mem_invtSubmodule 2026-03-03 17:54:26 dab9716 feat(RingTheory): `I / I ^ 2` commutes with flat base change (#35544) Towards smooth descends along faithfully flat ring maps. From Pi1. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/LinearAlgebra/TensorProduct/Quotient.lean + theorem TensorProduct.AlgebraTensorModule.tensorQuotientEquiv_apply_tmul + theorem TensorProduct.AlgebraTensorModule.tensorQuotientEquiv_symm_apply_mk_tmul Modified Mathlib/LinearAlgebra/TensorProduct/RightExactness.lean + theorem TensorProduct.AlgebraTensorModule.range_lTensor_idealMap Modified Mathlib/RingTheory/Ideal/Cotangent.lean + def Ideal.Cotangent.lift + theorem Ideal.Cotangent.lift_comp_toCotangent + theorem Ideal.Cotangent.lift_surjective_iff + theorem Ideal.Cotangent.lift_toCotangent + theorem Ideal.cotangentToQuotientSquare_injective Added Mathlib/RingTheory/Ideal/CotangentBaseChange.lean + def Ideal.tensorCotangentEquiv + theorem Ideal.tensorCotangentEquiv_tmul + def Ideal.tensorCotangentHom + theorem Ideal.tensorCotangentHom_injective_of_flat + theorem Ideal.tensorCotangentHom_surjective + theorem Ideal.tensorCotangentHom_tmul Modified Mathlib/RingTheory/Ideal/Maps.lean + theorem Algebra.idealMap_mul Modified Mathlib/RingTheory/TensorProduct/Quotient.lean + theorem Algebra.TensorProduct.tensorQuotientEquiv_apply_tmul + theorem Algebra.TensorProduct.tensorQuotientEquiv_symm_apply_tmul 2026-03-03 17:54:24 2ad33a3 feat(Algebra/Group/FiniteSupport): add HasFinite(Mul)Support and API (#34658) This adds predicates `Function.HasFiniteMulSupport` and `Function.HasFiniteSupport` that indicate that a function has finite (multiplicative) support, plus API lemmas. Both the definition and the API lemmas are tagged `fun_prop`, so that one can show side goals requiring the (multiplicative) support of a function to be finite `by fun_prop`. The new material is split into two files Algebra.Group.FiniteSupport.{Defs|Basic}, to allow for lighter imports when just needing the definitions. Some (not yet conclusive) discussion is here on Zulip: [#mathlib4 > fun_prop for finite (multiplicative) support? @ 💬](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/fun_prop.20for.20finite.20.28multiplicative.29.20support.3F/near/570411560). ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/BigOperators/Finprod.lean +/- theorem MonoidHom.map_finprod +/- theorem finprod_apply +/- theorem finprod_cond_ne +/- theorem finprod_curry +/- theorem finprod_curry₃ +/- theorem finprod_def +/- theorem finprod_div_distrib +/- theorem finprod_eq_prod +/- theorem finprod_eq_prod_of_mulSupport_toFinset_subset +/- theorem finprod_le_finprod' +/- theorem finprod_mem_dvd +/- theorem finprod_mul_distrib + theorem finprod_of_not_hasFiniteMulSupport +/- theorem finprod_option +/- theorem finprod_pow +/- theorem mul_finprod_cond_ne +/- theorem prod_finprod_comm Modified Mathlib/Algebra/DirectSum/Basic.lean Added Mathlib/Algebra/FiniteSupport/Basic.lean + theorem Function.HasFiniteMulSupport.comp + theorem Function.HasFiniteMulSupport.div + theorem Function.HasFiniteMulSupport.fst + theorem Function.HasFiniteMulSupport.fun_comp + theorem Function.HasFiniteMulSupport.iInf + theorem Function.HasFiniteMulSupport.iSup + theorem Function.HasFiniteMulSupport.inf' + theorem Function.HasFiniteMulSupport.inf + theorem Function.HasFiniteMulSupport.inv + theorem Function.HasFiniteMulSupport.max + theorem Function.HasFiniteMulSupport.min + theorem Function.HasFiniteMulSupport.mul + theorem Function.HasFiniteMulSupport.pi + theorem Function.HasFiniteMulSupport.pow + theorem Function.HasFiniteMulSupport.prod + theorem Function.HasFiniteMulSupport.prodMk + theorem Function.HasFiniteMulSupport.snd + theorem Function.HasFiniteMulSupport.sup' + theorem Function.HasFiniteMulSupport.sup + theorem Function.HasFiniteMulSupport.zpow + theorem Function.hasFiniteMulSupport_fun_one Added Mathlib/Algebra/FiniteSupport/Defs.lean + def Function.HasFiniteMulSupport + theorem Function.hasFiniteMulSupport_one Modified Mathlib/Algebra/Notation/FiniteSupport.lean +/- theorem Function.mulSupport_along_fiber_finite_of_finite Modified Mathlib/Analysis/Analytic/CPolynomialDef.lean Modified Mathlib/Analysis/Complex/JensenFormula.lean Modified Mathlib/Analysis/Convex/Combination.lean Modified Mathlib/Analysis/Meromorphic/FactorizedRational.lean +/- theorem Function.FactorizedRational.extractFactor +/- theorem Function.FactorizedRational.finprod_eq_fun +/- theorem Function.FactorizedRational.log_norm_meromorphicTrailingCoeffAt +/- theorem Function.FactorizedRational.meromorphicOrderAt_eq +/- theorem Function.FactorizedRational.meromorphicTrailingCoeffAt_factorizedRational Modified Mathlib/Analysis/SpecialFunctions/Elliptic/Weierstrass.lean Modified Mathlib/Analysis/SpecialFunctions/Log/Basic.lean Modified Mathlib/NumberTheory/Height/Basic.lean Modified Mathlib/NumberTheory/LSeries/PrimesInAP.lean Modified Mathlib/NumberTheory/NumberField/FinitePlaces.lean Modified Mathlib/RingTheory/DedekindDomain/Factorization.lean Modified Mathlib/RingTheory/HahnSeries/Summable.lean Modified Mathlib/RingTheory/MvPolynomial/WeightedHomogeneous.lean Modified Mathlib/RingTheory/MvPowerSeries/PiTopology.lean Modified Mathlib/RingTheory/MvPowerSeries/Substitution.lean Modified Mathlib/RingTheory/Nilpotent/Basic.lean Modified Mathlib/RingTheory/PowerSeries/PiTopology.lean Modified Mathlib/RingTheory/PowerSeries/Substitution.lean Modified Mathlib/Topology/Algebra/InfiniteSum/Basic.lean - theorem multipliable_of_finite_mulSupport + theorem multipliable_of_hasFiniteMulSupport +/- theorem tprod_eq_finprod Modified Mathlib/Topology/Algebra/InfiniteSum/Group.lean Modified Mathlib/Topology/PartitionOfUnity.lean Added MathlibTest/Algebra/FiniteSupport.lean + theorem HasFiniteMulSupport_foo 2026-03-03 17:54:22 7a94f1b feat(AlgebraicTopology): the fundamental lemma of homotopical algebra (#26303) Given a model category `C`, the fundamental lemma of homotopical algebra (Quillen) shows that it is possible to compute morphisms in the homotopy category of `C` (the localized category with respect to weak equivalences) from `X` to `Y` as a quotient of the type of morphisms from `X` to `Y` in `C` modulo an homotopy relation, when `X` is cofibrant and `Y` is fibrant. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/AlgebraicTopology/ModelCategory/CofibrantObjectHomotopy.lean Modified Mathlib/AlgebraicTopology/ModelCategory/FibrantObjectHomotopy.lean Added Mathlib/AlgebraicTopology/ModelCategory/FundamentalLemma.lean + theorem HomotopicalAlgebra.LeftHomotopyRel.iff_map_eq + theorem HomotopicalAlgebra.RightHomotopyRel.iff_map_eq + theorem HomotopicalAlgebra.bijective_leftHomotopyClassToHom + theorem HomotopicalAlgebra.bijective_leftHomotopyClassToHom_iff_bijective_rightHomotopyClassToHom + theorem HomotopicalAlgebra.bijective_rightHomotopyClassToHom + def HomotopicalAlgebra.leftHomotopyClassToHom + theorem HomotopicalAlgebra.leftHomotopyClassToHom_mk + theorem HomotopicalAlgebra.map_surjective_of_isLocalization + def HomotopicalAlgebra.rightHomotopyClassToHom + theorem HomotopicalAlgebra.rightHomotopyClassToHom_mk Modified Mathlib/AlgebraicTopology/ModelCategory/Homotopy.lean +/- theorem HomotopicalAlgebra.leftHomotopyRel_iff_rightHomotopyRel 2026-03-03 17:42:50 c08143f feat: more versions of the characteristic function of a sum (#36058) ESTIMATED CHANGES Modified Mathlib/Probability/Independence/CharacteristicFunction.lean + theorem ProbabilityTheory.IndepFun.charFunDual_map_fun_add_eq_mul + theorem ProbabilityTheory.IndepFun.charFun_map_fun_add_eq_mul + theorem ProbabilityTheory.charFunDual_map_add_prod_eq_mul + theorem ProbabilityTheory.charFunDual_map_sum_pi_eq_prod + theorem ProbabilityTheory.charFun_map_add_prod_eq_mul + theorem ProbabilityTheory.charFun_map_sum_pi_eq_prod + theorem ProbabilityTheory.iIndepFun.charFunDual_map_fun_sum_eq_prod + theorem ProbabilityTheory.iIndepFun.charFun_map_fun_sum_eq_prod 2026-03-03 17:42:47 d833e30 feat(Algebra/Homology): bounded below cochain complexes (#36052) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Homology/CochainComplexPlus.lean + def CategoryTheory.Functor.mapCochainComplexPlus + def CategoryTheory.Functor.mapCochainComplexPlusCompι + def CochainComplex.Plus.fullyFaithfulι + theorem CochainComplex.Plus.mono_iff + def CochainComplex.Plus.quasiIso + theorem CochainComplex.plus_iff 2026-03-03 17:12:15 9222387 feat: taylor expansion of the characteristic function (#36025) This is needed for CLT. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/MeasureTheory/Integral/Bochner/ContinuousLinearMap.lean Renamed Mathlib/MeasureTheory/Measure/CharacteristicFunction.lean to Mathlib/MeasureTheory/Measure/CharacteristicFunction/Basic.lean Added Mathlib/MeasureTheory/Measure/CharacteristicFunction/TaylorExpansion.lean + theorem MeasureTheory.contDiff_charFun' + theorem MeasureTheory.contDiff_charFun + theorem MeasureTheory.continuous_charFun + theorem MeasureTheory.iteratedDeriv_charFun + theorem MeasureTheory.iteratedDeriv_charFun_zero + theorem MeasureTheory.iteratedFDeriv_charFun + theorem MeasureTheory.taylorWithinEval_charFun_two_zero' + theorem MeasureTheory.taylorWithinEval_charFun_two_zero + theorem MeasureTheory.taylorWithinEval_charFun_zero Modified Mathlib/MeasureTheory/Measure/IntegralCharFun.lean Modified Mathlib/Probability/Independence/CharacteristicFunction.lean Modified Mathlib/Probability/Moments/ComplexMGF.lean +/- def ProbabilityTheory.complexMGF 2026-03-03 17:12:12 fbe4f64 feat(CategoryTheory/Sites): the fiber functor associated to `Point.comap` (#35722) The definition `Point.comap` is moved to a separate file. Using results on skyscraper sheaves, we obtain that if `F : C ⥤ D` is a representably flat continuous functor between sites `(C, J)` and `(D, K)`, `Φ` is a point of `(D, K)`, then the fiber functor on sheaves attached to the point `Φ.comap F hF` of the site `(C, J)` (where `hF : CoverPreserving J K F`) identifies to the composition of the pullback functor for `F` followed by the fiber functor attached to the point `Φ`. This is a generalization to arbitrary sites of https://leanprover-community.github.io/mathlib4_docs/Mathlib/Topology/Sheaves/Stalks.html#TopCat.Presheaf.stalkPullbackIso ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/CategoryTheory/Sites/Point/Basic.lean - def CategoryTheory.GrothendieckTopology.Point.comap Added Mathlib/CategoryTheory/Sites/Point/Comap.lean + def CategoryTheory.GrothendieckTopology.Point.comap 2026-03-03 17:12:11 6a27318 feat(CategoryTheory/Triangulated/TStucture): induced t-structures (#35367) This PR introduces a typeclass `P.HasInducedTStructure t` when `P` is a triangulated subcategory of a (pre)triangulated category `C` and `t` a t-structure on `C`. This essentially says that `P` is stable by the truncations. In this situation, we define the induced t-structure on the full subcategory defined by `P`. In particular, this applies to bounded above/bounded below/bounded objects for a given t-structure. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Triangulated/TStructure/Induced.lean + theorem CategoryTheory.ObjectProperty.HasInducedTStructure.mk' + theorem CategoryTheory.ObjectProperty.mem_of_hasInductedTStructure + theorem CategoryTheory.ObjectProperty.tStructure_isGE_iff + theorem CategoryTheory.ObjectProperty.tStructure_isLE_iff 2026-03-03 16:35:31 18978c4 feat(Algebra): saturation of a submonoid (#31132) This PR defines the saturation of a submonoid and the type of saturated submonoids. It is used for the context of localisations. Caveat: there is a similarly named predicate called `AddSubgroup.Saturated`. Zulip: * [mathlib4 > saturation of a submonoid](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/saturation.20of.20a.20submonoid/with/548242862) * [#Is there code for X? > Closure of Submonoid in CommMonoids](https://leanprover.zulipchat.com/#narrow/channel/217875-Is-there-code-for-X.3F/topic/Closure.20of.20Submonoid.20in.20CommMonoids/near/419087778) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Group/Submonoid/Saturation.lean + structure SaturatedAddSubmonoid + theorem SaturatedSubmonoid.bot_def + theorem SaturatedSubmonoid.ext' + theorem SaturatedSubmonoid.ext + theorem SaturatedSubmonoid.iSup_def + theorem SaturatedSubmonoid.mem_bot_iff + theorem SaturatedSubmonoid.mem_sInf + theorem SaturatedSubmonoid.mem_toSubmonoid + theorem SaturatedSubmonoid.mem_top + theorem SaturatedSubmonoid.sSup_def + theorem SaturatedSubmonoid.sup_def + theorem SaturatedSubmonoid.toSubmonoid_injective + structure SaturatedSubmonoid + theorem Submonoid.MulSaturated.iInf + theorem Submonoid.MulSaturated.inf + theorem Submonoid.MulSaturated.mul_mem_iff + theorem Submonoid.MulSaturated.of_left + theorem Submonoid.MulSaturated.of_right + theorem Submonoid.MulSaturated.sInf + theorem Submonoid.MulSaturated.top + def Submonoid.MulSaturated + theorem Submonoid.gc_saturation + def Submonoid.giSaturation + theorem Submonoid.le_toSubmonoid_saturation + theorem Submonoid.mem_saturation_iff' + theorem Submonoid.mem_saturation_iff + theorem Submonoid.mem_saturation_iff_exists_dvd + def Submonoid.saturation + theorem Submonoid.saturation_bot + theorem Submonoid.saturation_iSup + theorem Submonoid.saturation_induction + theorem Submonoid.saturation_le_iff_le + theorem Submonoid.saturation_sSup + theorem Submonoid.saturation_sup + theorem Submonoid.saturation_toSubmonoid + theorem Submonoid.saturation_top Modified Mathlib/GroupTheory/Subgroup/Saturated.lean - theorem AddSubgroup.ker_saturated + theorem AddSubmonoid.ker_saturated - def Subgroup.Saturated - theorem Subgroup.saturated_iff_npow + def Submonoid.PowSaturated + theorem Submonoid.powSaturated_iff_npow 2026-03-03 16:35:29 ad4f601 feat(RingTheory): define graded ring homomorphisms (#30312) This PR defines graded ring homomorphisms, which are ring homomorphisms that preserve the grading. We also provide the basic properties (aka the "API"). Zulip discussion: [#mathlib4 > Graded Ring Hom](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Graded.20Ring.20Hom/with/543601500) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/RingTheory/GradedAlgebra/RingHom.lean + theorem DirectSum.decompose_map + theorem GradedRingHom.cancel_left + theorem GradedRingHom.cancel_right + theorem GradedRingHom.coe_comp + theorem GradedRingHom.coe_copy + theorem GradedRingHom.coe_id + theorem GradedRingHom.coe_inj + theorem GradedRingHom.coe_mk + theorem GradedRingHom.coe_mul + theorem GradedRingHom.coe_ofClass + theorem GradedRingHom.coe_one + theorem GradedRingHom.coe_pow + theorem GradedRingHom.coe_ringHom_injective + theorem GradedRingHom.coe_toRingHom + def GradedRingHom.comp + theorem GradedRingHom.comp_apply + theorem GradedRingHom.comp_assoc + theorem GradedRingHom.comp_id + def GradedRingHom.copy + theorem GradedRingHom.copy_eq + theorem GradedRingHom.ext + def GradedRingHom.gradedAddHom + def GradedRingHom.gradedZeroRingHom + def GradedRingHom.id + theorem GradedRingHom.id_apply + theorem GradedRingHom.id_comp + theorem GradedRingHom.map_directSumDecompose + theorem GradedRingHom.mk_coe + theorem GradedRingHom.mul_def + def GradedRingHom.ofClass + theorem GradedRingHom.one_def + theorem GradedRingHom.toRingHom_eq_toRingHom + theorem GradedRingHom.toRingHom_id + structure GradedRingHom + theorem map_directSumDecompose 2026-03-03 16:04:45 4ae5631 feat: generalize Liouville's theorem for harmonic functions (#36049) On a suggestion of @urkud, generalize Liouville's theorem for harmonic functions, removing the restriction that the functions are real-valued. Further generalization will come in a separate PR. ESTIMATED CHANGES Modified Mathlib/Analysis/Complex/Harmonic/Liouville.lean +/- theorem InnerProductSpace.bounded_harmonic_on_complex_plane_is_constant Modified Mathlib/Analysis/Normed/Operator/Basic.lean 2026-03-03 16:04:42 364d070 feat(Algebra/Homology): lemmas for diagram chasing in homological complexes (#35931) ESTIMATED CHANGES Modified Mathlib/Algebra/Homology/Refinements.lean + theorem HomologicalComplex.comp_homologyπ_eq_iff_up_to_refinements + theorem HomologicalComplex.comp_homologyπ_eq_zero_iff_up_to_refinements + theorem HomologicalComplex.comp_pOpcycles_eq_zero_iff_up_to_refinements + theorem HomologicalComplex.epi_homologyMap_iff_up_to_refinements + theorem HomologicalComplex.exactAt_iff_exact_up_to_refinements + theorem HomologicalComplex.liftCycles_comp_homologyπ_eq_iff_up_to_refinements + theorem HomologicalComplex.liftCycles_comp_homologyπ_eq_zero_iff_up_to_refinements + theorem HomologicalComplex.mono_homologyMap_iff_up_to_refinements 2026-03-03 16:04:39 6d65385 chore(CategoryTheory/Sites): generalize `Precoverage.toGrothendieck_le_iff_le_toPrecoverage` (#35920) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Sites/Coverage.lean - theorem CategoryTheory.GrothendieckTopology.mem_toPrecoverage_iff - def CategoryTheory.GrothendieckTopology.toPrecoverage - theorem CategoryTheory.Precoverage.toGrothendieck_le_iff_le_toPrecoverage Modified Mathlib/CategoryTheory/Sites/PrecoverageToGrothendieck.lean + theorem CategoryTheory.GrothendieckTopology.arrows_mem_toPrecoverage_iff + theorem CategoryTheory.GrothendieckTopology.mem_toPrecoverage_iff + theorem CategoryTheory.GrothendieckTopology.toGrothendieck_toPrecoverage_le + def CategoryTheory.GrothendieckTopology.toPrecoverage + theorem CategoryTheory.GrothendieckTopology.toPrecoverage_monotone + theorem CategoryTheory.GrothendieckTopology.toPrecoverage_top + theorem CategoryTheory.Precoverage.galoisConnection_toGrothendieck_toPrecoverage + theorem CategoryTheory.Precoverage.le_toPrecoverage_toGrothendieck + theorem CategoryTheory.Precoverage.toGrothendieck_bot + theorem CategoryTheory.Precoverage.toGrothendieck_le_iff_le_toPrecoverage +/- theorem CategoryTheory.Precoverage.toGrothendieck_mono + theorem CategoryTheory.Precoverage.toGrothendieck_monotone 2026-03-03 16:04:37 89898ca refactor(Topology/Algebra/Module/LinearMap): adjust statement of `coe_mul` and `coe_pow` (#35269) In `Topology/Algebra/Module/LinearMap`, it seems to be the pattern to have `coe_zero`/`coe_id`/`coe_add`/`coe_neg`/`coe_sub` for the coercions from `ContinuousLinearMap` to `LinearMap` and primed versions `coe_zero'`/`coe_id'`/`coe_add'`/`coe_neg'`/`coe_sub'` for the coercions from `ContinuousLinearMap` to `Function`. This PR adjusts the statements of `coe_mul` and `coe_pow` to fit this pattern, as well as adding `coe_one`. ESTIMATED CHANGES Modified Mathlib/Analysis/CStarAlgebra/Multiplier.lean Modified Mathlib/Topology/Algebra/Module/LinearMap.lean + theorem ContinuousLinearMap.coe_mul' +/- theorem ContinuousLinearMap.coe_mul + theorem ContinuousLinearMap.coe_one + theorem ContinuousLinearMap.coe_pow' +/- theorem ContinuousLinearMap.coe_pow 2026-03-03 15:46:50 7470699 feat(CategoryTheory/Sites): topology on `Over X` is subcanonical if the topology on the base is subcanonical (#36061) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Sites/SubcanonicalOver.lean + theorem CategoryTheory.GrothendieckTopology.subcanonical_over 2026-03-03 15:46:48 7c14c7a feat(Topology/Sheaves/Presheaf): pullback of a presheaf by an open map (#36057) Prove that the pullback functor (on presheaves) by an open map `f : X ⟶ Y` is isomorphic to the "naive" pullback given by composing presheaves with the functor `(Open X)ᵒᵖ ⥤ (Open Y)ᵒᵖ` induced by `f`. ESTIMATED CHANGES Modified Mathlib/Topology/Sheaves/Presheaf.lean + def TopCat.Presheaf.IsOpenMap.pullbackIso + def TopCat.Presheaf.IsOpenMap.pullbackObjIso + theorem TopCat.Presheaf.IsOpenMap.pullbackObjIso_hom_naturality + theorem TopCat.Presheaf.pullbackObjObjOfImageOpen_hom_naturality 2026-03-03 15:46:46 c0c380e feat(CategoryTheory/Monoidal/Limits): generalise universes and explicit limits for limits of monoid objects (#35996) This PR makes two major refactors to the file. These are easiest to make simultaneously, as they are heavily linked. - Generalise the smallness assumptions on the shape category - Take explicit limit cones as inputs rather than assuming HasLimitsOfShape and using the choice-cone ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Monoidal/Internal/Limits.lean +/- def CategoryTheory.Mon.forgetMapConeLimitConeIso +/- def CategoryTheory.Mon.limit +/- def CategoryTheory.Mon.limitCone +/- def CategoryTheory.Mon.limitConeIsLimit + def CategoryTheory.Mon.limitConeLiftsToLimit 2026-03-03 15:46:44 bddbe1b feat(Algebra/Homology/SpectralObject): `SpectralSequenceDataCore` (#35372) In this file, we introduce a structure `SpectralSequenceDataCore` which contains a recipe for the construction of the pages of the spectral sequence attached to a spectral object. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Homology/SpectralObject/HasSpectralSequence.lean + theorem CategoryTheory.Abelian.SpectralObject.SpectralSequenceDataCore.i₀_le' + theorem CategoryTheory.Abelian.SpectralObject.SpectralSequenceDataCore.i₀_le + theorem CategoryTheory.Abelian.SpectralObject.SpectralSequenceDataCore.i₃_le + theorem CategoryTheory.Abelian.SpectralObject.SpectralSequenceDataCore.le₀₁' + theorem CategoryTheory.Abelian.SpectralObject.SpectralSequenceDataCore.le₁₂' + theorem CategoryTheory.Abelian.SpectralObject.SpectralSequenceDataCore.le₂₃' + theorem CategoryTheory.Abelian.SpectralObject.SpectralSequenceDataCore.le₃₃' + structure CategoryTheory.Abelian.SpectralObject.SpectralSequenceDataCore + def CategoryTheory.Abelian.SpectralObject.coreE₂Cohomological 2026-03-03 15:46:43 18100d9 feat(RingTheory): generalise perfection to monoids (#31007) 1. We generalise `PerfectRing` to monoids (without changing the name). 2. We move `Submonoid.perfection` and `Ring.Perfection` to the already existing `Perfection` namespace, which solves the problem that `Ring.Perfection` and its lemmas `Perfection.xxx` are in different namespaces. Also, the monoid perfection and ring perfection have the same underlying set, so this unify the two approaches. 3. `Perfection.lift` is now generalised to monoids: `liftMonoidHom : (M →* N) ≃ (M →* Perfection N p)` where `M` is a perfect monoid. ESTIMATED CHANGES Modified Mathlib/FieldTheory/Perfect.lean + theorem powMulEquiv_eq_toMulEquiv_frobeniusEquiv + theorem powMulEquiv_mul' + theorem powMulEquiv_mul + theorem powMulEquiv_one + theorem powMulEquiv_pow + theorem powMulEquiv_symm_pow_p Modified Mathlib/FieldTheory/PerfectClosure.lean Modified Mathlib/RingTheory/Perfection.lean - def Monoid.perfection + theorem Perfection.coe_pthRootMonoidHom_eq_powMulEquiv_symm + theorem Perfection.coe_pthRoot_eq_symm_frobeniusEquiv +/- def Perfection.coeff + def Perfection.coeffMonoidHom + theorem Perfection.coeffMonoidHom_eq_coeff + theorem Perfection.coeffMonoidHom_iterate_powMonoidHom' + theorem Perfection.coeffMonoidHom_iterate_powMonoidHom + theorem Perfection.coeffMonoidHom_iterate_symm_powMulEquiv + theorem Perfection.coeffMonoidHom_mapMonoidHom + theorem Perfection.coeffMonoidHom_mk + theorem Perfection.coeffMonoidHom_powMonoidHom + theorem Perfection.coeffMonoidHom_pow_p' + theorem Perfection.coeffMonoidHom_pow_p + theorem Perfection.coeffMonoidHom_pow_p_pow + theorem Perfection.coeffMonoidHom_pthRootMonoidHom + theorem Perfection.coeffMonoidHom_symm_powMulEquiv +/- theorem Perfection.coeff_add_ne_zero +/- theorem Perfection.coeff_frobenius - theorem Perfection.coeff_frobeniusEquiv_symm +/- theorem Perfection.coeff_iterate_frobenius' +/- theorem Perfection.coeff_iterate_frobenius - theorem Perfection.coeff_iterate_frobeniusEquiv_symm + theorem Perfection.coeff_iterate_symm_frobeniusEquiv +/- theorem Perfection.coeff_map +/- theorem Perfection.coeff_ne_zero_of_le +/- theorem Perfection.coeff_pow_p' +/- theorem Perfection.coeff_pow_p - theorem Perfection.coeff_pthRoot + theorem Perfection.coeff_symm_frobeniusEquiv + theorem Perfection.coeff_toMonoidHom +/- theorem Perfection.ext + theorem Perfection.extMonoid +/- theorem Perfection.frobenius_pthRoot +/- def Perfection.map + def Perfection.mapMonoidHom +/- def Perfection.pthRoot + def Perfection.pthRootMonoidHom + theorem Perfection.pthRootMonoidHom_eq_powMulEquiv_symm + theorem Perfection.pthRootMonoidHom_eq_pthRoot + theorem Perfection.pthRootMonoidHom_eq_symm_frobeniusEquiv + theorem Perfection.pthRoot_eq_symm_frobeniusEquiv +/- theorem Perfection.pthRoot_frobenius + def Perfection.submonoid + def Perfection.subring + def Perfection.subsemiring + def Perfection +/- theorem PerfectionMap.comp_symm_equiv +/- theorem PerfectionMap.mk' - def Ring.Perfection - def Ring.perfectionSubring - def Ring.perfectionSubsemiring 2026-03-03 14:56:21 3426e8e chore(RingTheory): reorganize imports around locality properties of finiteness (#36044) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/RingTheory/Finiteness/FinitePresentationLocal.lean + theorem Algebra.FinitePresentation.of_span_eq_top_target + theorem Algebra.FinitePresentation.of_span_eq_top_target_aux + theorem Algebra.FinitePresentation.of_span_eq_top_target_of_isLocalizationAway Added Mathlib/RingTheory/Finiteness/FiniteTypeLocal.lean + theorem Algebra.FiniteType.of_span_eq_top_source + theorem Algebra.FiniteType.of_span_eq_top_target + theorem IsLocalization.exists_smul_mem_of_mem_adjoin + theorem IsLocalization.lift_mem_adjoin_finsetIntegerMultiple Modified Mathlib/RingTheory/Localization/Finiteness.lean + theorem IsLocalization.smul_mem_finsetIntegerMultiple_span + theorem Module.Finite.of_isLocalization + theorem multiple_mem_adjoin_of_mem_localization_adjoin + theorem multiple_mem_span_of_mem_localization_span Modified Mathlib/RingTheory/RingHom/Finite.lean - theorem IsLocalization.smul_mem_finsetIntegerMultiple_span - theorem Module.Finite.of_isLocalization - theorem multiple_mem_adjoin_of_mem_localization_adjoin - theorem multiple_mem_span_of_mem_localization_span Modified Mathlib/RingTheory/RingHom/FinitePresentation.lean - theorem Algebra.FinitePresentation.of_span_eq_top_target - theorem Algebra.FinitePresentation.of_span_eq_top_target_aux - theorem Algebra.FinitePresentation.of_span_eq_top_target_of_isLocalizationAway Modified Mathlib/RingTheory/RingHom/FiniteType.lean - theorem Algebra.FiniteType.of_span_eq_top_source - theorem Algebra.FiniteType.of_span_eq_top_target - theorem IsLocalization.exists_smul_mem_of_mem_adjoin - theorem IsLocalization.lift_mem_adjoin_finsetIntegerMultiple Modified Mathlib/RingTheory/Support.lean 2026-03-03 14:05:38 89bf604 chore(RepresentationTheory/Intertwining): Generalise and add lemmas (#36047) ESTIMATED CHANGES Modified Mathlib/RepresentationTheory/Intertwining.lean + theorem Representation.IntertwiningMap.add_comp + theorem Representation.IntertwiningMap.add_toLinearMap + theorem Representation.IntertwiningMap.coe_neg +/- theorem Representation.IntertwiningMap.coe_nsmul + theorem Representation.IntertwiningMap.coe_sub + theorem Representation.IntertwiningMap.coe_zsmul +/- def Representation.IntertwiningMap.comp + theorem Representation.IntertwiningMap.comp_add + theorem Representation.IntertwiningMap.comp_apply + theorem Representation.IntertwiningMap.comp_def + theorem Representation.IntertwiningMap.comp_smul + theorem Representation.IntertwiningMap.comp_toLinearMap + theorem Representation.IntertwiningMap.ext + theorem Representation.IntertwiningMap.isIntertwining_assoc + theorem Representation.IntertwiningMap.smul_comp + theorem Representation.IntertwiningMap.smul_toLinearMap + theorem Representation.IntertwiningMap.sub_toLinearMap +/- theorem Representation.IntertwiningMap.toLinearMap_injective + theorem Representation.IntertwiningMap.zero_toLinearMap +/- structure Representation.IntertwiningMap 2026-03-03 14:05:37 a98da29 chore(Mathlib/CategoryTheory/Sites): more API for `Presieve.map` (#35949) This PR was automatically created from PR #35948 by @chrisflav via a [review comment](https://github.com/leanprover-community/mathlib4/pull/35948#discussion_r2870155169) by @chrisflav. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Sites/Sieves.lean + theorem CategoryTheory.Presieve.functorPullback_arrows + theorem CategoryTheory.Presieve.functorPullback_map_functorPullback + theorem CategoryTheory.Presieve.functorPullback_monotone + theorem CategoryTheory.Presieve.functorPushforward_monotone + theorem CategoryTheory.Presieve.galoisConnection_map_functorPullback + theorem CategoryTheory.Presieve.le_functorPullback_map + theorem CategoryTheory.Presieve.map_functorPullback_map + theorem CategoryTheory.Presieve.map_iff + theorem CategoryTheory.Presieve.map_le_iff_le_functorPullback +/- theorem CategoryTheory.Presieve.map_monotone + theorem CategoryTheory.Sieve.functorPullback_functorPushforward_eq 2026-03-03 13:53:49 cb04f1d feat: covering numbers and isometries (#35980) The covering number of the image of a set by an isometry is equal to the covering number of the set. ESTIMATED CHANGES Modified Mathlib/Topology/MetricSpace/Cover.lean + theorem Isometry.isCover_image_iff Modified Mathlib/Topology/MetricSpace/CoveringNumbers.lean + theorem Isometry.coveringNumber_image' + theorem Isometry.coveringNumber_image 2026-03-03 13:53:47 df3de9c feat(RingTheory/DividedPowers/Basic): add lemmas (#35768) Co-authored by: @AntoineChambert-Loir. ESTIMATED CHANGES Modified Mathlib/RingTheory/DividedPowers/Basic.lean + theorem DividedPowers.dpow_finsupp_sum + theorem DividedPowers.dpow_linearCombination + theorem DividedPowers.dpow_prod +/- theorem DividedPowers.dpow_sum 2026-03-03 13:11:16 8da2f95 chore: add missing fast_instance on instances on the subtype of nonnegative elements (#36034) ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Nonneg/Basic.lean 2026-03-03 13:11:14 b7922b4 feat(Analysis/CStarAlgebra/Basic): `‖e‖ ≤ 1` for star projections (#35992) ESTIMATED CHANGES Modified Mathlib/Analysis/CStarAlgebra/Basic.lean + theorem IsStarProjection.norm_le 2026-03-03 13:11:12 f460462 feat(CategoryTheory/Sites): homotopy equivalent hypercovers have equivalent sheaf conditions (#35902) If `E` and `F` are homotopy equivalent pre-`1`-hypercovers, then the multifork associated to `E` is exact if and only if the multifork associated to `F` is exact. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Sites/Hypercover/Homotopy.lean + def CategoryTheory.PreOneHypercover.Homotopy.isLimitMultifork + def CategoryTheory.PreOneHypercover.Homotopy.isLimitMultiforkEquiv +/- theorem CategoryTheory.PreOneHypercover.Homotopy.mapMultiforkOfIsLimit_eq 2026-03-03 13:11:08 53113ed feat(CategoryTheory/Sites): isomorphic hypercovers have equivalent sheaf conditions (#35901) More precisely, we show that if `E` and `F` are isomorphic `1`-hypercovers, the associated multifork of `E` is exact if and only if the one for `F` is exact. Note that the same statement holds if `E` and `F` are homotopy equivalent, but, under mathlib's definition, for a general pre-`1`-hypercover `E` the identity refinement is not necessarily homotopic to itself. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Limits/Shapes/Multiequalizer.lean + theorem CategoryTheory.Limits.WalkingMulticospan.functor_ext Modified Mathlib/CategoryTheory/Sites/Hypercover/One.lean + theorem CategoryTheory.PreOneHypercover.Hom.ext'_iff + def CategoryTheory.PreOneHypercover.Hom.mapMulticospan + theorem CategoryTheory.PreOneHypercover.Hom.mapMultiforkOfIsLimit_comp + theorem CategoryTheory.PreOneHypercover.Hom.mapMultiforkOfIsLimit_id +/- theorem CategoryTheory.PreOneHypercover.Hom.mapMultiforkOfIsLimit_ι + theorem CategoryTheory.PreOneHypercover.I₁'.ext + theorem CategoryTheory.PreOneHypercover.congrIndexOneOfEq_trans + def CategoryTheory.PreOneHypercover.equivalenceMulticospanOfIso + theorem CategoryTheory.PreOneHypercover.hom_inv_h₀ + theorem CategoryTheory.PreOneHypercover.hom_inv_h₁ + theorem CategoryTheory.PreOneHypercover.hom_inv_s₀_apply + theorem CategoryTheory.PreOneHypercover.hom_inv_s₁_apply + theorem CategoryTheory.PreOneHypercover.inv_hom_h₀ + theorem CategoryTheory.PreOneHypercover.inv_hom_h₁ + theorem CategoryTheory.PreOneHypercover.inv_hom_s₀_apply + theorem CategoryTheory.PreOneHypercover.inv_hom_s₁_apply + def CategoryTheory.PreOneHypercover.isLimitEquivOfIso 2026-03-03 13:11:06 0b53626 feat(CategoryTheory/Elements): functors to types are colimits of corepresentable functors (#35759) If `F : C ⥤ Type w` and `C` is locally `w`-small, then `F` identifies a colimit of corepresentable functors, which we also state as an isomorphism with the composition `shrinkYoneda ⋙ (Functor.whiskeringLeft _ _ _).obj (CategoryOfElements.π F).op ⋙ colim`. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Limits/Presheaf.lean + theorem CategoryTheory.Functor.Elements.shrinkYonedaCompWhiskeringLeftObjπCompColimIso_inv_app_apply + theorem CategoryTheory.Functor.Elements.shrinkYoneda_map_app_coconeπOpCompShrinkYonedaObj_ι_app 2026-03-03 12:40:27 bd08ae4 refactor(Topology/Category/TopCat/Opens): split off part of `IsOpenMap.functor` (#36046) If `f : X ⟶ Y` is a map of topological spaces and `U ⊆ V` are open subsets of `X` whose images are open, this is the morphism `f'' U ⟶ f'' Y` in `Opens Y`. Useful for applications to presheaves when we don't want to suppose that `f` is an open map. We then use this in the definition of `IsOpenMap.functor` (the functor `Opens X ⥤ Opens Y` induced by an open map `f : X ⟶ Y`). ESTIMATED CHANGES Modified Mathlib/Topology/Category/TopCat/Opens.lean + def IsOpenMap.functorMap 2026-03-03 11:03:18 845535c feat(Data/Fintype/Order): add API for ciSup with finite indexing type (#35260) This PR adds API for indexed suprema/infima on `ConditionallyCompleteLattice`s when the indexing type is finite. It also moves `Finite.le_ciSup`/`Finite.ciInf_le` to Mathlib.Data.Fintype.Order and golfs it. We use the new lemmas to golf a few proofs in Mathlib. ESTIMATED CHANGES Modified Mathlib/Analysis/Normed/Unbundled/InvariantExtension.lean Modified Mathlib/Analysis/Normed/Unbundled/SpectralNorm.lean Modified Mathlib/Data/Fintype/Order.lean + theorem Finite.ciInf_inf + theorem Finite.ciInf_le + theorem Finite.ciInf_le_of_le + theorem Finite.ciInf_mono + theorem Finite.ciSup_mono + theorem Finite.ciSup_sup + theorem Finite.le_ciSup + theorem Finite.le_ciSup_of_le + theorem Finite.map_iInf_of_antitone + theorem Finite.map_iInf_of_antitoneOn + theorem Finite.map_iInf_of_monotone + theorem Finite.map_iInf_of_monotoneOn + theorem Finite.map_iSup_of_antitone + theorem Finite.map_iSup_of_antitoneOn + theorem Finite.map_iSup_of_monotone + theorem Finite.map_iSup_of_monotoneOn Modified Mathlib/NumberTheory/Height/Basic.lean Modified Mathlib/Order/ConditionallyCompleteLattice/Finset.lean - theorem Finite.ciInf_le - theorem Finite.le_ciSup Modified Mathlib/Order/PartialSups.lean Modified Mathlib/RingTheory/Finiteness/Nilpotent.lean 2026-03-03 10:35:47 b924256 feat: variance of a sum with respect to the product measure (#36039) ESTIMATED CHANGES Modified Mathlib/Probability/Moments/Variance.lean + theorem ProbabilityTheory.variance_sum_pi 2026-03-03 10:35:45 affdc91 feat: taylor expansion within `univ` (#36035) This is the special case of [taylor_isLittleO](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Analysis/Calculus/Taylor.html#taylor_isLittleO)[taylor_isLittleO](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Analysis/Calculus/Taylor.html#taylor_isLittleO) with `s := univ` so that the filter is just `nhds`. ESTIMATED CHANGES Modified Mathlib/Analysis/Calculus/Taylor.lean + theorem taylor_isLittleO_univ 2026-03-03 10:35:43 b7148e3 feat(CategoryTheory/Limits/Preserves/FunctorCategory): add `ReflectsLimitsOfShape` instance for `whiskeringRight` (#36004) This PR adds an `ReflectsLimitsOfShape` instance for `whiskeringRight`, analogous to the existing `PreservesLimitsOfShape` instance. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Limits/Preserves/FunctorCategory.lean 2026-03-03 10:35:41 960c652 feat(CategoryTheory/Triangulated/TStructure): `truncLE` and `truncGT` (#35364) Given a t-structure `t`, this PR introduces the variants `t.truncLE` and `t.truncGT` to `t.truncLT` and `t.truncGE`. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Triangulated/TStructure/TruncLEGT.lean + theorem CategoryTheory.Triangulated.TStructure.descTruncGT_aux + theorem CategoryTheory.Triangulated.TStructure.isGE_iff_isIso_truncGTπ_app + theorem CategoryTheory.Triangulated.TStructure.isGE_iff_isZero_truncLE_obj + theorem CategoryTheory.Triangulated.TStructure.isGE_truncGT_obj + theorem CategoryTheory.Triangulated.TStructure.isIso_truncGT_map_iff + theorem CategoryTheory.Triangulated.TStructure.isIso_truncGT_map_truncGTπ_app + theorem CategoryTheory.Triangulated.TStructure.isIso_truncLE_map_iff + theorem CategoryTheory.Triangulated.TStructure.isIso_truncLE_map_truncLEι_app + theorem CategoryTheory.Triangulated.TStructure.isIso₁_truncLE_map_of_isGE + theorem CategoryTheory.Triangulated.TStructure.isIso₂_truncGT_map_of_isLE + theorem CategoryTheory.Triangulated.TStructure.isLE_iff_isIso_truncLEι_app + theorem CategoryTheory.Triangulated.TStructure.isLE_iff_isZero_truncGT_obj + theorem CategoryTheory.Triangulated.TStructure.isLE_truncLE_obj + theorem CategoryTheory.Triangulated.TStructure.isZero_truncLE_obj_of_isGE + theorem CategoryTheory.Triangulated.TStructure.liftTruncLE_aux + theorem CategoryTheory.Triangulated.TStructure.liftTruncLE_ι + theorem CategoryTheory.Triangulated.TStructure.natTransTruncLEOfLE_refl + theorem CategoryTheory.Triangulated.TStructure.natTransTruncLEOfLE_refl_app + theorem CategoryTheory.Triangulated.TStructure.natTransTruncLEOfLE_trans + theorem CategoryTheory.Triangulated.TStructure.natTransTruncLEOfLE_trans_app + theorem CategoryTheory.Triangulated.TStructure.natTransTruncLEOfLE_ι + theorem CategoryTheory.Triangulated.TStructure.natTransTruncLEOfLE_ι_app + theorem CategoryTheory.Triangulated.TStructure.to_truncLE_obj_ext + theorem CategoryTheory.Triangulated.TStructure.triangleLEGE_distinguished + theorem CategoryTheory.Triangulated.TStructure.triangleLEGT_distinguished + theorem CategoryTheory.Triangulated.TStructure.truncLEIsoTruncLT_hom_ι + theorem CategoryTheory.Triangulated.TStructure.truncLEIsoTruncLT_hom_ι_app + theorem CategoryTheory.Triangulated.TStructure.truncLEIsoTruncLT_inv_ι + theorem CategoryTheory.Triangulated.TStructure.truncLEIsoTruncLT_inv_ι_app + theorem CategoryTheory.Triangulated.TStructure.π_descTruncGT + theorem CategoryTheory.Triangulated.TStructure.π_truncGTIsoTruncGE_hom + theorem CategoryTheory.Triangulated.TStructure.π_truncGTIsoTruncGE_hom_ι_app + theorem CategoryTheory.Triangulated.TStructure.π_truncGTIsoTruncGE_inv + theorem CategoryTheory.Triangulated.TStructure.π_truncGTIsoTruncGE_inv_ι_app 2026-03-03 10:35:38 a3929aa feat(Algebra/Homology/SpectralObject): cycles as cokernels and opcycles as kernels (#35361) ESTIMATED CHANGES Modified Mathlib/Algebra/Homology/SpectralObject/Cycles.lean + theorem CategoryTheory.Abelian.SpectralObject.H_map_twoδ₂Toδ₁_toCycles + theorem CategoryTheory.Abelian.SpectralObject.cokernelIsoCycles_hom_fac + theorem CategoryTheory.Abelian.SpectralObject.cokernelSequenceCycles_exact + theorem CategoryTheory.Abelian.SpectralObject.fromOpcycles_H_map_twoδ₁Toδ₀ + theorem CategoryTheory.Abelian.SpectralObject.fromOpcyles_δ + theorem CategoryTheory.Abelian.SpectralObject.isIso_fromOpcycles + theorem CategoryTheory.Abelian.SpectralObject.isIso_toCycles + theorem CategoryTheory.Abelian.SpectralObject.kernelSequenceOpcycles_exact + theorem CategoryTheory.Abelian.SpectralObject.liftOpcycles_fromOpcycles + theorem CategoryTheory.Abelian.SpectralObject.opcyclesIsoKernel_hom_fac + theorem CategoryTheory.Abelian.SpectralObject.opcyclesMap_fromOpcycles + theorem CategoryTheory.Abelian.SpectralObject.pOpcycles_δFromOpcycles + theorem CategoryTheory.Abelian.SpectralObject.p_fromOpcycles + theorem CategoryTheory.Abelian.SpectralObject.toCycles_cyclesMap + theorem CategoryTheory.Abelian.SpectralObject.toCycles_descCycles + theorem CategoryTheory.Abelian.SpectralObject.toCycles_i + theorem CategoryTheory.Abelian.SpectralObject.δToCycles_iCycles + theorem CategoryTheory.Abelian.SpectralObject.δ_toCycles 2026-03-03 09:40:33 d95a3ac feat: iterated Fréchet derivative of a composition with scalar multiplication (#36028) This is the Fréchet derivative version of [iteratedDeriv_comp_const_mul](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Analysis/Calculus/IteratedDeriv/Lemmas.html#iteratedDeriv_comp_const_mul). ESTIMATED CHANGES Modified Mathlib/Analysis/Calculus/ContDiff/Operations.lean + theorem iteratedFDeriv_comp_const_smul 2026-03-03 09:40:31 c13710c chore(Topology/FiberBundle/Trivialisation): more simp lemmas (#35978) Inspired by #26221 (defining covariant derivatives, and the path towards geodesics). ESTIMATED CHANGES Modified Mathlib/Geometry/Manifold/VectorBundle/Hom.lean Modified Mathlib/Geometry/Manifold/VectorBundle/MDifferentiable.lean Modified Mathlib/Topology/FiberBundle/Constructions.lean Modified Mathlib/Topology/FiberBundle/Trivialization.lean Modified Mathlib/Topology/VectorBundle/Hom.lean 2026-03-03 09:40:29 038d0e4 feat: inv_bijective (#35975) Also a minor golf for `inv_eq_iff_eq_inv`. ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Basic.lean + theorem inv_bijective 2026-03-03 09:28:55 e8ea1af chore: rename theorems to comply with mathlib standards (#36026) On a suggestion of `urkud`, rename two theorems, in order to comply with mathlib standards. ESTIMATED CHANGES Modified Mathlib/Analysis/Complex/Harmonic/Analytic.lean + theorem InnerProductSpace.HarmonicOnNhd.exists_analyticOnNhd_ball_re_eq + theorem InnerProductSpace.HarmonicOnNhd.exists_analyticOnNhd_univ_re_eq - theorem InnerProductSpace.harmonic_is_realOfHolomorphic_univ - theorem harmonic_is_realOfHolomorphic Modified Mathlib/Analysis/Complex/Harmonic/Liouville.lean Modified Mathlib/Analysis/Complex/Harmonic/MeanValue.lean 2026-03-03 09:12:33 2b7b3d1 feat: monotonicity of norm integrability (#36027) Over a finite measure space, if `Integrable (fun x ↦ ‖f x‖ ^ q) μ` and `p ≤ q` then `Integrable (fun x ↦ ‖f x‖ ^ p) μ`. ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Function/L1Space/Integrable.lean + theorem MeasureTheory.integrable_norm_pow_of_le + theorem MeasureTheory.integrable_norm_rpow_of_le 2026-03-03 07:37:15 32af1e5 feat(Algebra/Homology/SpectralObject): kernel and cokernel of differentials (#35359) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Homology/SpectralObject/Basic.lean +/- theorem CategoryTheory.Abelian.SpectralObject.composableArrows₅_exact +/- theorem CategoryTheory.Abelian.SpectralObject.exact₁ +/- theorem CategoryTheory.Abelian.SpectralObject.exact₂ +/- theorem CategoryTheory.Abelian.SpectralObject.exact₃ +/- def CategoryTheory.Abelian.SpectralObject.sc₁ +/- def CategoryTheory.Abelian.SpectralObject.sc₂ +/- def CategoryTheory.Abelian.SpectralObject.sc₃ +/- theorem CategoryTheory.Abelian.SpectralObject.zero₁ +/- theorem CategoryTheory.Abelian.SpectralObject.zero₂ +/- theorem CategoryTheory.Abelian.SpectralObject.zero₃ +/- def CategoryTheory.Abelian.SpectralObject.δ +/- theorem CategoryTheory.Abelian.SpectralObject.δ_naturality +/- theorem CategoryTheory.Abelian.SpectralObject.δ_δ Added Mathlib/Algebra/Homology/SpectralObject/Cycles.lean + theorem CategoryTheory.Abelian.SpectralObject.cokernelSequenceOpcycles_exact + theorem CategoryTheory.Abelian.SpectralObject.cyclesMap_comp + theorem CategoryTheory.Abelian.SpectralObject.cyclesMap_i + theorem CategoryTheory.Abelian.SpectralObject.cyclesMap_id + theorem CategoryTheory.Abelian.SpectralObject.iCycles_δ + theorem CategoryTheory.Abelian.SpectralObject.isZero_cycles + theorem CategoryTheory.Abelian.SpectralObject.isZero_opcycles + theorem CategoryTheory.Abelian.SpectralObject.kernelSequenceCycles_exact + theorem CategoryTheory.Abelian.SpectralObject.liftCycles_i + theorem CategoryTheory.Abelian.SpectralObject.opcyclesMap_comp + theorem CategoryTheory.Abelian.SpectralObject.opcyclesMap_id + theorem CategoryTheory.Abelian.SpectralObject.p_descOpcycles + theorem CategoryTheory.Abelian.SpectralObject.p_opcyclesMap + theorem CategoryTheory.Abelian.SpectralObject.δ_pOpcycles 2026-03-03 06:10:09 0daeda2 fix(scripts): fix a link to radar (#35999) ESTIMATED CHANGES Modified scripts/bench/README.md 2026-03-03 05:58:39 7500708 feat(CategoryTheory/Triangulated/TStructure): properties of `truncLT` and `truncGE` which use the octahedron axiom (#35363) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Triangulated/TStructure/TruncLTGE.lean + theorem CategoryTheory.Triangulated.TStructure.descTruncGE_aux + theorem CategoryTheory.Triangulated.TStructure.isGE_iff_orthogonal + theorem CategoryTheory.Triangulated.TStructure.isGE₂ + theorem CategoryTheory.Triangulated.TStructure.isIso_truncGE_map_iff + theorem CategoryTheory.Triangulated.TStructure.isIso_truncGE_map_truncGEπ_app + theorem CategoryTheory.Triangulated.TStructure.isIso_truncLT_map_iff + theorem CategoryTheory.Triangulated.TStructure.isIso_truncLT_map_truncLTι_app + theorem CategoryTheory.Triangulated.TStructure.isIso₁_truncLT_map_of_isGE + theorem CategoryTheory.Triangulated.TStructure.isIso₂_truncGE_map_of_isLE + theorem CategoryTheory.Triangulated.TStructure.isLE_iff_orthogonal + theorem CategoryTheory.Triangulated.TStructure.isLE₂ + theorem CategoryTheory.Triangulated.TStructure.triangleLTLTGELT_distinguished + theorem CategoryTheory.Triangulated.TStructure.truncGELTToLTGE_app_pentagon + theorem CategoryTheory.Triangulated.TStructure.truncGELTToLTGE_app_pentagon_uniqueness + theorem CategoryTheory.Triangulated.TStructure.truncLT_map_truncGE_map_truncLTι_app_fac + theorem CategoryTheory.Triangulated.TStructure.π_descTruncGE 2026-03-03 05:47:09 33a07fa chore: remove `set_option backward.isDefEq.respectTransparency false` (#36021) This PR removes `set_option backward.isDefEq.respectTransparency false` and related workarounds across Mathlib, now that these are no longer needed. 🤖 Prepared with Claude Code ESTIMATED CHANGES Modified Archive/Examples/Kuratowski.lean Modified Archive/Wiedijk100Theorems/BallotProblem.lean Modified Archive/Wiedijk100Theorems/CubingACube.lean Modified Mathlib/Algebra/BigOperators/Finprod.lean Modified Mathlib/Algebra/Category/Ring/Constructions.lean Modified Mathlib/Algebra/Field/Subfield/Basic.lean Modified Mathlib/Algebra/Group/Action/Pointwise/Set/Basic.lean Modified Mathlib/Algebra/Group/AddChar.lean Modified Mathlib/Algebra/Group/Pointwise/Set/Basic.lean Modified Mathlib/Algebra/Group/Subgroup/Basic.lean Modified Mathlib/Algebra/Group/Subgroup/Finite.lean Modified Mathlib/Algebra/Group/Subgroup/Ker.lean Modified Mathlib/Algebra/Group/Subgroup/Lattice.lean Modified Mathlib/Algebra/Group/Subgroup/Map.lean Modified Mathlib/Algebra/Group/Subgroup/MulOppositeLemmas.lean Modified Mathlib/Algebra/Group/Subgroup/Order.lean Modified Mathlib/Algebra/Group/Subgroup/Pointwise.lean Modified Mathlib/Algebra/Group/Subgroup/ZPowers/Basic.lean Modified Mathlib/Algebra/Group/Submonoid/Units.lean Modified Mathlib/Algebra/Lie/EngelSubalgebra.lean Modified Mathlib/Algebra/Lie/Subalgebra.lean Modified Mathlib/Algebra/Module/Submodule/Invariant.lean Modified Mathlib/Algebra/Module/Submodule/Union.lean Modified Mathlib/Algebra/MonoidAlgebra/Degree.lean Modified Mathlib/Algebra/Notation/Indicator.lean Modified Mathlib/Algebra/Notation/Support.lean Modified Mathlib/Algebra/Order/AddGroupWithTop.lean Modified Mathlib/Algebra/Order/Archimedean/Class.lean Modified Mathlib/Algebra/Order/Interval/Set/Group.lean Modified Mathlib/Algebra/Order/Monoid/Unbundled/WithTop.lean Modified Mathlib/Algebra/Order/Monoid/WithTop.lean Modified Mathlib/Algebra/Order/Ring/Int.lean Modified Mathlib/Algebra/Order/Ring/Nat.lean Modified Mathlib/Algebra/Order/Ring/WithTop.lean Modified Mathlib/Algebra/Order/WithTop/Untop0.lean Modified Mathlib/Algebra/Pointwise/Stabilizer.lean Modified Mathlib/Algebra/Polynomial/Basic.lean Modified Mathlib/Algebra/Ring/Subring/Basic.lean Modified Mathlib/Algebra/Ring/Subring/MulOpposite.lean Modified Mathlib/Algebra/Ring/Subsemiring/Basic.lean Modified Mathlib/Algebra/Ring/Subsemiring/MulOpposite.lean Modified Mathlib/Algebra/Tropical/Basic.lean Modified Mathlib/Algebra/Tropical/BigOperators.lean Modified Mathlib/AlgebraicGeometry/IdealSheaf/IrreducibleComponent.lean Modified Mathlib/AlgebraicGeometry/Properties.lean Modified Mathlib/AlgebraicGeometry/PullbackCarrier.lean Modified Mathlib/AlgebraicTopology/SimplicialSet/Degenerate.lean Modified Mathlib/AlgebraicTopology/SimplicialSet/Dimension.lean Modified Mathlib/AlgebraicTopology/SimplicialSet/Finite.lean Modified Mathlib/AlgebraicTopology/SimplicialSet/FiniteColimits.lean Modified Mathlib/AlgebraicTopology/SimplicialSet/FiniteProd.lean Modified Mathlib/AlgebraicTopology/SimplicialSet/Horn.lean Modified Mathlib/AlgebraicTopology/SimplicialSet/Path.lean Modified Mathlib/AlgebraicTopology/SimplicialSet/ProdStdSimplex.lean Modified Mathlib/AlgebraicTopology/SimplicialSet/Skeleton.lean Modified Mathlib/AlgebraicTopology/SimplicialSet/StdSimplex.lean Modified Mathlib/AlgebraicTopology/SimplicialSet/Subcomplex.lean Modified Mathlib/Analysis/Analytic/IteratedFDeriv.lean Modified Mathlib/Analysis/BoxIntegral/Basic.lean Modified Mathlib/Analysis/BoxIntegral/Box/Basic.lean Modified Mathlib/Analysis/BoxIntegral/DivergenceTheorem.lean Modified Mathlib/Analysis/BoxIntegral/Partition/Additive.lean Modified Mathlib/Analysis/BoxIntegral/Partition/Basic.lean Modified Mathlib/Analysis/BoxIntegral/Partition/Filter.lean Modified Mathlib/Analysis/BoxIntegral/Partition/Split.lean Modified Mathlib/Analysis/BoxIntegral/UnitPartition.lean Modified Mathlib/Analysis/Calculus/BumpFunction/Basic.lean Modified Mathlib/Analysis/Calculus/BumpFunction/FiniteDimension.lean Modified Mathlib/Analysis/Calculus/ContDiff/Comp.lean Modified Mathlib/Analysis/Calculus/ContDiff/Defs.lean Modified Mathlib/Analysis/Calculus/ContDiff/FTaylorSeries.lean Modified Mathlib/Analysis/Calculus/ContDiff/FaaDiBruno.lean Modified Mathlib/Analysis/Calculus/DifferentialForm/Basic.lean Modified Mathlib/Analysis/Calculus/FDeriv/Analytic.lean Modified Mathlib/Analysis/Calculus/FDeriv/Symmetric.lean Modified Mathlib/Analysis/Calculus/IteratedDeriv/Lemmas.lean Modified Mathlib/Analysis/Calculus/SmoothSeries.lean Modified Mathlib/Analysis/Calculus/Taylor.lean Modified Mathlib/Analysis/Calculus/VectorField.lean Modified Mathlib/Analysis/Complex/ValueDistribution/LogCounting/Basic.lean Modified Mathlib/Analysis/Convex/Cone/Dual.lean Modified Mathlib/Analysis/Convex/SimplicialComplex/Basic.lean Modified Mathlib/Analysis/Convex/StoneSeparation.lean Modified Mathlib/Analysis/Distribution/ContDiffMapSupportedIn.lean Modified Mathlib/Analysis/Distribution/SchwartzSpace/Basic.lean Modified Mathlib/Analysis/Distribution/SchwartzSpace/Deriv.lean Modified Mathlib/Analysis/Distribution/TemperateGrowth.lean Modified Mathlib/Analysis/Fourier/FiniteAbelian/PontryaginDuality.lean Modified Mathlib/Analysis/Fourier/FourierTransformDeriv.lean Modified Mathlib/Analysis/InnerProductSpace/Harmonic/HarmonicContOnCl.lean Modified Mathlib/Analysis/Meromorphic/Divisor.lean Modified Mathlib/Analysis/Meromorphic/NormalForm.lean Modified Mathlib/Analysis/Meromorphic/Order.lean Modified Mathlib/Analysis/Meromorphic/TrailingCoefficient.lean Modified Mathlib/Analysis/Normed/Field/Lemmas.lean Modified Mathlib/Analysis/Normed/Field/WithAbs.lean Modified Mathlib/Analysis/Normed/Module/Connected.lean Modified Mathlib/Analysis/Seminorm.lean Modified Mathlib/Analysis/SpecialFunctions/Elliptic/Weierstrass.lean Modified Mathlib/Analysis/SpecialFunctions/Sigmoid.lean Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/InverseDeriv.lean Modified Mathlib/CategoryTheory/Galois/IsFundamentalgroup.lean Modified Mathlib/CategoryTheory/Generator/Basic.lean Modified Mathlib/CategoryTheory/Limits/Types/Coproducts.lean Modified Mathlib/CategoryTheory/Sites/LocallySurjective.lean Modified Mathlib/CategoryTheory/Subfunctor/Basic.lean Modified Mathlib/CategoryTheory/Subfunctor/Image.lean Modified Mathlib/CategoryTheory/Triangulated/TStructure/TruncLTGE.lean Modified Mathlib/Combinatorics/Matroid/Basic.lean Modified Mathlib/Combinatorics/Matroid/Circuit.lean Modified Mathlib/Combinatorics/Matroid/Closure.lean Modified Mathlib/Combinatorics/Matroid/Dual.lean Modified Mathlib/Combinatorics/Matroid/Loop.lean Modified Mathlib/Combinatorics/Matroid/Minor/Contract.lean Modified Mathlib/Combinatorics/Matroid/Minor/Delete.lean Modified Mathlib/Combinatorics/Matroid/Rank/ENat.lean Modified Mathlib/Combinatorics/SimpleGraph/Basic.lean Modified Mathlib/Combinatorics/SimpleGraph/Bipartite.lean Modified Mathlib/Combinatorics/SimpleGraph/Connectivity/Connected.lean Modified Mathlib/Combinatorics/SimpleGraph/Connectivity/Represents.lean Modified Mathlib/Combinatorics/SimpleGraph/Copy.lean Modified Mathlib/Combinatorics/SimpleGraph/Ends/Defs.lean Modified Mathlib/Combinatorics/SimpleGraph/Matching.lean Modified Mathlib/Combinatorics/SimpleGraph/Operations.lean Modified Mathlib/Computability/NFA.lean Modified Mathlib/Data/ENNReal/Basic.lean Modified Mathlib/Data/ENNReal/Operations.lean Modified Mathlib/Data/ENat/Basic.lean Modified Mathlib/Data/EReal/Basic.lean Modified Mathlib/Data/EReal/Operations.lean Modified Mathlib/Data/Finset/Disjoint.lean Modified Mathlib/Data/Finset/Lattice/Fold.lean Modified Mathlib/Data/Finset/Max.lean Modified Mathlib/Data/List/MinMax.lean Modified Mathlib/Data/Set/Card.lean Modified Mathlib/Data/Set/Function.lean Modified Mathlib/Data/Set/Image.lean Modified Mathlib/Data/Set/MemPartition.lean Modified Mathlib/Data/Set/Pairwise/Basic.lean Modified Mathlib/Data/Set/Pairwise/Lattice.lean Modified Mathlib/Data/Set/Prod.lean Modified Mathlib/Data/Setoid/Basic.lean Modified Mathlib/Data/Setoid/Partition.lean Modified Mathlib/Data/Sym/Sym2.lean Modified Mathlib/Data/ZMod/Basic.lean Modified Mathlib/Data/ZMod/QuotientGroup.lean Modified Mathlib/Dynamics/Ergodic/Action/OfMinimal.lean Modified Mathlib/Dynamics/Ergodic/MeasurePreserving.lean Modified Mathlib/FieldTheory/AxGrothendieck.lean Modified Mathlib/FieldTheory/CardinalEmb.lean Modified Mathlib/FieldTheory/Finite/Basic.lean Modified Mathlib/FieldTheory/Galois/Basic.lean Modified Mathlib/FieldTheory/IntermediateField/Adjoin/Defs.lean Modified Mathlib/FieldTheory/KrullTopology.lean Modified Mathlib/FieldTheory/KummerExtension.lean Modified Mathlib/FieldTheory/PrimeField.lean Modified Mathlib/FieldTheory/Relrank.lean Modified Mathlib/Geometry/Convex/Cone/Basic.lean Modified Mathlib/Geometry/Manifold/Algebra/LieGroup.lean Modified Mathlib/Geometry/Manifold/Algebra/Monoid.lean Modified Mathlib/Geometry/Manifold/ContMDiff/Basic.lean Modified Mathlib/Geometry/Manifold/ContMDiff/Defs.lean Modified Mathlib/Geometry/Manifold/ContMDiff/NormedSpace.lean Modified Mathlib/Geometry/Manifold/GroupLieAlgebra.lean Modified Mathlib/Geometry/Manifold/Instances/Sphere.lean Modified Mathlib/Geometry/Manifold/IsManifold/Basic.lean Modified Mathlib/Geometry/Manifold/MFDeriv/NormedSpace.lean Modified Mathlib/Geometry/Manifold/PartitionOfUnity.lean Modified Mathlib/Geometry/Manifold/VectorBundle/Basic.lean Modified Mathlib/Geometry/Manifold/VectorBundle/Riemannian.lean Modified Mathlib/Geometry/Manifold/VectorBundle/SmoothSection.lean Modified Mathlib/Geometry/Manifold/VectorField/LieBracket.lean Modified Mathlib/Geometry/Manifold/VectorField/Pullback.lean Modified Mathlib/GroupTheory/Archimedean.lean Modified Mathlib/GroupTheory/Commutator/Basic.lean Modified Mathlib/GroupTheory/Complement.lean Modified Mathlib/GroupTheory/Coprod/Basic.lean Modified Mathlib/GroupTheory/Coset/Basic.lean Modified Mathlib/GroupTheory/DoubleCoset.lean Modified Mathlib/GroupTheory/Frattini.lean Modified Mathlib/GroupTheory/FreeGroup/Orbit.lean Modified Mathlib/GroupTheory/GroupAction/Basic.lean Modified Mathlib/GroupTheory/GroupAction/Blocks.lean Modified Mathlib/GroupTheory/GroupAction/Defs.lean Modified Mathlib/GroupTheory/GroupAction/FixedPoints.lean Modified Mathlib/GroupTheory/GroupAction/FixingSubgroup.lean Modified Mathlib/GroupTheory/GroupAction/Iwasawa.lean Modified Mathlib/GroupTheory/GroupAction/MultipleTransitivity.lean Modified Mathlib/GroupTheory/GroupAction/Primitive.lean Modified Mathlib/GroupTheory/GroupAction/SubMulAction/OfFixingSubgroup.lean Modified Mathlib/GroupTheory/Index.lean Modified Mathlib/GroupTheory/IsSubnormal.lean Modified Mathlib/GroupTheory/Nilpotent.lean Modified Mathlib/GroupTheory/NoncommCoprod.lean Modified Mathlib/GroupTheory/NoncommPiCoprod.lean Modified Mathlib/GroupTheory/PGroup.lean Modified Mathlib/GroupTheory/Perm/Centralizer.lean Modified Mathlib/GroupTheory/Perm/Closure.lean Modified Mathlib/GroupTheory/Perm/Cycle/Type.lean Modified Mathlib/GroupTheory/Perm/Finite.lean Modified Mathlib/GroupTheory/Perm/MaximalSubgroups.lean Modified Mathlib/GroupTheory/QuotientGroup/Basic.lean Modified Mathlib/GroupTheory/QuotientGroup/Finite.lean Modified Mathlib/GroupTheory/Schreier.lean Modified Mathlib/GroupTheory/SchurZassenhaus.lean Modified Mathlib/GroupTheory/SemidirectProduct.lean Modified Mathlib/GroupTheory/Solvable.lean Modified Mathlib/GroupTheory/SpecificGroups/Alternating.lean Modified Mathlib/GroupTheory/SpecificGroups/Alternating/Centralizer.lean Modified Mathlib/GroupTheory/SpecificGroups/Alternating/KleinFour.lean Modified Mathlib/GroupTheory/SpecificGroups/Alternating/MaximalSubgroups.lean Modified Mathlib/GroupTheory/SpecificGroups/Cyclic.lean Modified Mathlib/GroupTheory/SpecificGroups/ZGroup.lean Modified Mathlib/GroupTheory/Subgroup/Centralizer.lean Modified Mathlib/GroupTheory/Subgroup/Simple.lean Modified Mathlib/GroupTheory/Sylow.lean Modified Mathlib/GroupTheory/Torsion.lean Modified Mathlib/GroupTheory/Transfer.lean Modified Mathlib/LinearAlgebra/AffineSpace/AffineSubspace/Defs.lean Modified Mathlib/LinearAlgebra/AffineSpace/Simplex/Centroid.lean Modified Mathlib/LinearAlgebra/LinearIndependent/Basic.lean Modified Mathlib/LinearAlgebra/Matrix/Ideal.lean Modified Mathlib/LinearAlgebra/Matrix/SpecialLinearGroup.lean Modified Mathlib/LinearAlgebra/Projectivization/Subspace.lean Modified Mathlib/LinearAlgebra/Span/Defs.lean Modified Mathlib/Logic/Equiv/Embedding.lean Modified Mathlib/Logic/Equiv/Set.lean Modified Mathlib/MeasureTheory/Constructions/BorelSpace/WithTop.lean Modified Mathlib/MeasureTheory/Constructions/Cylinders.lean Modified Mathlib/MeasureTheory/Constructions/Polish/Basic.lean Modified Mathlib/MeasureTheory/Constructions/SimpleGraph.lean Modified Mathlib/MeasureTheory/Covering/Besicovitch.lean Modified Mathlib/MeasureTheory/Covering/Vitali.lean Modified Mathlib/MeasureTheory/Group/AEStabilizer.lean Modified Mathlib/MeasureTheory/Group/FoelnerFilter.lean Modified Mathlib/MeasureTheory/Group/FundamentalDomain.lean Modified Mathlib/MeasureTheory/Integral/Bochner/L1.lean Modified Mathlib/MeasureTheory/Integral/IntervalIntegral/Basic.lean Modified Mathlib/MeasureTheory/Integral/IntervalIntegral/TrapezoidalRule.lean Modified Mathlib/MeasureTheory/Integral/Lebesgue/Countable.lean Modified Mathlib/MeasureTheory/Integral/RieszMarkovKakutani/Real.lean Modified Mathlib/MeasureTheory/Integral/SetToL1.lean Modified Mathlib/MeasureTheory/MeasurableSpace/Constructions.lean Modified Mathlib/MeasureTheory/MeasurableSpace/CountablyGenerated.lean Modified Mathlib/MeasureTheory/Measure/AEDisjoint.lean Modified Mathlib/MeasureTheory/Measure/AddContent.lean Modified Mathlib/MeasureTheory/Measure/Content.lean Modified Mathlib/MeasureTheory/Measure/Decomposition/Hahn.lean Modified Mathlib/MeasureTheory/Measure/Haar/Unique.lean Modified Mathlib/MeasureTheory/Measure/Hausdorff.lean Modified Mathlib/MeasureTheory/Measure/Lebesgue/EqHaar.lean Modified Mathlib/MeasureTheory/Measure/MeasureSpace.lean Modified Mathlib/MeasureTheory/Measure/MeasuredSets.lean Modified Mathlib/MeasureTheory/Measure/MutuallySingular.lean Modified Mathlib/MeasureTheory/Measure/NullMeasurable.lean Modified Mathlib/MeasureTheory/Measure/PreVariation.lean Modified Mathlib/MeasureTheory/Measure/SeparableMeasure.lean Modified Mathlib/MeasureTheory/Measure/Stieltjes.lean Modified Mathlib/MeasureTheory/Measure/Sub.lean Modified Mathlib/MeasureTheory/Measure/Typeclasses/SFinite.lean Modified Mathlib/MeasureTheory/OuterMeasure/AE.lean Modified Mathlib/MeasureTheory/OuterMeasure/Induced.lean Modified Mathlib/MeasureTheory/OuterMeasure/OfFunction.lean Modified Mathlib/MeasureTheory/OuterMeasure/Operations.lean Modified Mathlib/MeasureTheory/SetSemiring.lean Modified Mathlib/MeasureTheory/VectorMeasure/AddContent.lean Modified Mathlib/MeasureTheory/VectorMeasure/BoundedVariation.lean Modified Mathlib/MeasureTheory/VectorMeasure/Decomposition/Hahn.lean Modified Mathlib/NumberTheory/Cyclotomic/Basic.lean Modified Mathlib/NumberTheory/ModularForms/EisensteinSeries/UniformConvergence.lean Modified Mathlib/NumberTheory/NumberField/CMField.lean Modified Mathlib/NumberTheory/NumberField/InfinitePlace/Completion.lean Modified Mathlib/NumberTheory/NumberField/InfinitePlace/Ramification.lean Modified Mathlib/NumberTheory/NumberField/InfinitePlace/TotallyRealComplex.lean Modified Mathlib/NumberTheory/NumberField/Units/Regulator.lean Modified Mathlib/NumberTheory/Padics/PadicNumbers.lean Modified Mathlib/NumberTheory/Rayleigh.lean Modified Mathlib/Order/Atoms.lean Modified Mathlib/Order/BooleanAlgebra/Set.lean Modified Mathlib/Order/BooleanSubalgebra.lean Modified Mathlib/Order/Category/BddLat.lean Modified Mathlib/Order/Category/NonemptyFinLinOrd.lean Modified Mathlib/Order/CompleteLattice/SetLike.lean Modified Mathlib/Order/Concept.lean Modified Mathlib/Order/ConditionallyCompleteLattice/Basic.lean Modified Mathlib/Order/ConditionallyCompleteLattice/Indexed.lean Modified Mathlib/Order/Cover.lean Modified Mathlib/Order/Filter/Bases/Basic.lean Modified Mathlib/Order/Filter/Basic.lean Modified Mathlib/Order/Hom/WithTopBot.lean Modified Mathlib/Order/Interval/Finset/Defs.lean Modified Mathlib/Order/Interval/Finset/DenselyOrdered.lean Modified Mathlib/Order/Interval/Finset/Gaps.lean Modified Mathlib/Order/Interval/Set/Disjoint.lean Modified Mathlib/Order/Interval/Set/Pi.lean Modified Mathlib/Order/Interval/Set/WithBotTop.lean Modified Mathlib/Order/KrullDimension.lean Modified Mathlib/Order/Monotone/Extension.lean Modified Mathlib/Order/Sublattice.lean Modified Mathlib/Order/Sublocale.lean Modified Mathlib/Order/SuccPred/Basic.lean Modified Mathlib/Order/SuccPred/Tree.lean Modified Mathlib/Order/SuccPred/WithBot.lean Modified Mathlib/Order/SupIndep.lean Modified Mathlib/Order/UpperLower/Closure.lean Modified Mathlib/Order/UpperLower/CompleteLattice.lean Modified Mathlib/Order/WellFoundedSet.lean Modified Mathlib/Order/WithBot.lean Modified Mathlib/Order/WithBotTop.lean Modified Mathlib/Probability/BorelCantelli.lean Modified Mathlib/Probability/ConditionalProbability.lean Modified Mathlib/Probability/Distributions/Gamma.lean Modified Mathlib/Probability/Distributions/Uniform.lean Modified Mathlib/Probability/Kernel/Disintegration/Density.lean Modified Mathlib/Probability/Martingale/BorelCantelli.lean Modified Mathlib/Probability/Martingale/OptionalSampling.lean Modified Mathlib/Probability/Martingale/OptionalStopping.lean Modified Mathlib/Probability/Martingale/Upcrossing.lean Modified Mathlib/Probability/Process/HittingTime.lean Modified Mathlib/Probability/Process/Predictable.lean Modified Mathlib/Probability/Process/Stopping.lean Modified Mathlib/RepresentationTheory/Basic.lean Modified Mathlib/RingTheory/Congruence/Hom.lean Modified Mathlib/RingTheory/DedekindDomain/AdicValuation.lean Modified Mathlib/RingTheory/DedekindDomain/Ideal/Lemmas.lean Modified Mathlib/RingTheory/HahnSeries/Addition.lean Modified Mathlib/RingTheory/HahnSeries/Basic.lean Modified Mathlib/RingTheory/HahnSeries/Binomial.lean Modified Mathlib/RingTheory/HahnSeries/HEval.lean Modified Mathlib/RingTheory/HahnSeries/HahnEmbedding.lean Modified Mathlib/RingTheory/HahnSeries/Lex.lean Modified Mathlib/RingTheory/HahnSeries/Multiplication.lean Modified Mathlib/RingTheory/HahnSeries/Summable.lean Modified Mathlib/RingTheory/Ideal/GoingUp.lean Modified Mathlib/RingTheory/Ideal/Maximal.lean Modified Mathlib/RingTheory/Ideal/MinimalPrime/Localization.lean Modified Mathlib/RingTheory/Ideal/Over.lean Modified Mathlib/RingTheory/Localization/FractionRing.lean Modified Mathlib/RingTheory/Localization/Ideal.lean Modified Mathlib/RingTheory/MvPowerSeries/LexOrder.lean Modified Mathlib/RingTheory/NonUnitalSubring/Basic.lean Modified Mathlib/RingTheory/NonUnitalSubsemiring/Basic.lean Modified Mathlib/RingTheory/PicardGroup.lean Modified Mathlib/RingTheory/Polynomial/GaussNorm.lean Modified Mathlib/RingTheory/Polynomial/UniqueFactorization.lean Modified Mathlib/RingTheory/QuasiFinite/Basic.lean Modified Mathlib/RingTheory/RootsOfUnity/Basic.lean Modified Mathlib/RingTheory/Smooth/StandardSmoothOfFree.lean Modified Mathlib/RingTheory/Spectrum/Prime/Jacobson.lean Modified Mathlib/RingTheory/Spectrum/Prime/Topology.lean Modified Mathlib/RingTheory/TensorProduct/Basic.lean Modified Mathlib/RingTheory/TwoSidedIdeal/Lattice.lean Modified Mathlib/RingTheory/UniqueFactorizationDomain/FactorSet.lean Modified Mathlib/RingTheory/Unramified/Field.lean Modified Mathlib/RingTheory/Valuation/LocalSubring.lean Modified Mathlib/SetTheory/Cardinal/Basic.lean Modified Mathlib/SetTheory/Cardinal/Embedding.lean Modified Mathlib/SetTheory/Cardinal/Subfield.lean Modified Mathlib/Topology/Algebra/ConstMulAction.lean Modified Mathlib/Topology/Algebra/InfiniteSum/Group.lean Modified Mathlib/Topology/Algebra/Module/LocallyConvex.lean Modified Mathlib/Topology/Algebra/Nonarchimedean/TotallyDisconnected.lean Modified Mathlib/Topology/Algebra/Support.lean Modified Mathlib/Topology/CWComplex/Classical/Basic.lean Modified Mathlib/Topology/CWComplex/Classical/Finite.lean Modified Mathlib/Topology/CWComplex/Classical/Subcomplex.lean Modified Mathlib/Topology/Category/CompHaus/Basic.lean Modified Mathlib/Topology/Closure.lean Modified Mathlib/Topology/Connected/Basic.lean Modified Mathlib/Topology/Connected/Clopen.lean Modified Mathlib/Topology/Constructible.lean Modified Mathlib/Topology/ContinuousMap/StoneWeierstrass.lean Modified Mathlib/Topology/DiscreteSubset.lean Modified Mathlib/Topology/ExtremallyDisconnected.lean Modified Mathlib/Topology/FiberBundle/Basic.lean Modified Mathlib/Topology/GDelta/Basic.lean Modified Mathlib/Topology/Irreducible.lean Modified Mathlib/Topology/JacobsonSpace.lean Modified Mathlib/Topology/MetricSpace/CantorScheme.lean Modified Mathlib/Topology/MetricSpace/HausdorffDistance.lean Modified Mathlib/Topology/MetricSpace/Thickening.lean Modified Mathlib/Topology/MetricSpace/Ultra/Basic.lean Modified Mathlib/Topology/NatEmbedding.lean Modified Mathlib/Topology/Order/Category/FrameAdjunction.lean Modified Mathlib/Topology/Order/LeftRightNhds.lean Modified Mathlib/Topology/Order/Monotone.lean Modified Mathlib/Topology/Order/ScottTopology.lean Modified Mathlib/Topology/Order/T5.lean Modified Mathlib/Topology/Order/WithTop.lean Modified Mathlib/Topology/Semicontinuity/Defs.lean Modified Mathlib/Topology/Separation/Basic.lean Modified Mathlib/Topology/Separation/CompletelyRegular.lean Modified Mathlib/Topology/Separation/DisjointCover.lean Modified Mathlib/Topology/Separation/Hausdorff.lean Modified Mathlib/Topology/Separation/LinearUpperLowerSetTopology.lean Modified Mathlib/Topology/Separation/Regular.lean Modified Mathlib/Topology/Separation/SeparatedNhds.lean Modified Mathlib/Topology/Sets/Closeds.lean Modified Mathlib/Topology/Sets/Opens.lean Modified Mathlib/Topology/Sober.lean Modified Mathlib/Topology/UniformSpace/Closeds.lean Modified Mathlib/Topology/UniformSpace/OfCompactT2.lean Modified Mathlib/Topology/UniformSpace/Separation.lean Modified MathlibTest/TautoSet.lean Modified MathlibTest/fun_prop2.lean 2026-03-03 05:00:15 ba37a5c feat(Topology/HomotopyGroup): Homeomorphism between GenLoop (#35515) ESTIMATED CHANGES Modified Mathlib/Topology/Homotopy/HomotopyGroup.lean + theorem Cube.boundary_sum_iff + theorem GenLoop.apply_inl_apply_inr_eq_of_mem_boundary_sum + theorem GenLoop.coe_coe + def GenLoop.congr + theorem GenLoop.continuous_currySum + def GenLoop.currySum + theorem GenLoop.currySum_apply_inl_inr + def GenLoop.genLoopGenLoopEquiv + theorem GenLoop.uncurry_apply 2026-03-03 01:16:47 6a736c3 feat(CategoryTheory/Monoidal/Limits): colimit of tensor products (#35806) This PR builds on prior work by Robin Carlier about sifted categories and colimits of bifunctors in order to show that under suitable assumptions the colimit of `F₁ ⊗ F₂` identifies to the tensor product of the colimits of `F₁` and `F₂`. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Monoidal/Limits/Colimits.lean + def CategoryTheory.Limits.Cocone.tensor 2026-03-03 01:03:13 e78b025 feat(Algebra/Homology): the mapping cocone (#35929) Given a morphism `φ : K ⟶ L` of cochain complexes, the mapping cone allows to obtain a triangle `K ⟶ L ⟶ mappingCone φ ⟶ ...`. In this PR, we define the mapping cocone, which fits in a rotated triangle: `mappingCocone φ ⟶ K ⟶ L ⟶ ...`. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Homology/HomotopyCategory/MappingCocone.lean + theorem CochainComplex.mappingCocone.id_X + theorem CochainComplex.mappingCocone.inl_comp_descCochain + theorem CochainComplex.mappingCocone.inl_v_descCochain_v + theorem CochainComplex.mappingCocone.inl_v_desc_f + theorem CochainComplex.mappingCocone.inl_v_fst_f + theorem CochainComplex.mappingCocone.inl_v_snd_v + theorem CochainComplex.mappingCocone.inr_comp_descCochain + theorem CochainComplex.mappingCocone.inr_v_descCochain_v + theorem CochainComplex.mappingCocone.inr_v_desc_f + theorem CochainComplex.mappingCocone.inr_v_fst_f + theorem CochainComplex.mappingCocone.inr_v_snd_v + theorem CochainComplex.mappingCocone.liftCochain_comp_fst + theorem CochainComplex.mappingCocone.liftCochain_comp_snd + theorem CochainComplex.mappingCocone.liftCochain_v_fst_f + theorem CochainComplex.mappingCocone.liftCochain_v_snd_v + theorem CochainComplex.mappingCocone.lift_f_fst_f + theorem CochainComplex.mappingCocone.lift_f_snd_v + theorem CochainComplex.mappingCocone.lift_fst + theorem CochainComplex.mappingCocone.ofHom_desc + theorem CochainComplex.mappingCocone.ofHom_lift + theorem CochainComplex.mappingCocone.δ_descCochain + theorem CochainComplex.mappingCocone.δ_liftCochain 2026-03-03 00:18:28 6fcaafd chore: add/remove `set_option backward` after moving to `v4.29.0-rc3` (#35952) This PR adds and removes a number of `set_option backward.isDefEq.respectTransparency` that were missed in other cleanups, but are needed/possible after `master` has moved to `v4.29.0-rc3`. ESTIMATED CHANGES Modified Archive/Imo/Imo2001Q5.lean Modified Archive/Imo/Imo2019Q4.lean Modified Archive/Imo/Imo2024Q6.lean Modified Archive/Wiedijk100Theorems/BuffonsNeedle.lean Modified Counterexamples/HeawoodUnitDistance.lean Modified Counterexamples/InvertibleModuleNotIdeal.lean Modified Counterexamples/NowhereDifferentiable.lean Modified Mathlib/Algebra/BigOperators/Expect.lean Modified Mathlib/Algebra/Category/AlgCat/Limits.lean Modified Mathlib/Algebra/Category/ContinuousCohomology/Basic.lean Modified Mathlib/Algebra/Category/ModuleCat/ChangeOfRings.lean Modified Mathlib/Algebra/Category/ModuleCat/Ext/DimensionShifting.lean Modified Mathlib/Algebra/Category/ModuleCat/Presheaf/Sheafification.lean Modified Mathlib/Algebra/Category/ModuleCat/Projective.lean Modified Mathlib/Algebra/Category/ModuleCat/Sheaf/PushforwardContinuous.lean Modified Mathlib/Algebra/Category/ModuleCat/Sheaf/Quasicoherent.lean Modified Mathlib/Algebra/Category/ModuleCat/Stalk.lean Modified Mathlib/Algebra/Category/Ring/Limits.lean Modified Mathlib/Algebra/DualQuaternion.lean Modified Mathlib/Algebra/Homology/DerivedCategory/HomologySequence.lean Modified Mathlib/Algebra/Homology/HomologicalComplexAbelian.lean Modified Mathlib/Algebra/Homology/HomotopyCategory/HomComplexShift.lean Modified Mathlib/Algebra/Homology/HomotopyCategory/Pretriangulated.lean Modified Mathlib/Algebra/Homology/HomotopyCofiber.lean Modified Mathlib/Algebra/Homology/Localization.lean Modified Mathlib/Algebra/Homology/TotalComplexShift.lean Modified Mathlib/Algebra/Lie/Weights/IsSimple.lean Modified Mathlib/Algebra/Lie/Weights/RootSystem.lean Modified Mathlib/Algebra/Module/SpanRank.lean Modified Mathlib/Algebra/Module/ZLattice/Basic.lean Modified Mathlib/Algebra/Module/ZLattice/Summable.lean Modified Mathlib/Algebra/Order/Floor/Extended.lean Modified Mathlib/Algebra/Order/Group/PartialSups.lean Modified Mathlib/Algebra/Order/Interval/Basic.lean Modified Mathlib/Algebra/Order/Module/HahnEmbedding.lean Modified Mathlib/Algebra/Order/Ring/StandardPart.lean Modified Mathlib/Algebra/Polynomial/Degree/TrailingDegree.lean Modified Mathlib/Algebra/Ring/NegOnePow.lean Modified Mathlib/Algebra/Star/CentroidHom.lean Modified Mathlib/AlgebraicGeometry/AffineSpace.lean Modified Mathlib/AlgebraicGeometry/Fiber.lean Modified Mathlib/AlgebraicGeometry/IdealSheaf/IrreducibleComponent.lean Modified Mathlib/AlgebraicGeometry/IdealSheaf/Subscheme.lean Modified Mathlib/AlgebraicGeometry/Morphisms/Affine.lean Modified Mathlib/AlgebraicGeometry/Morphisms/SmoothFiber.lean Modified Mathlib/AlgebraicGeometry/Normalization.lean Modified Mathlib/AlgebraicGeometry/StructureSheaf.lean Modified Mathlib/AlgebraicTopology/SimplicialSet/StdSimplex.lean Modified Mathlib/Analysis/Analytic/Binomial.lean Modified Mathlib/Analysis/Analytic/Composition.lean Modified Mathlib/Analysis/Analytic/Order.lean Modified Mathlib/Analysis/Analytic/Uniqueness.lean Modified Mathlib/Analysis/BoxIntegral/Partition/Basic.lean Modified Mathlib/Analysis/BoxIntegral/UnitPartition.lean Modified Mathlib/Analysis/CStarAlgebra/CompletelyPositiveMap.lean Modified Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Instances.lean Modified Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/NonUnital.lean Modified Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Order.lean Modified Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Unique.lean Modified Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Unital.lean Modified Mathlib/Analysis/CStarAlgebra/GelfandNaimarkSegal.lean Modified Mathlib/Analysis/CStarAlgebra/Hom.lean Modified Mathlib/Analysis/CStarAlgebra/Unitary/Connected.lean Modified Mathlib/Analysis/Calculus/BumpFunction/FiniteDimension.lean Modified Mathlib/Analysis/Calculus/BumpFunction/Normed.lean Modified Mathlib/Analysis/Calculus/ContDiff/Comp.lean Modified Mathlib/Analysis/Calculus/ContDiff/Convolution.lean Modified Mathlib/Analysis/Calculus/ContDiff/Defs.lean Modified Mathlib/Analysis/Calculus/ContDiffHolder/Pointwise.lean Modified Mathlib/Analysis/Calculus/DerivativeTest.lean Modified Mathlib/Analysis/Calculus/FDeriv/Basic.lean Modified Mathlib/Analysis/Calculus/FDeriv/Norm.lean Modified Mathlib/Analysis/Calculus/FDeriv/Symmetric.lean Modified Mathlib/Analysis/Calculus/InverseFunctionTheorem/ApproximatesLinearOn.lean Modified Mathlib/Analysis/Calculus/IteratedDeriv/Defs.lean Modified Mathlib/Analysis/Calculus/MeanValue.lean Modified Mathlib/Analysis/Calculus/Rademacher.lean Modified Mathlib/Analysis/Calculus/UniformLimitsDeriv.lean Modified Mathlib/Analysis/Calculus/VectorField.lean Modified Mathlib/Analysis/Complex/AbsMax.lean Modified Mathlib/Analysis/Complex/Basic.lean Modified Mathlib/Analysis/Complex/Exponential.lean Modified Mathlib/Analysis/Complex/Hadamard.lean Modified Mathlib/Analysis/Complex/Harmonic/Analytic.lean Modified Mathlib/Analysis/Complex/Harmonic/Liouville.lean Modified Mathlib/Analysis/Complex/HasPrimitives.lean Modified Mathlib/Analysis/Complex/JensenFormula.lean Modified Mathlib/Analysis/Complex/LocallyUniformLimit.lean Modified Mathlib/Analysis/Complex/MeanValue.lean Modified Mathlib/Analysis/Complex/OpenMapping.lean Modified Mathlib/Analysis/Complex/Order.lean Modified Mathlib/Analysis/Complex/Periodic.lean Modified Mathlib/Analysis/Complex/PhragmenLindelof.lean Modified Mathlib/Analysis/Complex/Poisson.lean Modified Mathlib/Analysis/Complex/RemovableSingularity.lean Modified Mathlib/Analysis/Complex/Schwarz.lean Modified Mathlib/Analysis/Complex/UnitDisc/Basic.lean Modified Mathlib/Analysis/Complex/ValueDistribution/FirstMainTheorem.lean Modified Mathlib/Analysis/Complex/ValueDistribution/LogCounting/Basic.lean Modified Mathlib/Analysis/Convex/Cone/Extension.lean Modified Mathlib/Analysis/Convex/Cone/InnerDual.lean Modified Mathlib/Analysis/Convex/Continuous.lean Modified Mathlib/Analysis/Convex/Deriv.lean Modified Mathlib/Analysis/Convex/SpecificFunctions/Basic.lean Modified Mathlib/Analysis/Distribution/ContDiffMapSupportedIn.lean Modified Mathlib/Analysis/Distribution/SchwartzSpace/Basic.lean Modified Mathlib/Analysis/Distribution/TemperateGrowth.lean Modified Mathlib/Analysis/Fourier/Convolution.lean Modified Mathlib/Analysis/Fourier/Inversion.lean Modified Mathlib/Analysis/FunctionalSpaces/SobolevInequality.lean Modified Mathlib/Analysis/InnerProductSpace/Basic.lean Modified Mathlib/Analysis/InnerProductSpace/Coalgebra.lean Modified Mathlib/Analysis/InnerProductSpace/GramSchmidtOrtho.lean Modified Mathlib/Analysis/InnerProductSpace/Harmonic/HarmonicContOnCl.lean Modified Mathlib/Analysis/InnerProductSpace/NormPow.lean Modified Mathlib/Analysis/InnerProductSpace/PiL2.lean Modified Mathlib/Analysis/InnerProductSpace/Positive.lean Modified Mathlib/Analysis/InnerProductSpace/StarOrder.lean Modified Mathlib/Analysis/InnerProductSpace/TensorProduct.lean Modified Mathlib/Analysis/InnerProductSpace/TwoDim.lean Modified Mathlib/Analysis/LocallyConvex/WeakDual.lean Modified Mathlib/Analysis/Matrix/HermitianFunctionalCalculus.lean Modified Mathlib/Analysis/Matrix/Normed.lean Modified Mathlib/Analysis/Matrix/Order.lean Modified Mathlib/Analysis/Matrix/Spectrum.lean Modified Mathlib/Analysis/MeanInequalities.lean Modified Mathlib/Analysis/Meromorphic/FactorizedRational.lean Modified Mathlib/Analysis/Normed/Algebra/Basic.lean Modified Mathlib/Analysis/Normed/Algebra/QuaternionExponential.lean Modified Mathlib/Analysis/Normed/Field/UnitBall.lean Modified Mathlib/Analysis/Normed/Field/WithAbs.lean Modified Mathlib/Analysis/Normed/Group/ZeroAtInfty.lean Modified Mathlib/Analysis/Normed/Lp/PiLp.lean Modified Mathlib/Analysis/Normed/Lp/ProdLp.lean Modified Mathlib/Analysis/Normed/Module/Ball/RadialEquiv.lean Modified Mathlib/Analysis/Normed/Module/Dual.lean Modified Mathlib/Analysis/Normed/Module/HahnBanach.lean Modified Mathlib/Analysis/Normed/Module/Multilinear/Basic.lean Modified Mathlib/Analysis/Normed/Module/PiTensorProduct/InjectiveSeminorm.lean Modified Mathlib/Analysis/Normed/Order/UpperLower.lean Modified Mathlib/Analysis/Normed/Ring/WithAbs.lean Modified Mathlib/Analysis/Normed/Unbundled/SmoothingSeminorm.lean Modified Mathlib/Analysis/Normed/Unbundled/SpectralNorm.lean Modified Mathlib/Analysis/ODE/PicardLindelof.lean Modified Mathlib/Analysis/Quaternion.lean Modified Mathlib/Analysis/Seminorm.lean Modified Mathlib/Analysis/SpecialFunctions/Arsinh.lean Modified Mathlib/Analysis/SpecialFunctions/Artanh.lean Modified Mathlib/Analysis/SpecialFunctions/Bernstein.lean Modified Mathlib/Analysis/SpecialFunctions/BinaryEntropy.lean Modified Mathlib/Analysis/SpecialFunctions/Complex/Arctan.lean Modified Mathlib/Analysis/SpecialFunctions/Complex/Arg.lean Modified Mathlib/Analysis/SpecialFunctions/ContinuousFunctionalCalculus/PosPart/Basic.lean Modified Mathlib/Analysis/SpecialFunctions/ContinuousFunctionalCalculus/Rpow/Basic.lean Modified Mathlib/Analysis/SpecialFunctions/ContinuousFunctionalCalculus/Rpow/IntegralRepresentation.lean Modified Mathlib/Analysis/SpecialFunctions/Exp.lean Modified Mathlib/Analysis/SpecialFunctions/ExpDeriv.lean Modified Mathlib/Analysis/SpecialFunctions/Gamma/Basic.lean Modified Mathlib/Analysis/SpecialFunctions/Gamma/Beta.lean Modified Mathlib/Analysis/SpecialFunctions/Gamma/BohrMollerup.lean Modified Mathlib/Analysis/SpecialFunctions/Gaussian/FourierTransform.lean Modified Mathlib/Analysis/SpecialFunctions/Gaussian/GaussianIntegral.lean Modified Mathlib/Analysis/SpecialFunctions/ImproperIntegrals.lean Modified Mathlib/Analysis/SpecialFunctions/Integrability/Basic.lean Modified Mathlib/Analysis/SpecialFunctions/Integrals/Basic.lean Modified Mathlib/Analysis/SpecialFunctions/Integrals/PosLogEqCircleAverage.lean Modified Mathlib/Analysis/SpecialFunctions/JapaneseBracket.lean Modified Mathlib/Analysis/SpecialFunctions/Log/Base.lean Modified Mathlib/Analysis/SpecialFunctions/Log/Deriv.lean Modified Mathlib/Analysis/SpecialFunctions/Log/InvLog.lean Modified Mathlib/Analysis/SpecialFunctions/Log/NegMulLog.lean Modified Mathlib/Analysis/SpecialFunctions/Log/PosLog.lean Modified Mathlib/Analysis/SpecialFunctions/MulExpNegMulSq.lean Modified Mathlib/Analysis/SpecialFunctions/Pow/Asymptotics.lean Modified Mathlib/Analysis/SpecialFunctions/Pow/Complex.lean Modified Mathlib/Analysis/SpecialFunctions/Pow/Continuity.lean Modified Mathlib/Analysis/SpecialFunctions/Pow/Deriv.lean Modified Mathlib/Analysis/SpecialFunctions/Pow/NNReal.lean Modified Mathlib/Analysis/SpecialFunctions/Pow/Real.lean Modified Mathlib/Analysis/SpecialFunctions/Sigmoid.lean Modified Mathlib/Analysis/SpecialFunctions/SmoothTransition.lean Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Angle.lean Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Basic.lean Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Bounds.lean Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Chebyshev/RootsExtrema.lean Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/DerivHyp.lean Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Inverse.lean Modified Mathlib/Analysis/SpecificLimits/Normed.lean Modified Mathlib/Analysis/SumOverResidueClass.lean Modified Mathlib/CategoryTheory/Abelian/GrothendieckCategory/ModuleEmbedding/GabrielPopescu.lean Modified Mathlib/CategoryTheory/Abelian/Preradical/Basic.lean Modified Mathlib/CategoryTheory/Abelian/Refinements.lean Modified Mathlib/CategoryTheory/Adhesive/Subobject.lean Modified Mathlib/CategoryTheory/Adjunction/FullyFaithful.lean Modified Mathlib/CategoryTheory/Bicategory/Functor/StrictlyUnitary.lean Modified Mathlib/CategoryTheory/Bicategory/Grothendieck.lean Modified Mathlib/CategoryTheory/Bicategory/Modification/Pseudo.lean Modified Mathlib/CategoryTheory/Center/NegOnePow.lean Modified Mathlib/CategoryTheory/FiberedCategory/HasFibers.lean Modified Mathlib/CategoryTheory/Join/Sum.lean Modified Mathlib/CategoryTheory/Limits/Final.lean Modified Mathlib/CategoryTheory/Limits/Preserves/Bifunctor.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Biproducts.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Pullback/Categorical/Basic.lean Modified Mathlib/CategoryTheory/Limits/Shapes/RegularMono.lean Modified Mathlib/CategoryTheory/Localization/Monoidal/Basic.lean Modified Mathlib/CategoryTheory/Monoidal/Bimod.lean Modified Mathlib/CategoryTheory/Shift/ShiftedHom.lean Modified Mathlib/CategoryTheory/ShrinkYoneda.lean Modified Mathlib/CategoryTheory/Sites/DenseSubsite/Basic.lean Modified Mathlib/CategoryTheory/Sites/DenseSubsite/OneHypercoverDense.lean Modified Mathlib/CategoryTheory/Sites/Descent/DescentDataPrime.lean Modified Mathlib/CategoryTheory/Sites/Hypercover/One.lean Modified Mathlib/CategoryTheory/Sites/LocallySurjective.lean Modified Mathlib/CategoryTheory/Sites/Point/Skyscraper.lean Modified Mathlib/CategoryTheory/Triangulated/Functor.lean Modified Mathlib/CategoryTheory/Triangulated/Opposite/Pretriangulated.lean Modified Mathlib/CategoryTheory/Triangulated/Subcategory.lean Modified Mathlib/CategoryTheory/Triangulated/TStructure/AbelianSubcategory.lean Modified Mathlib/CategoryTheory/Triangulated/TStructure/TruncLTGE.lean Modified Mathlib/Combinatorics/Additive/AP/Three/Behrend.lean Modified Mathlib/Combinatorics/Additive/CauchyDavenport.lean Modified Mathlib/Combinatorics/Additive/Corner/Roth.lean Modified Mathlib/Combinatorics/Additive/DoublingConst.lean Modified Mathlib/Combinatorics/Additive/VerySmallDoubling.lean Modified Mathlib/Combinatorics/Hall/Basic.lean Modified Mathlib/Combinatorics/Hall/Finite.lean Modified Mathlib/Combinatorics/Matroid/IndepAxioms.lean Modified Mathlib/Combinatorics/Matroid/Minor/Restrict.lean Modified Mathlib/Combinatorics/SimpleGraph/Coloring.lean Modified Mathlib/Combinatorics/SimpleGraph/Connectivity/Connected.lean Modified Mathlib/Combinatorics/SimpleGraph/Connectivity/EdgeConnectivity.lean Modified Mathlib/Combinatorics/SimpleGraph/Connectivity/Subgraph.lean Modified Mathlib/Combinatorics/SimpleGraph/Diam.lean Modified Mathlib/Combinatorics/SimpleGraph/Girth.lean Modified Mathlib/Combinatorics/SimpleGraph/LapMatrix.lean Modified Mathlib/Combinatorics/SimpleGraph/Metric.lean Modified Mathlib/Combinatorics/SimpleGraph/Regularity/Increment.lean Modified Mathlib/Combinatorics/Tiling/Tile.lean Modified Mathlib/Computability/AkraBazzi/GrowsPolynomially.lean Modified Mathlib/Computability/AkraBazzi/SumTransform.lean Modified Mathlib/Computability/NFA.lean Modified Mathlib/Computability/Primrec/List.lean Modified Mathlib/Data/ENNReal/BigOperators.lean Modified Mathlib/Data/ENat/Basic.lean Modified Mathlib/Data/ENat/Pow.lean Modified Mathlib/Data/Holor.lean Modified Mathlib/Data/NNRat/Lemmas.lean Modified Mathlib/Data/Nat/Multiplicity.lean Modified Mathlib/Data/Nat/PartENat.lean Modified Mathlib/Data/PFunctor/Multivariate/M.lean Modified Mathlib/Data/PFunctor/Univariate/M.lean Modified Mathlib/Data/PNat/Interval.lean Modified Mathlib/Data/Rat/NatSqrt/Real.lean Modified Mathlib/Data/Seq/Basic.lean Modified Mathlib/Data/Seq/Parallel.lean Modified Mathlib/Data/Set/Card.lean Modified Mathlib/Data/ZMod/QuotientGroup.lean Modified Mathlib/Dynamics/TopologicalEntropy/CoverEntropy.lean Modified Mathlib/Dynamics/TopologicalEntropy/NetEntropy.lean Modified Mathlib/FieldTheory/LinearDisjoint.lean Modified Mathlib/FieldTheory/Separable.lean Modified Mathlib/Geometry/Euclidean/Angle/Oriented/Affine.lean Modified Mathlib/Geometry/Euclidean/Angle/Oriented/Basic.lean Modified Mathlib/Geometry/Euclidean/Angle/Oriented/Rotation.lean Modified Mathlib/Geometry/Euclidean/Angle/Unoriented/Basic.lean Modified Mathlib/Geometry/Euclidean/Angle/Unoriented/RightAngle.lean Modified Mathlib/Geometry/Euclidean/Angle/Unoriented/TriangleInequality.lean Modified Mathlib/Geometry/Euclidean/Incenter.lean Modified Mathlib/Geometry/Euclidean/Sphere/Basic.lean Modified Mathlib/Geometry/Euclidean/Sphere/Power.lean Modified Mathlib/Geometry/Manifold/Instances/Real.lean Modified Mathlib/Geometry/Manifold/IntegralCurve/ExistUnique.lean Modified Mathlib/Geometry/Manifold/IsManifold/InteriorBoundary.lean Modified Mathlib/Geometry/Manifold/MFDeriv/Atlas.lean Modified Mathlib/Geometry/Manifold/Riemannian/PathELength.lean Modified Mathlib/GroupTheory/Coprod/Basic.lean Modified Mathlib/GroupTheory/CoprodI.lean Modified Mathlib/GroupTheory/FreeGroup/Orbit.lean Modified Mathlib/GroupTheory/GroupAction/MultiplePrimitivity.lean Modified Mathlib/GroupTheory/GroupAction/SubMulAction/OfFixingSubgroup.lean Modified Mathlib/GroupTheory/IsSubnormal.lean Modified Mathlib/GroupTheory/Nilpotent.lean Modified Mathlib/GroupTheory/NoncommCoprod.lean Modified Mathlib/GroupTheory/Perm/ClosureSwap.lean Modified Mathlib/GroupTheory/SpecificGroups/Alternating.lean Modified Mathlib/LinearAlgebra/DFinsupp.lean Modified Mathlib/LinearAlgebra/Eigenspace/Basic.lean Modified Mathlib/LinearAlgebra/Eigenspace/Triangularizable.lean Modified Mathlib/LinearAlgebra/ExteriorPower/Basis.lean Modified Mathlib/LinearAlgebra/LinearDisjoint.lean Modified Mathlib/LinearAlgebra/Matrix/GeneralLinearGroup/Card.lean Modified Mathlib/LinearAlgebra/Matrix/Ideal.lean Modified Mathlib/LinearAlgebra/Multilinear/DFinsupp.lean Modified Mathlib/LinearAlgebra/PiTensorProduct.lean Modified Mathlib/LinearAlgebra/QuadraticForm/Radical.lean Modified Mathlib/LinearAlgebra/QuadraticForm/Real.lean Modified Mathlib/LinearAlgebra/RootSystem/Base.lean Modified Mathlib/LinearAlgebra/RootSystem/CartanMatrix.lean Modified Mathlib/LinearAlgebra/RootSystem/Finite/Nondegenerate.lean Modified Mathlib/LinearAlgebra/RootSystem/GeckConstruction/Basic.lean Modified Mathlib/LinearAlgebra/RootSystem/GeckConstruction/Relations.lean Modified Mathlib/LinearAlgebra/RootSystem/GeckConstruction/Semisimple.lean Modified Mathlib/LinearAlgebra/TensorProduct/Quotient.lean Modified Mathlib/LinearAlgebra/TensorProduct/Vanishing.lean Modified Mathlib/MeasureTheory/Constructions/Projective.lean Modified Mathlib/MeasureTheory/Covering/BesicovitchVectorSpace.lean Modified Mathlib/MeasureTheory/Covering/DensityTheorem.lean Modified Mathlib/MeasureTheory/Function/AEEqOfIntegral.lean Modified Mathlib/MeasureTheory/Function/AbsolutelyContinuous.lean Modified Mathlib/MeasureTheory/Function/ConditionalExpectation/Real.lean Modified Mathlib/MeasureTheory/Function/ConvergenceInDistribution.lean Modified Mathlib/MeasureTheory/Function/Jacobian.lean Modified Mathlib/MeasureTheory/Function/L1Space/AEEqFun.lean Modified Mathlib/MeasureTheory/Function/L1Space/HasFiniteIntegral.lean Modified Mathlib/MeasureTheory/Function/L1Space/Integrable.lean Modified Mathlib/MeasureTheory/Function/LpSeminorm/Basic.lean Modified Mathlib/MeasureTheory/Function/LpSeminorm/TriangleInequality.lean Modified Mathlib/MeasureTheory/Integral/Average.lean Modified Mathlib/MeasureTheory/Integral/Bochner/Basic.lean Modified Mathlib/MeasureTheory/Integral/Bochner/Set.lean Modified Mathlib/MeasureTheory/Integral/CircleIntegral.lean Modified Mathlib/MeasureTheory/Integral/DivergenceTheorem.lean Modified Mathlib/MeasureTheory/Integral/Gamma.lean Modified Mathlib/MeasureTheory/Integral/IntegrableOn.lean Modified Mathlib/MeasureTheory/Integral/IntervalIntegral/Basic.lean Modified Mathlib/MeasureTheory/Integral/IntervalIntegral/LebesgueDifferentiationThm.lean Modified Mathlib/MeasureTheory/Integral/IntervalIntegral/Slope.lean Modified Mathlib/MeasureTheory/Integral/IntervalIntegral/TrapezoidalRule.lean Modified Mathlib/MeasureTheory/Integral/MeanInequalities.lean Modified Mathlib/MeasureTheory/Integral/PeakFunction.lean Modified Mathlib/MeasureTheory/Measure/AddContent.lean Modified Mathlib/MeasureTheory/Measure/CharacteristicFunction.lean Modified Mathlib/MeasureTheory/Measure/FiniteMeasure.lean Modified Mathlib/MeasureTheory/Measure/Haar/Basic.lean Modified Mathlib/MeasureTheory/Measure/Haar/InnerProductSpace.lean Modified Mathlib/MeasureTheory/Measure/Haar/NormedSpace.lean Modified Mathlib/MeasureTheory/Measure/Haar/Unique.lean Modified Mathlib/MeasureTheory/Measure/Hausdorff.lean Modified Mathlib/MeasureTheory/Measure/Lebesgue/Basic.lean Modified Mathlib/MeasureTheory/Measure/MeasureSpace.lean Modified Mathlib/MeasureTheory/Measure/Portmanteau.lean Modified Mathlib/MeasureTheory/Measure/Restrict.lean Modified Mathlib/MeasureTheory/Measure/Stieltjes.lean Modified Mathlib/MeasureTheory/Measure/Tight.lean Modified Mathlib/MeasureTheory/SetSemiring.lean Modified Mathlib/MeasureTheory/VectorMeasure/Basic.lean Modified Mathlib/MeasureTheory/VectorMeasure/BoundedVariation.lean Modified Mathlib/ModelTheory/Algebra/Ring/Basic.lean Modified Mathlib/ModelTheory/Definability.lean Modified Mathlib/ModelTheory/Order.lean Modified Mathlib/ModelTheory/Types.lean Modified Mathlib/NumberTheory/ArithmeticFunction/VonMangoldt.lean Modified Mathlib/NumberTheory/Chebyshev.lean Modified Mathlib/NumberTheory/Cyclotomic/Basic.lean Modified Mathlib/NumberTheory/Cyclotomic/PrimitiveRoots.lean Modified Mathlib/NumberTheory/FLT/Three.lean Modified Mathlib/NumberTheory/Harmonic/ZetaAsymp.lean Modified Mathlib/NumberTheory/LSeries/Convolution.lean Modified Mathlib/NumberTheory/LSeries/Deriv.lean Modified Mathlib/NumberTheory/LSeries/DirichletContinuation.lean Modified Mathlib/NumberTheory/LSeries/HurwitzZetaEven.lean Modified Mathlib/NumberTheory/LSeries/HurwitzZetaOdd.lean Modified Mathlib/NumberTheory/LSeries/MellinEqDirichlet.lean Modified Mathlib/NumberTheory/LSeries/SumCoeff.lean Modified Mathlib/NumberTheory/LSeries/ZMod.lean Modified Mathlib/NumberTheory/Modular.lean Modified Mathlib/NumberTheory/ModularForms/Basic.lean Modified Mathlib/NumberTheory/ModularForms/BoundedAtCusp.lean Modified Mathlib/NumberTheory/ModularForms/Cusps.lean Modified Mathlib/NumberTheory/ModularForms/EisensteinSeries/Summable.lean Modified Mathlib/NumberTheory/ModularForms/Identities.lean Modified Mathlib/NumberTheory/ModularForms/JacobiTheta/TwoVariable.lean Modified Mathlib/NumberTheory/ModularForms/LevelOne.lean Modified Mathlib/NumberTheory/ModularForms/Petersson.lean Modified Mathlib/NumberTheory/ModularForms/QExpansion.lean Modified Mathlib/NumberTheory/ModularForms/SlashActions.lean Modified Mathlib/NumberTheory/ModularForms/SlashInvariantForms.lean Modified Mathlib/NumberTheory/Multiplicity.lean Modified Mathlib/NumberTheory/NumberField/CMField.lean Modified Mathlib/NumberTheory/NumberField/CanonicalEmbedding/Basic.lean Modified Mathlib/NumberTheory/NumberField/CanonicalEmbedding/ConvexBody.lean Modified Mathlib/NumberTheory/NumberField/CanonicalEmbedding/NormLeOne.lean Modified Mathlib/NumberTheory/NumberField/Cyclotomic/Ideal.lean Modified Mathlib/NumberTheory/NumberField/FinitePlaces.lean Modified Mathlib/NumberTheory/NumberField/House.lean Modified Mathlib/NumberTheory/NumberField/Ideal/KummerDedekind.lean Modified Mathlib/NumberTheory/NumberField/InfinitePlace/Basic.lean Modified Mathlib/NumberTheory/NumberField/InfinitePlace/TotallyRealComplex.lean Modified Mathlib/NumberTheory/NumberField/ProductFormula.lean Modified Mathlib/NumberTheory/NumberField/Units/DirichletTheorem.lean Modified Mathlib/NumberTheory/NumberField/Units/Regulator.lean Modified Mathlib/NumberTheory/Ostrowski.lean Modified Mathlib/NumberTheory/Padics/MahlerBasis.lean Modified Mathlib/NumberTheory/Padics/PadicNumbers.lean Modified Mathlib/NumberTheory/Padics/PadicVal/Basic.lean Modified Mathlib/NumberTheory/Padics/PadicVal/Defs.lean Modified Mathlib/NumberTheory/TsumDivisorsAntidiagonal.lean Modified Mathlib/NumberTheory/ZetaValues.lean Modified Mathlib/Order/Birkhoff.lean Modified Mathlib/Order/Height.lean Modified Mathlib/Order/KrullDimension.lean Modified Mathlib/Order/PrimeSeparator.lean Modified Mathlib/Order/SuccPred/Tree.lean Modified Mathlib/Probability/Distributions/Cauchy.lean Modified Mathlib/Probability/Distributions/Exponential.lean Modified Mathlib/Probability/Distributions/Fernique.lean Modified Mathlib/Probability/Distributions/Gaussian/HasGaussianLaw/Independence.lean Modified Mathlib/Probability/Distributions/Gaussian/IsGaussianProcess/Basic.lean Modified Mathlib/Probability/Distributions/Gaussian/Real.lean Modified Mathlib/Probability/Distributions/Pareto.lean Modified Mathlib/Probability/Distributions/SetBernoulli.lean Modified Mathlib/Probability/Distributions/Uniform.lean Modified Mathlib/Probability/Independence/Basic.lean Modified Mathlib/Probability/Independence/BoundedContinuousFunction.lean Modified Mathlib/Probability/Independence/Kernel/IndepFun.lean Modified Mathlib/Probability/Independence/Process.lean Modified Mathlib/Probability/Kernel/IonescuTulcea/Traj.lean Modified Mathlib/Probability/Kernel/RadonNikodym.lean Modified Mathlib/Probability/Martingale/Basic.lean Modified Mathlib/Probability/Martingale/BorelCantelli.lean Modified Mathlib/Probability/Martingale/Upcrossing.lean Modified Mathlib/Probability/Moments/ComplexMGF.lean Modified Mathlib/Probability/Moments/CovarianceBilinDual.lean Modified Mathlib/Probability/Moments/IntegrableExpMul.lean Modified Mathlib/Probability/Moments/MGFAnalytic.lean Modified Mathlib/Probability/Moments/SubGaussian.lean Modified Mathlib/Probability/Moments/Variance.lean Modified Mathlib/Probability/ProbabilityMassFunction/Constructions.lean Modified Mathlib/Probability/Process/Stopping.lean Modified Mathlib/Probability/ProductMeasure.lean Modified Mathlib/Probability/StrongLaw.lean Modified Mathlib/RepresentationTheory/Basic.lean Modified Mathlib/RepresentationTheory/Homological/GroupCohomology/Functoriality.lean Modified Mathlib/RepresentationTheory/Homological/GroupHomology/LowDegree.lean Modified Mathlib/RepresentationTheory/Rep.lean Modified Mathlib/RingTheory/AdicCompletion/AsTensorProduct.lean Modified Mathlib/RingTheory/Binomial.lean Modified Mathlib/RingTheory/DedekindDomain/AdicValuation.lean Modified Mathlib/RingTheory/DiscreteValuationRing/Basic.lean Modified Mathlib/RingTheory/HahnSeries/HahnEmbedding.lean Modified Mathlib/RingTheory/Ideal/Height.lean Modified Mathlib/RingTheory/Ideal/KrullsHeightTheorem.lean Modified Mathlib/RingTheory/Ideal/Pure.lean Modified Mathlib/RingTheory/KrullDimension/Regular.lean Modified Mathlib/RingTheory/LaurentSeries.lean Modified Mathlib/RingTheory/Length.lean Modified Mathlib/RingTheory/LocalProperties/Injective.lean Modified Mathlib/RingTheory/LocalProperties/ProjectiveDimension.lean Modified Mathlib/RingTheory/Localization/Integral.lean Modified Mathlib/RingTheory/Morita/Matrix.lean Modified Mathlib/RingTheory/Multiplicity.lean Modified Mathlib/RingTheory/MvPowerSeries/Expand.lean Modified Mathlib/RingTheory/MvPowerSeries/Order.lean Modified Mathlib/RingTheory/MvPowerSeries/Substitution.lean Modified Mathlib/RingTheory/PicardGroup.lean Modified Mathlib/RingTheory/Polynomial/Cyclotomic/Eval.lean Modified Mathlib/RingTheory/PowerSeries/Order.lean Modified Mathlib/RingTheory/PowerSeries/WeierstrassPreparation.lean Modified Mathlib/RingTheory/RingHom/Locally.lean Modified Mathlib/RingTheory/RingHom/StandardSmooth.lean Modified Mathlib/RingTheory/RootsOfUnity/Minpoly.lean Modified Mathlib/RingTheory/SimpleModule/Basic.lean Modified Mathlib/RingTheory/SimpleModule/WedderburnArtin.lean Modified Mathlib/RingTheory/Smooth/Fiber.lean Modified Mathlib/RingTheory/Smooth/IntegralClosure.lean Modified Mathlib/RingTheory/Smooth/StandardSmoothOfFree.lean Modified Mathlib/RingTheory/Support.lean Modified Mathlib/RingTheory/TensorProduct/IncludeLeftSubRight.lean Modified Mathlib/RingTheory/TensorProduct/MonoidAlgebra.lean Modified Mathlib/RingTheory/UniqueFactorizationDomain/Basic.lean Modified Mathlib/RingTheory/UniqueFactorizationDomain/Multiplicity.lean Modified Mathlib/RingTheory/UniqueFactorizationDomain/Nat.lean Modified Mathlib/SetTheory/Cardinal/ENat.lean Modified Mathlib/SetTheory/Cardinal/Ordinal.lean Modified Mathlib/SetTheory/ZFC/Class.lean Modified Mathlib/Tactic/NormNum/Irrational.lean Modified Mathlib/Topology/Algebra/InfiniteSum/ENNReal.lean Modified Mathlib/Topology/CWComplex/Classical/Basic.lean Modified Mathlib/Topology/Category/Profinite/Nobeling/Basic.lean Modified Mathlib/Topology/Category/Profinite/Product.lean Modified Mathlib/Topology/ContinuousMap/Bounded/Basic.lean Modified Mathlib/Topology/ContinuousMap/Bounded/Normed.lean Modified Mathlib/Topology/ContinuousMap/BoundedCompactlySupported.lean Modified Mathlib/Topology/ContinuousMap/CompactlySupported.lean Modified Mathlib/Topology/EMetricSpace/PairReduction.lean Modified Mathlib/Topology/Instances/ENat.lean Modified Mathlib/Topology/MetricSpace/Holder.lean Modified Mathlib/Topology/MetricSpace/Kuratowski.lean Modified Mathlib/Topology/MetricSpace/ThickenedIndicator.lean Modified Mathlib/Topology/Metrizable/Urysohn.lean Modified Mathlib/Topology/Order.lean Modified Mathlib/Topology/Separation/CompletelyRegular.lean Modified Mathlib/Topology/Sheaves/Abelian.lean Modified Mathlib/Topology/TietzeExtension.lean Modified Mathlib/Topology/UrysohnsLemma.lean Modified lakefile.lean 2026-03-02 23:42:46 190bf64 feat(Analysis/SchwartzSpace): post composition with continuous linear map (#35787) ESTIMATED CHANGES Modified Mathlib/Analysis/Distribution/SchwartzSpace/Basic.lean + def SchwartzMap.postcompCLM + theorem SchwartzMap.postcompCLM_apply + theorem SchwartzMap.postcompCLM_postcompCLM 2026-03-02 23:05:43 aaaaf05 fix: `linarith` `splitNe` skips hypotheses without `LinearOrder` (#35990) When using `linarith` with `splitNe := true`, the tactic would fail with "failed to synthesize LinearOrder V" if any `≠` hypothesis existed on a type without a `LinearOrder` instance (like `AddCommGroup`). With this PR it just skips those hypotheses and processes only the ones it can actually split. Fixes #29963 ESTIMATED CHANGES Modified Mathlib/Tactic/Linarith/Preprocessing.lean Modified MathlibTest/Linarith/Basic.lean 2026-03-02 23:05:42 98be3dc feat(Algebra/Homology): compatibilities for homology functors (#35938) We add compatibility lemmas for the comparison of the homology functors on the categories of cochain complexes, the homotopy category or the derived category. ESTIMATED CHANGES Modified Mathlib/Algebra/Homology/DerivedCategory/HomologySequence.lean + theorem DerivedCategory.homologyFunctorFactors_hom_naturality + theorem DerivedCategory.homologyFunctorFactorsh_hom_app_quotient_obj + theorem DerivedCategory.homologyFunctorFactorsh_inv_app_quotient_obj + theorem DerivedCategory.shiftMap_homologyFunctor_map_Q + theorem DerivedCategory.shiftMap_homologyFunctor_map_Qh + theorem DerivedCategory.shift_homologyFunctor Modified Mathlib/Algebra/Homology/HomotopyCategory/ShiftSequence.lean Modified Mathlib/Algebra/Homology/Localization.lean + theorem HomologicalComplexUpToQuasiIso.homologyFunctorFactorsh_hom_app_quotient_obj + theorem HomologicalComplexUpToQuasiIso.homologyFunctorFactorsh_inv_app_quotient_obj 2026-03-02 23:05:40 b1fce7d feat(Algebra/Homology): lemmas and instances for truncation of cochain complexes (#35936) ESTIMATED CHANGES Modified Mathlib/Algebra/Homology/Embedding/CochainComplex.lean + theorem CochainComplex.quasiIsoAt_ιTruncLE + theorem CochainComplex.quasiIsoAt_πTruncGE 2026-03-02 23:05:39 e34f927 chore(NumberTheory/ModularForms): golf using custom elaborators (#35730) The differential geometry directory gained some custom elaborators, which allow omitting the model with corners in many cases. For example, instead of writing `MDifferentiable I J f`, you can now write `MDiff f` (and I and J are usually inferred from the domain and co-domain of f --- if not, an error message will tell you why not). Use these elaborators to shorten differentiability statements. ESTIMATED CHANGES Modified Mathlib/NumberTheory/ModularForms/Basic.lean +/- theorem MDifferentiable.slash Modified Mathlib/NumberTheory/ModularForms/EisensteinSeries/MDifferentiable.lean Modified Mathlib/NumberTheory/ModularForms/JacobiTheta/Manifold.lean +/- theorem mdifferentiable_jacobiTheta 2026-03-02 23:05:37 f10bf35 refactor(RingTheory/Localization/Integral): Simplify `integerNormalization` (#34877) This PR does the following: - Add two lemmas `exists_integer_polynomial_multiple` and `exists_integer_polynomial_multiple_and_support_subset` which are easy consequence of `exists_integer_multiple` and `exists_support_eq_of_mem_lifts`, using the `Polynomial.isLocalization` instance. - Simplify the definition of `integerNormalization` to directly choose an integer multiple using these lemmas, without having to construct its coefficients by hand. - As a consequence, deprecate `coeffIntegerNormalization`, `coeffIntegerNormalization_of_coeff_zero`, `coeffIntegerNormalization_mem_support` and `integerNormalization_coeff` which were only used in that construction. - Rename `integerNormalization_map_to_map` to `integerNormalization_spec` (also providing a deprecated alias) and make the statement include `(integerNormalization M p).support ⊆ p.support`. - Simplify the proofs of `integerNormalization_spec` and `integerNormalization_eq_zero_iff` using the new definition. ESTIMATED CHANGES Modified Mathlib/RingTheory/Algebraic/StronglyTranscendental.lean Modified Mathlib/RingTheory/LocalRing/ResidueField/Polynomial.lean Modified Mathlib/RingTheory/Localization/Integral.lean + theorem IsLocalization.integerNormalization_support Modified Mathlib/RingTheory/Polynomial/GaussLemma.lean Modified Mathlib/RingTheory/ZariskisMainTheorem.lean 2026-03-02 21:29:04 dc43f26 chore: fix defeq abuse in Boolean Algebra instance on Set alpha (#35959) ESTIMATED CHANGES Modified Mathlib/Order/BooleanAlgebra/Set.lean Modified Mathlib/Topology/MetricSpace/PiNat.lean 2026-03-02 21:29:02 630ea42 feat: weaken assumptions for integration by parts (#35870) * Previously you had to prove that both functions are differentiable everywhere. Now you only have to show that each function is differentiable on the topological support of the other function. * This is useful when one of the functions has compact support / a test function. Then the conditions on the other function can be weakened. * This is used for Sobolev spaces. * Most hypotheses to IBP are straightforwardly weakened, by adding an additional assumption. * A few hypotheses are reformulated from `Differentiable ℝ f` to `∀ x ∈ tsupport g, DifferentiableAt ℝ f x`. * Also add some straightforward lemmas about the interaction of `(t)support` and `deriv`. These are immediate analogues of lemmas for `fderiv`. ESTIMATED CHANGES Modified Mathlib/Analysis/Calculus/Deriv/Mul.lean +/- theorem ContinuousLinearMap.deriv_of_bilinear +/- theorem ContinuousLinearMap.hasDerivAt_of_bilinear Modified Mathlib/Analysis/Calculus/Deriv/Support.lean + theorem HasDerivAt.of_notMem_tsupport + theorem HasDerivWithinAt.of_notMem_tsupport + theorem HasStrictDerivAt.of_notMem_tsupport + theorem deriv_of_notMem_tsupport +/- theorem support_deriv_subset + theorem tsupport_deriv_subset Modified Mathlib/Analysis/Calculus/LineDeriv/IntegrationByParts.lean Modified Mathlib/Analysis/Distribution/SchwartzSpace/Deriv.lean Modified Mathlib/Analysis/Fourier/FourierTransformDeriv.lean Modified Mathlib/MeasureTheory/Integral/IntegralEqImproper.lean 2026-03-02 21:29:00 5eb8f13 feat(LinearAlgebra/AffineSpace): iff lemma about the inverse of a homothety (#35837) Make it easier to rewrite ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/AffineSpace/AffineMap.lean + theorem AffineMap.homothety_eq_iff_of_mul_eq_one 2026-03-02 19:44:49 94c81ed chore: Make {Preorder,PartialOrder}.mk abbrevs (#35995) ESTIMATED CHANGES Modified Mathlib/Order/Defs/PartialOrder.lean - def PartialOrder.mk' - def Preorder.mk' 2026-03-02 19:44:47 fc35a05 chore: fix naming in `WithVal` (#35972) Minor cleanup post #34049 ESTIMATED CHANGES Modified Mathlib/NumberTheory/Padics/WithVal.lean Modified Mathlib/RingTheory/LaurentSeries.lean Modified Mathlib/Topology/Algebra/Valued/WithVal.lean - theorem WithVal.apply_equiv + theorem WithVal.apply_ofVal - theorem WithVal.apply_symm_equiv + theorem WithVal.valued_toVal 2026-03-02 19:44:45 207001c feat(NumberTheory/ArithmeticFunction/Defs): define the Dirichlet inverse of an arithmetic function (#35810) This PR defines the Dirichlet inverse of an arithmetic function. ESTIMATED CHANGES Modified Mathlib/NumberTheory/ArithmeticFunction/Defs.lean + def ArithmeticFunction.dirichletInverse + def ArithmeticFunction.dirichletInverseFun + theorem ArithmeticFunction.dirichletInverseFun_apply_ne + theorem ArithmeticFunction.dirichletInverseFun_apply_one + theorem ArithmeticFunction.dirichletInverseFun_apply_zero + theorem ArithmeticFunction.dirichletInverse_mul_self + theorem ArithmeticFunction.isUnit_iff_isUnit_apply_one + theorem ArithmeticFunction.self_mul_dirichletInverse 2026-03-02 19:44:43 20ac8f0 chore(SmoothSection): golf using custom elaborators (#35728) ESTIMATED CHANGES Modified Mathlib/Geometry/Manifold/VectorBundle/SmoothSection.lean +/- theorem ContMDiff.add_section +/- theorem ContMDiff.const_smul_section +/- theorem ContMDiff.neg_section +/- theorem ContMDiff.smul_section +/- theorem ContMDiff.sub_section +/- theorem ContMDiff.sum_section +/- theorem ContMDiffAt.add_section +/- theorem ContMDiffAt.const_smul_section +/- theorem ContMDiffAt.neg_section +/- theorem ContMDiffAt.smul_section +/- theorem ContMDiffAt.sub_section +/- theorem ContMDiffAt.sum_section +/- theorem ContMDiffOn.add_section +/- theorem ContMDiffOn.const_smul_section +/- theorem ContMDiffOn.neg_section +/- theorem ContMDiffOn.smul_section +/- theorem ContMDiffOn.smul_section_of_tsupport +/- theorem ContMDiffOn.sub_section +/- theorem ContMDiffSection.coeFn_mk +/- theorem ContMDiffWithinAt.add_section +/- theorem ContMDiffWithinAt.smul_section +/- theorem ContMDiffWithinAt.sub_section 2026-03-02 19:44:41 dbb2021 feat: Liouville Theorem for harmonic functions (#35640) Implement Liouville's theorem for harmonic functions on the complex plane. This material is used in [Project VD](https://github.com/kebekus/ProjectVD), formalizing Value Distribution Theory for meromorphic functions on the complex plane. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Analysis/Complex/Harmonic/Analytic.lean + theorem InnerProductSpace.harmonic_is_realOfHolomorphic_univ Added Mathlib/Analysis/Complex/Harmonic/Liouville.lean + theorem InnerProductSpace.bounded_harmonic_on_complex_plane_is_constant Modified Mathlib/Analysis/Complex/HasPrimitives.lean + theorem Complex.IsConservativeOn.isExactOn_univ + theorem Complex.IsExactOn.with_val_at + theorem Differentiable.isExactOn_univ Modified Mathlib/Analysis/InnerProductSpace/Harmonic/Basic.lean + theorem InnerProductSpace.HarmonicOnNhd.contDiffOn Modified Mathlib/Analysis/SpecialFunctions/Complex/Log.lean + theorem Complex.re_eq_re_of_cexp_eq_cexp 2026-03-02 18:03:42 e672f34 feat(GroupTheory): explicit isomorphism between infinite cyclic groups and Z (#35969) ESTIMATED CHANGES Modified Mathlib/GroupTheory/SpecificGroups/Cyclic.lean + theorem intEquivOfZMultiplesEqTop_symm_apply_zsmul + theorem intEquivOfZMultiplesEqTop_symm_self + theorem intEquivOfZPowersEqTop_symm_self + theorem mulintEquivOfZPowersEqTop_strictAnti + theorem mulintEquivOfZPowersEqTop_strictMono + theorem mulintEquivOfZPowersEqTop_symm_apply_zpow + theorem zmultiplesHom_bijective + theorem zpowersHom_bijective 2026-03-02 18:03:40 48e53ad feat(Algebra/Star/StarProjection): add `IsStarProjection.map` (#35898) and attribute `IsStarProjection.{isIdempotentElem, isSelfAdjoint}` with `aesop` and `grind`. ESTIMATED CHANGES Modified Mathlib/Algebra/Star/StarProjection.lean 2026-03-02 18:03:38 1423e7a doc(misc): fix typos (#35856) The typos were identified by `PyCharm`'s proofreading inspection. ESTIMATED CHANGES Modified .github/workflows/bors.yml Modified Archive/MiuLanguage/DecisionNec.lean Modified Archive/MiuLanguage/DecisionSuf.lean Modified Cache/IO.lean Modified Counterexamples/PeanoCurve.lean Modified Mathlib/Tactic/Attr/Register.lean Modified Mathlib/Tactic/ComputeAsymptotics/Multiseries/Corecursion.lean Modified Mathlib/Tactic/DepRewrite.lean Modified Mathlib/Tactic/FunProp.lean Modified Mathlib/Tactic/FunProp/Elab.lean Modified Mathlib/Tactic/Linarith/Preprocessing.lean Modified Mathlib/Tactic/Order/CollectFacts.lean Modified Mathlib/Tactic/Translate/Core.lean Modified MathlibTest/CategoryTheory/Reassoc.lean Modified MathlibTest/LintStyle.lean Modified MathlibTest/fun_prop_dev.lean Modified MathlibTest/grind/lint.lean Modified MathlibTest/grind/pairwise_disjoint.lean Modified docs/1000.yaml Modified scripts/yaml_check.py 2026-03-02 18:03:36 e4c544d chore(Manifold/VectorBundle/LieBracket): golf using custom elaborators (#35729) ESTIMATED CHANGES Modified Mathlib/Geometry/Manifold/VectorField/LieBracket.lean +/- theorem VectorField.mlieBracket_add_left +/- theorem VectorField.mlieBracket_add_right +/- theorem VectorField.mlieBracket_const_smul_left +/- theorem VectorField.mlieBracket_const_smul_right 2026-03-02 18:03:35 796f22e doc: capitalize the proper name Kan (#35321) We capitalize the surname of Daniel Kan. This makes our spelling consistent with the one used by nLab and Wikipedia: - [nLab - Kan extension](https://ncatlab.org/nlab/show/Kan+extension) - [nLab - Kan lift](https://ncatlab.org/nlab/show/Kan+lift) - https://en.wikipedia.org/wiki/Kan_extension ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Bicategory/Kan/HasKan.lean Modified Mathlib/CategoryTheory/Monoidal/DayConvolution.lean Modified Mathlib/CategoryTheory/Monoidal/ExternalProduct/KanExtension.lean Modified Mathlib/Topology/Sheaves/Alexandrov.lean 2026-03-02 18:03:33 453897b feat(MeasureTheory): tightness of the range of a sequence (#26292) * `isTightMeasureSet_range_iff_tendsto_limsup_measure_norm_gt`: in a proper normed group, the range of a sequence of measures `μ : ℕ → Measure E` is tight if and only if the function `r : ℝ ↦ limsup (fun n ↦ μ n {x | r < ‖x‖}) atTop` tends to `0` at infinity. * `isTightMeasureSet_range_iff_tendsto_limsup_inner`: in a finite-dimensional inner product space, the range of a sequence of measures `μ : ℕ → Measure E` is tight if and only if the function `r : ℝ ↦ limsup (fun n ↦ μ n {x | r < ‖⟪y, x⟫_𝕜‖}) atTop` tends to `0` at infinity for all `y`. ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Measure/TightNormed.lean + theorem MeasureTheory.isTightMeasureSet_range_iff_tendsto_limsup_inner + theorem MeasureTheory.isTightMeasureSet_range_iff_tendsto_limsup_measure_norm_gt + theorem MeasureTheory.isTightMeasureSet_range_of_tendsto_limsup_inner + theorem MeasureTheory.isTightMeasureSet_range_of_tendsto_limsup_inner_of_norm_eq_one + theorem MeasureTheory.isTightMeasureSet_range_of_tendsto_limsup_measure_norm_gt Modified Mathlib/Topology/Order/LiminfLimsup.lean + theorem Nat.tendsto_iSup_of_tendsto_limsup + theorem tendsto_iSup_of_tendsto_limsup 2026-03-02 16:30:34 b0a8bdb feat(CategoryTheory/Monoidal/Grp_): zero morphisms in `Grp C` (#35982) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Monoidal/Cartesian/Mon_.lean Modified Mathlib/CategoryTheory/Monoidal/Grp_.lean 2026-03-02 16:30:32 7969372 chore(RepresentationTheory/Basic): generalise to Semiring (#35981) ESTIMATED CHANGES Modified Mathlib/RepresentationTheory/Basic.lean +/- def Representation.asModule +/- def Representation.asModuleEquiv 2026-03-02 16:30:30 04cca15 feat(NumberTheory/Height): formula for logHeight₁ (#35919) This adds the formula for the logarithmic height of a field element as the sum of the positive parts of the logaithms of its various absolute values, plus a version specific for number fields. We also add an API lemma `Real.log_finprod` that is needed for this. ESTIMATED CHANGES Modified Mathlib/Analysis/SpecialFunctions/Log/Basic.lean + theorem Real.log_finprod Modified Mathlib/NumberTheory/Height/Basic.lean + theorem Height.logHeight₁_eq Modified Mathlib/NumberTheory/Height/NumberField.lean + theorem NumberField.logHeight₁_eq + theorem NumberField.sum_archAbsVal_eq + theorem NumberField.sum_nonarchAbsVal_eq 2026-03-02 16:30:28 1477c66 feat(GroupTheory/Descent): add abstract descent theorem (#35918) This PR adds three consecutively more specialized versions of the "descent theorem", which says that if a group is equipped with a height function satisfying certain axioms, then the group is finitely-generated. The final version is the form suitable to be used in a proof of the [Mordell-Weil Theorem](https://en.wikipedia.org/wiki/Mordell%E2%80%93Weil_theorem). ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/GroupTheory/Descent.lean + theorem CommGroup.fg_of_descent' + theorem CommGroup.fg_of_descent + theorem Group.fg_of_descent 2026-03-02 16:30:26 5cae2dd chore: make CompleteLattice helpers instance reducible (#35903) These functions are used to help define instances so should be implicit_reducible to avoid diamonds without requiring every user to override the PartialOrder and InfSet parents. ESTIMATED CHANGES Modified Mathlib/Order/CompleteLattice/Defs.lean 2026-03-02 16:30:24 812c2d6 ci: Decouple workflow scripts into the mathlib-ci repository (#35823) This PR migrates CI workflows to run trusted automation scripts from `leanprover-community/mathlib-ci` instead of using scripts from this repository. The goal is to decouple script evolution from mathlib4 workflow files. - Workflows using scripts check out `leanprover-community/mathlib-ci` and call a composite action at that exports both `checkout_path` and `scripts_dir` as env variables (`CI_CHECKOUT_PATH`, `CI_SCRIPTS_DIR` by default). - Updates affected workflows to use that action and call scripts from `${CI_SCRIPTS_DIR}` across `pr_summary`, reporting, maintainer, nightly, verification, and zulip. - Includes a workflow to try to prevent broken references to scripts by scanning usages and cross referencing with the contents of the repository - Updates docs Prepared with Codex ESTIMATED CHANGES Modified .github/workflows/PR_summary.yml Modified .github/workflows/build_template.yml Modified .github/workflows/ci_dev.yml Modified .github/workflows/commit_verification.yml Modified .github/workflows/latest_import.yml Modified .github/workflows/long_file_report.yml Modified .github/workflows/maintainer_bors.yml Modified .github/workflows/maintainer_bors_wf_run.yml Modified .github/workflows/maintainer_merge.yml Modified .github/workflows/maintainer_merge_wf_run.yml Modified .github/workflows/nightly-regression-report.yml Modified .github/workflows/nightly_bump_and_merge.yml Modified .github/workflows/nightly_detect_failure.yml Modified .github/workflows/technical_debt_metrics.yml Modified .github/workflows/update_dependencies_zulip.yml Added .github/workflows/validate_mathlib_ci_paths.yml Modified .github/workflows/weekly-lints.yml Modified .github/workflows/zulip_emoji_ci_status.yaml Modified .github/workflows/zulip_emoji_closed_pr.yaml Modified .github/workflows/zulip_emoji_labelling.yaml Modified .github/workflows/zulip_emoji_merge_delegate.yaml Modified scripts/README.md Deleted scripts/count-trans-deps.py Deleted scripts/create-adaptation-pr.sh Deleted scripts/declarations_diff.sh Deleted scripts/get_tlabel.sh Deleted scripts/import-graph-report.py Deleted scripts/import_trans_difference.sh Deleted scripts/late_importers.sh Deleted scripts/lean-pr-testing-comments.sh Deleted scripts/long_file_report.sh Deleted scripts/maintainer_merge_message.sh Deleted scripts/merge-lean-testing-pr.sh Deleted scripts/parse_lake_manifest_changes.py Deleted scripts/technical-debt-metrics.sh Deleted scripts/update_PR_comment.sh Deleted scripts/verify_commits.sh Deleted scripts/verify_commits_summary.sh Deleted scripts/zulip_build_report.sh Deleted scripts/zulip_emoji_reactions.py 2026-03-02 16:30:22 827d134 chore: golf using `simp` (#35726) The goal of this PR is to decrease the number of times lemmas are called explicitly (replacing calls to lemmas with calls to tactics). Any decrease in compilation time is a welcome side effect, although it is not a primary objective. Trace profiling results (differences <30 ms considered measurement noise): * `IsScalarTower.adjoin_range_toAlgHom`: 106 ms before, 41 ms after 🎉 * `ChainComplex.mkAux_eq_shortComplex_mk_d_comp_d`: unchanged 🎉 * `QuadraticAlgebra.algebraMap_dvd_iff_dvd`: 91 ms before, 34 ms after 🎉 * `orthonormal_fourier`: unchanged 🎉 * `Real.tendsto_euler_sin_prod`: 712 ms before, 96 ms after 🎉 * `CategoryTheory.CatCommSq.vInv_vInv`: 224 ms before, 120 ms after 🎉 * `CategoryTheory.Limits.ι_colimitLimitToLimitColimit_π_apply`: unchanged 🎉 * `CategoryTheory.MonObj.one_associator`: 96 ms before, 54 ms after 🎉 * `SimpleGraph.chromaticNumber_ne_top_iff_exists`: unchanged 🎉 * `Multiset.antidiagonal_cons`: 104 ms before, <30 ms after 🎉 * `Nat.getLast_digit_ne_zero`: 153 ms before, 89 ms after 🎉 * `QPF.suppPreservation_iff_liftpPreservation`: unchanged 🎉 * `List.Vector.reverse_get_zero`: 128 ms before, 46 ms after 🎉 * `ZMod.neg_eq_self_iff`: 166 ms before, 93 ms after 🎉 * `alternatingGroup.kleinFour_eq_commutator`: unchanged 🎉 * `Matrix.det_succ_row`: 647 ms before, 328 ms after 🎉 * `TensorPower.mul_one`: 483 ms before, 298 ms after 🎉 * `NumberField.mixedEmbedding.convexBodySumFun_eq_zero_iff`: unchanged 🎉 * `Real.coe_fib_eq'`: 233 ms before, 159 ms after 🎉 * `Zsqrtd.intCast_dvd_intCast`: unchanged 🎉 * `ProbabilityTheory.gaussianReal_map_const_mul`: 583 ms before, 198 ms after 🎉 * `ProbabilityTheory.gaussianReal_map_linearMap`: unchanged 🎉 * `Finset.univ_of_card_le_three`: 194 ms before, 151 ms after 🎉 * `IsFractionRing.isUnit_den_iff`: 400 ms before, 137 ms after 🎉 * `MatrixEquivTensor.right_inv`: 329 ms before, 259 ms after 🎉 * `Algebra.norm_algebraMap_of_basis`: unchanged 🎉 * `Polynomial.content_X_mul`: unchanged 🎉 * `Ordinal.nfp_mul_one`: unchanged 🎉 * `Ordinal.nfp_mul_zero`: unchanged 🎉 * `unique_topology_of_t2`: unchanged 🎉 * `TopCat.binaryCofan_isColimit_iff`: 3138 ms before, 1214 ms after 🎉 * `ContinuousMap.sup_mem_closed_subalgebra`: unchanged 🎉 * `OpenPartialHomeomorph.subtypeRestr_symm_eqOn_of_le`: 108 ms before, 45 ms after 🎉 Profiled using `set_option trace.profiler true in`. This PR is batched under the following guidelines: * Up to ~5 changed files per PR * Up to ~25 changed declarations per PR * Up to ~100 changed lines per PR ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/Subalgebra/Tower.lean Modified Mathlib/Algebra/Homology/HomologicalComplex.lean Modified Mathlib/Algebra/QuadraticAlgebra/Defs.lean Modified Mathlib/Analysis/Fourier/AddCircle.lean Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/EulerSineProd.lean Modified Mathlib/CategoryTheory/CatCommSq.lean Modified Mathlib/CategoryTheory/Limits/ColimitLimit.lean Modified Mathlib/CategoryTheory/Monoidal/Mon_.lean Modified Mathlib/Combinatorics/SimpleGraph/Coloring.lean Modified Mathlib/Data/Multiset/Antidiagonal.lean Modified Mathlib/Data/Nat/Digits/Lemmas.lean Modified Mathlib/Data/QPF/Univariate/Basic.lean Modified Mathlib/Data/Vector/Basic.lean Modified Mathlib/Data/ZMod/Basic.lean Modified Mathlib/GroupTheory/SpecificGroups/Alternating/KleinFour.lean Modified Mathlib/LinearAlgebra/Matrix/Determinant/Basic.lean Modified Mathlib/LinearAlgebra/TensorPower/Basic.lean Modified Mathlib/NumberTheory/NumberField/CanonicalEmbedding/ConvexBody.lean Modified Mathlib/NumberTheory/Real/GoldenRatio.lean Modified Mathlib/NumberTheory/Zsqrtd/Basic.lean Modified Mathlib/Probability/Distributions/Gaussian/Real.lean Modified Mathlib/RingTheory/Fintype.lean Modified Mathlib/RingTheory/Localization/NumDen.lean Modified Mathlib/RingTheory/MatrixAlgebra.lean Modified Mathlib/RingTheory/Norm/Defs.lean Modified Mathlib/RingTheory/Polynomial/Content.lean Modified Mathlib/SetTheory/Ordinal/FixedPoint.lean Modified Mathlib/Topology/Algebra/Module/FiniteDimension.lean Modified Mathlib/Topology/Category/TopCat/Limits/Products.lean Modified Mathlib/Topology/ContinuousMap/StoneWeierstrass.lean Modified Mathlib/Topology/OpenPartialHomeomorph/Constructions.lean 2026-03-02 16:30:20 dbc948b chore(Topology): fix indentation in markdown lists (#35437) Make sure to also indent subsequent lines of an item: this is required by the markdown specification (though not doc-gen), it expresses intent more clearly, and makes it easier to catch accidental misindentations. ESTIMATED CHANGES Modified Mathlib/Topology/Algebra/AsymptoticCone.lean Modified Mathlib/Topology/Algebra/ConstMulAction.lean Modified Mathlib/Topology/Algebra/ContinuousAffineEquiv.lean Modified Mathlib/Topology/Algebra/Module/PointwiseConvergence.lean Modified Mathlib/Topology/Algebra/RestrictedProduct/TopologicalSpace.lean Modified Mathlib/Topology/Convenient/GeneratedBy.lean Modified Mathlib/Topology/GDelta/Basic.lean Modified Mathlib/Topology/QuasiSeparated.lean Modified Mathlib/Topology/Sheaves/Over.lean 2026-03-02 16:30:19 19d4af9 refactor: use 1-field structure to define the `WithAbs` type synonym (#34230) Following the Zulip threads [here](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/defeq.20abuse.20in.20.60WithLp.60/near/526234806) and [here](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/defeq.20abuse.20in.20.60WithAbs.60.2F.60WithVal.60/with/569663323) and using `WithLp` as a template, we refactor the `WithAbs` type synonym as a 1-field structure. The main benefit being that it prevents defeq abuse. ESTIMATED CHANGES Modified Mathlib/Analysis/AbsoluteValue/Equivalence.lean Modified Mathlib/Analysis/Normed/Field/WithAbs.lean +/- theorem AbsoluteValue.Completion.extensionEmbedding_dist_eq_of_comp +/- theorem AbsoluteValue.Completion.extensionEmbedding_of_comp_coe +/- theorem AbsoluteValue.Completion.isClosedEmbedding_extensionEmbedding_of_comp +/- theorem AbsoluteValue.Completion.isometry_extensionEmbedding_of_comp +/- theorem WithAbs.isUniformInducing_of_comp +/- theorem WithAbs.isometry_of_comp + theorem WithAbs.ofAbs_div + theorem WithAbs.ofAbs_inv +/- theorem WithAbs.pseudoMetricSpace_induced_of_comp +/- theorem WithAbs.tendsto_one_div_one_add_pow_nhds_one + theorem WithAbs.toAbs_div + theorem WithAbs.toAbs_inv +/- theorem WithAbs.uniformSpace_comap_eq_of_comp Modified Mathlib/Analysis/Normed/Ring/WithAbs.lean +/- def WithAbs.algEquiv + theorem WithAbs.algEquiv_apply + theorem WithAbs.algEquiv_symm_apply + def WithAbs.algebraLeft +/- theorem WithAbs.algebraMap_left_apply + theorem WithAbs.algebraMap_left_injective +/- theorem WithAbs.algebraMap_right_apply + theorem WithAbs.algebraMap_right_injective + def WithAbs.congr + theorem WithAbs.congr_apply + theorem WithAbs.congr_refl + theorem WithAbs.congr_symm + theorem WithAbs.congr_symm_apply + theorem WithAbs.congr_trans +/- def WithAbs.equiv - theorem WithAbs.equiv_algebraMap_apply + def WithAbs.linearEquiv + theorem WithAbs.linearEquiv_apply + theorem WithAbs.linearEquiv_symm_apply + def WithAbs.map + theorem WithAbs.map_apply + theorem WithAbs.map_comp + theorem WithAbs.map_id + def WithAbs.moduleLeft - theorem WithAbs.norm_eq_abv + theorem WithAbs.norm_eq_apply_ofAbs + theorem WithAbs.norm_toAbs_eq + theorem WithAbs.ofAbs_add + theorem WithAbs.ofAbs_algebraMap + theorem WithAbs.ofAbs_bijective + theorem WithAbs.ofAbs_eq_zero + theorem WithAbs.ofAbs_injective + theorem WithAbs.ofAbs_mul + theorem WithAbs.ofAbs_neg + theorem WithAbs.ofAbs_one + theorem WithAbs.ofAbs_pow + theorem WithAbs.ofAbs_sub + theorem WithAbs.ofAbs_surjective + theorem WithAbs.ofAbs_toAbs + theorem WithAbs.ofAbs_zero + theorem WithAbs.smul_left_def + theorem WithAbs.smul_right_def + theorem WithAbs.toAbs_add + theorem WithAbs.toAbs_bijective + theorem WithAbs.toAbs_eq_zero + theorem WithAbs.toAbs_injective + theorem WithAbs.toAbs_mul + theorem WithAbs.toAbs_neg + theorem WithAbs.toAbs_ofAbs + theorem WithAbs.toAbs_one + theorem WithAbs.toAbs_pow + theorem WithAbs.toAbs_sub + theorem WithAbs.toAbs_surjective + theorem WithAbs.toAbs_zero + structure WithAbs - def WithAbs Modified Mathlib/NumberTheory/NumberField/InfiniteAdeleRing.lean Modified Mathlib/NumberTheory/NumberField/InfinitePlace/Basic.lean Modified Mathlib/NumberTheory/NumberField/InfinitePlace/Completion.lean +/- theorem NumberField.InfinitePlace.Completion.extensionEmbeddingOfIsReal_coe +/- theorem NumberField.InfinitePlace.Completion.extensionEmbedding_coe 2026-03-02 16:30:16 d7da6fe feat(SetTheory/Ordinal/CantorNormalForm): Evaluate a Finsupp as a CNF (#33840) Used in the CGT repo. ESTIMATED CHANGES Modified Mathlib/SetTheory/Ordinal/Arithmetic.lean Modified Mathlib/SetTheory/Ordinal/CantorNormalForm.lean + theorem Ordinal.CNF.coeff_eq_zero_of_lt + theorem Ordinal.CNF.coeff_eval + theorem Ordinal.CNF.coeff_inj + theorem Ordinal.CNF.coeff_injective + theorem Ordinal.CNF.coeff_of_notMem_CNF - theorem Ordinal.CNF.coeff_of_not_mem_CNF + theorem Ordinal.CNF.coeff_opow_mul_add + def Ordinal.CNF.eval + theorem Ordinal.CNF.eval_add + theorem Ordinal.CNF.eval_coeff + theorem Ordinal.CNF.eval_lt + theorem Ordinal.CNF.eval_single + theorem Ordinal.CNF.eval_single_add' + theorem Ordinal.CNF.eval_single_add + theorem Ordinal.CNF.eval_zero_right - theorem Ordinal.CNF.lt_snd + theorem Ordinal.CNF.snd_pos + theorem Ordinal.CNF.support_coeff 2026-03-02 15:01:15 921b06d refactor(Topology/Sheaves/LocallySurjective): change `isLocallySurjective_iff` (#35983) Change the statement of `isLocallySurjective_iff` so that it gives an equivalent condition more adapted to sheaves on topological spaces, i.e. with a restriction to s smaller open subset instead of along a morphism. ESTIMATED CHANGES Modified Mathlib/Topology/Sheaves/LocallySurjective.lean 2026-03-02 15:01:13 4aec2ac chore: move differential geometry elaborators tests into a separate directory (#35891) ESTIMATED CHANGES Renamed MathlibTest/DifferentialGeometry/NotationAdvanced.lean to MathlibTest/DifferentialGeometry/Notation/Advanced.lean Renamed MathlibTest/DifferentialGeometry/Notation.lean to MathlibTest/DifferentialGeometry/Notation/Basic.lean Renamed MathlibTest/DifferentialGeometry/NotationSphere.lean to MathlibTest/DifferentialGeometry/Notation/Sphere.lean 2026-03-02 15:01:11 46b9dfd chore: delete deprecated modules to end August 2025 (#35873) ESTIMATED CHANGES Modified Archive/Imo/Imo2002Q3.lean Modified Mathlib.lean Deleted Mathlib/Algebra/Order/Module/OrderedSMul.lean - theorem OrderedSMul.mk'' - theorem OrderedSMul.mk' Modified Mathlib/Analysis/Asymptotics/SpecificAsymptotics.lean Deleted Mathlib/Combinatorics/SimpleGraph/Turan.lean Deleted Mathlib/Data/Complex/Cardinality.lean Deleted Mathlib/Data/Complex/Exponential.lean Deleted Mathlib/Data/Complex/ExponentialBounds.lean Deleted Mathlib/Data/Complex/FiniteDimensional.lean Deleted Mathlib/Data/Complex/Norm.lean Deleted Mathlib/Data/Complex/Order.lean Deleted Mathlib/Data/Complex/Trigonometric.lean Deleted Mathlib/Data/Real/Cardinality.lean Deleted Mathlib/Data/Real/Hyperreal.lean Deleted Mathlib/Data/Real/Pi/Bounds.lean Deleted Mathlib/Data/Real/Pi/Irrational.lean Deleted Mathlib/Data/Real/Pi/Leibniz.lean Deleted Mathlib/Data/Real/Pi/Wallis.lean Deleted Mathlib/Data/Seq/Seq.lean 2026-03-02 15:01:08 50cdcb9 chore(AlgebraicGeometry): Remove TODO and fix documentation (#35845) The TODO I had listed is now solved by `infer_instance`. The docstring had an old name for `AlgebraicGeometry.Scheme.isArtinianScheme_Spec` so I updated it. ESTIMATED CHANGES Modified Mathlib/AlgebraicGeometry/Artinian.lean 2026-03-02 15:01:06 e3df8e5 refactor: make `Order.pred_eq_sub_one` a simp lemma (#35742) Sister PR to #35741. ESTIMATED CHANGES Modified Mathlib/Algebra/Order/SuccPred.lean 2026-03-02 15:01:04 80a41a6 feat(CategoryTheory/Triangulated/TStructure): more on `truncLT` and `truncGE` (#35362) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Triangulated/TStructure/Basic.lean Modified Mathlib/CategoryTheory/Triangulated/TStructure/TruncLTGE.lean + theorem CategoryTheory.Triangulated.TStructure.TruncAux.triangleFunctorNatTransOfLE_app_hom₂ + theorem CategoryTheory.Triangulated.TStructure.TruncAux.triangleFunctorNatTransOfLE_refl + theorem CategoryTheory.Triangulated.TStructure.TruncAux.triangleFunctorNatTransOfLE_trans + theorem CategoryTheory.Triangulated.TStructure.from_truncGE_obj_ext + theorem CategoryTheory.Triangulated.TStructure.isGE_iff_isIso_truncGEπ_app + theorem CategoryTheory.Triangulated.TStructure.isGE_iff_isZero_truncLT_obj + theorem CategoryTheory.Triangulated.TStructure.isGE_of_isZero + theorem CategoryTheory.Triangulated.TStructure.isGE_truncGE_obj + theorem CategoryTheory.Triangulated.TStructure.isLE_iff_isIso_truncLTι_app + theorem CategoryTheory.Triangulated.TStructure.isLE_iff_isZero_truncGE_obj + theorem CategoryTheory.Triangulated.TStructure.isLE_of_isZero + theorem CategoryTheory.Triangulated.TStructure.isLE_truncLT_obj + theorem CategoryTheory.Triangulated.TStructure.isZero_truncGE_obj_of_isLE + theorem CategoryTheory.Triangulated.TStructure.isZero_truncLT_obj_of_isGE + theorem CategoryTheory.Triangulated.TStructure.liftTruncLT_aux + theorem CategoryTheory.Triangulated.TStructure.liftTruncLT_ι + theorem CategoryTheory.Triangulated.TStructure.natTransTriangleLTGEOfLE_refl + theorem CategoryTheory.Triangulated.TStructure.natTransTriangleLTGEOfLE_trans + theorem CategoryTheory.Triangulated.TStructure.natTransTruncGEOfLE_refl + theorem CategoryTheory.Triangulated.TStructure.natTransTruncGEOfLE_refl_app + theorem CategoryTheory.Triangulated.TStructure.natTransTruncGEOfLE_trans + theorem CategoryTheory.Triangulated.TStructure.natTransTruncGEOfLE_trans_app + theorem CategoryTheory.Triangulated.TStructure.natTransTruncLTOfLE_refl + theorem CategoryTheory.Triangulated.TStructure.natTransTruncLTOfLE_refl_app + theorem CategoryTheory.Triangulated.TStructure.natTransTruncLTOfLE_trans + theorem CategoryTheory.Triangulated.TStructure.natTransTruncLTOfLE_trans_app + theorem CategoryTheory.Triangulated.TStructure.natTransTruncLTOfLE_ι + theorem CategoryTheory.Triangulated.TStructure.natTransTruncLTOfLE_ι_app + theorem CategoryTheory.Triangulated.TStructure.to_truncLT_obj_ext + theorem CategoryTheory.Triangulated.TStructure.truncGE_map_truncGEπ_app + theorem CategoryTheory.Triangulated.TStructure.truncGEδLT_comp_natTransTruncLTOfLE_app + theorem CategoryTheory.Triangulated.TStructure.truncGEδLT_comp_truncLTι + theorem CategoryTheory.Triangulated.TStructure.truncGEδLT_comp_truncLTι_app + theorem CategoryTheory.Triangulated.TStructure.truncGEδLT_comp_whiskerRight_natTransTruncLTOfLE + theorem CategoryTheory.Triangulated.TStructure.truncGEπ_comp_truncGEδLT + theorem CategoryTheory.Triangulated.TStructure.truncGEπ_comp_truncGEδLT_app + theorem CategoryTheory.Triangulated.TStructure.truncGEπ_naturality + theorem CategoryTheory.Triangulated.TStructure.truncLT_map_truncLTι_app + theorem CategoryTheory.Triangulated.TStructure.truncLTι_comp_truncGEπ + theorem CategoryTheory.Triangulated.TStructure.truncLTι_comp_truncGEπ_app + theorem CategoryTheory.Triangulated.TStructure.π_natTransTruncGEOfLE + theorem CategoryTheory.Triangulated.TStructure.π_natTransTruncGEOfLE_app 2026-03-02 13:09:15 a237616 feat(Algebra/Homology): more lemmas for the biproduct of complexes (#35934) ESTIMATED CHANGES Modified Mathlib/Algebra/Homology/HomologicalComplexBiprod.lean + theorem HomologicalComplex.biprodX_ext_from + theorem HomologicalComplex.biprodX_ext_from_iff + theorem HomologicalComplex.biprodX_ext_to + theorem HomologicalComplex.biprodX_ext_to_iff + theorem HomologicalComplex.biprod_total_f 2026-03-02 13:09:13 a5bb6b1 chore(Tactic): rewrite `field`/`field_simp` tactic documentation (#35814) This PR (re)writes the docstrings for the `field` and `field_simp` tactics, to consistently match the official style guide, to make sure they are complete while not getting too long. In particular, this makes precise what goals are given to the default discharger and what it tries to do to discharge them; and structures the documentation into sections consistent with the style guide. ESTIMATED CHANGES Modified Mathlib/Tactic/Field.lean Modified Mathlib/Tactic/FieldSimp.lean Modified Mathlib/Tactic/FieldSimp/Discharger.lean 2026-03-02 13:09:10 17c7f45 chore: use `to_dual` on `WellFoundedLT.toOrderBot` (#35758) And also make the argument explicit, so it can be called as `let := WellFoundedLT.toOrderBot α`. ESTIMATED CHANGES Modified Mathlib/Order/WellFounded.lean 2026-03-02 13:09:08 90db0c5 chore(Analysis/Complex): simplify proof of `Complex.orderClosedTopology` (#35727) ESTIMATED CHANGES Modified Mathlib/Analysis/Complex/Basic.lean 2026-03-02 13:09:05 11962c6 chore: remove extra monic hypotheses from divByMonic and modByMonic lemmas (#31817) ESTIMATED CHANGES Modified Mathlib/Algebra/Polynomial/CoeffMem.lean +/- theorem Polynomial.idealSpan_range_update_divByMonic Modified Mathlib/Algebra/Polynomial/Div.lean +/- theorem Polynomial.degree_divByMonic_lt +/- theorem Polynomial.eval₂_modByMonic_eq_self_of_root +/- theorem Polynomial.modByMonic_add_div Modified Mathlib/Algebra/Polynomial/FieldDivision.lean Modified Mathlib/Algebra/Polynomial/PartialFractions.lean Modified Mathlib/Algebra/Polynomial/RingDivision.lean +/- theorem Polynomial.aeval_modByMonic_eq_self_of_root Modified Mathlib/Analysis/Polynomial/Basic.lean Modified Mathlib/FieldTheory/Minpoly/Basic.lean Modified Mathlib/FieldTheory/Minpoly/Field.lean Modified Mathlib/FieldTheory/Minpoly/IsIntegrallyClosed.lean Modified Mathlib/LinearAlgebra/Charpoly/Basic.lean Modified Mathlib/LinearAlgebra/Matrix/Charpoly/Coeff.lean Modified Mathlib/RingTheory/Adjoin/PowerBasis.lean Modified Mathlib/RingTheory/AdjoinRoot.lean Modified Mathlib/RingTheory/IntegralClosure/IsIntegral/Basic.lean Modified Mathlib/RingTheory/IntegralDomain.lean Modified Mathlib/RingTheory/IsAdjoinRoot.lean Modified Mathlib/RingTheory/Polynomial/Eisenstein/IsIntegral.lean Modified Mathlib/RingTheory/Polynomial/Nilpotent.lean Modified Mathlib/RingTheory/Polynomial/Resultant/Basic.lean Modified Mathlib/RingTheory/PowerBasis.lean Modified Mathlib/RingTheory/PowerSeries/WeierstrassPreparation.lean Modified Mathlib/RingTheory/Smooth/IntegralClosure.lean Modified Mathlib/RingTheory/Spectrum/Prime/ChevalleyComplexity.lean Modified Mathlib/RingTheory/ZariskisMainTheorem.lean 2026-03-02 12:12:46 a05e642 feat: characteristic function of a sum of independent variables (#35968) The characteristic function of a sum of independent random variables is the product of the characteristic functions. ESTIMATED CHANGES Modified Mathlib/Probability/Independence/CharacteristicFunction.lean + theorem ProbabilityTheory.iIndepFun.charFunDual_map_sum_eq_prod + theorem ProbabilityTheory.iIndepFun.charFun_map_sum_eq_prod 2026-03-02 12:12:44 6a2aa8d feat(CategoryTheory/Monoidal/Grp_): `Grp` has terminal objects (#35967) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Monoidal/Cartesian/Mon_.lean Modified Mathlib/CategoryTheory/Monoidal/Grp_.lean 2026-03-02 12:12:42 6588d0a feat(Algebra/Homology): limits of degreewise eventually constant projective systems (#35935) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Homology/HomologicalComplexLimitsEventuallyConstant.lean + theorem HomologicalComplex.isIso_π_f_of_isLimit_of_isEventuallyConstantTo + theorem HomologicalComplex.quasiIsoAt_π_of_isLimit_of_isEventuallyConstantTo 2026-03-02 12:12:40 2be03bd feat(CategoryTheory/Abelian): lemmas for diagram chasing in short complexes (#35930) ESTIMATED CHANGES Modified Mathlib/Algebra/Homology/ShortComplex/Preadditive.lean + theorem CategoryTheory.ShortComplex.add_liftCycles + theorem CategoryTheory.ShortComplex.sub_liftCycles Modified Mathlib/CategoryTheory/Abelian/Refinements.lean + theorem CategoryTheory.Limits.CokernelCofork.IsColimit.comp_π_eq_zero_iff_up_to_refinements + theorem CategoryTheory.ShortComplex.comp_homologyπ_eq_iff_up_to_refinements + theorem CategoryTheory.ShortComplex.comp_homologyπ_eq_zero_iff_up_to_refinements + theorem CategoryTheory.ShortComplex.comp_pOpcycles_eq_zero_iff_up_to_refinements + theorem CategoryTheory.ShortComplex.epi_homologyMap_iff_up_to_refinements + theorem CategoryTheory.ShortComplex.liftCycles_comp_homologyπ_eq_iff_up_to_refinements + theorem CategoryTheory.ShortComplex.liftCycles_comp_homologyπ_eq_zero_iff_up_to_refinements + theorem CategoryTheory.ShortComplex.mono_homologyMap_iff_up_to_refinements 2026-03-02 12:12:38 177ff4a fix(Translate): remap ConstantInfo.all during declaration translation (#35875) It seems that the translation automation did not properly update the .all field of constant infos. When doing a traversal that requires knowledge about mutual blocks, it's convenient to use .all. Here is an [example](https://live.lean-lang.org/#codez=JYWwDg9gTgLgBAWQIYwBYBtgCMBQOJgCmAdnADKFLF5QCuxA+iITEnACYQ5xzotwAPOIATCOAHMWAYQjEAzjACSxAGYQ4AA3UAFYADok7dtJAgA4lAi0w3cbSRR2cADwAfQfvTo4AXm9wA2po6+obGZhZWALpAA). ESTIMATED CHANGES Modified Mathlib/Lean/Expr/Basic.lean + def Lean.ConstantInfo.updateAll Modified Mathlib/Tactic/Translate/Core.lean Modified MathlibTest/toAdditive.lean + theorem Test.foo0a + theorem Test.foo0b 2026-03-02 12:12:35 f5110b6 chore(SetTheory/Ordinal/Basic): deprecate `Ordinal.induction` → `WellFoundedLT.induction` (#35855) (Most of the diff is just changing indentation) ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Covering/Besicovitch.lean Modified Mathlib/SetTheory/Ordinal/Arithmetic.lean Modified Mathlib/SetTheory/Ordinal/Basic.lean Modified Mathlib/SetTheory/Ordinal/FixedPointApproximants.lean 2026-03-02 12:12:33 6cc493f chore(Algebra/Group/Finsupp): fix argument names (#35706) ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Finsupp.lean +/- theorem Finsupp.induction_on_max +/- theorem Finsupp.induction_on_max₂ +/- theorem Finsupp.induction_on_min +/- theorem Finsupp.induction_on_min₂ 2026-03-02 12:12:30 ce22530 chore(RingTheory/Etale/Kaehler): mention `FormallyEtale` in the names (#35699) These are specific definitions true with a formally étale assumption. In #35594 we are adding general ones (with slightly different content) that deserve to have the generic name. ESTIMATED CHANGES Modified Mathlib/RingTheory/Etale/Kaehler.lean - def Algebra.Extension.tensorCotangentSpace + def Algebra.Extension.tensorCotangentSpaceOfFormallyEtale - def Algebra.Extension.tensorH1Cotangent + def Algebra.Extension.tensorH1CotangentOfFormallyEtale 2026-03-02 12:12:28 ad0a889 feat(CategoryTheory/Triangulated): add extension_product (#35497) This PR adds the "extension product" of two object properties in triangulated categories, adds basic API and proves associativity. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Triangulated/Subcategory.lean + def CategoryTheory.ObjectProperty.extensionProduct + theorem CategoryTheory.ObjectProperty.extensionProduct_assoc + theorem CategoryTheory.ObjectProperty.extensionProduct_iff + theorem CategoryTheory.ObjectProperty.extensionProduct_isoClosure_left + theorem CategoryTheory.ObjectProperty.extensionProduct_isoClosure_right + theorem CategoryTheory.ObjectProperty.le_extensionProduct_left + theorem CategoryTheory.ObjectProperty.le_extensionProduct_right + theorem CategoryTheory.ObjectProperty.monotone_extensionProduct_left + theorem CategoryTheory.ObjectProperty.monotone_extensionProduct_right 2026-03-02 12:12:25 6ec4302 feat: `push` lemmas for `Filter.NeBot` (#35261) ESTIMATED CHANGES Modified Mathlib/Order/Filter/Basic.lean +/- theorem Filter.not_neBot Modified Mathlib/Order/Filter/Defs.lean Modified Mathlib/Topology/Algebra/InfiniteSum/Defs.lean Modified Mathlib/Topology/Algebra/InfiniteSum/SummationFilter.lean 2026-03-02 11:18:44 fd7d30a feat(CategoryTheory/Shift): naturality lemmas for ShiftedHom.map (#35937) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Shift/ShiftedHom.lean + theorem CategoryTheory.ShiftedHom.map_naturality + theorem CategoryTheory.ShiftedHom.map_naturality_1 + theorem CategoryTheory.ShiftedHom.map_naturality_2 2026-03-02 11:18:42 0bf4a5c chore(CategoryTheory): improve Factorisation (#35932) Some `reassoc` attributes are added so as to improve automation. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Category/Factorisation.lean 2026-03-02 11:18:40 2e90c0f feat(AlgebraicGeometry): constant sheaf associated to a topological space (#35915) For a topological space (or topological abelian group) we define an associated constant sheaf by the rule `U ↦ C(U, T)`. We show that this is a Zariski sheaf and a follow-up PR will show this is an fpqc sheaf. When `T` is discrete, this recovers the constant sheaf. This construction is from Lemma 4.2.12 in . From Proetale. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/AlgebraicGeometry/Scheme.lean + theorem AlgebraicGeometry.Scheme.forgetToTop_comp_forget Modified Mathlib/AlgebraicGeometry/Sites/BigZariski.lean Added Mathlib/AlgebraicGeometry/Sites/ConstantSheaf.lean + def AlgebraicGeometry.continuousMapPresheaf + def AlgebraicGeometry.continuousMapPresheafAb + def AlgebraicGeometry.continuousMapPresheafAbForgetIso + def AlgebraicGeometry.continuousMapPresheafEquivOfTotallyDisconnectedSpace + def AlgebraicGeometry.continuousMapPresheafIsoUlift + theorem AlgebraicGeometry.isSheaf_zariskiTopology_continuousMapPresheaf Modified Mathlib/CategoryTheory/Sites/Continuous.lean + theorem CategoryTheory.Functor.op_comp_isSheaf_of_isSheaf Modified Mathlib/Topology/Category/TopCat/Basic.lean + def TopCat.Hom.equivContinuousMap Modified Mathlib/Topology/Category/TopCat/GrothendieckTopology.lean + theorem TopCat.precoverage_le_comap_uliftFunctor Modified Mathlib/Topology/Constructions.lean + def ContinuousMap.uliftEquiv 2026-03-02 11:18:38 cb4ad0b feat(MeasureTheory): Add an AEMeasurable version of `Measure.map_add` (#35782) ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Measure/AEMeasurable.lean Modified Mathlib/MeasureTheory/Measure/AbsolutelyContinuous.lean + theorem MeasureTheory.Measure.AbsolutelyContinuous.add_right' 2026-03-02 11:18:36 77d34ae feat(RingTheory/Localization/FractionRing): add DecidableEq instance (#35770) Co-authored by : @AntoineChambert-Loir. ESTIMATED CHANGES Modified Mathlib/RingTheory/Localization/Basic.lean + theorem Localization.r_iff_of_le_nonZeroDivisors Modified Mathlib/RingTheory/Localization/FractionRing.lean 2026-03-02 11:18:34 9fd7e6d refactor: make `OrderIso.ofHomInv` take actual `OrderHom`s instead of using classes (#35266) ESTIMATED CHANGES Modified Mathlib/Order/Hom/Basic.lean +/- def OrderIso.ofHomInv +/- theorem OrderIso.ofHomInv_symm_apply Modified Mathlib/RingTheory/DedekindDomain/Ideal/Lemmas.lean 2026-03-02 11:18:31 84f898c feat(Logic): graded functions (#30355) This PR defines a class of graded functions, called `GradedFunLike`. It is intended to be used in #30312 to characterise a class of graded ring homomorphisms, where it is invoked as `[GradedFunLike F 𝒜 ℬ] [RingHomClass F A B]`. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Data/FunLike/Graded.lean + def mapGraded + theorem map_mem 2026-03-02 10:51:45 4a7c4d0 feat: Radon-Nikodym derivative of a composition-product (#35014) For finite measures and kernels, under an absolute continuity condition: ``` (μ ⊗ₘ κ).rnDeriv (ν ⊗ₘ η) =ᵐ[ν ⊗ₘ η] (fun p ↦ μ.rnDeriv ν p.1 * (μ ⊗ₘ κ).rnDeriv (μ ⊗ₘ η) p) ``` ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Probability/Kernel/Composition/MeasureCompProd.lean + theorem MeasureTheory.Measure.ae_compProd_of_ae_fst + theorem MeasureTheory.Measure.ae_eq_compProd_of_ae_eq_fst Added Mathlib/Probability/Kernel/Composition/RadonNikodym.lean + theorem ProbabilityTheory.rnDeriv_compProd + theorem ProbabilityTheory.rnDeriv_compProd_withDensity_rnDeriv + theorem ProbabilityTheory.rnDeriv_measure_compProd_left 2026-03-02 10:51:44 6387685 feat: perfect subgroups (#34611) A group `G` is perfect if it equals its commutator subgroup, that is `⁅G, G⁆ = G`. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/GroupTheory/IsPerfect.lean + theorem Group.IsPerfect.mem_commutator + theorem Group.IsPerfect.not_isMulCommutative + theorem Group.IsPerfect.not_isNilpotent + theorem Group.IsPerfect.not_isSolvable + theorem Group.IsPerfect.ofSurjective + theorem Group.IsPerfect.top_iff + theorem Group.isPerfect_def + theorem Subgroup.commutator_eq_self + theorem Subgroup.isPerfect_iff 2026-03-02 10:51:42 ed1c732 refactor: use 1-field structure to define the `WithVal` type synonym (#34049) Following the Zulip threads [here](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/defeq.20abuse.20in.20.60WithLp.60/near/526234806) and [here](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/defeq.20abuse.20in.20.60WithAbs.60.2F.60WithVal.60/with/569663323) and using `WithLp` as a template, we refactor the `WithVal` type synonym as a 1-field structure. The main benefit being that it prevents defeq abuse. ESTIMATED CHANGES Modified Mathlib/NumberTheory/NumberField/FinitePlaces.lean +/- theorem NumberField.RingOfIntegers.HeightOneSpectrum.FinitePlace.norm_def' +/- theorem NumberField.RingOfIntegers.HeightOneSpectrum.FinitePlace.norm_def +/- theorem NumberField.RingOfIntegers.HeightOneSpectrum.FinitePlace.norm_def_int +/- theorem NumberField.RingOfIntegers.HeightOneSpectrum.FinitePlace.norm_eq_one_iff_notMem +/- theorem NumberField.RingOfIntegers.HeightOneSpectrum.FinitePlace.norm_le_one +/- theorem NumberField.RingOfIntegers.HeightOneSpectrum.FinitePlace.norm_lt_one_iff_mem +/- theorem NumberField.RingOfIntegers.HeightOneSpectrum.IsDedekindDomain.HeightOneSpectrum.embedding_mul_absNorm Modified Mathlib/NumberTheory/Padics/WithVal.lean Modified Mathlib/RingTheory/DedekindDomain/AdicValuation.lean +/- theorem IsDedekindDomain.HeightOneSpectrum.adicValued_apply' Modified Mathlib/RingTheory/DedekindDomain/FiniteAdeleRing.lean Modified Mathlib/RingTheory/IntegralClosure/IsIntegralClosure/Basic.lean + theorem IsIntegralClosure.of_algEquiv Modified Mathlib/RingTheory/LaurentSeries.lean +/- theorem LaurentSeries.LaurentSeries_coe +/- theorem LaurentSeries.comparePkg_eq_extension + theorem LaurentSeries.continuous_coe' + theorem LaurentSeries.uniformContinuous_withVal_equiv Modified Mathlib/RingTheory/Localization/Defs.lean + theorem IsLocalization.of_ringEquiv_left Modified Mathlib/RingTheory/Localization/FractionRing.lean + theorem IsFractionRing.of_ringEquiv_left Modified Mathlib/Topology/Algebra/Valued/WithVal.lean + theorem Valuation.IsEquiv.uniformContinuous_congr + theorem Valuation.IsEquiv.uniformContinuous_equiv - theorem Valuation.IsEquiv.uniformContinuous_equivWithVal + theorem Valuation.IsEquiv.uniformContinuous_equiv_symm + def WithVal.algEquiv + theorem WithVal.algEquiv_apply + theorem WithVal.algEquiv_symm_apply + theorem WithVal.algebraMap_left_apply + theorem WithVal.algebraMap_left_injective + theorem WithVal.algebraMap_right_apply + theorem WithVal.algebraMap_right_injective +/- theorem WithVal.apply_equiv +/- theorem WithVal.apply_symm_equiv + def WithVal.congr + theorem WithVal.congr_apply + theorem WithVal.congr_refl + theorem WithVal.congr_symm + theorem WithVal.congr_symm_apply + theorem WithVal.congr_trans +/- def WithVal.equiv +/- theorem WithVal.le_def + def WithVal.linearEquiv + theorem WithVal.linearEquiv_apply + theorem WithVal.linearEquiv_symm_apply +/- theorem WithVal.lt_def + def WithVal.map + theorem WithVal.map_apply + theorem WithVal.map_comp + theorem WithVal.map_id + theorem WithVal.ofVal_add + theorem WithVal.ofVal_bijective + theorem WithVal.ofVal_div + theorem WithVal.ofVal_eq_zero + theorem WithVal.ofVal_injective + theorem WithVal.ofVal_inv + theorem WithVal.ofVal_mul + theorem WithVal.ofVal_neg + theorem WithVal.ofVal_one + theorem WithVal.ofVal_pow + theorem WithVal.ofVal_smul + theorem WithVal.ofVal_sub + theorem WithVal.ofVal_surjective + theorem WithVal.ofVal_toVal + theorem WithVal.ofVal_zero + theorem WithVal.smul_left_def + theorem WithVal.smul_right_def + theorem WithVal.toVal_add + theorem WithVal.toVal_bijective + theorem WithVal.toVal_div + theorem WithVal.toVal_eq_zero + theorem WithVal.toVal_injective + theorem WithVal.toVal_inv + theorem WithVal.toVal_mul + theorem WithVal.toVal_neg + theorem WithVal.toVal_ofVal + theorem WithVal.toVal_one + theorem WithVal.toVal_pow + theorem WithVal.toVal_smul + theorem WithVal.toVal_sub + theorem WithVal.toVal_surjective + theorem WithVal.toVal_zero + def WithVal.uniformEquiv +/- theorem WithVal.valuation_equiv_symm + structure WithVal - def WithVal 2026-03-02 10:51:40 32025af feat(Algebra/GroupWithZero/WithZero): add the multiplicative embedding with zero from the range (#26588) We extend the embedding of the range of a `MonoidWithZeroHom` to the codomain by enriching it with the structure of an ordered, multiplicative embedding. In passing, we extend some results about the embedding of `WithZero` of the units of a group with zero, to the group itself. This will be used in the theory on valuation on rings. In particular, it is needed for correcting the definition of `Valuation.IsRankOne` in Mathlib (see #26872). ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/GroupWithZero/Range.lean + def MonoidWithZeroHom.ValueGroup₀.embedding + theorem MonoidWithZeroHom.ValueGroup₀.embedding_restrict₀ + def MonoidWithZeroHom.ValueGroup₀.restrict₀ + theorem MonoidWithZeroHom.ValueGroup₀.restrict₀_eq_zero_iff + theorem MonoidWithZeroHom.ValueGroup₀.restrict₀_of_ne_zero Added Mathlib/Algebra/Order/GroupWithZero/Range.lean + theorem MonoidWithZeroHom.ValueGroup₀.monoidWithZeroHom_strictMono + def MonoidWithZeroHom.ValueGroup₀.orderEmbedding + theorem MonoidWithZeroHom.ValueGroup₀.orderEmbedding_apply + theorem MonoidWithZeroHom.ValueGroup₀.orderEmbedding_mul + def MonoidWithZeroHom.ValueGroup₀.orderMonoidWithZeroHom 2026-03-02 10:39:40 31b0867 feat(Topology/Algebra): Add API for Sheaves of abelian groups (#34267) in preparation for proving results on sheaf cohomology. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Category/Grp/AB.lean Added Mathlib/Topology/Sheaves/Abelian.lean + theorem TopCat.Sheaf.exact_iff_stalkFunctor_map_exact + theorem TopCat.Sheaf.isZero_iff_stalkFunctor_obj_isZero Modified Mathlib/Topology/Sheaves/Skyscraper.lean 2026-03-02 10:27:36 a6198a2 feat(MeasureTheory): mulEquivHaarChar_eq_one_of_compactSpace (#34192) From FLT. ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Measure/Haar/MulEquivHaarChar.lean + theorem MeasureTheory.mulEquivHaarChar_eq_one_of_compactSpace 2026-03-02 10:08:45 6bcaec3 feat(MeasureTheory): add lemma for sum_smul_dirac_singleton (#35835) This PR adds a new lemma `sum_smul_dirac_singleton` that simplifies the evaluation of a sum of scaled Dirac measures on a singleton set. ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Measure/Dirac.lean + theorem MeasureTheory.Measure.sum_smul_dirac_singleton 2026-03-02 10:08:44 dfa2fe7 feat(MeasureTheory): Add `MeasurableSingletonClass` version of `Measure.map_dirac` (#35784) Gives the new theorem the name `Measure.map_dirac` and rename the current `Measure.map_dirac` to `Measure.map_dirac'`. This follows a convention used elsewhere that for each Measure.dirac lemma with a MeasurableSingleton instance version and a version requiring some sort of measurability, the MeasurableSingleton version has the unprimed name, and the version requiring measurability has the primed name. ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Category/MeasCat.lean Modified Mathlib/MeasureTheory/Constructions/Pi.lean Modified Mathlib/MeasureTheory/Group/Convolution.lean Modified Mathlib/MeasureTheory/Measure/Dirac.lean + theorem MeasureTheory.Measure.map_dirac' +/- theorem MeasureTheory.Measure.map_dirac Modified Mathlib/MeasureTheory/Measure/GiryMonad.lean Modified Mathlib/MeasureTheory/Measure/Haar/InnerProductSpace.lean Modified Mathlib/MeasureTheory/Measure/Prod.lean Modified Mathlib/Probability/Distributions/Gaussian/Basic.lean Modified Mathlib/Probability/Distributions/Gaussian/Real.lean Modified Mathlib/Probability/Kernel/Composition/MapComap.lean 2026-03-02 09:57:33 6e128b2 feat(CategoryTheory/Triangulated): Rotated octahedron axiom (#35496) This PR adds an alternative version of the octahedron axiom in triangulated categories, where all triangles have been rotated. This is similar to how `distinguished_cocone_triangle₁` is a rotated version of `distinguished_cocone_triangle`. I also added diagrams to the docstrings of both `Octahedron` and `Octahedron'`. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Shift/Basic.lean + theorem CategoryTheory.shiftFunctorCompIsoId_naturality_1 Modified Mathlib/CategoryTheory/Triangulated/Opposite/Triangulated.lean Modified Mathlib/CategoryTheory/Triangulated/Triangulated.lean + def CategoryTheory.Triangulated.Octahedron'.triangle + def CategoryTheory.Triangulated.Octahedron'.triangleMorphism₁ + def CategoryTheory.Triangulated.Octahedron'.triangleMorphism₂ + structure CategoryTheory.Triangulated.Octahedron' + def CategoryTheory.Triangulated.someOctahedron' 2026-03-02 09:39:55 c71e036 feat(Algebra/Category/Ring/EqualizerPushout): add effectiveEpi_of_faithfullyFlat in CommRingCatᵒᵖ (#30204) This PR proves that any map `f : S ⟶ R` in `CommRingCatᵒᵖ` with faithfully flat `f.unop : R.unop ⟶ S.unop` is an effective epimorphism. Main results: - `CommRingCat.Equalizer.isLimitForkPushoutSelfOfFaithfullyFlat` : If `f : R ⟶ S` is a faithfully flat map in `CommRingCat`, then `Fork.ofι f pushout.condition` is an equalizer diagram. - `CommRingCat.Opposite.effectiveEpi_of_faithfullyFlat` : Any map `f : S ⟶ R` in `CommRingCatᵒᵖ` with faithfully flat `f.unop : R.unop ⟶ S.unop` is an effective epimorphism. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Category/Ring/EqualizerPushout.lean + theorem CommRingCat.Opposite.effectiveEpi_of_faithfullyFlat + theorem CommRingCat.Opposite.regularEpiOfFaithfullyFlat + theorem CommRingCat.isRegularMono_of_faithfullyFlat Modified Mathlib/RingTheory/TensorProduct/IncludeLeftSubRight.lean + theorem Algebra.codRestrictEqLocusPushoutCocone.bijective_of_faithfullyFlat + theorem Algebra.codRestrictEqLocusPushoutCocone.injective_of_faithfulSMul + theorem Algebra.codRestrictEqLocusPushoutCocone.surjective_of_isEffective + def Algebra.codRestrictEqLocusPushoutCocone 2026-03-02 07:39:32 0fbcb39 chore: delete entries from prime nolint file (#35955) There seemed to be several entries in this file which did not correspond to any actual declarations in Mathlib, seems some of these were deleted without the nolint file changing. This PR removes these. ESTIMATED CHANGES Modified scripts/nolints_prime_decls.txt 2026-03-02 03:28:27 02398f3 chore: mark Submodule.toAddSubgroup @[reducible] (#35761) This PR marks `Submodule.toAddSubgroup` as `@[reducible]`, matching the reducibility that a real structure parent projection would have (Lean marks structure parent projections `[reducible]`). This resolves `backward.isDefEq.respectTransparency` failures where Lean needs to see that `s.toAddSubgroup.toAddSubmonoid = s.toAddSubmonoid`. The motivating example is: ```lean instance {V : Type} [AddCommGroup V] [Module ℝ V] {l : Submodule ℝ V} : Module.Free ℝ l := Module.Free.of_divisionRing ℝ l ``` which fails with `backward.isDefEq.respectTransparency` because synthesis of `Module ℝ ↥l` needs `Submodule.module`, whose `AddCommMonoid` comes through `toAddSubgroup` (a virtual parent), while the `Module` prerequisite expects `AddCommMonoid` from `toAddSubmonoid` (a real projection). Lean must unfold `toAddSubgroup` to see these agree, but as a plain `def` it was `[semireducible]` and invisible at instance transparency. See [#general > backward.isDefEq.respectTransparency](https://leanprover.zulipchat.com/#narrow/channel/113488-general/topic/backward.2EisDefEq.2ErespectTransparency/near/575748939) and the synthetic test case in https://github.com/leanprover-community/mathlib4/pull/35750. ESTIMATED CHANGES Modified Archive/Imo/Imo2019Q4.lean Modified Archive/Imo/Imo2024Q6.lean Modified Mathlib/Algebra/Category/ContinuousCohomology/Basic.lean Modified Mathlib/Algebra/Category/ModuleCat/Abelian.lean Modified Mathlib/Algebra/Category/ModuleCat/Adjunctions.lean Modified Mathlib/Algebra/Category/ModuleCat/EpiMono.lean Modified Mathlib/Algebra/Category/ModuleCat/ExteriorPower.lean Modified Mathlib/Algebra/Category/ModuleCat/Images.lean Modified Mathlib/Algebra/Category/ModuleCat/Kernels.lean Modified Mathlib/Algebra/Category/ModuleCat/Subobject.lean Modified Mathlib/Algebra/Category/ModuleCat/Topology/Homology.lean Modified Mathlib/Algebra/DirectSum/LinearMap.lean Modified Mathlib/Algebra/DirectSum/Module.lean Modified Mathlib/Algebra/DualQuaternion.lean Modified Mathlib/Algebra/Homology/HomotopyCategory/HomComplexShift.lean Modified Mathlib/Algebra/Homology/HomotopyCofiber.lean Modified Mathlib/Algebra/Homology/ShortComplex/ModuleCat.lean Modified Mathlib/Algebra/Lie/TraceForm.lean Modified Mathlib/Algebra/Lie/Weights/Chain.lean Modified Mathlib/Algebra/Lie/Weights/Killing.lean Modified Mathlib/Algebra/Module/FinitePresentation.lean Modified Mathlib/Algebra/Module/Injective.lean Modified Mathlib/Algebra/Module/Lattice.lean Modified Mathlib/Algebra/Module/PID.lean Modified Mathlib/Algebra/Module/SpanRank.lean Modified Mathlib/Algebra/Module/Submodule/Defs.lean Modified Mathlib/Algebra/Module/Submodule/Ker.lean Modified Mathlib/Algebra/Module/Submodule/LinearMap.lean Modified Mathlib/Algebra/Module/Submodule/Union.lean Modified Mathlib/Algebra/Module/Torsion/Basic.lean Modified Mathlib/Algebra/Module/ZLattice/Basic.lean Modified Mathlib/Algebra/Module/ZLattice/Covolume.lean Modified Mathlib/Algebra/Order/Group/PartialSups.lean Modified Mathlib/Algebra/Order/Interval/Basic.lean Modified Mathlib/Algebra/Order/Module/HahnEmbedding.lean Modified Mathlib/Algebra/Order/Ring/StandardPart.lean Modified Mathlib/Algebra/Polynomial/Degree/TrailingDegree.lean Modified Mathlib/Algebra/Star/CentroidHom.lean Modified Mathlib/AlgebraicGeometry/Fiber.lean Modified Mathlib/AlgebraicGeometry/IdealSheaf/Subscheme.lean Modified Mathlib/AlgebraicGeometry/Morphisms/Affine.lean Modified Mathlib/AlgebraicGeometry/Morphisms/SmoothFiber.lean Modified Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Basic.lean Modified Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Order.lean Modified Mathlib/Analysis/Complex/UpperHalfPlane/Basic.lean Modified Mathlib/Analysis/Convex/Intrinsic.lean Modified Mathlib/Analysis/InnerProductSpace/Basic.lean Modified Mathlib/Analysis/InnerProductSpace/PiL2.lean Modified Mathlib/Analysis/InnerProductSpace/ProdL2.lean Modified Mathlib/Analysis/InnerProductSpace/Projection/Basic.lean Modified Mathlib/Analysis/InnerProductSpace/Projection/FiniteDimensional.lean Modified Mathlib/Analysis/InnerProductSpace/Projection/Submodule.lean Modified Mathlib/Analysis/InnerProductSpace/Semisimple.lean Modified Mathlib/Analysis/InnerProductSpace/Subspace.lean Modified Mathlib/Analysis/InnerProductSpace/TensorProduct.lean Modified Mathlib/Analysis/InnerProductSpace/l2Space.lean Modified Mathlib/Analysis/LocallyConvex/WeakDual.lean Modified Mathlib/Analysis/LocallyConvex/WithSeminorms.lean Modified Mathlib/Analysis/Matrix/HermitianFunctionalCalculus.lean Modified Mathlib/Analysis/Matrix/Normed.lean Modified Mathlib/Analysis/Matrix/Order.lean Modified Mathlib/Analysis/Normed/Affine/Isometry.lean Modified Mathlib/Analysis/Normed/Module/Basic.lean Modified Mathlib/Analysis/Normed/Module/Complemented.lean Modified Mathlib/Analysis/Normed/Module/Connected.lean Modified Mathlib/Analysis/Normed/Module/HahnBanach.lean Modified Mathlib/Analysis/Normed/Module/Span.lean Modified Mathlib/Analysis/Normed/Operator/Extend.lean Modified Mathlib/Analysis/Normed/Operator/LinearIsometry.lean Modified Mathlib/Analysis/ODE/PicardLindelof.lean Modified Mathlib/Analysis/SpecialFunctions/Elliptic/Weierstrass.lean Modified Mathlib/Analysis/SpecialFunctions/Exp.lean Modified Mathlib/CategoryTheory/Bicategory/Functor/StrictlyUnitary.lean Modified Mathlib/CategoryTheory/Bicategory/Grothendieck.lean Modified Mathlib/CategoryTheory/Bicategory/Modification/Pseudo.lean Modified Mathlib/CategoryTheory/Enriched/Ordinary/Basic.lean Modified Mathlib/CategoryTheory/FiberedCategory/HasFibers.lean Modified Mathlib/CategoryTheory/Join/Sum.lean Modified Mathlib/CategoryTheory/Limits/Preserves/Bifunctor.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Pullback/Categorical/Basic.lean Modified Mathlib/CategoryTheory/Limits/Shapes/ZeroMorphisms.lean Modified Mathlib/CategoryTheory/Localization/Monoidal/Basic.lean Modified Mathlib/CategoryTheory/LocallyCartesianClosed/ExponentiableMorphism.lean Modified Mathlib/CategoryTheory/Monoidal/Bimod.lean Modified Mathlib/CategoryTheory/Monoidal/Cartesian/Comon_.lean Modified Mathlib/CategoryTheory/Monoidal/DayConvolution.lean Modified Mathlib/CategoryTheory/Monoidal/Grp_.lean Modified Mathlib/CategoryTheory/Monoidal/Internal/Types/Basic.lean Modified Mathlib/CategoryTheory/Shift/Localization.lean Modified Mathlib/CategoryTheory/ShrinkYoneda.lean Modified Mathlib/CategoryTheory/Sites/DenseSubsite/Basic.lean Modified Mathlib/CategoryTheory/Sites/LocallySurjective.lean Modified Mathlib/CategoryTheory/Triangulated/Functor.lean Modified Mathlib/Combinatorics/Additive/CauchyDavenport.lean Modified Mathlib/Combinatorics/Additive/DoublingConst.lean Modified Mathlib/Combinatorics/Hall/Finite.lean Modified Mathlib/Combinatorics/Matroid/IndepAxioms.lean Modified Mathlib/Combinatorics/Matroid/Minor/Restrict.lean Modified Mathlib/Combinatorics/SimpleGraph/Coloring.lean Modified Mathlib/Combinatorics/SimpleGraph/Connectivity/EdgeConnectivity.lean Modified Mathlib/Combinatorics/SimpleGraph/Connectivity/Subgraph.lean Modified Mathlib/Combinatorics/SimpleGraph/Girth.lean Modified Mathlib/Combinatorics/SimpleGraph/Metric.lean Modified Mathlib/Combinatorics/SimpleGraph/VertexCover.lean Modified Mathlib/Combinatorics/Tiling/Tile.lean Modified Mathlib/Computability/NFA.lean Modified Mathlib/Computability/Primrec/List.lean Modified Mathlib/Data/ENat/Pow.lean Modified Mathlib/Data/Holor.lean Modified Mathlib/Data/NNRat/Lemmas.lean Modified Mathlib/Data/Nat/Multiplicity.lean Modified Mathlib/Data/Nat/PartENat.lean Modified Mathlib/Data/PFunctor/Multivariate/M.lean Modified Mathlib/Data/PFunctor/Univariate/M.lean Modified Mathlib/Data/PNat/Interval.lean Modified Mathlib/Data/Seq/Basic.lean Modified Mathlib/Data/Seq/Parallel.lean Modified Mathlib/Data/Set/Card.lean Modified Mathlib/Data/ZMod/QuotientGroup.lean Modified Mathlib/FieldTheory/LinearDisjoint.lean Modified Mathlib/FieldTheory/Separable.lean Modified Mathlib/Geometry/Euclidean/Angle/Sphere.lean Modified Mathlib/Geometry/Euclidean/MongePoint.lean Modified Mathlib/Geometry/Euclidean/NinePointCircle.lean Modified Mathlib/Geometry/Euclidean/Projection.lean Modified Mathlib/Geometry/Euclidean/SignedDist.lean Modified Mathlib/Geometry/Manifold/Instances/Sphere.lean Modified Mathlib/Geometry/Manifold/MFDeriv/Atlas.lean Modified Mathlib/GroupTheory/Coprod/Basic.lean Modified Mathlib/GroupTheory/CoprodI.lean Modified Mathlib/GroupTheory/FreeGroup/Orbit.lean Modified Mathlib/GroupTheory/GroupAction/MultiplePrimitivity.lean Modified Mathlib/GroupTheory/GroupAction/SubMulAction/OfFixingSubgroup.lean Modified Mathlib/GroupTheory/IsSubnormal.lean Modified Mathlib/GroupTheory/NoncommCoprod.lean Modified Mathlib/GroupTheory/Perm/ClosureSwap.lean Modified Mathlib/GroupTheory/SpecificGroups/Alternating.lean Modified Mathlib/LinearAlgebra/AffineSpace/AffineSubspace/Basic.lean Modified Mathlib/LinearAlgebra/AffineSpace/FiniteDimensional.lean Modified Mathlib/LinearAlgebra/AffineSpace/Restrict.lean Modified Mathlib/LinearAlgebra/AffineSpace/Simplex/Basic.lean Modified Mathlib/LinearAlgebra/AffineSpace/Simplex/Centroid.lean Modified Mathlib/LinearAlgebra/Basis/Exact.lean Modified Mathlib/LinearAlgebra/Basis/Fin.lean Modified Mathlib/LinearAlgebra/Basis/VectorSpace.lean Modified Mathlib/LinearAlgebra/BilinearForm/Orthogonal.lean Modified Mathlib/LinearAlgebra/CliffordAlgebra/Even.lean Modified Mathlib/LinearAlgebra/Dimension/Constructions.lean Modified Mathlib/LinearAlgebra/Dimension/DivisionRing.lean Modified Mathlib/LinearAlgebra/Dimension/Finite.lean Modified Mathlib/LinearAlgebra/Dimension/FreeAndStrongRankCondition.lean Modified Mathlib/LinearAlgebra/Dimension/LinearMap.lean Modified Mathlib/LinearAlgebra/Dimension/Localization.lean Modified Mathlib/LinearAlgebra/Dimension/RankNullity.lean Modified Mathlib/LinearAlgebra/Dimension/StrongRankCondition.lean Modified Mathlib/LinearAlgebra/Dual/Lemmas.lean Modified Mathlib/LinearAlgebra/Eigenspace/Basic.lean Modified Mathlib/LinearAlgebra/Eigenspace/Pi.lean Modified Mathlib/LinearAlgebra/Eigenspace/Semisimple.lean Modified Mathlib/LinearAlgebra/Eigenspace/Triangularizable.lean Modified Mathlib/LinearAlgebra/Eigenspace/Zero.lean Modified Mathlib/LinearAlgebra/ExteriorPower/Basic.lean Modified Mathlib/LinearAlgebra/FiniteDimensional/Basic.lean Modified Mathlib/LinearAlgebra/FiniteDimensional/Defs.lean Modified Mathlib/LinearAlgebra/FiniteDimensional/Lemmas.lean Modified Mathlib/LinearAlgebra/FreeModule/Finite/CardQuotient.lean Modified Mathlib/LinearAlgebra/FreeModule/PID.lean Modified Mathlib/LinearAlgebra/Goursat.lean Modified Mathlib/LinearAlgebra/Isomorphisms.lean Modified Mathlib/LinearAlgebra/LinearDisjoint.lean Modified Mathlib/LinearAlgebra/LinearIndependent/Defs.lean Modified Mathlib/LinearAlgebra/LinearPMap.lean Modified Mathlib/LinearAlgebra/Matrix/Ideal.lean Modified Mathlib/LinearAlgebra/Multilinear/DFinsupp.lean Modified Mathlib/LinearAlgebra/PerfectPairing/Restrict.lean Modified Mathlib/LinearAlgebra/PiTensorProduct.lean Modified Mathlib/LinearAlgebra/Prod.lean Modified Mathlib/LinearAlgebra/Projection.lean Modified Mathlib/LinearAlgebra/Projectivization/Basic.lean Modified Mathlib/LinearAlgebra/QuadraticForm/Basic.lean Modified Mathlib/LinearAlgebra/QuadraticForm/Radical.lean Modified Mathlib/LinearAlgebra/Reflection.lean Modified Mathlib/LinearAlgebra/RootSystem/BaseChange.lean Modified Mathlib/LinearAlgebra/RootSystem/BaseExists.lean Modified Mathlib/LinearAlgebra/RootSystem/Finite/Lemmas.lean Modified Mathlib/LinearAlgebra/RootSystem/RootPositive.lean Modified Mathlib/LinearAlgebra/Semisimple.lean Modified Mathlib/LinearAlgebra/SesquilinearForm/Basic.lean Modified Mathlib/LinearAlgebra/Span/Basic.lean Modified Mathlib/LinearAlgebra/Span/TensorProduct.lean Modified Mathlib/LinearAlgebra/TensorProduct/Graded/Internal.lean Modified Mathlib/LinearAlgebra/TensorProduct/RightExactness.lean Modified Mathlib/LinearAlgebra/TensorProduct/Vanishing.lean Modified Mathlib/LinearAlgebra/Trace.lean Modified Mathlib/LinearAlgebra/Transvection.lean Modified Mathlib/MeasureTheory/Function/ConditionalExpectation/AEMeasurable.lean Modified Mathlib/MeasureTheory/Function/ConditionalExpectation/CondexpL1.lean Modified Mathlib/MeasureTheory/Integral/IntervalIntegral/Periodic.lean Modified Mathlib/MeasureTheory/Measure/CharacteristicFunction.lean Modified Mathlib/MeasureTheory/Measure/Haar/Disintegration.lean Modified Mathlib/MeasureTheory/SetSemiring.lean Modified Mathlib/ModelTheory/Algebra/Ring/Basic.lean Modified Mathlib/ModelTheory/Definability.lean Modified Mathlib/ModelTheory/Order.lean Modified Mathlib/ModelTheory/Types.lean Modified Mathlib/NumberTheory/Cyclotomic/Basic.lean Modified Mathlib/NumberTheory/NumberField/CanonicalEmbedding/ConvexBody.lean Modified Mathlib/NumberTheory/NumberField/FractionalIdeal.lean Modified Mathlib/NumberTheory/NumberField/Ideal/KummerDedekind.lean Modified Mathlib/NumberTheory/NumberField/InfinitePlace/Basic.lean Modified Mathlib/NumberTheory/NumberField/InfinitePlace/TotallyRealComplex.lean Modified Mathlib/NumberTheory/Padics/PadicVal/Basic.lean Modified Mathlib/NumberTheory/Padics/PadicVal/Defs.lean Modified Mathlib/NumberTheory/RamificationInertia/Basic.lean Modified Mathlib/Order/Birkhoff.lean Modified Mathlib/Order/Height.lean Modified Mathlib/Order/KrullDimension.lean Modified Mathlib/Order/PrimeSeparator.lean Modified Mathlib/Order/SuccPred/Tree.lean Modified Mathlib/Probability/Process/Stopping.lean Modified Mathlib/Probability/StrongLaw.lean Modified Mathlib/RepresentationTheory/Character.lean Modified Mathlib/RepresentationTheory/Coinduced.lean Modified Mathlib/RepresentationTheory/Coinvariants.lean Modified Mathlib/RepresentationTheory/FiniteIndex.lean Modified Mathlib/RepresentationTheory/Homological/GroupCohomology/Functoriality.lean Modified Mathlib/RepresentationTheory/Homological/GroupCohomology/LowDegree.lean Modified Mathlib/RepresentationTheory/Homological/GroupHomology/FiniteCyclic.lean Modified Mathlib/RepresentationTheory/Homological/GroupHomology/Functoriality.lean Modified Mathlib/RepresentationTheory/Homological/GroupHomology/LowDegree.lean Modified Mathlib/RepresentationTheory/Invariants.lean Modified Mathlib/RepresentationTheory/Maschke.lean Modified Mathlib/RepresentationTheory/Rep.lean Modified Mathlib/RingTheory/AdicCompletion/AsTensorProduct.lean Modified Mathlib/RingTheory/AdicCompletion/Basic.lean Modified Mathlib/RingTheory/Artinian/Module.lean Modified Mathlib/RingTheory/Binomial.lean Modified Mathlib/RingTheory/DedekindDomain/Factorization.lean Modified Mathlib/RingTheory/DedekindDomain/IntegralClosure.lean Modified Mathlib/RingTheory/DiscreteValuationRing/Basic.lean Modified Mathlib/RingTheory/Etale/Kaehler.lean Modified Mathlib/RingTheory/Extension/Cotangent/Basic.lean Modified Mathlib/RingTheory/FiniteLength.lean Modified Mathlib/RingTheory/FiniteType.lean Modified Mathlib/RingTheory/Finiteness/Descent.lean Modified Mathlib/RingTheory/Finiteness/Finsupp.lean Modified Mathlib/RingTheory/Finiteness/NilpotentKer.lean Modified Mathlib/RingTheory/Flat/Equalizer.lean Modified Mathlib/RingTheory/Flat/EquationalCriterion.lean Modified Mathlib/RingTheory/Flat/FaithfullyFlat/Basic.lean Modified Mathlib/RingTheory/Flat/Tensor.lean Modified Mathlib/RingTheory/HopkinsLevitzki.lean Modified Mathlib/RingTheory/Ideal/AssociatedPrime/Finiteness.lean Modified Mathlib/RingTheory/Ideal/Cotangent.lean Modified Mathlib/RingTheory/Ideal/Height.lean Modified Mathlib/RingTheory/Ideal/IsPrincipalPowQuotient.lean Modified Mathlib/RingTheory/Ideal/KrullsHeightTheorem.lean Modified Mathlib/RingTheory/Ideal/Norm/AbsNorm.lean Modified Mathlib/RingTheory/Ideal/Quotient/ChineseRemainder.lean Modified Mathlib/RingTheory/Ideal/Quotient/Index.lean Modified Mathlib/RingTheory/Ideal/Quotient/Operations.lean Modified Mathlib/RingTheory/Jacobson/Radical.lean Modified Mathlib/RingTheory/Jacobson/Semiprimary.lean Modified Mathlib/RingTheory/Kaehler/Basic.lean Modified Mathlib/RingTheory/KrullDimension/NonZeroDivisors.lean Modified Mathlib/RingTheory/KrullDimension/PID.lean Modified Mathlib/RingTheory/Length.lean Modified Mathlib/RingTheory/LinearDisjoint.lean Modified Mathlib/RingTheory/LocalRing/Module.lean Modified Mathlib/RingTheory/Localization/Integral.lean Modified Mathlib/RingTheory/Morita/Matrix.lean Modified Mathlib/RingTheory/Multiplicity.lean Modified Mathlib/RingTheory/MvPowerSeries/NoZeroDivisors.lean Modified Mathlib/RingTheory/MvPowerSeries/Order.lean Modified Mathlib/RingTheory/MvPowerSeries/Substitution.lean Modified Mathlib/RingTheory/Noetherian/Basic.lean Modified Mathlib/RingTheory/Noetherian/Orzech.lean Modified Mathlib/RingTheory/Polynomial/DegreeLT.lean Modified Mathlib/RingTheory/PowerSeries/Order.lean Modified Mathlib/RingTheory/PowerSeries/WeierstrassPreparation.lean Modified Mathlib/RingTheory/Regular/IsSMulRegular.lean Modified Mathlib/RingTheory/SimpleModule/Basic.lean Modified Mathlib/RingTheory/Smooth/IntegralClosure.lean Modified Mathlib/RingTheory/Smooth/Kaehler.lean Modified Mathlib/RingTheory/TensorProduct/MonoidAlgebra.lean Modified Mathlib/RingTheory/UniqueFactorizationDomain/Basic.lean Modified Mathlib/RingTheory/UniqueFactorizationDomain/Multiplicity.lean Modified Mathlib/RingTheory/UniqueFactorizationDomain/Nat.lean Modified Mathlib/RingTheory/Unramified/Basic.lean Modified Mathlib/RingTheory/Unramified/LocalRing.lean Modified Mathlib/SetTheory/Cardinal/ENat.lean Modified Mathlib/SetTheory/Cardinal/Finite.lean Modified Mathlib/SetTheory/Cardinal/Ordinal.lean Modified Mathlib/SetTheory/ZFC/Class.lean Modified Mathlib/Tactic/NormNum/Irrational.lean Modified Mathlib/Topology/Algebra/AffineSubspace.lean Modified Mathlib/Topology/Algebra/Module/Equiv.lean Modified Mathlib/Topology/Algebra/Module/FiniteDimension.lean Modified Mathlib/Topology/Algebra/Module/UniformConvergence.lean Modified Mathlib/Topology/Compactification/OnePoint/Sphere.lean Modified Mathlib/Topology/MetricSpace/Kuratowski.lean 2026-03-02 00:47:45 9b1001c chore: bump toolchain to v4.29.0-rc3 (#35942) ESTIMATED CHANGES Modified Archive/Imo/Imo2001Q4.lean Modified Archive/Imo/Imo2019Q4.lean Modified Archive/Imo/Imo2024Q2.lean Modified Archive/Kuratowski.lean Modified Counterexamples/InvertibleModuleNotIdeal.lean Modified Mathlib/Algebra/AffineMonoid/Irreducible.lean Modified Mathlib/Algebra/Algebra/Subalgebra/Lattice.lean Modified Mathlib/Algebra/BigOperators/Group/Finset/Basic.lean Modified Mathlib/Algebra/BigOperators/Group/Finset/Indicator.lean Modified Mathlib/Algebra/BigOperators/Group/Finset/Piecewise.lean Modified Mathlib/Algebra/BigOperators/GroupWithZero/Finset.lean Modified Mathlib/Algebra/BigOperators/Ring/Nat.lean Modified Mathlib/Algebra/Category/AlgCat/Limits.lean Modified Mathlib/Algebra/Category/ContinuousCohomology/Basic.lean Modified Mathlib/Algebra/Category/ModuleCat/Adjunctions.lean Modified Mathlib/Algebra/Category/ModuleCat/ChangeOfRings.lean Modified Mathlib/Algebra/Category/ModuleCat/Sheaf/PushforwardContinuous.lean Modified Mathlib/Algebra/Category/ModuleCat/Sheaf/Quasicoherent.lean Modified Mathlib/Algebra/Category/ModuleCat/Stalk.lean Modified Mathlib/Algebra/Category/Ring/Limits.lean Modified Mathlib/Algebra/DirectSum/LinearMap.lean Modified Mathlib/Algebra/Field/Basic.lean Modified Mathlib/Algebra/Field/Power.lean Modified Mathlib/Algebra/Group/Finsupp.lean Modified Mathlib/Algebra/Group/Submonoid/BigOperators.lean Modified Mathlib/Algebra/Lie/BaseChange.lean Modified Mathlib/Algebra/Lie/TensorProduct.lean Modified Mathlib/Algebra/Module/FinitePresentation.lean Modified Mathlib/Algebra/Module/PID.lean Modified Mathlib/Algebra/Module/SpanRank.lean Modified Mathlib/Algebra/MvPolynomial/Equiv.lean Modified Mathlib/Algebra/MvPolynomial/Monad.lean Modified Mathlib/Algebra/Order/Antidiag/Pi.lean Modified Mathlib/Algebra/Order/Antidiag/Prod.lean Modified Mathlib/Algebra/Order/Field/Basic.lean Modified Mathlib/Algebra/Order/Field/Power.lean Modified Mathlib/Algebra/Order/GroupWithZero/Canonical.lean Modified Mathlib/Algebra/Order/Module/HahnEmbedding.lean Modified Mathlib/Algebra/Order/Module/OrderedSMul.lean Modified Mathlib/Algebra/Order/Monoid/LocallyFiniteOrder.lean Modified Mathlib/Algebra/Order/Ring/StandardPart.lean Modified Mathlib/Algebra/Order/Star/Conjneg.lean Modified Mathlib/Algebra/Pointwise/Stabilizer.lean Modified Mathlib/Algebra/Polynomial/Degree/TrailingDegree.lean Modified Mathlib/Algebra/Polynomial/FieldDivision.lean Modified Mathlib/Algebra/Polynomial/Roots.lean Modified Mathlib/Algebra/SkewMonoidAlgebra/Basic.lean Modified Mathlib/Algebra/SkewMonoidAlgebra/Support.lean Modified Mathlib/Algebra/Squarefree/Basic.lean Modified Mathlib/AlgebraicGeometry/AffineSpace.lean Modified Mathlib/AlgebraicGeometry/Fiber.lean Modified Mathlib/AlgebraicGeometry/Morphisms/SmoothFiber.lean Modified Mathlib/AlgebraicGeometry/Sites/BigZariski.lean Modified Mathlib/Analysis/CStarAlgebra/CompletelyPositiveMap.lean Modified Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Basic.lean Modified Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Instances.lean Modified Mathlib/Analysis/CStarAlgebra/GelfandNaimarkSegal.lean Modified Mathlib/Analysis/CStarAlgebra/Hom.lean Modified Mathlib/Analysis/CStarAlgebra/Unitary/Connected.lean Modified Mathlib/Analysis/Complex/Poisson.lean Modified Mathlib/Analysis/Complex/UpperHalfPlane/Basic.lean Modified Mathlib/Analysis/Complex/ValueDistribution/LogCounting/Basic.lean Modified Mathlib/Analysis/Convex/Caratheodory.lean Modified Mathlib/Analysis/Convex/Radon.lean Modified Mathlib/Analysis/Distribution/SchwartzSpace/Basic.lean Modified Mathlib/Analysis/InnerProductSpace/Basic.lean Modified Mathlib/Analysis/InnerProductSpace/Coalgebra.lean Modified Mathlib/Analysis/InnerProductSpace/l2Space.lean Modified Mathlib/Analysis/LocallyConvex/WeakDual.lean Modified Mathlib/Analysis/Matrix/HermitianFunctionalCalculus.lean Modified Mathlib/Analysis/ODE/PicardLindelof.lean Modified Mathlib/CategoryTheory/Abelian/Basic.lean Modified Mathlib/CategoryTheory/Enriched/Ordinary/Basic.lean Modified Mathlib/CategoryTheory/Limits/Shapes/ZeroMorphisms.lean Modified Mathlib/CategoryTheory/LocallyCartesianClosed/ExponentiableMorphism.lean Modified Mathlib/CategoryTheory/Monad/Kleisli.lean Modified Mathlib/CategoryTheory/Monoidal/Cartesian/Comon_.lean Modified Mathlib/CategoryTheory/Monoidal/DayConvolution.lean Modified Mathlib/CategoryTheory/Monoidal/Grp_.lean Modified Mathlib/CategoryTheory/Monoidal/Internal/Types/Basic.lean Modified Mathlib/CategoryTheory/Shift/Localization.lean Modified Mathlib/CategoryTheory/ShrinkYoneda.lean Modified Mathlib/CategoryTheory/Sites/DenseSubsite/Basic.lean Modified Mathlib/CategoryTheory/Sites/DenseSubsite/OneHypercoverDense.lean Modified Mathlib/CategoryTheory/Sites/Hypercover/One.lean Modified Mathlib/CategoryTheory/Sites/LocallySurjective.lean Modified Mathlib/Combinatorics/Additive/CauchyDavenport.lean Modified Mathlib/Combinatorics/Additive/Convolution.lean Modified Mathlib/Combinatorics/Additive/Dissociation.lean Modified Mathlib/Combinatorics/Additive/DoublingConst.lean Modified Mathlib/Combinatorics/Additive/Energy.lean Modified Mathlib/Combinatorics/Additive/ErdosGinzburgZiv.lean Modified Mathlib/Combinatorics/Colex.lean Modified Mathlib/Combinatorics/Enumerative/Catalan.lean Modified Mathlib/Combinatorics/Enumerative/DyckWord.lean Modified Mathlib/Combinatorics/Enumerative/InclusionExclusion.lean Modified Mathlib/Combinatorics/Hall/Finite.lean Modified Mathlib/Combinatorics/KatonaCircle.lean Modified Mathlib/Combinatorics/Matroid/IndepAxioms.lean Modified Mathlib/Combinatorics/Matroid/Minor/Restrict.lean Modified Mathlib/Combinatorics/Schnirelmann.lean Modified Mathlib/Combinatorics/SetFamily/Shatter.lean Modified Mathlib/Combinatorics/SimpleGraph/AdjMatrix.lean Modified Mathlib/Combinatorics/SimpleGraph/Clique.lean Modified Mathlib/Combinatorics/SimpleGraph/Coloring.lean Modified Mathlib/Combinatorics/SimpleGraph/Connectivity/EdgeConnectivity.lean Modified Mathlib/Combinatorics/SimpleGraph/Connectivity/WalkCounting.lean Modified Mathlib/Combinatorics/SimpleGraph/DeleteEdges.lean Modified Mathlib/Combinatorics/SimpleGraph/Diam.lean Modified Mathlib/Combinatorics/SimpleGraph/Finite.lean Modified Mathlib/Combinatorics/SimpleGraph/Girth.lean Modified Mathlib/Combinatorics/SimpleGraph/Metric.lean Modified Mathlib/Combinatorics/SimpleGraph/Prod.lean Modified Mathlib/Combinatorics/SimpleGraph/Subgraph.lean Modified Mathlib/Combinatorics/SimpleGraph/Triangle/Tripartite.lean Modified Mathlib/Combinatorics/SimpleGraph/VertexCover.lean Modified Mathlib/Data/DFinsupp/Defs.lean Modified Mathlib/Data/DFinsupp/Encodable.lean Modified Mathlib/Data/DFinsupp/Order.lean Modified Mathlib/Data/DFinsupp/Sigma.lean Modified Mathlib/Data/ENat/Basic.lean Modified Mathlib/Data/ENat/Pow.lean Modified Mathlib/Data/EReal/Inv.lean Modified Mathlib/Data/Fin/Tuple/Sort.lean Modified Mathlib/Data/Finset/Attach.lean Modified Mathlib/Data/Finset/Card.lean Modified Mathlib/Data/Finset/Disjoint.lean Modified Mathlib/Data/Finset/Filter.lean Modified Mathlib/Data/Finset/Fin.lean Modified Mathlib/Data/Finset/Image.lean Modified Mathlib/Data/Finset/Insert.lean Modified Mathlib/Data/Finset/Lattice/Fold.lean Modified Mathlib/Data/Finset/NatAntidiagonal.lean Modified Mathlib/Data/Finset/NoncommProd.lean Modified Mathlib/Data/Finset/Pi.lean Modified Mathlib/Data/Finset/Powerset.lean Modified Mathlib/Data/Finset/Preimage.lean Modified Mathlib/Data/Finset/Sort.lean Modified Mathlib/Data/Finset/Sum.lean Modified Mathlib/Data/Finset/Sym.lean Modified Mathlib/Data/Finset/SymmDiff.lean Modified Mathlib/Data/Finset/Union.lean Modified Mathlib/Data/Finset/Update.lean Modified Mathlib/Data/Finsupp/Indicator.lean Modified Mathlib/Data/Finsupp/Order.lean Modified Mathlib/Data/Finsupp/PointwiseSMul.lean Modified Mathlib/Data/Finsupp/Weight.lean Modified Mathlib/Data/Fintype/BigOperators.lean Modified Mathlib/Data/Fintype/Defs.lean Modified Mathlib/Data/Fintype/Sets.lean Modified Mathlib/Data/Holor.lean Modified Mathlib/Data/Int/GCD.lean Modified Mathlib/Data/Multiset/Fintype.lean Modified Mathlib/Data/NNRat/Lemmas.lean Modified Mathlib/Data/NNReal/Defs.lean Modified Mathlib/Data/Nat/Choose/Multinomial.lean Modified Mathlib/Data/Nat/Factorization/PrimePow.lean Modified Mathlib/Data/Nat/Multiplicity.lean Modified Mathlib/Data/Nat/PartENat.lean Modified Mathlib/Data/Nat/Totient.lean Modified Mathlib/Data/Seq/Basic.lean Modified Mathlib/Data/Set/Card.lean Modified Mathlib/Data/Set/PowersetCard.lean Modified Mathlib/Data/Sign/Basic.lean Modified Mathlib/Data/Sym/Sym2/Finsupp.lean Modified Mathlib/Data/ZMod/QuotientGroup.lean Modified Mathlib/FieldTheory/AxGrothendieck.lean Modified Mathlib/FieldTheory/IntermediateField/Adjoin/Algebra.lean Modified Mathlib/FieldTheory/Minpoly/IsConjRoot.lean Modified Mathlib/FieldTheory/Separable.lean Modified Mathlib/FieldTheory/SeparableDegree.lean Modified Mathlib/Geometry/Euclidean/Angle/Oriented/Affine.lean Modified Mathlib/GroupTheory/CosetCover.lean Modified Mathlib/GroupTheory/FiniteAbelian/Duality.lean Modified Mathlib/GroupTheory/GroupAction/Jordan.lean Modified Mathlib/GroupTheory/GroupAction/MultiplePrimitivity.lean Modified Mathlib/GroupTheory/Perm/Centralizer.lean Modified Mathlib/GroupTheory/Perm/Cycle/Basic.lean Modified Mathlib/GroupTheory/Perm/Cycle/Concrete.lean Modified Mathlib/GroupTheory/Perm/Cycle/Factors.lean Modified Mathlib/GroupTheory/Perm/Cycle/Type.lean Modified Mathlib/GroupTheory/Perm/DomMulAct.lean Modified Mathlib/GroupTheory/Perm/List.lean Modified Mathlib/GroupTheory/Perm/Support.lean Modified Mathlib/GroupTheory/SpecificGroups/Alternating/Centralizer.lean Modified Mathlib/GroupTheory/Transfer.lean Modified Mathlib/LinearAlgebra/AffineSpace/Centroid.lean Modified Mathlib/LinearAlgebra/AffineSpace/Ceva.lean Modified Mathlib/LinearAlgebra/AffineSpace/Combination.lean Modified Mathlib/LinearAlgebra/AffineSpace/Independent.lean Modified Mathlib/LinearAlgebra/AffineSpace/Simplex/Basic.lean Modified Mathlib/LinearAlgebra/AffineSpace/Simplex/Centroid.lean Modified Mathlib/LinearAlgebra/Basis/Defs.lean Modified Mathlib/LinearAlgebra/Basis/Exact.lean Modified Mathlib/LinearAlgebra/Dimension/Finite.lean Modified Mathlib/LinearAlgebra/Eigenspace/Basic.lean Modified Mathlib/LinearAlgebra/Eigenspace/Triangularizable.lean Modified Mathlib/LinearAlgebra/Finsupp/LinearCombination.lean Modified Mathlib/LinearAlgebra/Finsupp/Supported.lean Modified Mathlib/LinearAlgebra/FreeModule/Int.lean Modified Mathlib/LinearAlgebra/LinearIndependent/Basic.lean Modified Mathlib/LinearAlgebra/LinearIndependent/Defs.lean Modified Mathlib/LinearAlgebra/LinearIndependent/Lemmas.lean Modified Mathlib/LinearAlgebra/Multilinear/DFinsupp.lean Modified Mathlib/LinearAlgebra/QuadraticForm/Radical.lean Modified Mathlib/LinearAlgebra/Span/Defs.lean Modified Mathlib/LinearAlgebra/SpecialLinearGroup.lean Modified Mathlib/Logic/Relation.lean Modified Mathlib/MeasureTheory/Integral/IntervalIntegral/Periodic.lean Modified Mathlib/MeasureTheory/SetSemiring.lean Modified Mathlib/ModelTheory/Algebra/Ring/Definability.lean Modified Mathlib/ModelTheory/Arithmetic/Presburger/Semilinear/Basic.lean Modified Mathlib/ModelTheory/Complexity.lean Modified Mathlib/ModelTheory/Definability.lean Modified Mathlib/ModelTheory/DirectLimit.lean Modified Mathlib/NumberTheory/ArithmeticFunction/Misc.lean Modified Mathlib/NumberTheory/NumberField/CMField.lean Modified Mathlib/NumberTheory/NumberField/House.lean Modified Mathlib/NumberTheory/NumberField/Ideal/KummerDedekind.lean Modified Mathlib/NumberTheory/NumberField/InfinitePlace/Basic.lean Modified Mathlib/NumberTheory/Padics/PadicVal/Basic.lean Modified Mathlib/NumberTheory/Padics/PadicVal/Defs.lean Modified Mathlib/NumberTheory/RamificationInertia/HilbertTheory.lean Modified Mathlib/Order/Birkhoff.lean Modified Mathlib/Order/Booleanisation.lean Modified Mathlib/Order/CompactlyGenerated/Basic.lean Modified Mathlib/Order/CompleteLattice/Finset.lean Modified Mathlib/Order/ConditionallyCompleteLattice/Finset.lean Modified Mathlib/Order/CountableDenseLinearOrder.lean Modified Mathlib/Order/Filter/AtTopBot/Finset.lean Modified Mathlib/Order/Filter/AtTopBot/Interval.lean Modified Mathlib/Order/Fin/Finset.lean Modified Mathlib/Order/Fin/SuccAboveOrderIso.lean Modified Mathlib/Order/Height.lean Modified Mathlib/Order/Interval/Finset/Basic.lean Modified Mathlib/Order/KrullDimension.lean Modified Mathlib/Order/Partition/Equipartition.lean Modified Mathlib/Order/Partition/Finpartition.lean Modified Mathlib/Order/Preorder/Finsupp.lean Modified Mathlib/Order/SupIndep.lean Modified Mathlib/Probability/Distributions/Gaussian/HasGaussianLaw/Independence.lean Modified Mathlib/Probability/Kernel/IonescuTulcea/Maps.lean Modified Mathlib/Probability/Kernel/RadonNikodym.lean Modified Mathlib/Probability/Moments/SubGaussian.lean Modified Mathlib/Probability/StrongLaw.lean Modified Mathlib/RingTheory/AdicCompletion/AsTensorProduct.lean Modified Mathlib/RingTheory/Algebraic/Basic.lean Modified Mathlib/RingTheory/AlgebraicIndependent/Basic.lean Modified Mathlib/RingTheory/Binomial.lean Modified Mathlib/RingTheory/Coprime/Lemmas.lean Modified Mathlib/RingTheory/DedekindDomain/GaussLemma.lean Modified Mathlib/RingTheory/DedekindDomain/Ideal/Lemmas.lean Modified Mathlib/RingTheory/DiscreteValuationRing/Basic.lean Modified Mathlib/RingTheory/FinitePresentation.lean Modified Mathlib/RingTheory/FiniteType.lean Modified Mathlib/RingTheory/Fintype.lean Modified Mathlib/RingTheory/Flat/Equalizer.lean Modified Mathlib/RingTheory/GradedAlgebra/HomogeneousLocalization.lean Modified Mathlib/RingTheory/Ideal/Height.lean Modified Mathlib/RingTheory/Ideal/KrullsHeightTheorem.lean Modified Mathlib/RingTheory/IntegralDomain.lean Modified Mathlib/RingTheory/KrullDimension/NonZeroDivisors.lean Modified Mathlib/RingTheory/KrullDimension/PID.lean Modified Mathlib/RingTheory/Length.lean Modified Mathlib/RingTheory/Localization/Integral.lean Modified Mathlib/RingTheory/Morita/Matrix.lean Modified Mathlib/RingTheory/Multiplicity.lean Modified Mathlib/RingTheory/MvPolynomial/Basic.lean Modified Mathlib/RingTheory/MvPolynomial/FreeCommRing.lean Modified Mathlib/RingTheory/MvPolynomial/Ideal.lean Modified Mathlib/RingTheory/MvPolynomial/IrreducibleQuadratic.lean Modified Mathlib/RingTheory/MvPolynomial/Symmetric/Defs.lean Modified Mathlib/RingTheory/MvPowerSeries/NoZeroDivisors.lean Modified Mathlib/RingTheory/MvPowerSeries/Order.lean Modified Mathlib/RingTheory/Noetherian/Basic.lean Modified Mathlib/RingTheory/PicardGroup.lean Modified Mathlib/RingTheory/Polynomial/ContentIdeal.lean Modified Mathlib/RingTheory/Polynomial/ScaleRoots.lean Modified Mathlib/RingTheory/Polynomial/UniqueFactorization.lean Modified Mathlib/RingTheory/PolynomialLaw/Basic.lean Modified Mathlib/RingTheory/PowerSeries/Order.lean Modified Mathlib/RingTheory/RingHom/StandardSmooth.lean Modified Mathlib/RingTheory/RootsOfUnity/PrimitiveRoots.lean Modified Mathlib/RingTheory/Smooth/Fiber.lean Modified Mathlib/RingTheory/Spectrum/Prime/Topology.lean Modified Mathlib/RingTheory/UniqueFactorizationDomain/Basic.lean Modified Mathlib/RingTheory/UniqueFactorizationDomain/Multiplicity.lean Modified Mathlib/RingTheory/UniqueFactorizationDomain/Nat.lean Modified Mathlib/RingTheory/Unramified/LocalRing.lean Modified Mathlib/RingTheory/Unramified/LocalStructure.lean Modified Mathlib/SetTheory/Cardinal/ENat.lean Modified Mathlib/SetTheory/Cardinal/Finite.lean Modified Mathlib/Tactic/NormNum/Irrational.lean Modified Mathlib/Topology/Algebra/InfiniteSum/Basic.lean Modified Mathlib/Topology/Algebra/InfiniteSum/Defs.lean Modified Mathlib/Topology/Algebra/Module/Basic.lean Modified Mathlib/Topology/Algebra/StarSubalgebra.lean Modified Mathlib/Topology/Algebra/Valued/ValuationTopology.lean Modified Mathlib/Topology/Algebra/Valued/ValuedField.lean Modified Mathlib/Topology/Constructions.lean Modified Mathlib/Topology/Instances/ZMultiples.lean Modified Mathlib/Topology/MetricSpace/Kuratowski.lean Modified Mathlib/Topology/NoetherianSpace.lean Modified Mathlib/Topology/Order.lean Modified Mathlib/Topology/Sets/CompactOpenCovered.lean Modified Mathlib/Topology/Sets/Opens.lean Modified Mathlib/Topology/UnitInterval.lean Modified MathlibTest/DefEqAbuse.lean - structure A - structure B - def b Modified MathlibTest/Quaternion.lean Added MathlibTest/grind/natCast_instance.lean Modified lake-manifest.json Modified lakefile.lean Modified lean-toolchain 2026-03-01 22:16:52 1335e17 chore(LinearAlgebra): reduce defeq abuse of `Set α = α → Prop` (#35888) ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/AffineSpace/AffineSubspace/Defs.lean Modified Mathlib/LinearAlgebra/AffineSpace/Combination.lean Modified Mathlib/LinearAlgebra/Finsupp/Span.lean Modified Mathlib/LinearAlgebra/LinearIndependent/Basic.lean Modified Mathlib/LinearAlgebra/LinearIndependent/Defs.lean Modified Mathlib/LinearAlgebra/TensorAlgebra/Basic.lean 2026-03-01 22:16:51 f66158c chore(CategoryTheory): reduce defeq abuse about `Set`s (#35885) ESTIMATED CHANGES Modified Mathlib/Algebra/Homology/HomotopyCategory/Pretriangulated.lean Modified Mathlib/AlgebraicTopology/SimplicialSet/StdSimplex.lean Modified Mathlib/CategoryTheory/Groupoid/Subgroupoid.lean Modified Mathlib/CategoryTheory/Limits/Final.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Biproducts.lean +/- def CategoryTheory.Limits.cokernelBiproductFromSubtypeIso +/- def CategoryTheory.Limits.cokernelCoforkBiproductFromSubtype +/- def CategoryTheory.Limits.kernelBiproductToSubtypeIso +/- def CategoryTheory.Limits.kernelForkBiproductToSubtype Modified Mathlib/CategoryTheory/Limits/Shapes/Preorder/TransfiniteCompositionOfShape.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Preorder/WellOrderContinuous.lean Modified Mathlib/CategoryTheory/Localization/Triangulated.lean Modified Mathlib/CategoryTheory/Monoidal/Cartesian/Grp_.lean Modified Mathlib/CategoryTheory/Monoidal/Cartesian/Mon_.lean Modified Mathlib/CategoryTheory/MorphismProperty/Concrete.lean Modified Mathlib/CategoryTheory/Sites/Canonical.lean Modified Mathlib/CategoryTheory/Sites/Coverage.lean Modified Mathlib/CategoryTheory/Sites/EffectiveEpimorphic.lean Modified Mathlib/CategoryTheory/Sites/Grothendieck.lean Modified Mathlib/CategoryTheory/Sites/Hypercover/ZeroFamily.lean Modified Mathlib/CategoryTheory/Sites/JointlySurjective.lean Modified Mathlib/CategoryTheory/Sites/MorphismProperty.lean Modified Mathlib/CategoryTheory/Sites/Precoverage.lean Modified Mathlib/CategoryTheory/Sites/PrecoverageToGrothendieck.lean Modified Mathlib/CategoryTheory/Sites/Pretopology.lean Modified Mathlib/CategoryTheory/Sites/Types.lean Modified Mathlib/CategoryTheory/Triangulated/Opposite/Pretriangulated.lean Modified Mathlib/CategoryTheory/Triangulated/Subcategory.lean Modified Mathlib/Order/Interval/Set/Final.lean 2026-03-01 21:22:33 f08eb80 chore(*): reduce defeq abuse about `Set` (#35795) - `Set α` vs `α → Prop` - unifying `{x // p x}` with `Elem {x | p x}` Some changes replace `h.symm` with `.symm h`. This happens when `h` is an `Iff` of two predicates about sets (e.g., `mem_iUnion`), but it gets unified with an `Iff` with LHS using predicates and RHS using `setOf`. With `.symm h`, Lean unifies `s` using LHS, then unfolds membership. With the old spelling, it tries to unify the old LHS with an expression involving membership and fails once we turn `Set` into a 1-field structure. ESTIMATED CHANGES Modified Mathlib/Algebra/BigOperators/Group/Finset/Basic.lean Modified Mathlib/Algebra/DirectSum/Basic.lean Modified Mathlib/Algebra/Ring/Subsemiring/MulOpposite.lean Modified Mathlib/CategoryTheory/IsConnected.lean Modified Mathlib/Data/Finset/Sort.lean Modified Mathlib/Data/Fintype/Card.lean Modified Mathlib/Data/Fintype/List.lean Modified Mathlib/Data/Nat/Count.lean Modified Mathlib/Data/QPF/Univariate/Basic.lean Modified Mathlib/Data/Set/Function.lean +/- theorem Set.injOn_subtype_val Modified Mathlib/Data/Set/Lattice.lean +/- theorem Set.iUnion_diff Modified Mathlib/Data/Set/Lattice/Image.lean Modified Mathlib/Data/Set/UnionLift.lean Modified Mathlib/GroupTheory/GroupAction/Defs.lean Modified Mathlib/GroupTheory/Perm/Sign.lean Modified Mathlib/Logic/Equiv/Set.lean Modified Mathlib/MeasureTheory/MeasurableSpace/Defs.lean Modified Mathlib/Order/Closure.lean +/- theorem LowerAdjoint.closure_le_closed_iff_le Modified Mathlib/Order/CompleteLattice/Basic.lean Modified Mathlib/Order/Filter/Basic.lean Modified Mathlib/Order/InitialSeg.lean Modified Mathlib/Order/Interval/Set/Image.lean Modified Mathlib/Order/Nucleus.lean Modified Mathlib/Order/SupClosed.lean Modified Mathlib/SetTheory/ZFC/Basic.lean Modified Mathlib/SetTheory/ZFC/PSet.lean 2026-03-01 20:17:39 693459c feat(Data/Finset/Sym): prove two lemmas (#35694) Prove: - `Finset.sym_map`, a rewriting lemma for `Sym.map` - `Sym.val_prod_eq_prod_count_pow`, evaluate the product of the elements in a `Sym` co-authored with @mariainesdff ESTIMATED CHANGES Modified Mathlib/Data/Finset/Sym.lean + theorem Finset.sym_map + theorem Finset.val_prod_eq_prod_count_pow 2026-03-01 19:22:22 3542f17 feat(Combinatorics/SimpleGraph): define `CompleteEquipartiteSubgraph` (#27599) Define the complete equipartite subgraphs in `r` parts each of size `t` in `G` as the `r` subsets of vertices each of size `t` such that vertices in distinct subsets are adjacent. In this case `Nonempty (G.CompleteEquipartiteSubgraph r t)` is equivalent to `completeEquipartiteGraph r t ⊑ G`, that is, finding `r` subsets of vertices each of size `t` in `G` such that vertices in distinct subsets are adjacent is equivalent to finding an injective homomorphism from `completeEquipartiteGraph r t` to `G`. ESTIMATED CHANGES Modified Mathlib/Combinatorics/SimpleGraph/CompleteMultipartite.lean + theorem SimpleGraph.CompleteEquipartiteSubgraph.card_verts + theorem SimpleGraph.CompleteEquipartiteSubgraph.disjoint + theorem SimpleGraph.CompleteEquipartiteSubgraph.nonempty_of_eq_zero_or_eq_zero + def SimpleGraph.CompleteEquipartiteSubgraph.ofCopy + def SimpleGraph.CompleteEquipartiteSubgraph.verts + theorem SimpleGraph.CompleteEquipartiteSubgraph.verts_eq_biUnion + structure SimpleGraph.CompleteEquipartiteSubgraph + theorem SimpleGraph.completeEquipartiteGraph_isContained_iff + theorem SimpleGraph.completeEquipartiteGraph_succ_isContained_iff 2026-03-01 16:35:39 a99960b chore: replace `aesop` with `lia` where possible (#35695) `lia` makes the proof intent explicit and is typically faster (often significantly so in the cases below). Trace profiling results (differences <30 ms considered measurement noise): * `AlgebraicGeometry.HasAffineProperty.affineAnd_iff`: 563 ms before, 449 ms after 🎉 * `MeromorphicAt.meromorphicTrailingCoeffAt_add_eq_add`: 976 ms before, 935 ms after 🎉 * `CategoryTheory.regularTopology.parallelPair_pullback_initial`: 334 ms before, 281 ms after 🎉 * `SimpleGraph.exists_isTutteViolator`: 3299 ms before, 2637 ms after 🎉 * `Equiv.Perm.Basis.ofPermHom_support`: 520 ms before, 87 ms after 🎉 * `Equiv.Perm.isCoatom_stabilizer_of_ncard_lt_ncard_compl`: unchanged 🎉 * `LinearMap.ker_noncommProd_eq_of_supIndep_ker`: 372 ms before, 197 ms after 🎉 * `LinearIndependent.of_pairwise_dual_eq_zero_one`: unchanged 🎉 * `RootPairing.Base.sub_notMem_range_root`: unchanged 🎉 * `exists_eq_const_mul_intervalIntegral_of_ae_nonneg`: 587 ms before, 232 ms after 🎉 * `Representation.FiniteCyclicGroup.coinvariantsKer_leftRegular_eq_ker`: unchanged 🎉 * `ValuativeRel.one_vle_div_iff`: unchanged 🎉 * `ValuativeRel.vle_div_iff`: unchanged 🎉 * `exists_leadingCoeff_pow_smul_mem_radical_conductor`: 547 ms before, 377 ms after 🎉 * `subset_of_eq_union_iUnion`: 1297 ms before, 75 ms after 🎉 * `Topology.RelCWComplex.Subcomplex.disjoint_openCell_subcomplex_of_not_mem`: 75 ms before, 32 ms after 🎉 Profiled using `set_option trace.profiler true in`. ESTIMATED CHANGES Modified Mathlib/AlgebraicGeometry/Morphisms/AffineAnd.lean Modified Mathlib/Analysis/Meromorphic/TrailingCoefficient.lean Modified Mathlib/CategoryTheory/Sites/Coherent/RegularSheaves.lean Modified Mathlib/Combinatorics/SimpleGraph/Tutte.lean Modified Mathlib/GroupTheory/Perm/Centralizer.lean Modified Mathlib/GroupTheory/Perm/MaximalSubgroups.lean Modified Mathlib/LinearAlgebra/FiniteDimensional/Basic.lean Modified Mathlib/LinearAlgebra/LinearIndependent/Lemmas.lean Modified Mathlib/LinearAlgebra/RootSystem/Base.lean Modified Mathlib/MeasureTheory/Integral/IntervalIntegral/MeanValue.lean Modified Mathlib/RepresentationTheory/Homological/FiniteCyclic.lean Modified Mathlib/RingTheory/Valuation/ValuativeRel/Basic.lean Modified Mathlib/RingTheory/ZariskisMainTheorem.lean Modified Mathlib/Topology/CWComplex/Classical/Basic.lean Modified Mathlib/Topology/CWComplex/Classical/Subcomplex.lean 2026-03-01 13:49:18 72b9c8d feat(Combinatorics/SimpleGraph): more API for Turán density (#29449) Refactors `tendsto_turanDensity` and implements `turanDensity_eq_sInf` and `isContained_of_card_edgeFinset` (theorems that are common in proofs involving Turán density). ESTIMATED CHANGES Modified Mathlib/Combinatorics/SimpleGraph/Extremal/TuranDensity.lean + theorem SimpleGraph.eventually_isContained_of_card_edgeFinset + theorem SimpleGraph.isContained_of_card_edgeFinset +/- theorem SimpleGraph.isEquivalent_extremalNumber + theorem SimpleGraph.isGLB_turanDensity + theorem SimpleGraph.turanDensity_eq_csInf 2026-03-01 13:37:40 e5686e7 feat(Combinatorics/SimpleGraph/Acyclic): acyclic and bridge theorems + golfing (#30640) ESTIMATED CHANGES Modified Mathlib/Combinatorics/SimpleGraph/Acyclic.lean + theorem SimpleGraph.IsAcyclic.isAcyclic_sup_fromEdgeSet_of_not_reachable + theorem SimpleGraph.isAcyclic_sup_fromEdgeSet_iff + theorem SimpleGraph.isTree_iff_maximal_isAcyclic +/- theorem SimpleGraph.maximal_isAcyclic_iff_reachable_eq Modified Mathlib/Combinatorics/SimpleGraph/Connectivity/Connected.lean + theorem SimpleGraph.IsBridge.sup_fromEdgeSet_of_not_reachable + theorem SimpleGraph.IsBridge.sup_fromEdgeSet_of_not_reachable_of_isBridge 2026-03-01 12:34:52 7ca1685 chore(Adjoin/Polynomial): deprecate module (#35913) Add deprecated module following #35883. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/RingTheory/Adjoin/Polynomial.lean 2026-03-01 10:55:10 ce269e5 chore(RingTheory/Adjoin/Polynomial): move to `Basic.lean` (#35883) Future changes in #35864 will add a new file `Transcendental.lean`. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Polynomial/Derivation.lean Renamed Mathlib/RingTheory/Adjoin/Polynomial.lean to Mathlib/RingTheory/Adjoin/Polynomial/Basic.lean +/- theorem Algebra.adjoin_eq_exists_aeval +/- theorem Algebra.adjoin_mem_exists_aeval +/- theorem Algebra.adjoin_singleton_eq_range_aeval +/- theorem Algebra.adjoin_singleton_induction +/- theorem Polynomial.adjoin_X +/- theorem Polynomial.aeval_mem_adjoin_singleton Modified Mathlib/RingTheory/Adjoin/Singleton.lean Modified Mathlib/RingTheory/Algebraic/Basic.lean Modified Mathlib/RingTheory/Algebraic/MvPolynomial.lean Modified Mathlib/RingTheory/FiniteType.lean Modified Mathlib/RingTheory/IntegralClosure/IsIntegral/Basic.lean Modified Mathlib/RingTheory/Polynomial/Ideal.lean 2026-03-01 08:33:01 338973d chore: fix whitespace (#35909) Found by extending the whitespace linter to proof bodies in #30658. ESTIMATED CHANGES Modified Mathlib/Algebra/Category/ModuleCat/Stalk.lean Modified Mathlib/Algebra/Homology/SpectralSequence/Basic.lean Modified Mathlib/Algebra/Lie/SemiDirect.lean Modified Mathlib/Algebra/Module/SpanRank.lean Modified Mathlib/AlgebraicGeometry/ColimitsOver.lean Modified Mathlib/AlgebraicGeometry/Group/Abelian.lean Modified Mathlib/AlgebraicGeometry/Morphisms/QuasiFinite.lean Modified Mathlib/AlgebraicGeometry/Normalization.lean Modified Mathlib/AlgebraicGeometry/Restrict.lean Modified Mathlib/AlgebraicGeometry/Spec.lean Modified Mathlib/AlgebraicGeometry/StructureSheaf.lean Modified Mathlib/AlgebraicGeometry/ZariskisMainTheorem.lean Modified Mathlib/AlgebraicTopology/ModelCategory/BifibrantObjectHomotopy.lean Modified Mathlib/AlgebraicTopology/ModelCategory/FibrantObjectHomotopy.lean Modified Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Instances.lean Modified Mathlib/Analysis/Complex/Periodic.lean Modified Mathlib/Analysis/Complex/Poisson.lean Modified Mathlib/Analysis/Convex/Approximation.lean Modified Mathlib/Analysis/InnerProductSpace/Harmonic/HarmonicContOnCl.lean Modified Mathlib/Analysis/Normed/Group/Bounded.lean Modified Mathlib/Analysis/Normed/Operator/Banach.lean Modified Mathlib/Analysis/Normed/Ring/Basic.lean Modified Mathlib/CategoryTheory/Limits/FunctorCategory/BinaryBiproducts.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Pullback/PullbackObjObj.lean Modified Mathlib/CategoryTheory/Monoidal/Cartesian/Grp_.lean Modified Mathlib/CategoryTheory/RegularCategory/Basic.lean Modified Mathlib/CategoryTheory/Sites/DenseSubsite/OneHypercoverDense.lean Modified Mathlib/CategoryTheory/Sites/Descent/DescentDataPrime.lean Modified Mathlib/CategoryTheory/Triangulated/TStructure/AbelianSubcategory.lean Modified Mathlib/Geometry/Manifold/IsManifold/ExtChartAt.lean Modified Mathlib/GroupTheory/Focal.lean +/- theorem Subgroup.commutator_inf_eq_focalSubgroup Modified Mathlib/GroupTheory/GroupAction/OfQuotient.lean Modified Mathlib/InformationTheory/Coding/KraftMcMillan.lean Modified Mathlib/LinearAlgebra/Matrix/Stochastic.lean Modified Mathlib/MeasureTheory/Function/ConditionalLExpectation.lean Modified Mathlib/MeasureTheory/Function/LpSeminorm/LpNorm.lean Modified Mathlib/MeasureTheory/Integral/IntervalIntegral/AbsolutelyContinuousFun.lean Modified Mathlib/MeasureTheory/VectorMeasure/BoundedVariation.lean Modified Mathlib/NumberTheory/ModularForms/DedekindEta.lean Modified Mathlib/NumberTheory/RamificationInertia/HilbertTheory.lean Modified Mathlib/Order/ConditionallyCompletePartialOrder/Defs.lean Modified Mathlib/Order/ScottContinuity.lean Modified Mathlib/Order/Types/Arithmetic.lean Modified Mathlib/Order/Types/Defs.lean Modified Mathlib/RepresentationTheory/Irreducible.lean Modified Mathlib/RingTheory/Etale/QuasiFinite.lean Modified Mathlib/RingTheory/Ideal/AssociatedPrime/Basic.lean Modified Mathlib/RingTheory/Localization/AtPrime/Basic.lean Modified Mathlib/RingTheory/QuasiFinite/Weakly.lean Modified Mathlib/RingTheory/Smooth/IntegralClosure.lean Modified Mathlib/RingTheory/TensorProduct/IncludeLeftSubRight.lean Modified Mathlib/RingTheory/Unramified/LocalStructure.lean Modified Mathlib/RingTheory/ZariskisMainTheorem.lean Modified Mathlib/SetTheory/Ordinal/Notation.lean Modified Mathlib/Tactic/CategoryTheory/Coherence/Datatypes.lean Modified Mathlib/Tactic/Module.lean Modified Mathlib/Topology/Algebra/Module/ClosedSubmodule.lean Modified Mathlib/Topology/Algebra/Monoid/Defs.lean Modified Mathlib/Topology/Algebra/RestrictedProduct/Basic.lean Modified Mathlib/Topology/Algebra/RestrictedProduct/Units.lean Modified Mathlib/Topology/ContinuousMap/ContinuousMapZero.lean +/- theorem ContinuousMapZero.continuous_postcomp Modified Mathlib/Topology/Irreducible.lean Modified Mathlib/Topology/LocallyFinsupp.lean 2026-03-01 07:31:07 b5d3855 feat(RingTheory): Module being injective is local property (#31995) In this PR, we proved that for module over Noetherian ring, being injective is local property. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Module/Equiv/Defs.lean + theorem RingEquiv.symm_toSemilinearEquiv_symm_apply Modified Mathlib/Algebra/Module/Injective.lean + theorem Module.Baer.iff_surjective + theorem Module.Injective.of_ringEquiv Added Mathlib/RingTheory/LocalProperties/Injective.lean + theorem Module.injective_of_isLocalizedModule + theorem Module.injective_of_localization_maximal' + theorem Module.injective_of_localization_maximal 2026-03-01 06:36:38 99520ad feat(Tactic): add `#defeq_abuse` tactic combinator (#35750) This PR adds `#defeq_abuse in`, a tactic/command combinator for diagnosing `backward.isDefEq.respectTransparency` failures. It runs the given tactic or command with the option both `true` and `false`, and when the strict setting fails, walks the trace tree to identify the specific `isDefEq` checks that are root causes. Reusable trace-tree analysis utilities are extracted into `Mathlib.Lean.MessageData.Trace`: - `TraceResult` / `traceResultOf` — structured access to the ✅/❌/💥 status encoding - `foldTraceNodes` — generic fold over `MessageData` trace trees - `stripTraceResultPrefix` / `dedupByString` — helpers for trace content comparison Companion lean4 PRs that will simplify this further: - https://github.com/leanprover/lean4/pull/12698 — structured `TraceResult` field on `TraceData` - https://github.com/leanprover/lean4/pull/12699 — `Meta.synthInstance.apply` trace class See https://leanprover.zulipchat.com/#narrow/channel/113488-general/topic/backward.2EisDefEq.2ErespectTransparency 🤖 Prepared with Claude Code ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Lean/MessageData/Trace.lean + inductive Lean.MessageData.TraceResult + def Lean.MessageData.dedupByString + def Lean.MessageData.extractInstName + def Lean.MessageData.stripTraceResultPrefix + def Lean.MessageData.traceResultOf Modified Mathlib/Tactic.lean Modified Mathlib/Tactic/Common.lean Added Mathlib/Tactic/DefEqAbuse.lean + inductive Lean.MessageData.VisitStep + def Lean.MessageData.visitWithAndAscendM + def Lean.MessageData.visitWithM + def Mathlib.Tactic.DefEqAbuse.analyzeTraces + def Mathlib.Tactic.DefEqAbuse.onlyOnDefEqNodes + def Mathlib.Tactic.DefEqAbuse.reportDefEqAbuse Added MathlibTest/DefEqAbuse.lean + structure A + structure B + def MyPred + def MySub₂.toAddSubgroup + structure MySub₂ + def b + def myOp + theorem myPred_disjoint_singleton_right + def myTestFun + def testVirtualParent + def testVirtualParentFixed + theorem test_zo_cmd_abuse + theorem zo_eq_iff 2026-03-01 00:14:34 b5cac98 feat(CategoryTheory/Adhesive): subobjects in adhesive categories have binary coproducts (#29870) Adds `Adhesive.Subobject`, and formalizes Theorem 5.1 in https://www.ioc.ee/~pawel/papers/adhesivejournal.pdf. Given `A B Z : C` with `C` adhesive, and `a : A ⟶ Z`, ` b : B ⟶ Z` monomorphisms, then `pushout.desc a b pullback.condition` is also a monomorphism. This result will be useful in showing that the pushout-product of monomorphisms is also a monomorphism. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/CategoryTheory/Adhesive/Basic.lean + theorem CategoryTheory.Adhesive.isPushout_isPullback_isPullback_hom_ext + theorem CategoryTheory.IsPushout.IsVanKampen.exists_cube_filling + theorem CategoryTheory.IsPushout.isVanKampen_iff' + theorem CategoryTheory.IsPushout.isVanKampen_isPullback_isPullback_hom_ext Added Mathlib/CategoryTheory/Adhesive/Subobject.lean 2026-02-28 21:58:59 474a9dd feat(CategoryTheory/Sites): constructor for isomorphisms of pre-`1`-hypercovers (#35887) To construct an isomorphism of pre-`1`-hypercovers, the compatibility conditions need to be only checked in the forward direction. The proof goes through quite a bit of two-staged dependent type theory hell, so we also add some API for handling this. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Sites/Hypercover/One.lean + theorem CategoryTheory.PreOneHypercover.Hom.ext' + def CategoryTheory.PreOneHypercover.congrIndexOneOfEq + def CategoryTheory.PreOneHypercover.congrIndexOneOfEqIso + theorem CategoryTheory.PreOneHypercover.congrIndexOneOfEqIso_hom_naturality + theorem CategoryTheory.PreOneHypercover.congrIndexOneOfEqIso_hom_p₁ + theorem CategoryTheory.PreOneHypercover.congrIndexOneOfEqIso_inv_naturality + theorem CategoryTheory.PreOneHypercover.congrIndexOneOfEqIso_inv_p₁ + theorem CategoryTheory.PreOneHypercover.congrIndexOneOfEqIso_inv_p₂ + theorem CategoryTheory.PreOneHypercover.congrIndexOneOfEqIso_refl + theorem CategoryTheory.PreOneHypercover.congrIndexOneOfEq_congrFun + theorem CategoryTheory.PreOneHypercover.congrIndexOneOfEq_equiv + theorem CategoryTheory.PreOneHypercover.congrIndexOneOfEq_naturality + theorem CategoryTheory.PreOneHypercover.congrIndexOneOfEq_refl + def CategoryTheory.PreOneHypercover.isoMk + theorem CategoryTheory.PreOneHypercover.isoMk_aux 2026-02-28 21:58:57 af9e088 feat: CategoryTheory.toSheafify induces an isomorphism on stalks (#35386) The main result `TopCat.Presheaf.stalkFunctor_map_unit_toSheafify_isIso` says that for a presheaf on a topological space, the induced map on stalks of `CategoryTheory.toSheafify` is an isomorphism. This is similar to `TopCat.Presheaf.sheafifyStalkIso` defined in the same file except that the latter is only for sheaves of Types. The proof involved the abstract nonsense `CategoryTheory.Adjunction.isIso_map_unit_of_isLeftAdjoint_comp` which should probably go in a different file but feels too specific to go into any of the files in `CategoryTheory.Adjunction`. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Adjunction/FullyFaithful.lean + theorem CategoryTheory.Adjunction.isIso_map_unit_of_isLeftAdjoint_comp Modified Mathlib/Topology/Sheaves/Sheafify.lean + theorem TopCat.Presheaf.stalkFunctor_map_unit_toSheafify_isIso Modified Mathlib/Topology/Sheaves/Skyscraper.lean 2026-02-28 21:28:01 9ec3cc7 feat(Geometry/Manifold): the interior of a manifold is open (#33189) Show that the interior and boundary of manifolds are well-defined in the sense that the definition of interior points does not depend on a choice of chart, and conclude that the interior and boundary of manifolds are open resp. closed. We only do this for $C^1$ manifolds because while it holds for finite-dimensional topological manifolds too, it is not clear to me whether it holds for infinite-dimensional topological manifolds, so that the finite-dimensional topological case probably needs to be treated separately from this infinite-dimensional $C^1$ case anyway. ESTIMATED CHANGES Modified Mathlib/Geometry/Manifold/IsManifold/InteriorBoundary.lean + theorem DifferentiableAt.mem_interior_convex_of_surjective_fderiv + theorem ModelWithCorners.isBoundaryPoint_iff_of_mem_atlas + theorem ModelWithCorners.isInteriorPoint_iff_of_mem_atlas + theorem ModelWithCorners.mem_interior_range_iff_of_mem_atlas + theorem ModelWithCorners.mem_interior_range_of_mem_interior_range_of_mem_atlas Modified Mathlib/Topology/Closure.lean + theorem mem_frontier_iff_notMem_interior + theorem mem_interior_iff_notMem_frontier 2026-02-28 19:13:14 e6da408 feat(Topology/Algebra/Ring/Ideal): the connected component of zero is an ideal (#35403) This PR defines the connected component of zero as an ideal. ESTIMATED CHANGES Modified Mathlib/Topology/Algebra/Ring/Ideal.lean + theorem Ideal.coe_connectedComponentOfZero + def Ideal.connectedComponentOfZero 2026-02-28 18:26:47 9e48002 feat(scripts/autolabel): introduce topic label dependencies (#34066) Introduce label dependencies: If multiple labels are applicable, then the applicable labels are filtered following these dependencies transitively. For example if `t-ring-theory` was given a dependency on `t-algebra` and `t-algebra` one on `t-data`, then the list of applicable labels `[t-ring-theory, t-algebra, t-data]` would be reduced to `[t-ring-theory]`, meaning that the bot would actually be able to apply `t-ring-theory` as it is the only applicable label remaining. - [x] depends on: #34949 ESTIMATED CHANGES Modified scripts/autolabel.lean + def AutoLabel.dropDependentLabels 2026-02-28 17:48:04 bc1b075 feat(Data/Set/Card): tag `encard_le_encard` with `@[gcongr]` (#35894) ESTIMATED CHANGES Modified Mathlib/Data/Set/Card.lean 2026-02-28 16:57:21 b6a12fd feat(label_new_contributor): link to the 'why is my PR not on the queue' dashboard (#35583) Follow-up to #35109, discussed [also on zulip](https://leanprover.zulipchat.com/#narrow/channel/113488-general/topic/Adding.20new.20contributor.20comment.20on.20PR/near/573405975). ESTIMATED CHANGES Modified .github/workflows/label_new_contributor.yml 2026-02-28 15:12:11 24cb29a chore(SetTheory/Ordinal/Arithmetic): avoid terminal `simp only` (#35854) As per convention. Plus other small stylistic changes around `Ordinal.mod`. ESTIMATED CHANGES Modified Mathlib/SetTheory/Ordinal/Arithmetic.lean +/- theorem Ordinal.mod_lt +/- theorem Ordinal.mod_one +/- theorem Ordinal.mod_self +/- theorem Ordinal.mod_zero +/- theorem Ordinal.zero_mod 2026-02-28 14:07:07 634ad4e feat(RingTheory/Ideal/Span): add pair lemmas (#25992) This PR continues the work from #25323. Original PR: https://github.com/leanprover-community/mathlib4/pull/25323 ESTIMATED CHANGES Modified Mathlib/AlgebraicGeometry/EllipticCurve/Affine/Point.lean Modified Mathlib/RingTheory/Ideal/Maps.lean +/- theorem Ideal.comap_map_of_bijective + theorem Ideal.map_eq_top_of_bijective +/- theorem Ideal.map_span Modified Mathlib/RingTheory/Ideal/Span.lean +/- theorem Ideal.mem_span_insert' + theorem Ideal.span_insert_abs + theorem Ideal.span_insert_neg + theorem Ideal.span_pair_abs + theorem Ideal.span_pair_add_left + theorem Ideal.span_pair_add_left_mul +/- theorem Ideal.span_pair_add_mul_left +/- theorem Ideal.span_pair_add_mul_right + theorem Ideal.span_pair_add_right + theorem Ideal.span_pair_add_right_mul + theorem Ideal.span_pair_left_add + theorem Ideal.span_pair_left_mul_add + theorem Ideal.span_pair_mul_left_add + theorem Ideal.span_pair_mul_right_add + theorem Ideal.span_pair_neg + theorem Ideal.span_pair_right_add + theorem Ideal.span_pair_right_mul_add + theorem Ideal.span_pair_sub_left' + theorem Ideal.span_pair_sub_left + theorem Ideal.span_pair_sub_left_mul + theorem Ideal.span_pair_sub_mul_left + theorem Ideal.span_pair_sub_mul_right + theorem Ideal.span_pair_sub_right' + theorem Ideal.span_pair_sub_right + theorem Ideal.span_pair_sub_right_mul + theorem Ideal.span_pair_zero +/- theorem Ideal.span_singleton_abs +/- theorem Ideal.span_singleton_neg +/- theorem Ideal.span_singleton_zero 2026-02-28 12:29:18 3bfd02b feat(Algebra/Homology): definition of spectral objects in abelian categories (#35357) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Homology/SpectralObject/Basic.lean + structure CategoryTheory.Abelian.SpectralObject.Hom + theorem CategoryTheory.Abelian.SpectralObject.composableArrows₅_exact + theorem CategoryTheory.Abelian.SpectralObject.epi_H_map_twoδ₁Toδ₀' + theorem CategoryTheory.Abelian.SpectralObject.epi_H_map_twoδ₁Toδ₀ + theorem CategoryTheory.Abelian.SpectralObject.exact₁ + theorem CategoryTheory.Abelian.SpectralObject.exact₂ + theorem CategoryTheory.Abelian.SpectralObject.exact₃ + theorem CategoryTheory.Abelian.SpectralObject.isIso_H_map_twoδ₁Toδ₀' + theorem CategoryTheory.Abelian.SpectralObject.isIso_H_map_twoδ₁Toδ₀ + theorem CategoryTheory.Abelian.SpectralObject.isZero_H_map_mk₁_of_isIso + theorem CategoryTheory.Abelian.SpectralObject.mono_H_map_twoδ₁Toδ₀' + theorem CategoryTheory.Abelian.SpectralObject.mono_H_map_twoδ₁Toδ₀ + def CategoryTheory.Abelian.SpectralObject.sc₁ + def CategoryTheory.Abelian.SpectralObject.sc₂ + def CategoryTheory.Abelian.SpectralObject.sc₃ + theorem CategoryTheory.Abelian.SpectralObject.zero₁ + theorem CategoryTheory.Abelian.SpectralObject.zero₂ + theorem CategoryTheory.Abelian.SpectralObject.zero₃ + def CategoryTheory.Abelian.SpectralObject.δ + theorem CategoryTheory.Abelian.SpectralObject.δ_naturality + theorem CategoryTheory.Abelian.SpectralObject.δ_δ + structure CategoryTheory.Abelian.SpectralObject 2026-02-28 12:29:17 4f48d80 fix: provide `#min_imports` and other commands in `Mathlib.Init` (#35143) Make these commands available across Mathlib: - `#help` - `#min_imports` - `#min_imports in` - `#find_home` - `proof_wanted` Add tests that verify commands work when importing basic files, to prevent regressions. ESTIMATED CHANGES Modified Mathlib/Init.lean Modified Mathlib/Tactic/Common.lean Added MathlibTest/BasicFiles/Init.lean Added MathlibTest/BasicFiles/Tactic.lean Added MathlibTest/BasicFiles/TacticBasic.lean + theorem test_lemma + theorem test_type_star Added MathlibTest/BasicFiles/TacticCommon.lean + theorem test_check_tactic + theorem test_count_heartbeats + theorem test_print_sorries + theorem test_whatsnew Deleted MathlibTest/HashLint.lean Modified MathlibTest/UnusedInstancesInType/Fintype.lean 2026-02-28 12:29:15 027352f feat(AlgebraicGeometry/IdealSheaf/IrreducibleComponent): subscheme structure on an irreducible component (#35106) This PR defines the subscheme structure on an irreducible component of a Noetherian scheme. See the module docstring for more details on this. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/AlgebraicGeometry/IdealSheaf/IrreducibleComponent.lean + def AlgebraicGeometry.Scheme.irreducibleComponentIdeal + theorem AlgebraicGeometry.Scheme.irreducibleComponentIdeal_def + def AlgebraicGeometry.Scheme.irreducibleComponentOpen + theorem AlgebraicGeometry.Scheme.irreducibleComponentOpen_eq_top + theorem AlgebraicGeometry.Scheme.irreducibleComponentι_apply Modified Mathlib/AlgebraicGeometry/IdealSheaf/Subscheme.lean + theorem AlgebraicGeometry.Scheme.IdealSheafData.isIso_subschemeι_iff_eq_bot 2026-02-28 12:16:40 239118b feat(CategoryTheory/Limits/FormalCoproducts): an extradegeneracy for the Cech object (#35035) We show that the Cech object of `U : FormalCoproduct C` has an extra degeneracy when there is a map `T ⟶ U.obj i₀` for some `i₀` where `T` is a terminal object. (In a future PR, we shall deduce that the Cech cohomology relative to a cover is trivial when the cover contains a terminal object.) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/AlgebraicTopology/SimplicialObject/Basic.lean + def CategoryTheory.CosimplicialObject.augmentOfIsInitial + def CategoryTheory.SimplicialObject.augmentOfIsTerminal Modified Mathlib/CategoryTheory/Limits/FormalCoproducts/Cech.lean + theorem CategoryTheory.Limits.FormalCoproduct.mapPower_π Added Mathlib/CategoryTheory/Limits/FormalCoproducts/ExtraDegeneracy.lean + theorem CategoryTheory.Limits.FormalCoproduct.cechIsoCechNerveApp_hom_π + theorem CategoryTheory.Limits.FormalCoproduct.cechIsoCechNerveApp_inv_π 2026-02-28 11:22:38 287feb8 chore(Algebra): fix diamond with `Algebra.compHom` at reducible transparency (#35739) On latest mathlib with `backward.isDefEq.respectTransparency true`, there is a diamond between `Algebra.compHom` and `Module.compHom`: ``` import Mathlib example {R S A : Type*} [CommSemiring R] [CommSemiring S] [Semiring A] [Algebra S A] (f : R →+* S) : (Algebra.compHom A f).toModule = Module.compHom A f := by with_reducible_and_instances rfl ``` This PR fixes it by replacing `smul s a := f s • a` with `__ := Module.compHom A f`. ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/Defs.lean Modified MathlibTest/instance_diamonds.lean 2026-02-28 11:04:50 766261d feat(CategoryTheory/Triangulated): abelian subcategories (#35387) This PR adds a criteria to show that an additive subcategory of a triangulated category is abelian. (This shall be used to show that the heart of a t-structure is an abelian category.) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Triangulated/TStructure/AbelianSubcategory.lean + def CategoryTheory.Triangulated.AbelianSubcategory.admissibleMorphism + theorem CategoryTheory.Triangulated.AbelianSubcategory.epi_πQ + theorem CategoryTheory.Triangulated.AbelianSubcategory.eq_zero_of_hom_shift_pos + theorem CategoryTheory.Triangulated.AbelianSubcategory.exists_desc_πQ + theorem CategoryTheory.Triangulated.AbelianSubcategory.exists_distinguished_triangle_of_epi + theorem CategoryTheory.Triangulated.AbelianSubcategory.exists_lift_ιK + theorem CategoryTheory.Triangulated.AbelianSubcategory.hasCokernel + theorem CategoryTheory.Triangulated.AbelianSubcategory.hasCokernel_of_admissibleMorphism + theorem CategoryTheory.Triangulated.AbelianSubcategory.hasKernel + theorem CategoryTheory.Triangulated.AbelianSubcategory.hasKernel_of_admissibleMorphism + theorem CategoryTheory.Triangulated.AbelianSubcategory.mono_ιK + theorem CategoryTheory.Triangulated.AbelianSubcategory.mor₁_πQ + theorem CategoryTheory.Triangulated.AbelianSubcategory.shift_ι_map_ιK + theorem CategoryTheory.Triangulated.AbelianSubcategory.ιK_mor₁ + theorem CategoryTheory.Triangulated.AbelianSubcategory.ι_map_πQ 2026-02-28 01:55:36 abc669d chore(misc): fix indentation in markdown lists (#35714) We avoid lazy continuation of list items by either properly indenting continuation lines, or disconnecting text that unintentionally serve as a lazy continuation of a list. We do this in order to disambiguate, since lazy continuation makes the author's intent less clear. ESTIMATED CHANGES Modified Archive/Imo/Imo2001Q3.lean Modified Archive/Imo/Imo2010Q5.lean Modified Archive/Wiedijk100Theorems/SumOfPrimeReciprocalsDiverges.lean Modified Counterexamples/DiscreteTopologyNonDiscreteUniformity.lean Modified MathlibTest/CategoryTheory/Bicategory/Normalize.lean Modified MathlibTest/CategoryTheory/Monoidal/Normalize.lean Modified MathlibTest/slow_simp.lean 2026-02-27 23:05:52 a8924dc chore: update Mathlib dependencies 2026-02-27 (#35876) This PR updates the Mathlib dependencies. ESTIMATED CHANGES Modified lake-manifest.json 2026-02-27 22:05:45 861e4da feat(Geometry/Manifold): API for extended coordinate changes (#35391) Introduce a definition `I.extendCoordChange e e'` for what previously appeared in lemmas as `(e.extend I).symm ≫ e'.extend I`, and provide some more API lemmas. Split out from #33189. ESTIMATED CHANGES Modified Mathlib/Geometry/Manifold/IsManifold/ExtChartAt.lean + theorem ModelWithCorners.contDiffOn_extendCoordChange + theorem ModelWithCorners.contDiffOn_extendCoordChange_symm + theorem ModelWithCorners.contDiffWithinAt_extendCoordChange' + theorem ModelWithCorners.contDiffWithinAt_extendCoordChange + theorem ModelWithCorners.extendCoordChange_source + theorem ModelWithCorners.extendCoordChange_source_mem_nhdsWithin' + theorem ModelWithCorners.extendCoordChange_source_mem_nhdsWithin + theorem ModelWithCorners.extendCoordChange_symm + theorem ModelWithCorners.extendCoordChange_target + theorem ModelWithCorners.isInvertible_fderivWithin_extendCoordChange + theorem ModelWithCorners.uniqueDiffOn_extendCoordChange_source + theorem ModelWithCorners.uniqueDiffOn_extendCoordChange_target - theorem OpenPartialHomeomorph.contDiffOn_extend_coord_change - theorem OpenPartialHomeomorph.contDiffWithinAt_extend_coord_change' - theorem OpenPartialHomeomorph.contDiffWithinAt_extend_coord_change - theorem OpenPartialHomeomorph.extend_coord_change_source - theorem OpenPartialHomeomorph.extend_coord_change_source_mem_nhdsWithin' - theorem OpenPartialHomeomorph.extend_coord_change_source_mem_nhdsWithin +/- theorem OpenPartialHomeomorph.extend_image_source_inter Modified Mathlib/Geometry/Manifold/VectorBundle/Tangent.lean Modified scripts/nolints_prime_decls.txt 2026-02-27 19:19:16 1d4ec73 feat: root space decomposition of ideals of Lie algebras (#35326) Root space decomposition of ideals of Lie algebras ESTIMATED CHANGES Modified Mathlib/Algebra/Lie/Submodule.lean + theorem LieSubmodule.map_restrictLie_incl_top + theorem LieSubmodule.mem_restr + def LieSubmodule.restr + theorem LieSubmodule.restr_toSubmodule Modified Mathlib/Algebra/Lie/Weights/Basic.lean + theorem LieModule.eq_iSup_inf_genWeightSpace Modified Mathlib/Algebra/Lie/Weights/Cartan.lean + theorem LieAlgebra.lieIdeal_eq_iSup_inf_genWeightSpace + theorem LieAlgebra.lieIdeal_eq_inf_cartan_sup_biSup_inf_rootSpace Modified Mathlib/Algebra/Lie/Weights/Killing.lean + theorem LieAlgebra.IsKilling.lieIdeal_eq_inf_cartan_sup_biSup_rootSpace Modified Mathlib/LinearAlgebra/FiniteDimensional/Basic.lean + theorem Submodule.isAtom_iff_finrank_eq_one 2026-02-27 19:19:14 f814a02 chore: move a lemma (#31339) This fixes a TODO in that file. ESTIMATED CHANGES Modified Mathlib/Geometry/Manifold/MFDeriv/UniqueDifferential.lean - theorem Bundle.Trivialization.mdifferentiable Modified Mathlib/Geometry/Manifold/VectorBundle/MDifferentiable.lean + theorem Bundle.Trivialization.Bundle.Trivialization.mdifferentiable 2026-02-27 18:14:37 9f1d783 chore(CategoryTheory): a regular monomorphism in `Cᵒᵖ` is a regular epimorphism in `C` (#35872) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Limits/Shapes/RegularMono.lean + theorem CategoryTheory.isRegularEpi_op_iff_isRegularMono + theorem CategoryTheory.isRegularEpi_unop_iff_isRegularMono + theorem CategoryTheory.isRegularMono_op_iff_isRegularEpi + theorem CategoryTheory.isRegularMono_unop_iff_isRegularEpi 2026-02-27 18:14:35 1de4d61 feat(Data/Set/Basic): add some missing lemmas (#35416) This PR continues the work from #22837. Original PR: https://github.com/leanprover-community/mathlib4/pull/22837 ESTIMATED CHANGES Modified Mathlib/Data/Finset/Defs.lean + theorem Finset.subset_iff_notMem Modified Mathlib/Data/Set/Basic.lean + theorem Set.subset_iff_notMem 2026-02-27 18:14:32 75ec123 chore(Translate): use `Term.applyAttributes` (#35409) This PR uses the function `Term.applyAttributes` in `to_additive`/`to_dual` for applying attributes. Previously, the code that was there was a copy-paste of `Term.applyAttributes` (and this was outdated due to changes from the module system). One advantage of the original implementation was the fact that it only calls `pushInfoLeaf` once, and in the new implementation this will typically be done twice for the same syntax. However, I think that this is not a good enough reason for duplicating so much code. ESTIMATED CHANGES Modified Mathlib/Tactic/Translate/Core.lean 2026-02-27 17:29:57 8cab065 chore(CategoryTheory): add `IsRegularEpi.of_epi_of_exists` and `IsRegularEpi.exists_of_isKernelPair` (#35862) From Proetale. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Limits/Shapes/KernelPair.lean + theorem CategoryTheory.IsRegularEpi.exists_of_isKernelPair Modified Mathlib/CategoryTheory/Limits/Shapes/RegularMono.lean + theorem CategoryTheory.IsRegularEpi.of_epi_of_exists 2026-02-27 17:29:56 1c9a955 feat(CategoryTheory/Sites): descent data when we have pullbacks (#35396) In this file, given a pseudofunctor `F` from `LocallyDiscrete Cᵒᵖ` to `Cat`, a family of maps `f i : X i ⟶ S` in the category `C`, chosen pullbacks `sq` and threefold wide pullbacks `sq₃` for these morphisms, we define a category `F.DescentData' sq sq₃` of objects over the `X i` equipped with a descent data relative to the morphisms `f i : X i ⟶ S`, where the data and compatibilities are expressed using the chosen pullbacks. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Sites/Descent/DescentDataPrime.lean + structure CategoryTheory.Pseudofunctor.DescentData'.Hom + theorem CategoryTheory.Pseudofunctor.DescentData'.comm + theorem CategoryTheory.Pseudofunctor.DescentData'.comp_pullHom'' + theorem CategoryTheory.Pseudofunctor.DescentData'.comp_pullHom' + theorem CategoryTheory.Pseudofunctor.DescentData'.hom_ext + def CategoryTheory.Pseudofunctor.DescentData'.isoMk + theorem CategoryTheory.Pseudofunctor.DescentData'.pullHom'_eq_hom + theorem CategoryTheory.Pseudofunctor.DescentData'.pullHom'_eq_pullHom + theorem CategoryTheory.Pseudofunctor.DescentData'.pullHom'_p₁_p₂ + theorem CategoryTheory.Pseudofunctor.DescentData'.pullHom'_self' + theorem CategoryTheory.Pseudofunctor.DescentData'.pullHom'_self + theorem CategoryTheory.Pseudofunctor.DescentData'.pullHom'₁₂_eq_pullHom_of_chosenPullback₃ + theorem CategoryTheory.Pseudofunctor.DescentData'.pullHom'₁₃_eq_pullHom_of_chosenPullback₃ + theorem CategoryTheory.Pseudofunctor.DescentData'.pullHom'₂₃_eq_pullHom_of_chosenPullback₃ + theorem CategoryTheory.Pseudofunctor.DescentData'.pullHom_pullHom' + structure CategoryTheory.Pseudofunctor.DescentData' 2026-02-27 17:29:54 6f0dab2 doc(AlgebraicGeometry/Morphisms/Basic): tidy docstrings (#35320) Misc. documentation updates and fixes. ESTIMATED CHANGES Modified Mathlib/AlgebraicGeometry/Morphisms/Basic.lean 2026-02-27 17:29:52 f8dd610 chore: rename nat_abs_sum_le (#35309) ESTIMATED CHANGES Modified Mathlib/Algebra/BigOperators/Group/Finset/Basic.lean + theorem Int.natAbs_sum_le - theorem nat_abs_sum_le 2026-02-27 17:29:51 496a4aa chore(Data/Nat/Choose): add grind annotations (#35279) While doing some work for Numina, I noticed that there was a point at which I wanted to have `Nat.choose_eq_zero_of_lt` applied as a `grind <=` lemma. This PR adds a grind annotation here, as well as a few other grind annotations to the file, and tries to golf using these where appropriate. ESTIMATED CHANGES Modified Mathlib/Data/Nat/Choose/Basic.lean 2026-02-27 16:55:43 2a39078 feat(RingTheory): pure ideals (#35516) We show some properties of pure ideals, which are ideals for which `R ⧸ I` is `R`-flat. From Proetale. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/LinearAlgebra/Quotient/Basic.lean + theorem Submodule.ker_mapQ Modified Mathlib/LinearAlgebra/TensorProduct/Quotient.lean + theorem TensorProduct.quotTensorEquivQuotSMul_mk_one_tmul Added Mathlib/RingTheory/Ideal/Pure.lean + theorem Ideal.Pure.of_inf_eq_mul + theorem Ideal.Pure.of_isIdempotentElem + theorem Ideal.exists_eq_mul_of_pure + theorem Ideal.inf_eq_mul_of_pure + theorem Ideal.isIdempotentElem_of_pure + theorem Ideal.ker_piRingHom_atPrime_eq_of_pure + theorem Ideal.le_ker_atPrime_of_forall_exists_eq_mul + theorem Ideal.zeroLocus_inj_of_pure + theorem injective_lTensor_quotient_iff_inf_eq_mul Modified Mathlib/RingTheory/LocalProperties/Basic.lean + theorem Ideal.iInf_ker_le Modified Mathlib/RingTheory/Localization/AtPrime/Basic.lean + theorem IsLocalization.AtPrime.map_eq_top_of_not_le Modified Mathlib/RingTheory/Localization/Ideal.lean + theorem IsLocalization.map_eq_top_of_not_subset 2026-02-27 16:55:41 1dc6e34 feat: Semi-direct sum of Lie algebras (#35300) In this PR a construction of the [semi-direct sum of two Lie algebras](https://en.wikipedia.org/wiki/Lie_algebra_extension#By_semidirect_sum) is added. It is shown that the resulting object $K\rtimes L$ is a Lie algebra and that it fits into an exact sequence $K \to K\rtimes L \to L$. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Lie/Ideal.lean + theorem LieIdeal.mem_toLieSubalgebra Added Mathlib/Algebra/Lie/SemiDirect.lean + theorem LieAlgebra.SemiDirectSum.add_eq_mk + def LieAlgebra.SemiDirectSum.inl + theorem LieAlgebra.SemiDirectSum.inl_eq_mk + theorem LieAlgebra.SemiDirectSum.inl_injective + def LieAlgebra.SemiDirectSum.inr + theorem LieAlgebra.SemiDirectSum.inr_eq_mk + theorem LieAlgebra.SemiDirectSum.lie_eq_mk + theorem LieAlgebra.SemiDirectSum.neg_eq_mk + def LieAlgebra.SemiDirectSum.projl + theorem LieAlgebra.SemiDirectSum.projl_inl_apply + theorem LieAlgebra.SemiDirectSum.projl_inr_apply + theorem LieAlgebra.SemiDirectSum.projl_mk + def LieAlgebra.SemiDirectSum.projr + theorem LieAlgebra.SemiDirectSum.projr_inl_apply + theorem LieAlgebra.SemiDirectSum.projr_inr_apply + theorem LieAlgebra.SemiDirectSum.projr_mk + theorem LieAlgebra.SemiDirectSum.projr_surjective + theorem LieAlgebra.SemiDirectSum.smul_eq_mk + theorem LieAlgebra.SemiDirectSum.sub_eq_mk + def LieAlgebra.SemiDirectSum.toProd + def LieAlgebra.SemiDirectSum.toProdl + theorem LieAlgebra.SemiDirectSum.zero_eq_mk + structure LieAlgebra.SemiDirectSum 2026-02-27 16:42:45 fd11b7a chore: move Pretrivialization, Trivialization to the Bundle namespace (#31338) As suggested in #30083. ESTIMATED CHANGES Modified Mathlib/Geometry/Manifold/MFDeriv/UniqueDifferential.lean + theorem Bundle.Trivialization.mdifferentiable - theorem Trivialization.mdifferentiable Modified Mathlib/Geometry/Manifold/VectorBundle/Basic.lean + theorem Bundle.Trivialization.contMDiffAt_iff + theorem Bundle.Trivialization.contMDiffAt_section_iff + theorem Bundle.Trivialization.contMDiffOn + theorem Bundle.Trivialization.contMDiffOn_iff + theorem Bundle.Trivialization.contMDiffOn_section_baseSet_iff + theorem Bundle.Trivialization.contMDiffOn_section_iff + theorem Bundle.Trivialization.contMDiffOn_symm + theorem Bundle.Trivialization.contMDiffOn_symm_trans + theorem Bundle.Trivialization.contMDiffWithinAt_iff + theorem Bundle.Trivialization.contMDiffWithinAt_section + theorem Bundle.Trivialization.contMDiffWithinAt_snd_comp_iff₂ + theorem Bundle.Trivialization.contMDiff_iff - theorem Trivialization.contMDiffAt_iff - theorem Trivialization.contMDiffAt_section_iff - theorem Trivialization.contMDiffOn - theorem Trivialization.contMDiffOn_iff - theorem Trivialization.contMDiffOn_section_baseSet_iff - theorem Trivialization.contMDiffOn_section_iff - theorem Trivialization.contMDiffOn_symm - theorem Trivialization.contMDiffOn_symm_trans - theorem Trivialization.contMDiffWithinAt_iff - theorem Trivialization.contMDiffWithinAt_section - theorem Trivialization.contMDiffWithinAt_snd_comp_iff₂ - theorem Trivialization.contMDiff_iff Modified Mathlib/Geometry/Manifold/VectorBundle/LocalFrame.lean + def Bundle.Trivialization.basisAt + theorem Bundle.Trivialization.contMDiffOn_localFrame_baseSet + theorem Bundle.Trivialization.eq_sum_localFrame_coeff_smul + theorem Bundle.Trivialization.eventually_eq_localFrame_sum_coeff_smul + theorem Bundle.Trivialization.isLocalFrameOn_localFrame_baseSet + def Bundle.Trivialization.localFrame + theorem Bundle.Trivialization.localFrame_apply_of_mem_baseSet + theorem Bundle.Trivialization.localFrame_apply_of_notMem + def Bundle.Trivialization.localFrame_coeff + theorem Bundle.Trivialization.localFrame_coeff_apply_of_mem_baseSet + theorem Bundle.Trivialization.localFrame_coeff_apply_of_notMem_baseSet + theorem Bundle.Trivialization.localFrame_coeff_congr + theorem Bundle.Trivialization.localFrame_coeff_eq_coeff - def Trivialization.basisAt - theorem Trivialization.contMDiffOn_localFrame_baseSet - theorem Trivialization.eq_sum_localFrame_coeff_smul - theorem Trivialization.eventually_eq_localFrame_sum_coeff_smul - theorem Trivialization.isLocalFrameOn_localFrame_baseSet - def Trivialization.localFrame - theorem Trivialization.localFrame_apply_of_mem_baseSet - theorem Trivialization.localFrame_apply_of_notMem - def Trivialization.localFrame_coeff - theorem Trivialization.localFrame_coeff_apply_of_mem_baseSet - theorem Trivialization.localFrame_coeff_apply_of_notMem_baseSet - theorem Trivialization.localFrame_coeff_congr - theorem Trivialization.localFrame_coeff_eq_coeff Modified Mathlib/Geometry/Manifold/VectorBundle/MDifferentiable.lean + theorem Bundle.Trivialization.mdifferentiableAt_section_iff + theorem Bundle.Trivialization.mdifferentiableAt_snd_comp_iff₂ + theorem Bundle.Trivialization.mdifferentiableAt_totalSpace_iff + theorem Bundle.Trivialization.mdifferentiableOn_section_baseSet_iff + theorem Bundle.Trivialization.mdifferentiableOn_section_iff + theorem Bundle.Trivialization.mdifferentiableWithinAt_section_iff + theorem Bundle.Trivialization.mdifferentiableWithinAt_snd_comp_iff₂ + theorem Bundle.Trivialization.mdifferentiableWithinAt_totalSpace_iff - theorem Trivialization.mdifferentiableAt_section_iff - theorem Trivialization.mdifferentiableAt_snd_comp_iff₂ - theorem Trivialization.mdifferentiableAt_totalSpace_iff - theorem Trivialization.mdifferentiableOn_section_baseSet_iff - theorem Trivialization.mdifferentiableOn_section_iff - theorem Trivialization.mdifferentiableWithinAt_section_iff - theorem Trivialization.mdifferentiableWithinAt_snd_comp_iff₂ - theorem Trivialization.mdifferentiableWithinAt_totalSpace_iff Modified Mathlib/Topology/Covering/Basic.lean Modified Mathlib/Topology/Covering/Quotient.lean Modified Mathlib/Topology/FiberBundle/Constructions.lean + theorem Bundle.Trivialization.Prod.continuous_inv_fun + theorem Bundle.Trivialization.Prod.continuous_to_fun + theorem Bundle.Trivialization.Prod.left_inv + theorem Bundle.Trivialization.Prod.right_inv + def Bundle.Trivialization.Prod.toFun' + theorem Bundle.Trivialization.prod_symm_apply - theorem Trivialization.Prod.continuous_inv_fun - theorem Trivialization.Prod.continuous_to_fun - theorem Trivialization.Prod.left_inv - theorem Trivialization.Prod.right_inv - def Trivialization.Prod.toFun' - theorem Trivialization.prod_symm_apply Modified Mathlib/Topology/FiberBundle/Trivialization.lean + def Bundle.Pretrivialization.Trivialization.Simps.apply + theorem Bundle.Pretrivialization.Trivialization.apply_mk_symm + theorem Bundle.Pretrivialization.Trivialization.apply_symm_apply' + theorem Bundle.Pretrivialization.Trivialization.apply_symm_apply + def Bundle.Pretrivialization.Trivialization.clift + theorem Bundle.Pretrivialization.Trivialization.clift_self + theorem Bundle.Pretrivialization.Trivialization.coe_coe + theorem Bundle.Pretrivialization.Trivialization.coe_coe_fst + theorem Bundle.Pretrivialization.Trivialization.coe_fst' + theorem Bundle.Pretrivialization.Trivialization.coe_fst + theorem Bundle.Pretrivialization.Trivialization.coe_fst_eventuallyEq_proj' + theorem Bundle.Pretrivialization.Trivialization.coe_fst_eventuallyEq_proj + theorem Bundle.Pretrivialization.Trivialization.coe_mem_source + theorem Bundle.Pretrivialization.Trivialization.coe_mk + theorem Bundle.Pretrivialization.Trivialization.continuousAt_of_comp_left + theorem Bundle.Pretrivialization.Trivialization.continuousAt_of_comp_right + theorem Bundle.Pretrivialization.Trivialization.continuousAt_proj + theorem Bundle.Pretrivialization.Trivialization.continuousOn_proj + theorem Bundle.Pretrivialization.Trivialization.continuousOn_symm + theorem Bundle.Pretrivialization.Trivialization.continuous_coordChange + def Bundle.Pretrivialization.Trivialization.coordChange + theorem Bundle.Pretrivialization.Trivialization.coordChangeHomeomorph_coe + theorem Bundle.Pretrivialization.Trivialization.coordChange_apply_snd + theorem Bundle.Pretrivialization.Trivialization.coordChange_coordChange + theorem Bundle.Pretrivialization.Trivialization.coordChange_same + theorem Bundle.Pretrivialization.Trivialization.coordChange_same_apply + theorem Bundle.Pretrivialization.Trivialization.ext' + theorem Bundle.Pretrivialization.Trivialization.frontier_preimage + theorem Bundle.Pretrivialization.Trivialization.image_preimage_eq_prod_univ + theorem Bundle.Pretrivialization.Trivialization.isImage_preimage_prod + def Bundle.Pretrivialization.Trivialization.lift + def Bundle.Pretrivialization.Trivialization.liftCM + theorem Bundle.Pretrivialization.Trivialization.lift_self + theorem Bundle.Pretrivialization.Trivialization.map_proj_nhds + theorem Bundle.Pretrivialization.Trivialization.map_target + theorem Bundle.Pretrivialization.Trivialization.mem_source + theorem Bundle.Pretrivialization.Trivialization.mem_target + theorem Bundle.Pretrivialization.Trivialization.mk_coordChange + theorem Bundle.Pretrivialization.Trivialization.mk_mem_target + theorem Bundle.Pretrivialization.Trivialization.mk_proj_snd' + theorem Bundle.Pretrivialization.Trivialization.mk_proj_snd + theorem Bundle.Pretrivialization.Trivialization.mk_symm + theorem Bundle.Pretrivialization.Trivialization.nhds_eq_inf_comap + def Bundle.Pretrivialization.Trivialization.preimageHomeomorph + theorem Bundle.Pretrivialization.Trivialization.preimageHomeomorph_apply + theorem Bundle.Pretrivialization.Trivialization.preimageHomeomorph_symm_apply + def Bundle.Pretrivialization.Trivialization.preimageSingletonHomeomorph + theorem Bundle.Pretrivialization.Trivialization.preimageSingletonHomeomorph_apply + theorem Bundle.Pretrivialization.Trivialization.preimageSingletonHomeomorph_symm_apply + theorem Bundle.Pretrivialization.Trivialization.preimage_subset_source + theorem Bundle.Pretrivialization.Trivialization.proj_clift + theorem Bundle.Pretrivialization.Trivialization.proj_lift + theorem Bundle.Pretrivialization.Trivialization.proj_surjOn_baseSet + theorem Bundle.Pretrivialization.Trivialization.proj_symm_apply' + theorem Bundle.Pretrivialization.Trivialization.proj_symm_apply + def Bundle.Pretrivialization.Trivialization.sourceHomeomorphBaseSetProd + theorem Bundle.Pretrivialization.Trivialization.sourceHomeomorphBaseSetProd_apply + theorem Bundle.Pretrivialization.Trivialization.sourceHomeomorphBaseSetProd_symm_apply + theorem Bundle.Pretrivialization.Trivialization.source_inter_preimage_target_inter + theorem Bundle.Pretrivialization.Trivialization.symm_apply + theorem Bundle.Pretrivialization.Trivialization.symm_apply_apply + theorem Bundle.Pretrivialization.Trivialization.symm_apply_apply_mk + theorem Bundle.Pretrivialization.Trivialization.symm_apply_mk_proj + theorem Bundle.Pretrivialization.Trivialization.symm_apply_of_notMem + theorem Bundle.Pretrivialization.Trivialization.symm_coe_proj + theorem Bundle.Pretrivialization.Trivialization.symm_proj_apply + theorem Bundle.Pretrivialization.Trivialization.symm_trans_source_eq + theorem Bundle.Pretrivialization.Trivialization.symm_trans_target_eq + theorem Bundle.Pretrivialization.Trivialization.tendsto_nhds_iff + def Bundle.Pretrivialization.Trivialization.toFun' + def Bundle.Pretrivialization.Trivialization.toPretrivialization + theorem Bundle.Pretrivialization.Trivialization.toPretrivialization_injective + def Bundle.Pretrivialization.Trivialization.transFiberHomeomorph + theorem Bundle.Pretrivialization.Trivialization.transFiberHomeomorph_apply + structure Bundle.Pretrivialization.Trivialization + theorem Bundle.Pretrivialization.apply_mk_symm + theorem Bundle.Pretrivialization.apply_symm_apply' + theorem Bundle.Pretrivialization.apply_symm_apply + theorem Bundle.Pretrivialization.coe_coe + theorem Bundle.Pretrivialization.coe_coe_fst + theorem Bundle.Pretrivialization.coe_fst' + theorem Bundle.Pretrivialization.coe_fst + theorem Bundle.Pretrivialization.coe_mem_source + theorem Bundle.Pretrivialization.coe_symm_of_notMem + theorem Bundle.Pretrivialization.ext' + theorem Bundle.Pretrivialization.ext + theorem Bundle.Pretrivialization.mem_source + theorem Bundle.Pretrivialization.mem_target + theorem Bundle.Pretrivialization.mk_mem_target + theorem Bundle.Pretrivialization.mk_proj_snd' + theorem Bundle.Pretrivialization.mk_proj_snd + theorem Bundle.Pretrivialization.mk_symm + theorem Bundle.Pretrivialization.preimage_symm_proj_baseSet + theorem Bundle.Pretrivialization.preimage_symm_proj_inter + theorem Bundle.Pretrivialization.proj_surjOn_baseSet + theorem Bundle.Pretrivialization.proj_symm_apply' + theorem Bundle.Pretrivialization.proj_symm_apply + def Bundle.Pretrivialization.setSymm + theorem Bundle.Pretrivialization.symm_apply + theorem Bundle.Pretrivialization.symm_apply_apply + theorem Bundle.Pretrivialization.symm_apply_apply_mk + theorem Bundle.Pretrivialization.symm_apply_mk_proj + theorem Bundle.Pretrivialization.symm_apply_of_notMem + theorem Bundle.Pretrivialization.symm_coe_proj + theorem Bundle.Pretrivialization.symm_proj_apply + theorem Bundle.Pretrivialization.symm_trans_source_eq + theorem Bundle.Pretrivialization.symm_trans_symm + theorem Bundle.Pretrivialization.symm_trans_target_eq + theorem Bundle.Pretrivialization.target_inter_preimage_symm_source_eq + def Bundle.Pretrivialization.toFun' + theorem Bundle.Pretrivialization.toPartialEquiv_injective + theorem Bundle.Pretrivialization.trans_source + structure Bundle.Pretrivialization - theorem Pretrivialization.apply_mk_symm - theorem Pretrivialization.apply_symm_apply' - theorem Pretrivialization.apply_symm_apply - theorem Pretrivialization.coe_coe - theorem Pretrivialization.coe_coe_fst - theorem Pretrivialization.coe_fst' - theorem Pretrivialization.coe_fst - theorem Pretrivialization.coe_mem_source - theorem Pretrivialization.coe_symm_of_notMem - theorem Pretrivialization.ext' - theorem Pretrivialization.ext - theorem Pretrivialization.mem_source - theorem Pretrivialization.mem_target - theorem Pretrivialization.mk_mem_target - theorem Pretrivialization.mk_proj_snd' - theorem Pretrivialization.mk_proj_snd - theorem Pretrivialization.mk_symm - theorem Pretrivialization.preimage_symm_proj_baseSet - theorem Pretrivialization.preimage_symm_proj_inter - theorem Pretrivialization.proj_surjOn_baseSet - theorem Pretrivialization.proj_symm_apply' - theorem Pretrivialization.proj_symm_apply - def Pretrivialization.setSymm - theorem Pretrivialization.symm_apply - theorem Pretrivialization.symm_apply_apply - theorem Pretrivialization.symm_apply_apply_mk - theorem Pretrivialization.symm_apply_mk_proj - theorem Pretrivialization.symm_apply_of_notMem - theorem Pretrivialization.symm_coe_proj - theorem Pretrivialization.symm_proj_apply - theorem Pretrivialization.symm_trans_source_eq - theorem Pretrivialization.symm_trans_symm - theorem Pretrivialization.symm_trans_target_eq - theorem Pretrivialization.target_inter_preimage_symm_source_eq - def Pretrivialization.toFun' - theorem Pretrivialization.toPartialEquiv_injective - theorem Pretrivialization.trans_source - structure Pretrivialization - def Trivialization.Simps.apply - theorem Trivialization.apply_mk_symm - theorem Trivialization.apply_symm_apply' - theorem Trivialization.apply_symm_apply - def Trivialization.clift - theorem Trivialization.clift_self - theorem Trivialization.coe_coe - theorem Trivialization.coe_coe_fst - theorem Trivialization.coe_fst' - theorem Trivialization.coe_fst - theorem Trivialization.coe_fst_eventuallyEq_proj' - theorem Trivialization.coe_fst_eventuallyEq_proj - theorem Trivialization.coe_mem_source - theorem Trivialization.coe_mk - theorem Trivialization.continuousAt_of_comp_left - theorem Trivialization.continuousAt_of_comp_right - theorem Trivialization.continuousAt_proj - theorem Trivialization.continuousOn_proj - theorem Trivialization.continuousOn_symm - theorem Trivialization.continuous_coordChange - def Trivialization.coordChange - theorem Trivialization.coordChangeHomeomorph_coe - theorem Trivialization.coordChange_apply_snd - theorem Trivialization.coordChange_coordChange - theorem Trivialization.coordChange_same - theorem Trivialization.coordChange_same_apply - theorem Trivialization.ext' - theorem Trivialization.frontier_preimage - theorem Trivialization.image_preimage_eq_prod_univ - theorem Trivialization.isImage_preimage_prod - def Trivialization.lift - def Trivialization.liftCM - theorem Trivialization.lift_self - theorem Trivialization.map_proj_nhds - theorem Trivialization.map_target - theorem Trivialization.mem_source - theorem Trivialization.mem_target - theorem Trivialization.mk_coordChange - theorem Trivialization.mk_mem_target - theorem Trivialization.mk_proj_snd' - theorem Trivialization.mk_proj_snd - theorem Trivialization.mk_symm - theorem Trivialization.nhds_eq_inf_comap - def Trivialization.preimageHomeomorph - theorem Trivialization.preimageHomeomorph_apply - theorem Trivialization.preimageHomeomorph_symm_apply - def Trivialization.preimageSingletonHomeomorph - theorem Trivialization.preimageSingletonHomeomorph_apply - theorem Trivialization.preimageSingletonHomeomorph_symm_apply - theorem Trivialization.preimage_subset_source - theorem Trivialization.proj_clift - theorem Trivialization.proj_lift - theorem Trivialization.proj_surjOn_baseSet - theorem Trivialization.proj_symm_apply' - theorem Trivialization.proj_symm_apply - def Trivialization.sourceHomeomorphBaseSetProd - theorem Trivialization.sourceHomeomorphBaseSetProd_apply - theorem Trivialization.sourceHomeomorphBaseSetProd_symm_apply - theorem Trivialization.source_inter_preimage_target_inter - theorem Trivialization.symm_apply - theorem Trivialization.symm_apply_apply - theorem Trivialization.symm_apply_apply_mk - theorem Trivialization.symm_apply_mk_proj - theorem Trivialization.symm_apply_of_notMem - theorem Trivialization.symm_coe_proj - theorem Trivialization.symm_proj_apply - theorem Trivialization.symm_trans_source_eq - theorem Trivialization.symm_trans_target_eq - theorem Trivialization.tendsto_nhds_iff - def Trivialization.toFun' - def Trivialization.toPretrivialization - theorem Trivialization.toPretrivialization_injective - def Trivialization.transFiberHomeomorph - theorem Trivialization.transFiberHomeomorph_apply - structure Trivialization Modified Mathlib/Topology/VectorBundle/Basic.lean + theorem Bundle.Pretrivialization.Trivialization.Bundle.Trivialization.apply_eq_prod_continuousLinearEquivAt + theorem Bundle.Pretrivialization.Trivialization.Bundle.Trivialization.coe_continuousLinearEquivAt_eq + theorem Bundle.Pretrivialization.Trivialization.Bundle.Trivialization.comp_continuousLinearEquivAt_eq_coord_change + def Bundle.Pretrivialization.Trivialization.Bundle.Trivialization.continuousLinearEquivAt + theorem Bundle.Pretrivialization.Trivialization.Bundle.Trivialization.continuousLinearEquivAt_apply' + def Bundle.Pretrivialization.Trivialization.Bundle.Trivialization.continuousLinearMapAt + theorem Bundle.Pretrivialization.Trivialization.Bundle.Trivialization.continuousLinearMapAt_symmL + def Bundle.Pretrivialization.Trivialization.Bundle.Trivialization.symmL + theorem Bundle.Pretrivialization.Trivialization.Bundle.Trivialization.symmL_continuousLinearMapAt + theorem Bundle.Pretrivialization.Trivialization.Bundle.Trivialization.symm_apply_eq_mk_continuousLinearEquivAt_symm + theorem Bundle.Pretrivialization.Trivialization.Bundle.Trivialization.symm_continuousLinearEquivAt_eq + def Bundle.Pretrivialization.Trivialization.Bundle.zeroSection + theorem Bundle.Pretrivialization.Trivialization.Bundle.zeroSection_proj + theorem Bundle.Pretrivialization.Trivialization.Bundle.zeroSection_snd + def Bundle.Pretrivialization.Trivialization.ContinuousLinearMap.inCoordinates + theorem Bundle.Pretrivialization.Trivialization.ContinuousLinearMap.inCoordinates_eq + def Bundle.Pretrivialization.Trivialization.VectorBundleCore.Base + def Bundle.Pretrivialization.Trivialization.VectorBundleCore.Fiber + def Bundle.Pretrivialization.Trivialization.VectorBundleCore.Index + theorem Bundle.Pretrivialization.Trivialization.VectorBundleCore.baseSet_at + theorem Bundle.Pretrivialization.Trivialization.VectorBundleCore.coe_coordChange + theorem Bundle.Pretrivialization.Trivialization.VectorBundleCore.continuous_proj + theorem Bundle.Pretrivialization.Trivialization.VectorBundleCore.coordChange_linear_comp + theorem Bundle.Pretrivialization.Trivialization.VectorBundleCore.isOpenMap_proj + def Bundle.Pretrivialization.Trivialization.VectorBundleCore.localTriv + def Bundle.Pretrivialization.Trivialization.VectorBundleCore.localTrivAt + theorem Bundle.Pretrivialization.Trivialization.VectorBundleCore.localTrivAt_apply + theorem Bundle.Pretrivialization.Trivialization.VectorBundleCore.localTrivAt_apply_mk + theorem Bundle.Pretrivialization.Trivialization.VectorBundleCore.localTrivAt_def + theorem Bundle.Pretrivialization.Trivialization.VectorBundleCore.localTriv_apply + theorem Bundle.Pretrivialization.Trivialization.VectorBundleCore.localTriv_continuousLinearMapAt + theorem Bundle.Pretrivialization.Trivialization.VectorBundleCore.localTriv_coordChange_eq + theorem Bundle.Pretrivialization.Trivialization.VectorBundleCore.localTriv_symmL + theorem Bundle.Pretrivialization.Trivialization.VectorBundleCore.localTriv_symm_apply + theorem Bundle.Pretrivialization.Trivialization.VectorBundleCore.localTriv_symm_fst + theorem Bundle.Pretrivialization.Trivialization.VectorBundleCore.mem_localTrivAt_baseSet + theorem Bundle.Pretrivialization.Trivialization.VectorBundleCore.mem_localTriv_source + theorem Bundle.Pretrivialization.Trivialization.VectorBundleCore.mem_localTriv_target + theorem Bundle.Pretrivialization.Trivialization.VectorBundleCore.mem_source_at + theorem Bundle.Pretrivialization.Trivialization.VectorBundleCore.mem_trivChange_source + def Bundle.Pretrivialization.Trivialization.VectorBundleCore.toFiberBundleCore + def Bundle.Pretrivialization.Trivialization.VectorBundleCore.trivChange + theorem Bundle.Pretrivialization.Trivialization.VectorBundleCore.trivializationAt_continuousLinearMapAt + theorem Bundle.Pretrivialization.Trivialization.VectorBundleCore.trivializationAt_coordChange_eq + theorem Bundle.Pretrivialization.Trivialization.VectorBundleCore.trivializationAt_symmL + structure Bundle.Pretrivialization.Trivialization.VectorBundleCore + theorem Bundle.Pretrivialization.Trivialization.VectorPrebundle.continuousOn_coordChange + theorem Bundle.Pretrivialization.Trivialization.VectorPrebundle.continuous_totalSpaceMk + def Bundle.Pretrivialization.Trivialization.VectorPrebundle.coordChange + theorem Bundle.Pretrivialization.Trivialization.VectorPrebundle.coordChange_apply + theorem Bundle.Pretrivialization.Trivialization.VectorPrebundle.linear_trivializationOfMemPretrivializationAtlas + theorem Bundle.Pretrivialization.Trivialization.VectorPrebundle.mem_trivialization_at_source + theorem Bundle.Pretrivialization.Trivialization.VectorPrebundle.mk_coordChange + def Bundle.Pretrivialization.Trivialization.VectorPrebundle.toFiberBundle + def Bundle.Pretrivialization.Trivialization.VectorPrebundle.toFiberPrebundle + theorem Bundle.Pretrivialization.Trivialization.VectorPrebundle.toVectorBundle + theorem Bundle.Pretrivialization.Trivialization.VectorPrebundle.totalSpaceMk_preimage_source + def Bundle.Pretrivialization.Trivialization.VectorPrebundle.totalSpaceTopology + def Bundle.Pretrivialization.Trivialization.VectorPrebundle.trivializationOfMemPretrivializationAtlas + structure Bundle.Pretrivialization.Trivialization.VectorPrebundle + theorem Bundle.Pretrivialization.Trivialization.apply_symm_apply_eq_coordChangeL + theorem Bundle.Pretrivialization.Trivialization.coe_coordChangeL' + theorem Bundle.Pretrivialization.Trivialization.coe_coordChangeL + theorem Bundle.Pretrivialization.Trivialization.coe_linearMapAt + theorem Bundle.Pretrivialization.Trivialization.coe_linearMapAt_of_mem + theorem Bundle.Pretrivialization.Trivialization.coe_symmₗ + theorem Bundle.Pretrivialization.Trivialization.continuousOn_coordChange + def Bundle.Pretrivialization.Trivialization.coordChangeL + theorem Bundle.Pretrivialization.Trivialization.coordChangeL_apply' + theorem Bundle.Pretrivialization.Trivialization.coordChangeL_apply + theorem Bundle.Pretrivialization.Trivialization.coordChangeL_symm_apply + def Bundle.Pretrivialization.Trivialization.linearEquivAt + theorem Bundle.Pretrivialization.Trivialization.linearEquivAt_apply + theorem Bundle.Pretrivialization.Trivialization.linearEquivAt_symm_apply + theorem Bundle.Pretrivialization.Trivialization.linearMapAt_apply + theorem Bundle.Pretrivialization.Trivialization.linearMapAt_def_of_mem + theorem Bundle.Pretrivialization.Trivialization.linearMapAt_def_of_notMem + theorem Bundle.Pretrivialization.Trivialization.linearMapAt_symmₗ + theorem Bundle.Pretrivialization.Trivialization.mk_coordChangeL + theorem Bundle.Pretrivialization.Trivialization.symm_coordChangeL + theorem Bundle.Pretrivialization.Trivialization.symmₗ_linearMapAt + def Bundle.Pretrivialization.Trivialization.trivialVectorBundleCore + theorem Bundle.Pretrivialization.coe_linearMapAt + theorem Bundle.Pretrivialization.coe_linearMapAt_of_mem + theorem Bundle.Pretrivialization.linear + def Bundle.Pretrivialization.linearEquivAt + theorem Bundle.Pretrivialization.linearMapAt_apply + theorem Bundle.Pretrivialization.linearMapAt_def_of_mem + theorem Bundle.Pretrivialization.linearMapAt_def_of_notMem + theorem Bundle.Pretrivialization.linearMapAt_eq_zero + theorem Bundle.Pretrivialization.linearMapAt_symmₗ + theorem Bundle.Pretrivialization.symmₗ_linearMapAt - def Bundle.zeroSection - theorem Bundle.zeroSection_proj - theorem Bundle.zeroSection_snd - def ContinuousLinearMap.inCoordinates - theorem ContinuousLinearMap.inCoordinates_eq - theorem Pretrivialization.coe_linearMapAt - theorem Pretrivialization.coe_linearMapAt_of_mem - theorem Pretrivialization.linear - def Pretrivialization.linearEquivAt - theorem Pretrivialization.linearMapAt_apply - theorem Pretrivialization.linearMapAt_def_of_mem - theorem Pretrivialization.linearMapAt_def_of_notMem - theorem Pretrivialization.linearMapAt_eq_zero - theorem Pretrivialization.linearMapAt_symmₗ - theorem Pretrivialization.symmₗ_linearMapAt - theorem Trivialization.apply_eq_prod_continuousLinearEquivAt - theorem Trivialization.apply_symm_apply_eq_coordChangeL - theorem Trivialization.coe_continuousLinearEquivAt_eq - theorem Trivialization.coe_coordChangeL' - theorem Trivialization.coe_coordChangeL - theorem Trivialization.coe_linearMapAt - theorem Trivialization.coe_linearMapAt_of_mem - theorem Trivialization.coe_symmₗ - theorem Trivialization.comp_continuousLinearEquivAt_eq_coord_change - def Trivialization.continuousLinearEquivAt - theorem Trivialization.continuousLinearEquivAt_apply' - def Trivialization.continuousLinearMapAt - theorem Trivialization.continuousLinearMapAt_symmL - def Trivialization.coordChangeL - theorem Trivialization.coordChangeL_apply' - theorem Trivialization.coordChangeL_apply - theorem Trivialization.coordChangeL_symm_apply - def Trivialization.linearEquivAt - theorem Trivialization.linearEquivAt_apply - theorem Trivialization.linearEquivAt_symm_apply - theorem Trivialization.linearMapAt_apply - theorem Trivialization.linearMapAt_def_of_mem - theorem Trivialization.linearMapAt_def_of_notMem - theorem Trivialization.linearMapAt_symmₗ - theorem Trivialization.mk_coordChangeL - def Trivialization.symmL - theorem Trivialization.symmL_continuousLinearMapAt - theorem Trivialization.symm_apply_eq_mk_continuousLinearEquivAt_symm - theorem Trivialization.symm_continuousLinearEquivAt_eq - theorem Trivialization.symm_coordChangeL - theorem Trivialization.symmₗ_linearMapAt - def VectorBundleCore.Base - def VectorBundleCore.Fiber - def VectorBundleCore.Index - theorem VectorBundleCore.baseSet_at - theorem VectorBundleCore.coe_coordChange - theorem VectorBundleCore.continuous_proj - theorem VectorBundleCore.coordChange_linear_comp - theorem VectorBundleCore.isOpenMap_proj - def VectorBundleCore.localTriv - def VectorBundleCore.localTrivAt - theorem VectorBundleCore.localTrivAt_apply - theorem VectorBundleCore.localTrivAt_apply_mk - theorem VectorBundleCore.localTrivAt_def - theorem VectorBundleCore.localTriv_apply - theorem VectorBundleCore.localTriv_continuousLinearMapAt - theorem VectorBundleCore.localTriv_coordChange_eq - theorem VectorBundleCore.localTriv_symmL - theorem VectorBundleCore.localTriv_symm_apply - theorem VectorBundleCore.localTriv_symm_fst - theorem VectorBundleCore.mem_localTrivAt_baseSet - theorem VectorBundleCore.mem_localTriv_source - theorem VectorBundleCore.mem_localTriv_target - theorem VectorBundleCore.mem_source_at - theorem VectorBundleCore.mem_trivChange_source - def VectorBundleCore.toFiberBundleCore - def VectorBundleCore.trivChange - theorem VectorBundleCore.trivializationAt_continuousLinearMapAt - theorem VectorBundleCore.trivializationAt_coordChange_eq - theorem VectorBundleCore.trivializationAt_symmL - structure VectorBundleCore - theorem VectorPrebundle.continuousOn_coordChange - theorem VectorPrebundle.continuous_totalSpaceMk - def VectorPrebundle.coordChange - theorem VectorPrebundle.coordChange_apply - theorem VectorPrebundle.linear_trivializationOfMemPretrivializationAtlas - theorem VectorPrebundle.mem_trivialization_at_source - theorem VectorPrebundle.mk_coordChange - def VectorPrebundle.toFiberBundle - def VectorPrebundle.toFiberPrebundle - theorem VectorPrebundle.toVectorBundle - theorem VectorPrebundle.totalSpaceMk_preimage_source - def VectorPrebundle.totalSpaceTopology - def VectorPrebundle.trivializationOfMemPretrivializationAtlas - structure VectorPrebundle - theorem continuousOn_coordChange - def trivialVectorBundleCore Modified Mathlib/Topology/VectorBundle/Constructions.lean + theorem Bundle.Trivialization.continuousLinearEquivAt_prod + theorem Bundle.Trivialization.coordChangeL_prod + theorem Bundle.Trivialization.prod_apply' - theorem Trivialization.continuousLinearEquivAt_prod - theorem Trivialization.coordChangeL_prod - theorem Trivialization.prod_apply' Modified Mathlib/Topology/VectorBundle/Hom.lean + def Bundle.Pretrivialization.continuousLinearMap + def Bundle.Pretrivialization.continuousLinearMapCoordChange + theorem Bundle.Pretrivialization.continuousLinearMapCoordChange_apply + theorem Bundle.Pretrivialization.continuousLinearMap_apply + theorem Bundle.Pretrivialization.continuousLinearMap_symm_apply' + theorem Bundle.Pretrivialization.continuousLinearMap_symm_apply + theorem Bundle.Pretrivialization.continuousOn_continuousLinearMapCoordChange + theorem Bundle.Trivialization.baseSet_continuousLinearMap + def Bundle.Trivialization.continuousLinearMap + theorem Bundle.Trivialization.continuousLinearMap_apply - def Pretrivialization.continuousLinearMap - def Pretrivialization.continuousLinearMapCoordChange - theorem Pretrivialization.continuousLinearMapCoordChange_apply - theorem Pretrivialization.continuousLinearMap_apply - theorem Pretrivialization.continuousLinearMap_symm_apply' - theorem Pretrivialization.continuousLinearMap_symm_apply - theorem Pretrivialization.continuousOn_continuousLinearMapCoordChange - theorem Trivialization.baseSet_continuousLinearMap - def Trivialization.continuousLinearMap - theorem Trivialization.continuousLinearMap_apply 2026-02-27 15:40:08 3c2700d feat(CategoryTheory/Sites): skyscraper sheaves (#35719) Let `Φ` be a point of a site `(C, J)`. In this file, we construct the skyscraper sheaf functor `skyscraperSheafFunctor : A ⥤ Sheaf J A` and show that it is a right adjoint to `Φ.sheafFiber : Sheaf J A ⥤ A`. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Products.lean + def CategoryTheory.Limits.piFunctor + def CategoryTheory.Limits.sigmaFunctor Added Mathlib/CategoryTheory/Sites/Point/Skyscraper.lean + theorem CategoryTheory.GrothendieckTopology.Point.isSheaf_skyscraperPresheaf + theorem CategoryTheory.GrothendieckTopology.Point.skyscraperPresheafAdjunction_homEquiv_apply + theorem CategoryTheory.GrothendieckTopology.Point.skyscraperPresheafAdjunction_homEquiv_symm_apply + theorem CategoryTheory.GrothendieckTopology.Point.skyscraperPresheafHomEquiv_app_π + theorem CategoryTheory.GrothendieckTopology.Point.skyscraperPresheafHomEquiv_naturality_left_symm + theorem CategoryTheory.GrothendieckTopology.Point.skyscraperPresheafHomEquiv_naturality_right + theorem CategoryTheory.GrothendieckTopology.Point.skyscraperSheafAdjunction_homEquiv_apply_val + theorem CategoryTheory.GrothendieckTopology.Point.skyscraperSheafAdjunction_homEquiv_symm_apply + theorem CategoryTheory.GrothendieckTopology.Point.toPresheafFiber_skyscraperPresheafHomEquiv_symm Modified Mathlib/Topology/Sheaves/Skyscraper.lean Modified Mathlib/Topology/Sheaves/Stalks.lean 2026-02-27 15:01:53 af1b8b4 chore: fix `adjoinAlgebraMap` lemma names (#35860) ESTIMATED CHANGES Modified Mathlib/RingTheory/Adjoin/Singleton.lean + theorem Algebra.RingHom.adjoinAlgebraMap_apply + theorem Algebra.RingHom.adjoinAlgebraMap_surjective - theorem Algebra.RingHom.adjoin_algebraMap_apply - theorem Algebra.RingHom.adjoin_algebraMap_surjective 2026-02-27 15:01:50 ddab710 feat(CategoryTheory/Abelian): the localization w.r.t. a Serre class (#35612) We show that there is a calculus of left and right fractions. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Abelian/SerreClass/Localization.lean + theorem CategoryTheory.ObjectProperty.SerreClassLocalization.hasZeroObject + theorem CategoryTheory.ObjectProperty.SerreClassLocalization.isZero_obj_iff + theorem CategoryTheory.ObjectProperty.SerreClassLocalization.map_comp_eq_zero_iff_of_epi_mono + theorem CategoryTheory.ObjectProperty.SerreClassLocalization.map_eq_zero_iff + theorem CategoryTheory.ObjectProperty.epiModSerre.isoModSerre_image_ι + theorem CategoryTheory.ObjectProperty.exists_comp_isoModSerre_eq_zero_iff + theorem CategoryTheory.ObjectProperty.exists_comp_monoModSerre_eq_zero_iff + theorem CategoryTheory.ObjectProperty.exists_epiModSerre_comp_eq_zero_iff + theorem CategoryTheory.ObjectProperty.exists_isoModSerre_comp_eq_zero_iff + theorem CategoryTheory.ObjectProperty.monoModSerre.isoModSerre_factorThruImage 2026-02-27 15:01:48 9364c13 fix(Geometry/Manifold/Notation): better error message if the expected type contains metavariables (#35180) ESTIMATED CHANGES Modified Mathlib/Geometry/Manifold/Notation.lean Modified MathlibTest/DifferentialGeometry/NotationAdvanced.lean 2026-02-27 15:01:45 9e156ec feat: equivalent characterisation of split continuous linear maps (#35057) We add an equivalent characterisation of continuous linear maps with a continuous left inverse: `f` admits a continuous left inverse iff it is injective, has closed range and `range f` has a closed complement. This equivalence is used for extracting an explicit complement for immersions, hence transitively for proving that immersions are closed under composition. From the path towards immersions, submersions and embedded submanifolds. ESTIMATED CHANGES Modified Mathlib/Algebra/Module/Submodule/Range.lean + theorem LinearMap.range_eq_ker_of_leftInverse Modified Mathlib/Analysis/Normed/Module/ContinuousInverse.lean + theorem ContinuousLinearMap.HasLeftInverse.closedComplemented_range + def ContinuousLinearMap.HasLeftInverse.complement + theorem ContinuousLinearMap.HasLeftInverse.isClosed_complement + theorem ContinuousLinearMap.HasLeftInverse.isClosed_range + theorem ContinuousLinearMap.HasLeftInverse.isCompl_complement + theorem ContinuousLinearMap.HasLeftInverse.of_injective_of_isClosed_range_of_closedComplement_range Modified Mathlib/Analysis/Normed/Operator/Banach.lean + theorem ContinuousLinearMap.antilipschitz_antiLipschitzConstant_of_injective_of_isClosed_range Modified Mathlib/Topology/Algebra/Module/LinearMap.lean + theorem ContinuousLinearMap.range_toLinearMap +/- theorem Submodule.ClosedComplemented.exists_isClosed_isCompl + theorem Submodule.ClosedComplemented.isClosed_complement + theorem Submodule.ClosedComplemented.isCompl_complement 2026-02-27 14:06:41 b254bb3 chore(Data/Fin/Tuple/Basic): rename recursor arguments (#35703) ESTIMATED CHANGES Modified Mathlib/Data/Fin/Tuple/Basic.lean +/- def Fin.consCases +/- theorem Fin.consCases_cons +/- def Fin.snocCases Modified Mathlib/Topology/Connected/PathConnected.lean 2026-02-27 14:06:39 243a7e8 chore: refactor `Lean.MVarId.gcongr` to use a monad (#35478) This PR refactors the implementation of the `gcongr` tactic to use its own monad. This will make it easier to refactor/maintain/read the code. ESTIMATED CHANGES Modified Mathlib/Tactic/GCongr/Core.lean + structure Mathlib.Tactic.GCongr.Context + def Mathlib.Tactic.GCongr.GCongrM.run + structure Mathlib.Tactic.GCongr.State Modified Mathlib/Tactic/GRewrite/Core.lean 2026-02-27 14:06:37 795742f chore(Data/List/Rotate): add simp attributes (#33214) * Refs #7987 (SC: Data/List/Rotate) * Add `@[simp]` to: `rotate_mod`, `rotate'_rotate'`, `rotate'_mod`, `rotate_rotate`, `getElem_rotate`, `head?_rotate`, `map_rotate`. * Verification: `lake build Mathlib.Data.List.Rotate`. ESTIMATED CHANGES Modified Mathlib/Data/List/Rotate.lean 2026-02-27 13:55:17 04c72d8 feat: vector measures associated to functions of bounded variation (#34055) Given a bounded variation function, we define the associated (countably additive) vector measure, giving mass `f.rightLim b - f.leftLim a` to `[a, b]` (and similarly for other kinds of intervals). ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/MeasureTheory/VectorMeasure/BoundedVariation.lean + theorem BoundedVariationOn.vectorMeasure_Icc + theorem BoundedVariationOn.vectorMeasure_Ici + theorem BoundedVariationOn.vectorMeasure_Ico + theorem BoundedVariationOn.vectorMeasure_Iic + theorem BoundedVariationOn.vectorMeasure_Iio + theorem BoundedVariationOn.vectorMeasure_Ioc + theorem BoundedVariationOn.vectorMeasure_Ioi + theorem BoundedVariationOn.vectorMeasure_Ioo + theorem BoundedVariationOn.vectorMeasure_singleton + theorem BoundedVariationOn.vectorMeasure_univ 2026-02-27 13:07:33 772fa6b chore(CategoryTheory): fix indentation in markdown lists (#35681) This PR does two things: - It avoids lazy continuation lines in markdown lists (i.e. we indent continuation lines). This expresses intent more clearly, and makes it easier to catch cases of unintentional lazy continuation. - We insert a newline between the end of markdown lists and following text. In the absence of these newlines, doc-gen4 will render the following text as part of the last item of the list due to lazy continuation. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Abelian/FreydMitchell.lean Modified Mathlib/CategoryTheory/Adjunction/Quadruple.lean Modified Mathlib/CategoryTheory/Bicategory/Grothendieck.lean Modified Mathlib/CategoryTheory/Bicategory/NaturalTransformation/Oplax.lean Modified Mathlib/CategoryTheory/ConcreteCategory/Basic.lean Modified Mathlib/CategoryTheory/Enriched/Opposite.lean Modified Mathlib/CategoryTheory/GlueData.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Pullback/HasPullback.lean Modified Mathlib/CategoryTheory/Limits/Shapes/RegularMono.lean Modified Mathlib/CategoryTheory/Localization/DerivabilityStructure/Constructor.lean Modified Mathlib/CategoryTheory/Monoidal/Action/Basic.lean Modified Mathlib/CategoryTheory/Monoidal/Category.lean Modified Mathlib/CategoryTheory/MorphismProperty/Representable.lean Modified Mathlib/CategoryTheory/Presentable/IsCardinalFiltered.lean Modified Mathlib/CategoryTheory/Sites/IsSheafFor.lean Modified Mathlib/CategoryTheory/Sites/Preserves.lean 2026-02-27 13:07:29 a508a73 feat(RingTheory/Noetherian/Basic): semilinear generalizations (#35491) We show that if a semiring R is isomorphic to a Noetherian semiring S, then R is Noetherian. We also generalize much of the API of this file from linear maps to semilinear maps (some of the generalized lemmas are required for the above result). ESTIMATED CHANGES Modified Mathlib/Algebra/Lie/Engel.lean Modified Mathlib/FieldTheory/Finiteness.lean Modified Mathlib/RingTheory/FiniteLength.lean Modified Mathlib/RingTheory/Finiteness/Quotient.lean Modified Mathlib/RingTheory/Noetherian/Basic.lean +/- theorem LinearEquiv.isNoetherian_iff +/- theorem Module.Finite.of_injective +/- theorem fg_of_injective +/- theorem fg_of_ker_bot +/- theorem isNoetherian_iff_submodule_quotient +/- theorem isNoetherian_of_injective +/- theorem isNoetherian_of_ker_bot +/- theorem isNoetherian_of_linearEquiv +/- theorem isNoetherian_of_range_eq_ker +/- theorem isNoetherian_of_surjective 2026-02-27 12:25:24 6cbbebb chore: mark `Encodable.ofCountable` as `no_expose` (#35838) It's defined through the axiom of choice, so it has no useful def-eqs. ESTIMATED CHANGES Modified Mathlib/Logic/Encodable/Basic.lean 2026-02-27 12:25:22 7f617ff chore: reduce import in IMO 2002 Q3 (#35836) ESTIMATED CHANGES Modified Archive/Imo/Imo2002Q3.lean 2026-02-27 12:14:06 7b7d66d chore(SetTheory/Ordinal/FixedPointApproximations): fix `unusedVariables` warnings (#35859) ESTIMATED CHANGES Modified Mathlib/SetTheory/Ordinal/FixedPointApproximants.lean 2026-02-27 11:20:50 bf3d8ad feat(AlgebraicGeometry): pullback comparison map of `Scheme.forgetToTop` is an epi (#35861) ESTIMATED CHANGES Modified Mathlib/AlgebraicGeometry/PullbackCarrier.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Pullback/HasPullback.lean + theorem CategoryTheory.Limits.pullbackComparison_comp 2026-02-27 10:47:50 3d58818 refactor: nicer definition for ordinal division (#35849) By leveraging the API on `Order.IsNormal`, we can define ordinal division in a way that almost immediately proves the characterizing Galois connection. (We also remove a redundant `expose` in a file with no defs.) ESTIMATED CHANGES Modified Mathlib/Order/IsNormal.lean + theorem Order.IsNormal.le_iff_le_sSup' + theorem Order.IsNormal.le_iff_le_sSup Modified Mathlib/SetTheory/Ordinal/Arithmetic.lean +/- theorem Ordinal.div_le +/- theorem Ordinal.div_zero +/- theorem Ordinal.le_div + theorem Ordinal.lt_mul_iff_div_lt + theorem Ordinal.mul_div_gc + theorem Ordinal.mul_le_iff_le_div +/- theorem Ordinal.mul_sub Modified Mathlib/SetTheory/Ordinal/Exponential.lean Modified Mathlib/SetTheory/Ordinal/Principal.lean 2026-02-27 10:47:49 57e0666 feat(Algebra/Ring/NegOnePow): add negOnePow ↔ natAbs bridge lemmas (#34944) Adds `Int.cast_negOnePow_eq_neg_one_pow_natAbs` (for any `Ring R`) and its `ℤ` specialization `Int.coe_negOnePow_eq_neg_one_pow_natAbs`, relating `negOnePow n` to `(-1) ^ n.natAbs`. The file already has [`cast_negOnePow_natCast`](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Algebra/Ring/NegOnePow.html#Int.cast_negOnePow_natCast) for `n : ℕ` but nothing for general integers via `natAbs`. ESTIMATED CHANGES Modified Mathlib/Algebra/Ring/NegOnePow.lean + theorem Int.coe_negOnePow Modified Mathlib/Analysis/Analytic/Binomial.lean 2026-02-27 10:47:47 1750cbe chore: golf using `grind` (and add one supporting `grind` annotation) (#34112) The goal of this golfing PR is to decrease the number of times lemmas are called explicitly (replacing calls to lemmas with calls to tactics). Any decrease in compilation time is a welcome side effect, although it is not a primary objective. Trace profiling results (shown if ≥10 ms before or after): * `Quandle.conj_swap`: 63 ms before, 35 ms after 🎉 This golfing PR is batched under the following guidelines: * Up to ~5 changed files per PR * Up to ~25 changed declarations per PR * Up to ~100 changed lines per PR ESTIMATED CHANGES Modified Mathlib/Algebra/Quandle.lean 2026-02-27 09:51:36 a5a17eb feat: classical "decidability" instances on sets and ideals (#33757) * Add decidable equality instances for `Set X`, `Submodule R M` (which also gives it for `Ideal R`) and `Associates (Ideal R)`. * This allows one to remove such decidability arguments from lemmas. * There was one place where we used an explicit decidability argument to compute an explicit fintype-instance to construct the unique element of some type. This is now replaced by giving the element explicitly. ESTIMATED CHANGES Modified Mathlib/Algebra/Module/DedekindDomain.lean +/- theorem Submodule.isInternal_prime_power_torsion +/- theorem Submodule.isInternal_prime_power_torsion_of_is_torsion_by_ideal Modified Mathlib/Algebra/Module/PID.lean +/- theorem Submodule.isInternal_prime_power_torsion_of_pid Modified Mathlib/Algebra/Module/Submodule/Defs.lean Modified Mathlib/Data/Set/Basic.lean Modified Mathlib/LinearAlgebra/Matrix/GeneralLinearGroup/Card.lean Modified Mathlib/Logic/Basic.lean Modified Mathlib/MeasureTheory/SetSemiring.lean Modified Mathlib/NumberTheory/RamificationInertia/Basic.lean +/- theorem Ideal.IsDedekindDomain.ramificationIdx_eq_factors_count +/- theorem Ideal.IsDedekindDomain.ramificationIdx_eq_normalizedFactors_count Modified Mathlib/Order/PartialSups.lean +/- theorem partialSups_eq_sUnion_image Modified Mathlib/RingTheory/DedekindDomain/Factorization.lean Modified Mathlib/RingTheory/DedekindDomain/Ideal/Lemmas.lean +/- theorem Ideal.count_associates_eq' +/- theorem Ideal.count_associates_eq +/- theorem Ideal.eq_prime_pow_mul_coprime +/- theorem count_associates_factors_eq +/- theorem count_le_of_ideal_ge +/- theorem irreducible_pow_sup +/- theorem sup_eq_prod_inf_factors Modified Mathlib/RingTheory/Ideal/Basic.lean - def Ideal.equivFinTwo Modified Mathlib/RingTheory/Ideal/Operations.lean Modified Mathlib/RingTheory/Invariant/Basic.lean Modified Mathlib/RingTheory/Lasker.lean +/- theorem Submodule.IsLasker.exists_isMinimalPrimaryDecomposition +/- theorem Submodule.IsMinimalPrimaryDecomposition.image_radical_eq_associated_primes +/- structure Submodule.IsMinimalPrimaryDecomposition +/- theorem Submodule.decomposition_erase_inf Modified Mathlib/RingTheory/Valuation/ValuationRing.lean 2026-02-27 09:24:44 fc17c68 chore(SetTheory/Ordinal/Basic): deprecate `succ_eq_add_one` and `succ_zero` (#35844) First pass after #35741. The eventual goal is to deprecate all theorems about ordinals referring to `succ x` in favor of versions referring to `x + 1`. ESTIMATED CHANGES Modified Mathlib/SetTheory/Cardinal/Aleph.lean Modified Mathlib/SetTheory/Ordinal/Arithmetic.lean Modified Mathlib/SetTheory/Ordinal/Basic.lean Modified Mathlib/SetTheory/Ordinal/Exponential.lean Modified Mathlib/SetTheory/Ordinal/FixedPointApproximants.lean Modified Mathlib/SetTheory/Ordinal/Notation.lean Modified Mathlib/SetTheory/Ordinal/Principal.lean Modified Mathlib/SetTheory/Ordinal/Veblen.lean + theorem Ordinal.veblenWith_add_one + theorem Ordinal.veblenWith_one +/- theorem Ordinal.veblenWith_succ + theorem Ordinal.veblen_add_one 2026-02-27 06:57:17 edb3231 feat: generalize `prod_eq_mul_prod_diff_singleton` (#35482) Inspired by what `prod_eq_single` is to `prod_eq_single_of_mem`, this PR replicates the same idea to `prod_eq_mul_prod_diff_singleton`. ESTIMATED CHANGES Modified Mathlib/Algebra/BigOperators/Group/Finset/Piecewise.lean +/- theorem Finset.prod_eq_mul_prod_diff_singleton + theorem Finset.prod_eq_mul_prod_diff_singleton_of_mem Modified Mathlib/Algebra/BigOperators/Ring/Finset.lean Modified Mathlib/Algebra/Order/BigOperators/Ring/Finset.lean Modified Mathlib/Data/Finsupp/Weight.lean Modified Mathlib/NumberTheory/Bernoulli.lean Modified Mathlib/RingTheory/Coprime/Lemmas.lean Modified Mathlib/RingTheory/DedekindDomain/Factorization.lean Modified Mathlib/RingTheory/NoetherNormalization.lean Modified Mathlib/RingTheory/Valuation/Basic.lean Modified Mathlib/RingTheory/WittVector/TeichmullerSeries.lean 2026-02-27 05:37:12 de0dcf1 feat: Add Function.Injective.addTorsor Function.Injective.normedAddTo… (#35794) Adds - `Function.Injective.addTorsor` - `Function.Injective.normedAddTorsor` pulling back the proofs for `AddTorsor` and `NormedAddTorsor` along an injection. Related to this conversation on the Lean zulip: https://leanprover.zulipchat.com/#narrow/channel/479953-PhysLean/topic/Space.20vs.20EuclideanSpace/with/575938877 ESTIMATED CHANGES Modified Mathlib/Algebra/AddTorsor/Basic.lean Modified Mathlib/Analysis/Normed/Group/AddTorsor.lean 2026-02-27 04:13:36 a846ec9 feat(Algebra): projective dimension equal supremum of localized module (#32000) In this PR, we prove that for a finitely generated module over Noetherian ring, its projective dimension is equal to the supremum of the projective dimensions of the localized modules over all prime/maximal ideals. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Category/ModuleCat/Localization.lean + theorem ModuleCat.localizedModuleFunctor_map_exact - theorem ModuleCat.localizedModule_functor_map_exact Added Mathlib/RingTheory/LocalProperties/ProjectiveDimension.lean + theorem ModuleCat.hasProjectiveDimensionLE_iff_forall_maximalSpectrum + theorem ModuleCat.hasProjectiveDimensionLE_iff_forall_primeSpectrum + theorem ModuleCat.localizedModule_hasProjectiveDimensionLE + theorem ModuleCat.projectiveDimension_eq_iSup_localizedModule_maximal + theorem ModuleCat.projectiveDimension_eq_iSup_localizedModule_prime + theorem ModuleCat.projectiveDimension_le_projectiveDimension_of_isLocalizedModule 2026-02-27 03:48:27 a701d67 perf(scripts): pass all files to lean --deps-json in a single invocation (#35827) This PR fixes a performance issue in the DAG builder used by `add_set_option.py` and `rm_set_option.py`. `lean --deps-json` supports a `--stdin` flag that reads filenames from stdin one per line. We use this to pass all files in a single invocation instead of batching them in groups of 500. For Mathlib (~5000 files) this reduces lean process startups from ~10 to 1, and avoids any `ARG_MAX` concerns with large argument lists. 🤖 Prepared with Claude Code ESTIMATED CHANGES Modified scripts/dag_traversal.py 2026-02-27 02:54:31 bce6de5 refactor: make `Order.succ_eq_add_one` a `simp` lemma (#35741) This has been the intention since the `SuccAddOrder` typeclass was introduced; after #35553, we can finally go ahead with this. A lot of lemmas about ordinals are still stated using `succ x` instead of `x + 1`. Fixing this will be the work of many subsequent PRs. ESTIMATED CHANGES Modified Mathlib/Algebra/Order/SuccPred.lean + theorem Order.add_one_inj + theorem Order.not_isSuccLimit_add_one + theorem Order.not_isSuccPrelimit_add_one Modified Mathlib/Data/ENat/Basic.lean Modified Mathlib/Order/Interval/Set/OrdConnectedLinear.lean Modified Mathlib/SetTheory/Cardinal/Aleph.lean + theorem Cardinal.aleph_add_one +/- theorem Cardinal.aleph_succ + theorem Cardinal.beth_add_one +/- theorem Cardinal.beth_succ + theorem Cardinal.preAleph_add_one + theorem Cardinal.preBeth_add_one +/- theorem Cardinal.preBeth_succ Modified Mathlib/SetTheory/Cardinal/Cofinality.lean + theorem Ordinal.cof_add_one + theorem Ordinal.cof_one Modified Mathlib/SetTheory/Ordinal/Arithmetic.lean + theorem Ordinal.lift_add_one +/- theorem Ordinal.lift_succ + theorem Ordinal.pred_add_one Modified Mathlib/SetTheory/Ordinal/Basic.lean + theorem Ordinal.add_one_ne_zero +/- theorem Ordinal.succ_one Modified Mathlib/SetTheory/Ordinal/Exponential.lean + theorem Ordinal.opow_add_one +/- theorem Ordinal.opow_succ Modified Mathlib/SetTheory/Ordinal/Family.lean + theorem Ordinal.bsup_id_add_one Modified Mathlib/SetTheory/Ordinal/FixedPoint.lean + theorem Ordinal.derivFamily_add_one + theorem Ordinal.deriv_add_one Modified Mathlib/SetTheory/Ordinal/Notation.lean Modified Mathlib/SetTheory/ZFC/Ordinal.lean + theorem Ordinal.toZFSet_add_one +/- theorem Ordinal.toZFSet_succ Modified Mathlib/SetTheory/ZFC/Rank.lean Modified Mathlib/SetTheory/ZFC/VonNeumann.lean + theorem ZFSet.vonNeumann_add_one 2026-02-27 02:04:12 ba4b2e5 feat: restrict normal function to `Iio` intervals (#35792) To be used in some future results about cofinalities. ESTIMATED CHANGES Modified Mathlib/Order/IsNormal.lean + theorem Order.IsNormal.to_Iio Modified Mathlib/Order/SuccPred/Limit.lean + theorem Order.IsSuccLimit.subtypeVal + theorem Order.IsSuccPrelimit.subtypeVal 2026-02-27 01:26:03 51ab0ac feat(Archive): minimal axioms for Boolean algebra (#35172) ESTIMATED CHANGES Modified Archive.lean Added Archive/MinimalSheffer.lean + def BooleanAlgebra.singleShefferAlgebra + def BooleanAlgebra.veroffAlgebra + theorem SingleShefferAlgebra.comm + theorem SingleShefferAlgebra.eq74 + theorem SingleShefferAlgebra.eq75 + theorem SingleShefferAlgebra.eq76 + theorem SingleShefferAlgebra.eq77 + theorem SingleShefferAlgebra.eq79 + theorem SingleShefferAlgebra.eq80 + theorem SingleShefferAlgebra.eq84 + theorem SingleShefferAlgebra.eq85 + theorem SingleShefferAlgebra.eq89 + theorem SingleShefferAlgebra.eq91 + theorem VeroffAlgebra.aba_abb + theorem VeroffAlgebra.ababc + theorem VeroffAlgebra.abba + theorem VeroffAlgebra.compl_compl + theorem VeroffAlgebra.compl_def + theorem VeroffAlgebra.compl_inf + theorem VeroffAlgebra.compl_le_compl + theorem VeroffAlgebra.compl_le_compl_iff_le + theorem VeroffAlgebra.f_compl_const + theorem VeroffAlgebra.inf_def + theorem VeroffAlgebra.inf_le_left + theorem VeroffAlgebra.le_def + theorem VeroffAlgebra.le_iff_compl_sup + theorem VeroffAlgebra.le_sup_left + theorem VeroffAlgebra.meredith + theorem VeroffAlgebra.sheffer + theorem VeroffAlgebra.sup_compl_eq_top + theorem VeroffAlgebra.sup_def + theorem VeroffAlgebra.sup_le + def VeroffAlgebra.top Modified docs/references.bib 2026-02-26 23:39:38 fe8cb25 feat(LinearAlgebra/Finsupp): add lemmas about `lsum` and submodule (#35660) This is split from #34936 to make the review process easier. It adds some lemmas to characterize the span of finitely supported singletons and relate the range of `Finsupp.lsum` to the pointwise scalar multiplication of submodules. ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/Finsupp/Span.lean + theorem Finsupp.span_single_eq_top +/- theorem Submodule.exists_finset_of_mem_iSup + theorem Submodule.image_smul_top_eq_range_lsum +/- theorem Submodule.mem_iSup_iff_exists_finset +/- theorem Submodule.mem_sSup_iff_exists_finset + theorem Submodule.range_lsum_smul + theorem Submodule.smul_top_eq_range_lsum 2026-02-26 23:01:59 34e58df feat: `Subobject.topologicalClosure_mono` (#35205) This was missing for most subobjects. We add it for all of them and tag it with `gcongr`. ESTIMATED CHANGES Modified Mathlib/Topology/Algebra/Algebra.lean + theorem Subalgebra.topologicalClosure_mono Modified Mathlib/Topology/Algebra/Group/Basic.lean + theorem Subgroup.topologicalClosure_mono Modified Mathlib/Topology/Algebra/Module/Basic.lean Modified Mathlib/Topology/Algebra/Monoid.lean + theorem Submonoid.topologicalClosure_mono + theorem Subsemigroup.topologicalClosure_mono Modified Mathlib/Topology/Algebra/NonUnitalAlgebra.lean + theorem NonUnitalSubalgebra.topologicalClosure_mono Modified Mathlib/Topology/Algebra/NonUnitalStarAlgebra.lean + theorem NonUnitalStarSubalgebra.topologicalClosure_mono Modified Mathlib/Topology/Algebra/Ring/Basic.lean + theorem NonUnitalSubring.topologicalClosure_mono + theorem NonUnitalSubsemiring.topologicalClosure_mono + theorem Subring.topologicalClosure_mono + theorem Subsemiring.topologicalClosure_mono Modified Mathlib/Topology/Algebra/StarSubalgebra.lean 2026-02-26 23:01:58 e7e88aa feat(Topology/Bornology): a locally bounded function maps a compact set to a bounded set (#35013) ESTIMATED CHANGES Modified Mathlib/Topology/Compactness/Compact.lean + theorem Bornology.isBounded_image_of_isLocallyBounded_of_isCompact 2026-02-26 23:01:56 c2dfac7 feat: IMO 2002 Q3 (#34556) ESTIMATED CHANGES Modified Archive.lean Added Archive/Imo/Imo2002Q3.lean + theorem Imo2002Q3.monic_denompol + theorem Imo2002Q3.monic_numerpol + theorem Imo2002Q3.natDegree_denompol + theorem Imo2002Q3.natDegree_numerpol + theorem Imo2002Q3.proof_body + theorem Imo2002Q3.result 2026-02-26 23:01:55 917a081 feat: a nilpotent simple group is cyclic (#34318) This PR also adds some API around `nilpotencyClass` and `upperCentralSeries`. ESTIMATED CHANGES Modified Mathlib/GroupTheory/Nilpotent.lean + theorem nilpotencyClass_le_of_upperCentralSeries_eq + theorem nilpotencyClass_le_one_of_isSimple_of_isNilpotent + theorem upperCentralSeries.StrictMonoOn + theorem upperCentralSeries.card_image_eq_of_le_nilpotencyClass + theorem upperCentralSeries.eq_ge_of_eq_gt + theorem upperCentralSeries.eq_ge_of_eq_succ + theorem upperCentralSeries.eq_top 2026-02-26 23:01:53 c31e0d0 feat(AlgebraicGeometry/EllipticCurve/Affine/Point): add equivalences between points and explicit WithZero types (#25984) This PR continues the work from #14627. Original PR: https://github.com/leanprover-community/mathlib4/pull/14627 ESTIMATED CHANGES Modified Mathlib/AlgebraicGeometry/EllipticCurve/Affine/Point.lean + def WeierstrassCurve.Affine.Point.mk +/- theorem WeierstrassCurve.Affine.Point.some_ne_zero +/- theorem WeierstrassCurve.Affine.Point.zero_def + def WeierstrassCurve.Affine.nonsingularPointEquiv + def WeierstrassCurve.Affine.nonsingularPointEquivSubtype + theorem WeierstrassCurve.Affine.nonsingularPointEquivSubtype_some + theorem WeierstrassCurve.Affine.nonsingularPointEquivSubtype_symm_none + theorem WeierstrassCurve.Affine.nonsingularPointEquivSubtype_symm_some + theorem WeierstrassCurve.Affine.nonsingularPointEquivSubtype_zero + theorem WeierstrassCurve.Affine.nonsingularPointEquiv_some + theorem WeierstrassCurve.Affine.nonsingularPointEquiv_symm_none + theorem WeierstrassCurve.Affine.nonsingularPointEquiv_symm_some + theorem WeierstrassCurve.Affine.nonsingularPointEquiv_zero + def WeierstrassCurve.Affine.pointEquiv + def WeierstrassCurve.Affine.pointEquivSubtype + theorem WeierstrassCurve.Affine.pointEquivSubtype_some + theorem WeierstrassCurve.Affine.pointEquivSubtype_symm_none + theorem WeierstrassCurve.Affine.pointEquivSubtype_symm_some + theorem WeierstrassCurve.Affine.pointEquivSubtype_zero + theorem WeierstrassCurve.Affine.pointEquiv_some + theorem WeierstrassCurve.Affine.pointEquiv_symm_none + theorem WeierstrassCurve.Affine.pointEquiv_symm_some + theorem WeierstrassCurve.Affine.pointEquiv_zero 2026-02-26 22:50:01 5a6619a feat(Algebra/Homology): definition of the category of spectral sequences (#35356) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Homology/SpectralSequence/Basic.lean + structure CategoryTheory.SpectralSequence.Hom + theorem CategoryTheory.SpectralSequence.hom_ext + def CategoryTheory.SpectralSequence.pageFunctor + def CategoryTheory.SpectralSequence.pageXIsoOfEq + structure CategoryTheory.SpectralSequence Modified Mathlib/Algebra/Homology/SpectralSequence/ComplexShape.lean 2026-02-26 22:22:13 0ad18ab feat: `Cauchy.map` for functions uniformly continuous on a set (#35206) ESTIMATED CHANGES Modified Mathlib/Topology/UniformSpace/Basic.lean Modified Mathlib/Topology/UniformSpace/Cauchy.lean + theorem Cauchy.map_of_le 2026-02-26 22:22:06 2fff144 feat(Combinatorics/SimpleGraph/Diam): drop `Finite α` from `ediam_le_two_mul_radius` (#33764) ESTIMATED CHANGES Modified Mathlib/Combinatorics/SimpleGraph/Diam.lean + theorem SimpleGraph.ediam_eq_top_iff_radius_eq_top + theorem SimpleGraph.ediam_le_two_mul_eccent +/- theorem SimpleGraph.ediam_le_two_mul_radius 2026-02-26 22:11:05 091dc5d feat(Algebra/Category/ModuleCat/Sheaf): the category of sheaves of modules is a localization of the category of presheaves of modules (#35715) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Category/ModuleCat/Presheaf/Sheafification.lean + theorem PresheafOfModules.toSheaf_map_sheafificationAdjunction_counit_app Added Mathlib/Algebra/Category/ModuleCat/Sheaf/Localization.lean + theorem PresheafOfModules.inverseImage_W_toPresheaf_eq_inverseImage_isomorphisms 2026-02-26 21:07:23 1f308dd feat(CategoryTheory/Abelian/Preradical): introduce basic definition of preradicals (#35514) A **preradical** on an abelian category `C` is a monomorphism in the functor category `C ⥤ C` with codomain `𝟭 C`, i.e. an element of `MonoOver (𝟭 C)`. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Abelian/Preradical/Basic.lean + theorem CategoryTheory.Abelian.Preradical.r_map_ι_app 2026-02-26 20:37:00 9947c14 chore(CategoryTheory): make `Kleisli` and `Cokleisli` one-field structures (#35793) The Kleisli category of a monad was defined as a direct type alias. We make it a one-field structure for better type hygiene. This removes the `set_option backward.isDefEq.respectTransparency false in` in this file. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Monad/Kleisli.lean + structure CategoryTheory.Cokleisli.Hom + theorem CategoryTheory.Cokleisli.hom_ext + theorem CategoryTheory.Cokleisli.mk_of + theorem CategoryTheory.Cokleisli.of_mk + structure CategoryTheory.Cokleisli - def CategoryTheory.Cokleisli + structure CategoryTheory.Kleisli.Hom + theorem CategoryTheory.Kleisli.hom_ext + theorem CategoryTheory.Kleisli.mk_of + theorem CategoryTheory.Kleisli.of_mk + structure CategoryTheory.Kleisli - def CategoryTheory.Kleisli Modified Mathlib/CategoryTheory/Monad/Types.lean 2026-02-26 19:49:14 b5ae6ec feat(GroupTheory/FiniteAbelian): construct bijection between subgroups and subgroups of the dual (#33792) ESTIMATED CHANGES Modified Mathlib/GroupTheory/FiniteAbelian/Duality.lean + theorem CommGroup.apply_monoidHomMonoidHomEquiv + theorem CommGroup.forall_apply_eq_apply_iff + theorem CommGroup.forall_monoidHom_apply_eq_one_iff + theorem CommGroup.mem_subgroupOrderIsoSubgroupMonoidHom_iff + theorem CommGroup.mem_subgroupOrderIsoSubgroupMonoidHom_symm_iff +/- theorem MonoidHom.restrict_surjective Modified Mathlib/RingTheory/RootsOfUnity/EnoughRootsOfUnity.lean 2026-02-26 19:22:06 66ce75f chore(CategoryTheory/Sites): fix IsSheaf.isSheafFor (#35711) The parameter `J : GrothendieckTopology _` is made implicit, which eases the use of dot notation. ESTIMATED CHANGES Modified Mathlib/AlgebraicGeometry/Sites/BigZariski.lean Modified Mathlib/CategoryTheory/Sites/Descent/DescentData.lean Modified Mathlib/CategoryTheory/Sites/Descent/Precoverage.lean Modified Mathlib/CategoryTheory/Sites/PrecoverageToGrothendieck.lean Modified Mathlib/CategoryTheory/Sites/SheafOfTypes.lean Modified Mathlib/CategoryTheory/Sites/Types.lean Modified Mathlib/Topology/Sheaves/Sheaf.lean 2026-02-26 18:24:50 ba00ac6 chore(Tactic): rewrite `extract_goal` tactic docstring (#35817) This PR (re)writes the docstrings for the `extract_goal` tactic, to consistently match the official style guide, to make sure they are complete while not getting too long. The changes consist mostly of reshuffling existing information. ESTIMATED CHANGES Modified Mathlib/Tactic/ExtractGoal.lean 2026-02-26 17:30:51 8b1e30d chore: update Mathlib dependencies 2026-02-26 (#35816) This PR updates the Mathlib dependencies. ESTIMATED CHANGES Modified lake-manifest.json 2026-02-26 17:18:52 6ec9d97 feat(CategoryTheory/EffectiveEpi): composition preserves resp. reflects epimorphisms (#35815) From Proetale. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/EffectiveEpi/Preserves.lean 2026-02-26 16:58:14 36af8a3 feat: give functor categories an instance of `HasBinaryBiproducts` (#34068) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Limits/FunctorCategory/BinaryBiproducts.lean + def CategoryTheory.Limits.pointwiseBinaryBicone.isBilimit + def CategoryTheory.Limits.pointwiseBinaryBicone + def CategoryTheory.Limits.pointwiseBinaryBiproductData 2026-02-26 16:02:12 04289d9 feat: `SeparatelyContinuousMul` class for multiplication which is continuous in each variable (#35589) In functional analysis, more specifically operator algebras, one often considers topologies weaker than the norm topology. There are a plethora of these, and virtually none of them satisfy docs#ContinuousMul because multiplication is not jointly continuous, but it *is* continuous in each variable separately. Sometimes multiplication is jointly continuous on bounded sets. In fact, this separate continuity of multiplication is really the correct hypothesis for a bunch of places where we use `ContinuousMul`. E.g., it is the proper assumption for docs#Set.isClosed_centralizer, but it's also the correct one for working with topological subobjects. Of course, one way to spell this separate continuity is `ContinuousConstSMul α α` and `ContinuousConstSMul αᵐᵒᵖ α`, but this is painful because it means (a) you need to write down both classes whenever you want to prove something about it, and (b) all the generic lemmas are about `•` instead of `*`. Consequently, in this PR we define classes `SeparatelyContinuousMul` (and `SeparatelyContinuousAdd` via `to_additive`) to encode this weaker form of continuity of multiplication. ESTIMATED CHANGES Modified Mathlib/Analysis/Calculus/Rademacher.lean Modified Mathlib/Analysis/Calculus/TangentCone/Basic.lean Modified Mathlib/Analysis/Complex/Circle.lean +/- theorem Real.continuous_fourierChar Modified Mathlib/Analysis/Complex/HasPrimitives.lean Modified Mathlib/Analysis/Convex/Strict.lean Modified Mathlib/Analysis/InnerProductSpace/Completion.lean Modified Mathlib/Analysis/Normed/Field/Lemmas.lean Modified Mathlib/Analysis/SpecialFunctions/Elliptic/Weierstrass.lean Modified Mathlib/Analysis/SpecialFunctions/Gamma/Deriv.lean Modified Mathlib/Geometry/Manifold/IntegralCurve/Transform.lean Modified Mathlib/MeasureTheory/Group/Measure.lean Modified Mathlib/MeasureTheory/Group/ModularCharacter.lean Modified Mathlib/MeasureTheory/Measure/Content.lean Modified Mathlib/MeasureTheory/Measure/Haar/Basic.lean Modified Mathlib/MeasureTheory/Measure/Lebesgue/EqHaar.lean Modified Mathlib/NumberTheory/Padics/Complex.lean Modified Mathlib/Probability/Distributions/Exponential.lean Modified Mathlib/RingTheory/DedekindDomain/AdicValuation.lean Modified Mathlib/Tactic/FunProp/Elab.lean Modified Mathlib/Topology/Algebra/Group/Basic.lean +/- theorem IsTopologicalGroup.continuous_conj' +/- theorem IsTopologicalGroup.continuous_conj +/- theorem IsTopologicalGroup.continuous_conj_prod Modified Mathlib/Topology/Algebra/Group/Pointwise.lean Modified Mathlib/Topology/Algebra/GroupWithZero.lean Modified Mathlib/Topology/Algebra/Monoid.lean - theorem Filter.Tendsto.const_mul - theorem Filter.Tendsto.mul_const +/- theorem IsCompact.mul + theorem Topology.IsInducing.separatelyContinuousMul - theorem continuous_mul_left - theorem continuous_mul_right + theorem separatelyContinuousMul_induced Modified Mathlib/Topology/Algebra/Monoid/Defs.lean + theorem Continuous.const_mul + theorem Continuous.mul_const + theorem ContinuousAt.const_mul + theorem ContinuousAt.mul_const + theorem ContinuousOn.const_mul + theorem ContinuousOn.mul_const + theorem ContinuousWithinAt.const_mul + theorem ContinuousWithinAt.mul_const + theorem Filter.Tendsto.const_mul + theorem Filter.Tendsto.mul_const + theorem continuous_const_mul + theorem continuous_mul_const Modified Mathlib/Topology/Algebra/Nonarchimedean/Basic.lean Modified Mathlib/Topology/Algebra/Order/LiminfLimsup.lean Modified Mathlib/Topology/Algebra/Semigroup.lean Modified Mathlib/Topology/Algebra/UniformRing.lean Modified Mathlib/Topology/Constructions/SumProd.lean + theorem map_mem_closure₂' Modified Mathlib/Topology/Instances/AddCircle/Defs.lean Modified MathlibTest/Monotonicity.lean 2026-02-26 15:32:00 94298b7 feat(Algebra/Category/Ring): equalizers of pushout maps of tensor product inclusions (#29960) This PR defines a ring map `S →ₗ[R] S ⊗[R] S : s ↦ (s ⊗ₜ[R] 1) - (1 ⊗ₜ[R] s)` for an `R`-algebra `S`, and show that its kernel is exactly (the image of) `R` if `S` is faithfully flat over `R`. Changes: * `TensorProduct.AlgebraTensorModule.distribBaseChange`: Origianlly takes `M` and `N`, where `M` is an `R`-module with an additional instance `IsScalarTower R A M`. This is unnecessary, so I changed the `M` and `N` into `N` and `Q`, now both of which are merely modules over `R`. Main results : * Add compatibility of `Algebra.TensorProduct.includeLeft` (or `Algebra.TensorProduct.includeRight`) with `TensorProduct.AlgebraTensorModule.distribBaseChange` and `LinearMap.lTensor` * Define `Algebra.TensorProduct.includeLeftSubRight`, which is the `R`-linear map `S →ₗ[R] S ⊗[R] S` sending `s : S` to `(s ⊗ₜ[R] 1) - (1 ⊗ₜ[R] s)`. * `Algebra.isEffective_of_faithfullyFlat`: the pair `algebraMap : R → S` and `includeLeftSubRight R S : S → S ⊗[R] S` is exact if `S` is a faithfully flat `R`-algebra. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/LinearAlgebra/TensorProduct/Tower.lean +/- def TensorProduct.AlgebraTensorModule.distribBaseChange + theorem TensorProduct.AlgebraTensorModule.distribBaseChange_symm_tmul + theorem TensorProduct.AlgebraTensorModule.distribBaseChange_tmul Added Mathlib/RingTheory/TensorProduct/IncludeLeftSubRight.lean + theorem Algebra.IsEffective.eqLocus_includeLeft_includeRight + theorem Algebra.IsEffective.of_faithfullyFlat + theorem Algebra.IsEffective.of_isEffective_tensorProduct_of_faithfullyFlat + theorem Algebra.IsEffective.of_section + def Algebra.IsEffective + theorem Algebra.TensorProduct.distribBaseChange_comp_includeLeftSubRight + theorem Algebra.TensorProduct.distribBaseChange_includeLeftSubRight_apply + def Algebra.TensorProduct.includeLeftSubRight + theorem Algebra.TensorProduct.includeLeftSubRight_algebraMap_zero + theorem Algebra.TensorProduct.includeLeftSubRight_apply + theorem Algebra.TensorProduct.includeLeftSubRight_zero_of_mem_range Modified Mathlib/RingTheory/TensorProduct/Maps.lean + theorem Algebra.TensorProduct.linearMap_comp_rid + theorem Algebra.TensorProduct.tmul_one_tmul_one_tmul 2026-02-26 15:06:23 8f7d8e0 feat: PrimeSpectrum.irreducibleSpace_iff_nilradical_isPrime (#35574) Also removes a `set_option backward.isDefEq.respectTransparency false in`. ESTIMATED CHANGES Modified Mathlib/RingTheory/Spectrum/Prime/Topology.lean + theorem PrimeSpectrum.irreducibleSpace_iff_isPrime_nilradical 2026-02-26 14:02:53 9095301 feat(GroupTheory/Focal): add focal subgroup theorem (#34380) Define `focalSubgroup` (denoted `H*`) and prove the Focal Subgroup Theorem. The main result is `inf_commutator_eq_focalSubgroup`, which states that for a Sylow p-subgroup `P` of a finite group `G`, `P ∩ G' = P*`. This implementation includes: - The definition of the focal subgroup. - The transfer homomorphism `G → P/P*`. - The proof using the transfer map. Also add [gorenstein1968] to `docs/references.bib`. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Data/ZMod/QuotientGroup.lean + theorem Subgroup.index_eq_sum_minimalPeriod Added Mathlib/GroupTheory/Focal.lean + theorem Subgroup.commutator_inf_eq_focalSubgroup + theorem Subgroup.commutator_le_focalSubgroup + theorem Subgroup.commutator_le_focalSubgroupOf + def Subgroup.focalSubgroup + theorem Subgroup.focalSubgroupOf.mk'_conj_eq + theorem Subgroup.focalSubgroupOf.pow_index_surjective + def Subgroup.focalSubgroupOf + theorem Subgroup.focalSubgroupOf_def + theorem Subgroup.focalSubgroupOf_eq_closure + theorem Subgroup.focalSubgroup_def + theorem Subgroup.focalSubgroup_le + theorem Subgroup.focalSubgroup_le_commutator + theorem Subgroup.ker_restrict_transferFocal_eq_focalSubgroupOf + theorem Subgroup.ker_transferFocal_inf_eq_focalSubgroup + theorem Subgroup.map_focalSubgroupOf + theorem Subgroup.transferFocal_eq_pow + theorem Subgroup.transferFocal_surjective Modified Mathlib/GroupTheory/Sylow.lean + theorem Sylow.finite_of_finiteIndex +/- theorem Sylow.not_dvd_index Modified Mathlib/GroupTheory/Transfer.lean Modified docs/1000.yaml Modified docs/references.bib 2026-02-26 13:42:05 10f1782 refactor(Computability/TMComputable): generalize from `FinEncoding` (#34779) Much of `TMComputable.lean` is stated in terms of `FinEncoding` when only the `encode` function is used. This PR generalizes statements in `TMComputable.lean` to take in just the `encode` function, making them easier to use (since one does not have to additionally provide a `decode` function and a proof of `decode_encode`). ESTIMATED CHANGES Modified Mathlib/Computability/TMComputable.lean +/- structure Turing.TM2Computable +/- def Turing.TM2ComputableInPolyTime.toTM2ComputableInTime +/- structure Turing.TM2ComputableInPolyTime +/- def Turing.TM2ComputableInTime.toTM2Computable +/- structure Turing.TM2ComputableInTime +/- def Turing.idComputable +/- def Turing.idComputableInPolyTime +/- def Turing.idComputableInTime +/- def Turing.idComputer 2026-02-26 12:44:34 694f5c8 feat(RamicationInertia): define decomposition and inertia fields (#35303) This is the first PR in a series of PR for Hilbert theory on the splitting of prime ideals in a finite Galois extension. Let `L/K` be a Galois extension of fields and let `P` be a prime ideal of the ring `B ⊆ L`. In this first PR, we define decomposition field and inertia field of `P` in `L/K`. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Algebra/Defs.lean + theorem algebraMap.smul' + theorem algebraMap.smul Added Mathlib/NumberTheory/RamificationInertia/HilbertTheory.lean + theorem IsDecompositionField.of_isGaloisGroup + theorem IsInertiaField.of_isGaloisGroup Modified Mathlib/RingTheory/Ideal/Pointwise.lean + def Ideal.inertiaEquiv + theorem Ideal.inertiaEquiv_apply_smul + theorem Ideal.inertiaEquiv_symm_apply_smul + def Ideal.stabilizerEquiv + theorem Ideal.stabilizerEquiv_apply_smul + theorem Ideal.stabilizerEquiv_symm_apply_smul 2026-02-26 11:22:15 48da042 chore(CategoryTheory): use predicates to define `Presieve` (#35799) ESTIMATED CHANGES Modified Mathlib/AlgebraicGeometry/Sites/Etale.lean Modified Mathlib/AlgebraicGeometry/Sites/Pretopology.lean Modified Mathlib/AlgebraicGeometry/Sites/Small.lean Modified Mathlib/CategoryTheory/Sites/Coverage.lean Modified Mathlib/CategoryTheory/Sites/Hypercover/Zero.lean Modified Mathlib/CategoryTheory/Sites/IsSheafFor.lean Modified Mathlib/CategoryTheory/Sites/Over.lean Modified Mathlib/CategoryTheory/Sites/PrecoverageToGrothendieck.lean Modified Mathlib/CategoryTheory/Sites/Pretopology.lean Modified Mathlib/CategoryTheory/Sites/Sieves.lean Modified Mathlib/CategoryTheory/Sites/Spaces.lean Modified Mathlib/Topology/Category/TopCat/GrothendieckTopology.lean Modified Mathlib/Topology/Sheaves/Sheaf.lean 2026-02-26 11:22:13 832ead4 feat(MulAction): add a SMulDistribClass instance for subgroups (#35371) ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Submonoid/MulAction.lean 2026-02-26 10:25:15 7dfb413 chore(Tactic): fix indentation in markdown lists (#35438) Make sure to also indent subsequent lines of an item: this is required by the markdown specification (though not doc-gen), it expresses intent more clearly, and makes it easier to catch accidental misindentations. ESTIMATED CHANGES Modified Mathlib/Tactic/Basic.lean Modified Mathlib/Tactic/CategoryTheory/Coherence/Normalize.lean Modified Mathlib/Tactic/ComputeAsymptotics/Multiseries/Basis.lean Modified Mathlib/Tactic/ComputeDegree.lean Modified Mathlib/Tactic/Linter/OldObtain.lean Modified Mathlib/Tactic/Simps/Basic.lean 2026-02-26 09:42:13 835018c chore(Mathlib/RingTheory/Algebraic/Basic.lean): automated extraction (#35801) This PR was automatically created from PR #34215 by @justus-springer via a [review comment](https://github.com/leanprover-community/mathlib4/pull/34215#discussion_r2857794663) by @jcommelin. ESTIMATED CHANGES Modified Mathlib/RingTheory/Algebraic/Basic.lean + theorem Polynomial.algEquivOfTranscendental_apply + theorem Polynomial.algEquivOfTranscendental_apply_X + theorem Polynomial.algEquivOfTranscendental_coe + theorem Polynomial.algEquivOfTranscendental_symm_aeval + theorem Polynomial.algEquivOfTranscendental_symm_gen + theorem Subalgebra.transcendental_iff_transcendental_val + theorem Transcendental.uniqueFactorizationMonoid_adjoin 2026-02-26 09:42:11 cd9a823 feat(Submodule/Lattice): Add `Submodule.disjoint_iff_add_eq_zero` (#35487) Add a version of `AddSubgroup.disjoint_iff_add_eq_zero` for Submodules. ESTIMATED CHANGES Modified Mathlib/Algebra/Module/Submodule/Lattice.lean + theorem Submodule.disjoint_iff_add_eq_zero 2026-02-26 09:20:28 3e14386 feat(LinearAlgebra/AffineSpace): small lemmas about lineMap and homothety (#35039) Three lemmas about their interaction with AffineSubspace, and AffineCombination. Building towards #34826 `AffineMap.homothety_mem` is mostly just restating `AffineMap.lineMap_mem`, but since they are affine map with different names, putting it here can give better discovery ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/AffineSpace/AffineSubspace/Basic.lean + theorem AffineMap.homothety_mem Modified Mathlib/LinearAlgebra/AffineSpace/Combination.lean + theorem Finset.homothety_affineCombination + theorem Finset.lineMap_affineCombination 2026-02-26 08:09:07 596191f feat(CategoryTheory/Sites): `Presieve.IsSheafFor` is local on the target (#35698) More precisely we show that if `E` is a pre-`1`-hypercover of `X` for which `F` is separated and a sheaf for the `0`-components, then to check that `F` is a sheaf for a presieve `R` it suffices to check: - `F` is a sheaf for the pullbacks of `R` along the maps from the `0`-components. - `F` is separated for the pullbacks of `R` along the maps from the `1`-components. From Proetale. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/CategoryTheory/Sites/Hypercover/One.lean - theorem CategoryTheory.GrothendieckTopology.OneHypercover.arrowsCompatible - theorem CategoryTheory.GrothendieckTopology.OneHypercover.isSheafFor_presieve₀ - theorem CategoryTheory.GrothendieckTopology.OneHypercover.map_amalgamate + def CategoryTheory.PreZeroHypercover.refineOneHypercover + theorem CategoryTheory.PreZeroHypercover.sieve₁'_refineOneHypercover Added Mathlib/CategoryTheory/Sites/Hypercover/SheafOfTypes.lean + theorem CategoryTheory.GrothendieckTopology.OneHypercover.isSheafFor_of_pullback + theorem CategoryTheory.GrothendieckTopology.OneHypercover.isSheafFor_sieve_of_pullback + theorem CategoryTheory.GrothendieckTopology.OneHypercover.isStronglySeparatedFor + theorem CategoryTheory.GrothendieckTopology.OneHypercover.isStronglySheafFor + theorem CategoryTheory.PreOneHypercover.IsStronglySeparatedFor.arrowsCompatible + structure CategoryTheory.PreOneHypercover.IsStronglySeparatedFor + def CategoryTheory.PreOneHypercover.IsStronglySheafFor.isLimitMultifork + theorem CategoryTheory.PreOneHypercover.IsStronglySheafFor.isSheafFor_of_pullback + theorem CategoryTheory.PreOneHypercover.IsStronglySheafFor.isSheafFor_sieve_of_pullback + theorem CategoryTheory.PreOneHypercover.IsStronglySheafFor.isStronglySeparatedFor + theorem CategoryTheory.PreOneHypercover.IsStronglySheafFor.map_amalgamate + structure CategoryTheory.PreOneHypercover.IsStronglySheafFor Modified Mathlib/CategoryTheory/Sites/Hypercover/Subcanonical.lean 2026-02-26 06:33:17 5dadd2c chore: make `liftFun_antisymmRel` public (#35625) This is used in the statements of public theorems, so I'm not sure why it had been made private. ESTIMATED CHANGES Modified Mathlib/Order/Antisymmetrization.lean + theorem liftFun_antisymmRel 2026-02-26 01:13:30 99bfe81 chore: remove 21 redundant set_option backward.whnf.reducibleClassField false (#35788) This PR removes 21 `set_option backward.whnf.reducibleClassField false` directives that are no longer needed. 🤖 Prepared with Claude Code ESTIMATED CHANGES 2026-02-26 00:22:50 f6a1b6e chore: remove no-longer-needed backwards compatibility options (#35737) The default value for `backward.whnf.reducibleClassField` of `true` now works fine as of today. ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/Operations.lean Modified Mathlib/Algebra/BigOperators/Intervals.lean Modified Mathlib/Algebra/Category/ModuleCat/Adjunctions.lean Modified Mathlib/Algebra/FreeAlgebra.lean Modified Mathlib/Algebra/GCDMonoid/Basic.lean Modified Mathlib/Algebra/Group/Action/Hom.lean Modified Mathlib/Algebra/GroupWithZero/NonZeroDivisors.lean Modified Mathlib/Algebra/Lie/Weights/Killing.lean Modified Mathlib/Algebra/Lie/Weights/RootSystem.lean Modified Mathlib/Algebra/Module/PID.lean Modified Mathlib/Algebra/Order/Nonneg/Lattice.lean Modified Mathlib/Algebra/Order/Ring/Idempotent.lean Modified Mathlib/Algebra/Order/Ring/Unbundled/Rat.lean Modified Mathlib/Algebra/Polynomial/AlgebraMap.lean Modified Mathlib/Algebra/Polynomial/FieldDivision.lean Modified Mathlib/Algebra/RingQuot.lean Modified Mathlib/AlgebraicGeometry/EllipticCurve/NormalForms.lean Modified Mathlib/Analysis/CStarAlgebra/Classes.lean Modified Mathlib/Analysis/CStarAlgebra/CompletelyPositiveMap.lean Modified Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Basic.lean Modified Mathlib/Analysis/CStarAlgebra/GelfandNaimarkSegal.lean Modified Mathlib/Analysis/CStarAlgebra/Hom.lean Modified Mathlib/Analysis/CStarAlgebra/Unitary/Connected.lean Modified Mathlib/Analysis/Complex/UpperHalfPlane/Basic.lean Modified Mathlib/Analysis/InnerProductSpace/Basic.lean Modified Mathlib/Analysis/InnerProductSpace/Coalgebra.lean Modified Mathlib/Analysis/InnerProductSpace/l2Space.lean Modified Mathlib/Analysis/Meromorphic/Order.lean Modified Mathlib/CategoryTheory/Enriched/Ordinary/Basic.lean Modified Mathlib/CategoryTheory/Functor/KanExtension/Basic.lean Modified Mathlib/CategoryTheory/Groupoid.lean Modified Mathlib/CategoryTheory/Limits/Shapes/ZeroMorphisms.lean Modified Mathlib/CategoryTheory/Localization/HomEquiv.lean Modified Mathlib/CategoryTheory/Localization/Monoidal/Basic.lean Modified Mathlib/CategoryTheory/LocallyCartesianClosed/ExponentiableMorphism.lean Modified Mathlib/CategoryTheory/Monoidal/Braided/Basic.lean Modified Mathlib/CategoryTheory/Monoidal/Braided/Transport.lean Modified Mathlib/CategoryTheory/Monoidal/Cartesian/Comon_.lean Modified Mathlib/CategoryTheory/Monoidal/DayConvolution.lean Modified Mathlib/CategoryTheory/Monoidal/Grp_.lean Modified Mathlib/CategoryTheory/Monoidal/Internal/Types/Basic.lean Modified Mathlib/CategoryTheory/Monoidal/Rigid/Basic.lean Modified Mathlib/CategoryTheory/Monoidal/Transport.lean Modified Mathlib/CategoryTheory/Shift/Localization.lean Modified Mathlib/CategoryTheory/Sites/Coherent/ExtensiveSheaves.lean Modified Mathlib/Combinatorics/Quiver/Symmetric.lean Modified Mathlib/Combinatorics/SetFamily/LYM.lean Modified Mathlib/Combinatorics/SimpleGraph/Extremal/Turan.lean Modified Mathlib/Computability/Reduce.lean Modified Mathlib/Data/ENat/Pow.lean Modified Mathlib/Data/Finset/Interval.lean Modified Mathlib/Data/Finset/Pi.lean Modified Mathlib/Data/Multiset/Interval.lean Modified Mathlib/Data/Nat/Bitwise.lean Modified Mathlib/Data/Setoid/Basic.lean Modified Mathlib/Data/String/Basic.lean Modified Mathlib/GroupTheory/Congruence/Hom.lean Modified Mathlib/GroupTheory/CoprodI.lean Modified Mathlib/GroupTheory/FreeGroup/Basic.lean Modified Mathlib/GroupTheory/GroupAction/Defs.lean Modified Mathlib/GroupTheory/HNNExtension.lean Modified Mathlib/GroupTheory/MonoidLocalization/Basic.lean Modified Mathlib/GroupTheory/PushoutI.lean Modified Mathlib/GroupTheory/SpecificGroups/Dihedral.lean Modified Mathlib/GroupTheory/SpecificGroups/Quaternion.lean Modified Mathlib/GroupTheory/Subgroup/Centralizer.lean Modified Mathlib/LinearAlgebra/BilinearForm/Orthogonal.lean Modified Mathlib/LinearAlgebra/Dimension/Finite.lean Modified Mathlib/LinearAlgebra/Matrix/Irreducible/Defs.lean Modified Mathlib/LinearAlgebra/Matrix/NonsingularInverse.lean Modified Mathlib/LinearAlgebra/Matrix/SchurComplement.lean Modified Mathlib/LinearAlgebra/QuadraticForm/IsometryEquiv.lean Modified Mathlib/ModelTheory/Order.lean Modified Mathlib/ModelTheory/Ultraproducts.lean Modified Mathlib/NumberTheory/Chebyshev.lean Modified Mathlib/NumberTheory/MahlerMeasure.lean Modified Mathlib/NumberTheory/NumberField/CMField.lean Modified Mathlib/NumberTheory/NumberField/FinitePlaces.lean Modified Mathlib/NumberTheory/NumberField/House.lean Modified Mathlib/NumberTheory/NumberField/Ideal/KummerDedekind.lean Modified Mathlib/Order/Copy.lean Modified Mathlib/Order/Lattice/Congruence.lean Modified Mathlib/Probability/Distributions/Gaussian/HasGaussianLaw/Independence.lean Modified Mathlib/Probability/Kernel/Disintegration/CDFToKernel.lean Modified Mathlib/Probability/Kernel/RadonNikodym.lean Modified Mathlib/Probability/Moments/SubGaussian.lean Modified Mathlib/Probability/StrongLaw.lean Modified Mathlib/RingTheory/AdicCompletion/Topology.lean Modified Mathlib/RingTheory/Coalgebra/Basic.lean Modified Mathlib/RingTheory/Ideal/Prod.lean Modified Mathlib/RingTheory/LocalRing/ResidueField/Fiber.lean Modified Mathlib/RingTheory/LocalRing/ResidueField/Ideal.lean Modified Mathlib/RingTheory/Localization/BaseChange.lean Modified Mathlib/RingTheory/Localization/Integral.lean Modified Mathlib/RingTheory/QuasiFinite/Basic.lean Modified Mathlib/RingTheory/Spectrum/Prime/RingHom.lean Modified Mathlib/RingTheory/TensorProduct/Basic.lean Modified Mathlib/RingTheory/TwoSidedIdeal/Basic.lean Modified Mathlib/RingTheory/Unramified/LocalRing.lean Modified Mathlib/Tactic/FieldSimp/Lemmas.lean Modified Mathlib/Tactic/Module.lean Modified Mathlib/Tactic/NormNum/Inv.lean Modified Mathlib/Tactic/NormNum/Irrational.lean Modified Mathlib/Tactic/NormNum/Result.lean Modified Mathlib/Topology/MetricSpace/Basic.lean Modified Mathlib/Topology/Order/ScottTopology.lean 2026-02-25 23:34:39 78e57d2 chore(Finset): drop `Membership` instance (#35780) Use the one coming from `SetLike` instead. ESTIMATED CHANGES Modified Mathlib/Analysis/Convex/Radon.lean Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Chebyshev/RootsExtrema.lean Modified Mathlib/Combinatorics/SimpleGraph/Copy.lean Modified Mathlib/Data/Finset/Defs.lean Modified Mathlib/Data/Finset/NoncommProd.lean Modified Mathlib/Data/Finset/Piecewise.lean +/- theorem Finset.piecewise_coe Modified Mathlib/FieldTheory/Perfect.lean Modified Mathlib/RingTheory/FiniteType.lean 2026-02-25 22:02:37 6672fdb feat(Geometry/Euclidean): Simplex.closedInterior is closed (#35358) Intermediate lemma towards #34826. The immediate follow up is that the closed interior is measurable, but I'll leave it till the Measure folder appears under Geometry/Euclidean. ESTIMATED CHANGES Modified Mathlib/Analysis/Convex/Combination.lean + theorem Affine.Simplex.convexHull_eq_closedInterior Modified Mathlib/Analysis/Convex/StdSimplex.lean +/- theorem isClosed_stdSimplex +/- theorem isCompact_stdSimplex + theorem stdSimplex_subset_Icc Modified Mathlib/Analysis/Convex/Topology.lean + theorem Affine.Simplex.isClosed_closedInterior + theorem Affine.Simplex.isCompact_closedInterior Modified Mathlib/Analysis/Convex/TotallyBounded.lean 2026-02-25 20:25:30 c4c9be4 feat: asymptotic lemmas on the `cobounded` filter (#34920) Actually includes one `cofinite` lemma too. As shown in the second commit, this allows proving what I initially proved with the help of Harmonic in #34845 in a much shorter, AI-free form. `Asymptotics.isLittleO_pow_pow_cobounded_of_lt` was generalised with the help of @sgouezel – see [#PR reviews > #34868 – more general polynomial asymptotics @ 💬](https://leanprover.zulipchat.com/#narrow/channel/144837-PR-reviews/topic/.2334868.20.E2.80.93.20more.20general.20polynomial.20asymptotics/near/572197174). ESTIMATED CHANGES Modified Mathlib/Analysis/Asymptotics/Defs.lean + theorem Asymptotics.IsLittleO.eventuallyLT_norm_of_eventually_pos Modified Mathlib/Analysis/Asymptotics/SpecificAsymptotics.lean + theorem Asymptotics.isBigO_pow_pow_cobounded_of_le + theorem Asymptotics.isLittleO_pow_pow_cobounded_of_lt Modified Mathlib/Analysis/Polynomial/Basic.lean + theorem Polynomial.dvd_of_infinite_eval_dvd_eval + theorem Polynomial.eventually_cofinite_not_isRoot + theorem Polynomial.finite_abs_eval_le_of_degree_lt + theorem Polynomial.isBigO_cobounded_of_degree_le + theorem Polynomial.isEquivalent_cobounded_leading_monomial + theorem Polynomial.isLittleO_cobounded_of_degree_lt 2026-02-25 19:11:08 ec46717 feat: introduce `HarmonicContOnCl` (#35564) Define a predicate `HarmonicContOnCl` that expresses a standard assumption of harmonic analysis: a function is harmonic on a domain and is continuous on its closure. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Analysis/InnerProductSpace/Harmonic/Basic.lean + theorem InnerProductSpace.HarmonicAt.neg + theorem InnerProductSpace.HarmonicAt.sub + theorem InnerProductSpace.HarmonicOnNhd.continuousOn + theorem InnerProductSpace.HarmonicOnNhd.neg + theorem InnerProductSpace.HarmonicOnNhd.sub + theorem InnerProductSpace.harmonicAt_const + theorem InnerProductSpace.harmonicOnNhd_const Added Mathlib/Analysis/InnerProductSpace/Harmonic/HarmonicContOnCl.lean + theorem InnerProductSpace.HarmonicContOnCl.add + theorem InnerProductSpace.HarmonicContOnCl.add_const + theorem InnerProductSpace.HarmonicContOnCl.const_add + theorem InnerProductSpace.HarmonicContOnCl.const_smul + theorem InnerProductSpace.HarmonicContOnCl.const_sub + theorem InnerProductSpace.HarmonicContOnCl.contDiffAt + theorem InnerProductSpace.HarmonicContOnCl.continuousOn_ball + theorem InnerProductSpace.HarmonicContOnCl.differentiableAt + theorem InnerProductSpace.HarmonicContOnCl.mk_ball + theorem InnerProductSpace.HarmonicContOnCl.mono + theorem InnerProductSpace.HarmonicContOnCl.neg + theorem InnerProductSpace.HarmonicContOnCl.sub + theorem InnerProductSpace.HarmonicContOnCl.sub_const + structure InnerProductSpace.HarmonicContOnCl + theorem InnerProductSpace.HarmonicOnNhd.harmonicContOnCl + theorem InnerProductSpace.IsClosed.harmonicContOnCl_iff + theorem InnerProductSpace.harmonicContOnCl_const Modified Mathlib/Analysis/InnerProductSpace/Laplacian.lean + theorem ContDiffAt.laplacianWithin_sub_nhdsWithin + theorem ContDiffAt.laplacian_sub + theorem ContDiffAt.laplacian_sub_nhds + theorem ContDiffWithinAt.laplacianWithin_sub + theorem InnerProductSpace.laplacianWithin_neg + theorem InnerProductSpace.laplacian_const + theorem InnerProductSpace.laplacian_neg 2026-02-25 18:24:45 aac298a chore(Data/Bool/Count): golf using grind (#35021) ESTIMATED CHANGES Modified Mathlib/Data/Bool/Count.lean 2026-02-25 17:28:22 3cf19a1 chore(Tactic): document `existsi`, `use` and `use_discharger` tactics (#35502) This PR (re)writes the docstrings for the `existsi`, `use` and `use_discharger` tactics, to consistently match the official style guide, to make sure they are complete while not getting too long. In particular, I wanted the difference between these tactics and `exists` to be as clear as possible. (Also, why do we have `existsi`?) ESTIMATED CHANGES Modified Mathlib/Tactic/ExistsI.lean Modified Mathlib/Tactic/Use.lean 2026-02-25 17:28:20 a9421f1 chore(Tactic): improve `continuity` tactic and attribute docstrings (#35486) This PR (re)writes the docstrings for the `continuity` and `continuity?` tactics, and the `continuity` attribute, to consistently match the official style guide, to make sure they are complete while not getting too long. ESTIMATED CHANGES Modified Mathlib/Tactic/Continuity.lean 2026-02-25 17:28:18 e580ff8 feat: add a LE version of previous lt_one_iff_num_lt_denom theorem (#35097) The following is more useful due to the partial order application of LE in comparison to LT. ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Ring/Unbundled/Rat.lean - theorem Rat.lt_one_iff_num_lt_denom + theorem Rat.num_le_denom_iff + theorem Rat.num_lt_denom_iff 2026-02-25 17:28:16 00d4a23 feat: add congruence lemmas for integrability (#35086) Add simple congruence lemmas for interval- and circle integrability. Perform very minor golfing. ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Integral/CircleAverage.lean Modified Mathlib/MeasureTheory/Integral/CircleIntegral.lean + theorem circleIntegrable_neg_radius + theorem crcleIntegrable_congr Modified Mathlib/MeasureTheory/Integral/IntervalIntegral/Basic.lean + theorem IntervalIntegrable.comp_add_left_iff + theorem IntervalIntegrable.comp_add_right_iff + theorem IntervalIntegrable.comp_sub_right_iff Modified Mathlib/MeasureTheory/Integral/IntervalIntegral/Periodic.lean + theorem Function.Periodic.intervalIntegrable_iff +/- theorem Function.Periodic.intervalIntegrable₀ - theorem Function.Periodic.intervalIntegral_add_eq_of_pos 2026-02-25 17:28:13 5f1bdc6 feat(Algebra/Homology/ComplexShape): use `to_dual` (#35019) This PR uses `to_dual` to dualize `ComplexShape` to itself, swapping `next` to `prev` and `up` to `down`. If we wait for #34863 to be merged first, the we can get rid of one `to_dual existing`. ESTIMATED CHANGES Modified Mathlib/Algebra/Homology/ComplexShape.lean - theorem ComplexShape.down'_mk - def ComplexShape.down - theorem ComplexShape.down_mk - def ComplexShape.prev - theorem ComplexShape.prev_eq' - theorem ComplexShape.prev_eq_self' - theorem ComplexShape.prev_eq_self + theorem ComplexShape.up'_mk + theorem ComplexShape.up_mk Modified Mathlib/Tactic/Translate/ToDual.lean 2026-02-25 17:11:55 582dde5 feat(AlgebraicGeometry): Zariski sheaves preserve products (#35508) ESTIMATED CHANGES Modified Mathlib/AlgebraicGeometry/Sites/BigZariski.lean + theorem AlgebraicGeometry.ofArrows_ι_mem_zariskiTopology_of_isColimit + theorem AlgebraicGeometry.preservesLimitsOfShape_discrete_of_isSheaf_zariskiTopology Modified Mathlib/CategoryTheory/Limits/Shapes/DisjointCoproduct.lean + theorem CategoryTheory.Limits.CoproductDisjoint.isPullback_of_isInitial 2026-02-25 17:11:53 b0aa8a2 feat(CategoryTheory): constructor for abelian categories (#35381) We assume that the category `C` is preadditive, has finite products, and that any morphism `f : X ⟶ Y` has a kernel `i : K ⟶ X`, a cokernel `p : Y ⟶ Q` such that `f` factors as `f = π ≫ ι` where `π : X ⟶ I` is a cokernel of `i` and `ι : I ⟶ Y` is a kernel of `p`. This will be used in order to show that the heart of a t-structure is an abelian category. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Abelian/Basic.lean + structure CategoryTheory.Abelian.AbelianStruct 2026-02-25 17:11:50 ca6b562 feat(Geometry/Polygon): nondegeneracy conditions and interconversion with Affine.Triangle (#34598) This PR implements suggestions provided in [this comment](https://github.com/leanprover-community/mathlib4/pull/34393#issuecomment-3810047384) by @jsm28: interconversion between `Polygon P 3` and `Affine.Triangle` as well as the nondegeneracy conditions `NondegenerateVertices` and `NondegenerateEdges`. I tried to keep typeclass restrictions as minimal as possible. ESTIMATED CHANGES Modified Mathlib/Geometry/Polygon/Basic.lean + def Affine.Triangle.toPolygon + theorem Affine.Triangle.toPolygon_hasNondegenerateVertices + theorem Affine.Triangle.toPolygon_toTriangle + theorem Affine.Triangle.toPolygon_vertices + theorem Polygon.HasNondegenerateEdges.two_le + def Polygon.HasNondegenerateEdges + theorem Polygon.HasNondegenerateVertices.hasNondegenerateEdges + theorem Polygon.HasNondegenerateVertices.three_le + def Polygon.HasNondegenerateVertices +/- def Polygon.edgeSet +/- theorem Polygon.edgeSet_eq_image_edgePath + def Polygon.toTriangle + theorem Polygon.toTriangle_points + theorem Polygon.toTriangle_toPolygon 2026-02-25 17:00:16 91fb523 feat(Geometry/Euclidean/Angle/Oriented/Affine): oriented angle bisection and halving unoriented angles (#32260) Add lemmas relating points bisecting an oriented angle to explicit expressions for one unoriented angle in relation to half another unoriented angle. ESTIMATED CHANGES Modified Mathlib/Geometry/Euclidean/Angle/Oriented/Affine.lean + theorem EuclideanGeometry.angle_eq_angle_add_pi_div_two_of_oangle_eq_add_pi_of_sSameSide + theorem EuclideanGeometry.angle_eq_angle_div_two_of_oangle_eq_of_sSameSide + theorem EuclideanGeometry.angle_eq_pi_sub_angle_div_two_of_oangle_eq_add_pi_of_sOppSide + theorem EuclideanGeometry.angle_eq_pi_sub_angle_div_two_of_oangle_eq_of_sOppSide + theorem EuclideanGeometry.oangle_pointReflection_left + theorem EuclideanGeometry.oangle_pointReflection_right Modified Mathlib/Geometry/Euclidean/Angle/Unoriented/Affine.lean + theorem EuclideanGeometry.angle_pointReflection_right 2026-02-25 14:16:50 d20aa7a chore: add theorem attributes, trivial theorems on orders of meromorphic functions (#35689) Add missing attributes `@[to_fun]` and missing trivial lemmas to aid proof automatisation. ESTIMATED CHANGES Modified Mathlib/Analysis/Meromorphic/Order.lean + theorem meromorphicOrderAt_div + theorem meromorphicOrderAt_id_sub_const +/- theorem meromorphicOrderAt_inv +/- theorem meromorphicOrderAt_mul +/- theorem meromorphicOrderAt_pow + theorem meromorphicOrderAt_pow_id_sub_const +/- theorem meromorphicOrderAt_smul +/- theorem meromorphicOrderAt_zpow + theorem meromorphicOrderAt_zpow_id_sub_const 2026-02-25 13:29:55 2880ffb feat: singleton indicators as functions with locally finite support (#34919) Establish indicator functions of singleton sets as functions with locally finite support, and compute the associated logarithmic counting functions. This material is used in [Project VD](https://github.com/kebekus/ProjectVD), formalizing Value Distribution Theory for meromorphic functions on the complex plane. The formula established here is part of a larger package discussing the asymptotic behavior of counting and characteristic functions in Nevanlinna theory. ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Pi.lean + theorem Pi.one_lt_mulSingle Modified Mathlib/Analysis/Complex/ValueDistribution/LogCounting/Basic.lean + theorem Function.locallyFinsuppWithin.logCounting_single_eq_log_sub_const + theorem Function.locallyFinsuppWithin.logCounting_strictMono Modified Mathlib/Topology/LocallyFinsupp.lean + theorem Function.locallyFinsuppWithin.coe_single + theorem Function.locallyFinsuppWithin.exists_single_le_pos + theorem Function.locallyFinsuppWithin.single_apply + theorem Function.locallyFinsuppWithin.single_nonneg + theorem Function.locallyFinsuppWithin.single_pos + theorem Function.locallyFinsuppWithin.single_pos_int_one + theorem Function.locallyFinsuppWithin.single_pos_nat_one 2026-02-25 12:55:22 27b41ee feat(AlgebraicGeometry): weakly étale morphisms (#35717) We define weakly étale morphisms of schemes as morphisms that are flat and whose diagonal is flat. This is the property of morphisms underlying the pro-étale site. Co-authored by: Jiedong Jiang From Proetale. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/AlgebraicGeometry/Morphisms/Flat.lean Added Mathlib/AlgebraicGeometry/Morphisms/WeaklyEtale.lean + theorem AlgebraicGeometry.WeaklyEtale.of_comp + theorem AlgebraicGeometry.WeaklyEtale.weaklyEtale_eq_flat_inf_diagonal_flat Modified Mathlib/CategoryTheory/MorphismProperty/Limits.lean 2026-02-25 10:57:49 02dfd80 feat(CategoryTheory/Sites): characterization of covering sieves using locally surjective morphisms (#35529) The sieve generated by a family of morphisms `f i : X i ⟶ S` is covering iff the induced map from the coproduct of the presheaves represented by the `X i` to the presheaf represented by `S` is locally surjective. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/ShrinkYoneda.lean + theorem CategoryTheory.shrinkYonedaEquiv_symm_app_shrinkYonedaObjObjEquiv_symm + theorem CategoryTheory.shrinkYonedaObjObjEquiv_symm_comp + theorem CategoryTheory.shrinkYoneda_map_app_shrinkYonedaObjObjEquiv_symm + theorem CategoryTheory.shrinkYoneda_obj_map_shrinkYonedaObjObjEquiv_symm Modified Mathlib/CategoryTheory/Sites/LocallySurjective.lean + theorem CategoryTheory.GrothendieckTopology.ofArrows_mem_iff_isLocallySurjective_cofanIsColimitDesc_shrinkYoneda_map + theorem CategoryTheory.GrothendieckTopology.ofArrows_mem_iff_isLocallySurjective_cofanIsColimitDesc_uliftYoneda_map + theorem CategoryTheory.GrothendieckTopology.ofArrows_mem_iff_isLocallySurjective_sigmaDesc_shrinkYoneda_map + theorem CategoryTheory.GrothendieckTopology.ofArrows_mem_iff_isLocallySurjective_sigmaDesc_uliftYoneda_map + theorem CategoryTheory.Presheaf.imageSieve_cofanIsColimitDesc_shrinkYoneda_map + theorem CategoryTheory.Presheaf.pullback_imageSieve 2026-02-25 10:41:37 8a838ae feat(RingTheory/Valuation): add IsTrivialOn_lemmas (#35503) Co-authored by : @xgenereux ESTIMATED CHANGES Modified Mathlib/RingTheory/Valuation/Basic.lean + theorem Valuation.IsEquiv.isTrivialOn + theorem Valuation.IsEquiv.isTrivialOn_iff Modified Mathlib/RingTheory/Valuation/Integers.lean + theorem Valuation.IsTrivialOn.of_le_one 2026-02-25 10:24:25 8f43e50 feat(Analysis/InnerProductSpace/Rayleigh): the norm of a symmetric operator is the supremum of the Rayleigh quotients (#35464) This PR proves that the norm of a symmetric operator is the supremum of the Rayleigh quotients. ESTIMATED CHANGES Modified Mathlib/Analysis/InnerProductSpace/LinearMap.lean + theorem ContinuousLinearMap.opNorm_le_of_re_inner_le Modified Mathlib/Analysis/InnerProductSpace/Rayleigh.lean + theorem ContinuousLinearMap.norm_eq_iSup_rayleighQuotient 2026-02-25 08:52:37 6dc81b8 chore(*): reduce defeq abuse around `Set` (#35752) ESTIMATED CHANGES Modified Mathlib/Algebra/MvPolynomial/Rename.lean Modified Mathlib/Combinatorics/Quiver/ConnectedComponent.lean Modified Mathlib/Combinatorics/SimpleGraph/Copy.lean Modified Mathlib/Data/Nat/Order/Lemmas.lean Modified Mathlib/Data/PFun.lean +/- def PFun.fn Modified Mathlib/Data/PNat/Basic.lean Modified Mathlib/Data/Set/Basic.lean Modified Mathlib/Data/Set/CoeSort.lean +/- theorem Set.elem_mem Modified Mathlib/Data/Set/Function.lean +/- theorem Set.injOn_subtype_val Modified Mathlib/Data/Set/Image.lean + theorem Set.image_diff_subset +/- theorem Set.preimage_injective +/- theorem Set.preimage_surjective Modified Mathlib/Data/Vector/MapLemmas.lean Modified Mathlib/Logic/Function/Basic.lean Modified Mathlib/Order/BooleanAlgebra/Set.lean Modified Mathlib/Order/Minimal.lean Modified Mathlib/Order/Monotone/Defs.lean +/- theorem Subtype.mono_coe +/- theorem Subtype.strictMono_coe Modified Mathlib/Order/PiLex.lean Modified Mathlib/Order/WellFounded.lean 2026-02-25 06:03:16 78457cc chore: update Mathlib dependencies 2026-02-25 (#35749) This PR updates the Mathlib dependencies. ESTIMATED CHANGES Modified lake-manifest.json 2026-02-25 06:03:15 c982349 feat(FieldTheory/Finite/Valuation): add IsTrivialOn (#35531) Co-authored with: @xgenereux. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/FieldTheory/Finite/Valuation.lean + theorem FiniteField.valuation_algebraMap_eq_one + theorem FiniteField.valuation_algebraMap_le_one 2026-02-25 06:03:13 ea9495c feat(Algebra/Homology/SpectralSequence): complex shapes for pages of spectral sequences (#35355) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Homology/SpectralSequence/ComplexShape.lean + def ComplexShape.spectralSequenceFin + theorem ComplexShape.spectralSequenceFin_rel_iff + def ComplexShape.spectralSequenceNat + theorem ComplexShape.spectralSequenceNat_rel_iff 2026-02-25 05:21:27 c73c474 refactor(Algebra/*): generalize `of_ringEquiv` lemmas (#35351) Some lemmas assumed that two modules over different rings admit a semilinear equivalence with respect to a `RingEquiv`. While this is mathematically equivalent to the definition we use everywhere else (a pair of `RingHom`s with `RingHomInvPair` assumptions), it does not directly apply neither to the linear case, nor to the `starRingEnd` case. This PR drops `of_ringEquiv` theorems and generalizes `of_equiv` theorems to semilinear equivalences instead. ESTIMATED CHANGES Modified Mathlib/Algebra/Module/Projective.lean + theorem Module.Projective.of_equiv' +/- theorem Module.Projective.of_equiv - theorem Module.Projective.of_ringEquiv Modified Mathlib/Algebra/Ring/CompTypeclasses.lean + theorem RingHomInvPair.of_ringEquiv_symm + def RingHomInvPair.toRingEquiv Modified Mathlib/LinearAlgebra/FreeModule/Basic.lean + theorem Module.Free.iff_of_equiv - theorem Module.Free.iff_of_ringEquiv +/- theorem Module.Free.of_equiv - theorem Module.Free.of_ringEquiv Modified Mathlib/RingTheory/LocalProperties/Projective.lean Modified Mathlib/RingTheory/Spectrum/Prime/FreeLocus.lean 2026-02-25 03:11:25 d300915 refactor: improve API connecting `ℝ`- and `𝕜`-linear functionals (#34543) This PR concerns the extension of `ℝ`-linear (continuous or not) functionals to `𝕜`-linear functionals. This does several things, but I felt it was better to do it all at once, rather than having repeated churn in the same files because the current setup is a mess for numerous reasons. Unfortunately, that means the diff is a bit of a mess; I think the easiest way to review this PR is read the following discussion and then only look at the *new* code (and check that the deprecations exist). I will begin by highlighting the current problems: 1. Naming: the primary declarations `LinearMap.extendTo𝕜'` and `ContinuousLinearMap.extendTo𝕜'` are in the wrong namespaces (`Module.Dual` and `StrongDual`), and contain a variable name `𝕜`. 2. These declarations are primed, and their unprimed counterparts operate directly on `RestrictScalars`. This is nominally (according to the module documentation) for convenience, but it leads to defeq abuse (see #34530) and so should be avoided anyway. That PR removes the only occurrence of the use of the unprimed declarations in Mathlib. 3. The declaration `ContinuousLinearMap.extendTo𝕜'` has type class assumptions (normed ones) that are too strong, thereby making it unusable for non-normed spaces (e.g., when one wants to consider continuous linear functionals on the weak dual of a Banach space). 4. Point (3) led to the creation of `RCLike.extendTo𝕜'ₗ` which is just `ContinuousLinearMap.extendTo𝕜'` except reproven with weaker type class assumptions and bundled into a linear map. 5. There are missing `simp` lemmas, namely, ones concerning the imaginary part of the extension applied to a vector. 6. We're missing appropriately bundled versions, with `RCLike.extendTo𝕜'ₗ` being the only bundling currently. In this PR: we fix the above by doing the following: 1. Renaming `LinearMap.extendTo𝕜'` → `Module.Dual.extendRCLike` and `ContinuousLinearMap.extendTo𝕜'` → `StrongDual.extendRCLike`. 2. Removing the unprimed counterparts that operate on `RestrictScalars` 3. Weakening the type class assumptions on the newly renamed `StrongDual.extendRCLike` 4. Move `RCLike.extendTo𝕜'ₗ` out of its current location (`Analysis/LocallyConvex/Separation`) and next to `StrongDual.extendRCLike`; use the newly generalized `StrongDual.extendRCLike` to define it; rename it to `StrongDual.extendRCLikeₗ`; upgrade it from a linear map to a linear equivalence. 5. Add the missing simp lemmas for imaginary parts. 6. Add other appropriate bundlings, namely `Module.Dual.extendRCLikeₗ : Dual E ℝ ≃ₗ[ℝ] Dual E 𝕜`, and, in the context of normed spaces `StrongDual.extendRCLikeₗᵢ : StrongDual E ℝ ≃ₗᵢ[ℝ] StrongDual E 𝕜`. ESTIMATED CHANGES Modified Mathlib/Analysis/LocallyConvex/Separation.lean - theorem RCLike.re_extendTo𝕜'ₗ Modified Mathlib/Analysis/Normed/Module/HahnBanach.lean Modified Mathlib/Analysis/Normed/Module/RCLike/Extend.lean - theorem ContinuousLinearMap.norm_extendTo𝕜' - theorem ContinuousLinearMap.norm_extendTo𝕜'_bound - theorem ContinuousLinearMap.norm_extendTo𝕜 + theorem StrongDual.norm_extendRCLike + theorem StrongDual.norm_extendRCLike_bound Modified Mathlib/Analysis/RCLike/Extend.lean - theorem ContinuousLinearMap.extendTo𝕜'_apply - theorem ContinuousLinearMap.extendTo𝕜_apply - theorem LinearMap.extendTo𝕜'_apply - theorem LinearMap.extendTo𝕜'_apply_re - theorem LinearMap.extendTo𝕜_apply - theorem LinearMap.norm_extendTo𝕜'_apply_sq + theorem Module.Dual.extendRCLike_apply + theorem Module.Dual.im_extendRCLike_apply + theorem Module.Dual.norm_extendRCLike_apply_sq + theorem Module.Dual.re_extendRCLike_apply + theorem StrongDual.extendRCLike_apply + theorem StrongDual.im_extendRCLike_apply + theorem StrongDual.re_extendRCLike_apply 2026-02-25 02:08:57 f618ef9 feat(Algebra/Polynomial/PartialFractions): generalize to powers (#35000) Generalize polynomial partial fractions to work with the denominator being a product of powers of coprime monic polynomials. ESTIMATED CHANGES Modified Mathlib/Algebra/Polynomial/PartialFractions.lean + theorem Polynomial.div_eq_quo_add_rem_div_add_rem_div + theorem Polynomial.div_prod_eq_quo_add_sum_rem_div + theorem Polynomial.eq_quo_mul_pow_add_sum_rem_mul_pow + theorem Polynomial.eq_quo_mul_prod_add_sum_rem_mul_prod + theorem Polynomial.eq_quo_mul_prod_pow_add_sum_rem_mul_prod_pow + theorem Polynomial.mul_prod_pow_inverse_eq_quo_add_sum_rem_mul_pow_inverse - theorem div_eq_quo_add_rem_div_add_rem_div - theorem div_eq_quo_add_sum_rem_div 2026-02-25 01:57:10 3f1f9b7 feat(Analysis): `{LinearMap, Matrix}.trace` as a positive linear map (#35445) ESTIMATED CHANGES Modified Mathlib/Analysis/InnerProductSpace/Positive.lean + theorem LinearMap.IsPositive.trace_nonneg + theorem LinearMap.toLinearMap_tracePositiveLinearMap + theorem LinearMap.tracePositiveLinearMap_apply Modified Mathlib/Analysis/Matrix/Order.lean + theorem Matrix.toLinearMap_tracePositiveLinearMap + def Matrix.tracePositiveLinearMap + theorem Matrix.tracePositiveLinearMap_apply 2026-02-25 00:49:23 ab920d5 chore(Order/InitialSeg): remove backward.privateInPublic (#35626) ESTIMATED CHANGES Modified Mathlib/Order/InitialSeg.lean 2026-02-25 00:49:22 450920a feat(SetTheory/Cardinal): generalize infinite pigeonhole principle (#34091) 1. generalize `infinite_pigeonhole_card_lt` and `exists_infinite_fiber` only to require the domain `β` to be infinite instead of codomain `α`. Also make arguments of `Infinite` implicit. 2. add `exists_uncountable_fiber` for uncountable sets. 3. fix a TODO in `le_range_of_union_finset_eq_top` (and also golf). PS: thanks ChatGPT for providing the informal proofs. ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/Basis/Cardinality.lean Modified Mathlib/LinearAlgebra/Dimension/StrongRankCondition.lean Modified Mathlib/SetTheory/Cardinal/Aleph.lean + theorem Cardinal.aleph0_lt_iff_aleph_one_le + theorem Cardinal.aleph1_le_mk + theorem Cardinal.aleph1_le_mk_iff Modified Mathlib/SetTheory/Cardinal/Basic.lean + theorem Infinite.of_cardinalMk_le Modified Mathlib/SetTheory/Cardinal/Pigeonhole.lean + theorem Cardinal.exists_infinite_fiber' +/- theorem Cardinal.exists_infinite_fiber + theorem Cardinal.exists_uncountable_fiber +/- theorem Cardinal.infinite_pigeonhole_card_lt - theorem Cardinal.le_range_of_union_finset_eq_top + theorem Cardinal.le_range_of_union_finset_eq_univ 2026-02-25 00:49:20 711f0ab feat(SimpleGraph): `take` is path if original walk is path (#33249) Proves that taking or dropping the first `n` consecution darts from a path gives another path. ESTIMATED CHANGES Modified Mathlib/Combinatorics/SimpleGraph/Paths.lean + theorem SimpleGraph.Walk.IsPath.drop + theorem SimpleGraph.Walk.IsPath.drop_of_drop + theorem SimpleGraph.Walk.IsPath.take + theorem SimpleGraph.Walk.IsPath.take_of_take 2026-02-24 23:55:16 8f07524 chore(Tactic): improve `econstructor` and `fconstructor` tactic docstrings (#35495) This PR (re)writes the docstrings for the `econstructor` and `fconstructor` tactics, to consistently match the official style guide, to make sure they are complete while not getting too long. ESTIMATED CHANGES Modified Mathlib/Tactic/Constructor.lean 2026-02-24 23:43:34 5dc2392 chore: golf proofs (#35304) The goal of this golfing PR is to decrease the number of times lemmas are called explicitly (replacing calls to lemmas with calls to tactics). Any decrease in compilation time is a welcome side effect, although it is not a primary objective. Trace profiling results (differences <20 ms considered measurement noise): * `AkraBazziRecurrence.smoothingFn_mul_asympBound_isBigO_T`: 3899 ms before, 3809 ms after 🎉 * `MulAction.is_one_preprimitive_iff`: unchanged 🎉 This golfing PR is batched under the following guidelines: * Up to ~5 changed files per PR * Up to ~25 changed declarations per PR * Up to ~100 changed lines per PR ESTIMATED CHANGES Modified Mathlib/Computability/AkraBazzi/AkraBazzi.lean Modified Mathlib/GroupTheory/GroupAction/MultiplePrimitivity.lean 2026-02-24 22:57:20 2d62471 feat(Analysis/InnerProductSpace/Rayleigh): basic API for Rayleigh quotients (#35183) This PR adds basic API lemmas for Rayleigh quotients of zeros and negatives. ESTIMATED CHANGES Modified Mathlib/Analysis/InnerProductSpace/Rayleigh.lean + theorem ContinuousLinearMap.rayleighQuotient_apply_neg + theorem ContinuousLinearMap.rayleighQuotient_apply_zero + theorem ContinuousLinearMap.rayleighQuotient_neg_apply + theorem ContinuousLinearMap.rayleighQuotient_zero_apply 2026-02-24 22:57:18 a12d6f0 feat(Analysis/InnerProductSpace): a linear map composed with its adjoint is symmetric (#35174) Add theorems about `LinearMap.IsSymmetric` that match some theorems for `LinearMap.IsPositive`. Mathlib contains stronger versions of some of these, like `LinearMap.IsPositive.self_comp_adjoint`, but having a dedicated version for `LinearMap.IsSymmetric` is advantageous, especially when used with `LinearMap.IsSymmetric.eigenvalues`. ESTIMATED CHANGES Modified Mathlib/Analysis/InnerProductSpace/Adjoint.lean + theorem LinearMap.IsSymmetric.adjoint_conj + theorem LinearMap.IsSymmetric.conj_adjoint + theorem LinearMap.isSymmetric_adjoint_comp_self + theorem LinearMap.isSymmetric_self_comp_adjoint 2026-02-24 22:57:17 a699232 feat(Analysis/Normed/Module/FiniteDimension): add lemmas on IsTheta and summability (#34914) IsTheta.summable_iff is a natural generalization of IsEquivalent.summable_iff. Some adjacent lemmas now become direct consequences. ESTIMATED CHANGES Modified Mathlib/Analysis/Normed/Module/FiniteDimension.lean + theorem Asymptotics.IsEquivalent.summable_iff + theorem Asymptotics.IsEquivalent.summable_iff_nat + theorem Asymptotics.IsTheta.summable_iff + theorem Asymptotics.IsTheta.summable_iff_nat - theorem IsEquivalent.summable_iff - theorem IsEquivalent.summable_iff_nat 2026-02-24 22:57:15 4589a77 feat: lemmas for the analytic part of the proof of the Gelfond–Schneider theorem (Part 2/4) (#34838) ESTIMATED CHANGES Modified Mathlib/Analysis/Analytic/Order.lean + theorem AnalyticOnNhd.analyticOrderAt_eq_top_iff_eq_zero + theorem IsOpen.forall_analyticOrderAt_eq_top_iff_eqOn_zero 2026-02-24 21:14:11 0b5d4bb feat(AlgebraicGeometry): globalize flat + smooth fibers implies smooth (#35723) We also globalize the corollary that étale = flat + unramified + locally of finite presentation. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/AlgebraicGeometry/Fiber.lean + theorem AlgebraicGeometry.isPullback_fiberToSpecResidueField_of_isPullback Modified Mathlib/AlgebraicGeometry/Morphisms/Etale.lean + theorem AlgebraicGeometry.Etale.iff_flat_and_formallyUnramified + theorem AlgebraicGeometry.Etale.of_formallyUnramified_of_flat Added Mathlib/AlgebraicGeometry/Morphisms/SmoothFiber.lean + theorem AlgebraicGeometry.Smooth.of_smooth_fiberToSpecResidueField Modified Mathlib/AlgebraicGeometry/ResidueField.lean + theorem AlgebraicGeometry.Scheme.Spec.map_residueFieldIso_inv_eq_fromSpecResidueField Modified Mathlib/RingTheory/RingHom/Etale.lean + theorem RingHom.Etale.iff_flat_and_formallyUnramified Modified Mathlib/RingTheory/RingHom/Smooth.lean + theorem RingHom.Smooth.finitePresentation + theorem RingHom.Smooth.formallySmooth + theorem RingHom.Smooth.respectsIso 2026-02-24 20:40:57 e30ddc5 feat(LinearAlgebra/QuadraticForm): radical of a quadratic form (#34493) Define the radical of a quadratic form, and show that its dimension is invariant under equivalences. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/LinearAlgebra/Basis/Basic.lean Modified Mathlib/LinearAlgebra/Dimension/Constructions.lean + theorem Pi.dim_spanSubset Modified Mathlib/LinearAlgebra/LinearIndependent/Defs.lean + theorem LinearIndependent.linearIndepOn - theorem linearIndepOn_univ + theorem linearIndepOn_univ_iff Modified Mathlib/LinearAlgebra/LinearIndependent/Lemmas.lean Modified Mathlib/LinearAlgebra/QuadraticForm/IsometryEquiv.lean + theorem QuadraticMap.IsometryEquiv.apply_symm_apply + theorem QuadraticMap.IsometryEquiv.coe_symm_toLinearEquiv + theorem QuadraticMap.IsometryEquiv.symm_apply_apply Added Mathlib/LinearAlgebra/QuadraticForm/Radical.lean + theorem QuadraticForm.finrank_radical_of_equiv_weightedSumSquares + theorem QuadraticForm.radical_weightedSumSquares + theorem QuadraticMap.Equivalent.rank_radical_eq + theorem QuadraticMap.IsometryEquiv.map_radical + structure QuadraticMap.Nondegenerate + theorem QuadraticMap.le_radical_iff + theorem QuadraticMap.lift_mk + theorem QuadraticMap.mem_radical_iff' + theorem QuadraticMap.nondegenerate_associated_iff + theorem QuadraticMap.nondegenerate_iff_radical_eq_bot + theorem QuadraticMap.nondegenerate_polar_iff + def QuadraticMap.radical + theorem QuadraticMap.radical_eq_ker_associated + theorem QuadraticMap.radical_eq_ker_polarBilin + theorem QuadraticMap.radical_le_ker_polarBilin Modified Mathlib/LinearAlgebra/StdBasis.lean + theorem Pi.mem_spanSubset_iff + def Pi.spanSubset Modified docs/references.bib 2026-02-24 19:39:07 9b809f3 feat: Poisson Integral Formula for ℂ-differentiable functions (#35399) Establish two versions of the Poisson Integral Formula for ℂ-differentiable functions on arbitrary disks in the complex plane, formulated with the real part of the Herglotz–Riesz kernel of integration and with the Poisson kernel, respectively. This material is used in [Project VD](https://github.com/kebekus/ProjectVD), formalizing Value Distribution Theory for meromorphic functions on the complex plane. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/Complex/Poisson.lean + theorem DiffContOnCl.circleAverage_poissonKernel_smul' + theorem DiffContOnCl.circleAverage_poissonKernel_smul + theorem DiffContOnCl.circleAverage_re_herglotzRieszKernel_smul' + theorem DiffContOnCl.circleAverage_re_herglotzRieszKernel_smul + theorem herglotzRieszKernel_def + theorem le_re_herglotzRieszKernel + theorem poissonKernel_def + theorem poissonKernel_eq_re_herglotzRieszKernel + theorem re_herglotzRieszKernel_le Modified Mathlib/Analysis/Complex/Trigonometric.lean + theorem Complex.exp_ofReal_mul_I 2026-02-24 18:27:53 971bdd8 feat: local frames in a vector bundle (#30083) We construct local frames on a vector from local trivialisations. The former constructs, given a trivialisation `e` of the vector bundle and a basis of the model fibre, `Basis.localFrame` is a local frame on `e.baseSet` A future PR will use this to define the local extension of a tangent vector to a vector field near a point. From the path towards geodesics and the Levi-Civita connection. ESTIMATED CHANGES Modified Mathlib/Algebra/Module/Equiv/Basic.lean + def LinearMap.piApply + theorem LinearMap.piApply_apply + theorem LinearMap.piApply_apply_apply Modified Mathlib/Geometry/Manifold/VectorBundle/LocalFrame.lean +/- def IsLocalFrameOn.coeff +/- theorem IsLocalFrameOn.coeff_apply_of_notMem - theorem IsLocalFrameOn.coeff_apply_zero_at +/- theorem IsLocalFrameOn.contMDiffAt_of_coeff_aux +/- theorem IsLocalFrameOn.contMDiffOn_of_coeff + theorem IsLocalFrameOn.eq_of_coeff_eq +/- theorem IsLocalFrameOn.mdifferentiableAt_of_coeff_aux +/- theorem IsLocalFrameOn.mdifferentiableOn_of_coeff + theorem Trivialization.eq_sum_localFrame_coeff_smul + theorem Trivialization.eventually_eq_localFrame_sum_coeff_smul + def Trivialization.localFrame_coeff + theorem Trivialization.localFrame_coeff_apply_of_mem_baseSet + theorem Trivialization.localFrame_coeff_apply_of_notMem_baseSet + theorem Trivialization.localFrame_coeff_congr + theorem Trivialization.localFrame_coeff_eq_coeff + theorem contMDiffAt_iff_localFrame_coeff + theorem contMDiffAt_localFrame_coeff + theorem contMDiffOn_baseSet_iff_localFrame_coeff + theorem contMDiffOn_baseSet_localFrame_coeff + theorem contMDiffOn_iff_localFrame_coeff + theorem contMDiffOn_localFrame_coeff + theorem mdifferentiableAt_iff_localFrame_coeff + theorem mdifferentiableAt_localFrame_coeff + theorem mdifferentiableOn_baseSet_localFrame_coeff + theorem mdifferentiableOn_localFrame_coeff 2026-02-24 17:56:15 486b45d chore: replace `aesop` with `simp`/`simp_all` where applicable (#35712) Since `aesop` runs `simp_all` by default, it is preferable to call `simp_all` (or even `simp`) directly when they suffice to close the goal. This makes the proof intent more explicit and is typically faster (often significantly so in the cases below). Trace profiling results (differences <30 ms considered measurement noise): * `Finset.prod_Ico_int_div`: 122 ms before, 86 ms after 🎉 * `Submonoid.apply_ne_one_of_mem_or_inv_mem_closure`: 3985 ms before, 3818 ms after 🎉 * `Polynomial.iterate_derivative_mul_X_pow`: 937 ms before, 730 ms after 🎉 * `Polynomial.Splits.of_dvd`: 1141 ms before, 32 ms after 🎉 * `Polynomial.Splits.of_natDegree_le_one`: 156 ms before, 85 ms after 🎉 * `AlgebraicGeometry.QuasiCompactCover.isCompactOpenCovered_of_isCompact`: unchanged 🎉 * `AlgebraicGeometry.mono_pushoutSection_of_iSup_eq`: 7303 ms before, 3748 ms after 🎉 * `SimplexCategory.II.map'_id`: 90 ms before, <30 ms after 🎉 * `Unitary.norm_sub_one_sq_eq`: 477 ms before, 399 ms after 🎉 * `CategoryTheory.PreservesFiniteLimitsOfFlat.uniq`: unchanged 🎉 * `CategoryTheory.Localization.SmallShiftedHom.comp_mk₀_id`: unchanged 🎉 * `CategoryTheory.Localization.SmallShiftedHom.mk₀_id_comp`: unchanged 🎉 * `Matroid.Indep.indep_insert_diff_of_mem_closure`: 1094 ms before, 58 ms after 🎉 * `Nat.injOn_ofDigits`: 515 ms before, 103 ms after 🎉 * `MulAction.IsBlock.subsingleton_of_stabilizer_lt_of_subset`: 628 ms before, 268 ms after 🎉 * `Matrix.IsIrreducible.exists_pos`: 319 ms before, 230 ms after 🎉 * `RootPairing.Base.linearIndependent_pair_of_ne`: unchanged 🎉 * `RootPairing.eq_baseOf_iff`: 1286 ms before, 194 ms after 🎉 * `RootPairing.coroot_mem_or_neg_mem_closure_of_root`: 2974 ms before, 1117 ms after 🎉 * `biUnion_Ici_Ico_map_succ`: 613 ms before, 429 ms after 🎉 * `biUnion_Ici_Ioc_map_succ`: 1327 ms before, 1033 ms after 🎉 * `MvPolynomial.coeff_sumSMulX`: 794 ms before, 205 ms after 🎉 * `Multipliable.hasProd`: 202 ms before, 115 ms after 🎉 * `IsClosed.mem_of_ge_of_forall_exists_lt`: 2396 ms before, 2187 ms after 🎉 Profiled using `set_option trace.profiler true in`. ESTIMATED CHANGES Modified Mathlib/Algebra/BigOperators/Group/Finset/Interval.lean Modified Mathlib/Algebra/Group/Irreducible/Indecomposable.lean Modified Mathlib/Algebra/Polynomial/Derivative.lean Modified Mathlib/Algebra/Polynomial/Splits.lean Modified Mathlib/AlgebraicGeometry/Cover/QuasiCompact.lean Modified Mathlib/AlgebraicGeometry/Morphisms/Flat.lean Modified Mathlib/AlgebraicTopology/SimplicialObject/II.lean Modified Mathlib/Analysis/CStarAlgebra/Unitary/Connected.lean Modified Mathlib/CategoryTheory/Functor/Flat.lean Modified Mathlib/CategoryTheory/Localization/SmallShiftedHom.lean Modified Mathlib/Combinatorics/Matroid/Closure.lean Modified Mathlib/Data/Nat/Digits/Lemmas.lean Modified Mathlib/GroupTheory/Perm/MaximalSubgroups.lean Modified Mathlib/LinearAlgebra/Matrix/Irreducible/Defs.lean Modified Mathlib/LinearAlgebra/RootSystem/Base.lean Modified Mathlib/LinearAlgebra/RootSystem/BaseExists.lean Modified Mathlib/Order/SuccPred/IntervalSucc.lean Modified Mathlib/RingTheory/MvPolynomial/IrreducibleQuadratic.lean Modified Mathlib/Topology/Algebra/InfiniteSum/Defs.lean Modified Mathlib/Topology/Order/IntermediateValue.lean 2026-02-24 17:56:13 681dd0c feat: definition of equivalence of representations (#34888) Defines equivalence of representations, and defines an equivalence between $$\mathrm{Hom}(V, W)$$ and $$V^* \otimes W$$ as representations. This is a missing piece to respell all of the results in Character.lean without using category-theoretic notions. ESTIMATED CHANGES Modified Mathlib/RepresentationTheory/Intertwining.lean + theorem Representation.Equiv.coe_invFun + theorem Representation.Equiv.coe_toIntertwiningMap + theorem Representation.Equiv.coe_toLinearMap + theorem Representation.Equiv.conj_apply_self + theorem Representation.Equiv.toLinearEquiv_apply + theorem Representation.Equiv.toLinearEquiv_toLinearMap + structure Representation.Equiv 2026-02-24 17:38:54 d07642c feat(Module/RCLike): convenience lemma to prove antilipschitz over RCLike (#35224) Use the fact that we can rescale by norms in RCLike to get a convenience constructor for Antilipschitz ESTIMATED CHANGES Modified Mathlib/Analysis/Normed/Module/RCLike/Basic.lean + theorem antilipschitz_of_bound_of_norm_one 2026-02-24 16:50:06 4b6d461 feat(RingTheory/Radical): positivity extension for radical of natural (#35044) A follow-up from #25335 which I forgot to make at the time. ESTIMATED CHANGES Modified Mathlib/RingTheory/Radical.lean 2026-02-24 16:35:01 9e23f6a feat(Analysis/LocallyConvex/WeakDual): Weak Representation Theorem (#35422) This PR uses the material in Topology/Algebra/Module/WeakBilin.lean from the unfinished PR #26345 by @mans0954. Given a bilinear form `B : E →ₗ[𝕜] F →ₗ[𝕜] 𝕜`, every continuous functional on `E` endowed with the `σ(E, F; B)`-topology is of the form `x ↦ B(x, y)` for some `y : F`. The result doesn't generally seem to be named, but Narici-Beckenstein's "Topological Vector Spaces" calls it the "weak representation theorem", a term we have used for the docstring. ESTIMATED CHANGES Modified Mathlib/Analysis/LocallyConvex/WeakDual.lean + theorem LinearMap.dualEmbedding_injective_of_separatingRight + theorem LinearMap.dualEmbedding_surjective 2026-02-24 15:42:11 e16da3f feat(Topology/Spectral): a spectral space is quasi-compact with the constructible topology (#35507) We show that if `X` is a spectral space equipped with the constructible topology, it is quasi-compact. Co-authored by: Johan Commelin Co-authored by: Jiedong Jiang From Proetale ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Topology/Compactness/Compact.lean + theorem CompactSpace.nonempty_sInter + theorem IsCompact.nonempty_inter_sInter + theorem compactSpace_generateFrom_of_compl_mem Modified Mathlib/Topology/QuasiSeparated.lean + theorem QuasiSeparatedSpace.isCompact_sInter + theorem QuasiSeparatedSpace.isCompact_sInter_of_nonempty Added Mathlib/Topology/Spectral/ConstructibleTopology.lean + theorem IsCompact.isOpen_constructibleTopology_of_isClosed + theorem IsCompact.isOpen_constructibleTopology_of_isOpen + def WithConstructibleTopology + theorem compl_mem_constructibleTopologySubbasis_iff + def constructibleTopology + def constructibleTopologySubbasis + theorem isCompact_of_mem_constructibleTopologySubbasis + theorem isCompact_sInter_of_subset_constructibleTopologySubbasis Modified Mathlib/Topology/Spectral/Prespectral.lean + theorem PrespectralSpace.exists_isClosed_of_not_isPreirreducible 2026-02-24 15:42:08 22a7428 refactor: change definition of distance in normed group (#35037) The current definition of the distance in a normed group is `dist x y = ||x / y||`. With this definition, the distance is right-invariant. This does not correspond to the convention in geometric group theory where the distance is given by `||x^{-1} * y||` to make sure it is left-invariant -- this corresponds to the fact that, in a Cayley graph, we put an edge between `x` and `xs` and declare these to be at distance one. We refactor the definition to make sure it follows the standard convention. A pain point is that, in additive commutative groups, which is arguably the most important case, it becomes `||-x + y||` instead of `||x - y||` (which is propositionally the same, but not definitionally). To minimize the hassle, we keep all the lemmas that use `||x - y||`, with their current names, and add new versions in terms of `||-x + y||` when useful. ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Hom/Basic.lean + theorem map_inv_mul Modified Mathlib/Analysis/Asymptotics/Lemmas.lean Modified Mathlib/Analysis/CStarAlgebra/lpSpace.lean Modified Mathlib/Analysis/Calculus/BumpFunction/Normed.lean Modified Mathlib/Analysis/Calculus/FDeriv/Extend.lean Modified Mathlib/Analysis/Calculus/UniformLimitsDeriv.lean Modified Mathlib/Analysis/Complex/AbsMax.lean Modified Mathlib/Analysis/Complex/Basic.lean +/- theorem Complex.ball_one_subset_slitPlane Modified Mathlib/Analysis/Complex/Liouville.lean Modified Mathlib/Analysis/Complex/LocallyUniformLimit.lean Modified Mathlib/Analysis/Complex/Norm.lean +/- theorem Complex.dist_eq Modified Mathlib/Analysis/Complex/OpenMapping.lean Modified Mathlib/Analysis/Complex/Schwarz.lean Modified Mathlib/Analysis/Complex/TaylorSeries.lean Modified Mathlib/Analysis/Complex/UpperHalfPlane/Metric.lean Modified Mathlib/Analysis/Fourier/RiemannLebesgueLemma.lean Modified Mathlib/Analysis/InnerProductSpace/Subspace.lean Modified Mathlib/Analysis/LocallyConvex/BalancedCoreHull.lean Modified Mathlib/Analysis/LocallyConvex/WithSeminorms.lean Modified Mathlib/Analysis/Normed/Algebra/UnitizationL1.lean Modified Mathlib/Analysis/Normed/Field/Basic.lean Modified Mathlib/Analysis/Normed/Field/Lemmas.lean Modified Mathlib/Analysis/Normed/Group/Basic.lean - theorem NormedCommGroup.nhds_one_basis_norm_lt - theorem NormedCommGroup.tendsto_nhds_one + theorem NormedGroup.nhds_basis_norm_lt + theorem NormedGroup.nhds_one_basis_norm_lt + theorem NormedGroup.tendsto_nhds_nhds + theorem NormedGroup.tendsto_nhds_one + theorem NormedGroup.uniformity_basis_dist +/- theorem abs_norm_sub_norm_le' + theorem abs_norm_sub_norm_le_norm_inv_mul +/- theorem ball_eq' + theorem ball_eq_norm_inv_mul_lt +/- theorem dist_eq_norm_div' +/- theorem dist_eq_norm_div + theorem dist_eq_norm_inv_mul' + theorem dist_eq_norm_inv_mul + theorem dist_norm_norm_le_norm_inv_mul +/- theorem dist_one_right + theorem edist_eq_enorm_inv_mul +/- theorem mem_ball_iff_norm''' +/- theorem mem_ball_iff_norm'' + theorem mem_ball_iff_norm_inv_mul_lt' + theorem mem_ball_iff_norm_inv_mul_lt + theorem mem_closedBall_iff_norm_inv_mul_le' + theorem mem_closedBall_iff_norm_inv_mul_le + theorem mem_sphere_iff_norm_inv_mul_eq + theorem nndist_eq_nnnorm_inv_mul + theorem nndist_nnnorm_nnnorm_le_nnnorm_inv_mul +/- theorem nndist_one_left +/- theorem nndist_one_right + theorem norm_inv_mul + theorem norm_le_norm_add_norm_inv_mul + theorem norm_sub_norm_le_norm_inv_mul Modified Mathlib/Analysis/Normed/Group/Bounded.lean Modified Mathlib/Analysis/Normed/Group/Completion.lean Modified Mathlib/Analysis/Normed/Group/Constructions.lean Modified Mathlib/Analysis/Normed/Group/Continuity.lean +/- theorem SeminormedCommGroup.mem_closure_iff + theorem SeminormedGroup.mem_closure_iff + theorem tendsto_iff_norm_inv_mul_tendsto_zero +/- theorem tendsto_norm_div_self_nhdsNE + theorem tendsto_norm_inv_mul_self + theorem tendsto_norm_inv_mul_self_nhdsGE + theorem tendsto_norm_inv_mul_self_nhdsNE Modified Mathlib/Analysis/Normed/Group/ControlledClosure.lean Modified Mathlib/Analysis/Normed/Group/Defs.lean Modified Mathlib/Analysis/Normed/Group/Int.lean Modified Mathlib/Analysis/Normed/Group/Pointwise.lean +/- theorem Bornology.IsBounded.of_mul Modified Mathlib/Analysis/Normed/Group/Quotient.lean Modified Mathlib/Analysis/Normed/Group/Rat.lean Modified Mathlib/Analysis/Normed/Group/Real.lean Modified Mathlib/Analysis/Normed/Group/Ultra.lean Modified Mathlib/Analysis/Normed/Group/Uniform.lean +/- theorem LipschitzOnWith.norm_div_le_of_le + theorem LipschitzOnWith.norm_inv_mul_le_of_le +/- theorem LipschitzWith.norm_div_le_of_le + theorem LipschitzWith.norm_inv_mul_le_of_le +/- theorem dist_mul_self_left +/- theorem dist_mul_self_right +/- theorem dist_self_mul_left +/- theorem dist_self_mul_right +/- theorem lipschitzOnWith_iff_norm_div_le + theorem lipschitzOnWith_iff_norm_inv_mul_le + theorem lipschitzWith_iff_norm_inv_mul_le Modified Mathlib/Analysis/Normed/Lp/PiLp.lean Modified Mathlib/Analysis/Normed/Lp/ProdLp.lean Modified Mathlib/Analysis/Normed/Lp/lpSpace.lean Modified Mathlib/Analysis/Normed/Module/Basic.lean Modified Mathlib/Analysis/Normed/Module/FiniteDimension.lean Modified Mathlib/Analysis/Normed/Module/Multilinear/Basic.lean + theorem ContinuousMultilinearMap.opNorm_neg Modified Mathlib/Analysis/Normed/MulAction.lean Modified Mathlib/Analysis/Normed/Operator/Basic.lean Modified Mathlib/Analysis/Normed/Operator/Completeness.lean Modified Mathlib/Analysis/Normed/Order/Hom/Basic.lean Modified Mathlib/Analysis/Normed/Order/Hom/Ultra.lean Modified Mathlib/Analysis/Normed/Ring/Basic.lean Modified Mathlib/Analysis/Normed/Unbundled/SpectralNorm.lean Modified Mathlib/Analysis/Seminorm.lean + theorem Seminorm.ball_eq_metric + theorem Seminorm.closedBall_eq_metric +/- theorem Seminorm.vadd_ball +/- theorem Seminorm.vadd_closedBall Modified Mathlib/Analysis/SpecialFunctions/Elliptic/Weierstrass.lean Modified Mathlib/Analysis/SpecialFunctions/Exp.lean Modified Mathlib/InformationTheory/Hamming.lean Modified Mathlib/MeasureTheory/Function/ConvergenceInMeasure.lean +/- theorem MeasureTheory.tendstoInMeasure_iff_enorm +/- theorem MeasureTheory.tendstoInMeasure_iff_measureReal_enorm +/- theorem MeasureTheory.tendstoInMeasure_iff_measureReal_norm +/- theorem MeasureTheory.tendstoInMeasure_iff_norm +/- theorem MeasureTheory.tendstoInMeasure_of_tendsto_eLpNorm_top Modified Mathlib/MeasureTheory/Function/LpSpace/Basic.lean + theorem MeasureTheory.Lp.dist_eq_eLpNorm_neg_add +/- theorem MeasureTheory.Lp.dist_eq_norm +/- theorem MeasureTheory.Lp.edist_def + theorem MeasureTheory.Lp.edist_eq_eLpNorm_neg_add Modified Mathlib/MeasureTheory/Function/LpSpace/DomAct/Basic.lean Modified Mathlib/MeasureTheory/Integral/CircleIntegral.lean Modified Mathlib/MeasureTheory/Integral/CircleTransform.lean Modified Mathlib/MeasureTheory/Integral/CurveIntegral/Basic.lean Modified Mathlib/MeasureTheory/Measure/Haar/NormedSpace.lean Modified Mathlib/NumberTheory/NumberField/CanonicalEmbedding/ConvexBody.lean Modified Mathlib/NumberTheory/NumberField/InfinitePlace/Basic.lean Modified Mathlib/NumberTheory/Padics/MahlerBasis.lean Modified Mathlib/NumberTheory/Padics/PadicIntegers.lean Modified Mathlib/NumberTheory/Padics/PadicNumbers.lean Modified Mathlib/Topology/Algebra/IsUniformGroup/Basic.lean Modified Mathlib/Topology/Algebra/IsUniformGroup/Defs.lean +/- theorem uniformity_eq_comap_nhds_one' Modified Mathlib/Topology/Algebra/Module/Multilinear/Bounded.lean Modified Mathlib/Topology/Algebra/Valued/NormedValued.lean Modified Mathlib/Topology/Algebra/Valued/ValuationTopology.lean Modified Mathlib/Topology/ContinuousMap/Bounded/Normed.lean Modified Mathlib/Topology/ContinuousMap/Compact.lean Modified Mathlib/Topology/MetricSpace/Kuratowski.lean Modified MathlibTest/hintAll.lean Modified scripts/nolints_prime_decls.txt 2026-02-24 15:42:05 8f203e7 feat: define `Matrix.ProjGenLinGroup` (#34987) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/LinearAlgebra/Matrix/GeneralLinearGroup/Projective.lean + theorem Matrix.ProjGenLinGroup.induction_on + theorem Matrix.ProjGenLinGroup.ker_mk + def Matrix.ProjGenLinGroup.lift + theorem Matrix.ProjGenLinGroup.lift_comp_mk + theorem Matrix.ProjGenLinGroup.lift_mk + def Matrix.ProjGenLinGroup.mk + theorem Matrix.ProjGenLinGroup.mk_scalar + theorem Matrix.ProjGenLinGroup.mk_smul + theorem Matrix.ProjGenLinGroup.mk_surjective + def Matrix.ProjGenLinGroup.mulActionOfGL + def Matrix.ProjGenLinGroup.signDet + theorem Matrix.ProjGenLinGroup.signDet_mk + theorem Matrix.ProjGenLinGroup.val_signDet_mk + def Matrix.ProjGenLinGroup 2026-02-24 15:42:03 9b52ac7 refactor(RingTheory/Ideal/AssociatedPrime/Basic): redefine associated primes to include a radical (#34221) This PR redefines associated primes from `I.IsPrime ∧ ∃ x : M, I = colon ⊥ {x}` to `I.IsPrime ∧ ∃ x : M, I = (colon ⊥ {x}).radical`. This new definition is slightly nonstandard but is the correct definition in the non-Noetherian setting because these are exactly the prime ideals of any minimal primary decomposition. I.e., one can prove the following theorem (see the change to `Lasker.lean`): ``` lemma IsMinimalPrimaryDecomposition.image_radical_eq_associated_primes {R M : Type*} [CommSemiring R] [AddCommMonoid M] [Module R M] [DecidableEq (Submodule R M)] {I : Submodule R M} {t : Finset (Submodule R M)} (ht : I.IsMinimalPrimaryDecomposition t) : (fun J ↦ (J.colon Set.univ).radical) '' t = I.associatedPrimes := ``` I also added a new definition `N.IsAssociatedPrime := I.IsPrime ∧ ∃ x : M, I = (colon N {x}).radical` for submodules because that's actually the definition needed for the above theorem (you can't write `associatedPrimes R (M ⧸ N)` when `M` is only an `AddCommMonoid`). And also the proof that the radical doesn't matter when the ring is Noetherian generalizes to this case. ESTIMATED CHANGES Modified Mathlib/RingTheory/Ideal/AssociatedPrime/Basic.lean - theorem AssociatePrimes.mem_iff + theorem AssociatedPrimes.mem_iff + theorem isAssociatedPrime_iff +/- theorem isAssociatedPrime_iff_exists_injective_linearMap Modified Mathlib/RingTheory/Ideal/AssociatedPrime/Finiteness.lean Modified Mathlib/RingTheory/Ideal/AssociatedPrime/Localization.lean Modified Mathlib/RingTheory/Lasker.lean + theorem Submodule.IsMinimalPrimaryDecomposition.image_radical_eq_associated_primes - theorem Submodule.IsMinimalPrimaryDecomposition.mem_image_radical_colon_iff Modified Mathlib/RingTheory/Regular/Depth.lean 2026-02-24 15:01:45 120ef86 chore: mark `RelEmbedding.collapse` as `no_expose` (#35624) This is a map into a subsingleton with no nice def-eqs. Its definition was always intended as an implementation detail. ESTIMATED CHANGES Modified Mathlib/Order/InitialSeg.lean 2026-02-24 14:26:45 4ba9344 chore: weekly lints for 2026-02-23 (#35678) As reported at [#mathlib4 > Weekly linting log @ 💬](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Weekly.20linting.20log/near/575230361). I slightly moved around proofs in `MeasureTheory.IsSetSemiring.Ioc` to have fewer calls to `simp`/`grind`. ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Group/Int/Sum.lean Modified Mathlib/Combinatorics/SimpleGraph/Acyclic.lean Modified Mathlib/LinearAlgebra/RootSystem/BaseExists.lean Modified Mathlib/MeasureTheory/SetSemiring.lean Modified Mathlib/Order/Interval/Finset/Gaps.lean 2026-02-24 14:26:43 ab48303 feat(AlgebraicTopology): various localized equivalences (#34643) Given a model category `C`, we show that a few localizer morphisms are localized weak equivalences, which can be understood by saying that we obtain the same localized category (up to equivalence) by inverting weak equivalences in `C`, `CofibrantObject C`, `FibrantObject C` or `BifibrantObject C`. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/AlgebraicTopology/ModelCategory/BifibrantObjectHomotopy.lean + def HomotopicalAlgebra.BifibrantObject.localizerMorphism + def HomotopicalAlgebra.BifibrantObject.ιCofibrantObjectLocalizerMorphism + def HomotopicalAlgebra.BifibrantObject.ιFibrantObjectLocalizerMorphism + theorem HomotopicalAlgebra.locallySmall_of_isLocalization Modified Mathlib/CategoryTheory/Localization/LocalizerMorphism.lean Added Mathlib/CategoryTheory/Quotient/LocallySmall.lean 2026-02-24 13:32:05 900da3d feat: more lemmas on `Ordinal.type` (#35519) Extracted from #35513. ESTIMATED CHANGES Modified Mathlib/Order/Max.lean + theorem noBotOrder_iff + theorem noMinOrder_iff Modified Mathlib/SetTheory/Cardinal/Cofinality.lean Modified Mathlib/SetTheory/Ordinal/Basic.lean + theorem Ordinal.isSuccPrelimit_type_lt + theorem Ordinal.isSuccPrelimit_type_lt_iff + theorem Ordinal.type_lt_mem_range_succ + theorem Ordinal.type_lt_mem_range_succ_iff + theorem Ordinal.type_lt_ulift - theorem Ordinal.type_uLift + theorem Ordinal.type_ulift 2026-02-24 12:14:39 360d94e doc(RingTheory/Kaehler/Basic): fix markdown list (#35704) Currently, this shows up [in the docs](https://leanprover-community.github.io/mathlib4_docs/Mathlib/RingTheory/Kaehler/Basic.html#KaehlerDifferential.kerTotal) as: > The `S`-submodule of `S →₀ S` (the direct sum of copies of `S` indexed by `S`) generated by the relations: > 1. `dx + dy = d(x + y)` > 2. `x dy + y dx = d(x * y)` > 3. `dr = 0` for `r ∈ R` where `db` is the unit in the copy of `S` with index `b`. > > This is the kernel of the surjection `Finsupp.linearCombination S Ω[S⁄R] S (KaehlerDifferential.D R S)`. See `KaehlerDifferential.kerTotal_eq` and `KaehlerDifferential.linearCombination_surjective`. ESTIMATED CHANGES Modified Mathlib/RingTheory/Kaehler/Basic.lean 2026-02-24 12:14:37 8faec23 chore: tag `MeasurableSet.mem` with `fun_prop` (#35644) This lets `measurability` solve goals like `MeasurableSet {x | f x ∈ s}`. ESTIMATED CHANGES Modified Mathlib/MeasureTheory/MeasurableSpace/Constructions.lean 2026-02-24 12:14:35 7df7d70 feat: RestrictedProduct.mulSingle_eq_same (#35621) ESTIMATED CHANGES Modified Mathlib/Topology/Algebra/RestrictedProduct/Basic.lean + theorem RestrictedProduct.mulSingle_eq_same 2026-02-24 11:36:21 420a683 feat(Data/Set): infinite sets have a countably infinite subset (#35579) ESTIMATED CHANGES Modified Mathlib/Data/Set/Countable.lean + theorem Set.Infinite.exists_subset_countable_infinite 2026-02-24 10:38:36 0c08ce9 chore: bump toolchain to v4.29.0-rc2 (#35708) ESTIMATED CHANGES Modified Archive/Imo/Imo1961Q3.lean Modified Archive/Imo/Imo1972Q5.lean Modified Archive/Imo/Imo1982Q1.lean Modified Archive/Imo/Imo1988Q6.lean Modified Archive/Imo/Imo1998Q2.lean Modified Archive/Imo/Imo2001Q4.lean Modified Archive/Imo/Imo2010Q5.lean Modified Archive/Imo/Imo2011Q3.lean Modified Archive/Imo/Imo2013Q5.lean Modified Archive/Imo/Imo2015Q6.lean Modified Archive/Imo/Imo2024Q1.lean Modified Archive/Imo/Imo2024Q3.lean Modified Archive/Imo/Imo2024Q6.lean Modified Archive/MiuLanguage/DecisionNec.lean Modified Archive/MiuLanguage/DecisionSuf.lean Modified Archive/Sensitivity.lean Modified Archive/Wiedijk100Theorems/AreaOfACircle.lean Modified Archive/Wiedijk100Theorems/BuffonsNeedle.lean Modified Archive/Wiedijk100Theorems/CubingACube.lean Modified Archive/Wiedijk100Theorems/SumOfPrimeReciprocalsDiverges.lean Modified Archive/ZagierTwoSquares.lean Modified Counterexamples/CliffordAlgebraNotInjective.lean Modified Counterexamples/DimensionPolynomial.lean Modified Counterexamples/DiscreteTopologyNonDiscreteUniformity.lean Modified Counterexamples/NowhereDifferentiable.lean Modified Counterexamples/SeminormLatticeNotDistrib.lean Modified Counterexamples/SorgenfreyLine.lean Modified Counterexamples/TopologistsSineCurve.lean Modified Counterexamples/ZeroDivisorsInAddMonoidAlgebras.lean Modified Mathlib/Algebra/AddConstMap/Basic.lean Modified Mathlib/Algebra/Algebra/NonUnitalSubalgebra.lean Modified Mathlib/Algebra/Algebra/Operations.lean Modified Mathlib/Algebra/Algebra/Subalgebra/Basic.lean Modified Mathlib/Algebra/Algebra/Subalgebra/Directed.lean Modified Mathlib/Algebra/Algebra/Subalgebra/Unitization.lean Modified Mathlib/Algebra/BigOperators/Field.lean Modified Mathlib/Algebra/BigOperators/Fin.lean Modified Mathlib/Algebra/BigOperators/Intervals.lean Modified Mathlib/Algebra/BigOperators/ModEq.lean Modified Mathlib/Algebra/BigOperators/NatAntidiagonal.lean Modified Mathlib/Algebra/Category/CommBialgCat.lean Modified Mathlib/Algebra/Category/Grp/EnoughInjectives.lean Modified Mathlib/Algebra/Category/Grp/FilteredColimits.lean Modified Mathlib/Algebra/Category/Grp/FiniteGrp.lean Modified Mathlib/Algebra/Category/Grp/ZModuleEquivalence.lean Modified Mathlib/Algebra/Category/ModuleCat/Adjunctions.lean Modified Mathlib/Algebra/Category/ModuleCat/Presheaf.lean Modified Mathlib/Algebra/Category/Ring/Adjunctions.lean Modified Mathlib/Algebra/Central/End.lean Modified Mathlib/Algebra/CharP/Defs.lean Modified Mathlib/Algebra/CharP/Invertible.lean Modified Mathlib/Algebra/CharP/Lemmas.lean Modified Mathlib/Algebra/CharP/LinearMaps.lean Modified Mathlib/Algebra/DirectSum/Internal.lean Modified Mathlib/Algebra/Field/Periodic.lean Modified Mathlib/Algebra/Field/Subfield/Defs.lean Modified Mathlib/Algebra/FreeAbelianGroup/Finsupp.lean Modified Mathlib/Algebra/FreeAlgebra.lean Modified Mathlib/Algebra/GCDMonoid/Basic.lean Modified Mathlib/Algebra/Group/Action/Hom.lean Modified Mathlib/Algebra/Group/Defs.lean Modified Mathlib/Algebra/Group/Fin/Basic.lean Modified Mathlib/Algebra/Group/ForwardDiff.lean Modified Mathlib/Algebra/Group/NatPowAssoc.lean Modified Mathlib/Algebra/Group/Subgroup/Ker.lean Modified Mathlib/Algebra/GroupWithZero/NonZeroDivisors.lean Modified Mathlib/Algebra/Homology/DerivedCategory/Ext/Basic.lean Modified Mathlib/Algebra/Homology/Functor.lean Modified Mathlib/Algebra/Homology/Homotopy.lean Modified Mathlib/Algebra/Jordan/Basic.lean Modified Mathlib/Algebra/Lie/Derivation/Basic.lean Modified Mathlib/Algebra/Lie/Engel.lean Modified Mathlib/Algebra/Lie/EngelSubalgebra.lean Modified Mathlib/Algebra/Lie/NonUnitalNonAssocAlgebra.lean Modified Mathlib/Algebra/Lie/OfAssociative.lean Modified Mathlib/Algebra/Lie/Quotient.lean Modified Mathlib/Algebra/Lie/Sl2.lean Modified Mathlib/Algebra/Lie/Solvable.lean Modified Mathlib/Algebra/Lie/Subalgebra.lean Modified Mathlib/Algebra/Lie/Submodule.lean Modified Mathlib/Algebra/Lie/TraceForm.lean Modified Mathlib/Algebra/Lie/Weights/Basic.lean Modified Mathlib/Algebra/Lie/Weights/Cartan.lean Modified Mathlib/Algebra/Lie/Weights/Chain.lean Modified Mathlib/Algebra/Lie/Weights/IsSimple.lean Modified Mathlib/Algebra/Lie/Weights/Killing.lean Modified Mathlib/Algebra/Lie/Weights/Linear.lean Modified Mathlib/Algebra/Lie/Weights/RootSystem.lean Modified Mathlib/Algebra/Module/CharacterModule.lean Modified Mathlib/Algebra/Module/DedekindDomain.lean Modified Mathlib/Algebra/Module/FinitePresentation.lean Modified Mathlib/Algebra/Module/Injective.lean Modified Mathlib/Algebra/Module/NatInt.lean Modified Mathlib/Algebra/Module/PID.lean Modified Mathlib/Algebra/Module/Submodule/Pointwise.lean Modified Mathlib/Algebra/Module/ZLattice/Covolume.lean Modified Mathlib/Algebra/MvPolynomial/Degrees.lean Modified Mathlib/Algebra/Order/CauSeq/BigOperators.lean Modified Mathlib/Algebra/Order/Floor/Ring.lean Modified Mathlib/Algebra/Order/Floor/Semiring.lean Modified Mathlib/Algebra/Order/Group/Finset.lean Modified Mathlib/Algebra/Order/Module/Basic.lean Modified Mathlib/Algebra/Order/Module/PositiveLinearMap.lean Modified Mathlib/Algebra/Order/Nonneg/Lattice.lean Modified Mathlib/Algebra/Order/Nonneg/Ring.lean Modified Mathlib/Algebra/Order/Ring/Idempotent.lean Modified Mathlib/Algebra/Order/Ring/IsNonarchimedean.lean Modified Mathlib/Algebra/Order/Ring/Nat.lean Modified Mathlib/Algebra/Order/Ring/Unbundled/Rat.lean Modified Mathlib/Algebra/Order/ToIntervalMod.lean Modified Mathlib/Algebra/Polynomial/Degree/Operations.lean Modified Mathlib/Algebra/Polynomial/Derivative.lean Modified Mathlib/Algebra/Polynomial/Expand.lean Modified Mathlib/Algebra/Polynomial/FieldDivision.lean Modified Mathlib/Algebra/Polynomial/HasseDeriv.lean Modified Mathlib/Algebra/Polynomial/Laurent.lean Modified Mathlib/Algebra/Polynomial/Mirror.lean Modified Mathlib/Algebra/Polynomial/Module/AEval.lean - def Module.AEval.mapSubmodule Modified Mathlib/Algebra/Polynomial/Monic.lean Modified Mathlib/Algebra/Polynomial/OfFn.lean - def Polynomial.toFn Modified Mathlib/Algebra/Polynomial/Roots.lean Modified Mathlib/Algebra/Polynomial/Smeval.lean Modified Mathlib/Algebra/Polynomial/SumIteratedDerivative.lean Modified Mathlib/Algebra/Polynomial/UnitTrinomial.lean Modified Mathlib/Algebra/Quandle.lean Modified Mathlib/Algebra/Quaternion.lean Modified Mathlib/Algebra/Ring/GeomSum.lean Modified Mathlib/Algebra/Ring/Int/Parity.lean Modified Mathlib/Algebra/Ring/Invertible.lean Modified Mathlib/Algebra/Ring/Periodic.lean Modified Mathlib/Algebra/Ring/Prod.lean Modified Mathlib/Algebra/Ring/Subring/Basic.lean Modified Mathlib/Algebra/RingQuot.lean Modified Mathlib/Algebra/Star/LinearMap.lean Modified Mathlib/Algebra/Star/NonUnitalSubalgebra.lean Modified Mathlib/Algebra/Symmetrized.lean Modified Mathlib/Algebra/TrivSqZeroExt.lean Modified Mathlib/AlgebraicGeometry/EllipticCurve/Affine/Point.lean Modified Mathlib/AlgebraicGeometry/EllipticCurve/DivisionPolynomial/Degree.lean Modified Mathlib/AlgebraicGeometry/EllipticCurve/NormalForms.lean Modified Mathlib/AlgebraicGeometry/Normalization.lean Modified Mathlib/AlgebraicGeometry/PointsPi.lean Modified Mathlib/AlgebraicGeometry/ProjectiveSpectrum/Basic.lean Modified Mathlib/AlgebraicGeometry/ProjectiveSpectrum/Proper.lean Modified Mathlib/AlgebraicGeometry/ProjectiveSpectrum/StructureSheaf.lean Modified Mathlib/AlgebraicGeometry/Pullbacks.lean Modified Mathlib/AlgebraicGeometry/Scheme.lean Modified Mathlib/AlgebraicGeometry/StructureSheaf.lean Modified Mathlib/AlgebraicTopology/AlternatingFaceMapComplex.lean Modified Mathlib/AlgebraicTopology/FundamentalGroupoid/Basic.lean Modified Mathlib/AlgebraicTopology/SimplexCategory/Augmented/Monoidal.lean Modified Mathlib/Analysis/Analytic/Order.lean Modified Mathlib/Analysis/Asymptotics/Lemmas.lean Modified Mathlib/Analysis/BoundedVariation.lean Modified Mathlib/Analysis/BoxIntegral/Basic.lean Modified Mathlib/Analysis/BoxIntegral/DivergenceTheorem.lean Modified Mathlib/Analysis/BoxIntegral/UnitPartition.lean Modified Mathlib/Analysis/CStarAlgebra/Basic.lean Modified Mathlib/Analysis/CStarAlgebra/CStarMatrix.lean Modified Mathlib/Analysis/CStarAlgebra/Classes.lean Modified Mathlib/Analysis/CStarAlgebra/CompletelyPositiveMap.lean Modified Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Basic.lean Modified Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Unique.lean Modified Mathlib/Analysis/CStarAlgebra/GelfandNaimarkSegal.lean Modified Mathlib/Analysis/CStarAlgebra/Hom.lean Modified Mathlib/Analysis/CStarAlgebra/Module/Defs.lean Modified Mathlib/Analysis/CStarAlgebra/Projection.lean Modified Mathlib/Analysis/CStarAlgebra/Unitary/Connected.lean Modified Mathlib/Analysis/Calculus/BumpFunction/InnerProduct.lean Modified Mathlib/Analysis/Calculus/ContDiff/Defs.lean Modified Mathlib/Analysis/Calculus/ContDiff/FaaDiBruno.lean Modified Mathlib/Analysis/Calculus/ContDiffHolder/Pointwise.lean Modified Mathlib/Analysis/Calculus/Deriv/ZPow.lean Modified Mathlib/Analysis/Calculus/DifferentialForm/Basic.lean Modified Mathlib/Analysis/Calculus/FDeriv/Analytic.lean Modified Mathlib/Analysis/Calculus/FDeriv/Bilinear.lean Modified Mathlib/Analysis/Calculus/FDeriv/Measurable.lean Modified Mathlib/Analysis/Calculus/FDeriv/Norm.lean Modified Mathlib/Analysis/Calculus/FDeriv/Symmetric.lean Modified Mathlib/Analysis/Calculus/InverseFunctionTheorem/FDeriv.lean Modified Mathlib/Analysis/Calculus/IteratedDeriv/Defs.lean Modified Mathlib/Analysis/Calculus/IteratedDeriv/Lemmas.lean Modified Mathlib/Analysis/Calculus/Monotone.lean Modified Mathlib/Analysis/Complex/AbelLimit.lean Modified Mathlib/Analysis/Complex/Convex.lean Modified Mathlib/Analysis/Complex/CoveringMap.lean Modified Mathlib/Analysis/Complex/MeanValue.lean Modified Mathlib/Analysis/Complex/Periodic.lean Modified Mathlib/Analysis/Complex/Tietze.lean Modified Mathlib/Analysis/Complex/UnitDisc/Basic.lean Modified Mathlib/Analysis/Complex/UpperHalfPlane/Basic.lean Modified Mathlib/Analysis/Complex/UpperHalfPlane/Manifold.lean Modified Mathlib/Analysis/Complex/ValueDistribution/CharacteristicFunction.lean Modified Mathlib/Analysis/Convex/Birkhoff.lean Modified Mathlib/Analysis/Convex/Cone/InnerDual.lean - def ProperCone.innerDual Modified Mathlib/Analysis/Convex/Continuous.lean Modified Mathlib/Analysis/Convex/Contractible.lean Modified Mathlib/Analysis/Convex/Deriv.lean Modified Mathlib/Analysis/Convex/Gauge.lean Modified Mathlib/Analysis/Convex/Intrinsic.lean Modified Mathlib/Analysis/Convex/SpecificFunctions/Basic.lean Modified Mathlib/Analysis/Convex/StrictConvexBetween.lean Modified Mathlib/Analysis/Convex/StrictConvexSpace.lean Modified Mathlib/Analysis/Distribution/SchwartzSpace/Fourier.lean Modified Mathlib/Analysis/Distribution/TestFunction.lean Modified Mathlib/Analysis/Fourier/AddCircle.lean Modified Mathlib/Analysis/Fourier/FiniteAbelian/PontryaginDuality.lean Modified Mathlib/Analysis/Fourier/FourierTransform.lean Modified Mathlib/Analysis/Fourier/LpSpace.lean Modified Mathlib/Analysis/Fourier/PoissonSummation.lean Modified Mathlib/Analysis/Fourier/RiemannLebesgueLemma.lean Modified Mathlib/Analysis/Fourier/ZMod.lean Modified Mathlib/Analysis/FunctionalSpaces/SobolevInequality.lean Modified Mathlib/Analysis/Hofer.lean Modified Mathlib/Analysis/InnerProductSpace/Adjoint.lean Modified Mathlib/Analysis/InnerProductSpace/Basic.lean Modified Mathlib/Analysis/InnerProductSpace/Calculus.lean Modified Mathlib/Analysis/InnerProductSpace/Coalgebra.lean Modified Mathlib/Analysis/InnerProductSpace/LaxMilgram.lean Modified Mathlib/Analysis/InnerProductSpace/LinearMap.lean Modified Mathlib/Analysis/InnerProductSpace/Orientation.lean Modified Mathlib/Analysis/InnerProductSpace/PiL2.lean Modified Mathlib/Analysis/InnerProductSpace/Projection/FiniteDimensional.lean Modified Mathlib/Analysis/InnerProductSpace/Projection/Minimal.lean Modified Mathlib/Analysis/InnerProductSpace/Projection/Reflection.lean Modified Mathlib/Analysis/InnerProductSpace/Rayleigh.lean Modified Mathlib/Analysis/InnerProductSpace/Spectrum.lean Modified Mathlib/Analysis/InnerProductSpace/TwoDim.lean Modified Mathlib/Analysis/InnerProductSpace/l2Space.lean Modified Mathlib/Analysis/LocallyConvex/BalancedCoreHull.lean Modified Mathlib/Analysis/LocallyConvex/SeparatingDual.lean Modified Mathlib/Analysis/LocallyConvex/WeakDual.lean Modified Mathlib/Analysis/LocallyConvex/WithSeminorms.lean Modified Mathlib/Analysis/Matrix/Order.lean Modified Mathlib/Analysis/MellinInversion.lean Modified Mathlib/Analysis/MellinTransform.lean Modified Mathlib/Analysis/Normed/Affine/AddTorsor.lean Modified Mathlib/Analysis/Normed/Algebra/Exponential.lean Modified Mathlib/Analysis/Normed/Algebra/Unitization.lean Modified Mathlib/Analysis/Normed/Algebra/UnitizationL1.lean Modified Mathlib/Analysis/Normed/Field/Lemmas.lean Modified Mathlib/Analysis/Normed/Field/Ultra.lean Modified Mathlib/Analysis/Normed/Group/AddCircle.lean Modified Mathlib/Analysis/Normed/Group/Basic.lean Modified Mathlib/Analysis/Normed/Group/SemiNormedGrp/Kernels.lean - def SemiNormedGrp.fork Modified Mathlib/Analysis/Normed/Lp/PiLp.lean Modified Mathlib/Analysis/Normed/Module/Alternating/Basic.lean Modified Mathlib/Analysis/Normed/Module/Ball/Action.lean Modified Mathlib/Analysis/Normed/Module/Ball/Homeomorph.lean Modified Mathlib/Analysis/Normed/Module/Ball/RadialEquiv.lean Modified Mathlib/Analysis/Normed/Module/Basic.lean Modified Mathlib/Analysis/Normed/Module/Connected.lean Modified Mathlib/Analysis/Normed/Module/Convex.lean Modified Mathlib/Analysis/Normed/Module/FiniteDimension.lean Modified Mathlib/Analysis/Normed/Module/HahnBanach.lean Modified Mathlib/Analysis/Normed/Module/MStructure.lean Modified Mathlib/Analysis/Normed/Module/Multilinear/Basic.lean Modified Mathlib/Analysis/Normed/Module/MultipliableUniformlyOn.lean Modified Mathlib/Analysis/Normed/Module/RCLike/Extend.lean Modified Mathlib/Analysis/Normed/Module/RCLike/Real.lean Modified Mathlib/Analysis/Normed/Operator/Banach.lean Modified Mathlib/Analysis/Normed/Operator/Basic.lean Modified Mathlib/Analysis/Normed/Operator/Mul.lean Modified Mathlib/Analysis/Normed/Operator/NormedSpace.lean Modified Mathlib/Analysis/Normed/Operator/Prod.lean Modified Mathlib/Analysis/Normed/Unbundled/FiniteExtension.lean Modified Mathlib/Analysis/Normed/Unbundled/IsPowMulFaithful.lean Modified Mathlib/Analysis/Normed/Unbundled/SeminormFromConst.lean Modified Mathlib/Analysis/Normed/Unbundled/SmoothingSeminorm.lean Modified Mathlib/Analysis/Normed/Unbundled/SpectralNorm.lean Modified Mathlib/Analysis/Oscillation.lean Modified Mathlib/Analysis/PSeries.lean Modified Mathlib/Analysis/Polynomial/Fourier.lean Modified Mathlib/Analysis/Polynomial/MahlerMeasure.lean Modified Mathlib/Analysis/RCLike/Basic.lean Modified Mathlib/Analysis/RCLike/Sqrt.lean Modified Mathlib/Analysis/RCLike/TangentCone.lean Modified Mathlib/Analysis/Real/Cardinality.lean Modified Mathlib/Analysis/Real/Hyperreal.lean Modified Mathlib/Analysis/Real/OfDigits.lean Modified Mathlib/Analysis/Real/Pi/Irrational.lean Modified Mathlib/Analysis/Seminorm.lean Modified Mathlib/Analysis/SpecialFunctions/Bernstein.lean Modified Mathlib/Analysis/SpecialFunctions/Complex/Arg.lean Modified Mathlib/Analysis/SpecialFunctions/Complex/Circle.lean Modified Mathlib/Analysis/SpecialFunctions/Complex/Log.lean Modified Mathlib/Analysis/SpecialFunctions/ContinuousFunctionalCalculus/Abs.lean Modified Mathlib/Analysis/SpecialFunctions/ContinuousFunctionalCalculus/Rpow/Basic.lean Modified Mathlib/Analysis/SpecialFunctions/ContinuousFunctionalCalculus/Rpow/IntegralRepresentation.lean Modified Mathlib/Analysis/SpecialFunctions/Elliptic/Weierstrass.lean Modified Mathlib/Analysis/SpecialFunctions/Gamma/BohrMollerup.lean Modified Mathlib/Analysis/SpecialFunctions/Gaussian/FourierTransform.lean Modified Mathlib/Analysis/SpecialFunctions/Gaussian/GaussianIntegral.lean Modified Mathlib/Analysis/SpecialFunctions/Integrability/Basic.lean Modified Mathlib/Analysis/SpecialFunctions/Integrals/Basic.lean Modified Mathlib/Analysis/SpecialFunctions/JapaneseBracket.lean Modified Mathlib/Analysis/SpecialFunctions/Log/Basic.lean Modified Mathlib/Analysis/SpecialFunctions/Log/Monotone.lean Modified Mathlib/Analysis/SpecialFunctions/Log/Summable.lean Modified Mathlib/Analysis/SpecialFunctions/NonIntegrable.lean Modified Mathlib/Analysis/SpecialFunctions/Pow/NNReal.lean Modified Mathlib/Analysis/SpecialFunctions/Pow/Real.lean Modified Mathlib/Analysis/SpecialFunctions/Sigmoid.lean Modified Mathlib/Analysis/SpecialFunctions/Stirling.lean Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Angle.lean Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Arctan.lean Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Basic.lean Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Bounds.lean Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Chebyshev/Basic.lean Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Chebyshev/Orthogonality.lean Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Chebyshev/RootsExtrema.lean Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Cotangent.lean Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Inverse.lean Modified Mathlib/Analysis/SpecificLimits/Fibonacci.lean Modified Mathlib/Analysis/SpecificLimits/Normed.lean Modified Mathlib/CategoryTheory/Action.lean Modified Mathlib/CategoryTheory/Action/Monoidal.lean Modified Mathlib/CategoryTheory/Adjunction/Basic.lean Modified Mathlib/CategoryTheory/Bicategory/Coherence.lean Modified Mathlib/CategoryTheory/Bicategory/SingleObj.lean Modified Mathlib/CategoryTheory/Enriched/Opposite.lean Modified Mathlib/CategoryTheory/Enriched/Ordinary/Basic.lean Modified Mathlib/CategoryTheory/Functor/KanExtension/Basic.lean Modified Mathlib/CategoryTheory/Groupoid.lean Modified Mathlib/CategoryTheory/Groupoid/Subgroupoid.lean Modified Mathlib/CategoryTheory/Limits/Bicones.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Diagonal.lean Modified Mathlib/CategoryTheory/Limits/Shapes/FiniteLimits.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Products.lean Modified Mathlib/CategoryTheory/Limits/Shapes/SingleObj.lean Modified Mathlib/CategoryTheory/Limits/Shapes/ZeroMorphisms.lean Modified Mathlib/CategoryTheory/Localization/HomEquiv.lean Modified Mathlib/CategoryTheory/Localization/Monoidal/Basic.lean Modified Mathlib/CategoryTheory/LocallyCartesianClosed/ExponentiableMorphism.lean Modified Mathlib/CategoryTheory/Monoidal/Braided/Basic.lean Modified Mathlib/CategoryTheory/Monoidal/Braided/Transport.lean Modified Mathlib/CategoryTheory/Monoidal/Cartesian/Basic.lean Modified Mathlib/CategoryTheory/Monoidal/Cartesian/Comon_.lean Modified Mathlib/CategoryTheory/Monoidal/Comon_.lean Modified Mathlib/CategoryTheory/Monoidal/DayConvolution.lean Modified Mathlib/CategoryTheory/Monoidal/Functor.lean Modified Mathlib/CategoryTheory/Monoidal/Grp_.lean Modified Mathlib/CategoryTheory/Monoidal/Internal/Types/Basic.lean Modified Mathlib/CategoryTheory/Monoidal/Mon_.lean Modified Mathlib/CategoryTheory/Monoidal/Opposite/Mon_.lean Modified Mathlib/CategoryTheory/Monoidal/Rigid/Basic.lean Modified Mathlib/CategoryTheory/Monoidal/Transport.lean Modified Mathlib/CategoryTheory/Preadditive/Mat.lean Modified Mathlib/CategoryTheory/Shift/Basic.lean Modified Mathlib/CategoryTheory/Shift/Localization.lean Modified Mathlib/CategoryTheory/SingleObj.lean Modified Mathlib/CategoryTheory/Sites/DenseSubsite/OneHypercoverDense.lean Modified Mathlib/CategoryTheory/Sites/Descent/DescentData.lean Modified Mathlib/CategoryTheory/Sites/Descent/DescentDataAsCoalgebra.lean Modified Mathlib/CategoryTheory/Sites/Sheafification.lean Modified Mathlib/CategoryTheory/Subfunctor/Equalizer.lean Modified Mathlib/Combinatorics/Additive/AP/Three/Behrend.lean Modified Mathlib/Combinatorics/Additive/Corner/Roth.lean Modified Mathlib/Combinatorics/Additive/ETransform.lean Modified Mathlib/Combinatorics/Additive/PluenneckeRuzsa.lean Modified Mathlib/Combinatorics/Additive/RuzsaCovering.lean Modified Mathlib/Combinatorics/Additive/SmallTripling.lean Modified Mathlib/Combinatorics/Additive/VerySmallDoubling.lean Modified Mathlib/Combinatorics/Configuration.lean Modified Mathlib/Combinatorics/Enumerative/Bell.lean Modified Mathlib/Combinatorics/Enumerative/Catalan.lean Modified Mathlib/Combinatorics/Enumerative/DyckWord.lean Modified Mathlib/Combinatorics/Enumerative/Partition/GenFun.lean - def Nat.Partition.genFun Modified Mathlib/Combinatorics/Enumerative/Schroder.lean Modified Mathlib/Combinatorics/Nullstellensatz.lean Modified Mathlib/Combinatorics/Quiver/Symmetric.lean Modified Mathlib/Combinatorics/Schnirelmann.lean Modified Mathlib/Combinatorics/SetFamily/FourFunctions.lean Modified Mathlib/Combinatorics/SetFamily/KruskalKatona.lean Modified Mathlib/Combinatorics/SetFamily/LYM.lean Modified Mathlib/Combinatorics/SimpleGraph/Circulant.lean Modified Mathlib/Combinatorics/SimpleGraph/Clique.lean Modified Mathlib/Combinatorics/SimpleGraph/Coloring.lean Modified Mathlib/Combinatorics/SimpleGraph/Extremal/Turan.lean Modified Mathlib/Combinatorics/SimpleGraph/FiveWheelLike.lean Modified Mathlib/Combinatorics/SimpleGraph/LapMatrix.lean Modified Mathlib/Combinatorics/SimpleGraph/Regularity/Chunk.lean Modified Mathlib/Combinatorics/SimpleGraph/Regularity/Equitabilise.lean Modified Mathlib/Combinatorics/SimpleGraph/Regularity/Lemma.lean Modified Mathlib/Combinatorics/SimpleGraph/StronglyRegular.lean Modified Mathlib/Combinatorics/SimpleGraph/Triangle/Removal.lean Modified Mathlib/Computability/Ackermann.lean Modified Mathlib/Computability/AkraBazzi/AkraBazzi.lean Modified Mathlib/Computability/AkraBazzi/SumTransform.lean Modified Mathlib/Computability/Primrec/Basic.lean Modified Mathlib/Computability/Reduce.lean Modified Mathlib/Data/BitVec.lean Modified Mathlib/Data/Bool/Count.lean Modified Mathlib/Data/Complex/Basic.lean Modified Mathlib/Data/DFinsupp/Defs.lean Modified Mathlib/Data/ENat/Basic.lean Modified Mathlib/Data/ENat/Pow.lean Modified Mathlib/Data/EReal/Basic.lean Modified Mathlib/Data/Finset/Image.lean Modified Mathlib/Data/Finset/Interval.lean Modified Mathlib/Data/Finset/NatAntidiagonal.lean Modified Mathlib/Data/Finsupp/Antidiagonal.lean - def Finsupp.antidiagonal' Modified Mathlib/Data/Finsupp/MonomialOrder/DegLex.lean Modified Mathlib/Data/Finsupp/Multiset.lean - def Finsupp.orderIsoMultiset - def Multiset.toFinsupp - def Sym.equivNatSum Modified Mathlib/Data/Finsupp/Weight.lean Modified Mathlib/Data/Fintype/Units.lean Modified Mathlib/Data/Int/CardIntervalMod.lean Modified Mathlib/Data/Int/Fib/Basic.lean Modified Mathlib/Data/Int/Fib/Lemmas.lean Modified Mathlib/Data/Int/Star.lean Modified Mathlib/Data/List/Shortlex.lean Modified Mathlib/Data/Matrix/Basis.lean Modified Mathlib/Data/Matrix/Invertible.lean Modified Mathlib/Data/Multiset/Interval.lean Modified Mathlib/Data/NNRat/Defs.lean Modified Mathlib/Data/NNReal/Defs.lean Modified Mathlib/Data/Nat/Bitwise.lean Modified Mathlib/Data/Nat/Cast/Order/Ring.lean Modified Mathlib/Data/Nat/Choose/Central.lean Modified Mathlib/Data/Nat/Choose/Factorization.lean Modified Mathlib/Data/Nat/Choose/Multinomial.lean - def Multiset.multinomial Modified Mathlib/Data/Nat/Choose/Sum.lean Modified Mathlib/Data/Nat/Choose/Vandermonde.lean Modified Mathlib/Data/Nat/Digits/Lemmas.lean Modified Mathlib/Data/Nat/Factorization/Basic.lean Modified Mathlib/Data/Nat/Factorization/Defs.lean Modified Mathlib/Data/Nat/Factorization/LCM.lean Modified Mathlib/Data/Nat/Factorization/Root.lean Modified Mathlib/Data/Nat/Fib/Basic.lean Modified Mathlib/Data/Nat/Fib/Zeckendorf.lean Modified Mathlib/Data/Nat/GCD/Basic.lean Modified Mathlib/Data/Nat/ModEq.lean Modified Mathlib/Data/Nat/Multiplicity.lean Modified Mathlib/Data/Nat/Prime/Defs.lean Modified Mathlib/Data/Nat/Squarefree.lean Modified Mathlib/Data/Nat/Totient.lean Modified Mathlib/Data/Num/Lemmas.lean Modified Mathlib/Data/Num/Prime.lean Modified Mathlib/Data/Num/ZNum.lean Modified Mathlib/Data/Ordmap/Ordset.lean Modified Mathlib/Data/PNat/Basic.lean Modified Mathlib/Data/Rat/Floor.lean Modified Mathlib/Data/Rat/NatSqrt/Defs.lean Modified Mathlib/Data/Real/Archimedean.lean Modified Mathlib/Data/Real/Embedding.lean Modified Mathlib/Data/Set/Card.lean Modified Mathlib/Data/Setoid/Basic.lean Modified Mathlib/Data/Setoid/Partition.lean Modified Mathlib/Data/String/Basic.lean Modified Mathlib/Data/Sym/Basic.lean Modified Mathlib/Data/Vector/Basic.lean +/- theorem List.Vector.scanl_nil Modified Mathlib/Data/ZMod/Basic.lean Modified Mathlib/Data/ZMod/ValMinAbs.lean Modified Mathlib/Dynamics/Ergodic/AddCircle.lean Modified Mathlib/FieldTheory/Finite/Basic.lean Modified Mathlib/FieldTheory/Finite/Extension.lean Modified Mathlib/FieldTheory/Finite/GaloisField.lean Modified Mathlib/FieldTheory/Fixed.lean Modified Mathlib/FieldTheory/IntermediateField/Adjoin/Basic.lean Modified Mathlib/FieldTheory/IntermediateField/Basic.lean Modified Mathlib/FieldTheory/IsAlgClosed/AlgebraicClosure.lean Modified Mathlib/FieldTheory/IsAlgClosed/Spectrum.lean Modified Mathlib/FieldTheory/IsPerfectClosure.lean Modified Mathlib/FieldTheory/JacobsonNoether.lean Modified Mathlib/FieldTheory/PolynomialGaloisGroup.lean Modified Mathlib/FieldTheory/RatFunc/Basic.lean Modified Mathlib/FieldTheory/RatFunc/Degree.lean Modified Mathlib/FieldTheory/SeparableDegree.lean Modified Mathlib/FieldTheory/SplittingField/Construction.lean Modified Mathlib/Geometry/Euclidean/Angle/Oriented/Affine.lean Modified Mathlib/Geometry/Euclidean/Angle/Oriented/Rotation.lean Modified Mathlib/Geometry/Euclidean/Angle/Sphere.lean Modified Mathlib/Geometry/Euclidean/Angle/Unoriented/Affine.lean Modified Mathlib/Geometry/Euclidean/MongePoint.lean Modified Mathlib/Geometry/Euclidean/NinePointCircle.lean Modified Mathlib/Geometry/Euclidean/PerpBisector.lean Modified Mathlib/Geometry/Euclidean/Projection.lean Modified Mathlib/Geometry/Euclidean/Triangle.lean Modified Mathlib/Geometry/Group/Growth/LinearLowerBound.lean Modified Mathlib/Geometry/Manifold/HasGroupoid.lean Modified Mathlib/Geometry/Manifold/Instances/UnitsOfNormedAlgebra.lean Modified Mathlib/Geometry/Manifold/IsManifold/Basic.lean Modified Mathlib/Geometry/Manifold/LocalInvariantProperties.lean Modified Mathlib/Geometry/Manifold/PartitionOfUnity.lean Modified Mathlib/Geometry/Manifold/Riemannian/PathELength.lean Modified Mathlib/Geometry/Manifold/VectorField/LieBracket.lean Modified Mathlib/Geometry/RingedSpace/Basic.lean Modified Mathlib/Geometry/RingedSpace/OpenImmersion.lean Modified Mathlib/Geometry/RingedSpace/PresheafedSpace.lean + structure AlgebraicGeometry.PresheafedSpace.{u} - structure AlgebraicGeometry.PresheafedSpace Modified Mathlib/Geometry/RingedSpace/SheafedSpace.lean Modified Mathlib/GroupTheory/ArchimedeanDensely.lean Modified Mathlib/GroupTheory/Commensurable.lean Modified Mathlib/GroupTheory/Commutator/Finite.lean Modified Mathlib/GroupTheory/CommutingProbability.lean Modified Mathlib/GroupTheory/Complement.lean Modified Mathlib/GroupTheory/Congruence/Hom.lean Modified Mathlib/GroupTheory/CoprodI.lean Modified Mathlib/GroupTheory/Coset/Basic.lean Modified Mathlib/GroupTheory/Coxeter/Basic.lean Modified Mathlib/GroupTheory/Divisible.lean Modified Mathlib/GroupTheory/DivisibleHull.lean Modified Mathlib/GroupTheory/Exponent.lean Modified Mathlib/GroupTheory/FreeAbelianGroup.lean Modified Mathlib/GroupTheory/FreeGroup/Basic.lean Modified Mathlib/GroupTheory/FreeGroup/NielsenSchreier.lean Modified Mathlib/GroupTheory/GroupAction/Blocks.lean Modified Mathlib/GroupTheory/GroupAction/Defs.lean Modified Mathlib/GroupTheory/GroupAction/FixingSubgroup.lean Modified Mathlib/GroupTheory/GroupAction/Quotient.lean Modified Mathlib/GroupTheory/GroupAction/SubMulAction/OfFixingSubgroup.lean Modified Mathlib/GroupTheory/HNNExtension.lean Modified Mathlib/GroupTheory/MonoidLocalization/Basic.lean Modified Mathlib/GroupTheory/Nilpotent.lean Modified Mathlib/GroupTheory/OrderOfElement.lean Modified Mathlib/GroupTheory/Perm/Cycle/Basic.lean Modified Mathlib/GroupTheory/PushoutI.lean Modified Mathlib/GroupTheory/Schreier.lean Modified Mathlib/GroupTheory/SpecificGroups/Cyclic.lean Modified Mathlib/GroupTheory/SpecificGroups/Dihedral.lean Modified Mathlib/GroupTheory/SpecificGroups/Quaternion.lean Modified Mathlib/GroupTheory/Subgroup/Centralizer.lean Modified Mathlib/LinearAlgebra/AffineSpace/Basis.lean - def finsuppAffineCoords Modified Mathlib/LinearAlgebra/AffineSpace/Simplex/Centroid.lean Modified Mathlib/LinearAlgebra/Alternating/Uncurry/Fin.lean Modified Mathlib/LinearAlgebra/AnnihilatingPolynomial.lean Modified Mathlib/LinearAlgebra/Charpoly/ToMatrix.lean Modified Mathlib/LinearAlgebra/CliffordAlgebra/BaseChange.lean Modified Mathlib/LinearAlgebra/CliffordAlgebra/Basic.lean Modified Mathlib/LinearAlgebra/CliffordAlgebra/Conjugation.lean Modified Mathlib/LinearAlgebra/CliffordAlgebra/EvenEquiv.lean Modified Mathlib/LinearAlgebra/CliffordAlgebra/Grading.lean Modified Mathlib/LinearAlgebra/CliffordAlgebra/Inversion.lean Modified Mathlib/LinearAlgebra/CliffordAlgebra/SpinGroup.lean Modified Mathlib/LinearAlgebra/Coevaluation.lean Modified Mathlib/LinearAlgebra/Complex/Module.lean Modified Mathlib/LinearAlgebra/DirectSum/Finsupp.lean Modified Mathlib/LinearAlgebra/ExteriorAlgebra/Basic.lean Modified Mathlib/LinearAlgebra/ExteriorAlgebra/Grading.lean Modified Mathlib/LinearAlgebra/FiniteDimensional/Lemmas.lean Modified Mathlib/LinearAlgebra/FreeModule/Int.lean Modified Mathlib/LinearAlgebra/LinearIndependent/Defs.lean Modified Mathlib/LinearAlgebra/LinearPMap.lean Modified Mathlib/LinearAlgebra/Matrix/Charpoly/Coeff.lean Modified Mathlib/LinearAlgebra/Matrix/Determinant/Basic.lean Modified Mathlib/LinearAlgebra/Matrix/Diagonal.lean Modified Mathlib/LinearAlgebra/Matrix/FixedDetMatrices.lean Modified Mathlib/LinearAlgebra/Matrix/GeneralLinearGroup/FinTwo.lean Modified Mathlib/LinearAlgebra/Matrix/Irreducible/Defs.lean Modified Mathlib/LinearAlgebra/Matrix/Notation.lean Modified Mathlib/LinearAlgebra/Matrix/RowCol.lean Modified Mathlib/LinearAlgebra/Matrix/SpecialLinearGroup.lean Modified Mathlib/LinearAlgebra/Matrix/ToLin.lean Modified Mathlib/LinearAlgebra/Matrix/ToLinearEquiv.lean Modified Mathlib/LinearAlgebra/Matrix/Trace.lean Modified Mathlib/LinearAlgebra/Matrix/Transvection.lean Modified Mathlib/LinearAlgebra/Multilinear/DFinsupp.lean Modified Mathlib/LinearAlgebra/PID.lean Modified Mathlib/LinearAlgebra/PerfectPairing/Basic.lean Modified Mathlib/LinearAlgebra/Pi.lean Modified Mathlib/LinearAlgebra/Projectivization/Cardinality.lean Modified Mathlib/LinearAlgebra/QuadraticForm/Basic.lean Modified Mathlib/LinearAlgebra/QuadraticForm/Dual.lean Modified Mathlib/LinearAlgebra/QuadraticForm/IsometryEquiv.lean Modified Mathlib/LinearAlgebra/QuadraticForm/TensorProduct.lean Modified Mathlib/LinearAlgebra/Reflection.lean Modified Mathlib/LinearAlgebra/RootSystem/Base.lean Modified Mathlib/LinearAlgebra/RootSystem/BaseExists.lean Modified Mathlib/LinearAlgebra/RootSystem/Chain.lean Modified Mathlib/LinearAlgebra/RootSystem/Finite/CanonicalBilinear.lean Modified Mathlib/LinearAlgebra/RootSystem/Finite/G2.lean Modified Mathlib/LinearAlgebra/RootSystem/GeckConstruction/Basic.lean Modified Mathlib/LinearAlgebra/RootSystem/GeckConstruction/Relations.lean Modified Mathlib/LinearAlgebra/RootSystem/GeckConstruction/Semisimple.lean Modified Mathlib/LinearAlgebra/RootSystem/WeylGroup.lean Modified Mathlib/LinearAlgebra/SymplecticGroup.lean Modified Mathlib/LinearAlgebra/TensorPower/Basic.lean Modified Mathlib/LinearAlgebra/TensorProduct/Basis.lean Modified Mathlib/LinearAlgebra/TensorProduct/Defs.lean Modified Mathlib/LinearAlgebra/TensorProduct/Finiteness.lean Modified Mathlib/MeasureTheory/Constructions/HaarToSphere.lean Modified Mathlib/MeasureTheory/Constructions/Pi.lean Modified Mathlib/MeasureTheory/Covering/Besicovitch.lean Modified Mathlib/MeasureTheory/Covering/BesicovitchVectorSpace.lean Modified Mathlib/MeasureTheory/Covering/LiminfLimsup.lean Modified Mathlib/MeasureTheory/Function/AbsolutelyContinuous.lean Modified Mathlib/MeasureTheory/Function/Jacobian.lean Modified Mathlib/MeasureTheory/Function/JacobianOneDim.lean Modified Mathlib/MeasureTheory/Function/LpSpace/ContinuousFunctions.lean - def MeasureTheory.Lp.boundedContinuousFunction Modified Mathlib/MeasureTheory/Function/SimpleFuncDenseLp.lean Modified Mathlib/MeasureTheory/Integral/CircleAverage.lean Modified Mathlib/MeasureTheory/Integral/CircleIntegral.lean Modified Mathlib/MeasureTheory/Integral/CircleTransform.lean Modified Mathlib/MeasureTheory/Integral/CompactlySupported.lean Modified Mathlib/MeasureTheory/Integral/CurveIntegral/Poincare.lean Modified Mathlib/MeasureTheory/Integral/DivergenceTheorem.lean Modified Mathlib/MeasureTheory/Integral/IntegralEqImproper.lean Modified Mathlib/MeasureTheory/Integral/IntervalAverage.lean Modified Mathlib/MeasureTheory/Integral/IntervalIntegral/AbsolutelyContinuousFun.lean Modified Mathlib/MeasureTheory/Integral/IntervalIntegral/Basic.lean Modified Mathlib/MeasureTheory/Integral/IntervalIntegral/DerivIntegrable.lean Modified Mathlib/MeasureTheory/Integral/IntervalIntegral/FundThmCalculus.lean Modified Mathlib/MeasureTheory/Integral/IntervalIntegral/IntegrationByParts.lean Modified Mathlib/MeasureTheory/Integral/IntervalIntegral/Periodic.lean Modified Mathlib/MeasureTheory/Integral/Layercake.lean Modified Mathlib/MeasureTheory/Integral/Prod.lean Modified Mathlib/MeasureTheory/Integral/RieszMarkovKakutani/NNReal.lean Modified Mathlib/MeasureTheory/Integral/RieszMarkovKakutani/Real.lean Modified Mathlib/MeasureTheory/Integral/SetToL1.lean Modified Mathlib/MeasureTheory/Integral/TorusIntegral.lean Modified Mathlib/MeasureTheory/Measure/Decomposition/Lebesgue.lean Modified Mathlib/MeasureTheory/Measure/DiracProba.lean Modified Mathlib/MeasureTheory/Measure/EverywherePos.lean Modified Mathlib/MeasureTheory/Measure/FiniteMeasure.lean Modified Mathlib/MeasureTheory/Measure/Haar/Disintegration.lean Modified Mathlib/MeasureTheory/Measure/Haar/Quotient.lean Modified Mathlib/MeasureTheory/Measure/Lebesgue/Basic.lean Modified Mathlib/MeasureTheory/Measure/Lebesgue/Integral.lean Modified Mathlib/MeasureTheory/Measure/ProbabilityMeasure.lean Modified Mathlib/MeasureTheory/Measure/Prod.lean Modified Mathlib/MeasureTheory/Measure/SeparableMeasure.lean Modified Mathlib/MeasureTheory/Measure/Tight.lean Modified Mathlib/ModelTheory/Arithmetic/Presburger/Basic.lean Modified Mathlib/ModelTheory/Arithmetic/Presburger/Definability.lean Modified Mathlib/ModelTheory/Complexity.lean Modified Mathlib/ModelTheory/DirectLimit.lean Modified Mathlib/ModelTheory/Order.lean Modified Mathlib/ModelTheory/Semantics.lean Modified Mathlib/ModelTheory/Syntax.lean Modified Mathlib/ModelTheory/Ultraproducts.lean Modified Mathlib/NumberTheory/ADEInequality.lean Modified Mathlib/NumberTheory/AbelSummation.lean Modified Mathlib/NumberTheory/ArithmeticFunction/Misc.lean Modified Mathlib/NumberTheory/ArithmeticFunction/Moebius.lean Modified Mathlib/NumberTheory/ArithmeticFunction/VonMangoldt.lean Modified Mathlib/NumberTheory/Bernoulli.lean Modified Mathlib/NumberTheory/BernoulliPolynomials.lean Modified Mathlib/NumberTheory/Bertrand.lean Modified Mathlib/NumberTheory/Chebyshev.lean Modified Mathlib/NumberTheory/ClassNumber/Finite.lean Modified Mathlib/NumberTheory/Cyclotomic/Basic.lean Modified Mathlib/NumberTheory/Cyclotomic/Discriminant.lean Modified Mathlib/NumberTheory/Cyclotomic/PrimitiveRoots.lean Modified Mathlib/NumberTheory/DiophantineApproximation/Basic.lean Modified Mathlib/NumberTheory/Divisors.lean Modified Mathlib/NumberTheory/FLT/Basic.lean Modified Mathlib/NumberTheory/FactorisationProperties.lean Modified Mathlib/NumberTheory/Fermat.lean Modified Mathlib/NumberTheory/FermatPsp.lean Modified Mathlib/NumberTheory/Harmonic/Bounds.lean Modified Mathlib/NumberTheory/Harmonic/EulerMascheroni.lean Modified Mathlib/NumberTheory/LSeries/Convolution.lean Modified Mathlib/NumberTheory/LSeries/Dirichlet.lean Modified Mathlib/NumberTheory/LSeries/HurwitzZetaOdd.lean Modified Mathlib/NumberTheory/LSeries/Linearity.lean Modified Mathlib/NumberTheory/LSeries/Nonvanishing.lean Modified Mathlib/NumberTheory/LSeries/PrimesInAP.lean Modified Mathlib/NumberTheory/LSeries/SumCoeff.lean Modified Mathlib/NumberTheory/LegendreSymbol/GaussEisensteinLemmas.lean Modified Mathlib/NumberTheory/LegendreSymbol/JacobiSymbol.lean Modified Mathlib/NumberTheory/LegendreSymbol/QuadraticReciprocity.lean Modified Mathlib/NumberTheory/LocalField/Basic.lean Modified Mathlib/NumberTheory/LucasLehmer.lean Modified Mathlib/NumberTheory/MaricaSchoenheim.lean Modified Mathlib/NumberTheory/Modular.lean Modified Mathlib/NumberTheory/ModularForms/Basic.lean Modified Mathlib/NumberTheory/ModularForms/EisensteinSeries/Defs.lean Modified Mathlib/NumberTheory/ModularForms/EisensteinSeries/E2/Transform.lean Modified Mathlib/NumberTheory/ModularForms/EisensteinSeries/QExpansion.lean Modified Mathlib/NumberTheory/ModularForms/Identities.lean Modified Mathlib/NumberTheory/ModularForms/JacobiTheta/Bounds.lean Modified Mathlib/NumberTheory/ModularForms/JacobiTheta/TwoVariable.lean Modified Mathlib/NumberTheory/ModularForms/NormTrace.lean Modified Mathlib/NumberTheory/ModularForms/SlashInvariantForms.lean Modified Mathlib/NumberTheory/MulChar/Lemmas.lean Modified Mathlib/NumberTheory/Multiplicity.lean Modified Mathlib/NumberTheory/NumberField/Basic.lean Modified Mathlib/NumberTheory/NumberField/CMField.lean Modified Mathlib/NumberTheory/NumberField/CanonicalEmbedding/Basic.lean Modified Mathlib/NumberTheory/NumberField/CanonicalEmbedding/FundamentalCone.lean Modified Mathlib/NumberTheory/NumberField/CanonicalEmbedding/NormLeOne.lean Modified Mathlib/NumberTheory/NumberField/Cyclotomic/Basic.lean Modified Mathlib/NumberTheory/NumberField/Cyclotomic/Ideal.lean Modified Mathlib/NumberTheory/NumberField/Cyclotomic/PID.lean Modified Mathlib/NumberTheory/NumberField/Discriminant/Basic.lean Modified Mathlib/NumberTheory/NumberField/Discriminant/Different.lean Modified Mathlib/NumberTheory/NumberField/FinitePlaces.lean Modified Mathlib/NumberTheory/NumberField/House.lean Modified Mathlib/NumberTheory/NumberField/Ideal/KummerDedekind.lean Modified Mathlib/NumberTheory/NumberField/Units/Basic.lean Modified Mathlib/NumberTheory/NumberField/Units/Regulator.lean Modified Mathlib/NumberTheory/Padics/AddChar.lean Modified Mathlib/NumberTheory/Padics/Hensel.lean Modified Mathlib/NumberTheory/Padics/MahlerBasis.lean Modified Mathlib/NumberTheory/Padics/PadicIntegers.lean Modified Mathlib/NumberTheory/Padics/PadicNorm.lean Modified Mathlib/NumberTheory/Padics/RingHoms.lean Modified Mathlib/NumberTheory/Padics/WithVal.lean Modified Mathlib/NumberTheory/Pell.lean Modified Mathlib/NumberTheory/PellMatiyasevic.lean Modified Mathlib/NumberTheory/Primorial.lean Modified Mathlib/NumberTheory/PythagoreanTriples.lean Modified Mathlib/NumberTheory/Real/GoldenRatio.lean Modified Mathlib/NumberTheory/Real/Irrational.lean Modified Mathlib/NumberTheory/SiegelsLemma.lean Modified Mathlib/NumberTheory/SmoothNumbers.lean Modified Mathlib/NumberTheory/SumFourSquares.lean Modified Mathlib/NumberTheory/SumPrimeReciprocals.lean Modified Mathlib/NumberTheory/Transcendental/Lindemann/AnalyticalPart.lean Modified Mathlib/NumberTheory/Transcendental/Liouville/Measure.lean Modified Mathlib/NumberTheory/WellApproximable.lean Modified Mathlib/NumberTheory/Zsqrtd/GaussianInt.lean Modified Mathlib/Order/Birkhoff.lean Modified Mathlib/Order/BooleanAlgebra/Basic.lean +/- theorem himp_le Modified Mathlib/Order/CompleteSublattice.lean Modified Mathlib/Order/Copy.lean Modified Mathlib/Order/Filter/Cocardinal.lean Modified Mathlib/Order/Lattice/Congruence.lean Modified Mathlib/Order/SuccPred/Archimedean.lean Modified Mathlib/Order/SuccPred/LinearLocallyFinite.lean Modified Mathlib/Probability/Distributions/Beta.lean Modified Mathlib/Probability/Distributions/Exponential.lean Modified Mathlib/Probability/Distributions/Fernique.lean Modified Mathlib/Probability/Distributions/Gamma.lean Modified Mathlib/Probability/Distributions/Gaussian/Fernique.lean Modified Mathlib/Probability/Distributions/Gaussian/HasGaussianLaw/Independence.lean Modified Mathlib/Probability/Distributions/Gaussian/Real.lean Modified Mathlib/Probability/Distributions/Uniform.lean Modified Mathlib/Probability/Kernel/IonescuTulcea/Traj.lean Modified Mathlib/Probability/Kernel/Irreducible.lean Modified Mathlib/Probability/Kernel/RadonNikodym.lean Modified Mathlib/Probability/Moments/Basic.lean Modified Mathlib/Probability/Moments/SubGaussian.lean Modified Mathlib/Probability/ProductMeasure.lean Modified Mathlib/Probability/StrongLaw.lean Modified Mathlib/RepresentationTheory/Coinvariants.lean Modified Mathlib/RepresentationTheory/FinGroupCharZero.lean Modified Mathlib/RepresentationTheory/FiniteIndex.lean Modified Mathlib/RepresentationTheory/Rep.lean Modified Mathlib/RepresentationTheory/Tannaka.lean Modified Mathlib/RingTheory/AdicCompletion/AsTensorProduct.lean Modified Mathlib/RingTheory/AdicCompletion/Functoriality.lean +/- def AdicCompletion.map Modified Mathlib/RingTheory/AdicCompletion/Topology.lean Modified Mathlib/RingTheory/AdjoinRoot.lean Modified Mathlib/RingTheory/Algebraic/Integral.lean Modified Mathlib/RingTheory/Bialgebra/TensorProduct.lean Modified Mathlib/RingTheory/Binomial.lean Modified Mathlib/RingTheory/Coalgebra/Basic.lean Modified Mathlib/RingTheory/Coalgebra/Convolution.lean Modified Mathlib/RingTheory/Coalgebra/TensorProduct.lean Modified Mathlib/RingTheory/Conductor.lean Modified Mathlib/RingTheory/DedekindDomain/AdicValuation.lean Modified Mathlib/RingTheory/DedekindDomain/Different.lean Modified Mathlib/RingTheory/DedekindDomain/Factorization.lean Modified Mathlib/RingTheory/Derivation/Basic.lean Modified Mathlib/RingTheory/Discriminant.lean Modified Mathlib/RingTheory/DividedPowers/RatAlgebra.lean Modified Mathlib/RingTheory/Etale/QuasiFinite.lean Modified Mathlib/RingTheory/Etale/StandardEtale.lean Modified Mathlib/RingTheory/Extension/Generators.lean - def Algebra.Generators.ofAlgEquiv Modified Mathlib/RingTheory/Extension/Presentation/Basic.lean - def Algebra.Presentation.ofAlgEquiv - def Algebra.Presentation.quotientEquiv Modified Mathlib/RingTheory/Extension/Presentation/Submersive.lean - def Algebra.PreSubmersivePresentation.ofAlgEquiv - def Algebra.SubmersivePresentation.ofAlgEquiv Modified Mathlib/RingTheory/Finiteness/ModuleFinitePresentation.lean Modified Mathlib/RingTheory/GradedAlgebra/HomogeneousLocalization.lean Modified Mathlib/RingTheory/HahnSeries/Binomial.lean Modified Mathlib/RingTheory/HopfAlgebra/Basic.lean Modified Mathlib/RingTheory/Ideal/Norm/AbsNorm.lean Modified Mathlib/RingTheory/Ideal/Norm/RelNorm.lean Modified Mathlib/RingTheory/Ideal/Quotient/ChineseRemainder.lean Modified Mathlib/RingTheory/Idempotents.lean Modified Mathlib/RingTheory/IntegralClosure/IntegralRestrict.lean Modified Mathlib/RingTheory/Kaehler/Basic.lean Modified Mathlib/RingTheory/Kaehler/JacobiZariski.lean Modified Mathlib/RingTheory/Kaehler/Polynomial.lean Modified Mathlib/RingTheory/LaurentSeries.lean Modified Mathlib/RingTheory/LocalProperties/Projective.lean Modified Mathlib/RingTheory/LocalRing/Module.lean Modified Mathlib/RingTheory/LocalRing/ResidueField/Basic.lean Modified Mathlib/RingTheory/LocalRing/ResidueField/Fiber.lean Modified Mathlib/RingTheory/LocalRing/ResidueField/Ideal.lean Modified Mathlib/RingTheory/Localization/Basic.lean Modified Mathlib/RingTheory/Localization/Integral.lean Modified Mathlib/RingTheory/MvPolynomial.lean Modified Mathlib/RingTheory/MvPolynomial/Groebner.lean Modified Mathlib/RingTheory/MvPolynomial/Ideal.lean - def MvPolynomial.idealOfVars Modified Mathlib/RingTheory/MvPolynomial/IrreducibleQuadratic.lean Modified Mathlib/RingTheory/MvPolynomial/MonomialOrder.lean - def MonomialOrder.degree - def MonomialOrder.leadingCoeff Modified Mathlib/RingTheory/MvPolynomial/Symmetric/Defs.lean Modified Mathlib/RingTheory/MvPowerSeries/Basic.lean Modified Mathlib/RingTheory/MvPowerSeries/LinearTopology.lean - def MvPowerSeries.LinearTopology.basis Modified Mathlib/RingTheory/Nakayama.lean Modified Mathlib/RingTheory/Nilpotent/GeometricallyReduced.lean Modified Mathlib/RingTheory/NoetherNormalization.lean Modified Mathlib/RingTheory/NormalClosure.lean Modified Mathlib/RingTheory/Perfectoid/Untilt.lean Modified Mathlib/RingTheory/Polynomial/Bernstein.lean Modified Mathlib/RingTheory/Polynomial/Chebyshev.lean Modified Mathlib/RingTheory/Polynomial/Cyclotomic/Basic.lean Modified Mathlib/RingTheory/Polynomial/Cyclotomic/Eval.lean Modified Mathlib/RingTheory/Polynomial/Cyclotomic/Expand.lean Modified Mathlib/RingTheory/Polynomial/Cyclotomic/Factorization.lean Modified Mathlib/RingTheory/Polynomial/IsIntegral.lean Modified Mathlib/RingTheory/Polynomial/Pochhammer.lean Modified Mathlib/RingTheory/Polynomial/Resultant/Basic.lean Modified Mathlib/RingTheory/Polynomial/ScaleRoots.lean Modified Mathlib/RingTheory/Polynomial/SeparableDegree.lean Modified Mathlib/RingTheory/Polynomial/ShiftedLegendre.lean Modified Mathlib/RingTheory/Polynomial/UniversalFactorizationRing.lean Modified Mathlib/RingTheory/PowerBasis.lean Modified Mathlib/RingTheory/PowerSeries/Exp.lean Modified Mathlib/RingTheory/PowerSeries/Restricted.lean Modified Mathlib/RingTheory/QuasiFinite/Basic.lean Modified Mathlib/RingTheory/QuasiFinite/Polynomial.lean Modified Mathlib/RingTheory/Smooth/Fiber.lean Modified Mathlib/RingTheory/Spectrum/Prime/ConstructibleSet.lean Modified Mathlib/RingTheory/Spectrum/Prime/Polynomial.lean Modified Mathlib/RingTheory/TensorProduct/Basic.lean Modified Mathlib/RingTheory/TensorProduct/Free.lean Modified Mathlib/RingTheory/Trace/Basic.lean Modified Mathlib/RingTheory/TwoSidedIdeal/Basic.lean Modified Mathlib/RingTheory/Unramified/LocalRing.lean Modified Mathlib/RingTheory/Unramified/LocalStructure.lean Modified Mathlib/RingTheory/Valuation/Discrete/Basic.lean Modified Mathlib/RingTheory/WittVector/Frobenius.lean Modified Mathlib/RingTheory/WittVector/IsPoly.lean Modified Mathlib/RingTheory/WittVector/StructurePolynomial.lean Modified Mathlib/RingTheory/WittVector/Teichmuller.lean Modified Mathlib/RingTheory/WittVector/WittPolynomial.lean Modified Mathlib/RingTheory/ZariskisMainTheorem.lean Modified Mathlib/SetTheory/Lists.lean Modified Mathlib/SetTheory/Ordinal/Notation.lean Modified Mathlib/Tactic/ComputeAsymptotics/Multiseries/Corecursion.lean Modified Mathlib/Tactic/FieldSimp/Lemmas.lean Modified Mathlib/Tactic/Module.lean Modified Mathlib/Tactic/NormNum/Abs.lean Modified Mathlib/Tactic/NormNum/Basic.lean Modified Mathlib/Tactic/NormNum/Eq.lean Modified Mathlib/Tactic/NormNum/GCD.lean Modified Mathlib/Tactic/NormNum/Ineq.lean Modified Mathlib/Tactic/NormNum/Inv.lean Modified Mathlib/Tactic/NormNum/Irrational.lean Modified Mathlib/Tactic/NormNum/LegendreSymbol.lean Modified Mathlib/Tactic/NormNum/NatSqrt.lean Modified Mathlib/Tactic/NormNum/Pow.lean Modified Mathlib/Tactic/NormNum/PowMod.lean Modified Mathlib/Tactic/NormNum/RealSqrt.lean Modified Mathlib/Tactic/NormNum/Result.lean Modified Mathlib/Tactic/Ring/Common.lean Modified Mathlib/Tactic/SimpIntro.lean Modified Mathlib/Tactic/Translate/Core.lean Modified Mathlib/Topology/Algebra/Category/ProfiniteGrp/Basic.lean Modified Mathlib/Topology/Algebra/Category/ProfiniteGrp/Completion.lean Modified Mathlib/Topology/Algebra/InfiniteSum/NatInt.lean Modified Mathlib/Topology/Algebra/IsUniformGroup/DiscreteSubgroup.lean Modified Mathlib/Topology/Algebra/Module/Equiv.lean Modified Mathlib/Topology/Algebra/Module/LinearMap.lean Modified Mathlib/Topology/Algebra/Polynomial.lean Modified Mathlib/Topology/Algebra/Ring/Real.lean Modified Mathlib/Topology/Algebra/Valued/LocallyCompact.lean Modified Mathlib/Topology/Algebra/Valued/NormedValued.lean Modified Mathlib/Topology/Algebra/Valued/ValuativeRel.lean Modified Mathlib/Topology/Category/Profinite/Nobeling/Span.lean Modified Mathlib/Topology/Category/Profinite/Nobeling/ZeroLimit.lean Modified Mathlib/Topology/Connected/PathConnected.lean Modified Mathlib/Topology/ContinuousMap/BoundedCompactlySupported.lean - def compactlySupported Modified Mathlib/Topology/ContinuousMap/CompactlySupported.lean Modified Mathlib/Topology/Covering/AddCircle.lean Modified Mathlib/Topology/Homotopy/Basic.lean Modified Mathlib/Topology/Homotopy/HSpaces.lean Modified Mathlib/Topology/Homotopy/HomotopyGroup.lean Modified Mathlib/Topology/Homotopy/Path.lean Modified Mathlib/Topology/Instances/AddCircle/Defs.lean Modified Mathlib/Topology/Instances/AddCircle/DenseSubgroup.lean Modified Mathlib/Topology/Instances/CantorSet.lean Modified Mathlib/Topology/Instances/EReal/Lemmas.lean Modified Mathlib/Topology/Instances/Int.lean Modified Mathlib/Topology/Instances/Real/Lemmas.lean Modified Mathlib/Topology/IsClosedRestrict.lean Modified Mathlib/Topology/LocalAtTarget.lean Modified Mathlib/Topology/MetricSpace/Basic.lean Modified Mathlib/Topology/MetricSpace/Contracting.lean Modified Mathlib/Topology/MetricSpace/Dilation.lean Modified Mathlib/Topology/MetricSpace/GromovHausdorff.lean Modified Mathlib/Topology/MetricSpace/HausdorffDistance.lean Modified Mathlib/Topology/MetricSpace/Lipschitz.lean Modified Mathlib/Topology/MetricSpace/PiNat.lean Modified Mathlib/Topology/MetricSpace/Pseudo/Defs.lean Modified Mathlib/Topology/OpenPartialHomeomorph/Basic.lean Modified Mathlib/Topology/Order/ScottTopology.lean Modified Mathlib/Topology/Path.lean Modified Mathlib/Topology/Separation/CompletelyRegular.lean Modified Mathlib/Topology/Subpath.lean Modified Mathlib/Topology/UnitInterval.lean Modified Mathlib/Topology/UrysohnsLemma.lean Modified MathlibTest/Algebra/Category/Grp/Injective.lean Modified MathlibTest/FieldSimp.lean Modified MathlibTest/GCongr/inequalities.lean Modified MathlibTest/fast_instance.lean Modified MathlibTest/hintAll.lean Modified MathlibTest/matrix.lean Modified MathlibTest/push.lean Modified MathlibTest/toAdditive.lean Modified lake-manifest.json Modified lakefile.lean Modified lean-toolchain 2026-02-24 04:04:48 1bc7728 chore(scripts): add set_option migration tools (#35520) This PR adds three Python scripts for managing `set_option backward.isDefEq.respectTransparency false in` when testing Lean PRs that change this behaviour: - `scripts/dag_traversal.py` — reusable parallel DAG traversal library for Lean import graphs, with both library and CLI interfaces - `scripts/add_backward_defeq.py` — adds `set_option` before failing declarations, traversing the DAG forward (roots first) so each module is only built after its imports are clean - `scripts/remove_backward_defeq.py` — removes unnecessary `set_option` lines (skipping those with trailing comments), traversing the DAG backward (leaves first) to avoid invalidating cached builds 🤖 Prepared with Claude Code ESTIMATED CHANGES Modified .gitignore Modified scripts/README.md Added scripts/add_set_option.py Added scripts/dag_traversal.py Added scripts/rm_set_option.py Added scripts/set_option_utils.py Added scripts/topological_sort.py 2026-02-24 01:06:35 b73ba77 fix(Analysis): decouple text from markdown lists (#35476) We insert a newline between the end of markdown lists and following text. In the absence of these newlines, doc-gen4 will render the following text as part of the last item of the list. ESTIMATED CHANGES Modified Mathlib/Analysis/Complex/Isometry.lean Modified Mathlib/Analysis/SpecialFunctions/Pow/NNReal.lean Modified Mathlib/Analysis/SpecialFunctions/Pow/Real.lean 2026-02-24 00:28:12 e9235ac feat: shrink time and enlarge Lipschitz constant in `IsPicardLindelof` (#34861) ESTIMATED CHANGES Modified Mathlib/Analysis/ODE/PicardLindelof.lean + theorem IsPicardLindelof.exists_shrink_radius + theorem IsPicardLindelof.shrink + theorem IsPicardLindelof.shrink_time + theorem IsPicardLindelof.weaken_lipschitz + theorem ODE.FunSpace.apply_of_zero + theorem ODE.FunSpace.ext + theorem ODE.FunSpace.isFixedPt_next_iff Modified Mathlib/Topology/EMetricSpace/Lipschitz.lean 2026-02-23 22:55:15 8b62eaa feat: add (m)differentiableAt_of_(m)fderiv_injective (#35284) and versions for `(m)fderivWithin` versions. This generalises the existing lemmas `(m)differentiableAt_of_isInvertible_(m)fderiv` and friends. Extracted from #35078; from the path to immersions, embeddings and submanifolds. ESTIMATED CHANGES Modified Mathlib/Analysis/Calculus/FDeriv/Const.lean + theorem differentiableAt_of_fderiv_injective + theorem differentiableWithinAt_of_fderivWithin_injective + theorem differentiableWithinAt_of_subsingleton Modified Mathlib/Geometry/Manifold/MFDeriv/Basic.lean + theorem mdifferentiableAt_of_mfderiv_injective + theorem mdifferentiableWithinAt_of_mfderivWithin_injective + theorem mdifferentiableWithinAt_of_subsingleton Modified Mathlib/Logic/Function/Basic.lean + theorem Function.not_injective_const 2026-02-23 22:25:36 46279b6 feat(CategoryTheory): products of finally small categories (#35691) A product of two finally small categories is finally small. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Limits/FinallySmall.lean 2026-02-23 22:25:34 5ba5966 chore: remove `simp` from `Ordinal.add_one_eq_succ` (#35553) The plan is to instead make `Order.succ_eq_add_one` a simp lemma, i.e. write `x + 1` instead of `succ x`. We have the typeclass `SuccAddOrder` which can be used to transfer the relevant theorems from `succ x` to the `x + 1` spelling. ESTIMATED CHANGES Modified Mathlib/SetTheory/Ordinal/Basic.lean Modified Mathlib/SetTheory/Ordinal/Notation.lean 2026-02-23 22:25:33 659ca2b feat(Data/Finsupp/Order): add lemma Finsupp.single_le_sum (#35258) This adds an API lemma for `Finsupp` that turned out to be useful in [Heights](github.com/MichaelStollBayreuth/Heights). ESTIMATED CHANGES Modified Mathlib/Data/Finsupp/Order.lean + theorem Finsupp.single_eval_le_sum + theorem Finsupp.single_le_sum 2026-02-23 22:02:39 3bdb9bd feat(CategoryTheory/Limits): isIso_colimMap (#35575) If a natural transformation is an isomorphism, then the induced morphism on (co)limits is an isomorphism. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Limits/HasLimits.lean 2026-02-23 20:15:07 d21cade feat(RingTheory/IsTensorProduct): heterogeneous associativity (#35557) We add a variant of `TensorProduct.AlgebraTensorModule.assoc` stated in terms of `IsTensorProduct`. From Pi1. ESTIMATED CHANGES Modified Mathlib/Algebra/Module/TransferInstance.lean + def AddEquiv.linearEquiv Modified Mathlib/RingTheory/IsTensorProduct.lean + theorem IsTensorProduct.assocOfMapSMul_symm_tmul + theorem IsTensorProduct.assocOfMapSMul_tmul + theorem IsTensorProduct.assoc_symm_tmul + theorem IsTensorProduct.assoc_tmul 2026-02-23 19:12:16 82ad986 chore(RingTheory/AdicCompletion): update the definition of `AdicCompletion.map` (#35595) This PR extracts the change of the definition of `AdicCompletion.map` from #34936. @Thmoas-Guan expressed interest in using this result, so I am splitting it out here to unblock it. ESTIMATED CHANGES Modified Mathlib/RingTheory/AdicCompletion/Functoriality.lean +/- def AdicCompletion.map 2026-02-23 19:12:14 bcc8bc7 feat(CategoryTheory): more API for jointly faithful functors (#35527) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Functor/ReflectsIso/Jointly.lean + theorem CategoryTheory.JointlyFaithful.jointlyReflectEpimorphisms + theorem CategoryTheory.JointlyFaithful.jointlyReflectMonomorphisms + theorem CategoryTheory.JointlyFaithful.jointlyReflectsIsomorphisms + theorem CategoryTheory.JointlyFaithful.of_jointly_reflects_isIso_of_mono 2026-02-23 19:12:13 f0d0878 chore(Order/Types/Arithmetic): golf addition/multiplication instances (#35461) We also make the universe heterogeneous instances lower priority, so Lean can more easily elaborate universes. ESTIMATED CHANGES Modified Mathlib/Order/Types/Arithmetic.lean 2026-02-23 19:12:11 e527740 feat(Combinatorics/Graph): add Compatible definition and API (#34783) Preliminary PR for #26770 (subgraph). Adds the `Compatible` predicate and basic API to `Mathlib.Combinatorics.Graph.Basic`. - **Compatible**: two graphs are compatible if they agree on incidence for every edge in the intersection of their edge sets. - Includes `Compatible.isLink_iff`, reflexivity/symmetry instances, `IsLink.of_compatible`, `Compatible.of_disjoint_edgeSet`, and the `Inc`/`IsLoopAt`/`IsNonloopAt` variants. - **copy** API for copying a graph with new vertex/edge sets and `IsLink`. ESTIMATED CHANGES Modified Mathlib/Combinatorics/Graph/Basic.lean + theorem Graph.Compatible.isLink_congr + theorem Graph.Compatible.of_disjoint_edgeSet + theorem Graph.Compatible.refl + theorem Graph.Compatible.rfl + theorem Graph.Compatible.symm + def Graph.Compatible + theorem Graph.Inc.of_compatible + theorem Graph.IsLink.of_compatible + theorem Graph.IsLoopAt.of_compatible + theorem Graph.IsNonloopAt.of_compatible + def Graph.copy + theorem Graph.copy_eq + theorem Graph.inc_eq_inc_iff_isLink_eq_isLink + theorem Graph.not_inc_of_notMem_edgeSet + theorem Graph.not_isLink_of_notMem_edgeSet 2026-02-23 19:12:09 5730ae8 feat: bounded variation functions have left and right limits, and limits at infinity (#34559) Needed for #34055. ESTIMATED CHANGES Modified Mathlib/Topology/EMetricSpace/BoundedVariation.lean + theorem BoundedVariationOn.continuousWithinAt_leftLim + theorem BoundedVariationOn.continuousWithinAt_rightLim + theorem BoundedVariationOn.continuousWithinAt_variationOnFromTo_Ici + theorem BoundedVariationOn.continuousWithinAt_variationOnFromTo_rightLim_Ici + theorem BoundedVariationOn.exists_tendsto_atBot + theorem BoundedVariationOn.exists_tendsto_atTop + theorem BoundedVariationOn.exists_tendsto_left + theorem BoundedVariationOn.exists_tendsto_left_of_filter + theorem BoundedVariationOn.exists_tendsto_right + theorem BoundedVariationOn.leftLim + theorem BoundedVariationOn.ofDual + theorem BoundedVariationOn.rightLim + theorem BoundedVariationOn.tendsto_atBot_limUnder + theorem BoundedVariationOn.tendsto_atTop_limUnder + theorem BoundedVariationOn.tendsto_eVariationOn_Icc_zero_left + theorem BoundedVariationOn.tendsto_eVariationOn_Icc_zero_right + theorem BoundedVariationOn.tendsto_eVariationOn_Ici_zero + theorem BoundedVariationOn.tendsto_eVariationOn_Ici_zero_of_filter + theorem BoundedVariationOn.tendsto_eVariationOn_Ico_zero + theorem BoundedVariationOn.tendsto_eVariationOn_Iic_zero + theorem BoundedVariationOn.tendsto_eVariationOn_Ioc_zero + theorem BoundedVariationOn.tendsto_leftLim + theorem BoundedVariationOn.tendsto_rightLim + theorem eVariationOn.boundedVariation_ofDual +/- theorem eVariationOn.comp_ofDual + theorem eVariationOn.congr + theorem eVariationOn.eVariationOn_eq_strictMonoOn + theorem eVariationOn.eVariationOn_inter_Iio_eq_inter_Iic_of_continuousWithinAt + theorem eVariationOn.eVariationOn_inter_Ioi_eq_inter_Ici_of_continuousWithinAt + theorem eVariationOn.eVariationOn_leftLim_le + theorem eVariationOn.eVariationOn_rightLim_le + theorem eVariationOn.exists_lt_eVariationOn_inter_Icc +/- theorem eVariationOn.sum_le +/- theorem eVariationOn.sum_le_of_monotoneOn_Icc +/- theorem eVariationOn.sum_le_of_monotoneOn_Iic + theorem variationOnFromTo.abs_le_eVariationOn 2026-02-23 19:12:07 1fc92fd chore: golf using `grind` (and add one supporting `grind` annotation) (#34400) The goal of this golfing PR is to decrease the number of times lemmas are called explicitly (replacing calls to lemmas with calls to tactics). Any decrease in compilation time is a welcome side effect, although it is not a primary objective. Trace profiling results (shown if ≥10 ms before or after): * `SubMulAction.ofStabilizer.isMultiplyPretransitive`: 207 ms before, 232 ms after This golfing PR is batched under the following guidelines: * Up to ~5 changed files per PR * Up to ~25 changed declarations per PR * Up to ~100 changed lines per PR ESTIMATED CHANGES Modified Mathlib/GroupTheory/GroupAction/Defs.lean Modified Mathlib/GroupTheory/GroupAction/MultipleTransitivity.lean 2026-02-23 18:16:39 5ee9828 fix(Linter/TextBased): don't flag "see adaptation note" comments (#35668) This PR fixes the `adaptationNoteLinter` which was matching any line containing the substring `"daptation note"`, causing false positives on lines like: ```lean #adaptation_note /-- The maxHeartbeats bump is required after leanprover/lean4#12564. -/ set_option maxHeartbeats 400000 in -- see adaptation note ``` The linter now excludes lines containing `#adaptation_note` (correct usage) and `see adaptation note` (cross-references to a nearby `#adaptation_note` command). See https://github.com/leanprover-community/mathlib4-nightly-testing/actions/runs/22289522784/job/64474181031 for all 8 false positives, all of this form. 🤖 Prepared with Claude Code ESTIMATED CHANGES Modified Mathlib/Tactic/Linter/TextBased.lean 2026-02-23 18:16:37 a4b2839 refactor: weaken `IsClosedEmbedding` requirement in `ContinuousFunctionalCalculus` (#35551) Consider the following. Suppose `A` is a C⋆-algebra. We are constantly considering various alternative topologies on `A`, e.g., the weak operator topology, the strong operator topology, the ultraweak topology, the strict topology on the multiplier algebra, the strong and strong-* topologies, etc. With the current incarnation of `ContinuousFunctionalCalculus` we can get an instance on `A`. However, when we work the the type synonym `WeakerOpTopology A` we also want to be able to do things involving the functional calculus on that type. But as-is, the `ContinuousFunctionalCalculus` class is *too restrictive* because it requires the map from `C(spectrum R a, R)` into the algebra to be a closed embedding. This means that, at least locally on the closed star subalgebra generated by a single element, the topology is induced by a C⋆-norm; thereby prohibiting any type synonym of `A` with a weaker topology. The reason `IsClosedEmbedding` was originally a requirement is because we wanted to be able to recover the ⋆-algebra equivalence with the C⋆-subalgebra generated by element of `A`. This is *still* important (but can be accomplished with the isometric variant of the `ContinuousFunctionalCalculus` class). However, when working in a type synonym, this condition doesn't really make any sense anyway, because the topological closure would be taken relative to a different topology (the norm topology) than the one you have on your type synonym. And indeed, taking the closure relative to this weaker topology will in general result in a subalgebra which is too big. At the same time, the vast majority of properties of the functional calculus don't need this condition, and all that is really needed is injectivity and continuity. Injectivity will of course still be satisfied by the type synonym, and so will continuity because `cfcHom : C(spectrum R a, R) → A → WeakerOpTopology A` is a composition of continuous maps. Note that even `ContinuousMap.UniqueHom` will still in general be satisfied as long as the weaker topology is Hausdorff which it always is for topologies we care about, so the composition property holds; at least for `ℝ` or `ℂ`. For `ℝ≥0` there is currently an `IsTopologicalRing A` requirement which will in general not be satisfied by the weaker topology, because multiplication is not jointly continuous. However, this can likely be addressed by introducing classes for one-sided continuity of multiplication. Everything about the above applies equally well to non-unital algebras. This PR weakens the requirements of the homomorphisms in `ContinuousFunctionalCalculus` from `IsClosedEmbedding` to `Continuous` + `Injective`. The existing `IsClosedEmbedding` version around under a different name for now, but this may perhaps be removed in the future. ESTIMATED CHANGES Modified Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Basic.lean + theorem IsStarNormal.instContinuousFunctionalCalculus + theorem IsStarNormal.instNonUnitalContinuousFunctionalCalculus +/- theorem cfcHom_eq_of_isStarNormal +/- theorem continuousFunctionalCalculus_map_id +/- theorem inr_comp_cfcₙHom_eq_cfcₙAux Modified Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Instances.lean + theorem RCLike.nonUnitalContinuousFunctionalCalculusIsClosedEmbedding + theorem cfcₙAux_injective + theorem continuous_cfcₙAux + theorem inrNonUnitalStarAlgHom_comp_cfcₙHom_eq_cfcₙAux Modified Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Isometric.lean +/- theorem isometry_cfcHom Modified Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/NonUnital.lean +/- theorem cfcₙHom_eq_cfcₙHom_of_cfcHom + theorem cfcₙHom_injective +/- theorem cfcₙHom_isClosedEmbedding + theorem cfcₙHom_of_cfcHom_injective +/- theorem cfcₙHom_of_cfcHom_map_quasispectrum +/- theorem cfcₙ_eq_cfc + theorem continuous_cfcₙHom_of_cfcHom +/- theorem isClosedEmbedding_cfcₙHom_of_cfcHom Modified Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Range.lean Modified Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Restrict.lean +/- theorem QuasispectrumRestricts.cfcₙHom_eq_restrict +/- theorem QuasispectrumRestricts.cfcₙ_eq_restrict + theorem QuasispectrumRestricts.continuous_nonUnitalStarAlgHom + theorem QuasispectrumRestricts.nonUnitalStarAlgHom_injective +/- theorem SpectrumRestricts.cfcHom_eq_restrict +/- theorem SpectrumRestricts.cfc_eq_restrict + theorem SpectrumRestricts.continuous_starAlgHom + theorem SpectrumRestricts.starAlgHom_injective Modified Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Unital.lean + theorem cfcHom_injective +/- theorem cfcHom_isClosedEmbedding Modified Mathlib/Analysis/Matrix/HermitianFunctionalCalculus.lean + theorem Matrix.IsHermitian.cfcHom_eq_cfcAux Modified Mathlib/Analysis/Normed/Algebra/Unitization.lean Modified Mathlib/Analysis/SpecialFunctions/ContinuousFunctionalCalculus/ExpLog/Basic.lean Modified Mathlib/Topology/CompactOpen.lean + theorem ContinuousMap.postcomp_injective Modified Mathlib/Topology/ContinuousMap/ContinuousMapZero.lean - theorem ContinuousMapZero.continuous_comp_left + theorem ContinuousMapZero.continuous_postcomp + theorem ContinuousMapZero.continuous_precomp + theorem ContinuousMapZero.postcomp_injective 2026-02-23 18:16:35 8aaf32f chore(Data/Set/Inclusion): small golf (#34690) Also added `inclusion_eq_subtype_map` for `inclusion h = Subtype.map id h` which is true by definition. ESTIMATED CHANGES Modified Mathlib/Data/Set/Inclusion.lean + theorem Set.inclusion_eq_subtype_map +/- theorem Set.inclusion_injective +/- theorem Set.inclusion_right +/- theorem Set.inclusion_self 2026-02-23 18:16:33 abd0739 feat(SetTheory/Cardinal): more lemmas about `ENat` (#33909) and deduplicate a few pairs. From ProofBench ESTIMATED CHANGES Modified Mathlib/Data/Finite/Card.lean Modified Mathlib/Data/Set/Card.lean + theorem Set.encard_lt_one Modified Mathlib/GroupTheory/CoprodI.lean Modified Mathlib/LinearAlgebra/Matrix/Rank.lean Modified Mathlib/RingTheory/Length.lean Modified Mathlib/SetTheory/Cardinal/Basic.lean + theorem Cardinal.exists_ne_ne_of_three_le - theorem Cardinal.three_le Modified Mathlib/SetTheory/Cardinal/ENat.lean + theorem Cardinal.natCast_eq_toENat + theorem Cardinal.natCast_le_toENat + theorem Cardinal.natCast_lt_toENat + theorem Cardinal.ofNat_eq_toENat + theorem Cardinal.ofNat_le_toENat + theorem Cardinal.ofNat_lt_toENat + theorem Cardinal.one_le_toENat + theorem Cardinal.one_lt_toENat +/- theorem Cardinal.toENat_eq_iff_of_le_aleph0 - theorem Cardinal.toENat_eq_nat + theorem Cardinal.toENat_eq_natCast +/- theorem Cardinal.toENat_eq_ofNat +/- theorem Cardinal.toENat_eq_one +/- theorem Cardinal.toENat_eq_top +/- theorem Cardinal.toENat_eq_zero +/- theorem Cardinal.toENat_le_iff_of_le_aleph0 +/- theorem Cardinal.toENat_le_iff_of_lt_aleph0 - theorem Cardinal.toENat_le_nat + theorem Cardinal.toENat_le_natCast +/- theorem Cardinal.toENat_le_ofNat +/- theorem Cardinal.toENat_le_one +/- theorem Cardinal.toENat_lift + theorem Cardinal.toENat_lt_natCast + theorem Cardinal.toENat_lt_ofNat + theorem Cardinal.toENat_lt_one +/- theorem Cardinal.toENat_lt_top +/- theorem Cardinal.toENat_ne_top + theorem Cardinal.toENat_ofNat Modified Mathlib/SetTheory/Cardinal/Finite.lean + theorem ENat.card_pos_iff_nonempty + theorem ENat.exists_ne_ne_of_three_le Modified Mathlib/SetTheory/Cardinal/NatCount.lean Modified Mathlib/SetTheory/Cardinal/ToNat.lean 2026-02-23 17:11:55 4166dc3 feat(Order/CompactlyGenerated): remove injectivity hypothesis in `iSupIndep_iff_supIndep_of_injOn` (#35475) The theorem [`iSupIndep_iff_supIndep_of_injOn`](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Order/CompactlyGenerated/Basic.html#iSupIndep_iff_supIndep_of_injOn) asks for an injectivity hypothesis which is redundant. It has been removed. I have renamed `iSupIndep_iff_supIndep_of_injOn` to `iSupIndep_iff_supIndep`. The preexisting theorem `iSupIndep_iff_supIndep` has been renamed to `iSupIndep_comp_coe_iff_supIndep` which I believe is more accurate. Note: The name clash means we can't deprecate `iSupIndep_iff_supIndep` (to the best of my knowledge), but I think it's worth it since the new `iSupIndep_iff_supIndep` is now what I would expect it to be. ESTIMATED CHANGES Modified Mathlib/Algebra/Module/Torsion/Basic.lean Modified Mathlib/LinearAlgebra/Eigenspace/Basic.lean Modified Mathlib/LinearAlgebra/Eigenspace/Pi.lean Modified Mathlib/Order/CompactlyGenerated/Basic.lean + theorem iSupIndep_iff_supIndep Modified Mathlib/Order/SupIndep.lean + theorem iSupIndep_comp_coe_iff_supIndep - theorem iSupIndep_iff_supIndep 2026-02-23 17:11:53 3b6f197 chore: golf using `fun_prop` (#35377) The goal of this golfing PR is to decrease the number of times lemmas are called explicitly (replacing calls to lemmas with calls to tactics). Any decrease in compilation time is a welcome side effect, although it is not a primary objective. Trace profiling results (differences <20 ms considered measurement noise): * `ProbabilityTheory.Fernique.lintegral_exp_mul_sq_norm_le_mul`: 1876 ms before, 1629 ms after 🎉 This golfing PR is batched under the following guidelines: * Up to ~5 changed files per PR * Up to ~25 changed declarations per PR * Up to ~100 changed lines per PR ESTIMATED CHANGES Modified Mathlib/Probability/Distributions/Fernique.lean 2026-02-23 17:11:51 9359f90 feat(LinearAlgebra/BilinearForm): remove `BilinForm.IsRefl` hypothesis in some theorems (#34998) Strengthen some theorems in `LinearAlgebra.BilinearForm.Orthogonal` by removing their `BilinForm.IsRefl` hypothesis; they are true verbatim without it. ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/BilinearForm/Orthogonal.lean + theorem LinearMap.BilinForm.finrank_add_finrank_orthogonal' +/- theorem LinearMap.BilinForm.finrank_orthogonal +/- theorem LinearMap.BilinForm.orthogonal_top_eq_bot + theorem LinearMap.BilinForm.toLin_restrict_ker_eq_inf_ker 2026-02-23 17:11:49 43abe9e feat(CategoryTheory/Sites): Equivalence of categories of sheaves with a dense subsite that is 1-hypercover dense (#34976) Let `F : C₀ ⥤ C` be a functor equipped with Grothendieck topologies `J₀` and `J`. Assume that `F` is a dense subsite that is `1`-hypercover dense relatively to a universe `w`. Assume that the coefficient category `A` has limits of size `w`, we show that the restriction functor `sheafPushforwardContinuous F A J₀ J : Sheaf J A ⥤ Sheaf J₀ A` is an equivalence of categories, which allows to transport `HasWeakSheafify` and `HasSheafify` assumptions for the site `(C₀, J₀)` to the site `(C, J)`. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Sites/Coherent/SheafComparison.lean Modified Mathlib/CategoryTheory/Sites/ConstantSheaf.lean Modified Mathlib/CategoryTheory/Sites/DenseSubsite/Basic.lean + theorem CategoryTheory.Functor.IsDenseSubsite.hasSheafify_of_isEquivalence + theorem CategoryTheory.Functor.IsDenseSubsite.hasWeakSheafify_of_isEquivalence + def CategoryTheory.Functor.IsDenseSubsite.sheafEquivSheafificationCompatibility + theorem CategoryTheory.Functor.IsDenseSubsite.sheafifyHomEquivOfIsEquivalence_naturality_left + theorem CategoryTheory.Functor.IsDenseSubsite.sheafifyHomEquivOfIsEquivalence_naturality_right Modified Mathlib/CategoryTheory/Sites/DenseSubsite/InducedTopology.lean Modified Mathlib/CategoryTheory/Sites/DenseSubsite/OneHypercoverDense.lean + theorem CategoryTheory.Functor.OneHypercoverDenseData.essSurj.isSheaf + theorem CategoryTheory.Functor.OneHypercoverDenseData.essSurj.presheafMap_presheafObjObjIso_hom + theorem CategoryTheory.Functor.OneHypercoverDenseData.essSurj.presheafObjObjIso.hom_map + theorem CategoryTheory.Functor.OneHypercoverDenseData.essSurj.presheafObjObjIso.hom_mapPreimage + theorem CategoryTheory.Functor.OneHypercoverDenseData.essSurj.presheafObjObjIso.inv_restriction + theorem CategoryTheory.Functor.OneHypercoverDenseData.essSurj.presheafObjObjIso.inv_π + theorem CategoryTheory.Functor.OneHypercoverDenseData.essSurj.presheafObjObjIso_inv_naturality + theorem CategoryTheory.Functor.OneHypercoverDenseData.essSurj + theorem CategoryTheory.Functor.OneHypercoverDenseData.isEquivalence + theorem CategoryTheory.Functor.isEquivalence_of_isOneHypercoverDense Modified Mathlib/CategoryTheory/Sites/DenseSubsite/SheafEquiv.lean 2026-02-23 17:11:47 1d41459 feat(Data/Nat/SuccPred): `m ⋖ n ↔ m + 1 = n` (#34806) This is a special case of a general lemma which can't be simp. Also turn `Fin.coe_covBy_iff` around to preserve confluence. From ProofBench ESTIMATED CHANGES Modified Mathlib/Combinatorics/SimpleGraph/ConcreteColorings.lean Modified Mathlib/Combinatorics/SimpleGraph/Hasse.lean Modified Mathlib/Data/Nat/SuccPred.lean +/- theorem Fin.coe_covBy_iff + theorem Fin.covBy_iff + theorem Nat.covBy_iff_add_one_eq 2026-02-23 17:11:45 cfc99f1 feat(SetTheory/Ordinal/Arithmetic): prove `isSuccPrelimit_iff_omega0_dvd` (#34664) ESTIMATED CHANGES Modified Mathlib/SetTheory/Ordinal/Arithmetic.lean - theorem Ordinal.isSuccLimit_mul + theorem Ordinal.isSuccLimit_mul_right +/- theorem Ordinal.isSuccLimit_sub + theorem Ordinal.isSuccPrelimit_iff_omega0_dvd + theorem Ordinal.isSuccPrelimit_mul_left + theorem Ordinal.isSuccPrelimit_mul_right Modified Mathlib/SetTheory/Ordinal/Exponential.lean Modified Mathlib/SetTheory/Ordinal/Notation.lean 2026-02-23 15:28:43 a274af5 feat(Order/WellFounded): the minimal element of a trichotomous well-founded order is unique (#35679) ESTIMATED CHANGES Modified Mathlib/Order/WellFounded.lean + theorem WellFounded.min_eq_of_forall_not_lt 2026-02-23 13:33:01 c013fad feat: `DenseRange.eq_zero_of_inner_left` and generalize `Dense.eq_zero_of_inner_right` (#35456) Generalize - `DenseRange.eq_zero_of_inner_left` - `DenseRange.eq_zero_of_inner_right` - `Dense.eq_of_inner_left` - `Dense.eq_of_inner_right` to work with arbitrary sets. Also add - `DenseRange.eq_zero_of_inner_left` - `DenseRange.eq_zero_of_inner_right` ESTIMATED CHANGES Modified Mathlib/Analysis/InnerProductSpace/Continuous.lean + theorem Dense.eq_of_inner_left + theorem Dense.eq_of_inner_right + theorem Dense.eq_zero_of_inner_left + theorem Dense.eq_zero_of_inner_right Modified Mathlib/Analysis/InnerProductSpace/LinearPMap.lean Modified Mathlib/Analysis/InnerProductSpace/Projection/Submodule.lean - theorem Dense.eq_of_inner_left - theorem Dense.eq_of_inner_right - theorem Dense.eq_zero_of_inner_left - theorem Dense.eq_zero_of_inner_right 2026-02-23 13:33:00 25e9ac6 feat(Computability): add FinEncodings for List Bool and pairs of types (#32367) This PR contains `finEncoding`s relevant to developing complexity theory in downstream libraries. It is adapted from [this](https://leanprover.zulipchat.com/#narrow/channel/116395-maths/topic/Formalise.20the.20proposition.20P.20.E2.89.A0NP/near/451765788)[#maths > Formalise the proposition P ≠NP @ 💬](https://leanprover.zulipchat.com/#narrow/channel/116395-maths/topic/Formalise.20the.20proposition.20P.20.E2.89.A0NP/near/451765788) comment. ESTIMATED CHANGES Modified Mathlib/Computability/Encoding.lean + def Computability.finEncodingList + def Computability.finEncodingPair Modified Mathlib/Data/List/Basic.lean + theorem List.filterMap_none 2026-02-23 13:05:15 6eb4442 chore(LinearAlgebra/Matrix/SemiringInverse): generalize from the identity to diagonal matrices (#35676) This is a trivial generalization of some helper lemmas. ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/Matrix/SemiringInverse.lean + theorem Matrix.detp_neg_one_diagonal + theorem Matrix.detp_one_diagonal +/- theorem Matrix.isAddUnit_detp_mul_detp +/- theorem Matrix.isAddUnit_detp_smul_mul_adjp +/- theorem Matrix.isAddUnit_mul 2026-02-23 11:58:56 a1e3af1 feat(RingTheory/MvPowerSeries): introduce truncFinset to unify truncations (#35118) Resolves the TODO in MvPowerSeries/Trunc.lean by implementing a general truncation map `truncFinset`, which paves the way for unifying strict and non-strict truncations and defining other truncations ESTIMATED CHANGES Modified Mathlib/Order/Interval/Finset/Basic.lean + theorem Finset.sup_Iic_of_monotone Modified Mathlib/RingTheory/MvPowerSeries/Trunc.lean +/- theorem MvPowerSeries.coeff_mul_eq_coeff_trunc'_mul_trunc' +/- theorem MvPowerSeries.coeff_trunc' + theorem MvPowerSeries.coeff_trunc'_mul_trunc'_eq_coeff_mul +/- theorem MvPowerSeries.coeff_trunc + theorem MvPowerSeries.coeff_truncFinset + theorem MvPowerSeries.coeff_truncFinset_eq_zero + theorem MvPowerSeries.coeff_truncFinset_mul_truncFinset_eq_coeff_mul + theorem MvPowerSeries.coeff_truncFinset_of_mem - theorem MvPowerSeries.coeff_truncFun' - theorem MvPowerSeries.coeff_truncFun + theorem MvPowerSeries.support_truncFinset_subset + theorem MvPowerSeries.totalDegree_truncFinset +/- def MvPowerSeries.trunc' +/- theorem MvPowerSeries.trunc'_C +/- theorem MvPowerSeries.trunc'_one +/- def MvPowerSeries.trunc + def MvPowerSeries.truncFinset + theorem MvPowerSeries.truncFinset_C + theorem MvPowerSeries.truncFinset_apply + theorem MvPowerSeries.truncFinset_map + theorem MvPowerSeries.truncFinset_monomial + theorem MvPowerSeries.truncFinset_monomial_eq_zero + theorem MvPowerSeries.truncFinset_one + theorem MvPowerSeries.truncFinset_truncFinset + theorem MvPowerSeries.truncFinset_truncFinset_pow - def MvPowerSeries.truncFun' - def MvPowerSeries.truncFun 2026-02-23 10:04:09 1d55441 feat: support products and disjoint unions in the differential geometry elaborators (#30463) Add support for inferring a model with corners on - products of manifolds - disjoint unions of manifolds - an open subset of a manifold Note that these can be nested (e.g., a product with multiple factors, a disjoint union of four manifolds or combinations of these). For binary products of normed spaces, we intentionally refuse to infer a model with corners, as there are two different possible options which are propositionally, but not definitionally equal. For now, we emit a warning to this effect instead. A future PR may remove it (and infer one of these variants): see [zulip discussion](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Differential.20geometry.20elaborators.20experiment/near/544942546). This PR completes an important milestone: models with corners are now inferred for *all* instances mathlib knows about! Update the module doc-string accordingly. A future PR will golf mathlib using these elaborators. ESTIMATED CHANGES Modified Mathlib/Geometry/Manifold/Notation.lean + structure Manifold.Elab.Elab.FindModelResult + structure Manifold.Elab.Elab.NormedSpaceInfo - def Manifold.Elab.Elab.findModel + def Manifold.Elab.Elab.findModelInner Modified MathlibTest/DifferentialGeometry/Notation.lean Modified MathlibTest/DifferentialGeometry/NotationAdvanced.lean Modified MathlibTest/DifferentialGeometry/NotationSphere.lean 2026-02-23 09:20:19 cc17c51 refactor(Order/Interval/Set/LinearOrder): deprecate duplicates with stronger hypotheses (#35636) e.g. for `Ioo_union_Ioi`, `c < b` is just one of two ways you can get a `c < max a b` hypothesis. I kept `Ico_union_Ico'` and `Ioc_union_Ioc'` since these are more tedious to prove. ESTIMATED CHANGES Modified Mathlib/Order/Interval/Finset/Basic.lean Modified Mathlib/Order/Interval/Set/LinearOrder.lean +/- theorem Set.Icc_union_Ici' +/- theorem Set.Ico_union_Ici' +/- theorem Set.Ico_union_Ico' +/- theorem Set.Iic_union_Icc' +/- theorem Set.Iic_union_Ioc' +/- theorem Set.Iio_union_Ico' +/- theorem Set.Iio_union_Ioo' +/- theorem Set.Ioc_union_Ioc' +/- theorem Set.Ioc_union_Ioi' +/- theorem Set.Ioo_union_Ioi' 2026-02-23 09:06:59 402d564 chore(RingTheory/DedekindDomain/PID): remove non-terminal simp (#35024) And remove obsolete explicit params since the `FunLike` refactor. ESTIMATED CHANGES Modified Mathlib/RingTheory/DedekindDomain/PID.lean 2026-02-23 07:44:28 137d4b3 perf(Analysis/InnerProductSpace/Adjoint): Make slow-to-infer type explicit (#35623) Single type hint saves 72G instructions. ESTIMATED CHANGES Modified Mathlib/Analysis/InnerProductSpace/Adjoint.lean 2026-02-23 03:56:43 6466c77 chore: golf proofs (#35244) The goal of this golfing PR is to decrease the number of times lemmas are called explicitly (replacing calls to lemmas with calls to tactics). Any decrease in compilation time is a welcome side effect, although it is not a primary objective. Trace profiling results (shown if ≥10 ms before or after): * `LocallyBoundedVariationOn.ae_differentiableWithinAt_of_mem`: 199 ms before, 162 ms after 🎉 * `tendsto_natCast_div_add_atTop`: 247 ms before, 136 ms after 🎉 * `tendsto_div_of_monotone_of_exists_subseq_tendsto_div`: 2757 ms before, 2376 ms after 🎉 * `CategoryTheory.Presieve.isSheaf_iff_preservesFiniteProducts`: 219 ms before, 198 ms after 🎉 * `CategoryTheory.Pretriangulated.Triangle.mor₁_eq_zero_iff_epi₃`: 15 ms before, 13 ms after 🎉 * `CategoryTheory.Pretriangulated.Triangle.mor₃_eq_zero_iff_mono₁`: 23 ms before, 15 ms after 🎉 * `List.IsChain.cons_of_le`: 22 ms before, 17 ms after 🎉 * `List.Perm.inter_append`: 194 ms before, 19 ms after 🎉 * `Equivalence.quot_mk_eq_iff`: <10 ms before, <10 ms after 🎉 * `Stream'.Seq.destruct_eq_none`: <10 ms before, <10 ms after 🎉 * `MulAction.IsBlock.subsingleton_of_ssubset_of_stabilizer_le`: 169 ms before, 105 ms after 🎉 * `IsSimpleGroup.prime_card`: 60 ms before, 48 ms after 🎉 * `RootPairing.coxeterWeightIn_le_four`: 1236 ms before, 1126 ms after 🎉 * `MeasureTheory.Measure.haveLebesgueDecomposition_of_finiteMeasure`: 659 ms before, 584 ms after 🎉 * `IsFundamentalDomain.QuotientMeasureEqMeasurePreimage_smulHaarMeasure`: 85 ms before, 80 ms after 🎉 * `MeasureTheory.Measure.isMulLeftInvariant_eq_smul_of_regular`: 58 ms before, 50 ms after 🎉 * `MeasureTheory.SignedMeasure.exists_subset_restrict_nonpos`: 413 ms before, 325 ms after 🎉 * `FirstOrder.Language.Embedding.coe_injective`: <10 ms before, <10 ms after 🎉 * `ProbabilityTheory.setLIntegral_stieltjesOfMeasurableRat`: 343 ms before, 310 ms after 🎉 * `ProbabilityTheory.IsRatCondKernelCDFAux.tendsto_atBot_zero`: 116 ms before, 75 ms after 🎉 * `ProbabilityTheory.lintegral_toKernel_mem`: 173 ms before, 172 ms after 🎉 * `MeasureTheory.Measure.tendsto_IicSnd_atBot`: 70 ms before, 63 ms after 🎉 * `ProbabilityTheory.eq_condKernel_of_measure_eq_compProd'`: 46 ms before, 30 ms after 🎉 * `MeasureTheory.StronglyMeasurable.integral_kernel_prod_right`: 1298 ms before, 1142 ms after 🎉 * `ProbabilityTheory.Kernel.isSFiniteKernel_withDensity_of_isFiniteKernel`: 433 ms before, 429 ms after 🎉 * `MeasureTheory.progMeasurable_of_tendsto'`: 20 ms before, <10 ms after 🎉 * `MeasureTheory.Measure.infinitePi_map_piCurry_symm`: 1319 ms before, 1291 ms after 🎉 * `HahnModule.add_smul`: 111 ms before, 75 ms after 🎉 * `Module.associatedPrimes.mem_associatedPrimes_of_comap_mem_associatedPrimes_of_isLocalizedModule`: 215 ms before, 198 ms after 🎉 * `Ideal.comap_eq_of_scalar_tower_quotient`: 97 ms before, 56 ms after 🎉 This golfing PR is batched under the following guidelines: * Up to ~5 changed files per PR * Up to ~25 changed declarations per PR * Up to ~100 changed lines per PR ESTIMATED CHANGES Modified Mathlib/Analysis/BoundedVariation.lean Modified Mathlib/Analysis/SpecificLimits/Basic.lean Modified Mathlib/Analysis/SpecificLimits/FloorPow.lean Modified Mathlib/CategoryTheory/Sites/Coherent/ExtensiveSheaves.lean Modified Mathlib/CategoryTheory/Triangulated/Pretriangulated.lean Modified Mathlib/Data/List/Chain.lean Modified Mathlib/Data/List/Perm/Lattice.lean Modified Mathlib/Data/Seq/Defs.lean Modified Mathlib/GroupTheory/Perm/MaximalSubgroups.lean Modified Mathlib/GroupTheory/SpecificGroups/Cyclic.lean Modified Mathlib/LinearAlgebra/RootSystem/Finite/Lemmas.lean Modified Mathlib/MeasureTheory/Measure/Decomposition/Lebesgue.lean Modified Mathlib/MeasureTheory/Measure/Haar/Quotient.lean Modified Mathlib/MeasureTheory/Measure/Haar/Unique.lean Modified Mathlib/MeasureTheory/VectorMeasure/Decomposition/Hahn.lean Modified Mathlib/ModelTheory/Basic.lean Modified Mathlib/NumberTheory/Padics/Complex.lean +/- theorem PadicComplex.isNonarchimedean Modified Mathlib/Probability/Kernel/Disintegration/CDFToKernel.lean Modified Mathlib/Probability/Kernel/Disintegration/CondCDF.lean Modified Mathlib/Probability/Kernel/Disintegration/Unique.lean Modified Mathlib/Probability/Kernel/MeasurableIntegral.lean Modified Mathlib/Probability/Kernel/WithDensity.lean Modified Mathlib/Probability/Process/Adapted.lean Modified Mathlib/Probability/ProductMeasure.lean Modified Mathlib/RingTheory/HahnSeries/Multiplication.lean Modified Mathlib/RingTheory/Ideal/AssociatedPrime/Localization.lean Modified Mathlib/RingTheory/Ideal/Over.lean 2026-02-23 03:16:50 1757879 chore: change remaining _neq_ to _ne_ (#35350) I found this minor mismatch while working on another project (https://github.com/lean-phys-community/PhysLean/issues/945). It's not a big deal, yet I would like to make a PR anyway 😄 Also I suggest adding this into "style guide" since 99% of existing code follow this rule. ESTIMATED CHANGES Modified Archive/Imo/Imo2025Q3.lean Modified Mathlib/Algebra/Algebra/Spectrum/Basic.lean Modified Mathlib/Algebra/Module/Injective.lean Modified Mathlib/Algebra/Module/ZLattice/Basic.lean Modified Mathlib/Combinatorics/SimpleGraph/Acyclic.lean Modified Mathlib/Data/Nat/Prime/Basic.lean +/- theorem Nat.Prime.dvd_mul_of_dvd_ne Modified Mathlib/MeasureTheory/Integral/IntervalIntegral/TrapezoidalRule.lean Modified Mathlib/NumberTheory/Padics/PadicNorm.lean Modified Mathlib/NumberTheory/Padics/PadicVal/Basic.lean +/- theorem padicValNat_primes Modified Mathlib/Order/SupIndep.lean Modified Mathlib/RingTheory/NoetherNormalization.lean Modified Mathlib/Topology/Separation/Hausdorff.lean 2026-02-23 02:46:11 5698328 chore(FDeriv/Pi): golf (#35663) Also drop an unneeded assumption `[Finite ι]`. ESTIMATED CHANGES Modified Mathlib/Analysis/Calculus/FDeriv/Pi.lean 2026-02-23 02:20:21 699a55a chore(MathlibTest/slow_instance): add test for `Grind.OrderedAdd` (#35667) This PR adds a test to show that some instance search fails quickly. ESTIMATED CHANGES Modified MathlibTest/slow_instances.lean 2026-02-23 00:31:18 27b0924 ci: enforce SHA pinning for GitHub Actions (#35617) This PR adds an `ensure-sha-pinned-actions` job to the existing `actionlint.yml` workflow, using [`zgosalvez/github-actions-ensure-sha-pinned-actions`](https://github.com/zgosalvez/github-actions-ensure-sha-pinned-actions) to verify that all `uses:` references in workflow files are pinned to full 40-character commit SHAs rather than mutable tags. We use [our fork](https://github.com/kim-em/github-actions-ensure-sha-pinned-actions/tree/improve-error-reporting) (pinned to SHA) with improved error reporting until the upstream PR is merged: https://github.com/zgosalvez/github-actions-ensure-sha-pinned-actions/pull/288. The improvements are: - Report all violations at once (upstream stops at the first per job) - File-level annotations on errors (upstream shows generic messages) All existing workflows already use SHA-pinned references, so this just enforces the policy going forward. 🤖 Prepared with Claude Code ESTIMATED CHANGES Modified .github/workflows/actionlint.yml Modified .github/workflows/daily.yml Modified .github/workflows/nightly-docgen.yml Modified .github/workflows/splice_bot.yaml Modified .github/workflows/splice_bot_wf_run.yaml 2026-02-22 23:38:07 baa5936 chore: use @[to_dual] in Bounds/Image (#35211) This PR adds `@[to_dual]` annotations to primal theorems in `Mathlib.Order.Bounds.Image`, auto-generating their dual counterparts and deleting the hand-written versions. Covers `MonotoneOn`, `AntitoneOn`, `Monotone`, `Antitone`, `image2`, `IsCofinalFor`, `Prod`, and `Pi` sections. [Diff relative to #35208](https://github.com/kim-em/mathlib4/compare/kim/to-dual-bounds-basic...kim/to-dual-bounds-image) - [x] depends on: #35208 🤖 Prepared with Claude Code ESTIMATED CHANGES Modified Mathlib/Order/Bounds/Image.lean - theorem Antitone.image_upperBounds_subset_lowerBounds_image - theorem Antitone.map_bddBelow - theorem Antitone.map_isLeast - theorem Antitone.mem_lowerBounds_image - theorem AntitoneOn.image_upperBounds_subset_lowerBounds_image - theorem AntitoneOn.map_bddBelow - theorem AntitoneOn.map_isLeast - theorem AntitoneOn.mem_lowerBounds_image - theorem AntitoneOn.mem_lowerBounds_image_self - theorem BddAbove.bddBelow_image2_of_bddAbove - theorem BddAbove.image2_bddBelow - theorem BddBelow.bddBelow_image2_of_bddAbove - theorem BddBelow.range_comp - theorem BddBelow.range_mono - theorem IsCoinitialFor.image_of_antitone - theorem IsCoinitialFor.image_of_monotone - theorem IsGreatest.isLeast_image2 - theorem IsGreatest.isLeast_image2_of_isLeast - theorem IsLUB.of_image - theorem IsLeast.isLeast_image2_of_isGreatest - theorem Monotone.image_lowerBounds_subset_lowerBounds_image - theorem Monotone.map_bddBelow - theorem Monotone.map_isGreatest - theorem Monotone.mem_lowerBounds_image - theorem MonotoneOn.image_lowerBounds_subset_lowerBounds_image - theorem MonotoneOn.map_bddBelow - theorem MonotoneOn.map_isGreatest - theorem MonotoneOn.mem_lowerBounds_image - theorem MonotoneOn.mem_lowerBounds_image_self - theorem bddBelow_pi - theorem bddBelow_prod - theorem bddBelow_range_pi - theorem bddBelow_range_prod - theorem image2_lowerBounds_lowerBounds_subset - theorem image2_lowerBounds_lowerBounds_subset_lowerBounds_image2 - theorem image2_lowerBounds_upperBounds_subset_lowerBounds_image2 - theorem image2_upperBounds_lowerBounds_subset_lowerBounds_image2 - theorem isGLB_pi - theorem isGLB_prod - theorem mem_lowerBounds_image2 - theorem mem_lowerBounds_image2_of_mem_lowerBounds_of_mem_lowerBounds - theorem mem_lowerBounds_image2_of_mem_lowerBounds_of_mem_upperBounds - theorem mem_lowerBounds_image2_of_mem_upperBounds 2026-02-22 22:01:45 44faade feat(Tactic): `linarith` and `rify` for NNReal (#35155) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Data/NNReal/Basic.lean + theorem NNReal.toReal_eq + theorem NNReal.toReal_le + theorem NNReal.toReal_lt + theorem NNReal.toReal_ne Modified Mathlib/Tactic.lean Added Mathlib/Tactic/Linarith/NNRealPreprocessor.lean + def Mathlib.Tactic.Linarith.isNNRealtoReal + def Mathlib.Tactic.Linarith.mk_toReal_nonneg_prf Modified Mathlib/Tactic/Linarith/Preprocessing.lean + def Mathlib.Tactic.Linarith.nnrealToReal Modified Mathlib/Tactic/Rify.lean + def Mathlib.Tactic.Rify.mkRifyContext + def Mathlib.Tactic.Rify.rifyProof Renamed MathlibTest/linarith.lean to MathlibTest/Linarith/Basic.lean Added MathlibTest/Linarith/NNReal.lean Modified MathlibTest/Rify.lean 2026-02-22 16:37:39 7f14c97 chore(Order/Monotone/Basic): use `to_dual` (#35648) This PR uses `to_dual` on a few lemmas about `Monotone`. I also turn some uses of `to_dual` into `to_dual none`, because these were made by me before `to_dual none` existed. ESTIMATED CHANGES Modified Mathlib/Order/Monotone/Basic.lean - theorem StrictAnti.isMin_of_apply - theorem StrictAnti.maximal_of_minimal_image - theorem StrictAnti.wellFoundedGT - theorem StrictMono.isMin_of_apply - theorem StrictMono.minimal_of_minimal_image - theorem StrictMono.wellFoundedGT Modified Mathlib/Order/Monotone/Defs.lean 2026-02-22 15:15:03 02e8b79 perf(LinearAlgebra/RootSystem/GeckConstruction/Relations): get rid of some `aesop` (#35587) ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/RootSystem/GeckConstruction/Relations.lean 2026-02-22 13:15:49 7862cbd chore(Order/SuccPred/Archimedean): use `to_dual` (#34882) ESTIMATED CHANGES Modified Mathlib/Order/MinMax.lean - theorem Antitone.map_min - theorem Monotone.map_min Modified Mathlib/Order/SuccPred/Archimedean.lean - theorem BddBelow.exists_isLeast_of_nonempty - theorem LE.le.exists_pred_iterate - theorem Pred.rec - theorem Pred.rec_iff - theorem Pred.rec_linear - theorem Pred.rec_top + theorem StrictAnti.not_bddAbove_range_of_isSuccArchimedean - theorem StrictAnti.not_bddBelow_range_of_isPredArchimedean - theorem StrictAnti.not_bddBelow_range_of_isSuccArchimedean - theorem StrictMono.not_bddBelow_range_of_isPredArchimedean - theorem exists_pred_iterate_iff_le - theorem exists_pred_iterate_or - theorem le_total_of_directed - theorem lt_or_le_of_directed - theorem pred_max - theorem pred_min - theorem succ_max - theorem succ_min Modified Mathlib/Order/SuccPred/Basic.lean - theorem Order.pred_mono + theorem Order.succ_max + theorem Order.succ_min 2026-02-22 10:14:42 570ff68 chore: deprecate unused norm_cast lemma (#35604) This lemma does not appear to fire as a norm_cast lemma and outside of norm_cast, Nat.cast_sub should be used instead. ESTIMATED CHANGES Modified Mathlib/Tactic/Zify.lean +/- theorem Mathlib.Tactic.Zify.Nat.cast_sub_of_add_le 2026-02-22 05:35:55 601ec6b ci(emojibot): enable Zulip emoji reactions for mathlib4-nightly-testing (#35629) This PR enables the Zulip emojibot (CI status, merge/close, label reactions) for PRs in the `mathlib4-nightly-testing` repository. Changes: - Add `mathlib4-nightly-testing` to repository guards in all 4 emoji workflow files - Update hardcoded `ref: master` checkout refs to use `github.event.repository.default_branch` - Add `nightly-testing` branch to the merge-delegate workflow's push trigger - Extend the URL regex in `zulip_emoji_reactions.py` to match `mathlib4-nightly-testing` PR URLs The `ZULIP_API_KEY` secret is already configured in the nightly-testing repo. 🤖 Prepared with Claude Code ESTIMATED CHANGES Modified .github/workflows/zulip_emoji_ci_status.yaml Modified .github/workflows/zulip_emoji_closed_pr.yaml Modified .github/workflows/zulip_emoji_labelling.yaml Modified .github/workflows/zulip_emoji_merge_delegate.yaml Modified scripts/zulip_emoji_reactions.py 2026-02-22 04:49:51 7497624 feat(Geometry/Diffeology): diffeologies generated from sets of plots (#26973) Introduces diffeologies generated from sets of plots, shows that this defines a Galois insertion, and concludes that the diffeologies on a type form a complete lattice. ESTIMATED CHANGES Modified Mathlib/Geometry/Diffeology/Basic.lean + theorem DiffeologicalSpace.gc_generateFrom + def DiffeologicalSpace.generateFrom + theorem DiffeologicalSpace.generateFrom_iInter_of_generateFrom_eq_self + theorem DiffeologicalSpace.generateFrom_iInter_toPlots + theorem DiffeologicalSpace.generateFrom_iUnion + theorem DiffeologicalSpace.generateFrom_iUnion_toPlots + theorem DiffeologicalSpace.generateFrom_inter_toPlots + theorem DiffeologicalSpace.generateFrom_le_iff + theorem DiffeologicalSpace.generateFrom_le_iff_subset_toPlots + theorem DiffeologicalSpace.generateFrom_mono + theorem DiffeologicalSpace.generateFrom_sUnion + theorem DiffeologicalSpace.generateFrom_surjective + theorem DiffeologicalSpace.generateFrom_toPlots + theorem DiffeologicalSpace.generateFrom_union + theorem DiffeologicalSpace.generateFrom_union_toPlots + def DiffeologicalSpace.giGenerateFrom + theorem DiffeologicalSpace.injective_toPlots + theorem DiffeologicalSpace.isPlot_generatedFrom_of_mem + theorem DiffeologicalSpace.isPlot_iInf_iff + theorem DiffeologicalSpace.isPlot_inf_iff + theorem DiffeologicalSpace.isPlot_sInf_iff + theorem DiffeologicalSpace.le_def + theorem DiffeologicalSpace.le_iff' + theorem DiffeologicalSpace.le_iff + theorem DiffeologicalSpace.leftInverse_generateFrom + theorem DiffeologicalSpace.mkOfClosure_eq_generateFrom + theorem DiffeologicalSpace.self_subset_toPlots_generateFrom + def DiffeologicalSpace.toPlots + theorem DiffeologicalSpace.toPlots_iInf + theorem DiffeologicalSpace.toPlots_inf + theorem DiffeologicalSpace.toPlots_sInf 2026-02-22 00:30:25 35029c2 chore(scripts): update nolints.json (#35618) I am happy to remove some nolints for you! ESTIMATED CHANGES Modified scripts/nolints.json 2026-02-22 00:30:24 f50fac7 ci: create GitHub releases from version tags (#35425) ## Summary This PR adds a GitHub Actions workflow that automatically creates GitHub releases when version tags are pushed. Currently mathlib4 only has tags (no GitHub releases), which makes it harder to programmatically discover the latest release version. This mirrors the existing functionality in batteries' `docs-release.yml`, but without building/attaching docs. See also https://github.com/leanprover/cslib/pull/340 Closes https://github.com/leanprover-community/mathlib4/issues/11292 🤖 Prepared with Claude Code ESTIMATED CHANGES Added .github/workflows/release.yml 2026-02-21 23:47:15 0c5ce99 chore: weekly lints for 2026-02-16 (#35490) Changes suggested by the `mergeWithGrind` linter, from the weekly job posted at [#mathlib4 > Weekly linting log @ 💬](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Weekly.20linting.20log/near/574041907). As suggested by @Vierkantor, I have used the `linter.tacticAnalysis.mergeWithGrind` option to turn off the linter in two theorems: one where there was a comment about not making this change for performance reasons and another that appears to be a bug with the linter. Now that there is a precedent for using the `grind` interactive mode in Mathlib, I have used this in one proof where it results in fewer calls to `grind` and a clearer proof. ESTIMATED CHANGES Modified Mathlib/Algebra/BigOperators/Associated.lean Modified Mathlib/Algebra/BigOperators/Group/Finset/Basic.lean Modified Mathlib/Analysis/SpecialFunctions/Pow/NthRootLemmas.lean Modified Mathlib/Data/DFinsupp/Defs.lean Modified Mathlib/Data/Setoid/Partition.lean Modified Mathlib/Geometry/Euclidean/Angle/Bisector.lean Modified Mathlib/MeasureTheory/Integral/IntervalIntegral/AbsolutelyContinuousFun.lean Modified Mathlib/MeasureTheory/MeasurableSpace/Pi.lean Modified Mathlib/MeasureTheory/SetSemiring.lean Modified Mathlib/RingTheory/Polynomial/Morse.lean Modified Mathlib/RingTheory/Unramified/LocalRing.lean Modified MathlibTest/TacticAnalysis.lean + theorem Associated.prod' + structure Fact' - structure Fact + theorem forall_imp_iff_exists_imp' - theorem forall_imp_iff_exists_imp 2026-02-21 19:35:38 965b967 chore(CategoryTheory): fix indentation in markdown lists (#35460) Make sure to also indent subsequent lines of an item: this is required by the markdown specification (though not doc-gen), it expresses intent more clearly, and makes it easier to catch accidental misindentations. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Abelian/GrothendieckAxioms/Basic.lean Modified Mathlib/CategoryTheory/Abelian/Projective/Ext.lean Modified Mathlib/CategoryTheory/Bicategory/Functor/Cat/ObjectProperty.lean Modified Mathlib/CategoryTheory/Bicategory/Functor/StrictlyUnitary.lean Modified Mathlib/CategoryTheory/Bicategory/NaturalTransformation/Lax.lean Modified Mathlib/CategoryTheory/Conj.lean Modified Mathlib/CategoryTheory/Distributive/Monoidal.lean Modified Mathlib/CategoryTheory/FiberedCategory/Fibered.lean Modified Mathlib/CategoryTheory/Functor/Derived/Adjunction.lean Modified Mathlib/CategoryTheory/Functor/Derived/RightDerived.lean Modified Mathlib/CategoryTheory/Functor/KanExtension/DenseAt.lean Modified Mathlib/CategoryTheory/Grothendieck.lean Modified Mathlib/CategoryTheory/GuitartExact/Basic.lean Modified Mathlib/CategoryTheory/HomCongr.lean Modified Mathlib/CategoryTheory/Idempotents/Basic.lean Modified Mathlib/CategoryTheory/Idempotents/Karoubi.lean Modified Mathlib/CategoryTheory/Limits/Presheaf.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Pullback/Equifibered.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Pullback/IsPullback/Kernels.lean Modified Mathlib/CategoryTheory/LocallyCartesianClosed/ChosenPullbacksAlong.lean Modified Mathlib/CategoryTheory/Monoidal/DayConvolution/DayFunctor.lean Modified Mathlib/CategoryTheory/MorphismProperty/Representable.lean Modified Mathlib/CategoryTheory/ObjectProperty/ColimitsOfShape.lean Modified Mathlib/CategoryTheory/ObjectProperty/LimitsOfShape.lean Modified Mathlib/CategoryTheory/Presentable/OrthogonalReflection.lean Modified Mathlib/CategoryTheory/Shift/Adjunction.lean Modified Mathlib/CategoryTheory/Shift/CommShiftTwo.lean Modified Mathlib/CategoryTheory/Sites/CoverPreserving.lean Modified Mathlib/CategoryTheory/Sites/Descent/DescentData.lean Modified Mathlib/CategoryTheory/Sites/SheafHom.lean Modified Mathlib/CategoryTheory/Subobject/ArtinianObject.lean Modified Mathlib/CategoryTheory/Triangulated/SpectralObject.lean 2026-02-21 19:09:48 8a89759 style(CategoryTheory/Monoidal): add notation for whiskerLeftIso and whiskerRightIso (#35010) The PR adds the notation " ◁ᵢ " and " ▷ᵢ " for whiskerLeftIso and whiskerRightIso, respectively. Motivation: 1. There is a notation " ⊗ᵢ " for tensorIso; this is consistent. 2. In my other PR, I had to use whiskerLeftIso. I thought the notation would be neat. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Bicategory/Basic.lean Modified Mathlib/CategoryTheory/Monoidal/Category.lean 2026-02-21 17:33:08 4009dd5 feat(Topology/Connected/TotallyDisconnected): a preconnected totally disconnected space is subsingleton (#35450) This PR proves that a preconnected totally disconnected space must be subsingleton. ESTIMATED CHANGES Modified Mathlib/Topology/Connected/TotallyDisconnected.lean + theorem subsingleton_of_preconnected_totallyDisconnected 2026-02-21 14:17:23 378b908 feat(Order/Interval/Set/Basic): use `to_dual` (#35162) This PR tags basic theorems about `Ioo`, `Ioc`, `Ico` and `Icc` with `to_dual`. This is the other half of #33964. Notes: - I decided to add the theorems `Ico_subset_Ioo` and `Icc_subset_Ioc`, because they were missing. - For some proofs, the cast insertion heuristic failed, and I had to modify the proof slightly in order to make it work with `to_dual`. The two kinds of fixes were replacing `fun ⟨hx₁, hx₁⟩ ↦` with `fun hx ↦` and then using `hx.1` and `hx.2`, and inserting an explicit rewrite using `mem_Ioo` in order to eliminate the defEq abuse. I should investigate how to fix this, but that shouldn't block this PR. - There were some theorems that hold by `rfl`, but their dual does not. This confused the `@[defEq]` attribute, because we were erroneously setting it for these dual theorems. I've modified it so that it will first check if the attribute is applicable. - `left_notMem_Ioc` and `left_notMem_Ioo` used to have explicit arguments. I made these implicit which lines up with their dual version, and their `Finset` counterparts. ESTIMATED CHANGES Modified Mathlib/Order/Interval/Set/Basic.lean - theorem Set.Icc_bot - theorem Set.Icc_diff_Ioc_same - theorem Set.Icc_diff_right - theorem Set.Icc_eq_Ico_same_iff +/- theorem Set.Icc_eq_Ioc_same_iff +/- theorem Set.Icc_eq_Ioo_same_iff +/- theorem Set.Icc_ssubset_Icc_left - theorem Set.Icc_ssubset_Icc_right +/- theorem Set.Icc_subset_Icc - theorem Set.Icc_subset_Icc_right - theorem Set.Icc_subset_Ici_self - theorem Set.Icc_subset_Ico_right - theorem Set.Icc_subset_Iic_iff +/- theorem Set.Icc_subset_Iic_self - theorem Set.Icc_subset_Iio_iff + theorem Set.Icc_subset_Ioc + theorem Set.Icc_subset_Ioc_left +/- theorem Set.Icc_subset_Ioo +/- theorem Set.Ici_inter_Iic +/- theorem Set.Ici_inter_Iio - theorem Set.Ico_bot - theorem Set.Ico_eq_Icc_same_iff - theorem Set.Ico_eq_Ioc_same_iff - theorem Set.Ico_eq_Ioo_same_iff - theorem Set.Ico_inter_Ici - theorem Set.Ico_subset_Icc_self - theorem Set.Ico_subset_Ici_self +/- theorem Set.Ico_subset_Ico - theorem Set.Ico_subset_Ico_right +/- theorem Set.Ico_subset_Iio_self + theorem Set.Ico_subset_Ioo +/- theorem Set.Ico_subset_Ioo_left - theorem Set.Ico_union_right - theorem Set.Iic_inter_Ici - theorem Set.Iic_inter_Ioi - theorem Set.Iio_inter_Ici - theorem Set.Iio_inter_Ioi - theorem Set.Ioc_diff_Ioo_same - theorem Set.Ioc_diff_right +/- theorem Set.Ioc_eq_Icc_same_iff +/- theorem Set.Ioc_eq_Ico_same_iff +/- theorem Set.Ioc_eq_Ioo_same_iff - theorem Set.Ioc_eq_empty - theorem Set.Ioc_eq_empty_iff - theorem Set.Ioc_eq_empty_of_le - theorem Set.Ioc_insert_left - theorem Set.Ioc_ofDual - theorem Set.Ioc_self +/- theorem Set.Ioc_subset_Icc_self +/- theorem Set.Ioc_subset_Iic_self - theorem Set.Ioc_subset_Ioc - theorem Set.Ioc_subset_Ioc_right - theorem Set.Ioc_subset_Ioi_self - theorem Set.Ioc_subset_Ioo_right - theorem Set.Ioc_toDual +/- theorem Set.Ioi_inter_Iic +/- theorem Set.Ioi_inter_Iio +/- theorem Set.Ioo_eq_Icc_same_iff - theorem Set.Ioo_eq_Ico_same_iff +/- theorem Set.Ioo_eq_Ioc_same_iff - theorem Set.Ioo_insert_right +/- theorem Set.Ioo_subset_Ico_self +/- theorem Set.Ioo_subset_Iio_self - theorem Set.Ioo_subset_Ioc_self - theorem Set.Ioo_subset_Ioi_self +/- theorem Set.Ioo_subset_Ioo - theorem Set.Ioo_subset_Ioo_right - theorem Set.Ioo_union_right - theorem Set.eq_right_or_mem_Ioo_of_mem_Ioc +/- theorem Set.left_mem_Icc +/- theorem Set.left_mem_Ico +/- theorem Set.left_notMem_Ioc +/- theorem Set.left_notMem_Ioo - theorem Set.mem_Icc_of_Ico +/- theorem Set.mem_Icc_of_Ioc +/- theorem Set.mem_Icc_of_Ioo - theorem Set.mem_Ici_of_Ioi +/- theorem Set.mem_Ico_of_Ioo +/- theorem Set.mem_Iic_of_Iio - theorem Set.mem_Ioc_of_Ioo - theorem Set.nonempty_Ico_subtype - theorem Set.nonempty_Ioc - theorem Set.notMem_Icc_of_gt - theorem Set.notMem_Ico_of_ge - theorem Set.notMem_Ioc_of_gt - theorem Set.notMem_Ioo_of_ge - theorem Set.right_mem_Icc - theorem Set.right_mem_Ioc - theorem Set.right_notMem_Ico - theorem Set.right_notMem_Ioo +/- theorem Set.subsingleton_Icc_iff Modified Mathlib/Tactic/Translate/Core.lean 2026-02-21 12:45:00 90f6532 chore(Order/UpperLower/Basic): use `to_dual` (#34640) ESTIMATED CHANGES Modified Mathlib/Order/Interval/Set/LinearOrder.lean - theorem Set.compl_Ici - theorem Set.compl_Ioi - theorem Set.notMem_Iic - theorem Set.notMem_Iio Modified Mathlib/Order/Interval/Set/OrderEmbedding.lean +/- theorem OrderEmbedding.preimage_Ici - theorem OrderEmbedding.preimage_Iic - theorem OrderEmbedding.preimage_Iio +/- theorem OrderEmbedding.preimage_Ioi Modified Mathlib/Order/UpperLower/Basic.lean - theorem IsLowerSet.Iio_subset - theorem IsLowerSet.eq_empty_or_Iic - theorem IsLowerSet.lowerBounds_subset - theorem IsLowerSet.not_bddBelow - theorem IsUpperSet.eq_univ_or_Ioi - theorem OrderEmbedding.image_Iic - theorem OrderEmbedding.image_Iio - theorem isLowerSet_Iic - theorem isLowerSet_Iio - theorem isLowerSet_iff_Iic_subset - theorem isLowerSet_iff_Iio_subset +/- theorem isUpperSet_Ici +/- theorem isUpperSet_Ioi - theorem not_bddBelow_Iic - theorem not_bddBelow_Iio Modified Mathlib/Order/WellFounded.lean 2026-02-21 12:00:24 86eb6c2 feat(CategoryTheory/Triangulated): the heart of a t-structure (#35392) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/CategoryTheory/Triangulated/TStructure/Basic.lean + theorem CategoryTheory.Triangulated.TStructure.ge_iff_isGE + theorem CategoryTheory.Triangulated.TStructure.le_iff_isLE Added Mathlib/CategoryTheory/Triangulated/TStructure/Heart.lean + theorem CategoryTheory.Triangulated.TStructure.essImage_ιHeart + def CategoryTheory.Triangulated.TStructure.hasHeartFullSubcategory + def CategoryTheory.Triangulated.TStructure.heart + theorem CategoryTheory.Triangulated.TStructure.mem_heart_iff + def CategoryTheory.Triangulated.TStructure.ιHeart + theorem CategoryTheory.Triangulated.TStructure.ιHeart_obj_mem 2026-02-21 12:00:22 db93e32 feat(Data/Finsupp/Basic): add `comapDomain_embDomain` and generalize `comapDomain_surjective` (#34872) ESTIMATED CHANGES Modified Mathlib/Data/Finsupp/Basic.lean + theorem Finsupp.comapDomain_embDomain +/- theorem Finsupp.comapDomain_surjective 2026-02-21 12:00:21 307fa25 chore: weaken `PartialOrder` to `Preorder` in `IsOrderedMonoid` hypothesis (#34295) This PR attempts to remove `PartialOrder` assumption in `IsOrderedMonoid`. The main objective is to make [Finsupp.sum_le_sum](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Data/Finsupp/Order.html#Finsupp.sum_le_sum) available for preorder. ESTIMATED CHANGES Modified Mathlib/Algebra/BigOperators/Finprod.lean +/- theorem one_le_finprod' +/- theorem single_le_finprod Modified Mathlib/Algebra/Group/Subgroup/Order.lean +/- theorem Subsemigroup.strictMono_topEquiv Modified Mathlib/Algebra/Order/AddTorsor.lean Modified Mathlib/Algebra/Order/BigOperators/Group/Finset.lean +/- theorem Finset.apply_union_le_sum +/- theorem Finset.one_lt_prod' +/- theorem Finset.one_lt_prod +/- theorem Finset.one_lt_prod_iff +/- theorem Finset.one_lt_prod_iff_of_one_le +/- theorem Finset.prod_eq_one_iff_of_le_one' +/- theorem Finset.prod_eq_one_iff_of_one_le' +/- theorem Finset.prod_eq_prod_iff_of_le +/- theorem Finset.prod_lt_one' +/- theorem Finset.prod_lt_one +/- theorem Finset.prod_lt_one_iff_of_le_one +/- theorem Finset.prod_lt_prod' +/- theorem Finset.prod_lt_prod_of_nonempty' +/- theorem Finset.prod_lt_prod_of_subset' +/- theorem Finset.prod_sdiff_le_prod_sdiff +/- theorem Finset.prod_sdiff_lt_prod_sdiff +/- theorem Finset.single_lt_prod' +/- theorem Fintype.prod_eq_one_iff_of_le_one +/- theorem Fintype.prod_eq_one_iff_of_one_le Modified Mathlib/Algebra/Order/BigOperators/Group/List.lean +/- theorem List.one_lt_prod_of_one_lt +/- theorem List.single_le_prod Modified Mathlib/Algebra/Order/BigOperators/Group/Multiset.lean +/- theorem Multiset.all_one_of_le_one_le_of_prod_eq_one +/- theorem Multiset.le_prod_of_mem +/- theorem Multiset.prod_eq_one_iff Modified Mathlib/Algebra/Order/Group/Defs.lean Modified Mathlib/Algebra/Order/Group/Units.lean Modified Mathlib/Algebra/Order/GroupWithZero/Canonical.lean Modified Mathlib/Algebra/Order/Hom/Monoid.lean Modified Mathlib/Algebra/Order/Interval/Basic.lean +/- theorem NonemptyInterval.coe_pow_interval Modified Mathlib/Algebra/Order/Monoid/Associated.lean Modified Mathlib/Algebra/Order/Monoid/Basic.lean Modified Mathlib/Algebra/Order/Monoid/Canonical/Defs.lean Modified Mathlib/Algebra/Order/Monoid/Defs.lean Modified Mathlib/Algebra/Order/Monoid/OrderDual.lean Modified Mathlib/Algebra/Order/Monoid/Prod.lean Modified Mathlib/Algebra/Order/Monoid/Submonoid.lean Modified Mathlib/Algebra/Order/Monoid/TypeTags.lean Modified Mathlib/Algebra/Order/Monovary.lean Modified Mathlib/Algebra/Order/Pi.lean Modified Mathlib/Algebra/Order/UpperLower.lean +/- theorem IsLowerSet.div_left +/- theorem IsLowerSet.inv +/- theorem IsUpperSet.div_left +/- theorem IsUpperSet.inv Modified Mathlib/Analysis/Normed/Order/UpperLower.lean Modified Mathlib/Data/Finsupp/Order.lean Modified Mathlib/MeasureTheory/Function/SimpleFunc.lean Modified Mathlib/Order/Filter/AtTopBot/Monoid.lean Modified Mathlib/Order/Filter/Germ/OrderedMonoid.lean Modified Mathlib/Order/Filter/IsBounded.lean +/- theorem Filter.isBoundedUnder_ge_inv +/- theorem Filter.isBoundedUnder_le_inv Modified Mathlib/Order/Filter/Pointwise.lean +/- theorem Filter.inv_atTop Modified Mathlib/Tactic/Positivity/Finset.lean Modified Mathlib/Topology/Algebra/InfiniteSum/Order.lean +/- theorem hasProd_one_iff_of_one_le Modified Mathlib/Topology/Algebra/Order/UpperLower.lean 2026-02-21 11:43:33 970fe7b feat(RingTheory/Lasker): prove first uniqueness theorem for primary decomposition (#34699) This PR proves the first uniqueness theorem for primary decomposition: In any minimal primary decomposition `I = ⨅ i, q_i`, the ideals `√(q_i : M)` are exactly the associated primes of `I`. ESTIMATED CHANGES Modified Mathlib/RingTheory/IsPrimary.lean + theorem Submodule.IsPrimary.radical_colon_singleton_eq_ite Modified Mathlib/RingTheory/Lasker.lean + theorem Submodule.IsMinimalPrimaryDecomposition.mem_image_radical_colon_iff 2026-02-21 10:52:33 6c8ca1e refactor(QuadraticForm/Complex): generalize to algebraically closed field (#34158) A free generalization since the only place the property of C is used is to get a square root. This can still be further generalized to quadratically closed field, but we don't have that definition yet. Also did small clean up and removed a erw. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/LinearAlgebra/QuadraticForm/AlgClosed.lean + theorem QuadraticForm.equivalent_of_isAlgClosed + theorem QuadraticForm.equivalent_weightedSumSquares_of_isAlgClosed Modified Mathlib/LinearAlgebra/QuadraticForm/Complex.lean +/- theorem QuadraticForm.complex_equivalent Modified Mathlib/LinearAlgebra/QuadraticForm/IsometryEquiv.lean + def QuadraticForm.isometryEquivWeightedSumSquaresWeightedSumSquares + def QuadraticForm.weightedSumSquaresCongr 2026-02-21 10:36:02 09c711f feat(CategoryTheory/Sites): descent data, given as coalgebras (#35452) Let `F : LocallyDiscrete Cᵒᵖ ⥤ᵖ Adj Cat` be a pseudofunctor to the bicategory of adjunctions in `Cat`. In particular, for any morphism `g : X ⟶ Y` in `C`, we have an adjunction `(g^*, g_*)` between a pullback functor and a pushforward functor. In this PR, given a family of morphisms `f i : X i ⟶ S` indexed by a type `ι` in `C`, we introduce a category `F.DescentDataAsCoalgebra f` of descent data relative to the morphisms `f i`, where the objects are described as a family of objects `obj i` over `X i`, and the morphisms relating them are described as morphisms `obj i₁ ⟶ (f i₁)^* (f i₂)_* (obj i₂)`, similarly as Eilenberg-Moore coalgebras. Indeed, when the index type `ι` contains a unique element, we show that `F.DescentDataAsCoalgebra (fun (i : ι) ↦ f` identifies to the category of coalgebras for the comonad attached to the adjunction `(F.map f.op.toLoc).adj`. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/CategoryTheory/Bicategory/Adjunction/Cat.lean + theorem CategoryTheory.Bicategory.Adj.counit_naturality + theorem CategoryTheory.Bicategory.Adj.left_triangle_components + theorem CategoryTheory.Bicategory.Adj.right_triangle_components + theorem CategoryTheory.Bicategory.Adj.unit_naturality Added Mathlib/CategoryTheory/Sites/Descent/DescentDataAsCoalgebra.lean + structure CategoryTheory.Pseudofunctor.DescentDataAsCoalgebra.Hom + def CategoryTheory.Pseudofunctor.DescentDataAsCoalgebra.coalgebraEquivalence + theorem CategoryTheory.Pseudofunctor.DescentDataAsCoalgebra.comp_hom + theorem CategoryTheory.Pseudofunctor.DescentDataAsCoalgebra.hom_ext + theorem CategoryTheory.Pseudofunctor.DescentDataAsCoalgebra.id_hom + def CategoryTheory.Pseudofunctor.DescentDataAsCoalgebra.isoMk + structure CategoryTheory.Pseudofunctor.DescentDataAsCoalgebra + theorem CategoryTheory.Pseudofunctor.isEquivalence_toDescentDataAsCoalgebra_iff_isEquivalence_comonadComparison + def CategoryTheory.Pseudofunctor.toDescentDataAsCoalgebra + def CategoryTheory.Pseudofunctor.toDescentDataAsCoalgebraCompCoalgebraEquivalenceFunctorIso 2026-02-21 10:36:00 aa0b441 style(Archive): avoid using > or ≥ (#35346) Prefer to use < or ≤ instead. For consistently with mathlib style; extracted from #12933. ESTIMATED CHANGES Modified Archive/Imo/Imo1960Q1.lean Modified Archive/Imo/Imo1988Q6.lean Modified Archive/Imo/Imo2005Q3.lean +/- theorem Imo2005Q3.key_insight +/- theorem imo2005_q3 Modified Archive/Imo/Imo2008Q2.lean Modified Archive/Imo/Imo2008Q3.lean Modified Archive/Imo/Imo2008Q4.lean +/- theorem imo2008_q4 Modified Archive/Imo/Imo2019Q4.lean +/- theorem imo2019_q4 Modified Archive/Wiedijk100Theorems/AreaOfACircle.lean Modified Archive/Wiedijk100Theorems/BallotProblem.lean 2026-02-21 10:17:51 325d475 feat(CategoryTheory/Limits): chosen pullbacks (#35393) Given two morphisms `f₁ : X₁ ⟶ S` and `f₂ : X₂ ⟶ S`, we introduce a structure `ChosenPullback f₁ f₂` which contains the data of a pullback of `f₁` and `f₂`. A variant for triple wide pullbacks is also introduced. This will be used in the study of the effectiveness of the descent #24434. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Limits/Shapes/Pullback/ChosenPullback.lean + theorem CategoryTheory.Limits.ChosenPullback.LiftStruct.nonempty + theorem CategoryTheory.Limits.ChosenPullback.LiftStruct.w + structure CategoryTheory.Limits.ChosenPullback.LiftStruct + theorem CategoryTheory.Limits.ChosenPullback.hom_ext + theorem CategoryTheory.Limits.ChosenPullback.hp₂ + theorem CategoryTheory.Limits.ChosenPullback.isPullback + structure CategoryTheory.Limits.ChosenPullback + theorem CategoryTheory.Limits.ChosenPullback₃.exists_lift + theorem CategoryTheory.Limits.ChosenPullback₃.hom_ext + theorem CategoryTheory.Limits.ChosenPullback₃.isPullback₁ + theorem CategoryTheory.Limits.ChosenPullback₃.isPullback₂ + theorem CategoryTheory.Limits.ChosenPullback₃.isPullback₃ + def CategoryTheory.Limits.ChosenPullback₃.p₁₂ + theorem CategoryTheory.Limits.ChosenPullback₃.p₁₂_eq_lift + theorem CategoryTheory.Limits.ChosenPullback₃.p₁₂_p + theorem CategoryTheory.Limits.ChosenPullback₃.p₁₂_p₁ + theorem CategoryTheory.Limits.ChosenPullback₃.p₁₂_p₂ + def CategoryTheory.Limits.ChosenPullback₃.p₁₃ + theorem CategoryTheory.Limits.ChosenPullback₃.p₁₃_eq_lift + theorem CategoryTheory.Limits.ChosenPullback₃.p₁₃_p + theorem CategoryTheory.Limits.ChosenPullback₃.p₁₃_p₁ + theorem CategoryTheory.Limits.ChosenPullback₃.p₁₃_p₃ + def CategoryTheory.Limits.ChosenPullback₃.p₂ + def CategoryTheory.Limits.ChosenPullback₃.p₂₃ + theorem CategoryTheory.Limits.ChosenPullback₃.p₂₃_eq_lift + theorem CategoryTheory.Limits.ChosenPullback₃.p₂₃_p + theorem CategoryTheory.Limits.ChosenPullback₃.p₂₃_p₂ + theorem CategoryTheory.Limits.ChosenPullback₃.p₂₃_p₃ + theorem CategoryTheory.Limits.ChosenPullback₃.w₁ + theorem CategoryTheory.Limits.ChosenPullback₃.w₂ + theorem CategoryTheory.Limits.ChosenPullback₃.w₃ + structure CategoryTheory.Limits.ChosenPullback₃ Modified Mathlib/CategoryTheory/Limits/Shapes/Pullback/IsPullback/Basic.lean + theorem CategoryTheory.IsPullback.mk' + theorem CategoryTheory.IsPushout.mk' 2026-02-21 10:06:47 384f8ee feat(CategoryTheory/Types): epimorphisms are stable under base change (#35525) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Types/Epimorphisms.lean 2026-02-21 08:11:27 0f1dd75 chore(Algebra/BigOperators/Finsupp/Basic): golf `liftAddHom` (#35570) ESTIMATED CHANGES Modified Mathlib/Algebra/BigOperators/Finsupp/Basic.lean 2026-02-21 08:11:25 a5d8c2e chore: golf proofs (#35543) The goal of this golfing PR is to decrease the number of times lemmas are called explicitly (replacing calls to lemmas with calls to tactics). Any decrease in compilation time is a welcome side effect, although it is not a primary objective. Trace profiling results (differences <30 ms considered measurement noise): * `Finset.restrict₂_preimage`: unchanged 🎉 * `LinearMap.separatingLeft_toLinearMap₂'_iff_det_ne_zero`: unchanged 🎉 * `LinearMap.separatingRight_toLinearMap₂'_iff_det_ne_zero`: unchanged 🎉 * `IsLocalization.isMaximal_iff_isMaximal_disjoint`: 155 ms before, 123 ms after 🎉 * `MvPolynomial.pderiv_inr_universalFactorizationMap_X`: 2019 ms before, 1950 ms after 🎉 This golfing PR is batched under the following guidelines: * Up to ~5 changed files per PR * Up to ~25 changed declarations per PR * Up to ~100 changed lines per PR ESTIMATED CHANGES Modified Mathlib/Data/Finset/Pi.lean Modified Mathlib/LinearAlgebra/Matrix/SesquilinearForm.lean Modified Mathlib/RingTheory/Jacobson/Ring.lean Modified Mathlib/RingTheory/Polynomial/UniversalFactorizationRing.lean 2026-02-21 07:42:27 d3b9d3b style(Topology/ContinuousOn): fix typo in theorem names (#35596) Fix typo in two theorem names that had "continouousOn" instead of "continuousOn". ESTIMATED CHANGES Modified Mathlib/Topology/ContinuousOn.lean - theorem continouousOn_union_iff_of_isClosed - theorem continouousOn_union_iff_of_isOpen + theorem continuousOn_union_iff_of_isClosed + theorem continuousOn_union_iff_of_isOpen 2026-02-20 20:08:11 eeb0516 feat(Algebra/Algebra/Spectrum/Basic): resolvent set of negative element (#35184) This PR adds a basic API lemma `resolventSet_neg` stating that `resolventSet R (-a) = -resolventSet R a`. ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/Spectrum/Basic.lean + theorem resolventSet_neg +/- theorem spectrum.neg_eq 2026-02-20 18:02:59 332fc33 fix: improve the `Lean.Grind.OrderedAdd` instance (#35563) This PR makes changes the entry point of the `grind` class `Lean.Grind.OrderedAdd` to be `IsOrderedCancelAddMonoid`, rather than the more granular type classes `AddRightMono` and `AddRightReflectLE`. Note that the doc-strings of these type classes explicitly say not to use them. This should improve `grind` performance. See [#general > grind failure/performance issue: timing out on slow instance](https://leanprover.zulipchat.com/#narrow/channel/113488-general/topic/grind.20failure.2Fperformance.20issue.3A.20timing.20out.20on.20slow.20instance/with/574912682) ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Monoid/Defs.lean Modified Mathlib/Algebra/Order/Monoid/Unbundled/Defs.lean Modified Mathlib/MeasureTheory/Function/L1Space/Integrable.lean 2026-02-20 18:02:57 f250304 feat(LinearAlgebra/Matrix): convolutive intrinsic star ring on matrices (#34997) Now that we have the type synonym `WithConv`, we can define a star ring structure on `WithConv (Matrix m n R)` given by the Hadamard product and the intrinsic star (intrinsic star here means `x.map star`). `WithConv (Matrix m n R)` is star-algebraically equivalent to `WithConv ((n → R) →ₗ[R] (m → R))` (will be done in a later PR). ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/LinearAlgebra/Matrix/WithConv.lean + theorem convMul_def + theorem convOne_def + theorem intrinsicStar_def 2026-02-20 18:02:55 cf0ed14 doc(CategoryTheory/Bicategory/Functor): clean up docstrings (#34978) Fix doc-only inconsistencies across bicategory functor files. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Bicategory/Functor/Cat/ObjectProperty.lean Modified Mathlib/CategoryTheory/Bicategory/Functor/Lax.lean Modified Mathlib/CategoryTheory/Bicategory/Functor/LocallyDiscrete.lean - def CategoryTheory.Functor.toPseudoFunctor' - def CategoryTheory.Functor.toPseudoFunctor + def CategoryTheory.Functor.toPseudofunctor' + def CategoryTheory.Functor.toPseudofunctor Modified Mathlib/CategoryTheory/Bicategory/Functor/Oplax.lean Modified Mathlib/CategoryTheory/Bicategory/Functor/Prelax.lean Modified Mathlib/CategoryTheory/Bicategory/Functor/Pseudofunctor.lean Modified Mathlib/CategoryTheory/Bicategory/Functor/StrictPseudofunctor.lean Modified Mathlib/CategoryTheory/Bicategory/Functor/StrictlyUnitary.lean 2026-02-20 17:09:22 f2bcf8c chore: golf using `simp` (and non-squeeze terminal `simp`:s) (#35156) The goal of this golfing PR is to decrease the number of times lemmas are called explicitly (replacing calls to lemmas with calls to tactics). Any decrease in compilation time is a welcome side effect, although it is not a primary objective. Trace profiling results (shown if ≥10 ms before or after): * `Module.FinitePresentation.exists_lift_of_isLocalizedModule`: 940 ms before, 787 ms after 🎉 * `CategoryTheory.Comon.tensorObj_comul`: 38 ms before, <10 ms after 🎉 * `SimpleGraph.Walk.darts_getElem_eq_getVert`: 376 ms before, <10 ms after 🎉 * `ZNum.cmp_to_int`: 108 ms before, 79 ms after 🎉 * `TensorProduct.finsuppLeft_smul'`: 134 ms before, 31 ms after 🎉 * `TensorProduct.finsuppScalarRight_smul`: 138 ms before, 26 ms after 🎉 * `NumberField.InfinitePlace.nat_card_stabilizer_eq_one_or_two`: 115 ms before, 112 ms after 🎉 * `Algebra.adjoin_restrictScalars`: 34 ms before, 26 ms after 🎉 * `AddCircle.card_torsion_le_of_isSMulRegular_int`: 460 ms before, 238 ms after 🎉 This golfing PR is batched under the following guidelines: * Up to ~5 changed files per PR * Up to ~25 changed declarations per PR * Up to ~100 changed lines per PR ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Monoidal/Cartesian/Mon_.lean Modified Mathlib/CategoryTheory/Monoidal/Comon_.lean Modified Mathlib/Data/Num/ZNum.lean Modified Mathlib/LinearAlgebra/DirectSum/Finsupp.lean Modified Mathlib/LinearAlgebra/Matrix/Kronecker.lean Modified Mathlib/NumberTheory/NumberField/InfinitePlace/Ramification.lean Modified Mathlib/RingTheory/Adjoin/Tower.lean 2026-02-20 17:09:21 858b931 chore(Order/Hom/Basic): remove unused OrderDual instances (#35111) This PR removes `OrderHomClass.toOrderHomClassOrderDual` and `OrderIsoClass.toOrderIsoClassOrderDual`. These instances are unused throughout mathlib. These instances also require hacky local instances to work under https://github.com/leanprover/lean4/pull/12286. If they are both unused and unwanted, it is simpler to delete them on master rather than working around the issue. 🤖 Prepared with Claude Code ESTIMATED CHANGES Modified Mathlib/Order/Hom/Basic.lean 2026-02-20 16:02:22 0b16e4a chore(CategoryTheory/Triangulated): remove `someOctahedron'` (#35501) The now duplicate definition `someOctahedron'` is removed. (The reason for its existence is related to some bug which occurred at the time of the port to Lean 3 #3072.) (No deprecated alias is added as it was only part of the implementation of `someOctahedron`, and we may want to reuse the name for #35496.) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Triangulated/Triangulated.lean - def CategoryTheory.Triangulated.someOctahedron' +/- def CategoryTheory.Triangulated.someOctahedron 2026-02-20 13:54:34 8dbc02d chore: delete deprecated modules up to 20 August 2025 (#35562) As the deprecations are over 6 months old now. ESTIMATED CHANGES Modified Mathlib.lean Deleted Mathlib/Algebra/Order/PartialSups.lean Deleted Mathlib/AlgebraicTopology/SimplexCategory/Augmented.lean Deleted Mathlib/Analysis/InnerProductSpace/Projection.lean Deleted Mathlib/CategoryTheory/Monoidal/Limits.lean Deleted Mathlib/Lean/Message.lean Deleted Mathlib/LinearAlgebra/PerfectPairing/Matrix.lean - theorem Matrix.toPerfectPairing - theorem Matrix.toPerfectPairing_apply_apply Deleted Mathlib/Probability/Integration.lean Deleted Mathlib/RingTheory/Localization/AtPrime.lean Deleted Mathlib/RingTheory/Valuation/ValuativeRel.lean Deleted Mathlib/Std/Data/HashMap.lean - def Std.HashMap.mapVal Deleted Mathlib/Topology/Compactness/Exterior.lean Deleted Mathlib/Topology/Exterior.lean 2026-02-20 12:09:50 5eb723f doc(CategoryTheory/Limits/Constructions/FiniteProductsOfBinaryProducts): fix names in docstrings (#35566) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Limits/Constructions/FiniteProductsOfBinaryProducts.lean 2026-02-20 11:49:26 0e15a88 doc(CategoryTheory/Bicategory/NaturalTransformation): tidy docstrings (#35274) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Bicategory/NaturalTransformation/Lax.lean Modified Mathlib/CategoryTheory/Bicategory/NaturalTransformation/Oplax.lean Modified Mathlib/CategoryTheory/Bicategory/NaturalTransformation/Pseudo.lean 2026-02-20 10:48:38 40724a2 feat(Algebra): right analogs for `RightCancelMonoid` and finite cancellative monoids are groups (#35187) This PR adds missing `RightCancelMonoid` statements for every `LeftCancelMonoid` statement. It is also proved that a finite left or right cancellative monoid is a group. ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Action/Defs.lean Modified Mathlib/Algebra/Group/Ext.lean + theorem CancelMonoid.toRightCancelMonoid_injective Modified Mathlib/Algebra/GroupWithZero/NonZeroDivisors.lean + theorem mem_nonZeroDivisors_iff_left + theorem nonZeroDivisorsRight_eq_left + theorem notMem_nonZeroDivisors_iff_left Modified Mathlib/GroupTheory/OrderOfElement.lean + theorem Commute.orderOf_mul_eq_left_of_forall_prime_mul_dvd + theorem RightCancelMonoid.Nat.card_submonoidPowers + theorem RightCancelMonoid.finite_powers + theorem RightCancelMonoid.infinite_not_isOfFinOrder + theorem RightCancelMonoid.infinite_powers + theorem RightCancelMonoid.injective_pow_iff_not_isOfFinOrder + theorem RightCancelMonoid.pow_eq_pow_iff_modEq + theorem RightCancelMonoid.pow_inj_iff_of_orderOf_eq_zero + theorem RightCancelMonoid.pow_inj_mod 2026-02-20 08:54:45 d081338 chore(NumberTheory/MahlerMeasure): turn `BoxPoly` notation into a def (#34455) ESTIMATED CHANGES Modified Mathlib/NumberTheory/MahlerMeasure.lean + def Polynomial.boxPoly - theorem Polynomial.card_eq_of_natDegree_le_of_coeff_le + theorem Polynomial.ncard_boxPoly 2026-02-20 07:07:49 fdca716 feat: equivalent conditions for `p ≤ q` for projections in a C⋆-algebra (#35204) The follow are equivalent for star projections (i.e., selfadjoint idempotent elements) `p` and `q` in a C⋆-algebra `A`. 1. `p ≤ q` 2. `p * q = p` 3. `q * p = p` 4. `q - p` is a star projection 5. `q - p` is idempotent ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/Unitization.lean + theorem Unitization.isStarProjection_inr_iff Modified Mathlib/Analysis/CStarAlgebra/Projection.lean + theorem IsStarProjection.commute_of_le + theorem IsStarProjection.le_iff_idempotent_sub + theorem IsStarProjection.le_iff_mul_eq_left + theorem IsStarProjection.le_iff_mul_eq_right + theorem IsStarProjection.le_iff_sub + theorem IsStarProjection.le_tfae Modified Mathlib/Analysis/SpecialFunctions/ContinuousFunctionalCalculus/Rpow/Isometric.lean + theorem CFC.IsSelfAdjoint.norm_mul_mul_self_of_nonneg' + theorem CFC.IsSelfAdjoint.norm_mul_mul_self_of_nonneg + theorem CFC.norm_mul_mul_star_self_of_nonneg + theorem CFC.norm_star_mul_mul_self_of_nonneg 2026-02-20 00:22:21 08657ed chore: remove deprecated material from CGT (#35550) The modules have been deprecated for 6 months. See #28063. ESTIMATED CHANGES Modified Counterexamples.lean Deleted Counterexamples/GameMultiplication.lean - theorem Counterexample.PGame.mul_not_lift - theorem Counterexample.PGame.neg_star' - def Counterexample.PGame.star' - theorem Counterexample.PGame.star'_equiv_star - theorem Counterexample.PGame.star'_mul_star_lf - theorem Counterexample.PGame.star_sq Modified Mathlib.lean Deleted Mathlib/SetTheory/Game/Basic.lean - def SetTheory.Game.Fuzzy - def SetTheory.Game.LF - theorem SetTheory.Game.add_lf_add_left - theorem SetTheory.Game.add_lf_add_right - theorem SetTheory.Game.bddAbove_of_small - theorem SetTheory.Game.bddAbove_range_of_small - theorem SetTheory.Game.bddBelow_of_small - theorem SetTheory.Game.bddBelow_range_of_small - theorem SetTheory.Game.not_le - theorem SetTheory.Game.not_lf - theorem SetTheory.Game.zero_def - inductive SetTheory.PGame.InvTy - theorem SetTheory.PGame.equiv_iff_game_eq - theorem SetTheory.PGame.fuzzy_iff_game_fuzzy - def SetTheory.PGame.inv' - def SetTheory.PGame.inv'One - def SetTheory.PGame.inv'Zero - theorem SetTheory.PGame.inv'_one - theorem SetTheory.PGame.inv'_one_equiv - theorem SetTheory.PGame.inv'_zero_equiv - def SetTheory.PGame.invOne - def SetTheory.PGame.invVal - theorem SetTheory.PGame.invVal_isEmpty - theorem SetTheory.PGame.inv_eq_of_equiv_zero - theorem SetTheory.PGame.inv_eq_of_lf_zero - theorem SetTheory.PGame.inv_eq_of_pos - theorem SetTheory.PGame.inv_one - theorem SetTheory.PGame.inv_one_equiv - theorem SetTheory.PGame.inv_zero - theorem SetTheory.PGame.le_iff_game_le - theorem SetTheory.PGame.leftMoves_mul - theorem SetTheory.PGame.leftMoves_mul_cases - theorem SetTheory.PGame.leftMoves_mul_iff - theorem SetTheory.PGame.left_distrib_equiv - theorem SetTheory.PGame.lf_iff_game_lf - theorem SetTheory.PGame.lt_iff_game_lt - theorem SetTheory.PGame.mk_mul_moveLeft_inl - theorem SetTheory.PGame.mk_mul_moveLeft_inr - theorem SetTheory.PGame.mk_mul_moveRight_inl - theorem SetTheory.PGame.mk_mul_moveRight_inr - def SetTheory.PGame.mulCommRelabelling - def SetTheory.PGame.mulNegRelabelling - def SetTheory.PGame.mulOneRelabelling - def SetTheory.PGame.mulOption - theorem SetTheory.PGame.mulOption_neg_neg - theorem SetTheory.PGame.mulOption_symm - def SetTheory.PGame.mulZeroRelabelling - theorem SetTheory.PGame.mul_assoc_equiv - theorem SetTheory.PGame.mul_comm_equiv - theorem SetTheory.PGame.mul_moveLeft_inl - theorem SetTheory.PGame.mul_moveLeft_inr - theorem SetTheory.PGame.mul_moveRight_inl - theorem SetTheory.PGame.mul_moveRight_inr - theorem SetTheory.PGame.mul_neg - theorem SetTheory.PGame.mul_one_equiv - theorem SetTheory.PGame.mul_zero_equiv - def SetTheory.PGame.negMulRelabelling - theorem SetTheory.PGame.neg_mk_mul_moveLeft_inl - theorem SetTheory.PGame.neg_mk_mul_moveLeft_inr - theorem SetTheory.PGame.neg_mk_mul_moveRight_inl - theorem SetTheory.PGame.neg_mk_mul_moveRight_inr - theorem SetTheory.PGame.neg_mul - def SetTheory.PGame.oneMulRelabelling - theorem SetTheory.PGame.one_mul_equiv - theorem SetTheory.PGame.quot_add - theorem SetTheory.PGame.quot_eq_of_mk'_quot_eq - theorem SetTheory.PGame.quot_left_distrib - theorem SetTheory.PGame.quot_left_distrib_sub - theorem SetTheory.PGame.quot_mul_assoc - theorem SetTheory.PGame.quot_mul_comm - theorem SetTheory.PGame.quot_mul_neg - theorem SetTheory.PGame.quot_mul_one - theorem SetTheory.PGame.quot_mul_zero - theorem SetTheory.PGame.quot_natCast - theorem SetTheory.PGame.quot_neg - theorem SetTheory.PGame.quot_neg_mul - theorem SetTheory.PGame.quot_neg_mul_neg - theorem SetTheory.PGame.quot_one - theorem SetTheory.PGame.quot_one_mul - theorem SetTheory.PGame.quot_right_distrib - theorem SetTheory.PGame.quot_right_distrib_sub - theorem SetTheory.PGame.quot_sub - theorem SetTheory.PGame.quot_zero - theorem SetTheory.PGame.quot_zero_mul - theorem SetTheory.PGame.rightMoves_mul - theorem SetTheory.PGame.rightMoves_mul_cases - theorem SetTheory.PGame.rightMoves_mul_iff - theorem SetTheory.PGame.right_distrib_equiv - def SetTheory.PGame.toLeftMovesMul - def SetTheory.PGame.toRightMovesMul - def SetTheory.PGame.zeroMulRelabelling - theorem SetTheory.PGame.zero_lf_inv' - theorem SetTheory.PGame.zero_mul_equiv Deleted Mathlib/SetTheory/Game/Birthday.lean - theorem SetTheory.Game.birthday_add_le - theorem SetTheory.Game.birthday_eq_pGameBirthday - theorem SetTheory.Game.birthday_eq_zero - theorem SetTheory.Game.birthday_natCast - theorem SetTheory.Game.birthday_neg - theorem SetTheory.Game.birthday_ofNat - theorem SetTheory.Game.birthday_one - theorem SetTheory.Game.birthday_ordinalToGame - theorem SetTheory.Game.birthday_quot_le_pGameBirthday - theorem SetTheory.Game.birthday_star - theorem SetTheory.Game.birthday_sub_le - theorem SetTheory.Game.birthday_zero - theorem SetTheory.Game.le_birthday - theorem SetTheory.Game.neg_birthday_le - theorem SetTheory.Game.small_setOf_birthday_lt - theorem SetTheory.PGame.Relabelling.birthday_congr - theorem SetTheory.PGame.birthday_add - theorem SetTheory.PGame.birthday_def - theorem SetTheory.PGame.birthday_eq_zero - theorem SetTheory.PGame.birthday_moveLeft_lt - theorem SetTheory.PGame.birthday_moveRight_lt - theorem SetTheory.PGame.birthday_natCast - theorem SetTheory.PGame.birthday_neg - theorem SetTheory.PGame.birthday_one - theorem SetTheory.PGame.birthday_ordinalToPGame - theorem SetTheory.PGame.birthday_star - theorem SetTheory.PGame.birthday_sub - theorem SetTheory.PGame.birthday_zero - theorem SetTheory.PGame.le_birthday - theorem SetTheory.PGame.lt_birthday_iff - theorem SetTheory.PGame.neg_birthday_le Deleted Mathlib/SetTheory/Game/Domineering.lean - theorem SetTheory.PGame.Domineering.card_of_mem_left - theorem SetTheory.PGame.Domineering.card_of_mem_right - theorem SetTheory.PGame.Domineering.fst_pred_mem_erase_of_mem_right - def SetTheory.PGame.Domineering.left - theorem SetTheory.PGame.Domineering.mem_left - theorem SetTheory.PGame.Domineering.mem_right - def SetTheory.PGame.Domineering.moveLeft - theorem SetTheory.PGame.Domineering.moveLeft_card - theorem SetTheory.PGame.Domineering.moveLeft_smaller - def SetTheory.PGame.Domineering.moveRight - theorem SetTheory.PGame.Domineering.moveRight_card - theorem SetTheory.PGame.Domineering.moveRight_smaller - def SetTheory.PGame.Domineering.right - def SetTheory.PGame.Domineering.shiftRight - def SetTheory.PGame.Domineering.shiftUp - theorem SetTheory.PGame.Domineering.snd_pred_mem_erase_of_mem_left - def SetTheory.PGame.domineering.L - def SetTheory.PGame.domineering.one - def SetTheory.PGame.domineering Deleted Mathlib/SetTheory/Game/Impartial.lean - theorem SetTheory.PGame.Impartial.add_self - theorem SetTheory.PGame.Impartial.equiv_iff_add_equiv_zero' - theorem SetTheory.PGame.Impartial.equiv_iff_add_equiv_zero - theorem SetTheory.PGame.Impartial.equiv_or_fuzzy_zero - theorem SetTheory.PGame.Impartial.equiv_zero_iff_ge - theorem SetTheory.PGame.Impartial.equiv_zero_iff_le - theorem SetTheory.PGame.Impartial.exists_left_move_equiv_iff_fuzzy_zero - theorem SetTheory.PGame.Impartial.exists_right_move_equiv_iff_fuzzy_zero - theorem SetTheory.PGame.Impartial.forall_leftMoves_fuzzy_iff_equiv_zero - theorem SetTheory.PGame.Impartial.forall_rightMoves_fuzzy_iff_equiv_zero - theorem SetTheory.PGame.Impartial.fuzzy_zero_iff_gf - theorem SetTheory.PGame.Impartial.fuzzy_zero_iff_lf - theorem SetTheory.PGame.Impartial.impartial_congr - theorem SetTheory.PGame.Impartial.le_zero_iff - theorem SetTheory.PGame.Impartial.lf_zero_iff - theorem SetTheory.PGame.Impartial.mk'_add_self - theorem SetTheory.PGame.Impartial.mk'_neg_equiv_self - theorem SetTheory.PGame.Impartial.neg_equiv_self - theorem SetTheory.PGame.Impartial.nonneg - theorem SetTheory.PGame.Impartial.nonpos - theorem SetTheory.PGame.Impartial.not_equiv_zero_iff - theorem SetTheory.PGame.Impartial.not_fuzzy_zero_iff - theorem SetTheory.PGame.impartial_def Deleted Mathlib/SetTheory/Game/Nim.lean - theorem SetTheory.PGame.default_nim_one_leftMoves_eq - theorem SetTheory.PGame.default_nim_one_rightMoves_eq - theorem SetTheory.PGame.equiv_nim_grundyValue - theorem SetTheory.PGame.exists_grundyValue_moveLeft_of_lt - theorem SetTheory.PGame.exists_grundyValue_moveRight_of_lt - theorem SetTheory.PGame.grundyValue_add - theorem SetTheory.PGame.grundyValue_eq_iff_equiv - theorem SetTheory.PGame.grundyValue_eq_iff_equiv_nim - theorem SetTheory.PGame.grundyValue_eq_sInf_moveLeft - theorem SetTheory.PGame.grundyValue_eq_sInf_moveRight - theorem SetTheory.PGame.grundyValue_iff_equiv_zero - theorem SetTheory.PGame.grundyValue_le_of_forall_moveLeft - theorem SetTheory.PGame.grundyValue_le_of_forall_moveRight - theorem SetTheory.PGame.grundyValue_ne_moveLeft - theorem SetTheory.PGame.grundyValue_ne_moveRight - theorem SetTheory.PGame.grundyValue_neg - theorem SetTheory.PGame.grundyValue_nim_add_nim - theorem SetTheory.PGame.grundyValue_star - theorem SetTheory.PGame.grundyValue_zero - theorem SetTheory.PGame.le_grundyValue_of_Iio_subset_moveLeft - theorem SetTheory.PGame.le_grundyValue_of_Iio_subset_moveRight - def SetTheory.PGame.leftMovesNimRecOn - theorem SetTheory.PGame.leftMoves_nim - theorem SetTheory.PGame.moveLeft_nim - theorem SetTheory.PGame.moveLeft_nim_heq - theorem SetTheory.PGame.moveLeft_toLeftMovesNim - theorem SetTheory.PGame.moveRight_nim - theorem SetTheory.PGame.moveRight_nim_heq - theorem SetTheory.PGame.moveRight_toRightMovesNim - theorem SetTheory.PGame.neg_nim - def SetTheory.PGame.nimOneRelabelling - def SetTheory.PGame.nimZeroRelabelling - theorem SetTheory.PGame.nim_add_equiv_zero_iff - theorem SetTheory.PGame.nim_add_fuzzy_zero_iff - theorem SetTheory.PGame.nim_add_nim_equiv - theorem SetTheory.PGame.nim_birthday - theorem SetTheory.PGame.nim_equiv_iff_eq - theorem SetTheory.PGame.nim_fuzzy_zero_of_ne_zero - theorem SetTheory.PGame.nim_grundyValue - theorem SetTheory.PGame.nim_one_equiv - theorem SetTheory.PGame.nim_one_moveLeft - theorem SetTheory.PGame.nim_one_moveRight - theorem SetTheory.PGame.nim_zero_equiv - def SetTheory.PGame.rightMovesNimRecOn - theorem SetTheory.PGame.rightMoves_nim - theorem SetTheory.PGame.toLeftMovesNim_one_symm - theorem SetTheory.PGame.toLeftMovesNim_symm_lt - theorem SetTheory.PGame.toRightMovesNim_one_symm - theorem SetTheory.PGame.toRightMovesNim_symm_lt Deleted Mathlib/SetTheory/Game/Ordinal.lean - theorem Ordinal.mk_toPGame - theorem Ordinal.one_toPGame_leftMoves_default_eq - theorem Ordinal.one_toPGame_moveLeft - theorem Ordinal.toGame_inj - theorem Ordinal.toGame_injective - theorem Ordinal.toGame_le_iff - theorem Ordinal.toGame_lf_iff - theorem Ordinal.toGame_lt_iff - theorem Ordinal.toGame_nadd - theorem Ordinal.toGame_natCast - theorem Ordinal.toGame_nmul - theorem Ordinal.toGame_one - theorem Ordinal.toGame_zero - theorem Ordinal.toLeftMovesToPGame_symm_lt - theorem Ordinal.toPGame_equiv_iff - theorem Ordinal.toPGame_inj - theorem Ordinal.toPGame_injective - theorem Ordinal.toPGame_le - theorem Ordinal.toPGame_le_iff - theorem Ordinal.toPGame_leftMoves - theorem Ordinal.toPGame_lf - theorem Ordinal.toPGame_lf_iff - theorem Ordinal.toPGame_lt - theorem Ordinal.toPGame_lt_iff - theorem Ordinal.toPGame_moveLeft' - theorem Ordinal.toPGame_moveLeft - theorem Ordinal.toPGame_moveLeft_hEq - theorem Ordinal.toPGame_nadd - theorem Ordinal.toPGame_natCast - theorem Ordinal.toPGame_nmul - theorem Ordinal.toPGame_nonneg - theorem Ordinal.toPGame_one - theorem Ordinal.toPGame_rightMoves - theorem Ordinal.toPGame_zero - theorem Ordinal.to_leftMoves_one_toPGame_symm Deleted Mathlib/SetTheory/Game/Short.lean - def SetTheory.PGame.Short.mk' - def SetTheory.PGame.Short.ofIsEmpty - inductive SetTheory.PGame.Short - def SetTheory.PGame.fintypeLeft - def SetTheory.PGame.fintypeRight - def SetTheory.PGame.leLFDecidable - def SetTheory.PGame.moveLeftShort' - def SetTheory.PGame.moveRightShort' - def SetTheory.PGame.shortAdd - def SetTheory.PGame.shortOfRelabelling - theorem SetTheory.PGame.short_birthday - theorem SetTheory.PGame.subsingleton_short_example Deleted Mathlib/SetTheory/Game/State.lean - def SetTheory.Game.ofState - def SetTheory.PGame.leftMovesOfState - def SetTheory.PGame.leftMovesOfStateAux - def SetTheory.PGame.ofState - def SetTheory.PGame.ofStateAux - def SetTheory.PGame.ofStateAuxRelabelling - def SetTheory.PGame.relabellingMoveLeft - def SetTheory.PGame.relabellingMoveLeftAux - def SetTheory.PGame.relabellingMoveRight - def SetTheory.PGame.relabellingMoveRightAux - def SetTheory.PGame.rightMovesOfState - def SetTheory.PGame.rightMovesOfStateAux - theorem SetTheory.PGame.turnBound_ne_zero_of_left_move - theorem SetTheory.PGame.turnBound_ne_zero_of_right_move - theorem SetTheory.PGame.turnBound_of_left - theorem SetTheory.PGame.turnBound_of_right Deleted Mathlib/SetTheory/Nimber/Basic.lean - theorem Nimber.add_cancel_left - theorem Nimber.add_cancel_right - theorem Nimber.add_def - theorem Nimber.add_eq_zero - theorem Nimber.add_le_of_forall_ne - theorem Nimber.add_nat - theorem Nimber.add_ne_zero_iff - theorem Nimber.add_self - theorem Nimber.add_trichotomy - theorem Nimber.bot_eq_zero - theorem Nimber.eq_nat_of_le_nat - theorem Nimber.exists_of_lt_add - theorem Nimber.induction - theorem Nimber.lt_add_cases - theorem Nimber.lt_one_iff_zero - theorem Nimber.lt_wf - theorem Nimber.not_bddAbove_compl_of_small - theorem Nimber.one_le_iff_ne_zero - theorem Nimber.succ_def - def Nimber.toOrdinal - theorem Nimber.toOrdinal_eq_one - theorem Nimber.toOrdinal_eq_zero - theorem Nimber.toOrdinal_max - theorem Nimber.toOrdinal_min - theorem Nimber.toOrdinal_one - theorem Nimber.toOrdinal_symm_eq - theorem Nimber.toOrdinal_toNimber - theorem Nimber.toOrdinal_zero - def Nimber - def Ordinal.toNimber - theorem Ordinal.toNimber_eq_one - theorem Ordinal.toNimber_eq_zero - theorem Ordinal.toNimber_max - theorem Ordinal.toNimber_min - theorem Ordinal.toNimber_one - theorem Ordinal.toNimber_symm_eq - theorem Ordinal.toNimber_toOrdinal - theorem Ordinal.toNimber_zero - theorem not_small_nimber Deleted Mathlib/SetTheory/Nimber/Field.lean - theorem Nimber.cons_mem_invSet - theorem Nimber.exists_of_lt_mul - def Nimber.invAux - theorem Nimber.invAux_mem_invSet_of_lt - theorem Nimber.invAux_ne_zero - theorem Nimber.invAux_notMem_invSet - def Nimber.invSet - theorem Nimber.invSet_recOn - theorem Nimber.inv_eq_invAux - theorem Nimber.mem_invSet_of_lt_invAux - theorem Nimber.mul_def - theorem Nimber.mul_invAux_cancel - theorem Nimber.mul_le_of_forall_ne - theorem Nimber.zero_mem_invSet Deleted Mathlib/SetTheory/Ordinal/NaturalOps.lean - theorem NatOrdinal.add_le_iff - theorem NatOrdinal.bot_eq_zero - theorem NatOrdinal.induction - theorem NatOrdinal.lt_add_iff - theorem NatOrdinal.lt_mul_iff - theorem NatOrdinal.lt_one_iff_zero - theorem NatOrdinal.lt_wf - theorem NatOrdinal.mul_add_lt - theorem NatOrdinal.mul_le_iff - theorem NatOrdinal.nmul_nadd_le - theorem NatOrdinal.not_lt_zero - theorem NatOrdinal.succ_def - def NatOrdinal.toOrdinal - theorem NatOrdinal.toOrdinal_eq_one - theorem NatOrdinal.toOrdinal_eq_zero - theorem NatOrdinal.toOrdinal_max - theorem NatOrdinal.toOrdinal_min - theorem NatOrdinal.toOrdinal_natCast - theorem NatOrdinal.toOrdinal_one - theorem NatOrdinal.toOrdinal_symm_eq - theorem NatOrdinal.toOrdinal_toNatOrdinal - theorem NatOrdinal.toOrdinal_zero - def NatOrdinal - theorem Ordinal.add_le_nadd - theorem Ordinal.add_one_nmul - theorem Ordinal.le_nadd_left - theorem Ordinal.le_nadd_right - theorem Ordinal.le_nadd_self - theorem Ordinal.le_of_nadd_le_nadd_left - theorem Ordinal.le_of_nadd_le_nadd_right - theorem Ordinal.le_self_nadd - theorem Ordinal.lt_nadd_iff - theorem Ordinal.lt_nmul_iff - theorem Ordinal.lt_nmul_iff₃ - theorem Ordinal.lt_of_nadd_lt_nadd_left - theorem Ordinal.lt_of_nadd_lt_nadd_right - theorem Ordinal.mul_le_nmul - theorem Ordinal.nadd_assoc - theorem Ordinal.nadd_comm - theorem Ordinal.nadd_eq_add - theorem Ordinal.nadd_le_iff - theorem Ordinal.nadd_le_nadd - theorem Ordinal.nadd_le_nadd_iff_left - theorem Ordinal.nadd_le_nadd_iff_right - theorem Ordinal.nadd_le_nadd_left - theorem Ordinal.nadd_le_nadd_right - theorem Ordinal.nadd_left_cancel - theorem Ordinal.nadd_left_cancel_iff - theorem Ordinal.nadd_left_comm - theorem Ordinal.nadd_lt_nadd - theorem Ordinal.nadd_lt_nadd_iff_left - theorem Ordinal.nadd_lt_nadd_iff_right - theorem Ordinal.nadd_lt_nadd_left - theorem Ordinal.nadd_lt_nadd_of_le_of_lt - theorem Ordinal.nadd_lt_nadd_of_lt_of_le - theorem Ordinal.nadd_lt_nadd_right - theorem Ordinal.nadd_nat - theorem Ordinal.nadd_nmul - theorem Ordinal.nadd_one - theorem Ordinal.nadd_one_nmul - theorem Ordinal.nadd_right_cancel - theorem Ordinal.nadd_right_cancel_iff - theorem Ordinal.nadd_right_comm - theorem Ordinal.nadd_succ - theorem Ordinal.nadd_zero - theorem Ordinal.nat_nadd - theorem Ordinal.nmul_add_one - theorem Ordinal.nmul_assoc - theorem Ordinal.nmul_comm - theorem Ordinal.nmul_eq_mul - theorem Ordinal.nmul_le_iff - theorem Ordinal.nmul_le_iff₃ - theorem Ordinal.nmul_le_nmul - theorem Ordinal.nmul_le_nmul_left - theorem Ordinal.nmul_le_nmul_right - theorem Ordinal.nmul_lt_nmul_of_pos_left - theorem Ordinal.nmul_lt_nmul_of_pos_right - theorem Ordinal.nmul_nadd - theorem Ordinal.nmul_nadd_le - theorem Ordinal.nmul_nadd_le₃ - theorem Ordinal.nmul_nadd_lt - theorem Ordinal.nmul_nadd_lt₃ - theorem Ordinal.nmul_nadd_one - theorem Ordinal.nmul_one - theorem Ordinal.nmul_succ - theorem Ordinal.nmul_zero - theorem Ordinal.one_nadd - theorem Ordinal.one_nmul - theorem Ordinal.succ_nadd - theorem Ordinal.succ_nmul - def Ordinal.toNatOrdinal - theorem Ordinal.toNatOrdinal_eq_one - theorem Ordinal.toNatOrdinal_eq_zero - theorem Ordinal.toNatOrdinal_max - theorem Ordinal.toNatOrdinal_min - theorem Ordinal.toNatOrdinal_natCast - theorem Ordinal.toNatOrdinal_one - theorem Ordinal.toNatOrdinal_symm_eq - theorem Ordinal.toNatOrdinal_toOrdinal - theorem Ordinal.toNatOrdinal_zero - theorem Ordinal.zero_nadd - theorem Ordinal.zero_nmul Deleted Mathlib/SetTheory/PGame/Algebra.lean - theorem SetTheory.PGame.Identical.add - theorem SetTheory.PGame.Identical.add_left - theorem SetTheory.PGame.Identical.add_right - theorem SetTheory.PGame.Identical.neg - theorem SetTheory.PGame.Identical.of_neg - theorem SetTheory.PGame.Identical.sub - def SetTheory.PGame.Relabelling.addCongr - def SetTheory.PGame.Relabelling.negCongr - def SetTheory.PGame.Relabelling.subCongr - def SetTheory.PGame.addAssocRelabelling - def SetTheory.PGame.addCommRelabelling - def SetTheory.PGame.addZeroRelabelling - theorem SetTheory.PGame.add_assoc_equiv - theorem SetTheory.PGame.add_comm_equiv - theorem SetTheory.PGame.add_comm_le - theorem SetTheory.PGame.add_congr - theorem SetTheory.PGame.add_congr_left - theorem SetTheory.PGame.add_congr_right - theorem SetTheory.PGame.add_lf_add_left - theorem SetTheory.PGame.add_lf_add_of_le_of_lf - theorem SetTheory.PGame.add_lf_add_of_lf_of_le - theorem SetTheory.PGame.add_lf_add_right - theorem SetTheory.PGame.add_moveLeft_inl - theorem SetTheory.PGame.add_moveLeft_inr - theorem SetTheory.PGame.add_moveRight_inl - theorem SetTheory.PGame.add_moveRight_inr - theorem SetTheory.PGame.add_neg_cancel_equiv - theorem SetTheory.PGame.add_neg_cancel_le_zero - theorem SetTheory.PGame.add_zero_equiv - def SetTheory.PGame.down - theorem SetTheory.PGame.down_leftMoves - theorem SetTheory.PGame.down_moveLeft - theorem SetTheory.PGame.down_moveRight - theorem SetTheory.PGame.down_neg - theorem SetTheory.PGame.down_rightMoves - theorem SetTheory.PGame.exists_leftMoves_neg - theorem SetTheory.PGame.exists_rightMoves_neg - theorem SetTheory.PGame.forall_leftMoves_neg - theorem SetTheory.PGame.forall_rightMoves_neg - theorem SetTheory.PGame.identical_zero - theorem SetTheory.PGame.identical_zero_iff - theorem SetTheory.PGame.isOption_neg - theorem SetTheory.PGame.isOption_neg_neg - theorem SetTheory.PGame.le_iff_sub_nonneg - theorem SetTheory.PGame.le_neg_iff - theorem SetTheory.PGame.leftMoves_add - theorem SetTheory.PGame.leftMoves_add_cases - theorem SetTheory.PGame.leftMoves_neg - theorem SetTheory.PGame.leftMoves_neg_cases - theorem SetTheory.PGame.lf_iff_sub_zero_lf - theorem SetTheory.PGame.lf_neg_iff - theorem SetTheory.PGame.lt_iff_sub_pos - theorem SetTheory.PGame.lt_neg_iff - theorem SetTheory.PGame.memᵣ_add_iff - theorem SetTheory.PGame.memᵣ_neg_iff - theorem SetTheory.PGame.memₗ_add_iff - theorem SetTheory.PGame.memₗ_neg_iff - theorem SetTheory.PGame.mk_add_moveLeft - theorem SetTheory.PGame.mk_add_moveLeft_inl - theorem SetTheory.PGame.mk_add_moveLeft_inr - theorem SetTheory.PGame.mk_add_moveRight - theorem SetTheory.PGame.mk_add_moveRight_inl - theorem SetTheory.PGame.mk_add_moveRight_inr - theorem SetTheory.PGame.moveLeft_neg - theorem SetTheory.PGame.moveLeft_neg_toLeftMovesNeg - theorem SetTheory.PGame.moveRight_neg - theorem SetTheory.PGame.moveRight_neg_toRightMovesNeg - def SetTheory.PGame.neg - def SetTheory.PGame.negAddRelabelling - theorem SetTheory.PGame.neg_add_cancel_equiv - theorem SetTheory.PGame.neg_add_cancel_le_zero - theorem SetTheory.PGame.neg_add_le - theorem SetTheory.PGame.neg_def - theorem SetTheory.PGame.neg_down - theorem SetTheory.PGame.neg_equiv_iff - theorem SetTheory.PGame.neg_equiv_neg_iff - theorem SetTheory.PGame.neg_equiv_zero_iff - theorem SetTheory.PGame.neg_fuzzy_iff - theorem SetTheory.PGame.neg_fuzzy_neg_iff - theorem SetTheory.PGame.neg_fuzzy_zero_iff - theorem SetTheory.PGame.neg_identical_neg - theorem SetTheory.PGame.neg_insertLeft_neg - theorem SetTheory.PGame.neg_insertRight_neg - theorem SetTheory.PGame.neg_le_iff - theorem SetTheory.PGame.neg_le_neg_iff - theorem SetTheory.PGame.neg_le_zero_iff - theorem SetTheory.PGame.neg_lf_iff - theorem SetTheory.PGame.neg_lf_neg_iff - theorem SetTheory.PGame.neg_lf_zero_iff - theorem SetTheory.PGame.neg_lt_iff - theorem SetTheory.PGame.neg_lt_neg_iff - theorem SetTheory.PGame.neg_lt_zero_iff - theorem SetTheory.PGame.neg_ofLists - theorem SetTheory.PGame.neg_star - theorem SetTheory.PGame.neg_up - theorem SetTheory.PGame.rightMoves_add - theorem SetTheory.PGame.rightMoves_add_cases - theorem SetTheory.PGame.rightMoves_neg - theorem SetTheory.PGame.rightMoves_neg_cases - def SetTheory.PGame.star - theorem SetTheory.PGame.star_fuzzy_down - theorem SetTheory.PGame.star_fuzzy_up - theorem SetTheory.PGame.star_fuzzy_zero - theorem SetTheory.PGame.star_leftMoves - theorem SetTheory.PGame.star_lf_zero - theorem SetTheory.PGame.star_moveLeft - theorem SetTheory.PGame.star_moveRight - theorem SetTheory.PGame.star_rightMoves - theorem SetTheory.PGame.sub_congr - theorem SetTheory.PGame.sub_congr_left - theorem SetTheory.PGame.sub_congr_right - theorem SetTheory.PGame.sub_self_equiv - theorem SetTheory.PGame.sub_zero_eq_add_zero - def SetTheory.PGame.toLeftMovesAdd - def SetTheory.PGame.toLeftMovesNeg - def SetTheory.PGame.toRightMovesAdd - def SetTheory.PGame.toRightMovesNeg - def SetTheory.PGame.up - theorem SetTheory.PGame.up_leftMoves - theorem SetTheory.PGame.up_moveLeft - theorem SetTheory.PGame.up_moveRight - theorem SetTheory.PGame.up_neg - theorem SetTheory.PGame.up_rightMoves - def SetTheory.PGame.zeroAddRelabelling - theorem SetTheory.PGame.zero_add_equiv - theorem SetTheory.PGame.zero_equiv_neg_iff - theorem SetTheory.PGame.zero_fuzzy_neg_iff - theorem SetTheory.PGame.zero_le_add_neg_cancel - theorem SetTheory.PGame.zero_le_neg_add_cancel - theorem SetTheory.PGame.zero_le_neg_iff - theorem SetTheory.PGame.zero_lf_neg_iff - theorem SetTheory.PGame.zero_lf_one - theorem SetTheory.PGame.zero_lf_star - theorem SetTheory.PGame.zero_lt_neg_iff Deleted Mathlib/SetTheory/PGame/Basic.lean - theorem SetTheory.PGame.Identical.congr_left - theorem SetTheory.PGame.Identical.congr_right - theorem SetTheory.PGame.Identical.ext - theorem SetTheory.PGame.Identical.ext_iff - theorem SetTheory.PGame.Identical.moveLeft - theorem SetTheory.PGame.Identical.moveRight - theorem SetTheory.PGame.Identical.of_equiv - theorem SetTheory.PGame.Identical.of_fn - def SetTheory.PGame.Identical - theorem SetTheory.PGame.IsOption.mk_left - theorem SetTheory.PGame.IsOption.mk_right - inductive SetTheory.PGame.IsOption - def SetTheory.PGame.LeftMoves - def SetTheory.PGame.Relabelling.isEmpty - def SetTheory.PGame.Relabelling.leftMovesEquiv - def SetTheory.PGame.Relabelling.mk' - theorem SetTheory.PGame.Relabelling.mk'_leftMovesEquiv - theorem SetTheory.PGame.Relabelling.mk'_rightMovesEquiv - theorem SetTheory.PGame.Relabelling.mk_leftMovesEquiv - theorem SetTheory.PGame.Relabelling.mk_rightMovesEquiv - def SetTheory.PGame.Relabelling.moveLeft - def SetTheory.PGame.Relabelling.moveLeftSymm - def SetTheory.PGame.Relabelling.moveRight - def SetTheory.PGame.Relabelling.moveRightSymm - def SetTheory.PGame.Relabelling.refl - def SetTheory.PGame.Relabelling.rightMovesEquiv - def SetTheory.PGame.Relabelling.symm - def SetTheory.PGame.Relabelling.trans - inductive SetTheory.PGame.Relabelling - def SetTheory.PGame.RightMoves - theorem SetTheory.PGame.Subsequent.mk_left - theorem SetTheory.PGame.Subsequent.mk_right' - theorem SetTheory.PGame.Subsequent.mk_right - theorem SetTheory.PGame.Subsequent.moveLeft - theorem SetTheory.PGame.Subsequent.moveLeft_mk_left - theorem SetTheory.PGame.Subsequent.moveLeft_mk_right - theorem SetTheory.PGame.Subsequent.moveRight - theorem SetTheory.PGame.Subsequent.moveRight_mk_left - theorem SetTheory.PGame.Subsequent.moveRight_mk_right - theorem SetTheory.PGame.Subsequent.trans - def SetTheory.PGame.Subsequent - theorem SetTheory.PGame.ext - def SetTheory.PGame.identicalSetoid - theorem SetTheory.PGame.identical_comm - theorem SetTheory.PGame.identical_iff' - theorem SetTheory.PGame.identical_iff - theorem SetTheory.PGame.identical_of_eq - theorem SetTheory.PGame.identical_of_isEmpty - def SetTheory.PGame.insertLeft - def SetTheory.PGame.insertRight - theorem SetTheory.PGame.insertRight_insertLeft - theorem SetTheory.PGame.leftMoves_mk - theorem SetTheory.PGame.leftMoves_ofLists - theorem SetTheory.PGame.memᵣ.congr_left - theorem SetTheory.PGame.memᵣ.congr_right - def SetTheory.PGame.memᵣ - theorem SetTheory.PGame.memᵣ_def - theorem SetTheory.PGame.memₗ.congr_left - theorem SetTheory.PGame.memₗ.congr_right - def SetTheory.PGame.memₗ - theorem SetTheory.PGame.memₗ_def - def SetTheory.PGame.moveLeft - theorem SetTheory.PGame.moveLeft_memₗ - theorem SetTheory.PGame.moveLeft_mk - def SetTheory.PGame.moveRecOn - def SetTheory.PGame.moveRight - theorem SetTheory.PGame.moveRight_memᵣ - theorem SetTheory.PGame.moveRight_mk - def SetTheory.PGame.ofLists - theorem SetTheory.PGame.ofLists_moveLeft' - theorem SetTheory.PGame.ofLists_moveLeft - theorem SetTheory.PGame.ofLists_moveRight' - theorem SetTheory.PGame.ofLists_moveRight - theorem SetTheory.PGame.one_leftMoves - theorem SetTheory.PGame.one_moveLeft - theorem SetTheory.PGame.one_rightMoves - def SetTheory.PGame.relabel - def SetTheory.PGame.relabelRelabelling - theorem SetTheory.PGame.relabel_moveLeft' - theorem SetTheory.PGame.relabel_moveLeft - theorem SetTheory.PGame.relabel_moveRight' - theorem SetTheory.PGame.relabel_moveRight - theorem SetTheory.PGame.rightMoves_mk - theorem SetTheory.PGame.rightMoves_ofLists - theorem SetTheory.PGame.wf_isOption - theorem SetTheory.PGame.wf_subsequent - theorem SetTheory.PGame.zero_leftMoves - theorem SetTheory.PGame.zero_rightMoves - inductive SetTheory.PGame Deleted Mathlib/SetTheory/PGame/Order.lean - theorem LE.le.not_gf - theorem SetTheory.PGame.Equiv.ge - theorem SetTheory.PGame.Equiv.isEmpty - theorem SetTheory.PGame.Equiv.le - theorem SetTheory.PGame.Equiv.not_fuzzy' - theorem SetTheory.PGame.Equiv.not_fuzzy - theorem SetTheory.PGame.Equiv.of_equiv - theorem SetTheory.PGame.Equiv.of_exists - def SetTheory.PGame.Equiv - theorem SetTheory.PGame.Fuzzy.not_equiv' - theorem SetTheory.PGame.Fuzzy.not_equiv - theorem SetTheory.PGame.Fuzzy.swap - theorem SetTheory.PGame.Fuzzy.swap_iff - def SetTheory.PGame.Fuzzy - theorem SetTheory.PGame.Identical.equiv - theorem SetTheory.PGame.Identical.ge - theorem SetTheory.PGame.Identical.le - theorem SetTheory.PGame.LF.not_equiv' - theorem SetTheory.PGame.LF.not_equiv - theorem SetTheory.PGame.LF.not_ge - theorem SetTheory.PGame.LF.not_gt - def SetTheory.PGame.LF - theorem SetTheory.PGame.Relabelling.equiv - theorem SetTheory.PGame.Relabelling.ge - theorem SetTheory.PGame.Relabelling.le - theorem SetTheory.PGame.bddAbove_of_small - theorem SetTheory.PGame.bddAbove_range_of_small - theorem SetTheory.PGame.bddBelow_of_small - theorem SetTheory.PGame.bddBelow_range_of_small - theorem SetTheory.PGame.equiv_congr_left - theorem SetTheory.PGame.equiv_congr_right - theorem SetTheory.PGame.equiv_def - theorem SetTheory.PGame.equiv_of_eq - theorem SetTheory.PGame.equiv_refl - theorem SetTheory.PGame.equiv_rfl - theorem SetTheory.PGame.fuzzy_congr - theorem SetTheory.PGame.fuzzy_congr_imp - theorem SetTheory.PGame.fuzzy_congr_left - theorem SetTheory.PGame.fuzzy_congr_right - theorem SetTheory.PGame.fuzzy_irrefl - theorem SetTheory.PGame.fuzzy_of_equiv_of_fuzzy - theorem SetTheory.PGame.fuzzy_of_fuzzy_of_equiv - theorem SetTheory.PGame.insertLeft_equiv_of_lf - theorem SetTheory.PGame.insertRight_equiv_of_lf - theorem SetTheory.PGame.insertRight_le - theorem SetTheory.PGame.le_congr - theorem SetTheory.PGame.le_congr_imp - theorem SetTheory.PGame.le_congr_left - theorem SetTheory.PGame.le_congr_right - theorem SetTheory.PGame.le_def - theorem SetTheory.PGame.le_iff_forall_lf - theorem SetTheory.PGame.le_insertLeft - theorem SetTheory.PGame.le_of_equiv_of_le - theorem SetTheory.PGame.le_of_forall_lf - theorem SetTheory.PGame.le_of_forall_lt - theorem SetTheory.PGame.le_of_le_of_equiv - theorem SetTheory.PGame.le_or_gf - theorem SetTheory.PGame.le_zero - theorem SetTheory.PGame.le_zero_lf - theorem SetTheory.PGame.le_zero_of_isEmpty_leftMoves - theorem SetTheory.PGame.leftResponse_spec - theorem SetTheory.PGame.lf_congr - theorem SetTheory.PGame.lf_congr_imp - theorem SetTheory.PGame.lf_congr_left - theorem SetTheory.PGame.lf_congr_right - theorem SetTheory.PGame.lf_def - theorem SetTheory.PGame.lf_iff_exists_le - theorem SetTheory.PGame.lf_iff_lt_or_fuzzy - theorem SetTheory.PGame.lf_irrefl - theorem SetTheory.PGame.lf_mk - theorem SetTheory.PGame.lf_mk_of_le - theorem SetTheory.PGame.lf_moveRight - theorem SetTheory.PGame.lf_moveRight_of_le - theorem SetTheory.PGame.lf_of_equiv_of_lf - theorem SetTheory.PGame.lf_of_fuzzy - theorem SetTheory.PGame.lf_of_le_mk - theorem SetTheory.PGame.lf_of_le_moveLeft - theorem SetTheory.PGame.lf_of_le_of_lf - theorem SetTheory.PGame.lf_of_lf_of_equiv - theorem SetTheory.PGame.lf_of_lf_of_le - theorem SetTheory.PGame.lf_of_lf_of_lt - theorem SetTheory.PGame.lf_of_lt - theorem SetTheory.PGame.lf_of_lt_of_lf - theorem SetTheory.PGame.lf_of_mk_le - theorem SetTheory.PGame.lf_of_moveRight_le - theorem SetTheory.PGame.lf_or_equiv_or_gf - theorem SetTheory.PGame.lf_zero - theorem SetTheory.PGame.lf_zero_le - theorem SetTheory.PGame.lt_congr - theorem SetTheory.PGame.lt_congr_imp - theorem SetTheory.PGame.lt_congr_left - theorem SetTheory.PGame.lt_congr_right - theorem SetTheory.PGame.lt_iff_le_and_lf - theorem SetTheory.PGame.lt_of_equiv_of_lt - theorem SetTheory.PGame.lt_of_le_of_lf - theorem SetTheory.PGame.lt_of_lt_of_equiv - theorem SetTheory.PGame.lt_or_equiv_of_le - theorem SetTheory.PGame.lt_or_equiv_or_gf - theorem SetTheory.PGame.lt_or_equiv_or_gt_or_fuzzy - theorem SetTheory.PGame.lt_or_fuzzy_of_lf - theorem SetTheory.PGame.mk_le_mk - theorem SetTheory.PGame.mk_lf - theorem SetTheory.PGame.mk_lf_mk - theorem SetTheory.PGame.mk_lf_of_le - theorem SetTheory.PGame.moveLeft_lf - theorem SetTheory.PGame.moveLeft_lf_of_le - theorem SetTheory.PGame.not_fuzzy_of_ge - theorem SetTheory.PGame.not_fuzzy_of_le - theorem SetTheory.PGame.not_lf - theorem SetTheory.PGame.rightResponse_spec - theorem SetTheory.PGame.zero_le - theorem SetTheory.PGame.zero_le_lf - theorem SetTheory.PGame.zero_le_of_isEmpty_rightMoves - theorem SetTheory.PGame.zero_lf - theorem SetTheory.PGame.zero_lf_le Deleted Mathlib/SetTheory/Surreal/Basic.lean - theorem SetTheory.PGame.Numeric.add - theorem SetTheory.PGame.Numeric.isOption - theorem SetTheory.PGame.Numeric.le_moveRight - theorem SetTheory.PGame.Numeric.left_lt_right - theorem SetTheory.PGame.Numeric.lt_moveRight - theorem SetTheory.PGame.Numeric.mk - theorem SetTheory.PGame.Numeric.moveLeft - theorem SetTheory.PGame.Numeric.moveLeft_le - theorem SetTheory.PGame.Numeric.moveLeft_lt - theorem SetTheory.PGame.Numeric.moveRight - theorem SetTheory.PGame.Numeric.neg - theorem SetTheory.PGame.Numeric.sub - def SetTheory.PGame.Numeric - theorem SetTheory.PGame.Relabelling.numeric_congr - theorem SetTheory.PGame.Relabelling.numeric_imp - theorem SetTheory.PGame.insertLeft_numeric - theorem SetTheory.PGame.insertRight_numeric - theorem SetTheory.PGame.le_iff_forall_lt - theorem SetTheory.PGame.le_of_lf - theorem SetTheory.PGame.lf_asymm - theorem SetTheory.PGame.lf_iff_lt - theorem SetTheory.PGame.lt_def - theorem SetTheory.PGame.lt_iff_exists_le - theorem SetTheory.PGame.lt_of_exists_le - theorem SetTheory.PGame.lt_of_lf - theorem SetTheory.PGame.lt_or_equiv_or_gt - theorem SetTheory.PGame.not_fuzzy - theorem SetTheory.PGame.numeric_def - theorem SetTheory.PGame.numeric_nat - theorem SetTheory.PGame.numeric_of_isEmpty - theorem SetTheory.PGame.numeric_of_isEmpty_leftMoves - theorem SetTheory.PGame.numeric_of_isEmpty_rightMoves - theorem SetTheory.PGame.numeric_one - theorem SetTheory.PGame.numeric_rec - theorem SetTheory.PGame.numeric_toPGame - theorem SetTheory.PGame.numeric_zero - theorem Surreal.bddAbove_of_small - theorem Surreal.bddAbove_range_of_small - theorem Surreal.bddBelow_of_small - theorem Surreal.bddBelow_range_of_small - def Surreal.lift - def Surreal.lift₂ - def Surreal.mk - theorem Surreal.mk_add - theorem Surreal.mk_eq_mk - theorem Surreal.mk_eq_zero - theorem Surreal.mk_le_mk - theorem Surreal.mk_lt_mk - theorem Surreal.mk_lt_mk_moveRight - theorem Surreal.mk_moveLeft_lt_mk - theorem Surreal.mk_sub - theorem Surreal.nat_toGame - theorem Surreal.one_toGame - def Surreal.toGame - theorem Surreal.zero_def - theorem Surreal.zero_le_mk - theorem Surreal.zero_lt_mk - theorem Surreal.zero_toGame - def Surreal Deleted Mathlib/SetTheory/Surreal/Dyadic.lean - theorem SetTheory.PGame.add_powHalf_succ_self_eq_powHalf - theorem SetTheory.PGame.birthday_half - theorem SetTheory.PGame.half_add_half_equiv_one - theorem SetTheory.PGame.numeric_powHalf - def SetTheory.PGame.powHalf - theorem SetTheory.PGame.powHalf_le_one - theorem SetTheory.PGame.powHalf_leftMoves - theorem SetTheory.PGame.powHalf_moveLeft - theorem SetTheory.PGame.powHalf_pos - theorem SetTheory.PGame.powHalf_succ_le_powHalf - theorem SetTheory.PGame.powHalf_succ_lt_one - theorem SetTheory.PGame.powHalf_succ_lt_powHalf - theorem SetTheory.PGame.powHalf_succ_moveRight - theorem SetTheory.PGame.powHalf_succ_rightMoves - theorem SetTheory.PGame.powHalf_zero - theorem SetTheory.PGame.powHalf_zero_rightMoves - theorem SetTheory.PGame.zero_le_powHalf - theorem Surreal.double_powHalf_succ_eq_powHalf - def Surreal.dyadic - theorem Surreal.dyadicMap_apply - theorem Surreal.dyadicMap_apply_pow' - theorem Surreal.dyadicMap_apply_pow - theorem Surreal.dyadic_aux - theorem Surreal.nsmul_pow_two_powHalf' - theorem Surreal.nsmul_pow_two_powHalf - def Surreal.powHalf - theorem Surreal.powHalf_zero - theorem Surreal.zsmul_pow_two_powHalf Deleted Mathlib/SetTheory/Surreal/Multiplication.lean - theorem SetTheory.PGame.Equiv.mul_congr - theorem SetTheory.PGame.Equiv.mul_congr_left - theorem SetTheory.PGame.Equiv.mul_congr_right - theorem SetTheory.PGame.Numeric.mul - theorem SetTheory.PGame.Numeric.mul_pos - theorem SetTheory.PGame.P24 - theorem SetTheory.PGame.P3_of_lt_of_lt - def Surreal.Multiplication.Args.Numeric - theorem Surreal.Multiplication.Args.numeric_P1 - theorem Surreal.Multiplication.Args.numeric_P24 - def Surreal.Multiplication.Args.toMultiset - inductive Surreal.Multiplication.Args - theorem Surreal.Multiplication.ArgsRel.numeric_closed - def Surreal.Multiplication.ArgsRel - def Surreal.Multiplication.IH1 - def Surreal.Multiplication.IH24 - def Surreal.Multiplication.IH3 - def Surreal.Multiplication.IH4 - def Surreal.Multiplication.MulOptionsLTMul - def Surreal.Multiplication.P124 - def Surreal.Multiplication.P1 - theorem Surreal.Multiplication.P1_of_eq - theorem Surreal.Multiplication.P1_of_ih - theorem Surreal.Multiplication.P1_of_lt - def Surreal.Multiplication.P24 - theorem Surreal.Multiplication.P24_neg_left - theorem Surreal.Multiplication.P24_neg_right - theorem Surreal.Multiplication.P24_of_ih - def Surreal.Multiplication.P2 - theorem Surreal.Multiplication.P2_neg_left - theorem Surreal.Multiplication.P2_neg_right - theorem Surreal.Multiplication.P3.trans - def Surreal.Multiplication.P3 - theorem Surreal.Multiplication.P3_comm - theorem Surreal.Multiplication.P3_neg - theorem Surreal.Multiplication.P3_of_ih - theorem Surreal.Multiplication.P3_of_le_left - theorem Surreal.Multiplication.P3_of_lt - def Surreal.Multiplication.P4 - theorem Surreal.Multiplication.P4_neg_left - theorem Surreal.Multiplication.P4_neg_right - theorem Surreal.Multiplication.argsRel_wf - theorem Surreal.Multiplication.ih1 - theorem Surreal.Multiplication.ih1_neg_left - theorem Surreal.Multiplication.ih1_neg_right - theorem Surreal.Multiplication.ih1_swap - theorem Surreal.Multiplication.ih24_neg - theorem Surreal.Multiplication.ih3_of_ih - theorem Surreal.Multiplication.ih4 - theorem Surreal.Multiplication.ih4_neg - theorem Surreal.Multiplication.ih₁₂ - theorem Surreal.Multiplication.ih₂₁ - theorem Surreal.Multiplication.main - theorem Surreal.Multiplication.mulOption_lt - theorem Surreal.Multiplication.mulOption_lt_iff_P1 - theorem Surreal.Multiplication.mulOption_lt_mul_iff_P3 - theorem Surreal.Multiplication.mulOption_lt_mul_of_equiv - theorem Surreal.Multiplication.mulOption_lt_of_lt - theorem Surreal.Multiplication.mulOptionsLTMul_of_numeric - theorem Surreal.Multiplication.mul_right_le_of_equiv - theorem Surreal.Multiplication.numeric_mul_option - theorem Surreal.Multiplication.numeric_of_ih - theorem Surreal.Multiplication.numeric_option_mul - theorem Surreal.Multiplication.numeric_option_mul_option Modified docs/1000.yaml Modified docs/overview.yaml Modified scripts/nolints_prime_decls.txt 2026-02-19 22:32:58 e318a59 feat(Topology/Algebra/Module/ClosedSubmodule): add `mapEquiv`, a variation of `ClosedSubmodule.map` for CLE (#29235) add `ClosedSubmodule.mapEquiv` for continuous linear equivalence. In this case, a closed submodule is mapped to a closed submodule, so the definitions are easier and behave nicely with `closure` and `⊔`. motivation: needed to define standard subspaces in a Hilbert space (scalar multiplication by `Complex.I`) #29251 https://ems.press/content/serial-article-files/48171 - [x] depends on: #29230 for `Lattice` `CompleteLattice` ESTIMATED CHANGES Modified Mathlib/Topology/Algebra/Module/ClosedSubmodule.lean + theorem ClosedSubmodule.closure_map_eq_mapEquiv_closure + def ClosedSubmodule.mapEquiv + theorem ClosedSubmodule.mapEquiv_apply + theorem ClosedSubmodule.mapEquiv_bot_eq_bot + theorem ClosedSubmodule.mapEquiv_inf_eq + theorem ClosedSubmodule.mapEquiv_sup_eq + theorem ClosedSubmodule.mapEquiv_symm + theorem ClosedSubmodule.mapEquiv_top_eq_top + theorem ClosedSubmodule.mem_mapEquiv_iff' + theorem ClosedSubmodule.mem_mapEquiv_iff 2026-02-19 21:51:52 b7b7aca chore: revert change from #35179 (#35546) PR #35179 broke FLT. This PR reverts one line. ESTIMATED CHANGES Modified Mathlib/Algebra/Group/End.lean 2026-02-19 19:03:02 cde919c feat(AlgebraicGeometry): `P`-qc precoverage (#35509) We define the `P`-qc precoverage as the intersection of the `P`-precoverage with the quasi-compact precoverage when `P` is a morphism property of schemes. In the case where `P = Flat`, this is the fpqc precoverage. ESTIMATED CHANGES Modified Mathlib/AlgebraicGeometry/Morphisms/UnderlyingMap.lean + theorem AlgebraicGeometry.Scheme.Hom.presieve₀_cover Modified Mathlib/AlgebraicGeometry/Sites/QuasiCompact.lean + theorem AlgebraicGeometry.Scheme.Cover.mem_propQCTopology + def AlgebraicGeometry.Scheme.Cover.ofQuasiCompactCover + theorem AlgebraicGeometry.Scheme.Hom.generate_singleton_mem_propQCTopology + theorem AlgebraicGeometry.Scheme.Hom.singleton_mem_propQCPrecoverage + theorem AlgebraicGeometry.Scheme.Hom.singleton_mem_qcPrecoverage + theorem AlgebraicGeometry.Scheme.mem_propQCPrecoverage_iff_exists_quasiCompactCover + theorem AlgebraicGeometry.Scheme.propQCPrecoverage_le_precoverage 2026-02-19 18:04:34 2a33a10 feat(RingTheory): `Algebra.TensorProduct.map f g` is flat if `f` and `g` are (#35455) From Proetale. ESTIMATED CHANGES Modified Mathlib/RingTheory/IsTensorProduct.lean + theorem Algebra.IsPushout.cancelBaseChangeAlg_symm_tmul + theorem Algebra.IsPushout.cancelBaseChangeAlg_tmul + theorem Algebra.IsPushout.cancelBaseChange_symm_comp_lTensor + theorem Algebra.IsPushout.toLinearEquiv_cancelBaseChangeAlg Modified Mathlib/RingTheory/RingHom/Flat.lean + theorem RingHom.Flat.lTensor + theorem RingHom.Flat.tensorProductMap 2026-02-19 17:04:28 e1fdf08 fix: make merge script find nightly-testing remote by URL (#35537) This PR fixes `scripts/merge-lean-testing-pr.sh` which hardcoded `origin` as the remote for `lean-pr-testing` branches. In local clones the `mathlib4-nightly-testing` repo may be configured under a different remote name (e.g. `nightly-testing`), causing the merge to fail with "not something we can merge". Now auto-detects the remote by matching its URL against `leanprover-community/mathlib4-nightly-testing`. 🤖 Prepared with Claude Code ESTIMATED CHANGES Modified scripts/merge-lean-testing-pr.sh 2026-02-19 17:04:26 6448e6e feat: add a definition and API lemmas for Polynomial.homogenize and MvPolynomial (#35259) This PR adds two API lemmas for multivariate polynomials: the support of `1` is `{0}` and all terms of a homoegenous polynomial of degree `n` have degree `n`. It also adds an API lemma for `Polynomial.homogenize` (a polynomial is zero if its homogenization of sufficiently large degree is zero), plus a definition ```lean /-- Given a polynomial `p : R[X]`, this is the family `![p₀, p₁]` of homogeneous bivariate polynomials of degree `p.natDegree` such that `p(x) = p₀(x,1)/p₁(x,1)` and `p₁` is a monomial. -/ noncomputable def toTupleMvPolynomial (p : R[X]) : Fin 2 → MvPolynomial (Fin 2) R := ![p.homogenize p.natDegree, (MvPolynomial.X 1) ^ p.natDegree] ``` and some API for it. This is useful for developing the theory of heights (in arithmetic geometry); see [Heights](https://github.com/MichaelStollBayreuth/Heights). ESTIMATED CHANGES Modified Mathlib/Algebra/MvPolynomial/Basic.lean + theorem MvPolynomial.support_one Modified Mathlib/Algebra/Polynomial/Homogenize.lean + theorem Polynomial.eq_zero_of_homogenize_eq_zero + theorem Polynomial.eval_X_toTupleMvPolynomial_zero_eq + theorem Polynomial.eval_eq_div_eval_toTupleMvPolynomial + theorem Polynomial.finsuppSum_homogenize_eq + theorem Polynomial.homogenize_eq_zero_iff + theorem Polynomial.isHomogenous_toTupleMvPolynomial + theorem Polynomial.sum_eq_natDegree_of_mem_support_homogenize + def Polynomial.toTupleMvPolynomial + theorem Polynomial.toTupleMvPolynomial_one_eq + theorem Polynomial.toTupleMvPolynomial_zero_eq Modified Mathlib/RingTheory/MvPolynomial/Homogeneous.lean + theorem MvPolynomial.IsHomogeneous.degree_eq_sum_deg_support 2026-02-19 16:06:31 2c475ec feat: make the `unusedInstancesInType` linters fire when instances are not used outside of proofs in the type (#32440) This PR adjusts the `unusedDecidableInType` to prevent false negatives on declarations that only use `Decidable*` hypotheses in proofs that appear in the type. That is, the linter now fires when the `Decidable*` linter is unused outside of proofs. This PR also changes the warning message to be more direct, and indicates when the instance appears only in a proof (vs. not appearing at all). We exempt some deprecated lemmas in `Mathlib.Analysis.Order.Matrix` which the linter now fires on. (Presumably, most prior violations had been cleaned up by #10235, which also detected such lemmas.) Note that this took some tinkering to achieve sufficient performance. We use the following novel(?) "dolorous telescope" strategy (so named due to introducing `sorry`s) to avoid traversing the whole type: - when encountering an instance binder of concern, telescope to create an fvar. - when encountering any other binder, instantiate it with `sorry`. - as we proceed, collect the free variables from these expressions which do not appear in proofs. Since the instances of concern are the only free variables, free variable collection avoids traversing many subexpressions by checking for `hasFVar`, which is a computed field accessible in constant time. Perhaps surprisingly, this is (on net) more performant than using `eraseProofs` and then detecting dependence via bvars. We also implement an `Expr`-level early exit for most types by checking if they bind any instance of concern first. (This adds a very small overhead to types which *do* have an instance of concern, but the check is very fast.) This also adds a profiler category to this linter. Note: we still have yet to optimize (pre)-infotree traversal performance, and have yet to avoid proofs that appear in the value of definitions. However, this PR sets us up to do so. ESTIMATED CHANGES Modified Mathlib/Analysis/Matrix/Order.lean Modified Mathlib/Lean/Expr/Basic.lean + def Lean.Expr.isSorryAx Modified Mathlib/Tactic/Linter/UnusedInstancesInType.lean + structure Mathlib.Linter.UnusedInstancesInType.InstanceOfConcern + def Mathlib.Linter.UnusedInstancesInType.collectFVarsOutsideOfProofs Modified MathlibTest/UnusedInstancesInType/Basic.lean - def Uses + def UsesExactly + theorem UsesInstanceInProof + def UsesInstanceOf Modified MathlibTest/UnusedInstancesInType/Decidable.lean +/- theorem fooUsing + theorem fooUsing₁'' + theorem fooUsing₁' +/- theorem fooUsing₁ + theorem fooUsing₂'' + theorem fooUsing₂' Modified MathlibTest/UnusedInstancesInType/Fintype.lean +/- theorem fooUsing +/- theorem fooUsing₁ Modified MathlibTest/UnusedInstancesInType/FintypeNeedingImport.lean Modified MathlibTest/UnusedInstancesInType/SetOption.lean 2026-02-19 15:54:43 2d973f3 feat(Order/Fin): lemmas about Fin.clamp (#35373) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Order/Fin/Clamp.lean 2026-02-19 15:44:25 44978c2 ci: Revert cache get default behavior for skip-proofwidgets (#35542) For backwards compatibility, as downstream projects depend on this tool ESTIMATED CHANGES Modified .github/workflows/build_template.yml Modified Cache/Main.lean 2026-02-19 15:31:12 f39a841 fix: check for a space of continuous linear maps over not-the-identity (#35176) Improves an error message, and fixes a TODO in the code. Along the way, tweak `isCLMReduciblyDefEqCoeffients` a bit - make it private (as it is only used twice, and its return value is a bit complicated for public API), - make it return an error directly if not successful: this matches what its two callers do, - tweak the doc-string slightly and reduce right-ward drift a bit ESTIMATED CHANGES Modified Mathlib/Geometry/Manifold/Notation.lean - def Manifold.Elab.Elab.isCLMReduciblyDefeqCoefficients Modified MathlibTest/DifferentialGeometry/NotationAdvanced.lean 2026-02-19 15:20:54 1464b64 chore: update Mathlib dependencies 2026-02-19 (#35541) This PR updates the Mathlib dependencies. ESTIMATED CHANGES Modified lake-manifest.json 2026-02-19 15:05:15 a47a5e0 ci: sandbox cache staging steps (#35512) These run under `lake env` so we should restrict them too. Run them in landrun, with the same sandboxing as the default except: - add `--rw` to `/home/lean/.cache/mathlib/` to make it writable instead of read-only (for packing) - add `--rw cache-staging/` (for staging). ESTIMATED CHANGES Modified .github/workflows/build_template.yml 2026-02-19 13:50:56 8bd514e feat: iterated derivatives of differences of functions (#35256) Establish standard formulas for iterated derivatives of differences of functions. Change the names of theorems to comply with style standards. ESTIMATED CHANGES Modified Mathlib/Analysis/Calculus/ContDiff/Bounds.lean Modified Mathlib/Analysis/Calculus/ContDiff/Operations.lean - theorem iteratedFDerivWithin_add_apply' +/- theorem iteratedFDerivWithin_add_apply + theorem iteratedFDerivWithin_sub_apply +/- theorem iteratedFDeriv_add - theorem iteratedFDeriv_add_apply' +/- theorem iteratedFDeriv_add_apply + theorem iteratedFDeriv_sub + theorem iteratedFDeriv_sub_apply 2026-02-19 13:09:20 1be8bd8 feat(ModelTheory): Presburger definability and semilinear sets (#27100) This PR formalizes the classical result that Presburger definable sets are the same as semilinear sets. As an application of this result, we show that the graph of multiplication is not Presburger definable. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/ModelTheory/Arithmetic/Presburger/Definability.lean + theorem FirstOrder.Language.presburger.definable_iff_isSemilinearSet + theorem FirstOrder.Language.presburger.definable₁_iff_ultimately_periodic + theorem FirstOrder.Language.presburger.isSemilinearSet_boundedFormula_realize + theorem FirstOrder.Language.presburger.isSemilinearSet_formula_realize_semilinear + theorem FirstOrder.Language.presburger.mul_not_definable + theorem FirstOrder.Language.presburger.term_realize_eq_add_dotProduct + theorem IsLinearSet.definable + theorem IsSemilinearSet.definable Modified Mathlib/ModelTheory/Arithmetic/Presburger/Semilinear/Defs.lean + theorem Nat.isSemilinearSet_iff_ultimately_periodic + theorem isProperSemilinearSet_iff + theorem isSemilinearSet_iff Modified docs/references.bib 2026-02-19 12:59:01 364fcca fix: specify `-X GET` in `gh api` call (#35536) The `-f` flag causes `gh api` to default to POST. The releases endpoint expects GET, so we need to specify the method explicitly. Same fix as https://github.com/leanprover/cslib/pull/354. 🤖 Prepared with Claude Code ESTIMATED CHANGES Modified .github/workflows/nightly_bump_and_merge.yml 2026-02-19 10:30:49 ba56760 chore: avoid using the triangle (#35526) Not exhaustive. Will help with #35524. ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/Basic.lean Modified Mathlib/Algebra/CharP/Pi.lean Modified Mathlib/Algebra/Group/Submonoid/Defs.lean Modified Mathlib/Algebra/GroupWithZero/Associated.lean Modified Mathlib/Algebra/Module/SpanRank.lean Modified Mathlib/Algebra/Polynomial/FieldDivision.lean Modified Mathlib/Algebra/Polynomial/Splits.lean Modified Mathlib/Analysis/Convex/Approximation.lean Modified Mathlib/CategoryTheory/EqToHom.lean 2026-02-19 10:30:46 90c2e6b feat(RingTheory/Valuation/Basic): generalize lemmas from DivisionRing to Ring (#35479) ESTIMATED CHANGES Modified Mathlib/RingTheory/Valuation/Basic.lean +/- theorem Valuation.isEquiv_iff_val_lt_val +/- theorem Valuation.isEquiv_map_self_of_strictMono 2026-02-19 09:41:46 6496c80 style: remove almost all remaining leading by's (#35523) ESTIMATED CHANGES Modified Mathlib/Algebra/MvPolynomial/Eval.lean Modified Mathlib/Algebra/MvPolynomial/Supported.lean Modified Mathlib/Algebra/Order/Interval/Set/Group.lean +/- theorem Set.pairwise_disjoint_Ioc_intCast +/- theorem Set.pairwise_disjoint_Ioo_intCast Modified Mathlib/Algebra/Polynomial/OfFn.lean +/- theorem Polynomial.ofFn_coeff_eq_zero_of_ge Modified Mathlib/Analysis/Normed/Order/Lattice.lean Modified Mathlib/CategoryTheory/Adjunction/Parametrized.lean Modified Mathlib/Combinatorics/SimpleGraph/Walks/Operations.lean +/- theorem SimpleGraph.Walk.Nil.append Modified Mathlib/Data/List/Rotate.lean Modified Mathlib/Data/Multiset/Pi.lean Modified Mathlib/FieldTheory/RatFunc/Basic.lean Modified Mathlib/Geometry/Manifold/LocalInvariantProperties.lean Modified Mathlib/GroupTheory/FreeGroup/Basic.lean Modified Mathlib/GroupTheory/FreeGroup/IsFreeGroup.lean Modified Mathlib/MeasureTheory/Measure/Haar/Quotient.lean Modified Mathlib/MeasureTheory/Measure/Lebesgue/EqHaar.lean Modified Mathlib/RingTheory/Polynomial/DegreeLT.lean Modified Mathlib/RingTheory/RingHom/Finite.lean 2026-02-19 09:41:44 7b82e1c chore(Geometry/Manifold): rename `writtenInExtChart_prod` to `writtenInExtChartAt_prod` (#35511) Rename `writtenInExtChart_prod` to `writtenInExtChartAt_prod`, because the definition it is about is called `writtenInExtChartAt` and it was the only lemma to drop the "at". ESTIMATED CHANGES Modified Mathlib/Geometry/Manifold/IsManifold/ExtChartAt.lean + theorem writtenInExtChartAt_prod - theorem writtenInExtChart_prod Modified Mathlib/Geometry/Manifold/MFDeriv/SpecificFunctions.lean 2026-02-19 09:41:42 e498cf9 doc: update README.md (#35505) This PR adds Filippo's name to the maintainer list, together with his interests. ESTIMATED CHANGES Modified README.md 2026-02-19 09:41:40 a6044f6 chore: explicitly mention "nonzero" in docs for `MvPowerSeries.expand` and `PowerSeries.expand` (#35338) ESTIMATED CHANGES Modified Mathlib/RingTheory/MvPowerSeries/Expand.lean Modified Mathlib/RingTheory/PowerSeries/Expand.lean 2026-02-19 09:27:15 d9896de chore(CategoryTheory/Subobject): correct `inf_eq_map_pullback` (#35395) I'm fairly sure the previous version of `inf_eq_map_pullback` had a different statement than intended, indeed it was just `inf_eq_map_pullback'`. I'm changing it to what it was probably intended to be, i.e. a statement about subobjects. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Subobject/Basic.lean + theorem CategoryTheory.Subobject.thinSkeleton_mk_representative_eq_self Modified Mathlib/CategoryTheory/Subobject/Lattice.lean +/- theorem CategoryTheory.Subobject.inf_eq_map_pullback 2026-02-19 08:52:10 af97ef4 feat(AdicValuation): add instIsNontrivialIntValuation (#35488) Add IsNontrivial instance for `IsDedekindDomain.HeightOneSpectrum.intValuation`. In particular, this is needed to trigger the instance [`Valuation.IsRankOneDiscrete.mk'`](https://leanprover-community.github.io/mathlib4_docs/Mathlib/RingTheory/Valuation/Discrete/Basic.html#Valuation.IsRankOneDiscrete.mk'). ESTIMATED CHANGES Modified Mathlib/RingTheory/DedekindDomain/AdicValuation.lean 2026-02-19 08:18:02 b9076d1 chore: `toType_empty_iff_eq_zero` → `isEmpty_toType_iff` (#35517) Extracted from #35513. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Abelian/GrothendieckCategory/EnoughInjectives.lean Modified Mathlib/SetTheory/Ordinal/Basic.lean + theorem Ordinal.isEmpty_toType_iff + theorem Ordinal.nonempty_toType_iff - theorem Ordinal.toType_empty_iff_eq_zero - theorem Ordinal.toType_nonempty_iff_ne_zero Modified Mathlib/SetTheory/Ordinal/Family.lean Modified Mathlib/SetTheory/Ordinal/Topology.lean 2026-02-19 07:58:17 9587c39 feat(Topology/Algebra/RestrictedProduct): the units of a restricted product are isomorphic to the restricted product of the units (#34915) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Topology/Algebra/RestrictedProduct/Units.lean + def RestrictedProduct.coeUnits + theorem RestrictedProduct.coe_unitsEquiv_apply + theorem RestrictedProduct.eventualy_isUnit_of_isUnit + theorem RestrictedProduct.isUnit_iff + theorem RestrictedProduct.isUnit_of_eventually_isUnit + def RestrictedProduct.mkUnit + def RestrictedProduct.unitsEquiv + theorem RestrictedProduct.unitsEquiv_apply 2026-02-19 07:47:12 d6e7bdc feat(CategoryTheory/Sites): conservative families of points (#35141) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/CategoryTheory/Functor/ReflectsIso/Jointly.lean + structure CategoryTheory.JointlyFaithful + theorem CategoryTheory.JointlyReflectIsomorphisms.jointlyFaithful Modified Mathlib/CategoryTheory/Sites/Point/Basic.lean Added Mathlib/CategoryTheory/Sites/Point/Conservative.lean + theorem CategoryTheory.ObjectProperty.IsConservativeFamilyOfPoints.jointlyFaithful + theorem CategoryTheory.ObjectProperty.IsConservativeFamilyOfPoints.jointlyReflectEpimorphisms + theorem CategoryTheory.ObjectProperty.IsConservativeFamilyOfPoints.jointlyReflectIsomorphisms + theorem CategoryTheory.ObjectProperty.IsConservativeFamilyOfPoints.jointlyReflectMonomorphisms + structure CategoryTheory.ObjectProperty.IsConservativeFamilyOfPoints 2026-02-19 03:38:04 4e3318d feat(Data/Finite/Card): `Nat.card`/`ENat.card` is strictly monotonic on finite sets (#34693) ESTIMATED CHANGES Modified Mathlib/Data/Finite/Card.lean + theorem Set.Finite.card_strictMonoOn + theorem Set.Finite.ecard_lt_ecard + theorem Set.Finite.ecard_strictMonoOn + theorem Set.card_strictMono + theorem Set.ecard_le_ecard + theorem Set.ecard_strictMono 2026-02-18 23:28:57 57d8fb2 chore: remove `Ideal.span_singleton_le_iff_mem` as explicit simp argument (#35498) This PR implements a couple small simp golfs made possible by #35489. ESTIMATED CHANGES Modified Mathlib/RingTheory/DedekindDomain/PID.lean Modified Mathlib/RingTheory/Ideal/Operations.lean 2026-02-18 23:09:14 c4dcefd ci: Secure proofwidgets fetches on cache get (#35463) When calling lake exe cache get in the CI we happily say ["only runs cache get from tools-branch, so doesn't need to be inside landrun"](https://github.com/leanprover-community/mathlib4/blob/a90320db82953c5554b9065b7304c10e3b4548a5/.github/workflows/build_template.yml#L293). However, it turns out that cache get is not that innocent: it [performs a full lake -v build proofwidgets:release](https://github.com/leanprover-community/mathlib4/blob/a90320db82953c5554b9065b7304c10e3b4548a5/Cache/Requests.lean#L451) in the PR branch context. This means I can point proofwidgets in the lake-manifest.json to whatever I want, and now run arbitrary code outside of landrun. To protect against this, this PR: - adds an dependency verification for proofwidget, so that it only comes from the 'trusted' source - tries to avoid the build altogether in `cache get`, defaulting to skipping in github actions, but adding a flag so that we can do it if we want ESTIMATED CHANGES Modified .github/workflows/build_template.yml Modified Cache/Main.lean + def parseFlagOpt Modified Cache/Requests.lean 2026-02-18 23:09:12 2ace7b9 chore(CategoryTheory/Limits): dualize (parts of) `pullback.diagonal` (#35454) We add the definition `pushout.codiagonal`, some API and prove one square is a pushout square. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Limits/Shapes/Diagonal.lean + theorem CategoryTheory.Limits.isPushout_map_codiagonal + theorem CategoryTheory.Limits.pushout.inl_codiagonal + theorem CategoryTheory.Limits.pushout.inr_codiagonal + theorem CategoryTheory.Limits.pushout.isIso_codiagonal_iff + theorem CategoryTheory.Limits.pushout.op_codiagonal Modified Mathlib/CategoryTheory/Limits/Shapes/Pullback/IsPullback/Defs.lean + theorem CategoryTheory.IsPullback.op_iff + theorem CategoryTheory.IsPullback.unop_iff + theorem CategoryTheory.IsPushout.op_iff + theorem CategoryTheory.IsPushout.unop_iff 2026-02-18 22:13:46 fd906ee chore(Data/Set/Defs): move `ext` attribute to `Set.ext` (#35485) ESTIMATED CHANGES Modified Mathlib/Data/Set/Defs.lean Modified Mathlib/Data/Set/Operations.lean 2026-02-18 21:15:42 2760436 chore: update Mathlib dependencies 2026-02-18 (#35506) This PR updates the Mathlib dependencies. ESTIMATED CHANGES Modified lake-manifest.json 2026-02-18 19:54:11 55a5931 fix: disable backward.isDefEq.respectTransparency globally (#35500) The behavior of this option when set to false is currently broken. We should not force every contributor to discover this and set it to true with `set_option in`. We can consider removing the thousands of existing set_options later. ESTIMATED CHANGES Modified Mathlib/Analysis/Normed/Module/Basic.lean Modified Mathlib/LinearAlgebra/Matrix/Determinant/Basic.lean Modified Mathlib/RingTheory/AdicCompletion/AsTensorProduct.lean Modified Mathlib/Topology/Order.lean Modified lakefile.lean 2026-02-18 19:37:23 514b0e4 feat(Analysis/Normed/Operator/Compact): criteria for compactness of the identity operator (#35196) This PR adds several criteria for compactness of the identity operator. ESTIMATED CHANGES Modified Mathlib/Analysis/Normed/Module/FiniteDimension.lean + theorem isCompactOperator_id_iff_finiteDimensional Modified Mathlib/Analysis/Normed/Operator/Compact.lean + theorem isCompactOperator_id_iff_locallyCompactSpace 2026-02-18 19:23:18 2c5d229 fix(Dynamics/BirkhoffSum): birkhoffAverage_of_comp_eq only needs AddCommMonoid (#35307) ESTIMATED CHANGES Modified Mathlib/Dynamics/BirkhoffSum/Average.lean +/- theorem Function.IsFixedPt.birkhoffAverage_eq +/- theorem birkhoffAverage_of_comp_eq Modified Mathlib/Dynamics/BirkhoffSum/NormedSpace.lean 2026-02-18 18:21:11 6adfa6a chore: remove redundant `Aesop` imports (#35474) This PR removes redundant imports of `Aesop`. Two transitive imports had to be restored. These redundant imports can appear due to `grind` replacing `aesop`, and due to the new `shake` getting fussy about preserving public imports (I don't fully understand why shake adds these redundant imports). This helps improve parallellism when building mathlib. ESTIMATED CHANGES Modified Mathlib/Algebra/Group/ULift.lean Modified Mathlib/Algebra/Opposites.lean Modified Mathlib/Data/Fin/VecNotation.lean Modified Mathlib/Data/List/GetD.lean Modified Mathlib/Data/Set/Insert.lean Modified Mathlib/Order/BooleanAlgebra/Defs.lean Modified Mathlib/Order/Disjoint.lean Modified Mathlib/Order/Filter/Defs.lean Modified Mathlib/Tactic/ApplyFun.lean Modified Mathlib/Tactic/CategoryTheory/Coherence/Basic.lean Modified Mathlib/Tactic/DeriveCountable.lean Modified Mathlib/Tactic/MoveAdd.lean Modified Mathlib/Tactic/Order/CollectFacts.lean Modified Mathlib/Tactic/TautoSet.lean Modified Mathlib/Tactic/Zify.lean 2026-02-18 18:21:10 2c28abf feat: neighborhood basis in a metric space consisting of closed balls of radius `1 / (n + 1)` (#35207) ESTIMATED CHANGES Modified Mathlib/Topology/MetricSpace/Pseudo/Defs.lean + theorem Metric.nhds_basis_closedBall_inv_nat_pos + theorem Metric.nhds_basis_closedBall_inv_nat_succ + theorem Metric.uniformity_basis_dist_le_inv_nat_pos + theorem Metric.uniformity_basis_dist_le_inv_nat_succ 2026-02-18 18:21:08 8fe02a9 doc: `PFun.fix_induction` to `PFun.fixInduction` (#35199) This is typo of [`PFun.fixInduction`](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Data/PFun.html#PFun.fixInduction) ESTIMATED CHANGES Modified Mathlib/Data/PFun.lean 2026-02-18 18:21:06 7b91ca9 feat: generalize some results for `SupConvergenceClass` to `ConditionallyCompletePartialOrder{Sup,Inf}` (#35050) ESTIMATED CHANGES Modified Mathlib/Topology/Order/MonotoneConvergence.lean 2026-02-18 17:39:08 1aacdef chore: clean up `sSup` and `sInf` usage (#35297) ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Submonoid/Basic.lean Modified Mathlib/CategoryTheory/Category/Pairwise.lean Modified Mathlib/CategoryTheory/Limits/Lattice.lean Modified Mathlib/Combinatorics/SimpleGraph/Acyclic.lean Modified Mathlib/Order/Atoms.lean Modified Mathlib/Topology/Order/HullKernel.lean 2026-02-18 17:27:13 2d2989a style(RingTheory/PowerSeries/Derivative): prove derivative_pow from Derivation.leibniz_pow (#35067) ESTIMATED CHANGES Modified Mathlib/RingTheory/PowerSeries/Derivative.lean +/- theorem PowerSeries.derivative_pow 2026-02-18 15:56:18 e61bf0e chore(Tactic): improve `contrapose` tactic documentation (#35492) This PR (re)writes the docstrings for the `contrapose` and `contrapose!` tactics to consistently match the official style guide, to make sure they are complete while not getting too long. ESTIMATED CHANGES Modified Mathlib/Tactic/Contrapose.lean 2026-02-18 15:23:12 3c50db6 feat(Ideal/Span): add Ideal.span_singleton_le_iff_mem to simp set (#35489) ESTIMATED CHANGES Modified Mathlib/RingTheory/Ideal/Span.lean 2026-02-18 14:41:46 416c6c8 feat: define `LinearMap.piMap` and `ContinuousLinearMap.piMap` (#35430) As requested by @eric-wieser in #34491 ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/Pi.lean + theorem LinearMap.coe_piMap + def LinearMap.piMap Modified Mathlib/Topology/Algebra/Module/LinearMapPiProd.lean + theorem ContinuousLinearMap.coe_piMap' + theorem ContinuousLinearMap.coe_piMap + def ContinuousLinearMap.piMap 2026-02-18 13:53:57 2f9c494 feat: the normal closure of an empty set is the trivial subgroup (#35029) This is a dependency of a larger PR to formalize finitely presented groups (#34236). ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Subgroup/Basic.lean + theorem Subgroup.normalClosure_empty 2026-02-18 13:41:21 6c31aed chore(RamificationInertia): remove an unnecessary hypothesis in `inertiaDeg_algebraMap` (#35483) ESTIMATED CHANGES Modified Mathlib/NumberTheory/RamificationInertia/Basic.lean +/- theorem Ideal.inertiaDeg_algebraMap +/- theorem Ideal.inertiaDeg_comap_eq +/- theorem Ideal.inertiaDeg_map_eq Modified Mathlib/NumberTheory/RamificationInertia/Galois.lean +/- theorem Ideal.inertiaDegIn_eq_inertiaDeg +/- theorem Ideal.inertiaDeg_eq_of_isGaloisGroup 2026-02-18 13:04:52 4c23a5f chore: modulize tests (2/N) (#35288) ESTIMATED CHANGES Modified MathlibTest/Algebra/Category/Grp/Injective.lean Modified MathlibTest/Algebra/MonoidAlgebra/Defs.lean Modified MathlibTest/CategoryTheory/Bicategory/Basic.lean Modified MathlibTest/CategoryTheory/CategoryStar.lean Modified MathlibTest/CategoryTheory/CheckCompositions.lean Modified MathlibTest/CategoryTheory/Coherence.lean Modified MathlibTest/CategoryTheory/ConcreteCategory/CommAlgCat.lean Modified MathlibTest/CategoryTheory/ConcreteCategory/Grp.lean Modified MathlibTest/CategoryTheory/ConcreteCategory/ModuleCat.lean Modified MathlibTest/CategoryTheory/ConcreteCategory/MonCat.lean Modified MathlibTest/CategoryTheory/ConcreteCategory/Ring.lean Modified MathlibTest/CategoryTheory/ConcreteCategory/Semigrp.lean Modified MathlibTest/CategoryTheory/ConcreteCategory/TopModuleCat.lean Modified MathlibTest/CategoryTheory/MarkovCategory.lean Modified MathlibTest/CategoryTheory/Mon_.lean Modified MathlibTest/CategoryTheory/Monoidal/Basic.lean Modified MathlibTest/CategoryTheory/Monoidal/MonTauto.lean Modified MathlibTest/CategoryTheory/MonoidalComp.lean Modified MathlibTest/CategoryTheory/Sites/ConcreteSheafification.lean Modified MathlibTest/CategoryTheory/Sites/PreservesSheafification.lean Modified MathlibTest/CategoryTheory/Sites/Whiskering.lean Modified MathlibTest/CategoryTheory/Slice.lean 2026-02-18 12:06:15 ab58ce6 feat(Topology/Algebra/Star/LinearMap): intrinsic star for continuous linear maps (#33397) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Topology/Algebra/Star/LinearMap.lean + theorem ContinuousLinearMap.IntrinsicStar.isSelfAdjoint_iff_map_star + theorem ContinuousLinearMap.IntrinsicStar.isSelfAdjoint_toLinearMap_iff + theorem ContinuousLinearMap.intrinsicStar_apply + theorem ContinuousLinearMap.intrinsicStar_comp' + theorem ContinuousLinearMap.intrinsicStar_comp + theorem ContinuousLinearMap.intrinsicStar_eq_comp + theorem ContinuousLinearMap.intrinsicStar_id + theorem ContinuousLinearMap.intrinsicStar_smulRight + theorem ContinuousLinearMap.intrinsicStar_toSpanSingleton + theorem ContinuousLinearMap.intrinsicStar_zero + theorem ContinuousLinearMap.toLinearMap_intrinsicStar 2026-02-18 09:28:53 e98e508 chore: simplify statement of `Module.End.isNilpotent_isSemisimple_unique` (#35471) ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/JordanChevalley.lean 2026-02-18 08:30:35 84e6cad feat(Geometry/Convex/Cone): monotonicity and map lemmas for min/max cone tensor products (#34383) Add minTensorProduct_mono, maxTensorProduct_mono, minTensorProduct_map_le, maxTensorProduct_map_le. ESTIMATED CHANGES Modified Mathlib/Geometry/Convex/Cone/TensorProduct.lean + theorem PointedCone.maxTensorProduct_map_le + theorem PointedCone.maxTensorProduct_mono + theorem PointedCone.minTensorProduct_map_le + theorem PointedCone.minTensorProduct_mono 2026-02-18 08:14:08 79e9b0f feat(Topology): Connecting different notions of locally finite (#26259) In this PR we connect the notions of local finiteness of an indexed family of sets (as in LocallyFinite) and of a set of sets (as in Function.locallyFinsuppWithin) ESTIMATED CHANGES Modified Mathlib/Topology/LocallyFinsupp.lean + theorem LocallyFiniteSupport.finite_inter_support_of_isCompact + theorem LocallyFiniteSupport.iff_locallyFinite_support + theorem LocallyFiniteSupport.locallyFinite_support + def LocallyFiniteSupport 2026-02-18 07:51:33 777913b feat(NumberTheory/Height/Projectivization): new file (#34780) This adds a new file "Mathlib.NumberTheory.Height.Projectivization", which (for now) contains the definition of the multiplicative and logarithmic heights of points in projective space and basic properties of these. The PR also contains extensions for the `positivity` tactic so that it knows that multiplicative heights are positive and logarithmic heights are nonnegative. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/NumberTheory/Height/Basic.lean Added Mathlib/NumberTheory/Height/Projectivization.lean + theorem Projectivization.logHeight_eq_log_mulHeight + theorem Projectivization.logHeight_mk + theorem Projectivization.logHeight_nonneg + theorem Projectivization.mulHeight_mk + theorem Projectivization.mulHeight_ne_zero + theorem Projectivization.mulHeight_pos + theorem Projectivization.one_le_mulHeight 2026-02-18 07:28:44 2663653 feat(Algebra/Polynomial/Lifts): Add `mem_lifts_and_support_eq` (#35132) `mem_lifts_and_degree_eq` was already proving the more general statement, so I extracted the proof. I need this for #34877. ESTIMATED CHANGES Modified Mathlib/Algebra/Polynomial/Lifts.lean + theorem Polynomial.exists_degree_eq_of_mem_lifts + theorem Polynomial.exists_support_eq_of_mem_lifts - theorem Polynomial.mem_lifts_and_degree_eq Modified Mathlib/RingTheory/Polynomial/Resultant/Basic.lean 2026-02-18 06:12:44 52b9aaf chore: fix inexistent `NE.ne` namespace (#35466) The `≠` relation is simply called `Ne`. ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Monoid/Canonical/Defs.lean 2026-02-18 03:15:40 d6f48e4 refactor(Analysis/Calculus): redefine `HasFDerivAtFilter` (#34965) Make `HasFDerivAtFilter` and `HasDerivAtFilter` to take a filter in the Cartesian square of the domain, so that it works for `HasStrictFDerivAt` and `HasStrictDerivAt`. Other changes: - golf proofs about `hasDerivAt_pi` etc, dropping `[Finite ι]` assumption; - move proofs about `HasFDerivAtFilter` before `HasStrictFDerivAt`, use them; - add lemmas like `hasFDerivAt_iff_isLittleO`, since the old idiom `rw [HasFDerivAt, hasFDerivAtFilter_iff_isLittleO]` no longer gives the desired result. See [Zulip discussion](https://leanprover.zulipchat.com/#narrow/channel/116395-maths/topic/generalizing.20HasFDerivAtFilter/with/572031922) ESTIMATED CHANGES Modified Mathlib/Analysis/Calculus/Deriv/Add.lean + theorem HasDerivAt.add + theorem HasDerivAtFilter.add +/- theorem HasDerivAtFilter.const_sub +/- theorem HasDerivAtFilter.fun_sum +/- theorem HasDerivAtFilter.neg +/- theorem HasDerivAtFilter.sub +/- theorem HasDerivAtFilter.sum + theorem HasDerivWithinAt.add + theorem HasDerivWithinAt.const_sub + theorem HasStrictDerivAt.add +/- theorem HasStrictDerivAt.neg +/- theorem hasDerivAtFilter_neg Modified Mathlib/Analysis/Calculus/Deriv/AffineMap.lean +/- theorem AffineMap.hasDerivAtFilter +/- theorem AffineMap.hasStrictDerivAt Modified Mathlib/Analysis/Calculus/Deriv/Basic.lean +/- theorem Filter.EventuallyEq.hasDerivAtFilter_iff +/- theorem HasDerivAt.hasDerivAtFilter + theorem HasDerivAt.isBigO_sub +/- theorem HasDerivAtFilter.congr_of_eventuallyEq +/- theorem HasDerivAtFilter.isBigO_sub +/- theorem HasDerivAtFilter.isBigO_sub_rev +/- theorem HasDerivAtFilter.isEquivalent_sub +/- theorem HasDerivAtFilter.isTheta_sub +/- theorem HasDerivAtFilter.mono + theorem HasDerivAtFilter.tendsto_nhds +/- def HasDerivAtFilter - theorem HasDerivWithinAt.hasFDerivWithinAt - theorem HasFDerivAt.hasDerivAt - theorem HasFDerivAtFilter.hasDerivAtFilter - theorem HasFDerivWithinAt.hasDerivWithinAt + theorem HasStrictDerivAt.congr_of_eventuallyEq +/- theorem hasDerivAtFilter_const +/- theorem hasDerivAtFilter_id + theorem hasDerivAtFilter_iff_hasFDerivAtFilter +/- theorem hasDerivAtFilter_intCast +/- theorem hasDerivAtFilter_natCast +/- theorem hasDerivAtFilter_ofNat +/- theorem hasDerivAtFilter_one +/- theorem hasDerivAtFilter_zero Modified Mathlib/Analysis/Calculus/Deriv/Comp.lean + theorem HasDerivAt.comp + theorem HasDerivAt.scomp +/- theorem HasDerivAtFilter.comp +/- theorem HasDerivAtFilter.comp_hasFDerivAtFilter +/- theorem HasDerivAtFilter.comp_of_eq +/- theorem HasDerivAtFilter.scomp +/- theorem HasDerivAtFilter.scomp_of_eq + theorem HasDerivWithinAt.scomp Modified Mathlib/Analysis/Calculus/Deriv/Linear.lean Modified Mathlib/Analysis/Calculus/Deriv/Mul.lean +/- theorem HasDerivAtFilter.const_smul Modified Mathlib/Analysis/Calculus/Deriv/Pow.lean + theorem HasDerivWithinAt.fun_pow' + theorem HasDerivWithinAt.fun_pow + theorem HasDerivWithinAt.pow' + theorem HasDerivWithinAt.pow + theorem HasStrictDerivAt.fun_pow' + theorem HasStrictDerivAt.fun_pow + theorem HasStrictDerivAt.pow' + theorem HasStrictDerivAt.pow Modified Mathlib/Analysis/Calculus/Deriv/Prod.lean + theorem HasDerivAt.prodMk +/- theorem HasDerivAtFilter.finCons + theorem HasDerivAtFilter.prodMk + theorem HasDerivWithinAt.prodMk + theorem HasStrictDerivAt.prodMk +/- theorem hasDerivAtFilter_finCons' +/- theorem hasDerivAtFilter_finCons Modified Mathlib/Analysis/Calculus/Deriv/Slope.lean Modified Mathlib/Analysis/Calculus/Deriv/Star.lean Modified Mathlib/Analysis/Calculus/FDeriv/Add.lean + theorem HasFDerivAt.const_sub +/- theorem HasFDerivAtFilter.add +/- theorem HasFDerivAtFilter.const_smul +/- theorem HasFDerivAtFilter.const_sub +/- theorem HasFDerivAtFilter.fun_sum +/- theorem HasFDerivAtFilter.neg +/- theorem HasFDerivAtFilter.sub +/- theorem HasFDerivAtFilter.sum + theorem HasFDerivWithinAt.const_sub + theorem HasStrictFDerivAt.const_sub Modified Mathlib/Analysis/Calculus/FDeriv/Affine.lean Modified Mathlib/Analysis/Calculus/FDeriv/Analytic.lean Modified Mathlib/Analysis/Calculus/FDeriv/Basic.lean +/- theorem HasFDerivAt.hasFDerivAtFilter +/- theorem HasFDerivAt.isBigOTVS_sub + theorem HasFDerivAt.isEquivalent_sub + theorem HasFDerivAt.isThetaTVS_sub + theorem HasFDerivAt.isTheta_sub +/- theorem HasFDerivAtFilter.isBigOTVS_sub +/- theorem HasFDerivAtFilter.isBigO_sub +/- theorem HasFDerivAtFilter.isEquivalent_sub +/- theorem HasFDerivAtFilter.isThetaTVS_sub +/- theorem HasFDerivAtFilter.isTheta_sub +/- theorem HasFDerivAtFilter.tendsto_nhds + theorem HasFDerivWithinAt.isEquivalent_sub + theorem HasFDerivWithinAt.isThetaTVS_sub + theorem HasFDerivWithinAt.isTheta_sub +/- theorem hasFDerivAtFilter_id Modified Mathlib/Analysis/Calculus/FDeriv/Comp.lean +/- theorem HasFDerivAtFilter.comp Modified Mathlib/Analysis/Calculus/FDeriv/Congr.lean +/- theorem Filter.EventuallyEq.hasFDerivAtFilter_iff +/- theorem HasFDerivAtFilter.congr_of_eventuallyEq Modified Mathlib/Analysis/Calculus/FDeriv/Const.lean +/- theorem hasFDerivAtFilter_const +/- theorem hasFDerivAtFilter_intCast +/- theorem hasFDerivAtFilter_natCast +/- theorem hasFDerivAtFilter_ofNat +/- theorem hasFDerivAtFilter_one +/- theorem hasFDerivAtFilter_zero Modified Mathlib/Analysis/Calculus/FDeriv/Defs.lean +/- structure HasFDerivAtFilter + def HasStrictFDerivAt - structure HasStrictFDerivAt +/- theorem hasFDerivAtFilter_iff_isLittleO + theorem hasFDerivAt_iff_isLittleO + theorem hasFDerivAt_iff_isLittleOTVS + theorem hasFDerivWithinAt_iff_isLittleO + theorem hasFDerivWithinAt_iff_isLittleOTVS + theorem hasStrictFDerivAt_iff_isLittleOTVS Modified Mathlib/Analysis/Calculus/FDeriv/Extend.lean Modified Mathlib/Analysis/Calculus/FDeriv/Linear.lean Modified Mathlib/Analysis/Calculus/FDeriv/Prod.lean +/- theorem HasFDerivAtFilter.prodMk +/- theorem hasFDerivAtFilter_fst +/- theorem hasFDerivAtFilter_snd Modified Mathlib/Analysis/Calculus/FDeriv/RestrictScalars.lean +/- theorem HasFDerivAtFilter.restrictScalars Modified Mathlib/Analysis/Calculus/FDeriv/Star.lean Modified Mathlib/Analysis/Calculus/FDeriv/Symmetric.lean Modified Mathlib/Analysis/Calculus/Gradient/Basic.lean +/- theorem HasDerivAtFilter.hasGradientAtFilter' +/- theorem HasDerivAtFilter.hasGradientAtFilter Modified Mathlib/Analysis/Complex/HasPrimitives.lean Modified Mathlib/Analysis/Complex/Periodic.lean Modified Mathlib/Analysis/InnerProductSpace/NormPow.lean Modified Mathlib/Analysis/SpecialFunctions/Pow/Deriv.lean Modified Mathlib/MeasureTheory/Integral/CurveIntegral/Basic.lean Modified Mathlib/MeasureTheory/Integral/IntervalIntegral/FundThmCalculus.lean Modified MathlibTest/Recall.lean 2026-02-18 02:34:56 074cbbd chore: update Mathlib dependencies 2026-02-18 (#35468) This PR updates the Mathlib dependencies. ESTIMATED CHANGES Modified lake-manifest.json 2026-02-18 00:34:39 1aca177 ci: Enable telemetry pump for nightly-testing runs (#35462) Let's send these runs to telemetry. We can filter them out / analyze them separately based on some already-existing metadata, so we just need to modify this condition ESTIMATED CHANGES Modified .github/workflows/export_telemetry.yaml 2026-02-17 23:08:40 33a7291 chore: bump toolchain to v4.29.0-rc1 (#35459) ESTIMATED CHANGES Modified Archive/Examples/Eisenstein.lean Modified Archive/Examples/Kuratowski.lean Modified Archive/Hairer.lean Modified Archive/Imo/Imo1959Q2.lean Modified Archive/Imo/Imo1961Q3.lean Modified Archive/Imo/Imo1963Q5.lean Modified Archive/Imo/Imo1972Q5.lean Modified Archive/Imo/Imo1982Q1.lean Modified Archive/Imo/Imo1982Q3.lean Modified Archive/Imo/Imo1986Q5.lean Modified Archive/Imo/Imo1988Q6.lean Modified Archive/Imo/Imo1998Q2.lean Modified Archive/Imo/Imo2001Q4.lean Modified Archive/Imo/Imo2001Q5.lean Modified Archive/Imo/Imo2006Q3.lean Modified Archive/Imo/Imo2010Q5.lean Modified Archive/Imo/Imo2011Q3.lean Modified Archive/Imo/Imo2013Q5.lean Modified Archive/Imo/Imo2015Q6.lean Modified Archive/Imo/Imo2024Q1.lean Modified Archive/Imo/Imo2024Q2.lean Modified Archive/Imo/Imo2024Q3.lean Modified Archive/Imo/Imo2024Q5.lean Modified Archive/Imo/Imo2024Q6.lean Modified Archive/Kuratowski.lean Modified Archive/MiuLanguage/DecisionNec.lean Modified Archive/MiuLanguage/DecisionSuf.lean Modified Archive/Sensitivity.lean Modified Archive/Wiedijk100Theorems/AreaOfACircle.lean Modified Archive/Wiedijk100Theorems/BallotProblem.lean Modified Archive/Wiedijk100Theorems/BuffonsNeedle.lean Modified Archive/Wiedijk100Theorems/CubingACube.lean +/- theorem Theorems100.«82».Cube.b_mem_side Modified Archive/Wiedijk100Theorems/FriendshipGraphs.lean Modified Archive/Wiedijk100Theorems/HeronsFormula.lean Modified Archive/Wiedijk100Theorems/SolutionOfCubicQuartic.lean Modified Archive/Wiedijk100Theorems/SumOfPrimeReciprocalsDiverges.lean Modified Archive/ZagierTwoSquares.lean Modified Counterexamples/CliffordAlgebraNotInjective.lean Modified Counterexamples/DimensionPolynomial.lean Modified Counterexamples/DiscreteTopologyNonDiscreteUniformity.lean Modified Counterexamples/HeawoodUnitDistance.lean Modified Counterexamples/InvertibleModuleNotIdeal.lean Modified Counterexamples/MapFloor.lean Modified Counterexamples/NowhereDifferentiable.lean Modified Counterexamples/Phillips.lean Modified Counterexamples/Pseudoelement.lean Modified Counterexamples/SeminormLatticeNotDistrib.lean Modified Counterexamples/SorgenfreyLine.lean Modified Counterexamples/TopologistsSineCurve.lean Modified Counterexamples/ZeroDivisorsInAddMonoidAlgebras.lean Modified Mathlib/Algebra/AddConstMap/Basic.lean Modified Mathlib/Algebra/AffineMonoid/Embedding.lean Modified Mathlib/Algebra/AffineMonoid/Irreducible.lean Modified Mathlib/Algebra/Algebra/Bilinear.lean Modified Mathlib/Algebra/Algebra/Epi.lean Modified Mathlib/Algebra/Algebra/NonUnitalSubalgebra.lean Modified Mathlib/Algebra/Algebra/Operations.lean - def Submodule.span.ringHom - def Submodule.spanSingleton Modified Mathlib/Algebra/Algebra/Opposite.lean +/- theorem AlgEquiv.toRingEquiv_opOp +/- theorem AlgEquiv.toRingEquiv_toOpposite Modified Mathlib/Algebra/Algebra/RestrictScalars.lean Modified Mathlib/Algebra/Algebra/Spectrum/Quasispectrum.lean Modified Mathlib/Algebra/Algebra/Subalgebra/Basic.lean Modified Mathlib/Algebra/Algebra/Subalgebra/Directed.lean Modified Mathlib/Algebra/Algebra/Subalgebra/IsSimpleOrder.lean Modified Mathlib/Algebra/Algebra/Subalgebra/Lattice.lean Modified Mathlib/Algebra/Algebra/Subalgebra/Pointwise.lean Modified Mathlib/Algebra/Algebra/Subalgebra/Rank.lean Modified Mathlib/Algebra/Algebra/Subalgebra/Unitization.lean Modified Mathlib/Algebra/Algebra/Unitization.lean Modified Mathlib/Algebra/Algebra/ZMod.lean Modified Mathlib/Algebra/Azumaya/Matrix.lean Modified Mathlib/Algebra/BigOperators/Field.lean Modified Mathlib/Algebra/BigOperators/Fin.lean Modified Mathlib/Algebra/BigOperators/Finprod.lean Modified Mathlib/Algebra/BigOperators/Group/Finset/Basic.lean Modified Mathlib/Algebra/BigOperators/Group/Finset/Defs.lean Modified Mathlib/Algebra/BigOperators/Group/Finset/Indicator.lean Modified Mathlib/Algebra/BigOperators/Group/Finset/Piecewise.lean Modified Mathlib/Algebra/BigOperators/Group/List/Basic.lean +/- theorem List.prod_reverse Modified Mathlib/Algebra/BigOperators/GroupWithZero/Finset.lean Modified Mathlib/Algebra/BigOperators/Intervals.lean Modified Mathlib/Algebra/BigOperators/ModEq.lean Modified Mathlib/Algebra/BigOperators/NatAntidiagonal.lean Modified Mathlib/Algebra/BigOperators/Ring/Finset.lean Modified Mathlib/Algebra/BigOperators/Ring/Nat.lean Modified Mathlib/Algebra/Category/AlgCat/Basic.lean Modified Mathlib/Algebra/Category/AlgCat/Limits.lean Modified Mathlib/Algebra/Category/AlgCat/Symmetric.lean Modified Mathlib/Algebra/Category/BialgCat/Basic.lean Modified Mathlib/Algebra/Category/BialgCat/Monoidal.lean Modified Mathlib/Algebra/Category/CoalgCat/ComonEquivalence.lean Modified Mathlib/Algebra/Category/CommBialgCat.lean Modified Mathlib/Algebra/Category/ContinuousCohomology/Basic.lean Modified Mathlib/Algebra/Category/FGModuleCat/Basic.lean +/- theorem LinearMap.comp_id_fgModuleCat +/- theorem LinearMap.id_fgModuleCat_comp Modified Mathlib/Algebra/Category/FGModuleCat/Colimits.lean Modified Mathlib/Algebra/Category/FGModuleCat/EssentiallySmall.lean Modified Mathlib/Algebra/Category/Grp/AB.lean Modified Mathlib/Algebra/Category/Grp/Adjunctions.lean Modified Mathlib/Algebra/Category/Grp/CartesianMonoidal.lean Modified Mathlib/Algebra/Category/Grp/Colimits.lean Modified Mathlib/Algebra/Category/Grp/EnoughInjectives.lean Modified Mathlib/Algebra/Category/Grp/Kernels.lean Modified Mathlib/Algebra/Category/Grp/LargeColimits.lean Modified Mathlib/Algebra/Category/Grp/LeftExactFunctor.lean Modified Mathlib/Algebra/Category/Grp/Limits.lean Modified Mathlib/Algebra/Category/Grp/ZModuleEquivalence.lean Modified Mathlib/Algebra/Category/HopfAlgCat/Monoidal.lean Modified Mathlib/Algebra/Category/ModuleCat/Abelian.lean Modified Mathlib/Algebra/Category/ModuleCat/Adjunctions.lean Modified Mathlib/Algebra/Category/ModuleCat/Algebra.lean Modified Mathlib/Algebra/Category/ModuleCat/Basic.lean Modified Mathlib/Algebra/Category/ModuleCat/ChangeOfRings.lean Modified Mathlib/Algebra/Category/ModuleCat/Colimits.lean Modified Mathlib/Algebra/Category/ModuleCat/Differentials/Basic.lean Modified Mathlib/Algebra/Category/ModuleCat/Differentials/Presheaf.lean Modified Mathlib/Algebra/Category/ModuleCat/EpiMono.lean Modified Mathlib/Algebra/Category/ModuleCat/Ext/DimensionShifting.lean Modified Mathlib/Algebra/Category/ModuleCat/Ext/Finite.lean Modified Mathlib/Algebra/Category/ModuleCat/ExteriorPower.lean Modified Mathlib/Algebra/Category/ModuleCat/FilteredColimits.lean Modified Mathlib/Algebra/Category/ModuleCat/Images.lean Modified Mathlib/Algebra/Category/ModuleCat/Kernels.lean Modified Mathlib/Algebra/Category/ModuleCat/LeftResolution.lean Modified Mathlib/Algebra/Category/ModuleCat/Limits.lean Modified Mathlib/Algebra/Category/ModuleCat/Localization.lean Modified Mathlib/Algebra/Category/ModuleCat/Monoidal/Basic.lean Modified Mathlib/Algebra/Category/ModuleCat/Monoidal/Closed.lean Modified Mathlib/Algebra/Category/ModuleCat/Presheaf.lean Modified Mathlib/Algebra/Category/ModuleCat/Presheaf/Colimits.lean Modified Mathlib/Algebra/Category/ModuleCat/Presheaf/Free.lean Modified Mathlib/Algebra/Category/ModuleCat/Presheaf/Generator.lean Modified Mathlib/Algebra/Category/ModuleCat/Presheaf/Limits.lean Modified Mathlib/Algebra/Category/ModuleCat/Presheaf/Monoidal.lean Modified Mathlib/Algebra/Category/ModuleCat/Presheaf/Pushforward.lean Modified Mathlib/Algebra/Category/ModuleCat/Presheaf/Sheafification.lean Modified Mathlib/Algebra/Category/ModuleCat/Presheaf/Sheafify.lean Modified Mathlib/Algebra/Category/ModuleCat/Products.lean Modified Mathlib/Algebra/Category/ModuleCat/Projective.lean Modified Mathlib/Algebra/Category/ModuleCat/Sheaf.lean Modified Mathlib/Algebra/Category/ModuleCat/Sheaf/Abelian.lean Modified Mathlib/Algebra/Category/ModuleCat/Sheaf/Free.lean Modified Mathlib/Algebra/Category/ModuleCat/Sheaf/PullbackContinuous.lean Modified Mathlib/Algebra/Category/ModuleCat/Sheaf/PullbackFree.lean Modified Mathlib/Algebra/Category/ModuleCat/Sheaf/PushforwardContinuous.lean Modified Mathlib/Algebra/Category/ModuleCat/Sheaf/Quasicoherent.lean Modified Mathlib/Algebra/Category/ModuleCat/Stalk.lean Modified Mathlib/Algebra/Category/ModuleCat/Subobject.lean Modified Mathlib/Algebra/Category/ModuleCat/Tannaka.lean Modified Mathlib/Algebra/Category/ModuleCat/Topology/Basic.lean Modified Mathlib/Algebra/Category/ModuleCat/Topology/Homology.lean Modified Mathlib/Algebra/Category/ModuleCat/Ulift.lean Modified Mathlib/Algebra/Category/MonCat/Adjunctions.lean Modified Mathlib/Algebra/Category/MonCat/Colimits.lean - def MonCat.Colimits.colimitSetoid Modified Mathlib/Algebra/Category/MonCat/FilteredColimits.lean Modified Mathlib/Algebra/Category/MonCat/Limits.lean Modified Mathlib/Algebra/Category/Ring/Adjunctions.lean Modified Mathlib/Algebra/Category/Ring/Colimits.lean - def CommRingCat.Colimits.colimitSetoid - def RingCat.Colimits.colimitSetoid Modified Mathlib/Algebra/Category/Ring/Constructions.lean Modified Mathlib/Algebra/Category/Ring/FilteredColimits.lean Modified Mathlib/Algebra/Category/Ring/FinitePresentation.lean Modified Mathlib/Algebra/Category/Ring/Limits.lean Modified Mathlib/Algebra/Category/Ring/LinearAlgebra.lean Modified Mathlib/Algebra/Category/Ring/Topology.lean Modified Mathlib/Algebra/Category/Ring/Under/Basic.lean Modified Mathlib/Algebra/Category/Ring/Under/Limits.lean Modified Mathlib/Algebra/Central/End.lean Modified Mathlib/Algebra/CharP/Defs.lean Modified Mathlib/Algebra/CharP/Invertible.lean Modified Mathlib/Algebra/CharP/Lemmas.lean Modified Mathlib/Algebra/CharP/LinearMaps.lean Modified Mathlib/Algebra/CharP/MixedCharZero.lean Modified Mathlib/Algebra/CharP/Quotient.lean Modified Mathlib/Algebra/Colimit/DirectLimit.lean Modified Mathlib/Algebra/Colimit/Ring.lean Modified Mathlib/Algebra/ContinuedFractions/Computation/Approximations.lean Modified Mathlib/Algebra/ContinuedFractions/Computation/TerminatesIffRat.lean Modified Mathlib/Algebra/DirectSum/Basic.lean Modified Mathlib/Algebra/DirectSum/Idempotents.lean Modified Mathlib/Algebra/DirectSum/Internal.lean Modified Mathlib/Algebra/DirectSum/LinearMap.lean Modified Mathlib/Algebra/DirectSum/Module.lean Modified Mathlib/Algebra/DirectSum/Ring.lean Modified Mathlib/Algebra/DualNumber.lean Modified Mathlib/Algebra/DualQuaternion.lean Modified Mathlib/Algebra/Exact.lean Modified Mathlib/Algebra/Field/Basic.lean Modified Mathlib/Algebra/Field/Equiv.lean Modified Mathlib/Algebra/Field/Periodic.lean Modified Mathlib/Algebra/Field/Power.lean Modified Mathlib/Algebra/Field/Subfield/Basic.lean Modified Mathlib/Algebra/FreeAbelianGroup/Finsupp.lean Modified Mathlib/Algebra/FreeAlgebra.lean Modified Mathlib/Algebra/GCDMonoid/Basic.lean Modified Mathlib/Algebra/Group/Action/Basic.lean Modified Mathlib/Algebra/Group/Action/Pointwise/Finset.lean Modified Mathlib/Algebra/Group/Action/Pointwise/Set/Basic.lean Modified Mathlib/Algebra/Group/AddChar.lean Modified Mathlib/Algebra/Group/Conj.lean Modified Mathlib/Algebra/Group/Fin/Basic.lean Modified Mathlib/Algebra/Group/Finsupp.lean Modified Mathlib/Algebra/Group/ForwardDiff.lean Modified Mathlib/Algebra/Group/NatPowAssoc.lean Modified Mathlib/Algebra/Group/Pointwise/Finset/Basic.lean Modified Mathlib/Algebra/Group/Pointwise/Finset/Scalar.lean Modified Mathlib/Algebra/Group/Pointwise/Set/Basic.lean Modified Mathlib/Algebra/Group/Pointwise/Set/Scalar.lean Modified Mathlib/Algebra/Group/Subgroup/Basic.lean Modified Mathlib/Algebra/Group/Subgroup/Finite.lean Modified Mathlib/Algebra/Group/Subgroup/Ker.lean Modified Mathlib/Algebra/Group/Subgroup/Lattice.lean Modified Mathlib/Algebra/Group/Subgroup/Map.lean Modified Mathlib/Algebra/Group/Subgroup/MulOppositeLemmas.lean Modified Mathlib/Algebra/Group/Subgroup/Order.lean Modified Mathlib/Algebra/Group/Subgroup/Pointwise.lean Modified Mathlib/Algebra/Group/Subgroup/ZPowers/Basic.lean Modified Mathlib/Algebra/Group/Submonoid/BigOperators.lean Modified Mathlib/Algebra/Group/Submonoid/Membership.lean Modified Mathlib/Algebra/Group/Submonoid/Pointwise.lean Modified Mathlib/Algebra/Group/Submonoid/Units.lean Modified Mathlib/Algebra/GroupWithZero/Action/Pointwise/Finset.lean Modified Mathlib/Algebra/GroupWithZero/Action/Pointwise/Set.lean Modified Mathlib/Algebra/GroupWithZero/Associated.lean Modified Mathlib/Algebra/GroupWithZero/NonZeroDivisors.lean Modified Mathlib/Algebra/GroupWithZero/Subgroup.lean Modified Mathlib/Algebra/GroupWithZero/Submonoid/Pointwise.lean Modified Mathlib/Algebra/Homology/Additive.lean Modified Mathlib/Algebra/Homology/AlternatingConst.lean Modified Mathlib/Algebra/Homology/Augment.lean Modified Mathlib/Algebra/Homology/Bifunctor.lean Modified Mathlib/Algebra/Homology/BifunctorAssociator.lean Modified Mathlib/Algebra/Homology/BifunctorFlip.lean Modified Mathlib/Algebra/Homology/BifunctorHomotopy.lean Modified Mathlib/Algebra/Homology/BifunctorShift.lean Modified Mathlib/Algebra/Homology/CochainComplexOpposite.lean Modified Mathlib/Algebra/Homology/CommSq.lean Modified Mathlib/Algebra/Homology/ComplexShapeSigns.lean Modified Mathlib/Algebra/Homology/DerivedCategory/Basic.lean Modified Mathlib/Algebra/Homology/DerivedCategory/ExactFunctor.lean Modified Mathlib/Algebra/Homology/DerivedCategory/Ext/Basic.lean Modified Mathlib/Algebra/Homology/DerivedCategory/Ext/EnoughInjectives.lean Modified Mathlib/Algebra/Homology/DerivedCategory/Ext/EnoughProjectives.lean Modified Mathlib/Algebra/Homology/DerivedCategory/Ext/ExtClass.lean Modified Mathlib/Algebra/Homology/DerivedCategory/Ext/Map.lean Modified Mathlib/Algebra/Homology/DerivedCategory/Ext/TStructure.lean Modified Mathlib/Algebra/Homology/DerivedCategory/FullyFaithful.lean Modified Mathlib/Algebra/Homology/DerivedCategory/KInjective.lean Modified Mathlib/Algebra/Homology/DerivedCategory/KProjective.lean Modified Mathlib/Algebra/Homology/DerivedCategory/ShortExact.lean Modified Mathlib/Algebra/Homology/DerivedCategory/SingleTriangle.lean Modified Mathlib/Algebra/Homology/DerivedCategory/SmallShiftedHom.lean Modified Mathlib/Algebra/Homology/DerivedCategory/TStructure.lean - def DerivedCategory.TStructure.t Modified Mathlib/Algebra/Homology/DifferentialObject.lean Modified Mathlib/Algebra/Homology/Double.lean Modified Mathlib/Algebra/Homology/Embedding/Connect.lean Modified Mathlib/Algebra/Homology/Embedding/Extend.lean Modified Mathlib/Algebra/Homology/Embedding/ExtendHomology.lean Modified Mathlib/Algebra/Homology/Embedding/HomEquiv.lean Modified Mathlib/Algebra/Homology/Embedding/IsSupported.lean Modified Mathlib/Algebra/Homology/Embedding/RestrictionHomology.lean Modified Mathlib/Algebra/Homology/Embedding/StupidTrunc.lean Modified Mathlib/Algebra/Homology/Embedding/TruncGE.lean Modified Mathlib/Algebra/Homology/Embedding/TruncGEHomology.lean Modified Mathlib/Algebra/Homology/Embedding/TruncLE.lean Modified Mathlib/Algebra/Homology/Embedding/TruncLEHomology.lean Modified Mathlib/Algebra/Homology/EulerCharacteristic.lean Modified Mathlib/Algebra/Homology/ExactSequence.lean Modified Mathlib/Algebra/Homology/ExactSequenceFour.lean Modified Mathlib/Algebra/Homology/Factorizations/CM5b.lean Modified Mathlib/Algebra/Homology/Functor.lean Modified Mathlib/Algebra/Homology/HomologicalComplex.lean Modified Mathlib/Algebra/Homology/HomologicalComplexAbelian.lean Modified Mathlib/Algebra/Homology/HomologicalComplexLimits.lean Modified Mathlib/Algebra/Homology/HomologySequence.lean Modified Mathlib/Algebra/Homology/HomologySequenceLemmas.lean Modified Mathlib/Algebra/Homology/Homotopy.lean Modified Mathlib/Algebra/Homology/HomotopyCategory.lean Modified Mathlib/Algebra/Homology/HomotopyCategory/DegreewiseSplit.lean Modified Mathlib/Algebra/Homology/HomotopyCategory/HomComplex.lean Modified Mathlib/Algebra/Homology/HomotopyCategory/HomComplexCohomology.lean Modified Mathlib/Algebra/Homology/HomotopyCategory/HomComplexShift.lean Modified Mathlib/Algebra/Homology/HomotopyCategory/HomComplexSingle.lean Modified Mathlib/Algebra/Homology/HomotopyCategory/KProjective.lean Modified Mathlib/Algebra/Homology/HomotopyCategory/MappingCone.lean Modified Mathlib/Algebra/Homology/HomotopyCategory/Pretriangulated.lean Modified Mathlib/Algebra/Homology/HomotopyCategory/Shift.lean Modified Mathlib/Algebra/Homology/HomotopyCategory/ShiftSequence.lean Modified Mathlib/Algebra/Homology/HomotopyCategory/ShortExact.lean Modified Mathlib/Algebra/Homology/HomotopyCategory/SingleFunctors.lean Modified Mathlib/Algebra/Homology/HomotopyCategory/SpectralObject.lean Modified Mathlib/Algebra/Homology/HomotopyCategory/Triangulated.lean Modified Mathlib/Algebra/Homology/HomotopyCofiber.lean Modified Mathlib/Algebra/Homology/LeftResolution/Basic.lean Modified Mathlib/Algebra/Homology/LeftResolution/Reduced.lean Modified Mathlib/Algebra/Homology/LeftResolution/Transport.lean Modified Mathlib/Algebra/Homology/Localization.lean Modified Mathlib/Algebra/Homology/Monoidal.lean Modified Mathlib/Algebra/Homology/Opposite.lean Modified Mathlib/Algebra/Homology/QuasiIso.lean Modified Mathlib/Algebra/Homology/ShortComplex/Ab.lean Modified Mathlib/Algebra/Homology/ShortComplex/Abelian.lean Modified Mathlib/Algebra/Homology/ShortComplex/ConcreteCategory.lean Modified Mathlib/Algebra/Homology/ShortComplex/Exact.lean Modified Mathlib/Algebra/Homology/ShortComplex/ExactFunctor.lean Modified Mathlib/Algebra/Homology/ShortComplex/HomologicalComplex.lean Modified Mathlib/Algebra/Homology/ShortComplex/Homology.lean Modified Mathlib/Algebra/Homology/ShortComplex/LeftHomology.lean Modified Mathlib/Algebra/Homology/ShortComplex/Limits.lean Modified Mathlib/Algebra/Homology/ShortComplex/ModuleCat.lean Modified Mathlib/Algebra/Homology/ShortComplex/Preadditive.lean Modified Mathlib/Algebra/Homology/ShortComplex/PreservesHomology.lean Modified Mathlib/Algebra/Homology/ShortComplex/QuasiIso.lean Modified Mathlib/Algebra/Homology/ShortComplex/Retract.lean Modified Mathlib/Algebra/Homology/ShortComplex/RightHomology.lean Modified Mathlib/Algebra/Homology/ShortComplex/SnakeLemma.lean Modified Mathlib/Algebra/Homology/Single.lean Modified Mathlib/Algebra/Homology/TotalComplex.lean Modified Mathlib/Algebra/Homology/TotalComplexShift.lean Modified Mathlib/Algebra/Homology/TotalComplexSymmetry.lean Modified Mathlib/Algebra/Jordan/Basic.lean Modified Mathlib/Algebra/Lie/Abelian.lean Modified Mathlib/Algebra/Lie/BaseChange.lean Modified Mathlib/Algebra/Lie/CartanExists.lean Modified Mathlib/Algebra/Lie/Classical.lean Modified Mathlib/Algebra/Lie/Derivation/Basic.lean Modified Mathlib/Algebra/Lie/Derivation/Killing.lean Modified Mathlib/Algebra/Lie/DirectSum.lean Modified Mathlib/Algebra/Lie/Engel.lean Modified Mathlib/Algebra/Lie/EngelSubalgebra.lean Modified Mathlib/Algebra/Lie/Extension.lean Modified Mathlib/Algebra/Lie/Free.lean Modified Mathlib/Algebra/Lie/Ideal.lean Modified Mathlib/Algebra/Lie/Killing.lean Modified Mathlib/Algebra/Lie/LieTheorem.lean Modified Mathlib/Algebra/Lie/Loop.lean Modified Mathlib/Algebra/Lie/Nilpotent.lean Modified Mathlib/Algebra/Lie/NonUnitalNonAssocAlgebra.lean Modified Mathlib/Algebra/Lie/Normalizer.lean Modified Mathlib/Algebra/Lie/OfAssociative.lean Modified Mathlib/Algebra/Lie/Quotient.lean Modified Mathlib/Algebra/Lie/Semisimple/Basic.lean Modified Mathlib/Algebra/Lie/Semisimple/Lemmas.lean Modified Mathlib/Algebra/Lie/SkewAdjoint.lean Modified Mathlib/Algebra/Lie/Sl2.lean Modified Mathlib/Algebra/Lie/Solvable.lean Modified Mathlib/Algebra/Lie/Subalgebra.lean Modified Mathlib/Algebra/Lie/Submodule.lean Modified Mathlib/Algebra/Lie/TensorProduct.lean Modified Mathlib/Algebra/Lie/TraceForm.lean Modified Mathlib/Algebra/Lie/UniversalEnveloping.lean Modified Mathlib/Algebra/Lie/Weights/Basic.lean Modified Mathlib/Algebra/Lie/Weights/Cartan.lean Modified Mathlib/Algebra/Lie/Weights/Chain.lean Modified Mathlib/Algebra/Lie/Weights/IsSimple.lean Modified Mathlib/Algebra/Lie/Weights/Killing.lean Modified Mathlib/Algebra/Lie/Weights/Linear.lean Modified Mathlib/Algebra/Lie/Weights/RootSystem.lean Modified Mathlib/Algebra/LieRinehartAlgebra/Defs.lean Modified Mathlib/Algebra/Module/CharacterModule.lean Modified Mathlib/Algebra/Module/Congruence/Defs.lean Modified Mathlib/Algebra/Module/DedekindDomain.lean Modified Mathlib/Algebra/Module/End.lean Modified Mathlib/Algebra/Module/Equiv/Basic.lean Modified Mathlib/Algebra/Module/FinitePresentation.lean Modified Mathlib/Algebra/Module/Hom.lean Modified Mathlib/Algebra/Module/Injective.lean Modified Mathlib/Algebra/Module/Lattice.lean Modified Mathlib/Algebra/Module/LinearMap/Basic.lean Modified Mathlib/Algebra/Module/LinearMap/Polynomial.lean Modified Mathlib/Algebra/Module/LocalizedModule/Basic.lean Modified Mathlib/Algebra/Module/LocalizedModule/Int.lean Modified Mathlib/Algebra/Module/NatInt.lean Modified Mathlib/Algebra/Module/PID.lean Modified Mathlib/Algebra/Module/Presentation/Basic.lean Modified Mathlib/Algebra/Module/Presentation/Cokernel.lean Modified Mathlib/Algebra/Module/Presentation/Differentials.lean Modified Mathlib/Algebra/Module/Presentation/DirectSum.lean Modified Mathlib/Algebra/Module/Presentation/Tautological.lean Modified Mathlib/Algebra/Module/Presentation/Tensor.lean Modified Mathlib/Algebra/Module/Submodule/Invariant.lean Modified Mathlib/Algebra/Module/Submodule/Ker.lean Modified Mathlib/Algebra/Module/Submodule/LinearMap.lean Modified Mathlib/Algebra/Module/Submodule/Pointwise.lean Modified Mathlib/Algebra/Module/Submodule/Union.lean Modified Mathlib/Algebra/Module/Torsion/Basic.lean Modified Mathlib/Algebra/Module/ZLattice/Basic.lean Modified Mathlib/Algebra/Module/ZLattice/Covolume.lean Modified Mathlib/Algebra/Module/ZLattice/Summable.lean Modified Mathlib/Algebra/MonoidAlgebra/Basic.lean Modified Mathlib/Algebra/MonoidAlgebra/Defs.lean Modified Mathlib/Algebra/MonoidAlgebra/Degree.lean Modified Mathlib/Algebra/MonoidAlgebra/Division.lean Modified Mathlib/Algebra/MonoidAlgebra/Grading.lean Modified Mathlib/Algebra/MonoidAlgebra/Ideal.lean Modified Mathlib/Algebra/MonoidAlgebra/MapDomain.lean Modified Mathlib/Algebra/MonoidAlgebra/Module.lean Modified Mathlib/Algebra/MonoidAlgebra/NoZeroDivisors.lean Modified Mathlib/Algebra/MonoidAlgebra/Opposite.lean Modified Mathlib/Algebra/MonoidAlgebra/Support.lean Modified Mathlib/Algebra/MvPolynomial/Basic.lean Modified Mathlib/Algebra/MvPolynomial/Degrees.lean Modified Mathlib/Algebra/MvPolynomial/Equiv.lean Modified Mathlib/Algebra/MvPolynomial/Eval.lean Modified Mathlib/Algebra/MvPolynomial/Monad.lean Modified Mathlib/Algebra/MvPolynomial/Nilpotent.lean Modified Mathlib/Algebra/MvPolynomial/NoZeroDivisors.lean Modified Mathlib/Algebra/MvPolynomial/PDeriv.lean Modified Mathlib/Algebra/MvPolynomial/Rename.lean Modified Mathlib/Algebra/MvPolynomial/SchwartzZippel.lean Modified Mathlib/Algebra/Notation/Indicator.lean Modified Mathlib/Algebra/Notation/Support.lean Modified Mathlib/Algebra/Order/AddGroupWithTop.lean Modified Mathlib/Algebra/Order/Antidiag/Pi.lean Modified Mathlib/Algebra/Order/Antidiag/Prod.lean Modified Mathlib/Algebra/Order/Archimedean/Basic.lean Modified Mathlib/Algebra/Order/Archimedean/Class.lean - def FiniteMulArchimedeanClass.subgroup - def FiniteMulArchimedeanClass.toUpperSetMulArchimedeanClass Modified Mathlib/Algebra/Order/CauSeq/BigOperators.lean Modified Mathlib/Algebra/Order/Field/Basic.lean Modified Mathlib/Algebra/Order/Field/Power.lean Modified Mathlib/Algebra/Order/Field/Rat.lean Modified Mathlib/Algebra/Order/Floor/Ring.lean Modified Mathlib/Algebra/Order/Floor/Semifield.lean Modified Mathlib/Algebra/Order/Floor/Semiring.lean Modified Mathlib/Algebra/Order/Group/Finset.lean Modified Mathlib/Algebra/Order/Group/Int/Sum.lean Modified Mathlib/Algebra/Order/Group/PartialSups.lean Modified Mathlib/Algebra/Order/Group/Unbundled/Abs.lean Modified Mathlib/Algebra/Order/GroupWithZero/Canonical.lean Modified Mathlib/Algebra/Order/GroupWithZero/Finset.lean Modified Mathlib/Algebra/Order/Hom/Monoid.lean Modified Mathlib/Algebra/Order/Interval/Basic.lean Modified Mathlib/Algebra/Order/Interval/Set/Group.lean Modified Mathlib/Algebra/Order/Module/Basic.lean Modified Mathlib/Algebra/Order/Module/HahnEmbedding.lean - def HahnEmbedding.Partial.toOrderAddMonoidHom Modified Mathlib/Algebra/Order/Module/OrderedSMul.lean Modified Mathlib/Algebra/Order/Module/PositiveLinearMap.lean Modified Mathlib/Algebra/Order/Module/Synonym.lean Modified Mathlib/Algebra/Order/Monoid/LocallyFiniteOrder.lean Modified Mathlib/Algebra/Order/Monoid/Unbundled/WithTop.lean Modified Mathlib/Algebra/Order/Monoid/WithTop.lean Modified Mathlib/Algebra/Order/Monovary.lean Modified Mathlib/Algebra/Order/Nonneg/Lattice.lean Modified Mathlib/Algebra/Order/Nonneg/Ring.lean Modified Mathlib/Algebra/Order/Ring/Abs.lean Modified Mathlib/Algebra/Order/Ring/Basic.lean Modified Mathlib/Algebra/Order/Ring/Cast.lean Modified Mathlib/Algebra/Order/Ring/Idempotent.lean Modified Mathlib/Algebra/Order/Ring/Int.lean Modified Mathlib/Algebra/Order/Ring/IsNonarchimedean.lean Modified Mathlib/Algebra/Order/Ring/Nat.lean Modified Mathlib/Algebra/Order/Ring/StandardPart.lean - def ArchimedeanClass.FiniteResidueField.mk - def ArchimedeanClass.FiniteResidueField.ofArchimedean Modified Mathlib/Algebra/Order/Ring/Unbundled/Rat.lean Modified Mathlib/Algebra/Order/Ring/WithTop.lean Modified Mathlib/Algebra/Order/Star/Conjneg.lean Modified Mathlib/Algebra/Order/ToIntervalMod.lean Modified Mathlib/Algebra/Order/UpperLower.lean Modified Mathlib/Algebra/Order/WithTop/Untop0.lean Modified Mathlib/Algebra/Pointwise/Stabilizer.lean Modified Mathlib/Algebra/Polynomial/AlgebraMap.lean Modified Mathlib/Algebra/Polynomial/Basic.lean Modified Mathlib/Algebra/Polynomial/BigOperators.lean Modified Mathlib/Algebra/Polynomial/Degree/Operations.lean Modified Mathlib/Algebra/Polynomial/Degree/TrailingDegree.lean Modified Mathlib/Algebra/Polynomial/Derivative.lean Modified Mathlib/Algebra/Polynomial/Div.lean Modified Mathlib/Algebra/Polynomial/Expand.lean Modified Mathlib/Algebra/Polynomial/FieldDivision.lean Modified Mathlib/Algebra/Polynomial/HasseDeriv.lean Modified Mathlib/Algebra/Polynomial/Homogenize.lean Modified Mathlib/Algebra/Polynomial/Laurent.lean Modified Mathlib/Algebra/Polynomial/Mirror.lean Modified Mathlib/Algebra/Polynomial/Module/AEval.lean Modified Mathlib/Algebra/Polynomial/Module/Basic.lean Modified Mathlib/Algebra/Polynomial/Monic.lean Modified Mathlib/Algebra/Polynomial/OfFn.lean Modified Mathlib/Algebra/Polynomial/Reverse.lean Modified Mathlib/Algebra/Polynomial/Roots.lean Modified Mathlib/Algebra/Polynomial/Smeval.lean Modified Mathlib/Algebra/Polynomial/Splits.lean Modified Mathlib/Algebra/Polynomial/SumIteratedDerivative.lean Modified Mathlib/Algebra/Polynomial/UnitTrinomial.lean Modified Mathlib/Algebra/Quandle.lean Modified Mathlib/Algebra/Quaternion.lean Modified Mathlib/Algebra/Regular/Defs.lean Modified Mathlib/Algebra/Ring/BooleanRing.lean Modified Mathlib/Algebra/Ring/GeomSum.lean Modified Mathlib/Algebra/Ring/Int/Parity.lean Modified Mathlib/Algebra/Ring/Invertible.lean Modified Mathlib/Algebra/Ring/NegOnePow.lean Modified Mathlib/Algebra/Ring/Periodic.lean Modified Mathlib/Algebra/Ring/Pointwise/Finset.lean Modified Mathlib/Algebra/Ring/Pointwise/Set.lean Modified Mathlib/Algebra/Ring/Prod.lean Modified Mathlib/Algebra/Ring/Subgroup.lean Modified Mathlib/Algebra/Ring/Submonoid/Pointwise.lean Modified Mathlib/Algebra/Ring/Subring/Basic.lean Modified Mathlib/Algebra/Ring/Subring/MulOpposite.lean Modified Mathlib/Algebra/Ring/Subring/Pointwise.lean Modified Mathlib/Algebra/Ring/Subsemiring/Basic.lean Modified Mathlib/Algebra/Ring/Subsemiring/MulOpposite.lean Modified Mathlib/Algebra/Ring/Subsemiring/Pointwise.lean Modified Mathlib/Algebra/RingQuot.lean Modified Mathlib/Algebra/SkewMonoidAlgebra/Basic.lean Modified Mathlib/Algebra/SkewMonoidAlgebra/Support.lean Modified Mathlib/Algebra/SkewPolynomial/Basic.lean Modified Mathlib/Algebra/Squarefree/Basic.lean Modified Mathlib/Algebra/Star/CentroidHom.lean Modified Mathlib/Algebra/Star/LinearMap.lean Modified Mathlib/Algebra/Star/NonUnitalSubalgebra.lean Modified Mathlib/Algebra/Star/Pointwise.lean Modified Mathlib/Algebra/Star/StarAlgHom.lean Modified Mathlib/Algebra/Symmetrized.lean Modified Mathlib/Algebra/TrivSqZeroExt.lean Modified Mathlib/Algebra/Tropical/Basic.lean Modified Mathlib/Algebra/Tropical/BigOperators.lean Modified Mathlib/Algebra/Vertex/HVertexOperator.lean Modified Mathlib/AlgebraicGeometry/AffineScheme.lean Modified Mathlib/AlgebraicGeometry/AffineSpace.lean Modified Mathlib/AlgebraicGeometry/AffineTransitionLimit.lean Modified Mathlib/AlgebraicGeometry/AlgClosed/Basic.lean Modified Mathlib/AlgebraicGeometry/Artinian.lean Modified Mathlib/AlgebraicGeometry/ColimitsOver.lean Modified Mathlib/AlgebraicGeometry/Cover/Directed.lean Modified Mathlib/AlgebraicGeometry/Cover/MorphismProperty.lean Modified Mathlib/AlgebraicGeometry/Cover/Open.lean Modified Mathlib/AlgebraicGeometry/Cover/Over.lean Modified Mathlib/AlgebraicGeometry/Cover/QuasiCompact.lean Modified Mathlib/AlgebraicGeometry/Cover/Sigma.lean Modified Mathlib/AlgebraicGeometry/EllipticCurve/Affine/Point.lean Modified Mathlib/AlgebraicGeometry/EllipticCurve/DivisionPolynomial/Degree.lean Modified Mathlib/AlgebraicGeometry/EllipticCurve/Jacobian/Point.lean Modified Mathlib/AlgebraicGeometry/EllipticCurve/NormalForms.lean Modified Mathlib/AlgebraicGeometry/EllipticCurve/Projective/Point.lean Modified Mathlib/AlgebraicGeometry/EllipticCurve/Reduction.lean Modified Mathlib/AlgebraicGeometry/Fiber.lean Modified Mathlib/AlgebraicGeometry/FunctionField.lean Modified Mathlib/AlgebraicGeometry/GammaSpecAdjunction.lean Modified Mathlib/AlgebraicGeometry/Geometrically/Basic.lean Modified Mathlib/AlgebraicGeometry/Geometrically/Reduced.lean Modified Mathlib/AlgebraicGeometry/Gluing.lean Modified Mathlib/AlgebraicGeometry/Group/Abelian.lean Modified Mathlib/AlgebraicGeometry/Group/Smooth.lean Modified Mathlib/AlgebraicGeometry/IdealSheaf/Basic.lean Modified Mathlib/AlgebraicGeometry/IdealSheaf/Functorial.lean Modified Mathlib/AlgebraicGeometry/IdealSheaf/Subscheme.lean Modified Mathlib/AlgebraicGeometry/Limits.lean Modified Mathlib/AlgebraicGeometry/LimitsOver.lean Modified Mathlib/AlgebraicGeometry/Modules/Sheaf.lean Modified Mathlib/AlgebraicGeometry/Modules/Tilde.lean Modified Mathlib/AlgebraicGeometry/Morphisms/Affine.lean Modified Mathlib/AlgebraicGeometry/Morphisms/AffineAnd.lean Modified Mathlib/AlgebraicGeometry/Morphisms/Basic.lean Modified Mathlib/AlgebraicGeometry/Morphisms/ClosedImmersion.lean Modified Mathlib/AlgebraicGeometry/Morphisms/Constructors.lean Modified Mathlib/AlgebraicGeometry/Morphisms/Descent.lean Modified Mathlib/AlgebraicGeometry/Morphisms/Finite.lean Modified Mathlib/AlgebraicGeometry/Morphisms/FinitePresentation.lean Modified Mathlib/AlgebraicGeometry/Morphisms/Flat.lean Modified Mathlib/AlgebraicGeometry/Morphisms/FormallyUnramified.lean Modified Mathlib/AlgebraicGeometry/Morphisms/Immersion.lean Modified Mathlib/AlgebraicGeometry/Morphisms/Integral.lean Modified Mathlib/AlgebraicGeometry/Morphisms/IsIso.lean Modified Mathlib/AlgebraicGeometry/Morphisms/LocalIso.lean Modified Mathlib/AlgebraicGeometry/Morphisms/OpenImmersion.lean Modified Mathlib/AlgebraicGeometry/Morphisms/Proper.lean Modified Mathlib/AlgebraicGeometry/Morphisms/QuasiCompact.lean Modified Mathlib/AlgebraicGeometry/Morphisms/QuasiFinite.lean Modified Mathlib/AlgebraicGeometry/Morphisms/QuasiSeparated.lean Modified Mathlib/AlgebraicGeometry/Morphisms/RingHomProperties.lean Modified Mathlib/AlgebraicGeometry/Morphisms/SchemeTheoreticallyDominant.lean Modified Mathlib/AlgebraicGeometry/Morphisms/Separated.lean Modified Mathlib/AlgebraicGeometry/Morphisms/Smooth.lean Modified Mathlib/AlgebraicGeometry/Morphisms/SurjectiveOnStalks.lean Modified Mathlib/AlgebraicGeometry/Morphisms/UniversallyClosed.lean Modified Mathlib/AlgebraicGeometry/Morphisms/UniversallyOpen.lean Modified Mathlib/AlgebraicGeometry/Noetherian.lean Modified Mathlib/AlgebraicGeometry/Normalization.lean Modified Mathlib/AlgebraicGeometry/OpenImmersion.lean Modified Mathlib/AlgebraicGeometry/PointsPi.lean Modified Mathlib/AlgebraicGeometry/ProjectiveSpectrum/Basic.lean Modified Mathlib/AlgebraicGeometry/ProjectiveSpectrum/Proper.lean Modified Mathlib/AlgebraicGeometry/ProjectiveSpectrum/Scheme.lean Modified Mathlib/AlgebraicGeometry/ProjectiveSpectrum/StructureSheaf.lean Modified Mathlib/AlgebraicGeometry/ProjectiveSpectrum/Topology.lean Modified Mathlib/AlgebraicGeometry/Properties.lean Modified Mathlib/AlgebraicGeometry/PullbackCarrier.lean Modified Mathlib/AlgebraicGeometry/Pullbacks.lean Modified Mathlib/AlgebraicGeometry/QuasiAffine.lean Modified Mathlib/AlgebraicGeometry/RationalMap.lean Modified Mathlib/AlgebraicGeometry/RelativeGluing.lean Modified Mathlib/AlgebraicGeometry/Restrict.lean Modified Mathlib/AlgebraicGeometry/Scheme.lean Modified Mathlib/AlgebraicGeometry/Sites/Etale.lean Modified Mathlib/AlgebraicGeometry/Sites/Representability.lean Modified Mathlib/AlgebraicGeometry/Sites/Small.lean Modified Mathlib/AlgebraicGeometry/Sites/SmallAffineZariski.lean Modified Mathlib/AlgebraicGeometry/Spec.lean Modified Mathlib/AlgebraicGeometry/SpreadingOut.lean Modified Mathlib/AlgebraicGeometry/Stalk.lean Modified Mathlib/AlgebraicGeometry/StructureSheaf.lean Modified Mathlib/AlgebraicGeometry/ValuativeCriterion.lean Modified Mathlib/AlgebraicGeometry/ZariskisMainTheorem.lean Modified Mathlib/AlgebraicTopology/AlternatingFaceMapComplex.lean Modified Mathlib/AlgebraicTopology/CechNerve.lean Modified Mathlib/AlgebraicTopology/DoldKan/Compatibility.lean Modified Mathlib/AlgebraicTopology/DoldKan/Decomposition.lean Modified Mathlib/AlgebraicTopology/DoldKan/Degeneracies.lean Modified Mathlib/AlgebraicTopology/DoldKan/EquivalenceAdditive.lean Modified Mathlib/AlgebraicTopology/DoldKan/EquivalencePseudoabelian.lean Modified Mathlib/AlgebraicTopology/DoldKan/Faces.lean Modified Mathlib/AlgebraicTopology/DoldKan/FunctorGamma.lean Modified Mathlib/AlgebraicTopology/DoldKan/FunctorN.lean Modified Mathlib/AlgebraicTopology/DoldKan/GammaCompN.lean Modified Mathlib/AlgebraicTopology/DoldKan/Homotopies.lean Modified Mathlib/AlgebraicTopology/DoldKan/HomotopyEquivalence.lean Modified Mathlib/AlgebraicTopology/DoldKan/NCompGamma.lean Modified Mathlib/AlgebraicTopology/DoldKan/NReflectsIso.lean Modified Mathlib/AlgebraicTopology/DoldKan/Normalized.lean Modified Mathlib/AlgebraicTopology/DoldKan/PInfty.lean Modified Mathlib/AlgebraicTopology/DoldKan/Projections.lean Modified Mathlib/AlgebraicTopology/DoldKan/SplitSimplicialObject.lean Modified Mathlib/AlgebraicTopology/ExtraDegeneracy.lean Modified Mathlib/AlgebraicTopology/FundamentalGroupoid/Basic.lean Modified Mathlib/AlgebraicTopology/FundamentalGroupoid/InducedMaps.lean Modified Mathlib/AlgebraicTopology/FundamentalGroupoid/Product.lean Modified Mathlib/AlgebraicTopology/FundamentalGroupoid/SimplyConnected.lean Modified Mathlib/AlgebraicTopology/ModelCategory/Basic.lean Modified Mathlib/AlgebraicTopology/ModelCategory/BifibrantObjectHomotopy.lean Modified Mathlib/AlgebraicTopology/ModelCategory/BrownLemma.lean Modified Mathlib/AlgebraicTopology/ModelCategory/CofibrantObjectHomotopy.lean Modified Mathlib/AlgebraicTopology/ModelCategory/Cylinder.lean Modified Mathlib/AlgebraicTopology/ModelCategory/DerivabilityStructureCofibrant.lean Modified Mathlib/AlgebraicTopology/ModelCategory/DerivabilityStructureFibrant.lean Modified Mathlib/AlgebraicTopology/ModelCategory/FibrantObjectHomotopy.lean Modified Mathlib/AlgebraicTopology/ModelCategory/Homotopy.lean Modified Mathlib/AlgebraicTopology/ModelCategory/JoyalTrick.lean Modified Mathlib/AlgebraicTopology/ModelCategory/LeftHomotopy.lean Modified Mathlib/AlgebraicTopology/ModelCategory/PathObject.lean Modified Mathlib/AlgebraicTopology/ModelCategory/RightHomotopy.lean Modified Mathlib/AlgebraicTopology/MooreComplex.lean Modified Mathlib/AlgebraicTopology/Quasicategory/Basic.lean Modified Mathlib/AlgebraicTopology/Quasicategory/StrictSegal.lean Modified Mathlib/AlgebraicTopology/Quasicategory/TwoTruncated.lean Modified Mathlib/AlgebraicTopology/RelativeCellComplex/AttachCells.lean Modified Mathlib/AlgebraicTopology/RelativeCellComplex/Basic.lean Modified Mathlib/AlgebraicTopology/SimplexCategory/Augmented/Monoidal.lean Modified Mathlib/AlgebraicTopology/SimplexCategory/Basic.lean Modified Mathlib/AlgebraicTopology/SimplexCategory/GeneratorsRelations/NormalForms.lean Modified Mathlib/AlgebraicTopology/SimplexCategory/Rev.lean Modified Mathlib/AlgebraicTopology/SimplicialNerve.lean Modified Mathlib/AlgebraicTopology/SimplicialObject/Basic.lean Modified Mathlib/AlgebraicTopology/SimplicialObject/Coskeletal.lean Modified Mathlib/AlgebraicTopology/SimplicialObject/Split.lean Modified Mathlib/AlgebraicTopology/SimplicialSet/AnodyneExtensions/PairingCore.lean Modified Mathlib/AlgebraicTopology/SimplicialSet/Basic.lean Modified Mathlib/AlgebraicTopology/SimplicialSet/Boundary.lean Modified Mathlib/AlgebraicTopology/SimplicialSet/Coskeletal.lean Modified Mathlib/AlgebraicTopology/SimplicialSet/Degenerate.lean Modified Mathlib/AlgebraicTopology/SimplicialSet/Dimension.lean Modified Mathlib/AlgebraicTopology/SimplicialSet/Finite.lean Modified Mathlib/AlgebraicTopology/SimplicialSet/FiniteColimits.lean Modified Mathlib/AlgebraicTopology/SimplicialSet/FiniteProd.lean Modified Mathlib/AlgebraicTopology/SimplicialSet/HoFunctorMonoidal.lean Modified Mathlib/AlgebraicTopology/SimplicialSet/HomotopyCat.lean Modified Mathlib/AlgebraicTopology/SimplicialSet/Horn.lean Modified Mathlib/AlgebraicTopology/SimplicialSet/HornColimits.lean Modified Mathlib/AlgebraicTopology/SimplicialSet/Monoidal.lean Modified Mathlib/AlgebraicTopology/SimplicialSet/Nerve.lean Modified Mathlib/AlgebraicTopology/SimplicialSet/NerveAdjunction.lean Modified Mathlib/AlgebraicTopology/SimplicialSet/NerveNondegenerate.lean Modified Mathlib/AlgebraicTopology/SimplicialSet/NonDegenerateSimplices.lean Modified Mathlib/AlgebraicTopology/SimplicialSet/Op.lean Modified Mathlib/AlgebraicTopology/SimplicialSet/Path.lean Modified Mathlib/AlgebraicTopology/SimplicialSet/Presentable.lean Modified Mathlib/AlgebraicTopology/SimplicialSet/ProdStdSimplex.lean Modified Mathlib/AlgebraicTopology/SimplicialSet/Skeleton.lean Modified Mathlib/AlgebraicTopology/SimplicialSet/StdSimplex.lean Modified Mathlib/AlgebraicTopology/SimplicialSet/StrictSegal.lean Modified Mathlib/AlgebraicTopology/SimplicialSet/Subcomplex.lean Modified Mathlib/AlgebraicTopology/SingularSet.lean Modified Mathlib/AlgebraicTopology/TopologicalSimplex.lean Modified Mathlib/Analysis/AbsoluteValue/Equivalence.lean Modified Mathlib/Analysis/Analytic/Basic.lean Modified Mathlib/Analysis/Analytic/Binomial.lean Modified Mathlib/Analysis/Analytic/CPolynomial.lean Modified Mathlib/Analysis/Analytic/ChangeOrigin.lean Modified Mathlib/Analysis/Analytic/Composition.lean Modified Mathlib/Analysis/Analytic/Constructions.lean Modified Mathlib/Analysis/Analytic/ConvergenceRadius.lean Modified Mathlib/Analysis/Analytic/Inverse.lean Modified Mathlib/Analysis/Analytic/IteratedFDeriv.lean Modified Mathlib/Analysis/Analytic/OfScalars.lean Modified Mathlib/Analysis/Analytic/Order.lean Modified Mathlib/Analysis/Analytic/Uniqueness.lean Modified Mathlib/Analysis/Analytic/Within.lean Modified Mathlib/Analysis/Asymptotics/ExpGrowth.lean Modified Mathlib/Analysis/Asymptotics/Lemmas.lean Modified Mathlib/Analysis/Asymptotics/LinearGrowth.lean Modified Mathlib/Analysis/BoundedVariation.lean Modified Mathlib/Analysis/BoxIntegral/Basic.lean Modified Mathlib/Analysis/BoxIntegral/Box/Basic.lean Modified Mathlib/Analysis/BoxIntegral/DivergenceTheorem.lean Modified Mathlib/Analysis/BoxIntegral/Partition/Additive.lean Modified Mathlib/Analysis/BoxIntegral/Partition/Basic.lean Modified Mathlib/Analysis/BoxIntegral/Partition/Filter.lean Modified Mathlib/Analysis/BoxIntegral/Partition/Split.lean Modified Mathlib/Analysis/BoxIntegral/UnitPartition.lean Modified Mathlib/Analysis/CStarAlgebra/ApproximateUnit.lean Modified Mathlib/Analysis/CStarAlgebra/Basic.lean Modified Mathlib/Analysis/CStarAlgebra/CStarMatrix.lean Modified Mathlib/Analysis/CStarAlgebra/Classes.lean Modified Mathlib/Analysis/CStarAlgebra/CompletelyPositiveMap.lean Modified Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Basic.lean Modified Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Commute.lean Modified Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Continuity.lean Modified Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Instances.lean Modified Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Integral.lean Modified Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Isometric.lean Modified Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/NonUnital.lean Modified Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Order.lean Modified Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Range.lean Modified Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Restrict.lean Modified Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Unique.lean Modified Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Unital.lean Modified Mathlib/Analysis/CStarAlgebra/ContinuousMap.lean Modified Mathlib/Analysis/CStarAlgebra/GelfandDuality.lean Modified Mathlib/Analysis/CStarAlgebra/GelfandNaimarkSegal.lean Modified Mathlib/Analysis/CStarAlgebra/Hom.lean Modified Mathlib/Analysis/CStarAlgebra/Matrix.lean Modified Mathlib/Analysis/CStarAlgebra/Module/Constructions.lean Modified Mathlib/Analysis/CStarAlgebra/PositiveLinearMap.lean Modified Mathlib/Analysis/CStarAlgebra/Spectrum.lean Modified Mathlib/Analysis/CStarAlgebra/Unitary/Connected.lean Modified Mathlib/Analysis/CStarAlgebra/Unitary/Span.lean Modified Mathlib/Analysis/CStarAlgebra/Unitization.lean Modified Mathlib/Analysis/CStarAlgebra/lpSpace.lean Modified Mathlib/Analysis/Calculus/BumpFunction/Basic.lean Modified Mathlib/Analysis/Calculus/BumpFunction/FiniteDimension.lean Modified Mathlib/Analysis/Calculus/BumpFunction/InnerProduct.lean Modified Mathlib/Analysis/Calculus/BumpFunction/Normed.lean Modified Mathlib/Analysis/Calculus/ContDiff/Bounds.lean Modified Mathlib/Analysis/Calculus/ContDiff/Comp.lean Modified Mathlib/Analysis/Calculus/ContDiff/Convolution.lean Modified Mathlib/Analysis/Calculus/ContDiff/Defs.lean Modified Mathlib/Analysis/Calculus/ContDiff/FTaylorSeries.lean Modified Mathlib/Analysis/Calculus/ContDiff/FaaDiBruno.lean Modified Mathlib/Analysis/Calculus/ContDiff/Operations.lean Modified Mathlib/Analysis/Calculus/ContDiff/RestrictScalars.lean Modified Mathlib/Analysis/Calculus/ContDiffHolder/Pointwise.lean Modified Mathlib/Analysis/Calculus/Deriv/ZPow.lean Modified Mathlib/Analysis/Calculus/DerivativeTest.lean Modified Mathlib/Analysis/Calculus/FDeriv/Analytic.lean Modified Mathlib/Analysis/Calculus/FDeriv/Basic.lean Modified Mathlib/Analysis/Calculus/FDeriv/Bilinear.lean Modified Mathlib/Analysis/Calculus/FDeriv/Congr.lean Modified Mathlib/Analysis/Calculus/FDeriv/Equiv.lean Modified Mathlib/Analysis/Calculus/FDeriv/Measurable.lean Modified Mathlib/Analysis/Calculus/FDeriv/Mul.lean Modified Mathlib/Analysis/Calculus/FDeriv/Norm.lean Modified Mathlib/Analysis/Calculus/FDeriv/Symmetric.lean Modified Mathlib/Analysis/Calculus/Implicit.lean Modified Mathlib/Analysis/Calculus/InverseFunctionTheorem/ApproximatesLinearOn.lean Modified Mathlib/Analysis/Calculus/InverseFunctionTheorem/FDeriv.lean Modified Mathlib/Analysis/Calculus/IteratedDeriv/FaaDiBruno.lean Modified Mathlib/Analysis/Calculus/IteratedDeriv/Lemmas.lean Modified Mathlib/Analysis/Calculus/LocalExtr/Basic.lean Modified Mathlib/Analysis/Calculus/LogDeriv.lean Modified Mathlib/Analysis/Calculus/MeanValue.lean Modified Mathlib/Analysis/Calculus/Monotone.lean Modified Mathlib/Analysis/Calculus/Rademacher.lean Modified Mathlib/Analysis/Calculus/SmoothSeries.lean Modified Mathlib/Analysis/Calculus/TangentCone/Real.lean Modified Mathlib/Analysis/Calculus/Taylor.lean Modified Mathlib/Analysis/Calculus/UniformLimitsDeriv.lean Modified Mathlib/Analysis/Calculus/VectorField.lean Modified Mathlib/Analysis/Complex/AbelLimit.lean Modified Mathlib/Analysis/Complex/AbsMax.lean Modified Mathlib/Analysis/Complex/Arg.lean Modified Mathlib/Analysis/Complex/Basic.lean Modified Mathlib/Analysis/Complex/BorelCaratheodory.lean Modified Mathlib/Analysis/Complex/CauchyIntegral.lean Modified Mathlib/Analysis/Complex/Circle.lean Modified Mathlib/Analysis/Complex/Conformal.lean Modified Mathlib/Analysis/Complex/Convex.lean Modified Mathlib/Analysis/Complex/CoveringMap.lean Modified Mathlib/Analysis/Complex/Exponential.lean Modified Mathlib/Analysis/Complex/Hadamard.lean Modified Mathlib/Analysis/Complex/Harmonic/Analytic.lean Modified Mathlib/Analysis/Complex/Harmonic/MeanValue.lean Modified Mathlib/Analysis/Complex/HasPrimitives.lean Modified Mathlib/Analysis/Complex/Isometry.lean Modified Mathlib/Analysis/Complex/JensenFormula.lean Modified Mathlib/Analysis/Complex/LocallyUniformLimit.lean Modified Mathlib/Analysis/Complex/MeanValue.lean Modified Mathlib/Analysis/Complex/Norm.lean Modified Mathlib/Analysis/Complex/OpenMapping.lean Modified Mathlib/Analysis/Complex/Order.lean Modified Mathlib/Analysis/Complex/Periodic.lean Modified Mathlib/Analysis/Complex/PhragmenLindelof.lean Modified Mathlib/Analysis/Complex/Polynomial/Basic.lean Modified Mathlib/Analysis/Complex/Polynomial/GaussLucas.lean Modified Mathlib/Analysis/Complex/RealDeriv.lean Modified Mathlib/Analysis/Complex/RemovableSingularity.lean Modified Mathlib/Analysis/Complex/Schwarz.lean Modified Mathlib/Analysis/Complex/Spectrum.lean Modified Mathlib/Analysis/Complex/Tietze.lean Modified Mathlib/Analysis/Complex/UnitDisc/Basic.lean Modified Mathlib/Analysis/Complex/UpperHalfPlane/Basic.lean Modified Mathlib/Analysis/Complex/UpperHalfPlane/Manifold.lean Modified Mathlib/Analysis/Complex/UpperHalfPlane/Metric.lean Modified Mathlib/Analysis/Complex/ValueDistribution/CharacteristicFunction.lean Modified Mathlib/Analysis/Complex/ValueDistribution/FirstMainTheorem.lean Modified Mathlib/Analysis/Complex/ValueDistribution/LogCounting/Basic.lean Modified Mathlib/Analysis/Convex/BetweenList.lean Modified Mathlib/Analysis/Convex/Birkhoff.lean Modified Mathlib/Analysis/Convex/Body.lean Modified Mathlib/Analysis/Convex/Caratheodory.lean Modified Mathlib/Analysis/Convex/Combination.lean Modified Mathlib/Analysis/Convex/Cone/Basic.lean Modified Mathlib/Analysis/Convex/Cone/Dual.lean Modified Mathlib/Analysis/Convex/Cone/Extension.lean Modified Mathlib/Analysis/Convex/Cone/InnerDual.lean Modified Mathlib/Analysis/Convex/Continuous.lean Modified Mathlib/Analysis/Convex/Contractible.lean Modified Mathlib/Analysis/Convex/Deriv.lean Modified Mathlib/Analysis/Convex/EGauge.lean Modified Mathlib/Analysis/Convex/Extrema.lean Modified Mathlib/Analysis/Convex/Function.lean Modified Mathlib/Analysis/Convex/Gauge.lean Modified Mathlib/Analysis/Convex/Intrinsic.lean Modified Mathlib/Analysis/Convex/Jensen.lean Modified Mathlib/Analysis/Convex/NNReal.lean Modified Mathlib/Analysis/Convex/Radon.lean Modified Mathlib/Analysis/Convex/Segment.lean Modified Mathlib/Analysis/Convex/Side.lean Modified Mathlib/Analysis/Convex/SimplicialComplex/Basic.lean Modified Mathlib/Analysis/Convex/SpecificFunctions/Basic.lean Modified Mathlib/Analysis/Convex/Star.lean Modified Mathlib/Analysis/Convex/StoneSeparation.lean Modified Mathlib/Analysis/Convex/StrictConvexBetween.lean Modified Mathlib/Analysis/Convex/StrictConvexSpace.lean Modified Mathlib/Analysis/Convex/Strong.lean Modified Mathlib/Analysis/Distribution/ContDiffMapSupportedIn.lean Modified Mathlib/Analysis/Distribution/SchwartzSpace/Basic.lean Modified Mathlib/Analysis/Distribution/SchwartzSpace/Deriv.lean Modified Mathlib/Analysis/Distribution/SchwartzSpace/Fourier.lean Modified Mathlib/Analysis/Distribution/TemperateGrowth.lean Modified Mathlib/Analysis/Distribution/TemperedDistribution.lean Modified Mathlib/Analysis/Distribution/TestFunction.lean - def TestFunction.ofSupportedInCLM Modified Mathlib/Analysis/Fourier/AddCircle.lean Modified Mathlib/Analysis/Fourier/AddCircleMulti.lean Modified Mathlib/Analysis/Fourier/BoundedContinuousFunctionChar.lean Modified Mathlib/Analysis/Fourier/Convolution.lean Modified Mathlib/Analysis/Fourier/FiniteAbelian/PontryaginDuality.lean Modified Mathlib/Analysis/Fourier/FourierTransform.lean Modified Mathlib/Analysis/Fourier/FourierTransformDeriv.lean Modified Mathlib/Analysis/Fourier/Inversion.lean Modified Mathlib/Analysis/Fourier/LpSpace.lean Modified Mathlib/Analysis/Fourier/PoissonSummation.lean Modified Mathlib/Analysis/Fourier/RiemannLebesgueLemma.lean Modified Mathlib/Analysis/Fourier/ZMod.lean Modified Mathlib/Analysis/FunctionalSpaces/SobolevInequality.lean Modified Mathlib/Analysis/Hofer.lean Modified Mathlib/Analysis/InnerProductSpace/Adjoint.lean Modified Mathlib/Analysis/InnerProductSpace/Basic.lean Modified Mathlib/Analysis/InnerProductSpace/Calculus.lean Modified Mathlib/Analysis/InnerProductSpace/Coalgebra.lean Modified Mathlib/Analysis/InnerProductSpace/Defs.lean Modified Mathlib/Analysis/InnerProductSpace/GramSchmidtOrtho.lean Modified Mathlib/Analysis/InnerProductSpace/Harmonic/Constructions.lean Modified Mathlib/Analysis/InnerProductSpace/JointEigenspace.lean Modified Mathlib/Analysis/InnerProductSpace/Laplacian.lean Modified Mathlib/Analysis/InnerProductSpace/LaxMilgram.lean Modified Mathlib/Analysis/InnerProductSpace/LinearMap.lean Modified Mathlib/Analysis/InnerProductSpace/LinearPMap.lean Modified Mathlib/Analysis/InnerProductSpace/MeanErgodic.lean Modified Mathlib/Analysis/InnerProductSpace/NormPow.lean Modified Mathlib/Analysis/InnerProductSpace/Orientation.lean Modified Mathlib/Analysis/InnerProductSpace/PiL2.lean Modified Mathlib/Analysis/InnerProductSpace/Positive.lean Modified Mathlib/Analysis/InnerProductSpace/ProdL2.lean Modified Mathlib/Analysis/InnerProductSpace/Projection/Basic.lean Modified Mathlib/Analysis/InnerProductSpace/Projection/FiniteDimensional.lean Modified Mathlib/Analysis/InnerProductSpace/Projection/Minimal.lean Modified Mathlib/Analysis/InnerProductSpace/Projection/Reflection.lean Modified Mathlib/Analysis/InnerProductSpace/Projection/Submodule.lean Modified Mathlib/Analysis/InnerProductSpace/Rayleigh.lean Modified Mathlib/Analysis/InnerProductSpace/Semisimple.lean Modified Mathlib/Analysis/InnerProductSpace/Spectrum.lean Modified Mathlib/Analysis/InnerProductSpace/StarOrder.lean Modified Mathlib/Analysis/InnerProductSpace/Subspace.lean Modified Mathlib/Analysis/InnerProductSpace/TensorProduct.lean - def LinearIsometry.lTensor - def LinearIsometry.rTensor - def LinearIsometryEquiv.lTensor - def LinearIsometryEquiv.rTensor - def TensorProduct.assocIsometry - def TensorProduct.commIsometry - def TensorProduct.congrIsometry - def TensorProduct.lidIsometry - def TensorProduct.mapInclIsometry - def TensorProduct.mapIsometry Modified Mathlib/Analysis/InnerProductSpace/TwoDim.lean Modified Mathlib/Analysis/InnerProductSpace/l2Space.lean Modified Mathlib/Analysis/LocallyConvex/AbsConvex.lean Modified Mathlib/Analysis/LocallyConvex/BalancedCoreHull.lean Modified Mathlib/Analysis/LocallyConvex/Bounded.lean Modified Mathlib/Analysis/LocallyConvex/SeparatingDual.lean Modified Mathlib/Analysis/LocallyConvex/WeakDual.lean Modified Mathlib/Analysis/LocallyConvex/WeakSpace.lean Modified Mathlib/Analysis/LocallyConvex/WithSeminorms.lean Modified Mathlib/Analysis/Matrix/HermitianFunctionalCalculus.lean Modified Mathlib/Analysis/Matrix/LDL.lean Modified Mathlib/Analysis/Matrix/Normed.lean Modified Mathlib/Analysis/Matrix/Order.lean Modified Mathlib/Analysis/Matrix/Spectrum.lean Modified Mathlib/Analysis/MeanInequalities.lean Modified Mathlib/Analysis/MellinInversion.lean Modified Mathlib/Analysis/MellinTransform.lean Modified Mathlib/Analysis/Meromorphic/Divisor.lean Modified Mathlib/Analysis/Meromorphic/FactorizedRational.lean Modified Mathlib/Analysis/Meromorphic/NormalForm.lean Modified Mathlib/Analysis/Meromorphic/Order.lean Modified Mathlib/Analysis/Meromorphic/TrailingCoefficient.lean Modified Mathlib/Analysis/Normed/Affine/AddTorsor.lean Modified Mathlib/Analysis/Normed/Affine/AddTorsorBases.lean Modified Mathlib/Analysis/Normed/Affine/Isometry.lean Modified Mathlib/Analysis/Normed/Algebra/Basic.lean Modified Mathlib/Analysis/Normed/Algebra/DualNumber.lean Modified Mathlib/Analysis/Normed/Algebra/Exponential.lean Modified Mathlib/Analysis/Normed/Algebra/GelfandFormula.lean Modified Mathlib/Analysis/Normed/Algebra/MatrixExponential.lean Modified Mathlib/Analysis/Normed/Algebra/QuaternionExponential.lean Modified Mathlib/Analysis/Normed/Algebra/Spectrum.lean Modified Mathlib/Analysis/Normed/Algebra/TrivSqZeroExt.lean Modified Mathlib/Analysis/Normed/Algebra/Unitization.lean Modified Mathlib/Analysis/Normed/Algebra/UnitizationL1.lean Modified Mathlib/Analysis/Normed/Field/Lemmas.lean Modified Mathlib/Analysis/Normed/Field/Ultra.lean Modified Mathlib/Analysis/Normed/Field/UnitBall.lean Modified Mathlib/Analysis/Normed/Field/WithAbs.lean Modified Mathlib/Analysis/Normed/Group/AddCircle.lean Modified Mathlib/Analysis/Normed/Group/Basic.lean Modified Mathlib/Analysis/Normed/Group/Constructions.lean Modified Mathlib/Analysis/Normed/Group/Hom.lean Modified Mathlib/Analysis/Normed/Group/HomCompletion.lean Modified Mathlib/Analysis/Normed/Group/Quotient.lean Modified Mathlib/Analysis/Normed/Group/Real.lean Modified Mathlib/Analysis/Normed/Group/SemiNormedGrp/Kernels.lean Modified Mathlib/Analysis/Normed/Group/Ultra.lean Modified Mathlib/Analysis/Normed/Group/ZeroAtInfty.lean Modified Mathlib/Analysis/Normed/Lp/PiLp.lean Modified Mathlib/Analysis/Normed/Lp/ProdLp.lean Modified Mathlib/Analysis/Normed/Lp/lpSpace.lean Modified Mathlib/Analysis/Normed/Module/Alternating/Basic.lean Modified Mathlib/Analysis/Normed/Module/Ball/Action.lean Modified Mathlib/Analysis/Normed/Module/Ball/Homeomorph.lean Modified Mathlib/Analysis/Normed/Module/Ball/Pointwise.lean Modified Mathlib/Analysis/Normed/Module/Ball/RadialEquiv.lean Modified Mathlib/Analysis/Normed/Module/Basic.lean Modified Mathlib/Analysis/Normed/Module/Complemented.lean Modified Mathlib/Analysis/Normed/Module/Connected.lean Modified Mathlib/Analysis/Normed/Module/Convex.lean Modified Mathlib/Analysis/Normed/Module/Dual.lean Modified Mathlib/Analysis/Normed/Module/FiniteDimension.lean Modified Mathlib/Analysis/Normed/Module/HahnBanach.lean Modified Mathlib/Analysis/Normed/Module/MStructure.lean Modified Mathlib/Analysis/Normed/Module/Multilinear/Basic.lean Modified Mathlib/Analysis/Normed/Module/MultipliableUniformlyOn.lean Modified Mathlib/Analysis/Normed/Module/PiTensorProduct/InjectiveSeminorm.lean Modified Mathlib/Analysis/Normed/Module/RCLike/Basic.lean Modified Mathlib/Analysis/Normed/Module/RCLike/Extend.lean Modified Mathlib/Analysis/Normed/Module/RCLike/Real.lean Modified Mathlib/Analysis/Normed/Module/Span.lean Modified Mathlib/Analysis/Normed/Operator/Banach.lean Modified Mathlib/Analysis/Normed/Operator/Basic.lean Modified Mathlib/Analysis/Normed/Operator/BoundedLinearMaps.lean Modified Mathlib/Analysis/Normed/Operator/Extend.lean Modified Mathlib/Analysis/Normed/Operator/LinearIsometry.lean Modified Mathlib/Analysis/Normed/Operator/Mul.lean Modified Mathlib/Analysis/Normed/Operator/NNNorm.lean Modified Mathlib/Analysis/Normed/Operator/NormedSpace.lean Modified Mathlib/Analysis/Normed/Operator/Prod.lean Modified Mathlib/Analysis/Normed/Order/Hom/Ultra.lean Modified Mathlib/Analysis/Normed/Order/Lattice.lean Modified Mathlib/Analysis/Normed/Order/UpperLower.lean Modified Mathlib/Analysis/Normed/Ring/Lemmas.lean Modified Mathlib/Analysis/Normed/Ring/Ultra.lean Modified Mathlib/Analysis/Normed/Ring/Units.lean Modified Mathlib/Analysis/Normed/Unbundled/AlgebraNorm.lean Modified Mathlib/Analysis/Normed/Unbundled/FiniteExtension.lean Modified Mathlib/Analysis/Normed/Unbundled/IsPowMulFaithful.lean Modified Mathlib/Analysis/Normed/Unbundled/SeminormFromConst.lean Modified Mathlib/Analysis/Normed/Unbundled/SmoothingSeminorm.lean Modified Mathlib/Analysis/Normed/Unbundled/SpectralNorm.lean Modified Mathlib/Analysis/ODE/PicardLindelof.lean Modified Mathlib/Analysis/Oscillation.lean Modified Mathlib/Analysis/PSeries.lean Modified Mathlib/Analysis/Polynomial/CauchyBound.lean Modified Mathlib/Analysis/Polynomial/Fourier.lean Modified Mathlib/Analysis/Polynomial/MahlerMeasure.lean Modified Mathlib/Analysis/Quaternion.lean - def Quaternion.ofComplex Modified Mathlib/Analysis/RCLike/Basic.lean - def RCLike.imLm - def RCLike.reLm Modified Mathlib/Analysis/RCLike/Inner.lean Modified Mathlib/Analysis/RCLike/Sqrt.lean Modified Mathlib/Analysis/Real/Cardinality.lean Modified Mathlib/Analysis/Real/Hyperreal.lean Modified Mathlib/Analysis/Real/OfDigits.lean Modified Mathlib/Analysis/Real/Pi/Bounds.lean Modified Mathlib/Analysis/Real/Pi/Irrational.lean Modified Mathlib/Analysis/Real/Spectrum.lean Modified Mathlib/Analysis/Seminorm.lean Modified Mathlib/Analysis/SpecialFunctions/ArithmeticGeometricMean.lean Modified Mathlib/Analysis/SpecialFunctions/Arsinh.lean Modified Mathlib/Analysis/SpecialFunctions/Artanh.lean Modified Mathlib/Analysis/SpecialFunctions/Bernstein.lean Modified Mathlib/Analysis/SpecialFunctions/BinaryEntropy.lean Modified Mathlib/Analysis/SpecialFunctions/Complex/Analytic.lean Modified Mathlib/Analysis/SpecialFunctions/Complex/Arctan.lean Modified Mathlib/Analysis/SpecialFunctions/Complex/Arg.lean +/- theorem Complex.arg_I +/- theorem Complex.arg_neg_I +/- theorem Complex.arg_neg_one +/- theorem Complex.arg_zero Modified Mathlib/Analysis/SpecialFunctions/Complex/Circle.lean Modified Mathlib/Analysis/SpecialFunctions/Complex/Log.lean Modified Mathlib/Analysis/SpecialFunctions/Complex/LogBounds.lean Modified Mathlib/Analysis/SpecialFunctions/ContinuousFunctionalCalculus/Abs.lean Modified Mathlib/Analysis/SpecialFunctions/ContinuousFunctionalCalculus/ExpLog/Basic.lean Modified Mathlib/Analysis/SpecialFunctions/ContinuousFunctionalCalculus/PosPart/Basic.lean Modified Mathlib/Analysis/SpecialFunctions/ContinuousFunctionalCalculus/Rpow/Basic.lean Modified Mathlib/Analysis/SpecialFunctions/ContinuousFunctionalCalculus/Rpow/IntegralRepresentation.lean Modified Mathlib/Analysis/SpecialFunctions/ContinuousFunctionalCalculus/Rpow/Order.lean Modified Mathlib/Analysis/SpecialFunctions/Elliptic/Weierstrass.lean Modified Mathlib/Analysis/SpecialFunctions/Exp.lean Modified Mathlib/Analysis/SpecialFunctions/ExpDeriv.lean Modified Mathlib/Analysis/SpecialFunctions/Gamma/Basic.lean Modified Mathlib/Analysis/SpecialFunctions/Gamma/Beta.lean Modified Mathlib/Analysis/SpecialFunctions/Gamma/BohrMollerup.lean Modified Mathlib/Analysis/SpecialFunctions/Gamma/Deligne.lean Modified Mathlib/Analysis/SpecialFunctions/Gamma/Deriv.lean Modified Mathlib/Analysis/SpecialFunctions/Gaussian/FourierTransform.lean Modified Mathlib/Analysis/SpecialFunctions/Gaussian/GaussianIntegral.lean Modified Mathlib/Analysis/SpecialFunctions/ImproperIntegrals.lean Modified Mathlib/Analysis/SpecialFunctions/Integrability/Basic.lean Modified Mathlib/Analysis/SpecialFunctions/Integrability/LogMeromorphic.lean Modified Mathlib/Analysis/SpecialFunctions/Integrals/Basic.lean Modified Mathlib/Analysis/SpecialFunctions/Integrals/PosLogEqCircleAverage.lean Modified Mathlib/Analysis/SpecialFunctions/JapaneseBracket.lean Modified Mathlib/Analysis/SpecialFunctions/Log/Base.lean Modified Mathlib/Analysis/SpecialFunctions/Log/Basic.lean Modified Mathlib/Analysis/SpecialFunctions/Log/Deriv.lean Modified Mathlib/Analysis/SpecialFunctions/Log/ENNRealLog.lean Modified Mathlib/Analysis/SpecialFunctions/Log/ERealExp.lean Modified Mathlib/Analysis/SpecialFunctions/Log/InvLog.lean Modified Mathlib/Analysis/SpecialFunctions/Log/Monotone.lean Modified Mathlib/Analysis/SpecialFunctions/Log/NegMulLog.lean Modified Mathlib/Analysis/SpecialFunctions/Log/PosLog.lean Modified Mathlib/Analysis/SpecialFunctions/Log/Summable.lean Modified Mathlib/Analysis/SpecialFunctions/MulExpNegMulSq.lean Modified Mathlib/Analysis/SpecialFunctions/NonIntegrable.lean Modified Mathlib/Analysis/SpecialFunctions/PolarCoord.lean Modified Mathlib/Analysis/SpecialFunctions/Pow/Asymptotics.lean Modified Mathlib/Analysis/SpecialFunctions/Pow/Complex.lean Modified Mathlib/Analysis/SpecialFunctions/Pow/Continuity.lean Modified Mathlib/Analysis/SpecialFunctions/Pow/Deriv.lean Modified Mathlib/Analysis/SpecialFunctions/Pow/NNReal.lean Modified Mathlib/Analysis/SpecialFunctions/Pow/Real.lean Modified Mathlib/Analysis/SpecialFunctions/Sigmoid.lean Modified Mathlib/Analysis/SpecialFunctions/SmoothTransition.lean Modified Mathlib/Analysis/SpecialFunctions/Stirling.lean Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Angle.lean Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Arctan.lean Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Basic.lean Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Bounds.lean Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Chebyshev/Basic.lean Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Chebyshev/Orthogonality.lean Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Chebyshev/RootsExtrema.lean Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Complex.lean Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Cotangent.lean Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/DerivHyp.lean Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/EulerSineProd.lean Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Inverse.lean Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/InverseDeriv.lean Modified Mathlib/Analysis/SpecificLimits/Basic.lean Modified Mathlib/Analysis/SpecificLimits/Fibonacci.lean Modified Mathlib/Analysis/SpecificLimits/Normed.lean Modified Mathlib/Analysis/SumOverResidueClass.lean Modified Mathlib/CategoryTheory/Abelian/Basic.lean Modified Mathlib/CategoryTheory/Abelian/CommSq.lean Modified Mathlib/CategoryTheory/Abelian/DiagramLemmas/Four.lean Modified Mathlib/CategoryTheory/Abelian/DiagramLemmas/KernelCokernelComp.lean Modified Mathlib/CategoryTheory/Abelian/Exact.lean Modified Mathlib/CategoryTheory/Abelian/FunctorCategory.lean Modified Mathlib/CategoryTheory/Abelian/GrothendieckAxioms/Basic.lean Modified Mathlib/CategoryTheory/Abelian/GrothendieckAxioms/Colim.lean Modified Mathlib/CategoryTheory/Abelian/GrothendieckAxioms/Connected.lean Modified Mathlib/CategoryTheory/Abelian/GrothendieckCategory/Basic.lean Modified Mathlib/CategoryTheory/Abelian/GrothendieckCategory/ColimCoyoneda.lean Modified Mathlib/CategoryTheory/Abelian/GrothendieckCategory/EnoughInjectives.lean Modified Mathlib/CategoryTheory/Abelian/GrothendieckCategory/ModuleEmbedding/GabrielPopescu.lean Modified Mathlib/CategoryTheory/Abelian/GrothendieckCategory/ModuleEmbedding/Opposite.lean Modified Mathlib/CategoryTheory/Abelian/GrothendieckCategory/Subobject.lean Modified Mathlib/CategoryTheory/Abelian/Images.lean Modified Mathlib/CategoryTheory/Abelian/Injective/Basic.lean Modified Mathlib/CategoryTheory/Abelian/Injective/Dimension.lean Modified Mathlib/CategoryTheory/Abelian/Injective/Ext.lean Modified Mathlib/CategoryTheory/Abelian/Injective/Extend.lean Modified Mathlib/CategoryTheory/Abelian/Injective/Resolution.lean Modified Mathlib/CategoryTheory/Abelian/LeftDerived.lean Modified Mathlib/CategoryTheory/Abelian/NonPreadditive.lean Modified Mathlib/CategoryTheory/Abelian/Opposite.lean Modified Mathlib/CategoryTheory/Abelian/Projective/Dimension.lean Modified Mathlib/CategoryTheory/Abelian/Projective/Ext.lean Modified Mathlib/CategoryTheory/Abelian/Projective/Extend.lean Modified Mathlib/CategoryTheory/Abelian/Projective/Resolution.lean Modified Mathlib/CategoryTheory/Abelian/Pseudoelements.lean Modified Mathlib/CategoryTheory/Abelian/RightDerived.lean Modified Mathlib/CategoryTheory/Abelian/SerreClass/MorphismProperty.lean Modified Mathlib/CategoryTheory/Abelian/Transfer.lean Modified Mathlib/CategoryTheory/Abelian/Yoneda.lean Modified Mathlib/CategoryTheory/Action.lean Modified Mathlib/CategoryTheory/Action/Basic.lean Modified Mathlib/CategoryTheory/Action/Continuous.lean Modified Mathlib/CategoryTheory/Action/Monoidal.lean Modified Mathlib/CategoryTheory/Adhesive/Basic.lean Modified Mathlib/CategoryTheory/Adjunction/Additive.lean Modified Mathlib/CategoryTheory/Adjunction/AdjointFunctorTheorems.lean Modified Mathlib/CategoryTheory/Adjunction/Basic.lean Modified Mathlib/CategoryTheory/Adjunction/Comma.lean Modified Mathlib/CategoryTheory/Adjunction/CompositionIso.lean Modified Mathlib/CategoryTheory/Adjunction/Evaluation.lean Modified Mathlib/CategoryTheory/Adjunction/FullyFaithful.lean Modified Mathlib/CategoryTheory/Adjunction/Lifting/Left.lean Modified Mathlib/CategoryTheory/Adjunction/Lifting/Right.lean Modified Mathlib/CategoryTheory/Adjunction/Limits.lean Modified Mathlib/CategoryTheory/Adjunction/Mates.lean Modified Mathlib/CategoryTheory/Adjunction/Opposites.lean Modified Mathlib/CategoryTheory/Adjunction/Parametrized.lean Modified Mathlib/CategoryTheory/Adjunction/PartialAdjoint.lean Modified Mathlib/CategoryTheory/Adjunction/Reflective.lean Modified Mathlib/CategoryTheory/Adjunction/Restrict.lean Modified Mathlib/CategoryTheory/Adjunction/Triple.lean Modified Mathlib/CategoryTheory/Adjunction/Unique.lean Modified Mathlib/CategoryTheory/Adjunction/Whiskering.lean Modified Mathlib/CategoryTheory/Bicategory/Adjunction/Cat.lean Modified Mathlib/CategoryTheory/Bicategory/Basic.lean Modified Mathlib/CategoryTheory/Bicategory/Coherence.lean Modified Mathlib/CategoryTheory/Bicategory/Extension.lean Modified Mathlib/CategoryTheory/Bicategory/Functor/Cat.lean Modified Mathlib/CategoryTheory/Bicategory/Functor/Cat/ObjectProperty.lean Modified Mathlib/CategoryTheory/Bicategory/Functor/Lax.lean Modified Mathlib/CategoryTheory/Bicategory/Functor/Oplax.lean Modified Mathlib/CategoryTheory/Bicategory/Functor/Pseudofunctor.lean Modified Mathlib/CategoryTheory/Bicategory/Functor/StrictPseudofunctor.lean Modified Mathlib/CategoryTheory/Bicategory/Functor/StrictlyUnitary.lean Modified Mathlib/CategoryTheory/Bicategory/FunctorBicategory/Pseudo.lean Modified Mathlib/CategoryTheory/Bicategory/Grothendieck.lean Modified Mathlib/CategoryTheory/Bicategory/Kan/Adjunction.lean Modified Mathlib/CategoryTheory/Bicategory/Kan/IsKan.lean Modified Mathlib/CategoryTheory/Bicategory/LocallyGroupoid.lean Modified Mathlib/CategoryTheory/Bicategory/Modification/Pseudo.lean Modified Mathlib/CategoryTheory/Bicategory/NaturalTransformation/Pseudo.lean Modified Mathlib/CategoryTheory/Bicategory/SingleObj.lean Modified Mathlib/CategoryTheory/CatCommSq.lean Modified Mathlib/CategoryTheory/Category/Basic.lean Modified Mathlib/CategoryTheory/Category/Cat.lean Modified Mathlib/CategoryTheory/Category/Cat/Adjunction.lean Modified Mathlib/CategoryTheory/Category/Cat/CartesianClosed.lean Modified Mathlib/CategoryTheory/Category/Cat/Limit.lean Modified Mathlib/CategoryTheory/Category/Cat/Terminal.lean Modified Mathlib/CategoryTheory/Category/PartialFun.lean Modified Mathlib/CategoryTheory/Category/Quiv.lean Modified Mathlib/CategoryTheory/Category/ReflQuiv.lean Modified Mathlib/CategoryTheory/Category/RelCat.lean Modified Mathlib/CategoryTheory/Category/ULift.lean Modified Mathlib/CategoryTheory/Center/Linear.lean Modified Mathlib/CategoryTheory/Center/Localization.lean Modified Mathlib/CategoryTheory/Center/NegOnePow.lean Modified Mathlib/CategoryTheory/Comma/Arrow.lean Modified Mathlib/CategoryTheory/Comma/Basic.lean Modified Mathlib/CategoryTheory/Comma/CardinalArrow.lean Modified Mathlib/CategoryTheory/Comma/Final.lean Modified Mathlib/CategoryTheory/Comma/Over/Basic.lean Modified Mathlib/CategoryTheory/Comma/Over/Pullback.lean Modified Mathlib/CategoryTheory/Comma/Presheaf/Basic.lean Modified Mathlib/CategoryTheory/Comma/StructuredArrow/Basic.lean Modified Mathlib/CategoryTheory/Comma/StructuredArrow/CommaMap.lean Modified Mathlib/CategoryTheory/Comma/StructuredArrow/Final.lean Modified Mathlib/CategoryTheory/Comma/StructuredArrow/Functor.lean Modified Mathlib/CategoryTheory/ComposableArrows/Basic.lean Modified Mathlib/CategoryTheory/ComposableArrows/Four.lean Modified Mathlib/CategoryTheory/ComposableArrows/Three.lean Modified Mathlib/CategoryTheory/ConnectedComponents.lean Modified Mathlib/CategoryTheory/CopyDiscardCategory/Basic.lean Modified Mathlib/CategoryTheory/Core.lean Modified Mathlib/CategoryTheory/Dialectica/Basic.lean Modified Mathlib/CategoryTheory/Dialectica/Monoidal.lean Modified Mathlib/CategoryTheory/DifferentialObject.lean Modified Mathlib/CategoryTheory/Distributive/Cartesian.lean Modified Mathlib/CategoryTheory/Distributive/Monoidal.lean Modified Mathlib/CategoryTheory/EffectiveEpi/Basic.lean Modified Mathlib/CategoryTheory/EffectiveEpi/Coproduct.lean Modified Mathlib/CategoryTheory/EffectiveEpi/Enough.lean Modified Mathlib/CategoryTheory/EffectiveEpi/Preserves.lean Modified Mathlib/CategoryTheory/Elements.lean Modified Mathlib/CategoryTheory/Endofunctor/Algebra.lean Modified Mathlib/CategoryTheory/Enriched/Basic.lean Modified Mathlib/CategoryTheory/Enriched/FunctorCategory.lean Modified Mathlib/CategoryTheory/Enriched/Limits/HasConicalLimits.lean Modified Mathlib/CategoryTheory/Enriched/Opposite.lean Modified Mathlib/CategoryTheory/Enriched/Ordinary/Basic.lean Modified Mathlib/CategoryTheory/Equivalence.lean Modified Mathlib/CategoryTheory/Equivalence/Symmetry.lean Modified Mathlib/CategoryTheory/EssentialImage.lean Modified Mathlib/CategoryTheory/EssentiallySmall.lean Modified Mathlib/CategoryTheory/Extensive.lean Modified Mathlib/CategoryTheory/ExtremalEpi.lean Modified Mathlib/CategoryTheory/FiberedCategory/BasedCategory.lean Modified Mathlib/CategoryTheory/FiberedCategory/Fiber.lean Modified Mathlib/CategoryTheory/FiberedCategory/Grothendieck.lean Modified Mathlib/CategoryTheory/FiberedCategory/HasFibers.lean Modified Mathlib/CategoryTheory/Filtered/Basic.lean Modified Mathlib/CategoryTheory/Filtered/CostructuredArrow.lean Modified Mathlib/CategoryTheory/Filtered/Final.lean Modified Mathlib/CategoryTheory/FinCategory/AsType.lean Modified Mathlib/CategoryTheory/FinCategory/Basic.lean Modified Mathlib/CategoryTheory/FintypeCat.lean Modified Mathlib/CategoryTheory/Functor/CurryingThree.lean Modified Mathlib/CategoryTheory/Functor/Derived/Adjunction.lean Modified Mathlib/CategoryTheory/Functor/Derived/PointwiseLeftDerived.lean Modified Mathlib/CategoryTheory/Functor/Derived/PointwiseRightDerived.lean Modified Mathlib/CategoryTheory/Functor/Derived/RightDerived.lean Modified Mathlib/CategoryTheory/Functor/EpiMono.lean Modified Mathlib/CategoryTheory/Functor/Flat.lean Modified Mathlib/CategoryTheory/Functor/KanExtension/Adjunction.lean Modified Mathlib/CategoryTheory/Functor/KanExtension/Basic.lean Modified Mathlib/CategoryTheory/Functor/KanExtension/Dense.lean Modified Mathlib/CategoryTheory/Functor/KanExtension/Pointwise.lean Modified Mathlib/CategoryTheory/Functor/KanExtension/Preserves.lean Modified Mathlib/CategoryTheory/Functor/TwoSquare.lean Modified Mathlib/CategoryTheory/Functor/TypeValuedFlat.lean Modified Mathlib/CategoryTheory/Galois/Basic.lean Modified Mathlib/CategoryTheory/Galois/Decomposition.lean Modified Mathlib/CategoryTheory/Galois/EssSurj.lean Modified Mathlib/CategoryTheory/Galois/Full.lean Modified Mathlib/CategoryTheory/Galois/IsFundamentalgroup.lean Modified Mathlib/CategoryTheory/Galois/Prorepresentability.lean Modified Mathlib/CategoryTheory/Galois/Topology.lean Modified Mathlib/CategoryTheory/Generator/Basic.lean Modified Mathlib/CategoryTheory/Generator/HomologicalComplex.lean Modified Mathlib/CategoryTheory/Generator/Presheaf.lean Modified Mathlib/CategoryTheory/Generator/Sheaf.lean Modified Mathlib/CategoryTheory/Generator/StrongGenerator.lean Modified Mathlib/CategoryTheory/GlueData.lean Modified Mathlib/CategoryTheory/GradedObject.lean Modified Mathlib/CategoryTheory/GradedObject/Associator.lean Modified Mathlib/CategoryTheory/GradedObject/Bifunctor.lean Modified Mathlib/CategoryTheory/GradedObject/Trifunctor.lean Modified Mathlib/CategoryTheory/GradedObject/Unitor.lean Modified Mathlib/CategoryTheory/Grothendieck.lean Modified Mathlib/CategoryTheory/Groupoid/FreeGroupoid.lean Modified Mathlib/CategoryTheory/Groupoid/FreeGroupoidOfCategory.lean Modified Mathlib/CategoryTheory/Groupoid/Grpd/Basic.lean Modified Mathlib/CategoryTheory/Groupoid/Subgroupoid.lean Modified Mathlib/CategoryTheory/GuitartExact/Basic.lean Modified Mathlib/CategoryTheory/GuitartExact/KanExtension.lean Modified Mathlib/CategoryTheory/GuitartExact/Opposite.lean Modified Mathlib/CategoryTheory/GuitartExact/Over.lean Modified Mathlib/CategoryTheory/GuitartExact/VerticalComposition.lean Modified Mathlib/CategoryTheory/Idempotents/Basic.lean Modified Mathlib/CategoryTheory/Idempotents/Biproducts.lean Modified Mathlib/CategoryTheory/Idempotents/FunctorCategories.lean Modified Mathlib/CategoryTheory/Idempotents/FunctorExtension.lean Modified Mathlib/CategoryTheory/Idempotents/Karoubi.lean Modified Mathlib/CategoryTheory/Iso.lean Modified Mathlib/CategoryTheory/IsomorphismClasses.lean Modified Mathlib/CategoryTheory/Join/Basic.lean Modified Mathlib/CategoryTheory/Join/Pseudofunctor.lean Modified Mathlib/CategoryTheory/Join/Sum.lean Modified Mathlib/CategoryTheory/LiftingProperties/Adjunction.lean Modified Mathlib/CategoryTheory/LiftingProperties/Basic.lean Modified Mathlib/CategoryTheory/LiftingProperties/Limits.lean Modified Mathlib/CategoryTheory/LiftingProperties/Over.lean Modified Mathlib/CategoryTheory/LiftingProperties/ParametrizedAdjunction.lean Modified Mathlib/CategoryTheory/Limits/Bicones.lean Modified Mathlib/CategoryTheory/Limits/ColimitLimit.lean Modified Mathlib/CategoryTheory/Limits/Comma.lean Modified Mathlib/CategoryTheory/Limits/ConeCategory.lean Modified Mathlib/CategoryTheory/Limits/Cones.lean Modified Mathlib/CategoryTheory/Limits/Connected.lean Modified Mathlib/CategoryTheory/Limits/Constructions/BinaryProducts.lean Modified Mathlib/CategoryTheory/Limits/Constructions/Equalizers.lean Modified Mathlib/CategoryTheory/Limits/Constructions/EventuallyConstant.lean Modified Mathlib/CategoryTheory/Limits/Constructions/Filtered.lean Modified Mathlib/CategoryTheory/Limits/Constructions/FiniteProductsOfBinaryProducts.lean Modified Mathlib/CategoryTheory/Limits/Constructions/LimitsOfProductsAndEqualizers.lean Modified Mathlib/CategoryTheory/Limits/Constructions/Over/Connected.lean Modified Mathlib/CategoryTheory/Limits/Constructions/Over/Products.lean Modified Mathlib/CategoryTheory/Limits/Constructions/Pullbacks.lean Modified Mathlib/CategoryTheory/Limits/Constructions/WidePullbackOfTerminal.lean Modified Mathlib/CategoryTheory/Limits/Constructions/ZeroObjects.lean Modified Mathlib/CategoryTheory/Limits/Creates.lean Modified Mathlib/CategoryTheory/Limits/Elements.lean Modified Mathlib/CategoryTheory/Limits/Filtered.lean Modified Mathlib/CategoryTheory/Limits/FilteredColimitCommutesFiniteLimit.lean Modified Mathlib/CategoryTheory/Limits/FilteredColimitCommutesProduct.lean Modified Mathlib/CategoryTheory/Limits/Final.lean Modified Mathlib/CategoryTheory/Limits/Final/Type.lean Modified Mathlib/CategoryTheory/Limits/FormalCoproducts/Basic.lean Modified Mathlib/CategoryTheory/Limits/FormalCoproducts/Cech.lean Modified Mathlib/CategoryTheory/Limits/Fubini.lean Modified Mathlib/CategoryTheory/Limits/FunctorCategory/Basic.lean Modified Mathlib/CategoryTheory/Limits/FunctorCategory/Shapes/Kernels.lean Modified Mathlib/CategoryTheory/Limits/FunctorCategory/Shapes/Products.lean Modified Mathlib/CategoryTheory/Limits/FunctorCategory/Shapes/Pullbacks.lean Modified Mathlib/CategoryTheory/Limits/HasLimits.lean Modified Mathlib/CategoryTheory/Limits/IndYoneda.lean Modified Mathlib/CategoryTheory/Limits/Indization/FilteredColimits.lean Modified Mathlib/CategoryTheory/Limits/Indization/IndObject.lean Modified Mathlib/CategoryTheory/Limits/Indization/ParallelPair.lean Modified Mathlib/CategoryTheory/Limits/IsLimit.lean Modified Mathlib/CategoryTheory/Limits/MonoCoprod.lean Modified Mathlib/CategoryTheory/Limits/MorphismProperty.lean Modified Mathlib/CategoryTheory/Limits/Opposites.lean Modified Mathlib/CategoryTheory/Limits/Over.lean Modified Mathlib/CategoryTheory/Limits/Presentation.lean Modified Mathlib/CategoryTheory/Limits/Preserves/Basic.lean Modified Mathlib/CategoryTheory/Limits/Preserves/Bifunctor.lean Modified Mathlib/CategoryTheory/Limits/Preserves/Creates/Finite.lean Modified Mathlib/CategoryTheory/Limits/Preserves/Filtered.lean Modified Mathlib/CategoryTheory/Limits/Preserves/FunctorCategory.lean Modified Mathlib/CategoryTheory/Limits/Preserves/Grothendieck.lean Modified Mathlib/CategoryTheory/Limits/Preserves/Limits.lean Modified Mathlib/CategoryTheory/Limits/Preserves/Over.lean Modified Mathlib/CategoryTheory/Limits/Preserves/Presheaf.lean Modified Mathlib/CategoryTheory/Limits/Preserves/Shapes/Biproducts.lean Modified Mathlib/CategoryTheory/Limits/Preserves/Shapes/Equalizers.lean Modified Mathlib/CategoryTheory/Limits/Preserves/Shapes/Images.lean Modified Mathlib/CategoryTheory/Limits/Preserves/Shapes/Kernels.lean Modified Mathlib/CategoryTheory/Limits/Preserves/Shapes/Pullbacks.lean Modified Mathlib/CategoryTheory/Limits/Preserves/Shapes/Zero.lean Modified Mathlib/CategoryTheory/Limits/Preserves/Yoneda.lean Modified Mathlib/CategoryTheory/Limits/Presheaf.lean Modified Mathlib/CategoryTheory/Limits/Shapes/BinaryBiproducts.lean Modified Mathlib/CategoryTheory/Limits/Shapes/BinaryProducts.lean + theorem CategoryTheory.Limits.coprod.leftUnitor_naturality + theorem CategoryTheory.Limits.coprod.rightUnitor_naturality Modified Mathlib/CategoryTheory/Limits/Shapes/Biproducts.lean Modified Mathlib/CategoryTheory/Limits/Shapes/CombinedProducts.lean Modified Mathlib/CategoryTheory/Limits/Shapes/ConcreteCategory.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Diagonal.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Equalizers.lean Modified Mathlib/CategoryTheory/Limits/Shapes/FiniteLimits.lean Modified Mathlib/CategoryTheory/Limits/Shapes/FunctorToTypes.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Grothendieck.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Images.lean Modified Mathlib/CategoryTheory/Limits/Shapes/IsTerminal.lean Modified Mathlib/CategoryTheory/Limits/Shapes/KernelPair.lean - def CategoryTheory.IsKernelPair.toCoequalizer Modified Mathlib/CategoryTheory/Limits/Shapes/Kernels.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Multiequalizer.lean Modified Mathlib/CategoryTheory/Limits/Shapes/NormalMono/Basic.lean Modified Mathlib/CategoryTheory/Limits/Shapes/NormalMono/Equalizers.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Opposites/Equalizers.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Opposites/Kernels.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Opposites/Products.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Opposites/Pullbacks.lean Modified Mathlib/CategoryTheory/Limits/Shapes/PiProd.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Preorder/TransfiniteCompositionOfShape.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Products.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Pullback/Assoc.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Pullback/Categorical/Basic.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Pullback/Categorical/CatCospanTransform.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Pullback/Connected.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Pullback/Cospan.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Pullback/Equalizer.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Pullback/EquifiberedLimits.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Pullback/HasPullback.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Pullback/IsPullback/Basic.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Pullback/IsPullback/BicartesianSq.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Pullback/IsPullback/Defs.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Pullback/Iso.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Pullback/Mono.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Pullback/PullbackCone.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Pullback/PullbackObjObj.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Reflexive.lean Modified Mathlib/CategoryTheory/Limits/Shapes/RegularMono.lean Modified Mathlib/CategoryTheory/Limits/Shapes/SequentialProduct.lean Modified Mathlib/CategoryTheory/Limits/Shapes/SingleObj.lean Modified Mathlib/CategoryTheory/Limits/Shapes/SplitCoequalizer.lean Modified Mathlib/CategoryTheory/Limits/Shapes/SplitEqualizer.lean Modified Mathlib/CategoryTheory/Limits/Shapes/StrictInitial.lean Modified Mathlib/CategoryTheory/Limits/Shapes/StrongEpi.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Terminal.lean Modified Mathlib/CategoryTheory/Limits/Shapes/WideEqualizers.lean Modified Mathlib/CategoryTheory/Limits/Shapes/WidePullbacks.lean Modified Mathlib/CategoryTheory/Limits/Shapes/ZeroMorphisms.lean Modified Mathlib/CategoryTheory/Limits/Shapes/ZeroObjects.lean Modified Mathlib/CategoryTheory/Limits/Sifted.lean Modified Mathlib/CategoryTheory/Limits/SmallComplete.lean Modified Mathlib/CategoryTheory/Limits/Types/ColimitType.lean Modified Mathlib/CategoryTheory/Limits/Types/Colimits.lean Modified Mathlib/CategoryTheory/Limits/Types/Coproducts.lean Modified Mathlib/CategoryTheory/Limits/Types/Filtered.lean Modified Mathlib/CategoryTheory/Limits/Types/Images.lean Modified Mathlib/CategoryTheory/Limits/Types/Multicoequalizer.lean Modified Mathlib/CategoryTheory/Limits/Types/Products.lean Modified Mathlib/CategoryTheory/Limits/Types/Pullbacks.lean Modified Mathlib/CategoryTheory/Limits/Types/Pushouts.lean Modified Mathlib/CategoryTheory/Limits/Types/Yoneda.lean Modified Mathlib/CategoryTheory/Limits/VanKampen.lean Modified Mathlib/CategoryTheory/Limits/Yoneda.lean Modified Mathlib/CategoryTheory/Linear/Basic.lean Modified Mathlib/CategoryTheory/Linear/LinearFunctor.lean Modified Mathlib/CategoryTheory/Localization/Adjunction.lean Modified Mathlib/CategoryTheory/Localization/Bifunctor.lean Modified Mathlib/CategoryTheory/Localization/Bousfield.lean Modified Mathlib/CategoryTheory/Localization/BousfieldTransfiniteComposition.lean Modified Mathlib/CategoryTheory/Localization/CalculusOfFractions.lean Modified Mathlib/CategoryTheory/Localization/CalculusOfFractions/ComposableArrows.lean Modified Mathlib/CategoryTheory/Localization/CalculusOfFractions/OfAdjunction.lean Modified Mathlib/CategoryTheory/Localization/CalculusOfFractions/Preadditive.lean Modified Mathlib/CategoryTheory/Localization/Construction.lean Modified Mathlib/CategoryTheory/Localization/DerivabilityStructure/Basic.lean Modified Mathlib/CategoryTheory/Localization/DerivabilityStructure/Constructor.lean Modified Mathlib/CategoryTheory/Localization/DerivabilityStructure/Derives.lean Modified Mathlib/CategoryTheory/Localization/DerivabilityStructure/OfFunctorialResolutions.lean Modified Mathlib/CategoryTheory/Localization/DerivabilityStructure/PointwiseRightDerived.lean Modified Mathlib/CategoryTheory/Localization/HomEquiv.lean Modified Mathlib/CategoryTheory/Localization/Linear.lean Modified Mathlib/CategoryTheory/Localization/Monoidal/Basic.lean Modified Mathlib/CategoryTheory/Localization/Monoidal/Braided.lean Modified Mathlib/CategoryTheory/Localization/Monoidal/Functor.lean Modified Mathlib/CategoryTheory/Localization/Predicate.lean Modified Mathlib/CategoryTheory/Localization/SmallHom.lean Modified Mathlib/CategoryTheory/Localization/SmallShiftedHom.lean Modified Mathlib/CategoryTheory/Localization/StructuredArrow.lean Modified Mathlib/CategoryTheory/Localization/Triangulated.lean Modified Mathlib/CategoryTheory/Localization/Trifunctor.lean Modified Mathlib/CategoryTheory/LocallyCartesianClosed/ChosenPullbacksAlong.lean Modified Mathlib/CategoryTheory/LocallyCartesianClosed/ExponentiableMorphism.lean Modified Mathlib/CategoryTheory/LocallyCartesianClosed/Over.lean Modified Mathlib/CategoryTheory/LocallyCartesianClosed/Sections.lean Modified Mathlib/CategoryTheory/LocallyDirected.lean Modified Mathlib/CategoryTheory/Monad/Adjunction.lean Modified Mathlib/CategoryTheory/Monad/Algebra.lean Modified Mathlib/CategoryTheory/Monad/Basic.lean Modified Mathlib/CategoryTheory/Monad/Coequalizer.lean Modified Mathlib/CategoryTheory/Monad/Comonadicity.lean Modified Mathlib/CategoryTheory/Monad/Equalizer.lean Modified Mathlib/CategoryTheory/Monad/EquivMon.lean Modified Mathlib/CategoryTheory/Monad/Kleisli.lean Modified Mathlib/CategoryTheory/Monad/Limits.lean Modified Mathlib/CategoryTheory/Monad/Monadicity.lean Modified Mathlib/CategoryTheory/Monad/Products.lean Modified Mathlib/CategoryTheory/Monoidal/Action/End.lean Modified Mathlib/CategoryTheory/Monoidal/Action/Opposites.lean Modified Mathlib/CategoryTheory/Monoidal/Bimod.lean Modified Mathlib/CategoryTheory/Monoidal/Bimon_.lean Modified Mathlib/CategoryTheory/Monoidal/Braided/Basic.lean Modified Mathlib/CategoryTheory/Monoidal/Braided/Reflection.lean Modified Mathlib/CategoryTheory/Monoidal/Braided/Transport.lean Modified Mathlib/CategoryTheory/Monoidal/Cartesian/Basic.lean Modified Mathlib/CategoryTheory/Monoidal/Cartesian/Cat.lean Modified Mathlib/CategoryTheory/Monoidal/Cartesian/CommGrp_.lean Modified Mathlib/CategoryTheory/Monoidal/Cartesian/CommMon_.lean Modified Mathlib/CategoryTheory/Monoidal/Cartesian/Comon_.lean Modified Mathlib/CategoryTheory/Monoidal/Cartesian/FunctorCategory.lean Modified Mathlib/CategoryTheory/Monoidal/Cartesian/Grp_.lean Modified Mathlib/CategoryTheory/Monoidal/Cartesian/Mon_.lean Modified Mathlib/CategoryTheory/Monoidal/Cartesian/Over.lean Modified Mathlib/CategoryTheory/Monoidal/Center.lean Modified Mathlib/CategoryTheory/Monoidal/Closed/Basic.lean Modified Mathlib/CategoryTheory/Monoidal/Closed/Cartesian.lean Modified Mathlib/CategoryTheory/Monoidal/Closed/Functor.lean Modified Mathlib/CategoryTheory/Monoidal/Closed/FunctorCategory/Basic.lean Modified Mathlib/CategoryTheory/Monoidal/Closed/FunctorCategory/Groupoid.lean Modified Mathlib/CategoryTheory/Monoidal/Closed/FunctorToTypes.lean Modified Mathlib/CategoryTheory/Monoidal/Closed/Ideal.lean Modified Mathlib/CategoryTheory/Monoidal/Closed/Zero.lean Modified Mathlib/CategoryTheory/Monoidal/CommGrp_.lean Modified Mathlib/CategoryTheory/Monoidal/CommMon_.lean Modified Mathlib/CategoryTheory/Monoidal/Comon_.lean Modified Mathlib/CategoryTheory/Monoidal/DayConvolution.lean Modified Mathlib/CategoryTheory/Monoidal/DayConvolution/Braided.lean Modified Mathlib/CategoryTheory/Monoidal/DayConvolution/Closed.lean Modified Mathlib/CategoryTheory/Monoidal/DayConvolution/DayFunctor.lean Modified Mathlib/CategoryTheory/Monoidal/Discrete.lean Modified Mathlib/CategoryTheory/Monoidal/End.lean Modified Mathlib/CategoryTheory/Monoidal/Free/Basic.lean - def CategoryTheory.FreeMonoidalCategory.setoidHom Modified Mathlib/CategoryTheory/Monoidal/Free/Coherence.lean Modified Mathlib/CategoryTheory/Monoidal/Functor.lean Modified Mathlib/CategoryTheory/Monoidal/Functor/Types.lean Modified Mathlib/CategoryTheory/Monoidal/FunctorCategory.lean Modified Mathlib/CategoryTheory/Monoidal/Grp_.lean Modified Mathlib/CategoryTheory/Monoidal/Internal/FunctorCategory.lean Modified Mathlib/CategoryTheory/Monoidal/Internal/Limits.lean Modified Mathlib/CategoryTheory/Monoidal/Internal/Module.lean Modified Mathlib/CategoryTheory/Monoidal/Internal/Types/Basic.lean Modified Mathlib/CategoryTheory/Monoidal/Limits/Basic.lean Modified Mathlib/CategoryTheory/Monoidal/Mon_.lean Modified Mathlib/CategoryTheory/Monoidal/NaturalTransformation.lean Modified Mathlib/CategoryTheory/Monoidal/OfHasFiniteProducts.lean Modified Mathlib/CategoryTheory/Monoidal/Opposite.lean Modified Mathlib/CategoryTheory/Monoidal/Opposite/Mon_.lean Modified Mathlib/CategoryTheory/Monoidal/Preadditive.lean Modified Mathlib/CategoryTheory/Monoidal/Rigid/Basic.lean Modified Mathlib/CategoryTheory/Monoidal/Subcategory.lean Modified Mathlib/CategoryTheory/Monoidal/Transport.lean Modified Mathlib/CategoryTheory/MorphismProperty/Basic.lean Modified Mathlib/CategoryTheory/MorphismProperty/Comma.lean Modified Mathlib/CategoryTheory/MorphismProperty/Descent.lean Modified Mathlib/CategoryTheory/MorphismProperty/Factorization.lean Modified Mathlib/CategoryTheory/MorphismProperty/Ind.lean Modified Mathlib/CategoryTheory/MorphismProperty/IsInvertedBy.lean Modified Mathlib/CategoryTheory/MorphismProperty/IsSmall.lean Modified Mathlib/CategoryTheory/MorphismProperty/Limits.lean Modified Mathlib/CategoryTheory/MorphismProperty/OverAdjunction.lean Modified Mathlib/CategoryTheory/MorphismProperty/Quotient.lean Modified Mathlib/CategoryTheory/MorphismProperty/Representable.lean Modified Mathlib/CategoryTheory/MorphismProperty/Retract.lean Modified Mathlib/CategoryTheory/MorphismProperty/TransfiniteComposition.lean Modified Mathlib/CategoryTheory/ObjectProperty/ColimitsOfShape.lean Modified Mathlib/CategoryTheory/ObjectProperty/FunctorCategory/PreservesLimits.lean Modified Mathlib/CategoryTheory/ObjectProperty/Local.lean Modified Mathlib/CategoryTheory/ObjectProperty/Shift.lean Modified Mathlib/CategoryTheory/Opposites.lean Modified Mathlib/CategoryTheory/PUnit.lean Modified Mathlib/CategoryTheory/PathCategory/Basic.lean Modified Mathlib/CategoryTheory/Pi/Basic.lean Modified Mathlib/CategoryTheory/Pi/Monoidal.lean Modified Mathlib/CategoryTheory/Preadditive/AdditiveFunctor.lean Modified Mathlib/CategoryTheory/Preadditive/Basic.lean Modified Mathlib/CategoryTheory/Preadditive/Biproducts.lean Modified Mathlib/CategoryTheory/Preadditive/CommGrp_.lean Modified Mathlib/CategoryTheory/Preadditive/HomOrthogonal.lean Modified Mathlib/CategoryTheory/Preadditive/Injective/Basic.lean Modified Mathlib/CategoryTheory/Preadditive/Injective/Preserves.lean Modified Mathlib/CategoryTheory/Preadditive/Injective/Resolution.lean Modified Mathlib/CategoryTheory/Preadditive/LiftToFinset.lean Modified Mathlib/CategoryTheory/Preadditive/Mat.lean Modified Mathlib/CategoryTheory/Preadditive/OfBiproducts.lean Modified Mathlib/CategoryTheory/Preadditive/Projective/Basic.lean Modified Mathlib/CategoryTheory/Preadditive/Projective/Preserves.lean Modified Mathlib/CategoryTheory/Preadditive/Projective/Resolution.lean Modified Mathlib/CategoryTheory/Preadditive/Schur.lean Modified Mathlib/CategoryTheory/Preadditive/Transfer.lean Modified Mathlib/CategoryTheory/Preadditive/Yoneda/Basic.lean Modified Mathlib/CategoryTheory/Presentable/Adjunction.lean Modified Mathlib/CategoryTheory/Presentable/ColimitPresentation.lean Modified Mathlib/CategoryTheory/Presentable/Limits.lean Modified Mathlib/CategoryTheory/Presentable/OrthogonalReflection.lean Modified Mathlib/CategoryTheory/Presentable/Retracts.lean Modified Mathlib/CategoryTheory/Presentable/StrongGenerator.lean Modified Mathlib/CategoryTheory/Products/Basic.lean Modified Mathlib/CategoryTheory/Quotient.lean Modified Mathlib/CategoryTheory/Quotient/Linear.lean Modified Mathlib/CategoryTheory/RegularCategory/Basic.lean Modified Mathlib/CategoryTheory/RepresentedBy.lean Modified Mathlib/CategoryTheory/Retract.lean Modified Mathlib/CategoryTheory/Shift/Adjunction.lean Modified Mathlib/CategoryTheory/Shift/Basic.lean Modified Mathlib/CategoryTheory/Shift/CommShift.lean Modified Mathlib/CategoryTheory/Shift/CommShiftTwo.lean Modified Mathlib/CategoryTheory/Shift/Induced.lean Modified Mathlib/CategoryTheory/Shift/InducedShiftSequence.lean Modified Mathlib/CategoryTheory/Shift/Localization.lean Modified Mathlib/CategoryTheory/Shift/Opposite.lean Modified Mathlib/CategoryTheory/Shift/Pullback.lean Modified Mathlib/CategoryTheory/Shift/Quotient.lean Modified Mathlib/CategoryTheory/Shift/ShiftSequence.lean Modified Mathlib/CategoryTheory/Shift/ShiftedHom.lean Modified Mathlib/CategoryTheory/Shift/ShiftedHomOpposite.lean Modified Mathlib/CategoryTheory/Shift/SingleFunctors.lean Modified Mathlib/CategoryTheory/Shift/Twist.lean Modified Mathlib/CategoryTheory/ShrinkYoneda.lean Modified Mathlib/CategoryTheory/Sigma/Basic.lean Modified Mathlib/CategoryTheory/SingleObj.lean Modified Mathlib/CategoryTheory/Sites/Abelian.lean Modified Mathlib/CategoryTheory/Sites/Adjunction.lean Modified Mathlib/CategoryTheory/Sites/CartesianMonoidal.lean Modified Mathlib/CategoryTheory/Sites/Coherent/Comparison.lean Modified Mathlib/CategoryTheory/Sites/Coherent/ExtensiveSheaves.lean Modified Mathlib/CategoryTheory/Sites/Coherent/LocallySurjective.lean Modified Mathlib/CategoryTheory/Sites/Coherent/ReflectsPrecoherent.lean Modified Mathlib/CategoryTheory/Sites/Coherent/ReflectsPreregular.lean Modified Mathlib/CategoryTheory/Sites/Coherent/RegularSheaves.lean Modified Mathlib/CategoryTheory/Sites/Coherent/SequentialLimit.lean Modified Mathlib/CategoryTheory/Sites/Coherent/SheafComparison.lean Modified Mathlib/CategoryTheory/Sites/CompatiblePlus.lean Modified Mathlib/CategoryTheory/Sites/CompatibleSheafification.lean Modified Mathlib/CategoryTheory/Sites/ConcreteSheafification.lean Modified Mathlib/CategoryTheory/Sites/ConstantSheaf.lean Modified Mathlib/CategoryTheory/Sites/Continuous.lean Modified Mathlib/CategoryTheory/Sites/CoverLifting.lean Modified Mathlib/CategoryTheory/Sites/CoverPreserving.lean Modified Mathlib/CategoryTheory/Sites/CoversTop.lean Modified Mathlib/CategoryTheory/Sites/DenseSubsite/Basic.lean Modified Mathlib/CategoryTheory/Sites/DenseSubsite/OneHypercoverDense.lean Modified Mathlib/CategoryTheory/Sites/DenseSubsite/SheafEquiv.lean Modified Mathlib/CategoryTheory/Sites/Descent/DescentData.lean Modified Mathlib/CategoryTheory/Sites/Descent/IsPrestack.lean Modified Mathlib/CategoryTheory/Sites/Descent/Precoverage.lean Modified Mathlib/CategoryTheory/Sites/EffectiveEpimorphic.lean Modified Mathlib/CategoryTheory/Sites/EpiMono.lean Modified Mathlib/CategoryTheory/Sites/EqualizerSheafCondition.lean Modified Mathlib/CategoryTheory/Sites/Equivalence.lean Modified Mathlib/CategoryTheory/Sites/Hypercover/Homotopy.lean Modified Mathlib/CategoryTheory/Sites/Hypercover/One.lean Modified Mathlib/CategoryTheory/Sites/Hypercover/Subcanonical.lean Modified Mathlib/CategoryTheory/Sites/Hypercover/Zero.lean Modified Mathlib/CategoryTheory/Sites/Hypercover/ZeroFamily.lean Modified Mathlib/CategoryTheory/Sites/IsSheafFor.lean Modified Mathlib/CategoryTheory/Sites/LeftExact.lean Modified Mathlib/CategoryTheory/Sites/Limits.lean Modified Mathlib/CategoryTheory/Sites/LocallyBijective.lean Modified Mathlib/CategoryTheory/Sites/LocallyInjective.lean Modified Mathlib/CategoryTheory/Sites/LocallySurjective.lean Modified Mathlib/CategoryTheory/Sites/MayerVietorisSquare.lean Modified Mathlib/CategoryTheory/Sites/Monoidal.lean Modified Mathlib/CategoryTheory/Sites/Over.lean Modified Mathlib/CategoryTheory/Sites/Plus.lean Modified Mathlib/CategoryTheory/Sites/Point/Basic.lean Modified Mathlib/CategoryTheory/Sites/Point/Over.lean Modified Mathlib/CategoryTheory/Sites/Precoverage.lean Modified Mathlib/CategoryTheory/Sites/PrecoverageToGrothendieck.lean Modified Mathlib/CategoryTheory/Sites/Preserves.lean Modified Mathlib/CategoryTheory/Sites/PreservesLocallyBijective.lean Modified Mathlib/CategoryTheory/Sites/PreservesSheafification.lean Modified Mathlib/CategoryTheory/Sites/Pretopology.lean Modified Mathlib/CategoryTheory/Sites/RegularEpi.lean Modified Mathlib/CategoryTheory/Sites/Sheaf.lean Modified Mathlib/CategoryTheory/Sites/SheafCohomology/MayerVietoris.lean Modified Mathlib/CategoryTheory/Sites/SheafHom.lean Modified Mathlib/CategoryTheory/Sites/SheafOfTypes.lean Modified Mathlib/CategoryTheory/Sites/Sheafification.lean Modified Mathlib/CategoryTheory/Sites/Sieves.lean Modified Mathlib/CategoryTheory/Sites/Spaces.lean Modified Mathlib/CategoryTheory/Sites/Types.lean Modified Mathlib/CategoryTheory/Skeletal.lean Modified Mathlib/CategoryTheory/SmallObject/Construction.lean Modified Mathlib/CategoryTheory/SmallObject/IsCardinalForSmallObjectArgument.lean Modified Mathlib/CategoryTheory/SmallObject/Iteration/Basic.lean Modified Mathlib/CategoryTheory/SmallObject/Iteration/ExtendToSucc.lean Modified Mathlib/CategoryTheory/SmallObject/Iteration/FunctorOfCocone.lean Modified Mathlib/CategoryTheory/SmallObject/Iteration/Nonempty.lean Modified Mathlib/CategoryTheory/SmallObject/TransfiniteCompositionLifting.lean Modified Mathlib/CategoryTheory/Square.lean Modified Mathlib/CategoryTheory/Subfunctor/Basic.lean Modified Mathlib/CategoryTheory/Subfunctor/Equalizer.lean Modified Mathlib/CategoryTheory/Subfunctor/Finite.lean Modified Mathlib/CategoryTheory/Subfunctor/Image.lean Modified Mathlib/CategoryTheory/Subfunctor/OfSection.lean Modified Mathlib/CategoryTheory/Subobject/ArtinianObject.lean Modified Mathlib/CategoryTheory/Subobject/Basic.lean Modified Mathlib/CategoryTheory/Subobject/Comma.lean Modified Mathlib/CategoryTheory/Subobject/FactorThru.lean Modified Mathlib/CategoryTheory/Subobject/Lattice.lean Modified Mathlib/CategoryTheory/Subobject/Limits.lean Modified Mathlib/CategoryTheory/Subobject/MonoOver.lean Modified Mathlib/CategoryTheory/Subterminal.lean Modified Mathlib/CategoryTheory/Sums/Associator.lean Modified Mathlib/CategoryTheory/Sums/Basic.lean Modified Mathlib/CategoryTheory/Sums/Products.lean Modified Mathlib/CategoryTheory/Topos/Classifier.lean Modified Mathlib/CategoryTheory/Triangulated/Adjunction.lean Modified Mathlib/CategoryTheory/Triangulated/Basic.lean Modified Mathlib/CategoryTheory/Triangulated/Functor.lean Modified Mathlib/CategoryTheory/Triangulated/HomologicalFunctor.lean Modified Mathlib/CategoryTheory/Triangulated/Opposite/Basic.lean Modified Mathlib/CategoryTheory/Triangulated/Opposite/Functor.lean Modified Mathlib/CategoryTheory/Triangulated/Opposite/OpOp.lean Modified Mathlib/CategoryTheory/Triangulated/Opposite/Pretriangulated.lean Modified Mathlib/CategoryTheory/Triangulated/Opposite/Triangle.lean Modified Mathlib/CategoryTheory/Triangulated/Opposite/Triangulated.lean Modified Mathlib/CategoryTheory/Triangulated/Orthogonal.lean Modified Mathlib/CategoryTheory/Triangulated/Pretriangulated.lean Modified Mathlib/CategoryTheory/Triangulated/Rotate.lean Modified Mathlib/CategoryTheory/Triangulated/SpectralObject.lean Modified Mathlib/CategoryTheory/Triangulated/Subcategory.lean Modified Mathlib/CategoryTheory/Triangulated/TStructure/TruncLTGE.lean Modified Mathlib/CategoryTheory/Triangulated/TriangleShift.lean Modified Mathlib/CategoryTheory/Triangulated/Triangulated.lean Modified Mathlib/CategoryTheory/Whiskering.lean Modified Mathlib/CategoryTheory/WithTerminal/Basic.lean Modified Mathlib/CategoryTheory/WithTerminal/Cone.lean Modified Mathlib/CategoryTheory/Yoneda.lean Modified Mathlib/Combinatorics/Additive/AP/Three/Behrend.lean Modified Mathlib/Combinatorics/Additive/CauchyDavenport.lean Modified Mathlib/Combinatorics/Additive/Convolution.lean Modified Mathlib/Combinatorics/Additive/Corner/Roth.lean Modified Mathlib/Combinatorics/Additive/Dissociation.lean Modified Mathlib/Combinatorics/Additive/DoublingConst.lean Modified Mathlib/Combinatorics/Additive/ETransform.lean Modified Mathlib/Combinatorics/Additive/Energy.lean Modified Mathlib/Combinatorics/Additive/ErdosGinzburgZiv.lean Modified Mathlib/Combinatorics/Additive/PluenneckeRuzsa.lean Modified Mathlib/Combinatorics/Additive/Randomisation.lean Modified Mathlib/Combinatorics/Additive/RuzsaCovering.lean Modified Mathlib/Combinatorics/Additive/SmallTripling.lean Modified Mathlib/Combinatorics/Additive/VerySmallDoubling.lean Modified Mathlib/Combinatorics/Colex.lean Modified Mathlib/Combinatorics/Configuration.lean Modified Mathlib/Combinatorics/Derangements/Finite.lean Modified Mathlib/Combinatorics/Enumerative/Bell.lean Modified Mathlib/Combinatorics/Enumerative/Catalan.lean Modified Mathlib/Combinatorics/Enumerative/Composition.lean Modified Mathlib/Combinatorics/Enumerative/DyckWord.lean Modified Mathlib/Combinatorics/Enumerative/IncidenceAlgebra.lean Modified Mathlib/Combinatorics/Enumerative/InclusionExclusion.lean Modified Mathlib/Combinatorics/Enumerative/Partition/GenFun.lean Modified Mathlib/Combinatorics/Enumerative/Partition/Glaisher.lean Modified Mathlib/Combinatorics/Enumerative/Schroder.lean Modified Mathlib/Combinatorics/Extremal/RuzsaSzemeredi.lean Modified Mathlib/Combinatorics/Hall/Basic.lean Modified Mathlib/Combinatorics/Hall/Finite.lean Modified Mathlib/Combinatorics/Hindman.lean Modified Mathlib/Combinatorics/KatonaCircle.lean Modified Mathlib/Combinatorics/Matroid/Basic.lean Modified Mathlib/Combinatorics/Matroid/Circuit.lean Modified Mathlib/Combinatorics/Matroid/Closure.lean Modified Mathlib/Combinatorics/Matroid/Dual.lean Modified Mathlib/Combinatorics/Matroid/Loop.lean Modified Mathlib/Combinatorics/Matroid/Map.lean Modified Mathlib/Combinatorics/Matroid/Minor/Contract.lean Modified Mathlib/Combinatorics/Matroid/Minor/Delete.lean Modified Mathlib/Combinatorics/Matroid/Rank/ENat.lean Modified Mathlib/Combinatorics/Matroid/Sum.lean Modified Mathlib/Combinatorics/Nullstellensatz.lean Modified Mathlib/Combinatorics/Quiver/Covering.lean Modified Mathlib/Combinatorics/Quiver/Path.lean Modified Mathlib/Combinatorics/Quiver/SingleObj.lean Modified Mathlib/Combinatorics/Quiver/Symmetric.lean Modified Mathlib/Combinatorics/Schnirelmann.lean Modified Mathlib/Combinatorics/SetFamily/AhlswedeZhang.lean Modified Mathlib/Combinatorics/SetFamily/FourFunctions.lean Modified Mathlib/Combinatorics/SetFamily/KruskalKatona.lean Modified Mathlib/Combinatorics/SetFamily/LYM.lean Modified Mathlib/Combinatorics/SetFamily/Shatter.lean Modified Mathlib/Combinatorics/SimpleGraph/Acyclic.lean Modified Mathlib/Combinatorics/SimpleGraph/AdjMatrix.lean Modified Mathlib/Combinatorics/SimpleGraph/Basic.lean Modified Mathlib/Combinatorics/SimpleGraph/Bipartite.lean Modified Mathlib/Combinatorics/SimpleGraph/Circulant.lean Modified Mathlib/Combinatorics/SimpleGraph/Clique.lean Modified Mathlib/Combinatorics/SimpleGraph/Coloring.lean Modified Mathlib/Combinatorics/SimpleGraph/CompleteMultipartite.lean Modified Mathlib/Combinatorics/SimpleGraph/Connectivity/Connected.lean Modified Mathlib/Combinatorics/SimpleGraph/Connectivity/Represents.lean Modified Mathlib/Combinatorics/SimpleGraph/Connectivity/Subgraph.lean Modified Mathlib/Combinatorics/SimpleGraph/Connectivity/WalkCounting.lean Modified Mathlib/Combinatorics/SimpleGraph/Copy.lean Modified Mathlib/Combinatorics/SimpleGraph/DeleteEdges.lean Modified Mathlib/Combinatorics/SimpleGraph/EdgeLabeling.lean Modified Mathlib/Combinatorics/SimpleGraph/Ends/Defs.lean Modified Mathlib/Combinatorics/SimpleGraph/Extremal/Turan.lean Modified Mathlib/Combinatorics/SimpleGraph/Finite.lean Modified Mathlib/Combinatorics/SimpleGraph/Finsubgraph.lean Modified Mathlib/Combinatorics/SimpleGraph/FiveWheelLike.lean Modified Mathlib/Combinatorics/SimpleGraph/Girth.lean Modified Mathlib/Combinatorics/SimpleGraph/LapMatrix.lean Modified Mathlib/Combinatorics/SimpleGraph/Maps.lean Modified Mathlib/Combinatorics/SimpleGraph/Matching.lean Modified Mathlib/Combinatorics/SimpleGraph/Operations.lean Modified Mathlib/Combinatorics/SimpleGraph/Partition.lean Modified Mathlib/Combinatorics/SimpleGraph/Prod.lean Modified Mathlib/Combinatorics/SimpleGraph/Regularity/Chunk.lean Modified Mathlib/Combinatorics/SimpleGraph/Regularity/Equitabilise.lean Modified Mathlib/Combinatorics/SimpleGraph/Regularity/Increment.lean Modified Mathlib/Combinatorics/SimpleGraph/Regularity/Lemma.lean Modified Mathlib/Combinatorics/SimpleGraph/StronglyRegular.lean Modified Mathlib/Combinatorics/SimpleGraph/Subgraph.lean Modified Mathlib/Combinatorics/SimpleGraph/Triangle/Removal.lean Modified Mathlib/Combinatorics/SimpleGraph/Tutte.lean Modified Mathlib/Combinatorics/SimpleGraph/Walks/Maps.lean Modified Mathlib/Combinatorics/SimpleGraph/Walks/Operations.lean Modified Mathlib/Combinatorics/SimpleGraph/Walks/Subwalks.lean Modified Mathlib/Combinatorics/Tiling/Tile.lean Modified Mathlib/Computability/Ackermann.lean Modified Mathlib/Computability/AkraBazzi/AkraBazzi.lean Modified Mathlib/Computability/AkraBazzi/GrowsPolynomially.lean Modified Mathlib/Computability/AkraBazzi/SumTransform.lean Modified Mathlib/Computability/ContextFreeGrammar.lean Modified Mathlib/Computability/DFA.lean Modified Mathlib/Computability/Halting.lean Modified Mathlib/Computability/MyhillNerode.lean Modified Mathlib/Computability/NFA.lean Modified Mathlib/Computability/PostTuringMachine.lean Modified Mathlib/Computability/Primrec/Basic.lean Modified Mathlib/Computability/Primrec/List.lean Modified Mathlib/Computability/Reduce.lean Modified Mathlib/Computability/TMConfig.lean Modified Mathlib/Computability/TMToPartrec.lean Modified Mathlib/Computability/TuringMachine.lean Modified Mathlib/Condensed/Discrete/Characterization.lean Modified Mathlib/Condensed/Discrete/Colimit.lean Modified Mathlib/Condensed/Discrete/LocallyConstant.lean Modified Mathlib/Condensed/Discrete/Module.lean Modified Mathlib/Condensed/Epi.lean Modified Mathlib/Condensed/Light/Epi.lean Modified Mathlib/Condensed/Light/InternallyProjective.lean Modified Mathlib/Condensed/Light/Monoidal.lean Modified Mathlib/Condensed/Light/Small.lean Modified Mathlib/Condensed/Light/TopCatAdjunction.lean Modified Mathlib/Condensed/TopCatAdjunction.lean Modified Mathlib/Condensed/TopComparison.lean Modified Mathlib/Control/Bitraversable/Instances.lean Modified Mathlib/Control/Fold.lean Modified Mathlib/Control/Functor/Multivariate.lean Modified Mathlib/Data/BitVec.lean Modified Mathlib/Data/Bool/Count.lean Modified Mathlib/Data/Complex/Basic.lean Modified Mathlib/Data/DFinsupp/Defs.lean Modified Mathlib/Data/DFinsupp/Encodable.lean Modified Mathlib/Data/DFinsupp/Lex.lean Modified Mathlib/Data/DFinsupp/Order.lean Modified Mathlib/Data/DFinsupp/Sigma.lean Modified Mathlib/Data/ENNReal/Action.lean Modified Mathlib/Data/ENNReal/Basic.lean - def ENNReal.ofNNRealHom Modified Mathlib/Data/ENNReal/BigOperators.lean Modified Mathlib/Data/ENNReal/Operations.lean Modified Mathlib/Data/ENNReal/Real.lean - def ENNReal.toNNRealHom - def ENNReal.toRealHom Modified Mathlib/Data/ENat/Basic.lean Modified Mathlib/Data/ENat/Pow.lean Modified Mathlib/Data/EReal/Basic.lean Modified Mathlib/Data/EReal/Inv.lean Modified Mathlib/Data/EReal/Operations.lean Modified Mathlib/Data/Erased.lean Modified Mathlib/Data/Fin/Tuple/Basic.lean Modified Mathlib/Data/Fin/Tuple/Sort.lean Modified Mathlib/Data/Fin/Tuple/Take.lean Modified Mathlib/Data/FinEnum.lean Modified Mathlib/Data/Finset/Attach.lean Modified Mathlib/Data/Finset/Basic.lean Modified Mathlib/Data/Finset/Card.lean Modified Mathlib/Data/Finset/Disjoint.lean Modified Mathlib/Data/Finset/Filter.lean Modified Mathlib/Data/Finset/Fin.lean Modified Mathlib/Data/Finset/Image.lean Modified Mathlib/Data/Finset/Insert.lean Modified Mathlib/Data/Finset/Lattice/Fold.lean Modified Mathlib/Data/Finset/Max.lean Modified Mathlib/Data/Finset/NatAntidiagonal.lean Modified Mathlib/Data/Finset/NoncommProd.lean Modified Mathlib/Data/Finset/Pi.lean Modified Mathlib/Data/Finset/Powerset.lean Modified Mathlib/Data/Finset/Preimage.lean Modified Mathlib/Data/Finset/Sort.lean Modified Mathlib/Data/Finset/Sum.lean Modified Mathlib/Data/Finset/Sups.lean Modified Mathlib/Data/Finset/Sym.lean Modified Mathlib/Data/Finset/SymmDiff.lean Modified Mathlib/Data/Finset/Union.lean Modified Mathlib/Data/Finset/Update.lean Modified Mathlib/Data/Finsupp/AList.lean Modified Mathlib/Data/Finsupp/Indicator.lean Modified Mathlib/Data/Finsupp/MonomialOrder/DegLex.lean Modified Mathlib/Data/Finsupp/Order.lean Modified Mathlib/Data/Finsupp/PointwiseSMul.lean Modified Mathlib/Data/Finsupp/SMul.lean Modified Mathlib/Data/Finsupp/Single.lean Modified Mathlib/Data/Finsupp/Weight.lean Modified Mathlib/Data/Fintype/BigOperators.lean Modified Mathlib/Data/Fintype/Defs.lean Modified Mathlib/Data/Fintype/EquivFin.lean Modified Mathlib/Data/Fintype/Sets.lean Modified Mathlib/Data/Fintype/Units.lean Modified Mathlib/Data/Holor.lean Modified Mathlib/Data/Int/CardIntervalMod.lean Modified Mathlib/Data/Int/Fib/Basic.lean Modified Mathlib/Data/Int/Fib/Lemmas.lean Modified Mathlib/Data/Int/GCD.lean Modified Mathlib/Data/Int/Init.lean - theorem Int.ext_ediv_emod - theorem Int.ext_ediv_emod_iff Modified Mathlib/Data/Int/Order/Basic.lean Modified Mathlib/Data/Int/Star.lean Modified Mathlib/Data/Int/SuccPred.lean Modified Mathlib/Data/List/MinMax.lean Modified Mathlib/Data/List/NodupEquivFin.lean Modified Mathlib/Data/List/OfFn.lean - theorem List.map_ofFn - theorem List.ofFn_getElem Modified Mathlib/Data/List/Pi.lean Modified Mathlib/Data/List/Shortlex.lean Modified Mathlib/Data/List/SplitLengths.lean Modified Mathlib/Data/Matrix/Basic.lean Modified Mathlib/Data/Matrix/Basis.lean Modified Mathlib/Data/Matrix/DualNumber.lean Modified Mathlib/Data/Matrix/Invertible.lean Modified Mathlib/Data/Matrix/PEquiv.lean Modified Mathlib/Data/Multiset/Fintype.lean Modified Mathlib/Data/Multiset/Interval.lean Modified Mathlib/Data/NNRat/Defs.lean Modified Mathlib/Data/NNReal/Basic.lean Modified Mathlib/Data/NNReal/Defs.lean Modified Mathlib/Data/Nat/Basic.lean Modified Mathlib/Data/Nat/Bitwise.lean Modified Mathlib/Data/Nat/Cast/Order/Ring.lean Modified Mathlib/Data/Nat/Choose/Central.lean Modified Mathlib/Data/Nat/Choose/Factorization.lean Modified Mathlib/Data/Nat/Choose/Multinomial.lean Modified Mathlib/Data/Nat/Choose/Sum.lean Modified Mathlib/Data/Nat/Choose/Vandermonde.lean Modified Mathlib/Data/Nat/Count.lean Modified Mathlib/Data/Nat/Digits/Lemmas.lean Modified Mathlib/Data/Nat/Factorization/Basic.lean Modified Mathlib/Data/Nat/Factorization/Defs.lean Modified Mathlib/Data/Nat/Factorization/LCM.lean Modified Mathlib/Data/Nat/Factorization/PrimePow.lean Modified Mathlib/Data/Nat/Factorization/Root.lean Modified Mathlib/Data/Nat/Fib/Basic.lean Modified Mathlib/Data/Nat/Fib/Zeckendorf.lean Modified Mathlib/Data/Nat/GCD/Basic.lean Modified Mathlib/Data/Nat/Init.lean - theorem Nat.ext_div_mod - theorem Nat.ext_div_mod_iff Modified Mathlib/Data/Nat/ModEq.lean Modified Mathlib/Data/Nat/Multiplicity.lean Modified Mathlib/Data/Nat/Prime/Defs.lean Modified Mathlib/Data/Nat/Squarefree.lean Modified Mathlib/Data/Nat/SuccPred.lean Modified Mathlib/Data/Nat/Totient.lean Modified Mathlib/Data/Num/Lemmas.lean Modified Mathlib/Data/Num/Prime.lean Modified Mathlib/Data/Num/ZNum.lean Modified Mathlib/Data/Ordmap/Invariants.lean Modified Mathlib/Data/Ordmap/Ordset.lean Modified Mathlib/Data/PFunctor/Multivariate/M.lean Modified Mathlib/Data/PFunctor/Multivariate/W.lean Modified Mathlib/Data/PFunctor/Univariate/M.lean Modified Mathlib/Data/PNat/Basic.lean Modified Mathlib/Data/PNat/Factors.lean Modified Mathlib/Data/PNat/Interval.lean Modified Mathlib/Data/Prod/Lex.lean Modified Mathlib/Data/Prod/TProd.lean Modified Mathlib/Data/QPF/Multivariate/Constructions/Cofix.lean Modified Mathlib/Data/QPF/Multivariate/Constructions/Fix.lean Modified Mathlib/Data/QPF/Multivariate/Constructions/Sigma.lean Modified Mathlib/Data/QPF/Univariate/Basic.lean Modified Mathlib/Data/Rat/Cast/Order.lean Modified Mathlib/Data/Rat/Defs.lean - theorem Rat.eq_iff_mul_eq_mul Modified Mathlib/Data/Rat/Floor.lean Modified Mathlib/Data/Rat/NatSqrt/Defs.lean Modified Mathlib/Data/Rat/NatSqrt/Real.lean Modified Mathlib/Data/Rat/Star.lean Modified Mathlib/Data/Real/Archimedean.lean Modified Mathlib/Data/Real/Embedding.lean Modified Mathlib/Data/Real/StarOrdered.lean Modified Mathlib/Data/Semiquot.lean Modified Mathlib/Data/Seq/Basic.lean Modified Mathlib/Data/Seq/Defs.lean Modified Mathlib/Data/Seq/Parallel.lean Modified Mathlib/Data/Set/Card.lean Modified Mathlib/Data/Set/Card/Arithmetic.lean Modified Mathlib/Data/Set/Finite/Basic.lean Modified Mathlib/Data/Set/Function.lean Modified Mathlib/Data/Set/Functor.lean Modified Mathlib/Data/Set/Image.lean Modified Mathlib/Data/Set/MemPartition.lean Modified Mathlib/Data/Set/Pairwise/Basic.lean Modified Mathlib/Data/Set/Pairwise/Lattice.lean Modified Mathlib/Data/Set/PowersetCard.lean Modified Mathlib/Data/Set/Prod.lean Modified Mathlib/Data/Set/Semiring.lean - def SetSemiring.singletonMonoidHom Modified Mathlib/Data/Set/Sups.lean Modified Mathlib/Data/Setoid/Basic.lean Modified Mathlib/Data/Setoid/Partition.lean Modified Mathlib/Data/Sign/Basic.lean Modified Mathlib/Data/String/Basic.lean Modified Mathlib/Data/Sum/Order.lean Modified Mathlib/Data/Sym/Basic.lean Modified Mathlib/Data/Sym/Sym2.lean Modified Mathlib/Data/Sym/Sym2/Finsupp.lean Modified Mathlib/Data/TypeVec.lean Modified Mathlib/Data/Vector/Basic.lean Modified Mathlib/Data/Vector/Mem.lean Modified Mathlib/Data/WSeq/Basic.lean Modified Mathlib/Data/ZMod/Basic.lean Modified Mathlib/Data/ZMod/Coprime.lean Modified Mathlib/Data/ZMod/Defs.lean Modified Mathlib/Data/ZMod/IntUnitsPower.lean Modified Mathlib/Data/ZMod/QuotientGroup.lean Modified Mathlib/Data/ZMod/Units.lean Modified Mathlib/Data/ZMod/ValMinAbs.lean Modified Mathlib/Dynamics/Ergodic/Action/OfMinimal.lean Modified Mathlib/Dynamics/Ergodic/AddCircle.lean Modified Mathlib/Dynamics/Ergodic/MeasurePreserving.lean Modified Mathlib/Dynamics/PeriodicPts/Lemmas.lean Modified Mathlib/Dynamics/TopologicalEntropy/CoverEntropy.lean Modified Mathlib/Dynamics/TopologicalEntropy/NetEntropy.lean Modified Mathlib/FieldTheory/AbelRuffini.lean Modified Mathlib/FieldTheory/AbsoluteGaloisGroup.lean Modified Mathlib/FieldTheory/AlgebraicClosure.lean Modified Mathlib/FieldTheory/AxGrothendieck.lean Modified Mathlib/FieldTheory/CardinalEmb.lean Modified Mathlib/FieldTheory/ChevalleyWarning.lean Modified Mathlib/FieldTheory/Differential/Basic.lean Modified Mathlib/FieldTheory/Differential/Liouville.lean Modified Mathlib/FieldTheory/Extension.lean Modified Mathlib/FieldTheory/Finite/Basic.lean Modified Mathlib/FieldTheory/Finite/GaloisField.lean Modified Mathlib/FieldTheory/Finite/Polynomial.lean Modified Mathlib/FieldTheory/Fixed.lean Modified Mathlib/FieldTheory/Galois/Abelian.lean Modified Mathlib/FieldTheory/Galois/Basic.lean Modified Mathlib/FieldTheory/Galois/GaloisClosure.lean Modified Mathlib/FieldTheory/Galois/Infinite.lean Modified Mathlib/FieldTheory/Galois/IsGaloisGroup.lean Modified Mathlib/FieldTheory/Galois/NormalBasis.lean Modified Mathlib/FieldTheory/Galois/Profinite.lean Modified Mathlib/FieldTheory/IntermediateField/Adjoin/Algebra.lean Modified Mathlib/FieldTheory/IntermediateField/Adjoin/Basic.lean Modified Mathlib/FieldTheory/IntermediateField/Adjoin/Defs.lean Modified Mathlib/FieldTheory/IntermediateField/Algebraic.lean Modified Mathlib/FieldTheory/IntermediateField/Basic.lean Modified Mathlib/FieldTheory/IsAlgClosed/AlgebraicClosure.lean Modified Mathlib/FieldTheory/IsAlgClosed/Classification.lean Modified Mathlib/FieldTheory/IsAlgClosed/Spectrum.lean Modified Mathlib/FieldTheory/IsPerfectClosure.lean Modified Mathlib/FieldTheory/Isaacs.lean Modified Mathlib/FieldTheory/JacobsonNoether.lean Modified Mathlib/FieldTheory/KrullTopology.lean Modified Mathlib/FieldTheory/KummerExtension.lean Modified Mathlib/FieldTheory/LinearDisjoint.lean Modified Mathlib/FieldTheory/Minpoly/Basic.lean Modified Mathlib/FieldTheory/Minpoly/IsConjRoot.lean Modified Mathlib/FieldTheory/Minpoly/IsIntegrallyClosed.lean Modified Mathlib/FieldTheory/MvRatFunc/Rank.lean Modified Mathlib/FieldTheory/Normal/Basic.lean Modified Mathlib/FieldTheory/Normal/Closure.lean Modified Mathlib/FieldTheory/Normal/Defs.lean Modified Mathlib/FieldTheory/NormalizedTrace.lean Modified Mathlib/FieldTheory/PolynomialGaloisGroup.lean Modified Mathlib/FieldTheory/PrimeField.lean Modified Mathlib/FieldTheory/PrimitiveElement.lean Modified Mathlib/FieldTheory/PurelyInseparable/Basic.lean Modified Mathlib/FieldTheory/PurelyInseparable/PerfectClosure.lean Modified Mathlib/FieldTheory/PurelyInseparable/Tower.lean Modified Mathlib/FieldTheory/RatFunc/AsPolynomial.lean Modified Mathlib/FieldTheory/RatFunc/Basic.lean Modified Mathlib/FieldTheory/RatFunc/Degree.lean Modified Mathlib/FieldTheory/Relrank.lean Modified Mathlib/FieldTheory/Separable.lean Modified Mathlib/FieldTheory/SeparableClosure.lean Modified Mathlib/FieldTheory/SeparableDegree.lean Modified Mathlib/FieldTheory/SeparablyGenerated.lean Modified Mathlib/FieldTheory/SplittingField/Construction.lean Modified Mathlib/FieldTheory/SplittingField/IsSplittingField.lean Modified Mathlib/Geometry/Convex/Cone/Basic.lean Modified Mathlib/Geometry/Convex/Cone/Dual.lean Modified Mathlib/Geometry/Convex/Cone/Pointed.lean Modified Mathlib/Geometry/Diffeology/Basic.lean Modified Mathlib/Geometry/Euclidean/Altitude.lean Modified Mathlib/Geometry/Euclidean/Angle/Oriented/Affine.lean Modified Mathlib/Geometry/Euclidean/Angle/Oriented/Basic.lean Modified Mathlib/Geometry/Euclidean/Angle/Oriented/Rotation.lean Modified Mathlib/Geometry/Euclidean/Angle/Sphere.lean Modified Mathlib/Geometry/Euclidean/Angle/Unoriented/Affine.lean Modified Mathlib/Geometry/Euclidean/Angle/Unoriented/Basic.lean Modified Mathlib/Geometry/Euclidean/Angle/Unoriented/CrossProduct.lean Modified Mathlib/Geometry/Euclidean/Angle/Unoriented/RightAngle.lean Modified Mathlib/Geometry/Euclidean/Angle/Unoriented/TriangleInequality.lean Modified Mathlib/Geometry/Euclidean/Circumcenter.lean Modified Mathlib/Geometry/Euclidean/Incenter.lean Modified Mathlib/Geometry/Euclidean/MongePoint.lean Modified Mathlib/Geometry/Euclidean/NinePointCircle.lean Modified Mathlib/Geometry/Euclidean/PerpBisector.lean Modified Mathlib/Geometry/Euclidean/Projection.lean Modified Mathlib/Geometry/Euclidean/SignedDist.lean Modified Mathlib/Geometry/Euclidean/Sphere/Basic.lean Modified Mathlib/Geometry/Euclidean/Sphere/OrthRadius.lean - def EuclideanGeometry.Sphere.orthRadius Modified Mathlib/Geometry/Euclidean/Sphere/Power.lean Modified Mathlib/Geometry/Euclidean/Sphere/Tangent.lean Modified Mathlib/Geometry/Euclidean/Triangle.lean Modified Mathlib/Geometry/Group/Growth/LinearLowerBound.lean Modified Mathlib/Geometry/Manifold/Algebra/LeftInvariantDerivation.lean Modified Mathlib/Geometry/Manifold/Algebra/LieGroup.lean Modified Mathlib/Geometry/Manifold/Algebra/Monoid.lean Modified Mathlib/Geometry/Manifold/Algebra/Structures.lean Modified Mathlib/Geometry/Manifold/ChartedSpace.lean Modified Mathlib/Geometry/Manifold/ContMDiff/Atlas.lean Modified Mathlib/Geometry/Manifold/ContMDiff/Basic.lean Modified Mathlib/Geometry/Manifold/ContMDiff/Defs.lean Modified Mathlib/Geometry/Manifold/ContMDiff/NormedSpace.lean Modified Mathlib/Geometry/Manifold/ContMDiffMFDeriv.lean Modified Mathlib/Geometry/Manifold/DerivationBundle.lean Modified Mathlib/Geometry/Manifold/Diffeomorph.lean Modified Mathlib/Geometry/Manifold/GroupLieAlgebra.lean Modified Mathlib/Geometry/Manifold/HasGroupoid.lean Modified Mathlib/Geometry/Manifold/Immersion.lean Modified Mathlib/Geometry/Manifold/Instances/Icc.lean Modified Mathlib/Geometry/Manifold/Instances/Real.lean Modified Mathlib/Geometry/Manifold/Instances/Sphere.lean Modified Mathlib/Geometry/Manifold/Instances/UnitsOfNormedAlgebra.lean Modified Mathlib/Geometry/Manifold/IntegralCurve/Basic.lean Modified Mathlib/Geometry/Manifold/IntegralCurve/ExistUnique.lean Modified Mathlib/Geometry/Manifold/IsManifold/Basic.lean Modified Mathlib/Geometry/Manifold/IsManifold/ExtChartAt.lean Modified Mathlib/Geometry/Manifold/IsManifold/InteriorBoundary.lean Modified Mathlib/Geometry/Manifold/LocalDiffeomorph.lean Modified Mathlib/Geometry/Manifold/LocalInvariantProperties.lean Modified Mathlib/Geometry/Manifold/MFDeriv/Atlas.lean Modified Mathlib/Geometry/Manifold/MFDeriv/Basic.lean Modified Mathlib/Geometry/Manifold/MFDeriv/FDeriv.lean Modified Mathlib/Geometry/Manifold/MFDeriv/NormedSpace.lean Modified Mathlib/Geometry/Manifold/MFDeriv/SpecificFunctions.lean Modified Mathlib/Geometry/Manifold/MFDeriv/Tangent.lean Modified Mathlib/Geometry/Manifold/MFDeriv/UniqueDifferential.lean Modified Mathlib/Geometry/Manifold/PartitionOfUnity.lean Modified Mathlib/Geometry/Manifold/Riemannian/Basic.lean Modified Mathlib/Geometry/Manifold/Riemannian/PathELength.lean Modified Mathlib/Geometry/Manifold/Sheaf/Smooth.lean Modified Mathlib/Geometry/Manifold/VectorBundle/Basic.lean Modified Mathlib/Geometry/Manifold/VectorBundle/Hom.lean Modified Mathlib/Geometry/Manifold/VectorBundle/MDifferentiable.lean Modified Mathlib/Geometry/Manifold/VectorBundle/Riemannian.lean Modified Mathlib/Geometry/Manifold/VectorBundle/SmoothSection.lean Modified Mathlib/Geometry/Manifold/VectorBundle/Tangent.lean Modified Mathlib/Geometry/Manifold/VectorField/LieBracket.lean Modified Mathlib/Geometry/Manifold/VectorField/Pullback.lean Modified Mathlib/Geometry/RingedSpace/Basic.lean Modified Mathlib/Geometry/RingedSpace/LocallyRingedSpace.lean Modified Mathlib/Geometry/RingedSpace/LocallyRingedSpace/HasColimits.lean Modified Mathlib/Geometry/RingedSpace/LocallyRingedSpace/ResidueField.lean Modified Mathlib/Geometry/RingedSpace/OpenImmersion.lean Modified Mathlib/Geometry/RingedSpace/PresheafedSpace.lean Modified Mathlib/Geometry/RingedSpace/PresheafedSpace/Gluing.lean Modified Mathlib/Geometry/RingedSpace/PresheafedSpace/HasColimits.lean Modified Mathlib/Geometry/RingedSpace/SheafedSpace.lean Modified Mathlib/Geometry/RingedSpace/Stalks.lean Modified Mathlib/GroupTheory/Archimedean.lean Modified Mathlib/GroupTheory/ArchimedeanDensely.lean Modified Mathlib/GroupTheory/Commensurable.lean Modified Mathlib/GroupTheory/Commutator/Basic.lean Modified Mathlib/GroupTheory/Commutator/Finite.lean Modified Mathlib/GroupTheory/CommutingProbability.lean Modified Mathlib/GroupTheory/Complement.lean Modified Mathlib/GroupTheory/Congruence/Defs.lean Modified Mathlib/GroupTheory/Congruence/Hom.lean Modified Mathlib/GroupTheory/Coprod/Basic.lean Modified Mathlib/GroupTheory/CoprodI.lean Modified Mathlib/GroupTheory/Coset/Basic.lean Modified Mathlib/GroupTheory/Coset/Defs.lean Modified Mathlib/GroupTheory/CosetCover.lean Modified Mathlib/GroupTheory/Coxeter/Basic.lean Modified Mathlib/GroupTheory/Coxeter/Inversion.lean Modified Mathlib/GroupTheory/Divisible.lean Modified Mathlib/GroupTheory/DivisibleHull.lean Modified Mathlib/GroupTheory/DoubleCoset.lean Modified Mathlib/GroupTheory/Exponent.lean Modified Mathlib/GroupTheory/Frattini.lean Modified Mathlib/GroupTheory/FreeAbelianGroup.lean Modified Mathlib/GroupTheory/FreeGroup/Basic.lean Modified Mathlib/GroupTheory/FreeGroup/NielsenSchreier.lean Modified Mathlib/GroupTheory/FreeGroup/Orbit.lean Modified Mathlib/GroupTheory/GroupAction/Basic.lean Modified Mathlib/GroupTheory/GroupAction/Blocks.lean Modified Mathlib/GroupTheory/GroupAction/Defs.lean Modified Mathlib/GroupTheory/GroupAction/FixedPoints.lean Modified Mathlib/GroupTheory/GroupAction/FixingSubgroup.lean Modified Mathlib/GroupTheory/GroupAction/Iwasawa.lean Modified Mathlib/GroupTheory/GroupAction/Jordan.lean Modified Mathlib/GroupTheory/GroupAction/MultipleTransitivity.lean Modified Mathlib/GroupTheory/GroupAction/Primitive.lean Modified Mathlib/GroupTheory/GroupAction/Quotient.lean Modified Mathlib/GroupTheory/GroupAction/SubMulAction/Combination.lean Modified Mathlib/GroupTheory/GroupAction/SubMulAction/OfFixingSubgroup.lean Modified Mathlib/GroupTheory/GroupAction/SubMulAction/OfStabilizer.lean Modified Mathlib/GroupTheory/HNNExtension.lean Modified Mathlib/GroupTheory/Index.lean Modified Mathlib/GroupTheory/IsSubnormal.lean Modified Mathlib/GroupTheory/MonoidLocalization/Basic.lean Modified Mathlib/GroupTheory/Nilpotent.lean Modified Mathlib/GroupTheory/NoncommCoprod.lean Modified Mathlib/GroupTheory/NoncommPiCoprod.lean Modified Mathlib/GroupTheory/OrderOfElement.lean Modified Mathlib/GroupTheory/OreLocalization/Basic.lean Modified Mathlib/GroupTheory/PGroup.lean Modified Mathlib/GroupTheory/Perm/Centralizer.lean Modified Mathlib/GroupTheory/Perm/Closure.lean Modified Mathlib/GroupTheory/Perm/ClosureSwap.lean Modified Mathlib/GroupTheory/Perm/Cycle/Basic.lean Modified Mathlib/GroupTheory/Perm/Cycle/Concrete.lean Modified Mathlib/GroupTheory/Perm/Cycle/Factors.lean Modified Mathlib/GroupTheory/Perm/Cycle/Type.lean Modified Mathlib/GroupTheory/Perm/DomMulAct.lean Modified Mathlib/GroupTheory/Perm/Fin.lean Modified Mathlib/GroupTheory/Perm/Finite.lean Modified Mathlib/GroupTheory/Perm/List.lean Modified Mathlib/GroupTheory/Perm/MaximalSubgroups.lean Modified Mathlib/GroupTheory/Perm/Support.lean Modified Mathlib/GroupTheory/PresentedGroup.lean Modified Mathlib/GroupTheory/PushoutI.lean Modified Mathlib/GroupTheory/QuotientGroup/Basic.lean Modified Mathlib/GroupTheory/QuotientGroup/Finite.lean Modified Mathlib/GroupTheory/Schreier.lean Modified Mathlib/GroupTheory/SchurZassenhaus.lean Modified Mathlib/GroupTheory/SemidirectProduct.lean Modified Mathlib/GroupTheory/Solvable.lean Modified Mathlib/GroupTheory/SpecificGroups/Alternating.lean Modified Mathlib/GroupTheory/SpecificGroups/Alternating/Centralizer.lean Modified Mathlib/GroupTheory/SpecificGroups/Alternating/KleinFour.lean Modified Mathlib/GroupTheory/SpecificGroups/Alternating/MaximalSubgroups.lean Modified Mathlib/GroupTheory/SpecificGroups/Cyclic.lean Modified Mathlib/GroupTheory/SpecificGroups/Dihedral.lean Modified Mathlib/GroupTheory/SpecificGroups/Quaternion.lean Modified Mathlib/GroupTheory/SpecificGroups/ZGroup.lean Modified Mathlib/GroupTheory/Subgroup/Centralizer.lean Modified Mathlib/GroupTheory/Subgroup/Simple.lean Modified Mathlib/GroupTheory/Sylow.lean Modified Mathlib/GroupTheory/Torsion.lean Modified Mathlib/GroupTheory/Transfer.lean Modified Mathlib/LinearAlgebra/AffineSpace/AffineSubspace/Basic.lean Modified Mathlib/LinearAlgebra/AffineSpace/AffineSubspace/Defs.lean Modified Mathlib/LinearAlgebra/AffineSpace/Basis.lean Modified Mathlib/LinearAlgebra/AffineSpace/Centroid.lean Modified Mathlib/LinearAlgebra/AffineSpace/Ceva.lean Modified Mathlib/LinearAlgebra/AffineSpace/Combination.lean Modified Mathlib/LinearAlgebra/AffineSpace/FiniteDimensional.lean Modified Mathlib/LinearAlgebra/AffineSpace/Independent.lean Modified Mathlib/LinearAlgebra/AffineSpace/Matrix.lean Modified Mathlib/LinearAlgebra/AffineSpace/Ordered.lean Modified Mathlib/LinearAlgebra/AffineSpace/Pointwise.lean Modified Mathlib/LinearAlgebra/AffineSpace/Restrict.lean Modified Mathlib/LinearAlgebra/AffineSpace/Simplex/Basic.lean Modified Mathlib/LinearAlgebra/AffineSpace/Simplex/Centroid.lean Modified Mathlib/LinearAlgebra/Alternating/Basic.lean Modified Mathlib/LinearAlgebra/Alternating/DomCoprod.lean Modified Mathlib/LinearAlgebra/Alternating/Uncurry/Fin.lean Modified Mathlib/LinearAlgebra/AnnihilatingPolynomial.lean Modified Mathlib/LinearAlgebra/Basis/Defs.lean Modified Mathlib/LinearAlgebra/Basis/Exact.lean Modified Mathlib/LinearAlgebra/Basis/Fin.lean Modified Mathlib/LinearAlgebra/Basis/VectorSpace.lean Modified Mathlib/LinearAlgebra/BilinearForm/Orthogonal.lean Modified Mathlib/LinearAlgebra/Center.lean Modified Mathlib/LinearAlgebra/Charpoly/ToMatrix.lean Modified Mathlib/LinearAlgebra/CliffordAlgebra/BaseChange.lean Modified Mathlib/LinearAlgebra/CliffordAlgebra/Basic.lean Modified Mathlib/LinearAlgebra/CliffordAlgebra/Conjugation.lean Modified Mathlib/LinearAlgebra/CliffordAlgebra/Contraction.lean Modified Mathlib/LinearAlgebra/CliffordAlgebra/Equivs.lean Modified Mathlib/LinearAlgebra/CliffordAlgebra/Even.lean Modified Mathlib/LinearAlgebra/CliffordAlgebra/EvenEquiv.lean Modified Mathlib/LinearAlgebra/CliffordAlgebra/Grading.lean Modified Mathlib/LinearAlgebra/CliffordAlgebra/Inversion.lean Modified Mathlib/LinearAlgebra/CliffordAlgebra/Prod.lean Modified Mathlib/LinearAlgebra/CliffordAlgebra/SpinGroup.lean Modified Mathlib/LinearAlgebra/Coevaluation.lean Modified Mathlib/LinearAlgebra/Complex/Determinant.lean Modified Mathlib/LinearAlgebra/Complex/FiniteDimensional.lean Modified Mathlib/LinearAlgebra/Complex/Module.lean Modified Mathlib/LinearAlgebra/CrossProduct.lean Modified Mathlib/LinearAlgebra/DFinsupp.lean Modified Mathlib/LinearAlgebra/Determinant.lean Modified Mathlib/LinearAlgebra/Dimension/Constructions.lean Modified Mathlib/LinearAlgebra/Dimension/DivisionRing.lean Modified Mathlib/LinearAlgebra/Dimension/Finite.lean Modified Mathlib/LinearAlgebra/Dimension/FreeAndStrongRankCondition.lean Modified Mathlib/LinearAlgebra/Dimension/LinearMap.lean Modified Mathlib/LinearAlgebra/Dimension/Localization.lean Modified Mathlib/LinearAlgebra/Dimension/RankNullity.lean Modified Mathlib/LinearAlgebra/Dimension/StrongRankCondition.lean Modified Mathlib/LinearAlgebra/Dimension/Torsion/Basic.lean Modified Mathlib/LinearAlgebra/DirectSum/Finsupp.lean Modified Mathlib/LinearAlgebra/Dual/Lemmas.lean Modified Mathlib/LinearAlgebra/Eigenspace/Basic.lean Modified Mathlib/LinearAlgebra/Eigenspace/Pi.lean Modified Mathlib/LinearAlgebra/Eigenspace/Semisimple.lean Modified Mathlib/LinearAlgebra/Eigenspace/Triangularizable.lean Modified Mathlib/LinearAlgebra/Eigenspace/Zero.lean Modified Mathlib/LinearAlgebra/ExteriorAlgebra/Basic.lean Modified Mathlib/LinearAlgebra/ExteriorAlgebra/Grading.lean Modified Mathlib/LinearAlgebra/ExteriorPower/Basic.lean Modified Mathlib/LinearAlgebra/ExteriorPower/Basis.lean Modified Mathlib/LinearAlgebra/FiniteDimensional/Basic.lean Modified Mathlib/LinearAlgebra/FiniteDimensional/Defs.lean Modified Mathlib/LinearAlgebra/FiniteDimensional/Lemmas.lean Modified Mathlib/LinearAlgebra/Finsupp/LinearCombination.lean Modified Mathlib/LinearAlgebra/Finsupp/Supported.lean Modified Mathlib/LinearAlgebra/FreeAlgebra.lean Modified Mathlib/LinearAlgebra/FreeModule/Finite/CardQuotient.lean Modified Mathlib/LinearAlgebra/FreeModule/Int.lean Modified Mathlib/LinearAlgebra/FreeModule/ModN.lean Modified Mathlib/LinearAlgebra/FreeModule/Norm.lean Modified Mathlib/LinearAlgebra/FreeModule/PID.lean Modified Mathlib/LinearAlgebra/Goursat.lean Modified Mathlib/LinearAlgebra/Isomorphisms.lean Modified Mathlib/LinearAlgebra/JordanChevalley.lean Modified Mathlib/LinearAlgebra/LinearDisjoint.lean Modified Mathlib/LinearAlgebra/LinearIndependent/Basic.lean Modified Mathlib/LinearAlgebra/LinearIndependent/Defs.lean Modified Mathlib/LinearAlgebra/LinearIndependent/Lemmas.lean Modified Mathlib/LinearAlgebra/LinearPMap.lean Modified Mathlib/LinearAlgebra/Matrix/Adjugate.lean Modified Mathlib/LinearAlgebra/Matrix/Charpoly/Basic.lean Modified Mathlib/LinearAlgebra/Matrix/Charpoly/Coeff.lean Modified Mathlib/LinearAlgebra/Matrix/Charpoly/LinearMap.lean Modified Mathlib/LinearAlgebra/Matrix/Charpoly/Univ.lean Modified Mathlib/LinearAlgebra/Matrix/ConjTranspose.lean Modified Mathlib/LinearAlgebra/Matrix/Defs.lean Modified Mathlib/LinearAlgebra/Matrix/Determinant/Basic.lean Modified Mathlib/LinearAlgebra/Matrix/Diagonal.lean Modified Mathlib/LinearAlgebra/Matrix/FiniteDimensional.lean Modified Mathlib/LinearAlgebra/Matrix/FixedDetMatrices.lean Modified Mathlib/LinearAlgebra/Matrix/GeneralLinearGroup/Card.lean Modified Mathlib/LinearAlgebra/Matrix/GeneralLinearGroup/FinTwo.lean Modified Mathlib/LinearAlgebra/Matrix/Ideal.lean Modified Mathlib/LinearAlgebra/Matrix/Kronecker.lean Modified Mathlib/LinearAlgebra/Matrix/NonsingularInverse.lean Modified Mathlib/LinearAlgebra/Matrix/Notation.lean Modified Mathlib/LinearAlgebra/Matrix/Rank.lean Modified Mathlib/LinearAlgebra/Matrix/RowCol.lean Modified Mathlib/LinearAlgebra/Matrix/SchurComplement.lean Modified Mathlib/LinearAlgebra/Matrix/SemiringInverse.lean Modified Mathlib/LinearAlgebra/Matrix/SpecialLinearGroup.lean Modified Mathlib/LinearAlgebra/Matrix/ToLin.lean Modified Mathlib/LinearAlgebra/Matrix/ToLinearEquiv.lean Modified Mathlib/LinearAlgebra/Matrix/Trace.lean Modified Mathlib/LinearAlgebra/Matrix/Transvection.lean Modified Mathlib/LinearAlgebra/Multilinear/Basic.lean Modified Mathlib/LinearAlgebra/Multilinear/Basis.lean Modified Mathlib/LinearAlgebra/Multilinear/DFinsupp.lean Modified Mathlib/LinearAlgebra/Multilinear/DirectSum.lean Modified Mathlib/LinearAlgebra/PID.lean Modified Mathlib/LinearAlgebra/PerfectPairing/Restrict.lean Modified Mathlib/LinearAlgebra/Pi.lean Modified Mathlib/LinearAlgebra/PiTensorProduct.lean Modified Mathlib/LinearAlgebra/PiTensorProduct/DirectSum.lean Modified Mathlib/LinearAlgebra/Prod.lean Modified Mathlib/LinearAlgebra/Projection.lean Modified Mathlib/LinearAlgebra/Projectivization/Basic.lean Modified Mathlib/LinearAlgebra/Projectivization/Cardinality.lean Modified Mathlib/LinearAlgebra/Projectivization/Constructions.lean Modified Mathlib/LinearAlgebra/Projectivization/Subspace.lean Modified Mathlib/LinearAlgebra/QuadraticForm/Basic.lean Modified Mathlib/LinearAlgebra/QuadraticForm/Dual.lean Modified Mathlib/LinearAlgebra/QuadraticForm/QuadraticModuleCat/Monoidal.lean Modified Mathlib/LinearAlgebra/QuadraticForm/QuadraticModuleCat/Symmetric.lean Modified Mathlib/LinearAlgebra/QuadraticForm/Real.lean Modified Mathlib/LinearAlgebra/QuadraticForm/TensorProduct.lean Modified Mathlib/LinearAlgebra/Quotient/Basic.lean Modified Mathlib/LinearAlgebra/Quotient/Defs.lean Modified Mathlib/LinearAlgebra/Quotient/Pi.lean Modified Mathlib/LinearAlgebra/Ray.lean Modified Mathlib/LinearAlgebra/Reflection.lean Modified Mathlib/LinearAlgebra/RootSystem/Base.lean Modified Mathlib/LinearAlgebra/RootSystem/BaseChange.lean Modified Mathlib/LinearAlgebra/RootSystem/BaseExists.lean Modified Mathlib/LinearAlgebra/RootSystem/Basic.lean Modified Mathlib/LinearAlgebra/RootSystem/CartanMatrix.lean Modified Mathlib/LinearAlgebra/RootSystem/Chain.lean Modified Mathlib/LinearAlgebra/RootSystem/Finite/CanonicalBilinear.lean Modified Mathlib/LinearAlgebra/RootSystem/Finite/G2.lean Modified Mathlib/LinearAlgebra/RootSystem/Finite/Lemmas.lean Modified Mathlib/LinearAlgebra/RootSystem/Finite/Nondegenerate.lean Modified Mathlib/LinearAlgebra/RootSystem/GeckConstruction/Basic.lean Modified Mathlib/LinearAlgebra/RootSystem/GeckConstruction/Lemmas.lean Modified Mathlib/LinearAlgebra/RootSystem/GeckConstruction/Relations.lean Modified Mathlib/LinearAlgebra/RootSystem/GeckConstruction/Semisimple.lean Modified Mathlib/LinearAlgebra/RootSystem/Irreducible.lean Modified Mathlib/LinearAlgebra/RootSystem/OfBilinear.lean Modified Mathlib/LinearAlgebra/RootSystem/RootPositive.lean Modified Mathlib/LinearAlgebra/RootSystem/WeylGroup.lean Modified Mathlib/LinearAlgebra/Semisimple.lean Modified Mathlib/LinearAlgebra/SesquilinearForm/Basic.lean Modified Mathlib/LinearAlgebra/Span/Basic.lean Modified Mathlib/LinearAlgebra/Span/Defs.lean Modified Mathlib/LinearAlgebra/Span/TensorProduct.lean Modified Mathlib/LinearAlgebra/SpecialLinearGroup.lean Modified Mathlib/LinearAlgebra/SymmetricAlgebra/Basis.lean Modified Mathlib/LinearAlgebra/SymplecticGroup.lean Modified Mathlib/LinearAlgebra/TensorAlgebra/Basic.lean Modified Mathlib/LinearAlgebra/TensorAlgebra/Basis.lean Modified Mathlib/LinearAlgebra/TensorAlgebra/Grading.lean Modified Mathlib/LinearAlgebra/TensorAlgebra/ToTensorPower.lean Modified Mathlib/LinearAlgebra/TensorPower/Basic.lean Modified Mathlib/LinearAlgebra/TensorProduct/Basis.lean Modified Mathlib/LinearAlgebra/TensorProduct/Defs.lean Modified Mathlib/LinearAlgebra/TensorProduct/Finiteness.lean Modified Mathlib/LinearAlgebra/TensorProduct/Graded/External.lean Modified Mathlib/LinearAlgebra/TensorProduct/Graded/Internal.lean Modified Mathlib/LinearAlgebra/TensorProduct/Quotient.lean Modified Mathlib/LinearAlgebra/TensorProduct/RightExactness.lean Modified Mathlib/LinearAlgebra/TensorProduct/Subalgebra.lean Modified Mathlib/LinearAlgebra/TensorProduct/Submodule.lean Modified Mathlib/LinearAlgebra/TensorProduct/Vanishing.lean Modified Mathlib/LinearAlgebra/Trace.lean Modified Mathlib/LinearAlgebra/Transvection.lean Modified Mathlib/LinearAlgebra/Vandermonde.lean Modified Mathlib/Logic/Basic.lean Modified Mathlib/Logic/Denumerable.lean Modified Mathlib/Logic/Embedding/Basic.lean Modified Mathlib/Logic/Encodable/Basic.lean Modified Mathlib/Logic/Equiv/Embedding.lean Modified Mathlib/Logic/Equiv/Multiset.lean Modified Mathlib/Logic/Equiv/Set.lean Modified Mathlib/Logic/Nonempty.lean Modified Mathlib/Logic/Small/Defs.lean Modified Mathlib/Logic/UnivLE.lean Modified Mathlib/MeasureTheory/Constructions/BorelSpace/Basic.lean Modified Mathlib/MeasureTheory/Constructions/BorelSpace/Order.lean Modified Mathlib/MeasureTheory/Constructions/BorelSpace/WithTop.lean Modified Mathlib/MeasureTheory/Constructions/Cylinders.lean Modified Mathlib/MeasureTheory/Constructions/HaarToSphere.lean Modified Mathlib/MeasureTheory/Constructions/Pi.lean Modified Mathlib/MeasureTheory/Constructions/Polish/Basic.lean Modified Mathlib/MeasureTheory/Constructions/Projective.lean Modified Mathlib/MeasureTheory/Constructions/SimpleGraph.lean Modified Mathlib/MeasureTheory/Covering/Besicovitch.lean Modified Mathlib/MeasureTheory/Covering/BesicovitchVectorSpace.lean Modified Mathlib/MeasureTheory/Covering/DensityTheorem.lean Modified Mathlib/MeasureTheory/Covering/LiminfLimsup.lean Modified Mathlib/MeasureTheory/Covering/Vitali.lean Modified Mathlib/MeasureTheory/Function/AEEqOfIntegral.lean Modified Mathlib/MeasureTheory/Function/AbsolutelyContinuous.lean Modified Mathlib/MeasureTheory/Function/ConditionalExpectation/AEMeasurable.lean Modified Mathlib/MeasureTheory/Function/ConditionalExpectation/CondexpL1.lean Modified Mathlib/MeasureTheory/Function/ConditionalExpectation/CondexpL2.lean Modified Mathlib/MeasureTheory/Function/ConditionalExpectation/Real.lean Modified Mathlib/MeasureTheory/Function/ConvergenceInDistribution.lean Modified Mathlib/MeasureTheory/Function/EssSup.lean Modified Mathlib/MeasureTheory/Function/FactorsThrough.lean Modified Mathlib/MeasureTheory/Function/Intersectivity.lean Modified Mathlib/MeasureTheory/Function/Jacobian.lean Modified Mathlib/MeasureTheory/Function/JacobianOneDim.lean Modified Mathlib/MeasureTheory/Function/L1Space/AEEqFun.lean Modified Mathlib/MeasureTheory/Function/L1Space/HasFiniteIntegral.lean Modified Mathlib/MeasureTheory/Function/L1Space/Integrable.lean Modified Mathlib/MeasureTheory/Function/LpSeminorm/Basic.lean Modified Mathlib/MeasureTheory/Function/LpSeminorm/LpNorm.lean Modified Mathlib/MeasureTheory/Function/LpSeminorm/TriangleInequality.lean Modified Mathlib/MeasureTheory/Function/LpSpace/ContinuousFunctions.lean Modified Mathlib/MeasureTheory/Function/SimpleFunc.lean Modified Mathlib/MeasureTheory/Function/SimpleFuncDense.lean Modified Mathlib/MeasureTheory/Function/SimpleFuncDenseLp.lean Modified Mathlib/MeasureTheory/Function/UniformIntegrable.lean Modified Mathlib/MeasureTheory/Group/AEStabilizer.lean Modified Mathlib/MeasureTheory/Group/FoelnerFilter.lean - def maxFoelner Modified Mathlib/MeasureTheory/Group/FundamentalDomain.lean Modified Mathlib/MeasureTheory/Group/GeometryOfNumbers.lean Modified Mathlib/MeasureTheory/Integral/Average.lean Modified Mathlib/MeasureTheory/Integral/Bochner/Basic.lean Modified Mathlib/MeasureTheory/Integral/Bochner/ContinuousLinearMap.lean Modified Mathlib/MeasureTheory/Integral/Bochner/L1.lean Modified Mathlib/MeasureTheory/Integral/Bochner/Set.lean Modified Mathlib/MeasureTheory/Integral/Bochner/VitaliCaratheodory.lean Modified Mathlib/MeasureTheory/Integral/CircleAverage.lean Modified Mathlib/MeasureTheory/Integral/CircleIntegral.lean Modified Mathlib/MeasureTheory/Integral/CircleTransform.lean Modified Mathlib/MeasureTheory/Integral/CompactlySupported.lean Modified Mathlib/MeasureTheory/Integral/CurveIntegral/Basic.lean Modified Mathlib/MeasureTheory/Integral/CurveIntegral/Poincare.lean Modified Mathlib/MeasureTheory/Integral/DivergenceTheorem.lean Modified Mathlib/MeasureTheory/Integral/DominatedConvergence.lean Modified Mathlib/MeasureTheory/Integral/Gamma.lean Modified Mathlib/MeasureTheory/Integral/IntegrableOn.lean Modified Mathlib/MeasureTheory/Integral/IntegralEqImproper.lean Modified Mathlib/MeasureTheory/Integral/IntervalAverage.lean Modified Mathlib/MeasureTheory/Integral/IntervalIntegral/AbsolutelyContinuousFun.lean Modified Mathlib/MeasureTheory/Integral/IntervalIntegral/Basic.lean Modified Mathlib/MeasureTheory/Integral/IntervalIntegral/DerivIntegrable.lean Modified Mathlib/MeasureTheory/Integral/IntervalIntegral/FundThmCalculus.lean Modified Mathlib/MeasureTheory/Integral/IntervalIntegral/IntegrationByParts.lean Modified Mathlib/MeasureTheory/Integral/IntervalIntegral/LebesgueDifferentiationThm.lean Modified Mathlib/MeasureTheory/Integral/IntervalIntegral/Periodic.lean Modified Mathlib/MeasureTheory/Integral/IntervalIntegral/Slope.lean Modified Mathlib/MeasureTheory/Integral/IntervalIntegral/TrapezoidalRule.lean Modified Mathlib/MeasureTheory/Integral/Layercake.lean Modified Mathlib/MeasureTheory/Integral/Lebesgue/Basic.lean Modified Mathlib/MeasureTheory/Integral/Lebesgue/Countable.lean Modified Mathlib/MeasureTheory/Integral/MeanInequalities.lean Modified Mathlib/MeasureTheory/Integral/PeakFunction.lean Modified Mathlib/MeasureTheory/Integral/Pi.lean Modified Mathlib/MeasureTheory/Integral/Prod.lean Modified Mathlib/MeasureTheory/Integral/RieszMarkovKakutani/Basic.lean Modified Mathlib/MeasureTheory/Integral/RieszMarkovKakutani/NNReal.lean Modified Mathlib/MeasureTheory/Integral/RieszMarkovKakutani/Real.lean Modified Mathlib/MeasureTheory/Integral/SetToL1.lean Modified Mathlib/MeasureTheory/Integral/TorusIntegral.lean Modified Mathlib/MeasureTheory/MeasurableSpace/Constructions.lean Modified Mathlib/MeasureTheory/MeasurableSpace/CountablyGenerated.lean Modified Mathlib/MeasureTheory/MeasurableSpace/Defs.lean Modified Mathlib/MeasureTheory/MeasurableSpace/MeasurablyGenerated.lean Modified Mathlib/MeasureTheory/MeasurableSpace/Pi.lean Modified Mathlib/MeasureTheory/Measure/AEDisjoint.lean Modified Mathlib/MeasureTheory/Measure/AddContent.lean Modified Mathlib/MeasureTheory/Measure/CharacteristicFunction.lean Modified Mathlib/MeasureTheory/Measure/Content.lean Modified Mathlib/MeasureTheory/Measure/Decomposition/Hahn.lean Modified Mathlib/MeasureTheory/Measure/Decomposition/Lebesgue.lean Modified Mathlib/MeasureTheory/Measure/DiracProba.lean Modified Mathlib/MeasureTheory/Measure/Doubling.lean Modified Mathlib/MeasureTheory/Measure/EverywherePos.lean Modified Mathlib/MeasureTheory/Measure/FiniteMeasure.lean Modified Mathlib/MeasureTheory/Measure/FiniteMeasureExt.lean Modified Mathlib/MeasureTheory/Measure/Haar/Basic.lean Modified Mathlib/MeasureTheory/Measure/Haar/Disintegration.lean Modified Mathlib/MeasureTheory/Measure/Haar/DistribChar.lean Modified Mathlib/MeasureTheory/Measure/Haar/InnerProductSpace.lean Modified Mathlib/MeasureTheory/Measure/Haar/NormedSpace.lean Modified Mathlib/MeasureTheory/Measure/Haar/Quotient.lean Modified Mathlib/MeasureTheory/Measure/Haar/Unique.lean Modified Mathlib/MeasureTheory/Measure/HasOuterApproxClosedProd.lean Modified Mathlib/MeasureTheory/Measure/Hausdorff.lean Modified Mathlib/MeasureTheory/Measure/IntegralCharFun.lean Modified Mathlib/MeasureTheory/Measure/Lebesgue/Basic.lean Modified Mathlib/MeasureTheory/Measure/Lebesgue/Complex.lean Modified Mathlib/MeasureTheory/Measure/Lebesgue/EqHaar.lean Modified Mathlib/MeasureTheory/Measure/Lebesgue/Integral.lean Modified Mathlib/MeasureTheory/Measure/Lebesgue/VolumeOfBalls.lean Modified Mathlib/MeasureTheory/Measure/LevyProkhorovMetric.lean Modified Mathlib/MeasureTheory/Measure/MeasureSpace.lean Modified Mathlib/MeasureTheory/Measure/MeasuredSets.lean Modified Mathlib/MeasureTheory/Measure/MutuallySingular.lean Modified Mathlib/MeasureTheory/Measure/NullMeasurable.lean Modified Mathlib/MeasureTheory/Measure/Portmanteau.lean Modified Mathlib/MeasureTheory/Measure/PreVariation.lean Modified Mathlib/MeasureTheory/Measure/ProbabilityMeasure.lean Modified Mathlib/MeasureTheory/Measure/Prod.lean Modified Mathlib/MeasureTheory/Measure/Regular.lean Modified Mathlib/MeasureTheory/Measure/Restrict.lean Modified Mathlib/MeasureTheory/Measure/SeparableMeasure.lean Modified Mathlib/MeasureTheory/Measure/Stieltjes.lean Modified Mathlib/MeasureTheory/Measure/Sub.lean Modified Mathlib/MeasureTheory/Measure/Tight.lean Modified Mathlib/MeasureTheory/Measure/Typeclasses/Finite.lean Modified Mathlib/MeasureTheory/Measure/Typeclasses/Probability.lean Modified Mathlib/MeasureTheory/Measure/Typeclasses/SFinite.lean Modified Mathlib/MeasureTheory/OuterMeasure/AE.lean Modified Mathlib/MeasureTheory/OuterMeasure/Induced.lean Modified Mathlib/MeasureTheory/OuterMeasure/OfFunction.lean Modified Mathlib/MeasureTheory/OuterMeasure/Operations.lean Modified Mathlib/MeasureTheory/SetSemiring.lean Modified Mathlib/MeasureTheory/SpecificCodomains/ContinuousMapZero.lean Modified Mathlib/MeasureTheory/VectorMeasure/AddContent.lean Modified Mathlib/MeasureTheory/VectorMeasure/Basic.lean Modified Mathlib/MeasureTheory/VectorMeasure/Decomposition/Hahn.lean Modified Mathlib/MeasureTheory/VectorMeasure/Decomposition/Jordan.lean Modified Mathlib/MeasureTheory/VectorMeasure/Decomposition/Lebesgue.lean Modified Mathlib/ModelTheory/Algebra/Ring/Basic.lean Modified Mathlib/ModelTheory/Algebra/Ring/Definability.lean Modified Mathlib/ModelTheory/Arithmetic/Presburger/Basic.lean Modified Mathlib/ModelTheory/Arithmetic/Presburger/Semilinear/Basic.lean Modified Mathlib/ModelTheory/Basic.lean Modified Mathlib/ModelTheory/Complexity.lean Modified Mathlib/ModelTheory/Definability.lean Modified Mathlib/ModelTheory/DirectLimit.lean Modified Mathlib/ModelTheory/ElementaryMaps.lean Modified Mathlib/ModelTheory/Fraisse.lean Modified Mathlib/ModelTheory/LanguageMap.lean Modified Mathlib/ModelTheory/Order.lean Modified Mathlib/ModelTheory/PartialEquiv.lean Modified Mathlib/ModelTheory/Semantics.lean Modified Mathlib/ModelTheory/Syntax.lean Modified Mathlib/ModelTheory/Types.lean Modified Mathlib/NumberTheory/ADEInequality.lean Modified Mathlib/NumberTheory/AbelSummation.lean Modified Mathlib/NumberTheory/ArithmeticFunction/Misc.lean Modified Mathlib/NumberTheory/ArithmeticFunction/Moebius.lean Modified Mathlib/NumberTheory/ArithmeticFunction/VonMangoldt.lean Modified Mathlib/NumberTheory/Basic.lean Modified Mathlib/NumberTheory/Bernoulli.lean Modified Mathlib/NumberTheory/BernoulliPolynomials.lean Modified Mathlib/NumberTheory/Bertrand.lean Modified Mathlib/NumberTheory/Chebyshev.lean Modified Mathlib/NumberTheory/ClassNumber/AdmissibleAbsoluteValue.lean Modified Mathlib/NumberTheory/ClassNumber/Finite.lean Modified Mathlib/NumberTheory/ClassNumber/FunctionField.lean Modified Mathlib/NumberTheory/Cyclotomic/Basic.lean Modified Mathlib/NumberTheory/Cyclotomic/Discriminant.lean Modified Mathlib/NumberTheory/Cyclotomic/PrimitiveRoots.lean Modified Mathlib/NumberTheory/Dioph.lean Modified Mathlib/NumberTheory/DiophantineApproximation/Basic.lean Modified Mathlib/NumberTheory/Divisors.lean Modified Mathlib/NumberTheory/FLT/Basic.lean Modified Mathlib/NumberTheory/FLT/Three.lean Modified Mathlib/NumberTheory/FactorisationProperties.lean Modified Mathlib/NumberTheory/Fermat.lean Modified Mathlib/NumberTheory/FermatPsp.lean Modified Mathlib/NumberTheory/FunctionField.lean Modified Mathlib/NumberTheory/GaussSum.lean Modified Mathlib/NumberTheory/Harmonic/Bounds.lean Modified Mathlib/NumberTheory/Harmonic/EulerMascheroni.lean Modified Mathlib/NumberTheory/Harmonic/GammaDeriv.lean Modified Mathlib/NumberTheory/Harmonic/ZetaAsymp.lean Modified Mathlib/NumberTheory/Height/Basic.lean Modified Mathlib/NumberTheory/Height/NumberField.lean Modified Mathlib/NumberTheory/KummerDedekind.lean Modified Mathlib/NumberTheory/LSeries/AbstractFuncEq.lean Modified Mathlib/NumberTheory/LSeries/Basic.lean Modified Mathlib/NumberTheory/LSeries/Convergence.lean Modified Mathlib/NumberTheory/LSeries/Convolution.lean Modified Mathlib/NumberTheory/LSeries/Deriv.lean Modified Mathlib/NumberTheory/LSeries/Dirichlet.lean Modified Mathlib/NumberTheory/LSeries/DirichletContinuation.lean Modified Mathlib/NumberTheory/LSeries/HurwitzZeta.lean Modified Mathlib/NumberTheory/LSeries/HurwitzZetaEven.lean Modified Mathlib/NumberTheory/LSeries/HurwitzZetaOdd.lean Modified Mathlib/NumberTheory/LSeries/Linearity.lean Modified Mathlib/NumberTheory/LSeries/MellinEqDirichlet.lean Modified Mathlib/NumberTheory/LSeries/Nonvanishing.lean - def DirichletCharacter.zetaMul Modified Mathlib/NumberTheory/LSeries/PrimesInAP.lean Modified Mathlib/NumberTheory/LSeries/SumCoeff.lean Modified Mathlib/NumberTheory/LSeries/ZMod.lean Modified Mathlib/NumberTheory/LegendreSymbol/AddCharacter.lean Modified Mathlib/NumberTheory/LegendreSymbol/Basic.lean Modified Mathlib/NumberTheory/LegendreSymbol/GaussEisensteinLemmas.lean Modified Mathlib/NumberTheory/LegendreSymbol/JacobiSymbol.lean Modified Mathlib/NumberTheory/LegendreSymbol/QuadraticReciprocity.lean Modified Mathlib/NumberTheory/LocalField/Basic.lean Modified Mathlib/NumberTheory/LucasLehmer.lean Modified Mathlib/NumberTheory/MahlerMeasure.lean Modified Mathlib/NumberTheory/MaricaSchoenheim.lean Modified Mathlib/NumberTheory/Modular.lean Modified Mathlib/NumberTheory/ModularForms/Basic.lean Modified Mathlib/NumberTheory/ModularForms/BoundedAtCusp.lean Modified Mathlib/NumberTheory/ModularForms/Bounds.lean Modified Mathlib/NumberTheory/ModularForms/CongruenceSubgroups.lean Modified Mathlib/NumberTheory/ModularForms/Cusps.lean - def cusps_subMulAction Modified Mathlib/NumberTheory/ModularForms/EisensteinSeries/Defs.lean Modified Mathlib/NumberTheory/ModularForms/EisensteinSeries/E2/Summable.lean Modified Mathlib/NumberTheory/ModularForms/EisensteinSeries/E2/Transform.lean Modified Mathlib/NumberTheory/ModularForms/EisensteinSeries/QExpansion.lean Modified Mathlib/NumberTheory/ModularForms/EisensteinSeries/Summable.lean Modified Mathlib/NumberTheory/ModularForms/EisensteinSeries/UniformConvergence.lean Modified Mathlib/NumberTheory/ModularForms/Identities.lean Modified Mathlib/NumberTheory/ModularForms/JacobiTheta/Bounds.lean Modified Mathlib/NumberTheory/ModularForms/JacobiTheta/TwoVariable.lean Modified Mathlib/NumberTheory/ModularForms/LevelOne.lean Modified Mathlib/NumberTheory/ModularForms/NormTrace.lean Modified Mathlib/NumberTheory/ModularForms/Petersson.lean Modified Mathlib/NumberTheory/ModularForms/QExpansion.lean Modified Mathlib/NumberTheory/ModularForms/SlashActions.lean Modified Mathlib/NumberTheory/ModularForms/SlashInvariantForms.lean Modified Mathlib/NumberTheory/MulChar/Lemmas.lean Modified Mathlib/NumberTheory/Multiplicity.lean Modified Mathlib/NumberTheory/Niven.lean Modified Mathlib/NumberTheory/NumberField/Basic.lean Modified Mathlib/NumberTheory/NumberField/CMField.lean Modified Mathlib/NumberTheory/NumberField/CanonicalEmbedding/Basic.lean Modified Mathlib/NumberTheory/NumberField/CanonicalEmbedding/ConvexBody.lean Modified Mathlib/NumberTheory/NumberField/CanonicalEmbedding/FundamentalCone.lean Modified Mathlib/NumberTheory/NumberField/CanonicalEmbedding/NormLeOne.lean Modified Mathlib/NumberTheory/NumberField/CanonicalEmbedding/PolarCoord.lean Modified Mathlib/NumberTheory/NumberField/ClassNumber.lean Modified Mathlib/NumberTheory/NumberField/Cyclotomic/Basic.lean Modified Mathlib/NumberTheory/NumberField/Cyclotomic/Galois.lean Modified Mathlib/NumberTheory/NumberField/Cyclotomic/Ideal.lean Modified Mathlib/NumberTheory/NumberField/Cyclotomic/PID.lean Modified Mathlib/NumberTheory/NumberField/Cyclotomic/Three.lean Modified Mathlib/NumberTheory/NumberField/Discriminant/Basic.lean Modified Mathlib/NumberTheory/NumberField/Discriminant/Defs.lean Modified Mathlib/NumberTheory/NumberField/Discriminant/Different.lean Modified Mathlib/NumberTheory/NumberField/FinitePlaces.lean Modified Mathlib/NumberTheory/NumberField/FractionalIdeal.lean Modified Mathlib/NumberTheory/NumberField/House.lean Modified Mathlib/NumberTheory/NumberField/Ideal/Asymptotics.lean Modified Mathlib/NumberTheory/NumberField/Ideal/Basic.lean Modified Mathlib/NumberTheory/NumberField/Ideal/KummerDedekind.lean Modified Mathlib/NumberTheory/NumberField/InfinitePlace/Basic.lean Modified Mathlib/NumberTheory/NumberField/InfinitePlace/Completion.lean Modified Mathlib/NumberTheory/NumberField/InfinitePlace/Ramification.lean Modified Mathlib/NumberTheory/NumberField/InfinitePlace/TotallyRealComplex.lean Modified Mathlib/NumberTheory/NumberField/Norm.lean Modified Mathlib/NumberTheory/NumberField/ProductFormula.lean Modified Mathlib/NumberTheory/NumberField/Units/Basic.lean Modified Mathlib/NumberTheory/NumberField/Units/DirichletTheorem.lean Modified Mathlib/NumberTheory/NumberField/Units/Regulator.lean Modified Mathlib/NumberTheory/Ostrowski.lean Modified Mathlib/NumberTheory/Padics/AddChar.lean Modified Mathlib/NumberTheory/Padics/Complex.lean Modified Mathlib/NumberTheory/Padics/Hensel.lean Modified Mathlib/NumberTheory/Padics/MahlerBasis.lean Modified Mathlib/NumberTheory/Padics/PadicIntegers.lean Modified Mathlib/NumberTheory/Padics/PadicNorm.lean Modified Mathlib/NumberTheory/Padics/PadicNumbers.lean Modified Mathlib/NumberTheory/Padics/PadicVal/Basic.lean Modified Mathlib/NumberTheory/Padics/PadicVal/Defs.lean Modified Mathlib/NumberTheory/Padics/ProperSpace.lean Modified Mathlib/NumberTheory/Padics/RingHoms.lean Modified Mathlib/NumberTheory/Padics/ValuativeRel.lean Modified Mathlib/NumberTheory/Padics/WithVal.lean Modified Mathlib/NumberTheory/Pell.lean Modified Mathlib/NumberTheory/PellMatiyasevic.lean Modified Mathlib/NumberTheory/Primorial.lean Modified Mathlib/NumberTheory/PythagoreanTriples.lean Modified Mathlib/NumberTheory/RamificationInertia/Basic.lean Modified Mathlib/NumberTheory/RamificationInertia/Galois.lean Modified Mathlib/NumberTheory/Rayleigh.lean Modified Mathlib/NumberTheory/Real/GoldenRatio.lean Modified Mathlib/NumberTheory/Real/Irrational.lean Modified Mathlib/NumberTheory/SiegelsLemma.lean Modified Mathlib/NumberTheory/SmoothNumbers.lean Modified Mathlib/NumberTheory/SumFourSquares.lean Modified Mathlib/NumberTheory/SumPrimeReciprocals.lean Modified Mathlib/NumberTheory/SumTwoSquares.lean Modified Mathlib/NumberTheory/Transcendental/Lindemann/AnalyticalPart.lean Modified Mathlib/NumberTheory/Transcendental/Liouville/LiouvilleWith.lean Modified Mathlib/NumberTheory/Transcendental/Liouville/Measure.lean Modified Mathlib/NumberTheory/TsumDivisorsAntidiagonal.lean Modified Mathlib/NumberTheory/WellApproximable.lean Modified Mathlib/NumberTheory/ZetaValues.lean Modified Mathlib/NumberTheory/Zsqrtd/GaussianInt.lean Modified Mathlib/Order/Antisymmetrization.lean Modified Mathlib/Order/Atoms.lean Modified Mathlib/Order/Birkhoff.lean Modified Mathlib/Order/BooleanAlgebra/Set.lean Modified Mathlib/Order/BooleanGenerators.lean Modified Mathlib/Order/BooleanSubalgebra.lean Modified Mathlib/Order/Bounds/OrderIso.lean Modified Mathlib/Order/Category/BddDistLat.lean Modified Mathlib/Order/Category/BddLat.lean Modified Mathlib/Order/Category/BddOrd.lean Modified Mathlib/Order/Category/BoolAlg.lean Modified Mathlib/Order/Category/CompleteLat.lean Modified Mathlib/Order/Category/DistLat.lean Modified Mathlib/Order/Category/FinBddDistLat.lean Modified Mathlib/Order/Category/FinBoolAlg.lean Modified Mathlib/Order/Category/Frm.lean Modified Mathlib/Order/Category/HeytAlg.lean Modified Mathlib/Order/Category/Lat.lean Modified Mathlib/Order/Category/NonemptyFinLinOrd.lean Modified Mathlib/Order/Category/PartOrdEmb.lean Modified Mathlib/Order/Category/Semilat.lean Modified Mathlib/Order/CompactlyGenerated/Basic.lean Modified Mathlib/Order/CompleteLattice/Finset.lean Modified Mathlib/Order/CompleteLattice/PiLex.lean Modified Mathlib/Order/CompleteLattice/SetLike.lean Modified Mathlib/Order/CompleteLatticeIntervals.lean Modified Mathlib/Order/CompleteSublattice.lean Modified Mathlib/Order/Concept.lean Modified Mathlib/Order/ConditionallyCompleteLattice/Basic.lean Modified Mathlib/Order/ConditionallyCompleteLattice/Finset.lean Modified Mathlib/Order/ConditionallyCompleteLattice/Indexed.lean Modified Mathlib/Order/Copy.lean Modified Mathlib/Order/CountableDenseLinearOrder.lean Modified Mathlib/Order/Cover.lean Modified Mathlib/Order/Defs/LinearOrder.lean Modified Mathlib/Order/Defs/PartialOrder.lean +/- theorem le_refl Modified Mathlib/Order/Filter/AtTopBot/Finset.lean Modified Mathlib/Order/Filter/AtTopBot/Group.lean Modified Mathlib/Order/Filter/AtTopBot/Interval.lean Modified Mathlib/Order/Filter/AtTopBot/Tendsto.lean Modified Mathlib/Order/Filter/Bases/Basic.lean Modified Mathlib/Order/Filter/Basic.lean Modified Mathlib/Order/Filter/ENNReal.lean Modified Mathlib/Order/Filter/IsBounded.lean Modified Mathlib/Order/Filter/Map.lean Modified Mathlib/Order/Filter/Pointwise.lean Modified Mathlib/Order/Fin/Finset.lean Modified Mathlib/Order/Fin/SuccAboveOrderIso.lean Modified Mathlib/Order/Fin/Tuple.lean Modified Mathlib/Order/Height.lean Modified Mathlib/Order/Heyting/Regular.lean Modified Mathlib/Order/Hom/Basic.lean Modified Mathlib/Order/Hom/CompleteLattice.lean Modified Mathlib/Order/Hom/Lex.lean Modified Mathlib/Order/Hom/Set.lean Modified Mathlib/Order/Hom/WithTopBot.lean Modified Mathlib/Order/Interval/Basic.lean Modified Mathlib/Order/Interval/Finset/Basic.lean Modified Mathlib/Order/Interval/Finset/Defs.lean Modified Mathlib/Order/Interval/Finset/DenselyOrdered.lean Modified Mathlib/Order/Interval/Finset/Gaps.lean Modified Mathlib/Order/Interval/Set/Disjoint.lean Modified Mathlib/Order/Interval/Set/OrdConnected.lean Modified Mathlib/Order/Interval/Set/OrdConnectedComponent.lean Modified Mathlib/Order/Interval/Set/Pi.lean Modified Mathlib/Order/Interval/Set/WithBotTop.lean Modified Mathlib/Order/JordanHolder.lean Modified Mathlib/Order/KrullDimension.lean Modified Mathlib/Order/Lattice/Congruence.lean Modified Mathlib/Order/LiminfLimsup.lean Modified Mathlib/Order/Minimal.lean Modified Mathlib/Order/Monotone/Extension.lean Modified Mathlib/Order/Monotone/Odd.lean Modified Mathlib/Order/OmegaCompletePartialOrder.lean Modified Mathlib/Order/Partition/Equipartition.lean Modified Mathlib/Order/Partition/Finpartition.lean Modified Mathlib/Order/PiLex.lean Modified Mathlib/Order/Preorder/Finsupp.lean Modified Mathlib/Order/PrimeSeparator.lean Modified Mathlib/Order/RelClasses.lean + theorem Std.ge_refl Modified Mathlib/Order/RelSeries.lean Modified Mathlib/Order/Shrink.lean Modified Mathlib/Order/Sublattice.lean Modified Mathlib/Order/Sublocale.lean Modified Mathlib/Order/SuccPred/Archimedean.lean Modified Mathlib/Order/SuccPred/Basic.lean Modified Mathlib/Order/SuccPred/LinearLocallyFinite.lean Modified Mathlib/Order/SuccPred/Tree.lean Modified Mathlib/Order/SuccPred/WithBot.lean Modified Mathlib/Order/SupIndep.lean Modified Mathlib/Order/UpperLower/Closure.lean Modified Mathlib/Order/UpperLower/CompleteLattice.lean Modified Mathlib/Order/UpperLower/Relative.lean Modified Mathlib/Order/WellFounded.lean Modified Mathlib/Order/WellFoundedSet.lean Modified Mathlib/Order/WithBot.lean Modified Mathlib/Order/WithBotTop.lean Modified Mathlib/Probability/BorelCantelli.lean Modified Mathlib/Probability/ConditionalProbability.lean Modified Mathlib/Probability/Distributions/Beta.lean Modified Mathlib/Probability/Distributions/Cauchy.lean Modified Mathlib/Probability/Distributions/Exponential.lean Modified Mathlib/Probability/Distributions/Fernique.lean Modified Mathlib/Probability/Distributions/Gamma.lean Modified Mathlib/Probability/Distributions/Gaussian/Basic.lean Modified Mathlib/Probability/Distributions/Gaussian/CharFun.lean Modified Mathlib/Probability/Distributions/Gaussian/Fernique.lean Modified Mathlib/Probability/Distributions/Gaussian/HasGaussianLaw/Basic.lean Modified Mathlib/Probability/Distributions/Gaussian/HasGaussianLaw/Independence.lean Modified Mathlib/Probability/Distributions/Gaussian/IsGaussianProcess/Basic.lean Modified Mathlib/Probability/Distributions/Gaussian/Real.lean Modified Mathlib/Probability/Distributions/Pareto.lean Modified Mathlib/Probability/Distributions/SetBernoulli.lean Modified Mathlib/Probability/Distributions/Uniform.lean Modified Mathlib/Probability/IdentDistrib.lean Modified Mathlib/Probability/Independence/Basic.lean Modified Mathlib/Probability/Independence/BoundedContinuousFunction.lean Modified Mathlib/Probability/Independence/Kernel/IndepFun.lean Modified Mathlib/Probability/Independence/Process.lean Modified Mathlib/Probability/Kernel/Disintegration/CDFToKernel.lean Modified Mathlib/Probability/Kernel/Disintegration/Density.lean Modified Mathlib/Probability/Kernel/Disintegration/StandardBorel.lean Modified Mathlib/Probability/Kernel/IonescuTulcea/Maps.lean Modified Mathlib/Probability/Kernel/IonescuTulcea/Traj.lean Modified Mathlib/Probability/Kernel/Irreducible.lean Modified Mathlib/Probability/Kernel/Proper.lean Modified Mathlib/Probability/Kernel/RadonNikodym.lean Modified Mathlib/Probability/Kernel/WithDensity.lean Modified Mathlib/Probability/Martingale/Basic.lean Modified Mathlib/Probability/Martingale/BorelCantelli.lean Modified Mathlib/Probability/Martingale/OptionalSampling.lean Modified Mathlib/Probability/Martingale/OptionalStopping.lean Modified Mathlib/Probability/Martingale/Upcrossing.lean Modified Mathlib/Probability/Moments/Basic.lean Modified Mathlib/Probability/Moments/ComplexMGF.lean Modified Mathlib/Probability/Moments/CovarianceBilin.lean Modified Mathlib/Probability/Moments/CovarianceBilinDual.lean Modified Mathlib/Probability/Moments/IntegrableExpMul.lean Modified Mathlib/Probability/Moments/MGFAnalytic.lean Modified Mathlib/Probability/Moments/SubGaussian.lean Modified Mathlib/Probability/Moments/Variance.lean Modified Mathlib/Probability/ProbabilityMassFunction/Constructions.lean Modified Mathlib/Probability/Process/Filtration.lean Modified Mathlib/Probability/Process/HittingTime.lean Modified Mathlib/Probability/Process/Predictable.lean Modified Mathlib/Probability/Process/Stopping.lean Modified Mathlib/Probability/ProductMeasure.lean Modified Mathlib/Probability/StrongLaw.lean Modified Mathlib/RepresentationTheory/Basic.lean Modified Mathlib/RepresentationTheory/Character.lean Modified Mathlib/RepresentationTheory/Coinduced.lean Modified Mathlib/RepresentationTheory/Coinvariants.lean Modified Mathlib/RepresentationTheory/FDRep.lean Modified Mathlib/RepresentationTheory/FinGroupCharZero.lean Modified Mathlib/RepresentationTheory/FiniteIndex.lean Modified Mathlib/RepresentationTheory/Homological/FiniteCyclic.lean Modified Mathlib/RepresentationTheory/Homological/GroupCohomology/Basic.lean Modified Mathlib/RepresentationTheory/Homological/GroupCohomology/FiniteCyclic.lean Modified Mathlib/RepresentationTheory/Homological/GroupCohomology/Functoriality.lean Modified Mathlib/RepresentationTheory/Homological/GroupCohomology/Hilbert90.lean Modified Mathlib/RepresentationTheory/Homological/GroupCohomology/LongExactSequence.lean Modified Mathlib/RepresentationTheory/Homological/GroupCohomology/LowDegree.lean Modified Mathlib/RepresentationTheory/Homological/GroupCohomology/Shapiro.lean Modified Mathlib/RepresentationTheory/Homological/GroupHomology/Basic.lean Modified Mathlib/RepresentationTheory/Homological/GroupHomology/FiniteCyclic.lean Modified Mathlib/RepresentationTheory/Homological/GroupHomology/Functoriality.lean Modified Mathlib/RepresentationTheory/Homological/GroupHomology/LongExactSequence.lean Modified Mathlib/RepresentationTheory/Homological/GroupHomology/LowDegree.lean Modified Mathlib/RepresentationTheory/Homological/GroupHomology/Shapiro.lean Modified Mathlib/RepresentationTheory/Homological/Resolution.lean Modified Mathlib/RepresentationTheory/Induced.lean Modified Mathlib/RepresentationTheory/Intertwining.lean - def Representation.IntertwiningMap.equivAlgEnd Modified Mathlib/RepresentationTheory/Invariants.lean Modified Mathlib/RepresentationTheory/Irreducible.lean Modified Mathlib/RepresentationTheory/Maschke.lean Modified Mathlib/RepresentationTheory/Rep.lean Modified Mathlib/RepresentationTheory/Semisimple.lean Modified Mathlib/RepresentationTheory/Subrepresentation.lean Modified Mathlib/RepresentationTheory/Tannaka.lean Modified Mathlib/RingTheory/AdicCompletion/Algebra.lean Modified Mathlib/RingTheory/AdicCompletion/AsTensorProduct.lean Modified Mathlib/RingTheory/AdicCompletion/Basic.lean Modified Mathlib/RingTheory/AdicCompletion/Exactness.lean Modified Mathlib/RingTheory/AdicCompletion/Functoriality.lean Modified Mathlib/RingTheory/AdicCompletion/LocalRing.lean Modified Mathlib/RingTheory/AdicCompletion/RingHom.lean Modified Mathlib/RingTheory/AdicCompletion/Topology.lean Modified Mathlib/RingTheory/Adjoin/Dimension.lean Modified Mathlib/RingTheory/Adjoin/Field.lean Modified Mathlib/RingTheory/Adjoin/PowerBasis.lean Modified Mathlib/RingTheory/Adjoin/Tower.lean Modified Mathlib/RingTheory/AdjoinRoot.lean Modified Mathlib/RingTheory/Algebraic/Basic.lean Modified Mathlib/RingTheory/Algebraic/Defs.lean Modified Mathlib/RingTheory/Algebraic/Integral.lean Modified Mathlib/RingTheory/Algebraic/MvPolynomial.lean Modified Mathlib/RingTheory/Algebraic/Pi.lean Modified Mathlib/RingTheory/Algebraic/StronglyTranscendental.lean Modified Mathlib/RingTheory/AlgebraicIndependent/Adjoin.lean Modified Mathlib/RingTheory/AlgebraicIndependent/AlgebraicClosure.lean Modified Mathlib/RingTheory/AlgebraicIndependent/Basic.lean Modified Mathlib/RingTheory/AlgebraicIndependent/RankAndCardinality.lean Modified Mathlib/RingTheory/AlgebraicIndependent/TranscendenceBasis.lean Modified Mathlib/RingTheory/AlgebraicIndependent/Transcendental.lean Modified Mathlib/RingTheory/Artinian/Algebra.lean Modified Mathlib/RingTheory/Artinian/Module.lean Modified Mathlib/RingTheory/Bialgebra/MonoidAlgebra.lean Modified Mathlib/RingTheory/Bialgebra/TensorProduct.lean Modified Mathlib/RingTheory/Binomial.lean Modified Mathlib/RingTheory/ChainOfDivisors.lean Modified Mathlib/RingTheory/ClassGroup.lean Modified Mathlib/RingTheory/Coalgebra/Basic.lean Modified Mathlib/RingTheory/Coalgebra/Convolution.lean Modified Mathlib/RingTheory/Coalgebra/TensorProduct.lean Modified Mathlib/RingTheory/Complex.lean Modified Mathlib/RingTheory/Conductor.lean Modified Mathlib/RingTheory/Congruence/Hom.lean Modified Mathlib/RingTheory/Coprime/Lemmas.lean Modified Mathlib/RingTheory/DedekindDomain/AdicValuation.lean Modified Mathlib/RingTheory/DedekindDomain/Basic.lean Modified Mathlib/RingTheory/DedekindDomain/Different.lean Modified Mathlib/RingTheory/DedekindDomain/Dvr.lean Modified Mathlib/RingTheory/DedekindDomain/Factorization.lean Modified Mathlib/RingTheory/DedekindDomain/GaussLemma.lean Modified Mathlib/RingTheory/DedekindDomain/Ideal/Basic.lean Modified Mathlib/RingTheory/DedekindDomain/Ideal/Lemmas.lean Modified Mathlib/RingTheory/DedekindDomain/Instances.lean Modified Mathlib/RingTheory/DedekindDomain/IntegralClosure.lean Modified Mathlib/RingTheory/DedekindDomain/LinearDisjoint.lean Modified Mathlib/RingTheory/Derivation/Basic.lean Modified Mathlib/RingTheory/Derivation/Lie.lean Modified Mathlib/RingTheory/Derivation/MapCoeffs.lean Modified Mathlib/RingTheory/Derivation/ToSquareZero.lean Modified Mathlib/RingTheory/DiscreteValuationRing/Basic.lean Modified Mathlib/RingTheory/DiscreteValuationRing/TFAE.lean Modified Mathlib/RingTheory/Discriminant.lean Modified Mathlib/RingTheory/DividedPowers/RatAlgebra.lean Modified Mathlib/RingTheory/DividedPowers/SubDPIdeal.lean Modified Mathlib/RingTheory/EssentialFiniteness.lean Modified Mathlib/RingTheory/Etale/Field.lean Modified Mathlib/RingTheory/Etale/Kaehler.lean Modified Mathlib/RingTheory/Etale/QuasiFinite.lean Modified Mathlib/RingTheory/Etale/StandardEtale.lean Modified Mathlib/RingTheory/Extension/Basic.lean Modified Mathlib/RingTheory/Extension/Cotangent/Basic.lean Modified Mathlib/RingTheory/Extension/Cotangent/Basis.lean Modified Mathlib/RingTheory/Extension/Cotangent/Free.lean Modified Mathlib/RingTheory/Extension/Cotangent/LocalizationAway.lean Modified Mathlib/RingTheory/Extension/Generators.lean Modified Mathlib/RingTheory/Extension/Presentation/Basic.lean Modified Mathlib/RingTheory/Extension/Presentation/Core.lean Modified Mathlib/RingTheory/Extension/Presentation/Submersive.lean Modified Mathlib/RingTheory/Filtration.lean Modified Mathlib/RingTheory/FiniteLength.lean Modified Mathlib/RingTheory/FinitePresentation.lean Modified Mathlib/RingTheory/FiniteStability.lean Modified Mathlib/RingTheory/FiniteType.lean Modified Mathlib/RingTheory/Finiteness/Basic.lean Modified Mathlib/RingTheory/Finiteness/Descent.lean Modified Mathlib/RingTheory/Finiteness/Finsupp.lean Modified Mathlib/RingTheory/Finiteness/NilpotentKer.lean Modified Mathlib/RingTheory/Fintype.lean Modified Mathlib/RingTheory/Flat/Basic.lean Modified Mathlib/RingTheory/Flat/Equalizer.lean Modified Mathlib/RingTheory/Flat/EquationalCriterion.lean Modified Mathlib/RingTheory/Flat/FaithfullyFlat/Algebra.lean Modified Mathlib/RingTheory/Flat/FaithfullyFlat/Basic.lean Modified Mathlib/RingTheory/Flat/Tensor.lean Modified Mathlib/RingTheory/FractionalIdeal/Basic.lean Modified Mathlib/RingTheory/FractionalIdeal/Norm.lean Modified Mathlib/RingTheory/FractionalIdeal/Operations.lean Modified Mathlib/RingTheory/FreeCommRing.lean Modified Mathlib/RingTheory/Frobenius.lean Modified Mathlib/RingTheory/GradedAlgebra/Homogeneous/Ideal.lean Modified Mathlib/RingTheory/GradedAlgebra/Homogeneous/Subsemiring.lean Modified Mathlib/RingTheory/GradedAlgebra/HomogeneousLocalization.lean Modified Mathlib/RingTheory/HahnSeries/Addition.lean Modified Mathlib/RingTheory/HahnSeries/Basic.lean Modified Mathlib/RingTheory/HahnSeries/Binomial.lean Modified Mathlib/RingTheory/HahnSeries/HEval.lean Modified Mathlib/RingTheory/HahnSeries/HahnEmbedding.lean Modified Mathlib/RingTheory/HahnSeries/Lex.lean Modified Mathlib/RingTheory/HahnSeries/Multiplication.lean Modified Mathlib/RingTheory/HahnSeries/PowerSeries.lean Modified Mathlib/RingTheory/HahnSeries/Summable.lean Modified Mathlib/RingTheory/HopfAlgebra/Basic.lean Modified Mathlib/RingTheory/HopfAlgebra/MonoidAlgebra.lean Modified Mathlib/RingTheory/HopfAlgebra/TensorProduct.lean Modified Mathlib/RingTheory/HopkinsLevitzki.lean Modified Mathlib/RingTheory/Ideal/AssociatedPrime/Basic.lean Modified Mathlib/RingTheory/Ideal/AssociatedPrime/Finiteness.lean Modified Mathlib/RingTheory/Ideal/Cotangent.lean Modified Mathlib/RingTheory/Ideal/GoingUp.lean Modified Mathlib/RingTheory/Ideal/Height.lean Modified Mathlib/RingTheory/Ideal/Int.lean Modified Mathlib/RingTheory/Ideal/IsPrincipal.lean Modified Mathlib/RingTheory/Ideal/IsPrincipalPowQuotient.lean Modified Mathlib/RingTheory/Ideal/Maximal.lean Modified Mathlib/RingTheory/Ideal/MinimalPrime/Localization.lean Modified Mathlib/RingTheory/Ideal/Norm/AbsNorm.lean Modified Mathlib/RingTheory/Ideal/Over.lean Modified Mathlib/RingTheory/Ideal/Pointwise.lean Modified Mathlib/RingTheory/Ideal/Prod.lean Modified Mathlib/RingTheory/Ideal/Quotient/Basic.lean Modified Mathlib/RingTheory/Ideal/Quotient/ChineseRemainder.lean Modified Mathlib/RingTheory/Ideal/Quotient/Defs.lean Modified Mathlib/RingTheory/Ideal/Quotient/Index.lean Modified Mathlib/RingTheory/Ideal/Quotient/Nilpotent.lean Modified Mathlib/RingTheory/Ideal/Quotient/Operations.lean Modified Mathlib/RingTheory/Ideal/Quotient/PowTransition.lean Modified Mathlib/RingTheory/Idempotents.lean Modified Mathlib/RingTheory/IntegralClosure/Algebra/Basic.lean Modified Mathlib/RingTheory/IntegralClosure/Algebra/Ideal.lean Modified Mathlib/RingTheory/IntegralClosure/GoingDown.lean Modified Mathlib/RingTheory/IntegralClosure/IntegralRestrict.lean Modified Mathlib/RingTheory/IntegralClosure/IntegrallyClosed.lean Modified Mathlib/RingTheory/IntegralClosure/IsIntegral/AlmostIntegral.lean Modified Mathlib/RingTheory/IntegralClosure/IsIntegral/Basic.lean Modified Mathlib/RingTheory/IntegralClosure/IsIntegralClosure/Basic.lean Modified Mathlib/RingTheory/IntegralDomain.lean Modified Mathlib/RingTheory/Invariant/Basic.lean Modified Mathlib/RingTheory/Invariant/Profinite.lean Modified Mathlib/RingTheory/IsAdjoinRoot.lean Modified Mathlib/RingTheory/IsPrimary.lean Modified Mathlib/RingTheory/IsTensorProduct.lean Modified Mathlib/RingTheory/Jacobson/Radical.lean Modified Mathlib/RingTheory/Jacobson/Ring.lean Modified Mathlib/RingTheory/Jacobson/Semiprimary.lean Modified Mathlib/RingTheory/Kaehler/Basic.lean Modified Mathlib/RingTheory/Kaehler/JacobiZariski.lean Modified Mathlib/RingTheory/Kaehler/Polynomial.lean Modified Mathlib/RingTheory/KrullDimension/NonZeroDivisors.lean Modified Mathlib/RingTheory/KrullDimension/Polynomial.lean Modified Mathlib/RingTheory/KrullDimension/Zero.lean Modified Mathlib/RingTheory/LaurentSeries.lean Modified Mathlib/RingTheory/Length.lean Modified Mathlib/RingTheory/LinearDisjoint.lean Modified Mathlib/RingTheory/LittleWedderburn.lean Modified Mathlib/RingTheory/LocalProperties/Basic.lean Modified Mathlib/RingTheory/LocalProperties/Exactness.lean Modified Mathlib/RingTheory/LocalProperties/IntegrallyClosed.lean Modified Mathlib/RingTheory/LocalProperties/Projective.lean Modified Mathlib/RingTheory/LocalRing/Module.lean Modified Mathlib/RingTheory/LocalRing/Quotient.lean Modified Mathlib/RingTheory/LocalRing/ResidueField/Basic.lean Modified Mathlib/RingTheory/LocalRing/ResidueField/Fiber.lean Modified Mathlib/RingTheory/LocalRing/ResidueField/Ideal.lean Modified Mathlib/RingTheory/LocalRing/ResidueField/Polynomial.lean Modified Mathlib/RingTheory/Localization/AsSubring.lean Modified Mathlib/RingTheory/Localization/AtPrime/Basic.lean Modified Mathlib/RingTheory/Localization/AtPrime/Extension.lean Modified Mathlib/RingTheory/Localization/BaseChange.lean Modified Mathlib/RingTheory/Localization/Basic.lean Modified Mathlib/RingTheory/Localization/Defs.lean Modified Mathlib/RingTheory/Localization/FractionRing.lean Modified Mathlib/RingTheory/Localization/Ideal.lean Modified Mathlib/RingTheory/Localization/Integral.lean Modified Mathlib/RingTheory/Localization/Submodule.lean Modified Mathlib/RingTheory/MatrixAlgebra.lean Modified Mathlib/RingTheory/MatrixPolynomialAlgebra.lean Modified Mathlib/RingTheory/Morita/Matrix.lean Modified Mathlib/RingTheory/Multiplicity.lean Modified Mathlib/RingTheory/MvPolynomial.lean Modified Mathlib/RingTheory/MvPolynomial/Basic.lean Modified Mathlib/RingTheory/MvPolynomial/EulerIdentity.lean Modified Mathlib/RingTheory/MvPolynomial/FreeCommRing.lean Modified Mathlib/RingTheory/MvPolynomial/Homogeneous.lean Modified Mathlib/RingTheory/MvPolynomial/Ideal.lean Modified Mathlib/RingTheory/MvPolynomial/IrreducibleQuadratic.lean Modified Mathlib/RingTheory/MvPolynomial/Localization.lean Modified Mathlib/RingTheory/MvPolynomial/MonomialOrder.lean Modified Mathlib/RingTheory/MvPolynomial/Symmetric/Defs.lean Modified Mathlib/RingTheory/MvPolynomial/Symmetric/FundamentalTheorem.lean Modified Mathlib/RingTheory/MvPolynomial/Symmetric/NewtonIdentities.lean Modified Mathlib/RingTheory/MvPolynomial/WeightedHomogeneous.lean Modified Mathlib/RingTheory/MvPowerSeries/Basic.lean Modified Mathlib/RingTheory/MvPowerSeries/LexOrder.lean Modified Mathlib/RingTheory/MvPowerSeries/LinearTopology.lean Modified Mathlib/RingTheory/MvPowerSeries/PiTopology.lean Modified Mathlib/RingTheory/MvPowerSeries/Substitution.lean Modified Mathlib/RingTheory/Nakayama.lean Modified Mathlib/RingTheory/Nilpotent/GeometricallyReduced.lean Modified Mathlib/RingTheory/NoetherNormalization.lean Modified Mathlib/RingTheory/Noetherian/Basic.lean Modified Mathlib/RingTheory/Noetherian/Orzech.lean Modified Mathlib/RingTheory/NonUnitalSubring/Basic.lean Modified Mathlib/RingTheory/NonUnitalSubsemiring/Basic.lean Modified Mathlib/RingTheory/Norm/Basic.lean Modified Mathlib/RingTheory/Norm/Transitivity.lean Modified Mathlib/RingTheory/NormalClosure.lean Modified Mathlib/RingTheory/Nullstellensatz.lean Modified Mathlib/RingTheory/OrderOfVanishing.lean Modified Mathlib/RingTheory/Perfection.lean Modified Mathlib/RingTheory/Perfectoid/FontaineTheta.lean Modified Mathlib/RingTheory/Perfectoid/Untilt.lean Modified Mathlib/RingTheory/PicardGroup.lean Modified Mathlib/RingTheory/Polynomial/Basic.lean Modified Mathlib/RingTheory/Polynomial/Bernstein.lean Modified Mathlib/RingTheory/Polynomial/Chebyshev.lean Modified Mathlib/RingTheory/Polynomial/ContentIdeal.lean Modified Mathlib/RingTheory/Polynomial/Cyclotomic/Basic.lean Modified Mathlib/RingTheory/Polynomial/Cyclotomic/Eval.lean Modified Mathlib/RingTheory/Polynomial/Cyclotomic/Expand.lean Modified Mathlib/RingTheory/Polynomial/Cyclotomic/Roots.lean Modified Mathlib/RingTheory/Polynomial/DegreeLT.lean Modified Mathlib/RingTheory/Polynomial/Dickson.lean Modified Mathlib/RingTheory/Polynomial/Eisenstein/Criterion.lean Modified Mathlib/RingTheory/Polynomial/Eisenstein/Distinguished.lean Modified Mathlib/RingTheory/Polynomial/GaussLemma.lean Modified Mathlib/RingTheory/Polynomial/GaussNorm.lean Modified Mathlib/RingTheory/Polynomial/HilbertPoly.lean Modified Mathlib/RingTheory/Polynomial/IsIntegral.lean Modified Mathlib/RingTheory/Polynomial/Morse.lean Modified Mathlib/RingTheory/Polynomial/Nilpotent.lean Modified Mathlib/RingTheory/Polynomial/Opposites.lean Modified Mathlib/RingTheory/Polynomial/Pochhammer.lean Modified Mathlib/RingTheory/Polynomial/Quotient.lean Modified Mathlib/RingTheory/Polynomial/RationalRoot.lean Modified Mathlib/RingTheory/Polynomial/Resultant/Basic.lean Modified Mathlib/RingTheory/Polynomial/ScaleRoots.lean Modified Mathlib/RingTheory/Polynomial/SeparableDegree.lean Modified Mathlib/RingTheory/Polynomial/ShiftedLegendre.lean Modified Mathlib/RingTheory/Polynomial/Tower.lean Modified Mathlib/RingTheory/Polynomial/UniqueFactorization.lean Modified Mathlib/RingTheory/Polynomial/UniversalFactorizationRing.lean Modified Mathlib/RingTheory/PolynomialLaw/Basic.lean Modified Mathlib/RingTheory/PowerBasis.lean Modified Mathlib/RingTheory/PowerSeries/Basic.lean Modified Mathlib/RingTheory/PowerSeries/Binomial.lean Modified Mathlib/RingTheory/PowerSeries/Catalan.lean Modified Mathlib/RingTheory/PowerSeries/Derivative.lean Modified Mathlib/RingTheory/PowerSeries/Exp.lean Modified Mathlib/RingTheory/PowerSeries/Expand.lean Modified Mathlib/RingTheory/PowerSeries/Ideal.lean Modified Mathlib/RingTheory/PowerSeries/Inverse.lean Modified Mathlib/RingTheory/PowerSeries/NoZeroDivisors.lean Modified Mathlib/RingTheory/PowerSeries/Order.lean Modified Mathlib/RingTheory/PowerSeries/PiTopology.lean Modified Mathlib/RingTheory/PowerSeries/Restricted.lean Modified Mathlib/RingTheory/PowerSeries/Schroder.lean Modified Mathlib/RingTheory/PowerSeries/Substitution.lean Modified Mathlib/RingTheory/PowerSeries/Trunc.lean Modified Mathlib/RingTheory/PowerSeries/WeierstrassPreparation.lean Modified Mathlib/RingTheory/PowerSeries/WellKnown.lean Modified Mathlib/RingTheory/QuasiFinite/Basic.lean Modified Mathlib/RingTheory/QuasiFinite/Polynomial.lean Modified Mathlib/RingTheory/QuasiFinite/Weakly.lean Modified Mathlib/RingTheory/ReesAlgebra.lean Modified Mathlib/RingTheory/Regular/Category.lean Modified Mathlib/RingTheory/Regular/IsSMulRegular.lean Modified Mathlib/RingTheory/Regular/RegularSequence.lean Modified Mathlib/RingTheory/RingHom/FinitePresentation.lean Modified Mathlib/RingTheory/RingHom/Flat.lean Modified Mathlib/RingTheory/RingHom/Locally.lean Modified Mathlib/RingTheory/RingHom/QuasiFinite.lean Modified Mathlib/RingTheory/RingHom/StandardSmooth.lean Modified Mathlib/RingTheory/RingHom/Unramified.lean Modified Mathlib/RingTheory/RingHomProperties.lean Modified Mathlib/RingTheory/RootsOfUnity/AlgebraicallyClosed.lean Modified Mathlib/RingTheory/RootsOfUnity/Basic.lean Modified Mathlib/RingTheory/RootsOfUnity/Complex.lean Modified Mathlib/RingTheory/RootsOfUnity/PrimitiveRoots.lean Modified Mathlib/RingTheory/SimpleModule/Basic.lean Modified Mathlib/RingTheory/SimpleModule/Isotypic.lean Modified Mathlib/RingTheory/SimpleModule/WedderburnArtin.lean Modified Mathlib/RingTheory/SimpleRing/Field.lean Modified Mathlib/RingTheory/Smooth/Basic.lean Modified Mathlib/RingTheory/Smooth/Fiber.lean Modified Mathlib/RingTheory/Smooth/Field.lean Modified Mathlib/RingTheory/Smooth/Flat.lean Modified Mathlib/RingTheory/Smooth/IntegralClosure.lean Modified Mathlib/RingTheory/Smooth/Kaehler.lean Modified Mathlib/RingTheory/Smooth/Local.lean Modified Mathlib/RingTheory/Smooth/NoetherianDescent.lean Modified Mathlib/RingTheory/Smooth/Pi.lean Modified Mathlib/RingTheory/Smooth/StandardSmoothCotangent.lean Modified Mathlib/RingTheory/Smooth/StandardSmoothOfFree.lean Modified Mathlib/RingTheory/Spectrum/Prime/Chevalley.lean Modified Mathlib/RingTheory/Spectrum/Prime/ChevalleyComplexity.lean Modified Mathlib/RingTheory/Spectrum/Prime/ConstructibleSet.lean Modified Mathlib/RingTheory/Spectrum/Prime/FreeLocus.lean Modified Mathlib/RingTheory/Spectrum/Prime/Jacobson.lean Modified Mathlib/RingTheory/Spectrum/Prime/LTSeries.lean Modified Mathlib/RingTheory/Spectrum/Prime/Polynomial.lean Modified Mathlib/RingTheory/Spectrum/Prime/RingHom.lean Modified Mathlib/RingTheory/Spectrum/Prime/Topology.lean Modified Mathlib/RingTheory/Support.lean Modified Mathlib/RingTheory/TensorProduct/Basic.lean Modified Mathlib/RingTheory/TensorProduct/DirectLimitFG.lean Modified Mathlib/RingTheory/TensorProduct/Finite.lean Modified Mathlib/RingTheory/TensorProduct/Free.lean Modified Mathlib/RingTheory/TensorProduct/Maps.lean Modified Mathlib/RingTheory/TensorProduct/MonoidAlgebra.lean Modified Mathlib/RingTheory/TensorProduct/MvPolynomial.lean Modified Mathlib/RingTheory/TensorProduct/Quotient.lean Modified Mathlib/RingTheory/Trace/Basic.lean Modified Mathlib/RingTheory/Trace/Defs.lean Modified Mathlib/RingTheory/Trace/Quotient.lean Modified Mathlib/RingTheory/TwoSidedIdeal/Lattice.lean Modified Mathlib/RingTheory/UniqueFactorizationDomain/Basic.lean Modified Mathlib/RingTheory/UniqueFactorizationDomain/FactorSet.lean Modified Mathlib/RingTheory/UniqueFactorizationDomain/GCDMonoid.lean Modified Mathlib/RingTheory/Unramified/Basic.lean Modified Mathlib/RingTheory/Unramified/Field.lean Modified Mathlib/RingTheory/Unramified/LocalRing.lean Modified Mathlib/RingTheory/Unramified/LocalStructure.lean Modified Mathlib/RingTheory/Unramified/Locus.lean Modified Mathlib/RingTheory/Unramified/Pi.lean Modified Mathlib/RingTheory/Valuation/AlgebraInstances.lean Modified Mathlib/RingTheory/Valuation/Archimedean.lean Modified Mathlib/RingTheory/Valuation/Basic.lean Modified Mathlib/RingTheory/Valuation/Discrete/Basic.lean Modified Mathlib/RingTheory/Valuation/LocalSubring.lean Modified Mathlib/RingTheory/Valuation/RankOne.lean Modified Mathlib/RingTheory/Valuation/ValuationSubring.lean Modified Mathlib/RingTheory/WittVector/Basic.lean Modified Mathlib/RingTheory/WittVector/Defs.lean Modified Mathlib/RingTheory/WittVector/Frobenius.lean Modified Mathlib/RingTheory/WittVector/IsPoly.lean Modified Mathlib/RingTheory/WittVector/Isocrystal.lean Modified Mathlib/RingTheory/WittVector/StructurePolynomial.lean Modified Mathlib/RingTheory/WittVector/Teichmuller.lean Modified Mathlib/RingTheory/WittVector/WittPolynomial.lean Modified Mathlib/RingTheory/ZariskisMainTheorem.lean Modified Mathlib/SetTheory/Cardinal/Basic.lean Modified Mathlib/SetTheory/Cardinal/Embedding.lean Modified Mathlib/SetTheory/Cardinal/Finite.lean Modified Mathlib/SetTheory/Cardinal/Ordinal.lean Modified Mathlib/SetTheory/Cardinal/Subfield.lean Modified Mathlib/SetTheory/Game/Birthday.lean Modified Mathlib/SetTheory/Game/Nim.lean Modified Mathlib/SetTheory/Game/Ordinal.lean Modified Mathlib/SetTheory/Game/Short.lean + def SetTheory.PGame.shortAdd Modified Mathlib/SetTheory/Lists.lean + def Lists.Equiv.decidable + def Lists.Subset.decidable + def Lists.mem.decidable Modified Mathlib/SetTheory/Nimber/Basic.lean Modified Mathlib/SetTheory/Nimber/Field.lean Modified Mathlib/SetTheory/Ordinal/Notation.lean Modified Mathlib/SetTheory/ZFC/Basic.lean Modified Mathlib/SetTheory/ZFC/Cardinal.lean Modified Mathlib/SetTheory/ZFC/Class.lean Modified Mathlib/SetTheory/ZFC/Ordinal.lean Modified Mathlib/Tactic/ComputeAsymptotics/Multiseries/Corecursion.lean Modified Mathlib/Tactic/ComputeAsymptotics/Multiseries/Majorized.lean Modified Mathlib/Tactic/DeriveTraversable.lean Modified Mathlib/Tactic/FieldSimp/Lemmas.lean Modified Mathlib/Tactic/Linter/Multigoal.lean Modified Mathlib/Tactic/Module.lean Modified Mathlib/Tactic/NormNum/Abs.lean Modified Mathlib/Tactic/NormNum/Basic.lean Modified Mathlib/Tactic/NormNum/Eq.lean Modified Mathlib/Tactic/NormNum/GCD.lean Modified Mathlib/Tactic/NormNum/Ineq.lean Modified Mathlib/Tactic/NormNum/Inv.lean Modified Mathlib/Tactic/NormNum/Irrational.lean Modified Mathlib/Tactic/NormNum/LegendreSymbol.lean Modified Mathlib/Tactic/NormNum/NatSqrt.lean Modified Mathlib/Tactic/NormNum/Pow.lean Modified Mathlib/Tactic/NormNum/PowMod.lean Modified Mathlib/Tactic/NormNum/RealSqrt.lean Modified Mathlib/Tactic/NormNum/Result.lean Modified Mathlib/Tactic/Ring/Common.lean Modified Mathlib/Tactic/Translate/Core.lean Modified Mathlib/Tactic/Translate/UnfoldBoundary.lean Modified Mathlib/Topology/AlexandrovDiscrete.lean Modified Mathlib/Topology/Algebra/AffineSubspace.lean Modified Mathlib/Topology/Algebra/Category/ProfiniteGrp/Completion.lean Modified Mathlib/Topology/Algebra/Category/ProfiniteGrp/Limits.lean Modified Mathlib/Topology/Algebra/ConstMulAction.lean Modified Mathlib/Topology/Algebra/Constructions.lean Modified Mathlib/Topology/Algebra/FilterBasis.lean Modified Mathlib/Topology/Algebra/Group/GroupTopology.lean Modified Mathlib/Topology/Algebra/InfiniteSum/Basic.lean Modified Mathlib/Topology/Algebra/InfiniteSum/Defs.lean Modified Mathlib/Topology/Algebra/InfiniteSum/ENNReal.lean Modified Mathlib/Topology/Algebra/InfiniteSum/Group.lean Modified Mathlib/Topology/Algebra/InfiniteSum/NatInt.lean Modified Mathlib/Topology/Algebra/InfiniteSum/SummationFilter.lean - def SummationFilter.comap Modified Mathlib/Topology/Algebra/IsUniformGroup/Defs.lean Modified Mathlib/Topology/Algebra/IsUniformGroup/DiscreteSubgroup.lean Modified Mathlib/Topology/Algebra/MetricSpace/Lipschitz.lean Modified Mathlib/Topology/Algebra/Module/Basic.lean Modified Mathlib/Topology/Algebra/Module/Equiv.lean Modified Mathlib/Topology/Algebra/Module/FiniteDimension.lean Modified Mathlib/Topology/Algebra/Module/LinearMap.lean Modified Mathlib/Topology/Algebra/Module/LocallyConvex.lean Modified Mathlib/Topology/Algebra/Module/Multilinear/Topology.lean Modified Mathlib/Topology/Algebra/Module/StrongTopology.lean Modified Mathlib/Topology/Algebra/Module/TransferInstance.lean Modified Mathlib/Topology/Algebra/Module/UniformConvergence.lean Modified Mathlib/Topology/Algebra/Module/WeakBilin.lean Modified Mathlib/Topology/Algebra/Nonarchimedean/AdicTopology.lean Modified Mathlib/Topology/Algebra/Nonarchimedean/Bases.lean Modified Mathlib/Topology/Algebra/Nonarchimedean/TotallyDisconnected.lean Modified Mathlib/Topology/Algebra/Order/Field.lean Modified Mathlib/Topology/Algebra/Polynomial.lean Modified Mathlib/Topology/Algebra/RestrictedProduct/TopologicalSpace.lean Modified Mathlib/Topology/Algebra/Ring/Real.lean Modified Mathlib/Topology/Algebra/StarSubalgebra.lean Modified Mathlib/Topology/Algebra/Support.lean Modified Mathlib/Topology/Algebra/UniformFilterBasis.lean Modified Mathlib/Topology/Algebra/Valued/LocallyCompact.lean Modified Mathlib/Topology/Algebra/Valued/NormedValued.lean Modified Mathlib/Topology/Algebra/Valued/ValuationTopology.lean Modified Mathlib/Topology/Algebra/Valued/ValuativeRel.lean Modified Mathlib/Topology/Algebra/Valued/ValuedField.lean Modified Mathlib/Topology/Algebra/Valued/WithVal.lean Modified Mathlib/Topology/Bornology/Real.lean Modified Mathlib/Topology/CWComplex/Classical/Basic.lean Modified Mathlib/Topology/CWComplex/Classical/Finite.lean Modified Mathlib/Topology/CWComplex/Classical/Subcomplex.lean Modified Mathlib/Topology/Category/CompHaus/Basic.lean Modified Mathlib/Topology/Category/CompHaus/EffectiveEpi.lean Modified Mathlib/Topology/Category/CompHausLike/Limits.lean Modified Mathlib/Topology/Category/CompHausLike/SigmaComparison.lean Modified Mathlib/Topology/Category/LightProfinite/AsLimit.lean Modified Mathlib/Topology/Category/LightProfinite/Basic.lean Modified Mathlib/Topology/Category/LightProfinite/Extend.lean Modified Mathlib/Topology/Category/LightProfinite/Injective.lean Modified Mathlib/Topology/Category/Profinite/AsLimit.lean Modified Mathlib/Topology/Category/Profinite/Basic.lean Modified Mathlib/Topology/Category/Profinite/CofilteredLimit.lean Modified Mathlib/Topology/Category/Profinite/EffectiveEpi.lean Modified Mathlib/Topology/Category/Profinite/Extend.lean Modified Mathlib/Topology/Category/Profinite/Nobeling/Basic.lean Modified Mathlib/Topology/Category/Profinite/Nobeling/Span.lean Modified Mathlib/Topology/Category/Profinite/Nobeling/Successor.lean Modified Mathlib/Topology/Category/Profinite/Nobeling/ZeroLimit.lean Modified Mathlib/Topology/Category/Profinite/Product.lean Modified Mathlib/Topology/Category/Stonean/Basic.lean Modified Mathlib/Topology/Category/TopCat/Limits/Basic.lean Modified Mathlib/Topology/Category/TopCat/Limits/Cofiltered.lean Modified Mathlib/Topology/Category/TopCat/Limits/Products.lean Modified Mathlib/Topology/Category/TopCat/Limits/Pullbacks.lean Modified Mathlib/Topology/Category/TopCat/Opens.lean Modified Mathlib/Topology/Category/TopCat/Sphere.lean Modified Mathlib/Topology/Category/TopCat/ULift.lean Modified Mathlib/Topology/Category/TopCat/Yoneda.lean Modified Mathlib/Topology/Category/UniformSpace.lean - def UniformSpaceCat.completionHom Modified Mathlib/Topology/Closure.lean Modified Mathlib/Topology/CompactOpen.lean Modified Mathlib/Topology/Compactification/OnePoint/Basic.lean Modified Mathlib/Topology/Compactification/OnePoint/Sphere.lean Modified Mathlib/Topology/Compactification/StoneCech.lean Modified Mathlib/Topology/Compactness/CompactlyGeneratedSpace.lean Modified Mathlib/Topology/Compactness/DeltaGeneratedSpace.lean Modified Mathlib/Topology/Connected/Basic.lean Modified Mathlib/Topology/Connected/Clopen.lean Modified Mathlib/Topology/Connected/LocPathConnected.lean Modified Mathlib/Topology/Connected/PathConnected.lean Modified Mathlib/Topology/Constructible.lean Modified Mathlib/Topology/Constructions.lean Modified Mathlib/Topology/ContinuousMap/Algebra.lean Modified Mathlib/Topology/ContinuousMap/Bounded/Basic.lean Modified Mathlib/Topology/ContinuousMap/Bounded/Normed.lean Modified Mathlib/Topology/ContinuousMap/BoundedCompactlySupported.lean Modified Mathlib/Topology/ContinuousMap/Compact.lean Modified Mathlib/Topology/ContinuousMap/CompactlySupported.lean Modified Mathlib/Topology/ContinuousMap/ContinuousMapZero.lean Modified Mathlib/Topology/ContinuousMap/Ideals.lean Modified Mathlib/Topology/ContinuousMap/Interval.lean Modified Mathlib/Topology/ContinuousMap/StarOrdered.lean Modified Mathlib/Topology/ContinuousMap/StoneWeierstrass.lean Modified Mathlib/Topology/ContinuousMap/T0Sierpinski.lean Modified Mathlib/Topology/ContinuousMap/Weierstrass.lean Modified Mathlib/Topology/Convenient/GeneratedBy.lean Modified Mathlib/Topology/Covering/AddCircle.lean Modified Mathlib/Topology/Defs/Filter.lean Modified Mathlib/Topology/DiscreteSubset.lean Modified Mathlib/Topology/EMetricSpace/Defs.lean Modified Mathlib/Topology/EMetricSpace/Lipschitz.lean Modified Mathlib/Topology/EMetricSpace/PairReduction.lean Modified Mathlib/Topology/EMetricSpace/Pi.lean Modified Mathlib/Topology/ExtremallyDisconnected.lean Modified Mathlib/Topology/FiberBundle/Basic.lean Modified Mathlib/Topology/GDelta/Basic.lean Modified Mathlib/Topology/Gluing.lean Modified Mathlib/Topology/Homotopy/Basic.lean Modified Mathlib/Topology/Homotopy/HSpaces.lean Modified Mathlib/Topology/Homotopy/HomotopyGroup.lean Modified Mathlib/Topology/Homotopy/Path.lean Modified Mathlib/Topology/IndicatorConstPointwise.lean Modified Mathlib/Topology/Instances/AddCircle/Defs.lean Modified Mathlib/Topology/Instances/AddCircle/DenseSubgroup.lean Modified Mathlib/Topology/Instances/CantorSet.lean Modified Mathlib/Topology/Instances/Complex.lean Modified Mathlib/Topology/Instances/Discrete.lean Modified Mathlib/Topology/Instances/ENNReal/Lemmas.lean Modified Mathlib/Topology/Instances/EReal/Lemmas.lean Modified Mathlib/Topology/Instances/Int.lean Modified Mathlib/Topology/Instances/Matrix.lean Modified Mathlib/Topology/Instances/NNReal/Lemmas.lean Modified Mathlib/Topology/Instances/Rat.lean Modified Mathlib/Topology/Instances/Real/Lemmas.lean Modified Mathlib/Topology/Instances/ZMultiples.lean Modified Mathlib/Topology/Irreducible.lean Modified Mathlib/Topology/IsClosedRestrict.lean Modified Mathlib/Topology/JacobsonSpace.lean Modified Mathlib/Topology/List.lean Modified Mathlib/Topology/LocalAtTarget.lean Modified Mathlib/Topology/MetricSpace/Basic.lean Modified Mathlib/Topology/MetricSpace/CantorScheme.lean Modified Mathlib/Topology/MetricSpace/Closeds.lean Modified Mathlib/Topology/MetricSpace/Contracting.lean Modified Mathlib/Topology/MetricSpace/CoveringNumbers.lean Modified Mathlib/Topology/MetricSpace/Dilation.lean Modified Mathlib/Topology/MetricSpace/Gluing.lean Modified Mathlib/Topology/MetricSpace/GromovHausdorff.lean Modified Mathlib/Topology/MetricSpace/GromovHausdorffRealized.lean Modified Mathlib/Topology/MetricSpace/HausdorffDimension.lean Modified Mathlib/Topology/MetricSpace/HausdorffDistance.lean Modified Mathlib/Topology/MetricSpace/Holder.lean Modified Mathlib/Topology/MetricSpace/Infsep.lean Modified Mathlib/Topology/MetricSpace/Lipschitz.lean Modified Mathlib/Topology/MetricSpace/PiNat.lean Modified Mathlib/Topology/MetricSpace/Polish.lean Modified Mathlib/Topology/MetricSpace/Pseudo/Constructions.lean Modified Mathlib/Topology/MetricSpace/Pseudo/Defs.lean Modified Mathlib/Topology/MetricSpace/Pseudo/Pi.lean Modified Mathlib/Topology/MetricSpace/ThickenedIndicator.lean Modified Mathlib/Topology/MetricSpace/Thickening.lean Modified Mathlib/Topology/MetricSpace/Ultra/Basic.lean Modified Mathlib/Topology/Metrizable/CompletelyMetrizable.lean Modified Mathlib/Topology/Metrizable/Uniformity.lean Modified Mathlib/Topology/Metrizable/Urysohn.lean Modified Mathlib/Topology/NatEmbedding.lean Modified Mathlib/Topology/NoetherianSpace.lean Modified Mathlib/Topology/OpenPartialHomeomorph/Basic.lean Modified Mathlib/Topology/Order.lean Modified Mathlib/Topology/Order/Basic.lean Modified Mathlib/Topology/Order/Bornology.lean Modified Mathlib/Topology/Order/Category/FrameAdjunction.lean Modified Mathlib/Topology/Order/HullKernel.lean Modified Mathlib/Topology/Order/IsLUB.lean Modified Mathlib/Topology/Order/Lattice.lean Modified Mathlib/Topology/Order/LawsonTopology.lean Modified Mathlib/Topology/Order/LeftRightLim.lean Modified Mathlib/Topology/Order/LeftRightNhds.lean Modified Mathlib/Topology/Order/LiminfLimsup.lean Modified Mathlib/Topology/Order/LocalExtr.lean Modified Mathlib/Topology/Order/LowerUpperTopology.lean Modified Mathlib/Topology/Order/Monotone.lean Modified Mathlib/Topology/Order/ScottTopology.lean Modified Mathlib/Topology/Order/T5.lean Modified Mathlib/Topology/Order/UpperLowerSetTopology.lean Modified Mathlib/Topology/Order/WithTop.lean Modified Mathlib/Topology/Path.lean Modified Mathlib/Topology/Semicontinuity/Defs.lean Modified Mathlib/Topology/Separation/Basic.lean Modified Mathlib/Topology/Separation/CompletelyRegular.lean Modified Mathlib/Topology/Separation/DisjointCover.lean Modified Mathlib/Topology/Separation/Hausdorff.lean Modified Mathlib/Topology/Separation/LinearUpperLowerSetTopology.lean Modified Mathlib/Topology/Separation/Regular.lean Modified Mathlib/Topology/Separation/SeparatedNhds.lean Modified Mathlib/Topology/Sets/Closeds.lean Modified Mathlib/Topology/Sets/CompactOpenCovered.lean Modified Mathlib/Topology/Sets/OpenCover.lean Modified Mathlib/Topology/Sets/Opens.lean Modified Mathlib/Topology/Sets/VietorisTopology.lean Modified Mathlib/Topology/Sheaves/Alexandrov.lean Modified Mathlib/Topology/Sheaves/CommRingCat.lean Modified Mathlib/Topology/Sheaves/Limits.lean Modified Mathlib/Topology/Sheaves/LocallySurjective.lean Modified Mathlib/Topology/Sheaves/MayerVietoris.lean Modified Mathlib/Topology/Sheaves/PUnit.lean Modified Mathlib/Topology/Sheaves/SheafCondition/EqualizerProducts.lean Modified Mathlib/Topology/Sheaves/SheafCondition/OpensLeCover.lean Modified Mathlib/Topology/Sheaves/SheafCondition/PairwiseIntersections.lean Modified Mathlib/Topology/Sheaves/SheafCondition/Sites.lean Modified Mathlib/Topology/Sheaves/SheafCondition/UniqueGluing.lean Modified Mathlib/Topology/Sheaves/Skyscraper.lean Modified Mathlib/Topology/Sheaves/Stalks.lean Modified Mathlib/Topology/Sober.lean Modified Mathlib/Topology/Spectral/Prespectral.lean Modified Mathlib/Topology/Subpath.lean Modified Mathlib/Topology/TietzeExtension.lean Modified Mathlib/Topology/UniformSpace/Ascoli.lean Modified Mathlib/Topology/UniformSpace/Basic.lean Modified Mathlib/Topology/UniformSpace/Cauchy.lean Modified Mathlib/Topology/UniformSpace/Closeds.lean Modified Mathlib/Topology/UniformSpace/CompareReals.lean Modified Mathlib/Topology/UniformSpace/Completion.lean Modified Mathlib/Topology/UniformSpace/Dini.lean Modified Mathlib/Topology/UniformSpace/Equicontinuity.lean Modified Mathlib/Topology/UniformSpace/OfCompactT2.lean Modified Mathlib/Topology/UniformSpace/Pi.lean Modified Mathlib/Topology/UniformSpace/Separation.lean Modified Mathlib/Topology/UniformSpace/Ultra/Constructions.lean Modified Mathlib/Topology/UniformSpace/UniformConvergenceTopology.lean Modified Mathlib/Topology/UniformSpace/Uniformizable.lean Modified Mathlib/Topology/UnitInterval.lean Modified Mathlib/Topology/UrysohnsLemma.lean Modified Mathlib/Topology/VectorBundle/Basic.lean Modified Mathlib/Topology/VectorBundle/Riemannian.lean Modified MathlibTest/Algebra/Category/Grp/Injective.lean Modified MathlibTest/Algebra/Module/LocalizedModule.lean Modified MathlibTest/Bound/bound.lean Modified MathlibTest/CategoryTheory/CheckCompositions.lean Modified MathlibTest/FieldSimp.lean Modified MathlibTest/FindSyntax.lean Modified MathlibTest/GCongr/inequalities.lean Modified MathlibTest/LintStyle.lean Modified MathlibTest/Quaternion.lean Modified MathlibTest/Simps.lean +/- def coercing.bar +/- def coercing.new_bar Modified MathlibTest/TCSynth.lean Modified MathlibTest/TacticAnalysis.lean Modified MathlibTest/TautoSet.lean Modified MathlibTest/ToDual.lean Modified MathlibTest/cancel_denoms.lean Modified MathlibTest/congr.lean Modified MathlibTest/depRewrite.lean Modified MathlibTest/fast_instance.lean Modified MathlibTest/fun_prop2.lean Modified MathlibTest/globalAttributeIn.lean Modified MathlibTest/hintAll.lean Modified MathlibTest/instance_diamonds.lean Modified MathlibTest/instance_diamonds/FieldTheory/IsAlgClosed/AlgebraicClosure.lean Modified MathlibTest/instance_diamonds/FieldTheory/SplittingField/Construction.lean Modified MathlibTest/linarith.lean Modified MathlibTest/linear_combination'.lean Modified MathlibTest/linear_combination.lean Modified MathlibTest/matrix.lean Modified MathlibTest/norm_num.lean Modified MathlibTest/push.lean Modified MathlibTest/reduce_mod_char.lean Modified lake-manifest.json Modified lakefile.lean Modified lean-toolchain Modified scripts/nolints.json Modified scripts/noshake.json 2026-02-17 22:50:19 19564be chore(MeasureTheory): fix indentation in markdown lists (#35443) Make sure to also indent subsequent lines of an item: this is required by the markdown specification (though not doc-gen), it expresses intent more clearly, and makes it easier to catch accidental misindentations. ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Function/AbsolutelyContinuous.lean Modified Mathlib/MeasureTheory/Integral/IntervalIntegral/AbsolutelyContinuousFun.lean Modified Mathlib/MeasureTheory/Integral/IntervalIntegral/DerivIntegrable.lean Modified Mathlib/MeasureTheory/Integral/IntervalIntegral/LebesgueDifferentiationThm.lean Modified Mathlib/MeasureTheory/Integral/IntervalIntegral/Slope.lean Modified Mathlib/MeasureTheory/Measure/Doubling.lean Modified Mathlib/MeasureTheory/Measure/OpenPos.lean Modified Mathlib/MeasureTheory/Measure/Prokhorov.lean Modified Mathlib/MeasureTheory/Measure/Regular.lean 2026-02-17 21:47:18 bd255db chore(CategoryTheory/Limits): add instances for `HasPullback f.op g.op` and `HasPushout f.op g.op` (#35453) We also add some `iff` lemmas relating these and two lemmas computing the opposites of `pullback.map` and `pushout.map`. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Limits/HasLimits.lean + theorem CategoryTheory.Limits.hasColimit_equivalence_comp_iff + theorem CategoryTheory.Limits.hasColimit_inverse_equivalence_comp_iff + theorem CategoryTheory.Limits.hasLimit_equivalence_comp_iff + theorem CategoryTheory.Limits.hasLimit_inverse_equivalence_comp_iff Modified Mathlib/CategoryTheory/Limits/Opposites.lean + theorem CategoryTheory.Limits.hasColimit_leftOp_iff_hasLimit + theorem CategoryTheory.Limits.hasColimit_op_iff_hasLimit + theorem CategoryTheory.Limits.hasColimit_rightOp_iff_hasLimit + theorem CategoryTheory.Limits.hasLimit_leftOp_iff_hasColimit + theorem CategoryTheory.Limits.hasLimit_op_iff_hasColimit + theorem CategoryTheory.Limits.hasLimit_rightOp_iff_hasColimit Modified Mathlib/CategoryTheory/Limits/Shapes/Opposites/Pullbacks.lean + def CategoryTheory.Limits.cospanUnop + theorem CategoryTheory.Limits.hasPullback_op_iff_hasPushout + theorem CategoryTheory.Limits.hasPullback_unop_iff_hasPushout + theorem CategoryTheory.Limits.hasPushout_op_iff_hasPullback + theorem CategoryTheory.Limits.hasPushout_unop_iff_hasPullback + theorem CategoryTheory.Limits.op_pullbackMap + theorem CategoryTheory.Limits.op_pushoutMap +/- theorem CategoryTheory.Limits.pullbackIsoOpPushout_hom_inl +/- theorem CategoryTheory.Limits.pullbackIsoOpPushout_hom_inr +/- theorem CategoryTheory.Limits.pullbackIsoOpPushout_inv_fst +/- theorem CategoryTheory.Limits.pullbackIsoOpPushout_inv_snd +/- theorem CategoryTheory.Limits.pullbackIsoUnopPushout_hom_inl +/- theorem CategoryTheory.Limits.pullbackIsoUnopPushout_hom_inr +/- theorem CategoryTheory.Limits.pullbackIsoUnopPushout_inv_fst +/- theorem CategoryTheory.Limits.pullbackIsoUnopPushout_inv_snd +/- theorem CategoryTheory.Limits.pushoutIsoOpPullback_inl_hom +/- theorem CategoryTheory.Limits.pushoutIsoOpPullback_inr_hom +/- theorem CategoryTheory.Limits.pushoutIsoOpPullback_inv_fst +/- theorem CategoryTheory.Limits.pushoutIsoOpPullback_inv_snd +/- theorem CategoryTheory.Limits.pushoutIsoUnopPullback_inl_hom +/- theorem CategoryTheory.Limits.pushoutIsoUnopPullback_inr_hom +/- theorem CategoryTheory.Limits.pushoutIsoUnopPullback_inv_fst +/- theorem CategoryTheory.Limits.pushoutIsoUnopPullback_inv_snd + def CategoryTheory.Limits.spanUnop 2026-02-17 21:47:16 14e8b45 feat(Data/Set/PowersetCard): definitions on `Set.powersetCard` (#35432) This PR adds three new definitions for `Set.powersetCard`: * `ofCard`: casts a set of cardinality `n` to its corresponding element of `Set.powersetCard α n` * `disjUnion`: the disjoint union of finite sets as a function on `Set.powersetCard` * `prodEquiv`: the equivalence `(n : ℕ) × (Set.powersetCard α n) ≃ Finset α` ESTIMATED CHANGES Modified Mathlib/Data/Set/PowersetCard.lean + theorem Set.powersetCard.coe_disjUnion + def Set.powersetCard.disjUnion + theorem Set.powersetCard.mem_disjUnion + def Set.powersetCard.ofCard + def Set.powersetCard.prodEquiv + theorem Set.powersetCard.prodEquiv_apply + theorem Set.powersetCard.prodEquiv_symm_apply + theorem Set.powersetCard.val_ofCard 2026-02-17 20:49:13 cf8ca7b feat(Topology/Connected/PathConnected): relate `ZerothHomotopy` and `ConnectedComponents` (#34244) ESTIMATED CHANGES Modified Mathlib/Data/Quot.lean + theorem Quot.map_surjective + theorem Quotient.map_surjective Modified Mathlib/Topology/Connected/LocPathConnected.lean + theorem coe_connectedComponentsEquivZerothHomotopy_symm + theorem connectedComponentSetoid_eq_pathSetoid + theorem connectedComponent_eq_iff_joined + def connectedComponentsEquivZerothHomotopy + theorem connectedComponentsEquivZerothHomotopy_apply + theorem connectedComponentsEquivZerothHomotopy_symm_apply Modified Mathlib/Topology/Connected/PathConnected.lean + def ZerothHomotopy.toConnectedComponents + theorem ZerothHomotopy.toConnectedComponents_apply + theorem ZerothHomotopy.toConnectedComponents_surjective + theorem biUnion_connectedComponent_pathComponent_eq 2026-02-17 20:31:19 a90320d ci: Use variable instead of secret for OTLP_ENDPOINT (#35457) This value is not a secret, we can use a variable instead ESTIMATED CHANGES Modified .github/workflows/export_telemetry.yaml 2026-02-17 19:29:20 6dc31c1 feat(AlgebraicGeometry): infinitesimal lifting criterion for formally unramified morphisms (#35397) ESTIMATED CHANGES Modified Mathlib/AlgebraicGeometry/IdealSheaf/Basic.lean Modified Mathlib/AlgebraicGeometry/Morphisms/FormallyUnramified.lean 2026-02-17 19:29:19 85b30bc feat(Analysis/InnerProductSpace/Basic): variants of the parallelogram law with squaring (#35171) This PR adds a couple variants of the parallelogram law written in terms of squaring `‖x + y‖ ^ 2 + ‖x - y‖ ^ 2` rather than multiplication `‖x + y‖ * ‖x + y‖ + ‖x - y‖ * ‖x - y‖`. I've found these to be helpful in practice. I renamed the existing statements per @hrmacbeth's suggestion. ESTIMATED CHANGES Modified Mathlib/Analysis/InnerProductSpace/Basic.lean + theorem parallelogram_law_with_nnnorm_mul + theorem parallelogram_law_with_norm_mul Modified Mathlib/Analysis/InnerProductSpace/Convex.lean Modified Mathlib/Analysis/InnerProductSpace/OfNorm.lean Modified Mathlib/Analysis/InnerProductSpace/Projection/Minimal.lean 2026-02-17 19:29:17 97825be chore(RingTheory/RingHom/Locally): rename `locally_StableUnderComposition…` to `locally_stableUnderComposition…` (#35147) As suggested by @alreadydone in https://github.com/leanprover-community/mathlib4/pull/33675#discussion_r2782092590. ESTIMATED CHANGES Modified Mathlib/AlgebraicGeometry/Morphisms/RingHomProperties.lean Modified Mathlib/RingTheory/RingHom/Locally.lean - theorem RingHom.locally_StableUnderCompositionWithLocalizationAwaySource - theorem RingHom.locally_StableUnderCompositionWithLocalizationAwayTarget + theorem RingHom.locally_stableUnderCompositionWithLocalizationAwaySource + theorem RingHom.locally_stableUnderCompositionWithLocalizationAwayTarget 2026-02-17 19:03:19 4e65dad chore(MetricSpace/Antilipschitz): the antilipschitz constant is positive for nontrivial metric spaces (#35227) A simple lemma which is essentially the converse of the previous, but can be useful in practice. ESTIMATED CHANGES Modified Mathlib/Topology/MetricSpace/Antilipschitz.lean 2026-02-17 18:51:17 54b9f2e ci: Add documentation/status page for workflows (#35112) - Add a page with a description of each workflow, classified by trigger type and importance - Add a workflow to push 'helpful' comments to PRs based on arbitrary criteria, use it to post a "don't forget to update the docs!" when modifying workflow files Prepared with Codex ESTIMATED CHANGES Modified .github/workflows/PR_summary.yml Added docs/workflows.md 2026-02-17 17:59:09 c66b8e2 feat(Topology/ContinuousMap/LocallyConstant): the range of `toContinuousMapAlgHom` separates points (#35221) ... in a totally separated space. ESTIMATED CHANGES Modified Mathlib/Topology/ContinuousMap/LocallyConstant.lean + theorem LocallyConstant.separatesPoints_range_toContinuousMapAlgHom + theorem LocallyConstant.toAddMonoidHom_toContinuousMapLinearMap + theorem LocallyConstant.toLinearMap_toContinuousMapAlgHom 2026-02-17 17:36:00 14a6410 chore: update Mathlib dependencies 2026-02-17 (#35449) This PR updates the Mathlib dependencies. ESTIMATED CHANGES Modified lake-manifest.json 2026-02-17 16:40:40 d5358ac feat: binomial random graphs (#31364) From LeanCamCombi and formal-conjectures ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/MeasureTheory/Constructions/SimpleGraph.lean + theorem SimpleGraph.measurableEmbedding_edgeSet + theorem SimpleGraph.measurable_adj + theorem SimpleGraph.measurable_edgeSet + theorem SimpleGraph.measurable_fromEdgeSet + theorem SimpleGraph.measurable_iff_adj Added Mathlib/Probability/Combinatorics/BinomialRandomGraph/Defs.lean + theorem SimpleGraph.binomialRandom_apply' + theorem SimpleGraph.binomialRandom_apply + theorem SimpleGraph.binomialRandom_eq_map + theorem SimpleGraph.binomialRandom_one + theorem SimpleGraph.binomialRandom_singleton + theorem SimpleGraph.binomialRandom_zero Added Mathlib/Probability/Combinatorics/README.md 2026-02-17 15:39:25 1829e3f feat(InformationTheory/Coding): Kraft-McMillan inequality for uniquely decodable codes (#34108) This PR introduces the basic definition of uniquely decodable codes and proves the [Kraft-McMillan inequality](https://en.wikipedia.org/wiki/Kraft%E2%80%93McMillan_inequality), a fundamental result in noiseless coding theory. The results live in the `InformationTheory` namespace, in the directory `InformationTheory/Coding`. #### Main definitions * `InformationTheory.UniquelyDecodable`: a set of codewords is uniquely decodable if concatenation is injective on finite lists of codewords. #### Main results * `InformationTheory.kraft_mcmillan_inequality`: for any finite uniquely decodable code `S` over an alphabet of size `D`, $\sum_{w \in S} D^{-|w|} \le 1.$ * `InformationTheory.UniquelyDecodable.epsilon_not_mem`: uniquely decodable codes cannot contain the empty string. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Data/Fintype/BigOperators.lean + theorem Finset.card_filter_length_eq_le Added Mathlib/InformationTheory/Coding/KraftMcMillan.lean Added Mathlib/InformationTheory/Coding/UniquelyDecodable.lean + theorem InformationTheory.UniquelyDecodable.epsilon_not_mem + theorem InformationTheory.UniquelyDecodable.flatten_injective + def InformationTheory.UniquelyDecodable 2026-02-17 15:39:23 80378d4 refactor(Computability): file for state transition systems (#33291) This PR makes a new file to contain content having to do with state transition systems defined by a function `σ → Option σ`. This content was previously split over `PostTuringMachine.lean` and `TMComputable.lean`, but since these definitions don't only apply to Turing machines in particular, it seems sensible to refactor them and remove them from the `Turing` namespace and put them in a new `StateTransition` namespace. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Computability/PostTuringMachine.lean - def Turing.FRespects - theorem Turing.Reaches.to₀ - def Turing.Reaches - theorem Turing.Reaches₀.head - theorem Turing.Reaches₀.refl - theorem Turing.Reaches₀.single - theorem Turing.Reaches₀.tail' - theorem Turing.Reaches₀.tail - theorem Turing.Reaches₀.trans - def Turing.Reaches₀ - theorem Turing.Reaches₁.to₀ - def Turing.Reaches₁ - def Turing.Respects - def Turing.eval - def Turing.evalInduction - theorem Turing.eval_maximal - theorem Turing.eval_maximal₁ - theorem Turing.frespects_eq - theorem Turing.fun_respects - theorem Turing.mem_eval - theorem Turing.reaches_eval - theorem Turing.reaches_total - theorem Turing.reaches₀_eq - theorem Turing.reaches₁_eq - theorem Turing.reaches₁_fwd - theorem Turing.tr_eval' - theorem Turing.tr_eval - theorem Turing.tr_eval_dom - theorem Turing.tr_eval_rev - theorem Turing.tr_reaches - theorem Turing.tr_reaches_rev - theorem Turing.tr_reaches₁ Added Mathlib/Computability/StateTransition.lean + def StateTransition.EvalsTo.refl + def StateTransition.EvalsTo.trans + structure StateTransition.EvalsTo + def StateTransition.EvalsToInTime.refl + def StateTransition.EvalsToInTime.trans + structure StateTransition.EvalsToInTime + def StateTransition.FRespects + theorem StateTransition.Reaches.to₀ + def StateTransition.Reaches + theorem StateTransition.Reaches₀.head + theorem StateTransition.Reaches₀.refl + theorem StateTransition.Reaches₀.single + theorem StateTransition.Reaches₀.tail' + theorem StateTransition.Reaches₀.tail + theorem StateTransition.Reaches₀.trans + def StateTransition.Reaches₀ + theorem StateTransition.Reaches₁.to₀ + def StateTransition.Reaches₁ + def StateTransition.Respects + def StateTransition.eval + def StateTransition.evalInduction + theorem StateTransition.eval_maximal + theorem StateTransition.eval_maximal₁ + theorem StateTransition.frespects_eq + theorem StateTransition.fun_respects + theorem StateTransition.mem_eval + theorem StateTransition.reaches_eval + theorem StateTransition.reaches_total + theorem StateTransition.reaches₀_eq + theorem StateTransition.reaches₁_eq + theorem StateTransition.reaches₁_fwd + theorem StateTransition.tr_eval' + theorem StateTransition.tr_eval + theorem StateTransition.tr_eval_dom + theorem StateTransition.tr_eval_rev + theorem StateTransition.tr_reaches + theorem StateTransition.tr_reaches_rev + theorem StateTransition.tr_reaches₁ Modified Mathlib/Computability/TMConfig.lean Modified Mathlib/Computability/TMToPartrec.lean Modified Mathlib/Computability/TuringMachine.lean 2026-02-17 15:21:33 c6bb5a5 feat(Topology/Algebra/Group/Basic): group is totally disconnected iff `connectedComponent 1 = {1}` (#35404) This PR proves that a group `G` is totally disconnected if and only if `connectedComponent 1 = {1}`. ESTIMATED CHANGES Modified Mathlib/Topology/Algebra/Group/Basic.lean + theorem smul_connectedComponent + theorem totallyDisconnectedSpace_iff_connectedComponent_one 2026-02-17 14:20:06 ac6e242 ci: add `splice-bot` action (#33979) Adds a CI action that inspects review comments. If a review comment posted by the PR author or a member of the reviewer or maintainer teams selects at least one line and contains the string `splice-bot` at the start of some line, then the bot will create a branch in the new [mathlib4_copy repo](https://github.com/leanprover-community/mathlib4_copy) with just the changes to the selected file, clearing all history, and then open a new PR from that branch. mathlib4_copy is a repo with GitHub actions disabled on it so that people cannot use SpliceBot to trigger workflows they otherwise couldn't. Reviewers and maintainers also have write permissions to mathlib4_copy so that they can make changes to the PR branches created by this bot if necessary. See https://github.com/leanprover-community/SpliceBot ESTIMATED CHANGES Added .github/workflows/splice_bot.yaml Added .github/workflows/splice_bot_wf_run.yaml 2026-02-17 14:05:58 0778d47 chore: fix printf error in nightly bump Zulip message (#35428) This PR fixes a bug in the nightly bump workflow where bash's builtin `printf` interprets a leading `-` in the format string as an option flag, causing `printf: - : invalid option`. See the [failed run](https://github.com/leanprover-community/mathlib4-nightly-testing/actions/runs/22084056453/job/63817494622) — the toolchain bump and push succeeded, but the Zulip notification step crashed. The fix replaces `printf` subshells with direct string interpolation, which is simpler and avoids the issue. 🤖 Prepared with Claude Code ESTIMATED CHANGES Modified .github/workflows/nightly_bump_and_merge.yml 2026-02-17 14:05:56 dd4aa47 chore: use authenticated gh api in nightly bump workflow (#35427) This PR replaces unauthenticated `curl` calls to the GitHub API with `gh api` in the nightly bump workflow. The `gh api` command automatically uses the app token already generated in the workflow, avoiding transient failures from the unauthenticated rate limit (60 req/hour). The [first attempt of this run](https://github.com/leanprover-community/mathlib4-nightly-testing/actions/runs/22084056453/job/63814863096) failed because the API returned a rate-limit error object instead of the expected array, and `jq` crashed trying to index it. Corresponding PRs: - https://github.com/leanprover-community/batteries/pull/1678 - https://github.com/leanprover/cslib/pull/341 🤖 Prepared with Claude Code ESTIMATED CHANGES Modified .github/workflows/nightly_bump_and_merge.yml 2026-02-17 13:54:18 2f8b6b3 fix: avoid SIGPIPE in create-adaptation-pr.sh (#35434) This PR fixes a bug in `scripts/create-adaptation-pr.sh` where `set -o pipefail` combined with `git diff ... | grep -q .` causes SIGPIPE failures when the diff is large. When `git diff --name-only` produces many lines of output, `grep -q` exits immediately after the first match, closing the pipe. `git diff` then receives SIGPIPE (exit 141), and `pipefail` reports the pipeline as failed — even though there ARE differences. This causes the script to incorrectly skip PR creation ("No PR needed"). This bug prevented automatic PR creation for `nightly-2026-02-16-rev1` (the diff had 3359 changed files, reliably triggering SIGPIPE). Fix: replace all `| grep -q .` patterns with: - A `has_unmerged_files()` helper for conflict checks (captures output in a variable) - `! git diff --quiet` for tree comparison (uses exit codes, no pipe needed) 🤖 Prepared with Claude Code ESTIMATED CHANGES Modified scripts/create-adaptation-pr.sh 2026-02-17 09:43:38 28fcbbe feat: deprecate `Expr.isConstantApplication` (#35267) The function `Expr.isConstantApplication` does its de bruijn index managenent incorrectly, so this PR deprecates it. It was added in #1861. It should have used de bruijn index 0, but it actually used de bruijn index `n - 2`. This means that it would works correctly for the number of arguments being at most 2. This PR removes the call to `Expr.isConstantApplication` used by `to_additive`, which is not needed anymore. It turns out that the check is simply not necessary. ESTIMATED CHANGES Modified Mathlib/Lean/Expr/Basic.lean Modified Mathlib/Tactic/Translate/Core.lean Modified MathlibTest/toAdditive.lean 2026-02-17 08:55:01 4d984d0 chore: fix indentation in markdown lists (#35382) Make sure to also indent subsequent lines of an item: this is required by the markdown specification (though not doc-gen), and makes it easier to catch accidental misindentations. ESTIMATED CHANGES Modified Archive/Wiedijk100Theorems/SolutionOfCubicQuartic.lean Modified Counterexamples/NowhereDifferentiable.lean Modified Mathlib/Combinatorics/HalesJewett.lean Modified Mathlib/Combinatorics/Quiver/Arborescence.lean Modified Mathlib/Combinatorics/Quiver/ConnectedComponent.lean Modified Mathlib/GroupTheory/GroupAction/Iwasawa.lean Modified Mathlib/GroupTheory/GroupAction/MultiplePrimitivity.lean Modified Mathlib/GroupTheory/GroupAction/SubMulAction/OfFixingSubgroup.lean Modified Mathlib/GroupTheory/PushoutI.lean Modified Mathlib/LinearAlgebra/AffineSpace/Simplex/Centroid.lean Modified Mathlib/LinearAlgebra/Dual/BaseChange.lean Modified Mathlib/LinearAlgebra/Finsupp/Pi.lean Modified Mathlib/LinearAlgebra/Transvection.lean Modified Mathlib/RepresentationTheory/FinGroupCharZero.lean 2026-02-17 08:42:57 760562d chore(ODE/PicardLindelof): strengthen (#35385) In the theorem `IsPicardLindelof.of_contDiffAt_one`, an ∀∃ statement can strengthened to an ∃∀ one without changing the proof. I golfed a bit in passing. ESTIMATED CHANGES Modified Mathlib/Analysis/ODE/PicardLindelof.lean 2026-02-17 07:11:04 3773dce feat(AlgebraicGeometry): abelian varieties are abelian (#35354) We show that proper geometrically-integral group schemes over fields are commutative. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/AlgebraicGeometry/AlgClosed/Basic.lean + theorem AlgebraicGeometry.ext_of_apply_closedPoint_eq + theorem AlgebraicGeometry.ext_of_apply_eq Added Mathlib/AlgebraicGeometry/Group/Abelian.lean + theorem AlgebraicGeometry.isCommMonObj_of_isProper_of_geometricallyIntegral + theorem AlgebraicGeometry.isCommMonObj_of_isProper_of_isIntegral_tensorObj_of_isAlgClosed Modified Mathlib/AlgebraicGeometry/Morphisms/FlatDescent.lean Modified Mathlib/AlgebraicGeometry/Morphisms/Separated.lean + theorem AlgebraicGeometry.ext_of_fromSpecResidueField_eq Modified Mathlib/AlgebraicGeometry/Morphisms/UnderlyingMap.lean Modified Mathlib/AlgebraicGeometry/Noetherian.lean + theorem AlgebraicGeometry.LocallyOfFinitePresentation.iff_locallyOfFiniteType Modified Mathlib/CategoryTheory/Monoidal/Cartesian/Grp_.lean + theorem CategoryTheory.Functor.map_inv' Modified Mathlib/CategoryTheory/Monoidal/Cartesian/Over.lean + theorem CategoryTheory.Over.fst_left + theorem CategoryTheory.Over.snd_left Modified Mathlib/Topology/JacobsonSpace.lean + theorem JacobsonSpace.closure_inter_closedPoints_eq_closure + theorem Set.Finite.isDiscrete_of_subset_closedPoints + theorem subsingleton_image_closure_of_finite_of_isPreirreducible 2026-02-17 06:47:51 194a1d4 feat(Analysis/AperiodicOrder/Delone): Delone Sets (#32030) Initial definitions and lemmas for Delone Sets. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/AperiodicOrder/Delone/Basic.lean + theorem Delone.DeloneSet.copy_eq + theorem Delone.DeloneSet.eq_of_mem_ball + theorem Delone.DeloneSet.exists_dist_le_coveringRadius + theorem Delone.DeloneSet.mapBilipschitz_refl + theorem Delone.DeloneSet.mapBilipschitz_trans + theorem Delone.DeloneSet.mapIsometry_refl + theorem Delone.DeloneSet.mapIsometry_symm + theorem Delone.DeloneSet.mapIsometry_trans + theorem Delone.DeloneSet.mem_carrier + theorem Delone.DeloneSet.mem_coe + theorem Delone.DeloneSet.nonempty + theorem Delone.DeloneSet.packingRadius_lt_dist_of_mem_ne + theorem Delone.DeloneSet.subset_ball_singleton + def Delone.DeloneSet.toSet + structure Delone.DeloneSet 2026-02-17 06:25:37 b6f12f1 feat: Killing orthogonal complement is complement (#34856) Killing orthogonal complement is complement ESTIMATED CHANGES Modified Mathlib/Algebra/Lie/Killing.lean + theorem LieIdeal.isCompl_killingCompl 2026-02-17 05:26:00 a9fd936 feat(TacticAnalysis): verify grind? suggestions work (#33645) This PR adds a tactic analysis linter that runs `grind?` at proof steps, captures the "Try this:" suggestions, and verifies they actually close the goal when run. Two new options: - `linter.tacticAnalysis.verifyGrind`: verify `grind?` suggestions - `linter.tacticAnalysis.verifyGrindSuggestions`: verify `grind? +suggestions` Also adds `runTacticCodeCapturingInfoTree` to capture InfoTrees during tactic execution, enabling extraction of TryThis suggestions. 🤖 Prepared with Claude Code ESTIMATED CHANGES Modified Mathlib/Lean/ContextInfo.lean + def Lean.Elab.ContextInfo.runCoreMCapturingInfoTree + def Lean.Elab.ContextInfo.runMetaMCapturingInfoTree + def Lean.Elab.ContextInfo.runTacticCapturingInfoTree + def Lean.Elab.ContextInfo.runTacticCodeCapturingInfoTree Modified Mathlib/Lean/Elab/InfoTree.lean - def Lean.Elab.collectTryThisSuggestions Modified Mathlib/Tactic/Says.lean - def Mathlib.Tactic.Says.parseAsTacticSeq Modified Mathlib/Tactic/TacticAnalysis.lean Modified Mathlib/Tactic/TacticAnalysis/Declarations.lean + def Mathlib.TacticAnalysis.verifyTryThisSuggestions + def verifyGrind + def verifyGrindSuggestions Modified Mathlib/Util/ParseCommand.lean + def Mathlib.GuardExceptions.parseAsTacticSeq Modified MathlibTest/TacticAnalysis.lean 2026-02-17 04:08:46 273765e chore: replace continuity by fun_prop in a few proofs (#35278) This includes three cases of auto-parameters that are `by fun_prop` now. ESTIMATED CHANGES Modified Mathlib/Topology/Algebra/ContinuousMonoidHom.lean Modified Mathlib/Topology/Algebra/Module/Equiv.lean Modified Mathlib/Topology/Category/LightProfinite/Basic.lean Modified Mathlib/Topology/Category/Profinite/Basic.lean Modified Mathlib/Topology/Category/TopCat/Limits/Basic.lean Modified Mathlib/Topology/Category/TopCat/Limits/Products.lean Modified Mathlib/Topology/Category/TopCat/ULift.lean Modified Mathlib/Topology/Connected/TotallyDisconnected.lean Modified Mathlib/Topology/Convenient/GeneratedBy.lean Modified Mathlib/Topology/Homotopy/HomotopyGroup.lean Modified Mathlib/Topology/Homotopy/Path.lean 2026-02-16 21:07:39 32fe3f9 feat: the left uniformity in a group (#35252) We have currently a specific definition of the right uniformity of a topological group, but not of the left uniformity. We introduce it in the current PR, for two reasons. First, there is no reason to favor one over the other. Second, it is needed in #35037, which changes the formula for the distance in a normed group to make it left-invariant following standard conventions. We also prove that a group is complete for its left-uniformity iff it is complete for its right-uniformity, by showing that inversion is a uniform equivalence between the two uniformities. ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Basic.lean + theorem mul_inv_mul_mul_cancel + theorem mul_mul_inv_mul_cancel Modified Mathlib/Analysis/Normed/Group/Quotient.lean Modified Mathlib/Topology/Algebra/Group/Basic.lean + theorem Homeomorph.symm_inv + theorem nhds_translation_inv_mul Modified Mathlib/Topology/Algebra/IsUniformGroup/Basic.lean + theorem IsTopologicalGroup.completeSpace_rightUniformSpace_iff_leftUniformSpace + theorem MulOpposite.comap_op_leftUniformSpace + theorem MulOpposite.comap_op_rightUniformSpace + def MulOpposite.opUniformEquivLeft + def MulOpposite.opUniformEquivRight + def UniformEquiv.inv + theorem comap_inv_leftUniformSpace Modified Mathlib/Topology/Algebra/IsUniformGroup/Defs.lean + def IsTopologicalGroup.leftUniformSpace + theorem uniformity_eq_comap_nhds_one_left 2026-02-16 20:55:09 0b9892d feat: uniqueness of Jordan-Chevalley-Dunford decomposition (#35294) ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/JordanChevalley.lean + theorem Module.End.isNilpotent_isSemisimple_unique 2026-02-16 18:04:13 fadcf92 feat(Algebra/Star/LinearMap): the convolutive intrinsic star ring on linear maps (#34111) There is a star ring on linear maps from coalgebras to star-algebras, where the ring structure is given by [convNonUnitalNonAssocRing](https://leanprover-community.github.io/mathlib4_docs/Mathlib/RingTheory/Coalgebra/Convolution.html#LinearMap.convNonUnitalNonAssocRing) and the star structure is given by [intrinsicStarAddMonoid](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Algebra/Star/LinearMap.html#LinearMap.intrinsicStarAddMonoid), given that `star comul = comm ∘ₗ comul`. This is true, for example, in finite-dimensional C*-algebras under the GNS construction [PositiveLinearMap.GNS](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Analysis/CStarAlgebra/GelfandNaimarkSegal.html#PositiveLinearMap.GNS) and the adjoint coalgebra [InnerProductSpace.coalgebraOfAlgebra](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Analysis/InnerProductSpace/Coalgebra.html#InnerProductSpace.coalgebraOfAlgebra). Another separate example is linear maps from `n -> R` to `m -> R`. ESTIMATED CHANGES Modified Mathlib/Algebra/Star/LinearMap.lean + theorem LinearMap.intrinsicStar_comp' + theorem LinearMap.intrinsicStar_convMul + theorem LinearMap.intrinsicStar_single + theorem Pi.intrinsicStar_comul + theorem Pi.intrinsicStar_comul_commSemiring + theorem TensorProduct.star_map_apply_eq_map_intrinsicStar Modified Mathlib/LinearAlgebra/TensorProduct/Basic.lean + theorem TensorProduct.comm_comm 2026-02-16 16:43:38 4827413 feat: `AddCommMonoid (E₁ →ₚ[R] E₂)` (#35200) Positive linear maps between ordered modules form a additive commutative monoid. ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Module/PositiveLinearMap.lean + theorem PositiveLinearMap.add_apply + theorem PositiveLinearMap.coe_toLinearMap + theorem PositiveLinearMap.nsmul_apply + theorem PositiveLinearMap.toLinearMap_add + theorem PositiveLinearMap.toLinearMap_inj + theorem PositiveLinearMap.toLinearMap_injective + theorem PositiveLinearMap.toLinearMap_nsmul + theorem PositiveLinearMap.toLinearMap_zero + theorem PositiveLinearMap.zero_apply 2026-02-16 16:43:36 1a11f9b feat: basic API for `ConditionallyCompletePartialOrder` (#35047) This develops the basic API for `ConditionallyCompletePartialOrder`. The API is copied from `ConditionallyCompleteLattice`, with `DirectedOn` assumptions added, and these lemmas are `protected` within that namespace. In a few cases, the lemmas were capable of being generalized outright, which we have done here. As a result, some material moved out of `ConditionallyCompleteLattice/Basic` to `ConditionallyCompletePartialOrder/Basic`. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Order/CompleteLattice/Basic.lean - theorem iInf_congr_Prop - theorem iInf_of_isEmpty - theorem sInf_image' Modified Mathlib/Order/CompletePartialOrder.lean Modified Mathlib/Order/ConditionallyCompleteLattice/Basic.lean - theorem IsGreatest.csSup_eq - theorem IsGreatest.csSup_mem - theorem IsLeast.csInf_eq - theorem IsLeast.csInf_mem - theorem csInf_Icc - theorem csInf_Ici - theorem csInf_Ico - theorem csInf_singleton - theorem csSup_Icc - theorem csSup_Iic - theorem csSup_Ioc - theorem csSup_singleton - theorem inf_eq_bot_of_bot_mem - theorem sup_eq_top_of_top_mem Modified Mathlib/Order/ConditionallyCompleteLattice/Indexed.lean - theorem Monotone.ciSup_mem_iInter_Icc_of_antitone - theorem cbiInf_eq_of_forall - theorem cbiSup_eq_of_forall - theorem ciInf_Ici - theorem ciInf_const - theorem ciInf_eq_ite - theorem ciInf_neg - theorem ciInf_pos - theorem ciInf_subsingleton - theorem ciInf_unique - theorem ciSup_Iic - theorem ciSup_const - theorem ciSup_eq_ite - theorem ciSup_mem_iInter_Icc_of_antitone_Icc - theorem ciSup_neg - theorem ciSup_pos - theorem ciSup_subsingleton - theorem ciSup_unique Added Mathlib/Order/ConditionallyCompletePartialOrder/Basic.lean + theorem IsGreatest.csSup_eq + theorem IsGreatest.csSup_mem + theorem IsGreatest.directedOn + theorem csInf_Icc + theorem csInf_Ici + theorem csInf_Ico + theorem csSup_Icc + theorem csSup_Iic + theorem csSup_Ioc + theorem csSup_singleton + theorem sup_eq_top_of_top_mem Added Mathlib/Order/ConditionallyCompletePartialOrder/Indexed.lean + theorem Directed.Ici_ciSup + theorem Directed.ciInf_le_ciSup + theorem Directed.ciSup_eq_of_forall_le_of_forall_lt_exists_gt + theorem Directed.ciSup_le_iff + theorem Directed.ciSup_mono + theorem Directed.isLUB_ciSup + theorem Directed.le_ciSup_of_le + theorem DirectedOn.ciSup_set_le_iff + theorem DirectedOn.isLUB_ciSup_set + theorem DirectedOn.le_ciSup_set + theorem GaloisConnection.l_ciSup_of_directed + theorem GaloisConnection.l_ciSup_set_of_directedOn + theorem GaloisConnection.l_csSup_of_directedOn' + theorem GaloisConnection.l_csSup_of_directedOn + theorem GaloisConnection.u_ciInf_of_directed + theorem GaloisConnection.u_ciInf_set_of_directedOn + theorem GaloisConnection.u_csInf_of_directedOn' + theorem GaloisConnection.u_csInf_of_directedOn + theorem Monotone.ciSup_mem_iInter_Icc_of_antitone + theorem OrderIso.map_ciInf_of_directed + theorem OrderIso.map_ciInf_set_of_directedOn + theorem OrderIso.map_ciSup_of_directed + theorem OrderIso.map_ciSup_set_of_directedOn + theorem OrderIso.map_csInf_of_directedOn' + theorem OrderIso.map_csInf_of_directedOn + theorem OrderIso.map_csSup_of_directedOn' + theorem OrderIso.map_csSup_of_directedOn + theorem cbiSup_eq_of_forall + theorem ciSup_Iic + theorem ciSup_const + theorem ciSup_eq_ite + theorem ciSup_mem_iInter_Icc_of_antitone_Icc + theorem ciSup_neg + theorem ciSup_pos + theorem ciSup_subsingleton + theorem ciSup_unique Modified Mathlib/Order/Directed.lean + theorem Monotone.forall_le_of_antitone + theorem directedOn_iff_isDirectedOrder Modified Mathlib/Order/Lattice.lean - theorem Monotone.forall_le_of_antitone 2026-02-16 16:16:10 df5c1e1 feat: inv lemmas for uniform convergence, missing `to_fun` attributes (#35384) ESTIMATED CHANGES Modified Mathlib/Topology/Algebra/IsUniformGroup/Basic.lean + theorem TendstoUniformly.inv + theorem TendstoUniformlyOn.inv + theorem TendstoUniformlyOnFilter.inv + theorem UniformCauchySeqOn.inv 2026-02-16 15:42:29 73ff1bf refactor(Data/Sym/Sym2): curry `mk` (#34803) Curry `Sym2.mk` from `Sym2.mk (p : α × α)` to `Sym2.mk (a b : α)`. This matches the `s(a, b)` notation and reduce the uncertainty about simp normal form. ESTIMATED CHANGES Modified Mathlib/Combinatorics/SimpleGraph/Acyclic.lean Modified Mathlib/Combinatorics/SimpleGraph/Dart.lean +/- def SimpleGraph.Dart.edge +/- theorem SimpleGraph.Dart.edge_mk Modified Mathlib/Combinatorics/SimpleGraph/EdgeLabeling.lean Modified Mathlib/Combinatorics/SimpleGraph/Maps.lean Modified Mathlib/Combinatorics/SimpleGraph/Paths.lean Modified Mathlib/Combinatorics/SimpleGraph/Subgraph.lean Modified Mathlib/Combinatorics/SimpleGraph/Triangle/Basic.lean Modified Mathlib/Data/Finset/Sym.lean +/- theorem Finset.isDiag_mk_of_mem_diag +/- theorem Finset.not_isDiag_mk_of_mem_offDiag +/- theorem Finset.sym2_eq_image Modified Mathlib/Data/List/Sym.lean Modified Mathlib/Data/Sym/Card.lean +/- theorem Sym2.card_image_diag +/- theorem Sym2.card_image_offDiag +/- theorem Sym2.two_mul_card_image_offDiag Modified Mathlib/Data/Sym/Sym2.lean - theorem Set.mk'_mem_sym2_iff +/- theorem Set.mk_mem_sym2_iff +/- theorem Set.mk_preimage_sym2 +/- theorem Set.sym2_eq_mk_image +/- theorem Set.sym2_image - theorem Sym2.fromRel_proj_prop - theorem Sym2.isDiag_iff_proj_eq +/- theorem Sym2.lift_mk +/- theorem Sym2.map_mk - theorem Sym2.map_pair_eq +/- theorem Sym2.mk_eq_mk_iff - theorem Sym2.mk_prod_swap_eq +/- theorem Sym2.mk_surjective +/- theorem Sym2.mul_mk Modified Mathlib/Data/Sym/Sym2/Finsupp.lean +/- theorem Finsupp.sym2Mul_apply_mk Modified Mathlib/Data/Sym/Sym2/Order.lean Modified Mathlib/LinearAlgebra/QuadraticForm/Basic.lean +/- theorem QuadraticMap.polarSym2_sym2Mk Modified Mathlib/Order/GameAdd.lean 2026-02-16 15:42:27 8cf8a74 feat: review lemmas about tendsto and group operations (#34792) * Add `Filter.tendsto_mul_const_iff`, `Filter.tendsto_const_mul_iff` and `Filter.tendsto_div_const_iff'`. * prime `Filter.tendsto_const_div_iff` (since it's about `Group` not `GroupWithZero` * Generalize a few results to nonabelian groups. In `Filter.tendsto_const_div_iff` this required changing `ContinuousDiv` to `IsTopologicalGroup` (which is actually equivalent for groups). ESTIMATED CHANGES Modified Mathlib/Topology/Algebra/Group/Basic.lean + theorem Filter.tendsto_const_div_iff' - theorem Filter.tendsto_const_div_iff + theorem Filter.tendsto_const_mul_iff + theorem Filter.tendsto_div_const_iff' + theorem Filter.tendsto_mul_const_iff - theorem Filter.tendsto_sub_const_iff 2026-02-16 15:28:25 8f9d9cf chore: bump toolchain to v4.28.0 (#35406) ESTIMATED CHANGES Modified lake-manifest.json Modified lakefile.lean Modified lean-toolchain 2026-02-16 14:47:04 d0d33f9 chore(NumberTheory/Height/Basic): fix names, add `to_fun`, more API (#35407) This PR does some house-keeping: * change two names from `zero_le_xxx` to `xxx_nonneg` as per the naming convention * add `to_fun` to `mulHeight_{zero|one}` * add the two parallel API lemmas `logHeight_{zero|one}` (with `to_fun` attribute) ESTIMATED CHANGES Modified Mathlib/NumberTheory/Height/Basic.lean + theorem Height.logHeight_nonneg + theorem Height.logHeight_one + theorem Height.logHeight_zero - theorem Height.mulHeight.ne_zero + theorem Height.mulHeight_ne_zero + theorem Height.mulHeight₁_nonneg - theorem Height.zero_le_logHeight - theorem Height.zero_le_mulHeight₁ 2026-02-16 13:52:51 bb5c5a5 feat(NumberTheory/ModularForms/QExpansion): define qExpansion ring hom and some more API (#32959) We construct the ring homomorphism from the graded ring of modular forms to power series. We develop some basic API for this and also prove the qExpansion coefficients are unique, which is useful to extracting the actual qExpansions of Eisenstein series. ESTIMATED CHANGES Modified Mathlib/Analysis/Complex/Periodic.lean + theorem Function.Periodic.cuspFunction_add + theorem Function.Periodic.cuspFunction_neg + theorem Function.Periodic.cuspFunction_smul + theorem Function.Periodic.cuspFunction_sub + theorem Function.Periodic.tendsto_nhds_zero Modified Mathlib/NumberTheory/ModularForms/QExpansion.lean +/- def ModularFormClass.qExpansion + theorem ModularFormClass.qExpansionFormalMultilinearSeries_coeff +/- theorem ModularFormClass.qExpansion_coeff + theorem cuspFunction_add + theorem cuspFunction_mul + theorem cuspFunction_mul_zero + theorem cuspFunction_neg + theorem cuspFunction_smul + theorem cuspFunction_sub + theorem hasFPowerSeriesOnBall_cuspFunction + def qExpansionAddHom + def qExpansionRingHom + theorem qExpansionRingHom_apply + theorem qExpansion_add + theorem qExpansion_coeff_unique + theorem qExpansion_eq_zero_iff + theorem qExpansion_mul + theorem qExpansion_mul_coeff_zero + theorem qExpansion_neg + theorem qExpansion_of_mul + theorem qExpansion_of_pow + theorem qExpansion_one + theorem qExpansion_smul + theorem qExpansion_sub + theorem qExpansion_zero 2026-02-16 13:40:06 3399b01 feat(Analysis/Convex/Between): betweenness from differences on the same ray (#33709) Add `wbtw_of_sameRay_vsub_left`, saying that if the vectors from a point x to points y and z lie on the same ray, then y is weakly between x and z, or z is weakly between x and y. ESTIMATED CHANGES Modified Mathlib/Analysis/Convex/Between.lean + theorem wbtw_total_of_sameRay_vsub_left 2026-02-16 13:28:24 7f35521 chore: link to mathlib4 docs page in library overview (#35129) This PR fixes a few dead links on the library overview page: we link to docgen pages for modules, rather than a specific declaration there. But those links still used the mathlib3 naming conventions; update to mathlib4. ESTIMATED CHANGES Modified docs/overview.yaml Modified docs/undergrad.yaml 2026-02-16 12:54:25 e433b7a ci: Relax cache upload gating to upload cache artifacts from non-success builds (#35390) Fixing an issue caught by @bryangingechen. We want to upload the build artifacts on failure also, so we run the cache job iff we had some artifacts to stage (and try to stage stuff whenever we had 'some' build) ESTIMATED CHANGES Modified .github/workflows/build_template.yml 2026-02-16 12:54:23 67e6c10 ci: Update the workflow so the chain doesn’t get skipped when upload_cache is skipped (#35389) Currently some PRs sent to `bors` have ended up failing (#35330, #34667) because the upload_cache step was skipped, causing the required Post-Build and Post-CI jobs to get skipped as well. This PR adjusts the conditionals to ensure that those steps still run even if the cache upload gets skipped. ESTIMATED CHANGES Modified .github/workflows/build_template.yml 2026-02-16 11:54:37 41228da chore(Order/Defs/Unbundled): deprecate `def Irreflexive` in favor of `class Std.Irrefl` (#35191) ESTIMATED CHANGES Modified Archive/Wiedijk100Theorems/Konigsberg.lean Modified Mathlib/Combinatorics/Digraph/Orientation.lean Modified Mathlib/Combinatorics/SimpleGraph/AdjMatrix.lean Modified Mathlib/Combinatorics/SimpleGraph/Basic.lean Modified Mathlib/Combinatorics/SimpleGraph/CompleteMultipartite.lean Modified Mathlib/Combinatorics/SimpleGraph/Finite.lean Modified Mathlib/Combinatorics/SimpleGraph/Hasse.lean Modified Mathlib/Combinatorics/SimpleGraph/Maps.lean Modified Mathlib/Combinatorics/SimpleGraph/Prod.lean Modified Mathlib/Combinatorics/SimpleGraph/Regularity/Uniform.lean Modified Mathlib/Combinatorics/SimpleGraph/Subgraph.lean Modified Mathlib/Combinatorics/SimpleGraph/Sum.lean Modified Mathlib/Combinatorics/SimpleGraph/Trails.lean Modified Mathlib/Combinatorics/SimpleGraph/Triangle/Tripartite.lean +/- def SimpleGraph.TripartiteFromTriangles.graph Modified Mathlib/Combinatorics/SimpleGraph/Walks/Basic.lean Modified Mathlib/Data/List/MinMax.lean +/- theorem List.argAux_self +/- theorem List.not_of_mem_foldl_argAux Modified Mathlib/Data/Sym/Sym2.lean + theorem Sym2.fromRel_irrefl - theorem Sym2.fromRel_irreflexive +/- theorem Sym2.mem_fromRel_irrefl_other_ne Modified Mathlib/Logic/Relation.lean + theorem irrefl_iff_subrelation_ne - theorem irreflexive_iff_subrelation_ne Modified Mathlib/ModelTheory/Graph.lean Modified Mathlib/ModelTheory/Semantics.lean +/- theorem FirstOrder.Language.Relations.realize_irreflexive Modified Mathlib/Order/Defs/Unbundled.lean + theorem InvImage.irrefl - theorem InvImage.irreflexive 2026-02-16 11:54:35 3c5d635 feat(Data/ENNReal/Basic): ∞ prettyprints as ∞ (#34953) Right now we are consistently using `∞` in our lemma statements about `ℝ≥0∞` and they are consistently being pretty-printed as `⊤`. This changes makes them prettyprint as `∞`. Note however that they are still being referred to as `⊤` in lemma names, which might make this change controversial. ESTIMATED CHANGES Modified Mathlib/Data/ENNReal/Basic.lean 2026-02-16 11:12:28 2967017 feat(Algebra/Group/End): use `to_additive` (#35179) This PR uses `to_additive` on some lemmas about the instance `Group (Perm α)`. This PR also exposes some technical debt in the form of `to_additive` being used where it should not. It also swaps the names of `AddAut.inv_apply_self` and `AddAut.apply_inv_self`, because they were the wrong way around. This PR revives my old PR #29145 ESTIMATED CHANGES Modified Mathlib/Algebra/Group/End.lean +/- theorem Equiv.Perm.AddAut.apply_inv_self +/- theorem Equiv.Perm.AddAut.inv_apply_self - def Equiv.Perm.MulAut - theorem Equiv.Perm.addLeft_add - theorem Equiv.Perm.addLeft_zero - theorem Equiv.Perm.addRight_add - theorem Equiv.Perm.addRight_zero - theorem Equiv.Perm.inv_addLeft - theorem Equiv.Perm.inv_addRight +/- theorem Equiv.Perm.inv_mulLeft +/- theorem Equiv.Perm.inv_mulRight +/- theorem Equiv.Perm.mulLeft_mul +/- theorem Equiv.Perm.mulLeft_one +/- theorem Equiv.Perm.mulRight_mul +/- theorem Equiv.Perm.mulRight_one - theorem Equiv.Perm.pow_addLeft - theorem Equiv.Perm.pow_addRight +/- theorem Equiv.Perm.pow_mulLeft +/- theorem Equiv.Perm.pow_mulRight - theorem Equiv.Perm.zpow_addLeft - theorem Equiv.Perm.zpow_addRight +/- theorem Equiv.Perm.zpow_mulLeft +/- theorem Equiv.Perm.zpow_mulRight Modified Mathlib/Data/ZMod/Aut.lean Modified Mathlib/GroupTheory/GroupAction/SubMulAction/OfFixingSubgroup.lean 2026-02-16 10:26:11 c1475f9 feat: improve mean value theorems of complex analysis (#35087) Implement improvements in the mean value theorems of complex analysis, as suggested by Mihai Iancu and Sebastian Schleißinger. - Remove unnecessary assumptions that can be deduced from the other assumptions. - Weaken and simplify assumptions, use `DiffContOnCl` now. ESTIMATED CHANGES Modified Mathlib/Analysis/Complex/Harmonic/MeanValue.lean Modified Mathlib/Analysis/Complex/MeanValue.lean + theorem DiffContOnCl.circleAverage + theorem DiffContOnCl.circleAverage_smul_div - theorem circleAverage_of_differentiable_on - theorem circleAverage_sub_sub_inv_smul_of_differentiable_on 2026-02-16 09:35:32 43d5379 feat(IsGaloisGroup): add `IsGaloisGroup.of_mulEquiv` (#35310) This PR adds the `IsGaloisGroup.of_mulEquiv` lemma stating that `IsGaloisGroup` is preserved under group isomorphisms. ESTIMATED CHANGES Modified Mathlib/FieldTheory/Galois/IsGaloisGroup.lean + theorem IsGaloisGroup.of_mulEquiv 2026-02-16 09:35:30 1ec6a7a fix: `#find_syntax` under the module system (#35248) Instead of using the value, we now use `evalConst` and inspect the resulting `ParserDescr`. ESTIMATED CHANGES Modified Mathlib/Tactic/FindSyntax.lean +/- def Mathlib.FindSyntax.extractSymbols - def Mathlib.FindSyntax.litToString Modified MathlibTest/FindSyntax.lean 2026-02-16 09:07:59 22f2cfd chore: remove deprecated `toMap` missed in #35335 (#35388) I mistakenly added this back in https://github.com/leanprover-community/mathlib4/pull/35335/changes/894135ca4666ad921d37ed6b0b2ce792a2e8c849 whereas I should have just deleted the `attribute` commands as well. ESTIMATED CHANGES Modified Mathlib/GroupTheory/MonoidLocalization/Basic.lean 2026-02-16 09:07:57 1762356 feat: generalize Submartingale.expected_stoppedValue_mono to processes taking values in an ordered module (#34770) I generalize the Submartingale.expected_stoppedValue_mono to processes taking values in a normed ordered module with a ClosedIciTopology. I think this generalization is meaningful because there are many nontrivial examples satisfying these hypothesis. e.g. ℝⁿ equipped with product ordering, Lp spaces. I also replaced the finiteness of measure in several theorems by the assumption that the the filtration is sigma finite. ESTIMATED CHANGES Modified Mathlib/Probability/Martingale/OptionalStopping.lean +/- theorem MeasureTheory.Submartingale.expected_stoppedValue_mono +/- theorem MeasureTheory.submartingale_iff_expected_stoppedValue_mono +/- theorem MeasureTheory.submartingale_of_expected_stoppedValue_mono 2026-02-16 09:07:56 c18ef68 feat(Probability): Add Cauchy distribution (#33860) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Probability/Distributions/Cauchy.lean + theorem Probability.cauchyMeasure_of_scale_ne_zero + theorem Probability.cauchyMeasure_zero_scale + theorem Probability.cauchyPDFReal_def' + theorem Probability.cauchyPDFReal_def + theorem Probability.cauchyPDFReal_scale_zero + theorem Probability.cauchyPDF_def + theorem Probability.cauchyPDF_pos + theorem Probability.cauchyPDF_scale_zero + theorem Probability.integrable_cauchyPDFReal + theorem Probability.integral_cauchyPDFReal + theorem Probability.lintegral_cauchyPDF_eq_one + theorem Probability.measurable_cauchyPDF + theorem Probability.measurable_cauchyPDFReal + theorem Probability.stronglyMeasurable_cauchyPDF + theorem Probability.stronglyMeasurable_cauchyPDFReal 2026-02-16 08:27:20 d048652 feat(GroupTheory): each term in a upper(lower) central series is a characteristic subgroup (#34890) The main lemma proved in this PR is `Subgroup.Characteristic.quotient`, which says that if `H` is a characteristic subgroup of `G`, and `K` is a characteristic subgroup of `G / H`, then the preimage of `K` under the projection map is a characteristic subgroup of `G`. As a corollary, I proved that each term in the upper central series is a characteristic subgroup. I deleted the instances related to normality as normality can be inferred from being characteristic. ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Subgroup/Basic.lean Modified Mathlib/GroupTheory/Nilpotent.lean +/- def upperCentralSeriesAux Modified Mathlib/GroupTheory/QuotientGroup/Basic.lean + theorem Subgroup.Characteristic.comap_quotient_mk 2026-02-16 07:36:01 4c9ff10 feat(NumberTheory/Height/Basic): add bounds for sums (#34330) The main purpose of this PR (no. 3 in the series on heights) is to state and prove bounds for the height of `x + y` and for the height of a finite sum of field elements. ESTIMATED CHANGES Modified Mathlib/Algebra/Order/BigOperators/GroupWithZero/Multiset.lean + theorem Multiset.one_le_prod_map + theorem Multiset.prod_map_nonneg Modified Mathlib/Algebra/Order/BigOperators/Ring/Finset.lean + theorem Finset.le_prod_max_one Modified Mathlib/NumberTheory/Height/Basic.lean + theorem Finset.max_abv_sum_one_le + theorem Finset.max_abv_sum_one_le_of_isNonarchimedean + theorem Height.logHeight₁_add_le + theorem Height.logHeight₁_neg + theorem Height.logHeight₁_sub_le + theorem Height.logHeight₁_sum_le + theorem Height.mulHeight₁_add_le + theorem Height.mulHeight₁_neg + theorem Height.mulHeight₁_sub_le + theorem Height.mulHeight₁_sum_le +/- theorem Height.one_le_mulHeight₁ 2026-02-16 01:26:14 3bbc5c7 chore: explicit field names for `Concept.copy` (#35276) Inspired by #34143, I take it that this is preferred style. ESTIMATED CHANGES Modified Mathlib/Order/Concept.lean 2026-02-16 01:26:12 f0dd6ff ci: Change actionlint fail level from `error` to `any` (#35265) I think we want to keep actionlint silent on our workflows, so we should fail also on `warning` and `info` messages. ESTIMATED CHANGES Modified .github/workflows/actionlint.yml 2026-02-16 01:14:00 d890333 feat: extent/intent theorems for indexed suprema/infima (#35275) ESTIMATED CHANGES Modified Mathlib/Order/Concept.lean + theorem Concept.extent_iInf + theorem Concept.extent_iSup + theorem Concept.intent_iInf + theorem Concept.intent_iSup 2026-02-16 01:13:59 166e5da perf(Cache): skip decompression for already-unpacked files (#34667) This PR adds pre-filtering to `lake exe cache get`: before calling leantar, we check if each module's trace file exists and has a matching Lake depHash. Modules that are already correctly unpacked are skipped entirely. **Performance (tested on Mac Studio with SSD, ~7900 cached files):** | Scenario | Before | After | |----------|--------|-------| | All files already unpacked | ~25s | ~5s | | Partial decompression needed | ~25s | ~5s + decompression time | **Timing breakdown (after this PR):** - Hash computation: ~2.8s - Filter to existing ltar files: ~0.06s - Read ltar headers + trace files, compare hashes: ~2.5s - leantar (if needed): 0s when all files match **What changed:** Before calling leantar, we now read the Lake depHash from each ltar file header (first 12 bytes) and compare with the trace file's `depHash` field. Files with matching hashes are filtered out. Note: The mathlib cache hash (ltar filename) is different from the Lake depHash (stored in ltar header and trace file). This PR compares the Lake depHashes, which is what leantar uses internally. Fixes https://leanprover.zulipchat.com/#narrow/channel/536994-ecosystem-infrastructure/topic/lake.20exe.20cache.20get.20always.20decompresses 🤖 Prepared with Claude Code ESTIMATED CHANGES Modified Cache/IO.lean + def Cache.IO.ModuleHashMap.filterNeedsDecompression + def Cache.IO.getTracePath + def Cache.IO.needsDecompression + def Cache.IO.readLtarHash + def Cache.IO.readTraceHash Modified Cache/Lean.lean + def Char.hexDigitToNat? + def String.parseHexToUInt64? 2026-02-15 22:34:17 854dbeb feat(AlgebraicGeometry): schemes are universally open over fields (#35383) ESTIMATED CHANGES Modified Mathlib/AlgebraicGeometry/Geometrically/Irreducible.lean Modified Mathlib/AlgebraicGeometry/Morphisms/UniversallyOpen.lean Modified Mathlib/RingTheory/Spectrum/Prime/Chevalley.lean + theorem PrimeSpectrum.isOpenMap_comap_algebraMap_tensorProduct_of_field 2026-02-15 21:55:12 330d0ae feat(AlgebraicGeometry): corollaries of Zariski's main theorem (#35232) We prove that if `f : X ⟶ Y` is proper and `f⁻¹(y)` is finite, then `f` is a finite morphism at some neighborhood of `y`. ESTIMATED CHANGES Modified Mathlib/AlgebraicGeometry/Morphisms/Proper.lean Modified Mathlib/AlgebraicGeometry/Morphisms/QuasiFinite.lean + theorem AlgebraicGeometry.LocallyQuasiFinite.comp_iff + theorem AlgebraicGeometry.Scheme.Hom.quasiFiniteAt_comp_iff + theorem AlgebraicGeometry.Scheme.Hom.quasiFiniteAt_comp_iff_of_isOpenImmersion + theorem AlgebraicGeometry.Scheme.Hom.quasiFiniteAt_iff Modified Mathlib/AlgebraicGeometry/ZariskisMainTheorem.lean +/- theorem AlgebraicGeometry.Scheme.Hom.isOpen_quasiFiniteAt +/- theorem AlgebraicGeometry.Scheme.Hom.mem_quasiFiniteLocus +/- def AlgebraicGeometry.Scheme.Hom.quasiFiniteLocus + theorem AlgebraicGeometry.Scheme.Hom.quasiFiniteLocus_comp +/- theorem AlgebraicGeometry.Scheme.Hom.quasiFiniteLocus_eq_top + theorem AlgebraicGeometry.Scheme.Hom.quasiFiniteLocus_eq_top_iff + theorem AlgebraicGeometry.exists_finite_imageι_comp_morphismRestrict_of_finite_image_preimage + theorem AlgebraicGeometry.exists_isFinite_morphismRestrict_of_finite_preimage_singleton Modified Mathlib/RingTheory/QuasiFinite/Basic.lean + theorem Algebra.QuasiFiniteAt.of_isOpen_singleton Modified Mathlib/RingTheory/QuasiFinite/Weakly.lean + theorem Algebra.WeaklyQuasiFiniteAt.of_quasiFiniteAt_residueField Modified Mathlib/RingTheory/RingHom/QuasiFinite.lean + theorem RingHom.QuasiFinite.comp_iff Modified Mathlib/RingTheory/ZariskisMainTheorem.lean + theorem Algebra.QuasiFiniteAt.of_isOpen_singleton_fiber + theorem Algebra.QuasiFiniteAt.of_quasiFiniteAt_residueField + theorem Algebra.quasiFiniteAt_iff_isOpen_singleton_fiber 2026-02-15 21:11:46 251688d chore: update Mathlib dependencies 2026-02-15 (#35380) This PR updates the Mathlib dependencies. ESTIMATED CHANGES Modified lake-manifest.json 2026-02-15 20:34:57 33c03d9 doc(Analysis/SpecialFunctions/Log): fix typos (#35379) ESTIMATED CHANGES Modified Mathlib/Analysis/SpecialFunctions/Log/Base.lean Modified Mathlib/Analysis/SpecialFunctions/Log/ENNRealLogExp.lean Modified Mathlib/Analysis/SpecialFunctions/Log/RpowTendsto.lean Modified Mathlib/Analysis/SpecialFunctions/Log/Summable.lean 2026-02-15 19:50:18 74f4536 chore: golf using `grind` (#33467) To facilitate this, add a few `grind` annotations. The goal of this golfing PR is to decrease the number of times lemmas are called explicitly (replacing calls to lemmas with calls to tactics). Any decrease in compilation time is a welcome side effect, although it is not a primary objective. Trace profiling results (shown if ≥10 ms before or after): * `CategoryTheory.Limits.Pi.ι_π`: <10 ms before, 40 ms after * `CategoryTheory.Limits.Sigma.ι_π`: <10 ms before, 39 ms after * `Stream'.Seq.head_eq_none_iff`: <10 ms before, 87 ms after * `Part.mem_ωSup`: 37 ms before, <10 ms after 🎉 This golfing PR is batched under the following guidelines: * Up to ~5 changed files per PR * Up to ~25 changed declarations per PR * Up to ~100 changed lines per PR ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Limits/Shapes/ZeroMorphisms.lean Modified Mathlib/Order/OmegaCompletePartialOrder.lean 2026-02-15 18:38:15 686de2e feat(AlgebraicGeometry): geometrically integral schemes (#35353) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/AlgebraicGeometry/Artinian.lean Modified Mathlib/AlgebraicGeometry/Geometrically/Basic.lean + theorem AlgebraicGeometry.geometrically_inf Added Mathlib/AlgebraicGeometry/Geometrically/Integral.lean + theorem AlgebraicGeometry.GeometricallyIntegral.eq_geometrically + theorem AlgebraicGeometry.GeometricallyIntegral.eq_geometricallyReduced_inf_geometricallyIrreducible + theorem AlgebraicGeometry.GeometricallyIntegral.iff_geometricallyIntegral_fiber + theorem AlgebraicGeometry.GeometricallyIntegral.isIntegral_of_isLocallyNoetherian + theorem AlgebraicGeometry.GeometricallyIntegral.isIntegral_of_subsingleton + theorem AlgebraicGeometry.GeometricallyIntegral.of_geometricallyReduced_of_geometricallyIrreducible Modified Mathlib/AlgebraicGeometry/Morphisms/Flat.lean Modified Mathlib/RingTheory/RingHom/Flat.lean + theorem RingHom.Flat.of_isField 2026-02-15 18:15:28 76621bb feat: closed subgroup of profinite group is intersection of open subgroups containing it (#34785) ESTIMATED CHANGES Modified Mathlib/Topology/Algebra/ClopenNhdofOne.lean + theorem ProfiniteGrp.closedSubgroup_eq_sInf_open +/- theorem ProfiniteGrp.exist_openNormalSubgroup_sub_open_nhds_of_one 2026-02-15 17:57:16 d2bb277 feat: a convex lower-semicontinuous function is the supremum of a sequence of affine functions in a separable space (#31411) In this PR we show that a convex lower-semicontinuous function is the upper envelope of a family of continuous affine linear functions. We further prove that it is the upper envelope of countably many affine functions if the underlying space is Hereditarily Lindelof. Special thanks to @ADedecker for pointing out Bourbaki’s proof, which greatly simplified my code, and to @RemyDegenne for his prompt reviews and helpful comments. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/Convex/Approximation.lean + theorem ConvexOn.convex_re_epigraph + theorem ConvexOn.exists_affine_le_of_lt + theorem ConvexOn.real_sSup_affine_eq + theorem ConvexOn.real_sSup_of_countable_affine_eq + theorem ConvexOn.real_sSup_of_nat_affine_eq + theorem ConvexOn.real_univ_sSup_affine_eq + theorem ConvexOn.real_univ_sSup_of_countable_affine_eq + theorem ConvexOn.real_univ_sSup_of_nat_affine_eq + theorem ConvexOn.sSup_affine_eq + theorem ConvexOn.sSup_of_countable_affine_eq + theorem ConvexOn.sSup_of_nat_affine_eq + theorem ConvexOn.univ_sSup_affine_eq + theorem ConvexOn.univ_sSup_of_countable_affine_eq + theorem ConvexOn.univ_sSup_of_nat_affine_eq + theorem LowerSemicontinuousOn.isClosed_re_epigraph Modified Mathlib/Analysis/LocallyConvex/Separation.lean Modified Mathlib/Topology/Semicontinuity/Lindelof.lean 2026-02-15 17:22:48 7314c8e feat(CategoryTheory/Sites): criteria for `IsOneHypercoverDense` (#35240) Assume `F : C₀ ⥤ C` is a fully faithful functor which gives a dense subsite `(C₀, J₀)` in `(C, J)`. Assume that `C` has pullbacks and that any object in `C` admits a `w`-small covering family consisting of objects in `C₀`. Then, `F` is `1`-hypercover dense. (This will apply to the inclusion of the small affine étale site in the small site of a scheme, and it will be used in order to obtain the existence of the sheafification of étale presheaves with no universe bump.) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Sites/DenseSubsite/OneHypercoverDense.lean + theorem CategoryTheory.Functor.IsOneHypercoverDense.of_hasPullbacks 2026-02-15 16:35:54 0f34c95 feat(List): permutations preserve maximum (#35135) and minimum. ESTIMATED CHANGES Modified Mathlib/Data/List/MinMax.lean + theorem List.Perm.maximum_eq + theorem List.Perm.minimum_eq 2026-02-15 14:33:50 2b9cd2f style: fix many leading by's in mathlib (#35343) Per the style guide, these should go on the preceding line. Inspired by #22727, and then searching for `:=\n\s*by ` in mathlib. ESTIMATED CHANGES Modified Mathlib/Algebra/FreeMonoid/Count.lean Modified Mathlib/Algebra/Group/Int/Defs.lean Modified Mathlib/Algebra/Group/Invertible/Basic.lean Modified Mathlib/Algebra/Group/Submonoid/Operations.lean Modified Mathlib/Algebra/Homology/Embedding/TruncGEHomology.lean Modified Mathlib/Algebra/Homology/Embedding/TruncLEHomology.lean Modified Mathlib/Algebra/Module/LocalizedModule/Submodule.lean Modified Mathlib/Algebra/Module/Presentation/Free.lean Modified Mathlib/Algebra/MvPolynomial/Basic.lean +/- theorem MvPolynomial.notMem_support_iff Modified Mathlib/Algebra/Order/CauSeq/Completion.lean +/- theorem CauSeq.Completion.cau_seq_zero_ne_one Modified Mathlib/Algebra/Order/GroupWithZero/Canonical.lean +/- theorem denselyOrdered_units_iff Modified Mathlib/Analysis/Calculus/Deriv/MeanValue.lean Modified Mathlib/Analysis/Calculus/FDeriv/Mul.lean Modified Mathlib/Analysis/Calculus/IteratedDeriv/Lemmas.lean Modified Mathlib/Analysis/Complex/Basic.lean +/- theorem Complex.ball_one_subset_slitPlane Modified Mathlib/Analysis/Seminorm.lean Modified Mathlib/CategoryTheory/Adjunction/Mates.lean Modified Mathlib/CategoryTheory/Join/Basic.lean Modified Mathlib/CategoryTheory/Limits/Preserves/Shapes/Products.lean Modified Mathlib/CategoryTheory/Limits/Types/Multicoequalizer.lean Modified Mathlib/CategoryTheory/Monoidal/Cartesian/Grp_.lean +/- theorem CategoryTheory.Grp.Hom.hom_hom_zpow Modified Mathlib/CategoryTheory/Topos/Classifier.lean Modified Mathlib/Combinatorics/Matroid/Circuit.lean Modified Mathlib/Combinatorics/Matroid/Loop.lean +/- theorem Matroid.IsLoop.dual_isColoop +/- theorem Matroid.isLoop_of_not_isNonloop Modified Mathlib/Computability/NFA.lean Modified Mathlib/Data/Finset/Grade.lean +/- theorem Finset.empty_covBy_singleton Modified Mathlib/Data/Finsupp/Single.lean Modified Mathlib/GroupTheory/Perm/Fin.lean Modified Mathlib/MeasureTheory/Integral/RieszMarkovKakutani/Real.lean Modified Mathlib/MeasureTheory/Measure/Haar/Unique.lean Modified Mathlib/NumberTheory/ModularForms/ArithmeticSubgroups.lean +/- theorem Subgroup.negOne_mem_adjoinNegOne Modified Mathlib/Order/RelSeries.lean +/- theorem RelSeries.toList_singleton Modified Mathlib/RingTheory/TwoSidedIdeal/Operations.lean +/- theorem Ideal.toTwoSided_asIdeal Modified Mathlib/Topology/Algebra/InfiniteSum/Defs.lean Modified Mathlib/Topology/OpenPartialHomeomorph/IsImage.lean +/- theorem OpenPartialHomeomorph.ofSet_univ_eq_refl Modified Mathlib/Topology/Sets/OpenCover.lean +/- theorem TopologicalSpace.IsOpenCover.comap Modified MathlibTest/Use.lean 2026-02-15 14:33:48 1d77eae chore: remove declarations deprecated between 2021-02-15 and 2025-08-15 (#35335) I am happy to remove some deprecated declarations for you! Please check if there are any remaining stray comments or other issues before merging. ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/Defs.lean - theorem Algebra.id.map_eq_id - theorem Algebra.id.map_eq_self Modified Mathlib/Algebra/Colimit/Module.lean - theorem AddCommGroup.DirectLimit.lift_unique - theorem Module.DirectLimit.lift_unique Modified Mathlib/Algebra/Colimit/Ring.lean - theorem Ring.DirectLimit.lift_unique Modified Mathlib/Algebra/Group/Equiv/Basic.lean - def MonoidHom.postcompEquiv - def MonoidHom.precompEquiv - def MulEquiv.monoidHomCongr Modified Mathlib/Algebra/Group/Subgroup/ZPowers/Basic.lean Modified Mathlib/Algebra/Group/Submonoid/Membership.lean Modified Mathlib/Algebra/Group/Support.lean Modified Mathlib/Algebra/GroupWithZero/NonZeroDivisors.lean Modified Mathlib/Algebra/Module/ZLattice/Basic.lean Modified Mathlib/Algebra/Module/ZLattice/Covolume.lean Modified Mathlib/Algebra/Notation/Support.lean Modified Mathlib/Algebra/Order/Group/Abs.lean Modified Mathlib/Algebra/Order/Ring/Unbundled/Rat.lean Modified Mathlib/Algebra/Polynomial/Degree/Lemmas.lean Modified Mathlib/Algebra/Polynomial/Monic.lean Modified Mathlib/Algebra/Regular/SMul.lean Modified Mathlib/Algebra/Ring/NonZeroDivisors.lean Modified Mathlib/Algebra/Ring/Subsemiring/Defs.lean Modified Mathlib/AlgebraicGeometry/IdealSheaf/Basic.lean Modified Mathlib/Analysis/Calculus/Deriv/Pow.lean - theorem deriv_fun_pow'' - theorem deriv_pow'' Modified Mathlib/Analysis/Calculus/FDeriv/Basic.lean - theorem HasFDerivAtFilter.isBigO_sub_rev - theorem HasStrictFDerivAt.isBigO_sub_rev Modified Mathlib/Analysis/Convex/Hull.lean Modified Mathlib/Analysis/InnerProductSpace/Projection/Basic.lean - theorem Submodule.eq_starProjection_of_eq_submodule Modified Mathlib/Analysis/InnerProductSpace/Projection/Submodule.lean Modified Mathlib/Analysis/LocallyConvex/Polar.lean Modified Mathlib/Analysis/Matrix/Order.lean Modified Mathlib/Analysis/Matrix/Spectrum.lean Modified Mathlib/Analysis/Meromorphic/NormalForm.lean Modified Mathlib/Analysis/Normed/Module/WeakDual.lean Modified Mathlib/Analysis/Normed/Ring/Basic.lean Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Basic.lean Modified Mathlib/CategoryTheory/Enriched/Basic.lean Modified Mathlib/CategoryTheory/Functor/EpiMono.lean Modified Mathlib/CategoryTheory/Functor/KanExtension/Adjunction.lean Modified Mathlib/CategoryTheory/Sites/Localization.lean Modified Mathlib/CategoryTheory/Triangulated/HomologicalFunctor.lean Modified Mathlib/CategoryTheory/Triangulated/Subcategory.lean Modified Mathlib/CategoryTheory/Yoneda.lean Modified Mathlib/Data/EReal/Operations.lean Modified Mathlib/Data/Finset/Basic.lean Modified Mathlib/Data/Finset/Card.lean Modified Mathlib/Data/Finset/Dedup.lean Modified Mathlib/Data/List/Basic.lean - theorem List.head_cons_tail Modified Mathlib/Data/List/Chain.lean Modified Mathlib/Data/Matrix/Basis.lean Modified Mathlib/Data/Matrix/Mul.lean - theorem Matrix.mulVec_smul_assoc Modified Mathlib/Data/Nat/Digits/Defs.lean Modified Mathlib/Data/Nat/Factorization/PrimePow.lean - theorem IsPrimePow.factorization_minFac_ne_zero Modified Mathlib/Data/Nat/Init.lean Modified Mathlib/Data/Rat/Cast/CharZero.lean Modified Mathlib/Data/Set/Image.lean - theorem Set.image_subset Modified Mathlib/Data/TypeVec.lean Modified Mathlib/Data/ZMod/Basic.lean - theorem ZMod.eq_iff_modEq_nat Modified Mathlib/FieldTheory/Minpoly/IsIntegrallyClosed.lean Modified Mathlib/Geometry/Manifold/IntegralCurve/Basic.lean Modified Mathlib/Geometry/Manifold/IntegralCurve/ExistUnique.lean Modified Mathlib/Geometry/Manifold/IntegralCurve/Transform.lean Modified Mathlib/Geometry/Manifold/IntegralCurve/UniformTime.lean Modified Mathlib/GroupTheory/Abelianization/Defs.lean Modified Mathlib/GroupTheory/FreeAbelianGroup.lean - theorem FreeAbelianGroup.lift.map_hom Modified Mathlib/GroupTheory/GroupAction/Blocks.lean Modified Mathlib/GroupTheory/GroupAction/SubMulAction/Pointwise.lean Modified Mathlib/GroupTheory/Index.lean Modified Mathlib/GroupTheory/MonoidLocalization/Basic.lean Modified Mathlib/GroupTheory/MonoidLocalization/MonoidWithZero.lean Modified Mathlib/LinearAlgebra/AffineSpace/AffineSubspace/Defs.lean Modified Mathlib/LinearAlgebra/FreeModule/Basic.lean Modified Mathlib/LinearAlgebra/FreeModule/Finite/CardQuotient.lean Modified Mathlib/LinearAlgebra/Matrix/Charpoly/Coeff.lean Modified Mathlib/LinearAlgebra/Matrix/Hermitian.lean Modified Mathlib/LinearAlgebra/Matrix/Ideal.lean Modified Mathlib/LinearAlgebra/Projection.lean Modified Mathlib/MeasureTheory/Function/L1Space/HasFiniteIntegral.lean Modified Mathlib/MeasureTheory/Function/SimpleFunc.lean - theorem MeasureTheory.SimpleFunc.eapprox_mono Modified Mathlib/MeasureTheory/Group/MeasurableEquiv.lean Modified Mathlib/MeasureTheory/Integral/IntegrableOn.lean Modified Mathlib/MeasureTheory/Integral/RieszMarkovKakutani/Basic.lean - theorem CompactlySupportedContinuousMap.monotone_of_nonneg Modified Mathlib/MeasureTheory/Measure/DiracProba.lean Modified Mathlib/MeasureTheory/Measure/Haar/InnerProductSpace.lean Modified Mathlib/NumberTheory/DirichletCharacter/Basic.lean Modified Mathlib/NumberTheory/ModularForms/SlashInvariantForms.lean Modified Mathlib/NumberTheory/NumberField/CanonicalEmbedding/NormLeOne.lean Modified Mathlib/NumberTheory/Padics/PadicIntegers.lean Modified Mathlib/NumberTheory/Padics/PadicNumbers.lean Modified Mathlib/NumberTheory/SelbergSieve.lean Modified Mathlib/Order/Basic.lean Modified Mathlib/Order/Monotone/Basic.lean Modified Mathlib/Order/OrderIsoNat.lean Modified Mathlib/Order/WellFounded.lean Modified Mathlib/Probability/Independence/Integration.lean Modified Mathlib/Probability/Kernel/Invariance.lean - theorem ProbabilityTheory.Kernel.comp_const_apply_eq_bind - theorem ProbabilityTheory.Kernel.const_bind_eq_comp_const Modified Mathlib/Probability/Moments/CovarianceBilinDual.lean Modified Mathlib/Probability/Moments/Variance.lean Modified Mathlib/RepresentationTheory/Homological/GroupCohomology/Functoriality.lean Modified Mathlib/RingTheory/AdjoinRoot.lean Modified Mathlib/RingTheory/FiniteType.lean Modified Mathlib/RingTheory/HahnSeries/Multiplication.lean Modified Mathlib/RingTheory/Ideal/AssociatedPrime/Localization.lean Modified Mathlib/RingTheory/Ideal/IsPrimary.lean Modified Mathlib/RingTheory/IsAdjoinRoot.lean - theorem AdjoinRoot.isAdjoinRootMonic_map_eq_mk - theorem AdjoinRoot.isAdjoinRootMonic_root_eq_root Modified Mathlib/RingTheory/Localization/AtPrime/Basic.lean Modified Mathlib/RingTheory/Localization/Defs.lean Modified Mathlib/RingTheory/Polynomial/Basic.lean - theorem MvPolynomial.noZeroDivisors_fin - theorem MvPolynomial.noZeroDivisors_of_finite Modified Mathlib/RingTheory/Regular/IsSMulRegular.lean Modified Mathlib/RingTheory/Valuation/ValuativeRel/Basic.lean - theorem ValuativeRel.vle_mul_left Modified Mathlib/Topology/Algebra/ContinuousAffineEquiv.lean Modified Mathlib/Topology/Algebra/Module/LinearMap.lean Modified Mathlib/Topology/Algebra/Module/StrongTopology.lean Modified Mathlib/Topology/Algebra/Support.lean Modified Mathlib/Topology/Algebra/Valued/ValuativeRel.lean Modified Mathlib/Topology/Compactification/StoneCech.lean Modified Mathlib/Topology/ContinuousMap/CompactlySupported.lean - theorem CompactlySupportedContinuousMap.toRealLinear_nonneg Modified Mathlib/Topology/Instances/AddCircle/Defs.lean - theorem AddCircle.addOrderOf_coe_eq_zero_iff_forall_rat_ne_div Modified Mathlib/Topology/MetricSpace/Isometry.lean Modified Mathlib/Topology/UnitInterval.lean Modified docs/overview.yaml 2026-02-15 14:33:46 cf6c6cb chore(CategoryTheory/Sites): generalize universes for `Sieve.functor` (#35188) Add `Sieve.uliftFunctor`, which is a variant of `Sieve.functor` with a lift in the universe level of the goal. Add variants of existing lemmas accordingly. Also modify the simp lemmas of `uliftYoneda` to more useful ones. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Functor/KanExtension/Dense.lean Modified Mathlib/CategoryTheory/Sites/Sieves.lean + def CategoryTheory.Sieve.sieveOfUliftSubfunctor + theorem CategoryTheory.Sieve.sieveOfUliftSubfunctor_uliftFunctorInclusion + def CategoryTheory.Sieve.toUliftFunctor + def CategoryTheory.Sieve.uliftFunctorInclusion + def CategoryTheory.Sieve.uliftNatTransOfLe + theorem CategoryTheory.Sieve.uliftNatTransOfLe_comm Modified Mathlib/CategoryTheory/Yoneda.lean + theorem CategoryTheory.uliftYoneda_map_app_down + theorem CategoryTheory.uliftYoneda_obj_map_down 2026-02-15 14:33:43 d471def feat(CategoryTheory): definition of the Cech cohomology of a presheaf (#35026) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Limits/FormalCoproducts/Cech.lean + theorem CategoryTheory.Limits.FormalCoproduct.mapPower_comp + theorem CategoryTheory.Limits.FormalCoproduct.mapPower_id + theorem CategoryTheory.Limits.FormalCoproduct.mapPower_powerMap + theorem CategoryTheory.Limits.FormalCoproduct.powerMap_comp + theorem CategoryTheory.Limits.FormalCoproduct.powerMap_id Added Mathlib/CategoryTheory/Sites/SheafCohomology/Cech.lean 2026-02-15 14:33:41 c429693 chore: rename "Punit" to "PUnit" in definitions (#34972) The previous names were simply wrong. Reported on zulip. ESTIMATED CHANGES Modified Mathlib/AlgebraicGeometry/Limits.lean Modified Mathlib/CategoryTheory/Action/Basic.lean + def Action.actionPUnitEquivalence - def Action.actionPunitEquivalence Modified Mathlib/CategoryTheory/Extensive.lean Modified Mathlib/CategoryTheory/Limits/Sifted.lean Modified Mathlib/CategoryTheory/Limits/Types/Products.lean Modified Mathlib/Order/InitialSeg.lean Modified Mathlib/RingTheory/FreeCommRing.lean + def freeCommRingPUnitEquivPolynomialInt - def freeCommRingPunitEquivPolynomialInt + def freeRingPUnitEquivPolynomialInt - def freeRingPunitEquivPolynomialInt Modified Mathlib/Topology/UniformSpace/Equiv.lean + def UniformEquiv.prodPUnit - def UniformEquiv.prodPunit 2026-02-15 14:33:39 e5d07fc feat(LinearAlgebra/AffineSpace/Independent): Add affineCombination_eq_lineMap_iff_weight_lineMap (#33852) ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/AffineSpace/Independent.lean + theorem AffineIndependent.affineCombination_eq_iff_eq + theorem AffineIndependent.affineCombination_eq_lineMap_iff_weight_lineMap 2026-02-15 13:39:45 99884c2 feat(List): an infix of a `nodup` list is `nodup` (#35311) and similarly to prefix and suffix. ESTIMATED CHANGES Modified Mathlib/Data/List/Infix.lean 2026-02-15 13:39:44 2447838 feat(CategoryTheory/Limits): terminal object in functor categories (#35140) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Limits/FunctorCategory/Shapes/Terminal.lean + def CategoryTheory.Functor.isInitial + def CategoryTheory.Functor.isTerminal 2026-02-15 13:39:42 0e2450f feat(LinearAlgebra/AffineSpace): more lemma about simplex face and interior (#34858) Some intermediate lemma towards #34826 ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/AffineSpace/Simplex/Basic.lean + theorem Affine.Simplex.affineSpan_faceOpposite_le + theorem Affine.Simplex.affineSpan_face_le + theorem Affine.Simplex.closedInterior_map + theorem Affine.Simplex.closedInterior_restrict + theorem Affine.Simplex.faceOpposite_restrict + theorem Affine.Simplex.face_restrict + theorem Affine.Simplex.interior_map + theorem Affine.Simplex.interior_restrict + theorem Affine.Simplex.points_mem_affineSpan_face + theorem Affine.Simplex.points_mem_affineSpan_faceOpposite + theorem Affine.Simplex.points_notMem_affineSpan_faceOpposite + theorem Affine.Simplex.setInterior_map + theorem Affine.Simplex.setInterior_restrict 2026-02-15 13:39:41 879eb2b feat(Geometry/Convex/Cone): define and characterize simplicial pointed cones (#32355) Define simplicial pointed cones. Prove three lemmas about simplicial and generating simplicial cones. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Geometry/Convex/Cone/Simplicial.lean + def PointedCone.IsSimplicial 2026-02-15 13:39:39 63f4fac feat(Algebra/Group/Units/Hom): add map lemmas (#25993) This PR continues the work from #25609. Original PR: https://github.com/leanprover-community/mathlib4/pull/25609 ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Units/Basic.lean + theorem Units.val_inv_inj Modified Mathlib/Algebra/Group/Units/Hom.lean + theorem IsUnit.unit_inv_map + theorem IsUnit.unit_map + theorem Units.map_bijective +/- theorem Units.map_injective +/- theorem Units.map_mk 2026-02-15 13:24:20 c786d2b feat(AlgebraicGeometry): geometrically reduced schemes (#35314) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/AlgebraicGeometry/FunctionField.lean Added Mathlib/AlgebraicGeometry/Geometrically/Reduced.lean + theorem AlgebraicGeometry.GeometricallyReduced.eq_geometrically + theorem AlgebraicGeometry.GeometricallyReduced.isReduced_of_flat_of_finite_irreducibleComponents + theorem AlgebraicGeometry.GeometricallyReduced.isReduced_of_flat_of_isLocallyNoetherian Added Mathlib/AlgebraicGeometry/Morphisms/SchemeTheoreticallyDominant.lean + theorem AlgebraicGeometry.IsSchemeTheoreticallyDominant.isReduced + theorem AlgebraicGeometry.IsSchemeTheoreticallyDominant.of_isDominant + theorem AlgebraicGeometry.IsSchemeTheoreticallyDominant.of_isPullback + theorem AlgebraicGeometry.Scheme.Hom.app_injective + theorem AlgebraicGeometry.isSchemeTheoreticallyDominant_iff_isDominant Modified Mathlib/AlgebraicGeometry/Properties.lean + theorem AlgebraicGeometry.isField_stalk_of_closure_mem_irreducibleComponents Modified Mathlib/RingTheory/KrullDimension/Zero.lean + theorem PrimeSpectrum.subsingleton_iff_isField_of_isReduced Modified Mathlib/RingTheory/RingHom/Flat.lean + theorem CommRingCat.inl_injective_of_flat + theorem CommRingCat.inr_injective_of_flat 2026-02-15 11:14:26 946b120 feat(to_additive): automatically infer `relevant_arg` (#35318) This PR implements a better heuristic in `to_additive` for figuring out the `(relevant_arg := ...)` option. After this PR, there is only one place where the option needs to be provided manually: the definition of `MonoidAlgebra`. A future PR may do a similar change, but for the `dont_translate` option. ESTIMATED CHANGES Modified Mathlib/Algebra/Category/Grp/Limits.lean Modified Mathlib/Algebra/Category/MonCat/Limits.lean Modified Mathlib/Algebra/MonoidAlgebra/Defs.lean Modified Mathlib/Algebra/MonoidAlgebra/MapDomain.lean Modified Mathlib/Algebra/MonoidAlgebra/Module.lean Modified Mathlib/Algebra/MonoidAlgebra/NoZeroDivisors.lean Modified Mathlib/RingTheory/Bialgebra/MonoidAlgebra.lean Modified Mathlib/RingTheory/Coalgebra/MonoidAlgebra.lean Modified Mathlib/RingTheory/HopfAlgebra/MonoidAlgebra.lean Modified Mathlib/RingTheory/TensorProduct/MonoidAlgebra.lean Modified Mathlib/Tactic/Translate/Core.lean + inductive Mathlib.Tactic.Translate.RelevantArg + def Mathlib.Tactic.Translate.ReplacementM.run - def Mathlib.Tactic.Translate.changeNumeral - def Mathlib.Tactic.Translate.findRelevantArg +/- def Mathlib.Tactic.Translate.findTargetName + def Mathlib.Tactic.Translate.getRelevantArg +/- def Mathlib.Tactic.Translate.proceedFields +/- def Mathlib.Tactic.Translate.proceedFieldsAux - def Mathlib.Tactic.Translate.shouldTranslate Modified Mathlib/Tactic/Translate/TagUnfoldBoundary.lean Modified MathlibTest/toAdditive.lean - structure AddMonoidAlgebra' + structure AddMonoidAlgebra - structure MonoidAlgebra' + structure MonoidAlgebra + def monoidAlgebraFoo + def monoidAlgebraFoo₁ + def monoidAlgebraFoo₂ 2026-02-15 10:52:57 cbbc48f chore(AlgebraicTopology): fix markdown list indentation (#35322) ESTIMATED CHANGES Modified Mathlib/AlgebraicTopology/DoldKan/Compatibility.lean Modified Mathlib/AlgebraicTopology/ExtraDegeneracy.lean Modified Mathlib/AlgebraicTopology/SimplicialSet/AnodyneExtensions/Pairing.lean Modified Mathlib/AlgebraicTopology/SimplicialSet/CompStruct.lean Modified Mathlib/AlgebraicTopology/SimplicialSet/CompStructTruncated.lean Modified Mathlib/AlgebraicTopology/SimplicialSet/HornColimits.lean Modified Mathlib/AlgebraicTopology/SimplicialSet/Op.lean Modified Mathlib/AlgebraicTopology/SimplicialSet/Simplices.lean Modified Mathlib/AlgebraicTopology/SimplicialSet/Skeleton.lean 2026-02-15 10:52:55 50b996b feat(AlgebraicGeometry): tilde is quasi-coherent (#35245) This contribution was created as part of the Heidelberg Lean workshop "Formalising algebraic geometry" in November 2025. ESTIMATED CHANGES Modified Mathlib/Algebra/Category/ModuleCat/Colimits.lean + def ModuleCat.finsuppCocone + def ModuleCat.finsuppCoconeIsColimit Modified Mathlib/Algebra/Category/ModuleCat/Kernels.lean + def ModuleCat.isColimitCokernelCofork + def ModuleCat.isLimitKernelFork Modified Mathlib/AlgebraicGeometry/Modules/Tilde.lean + theorem AlgebraicGeometry.isIso_fromTildeΓ_iff + def AlgebraicGeometry.presentationTilde + theorem AlgebraicGeometry.tilde.map_add + theorem AlgebraicGeometry.tilde.map_neg + theorem AlgebraicGeometry.tilde.map_sub + theorem AlgebraicGeometry.tilde.map_zero + def AlgebraicGeometry.tildeFinsupp + def AlgebraicGeometry.tildeSelf Modified Mathlib/CategoryTheory/Limits/Shapes/Kernels.lean + def CategoryTheory.Limits.IsCokernel.ofIso + def CategoryTheory.Limits.IsKernel.ofIso 2026-02-15 10:19:23 b1f3952 chore: golf proofs (#35334) The goal of this golfing PR is to decrease the number of times lemmas are called explicitly (replacing calls to lemmas with calls to tactics). Any decrease in compilation time is a welcome side effect, although it is not a primary objective. Trace profiling results (differences <20 ms considered measurement noise): * `NNReal.Lp_add_le`: 261 ms before, 75 ms after 🎉 * `SimpleGraph.coe_finsetWalkLength_eq`: 75 ms before, 97 ms after * `SimpleGraph.Walk.darts_getElem_eq_getVert`: 396 ms before, <20 ms after 🎉 * `IntermediateField.restrictScalars_adjoin_of_algEquiv`: 38 ms before, <20 ms after 🎉 * `minpoly.neg`: 643 ms before, 475 ms after 🎉 * `TensorProduct.finsuppScalarRight_smul`: 114 ms before, <20 ms after 🎉 * `MeasureTheory.IsProjectiveMeasureFamily.congr_cylinder_of_subset`: 232 ms before, 63 ms after 🎉 * `AddCircle.card_torsion_le_of_isSMulRegular_int`: 320 ms before, 201 ms after 🎉 This golfing PR is batched under the following guidelines: * Up to ~5 changed files per PR * Up to ~25 changed declarations per PR * Up to ~100 changed lines per PR ESTIMATED CHANGES Modified Mathlib/Analysis/MeanInequalities.lean Modified Mathlib/Combinatorics/SimpleGraph/Connectivity/WalkCounting.lean Modified Mathlib/Combinatorics/SimpleGraph/Walks/Traversal.lean Modified Mathlib/FieldTheory/IntermediateField/Adjoin/Defs.lean Modified Mathlib/FieldTheory/Minpoly/Field.lean Modified Mathlib/LinearAlgebra/DirectSum/Finsupp.lean Modified Mathlib/MeasureTheory/Constructions/Projective.lean Modified Mathlib/Topology/Instances/AddCircle/Defs.lean 2026-02-15 09:25:48 b05def6 feat(MeasureTheory/Integral/IntervalIntegral): add variant `integral_deriv_eq_sub_uIoo` of 2nd theorem of calculus. (#33280) Add a continuous on uIcc, differentiable on uIoo, deriv version of the 2nd fundamental theorem of calculus. This corresponds to what is written [here](https://en.wikipedia.org/wiki/Fundamental_theorem_of_calculus#Second_part). For example it makes it easier to compute the integral : ```lean4 ∫ x : ℝ in 0..1, (√(1 - x ^ 2))⁻¹ = ∫ x : ℝ in 0..1, deriv arcsin x = arcsin 1 - arcsin 0 ``` It is not possible to use [`interval_deriv_eq_sub`](https://leanprover-community.github.io/mathlib4_docs/Mathlib/MeasureTheory/Integral/IntervalIntegral/FundThmCalculus.html#intervalIntegral.integral_deriv_eq_sub) which requires differentiability on all of [0,1], as `arcsin` isn't differentiable at 1. ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Integral/IntervalIntegral/FundThmCalculus.lean + theorem intervalIntegral.integral_deriv_eq_sub_uIoo 2026-02-15 08:53:25 a01c8cb feat: use to_fun in Continuous.mul (#35306) [#mathlib4 > Using fun_prop for the sum of two continuous functions](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Using.20fun_prop.20for.20the.20sum.20of.20two.20continuous.20functions/with/573891390) ESTIMATED CHANGES Modified Mathlib/Analysis/CStarAlgebra/ApproximateUnit.lean Modified Mathlib/Analysis/Convex/PathConnected.lean Modified Mathlib/Analysis/Quaternion.lean Modified Mathlib/Analysis/SpecialFunctions/Gamma/Basic.lean Modified Mathlib/Topology/Algebra/Monoid/Defs.lean Modified Mathlib/Topology/Algebra/Ring/Basic.lean 2026-02-15 07:46:48 bc20d72 feat: ab < ac and b ≤ c implies 0 < a (#35302) [#Is there code for X? > a * b < a * c and b < c implies 0 < a](https://leanprover.zulipchat.com/#narrow/channel/217875-Is-there-code-for-X.3F/topic/a.20*.20b.20.3C.20a.20*.20c.20and.20b.20.3C.20c.20implies.200.20.3C.20a/with/573860260) ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Ring/Unbundled/Basic.lean + theorem pos_of_left_mul_lt_le + theorem pos_of_right_mul_lt_le 2026-02-15 07:46:47 c754f17 feat: ContinuousLinearMap.coprod_comp_inl_inr (#35299) Add the ContinuousLinearMap version of [LinearMap.coprod_comp_inl_inr](https://leanprover-community.github.io/mathlib4_docs/Mathlib/LinearAlgebra/Prod.html#LinearMap.coprod_comp_inl_inr). ESTIMATED CHANGES Modified Mathlib/Topology/Algebra/Module/LinearMapPiProd.lean + theorem ContinuousLinearMap.coprod_comp_inl_inr 2026-02-15 07:46:45 8b23d3a feat(AlgebraicGeometry): geometrically irreducible schemes (#35290) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/AlgebraicGeometry/Geometrically/Irreducible.lean + theorem AlgebraicGeometry.GeometricallyIrreducible.comp + theorem AlgebraicGeometry.GeometricallyIrreducible.eq_geometrically + theorem AlgebraicGeometry.GeometricallyIrreducible.iff_geometricallyIrreducible_fiber + theorem AlgebraicGeometry.GeometricallyIrreducible.irreducibleSpace + theorem AlgebraicGeometry.GeometricallyIrreducible.irreducibleSpace_of_subsingleton + def AlgebraicGeometry.Scheme.Hom.irreducibleComponentsEquiv + theorem AlgebraicGeometry.Scheme.Hom.isIrreducible_preimage Modified Mathlib/AlgebraicGeometry/Properties.lean Modified Mathlib/Topology/Irreducible.lean + theorem Homeomorph.irreducibleSpace_iff 2026-02-15 07:46:44 a51d653 feat: generalize IsStoppingTime.add (#34912) `IsStoppingTime.add` is originally proved only for `ℕ`. This PR proves the same theorem for a countable linearly ordered set `ι` that is CanonicallyOrderedAdd and equppied with the order topology. ESTIMATED CHANGES Modified Mathlib/Probability/Process/Stopping.lean +/- theorem MeasureTheory.IsStoppingTime.add + theorem MeasureTheory.IsStoppingTime.add_const' - theorem MeasureTheory.IsStoppingTime.add_const_nat 2026-02-15 07:14:16 96dd1ce feat: subtypes of a HereditarilyLindelofSpace are Hereditarily Lindelof (#35305) ESTIMATED CHANGES Modified Mathlib/Topology/Compactness/Lindelof.lean 2026-02-15 03:56:28 9a4cf1d chore: update Mathlib dependencies 2026-02-15 (#35330) This PR updates the Mathlib dependencies. ESTIMATED CHANGES Modified lake-manifest.json 2026-02-15 02:32:54 97f5402 feat(LinearAlgebra/ExteriorPower): add `Basis` for `exteriorPower` (#32708) This defines a basis for `exteriorPower R M` given a `Basis I R M` where `I` is linearly ordered and develops API for working with basis elements. Key results: - `Basis.exteriorPower R n b` is the basis of `⋀[R]^n M` induced by the basis `b` of `M` - if `M` is free over `R` then so is `⋀[R]^n M` - if `M` is free and finite then `Module.finrank R (⋀[R]^n M) = Nat.choose (Module.finrank R M) n` ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Data/Set/PowersetCard.lean + theorem Set.powersetCard.exists_mem_notMem_iff_ne Added Mathlib/LinearAlgebra/ExteriorPower/Basis.lean + theorem exteriorPower.basis_apply + theorem exteriorPower.basis_coord + theorem exteriorPower.basis_repr + theorem exteriorPower.basis_repr_apply + theorem exteriorPower.basis_repr_ne + theorem exteriorPower.basis_repr_self + theorem exteriorPower.coe_basis + theorem exteriorPower.finrank_eq + theorem exteriorPower.ιMultiDual_apply_diag + theorem exteriorPower.ιMultiDual_apply_nondiag + theorem exteriorPower.ιMultiDual_apply_ιMulti + theorem exteriorPower.ιMulti_family_linearIndependent_field + theorem exteriorPower.ιMulti_family_linearIndependent_ofBasis Modified Mathlib/Order/Hom/PowersetCard.lean + theorem Set.powersetCard.mem_ofFinEmbEquiv_iff_mem_range + theorem Set.powersetCard.mem_range_ofFinEmbEquiv_symm_iff_mem 2026-02-14 19:46:26 88bb6d2 chore(Data/Quot): golf `Equivalence.quot_mk_eq_iff` (#35319) ESTIMATED CHANGES Modified Mathlib/Data/Quot.lean 2026-02-14 18:14:26 dbe39bd chore(Analysis): fix markdown list indentation (#35282) Indent continuation lines in docstring bullet lists. ESTIMATED CHANGES Modified Mathlib/Analysis/Asymptotics/ExpGrowth.lean Modified Mathlib/Analysis/Asymptotics/LinearGrowth.lean Modified Mathlib/Analysis/Complex/Hadamard.lean Modified Mathlib/Analysis/Distribution/TemperedDistribution.lean Modified Mathlib/Analysis/InnerProductSpace/PiL2.lean Modified Mathlib/Analysis/InnerProductSpace/Projection/FiniteDimensional.lean Modified Mathlib/Analysis/LocallyConvex/PointwiseConvergence.lean Modified Mathlib/Analysis/Matrix/Order.lean Modified Mathlib/Analysis/Normed/Module/PiTensorProduct/InjectiveSeminorm.lean Modified Mathlib/Analysis/Normed/Module/WeakDual.lean Modified Mathlib/Analysis/Normed/Operator/Extend.lean Modified Mathlib/Analysis/SpecialFunctions/Log/ENNRealLog.lean Modified Mathlib/Analysis/SpecialFunctions/Log/ENNRealLogExp.lean Modified Mathlib/Analysis/SpecialFunctions/Log/ERealExp.lean Modified Mathlib/Analysis/SpecialFunctions/OrdinaryHypergeometric.lean 2026-02-14 18:14:24 4d3be31 chore(Probability): Eliminate non-terminal simp (#34943) ESTIMATED CHANGES Modified Mathlib/Probability/Distributions/Exponential.lean 2026-02-14 15:23:35 af53ecf feat(NumberField/CyclotomicField): first results about Galois theory (#34489) This PR specializes the results of `Mathlib.NumberTheory.Cyclotomic.Gal` to the case of number fields. Main results: - Define the isomorphism between `Gal(ℚ(ζₙ)/ℚ)` and `(ℤ/nℤ)ˣ` - Let `m ∣ n`. Prove the following diagram commutes: ``` Gal(ℚ(ζₙ)/ℚ) ≃ (ℤ/nℤ)ˣ ↓ ↓ Gal(ℚ(ζₘ)/ℚ) ≃ (ℤ/mℤ)ˣ ``` ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/NumberTheory/NumberField/Cyclotomic/Galois.lean + theorem IsCyclotomicExtension.Rat.galEquivZMod_apply_of_pow_eq + theorem IsCyclotomicExtension.Rat.galEquivZMod_restrictNormal_apply + theorem IsCyclotomicExtension.Rat.galEquivZMod_smul_of_pow_eq Modified Mathlib/RingTheory/RootsOfUnity/PrimitiveRoots.lean + theorem IsPrimitiveRoot.isOfFinOrder 2026-02-14 14:34:14 b86322a chore: streamline proof in file on volume of balls (#35253) ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Measure/Lebesgue/VolumeOfBalls.lean 2026-02-14 11:15:15 fd6add7 chore: import `Aesop.Frontend` when declaring aesop rule sets (#35165) This PR turns some `import Aesop` into `import Aesop.Frontend` in places where we want to tag `aesop` lemmas, but do not yet want to use the tactic itself. ESTIMATED CHANGES Modified Mathlib/Data/Finset/Attr.lean Modified Mathlib/Data/Prod/Lex.lean Modified Mathlib/Tactic/Finiteness/Attr.lean Modified Mathlib/Tactic/SetLike.lean 2026-02-14 09:28:36 a5f6d77 feat(AlgebraicGeometry): Zariski's main theorem (#35093) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/AlgebraicGeometry/Morphisms/QuasiFinite.lean + theorem AlgebraicGeometry.LocallyQuasiFinite.of_injective + theorem AlgebraicGeometry.Scheme.Hom.QuasiFiniteAt.quasiFiniteAt + def AlgebraicGeometry.Scheme.Hom.QuasiFiniteAt + theorem AlgebraicGeometry.Scheme.Hom.quasiFiniteAt Added Mathlib/AlgebraicGeometry/ZariskisMainTheorem.lean + theorem AlgebraicGeometry.IsClosedImmersion.eq_proper_inf_monomorphisms + theorem AlgebraicGeometry.IsClosedImmersion.iff_isProper_and_mono + theorem AlgebraicGeometry.IsFinite.eq_proper_inf_locallyQuasiFinite + theorem AlgebraicGeometry.IsFinite.iff_isProper_and_locallyQuasiFinite + theorem AlgebraicGeometry.IsFinite.of_isProper_of_locallyQuasiFinite + theorem AlgebraicGeometry.Scheme.Hom.exists_isIso_morphismRestrict_toNormalization + theorem AlgebraicGeometry.Scheme.Hom.exists_mem_and_isIso_morphismRestrict_toNormalization + theorem AlgebraicGeometry.Scheme.Hom.isOpen_quasiFiniteAt + theorem AlgebraicGeometry.Scheme.Hom.mem_quasiFiniteLocus + def AlgebraicGeometry.Scheme.Hom.quasiFiniteLocus + theorem AlgebraicGeometry.Scheme.Hom.quasiFiniteLocus_eq_top + theorem AlgebraicGeometry.exists_etale_isCompl_of_quasiFiniteAt Modified Mathlib/RingTheory/RingHom/QuasiFinite.lean Modified Mathlib/Topology/Sets/Opens.lean 2026-02-14 07:58:44 eb5df47 feat(CategoryTheory): equality of morphisms can be checked on a cover (#35257) We show that equality of two morphisms can be checked on a cover for a topology for which isomorphisms are local at the target. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Limits/Shapes/Pullback/Equalizer.lean + theorem CategoryTheory.Limits.equalizerPullbackMapIso_hom_fst + theorem CategoryTheory.Limits.equalizerPullbackMapIso_hom_snd + theorem CategoryTheory.Limits.equalizerPullbackMapIso_inv_ι_fst + theorem CategoryTheory.Limits.equalizerPullbackMapIso_inv_ι_snd Modified Mathlib/CategoryTheory/MorphismProperty/Descent.lean + theorem CategoryTheory.MorphismProperty.eq_of_isomorphisms_descendsAlong + theorem CategoryTheory.MorphismProperty.faithful_overPullback_of_isomorphisms_descendAlong Modified Mathlib/CategoryTheory/MorphismProperty/Local.lean + theorem CategoryTheory.eq_of_zeroHypercover_target 2026-02-13 23:15:37 738faa5 feat(ci): add CI status emoji reactions to Zulip messages (#35230) This PR extends the emojibot to show CI build status on Zulip messages that mention a PR: - 🟡 CI running - ✅ CI passed - ❌ CI failed These are independent of the existing PR status emojis (merged, delegated, awaiting-author, etc.) and can coexist with them. The new `zulip_emoji_ci_status.yaml` workflow triggers on `workflow_run` events from both CI workflows. Cancelled runs are ignored (a new run will follow shortly). 🤖 Prepared with Claude Code ESTIMATED CHANGES Added .github/workflows/zulip_emoji_ci_status.yaml Modified scripts/zulip_emoji_reactions.py 2026-02-13 23:15:35 265f65e feat(Combinatorics/SimpleGraph/Acyclic): every graph has a spanning forest (#33118) We show that every graph has a spanning forest: defined to be an acyclic subgraph with the same reachability relation as the larger graph. As a special case, every connected graph has a spanning tree. ESTIMATED CHANGES Modified Mathlib/Combinatorics/SimpleGraph/Acyclic.lean +/- theorem SimpleGraph.Connected.exists_isTree_le + theorem SimpleGraph.Connected.exists_isTree_le_of_le_of_isAcyclic + theorem SimpleGraph.exists_isAcyclic_reachable_eq_le + theorem SimpleGraph.exists_isAcyclic_reachable_eq_le_of_le_of_isAcyclic 2026-02-13 22:13:11 6886144 chore: adaptations for batteries#1589 (#35271) After [batteries#1589](https://github.com/leanprover-community/batteries/pull/1589) is merged: - [x] Merge leanprover-community/mathlib4:master - [x] Edit the lakefile to point to leanprover-community/batteries:main - [x] Run lake update batteries - [ ] Wait for CI and merge ESTIMATED CHANGES Modified Mathlib/Data/List/Basic.lean - theorem List.reverse_singleton Modified lake-manifest.json 2026-02-13 21:13:40 14d98a4 fix(Cache): Do not treat 201 Created as an error code (#35270) `201 Created` is a success in the cache `PUT` operation: we are getting the failure log lines in every build (see [example](https://github.com/leanprover-community/mathlib4/actions/runs/21996999056/job/63559518669#step:25:39) but this happens every time): ``` Transfer failed (error code: 201) ``` because creating new blobs comes back with `201`. ESTIMATED CHANGES Modified Cache/Requests.lean 2026-02-13 21:13:38 a783932 feat(Algebra/LinearRecurrence): the characteristic polynomial is monic (#35194) ESTIMATED CHANGES Modified Mathlib/Algebra/LinearRecurrence.lean + theorem LinearRecurrence.charPoly_degree_eq_order + theorem LinearRecurrence.charPoly_monic 2026-02-13 21:13:37 604f061 refactor: reuse IsRelLowerSet in Geometry.SimplicialComplex (#35115) ESTIMATED CHANGES Modified Mathlib/Analysis/Convex/SimplicialComplex/Basic.lean + theorem Geometry.SimplicialComplex.down_closed + theorem Geometry.SimplicialComplex.empty_notMem +/- theorem Geometry.SimplicialComplex.nonempty_of_mem_faces Modified Mathlib/Order/UpperLower/Relative.lean + theorem IsLowerSet.isRelLowerSet_sep + theorem IsRelLowerSet.mono_isLowerSet + theorem IsRelUpperSet.mono_isUpperSet + theorem IsUpperSet.isRelUpperSet_sep 2026-02-13 21:13:35 81ab224 chore(Tactic/Convert): improve `convert` tactic family docstrings (#34840) This PR (re)writes the docstring for the `convert`/`convert_to`/`ac_convert` tactics, to make sure they are complete without getting too long. The existing docstring for `convert` was very detailed, which is good for e.g. a reference manual, but as a docstring it was hard to quickly find the relevance. I moved this to the module docs and wrote a new docstring that still lists the same features but in a structured order, referring to other tactics for the full picture. ESTIMATED CHANGES Modified Mathlib/Tactic/Convert.lean 2026-02-13 21:13:33 58a7fd7 feat(Data/Sym/Sym2): `fromRel` is injective & more (#34671) ESTIMATED CHANGES Modified Mathlib/Data/Sym/Sym2.lean +/- theorem Sym2.fromRel_bot + theorem Sym2.fromRel_bot_iff + theorem Sym2.fromRel_eq_fromRell_iff_eq +/- theorem Sym2.fromRel_top + theorem Sym2.fromRel_top_iff 2026-02-13 21:13:31 cd5b4d3 feat(Data/Set/Dissipate): Introduce dissipate s x := ⋂ y ≤ x, s y (#33975) Introduce Dissipate s x := ⋂ y ≤ x, s y (Data/Set/Dissipate), which is parallel to Data/Set/Accumulate and provide some API for it. This will be used for compact systems in another PR. This PR continues the work from https://github.com/leanprover-community/mathlib4/pull/25899. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Data/Set/Accumulate.lean Added Mathlib/Data/Set/Dissipate.lean + theorem Set.antitone_dissipate + theorem Set.biInter_dissipate + def Set.dissipate + theorem Set.dissipate_bot + theorem Set.dissipate_def + theorem Set.dissipate_subset + theorem Set.dissipate_subset_dissipate + theorem Set.dissipate_succ + theorem Set.dissipate_zero_nat + theorem Set.iInter_dissipate + theorem Set.iInter_subset_dissipate + theorem Set.mem_dissipate Modified Mathlib/MeasureTheory/Measure/MeasuredSets.lean 2026-02-13 21:13:29 84e8ddf feat(Combinatorics/SimpleGraph/Connectivity/Subgraph): `w.toSubgraph ≤ G' ↔ w.edgeSet ⊆ G'.edgeSet` (#33527) ESTIMATED CHANGES Modified Mathlib/Combinatorics/SimpleGraph/Connectivity/Subgraph.lean +/- theorem SimpleGraph.Walk.edgeSet_toSubgraph + theorem SimpleGraph.Walk.toSubgraph_le_iff 2026-02-13 20:17:04 991ffaa refactor: override `≤` and `<` in `Function.Injective.semilatticeSup`, etc. (#30484) These constructors now take `LE` and `LT` instance arguments, and proofs that the "induced" relations are equal. This matches the behavior for all other data fields of the same constructors, which avoids diamonds which could otherwise arise. To recover the old behavior, you can instantiate `LE` and `LT` instances through `PartialOrder.lift` (if they don't exist already), and set the `le` and `lt` fields to `Iff.rfl`. ESTIMATED CHANGES Modified Mathlib/Algebra/Lie/Submodule.lean Modified Mathlib/Algebra/Module/Injective.lean + theorem Module.Baer.ExtensionOf.toLinearPMap_injective Modified Mathlib/Algebra/Order/Kleene.lean Modified Mathlib/Analysis/Normed/Group/Seminorm.lean Modified Mathlib/Analysis/Seminorm.lean Modified Mathlib/CategoryTheory/Sites/Precoverage.lean Modified Mathlib/Combinatorics/Digraph/Basic.lean Modified Mathlib/Combinatorics/SimpleGraph/Basic.lean Modified Mathlib/Combinatorics/SimpleGraph/Finsubgraph.lean Modified Mathlib/Combinatorics/SimpleGraph/Subgraph.lean Modified Mathlib/Combinatorics/Young/YoungDiagram.lean Modified Mathlib/FieldTheory/Galois/GaloisClosure.lean Modified Mathlib/GroupTheory/FiniteIndexNormalSubgroup.lean Modified Mathlib/GroupTheory/GroupAction/SubMulAction.lean Modified Mathlib/MeasureTheory/MeasurableSpace/MeasurablyGenerated.lean Modified Mathlib/ModelTheory/Definability.lean Modified Mathlib/Order/BooleanAlgebra/Basic.lean Modified Mathlib/Order/BooleanSubalgebra.lean Modified Mathlib/Order/CompleteBooleanAlgebra.lean Modified Mathlib/Order/CompleteLattice/Basic.lean Modified Mathlib/Order/CompleteLattice/Lemmas.lean Modified Mathlib/Order/CompleteSublattice.lean Modified Mathlib/Order/Concept.lean Modified Mathlib/Order/Disjoint.lean Modified Mathlib/Order/Heyting/Basic.lean Modified Mathlib/Order/Heyting/Regular.lean Modified Mathlib/Order/Hom/Bounded.lean Modified Mathlib/Order/Hom/BoundedLattice.lean Modified Mathlib/Order/Hom/Lattice.lean Modified Mathlib/Order/Interval/Basic.lean Modified Mathlib/Order/Lattice.lean Modified Mathlib/Order/Nucleus.lean Modified Mathlib/Order/Sublattice.lean Modified Mathlib/Order/UpperLower/CompleteLattice.lean Modified Mathlib/RepresentationTheory/Subrepresentation.lean Modified Mathlib/RingTheory/DedekindDomain/Different.lean Modified Mathlib/RingTheory/DedekindDomain/Ideal/Basic.lean Modified Mathlib/RingTheory/DividedPowers/SubDPIdeal.lean Modified Mathlib/RingTheory/Filtration.lean Modified Mathlib/RingTheory/FractionalIdeal/Basic.lean Modified Mathlib/RingTheory/FractionalIdeal/Extended.lean Modified Mathlib/RingTheory/FractionalIdeal/Operations.lean Modified Mathlib/RingTheory/GradedAlgebra/Homogeneous/Ideal.lean Modified Mathlib/Topology/Algebra/Group/ClosedSubgroup.lean Modified Mathlib/Topology/Algebra/Group/GroupTopology.lean Modified Mathlib/Topology/Algebra/Module/ClosedSubmodule.lean Modified Mathlib/Topology/Algebra/OpenSubgroup.lean Modified Mathlib/Topology/ContinuousMap/Bounded/Normed.lean Modified Mathlib/Topology/ContinuousMap/CompactlySupported.lean Modified Mathlib/Topology/ContinuousMap/Ordered.lean Modified Mathlib/Topology/DiscreteQuotient.lean Modified Mathlib/Topology/Sets/Closeds.lean Modified Mathlib/Topology/Sets/Compacts.lean Modified Mathlib/Topology/Sets/Opens.lean Modified Mathlib/Topology/Sets/Order.lean 2026-02-13 18:18:06 3234d21 chore(Analysis/Normed/Group/Uniform): fix statement from #35247 (#35264) PR #35247 (merged just an hour ago) introduced a new declaration, but the name wasn't quite right (should be `mul_le_norm` in analogy to `le_mul_norm` above), and the explicit `f` argument should be implicit since the lemma is an `iff`. I can add deprecations if desired, although given that the previous PR was merged just now, I think it's probably not necessary. ESTIMATED CHANGES Modified Mathlib/Analysis/Normed/Group/Uniform.lean - theorem antilipschitzWith_iff_exists_mul_le_mul' + theorem antilipschitzWith_iff_exists_mul_le_norm' Modified Mathlib/Topology/MetricSpace/Antilipschitz.lean 2026-02-13 18:18:03 515b2ee chore: remove legacy installation scripts (#35237) This PR removes `scripts/install_debian.sh` and `scripts/install_macos.sh`, and their documentation in `scripts/README.md`. These scripts were referenced from the leanprover community install pages, which are being removed in favor of the official Lean quickstart guide at https://docs.lean-lang.org/lean4/doc/quickstart.html. - [ ] depends on: leanprover-community/leanprover-community.github.io#788 🤖 Prepared with Claude Code ESTIMATED CHANGES Modified scripts/README.md Deleted scripts/install_debian.sh Deleted scripts/install_macos.sh 2026-02-13 18:18:00 9d381a2 doc(references): update Linear Algebra Done Right reference from 3rd edition to 4th edition (#35236) Updates `references.bib` and the corresponding lemma and definition numbers from Linear Algebra Done Right from 3rd edition to 4th edition. Also fixes an inaccuracy in the docstring for `Module.End.genEigenspace`. This PR is intended to allow future PRs to reference content in newer versions of Linear Algebra Done Right. It was requested by a review comment on #33731. ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/Eigenspace/Basic.lean Modified Mathlib/LinearAlgebra/Eigenspace/Triangularizable.lean Modified docs/references.bib 2026-02-13 18:17:58 d5bbce8 chore(Logic/IsEmpty): split file into `Defs` and `Basic` (#35137) This PR decreases the imports of the `congr!` and `convert` tactics by splitting `Mathlib.Logic.IsEmpty` into a `Defs` and a `Basic` file. Then, these tactics can import the `Defs` file which itself only imports `Mathlib.Init`. This reduces the longest pole. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Data/Int/Basic.lean Modified Mathlib/Data/List/Forall2.lean Modified Mathlib/Data/Option/Basic.lean Modified Mathlib/Data/Seq/Computation.lean Modified Mathlib/Lean/Meta/CongrTheorems.lean Modified Mathlib/Logic/IsEmpty.lean - theorem Function.Bijective.of_isEmpty - theorem Function.Surjective.isEmpty - theorem Function.Surjective.of_isEmpty - theorem Function.extend_of_isEmpty - theorem Function.not_surjective_of_isEmpty_of_nonempty - theorem Function.surjective_iff_isEmpty - theorem IsEmpty.exists_iff - theorem IsEmpty.forall_iff - theorem Subtype.isEmpty_of_false - theorem biTotal_empty - theorem biTotal_iff_isEmpty_left - theorem biTotal_iff_isEmpty_right - def isEmptyElim - theorem isEmpty_Prop - theorem isEmpty_fun - theorem isEmpty_iff - theorem isEmpty_or_nonempty - theorem isEmpty_pi - theorem isEmpty_plift - theorem isEmpty_pprod - theorem isEmpty_prod - theorem isEmpty_psigma - theorem isEmpty_psum - theorem isEmpty_sigma - theorem isEmpty_subtype - theorem isEmpty_sum - theorem isEmpty_ulift - theorem leftTotal_empty - theorem leftTotal_iff_isEmpty_left - theorem nonempty_fun - theorem not_isEmpty_iff - theorem not_isEmpty_of_nonempty - theorem not_nonempty_iff - theorem rightTotal_empty - theorem rightTotal_iff_isEmpty_right - theorem wellFounded_of_isEmpty Added Mathlib/Logic/IsEmpty/Basic.lean + theorem Function.Bijective.of_isEmpty + theorem Function.Surjective.of_isEmpty + theorem Function.extend_of_isEmpty + theorem Function.not_surjective_of_isEmpty_of_nonempty + theorem Function.surjective_iff_isEmpty + theorem biTotal_empty + theorem biTotal_iff_isEmpty_left + theorem biTotal_iff_isEmpty_right + theorem isEmpty_Prop + theorem isEmpty_fun + theorem isEmpty_or_nonempty + theorem isEmpty_pi + theorem isEmpty_plift + theorem isEmpty_pprod + theorem isEmpty_prod + theorem isEmpty_psigma + theorem isEmpty_psum + theorem isEmpty_sigma + theorem isEmpty_subtype + theorem isEmpty_sum + theorem isEmpty_ulift + theorem leftTotal_empty + theorem leftTotal_iff_isEmpty_left + theorem nonempty_fun + theorem not_isEmpty_iff + theorem not_isEmpty_of_nonempty + theorem not_nonempty_iff + theorem rightTotal_empty + theorem rightTotal_iff_isEmpty_right + theorem wellFounded_of_isEmpty Added Mathlib/Logic/IsEmpty/Defs.lean + theorem Function.Surjective.isEmpty + theorem IsEmpty.exists_iff + theorem IsEmpty.forall_iff + theorem Subtype.isEmpty_of_false + def isEmptyElim + theorem isEmpty_iff Modified Mathlib/Logic/Unique.lean Modified Mathlib/Logic/UnivLE.lean Modified Mathlib/Order/RelClasses.lean Modified Mathlib/SetTheory/PGame/Basic.lean 2026-02-13 18:17:55 63686ed feat(AlgebraicTopology): the bifibrant resolution functor on the homotopy category of cofibrant objects (#34642) Given a model category `C`, we construct a functor `HoCat.bifibrantResolution : CofibrantObject.HoCat C ⥤ BifibrantObject.HoCat C`. ESTIMATED CHANGES Modified Mathlib/AlgebraicTopology/ModelCategory/BifibrantObjectHomotopy.lean + theorem HomotopicalAlgebra.CofibrantObject.HoCat.adjCounit'_app + theorem HomotopicalAlgebra.CofibrantObject.HoCat.adjCounitIso_inv_app + theorem HomotopicalAlgebra.CofibrantObject.HoCat.adjUnit_app + theorem HomotopicalAlgebra.CofibrantObject.HoCat.bifibrantResolution_map + theorem HomotopicalAlgebra.CofibrantObject.HoCat.bifibrantResolution_obj + theorem HomotopicalAlgebra.CofibrantObject.bifibrantResolutionMap_fac' + theorem HomotopicalAlgebra.CofibrantObject.bifibrantResolutionMap_fac + theorem HomotopicalAlgebra.CofibrantObject.bifibrantResolutionObj_hom_ext + theorem HomotopicalAlgebra.CofibrantObject.exists_bifibrant + theorem HomotopicalAlgebra.CofibrantObject.exists_bifibrant_map 2026-02-13 17:17:44 0e4799c feat(RingTheory): weakly quasi finite primes (#35234) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/LinearAlgebra/TensorProduct/RightExactness.lean + theorem Algebra.TensorProduct.map_surjective Modified Mathlib/RingTheory/QuasiFinite/Basic.lean + theorem Algebra.QuasiFinite.iff_of_algEquiv Modified Mathlib/RingTheory/QuasiFinite/Polynomial.lean + theorem Polynomial.map_under_lt_comap_of_weaklyQuasiFiniteAt + theorem Polynomial.not_ker_le_map_C_of_surjective_of_weaklyQuasiFiniteAt +/- theorem Polynomial.not_quasiFiniteAt + theorem Polynomial.not_weaklyQuasiFiniteAt Added Mathlib/RingTheory/QuasiFinite/Weakly.lean + theorem Algebra.WeaklyQuasiFiniteAt.baseChange + theorem Algebra.WeaklyQuasiFiniteAt.eq_of_le_of_under_eq + theorem Algebra.WeaklyQuasiFiniteAt.finite_locoalization + theorem Algebra.WeaklyQuasiFiniteAt.finite_residueField + theorem Algebra.WeaklyQuasiFiniteAt.of_algHom_localization + theorem Algebra.WeaklyQuasiFiniteAt.of_restrictScalars + theorem Algebra.WeaklyQuasiFiniteAt.of_surjectiveOnStalks + theorem Algebra.weaklyQuasiFiniteAt_iff Modified Mathlib/RingTheory/SurjectiveOnStalks.lean + theorem RingHom.SurjectiveOnStalks.localRingHom_surjective Modified Mathlib/RingTheory/ZariskisMainTheorem.lean + theorem Algebra.QuasiFiniteAt.of_weaklyQuasiFiniteAt + theorem Algebra.ZariskisMainProperty.of_finiteType_of_weaklyQuasiFiniteAt.{u, + theorem Algebra.ZariskisMainProperty.quasiFiniteAt 2026-02-13 17:17:42 b5be74f chore(Tactic): improve `#find` and `find` tactic docstrings (#35077) This PR (re)writes the docstrings for the `#find` and `find` tactics, and the `#find` command, to consistently match the official style guide, to make sure they are complete while not getting too long. ESTIMATED CHANGES Modified Mathlib/Tactic/Find.lean 2026-02-13 17:17:40 21e8450 chore(Util): improve `#count_heartbeats` tactic docstring (#35076) This PR (re)writes the docstring for the `#count_heartbeats` tactic (and `#count_heartbeats!`, which becomes a variant of `#count_heatbeats`), to make sure it is complete without getting too long. I decided to make `#count_heartbeats!` a variant of `#count_heartbeats` since it does the same thing, just repeatedly. ESTIMATED CHANGES Modified Mathlib/Util/CountHeartbeats.lean 2026-02-13 17:17:39 d776f49 chore(scripts): add new technical debt counters (#35066) This PR updates `scripts/technical-debt-metrics.sh` to: - Dynamically enumerate `backward.*` compatibility flags instead of maintaining a static list. New flags are automatically picked up. - Add counters for `simp +instances` and `dsimp +instances` (careful not to double-count, since `dsimp` contains `simp`). 🤖 Prepared with Claude Code ESTIMATED CHANGES Modified scripts/technical-debt-metrics.sh 2026-02-13 17:17:37 aede8ee docs(CategoryTheory/Bicategory/Adjunction): fix typos and update docs (#35032) Fix documentation issues across the `Bicategory/Adjunction` files: - **Adj.lean**: Fix plural ("isomorphisms" → "isomorphism") in `lIso`/`rIso` docstrings. - **Basic.lean**: Use correct fully qualified names (`Bicategory.Equivalence.mkOfAdjointifyCounit`, `Adjunction.comp`), replace stale `f⁺`/`f⁺⁺` notation with `leftAdjoint f`/`rightAdjoint f`, and fix a parameter name reference in `IsRightAdjoint`. - **Mate.lean**: Fix capitalisation of variable names in a diagram (`L₂`/`R₂` → `l₂`/`r₂`), correct a swapped diagram in `iteratedMateEquiv`, fix a dangling reference (`Conjugate_iso` → `conjugateEquiv_iso`), improve the `conjugateEquiv` docstring, and fix several grammar issues ("a squares" → "a square", "Squares of squares" → "A square of squares"). ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Bicategory/Adjunction/Adj.lean Modified Mathlib/CategoryTheory/Bicategory/Adjunction/Basic.lean Modified Mathlib/CategoryTheory/Bicategory/Adjunction/Mate.lean 2026-02-13 17:17:35 82bd54b perf: modulize tests (1/N) (#34970) ESTIMATED CHANGES Modified MathlibTest/Algebra/Module/LocalizedModule.lean Modified MathlibTest/CategoryTheory/ConcreteCategory/Alg.lean Modified MathlibTest/CategoryTheory/ConcreteCategory/ProfiniteGrp.lean Modified MathlibTest/Deriv.lean Modified MathlibTest/FinCoercions.lean Modified MathlibTest/LibrarySearch/mathlib.lean Modified MathlibTest/LibrarySearch/star.lean Modified MathlibTest/TCSynth.lean Modified MathlibTest/instances/CommRing_integralClosure.lean Modified MathlibTest/instances/LawfulOfScientific.lean Modified MathlibTest/instances/Ring_finiteness.lean Modified MathlibTest/interactiveUnfold.lean Modified MathlibTest/simp_confluence.lean Modified MathlibTest/slow_instances.lean 2026-02-13 17:17:33 2446f25 ci: Push to cache in a separate job to isolate secrets (#34847) Stage cache artifacts in the build job and upload them in a separate job. The motivation is to only ever use the cache secrets in the upload job. Changes: - Add cache-artifact staging support to `lake exe cache`: - `stage-unpacked --staging-dir=` - Packs any unpacked cache entries (i.e., ones not yet in .ltar form) into .ltar files and copies those .ltars into ``. Not very useful outside of our CI, but it could be used for p2p sharing of cache artifacts. - `put-staged --staging-dir= [ARGS]` Uploads all .ltar files found in `` to the cache server. No packing happens here: the point is to be able to just run this on the 'publishing' job with the artifact produced before. - `unstage --staging-dir=` Copies absent .ltar files from `` into the local cache directory. Useful to consume the PR artifact locally if downloaded manually. - `unstage! --staging-dir=`. Same as `unstage`, but overwrites existing `.ltar` files in the local cache. - Update CI to stage .ltar files on the build runner, upload them as a cache-staging artifact only if non‑empty, and upload to Azure in a new upload_cache job that holds secrets. ESTIMATED CHANGES Modified .github/workflows/build_template.yml Modified Cache/Main.lean + def parseNamedOpt - def parseRepo Modified Cache/Requests.lean + def Cache.Requests.copyCmd +/- def Cache.Requests.mkPutConfigContent + def Cache.Requests.putFilesAbsolute + def Cache.Requests.stageFiles + def Cache.Requests.unstageFiles 2026-02-13 16:28:59 7c1ce07 chore: add missing `namespace`s (#34631) I noticed that there is a global definition called `slice`, which causes ambiguity with `Finset.slice`. This PR improved the `namespace`dness of some tactic files. Really, we should have a linter against definitions in the root namespace in the `Mathlib.Tactic` and `Mathlib.Meta` folders. ESTIMATED CHANGES Modified Mathlib/Tactic/CategoryTheory/CategoryStar.lean Modified Mathlib/Tactic/CategoryTheory/Elementwise.lean + def Mathlib.Tactic.Elementwise.elementwiseExpr + def Mathlib.Tactic.Elementwise.elementwiseThms + theorem Mathlib.Tactic.Elementwise.forall_congr_forget_Type + theorem Mathlib.Tactic.Elementwise.forget_hom_Type + theorem Mathlib.Tactic.Elementwise.hom_elementwise - def Tactic.Elementwise.elementwiseExpr - def Tactic.Elementwise.elementwiseThms - theorem Tactic.Elementwise.forall_congr_forget_Type - theorem Tactic.Elementwise.forget_hom_Type - theorem Tactic.Elementwise.hom_elementwise Modified Mathlib/Tactic/CategoryTheory/Slice.lean + def Mathlib.Tactic.Slice.evalSlice - def evalSlice Modified Mathlib/Tactic/CategoryTheory/ToApp.lean - def CategoryTheory.catAppSimp - def CategoryTheory.toAppExpr - def CategoryTheory.toCatExpr - def CategoryTheory.toNatTransExpr - theorem CategoryTheory.toNatTrans_congr + def Mathlib.Tactic.CategoryTheory.ToApp.catAppSimp + def Mathlib.Tactic.CategoryTheory.ToApp.toAppExpr + def Mathlib.Tactic.CategoryTheory.ToApp.toCatExpr + def Mathlib.Tactic.CategoryTheory.ToApp.toNatTransExpr + theorem Mathlib.Tactic.CategoryTheory.ToApp.toNatTrans_congr 2026-02-13 16:28:57 709c07e feat(GroupTheory/FiniteAbelian): prove that the restriction map is surjective (#33403) Let `G` be a finite commutative group and let `H` be a subgroup. If `M` is a commutative monoid such that `G →* Mˣ` and `H →* Mˣ` are both finite (this is the case for example if `M` is a commutative domain), then any homomorphism `H →* Mˣ` can be extended to an homomorphism `G →* Mˣ`. ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Submonoid/Operations.lean + def MonoidHom.restrictHom + theorem MonoidHom.restrict_eq_one_iff Modified Mathlib/GroupTheory/Exponent.lean + theorem Group.exponent_quotient_dvd + theorem Monoid.exponent_submonoid_dvd Modified Mathlib/GroupTheory/FiniteAbelian/Duality.lean + theorem CommGroup.card_monoidHom_of_hasEnoughRootsOfUnity + theorem MonoidHom.restrict_surjective Modified Mathlib/GroupTheory/QuotientGroup/Basic.lean + def MonoidHom.restrictHomKerEquiv + theorem MonoidHom.restrictHomKerEquiv_apply_coe + theorem MonoidHom.restrictHomKerEquiv_symm_coe_apply Modified Mathlib/NumberTheory/MulChar/Duality.lean Modified Mathlib/RingTheory/RootsOfUnity/Basic.lean 2026-02-13 16:00:01 ca1d0ae feat(RingTheory): `Algebra.FinitePresentation` descends along faithfully flat algebras (#35254) From Pi1. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/LinearAlgebra/TensorProduct/Finiteness.lean + theorem TensorProduct.exists_sum_tmul_eq Added Mathlib/RingTheory/Finiteness/Descent.lean + theorem Algebra.FinitePresentation.of_finitePresentation_tensorProduct_of_faithfullyFlat + theorem Algebra.FiniteType.of_finiteType_tensorProduct_of_faithfullyFlat + theorem Ideal.FG.of_FG_map_of_faithfullyFlat + theorem Module.Finite.of_finite_tensorProduct_of_faithfullyFlat + theorem RingHom.Finite.codescendsAlong_faithfullyFlat + theorem RingHom.FinitePresentation.codescendsAlong_faithfullyFlat + theorem RingHom.FiniteType.codescendsAlong_faithfullyFlat Modified Mathlib/RingTheory/TensorProduct/Maps.lean + theorem Algebra.TensorProduct.Algebra.TensorProduct.commRight_symm_tmul + theorem Algebra.TensorProduct.commRight_tmul 2026-02-13 15:59:59 029325d feat(Analysis/Normed/Group/Uniform): `AntilipschitzWith` is equivalent to being bounded below (#35247) This PR proves that an operator is Antilipschitz if and only if it is bounded below. ESTIMATED CHANGES Modified Mathlib/Analysis/Normed/Group/Uniform.lean + theorem antilipschitzWith_iff_exists_mul_le_mul' Modified Mathlib/Topology/MetricSpace/Antilipschitz.lean 2026-02-13 15:59:56 c16b68b feat(AlgebraicGeometry): geometrically-`P` morphisms (#35246) We define the basic interface for properties like geometrically reduced, geometrically irreducible, geometrically connected etc. In this file we treat an abstract property of schemes `P` and derive the general properties that are shared by all of these variants. This contribution was created as part of the Formalising Algebraic Geometry workshop 2025 in Heidelberg Co-authored by: Timo Kränzle Co-authored by: Judith Ludwig Co-authored by: Bryan Wang Peng Jun Co-authored by: Yannis Monbru Co-authored by: Alireza Shavali Co-authored by: Chenyi Yang ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/AlgebraicGeometry/Geometrically/Basic.lean + theorem AlgebraicGeometry.fiber_of_geometrically + def AlgebraicGeometry.geometrically + theorem AlgebraicGeometry.geometrically_eq_universally + theorem AlgebraicGeometry.geometrically_iff_forall_fiberToSpecResidueField + theorem AlgebraicGeometry.geometrically_iff_of_commRing + theorem AlgebraicGeometry.geometrically_iff_of_commRing_of_isClosedUnderIsomorphisms + theorem AlgebraicGeometry.geometrically_iff_of_isClosedUnderIsomorphisms + theorem AlgebraicGeometry.pullback_of_geometrically' + theorem AlgebraicGeometry.pullback_of_geometrically + theorem AlgebraicGeometry.self_of_isIntegral_of_geometrically Modified Mathlib/AlgebraicGeometry/Morphisms/UnderlyingMap.lean Modified Mathlib/AlgebraicGeometry/Properties.lean + theorem AlgebraicGeometry.IsIntegral.of_isIso + theorem AlgebraicGeometry.isField_of_isIntegral_of_subsingleton Modified Mathlib/Topology/Irreducible.lean + theorem Function.Surjective.irreducibleSpace + theorem Function.Surjective.preirreducibleSpace 2026-02-13 15:59:54 a845dc8 feat(Analysis/Normed/Operator/Compact): `iff` variants of `IsCompactOperator.smul` (#35195) This PR adds `iff` variants of `IsCompactOperator.smul`. ESTIMATED CHANGES Modified Mathlib/Analysis/Normed/Operator/Compact.lean + theorem IsCompactOperator.smul_iff + theorem IsCompactOperator.smul_iff₀ + theorem IsCompactOperator.smul_isUnit_iff + theorem IsCompactOperator.smul_unit_iff 2026-02-13 15:59:51 1d8b579 feat(scripts): add auto_commit.sh and support rebase-friendly prefix (#34516) This PR enables a rebase friendly workflow for auto-commits. During `git rebase -i`, any lines of the form `x ` will execute ``. So a commit of the form `x scripts/auto_commit.sh ` will create an entry of the form ``` pick 123abc x scripts/auto_commit.sh ``` By removing the prefix `pick 123abc `, the rebase will then execute `scripts/auto_commit.sh `. The effect is that `` is run, and all changes to the worktree are committed with commit message `x scripts/auto_commit.sh `. Specifically, this PR does the following: - Add scripts/auto_commit.sh: runs a command and commits with message `x scripts/auto_commit.sh `, enabling rebase workflow - Update verify_commits.sh to support both `x: ` and `x ` prefixes - Update CI workflow to detect both prefix formats Co-Authored-By: Claude Opus 4.5 ESTIMATED CHANGES Modified .github/workflows/commit_verification.yml Modified scripts/README.md Added scripts/auto_commit.sh Modified scripts/verify_commits.sh 2026-02-13 15:59:48 4d3de30 feat: Fin.tail_vecCons (#34406) ESTIMATED CHANGES Modified Mathlib/Analysis/Distribution/SchwartzSpace/Deriv.lean Modified Mathlib/Data/Fin/VecNotation.lean + theorem Fin.tail_vecCons 2026-02-13 15:59:45 67144fe chore: don't expose `Shrink` (#34387) Mark `Shrink` and `equivShrink` as `@[no_expose]`. This ensures downstream files using the module system can't take advantage of the specific definition of `Shrink` as an application of `Classical.choose`. See also [#general > Cardinality model incompatible with Lean compiler @ 💬](https://leanprover.zulipchat.com/#narrow/channel/113488-general/topic/Cardinality.20model.20incompatible.20with.20Lean.20compiler/near/538013012) on Zulip for an example of bad things that can happen if `Shrink` is exposed. ESTIMATED CHANGES Modified Mathlib/Logic/Small/Defs.lean 2026-02-13 15:01:06 37d2101 fix(scripts/declarations_diff.sh): fix incorrect path (#35251) The path given in the comment posted by the script is incorrect. ESTIMATED CHANGES Modified scripts/declarations_diff.sh 2026-02-13 15:01:04 7adbee8 fix: add missing `DecidableEq` instance for `OrderDual` (#35235) This was previously implied when a linear order was available, but didn't otherwise exist directly. ESTIMATED CHANGES Modified Mathlib/Order/OrderDual.lean 2026-02-13 15:01:02 4736692 chore(*): fix unbalanced backticks in docstrings (#35190) This PR fixes a lot of cases of unbalanced backticks (`` ` ``) in docstrings. These were detected automatically, by a linter I'm working on (in particular, if an even number of backticks is added or removed, the linter can't find the issue). This is part of preparing for Verso docstrings, which are much more strict about their syntax (whereas currently docstrings are written in Markdown where any sequence of Unicode codepoints is a valid Markdown document). ESTIMATED CHANGES Modified Mathlib/Algebra/Order/ToIntervalMod.lean Modified Mathlib/Analysis/Normed/Group/Real.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Pullback/HasPullback.lean Modified Mathlib/CategoryTheory/LocallyCartesianClosed/Sections.lean Modified Mathlib/Data/List/OffDiag.lean Modified Mathlib/Data/NNReal/Defs.lean Modified Mathlib/Data/Nat/Log.lean Modified Mathlib/LinearAlgebra/AffineSpace/AffineMap.lean Modified Mathlib/LinearAlgebra/AffineSpace/Basis.lean Modified Mathlib/MeasureTheory/Function/LpSeminorm/Defs.lean Modified Mathlib/NumberTheory/Padics/HeightOneSpectrum.lean Modified Mathlib/Order/SaddlePoint.lean Modified Mathlib/RingTheory/PolynomialLaw/Basic.lean Modified Mathlib/Tactic/DeriveTraversable.lean Modified Mathlib/Tactic/Linter/Whitespace.lean 2026-02-13 15:01:01 c5c6e83 feat: converse of `stabilizer_isOpen` (#34874) A group action of a topological group on a discrete space is continuous if and only if each stabilizer is an open subgroup. ESTIMATED CHANGES Modified Mathlib/Topology/Algebra/MulAction.lean + theorem continuousSMul_iff_stabilizer_isOpen 2026-02-13 15:00:59 9e40889 feat(Order/Minimal): `MinimalFor`/`MaximalFor` are antitone (#34666) ESTIMATED CHANGES Modified Mathlib/Order/Minimal.lean + theorem MaximalFor.anti + theorem MinimalFor.anti 2026-02-13 15:00:57 973750b feat(RingTheory/Ideal/MinimalPrime/Colon): minimal primes over a colon ideal (#34255) This PR shows that a minimal prime over a colon ideal in a Noetherian ring is itself a colon ideal. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/RingTheory/Ideal/MinimalPrime/Colon.lean + theorem Submodule.exists_eq_colon_of_mem_minimalPrimes 2026-02-13 13:13:18 2598404 chore: use instance keyword for Unique.fintype (#35242) ESTIMATED CHANGES Modified Mathlib/Data/Fintype/Basic.lean - def Unique.fintype 2026-02-13 13:13:16 05506ea fix(Geometry/Polygon): drop `NeZero` (#35229) ESTIMATED CHANGES Modified Mathlib/Geometry/Polygon/Basic.lean 2026-02-13 13:13:15 407a7b2 feat(Analysis/Normed): IsUnit for continuous linear operators on a complete space (#35226) An easy consequence of the open mapping theorem. I claim that this is more convenient this way round, since the RHS is easier to show, and the reverse direction of the implication is the tricky one. ESTIMATED CHANGES Modified Mathlib/Analysis/Normed/Operator/Banach.lean + theorem ContinuousLinearMap.isUnit_iff_isUnit_toLinearMap 2026-02-13 13:13:13 468d523 chore: deduplicate `attribute [simp]`s (#35202) This PR removes `attribute [simp]`s which are already simp-lemmas. ESTIMATED CHANGES Modified Mathlib/Data/Int/Basic.lean Modified Mathlib/Data/List/SplitOn.lean Modified Mathlib/Data/Nat/Bitwise.lean Modified Mathlib/Data/Rat/Defs.lean Modified Mathlib/Logic/Basic.lean Modified Mathlib/Tactic/Attr/Core.lean 2026-02-13 13:13:11 27dfd8a feat(Analysis/InnerProductSpace/Rayleigh): Rayleigh quotients are bounded above by the operator norm (#35173) This PR proves that Rayleigh quotients are bounded above by the operator norm. The fact that this is tight for symmetric operators will be done in a follow-up PR. ESTIMATED CHANGES Modified Mathlib/Analysis/InnerProductSpace/Rayleigh.lean + theorem ContinuousLinearMap.bddAbove_rayleighQuotient + theorem ContinuousLinearMap.rayleighQuotient_le_norm 2026-02-13 13:13:09 1abefad feat(CategoryTheory): functors jointly reflecting isomorphisms (#35139) Co-authored by: Joël Riou ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Functor/ReflectsIso/Jointly.lean + theorem CategoryTheory.JointlyReflectEpimorphisms.epi_iff + structure CategoryTheory.JointlyReflectEpimorphisms + theorem CategoryTheory.JointlyReflectIsomorphisms.epi + theorem CategoryTheory.JointlyReflectIsomorphisms.isIso_iff + theorem CategoryTheory.JointlyReflectIsomorphisms.jointlyReflectEpimorphisms + theorem CategoryTheory.JointlyReflectIsomorphisms.jointlyReflectMonomorphisms + theorem CategoryTheory.JointlyReflectIsomorphisms.mono + structure CategoryTheory.JointlyReflectIsomorphisms + theorem CategoryTheory.JointlyReflectMonomorphisms.mono_iff + structure CategoryTheory.JointlyReflectMonomorphisms 2026-02-13 13:13:07 70794d5 feat(CategoryTheory/Sites/Point): points of `Over` sites (#35121) Given a point `Φ` of a site `(C, J)`, an object `X : C`, and `x : Φ.fiber.obj X`, we define a point `Φ.over x` of the site `(Over X, J.over X)`. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/CategoryTheory/Comma/Over/Basic.lean + def CategoryTheory.CostructuredArrow.costructuredArrowToOverEquivalence.functor + def CategoryTheory.CostructuredArrow.costructuredArrowToOverEquivalence.inverse + def CategoryTheory.CostructuredArrow.costructuredArrowToOverEquivalence Modified Mathlib/CategoryTheory/Functor/TypeValuedFlat.lean + def CategoryTheory.FunctorToTypes.fromOverFunctorElementsEquivalence + def CategoryTheory.FunctorToTypes.fromOverSubfunctor + theorem CategoryTheory.FunctorToTypes.mem_fromOverSubfunctor_iff Modified Mathlib/CategoryTheory/Limits/Final.lean Modified Mathlib/CategoryTheory/Limits/FinallySmall.lean Added Mathlib/CategoryTheory/Sites/Point/Over.lean + def CategoryTheory.GrothendieckTopology.Point.over 2026-02-13 13:13:05 497de9f chore(Combinatorics/SimpleGraph/Coloring): golf `recolorOfEmbedding` (#35107) ESTIMATED CHANGES Modified Mathlib/Combinatorics/SimpleGraph/Coloring.lean 2026-02-13 13:13:03 5064863 chore(Polynomial/Div): deprecate noncomputable `Decidable` non-instance (#34983) Deprecate `decidableDvdMonic`, which is a noncomputable `Decidable` non-instance and so inferior to `Classical.dec`. This is a leftover from before leanprover-community/mathlib3#1391, in which polynomials were made to use classical logic. ESTIMATED CHANGES Modified Mathlib/Algebra/Polynomial/Div.lean + theorem Polynomial.rootMultiplicity_eq_natFind_of_ne_zero - theorem Polynomial.rootMultiplicity_eq_nat_find_of_nonzero 2026-02-13 13:13:01 085bdcd feat(Algebra/Polynomial/Bivariate): Add lemmas about swap (#34916) ESTIMATED CHANGES Modified Mathlib/Algebra/Polynomial/Bivariate.lean + theorem Polynomial.Bivariate.swap_C + theorem Polynomial.Bivariate.swap_C_C + theorem Polynomial.Bivariate.swap_map_C + theorem Polynomial.evalEval_map_C 2026-02-13 13:12:59 ecba541 chore: deprecate aliases of Classical lemmas (#34625) These are reexported in Init.Classical "for Mathlib compat". ESTIMATED CHANGES Modified Mathlib/Analysis/Polynomial/MahlerMeasure.lean Modified Mathlib/LinearAlgebra/LinearIndependent/Lemmas.lean Modified Mathlib/Logic/Basic.lean - theorem and_or_imp +/- theorem imp_and_neg_imp_iff - theorem imp_iff_right_iff - theorem not_imp 2026-02-13 13:12:58 8b90ac7 feat(Cache): continue trying to download if the first repository had some errors (#34539) For me, it happens occasionally when working on a mathlib PR that downloading from mathlib, just one file fails. (This is more likely when e.g. modifying a syntax linter, so all of mathlib has to be rebuilt, and the mathlib cache has no hits.) Right now, lake exe cache get then skips downloading files from my fork. This is not helpful; these cache files are the ones I would have liked to download. In such situations, I have to manually retry the command. Depending on my network, this can happen several times. This PR changes the cache to keep downloading from the second (or third, fourth, ...) repository. To prevent lots of wasted work, we only do so if the number of failed downloads is small (at most 10). ESTIMATED CHANGES Modified Cache/Requests.lean 2026-02-13 13:12:55 8894c12 chore(Order/RelClasses): resolve TODO (#34386) Resolves TODO in Mathlib/Order/RelClasses by removing `Eq.subset` and renaming `Eq.subset'` to `Eq.subset`. ESTIMATED CHANGES Modified Mathlib/Combinatorics/Matroid/Basic.lean Modified Mathlib/Data/Finset/Card.lean Modified Mathlib/Data/Set/Basic.lean - theorem Eq.subset Modified Mathlib/Data/Set/Card.lean Modified Mathlib/Order/RelClasses.lean Modified Mathlib/Topology/IsLocalHomeomorph.lean 2026-02-13 13:12:53 58616f6 feat(LinearAlgebra/Span): add inter/union/sInf/sSup lemmas for Submodule.span (#33901) This PR adds theorems about the interaction of `Submodule.span` with the lattice operations: * `inter`, `sInf` and `biInter` lemmas for `Submodule.span` * `union`, `sSup` and `biUnion` lemmas for `Submodule.span` It also adds `@[simp]` to `span_union` ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/Span/Defs.lean + theorem Submodule.span_biInter + theorem Submodule.span_biUnion + theorem Submodule.span_inter + theorem Submodule.span_sInf + theorem Submodule.span_sInf_le + theorem Submodule.span_sSup' + theorem Submodule.span_sSup 2026-02-13 12:38:11 81b174f feat(AlgebraicGeometry): reduced group schemes over algclosed fields are smooth (#35166) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/AlgebraicGeometry/AffineScheme.lean + def AlgebraicGeometry.IsAffineOpen.arrowStalkMapIso + theorem AlgebraicGeometry.IsAffineOpen.comap_primeIdealOf_appLE Added Mathlib/AlgebraicGeometry/AlgClosed/Basic.lean + theorem AlgebraicGeometry.SpecMap_residueFieldIsoBase_inv + def AlgebraicGeometry.pointEquivClosedPoint + def AlgebraicGeometry.pointOfClosedPoint + theorem AlgebraicGeometry.pointOfClosedPoint_apply + theorem AlgebraicGeometry.pointOfClosedPoint_comp + def AlgebraicGeometry.residueFieldIsoBase Added Mathlib/AlgebraicGeometry/Group/Smooth.lean + theorem AlgebraicGeometry.smooth_of_grpObj_of_isAlgClosed Modified Mathlib/AlgebraicGeometry/Morphisms/Smooth.lean + theorem AlgebraicGeometry.Scheme.Hom.dense_smoothLocus_of_perfectField + theorem AlgebraicGeometry.Scheme.Hom.genericPoint_mem_smoothLocus_of_perfectField + theorem AlgebraicGeometry.Scheme.Hom.isOpen_smoothLocus + theorem AlgebraicGeometry.Scheme.Hom.mem_smoothLocus + theorem AlgebraicGeometry.Scheme.Hom.preimage_smoothLocus_eq + def AlgebraicGeometry.Scheme.Hom.smoothLocus + theorem AlgebraicGeometry.Scheme.Hom.smoothLocus_eq_top + theorem AlgebraicGeometry.Scheme.Hom.smoothLocus_eq_top_iff + theorem AlgebraicGeometry.exists_smooth_of_formallySmooth_stalk + theorem AlgebraicGeometry.formallySmooth_stalkMap_iff Modified Mathlib/AlgebraicGeometry/Properties.lean Modified Mathlib/RingTheory/Etale/Basic.lean + theorem Algebra.FormallyEtale.iff_restrictScalars + theorem Algebra.FormallySmooth.iff_restrictScalars 2026-02-13 12:38:09 e4999ae feat(CategoryTheory/Sites/DenseSubsite): towards essential surjectivity (#35094) Let `F : C₀ ⥤ C` be a dense subsite and `data : ∀ X, F.OneHypercoverDenseData J₀ J X` be a family of structures. Let `G₀` be a sheaf on `C₀`. We construct a presheaf on `C`, about which we shall show in #34976 that it is a sheaf which extends `C`. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Sites/DenseSubsite/OneHypercoverDense.lean + theorem CategoryTheory.Functor.OneHypercoverDenseData.essSurj.presheafMap_comp + theorem CategoryTheory.Functor.OneHypercoverDenseData.essSurj.presheafMap_id + theorem CategoryTheory.Functor.OneHypercoverDenseData.essSurj.presheafMap_restriction + theorem CategoryTheory.Functor.OneHypercoverDenseData.essSurj.presheafMap_π + theorem CategoryTheory.Functor.OneHypercoverDenseData.essSurj.presheafObj_condition + theorem CategoryTheory.Functor.OneHypercoverDenseData.essSurj.presheafObj_hom_ext + theorem CategoryTheory.Functor.OneHypercoverDenseData.essSurj.presheafObj_mapPreimage_condition + theorem CategoryTheory.Functor.OneHypercoverDenseData.essSurj.restriction.res_eq_res + theorem CategoryTheory.Functor.OneHypercoverDenseData.essSurj.restriction_eq_of_fac + theorem CategoryTheory.Functor.OneHypercoverDenseData.essSurj.restriction_map 2026-02-13 12:38:07 b97d1d0 feat(CategoryTheory/Sites): the Mayer-Vietoris long exact sequence in sheaf cohomology (#35070) In this PR, we obtain the long exact Mayer-Vietoris sequence in sheaf cohomology `... ⟶ H^n₀(S.X₄, F) ⟶ H^n₀(S.X₂, F) ⊞ H^n₀(S.X₃, F) ⟶ H^n₀(S.X₁, F) ⟶ H^n₁(S.X₄, F) ⟶ ...` when `n₀ + 1 = n₁`. It is attached to any "Mayer-Vietoris square", which includes the typical case of a covering by two open subsets in a topological space. (This API shall also apply to the case of Nisnevich distinguished squares of schemes.) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Category/Grp/Biproducts.lean + theorem AddCommGrpCat.biprodIsoProd_inv_comp_desc Modified Mathlib/Algebra/Homology/DerivedCategory/Ext/Basic.lean + theorem CategoryTheory.Abelian.Ext.mk₀_neg Modified Mathlib/CategoryTheory/Preadditive/Opposite.lean + theorem CategoryTheory.op_sub + theorem CategoryTheory.unop_sub Modified Mathlib/CategoryTheory/Shift/ShiftedHom.lean + theorem CategoryTheory.ShiftedHom.mk₀_add + theorem CategoryTheory.ShiftedHom.mk₀_neg Modified Mathlib/CategoryTheory/Sites/SheafCohomology/Basic.lean Added Mathlib/CategoryTheory/Sites/SheafCohomology/MayerVietoris.lean + theorem CategoryTheory.GrothendieckTopology.MayerVietorisSquare.biprodAddEquiv_symm_biprodIsoProd_hom_toBiprod_apply + theorem CategoryTheory.GrothendieckTopology.MayerVietorisSquare.fromBiprod_biprodIsoProd_inv_apply + theorem CategoryTheory.GrothendieckTopology.MayerVietorisSquare.fromBiprod_δ + theorem CategoryTheory.GrothendieckTopology.MayerVietorisSquare.mk₀_f_comp_biprodAddEquiv_symm_biprodIsoProd_hom + theorem CategoryTheory.GrothendieckTopology.MayerVietorisSquare.sequence_exact + theorem CategoryTheory.GrothendieckTopology.MayerVietorisSquare.toBiprod_apply + theorem CategoryTheory.GrothendieckTopology.MayerVietorisSquare.toBiprod_fromBiprod + theorem CategoryTheory.GrothendieckTopology.MayerVietorisSquare.δ_toBiprod 2026-02-13 12:38:02 26397f1 feat(CategoryTheory/Limits): relation between products and wide pullbacks (#35038) In this PR, we show that a wide pullback of arrows `objs j ⟶ B` exists when `B` is terminal and the product of the objects `obj j` exists. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Limits/Constructions/WidePullbackOfTerminal.lean + def CategoryTheory.Limits.WidePullbackCone.isLimitOfFan + theorem CategoryTheory.Limits.hasWidePullback_of_isTerminal 2026-02-13 12:38:01 ecfa43d ci: set "author" explicitly in create-pull-request action (#34981) I'm being [tagged again as co-author for bot PRs](https://github.com/leanprover-community/mathlib4/commit/604007f586e2d08117d5401649a83ea72a8ba950) after #34750 removed the `author` line that was added in #27750. We set the `author` input in all the places where we use the `create-pull-request` action explicitly to the bot's `noreply` email address to prevent this. ESTIMATED CHANGES Modified .github/workflows/nolints.yml Modified .github/workflows/remove_deprecated_decls.yml Modified .github/workflows/update_dependencies.yml 2026-02-13 12:37:59 972c70a feat(RingTheory/Ideal): isomorphism between `stabilizer G Q / inertia G Q` and the Galois group of the residue fields extension (#34730) Construct the isomorphism ```lean4 MulAction.stabilizer G Q ⧸ (Q.inertia G).subgroupOf (MulAction.stabilizer G Q) ≃* Gal((B ⧸ Q)/(A ⧸ P)) ``` where `Q` is a prime ideal of `B` above the ideal `P` of `A`. Also included - add the following abbreviation to make it easier to refer to the inertia group of an ideal ```lean4 abbrev Ideal.inertia (I : Ideal B) : Subgroup G := AddSubgroup.inertia I.toAddSubgroup G ``` - golf the proofs of `ncard_primesOver_mul_card_inertia_mul_finrank` - add ```lean4 lemma card_stabilizer_eq : Nat.card (MulAction.stabilizer G P) = p.ramificationIdxIn S * p.inertiaDegIn S ``` ESTIMATED CHANGES Modified Mathlib/NumberTheory/RamificationInertia/Galois.lean + theorem Ideal.card_stabilizer_eq + theorem Ideal.card_stabilizer_eq_card_inertia_mul_finrank Modified Mathlib/RingTheory/Frobenius.lean Modified Mathlib/RingTheory/Ideal/Defs.lean Modified Mathlib/RingTheory/Ideal/Over.lean Modified Mathlib/RingTheory/Ideal/Pointwise.lean Modified Mathlib/RingTheory/Invariant/Basic.lean + theorem Ideal.Quotient.stabilizerQuotientInertiaEquiv_mk Modified Mathlib/RingTheory/Polynomial/Morse.lean 2026-02-13 11:07:32 8ca4eac doc: replace `{Add,}MonoidHom.mrange_restrict` with `{Add,}MonoidHom.mrangeRestrict` (#34902) `{Add,}MonoidHom.mrange_restrict` are old Mathlib3 spellings. ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Submonoid/Operations.lean 2026-02-13 10:23:51 acb12fd feat(CategoryTheory): group object is commutative if commutator is constant (#35185) We show that a group object `G` is commutative if and only if the commutator morphism `(x, y) ↦ x * y * x⁻¹ * y⁻¹` has constant value `1`. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Monoidal/Cartesian/Grp_.lean + def CategoryTheory.GrpObj.commutator + theorem CategoryTheory.GrpObj.lift_commutator_eq_mul_mul_inv_inv + theorem CategoryTheory.GrpObj.whiskerLeft_η_commutator + theorem CategoryTheory.GrpObj.η_whiskerRight_commutator + theorem CategoryTheory.isCommMonObj_iff_commutator_eq_toUnit_η Modified Mathlib/CategoryTheory/Monoidal/Cartesian/Mon_.lean + theorem CategoryTheory.isCommMonObj_iff_isMulCommutative 2026-02-13 10:23:50 2f2cb23 fix(CategoryTheory/Bicategory): correct instance target (#34975) The instance declared next to `PrelaxFunctor.id` was targeting `PrelaxFunctorStruct B B`, which is already defined earlier in the file. Retarget it to `PrelaxFunctor B B` so this section provides the expected default inhabitant for full prelax functors. This PR was prepared using Codex. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Bicategory/Functor/Prelax.lean 2026-02-13 10:02:43 bf5f6e9 feat(AlgbraicGeometry), `Hom(-, X)` commutes with inverse limits for schemes of finite presentation (#30985) ESTIMATED CHANGES Modified Mathlib/AlgebraicGeometry/AffineTransitionLimit.lean + theorem AlgebraicGeometry.Scheme.exists_π_app_comp_eq_of_locallyOfFinitePresentation Modified Mathlib/CategoryTheory/Filtered/Basic.lean + theorem CategoryTheory.IsCofiltered.wideCospan + theorem CategoryTheory.IsFiltered.wideSpan Modified Mathlib/Topology/Sets/OpenCover.lean + theorem TopologicalSpace.Opens.IsBasis.isOpenCover + theorem TopologicalSpace.Opens.IsBasis.isOpenCover_mem_and_le 2026-02-13 08:30:19 cb597d7 feat(SetTheory/Cardinal/Arithmetic): `Cardinal.mk` is strictly monotone on finite sets (#34695) ESTIMATED CHANGES Modified Mathlib/SetTheory/Cardinal/Basic.lean + theorem Cardinal.mk_monotone + theorem Cardinal.mk_strictMono + theorem Cardinal.mk_strictMonoOn 2026-02-13 06:30:46 60d0c4b chore: update Mathlib dependencies 2026-02-13 (#35225) This PR updates the Mathlib dependencies. ESTIMATED CHANGES Modified lake-manifest.json 2026-02-13 05:47:24 cf6b554 chore: use named fields in `DyckWord.equivTree` (#35231) As suggested in https://github.com/leanprover-community/mathlib4/pull/34143#pullrequestreview-3794748609. ESTIMATED CHANGES Modified Mathlib/Combinatorics/Enumerative/DyckWord.lean +/- def DyckWord.equivTree 2026-02-13 04:47:41 c5134ef chore: use @[to_dual] in Bounds.Basic (#35208) This PR adds `@[to_dual]` name dictionary entries for atom/coatom and lfp/gfp, and uses `@[to_dual]` to auto-generate dual theorems in `Order.Bounds.Basic`, deleting the hand-written versions. 27 `@[to_dual]` annotations total, deleting 27 hand-written duals. Remaining pairs not converted: - `bddAbove_insert`/`bddBelow_insert` — needs `directed`/`codirected` dictionary entry, which causes problems elsewhere - `IsLUB.exists_between`/`IsGLB.exists_between` — `@[to_dual]` swaps the `And` conjuncts - Bounded interval theorems (`Icc`, `Ico`, etc.) — arguments swap under duality - DenselyOrdered interval theorems — dual proofs need `simpa [Ioo_toDual]` - `isGreatest_himp`/`isLeast_sdiff` — needs `himp`/`sdiff` dictionary entry 🤖 Prepared with Claude Code ESTIMATED CHANGES Modified Mathlib/Order/Bounds/Basic.lean - theorem IsGLB.nonempty - theorem IsGLB.prod - theorem IsGLB.unique - theorem IsGreatest.isGreatest_iff_eq - theorem IsGreatest.unique - theorem NoBotOrder.lowerBounds_univ - theorem OrderBot.lowerBounds_univ - theorem bddAbove_iff_subset_Iic - theorem bddBelow_empty - theorem bddBelow_insert +/- theorem isGLB_empty_iff - theorem isGLB_lt_iff - theorem isGLB_pair - theorem isGLB_univ - theorem isGLB_upperBounds +/- theorem isGreatest_univ_iff - theorem isLUB_empty - theorem isLUB_empty_iff - theorem isLeast_pair - theorem isLeast_univ - theorem isLeast_univ_iff - theorem lowerBounds_empty - theorem lowerBounds_insert - theorem lowerBounds_prod - theorem lt_isGLB_iff - theorem nonempty_of_not_bddBelow - theorem not_bddBelow_univ +/- theorem upperBounds_prod Modified Mathlib/Tactic/Translate/ToDual.lean 2026-02-13 04:35:25 d037817 chore: adaptations for batteries#1663 (#35223) After [batteries#1663](https://github.com/leanprover-community/batteries/pull/1663) is merged: - [x] Merge leanprover-community/mathlib4:master - [x] Edit the lakefile to point to leanprover-community/batteries:main - [x] Run lake update batteries - [ ] Wait for CI and merge ESTIMATED CHANGES Modified Mathlib/Data/Bool/Count.lean Modified Mathlib/Data/List/Chain.lean - theorem List.IsChain.of_cons Modified lake-manifest.json 2026-02-13 04:35:23 af5e2dd chore: run `lake shake --add-public --keep-implied --keep-prefix --fix` (#34511) ESTIMATED CHANGES Modified Mathlib/Algebra/BigOperators/Finprod.lean Modified Mathlib/Algebra/BigOperators/Group/Finset/Gaps.lean Modified Mathlib/Algebra/BigOperators/GroupWithZero/Action.lean Modified Mathlib/Algebra/Category/ModuleCat/Ext/DimensionShifting.lean Modified Mathlib/Algebra/Category/ModuleCat/Ext/Finite.lean Modified Mathlib/Algebra/Group/Action/Hom.lean Modified Mathlib/Algebra/Group/Submonoid/Operations.lean Modified Mathlib/Algebra/Group/TypeTags/Basic.lean Modified Mathlib/Algebra/Order/BigOperators/GroupWithZero/List.lean Modified Mathlib/Algebra/Order/GroupWithZero/Unbundled/Basic.lean Modified Mathlib/Algebra/Order/Monoid/Canonical/Basic.lean Modified Mathlib/Algebra/Polynomial/Basic.lean Modified Mathlib/Algebra/TrivSqZeroExt.lean Modified Mathlib/AlgebraicGeometry/Fiber.lean Modified Mathlib/AlgebraicGeometry/Limits.lean Modified Mathlib/AlgebraicGeometry/Morphisms/QuasiFinite.lean Modified Mathlib/AlgebraicTopology/ModelCategory/BifibrantObjectHomotopy.lean Modified Mathlib/Analysis/Asymptotics/Completion.lean Modified Mathlib/Analysis/Asymptotics/Lemmas.lean Modified Mathlib/Analysis/Asymptotics/TVS.lean Modified Mathlib/Analysis/Calculus/FDeriv/Basic.lean Modified Mathlib/Analysis/Calculus/FDeriv/Const.lean Modified Mathlib/Analysis/Calculus/TangentCone/Basic.lean Modified Mathlib/Analysis/Calculus/TangentCone/Defs.lean Modified Mathlib/Analysis/Calculus/TangentCone/DimOne.lean Modified Mathlib/Analysis/Calculus/TangentCone/Real.lean Modified Mathlib/Analysis/InnerProductSpace/Adjoint.lean Modified Mathlib/Analysis/InnerProductSpace/LinearMap.lean Modified Mathlib/Analysis/Normed/Field/TransferInstance.lean Modified Mathlib/Analysis/Normed/Group/Basic.lean Modified Mathlib/Analysis/Normed/Group/Defs.lean Modified Mathlib/Analysis/Normed/Module/ContinuousInverse.lean Modified Mathlib/Analysis/Normed/Module/Multilinear/Basic.lean Modified Mathlib/Analysis/Normed/Module/Multilinear/Curry.lean Modified Mathlib/Analysis/Normed/Operator/CompleteCodomain.lean Modified Mathlib/Analysis/Normed/Operator/ContinuousAlgEquiv.lean Modified Mathlib/Analysis/Normed/Ring/TransferInstance.lean Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Chebyshev/Orthogonality.lean Modified Mathlib/CategoryTheory/Abelian/GrothendieckCategory/EnoughInjectives.lean Modified Mathlib/CategoryTheory/Abelian/SerreClass/MorphismProperty.lean Modified Mathlib/CategoryTheory/Bicategory/Extension.lean Modified Mathlib/CategoryTheory/ConcreteCategory/BundledHom.lean Modified Mathlib/CategoryTheory/ConcreteCategory/UnbundledHom.lean Modified Mathlib/CategoryTheory/GradedObject.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Pullback/EquifiberedLimits.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Pullback/IsPullback/Kernels.lean Modified Mathlib/CategoryTheory/Monoidal/Opposite.lean Modified Mathlib/CategoryTheory/NatIso.lean Modified Mathlib/CategoryTheory/Shift/Adjunction.lean Modified Mathlib/Combinatorics/Pigeonhole.lean Modified Mathlib/Combinatorics/SimpleGraph/Extremal/TuranDensity.lean Modified Mathlib/Computability/AkraBazzi/AkraBazzi.lean Modified Mathlib/Computability/AkraBazzi/GrowsPolynomially.lean Modified Mathlib/Data/DFinsupp/BigOperators.lean Modified Mathlib/Data/Fin/Tuple/Sort.lean Modified Mathlib/Data/Finite/Defs.lean Modified Mathlib/Data/Finset/Attr.lean Modified Mathlib/Data/List/DropRight.lean Modified Mathlib/Data/List/GetD.lean Modified Mathlib/Data/List/Induction.lean Modified Mathlib/Data/List/Infix.lean Modified Mathlib/Data/Matrix/Mul.lean Modified Mathlib/Data/Multiset/Interval.lean Modified Mathlib/Data/Nat/Bits.lean Modified Mathlib/Data/Set/Card/Arithmetic.lean Modified Mathlib/Data/Set/Operations.lean Modified Mathlib/Dynamics/Flow.lean Modified Mathlib/FieldTheory/IntermediateField/Adjoin/Basic.lean Modified Mathlib/FieldTheory/IsAlgClosed/Basic.lean Modified Mathlib/FieldTheory/PrimeField.lean Modified Mathlib/FieldTheory/SeparableDegree.lean Modified Mathlib/Geometry/Polygon/Basic.lean Modified Mathlib/GroupTheory/CosetCover.lean Modified Mathlib/GroupTheory/FreeGroup/Basic.lean Modified Mathlib/GroupTheory/GroupAction/Primitive.lean Modified Mathlib/GroupTheory/Perm/Support.lean Modified Mathlib/LinearAlgebra/Center.lean Modified Mathlib/LinearAlgebra/Finsupp/Pi.lean Modified Mathlib/LinearAlgebra/Multilinear/Basic.lean Modified Mathlib/LinearAlgebra/TensorProduct/Free.lean Modified Mathlib/MeasureTheory/Function/ConditionalLExpectation.lean Modified Mathlib/MeasureTheory/Function/LpSeminorm/Basic.lean Modified Mathlib/MeasureTheory/Function/LpSeminorm/Indicator.lean Modified Mathlib/MeasureTheory/Measure/SubFinite.lean Modified Mathlib/ModelTheory/Arithmetic/Presburger/Semilinear/Defs.lean Modified Mathlib/NumberTheory/FactorisationProperties.lean Modified Mathlib/Order/GaloisConnection/Defs.lean Modified Mathlib/Order/Interval/Finset/Gaps.lean Modified Mathlib/Order/ScottContinuity.lean Modified Mathlib/RepresentationTheory/FinGroupCharZero.lean Modified Mathlib/RepresentationTheory/Semisimple.lean Modified Mathlib/RingTheory/Adjoin/Basic.lean Modified Mathlib/RingTheory/Etale/QuasiFinite.lean Modified Mathlib/RingTheory/Ideal/Height.lean Modified Mathlib/RingTheory/Ideal/KrullsHeightTheorem.lean Modified Mathlib/RingTheory/IntegralClosure/IntegrallyClosed.lean Modified Mathlib/RingTheory/Lasker.lean Modified Mathlib/RingTheory/Localization/FractionRing.lean Modified Mathlib/RingTheory/OrderOfVanishing.lean Modified Mathlib/RingTheory/Polynomial/ContentIdeal.lean Modified Mathlib/RingTheory/Spectrum/Prime/Noetherian.lean Modified Mathlib/RingTheory/TensorProduct/Nontrivial.lean Modified Mathlib/RingTheory/Valuation/FiniteField.lean Modified Mathlib/RingTheory/Valuation/RankOne.lean Modified Mathlib/RingTheory/Valuation/ValuationRing.lean Modified Mathlib/Tactic/Abel.lean Modified Mathlib/Tactic/ApplyWith.lean Modified Mathlib/Tactic/Attr/Register.lean Modified Mathlib/Tactic/ComputeAsymptotics/Multiseries/Basis.lean Modified Mathlib/Tactic/ComputeAsymptotics/Multiseries/Corecursion.lean Modified Mathlib/Tactic/FieldSimp.lean Modified Mathlib/Tactic/HigherOrder.lean Modified Mathlib/Tactic/Linter/DirectoryDependency.lean Modified Mathlib/Tactic/Linter/TextBased.lean Modified Mathlib/Tactic/Linter/UpstreamableDecl.lean Modified Mathlib/Tactic/Nontriviality/Core.lean Modified Mathlib/Tactic/Ring/Basic.lean Modified Mathlib/Tactic/Ring/Common.lean Modified Mathlib/Tactic/Ring/Compare.lean Modified Mathlib/Tactic/Ring/RingNF.lean Modified Mathlib/Tactic/SetLike.lean Modified Mathlib/Tactic/Translate/Core.lean Modified Mathlib/Tactic/Translate/TagUnfoldBoundary.lean Modified Mathlib/Tactic/Translate/UnfoldBoundary.lean Modified Mathlib/Tactic/Widget/InteractiveUnfold.lean Modified Mathlib/Tactic/Zify.lean Modified Mathlib/Topology/Algebra/InfiniteSum/ENNReal.lean Modified Mathlib/Topology/Algebra/OpenSubgroup.lean Modified Mathlib/Topology/ContinuousMap/Defs.lean Modified Mathlib/Topology/Defs/Basic.lean Modified Mathlib/Topology/Defs/Filter.lean Modified Mathlib/Topology/EMetricSpace/BoundedVariation.lean Modified Mathlib/Topology/Instances/ENNReal/Lemmas.lean Modified Mathlib/Topology/MetricSpace/Pseudo/Constructions.lean Modified Mathlib/Topology/MetricSpace/Ultra/Basic.lean Modified Mathlib/Topology/Order/AtTopBotIxx.lean Modified Mathlib/Topology/Sheaves/Alexandrov.lean Modified Mathlib/Topology/Sheaves/MayerVietoris.lean Modified Mathlib/Util/DischargerAsTactic.lean Modified Mathlib/Util/Qq.lean 2026-02-13 04:22:21 35fe6a0 chore: make Dyck word definitions public (#34143) * `equivTreeToFun` -> `toTree` * `equivTreeInvFun` -> `ofTree` Also remove the two `unusedHavesSuffices` nolints from a time when the linter was not as discerning. ESTIMATED CHANGES Modified Mathlib/Combinatorics/Enumerative/DyckWord.lean +/- def DyckWord.equivTree +/- def DyckWord.equivTreesOfNumNodesEq + theorem DyckWord.numNodes_toTree + def DyckWord.ofTree + theorem DyckWord.ofTree_toTree - theorem DyckWord.semilength_eq_numNodes_equivTree + def DyckWord.toTree + theorem DyckWord.toTree_ofTree 2026-02-13 02:37:22 80dbc51 feat: order topologies of successor orders (#32455) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Order/Cover.lean + theorem CovBy.Ioo_eq_Ico + theorem CovBy.Ioo_eq_Ioc Modified Mathlib/SetTheory/Ordinal/Topology.lean +/- theorem Ordinal.isOpen_iff +/- theorem Ordinal.isOpen_singleton_iff +/- theorem Ordinal.isSuccLimit_of_mem_frontier Added Mathlib/Topology/Order/SuccPred.lean + theorem PredOrder.isOpen_iff + theorem PredOrder.isOpen_singleton_iff + theorem PredOrder.isOpen_singleton_of_not_isPredPrelimit + theorem PredOrder.isPredLimit_of_mem_frontier + theorem PredOrder.nhds_eq_pure + theorem SuccOrder.isOpen_iff + theorem SuccOrder.isOpen_singleton_iff + theorem SuccOrder.isOpen_singleton_of_not_isSuccPrelimit + theorem SuccOrder.isSuccLimit_of_mem_frontier + theorem SuccOrder.nhds_eq_pure 2026-02-13 02:09:04 da3584a chore: support revised nightly toolchains (nightly-YYYY-MM-DD-revK) (#35220) This PR updates nightly workflow scripts to handle revised nightly toolchains (`nightly-YYYY-MM-DD-revK`). When multiple nightlies are released for the same date, the revision suffix ensures correct ordering and matching in tag grep patterns, version extraction regexes, and deduplication checks. Changes: - `nightly_bump_and_merge.yml`: update tag grep pattern and use `sort -rV` for correct version ordering - `nightly_detect_failure.yml`: update JS/Python regexes and warning message to handle `-revK` suffix Companion to https://github.com/leanprover/lean4/pull/12461 🤖 Prepared with Claude Code ESTIMATED CHANGES Modified .github/workflows/nightly_bump_and_merge.yml Modified .github/workflows/nightly_detect_failure.yml 2026-02-13 01:31:35 6c1d14f feat(SetTheory/Cardinal): helpers for Konig's theorem on bipartite graphs (#32552) Implement helper lemmas for Konig's theorem on bipartite graphs ESTIMATED CHANGES Modified Mathlib/SetTheory/Cardinal/Arithmetic.lean + theorem Cardinal.add_lt_add_iff_of_left_lt_aleph0 + theorem Cardinal.add_lt_add_iff_of_right_lt_aleph0 + theorem Cardinal.mul_natCast_inj + theorem Cardinal.mul_natCast_le_mul_natCast + theorem Cardinal.mul_natCast_lt_mul_natCast + theorem Cardinal.mul_natCast_strictMono + theorem Cardinal.natCast_mul_inj + theorem Cardinal.natCast_mul_le_natCast_mul + theorem Cardinal.natCast_mul_lt_natCast_mul + theorem Cardinal.natCast_mul_strictMono Modified Mathlib/SetTheory/Cardinal/Basic.lean + theorem Cardinal.card_lt_card_of_left_finite + theorem Cardinal.card_lt_card_of_right_finite 2026-02-13 00:33:20 721e21b feat(Analysis/RCLike/Basic): add `re_mul_ofReal` and `im_mul_ofReal` (#35170) This PR adds missing API lemmas `re_mul_ofReal` and `im_mul_ofReal` for `RCLike.re`. ESTIMATED CHANGES Modified Mathlib/Analysis/RCLike/Basic.lean + theorem RCLike.im_mul_ofReal + theorem RCLike.re_mul_ofReal 2026-02-12 23:53:53 b4292a2 feat(Finpartition): remove unnecessary `DistribLattice` assumptions (#34545) This PR weakens the typeclass assumptions of some lemmas and constructions: * generalizes `exists_le_of_le` and `card_mono` from `DistribLattice` to `Lattice` * generalizes `extend` from `DistribLattice` to `IsModularLattice` * generalizes `combine` from `DistribLattice` to `IsModularLattice` (this requires changing the argument from `PairwiseDisjoint` to `SupIndep`) * redefines `bind` using `combine` in a way that is defeq to the current definition ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Measure/PreVariation.lean Modified Mathlib/Order/Partition/Finpartition.lean +/- def Finpartition.bind Modified Mathlib/Order/SupIndep.lean 2026-02-12 23:41:20 c72b0ec feat: define `ConditionallyCompletePartialOrder` (#35046) This file defines *conditionally complete partial orders* with suprema, infima or both. These are partial orders where every nonempty, upwards (downwards) directed set which is bounded above (below) has a least upper bound (greatest lower bound). This class extends `SupSet` (`InfSet`) and the requirement is that `sSup` (`sInf`) must be the least upper bound. The three classes defined herein are: + `ConditionallyCompletePartialOrderSup` for partial orders with suprema, + `ConditionallyCompletePartialOrderInf` for partial orders with infima, and + `ConditionallyCompletePartialOrder` for partial orders with both suprema and infima One common use case for these classes is the order on a von Neumann algebra, or W⋆-algebra. This is the strongest order-theoretic structure satisfied by a von Neumann algebra; in particular it is *not* a conditionally complete *lattice*, and indeed it is a lattice if and only if the algebra is commutative. In addition, `ℂ` can be made to satisfy this class (one must provide a suitable `SupSet` instance), with the order `w ≤ z ↔ w.re ≤ z.re ∧ w.im = z.im`, which is available in the `ComplexOrder` namespace. These use cases are the motivation for defining three classes, as compared with other parts of the order theory library, where only the supremum versions are defined (e.g., `CompletePartialOrder` and `OmegaCompletePartialOrder`). We note that, if these classes are used outside of order theory, then it is more likely that the infimum versions would be useful. Indeed, whenever the underlying type has an antitone involution (e.g., if it is an ordered ring, then negation would be such a map), then any `ConditionallyCompletePartialOrder{Sup,Inf}` is automatically a `ConditionallyCompletePartialOrder`. Because of the `to_dual` attribute, the additional overhead required to add and maintain the infimum version is minimal. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Order/ConditionallyCompletePartialOrder/Defs.lean 2026-02-12 23:20:05 5264399 chore: add missing deprecation for eLpNorm_eq_lintegral_rpow_enorm (#35203) From #23881. ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Function/LpSeminorm/Defs.lean 2026-02-12 23:20:03 9de22ff chore(Algebra/Module): golf proofs (#35192) ESTIMATED CHANGES Modified Mathlib/Algebra/Module/FinitePresentation.lean Modified Mathlib/Algebra/Module/ZLattice/Summable.lean 2026-02-12 21:03:56 3efa021 chore(LinearAlgebra/{ExteriorAlgebra,ExteriorPower}): refactor `ExteriorAlgebra.ιMulti_family` and `exteriorPower.ιMulti_family` to use `Set.powersetCard` (#35167) Rewrites `ExteriorAlgebra.ιMulti_family` and `exteriorPower.ιMulti_family` to use `Set.powersetCard` instead of an explicit subtype. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/LinearAlgebra/ExteriorAlgebra/Basic.lean Modified Mathlib/LinearAlgebra/ExteriorPower/Basic.lean Added Mathlib/Order/Hom/PowersetCard.lean + def Set.powersetCard.ofFinEmbEquiv + theorem Set.powersetCard.ofFinEmbEquiv_apply + theorem Set.powersetCard.ofFinEmbEquiv_symm_apply 2026-02-12 20:44:21 5e90e80 feat(Mathlib/Analysis/Polynomial/Fourier): Add Parseval's Identity specialized to Polynomials (#33507) Parseval's identity specialized to polynomials states that the sum of the norm squared coefficients is equal to the average of the norm of the polynomial squared on the circle. We prove this fact. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Analysis/Complex/Circle.lean + theorem Circle.coe_pow + theorem Circle.coe_zpow + theorem Circle.exp_intCast_mul + theorem Circle.exp_natCast_mul + theorem Circle.exp_nsmul + theorem Circle.exp_zsmul Modified Mathlib/Analysis/Fourier/AddCircle.lean + theorem MeasureTheory.Integrable.fourier_smul + theorem fourierCoeff.add + theorem fourierCoeff.sum + theorem fourierCoeff_fourier Added Mathlib/Analysis/Polynomial/Fourier.lean + theorem Polynomial.fourierCoeff_toAddCircle + theorem Polynomial.fourierCoeff_toAddCircle_eq_zero_of_lt_zero + theorem Polynomial.fourierCoeff_toAddCircle_natCast + theorem Polynomial.sum_sq_norm_coeff_eq_circleAverage + theorem Polynomial.toAddCircle.integrable + theorem Polynomial.toAddCircle_C_eq_smul_fourier_zero + theorem Polynomial.toAddCircle_X_eq_fourier_one + theorem Polynomial.toAddCircle_X_pow_eq_fourier + theorem Polynomial.toAddCircle_monomial_eq_smul_fourier Modified Mathlib/Analysis/SpecialFunctions/Complex/Circle.lean 2026-02-12 19:30:08 6c7376c feat(NumberTheory/ModularForms): remove unnecessary instance arguments (#35169) Adjust proof of `isCusp_of_mem_strictPeriods` to get rid of two unnecessary instance arguments. ESTIMATED CHANGES Modified Mathlib/NumberTheory/ModularForms/Cusps.lean +/- theorem Subgroup.isCusp_of_mem_strictPeriods Modified Mathlib/NumberTheory/ModularForms/QExpansion.lean +/- theorem CuspFormClass.exp_decay_atImInfty' +/- theorem ModularFormClass.analyticAt_cuspFunction_zero +/- theorem ModularFormClass.cuspFunction_apply_zero +/- theorem ModularFormClass.differentiableAt_cuspFunction +/- theorem ModularFormClass.differentiableOn_cuspFunction_ball +/- theorem ModularFormClass.exp_decay_sub_atImInfty +/- theorem ModularFormClass.hasFPowerSeries_cuspFunction +/- theorem ModularFormClass.hasSum_qExpansion +/- theorem ModularFormClass.hasSum_qExpansion_of_norm_lt +/- theorem ModularFormClass.qExpansionFormalMultilinearSeries_radius +/- theorem ModularFormClass.qExpansion_coeff_eq_circleIntegral +/- theorem ModularFormClass.qExpansion_coeff_eq_intervalIntegral +/- theorem ModularFormClass.qExpansion_coeff_zero +/- theorem UpperHalfPlane.IsZeroAtImInfty.exp_decay_atImInfty 2026-02-12 19:03:10 22e2df2 feat(Topology/Algebra/ContinuousMonoidHom): add missing API for monoid structure (#34535) This PR adds missing API for the monoid structure on `ContinuousMonoidHom`. ESTIMATED CHANGES Modified Mathlib/Topology/Algebra/ContinuousMonoidHom.lean + theorem ContinuousMonoidHom.mul_apply + theorem ContinuousMonoidHom.pow_apply 2026-02-12 18:48:29 ab2f778 chore(CategoryTheory/Subobject): missing simp lemma on self equalizers (#35177) Missing simp lemma on `equalizerSubobject f f = ⊤`. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Subobject/Limits.lean + theorem CategoryTheory.Limits.equalizerSubobject_of_self +/- theorem CategoryTheory.Limits.kernelSubobject_zero 2026-02-12 16:20:19 4afbe26 feat(Algebra/Lie/BaseChange): map of base-changed Lie algebras (#34865) Given a homomorphism of commutative `R`-algebras and an `R`-Lie algebra map, we define an `R`-Lie algebra map of the base-changed Lie algebras. ESTIMATED CHANGES Modified Mathlib/Algebra/Lie/BaseChange.lean + def LieAlgebra.ExtendScalars.map + theorem LieAlgebra.ExtendScalars.map_apply_tmul 2026-02-12 15:58:38 fe7639f feat(AlgebraicGeometry): `Semiring` structure on ideal sheaves (#34935) ESTIMATED CHANGES Modified Mathlib/AlgebraicGeometry/IdealSheaf/Basic.lean + theorem AlgebraicGeometry.Scheme.IdealSheafData.add_eq_sup + theorem AlgebraicGeometry.Scheme.IdealSheafData.bot_mul +/- def AlgebraicGeometry.Scheme.IdealSheafData.equivOfIsAffine + theorem AlgebraicGeometry.Scheme.IdealSheafData.equivOfIsAffine_apply + theorem AlgebraicGeometry.Scheme.IdealSheafData.equivOfIsAffine_symm_apply + theorem AlgebraicGeometry.Scheme.IdealSheafData.ideal_mul + theorem AlgebraicGeometry.Scheme.IdealSheafData.ideal_pow + theorem AlgebraicGeometry.Scheme.IdealSheafData.inf_mul + theorem AlgebraicGeometry.Scheme.IdealSheafData.mem_supportSet_iff_mem_support + theorem AlgebraicGeometry.Scheme.IdealSheafData.mul_bot + theorem AlgebraicGeometry.Scheme.IdealSheafData.mul_inf + theorem AlgebraicGeometry.Scheme.IdealSheafData.mul_top + theorem AlgebraicGeometry.Scheme.IdealSheafData.one_eq_top + theorem AlgebraicGeometry.Scheme.IdealSheafData.radical_mul + theorem AlgebraicGeometry.Scheme.IdealSheafData.support_mul + theorem AlgebraicGeometry.Scheme.IdealSheafData.support_pow + theorem AlgebraicGeometry.Scheme.IdealSheafData.support_pow_succ + theorem AlgebraicGeometry.Scheme.IdealSheafData.top_mul + theorem AlgebraicGeometry.Scheme.IdealSheafData.zero_eq_bot Modified Mathlib/AlgebraicGeometry/Scheme.lean + theorem AlgebraicGeometry.Scheme.zeroLocus_mul + theorem AlgebraicGeometry.Scheme.zeroLocus_setMul 2026-02-12 14:22:24 d4a1d6e feat(CategoryTheory/Sites): pullback point along flat functor (#35124) For `F : C ⥤ D` a representably flat and cover preserving functor between sites, we construct a point on `C` from a point on `D` by precomposing the fiber functor with `F`. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Filtered/Basic.lean + theorem CategoryTheory.IsCofiltered.iff_of_equivalence + theorem CategoryTheory.IsFiltered.iff_of_equivalence + theorem CategoryTheory.isCofiltered_op_iff_isFiltered + theorem CategoryTheory.isFiltered_op_iff_isCofiltered Modified Mathlib/CategoryTheory/Functor/Flat.lean Modified Mathlib/CategoryTheory/Sites/Point/Basic.lean + def CategoryTheory.GrothendieckTopology.Point.comap 2026-02-12 13:23:01 e3e3ff8 perf(to_dual): first try translating without inserting casts (#35131) This PR addresses the performance regression introduced by #32438. The problem is that deciding where casts need to be inserted is an expensive operation (similarly expensive to kernel type checking). I expect that in category theory this will be particularly significant. Most uses of `to_dual` don't need any casts to be inserted at all. So, it is more efficient to simply first try translating without inserting casts. And if that fails, we insert casts and then try again. So after this PR, in the failure case, `to_dual` will check the term 4 times: - first try the translation without casts - then determine where casts should go - then try the translation of this - then use `Meta.check` to get a nicer error message. This is OK, since the failure case is not the performance critical case. ESTIMATED CHANGES Modified Mathlib/Tactic/Translate/Core.lean + def Mathlib.Tactic.Translate.updateAndAddDecl Modified Mathlib/Tactic/Translate/UnfoldBoundary.lean - def Mathlib.Tactic.UnfoldBoundary.UnfoldBoundaries.cast - def Mathlib.Tactic.UnfoldBoundary.UnfoldBoundaries.insertBoundaries - def Mathlib.Tactic.UnfoldBoundary.UnfoldBoundaries.unfoldInsertions Modified MathlibTest/ToDual.lean 2026-02-12 12:31:07 cb07be6 feat(Algebra/Category): `IsQuasicoherent` from a cover (#35168) ESTIMATED CHANGES Modified Mathlib/Algebra/Category/ModuleCat/Sheaf/Generators.lean + theorem SheafOfModules.GeneratingSections.ofEpi_π Modified Mathlib/Algebra/Category/ModuleCat/Sheaf/PushforwardContinuous.lean + def SheafOfModules.pushforwardPushforwardEquivalence + theorem SheafOfModules.pushforwardPushforwardEquivalence_counit_app_val_app + theorem SheafOfModules.pushforwardPushforwardEquivalence_unit_app_val_app Modified Mathlib/Algebra/Category/ModuleCat/Sheaf/Quasicoherent.lean + theorem SheafOfModules.IsQuasicoherent.of_coversTop + theorem SheafOfModules.QuasicoherentData.isQuasicoherent + def SheafOfModules.QuasicoherentData.shrink Modified Mathlib/CategoryTheory/Sites/Sieves.lean + theorem CategoryTheory.Sieve.functorPushforward_ofObjects_le + theorem CategoryTheory.Sieve.ofObjects_mono + theorem CategoryTheory.Sieve.pullback_ofObjects 2026-02-12 12:31:05 3bc3642 chore(Analysis/SchwartzSpace): golf proof (#35164) Use asymptotics to simply a proof significantly. ESTIMATED CHANGES Modified Mathlib/Analysis/Distribution/SchwartzSpace/Basic.lean + theorem SchwartzMap.tendsto_cocompact 2026-02-12 11:35:55 7d6b43d chore: move import of `Simproc.ExistsAndEq` (#35138) This PR moves the import of `Simproc.ExistsAndEq` to the more appropriate `Mathlib.Tactic.Common`. The previous location `Tactic.Basic` was an oversight: by its module doc-string, that file is for utilities for tactic writing - not for importing specific tactics or simprocs. This reduces the longest pole. ESTIMATED CHANGES Modified Mathlib/Data/Set/Insert.lean Modified Mathlib/Tactic/Basic.lean Modified Mathlib/Tactic/Common.lean 2026-02-12 11:23:34 9227fd8 ci: use sticky-pull-request-comment for updating PR comment (#35160) Replace custom PR comment update logic with `marocchino/sticky-pull-request-comment` for consistency across workflows ESTIMATED CHANGES Modified .github/workflows/label_new_contributor.yml 2026-02-12 11:04:42 95f7066 chore(Charpoly/Disc): use `nontriviality` to drop a `Nontrivial` assumption (#35117) ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/Matrix/Charpoly/Disc.lean Modified Mathlib/LinearAlgebra/Matrix/GeneralLinearGroup/FinTwo.lean +/- theorem Matrix.GeneralLinearGroup.isParabolic_conj_iff' +/- theorem Matrix.GeneralLinearGroup.isParabolic_conj_iff 2026-02-12 10:17:23 d673ef8 perf: remove unnecessary `nsmul := (· • ·)` (#35142) This PR removes some unnecessary `nsmul := (· • ·)`. In particular the modified instance `AddCommGroup (M →SL[σ₁₂] M₂)` now has faster unification properties. This is the same effect as we had in #30734 ESTIMATED CHANGES Modified Mathlib/Algebra/RingQuot.lean Modified Mathlib/Topology/Algebra/Module/LinearMap.lean 2026-02-12 09:07:19 4aa0616 refactor(LinearAlgebra/TensorProduct): split large file (#34798) Split > 1500-line file `Mathlib/LinearAlgebra/TensorProduct/Basic.lean` into 3 more manageable chunks: - `Defs.lean`: definition of `M ⊗ N` as a quotient of `FreeAddMonoid (M × N)` (500 lines) - `Basic.lean`: universal property of `M ⊗ N`, lifting bilinear maps `M → N → P` to linear maps `M ⊗ N → P` (380 lines) - `Map.lean`: linear maps `M ⊗ N → M' ⊗ N'` induced by maps `M → M'` and `N → N'` (and one-sided versions of that) (750 lines) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Algebra/Bilinear.lean Modified Mathlib/Algebra/Star/TensorProduct.lean Modified Mathlib/Analysis/InnerProductSpace/TensorProduct.lean Modified Mathlib/Geometry/Convex/Cone/TensorProduct.lean Modified Mathlib/LinearAlgebra/Matrix/Kronecker.lean Modified Mathlib/LinearAlgebra/TensorProduct/Associator.lean Modified Mathlib/LinearAlgebra/TensorProduct/Basic.lean - theorem Equiv.tensorProductComm_def - theorem IsAddUnit.tmul_left - theorem IsAddUnit.tmul_right - theorem LinearEquiv.coe_lTensor - theorem LinearEquiv.coe_lTensor_symm - theorem LinearEquiv.coe_rTensor - theorem LinearEquiv.coe_rTensor_symm - theorem LinearEquiv.comm_trans_lTensor_trans_comm_eq - theorem LinearEquiv.comm_trans_rTensor_trans_comm_eq - theorem LinearEquiv.congr_trans_lTensor - theorem LinearEquiv.congr_trans_rTensor - def LinearEquiv.lTensor - theorem LinearEquiv.lTensor_mul - theorem LinearEquiv.lTensor_pow - theorem LinearEquiv.lTensor_refl - theorem LinearEquiv.lTensor_refl_apply - theorem LinearEquiv.lTensor_symm_tmul - theorem LinearEquiv.lTensor_tmul - theorem LinearEquiv.lTensor_trans - theorem LinearEquiv.lTensor_trans_apply - theorem LinearEquiv.lTensor_trans_congr - theorem LinearEquiv.lTensor_trans_rTensor - theorem LinearEquiv.lTensor_zpow - def LinearEquiv.rTensor - theorem LinearEquiv.rTensor_mul - theorem LinearEquiv.rTensor_pow - theorem LinearEquiv.rTensor_refl - theorem LinearEquiv.rTensor_refl_apply - theorem LinearEquiv.rTensor_symm_tmul - theorem LinearEquiv.rTensor_tmul - theorem LinearEquiv.rTensor_trans - theorem LinearEquiv.rTensor_trans_apply - theorem LinearEquiv.rTensor_trans_congr - theorem LinearEquiv.rTensor_trans_lTensor - theorem LinearEquiv.rTensor_zpow - theorem LinearMap.coe_lTensorHom - theorem LinearMap.coe_rTensorHom - theorem LinearMap.comm_comp_lTensor_comp_comm_eq - theorem LinearMap.comm_comp_rTensor_comp_comm_eq - def LinearMap.lTensor - def LinearMap.lTensorHom - theorem LinearMap.lTensor_add - theorem LinearMap.lTensor_bij_iff_rTensor_bij - theorem LinearMap.lTensor_comm - theorem LinearMap.lTensor_comp - theorem LinearMap.lTensor_comp_apply - theorem LinearMap.lTensor_comp_comm - theorem LinearMap.lTensor_comp_map - theorem LinearMap.lTensor_comp_mk - theorem LinearMap.lTensor_comp_rTensor - theorem LinearMap.lTensor_def - theorem LinearMap.lTensor_id - theorem LinearMap.lTensor_id_apply - theorem LinearMap.lTensor_inj_iff_rTensor_inj - theorem LinearMap.lTensor_map - theorem LinearMap.lTensor_mul - theorem LinearMap.lTensor_neg - theorem LinearMap.lTensor_pow - theorem LinearMap.lTensor_smul - theorem LinearMap.lTensor_smul_action - theorem LinearMap.lTensor_sub - theorem LinearMap.lTensor_surj_iff_rTensor_surj - theorem LinearMap.lTensor_tmul - theorem LinearMap.lTensor_zero - theorem LinearMap.map_comp_lTensor - theorem LinearMap.map_comp_rTensor - theorem LinearMap.map_lTensor - theorem LinearMap.map_rTensor - def LinearMap.rTensor - def LinearMap.rTensorHom - theorem LinearMap.rTensor_add - theorem LinearMap.rTensor_comm - theorem LinearMap.rTensor_comp - theorem LinearMap.rTensor_comp_apply - theorem LinearMap.rTensor_comp_comm - theorem LinearMap.rTensor_comp_flip_mk - theorem LinearMap.rTensor_comp_lTensor - theorem LinearMap.rTensor_comp_map - theorem LinearMap.rTensor_def - theorem LinearMap.rTensor_id - theorem LinearMap.rTensor_id_apply - theorem LinearMap.rTensor_map - theorem LinearMap.rTensor_mul - theorem LinearMap.rTensor_neg - theorem LinearMap.rTensor_pow - theorem LinearMap.rTensor_smul - theorem LinearMap.rTensor_smul_action - theorem LinearMap.rTensor_sub - theorem LinearMap.rTensor_tmul - theorem LinearMap.rTensor_zero - theorem LinearMap.smul_lTensor - inductive TensorProduct.Eqv - def TensorProduct.SMul.aux - theorem TensorProduct.SMul.aux_of - theorem TensorProduct.add_tmul - def TensorProduct.congr - theorem TensorProduct.congr_congr - theorem TensorProduct.congr_mul - theorem TensorProduct.congr_pow - theorem TensorProduct.congr_refl_refl - theorem TensorProduct.congr_symm - theorem TensorProduct.congr_symm_tmul - theorem TensorProduct.congr_tmul - theorem TensorProduct.congr_trans - theorem TensorProduct.congr_zpow - theorem TensorProduct.exists_eq_tmul_of_forall - def TensorProduct.homTensorHomMap - theorem TensorProduct.homTensorHomMap_apply - theorem TensorProduct.ite_tmul - def TensorProduct.lTensorHomToHomLTensor - theorem TensorProduct.lTensorHomToHomLTensor_apply - theorem TensorProduct.lift_comp_map - def TensorProduct.map - def TensorProduct.mapBilinear - theorem TensorProduct.mapBilinear_apply - def TensorProduct.mapIncl - theorem TensorProduct.map_add_left - theorem TensorProduct.map_add_right - theorem TensorProduct.map_bijective - theorem TensorProduct.map_comm - theorem TensorProduct.map_comp - theorem TensorProduct.map_comp_comm_eq - theorem TensorProduct.map_id - theorem TensorProduct.map_map - theorem TensorProduct.map_smul_left - theorem TensorProduct.map_smul_right - theorem TensorProduct.map_tmul - theorem TensorProduct.map_zero_left - theorem TensorProduct.map_zero_right - def TensorProduct.map₂ - theorem TensorProduct.map₂_apply_tmul - theorem TensorProduct.map₂_eq_range_lift_comp_mapIncl - theorem TensorProduct.map₂_mk_top_top_eq_top - def TensorProduct.mk - theorem TensorProduct.mk_apply - def TensorProduct.rTensorHomToHomRTensor - theorem TensorProduct.rTensorHomToHomRTensor_apply - theorem TensorProduct.range_map - theorem TensorProduct.range_mapIncl - theorem TensorProduct.range_mapIncl_mono - theorem TensorProduct.range_map_eq_span_tmul - theorem TensorProduct.range_map_mono - theorem TensorProduct.single_tmul - theorem TensorProduct.smul_tmul' - theorem TensorProduct.smul_tmul - theorem TensorProduct.smul_tmul_smul - theorem TensorProduct.span_tmul_eq_top - theorem TensorProduct.sum_tmul - def TensorProduct.tmul - theorem TensorProduct.tmul_add - theorem TensorProduct.tmul_eq_smul_one_tmul - theorem TensorProduct.tmul_ite - theorem TensorProduct.tmul_single - theorem TensorProduct.tmul_smul - theorem TensorProduct.tmul_sum - theorem TensorProduct.tmul_zero - theorem TensorProduct.toLinearMap_congr - theorem TensorProduct.zero_tmul - def TensorProduct Added Mathlib/LinearAlgebra/TensorProduct/Defs.lean + theorem IsAddUnit.tmul_left + theorem IsAddUnit.tmul_right + inductive TensorProduct.Eqv + def TensorProduct.SMul.aux + theorem TensorProduct.SMul.aux_of + theorem TensorProduct.add_tmul + theorem TensorProduct.exists_eq_tmul_of_forall + theorem TensorProduct.ite_tmul + theorem TensorProduct.map₂_mk_top_top_eq_top + def TensorProduct.mk + theorem TensorProduct.mk_apply + theorem TensorProduct.single_tmul + theorem TensorProduct.smul_tmul' + theorem TensorProduct.smul_tmul + theorem TensorProduct.smul_tmul_smul + theorem TensorProduct.span_tmul_eq_top + theorem TensorProduct.sum_tmul + def TensorProduct.tmul + theorem TensorProduct.tmul_add + theorem TensorProduct.tmul_eq_smul_one_tmul + theorem TensorProduct.tmul_ite + theorem TensorProduct.tmul_single + theorem TensorProduct.tmul_smul + theorem TensorProduct.tmul_sum + theorem TensorProduct.tmul_zero + theorem TensorProduct.zero_tmul + def TensorProduct Modified Mathlib/LinearAlgebra/TensorProduct/DirectLimit.lean Modified Mathlib/LinearAlgebra/TensorProduct/Finiteness.lean Added Mathlib/LinearAlgebra/TensorProduct/Map.lean + theorem Equiv.tensorProductComm_def + theorem LinearEquiv.coe_lTensor + theorem LinearEquiv.coe_lTensor_symm + theorem LinearEquiv.coe_rTensor + theorem LinearEquiv.coe_rTensor_symm + theorem LinearEquiv.comm_trans_lTensor_trans_comm_eq + theorem LinearEquiv.comm_trans_rTensor_trans_comm_eq + theorem LinearEquiv.congr_trans_lTensor + theorem LinearEquiv.congr_trans_rTensor + def LinearEquiv.lTensor + theorem LinearEquiv.lTensor_mul + theorem LinearEquiv.lTensor_pow + theorem LinearEquiv.lTensor_refl + theorem LinearEquiv.lTensor_refl_apply + theorem LinearEquiv.lTensor_symm_tmul + theorem LinearEquiv.lTensor_tmul + theorem LinearEquiv.lTensor_trans + theorem LinearEquiv.lTensor_trans_apply + theorem LinearEquiv.lTensor_trans_congr + theorem LinearEquiv.lTensor_trans_rTensor + theorem LinearEquiv.lTensor_zpow + def LinearEquiv.rTensor + theorem LinearEquiv.rTensor_mul + theorem LinearEquiv.rTensor_pow + theorem LinearEquiv.rTensor_refl + theorem LinearEquiv.rTensor_refl_apply + theorem LinearEquiv.rTensor_symm_tmul + theorem LinearEquiv.rTensor_tmul + theorem LinearEquiv.rTensor_trans + theorem LinearEquiv.rTensor_trans_apply + theorem LinearEquiv.rTensor_trans_congr + theorem LinearEquiv.rTensor_trans_lTensor + theorem LinearEquiv.rTensor_zpow + theorem LinearMap.coe_lTensorHom + theorem LinearMap.coe_rTensorHom + theorem LinearMap.comm_comp_lTensor_comp_comm_eq + theorem LinearMap.comm_comp_rTensor_comp_comm_eq + def LinearMap.lTensor + def LinearMap.lTensorHom + theorem LinearMap.lTensor_add + theorem LinearMap.lTensor_bij_iff_rTensor_bij + theorem LinearMap.lTensor_comm + theorem LinearMap.lTensor_comp + theorem LinearMap.lTensor_comp_apply + theorem LinearMap.lTensor_comp_comm + theorem LinearMap.lTensor_comp_map + theorem LinearMap.lTensor_comp_mk + theorem LinearMap.lTensor_comp_rTensor + theorem LinearMap.lTensor_def + theorem LinearMap.lTensor_id + theorem LinearMap.lTensor_id_apply + theorem LinearMap.lTensor_inj_iff_rTensor_inj + theorem LinearMap.lTensor_map + theorem LinearMap.lTensor_mul + theorem LinearMap.lTensor_neg + theorem LinearMap.lTensor_pow + theorem LinearMap.lTensor_smul + theorem LinearMap.lTensor_smul_action + theorem LinearMap.lTensor_sub + theorem LinearMap.lTensor_surj_iff_rTensor_surj + theorem LinearMap.lTensor_tmul + theorem LinearMap.lTensor_zero + theorem LinearMap.map_comp_lTensor + theorem LinearMap.map_comp_rTensor + theorem LinearMap.map_lTensor + theorem LinearMap.map_rTensor + def LinearMap.rTensor + def LinearMap.rTensorHom + theorem LinearMap.rTensor_add + theorem LinearMap.rTensor_comm + theorem LinearMap.rTensor_comp + theorem LinearMap.rTensor_comp_apply + theorem LinearMap.rTensor_comp_comm + theorem LinearMap.rTensor_comp_flip_mk + theorem LinearMap.rTensor_comp_lTensor + theorem LinearMap.rTensor_comp_map + theorem LinearMap.rTensor_def + theorem LinearMap.rTensor_id + theorem LinearMap.rTensor_id_apply + theorem LinearMap.rTensor_map + theorem LinearMap.rTensor_mul + theorem LinearMap.rTensor_neg + theorem LinearMap.rTensor_pow + theorem LinearMap.rTensor_smul + theorem LinearMap.rTensor_smul_action + theorem LinearMap.rTensor_sub + theorem LinearMap.rTensor_tmul + theorem LinearMap.rTensor_zero + theorem LinearMap.smul_lTensor + def TensorProduct.congr + theorem TensorProduct.congr_congr + theorem TensorProduct.congr_mul + theorem TensorProduct.congr_pow + theorem TensorProduct.congr_refl_refl + theorem TensorProduct.congr_symm + theorem TensorProduct.congr_symm_tmul + theorem TensorProduct.congr_tmul + theorem TensorProduct.congr_trans + theorem TensorProduct.congr_zpow + def TensorProduct.homTensorHomMap + theorem TensorProduct.homTensorHomMap_apply + def TensorProduct.lTensorHomToHomLTensor + theorem TensorProduct.lTensorHomToHomLTensor_apply + theorem TensorProduct.lift_comp_map + def TensorProduct.map + def TensorProduct.mapBilinear + theorem TensorProduct.mapBilinear_apply + def TensorProduct.mapIncl + theorem TensorProduct.map_add_left + theorem TensorProduct.map_add_right + theorem TensorProduct.map_bijective + theorem TensorProduct.map_comm + theorem TensorProduct.map_comp + theorem TensorProduct.map_comp_comm_eq + theorem TensorProduct.map_id + theorem TensorProduct.map_map + theorem TensorProduct.map_smul_left + theorem TensorProduct.map_smul_right + theorem TensorProduct.map_tmul + theorem TensorProduct.map_zero_left + theorem TensorProduct.map_zero_right + def TensorProduct.map₂ + theorem TensorProduct.map₂_apply_tmul + theorem TensorProduct.map₂_eq_range_lift_comp_mapIncl + def TensorProduct.rTensorHomToHomRTensor + theorem TensorProduct.rTensorHomToHomRTensor_apply + theorem TensorProduct.range_map + theorem TensorProduct.range_mapIncl + theorem TensorProduct.range_mapIncl_mono + theorem TensorProduct.range_map_eq_span_tmul + theorem TensorProduct.range_map_mono + theorem TensorProduct.toLinearMap_congr 2026-02-12 07:09:42 134bd66 feat(AlgebraicGeometry): tilde-Gamma adjunction (#35123) ESTIMATED CHANGES Modified Mathlib/AlgebraicGeometry/Modules/Tilde.lean + theorem AlgebraicGeometry.Scheme.Modules.toOpen_fromTildeΓ_app + def AlgebraicGeometry.SpecModulesToSheafFullyFaithful + def AlgebraicGeometry.moduleSpecΓFunctor + def AlgebraicGeometry.modulesSpecToSheaf + def AlgebraicGeometry.tilde.adjunction + def AlgebraicGeometry.tilde.fullyFaithfulFunctor + theorem AlgebraicGeometry.tilde.isUnit_algebraMap_end_basicOpen + def AlgebraicGeometry.tilde.modulesSpecToSheafIso + def AlgebraicGeometry.tilde.toOpen + theorem AlgebraicGeometry.tilde.toOpen_map_app + theorem AlgebraicGeometry.tilde.toOpen_res + def AlgebraicGeometry.tilde.toTildeΓNatIso + def AlgebraicGeometry.tilde - theorem ModuleCat.Tilde.res_apply - theorem ModuleCat.Tilde.smul_section_apply - theorem ModuleCat.Tilde.smul_stalk_no_nonzero_divisor - theorem ModuleCat.Tilde.toOpen_res 2026-02-12 04:48:53 706fd95 chore: separate basic API for `Set.powersetCard` (#35068) This moves the basic API for `Set.powersetCard` in file `GroupTheory.GroupAction.SubMulAction.Combination.lean` that doesn't depend on a `MulAction` to a new file `Data.Set.PowersetCard.lean`. * Moves definitions not dependent on `MulAction` to new file * `ofFinEmb` is set version of `mulActionHom_of_embedding` * `ofSingleton` is set version of `mulActionHom_singleton` * `compl` is now a set version * Rename `compl` to `mulActionHom_compl` (and related theorems) * `map n f` is the map on `powersetCard n` induced by an injective map `f` ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Data/Set/PowersetCard.lean + theorem Set.powersetCard.card_eq + theorem Set.powersetCard.coe_coe + theorem Set.powersetCard.coe_compl + theorem Set.powersetCard.coe_finset + theorem Set.powersetCard.coe_map + theorem Set.powersetCard.coe_nonempty_iff + theorem Set.powersetCard.coe_nontrivial_iff + theorem Set.powersetCard.coe_ofFinEmb + def Set.powersetCard.compl + theorem Set.powersetCard.compl_symm + theorem Set.powersetCard.eq_empty_iff + theorem Set.powersetCard.eq_iff_subset + theorem Set.powersetCard.exist_mem_powersetCard_of_inf + theorem Set.powersetCard.exists_mem_notMem + def Set.powersetCard.map + theorem Set.powersetCard.mem_coe_iff + theorem Set.powersetCard.mem_compl + theorem Set.powersetCard.mem_iff + theorem Set.powersetCard.mem_map_iff_mem_range + theorem Set.powersetCard.mem_ofFinEmb_iff_mem_range + theorem Set.powersetCard.ncard_eq + theorem Set.powersetCard.nontrivial' + theorem Set.powersetCard.nontrivial + theorem Set.powersetCard.nontrivial_iff + def Set.powersetCard.ofFinEmb + theorem Set.powersetCard.ofFinEmb_surjective + theorem Set.powersetCard.val_map + theorem Set.powersetCard.val_ofFinEmb + def Set.powersetCard Modified Mathlib/GroupTheory/GroupAction/SubMulAction/Combination.lean - theorem Set.powersetCard.card_eq - theorem Set.powersetCard.coe_coe - theorem Set.powersetCard.coe_compl - theorem Set.powersetCard.coe_finset + theorem Set.powersetCard.coe_mulActionHom_compl - theorem Set.powersetCard.coe_nonempty_iff - theorem Set.powersetCard.coe_nontrivial_iff - def Set.powersetCard.compl - theorem Set.powersetCard.compl_bijective - theorem Set.powersetCard.compl_compl - theorem Set.powersetCard.eq_empty_iff - theorem Set.powersetCard.eq_iff_subset - theorem Set.powersetCard.exists_mem_notMem - theorem Set.powersetCard.infinite - theorem Set.powersetCard.mem_coe_iff - theorem Set.powersetCard.mem_compl - theorem Set.powersetCard.mem_iff + theorem Set.powersetCard.mem_mulActionHom_compl + def Set.powersetCard.mulActionHom_compl + theorem Set.powersetCard.mulActionHom_compl_bijective + theorem Set.powersetCard.mulActionHom_compl_mulActionHom_compl - def Set.powersetCard.mulActionHom_singleton - theorem Set.powersetCard.ncard_eq - theorem Set.powersetCard.nontrivial' - theorem Set.powersetCard.nontrivial - theorem Set.powersetCard.nontrivial_iff - def Set.powersetCard 2026-02-12 02:06:15 a2306ec chore: update Mathlib dependencies 2026-02-12 (#35159) This PR updates the Mathlib dependencies. ESTIMATED CHANGES Modified lake-manifest.json 2026-02-12 01:11:00 4ac0c67 chore(Data/Set/Operations): import `Aesop` privately (#35149) This PR replaces a `public import Aesop` with `import Aesop`, in order to reduce the rebuild critical path. This decrease will be more significant when combined with #35138. ESTIMATED CHANGES Modified Mathlib/Data/Set/Operations.lean Modified Mathlib/Order/Iterate.lean 2026-02-12 00:56:53 6fccd48 feat: add lemmas about doubly stochastic matrices (#33394) This PR adds a few basic lemmas about doubly stochastic matrices. ESTIMATED CHANGES Modified Mathlib/Analysis/Convex/DoublyStochasticMatrix.lean + theorem reindex_mem_doublyStochastic + theorem reindex_mem_doublyStochastic_iff + theorem sum_mulVec_of_mem_doublyStochastic Modified Mathlib/LinearAlgebra/Matrix/Stochastic.lean + theorem Matrix.reindex_mem_colStochastic_iff + theorem Matrix.reindex_mem_rowStochastic + theorem Matrix.reindex_mem_rowStochastic_iff + theorem Matrix.sum_mulVec_of_mem_colStochastic 2026-02-12 00:41:38 9cae144 feat(Tactic/ComputeAsymptotics/Multiseries): `WellFormedBasis` lemmas (#34422) Introduce `WellFormedBasis` and prove basic lemmas about it. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Tactic.lean Added Mathlib/Tactic/ComputeAsymptotics/Multiseries/Basis.lean + def Tactic.ComputeAsymptotics.BasisExtension.getBasis + theorem Tactic.ComputeAsymptotics.BasisExtension.insert_tail_wellFormedBasis + theorem Tactic.ComputeAsymptotics.BasisExtension.sublist_getBasis + inductive Tactic.ComputeAsymptotics.BasisExtension + theorem Tactic.ComputeAsymptotics.WellFormedBasis.append + theorem Tactic.ComputeAsymptotics.WellFormedBasis.compare_left_aux + theorem Tactic.ComputeAsymptotics.WellFormedBasis.compare_right_aux + theorem Tactic.ComputeAsymptotics.WellFormedBasis.cons + theorem Tactic.ComputeAsymptotics.WellFormedBasis.eventually_pos + theorem Tactic.ComputeAsymptotics.WellFormedBasis.head_eventually_pos + theorem Tactic.ComputeAsymptotics.WellFormedBasis.insert + theorem Tactic.ComputeAsymptotics.WellFormedBasis.nil + theorem Tactic.ComputeAsymptotics.WellFormedBasis.of_append_right + theorem Tactic.ComputeAsymptotics.WellFormedBasis.of_sublist + theorem Tactic.ComputeAsymptotics.WellFormedBasis.push + theorem Tactic.ComputeAsymptotics.WellFormedBasis.push_log_last + theorem Tactic.ComputeAsymptotics.WellFormedBasis.single + theorem Tactic.ComputeAsymptotics.WellFormedBasis.tail + theorem Tactic.ComputeAsymptotics.WellFormedBasis.tail_isLittleO_head + theorem Tactic.ComputeAsymptotics.WellFormedBasis.tendsto_atTop + def Tactic.ComputeAsymptotics.WellFormedBasis 2026-02-12 00:26:14 cbd09a2 chore: golf using `simp`, and don't squeeze terminal `simp` calls (#35148) ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Basic.lean Modified Mathlib/Algebra/Group/Hom/Basic.lean Modified Mathlib/Algebra/Group/Prod.lean 2026-02-12 00:26:12 bc819b7 feat(Combinatorics/SimpleGraph/Coloring): add a few missing instances (`IsEmpty`/`Nontrivial`/`Infinite`) (#33147) ESTIMATED CHANGES Modified Mathlib/Combinatorics/SimpleGraph/Coloring.lean Modified Mathlib/Combinatorics/SimpleGraph/Maps.lean 2026-02-12 00:13:24 3d083c4 ci: bors runs should build tools from the commit under test (#35154) bors runs should build the tools from their commit-under-test: after all, we are trying to test 'what would happen if this was merged', so we need to use the 'would-be-post-merge' tools. Note that bors runs should have "trusted code" because after all some maintainer has to approve the bors run itself. ESTIMATED CHANGES Modified .github/workflows/bors.yml 2026-02-12 00:00:40 ea886cc ci: More information for new contributors (#35109) Currently, mathlib adds a "new-contributor" tag to PRs from folks with fewer than 5 PRs merged. However, this is more of a flag to reviewers and doesn't directly provide information to the new contributors. This PR introduces a flow where when the "new-contributor" tag is added to a PR, a comment is also added reminding the new contributor to read the Lifecycle of a PR document and notes some common pitfalls (in particular, that tag management is performed via PR comments). ESTIMATED CHANGES Modified .github/workflows/label_new_contributor.yml 2026-02-11 22:56:54 ae6b7e9 ci: Don't run user code when autolabelling (#35153) `add_label_from_diff` is checking out user code and running it. We should build the tools from a trusted branch instead. ESTIMATED CHANGES Modified .github/workflows/add_label_from_diff.yaml 2026-02-11 22:38:03 125d0a3 feat: continuous linear maps with a continuous left/right inverseContinuousinverse (#34991) Define continuous linear maps which admit a continuous left resp. right inverse, prove their basic properties (closure under products, composition and continuous linear equivalences admitting both inverses) and a sufficient condition in finite dimension. A future PRs will add an equivalent characterisation of maps with a continuous left inverse, and use this to prove that the composition of immersions (resp. submersions) is an immersion (resp. submersion). Part of the path towards immersions, submersions, embedded submanifolds and the regular value theorem. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/Normed/Module/ContinuousInverse.lean + theorem ContinuousLinearEquiv.hasLeftInverse + theorem ContinuousLinearEquiv.hasRightInverse + theorem ContinuousLinearEquiv.leftInverse_hasLeftInverse + theorem ContinuousLinearEquiv.rightInverse_hasRightInverse + theorem ContinuousLinearMap.HasLeftInverse.comp + theorem ContinuousLinearMap.HasLeftInverse.comp_continuousLinearEquivalence + theorem ContinuousLinearMap.HasLeftInverse.congr + theorem ContinuousLinearMap.HasLeftInverse.continuousLinearEquivalence_comp + theorem ContinuousLinearMap.HasLeftInverse.injective + def ContinuousLinearMap.HasLeftInverse.leftInverse + theorem ContinuousLinearMap.HasLeftInverse.leftInverse_leftInverse + theorem ContinuousLinearMap.HasLeftInverse.of_comp + theorem ContinuousLinearMap.HasLeftInverse.of_injective_of_finiteDimensional + theorem ContinuousLinearMap.HasLeftInverse.of_isInvertible + theorem ContinuousLinearMap.HasLeftInverse.prodMap + theorem ContinuousLinearMap.HasRightInverse.comp + theorem ContinuousLinearMap.HasRightInverse.comp_continuousLinearEquivalence + theorem ContinuousLinearMap.HasRightInverse.congr + theorem ContinuousLinearMap.HasRightInverse.continuousLinearEquivalence_comp + theorem ContinuousLinearMap.HasRightInverse.of_comp + theorem ContinuousLinearMap.HasRightInverse.of_isInvertible + theorem ContinuousLinearMap.HasRightInverse.of_surjective_of_finiteDimensional + theorem ContinuousLinearMap.HasRightInverse.prodMap + def ContinuousLinearMap.HasRightInverse.rightInverse + theorem ContinuousLinearMap.HasRightInverse.rightInverse_rightInverse + theorem ContinuousLinearMap.HasRightInverse.surjective 2026-02-11 20:48:57 5c6d055 ci: Add workflow to support CI experiments (#35145) This PR introduces a `ci_dev.yml` workflow as a "safe playground" for manually experimenting with CI changes without touching the main `build.yml`/`bors.yml` paths. It is manually dispatched and constrained to `ci-dev/*` branches, so iteration on workflow logic can happen in isolation. To make those experiments useful, the workflow now exposes manual inputs for `tools_branch_ref` and `pr_branch_ref`, both defaulting to the triggering commit when left empty. This lets us test template changes against arbitrary refs when needed, while preserving the “build this commit” default for quick runs. ESTIMATED CHANGES Modified .github/workflows/build.yml Modified .github/workflows/build_template.yml Added .github/workflows/ci_dev.yml Modified .github/workflows/pre-commit.yml 2026-02-11 19:24:29 d6c9e7a feat: some finset lemmas (#13686) * From the Sobolev inequality project * The increase in imports in `Mathlib.Data.Finset.Update` is not problematic: it is only imported in MeasureTheory files. * Add `DepRewrite` to `Tactic.Common`. * Change the normal form of `{x} ∪ {y}` to `{x, y}` (previously `{y, x}`). ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Finsupp.lean Modified Mathlib/Combinatorics/SimpleGraph/StronglyRegular.lean Modified Mathlib/Data/Finset/Basic.lean + theorem Equiv.Finset.union_inl + theorem Equiv.Finset.union_inr - theorem Equiv.Finset.union_symm_inl - theorem Equiv.Finset.union_symm_inr + theorem Equiv.Finset.union_symm_left + theorem Equiv.Finset.union_symm_right + theorem Equiv.piFinsetUnion_left + theorem Equiv.piFinsetUnion_right Modified Mathlib/Data/Finset/Lattice/Lemmas.lean Modified Mathlib/Data/Finset/Update.lean + theorem Function.updateFinset_congr +/- theorem Function.updateFinset_def +/- theorem Function.updateFinset_singleton + theorem Function.updateFinset_univ + theorem Function.updateFinset_univ_apply +/- theorem Function.updateFinset_updateFinset +/- theorem Function.update_eq_updateFinset + theorem Function.update_updateFinset Modified Mathlib/RingTheory/MvPolynomial/IrreducibleQuadratic.lean Modified Mathlib/Tactic/Common.lean 2026-02-11 17:47:09 002cb64 feat: variant of `isOpen_setOf_mapsTo` for continuous maps out of compact spaces (#34862) I introduce 3 lemmas: 1. `MapsTo f univ t ↔ range f ⊆ t` 2. `IsOpen {f : C(X, Y) | range f ⊆ U}` 3. `∀ᶠ g : C(X, Y) in 𝓝 f, range g ⊆ U` There are multiple ways to spell number 1, including `∀ x, f x ∈ t`, that are acceptable. However, I find `range f ⊆ t` the most natural and least verbose. In my use case, I have had to reasoning about `range f`, where `f` is a `ContinuousMap` out of a compact space, so lemmas using `range f` and `CompactSpace` are much more direct. ESTIMATED CHANGES Modified Mathlib/Data/Set/Function.lean + theorem Set.mapsTo_univ_iff_range_subset Modified Mathlib/Topology/CompactOpen.lean + theorem ContinuousMap.eventually_range_subset + theorem ContinuousMap.isOpen_setOf_range_subset 2026-02-11 17:08:03 7724688 feat(Order/Filter/AtTopBot): use `to_dual` (#35133) This PR generates `Filter.atBot` from `Filter.atTop` using `to_dual`. `atTop_eq_generate_of_forall_exists_le` and `atTop_eq_generate_of_not_bddAbove` did not previously have a dual version. `Monotone.piecewise_eventually_eq_iUnion` and `Antitone.piecewise_eventually_eq_iInter` do not have a name that distinguishes it from its dual version. Hence, I did not give it a `to_dual` tag. ESTIMATED CHANGES Modified Mathlib/Order/Filter/AtTopBot/Defs.lean - theorem Filter.Frequently.forall_exists_of_atBot - theorem Filter.Iic_mem_atBot - theorem Filter.Iio_mem_atBot - def Filter.atBot - theorem Filter.eventually_le_atBot - theorem Filter.eventually_lt_atBot - theorem Filter.eventually_ne_atBot - theorem Filter.mem_atBot - theorem IsBot.atBot_eq Modified Mathlib/Order/Filter/Defs.lean 2026-02-11 16:52:04 598f535 feat(CategoryTheory/Sites/DenseSubsite): characterization of sheaves (#35091) Let `F : C₀ ⥤ C` be a functor which is a dense subsite (for Grothendieck topologies `J₀` and `J`). Assuming we have `OneHypercoverDenseData` structures for `F`, we show that a presheaf on `C` is a sheaf iff its "restriction" to `C₀` is a sheaf and the multiforks attached to the `1`-hypercovers coming with the `OneHypercoverDenseData` structures are limiting. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Sites/DenseSubsite/OneHypercoverDense.lean + structure CategoryTheory.Functor.OneHypercoverDenseData.SieveStruct + theorem CategoryTheory.Functor.OneHypercoverDenseData.isSheaf_iff.fac + theorem CategoryTheory.Functor.OneHypercoverDenseData.isSheaf_iff.hom_ext + theorem CategoryTheory.Functor.OneHypercoverDenseData.isSheaf_iff.liftAux_fac + theorem CategoryTheory.Functor.OneHypercoverDenseData.isSheaf_iff.lift_map + theorem CategoryTheory.Functor.OneHypercoverDenseData.isSheaf_iff + theorem CategoryTheory.Functor.OneHypercoverDenseData.mem₁ + def CategoryTheory.Functor.OneHypercoverDenseData.sieve + theorem CategoryTheory.Functor.OneHypercoverDenseData.sieve_mem + def CategoryTheory.Functor.OneHypercoverDenseData.toOneHypercover Modified Mathlib/CategoryTheory/Sites/Hypercover/One.lean 2026-02-11 16:15:51 590c4e2 doc(CategoryTheory/Bicategory): generalize `Cat`-specific terminology in bicategory docs (#35127) Replace "natural transformation" with "2-morphism" and "natural isomorphism" with "isomorphism" in docstrings that describe general bicategory concepts, not the specific bicategory `Cat`. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Bicategory/Adjunction/Mate.lean Modified Mathlib/CategoryTheory/Bicategory/Opposites.lean Modified Mathlib/CategoryTheory/Bicategory/Strict/Pseudofunctor.lean 2026-02-11 14:27:20 22fb569 doc(Algebra/Polynomial/Lifts): Fix typo of lemma name (#35130) ESTIMATED CHANGES Modified Mathlib/Algebra/Polynomial/Lifts.lean 2026-02-11 13:28:17 4071ce7 chore: deprecate duplicated lemma (#35126) ESTIMATED CHANGES Modified Mathlib/Analysis/Analytic/CPolynomialDef.lean Modified Mathlib/Analysis/Analytic/Composition.lean Modified Mathlib/Analysis/Analytic/Inverse.lean Modified Mathlib/Analysis/Analytic/Within.lean Modified Mathlib/Analysis/Calculus/FDeriv/Analytic.lean Modified Mathlib/Analysis/Normed/Group/Basic.lean - theorem edist_one_eq_enorm Modified Mathlib/MeasureTheory/Function/L1Space/AEEqFun.lean Modified Mathlib/MeasureTheory/Function/L1Space/HasFiniteIntegral.lean Modified Mathlib/Topology/ContinuousMap/Bounded/Normed.lean Modified scripts/nolints_prime_decls.txt 2026-02-11 13:12:07 a3446d5 chore: add missing deprecation for is_simple_module_iff_irreducible_ofModule (#35120) From #34584. ESTIMATED CHANGES Modified Mathlib/RepresentationTheory/Irreducible.lean 2026-02-11 13:12:06 4196d5c feat(Analysis/SpecialFunctions/Pow/Deriv): derivative of `c ^ f x` (#35103) This PR proves `deriv (fun x ↦ c ^ f x) = fun x ↦ log c * deriv f x * c ^ f x` for all `c : ℂ` (if `c = 0` then both sides are identically `0`). ESTIMATED CHANGES Modified Mathlib/Analysis/SpecialFunctions/Pow/Deriv.lean + theorem Complex.derivWithin_const_cpow + theorem Complex.deriv_const_cpow +/- theorem derivWithin_const_rpow 2026-02-11 12:13:39 0528bce chore(Order/Defs/Unbundled): deprecate `def Total` in favor of `class Std.Total` (#34351) ESTIMATED CHANGES Modified Mathlib/ModelTheory/Order.lean Modified Mathlib/ModelTheory/Semantics.lean +/- theorem FirstOrder.Language.Relations.realize_total Modified Mathlib/Order/Defs/Unbundled.lean 2026-02-11 11:43:23 dec6b93 feat(Tactic/ComputeAsymptotics): lemmas for converting different goals to `Tendsto f atTop l` (#34403) Prove lemmas we use in `compute_asymptotics` to reduce various asymptotic goals to the case `Tendsto f atTop l`. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Analysis/Asymptotics/Lemmas.lean + theorem Asymptotics.IsLittleO.of_tendsto_div_atBot + theorem Asymptotics.IsLittleO.of_tendsto_div_atTop + theorem Asymptotics.isBigOWith_of_div_tendsto_nhds + theorem Asymptotics.isBigO_of_div_tendsto_nhds_of_ne_zero Modified Mathlib/Analysis/Asymptotics/Theta.lean + theorem Asymptotics.isTheta_of_div_tendsto_nhds_ne_zero Modified Mathlib/Analysis/Calculus/Deriv/Slope.lean Modified Mathlib/Order/Filter/AtTopBot/Group.lean + theorem Filter.tendsto_comp_inv_atBot_iff + theorem Filter.tendsto_comp_inv_atTop_iff Modified Mathlib/Tactic.lean Added Mathlib/Tactic/ComputeAsymptotics/Lemmas.lean + theorem Tactic.ComputeAsymptotics.isBigOWith_of_tendsto_bot + theorem Tactic.ComputeAsymptotics.isBigOWith_of_tendsto_top + theorem Tactic.ComputeAsymptotics.isBigO_of_div_tendsto_atBot + theorem Tactic.ComputeAsymptotics.isBigO_of_div_tendsto_atTop + theorem Tactic.ComputeAsymptotics.tendsto_nhdsGT_of_tendsto_atTop + theorem Tactic.ComputeAsymptotics.tendsto_nhdsLT_of_tendsto_atTop + theorem Tactic.ComputeAsymptotics.tendsto_nhdsNE_of_tendsto_atTop + theorem Tactic.ComputeAsymptotics.tendsto_nhdsNE_of_tendsto_atTop_nhds_of_eq Modified Mathlib/Topology/Algebra/Group/Basic.lean + theorem Filter.inv_nhdsGT + theorem Filter.inv_nhdsLT + theorem Filter.inv_nhdsNE + theorem Filter.map_mul_left_nhdsGT + theorem Filter.map_mul_left_nhdsLT + theorem Filter.map_mul_left_nhdsNE + theorem Filter.map_mul_right_nhdsGT + theorem Filter.map_mul_right_nhdsLT + theorem Filter.map_mul_right_nhdsNE Modified Mathlib/Topology/Algebra/Order/Field.lean + theorem tendsto_nhdsGT_zero_of_comp_inv_tendsto_atTop + theorem tendsto_nhdsLT_zero_of_comp_inv_tendsto_atBot 2026-02-11 11:43:20 3d2e02d feat(Tactic/ComputeAsymptotics/Multiseries): `Majorized` predicate (#34356) Develop a theory of the `Majorated` predicate used in the definition of `MultiseriesExpansion.Approximates`. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Tactic.lean Added Mathlib/Tactic/ComputeAsymptotics/Multiseries/Majorized.lean + theorem Tactic.ComputeAsymptotics.Majorized.add + theorem Tactic.ComputeAsymptotics.Majorized.const + theorem Tactic.ComputeAsymptotics.Majorized.mul + theorem Tactic.ComputeAsymptotics.Majorized.mul_bounded + theorem Tactic.ComputeAsymptotics.Majorized.of_eventuallyEq + theorem Tactic.ComputeAsymptotics.Majorized.of_le + theorem Tactic.ComputeAsymptotics.Majorized.self + theorem Tactic.ComputeAsymptotics.Majorized.smul + theorem Tactic.ComputeAsymptotics.Majorized.tendsto_zero_of_neg + theorem Tactic.ComputeAsymptotics.Majorized.zero + def Tactic.ComputeAsymptotics.Majorized 2026-02-11 11:08:22 1a8f46e chore: fix `Fintype` instances that are not used for data in types (#35102) If a theorem has a `Fintype` instance which is only used in proofs in the remainder of the theorem's type, it can be replaced with `Finite`. These were found by the upgrade to the unused instances in types linter in #32440. ESTIMATED CHANGES Modified Mathlib/Algebra/Module/ZLattice/Covolume.lean Modified Mathlib/Analysis/BoxIntegral/UnitPartition.lean Modified Mathlib/Analysis/InnerProductSpace/PiL2.lean Modified Mathlib/LinearAlgebra/Matrix/ToLin.lean +/- theorem LinearMap.toMatrix_smulRight +/- theorem LinearMap.toMatrix_toSpanSingleton +/- theorem Matrix.toLin_apply +/- theorem Matrix.toLin_apply_eq_zero_iff +/- theorem Matrix.toLin_self Modified Mathlib/LinearAlgebra/Multilinear/Basis.lean Modified Mathlib/RingTheory/DedekindDomain/IntegralClosure.lean +/- theorem IsIntegralClosure.range_le_span_dualBasis +/- theorem integralClosure_le_span_dualBasis Modified Mathlib/RingTheory/TensorProduct/IsBaseChangeHom.lean Modified Mathlib/Topology/Algebra/Module/FiniteDimension.lean 2026-02-11 11:08:20 1163977 feat: lemmas for the analytic part of the proof of the Gelfond–Schneider theorem (Part 1/5) (#34836) ESTIMATED CHANGES Modified Mathlib/Analysis/Analytic/Basic.lean + theorem AnalyticOn.analyticAt + theorem analyticOn_congr + theorem hasFPowerSeriesWithinAt_iff_of_nhds 2026-02-11 10:09:56 307d01a chore: move OrderDual to its own file (#35105) This PR moves `OrderDual` and its order instances from `Order.Basic` to a new file `Order.OrderDual`, in preparation for changing `OrderDual` from a type alias to a one-field structure to prevent defeq abuse. The new file imports `Order.Basic` and gives more flexibility with imports for the subsequent structure change. 🤖 Prepared with Claude Code ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Order/Basic.lean - def LinearOrder.swap - theorem OrderDual.Ord.dual_dual - theorem OrderDual.Preorder.dual_dual - theorem OrderDual.instLinearOrder.dual_dual - theorem OrderDual.instPartialOrder.dual_dual - def OrderDual - theorem denselyOrdered_orderDual Modified Mathlib/Order/Monotone/Defs.lean Added Mathlib/Order/OrderDual.lean + def LinearOrder.swap + theorem OrderDual.Ord.dual_dual + theorem OrderDual.Preorder.dual_dual + theorem OrderDual.instLinearOrder.dual_dual + theorem OrderDual.instPartialOrder.dual_dual + def OrderDual + theorem denselyOrdered_orderDual Modified Mathlib/Order/RelClasses.lean Modified Mathlib/Order/Synonym.lean 2026-02-11 09:57:02 dbff985 chore: fix some names around Eisenstein series (#35055) Per the naming convention, - `eisensteinSeries_MF` should be `eisensteinSeriesMF`, - `eisensteinSeries_SIF` should be `eisensteinSeriesSIF`, and - `eisensteinSeries_SIF_MDifferentiable` should use suffix `_mdifferentiable`. ESTIMATED CHANGES Modified Mathlib/NumberTheory/ModularForms/EisensteinSeries/Basic.lean + def ModularForm.eisensteinSeriesMF - def ModularForm.eisensteinSeries_MF Modified Mathlib/NumberTheory/ModularForms/EisensteinSeries/Defs.lean + def EisensteinSeries.eisensteinSeriesSIF + theorem EisensteinSeries.eisensteinSeriesSIF_apply - def EisensteinSeries.eisensteinSeries_SIF - theorem EisensteinSeries.eisensteinSeries_SIF_apply Modified Mathlib/NumberTheory/ModularForms/EisensteinSeries/IsBoundedAtImInfty.lean + theorem EisensteinSeries.isBoundedAtImInfty_eisensteinSeriesSIF - theorem EisensteinSeries.isBoundedAtImInfty_eisensteinSeries_SIF Modified Mathlib/NumberTheory/ModularForms/EisensteinSeries/MDifferentiable.lean + theorem EisensteinSeries.eisensteinSeriesSIF_mdifferentiable - theorem EisensteinSeries.eisensteinSeries_SIF_MDifferentiable Modified Mathlib/NumberTheory/ModularForms/EisensteinSeries/QExpansion.lean Modified Mathlib/NumberTheory/ModularForms/EisensteinSeries/UniformConvergence.lean 2026-02-11 09:23:46 6ccc013 feat(Analysis/PSeries): add version of Cauchy condensation with weaker assumptions (#34985) Add a version of `summable_condensed_iff_of_nonneg` which only requires that f is eventually positive and antitone. ESTIMATED CHANGES Modified Mathlib/Analysis/PSeries.lean + theorem summable_condensed_iff_of_eventually_nonneg 2026-02-11 08:51:38 cdb0b33 feat(Algebra/Homology): quasi-isomorphisms in functor categories (#35119) ESTIMATED CHANGES Modified Mathlib/Algebra/Homology/Functor.lean + theorem CategoryTheory.ShortComplex.quasiIso_iff_evaluation +/- def HomologicalComplex.asFunctor +/- def HomologicalComplex.complexOfFunctorsToFunctorToComplex + theorem HomologicalComplex.quasiIsoAt_iff_evaluation + theorem HomologicalComplex.quasiIso_iff_evaluation 2026-02-11 08:51:36 77a710a feat(AlgebraicGeometry): Presentation.isQuasicoherent (#34282) Given a sheaf of `R`-modules `M` and a `Presentation M`, then `M` is quasicoherent. This contribution was created as part of the Heidelberg Lean workshop "Formalising algebraic geometry" in November 2025. ESTIMATED CHANGES Modified Mathlib/Algebra/Category/ModuleCat/Sheaf/Free.lean Modified Mathlib/Algebra/Category/ModuleCat/Sheaf/PushforwardContinuous.lean + def SheafOfModules.overPushforwardOverAdj + def SheafOfModules.pushforwardOver Modified Mathlib/Algebra/Category/ModuleCat/Sheaf/Quasicoherent.lean + theorem SheafOfModules.Presentation.isQuasicoherent + def SheafOfModules.Presentation.quasicoherentData Modified Mathlib/CategoryTheory/Comma/Over/Pullback.lean + theorem CategoryTheory.Over.forgetAdjStar_counit_app + theorem CategoryTheory.Over.forgetAdjStar_unit_app_left Modified Mathlib/CategoryTheory/Equivalence.lean + theorem CategoryTheory.Equivalence.symm_counit + theorem CategoryTheory.Equivalence.symm_unit Modified Mathlib/CategoryTheory/Sites/CoverPreserving.lean +/- theorem CategoryTheory.compatiblePreservingOfFlat Modified Mathlib/CategoryTheory/Sites/Over.lean + theorem CategoryTheory.GrothendieckTopology.coverPreserving_over_star 2026-02-11 08:38:08 c66c0c5 feat(AlgebraicGeometry): normalization commutes with smooth base change (#35092) ESTIMATED CHANGES Modified Mathlib/AlgebraicGeometry/Morphisms/Affine.lean + theorem AlgebraicGeometry.isIso_morphismRestrict_iff_isIso_app Modified Mathlib/AlgebraicGeometry/Morphisms/Basic.lean + theorem AlgebraicGeometry.IsZariskiLocalAtTarget.of_forall_exists_morphismRestrict Modified Mathlib/AlgebraicGeometry/Normalization.lean + theorem AlgebraicGeometry.Scheme.Hom.fromNormalization_app + def AlgebraicGeometry.Scheme.Hom.normalizationObjIso + theorem AlgebraicGeometry.Scheme.Hom.normalizationObjIso_hom_val + theorem AlgebraicGeometry.Scheme.Hom.normalizationPullback_snd + theorem AlgebraicGeometry.Scheme.Hom.toNormalization_normalizationPullback_fst Modified Mathlib/RingTheory/Smooth/IntegralClosure.lean - theorem TensorProduct.toIntegralClosure_bijective_of_isStandardEtale + theorem TensorProduct.toIntegralClosure_bijective_of_smooth 2026-02-11 07:53:40 8aef88e chore: remove unused Mem instance (#35116) This just creates confusion over what the simp-normal form is; every lemma in this file is stated with `s ∈ K.faces`. ESTIMATED CHANGES Modified Mathlib/Analysis/Convex/SimplicialComplex/Basic.lean 2026-02-11 06:43:23 917e402 feat(Analysis/InnerProductSpace): all eigenvalues appear in LinearMap.IsSymmetric.eigenvalues (#34362) If `T` is a symmetric linear map and `μ : 𝕜` satisfies `HasEigenvalue T μ` (which implies that `μ` is real), then `μ` appears somewhere in the list `LinearMap.IsSymmetric.eigenvalues`. Discussion: https://leanprover.zulipchat.com/#narrow/channel/217875-Is-there-code-for-X.3F/topic/LinearMap.2EIsSymmetric.2Eeigenvalues.20has.20all.20the.20eigenvalues/ ESTIMATED CHANGES Modified Mathlib/Analysis/InnerProductSpace/PiL2.lean + theorem DirectSum.IsInternal.exists_subordinateOrthonormalBasisIndex_eq Modified Mathlib/Analysis/InnerProductSpace/Spectrum.lean + theorem LinearMap.IsSymmetric.exists_eigenvalues_eq Modified Mathlib/LinearAlgebra/Eigenspace/Basic.lean + theorem Module.End.Eigenvalues.mk_val + theorem Module.End.Eigenvalues.val_mk + theorem Module.End.UnifEigenvalues.mk_val + theorem Module.End.UnifEigenvalues.val_mk 2026-02-11 04:39:24 982d40b feat(Analysis/RieszLemma): convenience variant of Riesz lemma in RCLike (#35001) While the other versions are more general, having a version which matches the usual informal statement of the Riesz lemma is helpful for users, and we add explicit signposting to the more general versions too. (My application here used an iterated version of this lemma, so having a fixed norm rather than just inequalities on it, is convenient) ESTIMATED CHANGES Modified Mathlib/Analysis/Normed/Module/RieszLemma.lean + theorem riesz_lemma_of_lt_one 2026-02-11 02:43:36 9bb16b0 feat(RCLike/Basic): OrderClosedTopology instance (#35056) Adds `OrderClosedTopology` for RCLike. Upstreamed from [quantumInfo](https://github.com/Timeroot/Lean-QuantumInfo). ESTIMATED CHANGES Modified Mathlib/Analysis/RCLike/Basic.lean + theorem RCLike.instOrderClosedTopology 2026-02-11 01:08:08 7e516e0 feat(AlgebraicGeometry): delaborator for morphisms of schemes (#34901) ESTIMATED CHANGES Modified Mathlib/AlgebraicGeometry/Scheme.lean Modified MathlibTest/Delab/Scheme.lean 2026-02-11 00:08:19 7c3e14e feat(Topology): a continuous nonzero function does not change sign (#34596) The main theorem proved in this PR is `IsPreconnected.subset_Ioi_or_Iio`, which says that if a function `f : α → β` is continuous on a preconnected set `s` and `f` is never equal to `b`, then the range of `f` is a subset of `Ioi b` or `Iio b`. I proved this under the assumption that `β` is equipped with an order closed topology. A typical application of this lemma is that a nonzero real valued continuous function does not change sign. I move the section SuccOrder to the bottom of the file in order to declare less variables. I also proved some variants/corollary of `IsPreconnected.subset_Ioi_or_Iio`. Zulip discusion: [#Is there code for X? > A nonzero function does not change sign](https://leanprover.zulipchat.com/#narrow/channel/217875-Is-there-code-for-X.3F/topic/A.20nonzero.20function.20does.20not.20change.20sign/with/570871797) ESTIMATED CHANGES Modified Mathlib/Topology/Connected/Basic.lean + theorem IsPreconnected.gt_of_ne + theorem IsPreconnected.lt_of_ne + theorem IsPreconnected.mapsTo_Ioi_or_Iio 2026-02-11 00:08:17 c1a01d4 feat: well-founded instances for colexicographically ordered finsupps (#34399) ESTIMATED CHANGES Modified Mathlib/Data/DFinsupp/WellFounded.lean Modified Mathlib/Data/Finsupp/WellFounded.lean + theorem Finsupp.Colex.wellFoundedLT_of_finite Modified Mathlib/Order/Basic.lean 2026-02-10 23:36:52 b8dad03 feat: Homeomorph.symm_apply_eq (#35030) ESTIMATED CHANGES Modified Mathlib/Topology/Covering/Basic.lean Modified Mathlib/Topology/Homeomorph/Defs.lean + theorem Homeomorph.symm_apply_eq 2026-02-10 23:11:07 56d691c chore: add missing deprecations for LogDeriv_exp (#34886) From #34217. ESTIMATED CHANGES Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Deriv.lean 2026-02-10 23:11:05 87c19ab feat(Analysis/Normed/Module/{HahnBanach, Dual}): Weaken [NormedAddCommGroup] to seminormed (#34585) This PR weakens the assumption `[NormedAddCommGroup]` to `[SeminormedAddCommGroup]` in * `exists_dual_vector` (which now assumes `(h : ‖x‖ ≠ 0)` instead of `(h :x ≠ 0)`) * `exists_dual_vector''` * `NormedSpace.norm_le_dual_bound` * `NormedSpace.inclusionInDoubleDualLi` ESTIMATED CHANGES Modified Mathlib/Analysis/Complex/Schwarz.lean Modified Mathlib/Analysis/Normed/Module/Dual.lean Modified Mathlib/Analysis/Normed/Module/HahnBanach.lean - theorem coord_norm' +/- theorem exists_dual_vector Modified Mathlib/Analysis/Normed/Module/RCLike/Basic.lean + theorem ContinuousLinearEquiv.coord_norm' 2026-02-10 22:14:56 fc502c3 feat(CategoryTheory/ObjectProperty): shift closure (#35079) This PR adds `ObjectProperty.shiftClosure`, which is a closure operator with respect to `ObjectProperty.IsStablyUnderShift`. Basic API lemmas are added, which closely follow the ones from `ObjectProperty.isoClosure`. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/ObjectProperty/Shift.lean + theorem CategoryTheory.ObjectProperty.isStableUnderShift_iff_shiftClosure_eq_self + theorem CategoryTheory.ObjectProperty.le_shiftClosure + theorem CategoryTheory.ObjectProperty.monotone_shiftClosure + theorem CategoryTheory.ObjectProperty.prop_shiftClosure_iff + def CategoryTheory.ObjectProperty.shiftClosure + theorem CategoryTheory.ObjectProperty.shiftClosure_eq_self + theorem CategoryTheory.ObjectProperty.shiftClosure_le_iff 2026-02-10 22:14:54 46b7a42 feat(LinearMap/End): more api for iterateRange (#35052) Two simple lemmas and a golf. ESTIMATED CHANGES Modified Mathlib/Algebra/Module/LinearMap/End.lean + theorem Module.End.iterate_succ' Modified Mathlib/Algebra/Module/Submodule/Range.lean + theorem LinearMap.iterateRange_succ 2026-02-10 22:14:52 b77ed64 feat(GeneralLinearGroup): define `GeneralLinearGroup.scalar` (#34986) I'm going to use it in lemmas about `PGL(n, R)`, see #34987. ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/Matrix/GeneralLinearGroup/Basic.lean + theorem Matrix.GeneralLinearGroup.center_eq_range_scalar - theorem Matrix.GeneralLinearGroup.center_eq_range_units - theorem Matrix.GeneralLinearGroup.mem_center_iff_val_eq_scalar + theorem Matrix.GeneralLinearGroup.mem_center_iff_val_mem_range_scalar Modified Mathlib/LinearAlgebra/Matrix/GeneralLinearGroup/Defs.lean + theorem Matrix.GeneralLinearGroup.det_scalar + def Matrix.GeneralLinearGroup.scalar Modified Mathlib/LinearAlgebra/Matrix/GeneralLinearGroup/FinTwo.lean 2026-02-10 22:14:50 0665956 refactor: add type synonym for convolutive product of linear maps and intrinsic star (#34945) ... to avoid instance conflicts. Currently, the instances in the scopes `IntrinsicStar` and `ConvolutionProduct` ([LinearMap.intrinsicStar](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Algebra/Star/LinearMap.html#LinearMap.intrinsicStar) and [LinearMap.convMul](https://leanprover-community.github.io/mathlib4_docs/Mathlib/RingTheory/Coalgebra/Convolution.html#LinearMap.convMul)) conflict with global instances. This fixes that. This also allows us to have these instances globally rather than scoped with a possible conflict. We follow the same implementation as with `WithLp`. We provide the type synonym as a structure to ensure that there will be no defeq abuse. The `WithConv` type synonym is defined for any type `A` so that we can have `WithConv (LinearMap R E F)`, `WithConv (ContinuousLinearMap R E F)` and `WithConv (Matrix m n R)`. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Star/LinearMap.lean +/- theorem LinearMap.IntrinsicStar.isSelfAdjoint_iff_map_star +/- theorem LinearMap.IntrinsicStar.isSelfAdjoint_iff_toMatrix' - def LinearMap.intrinsicInvolutiveStar - def LinearMap.intrinsicStar - def LinearMap.intrinsicStarAddMonoid - theorem LinearMap.intrinsicStarModule +/- theorem LinearMap.intrinsicStar_apply +/- theorem LinearMap.intrinsicStar_comp +/- theorem LinearMap.intrinsicStar_eq_comp +/- theorem LinearMap.intrinsicStar_id +/- theorem LinearMap.intrinsicStar_lTensor +/- theorem LinearMap.intrinsicStar_mulLeft +/- theorem LinearMap.intrinsicStar_mulRight +/- theorem LinearMap.intrinsicStar_rTensor +/- theorem LinearMap.intrinsicStar_smulRight +/- theorem LinearMap.intrinsicStar_zero +/- theorem LinearMap.toMatrix'_intrinsicStar +/- theorem Matrix.intrinsicStar_toLin' +/- theorem Module.End.IsUnit.intrinsicStar - def Module.End.Units.intrinsicStar +/- theorem Module.End.isUnit_intrinsicStar_iff +/- theorem Module.End.mem_eigenspace_intrinsicStar_iff +/- theorem Module.End.spectrum_intrinsicStar +/- theorem TensorProduct.intrinsicStar_map Added Mathlib/Algebra/WithConv.lean + theorem WithConv.equiv_apply + theorem WithConv.linearEquiv_apply + theorem WithConv.ofConv_add + theorem WithConv.ofConv_bijective + theorem WithConv.ofConv_eq_zero + theorem WithConv.ofConv_injective + theorem WithConv.ofConv_listSum + theorem WithConv.ofConv_multisetSum + theorem WithConv.ofConv_neg + theorem WithConv.ofConv_smul + theorem WithConv.ofConv_sub + theorem WithConv.ofConv_sum + theorem WithConv.ofConv_surjective + theorem WithConv.ofConv_toConv + theorem WithConv.ofConv_zero + theorem WithConv.symm_equiv_apply + theorem WithConv.symm_linearEquiv_apply + theorem WithConv.toAddEquiv_linearEquiv + theorem WithConv.toConv_add + theorem WithConv.toConv_bijective + theorem WithConv.toConv_eq_zero + theorem WithConv.toConv_injective + theorem WithConv.toConv_listSum + theorem WithConv.toConv_multisetSum + theorem WithConv.toConv_neg + theorem WithConv.toConv_ofConv + theorem WithConv.toConv_smul + theorem WithConv.toConv_sub + theorem WithConv.toConv_sum + theorem WithConv.toConv_surjective + theorem WithConv.toConv_zero + theorem WithConv.toEquiv_addEquiv + structure WithConv Modified Mathlib/RingTheory/Coalgebra/Convolution.lean +/- theorem Coalgebra.Repr.convMul_apply +/- theorem LinearMap.algHom_comp_convMul_distrib +/- theorem LinearMap.convMul_apply +/- theorem LinearMap.convMul_def +/- theorem LinearMap.convOne_apply +/- theorem LinearMap.convOne_def 2026-02-10 22:14:48 0cf0b73 chore(Tactic/CongrExclamation): improve `congr!` docstring (#34839) This PR (re)writes the docstring for the `congr!` tactic, to consistently match the official style guide, to make sure it is complete while not getting too long. The existing docstring for `congr!` was very detailed, which is good for e.g. a reference manual, but as a docstring it was hard to quickly find the relevance. I moved this docstring to the module docs, and instead wrote a new docstring that does not list all those details, referring to the module docs for the full picture. ESTIMATED CHANGES Modified Mathlib/Tactic/CongrExclamation.lean 2026-02-10 22:14:46 c2b78d2 feat(Topology/Irreducible): union of irreducible components (#34421) This PR adds a few API lemmas on unions of irreducible components. @alreadydone pointed out that this then gives a nice golf of TopologicalSpace.NoetherianSpace.exists_isOpen_nonempty_subset_irreducibleComponent ESTIMATED CHANGES Modified Mathlib/Topology/Irreducible.lean + theorem closure_sUnion_irreducibleComponents_diff_singleton + theorem mem_of_subset_sUnion_irreducibleComponents + theorem sUnion_irreducibleComponents Modified Mathlib/Topology/NoetherianSpace.lean 2026-02-10 22:14:44 192fc77 chore(AkraBazzi): golf the main proof (#33862) This PR significantly shortens the main proof of the Akra-Bazzi theorem, removing an `adaptation_note` in the process. ESTIMATED CHANGES Modified Mathlib/Computability/AkraBazzi/AkraBazzi.lean - theorem AkraBazziRecurrence.base_nonempty 2026-02-10 22:14:43 a304f47 feat: characterization of `List.splitBy` (#30898) ESTIMATED CHANGES Modified Mathlib/Data/List/Flatten.lean + theorem List.getLast_flatten_eq_getLast_getLast - theorem List.getLast_flatten_of_flatten_ne_nil - theorem List.getLast_flatten_of_getLast_ne_nil + theorem List.getLast_getLast_eq_getLast_flatten Modified Mathlib/Data/List/SplitBy.lean + theorem List.getLast_getLast_splitBy + theorem List.head_head_splitBy + theorem List.splitBy_append + theorem List.splitBy_append_cons + theorem List.splitBy_eq_iff + theorem List.splitBy_eq_nil + theorem List.splitBy_flatten + theorem List.splitBy_ne_nil + theorem List.splitBy_of_isChain 2026-02-10 21:20:29 449fcb1 chore: tidy various files (#35101) ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Subgroup/Ker.lean +/- theorem MonoidHom.ker_comp_mulEquiv Modified Mathlib/Algebra/Order/Antidiag/Nat.lean Modified Mathlib/AlgebraicTopology/ModelCategory/CofibrantObjectHomotopy.lean Modified Mathlib/Analysis/BoxIntegral/UnitPartition.lean Modified Mathlib/Analysis/Calculus/FDeriv/ContinuousAlternatingMap.lean Modified Mathlib/Analysis/Complex/Polynomial/GaussLucas.lean Modified Mathlib/Analysis/Fourier/AddCircleMulti.lean Modified Mathlib/Analysis/InnerProductSpace/Positive.lean Modified Mathlib/Analysis/Normed/Module/Alternating/Basic.lean Modified Mathlib/Analysis/Real/Pi/Chudnovsky.lean Modified Mathlib/Analysis/SpecialFunctions/ArithmeticGeometricMean.lean Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Cotangent.lean Modified Mathlib/CategoryTheory/ObjectProperty/FiniteProducts.lean Modified Mathlib/CategoryTheory/Sites/Point/Basic.lean Modified Mathlib/Combinatorics/Nullstellensatz.lean Modified Mathlib/Combinatorics/SimpleGraph/Bipartite.lean Modified Mathlib/Combinatorics/SimpleGraph/Walks/Subwalks.lean Modified Mathlib/Data/Set/Card.lean Modified Mathlib/Data/SetLike/Basic.lean Modified Mathlib/Data/Setoid/Partition/Card.lean Modified Mathlib/FieldTheory/IntermediateField/Adjoin/Basic.lean Modified Mathlib/Geometry/Euclidean/Angle/Oriented/Rotation.lean Modified Mathlib/GroupTheory/GroupAction/Iwasawa.lean Modified Mathlib/GroupTheory/GroupAction/MultiplePrimitivity.lean Modified Mathlib/GroupTheory/GroupAction/MultipleTransitivity.lean Modified Mathlib/GroupTheory/GroupAction/Primitive.lean Modified Mathlib/LinearAlgebra/Matrix/Stochastic.lean Modified Mathlib/LinearAlgebra/PiTensorProduct/Dual.lean Modified Mathlib/LinearAlgebra/PiTensorProduct/Finsupp.lean Modified Mathlib/LinearAlgebra/TensorPower/Pairing.lean Modified Mathlib/MeasureTheory/Function/ConditionalLExpectation.lean Modified Mathlib/MeasureTheory/Measure/AddContent.lean Modified Mathlib/MeasureTheory/Measure/MeasuredSets.lean Modified Mathlib/NumberTheory/ModularForms/Basic.lean Modified Mathlib/NumberTheory/ModularForms/EisensteinSeries/E2/Summable.lean Modified Mathlib/NumberTheory/ModularForms/EisensteinSeries/Summable.lean Modified Mathlib/NumberTheory/SelbergSieve.lean Modified Mathlib/Probability/Distributions/Gaussian/HasGaussianLaw/Basic.lean Modified Mathlib/Probability/Distributions/Gaussian/HasGaussianLaw/Independence.lean Modified Mathlib/RepresentationTheory/FinGroupCharZero.lean Modified Mathlib/RingTheory/ClassGroup.lean Modified Mathlib/RingTheory/Derivation/Basic.lean Modified Mathlib/RingTheory/Derivation/ToSquareZero.lean Modified Mathlib/RingTheory/LocalRing/ResidueField/Polynomial.lean Modified Mathlib/RingTheory/MvPolynomial/Basic.lean Modified Mathlib/RingTheory/MvPolynomial/Ideal.lean Modified Mathlib/RingTheory/NoetherNormalization.lean Modified Mathlib/RingTheory/PicardGroup.lean Modified Mathlib/RingTheory/Polynomial/ShiftedLegendre.lean Modified Mathlib/RingTheory/PowerSeries/Binomial.lean Modified Mathlib/RingTheory/TensorProduct/Basic.lean Modified Mathlib/RingTheory/Unramified/LocalStructure.lean Modified Mathlib/RingTheory/Valuation/Basic.lean Modified Mathlib/Topology/Order/AtTopBotIxx.lean Modified Mathlib/Topology/UniformSpace/Cauchy.lean 2026-02-10 21:03:05 35f123b feat(Mathlib/Analysis/Polynomial/Norm): Introduce Polynomial.supNorm (#33240) The supNorm (often called the height) of a polynomial is the max of the norm of its coefficients. Used extensively in arithmetic statistics and will support further work on counting polynomials with certain properties. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Analysis/Normed/Unbundled/RingSeminorm.lean + theorem SeminormedRing.toRingSeminorm_apply Modified Mathlib/Analysis/Polynomial/MahlerMeasure.lean + theorem Polynomial.supNorm_le_choose_natDegree_div_two_mul_mahlerMeasure Added Mathlib/Analysis/Polynomial/Norm.lean + theorem Polynomial.exists_eq_supNorm + theorem Polynomial.isGreatest_supNorm + theorem Polynomial.le_supNorm + theorem Polynomial.supNorm_C + theorem Polynomial.supNorm_X + theorem Polynomial.supNorm_def' + theorem Polynomial.supNorm_eq_iSup + theorem Polynomial.supNorm_eq_zero_iff + theorem Polynomial.supNorm_monomial + theorem Polynomial.supNorm_nonneg + theorem Polynomial.supNorm_zero 2026-02-10 20:11:08 a0dba33 feat: eight small complete lattices lemmas (#34812) ESTIMATED CHANGES Modified Mathlib/Order/CompleteLattice/Lemmas.lean + theorem biInf_sup_le_biInf_sup + theorem biSup_inf_le_biSup_inf + theorem biSup_inf_le_inf_biSup + theorem iInf_sup_le_iInf_sup + theorem iSup_inf_le_iSup_inf + theorem iSup_inf_le_inf_iSup + theorem sup_biInf_le_biInf_sup + theorem sup_iInf_le_iInf_sup 2026-02-10 19:29:23 17d3cb5 feat(Analysis/InnerProductSpace): multiplicity of LinearMap.IsSymmetric.eigenvalues (#34660) If `T` is a symmetric linear map and `μ : 𝕜`, then `μ` appears somewhere in the list `LinearMap.IsSymmetric.eigenvalues` a number of times equal to the dimension of the eigenspace of `μ`. Discussion for this PR and the related PR #34362 can be found here: https://leanprover.zulipchat.com/#narrow/channel/217875-Is-there-code-for-X.3F/topic/LinearMap.2EIsSymmetric.2Eeigenvalues.20has.20all.20the.20eigenvalues/with/571092190 ESTIMATED CHANGES Modified Mathlib/Analysis/InnerProductSpace/PiL2.lean + theorem DirectSum.IsInternal.card_filter_subordinateOrthonormalBasisIndex_eq Modified Mathlib/Analysis/InnerProductSpace/Spectrum.lean + theorem LinearMap.IsSymmetric.card_filter_eigenvalues_eq 2026-02-10 19:29:20 f4d59b3 feat(Analysis/Calculus/Deriv/Inverse): add `deriv_zero_of_frequently_mem` (#34576) This PR proves that if a function frequently (in `𝓝[s ∖ {x}]`) takes values in a set `t` that does not accumulate at `f x`, then its derivative at `x` equals zero. The application that I have in mind is where this set is closed and discrete (and thus has no accumulation points). ESTIMATED CHANGES Modified Mathlib/Analysis/Calculus/Deriv/Inverse.lean + theorem HasDerivAt.eventually_notMem + theorem HasDerivWithinAt.eventually_notMem + theorem HasDerivWithinAt.tendsto_nhdsWithin_nhdsNE + theorem derivWithin_zero_of_frequently_mem + theorem deriv_zero_of_frequently_mem Modified Mathlib/Analysis/Calculus/FDeriv/Equiv.lean +/- theorem HasFDerivAt.eventually_ne + theorem HasFDerivAt.eventually_notMem + theorem HasFDerivAt.tendsto_nhdsNE + theorem HasFDerivWithinAt.eventually_notMem + theorem HasFDerivWithinAt.tendsto_nhdsWithin_nhdsNE 2026-02-10 19:29:18 32a03d8 feat: `{Continuous}Linear{Isometry}Equiv.conj{Continuous, Star}AlgEquiv` are "almost" injective (#33417) ... "almost" meaning that they are colinear. I.e., `f.conj{Continuous, Star}AlgEquiv S = g.conj{Continuous, Star}AlgEquiv S` iff `f = α • g` for some unit(ary) `α`. Also, the same for `Unitary.conjStarAlgAut`. All in one PR since they all have analogous proofs. ESTIMATED CHANGES Modified Mathlib/Algebra/Central/End.lean Modified Mathlib/Algebra/Module/Equiv/Basic.lean + theorem LinearEquiv.smul_refl Modified Mathlib/Algebra/Module/Equiv/Defs.lean + theorem LinearEquiv.smul_apply + theorem LinearEquiv.smul_trans + theorem LinearEquiv.symm_smul + theorem LinearEquiv.symm_smul_apply + theorem LinearEquiv.toLinearMap_smul + theorem LinearEquiv.trans_smul Modified Mathlib/Algebra/Star/UnitaryStarAlgAut.lean + theorem Unitary.conjStarAlgAut_ext_iff' + theorem Unitary.conjStarAlgAut_ext_iff Modified Mathlib/Analysis/InnerProductSpace/Adjoint.lean + theorem LinearIsometryEquiv.conjStarAlgEquiv_ext_iff + theorem Unitary.conjStarAlgAut_symm_unitaryLinearIsometryEquiv + theorem Unitary.conjStarAlgEquiv_unitaryLinearIsometryEquiv Modified Mathlib/Analysis/LocallyConvex/SeparatingDual.lean + theorem ContinuousLinearEquiv.conjContinuousAlgEquiv_ext_iff Modified Mathlib/Analysis/Normed/Operator/ContinuousAlgEquiv.lean Modified Mathlib/Analysis/RCLike/Basic.lean + theorem LinearIsometryEquiv.smul_apply + theorem LinearIsometryEquiv.smul_trans + theorem LinearIsometryEquiv.symm_smul_apply + theorem LinearIsometryEquiv.symm_units_smul + theorem LinearIsometryEquiv.toContinuousLinearEquiv_smul + theorem LinearIsometryEquiv.toLinearEquiv_smul + theorem LinearIsometryEquiv.trans_smul Modified Mathlib/Topology/Algebra/Module/Equiv.lean + theorem ContinuousLinearEquiv.eq_toContinuousLinearMap_symm_comp + theorem ContinuousLinearEquiv.smul_apply + theorem ContinuousLinearEquiv.smul_trans + theorem ContinuousLinearEquiv.symm_smul + theorem ContinuousLinearEquiv.symm_smul_apply + theorem ContinuousLinearEquiv.toLinearEquiv_smul + theorem ContinuousLinearEquiv.trans_smul 2026-02-10 19:14:05 fd83ef4 chore(AlgebraicGeometry): refactor `structureSheaf` (#35090) We redefine `structureSheaf` to unify its construction with `tilde`. ESTIMATED CHANGES Modified Mathlib/Algebra/Category/Ring/FilteredColimits.lean Modified Mathlib/AlgebraicGeometry/AffineScheme.lean + theorem AlgebraicGeometry.Spec.algebraMap_stalkIso_inv + theorem AlgebraicGeometry.Spec.germ_stalkMapIso_hom + def AlgebraicGeometry.Spec.stalkIso Modified Mathlib/AlgebraicGeometry/GammaSpecAdjunction.lean +/- theorem AlgebraicGeometry.LocallyRingedSpace.toΓSpecCApp_spec - theorem AlgebraicGeometry.toOpen_toSpecΓ_app + theorem AlgebraicGeometry.ΓSpec.unop_locallyRingedSpaceAdjunction_counit_app' Modified Mathlib/AlgebraicGeometry/IdealSheaf/Subscheme.lean Modified Mathlib/AlgebraicGeometry/Modules/Tilde.lean - def ModuleCat.Tilde.const - theorem ModuleCat.Tilde.const_apply - theorem ModuleCat.Tilde.exists_const - theorem ModuleCat.Tilde.germ_comp_stalkToFiberLinearMap - def ModuleCat.Tilde.isFraction - def ModuleCat.Tilde.isFractionPrelocal - def ModuleCat.Tilde.isLocallyFraction - theorem ModuleCat.Tilde.isLocallyFraction_pred - theorem ModuleCat.Tilde.isUnit_toStalk - theorem ModuleCat.Tilde.localizationToStalk_mk - theorem ModuleCat.Tilde.res_const - theorem ModuleCat.Tilde.sections_smul_localizations_def - theorem ModuleCat.Tilde.stalkToFiberLinearMap_germ - theorem ModuleCat.Tilde.stalkToFiberLinearMap_toStalk - theorem ModuleCat.Tilde.toOpen_germ - theorem ModuleCat.Tilde.toStalk_comp_stalkToFiberLinearMap - def ModuleCat.tildeInType Modified Mathlib/AlgebraicGeometry/ProjectiveSpectrum/Scheme.lean Modified Mathlib/AlgebraicGeometry/Properties.lean Modified Mathlib/AlgebraicGeometry/Scheme.lean +/- theorem AlgebraicGeometry.Scheme.ΓSpecIso_inv Modified Mathlib/AlgebraicGeometry/Sites/Etale.lean Modified Mathlib/AlgebraicGeometry/Spec.lean +/- def AlgebraicGeometry.Spec.locallyRingedSpaceObj - theorem AlgebraicGeometry.localRingHom_comp_stalkIso_apply' Modified Mathlib/AlgebraicGeometry/SpreadingOut.lean Modified Mathlib/AlgebraicGeometry/Stalk.lean - theorem AlgebraicGeometry.Spec.algebraMap_stalkIso_inv - theorem AlgebraicGeometry.Spec.germ_stalkMapIso_hom - def AlgebraicGeometry.Spec.stalkIso Modified Mathlib/AlgebraicGeometry/StructureSheaf.lean + def AlgebraicGeometry.Localizations.comapFun + theorem AlgebraicGeometry.Localizations.comapFun_mk - def AlgebraicGeometry.PrimeSpectrum.Top +/- def AlgebraicGeometry.Spec.structureSheaf - theorem AlgebraicGeometry.StructureSheaf.IsFraction.eq_mk' +/- def AlgebraicGeometry.StructureSheaf.IsFraction - def AlgebraicGeometry.StructureSheaf.Localizations + theorem AlgebraicGeometry.StructureSheaf.algebraMap_self_map - def AlgebraicGeometry.StructureSheaf.basicOpenIso - theorem AlgebraicGeometry.StructureSheaf.coe_openToLocalization - def AlgebraicGeometry.StructureSheaf.comap - def AlgebraicGeometry.StructureSheaf.comapFun - theorem AlgebraicGeometry.StructureSheaf.comapFunIsLocallyFraction - theorem AlgebraicGeometry.StructureSheaf.comap_apply - theorem AlgebraicGeometry.StructureSheaf.comap_basicOpen - theorem AlgebraicGeometry.StructureSheaf.comap_comp - theorem AlgebraicGeometry.StructureSheaf.comap_const - theorem AlgebraicGeometry.StructureSheaf.comap_id' - theorem AlgebraicGeometry.StructureSheaf.comap_id - theorem AlgebraicGeometry.StructureSheaf.comap_id_eq_map + def AlgebraicGeometry.StructureSheaf.commRingCatStalkEquivModuleStalk +/- def AlgebraicGeometry.StructureSheaf.const +/- theorem AlgebraicGeometry.StructureSheaf.const_add + theorem AlgebraicGeometry.StructureSheaf.const_algebraMap - theorem AlgebraicGeometry.StructureSheaf.const_apply' +/- theorem AlgebraicGeometry.StructureSheaf.const_apply +/- theorem AlgebraicGeometry.StructureSheaf.const_congr + theorem AlgebraicGeometry.StructureSheaf.const_eq_const_of_smul_eq_smul +/- theorem AlgebraicGeometry.StructureSheaf.const_ext +/- theorem AlgebraicGeometry.StructureSheaf.const_mul +/- theorem AlgebraicGeometry.StructureSheaf.const_mul_rev +/- theorem AlgebraicGeometry.StructureSheaf.const_one +/- theorem AlgebraicGeometry.StructureSheaf.const_self +/- theorem AlgebraicGeometry.StructureSheaf.const_zero +/- theorem AlgebraicGeometry.StructureSheaf.exists_const + theorem AlgebraicGeometry.StructureSheaf.exists_le_iSup_basicOpen_and_smul_eq_smul_and_eq_const - theorem AlgebraicGeometry.StructureSheaf.germ_comp_stalkToFiberRingHom + theorem AlgebraicGeometry.StructureSheaf.germ_stalkToLocalizationₗ - theorem AlgebraicGeometry.StructureSheaf.germ_toOpen + def AlgebraicGeometry.StructureSheaf.germₗ +/- theorem AlgebraicGeometry.StructureSheaf.globalSectionsIso_hom +/- def AlgebraicGeometry.StructureSheaf.isFractionPrelocal +/- def AlgebraicGeometry.StructureSheaf.isLocallyFraction - theorem AlgebraicGeometry.StructureSheaf.isLocallyFraction_pred + theorem AlgebraicGeometry.StructureSheaf.isUnit_basicOpen + theorem AlgebraicGeometry.StructureSheaf.isUnit_basicOpen_end +/- theorem AlgebraicGeometry.StructureSheaf.isUnit_toStalk + theorem AlgebraicGeometry.StructureSheaf.isUnit_toStalkₗ' - theorem AlgebraicGeometry.StructureSheaf.isUnit_to_basicOpen_self - def AlgebraicGeometry.StructureSheaf.localizationToStalk - theorem AlgebraicGeometry.StructureSheaf.localizationToStalk_mk' - theorem AlgebraicGeometry.StructureSheaf.localizationToStalk_of - theorem AlgebraicGeometry.StructureSheaf.localizationToStalk_stalkSpecializes - theorem AlgebraicGeometry.StructureSheaf.localization_toBasicOpen + def AlgebraicGeometry.StructureSheaf.localizationtoStalkₗ + theorem AlgebraicGeometry.StructureSheaf.localizationtoStalkₗ_mk - theorem AlgebraicGeometry.StructureSheaf.locally_const_basicOpen + def AlgebraicGeometry.StructureSheaf.modulePresheafStalkIso - theorem AlgebraicGeometry.StructureSheaf.normalize_finite_fraction_representation - theorem AlgebraicGeometry.StructureSheaf.openAlgebra_map - def AlgebraicGeometry.StructureSheaf.openToLocalization - theorem AlgebraicGeometry.StructureSheaf.openToLocalization_apply + def AlgebraicGeometry.StructureSheaf.openToLocalizationₗ - theorem AlgebraicGeometry.StructureSheaf.res_const' +/- theorem AlgebraicGeometry.StructureSheaf.res_const + def AlgebraicGeometry.StructureSheaf.sectionsSubalgebra + def AlgebraicGeometry.StructureSheaf.sectionsSubalgebraSubmodule + def AlgebraicGeometry.StructureSheaf.sectionsSubmodule - def AlgebraicGeometry.StructureSheaf.sectionsSubring + theorem AlgebraicGeometry.StructureSheaf.smul_const - def AlgebraicGeometry.StructureSheaf.stalkIso + def AlgebraicGeometry.StructureSheaf.stalkIsoₗ - theorem AlgebraicGeometry.StructureSheaf.stalkSpecializes_stalk_to_fiber - def AlgebraicGeometry.StructureSheaf.stalkToFiberRingHom - theorem AlgebraicGeometry.StructureSheaf.stalkToFiberRingHom_germ - theorem AlgebraicGeometry.StructureSheaf.stalkToFiberRingHom_toStalk + def AlgebraicGeometry.StructureSheaf.stalkToLocalizationₗ - def AlgebraicGeometry.StructureSheaf.toBasicOpen - theorem AlgebraicGeometry.StructureSheaf.toBasicOpen_injective - theorem AlgebraicGeometry.StructureSheaf.toBasicOpen_mk' - theorem AlgebraicGeometry.StructureSheaf.toBasicOpen_surjective - theorem AlgebraicGeometry.StructureSheaf.toBasicOpen_to_map + def AlgebraicGeometry.StructureSheaf.toBasicOpenₗ + theorem AlgebraicGeometry.StructureSheaf.toBasicOpenₗ_injective + theorem AlgebraicGeometry.StructureSheaf.toBasicOpenₗ_mk + theorem AlgebraicGeometry.StructureSheaf.toBasicOpenₗ_surjective - theorem AlgebraicGeometry.StructureSheaf.toOpen_apply - theorem AlgebraicGeometry.StructureSheaf.toOpen_comp_comap - theorem AlgebraicGeometry.StructureSheaf.toOpen_eq_const - theorem AlgebraicGeometry.StructureSheaf.toOpen_germ - theorem AlgebraicGeometry.StructureSheaf.toOpen_res - theorem AlgebraicGeometry.StructureSheaf.toOpen_Γgerm_apply + def AlgebraicGeometry.StructureSheaf.toOpenₗ + theorem AlgebraicGeometry.StructureSheaf.toOpenₗ_eq_const + theorem AlgebraicGeometry.StructureSheaf.toOpenₗ_germ - def AlgebraicGeometry.StructureSheaf.toStalk - theorem AlgebraicGeometry.StructureSheaf.toStalk_comp_stalkToFiberRingHom + theorem AlgebraicGeometry.StructureSheaf.toStalk_smul + def AlgebraicGeometry.StructureSheaf.toStalkₗ' + theorem AlgebraicGeometry.StructureSheaf.toStalkₗ'_stalkToFiberRingHom + def AlgebraicGeometry.StructureSheaf.toStalkₗ - theorem AlgebraicGeometry.StructureSheaf.to_global_factors + def AlgebraicGeometry.comap + def AlgebraicGeometry.comapFun + theorem AlgebraicGeometry.comap_apply + theorem AlgebraicGeometry.comap_basicOpen + theorem AlgebraicGeometry.comap_comp + theorem AlgebraicGeometry.comap_const + theorem AlgebraicGeometry.comap_id' + theorem AlgebraicGeometry.comap_id + theorem AlgebraicGeometry.comap_id_eq_map + def AlgebraicGeometry.comapₗ + theorem AlgebraicGeometry.comapₗ_const + theorem AlgebraicGeometry.comapₗ_eq_localRingHom + theorem AlgebraicGeometry.isLocallyFraction_comapFun + def AlgebraicGeometry.moduleStructurePresheaf - def AlgebraicGeometry.structurePresheafInCommRing + def AlgebraicGeometry.structurePresheafInCommRingCat + def AlgebraicGeometry.structurePresheafInModuleCat + theorem AlgebraicGeometry.structureSheafInType.add_apply + theorem AlgebraicGeometry.structureSheafInType.mul_apply + theorem AlgebraicGeometry.structureSheafInType.smul_apply + theorem AlgebraicGeometry.toOpen_comp_comap Modified Mathlib/RingTheory/Spectrum/Prime/Topology.lean + theorem PrimeSpectrum.le_basicOpen_pow 2026-02-10 18:56:54 af9ef59 feat(RingTheory/UniqueFactorizationDomain/Moebius): define the moebius function on a unique factorization monoid (#34735) This PR defines the moebius function on a unique factorization monoid. The use case I have in mind is polynomials over a field. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/RingTheory/UniqueFactorizationDomain/Moebius.lean + theorem Associated.moebius_eq + theorem Irreducible.moebius_eq + theorem IsRelPrime.moebius_mul + theorem IsUnit.moebius_eq + theorem Nat.moebius_eq + theorem Squarefree.moebius_eq + theorem UniqueFactorizationMonoid.moebius_of_not_squarefree + theorem UniqueFactorizationMonoid.moebius_one + theorem UniqueFactorizationMonoid.moebius_zero 2026-02-10 18:25:10 280b4e3 feat(RingTheory): etale local structure of quasi-finite algebras (#35036) ESTIMATED CHANGES Modified Mathlib/RingTheory/Etale/Basic.lean Modified Mathlib/RingTheory/Etale/QuasiFinite.lean +/- theorem Algebra.exists_etale_isIdempotentElem_forall_liesOver_eq + theorem Algebra.exists_etale_isIdempotentElem_forall_liesOver_eq_aux + theorem Algebra.exists_etale_isIdempotentElem_forall_liesOver_eq_aux₂ + theorem Algebra.exists_notMem_and_isIntegral_forall_mem_of_ne_of_liesOver Modified Mathlib/RingTheory/Ideal/Over.lean Modified Mathlib/RingTheory/Ideal/Prime.lean + theorem Ideal.notMem_of_isUnit Modified Mathlib/RingTheory/LocalRing/ResidueField/Fiber.lean Modified Mathlib/RingTheory/LocalRing/ResidueField/Ideal.lean Modified Mathlib/RingTheory/Localization/Away/Basic.lean + theorem IsLocalization.Away.algebraMap_surjective_of_isIdempotentElem +/- theorem IsLocalization.away_of_isIdempotentElem_of_mul + theorem Localization.awayMap_awayMap_surjective 2026-02-10 18:25:07 a5ff9c0 feat(Mathlib/Analysis/SpecialFunctions/Log/Base): More log asymptotics (#33389) A common utility in proving asymptotics is `logb b =O[⊤] log` and `(log ∘ (c * ·)) =O[atTop] log` and related lemmas `logb`. This PR fills these in for future use. [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) ESTIMATED CHANGES Modified Mathlib/Analysis/SpecialFunctions/Log/Base.lean + theorem Real.isBigO_log_const_mul_log_atTop + theorem Real.isBigO_log_mul_const_log_atTop + theorem Real.isBigO_logb_const_mul_log_atTop + theorem Real.isBigO_logb_log + theorem Real.isBigO_logb_mul_const_log_atTop +/- theorem Real.logb_neg_base_eq_logb 2026-02-10 17:28:18 c669683 chore(Order/Defs/Unbundled): deprecate `def AntiSymmetric` in favor of `class Std.Antisymm` (#35025) ESTIMATED CHANGES Modified Mathlib/Analysis/Convex/Extreme.lean Modified Mathlib/ModelTheory/Order.lean Modified Mathlib/ModelTheory/Semantics.lean Modified Mathlib/Order/Defs/Unbundled.lean 2026-02-10 17:28:17 20fad7b feat: results about subtraction of measures (#35018) Main results: * `sub_le_iff_le_add`: for `μ` and `ν` finite measures, `μ - ν ≤ ξ ↔ μ ≤ ξ + ν`. * `withDensity_sub`: If `μ.withDensity g` is finite, then `μ.withDensity (f - g) = μ.withDensity f - μ.withDensity g`. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/MeasureTheory/Measure/Decomposition/Lebesgue.lean + theorem MeasureTheory.Measure.add_sub_of_mutuallySingular Modified Mathlib/MeasureTheory/Measure/Sub.lean + theorem MeasureTheory.Measure.sub_le_iff_le_add_of_le Added Mathlib/MeasureTheory/Measure/SubFinite.lean + theorem MeasureTheory.Measure.sub_le_iff_le_add + theorem MeasureTheory.Measure.withDensity_sub + theorem MeasureTheory.Measure.withDensity_sub_of_le 2026-02-10 17:28:15 5179aba refactor(translate): put `executeReservedNameAction` in a more natural place (#34999) This PR cleans up a piece of the implementation of `to_additive`/`to_dual`. The function `executeReservedNameAction` needs to be run on generated translations that haven't been realized yet. This PR moves this function call to the place of the original check that checks whether the declaration exists or is a reserved name. ESTIMATED CHANGES Modified Mathlib/Tactic/Translate/Core.lean +/- def Mathlib.Tactic.Translate.findPrefixTranslation? 2026-02-10 17:28:13 9c01b6b chore(Algebra/Order/GroupWithZero): generalize some hypotheses from pos to nonneg (#34992) ESTIMATED CHANGES Modified Mathlib/Algebra/MvPolynomial/SchwartzZippel.lean Modified Mathlib/Algebra/Order/GroupWithZero/Finset.lean +/- theorem Finset.mul₀_sup' +/- theorem Finset.sup'_div₀ +/- theorem Finset.sup'_mul₀ +/- theorem Finset.sup_div₀ 2026-02-10 17:28:11 e011861 feat(MeasureTheory.VectorMeasure): add a definition of total variation for VectorMeasure (#26156) This PR adds variation for any `VectorMeasure` using a supremum definition. Currently mathlib has `TotalVariation` defined for a signed measure using the Hahn-Jordan decomposition, but this doesn't generalise. Motivation: generally this is an important concept but specifically as a step for proving RMK in the complex case which in turn is a step to prove the spectral theorem. This PR was migrated from #25442. PR divided into smaller pieces, this is just the definition without additional lemmas. PRs adding further results related to variation are: * #26160 * #26165 * #26168 (shows that for `SignedMeasures` the two definitions of variation coincide) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/MeasureTheory/MeasurableSpace/MeasurablyGenerated.lean + theorem MeasurableSet.subtype_bot_eq Added Mathlib/MeasureTheory/Measure/PreVariation.lean + def MeasureTheory.IsSigmaSubadditiveSetFun + theorem MeasureTheory.preVariation.Finset.sup_measurableSetSubtype_eq_biUnion + theorem MeasureTheory.preVariation.empty + theorem MeasureTheory.preVariation.exists_Finpartition_sum_ge + theorem MeasureTheory.preVariation.exists_Finpartition_sum_gt + theorem MeasureTheory.preVariation.iUnion + theorem MeasureTheory.preVariation.mono + theorem MeasureTheory.preVariation.sum_le + theorem MeasureTheory.preVariation.sum_le_preVariationFun_iUnion' + theorem MeasureTheory.preVariation.sum_le_preVariationFun_iUnion + theorem MeasureTheory.preVariation.sum_le_preVariationFun_of_subset Added Mathlib/MeasureTheory/VectorMeasure/Variation/Defs.lean + theorem MeasureTheory.VectorMeasure.isSigmaSubadditiveSetFun_enorm Modified Mathlib/Order/Partition/Finpartition.lean + def Finpartition.combine + def Finpartition.extendOfLE + theorem Finpartition.parts_extendOfLE_of_eq + theorem Finpartition.parts_extendOfLE_of_lt + theorem Finpartition.parts_subset_extendOfLE + def Finpartition.restrict + theorem Finpartition.sum_combine + theorem Finpartition.sum_restrict Modified Mathlib/Topology/Algebra/InfiniteSum/ENNReal.lean 2026-02-10 16:30:42 ff79675 feat(Analysis/SpecialFunctions/Pow): prove `(f : α → ℝ) ^ (0 : ℝ) = 1` (#35083) Prove `pi_rpow_zero (f : α → ℝ) : f ^ (0 : ℝ) = 1`. ESTIMATED CHANGES Modified Mathlib/Analysis/SpecialFunctions/Pow/Real.lean + theorem Real.pi_rpow_zero 2026-02-10 16:30:40 672ea22 feat(RingTheory): local structure of unramified algebras (#35023) ESTIMATED CHANGES Modified Mathlib/RingTheory/Localization/Away/AdjoinRoot.lean Modified Mathlib/RingTheory/Localization/Away/Basic.lean + theorem Localization.awayMap_bijective_of_dvd + theorem Localization.awayMap_injective_of_dvd + theorem Localization.awayMap_surjective_of_dvd Modified Mathlib/RingTheory/Unramified/LocalStructure.lean + theorem Algebra.IsUnramifiedAt.IsEtaleAt.exists_isStandardEtale + theorem Algebra.IsUnramifiedAt.IsSmoothAt.exists_isStandardEtale_mvPolynomial - theorem Algebra.IsUnramifiedAt.exists_hasStandardEtaleSurjectionAt_of_finite + theorem Algebra.IsUnramifiedAt.exists_hasStandardEtaleSurjectionOn - theorem Algebra.IsUnramifiedAt.exists_hasStandardEtaleSurjectionOn_of_exists_adjoin_singleton_eq_top 2026-02-10 16:30:38 1932ef2 chore: rename "Pempty" to "PEmpty" in two definitions (#34971) The previous names were simply wrong. Reported on zulip. ESTIMATED CHANGES Modified Mathlib/RingTheory/FreeCommRing.lean + def freeCommRingPEmptyEquivInt - def freeCommRingPemptyEquivInt + def freeRingPEmptyEquivInt - def freeRingPemptyEquivInt 2026-02-10 16:30:35 dde8dbf chore: add references for order types (#34739) ESTIMATED CHANGES Modified Mathlib/Order/Types/Arithmetic.lean Modified Mathlib/Order/Types/Defs.lean Modified docs/references.bib 2026-02-10 16:30:33 e120823 chore: add CITATION.md (#34708) This PR adds a CITATION.md file with bibtex for citing the mathlib CPP 2020 paper. 🤖 Prepared with Claude Code ESTIMATED CHANGES Added CITATION.md 2026-02-10 16:30:30 75d3f74 feat(Order/Interval/Set): `to_dual` for `Iio`/`Iic` (#33964) This PR tags `Iio`/`Ioi` and `Iic`/`Ici` with `to_dual`. A future PR will do this for `Ioc`/`Ico` and `Ioo` and `Icc`. ESTIMATED CHANGES Modified Mathlib/Analysis/Calculus/Deriv/MeanValue.lean Modified Mathlib/Analysis/Convex/Deriv.lean Modified Mathlib/Analysis/InnerProductSpace/GramSchmidtOrtho.lean Modified Mathlib/Analysis/MellinTransform.lean Modified Mathlib/MeasureTheory/Constructions/BorelSpace/Order.lean Modified Mathlib/Order/Interval/Set/Basic.lean - theorem IsBot.Ici_eq - theorem IsMax.Ici_eq - theorem Set.Ici_bot - theorem Set.Ici_diff_Ioi_same - theorem Set.Ici_diff_left - theorem Set.Ici_inj - theorem Set.Ici_injective - theorem Set.Ici_inter_Ici - theorem Set.Ici_ofDual - theorem Set.Ici_prod_Ici - theorem Set.Ici_prod_eq - theorem Set.Ici_ssubset_Ici - theorem Set.Ici_subset_Ici - theorem Set.Ici_subset_Ioi - theorem Set.Ici_toDual - theorem Set.Iic_bot +/- theorem Set.Iic_ssubset_Iic - theorem Set.Iio_bot +/- theorem Set.Iio_eq_empty_iff +/- theorem Set.Iio_nonempty - theorem Set.Ioi_bot - theorem Set.Ioi_eq_empty_iff - theorem Set.Ioi_insert - theorem Set.Ioi_nonempty - theorem Set.Ioi_ofDual - theorem Set.Ioi_ssubset_Ici_self - theorem Set.Ioi_ssubset_Ioi - theorem Set.Ioi_subset_Ici - theorem Set.Ioi_subset_Ici_self - theorem Set.Ioi_subset_Ioi - theorem Set.Ioi_toDual - theorem Set.Ioi_union_left - theorem Set.mem_Ici_Ioi_of_subset_of_subset - theorem Set.nonempty_Ici - theorem Set.nonempty_Ioi - theorem Set.notMem_Iio_self - theorem Set.notMem_Ioi_self - theorem Set.self_mem_Ici +/- theorem Set.self_mem_Iic +/- theorem Set.self_notMem_Iio - theorem Set.self_notMem_Ioi 2026-02-10 16:30:27 e0c01c2 feat(Order/CompleteLattice/Defs): `to_dual` for `CompleteSemilattice`s (#33765) This PR uses `to_dual` for `CompleteSemilatticeSup` and `CompleteSemilatticeInf`. These will need to be refactored/deprecated in the future, but I think it makes sense to make the code smaller (using `to_dual`) before such a refactor. ESTIMATED CHANGES Modified Mathlib/Order/CompleteLattice/Defs.lean - theorem iInf_le_iff - theorem isGLB_iff_sInf_eq - theorem isGLB_sInf - theorem le_sInf - theorem le_sInf_iff - theorem ofDual_iInf - theorem ofDual_sInf - theorem sInf_le - theorem sInf_le_iff - theorem sInf_le_of_le - theorem sInf_le_sInf - theorem toDual_iInf - theorem toDual_sInf 2026-02-10 16:30:24 ffb082e feat(Data/Finsupp/Pointwise): generalise pointwise scalar multiplication of finsupps (#32971) This PR continues the work from #24050. Original PR: https://github.com/leanprover-community/mathlib4/pull/24050 ESTIMATED CHANGES Modified Mathlib/Data/Finsupp/Pointwise.lean 2026-02-10 15:26:51 f7ee184 chore: add missing `fun_prop` attribute (#35085) Add a badly missing `fun_prop` attribute. ESTIMATED CHANGES Modified Mathlib/Topology/Algebra/MulAction.lean 2026-02-10 15:26:48 13d4176 fix: trivial typo in mk_all -h docs (#35063) Trivial PR that adds a missing space. Before, the output looks as follows: ``` mk_all [0.0.1] Generate a file importing all the files of a Lean folder. By default, it generates the files for the Lean libraries of the package.In the case of `Mathlib`, it removes the libraries `Cache` and `MathlibTest`and it adds `Mathlib/Tactic`. If you are working in a project downstream of mathlib, use `lake exe mk_all --lib MyProject`. ``` ESTIMATED CHANGES Modified scripts/mk_all.lean 2026-02-10 15:26:46 89401b0 feat(CategoryTheory/Sites): functors that are 1-hypercover dense (#35022) Let `F : C₀ ⥤ C` be a functor equipped with Grothendieck topologies `J₀` and `J`. Assume that `F` is a dense subsite. We introduce a typeclass `IsOneHypercoverDense.{w} F J₀ J` which roughly says that objects in `C` admits a `1`-hypercover consisting of objects in `C₀`. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Sites/DenseSubsite/OneHypercoverDense.lean + structure CategoryTheory.Functor.OneHypercoverDenseData + def CategoryTheory.Functor.PreOneHypercoverDenseData.multicospanIndex + def CategoryTheory.Functor.PreOneHypercoverDenseData.multicospanMap + def CategoryTheory.Functor.PreOneHypercoverDenseData.multicospanMapIso + def CategoryTheory.Functor.PreOneHypercoverDenseData.multicospanShape + def CategoryTheory.Functor.PreOneHypercoverDenseData.sieve₁₀ + def CategoryTheory.Functor.PreOneHypercoverDenseData.toPreOneHypercover + structure CategoryTheory.Functor.PreOneHypercoverDenseData + theorem CategoryTheory.Functor.isDenseSubsite_of_isOneHypercoverDense 2026-02-10 15:26:44 cf57308 fix(to_dual_insert_cast): support translated hypotheses (#34822) This PR fixes an oversight in the implementation of `to_dual_insert_cast`. It used to assume that the arguments of the to-be-unfolded definition do not need to be translated. ESTIMATED CHANGES Modified Mathlib/Tactic/Translate/TagUnfoldBoundary.lean Modified MathlibTest/ToDual.lean + def nonemptyIcc 2026-02-10 13:35:30 07552c3 feat(Order): some `WithBot` lemmas (#35082) 1. Tag `map_id : WithBot.map (id : α → α) = id` with `@[simp]`. 2. Prove `bot_lt_one : ⊥ < (1 : WithBot α)`. ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Monoid/Unbundled/WithTop.lean + theorem WithBot.bot_lt_one Modified Mathlib/Order/WithBot.lean 2026-02-10 13:35:28 b2604db fix(translate): mark translated definitions with `meta` (#35065) This PR lets translations in `to_dual`/`to_additive` be marked with `meta` if the original was as well. This is necessary when dealing with autoparams, because they are marked with `meta`, and we need their translation to also be marked with `meta`. I've added a test for this in `MathlibTest.ToDual`. This needs to be run in a `module` to actually test something relevant, so I've make the test file into a `module`. ESTIMATED CHANGES Modified Mathlib/Tactic/Translate/Core.lean Modified MathlibTest/ToDual.lean + def Top.autoParamTest 2026-02-10 13:35:26 578cfc5 fix(translate): remove `withoutExporting` (#35004) This PR removes `withoutExporting` from `applyAttributes` in `to_additive`/`to_dual`. There is no reason why this should be here, and it causes problems in #33964. The specific problem is that the `gcongr` tag was running in `withoutExporting`, which caused it to (surprise surprise) not export the lemma that it generated, making it private instead. It was added by Kim Morrisson in the PR that put mathlib on the module system, with no explanation of why. ESTIMATED CHANGES Modified Mathlib/Tactic/Translate/Core.lean 2026-02-10 13:35:23 040cf2f chore: cleanup using new `to_dual` capabilities (#34879) This PR gets rid of some `to_dual existing` that can be resolved now that `to_dual` can insert cast when translating. This PR adds 2 new definitions: `gtEmbedding` and `toRelIsoGT`. ESTIMATED CHANGES Modified Mathlib/Order/Directed.lean - theorem Antitone.directed_ge - theorem Monotone.directed_ge Modified Mathlib/Order/Hom/Basic.lean - theorem OrderIso.symm_apply_le - theorem OrderIso.symm_apply_lt + theorem OrderIso.toRelIsoGT_symm Modified Mathlib/Order/Shrink.lean Modified Mathlib/Order/WithBot.lean - theorem WithTop.coe_mono - theorem WithTop.coe_strictMono - theorem WithTop.monotone_iff - theorem WithTop.monotone_map_iff - theorem WithTop.strictAnti_iff - theorem WithTop.strictMono_iff - theorem WithTop.strictMono_map_iff Modified Mathlib/Tactic/Translate/ToDual.lean 2026-02-10 13:35:20 11c58c1 chore(CI): combine nightly bump and pr-testing merge workflows (#34827) This combines `nightly_bump_toolchain.yml` and `discover-lean-pr-testing.yml` into a single `nightly_bump_and_merge.yml` workflow. Previously, when the toolchain was bumped: 1. The bump workflow pushed → CI ran (potentially failing) 2. This triggered the discover workflow which merged adaptations → CI ran again This caused spurious CI failure notifications for the intermediate state (bumped toolchain without the adaptations). Now both operations happen in a single workflow: 1. Bump the toolchain (commit locally, don't push yet) 2. Find and merge any relevant lean-pr-testing branches 3. Push everything at once → single CI run The merge script is also updated to not push (the workflow handles the push). ## Related - Companion PR for batteries: https://github.com/leanprover-community/batteries/pull/1655 - https://github.com/leanprover-community/mathlib4/pull/34821 will need to update the workflow list for `mathlib-nightly-testing` app once this is merged 🤖 Prepared with Claude Code ESTIMATED CHANGES Renamed .github/workflows/discover-lean-pr-testing.yml to .github/workflows/nightly_bump_and_merge.yml Deleted .github/workflows/nightly_bump_toolchain.yml Modified scripts/merge-lean-testing-pr.sh 2026-02-10 12:36:47 2cfa21a chore(Tactic): tweak `#check` tactic docstring (#35075) Small style improvements to the tactic docstring so it matches the style guide. ESTIMATED CHANGES Modified Mathlib/Tactic/Check.lean 2026-02-10 12:36:44 8803a9e chore(Tactic): tweak `#adaptation_note` tactic docstring (#35074) Small style improvements to the tactic docstring so it matches the style guide. ESTIMATED CHANGES Modified Mathlib/Tactic/AdaptationNote.lean 2026-02-10 12:36:41 ccc21c6 feat(Geometry/Euclidean/Angle/Bisector): oriented angle bisection mod π (#30981) Add lemmas relating equal distance to two lines to bisecting the angle between them mod π (expressed as usual as equality of twice angles), building on the previous lemmas (#30477) dealing with bisection mod 2π. Existing lemmas have hypotheses of the form `(hp' : p' ∈ s₁ ⊓ s₂)` changed to `(hp'₁ : p' ∈ s₁) (hp'₂ : p' ∈ s₂)`, matching new lemmas, on the basis that the natural way to prove the first form is to use proofs of the two separate hypotheses. ESTIMATED CHANGES Modified Mathlib/Geometry/Euclidean/Angle/Bisector.lean + theorem EuclideanGeometry.dist_orthogonalProjection_eq_of_two_zsmul_oangle_eq + theorem EuclideanGeometry.dist_orthogonalProjection_line_eq_iff_two_zsmul_oangle_eq + theorem EuclideanGeometry.dist_orthogonalProjection_line_eq_of_two_zsmul_oangle_eq + theorem EuclideanGeometry.two_zsmul_oangle_eq_of_dist_orthogonalProjection_line_eq Modified Mathlib/Geometry/Euclidean/Projection.lean + theorem EuclideanGeometry.dist_orthogonalProjection_eq_dist_iff_eq_of_mem 2026-02-10 11:38:04 0ee99c4 feat(Algebra/Category): module structure on stalks (#35071) Let `M` be a presheaf of `R`-modules on a topological space. We endow `M.presheaf.stalk x` with an `R.stalk x`-module structure. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Category/Grp/Basic.lean + theorem CommGrpCat.forget₂_map + theorem GrpCat.forget₂_map Modified Mathlib/Algebra/Category/ModuleCat/Presheaf.lean + theorem PresheafOfModules.map_comp_apply Added Mathlib/Algebra/Category/ModuleCat/Stalk.lean + theorem CategoryTheory.Limits.IsColimit.ι_smul + def CategoryTheory.Limits.colimit.smul + theorem PresheafOfModules.germ_ringCat_smul + theorem PresheafOfModules.germ_smul Modified Mathlib/Algebra/Category/Ring/Basic.lean + theorem RingCat.forget₂_map + theorem SemiRingCat.forget₂_addCommMonCat_map + theorem SemiRingCat.forget₂_monCat_map Modified Mathlib/CategoryTheory/Filtered/Basic.lean + theorem CategoryTheory.IsFiltered.crown + theorem CategoryTheory.IsFiltered.crown₃ + theorem CategoryTheory.IsFiltered.crown₄ Modified Mathlib/CategoryTheory/Limits/Types/ColimitType.lean + theorem CategoryTheory.Functor.ιColimitType_eq_of_map_eq_map 2026-02-10 11:38:01 c172dd7 refactor(AlgebraicGeometry/Smooth): replace `Locally IsStandardSmooth` by `Smooth` (#35034) This finally completes the journey of a reasonable definition of smooth morphisms. For historical context: The old definition was put in place around the AIM workshop on algebraic geometry in summer 2024 with the plan to eventually replace it by this definition when all the commutative algebra pre-requisites are completed. This is now the case, with the last piece being the equivalence of smooth with locally standard smooth. ESTIMATED CHANGES Modified Mathlib/AlgebraicGeometry/Morphisms/Etale.lean + theorem AlgebraicGeometry.Etale.eq_smoothOfRelativeDimension_zero + theorem AlgebraicGeometry.Etale.iff_smoothOfRelativeDimension_zero Modified Mathlib/AlgebraicGeometry/Morphisms/RingHomProperties.lean + theorem AlgebraicGeometry.HasRingHomProperty.ext Modified Mathlib/AlgebraicGeometry/Morphisms/Smooth.lean + theorem AlgebraicGeometry.Smooth.exists_isStandardSmooth + theorem AlgebraicGeometry.Smooth.iff_forall_exists_isStandardSmooth +/- theorem AlgebraicGeometry.SmoothOfRelativeDimension.smooth - theorem AlgebraicGeometry.smooth_isStableUnderBaseChange Modified Mathlib/RingTheory/RingHom/Etale.lean + theorem RingHom.Etale.containsIdentities + theorem RingHom.Etale.formallyUnramified Modified Mathlib/RingTheory/RingHom/LocallyStandardSmooth.lean + theorem RingHom.etale_iff_isStandardSmoothOfRelativeDimension_zero Modified Mathlib/RingTheory/Smooth/Flat.lean + theorem RingHom.Smooth.flat 2026-02-10 11:37:59 1dc8663 feat(Data): factor `Multiset.inf` lemmas through `to_dual` (#34718) Derive `Multiset.inf` and its lemmas via `to_dual` from `Multiset.sup`, keeping names and attributes unchanged. ESTIMATED CHANGES Modified Mathlib/Data/Multiset/Lattice.lean - def Multiset.inf - theorem Multiset.inf_add - theorem Multiset.inf_coe - theorem Multiset.inf_cons - theorem Multiset.inf_dedup - theorem Multiset.inf_le - theorem Multiset.inf_mono - theorem Multiset.inf_ndinsert - theorem Multiset.inf_ndunion - theorem Multiset.inf_singleton - theorem Multiset.inf_union - theorem Multiset.inf_zero - theorem Multiset.le_inf 2026-02-10 10:39:25 83bccbf chore(Tactic/CasesM): improve `casesm`, `cases_type` and `constructorm` tactic docstrings (#34538) This PR (re)writes the docstrings for the `casesm`, `cases_type` and `constructorm` tactics to consistently match the official style guide, to make sure they are complete while not getting too long. ESTIMATED CHANGES Modified Mathlib/Tactic/CasesM.lean 2026-02-10 09:16:52 65590a2 refactor(Data/List/Induction): improve definition of `reverseRecOn` (#33192) This PR improves the definition of `List.reverseRecOn`. ESTIMATED CHANGES Modified Mathlib/Data/List/Induction.lean + def List.reverseRec - def List.reverseRecOn + theorem List.reverseRec_concat + theorem List.reverseRec_nil 2026-02-10 09:04:26 330e666 feat(RingTheory/Lasker): minimal primes arise in any primary decomposition (#34700) This PR proves that the minimal primes over an ideal `I` all arise as radicals in any primary decomposition of `I`. ESTIMATED CHANGES Modified Mathlib/RingTheory/Lasker.lean + theorem Ideal.IsMinimalPrimaryDecomposition.minimalPrimes_subset_image_radical 2026-02-10 07:43:50 9c8cb0b feat(Combinatorics/SimpleGraph): connect-sums are connected (#34804) Also rename the existing type variables, which were confusing. From ProofBench ESTIMATED CHANGES Modified Mathlib/Combinatorics/SimpleGraph/Sum.lean + theorem SimpleGraph.Connected.sum_sup_edge +/- def SimpleGraph.Iso.sumAssoc +/- def SimpleGraph.Iso.sumComm + theorem SimpleGraph.Preconnected.sum_sup_edge + theorem SimpleGraph.Reachable.sum_sup_edge 2026-02-10 07:06:05 2515300 feat(Tactic/ComputeAsymptotics/Multiseries): non-primitive corecursion for `Seq` (#34311) This PR develops a theory that justifies corecursive definitions of the form ```lean def foo (x : X) := hd x :: f (foo (tlArg x)) ``` where `f : Seq α → Seq α` is a friendly operation. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Data/Seq/Basic.lean + theorem Stream'.Seq.all_coind_drop_motive Modified Mathlib/Data/Seq/Defs.lean Modified Mathlib/Tactic.lean Added Mathlib/Tactic/ComputeAsymptotics/Multiseries/Corecursion.lean + theorem Tactic.ComputeAsymptotics.Seq.FriendlyOperation.comp + theorem Tactic.ComputeAsymptotics.Seq.FriendlyOperation.const + theorem Tactic.ComputeAsymptotics.Seq.FriendlyOperation.dist_le + theorem Tactic.ComputeAsymptotics.Seq.FriendlyOperation.exists_fixed_point + theorem Tactic.ComputeAsymptotics.Seq.FriendlyOperation.id + theorem Tactic.ComputeAsymptotics.Seq.FriendlyOperation.ite + def Tactic.ComputeAsymptotics.Seq.FriendlyOperation + theorem Tactic.ComputeAsymptotics.Seq.FriendlyOperationClass.comp + theorem Tactic.ComputeAsymptotics.Seq.Stream'.dist_le_one + theorem Tactic.ComputeAsymptotics.Seq.dist_cons_cons + theorem Tactic.ComputeAsymptotics.Seq.dist_cons_cons_eq_one + theorem Tactic.ComputeAsymptotics.Seq.dist_cons_nil + theorem Tactic.ComputeAsymptotics.Seq.dist_eq_half_of_head + theorem Tactic.ComputeAsymptotics.Seq.dist_eq_one_of_head + theorem Tactic.ComputeAsymptotics.Seq.dist_eq_two_inv_pow + theorem Tactic.ComputeAsymptotics.Seq.dist_le_one + theorem Tactic.ComputeAsymptotics.Seq.dist_nil_cons + theorem Tactic.ComputeAsymptotics.Seq.exists_fixed_point_of_contractible + theorem Tactic.ComputeAsymptotics.Seq.gcorec_nil + theorem Tactic.ComputeAsymptotics.Seq.gcorec_some Modified Mathlib/Topology/MetricSpace/PiNat.lean Modified docs/references.bib 2026-02-10 02:48:57 cb93bef doc: fix typo (#35045) ESTIMATED CHANGES Modified Mathlib/Analysis/Distribution/TemperedDistribution.lean 2026-02-10 01:48:15 274aca2 fix(GroupTheory/Complement): avoid DecidableEq diamond in Function.update proofs (#35059) This PR fixes fragile proofs in `exists_isComplement_left` and `exists_isComplement_right` that used the antipattern: ```lean refine Function.update_of_ne ?_ g Quotient.out ▸ q.out_eq' exact hq ``` Here the `refine`/`exact` split guides elaboration in a way that isn't evident from the source: `Function.update_of_ne` picks up a `DecidableEq` instance (from `QuotientGroup.instDecidableEq`) that can differ from the one used by `Function.update` in the goal (the `classical` instance), causing the `▸` to fail when these instances become distinguishable (as happens with https://github.com/leanprover/lean4/pull/12368). The replacement proofs unfold `Function.update` directly via `simp`. I make no claim that these are particularly good proofs, only that they are robust enough to survive nightly-testing. Better proofs in a follow-up PR would be welcome. See discussion on Zulip about the `refine`/`exact` antipattern: https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/linter.20requests/near/572903100 🤖 Prepared with Claude Code ESTIMATED CHANGES Modified Mathlib/GroupTheory/Complement.lean 2026-02-10 00:51:35 1b24137 chore: update Mathlib dependencies 2026-02-09 (#35062) This PR updates the Mathlib dependencies. ESTIMATED CHANGES Modified lake-manifest.json 2026-02-10 00:51:34 b10bde3 fix(PowerSeries/WeierstrassPreparation): avoid simp_rw [HasEquiv.Equiv] (#35061) This PR fixes a proof in `IsWeierstrassDivisorAt.mod'` that used `simp_rw [HasEquiv.Equiv, Submodule.quotientRel_def, Ideal.mem_span_singleton']` to rewrite a `Quotient.lift` proof obligation. This breaks when `HasEquiv.Equiv` becomes `@[reducible]` (as in https://github.com/leanprover/lean4/pull/12368), since the first rewrite step then makes no progress. Replace with `have hf := (Submodule.quotientRel_def (p := Ideal.span {g})).mp hf` which works regardless of `HasEquiv.Equiv`'s reducibility. See also the related `refine`/`exact` antipattern fix in https://github.com/leanprover-community/mathlib4/pull/35059. I'll note that we may yet revert some or all of the changes in leanprover/lean4#12386, but nevertheless having this robustness in Mathlib makes life easier for us to experiment / get things right! 🤖 Prepared with Claude Code ESTIMATED CHANGES Modified Mathlib/RingTheory/PowerSeries/WeierstrassPreparation.lean 2026-02-09 23:46:59 97d681b chore: minimize `meta` imports in `ring`, `abel`, `field_simp` (#34823) ESTIMATED CHANGES Modified Mathlib/Tactic/Abel.lean Modified Mathlib/Tactic/Attr/Register.lean Modified Mathlib/Tactic/FieldSimp.lean +/- def Mathlib.Tactic.FieldSimp.qNF.toNF Modified Mathlib/Tactic/FieldSimp/Lemmas.lean Modified Mathlib/Tactic/Hint.lean Modified Mathlib/Tactic/NormNum/Basic.lean Modified Mathlib/Tactic/NormNum/Core.lean Modified Mathlib/Tactic/NormNum/Result.lean Modified Mathlib/Tactic/Positivity/Core.lean Modified Mathlib/Tactic/Ring.lean Modified Mathlib/Tactic/Ring/Basic.lean Modified Mathlib/Tactic/Ring/Common.lean - inductive Mathlib.Tactic.Ring.ExBase - inductive Mathlib.Tactic.Ring.ExProd - inductive Mathlib.Tactic.Ring.ExSum - def Mathlib.Tactic.Ring.instCommSemiringInt - def Mathlib.Tactic.Ring.instCommSemiringNat +/- def Mathlib.Tactic.Ring.sℕ +/- def Mathlib.Tactic.Ring.sℤ Modified Mathlib/Tactic/Ring/RingNF.lean Modified Mathlib/Util/DischargerAsTactic.lean Modified Mathlib/Util/Qq.lean 2026-02-09 22:47:39 5086678 chore(Mathlib/Analysis): make a few declarations universe-polymorphic (#35054) A few variable declarations used Type for no apparent reason. Change them to Type* instead, making them universe-polymorphic. ESTIMATED CHANGES Modified Mathlib/Analysis/Fourier/AddCircle.lean Modified Mathlib/Analysis/Fourier/AddCircleMulti.lean Modified Mathlib/Analysis/Fourier/FiniteAbelian/PontryaginDuality.lean Modified Mathlib/Analysis/SpecialFunctions/Complex/Analytic.lean Modified Mathlib/Analysis/SpecialFunctions/ExpDeriv.lean 2026-02-09 22:47:37 552160f doc(Order/Defs/PartialOrder): clarify definition of `<` in `Preorder` (#34512) Per [this](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Preorder.20.2F.20PartialOrder.20synthesised.20.3C/with/570466143) Zulip discussion, some people feel this documentation could be improved, so I am changing this to make clear what the definition is for `<`. ESTIMATED CHANGES Modified Mathlib/Order/Defs/PartialOrder.lean 2026-02-09 22:47:35 a4330c9 feat(RingTheory): integral closure commutes with standard etale basechange (#33803) ESTIMATED CHANGES Modified Mathlib/Algebra/Polynomial/Degree/Operations.lean + theorem Polynomial.Monic.leadingCoeff_C_mul Modified Mathlib/RingTheory/Etale/Basic.lean Modified Mathlib/RingTheory/Etale/StandardEtale.lean + theorem StandardEtalePair.HasMap.map_algebraMap + def StandardEtalePresentation.baseChange + theorem StandardEtalePresentation.hom_ext Modified Mathlib/RingTheory/Localization/Integral.lean + theorem IsLocalization.Away.exists_isIntegral_mul_of_isIntegral_algebraMap + theorem IsLocalization.Away.exists_isIntegral_mul_of_isIntegral_mk' Modified Mathlib/RingTheory/PolynomialAlgebra.lean Modified Mathlib/RingTheory/Smooth/IntegralClosure.lean + theorem TensorProduct.toIntegralClosure_bijective_of_isStandardEtale + theorem exists_derivative_mul_eq_and_isIntegral_coeff + theorem mem_adjoin_map_integralClosure_of_isStandardEtale Modified Mathlib/RingTheory/Unramified/LocalStructure.lean 2026-02-09 22:34:42 17c5e1c feat: definition of a semisimple representation (#34584) Defines semisimple monoid representation and registers basic instances. Fixes a universe issue in Maschke.lean. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/RepresentationTheory/FinGroupCharZero.lean +/- theorem FDRep.simple_iff_char_is_norm_one +/- theorem FDRep.simple_iff_end_is_rank_one Modified Mathlib/RepresentationTheory/Irreducible.lean + theorem Representation.isSimpleModule_iff_irreducible_ofModule - theorem Representation.is_simple_module_iff_irreducible_ofModule Modified Mathlib/RepresentationTheory/Maschke.lean +/- theorem LinearMap.equivariantProjection_condition Added Mathlib/RepresentationTheory/Semisimple.lean + theorem Representation.isSemisimpleModule_iff_isSemisimpleRepresentation_ofModule + theorem Representation.isSemisimpleRepresentation_iff_isSemisimpleModule_asModule 2026-02-09 21:13:18 09e19da chore(MeasureTheory/Measure/WithDensity): change Type to Type* (#35053) This was almost surely an oversight: use Type* to make the declaration universe-polymorphic. ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Measure/WithDensity.lean +/- theorem MeasureTheory.withDensity_ae_eq 2026-02-09 21:13:17 ea439de refactor: generalize the domain for `isLUB_of_tendsto_atTop` (#35051) ESTIMATED CHANGES Modified Mathlib/Topology/Order/MonotoneConvergence.lean 2026-02-09 21:13:15 a676c0c fix(Probability/Distributions/Gaussian/Real): change Type to Type* (#35049) Fix a typo which caused certain defs to not be universe-polymorphic. ESTIMATED CHANGES Modified Mathlib/Probability/Distributions/Gaussian/Real.lean 2026-02-09 21:13:13 436d380 chore: update Mathlib dependencies 2026-02-09 (#35040) This PR updates the Mathlib dependencies. ESTIMATED CHANGES Modified lake-manifest.json 2026-02-09 21:13:11 ab74655 feat(RingTheory/Finiteness/Cofinite): co-finitely generated submodules (#34006) Add new file `Cofinite.lean` that defines *co-finitely generated* (CoFG) submodules. The main definition is * `Submodule.CoFG`: A submodule is CoFG if the quotient of the module by this submodule is finitely generated (FG). Prove * lattice operations for CoFG submodules. * complements of FG submodules are CoFG and vice versa. * the kernel of a linear map is CoFG if and only if the range is FG. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/RingTheory/Finiteness/Cofinite.lean + theorem Module.Finite.iff_cofg_bot + theorem Submodule.CoFG.fg_of_isCompl + theorem Submodule.CoFG.inf + theorem Submodule.CoFG.of_cofg_le + theorem Submodule.CoFG.of_finite + theorem Submodule.CoFG.sInf_of_finite + theorem Submodule.CoFG.top + theorem Submodule.FG.cofg_of_isCompl + theorem Submodule.range_fg_iff_ker_cofg 2026-02-09 17:47:28 1b7f970 feat(SimpleGraph): alternative characterizations of cycles/hamiltonian paths (#34766) Give alternative characterizations of cycles, hamiltonian paths, and hamiltonian cycles in terms of the lengths of the underlying walks. ESTIMATED CHANGES Modified Mathlib/Combinatorics/SimpleGraph/Hamiltonian.lean + theorem SimpleGraph.Walk.isHamiltonianCycle_iff_isCycle_and_length_eq + theorem SimpleGraph.Walk.isHamiltonian_iff_isPath_and_length_eq Modified Mathlib/Combinatorics/SimpleGraph/Paths.lean + theorem SimpleGraph.Walk.IsCycle.isPath_tail + theorem SimpleGraph.Walk.isCycle_iff_isPath_tail_and_le_length 2026-02-09 16:00:24 d1366e1 chore(AlgebraicGeometry/Smooth): rename `IsSmooth` to `Smooth` and `IsEtale` to `Etale` (#35028) This way it matches `Algebra.Smooth` and `Algebra.Etale`. Also there is no possible confusion, because these are clearly adjectives. ESTIMATED CHANGES Modified Mathlib/AlgebraicGeometry/Morphisms/Etale.lean + theorem AlgebraicGeometry.Etale.of_comp - theorem AlgebraicGeometry.IsEtale.of_comp - def AlgebraicGeometry.Scheme.Etale Modified Mathlib/AlgebraicGeometry/Morphisms/Smooth.lean - theorem AlgebraicGeometry.IsSmoothOfRelativeDimension.isSmooth + theorem AlgebraicGeometry.SmoothOfRelativeDimension.smooth - theorem AlgebraicGeometry.isSmoothOfRelativeDimension_isStableUnderBaseChange - theorem AlgebraicGeometry.isSmooth_isStableUnderBaseChange + theorem AlgebraicGeometry.smoothOfRelativeDimension_isStableUnderBaseChange + theorem AlgebraicGeometry.smooth_isStableUnderBaseChange Modified Mathlib/AlgebraicGeometry/Sites/Etale.lean 2026-02-09 15:07:25 0a791e3 chore(CategoryTheory/Limits): move FormalCoproducts to new folder (#35016) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/CategoryTheory/Limits/FormalCoproducts.lean - def CategoryTheory.Limits.FormalCoproduct.Hom.asSigma - def CategoryTheory.Limits.FormalCoproduct.Hom.fromIncl - theorem CategoryTheory.Limits.FormalCoproduct.Hom.fromIncl_asSigma - structure CategoryTheory.Limits.FormalCoproduct.Hom - def CategoryTheory.Limits.FormalCoproduct.cofan - def CategoryTheory.Limits.FormalCoproduct.cofanHomEquiv - def CategoryTheory.Limits.FormalCoproduct.cofanPtIsoSelf - theorem CategoryTheory.Limits.FormalCoproduct.cofan_inj - theorem CategoryTheory.Limits.FormalCoproduct.cofan_inj_f_fst - theorem CategoryTheory.Limits.FormalCoproduct.cofan_inj_f_snd - theorem CategoryTheory.Limits.FormalCoproduct.cofan_inj_φ - def CategoryTheory.Limits.FormalCoproduct.eval - def CategoryTheory.Limits.FormalCoproduct.evalCompInclIsoId - def CategoryTheory.Limits.FormalCoproduct.evalOp - def CategoryTheory.Limits.FormalCoproduct.evalOpCompInlIsoId - theorem CategoryTheory.Limits.FormalCoproduct.fromIncl_comp_cofanPtIsoSelf_inv - theorem CategoryTheory.Limits.FormalCoproduct.fromIncl_comp_coproductIsoSelf_inv - def CategoryTheory.Limits.FormalCoproduct.fullyFaithfulIncl - theorem CategoryTheory.Limits.FormalCoproduct.hasPullback_of_pullbackCone - def CategoryTheory.Limits.FormalCoproduct.homOfPiHom - def CategoryTheory.Limits.FormalCoproduct.homPullbackEquiv - theorem CategoryTheory.Limits.FormalCoproduct.hom_ext - theorem CategoryTheory.Limits.FormalCoproduct.hom_ext_iff' - theorem CategoryTheory.Limits.FormalCoproduct.hom_ext_iff - def CategoryTheory.Limits.FormalCoproduct.incl - def CategoryTheory.Limits.FormalCoproduct.inclHomEquiv - theorem CategoryTheory.Limits.FormalCoproduct.inj_comp_cofanPtIsoSelf_hom - def CategoryTheory.Limits.FormalCoproduct.isColimitCofan - def CategoryTheory.Limits.FormalCoproduct.isColimitEvalMapCoconeCofan - def CategoryTheory.Limits.FormalCoproduct.isLimitEvalMapConeCofanOp - def CategoryTheory.Limits.FormalCoproduct.isLimitPullbackCone - theorem CategoryTheory.Limits.FormalCoproduct.isPullback - def CategoryTheory.Limits.FormalCoproduct.isTerminalIncl - def CategoryTheory.Limits.FormalCoproduct.isoOfComponents - def CategoryTheory.Limits.FormalCoproduct.pullbackCone - theorem CategoryTheory.Limits.FormalCoproduct.pullbackCone_condition - theorem CategoryTheory.Limits.FormalCoproduct.pullbackCone_fst_f - theorem CategoryTheory.Limits.FormalCoproduct.pullbackCone_fst_φ - theorem CategoryTheory.Limits.FormalCoproduct.pullbackCone_snd_f - theorem CategoryTheory.Limits.FormalCoproduct.pullbackCone_snd_φ - def CategoryTheory.Limits.FormalCoproduct.toFun - theorem CategoryTheory.Limits.FormalCoproduct.ι_comp_coproductIsoCofanPt - theorem CategoryTheory.Limits.FormalCoproduct.ι_comp_coproductIsoSelf_hom - structure CategoryTheory.Limits.FormalCoproduct Added Mathlib/CategoryTheory/Limits/FormalCoproducts/Basic.lean + def CategoryTheory.Limits.FormalCoproduct.Hom.asSigma + def CategoryTheory.Limits.FormalCoproduct.Hom.fromIncl + theorem CategoryTheory.Limits.FormalCoproduct.Hom.fromIncl_asSigma + structure CategoryTheory.Limits.FormalCoproduct.Hom + def CategoryTheory.Limits.FormalCoproduct.cofan + def CategoryTheory.Limits.FormalCoproduct.cofanHomEquiv + def CategoryTheory.Limits.FormalCoproduct.cofanPtIsoSelf + theorem CategoryTheory.Limits.FormalCoproduct.cofan_inj + theorem CategoryTheory.Limits.FormalCoproduct.cofan_inj_f_fst + theorem CategoryTheory.Limits.FormalCoproduct.cofan_inj_f_snd + theorem CategoryTheory.Limits.FormalCoproduct.cofan_inj_φ + def CategoryTheory.Limits.FormalCoproduct.eval + def CategoryTheory.Limits.FormalCoproduct.evalCompInclIsoId + def CategoryTheory.Limits.FormalCoproduct.evalOp + def CategoryTheory.Limits.FormalCoproduct.evalOpCompInlIsoId + theorem CategoryTheory.Limits.FormalCoproduct.fromIncl_comp_cofanPtIsoSelf_inv + theorem CategoryTheory.Limits.FormalCoproduct.fromIncl_comp_coproductIsoSelf_inv + def CategoryTheory.Limits.FormalCoproduct.fullyFaithfulIncl + theorem CategoryTheory.Limits.FormalCoproduct.hasPullback_of_pullbackCone + def CategoryTheory.Limits.FormalCoproduct.homOfPiHom + def CategoryTheory.Limits.FormalCoproduct.homPullbackEquiv + theorem CategoryTheory.Limits.FormalCoproduct.hom_ext + theorem CategoryTheory.Limits.FormalCoproduct.hom_ext_iff' + theorem CategoryTheory.Limits.FormalCoproduct.hom_ext_iff + def CategoryTheory.Limits.FormalCoproduct.incl + def CategoryTheory.Limits.FormalCoproduct.inclHomEquiv + theorem CategoryTheory.Limits.FormalCoproduct.inj_comp_cofanPtIsoSelf_hom + def CategoryTheory.Limits.FormalCoproduct.isColimitCofan + def CategoryTheory.Limits.FormalCoproduct.isColimitEvalMapCoconeCofan + def CategoryTheory.Limits.FormalCoproduct.isLimitEvalMapConeCofanOp + def CategoryTheory.Limits.FormalCoproduct.isLimitPullbackCone + theorem CategoryTheory.Limits.FormalCoproduct.isPullback + def CategoryTheory.Limits.FormalCoproduct.isTerminalIncl + def CategoryTheory.Limits.FormalCoproduct.isoOfComponents + def CategoryTheory.Limits.FormalCoproduct.pullbackCone + theorem CategoryTheory.Limits.FormalCoproduct.pullbackCone_condition + theorem CategoryTheory.Limits.FormalCoproduct.pullbackCone_fst_f + theorem CategoryTheory.Limits.FormalCoproduct.pullbackCone_fst_φ + theorem CategoryTheory.Limits.FormalCoproduct.pullbackCone_snd_f + theorem CategoryTheory.Limits.FormalCoproduct.pullbackCone_snd_φ + def CategoryTheory.Limits.FormalCoproduct.toFun + theorem CategoryTheory.Limits.FormalCoproduct.ι_comp_coproductIsoCofanPt + theorem CategoryTheory.Limits.FormalCoproduct.ι_comp_coproductIsoSelf_hom + structure CategoryTheory.Limits.FormalCoproduct 2026-02-09 14:35:12 43178d5 feat(Topology/Category): the standard Grothendieck topology on `TopCat` (#34979) We define the Grothendieck topology generated by families of jointly surjective open embeddings on `TopCat` and show it is subcanonical. This will be used to show that for a topological space `T`, the presheaf `U ↦ C(U, T)` on `Scheme` is a Zariski-sheaf. Co-authored by: Edward van de Meent From Proetale. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/CategoryTheory/MorphismProperty/Limits.lean + theorem CategoryTheory.MorphismProperty.IsStableUnderBaseChange.of_forall_exists_isPullback + theorem CategoryTheory.MorphismProperty.IsStableUnderCobaseChange.of_forall_exists_isPullback Modified Mathlib/CategoryTheory/Sites/Hypercover/Zero.lean + theorem CategoryTheory.Precoverage.Small.inf Modified Mathlib/CategoryTheory/Sites/JointlySurjective.lean Added Mathlib/Topology/Category/TopCat/GrothendieckTopology.lean + theorem TopCat.exists_mem_zeroHypercover_range + def TopCat.isOpenEmbedding + theorem TopCat.isOpenEmbedding_f_zeroHypercover + theorem TopCat.isOpenEmbedding_iff + def TopCat.precoverage Modified Mathlib/Topology/Homeomorph/Lemmas.lean + theorem Topology.IsClosedEmbedding.uliftMap + theorem Topology.IsEmbedding.toHomeomorph_symm_apply + theorem Topology.IsEmbedding.uliftMap + theorem Topology.IsOpenEmbedding.uliftMap 2026-02-09 14:18:45 3a29cc2 feat(CategoryTheory/Sites): a pullback-preserving functor is continuous if it preserves coverings (#34977) More precisely we show a functor `F : C ⥤ D` that preserves pairwise pullbacks of `J`-coverings is continuous for the topologies generated by precoverages `J` and `K` if the image of every `J`-covering is a `K`-covering. From Proetale. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Sites/Continuous.lean + theorem CategoryTheory.Functor.isContinuous_toGrothendieck_of_pullbacksPreservedBy Modified Mathlib/CategoryTheory/Sites/Precoverage.lean + theorem CategoryTheory.Precoverage.hasPairwisePullbacks_of_mem + theorem CategoryTheory.Presieve.HasPairwisePullbacks.map_of_preservesPairwisePullbacks Modified Mathlib/CategoryTheory/Sites/PrecoverageToGrothendieck.lean + theorem CategoryTheory.Presieve.IsSheafFor.comp_iff_of_preservesPairwisePullbacks 2026-02-09 13:48:33 afaf426 feat(RingTheory): algebraic version of Zariski's main theorem (#35020) ESTIMATED CHANGES Modified Mathlib/RingTheory/ZariskisMainTheorem.lean + theorem Algebra.QuasiFiniteAt.exists_fg_and_exists_notMem_and_awayMap_bijective + theorem Algebra.ZariskisMainProperty.exists_fg_and_exists_notMem_and_awayMap_bijective - theorem Algebra.ZariskisMainProperty.of_adjoin_eq_top - theorem Algebra.ZariskisMainProperty.of_algHom_polynomial + theorem Algebra.ZariskisMainProperty.of_finiteType.{u, 2026-02-09 13:22:27 383aca4 refactor: move `Polynomial.toSubring` to a new file (#34661) This aids discoverability, which I think is a good thing given that this has been reinvented at least thrice! Twice in Mathlib ([`Polynomial.toSubring`](https://leanprover-community.github.io/mathlib4_docs/Mathlib/RingTheory/Polynomial/Basic.html#Polynomial.toSubring), [`Polynomial.int`](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Algebra/Ring/Subring/IntPolynomial.html#Polynomial.int)), plus once by myself in the CGT repo ([`Nimber.IsField.embed`](https://vihdzp.github.io/combinatorial-games/CombinatorialGames/Nimber/SimplestExtension/Polynomial.html#Nimber.IsField.embed)). ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/FieldTheory/Fixed.lean Modified Mathlib/FieldTheory/IntermediateField/Adjoin/Basic.lean Modified Mathlib/FieldTheory/SeparableDegree.lean Modified Mathlib/RingTheory/Algebraic/Integral.lean Modified Mathlib/RingTheory/IntegralClosure/IsIntegralClosure/Basic.lean Modified Mathlib/RingTheory/Polynomial/Basic.lean - theorem Polynomial.coeff_ofSubring - theorem Polynomial.coeff_toSubring' - theorem Polynomial.coeff_toSubring - theorem Polynomial.coeffs_ofSubring - theorem Polynomial.degree_toSubring - theorem Polynomial.map_toSubring - theorem Polynomial.monic_toSubring - theorem Polynomial.natDegree_toSubring - def Polynomial.ofSubring - theorem Polynomial.support_toSubring - def Polynomial.toSubring - theorem Polynomial.toSubring_one - theorem Polynomial.toSubring_zero Added Mathlib/RingTheory/Polynomial/Subring.lean + theorem Polynomial.coeff_ofSubring + theorem Polynomial.coeff_toSubring' + theorem Polynomial.coeff_toSubring + theorem Polynomial.coeffs_ofSubring + theorem Polynomial.degree_toSubring + theorem Polynomial.map_toSubring + theorem Polynomial.monic_toSubring + theorem Polynomial.natDegree_toSubring + theorem Polynomial.support_toSubring + theorem Polynomial.toSubring_one + theorem Polynomial.toSubring_zero 2026-02-09 13:08:39 2c956f3 chore(MeasureTheory/Probability): Generalize some lemmas from `Measurable` to `AEMeasurable` (#34982) Closes #20367 ESTIMATED CHANGES Modified Mathlib/Probability/Moments/Basic.lean + theorem ProbabilityTheory.iIndepFun.cgf_sum₀ + theorem ProbabilityTheory.iIndepFun.mgf_sum₀ + theorem ProbabilityTheory.mgf_sum_of_identDistrib₀ 2026-02-09 12:52:13 71cd708 feat(RingTheory): Class Group of a Unique Factorization Domain is trivial (#33744) Add a theorem that the class group of a unique factorization domain is trivial. Together with the PR relating `ClassGroup` to `PicardGroup`, this will close a TODO in `Mathlib.RingTheory.PicardGroup` that the Picard Group of a UFD is trivial. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/RingTheory/ClassGroup.lean + theorem ClassGroup.isPrincipal_coeSubmodule_of_isUnit + theorem ClassGroup.isPrincipal_of_isUnit_coeIdeal + theorem FractionalIdeal.isUnit_num Modified Mathlib/RingTheory/FractionalIdeal/Operations.lean + theorem FractionalIdeal.isPrincipal_of_isPrincipal_num Modified Mathlib/RingTheory/PicardGroup.lean Added Mathlib/RingTheory/UniqueFactorizationDomain/ClassGroup.lean + theorem NormalizedGCDMonoid.isPrincipal_of_exists_mul_ne_zero_isPrincipal 2026-02-09 12:02:12 b3d9abe feat(CategoryTheory/Sites): more API for dense subsites (#35012) Compatibility lemmas are added for `restrictHomEquivHom`. If `G : C ⥤ D` is a dense subsite and `F` is a sheaf on `C`, we introduce a definition `mapPreimage` which allows to define `F.val.obj (op Y) ⟶ F.val.obj (op X)` for any morphism `G.obj X ⟶ G.obj Y` in `D` between objects in the image of the functor `G`. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Sites/DenseSubsite/Basic.lean + theorem CategoryTheory.Functor.IsCoverDense.restrictHomEquivHom_naturality_left + theorem CategoryTheory.Functor.IsCoverDense.restrictHomEquivHom_naturality_left_symm + theorem CategoryTheory.Functor.IsCoverDense.restrictHomEquivHom_naturality_right + theorem CategoryTheory.Functor.IsCoverDense.restrictHomEquivHom_naturality_right_symm + theorem CategoryTheory.Functor.IsDenseSubsite.mapPreimage_comp + theorem CategoryTheory.Functor.IsDenseSubsite.mapPreimage_comp_map + theorem CategoryTheory.Functor.IsDenseSubsite.mapPreimage_id + theorem CategoryTheory.Functor.IsDenseSubsite.mapPreimage_map + theorem CategoryTheory.Functor.IsDenseSubsite.mapPreimage_map_of_fac + theorem CategoryTheory.Functor.IsDenseSubsite.mapPreimage_of_eq + theorem CategoryTheory.Functor.IsDenseSubsite.map_eq_of_eq 2026-02-09 12:02:10 55dda48 feat(Topology/Category): `TopCat.uliftFunctor` preserves all limits and colimits (#34993) ESTIMATED CHANGES Modified Mathlib/Topology/Category/TopCat/Limits/Basic.lean + theorem TopCat.nonempty_isColimit_iff_eq_coinduced + theorem TopCat.nonempty_isLimit_iff_eq_induced Modified Mathlib/Topology/Category/TopCat/ULift.lean 2026-02-09 12:02:08 f1fb168 feat: lemmas for `Set.range fun x : {a, b, ...} ↦ ...` (#34639) These allow `simp` to simplify e.g. `Set.range f` for `f : {a, b, c} → β` to `{f a, f b, f c}`. Used in the CGT repo. ESTIMATED CHANGES Modified Mathlib/Data/Set/Image.lean + theorem Set.range_insert + theorem Set.range_singleton +/- theorem Set.range_unique 2026-02-09 11:44:45 48c39f1 feat(RingTheory/MvPolynomial/MonomialOrder): remove unnecessary hypotheses of `leadingCoeff_mul` (#34765) When `f = 0` or `g = 0`, namely, the old hypothsese don't hold, `m.leadingCoeff (f * g) = m.leadingCoeff f * m.leadingCoeff g` trivially holds. ESTIMATED CHANGES Modified Mathlib/RingTheory/MvPolynomial/MonomialOrder.lean +/- theorem MonomialOrder.leadingCoeff_mul 2026-02-09 11:44:43 05bbe85 feat(RingTheory): Zariski's main theorem for algebras with "transcendence degree 1" (#34269) ESTIMATED CHANGES Modified Mathlib/RingTheory/Conductor.lean + theorem Localization.localRingHom_bijective_of_not_conductor_le Modified Mathlib/RingTheory/Localization/AtPrime/Basic.lean + theorem Localization.localRingHom_bijective_of_saturated_inf_eq_top Modified Mathlib/RingTheory/ZariskisMainTheorem.lean + theorem Algebra.ZariskisMainProperty.of_adjoin_eq_top + theorem Algebra.ZariskisMainProperty.of_algHom_polynomial + theorem exists_isIntegral_leadingCoeff_pow_smul_sub_of_isIntegralElem_of_mul_mem_range + theorem exists_isIntegral_sub_of_isIntegralElem_of_mul_mem_range + theorem exists_leadingCoeff_pow_smul_mem_conductor + theorem exists_leadingCoeff_pow_smul_mem_radical_conductor + theorem isIntegral_of_isIntegralElem_of_monic_of_natDegree_lt + theorem isStronglyTranscendental_mk_radical_conductor 2026-02-09 11:07:08 6045d6f chore(AlgebraicGeometry/Sites): use `Precoverage.toGrothendieck` instead of `Pretopology.toGrothendieck` (#34995) As more and more API is developed in terms of `Precoverage`s and `Precoverage.toGrothendieck`, this makes application of the general category theory library easier. We also add a few additional API lemmas. ESTIMATED CHANGES Modified Mathlib/AlgebraicGeometry/Sites/BigZariski.lean +/- theorem AlgebraicGeometry.Scheme.zariskiTopology_eq Modified Mathlib/AlgebraicGeometry/Sites/Etale.lean + def AlgebraicGeometry.Scheme.etalePrecoverage Modified Mathlib/AlgebraicGeometry/Sites/MorphismProperty.lean + theorem AlgebraicGeometry.Scheme.bot_mem_precoverage + theorem AlgebraicGeometry.Scheme.precoverage_mono Modified Mathlib/AlgebraicGeometry/Sites/Pretopology.lean +/- theorem AlgebraicGeometry.Scheme.Cover.mem_grothendieckTopology + theorem AlgebraicGeometry.Scheme.bot_mem_grothendieckTopology +/- theorem AlgebraicGeometry.Scheme.pretopology_monotone Modified Mathlib/AlgebraicGeometry/Sites/Small.lean 2026-02-09 11:07:06 403b449 feat: `to_additive` for `IsHaarMeasure.comap` (#34988) ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Group/Measure.lean 2026-02-09 11:07:04 2c706fb feat(RingTheory): local structure for finite unramified algebras (#34928) ESTIMATED CHANGES Modified Mathlib/RingTheory/Ideal/GoingUp.lean + theorem Ideal.exists_notMem_dvd_algebraMap_of_primesOver_eq_singleton Modified Mathlib/RingTheory/LocalRing/ResidueField/Ideal.lean Modified Mathlib/RingTheory/QuasiFinite/Basic.lean + theorem Ideal.Fiber.lift_residueField_surjective Modified Mathlib/RingTheory/Unramified/LocalRing.lean +/- theorem Algebra.isUnramifiedAt_iff_map_eq + theorem Localization.exists_awayMap_bijective_of_localRingHom_bijective + theorem Localization.exists_awayMap_bijective_of_residueField_surjective + theorem Localization.exists_awayMap_injective_of_localRingHom_injective + theorem Localization.finite_of_primesOver_eq_singleton + theorem Localization.localRingHom_injective_of_primesOver_eq_singleton + theorem Localization.localRingHom_surjective_of_primesOver_eq_singleton Modified Mathlib/RingTheory/Unramified/LocalStructure.lean + theorem Algebra.IsUnramifiedAt.exists_hasStandardEtaleSurjectionAt_of_finite + theorem Algebra.IsUnramifiedAt.exists_notMem_forall_ne_mem_and_adjoin_eq_top + theorem Algebra.IsUnramifiedAt.exists_primesOver_under_adjoin_eq_singleton_and_residueField_bijective Modified Mathlib/RingTheory/Unramified/Locus.lean 2026-02-09 11:07:02 20ffcb0 feat(Topology/MetricSpace): add Lipschitz/Antilipschitz lemmas for IsCover and IsSeparated (#34905) * `Metric.IsCover.image_lipschitz`: Lipschitz maps preserve covering with scaled radius. * `Metric.IsCover.image_lipschitz_of_surjective`: variant for preimages under surjective maps. * `Metric.IsSeparated.image_antilipschitz`: Antilipschitz maps preserve separation with scaled distance. ESTIMATED CHANGES Modified Mathlib/Topology/MetricSpace/Cover.lean + theorem Metric.IsCover.image_lipschitz + theorem Metric.IsCover.image_lipschitz_of_surjective Modified Mathlib/Topology/MetricSpace/MetricSeparated.lean + theorem Metric.IsSeparated.image_antilipschitz 2026-02-09 11:06:58 6444c72 refactor(Analysis/Normed/Group): split large file (#34802) Split up > 1500 line file `Analysis.Normed.Group.Basic` as follows: - new file `Defs.lean` for minimal definitions - new file `Real.lean` for material specific to Real, NNReal and ENNReal - some continuity statements moved to the existing file `Continuity.lean` This gets the `Basic` file down to below 1000 lines; further splittage may be possible of course. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Analysis/Complex/Norm.lean Modified Mathlib/Analysis/Normed/Group/Basic.lean - theorem Continuous.enorm - theorem ContinuousAt.enorm - theorem ContinuousOn.enorm - theorem ContinuousWithinAt.enorm - theorem NNReal.nnnorm_eq_self - theorem Real.enorm_abs - theorem Real.enorm_eq_ofReal - theorem Real.enorm_eq_ofReal_abs - theorem Real.enorm_natCast - theorem Real.enorm_ofReal_of_nonneg - theorem Real.enorm_of_nonneg - theorem Real.le_norm_self - theorem Real.nnnorm_abs - theorem Real.nnnorm_natCast - theorem Real.nnnorm_nnratCast - theorem Real.nnnorm_ofNat - theorem Real.nnnorm_of_nonneg - theorem Real.nnnorm_two - theorem Real.norm_eq_abs - theorem Real.norm_natCast - theorem Real.norm_nnratCast - theorem Real.norm_ofNat - theorem Real.norm_of_nonneg - theorem Real.norm_of_nonpos - theorem Real.norm_two - theorem Real.ofReal_le_enorm - theorem Real.toNNReal_eq_nnnorm_of_nonneg - theorem coe_le_enorm - theorem coe_lt_enorm - theorem continuous_enorm - theorem enorm_enorm - theorem enorm_eq_nnnorm - theorem enorm_eq_self - theorem enorm_le_coe - theorem enorm_lt_coe - theorem enorm_lt_top - theorem enorm_ne_top - theorem enorm_norm' - theorem nnnorm_norm' - theorem norm_norm' - theorem tendsto_norm_atTop_atTop - theorem toNNReal_enorm Modified Mathlib/Analysis/Normed/Group/Continuity.lean + theorem Continuous.enorm + theorem ContinuousAt.enorm + theorem ContinuousOn.enorm + theorem ContinuousWithinAt.enorm + theorem continuous_enorm Added Mathlib/Analysis/Normed/Group/Defs.lean + theorem coe_le_enorm + theorem coe_lt_enorm + theorem enorm_eq_nnnorm + theorem enorm_le_coe + theorem enorm_lt_coe + theorem enorm_lt_top + theorem enorm_ne_top + theorem toNNReal_enorm Modified Mathlib/Analysis/Normed/Group/InfiniteSum.lean Modified Mathlib/Analysis/Normed/Group/Int.lean Added Mathlib/Analysis/Normed/Group/Real.lean + theorem NNReal.nnnorm_eq_self + theorem Real.enorm_abs + theorem Real.enorm_eq_ofReal + theorem Real.enorm_eq_ofReal_abs + theorem Real.enorm_natCast + theorem Real.enorm_ofReal_of_nonneg + theorem Real.enorm_of_nonneg + theorem Real.le_norm_self + theorem Real.nnnorm_abs + theorem Real.nnnorm_natCast + theorem Real.nnnorm_nnratCast + theorem Real.nnnorm_ofNat + theorem Real.nnnorm_of_nonneg + theorem Real.nnnorm_two + theorem Real.norm_eq_abs + theorem Real.norm_natCast + theorem Real.norm_nnratCast + theorem Real.norm_ofNat + theorem Real.norm_of_nonneg + theorem Real.norm_of_nonpos + theorem Real.norm_two + theorem Real.ofReal_le_enorm + theorem Real.toNNReal_eq_nnnorm_of_nonneg + theorem enorm_enorm + theorem enorm_eq_self + theorem enorm_norm' + theorem nnnorm_norm' + theorem norm_norm' + theorem tendsto_norm_atTop_atTop Modified Mathlib/Analysis/Normed/Ring/Basic.lean Modified Mathlib/Analysis/SumOverResidueClass.lean Modified Mathlib/MeasureTheory/Integral/Lebesgue/Norm.lean 2026-02-09 08:58:40 d16c745 chore(style): fix more duplicate instances (#35006) This PR fixes instances of duplicate instances appearing in the local context that require movements of source code (to adjust which `variable`s are visible). Note that, like #35002, it does not adjust resulting types. (It does tweak one proof in `Mathlib.LinearAlgebra.Ray` while we're at it.) This is motivated by the upcoming overlapping instances linter, which fires on duplicate instances in the local context (even if these do not appear in the resulting definition's type). See also [this Zulip thread](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Style.3A.20shadowing.20instance.20variables.20in.20instance.20declarations/with/572586194) for discussion on removing duplicate instances. ESTIMATED CHANGES Modified Mathlib/Algebra/MonoidAlgebra/Basic.lean +/- def MonoidAlgebra.mapDomainNonUnitalAlgHom +/- theorem MonoidAlgebra.mapDomain_algebraMap Modified Mathlib/CategoryTheory/Monoidal/Category.lean Modified Mathlib/CategoryTheory/Shift/Adjunction.lean Modified Mathlib/Geometry/Convex/Cone/Basic.lean +/- theorem ConvexCone.IsGenerating.mono +/- theorem ConvexCone.IsReproducing.of_univ_subset +/- theorem ConvexCone.IsReproducing.sub_eq_univ +/- def ConvexCone.IsReproducing Modified Mathlib/LinearAlgebra/Ray.lean Modified Mathlib/Topology/Algebra/Valued/WithVal.lean 2026-02-09 08:58:37 201ee8d chore(style): remove duplicate instance hypotheses (#35002) This PR removes simple duplicate instance hypotheses which appear in the local context. This is a stylistic change; this PR does not modify the types of definitions. The deletions and `variable` movements here are restricted to simple cases; fixes that require more restructuring are split off into other PRs. This is motivated by the upcoming overlapping instances linter, which fires on duplicate instances in the local context (even if these do not appear in the resulting definition's type). See also [this Zulip thread](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Style.3A.20shadowing.20instance.20variables.20in.20instance.20declarations/with/572586194) for discussion on removing duplicate instances. ESTIMATED CHANGES Modified Mathlib/Algebra/Category/ModuleCat/Injective.lean Modified Mathlib/Algebra/Category/ModuleCat/Limits.lean Modified Mathlib/Algebra/Category/ModuleCat/Topology/Basic.lean Modified Mathlib/Algebra/Colimit/Module.lean +/- inductive Module.DirectLimit.Eqv Modified Mathlib/Algebra/Field/Basic.lean Modified Mathlib/Algebra/Group/Defs.lean Modified Mathlib/Algebra/GroupWithZero/Action/Pointwise/Set.lean Modified Mathlib/Algebra/GroupWithZero/Units/Lemmas.lean Modified Mathlib/Algebra/GroupWithZero/WithZero.lean Modified Mathlib/Algebra/Module/Opposite.lean Modified Mathlib/Algebra/MvPolynomial/Basic.lean Modified Mathlib/Algebra/Order/GroupWithZero/Finset.lean +/- theorem Finset.sup_div₀ Modified Mathlib/Algebra/Order/Hom/Monoid.lean Modified Mathlib/Algebra/Order/Star/Basic.lean Modified Mathlib/Algebra/QuadraticAlgebra/Defs.lean Modified Mathlib/Algebra/Ring/InjSurj.lean Modified Mathlib/Algebra/Ring/Subsemiring/Basic.lean +/- def Subsemiring.centerCongr Modified Mathlib/Algebra/Ring/SumsOfSquares.lean +/- def AddSubmonoid.sumSq Modified Mathlib/Algebra/SkewMonoidAlgebra/Basic.lean +/- def SkewMonoidAlgebra.comapSMul Modified Mathlib/Analysis/CStarAlgebra/CStarMatrix.lean Modified Mathlib/Analysis/Distribution/DerivNotation.lean Modified Mathlib/Analysis/LocallyConvex/PointwiseConvergence.lean Modified Mathlib/Analysis/Normed/Field/TransferInstance.lean Modified Mathlib/Analysis/Normed/Module/Basic.lean Modified Mathlib/Analysis/Normed/MulAction.lean Modified Mathlib/Analysis/Normed/Ring/TransferInstance.lean Modified Mathlib/CategoryTheory/ConcreteCategory/Basic.lean Modified Mathlib/CategoryTheory/Limits/Shapes/BinaryProducts.lean Modified Mathlib/CategoryTheory/Limits/Shapes/NormalMono/Basic.lean +/- def CategoryTheory.NormalEpi.ofArrowIso Modified Mathlib/CategoryTheory/Localization/Bifunctor.lean Modified Mathlib/CategoryTheory/Monoidal/Cartesian/Basic.lean Modified Mathlib/CategoryTheory/Monoidal/Functor.lean Modified Mathlib/CategoryTheory/Monoidal/Mon_.lean Modified Mathlib/Data/DFinsupp/Sigma.lean +/- def DFinsupp.sigmaCurryEquiv +/- def DFinsupp.sigmaUncurry Modified Mathlib/Data/Finset/Insert.lean +/- def Finset.insertPiProdEquiv Modified Mathlib/Data/Finset/SMulAntidiagonal.lean Modified Mathlib/Data/Finsupp/Option.lean +/- def Finsupp.optionEquiv Modified Mathlib/Data/Matrix/Composition.lean Modified Mathlib/Data/Rat/Init.lean Modified Mathlib/FieldTheory/IsAlgClosed/AlgebraicClosure.lean Modified Mathlib/GroupTheory/OreLocalization/Basic.lean Modified Mathlib/LinearAlgebra/DFinsupp.lean Modified Mathlib/LinearAlgebra/Matrix/Ideal.lean +/- def TwoSidedIdeal.equivMatrix Modified Mathlib/LinearAlgebra/Matrix/ToLin.lean +/- def LinearMap.toMatrixRight' Modified Mathlib/LinearAlgebra/Multilinear/Basic.lean Modified Mathlib/LinearAlgebra/TensorProduct/Basis.lean Modified Mathlib/ModelTheory/Basic.lean Modified Mathlib/ModelTheory/PartialEquiv.lean Modified Mathlib/Order/CompleteBooleanAlgebra.lean Modified Mathlib/Order/Interval/Finset/Defs.lean Modified Mathlib/Order/Lattice/Congruence.lean +/- def LatticeCon.ker +/- def LatticeCon.mk' Modified Mathlib/RingTheory/Coalgebra/Equiv.lean Modified Mathlib/RingTheory/HahnSeries/Lex.lean Modified Mathlib/RingTheory/HahnSeries/Summable.lean Modified Mathlib/RingTheory/Ideal/Over.lean Modified Mathlib/RingTheory/Morita/Matrix.lean Modified Mathlib/RingTheory/MvPolynomial/Homogeneous.lean +/- def MvPolynomial.homogeneousComponent Modified Mathlib/RingTheory/TensorProduct/MonoidAlgebra.lean Modified Mathlib/RingTheory/Valuation/RankOne.lean Modified Mathlib/Tactic/CategoryTheory/Coherence/Normalize.lean Modified Mathlib/Tactic/Widget/Conv.lean +/- def Mathlib.Tactic.Conv.pathToStx Modified Mathlib/Topology/Homeomorph/Defs.lean +/- def Equiv.toHomeomorphOfDiscrete Modified Mathlib/Topology/Order/LowerUpperTopology.lean Modified Mathlib/Topology/Order/UpperLowerSetTopology.lean 2026-02-09 08:58:36 2962adf feat: segment is contained in closed ball (#34860) ESTIMATED CHANGES Modified Mathlib/Analysis/Normed/Module/Convex.lean +/- theorem convexHull_diam +/- theorem convex_closedBall + theorem segment_subset_closedBall_left + theorem segment_subset_closedBall_right 2026-02-09 08:58:33 39fa7ca feat: generalize `Subfield.charP` to `DivisionRing` (#34623) And also add a `variable` block while we're at it. ESTIMATED CHANGES Modified Mathlib/Algebra/CharP/Algebra.lean +/- theorem CharP.dvd_of_ringHom +/- theorem CharP.of_ringHom_of_ne_zero +/- theorem ExpChar.of_injective_algebraMap' +/- theorem RingHom.charP +/- theorem RingHom.expChar +/- theorem RingHom.expChar_iff +/- theorem charP_of_injective_algebraMap' +/- theorem charP_of_injective_algebraMap +/- theorem charP_of_injective_ringHom +/- theorem charZero_of_injective_algebraMap +/- theorem charZero_of_injective_ringHom +/- theorem expChar_of_injective_algebraMap +/- theorem expChar_of_injective_ringHom Modified Mathlib/Algebra/CharP/IntermediateField.lean 2026-02-09 08:58:31 6c3d834 feat: `a⁻¹ = a ↔ a = -1 ∨ a = 0 ∨ a = 1` (#34618) We already had a lemma named `inv_eq_self`, so I named this one `inv_eq_self₀`. ESTIMATED CHANGES Modified Mathlib/Algebra/Field/Basic.lean + theorem inv_eq_self₀ + theorem self_eq_inv₀ 2026-02-09 08:58:28 9a8d017 fix: add missing Std.LawfulOrder instances for linear orders (#34471) See [#lean4 > No Std.MaxOrEq Int instance, but yes Std.MinOrEq Int @ 💬](https://leanprover.zulipchat.com/#narrow/channel/270676-lean4/topic/No.20Std.2EMaxOrEq.20Int.20instance.2C.20but.20yes.20Std.2EMinOrEq.20Int/near/570198709). ESTIMATED CHANGES Modified Mathlib/Order/MinMax.lean 2026-02-09 08:58:25 8196d20 feat(RingTheory/RingHom): remove unnecessary assumptions in `locally_StableUnderCompositionWithLocalizationAwayTarget` (#33675) ESTIMATED CHANGES Modified Mathlib/RingTheory/RingHom/Locally.lean 2026-02-09 07:57:24 e694700 chore: fix even more overlapping instances (#35007) This PR removes instances which are projections of other instances in the local context. This is motivated by the upcoming overlapping instances linter, which fires on duplicate instances in the local context (even if these do not appear in the resulting definition's type). See also [this Zulip thread](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Style.3A.20shadowing.20instance.20variables.20in.20instance.20declarations/with/572586194) for discussion on removing duplicate instances. ESTIMATED CHANGES Modified Mathlib/Analysis/LocallyConvex/AbsConvexOpen.lean Modified Mathlib/MeasureTheory/Function/ConditionalExpectation/Basic.lean Modified Mathlib/Topology/ContinuousMap/Bounded/Normed.lean 2026-02-09 07:57:22 e51a743 chore: fix overlapping instances in meta files (#35003) This PR is intended to satisfy the upcoming overlapping instances linter. It replaces `[Monad m] [Alternative m]` with `[AlternativeMonad m]` , which avoids overlapping on the data-carrying `Applicative` projection, or specializes appropriate monads like `MetaM` where possible. It also fixes some other duplicated instance projections in `Mathlib.Deprecated.MLList.BestFirst`, even though this file is deprecated. ESTIMATED CHANGES Modified Mathlib/Deprecated/MLList/BestFirst.lean Modified Mathlib/Lean/LocalContext.lean Modified Mathlib/Tactic/Linter/DirectoryDependency.lean Modified Mathlib/Tactic/Positivity/Core.lean +/- def Mathlib.Meta.Positivity.throwNone 2026-02-09 07:57:20 4667ed2 chore(MeasureTheory): remove non-terminal simp (#34878) ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Constructions/BorelSpace/Real.lean 2026-02-09 07:57:18 7fc70d3 feat(AlgebraicGeometry): geometric points induce points on the étale site (#34116) ESTIMATED CHANGES Modified Mathlib/AlgebraicGeometry/Morphisms/FormallyUnramified.lean + theorem AlgebraicGeometry.FormallyUnramified.stalkMap Modified Mathlib/AlgebraicGeometry/Morphisms/RingHomProperties.lean + theorem AlgebraicGeometry.HasRingHomProperty.inf Modified Mathlib/AlgebraicGeometry/OpenImmersion.lean Modified Mathlib/AlgebraicGeometry/Sites/Etale.lean + def AlgebraicGeometry.Scheme.geometricFiber Modified Mathlib/RingTheory/Etale/Basic.lean + theorem RingHom.FormallyEtale.comp Modified Mathlib/RingTheory/Ideal/Quotient/Operations.lean + theorem RingHom.quotientKerEquivOfSurjective_symm_apply + theorem RingHom.quotientKerEquivOfSurjective_symm_comp Modified Mathlib/RingTheory/RingHom/Unramified.lean + theorem RingHom.FormallyEtale.of_comp + theorem RingHom.FormallyUnramified.comp + theorem RingHom.FormallyUnramified.holdsForLocalization + theorem RingHom.FormallyUnramified.of_comp +/- theorem RingHom.FormallyUnramified.stableUnderComposition 2026-02-09 07:29:02 507f18f feat: real-valued Lᵖ norm (#23881) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Data/ENNReal/Real.lean + theorem ENNReal.coe_lt_ofReal Modified Mathlib/MeasureTheory/Function/EssSup.lean + theorem ENNReal.ofReal_essSup + theorem ENNReal.toReal_essSup Modified Mathlib/MeasureTheory/Function/LpSeminorm/Basic.lean Modified Mathlib/MeasureTheory/Function/LpSeminorm/ChebyshevMarkov.lean Modified Mathlib/MeasureTheory/Function/LpSeminorm/CompareExp.lean Modified Mathlib/MeasureTheory/Function/LpSeminorm/Defs.lean +/- def MeasureTheory.MemLp +/- theorem MeasureTheory.eLpNorm'_eq_lintegral_enorm +/- def MeasureTheory.eLpNormEssSup +/- theorem MeasureTheory.eLpNormEssSup_eq_essSup_enorm - theorem MeasureTheory.eLpNorm_eq_lintegral_rpow_enorm + theorem MeasureTheory.eLpNorm_eq_lintegral_rpow_enorm_toReal Modified Mathlib/MeasureTheory/Function/LpSeminorm/Indicator.lean Added Mathlib/MeasureTheory/Function/LpSeminorm/LpNorm.lean + theorem MeasureTheory.ae_le_lpNorm_exponent_top + theorem MeasureTheory.lpNorm_abs + theorem MeasureTheory.lpNorm_add_le' + theorem MeasureTheory.lpNorm_add_le + theorem MeasureTheory.lpNorm_conj + theorem MeasureTheory.lpNorm_const' + theorem MeasureTheory.lpNorm_const + theorem MeasureTheory.lpNorm_const_smul + theorem MeasureTheory.lpNorm_div_natCast + theorem MeasureTheory.lpNorm_eq_integral_norm_rpow_toReal + theorem MeasureTheory.lpNorm_eq_zero + theorem MeasureTheory.lpNorm_expect_le + theorem MeasureTheory.lpNorm_exponent_top_eq_essSup + theorem MeasureTheory.lpNorm_exponent_zero + theorem MeasureTheory.lpNorm_fun_abs + theorem MeasureTheory.lpNorm_fun_div_natCast + theorem MeasureTheory.lpNorm_fun_mul_natCast + theorem MeasureTheory.lpNorm_fun_natCast_mul + theorem MeasureTheory.lpNorm_fun_neg + theorem MeasureTheory.lpNorm_fun_zero + theorem MeasureTheory.lpNorm_le_add_lpNorm_add + theorem MeasureTheory.lpNorm_le_lpNorm_add_lpNorm_sub' + theorem MeasureTheory.lpNorm_le_lpNorm_add_lpNorm_sub + theorem MeasureTheory.lpNorm_measure_zero + theorem MeasureTheory.lpNorm_mono_real + theorem MeasureTheory.lpNorm_mul_natCast + theorem MeasureTheory.lpNorm_natCast_mul + theorem MeasureTheory.lpNorm_neg + theorem MeasureTheory.lpNorm_nnreal_eq_integral_norm_rpow + theorem MeasureTheory.lpNorm_nonneg + theorem MeasureTheory.lpNorm_norm + theorem MeasureTheory.lpNorm_nsmul + theorem MeasureTheory.lpNorm_of_isEmpty + theorem MeasureTheory.lpNorm_of_not_aestronglyMeasurable + theorem MeasureTheory.lpNorm_of_not_memLp + theorem MeasureTheory.lpNorm_one' + theorem MeasureTheory.lpNorm_one + theorem MeasureTheory.lpNorm_one_eq_integral_norm + theorem MeasureTheory.lpNorm_smul_measure_of_ne_top + theorem MeasureTheory.lpNorm_smul_measure_of_ne_zero + theorem MeasureTheory.lpNorm_sub_comm + theorem MeasureTheory.lpNorm_sub_le + theorem MeasureTheory.lpNorm_sub_le_lpNorm_sub_add_lpNorm_sub + theorem MeasureTheory.lpNorm_sum_le + theorem MeasureTheory.lpNorm_zero + theorem MeasureTheory.ofReal_lpNorm + theorem MeasureTheory.toReal_eLpNorm Modified Mathlib/MeasureTheory/Function/LpSeminorm/Monotonicity.lean Modified Mathlib/MeasureTheory/Function/LpSeminorm/TriangleInequality.lean Modified Mathlib/MeasureTheory/Function/SimpleFuncDenseLp.lean Modified Mathlib/MeasureTheory/Function/UniformIntegrable.lean Modified Mathlib/MeasureTheory/Integral/Bochner/Basic.lean Modified Mathlib/Order/Filter/ENNReal.lean + theorem ENNReal.ofReal_limsup + theorem ENNReal.toReal_limsup Modified Mathlib/Order/LiminfLimsup.lean +/- theorem Filter.le_limsup_of_frequently_le +/- theorem Filter.liminf_le_of_frequently_le Modified Mathlib/Probability/Moments/CovarianceBilinDual.lean Modified Mathlib/Probability/Moments/Variance.lean 2026-02-09 01:15:08 efc0e39 refactor(SetTheory/Ordinal): introduce `natCast_pow` (#34662) We introduce `natCast_pow : ↑(m ^ n) = ↑m ^ n` for ordinals. We deprecate `natCast_opow : ↑(m ^ n) = ↑m ^ ↑n`, which aside from being named wrong, has an RHS which is not simp-normal. See [Zulip](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Ordinal.20exponentiation.20problems/with/571572044). ESTIMATED CHANGES Modified Mathlib/SetTheory/Cardinal/Ordinal.lean Modified Mathlib/SetTheory/Ordinal/Arithmetic.lean Modified Mathlib/SetTheory/Ordinal/Exponential.lean +/- theorem Ordinal.natCast_opow + theorem Ordinal.natCast_pow Modified Mathlib/SetTheory/Ordinal/Principal.lean Modified Mathlib/Tactic/NormNum/Ordinal.lean 2026-02-08 22:17:07 26e91fa ci: adapt auto-merge check for GitHub apps bots (#34980) The steps in our build workflow which determine whether to act on the `auto-merge-after-CI` label are [failing](https://github.com/leanprover-community/mathlib4/actions/runs/21793023184/job/62877678664?pr=34967#step:8:11) when one of our new GitHub apps bots has applied the label, since the username no longer corresponds to a user. We fix that by whitelisting the bot usernames. ([Usernames must be unique across both bots and users](https://docs.github.com/en/apps/creating-github-apps/registering-a-github-app/registering-a-github-app#registering-a-github-app) so it should be impossible for someone to pose as one of them.) Noticed in [#nightly-testing > Mathlib `lake update` failure @ 💬](https://leanprover.zulipchat.com/#narrow/channel/428973-nightly-testing/topic/Mathlib.20.60lake.20update.60.20failure/near/572616935). ESTIMATED CHANGES Modified .github/workflows/build_template.yml 2026-02-08 21:44:26 019f853 feat(RingTheory/PowerSeries/Derivative): more lemmas (#34616) Four lemmas leading to the chain rule for power series. ESTIMATED CHANGES Modified Mathlib/RingTheory/PowerSeries/Derivative.lean + theorem PowerSeries.derivative_pow + theorem PowerSeries.derivative_subst Modified Mathlib/RingTheory/PowerSeries/Substitution.lean + theorem PowerSeries.HasSubst.eventually_coeff_pow_eq_zero 2026-02-08 20:32:48 2c51483 chore(RingTheory/TensorProduct): make `Algebra.TensorProduct.assoc` more linear (#34947) We also remove two unused `aux` lemmas that can be recovered by the multiplicative properties of `Algebra.TensorProduct.assoc`. ESTIMATED CHANGES Modified Mathlib/Algebra/Category/AlgCat/Monoidal.lean Modified Mathlib/Algebra/Category/CommAlgCat/Monoidal.lean +/- theorem CommAlgCat.associator_hom_hom +/- theorem CommAlgCat.associator_inv_hom Modified Mathlib/RingTheory/Bialgebra/Basic.lean Modified Mathlib/RingTheory/Bialgebra/TensorProduct.lean Modified Mathlib/RingTheory/TensorProduct/Maps.lean - theorem Algebra.TensorProduct.assoc_aux_1 - theorem Algebra.TensorProduct.assoc_aux_2 2026-02-08 20:19:07 bcd0d3b feat(CategoryTheory/Sites): commutation of fiber functors with functors which preserves filtered colimits (#34989) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Sites/Point/Basic.lean + theorem CategoryTheory.GrothendieckTopology.Point.toPresheafFiber_presheafFiberCompIso_hom_app 2026-02-08 20:01:12 6b83b4d feat(SimpleGraph): relate `takeUntil`/`dropUntil` to `take`/`drop` (#34620) Add lemmas to allow going from takeUntil/dropUntil to a take/drop in terms of an explicit index `p.support.idxOf w`. ESTIMATED CHANGES Modified Mathlib/Combinatorics/SimpleGraph/Connectivity/WalkDecomp.lean + theorem SimpleGraph.Walk.dropUntil_eq_drop + theorem SimpleGraph.Walk.dropUntil_first + theorem SimpleGraph.Walk.length_dropUntil + theorem SimpleGraph.Walk.length_takeUntil + theorem SimpleGraph.Walk.takeUntil_eq_take Modified Mathlib/Combinatorics/SimpleGraph/Walks/Operations.lean + theorem SimpleGraph.Walk.drop_cons_eq + theorem SimpleGraph.Walk.take_cons_eq Modified Mathlib/Combinatorics/SimpleGraph/Walks/Traversal.lean + theorem SimpleGraph.Walk.getVert_support_idxOf 2026-02-08 13:16:55 85028a6 refactor(scripts/autolabel): use type-safe labels instead of strings (#34949) Change from freeform string label names to an inductive type. This is intended to prevent miss-spellings of label names, which become more likely when label dependencies will be introduced in #34066. This is a pure refactor without change in functionality. ESTIMATED CHANGES Modified scripts/autolabel.lean + def AutoLabel.Label.toString + inductive AutoLabel.Label - structure AutoLabel.Label + structure AutoLabel.LabelData +/- def AutoLabel.getMatchingLabels + def AutoLabel.mathlibLabelData 2026-02-08 12:19:35 604007f chore: update Mathlib dependencies 2026-02-08 (#34967) This PR updates the Mathlib dependencies. ESTIMATED CHANGES Modified lake-manifest.json 2026-02-08 11:46:36 a022ca4 chore(SetTheory/Ordinal/Veblen): add `recommended_spelling` for epsilon and gamma functions (#34732) We also rename theorems from `epsilon0` → `epsilon_zero` and `gamma0` → `gamma_zero`, matching what we previously did with `aleph1` → `aleph_one` in #33198. ESTIMATED CHANGES Modified Mathlib/SetTheory/Ordinal/Veblen.lean - theorem Ordinal.epsilon0_eq_nfp - theorem Ordinal.epsilon0_le_of_omega0_opow_le - theorem Ordinal.epsilon0_lt_gamma + theorem Ordinal.epsilon_zero_eq_nfp + theorem Ordinal.epsilon_zero_le_of_omega0_opow_le + theorem Ordinal.epsilon_zero_lt_gamma - theorem Ordinal.gamma0_eq_nfp - theorem Ordinal.gamma0_le_of_veblen_le + theorem Ordinal.gamma_zero_eq_nfp + theorem Ordinal.gamma_zero_le_of_veblen_le - theorem Ordinal.iterate_omega0_opow_lt_epsilon0 + theorem Ordinal.iterate_omega0_opow_lt_epsilon_zero - theorem Ordinal.iterate_veblen_lt_gamma0 + theorem Ordinal.iterate_veblen_lt_gamma_zero - theorem Ordinal.lt_epsilon0 + theorem Ordinal.lt_epsilon_zero - theorem Ordinal.lt_gamma0 + theorem Ordinal.lt_gamma_zero 2026-02-08 09:51:08 8115783 chore: fix isInitialPEmpty name (#34964) This PR corrects a typo in a theorem ```lean /-- The initial object in `Type u` is `PEmpty`. -/ noncomputable def isInitialPunit : IsInitial (PEmpty : Type u) := initialIsInitial.ofIso initialIso ``` to `isInitialPEmpty` ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Limits/Types/Coproducts.lean 2026-02-07 23:17:23 668a537 refactor(Linter/Whitespace): use string slices more take 2 (#34659) This PR is a second attempt at using the new String slices and other String API for the whitespace linter after #26240 had to be reverted due to performance issues. [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) ESTIMATED CHANGES Modified Mathlib/Tactic/Linter/Whitespace.lean +/- def Mathlib.Linter.parallelScanAux 2026-02-07 21:57:00 cfb09f5 chore: bump dependency `importGraph` (#34704) bump `importGraph` dependency manually as it received a major cleanup / restructuring. The PR first tested that all the imports from `ImportGraph` used in Mathlib throw deprecation warnings, then fixes the imports accordingly. ESTIMATED CHANGES Modified Mathlib/Tactic/Common.lean Modified Mathlib/Tactic/Linter/FindDeprecations.lean Modified Mathlib/Tactic/Linter/MinImports.lean Modified Mathlib/Tactic/Linter/UpstreamableDecl.lean Modified Mathlib/Tactic/MinImports.lean Modified lake-manifest.json Modified scripts/lint-style.lean 2026-02-07 21:27:26 0606e97 chore: generalize Polynomial.degree_comp_neg_X (#34951) ESTIMATED CHANGES Modified Mathlib/Algebra/Polynomial/Degree/Lemmas.lean + theorem Polynomial.comp_neg_X_eq_zero_iff +/- theorem Polynomial.degree_comp_neg_X 2026-02-07 18:07:19 789108e feat(AlgebraicGeometry): a quasi-compact cover of a quasi-compact scheme can be refined by a finite affine cover (#34923) We also show that quasi-compact covers (in an arbitrary universe) of schemes in universe `u` can be lifted to `u`-covers. ESTIMATED CHANGES Modified Mathlib/AlgebraicGeometry/Cover/QuasiCompact.lean + theorem AlgebraicGeometry.QuasiCompactCover.exists_hom 2026-02-07 17:02:13 2d9b140 feat(SimpleGraph): add more API for `take`/`drop` (#26614) The main lemma proves that taking `n` vertices of a walk results in a sub-walk of taking `k` vertices when `n` is less than or equal to `k`, alongside a similar lemma for dropping vertices. ESTIMATED CHANGES Modified Mathlib/Combinatorics/SimpleGraph/Walks/Operations.lean + theorem SimpleGraph.Walk.Nil.eq_copy_nil + theorem SimpleGraph.Walk.drop_of_length_le + theorem SimpleGraph.Walk.nil_drop_of_length_le + theorem SimpleGraph.Walk.take_of_length_le Modified Mathlib/Combinatorics/SimpleGraph/Walks/Subwalks.lean + theorem SimpleGraph.Walk.drop_isSubwalk_drop + theorem SimpleGraph.Walk.take_isSubwalk_take 2026-02-07 16:33:11 2dc61b4 fix(RingTheory/Finiteness/Basic): fix statement of theorem FG.span (#34930) Fix statement of theorem `FG.span`. The current statement is trivial and does not agree with the doc-string. ESTIMATED CHANGES Modified Mathlib/RingTheory/Finiteness/Basic.lean 2026-02-07 16:19:07 845a0b9 feat(RingTheory/DedekindDomain/AdicValuation): unit lemmas for `adicCompletionIntegers` (#34918) ESTIMATED CHANGES Modified Mathlib/RingTheory/DedekindDomain/AdicValuation.lean + theorem IsDedekindDomain.HeightOneSpectrum.adicCompletionIntegers.integers + theorem IsDedekindDomain.HeightOneSpectrum.adicCompletionIntegers.isUnit_iff_valued_eq_one + theorem IsDedekindDomain.HeightOneSpectrum.adicCompletionIntegers.mem_units_iff_valued_eq_one 2026-02-07 16:05:16 3bf9fd7 feat(LinearAlgebra/AffineSpace/FiniteDimensional): affine independence under collinear replacement (#34942) ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/AffineSpace/FiniteDimensional.lean + theorem affineIndependent_iff_affineIndependent_collinear_ne 2026-02-07 15:49:14 66cbf96 feat: Profinite completion of groups (#34893) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/GroupTheory/FiniteIndexNormalSubgroup.lean + structure FiniteIndexNormalAddSubgroup + def FiniteIndexNormalSubgroup.comap + theorem FiniteIndexNormalSubgroup.comap_comp + theorem FiniteIndexNormalSubgroup.comap_id + theorem FiniteIndexNormalSubgroup.comap_mono + def FiniteIndexNormalSubgroup.ofSubgroup + theorem FiniteIndexNormalSubgroup.toSubgroup_comap + theorem FiniteIndexNormalSubgroup.toSubgroup_injective + theorem FiniteIndexNormalSubgroup.toSubgroup_ofSubgroup + structure FiniteIndexNormalSubgroup Modified Mathlib/Topology/Algebra/Category/ProfiniteGrp/Basic.lean + def ProfiniteGrp.ofFiniteGrpHom Added Mathlib/Topology/Algebra/Category/ProfiniteGrp/Completion.lean + def OpenNormalSubgroup.toFiniteIndexNormalSubgroup + theorem OpenNormalSubgroup.toFiniteIndexNormalSubgroup_injective + theorem OpenNormalSubgroup.toFiniteIndexNormalSubgroup_mono + def ProfiniteGrp.ProfiniteCompletion.adjunction + def ProfiniteGrp.ProfiniteCompletion.completion + theorem ProfiniteGrp.ProfiniteCompletion.denseRange + def ProfiniteGrp.ProfiniteCompletion.diagram + def ProfiniteGrp.ProfiniteCompletion.eta + def ProfiniteGrp.ProfiniteCompletion.etaFn + def ProfiniteGrp.ProfiniteCompletion.finiteGrpDiagram + def ProfiniteGrp.ProfiniteCompletion.homEquiv + def ProfiniteGrp.ProfiniteCompletion.lift + theorem ProfiniteGrp.ProfiniteCompletion.lift_eta + theorem ProfiniteGrp.ProfiniteCompletion.lift_unique + def ProfiniteGrp.ProfiniteCompletion.preimage + theorem ProfiniteGrp.ProfiniteCompletion.preimage_le + def ProfiniteGrp.ProfiniteCompletion.quotientMap Modified Mathlib/Topology/Algebra/Category/ProfiniteGrp/Limits.lean + def ProfiniteGrp.cone + def ProfiniteGrp.diagram + def ProfiniteGrp.proj +/- def ProfiniteGrp.toLimit + def ProfiniteGrp.toLimitFun + theorem ProfiniteGrp.toLimitFun_continuous - def ProfiniteGrp.toLimit_fun - theorem ProfiniteGrp.toLimit_fun_continuous Modified Mathlib/Topology/Algebra/OpenSubgroup.lean 2026-02-07 14:43:21 e8bd29a chore(RingTheory): split `QuasiFinite/Basic.lean` (#34946) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/RingTheory/QuasiFinite/Basic.lean - theorem Polynomial.map_under_lt_comap_of_quasiFiniteAt - theorem Polynomial.not_ker_le_map_C_of_surjective_of_quasiFiniteAt - theorem Polynomial.not_quasiFiniteAt Added Mathlib/RingTheory/QuasiFinite/Polynomial.lean + theorem Polynomial.map_under_lt_comap_of_quasiFiniteAt + theorem Polynomial.not_ker_le_map_C_of_surjective_of_quasiFiniteAt + theorem Polynomial.not_quasiFiniteAt 2026-02-07 14:31:07 7a3ba23 chore(NumberTheory/Height): update module docstrings after file move (#34950) This is a follow-up to [#34776](https://github.com/leanprover-community/mathlib4/pull/34776), which renamed `Mathlib.NumberTheory.Height.Instances` to `Mathlib.NumberTheory.Height.NumberField`. It updates the module docstrings of `Mathlib.NumberTheory.Height.NumberField` and `Mathlib.NumberTheory.Height.Basic` to reflect the change. ESTIMATED CHANGES Modified Mathlib/NumberTheory/Height/Basic.lean Modified Mathlib/NumberTheory/Height/NumberField.lean 2026-02-07 13:29:29 e2df8d4 fix(unfold?): make the RPC function public (#34925) This PR applies the fix of #34474 to `unfold?` ESTIMATED CHANGES Modified Mathlib/Tactic/Widget/InteractiveUnfold.lean + def Mathlib.Tactic.InteractiveUnfold.InteractiveUnfold.rpc 2026-02-07 13:29:27 5dc0a73 fix: remove the worse ToExpr Rat instance (#34737) Core now provides a nicer one, which prefers `1 / 2` instead of `mkRat 1 2`. See also [#mathlib4 > printing rationals @ 💬](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/printing.20rationals/near/547735113). ESTIMATED CHANGES Modified Mathlib/Lean/Expr/Rat.lean 2026-02-07 13:17:08 4714169 chore: add missing deprecation for HoCat.toπCompToLocalizationIso (#34738) From #33956. ESTIMATED CHANGES Modified Mathlib/AlgebraicTopology/ModelCategory/CofibrantObjectHomotopy.lean 2026-02-07 13:04:54 b7048de chore(CI): regenerate app token before late checkout in nightly_detect_failure (#34904) This PR fixes a potential token expiration issue in `nightly_detect_failure.yml`. In the `handle_success` job, the GitHub App token is generated at the start of the job but then used again much later for a second checkout and PR creation. Between these uses, there are: - Zulip API calls (Python scripts) - GitHub API pagination calls - Multiple `github-script` steps with retry logic - Setup operations This can easily exceed 1 hour, causing the token to expire before the final checkout step. **Fix:** Regenerate a fresh token (`app-token-2`) just before the second checkout. Related to #34903 which fixes the same pattern in `build_template.yml`. 🤖 Prepared with Claude Code ESTIMATED CHANGES Modified .github/workflows/nightly_detect_failure.yml 2026-02-07 08:00:17 c7b39cb feat(FieldTheory/KrullTopology): stabilizers are open for the Krull topology (#34885) `stabilizer_isOpen_of_isIntegral`: For an algebraic field extension `L/K`, the stabilizer in `Gal(L/K)` of any element in `L` is open for the Krull topology. Also fix typo in docstrings for `krullTopology_isTotallySeparated`. ESTIMATED CHANGES Modified Mathlib/FieldTheory/KrullTopology.lean + theorem stabilizer_isOpen_of_isIntegral 2026-02-07 08:00:15 7b2304f chore(NumberTheory/Height): move Instances.lean -> NumberField.lean (#34776) This PR just changes the name of "Instances.lean" to "NumberField.lean". Rationale: I expect to add quite a number of number field specific results on heights eventually, and it makes sense to put them together with the `AdmissibleAbsValues` instance for number fields. Further instances for function fields can be added in a separate "FunctionField.lean" file at some later point. The module docstring will be updated in a follow-up PR. ESTIMATED CHANGES Modified Mathlib.lean Renamed Mathlib/NumberTheory/Height/Instances.lean to Mathlib/NumberTheory/Height/NumberField.lean 2026-02-07 07:45:06 fbfd573 feat(CategoryTheory/Sites): various API additions for #34917 (#34921) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Sites/Coverage.lean + theorem CategoryTheory.Precoverage.isSheaf_toGrothendieck_iff_of_isStableUnderBaseChange + theorem CategoryTheory.Precoverage.isSheaf_toGrothendieck_iff_of_isStableUnderBaseChange_of_small Modified Mathlib/CategoryTheory/Sites/Grothendieck.lean Modified Mathlib/CategoryTheory/Sites/Hypercover/Zero.lean + theorem CategoryTheory.PreZeroHypercover.Hom.sieve₀_le_sieve₀ + theorem CategoryTheory.PreZeroHypercover.presieve₀_restrictIndex_le + def CategoryTheory.PreZeroHypercover.restrictIndexHom + theorem CategoryTheory.PreZeroHypercover.sieve₀_eq_of_iso Modified Mathlib/CategoryTheory/Sites/MorphismProperty.lean + theorem CategoryTheory.MorphismProperty.bot_mem_precoverage Modified Mathlib/CategoryTheory/Sites/PrecoverageToGrothendieck.lean + theorem CategoryTheory.PreZeroHypercover.isSheafFor_iff_of_iso + theorem CategoryTheory.Precoverage.toGrothendieck_mono + theorem CategoryTheory.Presieve.isSheafFor_ofArrows_comp_iff + theorem CategoryTheory.Presieve.isSheafFor_singleton_iff_of_iso Modified Mathlib/CategoryTheory/Sites/Pretopology.lean + theorem CategoryTheory.Pretopology.toGrothendieck_mono Modified Mathlib/CategoryTheory/Sites/Sieves.lean + theorem CategoryTheory.Presieve.ofArrows_of_unique + theorem CategoryTheory.Sieve.generate_bot 2026-02-07 07:45:05 81197a4 feat: generalize the index set and the codomain of leastGE (#34715) ESTIMATED CHANGES Modified Mathlib/Probability/Martingale/BorelCantelli.lean +/- theorem MeasureTheory.StronglyAdapted.isStoppingTime_leastGE 2026-02-07 07:29:38 cce210e chore(CategoryTheory/Sites): rename `Sheaf.isSheafFor_trans` to `Presieve.isSheafFor_trans` and move to earlier file (#34924) We move the lemmas `Sheaf.isSheafFor_trans` and `Sheaf.isSheafFor_bind` from `Mathlib/CategoryTheory/Sites/Canonical.lean` to `Mathlib/CategoryTheory/Sites/IsSheafFor.lean`, because they are more generally useful. We also change the names to match their content: - `Sheaf.isSheafFor_trans` -> `Presieve.isSheafFor_trans` - `Sheaf.isSheafFor_bind` -> `Presieve.isSheafFor_bind` Finally, we generalize the universe of the codomain of the presheaf in both lemmas. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Sites/Canonical.lean - theorem CategoryTheory.Sheaf.isSheafFor_bind - theorem CategoryTheory.Sheaf.isSheafFor_trans Modified Mathlib/CategoryTheory/Sites/IsSheafFor.lean + theorem CategoryTheory.Presieve.isSheafFor_bind + theorem CategoryTheory.Presieve.isSheafFor_trans 2026-02-07 05:45:38 de6d0d0 feat(Geometry/Euclidean/Altitude): add inner_vsub_altitudeFoot_vsub_altitudeFoot_eq_zero (#34157) ESTIMATED CHANGES Modified Mathlib/Geometry/Euclidean/Altitude.lean + theorem Affine.Simplex.inner_vsub_altitudeFoot_vsub_altitudeFoot_eq_zero 2026-02-07 04:35:04 859cead chore: remove `meta` from `import Aesop` (#34927) `aesop` is a tactic, so its implementation must have been marked as `meta` already. So, adding `meta` to its import is redundant. ESTIMATED CHANGES Modified Mathlib/Data/Fin/VecNotation.lean Modified Mathlib/Data/Finset/Attr.lean Modified Mathlib/Data/Finset/Empty.lean Modified Mathlib/Order/Filter/Defs.lean Modified Mathlib/Tactic/ApplyFun.lean Modified Mathlib/Tactic/Bound.lean Modified Mathlib/Tactic/Bound/Attribute.lean Modified Mathlib/Tactic/CategoryTheory/CheckCompositions.lean Modified Mathlib/Tactic/CategoryTheory/Coherence/Basic.lean Modified Mathlib/Tactic/DeriveCountable.lean Modified Mathlib/Tactic/DeriveEncodable.lean Modified Mathlib/Tactic/MoveAdd.lean Modified Mathlib/Tactic/Nontriviality/Core.lean Modified Mathlib/Tactic/Order/CollectFacts.lean Modified Mathlib/Tactic/SetLike.lean Modified Mathlib/Tactic/TautoSet.lean Modified Mathlib/Tactic/Widget/CommDiag.lean Modified Mathlib/Tactic/Zify.lean 2026-02-07 01:57:27 9589f10 refactor(Computability): split RecursiveIn out of TuringDegree (#34933) Move-only refactor: extracts `RecursiveIn` into its own file. per @eric-wieser suggestion in #34899 . the `TuringDegree` header is also edited because it no longer contains definitions of oracle computability and recursive in note: cursor agent was allowed to execute some git commands ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Computability/RecursiveIn.lean + inductive RecursiveIn + theorem recursiveIn_empty_iff_partrec Modified Mathlib/Computability/TuringDegree.lean - inductive RecursiveIn - theorem recursiveIn_empty_iff_partrec 2026-02-06 23:36:11 7091f0f chore: move reviewer auto-assignment to queueboard-core repo (#34746) cf. https://github.com/leanprover-community/queueboard-core/pull/126 ESTIMATED CHANGES Deleted .github/workflows/auto_assign_reviewers.yaml Modified scripts/README.md Deleted scripts/assign_reviewers.py 2026-02-06 22:51:16 23f9fd8 chore(Order/Cover): use `to_dual` (#34880) We add a lot of `to_dual none` tags, as a lot of the generated lemmas just swap the order of equalities, or other arguments inside quantifiers. ESTIMATED CHANGES Modified Mathlib/Order/Cover.lean - theorem CovBy.ge_of_gt - theorem CovBy.ne' - theorem CovBy.unique_right - theorem WCovBy.ge_of_gt - theorem WCovBy.inf_eq - theorem covBy_iff_le_iff_lt_right - theorem covBy_iff_lt_iff_le_right - theorem exists_covBy_of_wellFoundedGT 2026-02-06 22:29:38 cb53e58 chore: rename `CompRel` to `Relation.SymmGen` (#34428) See [this Zulip thread](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/symmetric.20closure.20definition/with/569907069). This PR renames `CompRel` to `Relation.SymmGen` for consistency with core and `Mathlib.Logic.Relation`. Import changes are avoided by moving declarations to `Mathlib.Logic.Relation` and `Mathlib.Order.Antisymmetrization`, which seems natural and is what `#find_home` suggests. ESTIMATED CHANGES Modified Mathlib/Logic/Relation.lean + theorem Relation.SymmGen.of_ge + theorem Relation.SymmGen.of_le + theorem Relation.SymmGen.of_rel + theorem Relation.SymmGen.of_rel_symm + theorem Relation.SymmGen.refl + theorem Relation.SymmGen.rfl + theorem Relation.SymmGen.swap + theorem Relation.SymmGen.symm + def Relation.SymmGen + theorem Relation.symmGen_comm + theorem Relation.symmGen_of_total + theorem Relation.symmGen_swap + theorem Relation.symmGen_swap_apply Modified Mathlib/Order/Antisymmetrization.lean + theorem AntisymmRel.symmGen + theorem AntisymmRel.symmGen_congr + theorem AntisymmRel.symmGen_congr_left + theorem AntisymmRel.symmGen_congr_right + theorem Relation.SymmGen.of_antisymmRel_of_symmGen + theorem Relation.SymmGen.of_gt + theorem Relation.SymmGen.of_lt + theorem Relation.SymmGen.of_symmGen_of_antisymmRel Modified Mathlib/Order/Comparable.lean +/- theorem CompRel.of_ge +/- theorem CompRel.of_gt +/- theorem CompRel.of_le +/- theorem CompRel.of_lt +/- theorem CompRel.rfl + def Relation.linearOrderOfSymmGen +/- theorem not_compRel_iff +/- theorem not_incompRel_iff + theorem not_incompRel_iff_symmGen + theorem not_symmGen_iff 2026-02-06 21:51:23 6a5d394 ci: Remove unused OTEL endpoint (#34929) After experimenting, let's keep only one endpoint (Honeycomb) ESTIMATED CHANGES Modified .github/workflows/export_telemetry.yaml 2026-02-06 21:24:00 045ac40 refactor(CategoryTheory): remove `HasForget` (#34741) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Category/AlgCat/Basic.lean Modified Mathlib/Algebra/Category/BialgCat/Basic.lean Modified Mathlib/Algebra/Category/CommAlgCat/Basic.lean +/- theorem CommAlgCat.forget_map Modified Mathlib/Algebra/Category/CommBialgCat.lean +/- theorem CommBialgCat.forget_map Modified Mathlib/Algebra/Category/GrpWithZero.lean +/- theorem GrpWithZero.forget_map Modified Mathlib/Algebra/Category/ModuleCat/Basic.lean Modified Mathlib/Algebra/Category/ModuleCat/ChangeOfRings.lean Modified Mathlib/Algebra/Category/ModuleCat/FilteredColimits.lean Modified Mathlib/Algebra/Category/ModuleCat/Presheaf.lean Modified Mathlib/Algebra/Category/ModuleCat/Presheaf/Free.lean Modified Mathlib/Algebra/Category/ModuleCat/Semi.lean Modified Mathlib/Algebra/Category/ModuleCat/Subobject.lean Modified Mathlib/Algebra/Category/ModuleCat/Ulift.lean Modified Mathlib/Algebra/Category/MonCat/Basic.lean Modified Mathlib/Algebra/Category/MonCat/FilteredColimits.lean Modified Mathlib/Algebra/Category/MonCat/Limits.lean Modified Mathlib/Algebra/Category/Ring/Constructions.lean Modified Mathlib/Algebra/Category/Ring/FilteredColimits.lean Modified Mathlib/Algebra/Category/Semigrp/Basic.lean Modified Mathlib/Algebra/Homology/ImageToKernel.lean Modified Mathlib/Algebra/Homology/ShortComplex/ConcreteCategory.lean Modified Mathlib/AlgebraicGeometry/Morphisms/Flat.lean Modified Mathlib/AlgebraicGeometry/Sites/Representability.lean Modified Mathlib/AlgebraicGeometry/Spec.lean Modified Mathlib/AlgebraicTopology/SimplexCategory/Basic.lean Modified Mathlib/CategoryTheory/Action/Basic.lean Modified Mathlib/CategoryTheory/Action/Continuous.lean +/- def CategoryTheory.Functor.mapContActionComp Modified Mathlib/CategoryTheory/Action/Limits.lean Modified Mathlib/CategoryTheory/Category/Pointed.lean Modified Mathlib/CategoryTheory/Category/TwoP.lean Modified Mathlib/CategoryTheory/Comma/Presheaf/Basic.lean Modified Mathlib/CategoryTheory/ConcreteCategory/Basic.lean + theorem CategoryTheory.ConcreteCategory.coe_comp + theorem CategoryTheory.ConcreteCategory.coe_id +/- theorem CategoryTheory.ConcreteCategory.congr_arg +/- theorem CategoryTheory.ConcreteCategory.congr_hom - theorem CategoryTheory.ConcreteCategory.forget_map_eq_coe - theorem CategoryTheory.ConcreteCategory.forget₂_comp_apply - theorem CategoryTheory.ConcreteCategory.hasCoeToFun_Type +/- theorem CategoryTheory.ConcreteCategory.hom_ext - def CategoryTheory.HasForget.hasCoeToSort - def CategoryTheory.HasForget₂.mk' - def CategoryTheory.HasForget₂.trans - theorem CategoryTheory.NatTrans.naturality_apply - theorem CategoryTheory.coe_comp - theorem CategoryTheory.coe_id - theorem CategoryTheory.coe_toHasForget_instFunLike - theorem CategoryTheory.comp_apply' +/- theorem CategoryTheory.comp_apply - theorem CategoryTheory.congr_hom - theorem CategoryTheory.forget_eq_ConcreteCategory_hom - theorem CategoryTheory.forget_map_eq_coe - theorem CategoryTheory.forget_obj - theorem CategoryTheory.forget₂_comp_apply - def CategoryTheory.hasForgetToType +/- theorem CategoryTheory.hom_comp +/- theorem CategoryTheory.hom_id +/- theorem CategoryTheory.id_apply Modified Mathlib/CategoryTheory/ConcreteCategory/BundledHom.lean - def CategoryTheory.BundledHom.map - def CategoryTheory.BundledHom.mkHasForget₂ - structure CategoryTheory.BundledHom Modified Mathlib/CategoryTheory/ConcreteCategory/Elementwise.lean Modified Mathlib/CategoryTheory/ConcreteCategory/EpiMono.lean Added Mathlib/CategoryTheory/ConcreteCategory/Forget.lean + theorem CategoryTheory.ConcreteCategory.forget_map_eq_coe + theorem CategoryTheory.ConcreteCategory.forget₂_comp_apply + def CategoryTheory.HasForget₂.mk' + def CategoryTheory.HasForget₂.trans + theorem CategoryTheory.NatTrans.naturality_apply + theorem CategoryTheory.Types.hom_eq_coe + def CategoryTheory.forget + theorem CategoryTheory.forget_obj + theorem CategoryTheory.forget₂_comp_apply Modified Mathlib/CategoryTheory/ConcreteCategory/ReflectsIso.lean Modified Mathlib/CategoryTheory/ConcreteCategory/UnbundledHom.lean - def CategoryTheory.UnbundledHom.mkHasForget₂ Modified Mathlib/CategoryTheory/DifferentialObject.lean Modified Mathlib/CategoryTheory/Filtered/CostructuredArrow.lean Modified Mathlib/CategoryTheory/FintypeCat.lean Modified Mathlib/CategoryTheory/Functor/Flat.lean Modified Mathlib/CategoryTheory/Galois/Examples.lean Modified Mathlib/CategoryTheory/GradedObject.lean Modified Mathlib/CategoryTheory/Limits/ConcreteCategory/Basic.lean Modified Mathlib/CategoryTheory/Limits/FilteredColimitCommutesFiniteLimit.lean Modified Mathlib/CategoryTheory/Limits/MonoCoprod.lean Modified Mathlib/CategoryTheory/Limits/Types/Products.lean Modified Mathlib/CategoryTheory/MorphismProperty/Concrete.lean Modified Mathlib/CategoryTheory/Sites/Adjunction.lean Modified Mathlib/CategoryTheory/Sites/Coherent/LocallySurjective.lean Modified Mathlib/CategoryTheory/Sites/Coherent/SequentialLimit.lean Modified Mathlib/CategoryTheory/Sites/ConcreteSheafification.lean Modified Mathlib/CategoryTheory/Sites/LeftExact.lean Modified Mathlib/CategoryTheory/Sites/LocallyBijective.lean Modified Mathlib/CategoryTheory/Sites/LocallyFullyFaithful.lean Modified Mathlib/CategoryTheory/Sites/LocallyInjective.lean Modified Mathlib/CategoryTheory/Sites/LocallySurjective.lean Modified Mathlib/CategoryTheory/Sites/PreservesSheafification.lean Modified Mathlib/CategoryTheory/Sites/Subsheaf.lean Modified Mathlib/CategoryTheory/Subfunctor/Basic.lean Modified Mathlib/Condensed/Basic.lean Modified Mathlib/Condensed/CartesianClosed.lean Modified Mathlib/Condensed/Discrete/Basic.lean Modified Mathlib/Condensed/Discrete/Characterization.lean Modified Mathlib/Condensed/Discrete/LocallyConstant.lean Modified Mathlib/Condensed/Discrete/Module.lean Modified Mathlib/Condensed/Epi.lean Modified Mathlib/Condensed/Explicit.lean Modified Mathlib/Condensed/Light/Basic.lean Modified Mathlib/Condensed/Light/Epi.lean Modified Mathlib/Condensed/Light/Explicit.lean Modified Mathlib/Condensed/Light/TopCatAdjunction.lean Modified Mathlib/Condensed/TopCatAdjunction.lean Modified Mathlib/Geometry/Manifold/Sheaf/Smooth.lean Modified Mathlib/Geometry/RingedSpace/Basic.lean Modified Mathlib/Geometry/RingedSpace/OpenImmersion.lean Modified Mathlib/Order/Category/BddDistLat.lean Modified Mathlib/Order/Category/BddOrd.lean Modified Mathlib/Order/Category/BoolAlg.lean Modified Mathlib/Order/Category/DistLat.lean Modified Mathlib/Order/Category/FinBddDistLat.lean Modified Mathlib/Order/Category/Frm.lean Modified Mathlib/Order/Category/HeytAlg.lean Modified Mathlib/Order/Category/Lat.lean Modified Mathlib/Order/Category/LinOrd.lean Modified Mathlib/Order/Category/PartOrd.lean Modified Mathlib/Order/Category/PartOrdEmb.lean Modified Mathlib/Order/Category/Preord.lean Modified Mathlib/RepresentationTheory/FDRep.lean Modified Mathlib/RepresentationTheory/Homological/GroupCohomology/LowDegree.lean Modified Mathlib/RepresentationTheory/Tannaka.lean Modified Mathlib/RingTheory/Invariant/Profinite.lean Modified Mathlib/Tactic/CategoryTheory/Elementwise.lean +/- theorem Tactic.Elementwise.hom_elementwise Modified Mathlib/Topology/Algebra/Category/ProfiniteGrp/Basic.lean Modified Mathlib/Topology/Category/CompHausLike/Limits.lean Modified Mathlib/Topology/Category/TopCat/Yoneda.lean Modified Mathlib/Topology/Gluing.lean Modified Mathlib/Topology/Sheaves/LocalPredicate.lean Modified Mathlib/Topology/Sheaves/MayerVietoris.lean Modified Mathlib/Topology/Sheaves/SheafCondition/UniqueGluing.lean Modified Mathlib/Topology/Sheaves/Sheafify.lean Modified MathlibTest/CategoryTheory/Elementwise.lean +/- theorem ElementwiseTest.HasForget.ex1 Modified MathlibTest/CategoryTheory/Sites/ConcreteSheafification.lean Modified MathlibTest/CategoryTheory/Sites/PreservesSheafification.lean 2026-02-06 19:46:31 2640ebc feat: missing polynomial asymptotics lemmas (#34868) * Dualise lemmas involving the `atTop` filter on the domain to `atBot`, if no parity hypothesis on the degree needs to be introduced. * Rename existing lemmas to reflect the domain filter. * Add `isLittleO_atTop_of_degree_lt` and complete a rectangle of asymptotic lemmas between it and (the renamed) `isBigO_atTop_of_degree_le`. * To facilitate proving the `atBot` lemmas by negating the indeterminate, add `degree_comp` and `degree_comp_neg_X`. ESTIMATED CHANGES Modified Mathlib/Algebra/Polynomial/Degree/Lemmas.lean + theorem Polynomial.degree_comp + theorem Polynomial.degree_comp_neg_X Modified Mathlib/Analysis/Polynomial/Basic.lean + theorem Polynomial.abs_div_tendsto_atBot_atTop_of_degree_gt + theorem Polynomial.abs_div_tendsto_atTop_atTop_of_degree_gt - theorem Polynomial.abs_div_tendsto_atTop_of_degree_gt - theorem Polynomial.abs_isBoundedUnder_iff + theorem Polynomial.abs_tendsto_atBot + theorem Polynomial.abs_tendsto_atBot_iff + theorem Polynomial.div_tendsto_atBot_leadingCoeff_div_of_degree_eq + theorem Polynomial.div_tendsto_atBot_zero_iff_degree_lt + theorem Polynomial.div_tendsto_atBot_zero_of_degree_lt + theorem Polynomial.div_tendsto_atTop_leadingCoeff_div_of_degree_eq + theorem Polynomial.div_tendsto_atTop_zero_iff_degree_lt + theorem Polynomial.div_tendsto_atTop_zero_of_degree_lt - theorem Polynomial.div_tendsto_leadingCoeff_div_of_degree_eq - theorem Polynomial.div_tendsto_zero_iff_degree_lt - theorem Polynomial.div_tendsto_zero_of_degree_lt + theorem Polynomial.eventually_atBot_not_isRoot + theorem Polynomial.eventually_atTop_not_isRoot - theorem Polynomial.eventually_no_roots + theorem Polynomial.isBigO_atBot_of_degree_le + theorem Polynomial.isBigO_atTop_of_degree_le - theorem Polynomial.isBigO_of_degree_le + theorem Polynomial.isBoundedUnder_abs_atBot_iff + theorem Polynomial.isBoundedUnder_abs_atTop_iff + theorem Polynomial.isEquivalent_atBot_div + theorem Polynomial.isEquivalent_atBot_lead + theorem Polynomial.isLittleO_atBot_of_degree_lt + theorem Polynomial.isLittleO_atTop_of_degree_lt 2026-02-06 16:14:37 e83debb feat(AlgebraicGeometry): quasi-finite morphisms have finite fibers (#34898) ESTIMATED CHANGES Modified Mathlib/AlgebraicGeometry/Fiber.lean - theorem AlgebraicGeometry.IsFinite.finite_preimage_singleton - theorem AlgebraicGeometry.QuasiCompact.isCompact_preimage_singleton + def AlgebraicGeometry.Scheme.Hom.asFiberHom + theorem AlgebraicGeometry.Scheme.Hom.asFiberHom_apply + theorem AlgebraicGeometry.Scheme.Hom.asFiberHom_fiberToSpecResidueField + theorem AlgebraicGeometry.Scheme.Hom.asFiberHom_fiberι - theorem AlgebraicGeometry.Scheme.Hom.finite_preimage + theorem AlgebraicGeometry.Scheme.Hom.isCompact_preimage_singleton + theorem AlgebraicGeometry.Scheme.Hom.range_asFiberHom Modified Mathlib/AlgebraicGeometry/Morphisms/Preimmersion.lean Modified Mathlib/AlgebraicGeometry/Morphisms/QuasiFinite.lean + theorem AlgebraicGeometry.Scheme.Hom.finite_preimage + theorem AlgebraicGeometry.Scheme.Hom.finite_preimage_singleton + theorem AlgebraicGeometry.Scheme.Hom.isDiscrete_preimage + theorem AlgebraicGeometry.Scheme.Hom.isDiscrete_preimage_singleton + theorem AlgebraicGeometry.Scheme.Hom.tendsto_cofinite_cofinite + theorem AlgebraicGeometry.locallyQuasiFinite_iff_finite_preimage_singleton + theorem AlgebraicGeometry.locallyQuasiFinite_iff_isFinite_fiber Modified Mathlib/AlgebraicGeometry/ResidueField.lean + theorem AlgebraicGeometry.Scheme.Spec.algebraMap_residueFieldIso_inv + def AlgebraicGeometry.Scheme.Spec.residueFieldIso + theorem AlgebraicGeometry.Scheme.Spec.residue_residueFieldIso_hom Modified Mathlib/AlgebraicGeometry/Stalk.lean - theorem AlgebraicGeometry.Scheme.Spec_fromSpecStalk' - theorem AlgebraicGeometry.Scheme.Spec_fromSpecStalk + theorem AlgebraicGeometry.Spec.algebraMap_stalkIso_inv + theorem AlgebraicGeometry.Spec.fromSpecStalk_eq' + theorem AlgebraicGeometry.Spec.fromSpecStalk_eq + theorem AlgebraicGeometry.Spec.germ_stalkMapIso_hom + def AlgebraicGeometry.Spec.stalkIso 2026-02-06 16:14:34 dfd3b75 feat: Set.eq_empty_or_singleton_of_{subsingleton,unique} (#34889) ESTIMATED CHANGES Modified Mathlib/Analysis/Calculus/FDeriv/Const.lean Modified Mathlib/Data/Set/Subsingleton.lean + theorem Set.eq_empty_or_singleton_of_subsingleton + theorem Set.eq_empty_or_singleton_of_unique Modified Mathlib/Topology/Sets/CompactOpenCovered.lean 2026-02-06 16:14:31 09a8a42 feat: generalize mean value theorem of complex analysis (#34482) Add a generalized mean value theorem of complex analysis, computing the value of a function at arbitrary points of a disk as a circle average over suitably weighted functions. ESTIMATED CHANGES Modified Mathlib/Analysis/Complex/MeanValue.lean + theorem circleAverage_sub_sub_inv_smul_of_differentiable_on + theorem circleAverage_sub_sub_inv_smul_of_differentiable_on_off_countable 2026-02-06 16:14:27 0e1651d chore(Order/RelClasses): name arguments of recursors (#33905) Name the motive `motive` and name the minor premises something descriptive. ESTIMATED CHANGES Modified Mathlib/Order/RelClasses.lean +/- def IsWellFounded.fix +/- theorem IsWellFounded.fix_eq +/- theorem IsWellFounded.induction +/- def WellFoundedLT.fix +/- theorem WellFoundedLT.fix_eq 2026-02-06 16:14:23 a63dffe refactor(Topology/Irreducible): weaken assumptions of `preimage_mem_irreducibleComponents_of_isPreirreducible_fiber` (#33784) This PR weakens the surjectivity assumption of `preimage_mem_irreducibleComponents_of_isPreirreducible_fiber` to `(t ∩ Set.range f).Nonempty`. I also took the liberty of systematizing the file slightly, so that now there are 6 lemmas: preimage of (preirreducible / irreducible / irreducible component) assuming (preirreducible fibers / open embedding). ESTIMATED CHANGES Modified Mathlib/Topology/Irreducible.lean + theorem IsIrreducible.preimage + theorem IsIrreducible.preimage_of_isPreirreducible_fiber +/- theorem IsPreirreducible.preimage + theorem preimage_mem_irreducibleComponents 2026-02-06 15:35:09 d8011bb chore(Algebra/CharP/Two): fix accidental namespace (#34900) These lemmas were intended to be sectioned off, not put in a new namespace! ESTIMATED CHANGES Modified Mathlib/Algebra/CharP/Two.lean - theorem CharTwo.CommRing.sq_inj - theorem CharTwo.CommRing.sq_injective + theorem CharTwo.sq_inj + theorem CharTwo.sq_injective 2026-02-06 15:35:07 119164e chore(Tactic/CategoryTheory/CancelIso): use `to_dual` (#34791) This PR makes the new `cancelIso` simproc compatible with `to_dual`. ESTIMATED CHANGES Modified Mathlib/Tactic/CategoryTheory/CancelIso.lean 2026-02-06 15:35:05 12e4f5a feat(RingTheory): local structure of monogenic unramified algebras (#33903) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/RingTheory/LocalRing/ResidueField/Polynomial.lean + theorem Ideal.exists_mem_span_singleton_map_residueField_eq + theorem Polynomial.fiberEquivQuotient_tmul Modified Mathlib/RingTheory/Localization/AtPrime/Basic.lean + theorem Localization.localAlgHom_apply Modified Mathlib/RingTheory/TensorProduct/Basic.lean + theorem Algebra.TensorProduct.adjoin_one_tmul_image_eq_top Modified Mathlib/RingTheory/Unramified/Field.lean + theorem Algebra.IsUnramifiedAt.not_minpoly_sq_dvd Added Mathlib/RingTheory/Unramified/LocalStructure.lean + theorem Algebra.IsUnramifiedAt.exists_hasStandardEtaleSurjectionOn_of_exists_adjoin_singleton_eq_top + theorem HasStandardEtaleSurjectionOn.isStandardEtale + theorem HasStandardEtaleSurjectionOn.mk + theorem HasStandardEtaleSurjectionOn.of_dvd + def HasStandardEtaleSurjectionOn Modified Mathlib/RingTheory/Unramified/Locus.lean + theorem Algebra.IsUnramifiedAt.residueField 2026-02-06 15:35:03 02ddae9 feat(FieldTheory): real closed field (#33697) * Define real closed fields * Prove some very basic properties ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/FieldTheory/IsRealClosed/Basic.lean + theorem IsRealClosed.exists_eq_pow_of_isSquare + theorem IsRealClosed.exists_eq_pow_of_nonneg + theorem IsRealClosed.exists_eq_pow_of_odd + theorem IsRealClosed.exists_eq_zpow_of_isSquare + theorem IsRealClosed.exists_eq_zpow_of_nonneg + theorem IsRealClosed.exists_eq_zpow_of_odd + theorem IsRealClosed.isSquare_neg_of_not_isSquare + theorem IsRealClosed.nonneg_iff_isSquare + theorem IsRealClosed.of_linearOrderedField + theorem IsSquare.of_not_isSquare_neg 2026-02-06 14:32:53 3d2fa6b perf(gcongr): use `TreeMap` instead of `HashMap` (#34869) In environment extensions we typically want to use persistent data structures, so that the act of tagging something doesn't need to copy the whole data-structure. ESTIMATED CHANGES Modified Mathlib/Tactic/GCongr/Core.lean 2026-02-06 14:32:51 d225f3e chore(Tactic/Abel): improve `abel` tactic docstring (#34767) This PR (re)writes the docstring for the `abel` tactic, to consistently match the official style guide, to make sure they are complete while not getting too long. I moved the section on future work to the module docs (since this seems unlikely to be relevant any time soon), and having a big header disrupts the flow of the docstring. ESTIMATED CHANGES Modified Mathlib/Tactic/Abel.lean 2026-02-06 14:32:49 b4b6732 fix(Tactic/ApplyWith): disambiguate parse to improve error messages (#34721) This PR fixes that `apply` and `applyWith` have overlapping parses, which seems to cause bad error messages ("this declaration contains sorry" instead of "apply failed, type mismatch"). Zulip threads: * https://leanprover.zulipchat.com/#narrow/channel/113489-new-members/topic/Wall.20of.20warnings.20of.20.60unreachableTactic.60.2F.60unusedTactic.60 * https://leanprover.zulipchat.com/#narrow/channel/270676-lean4/topic/optConfig.20causes.20tactics.20to.20be.20ignored/with/571416569 ESTIMATED CHANGES Modified Mathlib/Tactic/ApplyWith.lean + def Mathlib.Tactic.getManyConfigItems + def Mathlib.Tactic.optConfigOf Modified MathlibTest/apply_with.lean + theorem MyProp.mk + def MyProp 2026-02-06 14:32:47 11399fb chore(Tactic/Cases): improve `cases'` and `induction'` docstrings (#34537) This PR (re)writes the docstring for the `cases'` and `induction'` tactics to consistently match the official style guide, to make sure they are complete while not getting too long. Although `cases'` and `induction'` are discouraged for use in Mathlib, a good docstring is still useful to have because we can then make the same improvements to the core Lean `cases` and `induction` docstrings. ESTIMATED CHANGES Modified Mathlib/Tactic/Cases.lean 2026-02-06 14:32:45 1c1b958 feat(Algebra/TensorProduct): equiv_pi_of_finite_basis, equiv_finsupp_of_basis (#34163) The `M`-algebra isomorphism `M ⊗[R] V ≃ₗ[M] (ι → M)` coming from the canonical `ι`-indexed basis of a finite free `R`-module `V`. From FLT. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/LinearAlgebra/TensorProduct/Free.lean 2026-02-06 13:36:05 df5a622 fix(rw??): make the `rpc` function public (#34474) This PR fixes the problem that `rw??` does not work inside of `modules`. This is because the relevant RPC method was marked `private`. This would have been caught automatically if I had used `@[server_rpc_method]` instead of `@[server_rpc_method_cancellable]`. I had no good reason to use `server_rpc_method_cancellable`, and it seems that it may get deprecated in the future, so this PR also replaces it with `server_rpc_method`. Although I hope to replace `rw??` with `#infoview_search` in the near future, it would be nice for `rw??` to still work in the meantime. ESTIMATED CHANGES Modified Mathlib/Tactic/Widget/LibraryRewrite.lean + def Mathlib.Tactic.LibraryRewrite.rpc 2026-02-06 13:36:03 c01b1d7 feat(gcongr): beef up `@[gcongr]` tag to accept `↔` & any argument order (#33025) This PR modifies the `@[gcongr]` tag to accept lemmas in more forms. - Iff-lemmas are now accepted, and are turned into an auxiliary lemma that is simply one of the two implications. - Implicational gcongr lemmas now don't need to have their arguments given in the "correct" order. An auxiliary lemma is generated if necessary. The auxiliary lemma generation is done analogously to `simp` which creates little lemmas `Foo._simp_1`., I also went throught all lemmas that have `GCongr.` in the name, and removed all but one of them (the remaining one is `GCongr.mem_of_le_of_mem`) A future PR may introduce the `gcongr at` tactic, which does `gcongr` but at hypotheses. This would be using the reverse direction of the iff lemmas tagged with `gcongr`. For this reason it is preferred to tag the iff lemma if possible. ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Subgroup/Defs.lean Modified Mathlib/Algebra/Module/Submodule/Basic.lean Modified Mathlib/Algebra/Order/BigOperators/Expect.lean - theorem GCongr.expect_le_expect Modified Mathlib/Algebra/Order/Pi.lean Modified Mathlib/Algebra/Order/Ring/Cast.lean +/- theorem Int.cast_lt Modified Mathlib/Algebra/Order/Ring/Ordering/Basic.lean Modified Mathlib/Analysis/SpecialFunctions/Arsinh.lean Modified Mathlib/Data/Finset/Defs.lean Modified Mathlib/Data/Finset/Image.lean Modified Mathlib/Data/Finset/Range.lean Modified Mathlib/Data/Finsupp/Order.lean +/- theorem Finsupp.single_le_single Modified Mathlib/Data/Int/Basic.lean Modified Mathlib/Data/NNReal/Defs.lean +/- theorem NNReal.coe_le_coe +/- theorem NNReal.coe_lt_coe Modified Mathlib/Data/Set/Insert.lean Modified Mathlib/Data/SetLike/Basic.lean +/- theorem SetLike.coe_ssubset_coe +/- theorem SetLike.coe_subset_coe Modified Mathlib/MeasureTheory/Function/SimpleFunc.lean +/- theorem MeasureTheory.SimpleFunc.coe_le_coe +/- theorem MeasureTheory.SimpleFunc.coe_lt_coe +/- theorem MeasureTheory.SimpleFunc.mk_le_mk +/- theorem MeasureTheory.SimpleFunc.mk_lt_mk Modified Mathlib/NumberTheory/LucasLehmer.lean Modified Mathlib/Order/Basic.lean Modified Mathlib/Order/Filter/Basic.lean - theorem Filter.GCongr.eventually_mono - theorem Filter.GCongr.frequently_mono Modified Mathlib/Order/Fin/Basic.lean Modified Mathlib/Order/Hom/Basic.lean Modified Mathlib/Order/Hom/Lattice.lean +/- theorem InfHom.mk_le_mk +/- theorem SupHom.mk_le_mk Modified Mathlib/Order/Interval/Finset/Basic.lean Modified Mathlib/Order/Interval/Set/Basic.lean Modified Mathlib/Order/Nucleus.lean +/- theorem Nucleus.mk_le_mk Modified Mathlib/Order/Sublocale.lean +/- theorem Nucleus.toSublocale_le_toSublocale +/- theorem Sublocale.mk_le_mk Modified Mathlib/RingTheory/FractionalIdeal/Basic.lean Modified Mathlib/SetTheory/ZFC/VonNeumann.lean Modified Mathlib/Tactic/GCongr/Core.lean +/- def Mathlib.Tactic.GCongr.makeGCongrLemma Modified Mathlib/Tactic/Translate/Core.lean Modified MathlibTest/GCongr/GCongr.lean - theorem GCongrTests.mono_measure - theorem GCongrTests.mono_outerMeasure + theorem mono_measure + theorem mono_outerMeasure 2026-02-06 12:50:08 9543d50 feat(Order): arithmetic of order types (#33420) Adding the multiplicative and additive monoids on order types, as well as a distributivity law. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Order/Types/Arithmetic.lean + def OrderType.eta + def OrderType.theta + theorem OrderType.type_lex_prod + theorem OrderType.type_lex_sum Modified Mathlib/Order/Types/Defs.lean + def OrderType.liftOn₂ + theorem OrderType.liftOn₂_type 2026-02-06 12:50:05 0431cf1 feat: add ComplexShape.EulerCharSigns for generalized Euler characteristic (#31121) Add `ComplexShape.EulerCharSigns` typeclass providing the alternating signs `χ : ι → ℤˣ` for Euler characteristic computations. Instances are provided for `up ℕ`, `down ℕ`, `up ℤ`, and `down ℤ`. The Euler characteristic definition (`eulerChar`) uses `finsum` to sum over all indices, with the `ComplexShape` as an explicit parameter. This allows working with arbitrary index types without requiring a `Fintype` instance, defaulting to 0 when the support is infinite. The `GradedObject` version is the primary definition, with `HomologicalComplex.eulerChar` and `HomologicalComplex.homologyEulerChar` as abbreviations that apply the graded object version to `C.X` and `C.homology` respectively. Split from #29713 as suggested by @joelriou. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/GroupWithZero/Indicator.lean + theorem Function.support_mul_of_ne_zero_left + theorem Function.support_mul_of_ne_zero_right Added Mathlib/Algebra/Homology/EulerCharacteristic.lean + theorem ComplexShape.χ_next + theorem ComplexShape.χ_prev + theorem GradedObject.eulerChar_eq_sum_finSet_of_finrankSupport_subset + def GradedObject.finrankSupport + theorem GradedObject.finrankSupport_subset_iff + theorem HomologicalComplex.eulerChar_eq_sum_finSet_of_finrankSupport_subset + theorem HomologicalComplex.homologyEulerChar_eq_sum_finSet_of_finrankSupport_subset Modified Mathlib/Algebra/Notation/Support.lean + theorem Function.mulSupport_eq_univ 2026-02-06 11:53:44 d50d677 chore(Order/Defs/Unbundled): deprecate `IsTrichotomous` in favor of core's `Std.Trichotomous` (#34349) ESTIMATED CHANGES Modified Mathlib/Data/DFinsupp/WellFounded.lean Modified Mathlib/Data/Finsupp/MonomialOrder/DegLex.lean Modified Mathlib/Data/Finsupp/WellFounded.lean Modified Mathlib/Data/List/Lex.lean Modified Mathlib/Data/List/Shortlex.lean Modified Mathlib/Data/Prod/Basic.lean Modified Mathlib/Data/Sigma/Lex.lean Modified Mathlib/Data/Sum/Order.lean Modified Mathlib/Order/Antichain.lean Modified Mathlib/Order/Concept.lean +/- theorem Concept.codisjoint_extent_intent Modified Mathlib/Order/Defs/Unbundled.lean +/- theorem extensional_of_trichotomous_of_irrefl +/- theorem trans_trichotomous_left +/- theorem trans_trichotomous_right +/- theorem trichotomous +/- theorem trichotomous_of Modified Mathlib/Order/Hom/Lex.lean Modified Mathlib/Order/InitialSeg.lean +/- theorem PrincipalSeg.ext +/- theorem PrincipalSeg.toRelEmbedding_inj +/- theorem PrincipalSeg.toRelEmbedding_injective Modified Mathlib/Order/Monotone/MonovaryOrder.lean Modified Mathlib/Order/PiLex.lean - theorem Pi.isTrichotomous_lex + theorem Pi.trichotomous_lex Modified Mathlib/Order/Preorder/Chain.lean +/- theorem isChain_of_trichotomous +/- theorem isChain_univ_iff Modified Mathlib/Order/RelClasses.lean - theorem InvImage.isTrichotomous + theorem InvImage.trichotomous - theorem IsTrichotomous.swap + theorem Std.Trichotomous.swap Modified Mathlib/Order/RelIso/Basic.lean +/- def RelEmbedding.ofMonotone +/- theorem RelEmbedding.ofMonotone_coe +/- theorem RelHom.injective_of_increasing +/- theorem injective_of_increasing Modified Mathlib/Order/RelIso/Set.lean Modified Mathlib/Order/WithBot.lean Modified Mathlib/SetTheory/Game/Basic.lean Modified Mathlib/SetTheory/ZFC/Ordinal.lean - theorem ZFSet.isOrdinal_iff_isTrichotomous + theorem ZFSet.isOrdinal_iff_trichotomous 2026-02-06 11:03:09 fe7afa6 feat(AlgebraicGeometry): replace `PreservesLocalization` with `Coequifibered` (#34701) ESTIMATED CHANGES Modified Mathlib/AlgebraicGeometry/Normalization.lean + theorem AlgebraicGeometry.Scheme.Hom.coequifibered_normalizationDiagramMap +/- def AlgebraicGeometry.Scheme.Hom.normalization + def AlgebraicGeometry.Scheme.Hom.normalizationGlueData - theorem AlgebraicGeometry.Scheme.Hom.preservesLocalization_normalizationDiagramMap Modified Mathlib/AlgebraicGeometry/RelativeGluing.lean + theorem AlgebraicGeometry.Scheme.Cover.RelativeGluingData.toBase_preimage_eq_opensRange_ι Modified Mathlib/AlgebraicGeometry/Sites/SmallAffineZariski.lean - theorem AlgebraicGeometry.Scheme.AffineZariskiSite.PreservesLocalization.opensRange_map - def AlgebraicGeometry.Scheme.AffineZariskiSite.PreservesLocalization + theorem AlgebraicGeometry.Scheme.AffineZariskiSite.coequifibered_iff_forall_isLocalizationAway + theorem AlgebraicGeometry.Scheme.AffineZariskiSite.opensRange_relativeGluingData_map + def AlgebraicGeometry.Scheme.AffineZariskiSite.relativeGluingData + def AlgebraicGeometry.Scheme.AffineZariskiSite.restrictIsoSpec - theorem AlgebraicGeometry.Scheme.preservesLocalization_toOpensFunctor Modified Mathlib/CategoryTheory/Limits/Shapes/Pullback/Equifibered.lean + theorem CategoryTheory.NatTrans.Coequifibered.rightOp + theorem CategoryTheory.NatTrans.Equifibered.rightOp 2026-02-06 11:03:07 b1b3d4a feat: `equivShrink α x ≤ equivShrink α y ↔ x ≤ y` (#34401) We also move theorems around for better variable management. ESTIMATED CHANGES Modified Mathlib/Order/Shrink.lean +/- theorem equivShrink_bot + theorem equivShrink_le_equivShrink + theorem equivShrink_lt_equivShrink +/- theorem equivShrink_symm_bot +/- theorem orderIsoShrink_apply +/- theorem orderIsoShrink_symm_apply 2026-02-06 11:03:04 612722e feat(Algebra/ModuleCat): `ModuleCat.uliftFunctor` (#31706) Add `ModuleCat.uliftFunctor` ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Category/ModuleCat/Ulift.lean + def ModuleCat.fullyFaithfulUliftFunctor + def ModuleCat.uliftFunctor + def ModuleCat.uliftFunctorForgetIso + theorem ModuleCat.uliftFunctor_map_exact 2026-02-06 10:36:57 ed78963 feat(AlgebraicTopology): the homotopy category of bifibrant objects (#34641) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/AlgebraicTopology/ModelCategory/Bifibrant.lean Added Mathlib/AlgebraicTopology/ModelCategory/BifibrantObjectHomotopy.lean + def HomotopicalAlgebra.BifibrantObject.HoCat.homEquivLeft + theorem HomotopicalAlgebra.BifibrantObject.HoCat.homEquivLeft_apply + theorem HomotopicalAlgebra.BifibrantObject.HoCat.homEquivLeft_symm_apply + def HomotopicalAlgebra.BifibrantObject.HoCat.homEquivRight + theorem HomotopicalAlgebra.BifibrantObject.HoCat.homEquivRight_apply + theorem HomotopicalAlgebra.BifibrantObject.HoCat.homEquivRight_symm_apply + def HomotopicalAlgebra.BifibrantObject.HoCat.ιCofibrantObject + theorem HomotopicalAlgebra.BifibrantObject.HoCat.ιCofibrantObject_map_toHoCat_map + theorem HomotopicalAlgebra.BifibrantObject.HoCat.ιCofibrantObject_obj + def HomotopicalAlgebra.BifibrantObject.HoCat.ιFibrantObject + theorem HomotopicalAlgebra.BifibrantObject.HoCat.ιFibrantObject_map_toHoCat_map + theorem HomotopicalAlgebra.BifibrantObject.HoCat.ιFibrantObject_obj + def HomotopicalAlgebra.BifibrantObject.homRel + theorem HomotopicalAlgebra.BifibrantObject.homRel_iff_leftHomotopyRel + theorem HomotopicalAlgebra.BifibrantObject.homRel_iff_rightHomotopyRel + theorem HomotopicalAlgebra.BifibrantObject.inverts_iff_factors + def HomotopicalAlgebra.BifibrantObject.strictUniversalPropertyFixedTargetToHoCat + def HomotopicalAlgebra.BifibrantObject.toHoCat + def HomotopicalAlgebra.BifibrantObject.toHoCatCompιCofibrantObject + def HomotopicalAlgebra.BifibrantObject.toHoCatCompιFibrantObject + theorem HomotopicalAlgebra.BifibrantObject.toHoCat_map_eq + theorem HomotopicalAlgebra.BifibrantObject.toHoCat_map_eq_iff + theorem HomotopicalAlgebra.BifibrantObject.toHoCat_obj_surjective 2026-02-06 10:36:55 407ffe8 feat(CategoryTheory/Abelian): mono/epi/iso modulo a Serre class are stable under (co)base change (#34498) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Abelian/SerreClass/MorphismProperty.lean + theorem CategoryTheory.ObjectProperty.epiModSerre_zero_iff + theorem CategoryTheory.ObjectProperty.isoModSerre_zero_iff + theorem CategoryTheory.ObjectProperty.monoModSerre_zero_iff 2026-02-06 10:36:53 f861881 feat(CategoryTheory/Triangulated): a triangulated subcategory is a pretriangulated category (#34373) If `P : ObjectProperty C` is a triangulated subcategory in a pretriangulated category `C`, we define a pretriangulated structure on `P.FullSubcategory`, and show it is triangulated if `C` is. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/EssentialImage.lean + theorem CategoryTheory.Functor.essImage_ι_comp Modified Mathlib/CategoryTheory/ObjectProperty/LimitsOfShape.lean + theorem CategoryTheory.ObjectProperty.prop_pi Modified Mathlib/CategoryTheory/Triangulated/Subcategory.lean + theorem CategoryTheory.ObjectProperty.inverseImage_trW_iff + theorem CategoryTheory.ObjectProperty.inverseImage_trW_isInverted + theorem CategoryTheory.ObjectProperty.trW_iff_of_distinguished' 2026-02-06 09:44:19 5d819b4 chore(Data/Finset/Card): golf `exists_eq_insert_iff` using grind interactive (#34478) This PR golfs a proof using `grind` interactive mode. This is a test case to see what is possible with `grind =>` which isn't necessarily possible with the default `grind`. The idea is that we can have a more high-level, readable proof, instead of a mess with funny terms an funny lemmas. Hence I would argue that the new proof is better, even if it is about the same length. ESTIMATED CHANGES Modified Mathlib/Data/Finset/Card.lean 2026-02-06 06:52:11 5458d20 chore(CI): generate lean-pr-testing token just before use (#34903) This PR moves the GitHub App token generation for posting comments on Lean PRs from the start of the build job to immediately before the comment posting step. GitHub App installation tokens expire after 1 hour. When the mathlib build takes longer than that (which it often does for `lean-pr-testing-NNNN` branches), the token is stale by the time the "Post comments" step runs, causing failures like: ``` jq: error (at :4): Cannot index string with string "name" ``` This error occurs because the expired token causes the GitHub API to return an error response instead of the expected labels array. Example failure: https://github.com/leanprover-community/mathlib4-nightly-testing/actions/runs/21728875282 🤖 Prepared with Claude Code ESTIMATED CHANGES Modified .github/workflows/build_template.yml 2026-02-06 00:17:58 22d1daa ci: Remove old debug step (#34896) This step is running unnecessarily for many minutes every day and uploading a lot of data, we should remove it ESTIMATED CHANGES Modified .github/workflows/build_template.yml 2026-02-05 22:39:22 b94b918 feat(CategoryTheory/Functor): Leibniz adjunctions (#34887) Formalizes the Leibniz (parameterized) adjunction `F.leibnizPushout ⊣₂ G.leibnizPullback` induced by a parameterized adjunction `F ⊣₂ G`. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Limits/Shapes/Pullback/PullbackObjObj.lean + def CategoryTheory.Functor.LeibnizAdjunction.adj + def CategoryTheory.Functor.leibnizAdjunction 2026-02-05 22:07:49 5a82203 feat(FieldTheory/Relrank): prove `relrank A B = 1 ↔ B ≤ A` (#34884) This PR adds missing API lemmas `relrank A B = 1 ↔ B ≤ A` in `Relrank.lean`. ESTIMATED CHANGES Modified Mathlib/Algebra/Field/Subfield/Basic.lean + theorem Subfield.algebraMap_ofSubfield Modified Mathlib/FieldTheory/Relrank.lean + theorem IntermediateField.relfinrank_eq_one_iff - theorem IntermediateField.relfinrank_eq_one_of_le + theorem IntermediateField.relrank_eq_one_iff - theorem IntermediateField.relrank_eq_one_of_le + theorem Subfield.relfinrank_eq_one_iff - theorem Subfield.relfinrank_eq_one_of_le + theorem Subfield.relrank_eq_one_iff - theorem Subfield.relrank_eq_one_of_le 2026-02-05 21:16:25 a16e0e9 feat(CategoryTheory/Sites): characterization of (pre)stacks for a precoverage (#33256) When a precoverage `J` satisfies slightly stronger axioms than those of pretopologies, then in order to verify that a pseudofunctor is a prestack (resp. a stack), it suffices to check that the `toDescentData` functors attached to presieves in `J` are fully faithful (resp. equivalences). ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Sites/Descent/DescentData.lean + theorem CategoryTheory.Pseudofunctor.IsStackFor.essSurj Modified Mathlib/CategoryTheory/Sites/Descent/Precoverage.lean + theorem CategoryTheory.Pseudofunctor.DescentData.full_pullFunctor + theorem CategoryTheory.Pseudofunctor.DescentData.isEquivalence_toDescentData_of_sieve_le + theorem CategoryTheory.Pseudofunctor.IsPrestack.of_precoverage + theorem CategoryTheory.Pseudofunctor.IsStack.of_precoverage + theorem CategoryTheory.Pseudofunctor.IsStackFor.of_le' + theorem CategoryTheory.Pseudofunctor.IsStackFor.of_le Modified Mathlib/CategoryTheory/Sites/Sieves.lean + theorem CategoryTheory.Presieve.functorPushforward_overForget + theorem CategoryTheory.Sieve.generate_mono 2026-02-05 20:42:21 0881756 feat: Hausdorff dimension of segments (#27069) This PR adds a lemma showing that the Hausdorff dimension of a non-degenerate segment in a real normed space is 1. ESTIMATED CHANGES Modified Mathlib/Analysis/Convex/Combination.lean + theorem vectorSpan_segment Modified Mathlib/Topology/MetricSpace/HausdorffDimension.lean + theorem Real.dimH_segment 2026-02-05 20:05:05 fe28605 doc(CategoryTheory/Adjunction): fix typos and update docs (#34520) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Adjunction/AdjointFunctorTheorems.lean Modified Mathlib/CategoryTheory/Adjunction/Basic.lean Modified Mathlib/CategoryTheory/Adjunction/Comma.lean Modified Mathlib/CategoryTheory/Adjunction/FullyFaithful.lean Modified Mathlib/CategoryTheory/Adjunction/Lifting/Left.lean Modified Mathlib/CategoryTheory/Adjunction/Lifting/Right.lean Modified Mathlib/CategoryTheory/Adjunction/Limits.lean Modified Mathlib/CategoryTheory/Adjunction/Mates.lean Modified Mathlib/CategoryTheory/Adjunction/PartialAdjoint.lean Modified Mathlib/CategoryTheory/Adjunction/Triple.lean 2026-02-05 20:05:03 a7467f1 feat(AlgebraicGeometry): sections of fibered products of flat schemes (#34017) ESTIMATED CHANGES Modified Mathlib/Algebra/Module/LinearMap/Polynomial.lean Modified Mathlib/AlgebraicGeometry/Morphisms/Flat.lean + theorem AlgebraicGeometry.isIso_pushoutSection_iff + theorem AlgebraicGeometry.isIso_pushoutSection_of_iSup_eq + theorem AlgebraicGeometry.isIso_pushoutSection_of_isAffineOpen + theorem AlgebraicGeometry.isIso_pushoutSection_of_isCompact_of_flat_right_of_ringHomFlat + theorem AlgebraicGeometry.isIso_pushoutSection_of_isQuasiSeparated_of_flat_left + theorem AlgebraicGeometry.isIso_pushoutSection_of_isQuasiSeparated_of_flat_right + theorem AlgebraicGeometry.mono_pushoutSection_of_iSup_eq + theorem AlgebraicGeometry.mono_pushoutSection_of_isCompact_of_flat_left + theorem AlgebraicGeometry.mono_pushoutSection_of_isCompact_of_flat_left_of_ringHomFlat + theorem AlgebraicGeometry.mono_pushoutSection_of_isCompact_of_flat_right + theorem AlgebraicGeometry.mono_pushoutSection_of_isCompact_of_flat_right_of_ringHomFlat Modified Mathlib/AlgebraicGeometry/Restrict.lean + theorem AlgebraicGeometry.Scheme.Hom.isPullback_resLE Modified Mathlib/AlgebraicGeometry/Scheme.lean Modified Mathlib/RingTheory/TensorProduct/Basic.lean + theorem Algebra.TensorProduct.ringHom_ext 2026-02-05 19:38:36 e4d6e16 feat: ContinuousAlgEquiv.toContinuousLinearEquiv (#34166) From FLT. ESTIMATED CHANGES Modified Mathlib/Topology/Algebra/Algebra/Equiv.lean + theorem ContinuousAlgEquiv.refl_toContinuousLinearEquiv + def ContinuousAlgEquiv.toContinuousLinearEquiv + theorem ContinuousAlgEquiv.toContinuousLinearEquiv_apply + theorem ContinuousAlgEquiv.toContinuousLinearEquiv_symm + theorem ContinuousAlgEquiv.toContinuousLinearEquiv_toLinearEquiv_eq + theorem ContinuousAlgEquiv.toContinuousLinearMap_toContinuousLinearEquiv_eq + theorem ContinuousAlgEquiv.trans_toContinuousLinearEquiv 2026-02-05 18:55:34 be72b83 feat(Algebra/Group/Subgroup/Pointwise): Add conj_smul_eq_of_mem, Move conj_smul_le_of_le and conj_smul_subgroupOf (#34304) Moved `conj_smul_le_of_le` and `conj_smul_subgroupOf` since they are lemmas regarding subgroups, and also because the added lemma `conj_smul_eq_of_mem` which uses `conj_smul_le_of_le` also depends on `subset_pointwise_smul_iff` which is in this Group section. ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Subgroup/Pointwise.lean + theorem Subgroup.conj_smul_eq_self_of_mem 2026-02-05 18:04:15 4b5dfe6 feat(NumberTheory/ModularForms/DedekindEta): Show logDeriv eta is E2 (#34217) We prove that up to a constant, the logarithmic derivative of the Dedekind eta functions is the Eisenstein series E2. This comes from work done for the Sphere Packing project. ESTIMATED CHANGES Modified Mathlib/Analysis/Calculus/LogDeriv.lean +/- theorem logDeriv_prod Modified Mathlib/Analysis/Calculus/LogDerivUniformlyOn.lean +/- theorem logDeriv_tprod_eq_tsum Modified Mathlib/Analysis/Complex/LocallyUniformLimit.lean Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Cotangent.lean Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Deriv.lean - theorem Complex.LogDeriv_exp + theorem Complex.logDeriv_exp - theorem Real.LogDeriv_exp + theorem Real.logDeriv_exp Modified Mathlib/NumberTheory/ModularForms/DedekindEta.lean + theorem ModularForm.differentiableAt_eta_tprod +/- theorem ModularForm.eta_ne_zero + theorem ModularForm.eta_tprod_ne_zero + theorem ModularForm.logDeriv_eta_eq_E2 + theorem ModularForm.logDeriv_qParam + theorem ModularForm.summable_logDeriv_one_sub_eta_q 2026-02-05 17:48:11 56b6140 feat: lemmas for RestrictedProduct.inclusion (#34161) From FLT. ESTIMATED CHANGES Modified Mathlib/Topology/Algebra/RestrictedProduct/Basic.lean + theorem RestrictedProduct.coe_comp_inclusion + theorem RestrictedProduct.coe_comp_structureMap + theorem RestrictedProduct.image_coe_preimage_inclusion_subset + theorem RestrictedProduct.inclusion_apply + theorem RestrictedProduct.structureMap_apply 2026-02-05 17:12:08 4349bc7 feat(RestrictedProduct/Basic): `RestrictedProduct.mulSingle` and additive version (#34782) ESTIMATED CHANGES Modified Mathlib/Topology/Algebra/RestrictedProduct/Basic.lean + theorem RestrictedProduct.coe_mulSingle_apply + theorem RestrictedProduct.comp_mulSingle + def RestrictedProduct.mulSingle + theorem RestrictedProduct.mulSingle_div + theorem RestrictedProduct.mulSingle_eq_of_ne' + theorem RestrictedProduct.mulSingle_eq_of_ne + theorem RestrictedProduct.mulSingle_eq_one_iff + theorem RestrictedProduct.mulSingle_inj + theorem RestrictedProduct.mulSingle_injective + theorem RestrictedProduct.mulSingle_inv + theorem RestrictedProduct.mulSingle_mul + theorem RestrictedProduct.mulSingle_ne_one_iff + theorem RestrictedProduct.mulSingle_one + theorem RestrictedProduct.mulSingle_pow + theorem RestrictedProduct.mulSingle_zpow + theorem RestrictedProduct.mul_single + theorem RestrictedProduct.single_mul 2026-02-05 15:01:19 b7a750a feat: set has cardinality one iff singleton (#28680) ESTIMATED CHANGES Modified Mathlib/SetTheory/Cardinal/Basic.lean - theorem Cardinal.mk_emptyCollection_iff + theorem Cardinal.mk_set_eq_one_iff + theorem Cardinal.mk_set_eq_zero_iff +/- theorem Cardinal.mk_set_ne_zero_iff 2026-02-05 14:45:39 5bad60a refactor(GroupTheory/IsSubnormal): to_additivize `IsSubnormal` (#34786) This PR to_additivizes the recent file `IsSubnormal`. ESTIMATED CHANGES Modified Mathlib/GroupTheory/IsSubnormal.lean + inductive AddSubgroup.IsSubnormal +/- theorem Subgroup.IsSubnormal.bot 2026-02-05 14:14:01 612d497 refactor(RingTheory/Localization/Algebra): golf Polynomial.isLocalization (#34842) ESTIMATED CHANGES Modified Mathlib/RingTheory/Localization/Algebra.lean 2026-02-05 12:41:04 5ef2469 feat(Probability/IdentDistrib): links between IdentDistrib and HasLaw (#34844) If two functions have the same law, they are identically distributed. ESTIMATED CHANGES Modified Mathlib/Probability/IdentDistrib.lean + theorem ProbabilityTheory.HasLaw.identDistrib + theorem ProbabilityTheory.IdentDistrib.hasLaw 2026-02-05 10:07:41 1626c4b chore(*): add `-- shake: keep-all` to all deprecated modules (#34864) Produced by ```sh git grep -l 'deprecated_module' Mathlib | xargs sed -e 's/^module$/module -- shake: keep-all/' -i git grep -l 'deprecated_module' Counterexamples | xargs sed -e 's/^module$/module -- shake: keep-all/' -i ``` then manually reverted on `Tactic/DeprecatedModule`. ESTIMATED CHANGES Modified Mathlib/Algebra/ArithmeticGeometric.lean Modified Mathlib/Algebra/GroupWithZero/Action/Faithful.lean Modified Mathlib/Algebra/GroupWithZero/Int.lean Modified Mathlib/Algebra/Lie/CartanMatrix.lean Modified Mathlib/Algebra/ModEq.lean Modified Mathlib/Algebra/NoZeroSMulDivisors/Prod.lean Modified Mathlib/Algebra/Order/Field/Defs.lean Modified Mathlib/Algebra/Order/Module/Algebra.lean Modified Mathlib/Algebra/Order/Module/OrderedSMul.lean Modified Mathlib/Algebra/Order/PartialSups.lean Modified Mathlib/Algebra/Polynomial/Degree/Definitions.lean Modified Mathlib/Algebra/Polynomial/Factors.lean Modified Mathlib/Algebra/QuadraticAlgebra.lean Modified Mathlib/AlgebraicTopology/SimplexCategory/Augmented.lean Modified Mathlib/Analysis/Calculus/TangentCone.lean Modified Mathlib/Analysis/Distribution/FourierSchwartz.lean Modified Mathlib/Analysis/Distribution/SchwartzSpace.lean Modified Mathlib/Analysis/InnerProductSpace/Harmonic/Analytic.lean Modified Mathlib/Analysis/InnerProductSpace/Projection.lean Modified Mathlib/Analysis/Matrix.lean Modified Mathlib/Analysis/Normed/Module/ENormedSpace.lean Modified Mathlib/Analysis/Normed/Order/Basic.lean Modified Mathlib/Analysis/NormedSpace/Alternating/Basic.lean Modified Mathlib/Analysis/NormedSpace/Alternating/Curry.lean Modified Mathlib/Analysis/NormedSpace/Alternating/Uncurry/Fin.lean Modified Mathlib/Analysis/NormedSpace/BallAction.lean Modified Mathlib/Analysis/NormedSpace/ConformalLinearMap.lean Modified Mathlib/Analysis/NormedSpace/Connected.lean Modified Mathlib/Analysis/NormedSpace/DualNumber.lean Modified Mathlib/Analysis/NormedSpace/ENormedSpace.lean Modified Mathlib/Analysis/NormedSpace/Extend.lean Modified Mathlib/Analysis/NormedSpace/Extr.lean Modified Mathlib/Analysis/NormedSpace/FunctionSeries.lean Modified Mathlib/Analysis/NormedSpace/HahnBanach/Extension.lean Modified Mathlib/Analysis/NormedSpace/HahnBanach/SeparatingDual.lean Modified Mathlib/Analysis/NormedSpace/HahnBanach/Separation.lean Modified Mathlib/Analysis/NormedSpace/HomeomorphBall.lean Modified Mathlib/Analysis/NormedSpace/IndicatorFunction.lean Modified Mathlib/Analysis/NormedSpace/Int.lean Modified Mathlib/Analysis/NormedSpace/MStructure.lean Modified Mathlib/Analysis/NormedSpace/Multilinear/Basic.lean Modified Mathlib/Analysis/NormedSpace/Multilinear/Curry.lean Modified Mathlib/Analysis/NormedSpace/MultipliableUniformlyOn.lean Modified Mathlib/Analysis/NormedSpace/Normalize.lean Modified Mathlib/Analysis/NormedSpace/OperatorNorm/Asymptotics.lean Modified Mathlib/Analysis/NormedSpace/OperatorNorm/Basic.lean Modified Mathlib/Analysis/NormedSpace/OperatorNorm/Bilinear.lean Modified Mathlib/Analysis/NormedSpace/OperatorNorm/Completeness.lean Modified Mathlib/Analysis/NormedSpace/OperatorNorm/Mul.lean Modified Mathlib/Analysis/NormedSpace/OperatorNorm/NNNorm.lean Modified Mathlib/Analysis/NormedSpace/OperatorNorm/NormedSpace.lean Modified Mathlib/Analysis/NormedSpace/OperatorNorm/Prod.lean Modified Mathlib/Analysis/NormedSpace/PiTensorProduct/InjectiveSeminorm.lean Modified Mathlib/Analysis/NormedSpace/PiTensorProduct/ProjectiveSeminorm.lean Modified Mathlib/Analysis/NormedSpace/Pointwise.lean Modified Mathlib/Analysis/NormedSpace/RCLike.lean Modified Mathlib/Analysis/NormedSpace/Real.lean Modified Mathlib/Analysis/NormedSpace/RieszLemma.lean Modified Mathlib/Analysis/NormedSpace/SphereNormEquiv.lean Modified Mathlib/Analysis/SpecialFunctions/ContinuousFunctionalCalculus/ExpLog.lean Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Chebyshev.lean Modified Mathlib/CategoryTheory/Adhesive.lean Modified Mathlib/CategoryTheory/Bicategory/Functor/Strict.lean Modified Mathlib/CategoryTheory/Bicategory/Strict.lean Modified Mathlib/CategoryTheory/Category/Grpd.lean Modified Mathlib/CategoryTheory/Closed/Cartesian.lean Modified Mathlib/CategoryTheory/Closed/Enrichment.lean Modified Mathlib/CategoryTheory/Closed/Functor.lean Modified Mathlib/CategoryTheory/Closed/FunctorCategory/Basic.lean Modified Mathlib/CategoryTheory/Closed/FunctorCategory/Complete.lean Modified Mathlib/CategoryTheory/Closed/FunctorCategory/Groupoid.lean Modified Mathlib/CategoryTheory/Closed/FunctorToTypes.lean Modified Mathlib/CategoryTheory/Closed/Ideal.lean Modified Mathlib/CategoryTheory/Closed/Monoidal.lean Modified Mathlib/CategoryTheory/Closed/Types.lean Modified Mathlib/CategoryTheory/Closed/Zero.lean Modified Mathlib/CategoryTheory/EffectiveEpi/RegularEpi.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Pullback/CommSq.lean Modified Mathlib/CategoryTheory/Limits/Types/Shapes.lean Modified Mathlib/CategoryTheory/Localization/Monoidal.lean Modified Mathlib/CategoryTheory/Monoidal/Limits.lean Modified Mathlib/CategoryTheory/Subpresheaf/Basic.lean Modified Mathlib/CategoryTheory/Subpresheaf/Equalizer.lean Modified Mathlib/CategoryTheory/Subpresheaf/Finite.lean Modified Mathlib/CategoryTheory/Subpresheaf/Image.lean Modified Mathlib/CategoryTheory/Subpresheaf/OfSection.lean Modified Mathlib/CategoryTheory/Subpresheaf/Sieves.lean Modified Mathlib/CategoryTheory/Subpresheaf/Subobject.lean Modified Mathlib/Combinatorics/Enumerative/Partition.lean Modified Mathlib/Combinatorics/SimpleGraph/Turan.lean Modified Mathlib/Combinatorics/SimpleGraph/Walk.lean Modified Mathlib/Computability/Primrec.lean Modified Mathlib/Data/Complex/Cardinality.lean Modified Mathlib/Data/Complex/Exponential.lean Modified Mathlib/Data/Complex/ExponentialBounds.lean Modified Mathlib/Data/Complex/FiniteDimensional.lean Modified Mathlib/Data/Complex/Norm.lean Modified Mathlib/Data/Complex/Order.lean Modified Mathlib/Data/Complex/Trigonometric.lean Modified Mathlib/Data/Nat/Choose/Mul.lean Modified Mathlib/Data/Nat/PowModTotient.lean Modified Mathlib/Data/Real/Cardinality.lean Modified Mathlib/Data/Real/Hyperreal.lean Modified Mathlib/Data/Real/Irrational.lean Modified Mathlib/Data/Real/Pi/Bounds.lean Modified Mathlib/Data/Real/Pi/Irrational.lean Modified Mathlib/Data/Real/Pi/Leibniz.lean Modified Mathlib/Data/Real/Pi/Wallis.lean Modified Mathlib/Data/Seq/Seq.lean Modified Mathlib/Data/Tree/RBMap.lean Modified Mathlib/Deprecated/Order.lean Modified Mathlib/Deprecated/RingHom.lean Modified Mathlib/Lean/Expr.lean Modified Mathlib/Lean/Expr/ReplaceRec.lean Modified Mathlib/Lean/Message.lean Modified Mathlib/LinearAlgebra/AffineSpace/ContinuousAffineEquiv.lean Modified Mathlib/LinearAlgebra/GeneralLinearGroup.lean Modified Mathlib/LinearAlgebra/Matrix/HermitianFunctionalCalculus.lean Modified Mathlib/LinearAlgebra/Matrix/LDL.lean Modified Mathlib/LinearAlgebra/PerfectPairing/Matrix.lean Modified Mathlib/LinearAlgebra/SModEq.lean Modified Mathlib/LinearAlgebra/SesquilinearForm.lean Modified Mathlib/NumberTheory/ArithmeticFunction.lean Modified Mathlib/NumberTheory/Cyclotomic/Embeddings.lean Modified Mathlib/NumberTheory/Cyclotomic/PID.lean Modified Mathlib/NumberTheory/Cyclotomic/Rat.lean Modified Mathlib/NumberTheory/Cyclotomic/Three.lean Modified Mathlib/NumberTheory/NumberField/Completion.lean Modified Mathlib/NumberTheory/TsumDivsorsAntidiagonal.lean Modified Mathlib/NumberTheory/VonMangoldt.lean Modified Mathlib/Probability/Independence/Kernel.lean Modified Mathlib/Probability/Integration.lean Modified Mathlib/RingTheory/Localization/AtPrime.lean Modified Mathlib/RingTheory/Valuation/IntegrallyClosed.lean Modified Mathlib/RingTheory/Valuation/ValuativeRel.lean Modified Mathlib/SetTheory/Game/Basic.lean Modified Mathlib/SetTheory/Game/Birthday.lean Modified Mathlib/SetTheory/Game/Domineering.lean Modified Mathlib/SetTheory/Game/Impartial.lean Modified Mathlib/SetTheory/Game/Nim.lean Modified Mathlib/SetTheory/Game/Ordinal.lean Modified Mathlib/SetTheory/Game/Short.lean Modified Mathlib/SetTheory/Game/State.lean Modified Mathlib/SetTheory/Nimber/Basic.lean Modified Mathlib/SetTheory/Nimber/Field.lean Modified Mathlib/SetTheory/Ordinal/NaturalOps.lean Modified Mathlib/SetTheory/PGame/Algebra.lean Modified Mathlib/SetTheory/PGame/Basic.lean Modified Mathlib/SetTheory/PGame/Order.lean Modified Mathlib/SetTheory/Surreal/Basic.lean Modified Mathlib/SetTheory/Surreal/Dyadic.lean Modified Mathlib/SetTheory/Surreal/Multiplication.lean Modified Mathlib/Std/Data/HashMap.lean Modified Mathlib/Tactic/GeneralizeProofs.lean Modified Mathlib/Tactic/Linter/CommandStart.lean Modified Mathlib/Tactic/Propose.lean Modified Mathlib/Topology/Algebra/Module/StrongDual.lean Modified Mathlib/Topology/Compactness/Exterior.lean Modified Mathlib/Topology/Compactness/HilbertCubeEmbedding.lean Modified Mathlib/Topology/Compactness/PseudometrizableLindelof.lean Modified Mathlib/Topology/Covering.lean Modified Mathlib/Topology/Exterior.lean Modified Mathlib/Topology/OpenPartialHomeomorph.lean Modified Mathlib/Topology/PartialHomeomorph.lean Modified Mathlib/Topology/Semicontinuous.lean 2026-02-05 07:38:48 b7a1849 chore(Calculus/FDeriv): review asymptotics lemmas (#34832) - Generalize some lemmas to the TVS setting. - Use `Topology.IsInducing` instead of `AntilipschitzWith` or `ContinuousLinearEquiv`. - Move the definition of `Asymptotics.IsEquivalent` to `Defs`. ESTIMATED CHANGES Modified Mathlib/Analysis/Asymptotics/AsymptoticEquivalent.lean - def Asymptotics.IsEquivalent Modified Mathlib/Analysis/Asymptotics/Defs.lean + def Asymptotics.IsEquivalent Modified Mathlib/Analysis/Asymptotics/TVS.lean Modified Mathlib/Analysis/Calculus/Deriv/Basic.lean + theorem HasDerivAtFilter.isBigO_sub_rev + theorem HasDerivAtFilter.isEquivalent_sub + theorem HasDerivAtFilter.isTheta_sub Modified Mathlib/Analysis/Calculus/FDeriv/Basic.lean +/- theorem Asymptotics.IsBigO.hasFDerivWithinAt + theorem DifferentiableAt.isBigOTVS_sub + theorem DifferentiableAt.isBigO_sub + theorem DifferentiableWithinAt.isBigOTVS_sub +/- theorem DifferentiableWithinAt.isBigO_sub + theorem HasFDerivAt.isBigOTVS_sub + theorem HasFDerivAt.isBigO_sub + theorem HasFDerivAtFilter.isBigOTVS_sub + theorem HasFDerivAtFilter.isEquivalent_sub + theorem HasFDerivAtFilter.isThetaTVS_sub + theorem HasFDerivAtFilter.isTheta_sub + theorem HasFDerivWithinAt.isBigOTVS_sub + theorem HasFDerivWithinAt.isBigO_sub + theorem HasStrictFDerivAt.isBigOTVS_sub + theorem HasStrictFDerivAt.isEquivalent_sub + theorem HasStrictFDerivAt.isThetaTVS_sub + theorem HasStrictFDerivAt.isTheta_sub Modified Mathlib/Analysis/Calculus/FDeriv/Const.lean Modified Mathlib/Analysis/Calculus/FDeriv/Equiv.lean Modified Mathlib/Analysis/SpecialFunctions/Choose.lean Modified Mathlib/Combinatorics/SimpleGraph/Extremal/TuranDensity.lean 2026-02-05 04:02:41 4e498b8 feat(to_dual): use the new `to_dual_cast` framework (#34042) This PR uses the new `to_dual_cast` features introduced in #32438 in various places. ESTIMATED CHANGES Modified Mathlib/Combinatorics/Quiver/Basic.lean Modified Mathlib/Order/Cover.lean - theorem WCovBy.of_le_of_le' Modified Mathlib/Order/GaloisConnection/Defs.lean - theorem GaloisConnection.exists_eq_l - theorem GaloisConnection.l_bot - theorem GaloisConnection.l_eq - theorem GaloisConnection.l_eq_bot - theorem GaloisConnection.l_u_bot - theorem GaloisConnection.l_u_l_eq_l' - theorem GaloisConnection.l_u_l_eq_l - theorem GaloisConnection.l_u_le - theorem GaloisConnection.l_u_le_trans - theorem GaloisConnection.l_unique - theorem GaloisConnection.le_u - theorem GaloisConnection.monotone_l Modified Mathlib/Order/Interval/Set/Defs.lean +/- theorem Set.Icc_def +/- theorem Set.Ico_def +/- theorem Set.Ioc_def +/- theorem Set.Ioo_def +/- theorem Set.mem_Icc +/- theorem Set.mem_Ico +/- theorem Set.mem_Iic +/- theorem Set.mem_Iio +/- theorem Set.mem_Ioc +/- theorem Set.mem_Ioo Modified Mathlib/Order/Monotone/Defs.lean Modified Mathlib/Tactic/Translate/ToDual.lean 2026-02-05 00:24:25 0fce69f chore(LinearAlgebra/Pi): generalize universe in `Function.ExtendByZero.linearMap` (#34835) ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/Pi.lean 2026-02-05 00:24:24 0a7aabb chore(FDeriv/Const): generalize to a TVS (#34833) Proofs about `fderiv`/`fderivWithin` were changed to avoid extra typeclass assumptions. Also replace one `simp only` with `simp`, since the default `simp` set works here. ESTIMATED CHANGES Modified Mathlib/Analysis/Calculus/FDeriv/Const.lean +/- theorem fderiv_const_apply +/- theorem fderiv_of_notMem_tsupport 2026-02-05 00:24:22 8c456ae feat: TotallyDisconnectedSpace (Additive/Multiplicative X) (#34816) ESTIMATED CHANGES Modified Mathlib/Topology/Connected/TotallyDisconnected.lean 2026-02-05 00:24:20 8247c9e feat(MeasureTheory): characterise when a measure is supported on a finset (#34374) ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Measure/Dirac.lean + theorem MeasureTheory.Measure.ae_eq_or_eq_iff_eq_dirac_add_dirac + theorem MeasureTheory.Measure.ae_eq_or_eq_iff_map_eq_dirac_add_dirac + theorem MeasureTheory.Measure.ae_mem_finset_iff + theorem MeasureTheory.Measure.ae_mem_finset_iff_map_eq_sum_dirac +/- theorem MeasureTheory.ae_dirac_iff Modified Mathlib/MeasureTheory/Measure/Restrict.lean +/- theorem MeasureTheory.ae_add_measure_iff + theorem MeasureTheory.ae_finsetSum_measure_iff 2026-02-04 23:34:26 ba07a5d refactor(Tactic/Ring): move most `ring` code into Common.lean (#34837) This is in preparation of #34734, which generalizes the code in `Ring/Common` for use in the coming `algebra` tactic. Moving the core of `ring` to `Common` makes the diff of said PR significantly more readable, as requested by @Vierkantor [here](https://github.com/leanprover-community/mathlib4/pull/34734#pullrequestreview-3750184880) Unfortunately a couple of the functions moved to `Ring/Common` will have to be moved back to `Ring/Basic` as they are specific to `ring`. These are namely the sections for `n/zsmul` and `evalCast`. They can't stay in `Ring/Basic` since `eval` depends on them. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Tactic.lean Modified Mathlib/Tactic/Ring/Basic.lean - def Mathlib.Tactic.Ring.Cache.int - def Mathlib.Tactic.Ring.Cache.nat - structure Mathlib.Tactic.Ring.Cache - def Mathlib.Tactic.Ring.ExBase.cast - def Mathlib.Tactic.Ring.ExBase.cmp - def Mathlib.Tactic.Ring.ExBase.eq - def Mathlib.Tactic.Ring.ExBase.toProd - inductive Mathlib.Tactic.Ring.ExBase - def Mathlib.Tactic.Ring.ExProd.cast - def Mathlib.Tactic.Ring.ExProd.cmp - def Mathlib.Tactic.Ring.ExProd.coeff - def Mathlib.Tactic.Ring.ExProd.eq - def Mathlib.Tactic.Ring.ExProd.evalInv - def Mathlib.Tactic.Ring.ExProd.mkNNRat - def Mathlib.Tactic.Ring.ExProd.mkNat - def Mathlib.Tactic.Ring.ExProd.mkNegNNRat - def Mathlib.Tactic.Ring.ExProd.mkNegNat - def Mathlib.Tactic.Ring.ExProd.toSum - inductive Mathlib.Tactic.Ring.ExProd - def Mathlib.Tactic.Ring.ExSum.cast - def Mathlib.Tactic.Ring.ExSum.cmp - def Mathlib.Tactic.Ring.ExSum.eq - def Mathlib.Tactic.Ring.ExSum.evalInv - inductive Mathlib.Tactic.Ring.ExSum - structure Mathlib.Tactic.Ring.ExtractCoeff - inductive Mathlib.Tactic.Ring.Overlap - structure Mathlib.Tactic.Ring.Result - theorem Mathlib.Tactic.Ring.add_congr - theorem Mathlib.Tactic.Ring.add_mul - theorem Mathlib.Tactic.Ring.add_overlap_pf - theorem Mathlib.Tactic.Ring.add_overlap_pf_zero - theorem Mathlib.Tactic.Ring.add_pf_add_gt - theorem Mathlib.Tactic.Ring.add_pf_add_lt - theorem Mathlib.Tactic.Ring.add_pf_add_overlap - theorem Mathlib.Tactic.Ring.add_pf_add_overlap_zero - theorem Mathlib.Tactic.Ring.add_pf_add_zero - theorem Mathlib.Tactic.Ring.add_pf_zero_add - theorem Mathlib.Tactic.Ring.add_pos_left - theorem Mathlib.Tactic.Ring.add_pos_right - theorem Mathlib.Tactic.Ring.atom_pf' - theorem Mathlib.Tactic.Ring.atom_pf - theorem Mathlib.Tactic.Ring.cast_neg - theorem Mathlib.Tactic.Ring.cast_nnrat - theorem Mathlib.Tactic.Ring.cast_pos - theorem Mathlib.Tactic.Ring.cast_rat - theorem Mathlib.Tactic.Ring.cast_zero - theorem Mathlib.Tactic.Ring.coeff_mul - theorem Mathlib.Tactic.Ring.coeff_one - theorem Mathlib.Tactic.Ring.const_pos - theorem Mathlib.Tactic.Ring.div_congr - theorem Mathlib.Tactic.Ring.div_pf - def Mathlib.Tactic.Ring.evalAddOverlap - def Mathlib.Tactic.Ring.evalAtom - def Mathlib.Tactic.Ring.evalCast - def Mathlib.Tactic.Ring.evalDiv - def Mathlib.Tactic.Ring.evalInvAtom - def Mathlib.Tactic.Ring.evalMul - def Mathlib.Tactic.Ring.evalMul₁ - def Mathlib.Tactic.Ring.evalNSMul - def Mathlib.Tactic.Ring.evalNeg - def Mathlib.Tactic.Ring.evalNegProd - def Mathlib.Tactic.Ring.evalPow - def Mathlib.Tactic.Ring.evalPowAtom - def Mathlib.Tactic.Ring.evalPowProd - def Mathlib.Tactic.Ring.evalPowProdAtom - def Mathlib.Tactic.Ring.evalSub - def Mathlib.Tactic.Ring.evalZSMul - def Mathlib.Tactic.Ring.extractCoeff - def Mathlib.Tactic.Ring.instCommSemiringInt - def Mathlib.Tactic.Ring.instCommSemiringNat - theorem Mathlib.Tactic.Ring.intCast_add - theorem Mathlib.Tactic.Ring.intCast_mul - theorem Mathlib.Tactic.Ring.intCast_negOfNat_Int - theorem Mathlib.Tactic.Ring.intCast_zero - theorem Mathlib.Tactic.Ring.inv_add - theorem Mathlib.Tactic.Ring.inv_congr - theorem Mathlib.Tactic.Ring.inv_mul - theorem Mathlib.Tactic.Ring.inv_single - def Mathlib.Tactic.Ring.isAtomOrDerivable - def Mathlib.Tactic.Ring.mkCache - theorem Mathlib.Tactic.Ring.mul_add - theorem Mathlib.Tactic.Ring.mul_congr - theorem Mathlib.Tactic.Ring.mul_exp_pos - theorem Mathlib.Tactic.Ring.mul_one - theorem Mathlib.Tactic.Ring.mul_pf_left - theorem Mathlib.Tactic.Ring.mul_pf_right - theorem Mathlib.Tactic.Ring.mul_pow - theorem Mathlib.Tactic.Ring.mul_pp_pf_overlap - theorem Mathlib.Tactic.Ring.mul_zero - theorem Mathlib.Tactic.Ring.natCast_add - theorem Mathlib.Tactic.Ring.natCast_int - theorem Mathlib.Tactic.Ring.natCast_mul - theorem Mathlib.Tactic.Ring.natCast_nat - theorem Mathlib.Tactic.Ring.natCast_zero - theorem Mathlib.Tactic.Ring.neg_add - theorem Mathlib.Tactic.Ring.neg_congr - theorem Mathlib.Tactic.Ring.neg_mul - theorem Mathlib.Tactic.Ring.neg_one_mul - theorem Mathlib.Tactic.Ring.neg_zero - theorem Mathlib.Tactic.Ring.nsmul_congr - theorem Mathlib.Tactic.Ring.one_mul - theorem Mathlib.Tactic.Ring.one_pow - theorem Mathlib.Tactic.Ring.pow_add - theorem Mathlib.Tactic.Ring.pow_atom - theorem Mathlib.Tactic.Ring.pow_bit0 - theorem Mathlib.Tactic.Ring.pow_bit1 - theorem Mathlib.Tactic.Ring.pow_congr - theorem Mathlib.Tactic.Ring.pow_nat - theorem Mathlib.Tactic.Ring.pow_one - theorem Mathlib.Tactic.Ring.pow_one_cast - theorem Mathlib.Tactic.Ring.pow_prod_atom - theorem Mathlib.Tactic.Ring.pow_zero - theorem Mathlib.Tactic.Ring.single_pow - theorem Mathlib.Tactic.Ring.smul_eq_cast - theorem Mathlib.Tactic.Ring.smul_eq_intCast - theorem Mathlib.Tactic.Ring.smul_int - theorem Mathlib.Tactic.Ring.smul_nat - theorem Mathlib.Tactic.Ring.sub_congr - theorem Mathlib.Tactic.Ring.sub_pf - def Mathlib.Tactic.Ring.sℕ - def Mathlib.Tactic.Ring.sℤ - theorem Mathlib.Tactic.Ring.toProd_pf - theorem Mathlib.Tactic.Ring.zero_mul - theorem Mathlib.Tactic.Ring.zero_pow - theorem Mathlib.Tactic.Ring.zsmul_congr Added Mathlib/Tactic/Ring/Common.lean + def Mathlib.Tactic.Ring.Cache.int + def Mathlib.Tactic.Ring.Cache.nat + structure Mathlib.Tactic.Ring.Cache + def Mathlib.Tactic.Ring.ExBase.cast + def Mathlib.Tactic.Ring.ExBase.cmp + def Mathlib.Tactic.Ring.ExBase.eq + def Mathlib.Tactic.Ring.ExBase.toProd + inductive Mathlib.Tactic.Ring.ExBase + def Mathlib.Tactic.Ring.ExProd.cast + def Mathlib.Tactic.Ring.ExProd.cmp + def Mathlib.Tactic.Ring.ExProd.coeff + def Mathlib.Tactic.Ring.ExProd.eq + def Mathlib.Tactic.Ring.ExProd.evalInv + def Mathlib.Tactic.Ring.ExProd.mkNNRat + def Mathlib.Tactic.Ring.ExProd.mkNat + def Mathlib.Tactic.Ring.ExProd.mkNegNNRat + def Mathlib.Tactic.Ring.ExProd.mkNegNat + def Mathlib.Tactic.Ring.ExProd.toSum + inductive Mathlib.Tactic.Ring.ExProd + def Mathlib.Tactic.Ring.ExSum.cast + def Mathlib.Tactic.Ring.ExSum.cmp + def Mathlib.Tactic.Ring.ExSum.eq + def Mathlib.Tactic.Ring.ExSum.evalInv + inductive Mathlib.Tactic.Ring.ExSum + structure Mathlib.Tactic.Ring.ExtractCoeff + inductive Mathlib.Tactic.Ring.Overlap + structure Mathlib.Tactic.Ring.Result + theorem Mathlib.Tactic.Ring.add_congr + theorem Mathlib.Tactic.Ring.add_mul + theorem Mathlib.Tactic.Ring.add_overlap_pf + theorem Mathlib.Tactic.Ring.add_overlap_pf_zero + theorem Mathlib.Tactic.Ring.add_pf_add_gt + theorem Mathlib.Tactic.Ring.add_pf_add_lt + theorem Mathlib.Tactic.Ring.add_pf_add_overlap + theorem Mathlib.Tactic.Ring.add_pf_add_overlap_zero + theorem Mathlib.Tactic.Ring.add_pf_add_zero + theorem Mathlib.Tactic.Ring.add_pf_zero_add + theorem Mathlib.Tactic.Ring.add_pos_left + theorem Mathlib.Tactic.Ring.add_pos_right + theorem Mathlib.Tactic.Ring.atom_pf' + theorem Mathlib.Tactic.Ring.atom_pf + theorem Mathlib.Tactic.Ring.cast_neg + theorem Mathlib.Tactic.Ring.cast_nnrat + theorem Mathlib.Tactic.Ring.cast_pos + theorem Mathlib.Tactic.Ring.cast_rat + theorem Mathlib.Tactic.Ring.cast_zero + theorem Mathlib.Tactic.Ring.coeff_mul + theorem Mathlib.Tactic.Ring.coeff_one + theorem Mathlib.Tactic.Ring.const_pos + theorem Mathlib.Tactic.Ring.div_congr + theorem Mathlib.Tactic.Ring.div_pf + def Mathlib.Tactic.Ring.evalAddOverlap + def Mathlib.Tactic.Ring.evalAtom + def Mathlib.Tactic.Ring.evalCast + def Mathlib.Tactic.Ring.evalDiv + def Mathlib.Tactic.Ring.evalInvAtom + def Mathlib.Tactic.Ring.evalMul + def Mathlib.Tactic.Ring.evalMul₁ + def Mathlib.Tactic.Ring.evalNSMul + def Mathlib.Tactic.Ring.evalNeg + def Mathlib.Tactic.Ring.evalNegProd + def Mathlib.Tactic.Ring.evalPow + def Mathlib.Tactic.Ring.evalPowAtom + def Mathlib.Tactic.Ring.evalPowProd + def Mathlib.Tactic.Ring.evalPowProdAtom + def Mathlib.Tactic.Ring.evalSub + def Mathlib.Tactic.Ring.evalZSMul + def Mathlib.Tactic.Ring.extractCoeff + def Mathlib.Tactic.Ring.instCommSemiringInt + def Mathlib.Tactic.Ring.instCommSemiringNat + theorem Mathlib.Tactic.Ring.intCast_add + theorem Mathlib.Tactic.Ring.intCast_mul + theorem Mathlib.Tactic.Ring.intCast_negOfNat_Int + theorem Mathlib.Tactic.Ring.intCast_zero + theorem Mathlib.Tactic.Ring.inv_add + theorem Mathlib.Tactic.Ring.inv_congr + theorem Mathlib.Tactic.Ring.inv_mul + theorem Mathlib.Tactic.Ring.inv_single + def Mathlib.Tactic.Ring.isAtomOrDerivable + def Mathlib.Tactic.Ring.mkCache + theorem Mathlib.Tactic.Ring.mul_add + theorem Mathlib.Tactic.Ring.mul_congr + theorem Mathlib.Tactic.Ring.mul_exp_pos + theorem Mathlib.Tactic.Ring.mul_one + theorem Mathlib.Tactic.Ring.mul_pf_left + theorem Mathlib.Tactic.Ring.mul_pf_right + theorem Mathlib.Tactic.Ring.mul_pow + theorem Mathlib.Tactic.Ring.mul_pp_pf_overlap + theorem Mathlib.Tactic.Ring.mul_zero + theorem Mathlib.Tactic.Ring.natCast_add + theorem Mathlib.Tactic.Ring.natCast_int + theorem Mathlib.Tactic.Ring.natCast_mul + theorem Mathlib.Tactic.Ring.natCast_nat + theorem Mathlib.Tactic.Ring.natCast_zero + theorem Mathlib.Tactic.Ring.neg_add + theorem Mathlib.Tactic.Ring.neg_congr + theorem Mathlib.Tactic.Ring.neg_mul + theorem Mathlib.Tactic.Ring.neg_one_mul + theorem Mathlib.Tactic.Ring.neg_zero + theorem Mathlib.Tactic.Ring.nsmul_congr + theorem Mathlib.Tactic.Ring.one_mul + theorem Mathlib.Tactic.Ring.one_pow + theorem Mathlib.Tactic.Ring.pow_add + theorem Mathlib.Tactic.Ring.pow_atom + theorem Mathlib.Tactic.Ring.pow_bit0 + theorem Mathlib.Tactic.Ring.pow_bit1 + theorem Mathlib.Tactic.Ring.pow_congr + theorem Mathlib.Tactic.Ring.pow_nat + theorem Mathlib.Tactic.Ring.pow_one + theorem Mathlib.Tactic.Ring.pow_one_cast + theorem Mathlib.Tactic.Ring.pow_prod_atom + theorem Mathlib.Tactic.Ring.pow_zero + theorem Mathlib.Tactic.Ring.single_pow + theorem Mathlib.Tactic.Ring.smul_eq_cast + theorem Mathlib.Tactic.Ring.smul_eq_intCast + theorem Mathlib.Tactic.Ring.smul_int + theorem Mathlib.Tactic.Ring.smul_nat + theorem Mathlib.Tactic.Ring.sub_congr + theorem Mathlib.Tactic.Ring.sub_pf + def Mathlib.Tactic.Ring.sℕ + def Mathlib.Tactic.Ring.sℤ + theorem Mathlib.Tactic.Ring.toProd_pf + theorem Mathlib.Tactic.Ring.zero_mul + theorem Mathlib.Tactic.Ring.zero_pow + theorem Mathlib.Tactic.Ring.zsmul_congr 2026-02-04 23:12:55 d60624c feat(FDeriv/Linear): generalize to a TVS (#34852) ESTIMATED CHANGES Modified Mathlib/Analysis/Calculus/FDeriv/Linear.lean +/- theorem IsBoundedLinearMap.differentiable +/- theorem IsBoundedLinearMap.differentiableAt +/- theorem IsBoundedLinearMap.differentiableOn +/- theorem IsBoundedLinearMap.differentiableWithinAt - theorem IsBoundedLinearMap.fderiv - theorem IsBoundedLinearMap.fderivWithin +/- theorem IsBoundedLinearMap.hasFDerivAt +/- theorem IsBoundedLinearMap.hasFDerivAtFilter +/- theorem IsBoundedLinearMap.hasFDerivWithinAt 2026-02-04 21:22:48 1321470 fix: rename `uniformlyContinuous` -> `uniformContinuous` in lemma names (#34775) ESTIMATED CHANGES Modified Mathlib/Analysis/Complex/Basic.lean + theorem Complex.uniformContinuous_im + theorem Complex.uniformContinuous_re - theorem Complex.uniformlyContinuous_im - theorem Complex.uniformlyContinuous_re Modified Mathlib/Analysis/Complex/ReImTopology.lean Modified Mathlib/MeasureTheory/Function/AbsolutelyContinuous.lean + theorem AbsolutelyContinuousOnInterval.uniformContinuousOn - theorem AbsolutelyContinuousOnInterval.uniformlyContinuousOn 2026-02-04 20:33:22 89d836a feat(CategoryTheory): Being equifibered is closed under limits (#34694) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/CategoryTheory/Comma/Over/Basic.lean + theorem CategoryTheory.Over.mkIdTerminal_from_left + theorem CategoryTheory.Under.mkIdInitial_to_right Modified Mathlib/CategoryTheory/Limits/Shapes/Pullback/Equifibered.lean + theorem CategoryTheory.NatTrans.Coequifibered.of_isIso +/- def CategoryTheory.NatTrans.Coequifibered - theorem CategoryTheory.NatTrans.Coequifibered_of_isIso + theorem CategoryTheory.NatTrans.Equifibered.of_isIso +/- def CategoryTheory.NatTrans.Equifibered + theorem CategoryTheory.NatTrans.coequifibered_op_iff + theorem CategoryTheory.NatTrans.coequifibered_unop_iff - theorem CategoryTheory.NatTrans.equifibered_of_isIso + theorem CategoryTheory.NatTrans.equifibered_op_iff + theorem CategoryTheory.NatTrans.equifibered_unop_iff Added Mathlib/CategoryTheory/Limits/Shapes/Pullback/EquifiberedLimits.lean Modified Mathlib/CategoryTheory/Limits/VanKampen.lean Modified Mathlib/CategoryTheory/ObjectProperty/ColimitsOfShape.lean + theorem CategoryTheory.ObjectProperty.isClosedUnderColimitsOfShape_inverseImage_iff Modified Mathlib/CategoryTheory/ObjectProperty/LimitsOfShape.lean + theorem CategoryTheory.ObjectProperty.isClosedUnderLimitsOfShape_inverseImage_iff 2026-02-04 18:23:38 30e22ac feat(Geometry/Diffeology): basics of diffeological spaces (#26484) Introduces diffeological spaces, smooth maps between them, the D-topology and the standard diffeology on finite-dimensional normed spaces. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Geometry/Diffeology/Basic.lean + structure DiffeologicalSpace.CorePlotsOn + def DiffeologicalSpace.ofCorePlotsOn + def DiffeologicalSpace.replaceDTopology + theorem DiffeologicalSpace.replaceDTopology_eq + theorem Diffeology.DSmooth.comp' + theorem Diffeology.DSmooth.comp + def Diffeology.DSmooth + def Diffeology.IsPlot + theorem Diffeology.dSmooth_const + theorem Diffeology.dSmooth_id' + theorem Diffeology.dSmooth_id + theorem Diffeology.dSmooth_iff + theorem Diffeology.dSmooth_iff_contDiff + theorem Diffeology.isOpen_iff_preimages_plots + theorem Diffeology.isPlot_const + theorem Diffeology.isPlot_id' + theorem Diffeology.isPlot_id + theorem Diffeology.isPlot_iff_contDiff + theorem Diffeology.isPlot_iff_dSmooth + theorem Diffeology.isPlot_reparam + theorem NormedSpace.isContDiffCompatible_iff_eq_toDiffeology + def NormedSpace.toDiffeology Modified docs/references.bib 2026-02-04 18:01:00 649a8ad feat(FDeriv/Congr): generalize to TVS (#34843) ESTIMATED CHANGES Modified Mathlib/Analysis/Calculus/FDeriv/Basic.lean + theorem DifferentiableWithinAt.of_insert + theorem HasFDerivWithinAt.of_insert +/- theorem HasFDerivWithinAt.of_notMem_closure +/- theorem HasFDerivWithinAt.of_not_accPt +/- theorem differentiableWithinAt_insert_self +/- theorem fderivWithin_zero_of_notMem_closure +/- theorem fderivWithin_zero_of_not_accPt + theorem hasFDerivWithinAt_diff_singleton_self + theorem hasFDerivWithinAt_insert_self Modified Mathlib/Analysis/Calculus/FDeriv/Congr.lean +/- theorem DifferentiableWithinAt.fderivWithin_congr_mono +/- theorem differentiableWithinAt_congr_set' + theorem differentiableWithinAt_congr_set_nhdsNE +/- theorem fderivWithin_congr_set' + theorem fderivWithin_congr_set_nhdsNE +/- theorem fderivWithin_eventually_congr_set' +/- theorem hasFDerivWithinAt_congr_set' + theorem hasFDerivWithinAt_congr_set_nhdsNE 2026-02-04 18:00:57 94fc7c5 chore(CI): use nightly-testing-green for tools in mathlib4-nightly-testing (#34824) This PR changes the "background" branch used to build tools (like `cache`) during CI on the `mathlib4-nightly-testing` repository from `nightly-testing` to `nightly-testing-green`. When `nightly-testing` is broken (e.g., due to a Lean nightly regression), all PR testing currently fails even for PRs that have nothing to do with the breakage, because we can't build the tools needed to fetch the cache. By using `nightly-testing-green` instead (which is only updated when CI passes), we ensure that we can always build tools from a known good state. 🤖 Prepared with Claude Code ESTIMATED CHANGES Modified .github/workflows/build_template.yml 2026-02-04 18:00:55 88202a9 fix(CI): add missing guards to nightly_detect_failure workflow (#34819) This PR fixes two bugs in `nightly_detect_failure.yml` that caused a [misleading warning message](https://leanprover.zulipchat.com/#narrow/channel/428973-nightly-testing/topic/Mathlib.20status.20updates/near/571796205) today. **What happened:** An unrelated auth failure (checking out `leanprover/lean4`) caused `if: failure()` to trigger the "lean-toolchain doesn't match pattern" warning, even though the actual failure had nothing to do with toolchain validation. The warning showed empty values because the `bump_version` step never ran. **Fixes:** 1. Add `if: steps.check_branch.outputs.result == 'false'` guards to `latest_bump_branch` and `bump_version` steps (matching the guards already present on later steps) 2. Change the warning step from `if: failure()` to `if: failure() && steps.bump_version.outcome == 'failure'` so it only fires for actual toolchain validation failures 🤖 Prepared with Claude Code ESTIMATED CHANGES Modified .github/workflows/nightly_detect_failure.yml 2026-02-04 17:03:57 a7f12e6 fix(Valuation/RankOne): replace abstract completion `RankOne` instance with concrete instances (#34834) #26872 fixes the definition of `Valuation.RankOne` so that its order embedding into `NNReal` is a map from the range of the value group (the type `MonoidWithZeroHom.ValueGroup₀`). This causes problems with the instance `instRankOneCompletion` (PR'd recently #33594) because the value group of the completion no longer type checks as the value group of the base ring. This abstract instance was only introduced to combine the proofs of `(v.valuation K).RankOne` and its completion `Valued.v.RankOne`. So we separate them here as concrete separate instances to help with the `RankOne` refactor. ESTIMATED CHANGES Modified Mathlib/NumberTheory/NumberField/FinitePlaces.lean Modified Mathlib/RingTheory/Valuation/RankOne.lean 2026-02-04 17:03:55 73694cf feat: clean up `Mul` -> `FaithfulSMul` instance structure (#34789) Given `MulOneClass A`, the induced smultiplications `SMul A A` and `SMul (MulOpposite A) A` are faithful. As a result, the same holds when given `RightCancelMonoid A`, `LeftCancelMonoid A` or `RightCancelMonoidWithZero A`. the instances representing the latter three facts are removed due to their redundancy. (Also for the `to_additive` versions when applicable.) Secondly, given `Mul A`, and given `IsRightCancelMul A` or `IsLeftCancelMul A`, we find that `SMul A A` or `SMul (MulOpposite A) A` is faithful, respectively. The instances representing these facts are added. ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Action/Faithful.lean + theorem LeftCancelMonoid.to_faithfulSMul_mulOpposite + theorem RightCancelMonoid.faithfulSMul Modified Mathlib/Algebra/GroupWithZero/Action/Faithful.lean + theorem IsRightCancelMulZero.faithfulSMul 2026-02-04 17:03:53 a97056e feat(Order): add `gcongr` to two basic Heyting algebra lemmas (#34787) ESTIMATED CHANGES Modified Mathlib/Order/Heyting/Basic.lean 2026-02-04 17:03:50 38f916d feat(GroupTheory/GroupAction): `MulDistribMulAction` of G⧸H on fixedPoints H A (#34587) ESTIMATED CHANGES Modified Mathlib/GroupTheory/GroupAction/OfQuotient.lean 2026-02-04 16:22:32 c70a3c4 feat(QuotientGroup): add `QuotientGroup.liftEquiv` (#34772) Construct a group isomorphism `G/N ≃* H` from a surjective group homomorphism `φ : G →* H` with `N = ker(φ)`. Golf some proofs using the new construction and also fix a typo in the docstring of `QuotientGroup.lift`. ESTIMATED CHANGES Modified Mathlib/FieldTheory/Galois/Basic.lean Modified Mathlib/FieldTheory/Galois/Infinite.lean Modified Mathlib/GroupTheory/GroupExtension/Basic.lean Modified Mathlib/GroupTheory/QuotientGroup/Defs.lean + theorem QuotientGroup.liftEquiv_coe + theorem QuotientGroup.liftEquiv_mk Modified Mathlib/GroupTheory/SpecificGroups/Cyclic.lean Modified Mathlib/RingTheory/Valuation/ValuationSubring.lean 2026-02-04 16:22:30 52f03f8 feat(RingTheory): flat + smooth fibers => smooth (#34222) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/RingTheory/Artinian/Instances.lean Modified Mathlib/RingTheory/Artinian/Module.lean Modified Mathlib/RingTheory/Artinian/Ring.lean Modified Mathlib/RingTheory/Etale/Field.lean + theorem Algebra.FormallyEtale.iff_formallyUnramified_of_field + theorem Algebra.FormallyEtale.of_formallyUnramified_of_field Modified Mathlib/RingTheory/Flat/Localization.lean Modified Mathlib/RingTheory/Jacobson/Artinian.lean Modified Mathlib/RingTheory/LocalRing/ResidueField/Fiber.lean Added Mathlib/RingTheory/Smooth/Fiber.lean + theorem Algebra.Etale.of_formallyUnramified_of_flat + theorem Algebra.FormallySmooth.of_formallySmooth_residueField_tensor + theorem Algebra.IsEtaleAt.of_isUnramifiedAt_of_flat + theorem Algebra.IsSmoothAt.of_formallySmooth_fiber + theorem Algebra.Smooth.of_formallySmooth_fiber Modified Mathlib/RingTheory/Unramified/Locus.lean + theorem Algebra.exists_formallyUnramified_of_isUnramifiedAt + theorem Algebra.exists_unramified_of_isUnramifiedAt 2026-02-04 15:37:23 1b82919 chore(UpperHalfPlane): redefine as a structure (#34597) Make `UpperHalfPlane` into a two-field structure rather than a type alias for a subtype, to reduce defeq abuse. ESTIMATED CHANGES Modified Mathlib/Analysis/Complex/IntegerCompl.lean + theorem Complex.add_intCast_mem_integerComplement - theorem Complex.integerComplement.add_coe_int_mem - theorem Complex.integerComplement.mem_iff + theorem Complex.mem_integerComplement_iff Modified Mathlib/Analysis/Complex/Periodic.lean + theorem Function.Periodic.continuous_qParam Modified Mathlib/Analysis/Complex/UpperHalfPlane/Basic.lean +/- def UpperHalfPlane.I + theorem UpperHalfPlane.coe_inj + theorem UpperHalfPlane.coe_injective - theorem UpperHalfPlane.ext' - theorem UpperHalfPlane.ext - theorem UpperHalfPlane.ext_iff' + theorem UpperHalfPlane.ext_re_im +/- theorem UpperHalfPlane.im_pos - def UpperHalfPlane.mk - theorem UpperHalfPlane.ne_int + theorem UpperHalfPlane.ne_intCast - theorem UpperHalfPlane.ne_nat + theorem UpperHalfPlane.ne_natCast + theorem UpperHalfPlane.ne_ofReal + theorem UpperHalfPlane.pos_real_smul_injective + theorem UpperHalfPlane.range_coe + structure UpperHalfPlane - def UpperHalfPlane Modified Mathlib/Analysis/Complex/UpperHalfPlane/FunctionsBoundedAtInfty.lean Modified Mathlib/Analysis/Complex/UpperHalfPlane/Manifold.lean Modified Mathlib/Analysis/Complex/UpperHalfPlane/Metric.lean +/- theorem UpperHalfPlane.center_zero Modified Mathlib/Analysis/Complex/UpperHalfPlane/MoebiusAction.lean Modified Mathlib/Analysis/Complex/UpperHalfPlane/Topology.lean + theorem Continuous.upperHalfPlaneMk Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Cotangent.lean Modified Mathlib/MeasureTheory/Function/Jacobian.lean Modified Mathlib/NumberTheory/Modular.lean Modified Mathlib/NumberTheory/ModularForms/Basic.lean Modified Mathlib/NumberTheory/ModularForms/Bounds.lean Modified Mathlib/NumberTheory/ModularForms/EisensteinSeries/E2/Summable.lean Modified Mathlib/NumberTheory/ModularForms/EisensteinSeries/IsBoundedAtImInfty.lean Modified Mathlib/NumberTheory/ModularForms/EisensteinSeries/QExpansion.lean Modified Mathlib/NumberTheory/ModularForms/EisensteinSeries/Summable.lean Modified Mathlib/NumberTheory/ModularForms/EisensteinSeries/UniformConvergence.lean Modified Mathlib/NumberTheory/ModularForms/JacobiTheta/OneVariable.lean Modified Mathlib/NumberTheory/ModularForms/LevelOne.lean Modified Mathlib/NumberTheory/ModularForms/QExpansion.lean 2026-02-04 14:37:53 58f4dfc feat: `differentiable_of_subsingleton` (#34831) and move a lemma to a better location. From the path towards immersions, submanifolds and the regular value theorem. ESTIMATED CHANGES Modified Mathlib/Analysis/Calculus/FDeriv/Basic.lean + theorem differentiableOn_empty Modified Mathlib/Analysis/Calculus/FDeriv/Const.lean - theorem differentiableOn_empty + theorem differentiable_of_subsingleton + theorem hasFDerivWithinAt_of_subsingleton 2026-02-04 14:37:48 adc580b chore(Data/Set/Finite): rename to root namespace (#34790) These theorems have no connection with `Set`. ESTIMATED CHANGES Modified Mathlib/Data/Set/Finite/Lattice.lean - theorem Set.iInf_iSup_of_antitone - theorem Set.iInf_iSup_of_monotone - theorem Set.iSup_iInf_of_antitone - theorem Set.iSup_iInf_of_monotone + theorem iInf_iSup_of_antitone + theorem iInf_iSup_of_monotone + theorem iSup_iInf_of_antitone + theorem iSup_iInf_of_monotone 2026-02-04 14:37:44 2fe8173 feat(Order): distributivity of `himp` `sdiff` over `iSup` `iInf` (#34781) ESTIMATED CHANGES Modified Mathlib/Order/CompleteBooleanAlgebra.lean + theorem Order.Frame.MinimalAxioms.Order.Coframe.MinimalAxioms.CompleteDistribLattice.MinimalAxioms.CompletelyDistribLattice.MinimalAxioms.himp_iInf_eq + theorem Order.Frame.MinimalAxioms.Order.Coframe.MinimalAxioms.CompleteDistribLattice.MinimalAxioms.CompletelyDistribLattice.MinimalAxioms.iSup_himp_eq + theorem Order.Frame.MinimalAxioms.Order.Coframe.MinimalAxioms.CompleteDistribLattice.MinimalAxioms.CompletelyDistribLattice.MinimalAxioms.iSup_sdiff_eq + theorem Order.Frame.MinimalAxioms.Order.Coframe.MinimalAxioms.CompleteDistribLattice.MinimalAxioms.CompletelyDistribLattice.MinimalAxioms.sdiff_iSup_eq 2026-02-04 14:37:41 3c5419f doc: `recommended_spelling` for `+ᵥ` and `-ᵥ` (#34672) ESTIMATED CHANGES Modified Mathlib/Algebra/Notation/Defs.lean 2026-02-04 13:40:18 f8ec307 feat(Order/Monotone/Basic): `MonotoneOn` + `InjOn` implies `StrictMonoOn` (#34668) This matches the API for the variants without "on": - (already exists) `StrictMonoOn → InjOn` for `[LinearOrder α] [Preorder β]` - `MonotoneOn → InjOn → StrictMonoOn` for `[Preorder α] [PartialOrder β]` - `MonotoneOn → (StrictMonoOn ↔ InjOn)` for `[LinearOrder α] [PartialOrder β]` ESTIMATED CHANGES Modified Mathlib/Order/Monotone/Basic.lean + theorem AntitoneOn.strictAntiOn_of_injOn + theorem AntitoneOn.strictAnti_iff_injOn + theorem MonotoneOn.strictMonoOn_iff_injOn + theorem MonotoneOn.strictMonoOn_of_injOn 2026-02-04 13:24:25 6f0b6d9 feat(Analysis/Real/Hyperreal): more lemmas on `Tendsto` (#33644) I've taken care to neither state or prove these using the various specialized predicates for `Hyperreal`, such as `Infinitesimal`, `Infinite`, `IsSt`. These will be deprecated in a followup PR in favor of reasoning with `ArchimedeanClass.mk` and `ArchimedeanClass.stdPart`. ESTIMATED CHANGES Modified Mathlib/Analysis/Real/Hyperreal.lean + theorem Hyperreal.archimedeanClassMk_neg_of_tendsto_atBot + theorem Hyperreal.archimedeanClassMk_neg_of_tendsto_atTop + theorem Hyperreal.archimedeanClassMk_nonneg_of_tendsto + theorem Hyperreal.archimedeanClassMk_pos_of_tendsto + theorem Hyperreal.lt_of_tendsto_atBot + theorem Hyperreal.lt_of_tendsto_atTop + theorem Hyperreal.ofSeq_le_ofSeq + theorem Hyperreal.stdPart_of_tendsto + theorem Hyperreal.tendsto_atBot_iff + theorem Hyperreal.tendsto_atTop_iff + theorem Hyperreal.tendsto_iff_forall + theorem Hyperreal.tendsto_ofSeq 2026-02-04 10:57:51 6f67232 refactor(GroupTheory/MonoidLocalization): split long file (#34811) Shorten the long file `MonoidLocalization.Basic` by splitting off a chunk of theory about mapping properties of localization (extending maps out of M to localizations of M under suitable conditions) into a new file `MonoidLocalization.Maps`. This shortens the `Basic` file from 1500 lines to 900. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/GroupTheory/MonoidLocalization/Away.lean Modified Mathlib/GroupTheory/MonoidLocalization/Basic.lean - theorem Localization.mulEquivOfQuotient_apply - theorem Localization.mulEquivOfQuotient_mk' - theorem Localization.mulEquivOfQuotient_mk - theorem Localization.mulEquivOfQuotient_monoidOf - theorem Localization.mulEquivOfQuotient_symm_mk' - theorem Localization.mulEquivOfQuotient_symm_mk - theorem Localization.mulEquivOfQuotient_symm_monoidOf - theorem Submonoid.LocalizationMap.comp_eq_of_eq - theorem Submonoid.LocalizationMap.eq_of_eq - theorem Submonoid.LocalizationMap.lift_apply - theorem Submonoid.LocalizationMap.lift_comp - theorem Submonoid.LocalizationMap.lift_comp_lift - theorem Submonoid.LocalizationMap.lift_comp_lift_eq - theorem Submonoid.LocalizationMap.lift_eq - theorem Submonoid.LocalizationMap.lift_eq_iff - theorem Submonoid.LocalizationMap.lift_id - theorem Submonoid.LocalizationMap.lift_injective_iff - theorem Submonoid.LocalizationMap.lift_left_inverse - theorem Submonoid.LocalizationMap.lift_localizationMap_mk' - theorem Submonoid.LocalizationMap.lift_mk' - theorem Submonoid.LocalizationMap.lift_mk'_spec - theorem Submonoid.LocalizationMap.lift_mul_left - theorem Submonoid.LocalizationMap.lift_mul_right - theorem Submonoid.LocalizationMap.lift_of_comp - theorem Submonoid.LocalizationMap.lift_spec - theorem Submonoid.LocalizationMap.lift_spec_mul - theorem Submonoid.LocalizationMap.lift_surjective_iff - theorem Submonoid.LocalizationMap.lift_unique - theorem Submonoid.LocalizationMap.map_comp - theorem Submonoid.LocalizationMap.map_comp_map - theorem Submonoid.LocalizationMap.map_eq - theorem Submonoid.LocalizationMap.map_id - theorem Submonoid.LocalizationMap.map_injective_of_injective - theorem Submonoid.LocalizationMap.map_injective_of_surjOn_or_injective - theorem Submonoid.LocalizationMap.map_map - theorem Submonoid.LocalizationMap.map_mk' - theorem Submonoid.LocalizationMap.map_mul_left - theorem Submonoid.LocalizationMap.map_mul_right - theorem Submonoid.LocalizationMap.map_spec - theorem Submonoid.LocalizationMap.map_surjective_of_surjOn - theorem Submonoid.LocalizationMap.map_surjective_of_surjective - theorem Submonoid.LocalizationMap.mulEquivOfLocalizations_apply - theorem Submonoid.LocalizationMap.mulEquivOfLocalizations_left_inv - theorem Submonoid.LocalizationMap.mulEquivOfLocalizations_left_inv_apply - theorem Submonoid.LocalizationMap.mulEquivOfLocalizations_right_inv - theorem Submonoid.LocalizationMap.mulEquivOfLocalizations_right_inv_apply - theorem Submonoid.LocalizationMap.mulEquivOfLocalizations_symm_apply - theorem Submonoid.LocalizationMap.mulEquivOfLocalizations_symm_eq_mulEquivOfLocalizations - theorem Submonoid.LocalizationMap.mulEquivOfMulEquiv_eq - theorem Submonoid.LocalizationMap.mulEquivOfMulEquiv_eq_map - theorem Submonoid.LocalizationMap.mulEquivOfMulEquiv_eq_map_apply - theorem Submonoid.LocalizationMap.mulEquivOfMulEquiv_mk' - def Submonoid.LocalizationMap.ofMulEquivOfDom - theorem Submonoid.LocalizationMap.ofMulEquivOfDom_apply - theorem Submonoid.LocalizationMap.ofMulEquivOfDom_comp - theorem Submonoid.LocalizationMap.ofMulEquivOfDom_comp_symm - theorem Submonoid.LocalizationMap.ofMulEquivOfDom_eq - theorem Submonoid.LocalizationMap.ofMulEquivOfDom_id - def Submonoid.LocalizationMap.ofMulEquivOfLocalizations - theorem Submonoid.LocalizationMap.ofMulEquivOfLocalizations_apply - theorem Submonoid.LocalizationMap.ofMulEquivOfLocalizations_comp - theorem Submonoid.LocalizationMap.ofMulEquivOfLocalizations_eq - theorem Submonoid.LocalizationMap.ofMulEquivOfLocalizations_eq_iff_eq - theorem Submonoid.LocalizationMap.ofMulEquivOfLocalizations_id - theorem Submonoid.LocalizationMap.of_mulEquivOfMulEquiv - theorem Submonoid.LocalizationMap.of_mulEquivOfMulEquiv_apply - theorem Submonoid.LocalizationMap.symm_comp_ofMulEquivOfLocalizations_apply' - theorem Submonoid.LocalizationMap.symm_comp_ofMulEquivOfLocalizations_apply Modified Mathlib/GroupTheory/MonoidLocalization/DivPairs.lean Modified Mathlib/GroupTheory/MonoidLocalization/GrothendieckGroup.lean Added Mathlib/GroupTheory/MonoidLocalization/Maps.lean + theorem Localization.mulEquivOfQuotient_apply + theorem Localization.mulEquivOfQuotient_mk' + theorem Localization.mulEquivOfQuotient_mk + theorem Localization.mulEquivOfQuotient_monoidOf + theorem Localization.mulEquivOfQuotient_symm_mk' + theorem Localization.mulEquivOfQuotient_symm_mk + theorem Localization.mulEquivOfQuotient_symm_monoidOf + theorem Submonoid.LocalizationMap.comp_eq_of_eq + theorem Submonoid.LocalizationMap.eq_of_eq + theorem Submonoid.LocalizationMap.lift_apply + theorem Submonoid.LocalizationMap.lift_comp + theorem Submonoid.LocalizationMap.lift_comp_lift + theorem Submonoid.LocalizationMap.lift_comp_lift_eq + theorem Submonoid.LocalizationMap.lift_eq + theorem Submonoid.LocalizationMap.lift_eq_iff + theorem Submonoid.LocalizationMap.lift_id + theorem Submonoid.LocalizationMap.lift_injective_iff + theorem Submonoid.LocalizationMap.lift_left_inverse + theorem Submonoid.LocalizationMap.lift_localizationMap_mk' + theorem Submonoid.LocalizationMap.lift_mk' + theorem Submonoid.LocalizationMap.lift_mk'_spec + theorem Submonoid.LocalizationMap.lift_mul_left + theorem Submonoid.LocalizationMap.lift_mul_right + theorem Submonoid.LocalizationMap.lift_of_comp + theorem Submonoid.LocalizationMap.lift_spec + theorem Submonoid.LocalizationMap.lift_spec_mul + theorem Submonoid.LocalizationMap.lift_surjective_iff + theorem Submonoid.LocalizationMap.lift_unique + theorem Submonoid.LocalizationMap.map_comp + theorem Submonoid.LocalizationMap.map_comp_map + theorem Submonoid.LocalizationMap.map_eq + theorem Submonoid.LocalizationMap.map_id + theorem Submonoid.LocalizationMap.map_injective_of_injective + theorem Submonoid.LocalizationMap.map_injective_of_surjOn_or_injective + theorem Submonoid.LocalizationMap.map_map + theorem Submonoid.LocalizationMap.map_mk' + theorem Submonoid.LocalizationMap.map_mul_left + theorem Submonoid.LocalizationMap.map_mul_right + theorem Submonoid.LocalizationMap.map_spec + theorem Submonoid.LocalizationMap.map_surjective_of_surjOn + theorem Submonoid.LocalizationMap.map_surjective_of_surjective + theorem Submonoid.LocalizationMap.mulEquivOfLocalizations_apply + theorem Submonoid.LocalizationMap.mulEquivOfLocalizations_left_inv + theorem Submonoid.LocalizationMap.mulEquivOfLocalizations_left_inv_apply + theorem Submonoid.LocalizationMap.mulEquivOfLocalizations_right_inv + theorem Submonoid.LocalizationMap.mulEquivOfLocalizations_right_inv_apply + theorem Submonoid.LocalizationMap.mulEquivOfLocalizations_symm_apply + theorem Submonoid.LocalizationMap.mulEquivOfLocalizations_symm_eq_mulEquivOfLocalizations + theorem Submonoid.LocalizationMap.mulEquivOfMulEquiv_eq + theorem Submonoid.LocalizationMap.mulEquivOfMulEquiv_eq_map + theorem Submonoid.LocalizationMap.mulEquivOfMulEquiv_eq_map_apply + theorem Submonoid.LocalizationMap.mulEquivOfMulEquiv_mk' + def Submonoid.LocalizationMap.ofMulEquivOfDom + theorem Submonoid.LocalizationMap.ofMulEquivOfDom_apply + theorem Submonoid.LocalizationMap.ofMulEquivOfDom_comp + theorem Submonoid.LocalizationMap.ofMulEquivOfDom_comp_symm + theorem Submonoid.LocalizationMap.ofMulEquivOfDom_eq + theorem Submonoid.LocalizationMap.ofMulEquivOfDom_id + def Submonoid.LocalizationMap.ofMulEquivOfLocalizations + theorem Submonoid.LocalizationMap.ofMulEquivOfLocalizations_apply + theorem Submonoid.LocalizationMap.ofMulEquivOfLocalizations_comp + theorem Submonoid.LocalizationMap.ofMulEquivOfLocalizations_eq + theorem Submonoid.LocalizationMap.ofMulEquivOfLocalizations_eq_iff_eq + theorem Submonoid.LocalizationMap.ofMulEquivOfLocalizations_id + theorem Submonoid.LocalizationMap.of_mulEquivOfMulEquiv + theorem Submonoid.LocalizationMap.of_mulEquivOfMulEquiv_apply + theorem Submonoid.LocalizationMap.symm_comp_ofMulEquivOfLocalizations_apply' + theorem Submonoid.LocalizationMap.symm_comp_ofMulEquivOfLocalizations_apply Modified Mathlib/GroupTheory/MonoidLocalization/MonoidWithZero.lean 2026-02-04 09:11:48 a6fea3c feat: extend an additive content to a vector measure under a domination condition (#34654) Used in #34055 ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/MeasureTheory/VectorMeasure/AddContent.lean + theorem MeasureTheory.VectorMeasure.exists_extension_of_isSetRing_of_le_measure_of_dense + theorem MeasureTheory.VectorMeasure.exists_extension_of_isSetSemiring_of_le_measure_of_dense + theorem MeasureTheory.VectorMeasure.exists_extension_of_isSetSemiring_of_le_measure_of_generateFrom + def MeasureTheory.VectorMeasure.of_additive_of_le_measure 2026-02-04 08:49:14 428a619 refactor(MeasureTheory/Function/LpSeminorm): split long file (#34813) Shorten `LpSeminorm/Basic.lean` from 1500 lines to 980. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/MeasureTheory/Function/LpSeminorm/Basic.lean - theorem MeasureTheory.AEEqFun.eLpNorm_star - theorem MeasureTheory.MemLp.const_mul' - theorem MeasureTheory.MemLp.const_mul - theorem MeasureTheory.MemLp.const_smul' - theorem MeasureTheory.MemLp.const_smul - theorem MeasureTheory.MemLp.exists_eLpNorm_indicator_compl_lt - theorem MeasureTheory.MemLp.im - theorem MeasureTheory.MemLp.indicator - theorem MeasureTheory.MemLp.mul_const - theorem MeasureTheory.MemLp.of_enorm_le_mul - theorem MeasureTheory.MemLp.of_le_mul' - theorem MeasureTheory.MemLp.of_le_mul - theorem MeasureTheory.MemLp.of_nnnorm_le_mul - theorem MeasureTheory.MemLp.re - theorem MeasureTheory.eLpNorm'_const_smul - theorem MeasureTheory.eLpNorm'_const_smul_le' - theorem MeasureTheory.eLpNorm'_const_smul_le - theorem MeasureTheory.eLpNorm'_le_mul_eLpNorm'_of_ae_le_mul - theorem MeasureTheory.eLpNorm'_le_nnreal_smul_eLpNorm'_of_ae_le_mul' - theorem MeasureTheory.eLpNorm'_le_nnreal_smul_eLpNorm'_of_ae_le_mul - theorem MeasureTheory.eLpNormEssSup_const_smul - theorem MeasureTheory.eLpNormEssSup_const_smul_le' - theorem MeasureTheory.eLpNormEssSup_const_smul_le - theorem MeasureTheory.eLpNormEssSup_indicator_const_eq - theorem MeasureTheory.eLpNormEssSup_indicator_const_le - theorem MeasureTheory.eLpNormEssSup_indicator_eq_eLpNormEssSup_restrict - theorem MeasureTheory.eLpNormEssSup_indicator_le - theorem MeasureTheory.eLpNormEssSup_le_nnreal_smul_eLpNormEssSup_of_ae_le_mul' - theorem MeasureTheory.eLpNormEssSup_le_nnreal_smul_eLpNormEssSup_of_ae_le_mul - theorem MeasureTheory.eLpNormEssSup_piecewise - theorem MeasureTheory.eLpNorm_conj - theorem MeasureTheory.eLpNorm_const_smul - theorem MeasureTheory.eLpNorm_const_smul_le' - theorem MeasureTheory.eLpNorm_const_smul_le - theorem MeasureTheory.eLpNorm_eq_zero_and_zero_of_ae_le_mul_neg - theorem MeasureTheory.eLpNorm_indicator_const' - theorem MeasureTheory.eLpNorm_indicator_const - theorem MeasureTheory.eLpNorm_indicator_const_le - theorem MeasureTheory.eLpNorm_indicator_const₀ - theorem MeasureTheory.eLpNorm_indicator_eq_eLpNorm_restrict - theorem MeasureTheory.eLpNorm_indicator_le - theorem MeasureTheory.eLpNorm_indicator_sub_le_of_dist_bdd - theorem MeasureTheory.eLpNorm_le_mul_eLpNorm_of_ae_le_mul'' - theorem MeasureTheory.eLpNorm_le_mul_eLpNorm_of_ae_le_mul' - theorem MeasureTheory.eLpNorm_le_mul_eLpNorm_of_ae_le_mul - theorem MeasureTheory.eLpNorm_le_nnreal_smul_eLpNorm_of_ae_le_mul' - theorem MeasureTheory.eLpNorm_le_nnreal_smul_eLpNorm_of_ae_le_mul - theorem MeasureTheory.eLpNorm_nsmul - theorem MeasureTheory.eLpNorm_restrict_le - theorem MeasureTheory.eLpNorm_star - theorem MeasureTheory.eLpNorm_sub_le_of_dist_bdd - theorem MeasureTheory.eLpNorm_top_piecewise - theorem MeasureTheory.le_eLpNorm_of_bddBelow - theorem MeasureTheory.memLp_indicator_const - theorem MeasureTheory.memLp_indicator_iff_restrict Modified Mathlib/MeasureTheory/Function/LpSeminorm/CompareExp.lean Added Mathlib/MeasureTheory/Function/LpSeminorm/Indicator.lean + theorem MeasureTheory.MemLp.exists_eLpNorm_indicator_compl_lt + theorem MeasureTheory.MemLp.indicator + theorem MeasureTheory.eLpNormEssSup_indicator_const_eq + theorem MeasureTheory.eLpNormEssSup_indicator_const_le + theorem MeasureTheory.eLpNormEssSup_indicator_eq_eLpNormEssSup_restrict + theorem MeasureTheory.eLpNormEssSup_indicator_le + theorem MeasureTheory.eLpNormEssSup_piecewise + theorem MeasureTheory.eLpNorm_indicator_const' + theorem MeasureTheory.eLpNorm_indicator_const + theorem MeasureTheory.eLpNorm_indicator_const_le + theorem MeasureTheory.eLpNorm_indicator_const₀ + theorem MeasureTheory.eLpNorm_indicator_eq_eLpNorm_restrict + theorem MeasureTheory.eLpNorm_indicator_le + theorem MeasureTheory.eLpNorm_indicator_sub_le_of_dist_bdd + theorem MeasureTheory.eLpNorm_restrict_le + theorem MeasureTheory.eLpNorm_sub_le_of_dist_bdd + theorem MeasureTheory.eLpNorm_top_piecewise + theorem MeasureTheory.memLp_indicator_const + theorem MeasureTheory.memLp_indicator_iff_restrict Added Mathlib/MeasureTheory/Function/LpSeminorm/Monotonicity.lean + theorem MeasureTheory.AEEqFun.eLpNorm_star + theorem MeasureTheory.MemLp.im + theorem MeasureTheory.MemLp.of_enorm_le_mul + theorem MeasureTheory.MemLp.of_le_mul' + theorem MeasureTheory.MemLp.of_le_mul + theorem MeasureTheory.MemLp.of_nnnorm_le_mul + theorem MeasureTheory.MemLp.re + theorem MeasureTheory.eLpNorm'_le_mul_eLpNorm'_of_ae_le_mul + theorem MeasureTheory.eLpNorm'_le_nnreal_smul_eLpNorm'_of_ae_le_mul' + theorem MeasureTheory.eLpNorm'_le_nnreal_smul_eLpNorm'_of_ae_le_mul + theorem MeasureTheory.eLpNormEssSup_le_nnreal_smul_eLpNormEssSup_of_ae_le_mul' + theorem MeasureTheory.eLpNormEssSup_le_nnreal_smul_eLpNormEssSup_of_ae_le_mul + theorem MeasureTheory.eLpNorm_conj + theorem MeasureTheory.eLpNorm_eq_zero_and_zero_of_ae_le_mul_neg + theorem MeasureTheory.eLpNorm_le_mul_eLpNorm_of_ae_le_mul'' + theorem MeasureTheory.eLpNorm_le_mul_eLpNorm_of_ae_le_mul' + theorem MeasureTheory.eLpNorm_le_mul_eLpNorm_of_ae_le_mul + theorem MeasureTheory.eLpNorm_le_nnreal_smul_eLpNorm_of_ae_le_mul' + theorem MeasureTheory.eLpNorm_le_nnreal_smul_eLpNorm_of_ae_le_mul + theorem MeasureTheory.eLpNorm_star + theorem MeasureTheory.le_eLpNorm_of_bddBelow Added Mathlib/MeasureTheory/Function/LpSeminorm/SMul.lean + theorem MeasureTheory.MemLp.const_mul' + theorem MeasureTheory.MemLp.const_mul + theorem MeasureTheory.MemLp.const_smul' + theorem MeasureTheory.MemLp.const_smul + theorem MeasureTheory.MemLp.mul_const + theorem MeasureTheory.eLpNorm'_const_smul + theorem MeasureTheory.eLpNorm'_const_smul_le' + theorem MeasureTheory.eLpNorm'_const_smul_le + theorem MeasureTheory.eLpNormEssSup_const_smul + theorem MeasureTheory.eLpNormEssSup_const_smul_le' + theorem MeasureTheory.eLpNormEssSup_const_smul_le + theorem MeasureTheory.eLpNorm_const_smul + theorem MeasureTheory.eLpNorm_const_smul_le' + theorem MeasureTheory.eLpNorm_const_smul_le + theorem MeasureTheory.eLpNorm_nsmul 2026-02-04 08:49:12 9a03848 feat(Measure): add `gcongr` lemmas (#34723) ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Covering/Differentiation.lean Modified Mathlib/MeasureTheory/Function/SimpleFunc.lean Modified Mathlib/MeasureTheory/Integral/Bochner/L1.lean Modified Mathlib/MeasureTheory/Integral/FinMeasAdditive.lean Modified Mathlib/MeasureTheory/Measure/MeasureSpace.lean + theorem MeasureTheory.Measure.measure_mono_both + theorem MeasureTheory.Measure.measure_mono_left 2026-02-04 08:33:49 b9dad19 feat(Integral): estimate displacement by the integral of the speed (#32186) This PR adds yet another form of the Mean Value Theorem. From https://github.com/urkud/SardMoreira ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/MeasureTheory/Integral/IntervalIntegral/DistLEIntegral.lean + theorem isBigO_norm_rpow_add_one_of_fderiv_of_apply_eq_zero + theorem norm_sub_le_integral_of_norm_deriv_le_of_le + theorem norm_sub_le_mul_volume_of_norm_deriv_le_of_le + theorem norm_sub_le_mul_volume_of_norm_fderiv_le + theorem norm_sub_le_mul_volume_of_norm_lineDeriv_le + theorem sub_isBigO_norm_rpow_add_one_of_fderiv 2026-02-04 08:12:58 73b8701 feat: use HasSolidNorm in Integrable.measure_ge_lt_top (#34769) ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Function/L1Space/Integrable.lean +/- theorem MeasureTheory.Integrable.measure_ge_lt_top +/- theorem MeasureTheory.Integrable.measure_gt_lt_top +/- theorem MeasureTheory.Integrable.measure_le_lt_top +/- theorem MeasureTheory.Integrable.measure_lt_lt_top 2026-02-04 05:48:15 9687699 refactor(CategoryTheory/Adhesive): make CategoryTheory.Adhesive.Basic (#34818) Make `CategoryTheory/Adhesive` a folder and add `Basic.lean` to it. In #29870 I add a `Subobject.lean` file. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/AlgebraicTopology/SimplicialSet/Subcomplex.lean Modified Mathlib/CategoryTheory/Adhesive.lean - theorem CategoryTheory.Adhesive.isPullback_of_isPushout_of_mono_left - theorem CategoryTheory.Adhesive.isPullback_of_isPushout_of_mono_right - theorem CategoryTheory.Adhesive.mono_of_isPushout_of_mono_left - theorem CategoryTheory.Adhesive.mono_of_isPushout_of_mono_right - theorem CategoryTheory.Adhesive.van_kampen' - theorem CategoryTheory.IsPushout.IsVanKampen.flip - theorem CategoryTheory.IsPushout.IsVanKampen.isPullback_of_mono_left - theorem CategoryTheory.IsPushout.IsVanKampen.isPullback_of_mono_right - theorem CategoryTheory.IsPushout.IsVanKampen.mono_of_mono_left - theorem CategoryTheory.IsPushout.IsVanKampen.mono_of_mono_right - def CategoryTheory.IsPushout.IsVanKampen - theorem CategoryTheory.IsPushout.isVanKampen_iff - theorem CategoryTheory.IsPushout.isVanKampen_inl - theorem CategoryTheory.adhesive_of_preserves_and_reflects - theorem CategoryTheory.adhesive_of_preserves_and_reflects_isomorphism - theorem CategoryTheory.adhesive_of_reflective - theorem CategoryTheory.is_coprod_iff_isPushout Added Mathlib/CategoryTheory/Adhesive/Basic.lean + theorem CategoryTheory.Adhesive.isPullback_of_isPushout_of_mono_left + theorem CategoryTheory.Adhesive.isPullback_of_isPushout_of_mono_right + theorem CategoryTheory.Adhesive.mono_of_isPushout_of_mono_left + theorem CategoryTheory.Adhesive.mono_of_isPushout_of_mono_right + theorem CategoryTheory.Adhesive.van_kampen' + theorem CategoryTheory.IsPushout.IsVanKampen.flip + theorem CategoryTheory.IsPushout.IsVanKampen.isPullback_of_mono_left + theorem CategoryTheory.IsPushout.IsVanKampen.isPullback_of_mono_right + theorem CategoryTheory.IsPushout.IsVanKampen.mono_of_mono_left + theorem CategoryTheory.IsPushout.IsVanKampen.mono_of_mono_right + def CategoryTheory.IsPushout.IsVanKampen + theorem CategoryTheory.IsPushout.isVanKampen_iff + theorem CategoryTheory.IsPushout.isVanKampen_inl + theorem CategoryTheory.adhesive_of_preserves_and_reflects + theorem CategoryTheory.adhesive_of_preserves_and_reflects_isomorphism + theorem CategoryTheory.adhesive_of_reflective + theorem CategoryTheory.is_coprod_iff_isPushout Modified Mathlib/CategoryTheory/Limits/Types/Pushouts.lean Modified Mathlib/CategoryTheory/Sites/LeftExact.lean 2026-02-04 02:26:41 b85a40b ci: Change display names to avoid on-cancellation quirk (#34794) It seems like cancelled jobs are not resolving the suffix correctly, so let's push the disambiguation to the upper UI layer ESTIMATED CHANGES Modified .github/workflows/bors.yml Modified .github/workflows/build.yml Modified .github/workflows/build_fork.yml Modified .github/workflows/build_template.yml Modified bors.toml 2026-02-04 00:38:53 5b38ccd chore(Nat/Fib/Basic): fix names and `csimp` (#34810) and add a `csimp` lemma to connect the existing `Nat.fastFib`. ESTIMATED CHANGES Modified Mathlib/Data/Nat/Fib/Basic.lean + theorem Nat.fastFibAux_bit_false + theorem Nat.fastFibAux_bit_true + theorem Nat.fastFibAux_eq + theorem Nat.fastFib_eq - theorem Nat.fast_fib_aux_bit_ff - theorem Nat.fast_fib_aux_bit_tt - theorem Nat.fast_fib_aux_eq - theorem Nat.fast_fib_eq + theorem Nat.fib_eq_fastFib 2026-02-04 00:38:52 0bbce5a chore: migrate triage workflows to GitHub App (#34752) This PR migrates `maintainer_bors.yml`, `maintainer_bors_wf_run.yml`, `maintainer_merge.yml`, and `maintainer_merge_wf_run.yml` from using a personal access token (`TRIAGE_TOKEN`) to using a GitHub App. 🤖 Prepared with Claude Code ESTIMATED CHANGES Modified .github/workflows/maintainer_bors.yml Modified .github/workflows/maintainer_bors_wf_run.yml Modified .github/workflows/maintainer_merge.yml Modified .github/workflows/maintainer_merge_wf_run.yml 2026-02-04 00:38:50 51350af chore: migrate update-dependencies workflows to GitHub App (#34750) This PR migrates `update_dependencies.yml` and `update_dependencies_zulip.yml` from using a personal access token (`UPDATE_DEPENDENCIES_TOKEN` from `leanprover-community-mathlib4-bot`) to using a GitHub App. 🤖 Prepared with Claude Code ESTIMATED CHANGES Modified .github/workflows/update_dependencies.yml Modified .github/workflows/update_dependencies_zulip.yml 2026-02-04 00:38:48 f2ef43d feat(Topology/Continuous): continuous iff `f '' closure s ⊆ closure (f '' s)` or `f ⁻¹' (interior s) ⊆ interior (f ⁻¹' s)` (#34395) ESTIMATED CHANGES Modified Mathlib/Topology/Continuous.lean + theorem continuous_iff_image_closure_subset_closure_image + theorem continuous_iff_preimage_interior_subset_interior_preimage 2026-02-03 23:50:09 c04d725 chore(Order/Interval/Finset): make simp stronger (#34807) and deprecate a wrong lemma name. From ProofBench ESTIMATED CHANGES Modified Mathlib/Order/Interval/Finset/Defs.lean +/- theorem Set.finite_Icc +/- theorem Set.finite_Ici +/- theorem Set.finite_Ico +/- theorem Set.finite_Iic +/- theorem Set.finite_Iio +/- theorem Set.finite_Ioc +/- theorem Set.finite_Ioi +/- theorem Set.finite_Ioo - theorem Set.finite_interval + theorem Set.finite_uIcc 2026-02-03 23:50:07 605b2be chore: migrate auto-merge workflow to GitHub App (#34753) This PR migrates the "bors merge" comment step in `build_template.yml` from using a personal access token (`AUTO_MERGE_TOKEN`) to using a GitHub App. 🤖 Prepared with Claude Code ESTIMATED CHANGES Modified .github/workflows/build_template.yml 2026-02-03 23:28:46 be8defd feat(Combinatorics/SimpleGraph/Hamiltonian): `IsEmpty`/`card = 2`/`⊥` are not Hamiltonian (#34710) ESTIMATED CHANGES Modified Mathlib/Combinatorics/SimpleGraph/Hamiltonian.lean + theorem SimpleGraph.not_isHamiltonian_bot_of_card_ne_one + theorem SimpleGraph.not_isHamiltonian_of_card_eq_two + theorem SimpleGraph.not_isHamiltonian_of_isEmpty 2026-02-03 23:28:44 9a34149 feat(Analysis/InnerProductSpace/Projection/Submodule): add `sup_orthogonal` for `ClosedSubmodules` (#29243) prove that the closed submodule generated by the orthogonal complements of two submodules is the orthogonal complement of the intersection. motivation: needed to define standard subspaces in a Hilbert space #29251 https://ems.press/content/serial-article-files/48171 - [x] depends on: #29230 for `Lattice` `CompleteLattice` - [x] depends on: #29241 for the definition of `orthogonal` ESTIMATED CHANGES Modified Mathlib/Analysis/InnerProductSpace/Projection/Basic.lean Modified Mathlib/Analysis/InnerProductSpace/Projection/Submodule.lean + theorem ClosedSubmodule.orthogonal_eq_orthogonal_iff + theorem ClosedSubmodule.orthogonal_injective + theorem ClosedSubmodule.orthogonal_orthogonal_eq + theorem ClosedSubmodule.sup_orthogonal 2026-02-03 23:11:35 6f85634 chore(Analysis/InnerProductSpace/Positive): matrix is positive semi-definite iff it is a sum of `vecMulVec x (star x)`s (#34603) ESTIMATED CHANGES Modified Mathlib/Analysis/InnerProductSpace/Positive.lean + theorem Matrix.posSemidef_iff_eq_sum_vecMulVec 2026-02-03 23:11:33 ea1575f chore(Analysis/SchwartzSpace): make some definitions private (#34552) ESTIMATED CHANGES Modified Mathlib/Analysis/Distribution/SchwartzSpace/Basic.lean - theorem SchwartzMap.bounds_bddBelow - theorem SchwartzMap.bounds_nonempty - theorem SchwartzMap.decay_add_le_aux - theorem SchwartzMap.decay_neg_aux - theorem SchwartzMap.decay_smul_aux - theorem SchwartzMap.le_seminormAux - theorem SchwartzMap.seminormAux_add_le - theorem SchwartzMap.seminormAux_le_bound - theorem SchwartzMap.seminormAux_nonneg - theorem SchwartzMap.seminormAux_smul_le - theorem SchwartzMap.seminormAux_zero + theorem SchwartzMap.seminorm_apply 2026-02-03 23:11:31 8b5c325 feat(Topology/UniformSpace): compactness of `Closeds` (#34529) ESTIMATED CHANGES Modified Mathlib/Topology/MetricSpace/Closeds.lean Modified Mathlib/Topology/UniformSpace/Closeds.lean + theorem TopologicalSpace.Closeds.compactSpace_iff + theorem TopologicalSpace.Closeds.isClopen_singleton_bot + theorem TopologicalSpace.Closeds.noncompactSpace_iff 2026-02-03 22:49:10 f992dcc feat(Tactic): add NormNum extension for `NNReal.rpow` (#34553) This is essentially just a copy of the `norm_num` extension for `Real.rpow` with the appropriate modifications. ESTIMATED CHANGES Modified Mathlib/Analysis/SpecialFunctions/Pow/NNReal.lean + theorem Mathlib.Meta.NormNum.IsInt.nnreal_rpow_eq_inv_nnreal_pow + theorem Mathlib.Meta.NormNum.IsNNRat.nnreal_rpow_isNNRat + theorem Mathlib.Meta.NormNum.IsNat.nnreal_rpow_eq_nnreal_pow + theorem Mathlib.Meta.NormNum.IsNat.nnreal_rpow_isNNRat + theorem Mathlib.Meta.NormNum.nnreal_rpow_isRat_eq_inv_nnreal_rpow Modified MathlibTest/norm_num_rpow.lean 2026-02-03 22:49:08 4f661d7 chore(Analysis/Distribution): simplify some proofs (#34522) ESTIMATED CHANGES Modified Mathlib/Analysis/Distribution/SchwartzSpace/Fourier.lean +/- theorem SchwartzMap.fourierInv_coe 2026-02-03 22:33:06 7510ed9 feat(SimpleGraph/Walks/Subwalks): `p₁.IsSubwalk p₂ ↔ p₁.darts <:+: p₂.darts` and similar theorems (#32125) ESTIMATED CHANGES Modified Mathlib/Combinatorics/SimpleGraph/Walks/Subwalks.lean + theorem SimpleGraph.Walk.infix_support_iff_mem_edges + theorem SimpleGraph.Walk.isSubwalk_iff_darts_isInfix + theorem SimpleGraph.Walk.isSubwalk_nil_iff_mem_support + theorem SimpleGraph.Walk.isSubwalk_toWalk_adj_iff_mem_darts + theorem SimpleGraph.Walk.isSubwalk_toWalk_iff_mem_darts + theorem SimpleGraph.Walk.isSubwalk_toWalk_iff_mem_edges 2026-02-03 22:04:57 976d30f feat(SimpleGraph): simp lemmas for first and last support elements (#34796) Matches `getVert_zero`/`getVert_length`. ESTIMATED CHANGES Modified Mathlib/Combinatorics/SimpleGraph/Walks/Basic.lean + theorem SimpleGraph.Walk.support_getElem_length + theorem SimpleGraph.Walk.support_getElem_zero 2026-02-03 22:04:55 b849863 feat(Asymptotics/TVS): fix a name, add `isThetaTVS_iff_isTheta` (#34763) ESTIMATED CHANGES Modified Mathlib/Analysis/Asymptotics/Defs.lean + theorem Asymptotics.IsBigO.antisymm + theorem Asymptotics.IsTheta.isBigO + theorem Asymptotics.IsTheta.isBigO_symm + def Asymptotics.IsTheta Modified Mathlib/Analysis/Asymptotics/TVS.lean + theorem Asymptotics.isThetaTVS_iff_isTheta Modified Mathlib/Analysis/Asymptotics/Theta.lean - theorem Asymptotics.IsBigO.antisymm - theorem Asymptotics.IsTheta.isBigO - theorem Asymptotics.IsTheta.isBigO_symm - def Asymptotics.IsTheta 2026-02-03 22:04:53 5540377 feat(Analysis/Distribution): support properties of the derivative (#34638) ESTIMATED CHANGES Modified Mathlib/Analysis/Distribution/SchwartzSpace/Deriv.lean + theorem SchwartzMap.tsupport_derivCLM_subset + theorem SchwartzMap.tsupport_fderivCLM_subset + theorem SchwartzMap.tsupport_iteratedLineDerivOp_subset + theorem SchwartzMap.tsupport_lineDerivOp_subset 2026-02-03 22:04:51 4de1bf3 feat(CategoryTheory): Frobenius reciprocity for regular categories (#34563) We show Frobenius reciprocity for regular categories. This is a prerequisite of the [MTT project](https://github.com/kyoDralliam/model-theory-topos), which aims to use the internal language of toposes to reason about e.g. sheaves. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/RegularCategory/Basic.lean + theorem CategoryTheory.Regular.exists_inf_pullback_eq_exists_inf + theorem CategoryTheory.Regular.frobeniusMorphism_isPullback Modified Mathlib/CategoryTheory/Subobject/Lattice.lean + theorem CategoryTheory.Subobject.inf_comp_left + theorem CategoryTheory.Subobject.inf_comp_right 2026-02-03 21:31:39 bded2cc ci: Skip build_fork workflow when changes are made only to workflow files (#34801) `pull_request_target` uses the workflow files from the target branch: PR changes under this directory won't affect this run, so running it is just wasting resources. The files should be validated eventually by `bors try` or `bors r+` ESTIMATED CHANGES Modified .github/workflows/build_fork.yml 2026-02-03 21:31:37 14d158a feat: nhds of scalar multiplication (#34795) From [#mathlib4 > RightActions @ 💬](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/RightActions/near/571707491). The right action version is a syntactic specialization, so there is no need for it. ESTIMATED CHANGES Modified Mathlib/Topology/Algebra/ConstMulAction.lean + theorem nhds_smul + theorem nhds_smul₀ + theorem punctured_nhds_smul + theorem punctured_nhds_smul₀ 2026-02-03 21:14:59 09a4639 ci: Handle trying branch used by bors (#34778) `trying` is used by `bors try`, and we should treat it the same as `staging` ESTIMATED CHANGES Modified .github/workflows/bors.yml Modified .github/workflows/build.yml Modified .github/workflows/pre-commit.yml Modified .vscode/settings.json 2026-02-03 20:27:34 61d4cc6 chore: use `NameMapExtension.find?` API (#34774) This PR prepares a refactor of `NameMapExtension` by not relying on its definition. ESTIMATED CHANGES Modified Mathlib/Tactic/Simps/Basic.lean Modified Mathlib/Tactic/Translate/Core.lean Modified MathlibTest/Simps.lean 2026-02-03 20:27:32 37d89a5 feat(Antilipschitz): a continuous antilipschitz map is inducing (#34762) ESTIMATED CHANGES Modified Mathlib/Topology/MetricSpace/Antilipschitz.lean + theorem AntilipschitzWith.comap_nhds_le + theorem AntilipschitzWith.isEmbedding + theorem AntilipschitzWith.isInducing 2026-02-03 20:27:30 b6d0032 feat: a holomorphic function whose real part is constant is itself constant (#34458) As an immediate corollary to the open mapping theorem, show that a holomorphic function whose real part is constant is itself constant. ESTIMATED CHANGES Modified Mathlib/Analysis/Complex/OpenMapping.lean + theorem AnalyticOnNhd.eq_const_add_im_mul_I_of_re_eq_const + theorem AnalyticOnNhd.eq_const_of_im_eq_const + theorem AnalyticOnNhd.eq_const_of_re_eq_const + theorem AnalyticOnNhd.eq_re_add_const_mul_I_of_re_eq_const 2026-02-03 20:27:27 4c7554b feat(Analysis/Convex/Between): Add sbtw_expand and wbtw_expand (#33967) Complete the theorems related to between_expand Add four theorems `Wbtw.trans_expand_left` If four points `w x y z`,`Wbtw R w x y`,`Wbtw R x y z` and `x ≠ y`, then `Wbtw R w x z`. `Wbtw.trans_expand_right` If four points `w x y z`,`Wbtw R w x y`,`Wbtw R x y z` and `x ≠ y`, then `Wbtw R w y z`. `Sbtw.trans_expand_left` If four points `w x y z`,`Sbtw R w x y` and `Sbtw R x y z` , then `Sbtw R w x z`. `Sbtw.trans_expand_right` If four points `w x y z`,`Sbtw R w x y` and `Sbtw R x y z` , then `Sbtw R w y z`. ESTIMATED CHANGES Modified Mathlib/Analysis/Convex/Between.lean + theorem Sbtw.trans_expand_left + theorem Sbtw.trans_expand_right + theorem Wbtw.trans_expand_left + theorem Wbtw.trans_expand_right 2026-02-03 19:46:15 9493b30 feat(Topology/Homeomorph): a bijection between discrete spaces is a homeomorphism (#34617) ESTIMATED CHANGES Modified Mathlib/Topology/Homeomorph/Lemmas.lean + theorem Equiv.isHomeomorph_of_discrete + def Homeomorph.ofDiscrete 2026-02-03 19:46:12 1b7165a feat(Analysis): Taylor's theorem for analytic functions (#33854) Add a version of Taylor's theorem for analytic functions. ESTIMATED CHANGES Modified Mathlib/Analysis/Analytic/Order.lean + theorem AnalyticAt.exists_eq_sum_add_pow_mul + theorem AnalyticAt.exists_eventuallyEq_sum_add_pow_mul 2026-02-03 19:46:10 effc0dc feat(Algebra/Lie): basics of loop algebras (#33606) This PR introduces the Lie algebra of polynomial loops in a base Lie algebra, together with the 2-cocycle induced by a symmetric invariant bilinear form on the base Lie algebra. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Group/EvenFunction.lean + theorem Function.Odd.finset_sum_eq_zero +/- theorem Function.Odd.sum_eq_zero Modified Mathlib/Algebra/Lie/BaseChange.lean Modified Mathlib/Algebra/Lie/Extension.lean Added Mathlib/Algebra/Lie/Loop.lean + def LieAlgebra.LoopAlgebra.residuePairing + def LieAlgebra.LoopAlgebra.toFinsupp + theorem LieAlgebra.LoopAlgebra.toFinsupp_single_tmul + theorem LieAlgebra.LoopAlgebra.toFinsupp_symm_single + def LieAlgebra.LoopAlgebra.twoCochainOfBilinear + theorem LieAlgebra.LoopAlgebra.twoCochainOfBilinear_apply_apply + def LieAlgebra.LoopAlgebra.twoCocycleOfBilinear + def LieAlgebra.loopAlgebraEquivLaurent Modified Mathlib/Algebra/MonoidAlgebra/Module.lean + def MonoidAlgebra.basis + theorem MonoidAlgebra.basis_apply Modified Mathlib/LinearAlgebra/Basis/Basic.lean + theorem Module.Basis.card_fintype Modified Mathlib/LinearAlgebra/Basis/Defs.lean - theorem Module.card_fintype 2026-02-03 17:15:22 33a2f73 refactor(Analysis/Calculus): split long file `ContDiff/Basic.lean` (#34764) Split `Mathlib.Analysis.Calculus.ContDiff.Basic` into 3 chunks, `Basic` (~600 lines), `Comp` (~800), and `Deriv` (~150). Also, in making the downstream changes, I realised that `Mathlib.Analysis.Convolution` is ~1400 lines and imports a bunch of calculus-related stuff which is only used at the very end of the file, so I split that one up too: `Mathlib.Analysis.Convolution` (~1000 lines) for the purely measure-theoretic stuff and `Mathlib.Analysis.Calculus.ContDiff.Convolution` (~450) for differentiability of the convolution. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Analysis/Calculus/BumpFunction/FiniteDimension.lean Modified Mathlib/Analysis/Calculus/ContDiff/Basic.lean - theorem ContDiff.clm_apply - theorem ContDiff.clm_comp - theorem ContDiff.comp - theorem ContDiff.comp_contDiffAt - theorem ContDiff.comp_contDiffOn - theorem ContDiff.comp_contDiffWithinAt - theorem ContDiff.comp₂ - theorem ContDiff.comp₂_contDiffAt - theorem ContDiff.comp₂_contDiffOn - theorem ContDiff.comp₂_contDiffWithinAt - theorem ContDiff.comp₃ - theorem ContDiff.comp₃_contDiffOn - theorem ContDiff.contDiff_fderiv_apply - theorem ContDiff.continuous_deriv - theorem ContDiff.continuous_deriv_one - theorem ContDiff.deriv' - theorem ContDiff.differentiable_deriv_two - theorem ContDiff.fderiv_apply - theorem ContDiff.fderiv_right - theorem ContDiff.fst' - theorem ContDiff.fst - theorem ContDiff.fun_comp - theorem ContDiff.fun_comp_contDiffOn - theorem ContDiff.iterate_deriv' - theorem ContDiff.iterate_deriv - theorem ContDiff.iteratedFDeriv_right' - theorem ContDiff.iteratedFDeriv_right - theorem ContDiff.smulRight - theorem ContDiff.snd' - theorem ContDiff.snd - theorem ContDiffAt.clm_apply - theorem ContDiffAt.clm_comp - theorem ContDiffAt.comp_contDiffWithinAt - theorem ContDiffAt.comp_contDiffWithinAt_of_eq - theorem ContDiffAt.comp₂ - theorem ContDiffAt.comp₂_contDiffWithinAt - theorem ContDiffAt.continuousAt_fderiv - theorem ContDiffAt.continuousAt_iteratedFDeriv - theorem ContDiffAt.fderiv_right - theorem ContDiffAt.fderiv_right_succ - theorem ContDiffAt.fst'' - theorem ContDiffAt.fst' - theorem ContDiffAt.fst - theorem ContDiffAt.fun_comp - theorem ContDiffAt.iteratedFDeriv_right - theorem ContDiffAt.smulRight - theorem ContDiffAt.snd'' - theorem ContDiffAt.snd' - theorem ContDiffAt.snd - theorem ContDiffOn.clm_apply - theorem ContDiffOn.clm_comp - theorem ContDiffOn.comp - theorem ContDiffOn.comp_contDiff - theorem ContDiffOn.comp_inter - theorem ContDiffOn.continuousOn_derivWithin - theorem ContDiffOn.continuousOn_deriv_of_isOpen - theorem ContDiffOn.continuousOn_fderivWithin_apply - theorem ContDiffOn.deriv_of_isOpen - theorem ContDiffOn.fst - theorem ContDiffOn.image_comp_contDiff - theorem ContDiffOn.smulRight - theorem ContDiffOn.snd - theorem ContDiffWithinAt.clm_apply - theorem ContDiffWithinAt.clm_comp - theorem ContDiffWithinAt.comp - theorem ContDiffWithinAt.comp_inter - theorem ContDiffWithinAt.comp_inter_of_eq - theorem ContDiffWithinAt.comp_of_eq - theorem ContDiffWithinAt.comp_of_mem_nhdsWithin_image - theorem ContDiffWithinAt.comp_of_mem_nhdsWithin_image_of_eq - theorem ContDiffWithinAt.comp_of_preimage_mem_nhdsWithin - theorem ContDiffWithinAt.comp_of_preimage_mem_nhdsWithin_of_eq - theorem ContDiffWithinAt.continuousWithinAt_fderivWithin - theorem ContDiffWithinAt.continuousWithinAt_iteratedFDerivWithin - theorem ContDiffWithinAt.fderivWithin'' - theorem ContDiffWithinAt.fderivWithin' - theorem ContDiffWithinAt.fderivWithin_apply - theorem ContDiffWithinAt.fderivWithin_right - theorem ContDiffWithinAt.fderivWithin_right_apply - theorem ContDiffWithinAt.hasFDerivWithinAt_nhds - theorem ContDiffWithinAt.iteratedFDerivWithin_right - theorem ContDiffWithinAt.smulRight - theorem Continuous.fderiv - theorem Continuous.fderiv_one - theorem ContinuousOn.continuousOn_iteratedFDeriv - theorem ContinuousOn.continuousOn_iteratedFDerivWithin - theorem contDiffAt_fst - theorem contDiffAt_snd - theorem contDiffOn_fderivWithin_apply - theorem contDiffOn_fst - theorem contDiffOn_infty_iff_derivWithin - theorem contDiffOn_infty_iff_deriv_of_isOpen - theorem contDiffOn_snd - theorem contDiffOn_succ_iff_derivWithin - theorem contDiffOn_succ_iff_deriv_of_isOpen - theorem contDiffWithinAt_fst - theorem contDiffWithinAt_snd - theorem contDiff_fst - theorem contDiff_infty_iff_deriv - theorem contDiff_one_iff_deriv - theorem contDiff_snd - theorem contDiff_succ_iff_deriv - theorem iteratedFDerivWithin_clm_apply_const_apply - theorem iteratedFDerivWithin_comp - theorem iteratedFDerivWithin_comp_of_eventually_mem - theorem iteratedFDeriv_clm_apply_const_apply - theorem iteratedFDeriv_comp Added Mathlib/Analysis/Calculus/ContDiff/Comp.lean + theorem ContDiff.clm_apply + theorem ContDiff.clm_comp + theorem ContDiff.comp + theorem ContDiff.comp_contDiffAt + theorem ContDiff.comp_contDiffOn + theorem ContDiff.comp_contDiffWithinAt + theorem ContDiff.comp₂ + theorem ContDiff.comp₂_contDiffAt + theorem ContDiff.comp₂_contDiffOn + theorem ContDiff.comp₂_contDiffWithinAt + theorem ContDiff.comp₃ + theorem ContDiff.comp₃_contDiffOn + theorem ContDiff.contDiff_fderiv_apply + theorem ContDiff.fderiv_apply + theorem ContDiff.fderiv_right + theorem ContDiff.fst' + theorem ContDiff.fst + theorem ContDiff.fun_comp + theorem ContDiff.fun_comp_contDiffOn + theorem ContDiff.iteratedFDeriv_right' + theorem ContDiff.iteratedFDeriv_right + theorem ContDiff.smulRight + theorem ContDiff.snd' + theorem ContDiff.snd + theorem ContDiffAt.clm_apply + theorem ContDiffAt.clm_comp + theorem ContDiffAt.comp_contDiffWithinAt + theorem ContDiffAt.comp_contDiffWithinAt_of_eq + theorem ContDiffAt.comp₂ + theorem ContDiffAt.comp₂_contDiffWithinAt + theorem ContDiffAt.continuousAt_fderiv + theorem ContDiffAt.continuousAt_iteratedFDeriv + theorem ContDiffAt.fderiv_right + theorem ContDiffAt.fderiv_right_succ + theorem ContDiffAt.fst'' + theorem ContDiffAt.fst' + theorem ContDiffAt.fst + theorem ContDiffAt.fun_comp + theorem ContDiffAt.iteratedFDeriv_right + theorem ContDiffAt.smulRight + theorem ContDiffAt.snd'' + theorem ContDiffAt.snd' + theorem ContDiffAt.snd + theorem ContDiffOn.clm_apply + theorem ContDiffOn.clm_comp + theorem ContDiffOn.comp + theorem ContDiffOn.comp_contDiff + theorem ContDiffOn.comp_inter + theorem ContDiffOn.continuousOn_fderivWithin_apply + theorem ContDiffOn.fst + theorem ContDiffOn.image_comp_contDiff + theorem ContDiffOn.smulRight + theorem ContDiffOn.snd + theorem ContDiffWithinAt.clm_apply + theorem ContDiffWithinAt.clm_comp + theorem ContDiffWithinAt.comp + theorem ContDiffWithinAt.comp_inter + theorem ContDiffWithinAt.comp_inter_of_eq + theorem ContDiffWithinAt.comp_of_eq + theorem ContDiffWithinAt.comp_of_mem_nhdsWithin_image + theorem ContDiffWithinAt.comp_of_mem_nhdsWithin_image_of_eq + theorem ContDiffWithinAt.comp_of_preimage_mem_nhdsWithin + theorem ContDiffWithinAt.comp_of_preimage_mem_nhdsWithin_of_eq + theorem ContDiffWithinAt.continuousWithinAt_fderivWithin + theorem ContDiffWithinAt.continuousWithinAt_iteratedFDerivWithin + theorem ContDiffWithinAt.fderivWithin'' + theorem ContDiffWithinAt.fderivWithin' + theorem ContDiffWithinAt.fderivWithin_apply + theorem ContDiffWithinAt.fderivWithin_right + theorem ContDiffWithinAt.fderivWithin_right_apply + theorem ContDiffWithinAt.hasFDerivWithinAt_nhds + theorem ContDiffWithinAt.iteratedFDerivWithin_right + theorem ContDiffWithinAt.smulRight + theorem Continuous.fderiv + theorem Continuous.fderiv_one + theorem ContinuousOn.continuousOn_iteratedFDeriv + theorem ContinuousOn.continuousOn_iteratedFDerivWithin + theorem contDiffAt_fst + theorem contDiffAt_snd + theorem contDiffOn_fderivWithin_apply + theorem contDiffOn_fst + theorem contDiffOn_snd + theorem contDiffWithinAt_fst + theorem contDiffWithinAt_snd + theorem contDiff_fst + theorem contDiff_snd + theorem iteratedFDerivWithin_clm_apply_const_apply + theorem iteratedFDerivWithin_comp + theorem iteratedFDerivWithin_comp_of_eventually_mem + theorem iteratedFDeriv_clm_apply_const_apply + theorem iteratedFDeriv_comp Added Mathlib/Analysis/Calculus/ContDiff/Convolution.lean + theorem HasCompactSupport.contDiff_convolution_left + theorem HasCompactSupport.contDiff_convolution_right + theorem HasCompactSupport.hasDerivAt_convolution_left + theorem HasCompactSupport.hasDerivAt_convolution_right + theorem HasCompactSupport.hasFDerivAt_convolution_left + theorem HasCompactSupport.hasFDerivAt_convolution_right + theorem MeasureTheory.contDiffOn_convolution_left_with_param + theorem MeasureTheory.contDiffOn_convolution_left_with_param_comp + theorem MeasureTheory.contDiffOn_convolution_right_with_param + theorem MeasureTheory.contDiffOn_convolution_right_with_param_aux + theorem MeasureTheory.contDiffOn_convolution_right_with_param_comp + theorem MeasureTheory.hasFDerivAt_convolution_right_with_param Added Mathlib/Analysis/Calculus/ContDiff/Deriv.lean + theorem ContDiff.continuous_deriv + theorem ContDiff.continuous_deriv_one + theorem ContDiff.deriv' + theorem ContDiff.differentiable_deriv_two + theorem ContDiff.iterate_deriv' + theorem ContDiff.iterate_deriv + theorem ContDiffOn.continuousOn_derivWithin + theorem ContDiffOn.continuousOn_deriv_of_isOpen + theorem ContDiffOn.deriv_of_isOpen + theorem contDiffOn_infty_iff_derivWithin + theorem contDiffOn_infty_iff_deriv_of_isOpen + theorem contDiffOn_succ_iff_derivWithin + theorem contDiffOn_succ_iff_deriv_of_isOpen + theorem contDiff_infty_iff_deriv + theorem contDiff_one_iff_deriv + theorem contDiff_succ_iff_deriv Modified Mathlib/Analysis/Calculus/ContDiff/Operations.lean Modified Mathlib/Analysis/Calculus/ContDiffHolder/Pointwise.lean Modified Mathlib/Analysis/Calculus/IteratedDeriv/FaaDiBruno.lean Modified Mathlib/Analysis/Calculus/IteratedDeriv/Lemmas.lean Modified Mathlib/Analysis/Calculus/Taylor.lean Modified Mathlib/Analysis/Convolution.lean - theorem HasCompactSupport.contDiff_convolution_left - theorem HasCompactSupport.contDiff_convolution_right - theorem HasCompactSupport.hasDerivAt_convolution_left - theorem HasCompactSupport.hasDerivAt_convolution_right - theorem HasCompactSupport.hasFDerivAt_convolution_left - theorem HasCompactSupport.hasFDerivAt_convolution_right - theorem MeasureTheory.contDiffOn_convolution_left_with_param - theorem MeasureTheory.contDiffOn_convolution_left_with_param_comp - theorem MeasureTheory.contDiffOn_convolution_right_with_param - theorem MeasureTheory.contDiffOn_convolution_right_with_param_aux - theorem MeasureTheory.contDiffOn_convolution_right_with_param_comp +/- theorem MeasureTheory.convolution_precompR_apply - theorem MeasureTheory.hasFDerivAt_convolution_right_with_param Modified Mathlib/MeasureTheory/Integral/CurveIntegral/Basic.lean Modified Mathlib/MeasureTheory/Integral/IntervalIntegral/ContDiff.lean 2026-02-03 17:15:19 6f699a9 feat: `(Multiset.range n).toFinset = .range n` (#34681) From ClassFieldTheory ESTIMATED CHANGES Modified Mathlib/Data/Finset/Range.lean + theorem Multiset.toFinset_range 2026-02-03 17:15:17 ca6790f feat(RingTheory/Valuation/ValuativeRel/Basic): valuation is not less than zero (#34579) This PR teaches `simp` the fact that no term is strictly less than zero in the ordering induced on a commutative ring by a valuation. ESTIMATED CHANGES Modified Mathlib/RingTheory/Valuation/ValuativeRel/Basic.lean + theorem ValuativeRel.not_vlt_zero + theorem ValuativeRel.vlt.ne_zero 2026-02-03 17:15:14 e4be923 feat(Order): teach `fun_prop` about `ScottContinuous` and friends (#33941) This PR adds the necessary lemmas and attributes for the `fun_prop` tactic to work with `ωScottContinuous` functions. ESTIMATED CHANGES Modified Mathlib/Order/OmegaCompletePartialOrder.lean - theorem CompleteLattice.ωScottContinuous.prodMk +/- def OmegaCompletePartialOrder.ContinuousHom.Prod.apply +/- def OmegaCompletePartialOrder.ContinuousHom.flip + def OmegaCompletePartialOrder.ContinuousHom.ofFun + theorem OmegaCompletePartialOrder.ContinuousHom.ωScottContinuous_apply + theorem OmegaCompletePartialOrder.ωScottContinuous.apply +/- theorem OmegaCompletePartialOrder.ωScottContinuous.const + theorem Prod.ωScottContinuous.prodMk + theorem Prod.ωScottContinuous_fst + theorem Prod.ωScottContinuous_snd Modified Mathlib/Order/ScottContinuity.lean + theorem ScottContinuous.comp + theorem ScottContinuous.const + theorem ScottContinuous.fst +/- theorem ScottContinuous.id + theorem ScottContinuous.prodMk + theorem ScottContinuous.snd + theorem ScottContinuousOn.comp + theorem ScottContinuousOn.const + theorem ScottContinuousOn.fst +/- theorem ScottContinuousOn.id + theorem ScottContinuousOn.image_comp +/- theorem ScottContinuousOn.prodMk + theorem ScottContinuousOn.snd 2026-02-03 15:41:22 20ac852 chore: rename transpose_mem_doublyStochastif_iff (#34736) ESTIMATED CHANGES Modified Mathlib/Analysis/Convex/DoublyStochasticMatrix.lean + theorem transpose_mem_doublyStochastic_iff - theorem transpose_mem_doublyStochastif_iff 2026-02-03 15:41:18 cc809d0 feat(Order): check `Pairwise` only on `(a, b)` for `a < b` (#34686) From ProofBench ESTIMATED CHANGES Modified Mathlib/Order/Lattice.lean + theorem pairwise_iff_gt + theorem pairwise_iff_lt 2026-02-03 15:41:15 1398533 feat: unfold-boundaries in `to_dual` (#32438) This PR introduces a new feature to `to_dual` that allows us to have definitions whose dual is not definitionally equal to the dual of the value. This is crucial for many definitions that are dual to something morally but not definitionally. For example, `DecidableLE`, `Set.Ioo`, `Set.Ico`, `CovBy` , `Monotone`. This adds 2 new files: - `Mathlib.Tactic.Translate.UnfoldBoundary` contains the code for adding the casts into expressions - `Mathlib.Tactic.Translate.TagUnfoldBoundary` contains the code for registering constants as needing a cast. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Order/Basic.lean Modified Mathlib/Order/Defs/LinearOrder.lean - def LinearOrder.toDecidableLE' - def LinearOrder.toDecidableLT' Modified Mathlib/Order/Defs/PartialOrder.lean Modified Mathlib/Tactic.lean Modified Mathlib/Tactic/ToDual.lean Modified Mathlib/Tactic/Translate/Core.lean Added Mathlib/Tactic/Translate/TagUnfoldBoundary.lean + def Mathlib.Tactic.Translate.CastKind.mkProof + def Mathlib.Tactic.Translate.CastKind.mkRel + inductive Mathlib.Tactic.Translate.CastKind + def Mathlib.Tactic.Translate.elabInsertCastAux Modified Mathlib/Tactic/Translate/ToDual.lean Added Mathlib/Tactic/Translate/UnfoldBoundary.lean + def Mathlib.Tactic.UnfoldBoundary.UnfoldBoundaries.cast + def Mathlib.Tactic.UnfoldBoundary.UnfoldBoundaries.insert + def Mathlib.Tactic.UnfoldBoundary.UnfoldBoundaries.insertBoundaries + def Mathlib.Tactic.UnfoldBoundary.UnfoldBoundaries.unfoldInsertions + def Mathlib.Tactic.UnfoldBoundary.mkAppWithCast + def Mathlib.Tactic.UnfoldBoundary.mkCast + def Mathlib.Tactic.UnfoldBoundary.run Modified MathlibTest/ToDual.lean + def Cov.Ico + theorem Cov.Ico_def + def Cov.Ioc + def DecidableLE1 + def DecidableLE2 + def DecidableLE3 + def DecidableLE4 + def lt_sum_eq_of_le 2026-02-03 15:41:13 03ea12b fix(FieldSimp): `declaration has free variables` kernel errors (#32403) Fix a bug in `field_simp` that produces a `(kernel) declaration has free variables` error. The fix also makes `field_simp` dischargers more powerful by adding more hypotheses to their local context. The issue was that an internal `simp` call was misconfigured, so that `simp` assumed the discharger did not use any assumptions in the local context that were added by congruence lemmas. Because of this, `simp` was not clearing its cache often enough, and would use cached proofs that referenced non-existent hypotheses. The fix was to set the `contextual` flag to `true`. ESTIMATED CHANGES Modified Mathlib/Tactic/Abel.lean Modified Mathlib/Tactic/FieldSimp.lean Modified Mathlib/Tactic/Ring/RingNF.lean Modified Mathlib/Util/AtomM/Recurse.lean +/- def Mathlib.Tactic.AtomM.onSubexpressions +/- def Mathlib.Tactic.AtomM.recurse Modified MathlibTest/FieldSimp.lean 2026-02-03 14:54:31 eccf962 chore: improve notation in log counting function of Value Distribution Theory (#34250) On a suggestion of @j-loreaux, improve notation by writing `locallyFinsupp E ℤ` instead of `locallyFinsuppWithin (Set.univ : Set E) ℤ` throughout `Mathlib/Analysis/Complex/ValueDistribution/LogCounting/Basic.lean`. Compactify some of the code in that file a little through trivial golfing. Downgrade `Function.locallyFinsupp` in `Mathlib/Topology/LocallyFinsupp.lean` from a definition to an abbreviation, in order to use existing API without the constant need for typecast. ESTIMATED CHANGES Modified Mathlib/Analysis/Complex/ValueDistribution/LogCounting/Basic.lean +/- theorem Function.locallyFinsuppWithin.logCounting_even +/- theorem Function.locallyFinsuppWithin.logCounting_mono +/- theorem Function.locallyFinsuppWithin.toClosedBall_eval_within Modified Mathlib/Topology/LocallyFinsupp.lean - def Function.locallyFinsupp 2026-02-03 13:35:35 a786f33 chore: update Mathlib dependencies 2026-02-03 (#34771) This PR updates the Mathlib dependencies. ESTIMATED CHANGES Modified lake-manifest.json 2026-02-03 13:35:33 06f8a51 fix: `(f ⊔ g) i` isn't pretty-printed (#34670) To see; [`Pi.sup_apply`](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Order/Lattice.html#Pi.sup_apply) This can be easily fixed by `withOverApp`. On the way, I minimized imports of the test. ESTIMATED CHANGES Modified Mathlib/Order/Notation.lean Modified MathlibTest/Delab/SupInf.lean 2026-02-03 13:18:37 ef94202 feat(Analysis/Distribution): compactly supported functions have temperate growth (#34606) --- Note this follows also from the fact that Schwartz functions have temperate growth, but I think a direct proof is nicer. [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) ESTIMATED CHANGES Modified Mathlib/Analysis/Distribution/TemperateGrowth.lean + theorem HasCompactSupport.hasTemperateGrowth 2026-02-03 12:59:47 5e2eea7 chore: migrate lean-pr-testing workflows to GitHub App (#34754) This PR migrates `LEAN_PR_TESTING` usage in `build_template.yml` and `nightly_detect_failure.yml` to using a GitHub App. **Note:** This requires a GitHub App in the `leanprover` org installed on `lean4`. 🤖 Prepared with Claude Code ESTIMATED CHANGES Modified .github/workflows/build_template.yml Modified .github/workflows/nightly_detect_failure.yml 2026-02-03 12:05:26 10016a7 chore(Topology/MetricSpace/MetricSeparated): doctrings (#34761) Adapt the meaning of the docstring to the code ("strictly greater" versus "at least") ESTIMATED CHANGES Modified Mathlib/Topology/MetricSpace/MetricSeparated.lean 2026-02-03 12:05:24 25817d6 chore(Order/CompleteLattice/Basic): fix a name (#34673) Rename `sInf_upperBounds_eq_csSup` to `sInf_upperBounds_eq_sSup`. ESTIMATED CHANGES Modified Mathlib/Order/CompleteLattice/Basic.lean - theorem sInf_upperBounds_eq_csSup + theorem sInf_upperBounds_eq_sSup Modified Mathlib/Order/LiminfLimsup.lean 2026-02-03 11:32:31 2837dc2 feat(Matrix/Notation): add `diagonal_fin_one` etc (#34712) These lemmas are useful, e.g., for dealing with equality in $$PGL(2, \mathbb R)$$. ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/Matrix/Notation.lean + theorem Matrix.diagonal_fin_one + theorem Matrix.diagonal_fin_three + theorem Matrix.diagonal_fin_two + theorem Matrix.diagonal_vec1 + theorem Matrix.diagonal_vec2 + theorem Matrix.diagonal_vec3 2026-02-03 09:18:43 d72a3c3 chore: add a test for differential geometry elaborator errors in the … (#34564) …presence of metavariables The error is not great; let's document the current behaviour before we improve it. ESTIMATED CHANGES Modified MathlibTest/DifferentialGeometry/NotationAdvanced.lean + theorem contMDiff_proj + def proj 2026-02-03 08:33:18 ac2b114 feat(Algebra/Group/Subgroup/Ker): kernel of a homomorphism composed with an isomorphism (#34580) feat(Algebra/Group/Subgroup/Ker): kernel of a homomorphism composed with an isomorphism The kernel of a homomorphism composed with an isomorphism is equal to the kernel of the homomorphism mapped by the inverse isomorphism. This is a dependency of a larger PR to formalize finitely presented groups #34236. ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Subgroup/Ker.lean + theorem MonoidHom.ker_comp_mulEquiv 2026-02-03 05:45:30 a91febd chore: migrate nolints workflow to GitHub App (#34749) This PR migrates the `nolints.yml` workflow from using a personal access token (`UPDATE_NOLINTS_TOKEN` from `leanprover-community-bot`) to using a GitHub App. 🤖 Prepared with Claude Code ESTIMATED CHANGES Modified .github/workflows/nolints.yml Modified .github/workflows/remove_deprecated_decls.yml 2026-02-03 05:03:41 0f81be6 chore: migrate nightly-testing workflows to GitHub App (#34751) This PR migrates the nightly-testing workflows from using a personal access token (`NIGHTLY_TESTING` from `leanprover-community-mathlib4-bot`) to using a GitHub App. Affects: `nightly_merge_master.yml`, `nightly_bump_toolchain.yml`, `discover-lean-pr-testing.yml`, `nightly_detect_failure.yml` **Note:** The app must be installed on both `mathlib4` AND `mathlib4-nightly-testing`, and secrets must be added to both repos. 🤖 Prepared with Claude Code ESTIMATED CHANGES Modified .github/workflows/discover-lean-pr-testing.yml Modified .github/workflows/nightly_bump_toolchain.yml Modified .github/workflows/nightly_detect_failure.yml Modified .github/workflows/nightly_merge_master.yml 2026-02-03 05:03:39 97cc7ce chore: migrate dependent-issues workflow to GitHub App (#34748) This PR migrates the `dependent-issues.yml` workflow from using a personal access token (`DEPENDENT_ISSUES_TOKEN` from `mathlib-dependent-issues-bot`) to using a GitHub App. 🤖 Prepared with Claude Code ESTIMATED CHANGES Modified .github/workflows/dependent-issues.yml 2026-02-03 04:48:13 06d4f73 chore: migrate merge-conflicts workflow to GitHub App (#34747) This PR migrates the `merge_conflicts.yml` workflow from using a personal access token (`MERGE_CONFLICTS_TOKEN` from `mathlib-merge-conflicts-bot`) to using a GitHub App. 🤖 Prepared with Claude Code ESTIMATED CHANGES Modified .github/workflows/merge_conflicts.yml 2026-02-03 04:16:14 58a8e4f chore(RingTheory): clean up code (#34360) Utilise opened namespaces where available, spell out projections, style, shorten proofs. No new definitions/theorems. ESTIMATED CHANGES Modified Mathlib/RingTheory/Finiteness/Basic.lean +/- theorem Module.Finite.iff_fg +/- theorem Module.Finite.span_of_finite Modified Mathlib/RingTheory/Finiteness/Defs.lean +/- theorem Module.Finite.exists_fin +/- theorem Submodule.fg_def Modified Mathlib/RingTheory/Finiteness/Ideal.lean 2026-02-03 01:45:36 3fa53c5 chore(deps): bump dawidd6/action-download-artifact from 13 to 14 in /.github/workflows in the actions-version-updates group across 1 directory (#34743) Bumps the actions-version-updates group with 1 update in the /.github/workflows directory: [dawidd6/action-download-artifact](https://github.com/dawidd6/action-download-artifact). Updates `dawidd6/action-download-artifact` from 13 to 14 ESTIMATED CHANGES Modified .github/workflows/maintainer_bors_wf_run.yml Modified .github/workflows/maintainer_merge_wf_run.yml 2026-02-03 01:12:11 1ede81f ci: Use reusable workflow instead of bash-generated yamls (#34590) - Replace bash‑generated CI workflows with a [reusable workflow](https://docs.github.com/en/actions/how-tos/reuse-automations/reuse-workflows) template (build_template.yml) and thin callers (build.yml, bors.yml, build_fork.yml). - Remove generator script and its actionlint check; update dependabot scope accordingly. - Move caller‑specific if conditions to the top‑level jobs ESTIMATED CHANGES Modified .github/dependabot.yml Modified .github/workflows/actionlint.yml Modified .github/workflows/bors.yml Modified .github/workflows/build.yml Modified .github/workflows/build_fork.yml Renamed .github/build.in.yml to .github/workflows/build_template.yml Deleted .github/workflows/mk_build_yml.sh Modified bors.toml 2026-02-03 00:57:10 0f2ba92 doc: wrap URL in angle brackets (#32556) Otherwise `doc-gen` splits some URLs inappropriately. ESTIMATED CHANGES Modified Counterexamples/EulerSumOfPowers.lean 2026-02-02 23:54:46 f66351d perf(Tactic/Translate): merge some environment extensions (#34685) This PR merges the `translations` and `argInfoAttr` environment extensions used in `to_additive` and `to_dual` into a single environment extension. Arguably, this makes the implementation cleaner, because data that corresponds to eachother is put in the same place together. Moreover, this should lead to a performance improvement because the very existence of persistent environment extensions increases import times. This PR also changes one implementation detail: when translating a constant based on a prefix of its name, such as in `Foo.casesOn` given a translation of `Foo`, We inherit the `relevant_arg` argument from the main translation. This results in a test case succeeding that previously failed. See [#mathlib4 > Performance cost of environment extensions](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Performance.20cost.20of.20environment.20extensions/with/571319988) ESTIMATED CHANGES Modified Mathlib/Tactic/Translate/Core.lean - def Mathlib.Tactic.Translate.ArgInfo.reverse - structure Mathlib.Tactic.Translate.ArgInfo + structure Mathlib.Tactic.Translate.TranslationInfo - def Mathlib.Tactic.Translate.findPrefixTranslation + def Mathlib.Tactic.Translate.findPrefixTranslation? +/- def Mathlib.Tactic.Translate.findTranslation? + def Mathlib.Tactic.Translate.findTranslationName? +/- def Mathlib.Tactic.Translate.guessReorder +/- def Mathlib.Tactic.Translate.insertTranslation +/- def Mathlib.Tactic.Translate.proceedFields +/- def Mathlib.Tactic.Translate.proceedFieldsAux +/- def Mathlib.Tactic.Translate.reorderForall +/- def Mathlib.Tactic.Translate.reorderLambda Modified Mathlib/Tactic/Translate/ToAdditive.lean Modified Mathlib/Tactic/Translate/ToDual.lean Modified MathlibTest/toAdditive.lean 2026-02-02 23:54:45 7723d00 perf(Tactic/StacksAttribute): avoid initialization cost (#34679) This PR improves the performace by removing the initialization cost of the `stacks` attribute. Previously, a `HashSet` of stacks tags was being created upon initialization of any file. See [#mathlib4 > Performance cost of environment extensions](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Performance.20cost.20of.20environment.20extensions/with/571319366) ESTIMATED CHANGES Modified Mathlib/Tactic/StacksAttribute.lean 2026-02-02 23:29:13 6a1be36 chore: deprecate `memoFix` and `replaceRec` (#34384) This deprecation was requested by Floris van Doorn in #33236 ESTIMATED CHANGES Modified Mathlib/Lean/Expr.lean Modified Mathlib/Lean/Expr/ReplaceRec.lean Modified Mathlib/Tactic/Linter/DirectoryDependency.lean Modified Mathlib/Util/MemoFix.lean Deleted MathlibTest/Expr.lean - def bar - def foo - def reorderLastArguments 2026-02-02 21:52:49 534cf0b feat(Analysis/../Connected): balls are (pre)connected (#33514) --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) ESTIMATED CHANGES Modified Mathlib/Analysis/Normed/Module/Connected.lean - theorem Metric.ball_contractible + theorem Metric.contractibleSpace_ball + theorem Metric.contractibleSpace_closedBall + theorem Metric.contractibleSpace_eball - theorem Metric.eball_contractible + theorem Metric.isConnected_closedBall + theorem Metric.isConnected_closedEBall +/- theorem Metric.isConnected_eball + theorem Metric.isPathConnected_closedBall + theorem Metric.isPathConnected_closedEBall +/- theorem Metric.isPathConnected_eball + theorem Metric.isPreconnected_ball + theorem Metric.isPreconnected_closedBall + theorem Metric.isPreconnected_closedEBall + theorem Metric.isPreconnected_eball Modified Mathlib/Analysis/Normed/Module/Convex.lean +/- theorem convex_ball + theorem convex_closedEBall + theorem convex_eball 2026-02-02 18:20:53 0fec9f3 chore: update Mathlib dependencies 2026-02-02 (#34733) This PR updates the Mathlib dependencies. ESTIMATED CHANGES Modified lake-manifest.json 2026-02-02 17:36:15 aaa0b3d refactor(RingTheory/UniqueFactorizationDomain/Basic): golf `factors_pos` (#34253) This PR golfs `factors_pos` by extracting two lemmas `factors_of_isUnit` and `factors_eq_zero`. ESTIMATED CHANGES Modified Mathlib/RingTheory/UniqueFactorizationDomain/Basic.lean + theorem UniqueFactorizationMonoid.factors_eq_zero + theorem UniqueFactorizationMonoid.factors_of_isUnit +/- theorem UniqueFactorizationMonoid.factors_pos 2026-02-02 16:46:19 18f94b2 feat(LinearAlgebra): define row- and column-stochastic matrices (#28708) This PR defines row- and column-stochastic matrices, and relates them to doubly stochastic matrices (which are already in mathlib). ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Group/Submonoid/Defs.lean Modified Mathlib/Analysis/Convex/DoublyStochasticMatrix.lean + theorem doublyStochastic_eq_rowStochastic_inf_colStochastic + theorem mem_doublyStochastic_iff_mem_rowStochastic_and_mem_colStochastic + theorem transpose_mem_doublyStochastif_iff Added Mathlib/LinearAlgebra/Matrix/Stochastic.lean + def Matrix.colStochastic + theorem Matrix.convex_colStochastic + theorem Matrix.convex_rowStochastic + theorem Matrix.le_one_of_mem_colStochastic + theorem Matrix.le_one_of_mem_rowStochastic + theorem Matrix.mem_colStochastic + theorem Matrix.mem_colStochastic_iff_sum + theorem Matrix.mem_rowStochastic + theorem Matrix.mem_rowStochastic_iff_sum + theorem Matrix.mulVec_dotProduct_one_eq_one_colStochastic + theorem Matrix.nonneg_mulVec_of_mem_colStochastic + theorem Matrix.nonneg_mulVec_of_mem_rowStochastic + theorem Matrix.nonneg_of_mem_colStochastic + theorem Matrix.nonneg_of_mem_rowStochastic + theorem Matrix.nonneg_vecMul_of_mem_colStochastic + theorem Matrix.nonneg_vecMul_of_mem_rowStochastic + theorem Matrix.one_vecMul_of_mem_colStochastic + theorem Matrix.one_vecMul_of_mem_rowStochastic + theorem Matrix.permMatrix_mem_colStochastic + theorem Matrix.permMatrix_mem_rowStochastic + def Matrix.rowStochastic + theorem Matrix.sum_col_of_mem_colStochastic + theorem Matrix.sum_row_of_mem_rowStochastic + theorem Matrix.transpose_mem_colStochastic_iff_mem_rowStochastic + theorem Matrix.transpose_mem_rowStochastic_iff_mem_colStochastic + theorem Matrix.vecMul_dotProduct_one_eq_one_rowStochastic 2026-02-02 15:02:56 54aa5b5 feat: elements of `adjoin S` are fixed by `m` iff elements of `S` are (#33989) This PR proves: ```lean (∀ x ∈ adjoin F S, m • x = x) ↔ (∀ x ∈ S, m • x = x) ``` both in the `Algebra.adjoin` and `IntermediateField.adjoin` cases ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/Subalgebra/Lattice.lean + theorem Algebra.forall_mem_adjoin_smul_eq_self_iff Modified Mathlib/FieldTheory/Fixed.lean + def FixedBy.intermediateField + theorem FixedBy.intermediateField_mem_iff + theorem FixedBy.subfield_mem_iff Modified Mathlib/FieldTheory/IntermediateField/Adjoin/Basic.lean + theorem IntermediateField.forall_mem_adjoin_smul_eq_self_iff 2026-02-02 13:51:38 1b5be7f perf(to_additive): hard code `OfNat` and `OfNat.ofNat` for numeral translation (#34696) This PR removes the environment extension used by `to_additive` to determine which numerals to translate. The only two entries in this environment extension are `OfNat` and `OfNat.ofNat`, and I don't see why this would change. See [#mathlib4 > Performance cost of environment extensions](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Performance.20cost.20of.20environment.20extensions/with/571319366) ESTIMATED CHANGES Modified Mathlib/Tactic/ToAdditive.lean Modified Mathlib/Tactic/Translate/Core.lean 2026-02-02 13:14:20 3735095 chore(deps): bump the actions-version-updates group across 2 directories with 10 updates (#34682) Bumps the actions-version-updates group with 2 updates in the /.github directory: [actions/checkout](https://github.com/actions/checkout) and [leanprover/lean-action](https://github.com/leanprover/lean-action). Bumps the actions-version-updates group with 10 updates in the /.github/workflows directory: | Package | From | To | | --- | --- | --- | | [actions/checkout](https://github.com/actions/checkout) | `6.0.1` | `6.0.2` | | [leanprover/lean-action](https://github.com/leanprover/lean-action) | `1.3.0` | `1.4.0` | | [actions/setup-python](https://github.com/actions/setup-python) | `6.1.0` | `6.2.0` | | [reviewdog/action-actionlint](https://github.com/reviewdog/action-actionlint) | `1.69.1` | `1.70.0` | | [styfle/cancel-workflow-action](https://github.com/styfle/cancel-workflow-action) | `0.12.1` | `0.13.0` | | [docker/login-action](https://github.com/docker/login-action) | `3.6.0` | `3.7.0` | | [actions/attest-build-provenance](https://github.com/actions/attest-build-provenance) | `3.1.0` | `3.2.0` | | [corentinmusard/otel-cicd-action](https://github.com/corentinmusard/otel-cicd-action) | `2.2.4` | `3.0.0` | | [dawidd6/action-download-artifact](https://github.com/dawidd6/action-download-artifact) | `12` | `13` | | [peter-evans/create-pull-request](https://github.com/peter-evans/create-pull-request) | `8.0.0` | `8.1.0` | ESTIMATED CHANGES Modified .github/build.in.yml Modified .github/workflows/PR_summary.yml Modified .github/workflows/actionlint.yml Modified .github/workflows/add_label_from_diff.yaml Modified .github/workflows/auto_assign_reviewers.yaml Modified .github/workflows/bors.yml Modified .github/workflows/build.yml Modified .github/workflows/build_fork.yml Modified .github/workflows/check_pr_titles.yaml Modified .github/workflows/commit_verification.yml Modified .github/workflows/daily.yml Modified .github/workflows/dependent-issues.yml Modified .github/workflows/discover-lean-pr-testing.yml Modified .github/workflows/docker_build.yml Modified .github/workflows/export_telemetry.yaml Modified .github/workflows/latest_import.yml Modified .github/workflows/long_file_report.yml Modified .github/workflows/maintainer_bors.yml Modified .github/workflows/maintainer_bors_wf_run.yml Modified .github/workflows/maintainer_merge.yml Modified .github/workflows/maintainer_merge_wf_run.yml Modified .github/workflows/nightly-docgen.yml Modified .github/workflows/nightly-regression-report.yml Modified .github/workflows/nightly_bump_toolchain.yml Modified .github/workflows/nightly_detect_failure.yml Modified .github/workflows/nightly_merge_master.yml Modified .github/workflows/nolints.yml Modified .github/workflows/pre-commit.yml Modified .github/workflows/remove_deprecated_decls.yml Modified .github/workflows/technical_debt_metrics.yml Modified .github/workflows/update_dependencies.yml Modified .github/workflows/update_dependencies_zulip.yml Modified .github/workflows/weekly-lints.yml Modified .github/workflows/zulip_emoji_closed_pr.yaml Modified .github/workflows/zulip_emoji_labelling.yaml Modified .github/workflows/zulip_emoji_merge_delegate.yaml 2026-02-02 13:14:18 5cf41b2 chore(MathlibTest): prefer setting pp.mvars.anonymous to false over pp.mvars (#34604) The new option only replaces autogenerated anonymous metavariables, but leaves ordinary accessible mvars with names present. ESTIMATED CHANGES Modified MathlibTest/Algebra/MonoidAlgebra/Defs.lean Modified MathlibTest/EuclideanSpace.lean Modified MathlibTest/FinCoercions.lean Modified MathlibTest/Util/PrintSorries.lean Modified MathlibTest/abel.lean Modified MathlibTest/conv_widget.lean Modified MathlibTest/superscript.lean 2026-02-02 12:41:28 e0a6278 chore(Algebra/CharP/Two): reduce dependencies (#34663) --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) ESTIMATED CHANGES Modified Mathlib/Algebra/CharP/Lemmas.lean Modified Mathlib/Algebra/CharP/Two.lean - theorem CharP.orderOf_eq_two_iff +/- theorem CharTwo.add_self_eq_zero +/- theorem CharTwo.add_sq - theorem orderOf_neg_one Modified Mathlib/Data/Nat/Totient.lean Modified Mathlib/GroupTheory/OrderOfElement.lean + theorem CharP.orderOf_eq_two_iff + theorem orderOf_neg_one Modified Mathlib/GroupTheory/Perm/MaximalSubgroups.lean Modified Mathlib/GroupTheory/RegularWreathProduct.lean Modified Mathlib/GroupTheory/SpecificGroups/Cyclic.lean Modified Mathlib/RingTheory/IntegralDomain.lean 2026-02-02 12:18:51 fd928cd chore(bors.toml): only cut PR bodies from commit messages if `---` starts a line (#34684) Currently bors cuts the rest of the PR body from the commit message if it contains `---` anywhere in the message, including in formatting markdown tables (cf. #33456 and commit fa0ba716743c7bb9db8ecdae0d8696764f00a153). Adding `\n` here should prevent bors from mangling such messages. ESTIMATED CHANGES Modified bors.toml 2026-02-02 10:07:19 0da8435 feat(Tactic/FunProp): make `fun_prop` able to tag `→` and `∀` (#32888) by representing forall as a function application internally. Also tag `Measurable.imp` and `Measurable.forall` which were rejected by `fun_prop`. ESTIMATED CHANGES Modified Mathlib/MeasureTheory/MeasurableSpace/Constructions.lean Modified Mathlib/Tactic/FunProp/Mor.lean Modified MathlibTest/fun_prop.lean 2026-02-02 08:53:30 85fcdf8 feat: measurable union of a family of measurable sets (#34680) Needed for #34055 ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Measure/Typeclasses/SFinite.lean + theorem MeasureTheory.Measure.exists_ae_subset_biUnion_countable 2026-02-02 08:53:26 f19297b feat(MeasureTheory): FTC and integration by parts for absolutely continuous functions (#29508) Prove Fundamental Theorem of Calculus and integration by parts for absolutely continuous functions. Part of originally planned #29092. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/BigOperators/Group/Finset/Gaps.lean + theorem Finset.prod_eq_prod_range_intervalGapsWithin Modified Mathlib/Analysis/Analytic/OfScalars.lean Modified Mathlib/Analysis/Real/OfDigits.lean Modified Mathlib/MeasureTheory/Covering/Vitali.lean + theorem Vitali.exists_disjoint_covering_ae' Added Mathlib/MeasureTheory/Integral/IntervalIntegral/AbsolutelyContinuousFun.lean + theorem AbsolutelyContinuousOnInterval.const_of_ae_hasDerivAt_zero + theorem AbsolutelyContinuousOnInterval.dist_le_of_pairwiseDisjoint_hasSum + theorem AbsolutelyContinuousOnInterval.integral_deriv_eq_sub + theorem AbsolutelyContinuousOnInterval.integral_deriv_mul_eq_sub + theorem AbsolutelyContinuousOnInterval.integral_mul_deriv_eq_deriv_mul + theorem exists_dist_slope_lt_pairwiseDisjoint_hasSum Modified Mathlib/Topology/Algebra/InfiniteSum/Basic.lean Modified Mathlib/Topology/Algebra/InfiniteSum/Real.lean + theorem Real.tsum_le_of_sum_le 2026-02-02 08:05:09 0c771f3 chore: simplify simp/grind patterns as suggested by linter (#34714) This PR removes redundant `simp`, `simp only`, and `have` statements before `grind` where grind can handle the goal directly, as suggested by the grind linter in the nightly testing run. Addresses 6 of the 14 warnings from https://github.com/leanprover-community/mathlib4/actions/runs/21578471064 Zulip thread: https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Weekly.20linting.20log/near/571353143 The remaining warnings involve cases where the preprocessing step (`norm_cast`, `ext`, `convert_to`, etc.) is actually necessary for grind to succeed. 🤖 Prepared with Claude Code ESTIMATED CHANGES Modified Mathlib/Algebra/BigOperators/Group/Finset/Basic.lean Modified Mathlib/Data/Setoid/Partition.lean Modified Mathlib/MeasureTheory/Measure/AddContent.lean Modified Mathlib/NumberTheory/FactorisationProperties.lean Modified Mathlib/Order/Interval/Finset/Gaps.lean Modified Mathlib/Topology/Sets/CompactOpenCovered.lean 2026-02-02 08:05:07 f8e8a41 feat(RingTheory/Polynomial/Cyclotomic): vanishing sums of prime roots of unity (#34592) This PR adds: - `IsPrimitiveRoot.sum_eq_zero_iff_eq_coeff`: for a prime `p` and a primitive `p`-th root of unity `ζ` in a characteristic zero field, a ℚ-linear combination `∑ αᵢ ζ^i` vanishes if and only if all coefficients `αᵢ` are equal. - a variant `sum_eq_zero_iff_eq_coeff'` with integer coefficients. This is a fundamental result in algebraic number theory, following from the irreducibility of the cyclotomic polynomial over ℚ. Reference: Washington, *Introduction to Cyclotomic Fields*, Lemma 2.8.5. ESTIMATED CHANGES Modified Mathlib/RingTheory/Polynomial/Cyclotomic/Roots.lean + theorem IsPrimitiveRoot.sum_eq_zero_iff_forall_eq + theorem IsPrimitiveRoot.sum_eq_zero_iff_forall_eq_int 2026-02-02 08:05:05 51da7e3 feat(GroupTheory/GroupAction/SubMulAction/Combination): primitivity of the permutation action. (#34307) Prove the primitivity of the permutation action of `Equiv.Perm` or `alternatingGroup` on `Nat.Combination`. This will be used in #33082 to prove the simplicity of the alternating group on at least 5 letters. ESTIMATED CHANGES Modified Mathlib/GroupTheory/GroupAction/SubMulAction/Combination.lean +/- theorem Set.powersetCard.addAction_faithful + theorem Set.powersetCard.card_eq +/- theorem Set.powersetCard.coe_coe +/- theorem Set.powersetCard.coe_compl + theorem Set.powersetCard.coe_finset +/- theorem Set.powersetCard.coe_mulActionHom_of_embedding + theorem Set.powersetCard.coe_nonempty_iff + theorem Set.powersetCard.coe_nontrivial_iff +/- theorem Set.powersetCard.coe_smul +/- def Set.powersetCard.compl + theorem Set.powersetCard.eq_empty_iff +/- theorem Set.powersetCard.faithfulSMul +/- theorem Set.powersetCard.faithfulVAdd + theorem Set.powersetCard.infinite + theorem Set.powersetCard.isPreprimitive_alternatingGroup + theorem Set.powersetCard.isPreprimitive_perm +/- theorem Set.powersetCard.isPretransitive + theorem Set.powersetCard.isPretransitive_alternatingGroup +/- theorem Set.powersetCard.mem_compl +/- def Set.powersetCard.mulActionHom_of_embedding +/- theorem Set.powersetCard.mulActionHom_of_embedding_surjective +/- def Set.powersetCard.mulActionHom_singleton +/- theorem Set.powersetCard.mulActionHom_singleton_bijective +/- theorem Set.powersetCard.mulAction_faithful + theorem Set.powersetCard.ncard_eq + theorem Set.powersetCard.nontrivial_iff + theorem Set.powersetCard.stabilizer_coe +/- def Set.powersetCard.subMulAction 2026-02-02 08:05:04 3cb7427 feat(Order): `WithBotTop` and the extended integers (#33876) This files defines an abbreviation `WithBotTop ι` for `WithBot (WithTop ι)`. We also introduce an abbreviation `EInt` for `WithBotTop ℤ`. Kevin Buzzard is made a coauthor of the file because it is very similar to `Data.EReal.Basic`. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Order/WithBotTop.lean + def WithBotTop.coe + theorem WithBotTop.coe_injective + theorem WithBotTop.coe_le_coe + theorem WithBotTop.coe_lt_coe + theorem WithBotTop.coe_monotone + theorem WithBotTop.coe_ne_bot + theorem WithBotTop.coe_ne_top + theorem WithBotTop.coe_strictMono + theorem WithBotTop.rec_bot + theorem WithBotTop.rec_coe + theorem WithBotTop.rec_top + theorem WithBotTop.top_ne_bot 2026-02-02 08:05:02 a91e88c feat(RingTheory/IdealFilter): topologies associated to ideal filters (#33853) This PR introduces topological structures on a ring arising from an IdealFilter. Main additions: * `IdealFilter.addGroupFilterBasis` and the induced additive group topology. * Under `F.IsUniform`, `IdealFilter.ringFilterBasis` and the induced ring topology. * A characterization of uniform ideal filters in terms of the existence of a `RingFilterBasis` (`isUniform_iff_exists_ringFilterBasis`). * Neighborhood characterizations for both the additive and ring topologies. * A proof that the resulting ring topology is linear (`IsLinearTopology`). The construction follows the standard picture of uniform (Gabriel) filters generating linear topologies on rings, using colon ideals to witness stability under right multiplication. This provides the topological counterpart to the algebraic theory of ideal filters developed in RingTheory/IdealFilter/Basic. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/RingTheory/IdealFilter/Basic.lean - structure IdealFilter.IsGabriel - structure IdealFilter.IsUniform Added Mathlib/RingTheory/IdealFilter/Topology.lean + def IdealFilter.addGroupFilterBasis + theorem IdealFilter.isUniform_iff_exists_ringFilterBasis + def IdealFilter.ringFilterBasis + theorem WithIdealFilter.mem_nhds_iff + theorem WithIdealFilter.mem_nhds_zero_iff + def WithIdealFilter 2026-02-02 08:04:59 f6d9e1d feat(Algebra/Module/SpanRank): add comparing lemmas for span rank (#33359) ESTIMATED CHANGES Modified Mathlib/Algebra/Module/SpanRank.lean + theorem Submodule.le_spanRank_restrictScalars +/- theorem Submodule.spanFinrank_map_le_of_fg + theorem Submodule.spanRank_eq_of_equiv + theorem Submodule.spanRank_map_eq_of_injective +/- theorem Submodule.spanRank_map_le + theorem Submodule.spanRank_range_le + theorem Submodule.spanRank_restrictScalars_eq + theorem Submodule.spanRank_top 2026-02-02 07:19:30 7cecd1f feat(RingTheory/MvPolynomial): powers of ideal of variables (#33539) 1. Added a new file `Algebra/Group/TypeTags/Pointwise.lean` to provide more helper results about pointwise operations on sets 2. Provided more APIs for `MvPolynomial.restrictSupport` and defined `restrictSupportIdeal` to be the ideal determined by `restrictSupport R s` when `s` is an upper set 3. Defined `MvPolynomial.idealOfVars` to be the ideal spanned by all variables in `MvPolynomial` and provided results about its powers 4. Provided some relavent helper results while golfing ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Group/Pointwise/Set/Basic.lean + theorem Set.preimage_pow_subset Added Mathlib/Algebra/Group/TypeTags/Pointwise.lean + theorem Multiplicative.ofAdd_image_nsmul + theorem Multiplicative.ofAdd_image_setAdd + theorem Multiplicative.toAdd_image_nsmul + theorem Multiplicative.toAdd_image_setMul Modified Mathlib/Algebra/Order/Group/Pointwise/Interval.lean + theorem Set.Ici_mul_Ici_eq + theorem Set.Ici_one_eq_univ + theorem Set.Ici_pow_eq Modified Mathlib/Data/Finsupp/Weight.lean + theorem Finsupp.degree_mono + theorem Finsupp.degree_preimage_add + theorem Finsupp.degree_preimage_nsmul + theorem Finsupp.exists_le_degree_eq + theorem Finsupp.image_pow_eq_finsuppProd_image + theorem Finsupp.nsmul_single_one_image Modified Mathlib/RingTheory/MvPolynomial/Basic.lean + theorem MvPolynomial.mem_restrictSupport_iff + theorem MvPolynomial.monomial_mem_restrictSupport + theorem MvPolynomial.restrictScalars_restrictSupportIdeal + def MvPolynomial.restrictSupportIdeal + theorem MvPolynomial.restrictSupport_add + theorem MvPolynomial.restrictSupport_eq_span + theorem MvPolynomial.restrictSupport_nsmul + theorem MvPolynomial.restrictSupport_univ + theorem MvPolynomial.restrictSupport_zero Modified Mathlib/RingTheory/MvPolynomial/Ideal.lean + theorem MvPolynomial.C_mem_pow_idealOfVars_iff + def MvPolynomial.idealOfVars + theorem MvPolynomial.idealOfVars_eq_restrictSupportIdeal + theorem MvPolynomial.mem_pow_idealOfVars_iff' + theorem MvPolynomial.mem_pow_idealOfVars_iff + theorem MvPolynomial.monomial_mem_pow_idealOfVars_iff + theorem MvPolynomial.pow_idealOfVars + theorem MvPolynomial.pow_idealOfVars_eq_span 2026-02-02 02:01:53 20310f5 chore: rename `mk_iUnion_Ordinal_le_of_le` → `mk_biUnion_le_of_le` (#34452) The former had bad capitalization, and referred to `iUnion` where `biUnion` would be more conventional. ESTIMATED CHANGES Modified Mathlib/MeasureTheory/MeasurableSpace/Card.lean Modified Mathlib/SetTheory/Cardinal/Ordinal.lean + theorem Cardinal.mk_biUnion_le_of_le + theorem Cardinal.mk_biUnion_le_of_le_lift - theorem Cardinal.mk_iUnion_Ordinal_le_of_le - theorem Cardinal.mk_iUnion_Ordinal_lift_le_of_le 2026-02-02 00:53:30 9d56841 feat(Data/Set/Card): `ncard`/`encard` is strictly monotonic on finite sets (#34689) ESTIMATED CHANGES Modified Mathlib/Data/Set/Card.lean + theorem Set.Finite.encard_strictMonoOn + theorem Set.Finite.ncard_strictMonoOn Modified Mathlib/GroupTheory/GroupAction/Jordan.lean 2026-02-01 22:45:22 69decbd chore: update Mathlib dependencies 2026-02-01 (#34692) This PR updates the Mathlib dependencies. ESTIMATED CHANGES Modified Mathlib/Tactic/Common.lean Modified lake-manifest.json 2026-02-01 22:45:20 3e8301e chore(Archive): small golfs (#34688) Use fun_prop more, and make indentation match mathlib style better. Extracted from #31607. ESTIMATED CHANGES Modified Archive/Wiedijk100Theorems/AreaOfACircle.lean Modified Archive/Wiedijk100Theorems/BuffonsNeedle.lean 2026-02-01 22:45:19 51d732a feat: use IndexedPartition.piecewise to create simple/measurable/strongly measurable functions (#32127) The lemmas proved in this PR are needed in https://github.com/RemyDegenne/brownian-motion/pull/304. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Data/Setoid/Partition.lean +/- theorem IndexedPartition.piecewise_bij +/- theorem IndexedPartition.piecewise_inj + theorem IndexedPartition.piecewise_preimage + theorem IndexedPartition.range_piecewise + theorem IndexedPartition.range_piecewise_subset Added Mathlib/MeasureTheory/Function/Piecewise.lean + theorem IndexedPartition.aemeasurable_piecewise + theorem IndexedPartition.aestronglyMeasurable_piecewise + theorem IndexedPartition.measurable_piecewise + def IndexedPartition.simpleFunc_piecewise + theorem IndexedPartition.stronglyMeasurable_piecewise Modified Mathlib/MeasureTheory/MeasurableSpace/Basic.lean 2026-02-01 21:55:51 76468a8 feat(Probability): Add `condLExp`, conditional expectation with the Lebesgue integral (#33064) Add definition of `condLExp`, conditional expectation using the Lebesgue integral. Also add basic API. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/MeasureTheory/Function/ConditionalLExpectation.lean + theorem MeasureTheory.ae_eq_condLExp + theorem MeasureTheory.ae_eq_condLExp₀ + theorem MeasureTheory.condLExp_add_le + theorem MeasureTheory.condLExp_add_left + theorem MeasureTheory.condLExp_add_right + theorem MeasureTheory.condLExp_bot' + theorem MeasureTheory.condLExp_bot + theorem MeasureTheory.condLExp_bot_ae_eq + theorem MeasureTheory.condLExp_congr_ae + theorem MeasureTheory.condLExp_congr_ae_trim + theorem MeasureTheory.condLExp_const + theorem MeasureTheory.condLExp_eq_self + theorem MeasureTheory.condLExp_mono + theorem MeasureTheory.condLExp_of_not_le + theorem MeasureTheory.condLExp_of_not_sigmaFinite + theorem MeasureTheory.condLExp_of_not_sub_sigma_measurable + theorem MeasureTheory.condLExp_smul' + theorem MeasureTheory.condLExp_smul + theorem MeasureTheory.condLExp_smul_le + theorem MeasureTheory.lintegral_condLExp + theorem MeasureTheory.measurable_condLExp' + theorem MeasureTheory.measurable_condLExp + theorem MeasureTheory.setLIntegral_condLExp + theorem MeasureTheory.setLIntegral_condLExp_trim Modified Mathlib/MeasureTheory/Integral/Lebesgue/Add.lean + theorem MeasureTheory.setLIntegral_trim + theorem MeasureTheory.setLIntegral_trim_ae Modified Mathlib/MeasureTheory/MeasurableSpace/CountablyGenerated.lean + theorem eq_const_of_measurable_bot Modified Mathlib/MeasureTheory/MeasurableSpace/Defs.lean Modified Mathlib/MeasureTheory/Measure/AEMeasurable.lean 2026-02-01 21:19:00 643693b chore(Data/Set/Card): small golf (#34691) ESTIMATED CHANGES Modified Mathlib/Data/Set/Card.lean 2026-02-01 20:12:34 4a1339f feat(Analysis/TemperedDistribution): Fourier transform of derivatives (#34294) The same theorems as for Schwartz functions follow by using duality. ESTIMATED CHANGES Modified Mathlib/Analysis/Distribution/TemperedDistribution.lean + theorem TemperedDistribution.fourierInv_lineDerivOp_eq + theorem TemperedDistribution.fourier_lineDerivOp_eq + theorem TemperedDistribution.lineDerivOp_fourierInv_eq + theorem TemperedDistribution.lineDerivOp_fourier_eq 2026-02-01 19:57:28 fa98765 feat(MeasuredSets): measure is 1-lipschitz (#34665) ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Measure/MeasuredSets.lean + theorem MeasureTheory.MeasuredSets.lipschitzWith_measureReal + theorem MeasureTheory.MeasuredSets.real_sub_real_le_dist + theorem MeasureTheory.MeasuredSets.sub_le_edist 2026-02-01 18:45:22 dd7678a refactor: remove order instances from `SetLike` (#32984) * Remove order instances from `SetLike` * Add class `IsConcreteLE` for `SetLike` instances whose map is order-preserving See discussion at https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Abstracting.20the.20substructure.20lattice.20construction/with/563952738 ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/NonUnitalSubalgebra.lean Modified Mathlib/Algebra/Algebra/Subalgebra/Basic.lean Modified Mathlib/Algebra/Field/Subfield/Defs.lean Modified Mathlib/Algebra/Group/Subgroup/Defs.lean +/- theorem SubgroupClass.coe_inclusion +/- def SubgroupClass.inclusion +/- theorem SubgroupClass.inclusion_inclusion +/- theorem SubgroupClass.inclusion_mk +/- theorem SubgroupClass.inclusion_right +/- theorem SubgroupClass.inclusion_self +/- theorem SubgroupClass.subset_union +/- theorem SubgroupClass.subtype_comp_inclusion Modified Mathlib/Algebra/Group/Submonoid/Defs.lean Modified Mathlib/Algebra/Group/Subsemigroup/Defs.lean Modified Mathlib/Algebra/Lie/Subalgebra.lean Modified Mathlib/Algebra/Lie/Submodule.lean Modified Mathlib/Algebra/Module/Submodule/Defs.lean Modified Mathlib/Algebra/Order/Group/Cone.lean Modified Mathlib/Algebra/Order/Group/Ideal.lean Modified Mathlib/Algebra/Order/Ring/Cone.lean Modified Mathlib/Algebra/Order/Ring/Ordering/Defs.lean Modified Mathlib/Algebra/Ring/Subring/Defs.lean Modified Mathlib/Algebra/Ring/Subsemiring/Defs.lean Modified Mathlib/Algebra/Star/NonUnitalSubalgebra.lean Modified Mathlib/Algebra/Star/Subalgebra.lean Modified Mathlib/Algebra/Star/Subsemiring.lean Modified Mathlib/AlgebraicGeometry/AffineScheme.lean Modified Mathlib/AlgebraicGeometry/Cover/Open.lean Modified Mathlib/AlgebraicGeometry/Cover/QuasiCompact.lean Modified Mathlib/AlgebraicGeometry/Limits.lean Modified Mathlib/AlgebraicGeometry/Morphisms/Basic.lean Modified Mathlib/AlgebraicGeometry/Morphisms/Separated.lean Modified Mathlib/AlgebraicGeometry/ProjectiveSpectrum/Basic.lean Modified Mathlib/AlgebraicGeometry/Scheme.lean Modified Mathlib/AlgebraicGeometry/StructureSheaf.lean Modified Mathlib/Analysis/Convex/Body.lean Modified Mathlib/Analysis/Convex/Cone/Basic.lean Modified Mathlib/Analysis/Convex/Cone/Dual.lean Modified Mathlib/Analysis/InnerProductSpace/Projection/FiniteDimensional.lean Modified Mathlib/Analysis/VonNeumannAlgebra/Basic.lean Modified Mathlib/CategoryTheory/Groupoid/Subgroupoid.lean Modified Mathlib/Combinatorics/SimpleGraph/Ends/Defs.lean Modified Mathlib/Combinatorics/Young/YoungDiagram.lean Modified Mathlib/Data/Finset/Defs.lean Modified Mathlib/Data/SetLike/Basic.lean + def LE.ofSetLike + def PartialOrder.ofSetLike +/- theorem SetLike.coe_ssubset_coe +/- theorem SetLike.coe_subset_coe +/- theorem SetLike.exists_not_mem_of_ne_top +/- theorem SetLike.exists_of_lt +/- theorem SetLike.le_def +/- theorem SetLike.mem_of_subsingleton +/- theorem SetLike.not_le_iff_exists Modified Mathlib/Data/Sym/Sym2.lean Modified Mathlib/FieldTheory/IntermediateField/Basic.lean Modified Mathlib/Geometry/Convex/Cone/Basic.lean Modified Mathlib/Geometry/Euclidean/Sphere/Power.lean Modified Mathlib/Geometry/Euclidean/Sphere/Tangent.lean Modified Mathlib/Geometry/Manifold/StructureGroupoid.lean Modified Mathlib/Geometry/RingedSpace/Basic.lean Modified Mathlib/GroupTheory/GroupAction/SubMulAction.lean Modified Mathlib/GroupTheory/GroupAction/SubMulAction/Combination.lean Modified Mathlib/GroupTheory/Sylow.lean Modified Mathlib/LinearAlgebra/AffineSpace/AffineSubspace/Defs.lean Modified Mathlib/LinearAlgebra/Projectivization/Subspace.lean Modified Mathlib/ModelTheory/Definability.lean Modified Mathlib/ModelTheory/ElementarySubstructures.lean Modified Mathlib/ModelTheory/Substructures.lean Modified Mathlib/ModelTheory/Types.lean Modified Mathlib/NumberTheory/NumberField/FractionalIdeal.lean Modified Mathlib/Order/Atoms.lean Modified Mathlib/Order/BooleanSubalgebra.lean Modified Mathlib/Order/BourbakiWitt.lean Modified Mathlib/Order/Closure.lean Modified Mathlib/Order/CompleteSublattice.lean Modified Mathlib/Order/Ideal.lean Modified Mathlib/Order/PFilter.lean Modified Mathlib/Order/Partition/Basic.lean Modified Mathlib/Order/Preorder/Chain.lean Modified Mathlib/Order/Sublattice.lean Modified Mathlib/Order/Sublocale.lean Modified Mathlib/Order/UpperLower/CompleteLattice.lean Modified Mathlib/Order/UpperLower/Relative.lean Modified Mathlib/RepresentationTheory/Subrepresentation.lean Modified Mathlib/RingTheory/DedekindDomain/Different.lean Modified Mathlib/RingTheory/DedekindDomain/Factorization.lean Modified Mathlib/RingTheory/DedekindDomain/Ideal/Basic.lean Modified Mathlib/RingTheory/DividedPowers/SubDPIdeal.lean Modified Mathlib/RingTheory/FilteredAlgebra/Basic.lean Modified Mathlib/RingTheory/FractionalIdeal/Basic.lean Modified Mathlib/RingTheory/FractionalIdeal/Extended.lean Modified Mathlib/RingTheory/FractionalIdeal/Inverse.lean Modified Mathlib/RingTheory/FractionalIdeal/Operations.lean Modified Mathlib/RingTheory/GradedAlgebra/Homogeneous/Ideal.lean Modified Mathlib/RingTheory/GradedAlgebra/Homogeneous/Submodule.lean Modified Mathlib/RingTheory/GradedAlgebra/Homogeneous/Subsemiring.lean Modified Mathlib/RingTheory/NonUnitalSubring/Defs.lean Modified Mathlib/RingTheory/NonUnitalSubsemiring/Defs.lean Modified Mathlib/RingTheory/TwoSidedIdeal/Basic.lean Modified Mathlib/RingTheory/Valuation/ValuationSubring.lean Modified Mathlib/SetTheory/Descriptive/Tree.lean Modified Mathlib/SetTheory/ZFC/Basic.lean Modified Mathlib/Topology/Algebra/Group/ClosedSubgroup.lean Modified Mathlib/Topology/Algebra/Module/ClosedSubmodule.lean Modified Mathlib/Topology/Algebra/OpenSubgroup.lean Modified Mathlib/Topology/CWComplex/Classical/Basic.lean Modified Mathlib/Topology/Category/TopCat/OpenNhds.lean Modified Mathlib/Topology/Sets/Closeds.lean Modified Mathlib/Topology/Sets/Compacts.lean Modified Mathlib/Topology/Sets/Opens.lean Modified Mathlib/Topology/Sets/Order.lean Modified Mathlib/Topology/Sheaves/SheafCondition/Sites.lean Modified Mathlib/Topology/Sheaves/Stalks.lean Modified Mathlib/Topology/Spectral/Prespectral.lean Modified MathlibTest/FBinop.lean 2026-02-01 17:09:32 ab89ddb chore: update Mathlib dependencies 2026-02-01 (#34687) This PR updates the Mathlib dependencies. ESTIMATED CHANGES Modified lake-manifest.json 2026-02-01 14:48:38 e3128c5 chore(CategoryTheory/Sites): generalize universes in `Sheaf.isSheaf_of_isRepresentable` (#34234) For this we add some API on representable functors. ESTIMATED CHANGES Modified Mathlib/Algebra/Category/Grp/Ulift.lean Modified Mathlib/CategoryTheory/Sites/Canonical.lean +/- theorem CategoryTheory.Sheaf.isSheaf_of_isRepresentable Modified Mathlib/CategoryTheory/Sites/SheafOfTypes.lean +/- theorem CategoryTheory.Presieve.isSheaf_comp_uliftFunctor + theorem CategoryTheory.Presieve.isSheaf_comp_uliftFunctor_iff Modified Mathlib/CategoryTheory/Yoneda.lean + theorem CategoryTheory.Functor.uliftCoyonedaCoreprXIso_hom_app + theorem CategoryTheory.Functor.uliftYonedaReprXIso_hom_app 2026-02-01 14:15:55 dddc62c ci: more labels to be added/removed from comments (#34683) in particular for `awaiting-zulip`, my understanding is that it is the responsibility of the author to manage the discussion and remove the label once the decision is implemented. ESTIMATED CHANGES Modified .github/workflows/labels_from_comment.yml 2026-02-01 13:22:52 cb84f90 chore: move `cc` to another repository (#34669) `cc` tactic is replaced by `grind` and deprecated since 2025-07-31, so I created the repository [Komyyy/legacy-cc](https://github.com/Komyyy/legacy-cc) and move `cc` tactic to there. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Tactic.lean Deleted Mathlib/Tactic/CC.lean - def Lean.MVarId.cc - def Mathlib.Tactic.CC.CCState.add - def Mathlib.Tactic.CC.CCState.eqcOf - def Mathlib.Tactic.CC.CCState.eqcSize - def Mathlib.Tactic.CC.CCState.eqvProof - def Mathlib.Tactic.CC.CCState.foldEqc - def Mathlib.Tactic.CC.CCState.foldEqcM - def Mathlib.Tactic.CC.CCState.incGMT - def Mathlib.Tactic.CC.CCState.internalize - def Mathlib.Tactic.CC.CCState.isEqv - def Mathlib.Tactic.CC.CCState.isNotEqv - def Mathlib.Tactic.CC.CCState.mkCore - def Mathlib.Tactic.CC.CCState.mkUsingHs - def Mathlib.Tactic.CC.CCState.mkUsingHsCore - def Mathlib.Tactic.CC.CCState.proofFor - def Mathlib.Tactic.CC.CCState.proofForFalse - def Mathlib.Tactic.CC.CCState.refutationFor - def Mathlib.Tactic.CC.CCState.roots - def Mathlib.Tactic.CC.CCState.rootsCore Deleted Mathlib/Tactic/CC/Addition.lean - def Mathlib.Tactic.CC.CCM.add - def Mathlib.Tactic.CC.CCM.addACEq - def Mathlib.Tactic.CC.CCM.addCongruenceTable - def Mathlib.Tactic.CC.CCM.addEqvCore - def Mathlib.Tactic.CC.CCM.addEqvStep - def Mathlib.Tactic.CC.CCM.addOccurrence - def Mathlib.Tactic.CC.CCM.addSymmCongruenceTable - def Mathlib.Tactic.CC.CCM.checkEqTrue - def Mathlib.Tactic.CC.CCM.checkInvariant - def Mathlib.Tactic.CC.CCM.checkNewSubsingletonEq - def Mathlib.Tactic.CC.CCM.collapseAC - def Mathlib.Tactic.CC.CCM.collectFnRoots - def Mathlib.Tactic.CC.CCM.compareSymm - def Mathlib.Tactic.CC.CCM.compareSymmAux - def Mathlib.Tactic.CC.CCM.composeAC - def Mathlib.Tactic.CC.CCM.dbgTraceACEq - def Mathlib.Tactic.CC.CCM.dbgTraceACState - def Mathlib.Tactic.CC.CCM.eraseRBHSOccs - def Mathlib.Tactic.CC.CCM.eraseROccs - def Mathlib.Tactic.CC.CCM.eraseRRHSOccs - def Mathlib.Tactic.CC.CCM.getACTodo - def Mathlib.Tactic.CC.CCM.getEqcLambdas - def Mathlib.Tactic.CC.CCM.getTodo - def Mathlib.Tactic.CC.CCM.insertEraseROcc - def Mathlib.Tactic.CC.CCM.insertEraseROccs - def Mathlib.Tactic.CC.CCM.insertRBHSOccs - def Mathlib.Tactic.CC.CCM.insertROccs - def Mathlib.Tactic.CC.CCM.insertRRHSOccs - def Mathlib.Tactic.CC.CCM.internalize - def Mathlib.Tactic.CC.CCM.internalizeAC - def Mathlib.Tactic.CC.CCM.internalizeACVar - def Mathlib.Tactic.CC.CCM.isAC - def Mathlib.Tactic.CC.CCM.mayPropagate - def Mathlib.Tactic.CC.CCM.mkACSuperposeProof - def Mathlib.Tactic.CC.CCM.mkCongruencesKey - def Mathlib.Tactic.CC.CCM.mkSymmCongruencesKey - def Mathlib.Tactic.CC.CCM.modifyACTodo - def Mathlib.Tactic.CC.CCM.modifyTodo - def Mathlib.Tactic.CC.CCM.processAC - def Mathlib.Tactic.CC.CCM.processTodo - def Mathlib.Tactic.CC.CCM.propagateAndDown - def Mathlib.Tactic.CC.CCM.propagateBeta - def Mathlib.Tactic.CC.CCM.propagateBetaToEqc - def Mathlib.Tactic.CC.CCM.propagateDown - def Mathlib.Tactic.CC.CCM.propagateEqDown - def Mathlib.Tactic.CC.CCM.propagateExistsDown - def Mathlib.Tactic.CC.CCM.propagateInstImplicit - def Mathlib.Tactic.CC.CCM.propagateNotDown - def Mathlib.Tactic.CC.CCM.propagateOrDown - def Mathlib.Tactic.CC.CCM.propagateProjectionConstructor - def Mathlib.Tactic.CC.CCM.propagateValueInconsistency - def Mathlib.Tactic.CC.CCM.pushEq - def Mathlib.Tactic.CC.CCM.pushHEq - def Mathlib.Tactic.CC.CCM.pushReflEq - def Mathlib.Tactic.CC.CCM.pushSubsingletonEq - def Mathlib.Tactic.CC.CCM.pushTodo - def Mathlib.Tactic.CC.CCM.reinsertParents - def Mathlib.Tactic.CC.CCM.removeParents - def Mathlib.Tactic.CC.CCM.setACVar - def Mathlib.Tactic.CC.CCM.superposeAC Deleted Mathlib/Tactic/CC/Datatypes.lean - def Mathlib.Tactic.CC.ACApps.append - def Mathlib.Tactic.CC.ACApps.diff - def Mathlib.Tactic.CC.ACApps.intersection - def Mathlib.Tactic.CC.ACApps.isSubset - def Mathlib.Tactic.CC.ACApps.mkApps - def Mathlib.Tactic.CC.ACApps.mkFlatApps - def Mathlib.Tactic.CC.ACApps.toExpr - inductive Mathlib.Tactic.CC.ACApps - def Mathlib.Tactic.CC.ACEntry.ROccs - structure Mathlib.Tactic.CC.ACEntry - structure Mathlib.Tactic.CC.CCConfig - structure Mathlib.Tactic.CC.CCCongrTheorem - structure Mathlib.Tactic.CC.CCCongrTheoremKey - structure Mathlib.Tactic.CC.CCNormalizer - structure Mathlib.Tactic.CC.CCPropagationHandler - def Mathlib.Tactic.CC.CCState.checkEqc - def Mathlib.Tactic.CC.CCState.checkInvariant - def Mathlib.Tactic.CC.CCState.getNumROccs - def Mathlib.Tactic.CC.CCState.getRoots - def Mathlib.Tactic.CC.CCState.getVarWithLeastLHSOccs - def Mathlib.Tactic.CC.CCState.getVarWithLeastOccs - def Mathlib.Tactic.CC.CCState.getVarWithLeastRHSOccs - def Mathlib.Tactic.CC.CCState.inSingletonEqc - def Mathlib.Tactic.CC.CCState.isCgRoot - def Mathlib.Tactic.CC.CCState.mkEntryCore - def Mathlib.Tactic.CC.CCState.mt - def Mathlib.Tactic.CC.CCState.next - def Mathlib.Tactic.CC.CCState.ppAC - def Mathlib.Tactic.CC.CCState.ppACDecl - def Mathlib.Tactic.CC.CCState.ppACDecls - def Mathlib.Tactic.CC.CCState.ppACExpr - def Mathlib.Tactic.CC.CCState.ppACR - def Mathlib.Tactic.CC.CCState.ppEqc - def Mathlib.Tactic.CC.CCState.ppEqcs - def Mathlib.Tactic.CC.CCState.ppParentOccs - def Mathlib.Tactic.CC.CCState.ppParentOccsAux - def Mathlib.Tactic.CC.CCState.root - structure Mathlib.Tactic.CC.CCState - structure Mathlib.Tactic.CC.CCStructure - inductive Mathlib.Tactic.CC.CongruencesKey - inductive Mathlib.Tactic.CC.DelayedExpr - structure Mathlib.Tactic.CC.Entry - inductive Mathlib.Tactic.CC.EntryExpr - structure Mathlib.Tactic.CC.ParentOcc - structure Mathlib.Tactic.CC.SymmCongruencesKey - def Mathlib.Tactic.CC.isInterpretedValue - def Mathlib.Tactic.CC.isValue - def Mathlib.Tactic.CC.liftFromEq - def Mathlib.Tactic.CC.mkCCHCongrWithArity Deleted Mathlib/Tactic/CC/Lemmas.lean - theorem Mathlib.Tactic.CC.and_eq_of_eq - theorem Mathlib.Tactic.CC.and_eq_of_eq_false_left - theorem Mathlib.Tactic.CC.and_eq_of_eq_false_right - theorem Mathlib.Tactic.CC.and_eq_of_eq_true_left - theorem Mathlib.Tactic.CC.and_eq_of_eq_true_right - theorem Mathlib.Tactic.CC.eq_false_of_not_eq_true - theorem Mathlib.Tactic.CC.eq_false_of_or_eq_false_left - theorem Mathlib.Tactic.CC.eq_false_of_or_eq_false_right - theorem Mathlib.Tactic.CC.eq_true_of_and_eq_true_left - theorem Mathlib.Tactic.CC.eq_true_of_and_eq_true_right - theorem Mathlib.Tactic.CC.eq_true_of_not_eq_false - theorem Mathlib.Tactic.CC.false_of_a_eq_not_a - theorem Mathlib.Tactic.CC.if_eq_of_eq - theorem Mathlib.Tactic.CC.if_eq_of_eq_false - theorem Mathlib.Tactic.CC.if_eq_of_eq_true - theorem Mathlib.Tactic.CC.iff_eq_of_eq_true_left - theorem Mathlib.Tactic.CC.iff_eq_of_eq_true_right - theorem Mathlib.Tactic.CC.iff_eq_true_of_eq - theorem Mathlib.Tactic.CC.imp_eq_of_eq_false_left - theorem Mathlib.Tactic.CC.imp_eq_of_eq_false_right - theorem Mathlib.Tactic.CC.imp_eq_of_eq_true_left - theorem Mathlib.Tactic.CC.imp_eq_of_eq_true_right - theorem Mathlib.Tactic.CC.imp_eq_true_of_eq - theorem Mathlib.Tactic.CC.not_eq_of_eq_false - theorem Mathlib.Tactic.CC.not_eq_of_eq_true - theorem Mathlib.Tactic.CC.not_imp_eq_of_eq_false_right - theorem Mathlib.Tactic.CC.or_eq_of_eq - theorem Mathlib.Tactic.CC.or_eq_of_eq_false_left - theorem Mathlib.Tactic.CC.or_eq_of_eq_false_right - theorem Mathlib.Tactic.CC.or_eq_of_eq_true_left - theorem Mathlib.Tactic.CC.or_eq_of_eq_true_right Deleted Mathlib/Tactic/CC/MkProof.lean - def Mathlib.Tactic.CC.CCM.flipDelayedProofCore - def Mathlib.Tactic.CC.CCM.flipProof - def Mathlib.Tactic.CC.CCM.flipProofCore - def Mathlib.Tactic.CC.CCM.getCache - def Mathlib.Tactic.CC.CCM.getEntry - def Mathlib.Tactic.CC.CCM.getEqFalseProof - def Mathlib.Tactic.CC.CCM.getEqTrueProof - def Mathlib.Tactic.CC.CCM.getInconsistencyProof - def Mathlib.Tactic.CC.CCM.getPropEqProof - def Mathlib.Tactic.CC.CCM.getRoot - def Mathlib.Tactic.CC.CCM.hasHEqProofs - def Mathlib.Tactic.CC.CCM.isCgRoot - def Mathlib.Tactic.CC.CCM.isEqFalse - def Mathlib.Tactic.CC.CCM.isEqTrue - def Mathlib.Tactic.CC.CCM.isEqv - def Mathlib.Tactic.CC.CCM.isNotEqv - def Mathlib.Tactic.CC.CCM.mkACProof - def Mathlib.Tactic.CC.CCM.mkACSimpProof - def Mathlib.Tactic.CC.CCM.mkCCCongrTheorem - def Mathlib.Tactic.CC.CCM.mkCCHCongrTheorem - def Mathlib.Tactic.CC.CCM.mkNeOfEqOfNe - def Mathlib.Tactic.CC.CCM.mkNeOfNeOfEq - def Mathlib.Tactic.CC.CCM.mkTrans - def Mathlib.Tactic.CC.CCM.mkTransOpt - def Mathlib.Tactic.CC.CCM.modifyCache - def Mathlib.Tactic.CC.CCM.normalize - def Mathlib.Tactic.CC.CCM.run - def Mathlib.Tactic.CC.CCM.setFO - def Mathlib.Tactic.CC.CCM.simplifyAC - def Mathlib.Tactic.CC.CCM.simplifyACCore - def Mathlib.Tactic.CC.CCM.simplifyACStep Deleted MathlibTest/cc.lean - inductive Foo - def Rel - inductive Vec - theorem ex₁ - def ex₂ - def foo - def mul' Modified scripts/nolints.json Modified scripts/noshake.json 2026-02-01 13:22:50 c8e5e59 feat(RingTheory/Finiteness/Basic): add lemmas for restricting scalars (#33980) This PR adds three lemmas that transfer `Submodule.FG` across restricting scalars from a semiring `A` to a semiring `R` under the assumption `Module.Finite R A` . This includes * `FG.restrictScalars` which proves that `restrictScalars` preserves `FG` * `FG.restrictScalars_iff` as the iff version of the above * `FG.span_submodule` which proves that the `A`-span of an `FG` `R`-submodule is `FG`. The PR also contains the following changes to related lemmas: * renaming `fg_restrictScalars` to `FG.restrictScalars_of_surjective` emphasizing the hypothesis `Function.Surjective (algebraMap R A)` * adding a `sections RestrictScalars` that also contains the above lemma * restructuring variables in the above section * changing some submodule / ring hypotheses to implicit ESTIMATED CHANGES Modified Mathlib/RingTheory/Extension/Basic.lean Modified Mathlib/RingTheory/Finiteness/Basic.lean +/- theorem Submodule.FG.of_restrictScalars + theorem Submodule.FG.restrictScalars + theorem Submodule.FG.restrictScalars_iff + theorem Submodule.FG.restrictScalars_of_surjective - theorem Submodule.fg_restrictScalars Modified Mathlib/RingTheory/Finiteness/Ideal.lean 2026-02-01 13:02:29 c72ae9e chore(CategoryTheory): deprecate adjunction opposite nat iso helpers (#34586) We deprecate two definitions that have been unused in Mathlib since #10425 (July 2024), which removed `extendAlongYonedaYoneda` - the only code that needed their definitional properties. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Adjunction/Opposites.lean 2026-02-01 10:08:25 d46874c doc: fix typo/mathlib3ism (#34619) ESTIMATED CHANGES Modified Mathlib/RingTheory/DedekindDomain/Ideal/Basic.lean Modified Mathlib/RingTheory/Derivation/Basic.lean 2026-02-01 08:04:57 1ab12cd refactor(RingTheory/Lasker): generalize from `Ideal` to `Submodule` (#34135) This PR generalizes the Lasker-Noether theorem from ideals to submodules. ESTIMATED CHANGES Modified Mathlib/RingTheory/Lasker.lean - theorem Ideal.IsLasker.exists_isMinimalPrimaryDecomposition - structure Ideal.IsMinimalPrimaryDecomposition - theorem Ideal.decomposition_erase_inf - theorem Ideal.exists_minimal_isPrimary_decomposition_of_isPrimary_decomposition - theorem Ideal.isLasker - theorem Ideal.isPrimary_decomposition_pairwise_ne_radical +/- theorem InfIrred.isPrimary + theorem Submodule.IsLasker.exists_isMinimalPrimaryDecomposition + structure Submodule.IsMinimalPrimaryDecomposition + theorem Submodule.decomposition_erase_inf + theorem Submodule.exists_minimal_isPrimary_decomposition_of_isPrimary_decomposition + theorem Submodule.isLasker + theorem Submodule.isPrimary_decomposition_pairwise_ne_radical Modified docs/1000.yaml 2026-02-01 00:52:52 5cb27be refactor: `exist_roots` → `exists_root` (#34657) This matches [`IsAlgClosed.exists_root`](https://leanprover-community.github.io/mathlib4_docs/Mathlib/FieldTheory/IsAlgClosed/Basic.html#IsAlgClosed.exists_root) and [`IsAlgClosed.of_exists_root`](https://leanprover-community.github.io/mathlib4_docs/Mathlib/FieldTheory/IsAlgClosed/Basic.html#IsAlgClosed.of_exists_root). Besides, `exists` is quite more common as a spelling for ∃ than `exist`. ESTIMATED CHANGES Modified Mathlib/FieldTheory/IsAlgClosed/Basic.lean Modified Mathlib/FieldTheory/Isaacs.lean - theorem Field.nonempty_algHom_of_exist_roots + theorem Field.nonempty_algHom_of_exists_root - theorem IsAlgClosure.of_exist_roots + theorem IsAlgClosure.of_exists_root 2026-02-01 00:20:57 c4e2435 refactor(EMetricSpace): rename `EMetric.ball` -> `Metric.eball` (#34379) Also rename `EMetric.closedBall` -> `Metric.closedEBall` and most (all?) of the related lemmas. ESTIMATED CHANGES Modified Mathlib/Analysis/Analytic/Basic.lean Modified Mathlib/Analysis/Analytic/Binomial.lean Modified Mathlib/Analysis/Analytic/CPolynomial.lean Modified Mathlib/Analysis/Analytic/CPolynomialDef.lean +/- theorem HasFiniteFPowerSeriesOnBall.bound_zero_of_eq_zero Modified Mathlib/Analysis/Analytic/ChangeOrigin.lean Modified Mathlib/Analysis/Analytic/Composition.lean Modified Mathlib/Analysis/Analytic/Constructions.lean Modified Mathlib/Analysis/Analytic/ConvergenceRadius.lean Modified Mathlib/Analysis/Analytic/Inverse.lean Modified Mathlib/Analysis/Analytic/IteratedFDeriv.lean Modified Mathlib/Analysis/Analytic/Uniqueness.lean Modified Mathlib/Analysis/Analytic/Within.lean Modified Mathlib/Analysis/BoxIntegral/Basic.lean Modified Mathlib/Analysis/Calculus/FDeriv/Analytic.lean +/- theorem HasFPowerSeriesOnBall.hasSum_iteratedFDeriv Modified Mathlib/Analysis/Calculus/IteratedDeriv/ConvergenceOnBall.lean Modified Mathlib/Analysis/Complex/CauchyIntegral.lean Modified Mathlib/Analysis/Complex/TaylorSeries.lean + theorem Complex.hasSum_taylorSeries_on_eball - theorem Complex.hasSum_taylorSeries_on_emetric_ball + theorem Complex.taylorSeries_eq_on_eball' + theorem Complex.taylorSeries_eq_on_eball - theorem Complex.taylorSeries_eq_on_emetric_ball' - theorem Complex.taylorSeries_eq_on_emetric_ball Modified Mathlib/Analysis/Convex/EGauge.lean Modified Mathlib/Analysis/Normed/Algebra/Exponential.lean Modified Mathlib/Analysis/Normed/Algebra/Spectrum.lean Modified Mathlib/Analysis/Normed/Group/Basic.lean + theorem mem_eball_one_iff - theorem mem_emetric_ball_one_iff Modified Mathlib/Analysis/Normed/Module/Connected.lean Modified Mathlib/Analysis/Oscillation.lean Modified Mathlib/Analysis/SpecialFunctions/Exponential.lean Modified Mathlib/Geometry/Manifold/PartitionOfUnity.lean - theorem Emetric.exists_contMDiffMap_forall_closedBall_subset + theorem Metric.exists_contMDiffMap_forall_closedEBall_subset Modified Mathlib/Geometry/Manifold/Riemannian/Basic.lean Modified Mathlib/MeasureTheory/Constructions/BorelSpace/Metric.lean +/- theorem measurableSet_eball Modified Mathlib/MeasureTheory/Function/ContinuousMapDense.lean Modified Mathlib/MeasureTheory/Function/SimpleFuncDense.lean Modified Mathlib/MeasureTheory/Measure/Lebesgue/Basic.lean + theorem Real.volume_closedEBall + theorem Real.volume_eball - theorem Real.volume_emetric_ball - theorem Real.volume_emetric_closedBall Modified Mathlib/MeasureTheory/Measure/MeasuredSets.lean Modified Mathlib/MeasureTheory/Measure/OpenPos.lean - theorem EMetric.measure_ball_pos - theorem EMetric.measure_closedBall_pos + theorem Metric.measure_closedEBall_pos + theorem Metric.measure_eball_pos Modified Mathlib/NumberTheory/ModularForms/QExpansion.lean Modified Mathlib/Topology/Baire/CompleteMetrizable.lean Modified Mathlib/Topology/EMetricSpace/Basic.lean Modified Mathlib/Topology/EMetricSpace/Defs.lean - def EMetric.ball - theorem EMetric.ball_disjoint - theorem EMetric.ball_eq_empty_iff - theorem EMetric.ball_mem_nhds - theorem EMetric.ball_prod_same - theorem EMetric.ball_subset - theorem EMetric.ball_subset_ball - theorem EMetric.ball_subset_closedBall - theorem EMetric.ball_zero - def EMetric.closedBall - theorem EMetric.closedBall_mem_nhds - theorem EMetric.closedBall_prod_same - theorem EMetric.closedBall_subset_closedBall - theorem EMetric.closedBall_top - theorem EMetric.closedBall_zero +/- theorem EMetric.dense_iff - def EMetric.edistLtTopSetoid - theorem EMetric.exists_ball_subset_ball - theorem EMetric.isClosed_ball_top - theorem EMetric.isOpen_ball +/- theorem EMetric.isOpen_iff - theorem EMetric.mem_ball' - theorem EMetric.mem_ball - theorem EMetric.mem_ball_comm - theorem EMetric.mem_ball_self - theorem EMetric.mem_closedBall' - theorem EMetric.mem_closedBall - theorem EMetric.mem_closedBall_comm - theorem EMetric.mem_closedBall_self +/- theorem EMetric.mem_nhdsWithin_iff +/- theorem EMetric.mem_nhds_iff - theorem EMetric.nhdsWithin_basis_closed_eball - theorem EMetric.nhdsWithin_basis_eball - theorem EMetric.nhds_basis_closed_eball - theorem EMetric.nhds_basis_eball +/- theorem EMetric.nhds_eq - theorem EMetric.ordConnected_setOf_ball_subset - theorem EMetric.ordConnected_setOf_closedBall_subset - theorem EMetric.pos_of_mem_ball + def Metric.closedEBall + theorem Metric.closedEBall_mem_nhds + theorem Metric.closedEBall_prod_same + theorem Metric.closedEBall_subset_closedEBall + theorem Metric.closedEBall_top + theorem Metric.closedEBall_zero + def Metric.eball + theorem Metric.eball_disjoint + theorem Metric.eball_eq_empty_iff + theorem Metric.eball_mem_nhds + theorem Metric.eball_prod_same + theorem Metric.eball_subset + theorem Metric.eball_subset_closedEBall + theorem Metric.eball_subset_eball + theorem Metric.eball_zero + def Metric.edistLtTopSetoid + theorem Metric.exists_eball_subset_eball + theorem Metric.isClosed_eball_top + theorem Metric.isOpen_eball + theorem Metric.mem_closedEBall' + theorem Metric.mem_closedEBall + theorem Metric.mem_closedEBall_comm + theorem Metric.mem_closedEBall_self + theorem Metric.mem_eball' + theorem Metric.mem_eball + theorem Metric.mem_eball_comm + theorem Metric.mem_eball_self + theorem Metric.nhdsWithin_basis_closedEBall + theorem Metric.nhdsWithin_basis_eball + theorem Metric.nhds_basis_closedEBall + theorem Metric.nhds_basis_eball + theorem Metric.ordConnected_setOf_closedEBall_subset + theorem Metric.ordConnected_setOf_eball_subset + theorem Metric.pos_of_mem_eball + theorem Subtype.image_closedEBall + theorem Subtype.image_eball - theorem Subtype.image_emetricBall - theorem Subtype.image_emetricClosedBall + theorem Subtype.preimage_closedEBall + theorem Subtype.preimage_eball - theorem Subtype.preimage_emetricBall - theorem Subtype.preimage_emetricClosedBall Modified Mathlib/Topology/EMetricSpace/Diam.lean +/- theorem Metric.ediam_closedEBall_le +/- theorem Metric.ediam_eball_le Modified Mathlib/Topology/EMetricSpace/Lipschitz.lean + theorem LipschitzWith.mapsTo_closedEBall + theorem LipschitzWith.mapsTo_eball - theorem LipschitzWith.mapsTo_emetric_ball - theorem LipschitzWith.mapsTo_emetric_closedBall Modified Mathlib/Topology/EMetricSpace/Paracompact.lean - theorem EMetric.t4Space + theorem Metric.t4Space Modified Mathlib/Topology/Instances/ENNReal/Lemmas.lean - theorem EMetric.isClosed_closedBall + theorem Metric.isClosed_closedEBall +/- theorem edist_ne_top_of_mem_ball +/- def metricSpaceEMetricBall +/- theorem nhds_eq_nhds_emetric_ball Modified Mathlib/Topology/MetricSpace/Closeds.lean Modified Mathlib/Topology/MetricSpace/Contracting.lean Modified Mathlib/Topology/MetricSpace/Cover.lean + theorem Metric.isCover_iff_subset_iUnion_closedEBall - theorem Metric.isCover_iff_subset_iUnion_emetricClosedBall Modified Mathlib/Topology/MetricSpace/Dilation.lean + theorem Dilation.mapsTo_closedEBall + theorem Dilation.mapsTo_eball - theorem Dilation.mapsTo_emetric_ball - theorem Dilation.mapsTo_emetric_closedBall Modified Mathlib/Topology/MetricSpace/HausdorffDistance.lean Modified Mathlib/Topology/MetricSpace/IsometricSMul.lean - theorem EMetric.preimage_mul_left_ball - theorem EMetric.preimage_mul_left_closedBall - theorem EMetric.preimage_mul_right_ball - theorem EMetric.preimage_mul_right_closedBall - theorem EMetric.preimage_smul_ball - theorem EMetric.preimage_smul_closedBall - theorem EMetric.smul_ball - theorem EMetric.smul_closedBall + theorem Metric.preimage_mul_left_closedEBall + theorem Metric.preimage_mul_left_eball + theorem Metric.preimage_mul_right_closedEBall + theorem Metric.preimage_mul_right_eball + theorem Metric.preimage_smul_closedEBall + theorem Metric.preimage_smul_eball + theorem Metric.smul_closedEBall + theorem Metric.smul_eball Modified Mathlib/Topology/MetricSpace/Isometry.lean + theorem Isometry.mapsTo_closedEBall + theorem Isometry.mapsTo_eball - theorem Isometry.mapsTo_emetric_ball - theorem Isometry.mapsTo_emetric_closedBall + theorem Isometry.preimage_closedEBall + theorem Isometry.preimage_eball - theorem Isometry.preimage_emetric_ball - theorem Isometry.preimage_emetric_closedBall + theorem IsometryEquiv.image_closedEBall + theorem IsometryEquiv.image_eball - theorem IsometryEquiv.image_emetric_ball - theorem IsometryEquiv.image_emetric_closedBall + theorem IsometryEquiv.preimage_closedEBall + theorem IsometryEquiv.preimage_eball - theorem IsometryEquiv.preimage_emetric_ball - theorem IsometryEquiv.preimage_emetric_closedBall Modified Mathlib/Topology/MetricSpace/PartitionOfUnity.lean - theorem EMetric.eventually_nhds_zero_forall_closedBall_subset - theorem EMetric.exists_continuous_eNNReal_forall_closedBall_subset - theorem EMetric.exists_continuous_nnreal_forall_closedBall_subset - theorem EMetric.exists_continuous_real_forall_closedBall_subset - theorem EMetric.exists_forall_closedBall_subset_aux₁ - theorem EMetric.exists_forall_closedBall_subset_aux₂ + theorem Metric.eventually_nhds_zero_forall_closedEBall_subset + theorem Metric.exists_continuous_ennreal_forall_closedEBall_subset + theorem Metric.exists_continuous_nnreal_forall_closedEBall_subset + theorem Metric.exists_continuous_real_forall_closedEBall_subset + theorem Metric.exists_forall_closedEBall_subset_aux₁ + theorem Metric.exists_forall_closedEBall_subset_aux₂ Modified Mathlib/Topology/MetricSpace/Perfect.lean Modified Mathlib/Topology/MetricSpace/Pseudo/Defs.lean + theorem Metric.closedEBall_coe + theorem Metric.closedEBall_ofReal + theorem Metric.eball_coe + theorem Metric.eball_ofReal + theorem Metric.eball_top +/- theorem Metric.eball_top_eq_univ - theorem Metric.emetric_ball - theorem Metric.emetric_ball_nnreal - theorem Metric.emetric_ball_top - theorem Metric.emetric_closedBall - theorem Metric.emetric_closedBall_nnreal Modified Mathlib/Topology/MetricSpace/Snowflaking.lean + theorem Metric.Snowflaking.image_ofSnowflaking_closedEBall + theorem Metric.Snowflaking.image_ofSnowflaking_eball - theorem Metric.Snowflaking.image_ofSnowflaking_emetricBall - theorem Metric.Snowflaking.image_ofSnowflaking_emetricClosedBall + theorem Metric.Snowflaking.image_toSnowflaking_closedEBall + theorem Metric.Snowflaking.image_toSnowflaking_eball - theorem Metric.Snowflaking.image_toSnowflaking_emetricBall - theorem Metric.Snowflaking.image_toSnowflaking_emetricClosedBall + theorem Metric.Snowflaking.preimage_ofSnowflaking_closedEBall + theorem Metric.Snowflaking.preimage_ofSnowflaking_eball - theorem Metric.Snowflaking.preimage_ofSnowflaking_emetricBall - theorem Metric.Snowflaking.preimage_ofSnowflaking_emetricClosedBall + theorem Metric.Snowflaking.preimage_toSnowflaking_closedEBall + theorem Metric.Snowflaking.preimage_toSnowflaking_eball - theorem Metric.Snowflaking.preimage_toSnowflaking_emetricBall - theorem Metric.Snowflaking.preimage_toSnowflaking_emetricClosedBall Modified Mathlib/Topology/UniformSpace/Cauchy.lean 2026-01-31 23:36:06 c3cf7cb feat(CategoryTheory/Elements): initially small if functor is (co)representable (#34117) We show that `Functor.Elements F` has an initial element if `F` is (co)representable and that categories with initial element are initially small. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Elements.lean + def CategoryTheory.Functor.Elements.initialOfCorepresentableBy + def CategoryTheory.Functor.Elements.initialOfRepresentableBy +/- def CategoryTheory.Functor.Elements.isInitial + def CategoryTheory.Functor.Elements.isInitialOfCorepresentableBy + def CategoryTheory.Functor.Elements.isInitialOfRepresentableBy Modified Mathlib/CategoryTheory/Limits/Elements.lean Modified Mathlib/CategoryTheory/Limits/FinallySmall.lean Modified Mathlib/CategoryTheory/Yoneda.lean + theorem CategoryTheory.Functor.CorepresentableBy.coyoneda_homEquiv + theorem CategoryTheory.Functor.RepresentableBy.coyoneda_homEquiv + theorem CategoryTheory.Functor.RepresentableBy.homEquiv_unop_comp 2026-01-31 23:19:57 2edfed3 feat(AlgebraicGeometry): gluing colimits in `P.Over ⊤ S` (#33930) Let `D : J ⥤ P.Over ⊤ S` be a diagram and `𝒰` a locally directed open cover of `S` (e.g., the cover of all affine opens of `S`). Suppose the restrictions of `D` to `Dᵢ : J ⥤ P.Over ⊤ (𝒰.X i)` have a colimit for every `i`, then we show that also `D` has a colimit under suitable assumptions. This can be used to reduce existence of certain colimits in `P.Over ⊤ S` to the case where `S` is affine. From Pi1. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/AlgebraicGeometry/ColimitsOver.lean + theorem AlgebraicGeometry.Scheme.Cover.ColimitGluingData.cocone_ι_transitionMap + theorem AlgebraicGeometry.Scheme.Cover.ColimitGluingData.fst_gluedCocone_ι + def AlgebraicGeometry.Scheme.Cover.ColimitGluingData.isColimitGluedCocone + theorem AlgebraicGeometry.Scheme.Cover.ColimitGluingData.isPullback + def AlgebraicGeometry.Scheme.Cover.ColimitGluingData.pullbackGluedIso + theorem AlgebraicGeometry.Scheme.Cover.ColimitGluingData.pullbackGluedIso_inv_fst + theorem AlgebraicGeometry.Scheme.Cover.ColimitGluingData.pullbackGluedIso_inv_snd + def AlgebraicGeometry.Scheme.Cover.ColimitGluingData.relativeGluingData + def AlgebraicGeometry.Scheme.Cover.ColimitGluingData.trans + def AlgebraicGeometry.Scheme.Cover.ColimitGluingData.transitionCocone + def AlgebraicGeometry.Scheme.Cover.ColimitGluingData.transitionMap + theorem AlgebraicGeometry.Scheme.Cover.ColimitGluingData.transitionMap_comp + theorem AlgebraicGeometry.Scheme.Cover.ColimitGluingData.transitionMap_id + structure AlgebraicGeometry.Scheme.Cover.ColimitGluingData + theorem AlgebraicGeometry.Scheme.Cover.hasColimit_of_locallyDirected Modified Mathlib/AlgebraicGeometry/RelativeGluing.lean Modified Mathlib/CategoryTheory/MorphismProperty/OverAdjunction.lean 2026-01-31 21:24:10 11b0237 feat(RingTheory/Polynomial/Morse): Morse polynomials have Galois group S_n (#34451) This PR adds a new file proving that Morse polynomials have Galois group `S_n`. Ultimately, I will be applying this theory to the polynomials `X ^ n - X - 1`. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/RingTheory/Polynomial/Morse.lean + theorem Polynomial.Splits.surjective_toPermHom_of_iSup_inertia_eq_top + theorem Polynomial.Splits.toPermHom_apply_eq_one_or_isSwap_of_ncard_le_of_mem_inertia Modified docs/references.bib 2026-01-31 21:06:07 f57b326 feat(CategoryTheory/Functor): pushout-products and pullback-powers (#33974) Adds basic API for pushout-products and pullback-powers (also called the Leibniz constructions). Moves the API for `PushoutObjObj` and `PullbackObjObj` from `Mathlib.CategoryTheory.LiftingProperties.ParametrizedAdjunction` and uses this API to define the Leibniz bifunctors on the associated arrow categories. - https://ncatlab.org/nlab/show/pushout-product ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/CategoryTheory/LiftingProperties/ParametrizedAdjunction.lean - theorem CategoryTheory.Functor.PullbackObjObj.π_fst - theorem CategoryTheory.Functor.PullbackObjObj.π_snd - structure CategoryTheory.Functor.PullbackObjObj - def CategoryTheory.Functor.PushoutObjObj.flip - theorem CategoryTheory.Functor.PushoutObjObj.inl_ι - theorem CategoryTheory.Functor.PushoutObjObj.inr_ι - theorem CategoryTheory.Functor.PushoutObjObj.ι_flip - structure CategoryTheory.Functor.PushoutObjObj Added Mathlib/CategoryTheory/Limits/Shapes/Pullback/PullbackObjObj.lean + theorem CategoryTheory.Functor.PullbackObjObj.hom_ext + def CategoryTheory.Functor.PullbackObjObj.mapArrowLeft + theorem CategoryTheory.Functor.PullbackObjObj.mapArrowLeft_comp + theorem CategoryTheory.Functor.PullbackObjObj.mapArrowLeft_id + def CategoryTheory.Functor.PullbackObjObj.mapArrowRight + theorem CategoryTheory.Functor.PullbackObjObj.mapArrowRight_comp + theorem CategoryTheory.Functor.PullbackObjObj.mapArrowRight_id + theorem CategoryTheory.Functor.PullbackObjObj.ofHasPullback_π + theorem CategoryTheory.Functor.PullbackObjObj.π_fst + def CategoryTheory.Functor.PullbackObjObj.π_iso_of_iso_left + def CategoryTheory.Functor.PullbackObjObj.π_iso_of_iso_right + theorem CategoryTheory.Functor.PullbackObjObj.π_snd + structure CategoryTheory.Functor.PullbackObjObj + def CategoryTheory.Functor.PushoutObjObj.flip + theorem CategoryTheory.Functor.PushoutObjObj.hom_ext + theorem CategoryTheory.Functor.PushoutObjObj.inl_ι + theorem CategoryTheory.Functor.PushoutObjObj.inr_ι + def CategoryTheory.Functor.PushoutObjObj.mapArrowLeft + theorem CategoryTheory.Functor.PushoutObjObj.mapArrowLeft_comp + theorem CategoryTheory.Functor.PushoutObjObj.mapArrowLeft_id + def CategoryTheory.Functor.PushoutObjObj.mapArrowRight + theorem CategoryTheory.Functor.PushoutObjObj.mapArrowRight_comp + theorem CategoryTheory.Functor.PushoutObjObj.mapArrowRight_id + theorem CategoryTheory.Functor.PushoutObjObj.ofHasPushout_ι + theorem CategoryTheory.Functor.PushoutObjObj.ι_flip + def CategoryTheory.Functor.PushoutObjObj.ι_iso_of_iso_left + def CategoryTheory.Functor.PushoutObjObj.ι_iso_of_iso_right + structure CategoryTheory.Functor.PushoutObjObj + def CategoryTheory.Functor.leibnizPullback + def CategoryTheory.Functor.leibnizPushout 2026-01-31 20:13:05 bf85848 feat(Order/Minimal): uncompose `MinimalFor`/`MaximalFor` with a strictly monotonic function (#34655) ESTIMATED CHANGES Modified Mathlib/Order/Minimal.lean + theorem MaximalFor.maximal_of_strictMonoOn + theorem MaximalFor.minimalFor_of_strictAntiOn_comp + theorem MaximalFor.minimal_of_strictAntiOn + theorem MaximalFor.of_strictMonoOn_comp + theorem MinimalFor.maximalFor_of_strictAntiOn_comp + theorem MinimalFor.maximal_of_strictAntiOn + theorem MinimalFor.minimal_of_strictMonoOn + theorem MinimalFor.of_strictMonoOn_comp 2026-01-31 17:08:41 ec57dd4 feat(Analysis/Convex): barycenter of a standard simplex (#33845) barycenter of a standard simplex ESTIMATED CHANGES Modified Mathlib/Analysis/Convex/StdSimplex.lean + def stdSimplex.barycenter + theorem stdSimplex.barycenter_apply + theorem stdSimplex.barycenter_eq_centerMass 2026-01-31 16:38:50 de1eb75 feat(NumberTheory/ArithmeticFunction): add ArithmeticFunction.neg_apply (#34653) We already have add_apply, mul_apply etc for ArithmeticFunction but neg_apply is missing. It has at least one use in the PNT project. ESTIMATED CHANGES Modified Mathlib/NumberTheory/ArithmeticFunction/Defs.lean + theorem ArithmeticFunction.neg_apply 2026-01-31 16:38:48 8405e44 feat: generalize some lemmas about linear ordered topological spaces (#33863) Currently, lemmas about `Filter.map ((↑) : Set.Iio a → X) Filter.atTop` etc assume that the ambient type is densely ordered. However, it suffices to require that `a` is an `Order.IsSuccPrelimit`. Make this generalization and move the lemmas to a new file. Also, use the new lemmas to drop a `[DenselyOrdered _]` assumption in one lemma in measure theory. These more precise statements are also useful when dealing with, e.g., linear ordered topologies defined by ordinals. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Analysis/SpecialFunctions/Exp.lean Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Arctan.lean Modified Mathlib/MeasureTheory/Measure/Hausdorff.lean Modified Mathlib/MeasureTheory/Measure/MeasureSpace.lean Added Mathlib/Topology/Order/AtTopBotIxx.lean + theorem comap_coe_Iio_nhdsLT + theorem comap_coe_Ioi_nhdsGT + theorem comap_coe_Ioo_nhdsGT + theorem comap_coe_Ioo_nhdsLT + theorem comap_coe_nhdsGT_eq_atBot_iff + theorem comap_coe_nhdsGT_of_Ioo_subset + theorem comap_coe_nhdsLT_eq_atTop_iff + theorem comap_coe_nhdsLT_of_Ioo_subset + theorem map_coe_Iio_atTop + theorem map_coe_Ioi_atBot + theorem map_coe_Ioo_atBot + theorem map_coe_Ioo_atTop + theorem map_coe_atBot_of_Ioo_subset + theorem map_coe_atTop_of_Ioo_subset + theorem tendsto_Iio_atTop + theorem tendsto_Ioi_atBot + theorem tendsto_Ioo_atBot + theorem tendsto_Ioo_atTop + theorem tendsto_comp_coe_Iio_atTop + theorem tendsto_comp_coe_Ioi_atBot + theorem tendsto_comp_coe_Ioo_atBot + theorem tendsto_comp_coe_Ioo_atTop Modified Mathlib/Topology/Order/DenselyOrdered.lean - theorem comap_coe_Iio_nhdsLT - theorem comap_coe_Ioi_nhdsGT - theorem comap_coe_Ioo_nhdsGT - theorem comap_coe_Ioo_nhdsLT - theorem comap_coe_nhdsGT_of_Ioo_subset - theorem comap_coe_nhdsLT_of_Ioo_subset - theorem map_coe_Iio_atTop - theorem map_coe_Ioi_atBot - theorem map_coe_Ioo_atBot - theorem map_coe_Ioo_atTop - theorem map_coe_atBot_of_Ioo_subset - theorem map_coe_atTop_of_Ioo_subset - theorem tendsto_Iio_atTop - theorem tendsto_Ioi_atBot - theorem tendsto_Ioo_atBot - theorem tendsto_Ioo_atTop - theorem tendsto_comp_coe_Iio_atTop - theorem tendsto_comp_coe_Ioi_atBot - theorem tendsto_comp_coe_Ioo_atBot - theorem tendsto_comp_coe_Ioo_atTop 2026-01-31 16:07:55 6062e0e feat: an additive content on a semiring of sets extends to the generated ring of sets (#34499) Needed for #34055. ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Measure/AddContent.lean + theorem MeasureTheory.AddContent.supClosure_apply + theorem MeasureTheory.AddContent.supClosure_apply_finpartition + theorem MeasureTheory.AddContent.supClosure_apply_of_mem + theorem MeasureTheory.addContent_biUnion + theorem MeasureTheory.addContent_iUnion + theorem MeasureTheory.sum_addContent_eq_of_sUnion_eq 2026-01-31 16:07:54 6c3bec2 feat: IsLUB version of [c]sSup_add (#34105) I find that sometimes it's more convenient to carry around IsLUB than a conditional sup + nonemptyness + boundedness. ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Group/Pointwise/Bounds.lean + theorem IsGLB.div + theorem IsGLB.mul + theorem IsLUB.div + theorem IsLUB.mul 2026-01-31 15:52:44 953451d chore(FieldTheory/Galois/NormalBasis): don't expose file (#34630) Remove the `@[expose] public section` at the top of the file, instead marking each public theorem individually. `normalBasis` is completely characterized by `normalBasis_apply`, and has no interesting defeqs, so it is not exposed. ESTIMATED CHANGES Modified Mathlib/FieldTheory/Galois/NormalBasis.lean - theorem IsGalois.normalBasis_apply - theorem exists_linearIndependent_algEquiv_apply + theorem exists_linearIndependent_algEquiv_apply_of_finite + theorem exists_linearIndependent_algEquiv_apply_of_infinite 2026-01-31 14:53:12 e15feb0 doc: improve `IsAlgClosed` docstring (#34647) We remove an outdated remark about `Polynomial.Splits`, and give a more informative definition. ESTIMATED CHANGES Modified Mathlib/FieldTheory/IsAlgClosed/Basic.lean 2026-01-31 14:53:11 6e485d5 chore(FieldTheory/IsAlgClosed/Basic): remove `backward.privateInPublic` (#34644) We achieve this by `no_expose`-ing a definition that was intended to be irreducible anyways. ESTIMATED CHANGES Modified Mathlib/FieldTheory/IsAlgClosed/Basic.lean 2026-01-31 14:53:09 407f2a5 chore: Rename ncard_image_of_injOn (#34589) See [zulip](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Consistent.20naming.20scheme.20in.20Data.2FSet.2FCard/with/570464688), there are inconsistent namings. ESTIMATED CHANGES Modified Mathlib/Combinatorics/SimpleGraph/Connectivity/Represents.lean Modified Mathlib/Data/Set/Card.lean + theorem Set.InjOn.ncard_image - theorem Set.ncard_image_of_injOn Modified Mathlib/RingTheory/PowerSeries/Ideal.lean 2026-01-31 14:53:07 0ea3c36 feat(Data/ZMod): coprime_mod_iff_coprime (#34500) ESTIMATED CHANGES Modified Mathlib/Data/ZMod/Basic.lean + theorem ZMod.coprime_mod_iff_coprime 2026-01-31 14:53:06 796ce1b doc: add `recommended_spelling` for `Max.max` (#34231) This is the follow-up PR to #34181. In #34181, I avoided adding `recommended_spelling "sup"` to `Max.max` because it could be confusing for linear order types. However, this confusion can be resolved by adding both `recommended_spelling "max"` and `recommended_spelling "sup"` with additional documentation. ESTIMATED CHANGES Modified Mathlib/Order/Notation.lean 2026-01-31 14:23:04 5ce1746 feat: distance on the set of measurable sets given by the measure of the symmetric difference (#34517) We also give a density criterion for this distance for a ring of sets generating the sigma-algebra. Needed for #34055. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/MeasureTheory/MeasurableSpace/Basic.lean + theorem measurableSet_generateFrom_of_mem_supClosure Added Mathlib/MeasureTheory/Measure/MeasuredSets.lean + theorem MeasureTheory.MeasuredSets.continuous_measure + theorem MeasureTheory.MeasuredSets.dist_def + theorem MeasureTheory.MeasuredSets.edist_def + def MeasureTheory.MeasuredSets + theorem MeasureTheory.dense_of_generateFrom_isSetRing + theorem MeasureTheory.dense_of_generateFrom_isSetSemiring + theorem MeasureTheory.exists_measure_symmDiff_lt_of_generateFrom_isSetRing + theorem MeasureTheory.exists_measure_symmDiff_lt_of_generateFrom_isSetSemiring Modified Mathlib/Topology/EMetricSpace/Defs.lean + theorem EMetric.dense_iff 2026-01-31 13:23:02 eed54db perf(Linter/Whitespace): revert #26240 (#34645) This causes significant regressions to code with many violations, see e.g. https://leanprover.zulipchat.com/#narrow/channel/113488-general/topic/.60linear_combination.60.20performance.20regression.20in.20v4.2E28.2E0-rc1. Going from srcNat := ls.length to srcNat := ls.positions.count causes a regression, as this could go through the string linearly. Let us revert this change instead; it is not forward-compatible with #30658 anyway. ESTIMATED CHANGES Modified Mathlib/Tactic/Linter/Whitespace.lean +/- def Mathlib.Linter.mkFormatError +/- def Mathlib.Linter.parallelScanAux 2026-01-31 13:23:01 f885990 chore(Data/Nat/Choose/Basic): fix reference to non-existent lemma (#34628) The doc-string of `Nat.choose` referred to `Fintype.card_posersetCard`. But when I went to look for this lemma, it didn't exist. But it seems to exist in the `Finset` namespace. So this PR changes it to the existing lemma name. ESTIMATED CHANGES Modified Mathlib/Data/Nat/Choose/Basic.lean 2026-01-31 12:21:26 6a596ab chore: longLine warnings happen starting at the 101st character (#30902) Right now, the longLine linter warning spans the whole line. This PR changes the behaviour and the warning only covers the characters exceeding the 100 character limit. Previous discussion: [#general > error lens in lean4 @ 💬](https://leanprover.zulipchat.com/#narrow/channel/113488-general/topic/error.20lens.20in.20lean4/near/547074537) Specific thread: [#mathlib4 > Restrict longLine warning to exceeding characters @ 💬](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Restrict.20longLine.20warning.20to.20exceeding.20characters/near/547081669) ESTIMATED CHANGES Modified Mathlib/Tactic/Linter/Style.lean 2026-01-31 11:00:31 b586814 fix: update message for `lake exe mk_all --module --check` (#34627) Currently the output of `lake exe mk_all --module --check` will omit the `--module` flag, causing some confusion for downstream CI. ESTIMATED CHANGES Modified scripts/mk_all.lean 2026-01-31 09:49:32 fbc09fe feat(NumberTheory/Height/Basic): positivity extensions (#34534) This PR adds extensions for the `positivity` tactic so that it knows that `Height.mulHeight₁ x` and `Height.mulHeight x` are positive and `Height.logHeight₁ x` and `Height.logHeight` are nonnegative. ESTIMATED CHANGES Modified Mathlib/NumberTheory/Height/Basic.lean +/- theorem Height.zero_le_logHeight 2026-01-31 09:34:21 89aaf1e feat(AlgebraicTopology/ModelCategory): the right derivability structure (#33956) We show that the inclusion of the full subcategory of fibrant objects in a model category gives a right derivability structure (with respect to weak equivalences). This PR dualizes #33088 ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/AlgebraicTopology/ModelCategory/CofibrantObjectHomotopy.lean + def HomotopicalAlgebra.CofibrantObject.HoCat.toHoCatCompToLocalizationIso - def HomotopicalAlgebra.CofibrantObject.HoCat.toπCompToLocalizationIso Added Mathlib/AlgebraicTopology/ModelCategory/DerivabilityStructureFibrant.lean Modified Mathlib/AlgebraicTopology/ModelCategory/FibrantObjectHomotopy.lean + def HomotopicalAlgebra.FibrantObject.HoCat.toHoCatCompToLocalizationIso + def HomotopicalAlgebra.FibrantObject.HoCat.toLocalization + def HomotopicalAlgebra.FibrantObject.localizerMorphism 2026-01-31 05:34:57 dffa0f2 feat(Analysis/Calculus/FDeriv/Basic): generalize to TVS (#34345) Note that now that `Differentiable.continuous` takes the `[Module k E] [ContinuousSMul k E]`, `fun_prop` is no longer willing to apply it due to metavariables in the type when trying to synthesize `ContinuousSMul`. This happens exactly once in mathlib. ESTIMATED CHANGES Modified Mathlib/Analysis/Calculus/FDeriv/Basic.lean +/- theorem DifferentiableWithinAt.of_finite +/- theorem DifferentiableWithinAt.of_subsingleton +/- theorem HasFDerivAt.lim +/- theorem HasFDerivWithinAt.of_finite +/- theorem HasFDerivWithinAt.of_notMem_closure +/- theorem HasFDerivWithinAt.of_not_accPt +/- theorem HasFDerivWithinAt.of_subsingleton +/- theorem differentiableWithinAt_insert +/- theorem differentiableWithinAt_insert_self +/- theorem fderivWithin_eq_fderiv +/- theorem fderivWithin_id' +/- theorem fderivWithin_id +/- theorem fderivWithin_of_mem_nhdsWithin +/- theorem fderivWithin_zero_of_notMem_closure +/- theorem fderivWithin_zero_of_not_accPt +/- theorem fderiv_eq +/- theorem fderiv_id' +/- theorem fderiv_id +/- theorem hasFDerivWithinAt_diff_singleton +/- theorem hasFDerivWithinAt_insert Modified Mathlib/Analysis/SpecialFunctions/Sigmoid.lean +/- theorem continuous_sigmoid 2026-01-31 02:38:49 86a6928 feat(Analysis/Distribution): `tsupport` of `smulLeftCLM` (#34595) ESTIMATED CHANGES Modified Mathlib/Analysis/Distribution/SchwartzSpace/Basic.lean + theorem SchwartzMap.smulLeftCLM_apply + theorem SchwartzMap.tsupport_smulLeftCLM_subset 2026-01-31 01:10:08 f1d2276 chore: use custom docker image for codespaces (#34615) After a lot of experimentation with the help of @b-mehta, this is my best guess as to why codespaces sometimes failed: Codespaces uses the [pre-built gitpod docker image](https://github.com/leanprover-community/mathlib4/pkgs/container/mathlib4%2Fgitpod). This image is updated daily and includes not just elan but also a copy of the toolchain currently used by mathlib master, to speed up codespace initialization time. The default tier of codespaces runners are limited to 32 GiB of storage space. While a fully initialized codespace has more than enough free space, there is a lot less space available during initialization of the codespace (I don't know why). When opening a codespace for a different toolchain than the one used by mathlib master, the second toolchain combined with the data downloaded and unpacked by `lake exe cache get` takes up more space than is left in the codespace. This causes initialization to fail and the codespace to switch to a rescue image. The rescue image is usually alpine-based, where lean won't work, resulting in a broken codespace after a considerable amount of waiting. Simply setting `hostRequirements.storage` to a higher value in `devcontainer.json` won't work, since GitHub will say that no runner machines with this configuration are available. Maybe paying for codespaces unlocks more powerful runners, but that's an unreasonable hurdle for the average person who just wants to experiment with lean/mathlib a bit. This PR hopes to solve the problem by switching back to the custom devcontainer docker image that doesn't include a default toolchain. This increases the codespace initialization time a bit: A gitpod docker image based codespace takes about **4 minutes** to finish initializing, but breaks if the toolchain doesn't match mathlib master. A custom docker image based codespace takes about **5 minutes** to finish initializing (the extra time mostly due to installing the lean toolchain; bulding the custom image is pretty quick), but should work with any toolchain. ESTIMATED CHANGES Modified .devcontainer/Dockerfile Modified .devcontainer/devcontainer.json 2026-01-31 00:21:56 47d7a52 feat(LinearAlgebra/Matrix/Hadamard): some API (#34600) Also move diagonal section earlier in file; change `fun i => M i i` to `M.diag`; and golf stuff using new results. ESTIMATED CHANGES Modified Mathlib/Combinatorics/SimpleGraph/AdjMatrix.lean + theorem Matrix.isAdjMatrix_iff_hadamard Modified Mathlib/Data/Matrix/Diagonal.lean + theorem Matrix.diagonal_zero' Modified Mathlib/LinearAlgebra/Matrix/Hadamard.lean + theorem Matrix.diagonal_hadamard + theorem Matrix.diagonal_hadamard_eq_diagonal_iff + theorem Matrix.hadamard_diagonal + theorem Matrix.hadamard_diagonal_eq_diagonal_iff + theorem Matrix.hadamard_of_one +/- theorem Matrix.hadamard_one + theorem Matrix.hadamard_one_eq_diagonal_iff + theorem Matrix.hadamard_one_eq_one_iff + theorem Matrix.hadamard_one_eq_zero_iff + theorem Matrix.hadamard_self_eq_self_iff + theorem Matrix.of_one_hadamard +/- theorem Matrix.one_hadamard + theorem Matrix.one_hadamard_eq_diagonal_iff + theorem Matrix.one_hadamard_eq_one_iff + theorem Matrix.one_hadamard_eq_zero_iff 2026-01-30 21:42:09 0ecfe98 chore: add missing deprecation for Summable_cotTerm (#34602) From #32585. ESTIMATED CHANGES Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Cotangent.lean 2026-01-30 20:07:49 1041f76 feat(FieldTheory/Minpoly/IsConjRoot): generalize `IsEquiv` and add small commutativity lemmas (#34218) The signature of `IsConjRoot` is: ```lean def IsConjRoot (R : Type*) {A : Type*} [CommRing R] [Ring A] [Algebra R A] (x y : A) : Prop ``` and the signature of the `IsEquiv` instance is: ```lean instance IsConjRoot.instIsEquiv {K L : Type*} [Field K] [Field L] [Algebra K L] : IsEquiv L (IsConjRoot K) ``` This generalizes the instance to `CommRing`+`Ring` like `IsConjRoot` itself. ESTIMATED CHANGES Modified Mathlib/FieldTheory/Minpoly/IsConjRoot.lean + theorem IsConjRoot.comm + theorem IsConjRoot.isIntegral_iff 2026-01-30 18:29:06 8dfbe25 feat(CategoryTheory): constant functors are accessible, accessibility is preserved by composition (#34544) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Limits/Constructions/EventuallyConstant.lean Modified Mathlib/CategoryTheory/Presentable/Basic.lean Modified Mathlib/CategoryTheory/Presentable/IsCardinalFiltered.lean + theorem CategoryTheory.IsCardinalFiltered.nonempty 2026-01-30 17:31:35 3325958 feat(Order): order types (#34034) Adding the basic definitions around order types, the equivalence classes of linear orders under order isomorphism. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Order/Category/LinOrd.lean - structure LinOrd Modified Mathlib/Order/Defs/LinearOrder.lean + structure LinOrd Added Mathlib/Order/Types/Defs.lean + def OrderType.ToType + theorem OrderType.bot_eq_zero + theorem OrderType.inductionOn + theorem OrderType.inductionOn₂ + theorem OrderType.inductionOn₃ + def OrderType.instSetoid + def OrderType.liftOn + theorem OrderType.liftOn_type + def OrderType.omega0 + theorem OrderType.pos_iff_ne_zero + def OrderType.type + theorem OrderType.type_congr + theorem OrderType.type_eq_one + theorem OrderType.type_eq_type + theorem OrderType.type_eq_zero + theorem OrderType.type_le_type + theorem OrderType.type_le_type_iff + theorem OrderType.type_lt_type + theorem OrderType.type_nat + theorem OrderType.type_ne_zero + theorem OrderType.type_ne_zero_iff + theorem OrderType.type_of_isEmpty + theorem OrderType.type_of_unique + theorem OrderType.type_toType + def OrderType 2026-01-30 17:31:33 8514bd7 feat: Schur's lemma for monoid representations (#33802) Adds an algebra instance on the set of intertwining maps. Proves various versions of Schur's lemma for monoid representations and proves that a finite-dimensional irreducible representation of a commutative monoid is one-dimensional. ESTIMATED CHANGES Modified Mathlib/RepresentationTheory/Basic.lean Modified Mathlib/RepresentationTheory/Intertwining.lean + theorem Representation.IntertwiningMap.algebraMap_apply + theorem Representation.IntertwiningMap.coe_mk + theorem Representation.IntertwiningMap.coe_mul + theorem Representation.IntertwiningMap.coe_one + def Representation.IntertwiningMap.comp + def Representation.IntertwiningMap.equivAlgEnd + def Representation.IntertwiningMap.id - theorem Representation.IntertwiningMap.id_apply + def Representation.IntertwiningMap.llcomp + theorem Representation.IntertwiningMap.mul_apply Modified Mathlib/RepresentationTheory/Irreducible.lean + theorem Representation.IsIrreducible.algebraMap_intertwiningMap_bijective_of_isAlgClosed + theorem Representation.IsIrreducible.bijective_or_eq_zero + theorem Representation.IsIrreducible.finrank_eq_one_of_isMulCommutative + theorem Representation.IsIrreducible.injective_or_eq_zero 2026-01-30 16:27:47 933e89d chore: import Tactic.Attr.Register privately (#32541) This is mostly to start a discussion: Should basic tactic files like this one be re-exported by all files out of them being basic, or whether they should be explicitly imported by the few files that actually need it. Eg in #32245 Andrew and I are adding a new simp attribute, and it's a bit silly that we have to rebuild all of mathlib because that file is re-exported everywhere. ESTIMATED CHANGES Modified Mathlib/Algebra/Free.lean Modified Mathlib/Algebra/Group/Units/Basic.lean Modified Mathlib/CategoryTheory/Monoidal/Mon_.lean Modified Mathlib/Control/Applicative.lean Modified Mathlib/Control/Basic.lean Modified Mathlib/Control/Functor.lean Modified Mathlib/Control/Monad/Basic.lean Modified Mathlib/Control/Traversable/Basic.lean Modified Mathlib/Control/Traversable/Equiv.lean Modified Mathlib/Control/Traversable/Lemmas.lean Modified Mathlib/Data/Prod/Basic.lean Modified Mathlib/Data/Set/Operations.lean Modified Mathlib/Logic/Basic.lean Modified Mathlib/Logic/Equiv/Defs.lean Modified Mathlib/Logic/Function/Basic.lean Modified Mathlib/Logic/Function/Defs.lean Modified Mathlib/Logic/Nontrivial/Basic.lean Modified Mathlib/Tactic/Attr/Core.lean Modified Mathlib/Tactic/HigherOrder.lean Modified Mathlib/Tactic/Zify.lean 2026-01-30 15:11:34 24d904e chore: rename isLE_of_LE, isGE_of_GE (#34612) Per rule 6 of the naming convention, they should be called isLE_of_le resp. isGE_of_ge. Found by the linter in #34440. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Triangulated/TStructure/Basic.lean - theorem CategoryTheory.Triangulated.TStructure.isGE_of_GE + theorem CategoryTheory.Triangulated.TStructure.isGE_of_ge - theorem CategoryTheory.Triangulated.TStructure.isLE_of_LE + theorem CategoryTheory.Triangulated.TStructure.isLE_of_le 2026-01-30 15:11:32 2b374df chore: fix and re-enable differential geometry elaborators test (#34562) `set_option pp.mvars false` normalises the universe levels, making the output sufficiently deterministic. Follow-up to #30744. ESTIMATED CHANGES Modified MathlibTest/DifferentialGeometry/NotationAdvanced.lean 2026-01-30 15:11:30 dd5024f chore(CategoryTheory/Adjunction): slightly generalize universes in adjoint functor theorem (#34541) Also updates a name in the module docstring ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Adjunction/AdjointFunctorTheorems.lean +/- def CategoryTheory.SolutionSetCondition +/- theorem CategoryTheory.solutionSetCondition_of_isRightAdjoint 2026-01-30 15:11:29 34c5b08 feat(CategoryTheory): results abouts kernels and pullback squares (#34495) In a pullback square, the kernel of the top map identifies to the kernel of the bottom map. If the category is abelian and a square is pushout, the morphism from the kernel of the top map to the kernel of the bottom map is an epimorphism. Dual results are also obtained. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/CategoryTheory/Abelian/CommSq.lean + theorem CategoryTheory.Abelian.epi_kernel_map_of_isPushout + theorem CategoryTheory.Abelian.mono_cokernel_map_of_isPullback Modified Mathlib/CategoryTheory/Galois/Examples.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Kernels.lean Added Mathlib/CategoryTheory/Limits/Shapes/Pullback/IsPullback/Kernels.lean + theorem CategoryTheory.Limits.isIso_cokernel_map_of_isPushout + theorem CategoryTheory.Limits.isIso_kernel_map_of_isPullback 2026-01-30 15:11:27 409fcdc chore: golf using fun_prop (#34441) The goal of this PR is to remove many explicit references to continuous(On)_const; to reduce the diff in #31607. ESTIMATED CHANGES Modified Mathlib/Analysis/Analytic/Basic.lean Modified Mathlib/Analysis/Analytic/Inverse.lean Modified Mathlib/Analysis/CStarAlgebra/Multiplier.lean Modified Mathlib/Analysis/Calculus/BumpFunction/FiniteDimension.lean Modified Mathlib/Analysis/Calculus/BumpFunction/InnerProduct.lean Modified Mathlib/Analysis/Calculus/MeanValue.lean Modified Mathlib/Analysis/Calculus/Rademacher.lean Modified Mathlib/Analysis/Complex/CauchyIntegral.lean Modified Mathlib/Analysis/Complex/OpenMapping.lean Modified Mathlib/Analysis/Complex/PhragmenLindelof.lean Modified Mathlib/Analysis/Convex/Cone/Basic.lean Modified Mathlib/Analysis/Convex/Cone/Closure.lean Modified Mathlib/Analysis/Convex/Contractible.lean Modified Mathlib/Analysis/Convex/StdSimplex.lean Modified Mathlib/Analysis/Convolution.lean Modified Mathlib/Analysis/Distribution/SchwartzSpace/Basic.lean Modified Mathlib/Analysis/Fourier/FourierTransform.lean Modified Mathlib/Analysis/InnerProductSpace/Projection/Minimal.lean Modified Mathlib/Analysis/LocallyConvex/SeparatingDual.lean Modified Mathlib/Analysis/Meromorphic/Order.lean Modified Mathlib/Analysis/Normed/Algebra/Spectrum.lean Modified Mathlib/Analysis/Normed/Module/Convex.lean Modified Mathlib/Analysis/Normed/Module/Multilinear/Basic.lean Modified Mathlib/Analysis/Normed/Module/RCLike/Real.lean Modified Mathlib/Analysis/Normed/Operator/BoundedLinearMaps.lean Modified Mathlib/Analysis/Normed/Operator/Extend.lean Modified Mathlib/Analysis/ODE/Gronwall.lean Modified Mathlib/Analysis/ODE/PicardLindelof.lean Modified Mathlib/Analysis/RCLike/Basic.lean Modified Mathlib/Analysis/SpecialFunctions/Complex/Circle.lean Modified Mathlib/Analysis/SpecialFunctions/Complex/Log.lean Modified Mathlib/Analysis/SpecialFunctions/Exp.lean Modified Mathlib/Analysis/SpecialFunctions/Gamma/Beta.lean Modified Mathlib/Analysis/SpecialFunctions/Gamma/BohrMollerup.lean Modified Mathlib/Analysis/SpecialFunctions/Gamma/Deligne.lean Modified Mathlib/Analysis/SpecialFunctions/Gaussian/FourierTransform.lean Modified Mathlib/Analysis/SpecialFunctions/Gaussian/GaussianIntegral.lean Modified Mathlib/Analysis/SpecialFunctions/Integrability/Basic.lean Modified Mathlib/Analysis/SpecialFunctions/Integrals/Basic.lean Modified Mathlib/Analysis/SpecialFunctions/Pow/Continuity.lean Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/EulerSineProd.lean Modified Mathlib/Dynamics/Circle/RotationNumber/TranslationNumber.lean Modified Mathlib/Geometry/Manifold/ContMDiff/Basic.lean Modified Mathlib/Geometry/Manifold/Instances/Real.lean Modified Mathlib/Geometry/Manifold/MFDeriv/SpecificFunctions.lean Modified Mathlib/MeasureTheory/Constructions/BorelSpace/Metric.lean +/- theorem measurable_edist_left +/- theorem measurable_edist_right Modified Mathlib/MeasureTheory/Function/AEEqFun.lean Modified Mathlib/MeasureTheory/Function/AEEqOfIntegral.lean Modified Mathlib/MeasureTheory/Function/ContinuousMapDense.lean Modified Mathlib/MeasureTheory/Function/SimpleFuncDenseLp.lean Modified Mathlib/MeasureTheory/Integral/CircleTransform.lean Modified Mathlib/MeasureTheory/Integral/CurveIntegral/Poincare.lean Modified Mathlib/MeasureTheory/Measure/Haar/OfBasis.lean Modified Mathlib/MeasureTheory/Measure/Haar/Quotient.lean Modified Mathlib/MeasureTheory/Measure/Haar/Unique.lean Modified Mathlib/NumberTheory/LSeries/AbstractFuncEq.lean Modified Mathlib/Probability/StrongLaw.lean Modified Mathlib/Topology/Algebra/Algebra.lean Modified Mathlib/Topology/Algebra/Group/Basic.lean +/- theorem continuous_div_left' +/- theorem continuous_div_right' Modified Mathlib/Topology/Algebra/Group/OpenMapping.lean Modified Mathlib/Topology/Algebra/GroupCompletion.lean Modified Mathlib/Topology/Algebra/MetricSpace/Lipschitz.lean Modified Mathlib/Topology/Algebra/Module/Basic.lean Modified Mathlib/Topology/Algebra/Monoid.lean +/- theorem continuous_mul_left +/- theorem continuous_mul_right Modified Mathlib/Topology/Algebra/UniformRing.lean Modified Mathlib/Topology/Algebra/Valued/ValuedField.lean Modified Mathlib/Topology/Category/Profinite/Nobeling/Basic.lean Modified Mathlib/Topology/Homotopy/Basic.lean Modified Mathlib/Topology/Instances/ENNReal/Lemmas.lean Modified Mathlib/Topology/Instances/Rat.lean Modified Mathlib/Topology/Instances/RealVectorSpace.lean Modified Mathlib/Topology/MetricSpace/Completion.lean Modified Mathlib/Topology/MetricSpace/HausdorffDistance.lean Modified Mathlib/Topology/MetricSpace/ProperSpace/Lemmas.lean Modified Mathlib/Topology/MetricSpace/Pseudo/Lemmas.lean +/- theorem Metric.isClosed_closedBall +/- theorem Metric.isClosed_sphere Modified Mathlib/Topology/Order/ProjIcc.lean +/- theorem continuous_projIcc Modified Mathlib/Topology/Path.lean Modified Mathlib/Topology/UrysohnsLemma.lean 2026-01-30 15:11:25 a541d53 chore(Data/Nat/Factorization/Defs): golf `factorization_le_iff_dvd` and `prod_pow_factorization_eq_self` (#34426) ESTIMATED CHANGES Modified Mathlib/Data/Nat/Factorization/Defs.lean 2026-01-30 15:11:23 f468b6a feat(Order/WithBot): `∀ x > ↑a, p x` iff `∀ b > a, p ↑b` (#34363) Upstreamed from the CGT repo. ESTIMATED CHANGES Modified Mathlib/Order/WithBot.lean + theorem WithBot.exists_coe_le + theorem WithBot.exists_coe_lt + theorem WithBot.forall_coe_le + theorem WithBot.forall_coe_lt +/- theorem WithBot.forall_ne_bot 2026-01-30 15:11:21 50efe24 feat(RingTheory): `Localization.exists_finite_awayMapₐ_of_surjective_awayMapₐ` (#34274) ESTIMATED CHANGES Modified Mathlib/RingTheory/Etale/QuasiFinite.lean + theorem Localization.exists_finite_awayMapₐ_of_surjective_awayMapₐ Modified Mathlib/RingTheory/Localization/InvSubmonoid.lean 2026-01-30 14:51:50 2255913 chore: rename not_IntegrableOn_Ici_inv and not_IntegrableOn_Ioi_inv (#34613) Per rule 6 of the naming convention, they should be called not_integrableOn_Ici_inv resp. not_integrableOn_Ioi_inv. ESTIMATED CHANGES Modified Mathlib/Analysis/SpecialFunctions/ImproperIntegrals.lean Modified Mathlib/Analysis/SpecialFunctions/NonIntegrable.lean - theorem not_IntegrableOn_Ici_inv - theorem not_IntegrableOn_Ioi_inv + theorem not_integrableOn_Ici_inv + theorem not_integrableOn_Ioi_inv 2026-01-30 13:30:47 220c637 chore: update Mathlib dependencies 2026-01-30 (#34609) This PR updates the Mathlib dependencies. ESTIMATED CHANGES Modified lake-manifest.json 2026-01-30 13:30:45 ba9c413 chore: add deprecation for ModularForm.prod_fintype_slash (#34608) From #32978. ESTIMATED CHANGES Modified Mathlib/NumberTheory/ModularForms/SlashActions.lean + theorem ModularForm.prod_fintype_slash 2026-01-30 13:30:44 c7cb6d3 chore: remove obsolete adaptation notes (#34607) No changes were necessary by the time these landed in master (#34436). ESTIMATED CHANGES Modified Mathlib/Algebra/Prime/Lemmas.lean Modified Mathlib/LinearAlgebra/UnitaryGroup.lean Modified Mathlib/RingTheory/Valuation/Discrete/Basic.lean 2026-01-30 13:30:41 b4f6eb5 feat(RingTheory/UniqueFactorizationDomain/Basic): associated elements have the same number of factors (#34572) This PR proves that associated elements have the same number of factors (this follows from the preceeding lemma `factors_unique`). ESTIMATED CHANGES Modified Mathlib/RingTheory/UniqueFactorizationDomain/Basic.lean + theorem Associated.card_factors_eq 2026-01-30 13:30:39 a1c5c92 chore: remove LongestPole (#34354) This PR removes the `lake exe pole` and `lake exe unused` tools, along with the `LongestPole` library and `scripts/unused_in_pole.sh`. These were early experiments in analyzing Mathlib's import structure and build times. Equivalent data is now available as part of the `lakeprof` report produced by radar. - [x] depends on: #34555 🤖 Prepared with Claude Code ESTIMATED CHANGES Deleted LongestPole/Main.lean - def Float.toStringDecimals - def RadarAPI.JsonGet.instructions - def RadarAPI.getRunInfo - def RadarAPI.getRunInfoJson - def RadarAPI.instructions - def countLOC - def headSha - def longestPoleCLI - def main - def pole - def runCmd - def runCurl - def slowestParents - def totalInstructions Deleted LongestPole/RadarJson.lean - structure RadarAPI.JsonCommitComparison - structure RadarAPI.JsonGet - structure RadarAPI.JsonMetricComparison Deleted LongestPole/Rectangles.lean - def Rectangle.area - def Rectangle.expansions - def Rectangle.height - def Rectangle.toString - def Rectangle.weightedArea - def Rectangle.width - structure Rectangle Deleted LongestPole/Unused.lean - def countDecls - def main - def unused - def unusedImportsCLI Modified lakefile.lean Modified scripts/README.md Modified scripts/mk_all.lean Deleted scripts/unused_in_pole.sh 2026-01-30 13:30:37 b6e76ed chore: use to_fun to generate MeasurableSpace.fun_comp (#34301) And rename the previous declaration `.comp'` this way. ESTIMATED CHANGES Modified Mathlib/MeasureTheory/MeasurableSpace/Defs.lean 2026-01-30 13:30:36 0ab9ff4 feat(Combinatorics/SimpleGraph/Clique): avoid `Fintype`/`Finite` assumptions where possible (#33253) Also prove `G.cliqueNum ≤ G.chromaticNumber` without any finiteness assumptions. ESTIMATED CHANGES Modified Mathlib/Combinatorics/SimpleGraph/Clique.lean +/- theorem SimpleGraph.IsIndepSet.nonempty_mem_compl_mem_edge +/- theorem SimpleGraph.IsMaximumClique.isMaximalClique +/- structure SimpleGraph.IsMaximumClique +/- structure SimpleGraph.IsMaximumIndepSet +/- theorem SimpleGraph.completeMultipartiteGraph.not_cliqueFree_of_le_card +/- theorem SimpleGraph.exists_isNClique_cliqueNum +/- theorem SimpleGraph.exists_isNIndepSet_indepNum +/- theorem SimpleGraph.isMaximumClique_compl +/- theorem SimpleGraph.isMaximumClique_iff +/- theorem SimpleGraph.isMaximumIndepSet_compl +/- theorem SimpleGraph.maximumClique_card_eq_cliqueNum +/- theorem SimpleGraph.maximumClique_exists +/- theorem SimpleGraph.maximumIndepSet_exists Modified Mathlib/Combinatorics/SimpleGraph/Coloring.lean + theorem SimpleGraph.cliqueNum_le_chromaticNumber 2026-01-30 12:44:30 000c398 chore: tidy various files (#34610) ESTIMATED CHANGES Modified Archive/Examples/Kuratowski.lean Modified Mathlib/Algebra/Algebra/Subalgebra/Directed.lean +/- theorem Subalgebra.coe_iSup_of_directed Modified Mathlib/Algebra/Group/Irreducible/Indecomposable.lean Modified Mathlib/Algebra/Module/FinitePresentation.lean Modified Mathlib/Algebra/Module/Torsion/Basic.lean Modified Mathlib/Analysis/InnerProductSpace/Coalgebra.lean Modified Mathlib/Analysis/InnerProductSpace/Orthogonal.lean Modified Mathlib/Analysis/Meromorphic/Basic.lean Modified Mathlib/Analysis/Normed/Operator/BoundedLinearMaps.lean Modified Mathlib/Analysis/SpecialFunctions/Gaussian/GaussianIntegral.lean Modified Mathlib/CategoryTheory/Abelian/Injective/Extend.lean Modified Mathlib/CategoryTheory/Sites/PrecoverageToGrothendieck.lean Modified Mathlib/CategoryTheory/Triangulated/Pretriangulated.lean Modified Mathlib/Combinatorics/SimpleGraph/Diam.lean Modified Mathlib/Combinatorics/SimpleGraph/Metric.lean Modified Mathlib/Geometry/Euclidean/NinePointCircle.lean Modified Mathlib/GroupTheory/OreLocalization/Basic.lean Modified Mathlib/LinearAlgebra/AffineSpace/Simplex/Centroid.lean Modified Mathlib/LinearAlgebra/BilinearForm/Orthogonal.lean Modified Mathlib/LinearAlgebra/DirectSum/TensorProduct.lean Modified Mathlib/LinearAlgebra/Transvection.lean Modified Mathlib/MeasureTheory/Measure/AddContent.lean Modified Mathlib/ModelTheory/Topology/Types.lean Modified Mathlib/ModelTheory/Types.lean +/- theorem FirstOrder.Language.Theory.CompleteType.typesWith_top Modified Mathlib/NumberTheory/Fermat.lean Modified Mathlib/NumberTheory/ModularForms/Basic.lean Modified Mathlib/RepresentationTheory/Subrepresentation.lean Modified Mathlib/RingTheory/Coalgebra/Basic.lean Modified Mathlib/RingTheory/KrullDimension/Regular.lean Modified Mathlib/RingTheory/Morita/Matrix.lean Modified Mathlib/RingTheory/MvPowerSeries/Expand.lean Modified Mathlib/RingTheory/PicardGroup.lean Modified Mathlib/RingTheory/PowerSeries/Expand.lean Modified Mathlib/Topology/Algebra/MulAction.lean Modified Mathlib/Topology/OpenPartialHomeomorph/Defs.lean 2026-01-30 12:44:28 70fc798 chore: add missing deprecations about IsStoppingTime (#34605) Also fix the documentation. From #34381. ESTIMATED CHANGES Modified Mathlib/Probability/Process/HittingTime.lean 2026-01-30 12:44:26 52e75dc feat(CategoryTheory/Iso): use `to_dual` for `X ≅ Y` (#34008) This PR uses `to_dual` for isomorphisms in category theory. There are two possible designs: - `to_dual` could swap the arguments, turning `X ≅ Y` into `Y ≅ X` - `to_dual` could leave the arguments in place, and instead translate `Iso.hom` to `Iso.inv` and vice versa I went with the second option, because I think it is more sensible. In a sense, `X ≅ Y` is to `X ⟶ Y` what `a = b` is to `a ≤ b`, and we also do not swap the arguments in `a = b`, even though it would be possible. Notes: - The new `ext_inv` dual of `ext` is hard to generate automatically for `to_dual` for various reasons, so it is proved manually. - When applying `simps` on a definition of type `_ ≅ _`, the generated `_hom` and `_inv` lemmas need to be manually tagged as dual to eachother with `to_dual existing`, with a `set_option linter.existingAttributeWarning false in`. - I used `to_dual none` a few times to avoid adding too many redundant declarations to the API. - I added `no_expose` to `inv`, with the reason that `to_dual` cannot translate proofs that unfold `inv`. And if the value isn't exported, then `inv` also cannot be unfolded. Nobody should rely on this anyways since it is just a `Classical.choose`. Two proofs had to be fixed as a result, which was easy to do with `grind`. - I removed the outdated porting notes on `asIso_hom` and `asIso_inv`. ESTIMATED CHANGES Modified Mathlib/AlgebraicGeometry/Limits.lean Modified Mathlib/CategoryTheory/Groupoid.lean Modified Mathlib/CategoryTheory/Iso.lean - theorem CategoryTheory.Functor.map_inv_hom - theorem CategoryTheory.IsIso.Iso.inv_hom - theorem CategoryTheory.IsIso.comp_inv_eq - theorem CategoryTheory.IsIso.eq_comp_inv - theorem CategoryTheory.IsIso.eq_inv_of_inv_hom_id - theorem CategoryTheory.IsIso.inv_eq_of_inv_hom_id - theorem CategoryTheory.IsIso.of_isIso_comp_right - theorem CategoryTheory.IsIso.of_isIso_fac_right - theorem CategoryTheory.Iso.cancel_iso_inv_left - theorem CategoryTheory.Iso.cancel_iso_inv_right - theorem CategoryTheory.Iso.comp_inv_eq_id + theorem CategoryTheory.Iso.ext_inv - def CategoryTheory.Iso.homFromEquiv - theorem CategoryTheory.Iso.inv_comp_eq_id - theorem CategoryTheory.Iso.isIso_hom - theorem CategoryTheory.Iso.isIso_inv - theorem CategoryTheory.Iso.symm_inv - theorem CategoryTheory.comp_hom_eq_id - theorem CategoryTheory.comp_inv_eq_id - theorem CategoryTheory.isIso_comp_right_iff - theorem CategoryTheory.isIso_of_comp_hom_eq_id Modified Mathlib/CategoryTheory/Limits/Shapes/Terminal.lean 2026-01-30 11:40:38 7d4bc89 chore: address linter warnings from lean PR 12225 (#34591) This PR fixes some linter warnings that came up on the adaptation branch of https://github.com/leanprover/lean4/pull/12225. - Removed some unused `simp` arguments - Removed some uses of `change` that didn't do anything ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Localization/CalculusOfFractions.lean Modified Mathlib/Combinatorics/Matroid/Rank/Cardinal.lean Modified Mathlib/Data/Sum/Order.lean Modified Mathlib/GroupTheory/CoprodI.lean Modified Mathlib/Order/Hom/BoundedLattice.lean +/- theorem InfTopHom.coe_inf +/- theorem SupBotHom.coe_sup Modified Mathlib/Order/Hom/Lattice.lean +/- theorem InfHom.coe_inf +/- theorem SupHom.coe_sup Modified Mathlib/RingTheory/Ideal/Prod.lean 2026-01-30 11:40:36 ce3ba67 chore(Geometry/Euclidean): golf a proof (#34567) ESTIMATED CHANGES Modified Mathlib/Geometry/Euclidean/Angle/Oriented/Rotation.lean 2026-01-30 11:40:34 1f2089e chore(CategoryTheory): dualize `NatTrans.Equifibered` (#34343) ... and move to a new file. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Limits/Shapes/Pullback/Equifibered.lean + theorem CategoryTheory.NatTrans.Coequifibered.comp + theorem CategoryTheory.NatTrans.Coequifibered.of_discrete + theorem CategoryTheory.NatTrans.Coequifibered.op + theorem CategoryTheory.NatTrans.Coequifibered.unop + theorem CategoryTheory.NatTrans.Coequifibered.whiskerLeft + theorem CategoryTheory.NatTrans.Coequifibered.whiskerRight + def CategoryTheory.NatTrans.Coequifibered + theorem CategoryTheory.NatTrans.Coequifibered_of_isIso + theorem CategoryTheory.NatTrans.Equifibered.comp + theorem CategoryTheory.NatTrans.Equifibered.of_discrete + theorem CategoryTheory.NatTrans.Equifibered.op + theorem CategoryTheory.NatTrans.Equifibered.unop + theorem CategoryTheory.NatTrans.Equifibered.whiskerLeft + theorem CategoryTheory.NatTrans.Equifibered.whiskerRight + def CategoryTheory.NatTrans.Equifibered + theorem CategoryTheory.NatTrans.equifibered_of_isIso Modified Mathlib/CategoryTheory/Limits/VanKampen.lean - theorem CategoryTheory.NatTrans.Equifibered.comp - theorem CategoryTheory.NatTrans.Equifibered.whiskerLeft - theorem CategoryTheory.NatTrans.Equifibered.whiskerRight - def CategoryTheory.NatTrans.Equifibered - theorem CategoryTheory.NatTrans.equifibered_of_discrete - theorem CategoryTheory.NatTrans.equifibered_of_isIso - theorem CategoryTheory.mapPair_equifibered 2026-01-30 10:38:07 4ca33b6 feat(Analysis/Calculus): `tsupport` of applied `fderiv` (#34593) ESTIMATED CHANGES Modified Mathlib/Analysis/Calculus/FDeriv/Const.lean + theorem tsupport_fderiv_apply_subset 2026-01-30 10:38:05 f4d4f2a feat(NNReal): supremum commutes with Nat.cast (#34467) as well as the infimum version, and some simple helper lemmas to get there. ESTIMATED CHANGES Modified Mathlib/Data/NNReal/Basic.lean + theorem NNReal.bddAbove_natCast_image_iff + theorem NNReal.bddAbove_range_natCast_iff + theorem NNReal.natCast_iInf + theorem NNReal.natCast_iSup Modified Mathlib/Data/Nat/Lattice.lean + theorem Nat.iSup_of_not_bddAbove 2026-01-30 10:38:03 34f0d00 feat(CategoryTheory/ObjectProperty): stability unfer finite products (#34366) We introduce typeclasses `IsClosedUnderBinaryProducts` and `IsClosedUnderFiniteProducts` expressing that `P : ObjectProperty C` is closed under binary products or finite products. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/CategoryTheory/Limits/FullSubcategory.lean + theorem CategoryTheory.ObjectProperty.isClosedUnderColimitsOfShape_of_preservesColimitsOfShape_ι + theorem CategoryTheory.ObjectProperty.isClosedUnderLimitsOfShape_of_preservesLimitsOfShape_ι Added Mathlib/CategoryTheory/ObjectProperty/FiniteProducts.lean + theorem CategoryTheory.ObjectProperty.IsClosedUnderBinaryProducts.closedUnderIsomorphisms + theorem CategoryTheory.ObjectProperty.IsClosedUnderFiniteProducts.mk' + theorem CategoryTheory.ObjectProperty.prop_of_isTerminal + theorem CategoryTheory.ObjectProperty.prop_prod 2026-01-30 10:38:01 cf59390 feat(Data/Nat/Init): add `div`/`mod` extension theorems. (#34201) We don't actually have the theorems that directly state that `div` and `mod` form an injective pair in the natural way, despite having basically every other form of that statement that I can think of - and this form is quite a useful one. This PR adds these theorems and corresponding `ModEq` ones for good measure. ESTIMATED CHANGES Modified Mathlib/Data/Int/Init.lean + theorem Int.ext_ediv_emod + theorem Int.ext_ediv_emod_iff Modified Mathlib/Data/Int/ModEq.lean + theorem Int.ext_ediv_modEq + theorem Int.ext_ediv_modEq_iff + theorem Int.modEq_iff_eq_of_div_eq Modified Mathlib/Data/Nat/Init.lean + theorem Nat.ext_div_mod + theorem Nat.ext_div_mod_iff Modified Mathlib/Data/Nat/ModEq.lean + theorem Nat.ext_div_modEq + theorem Nat.ext_div_modEq_iff + theorem Nat.modEq_iff_eq_of_div_eq 2026-01-30 10:37:59 5d7363e feat(Data/Nat/Choose): two binomial coefficient sum identities (#32910) This PR proves two well-known sum identities around binomial coefficients. While there are probably hundreds of such identities, these two seem to be well known enough to be in mathlib (i.e. are mentioned in the Wikipedia [article](https://en.wikipedia.org/wiki/Binomial_coefficient#math_8) about binomial coefficients). ESTIMATED CHANGES Modified Mathlib/Data/Nat/Choose/Sum.lean + theorem Nat.sum_range_mul_choose Modified Mathlib/Data/Nat/Choose/Vandermonde.lean +/- theorem Nat.add_choose_eq + theorem Nat.sum_range_choose_sq 2026-01-30 09:52:58 65887e6 feat(Order/ModularLattice): add lemmas to construct IsCompl from Disjoint/Codisjoint on complemented modular lattices (#33986) Add theorems to construct `IsCompl` from `Disjoint`/`Codisjoint` on a complemented modular lattices: * `Disjoint.exists_isCompl` enlarges one element of a disjoint pair to obtain a complementary pair. * `Codisjoint.exists_isCompl` shrinks one element of a codisjoint pair to obtain a complementary pair (via @[to_dua]) ESTIMATED CHANGES Modified Mathlib/Order/ModularLattice.lean + theorem Disjoint.exists_isCompl 2026-01-30 09:36:36 76befbe feat(Condensed): the functor from light profinite sets preserves effective epimorphisms (#32627) From [LeanCondensed](https://github.com/dagurtomas/LeanCondensed) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/CategoryTheory/EffectiveEpi/Preserves.lean Added Mathlib/Condensed/EffectiveEpi.lean Added Mathlib/Condensed/Light/EffectiveEpi.lean 2026-01-30 09:16:45 e814306 feat(DirichletCharacter): any element of the `conductorSet` is divisible by the conductor (#34569) Prove the following result: For `χ` a Dirichlet character and `d ∈ χ.conductorSet`, we have `χ.conductor ∣ d` ESTIMATED CHANGES Modified Mathlib/NumberTheory/DirichletCharacter/Basic.lean + theorem DirichletCharacter.changeLevel_primitiveCharacter + theorem DirichletCharacter.conductor_dvd_of_mem_conductorSet + theorem DirichletCharacter.factorsThrough_gcd + theorem DirichletCharacter.zero_ne_mem_conductorSet 2026-01-30 09:01:18 be06b92 feat(AlgebraicTopology): the fibrant resolution functor up to homotopy (#33955) This is the dual PR to #33087. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/AlgebraicTopology/ModelCategory/CofibrantObjectHomotopy.lean Added Mathlib/AlgebraicTopology/ModelCategory/FibrantObjectHomotopy.lean + theorem HomotopicalAlgebra.FibrantObject.HoCat.exists_resolution + theorem HomotopicalAlgebra.FibrantObject.HoCat.exists_resolution_map + theorem HomotopicalAlgebra.FibrantObject.HoCat.resolutionMap_fac + theorem HomotopicalAlgebra.FibrantObject.HoCat.resolutionObj_hom_ext + theorem HomotopicalAlgebra.FibrantObject.HoCat.weakEquivalence_resolutionMap_iff + theorem HomotopicalAlgebra.FibrantObject.factorsThroughLocalization + def HomotopicalAlgebra.FibrantObject.homRel + theorem HomotopicalAlgebra.FibrantObject.homRel_equivalence_of_isCofibrant_src + theorem HomotopicalAlgebra.FibrantObject.homRel_iff_leftHomotopyRel + def HomotopicalAlgebra.FibrantObject.toHoCat + def HomotopicalAlgebra.FibrantObject.toHoCatLocalizerMorphism + theorem HomotopicalAlgebra.FibrantObject.toHoCat_map_eq + theorem HomotopicalAlgebra.FibrantObject.toHoCat_map_eq_iff + theorem HomotopicalAlgebra.FibrantObject.toHoCat_obj_surjective + theorem HomotopicalAlgebra.FibrantObject.weakEquivalence_toHoCat_map_iff 2026-01-30 08:09:52 046fc9b feat: use more fun_prop/measurability auto-parameters (#34577) Inspired by review discussion in #34441. ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Constructions/BorelSpace/Basic.lean Modified Mathlib/MeasureTheory/Group/Arithmetic.lean 2026-01-30 08:09:49 6a0b1c2 feat: extra lemmas on `LinearOrderedAddCommGroupWithTop` (#34303) Upstreamed from the CGT repo. ESTIMATED CHANGES Modified Mathlib/Algebra/Order/AddGroupWithTop.lean + theorem LinearOrderedAddCommGroupWithTop.sub_eq_zero + theorem LinearOrderedAddCommGroupWithTop.sub_self_nonneg 2026-01-30 08:09:47 c6fca87 feat(Meta/CategoryTheory): `cancelIso` simproc (#33822) In this PR, we define a `cancelIso` simplification procedure. The scope of the procedure is to recognize compositions of the form `f ≫ g` or `f ≫ g ≫ h` where `g` is inverse to `f`, and cancel them accordingly. This is particularly useful as more often than not, simp normal forms for isomorphisms do not easily make inverse pairs recognizable: `F.map (G.map (H.map e.hom))) ≫ F.map (G.map (H.map e.inv)))` is an expression in `simp`normal form, but using `Iso.hom_inv_id` requires backwards rewriting of `Functor.map_comp`. Because of this, many _ad hoc_ lemmas handling this pattern were added to the library, e.g `CategoryTheory.Iso.inv_hom_id_app_app_app`, `CategoryTheory.MonoidalCategory.hom_inv_whiskerRight`, etc. This simproc is an attempt at lessening the need for new extra lemmas of this form. The core working of the simproc is as follows: 1. When encountering a composition `f ≫ g`, check if the target of `g` is the source of `f` 2. If so, try to synth an `IsIso` instance on `f` (in all the patterns mentioned above, such instances are available). Do nothing and return if there is no such instance. 4. Run `push inv` on both `inv f` and `g`, putting them in "inv-normal form" and compare the results. If they match, build (using the proofs provided by `push`) a proof of `f ≫ g = 𝟙 _`, and return it as the result of the procedure. In practice, the case where `g` itself is a composition is handled on its own, allowing the simproc to correctly fire on right-associated compositions (which are the chosen simp normal forms in category theory). Because this simproc relies on `push`, it is naturally extensible by mean of rigorous `@[push]` annotations within the library. :robot: Tests were initially generated by Gemini. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/CategoryTheory/NatIso.lean Modified Mathlib/Tactic.lean Added Mathlib/Tactic/CategoryTheory/CancelIso.lean + def Mathlib.Tactic.CategoryTheory.CancelIso.cancelIsoSimproc + theorem Mathlib.Tactic.CategoryTheory.CancelIso.hom_inv_id_of_eq + theorem Mathlib.Tactic.CategoryTheory.CancelIso.hom_inv_id_of_eq_assoc + def Mathlib.Tactic.CategoryTheory.CancelIso.tryCancelPair Added MathlibTest/CategoryTheory/CancelIso.lean 2026-01-30 07:22:06 e54dcdb feat(CategoryTheory): the yoneda embedding to sheaves preserves disjoint coproducts (#34145) From Proetale. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Limits/Shapes/DisjointCoproduct.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Products.lean + def CategoryTheory.Limits.Cofan.isColimitMapCoconeEquiv + def CategoryTheory.Limits.Fan.isLimitMapConeEquiv Modified Mathlib/CategoryTheory/Sites/Sieves.lean + def CategoryTheory.Sieve.toFunctor Modified Mathlib/CategoryTheory/Sites/Subcanonical.lean + theorem CategoryTheory.GrothendieckTopology.preservesColimitsOfShape_yoneda_of_ofArrows_inj_mem 2026-01-30 07:22:04 87e2679 feat(Algebra/Homology): a homology data from an epi-mono factorization (#33875) Let `S` be a short complex in an abelian category. If `K` is a kernel of `S.g` and `Q` a cokernel of `S.f`, and `K ⟶ H ⟶ Q` is an epi-mono factorization of `K ⟶ S.X₂ ⟶ Q`, then `H` identifies to the homology of `S`. (That shall be used when computing the homology of the differentials on pages of spectral sequences #33842.) In this PR, we also show that `ShortComplex C` is an abelian category if `C` is abelian. ESTIMATED CHANGES Modified Mathlib/Algebra/Homology/ShortComplex/Abelian.lean + theorem CategoryTheory.ShortComplex.HomologyData.ofEpiMonoFactorisation.f'_eq + theorem CategoryTheory.ShortComplex.HomologyData.ofEpiMonoFactorisation.g'_eq + theorem CategoryTheory.ShortComplex.HomologyData.ofEpiMonoFactorisation.homologyπ_isoHomology_inv + theorem CategoryTheory.ShortComplex.HomologyData.ofEpiMonoFactorisation.isoHomology_hom_comp_ι + theorem CategoryTheory.ShortComplex.HomologyData.ofEpiMonoFactorisation.isoHomology_inv_homologyι + theorem CategoryTheory.ShortComplex.HomologyData.ofEpiMonoFactorisation.isoImage_ι + theorem CategoryTheory.ShortComplex.HomologyData.ofEpiMonoFactorisation.π_comp_isoHomology_hom + theorem CategoryTheory.ShortComplex.homologyIsoImageICyclesCompPOpcycles_ι Modified Mathlib/Algebra/Homology/ShortComplex/Exact.lean + theorem CategoryTheory.ShortComplex.cokernelSequence_exact + theorem CategoryTheory.ShortComplex.kernelSequence_exact 2026-01-30 07:22:02 44fef1b feat(CategoryTheory/Sites): fullness of `DescentData.pullFunctor` (#33518) Let `F` be a prestack for a Grothendieck topology `J`, `f : X i ⟶ S` and `f' : X' j ⟶ S` be two families of morphisms. Assume that `f'` is a covering family for `J`, then functors `F.pullFunctor .. : F.DescentData f ⥤ F.DescentData f'` are full. (They are also faithful, but this shall be done in a separate PR #33256 where we also deduce characterizations of (pre)stacks for pretopologies.) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Sites/Descent/Precoverage.lean + theorem CategoryTheory.Pseudofunctor.DescentData.full_pullFunctor.comm + theorem CategoryTheory.Pseudofunctor.DescentData.full_pullFunctor.compatible_familyOfElements + theorem CategoryTheory.Pseudofunctor.DescentData.full_pullFunctor.familyOfElements_eq + theorem CategoryTheory.Pseudofunctor.DescentData.full_pullFunctor.map_hom + theorem CategoryTheory.Pseudofunctor.DescentData.full_pullFunctor.mem_sieve + def CategoryTheory.Pseudofunctor.DescentData.full_pullFunctor.mor + theorem CategoryTheory.Pseudofunctor.DescentData.full_pullFunctor.mor_eq + theorem CategoryTheory.Pseudofunctor.DescentData.full_pullFunctor.mor_precomp + theorem CategoryTheory.Pseudofunctor.DescentData.full_pullFunctor.mor_unique + theorem CategoryTheory.Pseudofunctor.DescentData.full_pullFunctor.sieve.exists_fac + theorem CategoryTheory.Pseudofunctor.DescentData.full_pullFunctor.sieve.fac + theorem CategoryTheory.Pseudofunctor.DescentData.full_pullFunctor.sieve_mem 2026-01-30 07:22:01 c03e78f feat(LinearAlgebra/Center): description of the center of the algebra of endomorphisms (#33282) Describe the center of the algebra of endomorphisms: under suitable assumptions (eg, over a field), they correspond to - endomorphisms that commute with elementary transvections - endomorphisms `f` such that `v` and `f v` are linearly dependent, for all `v`. If `V` is an `R`-module, we say that an endomorphism `f : Module.End R V` is a *homothety* with central ratio if there exists `a ∈ Set.center R` such that `f x = a • x` for all `x`. By docs#Module.End.mem_subsemiringCenter_iff, these linear maps constitute the center of `Module.End R V`. (When `R` is commutative, we can write `f = a • LinearMap.id`.) In what follows, `V` is assumed to be a free `R`-module. * `LinearMap.commute_transvections_iff_of_basis`: if an endomorphism `f : V →ₗ[R] V` commutes with every elementary transvections (in a given basis), then it is an homothety whose central ratio. (Assumes that the basis is provided and has a non trivial set of indices.) * `LinearMap.exists_eq_smul_id_of_forall_notLinearIndependent`: over a commutative ring `R` which is a domain, an endomorphism `f : V →ₗ[R] V` of a free domain such that `v` and `f v` are not linearly independent, for all `v : V`, is a homothety. * `LinearMap.exists_mem_center_apply_eq_smul_of_forall_notLinearIndependent`: a variant that does not assume that `R` is commutative. Then the homothety has central ratio. * `LinearMap.exists_mem_center_apply_eq_smul_of_forall_notLinearIndependent_of_basis`: a variant that does not assume that `R` has the strong rank condition, but requires a basis. Note. In the noncommutative case, the last two results do not hold when the rank is equal to 1. Indeed, right multiplications with noncentral ratio of the `R`-module `R` satisfy the property that `f v` and `v` are linearly independent, for all `v : V`, but they are not left multiplication by some element. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Ring/Subring/Basic.lean Modified Mathlib/Algebra/Ring/Subsemiring/Basic.lean Modified Mathlib/GroupTheory/Submonoid/Center.lean Added Mathlib/LinearAlgebra/Center.lean + theorem LinearMap.commute_transvections_iff_of_basis + theorem LinearMap.exists_eq_smul_id_of_forall_notLinearIndependent + theorem LinearMap.exists_mem_center_apply_eq_smul_of_forall_notLinearIndependent + theorem LinearMap.exists_mem_center_apply_eq_smul_of_forall_notLinearIndependent_of_basis Modified Mathlib/LinearAlgebra/QuadraticForm/Basic.lean 2026-01-30 06:41:46 8464d9a style: fix whitespace (#34582) and a few related issues. Found by extending the whitespace linter to proof bodies in #30658. ESTIMATED CHANGES Modified Counterexamples/MonicNonRegular.lean Modified Mathlib/Algebra/Order/Field/Basic.lean Modified Mathlib/AlgebraicTopology/ModelCategory/CofibrantObjectHomotopy.lean Modified Mathlib/Analysis/Asymptotics/TVS.lean +/- theorem Asymptotics.isThetaTVS_comm Modified Mathlib/Analysis/Meromorphic/Basic.lean Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Chebyshev/Orthogonality.lean Modified Mathlib/CategoryTheory/ComposableArrows/Four.lean Modified Mathlib/CategoryTheory/Sites/Coherent/ExtensiveTopology.lean Modified Mathlib/Geometry/Euclidean/NinePointCircle.lean Modified Mathlib/GroupTheory/FreeGroup/Reduce.lean +/- def FreeGroup.reduce Modified Mathlib/LinearAlgebra/Transvection.lean Modified Mathlib/MeasureTheory/VectorMeasure/Basic.lean Modified Mathlib/Probability/Distributions/Gaussian/HasGaussianLaw/Independence.lean Modified Mathlib/RepresentationTheory/Intertwining.lean +/- theorem Representation.IntertwiningMap.toLinearMap_apply Modified Mathlib/RepresentationTheory/Subrepresentation.lean Modified Mathlib/RingTheory/Morita/Matrix.lean Modified Mathlib/RingTheory/Polynomial/Chebyshev.lean Modified Mathlib/Tactic/Ring/NamePolyVars.lean Modified Mathlib/Topology/Category/LightProfinite/Injective.lean Modified Mathlib/Topology/Order/LeftRightLim.lean Modified Mathlib/Topology/UniformSpace/Closeds.lean 2026-01-30 01:12:17 bcade54 feat(Combinatorics/SimpleGraph/Hamiltonian): every walk is hamiltonian if `Subsingleton V` (#34185) ESTIMATED CHANGES Modified Mathlib/Combinatorics/SimpleGraph/Hamiltonian.lean + theorem SimpleGraph.IsHamiltonian.of_card_eq_one + theorem SimpleGraph.IsHamiltonian.of_unique + theorem SimpleGraph.Walk.IsHamiltonian.of_subsingleton Modified Mathlib/Combinatorics/SimpleGraph/Walks/Basic.lean + theorem SimpleGraph.Walk.nil_of_subsingleton 2026-01-29 20:08:18 62a82d6 feat(Combinatorics): a clique has size at most the chromatic number (#32654) There already exists a version of this lemma for cliques given by a set, but it's impractical to provide an explicit clique on an explicit graph as a set, rather than an indexed family, especially because computing the size of the set would then involve proving that it is the range of an injective function, even though being a clique already implies being injective! Application: google-deepmind/formal-conjectures#1369 Also rename `coloringOfIsEmpty` and `colorable_of_isEmpty` to leverage anonymous dot notation, and make more arguments implicit. From FormalConjectures ESTIMATED CHANGES Modified Mathlib/Combinatorics/SimpleGraph/Basic.lean Modified Mathlib/Combinatorics/SimpleGraph/Coloring.lean + theorem SimpleGraph.Colorable.card_le_of_pairwise_adj +/- theorem SimpleGraph.Colorable.chromaticNumber_eq_sInf +/- theorem SimpleGraph.Colorable.map + theorem SimpleGraph.Colorable.of_isEmpty + theorem SimpleGraph.Coloring.injective_comp_of_pairwise_adj + def SimpleGraph.Coloring.ofIsEmpty +/- theorem SimpleGraph.IsClique.card_le_of_colorable +/- theorem SimpleGraph.chromaticNumber_eq_biInf +/- theorem SimpleGraph.chromaticNumber_eq_iInf - theorem SimpleGraph.colorable_of_isEmpty - def SimpleGraph.coloringOfIsEmpty + theorem SimpleGraph.le_chromaticNumber_iff_colorable + theorem SimpleGraph.le_chromaticNumber_iff_coloring + theorem SimpleGraph.le_chromaticNumber_of_pairwise_adj 2026-01-29 19:07:21 4df4ffd feat(GroupTheory/GroupAction): action of `G⧸H` on `fixedPoints H A` (#34316) Given a `MulAction` of a group `G` on `A` and a normal subgroup `H` of `G`, there is a `MulAction` of the quotient group `G ⧸ H` on `fixedPoints H A`. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/GroupTheory/GroupAction/OfQuotient.lean + theorem MulAction.coe_quotient_smul_fixedPoints + theorem MulAction.quotient_out_smul_fixedPoints 2026-01-29 18:04:01 c5afc4c chore(GroupTheory/GroupAction/SubMulAction/Combination.lean): rename Nat.Combination to Set.powersetCard (#34581) Following suggestion by @ocfnash and @alreadydone , rename `Nat.Combination` as `Set.powersetCard`, in analogy to `Finset.powerset` and `Finset.powersetCard`. Some later improvements are given in #34307 ESTIMATED CHANGES Modified Mathlib/GroupTheory/GroupAction/SubMulAction/Combination.lean - theorem Nat.Combination.addAction_faithful - theorem Nat.Combination.coe_coe - theorem Nat.Combination.coe_compl - theorem Nat.Combination.coe_mulActionHom_of_embedding - theorem Nat.Combination.coe_smul - def Nat.Combination.compl - theorem Nat.Combination.compl_bijective - theorem Nat.Combination.compl_compl - theorem Nat.Combination.eq_iff_subset - theorem Nat.Combination.exists_mem_notMem - theorem Nat.Combination.faithfulSMul - theorem Nat.Combination.faithfulVAdd - theorem Nat.Combination.isPretransitive - theorem Nat.Combination.isPretransitive_of_isMultiplyPretransitive - theorem Nat.Combination.mem_coe_iff - theorem Nat.Combination.mem_compl - theorem Nat.Combination.mem_iff - def Nat.Combination.mulActionHom_of_embedding - theorem Nat.Combination.mulActionHom_of_embedding_surjective - def Nat.Combination.mulActionHom_singleton - theorem Nat.Combination.mulActionHom_singleton_bijective - theorem Nat.Combination.mulAction_faithful - theorem Nat.Combination.nontrivial' - theorem Nat.Combination.nontrivial - def Nat.Combination.subMulAction - def Nat.Combination + theorem Set.powersetCard.addAction_faithful + theorem Set.powersetCard.coe_coe + theorem Set.powersetCard.coe_compl + theorem Set.powersetCard.coe_mulActionHom_of_embedding + theorem Set.powersetCard.coe_smul + def Set.powersetCard.compl + theorem Set.powersetCard.compl_bijective + theorem Set.powersetCard.compl_compl + theorem Set.powersetCard.eq_iff_subset + theorem Set.powersetCard.exists_mem_notMem + theorem Set.powersetCard.faithfulSMul + theorem Set.powersetCard.faithfulVAdd + theorem Set.powersetCard.isPretransitive + theorem Set.powersetCard.isPretransitive_of_isMultiplyPretransitive + theorem Set.powersetCard.mem_coe_iff + theorem Set.powersetCard.mem_compl + theorem Set.powersetCard.mem_iff + def Set.powersetCard.mulActionHom_of_embedding + theorem Set.powersetCard.mulActionHom_of_embedding_surjective + def Set.powersetCard.mulActionHom_singleton + theorem Set.powersetCard.mulActionHom_singleton_bijective + theorem Set.powersetCard.mulAction_faithful + theorem Set.powersetCard.nontrivial' + theorem Set.powersetCard.nontrivial + def Set.powersetCard.subMulAction + def Set.powersetCard 2026-01-29 18:03:59 781b85c feat(Analysis/Analytic, Analysis/Calculus): allow more general types in SMul (#34515) Relax typeclass assumptions in many lemmas about SMul on iterated derivs and analytic functions, and add variants without differentiability assumptions when the scalar type is a field/division ring. ESTIMATED CHANGES Modified Mathlib/Analysis/Analytic/Constructions.lean + theorem AnalyticAt.div_const +/- theorem AnalyticAt.smul + theorem AnalyticOn.const_smul + theorem AnalyticOn.div_const +/- theorem AnalyticOn.smul + theorem AnalyticOnNhd.const_smul + theorem AnalyticOnNhd.div_const +/- theorem AnalyticOnNhd.smul + theorem AnalyticWithinAt.div_const +/- theorem AnalyticWithinAt.smul +/- theorem analyticAt_iff_analytic_fun_smul +/- theorem analyticAt_iff_analytic_smul +/- theorem analyticAt_inv_one_sub +/- theorem analyticAt_inverse +/- theorem analyticAt_inverse_one_sub +/- theorem analyticAt_smul +/- theorem analyticOnNhd_inverse +/- theorem formalMultilinearSeries_geometric_radius +/- theorem hasFPowerSeriesOnBall_inv_one_sub +/- theorem hasFPowerSeriesOnBall_inverse_one_sub +/- theorem one_le_formalMultilinearSeries_geometric_radius Modified Mathlib/Analysis/Analytic/ConvergenceRadius.lean +/- theorem FormalMultilinearSeries.radius_le_smul +/- theorem FormalMultilinearSeries.radius_smul_eq Modified Mathlib/Analysis/Calculus/ContDiff/Operations.lean + theorem ContDiff.smul_const + theorem ContDiffAt.smul_const + theorem ContDiffOn.smul_const + theorem ContDiffWithinAt.smul_const + theorem contDiff_smul_const + theorem iteratedFDerivWithin_smul_const_apply + theorem iteratedFDeriv_smul_const_apply Modified Mathlib/Analysis/Calculus/IteratedDeriv/Defs.lean + theorem iteratedDerivWithin_const_zero + theorem iteratedDerivWithin_fun_const_zero + theorem iteratedDeriv_const_zero + theorem iteratedDeriv_fun_const_zero Modified Mathlib/Analysis/Calculus/IteratedDeriv/Lemmas.lean +/- theorem iteratedDerivWithin_const_mul + theorem iteratedDerivWithin_const_mul_field + theorem iteratedDerivWithin_const_smul_field + theorem iteratedDerivWithin_fun_const_smul + theorem iteratedDerivWithin_fun_const_smul_field + theorem iteratedDerivWithin_fun_sum +/- theorem iteratedDerivWithin_mul + theorem iteratedDerivWithin_mul_const + theorem iteratedDerivWithin_mul_const_field +/- theorem iteratedDerivWithin_smul + theorem iteratedDerivWithin_smul_const + theorem iteratedDerivWithin_sum +/- theorem iteratedDeriv_const_mul + theorem iteratedDeriv_const_mul_field +/- theorem iteratedDeriv_const_smul + theorem iteratedDeriv_const_smul_field + theorem iteratedDeriv_div_const + theorem iteratedDeriv_fun_const_smul + theorem iteratedDeriv_fun_const_smul_field +/- theorem iteratedDeriv_fun_mul + theorem iteratedDeriv_fun_sum +/- theorem iteratedDeriv_mul + theorem iteratedDeriv_mul_const_field + theorem iteratedDeriv_smul_const + theorem iteratedDeriv_sum Modified Mathlib/Analysis/InnerProductSpace/Calculus.lean Modified Mathlib/Probability/Moments/MGFAnalytic.lean 2026-01-29 18:03:58 ef8457c feat(CategoryTheory): transport a NormalMono structure via an isomorphism of arrows (#34496) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Limits/Shapes/Equalizers.lean Modified Mathlib/CategoryTheory/Limits/Shapes/NormalMono/Basic.lean + def CategoryTheory.NormalEpi.ofArrowIso + def CategoryTheory.NormalMono.ofArrowIso 2026-01-29 18:03:56 2a451b9 feat(Topology/MetricSpace/Closeds): define a metric on `Compacts` (#33965) This PR defines an `EMetricSpace` instance on `Compacts` using the Hausdorff distance, analogously with the existing metrics on `Closeds` and `NonemptyCompacts`. ESTIMATED CHANGES Modified Mathlib/Topology/MetricSpace/Closeds.lean + theorem TopologicalSpace.Compacts.edist_eq + theorem TopologicalSpace.Compacts.isometry_singleton + theorem TopologicalSpace.Compacts.isometry_toCloseds + theorem TopologicalSpace.Compacts.lipschitz_prod + theorem TopologicalSpace.Compacts.lipschitz_sup + theorem TopologicalSpace.NonemptyCompacts.isometry_toCompacts 2026-01-29 17:42:54 153e48d feat(Analysis/InnerProductSpace): linear map is positive iff it equals the sum of rank-one operators (#33491) ... and equality of nonzero rank-one operators means the elements are colinear. ESTIMATED CHANGES Modified Mathlib/Analysis/InnerProductSpace/LinearMap.lean + theorem InnerProductSpace.exists_of_rankOne_eq_rankOne + theorem InnerProductSpace.rankOne_eq_rankOne_iff_comm Modified Mathlib/Analysis/InnerProductSpace/Positive.lean + theorem ContinuousLinearMap.isPositive_iff_eq_sum_rankOne + theorem ContinuousLinearMap.isPositive_sum + theorem LinearMap.isPositive_sum Modified Mathlib/Analysis/InnerProductSpace/Symmetric.lean + theorem LinearMap.isSymmetric_sum 2026-01-29 16:43:51 f821781 feat(Algebra/Order): multiplicative versions of lemmas on (pre)images of intervals under group operations (#34561) Currently, `Mathlib/Algebra/Order/Group/Pointwise/Interval.lean` contains lemmas about (pre)images of intervals under group operations only for additive groups. This PR adds multiplicative versions and derives the additive ones via `to_additive`. It also renames lemmas about `GroupWithZero` (e.g. `preimage_const_mul_Ico` → `preimage_const_mul_Ico₀`) to avoid name collisions. ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Group/Pointwise/Interval.lean - theorem Set.Iic_add_bij + theorem Set.Iic_mul_bij - theorem Set.Iio_add_bij + theorem Set.Iio_mul_bij - theorem Set.image_add_const_Iic - theorem Set.image_add_const_Iio - theorem Set.image_const_add_Iic - theorem Set.image_const_add_Iio + theorem Set.image_const_div_Icc + theorem Set.image_const_div_Ici + theorem Set.image_const_div_Ico + theorem Set.image_const_div_Iic + theorem Set.image_const_div_Iio + theorem Set.image_const_div_Ioc + theorem Set.image_const_div_Ioi + theorem Set.image_const_div_Ioo + theorem Set.image_const_mul_Iic + theorem Set.image_const_mul_Iio - theorem Set.image_const_sub_Icc - theorem Set.image_const_sub_Ici - theorem Set.image_const_sub_Ico - theorem Set.image_const_sub_Iic - theorem Set.image_const_sub_Iio - theorem Set.image_const_sub_Ioc - theorem Set.image_const_sub_Ioi - theorem Set.image_const_sub_Ioo + theorem Set.image_div_const_Icc + theorem Set.image_div_const_Ici + theorem Set.image_div_const_Ico + theorem Set.image_div_const_Iic + theorem Set.image_div_const_Iio + theorem Set.image_div_const_Ioc + theorem Set.image_div_const_Ioi + theorem Set.image_div_const_Ioo + theorem Set.image_inv_Icc + theorem Set.image_inv_Ici + theorem Set.image_inv_Ico + theorem Set.image_inv_Iic + theorem Set.image_inv_Iio + theorem Set.image_inv_Ioc + theorem Set.image_inv_Ioi + theorem Set.image_inv_Ioo + theorem Set.image_mul_const_Iic + theorem Set.image_mul_const_Iio - theorem Set.image_neg_Icc - theorem Set.image_neg_Ici - theorem Set.image_neg_Ico - theorem Set.image_neg_Iic - theorem Set.image_neg_Iio - theorem Set.image_neg_Ioc - theorem Set.image_neg_Ioi - theorem Set.image_neg_Ioo - theorem Set.image_sub_const_Icc - theorem Set.image_sub_const_Ici - theorem Set.image_sub_const_Ico - theorem Set.image_sub_const_Iic - theorem Set.image_sub_const_Iio - theorem Set.image_sub_const_Ioc - theorem Set.image_sub_const_Ioi - theorem Set.image_sub_const_Ioo - theorem Set.preimage_add_const_Icc - theorem Set.preimage_add_const_Ici - theorem Set.preimage_add_const_Ico - theorem Set.preimage_add_const_Iic - theorem Set.preimage_add_const_Iio - theorem Set.preimage_add_const_Ioc - theorem Set.preimage_add_const_Ioi - theorem Set.preimage_add_const_Ioo - theorem Set.preimage_const_add_Icc - theorem Set.preimage_const_add_Ici - theorem Set.preimage_const_add_Ico - theorem Set.preimage_const_add_Iic - theorem Set.preimage_const_add_Iio - theorem Set.preimage_const_add_Ioc - theorem Set.preimage_const_add_Ioi - theorem Set.preimage_const_add_Ioo + theorem Set.preimage_const_div_Icc + theorem Set.preimage_const_div_Ici + theorem Set.preimage_const_div_Ico + theorem Set.preimage_const_div_Iic + theorem Set.preimage_const_div_Iio + theorem Set.preimage_const_div_Ioc + theorem Set.preimage_const_div_Ioi + theorem Set.preimage_const_div_Ioo +/- theorem Set.preimage_const_mul_Icc + theorem Set.preimage_const_mul_Icc₀ +/- theorem Set.preimage_const_mul_Ici + theorem Set.preimage_const_mul_Ici₀ +/- theorem Set.preimage_const_mul_Ico + theorem Set.preimage_const_mul_Ico₀ +/- theorem Set.preimage_const_mul_Iic + theorem Set.preimage_const_mul_Iic₀ +/- theorem Set.preimage_const_mul_Iio + theorem Set.preimage_const_mul_Iio₀ +/- theorem Set.preimage_const_mul_Ioc + theorem Set.preimage_const_mul_Ioc₀ +/- theorem Set.preimage_const_mul_Ioi + theorem Set.preimage_const_mul_Ioi₀ +/- theorem Set.preimage_const_mul_Ioo + theorem Set.preimage_const_mul_Ioo₀ - theorem Set.preimage_const_sub_Icc - theorem Set.preimage_const_sub_Ici - theorem Set.preimage_const_sub_Ico - theorem Set.preimage_const_sub_Iic - theorem Set.preimage_const_sub_Iio - theorem Set.preimage_const_sub_Ioc - theorem Set.preimage_const_sub_Ioi - theorem Set.preimage_const_sub_Ioo + theorem Set.preimage_div_const_Icc + theorem Set.preimage_div_const_Ici + theorem Set.preimage_div_const_Ico + theorem Set.preimage_div_const_Iic + theorem Set.preimage_div_const_Iio + theorem Set.preimage_div_const_Ioc + theorem Set.preimage_div_const_Ioi + theorem Set.preimage_div_const_Ioo +/- theorem Set.preimage_mul_const_Icc + theorem Set.preimage_mul_const_Icc₀ +/- theorem Set.preimage_mul_const_Ici + theorem Set.preimage_mul_const_Ici₀ +/- theorem Set.preimage_mul_const_Ico + theorem Set.preimage_mul_const_Ico₀ +/- theorem Set.preimage_mul_const_Iic + theorem Set.preimage_mul_const_Iic₀ +/- theorem Set.preimage_mul_const_Iio + theorem Set.preimage_mul_const_Iio₀ +/- theorem Set.preimage_mul_const_Ioc + theorem Set.preimage_mul_const_Ioc₀ +/- theorem Set.preimage_mul_const_Ioi + theorem Set.preimage_mul_const_Ioi₀ +/- theorem Set.preimage_mul_const_Ioo + theorem Set.preimage_mul_const_Ioo₀ - theorem Set.preimage_sub_const_Icc - theorem Set.preimage_sub_const_Ici - theorem Set.preimage_sub_const_Ico - theorem Set.preimage_sub_const_Iic - theorem Set.preimage_sub_const_Iio - theorem Set.preimage_sub_const_Ioc - theorem Set.preimage_sub_const_Ioi - theorem Set.preimage_sub_const_Ioo Modified Mathlib/Analysis/SpecialFunctions/Gamma/BohrMollerup.lean Modified Mathlib/MeasureTheory/Integral/IntegralEqImproper.lean Modified Mathlib/MeasureTheory/Measure/Lebesgue/Basic.lean Modified Mathlib/Topology/Algebra/Order/Field.lean 2026-01-29 16:43:49 42f1cf9 chore(Algebra/Group/Subgroup/Basic): tag `instIsMulTorsionFree` with `to_additive` (#34536) Free `to_additive` that is missing for some reason. ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Subgroup/Basic.lean 2026-01-29 16:43:46 f8f80fe feat: improve Stieltjes measure file (#34415) Notably, remove assumptions that the order has no max or no min in several lemmas. Cherry picked from #34055. ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Measure/Stieltjes.lean +/- theorem StieltjesFunction.eq_of_measure_of_tendsto_atBot +/- theorem StieltjesFunction.isFiniteMeasure + theorem StieltjesFunction.isFiniteMeasure_of_forall_abs_le +/- theorem StieltjesFunction.isProbabilityMeasure +/- theorem StieltjesFunction.measure_Ici +/- theorem StieltjesFunction.measure_Iic +/- theorem StieltjesFunction.measure_Iio +/- theorem StieltjesFunction.measure_Iio_of_tendsto_atBot_atBot +/- theorem StieltjesFunction.measure_Ioi + theorem StieltjesFunction.measure_botSet +/- theorem StieltjesFunction.measure_univ +/- theorem StieltjesFunction.measure_univ_of_tendsto_atBot_atBot + theorem botSet_eq_singleton_of_isBot 2026-01-29 16:43:43 9881197 feat(Logic/IsEmpty): add theorems relating surjectivity and emptiness (#33475) In particular, this adds a lemma saying that with an empty domain, a function is surjective iff its range is empty, and various forms of this. ESTIMATED CHANGES Modified Mathlib/Logic/IsEmpty.lean +/- theorem Function.Bijective.of_isEmpty + theorem Function.Surjective.of_isEmpty + theorem Function.not_surjective_of_isEmpty_of_nonempty + theorem Function.surjective_iff_isEmpty 2026-01-29 15:57:02 a06168b doc(1000.yaml): Mention about Löb's Theorem in FFL (#34574) ESTIMATED CHANGES Modified docs/1000.yaml 2026-01-29 15:57:00 583f1d1 refactor: deprecate `Real.exists_floor` (#34566) We don't need an indirect characterization of `⌊x⌋` when we can simply write `⌊x⌋`. ESTIMATED CHANGES Modified Mathlib/Analysis/Asymptotics/LinearGrowth.lean Modified Mathlib/Data/Real/Archimedean.lean 2026-01-29 15:56:57 ad65e18 chore(*): use `apply +allowSynthFailures` syntax (#34525) This PR updates Mathlib to use `apply +allowSynthFailures` everywhere instead of the old `apply (config := { allowSynthFailures := true})` syntax. En passant, we solve a porting note that never got fixed. ESTIMATED CHANGES Modified Mathlib/Algebra/Category/Grp/AB.lean Modified Mathlib/Algebra/Homology/LocalCohomology.lean Modified Mathlib/AlgebraicGeometry/AffineScheme.lean Modified Mathlib/AlgebraicGeometry/AffineTransitionLimit.lean Modified Mathlib/AlgebraicGeometry/GammaSpecAdjunction.lean Modified Mathlib/AlgebraicGeometry/Gluing.lean Modified Mathlib/AlgebraicGeometry/Limits.lean Modified Mathlib/AlgebraicGeometry/Morphisms/Immersion.lean Modified Mathlib/AlgebraicGeometry/Morphisms/QuasiSeparated.lean Modified Mathlib/AlgebraicGeometry/Morphisms/RingHomProperties.lean Modified Mathlib/AlgebraicGeometry/Morphisms/Separated.lean Modified Mathlib/AlgebraicGeometry/Properties.lean Modified Mathlib/AlgebraicTopology/SimplicialSet/Presentable.lean Modified Mathlib/CategoryTheory/Abelian/GrothendieckAxioms/Basic.lean Modified Mathlib/CategoryTheory/GlueData.lean Modified Mathlib/CategoryTheory/Limits/MorphismProperty.lean Modified Mathlib/CategoryTheory/Limits/Preserves/Opposites.lean Modified Mathlib/CategoryTheory/Limits/Shapes/SequentialProduct.lean Modified Mathlib/CategoryTheory/Monad/Comonadicity.lean Modified Mathlib/CategoryTheory/Monad/Monadicity.lean Modified Mathlib/CategoryTheory/Sites/Coherent/ExtensiveColimits.lean Modified Mathlib/CategoryTheory/Sites/DenseSubsite/SheafEquiv.lean Modified Mathlib/Condensed/TopComparison.lean Modified Mathlib/FieldTheory/SeparableClosure.lean Modified Mathlib/Geometry/RingedSpace/LocallyRingedSpace.lean Modified Mathlib/Geometry/RingedSpace/LocallyRingedSpace/HasColimits.lean Modified Mathlib/Geometry/RingedSpace/OpenImmersion.lean Modified Mathlib/Geometry/RingedSpace/PresheafedSpace/Gluing.lean Modified Mathlib/RingTheory/Spectrum/Prime/Polynomial.lean Modified Mathlib/Topology/Sheaves/CommRingCat.lean 2026-01-29 15:56:54 54200f1 feat(Order/ModularLattice): add to_dual annotations (#34247) ## Summary - Register modular lattice classes as duals and add `@[to_dual]` to applicable theorems/instances. - Remove several manually-written duals where `to_dual` now generates them; in some cases this creates new dual declarations. - All generated declarations are identical to the ones they replace. ### New lemmas - `sup_inf_le_assoc_of_le` is a projection lemma for `IsModularLattice.sup_inf_le_assoc_of_le`. - `inf_sup_le_assoc_of_le` is the `to_dual` companion. ESTIMATED CHANGES Modified Mathlib/Order/ModularLattice.lean - theorem IsModularLattice.sup_inf_sup_assoc - theorem inf_covBy_of_covBy_sup_left - theorem inf_covBy_of_covBy_sup_of_covBy_sup_left - theorem inf_covBy_of_covBy_sup_of_covBy_sup_right - theorem inf_covBy_of_covBy_sup_right - theorem inf_lt_inf_of_lt_of_sup_le_sup - theorem inf_sup_assoc_of_le + theorem inf_sup_le_assoc_of_le + theorem sup_inf_le_assoc_of_le +/- theorem sup_lt_sup_of_lt_of_inf_le_inf 2026-01-29 15:56:52 b621b1d chore(Algebra): move `LinearMap.ker_restrictScalars` (#33788) Resolve an old TODO by moving `LinearMap.ker_restrictScalars` to a location in `Mathlib/Algebra/Module/Submodule`. The TODO referenced lemmas in plural, but only `LinearMap.ker_restrictScalars` seemed to fit. I assume any other lemmas might already have been moved at an earlier point. ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/Basic.lean - theorem LinearMap.ker_restrictScalars Modified Mathlib/Algebra/Module/Submodule/Ker.lean + theorem LinearMap.ker_restrictScalars 2026-01-29 15:56:49 9b3bfed feat(LinearAlgebra/Multilinear): composition of multilinear maps (#32600) The composition of a multilinear map with a family of multilinear maps is a multilinear map indexed by a dependent sum. `x ≠ 0`. (Now consistent with `isNontrivial_iff_exists_lt_one`.) - `IsNontrivial.exists_one_lt`: remove superfluous `x ≠ 0`. - `IsNontrivial_iff_exists_one_lt`: added. ESTIMATED CHANGES Modified Mathlib/NumberTheory/LocalField/Basic.lean Modified Mathlib/RingTheory/Valuation/Basic.lean + theorem Valuation.IsNontrivial_iff_exists_one_lt +/- theorem Valuation.isNontrivial_iff_exists_lt_one 2026-01-04 10:12:11 0398d34 feat(RingTheory/Nakayama): refine Nakayama's lemma 00DV (8) (#33361) ESTIMATED CHANGES Modified Mathlib/RingTheory/Nakayama.lean + theorem Submodule.eq_of_map_mkQ_eq_map_mkQ_of_le_jacobson_bot + theorem Submodule.exists_injOn_mkQ_image_span_eq_of_span_eq_map_mkQ_of_le_jacobson_bot + theorem Submodule.le_of_map_mkQ_le_map_mkQ_of_le_jacobson_bot - theorem Submodule.le_span_of_map_mkQ_le_map_mkQ_span_of_le_jacobson_bot 2026-01-04 10:12:09 736f877 doc(RingTheory): fix file refs (#33284) Fix some stale documentation file refs. ESTIMATED CHANGES Modified Mathlib/RingTheory/Coalgebra/Equiv.lean Modified Mathlib/RingTheory/Congruence/Basic.lean Modified Mathlib/RingTheory/Congruence/Defs.lean Modified Mathlib/RingTheory/FractionalIdeal/Inverse.lean Modified Mathlib/RingTheory/Frobenius.lean Modified Mathlib/RingTheory/HahnSeries/Multiplication.lean Modified Mathlib/RingTheory/Ideal/MinimalPrime/Basic.lean Modified Mathlib/RingTheory/Idempotents.lean Modified Mathlib/RingTheory/OrzechProperty.lean Modified Mathlib/RingTheory/TwoSidedIdeal/Kernel.lean 2026-01-04 10:12:07 e26801b feat(RingTheory/MvPowerSeries): (mv) PowerSeries version of `expand_char` (#33091) I proved the `expand_char` for (mv) power series. And also unify the `expand` for (mv) polynomial and (mv) power series. ESTIMATED CHANGES Modified Mathlib/Algebra/Polynomial/Expand.lean - theorem Polynomial.expand_char - theorem Polynomial.map_expand_pow_char + theorem Polynomial.map_frobenius_expand + theorem Polynomial.map_iterateFrobenius_expand Modified Mathlib/FieldTheory/Finite/Basic.lean Modified Mathlib/FieldTheory/Perfect.lean Modified Mathlib/RingTheory/MvPolynomial/Expand.lean - theorem MvPolynomial.expand_char - theorem MvPolynomial.map_expand_char_pow + theorem MvPolynomial.map_frobenius_expand + theorem MvPolynomial.map_iterateFrobenius_expand Modified Mathlib/RingTheory/MvPowerSeries/Basic.lean + theorem MvPowerSeries.map_map Modified Mathlib/RingTheory/MvPowerSeries/Expand.lean + theorem MvPowerSeries.expand_eq_expand + theorem MvPowerSeries.map_frobenius_expand + theorem MvPowerSeries.map_iterateFrobenius_expand + theorem MvPowerSeries.trunc'_expand + theorem MvPowerSeries.trunc'_expand_trunc' Modified Mathlib/RingTheory/MvPowerSeries/Trunc.lean + theorem MvPowerSeries.eq_iff_frequently_trunc'_eq + theorem MvPowerSeries.ext_trunc' + theorem MvPowerSeries.totalDegree_trunc' + theorem MvPowerSeries.trunc'_trunc' + theorem MvPowerSeries.trunc'_trunc'_pow Modified Mathlib/RingTheory/PowerSeries/Expand.lean 2026-01-04 09:12:04 6f1904f doc(Algebra): fix file refs (#33446) Fix some stale file refs. ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/Defs.lean Modified Mathlib/Algebra/Category/Grp/EnoughInjectives.lean Modified Mathlib/Algebra/Category/Grp/Injective.lean Modified Mathlib/Algebra/Central/Basic.lean Modified Mathlib/Algebra/CharP/Basic.lean Modified Mathlib/Algebra/Group/Subgroup/Defs.lean Modified Mathlib/Algebra/HierarchyDesign.lean Modified Mathlib/Algebra/Module/Submodule/Lattice.lean Modified Mathlib/Algebra/Order/Interval/Set/Instances.lean Modified Mathlib/Algebra/Order/Module/Defs.lean Modified Mathlib/Algebra/Order/Sub/WithTop.lean Modified Mathlib/Algebra/Polynomial/HasseDeriv.lean Modified Mathlib/Algebra/Quotient.lean Modified Mathlib/Algebra/SkewMonoidAlgebra/Basic.lean 2026-01-04 04:05:01 db90f79 chore: update Mathlib dependencies 2026-01-04 (#33534) This PR updates the Mathlib dependencies. ESTIMATED CHANGES Modified lake-manifest.json 2026-01-04 03:21:56 bdcec9f feat(Data/Matrix/Cartan): determinants and simply-laced properties (#33115) This PR adds: - Determinants for G₂ and F₄ Cartan matrices - `IsSimplyLaced` predicate - Simply-laced theorems for A, D, E families Note: E₆/E₇/E₈ determinants are deferred due to `decide` recursion limits. ESTIMATED CHANGES Modified Mathlib/Data/Matrix/Cartan.lean + theorem CartanMatrix.F₄_det + theorem CartanMatrix.G₂_det + theorem CartanMatrix.isSimplyLaced_A + theorem CartanMatrix.isSimplyLaced_D + theorem CartanMatrix.isSimplyLaced_E₆ + theorem CartanMatrix.isSimplyLaced_E₇ + theorem CartanMatrix.isSimplyLaced_E₈ + def Matrix.IsSimplyLaced + theorem Matrix.isSimplyLaced_transpose 2026-01-03 23:31:15 f317236 chore: update Mathlib dependencies 2026-01-03 (#33528) This PR updates the Mathlib dependencies. ESTIMATED CHANGES Modified lake-manifest.json 2026-01-03 21:36:30 08d60a8 feat(Algebra): characterise when a submodule constructor is equal to `⊥` (#32836) ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/NonUnitalSubalgebra.lean + theorem NonUnitalAlgebra.toNonUnitalSubring_eq_top + theorem NonUnitalAlgebra.toNonUnitalSubring_top +/- theorem NonUnitalAlgebra.toNonUnitalSubsemiring_eq_top +/- theorem NonUnitalAlgebra.toSubmodule_eq_top - theorem NonUnitalAlgebra.to_subring_eq_top - theorem NonUnitalAlgebra.top_toSubring +/- theorem NonUnitalSubalgebra.toNonUnitalSubsemiring_inj +/- theorem NonUnitalSubalgebra.toNonUnitalSubsemiring_injective +/- theorem NonUnitalSubalgebra.toSubmodule_inj +/- theorem NonUnitalSubalgebra.toSubmodule_injective Modified Mathlib/Algebra/Group/Submonoid/Defs.lean + theorem Submonoid.mk_eq_bot + theorem Submonoid.mk_eq_top + theorem Submonoid.toSubsemigroup_inj + theorem Submonoid.toSubsemigroup_injective Modified Mathlib/Algebra/Group/Subsemigroup/Defs.lean + theorem Subsemigroup.mk_eq_bot + theorem Subsemigroup.mk_eq_top Modified Mathlib/Algebra/Module/Submodule/Lattice.lean + theorem Submodule.mk_eq_bot + theorem Submodule.mk_eq_top Modified Mathlib/Algebra/Ring/Subring/Basic.lean + theorem Subring.toAddSubgroup_eq_top + theorem Subring.toAddSubgroup_top + theorem Subring.toSubsemiring_eq_top + theorem Subring.toSubsemiring_top Modified Mathlib/Algebra/Ring/Subring/Defs.lean +/- theorem Subring.toAddSubgroup_injective +/- theorem Subring.toSubmonoid_injective + theorem Subring.toSubsemiring_inj +/- theorem Subring.toSubsemiring_injective Modified Mathlib/RingTheory/NonUnitalSubring/Basic.lean + theorem NonUnitalSubring.toAddSubgroup_eq_top + theorem NonUnitalSubring.toAddSubgroup_top + theorem NonUnitalSubring.toNonUnitalSubsemiring_eq_top + theorem NonUnitalSubring.toNonUnitalSubsemiring_top Modified Mathlib/RingTheory/NonUnitalSubsemiring/Defs.lean + theorem NonUnitalSubsemiring.toAddSubmonoid_eq_top + theorem NonUnitalSubsemiring.toAddSubmonoid_inj +/- theorem NonUnitalSubsemiring.toAddSubmonoid_injective + theorem NonUnitalSubsemiring.toAddSubmonoid_top +/- theorem NonUnitalSubsemiring.toSubsemigroup_injective 2026-01-03 19:24:55 ba60f6c feat(RingTheory/DedekindDomain/AdicValuation): introduce `intAdicAbv` (#33324) We introduce ``` def intAdicAbvDef (r : R) : ℝ≥0 := toNNReal (ne_zero_of_lt hb) (v.intValuation r) ``` and the corresponding `AbsoluteValue R ℝ`. ESTIMATED CHANGES Modified Mathlib/RingTheory/DedekindDomain/AdicValuation.lean +/- def IsDedekindDomain.HeightOneSpectrum.adicAbv +/- def IsDedekindDomain.HeightOneSpectrum.adicAbvDef +/- theorem IsDedekindDomain.HeightOneSpectrum.adicAbv_coe_eq_one_iff +/- theorem IsDedekindDomain.HeightOneSpectrum.adicAbv_coe_le_one +/- theorem IsDedekindDomain.HeightOneSpectrum.adicAbv_coe_lt_one_iff + theorem IsDedekindDomain.HeightOneSpectrum.adicAbv_of_algebraMap + theorem IsDedekindDomain.HeightOneSpectrum.adicAbv_of_mk' + def IsDedekindDomain.HeightOneSpectrum.intAdicAbv + def IsDedekindDomain.HeightOneSpectrum.intAdicAbvDef + theorem IsDedekindDomain.HeightOneSpectrum.intAdicAbv_eq_one_iff + theorem IsDedekindDomain.HeightOneSpectrum.intAdicAbv_le_one + theorem IsDedekindDomain.HeightOneSpectrum.intAdicAbv_lt_one_iff +/- theorem IsDedekindDomain.HeightOneSpectrum.isNonarchimedean_adicAbv +/- theorem IsDedekindDomain.HeightOneSpectrum.isNonarchimedean_adicAbvDef + theorem IsDedekindDomain.HeightOneSpectrum.isNonarchimedean_intAdicAbv + theorem IsDedekindDomain.HeightOneSpectrum.isNonarchimedean_intAdicAbvDef 2026-01-03 19:07:43 2579594 feat(RingTheory/Nilpotent/Exp): add isNilpotent_exp_sub_one (#33473) ESTIMATED CHANGES Modified Mathlib/RingTheory/Nilpotent/Exp.lean + theorem IsNilpotent.isNilpotent_exp_sub_one 2026-01-03 17:53:59 e78e242 feat(CircleIntegral): integral of a finite sum of functions (#33513) ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Integral/CircleIntegral.lean + theorem circleIntegral.integral_fun_sum 2026-01-03 17:53:57 8e606c9 feat(CauchyIntegral): add a version of the Cauchy integral theorem (#33509) Add a version assuming `DiffContOnCl`. We had a more precise but less convenient version. ESTIMATED CHANGES Modified Mathlib/Analysis/Complex/CauchyIntegral.lean + theorem DiffContOnCl.circleIntegral_eq_zero 2026-01-03 17:21:16 dbe24fb chore(Data/Finsupp): rename `finsuppProdEquiv` to `curryEquiv` (#33521) This matches both the `DFinsupp` name and more generally the practice of naming bundlings of a function after the function. Also add the missing intermediate bundling as an `AddEquiv`. ESTIMATED CHANGES Modified Mathlib/Data/Finsupp/Basic.lean + theorem Finsupp.coe_curryAddEquiv + def Finsupp.curryEquiv - def Finsupp.finsuppProdEquiv Modified Mathlib/LinearAlgebra/DFinsupp.lean Modified Mathlib/LinearAlgebra/Finsupp/Defs.lean + theorem Finsupp.curryLinearEquiv_symm_apply_apply - theorem Finsupp.finsuppProdLEquiv_symm_apply_apply Modified Mathlib/LinearAlgebra/Finsupp/LinearCombination.lean Modified Mathlib/RepresentationTheory/Homological/GroupHomology/Functoriality.lean Modified Mathlib/RepresentationTheory/Rep.lean Modified Mathlib/RingTheory/AlgebraTower.lean Modified Mathlib/RingTheory/Unramified/Finite.lean 2026-01-03 17:21:14 60148e9 feat(Schwarz): generalize domain (#33511) Generalize some lemmas to maps between any 2 normed spaces. Also fix their docstrings. ESTIMATED CHANGES Modified Mathlib/Analysis/Complex/Schwarz.lean +/- theorem Complex.affine_of_mapsTo_ball_of_exists_norm_dslope_eq_div' - theorem Complex.affine_of_mapsTo_ball_of_exists_norm_dslope_eq_div + theorem Complex.affine_of_mapsTo_ball_of_norm_dslope_eq_div + theorem Complex.dist_le_dist_of_mapsTo_ball - theorem Complex.dist_le_dist_of_mapsTo_ball_self + theorem Complex.norm_fderiv_le_div_of_mapsTo_ball + theorem Complex.norm_fderiv_le_one_of_mapsTo_ball + theorem Complex.norm_le_norm_of_mapsTo_ball - theorem Complex.norm_le_norm_of_mapsTo_ball_self +/- theorem Complex.schwarz_aux 2026-01-03 17:21:12 3eee375 feat(RingTheory/TensorProduct/MonoidAlgebra): additivise (#33482) This will be used to golf the corresponding `MvPolynomial` file. ESTIMATED CHANGES Modified Mathlib/Algebra/MonoidAlgebra/Module.lean Modified Mathlib/RingTheory/TensorProduct/MonoidAlgebra.lean + theorem AddMonoidAlgebra.tensorEquiv.invFun_tmul + def MonoidAlgebra.tensorEquiv.invFun + theorem MonoidAlgebra.tensorEquiv.invFun_tmul 2026-01-03 17:21:10 bd29b68 ci: add tracing option to linting steps (#33474) Use new `--trace` option for `lake exe runLinter` added in https://github.com/leanprover-community/batteries/pull/1583. Also change the `lake-build-wrapper.py` script so that `lake` sees a PTY on posix systems rather than a pipe, so that stdout isn't buffered before being sent to the wrapper. (This part was prepared with help from codex) ESTIMATED CHANGES Modified .github/build.in.yml Modified .github/workflows/bors.yml Modified .github/workflows/build.yml Modified .github/workflows/build_fork.yml Modified .github/workflows/nolints.yml Modified scripts/lake-build-wrapper.py 2026-01-03 17:21:08 4ffa047 refactor: rename `≤ᵥ` to `vle` and `<ᵥ` to `vlt` (#33040) This makes room to later add `=ᵥ` or `veq` defined as `AntisymmRel (· ≤ᵥ ·)`. ESTIMATED CHANGES Modified Mathlib/RingTheory/Valuation/ValuativeRel/Basic.lean - theorem Valuation.one_rel_iff - theorem Valuation.one_srel_iff + theorem Valuation.one_vle_iff + theorem Valuation.one_vlt_iff - theorem Valuation.rel_iff_le - theorem Valuation.rel_one_iff - theorem Valuation.srel_iff_lt - theorem Valuation.srel_one_iff + theorem Valuation.vle_iff_le + theorem Valuation.vle_one_iff + theorem Valuation.vlt_iff_lt + theorem Valuation.vlt_one_iff - theorem ValuativeExtension.srel_iff_srel + theorem ValuativeExtension.vlt_iff_vlt - theorem ValuativeRel.SRel.rel - theorem ValuativeRel.SRel.trans - def ValuativeRel.SRel - theorem ValuativeRel.div_rel_iff - theorem ValuativeRel.div_rel_one_iff + theorem ValuativeRel.div_vle_iff + theorem ValuativeRel.div_vle_one_iff - theorem ValuativeRel.inv_rel_one - theorem ValuativeRel.inv_srel_one + theorem ValuativeRel.inv_vle_one + theorem ValuativeRel.inv_vlt_one - theorem ValuativeRel.mul_rel_mul - theorem ValuativeRel.mul_rel_mul_iff_left - theorem ValuativeRel.mul_rel_mul_iff_right - theorem ValuativeRel.mul_srel_mul - theorem ValuativeRel.mul_srel_mul_iff_left - theorem ValuativeRel.mul_srel_mul_iff_right - theorem ValuativeRel.mul_srel_mul_of_rel_of_srel - theorem ValuativeRel.mul_srel_mul_of_srel_of_rel + theorem ValuativeRel.mul_vle_mul + theorem ValuativeRel.mul_vle_mul_iff_left + theorem ValuativeRel.mul_vle_mul_iff_right + theorem ValuativeRel.mul_vlt_mul + theorem ValuativeRel.mul_vlt_mul_iff_left + theorem ValuativeRel.mul_vlt_mul_iff_right + theorem ValuativeRel.mul_vlt_mul_of_vle_of_vlt + theorem ValuativeRel.mul_vlt_mul_of_vlt_of_vle - theorem ValuativeRel.not_srel_iff + theorem ValuativeRel.not_vle + theorem ValuativeRel.not_vlt - theorem ValuativeRel.one_rel_div_iff - theorem ValuativeRel.one_rel_inv - theorem ValuativeRel.one_srel_inv + theorem ValuativeRel.one_vle_div_iff + theorem ValuativeRel.one_vle_inv + theorem ValuativeRel.one_vlt_inv - theorem ValuativeRel.pow_rel_pow - theorem ValuativeRel.pow_rel_pow_of_one_rel - theorem ValuativeRel.pow_rel_pow_of_rel_one - theorem ValuativeRel.pow_srel_pow + theorem ValuativeRel.pow_vle_pow + theorem ValuativeRel.pow_vle_pow_of_one_vle + theorem ValuativeRel.pow_vle_pow_of_vle_one + theorem ValuativeRel.pow_vlt_pow - theorem ValuativeRel.rel_add_cases - theorem ValuativeRel.rel_div_iff - theorem ValuativeRel.rel_mul_left - theorem ValuativeRel.rel_mul_left_iff - theorem ValuativeRel.rel_mul_right_iff - theorem ValuativeRel.rel_refl - theorem ValuativeRel.rel_rfl - theorem ValuativeRel.rel_trans' - theorem ValuativeRel.rel_zero_iff +/- theorem ValuativeRel.srel_iff - theorem ValuativeRel.srel_mul_left_iff - theorem ValuativeRel.srel_mul_right_iff - theorem ValuativeRel.srel_of_rel_of_srel - theorem ValuativeRel.srel_of_srel_of_rel +/- theorem ValuativeRel.val_posSubmonoid_ne_zero + theorem ValuativeRel.vle_add_cases + theorem ValuativeRel.vle_div_iff + theorem ValuativeRel.vle_mul_left + theorem ValuativeRel.vle_mul_left_iff + theorem ValuativeRel.vle_mul_right_iff + theorem ValuativeRel.vle_refl + theorem ValuativeRel.vle_rfl + theorem ValuativeRel.vle_trans' + theorem ValuativeRel.vle_zero_iff + theorem ValuativeRel.vlt.trans + theorem ValuativeRel.vlt.vle + def ValuativeRel.vlt + theorem ValuativeRel.vlt_mul_left_iff + theorem ValuativeRel.vlt_mul_right_iff + theorem ValuativeRel.vlt_of_vle_of_vlt + theorem ValuativeRel.vlt_of_vlt_of_vle - theorem ValuativeRel.zero_rel - theorem ValuativeRel.zero_srel_coe_posSubmonoid - theorem ValuativeRel.zero_srel_iff - theorem ValuativeRel.zero_srel_mul - theorem ValuativeRel.zero_srel_one + theorem ValuativeRel.zero_vle + theorem ValuativeRel.zero_vlt_coe_posSubmonoid + theorem ValuativeRel.zero_vlt_iff + theorem ValuativeRel.zero_vlt_mul + theorem ValuativeRel.zero_vlt_one Modified Mathlib/RingTheory/Valuation/ValuativeRel/Trivial.lean 2026-01-03 16:31:48 bf08a1b feat(MetricSpace/Algebra): prove uniform continuity of `(· • ·)` (#33517) ... on any bounded set. ESTIMATED CHANGES Modified Mathlib/Topology/MetricSpace/Algebra.lean + theorem Bornology.IsBounded.uniformContinuousOn_smul 2026-01-03 16:31:46 96123a3 feat(ToIntervalMod): add missing lemmas (#33442) Cherry-picked from #33423, then added more lemmas as requested by @eric-wieser ESTIMATED CHANGES Modified Mathlib/Algebra/Order/ToIntervalMod.lean + theorem self_sub_toIcoDiv_mul + theorem self_sub_toIcoMod_eq_mul + theorem self_sub_toIocDiv_mul + theorem self_sub_toIocMod_eq_mul + theorem toIcoDiv_add_intCast_mul' + theorem toIcoDiv_add_intCast_mul + theorem toIcoDiv_add_natCast_mul' + theorem toIcoDiv_add_natCast_mul + theorem toIcoDiv_add_nsmul' + theorem toIcoDiv_add_nsmul + theorem toIcoDiv_add_ofNat_mul' + theorem toIcoDiv_add_ofNat_mul + theorem toIcoDiv_eq_iff - theorem toIcoDiv_eq_of_sub_zsmul_mem_Ico + theorem toIcoDiv_intCast_mul_add + theorem toIcoDiv_mul_sub_self + theorem toIcoDiv_mul_sub_toIcoMod + theorem toIcoDiv_natCast_mul_add + theorem toIcoDiv_nsmul_add + theorem toIcoDiv_ofNat_mul_add + theorem toIcoDiv_sub_intCast_mul' + theorem toIcoDiv_sub_intCast_mul + theorem toIcoDiv_sub_natCast_mul' + theorem toIcoDiv_sub_natCast_mul + theorem toIcoDiv_sub_nsmul' + theorem toIcoDiv_sub_nsmul + theorem toIcoDiv_sub_ofNat_mul' + theorem toIcoDiv_sub_ofNat_mul + theorem toIcoMod_add_intCast_mul' + theorem toIcoMod_add_intCast_mul + theorem toIcoMod_add_natCast_mul' + theorem toIcoMod_add_natCast_mul + theorem toIcoMod_add_nsmul' + theorem toIcoMod_add_nsmul + theorem toIcoMod_add_ofNat_mul' + theorem toIcoMod_add_ofNat_mul + theorem toIcoMod_add_toIcoDiv_mul + theorem toIcoMod_intCast_mul_add' + theorem toIcoMod_intCast_mul_add + theorem toIcoMod_natCast_mul_add' + theorem toIcoMod_natCast_mul_add + theorem toIcoMod_nsmul_add' + theorem toIcoMod_nsmul_add + theorem toIcoMod_ofNat_mul_add' + theorem toIcoMod_ofNat_mul_add + theorem toIcoMod_sub_intCast_mul' + theorem toIcoMod_sub_intCast_mul + theorem toIcoMod_sub_natCast_mul' + theorem toIcoMod_sub_natCast_mul + theorem toIcoMod_sub_nsmul' + theorem toIcoMod_sub_nsmul + theorem toIcoMod_sub_ofNat_mul' + theorem toIcoMod_sub_ofNat_mul + theorem toIcoMod_sub_self_eq_mul + theorem toIocDiv_add_intCast_mul' + theorem toIocDiv_add_intCast_mul + theorem toIocDiv_add_natCast_mul' + theorem toIocDiv_add_natCast_mul + theorem toIocDiv_add_nsmul' + theorem toIocDiv_add_nsmul + theorem toIocDiv_add_ofNat_mul' + theorem toIocDiv_add_ofNat_mul + theorem toIocDiv_eq_iff - theorem toIocDiv_eq_of_sub_zsmul_mem_Ioc + theorem toIocDiv_intCast_mul_add + theorem toIocDiv_mul_sub_self + theorem toIocDiv_mul_sub_toIocMod + theorem toIocDiv_natCast_mul_add + theorem toIocDiv_nsmul_add + theorem toIocDiv_ofNat_mul_add + theorem toIocDiv_sub_intCast_mul' + theorem toIocDiv_sub_intCast_mul + theorem toIocDiv_sub_natCast_mul' + theorem toIocDiv_sub_natCast_mul + theorem toIocDiv_sub_nsmul' + theorem toIocDiv_sub_nsmul + theorem toIocDiv_sub_ofNat_mul' + theorem toIocDiv_sub_ofNat_mul + theorem toIocMod_add_intCast_mul' + theorem toIocMod_add_intCast_mul + theorem toIocMod_add_natCast_mul' + theorem toIocMod_add_natCast_mul + theorem toIocMod_add_nsmul' + theorem toIocMod_add_nsmul + theorem toIocMod_add_ofNat_mul' + theorem toIocMod_add_ofNat_mul + theorem toIocMod_add_toIocDiv_mul + theorem toIocMod_intCast_mul_add' + theorem toIocMod_intCast_mul_add + theorem toIocMod_natCast_mul_add' + theorem toIocMod_natCast_mul_add + theorem toIocMod_nsmul_add' + theorem toIocMod_nsmul_add + theorem toIocMod_ofNat_mul_add' + theorem toIocMod_ofNat_mul_add + theorem toIocMod_sub_intCast_mul' + theorem toIocMod_sub_intCast_mul + theorem toIocMod_sub_natCast_mul' + theorem toIocMod_sub_natCast_mul + theorem toIocMod_sub_nsmul' + theorem toIocMod_sub_nsmul + theorem toIocMod_sub_ofNat_mul' + theorem toIocMod_sub_ofNat_mul + theorem toIocMod_sub_self_eq_mul Modified Mathlib/Analysis/SpecialFunctions/Complex/Arg.lean Modified Mathlib/Logic/ExistsUnique.lean + theorem ExistsUnique.choose_eq_iff 2026-01-03 16:15:00 a36b010 feat(MetricSpace): add `eventually_ball_subset` (#33512) We have a `closedBall` version, add an open ball version too. ESTIMATED CHANGES Modified Mathlib/Topology/MetricSpace/Pseudo/Lemmas.lean + theorem eventually_ball_subset 2026-01-03 10:56:45 758284c feat: file for lemmas about MvPolynomials over NoZeroDivisors (#25925) This PR creates a new file for lemmas about `MvPolynomial`s over rings which are `NoZeroDivisors`, to make modified versions of lemmas like `degreeOf_C_mul`. Original PR: https://github.com/leanprover-community/mathlib4/pull/11106 - [x] depends on: #11095 - [x] depends on: #11094 - [x] depends on: #25926 [We need this lemma to establish fact about degreeOf n (p + q)] - [x] depends on: #32558 ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/MvPolynomial/Degrees.lean + theorem MvPolynomial.degreeOf_one Added Mathlib/Algebra/MvPolynomial/NoZeroDivisors.lean + theorem MvPolynomial.degreeOf_C_mul + theorem MvPolynomial.degreeOf_mul_eq + theorem MvPolynomial.degreeOf_pow_eq + theorem MvPolynomial.degreeOf_prod_eq + theorem MvPolynomial.degrees_mul_eq + theorem MvPolynomial.dvd_C_iff_exists + theorem MvPolynomial.dvd_X_iff_exists + theorem MvPolynomial.dvd_monomial_iff_exists + theorem MvPolynomial.dvd_monomial_one_iff_exists + theorem MvPolynomial.dvd_smul_X_iff_exists + theorem MvPolynomial.totalDegree_le_of_dvd_of_isDomain + theorem MvPolynomial.totalDegree_mul_of_isDomain Modified Mathlib/FieldTheory/SeparablyGenerated.lean Modified Mathlib/RingTheory/MvPolynomial/IrreducibleQuadratic.lean Modified Mathlib/RingTheory/MvPolynomial/MonomialOrder/DegLex.lean - theorem MvPolynomial.dvd_C_iff_exists - theorem MvPolynomial.dvd_X_iff_exists - theorem MvPolynomial.dvd_monomial_iff_exists - theorem MvPolynomial.dvd_monomial_one_iff_exists - theorem MvPolynomial.dvd_smul_X_iff_exists - theorem MvPolynomial.totalDegree_le_of_dvd_of_isDomain - theorem MvPolynomial.totalDegree_mul_of_isDomain 2026-01-03 10:24:26 45f3a96 chore(Algebra/MonoidAlgebra/Basic): rename variables (#33516) ... and unify them within the file. As a result, `lift R M A` becomes `lift R A M`, which I think makes more sense anyway. ESTIMATED CHANGES Modified Mathlib/Algebra/FreeAlgebra.lean Modified Mathlib/Algebra/MonoidAlgebra/Basic.lean +/- theorem AddMonoidAlgebra.algHom_ext' +/- theorem AddMonoidAlgebra.algHom_ext_iff +/- theorem AddMonoidAlgebra.coe_liftNCAlgHom +/- def AddMonoidAlgebra.lift +/- def AddMonoidAlgebra.liftMagma +/- def AddMonoidAlgebra.liftNCAlgHom +/- theorem AddMonoidAlgebra.lift_apply' +/- theorem AddMonoidAlgebra.lift_apply +/- theorem AddMonoidAlgebra.lift_def +/- theorem AddMonoidAlgebra.lift_of' +/- theorem AddMonoidAlgebra.lift_of +/- theorem AddMonoidAlgebra.lift_single +/- theorem AddMonoidAlgebra.lift_symm_apply +/- theorem AddMonoidAlgebra.lift_unique' +/- theorem AddMonoidAlgebra.lift_unique +/- theorem AddMonoidAlgebra.nonUnitalAlgHom_ext' +/- def AddMonoidAlgebra.toMultiplicativeAlgEquiv +/- def MonoidAlgebra.GroupSMul.linearMap +/- theorem MonoidAlgebra.GroupSMul.linearMap_apply +/- theorem MonoidAlgebra.algHom_ext' +/- theorem MonoidAlgebra.algHom_ext +/- theorem MonoidAlgebra.coe_algebraMap +/- theorem MonoidAlgebra.coe_liftNCAlgHom +/- def MonoidAlgebra.domCongr +/- theorem MonoidAlgebra.domCongr_apply +/- theorem MonoidAlgebra.domCongr_comp_lsingle +/- theorem MonoidAlgebra.domCongr_refl +/- theorem MonoidAlgebra.domCongr_single +/- theorem MonoidAlgebra.domCongr_support +/- theorem MonoidAlgebra.domCongr_symm +/- theorem MonoidAlgebra.domCongr_toAlgHom +/- def MonoidAlgebra.lift +/- def MonoidAlgebra.liftMagma +/- def MonoidAlgebra.liftNCAlgHom +/- theorem MonoidAlgebra.lift_apply' +/- theorem MonoidAlgebra.lift_apply +/- theorem MonoidAlgebra.lift_def +/- theorem MonoidAlgebra.lift_of +/- theorem MonoidAlgebra.lift_single +/- theorem MonoidAlgebra.lift_symm_apply +/- theorem MonoidAlgebra.lift_unique' +/- theorem MonoidAlgebra.lift_unique +/- def MonoidAlgebra.mapDomainAlgHom +/- theorem MonoidAlgebra.mapDomainAlgHom_comp +/- theorem MonoidAlgebra.mapDomainAlgHom_id +/- theorem MonoidAlgebra.mapDomain_algebraMap +/- theorem MonoidAlgebra.nonUnitalAlgHom_ext' +/- theorem MonoidAlgebra.nonUnitalAlgHom_ext +/- def MonoidAlgebra.singleOneAlgHom +/- theorem MonoidAlgebra.single_algebraMap_eq_algebraMap_mul_of +/- theorem MonoidAlgebra.single_eq_algebraMap_mul_of +/- theorem MonoidAlgebra.symm_mapRangeAlgEquiv +/- def MonoidAlgebra.toAdditiveAlgEquiv Modified Mathlib/Algebra/MonoidAlgebra/Grading.lean Modified Mathlib/Algebra/Polynomial/Laurent.lean Modified Mathlib/Analysis/Fourier/BoundedContinuousFunctionChar.lean Modified Mathlib/RepresentationTheory/Basic.lean +/- theorem Representation.asAlgebraHom_def Modified Mathlib/RepresentationTheory/Rep.lean 2026-01-03 09:30:19 c6d7b04 feat(Algebra/Group/Action): add `smul_set_eq_univ` (#33515) Also add additive and `Finset` versions. ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Action/Pointwise/Finset.lean + theorem Finset.smul_finset_eq_univ Modified Mathlib/Algebra/Group/Action/Pointwise/Set/Basic.lean + theorem Set.smul_set_eq_univ 2026-01-03 09:30:18 024747d feat: subfield of Hahn series bounded by a cardinal (#32648) ESTIMATED CHANGES Modified Mathlib/RingTheory/HahnSeries/Cardinal.lean + def HahnSeries.cardSuppLTAddSubgroup + def HahnSeries.cardSuppLTAddSubmonoid + def HahnSeries.cardSuppLTSubfield + def HahnSeries.cardSuppLTSubring + theorem HahnSeries.mem_cardSuppLTAddSubgroup + theorem HahnSeries.mem_cardSuppLTAddSubmonoid + theorem HahnSeries.mem_cardSuppLTSubfield + theorem HahnSeries.mem_cardSuppLTSubring 2026-01-03 08:36:01 d67e9c8 feat(Algebra/Order/SuccPred): simplify n+1 ≤ ... and ... < n+1 (#33320) Note that in particular, this makes `n < m + 1 ↔ n ≤ m` and `n + 1 ≤ m ↔ n < m` into the simp-normal forms for `ℕ` and `ℤ`, which is a somewhat drastic change but seems to have positive effects. ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Floor/Ring.lean Modified Mathlib/Algebra/Order/Round.lean Modified Mathlib/Algebra/Order/SuccPred.lean Modified Mathlib/Algebra/Polynomial/Derivative.lean Modified Mathlib/Algebra/Polynomial/Div.lean Modified Mathlib/Algebra/Polynomial/Homogenize.lean Modified Mathlib/Algebra/Polynomial/SumIteratedDerivative.lean Modified Mathlib/Analysis/BoxIntegral/UnitPartition.lean Modified Mathlib/Analysis/Distribution/TemperateGrowth.lean Modified Mathlib/Analysis/Normed/Unbundled/SmoothingSeminorm.lean Modified Mathlib/Combinatorics/SetFamily/LYM.lean Modified Mathlib/MeasureTheory/Measure/Portmanteau.lean Modified Mathlib/MeasureTheory/Order/Lattice.lean Modified Mathlib/MeasureTheory/VectorMeasure/Decomposition/Hahn.lean Modified Mathlib/NumberTheory/Chebyshev.lean Modified Mathlib/NumberTheory/Divisors.lean Modified Mathlib/NumberTheory/LegendreSymbol/GaussEisensteinLemmas.lean Modified Mathlib/NumberTheory/MahlerMeasure.lean Modified Mathlib/NumberTheory/PrimeCounting.lean Modified Mathlib/NumberTheory/SmoothNumbers.lean Modified Mathlib/Order/KrullDimension.lean Modified Mathlib/RingTheory/Discriminant.lean Modified Mathlib/RingTheory/IntegralClosure/Algebra/Ideal.lean Modified Mathlib/RingTheory/Polynomial/Resultant/Basic.lean Modified Mathlib/RingTheory/Polynomial/ShiftedLegendre.lean Modified Mathlib/RingTheory/PowerSeries/Trunc.lean 2026-01-03 04:41:35 aa4187f doc(translate): improve discoverability of trace options (#33500) This PR fixes references to the now non-existent `trace.to_additive_detail`, and adds a reference to the replacement `trace.translate_detail` in the doc-string of `to_dual`. ESTIMATED CHANGES Modified Mathlib/Tactic/Translate/ToAdditive.lean Modified Mathlib/Tactic/Translate/ToDual.lean Modified MathlibTest/toAdditive.lean 2026-01-03 04:08:24 73fe7ba feat(RingTheory/RootsOfUnity/PrimitiveRoots): add primitiveRootsPowEquivOfCoprime (#26483) Adds equivalence of r-th primitive roots by a coprime e. ESTIMATED CHANGES Modified Mathlib/GroupTheory/OrderOfElement.lean + theorem pow_eq_pow_of_modEq Modified Mathlib/RingTheory/RootsOfUnity/PrimitiveRoots.lean + def IsPrimitiveRoot.primitiveRootsPowEquiv + def IsPrimitiveRoot.primitiveRootsPowEquivOfCoprime 2026-01-02 22:26:18 c3a9c0b feat: `IsStrictOrderedRing (Lex R⟦Γ⟧)` (#33398) Used in the CGT repo. ESTIMATED CHANGES Modified Mathlib/RingTheory/HahnSeries/Lex.lean +/- theorem HahnSeries.leadingCoeff_nonneg_iff +/- theorem HahnSeries.leadingCoeff_nonpos_iff Modified Mathlib/RingTheory/HahnSeries/Multiplication.lean + theorem HahnSeries.leadingCoeff_mul + theorem HahnSeries.leadingCoeff_mul_of_ne_zero - theorem HahnSeries.leadingCoeff_mul_of_nonzero + theorem HahnSeries.orderTop_mul + theorem HahnSeries.orderTop_mul_of_ne_zero - theorem HahnSeries.orderTop_mul_of_nonzero + theorem HahnSeries.order_mul_of_ne_zero - theorem HahnSeries.order_mul_of_nonzero 2026-01-02 21:42:33 3edbe00 feat: simp lemmas PrimeSpectrum.asIdeal_bot/top (#33489) ESTIMATED CHANGES Modified Mathlib/RingTheory/Spectrum/Prime/Basic.lean + theorem PrimeSpectrum.asIdeal_bot Modified Mathlib/RingTheory/Spectrum/Prime/Topology.lean + theorem IsLocalRing.PrimeSpectrum.asIdeal_top 2026-01-02 21:42:32 3135fb2 feat(Algebra/GroupWithZero/NonZeroDivisors): add some lemmas about multiplication (#32773) Similar to `Is{Left,Right,}Regular.mul`. ESTIMATED CHANGES Modified Mathlib/Algebra/GroupWithZero/NonZeroDivisors.lean + theorem mem_nonZeroDivisors_iff' + theorem mul_mem_nonZeroDivisorsLeft_of_mem_nonZeroDivisorsLeft + theorem mul_mem_nonZeroDivisorsRight_of_mem_nonZeroDivisorsRight + theorem mul_mem_nonZeroDivisors_of_mem_nonZeroDivisors 2026-01-02 21:07:54 d8bd286 feat(RingTheory): polynomial is integral <-> coeffs are integral (#33468) ESTIMATED CHANGES Modified Mathlib/Algebra/MvPolynomial/Equiv.lean + theorem MvPolynomial.optionEquivLeft_symm_C_C + theorem MvPolynomial.optionEquivLeft_symm_X Modified Mathlib/Algebra/MvPolynomial/Rename.lean + theorem MvPolynomial.killCompl_map Modified Mathlib/Algebra/Polynomial/Div.lean + theorem Polynomial.IsRoot.dvd_coeff_zero Modified Mathlib/RingTheory/AdjoinRoot.lean + theorem Polynomial.Monic.exists_splits_map.{u} Modified Mathlib/RingTheory/IntegralClosure/IsIntegral/Basic.lean + theorem RingHom.IsIntegralElem.map + theorem RingHom.IsIntegralElem.map_iff + theorem RingHom.IsIntegralElem.of_comp + theorem RingHom.IsIntegralElem.of_map Modified Mathlib/RingTheory/Polynomial/IsIntegral.lean - theorem IsIntegral.coeff_of_exists_smul_mem_lifts - theorem IsIntegral.coeff_of_isFractionRing + theorem IsIntegral.of_aeval_monic_of_isIntegral_coeff + theorem MvPolynomial.isIntegral_iff_isIntegral_coeff.{w} +/- theorem Polynomial.isIntegral_coeff_of_dvd +/- theorem Polynomial.isIntegral_coeff_of_factors + theorem Polynomial.isIntegral_iff_isIntegral_coeff Modified Mathlib/RingTheory/Polynomial/UniversalFactorizationRing.lean 2026-01-02 20:50:24 727547f feat(CategoryTheory/Sites): stacks (#33195) In this PR, we define stacks using the language of pseudo-functors `F : LocallyDiscrete Cᵒᵖ ⥤ᵖ Cat`. If `J` is a Grothendieck topology on `C`, we say that `F` is a stack if it is a prestack (i.e. descent of morphisms holds) if the descent is effective. This means that the functor `F.obj (.mk (op S))` to the category of descent data relative to a covering of `S` is essentially surjective. As the prestack condition already implies that these functors are fully faithful, this means that these functors are equivalences of categories. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/CategoryTheory/Sites/Descent/IsPrestack.lean Added Mathlib/CategoryTheory/Sites/Descent/IsStack.lean + theorem CategoryTheory.Pseudofunctor.IsStack.of_isStackFor + theorem CategoryTheory.Pseudofunctor.isEquivalence_toDescentData + theorem CategoryTheory.Pseudofunctor.isStackFor' + theorem CategoryTheory.Pseudofunctor.isStackFor 2026-01-02 19:36:18 f025bf9 chore: Fix Dihedral comments (#33483) Fix incorrect comments ESTIMATED CHANGES Modified Mathlib/GroupTheory/SpecificGroups/Dihedral.lean 2026-01-02 18:50:14 ce5b092 feat: FTaylorSeries of the composition with an affine map (#33459) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Analysis/Calculus/AddTorsor/AffineMap.lean - theorem ContinuousAffineMap.differentiable - theorem ContinuousAffineMap.differentiableAt - theorem ContinuousAffineMap.differentiableOn - theorem ContinuousAffineMap.differentiableWithinAt - theorem ContinuousAffineMap.fderiv Modified Mathlib/Analysis/Calculus/ContDiff/Basic.lean + theorem HasFTaylorSeriesUpToOn.comp_continuousAffineMap Modified Mathlib/Analysis/Calculus/ContDiff/FTaylorSeries.lean + theorem hasFTaylorSeriesUpToOn_empty Modified Mathlib/Analysis/Calculus/ContDiff/Operations.lean Added Mathlib/Analysis/Calculus/FDeriv/Affine.lean 2026-01-02 18:50:12 874943e feat(Probability): Right continuous filtrations (#33371) ESTIMATED CHANGES Modified Mathlib/Probability/Process/Filtration.lean + theorem MeasureTheory.Filtration.IsRightContinuous.eq + theorem MeasureTheory.Filtration.IsRightContinuous.measurableSet + theorem MeasureTheory.Filtration.le_rightCont + theorem MeasureTheory.Filtration.rightCont_apply + theorem MeasureTheory.Filtration.rightCont_eq + theorem MeasureTheory.Filtration.rightCont_eq_of_exists_gt + theorem MeasureTheory.Filtration.rightCont_eq_of_isMax + theorem MeasureTheory.Filtration.rightCont_eq_of_neBot_nhdsGT + theorem MeasureTheory.Filtration.rightCont_eq_of_nhdsGT_eq_bot + theorem MeasureTheory.Filtration.rightCont_eq_of_not_isMax + theorem MeasureTheory.Filtration.rightCont_eq_self + theorem MeasureTheory.Filtration.rightCont_self 2026-01-02 18:07:22 c50c5ae feat(Homotopy/Lifting): add a lemma about `IsCoveringMapOn` (#33422) Some important maps (e.g., `Complex.exp` or `x ↦ x ^ n`) aren't covering maps over the whole space. ESTIMATED CHANGES Modified Mathlib/Topology/Homotopy/Lifting.lean + theorem IsCoveringMapOn.existsUnique_continuousMap_lifts 2026-01-02 18:07:21 d46e5e9 chore(Algebra/Central/End): generalize `Algebra.IsCentral.instEnd` (#33301) ESTIMATED CHANGES Modified Mathlib/Algebra/Central/End.lean Modified Mathlib/Algebra/Module/Hom.lean Modified Mathlib/Algebra/Module/LinearMap/End.lean + def Module.End.smulLeft + theorem Module.End.smulLeft_eq Modified Mathlib/LinearAlgebra/FreeModule/Basic.lean + theorem Module.End.mem_center_iff + theorem Module.End.mem_submonoidCenter_iff + theorem Module.End.mem_subsemigroupCenter_iff 2026-01-02 18:07:19 4e2ca55 feat(CategoryTheory): Exponentiable morphisms (#31332) We define an exponentiable morphism `f : I ⟶ J` to be a morphism with a chosen pullback functor `Over J ⥤ Over I` together with a right adjoint, called the pushforward functor. We use this PR in the PR branch `lccc-basic`. ```mermaid graph TD A[ChosenPullbacksAlong.lean] --> A'[Over.lean] A' --> B[Sections.lean] A --> C[ExponentiableMorphism.lean] B --> D[Basic.lean] C --> D D --> E[Types.lean] E --> F[Presheaves.lean] D --> G[Beck-Chevalley.lean] %% Define highlight style classDef highlight fill:#ffe599,stroke:#d4a017,stroke-width:2px; %% Apply to one node class C highlight; ``` ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/CategoryTheory/LocallyCartesianClosed/ChosenPullbacksAlong.lean +/- def CategoryTheory.ChosenPullbacksAlong.comp + theorem CategoryTheory.ChosenPullbacksAlong.pullbackComp_hom_counit +/- def CategoryTheory.ChosenPullbacksAlong.pullbackId + theorem CategoryTheory.ChosenPullbacksAlong.pullbackId_hom_counit + theorem CategoryTheory.ChosenPullbacksAlong.unit_pullbackComp_hom + theorem CategoryTheory.ChosenPullbacksAlong.unit_pullbackId_hom + theorem CategoryTheory.ChosenPullbacksAlong.unit_pullbackId_hom_app Added Mathlib/CategoryTheory/LocallyCartesianClosed/ExponentiableMorphism.lean + def CategoryTheory.ExponentiableMorphism.coev + theorem CategoryTheory.ExponentiableMorphism.coev_def + theorem CategoryTheory.ExponentiableMorphism.coev_ev + theorem CategoryTheory.ExponentiableMorphism.coev_naturality + def CategoryTheory.ExponentiableMorphism.comp + theorem CategoryTheory.ExponentiableMorphism.comp_pushforward + def CategoryTheory.ExponentiableMorphism.ev + theorem CategoryTheory.ExponentiableMorphism.ev_coev + theorem CategoryTheory.ExponentiableMorphism.ev_def + theorem CategoryTheory.ExponentiableMorphism.ev_naturality + theorem CategoryTheory.ExponentiableMorphism.homEquiv_apply_eq + theorem CategoryTheory.ExponentiableMorphism.homEquiv_symm_apply_eq + def CategoryTheory.ExponentiableMorphism.id + theorem CategoryTheory.ExponentiableMorphism.id_pushforward + def CategoryTheory.ExponentiableMorphism.pushforwardComp + theorem CategoryTheory.ExponentiableMorphism.pushforwardComp_hom_counit + def CategoryTheory.ExponentiableMorphism.pushforwardCurry + def CategoryTheory.ExponentiableMorphism.pushforwardId + theorem CategoryTheory.ExponentiableMorphism.pushforwardId_hom_counit + def CategoryTheory.ExponentiableMorphism.pushforwardUncurry + theorem CategoryTheory.ExponentiableMorphism.pushforward_curry_uncurry + theorem CategoryTheory.ExponentiableMorphism.pushforward_uncurry_curry + theorem CategoryTheory.ExponentiableMorphism.unit_pushforwardComp_hom + theorem CategoryTheory.ExponentiableMorphism.unit_pushforwardId_hom 2026-01-02 17:00:43 7d40891 chore(Order/Defs/Unbundled): deprecate `IsSymm` in favor of core's `Std.Symm` (#33325) ESTIMATED CHANGES Modified Mathlib/Algebra/GroupWithZero/Associated.lean Modified Mathlib/Analysis/InnerProductSpace/Basic.lean Modified Mathlib/Analysis/Normed/Module/FiniteDimension.lean Modified Mathlib/Data/Finset/Pairwise.lean Modified Mathlib/Data/Fintype/Basic.lean Modified Mathlib/Data/List/Perm/Basic.lean Modified Mathlib/Data/Multiset/Count.lean +/- theorem Multiset.Rel.countP_eq Modified Mathlib/Data/Rel.lean Modified Mathlib/Data/Set/Pairwise/Basic.lean Modified Mathlib/Data/Set/Pairwise/List.lean +/- theorem List.Nodup.pairwise_coe Modified Mathlib/Data/Sigma/Lex.lean Modified Mathlib/GroupTheory/Perm/Support.lean Modified Mathlib/Logic/Pairwise.lean +/- theorem pairwise_fin_succ_iff_of_isSymm Modified Mathlib/ModelTheory/Equivalence.lean Modified Mathlib/Order/Antichain.lean +/- theorem IsStrongAntichain.swap Modified Mathlib/Order/Antisymmetrization.lean Modified Mathlib/Order/Basic.lean +/- theorem rel_imp_eq_of_rel_imp_le Modified Mathlib/Order/Comparable.lean Modified Mathlib/Order/Defs/Unbundled.lean +/- theorem comm +/- theorem comm_of +/- theorem rel_congr +/- theorem rel_congr_left +/- theorem rel_congr_right +/- theorem symm +/- theorem symm_of Modified Mathlib/Order/RelClasses.lean Modified Mathlib/Order/RelIso/Basic.lean Modified Mathlib/Order/RelIso/Set.lean Modified Mathlib/Order/WellFoundedSet.lean +/- theorem Set.partiallyWellOrderedOn_iff_finite_antichains Modified Mathlib/SetTheory/PGame/Basic.lean Modified Mathlib/SetTheory/PGame/Order.lean Modified Mathlib/Topology/NatEmbedding.lean 2026-01-02 15:12:57 5102018 chore(Topology/Algebra/Module/LinearMap): deprecate duplicate lemmas (#33341) Now that `range` and `ker` take in a `LinearMap` instead of a `LinearMapClass`, these lemmas are the same thing as the linear map versions. ESTIMATED CHANGES Modified Mathlib/Analysis/InnerProductSpace/Positive.lean Modified Mathlib/Analysis/InnerProductSpace/Projection/Basic.lean Modified Mathlib/Analysis/InnerProductSpace/Symmetric.lean - theorem ContinuousLinearMap.IsIdempotentElem.isSymmetric_iff_orthogonal_range Modified Mathlib/LinearAlgebra/Projection.lean + theorem LinearMap.IsIdempotentElem.ker_eq_range_one_sub + theorem LinearMap.IsIdempotentElem.range_eq_ker_one_sub Modified Mathlib/Topology/Algebra/Module/LinearMap.lean - theorem ContinuousLinearMap.IsIdempotentElem.ker_eq_range - theorem ContinuousLinearMap.IsIdempotentElem.range_eq_ker 2026-01-02 14:40:44 e09bd04 feat(Combinatorics/SimpleGraph/Acyclic): characterise maximal acyclic subgraphs (#32043) We characterise subgraphs `H ≤ G` which are maximal among acyclic subgraphs of `G` as those for which `H.Reachable = G.Reachable`. We also prove that if `x` and `y` are not reachable in `G`, then `G ⊔ fromEdgeSet {s(x,y)}` is acyclic iff `G` is. ESTIMATED CHANGES Modified Mathlib/Combinatorics/SimpleGraph/Acyclic.lean + theorem SimpleGraph.Connected.maximal_le_isAcyclic_iff_isTree + theorem SimpleGraph.isAcyclic_add_edge_iff_of_not_reachable + theorem SimpleGraph.maximal_isAcyclic_iff_isTree + theorem SimpleGraph.maximal_isAcyclic_iff_reachable_eq + theorem SimpleGraph.reachable_eq_of_maximal_isAcyclic Modified Mathlib/Combinatorics/SimpleGraph/Connectivity/Connected.lean + theorem SimpleGraph.preconnected_iff_reachable_eq_top 2026-01-02 14:04:32 e2a5951 feat: `stdPart x = sSup {r | r < x}` (#33007) ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Archimedean/Class.lean + theorem MulArchimedeanClass.min_le_mk_of_le_of_le + theorem MulArchimedeanClass.mk_le_mk_of_mabs Modified Mathlib/Algebra/Order/Ring/Archimedean.lean + theorem ArchimedeanClass.exists_int_ge_of_mk_nonneg + theorem ArchimedeanClass.exists_int_gt_of_mk_nonneg + theorem ArchimedeanClass.exists_int_le_of_mk_nonneg + theorem ArchimedeanClass.exists_int_lt_of_mk_nonneg + theorem ArchimedeanClass.exists_nat_ge_of_mk_nonneg + theorem ArchimedeanClass.exists_nat_gt_of_mk_nonneg + theorem ArchimedeanClass.mk_nonneg_of_le_of_le_of_archimedean Modified Mathlib/Algebra/Order/Ring/StandardPart.lean + theorem ArchimedeanClass.stdPart_eq + theorem ArchimedeanClass.stdPart_eq_sInf + theorem ArchimedeanClass.stdPart_eq_sSup Modified Mathlib/Data/Real/Archimedean.lean + theorem Real.sInf_neg + theorem Real.sSup_neg 2026-01-02 13:48:47 f668f45 feat: cardinality of Hahn series inverse (#32643) ESTIMATED CHANGES Modified Mathlib/RingTheory/HahnSeries/Addition.lean Modified Mathlib/RingTheory/HahnSeries/Basic.lean + theorem HahnSeries.coeff_order_eq_zero +/- theorem HahnSeries.coeff_order_ne_zero Modified Mathlib/RingTheory/HahnSeries/Cardinal.lean + theorem HahnSeries.cardSupp_div_le + theorem HahnSeries.cardSupp_hsum_le + theorem HahnSeries.cardSupp_hsum_powers_le + theorem HahnSeries.cardSupp_inv_le + theorem HahnSeries.cardSupp_mul_single_le + theorem HahnSeries.cardSupp_one + theorem HahnSeries.cardSupp_one_le + theorem HahnSeries.cardSupp_pow_le + theorem HahnSeries.cardSupp_single_mul_le Modified Mathlib/RingTheory/HahnSeries/Multiplication.lean + theorem HahnSeries.coeff_mul_single + theorem HahnSeries.coeff_single_mul Modified Mathlib/RingTheory/LaurentSeries.lean 2026-01-02 12:33:30 cd47994 feat(CategoryTheory/Sites): relation between `IsPrestack` and the full faithfulness of `toDescentData` (#33179) We show that a pseudofunctor `F` is a prestack iff the functors `F.toDescentData f` are fully faithful whenever `f` is a covering family. We also introduce predicates `F.IsPrestackFor R` and `F.IsStackFor R` (for a presieve `R`) saying the corresponding functor `F.DescentData (fun (f : R.category) ↦ f.obj.hom)` is fully faithful or an equivalence. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Comma/Over/Basic.lean + theorem CategoryTheory.Over.homMk_surjective + theorem CategoryTheory.Over.mk_surjective + theorem CategoryTheory.Under.homMk_surjective + theorem CategoryTheory.Under.mk_surjective Modified Mathlib/CategoryTheory/Functor/FullyFaithful.lean + theorem CategoryTheory.Functor.FullyFaithful.nonempty_iff_map_bijective + def CategoryTheory.Functor.FullyFaithful.ofIso Modified Mathlib/CategoryTheory/Sites/Descent/DescentData.lean + theorem CategoryTheory.Pseudofunctor.DescentData.exists_equivalence_of_sieve_eq + theorem CategoryTheory.Pseudofunctor.DescentData.isEquivalence_toDescentData_iff_of_sieve_eq + theorem CategoryTheory.Pseudofunctor.DescentData.nonempty_fullyFaithful_toDescentData_iff_of_sieve_eq + def CategoryTheory.Pseudofunctor.DescentData.subtypeCompatibleHomEquiv + theorem CategoryTheory.Pseudofunctor.DescentData.subtypeCompatibleHomEquiv_toCompatible_presheafHomObjHomEquiv + theorem CategoryTheory.Pseudofunctor.IsPrestack.of_isPrestackFor + theorem CategoryTheory.Pseudofunctor.IsPrestackFor.isSheafFor' + structure CategoryTheory.Pseudofunctor.IsPrestackFor + theorem CategoryTheory.Pseudofunctor.IsPrestackFor_generate_iff + theorem CategoryTheory.Pseudofunctor.IsStackFor.isPrestackFor + structure CategoryTheory.Pseudofunctor.IsStackFor + theorem CategoryTheory.Pseudofunctor.IsStackFor_generate_iff + theorem CategoryTheory.Pseudofunctor.bijective_toDescentData_map_iff + theorem CategoryTheory.Pseudofunctor.isPrestackFor' + theorem CategoryTheory.Pseudofunctor.isPrestackFor + theorem CategoryTheory.Pseudofunctor.isPrestackFor_iff_isSheafFor' + theorem CategoryTheory.Pseudofunctor.isPrestackFor_iff_isSheafFor + theorem CategoryTheory.Pseudofunctor.isPrestackFor_iff_of_sieve_eq + theorem CategoryTheory.Pseudofunctor.isPrestackFor_ofArrows_iff + theorem CategoryTheory.Pseudofunctor.isStackFor_iff_of_sieve_eq + theorem CategoryTheory.Pseudofunctor.isStackFor_ofArrows_iff Modified Mathlib/CategoryTheory/Sites/Descent/IsPrestack.lean + def CategoryTheory.Pseudofunctor.presheafHomObjHomEquiv 2026-01-02 10:26:02 4aa3a51 chore(CategoryTheory/Pi/Monoidal): monoidal `Functor.pi` and `Functor.pi'` (#33412) This PR improves characterization of the monoidal category structure on Pi categories in #33183 by showing that the functors to Pi categories obtained via universal properties of these categories (i.e `Functor.pi'`, and its sibling `Functor.pi`) are monoidal when applied to families of monoidal functors. We also show that the evaluation functors are monoidal/braided, and provide some `IsMonoidal` instances on natural transformations constructed using `NatTrans.pi` or `NatTrans.pi'`. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Pi/Monoidal.lean 2026-01-02 09:54:06 0f55315 chore(CategoryTheory): golf proofs (#33471) The goal of this golfing PR is to decrease the number of times lemmas are called explicitly (replacing calls to lemmas with calls to tactics). Any decrease in compilation time is a welcome side effect, although it is not a primary objective. Trace profiling results (shown if ≥10 ms before or after): * `CategoryTheory.iterated_mateEquiv_conjugateEquiv`: 327 ms before, 135 ms after 🎉 * `CategoryTheory.mateEquiv_conjugateEquiv_vcomp`: 406 ms before, 288 ms after 🎉 * `CategoryTheory.conjugateEquiv_mateEquiv_vcomp`: 417 ms before, 298 ms after 🎉 * `CategoryTheory.FinitaryPreExtensive.isPullback_sigmaDesc`: 543 ms before, 450 ms after 🎉 * `CategoryTheory.PreGaloisCategory.toAut_surjective_isGalois_finite_family`: 151 ms before, 134 ms after 🎉 * `CategoryTheory.Limits.preservesColimit_of_preservesCoequalizers_and_coproduct`: 307 ms before, 304 ms after 🎉 This golfing PR is batched under the following guidelines: * Up to ~5 changed files per PR * Up to ~25 changed declarations per PR * Up to ~100 changed lines per PR ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Adjunction/Mates.lean Modified Mathlib/CategoryTheory/Extensive.lean Modified Mathlib/CategoryTheory/Galois/IsFundamentalgroup.lean Modified Mathlib/CategoryTheory/Limits/Constructions/LimitsOfProductsAndEqualizers.lean 2026-01-02 09:38:49 8ea46df feat(CategoryTheory): computing Ext-groups using a projective resolution (#32816) This PR dualises #32105. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Abelian/Projective/Ext.lean + theorem CategoryTheory.ProjectiveResolution.add_extMk + theorem CategoryTheory.ProjectiveResolution.extEquivCohomologyClass_add + theorem CategoryTheory.ProjectiveResolution.extEquivCohomologyClass_extMk + theorem CategoryTheory.ProjectiveResolution.extEquivCohomologyClass_neg + theorem CategoryTheory.ProjectiveResolution.extEquivCohomologyClass_sub + theorem CategoryTheory.ProjectiveResolution.extEquivCohomologyClass_symm_add + theorem CategoryTheory.ProjectiveResolution.extEquivCohomologyClass_symm_mk_hom + theorem CategoryTheory.ProjectiveResolution.extEquivCohomologyClass_symm_neg + theorem CategoryTheory.ProjectiveResolution.extEquivCohomologyClass_symm_sub + theorem CategoryTheory.ProjectiveResolution.extEquivCohomologyClass_symm_zero + theorem CategoryTheory.ProjectiveResolution.extEquivCohomologyClass_zero + theorem CategoryTheory.ProjectiveResolution.extMk_eq_zero_iff + theorem CategoryTheory.ProjectiveResolution.extMk_surjective + theorem CategoryTheory.ProjectiveResolution.extMk_zero + theorem CategoryTheory.ProjectiveResolution.neg_extMk + theorem CategoryTheory.ProjectiveResolution.sub_extMk 2026-01-02 02:52:47 519f454 feat: a finite space is Baire. (#33300) ESTIMATED CHANGES Modified Mathlib/Topology/Baire/Lemmas.lean + theorem Set.Finite.dense_sInter + theorem baire_of_finite 2026-01-01 19:22:43 a8227f4 doc(CategoryTheory): a doc-string fix (#33457) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Monad/Products.lean 2026-01-01 18:05:41 98d019b feat(Algebra/Group/Equiv): `MulEquiv.funUnique` (#33453) This already exists for a bunch of other kinds of equivs. ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Equiv/Basic.lean + def MulEquiv.funUnique Modified Mathlib/LinearAlgebra/Pi.lean 2026-01-01 18:05:40 d3acd13 chore(RingTheory/Bialgebra/MonoidAlgebra): use `to_additive` (#33452) ESTIMATED CHANGES Modified Mathlib/RingTheory/Bialgebra/MonoidAlgebra.lean - theorem AddMonoidAlgebra.mapDomainBialgHom_comp - theorem AddMonoidAlgebra.mapDomainBialgHom_id - theorem AddMonoidAlgebra.mapDomainBialgHom_mapDomainBialgHom +/- theorem MonoidAlgebra.mapDomainBialgHom_id Modified Mathlib/RingTheory/HopfAlgebra/MonoidAlgebra.lean - theorem AddMonoidAlgebra.antipode_single 2026-01-01 16:53:34 3452ccc chore: adaptations for batteries#1489 (#31220) After [batteries#1489](https://github.com/leanprover-community/batteries/pull/1489) is merged: - [x] Edit the lakefile to point to leanprover-community/batteries:main - [x] Run lake update batteries - [x] Merge leanprover-community/mathlib4:master - [ ] Wait for CI and merge ESTIMATED CHANGES Modified Mathlib/Data/Array/Extract.lean - theorem Array.extract_append_left' - theorem Array.extract_append_right' - theorem Array.extract_eq_nil_of_start_eq_end - theorem Array.extract_eq_of_size_le_end Modified lake-manifest.json 2026-01-01 15:17:57 a7e757e chore: remove June 2025 deprecated declarations (#33429) The first commit is the result of running ```lean import Mathlib import Archive import Counterexamples #clear_deprecations "2025-06-01" "2025-06-30" really ``` For the two removed files in the second commit I argue that they effectively _were_ `deprecated_module`s on the same day as their last deprecation was added; they consist entirely of deprecated declarations more than 6 months old, so there is no need to add a module deprecation. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/BigOperators/Group/Finset/Basic.lean Modified Mathlib/Algebra/Category/Grp/ForgetCorepresentable.lean Modified Mathlib/Algebra/Category/MonCat/ForgetCorepresentable.lean Modified Mathlib/Algebra/Group/Irreducible/Defs.lean Modified Mathlib/Algebra/Group/Units/Defs.lean Deleted Mathlib/Algebra/GroupWithZero/Int.lean Modified Mathlib/Algebra/Module/Submodule/Map.lean Modified Mathlib/Algebra/Module/Submodule/Range.lean Modified Mathlib/Algebra/Order/Module/Rat.lean - theorem abs_qsmul Modified Mathlib/Algebra/Star/NonUnitalSubalgebra.lean Modified Mathlib/Analysis/Calculus/FDeriv/Add.lean Modified Mathlib/Analysis/Calculus/FDeriv/Basic.lean Modified Mathlib/Analysis/Calculus/FormalMultilinearSeries.lean Modified Mathlib/Analysis/Calculus/IteratedDeriv/Lemmas.lean Modified Mathlib/Analysis/Convex/Cone/Basic.lean Modified Mathlib/Analysis/InnerProductSpace/Defs.lean Modified Mathlib/Analysis/InnerProductSpace/PiL2.lean Modified Mathlib/Analysis/Normed/Lp/WithLp.lean - theorem WithLp.equiv_add - theorem WithLp.equiv_eq_zero_iff - theorem WithLp.equiv_neg - theorem WithLp.equiv_smul - theorem WithLp.equiv_sub - theorem WithLp.equiv_symm_add - theorem WithLp.equiv_symm_eq_zero_iff - theorem WithLp.equiv_symm_neg - theorem WithLp.equiv_symm_smul - theorem WithLp.equiv_symm_sub - theorem WithLp.equiv_symm_zero - theorem WithLp.equiv_zero Modified Mathlib/Analysis/Normed/Module/Basic.lean Modified Mathlib/Analysis/ODE/PicardLindelof.lean Modified Mathlib/CategoryTheory/Action/Monoidal.lean Modified Mathlib/CategoryTheory/Category/RelCat.lean - theorem CategoryTheory.RelCat.graphFunctor_map Modified Mathlib/CategoryTheory/Extensive.lean Modified Mathlib/CategoryTheory/Limits/Final.lean Modified Mathlib/CategoryTheory/Limits/IsConnected.lean Modified Mathlib/CategoryTheory/Limits/Shapes/DisjointCoproduct.lean Modified Mathlib/CategoryTheory/Limits/Shapes/End.lean Modified Mathlib/CategoryTheory/Limits/Shapes/SingleObj.lean Modified Mathlib/CategoryTheory/Limits/Types/Colimits.lean Modified Mathlib/CategoryTheory/Limits/Types/Filtered.lean Modified Mathlib/CategoryTheory/Monoidal/Action/Basic.lean Modified Mathlib/CategoryTheory/Monoidal/Braided/Basic.lean Modified Mathlib/CategoryTheory/Monoidal/Category.lean Modified Mathlib/CategoryTheory/Monoidal/CoherenceLemmas.lean Modified Mathlib/CategoryTheory/Monoidal/Functor.lean Modified Mathlib/CategoryTheory/Monoidal/Grp_.lean Modified Mathlib/CategoryTheory/Monoidal/Opposite.lean Modified Mathlib/Combinatorics/SimpleGraph/Matching.lean Modified Mathlib/Combinatorics/SimpleGraph/Walks/Traversal.lean Modified Mathlib/Control/Combinators.lean Modified Mathlib/Data/Finset/Basic.lean Modified Mathlib/Data/Finset/Sum.lean Modified Mathlib/Data/FunLike/Equiv.lean - theorem EquivLike.inv_apply_eq_iff_eq_apply Modified Mathlib/Data/NNRat/BigOperators.lean Modified Mathlib/Data/Nat/Init.lean Modified Mathlib/Data/Option/Defs.lean - theorem Option.merge_isAssociative - theorem Option.merge_isCommutative - theorem Option.merge_isId - theorem Option.merge_isIdempotent Modified Mathlib/Data/Set/Basic.lean - theorem Set.forall_in_swap - theorem Set.mem_def - theorem Set.setOf_app_iff - theorem Set.setOf_set Modified Mathlib/Data/Set/Monotone.lean Modified Mathlib/Data/Vector/Basic.lean Modified Mathlib/Data/Vector/Defs.lean - def List.Vector.append Modified Mathlib/Data/ZMod/Basic.lean Deleted Mathlib/Deprecated/RingHom.lean - theorem RingHom.codomain_trivial_iff_range_eq_singleton_zero Modified Mathlib/Geometry/Convex/Cone/Basic.lean - theorem ConvexCone.mem_bot Modified Mathlib/Geometry/Manifold/Diffeomorph.lean Modified Mathlib/GroupTheory/FreeAbelianGroup.lean Modified Mathlib/LinearAlgebra/AffineSpace/AffineEquiv.lean - theorem AffineEquiv.symm_linear - theorem AffineEquiv.symm_toEquiv Modified Mathlib/Logic/Equiv/Defs.lean - def Equiv.instFunLike Modified Mathlib/Logic/Equiv/Fin/Basic.lean - theorem subsingleton_fin_one - theorem subsingleton_fin_zero Modified Mathlib/MeasureTheory/Integral/Bochner/Basic.lean Modified Mathlib/MeasureTheory/MeasurableSpace/EventuallyMeasurable.lean Modified Mathlib/NumberTheory/Cyclotomic/Basic.lean Modified Mathlib/NumberTheory/Cyclotomic/Gal.lean Modified Mathlib/NumberTheory/Harmonic/GammaDeriv.lean Modified Mathlib/Order/Basic.lean - theorem eq_iff_not_lt_of_le Modified Mathlib/Order/CompleteBooleanAlgebra.lean - theorem Order.Frame.MinimalAxioms.Order.Coframe.MinimalAxioms.CompleteDistribLattice.MinimalAxioms.CompletelyDistribLattice.MinimalAxioms.iInf_sup_le_sup_sInf - theorem Order.Frame.MinimalAxioms.Order.Coframe.MinimalAxioms.CompleteDistribLattice.MinimalAxioms.CompletelyDistribLattice.MinimalAxioms.inf_sSup_le_iSup_inf Modified Mathlib/Order/Defs/PartialOrder.lean Modified Mathlib/Order/Filter/Basic.lean - theorem Filter.forall_in_swap Modified Mathlib/Order/Interval/Finset/Fin.lean Modified Mathlib/Order/SymmDiff.lean Modified Mathlib/Probability/Moments/Variance.lean Modified Mathlib/Probability/ProbabilityMassFunction/Basic.lean Modified Mathlib/RepresentationTheory/Homological/GroupCohomology/Basic.lean Modified Mathlib/RepresentationTheory/Homological/GroupCohomology/Functoriality.lean Modified Mathlib/RepresentationTheory/Homological/GroupCohomology/Hilbert90.lean Modified Mathlib/RepresentationTheory/Homological/GroupCohomology/LowDegree.lean Modified Mathlib/RepresentationTheory/Homological/GroupHomology/Basic.lean Modified Mathlib/RepresentationTheory/Homological/Resolution.lean - def groupCohomology.resolution.ofMulActionBasisAux Modified Mathlib/RepresentationTheory/Rep.lean - theorem Rep.diagonalHomEquiv_symm_partialProd_succ - theorem Rep.linearization_of Modified Mathlib/RingTheory/RingHom/Flat.lean Modified Mathlib/RingTheory/RootsOfUnity/AlgebraicallyClosed.lean Modified Mathlib/RingTheory/Trace/Basic.lean Modified Mathlib/Tactic/Linarith/Lemmas.lean - theorem le_zero_of_zero_ge - theorem lt_zero_of_zero_gt Modified Mathlib/Topology/Algebra/ContinuousAffineEquiv.lean - theorem ContinuousAffineEquiv.symm_toAffineEquiv - theorem ContinuousAffineEquiv.symm_toEquiv Modified Mathlib/Topology/Algebra/Module/Equiv.lean - theorem ContinuousLinearEquiv.symm_toHomeomorph Modified Mathlib/Topology/Constructions/SumProd.lean Modified Mathlib/Topology/ContinuousMap/Compact.lean Modified Mathlib/Topology/FiberBundle/Constructions.lean Modified Mathlib/Topology/Order/LeftRight.lean Modified Mathlib/Topology/UniformSpace/CompactConvergence.lean Modified Mathlib/Topology/VectorBundle/Hom.lean 2026-01-01 14:05:48 fa0ba71 chore(deps): bump the actions-version-updates group across 2 directories with 6 updates (#33456) Bumps the actions-version-updates group with 3 updates in the /.github directory: [actions/checkout](https://github.com/actions/checkout), [actions/upload-artifact](https://github.com/actions/upload-artifact) and [octokit/graphql-action](https://github.com/octokit/graphql-action). Bumps the actions-version-updates group with 6 updates in the /.github/workflows directory: | Package | From | To | | ESTIMATED CHANGES Modified .github/build.in.yml Modified .github/workflows/PR_summary.yml Modified .github/workflows/actionlint.yml Modified .github/workflows/add_label_from_diff.yaml Modified .github/workflows/auto_assign_reviewers.yaml Modified .github/workflows/bors.yml Modified .github/workflows/build.yml Modified .github/workflows/build_fork.yml Modified .github/workflows/check_pr_titles.yaml Modified .github/workflows/daily.yml Modified .github/workflows/discover-lean-pr-testing.yml Modified .github/workflows/docker_build.yml Modified .github/workflows/latest_import.yml Modified .github/workflows/long_file_report.yml Modified .github/workflows/maintainer_bors.yml Modified .github/workflows/maintainer_bors_wf_run.yml Modified .github/workflows/maintainer_merge.yml Modified .github/workflows/maintainer_merge_wf_run.yml Modified .github/workflows/nightly-docgen.yml Modified .github/workflows/nightly-regression-report.yml Modified .github/workflows/nightly_bump_toolchain.yml Modified .github/workflows/nightly_detect_failure.yml Modified .github/workflows/nightly_merge_master.yml Modified .github/workflows/nolints.yml Modified .github/workflows/pre-commit.yml Modified .github/workflows/remove_deprecated_decls.yml Modified .github/workflows/technical_debt_metrics.yml Modified .github/workflows/update_dependencies.yml Modified .github/workflows/update_dependencies_zulip.yml Modified .github/workflows/weekly-lints.yml Modified .github/workflows/zulip_emoji_closed_pr.yaml Modified .github/workflows/zulip_emoji_labelling.yaml Modified .github/workflows/zulip_emoji_merge_delegate.yaml 2026-01-01 06:06:06 3bdc704 chore(Analysis/SchwartzSpace): explicit variables for `derivCLM` and `fderivCLM` (#33415) The variables for the domain and codomain were implicit, but since the operators are bundled continuous linear maps, the typical convention is to make these variables explicit. ESTIMATED CHANGES Modified Mathlib/Analysis/Distribution/SchwartzSpace.lean +/- theorem SchwartzMap.derivCLM_apply +/- theorem SchwartzMap.fderivCLM_apply 2026-01-01 00:31:50 13fd9ce feat(Analysis/InnerProductSpace/Positive): `f.symm.IsPositive` iff `f.IsPositive` (#33352) ... for linear equivalence `f`. ESTIMATED CHANGES Modified Mathlib/Analysis/InnerProductSpace/Positive.lean + theorem LinearEquiv.isPositive_symm_iff + theorem LinearMap.IsPositive.toLinearMap_symm Modified Mathlib/Analysis/InnerProductSpace/Symmetric.lean + theorem LinearEquiv.isSymmetric_symm_iff + theorem LinearMap.IsSymmetric.toLinearMap_symm 2025-12-31 22:05:59 f6f4dd5 feat(Analysis/Complex/ExponentialBounds): `round e = 3` (#33440) Also adds `2 < e < 3` and `e⁻¹ < 1/2` that might be more easily applicable than the stronger approximations. ESTIMATED CHANGES Modified Mathlib/Analysis/Complex/ExponentialBounds.lean + theorem Real.ceil_exp_one_eq_three + theorem Real.exp_neg_one_lt_half + theorem Real.exp_one_gt_two + theorem Real.exp_one_lt_three + theorem Real.floor_exp_one_eq_two + theorem Real.round_exp_one_eq_three Modified Mathlib/Combinatorics/Additive/AP/Three/Behrend.lean 2025-12-31 22:05:57 8160e37 doc: explain `round` more clearly (#33430) The docstring previously a) gave an example which didn't type-check, and b) didn't specify if the behavior was round-to-even or otherwise. ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Round.lean 2025-12-31 22:05:55 51032b7 doc(Topology/Defs/Filter): mention "Kolmogorov quotient" in docstring (#33327) ESTIMATED CHANGES Modified Mathlib/Topology/Defs/Filter.lean 2025-12-31 21:45:13 28b5cb9 doc(MeasureTheory): fix file refs (#33428) Fix some stale file refs. Broken out of #33278 in order to make that PR focus on a single tricky case. ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Function/L2Space.lean Modified Mathlib/MeasureTheory/Integral/IntervalIntegral/FundThmCalculus.lean Modified Mathlib/MeasureTheory/Measure/Lebesgue/Integral.lean 2025-12-31 21:45:10 6e83d4b feat(Analysis/Deriv): Add `iteratedDeriv_comp_sub_const` (#33373) ESTIMATED CHANGES Modified Mathlib/Analysis/Calculus/IteratedDeriv/Lemmas.lean +/- theorem iteratedDeriv_comp_add_const +/- theorem iteratedDeriv_comp_const_add + theorem iteratedDeriv_comp_const_sub + theorem iteratedDeriv_comp_sub_const 2025-12-31 20:48:10 b624826 chore(Algebra/Order/Floor): review API about `round` (#33421) ESTIMATED CHANGES Modified Mathlib/Algebra/AddConstMap/Basic.lean Modified Mathlib/Algebra/Order/Archimedean/Basic.lean Modified Mathlib/Algebra/Order/Floor/Ring.lean + theorem Int.ceil_intCast_add + theorem Int.ceil_natCast_add + theorem Int.ceil_ofNat_add + theorem Int.ceil_one_add + theorem Int.mul_fract_eq_one_iff_exists_int Modified Mathlib/Algebra/Order/Round.lean + theorem round_eq_div + theorem round_eq_half_ceil_two_mul + theorem round_eq_iff +/- theorem round_neg_two_inv +/- theorem round_two_inv Modified Mathlib/Algebra/Order/ToIntervalMod.lean Modified Mathlib/Analysis/CStarAlgebra/ApproximateUnit.lean Modified Mathlib/Analysis/SpecialFunctions/Complex/Arctan.lean Modified Mathlib/Computability/AkraBazzi/GrowsPolynomially.lean Modified Mathlib/GroupTheory/Archimedean.lean Modified Mathlib/MeasureTheory/Integral/IntervalIntegral/Basic.lean Modified Mathlib/MeasureTheory/Integral/IntervalIntegral/DerivIntegrable.lean Modified Mathlib/NumberTheory/Transcendental/Liouville/Basic.lean Modified Mathlib/Order/Filter/AtTopBot/Archimedean.lean Modified Mathlib/Topology/Algebra/Order/Floor.lean Modified Mathlib/Topology/Instances/AddCircle/Defs.lean 2025-12-31 20:48:09 a56aa81 feat: Have equality form for `#t - #s` in addition to the inequality (#33419) ESTIMATED CHANGES Modified Mathlib/Data/Finset/Card.lean + theorem Finset.card_sub_card_eq +/- theorem Finset.le_card_sdiff 2025-12-31 20:48:07 957423a refactor(RingTheory/Ideal/Basic): clean up proofs (#33418) This PR cleans up `RingTheory/Ideal/Basic` by introducing some intermediate results `isField_iff_maximal_bot`, `exists_maximal_of_not_isField`, `not_isField_of_ne_of_ne`. ESTIMATED CHANGES Modified Mathlib/RingTheory/Ideal/Basic.lean +/- theorem Ideal.bot_lt_of_maximal + theorem Ring.exists_maximal_of_not_isField + theorem Ring.isField_iff_maximal_bot + theorem Ring.not_isField_of_ne_of_ne 2025-12-31 20:48:05 36ca3d9 feat(Analysis/InnerProductSpace): orthogonal decomposition as a `LinearIsometryEquiv` (#32927) ESTIMATED CHANGES Modified Mathlib/Analysis/InnerProductSpace/ProdL2.lean + theorem Submodule.coe_orthogonalDecomposition + theorem Submodule.coe_orthogonalDecomposition_symm + theorem Submodule.fstL_comp_coe_orthogonalDecomposition + theorem Submodule.fst_orthogonalDecomposition_apply + def Submodule.orthogonalDecomposition + theorem Submodule.orthogonalDecomposition_apply + theorem Submodule.sndL_comp_coe_orthogonalDecomposition + theorem Submodule.snd_orthogonalDecomposition_apply + theorem Submodule.toLinearEquiv_orthogonalDecomposition + theorem Submodule.toLinearEquiv_orthogonalDecomposition_symm Modified Mathlib/Analysis/InnerProductSpace/Projection/Submodule.lean + theorem Submodule.starProjection_apply_eq_isComplProjection Modified Mathlib/LinearAlgebra/Projection.lean + theorem Submodule.prodEquivOfIsCompl_symm_apply + theorem Submodule.toLinearMap_prodEquivOfIsCompl_symm 2025-12-31 18:19:34 7df6a0c feat: inner product of the gradient (#29877) Also, this PR enables the `conj` notation in the file. ESTIMATED CHANGES Modified Mathlib/Analysis/Calculus/Gradient/Basic.lean +/- theorem HasDerivAt.hasGradientAt + theorem HasGradientAt.fderiv_apply +/- theorem HasGradientAt.hasDerivAt + theorem HasGradientWithinAt.fderivWithin_apply +/- theorem gradient_eq_deriv + theorem inner_gradientWithin_left + theorem inner_gradientWithin_right + theorem inner_gradient_left + theorem inner_gradient_right 2025-12-31 17:57:54 cbb68dd feat(Analysis): `arctan (√3) = π / 3` and `arctan (√3)⁻¹ = π / 6` (#33438) ESTIMATED CHANGES Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Arctan.lean + theorem Real.arctan_inv_sqrt_three + theorem Real.arctan_sqrt_three 2025-12-31 17:34:00 350ded7 chore(Analysis/InnerProductSpace/Projection/Submodule): rename lemmas (#33337) ESTIMATED CHANGES Modified Mathlib/Analysis/InnerProductSpace/Positive.lean Modified Mathlib/Analysis/InnerProductSpace/Projection/Submodule.lean + theorem Submodule.orthogonalProjection_apply_eq_linearProjOfIsCompl - theorem Submodule.orthogonalProjection_coe_eq_linearProjOfIsCompl - theorem Submodule.orthogonalProjection_eq_linearProjOfIsCompl - theorem Submodule.starProjection_coe_eq_isCompl_projection + theorem Submodule.toLinearMap_orthogonalProjection_eq_linearProjOfIsCompl + theorem Submodule.toLinearMap_starProjection_eq_isComplProjection 2025-12-31 17:06:23 706f55f feat(Analysis/Complex/Trigonometric): `tan⁻¹ = cot` (#33244) ESTIMATED CHANGES Modified Mathlib/Analysis/Complex/Trigonometric.lean + theorem Complex.cot_inv_eq_tan + theorem Complex.tan_inv_eq_cot + theorem Real.cot_inv_eq_tan + theorem Real.tan_inv_eq_cot 2025-12-31 17:06:22 886d3a9 feat(Algebra/Lie/Extension): Lie Algebra isomorphism from 2-coboundary, 1-cochain from two splittings (#32896) This PR adds two basic constructions relating Lie algebra extensions to cohomology. ESTIMATED CHANGES Modified Mathlib/Algebra/Lie/Extension.lean + theorem LieAlgebra.Extension.d₁₂_oneCochainOfTwoSplitting + theorem LieAlgebra.Extension.ringModuleOf_bracket_proj + def LieAlgebra.LieEquiv.ofCoboundary +/- theorem LieAlgebra.isExtension_of_surjective 2025-12-31 16:50:27 b98025c feat(Analysis/Real/Pi/Bounds): `round π = 3` (#33333) ESTIMATED CHANGES Modified Mathlib/Analysis/Real/Pi/Bounds.lean + theorem Real.ceil_pi_eq_four + theorem Real.floor_pi_eq_three + theorem Real.round_pi_eq_three 2025-12-31 15:12:26 7c25e87 chore(CategoryTheory/Groupoid): replace `Groupoid.invFunctor` by `Groupoid.invEquivalence` (#33432) The inverse functor from a groupoid to its opposite is an equivalence of categories. We replace the current `Groupoid.invFunctor ` by `Groupoid.invEqualence` which records this fact. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Groupoid.lean + def CategoryTheory.Groupoid.invEquivalence + def CategoryTheory.Groupoid.invFunctor Modified Mathlib/CategoryTheory/Monoidal/Closed/FunctorCategory/Groupoid.lean 2025-12-31 14:26:30 c679099 fix(Tactic/Order): equal but not syntactically equal types (#32835) When collecting atoms, `order` relies only on syntactic equality of types. This PR replaces this with defeq check and adds a test that failed before. ESTIMATED CHANGES Modified Mathlib/Tactic/Order/CollectFacts.lean + def Mathlib.Tactic.Order.addType Modified MathlibTest/order.lean 2025-12-31 13:57:29 081e830 feat(LinearAlgebra): det/trace of image under algebra equivalence (#32671) And slightly generalize [AlgEquiv.eq_linearEquivConjAlgEquiv](https://leanprover-community.github.io/mathlib4_docs/Mathlib/LinearAlgebra/GeneralLinearGroup/AlgEquiv.html#AlgEquiv.eq_linearEquivConjAlgEquiv). ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/Determinant.lean + theorem LinearMap.det_map + theorem Matrix.det_map Modified Mathlib/LinearAlgebra/GeneralLinearGroup/AlgEquiv.lean Modified Mathlib/LinearAlgebra/Trace.lean + theorem LinearMap.trace_map + theorem Matrix.trace_map 2025-12-31 12:47:10 78ce485 feat: transfer `Coalgebra.IsCocomm` across an `Equiv` (#33139) ... and generalise the existing `tensorProductAssoc_def` to be about possibly several transferred instances. ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/TensorProduct/Associator.lean +/- theorem Equiv.tensorProductAssoc_def Modified Mathlib/LinearAlgebra/TensorProduct/Basic.lean + theorem Equiv.tensorProductComm_def Modified Mathlib/RingTheory/Coalgebra/Basic.lean + theorem Equiv.coalgebraIsCocomm 2025-12-31 11:40:02 8f418b8 ci: shorten bors timeout to 2 hours (#33427) cf. https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/slow.20linting.20step.20CI.3F/near/565580169 ESTIMATED CHANGES Modified bors.toml 2025-12-31 10:50:13 9782164 feat(Polynomial/Chebyshev): Differential equations for T and U (#33283) Added the defining differential equations for T and U. ESTIMATED CHANGES Modified Mathlib/RingTheory/Polynomial/Chebyshev.lean + theorem Polynomial.Chebyshev.T_eq_X_mul_U_sub_U + theorem Polynomial.Chebyshev.add_one_mul_self_mul_T_eq_poly_in_T + theorem Polynomial.Chebyshev.one_sub_X_sq_mul_derivative_derivative_T_eq_poly_in_T + theorem Polynomial.Chebyshev.one_sub_X_sq_mul_derivative_derivative_U_eq_poly_in_U 2025-12-31 09:42:48 80bcf28 chore(Order/WithBot): rename some theorems (#33413) ESTIMATED CHANGES Modified Mathlib/Order/WithBot.lean - theorem WithBot.ofDual_apply_bot + theorem WithBot.ofDual_bot + theorem WithBot.ofDual_symm - theorem WithBot.toDual_apply_bot + theorem WithBot.toDual_bot + theorem WithBot.toDual_symm 2025-12-31 08:52:51 503f425 chore: golf using `grind`. add `grind` annotations. (#33332) ESTIMATED CHANGES Modified Mathlib/Combinatorics/SimpleGraph/Connectivity/Connected.lean Modified Mathlib/Combinatorics/SimpleGraph/Walks/Basic.lean +/- theorem SimpleGraph.Walk.nil_nil Modified Mathlib/Data/Finset/Max.lean Modified Mathlib/Order/Interval/Set/UnorderedInterval.lean +/- theorem Set.uIoc_of_ge +/- theorem Set.uIoc_of_le 2025-12-31 06:46:43 d198f49 chore(Algebra/MonoidAlgebra): don't use hom classes when bundling `mapDomain` (#33137) ESTIMATED CHANGES Modified Mathlib/Algebra/MonoidAlgebra/Basic.lean +/- def MonoidAlgebra.mapDomainAlgHom +/- def MonoidAlgebra.mapDomainNonUnitalAlgHom 2025-12-31 06:46:41 52e2525 chore(RingTheory/FiniteType): move `MonoidAlgebra` lemmas earlier (#33099) ... and deduce them from a missing `Finsupp` lemma ESTIMATED CHANGES Modified Mathlib/Algebra/MonoidAlgebra/Module.lean +/- theorem AddMonoidAlgebra.liftNC_smul + theorem AddMonoidAlgebra.mem_closure_of_mem_span_closure + theorem AddMonoidAlgebra.of'_mem_span +/- theorem MonoidAlgebra.liftNC_smul + theorem MonoidAlgebra.mem_closure_of_mem_span_closure + theorem MonoidAlgebra.of_mem_span_of_iff +/- theorem MonoidAlgebra.smul_of Modified Mathlib/LinearAlgebra/Finsupp/Supported.lean + theorem Finsupp.single_mem_span_single Modified Mathlib/RingTheory/FiniteType.lean - theorem AddMonoidAlgebra.mem_closure_of_mem_span_closure - theorem AddMonoidAlgebra.of'_mem_span - theorem MonoidAlgebra.mem_closure_of_mem_span_closure - theorem MonoidAlgebra.of_mem_span_of_iff 2025-12-31 06:31:02 0aa176c feat: all root system bases arise via `IsAddIndecomposable.baseOf` (#33370) ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Irreducible/Indecomposable.lean + theorem Submonoid.apply_ne_one_of_mem_or_inv_mem_closure Modified Mathlib/LinearAlgebra/RootSystem/BaseExists.lean + theorem RootPairing.exists_dual_baseOf_eq 2025-12-31 03:01:09 6dc6d70 feat(Trigonometric/Chebyshev/RootsExtrema): compute roots and extrema of Chebyshev polynomials (#32970) We compute the roots of the Chebyshev T and U polynomials over the reals, as well as the extremal points of Chebyshev T on the interval [-1, 1]. In addition, we determine when Chebyshev T is bounded by 1 in absolute value. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/SpecialFunctions/Trigonometric/Chebyshev/RootsExtrema.lean + theorem Polynomial.Chebyshev.abs_eval_T_real_eq_one_iff + theorem Polynomial.Chebyshev.abs_eval_T_real_le_one + theorem Polynomial.Chebyshev.abs_eval_T_real_le_one_iff + theorem Polynomial.Chebyshev.eval_T_real_cos_int_mul_pi_div + theorem Polynomial.Chebyshev.eval_T_real_eq_neg_one_iff + theorem Polynomial.Chebyshev.eval_T_real_eq_one_iff + theorem Polynomial.Chebyshev.eval_T_real_mem_Icc + theorem Polynomial.Chebyshev.isExtrOn_T_real + theorem Polynomial.Chebyshev.isExtrOn_T_real_iff + theorem Polynomial.Chebyshev.isLocalExtr_T_real + theorem Polynomial.Chebyshev.isLocalExtr_T_real_iff + theorem Polynomial.Chebyshev.isLocalMax_T_real + theorem Polynomial.Chebyshev.isLocalMin_T_real + theorem Polynomial.Chebyshev.isMaxOn_T_real + theorem Polynomial.Chebyshev.isMinOn_T_real + theorem Polynomial.Chebyshev.one_le_abs_eval_T_real + theorem Polynomial.Chebyshev.one_le_eval_T_real + theorem Polynomial.Chebyshev.one_le_negOnePow_mul_eval_T_real + theorem Polynomial.Chebyshev.one_lt_abs_eval_T_real + theorem Polynomial.Chebyshev.one_lt_eval_T_real + theorem Polynomial.Chebyshev.one_lt_negOnePow_mul_eval_T_real + theorem Polynomial.Chebyshev.rootMultiplicity_T_real + theorem Polynomial.Chebyshev.rootMultiplicity_U_real + theorem Polynomial.Chebyshev.roots_T_real + theorem Polynomial.Chebyshev.roots_T_real_nodup + theorem Polynomial.Chebyshev.roots_U_real + theorem Polynomial.Chebyshev.roots_U_real_nodup Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Complex.lean + theorem Real.abs_cos_eq_one_iff + theorem Real.abs_sin_eq_one_iff 2025-12-31 01:22:22 efb5cfc feat(Fin): conversion lemmas between `Finset.Ixx` (#33127) This PR adds lemmas relating the various `Finset.Ixx` over `Fin n` when the endpoints differ by one. ESTIMATED CHANGES Modified Mathlib/Order/Interval/Finset/Fin.lean + theorem Fin.Icc_add_one_eq_Ioc + theorem Fin.Icc_sub_one_eq_Ico + theorem Fin.Ici_add_one_eq_Ioi + theorem Fin.Ico_add_one_eq_Icc + theorem Fin.Ico_add_one_eq_Ioo + theorem Fin.Iic_sub_one_eq_Iio + theorem Fin.Iio_add_one_eq_Iic + theorem Fin.Ioc_sub_one_eq_Icc + theorem Fin.Ioc_sub_one_eq_Ioo + theorem Fin.Ioi_sub_one_eq_Ici + theorem Fin.Ioo_add_one_eq_Ioc + theorem Fin.Ioo_sub_one_eq_Ico 2025-12-31 01:04:29 c8a8a81 feat(Algebra/Star/LinearMap): `LinearMap.intrinsicStar_{toSpanSingleton, smulRight}` (#33395) ESTIMATED CHANGES Modified Mathlib/Algebra/Star/LinearMap.lean + theorem LinearMap.IntrinsicStar.starLinearEquiv_eq_arrowCongr + theorem LinearMap.intrinsicStar_eq_comp + theorem LinearMap.intrinsicStar_smulRight + theorem LinearMap.intrinsicStar_toSpanSingleton 2025-12-30 23:53:01 f9bdda7 chore(Algebra/Group/Subgroup/Pointwise.lean): remove one hypothesis from `Subgroup.closure_pow_le` (#33401) Remove the hypothesis on `n` from `Subgroup.closure_pow_le` ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Subgroup/Pointwise.lean +/- theorem Subgroup.closure_pow_le 2025-12-30 23:53:00 2526a8d chore(Analysis/SchwartzSpace): add `fun_prop` tag (#33400) ESTIMATED CHANGES Modified Mathlib/Analysis/Distribution/SchwartzSpace.lean + theorem SchwartzMap.contDiffAt 2025-12-30 23:52:58 2ac9285 refactor(Geometry/Euclidean/Projection): revert everything back to metric space (#33385) After #27378 was merged, @jsm28 noted that `[NormedAddCommGroup V] [PseudoMetricSpace P] [NormedAddTorsor V P]` implies `[MetricSpace P]` anyways so there's no point distinguishing between `PseudoMetricSpace` and `MetricSpace`. ESTIMATED CHANGES Modified Mathlib/Geometry/Euclidean/Projection.lean 2025-12-30 23:52:55 c5daafe feat: weaken assumptions in Schwarz lemma (#33362) Assume that `f` maps an open ball to a closed ball. Also, generalize the "same radius" versions to any codomain. ESTIMATED CHANGES Modified Mathlib/Analysis/Complex/Schwarz.lean 2025-12-30 23:52:53 b6f08c0 feat(Analysis/Fourier): `L2` and `TemperedDistribution` Fourier transforms coincide (#33242) The Fourier transform on `L2` is defined via extension of the `SchwartzMap` Fourier transform and the Fourier transform on `TemperedDistribution` is defined via self-adjointness and every `L2` function defines a tempered distribution. We show that these definitions behave as expected and give the same notion of Fourier transform. ESTIMATED CHANGES Modified Mathlib/Analysis/Fourier/LpSpace.lean + theorem MeasureTheory.Lp.fourierInv_toTemperedDistribution_eq + theorem MeasureTheory.Lp.fourier_toTemperedDistribution_eq + theorem SchwartzMap.toLp_fourierInv_eq - theorem SchwartzMap.toLp_fourierTransformInv_eq - theorem SchwartzMap.toLp_fourierTransform_eq + theorem SchwartzMap.toLp_fourier_eq 2025-12-30 23:52:52 99a5a6f feat(Order/Monotone/Defs): weaken hypothesis of `injective_of_le_imp_le` (#33111) `injective_of_le_imp_le` requires `∀ x y, f x ≤ f y → x ≤ y`, but `∀ x y, f x = f y → x ≤ y` is sufficient. Also rename the weakened`injective_of_le_imp_le` to `Function.Injective.of_eq_imp_le` and `injective_of_lt_imp_ne` to `Function.Injective.of_lt_imp_ne` to allow for dot notation. ESTIMATED CHANGES Modified Archive/Imo/Imo1994Q1.lean Modified Archive/Wiedijk100Theorems/AscendingDescendingSequences.lean Modified Mathlib/Algebra/Prime/Lemmas.lean Modified Mathlib/Analysis/Convex/Basic.lean Modified Mathlib/Data/Finset/Powerset.lean Modified Mathlib/Order/Monotone/Defs.lean + theorem Function.Injective.of_eq_imp_le + theorem Function.Injective.of_lt_imp_ne - theorem injective_of_lt_imp_ne Modified Mathlib/RingTheory/Localization/Submodule.lean Modified Mathlib/Topology/ClopenBox.lean 2025-12-30 23:52:49 c6513d0 feat(Analysis/Normed/Operator): star-algebra equivalences between continuous endomorphisms are isometrically inner (#33066) This is the star-algebra equivalence version of [AlgEquiv.eq_linearEquivConjAlgEquiv](https://leanprover-community.github.io/mathlib4_docs/Mathlib/LinearAlgebra/GeneralLinearGroup/AlgEquiv.html#AlgEquiv.eq_linearEquivConjAlgEquiv) and [ContinuousAlgEquiv.eq_continuousLinearEquivConjContinuousAlgEquiv](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Analysis/Normed/Operator/ContinuousAlgEquiv.html#ContinuousAlgEquiv.eq_continuousLinearEquivConjContinuousAlgEquiv). So we now have a characterization of algebra, continuous algebra, and star-algebra equivalences between endomorphisms. The proof follows the same idea as the one in #28972. ESTIMATED CHANGES Modified Mathlib/Analysis/InnerProductSpace/Adjoint.lean + def LinearIsometryEquiv.conjStarAlgEquiv + theorem LinearIsometryEquiv.conjStarAlgEquiv_apply + theorem LinearIsometryEquiv.conjStarAlgEquiv_apply_apply + theorem LinearIsometryEquiv.conjStarAlgEquiv_refl + theorem LinearIsometryEquiv.conjStarAlgEquiv_trans + theorem LinearIsometryEquiv.symm_conjStarAlgEquiv + theorem LinearIsometryEquiv.symm_conjStarAlgEquiv_apply_apply Modified Mathlib/Analysis/Normed/Operator/ContinuousAlgEquiv.lean + theorem coe_auxContinuousLinearEquiv + theorem coe_auxIsometry + theorem coe_symm_auxIsometry Modified Mathlib/LinearAlgebra/GeneralLinearGroup/AlgEquiv.lean Modified Mathlib/Topology/Algebra/Algebra/Equiv.lean + theorem ContinuousAlgEquiv.coe_mk 2025-12-30 23:17:18 47ede36 feat: a few Int.floor/Int.fract lemmas (#33408) From sphere-eversion. ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Floor/Ring.lean + theorem Int.floor_lt_self_iff + theorem Int.fract_eq_zero_iff + theorem Int.fract_ne_zero_iff 2025-12-30 22:40:35 dc03377 feat: TopologicalSpace.prod_mono (#33407) From FLT. ESTIMATED CHANGES Modified Mathlib/Topology/Constructions/SumProd.lean + theorem TopologicalSpace.prod_mono 2025-12-30 20:35:42 3e3d4c7 feat: `UniformSpace.subset_countable_closure_of_almost_dense_set` (#32849) Add the new theorem `UniformSpace.subset_countable_closure_of_almost_dense_set` and golf the `PseudoEMetricSpace` version with it. Move some stuff around: - `IsSeparable.exists_countable_dense_subset` and `IsSeparable.separableSpace` are generalized to pseudometrizable spaces and moved to `Metrizable/Basic`. - `TotallyBounded.isSeparable` is moved to `UniformSpace/Cauchy` - `EMetric.subset_countable_closure_of_almost_dense_set` is moved to `EMetric/Basic` ESTIMATED CHANGES Modified Mathlib/Topology/EMetricSpace/Basic.lean + theorem EMetric.subset_countable_closure_of_almost_dense_set - theorem TopologicalSpace.IsSeparable.exists_countable_dense_subset - theorem TopologicalSpace.IsSeparable.separableSpace Modified Mathlib/Topology/EMetricSpace/Defs.lean - theorem EMetric.subset_countable_closure_of_almost_dense_set Modified Mathlib/Topology/MetricSpace/Pseudo/Basic.lean Modified Mathlib/Topology/Metrizable/Basic.lean + theorem TopologicalSpace.IsSeparable.exists_countable_dense_subset + theorem TopologicalSpace.IsSeparable.separableSpace Modified Mathlib/Topology/Metrizable/Uniformity.lean - theorem TotallyBounded.isSeparable Modified Mathlib/Topology/UniformSpace/Basic.lean Modified Mathlib/Topology/UniformSpace/Cauchy.lean + theorem TotallyBounded.isSeparable + theorem UniformSpace.secondCountable_of_almost_dense_set + theorem UniformSpace.subset_countable_closure_of_almost_dense_set 2025-12-30 18:05:10 9201998 feat: minimal covers and maximal separated sets (#33098) Define a minimal cover of a set by closed balls, and a maximal separated set. Use the maximal separated set to prove comparisons between covering and packing numbers. ESTIMATED CHANGES Modified Mathlib/Data/Set/Finite/Basic.lean Modified Mathlib/Topology/MetricSpace/CoveringNumbers.lean + theorem Metric.coveringNumber_le_packingNumber + theorem Metric.coveringNumber_subset_le + theorem Metric.coveringNumber_two_mul_le_externalCoveringNumber + theorem Metric.encard_le_of_isSeparated + theorem Metric.encard_maximalSeparatedSet + theorem Metric.encard_minimalCover + theorem Metric.exists_set_encard_eq_coveringNumber + theorem Metric.exists_set_encard_eq_packingNumber + theorem Metric.finite_minimalCover + theorem Metric.isCover_maximalSeparatedSet + theorem Metric.isCover_minimalCover + theorem Metric.isSeparated_maximalSeparatedSet + def Metric.maximalSeparatedSet + theorem Metric.maximalSeparatedSet_subset + def Metric.minimalCover + theorem Metric.minimalCover_subset Modified Mathlib/Topology/MetricSpace/MetricSeparated.lean 2025-12-30 18:05:09 7e22bd7 feat(Analysis/TemperedDistribution): multiplication with temperate growth functions (#32769) The multiplication with a temperate growth function as a continuous linear map on tempered distributions. ESTIMATED CHANGES Modified Mathlib/Analysis/Distribution/SchwartzSpace.lean + def SchwartzMap.smulLeftCLM + theorem SchwartzMap.smulLeftCLM_apply_apply + theorem SchwartzMap.smulLeftCLM_compL_smulLeftCLM + theorem SchwartzMap.smulLeftCLM_const + theorem SchwartzMap.smulLeftCLM_smulLeftCLM_apply Modified Mathlib/Analysis/Distribution/TemperedDistribution.lean + def TemperedDistribution.smulLeftCLM + theorem TemperedDistribution.smulLeftCLM_apply_apply + theorem TemperedDistribution.smulLeftCLM_compL_smulLeftCLM + theorem TemperedDistribution.smulLeftCLM_const + theorem TemperedDistribution.smulLeftCLM_smulLeftCLM_apply Modified docs/undergrad.yaml 2025-12-30 17:10:44 3ff1a9d feat: hasDetPlusMinusOne_iff_abs_det (#33356) This seems like a useful characterization. ESTIMATED CHANGES Modified Mathlib/Algebra/Ring/Units.lean + theorem Units.val_eq_neg_one Modified Mathlib/NumberTheory/ModularForms/ArithmeticSubgroups.lean + theorem Subgroup.hasDetPlusMinusOne_iff_abs_det 2025-12-30 14:22:53 473b574 doc(Algebra/Order/ArchimedeanClass): mention "commensurate" in docstring (#33346) This is the word Conway uses in his work on surreal numbers. ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Archimedean/Class.lean 2025-12-30 13:16:32 6fffa27 feat: linear independence of indecomposable roots of a root system (#33321) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Group/Hom/Basic.lean + theorem invMonoidHom_comp_invMonoidHom Modified Mathlib/Algebra/Group/Irreducible/Indecomposable.lean + def IsMulIndecomposable.baseOf + theorem IsMulIndecomposable.baseOf_subset_one_lt + theorem IsMulIndecomposable.image_baseOf_inv_comp_eq + theorem IsMulIndecomposable.mem_or_inv_mem_closure_baseOf + theorem IsMulIndecomposable.pairwise_baseOf_div_notMem + theorem IsMulIndecomposable.pairwise_div_notMem_range' + theorem IsMulIndecomposable.pairwise_div_notMem_range + theorem Subgroup.closure_image_isMulIndecomposable_baseOf + theorem Submonoid.closure_image_isMulIndecomposable_baseOf - theorem Submonoid.closure_image_one_lt_and_isMulIndecomposable Added Mathlib/LinearAlgebra/RootSystem/BaseExists.lean + theorem RootPairing.baseOf_pairwise_pairing_le_zero + theorem RootPairing.linearIndepOn_root_baseOf' + theorem RootPairing.linearIndepOn_root_baseOf Modified Mathlib/LinearAlgebra/RootSystem/IsValuedIn.lean + theorem RootPairing.algebraMap_pairingIn' Modified Mathlib/LinearAlgebra/RootSystem/RootPositive.lean + theorem RootPairing.RootPositiveForm.posForm_apply_root_root_le_zero_iff 2025-12-30 12:44:52 6b1d5f0 doc(Order/IsNormal): remove outdated todo (#33317) ESTIMATED CHANGES Modified Mathlib/Order/IsNormal.lean 2025-12-30 11:32:25 d131f09 feat(AddRelatedDecl): define `optAttrArg` syntax and use it (#33156) This PR gives a name to the often used `(attr := ...)` syntax, cleaning up the code ESTIMATED CHANGES Modified Mathlib/Order/Defs/Unbundled.lean Modified Mathlib/Tactic/CategoryTheory/Elementwise.lean Modified Mathlib/Tactic/CategoryTheory/Reassoc.lean Modified Mathlib/Tactic/CategoryTheory/ToApp.lean Modified Mathlib/Tactic/Simps/Basic.lean Modified Mathlib/Tactic/ToFun.lean Modified Mathlib/Util/AddRelatedDecl.lean + def Mathlib.Tactic.elabOptAttrArg 2025-12-30 09:36:10 326f171 chore(Analysis/SchwartzMap): use positivity and stylistic improvements (#33399) ESTIMATED CHANGES Modified Mathlib/Analysis/Distribution/SchwartzSpace.lean 2025-12-30 08:56:20 e0c45da doc(Algebra/Polynomial/Factors): update `Polynomial.Splits` docstring (#33396) ESTIMATED CHANGES Modified Mathlib/Algebra/Polynomial/Factors.lean 2025-12-30 07:23:51 73ef6d9 fix(CategoryTheory/Basic): fix `cat_disch` in grind mode when `ext` leaves multiple goals (#33391) Currently, when `grind` is used as a discharger for category-theory through the option `mathlib.tactic.category.grind`, the `ext` tactic is tried before calling grind, but the calls are made sequentially as `(try ext); grind`. As a result, if `ext` leaves more than one open goal, the `grind` call will only act on the first goal, and will not act on the other goals even if it could have solved them. Here is an example: ```lean import Mathlib.CategoryTheory.Square open CategoryTheory variable {C : Type*} [Category* C] {S₁ S₂ : Square C} (f g : S₁ ⟶ S₂) (h₁ : f.τ₁ = g.τ₁) (h₂ : f.τ₂ = g.τ₂) (h₃ : f.τ₃ = g.τ₃) (h₄ : f.τ₄ = g.τ₄) example : f = g := by cat_disch -- works attribute [local grind ext] Square.hom_ext in example : f = g := by grind -- also works set_option mathlib.tactic.category.grind true in example : f = g := by cat_disch -- fails, leaves 3 goals open ``` This is fixed by adding a `<;>` to the sequence of tactic called by `cat_disch`. After this, `cat_disch` works as expected in these situations. In the long run, this `ext` call will probably be removed as `grind ext` annotations will tell grind what ext lemmas to use and essentially achieve the same result. However, the category-theory side of the library does not have enough `grind ext` annotations to make this a reality yet, so for the time being, leaving this `(try ext) <;>` is probably the best until we have fully annotated the library. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Category/Basic.lean 2025-12-29 23:21:35 1a6e4fd feat: Real.{ball_zero_eq_Ioo,closedBall_zero_eq_Icc} (#33344) For convenience. The names are consistent with NNReal.{ball_zero_eq_Ico,closedBall_zero_eq_Icc}. From sphere-eversion. ESTIMATED CHANGES Modified Mathlib/Topology/MetricSpace/Pseudo/Defs.lean + theorem Real.ball_zero_eq_Ioo + theorem Real.closedBall_zero_eq_Icc 2025-12-29 17:24:37 69fc004 feat(NumberTheory/NumberField/Ideal/Basic): maximal ideals have finite quotient (#33213) This PR adds an instance stating that maximal ideals in `𝓞 K` have finite quotient. ESTIMATED CHANGES Modified Mathlib/NumberTheory/NumberField/Ideal/Basic.lean 2025-12-29 16:56:33 63afe10 chore(Analysis/InnerProductSpace/Rayleigh): clean up and fix a non-terminal simp (#33376) ESTIMATED CHANGES Modified Mathlib/Analysis/InnerProductSpace/Rayleigh.lean + theorem ContinuousLinearMap.rayleighQuotient_add 2025-12-29 14:28:45 cfceff4 feat: `ArchimedeanClass.mk_div` (#33345) ...and while we're at it, we remove some `set_option`s ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Ring/Archimedean.lean + theorem ArchimedeanClass.mk_div 2025-12-29 14:28:43 7edc8dd feat: more lemmas on `ArchimedeanClass.stdPart` (#33343) Upstreamed from the CGT repo. ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Ring/StandardPart.lean - theorem ArchimedeanClass.FiniteResidueField.ordConnected_preimage_mk' + theorem ArchimedeanClass.stdPart_nonneg + theorem ArchimedeanClass.stdPart_nonpos 2025-12-29 14:28:42 57bd265 feat(Algebra/Order/BigOperators/Group): criterion for `m.card ≤ m.toFinset.card + 1` (#32771) Given a multiset `m`, this PR gives a criterion for `m.card ≤ m.toFinset.card + 1` (note that we always have the inequality `m.toFinset.card ≤ m.card`). ESTIMATED CHANGES Modified Mathlib/Algebra/Order/BigOperators/Group/Finset.lean + theorem Finset.sum_le_one_iff + theorem Multiset.card_le_card_toFinset_add_one_iff 2025-12-29 13:42:11 e7c9f11 feat(Algebra/Order/AddGroupWithTop): more monotonicity/injectivity lemmas (#33349) We also deprecate some `injective_foo` lemmas in favor of `foo_injective` counterparts, as per the naming conventions. ESTIMATED CHANGES Modified Mathlib/Algebra/Order/AddGroupWithTop.lean + theorem LinearOrderedAddCommGroupWithTop.add_le_add_iff_left_of_ne_top + theorem LinearOrderedAddCommGroupWithTop.add_le_add_iff_right_of_ne_top + theorem LinearOrderedAddCommGroupWithTop.add_left_inj_of_ne_top + theorem LinearOrderedAddCommGroupWithTop.add_left_injective_of_ne_top + theorem LinearOrderedAddCommGroupWithTop.add_left_strictMono_of_ne_top + theorem LinearOrderedAddCommGroupWithTop.add_lt_add_iff_left_of_ne_top + theorem LinearOrderedAddCommGroupWithTop.add_lt_add_iff_right_of_ne_top + theorem LinearOrderedAddCommGroupWithTop.add_right_inj_of_ne_top + theorem LinearOrderedAddCommGroupWithTop.add_right_injective_of_ne_top + theorem LinearOrderedAddCommGroupWithTop.add_right_strictMono_of_ne_top - theorem LinearOrderedAddCommGroupWithTop.injective_add_left_of_ne_top - theorem LinearOrderedAddCommGroupWithTop.injective_add_right_of_ne_top - theorem LinearOrderedAddCommGroupWithTop.strictMono_add_left_of_ne_top - theorem LinearOrderedAddCommGroupWithTop.strictMono_add_right_of_ne_top + theorem LinearOrderedAddCommGroupWithTop.sub_le_sub_iff_left_of_ne_top + theorem LinearOrderedAddCommGroupWithTop.sub_left_inj_of_ne_top + theorem LinearOrderedAddCommGroupWithTop.sub_left_injective_of_ne_top + theorem LinearOrderedAddCommGroupWithTop.sub_left_strictMono_of_ne_top + theorem LinearOrderedAddCommGroupWithTop.sub_lt_sub_iff_left_of_ne_top +/- theorem LinearOrderedAddCommGroupWithTop.sub_pos + theorem LinearOrderedAddCommGroupWithTop.sub_right_inj_of_ne_top + theorem LinearOrderedAddCommGroupWithTop.sub_right_injective_of_ne_top 2025-12-29 11:43:16 f1a5ef6 chore: Fix quaternion group docstring (#33366) ESTIMATED CHANGES Modified Mathlib/GroupTheory/SpecificGroups/Quaternion.lean 2025-12-29 09:01:06 f65bc60 feat(GroupTheory): add `Subgroup.le_zpowers_iff` (#33125) Adds an instance: ```lean instance Subgroup.isCyclic_zpowers [Group G] (g : G) : IsCyclic (Subgroup.zpowers g) ``` and a lemma characterizing the subgroups of a cyclic subgroup: ```lean theorem Subgroup.le_zpowers_iff (g : G) (H : Subgroup G) : H ≤ Subgroup.zpowers g ↔ ∃ n : ℕ, H = Subgroup.zpowers (g ^ n) ``` ESTIMATED CHANGES Modified Mathlib/GroupTheory/SpecificGroups/Cyclic.lean + theorem Subgroup.le_zpowers_iff 2025-12-29 05:13:03 725c803 chore: remove June 2025 deprecated modules (#33367) ESTIMATED CHANGES Modified Mathlib.lean Deleted Mathlib/Algebra/GeomSum.lean Deleted Mathlib/Algebra/Ring/Hom/Basic.lean Deleted Mathlib/CategoryTheory/Monoidal/ExternalProduct.lean Deleted Mathlib/Combinatorics/SimpleGraph/Path.lean Modified Mathlib/LinearAlgebra/PerfectPairing/Matrix.lean Deleted Mathlib/NumberTheory/NumberField/Ideal.lean Deleted Mathlib/Order/BooleanAlgebra.lean Deleted Mathlib/RepresentationTheory/GroupCohomology/Basic.lean Deleted Mathlib/RepresentationTheory/GroupCohomology/Functoriality.lean Deleted Mathlib/RepresentationTheory/GroupCohomology/Hilbert90.lean Deleted Mathlib/RepresentationTheory/GroupCohomology/LowDegree.lean Deleted Mathlib/RepresentationTheory/GroupCohomology/Resolution.lean Modified Mathlib/Tactic.lean Deleted Mathlib/Tactic/ExtractLets.lean Deleted Mathlib/Tactic/FunProp/ContDiff.lean Deleted Mathlib/Tactic/FunProp/Differentiable.lean Deleted Mathlib/Tactic/LiftLets.lean Deleted Mathlib/Topology/Algebra/RestrictedProduct.lean Deleted Mathlib/Topology/Compactification/OnePoint.lean Deleted Mathlib/Topology/Compactification/OnePointEquiv.lean Deleted Mathlib/Topology/StoneCech.lean 2025-12-29 03:44:16 1448aee chore: remove May 2025 deprecated declarations (#33014) The first commit, like #32990, was done by script: ```lean import Mathlib import Archive import Counterexamples #clear_deprecations "2025-05-01" "2025-05-31" really ``` ESTIMATED CHANGES Modified Archive/Imo/Imo2015Q6.lean Modified Archive/Imo/Imo2019Q2.lean Modified Archive/Imo/Imo2024Q5.lean Modified Counterexamples/CliffordAlgebraNotInjective.lean Modified Mathlib/Algebra/Algebra/Spectrum/Basic.lean Modified Mathlib/Algebra/BigOperators/Finprod.lean Modified Mathlib/Algebra/BigOperators/Finsupp/Basic.lean Modified Mathlib/Algebra/BigOperators/Group/Finset/Basic.lean Modified Mathlib/Algebra/BigOperators/Group/Finset/Piecewise.lean Modified Mathlib/Algebra/Category/AlgCat/Basic.lean - def AlgCat.ofSelfIso Modified Mathlib/Algebra/Category/Grp/CartesianMonoidal.lean Modified Mathlib/Algebra/Category/Grp/ForgetCorepresentable.lean - def AddMonoidHom.fromIntEquiv - def AddMonoidHom.fromULiftIntEquiv - def MonoidHom.fromMultiplicativeIntEquiv - def MonoidHom.fromULiftMultiplicativeIntEquiv Modified Mathlib/Algebra/Category/ModuleCat/Basic.lean - def ModuleCat.ofSelfIso Modified Mathlib/Algebra/Category/ModuleCat/Semi.lean - def SemimoduleCat.ofSelfIso Modified Mathlib/Algebra/Category/MonCat/ForgetCorepresentable.lean - def AddMonoidHom.fromNatEquiv - def AddMonoidHom.fromULiftNatEquiv - def MonoidHom.fromMultiplicativeNatEquiv - def MonoidHom.fromULiftMultiplicativeNatEquiv Modified Mathlib/Algebra/DirectSum/Basic.lean Modified Mathlib/Algebra/Field/Subfield/Basic.lean Modified Mathlib/Algebra/Free.lean - theorem FreeMagma.mul_map_seq - theorem FreeSemigroup.mul_map_seq Modified Mathlib/Algebra/FreeAbelianGroup/Finsupp.lean Modified Mathlib/Algebra/FreeMonoid/Basic.lean Modified Mathlib/Algebra/Group/Indicator.lean Modified Mathlib/Algebra/Group/Pointwise/Finset/Basic.lean Modified Mathlib/Algebra/Group/Pointwise/Set/Basic.lean Modified Mathlib/Algebra/Group/Subgroup/Lattice.lean Modified Mathlib/Algebra/Group/Submonoid/Basic.lean Modified Mathlib/Algebra/Group/Subsemigroup/Basic.lean Modified Mathlib/Algebra/Group/Subsemigroup/Defs.lean Modified Mathlib/Algebra/GroupWithZero/Indicator.lean Modified Mathlib/Algebra/GroupWithZero/Int.lean - theorem WithZero.ofAdd_neg_one_pow_comm - theorem WithZero.ofAdd_zpow Modified Mathlib/Algebra/GroupWithZero/NonZeroDivisors.lean Modified Mathlib/Algebra/Homology/Embedding/Basic.lean Modified Mathlib/Algebra/Homology/Embedding/Boundary.lean Modified Mathlib/Algebra/Homology/ShortComplex/ModuleCat.lean Modified Mathlib/Algebra/Lie/Classical.lean Modified Mathlib/Algebra/Module/Submodule/Basic.lean Modified Mathlib/Algebra/Module/ZLattice/Basic.lean Modified Mathlib/Algebra/MvPolynomial/Basic.lean Modified Mathlib/Algebra/MvPolynomial/PDeriv.lean Modified Mathlib/Algebra/MvPolynomial/Variables.lean Modified Mathlib/Algebra/Notation/Indicator.lean Modified Mathlib/Algebra/Notation/Support.lean Modified Mathlib/Algebra/Order/BigOperators/Group/LocallyFinite.lean Modified Mathlib/Algebra/Order/Floor/Ring.lean Modified Mathlib/Algebra/Order/Monoid/Canonical/Defs.lean Modified Mathlib/Algebra/Order/Nonneg/Basic.lean Modified Mathlib/Algebra/Order/ToIntervalMod.lean Modified Mathlib/Algebra/Polynomial/AlgebraMap.lean Modified Mathlib/Algebra/Polynomial/Basic.lean Modified Mathlib/Algebra/Polynomial/Degree/Operations.lean Modified Mathlib/Algebra/Polynomial/EraseLead.lean Modified Mathlib/Algebra/Ring/Subring/Basic.lean Modified Mathlib/Algebra/Ring/Subsemiring/Basic.lean Modified Mathlib/Algebra/SkewMonoidAlgebra/Basic.lean Modified Mathlib/AlgebraicGeometry/EllipticCurve/DivisionPolynomial/Basic.lean Modified Mathlib/AlgebraicGeometry/GammaSpecAdjunction.lean Modified Mathlib/AlgebraicGeometry/IdealSheaf/Basic.lean Modified Mathlib/AlgebraicGeometry/Morphisms/ClosedImmersion.lean Modified Mathlib/AlgebraicGeometry/Morphisms/FormallyUnramified.lean Modified Mathlib/AlgebraicGeometry/ProjectiveSpectrum/Scheme.lean Modified Mathlib/AlgebraicGeometry/ProjectiveSpectrum/Topology.lean Modified Mathlib/AlgebraicGeometry/ResidueField.lean Modified Mathlib/AlgebraicTopology/SimplicialSet/Degenerate.lean Modified Mathlib/Analysis/Analytic/Order.lean Modified Mathlib/Analysis/BoxIntegral/Partition/Basic.lean Modified Mathlib/Analysis/BoxIntegral/Partition/Split.lean Modified Mathlib/Analysis/CStarAlgebra/Matrix.lean - theorem Matrix.piLp_equiv_toEuclideanCLM - theorem Matrix.toEuclideanCLM_piLp_equiv_symm Modified Mathlib/Analysis/Calculus/BumpFunction/FiniteDimension.lean Modified Mathlib/Analysis/Calculus/DSlope.lean Modified Mathlib/Analysis/Calculus/Deriv/Basic.lean Modified Mathlib/Analysis/Calculus/FDeriv/Basic.lean Modified Mathlib/Analysis/Calculus/FDeriv/Congr.lean Modified Mathlib/Analysis/Calculus/FDeriv/Const.lean Modified Mathlib/Analysis/Calculus/FDeriv/WithLp.lean - theorem PiLp.hasFDerivAt_equiv - theorem PiLp.hasFDerivAt_equiv_symm - theorem PiLp.hasStrictFDerivAt_equiv - theorem PiLp.hasStrictFDerivAt_equiv_symm Modified Mathlib/Analysis/Complex/Basic.lean Modified Mathlib/Analysis/Complex/CauchyIntegral.lean Modified Mathlib/Analysis/Convex/Cone/InnerDual.lean Modified Mathlib/Analysis/Convex/Gauge.lean Modified Mathlib/Analysis/Convex/Hull.lean Modified Mathlib/Analysis/Convex/Independent.lean Modified Mathlib/Analysis/Convex/Side.lean Modified Mathlib/Analysis/Convex/SimplicialComplex/Basic.lean Modified Mathlib/Analysis/Fourier/AddCircleMulti.lean Modified Mathlib/Analysis/Matrix/Order.lean Modified Mathlib/Analysis/Meromorphic/Basic.lean Modified Mathlib/Analysis/Meromorphic/FactorizedRational.lean Modified Mathlib/Analysis/Meromorphic/NormalForm.lean Modified Mathlib/Analysis/Meromorphic/Order.lean Modified Mathlib/Analysis/Normed/Module/ENormedSpace.lean - theorem ENormedSpace.coeFn_injective - theorem ENormedSpace.coe_inj - theorem ENormedSpace.coe_max - theorem ENormedSpace.eq_zero_iff - theorem ENormedSpace.ext - def ENormedSpace.finiteSubspace - theorem ENormedSpace.finite_dist_eq - theorem ENormedSpace.finite_edist_eq - theorem ENormedSpace.finite_norm_eq - theorem ENormedSpace.map_add_le - theorem ENormedSpace.map_neg - theorem ENormedSpace.map_smul - theorem ENormedSpace.map_sub_le - theorem ENormedSpace.map_sub_rev - theorem ENormedSpace.map_zero - theorem ENormedSpace.max_map - theorem ENormedSpace.top_map - structure ENormedSpace Modified Mathlib/Analysis/Oscillation.lean Modified Mathlib/Analysis/RCLike/Basic.lean Modified Mathlib/Analysis/SpecialFunctions/Complex/CircleMap.lean Modified Mathlib/Analysis/SpecialFunctions/Complex/LogBounds.lean Modified Mathlib/Analysis/SpecialFunctions/ContinuousFunctionalCalculus/Rpow/Basic.lean Modified Mathlib/Analysis/SpecialFunctions/MulExpNegMulSqIntegral.lean Modified Mathlib/CategoryTheory/Limits/IsLimit.lean Modified Mathlib/CategoryTheory/Limits/Shapes/BinaryProducts.lean Modified Mathlib/CategoryTheory/Monoidal/Cartesian/Basic.lean Modified Mathlib/CategoryTheory/Monoidal/Cartesian/Comon_.lean Modified Mathlib/CategoryTheory/Monoidal/Cartesian/Over.lean Modified Mathlib/CategoryTheory/Monoidal/Closed/Ideal.lean Modified Mathlib/CategoryTheory/MorphismProperty/Limits.lean Modified Mathlib/Combinatorics/Matroid/Circuit.lean Modified Mathlib/Combinatorics/Matroid/Closure.lean Modified Mathlib/Combinatorics/Matroid/Loop.lean Modified Mathlib/Combinatorics/Matroid/Minor/Delete.lean Modified Mathlib/Combinatorics/Matroid/Rank/ENat.lean Modified Mathlib/Combinatorics/Schnirelmann.lean Modified Mathlib/Combinatorics/SetFamily/AhlswedeZhang.lean Modified Mathlib/Combinatorics/SetFamily/Compression/UV.lean Modified Mathlib/Combinatorics/SetFamily/Intersecting.lean Modified Mathlib/Combinatorics/SimpleGraph/Basic.lean Modified Mathlib/Combinatorics/SimpleGraph/Clique.lean Modified Mathlib/Combinatorics/SimpleGraph/Connectivity/Represents.lean Modified Mathlib/Combinatorics/SimpleGraph/Connectivity/WalkDecomp.lean Modified Mathlib/Combinatorics/SimpleGraph/DeleteEdges.lean Modified Mathlib/Combinatorics/SimpleGraph/Ends/Defs.lean Modified Mathlib/Combinatorics/SimpleGraph/Finite.lean Modified Mathlib/Combinatorics/SimpleGraph/IncMatrix.lean Modified Mathlib/Combinatorics/SimpleGraph/LapMatrix.lean - theorem SimpleGraph.lapMatrix_toLin'_apply_eq_zero_iff_forall_adj - theorem SimpleGraph.lapMatrix_toLin'_apply_eq_zero_iff_forall_reachable Modified Mathlib/Combinatorics/SimpleGraph/Paths.lean Modified Mathlib/Combinatorics/SimpleGraph/Prod.lean Modified Mathlib/Combinatorics/Young/YoungDiagram.lean Modified Mathlib/Computability/Language.lean Modified Mathlib/Computability/PartrecCode.lean Modified Mathlib/Control/Functor.lean - def id.mk Modified Mathlib/Data/DFinsupp/Defs.lean Modified Mathlib/Data/DFinsupp/NeLocus.lean Modified Mathlib/Data/Fin/Basic.lean Modified Mathlib/Data/Fin/SuccPred.lean - theorem Fin.castSucc_eq_zero_iff' - theorem Fin.castSucc_ne_zero_iff' Modified Mathlib/Data/Finmap.lean Modified Mathlib/Data/Finset/Basic.lean Modified Mathlib/Data/Finset/BooleanAlgebra.lean Modified Mathlib/Data/Finset/Card.lean Modified Mathlib/Data/Finset/Defs.lean Modified Mathlib/Data/Finset/Disjoint.lean Modified Mathlib/Data/Finset/Empty.lean Modified Mathlib/Data/Finset/Erase.lean Modified Mathlib/Data/Finset/Image.lean Modified Mathlib/Data/Finset/Insert.lean Modified Mathlib/Data/Finset/Lattice/Basic.lean Modified Mathlib/Data/Finset/Lattice/Fold.lean Modified Mathlib/Data/Finset/Lattice/Lemmas.lean Modified Mathlib/Data/Finset/Max.lean Modified Mathlib/Data/Finset/NoncommProd.lean Modified Mathlib/Data/Finset/Piecewise.lean Modified Mathlib/Data/Finset/Powerset.lean Modified Mathlib/Data/Finset/Range.lean Modified Mathlib/Data/Finset/SDiff.lean Modified Mathlib/Data/Finset/Sigma.lean Modified Mathlib/Data/Finsupp/Basic.lean Modified Mathlib/Data/Finsupp/Defs.lean Modified Mathlib/Data/Finsupp/Indicator.lean Modified Mathlib/Data/Finsupp/NeLocus.lean Modified Mathlib/Data/Finsupp/Single.lean Modified Mathlib/Data/Fintype/Card.lean Modified Mathlib/Data/Fintype/EquivFin.lean Modified Mathlib/Data/Fintype/Pi.lean Modified Mathlib/Data/Int/Init.lean Modified Mathlib/Data/List/AList.lean Modified Mathlib/Data/List/Basic.lean Modified Mathlib/Data/List/Cycle.lean Modified Mathlib/Data/List/Dedup.lean Modified Mathlib/Data/List/Intervals.lean Modified Mathlib/Data/List/Lattice.lean Modified Mathlib/Data/List/Lemmas.lean Modified Mathlib/Data/List/Nodup.lean Modified Mathlib/Data/List/Permutation.lean Modified Mathlib/Data/List/Sigma.lean Modified Mathlib/Data/List/Sort.lean Modified Mathlib/Data/Matrix/Basis.lean Modified Mathlib/Data/Matrix/Composition.lean Modified Mathlib/Data/Multiset/AddSub.lean Modified Mathlib/Data/Multiset/Count.lean Modified Mathlib/Data/Multiset/Dedup.lean Modified Mathlib/Data/Multiset/Defs.lean Modified Mathlib/Data/Multiset/Filter.lean Modified Mathlib/Data/Multiset/FinsetOps.lean Modified Mathlib/Data/Multiset/Range.lean Modified Mathlib/Data/Multiset/UnionInter.lean Modified Mathlib/Data/Multiset/ZeroCons.lean Modified Mathlib/Data/Nat/BitIndices.lean Modified Mathlib/Data/Nat/ChineseRemainder.lean Modified Mathlib/Data/Nat/Choose/Multinomial.lean Modified Mathlib/Data/Nat/Lattice.lean Modified Mathlib/Data/Nat/Pairing.lean Modified Mathlib/Data/Nat/Prime/Basic.lean Modified Mathlib/Data/Part.lean Modified Mathlib/Data/Real/Basic.lean Modified Mathlib/Data/Seq/Computation.lean Modified Mathlib/Data/Seq/Defs.lean Modified Mathlib/Data/Set/Basic.lean Modified Mathlib/Data/Set/BoolIndicator.lean Modified Mathlib/Data/Set/Card.lean Modified Mathlib/Data/Set/Disjoint.lean Modified Mathlib/Data/Set/Finite/Basic.lean Modified Mathlib/Data/Set/Function.lean Modified Mathlib/Data/Set/Image.lean Modified Mathlib/Data/Set/Insert.lean Modified Mathlib/Data/Set/Lattice.lean Modified Mathlib/Data/Set/Operations.lean Modified Mathlib/Data/Set/Pairwise/Basic.lean Modified Mathlib/Data/Set/Piecewise.lean Modified Mathlib/Data/Set/Prod.lean Modified Mathlib/Data/Setoid/Partition.lean Modified Mathlib/Data/Sym/Basic.lean Modified Mathlib/Data/Vector/Mem.lean Modified Mathlib/Data/WSeq/Basic.lean Modified Mathlib/Dynamics/Ergodic/Conservative.lean Modified Mathlib/Dynamics/Ergodic/Ergodic.lean Modified Mathlib/Dynamics/PeriodicPts/Defs.lean Modified Mathlib/FieldTheory/Galois/Basic.lean Modified Mathlib/FieldTheory/IntermediateField/Algebraic.lean Modified Mathlib/FieldTheory/Minpoly/IsConjRoot.lean Modified Mathlib/Geometry/Convex/Cone/Basic.lean Modified Mathlib/Geometry/Euclidean/Angle/Unoriented/CrossProduct.lean - theorem InnerProductGeometry.norm_withLpEquiv_crossProduct - theorem InnerProductGeometry.norm_withLpEquiv_symm_crossProduct Modified Mathlib/Geometry/Euclidean/Projection.lean Modified Mathlib/Geometry/Manifold/ContMDiff/Basic.lean Modified Mathlib/Geometry/Manifold/IsManifold/ExtChartAt.lean Modified Mathlib/Geometry/RingedSpace/LocallyRingedSpace/ResidueField.lean Modified Mathlib/GroupTheory/CosetCover.lean Modified Mathlib/GroupTheory/Exponent.lean Modified Mathlib/GroupTheory/GroupAction/Primitive.lean Modified Mathlib/GroupTheory/Perm/ClosureSwap.lean Modified Mathlib/GroupTheory/Perm/Cycle/Concrete.lean Modified Mathlib/GroupTheory/Perm/Finite.lean Modified Mathlib/GroupTheory/Perm/List.lean Modified Mathlib/GroupTheory/Perm/Support.lean Modified Mathlib/GroupTheory/Perm/ViaEmbedding.lean Modified Mathlib/GroupTheory/SpecificGroups/Dihedral.lean Modified Mathlib/LinearAlgebra/AffineSpace/AffineSubspace/Defs.lean Modified Mathlib/LinearAlgebra/AffineSpace/Basis.lean Modified Mathlib/LinearAlgebra/AffineSpace/Independent.lean Modified Mathlib/LinearAlgebra/AffineSpace/Simplex/Basic.lean - theorem Affine.Simplex.mem_affineSpan_range_faceOpposite_points_iff - theorem Affine.Simplex.mem_affineSpan_range_face_points_iff Modified Mathlib/LinearAlgebra/Basis/VectorSpace.lean Modified Mathlib/LinearAlgebra/Dimension/RankNullity.lean Modified Mathlib/LinearAlgebra/Dual/Lemmas.lean Modified Mathlib/LinearAlgebra/FreeModule/PID.lean Modified Mathlib/LinearAlgebra/FreeProduct/Basic.lean Modified Mathlib/LinearAlgebra/LinearIndependent/Basic.lean Modified Mathlib/LinearAlgebra/LinearIndependent/Defs.lean Modified Mathlib/LinearAlgebra/LinearIndependent/Lemmas.lean Modified Mathlib/LinearAlgebra/Matrix/Block.lean Modified Mathlib/LinearAlgebra/Matrix/ConjTranspose.lean Modified Mathlib/LinearAlgebra/Matrix/Hadamard.lean Modified Mathlib/LinearAlgebra/Matrix/Ideal.lean Modified Mathlib/LinearAlgebra/Matrix/Kronecker.lean Modified Mathlib/LinearAlgebra/Matrix/StdBasis.lean Modified Mathlib/LinearAlgebra/Matrix/Trace.lean Modified Mathlib/LinearAlgebra/Multilinear/Basis.lean Modified Mathlib/LinearAlgebra/PerfectPairing/Basic.lean - def IsReflexive.toPerfectPairingDual - theorem IsReflexive.toPerfectPairingDual_apply - def LinearEquiv.toPerfectPairing - theorem PerfectPairing.apply_apply_toDualRight_symm - theorem PerfectPairing.apply_toDualLeft_symm_apply - theorem PerfectPairing.bijective_toDualRight_symm_toDualLeft - def PerfectPairing.dual - theorem PerfectPairing.finrank_eq - theorem PerfectPairing.flip_apply_apply - theorem PerfectPairing.flip_flip - def PerfectPairing.mkOfInjective' - def PerfectPairing.mkOfInjective - theorem PerfectPairing.mk_apply_apply - theorem PerfectPairing.reflexive_left - theorem PerfectPairing.reflexive_right - def PerfectPairing.toDualLeft - theorem PerfectPairing.toDualLeft_apply - theorem PerfectPairing.toDualLeft_of_toDualRight_symm - def PerfectPairing.toDualRight - theorem PerfectPairing.toDualRight_apply - theorem PerfectPairing.toDualRight_symm_comp_toDualLeft - theorem PerfectPairing.toDualRight_symm_toDualLeft - theorem PerfectPairing.toLinearMap_apply - structure PerfectPairing Modified Mathlib/LinearAlgebra/PerfectPairing/Matrix.lean + theorem Matrix.toPerfectPairing - def Matrix.toPerfectPairing Modified Mathlib/LinearAlgebra/PerfectPairing/Restrict.lean - def PerfectPairing.restrict - def PerfectPairing.restrictScalars Modified Mathlib/LinearAlgebra/RootSystem/Base.lean Modified Mathlib/LinearAlgebra/RootSystem/Chain.lean Modified Mathlib/LinearAlgebra/RootSystem/Defs.lean Modified Mathlib/LinearAlgebra/RootSystem/Finite/Lemmas.lean Modified Mathlib/LinearAlgebra/RootSystem/IsValuedIn.lean Modified Mathlib/LinearAlgebra/RootSystem/Reduced.lean Modified Mathlib/LinearAlgebra/RootSystem/RootPositive.lean Modified Mathlib/LinearAlgebra/Span/Basic.lean Modified Mathlib/LinearAlgebra/Span/Defs.lean Modified Mathlib/Logic/Basic.lean Modified Mathlib/Logic/Equiv/Fintype.lean Modified Mathlib/Logic/Equiv/Set.lean Modified Mathlib/MeasureTheory/Constructions/BorelSpace/Order.lean Modified Mathlib/MeasureTheory/Function/LpSeminorm/ChebyshevMarkov.lean - theorem MeasureTheory.meas_ge_le_mul_pow_eLpNorm Modified Mathlib/MeasureTheory/Function/LpSpace/Indicator.lean Modified Mathlib/MeasureTheory/Function/StronglyMeasurable/AEStronglyMeasurable.lean Modified Mathlib/MeasureTheory/Function/StronglyMeasurable/Basic.lean Modified Mathlib/MeasureTheory/Group/Arithmetic.lean Modified Mathlib/MeasureTheory/Integral/Average.lean Modified Mathlib/MeasureTheory/Integral/DivergenceTheorem.lean Modified Mathlib/MeasureTheory/Integral/IntegrableOn.lean Modified Mathlib/MeasureTheory/Integral/IntervalIntegral/Periodic.lean Modified Mathlib/MeasureTheory/Integral/Marginal.lean Modified Mathlib/MeasureTheory/MeasurableSpace/Constructions.lean Modified Mathlib/MeasureTheory/Measure/Restrict.lean Modified Mathlib/MeasureTheory/Measure/Typeclasses/NoAtoms.lean Modified Mathlib/MeasureTheory/OuterMeasure/AE.lean Modified Mathlib/MeasureTheory/OuterMeasure/BorelCantelli.lean Modified Mathlib/MeasureTheory/SetSemiring.lean Modified Mathlib/ModelTheory/Definability.lean Modified Mathlib/ModelTheory/Substructures.lean Modified Mathlib/NumberTheory/ClassNumber/Finite.lean Modified Mathlib/NumberTheory/Cyclotomic/Basic.lean - theorem IsCyclotomicExtension.exists_prim_root Modified Mathlib/NumberTheory/Cyclotomic/CyclotomicCharacter.lean Modified Mathlib/NumberTheory/Divisors.lean Modified Mathlib/NumberTheory/EllipticDivisibilitySequence.lean Modified Mathlib/NumberTheory/ModularForms/CongruenceSubgroups.lean Modified Mathlib/NumberTheory/ModularForms/SlashInvariantForms.lean Modified Mathlib/NumberTheory/NumberField/CanonicalEmbedding/Basic.lean Modified Mathlib/NumberTheory/NumberField/FinitePlaces.lean Modified Mathlib/NumberTheory/NumberField/InfinitePlace/TotallyRealComplex.lean Modified Mathlib/NumberTheory/SmoothNumbers.lean Modified Mathlib/Order/Basic.lean Modified Mathlib/Order/BooleanAlgebra/Set.lean Modified Mathlib/Order/Closure.lean Modified Mathlib/Order/CompleteLattice/SetLike.lean Modified Mathlib/Order/ConditionallyCompleteLattice/Basic.lean Modified Mathlib/Order/Defs/LinearOrder.lean Modified Mathlib/Order/Defs/PartialOrder.lean Modified Mathlib/Order/Filter/Bases/Basic.lean Modified Mathlib/Order/Filter/Bases/Finite.lean Modified Mathlib/Order/Filter/Basic.lean Modified Mathlib/Order/Filter/Cocardinal.lean Modified Mathlib/Order/Filter/Cofinite.lean Modified Mathlib/Order/Filter/Map.lean Modified Mathlib/Order/Filter/Tendsto.lean Modified Mathlib/Order/Filter/Ultrafilter/Basic.lean Modified Mathlib/Order/Filter/Ultrafilter/Defs.lean Modified Mathlib/Order/Fin/Tuple.lean Modified Mathlib/Order/Ideal.lean Modified Mathlib/Order/Interval/Finset/Basic.lean Modified Mathlib/Order/Interval/Multiset.lean Modified Mathlib/Order/Interval/Set/Basic.lean Modified Mathlib/Order/Interval/Set/LinearOrder.lean Modified Mathlib/Order/Interval/Set/UnorderedInterval.lean Modified Mathlib/Order/Minimal.lean Modified Mathlib/Order/Partition/Basic.lean Modified Mathlib/Order/Partition/Finpartition.lean Modified Mathlib/Order/Preorder/Chain.lean Modified Mathlib/Order/Preorder/Finite.lean Modified Mathlib/Order/PrimeIdeal.lean Modified Mathlib/Order/Sublattice.lean Modified Mathlib/Order/SuccPred/Basic.lean Modified Mathlib/Order/SuccPred/Limit.lean Modified Mathlib/Order/UpperLower/Basic.lean Modified Mathlib/Order/UpperLower/CompleteLattice.lean Modified Mathlib/Order/WellFoundedSet.lean Modified Mathlib/Probability/Distributions/Uniform.lean Modified Mathlib/Probability/Independence/Basic.lean Modified Mathlib/Probability/Independence/Conditional.lean Modified Mathlib/Probability/Independence/Kernel/Indep.lean Modified Mathlib/Probability/Independence/Kernel/IndepFun.lean Modified Mathlib/Probability/Kernel/RadonNikodym.lean Modified Mathlib/Probability/Moments/Variance.lean Modified Mathlib/Probability/ProbabilityMassFunction/Constructions.lean Modified Mathlib/Probability/Process/HittingTime.lean Modified Mathlib/RepresentationTheory/FDRep.lean - theorem FDRep.ρ_inv_self_apply - theorem FDRep.ρ_self_inv_apply Modified Mathlib/RepresentationTheory/Homological/GroupCohomology/Functoriality.lean Modified Mathlib/RepresentationTheory/Homological/GroupCohomology/LowDegree.lean Modified Mathlib/RepresentationTheory/Rep.lean - theorem Rep.ρ_inv_self_apply - theorem Rep.ρ_self_inv_apply Modified Mathlib/RingTheory/AdicCompletion/LocalRing.lean Modified Mathlib/RingTheory/DedekindDomain/AdicValuation.lean - theorem IsDedekindDomain.HeightOneSpectrum.valuation_eq_intValuationDef Modified Mathlib/RingTheory/DedekindDomain/Ideal/Lemmas.lean Modified Mathlib/RingTheory/DedekindDomain/PID.lean Modified Mathlib/RingTheory/Extension/Presentation/Basic.lean Modified Mathlib/RingTheory/HopfAlgebra/Basic.lean Modified Mathlib/RingTheory/Ideal/Maps.lean Modified Mathlib/RingTheory/Ideal/Maximal.lean Modified Mathlib/RingTheory/Ideal/Nonunits.lean Modified Mathlib/RingTheory/Ideal/Operations.lean Modified Mathlib/RingTheory/Ideal/Prime.lean Modified Mathlib/RingTheory/Ideal/Prod.lean Modified Mathlib/RingTheory/Idempotents.lean Modified Mathlib/RingTheory/Jacobson/Ideal.lean Modified Mathlib/RingTheory/KrullDimension/Zero.lean Modified Mathlib/RingTheory/LocalRing/MaximalIdeal/Basic.lean Modified Mathlib/RingTheory/Localization/Integral.lean Modified Mathlib/RingTheory/MatrixAlgebra.lean Modified Mathlib/RingTheory/MvPolynomial/WeightedHomogeneous.lean Modified Mathlib/RingTheory/MvPowerSeries/PiTopology.lean Modified Mathlib/RingTheory/NonUnitalSubring/Basic.lean Modified Mathlib/RingTheory/NonUnitalSubsemiring/Basic.lean Modified Mathlib/RingTheory/Polynomial/Basic.lean Modified Mathlib/RingTheory/Polynomial/Eisenstein/Basic.lean Modified Mathlib/RingTheory/Polynomial/Eisenstein/Distinguished.lean Modified Mathlib/RingTheory/Radical.lean - theorem UniqueFactorizationDomain.disjoint_normalizedFactors - theorem UniqueFactorizationDomain.disjoint_primeFactors - theorem UniqueFactorizationDomain.mul_primeFactors_disjUnion - theorem UniqueFactorizationDomain.radical_mul Modified Mathlib/RingTheory/RingHom/Finite.lean Modified Mathlib/RingTheory/Smooth/StandardSmoothCotangent.lean Modified Mathlib/RingTheory/Spectrum/Prime/Basic.lean Modified Mathlib/RingTheory/Spectrum/Prime/RingHom.lean Modified Mathlib/RingTheory/Support.lean Modified Mathlib/RingTheory/UniqueFactorizationDomain/FactorSet.lean Modified Mathlib/RingTheory/UniqueFactorizationDomain/NormalizedFactors.lean Modified Mathlib/SetTheory/Cardinal/Basic.lean Modified Mathlib/SetTheory/Nimber/Field.lean Modified Mathlib/SetTheory/Ordinal/Family.lean Modified Mathlib/SetTheory/ZFC/Basic.lean Modified Mathlib/SetTheory/ZFC/Class.lean Modified Mathlib/SetTheory/ZFC/Ordinal.lean Modified Mathlib/SetTheory/ZFC/PSet.lean Modified Mathlib/Topology/Algebra/ClopenNhdofOne.lean Modified Mathlib/Topology/Algebra/InfiniteSum/UniformOn.lean Modified Mathlib/Topology/Algebra/Module/LocallyConvex.lean Modified Mathlib/Topology/Algebra/OpenSubgroup.lean Modified Mathlib/Topology/Algebra/Support.lean Modified Mathlib/Topology/Bases.lean Modified Mathlib/Topology/Closure.lean Modified Mathlib/Topology/ClusterPt.lean Modified Mathlib/Topology/Compactification/OnePoint/Basic.lean Modified Mathlib/Topology/Compactness/CompactlyCoherentSpace.lean Modified Mathlib/Topology/ContinuousMap/Compact.lean Modified Mathlib/Topology/ContinuousMap/Ideals.lean Modified Mathlib/Topology/ContinuousOn.lean Modified Mathlib/Topology/DiscreteSubset.lean Modified Mathlib/Topology/FiberBundle/Trivialization.lean Modified Mathlib/Topology/Homotopy/Basic.lean - theorem ContinuousMap.Homotopic.hcomp - def ContinuousMap.Homotopy.hcomp Modified Mathlib/Topology/Instances/Matrix.lean Modified Mathlib/Topology/LocallyConstant/Basic.lean Modified Mathlib/Topology/LocallyFinsupp.lean Modified Mathlib/Topology/MetricSpace/HausdorffDistance.lean Modified Mathlib/Topology/MetricSpace/MetricSeparated.lean Modified Mathlib/Topology/MetricSpace/Thickening.lean Modified Mathlib/Topology/Order/IsLUB.lean Modified Mathlib/Topology/PartitionOfUnity.lean Modified Mathlib/Topology/Path.lean - theorem Path.coe_mk Modified Mathlib/Topology/Separation/Basic.lean Modified Mathlib/Topology/Separation/Hausdorff.lean Modified Mathlib/Topology/UniformSpace/LocallyUniformConvergence.lean Modified Mathlib/Topology/UrysohnsLemma.lean Modified Mathlib/Topology/VectorBundle/Basic.lean Modified docs/overview.yaml 2025-12-28 23:05:14 23ce1f3 chore(Order/WithBot): use `to_dual` (part 4) (#33267) ESTIMATED CHANGES Modified Mathlib/Order/WithBot.lean +/- theorem WithBot.eq_top_iff_forall_ge +/- theorem WithBot.le_ofDual_iff +/- theorem WithBot.le_toDual_iff +/- theorem WithBot.lt_ofDual_iff +/- theorem WithBot.lt_toDual_iff +/- theorem WithBot.map_ofDual +/- theorem WithBot.map_toDual +/- theorem WithBot.ofDual_apply_bot +/- theorem WithBot.ofDual_apply_coe +/- theorem WithBot.ofDual_le_iff +/- theorem WithBot.ofDual_le_ofDual_iff +/- theorem WithBot.ofDual_lt_iff +/- theorem WithBot.ofDual_lt_ofDual_iff +/- theorem WithBot.ofDual_map +/- theorem WithBot.ofDual_symm_apply +/- theorem WithBot.toDual_apply_bot +/- theorem WithBot.toDual_apply_coe +/- theorem WithBot.toDual_le_iff +/- theorem WithBot.toDual_le_toDual_iff +/- theorem WithBot.toDual_lt_iff +/- theorem WithBot.toDual_lt_toDual_iff +/- theorem WithBot.toDual_map +/- theorem WithBot.toDual_symm_apply +/- theorem WithTop.coe_mono +/- theorem WithTop.coe_strictMono - theorem WithTop.le_ofDual_iff - theorem WithTop.le_toDual_iff - theorem WithTop.lt_ofDual_iff - theorem WithTop.lt_toDual_iff - theorem WithTop.map_ofDual - theorem WithTop.map_toDual +/- theorem WithTop.monotone_iff +/- theorem WithTop.monotone_map_iff - theorem WithTop.ofDual_apply_coe - theorem WithTop.ofDual_apply_top - theorem WithTop.ofDual_le_iff - theorem WithTop.ofDual_le_ofDual_iff - theorem WithTop.ofDual_lt_iff - theorem WithTop.ofDual_lt_ofDual_iff - theorem WithTop.ofDual_map - theorem WithTop.ofDual_symm_apply +/- theorem WithTop.strictAnti_iff +/- theorem WithTop.strictMono_iff +/- theorem WithTop.strictMono_map_iff - theorem WithTop.toDual_apply_coe - theorem WithTop.toDual_apply_top - theorem WithTop.toDual_le_iff - theorem WithTop.toDual_le_toDual_iff - theorem WithTop.toDual_lt_iff - theorem WithTop.toDual_lt_toDual_iff - theorem WithTop.toDual_map - theorem WithTop.toDual_symm_apply 2025-12-28 22:32:53 6371049 chore(CateggoryTheory/Monoidal/NaturalTransformation): monoidality of whiskers (#33357) Record instances that says that left/right whiskerings of a lax monoidal functor by a monoidal transformation are also monoidal transformations. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Monoidal/NaturalTransformation.lean 2025-12-28 19:10:04 b9b7d0b refactor(Order/Interval/Set/Basic): review some basic `Ixx` theorems (#33328) This PR does the following: - Deprecate various lemmas of the form `x ∈ Ixx a b ↔ False` in favor of new lemmas `x ∉ Ixx a b`. - Rename lemmas `left_mem_Ixi` and `right_mem_Iix` to simply `self_mem_Ixi` or `self_mem_Iix`. ESTIMATED CHANGES Modified Counterexamples/SorgenfreyLine.lean Modified Mathlib/Algebra/Order/UpperLower.lean Modified Mathlib/Analysis/Calculus/Deriv/Abs.lean Modified Mathlib/Analysis/Calculus/Deriv/Basic.lean Modified Mathlib/Analysis/Calculus/FDeriv/Measurable.lean Modified Mathlib/Analysis/Complex/UpperHalfPlane/Topology.lean Modified Mathlib/Analysis/Convex/Piecewise.lean Modified Mathlib/Analysis/Convex/Topology.lean Modified Mathlib/Analysis/ODE/Gronwall.lean Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/InverseDeriv.lean Modified Mathlib/Geometry/Manifold/Instances/Real.lean Modified Mathlib/MeasureTheory/Integral/IntegralEqImproper.lean Modified Mathlib/MeasureTheory/Integral/IntervalIntegral/FundThmCalculus.lean Modified Mathlib/NumberTheory/Harmonic/ZetaAsymp.lean Modified Mathlib/Order/Bounds/Basic.lean Modified Mathlib/Order/Filter/AtTopBot/CompleteLattice.lean Modified Mathlib/Order/Filter/AtTopBot/Disjoint.lean Modified Mathlib/Order/Filter/EventuallyConst.lean Modified Mathlib/Order/Filter/Map.lean Modified Mathlib/Order/Filter/Tendsto.lean Modified Mathlib/Order/Interval/Set/Basic.lean +/- theorem Set.left_mem_Icc - theorem Set.left_mem_Ici +/- theorem Set.left_mem_Ico + theorem Set.left_notMem_Ioc + theorem Set.left_notMem_Ioo +/- theorem Set.right_mem_Icc - theorem Set.right_mem_Iic +/- theorem Set.right_mem_Ioc + theorem Set.right_notMem_Ico + theorem Set.right_notMem_Ioo + theorem Set.self_mem_Ici + theorem Set.self_mem_Iic + theorem Set.self_notMem_Iio + theorem Set.self_notMem_Ioi Modified Mathlib/Order/Interval/Set/Disjoint.lean Modified Mathlib/Order/Monotone/Extension.lean Modified Mathlib/Topology/Order/MonotoneContinuity.lean Modified Mathlib/Topology/UniformSpace/Cauchy.lean 2025-12-28 19:10:02 2d6641a feat(RingTheory): add ideal fg of Noetherian lemma (#31989) In this PR, we added lemma `Ideal.FG.of_isNoetherianRing`. ESTIMATED CHANGES Modified Mathlib/RingTheory/Noetherian/Defs.lean + theorem Ideal.fg_of_isNoetherianRing 2025-12-28 18:52:30 8d7d30c feat(RingTheory/WittVector): isomorphism of Witt vectors mod p with base ring (#33310) This resolves a TODO in the basic theory of Witt vectors, giving an isomorphism between `W(k)/p` and `k` where `k` is a perfect ring of characteristic `p`. ESTIMATED CHANGES Modified Mathlib/RingTheory/WittVector/Complete.lean + theorem WittVector.ker_constantCoeff + theorem WittVector.quotientPEquiv_mk Modified Mathlib/RingTheory/WittVector/Teichmuller.lean + theorem WittVector.constantCoeff_surjective 2025-12-28 18:52:27 fb18135 feat(AlgebraicGeometry): the pseudofunctor which sends a scheme to its category of sheaves of modules (#30350) We define `Scheme.Modules.pseudofunctor : Pseudofunctor (LocallyDiscrete Schemeᵒᵖ) (Adj Cat)` which sends a scheme `X` to the category `X.Modules` of sheaves of modules (not to be be confused with the full subcategory of quasi-coherent sheaves). The target bicategory is the bicategory of adjunctions in the bicategory of categories: this means that we formalise both the pushforward and the pullback of sheaves of modules over schemes. ESTIMATED CHANGES Modified Mathlib/Algebra/Category/ModuleCat/Sheaf/Abelian.lean Modified Mathlib/Algebra/Category/ModuleCat/Sheaf/PullbackContinuous.lean + theorem SheafOfModules.conjugateEquiv_pullbackComp_inv + theorem SheafOfModules.conjugateEquiv_pullbackId_hom Modified Mathlib/AlgebraicGeometry/Modules/Presheaf.lean + def AlgebraicGeometry.Scheme.Hom.toRingCatSheafHom Modified Mathlib/AlgebraicGeometry/Modules/Sheaf.lean + def AlgebraicGeometry.Scheme.Modules.Hom + theorem AlgebraicGeometry.Scheme.Modules.conjugateEquiv_pullbackComp_inv + theorem AlgebraicGeometry.Scheme.Modules.conjugateEquiv_pullbackId_hom + theorem AlgebraicGeometry.Scheme.Modules.pseudofunctor_associativity + theorem AlgebraicGeometry.Scheme.Modules.pseudofunctor_left_unitality + theorem AlgebraicGeometry.Scheme.Modules.pseudofunctor_right_unitality + def AlgebraicGeometry.Scheme.Modules Modified Mathlib/CategoryTheory/Adjunction/CompositionIso.lean + theorem CategoryTheory.Adjunction.conjugateEquiv_leftAdjointCompIso_inv + theorem CategoryTheory.Adjunction.conjugateEquiv_leftAdjointIdIso_hom Modified Mathlib/CategoryTheory/Bicategory/Adjunction/Adj.lean Modified Mathlib/Topology/Sheaves/SheafCondition/Sites.lean 2025-12-28 17:51:20 f61beea chore(scripts): update nolints.json (#33350) I am happy to remove some nolints for you! [workflow run for this PR](https://github.com/leanprover-community/mathlib4/actions/runs/20546132320) ESTIMATED CHANGES Modified scripts/nolints.json 2025-12-28 17:51:18 f514a83 doc(RingTheory/Polynomial/GaussNorm): add sentence about heights of polynomials (#33338) ESTIMATED CHANGES Modified Mathlib/RingTheory/Polynomial/GaussNorm.lean 2025-12-28 17:51:17 72dd699 chore(RingTheory): add `RingHom.Etale.of_bijective` (#33196) From Pi1. ESTIMATED CHANGES Modified Mathlib/RingTheory/FinitePresentation.lean + theorem RingHom.FinitePresentation.of_bijective Modified Mathlib/RingTheory/RingHom/Etale.lean + theorem RingHom.Etale.of_bijective Modified Mathlib/RingTheory/RingHom/Smooth.lean + theorem RingHom.FormallySmooth.of_bijective + theorem RingHom.Smooth.of_bijective Modified Mathlib/RingTheory/RingHom/Unramified.lean + theorem RingHom.FormallyUnramified.of_surjective 2025-12-28 17:51:15 5888de1 feat(Measure): product of uniformly locally doubling measures (#33029) From https://github.com/urkud/SardMoreira ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Constructions/Pi.lean Modified Mathlib/MeasureTheory/Measure/Prod.lean 2025-12-28 17:51:13 f7ff074 feat(AlgebraicGeometry): relative normalization of schemes (#32813) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/AlgebraicGeometry/IdealSheaf/Basic.lean + theorem AlgebraicGeometry.Scheme.IdealSheafData.ext_of_iSup_eq_top + theorem AlgebraicGeometry.Scheme.IdealSheafData.le_of_iSup_eq_top Added Mathlib/AlgebraicGeometry/Normalization.lean + def AlgebraicGeometry.Scheme.Hom.fromNormalization + theorem AlgebraicGeometry.Scheme.Hom.fromNormalization_preimage + theorem AlgebraicGeometry.Scheme.Hom.isCompact_preimage + theorem AlgebraicGeometry.Scheme.Hom.isQuasiSeparated_preimage + theorem AlgebraicGeometry.Scheme.Hom.ker_toNormalization + def AlgebraicGeometry.Scheme.Hom.normalization + def AlgebraicGeometry.Scheme.Hom.normalizationDiagram + def AlgebraicGeometry.Scheme.Hom.normalizationDiagramMap + def AlgebraicGeometry.Scheme.Hom.normalizationOpenCover + theorem AlgebraicGeometry.Scheme.Hom.preservesLocalization_normalizationDiagramMap + def AlgebraicGeometry.Scheme.Hom.toNormalization + theorem AlgebraicGeometry.Scheme.Hom.toNormalization_app_preimage + theorem AlgebraicGeometry.Scheme.Hom.toNormalization_fromNormalization + theorem AlgebraicGeometry.Scheme.Hom.ι_fromNormalization + theorem AlgebraicGeometry.Scheme.Hom.ι_toNormalization Modified Mathlib/AlgebraicGeometry/Properties.lean + theorem AlgebraicGeometry.IsReduced.of_openCover 2025-12-28 17:51:12 542e047 feat(Algebra): stably finite rings (#32262) + Show finite semirings are stably-finite. + Show stable finiteness is left-right symmetric. + Prove matrix characterizations of rank condition and invariant basis number; as consequences, show both properties are left-right symmetric. + Show stable finiteness implies the rank condition, generalizing [rankCondition_of_nontrivial_of_commSemiring](https://leanprover-community.github.io/mathlib4_docs/Mathlib/LinearAlgebra/Matrix/InvariantBasisNumber.html#rankCondition_of_nontrivial_of_commSemiring). + Reformulate a lemma as saying division rings are stably finite. ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Equiv/Basic.lean Modified Mathlib/Algebra/Group/Hom/Defs.lean + theorem IsDedekindFiniteMonoid.of_injective - theorem MonoidHom.isDedekindFiniteMonoid_of_injective Modified Mathlib/Data/Matrix/Basic.lean + theorem MulOpposite.isStablyFiniteRing_iff +/- def RingEquiv.mopMatrix Modified Mathlib/Data/Matrix/Composition.lean +/- def Matrix.compLinearEquiv + theorem Matrix.comp_one Modified Mathlib/Data/Matrix/Mul.lean + theorem IsStablyFiniteRing.of_injective + theorem Matrix.mul_eq_one_comm_of_card_eq + theorem Matrix.mul_eq_one_comm_of_equiv + theorem RingEquiv.isStablyFiniteRing_iff Modified Mathlib/LinearAlgebra/FiniteDimensional/Basic.lean +/- theorem LinearMap.comp_eq_id_comm + theorem Module.End.injective_of_surjective Modified Mathlib/LinearAlgebra/InvariantBasisNumber.lean Modified Mathlib/LinearAlgebra/Matrix/BaseChange.lean Modified Mathlib/LinearAlgebra/Matrix/InvariantBasisNumber.lean + theorem invariantBasisNumber_iff_matrix + theorem rankCondition_iff_le_of_comp_eq_one + theorem rankCondition_iff_matrix Modified Mathlib/LinearAlgebra/Matrix/NonsingularInverse.lean Modified Mathlib/LinearAlgebra/Matrix/SchurComplement.lean Modified Mathlib/LinearAlgebra/Matrix/SemiringInverse.lean - def Matrix.invertibleOfLeftInverse - def Matrix.invertibleOfRightInverse - theorem Matrix.mul_eq_one_comm - theorem Matrix.mul_eq_one_comm_of_equiv Modified Mathlib/LinearAlgebra/Matrix/ToLin.lean + theorem LinearMap.toMatrixRight'_comp + theorem LinearMap.toMatrixRight'_id + theorem Module.End.injective_of_surjective_fin + theorem isStablyFiniteRing_iff_injective_of_surjective + theorem isStablyFiniteRing_iff_isDedekindFiniteMonoid_moduleEnd + def matrixAlgEquivEndVecMulOpposite + def matrixRingEquivEndVecMulOpposite 2025-12-28 17:51:10 b4d4ef3 feat(CategoryTheory): computing Ext-groups using an injective resolution (#32105) Given an injective resolution `R` of an object `Y` in an abelian category, we define a constructor for elements in `Ext X Y n` which takes as input "cocycles" given as morphisms `X ⟶ R.cocomplex.X n`, and we provide an API for this definition. When the dual construction for projective resolutions will be done, it may be possible to remove the old `Ext` API. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Abelian/Injective/Ext.lean + theorem CategoryTheory.InjectiveResolution.add_extMk + theorem CategoryTheory.InjectiveResolution.extEquivCohomologyClass_add + theorem CategoryTheory.InjectiveResolution.extEquivCohomologyClass_extMk + theorem CategoryTheory.InjectiveResolution.extEquivCohomologyClass_neg + theorem CategoryTheory.InjectiveResolution.extEquivCohomologyClass_sub + theorem CategoryTheory.InjectiveResolution.extEquivCohomologyClass_symm_add + theorem CategoryTheory.InjectiveResolution.extEquivCohomologyClass_symm_mk_hom + theorem CategoryTheory.InjectiveResolution.extEquivCohomologyClass_symm_neg + theorem CategoryTheory.InjectiveResolution.extEquivCohomologyClass_symm_sub + theorem CategoryTheory.InjectiveResolution.extEquivCohomologyClass_symm_zero + theorem CategoryTheory.InjectiveResolution.extEquivCohomologyClass_zero + theorem CategoryTheory.InjectiveResolution.extMk_eq_zero_iff + theorem CategoryTheory.InjectiveResolution.extMk_surjective + theorem CategoryTheory.InjectiveResolution.extMk_zero + theorem CategoryTheory.InjectiveResolution.neg_extMk + theorem CategoryTheory.InjectiveResolution.sub_extMk 2025-12-28 17:51:08 baeedfa chore: unify `LocalizedModule` and `OreLocalization` (#31862) We redefine `LocalizedModule` to be an abbrev of `OreLocalization S M` so that localization of a ring and localization of a module is now defeq. This is very useful to unify downstream constructions, in particular `ModuleCat.tilde` and `Spec.structureSheaf`. Some of the declarations are switched to reducible to avoid diamonds. This causes a significant performance regression, most notabaly in `Mathlib/AlgebraicGeometry/AffineSpace.lean`. We shall investigate if there are ways to improve performances. For example by introducing typeclasses to unify the two constructions on this and `LocalizedModule`, or by marking some downstream constructions (e.g. `Spec.structureSheaf`) as irreducible. ESTIMATED CHANGES Modified Mathlib/Algebra/Module/LocalizedModule/Basic.lean - def LocalizedModule.mk +/- theorem LocalizedModule.mk_eq + theorem LocalizedModule.mk_mul_mk' +/- theorem LocalizedModule.mk_neg + theorem LocalizedModule.oreEqv_eq_r +/- theorem LocalizedModule.zero_mk - def LocalizedModule Modified Mathlib/AlgebraicGeometry/Modules/Tilde.lean +/- theorem ModuleCat.Tilde.sections_smul_localizations_def Modified Mathlib/AlgebraicGeometry/Restrict.lean Modified Mathlib/GroupTheory/DivisibleHull.lean Modified Mathlib/GroupTheory/OreLocalization/Basic.lean - def OreLocalization.numeratorHom Modified Mathlib/GroupTheory/OreLocalization/OreSet.lean + theorem OreLocalization.oreSetComm_oreDenom + theorem OreLocalization.oreSetComm_oreNum Modified Mathlib/RingTheory/Localization/BaseChange.lean Modified Mathlib/RingTheory/OreLocalization/Ring.lean - def OreLocalization.numeratorRingHom Modified Mathlib/RingTheory/TensorProduct/Nontrivial.lean Added MathlibTest/Algebra/Module/LocalizedModule.lean 2025-12-28 11:12:22 88c4804 feat(Algebra/Homology): head of long exact sequence of `Ext` (#32966) In this PR, we add the "head" of the long exact sequence of `Ext`, i.e. the injectivity of the first morphism. ESTIMATED CHANGES Modified Mathlib/Algebra/Homology/DerivedCategory/Ext/Basic.lean + theorem CategoryTheory.Abelian.Ext.mk₀_eq_zero_iff Modified Mathlib/Algebra/Homology/DerivedCategory/Ext/ExactSequences.lean + theorem CategoryTheory.Abelian.Ext.mono_postcomp_mk₀_of_mono + theorem CategoryTheory.Abelian.Ext.mono_precomp_mk₀_of_epi + theorem CategoryTheory.Abelian.Ext.postcomp_mk₀_injective_of_mono + theorem CategoryTheory.Abelian.Ext.precomp_mk₀_injective_of_epi 2025-12-27 23:32:20 cc0ebd1 chore: fix more whitespace formatting (#33342) Found by extending the commandStart linter to proof bodies. Extracted from #30658. ESTIMATED CHANGES Modified Mathlib/Algebra/Category/ModuleCat/Topology/Basic.lean Modified Mathlib/Algebra/Lie/Sl2.lean Modified Mathlib/Algebra/Pointwise/Stabilizer.lean Modified Mathlib/Algebra/Polynomial/CoeffMem.lean Modified Mathlib/Algebra/Polynomial/Roots.lean Modified Mathlib/Algebra/QuadraticDiscriminant.lean +/- theorem quadratic_ne_zero_of_discrim_ne_sq Modified Mathlib/Algebra/Vertex/VertexOperator.lean Modified Mathlib/AlgebraicGeometry/AffineSpace.lean Modified Mathlib/Analysis/Analytic/Constructions.lean Modified Mathlib/Analysis/Calculus/LogDeriv.lean Modified Mathlib/Analysis/Calculus/TangentCone/ProperSpace.lean Modified Mathlib/Analysis/Distribution/ContDiffMapSupportedIn.lean Modified Mathlib/Analysis/InnerProductSpace/Projection/Basic.lean Modified Mathlib/Analysis/LConvolution.lean Modified Mathlib/Analysis/Meromorphic/Basic.lean Modified Mathlib/Analysis/Normed/Field/ProperSpace.lean Modified Mathlib/Analysis/Normed/Group/Completeness.lean Modified Mathlib/Analysis/Normed/Module/FiniteDimension.lean Modified Mathlib/Analysis/Normed/Unbundled/SmoothingSeminorm.lean Modified Mathlib/Analysis/Seminorm.lean Modified Mathlib/Analysis/SpecialFunctions/BinaryEntropy.lean Modified Mathlib/Analysis/SpecialFunctions/Choose.lean Modified Mathlib/Analysis/SpecialFunctions/Log/Deriv.lean Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Angle.lean Modified Mathlib/CategoryTheory/Bicategory/Monad/Basic.lean Modified Mathlib/CategoryTheory/Limits/Types/Pushouts.lean Modified Mathlib/CategoryTheory/Monoidal/Braided/Reflection.lean Modified Mathlib/CategoryTheory/Monoidal/Comon_.lean Modified Mathlib/CategoryTheory/Monoidal/Grp_.lean Modified Mathlib/CategoryTheory/Monoidal/Hopf_.lean Modified Mathlib/CategoryTheory/Monoidal/Mod_.lean +/- theorem CategoryTheory.ModObj.smul_eq_mul Modified Mathlib/CategoryTheory/Monoidal/Mon_.lean Modified Mathlib/CategoryTheory/Monoidal/Skeleton.lean Modified Mathlib/CategoryTheory/Sites/Descent/DescentData.lean Modified Mathlib/Combinatorics/SimpleGraph/Triangle/Removal.lean Modified Mathlib/Computability/AkraBazzi/AkraBazzi.lean Modified Mathlib/Computability/AkraBazzi/GrowsPolynomially.lean Modified Mathlib/Computability/AkraBazzi/SumTransform.lean Modified Mathlib/FieldTheory/CardinalEmb.lean Modified Mathlib/FieldTheory/Perfect.lean Modified Mathlib/FieldTheory/PurelyInseparable/Basic.lean Modified Mathlib/Geometry/Euclidean/SignedDist.lean Modified Mathlib/Geometry/Manifold/IsManifold/ExtChartAt.lean Modified Mathlib/GroupTheory/Archimedean.lean Modified Mathlib/GroupTheory/QuotientGroup/Defs.lean Modified Mathlib/LinearAlgebra/RootSystem/Irreducible.lean Modified Mathlib/MeasureTheory/Integral/Bochner/Set.lean Modified Mathlib/MeasureTheory/Measure/GiryMonad.lean Modified Mathlib/RingTheory/Flat/Basic.lean Modified Mathlib/RingTheory/GradedAlgebra/Homogeneous/Ideal.lean Modified Mathlib/RingTheory/MvPolynomial/FreeCommRing.lean Modified Mathlib/RingTheory/MvPolynomial/IrreducibleQuadratic.lean Modified Mathlib/RingTheory/Perfection.lean Modified Mathlib/RingTheory/Perfectoid/Untilt.lean Modified Mathlib/RingTheory/Polynomial/Eisenstein/IsIntegral.lean Modified Mathlib/SetTheory/Cardinal/Cofinality.lean Modified Mathlib/Tactic/Bound.lean Modified Mathlib/Topology/Algebra/Module/Cardinality.lean Modified Mathlib/Topology/Category/Profinite/EffectiveEpi.lean Modified Mathlib/Topology/Category/Stonean/EffectiveEpi.lean Modified Mathlib/Topology/CompactOpen.lean Modified Mathlib/Topology/Constructible.lean Modified Mathlib/Topology/Covering/Basic.lean Modified Mathlib/Topology/Instances/CantorSet.lean Modified Mathlib/Topology/Semicontinuity/Basic.lean Modified Mathlib/Topology/VectorBundle/Riemannian.lean 2025-12-27 22:16:36 d68c4dc doc(MeasureTheory): fix typos and inconsistencies (#33153) Typos found and fixed by Codex. ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Constructions/BorelSpace/Basic.lean Modified Mathlib/MeasureTheory/Constructions/Cylinders.lean Modified Mathlib/MeasureTheory/Constructions/Pi.lean Modified Mathlib/MeasureTheory/Function/ConvergenceInMeasure.lean Modified Mathlib/MeasureTheory/Function/Jacobian.lean Modified Mathlib/MeasureTheory/Function/SimpleFuncDense.lean Modified Mathlib/MeasureTheory/Function/UnifTight.lean Modified Mathlib/MeasureTheory/Group/Arithmetic.lean Modified Mathlib/MeasureTheory/Group/FundamentalDomain.lean Modified Mathlib/MeasureTheory/Integral/Bochner/L1.lean Modified Mathlib/MeasureTheory/Integral/Prod.lean Modified Mathlib/MeasureTheory/MeasurableSpace/Invariants.lean Modified Mathlib/MeasureTheory/Measure/Complex.lean Modified Mathlib/MeasureTheory/Measure/Haar/Unique.lean Modified Mathlib/MeasureTheory/Measure/HasOuterApproxClosedProd.lean Modified Mathlib/MeasureTheory/Measure/Hausdorff.lean Modified Mathlib/MeasureTheory/Measure/Map.lean Modified Mathlib/MeasureTheory/Measure/MeasureSpaceDef.lean Modified Mathlib/MeasureTheory/Measure/Stieltjes.lean Modified Mathlib/MeasureTheory/Measure/WithDensityFinite.lean Modified Mathlib/MeasureTheory/Order/UpperLower.lean Modified Mathlib/MeasureTheory/OuterMeasure/Caratheodory.lean Modified Mathlib/MeasureTheory/VectorMeasure/Basic.lean Modified Mathlib/MeasureTheory/VectorMeasure/Decomposition/Hahn.lean Modified Mathlib/MeasureTheory/VectorMeasure/Decomposition/Lebesgue.lean Modified Mathlib/MeasureTheory/VectorMeasure/WithDensity.lean 2025-12-27 18:47:12 d9996c5 feat(Analysis/Normed/Operator): continuous algebra equivalences between continuous endomorphisms are inner (#33017) This is the continuous version of [AlgEquiv.eq_linearEquivConjAlgEquiv](https://leanprover-community.github.io/mathlib4_docs/Mathlib/LinearAlgebra/GeneralLinearGroup/AlgEquiv.html#AlgEquiv.eq_linearEquivConjAlgEquiv). The proof follows the same idea as the non-continuous version. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/Normed/Operator/ContinuousAlgEquiv.lean Modified Mathlib/Topology/Algebra/Algebra.lean + theorem ContinuousAlgHom.coe_toContinuousLinearMap + def ContinuousAlgHom.toContinuousLinearMap Modified Mathlib/Topology/Algebra/Module/Equiv.lean + theorem ContinuousLinearEquiv.eq_comp_toContinuousLinearMap_symm Modified Mathlib/Topology/Algebra/Module/StrongTopology.lean + def ContinuousLinearEquiv.conjContinuousAlgEquiv + theorem ContinuousLinearEquiv.conjContinuousAlgEquiv_apply + theorem ContinuousLinearEquiv.conjContinuousAlgEquiv_apply_apply + theorem ContinuousLinearEquiv.conjContinuousAlgEquiv_refl + theorem ContinuousLinearEquiv.conjContinuousAlgEquiv_trans + theorem ContinuousLinearEquiv.symm_conjContinuousAlgEquiv + theorem ContinuousLinearEquiv.symm_conjContinuousAlgEquiv_apply_apply 2025-12-27 18:03:47 f160a5e feat(NumberTheory/ModularForms/EisensteinSeries/Summable): add auxiliary E2 lemmas (#32955) This contains a series of lemmas that are needed in #32585 to prove how E2 transforms under the slash action. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Analysis/Complex/IntegerCompl.lean + theorem Complex.UpperHalfPlane.int_div_mem_integerComplement Modified Mathlib/Analysis/Complex/UpperHalfPlane/Basic.lean + theorem UpperHalfPlane.im_pnat_div_pos Modified Mathlib/NumberTheory/LSeries/RiemannZeta.lean Modified Mathlib/NumberTheory/ModularForms/EisensteinSeries/QExpansion.lean Modified Mathlib/NumberTheory/ModularForms/EisensteinSeries/Summable.lean + theorem EisensteinSeries.isBigO_linear_add_const_vec + theorem EisensteinSeries.isLittleO_const_left_of_properSpace_of_discreteTopology + theorem EisensteinSeries.linear_inv_isBigO_right_add - theorem EisensteinSeries.linear_isTheta_right + theorem EisensteinSeries.linear_isTheta_right_add + theorem EisensteinSeries.summable_linear_left_mul_linear_left + theorem EisensteinSeries.summable_linear_right_add_one_mul_linear_right + theorem EisensteinSeries.summable_of_isBigO_rpow_norm + theorem EisensteinSeries.tendsto_zero_inv_linear + theorem EisensteinSeries.tendsto_zero_inv_linear_sub + theorem EisensteinSeries.vec_add_const_isTheta Modified Mathlib/NumberTheory/ModularForms/Identities.lean + theorem SlashInvariantForm.slash_S_apply Added Mathlib/NumberTheory/TsumDivisorsAntidiagonal.lean + def divisorsAntidiagonalFactors + theorem divisorsAntidiagonalFactors_eq + theorem divisorsAntidiagonalFactors_one + def sigmaAntidiagonalEquivProd + theorem sigmaAntidiagonalEquivProd_symm_apply_fst + theorem sigmaAntidiagonalEquivProd_symm_apply_snd + theorem summable_norm_pow_mul_geometric_div_one_sub + theorem summable_prod_mul_pow + theorem tendsto_zero_geometric_tsum_pnat + theorem tsum_pow_div_one_sub_eq_tsum_sigma + theorem tsum_prod_pow_eq_tsum_sigma Modified Mathlib/NumberTheory/TsumDivsorsAntidiagonal.lean - def divisorsAntidiagonalFactors - theorem divisorsAntidiagonalFactors_eq - theorem divisorsAntidiagonalFactors_one - def sigmaAntidiagonalEquivProd - theorem sigmaAntidiagonalEquivProd_symm_apply_fst - theorem sigmaAntidiagonalEquivProd_symm_apply_snd - theorem summable_norm_pow_mul_geometric_div_one_sub - theorem summable_prod_mul_pow - theorem tsum_pow_div_one_sub_eq_tsum_sigma - theorem tsum_prod_pow_eq_tsum_sigma Modified Mathlib/Order/Filter/AtTopBot/Archimedean.lean + theorem tendsto_PNat_val_atTop_atTop Modified Mathlib/Topology/Algebra/InfiniteSum/NatInt.lean + theorem multipliable_pnat_iff_multipliable_nat + theorem tprod_int_eq_zero_mul_tprod_pnat 2025-12-27 16:28:50 c05a1ae chore: tidy various files (#33340) ESTIMATED CHANGES Modified Counterexamples/NowhereDifferentiable.lean +/- theorem NowhereDifferentiable.seq_le Modified Mathlib/Algebra/AffineMonoid/Basic.lean Modified Mathlib/Algebra/Algebra/Subalgebra/Pointwise.lean Modified Mathlib/Algebra/BigOperators/Group/Finset/Basic.lean Modified Mathlib/Algebra/Module/LocalizedModule/Basic.lean +/- theorem IsLocalizedModule.map_id Modified Mathlib/Algebra/Order/Floor/Ring.lean Modified Mathlib/Algebra/Order/Floor/Semifield.lean Modified Mathlib/Algebra/SkewMonoidAlgebra/Basic.lean Modified Mathlib/Analysis/MeanInequalities.lean Modified Mathlib/CategoryTheory/Functor/Derived/PointwiseLeftDerived.lean Modified Mathlib/CategoryTheory/Functor/Derived/PointwiseRightDerived.lean Modified Mathlib/CategoryTheory/Limits/Preserves/Shapes/Pullbacks.lean Modified Mathlib/Combinatorics/SetFamily/Compression/Down.lean Modified Mathlib/Combinatorics/SimpleGraph/Matching.lean Modified Mathlib/Computability/AkraBazzi/GrowsPolynomially.lean Modified Mathlib/Data/ZMod/Basic.lean Modified Mathlib/Geometry/Convex/Cone/Basic.lean Modified Mathlib/Geometry/Euclidean/Angle/Oriented/Affine.lean Modified Mathlib/Geometry/Euclidean/Angle/Unoriented/Basic.lean Modified Mathlib/Geometry/Euclidean/Triangle.lean Modified Mathlib/GroupTheory/QuotientGroup/Basic.lean Modified Mathlib/LinearAlgebra/RootSystem/Defs.lean Modified Mathlib/LinearAlgebra/Transvection.lean Modified Mathlib/MeasureTheory/Measure/Tight.lean Modified Mathlib/NumberTheory/NumberField/House.lean +/- theorem NumberField.house_nat_mul +/- theorem NumberField.house_pow_le Modified Mathlib/Probability/Distributions/Gaussian/Real.lean Modified Mathlib/Probability/Distributions/SetBernoulli.lean Modified Mathlib/RepresentationTheory/Homological/GroupCohomology/FiniteCyclic.lean Modified Mathlib/Topology/Algebra/UniformField.lean 2025-12-27 10:33:00 a36c84a chore: deprecate duplicate declaration for the scalar product as a sesquilinear form (#33316) Zulip discussion at [#mathlib4 > Duplication @ 💬](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Duplication/near/565217359) ESTIMATED CHANGES Modified Mathlib/Analysis/Fourier/RiemannLebesgueLemma.lean Modified Mathlib/Analysis/InnerProductSpace/Adjoint.lean Modified Mathlib/Analysis/InnerProductSpace/Basic.lean - def bilinFormOfRealInner + theorem coe_innerₛₗ_apply + theorem flip_innerₗ + def innerₗ + theorem innerₗ_apply_apply + def innerₛₗ + theorem innerₛₗ_apply_apply - def sesqFormOfInner Modified Mathlib/Analysis/InnerProductSpace/CanonicalTensor.lean Modified Mathlib/Analysis/InnerProductSpace/LinearMap.lean - theorem coe_innerₛₗ_apply - theorem flip_innerₗ - def innerₗ - theorem innerₗ_apply_apply - def innerₛₗ - theorem innerₛₗ_apply_apply Modified Mathlib/Analysis/InnerProductSpace/Orthogonal.lean - theorem bilinFormOfRealInner_orthogonal + theorem orthogonalBilin_innerₗ Modified Mathlib/Analysis/InnerProductSpace/Symmetric.lean Modified Mathlib/MeasureTheory/Measure/CharacteristicFunction.lean Modified Mathlib/Probability/Moments/ComplexMGF.lean 2025-12-27 10:32:58 a30c9c0 doc(GroupTheory): fix file refs (#33305) Fix some stale documentation file refs. ESTIMATED CHANGES Modified Mathlib/GroupTheory/Abelianization/Defs.lean Modified Mathlib/GroupTheory/FreeAbelianGroup.lean Modified Mathlib/GroupTheory/FreeGroup/Basic.lean Modified Mathlib/GroupTheory/GroupAction/DomAct/ActionHom.lean Modified Mathlib/GroupTheory/GroupExtension/Defs.lean Modified Mathlib/GroupTheory/Perm/Sign.lean Modified Mathlib/GroupTheory/Submonoid/Inverses.lean 2025-12-27 09:41:01 a39c234 chore(Data/Rat/Lemmas): deprecate `num_mk` and `den_mk` (#33334) ESTIMATED CHANGES Modified Mathlib/Data/Rat/Lemmas.lean +/- theorem Rat.den_mk +/- theorem Rat.num_mk 2025-12-27 09:40:59 5a89fda chore: update Mathlib dependencies 2025-12-27 (#33331) This PR updates the Mathlib dependencies. ESTIMATED CHANGES Modified lake-manifest.json 2025-12-27 09:40:58 c85f12d chore(*): restrict operations to `LinearMap`s (#33241) Make `LinearMap.ker`, `LinearMap.range`, `Submodule.map`, and `Submodule.comap` work for `LinearMap`s only. ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/Subalgebra/Tower.lean Modified Mathlib/Algebra/Category/ContinuousCohomology/Basic.lean Modified Mathlib/Algebra/Category/ModuleCat/Topology/Homology.lean Modified Mathlib/Algebra/Lie/Weights/Basic.lean Modified Mathlib/Algebra/Module/Submodule/Equiv.lean +/- theorem LinearEquiv.ofSubmodules_apply +/- theorem LinearEquiv.ofSubmodules_symm_apply Modified Mathlib/Algebra/Module/Submodule/Invariant.lean Modified Mathlib/Algebra/Module/Submodule/Ker.lean +/- theorem LinearMap.disjoint_ker +/- def LinearMap.ker +/- theorem LinearMap.ker_eq_bot' +/- theorem LinearMap.ker_eq_bot +/- theorem LinearMap.ker_eq_bot_of_injective +/- theorem LinearMap.le_ker_iff_map +/- theorem LinearMap.map_coe_ker +/- theorem LinearMap.mem_ker - theorem LinearMapClass.ker_eq_bot +/- theorem Submodule.comap_bot Modified Mathlib/Algebra/Module/Submodule/Map.lean +/- theorem Submodule.apply_coe_mem_map +/- theorem Submodule.coe_equivMapOfInjective_apply +/- def Submodule.comap +/- theorem Submodule.comap_coe - theorem Submodule.comap_coe_toLinearMap +/- theorem Submodule.comap_iInf +/- theorem Submodule.comap_inf +/- theorem Submodule.comap_mono +/- theorem Submodule.comap_top +/- theorem Submodule.disjoint_map +/- theorem Submodule.gc_map_comap +/- theorem Submodule.le_comap_map +/- def Submodule.map +/- theorem Submodule.map_bot +/- theorem Submodule.map_coe - theorem Submodule.map_coe_toLinearMap +/- theorem Submodule.map_comap_le +/- theorem Submodule.map_equivMapOfInjective_symm_apply +/- theorem Submodule.map_iInf +/- theorem Submodule.map_iSup +/- theorem Submodule.map_inf +/- theorem Submodule.map_inf_eq_map_inf_comap +/- theorem Submodule.map_inf_le +/- theorem Submodule.map_le_iff_le_comap +/- theorem Submodule.map_mono +/- theorem Submodule.map_sup +/- theorem Submodule.mem_comap +/- theorem Submodule.mem_map +/- theorem Submodule.mem_map_of_mem +/- def Submodule.orderIsoMapComap +/- def Submodule.orderIsoMapComapOfBijective +/- theorem Submodule.orderIsoMapComap_symm_apply Modified Mathlib/Algebra/Module/Submodule/Range.lean +/- theorem LinearMap.coe_range +/- theorem LinearMap.comap_injective +/- theorem LinearMap.comap_le_comap_iff +/- theorem LinearMap.map_le_range +/- theorem LinearMap.mem_range +/- theorem LinearMap.mem_range_self +/- def LinearMap.range +/- theorem LinearMap.range_eq_map +/- theorem LinearMap.range_eq_top +/- theorem LinearMap.range_eq_top_of_surjective +/- theorem LinearMap.range_le_iff_comap +/- theorem Submodule.codisjoint_map +/- theorem Submodule.map_comap_eq +/- theorem Submodule.map_comap_eq_of_le +/- theorem Submodule.map_comap_eq_self +/- theorem Submodule.map_top Modified Mathlib/Algebra/Module/ZLattice/Basic.lean Modified Mathlib/Analysis/CStarAlgebra/Module/Synonym.lean Modified Mathlib/Analysis/Calculus/FDeriv/Equiv.lean Modified Mathlib/Analysis/Calculus/Implicit.lean +/- theorem HasStrictFDerivAt.eq_implicitFunction +/- theorem HasStrictFDerivAt.eq_implicitFunctionOfComplemented +/- def HasStrictFDerivAt.implicitFunction +/- def HasStrictFDerivAt.implicitFunctionDataOfComplemented +/- def HasStrictFDerivAt.implicitFunctionOfComplemented +/- theorem HasStrictFDerivAt.implicitFunction_apply_image +/- def HasStrictFDerivAt.implicitToOpenPartialHomeomorph +/- theorem HasStrictFDerivAt.implicitToOpenPartialHomeomorph_fst +/- theorem HasStrictFDerivAt.implicitToOpenPartialHomeomorph_self +/- theorem HasStrictFDerivAt.map_implicitFunctionOfComplemented_eq +/- theorem HasStrictFDerivAt.map_implicitFunction_eq +/- theorem HasStrictFDerivAt.tendsto_implicitFunction +/- theorem HasStrictFDerivAt.to_implicitFunction +/- theorem HasStrictFDerivAt.to_implicitFunctionOfComplemented Modified Mathlib/Analysis/Calculus/ImplicitContDiff.lean Modified Mathlib/Analysis/Calculus/InverseFunctionTheorem/FDeriv.lean Modified Mathlib/Analysis/Calculus/LagrangeMultipliers.lean Modified Mathlib/Analysis/Convex/Cone/InnerDual.lean Modified Mathlib/Analysis/Convex/LinearIsometry.lean Modified Mathlib/Analysis/Distribution/TemperedDistribution.lean Modified Mathlib/Analysis/InnerProductSpace/Adjoint.lean +/- theorem ContinuousLinearMap.IsStarNormal.orthogonal_range +/- theorem ContinuousLinearMap.orthogonal_range Modified Mathlib/Analysis/InnerProductSpace/Dual.lean +/- theorem InnerProductSpace.nullSubmodule_le_ker_toDualMap_left +/- theorem InnerProductSpace.nullSubmodule_le_ker_toDualMap_right Modified Mathlib/Analysis/InnerProductSpace/LaxMilgram.lean +/- theorem IsCoercive.isClosed_range +/- theorem IsCoercive.ker_eq_bot +/- theorem IsCoercive.range_eq_top Modified Mathlib/Analysis/InnerProductSpace/LinearPMap.lean Modified Mathlib/Analysis/InnerProductSpace/MeanErgodic.lean Modified Mathlib/Analysis/InnerProductSpace/Orthogonal.lean +/- theorem Submodule.IsOrtho.comap_iff +/- theorem Submodule.IsOrtho.map +/- theorem Submodule.IsOrtho.map_iff +/- theorem Submodule.map_orthogonal +/- theorem Submodule.orthogonal_eq_inter Modified Mathlib/Analysis/InnerProductSpace/Positive.lean Modified Mathlib/Analysis/InnerProductSpace/Projection/Basic.lean +/- theorem Submodule.ker_orthogonalProjection Modified Mathlib/Analysis/InnerProductSpace/Projection/FiniteDimensional.lean Modified Mathlib/Analysis/InnerProductSpace/Symmetric.lean Modified Mathlib/Analysis/LocallyConvex/Basic.lean +/- theorem Absorbent.subset_range_iff_surjective Modified Mathlib/Analysis/Normed/Module/Complemented.lean +/- theorem ContinuousLinearMap.coe_equivProdOfSurjectiveOfIsCompl +/- theorem ContinuousLinearMap.equivProdOfSurjectiveOfIsCompl_apply Modified Mathlib/Analysis/Normed/Module/HahnBanach.lean Modified Mathlib/Analysis/Normed/Operator/Banach.lean +/- theorem ContinuousLinearEquiv.coeFn_ofBijective +/- theorem ContinuousLinearEquiv.coe_ofBijective +/- theorem ContinuousLinearEquiv.ofBijective_apply_symm_apply +/- theorem ContinuousLinearEquiv.ofBijective_symm_apply_apply +/- theorem ContinuousLinearMap.exists_nonlinearRightInverse_of_surjective +/- theorem ContinuousLinearMap.nonlinearRightInverseOfSurjective_nnnorm_pos Modified Mathlib/Analysis/Normed/Operator/Basic.lean Modified Mathlib/Analysis/Normed/Operator/LinearIsometry.lean - theorem LinearIsometry.isComplete_map_iff' Modified Mathlib/Analysis/VonNeumannAlgebra/Basic.lean Modified Mathlib/Geometry/Manifold/Instances/Sphere.lean Modified Mathlib/Geometry/Manifold/MFDeriv/Atlas.lean +/- theorem OpenPartialHomeomorph.MDifferentiable.ker_mfderiv_eq_bot +/- theorem OpenPartialHomeomorph.MDifferentiable.range_mfderiv_eq_top Modified Mathlib/Geometry/Manifold/WhitneyEmbedding.lean Modified Mathlib/LinearAlgebra/Basis/Cardinality.lean Modified Mathlib/LinearAlgebra/CliffordAlgebra/Basic.lean Modified Mathlib/LinearAlgebra/FreeModule/Int.lean Modified Mathlib/LinearAlgebra/LinearDisjoint.lean Modified Mathlib/LinearAlgebra/LinearPMap.lean +/- theorem LinearPMap.inverse_graph Modified Mathlib/LinearAlgebra/PerfectPairing/Basic.lean Modified Mathlib/LinearAlgebra/PerfectPairing/Restrict.lean Modified Mathlib/LinearAlgebra/Projection.lean Modified Mathlib/LinearAlgebra/Quotient/Basic.lean Modified Mathlib/LinearAlgebra/RootSystem/Defs.lean Modified Mathlib/LinearAlgebra/RootSystem/Finite/CanonicalBilinear.lean Modified Mathlib/LinearAlgebra/RootSystem/Finite/Nondegenerate.lean Modified Mathlib/LinearAlgebra/RootSystem/Irreducible.lean Modified Mathlib/LinearAlgebra/RootSystem/IsValuedIn.lean Modified Mathlib/LinearAlgebra/Span/Basic.lean +/- theorem LinearMap.eqOn_span' +/- theorem LinearMap.eqOn_span +/- theorem LinearMap.eqOn_span_iff +/- theorem LinearMap.ext_on +/- theorem LinearMap.ext_on_range +/- theorem LinearMap.ker_inf_lt_ker_inf_of_map_eq_of_lt +/- theorem LinearMap.map_eq_top_iff +/- theorem LinearMap.map_injective +/- theorem LinearMap.map_le_map_iff' +/- theorem Submodule.apply_mem_span_image_iff_mem_span +/- theorem Submodule.apply_mem_span_image_of_mem_span +/- theorem Submodule.comap_covBy_of_surjective +/- theorem Submodule.comap_map_eq +/- theorem Submodule.comap_map_eq_self +/- theorem Submodule.comap_map_sup_of_comap_le +/- theorem Submodule.image_span_subset +/- theorem Submodule.image_span_subset_span +/- theorem Submodule.isCoatom_comap_iff +/- theorem Submodule.isCoatom_comap_or_eq_top +/- theorem Submodule.isCoatom_map_of_ker_le +/- theorem Submodule.map_iInf_of_ker_le +/- theorem Submodule.map_lt_map_of_le_of_sup_lt_sup +/- theorem Submodule.map_span +/- theorem Submodule.map_span_le +/- theorem Submodule.map_strict_mono_of_ker_inf_eq +/- theorem Submodule.map_strict_mono_or_ker_sup_lt_ker_sup +/- theorem Submodule.mapsTo_span +/- theorem Submodule.notMem_span_of_apply_notMem_span_image - theorem Submodule.span_image' +/- theorem Submodule.span_image + theorem Submodule.span_image_linearEquiv +/- theorem Submodule.span_preimage_le Modified Mathlib/LinearAlgebra/TensorProduct/Quotient.lean Modified Mathlib/LinearAlgebra/TensorProduct/RightExactness.lean Modified Mathlib/LinearAlgebra/TensorProduct/Subalgebra.lean Modified Mathlib/LinearAlgebra/TensorProduct/Submodule.lean + theorem Submodule.coe_mulMap_comp_eq +/- theorem Submodule.mulMap_map_comp_eq Modified Mathlib/MeasureTheory/Function/LpSpace/ContinuousFunctions.lean Modified Mathlib/NumberTheory/NumberField/Basic.lean Modified Mathlib/NumberTheory/NumberField/Units/Regulator.lean Modified Mathlib/RepresentationTheory/Submodule.lean Modified Mathlib/RingTheory/Adjoin/Basic.lean Modified Mathlib/RingTheory/DedekindDomain/Different.lean Modified Mathlib/RingTheory/DedekindDomain/LinearDisjoint.lean Modified Mathlib/RingTheory/Extension/Cotangent/Free.lean Modified Mathlib/RingTheory/Finiteness/Basic.lean Modified Mathlib/RingTheory/Ideal/AssociatedPrime/Finiteness.lean Modified Mathlib/RingTheory/Jacobson/Radical.lean Modified Mathlib/RingTheory/Jacobson/Semiprimary.lean +/- theorem IsSemisimpleModule.jacobson_le_ker Modified Mathlib/RingTheory/Kaehler/JacobiZariski.lean Modified Mathlib/RingTheory/LinearDisjoint.lean Modified Mathlib/RingTheory/LocalRing/Quotient.lean Modified Mathlib/RingTheory/Localization/Module.lean Modified Mathlib/RingTheory/Noetherian/Defs.lean Modified Mathlib/RingTheory/Polynomial/DegreeLT.lean +/- theorem Polynomial.comap_taylorEquiv_degreeLT +/- theorem Polynomial.map_taylorEquiv_degreeLT Modified Mathlib/RingTheory/RingHom/Finite.lean Modified Mathlib/RingTheory/SimpleModule/Basic.lean Modified Mathlib/RingTheory/TensorProduct/Basic.lean Modified Mathlib/Topology/Algebra/Module/ClosedSubmodule.lean Modified Mathlib/Topology/Algebra/Module/Equiv.lean +/- def ContinuousLinearEquiv.ofSubmodule' +/- theorem ContinuousLinearEquiv.ofSubmodule'_apply +/- theorem ContinuousLinearEquiv.submoduleMap_symm_apply Modified Mathlib/Topology/Algebra/Module/FiniteDimension.lean Modified Mathlib/Topology/Algebra/Module/LinearMap.lean + theorem ContinuousLinearMap.apply_val_ker +/- theorem ContinuousLinearMap.isClosed_ker +/- theorem Submodule.ker_subtypeL +/- theorem Submodule.range_subtypeL Modified Mathlib/Topology/Algebra/Module/LinearMapPiProd.lean +/- theorem ContinuousLinearMap.iInf_ker_proj +/- theorem ContinuousLinearMap.range_prod_eq Modified Mathlib/Topology/Algebra/Module/LinearPMap.lean Modified Mathlib/Topology/ContinuousMap/StoneWeierstrass.lean 2025-12-27 09:04:07 31b5cb4 feat: an open subset of a Baire space is Baire (#32673) This PR proves the following lemmas: 1. If `f : X → Y` is an open quotient map and `X` is a Baire space, then `Y` is Baire. As a corollary, a homeomorphism maps a Baire space to a Baire space. 3. If `f : X → Y` is an open embedding and `Y` is a Baire space, then `X` is Baire. As a corollary, any open subset of a Baire space is Baire. Formalized with help from Aristotle. ESTIMATED CHANGES Modified Mathlib/Topology/Baire/Lemmas.lean + theorem IsOpen.baireSpace + theorem Topology.IsOpenEmbedding.baireSpace Modified Mathlib/Topology/Homeomorph/Lemmas.lean Modified Mathlib/Topology/Maps/OpenQuotient.lean + theorem IsOpenQuotientMap.baireSpace 2025-12-27 08:07:12 b86fd5c feat(NumberTheory.Chebyshev): prove connection between prime counting and theta (#32281) Uses Abel summation to express the prime counting function in terms of the Chebyshev theta function. This upstreams some results from PrimeNumberTheoremAnd. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/SpecialFunctions/Log/InvLog.lean + theorem Real.deriv_inv_log + theorem Real.not_continuousAt_inv_log_neg_one + theorem Real.not_continuousAt_inv_log_one + theorem Real.not_differentiableAt_inv_log_zero Modified Mathlib/Computability/AkraBazzi/SumTransform.lean +/- theorem AkraBazziRecurrence.deriv_smoothingFn Modified Mathlib/NumberTheory/AbelSummation.lean + theorem sum_mul_eq_sub_integral_mul₁ Modified Mathlib/NumberTheory/Chebyshev.lean + theorem Chebyshev.eventually_primeCounting_le + theorem Chebyshev.integrableOn_theta_div_id_mul_log_sq + theorem Chebyshev.integral_one_div_log_sq_isBigO + theorem Chebyshev.integral_theta_div_log_sq_isBigO + theorem Chebyshev.integral_theta_div_log_sq_isLittleO + theorem Chebyshev.intervalIntegrable_one_div_log_sq + theorem Chebyshev.primeCounting_eq_theta_div_log_add_integral + theorem Chebyshev.primeCounting_sub_theta_div_log_isBigO 2025-12-26 23:35:05 d7ea567 fix: fix `#lint` by marking `tacticDocs` as `public` (#33322) This PR fixes `#lint`, which had been reporting > Unknown constant `_private.Mathlib.Tactic.Linter.TacticDocumentation.0.tacticDocs` by marking `tacticDocs` as `public`. See [#mathlib4 > #lint is broken @ 💬](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/.23lint.20is.20broken/near/565443234). ESTIMATED CHANGES Modified Mathlib/Tactic/Linter/TacticDocumentation.lean Added MathlibTest/HashLint.lean 2025-12-26 23:35:03 9732e9f doc(Data): fix file refs (#33315) Fix some stale documentation file refs. ESTIMATED CHANGES Modified Mathlib/Data/Array/Defs.lean Modified Mathlib/Data/Complex/Basic.lean Modified Mathlib/Data/Fin/Tuple/NatAntidiagonal.lean Modified Mathlib/Data/Finset/Defs.lean Modified Mathlib/Data/Finsupp/MonomialOrder.lean Modified Mathlib/Data/List/Lex.lean Modified Mathlib/Data/Matrix/Mul.lean Modified Mathlib/Data/Nat/Init.lean Modified Mathlib/Data/Option/Defs.lean Modified Mathlib/Data/Set/Basic.lean Modified Mathlib/Data/Vector3.lean 2025-12-26 23:35:01 242d621 doc(CategoryTheory): fix file refs (#33304) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Bicategory/Functor/StrictPseudofunctor.lean Modified Mathlib/CategoryTheory/ConcreteCategory/Bundled.lean Modified Mathlib/CategoryTheory/ConcreteCategory/BundledHom.lean Modified Mathlib/CategoryTheory/ConcreteCategory/UnbundledHom.lean Modified Mathlib/CategoryTheory/Functor/Basic.lean Modified Mathlib/CategoryTheory/Groupoid/Subgroupoid.lean Modified Mathlib/CategoryTheory/Limits/FunctorCategory/Filtered.lean Modified Mathlib/CategoryTheory/Limits/FunctorCategory/Finite.lean Modified Mathlib/CategoryTheory/Limits/HasLimits.lean Modified Mathlib/CategoryTheory/Limits/Preserves/Limits.lean Modified Mathlib/CategoryTheory/Limits/Preserves/Over.lean Modified Mathlib/CategoryTheory/Localization/Equivalence.lean Modified Mathlib/CategoryTheory/Monoidal/Mon_.lean 2025-12-26 23:34:59 e06b833 doc(LinearAlgebra): fix file refs (#33279) Fix some stale documentation file refs. ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/Dimension/FreeAndStrongRankCondition.lean Modified Mathlib/LinearAlgebra/FiniteDimensional/Basic.lean Modified Mathlib/LinearAlgebra/FiniteDimensional/Defs.lean Modified Mathlib/LinearAlgebra/InvariantBasisNumber.lean Modified Mathlib/LinearAlgebra/Matrix/Defs.lean Modified Mathlib/LinearAlgebra/PiTensorProduct.lean 2025-12-26 22:32:46 48f5874 doc(Logic): fix file refs (#33277) Fix some stale documentation file refs. ESTIMATED CHANGES Modified Mathlib/Logic/Equiv/Basic.lean Modified Mathlib/Logic/Equiv/Defs.lean Modified Mathlib/Logic/Equiv/PartialEquiv.lean Modified Mathlib/Logic/Equiv/Sum.lean 2025-12-26 22:32:44 017c577 doc(Tactics): fix file refs (#33273) Fix some stale documentation file refs. ESTIMATED CHANGES Modified Mathlib/Tactic/CategoryTheory/Coherence/Normalize.lean Modified Mathlib/Tactic/NormNum/PowMod.lean Modified Mathlib/Tactic/TermCongr.lean 2025-12-26 22:32:42 c4c6eee doc(Combinatorics): fix file refs (#33272) Fix some stale documentation file refs. ESTIMATED CHANGES Modified Mathlib/Combinatorics/Enumerative/DyckWord.lean Modified Mathlib/Combinatorics/Matroid/Rank/Cardinal.lean Modified Mathlib/Combinatorics/Matroid/Rank/ENat.lean 2025-12-26 22:32:41 e126ddc doc(Condensed): fix file refs (#33263) Fix some stale documentation file refs. ESTIMATED CHANGES Modified Mathlib/Condensed/Explicit.lean Modified Mathlib/Condensed/Light/Explicit.lean 2025-12-26 22:32:39 e4e7128 doc(RepresentationTheory): fix file refs (#33262) Fix some stale documentation file refs. ESTIMATED CHANGES Modified Mathlib/RepresentationTheory/Homological/FiniteCyclic.lean Modified Mathlib/RepresentationTheory/Homological/GroupHomology/Shapiro.lean 2025-12-26 22:32:37 70b15d6 doc(NumberTheory): fix file refs (#33261) Fix some stale documentation file refs. ESTIMATED CHANGES Modified Mathlib/NumberTheory/DiophantineApproximation/Basic.lean Modified Mathlib/NumberTheory/NumberField/InfinitePlace/Completion.lean 2025-12-26 22:32:36 a619db0 doc(Order): fix file refs (#33260) Fix some stale documentation file refs. ESTIMATED CHANGES Modified Mathlib/Order/CompleteLattice/Finset.lean Modified Mathlib/Order/Filter/CountableInter.lean 2025-12-26 22:32:34 561ba4a doc(misc): fix file refs (#33258) Fix or clarify some dead documentation file refs. ESTIMATED CHANGES Modified Cache/IO.lean Modified Mathlib/Deprecated/RingHom.lean Modified Mathlib/Geometry/Manifold/VectorBundle/LocalFrame.lean Modified Mathlib/Init.lean Modified Mathlib/Probability/ProbabilityMassFunction/Basic.lean Modified Mathlib/Topology/UniformSpace/Ultra/Basic.lean 2025-12-26 22:32:32 0ce4e62 chore: use `to_dual` on `IsSuccPrelimit` / `IsSuccLimit` (#33151) ESTIMATED CHANGES Modified Mathlib/Order/Cover.lean Modified Mathlib/Order/SuccPred/Basic.lean Modified Mathlib/Order/SuccPred/Limit.lean - theorem Order.IsPredLimit.lt_pred - theorem Order.IsPredLimit.lt_pred_iff - theorem Order.IsPredLimit.lt_top - theorem Order.IsPredLimit.ne_top - theorem Order.IsPredLimit.pred_le_iff - theorem Order.IsPredLimit.pred_ne - def Order.IsPredLimit - theorem Order.IsPredPrelimit.isPredLimit - theorem Order.IsPredPrelimit.isPredLimit_of_not_isMax - theorem Order.IsPredPrelimit.lt_pred - theorem Order.IsPredPrelimit.lt_pred_iff - theorem Order.IsPredPrelimit.of_dense - theorem Order.IsPredPrelimit.pred_le_iff - theorem Order.IsPredPrelimit.pred_ne - def Order.IsPredPrelimit - theorem Order.isPredLimitRecOn_of_isMax - theorem Order.isPredLimitRecOn_of_isPredLimit - theorem Order.isPredLimitRecOn_pred - theorem Order.isPredLimitRecOn_pred_of_not_isMin - theorem Order.isPredLimit_iff - theorem Order.isPredPrelimitRecOn_of_isPredPrelimit - theorem Order.isPredPrelimitRecOn_pred - theorem Order.isPredPrelimitRecOn_pred_of_not_isMin - theorem Order.isPredPrelimit_iff_isPredLimit - theorem Order.isPredPrelimit_iff_isPredLimit_of_not_isMax - theorem Order.isPredPrelimit_iff_lt_pred - theorem Order.isPredPrelimit_iff_pred_ne - theorem Order.isPredPrelimit_of_pred_lt - theorem Order.isPredPrelimit_of_pred_ne - theorem Order.isPredPrelimit_toDual_iff - theorem Order.isPredPrelimit_top - theorem Order.mem_range_pred_of_not_isPredPrelimit - theorem Order.mem_range_pred_or_isPredPrelimit - theorem Order.not_isPredLimit_iff - theorem Order.not_isPredLimit_pred - theorem Order.not_isPredLimit_pred_of_not_isMin - theorem Order.not_isPredLimit_top - theorem Order.not_isPredPrelimit_iff' - theorem Order.not_isPredPrelimit_iff - theorem Order.not_isPredPrelimit_iff_exists_covBy - theorem Order.not_isPredPrelimit_pred - theorem Order.not_isPredPrelimit_pred_of_not_isMin - theorem PredOrder.limitRecOn_isMax - theorem PredOrder.limitRecOn_of_isPredLimit - theorem PredOrder.limitRecOn_pred - theorem PredOrder.limitRecOn_pred_of_not_isMin - theorem PredOrder.prelimitRecOn_of_isPredPrelimit - theorem PredOrder.prelimitRecOn_pred - theorem PredOrder.prelimitRecOn_pred_of_not_isMin Modified Mathlib/Tactic/Translate/ToDual.lean 2025-12-26 22:32:31 19ad365 chore(Order/Directed): use `to_dual` (#32459) I've made an effort to dualize specifically lemmas about directed `(· ≤ ·)`, so as to reduce the number of appearances of ≥ in code. ESTIMATED CHANGES Modified Mathlib/Analysis/Normed/Unbundled/SpectralNorm.lean Modified Mathlib/Order/Directed.lean - theorem DirectedOn.is_bot_of_is_min - theorem exists_le_le - theorem exists_lt_of_directed_le - theorem isBot_iff_isMin - theorem isBot_or_exists_lt 2025-12-26 21:58:17 20b90d9 feat: `CompleteLinearOrder (Πₗ i, α i)` (#32567) Used in the CGT repo. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Order/CompleteLattice/PiLex.lean + theorem Pi.Colex.le_sInf_apply + theorem Pi.Colex.le_sSup_apply + theorem Pi.Colex.sInf_apply + theorem Pi.Colex.sInf_apply_le + theorem Pi.Colex.sSup_apply + theorem Pi.Colex.sSup_apply_le + theorem Pi.Lex.le_sInf_apply + theorem Pi.Lex.le_sSup_apply + theorem Pi.Lex.sInf_apply + theorem Pi.Lex.sInf_apply_le + theorem Pi.Lex.sSup_apply + theorem Pi.Lex.sSup_apply_le Modified Mathlib/Order/PiLex.lean + theorem Pi.apply_le_of_toColex + theorem Pi.apply_le_of_toLex 2025-12-26 18:30:57 5f557c4 feat(CategoryTheory/Sites): more API for IsSheafFor (#33287) Some more API is added for (pre)sieves and we obtain a few results about how `IsSheafFor` behaves for presheaves on `Over` categories. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Sites/IsSheafFor.lean + def CategoryTheory.Presieve.Arrows.toCompatible + theorem CategoryTheory.Presieve.isSheafFor_iff_of_iso + theorem CategoryTheory.Presieve.isSheafFor_ofArrows_iff_bijective_toCompabible + theorem CategoryTheory.Presieve.isSheafFor_over_map_op_comp_iff + theorem CategoryTheory.Presieve.isSheafFor_over_map_op_comp_ofArrows_iff + theorem CategoryTheory.Presieve.isSheafFor_pullback_iff Modified Mathlib/CategoryTheory/Sites/Sieves.lean + theorem CategoryTheory.Presieve.ofArrows_category + theorem CategoryTheory.Sieve.exists_eq_ofArrows + theorem CategoryTheory.Sieve.ofArrows_category' + theorem CategoryTheory.Sieve.ofArrows_category + theorem CategoryTheory.Sieve.pullback_ofArrows_of_iso 2025-12-26 18:30:56 bdf37f0 chore(*): golf, add missing lemmas (#33285) Cherry-picked parts of #33241 ESTIMATED CHANGES Modified Mathlib/Algebra/Module/Submodule/Map.lean Modified Mathlib/Analysis/Calculus/ImplicitContDiff.lean Modified Mathlib/Analysis/InnerProductSpace/Orthogonal.lean Modified Mathlib/Analysis/Normed/Operator/Banach.lean Modified Mathlib/Analysis/Normed/Operator/LinearIsometry.lean Modified Mathlib/LinearAlgebra/Matrix/Rank.lean Modified Mathlib/LinearAlgebra/Prod.lean + theorem LinearEquiv.symm_prodComm Modified Mathlib/RingTheory/Ideal/Cotangent.lean Modified Mathlib/Topology/Algebra/Module/Equiv.lean 2025-12-26 18:30:52 34426f4 refactor(Order/BoundedOrder/Lattice): use `to_dual` (#33268) It seems that this file has long lost its original purpose, so we also update the module docstring, and move some unrelated theorems to an earlier import. ESTIMATED CHANGES Modified Mathlib/Order/BoundedOrder/Lattice.lean - theorem WellFoundedLT.induction_bot - theorem bot_inf_eq +/- theorem bot_sup_eq - theorem exists_and_iff_of_antitone - theorem exists_and_iff_of_monotone - theorem exists_ge_and_iff_exists - theorem exists_le_and_iff_exists - theorem inf_bot_eq - theorem inf_eq_top_iff - theorem inf_top_eq +/- theorem max_bot_left +/- theorem max_bot_right +/- theorem max_eq_bot - theorem max_eq_top - theorem max_ne_top - theorem max_top_left - theorem max_top_right +/- theorem min_bot_left +/- theorem min_bot_right +/- theorem min_eq_bot - theorem min_eq_top + theorem min_ne_bot - theorem min_top_left - theorem min_top_right +/- theorem sup_bot_eq +/- theorem sup_top_eq - theorem top_inf_eq +/- theorem top_sup_eq Modified Mathlib/Order/Lattice.lean + theorem exists_and_iff_of_antitone + theorem exists_and_iff_of_monotone + theorem exists_ge_and_iff_exists + theorem exists_le_and_iff_exists 2025-12-26 18:30:51 41b24ea feat(AlgebraicTopology): prerequisites for the commutation of `HomotopyCategory` with binary products (#33201) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/AlgebraicTopology/SimplicialSet/CompStructTruncated.lean + def SSet.Truncated.Edge.CompStruct.idCompId Added Mathlib/AlgebraicTopology/SimplicialSet/HoFunctorMonoidal.lean + def SSet.Truncated.Edge.CompStruct.tensor + theorem SSet.Truncated.Edge.id_tensor_id + theorem SSet.Truncated.Edge.map_associator_hom + theorem SSet.Truncated.Edge.map_fst + theorem SSet.Truncated.Edge.map_snd + theorem SSet.Truncated.Edge.map_tensorHom + theorem SSet.Truncated.Edge.map_whiskerLeft + theorem SSet.Truncated.Edge.map_whiskerRight + def SSet.Truncated.Edge.tensor + theorem SSet.Truncated.Edge.tensor_surjective + def SSet.Truncated.HomotopyCategory.isoTerminal + theorem SSet.Truncated.HomotopyCategory.square Modified Mathlib/AlgebraicTopology/SimplicialSet/HomotopyCat.lean + theorem SSet.Truncated.HomotopyCategory.ext + def SSet.Truncated.HomotopyCategory.isTerminal Modified Mathlib/AlgebraicTopology/SimplicialSet/Monoidal.lean + theorem SSet.Truncated.tensor_map_apply_fst + theorem SSet.Truncated.tensor_map_apply_snd Modified Mathlib/CategoryTheory/Category/ReflQuiv.lean Modified Mathlib/CategoryTheory/Functor/Currying.lean + def CategoryTheory.Functor.fullyFaithfulCurry Modified Mathlib/CategoryTheory/Functor/CurryingThree.lean + def CategoryTheory.Functor.fullyFaithfulCurry₃ Modified Mathlib/CategoryTheory/Products/Basic.lean + theorem CategoryTheory.prod_id' 2025-12-26 18:30:49 365522a feat(AlgebraicTopology): bifibrant objects (#33086) We introduce the full subcategories of cofibrant, fibrant and bifibrant objects (in model categories). ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/AlgebraicTopology/ModelCategory/Bifibrant.lean + theorem HomotopicalAlgebra.BifibrantObject.homMk_homMk + theorem HomotopicalAlgebra.BifibrantObject.homMk_id + theorem HomotopicalAlgebra.BifibrantObject.homMk_surjective + theorem HomotopicalAlgebra.BifibrantObject.mk_surjective + theorem HomotopicalAlgebra.BifibrantObject.weakEquivalence_homMk_iff + theorem HomotopicalAlgebra.CofibrantObject.homMk_homMk + theorem HomotopicalAlgebra.CofibrantObject.homMk_id + theorem HomotopicalAlgebra.CofibrantObject.homMk_surjective + theorem HomotopicalAlgebra.CofibrantObject.mk_surjective + theorem HomotopicalAlgebra.CofibrantObject.weakEquivalence_homMk_iff + theorem HomotopicalAlgebra.FibrantObject.homMk_homMk + theorem HomotopicalAlgebra.FibrantObject.homMk_id + theorem HomotopicalAlgebra.FibrantObject.homMk_surjective + theorem HomotopicalAlgebra.FibrantObject.mk_surjective + theorem HomotopicalAlgebra.FibrantObject.weakEquivalence_homMk_iff + def HomotopicalAlgebra.bifibrantObjects + theorem HomotopicalAlgebra.bifibrantObjects_le_cofibrantObject + theorem HomotopicalAlgebra.bifibrantObjects_le_fibrantObject + def HomotopicalAlgebra.cofibrantObjects + def HomotopicalAlgebra.fibrantObjects 2025-12-26 18:30:47 8825dc8 feat(Combinatorics/SimpleGraph): define edge-connectivity (#32870) This PR introduces k-edge-connectivity definitions for SimpleGraph, addressing #31691. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Combinatorics/SimpleGraph/Connectivity/EdgeConnectivity.lean + theorem SimpleGraph.IsEdgeConnected.connected + theorem SimpleGraph.IsEdgeConnected.preconnected + def SimpleGraph.IsEdgeConnected + theorem SimpleGraph.IsEdgeReachable.anti + theorem SimpleGraph.IsEdgeReachable.mono + theorem SimpleGraph.IsEdgeReachable.reachable + theorem SimpleGraph.IsEdgeReachable.rfl + theorem SimpleGraph.IsEdgeReachable.symm + theorem SimpleGraph.IsEdgeReachable.trans + def SimpleGraph.IsEdgeReachable + theorem SimpleGraph.isBridge_iff_adj_and_not_isEdgeConnected_two + theorem SimpleGraph.isEdgeConnected_add_one + theorem SimpleGraph.isEdgeConnected_one + theorem SimpleGraph.isEdgeConnected_two + theorem SimpleGraph.isEdgeReachable_add_one + theorem SimpleGraph.isEdgeReachable_one 2025-12-26 18:30:46 2021635 feat: missing instances for `OrderDual`/`Lex`/`Colex` (#32242) ESTIMATED CHANGES Modified Mathlib/Order/Synonym.lean 2025-12-26 18:30:44 1f816ba feat(Geometry/Euclidean/Sphere/SecondInter): `secondInter` and sides of faces of a simplex (#31495) Add lemmas that, if you take a simplex with one vertex on a sphere and the others on or inside it (typically, a triangle and its circumcircle), and take a line through the given vertex and a point in the interior of the simplex or the interior of the opposite face, the second intersection of that line with the sphere lies on the opposite side (from the vertex) of the face opposite that vertex. ESTIMATED CHANGES Modified Mathlib/Geometry/Euclidean/Sphere/SecondInter.lean + theorem EuclideanGeometry.Sphere.sOppSide_faceOpposite_secondInter_of_mem_interior + theorem EuclideanGeometry.Sphere.sOppSide_faceOpposite_secondInter_of_mem_interior_faceOpposite 2025-12-26 18:30:42 1ed1ea6 feat(Geometry/Euclidean/Incenter): `reindex` lemmas (#31057) Add lemmas about all the incenter/excenter-related definitions applied to a reindexed simplex. ESTIMATED CHANGES Modified Mathlib/Geometry/Euclidean/Incenter.lean + theorem Affine.Simplex.excenterExists_reindex + theorem Affine.Simplex.excenterWeightsUnnorm_reindex + theorem Affine.Simplex.excenterWeights_reindex + theorem Affine.Simplex.excenter_reindex + theorem Affine.Simplex.exradius_reindex + theorem Affine.Simplex.exsphere_reindex + theorem Affine.Simplex.incenter_reindex + theorem Affine.Simplex.inradius_reindex + theorem Affine.Simplex.insphere_reindex + theorem Affine.Simplex.touchpointWeights_reindex + theorem Affine.Simplex.touchpoint_reindex 2025-12-26 18:30:40 d67b3cb feat(CategoryTheory): for any filtered category, there exists a final functor from a directed poset (#30605) In this PR, we formalize the proof by Deligne (SGA 4 I 8.1.6) that for any (small) filtered category `J`, there exists a final functor `F : α ⥤ J` where `α` is a directed partially ordered set (`IsFiltered.exists_directed`). The construction applies more generally to `κ`-filtered categories and `κ`-directed posets (`IsCardinalFiltered.exists_cardinal_directed`). ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Comma/Arrow.lean + theorem CategoryTheory.Arrow.mk_surjective Modified Mathlib/CategoryTheory/Filtered/Basic.lean + theorem CategoryTheory.IsFiltered.isDirectedOrder Modified Mathlib/CategoryTheory/Limits/Preserves/Filtered.lean Modified Mathlib/CategoryTheory/Presentable/Directed.lean + def CategoryTheory.IsCardinalFiltered.exists_cardinal_directed.D₁ + def CategoryTheory.IsCardinalFiltered.exists_cardinal_directed.D₂ + def CategoryTheory.IsCardinalFiltered.exists_cardinal_directed.D₃ + def CategoryTheory.IsCardinalFiltered.exists_cardinal_directed.D₄ + theorem CategoryTheory.IsCardinalFiltered.exists_cardinal_directed.aux + theorem CategoryTheory.IsCardinalFiltered.exists_cardinal_directed.eq_id_of_D₂_W + theorem CategoryTheory.IsCardinalFiltered.exists_cardinal_directed.final_functor + theorem CategoryTheory.IsCardinalFiltered.exists_cardinal_directed.isCardinalFiltered + theorem CategoryTheory.IsCardinalFiltered.exists_cardinal_directed.isCardinalFiltered_aux + theorem CategoryTheory.IsCardinalFiltered.exists_cardinal_directed + theorem CategoryTheory.IsFiltered.exists_directed 2025-12-26 17:40:40 1c6a0a0 feat(CategoryTheory): adjunctions in Cat (#33160) We show that adjunctions in the bicategory `Cat` correspond to adjunctions between functors in the usual categorical sense. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/CategoryTheory/Bicategory/Adjunction/Basic.lean Added Mathlib/CategoryTheory/Bicategory/Adjunction/Cat.lean + def CategoryTheory.Adjunction.ofCat + theorem CategoryTheory.Adjunction.ofCat_toCat + def CategoryTheory.Adjunction.toCat + theorem CategoryTheory.Adjunction.toCat_comp_toCat + theorem CategoryTheory.Adjunction.toCat_ofCat + theorem CategoryTheory.Bicategory.Adjunction.ofCat_comp + theorem CategoryTheory.Bicategory.Adjunction.ofCat_id + theorem CategoryTheory.Bicategory.toNatTrans_conjugateEquiv + theorem CategoryTheory.Bicategory.toNatTrans_mateEquiv 2025-12-26 17:40:38 a04e268 chore(FieldTheory): add API lemma's for IntermediateField.adjoin (#33122) This PR adds two small API lemma's and a simp/aesop annotation for ```IntermediateField.adjoin```. See https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/IntermediateField.20mem_adjoin_of_mem for the discussion. ESTIMATED CHANGES Modified Mathlib/FieldTheory/IntermediateField/Adjoin/Defs.lean + theorem IntermediateField.mem_adjoin_of_mem + theorem IntermediateField.notMem_of_notMem_adjoin 2025-12-26 17:40:36 1544615 feat(Topology/InfiniteSum): tprod_one_{add/sub}_ordered (#30436) This extends the existing `Finset.prod_one_sub_ordered` to infinite sum/product, and also adds the more natural `add` version. Together with some previous PRs about infinite sum/prod and powerseries, this is part of my effort of upstreaming useful stuff from https://github.com/wwylele/PentagonalNumberTheorem. It starts getting into niche lemma, so suggestions such that not wanting this in mathlib, or it should be stated in a different form, are all welcomed. ESTIMATED CHANGES Modified Mathlib/Algebra/BigOperators/Ring/Finset.lean + theorem Finset.prod_one_add_ordered Modified Mathlib/Topology/Algebra/InfiniteSum/Ring.lean + theorem tprod_one_add_ordered + theorem tprod_one_sub_ordered 2025-12-26 17:05:56 0bf098c refactor: deprecate `Ordinal.IsNormal` for `Order.IsNormal` (#33294) ESTIMATED CHANGES Modified Mathlib/Order/IsNormal.lean Modified Mathlib/SetTheory/Cardinal/Aleph.lean Modified Mathlib/SetTheory/Cardinal/Cofinality.lean + theorem Ordinal.IsFundamentalSequence.of_isNormal - theorem Ordinal.IsNormal.cof_eq - theorem Ordinal.IsNormal.cof_le + theorem Ordinal.cof_eq_of_isNormal + theorem Ordinal.cof_le_of_isNormal Modified Mathlib/SetTheory/Ordinal/Arithmetic.lean +/- theorem Ordinal.IsNormal.id_le +/- theorem Ordinal.IsNormal.inj +/- theorem Ordinal.IsNormal.isSuccLimit +/- theorem Ordinal.IsNormal.le_apply +/- theorem Ordinal.IsNormal.le_iff +/- theorem Ordinal.IsNormal.le_iff_eq +/- theorem Ordinal.IsNormal.le_set' +/- theorem Ordinal.IsNormal.le_set +/- theorem Ordinal.IsNormal.limit_le +/- theorem Ordinal.IsNormal.limit_lt +/- theorem Ordinal.IsNormal.lt_iff +/- theorem Ordinal.IsNormal.monotone +/- theorem Ordinal.IsNormal.refl +/- theorem Ordinal.IsNormal.strictMono +/- theorem Ordinal.IsNormal.trans - def Ordinal.IsNormal Modified Mathlib/SetTheory/Ordinal/Enum.lean Modified Mathlib/SetTheory/Ordinal/Exponential.lean - theorem Ordinal.iSup_pow + theorem Ordinal.iSup_pow_natCast +/- theorem Ordinal.isNormal_opow Modified Mathlib/SetTheory/Ordinal/Family.lean +/- theorem Ordinal.IsNormal.apply_of_isSuccLimit - theorem Ordinal.IsNormal.apply_omega0 +/- theorem Ordinal.IsNormal.map_iSup +/- theorem Ordinal.IsNormal.map_iSup_of_bddAbove +/- theorem Ordinal.IsNormal.map_sSup_of_bddAbove + theorem Ordinal.apply_omega0_of_isNormal - theorem Ordinal.iSup_add_nat + theorem Ordinal.iSup_add_natCast - theorem Ordinal.iSup_mul_nat + theorem Ordinal.iSup_mul_natCast Modified Mathlib/SetTheory/Ordinal/FixedPoint.lean - theorem Ordinal.IsNormal.apply_le_nfp - theorem Ordinal.IsNormal.apply_lt_nfp - theorem Ordinal.IsNormal.deriv_fp - theorem Ordinal.IsNormal.fp_iff_deriv - theorem Ordinal.IsNormal.le_iff_deriv - theorem Ordinal.IsNormal.mem_range_deriv - theorem Ordinal.IsNormal.nfp_fp - theorem Ordinal.IsNormal.nfp_le_apply + theorem Ordinal.apply_le_nfp + theorem Ordinal.apply_lt_nfp + theorem Ordinal.deriv_fp + theorem Ordinal.fp_iff_deriv + theorem Ordinal.le_iff_deriv + theorem Ordinal.mem_range_deriv + theorem Ordinal.nfp_fp + theorem Ordinal.nfp_le_apply Modified Mathlib/SetTheory/Ordinal/Principal.lean Modified Mathlib/SetTheory/Ordinal/Topology.lean Modified Mathlib/SetTheory/Ordinal/Veblen.lean - theorem Ordinal.IsNormal.veblenWith_zero + theorem Ordinal.isNormal_veblenWith_zero 2025-12-26 17:05:54 4e10313 feat: add Serre's lemma about indecomposable elements of a monoid (#33208) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Group/Irreducible/Indecomposable.lean + def IsMulIndecomposable + theorem Submonoid.closure_image_one_lt_and_isMulIndecomposable + theorem isMulIndecomposable_id_univ 2025-12-26 15:30:04 3a194f7 feat(LinearAlgebra/Dual/Lemmas): generalize hypotheses (#33101) Generalize a few lemmas to either * a noncommutative setting * a `Module.Free` hypothesis in an instance is replaced by the corresponding `Module.Projective`. ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/Dual/Lemmas.lean +/- theorem Module.Dual.range_eq_top_of_ne_zero +/- theorem Module.forall_dual_apply_eq_zero_iff +/- theorem Submodule.exists_dual_map_eq_bot_of_lt_top +/- theorem Submodule.exists_dual_map_eq_bot_of_notMem 2025-12-26 14:31:38 0452cfe feat(CategoryTheory/ShiftedHom): lemmas for `ShiftedHom.map` (#33302) In this PR, we added `map_zero`, `map_add`, `map_smul` for `ShiftedHom.map`. ESTIMATED CHANGES Modified Mathlib/Algebra/Homology/DerivedCategory/Ext/ExtClass.lean Modified Mathlib/CategoryTheory/Localization/SmallShiftedHom.lean Modified Mathlib/CategoryTheory/Shift/ShiftedHom.lean + theorem CategoryTheory.ShiftedHom.map_add + theorem CategoryTheory.ShiftedHom.map_smul + theorem CategoryTheory.ShiftedHom.map_zero - def CategoryTheory.ShiftedHom Modified Mathlib/CategoryTheory/Shift/ShiftedHomOpposite.lean 2025-12-26 13:27:50 d9c5e28 chore(Order/Synonym): use `to_dual` (#33266) ESTIMATED CHANGES Modified Mathlib/Order/Synonym.lean +/- theorem OrderDual.le_toDual +/- theorem OrderDual.lt_toDual +/- theorem OrderDual.ofDual_le_ofDual +/- theorem OrderDual.ofDual_lt_ofDual +/- theorem OrderDual.ofDual_symm_eq +/- theorem OrderDual.ofDual_toDual - theorem OrderDual.toDual_le +/- theorem OrderDual.toDual_le_toDual - theorem OrderDual.toDual_lt +/- theorem OrderDual.toDual_lt_toDual +/- theorem OrderDual.toDual_ofDual +/- theorem OrderDual.toDual_symm_eq 2025-12-26 12:38:58 8a3425e feat(Algebra/Homology): the spectral object with values in the homotopy category (#33202) We define the precomposition of a spectral object (in a triangulated category) by an arbitrary functor. We also define the spectral object with values in the homotopy category that is indexed by the category of cochain complexes. It follows that to any functor `ι ⥤ CochainComplex C ℤ` (e.g. a filtered complex), there is an associated spectral object indexed by `ι` with values in the homotopy category of `C`. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Homology/HomotopyCategory/SpectralObject.lean Modified Mathlib/CategoryTheory/ComposableArrows/Basic.lean + def CategoryTheory.Functor.mapComposableArrowsObjMk₁Iso + def CategoryTheory.Functor.mapComposableArrowsObjMk₂Iso Modified Mathlib/CategoryTheory/ComposableArrows/One.lean + def CategoryTheory.ComposableArrows.functorArrows + def CategoryTheory.ComposableArrows.mapFunctorArrows Modified Mathlib/CategoryTheory/Triangulated/SpectralObject.lean + def CategoryTheory.Functor.mapTriangulatedSpectralObject + def CategoryTheory.Triangulated.SpectralObject.mapTriangulatedFunctor + def CategoryTheory.Triangulated.SpectralObject.precomp 2025-12-26 12:38:56 9165b4d feat: zpow left ₀ lemmas (#33051) Add the `•₀` version of : `zpow_le_zpow_left`, `zpow_lt_zpow_left`, `zpow_le_zpow_iff_left` and `zpow_lt_zpow_iff_left`. I also moved `zpow_left_strictMonoOn₀` to be in the new section I created, avoiding the use of `omit`. ESTIMATED CHANGES Modified Mathlib/Algebra/Order/GroupWithZero/Unbundled/Basic.lean + theorem zpow_le_zpow_iff_left₀ + theorem zpow_le_zpow_left₀ + theorem zpow_left_monoOn₀ +/- theorem zpow_left_strictMonoOn₀ + theorem zpow_lt_zpow_iff_left₀ + theorem zpow_lt_zpow_left₀ 2025-12-26 12:08:01 0d48e3a chore: golf using `grind` and `simp` (#32853) ESTIMATED CHANGES Modified Mathlib/Algebra/Module/ZLattice/Basic.lean Modified Mathlib/Data/Fin/Tuple/NatAntidiagonal.lean Modified Mathlib/RingTheory/RingHom/Finite.lean Modified Mathlib/RingTheory/RingHom/FinitePresentation.lean 2025-12-26 02:20:39 51192f7 ci(daily.yml): only run notify jobs in leanprover-community/mathlib4 (#33293) They're currently running in mathlib4-nightly-testing and posting junk, cf. https://leanprover.zulipchat.com/#narrow/channel/428973-nightly-testing/topic/mathlib.20test.20executable.20failure/near/565396701 ESTIMATED CHANGES Modified .github/workflows/daily.yml 2025-12-25 22:00:43 74bdd8d chore(MeasureTheory/Measure/Stieltjes): use `CompactIccSpace` instead of `ConditionallyCompleteLinearOrder` (#33158) In #32482, the definitions in this file were generalized in a way that allows the space `R` to be empty. However, this generalization isn't actually usable, because most of the file assumes `ConditionallyCompleteLinearOrder R`, which implies `Nonempty R` (because of the junk value of `sSup`). This PR fixes this by switching to `[LinearOrder R] [CompactIccSpace R]`. ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Constructions/BorelSpace/Order.lean Modified Mathlib/MeasureTheory/Measure/Stieltjes.lean +/- theorem StieltjesFunction.isProbabilityMeasure +/- theorem StieltjesFunction.measure_univ 2025-12-25 14:01:15 ed35afa doc: update `use` doc-string to distinguish `exists` / `use` / `use!` (#32699) Zulip discussion: [#general > use vs. exists @ 💬](https://leanprover.zulipchat.com/#narrow/channel/113488-general/topic/use.20vs.2E.20exists/near/562650656) ESTIMATED CHANGES Modified Mathlib/Tactic/Use.lean Modified MathlibTest/Use.lean 2025-12-25 08:46:44 3bd92ff doc(AlgebraicGeometry): fix file refs (#33264) Fix some stale documentation file refs. ESTIMATED CHANGES Modified Mathlib/AlgebraicGeometry/Gluing.lean Modified Mathlib/AlgebraicGeometry/ProjectiveSpectrum/StructureSheaf.lean 2025-12-24 17:12:27 1c119a3 feat: more theorems on `ArchimedeanClass.stdPart` (#33048) ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Ring/Archimedean.lean + theorem ArchimedeanClass.mk_intCast_nonneg + theorem ArchimedeanClass.mk_natCast_nonneg + theorem ArchimedeanClass.mk_ofNat + theorem ArchimedeanClass.mk_ratCast_nonneg Modified Mathlib/Algebra/Order/Ring/StandardPart.lean + theorem ArchimedeanClass.FiniteElement.mk_add_mk +/- theorem ArchimedeanClass.FiniteElement.mk_intCast + theorem ArchimedeanClass.FiniteElement.mk_le_mk + theorem ArchimedeanClass.FiniteElement.mk_lt_mk + theorem ArchimedeanClass.FiniteElement.mk_mul_mk +/- theorem ArchimedeanClass.FiniteElement.mk_natCast - theorem ArchimedeanClass.FiniteElement.mk_neg +/- theorem ArchimedeanClass.FiniteElement.mk_one + theorem ArchimedeanClass.FiniteElement.mk_ratCast + theorem ArchimedeanClass.FiniteElement.mk_sub_mk +/- theorem ArchimedeanClass.FiniteElement.mk_zero + theorem ArchimedeanClass.FiniteElement.neg_mk + theorem ArchimedeanClass.FiniteResidueField.mk_ratCast +/- theorem ArchimedeanClass.stdPart_add + theorem ArchimedeanClass.stdPart_add_eq_left + theorem ArchimedeanClass.stdPart_add_eq_right + theorem ArchimedeanClass.stdPart_eq_zero +/- theorem ArchimedeanClass.stdPart_intCast + theorem ArchimedeanClass.stdPart_monotoneOn - theorem ArchimedeanClass.stdPart_of_mk_ne_zero +/- theorem ArchimedeanClass.stdPart_sub + theorem ArchimedeanClass.stdPart_sub_eq_left + theorem ArchimedeanClass.stdPart_sub_eq_right 2025-12-24 15:23:24 4d15770 chore(Order/WithBot): add `to_dual` attributes (part 3) (#32499) We dualize various instances on `WithBot` and `WithTop`. Most of these can unfortunately not (yet) be auto-generated, so we just mark them with `to_dual existing`. ESTIMATED CHANGES Modified Mathlib/Order/WithBot.lean +/- theorem WithBot.coe_inf +/- theorem WithBot.coe_max +/- theorem WithBot.coe_min +/- theorem WithBot.coe_sup + theorem WithBot.lt_iff_exists_coe_btwn' - theorem WithTop.coe_inf - theorem WithTop.coe_max - theorem WithTop.coe_min - theorem WithTop.coe_sup +/- theorem WithTop.denselyOrdered_iff - theorem WithTop.ge_of_forall_gt_iff_ge - theorem WithTop.le_of_forall_lt_iff_le - theorem WithTop.lt_iff_exists_coe_btwn 2025-12-24 14:13:04 155c363 chore: more `to_dual` tags on `Order.(succ/pred)` (#33150) I had to change some proofs to use `succ_le_succ` instead of `succ_mono`, since the latter can't yet be dualized. In the future, we should probably deprecate the former. ESTIMATED CHANGES Modified Mathlib/Order/SuccPred/Basic.lean - theorem Order.le_pred_iff_eq_bot - theorem Order.pred_bot - theorem Order.pred_lt_iff_ne_bot - theorem Order.pred_lt_top - theorem Order.pred_ne_top - theorem Order.pred_succ_le - theorem Order.pred_top_le_iff - theorem Order.pred_top_lt_iff 2025-12-24 14:13:03 fe8bcc3 feat: supremum of a continuous function on a dense set is equal to the supremum on the univ (#33145) This PR adds the following theorems: 1. `Dense.continuous_upperBounds` : If `α` is a preordered set with ClosedIicTopology, `f : γ → α` is a continuous functions, and `S` is a dense subset of `γ`. Then the upper bounds of `f '' S` is equal to the upper bounds of `range f`. 2. `Dense.continuous_sup` : If`α` is a conditionally complete lattice and `f` is bounded above, then `⨆ i, f i = ⨆ s : S, f s`. 3. `Dense.continuous_sup'`: If `α` is a conditionally complete linear order, then `⨆ i, f i = ⨆ s : S, f s`. Some of the codes in this PR are created by @plp127 and @j-loreaux . See also the zulip discussion: [#Is there code for X? > Continuous function reaches its supremum on a dense set](https://leanprover.zulipchat.com/#narrow/channel/217875-Is-there-code-for-X.3F/topic/Continuous.20function.20reaches.20its.20supremum.20on.20a.20dense.20set/with/556965307). ESTIMATED CHANGES Modified Mathlib/Topology/Order/IsLUB.lean + theorem Dense.ciInf' + theorem Dense.ciInf + theorem Dense.ciSup' + theorem Dense.ciSup + theorem Dense.lowerBounds_image + theorem Dense.upperBounds_image 2025-12-24 14:13:01 3137715 chore(RingTheory/Coalgebra/MonoidAlgebra): use `to_additive` (#33141) ESTIMATED CHANGES Modified Mathlib/RingTheory/Coalgebra/MonoidAlgebra.lean - theorem AddMonoidAlgebra.comul_single - theorem AddMonoidAlgebra.counit_single 2025-12-24 14:12:58 69b5d7b feat(Algebra): localized module in `ModuleCat` (#31998) For a ring `R` satisfying `[Small.{v} R]` and a submonoid `S` of `R`, this PR defines an exact functor `ModuleCat.{v} R ⥤ ModuleCat.{v} (Localization S)`. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Category/ModuleCat/Localization.lean + theorem ModuleCat.localizedModule_functor_map_exact 2025-12-24 13:09:20 910dac3 feat(LinearAlgebra/Transvection): relax commutativity assumption (#33251) Relax the commutativity assumption on the base ring for a transvection. Only one lemma needs commutativity. The proofs are essentially unchanged, except that the `module` tactic doesn't work anymore, and its uses are replaced by the tactic `abel`, after preliminary reductions. ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/Transvection.lean 2025-12-24 13:09:19 aed28ae feat: Int.gcd_left_comm (#33235) From flt-regular ESTIMATED CHANGES Modified Mathlib/Data/Int/Init.lean + theorem Int.gcd_left_comm 2025-12-24 13:09:17 fbfe14c feat(CategoryTheory): The closed monoidal structure on the product category of families of closed monoidal categories (#33183) Given a family of closed monoidal categories, we show that the product of these categories is a closed monoidal category with the pointwise monoidal structure. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/CategoryTheory/Pi/Basic.lean + def CategoryTheory.Pi.isoMk Added Mathlib/CategoryTheory/Pi/Monoidal.lean + theorem CategoryTheory.Pi.associator_hom_apply + theorem CategoryTheory.Pi.associator_inv_apply + theorem CategoryTheory.Pi.braiding_hom_apply + theorem CategoryTheory.Pi.braiding_inv_apply + def CategoryTheory.Pi.closedCounit + def CategoryTheory.Pi.closedUnit + def CategoryTheory.Pi.ihom + theorem CategoryTheory.Pi.isoApp_associator + theorem CategoryTheory.Pi.isoApp_braiding + theorem CategoryTheory.Pi.isoApp_left_unitor + theorem CategoryTheory.Pi.isoApp_right_unitor + theorem CategoryTheory.Pi.left_unitor_hom_apply + theorem CategoryTheory.Pi.left_unitor_inv_apply + theorem CategoryTheory.Pi.right_unitor_hom_apply + theorem CategoryTheory.Pi.right_unitor_inv_apply 2025-12-24 12:03:50 91bd394 feat(Order/Lattice): use `@[to_dual]` (#33142) This PR tags `Lattice` and `DistribLattice` with `@[to_dual]` - I removed `@[simp]` from `ofDual_max` because `ofDual_sup` is a strictly stronger `simp` lemma. - I added a missing `@[to_dual]` tag in some other file that I needed for this. - I skipped the part about monotonicity, since that still depends on #32438 ESTIMATED CHANGES Modified Mathlib/Order/Basic.lean Modified Mathlib/Order/Lattice.lean - theorem Function.update_inf - theorem Pi.inf_apply - theorem Pi.inf_def - theorem Prod.fst_inf - theorem Prod.inf_def - theorem Prod.mk_inf_mk - theorem Prod.snd_inf - theorem Prod.swap_inf - theorem Subtype.coe_inf - theorem Subtype.mk_inf_mk +/- theorem inf_eq_sup - theorem inf_ind - theorem inf_le_iff +/- theorem inf_left_le_sup_left +/- theorem inf_left_le_sup_right - theorem inf_lt_iff - theorem inf_right_le_sup_left +/- theorem inf_right_le_sup_right + theorem inf_sup_le - theorem le_inf_sup +/- theorem le_sup_inf - theorem lt_inf_iff - theorem min_min_min_comm - theorem ofDual_inf +/- theorem ofDual_max - theorem ofDual_min - theorem sup_eq_inf - theorem sup_inf_self - theorem toDual_inf +/- theorem toDual_max - theorem toDual_min 2025-12-24 12:03:48 78bd64d feat(Order/Disjoint): use `@[to_dual]` (#33140) This PR continues tagging things with `@[to_dual]`, in particular stuff about `Disjoint`/`Codisjoint`. New declarations introduced by this PR: - codisjoint_of_subsingleton - Disjoint.ne_top_of_ne_bot - sup_lt_right_of_left_ne_bot ESTIMATED CHANGES Modified Mathlib/Order/Disjoint.lean - theorem Codisjoint.dual - theorem Codisjoint.eq_iff - theorem Codisjoint.eq_top - theorem Codisjoint.eq_top_of_ge - theorem Codisjoint.eq_top_of_le - theorem Codisjoint.mono - theorem Codisjoint.mono_left - theorem Codisjoint.mono_right - theorem Codisjoint.ne - theorem Codisjoint.ne_bot_of_ne_top - theorem Codisjoint.ne_iff - theorem Codisjoint.of_codisjoint_sup_of_le' - theorem Codisjoint.of_codisjoint_sup_of_le - theorem Codisjoint.out - theorem Codisjoint.sup_left' - theorem Codisjoint.sup_left - theorem Codisjoint.sup_right' - theorem Codisjoint.sup_right - theorem Codisjoint.symm - theorem Codisjoint.top_le - def Codisjoint +/- theorem Disjoint.eq_iff +/- theorem Disjoint.mono +/- theorem Disjoint.ne_iff + theorem Disjoint.ne_top_of_ne_bot - theorem IsCompl.sup_eq_top - theorem bot_codisjoint - theorem codisjoint_assoc - theorem codisjoint_bot - theorem codisjoint_comm - theorem codisjoint_iff - theorem codisjoint_iff_le_sup - theorem codisjoint_left_comm - theorem codisjoint_ofDual_iff - theorem codisjoint_right_comm - theorem codisjoint_self - theorem codisjoint_toDual_iff - theorem codisjoint_top_left - theorem codisjoint_top_right - theorem symmetric_codisjoint Modified Mathlib/Order/Hom/Basic.lean - theorem codisjoint_map_orderIso_iff Modified Mathlib/Tactic/Translate/ToDual.lean 2025-12-24 11:27:08 8010f92 chore: reduce reliance on Nat.card definition (#33245) The new proofs don't rely on Nat.card being defined in terms of cardinals, and are cleaner anyway. ESTIMATED CHANGES Modified Mathlib/FieldTheory/CardinalEmb.lean Modified Mathlib/FieldTheory/SeparableDegree.lean Modified Mathlib/GroupTheory/Commensurable.lean Modified Mathlib/GroupTheory/GroupAction/SubMulAction/OfStabilizer.lean Modified Mathlib/GroupTheory/Index.lean +/- theorem Subgroup.relIndex_mul_index Modified Mathlib/GroupTheory/SchurZassenhaus.lean 2025-12-24 10:58:01 83a7f42 feat(LinearMapPiProd): add 4 lemmas (#33250) From https://github.com/urkud/SardMoreira ESTIMATED CHANGES Modified Mathlib/Topology/Algebra/Module/LinearMapPiProd.lean + theorem ContinuousLinearMap.fst_comp_inl + theorem ContinuousLinearMap.fst_comp_inr + theorem ContinuousLinearMap.snd_comp_inl + theorem ContinuousLinearMap.snd_comp_inr 2025-12-24 10:57:58 c7f65f3 chore(Analysis/SchwartzSpace): use pairing instead of bilinLeftCLM (#33246) ESTIMATED CHANGES Modified Mathlib/Analysis/Distribution/SchwartzSpace.lean 2025-12-24 10:09:37 af65b04 Prove that the diameter of a Euclidean ball is twice its radius. (#32824) feat(Analysis/InnerProductSpace/EuclideanDist): prove that the diameter of a sphere and a ball is twice its radius All lemmas and theorems: `Metric.diam_sphere_eq`, `Metric.diam_closedBall_eq'`, `Metric.diam_ball_eq`. Also, fold a `variable` declaration inside `convexHull_sphere_eq_closedBall`. @Aristotle-Harmonic gave the initial version of the proofs (with many `aesop`s and using v4.24). Leo Mayer and I restructured and cleaned them up. ESTIMATED CHANGES Modified Mathlib/Analysis/Normed/Module/Basic.lean + theorem Metric.diam_ball_eq + theorem Metric.diam_closedBall_eq + theorem Metric.diam_sphere_eq Modified Mathlib/Analysis/Normed/Module/Convex.lean +/- theorem convexHull_sphere_eq_closedBall 2025-12-24 10:09:34 bf781f2 chore: replace by_contra! and contrapose! with plain versions (#31600) When the push_neg step in these tactics does nothing, write just `by_contra` resp. `contrapose`. Not exhaustive. ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Fin/Basic.lean Modified Mathlib/Algebra/Homology/Embedding/Basic.lean Modified Mathlib/Algebra/Order/Archimedean/Class.lean Modified Mathlib/AlgebraicTopology/SimplicialSet/Degenerate.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Preorder/WellOrderContinuous.lean Modified Mathlib/Combinatorics/Colex.lean Modified Mathlib/Combinatorics/SimpleGraph/Clique.lean Modified Mathlib/Combinatorics/SimpleGraph/Metric.lean Modified Mathlib/Data/Seq/Basic.lean Modified Mathlib/GroupTheory/Perm/ClosureSwap.lean Modified Mathlib/ModelTheory/Semantics.lean Modified Mathlib/Order/LiminfLimsup.lean Modified Mathlib/RingTheory/HahnSeries/Basic.lean Modified Mathlib/RingTheory/Ideal/AssociatedPrime/Basic.lean Modified Mathlib/RingTheory/Ideal/Oka.lean Modified Mathlib/RingTheory/Localization/AtPrime/Basic.lean Modified Mathlib/RingTheory/Valuation/ValuativeRel/Basic.lean Modified Mathlib/SetTheory/Ordinal/Principal.lean Modified Mathlib/Topology/Maps/Basic.lean 2025-12-24 09:22:32 3827ba2 perf: speed up succEquiv_coherence (#33243) The proof is still ridiculous, but it's a 20x reduction in time spent in the kernel locally (~20s to ~1s). ESTIMATED CHANGES Modified Mathlib/FieldTheory/CardinalEmb.lean 2025-12-24 01:45:52 4be5c68 feat(Analysis/TemperedDistribution): the Fourier transform on tempered distributions extends the FT on Schwartz space (#33232) We add some lemmas about self-adjointness of the Fourier transform for convenience and prove that the Fourier transform (and inverse Fourier transform) on tempered distributions is an extension of the Fourier transform on Schwartz functions. ESTIMATED CHANGES Modified Mathlib/Analysis/Distribution/FourierSchwartz.lean + theorem SchwartzMap.integral_fourier_mul_eq + theorem SchwartzMap.integral_fourier_smul_eq Modified Mathlib/Analysis/Distribution/TemperedDistribution.lean + theorem TemperedDistribution.fourierTransformInv_toTemperedDistributionCLM_eq + theorem TemperedDistribution.fourierTransform_toTemperedDistributionCLM_eq 2025-12-24 01:45:51 e7c6ce1 feat(Analysis/TemperedDistribution): the embedding of `Lp` and `SchwartzMap` give the same tempered distribution (#33229) ESTIMATED CHANGES Modified Mathlib/Analysis/Distribution/TemperedDistribution.lean + theorem MeasureTheory.Lp.toTemperedDistribution_toLp_eq 2025-12-24 01:45:49 aee89d0 ci: refactor daily.yml to notify even if runner fails catastrophically (#33212) The lean4checker job has been failing in such a way that the runner loses connection with GitHub (see e.g. [the annotations on this page](https://github.com/leanprover-community/mathlib4/actions/runs/20418072968)). When this happens the rest of the steps in the job never get run so we never get a notification about it on Zulip. (cf. [#nightly-testing > lean4checker failure @ 💬](https://leanprover.zulipchat.com/#narrow/channel/428973-nightly-testing/topic/lean4checker.20failure/near/565086478)) To fix this, we move the notification steps into a dependent job which should always run, even if the `check` job brings down the runner. Along the way we also fix a bug that was causing links to the workflow to be blank for the `mathlib_test_executable` notifications: [#nightly-testing > mathlib test executable @ 💬](https://leanprover.zulipchat.com/#narrow/channel/428973-nightly-testing/topic/mathlib.20test.20executable/near/565085825). written with help from Claude. ESTIMATED CHANGES Modified .github/workflows/daily.yml 2025-12-24 01:29:07 8fc3851 chore(Analysis): prefer to use `toSpanSingleton` over `smulRight (1 : R →L[R] R)` (#33047) This changes definitions using `smulRight (1 : R →L[R] R)` (or `smulRight (.id R R)`) to `toSpanSingleton R`. ESTIMATED CHANGES Modified Mathlib/Analysis/Calculus/Deriv/Basic.lean - theorem derivWithin_fderivWithin - theorem deriv_fderiv + theorem fderiv_apply_one_eq_deriv - theorem fderiv_deriv + theorem toSpanSingleton_deriv + theorem toSpanSingleton_derivWithin Modified Mathlib/Analysis/Calculus/Deriv/Comp.lean Modified Mathlib/Analysis/Calculus/Deriv/CompMul.lean Modified Mathlib/Analysis/Calculus/Deriv/Inv.lean +/- theorem fderiv_inv Modified Mathlib/Analysis/Calculus/Deriv/Mul.lean Modified Mathlib/Analysis/Calculus/FDeriv/Extend.lean Modified Mathlib/Analysis/Calculus/FDeriv/Measurable.lean Modified Mathlib/Analysis/Calculus/IteratedDeriv/FaaDiBruno.lean Modified Mathlib/Analysis/Calculus/MeanValue.lean Modified Mathlib/Analysis/Complex/Basic.lean - theorem Complex.restrictScalars_one_smulRight' - theorem Complex.restrictScalars_one_smulRight + theorem Complex.restrictScalars_toSpanSingleton' + theorem Complex.restrictScalars_toSpanSingleton Modified Mathlib/Analysis/Complex/Conformal.lean Modified Mathlib/Analysis/Complex/RealDeriv.lean Modified Mathlib/Analysis/Fourier/FourierTransformDeriv.lean Modified Mathlib/Analysis/InnerProductSpace/Adjoint.lean Modified Mathlib/Analysis/Normed/Operator/Bilinear.lean + theorem ContinuousLinearMap.nnnorm_toSpanSingleton + theorem ContinuousLinearMap.norm_toSpanSingleton Modified Mathlib/Analysis/Normed/Operator/Mul.lean - theorem ContinuousLinearMap.norm_toSpanSingleton Modified Mathlib/Analysis/SpecialFunctions/Pow/Deriv.lean Modified Mathlib/Geometry/Manifold/IntegralCurve/Transform.lean Modified Mathlib/MeasureTheory/Function/JacobianOneDim.lean Modified Mathlib/Topology/Algebra/Module/Determinant.lean - theorem ContinuousLinearMap.det_one_smulRight + theorem ContinuousLinearMap.det_smulRight + theorem ContinuousLinearMap.det_toSpanSingleton Modified Mathlib/Topology/Algebra/Module/LinearMap.lean +/- theorem ContinuousLinearMap.id_apply +/- theorem ContinuousLinearMap.one_apply +/- theorem ContinuousLinearMap.one_def - theorem ContinuousLinearMap.smulRight_comp + theorem ContinuousLinearMap.smulRight_comp_smulRight - theorem ContinuousLinearMap.smulRight_one_eq_iff - theorem ContinuousLinearMap.smulRight_one_one - theorem ContinuousLinearMap.smulRight_one_pow + theorem ContinuousLinearMap.toSpanSingleton_apply_map_one + theorem ContinuousLinearMap.toSpanSingleton_comp_toSpanSingleton + theorem ContinuousLinearMap.toSpanSingleton_inj + theorem ContinuousLinearMap.toSpanSingleton_pow 2025-12-24 01:29:05 f7be2c8 feat(CategoryTheory/Bicategory): (2,1)-categories and `Pith` (#25760) This PR introduces a class `IsLocallyGroupoid` on bicategories, asserting that every hom-category has an `IsGroupoid` instance. With this definition, `IsLocallyGroupoid (LocallyDiscrete C)` is correctly inferred. Given a bicategory `B`, we introduce a type alias `Pith B` for `B` (realized as a one-field structure), and we equip it with a `Bicategory` instance where the hom-categories are the cores of the hom-categories of `B`. We show that this bicategory is a (2,1)-category, construct an inclusion pseudo-functor from `Pith B` to `B`, and show that every pseudofunctor from a (2,1)-category to `B` factors through this inclusion. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Bicategory/LocallyGroupoid.lean + theorem CategoryTheory.Bicategory.Pith.comp_of + theorem CategoryTheory.Bicategory.Pith.comp₂_iso_hom + theorem CategoryTheory.Bicategory.Pith.comp₂_iso_inv + theorem CategoryTheory.Bicategory.Pith.hom₂_ext + theorem CategoryTheory.Bicategory.Pith.id_of + theorem CategoryTheory.Bicategory.Pith.id₂_iso_hom + theorem CategoryTheory.Bicategory.Pith.id₂_iso_inv + def CategoryTheory.Bicategory.Pith.inclusion + theorem CategoryTheory.Bicategory.Pith.mk_as + structure CategoryTheory.Bicategory.Pith Modified Mathlib/CategoryTheory/Core.lean + def CategoryTheory.Core.isoMk 2025-12-23 19:14:57 26440c8 fix: whitespace formatting (#33234) Discovered by extended the commandStart linter to proof bodies in #30658. Correct the pretty-printing of the introv tactic. ESTIMATED CHANGES Modified Mathlib/Algebra/GradedMonoid.lean Modified Mathlib/Algebra/Lie/Basic.lean Modified Mathlib/Algebra/Order/BigOperators/Expect.lean Modified Mathlib/Algebra/Polynomial/Coeff.lean Modified Mathlib/Combinatorics/Enumerative/Bell.lean Modified Mathlib/Data/Nat/BitIndices.lean +/- theorem Nat.bitIndices_two_pow +/- theorem Nat.two_pow_le_of_mem_bitIndices Modified Mathlib/Data/Nat/Digits/Defs.lean Modified Mathlib/Data/Real/Basic.lean Modified Mathlib/Data/Set/Insert.lean +/- theorem Set.powerset_singleton Modified Mathlib/Data/Sym/Basic.lean Modified Mathlib/NumberTheory/ClassNumber/AdmissibleAbsoluteValue.lean Modified Mathlib/NumberTheory/Padics/PadicVal/Basic.lean Modified Mathlib/SetTheory/Cardinal/Basic.lean +/- theorem Cardinal.le_powerlt Modified Mathlib/Tactic/Basic.lean 2025-12-23 19:14:55 ee7c4d6 chore: clean up imports of `Tactic.ToFun` (#33210) This PR imports `Tactic.ToFun` in `Tactic.Common`, and removes all other imports. This is fine because it is a very small import increase. ESTIMATED CHANGES Modified Mathlib/Analysis/Analytic/Constructions.lean Modified Mathlib/Analysis/Calculus/Deriv/Add.lean Modified Mathlib/Analysis/Calculus/Deriv/Inv.lean Modified Mathlib/Analysis/Calculus/Deriv/Mul.lean Modified Mathlib/Analysis/Calculus/FDeriv/Add.lean Modified Mathlib/Analysis/Calculus/FDeriv/Mul.lean Modified Mathlib/Analysis/Distribution/TemperateGrowth.lean Modified Mathlib/Analysis/Meromorphic/Basic.lean Modified Mathlib/MeasureTheory/Function/L1Space/Integrable.lean Modified Mathlib/Tactic/Common.lean 2025-12-23 19:14:53 b043044 fix: definition of `Rat.IsIntegralClosure.intEquiv` (#33203) `Rat.IsIntegralClosure.intEquiv R` (formerly `Rat.intEquiv`) defined an isomorphism between an integral closure `R` of `ℤ` in `ℚ` abstractly using bijectivity. This turns out to be not very usable in light of the fact that this isomorphism can be constructed alternatively by composing `RingOfIntegers.equiv` and `Rat.ringOfIntegersEquiv`. This PR redefines as the composition to ensure compabitility. Namely, when specialising to `R = 𝓞 ℚ` we have that `Rat.IsIntegralClosure.intEquiv (𝓞 ℚ) : 𝓞 ℚ ≃+* ℤ` and `Rat.ringOfIntegersEquiv` define the same isomorphism. ESTIMATED CHANGES Modified Mathlib/NumberTheory/Padics/HeightOneSpectrum.lean + theorem Rat.IsIntegralClosure.intEquiv_apply_eq_ringOfIntegersEquiv +/- theorem Rat.int_algebraMap_surjective 2025-12-23 18:48:43 72d42d5 feat(NumberTheory/ModularForms): Bounds on modular forms and q-expansion coeffs (#30089) Show that the q-expansion coefficients of a weight k modular form grow like `n ^ k`, and like `n ^ (k / 2)` for cusp forms. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/NumberTheory/Modular.lean + theorem ModularGroup.coe_truncatedFundamentalDomain + theorem ModularGroup.isCompact_truncatedFundamentalDomain + def ModularGroup.truncatedFundamentalDomain Added Mathlib/NumberTheory/ModularForms/Bounds.lean + theorem CuspFormClass.exists_bound + theorem CuspFormClass.petersson_bounded_left + theorem CuspFormClass.petersson_bounded_right + theorem CuspFormClass.qExpansion_isBigO + theorem ModularFormClass.exists_bound + theorem ModularFormClass.exists_petersson_le + theorem ModularFormClass.qExpansion_isBigO + theorem ModularGroup.exists_bound_fundamental_domain_of_isBigO + theorem ModularGroup.exists_bound_of_invariant + theorem ModularGroup.exists_bound_of_invariant_of_isBigO + theorem ModularGroup.exists_bound_of_subgroup_invariant + theorem ModularGroup.exists_bound_of_subgroup_invariant_of_isArithmetic_of_isBigO + theorem ModularGroup.exists_bound_of_subgroup_invariant_of_isBigO + theorem qExpansion_coeff_isBigO_of_norm_isBigO Modified Mathlib/NumberTheory/ModularForms/QExpansion.lean 2025-12-23 18:11:03 f4bb34e feat(AlgebraicTopology): weak equivalences on a full subcategory (#33085) If `P : ObjectProperty C` is a property of objects in a category equipped with a notion of weak equivalence, we endow the full subcategory corresponding to `P` with the induced notion of weak equivalences. ESTIMATED CHANGES Modified Mathlib/AlgebraicTopology/ModelCategory/CategoryWithCofibrations.lean + theorem HomotopicalAlgebra.weakEquivalence_iff_of_objectProperty 2025-12-23 18:11:02 97fa493 feat(CategoryTheory/Sites): `uliftYoneda` for sheaves over a subcanonical topology (#31478) Add that `GrothendieckTopology.uliftYoneda` is fully faithful. Add the (functorial) Yoneda lemma for sheaves, for both `yoneda` and `uliftYoneda`. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Sites/Canonical.lean + def CategoryTheory.GrothendieckTopology.fullyFaithfulUliftYoneda + def CategoryTheory.GrothendieckTopology.uliftYonedaCompSheafToPresheaf + def CategoryTheory.GrothendieckTopology.uliftYonedaIsoYoneda Modified Mathlib/CategoryTheory/Sites/Subcanonical.lean + def CategoryTheory.GrothendieckTopology.uliftYonedaOpCompCoyoneda + theorem CategoryTheory.GrothendieckTopology.uliftYonedaOpCompCoyoneda_app_app + theorem CategoryTheory.GrothendieckTopology.uliftYonedaOpCompCoyoneda_inv_app_app + def CategoryTheory.GrothendieckTopology.yonedaOpCompCoyoneda Modified Mathlib/CategoryTheory/Sites/Whiskering.lean + def CategoryTheory.fullyFaithfulSheafCompose + def CategoryTheory.fullyFaithfulSheafComposeCompSheafToPresheaf 2025-12-23 17:54:01 ed813e9 feat(CategoryTheory): sheaf categories are regular epi categories (#32085) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Functor/RegularEpi.lean Modified Mathlib/CategoryTheory/Limits/Shapes/RegularMono.lean + theorem CategoryTheory.isRegularEpi_iff_effectiveEpi Added Mathlib/CategoryTheory/Sites/RegularEpi.lean + theorem CategoryTheory.isRegularEpiCategory_sheaf 2025-12-23 14:46:42 cea71b8 feat: connect `MinimalFor` and `Function.argmin` (#33207) ESTIMATED CHANGES Modified Mathlib/Order/WellFounded.lean + theorem Function.isMinimalFor_argmin + theorem Function.isMinimalFor_argminOn 2025-12-23 14:46:40 64a0ad7 feat(NumberTheory/NumberField/InfinitePlace/Embeddings): Kronecker's Theorem (#33205) We add ``` theorem pow_eq_one_of_norm_le_one {x : K} (hx₀ : x ≠ 0) (hxi : IsIntegral ℤ x) (hx : ∀ φ : K →+* A, ‖φ x‖ ≤ 1) : ∃ (n : ℕ) (_ : 0 < n), x ^ n = 1 ``` which is also known as Kronecker's Theorem. This is an almost trivial generalization of the proof of ``` theorem pow_eq_one_of_norm_eq_one {x : K} (hxi : IsIntegral ℤ x) (hx : ∀ φ : K →+* A, ‖φ x‖ = 1) : ∃ (n : ℕ) (_ : 0 < n), x ^ n = 1 ``` ESTIMATED CHANGES Modified Mathlib/NumberTheory/NumberField/InfinitePlace/Embeddings.lean + theorem NumberField.Embeddings.pow_eq_one_of_norm_le_one 2025-12-23 14:46:38 a53927a chore(Analysis/SpecialFunctions): nthRoot improvement (#31492) Resolve TODO for nthroot, replacing the dependency on the arithmetic geometric mean inequality by some inequalities on powers of binomials. ESTIMATED CHANGES Modified Mathlib/Analysis/SpecialFunctions/Pow/NthRootLemmas.lean 2025-12-23 14:13:29 93d1225 feat(CategoryTheory/Category/Basic): use `to_dual` (#33146) This PR tags `Category` and `Epi`/`Mono` with `to_dual`. This is the first step for using `to_dual` in category theory. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Category/Basic.lean + theorem CategoryTheory.Category.assoc' - theorem CategoryTheory.cancel_mono - theorem CategoryTheory.cancel_mono_assoc_iff - theorem CategoryTheory.cancel_mono_id - theorem CategoryTheory.dite_comp +/- theorem CategoryTheory.epi_comp' +/- theorem CategoryTheory.epi_iff_forall_injective +/- theorem CategoryTheory.epi_of_epi +/- theorem CategoryTheory.epi_of_epi_fac - theorem CategoryTheory.eq_of_comp_right_eq' - theorem CategoryTheory.eq_of_comp_right_eq - theorem CategoryTheory.id_of_comp_right_id - theorem CategoryTheory.ite_comp - theorem CategoryTheory.mono_comp' - theorem CategoryTheory.mono_iff_forall_injective - theorem CategoryTheory.mono_of_mono - theorem CategoryTheory.mono_of_mono_fac - theorem CategoryTheory.whisker_eq 2025-12-23 12:58:14 9f92d5f chore(Order/Defs/Unbundled): deprecate `EmptyRelation` in favor of core's `emptyRelation` (#33204) ESTIMATED CHANGES Modified Mathlib/GroupTheory/Congruence/Defs.lean Modified Mathlib/Order/Defs/Unbundled.lean - def EmptyRelation +/- theorem empty_relation_apply Modified Mathlib/Order/InitialSeg.lean Modified Mathlib/Order/RelClasses.lean +/- theorem eq_empty_relation Modified Mathlib/RingTheory/Congruence/Defs.lean Modified Mathlib/SetTheory/Cardinal/Cofinality.lean Modified Mathlib/SetTheory/Ordinal/Arithmetic.lean Modified Mathlib/SetTheory/Ordinal/Basic.lean +/- theorem Ordinal.type_empty +/- theorem Ordinal.type_pEmpty +/- theorem Ordinal.type_pUnit +/- theorem Ordinal.type_unit Modified MathlibTest/interactiveUnfold.lean 2025-12-23 12:58:12 f867e69 feat(CategoryTheory): properties of objects for pseudofunctors to Cat (#31083) Given `F : Pseudofunctor B Cat`, we introduce a type `F.ObjectProperty` which consists of properties `P` of objects for all categories `F.obj X` for `X : B`. The typeclass `P.IsClosedUnderMapObj` expresses that this property is preserved by the application of the functors `F.map`: this allows to define a sub-pseudofunctor `P.fullsubcategory : Pseudofunctor B Cat`. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Bicategory/Functor/Cat/ObjectProperty.lean + def CategoryTheory.Pseudofunctor.ObjectProperty.fullsubcategory + def CategoryTheory.Pseudofunctor.ObjectProperty.map + def CategoryTheory.Pseudofunctor.ObjectProperty.mapComp + theorem CategoryTheory.Pseudofunctor.ObjectProperty.mapComp_hom_app + theorem CategoryTheory.Pseudofunctor.ObjectProperty.mapComp_inv_app + def CategoryTheory.Pseudofunctor.ObjectProperty.mapId + theorem CategoryTheory.Pseudofunctor.ObjectProperty.mapId_hom_app + theorem CategoryTheory.Pseudofunctor.ObjectProperty.mapId_inv_app + def CategoryTheory.Pseudofunctor.ObjectProperty.map₂ + def CategoryTheory.Pseudofunctor.ObjectProperty.ι 2025-12-23 12:27:32 987f1b4 feat: add ContDiff.lipschitzOnWith (#30612) A C¹ function is Lipschitz on each convex compact set. From sphere-eversion. Re-done version of https://github.com/leanprover-community/mathlib4/pull/12673. ESTIMATED CHANGES Modified Mathlib/Analysis/Calculus/ContDiff/RCLike.lean + theorem ContDiffOn.exists_lipschitzOnWith + theorem ContDiffOn.locallyLipschitzOn +/- theorem ContDiffWithinAt.exists_lipschitzOnWith +/- theorem HasFTaylorSeriesUpToOn.exists_lipschitzOnWith +/- theorem HasFTaylorSeriesUpToOn.exists_lipschitzOnWith_of_nnnorm_lt Modified Mathlib/Topology/Algebra/MetricSpace/Lipschitz.lean + theorem LocallyLipschitzOn.exists_lipschitzOnWith_of_compact Modified Mathlib/Topology/Instances/ENNReal/Lemmas.lean + theorem lipschitzOnWith_closure_iff 2025-12-23 11:47:38 9c7dee5 chore(CategoryTheory): deprecate cartesian closed categories API (#33228) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Category/Cat/CartesianClosed.lean Modified Mathlib/CategoryTheory/Monoidal/Closed/Basic.lean + def CategoryTheory.MonoidalClosed.unitIsoSelf Modified Mathlib/CategoryTheory/Monoidal/Closed/Cartesian.lean - def CategoryTheory.CartesianClosed.curry - theorem CategoryTheory.CartesianClosed.curry_eq - theorem CategoryTheory.CartesianClosed.curry_eq_iff - theorem CategoryTheory.CartesianClosed.curry_id_eq_coev - theorem CategoryTheory.CartesianClosed.curry_injective - theorem CategoryTheory.CartesianClosed.curry_natural_left - theorem CategoryTheory.CartesianClosed.curry_natural_right - theorem CategoryTheory.CartesianClosed.curry_uncurry - theorem CategoryTheory.CartesianClosed.eq_curry_iff - theorem CategoryTheory.CartesianClosed.homEquiv_apply_eq - theorem CategoryTheory.CartesianClosed.homEquiv_symm_apply_eq - def CategoryTheory.CartesianClosed.mk - def CategoryTheory.CartesianClosed.uncurry - theorem CategoryTheory.CartesianClosed.uncurry_curry - theorem CategoryTheory.CartesianClosed.uncurry_eq - theorem CategoryTheory.CartesianClosed.uncurry_id_eq_ev - theorem CategoryTheory.CartesianClosed.uncurry_injective - theorem CategoryTheory.CartesianClosed.uncurry_natural_left - theorem CategoryTheory.CartesianClosed.uncurry_natural_right - def CategoryTheory.binaryProductExponentiable - theorem CategoryTheory.coev_app_comp_pre_app - theorem CategoryTheory.exp.coev_ev - theorem CategoryTheory.exp.ev_coev - def CategoryTheory.expUnitIsoSelf - def CategoryTheory.expUnitNatIso +/- theorem CategoryTheory.initial_mono - def CategoryTheory.internalHom +/- def CategoryTheory.internalizeHom +/- def CategoryTheory.powZero - def CategoryTheory.pre - theorem CategoryTheory.pre_id - theorem CategoryTheory.pre_map - theorem CategoryTheory.prod_map_pre_app_comp_ev - def CategoryTheory.terminalExponentiable - theorem CategoryTheory.uncurry_pre Modified Mathlib/CategoryTheory/Monoidal/Closed/Functor.lean +/- def CategoryTheory.expComparison Modified Mathlib/CategoryTheory/Monoidal/Closed/Ideal.lean +/- def CategoryTheory.cartesianClosedOfReflective Modified Mathlib/CategoryTheory/Monoidal/Closed/Types.lean Modified Mathlib/CategoryTheory/Monoidal/Closed/Zero.lean Modified Mathlib/CategoryTheory/Sites/CartesianClosed.lean Modified Mathlib/Condensed/CartesianClosed.lean Modified Mathlib/Condensed/Light/CartesianClosed.lean 2025-12-23 11:05:21 1047f07 doc(Algebra/Order/BigOperators/Group/Finset): fix typo (#33215) This file is about finset bigoperators. There is a separate file (`Multiset.lean`, in the same directory) for multiset bigoperators. ESTIMATED CHANGES Modified Mathlib/Algebra/Order/BigOperators/Group/Finset.lean 2025-12-23 10:19:30 efbdc42 feat(Analysis/TemperedDistribution): embedding of temperate growth functions (#32766) Every temperate growth function defines a tempered distribution via integration. ESTIMATED CHANGES Modified Mathlib/Analysis/Distribution/TemperedDistribution.lean + def Function.HasTemperateGrowth.toTemperedDistribution + theorem Function.HasTemperateGrowth.toTemperedDistribution_apply 2025-12-23 02:56:57 21f7dcb feat(Algebra/Polynomial/Roots): two polynomials are equal if they agree on a large enough finite set (#33190) An easy extension of the version where one polynomial is zero, as is already done for the infinite case. `eq_of_natDegree_lt_card_of_eval_eq` is to `eq_zero_of_natDegree_lt_card_of_eval_eq_zero` as `eq_of_infinite_eval_eq` is to `eq_zero_of_infinite_isRoot` ESTIMATED CHANGES Modified Mathlib/Algebra/Polynomial/Roots.lean + theorem Polynomial.eq_of_natDegree_lt_card_of_eval_eq' + theorem Polynomial.eq_of_natDegree_lt_card_of_eval_eq 2025-12-23 00:20:07 9fdb8ee chore(Analysis/Normed/Operator/LinearIsometry): change coercion for `LinearIsometryEquiv.toContinuousLinearEquiv` (#32964) Currently, including the type `(e : E →SL[σ₁₂] E₂)` for a linear isometry equivalence `e` looks messy in the infoview and docs. So we change the coercion of `(e : _ ≃SL _)` to go through `e.toContinuousLinearEquiv`. ESTIMATED CHANGES Modified Mathlib/Analysis/InnerProductSpace/Adjoint.lean + theorem Unitary.coe_linearIsometryEquiv_apply + theorem Unitary.coe_symm_linearIsometryEquiv_apply - theorem Unitary.linearIsometryEquiv_coe_apply - theorem Unitary.linearIsometryEquiv_coe_symm_apply Modified Mathlib/Analysis/Normed/Module/Multilinear/Basic.lean Modified Mathlib/Analysis/Normed/Operator/LinearIsometry.lean +/- theorem LinearIsometryEquiv.coe_coe'' +/- theorem LinearIsometryEquiv.coe_coe + theorem LinearIsometryEquiv.toContinuousLinearEquiv_refl + theorem LinearIsometryEquiv.toContinuousLinearEquiv_trans + theorem LinearIsometryEquiv.toContinuousLinearMap_toLinearIsometry Modified Mathlib/Topology/Algebra/Module/Equiv.lean + theorem ContinuousLinearEquiv.self_trans_symm + theorem ContinuousLinearEquiv.symm_trans_self 2025-12-22 23:49:17 cf80e8c feat(Analysis/InnerProduct/Positive): `(α • f).IsPositive` iff `0 ≤ α` (#33022) ESTIMATED CHANGES Modified Mathlib/Analysis/InnerProductSpace/Positive.lean + theorem LinearMap.IsPositive.isPositive_smul_iff + theorem LinearMap.IsPositive.ne_zero_iff Modified Mathlib/Analysis/InnerProductSpace/Symmetric.lean + theorem LinearMap.IsSymmetric.isSymmetric_smul_iff Modified Mathlib/Analysis/RCLike/Basic.lean + theorem RCLike.instMulPosReflectLE 2025-12-22 23:49:15 a10b754 feat(Analysis/Fourier): the Fourier transform on `L^2` (#29948) We define the Fourier transform on L^2 as a linear isometry by extension of Schwartz functions. The file is called `LpSpace` since we will extend the Fourier transform to L^p later on. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/Fourier/LpSpace.lean + def MeasureTheory.Lp.fourierTransformₗᵢ + theorem MeasureTheory.Lp.inner_fourier_eq + theorem MeasureTheory.Lp.norm_fourier_eq + theorem SchwartzMap.toLp_fourierTransformInv_eq + theorem SchwartzMap.toLp_fourierTransform_eq Modified docs/undergrad.yaml 2025-12-22 22:40:21 ca83317 chore(Algebra/Ring/Parity): generalize even_two and Even.mul_left/right (#33135) - Moved `even_two` from `Semiring` to `AddMonoidWithOne`. - Generalized `Even.mul_left` and `Even.mul_right` to only require `Distrib` related classes (`LeftDistribClass` and `RightDistribClass`) instead of a full `Semiring`. - Refactored the file structure with new sections to accommodate these minimal assumptions. ESTIMATED CHANGES Modified Mathlib/Algebra/Ring/Parity.lean +/- theorem Even.mul_left +/- theorem Even.mul_right 2025-12-22 22:40:19 e0b0152 refactor(Topology/Sequences): generalize seq-compactness lemmas to metrizable space (#30233) * [`IsSeqCompact.isCompact`](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Topology/Sequences.html#IsSeqCompact.isCompact) * [`UniformSpace.isCompact_iff_isSeqCompact`](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Topology/Sequences.html#UniformSpace.isCompact_iff_isSeqCompact) * [`UniformSpace.compactSpace_iff_seqCompactSpace`](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Topology/Sequences.html#UniformSpace.compactSpace_iff_seqCompactSpace) These are lemmas on uniform spaces which has countable uniformity, so can be generalized to pseudo-metrizable space. From [CLT](https://github.com/RemyDegenne/CLT) ESTIMATED CHANGES Modified Mathlib/Topology/Sequences.lean - theorem UniformSpace.compactSpace_iff_seqCompactSpace + theorem compactSpace_iff_seqCompactSpace + theorem isCompact_iff_isSeqCompact Modified docs/overview.yaml Modified docs/undergrad.yaml 2025-12-22 22:40:17 e403956 feat: covering maps from properly discontinuous actions and discrete subgroups (#7596) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Group/Action/Pointwise/Set/Basic.lean + theorem Set.pairwise_disjoint_smul_iff Modified Mathlib/Algebra/Group/Pointwise/Set/Basic.lean + theorem Set.nonempty_image_mulLeft_inv_inter_iff + theorem Set.nonempty_image_mulRight_inv_inter_iff Modified Mathlib/Algebra/Group/Submonoid/MulAction.lean Modified Mathlib/Algebra/Regular/SMul.lean + theorem IsSMulRegular.natAbs_iff Modified Mathlib/Analysis/SpecialFunctions/Complex/Circle.lean + theorem Circle.isAddQuotientCoveringMap_exp + theorem Circle.isCoveringMap_exp +/- theorem isLocalHomeomorph_circleExp Modified Mathlib/GroupTheory/GroupAction/SubMulAction.lean Modified Mathlib/Tactic/Translate/ToAdditive.lean Modified Mathlib/Topology/Algebra/ConstMulAction.lean + theorem IsUnit.isQuotientMap_nsmul + theorem IsUnit.isQuotientMap_smul + theorem IsUnit.isQuotientMap_zsmul + theorem ProperlyDiscontinuousSMul.exists_nhds_disjoint_image + theorem ProperlyDiscontinuousSMul.exists_nhds_image_smul_eq_self + theorem ProperlyDiscontinuousSMul.finite_stabilizer' + theorem ProperlyDiscontinuousSMul.finite_stabilizer + theorem isHomeomorph_smul + theorem isHomeomorph_smul₀ Modified Mathlib/Topology/Algebra/Group/Pointwise.lean + theorem IsDiscrete.exists_nhds_eq_one_of_image_mulLeft_inter_nonempty + theorem IsDiscrete.exists_nhds_eq_one_of_image_mulRight_inter_nonempty Added Mathlib/Topology/Covering/AddCircle.lean + theorem AddCircle.isAddQuotientCoveringMap_coe + theorem AddCircle.isAddQuotientCoveringMap_nsmul + theorem AddCircle.isAddQuotientCoveringMap_nsmul_of_ne_zero + theorem AddCircle.isAddQuotientCoveringMap_zsmul + theorem AddCircle.isAddQuotientCoveringMap_zsmul_of_ne_zero + theorem AddCircle.isCoveringMap_coe + theorem AddCircle.isLocalHomeomorph_coe Modified Mathlib/Topology/Covering/Basic.lean Added Mathlib/Topology/Covering/Quotient.lean + structure IsAddQuotientCoveringMap + theorem IsQuotientCoveringMap.homeomorph_comp + theorem IsQuotientCoveringMap.homeomorph_comp_iff + theorem IsQuotientCoveringMap.isCancelSMul + theorem IsQuotientCoveringMap.isCoveringMap + structure IsQuotientCoveringMap + theorem Subgroup.isQuotientCoveringMap + theorem Subgroup.isQuotientCoveringMap_of_comm + theorem Topology.IsQuotientMap.isCoveringMapOn_of_properlyDiscontinuousSMul + theorem Topology.IsQuotientMap.isCoveringMapOn_of_smul_disjoint + theorem Topology.IsQuotientMap.isQuotientCoveringMap_of_isDiscrete_ker_monoidHom + theorem Topology.IsQuotientMap.isQuotientCoveringMap_of_properlyDiscontinuousSMul + theorem Topology.IsQuotientMap.isQuotientCoveringMap_of_subgroup + theorem Topology.IsQuotientMap.isQuotientCoveringMap_of_subgroupOp + theorem isCoveringMapOn_quotientMk_of_properlyDiscontinuousSMul + theorem isQuotientCoveringMap_iff_isCoveringMap_and + theorem isQuotientCoveringMap_quotientMk_of_properlyDiscontinuousSMul Modified Mathlib/Topology/Instances/AddCircle/Defs.lean + theorem AddCircle.card_torsion_le_of_isSMulRegular + theorem AddCircle.card_torsion_le_of_isSMulRegular_int +/- theorem AddCircle.finite_torsion + theorem AddCircle.finite_torsion_of_isSMulRegular + theorem AddCircle.finite_torsion_of_isSMulRegular_int - theorem AddCircle.isLocalHomeomorph_coe - theorem AddCircle.nsmul_eq_zero_iff Modified Mathlib/Topology/Maps/Basic.lean + theorem Topology.IsInducing.IsQuotientMap.of_comp_isQuotientMap + theorem Topology.IsInducing.IsQuotientMap.of_comp_of_eq_coinduced 2025-12-22 21:59:16 ff7ce57 feat(Calculus/Implicit): add more lemmas about `ImplicitFunctionData` (#33120) From https://github.com/urkud/SardMoreira ESTIMATED CHANGES Modified Mathlib/Analysis/Calculus/Implicit.lean + theorem ImplicitFunctionData.differentiableAt_implicitFunction + theorem ImplicitFunctionData.fderiv_implicitFunction_apply_eq_iff + theorem ImplicitFunctionData.hasStrictFDerivAt_implicitFunction_fderiv + theorem ImplicitFunctionData.isInvertible_fderiv_prodFun + theorem ImplicitFunctionData.leftDeriv_fderiv_implicitFunction + theorem ImplicitFunctionData.map_implicitFunction_nhdsWithin_preimage + theorem ImplicitFunctionData.rightDeriv_fderiv_implicitFunction 2025-12-22 21:59:14 c888ad5 feat: a function is always continuous at an isolated point (#33065) This PR adds a lemma `ContinuousWithinAt.of_not_accPt`, which says that a function is continuous at a point `x` within a set `s` if `x` is not an accumulated point of `s`. Zulip discussion: [#Is there code for X? > Continuity at isolated points](https://leanprover.zulipchat.com/#narrow/channel/217875-Is-there-code-for-X.3F/topic/Continuity.20at.20isolated.20points/with/562319753) ESTIMATED CHANGES Modified Mathlib/Topology/ContinuousOn.lean + theorem continuousAt_of_not_accPt + theorem continuousAt_of_not_accPt_top + theorem continuousWithinAt_of_not_accPt 2025-12-22 21:59:12 64d9115 refactor: use "@[to_fun]" to generate some lemmas (#32830) ESTIMATED CHANGES Modified Mathlib/Analysis/Analytic/Constructions.lean - theorem AnalyticAt.fun_div Modified Mathlib/Analysis/Calculus/Deriv/Add.lean + theorem HasDerivAt.neg + theorem HasDerivAt.sub - theorem HasDerivAtFilter.fun_sub + theorem HasDerivAtFilter.neg + theorem HasDerivWithinAt.neg + theorem HasDerivWithinAt.sub - theorem HasStrictDerivAt.fun_sub + theorem HasStrictDerivAt.neg - theorem deriv.fun_neg' - theorem deriv.fun_neg +/- theorem deriv.neg - theorem derivWithin.fun_neg +/- theorem derivWithin.neg Modified Mathlib/Analysis/Calculus/Deriv/Inv.lean - theorem HasDerivAt.fun_inv - theorem HasDerivWithinAt.fun_inv Modified Mathlib/Analysis/Calculus/Deriv/Mul.lean + theorem HasDerivAt.const_smul - theorem HasDerivAt.fun_mul - theorem HasDerivAt.fun_smul + theorem HasDerivAtFilter.const_smul + theorem HasDerivWithinAt.const_smul - theorem HasDerivWithinAt.fun_mul - theorem HasDerivWithinAt.fun_smul + theorem HasStrictDerivAt.const_smul - theorem HasStrictDerivAt.fun_mul + theorem HasStrictDerivAt.smul Modified Mathlib/Analysis/Calculus/FDeriv/Add.lean - theorem Differentiable.fun_add - theorem Differentiable.fun_add_iff_left - theorem Differentiable.fun_add_iff_right - theorem Differentiable.fun_const_smul - theorem Differentiable.fun_neg - theorem Differentiable.fun_sub - theorem Differentiable.fun_sub_iff_left - theorem Differentiable.fun_sub_iff_right - theorem DifferentiableAt.fun_add - theorem DifferentiableAt.fun_add_iff_left - theorem DifferentiableAt.fun_add_iff_right - theorem DifferentiableAt.fun_const_smul - theorem DifferentiableAt.fun_neg - theorem DifferentiableAt.fun_sub - theorem DifferentiableAt.fun_sub_iff_left - theorem DifferentiableAt.fun_sub_iff_right - theorem DifferentiableOn.fun_add - theorem DifferentiableOn.fun_add_iff_left - theorem DifferentiableOn.fun_add_iff_right - theorem DifferentiableOn.fun_const_smul - theorem DifferentiableOn.fun_neg - theorem DifferentiableOn.fun_sub - theorem DifferentiableOn.fun_sub_iff_left - theorem DifferentiableOn.fun_sub_iff_right - theorem DifferentiableWithinAt.fun_add - theorem DifferentiableWithinAt.fun_const_smul - theorem DifferentiableWithinAt.fun_neg - theorem DifferentiableWithinAt.fun_sub + theorem HasFDerivAt.add + theorem HasFDerivAt.const_smul + theorem HasFDerivAt.neg + theorem HasFDerivAt.sub - theorem HasFDerivAtFilter.fun_add - theorem HasFDerivAtFilter.fun_const_smul - theorem HasFDerivAtFilter.fun_neg - theorem HasFDerivAtFilter.fun_sub + theorem HasFDerivWithinAt.add + theorem HasFDerivWithinAt.const_smul + theorem HasFDerivWithinAt.neg + theorem HasFDerivWithinAt.sub + theorem HasStrictFDerivAt.add - theorem HasStrictFDerivAt.fun_const_smul - theorem HasStrictFDerivAt.fun_neg - theorem HasStrictFDerivAt.fun_sub Modified Mathlib/Analysis/Calculus/FDeriv/Mul.lean - theorem Differentiable.fun_inv - theorem Differentiable.fun_mul - theorem Differentiable.fun_smul - theorem DifferentiableAt.fun_inv - theorem DifferentiableAt.fun_mul - theorem DifferentiableAt.fun_smul - theorem DifferentiableOn.fun_inv - theorem DifferentiableOn.fun_mul - theorem DifferentiableOn.fun_smul - theorem DifferentiableWithinAt.fun_inv - theorem DifferentiableWithinAt.fun_mul - theorem DifferentiableWithinAt.fun_smul - theorem HasFDerivAt.fun_mul' - theorem HasFDerivAt.fun_mul - theorem HasFDerivAt.fun_smul - theorem HasFDerivWithinAt.fun_mul' - theorem HasFDerivWithinAt.fun_mul - theorem HasFDerivWithinAt.fun_smul +/- theorem HasFDerivWithinAt.smul - theorem HasStrictFDerivAt.fun_mul' - theorem HasStrictFDerivAt.fun_mul - theorem HasStrictFDerivAt.fun_smul Modified Mathlib/Analysis/Meromorphic/Basic.lean - theorem MeromorphicAt.fun_smul - theorem MeromorphicOn.fun_smul +/- theorem MeromorphicOn.smul Modified Mathlib/MeasureTheory/Function/AbsolutelyContinuous.lean - theorem AbsolutelyContinuousOnInterval.fun_add - theorem AbsolutelyContinuousOnInterval.fun_mul - theorem AbsolutelyContinuousOnInterval.fun_neg - theorem AbsolutelyContinuousOnInterval.fun_smul - theorem AbsolutelyContinuousOnInterval.fun_sub Modified Mathlib/MeasureTheory/Function/L1Space/Integrable.lean - theorem MeasureTheory.Integrable.fun_smul - theorem MeasureTheory.Integrable.fun_smul_enorm Modified Mathlib/MeasureTheory/Group/Arithmetic.lean Modified Mathlib/MeasureTheory/Integral/CurveIntegral/Basic.lean - theorem CurveIntegrable.fun_neg - theorem CurveIntegrable.fun_zero Modified Mathlib/Order/Filter/Basic.lean Modified Mathlib/Tactic/ToFun.lean 2025-12-22 21:27:15 24103a8 chore(LinearAlgebra/Matrix/Kronecker): make notation more consistent (#33175) Currently, if you look at [Matrix.add_kroneckerTMul](https://leanprover-community.github.io/mathlib4_docs/Mathlib/LinearAlgebra/Matrix/Kronecker.html#Matrix.add_kroneckerTMul) and the like, you'll notice that on the left-hand side `TensorProduct.tmul R` is being used, whereas the right-hand side uses `fun (x1 x2 : α) => x1 ⊗ₜ[R] x2`. And while they are defeq, it just looks strange that they don't print the same thing. This fixes that to make it both print out `TensorProduct.tmul R`. ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/Matrix/Kronecker.lean 2025-12-22 21:27:13 39f360a fix(WithLp): use correct namespace for `withLpProdCongr` (#33159) This definition involving `LinearIsometryEquiv`s was in the `LinearIsometry` namespace by mistake. I did not add deprecations because it was added recently. ESTIMATED CHANGES Modified Mathlib/Analysis/Normed/Lp/ProdLp.lean - def LinearIsometry.withLpProdCongr +/- def LinearIsometry.withLpProdMap + def LinearIsometryEquiv.withLpProdCongr 2025-12-22 21:11:36 3d660c2 feat(Analysis/TemperedDistribution): embedding of Schwartz functions (#32768) Every Schwartz function defines a tempered distribution and this embedding is continuous. Moreover, we record the embedding as a coercion. ESTIMATED CHANGES Modified Mathlib/Analysis/Distribution/TemperedDistribution.lean + theorem SchwartzMap.coe_apply + def SchwartzMap.toTemperedDistributionCLM + theorem SchwartzMap.toTemperedDistributionCLM_apply_apply 2025-12-22 19:35:55 c96081d feat(SetTheory/Cardinal): formulas for `sum (fun n : ℕ ↦ x ^ n)` (#32645) ESTIMATED CHANGES Modified Mathlib/SetTheory/Cardinal/Arithmetic.lean + theorem Cardinal.mk_list_eq_max + theorem Cardinal.sum_pow_eq_max_aleph0 + theorem Cardinal.sum_pow_le_max_aleph0 Modified Mathlib/SetTheory/Cardinal/Basic.lean +/- theorem Cardinal.mk_list_eq_sum_pow + theorem Cardinal.sum_zero_pow Modified Mathlib/SetTheory/Cardinal/Defs.lean + theorem Cardinal.nonempty_out 2025-12-22 19:35:53 317e62e feat(LinearAlgebra/Transvection): auxiliary lemmas to compute the determinant of transvection in a module (#31138) Auxiliary results towards the proof that the determinant of a transvection is equal to 1. ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/Determinant.lean + theorem LinearMap.free_of_det_ne_one Modified Mathlib/LinearAlgebra/DirectSum/Finsupp.lean + theorem TensorProduct.coe_finsuppScalarRight' + theorem TensorProduct.finsuppScalarRight_smul Modified Mathlib/LinearAlgebra/Finsupp/LinearCombination.lean + theorem span_range_eq_top_iff_surjective_finsuppLinearCombination + theorem span_range_eq_top_iff_surjective_fintypeLinearCombination Modified Mathlib/LinearAlgebra/SpecialLinearGroup.lean +/- theorem SpecialLinearGroup.toLinearEquiv_apply Modified Mathlib/LinearAlgebra/Transvection.lean +/- theorem IsBaseChange.transvection +/- theorem LinearMap.transvection.LinearEquiv.transvection.LinearMap.transvection.baseChange +/- theorem LinearMap.transvection.LinearEquiv.transvection.apply +/- theorem LinearMap.transvection.LinearEquiv.transvection.coe_apply +/- theorem LinearMap.transvection.LinearEquiv.transvection.coe_toLinearMap +/- theorem LinearMap.transvection.LinearEquiv.transvection.of_right_eq_zero +/- theorem LinearMap.transvection.LinearEquiv.transvection.symm_eq' +/- theorem LinearMap.transvection.LinearEquiv.transvection.symm_eq +/- theorem LinearMap.transvection.LinearEquiv.transvection.trans_of_left_eq +/- theorem LinearMap.transvection.LinearEquiv.transvection.trans_of_right_eq +/- def LinearMap.transvection.LinearEquiv.transvection +/- theorem LinearMap.transvection.apply +/- theorem LinearMap.transvection.comp_of_left_eq +/- theorem LinearMap.transvection.comp_of_left_eq_apply +/- theorem LinearMap.transvection.comp_of_right_eq +/- theorem LinearMap.transvection.comp_of_right_eq_apply + theorem LinearMap.transvection.eq_id_of_finrank_le_one +/- theorem LinearMap.transvection.of_right_eq_zero +/- def LinearMap.transvection Modified Mathlib/RingTheory/TensorProduct/IsBaseChangeFree.lean +/- theorem IsBaseChange.free + theorem IsBaseChange.of_basis + theorem IsBaseChange.of_fintype_basis + theorem IsBaseChange.of_fintype_basis_eq Modified Mathlib/RingTheory/TensorProduct/IsBaseChangeHom.lean + theorem IsBaseChange.det_endHom + theorem IsBaseChange.endHom_comp + theorem IsBaseChange.endHom_comp_apply + theorem IsBaseChange.endHom_one + theorem IsBaseChange.endHom_toMatrix + theorem IsBaseChange.linearMapLeftRightHom_toMatrix 2025-12-22 19:35:49 b4edb65 feat(CategoryTheory/Sites): functoriality of descent data (#30190) Given a pseudofunctor `F` from `LocallyDiscrete Cᵒᵖ` to `Cat`, we show that up to an equivalence, the category `F.DescentData f` is unchanged when we replace `S` by an isomorphic object, or the family `f i : X i ⟶ S` by another family which generates the same sieve (see `Pseudofunctor.DescentData.pullFunctorEquivalence`). ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Bicategory/LocallyDiscrete.lean + theorem CategoryTheory.CommSq.toLoc Modified Mathlib/CategoryTheory/Category/Cat.lean + theorem CategoryTheory.Cat.Hom.hom_inv_id_toNatTrans + theorem CategoryTheory.Cat.Hom.hom_inv_id_toNatTrans_app + theorem CategoryTheory.Cat.Hom.inv_hom_id_toNatTrans + theorem CategoryTheory.Cat.Hom.inv_hom_id_toNatTrans_app Modified Mathlib/CategoryTheory/Sites/Descent/DescentData.lean + def CategoryTheory.Pseudofunctor.DescentData.pullFunctor + def CategoryTheory.Pseudofunctor.DescentData.pullFunctorCompIso + def CategoryTheory.Pseudofunctor.DescentData.pullFunctorEquivalence + def CategoryTheory.Pseudofunctor.DescentData.pullFunctorIdIso + def CategoryTheory.Pseudofunctor.DescentData.pullFunctorIso + def CategoryTheory.Pseudofunctor.DescentData.pullFunctorObj + def CategoryTheory.Pseudofunctor.DescentData.pullFunctorObjHom + theorem CategoryTheory.Pseudofunctor.DescentData.pullFunctorObjHom_eq + def CategoryTheory.Pseudofunctor.DescentData.toDescentDataCompPullFunctorIso 2025-12-22 18:39:41 2a7a4af refactor: standardize spelling of `ℵ₁` as `aleph_one` (#33198) See [Zulip](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Cardinal.2Econtinuum/near/564917455). ESTIMATED CHANGES Modified Mathlib/MeasureTheory/MeasurableSpace/Card.lean - theorem MeasurableSpace.generateMeasurableRec_of_omega1_le + theorem MeasurableSpace.generateMeasurableRec_of_omega_one_le - theorem MeasurableSpace.generateMeasurableRec_omega1 + theorem MeasurableSpace.generateMeasurableRec_omega_one Modified Mathlib/SetTheory/Cardinal/Aleph.lean - theorem Cardinal.aleph1_eq_lift - theorem Cardinal.aleph1_le_lift - theorem Cardinal.aleph1_lt_lift + theorem Cardinal.aleph_one_eq_lift + theorem Cardinal.aleph_one_le_lift + theorem Cardinal.aleph_one_lt_lift - theorem Cardinal.lift_eq_aleph1 + theorem Cardinal.lift_eq_aleph_one - theorem Cardinal.lift_le_aleph1 + theorem Cardinal.lift_le_aleph_one - theorem Cardinal.lift_lt_aleph1 + theorem Cardinal.lift_lt_aleph_one - theorem Ordinal.omega0_lt_omega1 + theorem Ordinal.omega0_lt_omega_one Modified Mathlib/SetTheory/Cardinal/Defs.lean Modified Mathlib/SetTheory/Cardinal/Regular.lean - theorem Ordinal.iSup_sequence_lt_omega1 + theorem Ordinal.iSup_sequence_lt_omega_one Modified Mathlib/SetTheory/Ordinal/Basic.lean 2025-12-22 18:39:40 85d7017 chore: enable assert_not_exists in BigOperators (#33187) ESTIMATED CHANGES Modified Mathlib/Algebra/BigOperators/Group/Finset/Basic.lean Modified Mathlib/Algebra/BigOperators/Group/Finset/Defs.lean 2025-12-22 18:39:38 d2cd533 feat: use new predicate `Meromorphic` (#33152) Following a discussion of Zulip, this very short PR ports the first functions to use the new predicate `Meromorphic`. Introduce two `fun_prop`s along the way. A much more massive PR that ports Value Distribution Theory will follow in a separate PR. [#mathlib4 > Introducing `Meromorphic` @ 💬](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Introducing.20.60Meromorphic.60/near/564522177) ESTIMATED CHANGES Modified Mathlib/Analysis/Meromorphic/Basic.lean + theorem Meromorphic.countable_compl_analyticAt + theorem Meromorphic.inv + theorem Meromorphic.measurable + theorem Meromorphic.smul - theorem MeromorphicOn.countable_compl_analyticAt - theorem MeromorphicOn.measurable 2025-12-22 17:49:32 dd5e5d9 feat(Order/FixedPoints): lfp ≤ gfp (#33199) ESTIMATED CHANGES Modified Mathlib/Order/FixedPoints.lean + theorem OrderHom.lfp_le_gfp 2025-12-22 17:49:30 5aff12a chore(Data/Sign/Defs): remove `backward.privateInPublic` (#33197) ESTIMATED CHANGES Modified Mathlib/Data/Sign/Defs.lean 2025-12-22 17:49:28 e315e52 chore(LinearAlgebra): fix whitespace (#33169) Found by extending the commandStart linter to proof bodies. ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/AffineSpace/Simplex/Basic.lean Modified Mathlib/LinearAlgebra/Eigenspace/Basic.lean Modified Mathlib/LinearAlgebra/FreeAlgebra.lean Modified Mathlib/LinearAlgebra/FreeModule/Basic.lean Modified Mathlib/LinearAlgebra/Matrix/Charpoly/Basic.lean Modified Mathlib/LinearAlgebra/Matrix/Determinant/Misc.lean Modified Mathlib/LinearAlgebra/Matrix/FixedDetMatrices.lean 2025-12-22 17:49:26 736607b chore(NumberTheory): fix whitespace (#33167) Found by extending the commandStart linter to proof bodies. ESTIMATED CHANGES Modified Mathlib/NumberTheory/ArithmeticFunction/Moebius.lean Modified Mathlib/NumberTheory/Divisors.lean Modified Mathlib/NumberTheory/LegendreSymbol/QuadraticChar/Basic.lean Modified Mathlib/NumberTheory/Niven.lean 2025-12-22 17:12:24 6df41e3 chore(Computability): fix whitespace (#33172) Found by extending the commandStart linter to proof bodies. ESTIMATED CHANGES Modified Mathlib/Computability/AkraBazzi/AkraBazzi.lean Modified Mathlib/Computability/AkraBazzi/GrowsPolynomially.lean Modified Mathlib/Computability/NFA.lean Modified Mathlib/Computability/TMToPartrec.lean 2025-12-22 17:12:22 7049d5b feat: `lift (ℶ_ o) = ℶ_ (lift o)` (#33059) ESTIMATED CHANGES Modified Mathlib/SetTheory/Cardinal/Aleph.lean + theorem Cardinal.lift_beth + theorem Cardinal.lift_preBeth 2025-12-22 15:55:57 062c4b7 feat(scripts): count the number of tactics without a docstring (#32131) We want to make sure every tactic is well documented. Right now, I count 33 tactics in Mathlib without any docstring at all. Add this number to the weekly technical debt metrics bot so we can track it and fix any regressions. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Init.lean Modified Mathlib/Tactic.lean Added Mathlib/Tactic/Linter/TacticDocumentation.lean Modified scripts/nolints.json Modified scripts/technical-debt-metrics.sh 2025-12-22 13:19:26 3cfe59e chore(Algebra): fix whitespace (#33182) Found by extending the commandStart linter to proof bodies. ESTIMATED CHANGES Modified Mathlib/Algebra/Category/ModuleCat/Semi.lean Modified Mathlib/Algebra/Category/ModuleCat/Sheaf/Free.lean Modified Mathlib/Algebra/Category/MonCat/Colimits.lean +/- inductive MonCat.Colimits.Relation Modified Mathlib/Algebra/GradedMonoid.lean Modified Mathlib/Algebra/Homology/Embedding/Extend.lean Modified Mathlib/Algebra/Homology/HomologicalComplex.lean Modified Mathlib/Algebra/Homology/HomotopyCategory/HomComplexShift.lean Modified Mathlib/Algebra/Homology/HomotopyCategory/KInjective.lean Modified Mathlib/Algebra/Homology/HomotopyCategory/MappingCone.lean Modified Mathlib/Algebra/Homology/HomotopyCategory/Triangulated.lean Modified Mathlib/Algebra/Homology/LeftResolution/Basic.lean Modified Mathlib/Algebra/Homology/LocalCohomology.lean Modified Mathlib/Algebra/Lie/CartanExists.lean Modified Mathlib/Algebra/Lie/Classical.lean Modified Mathlib/Algebra/Lie/EngelSubalgebra.lean Modified Mathlib/Algebra/Lie/LieTheorem.lean Modified Mathlib/Algebra/Lie/TraceForm.lean Modified Mathlib/Algebra/Lie/Weights/RootSystem.lean Modified Mathlib/Algebra/Module/GradedModule.lean Modified Mathlib/Algebra/Module/Submodule/Pointwise.lean Modified Mathlib/Algebra/Module/Torsion/Basic.lean Modified Mathlib/Algebra/Order/Antidiag/Nat.lean Modified Mathlib/Algebra/Order/Archimedean/Class.lean Modified Mathlib/Algebra/Polynomial/Degree/Domain.lean +/- theorem Polynomial.natDegree_mul Modified Mathlib/Algebra/Polynomial/Degree/Lemmas.lean Modified Mathlib/Algebra/Polynomial/HasseDeriv.lean Modified Mathlib/Algebra/Polynomial/Inductions.lean Modified Mathlib/Algebra/Polynomial/Roots.lean Modified Mathlib/Algebra/Polynomial/RuleOfSigns.lean Modified Mathlib/Algebra/Ring/Divisibility/Lemmas.lean Modified Mathlib/Algebra/Ring/NegOnePow.lean Modified Mathlib/Algebra/Star/StarAlgHom.lean +/- theorem StarAlgEquiv.toAlgEquiv_injective 2025-12-22 13:19:24 eb86768 chore(AlgebraicGeometry): fix whitespace (#33180) Found by extending the commandStart linter to proof bodies. ESTIMATED CHANGES Modified Mathlib/AlgebraicGeometry/Gluing.lean Modified Mathlib/AlgebraicGeometry/Limits.lean Modified Mathlib/AlgebraicGeometry/LimitsOver.lean Modified Mathlib/AlgebraicGeometry/Morphisms/ClosedImmersion.lean Modified Mathlib/AlgebraicGeometry/ProjectiveSpectrum/Scheme.lean Modified Mathlib/AlgebraicGeometry/Scheme.lean Modified Mathlib/AlgebraicGeometry/Spec.lean 2025-12-22 13:19:23 858a0d9 chore(AlgebraicTopology): fix whitespace (#33177) Found by extending the commandStart linter to proof bodies. ESTIMATED CHANGES Modified Mathlib/AlgebraicTopology/DoldKan/Projections.lean +/- theorem AlgebraicTopology.DoldKan.P_succ Modified Mathlib/AlgebraicTopology/Quasicategory/Basic.lean Modified Mathlib/AlgebraicTopology/SimplicialSet/FiniteProd.lean Modified Mathlib/AlgebraicTopology/SimplicialSet/Horn.lean +/- def SSet.horn.const 2025-12-22 13:19:21 41ba9d1 chore(Analysis): fix whitespace (#33176) Found by extending the commandStart linter to proof bodies. ESTIMATED CHANGES Modified Mathlib/Analysis/Analytic/Constructions.lean Modified Mathlib/Analysis/Analytic/OfScalars.lean Modified Mathlib/Analysis/Asymptotics/LinearGrowth.lean Modified Mathlib/Analysis/Calculus/ContDiff/Basic.lean Modified Mathlib/Analysis/Calculus/FDeriv/Measurable.lean Modified Mathlib/Analysis/Calculus/InverseFunctionTheorem/ApproximatesLinearOn.lean Modified Mathlib/Analysis/Complex/UpperHalfPlane/Topology.lean Modified Mathlib/Analysis/Convex/Body.lean Modified Mathlib/Analysis/LocallyConvex/SeparatingDual.lean Modified Mathlib/Analysis/MeanInequalities.lean Modified Mathlib/Analysis/Meromorphic/Basic.lean Modified Mathlib/Analysis/Normed/Field/Ultra.lean Modified Mathlib/Analysis/Normed/Group/Completeness.lean Modified Mathlib/Analysis/Normed/Module/Connected.lean Modified Mathlib/Analysis/Real/Hyperreal.lean Modified Mathlib/Analysis/SpecialFunctions/BinaryEntropy.lean Modified Mathlib/Analysis/SpecialFunctions/Log/Deriv.lean Modified Mathlib/Analysis/SpecialFunctions/Pow/Continuity.lean Modified Mathlib/Analysis/SpecialFunctions/Pow/Deriv.lean Modified Mathlib/Analysis/SpecialFunctions/Pow/NthRootLemmas.lean Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Angle.lean 2025-12-22 13:19:19 d14bc74 chore(Combinatorics): fix whitespace (#33173) Found by extending the commandStart linter to proof bodies. ESTIMATED CHANGES Modified Mathlib/Combinatorics/Configuration.lean Modified Mathlib/Combinatorics/Derangements/Finite.lean Modified Mathlib/Combinatorics/Enumerative/Bell.lean Modified Mathlib/Combinatorics/Hall/Basic.lean Modified Mathlib/Combinatorics/Matroid/Basic.lean Modified Mathlib/Combinatorics/Matroid/IndepAxioms.lean Modified Mathlib/Combinatorics/Matroid/Map.lean Modified Mathlib/Combinatorics/Quiver/ReflQuiver.lean Modified Mathlib/Combinatorics/SimpleGraph/Connectivity/Subgraph.lean Modified Mathlib/Combinatorics/SimpleGraph/Extremal/TuranDensity.lean Modified Mathlib/Combinatorics/SimpleGraph/Matching.lean Modified Mathlib/Combinatorics/SimpleGraph/Regularity/Increment.lean Modified Mathlib/Combinatorics/SimpleGraph/Subgraph.lean Modified Mathlib/Combinatorics/SimpleGraph/Triangle/Removal.lean 2025-12-22 13:19:18 6ef489e chore(Data): fix whitespace (#33171) Found by extending the commandStart linter to proof bodies. ESTIMATED CHANGES Modified Mathlib/Data/List/Sort.lean Modified Mathlib/Data/Nat/BitIndices.lean Modified Mathlib/Data/Nat/Choose/Central.lean Modified Mathlib/Data/Nat/Choose/Factorization.lean Modified Mathlib/Data/Nat/Digits/Lemmas.lean Modified Mathlib/Data/Nat/MaxPowDiv.lean +/- theorem Nat.maxPowDiv.go_succ Modified Mathlib/Data/Nat/ModEq.lean Modified Mathlib/Data/PFunctor/Multivariate/Basic.lean Modified Mathlib/Data/PFunctor/Univariate/Basic.lean Modified Mathlib/Data/PFunctor/Univariate/M.lean Modified Mathlib/Data/Seq/Basic.lean Modified Mathlib/Data/Set/Prod.lean Modified Mathlib/Data/ZMod/Basic.lean 2025-12-22 13:19:16 9c504bb chore(Geometry): fix whitespace (#33170) Found by extending the commandStart linter to proof bodies. ESTIMATED CHANGES Modified Mathlib/Geometry/RingedSpace/Basic.lean Modified Mathlib/Geometry/RingedSpace/LocallyRingedSpace/HasColimits.lean 2025-12-22 13:19:14 6197dc9 chore(MeasureTheory): fix whitespace (#33168) Found by extending the commandStart linter to proof bodies. ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Constructions/BorelSpace/Basic.lean Modified Mathlib/MeasureTheory/Constructions/BorelSpace/Order.lean Modified Mathlib/MeasureTheory/Function/LocallyIntegrable.lean Modified Mathlib/MeasureTheory/Function/LpSeminorm/Basic.lean Modified Mathlib/MeasureTheory/Integral/Bochner/ContinuousLinearMap.lean Modified Mathlib/MeasureTheory/Integral/Marginal.lean Modified Mathlib/MeasureTheory/Integral/MeanInequalities.lean Modified Mathlib/MeasureTheory/Measure/Decomposition/Exhaustion.lean Modified Mathlib/MeasureTheory/Measure/Typeclasses/Finite.lean Modified Mathlib/MeasureTheory/SpecificCodomains/ContinuousMap.lean 2025-12-22 13:19:13 bf9d855 chore(Order): fix whitespace (#33166) Found by extending the commandStart linter to proof bodies. ESTIMATED CHANGES Modified Mathlib/Order/BoundedOrder/Basic.lean Modified Mathlib/Order/CountableDenseLinearOrder.lean Modified Mathlib/Order/Filter/AtTopBot/Basic.lean Modified Mathlib/Order/LiminfLimsup.lean 2025-12-22 13:19:11 b363d7e chore(RingTheory): fix whitespace (#33165) Found by extending the commandStart linter to proof bodies. ESTIMATED CHANGES Modified Mathlib/RingTheory/Adjoin/Basic.lean Modified Mathlib/RingTheory/DedekindDomain/Ideal/Lemmas.lean Modified Mathlib/RingTheory/Flat/FaithfullyFlat/Basic.lean Modified Mathlib/RingTheory/HahnSeries/Binomial.lean Modified Mathlib/RingTheory/Ideal/Quotient/Operations.lean Modified Mathlib/RingTheory/Jacobson/Ring.lean Modified Mathlib/RingTheory/Kaehler/Basic.lean Modified Mathlib/RingTheory/MvPolynomial/Homogeneous.lean Modified Mathlib/RingTheory/MvPolynomial/MonomialOrder.lean Modified Mathlib/RingTheory/MvPowerSeries/Basic.lean Modified Mathlib/RingTheory/MvPowerSeries/Order.lean Modified Mathlib/RingTheory/Polynomial/Cyclotomic/Basic.lean Modified Mathlib/RingTheory/Polynomial/ScaleRoots.lean Modified Mathlib/RingTheory/PowerSeries/Order.lean Modified Mathlib/RingTheory/PowerSeries/Substitution.lean Modified Mathlib/RingTheory/RootsOfUnity/Complex.lean Modified Mathlib/RingTheory/TensorProduct/Free.lean Modified Mathlib/RingTheory/Valuation/Archimedean.lean Modified Mathlib/RingTheory/Valuation/Basic.lean 2025-12-22 13:19:09 8a100fb chore(Topology): fix whitespace (#33164) Found by extending the commandStart linter to proof bodies. ESTIMATED CHANGES Modified Mathlib/Topology/Algebra/InfiniteSum/Group.lean Modified Mathlib/Topology/Algebra/Module/Cardinality.lean Modified Mathlib/Topology/Algebra/UniformField.lean Modified Mathlib/Topology/Category/CompactlyGenerated.lean Modified Mathlib/Topology/Category/LightProfinite/Basic.lean +/- structure LightDiagram Modified Mathlib/Topology/Category/Sequential.lean Modified Mathlib/Topology/Compactness/Lindelof.lean Modified Mathlib/Topology/EMetricSpace/Lipschitz.lean Modified Mathlib/Topology/Instances/CantorSet.lean Modified Mathlib/Topology/MetricSpace/Contracting.lean Modified Mathlib/Topology/MetricSpace/Gluing.lean Modified Mathlib/Topology/MetricSpace/HausdorffAlexandroff.lean Modified Mathlib/Topology/MetricSpace/Lipschitz.lean Modified Mathlib/Topology/NoetherianSpace.lean Modified Mathlib/Topology/Order/LeftRightNhds.lean Modified Mathlib/Topology/Sheaves/SheafCondition/UniqueGluing.lean Modified Mathlib/Topology/UniformSpace/HeineCantor.lean Modified Mathlib/Topology/UniformSpace/UniformConvergenceTopology.lean Modified Mathlib/Topology/UnitInterval.lean 2025-12-22 11:55:07 61d1f8f refactor(Analysis,Geometry): assume `n ≠ 0`, not `1 ≤ n` (#33131) This way it's a `positivity` goal. ESTIMATED CHANGES Modified Mathlib/Analysis/Calculus/AddTorsor/AffineMap.lean Modified Mathlib/Analysis/Calculus/ContDiff/Basic.lean Modified Mathlib/Analysis/Calculus/ContDiff/Bounds.lean Modified Mathlib/Analysis/Calculus/ContDiff/Defs.lean +/- theorem ContDiff.continuous_fderiv +/- theorem ContDiff.continuous_fderiv_apply +/- theorem ContDiff.differentiable +/- theorem ContDiffAt.differentiableAt +/- theorem ContDiffOn.differentiableOn +/- theorem ContDiffWithinAt.differentiableWithinAt' +/- theorem ContDiffWithinAt.differentiableWithinAt Modified Mathlib/Analysis/Calculus/ContDiff/FTaylorSeries.lean +/- theorem HasFTaylorSeriesUpTo.differentiable +/- theorem HasFTaylorSeriesUpTo.hasFDerivAt +/- theorem HasFTaylorSeriesUpToOn.differentiableAt +/- theorem HasFTaylorSeriesUpToOn.differentiableOn +/- theorem HasFTaylorSeriesUpToOn.hasFDerivAt +/- theorem HasFTaylorSeriesUpToOn.hasFDerivWithinAt Modified Mathlib/Analysis/Calculus/ContDiff/FaaDiBruno.lean Modified Mathlib/Analysis/Calculus/ContDiff/RCLike.lean +/- theorem ContDiff.hasStrictDerivAt +/- theorem ContDiff.hasStrictFDerivAt +/- theorem ContDiffAt.hasStrictDerivAt +/- theorem ContDiffAt.hasStrictFDerivAt Modified Mathlib/Analysis/Calculus/DifferentialForm/Basic.lean Modified Mathlib/Analysis/Calculus/FDeriv/Norm.lean Modified Mathlib/Analysis/Calculus/FDeriv/Symmetric.lean Modified Mathlib/Analysis/Calculus/ImplicitContDiff.lean Modified Mathlib/Analysis/Calculus/InverseFunctionTheorem/ContDiff.lean Modified Mathlib/Analysis/Calculus/Rademacher.lean Modified Mathlib/Analysis/Calculus/Taylor.lean Modified Mathlib/Analysis/Calculus/VectorField.lean Modified Mathlib/Analysis/Complex/Harmonic/Analytic.lean Modified Mathlib/Analysis/Complex/UpperHalfPlane/Manifold.lean Modified Mathlib/Analysis/Convolution.lean Modified Mathlib/Analysis/Distribution/SchwartzSpace.lean Modified Mathlib/Analysis/Distribution/TemperateGrowth.lean Modified Mathlib/Analysis/FunctionalSpaces/SobolevInequality.lean Modified Mathlib/Analysis/InnerProductSpace/Calculus.lean Modified Mathlib/Analysis/InnerProductSpace/NormPow.lean Modified Mathlib/Analysis/SpecialFunctions/ExpDeriv.lean Modified Mathlib/Analysis/SpecialFunctions/Pow/Deriv.lean Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/InverseDeriv.lean Modified Mathlib/Geometry/Manifold/Algebra/Monoid.lean Modified Mathlib/Geometry/Manifold/ContMDiffMFDeriv.lean Modified Mathlib/Geometry/Manifold/Diffeomorph.lean +/- theorem Diffeomorph.toOpenPartialHomeomorph_mdifferentiable +/- theorem Diffeomorph.uniqueDiffOn_image +/- theorem Diffeomorph.uniqueDiffOn_preimage +/- theorem Diffeomorph.uniqueMDiffOn_image +/- theorem Diffeomorph.uniqueMDiffOn_image_aux +/- theorem Diffeomorph.uniqueMDiffOn_preimage Modified Mathlib/Geometry/Manifold/GroupLieAlgebra.lean Modified Mathlib/Geometry/Manifold/Instances/Icc.lean Modified Mathlib/Geometry/Manifold/Instances/Sphere.lean Modified Mathlib/Geometry/Manifold/LocalDiffeomorph.lean +/- theorem Diffeomorph.mfderivToContinuousLinearEquiv_coe +/- theorem IsLocalDiffeomorph.mdifferentiable +/- theorem IsLocalDiffeomorphAt.localInverse_mdifferentiableAt +/- theorem IsLocalDiffeomorphAt.mdifferentiableAt +/- theorem IsLocalDiffeomorphOn.mdifferentiableOn Modified Mathlib/Geometry/Manifold/MFDeriv/Atlas.lean Modified Mathlib/Geometry/Manifold/MFDeriv/Basic.lean +/- theorem ContMDiff.mdifferentiable +/- theorem ContMDiff.mdifferentiableAt +/- theorem ContMDiff.mdifferentiableWithinAt +/- theorem ContMDiffAt.mdifferentiableAt +/- theorem ContMDiffOn.mdifferentiableOn Modified Mathlib/Geometry/Manifold/MFDeriv/Defs.lean Modified Mathlib/Geometry/Manifold/MFDeriv/NormedSpace.lean Modified Mathlib/Geometry/Manifold/MFDeriv/UniqueDifferential.lean Modified Mathlib/Geometry/Manifold/Riemannian/Basic.lean Modified Mathlib/Geometry/Manifold/Riemannian/PathELength.lean Modified Mathlib/Geometry/Manifold/VectorBundle/Hom.lean Modified Mathlib/Geometry/Manifold/VectorBundle/LocalFrame.lean Modified Mathlib/Geometry/Manifold/VectorBundle/MDifferentiable.lean Modified Mathlib/Geometry/Manifold/VectorBundle/Riemannian.lean Modified Mathlib/Geometry/Manifold/VectorBundle/SmoothSection.lean Modified Mathlib/Geometry/Manifold/VectorBundle/Tangent.lean Modified Mathlib/Geometry/Manifold/VectorField/LieBracket.lean Modified Mathlib/Geometry/Manifold/VectorField/Pullback.lean Modified Mathlib/Geometry/Manifold/WhitneyEmbedding.lean Modified Mathlib/MeasureTheory/Integral/IntegralEqImproper.lean Modified Mathlib/MeasureTheory/Integral/IntervalIntegral/ContDiff.lean Modified Mathlib/MeasureTheory/Integral/IntervalIntegral/TrapezoidalRule.lean 2025-12-22 11:33:59 925bff5 fix(to_fun): fix the `@[to_fun]` attribute when the proof is not by reflexivity (#32866) This PR fixes the bug in `@[to_fun]` reported in https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/.60to_fun.60.20tactic/with/563623809 ESTIMATED CHANGES Modified Mathlib/Tactic/ToFun.lean Modified MathlibTest/ToFun.lean + theorem Function.mul_comm' + theorem Pi.mul_def' 2025-12-22 11:09:34 9fc4084 chore(CategoryTheory): fix whitespace (#33174) Found by extending the commandStart linter to proof bodies. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Abelian/Injective/Resolution.lean Modified Mathlib/CategoryTheory/Bicategory/Free.lean Modified Mathlib/CategoryTheory/ComposableArrows/Basic.lean Modified Mathlib/CategoryTheory/FiberedCategory/HasFibers.lean Modified Mathlib/CategoryTheory/IsConnected.lean Modified Mathlib/CategoryTheory/Limits/FilteredColimitCommutesFiniteLimit.lean Modified Mathlib/CategoryTheory/Limits/MonoCoprod.lean Modified Mathlib/CategoryTheory/Limits/Preserves/Shapes/Pullbacks.lean Modified Mathlib/CategoryTheory/Localization/StructuredArrow.lean Modified Mathlib/CategoryTheory/LocallyCartesianClosed/Over.lean +/- def CategoryTheory.toOverIsoToOverUnit Modified Mathlib/CategoryTheory/Preadditive/AdditiveFunctor.lean Modified Mathlib/CategoryTheory/Preadditive/Schur.lean Modified Mathlib/CategoryTheory/Quotient/Preadditive.lean Modified Mathlib/CategoryTheory/Shift/Basic.lean Modified Mathlib/CategoryTheory/Sites/Coherent/CoherentTopology.lean Modified Mathlib/CategoryTheory/Sites/Coverage.lean Modified Mathlib/CategoryTheory/Sites/Descent/IsPrestack.lean Modified Mathlib/CategoryTheory/Sites/Hypercover/Zero.lean Modified Mathlib/CategoryTheory/Sites/Sieves.lean Modified Mathlib/CategoryTheory/Triangulated/Pretriangulated.lean Modified Mathlib/CategoryTheory/Triangulated/TStructure/Basic.lean Modified Mathlib/CategoryTheory/Triangulated/TStructure/TruncLTGE.lean 2025-12-22 11:09:32 f87e0d5 feat(CategoryTheory): the category of type-valued functors has images (#32619) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Limits/FunctorCategory/Shapes/Images.lean + def CategoryTheory.FunctorToTypes.monoFactorisation Modified Mathlib/CategoryTheory/Limits/Shapes/Images.lean + theorem CategoryTheory.Limits.MonoFactorisation.fac_apply 2025-12-22 09:02:14 839af0c feat(RingTheory/MvPolynomial/IrrQuadratic): irreducibility of sum X_i Y_i (#31161) The quadratic polynomial $$\sum_i c_i X_i Y_i$$ is irreducible, provided the following three conditions holds: * the ground ring is a domain * there are at least 2 nonzero $$c_i$$ * only units of $$R$$ divide all $$c_i$$. This was used in the initial proof that the transvections have determinant 1. Now, a more general result is proved there and this PR is no more needed. I believe that it remains of independent interest (irreducibility of quadrics in algebraic geometry) but the maintainers might want that the general one. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/MvPolynomial/Equiv.lean +/- theorem MvPolynomial.optionEquivLeft_coeff_coeff + theorem MvPolynomial.optionEquivLeft_coeff_some_coeff_none + theorem MvPolynomial.optionEquivLeft_symm_C_X Modified Mathlib/Algebra/MvPolynomial/Nilpotent.lean Modified Mathlib/Algebra/Polynomial/RingDivision.lean + theorem Polynomial.irreducible_C_mul_X_add_C + theorem Polynomial.irreducible_of_degree_eq_one_of_isRelPrime_coeff Modified Mathlib/Algebra/Prime/Lemmas.lean + theorem IsRelPrime.of_map Modified Mathlib/Combinatorics/Nullstellensatz.lean Modified Mathlib/Data/Finsupp/Defs.lean + theorem Finsupp.nontrivial_of_nontrivial Modified Mathlib/FieldTheory/SeparablyGenerated.lean Modified Mathlib/Logic/Nontrivial/Defs.lean + theorem Function.nontrivial_of_nontrivial Added Mathlib/RingTheory/MvPolynomial/IrreducibleQuadratic.lean + theorem MvPolynomial.coeff_sumSMulX + theorem MvPolynomial.irreducible_mul_X_add + theorem MvPolynomial.irreducible_of_disjoint_support + theorem MvPolynomial.irreducible_of_totalDegree_eq_one + theorem MvPolynomial.irreducible_sumSMulX + theorem MvPolynomial.irreducible_sumSMulXSMulY Modified Mathlib/RingTheory/MvPolynomial/MonomialOrder/DegLex.lean + theorem MvPolynomial.dvd_smul_X_iff_exists Modified Mathlib/RingTheory/Polynomial/Nilpotent.lean 2025-12-22 08:28:31 55a0e81 feat(to_fun): show the generated declaration when hovering (#33154) This PR modifies `@[to_fun]` so that the generated declaration shows up when hovering over `to_fun`. ESTIMATED CHANGES Modified Mathlib/Tactic/ToFun.lean Modified Mathlib/Util/AddRelatedDecl.lean 2025-12-22 00:12:00 cc5691d chore: update Mathlib dependencies 2025-12-21 (#33184) This PR updates the Mathlib dependencies. ESTIMATED CHANGES Modified lake-manifest.json 2025-12-21 20:59:22 8565b64 feat(AlgebraicGeometry): flat monomorphisms of finite presentation are open immersions (#32958) We deduce this from fpqc descent for isomorphisms. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/AlgebraicGeometry/Morphisms/FlatMono.lean + theorem AlgebraicGeometry.Flat.isIso_of_surjective_of_mono + theorem AlgebraicGeometry.IsOpenImmersion.of_flat_of_mono 2025-12-21 19:31:42 36ff576 chore: fix whitespace (#33155) Found by extending the commandStart linter to proof bodies. ESTIMATED CHANGES Modified Mathlib/FieldTheory/Extension.lean Modified Mathlib/FieldTheory/JacobsonNoether.lean Modified Mathlib/FieldTheory/PurelyInseparable/Basic.lean Modified Mathlib/GroupTheory/ArchimedeanDensely.lean Modified Mathlib/GroupTheory/Coxeter/Basic.lean Modified Mathlib/GroupTheory/Coxeter/Inversion.lean Modified Mathlib/GroupTheory/Perm/Cycle/PossibleTypes.lean Modified Mathlib/GroupTheory/QuotientGroup/Basic.lean Modified Mathlib/GroupTheory/SpecificGroups/Alternating/MaximalSubgroups.lean 2025-12-21 18:39:46 d306471 fix(Algebra/BigOperators/Group/Finset): Add missing binder annotation with pp.analyze in Finset.sum (#33070) ESTIMATED CHANGES Modified Mathlib/Algebra/BigOperators/Group/Finset/Defs.lean Modified MathlibTest/BigOps.lean 2025-12-21 17:00:28 da22c4e feat(RingTheory/Smooth/StandardSmooth): transport `IsStandardSmooth` along algebra isomorphisms (#32925) ESTIMATED CHANGES Modified Mathlib/RingTheory/Extension/Generators.lean + theorem Algebra.Generators.ker_ofAlgEquiv + def Algebra.Generators.ofAlgEquiv + theorem Algebra.Generators.ofAlgEquiv_val Modified Mathlib/RingTheory/Extension/Presentation/Basic.lean + theorem Algebra.Presentation.dimension_ofAlgEquiv + def Algebra.Presentation.ofAlgEquiv Modified Mathlib/RingTheory/Extension/Presentation/Submersive.lean + theorem Algebra.PreSubmersivePresentation.jacobiMatrix_ofAlgEquiv + theorem Algebra.PreSubmersivePresentation.jacobian_ofAlgEquiv + def Algebra.PreSubmersivePresentation.ofAlgEquiv + def Algebra.SubmersivePresentation.ofAlgEquiv Modified Mathlib/RingTheory/Smooth/StandardSmooth.lean + theorem Algebra.IsStandardSmooth.of_algEquiv + theorem Algebra.IsStandardSmoothOfRelativeDimension.of_algEquiv 2025-12-21 15:46:59 6712d82 feat: Prokhorov theorem (#32701) We prove a version of Prokhorov theorem: given a sequence of compact sets `Kₙ` and a sequence `uₙ` tending to zero, the probability measures giving mass at most `uₙ` to the complement of `Kₙ` form a compact set. We deduce that a tight set of probability measures has compact closure. We only assume that the space is T2 (no metrizability, no second-countability). ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/MeasureTheory/Integral/RieszMarkovKakutani/Real.lean Modified Mathlib/MeasureTheory/Measure/FiniteMeasure.lean + theorem MeasureTheory.FiniteMeasure.mono_null + theorem MeasureTheory.FiniteMeasure.pos_mono + theorem MeasureTheory.FiniteMeasure.restrict_biUnion_finset Modified Mathlib/MeasureTheory/Measure/ProbabilityMeasure.lean Added Mathlib/MeasureTheory/Measure/Prokhorov.lean + theorem isCompact_closure_of_isTightMeasureSet + theorem isCompact_setOf_finiteMeasure_eq_of_compactSpace + theorem isCompact_setOf_finiteMeasure_le_of_compactSpace + theorem isCompact_setOf_finiteMeasure_le_of_isCompact + theorem isCompact_setOf_finiteMeasure_mass_eq_compl_isCompact_le + theorem isCompact_setOf_finiteMeasure_mass_le_compl_isCompact_le + theorem isCompact_setOf_probabilityMeasure_mass_eq_compl_isCompact_le Modified Mathlib/Order/Disjointed.lean + theorem biUnion_Iic_disjointed + theorem biUnion_Ioc_disjointed_of_monotone + theorem biUnion_range_succ_disjointed + theorem sup_Ioc_disjointed_of_monotone Modified Mathlib/Order/Interval/Finset/Nat.lean + theorem Nat.range_succ_eq_Iic 2025-12-21 14:55:20 8fc0483 chore: fix more `unusedFintypeInType` linter violations (#33148) This PR fixes more violations of the `unusedFintypeInType` linter which have crept into `master` since #33068, and prepares us to merge and turn on the `unusedFintypeInType` linter (#31794, #31795). ESTIMATED CHANGES Modified Mathlib/Analysis/InnerProductSpace/PiL2.lean Modified Mathlib/Combinatorics/SimpleGraph/Paths.lean 2025-12-21 14:55:18 c3d2e6f chore(Analysis/Meromorphic/Basic): remove redundant `fun_` lemmas (#33144) This PR removes some lemmas `fun_deriv` and `fun_iterated_deriv`, because they are purely eta-expanded forms of existing lemmas. There is no scenario where these lemmas would be more useful than the existing lemmas. Since the lemmas are very new, they don't need a deprecation. ESTIMATED CHANGES Modified Mathlib/Analysis/Meromorphic/Basic.lean - theorem MeromorphicAt.fun_deriv - theorem MeromorphicAt.fun_iterated_deriv - theorem MeromorphicOn.fun_deriv - theorem MeromorphicOn.fun_iterated_deriv 2025-12-21 14:55:17 13dadcb doc(CategoryTheory): fix typos (#33123) Fixes found and fixed by Codex. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Abelian/DiagramLemmas/KernelCokernelComp.lean Modified Mathlib/CategoryTheory/CommSq.lean Modified Mathlib/CategoryTheory/Functor/Derived/LeftDerived.lean Modified Mathlib/CategoryTheory/Grothendieck.lean Modified Mathlib/CategoryTheory/Idempotents/FunctorCategories.lean Modified Mathlib/CategoryTheory/Limits/Final/Type.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Pullback/HasPullback.lean Modified Mathlib/CategoryTheory/Monad/Kleisli.lean Modified Mathlib/CategoryTheory/ObjectProperty/Retract.lean Modified Mathlib/CategoryTheory/Sums/Basic.lean Modified Mathlib/CategoryTheory/Triangulated/Opposite/Pretriangulated.lean 2025-12-21 14:55:15 d155a8a feat(SpecialFunctions/Log): log ∘ rexp = id (#33106) Adds `@[simp] theorem log_comp_exp : Real.log ∘ Real.exp = id` Upstreamed from [quantumInfo](https://github.com/Timeroot/Lean-QuantumInfo) ESTIMATED CHANGES Modified Mathlib/Analysis/SpecialFunctions/Log/Basic.lean + theorem Real.log_comp_exp 2025-12-21 14:55:13 c27de61 chore(Algebra/Group/TransferInstance): make `mulEquiv_symm_apply` be simp (#33094) This is needed in #25273 to make `simps` generate the correct lemma. ESTIMATED CHANGES Modified Mathlib/Algebra/Group/TransferInstance.lean 2025-12-21 14:55:12 102fff6 feat(Algebra): product of `1`s over a `Finsupp` (#33093) ESTIMATED CHANGES Modified Mathlib/Algebra/BigOperators/Finsupp/Basic.lean + theorem Finsupp.prod_fun_one Modified Mathlib/Algebra/Category/ModuleCat/Adjunctions.lean Modified Mathlib/Algebra/MonoidAlgebra/Module.lean Modified Mathlib/Algebra/MonoidAlgebra/Support.lean Modified Mathlib/LinearAlgebra/Matrix/SesquilinearForm.lean 2025-12-21 14:55:10 7b1c10a feat(VitaliFamily): prove `filterAt_enlarge` (#32775) From https://github.com/urkud/SardMoreira ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Covering/VitaliFamily.lean + theorem VitaliFamily.filterAt_enlarge + theorem VitaliFamily.fineSubfamilyOn_iff_frequently 2025-12-21 14:55:09 a1cb56b chore(CategoryTheory): module deprecations for #32746 (#32751) deprecates the modules removed in #32746 ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Subpresheaf/Basic.lean Added Mathlib/CategoryTheory/Subpresheaf/Equalizer.lean Added Mathlib/CategoryTheory/Subpresheaf/Finite.lean Added Mathlib/CategoryTheory/Subpresheaf/Image.lean Added Mathlib/CategoryTheory/Subpresheaf/OfSection.lean Added Mathlib/CategoryTheory/Subpresheaf/Sieves.lean Added Mathlib/CategoryTheory/Subpresheaf/Subobject.lean 2025-12-21 14:55:07 160994a feat: Integrable if UI + convergence in measure (#31885) ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Function/UniformIntegrable.lean + theorem MeasureTheory.UniformIntegrable.integrable_of_ae_tendsto + theorem MeasureTheory.UniformIntegrable.integrable_of_tendstoInMeasure + theorem MeasureTheory.UniformIntegrable.memLp_of_ae_tendsto + theorem MeasureTheory.UniformIntegrable.memLp_of_tendstoInMeasure 2025-12-21 06:52:49 e182c0d feat: introduce predicate `Meromorphic` (#33117) Following a discussion of Zulip, introduce the predicate `Meromorphic` as a shorthand for functions that are `MeromorphicOn … Set.univ` [#mathlib4 > Introducing `Meromorphic` @ 💬](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Introducing.20.60Meromorphic.60/near/564522177) ESTIMATED CHANGES Modified Mathlib/Analysis/Meromorphic/Basic.lean + theorem Meromorphic.add + theorem Meromorphic.div + theorem Meromorphic.iterated_deriv + theorem Meromorphic.meromorphicAt + theorem Meromorphic.meromorphicOn + theorem Meromorphic.mul + theorem Meromorphic.neg + theorem Meromorphic.pow + theorem Meromorphic.prod + theorem Meromorphic.sub + theorem Meromorphic.sum + theorem Meromorphic.zpow + def Meromorphic + theorem meromorphicOn_univ 2025-12-21 02:49:54 9f9ba7d feat(RingTheory/PowerSeries): toSubring and ofSubring for MvPowerSeries (#32559) define MvPowerSeries.toSubring and MvPowerSeries.ofSubring, and prove their order and weighted order are equal. (same for PowerSeries.) ESTIMATED CHANGES Modified Mathlib/RingTheory/MvPowerSeries/Basic.lean + theorem MvPowerSeries.coeff_toSubring + theorem MvPowerSeries.constantCoeff_toSubring + theorem MvPowerSeries.map_toSubring + def MvPowerSeries.toSubring Modified Mathlib/RingTheory/MvPowerSeries/Order.lean + theorem MvPowerSeries.order_toSubring + theorem MvPowerSeries.weightedOrder_toSubring Modified Mathlib/RingTheory/PowerSeries/Basic.lean + theorem PowerSeries.coeff_toSubring + theorem PowerSeries.constantCoeff_toSubring + theorem PowerSeries.map_toSubring + def PowerSeries.toSubring Modified Mathlib/RingTheory/PowerSeries/Order.lean + theorem PowerSeries.order_toSubring 2025-12-20 22:24:00 359769a feat(to_fun): throw a warning instead of creating a duplicate declaration (#33136) I noticed that people using the `to_fun` attribute were having a hard time realizing that the attribute didn't do anything in some cases. So, if the declaration type is unchanged, throw an error. One such existing case has been uncovered in this PR. ESTIMATED CHANGES Modified Mathlib/Analysis/Distribution/TemperateGrowth.lean Modified Mathlib/Tactic/ToFun.lean Modified MathlibTest/ToFun.lean +/- theorem foo 2025-12-20 21:16:04 c2a50c8 chore: remove some `backward.proofsInPublic` settings (#32945) ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/Subalgebra/Lattice.lean Modified Mathlib/Algebra/Category/ModuleCat/Basic.lean +/- def ModuleCat.Hom.hom₂ Modified Mathlib/Algebra/Category/ModuleCat/Semi.lean +/- def SemimoduleCat.Hom.hom₂ Modified Mathlib/Algebra/GroupWithZero/NonZeroDivisors.lean Modified Mathlib/Algebra/SkewMonoidAlgebra/Lift.lean Modified Mathlib/CategoryTheory/Limits/Indization/IndObject.lean Modified Mathlib/CategoryTheory/Limits/Shapes/ZeroMorphisms.lean Modified Mathlib/CategoryTheory/Presentable/IsCardinalFiltered.lean Modified Mathlib/CategoryTheory/Sites/Sieves.lean Modified Mathlib/Combinatorics/SimpleGraph/Connectivity/Connected.lean Modified Mathlib/Data/PFun.lean Modified Mathlib/LinearAlgebra/Determinant.lean Modified Mathlib/RingTheory/Ideal/Height.lean Modified Mathlib/RingTheory/PicardGroup.lean Modified Mathlib/RingTheory/Polynomial/Quotient.lean Modified Mathlib/SetTheory/Descriptive/Tree.lean +/- def Descriptive.Tree.subAt 2025-12-20 21:16:02 c5f79a7 feat(RingTheory/FinitePresentation): a finite product of finitely presented algebras is finitely presented (#32758) From Pi1. ESTIMATED CHANGES Modified Mathlib/Algebra/BigOperators/Pi.lean +/- theorem Pi.mulSingle_induction +/- theorem Pi.single_induction Modified Mathlib/RingTheory/Ideal/Basic.lean + theorem Ideal.span_single_eq_top Modified Mathlib/RingTheory/Ideal/Maps.lean + theorem RingHom.ker_evalRingHom Modified Mathlib/RingTheory/RingHom/FinitePresentation.lean + theorem Algebra.FinitePresentation.of_span_eq_top_target_of_isLocalizationAway 2025-12-20 21:16:01 fb469c7 chore: use the to_fun attribute (#32231) Reduce code duplication using the to_fun attribute. This is not exhaustive, neither does it constitute an endorsement "we always want to generate the applied form of a lemma". ESTIMATED CHANGES Modified Mathlib/Analysis/Analytic/Constructions.lean +/- theorem AnalyticAt.add - theorem AnalyticAt.fun_add - theorem AnalyticAt.fun_const_smul - theorem AnalyticAt.fun_inv - theorem AnalyticAt.fun_mul - theorem AnalyticAt.fun_neg - theorem AnalyticAt.fun_pow - theorem AnalyticAt.fun_smul - theorem AnalyticAt.fun_sub - theorem AnalyticAt.fun_zpow - theorem AnalyticAt.fun_zpow_nonneg - theorem AnalyticOn.fun_inv - theorem AnalyticOn.fun_pow - theorem AnalyticOn.fun_zpow - theorem AnalyticOn.fun_zpow_nonneg - theorem AnalyticOnNhd.fun_inv - theorem AnalyticOnNhd.fun_pow - theorem AnalyticOnNhd.fun_zpow - theorem AnalyticOnNhd.fun_zpow_nonneg - theorem AnalyticWithinAt.fun_inv - theorem AnalyticWithinAt.fun_pow - theorem AnalyticWithinAt.fun_zpow - theorem AnalyticWithinAt.fun_zpow_nonneg Modified Mathlib/Analysis/Meromorphic/Basic.lean - theorem MeromorphicAt.fun_add - theorem MeromorphicAt.fun_div - theorem MeromorphicAt.fun_inv - theorem MeromorphicAt.fun_mul - theorem MeromorphicAt.fun_neg - theorem MeromorphicAt.fun_pow - theorem MeromorphicAt.fun_sub - theorem MeromorphicAt.fun_zpow +/- theorem MeromorphicOn.add +/- theorem MeromorphicOn.div - theorem MeromorphicOn.fun_add - theorem MeromorphicOn.fun_div - theorem MeromorphicOn.fun_inv - theorem MeromorphicOn.fun_mul - theorem MeromorphicOn.fun_neg - theorem MeromorphicOn.fun_pow - theorem MeromorphicOn.fun_sub - theorem MeromorphicOn.fun_zpow +/- theorem MeromorphicOn.inv +/- theorem MeromorphicOn.mul +/- theorem MeromorphicOn.neg +/- theorem MeromorphicOn.pow +/- theorem MeromorphicOn.sub +/- theorem MeromorphicOn.zpow 2025-12-20 21:15:59 3cd4988 feat(ModelTheory): add characterizations of complete theories (#32146) Add `isComplete_eq_complete_theory` and `isComplete_iff_models_elementarily_equivalent` to connect syntactic completeness with semantic properties. ESTIMATED CHANGES Modified Mathlib/ModelTheory/Satisfiability.lean + theorem FirstOrder.Language.Theory.IsComplete.eq_complete_theory + theorem FirstOrder.Language.Theory.IsComplete.isComplete_iff_models_elementarily_equivalent + theorem FirstOrder.Language.Theory.IsComplete.models_elementarily_equivalent 2025-12-20 21:15:58 ac27902 feat(Geometry/Euclidean/Angle/Unoriented/TriangleInequality): Add criterion for equality case (#32116) The PR fills `proof_wanted` in the file `TriangleInequality.lean` (criterion for equality in the triangle inequality for angles). ESTIMATED CHANGES Modified Mathlib/Geometry/Euclidean/Angle/Unoriented/Basic.lean + theorem InnerProductGeometry.eq_of_angle_eq_zero_of_norm_eq Modified Mathlib/Geometry/Euclidean/Angle/Unoriented/TriangleInequality.lean + theorem InnerProductGeometry.angle_expression_of_angle_eq_angle_sum +/- theorem InnerProductGeometry.angle_le_angle_add_angle_aux +/- theorem InnerProductGeometry.angle_le_angle_add_angle_of_norm_eq_one + theorem InnerProductGeometry.eq_of_angle_eq_zero +/- theorem InnerProductGeometry.inner_normalize_ortho +/- theorem InnerProductGeometry.inner_normalized_ortho_sq_add_inner_sq_eq_one + theorem InnerProductGeometry.inner_ortho_nonneg - theorem InnerProductGeometry.inner_ortho_nonneg_of_norm_eq_one +/- theorem InnerProductGeometry.inner_ortho_right_eq_sin_angle + theorem InnerProductGeometry.mem_span_of_linear_combination + theorem InnerProductGeometry.ortho_eq_sub_inner + theorem InnerProductGeometry.ortho_ne_zero_of_not_collinear 2025-12-20 12:59:31 e9a7156 feat: 2025 imo problem3 (#27254) - [x] depends on: #28788 - [x] depends on: #28790 - [x] depends on: #28829 ESTIMATED CHANGES Modified Archive.lean Added Archive/Imo/Imo2025Q3.lean + theorem Imo2025Q3.IsBonza.apply_dvd_pow + theorem Imo2025Q3.IsBonza.apply_prime_eq_one_or_dvd_self_sub_apply + theorem Imo2025Q3.IsBonza.apply_prime_gt_two_eq_one + theorem Imo2025Q3.IsBonza.not_id_apply_prime_of_gt_eq_one + theorem Imo2025Q3.IsBonza.not_id_two_pow + def Imo2025Q3.IsBonza + theorem Imo2025Q3.fExample.apply_le + theorem Imo2025Q3.fExample.dvd_pow_sub + theorem Imo2025Q3.fExample.isBonza + def Imo2025Q3.fExample + theorem Imo2025Q3.result Modified Mathlib/Algebra/Ring/Int/Parity.lean + theorem Int.coe_nat_two_pow_pred + theorem Int.natCast_pow_pred Modified Mathlib/NumberTheory/LucasLehmer.lean - theorem LucasLehmer.Int.coe_nat_two_pow_pred - theorem LucasLehmer.Int.natCast_pow_pred Modified Mathlib/NumberTheory/Multiplicity.lean + theorem padicValNat.pow_two_sub_one + theorem padicValNat.pow_two_sub_one_ge Modified Mathlib/NumberTheory/Padics/PadicVal/Basic.lean + theorem padicValNat_add_le_self 2025-12-20 11:53:47 950ff56 chore(MathlibTest/grind/lint): improve documentation (#32935) This PR updates the grind_lint test file to: - Explain why `Path.symm_apply` and `Set.Icc.convexCombo_symm` are skipped (they each instantiate 24 lemmas, which seems reasonable) - Improve the instructions for what to do when the test fails 🤖 Prepared with Claude Code ESTIMATED CHANGES Modified MathlibTest/grind/lint.lean 2025-12-20 10:21:22 c98df61 chore(Algebra): fix whitespace (#32906) ESTIMATED CHANGES Modified Mathlib/Algebra/AddConstMap/Basic.lean Modified Mathlib/Algebra/AffineMonoid/Basic.lean Modified Mathlib/Algebra/Algebra/Operations.lean Modified Mathlib/Algebra/Algebra/Spectrum/Basic.lean Modified Mathlib/Algebra/Algebra/Spectrum/Quasispectrum.lean Modified Mathlib/Algebra/Algebra/Subalgebra/Pointwise.lean Modified Mathlib/Algebra/Algebra/Tower.lean Modified Mathlib/Algebra/Algebra/ZMod.lean Modified Mathlib/Algebra/BigOperators/Group/Finset/Defs.lean Modified Mathlib/Algebra/BigOperators/Group/List/Basic.lean Modified Mathlib/Algebra/BigOperators/GroupWithZero/Action.lean Modified Mathlib/Algebra/Category/Grp/Adjunctions.lean Modified Mathlib/Algebra/Category/Grp/Ulift.lean Modified Mathlib/Algebra/Category/ModuleCat/Abelian.lean Modified Mathlib/Algebra/Category/ModuleCat/Adjunctions.lean Modified Mathlib/Algebra/Category/ModuleCat/Biproducts.lean Modified Mathlib/Algebra/Category/ModuleCat/Free.lean Modified Mathlib/Algebra/Category/ModuleCat/Topology/Basic.lean +/- theorem TopModuleCat.hom_neg Modified Mathlib/Algebra/Category/Ring/Constructions.lean Modified Mathlib/Algebra/Category/Ring/Topology.lean Modified Mathlib/Algebra/Colimit/Ring.lean Modified Mathlib/Algebra/Group/Action/Equidecomp.lean Modified Mathlib/Algebra/Group/Action/Pointwise/Set/Basic.lean Modified Mathlib/Algebra/Group/AddChar.lean Modified Mathlib/Algebra/Group/Finsupp.lean Modified Mathlib/Algebra/Group/Subgroup/Pointwise.lean Modified Mathlib/Algebra/Group/Submonoid/Units.lean Modified Mathlib/Algebra/GroupWithZero/Range.lean +/- theorem MonoidWithZeroHom.mem_valueMonoid_iff +/- theorem MonoidWithZeroHom.valueMonoid_eq_closure Modified Mathlib/Algebra/Homology/BifunctorAssociator.lean Modified Mathlib/Algebra/Homology/DerivedCategory/Ext/EnoughProjectives.lean Modified Mathlib/Algebra/Homology/DerivedCategory/Fractions.lean Modified Mathlib/Algebra/Homology/DerivedCategory/KInjective.lean Modified Mathlib/Algebra/Homology/DerivedCategory/KProjective.lean Modified Mathlib/Algebra/Homology/Embedding/TruncLEHomology.lean Modified Mathlib/Algebra/Homology/HomologySequence.lean Modified Mathlib/Algebra/Homology/HomotopyCategory/HomComplexCohomology.lean Modified Mathlib/Algebra/Homology/HomotopyCategory/Pretriangulated.lean Modified Mathlib/Algebra/Homology/HomotopyCategory/Shift.lean Modified Mathlib/Algebra/Homology/HomotopyCategory/ShiftSequence.lean Modified Mathlib/Algebra/Homology/HomotopyCofiber.lean Modified Mathlib/Algebra/Homology/Localization.lean Modified Mathlib/Algebra/Homology/Monoidal.lean Modified Mathlib/Algebra/Homology/ShortComplex/ConcreteCategory.lean Modified Mathlib/Algebra/Homology/ShortComplex/HomologicalComplex.lean Modified Mathlib/Algebra/Homology/ShortComplex/Homology.lean Modified Mathlib/Algebra/Homology/ShortComplex/RightHomology.lean Modified Mathlib/Algebra/Homology/SingleHomology.lean Modified Mathlib/Algebra/Homology/TotalComplexShift.lean Modified Mathlib/Algebra/IsPrimePow.lean Modified Mathlib/Algebra/Lie/Derivation/AdjointAction.lean +/- theorem LieDerivation.ad_apply_lieDerivation Modified Mathlib/Algebra/Lie/Ideal.lean Modified Mathlib/Algebra/Lie/LieTheorem.lean Modified Mathlib/Algebra/Lie/SkewAdjoint.lean Modified Mathlib/Algebra/Lie/Sl2.lean Modified Mathlib/Algebra/Lie/TraceForm.lean Modified Mathlib/Algebra/Lie/Weights/Killing.lean Modified Mathlib/Algebra/Lie/Weights/RootSystem.lean Modified Mathlib/Algebra/Module/CharacterModule.lean Modified Mathlib/Algebra/Module/LocalizedModule/Basic.lean +/- theorem IsLocalizedModule.map_id Modified Mathlib/Algebra/MonoidAlgebra/ToDirectSum.lean Modified Mathlib/Algebra/MvPolynomial/Basic.lean Modified Mathlib/Algebra/NoZeroSMulDivisors/Basic.lean Modified Mathlib/Algebra/Order/Antidiag/Nat.lean Modified Mathlib/Algebra/Order/Archimedean/Class.lean Modified Mathlib/Algebra/Order/BigOperators/Group/Finset.lean Modified Mathlib/Algebra/Order/Floor/Div.lean Modified Mathlib/Algebra/Order/Floor/Ring.lean Modified Mathlib/Algebra/Order/Floor/Semifield.lean Modified Mathlib/Algebra/Order/Group/Synonym.lean +/- theorem ofDual_eq_one Modified Mathlib/Algebra/Order/Interval/Finset/SuccPred.lean Modified Mathlib/Algebra/Order/Interval/Set/SuccPred.lean Modified Mathlib/Algebra/Order/Module/Defs.lean Modified Mathlib/Algebra/Order/Ring/IsNonarchimedean.lean Modified Mathlib/Algebra/Order/Ring/Ordering/Basic.lean Modified Mathlib/Algebra/Polynomial/AlgebraMap.lean Modified Mathlib/Algebra/Polynomial/Bivariate.lean Modified Mathlib/Algebra/Polynomial/CoeffList.lean Modified Mathlib/Algebra/Polynomial/Degree/IsMonicOfDegree.lean Modified Mathlib/Algebra/Polynomial/Div.lean +/- theorem Polynomial.neg_modByMonic Modified Mathlib/Algebra/Polynomial/Factors.lean Modified Mathlib/Algebra/Polynomial/Laurent.lean Modified Mathlib/Algebra/Polynomial/RuleOfSigns.lean Modified Mathlib/Algebra/QuadraticAlgebra/Basic.lean Modified Mathlib/Algebra/QuadraticAlgebra/Defs.lean Modified Mathlib/Algebra/Ring/BooleanRing.lean Modified Mathlib/Algebra/Ring/GeomSum.lean Modified Mathlib/Algebra/Ring/NegOnePow.lean +/- theorem Int.negOnePow_succ Modified Mathlib/Algebra/Ring/NonZeroDivisors.lean Modified Mathlib/Algebra/Ring/Periodic.lean Modified Mathlib/Algebra/SkewMonoidAlgebra/Basic.lean Modified Mathlib/Algebra/SkewMonoidAlgebra/Lift.lean Modified Mathlib/Algebra/Star/StarAlgHom.lean Modified Mathlib/Algebra/Star/Subalgebra.lean Modified Mathlib/AlgebraicTopology/SimplicialSet/HomotopyCat.lean 2025-12-20 10:06:00 ec2c1d7 feat(CategoryTheory): criterion for `ObjectProperty.ind` in finitely accessible categories (#32999) We show that if `C` is finitely accessible and `P` implies finitely presentable, then `X` satisfies `ind P` if and only if every morphism `Z ⟶ X` from a finitely presentable object factors via an object satisfying `W`. We also add the analogous statement for morphism properties. From Proetale. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/MorphismProperty/Ind.lean + theorem CategoryTheory.MorphismProperty.ind_iff_exists Modified Mathlib/CategoryTheory/ObjectProperty/Ind.lean + theorem CategoryTheory.ObjectProperty.ind_iff_exists + theorem CategoryTheory.ObjectProperty.of_essentiallySmall_index Modified Mathlib/CategoryTheory/Presentable/Dense.lean Modified Mathlib/CategoryTheory/Presentable/Finite.lean + theorem CategoryTheory.ObjectProperty.isFinitelyPresentable_eq_isCardinalPresentable Modified Mathlib/CategoryTheory/Presentable/LocallyPresentable.lean 2025-12-20 09:23:25 d8cb41e feat(SimpleGraph): there exists a maximal path/trail in a graph with finite edges (#30293) Inspired by [this Zulip thread](https://leanprover.zulipchat.com/#narrow/channel/252551-graph-theory/topic/Help.20me.20learn.20good.20style.3A.20IsTree/near/543395218) ESTIMATED CHANGES Modified Mathlib/Combinatorics/SimpleGraph/Paths.lean + theorem SimpleGraph.Walk.exists_isPath_forall_isPath_length_le_length + theorem SimpleGraph.Walk.exists_isTrail_forall_isTrail_length_le_length 2025-12-20 09:08:21 9ad0f62 feat(Combinatorics/SimpleGraph/Connectivity): exists vertex adjacent to any vertex of a nontrivial connected graph (#32323) ESTIMATED CHANGES Modified Mathlib/Combinatorics/SimpleGraph/Connectivity/Connected.lean + theorem SimpleGraph.Preconnected.exists_adj_of_nontrivial Modified Mathlib/Combinatorics/SimpleGraph/Connectivity/Subgraph.lean + theorem SimpleGraph.Subgraph.Preconnected.degree_zero_iff + theorem SimpleGraph.Subgraph.Preconnected.exists_adj_of_nontrivial 2025-12-20 08:12:51 665d861 fix: rename definitions which use underscores in their name (#33103) Per the naming convention, "all other terms of types" should be named in lowerCamelCase: this applies to all changes made in this PR. This PR is far from exhaustive. ESTIMATED CHANGES Modified Mathlib/Geometry/Manifold/IsManifold/Basic.lean + def ModelWithCorners.ofConvexRange + def ModelWithCorners.ofTargetUniv - def ModelWithCorners.of_convex_range - def ModelWithCorners.of_target_univ Modified Mathlib/Geometry/Manifold/LocalDiffeomorph.lean Modified Mathlib/Geometry/Manifold/VectorBundle/LocalFrame.lean - def IsLocalFrameOn.fintype_of_finiteDimensional Modified Mathlib/Topology/IsLocalHomeomorph.lean 2025-12-20 08:12:49 6e8b590 feat(RepresentationTheory/Homological/GroupCohomology): cohomology of finite cyclic groups (#32898) Let `k` be a commutative ring, `G` a group and `A` a `k`-linear `G`-representation. Given endomorphisms `φ, ψ : A ⟶ A` such that `φ ∘ ψ = ψ ∘ φ = 0`. Denote by `Chains(A, φ, ψ)` the periodic chain complex `... ⟶ A --φ--> A --ψ--> A --φ--> A --ψ--> A ⟶ 0` and by `Cochains(A, φ, ψ)` the periodic cochain complex `0 ⟶ A --ψ--> A --φ--> A --ψ--> A --φ--> A ⟶ ...`. When `G` is finite and generated by `g : G`, then `P := Chains(k[G], N, ρ(g) - Id)` (with `ρ` the left regular representation) is a projective resolution of `k` as a trivial representation. In this PR we show that for `A : Rep k G`, `Hom(P, A)` is isomorphic to `Cochains(A, N, ρ_A(g) - Id)` as a complex of `k`-modules, and hence the cohomology of this complex computes group cohomology. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/RepresentationTheory/Homological/FiniteCyclic.lean Added Mathlib/RepresentationTheory/Homological/GroupCohomology/FiniteCyclic.lean + theorem Rep.FiniteCyclicGroup.groupCohomologyπEven_eq_iff + theorem Rep.FiniteCyclicGroup.groupCohomologyπEven_eq_zero_iff + theorem Rep.FiniteCyclicGroup.groupCohomologyπOdd_eq_iff + theorem Rep.FiniteCyclicGroup.groupCohomologyπOdd_eq_zero_iff 2025-12-20 08:12:47 bff6dab feat(CategoryTheory): regular categories have strong-epi-mono factorisations (#31152) This PR defines regular categories and shows that these have strong-epi-mono factorisations. A follow up PR will prove frobenius reciprocity. - [x] depends on: https://github.com/leanprover-community/mathlib4/pull/31145 ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/CategoryTheory/Limits/Shapes/KernelPair.lean + theorem CategoryTheory.IsKernelPair.mono_of_eq_fst_snd' + theorem CategoryTheory.IsKernelPair.mono_of_eq_fst_snd + theorem CategoryTheory.IsKernelPair.of_hasPullback Modified Mathlib/CategoryTheory/Limits/Shapes/RegularMono.lean Added Mathlib/CategoryTheory/RegularCategory/Basic.lean Modified docs/references.bib 2025-12-20 08:12:45 c5ac73d feat: exterior angle theorem (#28175) Add Exterior angle theorem ESTIMATED CHANGES Modified Mathlib/Geometry/Euclidean/Triangle.lean + theorem EuclideanGeometry.exterior_angle_eq_angle_add_angle Modified docs/1000.yaml 2025-12-20 07:33:34 090cf15 chore: rename `relId` to `setRelId` in lemma names (#33073) `Rel` was renamed to `SetRel` a while ago, but those names hadn't been updated. Also add an extra lemma to deal with non-symmetric relations. ESTIMATED CHANGES Modified Mathlib/Data/Rel/Separated.lean Modified Mathlib/Topology/UniformSpace/Cauchy.lean Modified Mathlib/Topology/UniformSpace/DiscreteUniformity.lean - theorem DiscreteUniformity.eq_principal_relId + theorem DiscreteUniformity.eq_principal_setRelId - theorem discreteUniformity_iff_eq_principal_relId + theorem discreteUniformity_iff_eq_principal_setRelId - theorem discreteUniformity_iff_relId_mem_uniformity + theorem discreteUniformity_iff_setRelId_mem_uniformity Modified Mathlib/Topology/UniformSpace/Ultra/Constructions.lean 2025-12-20 01:04:25 7478ffb chore: remove `[NeZero n]` assumptions in lemmas about `Fin n` (#33079) This PR removes `[NeZero n]` assumptions in lemmas about `Fin n`, in contexts where the lemmas have a parameter of type `Fin n`, whose existence implies that `n` can't be zero. This makes the statements a bit uglier with the `haveI`s but they're much easier to apply. ESTIMATED CHANGES Modified Mathlib/Data/Fin/Basic.lean +/- theorem Fin.cast_val_eq_self + theorem Fin.neZero +/- theorem Fin.one_le_of_ne_zero +/- theorem Fin.val_add_one_of_lt' +/- theorem Fin.val_sub_one_of_ne_zero 2025-12-20 01:04:22 9a32d09 feat(Topology/Algebra/Module): lemmas about `IsInvertible` (#33027) From https://github.com/urkud/SardMoreira ESTIMATED CHANGES Modified Mathlib/Topology/Algebra/Module/Equiv.lean + theorem ContinuousLinearMap.IsInvertible.inverse_comp_self + theorem ContinuousLinearMap.IsInvertible.self_comp_inverse + theorem ContinuousLinearMap.isInvertible_inverse_iff 2025-12-20 00:00:17 416c1d5 fix: don't use `addConstInfo` on constant defining syntax (#33067) As pointed out by `fpvandoorn`, `addConstInfo` doesn't use `isBinder := true`, so the information that this constant is defined at the syntax is not available in the VSCode UI. So we revert back to using `addTermInfo'`. ESTIMATED CHANGES Modified Mathlib/Tactic/HigherOrder.lean Modified Mathlib/Tactic/MkIffOfInductiveProp.lean Modified Mathlib/Tactic/Sat/FromLRAT.lean Modified Mathlib/Tactic/Simps/Basic.lean Modified Mathlib/Tactic/Translate/Core.lean Modified Mathlib/Util/AliasIn.lean 2025-12-20 00:00:15 4d4c76d chore: golf using `grind`. add `grind` annotations. (#32639) ESTIMATED CHANGES Modified Mathlib/Algebra/MvPolynomial/Basic.lean Modified Mathlib/Algebra/MvPolynomial/CommRing.lean Modified Mathlib/Algebra/Polynomial/Basic.lean Modified Mathlib/Combinatorics/SimpleGraph/Subgraph.lean Modified Mathlib/Data/Finset/Prod.lean Modified Mathlib/Data/Finset/Sym.lean Modified Mathlib/Data/Finsupp/Defs.lean Modified Mathlib/Data/List/NodupEquivFin.lean Modified Mathlib/Data/List/Sym.lean Modified Mathlib/Data/Sym/Sym2.lean Modified Mathlib/GroupTheory/Perm/Cycle/Type.lean Modified Mathlib/Order/Hom/Basic.lean Modified Mathlib/RingTheory/Polynomial/GaussNorm.lean 2025-12-19 23:21:48 8764c6f feat(Algebra/Polynomial): add `grind` annotations for `C_mul_monomial` and `monomial_mul_C` (#32513) ESTIMATED CHANGES Modified Mathlib/Algebra/Polynomial/Basic.lean Modified Mathlib/Algebra/Polynomial/RuleOfSigns.lean 2025-12-19 22:50:12 97c2b33 feat: definition of `ConvexSpace` (#31984) This PR introduces `ConvexSpace`, an algebraic structure for spaces equipped with finite convex combinations. The main definitions are: * `StdSimplex R M`: A finitely supported probability distribution over `M` with non-negative coefficients in `R` that sum to 1. * `StdSimplex.single`, `StdSimplex.duple`: Constructors for point mass and two-point distributions. * `StdSimplex.map`, `StdSimplex.join`: Monadic operations on standard simplices. * `ConvexSpace R M`: A typeclass with `convexCombination : StdSimplex R M → M` satisfying monadic laws (`assoc` and `single`). * `convexCombo₂`: Binary convex combinations of two points. The design follows a monadic structure where `StdSimplex R` forms a monad and `convexCombination` is a monadic algebra. This eliminates the need for explicit extensionality axioms and avoids universe issues with indexed families. 🤖 Prepared with Claude Code ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/LinearAlgebra/ConvexSpace.lean + def StdSimplex.duple + def StdSimplex.join + def StdSimplex.map + def StdSimplex.single + structure StdSimplex + def convexComboPair 2025-12-19 21:09:14 6335ae0 refactor(Data/Nat/Choose): Merge Basic.lean and Mul.lean (#32901) Previously, Mul.lean contained two very basic identities about polynomial coefficients and was its own file due to the use of ```ring```. I replaced the usage of ```ring``` via some rewrites (not too bad), making it possible to merge Mul.lean into Basic.lean (which is appropriate content-wise). Sidenote: The list of authors is now over 100 characters long. I did not find another file where this is the case, so I don''t know what is the standard format in this case. ESTIMATED CHANGES Modified Mathlib/Combinatorics/Enumerative/Bell.lean Modified Mathlib/Data/Nat/Choose/Basic.lean + theorem Nat.choose_mul_add + theorem Nat.choose_mul_right Modified Mathlib/Data/Nat/Choose/Mul.lean - theorem Nat.choose_mul_add - theorem Nat.choose_mul_right 2025-12-19 20:50:05 14d8512 feat(NumberTheory/MahlerMeasure): MahlerMeasure of cyclotomic polynomials (#33078) We prove ``` theorem cyclotomic_mahlerMeasure_eq_one {R : Type*} [CommRing R] [Algebra R ℂ] (n : ℕ) : ((cyclotomic n R).map (algebraMap R ℂ)).mahlerMeasure = 1 ``` ESTIMATED CHANGES Modified Mathlib/NumberTheory/MahlerMeasure.lean + theorem Polynomial.cyclotomic_mahlerMeasure_eq_one 2025-12-19 19:29:15 9bd3c6a feat(to_fun): generate doc-strings (#32915) This PR improves the `@[to_fun]` attribute by letting it generate a doc-string for the new declaration. The doc-string consists of two parts: - "Eta-expanded form of `foo`" - doc-string of `foo` This is analogous to how `alias` has two parts of the doc-string. As a side-effect, `reassoc` and friends now also copy over the doc-string if it exists. For those, I have not added a doc-string prefix, but this can be done if desired. ESTIMATED CHANGES Modified Mathlib/Tactic/ToFun.lean Modified Mathlib/Util/AddRelatedDecl.lean Modified MathlibTest/ToFun.lean + theorem foo 2025-12-19 19:29:13 f188c15 feat(FieldTheory): X^n - t separable iff n nonzero (#32733) In a field `F`, for `t : F` and `n > 0`, we prove that the polynomial `X ^ n - t` is separable if and only if `n` is nonzero in `F`. This generalizes `X_pow_sub_one_separable_iff`, but the extra assumption that `n > 0` is needed (for `n = 0`, the polynomial `X ^ n - t` is separable iff `t` is not `1`). ESTIMATED CHANGES Modified Mathlib/FieldTheory/Separable.lean + theorem Polynomial.X_pow_sub_C_separable_iff 2025-12-19 18:36:09 4458a06 feat(RingTheory): prerequisites for #30736 (#33095) ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/Bilinear.lean + def LinearMap.mul'' Modified Mathlib/Algebra/Algebra/Operations.lean + theorem Submodule.ker_unitsMap_spanSingleton + theorem Submodule.mker_spanSingleton + theorem Submodule.mul_top_eq_top_of_mul_eq_one + def Submodule.span.ringHom + def Submodule.spanSingleton + theorem Submodule.spanSingleton_apply + theorem Submodule.span_singleton_algebraMap_of_isUnit + theorem Submodule.span_singleton_eq_one_iff + theorem Submodule.top_mul_eq_top_of_mul_eq_one Modified Mathlib/Data/Set/Semiring.lean + def SetSemiring.singletonMonoidHom Modified Mathlib/LinearAlgebra/Span/Defs.lean + theorem Submodule.eq_span_singleton_of_surjective Modified Mathlib/RingTheory/ClassGroup.lean Modified Mathlib/RingTheory/FractionalIdeal/Basic.lean Modified Mathlib/RingTheory/FractionalIdeal/Operations.lean + def FractionalIdeal.unitsMulEquivSubmodule + theorem Units.submodule_isFractional Modified Mathlib/RingTheory/Localization/Defs.lean + theorem IsLocalization.smul_bijective Modified docs/references.bib 2025-12-19 18:36:08 23a17a5 chore: remove some `privateInPublic` settings (#33092) Includes some deprecation removal I chanced upon when resolving merge conflicts in #33014. ESTIMATED CHANGES Modified Mathlib/Algebra/Homology/ExactSequence.lean Modified Mathlib/Combinatorics/SimpleGraph/Connectivity/Connected.lean Modified Mathlib/Data/List/SplitBy.lean Modified Mathlib/LinearAlgebra/RootSystem/Chain.lean 2025-12-19 18:36:06 50c8563 chore: reduce use of backward.privateInPublic option (#33089) ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Field/Basic.lean Modified Mathlib/Algebra/Order/Floor/Ring.lean Modified Mathlib/Algebra/Order/Module/Field.lean Modified Mathlib/Data/Int/GCD.lean - theorem Nat.xgcdAux_P 2025-12-19 18:36:04 aa0d263 feat(Topology): conditions for `SetRel.(pre)image` to be closed (#33062) ESTIMATED CHANGES Modified Mathlib/Topology/UniformSpace/Basic.lean + theorem IsClosed.relImage_of_finite + theorem IsClosed.relInv + theorem IsClosed.relPreimage_of_finite Modified Mathlib/Topology/UniformSpace/Compact.lean + theorem IsClosed.relImage_of_isCompact + theorem IsClosed.relPreimage_of_isCompact 2025-12-19 18:36:03 63063d5 feat: generalize two lemmas about StieltjesFunction (#33058) ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Measure/Stieltjes.lean +/- theorem Monotone.stieltjesFunction_eq +/- theorem StieltjesFunction.iInf_Ioi_eq 2025-12-19 18:36:01 aa462db feat(Data/Matrix/Cartan): off-diagonal and transpose for exceptional matrices (#32998) Adds off-diagonal bounds and transpose properties for exceptional Cartan matrices, completing the property coverage begun in #32967 ESTIMATED CHANGES Modified Mathlib/Data/Matrix/Cartan.lean + theorem CartanMatrix.E₆_off_diag_nonpos + theorem CartanMatrix.E₆_transpose + theorem CartanMatrix.E₇_off_diag_nonpos + theorem CartanMatrix.E₇_transpose + theorem CartanMatrix.E₈_off_diag_nonpos + theorem CartanMatrix.E₈_transpose + theorem CartanMatrix.F₄_off_diag_nonpos + theorem CartanMatrix.G₂_off_diag_nonpos 2025-12-19 18:35:59 a702d1f chore: golf proofs (#32996) ESTIMATED CHANGES Modified Mathlib/Algebra/Lie/Weights/Basic.lean +/- theorem LieModule.Weight.ext Modified Mathlib/Combinatorics/SimpleGraph/Connectivity/WalkDecomp.lean Modified Mathlib/GroupTheory/CoprodI.lean Modified Mathlib/Logic/Relation.lean - theorem Relation.reflTransGen_minimal Modified Mathlib/NumberTheory/MulChar/Basic.lean +/- theorem MulChar.ext' 2025-12-19 18:35:58 cd8ba0f feat: the family of limits in probability of sequences of uniformly integrable random variables is uniformly integrable (#31886) ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Function/ConvergenceInMeasure.lean +/- theorem MeasureTheory.TendstoInMeasure.comp + theorem MeasureTheory.TendstoInMeasure.indicator +/- theorem MeasureTheory.TendstoInMeasure.mono Modified Mathlib/MeasureTheory/Function/UniformIntegrable.lean + theorem MeasureTheory.UnifIntegrable.unifIntegrable_of_ae_tendsto + theorem MeasureTheory.UnifIntegrable.unifIntegrable_of_tendstoInMeasure + theorem MeasureTheory.UniformIntegrable.uniformIntegrable_of_ae_tendsto + theorem MeasureTheory.UniformIntegrable.uniformIntegrable_of_tendstoInMeasure 2025-12-19 18:14:05 8f10403 fix(depRewrite): make `rw!` cleanup casts correctly (#32306) The tactic `rw!` runs a round of `dsimp` with a minimal configuration, intended to cleanup casts. This minimal configuration is not always enough to fully reduce the casts, and may have other side effects. This PR reimplements the cast cleanup in a way not involving `dsimp` that will fully reduce casts introduced by depRewrite and will not touch other parts of the expression. ESTIMATED CHANGES Modified Mathlib/Tactic/DepRewrite.lean - def Mathlib.Tactic.DepRewrite.Conv.depRwLocalDecl + def Mathlib.Tactic.DepRewrite.castMData + def Mathlib.Tactic.DepRewrite.cleanupCasts + def Mathlib.Tactic.DepRewrite.depRwLocalDecl + def Mathlib.Tactic.DepRewrite.depRwTarget Modified MathlibTest/depRewrite.lean 2025-12-19 16:47:42 6e3ce4e fix: don't duplicate HasQuotient.quotient (#33037) ESTIMATED CHANGES Modified Mathlib/Algebra/Quotient.lean Modified Mathlib/GroupTheory/QuotientGroup/Defs.lean Modified Mathlib/LinearAlgebra/Quotient/Defs.lean + theorem Submodule.Quotient.quotientAddGroupMk_eq_mk Modified Mathlib/RepresentationTheory/Homological/GroupHomology/LowDegree.lean 2025-12-19 16:47:40 9563733 feat(RingTheory): transfer `Coalgebra` across an `Equiv` (#32965) ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/TensorProduct/Associator.lean + theorem Equiv.tensorProductAssoc_def Modified Mathlib/RingTheory/Coalgebra/Basic.lean 2025-12-19 16:47:38 2ef954a chore: clean up imports from #31746 (#32657) #31746 added `Data.Int.Cast.Lemmas` as a new import to `LinearAlgebra.Matrix.Diagonal` to access `Int.cast_ite` but did not remove `Data.Int.Cast.Basic` and did not do a public import. Following `Nat.cast_ite`, we move `Data.Int.Cast.Basic` and remove the added import. ESTIMATED CHANGES Modified Mathlib/Data/Int/Cast/Basic.lean + theorem Int.cast_ite Modified Mathlib/Data/Int/Cast/Lemmas.lean - theorem Int.cast_ite Modified Mathlib/Data/Matrix/Diagonal.lean 2025-12-19 16:47:36 38bc9ea feat(Geometry/Euclidean/Projection): `map` and subtype lemmas (#32019) Add lemmas about mapping `orthogonalProjection`, `reflection` and `orthogonalProjectionSpan` under an affine isometry, and in particular mapping from a subspace to the full space. ESTIMATED CHANGES Modified Mathlib/Geometry/Euclidean/Projection.lean + theorem Affine.Simplex.orthogonalProjectionSpan_map + theorem Affine.Simplex.orthogonalProjectionSpan_restrict + theorem EuclideanGeometry.orthogonalProjection_map + theorem EuclideanGeometry.orthogonalProjection_subtype + theorem EuclideanGeometry.reflection_map + theorem EuclideanGeometry.reflection_subtype 2025-12-19 16:47:34 d4e7b76 feat: `adicCompletion` for `Rat` is uniform isomorphic to `Padic` (#30576) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/NumberTheory/Padics/HeightOneSpectrum.lean + theorem PadicInt.coe_adicCompletionIntegersEquiv_apply + theorem PadicInt.coe_adicCompletionIntegersEquiv_symm_apply + theorem Rat.HeightOneSpectrum.adicCompletion.padicEquiv_bijOn + theorem Rat.HeightOneSpectrum.adicCompletionIntegers.coe_padicIntEquiv_apply + theorem Rat.HeightOneSpectrum.adicCompletionIntegers.coe_padicIntEquiv_symm_apply + theorem Rat.HeightOneSpectrum.natGenerator_dvd_iff + theorem Rat.HeightOneSpectrum.prime_natGenerator + theorem Rat.HeightOneSpectrum.span_natGenerator + theorem Rat.HeightOneSpectrum.valuation_equiv_padicValuation + theorem Rat.int_algebraMap_injective + theorem Rat.int_algebraMap_surjective Modified Mathlib/RingTheory/DedekindDomain/Ideal/Lemmas.lean + theorem map_prime_of_equiv Modified Mathlib/Topology/Algebra/Algebra/Equiv.lean + def ContinuousAlgEquiv.cast + theorem ContinuousAlgEquiv.cast_apply + theorem ContinuousAlgEquiv.cast_symm_apply + theorem ContinuousAlgEquiv.surjective Modified Mathlib/Topology/Algebra/Valued/WithVal.lean + theorem Valuation.IsEquiv.valuedCompletion_le_one_iff + theorem Valuation.exists_div_eq_of_surjective 2025-12-19 15:53:44 8b49178 chore(Algebra/Category): move global constants in `CommRingCat` namespace (#33083) We also add one lemma for discoverability. ESTIMATED CHANGES Modified Mathlib/Algebra/Category/Ring/FinitePresentation.lean + theorem CommRingCat.isFinitelyPresentable_hom + theorem CommRingCat.isFinitelyPresentable_under + theorem CommRingCat.preservesColimit_coyoneda_of_finitePresentation + theorem CommRingCat.preservesFilteredColimits_coyoneda - theorem isFinitelyPresentable - theorem preservesColimit_coyoneda_of_finitePresentation - theorem preservesFilteredColimits_coyoneda 2025-12-19 15:53:43 c320b23 feat(Algebra): localising a torsion-free module at regular elements (#32838) ESTIMATED CHANGES Modified Mathlib/Algebra/Module/LocalizedModule/Basic.lean + theorem IsLocalizedModule.isTorsionFree + theorem IsLocalizedModule.isTorsionFree_of_forall_isRegular 2025-12-19 15:53:41 fd36087 feat: more lemmas on `LinearOrderedAddCommGroupWithTop` (#32804) ESTIMATED CHANGES Modified Mathlib/Algebra/GroupWithZero/Units/Basic.lean + theorem div_self_eq_one₀ Modified Mathlib/Algebra/Order/AddGroupWithTop.lean + theorem LinearOrderedAddCommGroupWithTop.add_neg_cancel_iff_ne_top + theorem LinearOrderedAddCommGroupWithTop.sub_self_eq_zero_iff_ne_top + theorem LinearOrderedAddCommGroupWithTop.zero_ne_top 2025-12-19 15:53:39 30b6554 feat: an irreducible element of a submonoid isn't zero (#32433) From ClassFieldTheory ESTIMATED CHANGES Modified Mathlib/Algebra/GroupWithZero/NonZeroDivisors.lean + theorem Irreducible.coe_ne_zero 2025-12-19 15:53:36 d630d19 feat: IrreducibleSpace.of_openCover (#31967) Irreducibility can be checked on an open cover with pairwise non-empty intersections. This contribution was created as part of the Heidelberg Lean workshop "Formalising algebraic geometry" in November 2025. ESTIMATED CHANGES Modified Mathlib/Topology/Irreducible.lean + theorem IsIrreducible.of_subtype + theorem IsPreirreducible.of_subtype + theorem isIrreducible_iff_irreducibleSpace + theorem isPreirreducible_iff_preirreducibleSpace Modified Mathlib/Topology/Sets/OpenCover.lean + theorem IsPreirreducible.of_subset_iUnion + theorem PreirreducibleSpace.of_isOpenCover Modified Mathlib/Topology/Sets/Opens.lean + theorem TopologicalSpace.Opens.coe_disjoint 2025-12-19 15:37:23 af23932 feat(AlgebraicTopology): binary products of finite simplicial sets are finite (#32251) If `X₁` and `X₂` are respectively of dimensions `≤ d₁` and `≤ d₂`, then `X₁ ⊗ X₂` has dimension `≤ d₁ + d₂`. We also show that if `X₁` and `X₂` are finite, then `X₁ ⊗ X₂` is also finite. From https://github.com/joelriou/topcat-model-category - [x] depends on: #32201 - [x] depends on: #32202 - [x] depends on: #32237 ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/AlgebraicTopology/SimplicialSet/FiniteProd.lean + theorem SSet.Subcomplex.ofSimplexProd_eq_range + theorem SSet.finite_of_isPullback + theorem SSet.hasDimensionLE_prod + theorem SSet.hasDimensionLT_prod + theorem SSet.iSup_subcomplexOfSimplex_prod_eq_top Modified Mathlib/AlgebraicTopology/SimplicialSet/Monoidal.lean + def SSet.Subcomplex.prod + theorem SSet.Subcomplex.prod_monotone + theorem SSet.Subcomplex.range_tensorHom Modified Mathlib/AlgebraicTopology/SimplicialSet/NonDegenerateSimplices.lean + theorem SSet.N.iSup_subcomplex_eq_top Modified Mathlib/AlgebraicTopology/SimplicialSet/StdSimplex.lean 2025-12-19 15:37:20 87f5366 refactor(Dynamics): use `SetRel` notions of separation and cover (#31259) ... instead of the handmade ones. ESTIMATED CHANGES Modified Mathlib/Data/Rel/Cover.lean + theorem SetRel.IsCover.union + theorem SetRel.isCover_id - theorem SetRel.isCover_relId Modified Mathlib/Dynamics/TopologicalEntropy/CoverEntropy.lean +/- theorem Dynamics.IsDynCoverOf.coverEntropyEntourage_le_log_card_div +/- theorem Dynamics.IsDynCoverOf.coverMincard_le_card +/- theorem Dynamics.IsDynCoverOf.iterate_le_pow - theorem Dynamics.IsDynCoverOf.nonempty +/- theorem Dynamics.IsDynCoverOf.nonempty_inter +/- theorem Dynamics.IsDynCoverOf.of_entourage_subset +/- theorem Dynamics.IsDynCoverOf.of_le +/- theorem Dynamics.coverEntropyEntourage_empty +/- theorem Dynamics.coverEntropyEntourage_finite_of_isCompact_invariant +/- theorem Dynamics.coverEntropyEntourage_le_coverEntropy +/- theorem Dynamics.coverEntropyEntourage_le_coverEntropyInfEntourage +/- theorem Dynamics.coverEntropyEntourage_le_log_coverMincard_div +/- theorem Dynamics.coverEntropyEntourage_nonneg +/- theorem Dynamics.coverEntropyEntourage_univ +/- theorem Dynamics.coverEntropyInfEntourage_empty +/- theorem Dynamics.coverEntropyInfEntourage_le_coverEntropyInf +/- theorem Dynamics.coverEntropyInfEntourage_nonneg +/- theorem Dynamics.coverEntropyInfEntourage_univ +/- theorem Dynamics.coverEntropyInf_empty +/- theorem Dynamics.coverEntropyInf_eq_coverEntropy +/- theorem Dynamics.coverEntropyInf_nonneg +/- theorem Dynamics.coverEntropy_empty +/- theorem Dynamics.coverEntropy_nonneg +/- theorem Dynamics.coverMincard_empty +/- theorem Dynamics.coverMincard_finite_of_isCompact_invariant +/- theorem Dynamics.coverMincard_finite_of_isCompact_uniformContinuous +/- theorem Dynamics.coverMincard_le_pow +/- theorem Dynamics.coverMincard_mul_le_pow +/- theorem Dynamics.coverMincard_univ +/- theorem Dynamics.coverMincard_zero +/- theorem Dynamics.exists_isDynCoverOf_of_isCompact_invariant +/- theorem Dynamics.exists_isDynCoverOf_of_isCompact_uniformContinuous +/- theorem Dynamics.isDynCoverOf_empty + theorem Dynamics.isDynCoverOf_empty_right +/- theorem Dynamics.isDynCoverOf_univ +/- theorem Dynamics.isDynCoverOf_zero +/- theorem Dynamics.nonempty_inter_of_coverMincard Modified Mathlib/Dynamics/TopologicalEntropy/DynamicalEntourage.lean + theorem Dynamics.dynEntourage_mono Modified Mathlib/Dynamics/TopologicalEntropy/NetEntropy.lean +/- theorem Dynamics.IsDynNetIn.card_le_card_of_isDynCoverOf +/- theorem Dynamics.netEntropyEntourage_le_coverEntropyEntourage +/- theorem Dynamics.netEntropyInfEntourage_le_coverEntropyInfEntourage +/- theorem Dynamics.netMaxcard_le_coverMincard Modified Mathlib/Dynamics/TopologicalEntropy/Semiconj.lean Modified Mathlib/Dynamics/TopologicalEntropy/Subset.lean +/- theorem Dynamics.IsDynCoverOf.closure +/- theorem Dynamics.IsDynCoverOf.monotone_subset +/- theorem Dynamics.IsDynCoverOf.union +/- theorem Dynamics.IsDynNetIn.monotone_subset +/- theorem Dynamics.coverEntropyEntourage_closure +/- theorem Dynamics.coverEntropyEntourage_monotone +/- theorem Dynamics.coverEntropyEntourage_union +/- theorem Dynamics.coverEntropyInfEntourage_closure +/- theorem Dynamics.coverEntropyInfEntourage_monotone +/- theorem Dynamics.coverEntropyInf_closure +/- theorem Dynamics.coverEntropy_closure +/- theorem Dynamics.coverEntropy_union +/- theorem Dynamics.coverMincard_closure_le +/- theorem Dynamics.coverMincard_monotone_subset +/- theorem Dynamics.coverMincard_union_le +/- theorem Dynamics.netEntropyEntourage_monotone +/- theorem Dynamics.netEntropyInfEntourage_monotone +/- theorem Dynamics.netMaxcard_monotone_subset Modified Mathlib/Topology/UniformSpace/Defs.lean + theorem UniformSpace.isCover_iff_subset_iUnion_ball 2025-12-19 15:37:17 b0ebf7a feat(Analysis/InnerProductSpace/PiL2): Add instances for EuclideanSpace rank and EuclideanSpace being infinite (#28198) Add an instance for `Fact (Module.finrank 𝕜 (EuclideanSpace 𝕜 (Fin n)) = n)` which is needed to apply [stereographic'](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Geometry/Manifold/Instances/Sphere.html#stereographic') to EuclideanSpace. Also add an instance for `Infinite (EuclideanSpace 𝕜 ι)` where `ι` is a nonempty fintype. I wasn't sure if these should go in separate pull requests, but they seemed similar enough to me. Thank you to Kenny Lau for the suggestions at [#mathlib4 > Instances for EuclideanSpace](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Instances.20for.20EuclideanSpace). ESTIMATED CHANGES Modified Mathlib/Analysis/InnerProductSpace/PiL2.lean +/- theorem EuclideanSpace.inner_eq_star_dotProduct +/- theorem EuclideanSpace.inner_toLp_toLp 2025-12-19 15:12:37 fef749b feat: API lemmas for covering and packing numbers (#33090) Covering and packing numbers of empty sets and singletons. ESTIMATED CHANGES Modified Mathlib/Topology/MetricSpace/CoveringNumbers.lean + theorem Metric.IsSeparated.encard_le_packingNumber + theorem Metric.coveringNumber_le_encard_self - theorem Metric.coveringNumber_pos + theorem Metric.coveringNumber_pos_iff + theorem Metric.coveringNumber_singleton + theorem Metric.coveringNumber_zero + theorem Metric.externalCoveringNumber_le_encard_self - theorem Metric.externalCoveringNumber_pos + theorem Metric.externalCoveringNumber_pos_iff + theorem Metric.externalCoveringNumber_singleton + theorem Metric.externalCoveringNumber_zero + theorem Metric.packingNumber_empty + theorem Metric.packingNumber_eq_zero + theorem Metric.packingNumber_le_encard_self + theorem Metric.packingNumber_pos_iff + theorem Metric.packingNumber_singleton + theorem Metric.packingNumber_zero Modified Mathlib/Topology/MetricSpace/MetricSeparated.lean + theorem Metric.isSeparated_zero 2025-12-19 15:12:35 14b3732 chore: scope `privateInPublic` option more (#33076) Experimental. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/SmallObject/Iteration/ExtendToSucc.lean Modified Mathlib/GroupTheory/OreLocalization/Basic.lean Modified Mathlib/RingTheory/OreLocalization/Basic.lean Modified Mathlib/RingTheory/Spectrum/Maximal/Localization.lean 2025-12-19 15:12:32 15d3998 feat(AlgebraicGeometry): open immersions satisfy fpqc descent (#32957) We deduce this from some other properties satisfying fpqc descent, namely: - universally closed - universally open - universally injective - being an isomorphism ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/AlgebraicGeometry/Morphisms/Flat.lean + theorem AlgebraicGeometry.flat_and_surjective_SpecMap_iff Added Mathlib/AlgebraicGeometry/Morphisms/FlatDescent.lean Modified Mathlib/AlgebraicGeometry/Morphisms/IsIso.lean + theorem AlgebraicGeometry.isIso_SpecMap_iff + theorem AlgebraicGeometry.isIso_iff_isOpenImmersion_and_surjective Modified Mathlib/AlgebraicGeometry/Morphisms/UnderlyingMap.lean Modified Mathlib/AlgebraicGeometry/PullbackCarrier.lean + theorem AlgebraicGeometry.Scheme.Pullback.exists_preimage_of_isPullback + theorem AlgebraicGeometry.Scheme.Pullback.image_preimage_eq_of_isPullback Modified Mathlib/CategoryTheory/Limits/Shapes/Diagonal.lean + theorem CategoryTheory.Limits.isPullback_map_snd_snd Modified Mathlib/CategoryTheory/MorphismProperty/Descent.lean 2025-12-19 15:12:30 98ffb90 feat(FieldTheory/Galois/IsGaloisGroup): add `IsGaloisGroup.finite` (#32611) This PR adds `IsGaloisGroup.finite`, a companion lemma to `IsGaloisGroup.finiteDimensional` just above. ESTIMATED CHANGES Modified Mathlib/FieldTheory/Galois/IsGaloisGroup.lean 2025-12-19 15:12:28 6826c1d feat(Combinatorics/SimpleGraph): restate Turán's theorem in terms of `extremalNumber` (#28786) Restates the existing proof of Turán's theorem in terms of the extremal numbers of `⊤`: The `turanGraph` is, up to isomorphism, the unique extremal graph forbidding `⊤`. ESTIMATED CHANGES Modified Mathlib/Combinatorics/SimpleGraph/Extremal/Turan.lean + theorem SimpleGraph.card_edgeFinset_eq_extremalNumber_top_iff_nonempty_iso_turanGraph + theorem SimpleGraph.extremalNumber_top + theorem SimpleGraph.isExtremal_top_free_iff_isTuranMaximal + theorem SimpleGraph.isExtremal_top_free_turanGraph 2025-12-19 13:25:13 1119dd2 chore: tidy various files (#33081) ESTIMATED CHANGES Modified Mathlib/Algebra/AffineMonoid/Irreducible.lean Modified Mathlib/Algebra/Algebra/Basic.lean Modified Mathlib/Algebra/DirectSum/Basic.lean Modified Mathlib/Algebra/Group/Action/End.lean Modified Mathlib/Algebra/GroupWithZero/Associated.lean Modified Mathlib/Algebra/Module/TransferInstance.lean Modified Mathlib/Algebra/Polynomial/AlgebraMap.lean Modified Mathlib/Algebra/Polynomial/Degree/Operations.lean Modified Mathlib/Algebra/Polynomial/Factors.lean Modified Mathlib/AlgebraicGeometry/AffineTransitionLimit.lean Modified Mathlib/AlgebraicTopology/ModelCategory/Over.lean Modified Mathlib/Analysis/AbsoluteValue/Equivalence.lean Modified Mathlib/Analysis/LocallyConvex/PointwiseConvergence.lean Modified Mathlib/Data/Set/Lattice.lean Modified Mathlib/LinearAlgebra/PiTensorProduct.lean Modified Mathlib/MeasureTheory/Integral/RieszMarkovKakutani/Real.lean Modified Mathlib/MeasureTheory/Measure/ProbabilityMeasure.lean Modified Mathlib/MeasureTheory/Measure/Stieltjes.lean Modified Mathlib/Probability/Distributions/Gaussian/Basic.lean Modified Mathlib/RingTheory/AdicCompletion/Basic.lean Modified Mathlib/RingTheory/IntegralClosure/IntegrallyClosed.lean Modified Mathlib/RingTheory/Polynomial/Chebyshev.lean Modified Mathlib/RingTheory/PolynomialLaw/Basic.lean Modified Mathlib/Topology/LocalAtTarget.lean Modified Mathlib/Topology/Metrizable/Basic.lean 2025-12-19 13:25:11 abb9d48 feat(CategoryTheory): Computable cartesian monoidal structure on slices induced by chosen pullbacks (#31433) We provide for a category `C` with chosen pullbacks, a cartesian monoidal structure on the slice categories `Over X` for all objects `X : C`. We also show that the functor `pullback f : Over X ⥤ Over Y` is naturally isomorphic to `toOver (Over.mk f): Over X ⥤ Over (Over.mk f)` post-composed with the iterated slice equivalence `Over (Over.mk f) ⥤ Over Y`. This latter theorem will be crucial in relating closed objects in the slices to exponentiable morphisms in the base in `LocallyCartesianClosed.Basic.lean` (Here `toOver` is defined to be the computable analogue of the functor `Over.star`.) ```mermaid graph TD A[ChosenPullbackAlong.lean] --> A'[Over.lean] A' --> B[Sections.lean] A --> C[ExponentiableMorphism.lean] B --> D[Basic.lean] C --> D D --> E[Types.lean] E --> F[Presheaves.lean] D --> G[Beck-Chevalley.lean] %% Define highlight style classDef highlight fill:#ffe599,stroke:#d4a017,stroke-width:2px; %% Apply to one node class A' highlight; ``` ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/CategoryTheory/Comma/Over/Basic.lean + theorem CategoryTheory.Over.iteratedSliceBackward_forget Modified Mathlib/CategoryTheory/LocallyCartesianClosed/ChosenPullbacksAlong.lean + def CategoryTheory.ChosenPullbacksAlong.isLimitPullbackCone + def CategoryTheory.ChosenPullbacksAlong.pullbackCone + theorem CategoryTheory.ChosenPullbacksAlong.pullbackCone_fst + theorem CategoryTheory.ChosenPullbacksAlong.pullbackCone_snd Added Mathlib/CategoryTheory/LocallyCartesianClosed/Over.lean + theorem CategoryTheory.ChosenPullbacksAlong.Over.associator_hom_left_fst + theorem CategoryTheory.ChosenPullbacksAlong.Over.associator_hom_left_snd_fst + theorem CategoryTheory.ChosenPullbacksAlong.Over.associator_hom_left_snd_snd + theorem CategoryTheory.ChosenPullbacksAlong.Over.associator_inv_left_fst_fst + theorem CategoryTheory.ChosenPullbacksAlong.Over.associator_inv_left_fst_snd + theorem CategoryTheory.ChosenPullbacksAlong.Over.associator_inv_left_snd + theorem CategoryTheory.ChosenPullbacksAlong.Over.fst_eq_fst' + theorem CategoryTheory.ChosenPullbacksAlong.Over.leftUnitor_hom_left + theorem CategoryTheory.ChosenPullbacksAlong.Over.leftUnitor_inv_left_fst + theorem CategoryTheory.ChosenPullbacksAlong.Over.leftUnitor_inv_left_snd + theorem CategoryTheory.ChosenPullbacksAlong.Over.lift_left + theorem CategoryTheory.ChosenPullbacksAlong.Over.rightUnitor_hom_left + theorem CategoryTheory.ChosenPullbacksAlong.Over.rightUnitor_inv_left_fst + theorem CategoryTheory.ChosenPullbacksAlong.Over.rightUnitor_inv_left_snd + theorem CategoryTheory.ChosenPullbacksAlong.Over.snd_eq_snd' + theorem CategoryTheory.ChosenPullbacksAlong.Over.tensorHom_left + theorem CategoryTheory.ChosenPullbacksAlong.Over.tensorHom_left_fst + theorem CategoryTheory.ChosenPullbacksAlong.Over.tensorHom_left_snd + theorem CategoryTheory.ChosenPullbacksAlong.Over.tensorObj_ext + theorem CategoryTheory.ChosenPullbacksAlong.Over.tensorObj_hom + theorem CategoryTheory.ChosenPullbacksAlong.Over.tensorObj_left + theorem CategoryTheory.ChosenPullbacksAlong.Over.tensorUnit_hom + theorem CategoryTheory.ChosenPullbacksAlong.Over.tensorUnit_left + theorem CategoryTheory.ChosenPullbacksAlong.Over.toUnit_left + theorem CategoryTheory.ChosenPullbacksAlong.Over.whiskerLeft_left + theorem CategoryTheory.ChosenPullbacksAlong.Over.whiskerLeft_left_fst + theorem CategoryTheory.ChosenPullbacksAlong.Over.whiskerLeft_left_snd + theorem CategoryTheory.ChosenPullbacksAlong.Over.whiskerRight_left + theorem CategoryTheory.ChosenPullbacksAlong.Over.whiskerRight_left_fst + theorem CategoryTheory.ChosenPullbacksAlong.Over.whiskerRight_left_snd + def CategoryTheory.ChosenPullbacksAlong.binaryFanIsBinaryProduct + def CategoryTheory.ChosenPullbacksAlong.cartesianMonoidalCategoryOver + def CategoryTheory.equivToOverUnit + theorem CategoryTheory.forgetAdjToOver.homEquiv_symm + def CategoryTheory.forgetAdjToOver + def CategoryTheory.toOver + def CategoryTheory.toOverIsoToOverUnit + def CategoryTheory.toOverIteratedSliceForwardIsoPullback + def CategoryTheory.toOverPullbackIsoToOver + def CategoryTheory.toOverUnit + def CategoryTheory.toOverUnitPullback + theorem CategoryTheory.toOver_map 2025-12-19 13:08:44 47a30a9 feat(Algebra/Homology): equivOfIsKInjective (#32814) We construct a bijection `CohomologyClass K L n ≃ SmallShiftedHom.{w} (HomologicalComplex.quasiIso C (.up ℤ)) K L n` when `K` and `L` are cochain complexes, and `L` is `K`-injective, or `K` is `K`-projective. ESTIMATED CHANGES Modified Mathlib/Algebra/Homology/DerivedCategory/KInjective.lean + theorem CochainComplex.HomComplex.CohomologyClass.bijective_toSmallShiftedHom_of_isKInjective +/- theorem CochainComplex.IsKInjective.Qh_map_bijective Modified Mathlib/Algebra/Homology/DerivedCategory/KProjective.lean + theorem CochainComplex.HomComplex.CohomologyClass.bijective_toSmallShiftedHom_of_isKProjective +/- theorem CochainComplex.IsKProjective.Qh_map_bijective Modified Mathlib/Algebra/Homology/Embedding/IsSupported.lean + theorem HomologicalComplex.isSupported_iff_of_quasiIso Modified Mathlib/CategoryTheory/Abelian/Injective/Extend.lean Modified Mathlib/CategoryTheory/Abelian/Projective/Extend.lean 2025-12-19 12:06:43 c7f3e34 feat(Data/Nat/Choose/Sum): generalise ```Int.alternating_sum_range_choose``` (#33038) ESTIMATED CHANGES Modified Mathlib/Data/Nat/Choose/Sum.lean + theorem Int.alternating_sum_range_choose_eq_choose 2025-12-19 12:06:41 03dd195 chore: remove backward.privateInPublic from lakefile (#33034) This PR removes the global `backward.privateInPublic true` setting from the lakefile. It adds the setting locally to many declarations. This is technical debt that will need to be cleaned later. A few modules seem to be particularly problematic. In those the backward compatibility setting is enabled at the file level, instead of at the declaration level. Part of the diff has been created with the help of Claude. But it struggled to do things correctly at scale and speed. To help review, I'm giving some hints below on how to digest the diff. These might be useful in the future, so I suggest including them in the commit message. ## Review hints ### Deletions This PR contains 14 deletions. They are contained in the following files: ```shell-session $ git diff master --numstat | awk '$2 > 0 && $3 ~ /\.lean$/ {print $3}' | xargs git diff master --stat -- Mathlib/Algebra/Lie/TraceForm.lean | 4 ++-- Mathlib/Analysis/SpecialFunctions/Exp.lean | 4 + ESTIMATED CHANGES Modified Mathlib/Algebra/Category/AlgCat/Basic.lean Modified Mathlib/Algebra/Category/BoolRing.lean Modified Mathlib/Algebra/Category/CommAlgCat/Basic.lean Modified Mathlib/Algebra/Category/CommBialgCat.lean Modified Mathlib/Algebra/Category/FGModuleCat/Basic.lean Modified Mathlib/Algebra/Category/Grp/Basic.lean Modified Mathlib/Algebra/Category/Grp/LeftExactFunctor.lean Modified Mathlib/Algebra/Category/HopfAlgCat/Basic.lean Modified Mathlib/Algebra/Category/ModuleCat/Basic.lean Modified Mathlib/Algebra/Category/ModuleCat/Biproducts.lean Modified Mathlib/Algebra/Category/ModuleCat/Semi.lean Modified Mathlib/Algebra/Category/ModuleCat/Topology/Basic.lean Modified Mathlib/Algebra/Category/MonCat/Basic.lean Modified Mathlib/Algebra/Category/Ring/Basic.lean Modified Mathlib/Algebra/Category/Semigrp/Basic.lean Modified Mathlib/Algebra/DirectSum/Ring.lean Modified Mathlib/Algebra/EuclideanDomain/Basic.lean Modified Mathlib/Algebra/Field/ZMod.lean Modified Mathlib/Algebra/FreeAlgebra.lean Modified Mathlib/Algebra/Group/Defs.lean Modified Mathlib/Algebra/Group/End.lean Modified Mathlib/Algebra/Group/Subsemigroup/Operations.lean Modified Mathlib/Algebra/GroupWithZero/Basic.lean Modified Mathlib/Algebra/Homology/DerivedCategory/Ext/ExtClass.lean Modified Mathlib/Algebra/Homology/ExactSequence.lean Modified Mathlib/Algebra/Lie/BaseChange.lean Modified Mathlib/Algebra/Lie/CartanExists.lean Modified Mathlib/Algebra/Lie/Cochain.lean Modified Mathlib/Algebra/Lie/Extension.lean Modified Mathlib/Algebra/Lie/LieTheorem.lean Modified Mathlib/Algebra/Lie/TraceForm.lean Modified Mathlib/Algebra/Lie/Weights/RootSystem.lean Modified Mathlib/Algebra/Module/GradedModule.lean Modified Mathlib/Algebra/Module/Injective.lean Modified Mathlib/Algebra/Module/LocalizedModule/Basic.lean Modified Mathlib/Algebra/Module/Submodule/Lattice.lean Modified Mathlib/Algebra/Module/ZLattice/Covolume.lean Modified Mathlib/Algebra/Order/BigOperators/Ring/Finset.lean Modified Mathlib/Algebra/Order/CauSeq/Completion.lean Modified Mathlib/Algebra/Order/Field/Basic.lean Modified Mathlib/Algebra/Order/Floor/Extended.lean Modified Mathlib/Algebra/Order/Floor/Ring.lean Modified Mathlib/Algebra/Order/Module/Field.lean Modified Mathlib/Algebra/Order/Ring/Archimedean.lean Modified Mathlib/Algebra/Order/Ring/StandardPart.lean + theorem ArchimedeanClass.FiniteResidueField.ordConnected_preimage_mk' Modified Mathlib/Algebra/Order/UpperLower.lean Modified Mathlib/Algebra/Polynomial/FieldDivision.lean Modified Mathlib/Algebra/Polynomial/Identities.lean Modified Mathlib/Algebra/SkewMonoidAlgebra/Basic.lean Modified Mathlib/AlgebraicGeometry/IdealSheaf/Subscheme.lean Modified Mathlib/AlgebraicTopology/FundamentalGroupoid/InducedMaps.lean Modified Mathlib/AlgebraicTopology/SimplicialSet/CompStruct.lean Modified Mathlib/AlgebraicTopology/SimplicialSet/HomotopyCat.lean Modified Mathlib/AlgebraicTopology/SimplicialSet/StrictSegal.lean Modified Mathlib/Analysis/CStarAlgebra/CStarMatrix.lean Modified Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/NonUnital.lean Modified Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Unital.lean Modified Mathlib/Analysis/CStarAlgebra/Module/Constructions.lean Modified Mathlib/Analysis/Complex/Norm.lean Modified Mathlib/Analysis/Complex/Order.lean Modified Mathlib/Analysis/Distribution/TemperedDistribution.lean Modified Mathlib/Analysis/Fourier/ZMod.lean Modified Mathlib/Analysis/InnerProductSpace/OfNorm.lean Modified Mathlib/Analysis/InnerProductSpace/Spectrum.lean Modified Mathlib/Analysis/InnerProductSpace/TensorProduct.lean Modified Mathlib/Analysis/LocallyConvex/Montel.lean Modified Mathlib/Analysis/Matrix/Order.lean Modified Mathlib/Analysis/Matrix/PosDef.lean Modified Mathlib/Analysis/Normed/Lp/PiLp.lean Modified Mathlib/Analysis/Normed/Lp/ProdLp.lean Modified Mathlib/Analysis/Normed/Lp/SmoothApprox.lean Modified Mathlib/Analysis/Normed/Module/Alternating/Uncurry/Fin.lean Modified Mathlib/Analysis/Normed/Module/Multilinear/Basic.lean Modified Mathlib/Analysis/Normed/Operator/Basic.lean Modified Mathlib/Analysis/Seminorm.lean Modified Mathlib/Analysis/SpecialFunctions/Exp.lean Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/DerivHyp.lean Modified Mathlib/CategoryTheory/Abelian/FreydMitchell.lean Modified Mathlib/CategoryTheory/Abelian/GrothendieckCategory/ModuleEmbedding/Opposite.lean Modified Mathlib/CategoryTheory/Bicategory/InducedBicategory.lean Modified Mathlib/CategoryTheory/Category/Cat.lean Modified Mathlib/CategoryTheory/Category/Cat/Adjunction.lean Modified Mathlib/CategoryTheory/ComposableArrows/Basic.lean Modified Mathlib/CategoryTheory/Galois/Decomposition.lean Modified Mathlib/CategoryTheory/Galois/EssSurj.lean Modified Mathlib/CategoryTheory/Galois/IsFundamentalgroup.lean Modified Mathlib/CategoryTheory/IsConnected.lean Modified Mathlib/CategoryTheory/Join/Basic.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Pullback/Categorical/Basic.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Reflexive.lean Modified Mathlib/CategoryTheory/LocallyCartesianClosed/ChosenPullbacksAlong.lean Modified Mathlib/CategoryTheory/Monoidal/Braided/Basic.lean Modified Mathlib/CategoryTheory/Monoidal/Closed/FunctorCategory/Complete.lean Modified Mathlib/CategoryTheory/Monoidal/CommGrp_.lean Modified Mathlib/CategoryTheory/Monoidal/Functor.lean Modified Mathlib/CategoryTheory/Monoidal/Internal/FunctorCategory.lean Modified Mathlib/CategoryTheory/Monoidal/Rigid/Braided.lean Modified Mathlib/CategoryTheory/Preadditive/CommGrp_.lean Modified Mathlib/CategoryTheory/Sites/Point/Basic.lean Modified Mathlib/CategoryTheory/SmallObject/Iteration/ExtendToSucc.lean Modified Mathlib/CategoryTheory/Triangulated/Functor.lean Modified Mathlib/CategoryTheory/Triangulated/Opposite/Basic.lean Modified Mathlib/CategoryTheory/WithTerminal/Basic.lean Modified Mathlib/CategoryTheory/WithTerminal/Cone.lean Modified Mathlib/Combinatorics/Colex.lean Modified Mathlib/Combinatorics/Enumerative/DyckWord.lean Modified Mathlib/Combinatorics/Enumerative/IncidenceAlgebra.lean Modified Mathlib/Combinatorics/Matroid/Basic.lean Modified Mathlib/Combinatorics/SetFamily/AhlswedeZhang.lean Modified Mathlib/Combinatorics/SetFamily/FourFunctions.lean Modified Mathlib/Combinatorics/SetFamily/KruskalKatona.lean Modified Mathlib/Combinatorics/SimpleGraph/Circulant.lean Modified Mathlib/Combinatorics/SimpleGraph/Connectivity/Connected.lean Modified Mathlib/Combinatorics/SimpleGraph/Copy.lean Modified Mathlib/Combinatorics/SimpleGraph/Regularity/Bound.lean Modified Mathlib/Combinatorics/SimpleGraph/Regularity/Increment.lean Modified Mathlib/Computability/Partrec.lean Modified Mathlib/Computability/PartrecCode.lean Modified Mathlib/Computability/Primrec.lean Modified Mathlib/Computability/Reduce.lean Modified Mathlib/Computability/TuringDegree.lean Modified Mathlib/Condensed/Light/TopCatAdjunction.lean Modified Mathlib/Condensed/TopCatAdjunction.lean Modified Mathlib/Data/DFinsupp/Lex.lean Modified Mathlib/Data/Fin/Tuple/Basic.lean Modified Mathlib/Data/Finset/Union.lean Modified Mathlib/Data/Fintype/EquivFin.lean Modified Mathlib/Data/Int/GCD.lean Modified Mathlib/Data/List/SplitBy.lean Modified Mathlib/Data/NNReal/Defs.lean Modified Mathlib/Data/Nat/Find.lean Modified Mathlib/Data/Nat/Init.lean Modified Mathlib/Data/Nat/Prime/Defs.lean Modified Mathlib/Data/Num/ZNum.lean Modified Mathlib/Data/Real/Basic.lean Modified Mathlib/Data/Seq/Parallel.lean Modified Mathlib/Data/Sign/Defs.lean Modified Mathlib/Data/Sym/Sym2.lean Modified Mathlib/Data/W/Basic.lean Modified Mathlib/Data/ZMod/Defs.lean Modified Mathlib/FieldTheory/CardinalEmb.lean Modified Mathlib/FieldTheory/Galois/Profinite.lean Modified Mathlib/FieldTheory/IsAlgClosed/Basic.lean Modified Mathlib/FieldTheory/NormalizedTrace.lean Modified Mathlib/FieldTheory/PerfectClosure.lean Modified Mathlib/FieldTheory/PurelyInseparable/Exponent.lean Modified Mathlib/Geometry/Euclidean/SignedDist.lean Modified Mathlib/GroupTheory/CoprodI.lean Modified Mathlib/GroupTheory/Coxeter/Basic.lean Modified Mathlib/GroupTheory/Coxeter/Length.lean Modified Mathlib/GroupTheory/DivisibleHull.lean Modified Mathlib/GroupTheory/FreeGroup/NielsenSchreier.lean Modified Mathlib/GroupTheory/OreLocalization/Basic.lean Modified Mathlib/GroupTheory/SpecificGroups/Dihedral.lean Modified Mathlib/GroupTheory/SpecificGroups/Quaternion.lean Modified Mathlib/Lean/Meta/RefinedDiscrTree/Basic.lean Modified Mathlib/LinearAlgebra/Alternating/Basic.lean Modified Mathlib/LinearAlgebra/CliffordAlgebra/Even.lean Modified Mathlib/LinearAlgebra/Dual/BaseChange.lean Modified Mathlib/LinearAlgebra/LinearIndependent/Defs.lean Modified Mathlib/LinearAlgebra/LinearPMap.lean Modified Mathlib/LinearAlgebra/Matrix/Ideal.lean Modified Mathlib/LinearAlgebra/PerfectPairing/Restrict.lean Modified Mathlib/LinearAlgebra/RootSystem/Basic.lean Modified Mathlib/LinearAlgebra/RootSystem/Chain.lean Modified Mathlib/LinearAlgebra/TensorProduct/Basic.lean Modified Mathlib/LinearAlgebra/TensorProduct/Pi.lean Modified Mathlib/Logic/Denumerable.lean Modified Mathlib/Logic/Encodable/Basic.lean Modified Mathlib/Logic/Equiv/Multiset.lean Modified Mathlib/Logic/Godel/GodelBetaFunction.lean Modified Mathlib/MeasureTheory/Function/L2Space.lean Modified Mathlib/MeasureTheory/Measure/MeasureSpace.lean Modified Mathlib/MeasureTheory/Measure/Stieltjes.lean Modified Mathlib/ModelTheory/Algebra/Ring/FreeCommRing.lean Modified Mathlib/ModelTheory/PartialEquiv.lean Modified Mathlib/NumberTheory/ArithmeticFunction/Misc.lean Modified Mathlib/NumberTheory/FLT/Three.lean Modified Mathlib/NumberTheory/LegendreSymbol/AddCharacter.lean Modified Mathlib/NumberTheory/LegendreSymbol/JacobiSymbol.lean Modified Mathlib/NumberTheory/ModularForms/SlashActions.lean Modified Mathlib/NumberTheory/NumberField/House.lean Modified Mathlib/NumberTheory/NumberField/Ideal/KummerDedekind.lean Modified Mathlib/NumberTheory/Padics/PadicNumbers.lean Modified Mathlib/NumberTheory/PellMatiyasevic.lean Modified Mathlib/Order/Antisymmetrization.lean Modified Mathlib/Order/BooleanAlgebra/Basic.lean Modified Mathlib/Order/Category/BddDistLat.lean Modified Mathlib/Order/Category/BddLat.lean Modified Mathlib/Order/Category/BddOrd.lean Modified Mathlib/Order/Category/BoolAlg.lean Modified Mathlib/Order/Category/DistLat.lean Modified Mathlib/Order/Category/FinBddDistLat.lean Modified Mathlib/Order/Category/Frm.lean Modified Mathlib/Order/Category/HeytAlg.lean Modified Mathlib/Order/Category/Lat.lean Modified Mathlib/Order/Category/LinOrd.lean Modified Mathlib/Order/Category/PartOrd.lean Modified Mathlib/Order/Category/PartOrdEmb.lean Modified Mathlib/Order/Category/Preord.lean Modified Mathlib/Order/DirectedInverseSystem.lean Modified Mathlib/Order/InitialSeg.lean Modified Mathlib/Order/Lattice/Congruence.lean Modified Mathlib/Order/Nucleus.lean Modified Mathlib/Order/Sublocale.lean Modified Mathlib/RingTheory/AdicCompletion/AsTensorProduct.lean Modified Mathlib/RingTheory/AdicCompletion/Functoriality.lean Modified Mathlib/RingTheory/AlgebraicIndependent/TranscendenceBasis.lean Modified Mathlib/RingTheory/Coalgebra/TensorProduct.lean Modified Mathlib/RingTheory/DividedPowers/Padic.lean Modified Mathlib/RingTheory/DividedPowers/SubDPIdeal.lean Modified Mathlib/RingTheory/Extension/Presentation/Basic.lean Modified Mathlib/RingTheory/Extension/Presentation/Core.lean Modified Mathlib/RingTheory/Extension/Presentation/Submersive.lean Modified Mathlib/RingTheory/Flat/Equalizer.lean Modified Mathlib/RingTheory/FreeCommRing.lean Modified Mathlib/RingTheory/GradedAlgebra/HomogeneousLocalization.lean Modified Mathlib/RingTheory/HahnSeries/Multiplication.lean Modified Mathlib/RingTheory/MvPolynomial/Localization.lean Modified Mathlib/RingTheory/MvPowerSeries/Evaluation.lean Modified Mathlib/RingTheory/OreLocalization/Basic.lean Modified Mathlib/RingTheory/PicardGroup.lean Modified Mathlib/RingTheory/PowerSeries/Trunc.lean Modified Mathlib/RingTheory/Spectrum/Maximal/Localization.lean Modified Mathlib/RingTheory/Spectrum/Prime/ChevalleyComplexity.lean Modified Mathlib/RingTheory/TensorProduct/Quotient.lean Modified Mathlib/RingTheory/WittVector/Basic.lean Modified Mathlib/SetTheory/Cardinal/Order.lean Modified Mathlib/SetTheory/Game/Impartial.lean Modified Mathlib/SetTheory/Ordinal/Arithmetic.lean Modified Mathlib/SetTheory/Ordinal/Basic.lean Modified Mathlib/SetTheory/Ordinal/CantorNormalForm.lean Modified Mathlib/SetTheory/Ordinal/Notation.lean Modified Mathlib/SetTheory/ZFC/Class.lean Modified Mathlib/Tactic/CategoryTheory/ToApp.lean + theorem CategoryTheory.toNatTrans_congr Modified Mathlib/Tactic/FunProp/Theorems.lean Modified Mathlib/Tactic/Linter/MinImports.lean Modified Mathlib/Tactic/Peel.lean Modified Mathlib/Tactic/Positivity/Basic.lean Modified Mathlib/Tactic/Positivity/Core.lean Modified Mathlib/Tactic/Ring/Basic.lean Modified Mathlib/Tactic/Simps/Basic.lean Modified Mathlib/Tactic/TFAE.lean Modified Mathlib/Tactic/ToExpr.lean Modified Mathlib/Topology/Algebra/Category/ProfiniteGrp/Basic.lean Modified Mathlib/Topology/Algebra/Ring/Basic.lean Modified Mathlib/Topology/Category/Compactum.lean Modified Mathlib/Topology/Category/TopCat/Limits/Konig.lean Modified Mathlib/Topology/ContinuousMap/Bounded/Basic.lean Modified Mathlib/Topology/DiscreteSubset.lean Modified Mathlib/Topology/ExtremallyDisconnected.lean Modified Mathlib/Topology/Homeomorph/Defs.lean Modified Mathlib/Topology/MetricSpace/Gluing.lean Modified Mathlib/Topology/MetricSpace/GromovHausdorff.lean Modified Mathlib/Topology/MetricSpace/GromovHausdorffRealized.lean Modified Mathlib/Topology/MetricSpace/Pseudo/Defs.lean Modified Mathlib/Topology/UniformSpace/Completion.lean Modified Mathlib/Topology/UnitInterval.lean Modified Mathlib/Util/CompileInductive.lean Modified lakefile.lean 2025-12-19 12:06:39 fc5f005 feat(Topology): restriction/extension of Trivialization and composition with Homeomorph (#25042) ESTIMATED CHANGES Modified Mathlib/Topology/FiberBundle/Trivialization.lean 2025-12-19 11:46:54 163c1f3 chore(CategoryTheory): generalize subpresheaf to subfunctor (#32746) This is a direct generalization in the definition, which previously took a presheaf `Cᵒᵖ ⥤ Type w` as an argument, but now takes a functor `C ⥤ Type w`. Parts of the API could be directly generalized, other parts we keep only for presheaves for now. We rename `Subpresheaf` to `Subfunctor`. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/AlgebraicTopology/Quasicategory/StrictSegal.lean Modified Mathlib/AlgebraicTopology/SimplicialSet/Degenerate.lean Modified Mathlib/AlgebraicTopology/SimplicialSet/Finite.lean Modified Mathlib/AlgebraicTopology/SimplicialSet/FiniteColimits.lean Modified Mathlib/AlgebraicTopology/SimplicialSet/Horn.lean Modified Mathlib/AlgebraicTopology/SimplicialSet/NonDegenerateSimplices.lean Modified Mathlib/AlgebraicTopology/SimplicialSet/Simplices.lean Modified Mathlib/AlgebraicTopology/SimplicialSet/Skeleton.lean Modified Mathlib/AlgebraicTopology/SimplicialSet/StdSimplex.lean Modified Mathlib/AlgebraicTopology/SimplicialSet/Subcomplex.lean +/- def SSet.Subcomplex.image +/- def SSet.Subcomplex.lift +/- theorem SSet.Subcomplex.topIso_inv_ι Modified Mathlib/CategoryTheory/Sites/LocallyInjective.lean Modified Mathlib/CategoryTheory/Sites/LocallySurjective.lean Modified Mathlib/CategoryTheory/Sites/Subsheaf.lean + theorem CategoryTheory.Subfunctor.eq_sheafify + theorem CategoryTheory.Subfunctor.eq_sheafify_iff + theorem CategoryTheory.Subfunctor.isSeparated + theorem CategoryTheory.Subfunctor.isSheaf_iff + theorem CategoryTheory.Subfunctor.le_sheafify + def CategoryTheory.Subfunctor.sheafify + theorem CategoryTheory.Subfunctor.sheafify_isSheaf + theorem CategoryTheory.Subfunctor.sheafify_le + theorem CategoryTheory.Subfunctor.sheafify_sheafify + def CategoryTheory.Subfunctor.toRangeSheafify + theorem CategoryTheory.Subfunctor.to_sheafifyLift + theorem CategoryTheory.Subfunctor.to_sheafify_lift_unique - theorem CategoryTheory.Subpresheaf.eq_sheafify - theorem CategoryTheory.Subpresheaf.eq_sheafify_iff - theorem CategoryTheory.Subpresheaf.isSeparated - theorem CategoryTheory.Subpresheaf.isSheaf_iff - theorem CategoryTheory.Subpresheaf.le_sheafify - def CategoryTheory.Subpresheaf.sheafify - theorem CategoryTheory.Subpresheaf.sheafify_isSheaf - theorem CategoryTheory.Subpresheaf.sheafify_le - theorem CategoryTheory.Subpresheaf.sheafify_sheafify - def CategoryTheory.Subpresheaf.toRangeSheafify - theorem CategoryTheory.Subpresheaf.to_sheafifyLift - theorem CategoryTheory.Subpresheaf.to_sheafify_lift_unique Added Mathlib/CategoryTheory/Subfunctor/Basic.lean + theorem CategoryTheory.Subfunctor.bot_obj + theorem CategoryTheory.Subfunctor.eq_top_iff_isIso + def CategoryTheory.Subfunctor.homOfLe + theorem CategoryTheory.Subfunctor.homOfLe_ι + theorem CategoryTheory.Subfunctor.iInf_obj + theorem CategoryTheory.Subfunctor.iSup_min + theorem CategoryTheory.Subfunctor.iSup_obj + theorem CategoryTheory.Subfunctor.le_def + theorem CategoryTheory.Subfunctor.max_min + theorem CategoryTheory.Subfunctor.max_obj + theorem CategoryTheory.Subfunctor.min_obj + theorem CategoryTheory.Subfunctor.nat_trans_naturality + theorem CategoryTheory.Subfunctor.sInf_obj + theorem CategoryTheory.Subfunctor.sSup_obj + def CategoryTheory.Subfunctor.toFunctor + theorem CategoryTheory.Subfunctor.top_obj + def CategoryTheory.Subfunctor.ι + structure CategoryTheory.Subfunctor Added Mathlib/CategoryTheory/Subfunctor/Equalizer.lean + theorem CategoryTheory.Subfunctor.equalizer.condition + def CategoryTheory.Subfunctor.equalizer.fork + def CategoryTheory.Subfunctor.equalizer.forkIsLimit + theorem CategoryTheory.Subfunctor.equalizer.fork_ι + def CategoryTheory.Subfunctor.equalizer.lift + theorem CategoryTheory.Subfunctor.equalizer.lift_ι' + theorem CategoryTheory.Subfunctor.equalizer.lift_ι + def CategoryTheory.Subfunctor.equalizer.ι + theorem CategoryTheory.Subfunctor.equalizer.ι_ι + theorem CategoryTheory.Subfunctor.equalizer_eq_iff + theorem CategoryTheory.Subfunctor.equalizer_le + theorem CategoryTheory.Subfunctor.equalizer_self + theorem CategoryTheory.Subfunctor.mem_equalizer_iff + theorem CategoryTheory.Subfunctor.range_le_equalizer_iff Renamed Mathlib/CategoryTheory/Subpresheaf/Finite.lean to Mathlib/CategoryTheory/Subfunctor/Finite.lean +/- theorem CategoryTheory.PresheafIsGeneratedBy.range + def CategoryTheory.Subfunctor.IsFinite.Index + theorem CategoryTheory.Subfunctor.IsGeneratedBy.iSup_eq + theorem CategoryTheory.Subfunctor.IsGeneratedBy.image + theorem CategoryTheory.Subfunctor.IsGeneratedBy.isFinite + theorem CategoryTheory.Subfunctor.IsGeneratedBy.mem + theorem CategoryTheory.Subfunctor.IsGeneratedBy.ofSection_le + theorem CategoryTheory.Subfunctor.IsGeneratedBy.of_equiv + def CategoryTheory.Subfunctor.IsGeneratedBy + theorem CategoryTheory.Subfunctor.image_isFinite + theorem CategoryTheory.Subfunctor.isGeneratedBy_iff + theorem CategoryTheory.Subfunctor.isGeneratedBy_of_isFinite + theorem CategoryTheory.Subfunctor.range_isFinite - def CategoryTheory.Subpresheaf.IsFinite.Index - theorem CategoryTheory.Subpresheaf.IsGeneratedBy.iSup_eq - theorem CategoryTheory.Subpresheaf.IsGeneratedBy.image - theorem CategoryTheory.Subpresheaf.IsGeneratedBy.isFinite - theorem CategoryTheory.Subpresheaf.IsGeneratedBy.mem - theorem CategoryTheory.Subpresheaf.IsGeneratedBy.ofSection_le - theorem CategoryTheory.Subpresheaf.IsGeneratedBy.of_equiv - def CategoryTheory.Subpresheaf.IsGeneratedBy - theorem CategoryTheory.Subpresheaf.image_isFinite - theorem CategoryTheory.Subpresheaf.isGeneratedBy_iff - theorem CategoryTheory.Subpresheaf.isGeneratedBy_of_isFinite - theorem CategoryTheory.Subpresheaf.range_isFinite Added Mathlib/CategoryTheory/Subfunctor/Image.lean + theorem CategoryTheory.Subfunctor.epi_iff_range_eq_top + def CategoryTheory.Subfunctor.fromPreimage + theorem CategoryTheory.Subfunctor.fromPreimage_ι + def CategoryTheory.Subfunctor.image + theorem CategoryTheory.Subfunctor.image_comp + theorem CategoryTheory.Subfunctor.image_iSup + theorem CategoryTheory.Subfunctor.image_le_iff + theorem CategoryTheory.Subfunctor.image_top + def CategoryTheory.Subfunctor.lift + theorem CategoryTheory.Subfunctor.lift_ι + def CategoryTheory.Subfunctor.preimage + theorem CategoryTheory.Subfunctor.preimage_comp + theorem CategoryTheory.Subfunctor.preimage_eq_top_iff + theorem CategoryTheory.Subfunctor.preimage_id + theorem CategoryTheory.Subfunctor.preimage_image_of_epi + def CategoryTheory.Subfunctor.range + theorem CategoryTheory.Subfunctor.range_comp + theorem CategoryTheory.Subfunctor.range_comp_le + theorem CategoryTheory.Subfunctor.range_eq_top + theorem CategoryTheory.Subfunctor.range_id + theorem CategoryTheory.Subfunctor.range_toRange + theorem CategoryTheory.Subfunctor.range_ι + def CategoryTheory.Subfunctor.toRange + theorem CategoryTheory.Subfunctor.toRange_app_val + theorem CategoryTheory.Subfunctor.toRange_ι Renamed Mathlib/CategoryTheory/Subpresheaf/OfSection.lean to Mathlib/CategoryTheory/Subfunctor/OfSection.lean + theorem CategoryTheory.Subfunctor.mem_ofSection_obj + def CategoryTheory.Subfunctor.ofSection + theorem CategoryTheory.Subfunctor.ofSection_eq_range' + theorem CategoryTheory.Subfunctor.ofSection_eq_range + theorem CategoryTheory.Subfunctor.ofSection_image + theorem CategoryTheory.Subfunctor.ofSection_le_iff + theorem CategoryTheory.Subfunctor.range_eq_ofSection' + theorem CategoryTheory.Subfunctor.range_eq_ofSection - theorem CategoryTheory.Subpresheaf.mem_ofSection_obj - def CategoryTheory.Subpresheaf.ofSection - theorem CategoryTheory.Subpresheaf.ofSection_eq_range' - theorem CategoryTheory.Subpresheaf.ofSection_eq_range - theorem CategoryTheory.Subpresheaf.ofSection_image - theorem CategoryTheory.Subpresheaf.ofSection_le_iff - theorem CategoryTheory.Subpresheaf.range_eq_ofSection' - theorem CategoryTheory.Subpresheaf.range_eq_ofSection Renamed Mathlib/CategoryTheory/Subpresheaf/Sieves.lean to Mathlib/CategoryTheory/Subfunctor/Sieves.lean + def CategoryTheory.Subfunctor.familyOfElementsOfSection + theorem CategoryTheory.Subfunctor.family_of_elements_compatible + def CategoryTheory.Subfunctor.sieveOfSection - def CategoryTheory.Subpresheaf.familyOfElementsOfSection - theorem CategoryTheory.Subpresheaf.family_of_elements_compatible - def CategoryTheory.Subpresheaf.sieveOfSection Renamed Mathlib/CategoryTheory/Subpresheaf/Subobject.lean to Mathlib/CategoryTheory/Subfunctor/Subobject.lean + theorem CategoryTheory.Subfunctor.range_subobjectMk_ι + theorem CategoryTheory.Subfunctor.subobjectMk_range_arrow - theorem CategoryTheory.Subpresheaf.range_subobjectMk_ι - theorem CategoryTheory.Subpresheaf.subobjectMk_range_arrow Deleted Mathlib/CategoryTheory/Subpresheaf/Basic.lean - theorem CategoryTheory.Subpresheaf.bot_obj - theorem CategoryTheory.Subpresheaf.eq_top_iff_isIso - def CategoryTheory.Subpresheaf.homOfLe - theorem CategoryTheory.Subpresheaf.homOfLe_ι - theorem CategoryTheory.Subpresheaf.iInf_obj - theorem CategoryTheory.Subpresheaf.iSup_min - theorem CategoryTheory.Subpresheaf.iSup_obj - theorem CategoryTheory.Subpresheaf.le_def - theorem CategoryTheory.Subpresheaf.max_min - theorem CategoryTheory.Subpresheaf.max_obj - theorem CategoryTheory.Subpresheaf.min_obj - theorem CategoryTheory.Subpresheaf.nat_trans_naturality - theorem CategoryTheory.Subpresheaf.sInf_obj - theorem CategoryTheory.Subpresheaf.sSup_obj - def CategoryTheory.Subpresheaf.toPresheaf - theorem CategoryTheory.Subpresheaf.top_obj - def CategoryTheory.Subpresheaf.ι - structure CategoryTheory.Subpresheaf Deleted Mathlib/CategoryTheory/Subpresheaf/Equalizer.lean - theorem CategoryTheory.Subpresheaf.equalizer.condition - def CategoryTheory.Subpresheaf.equalizer.fork - def CategoryTheory.Subpresheaf.equalizer.forkIsLimit - theorem CategoryTheory.Subpresheaf.equalizer.fork_ι - def CategoryTheory.Subpresheaf.equalizer.lift - theorem CategoryTheory.Subpresheaf.equalizer.lift_ι' - theorem CategoryTheory.Subpresheaf.equalizer.lift_ι - def CategoryTheory.Subpresheaf.equalizer.ι - theorem CategoryTheory.Subpresheaf.equalizer.ι_ι - theorem CategoryTheory.Subpresheaf.equalizer_eq_iff - theorem CategoryTheory.Subpresheaf.equalizer_le - theorem CategoryTheory.Subpresheaf.equalizer_self - theorem CategoryTheory.Subpresheaf.mem_equalizer_iff - theorem CategoryTheory.Subpresheaf.range_le_equalizer_iff Deleted Mathlib/CategoryTheory/Subpresheaf/Image.lean - theorem CategoryTheory.Subpresheaf.epi_iff_range_eq_top - def CategoryTheory.Subpresheaf.fromPreimage - theorem CategoryTheory.Subpresheaf.fromPreimage_ι - def CategoryTheory.Subpresheaf.image - theorem CategoryTheory.Subpresheaf.image_comp - theorem CategoryTheory.Subpresheaf.image_iSup - theorem CategoryTheory.Subpresheaf.image_le_iff - theorem CategoryTheory.Subpresheaf.image_top - def CategoryTheory.Subpresheaf.lift - theorem CategoryTheory.Subpresheaf.lift_ι - def CategoryTheory.Subpresheaf.preimage - theorem CategoryTheory.Subpresheaf.preimage_comp - theorem CategoryTheory.Subpresheaf.preimage_eq_top_iff - theorem CategoryTheory.Subpresheaf.preimage_id - theorem CategoryTheory.Subpresheaf.preimage_image_of_epi - def CategoryTheory.Subpresheaf.range - theorem CategoryTheory.Subpresheaf.range_comp - theorem CategoryTheory.Subpresheaf.range_comp_le - theorem CategoryTheory.Subpresheaf.range_eq_top - theorem CategoryTheory.Subpresheaf.range_id - theorem CategoryTheory.Subpresheaf.range_toRange - theorem CategoryTheory.Subpresheaf.range_ι - def CategoryTheory.Subpresheaf.toRange - theorem CategoryTheory.Subpresheaf.toRange_app_val - theorem CategoryTheory.Subpresheaf.toRange_ι 2025-12-19 11:20:52 e9f2f25 feat: `gaussianReal_const_sub` (#31551) - Add lemmas stating that if `X` is a real Gaussian random variable with mean `μ` and variance `v`, then `-X`, `X - y` and `y - X` are Gaussian with variance `v` and respective means `-μ`, `μ - y` and `y - μ`. - Generalize this section of the file from `MeasureSpace` to `MeasurableSpace`+`Measure` ESTIMATED CHANGES Modified Mathlib/Probability/Distributions/Gaussian/Real.lean +/- theorem ProbabilityTheory.gaussianReal_add_const +/- theorem ProbabilityTheory.gaussianReal_const_add +/- theorem ProbabilityTheory.gaussianReal_const_mul + theorem ProbabilityTheory.gaussianReal_const_sub +/- theorem ProbabilityTheory.gaussianReal_mul_const + theorem ProbabilityTheory.gaussianReal_neg + theorem ProbabilityTheory.gaussianReal_sub_const 2025-12-19 10:24:09 6cef441 chore(LinearAlgebra/QuadraticForm): deduplicate proof (#33053) ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/QuadraticForm/Dual.lean 2025-12-19 10:24:07 d0055cf feat(CategoryTheory): pointwise left derived functors (#33006) The notion of pointwise left derived functor is introduced in this PR. The content of the new file was obtained by dualizing the corresponding file for pointwise right derived functors (introduced in #26036). ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Functor/Derived/PointwiseLeftDerived.lean + theorem CategoryTheory.Functor.HasPointwiseLeftDerivedFunctorAt.hasLimit + theorem CategoryTheory.Functor.hasLeftDerivedFunctor_of_hasPointwiseLeftDerivedFunctor + theorem CategoryTheory.Functor.hasPointwiseLeftDerivedFunctorAt_iff + theorem CategoryTheory.Functor.hasPointwiseLeftDerivedFunctorAt_iff_of_mem + theorem CategoryTheory.Functor.hasPointwiseLeftDerivedFunctor_of_inverts + theorem CategoryTheory.Functor.hasPointwiseRightKanExtension_of_hasPointwiseLeftDerivedFunctor + theorem CategoryTheory.Functor.isIso_of_isLeftDerivedFunctor_of_inverts + theorem CategoryTheory.Functor.isLeftDerivedFunctor_iff_of_inverts + theorem CategoryTheory.Functor.isLeftDerivedFunctor_of_inverts + def CategoryTheory.Functor.isPointwiseRightKanExtensionAtOfIsoOfIsLocalization Modified Mathlib/CategoryTheory/Functor/Derived/PointwiseRightDerived.lean 2025-12-19 10:24:04 a525245 feat(CategoryTheory): constructor for left derivability structures (#33003) In this file, we dualize #12676. Assume that `W₁` and `W₂` are classes of morphisms in categories `C₁` and `C₂`, and that we have a localizer morphism `Φ : LocalizerMorphism W₁ W₂` that is a localized equivalence, i.e. `Φ.functor` induces an equivalence of categories between the localized categories. Assume moreover that `W₂` contains identities. Then, `Φ` is a left derivability structure if it satisfies the two following conditions: * for any `X₂ : C₂`, the category `Φ.LeftResolution X₂` of resolutions of `X₂` is connected * any arrow in `C₂` admits a resolution (i.e. `Φ.arrow.HasLeftResolutions` holds, where `Φ.arrow` is the induced localizer morphism on categories of arrows in `C₁` and `C₂`). ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Localization/DerivabilityStructure/Constructor.lean + theorem CategoryTheory.LocalizerMorphism.IsLeftDerivabilityStructure.mk' Modified Mathlib/CategoryTheory/Localization/LocalizerMorphism.lean 2025-12-19 10:24:01 62ef363 chore: golf proofs (#32979) ESTIMATED CHANGES Modified Mathlib/Data/Nat/Log.lean Modified Mathlib/GroupTheory/GroupAction/MultipleTransitivity.lean Modified Mathlib/LinearAlgebra/Matrix/Adjugate.lean Modified Mathlib/LinearAlgebra/RootSystem/Defs.lean Modified Mathlib/NumberTheory/Harmonic/GammaDeriv.lean 2025-12-19 10:23:59 82fd6d3 feat(Topology/Category): explicit binary coproducts in `CompHausLike` (#32914) From [LeanCondensed](https://github.com/dagurtomas/LeanCondensed) ESTIMATED CHANGES Modified Mathlib/Topology/Category/CompHausLike/Cartesian.lean + def CompHausLike.coproductCocone + def CompHausLike.coproductIsColimit +/- def CompHausLike.productIsLimit 2025-12-19 10:23:56 2bf1f21 chore: golf using `grind` and `simp` (#32875) ESTIMATED CHANGES Modified Mathlib/Data/Finset/Image.lean Modified Mathlib/Data/Rat/Lemmas.lean Modified Mathlib/MeasureTheory/Constructions/Pi.lean Modified Mathlib/MeasureTheory/Measure/Portmanteau.lean Modified Mathlib/Order/LiminfLimsup.lean Modified Mathlib/Probability/Kernel/Disintegration/Integral.lean Modified Mathlib/Topology/MetricSpace/Pseudo/Defs.lean 2025-12-19 10:23:53 1f3fb3c feat(CategoryTheory/Sites): (Co)continuity of `Over.iteratedSliceEquiv` (#32405) Show that the `Over.iteratedSliceEquiv` functor is continuous and cocontinuous. This contribution was created as part of the Heidelberg Lean workshop "Formalising algebraic geometry" in November 2025. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Sites/Equivalence.lean + theorem CategoryTheory.Equivalence.isDenseSubsite_functor_of_isCocontinuous + theorem CategoryTheory.Equivalence.isDenseSubsite_inverse_of_isCocontinuous Modified Mathlib/CategoryTheory/Sites/Over.lean 2025-12-19 09:26:35 99bc151 feat: toSubring_bot (#33009) If `R` is a subring of `A` then `(⊥ : Subalgebra R A).toSubring = R`. ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/Subalgebra/Lattice.lean + theorem Algebra.toSubring_bot 2025-12-19 09:26:33 fa0c9ca chore: add self_mem_adjoin_singleton in simp (#33008) ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/NonUnitalSubalgebra.lean Modified Mathlib/Algebra/Algebra/Subalgebra/Lattice.lean Modified Mathlib/Algebra/Star/NonUnitalSubalgebra.lean Modified Mathlib/Algebra/Star/Subalgebra.lean 2025-12-19 09:26:31 9316acc chore(Tactic/Bound)!: set `terminal := true` (#32995) It seems that this is intended to be a closing tactic, similar to `continuity`, `measurability`, and `aesop_cat`. BREAKING CHANGE: Non-terminal usages of `bound` will break. ESTIMATED CHANGES Modified Mathlib/Tactic/Bound.lean 2025-12-19 09:26:29 1c7c15d feat: the product of 2 locally finite measures is a locally finite measure (#32986) We already have a similar instance for pi measures. From https://github.com/urkud/SardMoreira ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Measure/Prod.lean 2025-12-19 09:26:26 55fdf80 chore(LinearAlgebra/Multilinear/Basic.lean): remove `erw`s in `restr` (#32526) ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/Multilinear/Basic.lean Modified Mathlib/Logic/Equiv/Set.lean +/- theorem dite_comp_equiv_update 2025-12-19 08:36:39 f23933b doc(1000.yaml): add M. Riesz extension theorem and PowerSeries.exists_isWeierstrassFactorization (#33071) ESTIMATED CHANGES Modified docs/1000.yaml 2025-12-19 08:36:37 a294736 ci: put lean4checker and mathlib_test_executable in separate jobs (#33046) cf. https://leanprover.zulipchat.com/#narrow/channel/428973-nightly-testing/topic/mathlib.20test.20executable.20failure/near/562824424 I also made the zulip step post messages if a step ends up canceled rather than fails (not sure if this will work for OOM issues though; GitHub might abort the whole thing at a higher level). Another thing I noticed from [one of the logs](https://github.com/leanprover-community/mathlib4/actions/runs/20047327730/job/57495644495): it looks like one of the matrix branches ran out of memory and caused the other to be canceled, possibly prematurely (?). So I turned off `fail-fast` just in case. ESTIMATED CHANGES Modified .github/workflows/daily.yml 2025-12-19 08:36:35 52a276c feat(LinearAlgebra/Dual): swapping order of duals and tensor product preserves evaluation (#33026) Prove that swapping ordering of both the applied duals and the tensor product preserves evaluation. ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/Dual/Lemmas.lean + theorem TensorProduct.dualDistrib_apply_comm 2025-12-19 08:36:33 51a7278 feat(LinearAlgebra): more on StrongRankCondition (#32194) Strong rank condition fails for R iff there is a copy of $R^{(\mathbb{N})}$ in some $R^n$, iff some $R^n$ has infinity rank, iff some $R^{n+1}$ has zero `finrank`. As consequences, if all $R^n$ are Noetherian or Artinian, then $R$ satisfies the strong rank condition. To prove the first equivalence, I redeveloped a version of the ["tunnels and tailings"](https://github.com/leanprover-community/mathlib3/commit/86766851#diff-7829719aad6a9e3e617da2a7cf29dba4d55516b27e18f240eca352f4983d67b7R472-R491) construction @jcommelin and @kim-em contributed to mathlib ~4 years ago and made it work for Semiring/AddCommMonoid. The original construction was deprecated in [#12076](https://github.com/leanprover-community/mathlib4/commit/5948566497f56e1432c52d65623f1bb3c3937159) by @acmepjz and later removed, though some docstrings still remain, and I think it's now time to remove it. Also add an instance that finite semirings satisfy the Orzech property (and therefore strong rank condition and invariant basis number). ESTIMATED CHANGES Modified Mathlib/Data/Finsupp/Basic.lean + theorem Finsupp.mapDomain_comapDomain_nat_add_one Modified Mathlib/Data/Fintype/Card.lean Modified Mathlib/Data/Fintype/EquivFin.lean Modified Mathlib/LinearAlgebra/Dimension/StrongRankCondition.lean + theorem StrongRankCondition.of_isNoetherian + theorem strongRankCondition_iff_forall_rank_lt_aleph0 + theorem strongRankCondition_iff_forall_zero_lt_finrank Modified Mathlib/LinearAlgebra/Finsupp/Pi.lean + theorem LinearMap.exists_finsupp_nat_of_fin_fun_injective + theorem LinearMap.exists_finsupp_nat_of_prod_injective + theorem LinearMap.fst_prodOfFinsuppNat + def LinearMap.prodOfFinsuppNat + theorem LinearMap.prodOfFinsuppNat_injective + theorem LinearMap.snd_prodOfFinsuppNat Modified Mathlib/LinearAlgebra/InvariantBasisNumber.lean + theorem strongRankCondition_iff_forall_not_injective Modified Mathlib/LinearAlgebra/LinearIndependent/Lemmas.lean + theorem LinearMap.iSupIndep_map + theorem iSupIndep_range_lsingle Modified Mathlib/LinearAlgebra/Prod.lean Modified Mathlib/RingTheory/Artinian/Instances.lean + theorem StrongRankCondition.of_isArtinian Modified Mathlib/RingTheory/Artinian/Module.lean + theorem IsArtinian.subsingleton_of_injective Modified Mathlib/RingTheory/Noetherian/Basic.lean + theorem IsNoetherian.subsingleton_of_injective +/- theorem Submodule.finite_ne_bot_of_iSupIndep Modified Mathlib/RingTheory/OrzechProperty.lean 2025-12-19 07:43:25 477597f chore: replace unnecessary `Fintype` hypotheses with `Finite` (#33068) This PR fixes all of the violations of the `unusedFintypeInType` linter (#31794), preparing us for merging that linter and turning it on. Note: some files see rearrangements of declarations to enable cleaner sectioning between `Fintype` and `Finite`, but we generally try to stay close to the original style. ESTIMATED CHANGES Modified Mathlib/Algebra/MvPolynomial/Nilpotent.lean Modified Mathlib/Analysis/AbsoluteValue/Equivalence.lean Modified Mathlib/Analysis/Calculus/Deriv/Pi.lean Modified Mathlib/Analysis/Calculus/Deriv/Prod.lean Modified Mathlib/Analysis/Calculus/FDeriv/CompCLM.lean Modified Mathlib/Analysis/Calculus/FDeriv/Mul.lean +/- theorem hasFDerivAt_finset_prod +/- theorem hasFDerivAt_list_prod' +/- theorem hasFDerivAt_multiset_prod +/- theorem hasStrictFDerivAt_finset_prod +/- theorem hasStrictFDerivAt_list_prod' +/- theorem hasStrictFDerivAt_list_prod +/- theorem hasStrictFDerivAt_multiset_prod Modified Mathlib/Analysis/Calculus/FDeriv/Pi.lean Modified Mathlib/Analysis/Calculus/FDeriv/Prod.lean Modified Mathlib/Analysis/Calculus/FDeriv/WithLp.lean Modified Mathlib/Analysis/InnerProductSpace/Calculus.lean Modified Mathlib/Analysis/InnerProductSpace/GramMatrix.lean +/- theorem Matrix.star_dotProduct_gram_mulVec Modified Mathlib/Analysis/Matrix/Order.lean Modified Mathlib/Analysis/Normed/Lp/PiLp.lean +/- theorem PiLp.isUniformInducing_toLp Modified Mathlib/Analysis/SpecialFunctions/PolarCoord.lean +/- theorem hasFDerivAt_pi_polarCoord_symm +/- theorem measurableSet_pi_polarCoord_target Modified Mathlib/Combinatorics/SimpleGraph/Matching.lean Modified Mathlib/Data/Fintype/Quotient.lean Modified Mathlib/GroupTheory/GroupAction/Jordan.lean Modified Mathlib/GroupTheory/OrderOfElement.lean Modified Mathlib/GroupTheory/Perm/Cycle/Type.lean Modified Mathlib/LinearAlgebra/Matrix/PosDef.lean Modified Mathlib/MeasureTheory/Measure/HasOuterApproxClosedProd.lean Modified Mathlib/NumberTheory/JacobiSum/Basic.lean Modified Mathlib/Probability/Independence/BoundedContinuousFunction.lean Modified Mathlib/RepresentationTheory/Homological/FiniteCyclic.lean Modified Mathlib/RingTheory/AdicCompletion/AsTensorProduct.lean +/- theorem AdicCompletion.ofTensorProduct_bijective_of_map_from_fin Modified Mathlib/RingTheory/Polynomial/Basic.lean Modified Mathlib/RingTheory/Polynomial/UniqueFactorization.lean 2025-12-19 07:43:23 ef1bbe4 chore(Order): fix whitespace (#32961) Found by extending the commandStart linter to proof bodies. ESTIMATED CHANGES Modified Mathlib/Order/Filter/AtTopBot/Group.lean Modified Mathlib/Order/Filter/Basic.lean Modified Mathlib/Order/Filter/Ultrafilter/Defs.lean Modified Mathlib/Order/Interval/Set/Disjoint.lean Modified Mathlib/Order/LiminfLimsup.lean Modified Mathlib/Order/PrimeSeparator.lean Modified Mathlib/Order/SupIndep.lean Modified Mathlib/Order/WellFoundedSet.lean 2025-12-19 07:43:21 d6f0673 chore(NumberTheory): fix whitespace (#32954) ESTIMATED CHANGES Modified Mathlib/NumberTheory/ArithmeticFunction/Moebius.lean Modified Mathlib/NumberTheory/BernoulliPolynomials.lean Modified Mathlib/NumberTheory/Chebyshev.lean Modified Mathlib/NumberTheory/Cyclotomic/Basic.lean Modified Mathlib/NumberTheory/Cyclotomic/PrimitiveRoots.lean Modified Mathlib/NumberTheory/DirichletCharacter/Basic.lean +/- theorem DirichletCharacter.Even.eval_neg +/- theorem DirichletCharacter.Odd.eval_neg Modified Mathlib/NumberTheory/ModularForms/EisensteinSeries/Defs.lean Modified Mathlib/NumberTheory/ModularForms/EisensteinSeries/Summable.lean Modified Mathlib/NumberTheory/ModularForms/Identities.lean Modified Mathlib/NumberTheory/MulChar/Basic.lean Modified Mathlib/NumberTheory/Niven.lean Modified Mathlib/NumberTheory/Padics/Hensel.lean Modified Mathlib/NumberTheory/Padics/PadicNumbers.lean Modified Mathlib/NumberTheory/Padics/PadicVal/Basic.lean Modified Mathlib/NumberTheory/Padics/WithVal.lean Modified Mathlib/NumberTheory/RamificationInertia/Basic.lean Modified Mathlib/NumberTheory/RamificationInertia/Galois.lean Modified Mathlib/NumberTheory/TsumDivsorsAntidiagonal.lean 2025-12-19 07:43:19 61ffc63 chore(MeasureTheory): fix whitespace (#32953) ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Constructions/BorelSpace/Basic.lean Modified Mathlib/MeasureTheory/Constructions/BorelSpace/Order.lean Modified Mathlib/MeasureTheory/Constructions/Polish/Basic.lean Modified Mathlib/MeasureTheory/Covering/VitaliFamily.lean Modified Mathlib/MeasureTheory/Function/LpSeminorm/CompareExp.lean Modified Mathlib/MeasureTheory/Function/UnifTight.lean Modified Mathlib/MeasureTheory/Integral/Bochner/L1.lean Modified Mathlib/MeasureTheory/Integral/BoundedContinuousFunction.lean Modified Mathlib/MeasureTheory/Integral/Lebesgue/Countable.lean Modified Mathlib/MeasureTheory/Integral/RieszMarkovKakutani/Real.lean Modified Mathlib/MeasureTheory/MeasurableSpace/Embedding.lean Modified Mathlib/MeasureTheory/MeasurableSpace/Invariants.lean Modified Mathlib/MeasureTheory/Measure/Count.lean Modified Mathlib/MeasureTheory/Measure/Decomposition/RadonNikodym.lean Modified Mathlib/MeasureTheory/Measure/EverywherePos.lean Modified Mathlib/MeasureTheory/Measure/MutuallySingular.lean Modified Mathlib/MeasureTheory/Measure/Stieltjes.lean Modified Mathlib/MeasureTheory/Measure/Typeclasses/SFinite.lean Modified Mathlib/MeasureTheory/Measure/WithDensity.lean Modified Mathlib/MeasureTheory/SetAlgebra.lean 2025-12-19 07:43:17 6eff304 chore(Combinatorics): fix whitespace (#32929) ESTIMATED CHANGES Modified Mathlib/Combinatorics/Additive/SmallTripling.lean Modified Mathlib/Combinatorics/Additive/SubsetSum.lean Modified Mathlib/Combinatorics/Configuration.lean Modified Mathlib/Combinatorics/Enumerative/Bell.lean Modified Mathlib/Combinatorics/HalesJewett.lean Modified Mathlib/Combinatorics/Matroid/Basic.lean Modified Mathlib/Combinatorics/Matroid/Closure.lean Modified Mathlib/Combinatorics/Matroid/IndepAxioms.lean Modified Mathlib/Combinatorics/Matroid/Loop.lean Modified Mathlib/Combinatorics/Matroid/Map.lean Modified Mathlib/Combinatorics/Matroid/Minor/Restrict.lean Modified Mathlib/Combinatorics/Matroid/Rank/Cardinal.lean Modified Mathlib/Combinatorics/Matroid/Rank/ENat.lean Modified Mathlib/Combinatorics/SetFamily/Compression/Down.lean Modified Mathlib/Combinatorics/SimpleGraph/Clique.lean Modified Mathlib/Combinatorics/SimpleGraph/Connectivity/WalkDecomp.lean Modified Mathlib/Combinatorics/SimpleGraph/Diam.lean +/- theorem SimpleGraph.exists_eccent_eq_radius Modified Mathlib/Combinatorics/SimpleGraph/Extremal/Turan.lean Modified Mathlib/Combinatorics/SimpleGraph/Extremal/TuranDensity.lean Modified Mathlib/Combinatorics/SimpleGraph/FiveWheelLike.lean Modified Mathlib/Combinatorics/SimpleGraph/Matching.lean Modified Mathlib/Combinatorics/SimpleGraph/Metric.lean Modified Mathlib/Combinatorics/SimpleGraph/Paths.lean Modified Mathlib/Combinatorics/SimpleGraph/Prod.lean Modified Mathlib/Combinatorics/SimpleGraph/Subgraph.lean Modified Mathlib/Combinatorics/SimpleGraph/Triangle/Removal.lean Modified Mathlib/Combinatorics/SimpleGraph/Triangle/Tripartite.lean +/- theorem SimpleGraph.TripartiteFromTriangles.rel_symm 2025-12-19 07:43:15 763d5a3 chore(AlgebraicGeometry): fix whitespace (#32907) Found by extending the commandStart linter to proof bodies. ESTIMATED CHANGES Modified Mathlib/AlgebraicGeometry/AffineScheme.lean Modified Mathlib/AlgebraicGeometry/AffineSpace.lean Modified Mathlib/AlgebraicGeometry/AffineTransitionLimit.lean Modified Mathlib/AlgebraicGeometry/GammaSpecAdjunction.lean Modified Mathlib/AlgebraicGeometry/Modules/Tilde.lean Modified Mathlib/AlgebraicGeometry/Morphisms/Basic.lean Modified Mathlib/AlgebraicGeometry/Morphisms/ClosedImmersion.lean Modified Mathlib/AlgebraicGeometry/Morphisms/Immersion.lean Modified Mathlib/AlgebraicGeometry/Morphisms/RingHomProperties.lean Modified Mathlib/AlgebraicGeometry/OpenImmersion.lean Modified Mathlib/AlgebraicGeometry/ProjectiveSpectrum/Scheme.lean Modified Mathlib/AlgebraicGeometry/Scheme.lean Modified Mathlib/AlgebraicGeometry/ValuativeCriterion.lean 2025-12-19 07:43:14 6f2ca42 doc(Geometry): fix typos (#32894) Typos found and fixed by Codex. ESTIMATED CHANGES Modified Mathlib/Geometry/Euclidean/Angle/Oriented/Affine.lean Modified Mathlib/Geometry/Euclidean/Angle/Sphere.lean Modified Mathlib/Geometry/Euclidean/Congruence.lean Modified Mathlib/Geometry/Euclidean/Inversion/Basic.lean Modified Mathlib/Geometry/Euclidean/SignedDist.lean Modified Mathlib/Geometry/Manifold/Algebra/LeftInvariantDerivation.lean Modified Mathlib/Geometry/Manifold/Algebra/LieGroup.lean Modified Mathlib/Geometry/Manifold/ChartedSpace.lean Modified Mathlib/Geometry/Manifold/DerivationBundle.lean Modified Mathlib/Geometry/Manifold/Immersion.lean Modified Mathlib/Geometry/Manifold/Instances/Real.lean Modified Mathlib/Geometry/Manifold/IsManifold/ExtChartAt.lean Modified Mathlib/Geometry/Manifold/IsManifold/InteriorBoundary.lean Modified Mathlib/Geometry/Manifold/LocalSourceTargetProperty.lean Modified Mathlib/Geometry/Manifold/MFDeriv/Atlas.lean Modified Mathlib/Geometry/Manifold/MFDeriv/Tangent.lean Modified Mathlib/Geometry/Manifold/Riemannian/PathELength.lean Modified Mathlib/Geometry/Manifold/VectorBundle/Hom.lean Modified Mathlib/Geometry/Manifold/VectorBundle/Riemannian.lean 2025-12-19 07:43:12 65c8eae feat(MeasureTheory): a relatively compact set of measures is tight (#30116) ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Measure/ProbabilityMeasure.lean Modified Mathlib/MeasureTheory/Measure/Tight.lean + theorem MeasureTheory.exists_measure_iUnion_gt_of_isCompact_closure + theorem MeasureTheory.isTightMeasureSet_of_isCompact_closure 2025-12-19 07:20:40 c8989d9 doc(MeasureTheory): fix typos (#32678) Fix a collection of simple typos in `Mathlib/MeasureTheory`. ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Category/MeasCat.lean Modified Mathlib/MeasureTheory/Constructions/BorelSpace/Real.lean Modified Mathlib/MeasureTheory/Constructions/Cylinders.lean Modified Mathlib/MeasureTheory/Constructions/Pi.lean Modified Mathlib/MeasureTheory/Covering/Besicovitch.lean Modified Mathlib/MeasureTheory/Function/AEEqFun.lean Modified Mathlib/MeasureTheory/Function/AbsolutelyContinuous.lean Modified Mathlib/MeasureTheory/Function/ConditionalExpectation/PullOut.lean Modified Mathlib/MeasureTheory/Function/JacobianOneDim.lean Modified Mathlib/MeasureTheory/Function/UnifTight.lean Modified Mathlib/MeasureTheory/Function/UniformIntegrable.lean Modified Mathlib/MeasureTheory/Group/Arithmetic.lean Modified Mathlib/MeasureTheory/Group/Prod.lean Modified Mathlib/MeasureTheory/Integral/Average.lean Modified Mathlib/MeasureTheory/Integral/Bochner/Basic.lean Modified Mathlib/MeasureTheory/Integral/Bochner/L1.lean Modified Mathlib/MeasureTheory/Integral/CurveIntegral/Basic.lean Modified Mathlib/MeasureTheory/Integral/IntervalIntegral/FundThmCalculus.lean Modified Mathlib/MeasureTheory/Integral/RieszMarkovKakutani/NNReal.lean Modified Mathlib/MeasureTheory/Integral/RieszMarkovKakutani/Real.lean Modified Mathlib/MeasureTheory/MeasurableSpace/MeasurablyGenerated.lean Modified Mathlib/MeasureTheory/Measure/FiniteMeasureExt.lean Modified Mathlib/MeasureTheory/Measure/Hausdorff.lean Modified Mathlib/MeasureTheory/Measure/Lebesgue/EqHaar.lean Modified Mathlib/MeasureTheory/Measure/Regular.lean Modified Mathlib/MeasureTheory/Measure/SeparableMeasure.lean Modified Mathlib/MeasureTheory/Measure/Sub.lean Modified Mathlib/MeasureTheory/OuterMeasure/BorelCantelli.lean Modified Mathlib/MeasureTheory/OuterMeasure/Induced.lean Modified Mathlib/MeasureTheory/SpecificCodomains/ContinuousMap.lean 2025-12-19 01:57:51 1c33deb chore(Tactic/Translate/Core): use `.value? (allowOpaque := true)` option (#32916) This PR cleans up some code in `to_additive`/`to_dual` using the `.value? (allowOpaque := true)` option. ESTIMATED CHANGES Modified Mathlib/Tactic/Translate/Core.lean 2025-12-19 01:57:49 8f9480a feat: a simple unit-distance embedding of the Heawood graph (#32684) Cf. [Zulip](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/A.20simple.20unit-distance.20embedding.20of.20the.20Heawood.20graph/near/562930187). The embedding is depicted below, with vertex labels as in the formalisation. heawood-ud ESTIMATED CHANGES Modified Counterexamples.lean Added Counterexamples/HeawoodUnitDistance.lean + theorem SimpleGraph.Heawood.decompose_point + theorem SimpleGraph.Heawood.dist_eq_one_iff + theorem SimpleGraph.Heawood.dist_udMap_eq_one_of_eq + theorem SimpleGraph.Heawood.dist_udMap_rev + theorem SimpleGraph.Heawood.dist_udMap_rev_iff + theorem SimpleGraph.Heawood.exists_root_in_Ioo + theorem SimpleGraph.Heawood.injOn_udMap_sextet + theorem SimpleGraph.Heawood.injective_udMap + theorem SimpleGraph.Heawood.reflect_toEuclideanLin + theorem SimpleGraph.Heawood.root_bounds + theorem SimpleGraph.Heawood.root_equation + theorem SimpleGraph.Heawood.udMap_reflect + theorem SimpleGraph.card_heawoodGraph_edgeFinset + def SimpleGraph.heawoodGraph + theorem SimpleGraph.heawoodGraph_edgeFinset + theorem SimpleGraph.heawoodGraph_neighborFinset + theorem SimpleGraph.isRegularOfDegree_heawoodGraph Modified Mathlib.lean Added Mathlib/Combinatorics/SimpleGraph/UnitDistance/Basic.lean + def SimpleGraph.UnitDistEmbedding.bot + def SimpleGraph.UnitDistEmbedding.copy + def SimpleGraph.UnitDistEmbedding.embed + def SimpleGraph.UnitDistEmbedding.iso + def SimpleGraph.UnitDistEmbedding.subsingleton + structure SimpleGraph.UnitDistEmbedding Modified Mathlib/Data/Finset/Fin.lean Modified docs/references.bib 2025-12-19 00:57:22 ac532d9 feat(to_dual): don't translate the order on `Set` (#32863) This PR adds the tag `attribute [to_dual_dont_translate] Set`, as discussed in https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Order.20dual.20tactic/near/560952736 It is not obvious where this tag should go, since `Set` and `to_dual` don't import eachother. A natural place seems to be the place where the `sInf`/`sSup` notations are declared for `Set`, since this is where one could start trying to use `to_dual` for translating the order on `Set`. ESTIMATED CHANGES Modified Mathlib/Order/SetNotation.lean 2025-12-18 23:55:10 29f37a6 chore(Order/WithBot): add to_dual attributes (part 2) (#32626) Some design considerations: - The `≤` and `<` instances on `WithBot` and `WithTop` are were deliberately made def-eq. I've not changed this, which results in some awkward code before we develop the API to hide this. - There was some major disparity in the `unbot` and `untop` API. I had to add a bunch of lemmas to amend it. - I reordered a few theorems to avoid having to constantly open and close the `WithBot` namespace. ESTIMATED CHANGES Modified Mathlib/Algebra/Order/GroupWithZero/Canonical.lean Modified Mathlib/Order/BoundedOrder/Basic.lean Modified Mathlib/Order/Defs/PartialOrder.lean + def PartialOrder.mk' + def Preorder.mk' Modified Mathlib/Order/WithBot.lean +/- theorem WithBot.bot_lt_coe +/- theorem WithBot.coe_le_coe +/- theorem WithBot.coe_lt_coe +/- theorem WithBot.le_def + theorem WithBot.le_unbotA + theorem WithBot.le_unbotA_iff + theorem WithBot.le_unbotD + theorem WithBot.le_unbotD_iff +/- theorem WithBot.le_unbot_iff +/- theorem WithBot.lt_def + theorem WithBot.lt_unbotA_iff + theorem WithBot.lt_unbotD_iff +/- theorem WithBot.lt_unbot_iff + theorem WithBot.unbotA_le_iff + theorem WithBot.unbotA_lt_iff + theorem WithBot.unbotA_mono + theorem WithBot.unbotD_mono +/- theorem WithBot.unbot_le_iff - theorem WithBot.unbot_le_unbot + theorem WithBot.unbot_le_unbot_iff - theorem WithBot.unbot_lt_unbot + theorem WithBot.unbot_lt_unbot_iff - theorem WithTop.coe_le_coe - theorem WithTop.coe_le_iff - theorem WithTop.coe_lt_coe - theorem WithTop.coe_lt_iff - theorem WithTop.coe_lt_top - theorem WithTop.coe_top_lt - theorem WithTop.coe_untopD_le - theorem WithTop.eq_of_forall_coe_le_iff - theorem WithTop.eq_of_forall_le_coe_iff - theorem WithTop.eq_top_iff_forall_ge - theorem WithTop.eq_top_iff_forall_gt - theorem WithTop.forall_coe_le_iff_le - theorem WithTop.forall_le_coe_iff_le - theorem WithTop.le_coe - theorem WithTop.le_coe_iff + theorem WithTop.le_def' +/- theorem WithTop.le_def - theorem WithTop.le_iff_forall - theorem WithTop.le_untopA_iff - theorem WithTop.le_untopD_iff - theorem WithTop.le_untop_iff + theorem WithTop.lt_def' +/- theorem WithTop.lt_def - theorem WithTop.lt_iff_exists - theorem WithTop.lt_iff_exists_coe - theorem WithTop.lt_untopA_iff - theorem WithTop.lt_untopD_iff - theorem WithTop.lt_untop_iff - theorem WithTop.map_le_iff - theorem WithTop.not_top_le_coe - theorem WithTop.untopA_le - theorem WithTop.untopA_le_iff - theorem WithTop.untopA_lt_iff - theorem WithTop.untopA_mono - theorem WithTop.untopD_le - theorem WithTop.untopD_le_iff - theorem WithTop.untopD_lt_iff - theorem WithTop.untopD_mono - theorem WithTop.untop_le_iff - theorem WithTop.untop_lt_iff - theorem WithTop.untop_mono 2025-12-18 23:22:08 73dba97 feat(Topology/UniformSpace/Closeds): continuity of closure (#32805) ESTIMATED CHANGES Modified Mathlib/Topology/UniformSpace/Closeds.lean + theorem TopologicalSpace.Closeds.continuous_closure + theorem TopologicalSpace.Closeds.isUniformInducing_closure + theorem TopologicalSpace.Closeds.uniformContinuous_closure + theorem UniformSpace.hausdorff.continuous_closure + theorem UniformSpace.hausdorff.isUniformInducing_closure + theorem UniformSpace.hausdorff.nhds_closure + theorem UniformSpace.hausdorff.uniformContinuous_closure Modified Mathlib/Topology/UniformSpace/Defs.lean + theorem UniformSpace.closure_subset_image + theorem UniformSpace.closure_subset_preimage 2025-12-18 22:19:26 4ad6f04 feat(SimpleGraph): add `SimpleGraph.HomClass` (#32267) Inspired by [this PR review feedback.](https://github.com/leanprover-community/mathlib4/pull/30129#discussion_r2530032044) ESTIMATED CHANGES Modified Mathlib/Combinatorics/SimpleGraph/Maps.lean Modified Mathlib/Order/RelIso/Basic.lean 2025-12-18 21:53:26 493ca15 chore(RingTheory/PowerSeries/Expand): tidy up some proofs (#33057) remove `erw`, `classical`, reduce to proofs about MvPowerSeries ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/MvPolynomial/Expand.lean + theorem MvPolynomial.coeff_expand_zero - theorem MvPolynomial.expand_char +/- theorem MvPolynomial.isLocalHom_expand - theorem MvPolynomial.map_expand_pow_char - theorem MvPolynomial.of_irreducible_expand_pow Modified Mathlib/RingTheory/MvPolynomial/Basic.lean Added Mathlib/RingTheory/MvPolynomial/Expand.lean + theorem MvPolynomial.expand_char + theorem MvPolynomial.map_expand_char_pow Modified Mathlib/RingTheory/PowerSeries/Expand.lean 2025-12-18 20:02:20 857abcc feat(Arcosh): continuity, differentiability, bijectivity (#32794) We show that arcosh is continuous, differentiable, and continuously differentiable infinitely many times. We also show that cosh and arcosh are bijective, injective, and surjective. All of these, on the respective domains. ESTIMATED CHANGES Modified Mathlib/Analysis/SpecialFunctions/Arcosh.lean + theorem Real.analyticAt_arcosh + theorem Real.analyticOnNhd_arcosh + theorem Real.analyticOn_arcosh + theorem Real.analyticWithinAt_arcosh + theorem Real.arcosh_bijOn + theorem Real.arcosh_injOn + theorem Real.arcosh_surjOn + theorem Real.contDiffAt_arcosh + theorem Real.contDiffOn_arcosh + theorem Real.continuousOn_arcosh + def Real.coshOpenPartialHomeomorph + theorem Real.cosh_bijOn + theorem Real.cosh_injOn + theorem Real.cosh_surjOn + theorem Real.differentiableAt_arcosh + theorem Real.differentiableOn_arcosh + theorem Real.hasDerivAt_arcosh + theorem Real.hasStrictDerivAt_arcosh Modified Mathlib/Analysis/SpecialFunctions/Arsinh.lean + theorem Real.analyticAt_arsinh + theorem Real.analyticOnNhd_arsinh + theorem Real.analyticOn_arsinh + theorem Real.analyticWithinAt_arsinh +/- theorem Real.contDiff_arsinh 2025-12-18 18:46:19 4e096a8 feat(Order/Hom/Basic): use `to_dual` (#33036) This PR uses `to_dual` for order homomorphisms. To make this work, instances of `FunLike (α ↪o β) α β` and `FunLike (α ≃o β) α β` have to be added, to override the `RelEmbedding`/`RelIso` instances. Two declarations in other files were given a `to_dual existing` to make this work. These can be turned into `to_dual` in future PRs. The theorems about `Disjoint`/`Codisjoint` are not tagged, because `Disjoint`/`Codisjoint` have not been tagged jet. ESTIMATED CHANGES Modified Mathlib/Order/Hom/Basic.lean - theorem OrderEmbedding.le_map_sup - theorem OrderIso.isMin_apply - theorem OrderIso.map_sup - theorem OrderIso.map_top' - theorem OrderIso.map_top - theorem le_map_inv_iff - theorem lt_map_inv_iff Modified Mathlib/Order/Lattice.lean Modified Mathlib/Order/Monotone/Basic.lean 2025-12-18 17:46:29 8c38971 doc(CategoryTheory): fix stale names (#33035) These stale names were found and fixed by Codex. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Bicategory/CatEnriched.lean Modified Mathlib/CategoryTheory/Functor/EpiMono.lean Modified Mathlib/CategoryTheory/Iso.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Equalizers.lean Modified Mathlib/CategoryTheory/Limits/Shapes/FiniteLimits.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Images.lean Modified Mathlib/CategoryTheory/Limits/Shapes/IsTerminal.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Kernels.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Products.lean Modified Mathlib/CategoryTheory/Limits/Shapes/WideEqualizers.lean Modified Mathlib/CategoryTheory/Limits/Shapes/ZeroMorphisms.lean Modified Mathlib/CategoryTheory/Limits/Shapes/ZeroObjects.lean Modified Mathlib/CategoryTheory/Localization/Construction.lean Modified Mathlib/CategoryTheory/Monoidal/Rigid/Basic.lean Modified Mathlib/CategoryTheory/MorphismProperty/Composition.lean Modified Mathlib/CategoryTheory/Thin.lean 2025-12-18 16:52:24 c31cde0 chore(Order/Iterate): avoid `to_dual existing` (#32862) This PR adds a few uses of `to_dual`. Unfortunately many declarations cannot yet really be handled by `to_dual` because `Monotone` isn't supported yet. ESTIMATED CHANGES Modified Mathlib/Order/Iterate.lean - theorem Monotone.iterate_comp_le_of_le - theorem Monotone.le_iterate_of_le 2025-12-18 16:09:26 b2d2732 chore(Algebra/Order): deduplicate material on ordered algebras (#32937) ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Algebra.lean + theorem algebraMap_le_algebraMap + theorem algebraMap_lt_algebraMap + theorem algebraMap_mono - theorem algebraMap_monotone + theorem algebraMap_nonneg + theorem algebraMap_pos + theorem algebraMap_strictMono Modified Mathlib/Algebra/Order/Module/Algebra.lean - theorem algebraMap_le_algebraMap - theorem algebraMap_lt_algebraMap - theorem algebraMap_mono - theorem algebraMap_nonneg - theorem algebraMap_pos - theorem algebraMap_strictMono Modified Mathlib/LinearAlgebra/Ray.lean 2025-12-18 15:53:48 f7aa33a chore: skip running maintainer merge workflow for most comments (#33042) Currently the [maintainer merge](https://github.com/leanprover-community/mathlib4/actions/workflows/maintainer_merge.yml) workflow runs on every comment / PR review on mathlib4. We can skip most of these since most of those comments / reviews don't even contain the string "maintainer merge" or "maintainer delegate". (This is a conservative check -- the more accurate regex in the bash script (see the definition of `m_or_d`) is untouched.) ESTIMATED CHANGES Modified .github/workflows/maintainer_merge.yml 2025-12-18 15:53:45 6b77fea doc(NumberTheory.Chebyshev): fix typos (#33041) ESTIMATED CHANGES Modified Mathlib/NumberTheory/Chebyshev.lean 2025-12-18 14:55:53 13210e1 fix(Counterexamples): fix doc string formatting (#33024) Missed a `$` which caused broken Tex ESTIMATED CHANGES Modified Counterexamples/NowhereDifferentiable.lean 2025-12-18 14:55:50 dbfea05 feat: isometric equivalences of `WithLp` products (#32857) This PR adds several equivalences of type `IsometryEquiv` and `LinearIsometryEquiv` for `WithLp p (_ × _)`, including commutativity, associativity and identity. ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Prod.lean Modified Mathlib/Analysis/Normed/Lp/ProdLp.lean + theorem Isometry.withLpProdMap + theorem IsometryEquiv.coe_withLpProdUnique + theorem IsometryEquiv.coe_withLpUniqueProd + def IsometryEquiv.withLpProdAssoc + def IsometryEquiv.withLpProdComm + theorem IsometryEquiv.withLpProdComm_apply + theorem IsometryEquiv.withLpProdComm_symm + def IsometryEquiv.withLpProdCongr + def IsometryEquiv.withLpProdUnique + def IsometryEquiv.withLpUniqueProd + def LinearIsometry.withLpProdCongr + def LinearIsometry.withLpProdMap + theorem LinearIsometryEquiv.coe_withLpProdUnique + theorem LinearIsometryEquiv.coe_withLpUniqueProd + def LinearIsometryEquiv.withLpProdAssoc + def LinearIsometryEquiv.withLpProdComm + theorem LinearIsometryEquiv.withLpProdComm_apply + theorem LinearIsometryEquiv.withLpProdComm_symm + def LinearIsometryEquiv.withLpProdUnique + def LinearIsometryEquiv.withLpUniqueProd Modified Mathlib/Topology/MetricSpace/Isometry.lean + theorem IsometryEquiv.coe_symm_toEquiv 2025-12-18 14:20:44 d0c8a7d chore(Measure/Doubling): reduce imports (#33030) ... by rewriting a proof ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Measure/Doubling.lean + theorem IsUnifLocDoublingMeasure.eventually_measure_le_doublingConstant_mul - theorem IsUnifLocDoublingMeasure.exists_measure_closedBall_le_mul' Modified Mathlib/NumberTheory/NumberField/Discriminant/Basic.lean 2025-12-18 14:20:42 5233f83 feat(Topology): Completely Regular Space iff Uniformizable (#32080) This PR continues the work from #24096. Original PR: https://github.com/leanprover-community/mathlib4/pull/24096 ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Data/Rel.lean Modified Mathlib/Topology/UniformSpace/Basic.lean + theorem closure_ball_subset Added Mathlib/Topology/UniformSpace/Uniformizable.lean + def IsThickening + theorem urysohns_main 2025-12-18 13:14:19 a2089ae refactor(CategoryTheory): make morphisms in full subcategories a 1-field structure (#26446) This PR refactors the definition of morphisms in full subcategories (and induced categories), by making them a 1-field structure. This prevents certain defeq abuse, and improves automation. (The only issue is that this adds an extra layer: `f` sometimes becomes `f.hom`, etc.) (It would make sense to redefine `CommGrp/Grp/CommMon` as full subcategories of `Mon`, rather than defining `CommGrp` by applying `InducedCategory` twice, which adds one unnecessary layer of `.hom`, but no attempt was made to change this in this PR.) ESTIMATED CHANGES Modified Mathlib/Algebra/Category/CommAlgCat/FiniteType.lean Modified Mathlib/Algebra/Category/FGModuleCat/Basic.lean - theorem FGModuleCat.hom_comp +/- theorem FGModuleCat.hom_ext + theorem FGModuleCat.hom_hom_comp + theorem FGModuleCat.hom_hom_id - theorem FGModuleCat.hom_id +/- theorem FGModuleCat.ihom_obj Modified Mathlib/Algebra/Category/FGModuleCat/EssentiallySmall.lean Modified Mathlib/Algebra/Category/Grp/FiniteGrp.lean Modified Mathlib/Algebra/Category/Grp/LeftExactFunctor.lean Modified Mathlib/Algebra/Category/ModuleCat/Tannaka.lean Modified Mathlib/Algebra/Homology/LocalCohomology.lean Modified Mathlib/AlgebraicGeometry/AffineScheme.lean Modified Mathlib/AlgebraicGeometry/Cover/Open.lean +/- def AlgebraicGeometry.Scheme.affineCover Modified Mathlib/AlgebraicGeometry/GammaSpecAdjunction.lean +/- def AlgebraicGeometry.LocallyRingedSpace.toΓSpec +/- def AlgebraicGeometry.LocallyRingedSpace.toΓSpecSheafedSpace Modified Mathlib/AlgebraicGeometry/Gluing.lean Modified Mathlib/AlgebraicGeometry/OpenImmersion.lean Modified Mathlib/AlgebraicGeometry/Scheme.lean Modified Mathlib/AlgebraicGeometry/Spec.lean Modified Mathlib/AlgebraicTopology/SimplexCategory/Basic.lean Modified Mathlib/AlgebraicTopology/SimplexCategory/Defs.lean +/- theorem SimplexCategory.Truncated.Hom.ext + theorem SimplexCategory.Truncated.Hom.tr_comp' +/- def SimplexCategory.Truncated.incl - def SimplexCategory.Truncated.inclusion Modified Mathlib/AlgebraicTopology/SimplexCategory/MorphismProperty.lean Modified Mathlib/AlgebraicTopology/SimplexCategory/Truncated.lean +/- theorem SimplexCategory.Truncated.δ₂_one_eq_const +/- theorem SimplexCategory.Truncated.δ₂_zero_eq_const Modified Mathlib/AlgebraicTopology/SimplicialNerve.lean Modified Mathlib/AlgebraicTopology/SimplicialSet/Coskeletal.lean Modified Mathlib/AlgebraicTopology/SimplicialSet/HomotopyCat.lean Modified Mathlib/AlgebraicTopology/SimplicialSet/Path.lean Modified Mathlib/CategoryTheory/Abelian/GrothendieckCategory/ColimCoyoneda.lean Modified Mathlib/CategoryTheory/Abelian/GrothendieckCategory/EnoughInjectives.lean Modified Mathlib/CategoryTheory/Abelian/GrothendieckCategory/Subobject.lean Modified Mathlib/CategoryTheory/Action/Concrete.lean Modified Mathlib/CategoryTheory/Action/Continuous.lean - def ContAction Modified Mathlib/CategoryTheory/Adjunction/PartialAdjoint.lean Modified Mathlib/CategoryTheory/Category/TwoP.lean + theorem TwoP.hom_ext Modified Mathlib/CategoryTheory/ConcreteCategory/Basic.lean Modified Mathlib/CategoryTheory/ConnectedComponents.lean Modified Mathlib/CategoryTheory/Countable.lean Modified Mathlib/CategoryTheory/Endomorphism.lean - def CategoryTheory.End.asHom + theorem CategoryTheory.End.ext - def CategoryTheory.End.of + def CategoryTheory.InducedCategory.endEquiv Modified Mathlib/CategoryTheory/EqToHom.lean + theorem CategoryTheory.InducedCategory.eqToHom_hom + theorem CategoryTheory.ObjectProperty.eqToHom_hom Modified Mathlib/CategoryTheory/EssentialImage.lean Modified Mathlib/CategoryTheory/EssentiallySmall.lean Modified Mathlib/CategoryTheory/Filtered/FinallySmall.lean Modified Mathlib/CategoryTheory/Filtered/Small.lean Modified Mathlib/CategoryTheory/FinCategory/AsType.lean Modified Mathlib/CategoryTheory/FintypeCat.lean + theorem FintypeCat.comp_hom + def FintypeCat.homMk + theorem FintypeCat.homMk_apply + theorem FintypeCat.homMk_eq_comp_iff + theorem FintypeCat.homMk_eq_id_iff + theorem FintypeCat.hom_apply +/- theorem FintypeCat.hom_ext + theorem FintypeCat.id_hom Modified Mathlib/CategoryTheory/Galois/Basic.lean Modified Mathlib/CategoryTheory/Galois/Decomposition.lean Modified Mathlib/CategoryTheory/Galois/Equivalence.lean Modified Mathlib/CategoryTheory/Galois/EssSurj.lean Modified Mathlib/CategoryTheory/Galois/Examples.lean - def CategoryTheory.FintypeCat.imageComplementIncl Modified Mathlib/CategoryTheory/Galois/GaloisObjects.lean Modified Mathlib/CategoryTheory/Galois/IsFundamentalgroup.lean Modified Mathlib/CategoryTheory/Galois/Prorepresentability.lean Modified Mathlib/CategoryTheory/Galois/Topology.lean Modified Mathlib/CategoryTheory/InducedCategory.lean + structure CategoryTheory.InducedCategory.Hom + def CategoryTheory.InducedCategory.homEquiv + def CategoryTheory.InducedCategory.homMk + theorem CategoryTheory.InducedCategory.hom_ext +/- def CategoryTheory.InducedCategory.isoMk Modified Mathlib/CategoryTheory/Limits/ExactFunctor.lean - def CategoryTheory.ExactFunctor.forget +/- theorem CategoryTheory.ExactFunctor.forget_map - def CategoryTheory.ExactFunctor - def CategoryTheory.LeftExactFunctor.forget - def CategoryTheory.LeftExactFunctor.ofExact - theorem CategoryTheory.LeftExactFunctor.ofExact_map + theorem CategoryTheory.LeftExactFunctor.ofExact_map_hom - def CategoryTheory.LeftExactFunctor - def CategoryTheory.RightExactFunctor.forget - def CategoryTheory.RightExactFunctor.ofExact - theorem CategoryTheory.RightExactFunctor.ofExact_map + theorem CategoryTheory.RightExactFunctor.ofExact_map_hom - def CategoryTheory.RightExactFunctor + def CategoryTheory.exactFunctor + theorem CategoryTheory.exactFunctor_iff + theorem CategoryTheory.exactFunctor_le_leftExactFunctor + theorem CategoryTheory.exactFunctor_le_rightExactFunctor + def CategoryTheory.leftExactFunctor + theorem CategoryTheory.leftExactFunctor_iff + def CategoryTheory.rightExactFunctor + theorem CategoryTheory.rightExactFunctor_iff Modified Mathlib/CategoryTheory/Limits/Final.lean Modified Mathlib/CategoryTheory/Limits/Indization/LocallySmall.lean Modified Mathlib/CategoryTheory/Linear/Basic.lean + def CategoryTheory.InducedCategory.homLinearEquiv Modified Mathlib/CategoryTheory/Localization/Construction.lean Modified Mathlib/CategoryTheory/Localization/LocallySmall.lean Modified Mathlib/CategoryTheory/Localization/Predicate.lean Modified Mathlib/CategoryTheory/Monoidal/Braided/Basic.lean +/- theorem CategoryTheory.LaxBraidedFunctor.hom_ext +/- theorem CategoryTheory.LaxBraidedFunctor.id_hom - theorem CategoryTheory.LaxBraidedFunctor.isoOfComponents_hom_hom_app + theorem CategoryTheory.LaxBraidedFunctor.isoOfComponents_hom_hom_hom_app - theorem CategoryTheory.LaxBraidedFunctor.isoOfComponents_inv_hom_app + theorem CategoryTheory.LaxBraidedFunctor.isoOfComponents_inv_hom_hom_app Modified Mathlib/CategoryTheory/Monoidal/Cartesian/Basic.lean +/- theorem CategoryTheory.Functor.OplaxMonoidal.EssImageSubcategory.lift_def +/- theorem CategoryTheory.Functor.OplaxMonoidal.EssImageSubcategory.toUnit_def Modified Mathlib/CategoryTheory/Monoidal/Cartesian/CommGrp_.lean Modified Mathlib/CategoryTheory/Monoidal/Cartesian/Grp_.lean - theorem CategoryTheory.Grp.Hom.hom_div + theorem CategoryTheory.Grp.Hom.hom_hom_div + theorem CategoryTheory.Grp.Hom.hom_hom_inv + theorem CategoryTheory.Grp.Hom.hom_hom_zpow - theorem CategoryTheory.Grp.Hom.hom_inv +/- theorem CategoryTheory.Grp.Hom.hom_pow - theorem CategoryTheory.Grp.Hom.hom_zpow - def CategoryTheory.Grp.homMk - theorem CategoryTheory.Grp.homMk_hom' +/- theorem CategoryTheory.Grp.hom_mul +/- theorem CategoryTheory.Grp.hom_one Modified Mathlib/CategoryTheory/Monoidal/Category.lean Modified Mathlib/CategoryTheory/Monoidal/CommComon_.lean +/- theorem CategoryTheory.CommComon.hom_ext +/- theorem CategoryTheory.CommComon.id_hom Modified Mathlib/CategoryTheory/Monoidal/CommGrp_.lean - theorem CategoryTheory.CommGrp.comp' +/- def CategoryTheory.CommGrp.forget₂CommMon +/- theorem CategoryTheory.CommGrp.forget₂Grp_map_hom +/- def CategoryTheory.CommGrp.fullyFaithfulForget₂CommMon +/- theorem CategoryTheory.CommGrp.hom_ext - theorem CategoryTheory.CommGrp.id' +/- theorem CategoryTheory.CommGrp.id_hom + theorem CategoryTheory.CommGrp.mkIso_hom_hom_hom_hom + theorem CategoryTheory.CommGrp.mkIso_inv_hom_hom_hom Modified Mathlib/CategoryTheory/Monoidal/CommMon_.lean - theorem CategoryTheory.CommMon.comp' +/- theorem CategoryTheory.CommMon.forget₂Mon_map_hom + def CategoryTheory.CommMon.homMk +/- theorem CategoryTheory.CommMon.hom_ext - theorem CategoryTheory.CommMon.id' +/- theorem CategoryTheory.CommMon.id_hom +/- def CategoryTheory.Functor.mapCommMonNatTrans Modified Mathlib/CategoryTheory/Monoidal/Grp_.lean - theorem CategoryTheory.Grp.comp_hom + theorem CategoryTheory.Grp.comp_hom_hom + def CategoryTheory.Grp.homMk'' + def CategoryTheory.Grp.homMk' + def CategoryTheory.Grp.homMk +/- theorem CategoryTheory.Grp.hom_ext +/- theorem CategoryTheory.Grp.id' - theorem CategoryTheory.Grp.id_hom + theorem CategoryTheory.Grp.id_hom_hom - theorem CategoryTheory.GrpObj.tensorObj.Grp.associator_hom_hom + theorem CategoryTheory.GrpObj.tensorObj.Grp.associator_hom_hom_hom - theorem CategoryTheory.GrpObj.tensorObj.Grp.associator_inv_hom + theorem CategoryTheory.GrpObj.tensorObj.Grp.associator_inv_hom_hom - theorem CategoryTheory.GrpObj.tensorObj.Grp.braiding_hom_hom + theorem CategoryTheory.GrpObj.tensorObj.Grp.braiding_hom_hom_hom - theorem CategoryTheory.GrpObj.tensorObj.Grp.braiding_inv_hom + theorem CategoryTheory.GrpObj.tensorObj.Grp.braiding_inv_hom_hom +/- theorem CategoryTheory.GrpObj.tensorObj.Grp.forget₂Mon_map_hom - theorem CategoryTheory.GrpObj.tensorObj.Grp.fst_hom + theorem CategoryTheory.GrpObj.tensorObj.Grp.fst_hom_hom - theorem CategoryTheory.GrpObj.tensorObj.Grp.leftUnitor_hom_hom + theorem CategoryTheory.GrpObj.tensorObj.Grp.leftUnitor_hom_hom_hom - theorem CategoryTheory.GrpObj.tensorObj.Grp.leftUnitor_inv_hom + theorem CategoryTheory.GrpObj.tensorObj.Grp.leftUnitor_inv_hom_hom +/- theorem CategoryTheory.GrpObj.tensorObj.Grp.lift_hom - theorem CategoryTheory.GrpObj.tensorObj.Grp.rightUnitor_hom_hom + theorem CategoryTheory.GrpObj.tensorObj.Grp.rightUnitor_hom_hom_hom - theorem CategoryTheory.GrpObj.tensorObj.Grp.rightUnitor_inv_hom + theorem CategoryTheory.GrpObj.tensorObj.Grp.rightUnitor_inv_hom_hom - theorem CategoryTheory.GrpObj.tensorObj.Grp.snd_hom + theorem CategoryTheory.GrpObj.tensorObj.Grp.snd_hom_hom - theorem CategoryTheory.GrpObj.tensorObj.Grp.whiskerLeft_hom + theorem CategoryTheory.GrpObj.tensorObj.Grp.whiskerLeft_hom_hom - theorem CategoryTheory.GrpObj.tensorObj.Grp.whiskerRight_hom + theorem CategoryTheory.GrpObj.tensorObj.Grp.whiskerRight_hom_hom Modified Mathlib/CategoryTheory/Monoidal/Internal/FunctorCategory.lean Modified Mathlib/CategoryTheory/Monoidal/Internal/Types/Basic.lean Modified Mathlib/CategoryTheory/Monoidal/Internal/Types/CommGrp_.lean Modified Mathlib/CategoryTheory/Monoidal/Internal/Types/Grp_.lean Modified Mathlib/CategoryTheory/Monoidal/Subcategory.lean - theorem CategoryTheory.ObjectProperty.ihom_map + theorem CategoryTheory.ObjectProperty.ihom_map_hom Modified Mathlib/CategoryTheory/MorphismProperty/IsInvertedBy.lean + theorem CategoryTheory.MorphismProperty.FunctorsInverting.comp_hom + theorem CategoryTheory.MorphismProperty.FunctorsInverting.id_hom Modified Mathlib/CategoryTheory/ObjectProperty/ColimitsOfShape.lean Modified Mathlib/CategoryTheory/ObjectProperty/Equivalence.lean Modified Mathlib/CategoryTheory/ObjectProperty/FullSubcategory.lean - theorem CategoryTheory.ObjectProperty.FullSubcategory.comp_def + theorem CategoryTheory.ObjectProperty.FullSubcategory.comp_hom - theorem CategoryTheory.ObjectProperty.FullSubcategory.id_def + theorem CategoryTheory.ObjectProperty.FullSubcategory.id_hom + def CategoryTheory.ObjectProperty.homMk + theorem CategoryTheory.ObjectProperty.hom_ext + theorem CategoryTheory.ObjectProperty.isoHom_inv_id_hom + theorem CategoryTheory.ObjectProperty.isoInv_hom_id_hom +/- def CategoryTheory.ObjectProperty.isoMk +/- theorem CategoryTheory.ObjectProperty.ι_map Modified Mathlib/CategoryTheory/ObjectProperty/LimitsOfShape.lean Modified Mathlib/CategoryTheory/Preadditive/AdditiveFunctor.lean - def CategoryTheory.AdditiveFunctor.forget - def CategoryTheory.AdditiveFunctor.ofExact - theorem CategoryTheory.AdditiveFunctor.ofExact_map + theorem CategoryTheory.AdditiveFunctor.ofExact_map_hom - def CategoryTheory.AdditiveFunctor.ofLeftExact - theorem CategoryTheory.AdditiveFunctor.ofLeftExact_map + theorem CategoryTheory.AdditiveFunctor.ofLeftExact_map_hom - def CategoryTheory.AdditiveFunctor.ofRightExact - theorem CategoryTheory.AdditiveFunctor.ofRightExact_map + theorem CategoryTheory.AdditiveFunctor.ofRightExact_map_hom - def CategoryTheory.AdditiveFunctor + def CategoryTheory.additiveFunctor + theorem CategoryTheory.additiveFunctor_iff + theorem CategoryTheory.exactFunctor_le_additiveFunctor + theorem CategoryTheory.leftExactFunctor_le_additiveFunctor + theorem CategoryTheory.rightExactFunctor_le_additiveFunctor Modified Mathlib/CategoryTheory/Preadditive/Basic.lean + def CategoryTheory.InducedCategory.homAddEquiv Modified Mathlib/CategoryTheory/Preadditive/CommGrp_.lean Modified Mathlib/CategoryTheory/Presentable/Dense.lean Modified Mathlib/CategoryTheory/Presentable/OrthogonalReflection.lean Modified Mathlib/CategoryTheory/Presentable/StrongGenerator.lean Modified Mathlib/CategoryTheory/Simple.lean Modified Mathlib/CategoryTheory/Sites/CartesianClosed.lean Modified Mathlib/CategoryTheory/Sites/Coherent/RegularSheaves.lean Modified Mathlib/CategoryTheory/Sites/EffectiveEpimorphic.lean Modified Mathlib/CategoryTheory/Sites/Sheaf.lean Modified Mathlib/CategoryTheory/Sites/SheafHom.lean Modified Mathlib/CategoryTheory/Sites/SheafOfTypes.lean Modified Mathlib/CategoryTheory/Skeletal.lean + theorem CategoryTheory.Skeleton.comp_hom Modified Mathlib/CategoryTheory/Subobject/Basic.lean + theorem CategoryTheory.MonoOver.isIso_hom_left_iff_subobjectMk_eq - theorem CategoryTheory.MonoOver.isIso_left_iff_subobjectMk_eq Modified Mathlib/CategoryTheory/Subobject/Comma.lean Modified Mathlib/CategoryTheory/Subobject/FactorThru.lean Modified Mathlib/CategoryTheory/Subobject/Lattice.lean +/- def CategoryTheory.MonoOver.leInf +/- def CategoryTheory.MonoOver.mapTop +/- def CategoryTheory.MonoOver.pullbackSelf Modified Mathlib/CategoryTheory/Subobject/MonoOver.lean - def CategoryTheory.MonoOver.forget +/- theorem CategoryTheory.MonoOver.forget_obj_hom + theorem CategoryTheory.MonoOver.isIso_iff_isIso_hom_left - theorem CategoryTheory.MonoOver.isIso_iff_isIso_left - def CategoryTheory.MonoOver.mk' - def CategoryTheory.MonoOver.mk'ArrowIso - theorem CategoryTheory.MonoOver.mk'_arrow - theorem CategoryTheory.MonoOver.mk'_coe' + def CategoryTheory.MonoOver.mk + def CategoryTheory.MonoOver.mkArrowIso + theorem CategoryTheory.MonoOver.mk_arrow + theorem CategoryTheory.MonoOver.mk_coe +/- theorem CategoryTheory.MonoOver.w - def CategoryTheory.MonoOver Modified Mathlib/CategoryTheory/Subobject/NoetherianObject.lean Modified Mathlib/CategoryTheory/Subobject/Types.lean Modified Mathlib/CategoryTheory/Subpresheaf/Subobject.lean Modified Mathlib/CategoryTheory/Subterminal.lean Modified Mathlib/CategoryTheory/Topos/Classifier.lean + theorem CategoryTheory.Classifier.SubobjectRepresentableBy.iso_inv_hom_left_comp - theorem CategoryTheory.Classifier.SubobjectRepresentableBy.iso_inv_left_comp Modified Mathlib/Condensed/Discrete/Colimit.lean Modified Mathlib/Condensed/Discrete/LocallyConstant.lean - def CompHausLike.LocallyConstant.componentHom Modified Mathlib/Condensed/Discrete/Module.lean Modified Mathlib/Condensed/Light/Functors.lean Modified Mathlib/Condensed/Light/TopCatAdjunction.lean Modified Mathlib/Condensed/TopCatAdjunction.lean Modified Mathlib/Condensed/TopComparison.lean Modified Mathlib/Geometry/Manifold/Sheaf/Smooth.lean Modified Mathlib/Geometry/RingedSpace/LocallyRingedSpace.lean - def AlgebraicGeometry.LocallyRingedSpace.Hom.Simps.toShHom +/- theorem AlgebraicGeometry.LocallyRingedSpace.Hom.ext' +/- def AlgebraicGeometry.LocallyRingedSpace.comp + theorem AlgebraicGeometry.LocallyRingedSpace.comp_toHom + def AlgebraicGeometry.LocallyRingedSpace.homMk + theorem AlgebraicGeometry.LocallyRingedSpace.id_toHom +/- theorem AlgebraicGeometry.LocallyRingedSpace.isLocalHomValStalkMap Modified Mathlib/Geometry/RingedSpace/LocallyRingedSpace/HasColimits.lean Modified Mathlib/Geometry/RingedSpace/LocallyRingedSpace/ResidueField.lean Modified Mathlib/Geometry/RingedSpace/OpenImmersion.lean +/- theorem AlgebraicGeometry.LocallyRingedSpace.IsOpenImmersion.to_iso +/- theorem AlgebraicGeometry.PresheafedSpace.IsOpenImmersion.sheafedSpace_toSheafedSpace +/- theorem AlgebraicGeometry.PresheafedSpace.IsOpenImmersion.toLocallyRingedSpaceHom_val - theorem AlgebraicGeometry.PresheafedSpace.IsOpenImmersion.toSheafedSpaceHom_base - theorem AlgebraicGeometry.PresheafedSpace.IsOpenImmersion.toSheafedSpaceHom_c + theorem AlgebraicGeometry.PresheafedSpace.IsOpenImmersion.toSheafedSpaceHom_hom_base + theorem AlgebraicGeometry.PresheafedSpace.IsOpenImmersion.toSheafedSpaceHom_hom_c +/- theorem AlgebraicGeometry.SheafedSpace.IsOpenImmersion.app_inv_app' +/- theorem AlgebraicGeometry.SheafedSpace.IsOpenImmersion.of_stalk_iso +/- theorem AlgebraicGeometry.SheafedSpace.IsOpenImmersion.sigma_ι_isOpenEmbedding +/- theorem AlgebraicGeometry.SheafedSpace.IsOpenImmersion.to_iso + theorem AlgebraicGeometry.SheafedSpace.isOpenImmersion_iff_hom Modified Mathlib/Geometry/RingedSpace/PresheafedSpace.lean Modified Mathlib/Geometry/RingedSpace/PresheafedSpace/Gluing.lean +/- theorem AlgebraicGeometry.SheafedSpace.GlueData.ι_jointly_surjective Modified Mathlib/Geometry/RingedSpace/SheafedSpace.lean - theorem AlgebraicGeometry.SheafedSpace.comp_base - theorem AlgebraicGeometry.SheafedSpace.comp_c_app' - theorem AlgebraicGeometry.SheafedSpace.comp_c_app + theorem AlgebraicGeometry.SheafedSpace.comp_hom_base + theorem AlgebraicGeometry.SheafedSpace.comp_hom_c_app' + theorem AlgebraicGeometry.SheafedSpace.comp_hom_c_app - theorem AlgebraicGeometry.SheafedSpace.congr_app + theorem AlgebraicGeometry.SheafedSpace.congr_hom_app +/- theorem AlgebraicGeometry.SheafedSpace.ext + def AlgebraicGeometry.SheafedSpace.fullyFaithfulForgetToPresheafedSpace + theorem AlgebraicGeometry.SheafedSpace.fullyFaithfulForgetToPresheafedSpace_preimage_hom +/- theorem AlgebraicGeometry.SheafedSpace.hom_stalk_ext - theorem AlgebraicGeometry.SheafedSpace.id_base - theorem AlgebraicGeometry.SheafedSpace.id_c - theorem AlgebraicGeometry.SheafedSpace.id_c_app + theorem AlgebraicGeometry.SheafedSpace.id_hom + theorem AlgebraicGeometry.SheafedSpace.id_hom_base + theorem AlgebraicGeometry.SheafedSpace.id_hom_c + theorem AlgebraicGeometry.SheafedSpace.id_hom_c_app +/- theorem AlgebraicGeometry.SheafedSpace.Γ_map +/- theorem AlgebraicGeometry.SheafedSpace.Γ_map_op Modified Mathlib/Order/Category/FinBddDistLat.lean Modified Mathlib/Order/Category/FinBoolAlg.lean Modified Mathlib/Order/Category/FinPartOrd.lean - theorem FinPartOrd.hom_comp +/- theorem FinPartOrd.hom_ext + theorem FinPartOrd.hom_hom_comp + theorem FinPartOrd.hom_hom_id + theorem FinPartOrd.hom_hom_ofHom - theorem FinPartOrd.hom_id - theorem FinPartOrd.hom_ofHom - theorem FinPartOrd.ofHom_hom + theorem FinPartOrd.ofHom_hom_hom Modified Mathlib/Order/Category/NonemptyFinLinOrd.lean - theorem NonemptyFinLinOrd.hom_comp +/- theorem NonemptyFinLinOrd.hom_ext + theorem NonemptyFinLinOrd.hom_hom_comp + theorem NonemptyFinLinOrd.hom_hom_id + theorem NonemptyFinLinOrd.hom_hom_ofHom - theorem NonemptyFinLinOrd.hom_id - theorem NonemptyFinLinOrd.hom_ofHom Modified Mathlib/RepresentationTheory/FDRep.lean - theorem FDRep.hom_action_ρ + theorem FDRep.hom_hom_action_ρ Modified Mathlib/RepresentationTheory/Tannaka.lean Modified Mathlib/Topology/Algebra/Category/ProfiniteGrp/Basic.lean Modified Mathlib/Topology/Category/CompHaus/Basic.lean Modified Mathlib/Topology/Category/CompHaus/Projective.lean Modified Mathlib/Topology/Category/CompHausLike/Basic.lean +/- def CompHausLike.fullyFaithfulToCompHausLike Modified Mathlib/Topology/Category/CompHausLike/Cartesian.lean Modified Mathlib/Topology/Category/CompHausLike/EffectiveEpi.lean Modified Mathlib/Topology/Category/CompHausLike/Limits.lean Modified Mathlib/Topology/Category/CompactlyGenerated.lean Modified Mathlib/Topology/Category/Compactum.lean Modified Mathlib/Topology/Category/DeltaGenerated.lean Modified Mathlib/Topology/Category/FinTopCat.lean Modified Mathlib/Topology/Category/LightProfinite/Basic.lean Modified Mathlib/Topology/Category/Profinite/AsLimit.lean Modified Mathlib/Topology/Category/Profinite/Basic.lean Modified Mathlib/Topology/Category/Profinite/CofilteredLimit.lean Modified Mathlib/Topology/Category/Profinite/Extend.lean Modified Mathlib/Topology/Category/Profinite/Nobeling/Basic.lean Modified Mathlib/Topology/Category/Profinite/Product.lean Modified Mathlib/Topology/Category/Profinite/Projective.lean Modified Mathlib/Topology/Category/Sequential.lean Modified Mathlib/Topology/Category/Stonean/Basic.lean Modified Mathlib/Topology/Category/Stonean/Limits.lean Modified Mathlib/Topology/Category/TopCat/OpenNhds.lean +/- def TopologicalSpace.OpenNhds Modified Mathlib/Topology/Category/UniformSpace.lean - theorem UniformSpaceCat.extension_comp_coe + theorem UniformSpaceCat.extension_comp_hom Modified Mathlib/Topology/Order/Category/AlexDisc.lean Modified Mathlib/Topology/Sheaves/Alexandrov.lean Modified Mathlib/Topology/Sheaves/SheafCondition/OpensLeCover.lean Modified Mathlib/Topology/Sheaves/SheafCondition/PairwiseIntersections.lean Modified Mathlib/Topology/Sheaves/Sheafify.lean 2025-12-18 12:24:05 25ce633 feat: a collection of roots in a root system is linearly independent iff the same is true of the corresponding set of coroots (#33013) ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/RootSystem/Finite/Nondegenerate.lean + def RootPairing.PolarizationEquiv + theorem RootPairing.linearIndepOn_coroot_iff + theorem RootPairing.polarizationEquiv_apply + theorem RootPairing.polarizationEquiv_toLinearMap 2025-12-18 10:51:35 5bd1b3b chore: golf proofs `Basis.piTensorProduct_repr_tprod_apply` and `PiTensorProduct.dualDistrib_apply` (#33023) See [Zulip](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/PiTensorProduct.20basis.20Finite.2FFintype.20switch.20up/near/564365625) ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/PiTensorProduct/Basis.lean Modified Mathlib/LinearAlgebra/PiTensorProduct/Dual.lean 2025-12-18 10:09:07 32e3f3f chore(LinearAlgebra): fix whitespace (#32952) Extracted from https://github.com/leanprover-community/mathlib4/pull/30658. Found by extending the commandStart linter to proof bodies. ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/AffineSpace/AffineSubspace/Defs.lean Modified Mathlib/LinearAlgebra/AffineSpace/FiniteDimensional.lean Modified Mathlib/LinearAlgebra/AffineSpace/Midpoint.lean Modified Mathlib/LinearAlgebra/AffineSpace/Ordered.lean +/- theorem right_lt_lineMap_iff_one_lt Modified Mathlib/LinearAlgebra/AffineSpace/Simplex/Basic.lean Modified Mathlib/LinearAlgebra/Charpoly/Basic.lean Modified Mathlib/LinearAlgebra/Complex/FiniteDimensional.lean Modified Mathlib/LinearAlgebra/DFinsupp.lean Modified Mathlib/LinearAlgebra/Determinant.lean Modified Mathlib/LinearAlgebra/Dimension/ErdosKaplansky.lean Modified Mathlib/LinearAlgebra/Dimension/RankNullity.lean Modified Mathlib/LinearAlgebra/DirectSum/TensorProduct.lean Modified Mathlib/LinearAlgebra/Dual/Lemmas.lean Modified Mathlib/LinearAlgebra/ExteriorPower/Basic.lean Modified Mathlib/LinearAlgebra/FreeAlgebra.lean Modified Mathlib/LinearAlgebra/FreeModule/PID.lean Modified Mathlib/LinearAlgebra/LinearIndependent/Defs.lean Modified Mathlib/LinearAlgebra/LinearIndependent/Lemmas.lean Modified Mathlib/LinearAlgebra/Matrix/BilinearForm.lean Modified Mathlib/LinearAlgebra/Matrix/Charpoly/Basic.lean Modified Mathlib/LinearAlgebra/Matrix/GeneralLinearGroup/FinTwo.lean Modified Mathlib/LinearAlgebra/Matrix/PosDef.lean Modified Mathlib/LinearAlgebra/Matrix/SesquilinearForm.lean Modified Mathlib/LinearAlgebra/Matrix/Vec.lean Modified Mathlib/LinearAlgebra/Multilinear/Curry.lean Modified Mathlib/LinearAlgebra/PiTensorProduct.lean Modified Mathlib/LinearAlgebra/QuadraticForm/Basic.lean Modified Mathlib/LinearAlgebra/Ray.lean Modified Mathlib/LinearAlgebra/Reflection.lean Modified Mathlib/LinearAlgebra/RootSystem/Basic.lean Modified Mathlib/LinearAlgebra/RootSystem/GeckConstruction/Lemmas.lean Modified Mathlib/LinearAlgebra/RootSystem/GeckConstruction/Relations.lean Modified Mathlib/LinearAlgebra/RootSystem/Irreducible.lean Modified Mathlib/LinearAlgebra/RootSystem/Reduced.lean Modified Mathlib/LinearAlgebra/SModEq/Basic.lean +/- theorem SModEq.neg Modified Mathlib/LinearAlgebra/SpecialLinearGroup.lean +/- theorem SpecialLinearGroup.coe_div +/- theorem SpecialLinearGroup.coe_mul Modified Mathlib/LinearAlgebra/TensorProduct/DirectLimit.lean Modified Mathlib/LinearAlgebra/TensorProduct/Quotient.lean Modified Mathlib/LinearAlgebra/TensorProduct/RightExactness.lean Modified Mathlib/LinearAlgebra/TensorProduct/Tower.lean Modified Mathlib/LinearAlgebra/Trace.lean 2025-12-18 09:28:07 45f9a29 feat(SpecialFunctions/Artanh): basic definition and partial equivalence (#32696) Definition of `artanh`, and proof that it is an inverse of `tanh`. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Analysis/Complex/Trigonometric.lean + theorem Real.abs_tanh_lt_one + theorem Real.neg_one_lt_tanh + theorem Real.tanh_lt_one + theorem Real.tanh_sq_lt_one Added Mathlib/Analysis/SpecialFunctions/Artanh.lean + def Real.artanh + theorem Real.artanh_bijOn + theorem Real.artanh_eq_half_log + theorem Real.artanh_eq_zero_iff + theorem Real.artanh_injOn + theorem Real.artanh_le_artanh + theorem Real.artanh_le_artanh_iff + theorem Real.artanh_lt_artanh + theorem Real.artanh_lt_artanh_iff + theorem Real.artanh_neg + theorem Real.artanh_nonneg + theorem Real.artanh_nonpos + theorem Real.artanh_pos + theorem Real.artanh_surjOn + theorem Real.artanh_tanh + theorem Real.artanh_zero + theorem Real.cosh_artanh + theorem Real.exp_artanh + theorem Real.sinh_artanh + theorem Real.strictMonoOn_artanh + theorem Real.strictMonoOn_one_add_div_one_sub + def Real.tanhPartialEquiv + theorem Real.tanh_artanh + theorem Real.tanh_bijOn + theorem Real.tanh_injective + theorem Real.tanh_surjOn Modified Mathlib/Data/Real/Sqrt.lean + theorem Real.strictMonoOn_sqrt 2025-12-18 09:28:05 1dad969 feat(Algebra/Category/ModuleCat/Sheaf/Quasicoherent): construction of `Presentation` (#32437) We construct presentation of sheaf of module by sequence and add `Presentation.map`. This contribution was created as part of the Heidelberg Lean workshop "Formalising algebraic geometry" in November 2025. ESTIMATED CHANGES Modified Mathlib/Algebra/Category/ModuleCat/Sheaf/Free.lean + theorem SheafOfModules.map_ιFree_mapFree_hom + theorem SheafOfModules.ιFree_mapFree_inv Modified Mathlib/Algebra/Category/ModuleCat/Sheaf/Quasicoherent.lean + def SheafOfModules.Presentation.isColimit + def SheafOfModules.Presentation.map + def SheafOfModules.Presentation.mapGenerators + def SheafOfModules.Presentation.mapRelations + theorem SheafOfModules.Presentation.mapRelations_mapGenerators + theorem SheafOfModules.Presentation.map_π_eq + def SheafOfModules.generatorsOfIsCokernelFree + theorem SheafOfModules.generatorsOfIsCokernelFree_π + def SheafOfModules.presentationOfIsCokernelFree + def SheafOfModules.relationsOfIsCokernelFree Modified Mathlib/CategoryTheory/Limits/Shapes/Equalizers.lean + def CategoryTheory.Limits.parallelPairHomMk + def CategoryTheory.Limits.parallelPairIso + def CategoryTheory.Limits.parallelPairIsoMk 2025-12-18 09:08:15 8662237 feat(RingTheory/MvPowerSeries): some APIs about `expand` (#33005) I define an algebraic homomorphism for (mv) power series that expanding a (multi) variate power series by a non-zero factor of `p` and add some theorems following the (mv) Polynomial as inspiration. Also, I add some missing theorems in the file `MvPolynomial.Expand` compared to `Polynomial.Expand`. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/MvPolynomial/Expand.lean +/- theorem MvPolynomial.aeval_comp_expand + theorem MvPolynomial.coe_expand +/- theorem MvPolynomial.coeff_expand_of_not_dvd +/- theorem MvPolynomial.coeff_expand_smul +/- theorem MvPolynomial.eval_expand +/- theorem MvPolynomial.eval₂Hom_comp_expand +/- theorem MvPolynomial.eval₂_expand +/- theorem MvPolynomial.expand_C +/- theorem MvPolynomial.expand_X +/- theorem MvPolynomial.expand_bind₁ + theorem MvPolynomial.expand_char + theorem MvPolynomial.expand_eq_C + theorem MvPolynomial.expand_eq_zero + theorem MvPolynomial.expand_inj + theorem MvPolynomial.expand_injective +/- theorem MvPolynomial.expand_monomial +/- theorem MvPolynomial.expand_mul +/- theorem MvPolynomial.expand_mul_eq_comp + theorem MvPolynomial.expand_ne_zero +/- theorem MvPolynomial.expand_zero_apply + theorem MvPolynomial.isLocalHom_expand +/- theorem MvPolynomial.map_expand + theorem MvPolynomial.map_expand_pow_char + theorem MvPolynomial.of_irreducible_expand + theorem MvPolynomial.of_irreducible_expand_pow +/- theorem MvPolynomial.rename_comp_expand +/- theorem MvPolynomial.rename_expand +/- theorem MvPolynomial.support_expand +/- theorem MvPolynomial.support_expand_subset + theorem MvPolynomial.totalDegree_expand Modified Mathlib/RingTheory/MvPolynomial/Basic.lean Modified Mathlib/RingTheory/MvPowerSeries/Basic.lean + theorem MvPowerSeries.monomial_eq' + theorem MvPowerSeries.monomial_smul_eq Modified Mathlib/RingTheory/MvPowerSeries/Evaluation.lean + theorem MvPowerSeries.HasEval.pow Added Mathlib/RingTheory/MvPowerSeries/Expand.lean + theorem MvPowerSeries.HasSubst.expand + theorem MvPowerSeries.coeff_expand_of_not_dvd + theorem MvPowerSeries.coeff_expand_smul + theorem MvPowerSeries.expand_C + theorem MvPowerSeries.expand_X + theorem MvPowerSeries.expand_comp_substAlgHom + theorem MvPowerSeries.expand_monomial + theorem MvPowerSeries.expand_mul + theorem MvPowerSeries.expand_mul_eq_comp + theorem MvPowerSeries.expand_one + theorem MvPowerSeries.expand_one_apply + theorem MvPowerSeries.expand_substAlgHom + theorem MvPowerSeries.map_expand + theorem MvPowerSeries.support_expand + theorem MvPowerSeries.support_expand_subset Modified Mathlib/RingTheory/MvPowerSeries/Substitution.lean + theorem MvPowerSeries.map_subst Added Mathlib/RingTheory/PowerSeries/Expand.lean + theorem PowerSeries.coeff_expand_mul + theorem PowerSeries.coeff_expand_of_not_dvd + theorem PowerSeries.expand_C + theorem PowerSeries.expand_X + theorem PowerSeries.expand_apply + theorem PowerSeries.expand_monomial + theorem PowerSeries.expand_mul + theorem PowerSeries.expand_mul_eq_comp + theorem PowerSeries.expand_one + theorem PowerSeries.expand_one_apply + theorem PowerSeries.map_expand + theorem PowerSeries.support_expand + theorem PowerSeries.support_expand_subset Modified Mathlib/RingTheory/PowerSeries/Substitution.lean + theorem PowerSeries.map_subst 2025-12-18 07:31:16 422a9f1 chore(Algebra/Module): make select `Module` assumptions (#32435) This solves a thorny issue that we have when working with homological algebra: an element `X : ModuleCat ℤ` by construction contain the data of two (propeq) `Module ℤ X` instances. Instead of fighting typeclasses at the point of use, it is enough to make the `Module ℤ X` assumptions that can be inferred from other arguments actually be inferred by unification, rather than filled in with typeclass search. This PR does precisely that for the handful of definitions that are particularly problematic for the purpose of CFT. This is not unlike the status of `MeasurableSpace` in the measure theory library, and in fact there already existed a library note explaining this design decision, but it didn't cover that use case, so I expanded it. From ClassFieldTheory ESTIMATED CHANGES Modified Mathlib/Algebra/HierarchyDesign.lean Modified Mathlib/Algebra/Module/Equiv/Basic.lean +/- theorem AddEquiv.coe_symm_toIntLinearEquiv +/- theorem AddEquiv.coe_toIntLinearEquiv +/- def AddEquiv.toIntLinearEquiv +/- theorem AddEquiv.toIntLinearEquiv_symm Modified Mathlib/Algebra/Module/Equiv/Defs.lean +/- def LinearEquiv.toEquiv +/- theorem LinearEquiv.toEquiv_injective Modified Mathlib/Algebra/Module/LinearMap/Defs.lean +/- def LinearMap.toAddMonoidHom +/- theorem LinearMap.toAddMonoidHom_coe 2025-12-18 07:31:15 524aa25 chore: deprecate `smooth` variants of `contMDiff` results (#31326) ESTIMATED CHANGES Modified Mathlib/Analysis/Calculus/BumpFunction/FiniteDimension.lean + theorem IsOpen.exists_contDiff_support_eq - theorem IsOpen.exists_smooth_support_eq + theorem exists_contDiff_tsupport_subset - theorem exists_smooth_tsupport_subset Modified Mathlib/Analysis/Distribution/AEEqOfIntegralContDiff.lean + theorem IsOpen.ae_eq_zero_of_integral_contMDiff_smul_eq_zero' + theorem IsOpen.ae_eq_zero_of_integral_contMDiff_smul_eq_zero - theorem IsOpen.ae_eq_zero_of_integral_smooth_smul_eq_zero + theorem ae_eq_of_integral_contMDiff_smul_eq - theorem ae_eq_of_integral_smooth_smul_eq + theorem ae_eq_zero_of_integral_contMDiff_smul_eq_zero - theorem ae_eq_zero_of_integral_smooth_smul_eq_zero Modified Mathlib/Geometry/Manifold/IsManifold/Basic.lean Modified Mathlib/Geometry/Manifold/PartitionOfUnity.lean + theorem Emetric.exists_contMDiffMap_forall_closedBall_subset - theorem Emetric.exists_smooth_forall_closedBall_subset + theorem IsOpen.exists_contMDiff_support_eq + theorem IsOpen.exists_contMDiff_support_eq_aux - theorem IsOpen.exists_msmooth_support_eq - theorem IsOpen.exists_msmooth_support_eq_aux + theorem Metric.exists_contMDiffMap_forall_closedBall_subset - theorem Metric.exists_smooth_forall_closedBall_subset + theorem exists_contMDiffMap_forall_mem_convex_of_local + theorem exists_contMDiffMap_forall_mem_convex_of_local_const + theorem exists_contMDiffMap_one_nhds_of_subset_interior + theorem exists_contMDiffMap_zero_one_nhds_of_isClosed + theorem exists_contMDiffMap_zero_one_of_isClosed - theorem exists_contMDiffOn_forall_mem_convex_of_local - theorem exists_contMDiffOn_section_forall_mem_convex_of_local + theorem exists_contMDiffSection_forall_mem_convex_of_local + theorem exists_contMDiff_support_eq_eq_one_iff + theorem exists_contMDiff_zero_iff_one_iff_of_isClosed - theorem exists_msmooth_support_eq_eq_one_iff - theorem exists_msmooth_zero_iff_one_iff_of_isClosed - theorem exists_smooth_forall_mem_convex_of_local - theorem exists_smooth_forall_mem_convex_of_local_const - theorem exists_smooth_one_nhds_of_subset_interior - theorem exists_smooth_section_forall_mem_convex_of_local - theorem exists_smooth_zero_one_nhds_of_isClosed - theorem exists_smooth_zero_one_of_isClosed Modified Mathlib/Geometry/Manifold/SmoothApprox.lean 2025-12-18 06:57:05 11d700a feat(Topology/Maps): add `IsClosedEmbedding.of_comp` (#32808) ESTIMATED CHANGES Modified Mathlib/Topology/Maps/Basic.lean 2025-12-18 05:49:05 2622787 feat(Data/Set/Countable): add lemma (#32975) If f : X -> Y has countable fibres and Y is countable, X is countable. ESTIMATED CHANGES Modified Mathlib/Data/Set/Countable.lean + theorem Set.Countable.of_preimage_singleton 2025-12-18 04:36:11 dfccc70 fix(Linter): deprecated module linter now fires for public/meta imports (#32422) This PR fixes the deprecated module linter to recognize all import variants from the new module system (`public import`, `meta import`, `import all`, etc.). Previously, `getImportIds` used a syntax pattern that only matched plain `import $n`, missing the optional modifiers. Additionally: - The duplicate import linter now considers modifiers, so `public import Foo` and `import all Foo` are correctly treated as distinct imports - Added exemptions for `Mathlib.lean` (auto-generated) and `Mathlib/Tactic` (may need deprecated imports for tactics to work) - Fixed deprecated imports in `Mathlib.Geometry.Euclidean.Angle.Unoriented` files (`Mathlib.Analysis.NormedSpace.Normalize` → `Mathlib.Analysis.Normed.Module.Normalize`) Reported on Zulip: https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Mathlib.20has.20moved.20to.20the.20new.20module.20system/near/561825752 🤖 Prepared with Claude Code ESTIMATED CHANGES Modified Mathlib/Geometry/Euclidean/Angle/Unoriented/Basic.lean Modified Mathlib/Geometry/Euclidean/Angle/Unoriented/TriangleInequality.lean Modified Mathlib/RingTheory/Polynomial/Resultant/Basic.lean Modified Mathlib/Tactic/Linter/DeprecatedModule.lean Modified Mathlib/Tactic/Linter/Header.lean + def Mathlib.Linter.Style.header.importInfo + def Mathlib.Linter.getImports Added MathlibTest/DeprecatedModuleAllTest.lean Added MathlibTest/DeprecatedModuleMetaTest.lean Added MathlibTest/DeprecatedModuleNew.lean Added MathlibTest/DeprecatedModulePublicMetaTest.lean Added MathlibTest/DeprecatedModulePublicTest.lean 2025-12-18 02:43:27 16dc83e feat(Topology): prove there exists an embedding of separable metric spaces in the hilbert cube (#30851) ESTIMATED CHANGES Modified Mathlib.lean Deleted Mathlib/Topology/Compactness/HilbertCubeEmbedding.lean - theorem exists_closed_embedding_to_hilbert_cube Modified Mathlib/Topology/MetricSpace/HausdorffAlexandroff.lean Modified Mathlib/Topology/MetricSpace/PiNat.lean + theorem Metric.PiNatEmbed.continuous_distDenseSeq + theorem Metric.PiNatEmbed.continuous_distDenseSeq_inv + theorem Metric.PiNatEmbed.exists_embedding_to_hilbert_cube + theorem Metric.PiNatEmbed.injective_distDenseSeq + theorem Metric.PiNatEmbed.separation 2025-12-18 01:35:09 4e8ff4a chore: update Mathlib dependencies 2025-12-18 (#33019) This PR updates the Mathlib dependencies. ESTIMATED CHANGES Modified lake-manifest.json 2025-12-17 21:56:13 0a79887 chore(misc): fix whitespace (#33004) Found by extending the commandStart linter to proof bodies. ESTIMATED CHANGES Modified Mathlib/Condensed/Basic.lean Modified Mathlib/Condensed/Functors.lean Modified Mathlib/Condensed/Light/TopCatAdjunction.lean Modified Mathlib/Condensed/TopComparison.lean Modified Mathlib/Deprecated/Sort.lean +/- theorem List.Sorted.filter +/- theorem List.sorted_singleton Modified Mathlib/Dynamics/Ergodic/Conservative.lean Modified Mathlib/Dynamics/Ergodic/MeasurePreserving.lean Modified Mathlib/Dynamics/PeriodicPts/Defs.lean Modified Mathlib/Dynamics/PeriodicPts/Lemmas.lean Modified Mathlib/Probability/ConditionalProbability.lean +/- theorem ProbabilityTheory.cond_apply' +/- theorem ProbabilityTheory.cond_apply_self Modified Mathlib/SetTheory/Cardinal/Basic.lean Modified Mathlib/SetTheory/Cardinal/Cofinality.lean Modified Mathlib/SetTheory/Cardinal/CountableCover.lean Modified Mathlib/SetTheory/Cardinal/Subfield.lean Modified Mathlib/SetTheory/Cardinal/ToNat.lean Modified Mathlib/SetTheory/Lists.lean Modified Mathlib/SetTheory/Ordinal/Basic.lean 2025-12-17 21:56:07 63ef469 chore: update Mathlib dependencies 2025-12-16 (#32969) This PR updates the Mathlib dependencies. ESTIMATED CHANGES Modified lake-manifest.json 2025-12-17 21:56:05 419405a chore(Topology): fix whitespace (#32963) Found by extending the commandStart linter to proof bodies. ESTIMATED CHANGES Modified Mathlib/Topology/Algebra/Algebra.lean +/- theorem ContinuousAlgHom.coe_id' +/- theorem ContinuousAlgHom.coe_id +/- theorem ContinuousAlgHom.coe_inj Modified Mathlib/Topology/Algebra/AsymptoticCone.lean Modified Mathlib/Topology/Algebra/Category/ProfiniteGrp/Basic.lean Modified Mathlib/Topology/Algebra/Field.lean Modified Mathlib/Topology/Algebra/InfiniteSum/ConditionalInt.lean Modified Mathlib/Topology/Algebra/InfiniteSum/Constructions.lean +/- theorem summable_op Modified Mathlib/Topology/Algebra/InfiniteSum/Group.lean +/- theorem multipliable_inv_iff Modified Mathlib/Topology/Algebra/InfiniteSum/Module.lean Modified Mathlib/Topology/Algebra/InfiniteSum/Ring.lean +/- theorem hasSum_mul_left_iff +/- theorem summable_mul_right_iff Modified Mathlib/Topology/Algebra/InfiniteSum/TsumUniformlyOn.lean Modified Mathlib/Topology/Algebra/IsUniformGroup/Defs.lean Modified Mathlib/Topology/Algebra/Support.lean Modified Mathlib/Topology/Algebra/Valued/LocallyCompact.lean Modified Mathlib/Topology/ApproximateUnit.lean +/- theorem Filter.IsApproximateUnit.pure_one Modified Mathlib/Topology/Category/CompHaus/Basic.lean Modified Mathlib/Topology/Category/CompHausLike/Basic.lean Modified Mathlib/Topology/Category/CompHausLike/Limits.lean Modified Mathlib/Topology/Category/LightProfinite/AsLimit.lean Modified Mathlib/Topology/Category/LightProfinite/Basic.lean Modified Mathlib/Topology/Category/LightProfinite/Extend.lean Modified Mathlib/Topology/Category/Profinite/AsLimit.lean Modified Mathlib/Topology/Category/Profinite/Basic.lean Modified Mathlib/Topology/Category/Profinite/Extend.lean Modified Mathlib/Topology/Category/Sequential.lean Modified Mathlib/Topology/Category/Stonean/Basic.lean Modified Mathlib/Topology/Category/TopCat/Limits/Basic.lean +/- def TopCat.limitConeIsLimit Modified Mathlib/Topology/Category/TopCat/Limits/Cofiltered.lean Modified Mathlib/Topology/Category/TopCat/Limits/Products.lean Modified Mathlib/Topology/Category/TopCat/Limits/Pullbacks.lean Modified Mathlib/Topology/Compactness/Compact.lean Modified Mathlib/Topology/Compactness/Lindelof.lean Modified Mathlib/Topology/Compactness/SigmaCompact.lean Modified Mathlib/Topology/Connected/LocPathConnected.lean Modified Mathlib/Topology/Connected/TotallyDisconnected.lean Modified Mathlib/Topology/Constructible.lean Modified Mathlib/Topology/Constructions/SumProd.lean Modified Mathlib/Topology/ContinuousMap/StoneWeierstrass.lean Modified Mathlib/Topology/DiscreteSubset.lean Modified Mathlib/Topology/EMetricSpace/Defs.lean Modified Mathlib/Topology/ExtremallyDisconnected.lean Modified Mathlib/Topology/Homeomorph/Lemmas.lean +/- def Homeomorph.sumArrowHomeomorphProdArrow Modified Mathlib/Topology/Inseparable.lean Modified Mathlib/Topology/Instances/AddCircle/Defs.lean Modified Mathlib/Topology/Irreducible.lean Modified Mathlib/Topology/Maps/Basic.lean +/- theorem Topology.IsInducing.IsEmbedding.map_nhds_eq Modified Mathlib/Topology/MetricSpace/PiNat.lean +/- theorem Metric.PiNatEmbed.ofPiNat_inj Modified Mathlib/Topology/NhdsWithin.lean Modified Mathlib/Topology/NoetherianSpace.lean Modified Mathlib/Topology/Order.lean Modified Mathlib/Topology/Order/Basic.lean Modified Mathlib/Topology/Order/LeftRightLim.lean Modified Mathlib/Topology/Order/WithTop.lean Modified Mathlib/Topology/Sheaves/Functors.lean Modified Mathlib/Topology/Sheaves/Presheaf.lean Modified Mathlib/Topology/Sheaves/SheafCondition/Sites.lean Modified Mathlib/Topology/Sheaves/Stalks.lean Modified Mathlib/Topology/UniformSpace/AbstractCompletion.lean Modified Mathlib/Topology/UniformSpace/Basic.lean Modified Mathlib/Topology/UniformSpace/Equicontinuity.lean Modified Mathlib/Topology/UniformSpace/UniformConvergenceTopology.lean Modified Mathlib/Topology/UnitInterval.lean +/- theorem unitInterval.subtype_Ici_eq_Icc +/- theorem unitInterval.subtype_Iic_eq_Icc +/- theorem unitInterval.subtype_Iio_eq_Ico +/- theorem unitInterval.subtype_Ioi_eq_Ioc Modified Mathlib/Topology/VectorBundle/Riemannian.lean 2025-12-17 21:56:03 7fab516 chore(Analysis): fix whitespace (#32909) Extracted from https://github.com/leanprover-community/mathlib4/pull/30658. Found by extending the commandStart linter to proof bodies. ESTIMATED CHANGES Modified Mathlib/Analysis/Analytic/Basic.lean Modified Mathlib/Analysis/Analytic/CPolynomial.lean Modified Mathlib/Analysis/Analytic/ChangeOrigin.lean Modified Mathlib/Analysis/Analytic/Constructions.lean Modified Mathlib/Analysis/Analytic/Order.lean Modified Mathlib/Analysis/Asymptotics/Defs.lean +/- theorem Asymptotics.IsBigO.add_iff_left +/- theorem Asymptotics.IsBigO.add_iff_right +/- theorem Asymptotics.IsBigO.sub_iff_left +/- theorem Asymptotics.IsBigO.sub_iff_right +/- theorem Asymptotics.IsLittleO.add_iff_left +/- theorem Asymptotics.IsLittleO.add_iff_right +/- theorem Asymptotics.IsLittleO.sub_iff_left +/- theorem Asymptotics.IsLittleO.sub_iff_right Modified Mathlib/Analysis/Asymptotics/LinearGrowth.lean +/- theorem LinearGrowth.linearGrowthInf_neg +/- theorem LinearGrowth.linearGrowthSup_inv Modified Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/NonUnital.lean +/- theorem cfcₙ_neg Modified Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Unital.lean +/- theorem cfc_neg Modified Mathlib/Analysis/Calculus/ContDiff/Basic.lean Modified Mathlib/Analysis/Calculus/ContDiff/Defs.lean Modified Mathlib/Analysis/Calculus/ContDiff/FTaylorSeries.lean Modified Mathlib/Analysis/Calculus/Deriv/Add.lean Modified Mathlib/Analysis/Calculus/Deriv/AffineMap.lean +/- theorem AffineMap.hasDerivAt_lineMap Modified Mathlib/Analysis/Calculus/Deriv/Basic.lean +/- theorem HasDerivAt.comp_ringHom Modified Mathlib/Analysis/Calculus/DerivativeTest.lean Modified Mathlib/Analysis/Calculus/FDeriv/Extend.lean Modified Mathlib/Analysis/Calculus/IteratedDeriv/Defs.lean Modified Mathlib/Analysis/Calculus/LHopital.lean Modified Mathlib/Analysis/Calculus/VectorField.lean Modified Mathlib/Analysis/Complex/Angle.lean Modified Mathlib/Analysis/Complex/Conformal.lean Modified Mathlib/Analysis/Complex/Exponential.lean Modified Mathlib/Analysis/Complex/Norm.lean Modified Mathlib/Analysis/Complex/UpperHalfPlane/Topology.lean +/- theorem UpperHalfPlane.comp_ofComplex +/- theorem UpperHalfPlane.comp_ofComplex_of_im_pos Modified Mathlib/Analysis/Convex/Basic.lean Modified Mathlib/Analysis/Convex/Body.lean Modified Mathlib/Analysis/Convex/KreinMilman.lean Modified Mathlib/Analysis/InnerProductSpace/Defs.lean Modified Mathlib/Analysis/InnerProductSpace/Projection/Basic.lean Modified Mathlib/Analysis/InnerProductSpace/Symmetric.lean Modified Mathlib/Analysis/LConvolution.lean Modified Mathlib/Analysis/LocallyConvex/AbsConvex.lean Modified Mathlib/Analysis/LocallyConvex/Montel.lean Modified Mathlib/Analysis/LocallyConvex/PointwiseConvergence.lean Modified Mathlib/Analysis/LocallyConvex/WeakDual.lean Modified Mathlib/Analysis/MeanInequalities.lean Modified Mathlib/Analysis/Meromorphic/NormalForm.lean Modified Mathlib/Analysis/Meromorphic/Order.lean Modified Mathlib/Analysis/Normed/Affine/Simplex.lean Modified Mathlib/Analysis/Normed/Algebra/UnitizationL1.lean Modified Mathlib/Analysis/Normed/Group/BallSphere.lean Modified Mathlib/Analysis/Normed/Group/Basic.lean +/- theorem Real.enorm_ofReal_of_nonneg Modified Mathlib/Analysis/Normed/Group/CocompactMap.lean Modified Mathlib/Analysis/Normed/Group/FunctionSeries.lean Modified Mathlib/Analysis/Normed/Group/Hom.lean Modified Mathlib/Analysis/Normed/Group/SemiNormedGrp.lean +/- theorem SemiNormedGrp.hom_neg Modified Mathlib/Analysis/Normed/Group/Tannery.lean Modified Mathlib/Analysis/Normed/Group/Ultra.lean Modified Mathlib/Analysis/Normed/Lp/ProdLp.lean +/- theorem WithLp.prod_nnnorm_eq_sup Modified Mathlib/Analysis/Normed/Module/Alternating/Basic.lean Modified Mathlib/Analysis/Normed/Module/FiniteDimension.lean Modified Mathlib/Analysis/Normed/Module/Multilinear/Basic.lean Modified Mathlib/Analysis/Normed/Module/Normalize.lean +/- theorem NormedSpace.normalize_neg Modified Mathlib/Analysis/Normed/Module/PiTensorProduct/InjectiveSeminorm.lean Modified Mathlib/Analysis/Normed/Module/PiTensorProduct/ProjectiveSeminorm.lean Modified Mathlib/Analysis/Normed/Operator/Basic.lean Modified Mathlib/Analysis/Normed/Operator/BoundedLinearMaps.lean Modified Mathlib/Analysis/Normed/Operator/Extend.lean Modified Mathlib/Analysis/Normed/Ring/Basic.lean Modified Mathlib/Analysis/Normed/Ring/InfiniteSum.lean Modified Mathlib/Analysis/Normed/Unbundled/SeminormFromBounded.lean Modified Mathlib/Analysis/Normed/Unbundled/SmoothingSeminorm.lean Modified Mathlib/Analysis/Normed/Unbundled/SpectralNorm.lean Modified Mathlib/Analysis/SpecialFunctions/BinaryEntropy.lean Modified Mathlib/Analysis/SpecialFunctions/Complex/Arg.lean Modified Mathlib/Analysis/SpecialFunctions/ContinuousFunctionalCalculus/ExpLog/Basic.lean Modified Mathlib/Analysis/SpecialFunctions/Log/NegMulLog.lean +/- theorem Real.deriv2_negMulLog +/- theorem Real.negMulLog_eq_neg Modified Mathlib/Analysis/SpecialFunctions/MulExpNegMulSq.lean +/- def Real.mulExpNegMulSq +/- theorem Real.mulExpNegSq_apply Modified Mathlib/Analysis/SpecialFunctions/OrdinaryHypergeometric.lean Modified Mathlib/Analysis/SpecialFunctions/Pow/NNReal.lean +/- theorem NNReal.lt_rpow_inv_iff Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Deriv.lean Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Series.lean +/- theorem Real.hasSum_cosh Modified Mathlib/Analysis/SpecificLimits/Normed.lean 2025-12-17 21:56:01 ac6a112 fix: respect visibility in `notation3` (#32749) This PR makes sure that `notation3` respects visibility and does not introduce public declarations when preceded by `local`. In particular: * we pass along the `attrKind` to `macro_rules`, thereby making them `local` when the `notation3` is (and therefore making sure their associated declaration under the hood is private) * we use a `private aux_def` when the `attrKind` is `local` (and `public` otherwise, for `scoped` or none) Note that, like `syntax` and `notation`, the declarations created by `notation3` will be `public` even when not in `public section`. Visibility for meta commands like these is controlled by `local`. This was discovered because `local notation3` introduced public declarations which wrongly silenced the private module linter. We therefore include a test for the private module linter. ESTIMATED CHANGES Modified Mathlib/Util/Notation3.lean Added MathlibTest/PrivateModuleLinter/notation3.lean 2025-12-17 20:53:33 1ba359a doc(grw): explicitly mention backwards rewriting (#32864) Multiple people have expressed confusion about the backwards rewriting in the `grw` tactic, so I've added it to the doc-string. Let me know if it can be explained more clearly. ESTIMATED CHANGES Modified Mathlib/Tactic/GRewrite/Elab.lean 2025-12-17 20:53:30 05e64ef feat: grind and aesop annotations for ZMod (#32776) This PR adds some `grind` and `aesop` annotations to `ZMod`. This PR is not meant to annotate exhaustively. (That requires `guard` feature of `grind_pattern`, which is only available in nightly). This work is produced as part of Italean 2025 project "improving automation". ESTIMATED CHANGES Modified Mathlib/Data/ZMod/Basic.lean Modified Mathlib/Data/ZMod/ValMinAbs.lean Modified Mathlib/NumberTheory/LegendreSymbol/ZModChar.lean +/- theorem ZMod.χ₄_nat_mod_four 2025-12-17 19:48:34 381f279 chore: golf using `grind` and `lia` (#33002) ESTIMATED CHANGES Modified Mathlib/Computability/Ackermann.lean Modified Mathlib/Data/Fin/SuccPred.lean Modified Mathlib/Data/Holor.lean Modified Mathlib/Data/Int/Init.lean Modified Mathlib/Geometry/Euclidean/Circumcenter.lean 2025-12-17 19:48:32 d24b8b3 chore: remove March and April 2025 deprecated declarations (#32990) I undeprecate `Nat.Ico_succ_right_eq_insert_Ico`, since it is a natural counterpart to the nondeprecated `Nat.Ico_succ_left_eq_erase_Ico`. ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/Basic.lean Modified Mathlib/Algebra/GroupWithZero/Commute.lean Modified Mathlib/Algebra/GroupWithZero/Units/Basic.lean Modified Mathlib/Algebra/Module/Equiv/Basic.lean Modified Mathlib/Algebra/Module/LinearMap/End.lean Modified Mathlib/Algebra/Ring/Basic.lean Modified Mathlib/Analysis/Calculus/ContDiff/Operations.lean Modified Mathlib/Analysis/Calculus/FDeriv/Mul.lean Modified Mathlib/Analysis/Calculus/TangentCone/Basic.lean Modified Mathlib/Analysis/Calculus/TangentCone/Defs.lean Modified Mathlib/Analysis/Calculus/TangentCone/DimOne.lean Modified Mathlib/Analysis/Calculus/TangentCone/Pi.lean Modified Mathlib/Analysis/Calculus/TangentCone/Prod.lean Modified Mathlib/Analysis/Calculus/TangentCone/ProperSpace.lean Modified Mathlib/Analysis/Calculus/TangentCone/Real.lean Modified Mathlib/Analysis/InnerProductSpace/Basic.lean Modified Mathlib/Analysis/InnerProductSpace/Defs.lean Modified Mathlib/Analysis/Meromorphic/Order.lean Modified Mathlib/CategoryTheory/Bicategory/NaturalTransformation/Oplax.lean Modified Mathlib/CategoryTheory/Limits/Constructions/FiniteProductsOfBinaryProducts.lean - theorem CategoryTheory.preservesShape_fin_of_preserves_binary_and_terminal Modified Mathlib/CategoryTheory/Monoidal/Cartesian/Basic.lean Modified Mathlib/CategoryTheory/Monoidal/Closed/Ideal.lean Modified Mathlib/Combinatorics/Additive/CauchyDavenport.lean Modified Mathlib/Combinatorics/SimpleGraph/LapMatrix.lean Modified Mathlib/Combinatorics/SimpleGraph/Paths.lean Modified Mathlib/Data/ENNReal/Operations.lean Modified Mathlib/Data/Fin/Basic.lean Modified Mathlib/Data/List/Sigma.lean Modified Mathlib/Dynamics/PeriodicPts/Defs.lean Modified Mathlib/Dynamics/PeriodicPts/Lemmas.lean Modified Mathlib/Geometry/Manifold/IsManifold/Basic.lean Modified Mathlib/LinearAlgebra/Matrix/NonsingularInverse.lean Modified Mathlib/LinearAlgebra/Multilinear/Curry.lean Modified Mathlib/LinearAlgebra/Projectivization/Independence.lean Modified Mathlib/MeasureTheory/Function/L2Space.lean Modified Mathlib/MeasureTheory/Group/Arithmetic.lean Modified Mathlib/MeasureTheory/Integral/Average.lean Modified Mathlib/MeasureTheory/Integral/Bochner/Basic.lean Modified Mathlib/MeasureTheory/Integral/Lebesgue/Basic.lean Modified Mathlib/MeasureTheory/Integral/Lebesgue/Markov.lean Modified Mathlib/MeasureTheory/Integral/Lebesgue/Sub.lean Modified Mathlib/Order/Filter/AtTopBot/Basic.lean Modified Mathlib/Order/Interval/Finset/Nat.lean - theorem Nat.Icc_insert_succ_left - theorem Nat.Icc_insert_succ_right - theorem Nat.Icc_pred_right - theorem Nat.Icc_succ_left - theorem Nat.Ico_insert_succ_left - theorem Nat.Ico_succ_left - theorem Nat.Ico_succ_right +/- theorem Nat.Ico_succ_right_eq_insert_Ico - theorem Nat.Ico_succ_succ Modified Mathlib/RepresentationTheory/Tannaka.lean Modified Mathlib/RingTheory/DedekindDomain/AdicValuation.lean - theorem IsDedekindDomain.HeightOneSpectrum.intValuation_toFun Modified Mathlib/RingTheory/Polynomial/Eisenstein/Distinguished.lean Modified Mathlib/SetTheory/Cardinal/Basic.lean Modified Mathlib/Topology/Algebra/Module/Equiv.lean Modified Mathlib/Topology/Algebra/Order/Field.lean Modified Mathlib/Topology/Algebra/Valued/ValuationTopology.lean Modified Mathlib/Topology/UniformSpace/Defs.lean 2025-12-17 19:48:29 c7d1b5b chore: golf using `grind` and `simp` (#32968) ESTIMATED CHANGES Modified Mathlib/Algebra/Ring/Int/Parity.lean +/- theorem Int.even_sign_iff Modified Mathlib/Analysis/Fourier/BoundedContinuousFunctionChar.lean Modified Mathlib/Data/Finsupp/Basic.lean Modified Mathlib/Probability/Process/Stopping.lean Modified Mathlib/RingTheory/Ideal/Operations.lean Modified Mathlib/Topology/Separation/Basic.lean 2025-12-17 18:54:10 27dc853 feat(RingTheory/Binomial): Write Ring.multichoose via Ring.choose (#32982) ESTIMATED CHANGES Modified Mathlib/Data/Nat/Choose/Basic.lean Modified Mathlib/RingTheory/Binomial.lean + theorem Ring.choose_neg' + theorem Ring.multichoose_eq 2025-12-17 18:54:08 4947a3a refactor: generalize semicontinuity (#32521) This PR redefines (although defeq to the original) upper and lower semicontinuity in terms of a new predicate `Semicontinuous` which takes a relation `r : α → β → Prop` instead of a function `f : α → β`. We say that a relation `r` is *semicontinuous at `x` within `s`* if `∀ y, r x y → ∀ᶠ x' in 𝓝[s], r x' y`. In other words, if the relation holds for a pair `x : α` and `y : β`, then it also holds for all `x'` (with the same `y`) sufficiently near to `x` within `s`. To recover lower or upper semicontinuity, the relation chosen is `r := (f · > ·)` or `r := (f · < ·)`, respectively. Note that semicontinuity of `r` at `x` within `s` is equivalent to `∀ y, (∃ᶠ x' in 𝓝[s] x, ¬ r x' y) → ¬ r x y`, so one may freely switch between the eventual or the frequent characterization at the cost of negation of the relation `r`. The purpose behind this refactor is to allow a common definition not only for lower and upper semicontinuity, but also for lower and upper hemicontinuity (for those unfamiliar, this should be thought of as lower and upper semicontinuity for set-valued functions). This was discussed on Zulip a while ago here: [#maths > upper hemicontinuity vs. upper semicontinuity](https://leanprover.zulipchat.com/#narrow/channel/116395-maths/topic/upper.20hemicontinuity.20vs.2E.20upper.20semicontinuity/with/563527801). Although the number of lemmas shared between all versions is not particularly high, it's nice to avoid some boilerplate, and to show that all these concepts can be unified. Given a set-valued function `f : α → Set β`, lower hemicontinuity is defined as semicontinuity of the relation `fun (x : α) (s : Set β) ↦ IsOpen s ∧ (f x ∩ s).Nonempty`. So, `f` is lower hemicontinuous if, for any open set `s`, if `f x` intersects `s`, then so does `f x'` for all `x'` sufficiently close to `x`. Upper hemicontinuity is defined as semicontinuity of the relation `fun (x : α) (s : Set β) ↦ s ∈ 𝓝ˢ (f x)`. So, `f` is upper hemicontinuous if any neighborhood of (the set) `f x` is also a neighborhood of `f x'` for `x'` sufficiently close to `x`. As a final note, sometimes one considers *metric upper hemicontinuity*, which is yet another concept that can be unified under this framework (although not included in this PR), which is semicontinuity under the relation `fun x s ↦ ∃ δ > 0, Metric.thickening (f x) δ ⊆ s`. In this PR, we also provide some basic lemmas about upper and lower hemicontinuity which characterize it in terms of preimages, analogous to some characterizations of upper and lower semicontinuity. One very common example of an upper hemicontinuous function is `spectrum 𝕜 : A → Set 𝕜`, where `A` is a Banach `𝕜`-algebra. This fact will be established in a follow-up PR. The structure of this PR is as follows: 1. Create a new folder / file `Topology/Semicontinuity/Defs.lean` which contains the new `Semicontinuous` predicate. In addition, this file provides the boilerplate and definitions of `LowerSemicontinuous`, `UpperSemicontinuous`, `LowerHemicontinuous` and `UpperHemicontinuous`. 2. The remaining material in `Topology/Semicontinuous.lean` is moved to `Topology/Semicontinuity/Basic.lean` (and so the former file is deleted). 3. Some fundamental results about hemicontinuity are added in `Topology/Semicontinuity/Hemicontinuity.lean`. As a final note, in [#maths > Semicontinuity definition for non-linear orders](https://leanprover.zulipchat.com/#narrow/channel/116395-maths/topic/Semicontinuity.20definition.20for.20non-linear.20orders/with/436241797) it was suggested that lower semicontinuity be redefined: ```lean -- current definition def LowerSemicontinuous (f : α → β) := ∀ x y, y < f x → ∀ᶠ x' in 𝓝 x, y < f x' -- definition proposed in the Zulip thread, equivalent in the linear order case def LowerSemicontinuous (f : α → β) := ∀ x y, (∃ᶠ x' in 𝓝 x, f x' ≤ y) → f x ≤ y ``` This change *is* compatible with the changes made in this PR (there is an `example` in the source emphasizing this), but this is not implemented here. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Analysis/LocallyConvex/Barrelled.lean Modified Mathlib/MeasureTheory/Constructions/BorelSpace/Order.lean Modified Mathlib/MeasureTheory/Integral/Bochner/VitaliCaratheodory.lean Modified Mathlib/Topology/EMetricSpace/BoundedVariation.lean Modified Mathlib/Topology/Instances/EReal/Lemmas.lean Modified Mathlib/Topology/Maps/Basic.lean Renamed Mathlib/Topology/Semicontinuous.lean to Mathlib/Topology/Semicontinuity/Basic.lean - theorem LowerSemicontinuous.comp - theorem LowerSemicontinuous.comp_continuous - theorem LowerSemicontinuous.lowerSemicontinuousAt - theorem LowerSemicontinuous.lowerSemicontinuousOn - theorem LowerSemicontinuous.lowerSemicontinuousWithinAt - def LowerSemicontinuous - theorem LowerSemicontinuousAt.comp - theorem LowerSemicontinuousAt.comp_continuousAt - theorem LowerSemicontinuousAt.comp_continuousAt_of_eq - theorem LowerSemicontinuousAt.lowerSemicontinuousWithinAt - def LowerSemicontinuousAt - theorem LowerSemicontinuousOn.comp - theorem LowerSemicontinuousOn.lowerSemicontinuousWithinAt - theorem LowerSemicontinuousOn.mono - def LowerSemicontinuousOn - theorem LowerSemicontinuousWithinAt.comp - theorem LowerSemicontinuousWithinAt.congr_of_eventuallyEq - theorem LowerSemicontinuousWithinAt.mono - def LowerSemicontinuousWithinAt - theorem UpperSemicontinuous.comp - theorem UpperSemicontinuous.comp_continuous - theorem UpperSemicontinuous.upperSemicontinuousAt - theorem UpperSemicontinuous.upperSemicontinuousOn - theorem UpperSemicontinuous.upperSemicontinuousWithinAt - def UpperSemicontinuous - theorem UpperSemicontinuousAt.comp - theorem UpperSemicontinuousAt.comp_continuousAt - theorem UpperSemicontinuousAt.comp_continuousAt_of_eq - theorem UpperSemicontinuousAt.upperSemicontinuousWithinAt - def UpperSemicontinuousAt - theorem UpperSemicontinuousOn.comp - theorem UpperSemicontinuousOn.mono - theorem UpperSemicontinuousOn.upperSemicontinuousWithinAt - def UpperSemicontinuousOn - theorem UpperSemicontinuousWithinAt.comp - theorem UpperSemicontinuousWithinAt.congr_of_eventuallyEq - theorem UpperSemicontinuousWithinAt.mono - def UpperSemicontinuousWithinAt - theorem lowerSemicontinuousAt_const - theorem lowerSemicontinuousOn_const - theorem lowerSemicontinuousOn_univ_iff - theorem lowerSemicontinuousWithinAt_const - theorem lowerSemicontinuousWithinAt_univ_iff - theorem lowerSemicontinuous_const - theorem lowerSemicontinuous_restrict_iff - theorem upperSemicontinuousAt_const - theorem upperSemicontinuousOn_const - theorem upperSemicontinuousOn_iff_restrict - theorem upperSemicontinuousOn_univ_iff - theorem upperSemicontinuousWithinAt_const - theorem upperSemicontinuousWithinAt_univ_iff - theorem upperSemicontinuous_const Added Mathlib/Topology/Semicontinuity/Defs.lean + theorem LowerHemicontinuous.comp + theorem LowerHemicontinuous.const + theorem LowerHemicontinuous.lowerHemicontinuousAt + theorem LowerHemicontinuous.lowerHemicontinuousOn + theorem LowerHemicontinuous.lowerHemicontinuousWithinAt + theorem LowerHemicontinuousAt.comp + theorem LowerHemicontinuousAt.const + theorem LowerHemicontinuousAt.lowerHemicontinuousWithinAt + theorem LowerHemicontinuousOn.comp + theorem LowerHemicontinuousOn.const + theorem LowerHemicontinuousOn.lowerHemicontinuousWithinAt + theorem LowerHemicontinuousOn.mono + theorem LowerHemicontinuousWithinAt.comp + theorem LowerHemicontinuousWithinAt.congr_of_eventuallyEq + theorem LowerHemicontinuousWithinAt.const + theorem LowerHemicontinuousWithinAt.mono + theorem LowerSemicontinuous.comp + theorem LowerSemicontinuous.lowerSemicontinuousAt + theorem LowerSemicontinuous.lowerSemicontinuousOn + theorem LowerSemicontinuous.lowerSemicontinuousWithinAt + theorem LowerSemicontinuousAt.comp + theorem LowerSemicontinuousAt.lowerSemicontinuousWithinAt + theorem LowerSemicontinuousOn.comp + theorem LowerSemicontinuousOn.lowerSemicontinuousWithinAt + theorem LowerSemicontinuousOn.mono + theorem LowerSemicontinuousWithinAt.comp + theorem LowerSemicontinuousWithinAt.congr_of_eventuallyEq + theorem LowerSemicontinuousWithinAt.mono + theorem Semicontinuous.comp + theorem Semicontinuous.const + theorem Semicontinuous.semicontinuousAt + theorem Semicontinuous.semicontinuousOn + theorem Semicontinuous.semicontinuousWithinAt + def Semicontinuous + theorem SemicontinuousAt.comp + theorem SemicontinuousAt.const + theorem SemicontinuousAt.semicontinuousWithinAt + def SemicontinuousAt + theorem SemicontinuousOn.comp + theorem SemicontinuousOn.const + theorem SemicontinuousOn.mono + theorem SemicontinuousOn.semicontinuousWithinAt + def SemicontinuousOn + theorem SemicontinuousWithinAt.comp + theorem SemicontinuousWithinAt.congr_of_eventuallyEq + theorem SemicontinuousWithinAt.const + theorem SemicontinuousWithinAt.mono + def SemicontinuousWithinAt + theorem UpperHemicontinuous.comp + theorem UpperHemicontinuous.const + theorem UpperHemicontinuous.upperHemicontinuousAt + theorem UpperHemicontinuous.upperHemicontinuousOn + theorem UpperHemicontinuous.upperHemicontinuousWithinAt + theorem UpperHemicontinuousAt.comp + theorem UpperHemicontinuousAt.const + theorem UpperHemicontinuousAt.upperHemicontinuousWithinAt + theorem UpperHemicontinuousOn.comp + theorem UpperHemicontinuousOn.const + theorem UpperHemicontinuousOn.mono + theorem UpperHemicontinuousOn.upperHemicontinuousWithinAt + theorem UpperHemicontinuousWithinAt.comp + theorem UpperHemicontinuousWithinAt.congr_of_eventuallyEq + theorem UpperHemicontinuousWithinAt.const + theorem UpperHemicontinuousWithinAt.mono + theorem UpperSemicontinuous.comp + theorem UpperSemicontinuous.upperSemicontinuousAt + theorem UpperSemicontinuous.upperSemicontinuousOn + theorem UpperSemicontinuous.upperSemicontinuousWithinAt + theorem UpperSemicontinuousAt.comp + theorem UpperSemicontinuousAt.upperSemicontinuousWithinAt + theorem UpperSemicontinuousOn.comp + theorem UpperSemicontinuousOn.mono + theorem UpperSemicontinuousOn.upperSemicontinuousWithinAt + theorem UpperSemicontinuousWithinAt.comp + theorem UpperSemicontinuousWithinAt.congr_of_eventuallyEq + theorem UpperSemicontinuousWithinAt.mono + theorem lowerHemicontinuousAt_iff + theorem lowerHemicontinuousOn_iff + theorem lowerHemicontinuousOn_univ_iff + theorem lowerHemicontinuousWithinAt_iff + theorem lowerHemicontinuousWithinAt_univ_iff + theorem lowerHemicontinuous_iff + theorem lowerHemicontinuous_restrict_iff + theorem lowerSemicontinuousAt_const + theorem lowerSemicontinuousAt_iff + theorem lowerSemicontinuousOn_const + theorem lowerSemicontinuousOn_iff + theorem lowerSemicontinuousOn_univ_iff + theorem lowerSemicontinuousWithinAt_const + theorem lowerSemicontinuousWithinAt_iff + theorem lowerSemicontinuousWithinAt_univ_iff + theorem lowerSemicontinuous_const + theorem lowerSemicontinuous_iff + theorem lowerSemicontinuous_restrict_iff + theorem semicontinuousOn_univ_iff + theorem semicontinuousWithinAt_univ_iff + theorem semicontinuous_restrict_iff + theorem upperHemicontinuousAt_iff + theorem upperHemicontinuousOn_iff + theorem upperHemicontinuousOn_iff_restrict + theorem upperHemicontinuousOn_univ_iff + theorem upperHemicontinuousWithinAt_iff + theorem upperHemicontinuousWithinAt_univ_iff + theorem upperHemicontinuous_iff + theorem upperSemicontinuousAt_const + theorem upperSemicontinuousAt_iff + theorem upperSemicontinuousOn_const + theorem upperSemicontinuousOn_iff + theorem upperSemicontinuousOn_iff_restrict + theorem upperSemicontinuousOn_univ_iff + theorem upperSemicontinuousWithinAt_const + theorem upperSemicontinuousWithinAt_iff + theorem upperSemicontinuousWithinAt_univ_iff + theorem upperSemicontinuous_const + theorem upperSemicontinuous_iff Added Mathlib/Topology/Semicontinuity/Hemicontinuity.lean + theorem isClosedMap_iff_upperHemicontinuous + theorem isOpenMap_iff_lowerHemicontinuous + theorem lowerHemicontinuous_iff_isClosed_preimage_Iic + theorem lowerHemicontinuous_iff_isOpen_compl_preimage_Iic_compl + theorem upperHemicontinuousAt_iff_preimage_Iic + theorem upperHemicontinuousOn_iff_preimage_Iic + theorem upperHemicontinuousWithinAt_iff_preimage_Iic + theorem upperHemicontinuous_iff_isClosed_compl_preimage_Iic_compl + theorem upperHemicontinuous_iff_isOpen_preimage_Iic + theorem upperHemicontinuous_iff_preimage_Iic 2025-12-17 18:54:05 4cd85ce chore(Algebra/Order/AddGroupWithTop): golf (#32382) ESTIMATED CHANGES Modified Mathlib/Algebra/Order/AddGroupWithTop.lean +/- theorem LinearOrderedAddCommGroupWithTop.add_eq_top + theorem LinearOrderedAddCommGroupWithTop.add_lt_top + theorem LinearOrderedAddCommGroupWithTop.add_ne_top + theorem LinearOrderedAddCommGroupWithTop.add_neg_cancel_left_of_ne_top - theorem LinearOrderedAddCommGroupWithTop.add_neg_cancel_of_ne_top + theorem LinearOrderedAddCommGroupWithTop.add_neg_cancel_right_of_ne_top +/- theorem LinearOrderedAddCommGroupWithTop.injective_add_left_of_ne_top + theorem LinearOrderedAddCommGroupWithTop.isAddUnit_iff + theorem LinearOrderedAddCommGroupWithTop.neg_add_cancel_left_of_ne_top + theorem LinearOrderedAddCommGroupWithTop.neg_add_cancel_of_ne_top + theorem LinearOrderedAddCommGroupWithTop.neg_add_cancel_right_of_ne_top +/- theorem LinearOrderedAddCommGroupWithTop.neg_eq_top + theorem LinearOrderedAddCommGroupWithTop.sub_top +/- theorem LinearOrderedAddCommGroupWithTop.top_ne_zero + theorem LinearOrderedAddCommGroupWithTop.top_pos +/- theorem WithTop.LinearOrderedAddCommGroup.coe_neg +/- theorem WithTop.LinearOrderedAddCommGroup.coe_sub +/- theorem WithTop.LinearOrderedAddCommGroup.neg_top +/- theorem WithTop.LinearOrderedAddCommGroup.sub_eq_top_iff +/- theorem WithTop.LinearOrderedAddCommGroup.sub_top +/- theorem WithTop.LinearOrderedAddCommGroup.top_sub Modified Mathlib/Algebra/Order/GroupWithZero/Canonical.lean Modified Mathlib/Algebra/Order/Ring/Archimedean.lean 2025-12-17 18:19:44 25fee2c feat(Topology/UniformSpace): add `isRefl_of_mem_uniformity` (#32850) This PR adds a lemma to directly obtain `U.IsRefl` for an entourage `U` of a uniform space. ESTIMATED CHANGES Modified Mathlib/Dynamics/TopologicalEntropy/NetEntropy.lean Modified Mathlib/Topology/UniformSpace/Basic.lean Modified Mathlib/Topology/UniformSpace/Closeds.lean Modified Mathlib/Topology/UniformSpace/Defs.lean + theorem isRefl_of_mem_uniformity 2025-12-17 18:19:42 c4c891f feat(Counterexamples): Weierstrass function is continuous and nowhere differentiable (#31954) ESTIMATED CHANGES Modified Counterexamples.lean Added Counterexamples/NowhereDifferentiable.lean + theorem NowhereDifferentiable.exists_uniformContinuous_and_not_differentiableAt + theorem NowhereDifferentiable.hasSumUniformlyOn_weierstrass + theorem NowhereDifferentiable.le_seq + theorem NowhereDifferentiable.lt_seq + theorem NowhereDifferentiable.not_differentiableAt_weierstrass + theorem NowhereDifferentiable.not_differentiableAt_weierstrass_seven + theorem NowhereDifferentiable.seq_le + theorem NowhereDifferentiable.seq_mul_pow + theorem NowhereDifferentiable.summable_weierstrass + theorem NowhereDifferentiable.tendstoUniformly_weierstrass + theorem NowhereDifferentiable.tendsto_seq + theorem NowhereDifferentiable.tendsto_seq_sub_inv + theorem NowhereDifferentiable.uniformContinuous_weierstrass + def NowhereDifferentiable.weierstrass + theorem NowhereDifferentiable.weierstrass_partial + theorem NowhereDifferentiable.weierstrass_remainder + theorem NowhereDifferentiable.weierstrass_slope Modified docs/references.bib 2025-12-17 17:45:17 b0dabfb feat: meromorphic functions are measurable (#32675) Show that meromorphic functions are measurable. This material is used in [Project VD](https://github.com/kebekus/ProjectVD), which aims to formalize Value Distribution Theory for meromorphic functions on the complex plane. ESTIMATED CHANGES Modified Mathlib/Analysis/Meromorphic/Basic.lean + theorem MeromorphicOn.countable_compl_analyticAt + theorem MeromorphicOn.countable_compl_analyticAt_inter + theorem MeromorphicOn.measurable Modified Mathlib/Topology/Compactness/Lindelof.lean + theorem IsLindelof.countable_of_isDiscrete 2025-12-17 17:29:49 e3b882e feat: set-valued product of bernoulli random variables (#31908) Define the product distribution of `p`-Bernoulli random variables a measure on `Set ι`. It is important in applications to be able to restrict the product to a subset `u` of `ι`, eg in #31364 I define the `G(V, p)` distribution of binomial random graphs by setting `ι := Sym2 V` and `u := {e |¬ e.IsDiag}`. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Probability/Distributions/SetBernoulli.lean + theorem ProbabilityTheory.IsSetBernoulli.ae_subset + theorem ProbabilityTheory.isSetBernoulli_congr + theorem ProbabilityTheory.setBernoulli_ae_subset + theorem ProbabilityTheory.setBernoulli_apply' + theorem ProbabilityTheory.setBernoulli_apply + theorem ProbabilityTheory.setBernoulli_eq_map + theorem ProbabilityTheory.setBernoulli_one + theorem ProbabilityTheory.setBernoulli_singleton + theorem ProbabilityTheory.setBernoulli_zero Modified Mathlib/Probability/HasLaw.lean +/- theorem ProbabilityTheory.HasLaw.congr + theorem ProbabilityTheory.HasLaw.isFiniteMeasure + theorem ProbabilityTheory.HasLaw.isProbabilityMeasure + theorem ProbabilityTheory.hasLaw_congr 2025-12-17 17:13:43 45fb267 feat(Analysis/Distribution): `(1 + |x| ^ 2) ^ r` has temperate growth (#32307) The function `(1 + |x| ^ 2) ^ r`, also known as the Bessel potential, has temperate growth. This is a crucial ingredient to define Sobolev spaces via the Fourier transform, since only multiplication with temperate growth function maps Schwartz functions to Schwartz functions (hence tempered distributions to itself). We also add `to_fun` attributes to various declarations because `fun_prop` did not solve `1 + |x|^2` without `fun_add`. ESTIMATED CHANGES Modified Mathlib/Analysis/Distribution/TemperateGrowth.lean + theorem Function.hasTemperateGrowth_one_add_norm_sq_rpow 2025-12-17 16:44:50 2fb75e0 feat: covering and packing numbers of sets in a metric space (#26351) We define covering numbers of sets in a pseudo-metric space, which are minimal cardinalities of `ε`-covers of sets. We also define the packing number, which is the maximal cardinality of an `ε`-separated set. From the Brownian motion project. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Topology/MetricSpace/CoveringNumbers.lean + theorem Metric.IsCover.coveringNumber_le_encard + theorem Metric.IsCover.externalCoveringNumber_le_encard + def Metric.coveringNumber + theorem Metric.coveringNumber_anti + theorem Metric.coveringNumber_empty + theorem Metric.coveringNumber_eq_one_of_ediam_le + theorem Metric.coveringNumber_eq_zero + theorem Metric.coveringNumber_le_one_of_ediam_le + theorem Metric.coveringNumber_pos + def Metric.externalCoveringNumber + theorem Metric.externalCoveringNumber_anti + theorem Metric.externalCoveringNumber_empty + theorem Metric.externalCoveringNumber_eq_one_of_ediam_le + theorem Metric.externalCoveringNumber_eq_zero + theorem Metric.externalCoveringNumber_le_coveringNumber + theorem Metric.externalCoveringNumber_le_one_of_ediam_le + theorem Metric.externalCoveringNumber_mono_set + theorem Metric.externalCoveringNumber_pos + def Metric.packingNumber + theorem Metric.packingNumber_two_mul_le_externalCoveringNumber 2025-12-17 16:11:29 df676a0 feat(AlgebraicGeometry/EllipticCurve/Jacobian): remove unnecessary assumptions in `toAffine_slope_of_eq` (#32980) ESTIMATED CHANGES Modified Mathlib/AlgebraicGeometry/EllipticCurve/Jacobian/Formula.lean 2025-12-17 16:11:27 07ecd39 feat(CategoryTheory/Cat/Basic): Turning 1- and 2-morphisms in Cat into a 1-field structure (#31807) This PR defines `Cat.Hom` and `Cat.Hom₂`, which are 1-field structures wrapping `Functor` and `NatTrans` respectively. In addition, it changes the `Bicategory` instance for `Cat` to use these wrappers instead. This PR adds such definitions as `NatTrans.toCatHom2`, `Cat.Hom.toFunctor`, `Cat.Hom₂.toNatTrans`, `Cat.Hom.isoMk` as well as simp lemmas for normalizing these to operations. ESTIMATED CHANGES Modified Mathlib/Algebra/Category/ModuleCat/Pseudofunctor.lean Modified Mathlib/AlgebraicTopology/Quasicategory/StrictBicategory.lean Modified Mathlib/AlgebraicTopology/SimplicialSet/HomotopyCat.lean Modified Mathlib/AlgebraicTopology/SimplicialSet/Nerve.lean Modified Mathlib/AlgebraicTopology/SimplicialSet/NerveAdjunction.lean Modified Mathlib/CategoryTheory/Bicategory/CatEnriched.lean +/- theorem CategoryTheory.CatEnriched.id_eq Modified Mathlib/CategoryTheory/Bicategory/Functor/Cat.lean Modified Mathlib/CategoryTheory/Bicategory/Grothendieck.lean Modified Mathlib/CategoryTheory/Category/Cat.lean + theorem CategoryTheory.Cat.Hom.comp_map + theorem CategoryTheory.Cat.Hom.comp_obj + theorem CategoryTheory.Cat.Hom.comp_toFunctor + def CategoryTheory.Cat.Hom.equivFunctor + theorem CategoryTheory.Cat.Hom.id_map + theorem CategoryTheory.Cat.Hom.id_obj + theorem CategoryTheory.Cat.Hom.id_toFunctor + def CategoryTheory.Cat.Hom.isoMk + theorem CategoryTheory.Cat.Hom.isoMk_toNatIso + def CategoryTheory.Cat.Hom.toNatIso + theorem CategoryTheory.Cat.Hom.toNatIso_associator + theorem CategoryTheory.Cat.Hom.toNatIso_isoMk + theorem CategoryTheory.Cat.Hom.toNatIso_leftUnitor + theorem CategoryTheory.Cat.Hom.toNatIso_rightUnitor + theorem CategoryTheory.Cat.Hom.toNatTrans_comp + theorem CategoryTheory.Cat.Hom.toNatTrans_id + structure CategoryTheory.Cat.Hom + theorem CategoryTheory.Cat.Hom₂.comp_app + theorem CategoryTheory.Cat.Hom₂.eqToHom_toNatTrans + theorem CategoryTheory.Cat.Hom₂.ext + theorem CategoryTheory.Cat.Hom₂.id_app + structure CategoryTheory.Cat.Hom₂ + theorem CategoryTheory.Cat.associator_hom_toNatTrans + theorem CategoryTheory.Cat.associator_inv_toNatTrans - theorem CategoryTheory.Cat.comp_app +/- theorem CategoryTheory.Cat.comp_eq_comp - theorem CategoryTheory.Cat.comp_map - theorem CategoryTheory.Cat.comp_obj +/- theorem CategoryTheory.Cat.eqToHom_app +/- theorem CategoryTheory.Cat.ext - theorem CategoryTheory.Cat.id_app +/- theorem CategoryTheory.Cat.id_eq_id - theorem CategoryTheory.Cat.id_map - theorem CategoryTheory.Cat.id_obj +/- theorem CategoryTheory.Cat.leftUnitor_hom_app + theorem CategoryTheory.Cat.leftUnitor_hom_toNatTrans +/- theorem CategoryTheory.Cat.leftUnitor_inv_app + theorem CategoryTheory.Cat.leftUnitor_inv_toNatTrans +/- theorem CategoryTheory.Cat.rightUnitor_hom_app + theorem CategoryTheory.Cat.rightUnitor_hom_toNatTrans +/- theorem CategoryTheory.Cat.rightUnitor_inv_app + theorem CategoryTheory.Cat.rightUnitor_inv_toNatTrans +/- theorem CategoryTheory.Cat.whiskerLeft_app + theorem CategoryTheory.Cat.whiskerLeft_toNatTrans +/- theorem CategoryTheory.Cat.whiskerRight_app + theorem CategoryTheory.Cat.whiskerRight_toNatTrans + def CategoryTheory.Functor.equivCatHom - def CategoryTheory.Functor.ofCatHom - theorem CategoryTheory.Functor.of_toCatHom +/- def CategoryTheory.Functor.toCatHom - theorem CategoryTheory.Functor.to_ofCatHom + def CategoryTheory.NatTrans.toCatHom₂ + theorem CategoryTheory.NatTrans.toCatHom₂_comp + theorem CategoryTheory.NatTrans.toCatHom₂_id Modified Mathlib/CategoryTheory/Category/Cat/Adjunction.lean Modified Mathlib/CategoryTheory/Category/Cat/AsSmall.lean Modified Mathlib/CategoryTheory/Category/Cat/CartesianClosed.lean Modified Mathlib/CategoryTheory/Category/Cat/Limit.lean +/- def CategoryTheory.Cat.HasLimits.limitConeLift Modified Mathlib/CategoryTheory/Category/Cat/Op.lean Modified Mathlib/CategoryTheory/Category/Cat/Terminal.lean Modified Mathlib/CategoryTheory/Category/Grpd.lean Modified Mathlib/CategoryTheory/Category/Quiv.lean Modified Mathlib/CategoryTheory/Category/ReflQuiv.lean Modified Mathlib/CategoryTheory/CodiscreteCategory.lean Modified Mathlib/CategoryTheory/Comma/Over/Basic.lean Modified Mathlib/CategoryTheory/Comma/StructuredArrow/Final.lean Modified Mathlib/CategoryTheory/Comma/StructuredArrow/Functor.lean Modified Mathlib/CategoryTheory/Elements.lean Modified Mathlib/CategoryTheory/FiberedCategory/Grothendieck.lean Modified Mathlib/CategoryTheory/Filtered/Grothendieck.lean Modified Mathlib/CategoryTheory/Functor/KanExtension/Adjunction.lean Modified Mathlib/CategoryTheory/Grothendieck.lean +/- def CategoryTheory.Grothendieck.mapIdIso +/- theorem CategoryTheory.Grothendieck.map_id_eq +/- def CategoryTheory.Grothendieck.ιCompMap +/- def CategoryTheory.Grothendieck.ιNatTrans Modified Mathlib/CategoryTheory/Groupoid/FreeGroupoidOfCategory.lean +/- theorem CategoryTheory.Grpd.free_map Modified Mathlib/CategoryTheory/IsomorphismClasses.lean Modified Mathlib/CategoryTheory/Join/Pseudofunctor.lean Modified Mathlib/CategoryTheory/Limits/Final.lean +/- theorem CategoryTheory.Grothendieck.final_map Modified Mathlib/CategoryTheory/Limits/Shapes/Grothendieck.lean Modified Mathlib/CategoryTheory/Monoidal/Cartesian/Cat.lean +/- def CategoryTheory.Cat.chosenTerminalIsTerminal +/- theorem CategoryTheory.Monoidal.leftUnitor_hom +/- theorem CategoryTheory.Monoidal.leftUnitor_inv +/- theorem CategoryTheory.Monoidal.rightUnitor_hom +/- theorem CategoryTheory.Monoidal.rightUnitor_inv +/- theorem CategoryTheory.Monoidal.whiskerLeft Modified Mathlib/CategoryTheory/SingleObj.lean Modified Mathlib/CategoryTheory/Sites/Descent/DescentData.lean Modified Mathlib/CategoryTheory/Sites/Descent/IsPrestack.lean Modified Mathlib/CategoryTheory/Sites/PseudofunctorSheafOver.lean Modified Mathlib/CategoryTheory/WithTerminal/Basic.lean Modified Mathlib/Order/Category/Preord.lean Modified Mathlib/Tactic/CategoryTheory/ToApp.lean + def CategoryTheory.toNatTransExpr Modified MathlibTest/CategoryTheory/ToApp.lean 2025-12-17 15:05:33 1035fd0 doc: fix file references (#32855) This PR fixes some defective file references. I've verified that all the updated references are pointing to files that existed when this PR was created. I don't make any promises in terms of the files still containing what they are claimed to contain in the relevant context. ESTIMATED CHANGES Modified Archive/Examples/MersennePrimes.lean Modified Mathlib/Algebra/Polynomial/Eval/Algebra.lean Modified Mathlib/AlgebraicGeometry/ProjectiveSpectrum/Basic.lean Modified Mathlib/AlgebraicGeometry/ProjectiveSpectrum/Scheme.lean Modified Mathlib/Analysis/Calculus/FDeriv/Add.lean Modified Mathlib/Analysis/Calculus/FDeriv/Comp.lean Modified Mathlib/Analysis/Calculus/FDeriv/Equiv.lean Modified Mathlib/Analysis/Calculus/FDeriv/Linear.lean Modified Mathlib/Analysis/Calculus/FDeriv/Prod.lean Modified Mathlib/Analysis/Calculus/FDeriv/RestrictScalars.lean Modified Mathlib/Analysis/Calculus/FDeriv/Star.lean Modified Mathlib/CategoryTheory/EffectiveEpi/Basic.lean Modified Mathlib/CategoryTheory/Limits/ConeCategory.lean Modified Mathlib/CategoryTheory/Limits/HasLimits.lean Modified Mathlib/CategoryTheory/Limits/Preserves/Finite.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Equalizers.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Kernels.lean Modified Mathlib/CategoryTheory/Sites/Coherent/SheafComparison.lean Modified Mathlib/Data/Matrix/Invertible.lean Modified Mathlib/GroupTheory/GroupExtension/Defs.lean Modified Mathlib/LinearAlgebra/Dimension/RankNullity.lean Modified Mathlib/LinearAlgebra/Matrix/GeneralLinearGroup/Basic.lean Modified Mathlib/LinearAlgebra/Trace.lean Modified Mathlib/MeasureTheory/Measure/GiryMonad.lean Modified Mathlib/NumberTheory/LucasLehmer.lean Modified Mathlib/Probability/Independence/Conditional.lean Modified Mathlib/Probability/Kernel/CondDistrib.lean Modified Mathlib/RepresentationTheory/Homological/GroupCohomology/LowDegree.lean Modified Mathlib/RepresentationTheory/Homological/GroupCohomology/Shapiro.lean Modified Mathlib/RepresentationTheory/Homological/Resolution.lean Modified Mathlib/RingTheory/AlgebraTower.lean Modified Mathlib/RingTheory/Spectrum/Prime/TensorProduct.lean Modified Mathlib/SetTheory/Cardinal/Arithmetic.lean Modified Mathlib/Tactic/Linter/TextBased.lean Modified Mathlib/Tactic/SetLike.lean Modified Mathlib/Topology/Instances/Matrix.lean Modified Mathlib/Topology/Sheaves/SheafOfFunctions.lean Modified MathlibTest/FieldSimp.lean 2025-12-17 13:59:15 975952b doc(CategoryTheory): fix typos (#32997) Typos found and fixed by Codex. ESTIMATED CHANGES Modified Mathlib/Algebra/Category/AlgCat/Basic.lean Modified Mathlib/Algebra/Category/AlgCat/Limits.lean Modified Mathlib/Algebra/Category/Grp/Basic.lean Modified Mathlib/CategoryTheory/Abelian/GrothendieckCategory/HasExt.lean Modified Mathlib/CategoryTheory/Bicategory/CatEnriched.lean Modified Mathlib/CategoryTheory/Bicategory/Functor/StrictPseudofunctor.lean Modified Mathlib/CategoryTheory/Bicategory/FunctorBicategory/Pseudo.lean Modified Mathlib/CategoryTheory/CodiscreteCategory.lean Modified Mathlib/CategoryTheory/Comma/Over/OverClass.lean Modified Mathlib/CategoryTheory/ConcreteCategory/BundledHom.lean Modified Mathlib/CategoryTheory/Conj.lean Modified Mathlib/CategoryTheory/Distributive/Cartesian.lean Modified Mathlib/CategoryTheory/Elements.lean Modified Mathlib/CategoryTheory/Enriched/Limits/HasConicalLimits.lean Modified Mathlib/CategoryTheory/Functor/KanExtension/Pointwise.lean Modified Mathlib/CategoryTheory/Functor/TypeValuedFlat.lean Modified Mathlib/CategoryTheory/Grothendieck.lean Modified Mathlib/CategoryTheory/InducedCategory.lean Modified Mathlib/CategoryTheory/LiftingProperties/Basic.lean Modified Mathlib/CategoryTheory/Limits/Constructions/Pullbacks.lean Modified Mathlib/CategoryTheory/Limits/FinallySmall.lean Modified Mathlib/CategoryTheory/Limits/MonoCoprod.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Grothendieck.lean Modified Mathlib/CategoryTheory/Limits/Shapes/StrongEpi.lean Modified Mathlib/CategoryTheory/Linear/Basic.lean Modified Mathlib/CategoryTheory/Localization/CalculusOfFractions/Preadditive.lean Modified Mathlib/CategoryTheory/Localization/Construction.lean Modified Mathlib/CategoryTheory/Localization/FiniteProducts.lean Modified Mathlib/CategoryTheory/Localization/HasLocalization.lean Modified Mathlib/CategoryTheory/Localization/Predicate.lean Modified Mathlib/CategoryTheory/Localization/Resolution.lean Modified Mathlib/CategoryTheory/Monoidal/Closed/Basic.lean Modified Mathlib/CategoryTheory/Monoidal/DayConvolution.lean Modified Mathlib/CategoryTheory/MorphismProperty/Concrete.lean Modified Mathlib/CategoryTheory/MorphismProperty/Limits.lean Modified Mathlib/CategoryTheory/NatIso.lean Modified Mathlib/CategoryTheory/ObjectProperty/Equivalence.lean Modified Mathlib/CategoryTheory/ObjectProperty/LimitsClosure.lean Modified Mathlib/CategoryTheory/Presentable/Basic.lean Modified Mathlib/CategoryTheory/Products/Basic.lean Modified Mathlib/CategoryTheory/Shift/ShiftSequence.lean Modified Mathlib/CategoryTheory/Sites/DenseSubsite/InducedTopology.lean Modified Mathlib/CategoryTheory/Sites/LocallySurjective.lean Modified Mathlib/CategoryTheory/Skeletal.lean Modified Mathlib/CategoryTheory/Triangulated/Functor.lean 2025-12-17 12:41:54 a06e2b6 chore(CategoryTheory): generalise `DenseAt.precompEquivalence` to final functors (#33001) We change the assumption from `Functor.IsEquivalence G` to `(CostructuredArrow.pre G F Y).Final`. We also add some definitional API lemmas for `Functor.DenseAt` and `Functor.IsDenseAt`. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Functor/KanExtension/Dense.lean Modified Mathlib/CategoryTheory/Functor/KanExtension/DenseAt.lean + theorem CategoryTheory.Functor.IsDenseAt.iff_of_final + theorem CategoryTheory.Functor.IsDenseAt.of_final + def CategoryTheory.Functor.denseAtEquiv + theorem CategoryTheory.Functor.isDenseAt_iff 2025-12-17 12:08:45 47e5e6c feat(CategoryTheory): Prove thin categories with finite/countable objects are countable (#32846) Prove thin categories with finite/countable objects are countable. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Countable.lean Modified Mathlib/CategoryTheory/FinCategory/Basic.lean 2025-12-17 11:07:36 e318f81 chore: `grind` tags for `Logic/Relation` (#32791) This PR annotates `Logic/Relation` to enable its results being user by `grind`. ESTIMATED CHANGES Modified Mathlib/Logic/Relation.lean +/- theorem Relation.reflGen_transGen +/- theorem Relation.reflTransGen_reflGen +/- theorem Relation.reflTransGen_transGen +/- theorem Relation.transGen_reflGen 2025-12-17 10:18:43 94e04f1 feat(ENNReal/Inv): add `div_right_comm` (#32993) From https://github.com/urkud/SardMoreira ESTIMATED CHANGES Modified Mathlib/Data/ENNReal/Inv.lean 2025-12-17 10:18:41 cfa7d94 chore: tidy various files (#32981) As usual, `simp`s didn't look noticeably slow. ESTIMATED CHANGES Modified Mathlib/AlgebraicTopology/FundamentalGroupoid/SimplyConnected.lean Modified Mathlib/Analysis/Calculus/ContDiff/Bounds.lean Modified Mathlib/Analysis/Complex/ValueDistribution/CountingFunction.lean Modified Mathlib/Analysis/Complex/ValueDistribution/ProximityFunction.lean Modified Mathlib/Analysis/Convex/Quasiconvex.lean Modified Mathlib/Analysis/Distribution/DerivNotation.lean Modified Mathlib/Analysis/Distribution/Distribution.lean Modified Mathlib/Analysis/Normed/Lp/SmoothApprox.lean Modified Mathlib/Analysis/SpecialFunctions/Arcosh.lean Modified Mathlib/Analysis/SpecialFunctions/Elliptic/Weierstrass.lean +/- theorem PeriodPair.weierstrassP_bound Modified Mathlib/Analysis/SpecialFunctions/Pow/Deriv.lean Modified Mathlib/CategoryTheory/Localization/SmallShiftedHom.lean Modified Mathlib/CategoryTheory/Shift/CommShiftTwo.lean Modified Mathlib/CategoryTheory/Yoneda.lean Modified Mathlib/Data/Finsupp/Option.lean Modified Mathlib/Data/Int/Fib/Basic.lean Modified Mathlib/Data/List/PeriodicityLemma.lean Modified Mathlib/Data/List/Sort.lean Modified Mathlib/Data/Sym/Card.lean Modified Mathlib/LinearAlgebra/AffineSpace/Independent.lean Modified Mathlib/LinearAlgebra/DirectSum/TensorProduct.lean Modified Mathlib/LinearAlgebra/Matrix/Irreducible/Defs.lean Modified Mathlib/LinearAlgebra/Matrix/PosDef.lean Modified Mathlib/LinearAlgebra/Multilinear/Basis.lean Modified Mathlib/LinearAlgebra/SpecialLinearGroup.lean Modified Mathlib/LinearAlgebra/SymmetricAlgebra/Basic.lean Modified Mathlib/RingTheory/MvPolynomial/MonomialOrder.lean 2025-12-17 10:18:39 516a5be chore(LinearAlgebra/TensorProduct/Basic): some API for `lTensor` and `rTensor` (#32854) ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/TensorProduct/Basic.lean + theorem LinearMap.lTensor_comm + theorem LinearMap.lTensor_comp_comm + theorem LinearMap.rTensor_comm + theorem LinearMap.rTensor_comp_comm 2025-12-17 10:18:36 144fc71 feat: standard part in non-Archimedean field (#29687) We define `ArchimedeanClass.stdPart x` as the unique real number with an infinitesimal difference from `x`. This generalizes `Hyperreal.st` for a general (non-)archimedean field. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Order/Ring/Archimedean.lean + theorem ArchimedeanClass.mk_le_add_mk_of_archimedean + theorem ArchimedeanClass.mk_le_mk_add_of_archimedean + theorem ArchimedeanClass.mk_map_nonneg_of_archimedean Added Mathlib/Algebra/Order/Ring/StandardPart.lean + theorem ArchimedeanClass.FiniteElement.ext + theorem ArchimedeanClass.FiniteElement.isUnit_iff_mk_eq_zero + theorem ArchimedeanClass.FiniteElement.mk_intCast + theorem ArchimedeanClass.FiniteElement.mk_natCast + theorem ArchimedeanClass.FiniteElement.mk_neg + theorem ArchimedeanClass.FiniteElement.mk_one + theorem ArchimedeanClass.FiniteElement.mk_zero + theorem ArchimedeanClass.FiniteElement.not_isUnit_iff_mk_pos + theorem ArchimedeanClass.FiniteElement.val_add + theorem ArchimedeanClass.FiniteElement.val_mul + theorem ArchimedeanClass.FiniteElement.val_one + theorem ArchimedeanClass.FiniteElement.val_sub + theorem ArchimedeanClass.FiniteElement.val_zero + theorem ArchimedeanClass.FiniteResidueField.ind + theorem ArchimedeanClass.FiniteResidueField.lt_of_mk_lt_mk + def ArchimedeanClass.FiniteResidueField.mk + theorem ArchimedeanClass.FiniteResidueField.mk_eq_mk + theorem ArchimedeanClass.FiniteResidueField.mk_eq_zero + theorem ArchimedeanClass.FiniteResidueField.mk_le_mk + theorem ArchimedeanClass.FiniteResidueField.mk_lt_mk + theorem ArchimedeanClass.FiniteResidueField.mk_ne_zero + def ArchimedeanClass.FiniteResidueField.ofArchimedean + theorem ArchimedeanClass.FiniteResidueField.ofArchimedean_apply + theorem ArchimedeanClass.FiniteResidueField.ofArchimedean_inj + theorem ArchimedeanClass.FiniteResidueField.ofArchimedean_injective + def ArchimedeanClass.FiniteResidueField + theorem ArchimedeanClass.mk_sub_pos_iff + theorem ArchimedeanClass.mk_sub_stdPart_pos + theorem ArchimedeanClass.ofArchimedean_stdPart + theorem ArchimedeanClass.stdPart_add + theorem ArchimedeanClass.stdPart_div + theorem ArchimedeanClass.stdPart_intCast + theorem ArchimedeanClass.stdPart_inv + theorem ArchimedeanClass.stdPart_mul + theorem ArchimedeanClass.stdPart_natCast + theorem ArchimedeanClass.stdPart_neg + theorem ArchimedeanClass.stdPart_ofNat + theorem ArchimedeanClass.stdPart_of_mk_ne_zero + theorem ArchimedeanClass.stdPart_of_mk_nonneg + theorem ArchimedeanClass.stdPart_one + theorem ArchimedeanClass.stdPart_ratCast + theorem ArchimedeanClass.stdPart_real + theorem ArchimedeanClass.stdPart_sub + theorem ArchimedeanClass.stdPart_zero Modified Mathlib/Order/Quotient.lean 2025-12-17 09:29:33 c453659 feat: avoid `private irreducible_def` using module system (#32861) This PR removes the instances of `private irreducible_def`, replacing them with a module system based solution, using `@[no_expose]` to not expose the definition. This helps make proofs shorter, while still not exporting the value of the definition. One case required `set_option backward.proofsInPublic false` to work. Note that this is turning off the backwards option that is globally set to `true`. The eventual aim is to have it globally `false`, so setting it to `false` locally is not a problem. In order to do this refactor, I locally set ``` set_option backward.proofsInPublic false set_option backward.privateInPublic false ``` so that the module system is happy with the new version. ESTIMATED CHANGES Modified Mathlib/Algebra/Polynomial/Basic.lean - theorem Polynomial.add_eq_add - theorem Polynomial.mul_eq_mul +/- theorem Polynomial.ofFinsupp_nsmul +/- theorem Polynomial.toFinsupp_add +/- theorem Polynomial.toFinsupp_mul +/- theorem Polynomial.toFinsupp_neg +/- theorem Polynomial.toFinsupp_nsmul Modified Mathlib/Algebra/RingQuot.lean +/- theorem RingQuot.add_quot + def RingQuot.intCast +/- theorem RingQuot.mul_quot + def RingQuot.natCast +/- theorem RingQuot.pow_quot + def RingQuot.smul Modified Mathlib/Algebra/SkewMonoidAlgebra/Basic.lean Modified Mathlib/Algebra/Star/RingQuot.lean - theorem RingQuot.star'_quot Modified Mathlib/Data/Finsupp/Defs.lean + def Finsupp.onFinset_support 2025-12-17 09:29:31 55d553d feat(RingTheory/MvPolynomial/MonomialOrder): generalize some `IsRegular` hypotheses to `∈ nonZeroDivisors` (#32780) Similar with #25925, some theorems hypothesizing regular element(s) are generalized to hypothesize non zero-divisors. ESTIMATED CHANGES Modified Mathlib/RingTheory/MvPolynomial/Groebner.lean Modified Mathlib/RingTheory/MvPolynomial/MonomialOrder.lean + theorem MonomialOrder.degree_mul_of_left_mem_nonZeroDivisors + theorem MonomialOrder.degree_mul_of_right_mem_nonZeroDivisors + theorem MonomialOrder.degree_prod_of_mem_nonZeroDivisors - theorem MonomialOrder.degree_smul + theorem MonomialOrder.degree_smul_of_isRegular + theorem MonomialOrder.degree_smul_of_mem_nonZeroDivisors + theorem MonomialOrder.leadingCoeff_mul_of_left_mem_nonZeroDivisors + theorem MonomialOrder.leadingCoeff_mul_of_right_mem_nonZeroDivisors + theorem MonomialOrder.leadingCoeff_prod_of_mem_nonZeroDivisors 2025-12-17 09:13:42 1bc0173 feat(Data/Matrix/Cartan): diagonal theorems for exceptional matrices (#32967) Add theorems proving all diagonal entries of exceptional Cartan matrices are 2: - E₆_diag - E₇_diag - E₈_diag - F₄_diag - G₂_diag ESTIMATED CHANGES Modified Mathlib/Data/Matrix/Cartan.lean + theorem CartanMatrix.E₆_diag + theorem CartanMatrix.E₇_diag + theorem CartanMatrix.E₈_diag + theorem CartanMatrix.F₄_diag + theorem CartanMatrix.G₂_diag 2025-12-17 08:58:42 0cffbe6 fix(scripts): make missing local tag a warning in verify_version_tags.py (#32868) This PR fixes an issue where `verify_version_tags.py` fails when run from `release_checklist.py` because there's no local mathlib4 checkout with tags fetched. The script was failing with "Tag not found locally" even though all real verification checks passed (GitHub tag exists, toolchain correct, cache works, build verification passes). This change makes the missing local tag a warning instead of an error, since the GitHub API check already verifies the tag exists remotely. 🤖 Prepared with Claude Code ESTIMATED CHANGES Modified scripts/verify_version_tags.py 2025-12-17 07:12:31 847ae3f chore: absorb steps into terminal `grind` (#32893) From the nightly job that looks for [these](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Weekly.20linting.20log/near/563739881)[#mathlib4 > Weekly linting log @ 💬](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Weekly.20linting.20log/near/563739881). ESTIMATED CHANGES Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Angle.lean Modified Mathlib/CategoryTheory/Filtered/Basic.lean Modified Mathlib/Data/Array/Extract.lean Modified Mathlib/Data/List/Cycle.lean Modified Mathlib/Data/Subtype.lean Modified Mathlib/MeasureTheory/MeasurableSpace/Pi.lean Modified Mathlib/Topology/Instances/CantorSet.lean Modified Mathlib/Topology/Order/WithTop.lean Modified Mathlib/Topology/Semicontinuous.lean 2025-12-17 06:13:50 07f1b27 feat(CategoryTheory/Monoidal/Rigid): define dual functors (#32943) This PR defines the left and right dual functors from a rigid monoidal category to `(Cᵒᵖ)ᴹᵒᵖ` (the monoidal opposite of the opposite category). - `leftDualFunctor C`: For a left rigid category, the functor `C ⥤ (Cᵒᵖ)ᴹᵒᵖ` sending `X` to `ᘁX` and `f` to `ᘁf`. - `rightDualFunctor C`: For a right rigid category, the functor `C ⥤ (Cᵒᵖ)ᴹᵒᵖ` sending `X` to `Xᘁ` and `f` to `fᘁ`. Future work: Show that in a `RigidCategory`, these functors are monoidal equivalences. 🤖 Prepared with Claude Code ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Monoidal/Rigid/Functor.lean 2025-12-17 05:50:53 dec95a7 feat(Topology/Sets): range of `(Nonempty)Compacts.map` (#32820) ESTIMATED CHANGES Modified Mathlib/Topology/Sets/Compacts.lean + theorem TopologicalSpace.Compacts.range_map + theorem TopologicalSpace.NonemptyCompacts.range_map 2025-12-17 05:35:12 5171a5d feat: lemmas about the `House` of an algebraic number (#32218) Lemmas missing for the formalisation of the proof of the Gelfond–Schneider theorem ESTIMATED CHANGES Modified Mathlib/NumberTheory/NumberField/House.lean + theorem NumberField.exists_conjugate_one_le_norm + theorem NumberField.house_add_le + theorem NumberField.house_nat_mul + theorem NumberField.house_pow_le + theorem NumberField.house_prod_le + theorem NumberField.norm_embedding_le_house + theorem NumberField.norm_norm_le_norm_mul_house_pow + theorem NumberField.one_le_house_of_isIntegral 2025-12-17 04:46:16 6c8fd6f chore(NumberTheory/NumberField/AdeleRing): split file (#32897) The file `NumberTheory/NumberField/AdeleRing.lean` is not long but it's doing two different jobs: developing the theory of the infinite adele ring and of the adele ring. Why not do this in two files? This PR does nothing but the split (adding `NumberTheory/NumberField/InfiniteAdeleRing.lean`). ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/NumberTheory/NumberField/AdeleRing.lean - theorem NumberField.InfiniteAdeleRing.algebraMap_apply - theorem NumberField.InfiniteAdeleRing.denseRange_algebraMap - theorem NumberField.InfiniteAdeleRing.mixedEmbedding_eq_algebraMap_comp - theorem NumberField.InfiniteAdeleRing.ringEquiv_mixedSpace_apply - def NumberField.InfiniteAdeleRing Added Mathlib/NumberTheory/NumberField/InfiniteAdeleRing.lean + theorem NumberField.InfiniteAdeleRing.algebraMap_apply + theorem NumberField.InfiniteAdeleRing.denseRange_algebraMap + theorem NumberField.InfiniteAdeleRing.mixedEmbedding_eq_algebraMap_comp + theorem NumberField.InfiniteAdeleRing.ringEquiv_mixedSpace_apply + def NumberField.InfiniteAdeleRing 2025-12-17 04:27:18 a1fc8a7 chore(GroupTheory/Torsion): delete deprecated declarations (#32843) These are on my way for #30563. ESTIMATED CHANGES Modified Mathlib/GroupTheory/Torsion.lean - theorem AddMonoid.IsTorsionFree.of_noZeroSMulDivisors - theorem AddMonoid.isTorsionFree_iff_noZeroSMulDivisors_int - theorem AddMonoid.isTorsionFree_iff_noZeroSMulDivisors_nat - theorem Monoid.IsTorsion.not_torsion_free - theorem Monoid.IsTorsionFree.not_torsion - theorem Monoid.IsTorsionFree.prod - theorem Monoid.IsTorsionFree.quotient_torsion - theorem Monoid.IsTorsionFree.subgroup - def Monoid.IsTorsionFree - theorem Monoid.isTorsionFree_iff_torsion_eq_bot - theorem Monoid.isTorsionFree_of_subsingleton - theorem Monoid.not_isTorsionFree_iff 2025-12-17 02:05:41 e34e953 feat(Linter/FlexibleLinter): generate Try this: simp only suggestions (#32425) When the flexible linter detects a `simp` or `simp_all` (without `only`) followed by a rigid tactic, it now: - re-runs simp in the original context to capture the used theorems - generates an actionable "Try this: simp only [...]" suggestion that users can click to apply This is a follow-up to #32421, which added the actionable warning message. This PR directly provides a fix. Example output: ``` warning: 'simp' is a flexible tactic modifying '⊢'. Try 'simp?' and use the suggested 'simp only [...]'. Note: This linter can be disabled with `set_option linter.flexible false` ESTIMATED CHANGES Modified Mathlib/Tactic/Linter/FlexibleLinter.lean + structure Mathlib.Linter.Flexible.StainData + structure Mathlib.Linter.Flexible.TacticData - def Mathlib.Linter.Flexible.extractCtxAndGoals + def Mathlib.Linter.Flexible.extractTacticData + def Mathlib.Linter.Flexible.generateSimpSuggestion Modified MathlibTest/FlexibleLinter.lean Modified MathlibTest/ImportHeavyFlexibleLinter.lean 2025-12-17 01:35:59 87b2aab feat: locally compact topological group is complete (for its right uniformity) (#32944) See also [zulip discussion](https://leanprover.zulipchat.com/#narrow/channel/416277-FLT/topic/Are.20the.20adeles.20Polish.3F) ESTIMATED CHANGES Modified Mathlib/Topology/Algebra/IsUniformGroup/Basic.lean + theorem IsRightUniformGroup.completeSpace_of_weaklyLocallyCompactSpace 2025-12-16 23:53:34 9222d73 feat(Analysis/TemperedDistribution): embedding of `Lp`-functions (#32767) We prove that every `Lp` function defines a tempered distribution via integration. This embedding is a continuous linear map and it is injective. We also record the embedding as a coercion from `Lp` to `TemperedDistribution`. ESTIMATED CHANGES Modified Mathlib/Analysis/Distribution/TemperedDistribution.lean + theorem MeasureTheory.Lp.ker_toTemperedDistributionCLM_eq_bot + def MeasureTheory.Lp.toTemperedDistribution + def MeasureTheory.Lp.toTemperedDistributionCLM + theorem MeasureTheory.Lp.toTemperedDistributionCLM_apply + theorem MeasureTheory.Lp.toTemperedDistribution_apply Modified docs/undergrad.yaml 2025-12-16 22:42:47 edaf32c feat(TacticAnalysis): copy args when replacing linarith with grind (#32668) This PR modifies `grindReplacementWith` to accept an `extractArgs` function that can extract term arguments from the original tactic syntax. When arguments are found, they are converted to `grindParam` syntax and included in the replacement `grind` call. Further, if an argument is a global identifier, we wrap it in `id` to ensure `grind` interprets it as a term (rather than trying to find a trigger pattern). This makes the regression linter more useful - instead of just trying `grind`, it now tries `grind [X, Y]` when the original was `linarith [X, Y]`. Example output before: ``` fail_if_success grind linarith [Finset.mem_antidiagonal.mp hij, Real.pi_pos] ``` Example output after: ``` fail_if_success grind [Finset.mem_antidiagonal.mp hij, id Real.pi_pos] linarith [Finset.mem_antidiagonal.mp hij, Real.pi_pos] ``` 🤖 Prepared with Claude Code ESTIMATED CHANGES Modified Mathlib/Tactic/TacticAnalysis/Declarations.lean 2025-12-16 21:41:49 7034fdc chore(RingTheory): fix whitespace (#32962) Found by extending the commandStart linter to proof bodies. ESTIMATED CHANGES Modified Mathlib/RingTheory/Congruence/Hom.lean Modified Mathlib/RingTheory/Coprime/Lemmas.lean Modified Mathlib/RingTheory/DedekindDomain/Ideal/Lemmas.lean Modified Mathlib/RingTheory/Etale/StandardEtale.lean Modified Mathlib/RingTheory/Extension/Presentation/Basic.lean +/- def Algebra.Presentation.baseChange Modified Mathlib/RingTheory/Flat/Basic.lean Modified Mathlib/RingTheory/Flat/FaithfullyFlat/Basic.lean Modified Mathlib/RingTheory/FractionalIdeal/Extended.lean Modified Mathlib/RingTheory/HahnSeries/Summable.lean Modified Mathlib/RingTheory/Ideal/Cotangent.lean Modified Mathlib/RingTheory/Ideal/GoingUp.lean Modified Mathlib/RingTheory/Ideal/Maximal.lean Modified Mathlib/RingTheory/Ideal/Norm/RelNorm.lean Modified Mathlib/RingTheory/Ideal/Operations.lean Modified Mathlib/RingTheory/Ideal/Over.lean +/- theorem Ideal.under_under Modified Mathlib/RingTheory/Ideal/Pointwise.lean Modified Mathlib/RingTheory/IntegralClosure/Algebra/Ideal.lean Modified Mathlib/RingTheory/IntegralClosure/IntegralRestrict.lean Modified Mathlib/RingTheory/IsAdjoinRoot.lean Modified Mathlib/RingTheory/LocalRing/Module.lean Modified Mathlib/RingTheory/Localization/Algebra.lean Modified Mathlib/RingTheory/Localization/BaseChange.lean Modified Mathlib/RingTheory/Localization/Integer.lean Modified Mathlib/RingTheory/Localization/Module.lean Modified Mathlib/RingTheory/MatrixPolynomialAlgebra.lean Modified Mathlib/RingTheory/MvPolynomial.lean Modified Mathlib/RingTheory/MvPolynomial/Groebner.lean Modified Mathlib/RingTheory/MvPolynomial/MonomialOrder.lean Modified Mathlib/RingTheory/MvPowerSeries/NoZeroDivisors.lean Modified Mathlib/RingTheory/MvPowerSeries/Substitution.lean Modified Mathlib/RingTheory/NormalClosure.lean Modified Mathlib/RingTheory/Polynomial/Basic.lean Modified Mathlib/RingTheory/Polynomial/Cyclotomic/Basic.lean Modified Mathlib/RingTheory/Polynomial/Eisenstein/Criterion.lean Modified Mathlib/RingTheory/Polynomial/Nilpotent.lean Modified Mathlib/RingTheory/Polynomial/UniversalFactorizationRing.lean Modified Mathlib/RingTheory/PolynomialLaw/Basic.lean Modified Mathlib/RingTheory/PowerSeries/Order.lean Modified Mathlib/RingTheory/Smooth/Kaehler.lean Modified Mathlib/RingTheory/Spectrum/Prime/ChevalleyComplexity.lean Modified Mathlib/RingTheory/Spectrum/Prime/ConstructibleSet.lean Modified Mathlib/RingTheory/Spectrum/Prime/Topology.lean Modified Mathlib/RingTheory/TensorProduct/IsBaseChangeFree.lean Modified Mathlib/RingTheory/TensorProduct/MvPolynomial.lean Modified Mathlib/RingTheory/UniqueFactorizationDomain/Basic.lean Modified Mathlib/RingTheory/UniqueFactorizationDomain/NormalizedFactors.lean Modified Mathlib/RingTheory/Valuation/Basic.lean +/- theorem AddValuation.map_inv Modified Mathlib/RingTheory/Valuation/Discrete/Basic.lean Modified Mathlib/RingTheory/Valuation/DiscreteValuativeRel.lean 2025-12-16 21:41:46 89d3127 feat: use `IsCompletelyPseudometrizable` class in measure regularity statements (#32590) The new statements are slightly stronger than the old ones because they don't require the uniform structure to be given. ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Measure/RegularityCompacts.lean - theorem MeasureTheory.PolishSpace.innerRegular_isCompact_isClosed_measurableSet +/- theorem MeasureTheory.exists_isCompact_closure_measure_compl_lt +/- theorem MeasureTheory.innerRegularWRT_isCompact +/- theorem MeasureTheory.innerRegularWRT_isCompact_closure +/- theorem MeasureTheory.innerRegularWRT_isCompact_isClosed +/- theorem MeasureTheory.innerRegularWRT_isCompact_isClosed_isOpen +/- theorem MeasureTheory.innerRegularWRT_isCompact_isOpen +/- theorem MeasureTheory.innerRegular_isCompact_isClosed_measurableSet_of_finite Modified Mathlib/MeasureTheory/Measure/Tight.lean +/- theorem MeasureTheory.isTightMeasureSet_singleton 2025-12-16 21:41:44 8998121 chore: deprecate `AsLinearOrder` (#31013) This goes back to Lean 3 (https://github.com/leanprover-community/mathlib3/pull/4037). It was used to prove two results about "linearly ordered lattices" [`le_sup_iff`](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Order/Lattice.html#le_sup_iff) and [`inf_le_iff`](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Order/Lattice.html#inf_le_iff) which have long since been turned into theorems on linear orders. The proper way to deal with a totally ordered partial order is to just write a `LinearOrder` instance, so there is no need for this. ESTIMATED CHANGES Modified Mathlib/Order/Basic.lean 2025-12-16 21:41:42 9668ec0 chore(Algebra/Ring/Defs): add two classes (minimally invasive version) (#28604) Add the missing `NonAssocComm(Semi)ring` classes and add some missing instances between existing classes. Contrary to #28532, the approach here doesn't add any new `extends`. ESTIMATED CHANGES Modified Mathlib/Algebra/Colimit/DirectLimit.lean Modified Mathlib/Algebra/Ring/Defs.lean 2025-12-16 21:06:32 54bd5cb feat: vectors which subtend obtuse angles with each other and all lie in the same half-space are linearly independent (#32923) ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/QuadraticForm/Basic.lean + theorem QuadraticMap.PosDef.le_zero_iff Modified Mathlib/LinearAlgebra/QuadraticForm/Dual.lean + theorem LinearMap.BilinForm.linearIndependent_of_pairwise_le_zero 2025-12-16 21:06:29 7b4768b chore(Topology/Compactness): golf (#32755) ESTIMATED CHANGES Modified Mathlib/Topology/Compactness/Compact.lean 2025-12-16 21:06:26 5ed335b feat: smooth embeddings (#32589) Define smooth embeddings between smooth manifolds: a map is a smooth embedding iff it is both a smooth immersion and a topological embedding. We also prove basic properties (such as being stable under products); stronger results will be added in future PRs. Note that unlike smooth immersions, we do not add definitions for - being a smooth embedding on a set (as this doesn't exist in the topological category either), - being an embedding at a point (being an embedding is a global notion; moreover, every immersion is locally an embedding anyway, so "being an immersion at x" is sufficient to state this) - variants with respect to a fixed complement: the motivation for immersions (considering the equivalent local descriptions of smooth submanifolds) do not apply to this global notion. Along the way, we add that the identity map is a smooth immersion, and rename the `ofOpens` declaration to `of_opens` (which would have been the correct name all along). As they were added just two days ago, we omit a deprecation. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Geometry/Manifold/Immersion.lean - theorem Manifold.IsImmersion.ofOpen + theorem Manifold.IsImmersion.of_opens - theorem Manifold.IsImmersionAt.ofOpen + theorem Manifold.IsImmersionAt.of_opens - theorem Manifold.IsImmersionAtOfComplement.ofOpen + theorem Manifold.IsImmersionAtOfComplement.of_opens - theorem Manifold.IsImmersionOfComplement.ofOpen + theorem Manifold.IsImmersionOfComplement.of_opens Added Mathlib/Geometry/Manifold/SmoothEmbedding.lean + theorem Manifold.IsSmoothEmbedding.of_opens + theorem Manifold.IsSmoothEmbedding.prodMap + structure Manifold.IsSmoothEmbedding Modified docs/overview.yaml 2025-12-16 21:06:24 ad5682e feat(Analysis/SpecialFunctions/Trigonometric/Angle): `toReal` addition lemmas (#32259) Add two lemmas ```lean lemma toReal_add_eq_toReal_add_toReal {θ ψ : Angle} (hθ : θ ≠ π) (hψ : ψ ≠ π) (hs : θ.sign ≠ ψ.sign ∨ θ.sign = (θ + ψ).sign) : (θ + ψ).toReal = θ.toReal + ψ.toReal := by ``` ```lean lemma abs_toReal_add_eq_two_pi_sub_abs_toReal_add_abs_toReal {θ ψ : Angle} (hs : θ.sign = ψ.sign) (hsa : θ.sign ≠ (θ + ψ).sign) : |(θ + ψ).toReal| = 2 * π - (|θ.toReal| + |ψ.toReal|) := by ``` about `(θ + ψ).toReal`. Also add a lemma `abs_toReal_neg` used in proving them, and lemmas `sign_two_nsmul_eq_neg_sign_iff` and `sign_two_zsmul_eq_neg_sign_iff` (analogous to existing `sign_two_nsmul_eq_sign_iff` and `sign_two_zsmul_eq_sign_iff`) that are of use together with the `toReal` lemmas in relating oriented and unoriented angle bisection results. ESTIMATED CHANGES Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Angle.lean + theorem Real.Angle.abs_toReal_add_eq_two_pi_sub_abs_toReal_add_abs_toReal + theorem Real.Angle.abs_toReal_neg + theorem Real.Angle.sign_two_nsmul_eq_neg_sign_iff + theorem Real.Angle.sign_two_zsmul_eq_neg_sign_iff + theorem Real.Angle.toReal_add_eq_toReal_add_toReal + theorem Real.Angle.toReal_add_of_sign_eq_neg_sign + theorem Real.Angle.toReal_add_of_sign_pos_sign_neg + theorem Real.Angle.toReal_mem_Ioo_iff_sign_pos 2025-12-16 20:22:57 5630057 feat: iteratedFDeriv{Within,}_prodMk (#32977) From https://github.com/urkud/SardMoreira ESTIMATED CHANGES Modified Mathlib/Analysis/Calculus/ContDiff/Basic.lean + theorem iteratedFDerivWithin_prodMk + theorem iteratedFDeriv_prodMk 2025-12-16 20:22:56 f9531e4 feat: there exists a linear form not vanishing on any finite collection of vectors (#32920) Provided this is not false for trivial reasons (finite coefficients or one of the vectors is zero). ESTIMATED CHANGES Modified Mathlib/Algebra/Module/Submodule/Union.lean + theorem Module.exists_dual_forall_apply_ne_zero 2025-12-16 20:22:53 e818b4a doc: fix articles a/an (#32664) Use the correct article “an” before certain single-letter code terms that are pronounced with a vowel (`N`, `R`, `S`, `n` and `r`). ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/Operations.lean Modified Mathlib/Algebra/Category/ModuleCat/ChangeOfRings.lean Modified Mathlib/Algebra/Category/ModuleCat/LeftResolution.lean Modified Mathlib/Algebra/CharP/LinearMaps.lean Modified Mathlib/Algebra/Homology/DerivedCategory/Ext/Linear.lean Modified Mathlib/Algebra/Homology/ShortComplex/Linear.lean Modified Mathlib/Algebra/Module/FinitePresentation.lean Modified Mathlib/Algebra/Module/Presentation/Differentials.lean Modified Mathlib/Algebra/Module/Torsion/Basic.lean Modified Mathlib/Algebra/Module/Torsion/Free.lean Modified Mathlib/Algebra/MvPolynomial/Basic.lean Modified Mathlib/Algebra/Polynomial/Module/AEval.lean Modified Mathlib/AlgebraicGeometry/Over.lean Modified Mathlib/AlgebraicGeometry/RationalMap.lean Modified Mathlib/AlgebraicGeometry/SpreadingOut.lean Modified Mathlib/AlgebraicTopology/SimplicialSet/StrictSegal.lean Modified Mathlib/Analysis/Convex/Cone/Basic.lean Modified Mathlib/CategoryTheory/Center/Linear.lean Modified Mathlib/CategoryTheory/Localization/Linear.lean Modified Mathlib/CategoryTheory/Quotient/Linear.lean Modified Mathlib/Combinatorics/SimpleGraph/ConcreteColorings.lean Modified Mathlib/Data/Fin/Tuple/Take.lean Modified Mathlib/Data/Rel/Separated.lean Modified Mathlib/FieldTheory/KummerExtension.lean Modified Mathlib/FieldTheory/Minpoly/IsConjRoot.lean Modified Mathlib/Geometry/Convex/Cone/Basic.lean Modified Mathlib/NumberTheory/Cyclotomic/PrimitiveRoots.lean Modified Mathlib/NumberTheory/NumberField/Cyclotomic/Basic.lean Modified Mathlib/NumberTheory/NumberField/Cyclotomic/Embeddings.lean Modified Mathlib/RingTheory/Bialgebra/Basic.lean Modified Mathlib/RingTheory/Extension/Generators.lean Modified Mathlib/RingTheory/FilteredAlgebra/Basic.lean Modified Mathlib/RingTheory/Flat/Basic.lean Modified Mathlib/RingTheory/Kaehler/Basic.lean Modified Mathlib/RingTheory/KrullDimension/Module.lean Modified Mathlib/RingTheory/LaurentSeries.lean Modified Mathlib/RingTheory/Localization/NormTrace.lean Modified Mathlib/RingTheory/PicardGroup.lean Modified Mathlib/RingTheory/PolynomialLaw/Basic.lean Modified Mathlib/RingTheory/TensorProduct/Free.lean Modified Mathlib/RingTheory/Unramified/Finite.lean 2025-12-16 19:53:44 c47b570 chore(CategoryTheory): fix whitespace (#32928) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Abelian/Injective/Basic.lean Modified Mathlib/CategoryTheory/Abelian/Injective/Resolution.lean Modified Mathlib/CategoryTheory/Abelian/LeftDerived.lean Modified Mathlib/CategoryTheory/Abelian/Projective/Resolution.lean Modified Mathlib/CategoryTheory/Adjunction/Additive.lean Modified Mathlib/CategoryTheory/Adjunction/Evaluation.lean Modified Mathlib/CategoryTheory/Adjunction/Lifting/Left.lean Modified Mathlib/CategoryTheory/Adjunction/Lifting/Right.lean +/- def CategoryTheory.LiftRightAdjoint.otherMap Modified Mathlib/CategoryTheory/Adjunction/Reflective.lean Modified Mathlib/CategoryTheory/Adjunction/Triple.lean +/- theorem CategoryTheory.Adjunction.Triple.op_rightToLeft Modified Mathlib/CategoryTheory/Bicategory/Adjunction/Mate.lean Modified Mathlib/CategoryTheory/Bicategory/CatEnriched.lean Modified Mathlib/CategoryTheory/Bicategory/EqToHom.lean Modified Mathlib/CategoryTheory/Bicategory/Extension.lean Modified Mathlib/CategoryTheory/Bicategory/Functor/Lax.lean Modified Mathlib/CategoryTheory/Bicategory/Functor/LocallyDiscrete.lean Modified Mathlib/CategoryTheory/Bicategory/Kan/HasKan.lean Modified Mathlib/CategoryTheory/Bicategory/Monad/Basic.lean +/- def CategoryTheory.Bicategory.OplaxTrans.ComonadBicat.hom Modified Mathlib/CategoryTheory/Bicategory/NaturalTransformation/Lax.lean Modified Mathlib/CategoryTheory/Bicategory/NaturalTransformation/Oplax.lean Modified Mathlib/CategoryTheory/Bicategory/NaturalTransformation/Pseudo.lean Modified Mathlib/CategoryTheory/Bicategory/Strict/Pseudofunctor.lean Modified Mathlib/CategoryTheory/CodiscreteCategory.lean +/- def CategoryTheory.Codiscrete.functorToCat Modified Mathlib/CategoryTheory/Comma/CardinalArrow.lean Modified Mathlib/CategoryTheory/Comma/Final.lean Modified Mathlib/CategoryTheory/Comma/Over/Pullback.lean Modified Mathlib/CategoryTheory/Core.lean Modified Mathlib/CategoryTheory/EffectiveEpi/Preserves.lean Modified Mathlib/CategoryTheory/Enriched/FunctorCategory.lean Modified Mathlib/CategoryTheory/FiberedCategory/BasedCategory.lean +/- theorem CategoryTheory.BasedFunctor.comp_id Modified Mathlib/CategoryTheory/FiberedCategory/Cartesian.lean Modified Mathlib/CategoryTheory/FiberedCategory/Fibered.lean Modified Mathlib/CategoryTheory/Filtered/Small.lean Modified Mathlib/CategoryTheory/Functor/Derived/PointwiseRightDerived.lean Modified Mathlib/CategoryTheory/Functor/FunctorHom.lean Modified Mathlib/CategoryTheory/Functor/KanExtension/Basic.lean Modified Mathlib/CategoryTheory/Functor/KanExtension/Pointwise.lean Modified Mathlib/CategoryTheory/Generator/Basic.lean Modified Mathlib/CategoryTheory/GradedObject/Braiding.lean Modified Mathlib/CategoryTheory/GradedObject/Monoidal.lean Modified Mathlib/CategoryTheory/Grothendieck.lean +/- def CategoryTheory.Grothendieck.functor Modified Mathlib/CategoryTheory/Groupoid/FreeGroupoidOfCategory.lean +/- def CategoryTheory.FreeGroupoid.mapComp Modified Mathlib/CategoryTheory/GuitartExact/VerticalComposition.lean Modified Mathlib/CategoryTheory/IsConnected.lean Modified Mathlib/CategoryTheory/Limits/Constructions/EventuallyConstant.lean Modified Mathlib/CategoryTheory/Limits/FilteredColimitCommutesFiniteLimit.lean Modified Mathlib/CategoryTheory/Limits/Final.lean Modified Mathlib/CategoryTheory/Limits/Fubini.lean Modified Mathlib/CategoryTheory/Limits/Preserves/Shapes/AbelianImages.lean Modified Mathlib/CategoryTheory/Limits/Preserves/Shapes/Pullbacks.lean Modified Mathlib/CategoryTheory/Limits/Presheaf.lean Modified Mathlib/CategoryTheory/Limits/Shapes/End.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Multiequalizer.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Opposites/Products.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Products.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Pullback/Categorical/CatCospanTransform.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Pullback/Cospan.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Reflexive.lean Modified Mathlib/CategoryTheory/Limits/Sifted.lean Modified Mathlib/CategoryTheory/Limits/Types/Pullbacks.lean Modified Mathlib/CategoryTheory/Limits/VanKampen.lean Modified Mathlib/CategoryTheory/Linear/Yoneda.lean Modified Mathlib/CategoryTheory/Localization/CalculusOfFractions.lean Modified Mathlib/CategoryTheory/Localization/Construction.lean Modified Mathlib/CategoryTheory/Localization/DerivabilityStructure/PointwiseRightDerived.lean Modified Mathlib/CategoryTheory/Localization/Monoidal/Basic.lean Modified Mathlib/CategoryTheory/Localization/Monoidal/Braided.lean Modified Mathlib/CategoryTheory/Localization/Monoidal/Functor.lean Modified Mathlib/CategoryTheory/Monad/Algebra.lean Modified Mathlib/CategoryTheory/Monad/Equalizer.lean +/- def CategoryTheory.Comonad.CofreeEqualizer.topMap Modified Mathlib/CategoryTheory/Monad/Limits.lean +/- def CategoryTheory.Comonad.ForgetCreatesColimits'.γ Modified Mathlib/CategoryTheory/Monoidal/Braided/Basic.lean Modified Mathlib/CategoryTheory/Monoidal/Cartesian/Basic.lean Modified Mathlib/CategoryTheory/Monoidal/Cartesian/Cat.lean Modified Mathlib/CategoryTheory/Monoidal/Closed/Basic.lean Modified Mathlib/CategoryTheory/Monoidal/DayConvolution.lean +/- def CategoryTheory.MonoidalCategory.LawfulDayConvolutionMonoidalCategoryStruct.convolutionUnit Modified Mathlib/CategoryTheory/Monoidal/DayConvolution/Closed.lean Modified Mathlib/CategoryTheory/Monoidal/DayConvolution/DayFunctor.lean Modified Mathlib/CategoryTheory/Monoidal/ExternalProduct/Basic.lean Modified Mathlib/CategoryTheory/Monoidal/ExternalProduct/KanExtension.lean Modified Mathlib/CategoryTheory/Monoidal/Free/Coherence.lean Modified Mathlib/CategoryTheory/Monoidal/Grp_.lean +/- theorem CategoryTheory.GrpObj.tensorObj.Functor.obj.ι_def Modified Mathlib/CategoryTheory/Monoidal/Internal/FunctorCategory.lean Modified Mathlib/CategoryTheory/Monoidal/Mon_.lean Modified Mathlib/CategoryTheory/Monoidal/Multifunctor.lean Modified Mathlib/CategoryTheory/Monoidal/Opposite.lean Modified Mathlib/CategoryTheory/MorphismProperty/Composition.lean Modified Mathlib/CategoryTheory/MorphismProperty/Representable.lean Modified Mathlib/CategoryTheory/Preadditive/LeftExact.lean Modified Mathlib/CategoryTheory/Presentable/EssentiallyLarge.lean Modified Mathlib/CategoryTheory/Quotient.lean Modified Mathlib/CategoryTheory/Shift/Twist.lean Modified Mathlib/CategoryTheory/Sites/Adjunction.lean Modified Mathlib/CategoryTheory/Sites/Coherent/Basic.lean Modified Mathlib/CategoryTheory/Sites/Coherent/CoherentTopology.lean Modified Mathlib/CategoryTheory/Sites/Coherent/Comparison.lean Modified Mathlib/CategoryTheory/Sites/Coherent/ExtensiveSheaves.lean Modified Mathlib/CategoryTheory/Sites/Coherent/RegularTopology.lean Modified Mathlib/CategoryTheory/Sites/Coherent/SheafComparison.lean Modified Mathlib/CategoryTheory/Sites/ConcreteSheafification.lean Modified Mathlib/CategoryTheory/Sites/CoverLifting.lean Modified Mathlib/CategoryTheory/Sites/Coverage.lean Modified Mathlib/CategoryTheory/Sites/DenseSubsite/Basic.lean Modified Mathlib/CategoryTheory/Sites/EffectiveEpimorphic.lean Modified Mathlib/CategoryTheory/Sites/EpiMono.lean Modified Mathlib/CategoryTheory/Sites/EqualizerSheafCondition.lean +/- def CategoryTheory.Equalizer.Presieve.Arrows.SecondObj Modified Mathlib/CategoryTheory/Sites/NonabelianCohomology/H1.lean Modified Mathlib/CategoryTheory/Sites/PreservesSheafification.lean Modified Mathlib/CategoryTheory/Sites/Sheafification.lean Modified Mathlib/CategoryTheory/Sites/Sieves.lean Modified Mathlib/CategoryTheory/SmallObject/Iteration/ExtendToSucc.lean Modified Mathlib/CategoryTheory/SmallObject/Iteration/FunctorOfCocone.lean Modified Mathlib/CategoryTheory/Subobject/Lattice.lean Modified Mathlib/CategoryTheory/Topos/Classifier.lean Modified Mathlib/CategoryTheory/Triangulated/Pretriangulated.lean Modified Mathlib/CategoryTheory/Triangulated/Rotate.lean Modified Mathlib/CategoryTheory/Triangulated/TStructure/Basic.lean Modified Mathlib/CategoryTheory/Triangulated/Triangulated.lean 2025-12-16 19:53:42 80eb32f feat: miscellaneous lemmas about root systems (#32922) These are useful when proving that a root system has a base. ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/PerfectPairing/Restrict.lean + theorem LinearMap.finrank_eq_of_isPerfPair Modified Mathlib/LinearAlgebra/RootSystem/BaseChange.lean Modified Mathlib/LinearAlgebra/RootSystem/Finite/Nondegenerate.lean + theorem RootPairing.posRootForm_rootFormIn_posDef Modified Mathlib/LinearAlgebra/RootSystem/IsValuedIn.lean + theorem RootPairing.finrank_corootSpanIn + theorem RootPairing.finrank_rootSpanIn + theorem RootPairing.pairingIn_rat + theorem RootPairing.toLinearMap_apply_apply_mem_range_algebraMap 2025-12-16 16:22:34 f91c049 feat: alias_in attribute (#30131) * A small wrapper for adding an alias of a declaration in another namespace. * application time `.afterCompilation` is necessary for `#eval` to work correctly * Docstrings are copied, jump-to-definition works (no test in the test file, but tested locally) * To be used for CW-complexes, where lemmas are frequently duplicated between `RelCWComplex` and `CWComplex`. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Util/AliasIn.lean Added MathlibTest/Util/AliasIn.lean + def Bar.baz4 + def Foo.Bar.baz2 + def Foo.Bar.baz3 + def Foo.Bar.baz4 + def Foo.Bar.baz5 + def Foo.Bar.baz + def non.local + def non.scoped 2025-12-16 15:01:37 022cc92 feat: Add some oangle theorems (#31505) Add several theorems relating oriented angles and affine independence / collinearity, together with auxiliary lemmas about the equality and sign of oriented angles. Main additions `oangle_ne_zero_and_ne_pi_iff_not_collinear` – An oriented angle is neither `0` nor `π` if and only if the three points are not collinear. `affineIndependent_iff_of_oangle_eq` – If two oriented angles are equal, then the corresponding triples of points are affinely independent simultaneously. `not_collinear_iff_of_angle_eq` – If two oriented angles are equal, one triple is collinear if and only if the other is. `oangle_eq_or_eq_neg_of_angle_eq` – The oriented angles are equal or opposite if the unoriented angles are equal. `angle_eq_neg_of_two_zsmul_angle_eq` – If `2 • a = 2 • b` and the signs are opposite, then `a = b + π.` `two_zsmul_eq_iff_eq` – Characterizes equality of doubled angles when signs are equal. `oangle_sub_oangle_ne_pi_of_not_collinear` – If the signs of two oriented angles are equal and the points are not collinear, their difference is not `π`. ESTIMATED CHANGES Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Angle.lean + theorem Real.Angle.eq_add_pi_of_two_zsmul_eq_of_sign_eq_neg + theorem Real.Angle.sub_ne_pi_of_sign_eq_of_sign_ne_zero + theorem Real.Angle.two_zsmul_eq_iff_eq Modified Mathlib/Geometry/Euclidean/Angle/Oriented/Affine.lean + theorem EuclideanGeometry.oangle_eq_or_eq_neg_of_angle_eq + theorem EuclideanGeometry.oangle_ne_zero_and_ne_pi_iff_not_collinear 2025-12-16 13:45:33 2f24e66 chore(FieldTheory): fix whitespace (#32949) Extracted from https://github.com/leanprover-community/mathlib4/pull/30658. Found by extending the commandStart linter to proof bodies. ESTIMATED CHANGES Modified Mathlib/FieldTheory/CardinalEmb.lean Modified Mathlib/FieldTheory/Finite/Basic.lean Modified Mathlib/FieldTheory/Galois/Infinite.lean Modified Mathlib/FieldTheory/Galois/Profinite.lean Modified Mathlib/FieldTheory/IntermediateField/Basic.lean Modified Mathlib/FieldTheory/IsAlgClosed/Basic.lean Modified Mathlib/FieldTheory/JacobsonNoether.lean Modified Mathlib/FieldTheory/KrullTopology.lean Modified Mathlib/FieldTheory/LinearDisjoint.lean Modified Mathlib/FieldTheory/Minpoly/ConjRootClass.lean +/- theorem ConjRootClass.carrier_neg Modified Mathlib/FieldTheory/Minpoly/Field.lean Modified Mathlib/FieldTheory/Minpoly/IsConjRoot.lean Modified Mathlib/FieldTheory/RatFunc/AsPolynomial.lean 2025-12-16 13:45:31 047c422 feat(Geometry/Convex/Cone): define and characterize generating convex cone (#32300) Define the notion of a generating convex cone. Prove some initial simple lemmas about generating cones. ESTIMATED CHANGES Modified Mathlib/Geometry/Convex/Cone/Basic.lean + theorem ConvexCone.IsGenerating.isReproducing + theorem ConvexCone.IsGenerating.mono + theorem ConvexCone.IsGenerating.of_top_le_span + theorem ConvexCone.IsGenerating.span_eq_top + theorem ConvexCone.IsGenerating.top_le_span + def ConvexCone.IsGenerating + theorem ConvexCone.IsReproducing.isGenerating + theorem ConvexCone.IsReproducing.of_univ_subset + theorem ConvexCone.IsReproducing.sub_eq_univ + def ConvexCone.IsReproducing + theorem ConvexCone.isGenerating_bot + theorem ConvexCone.isGenerating_bot_iff + theorem ConvexCone.isGenerating_iff_isReproducing + theorem ConvexCone.isGenerating_top 2025-12-16 12:50:30 4b33e2f feat: update technical debt metrics (#32951) - remove the `skipAssignedInstances` count: mathlib no longer uses it - include `backward.proofsInPublic` as a separate metric (even though it is included in the count of "all backwards-compatibility flags) - include `backward.privateInPublic` also - include `linter.flexible` option uses as well ESTIMATED CHANGES Modified scripts/technical-debt-metrics.sh 2025-12-16 12:50:28 5704939 chore: update Mathlib dependencies 2025-12-16 (#32878) This PR updates the Mathlib dependencies. ESTIMATED CHANGES Modified lake-manifest.json 2025-12-16 12:16:12 d47ca0f feat(Topology): uniformity has linearly ordered basis implies completely normal (#32792) Prove if the uniformity has linearly ordered basis then the space is completely normal. Golf a proof, and reduce imports. ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Measure/Regular.lean Modified Mathlib/Topology/GDelta/MetrizableSpace.lean Modified Mathlib/Topology/UniformSpace/Separation.lean + theorem UniformSpace.completelyNormalSpace_of_hasAntitoneBasis 2025-12-16 11:38:03 9e6235d chore(GroupTheory): fix whitespace (#32950) Extracted from https://github.com/leanprover-community/mathlib4/pull/30658. Found by extending the commandStart linter to proof bodies. ESTIMATED CHANGES Modified Mathlib/GroupTheory/Complement.lean Modified Mathlib/GroupTheory/Coxeter/Length.lean Modified Mathlib/GroupTheory/FreeGroup/Orbit.lean +/- theorem FreeGroup.startsWith.Injective Modified Mathlib/GroupTheory/GroupAction/Jordan.lean Modified Mathlib/GroupTheory/GroupAction/SubMulAction/OfStabilizer.lean Modified Mathlib/GroupTheory/Perm/DomMulAct.lean Modified Mathlib/GroupTheory/Rank.lean Modified Mathlib/GroupTheory/SpecificGroups/Cyclic.lean 2025-12-16 11:38:01 2c2a4d1 chore: remove multiGoal false options (#32948) There are 3 such removals and they are removed for 3 different reasons: * in `Mathlib/Analysis/Analytic/Within.lean`, there are several active goals, so we use the focusing dots; * in `Mathlib/Analysis/CStarAlgebra/ApproximateUnit.lean`, the linter does not actually flag an issue; * in `Mathlib/Probability/Kernel/Proper.lean`, the *infoview* hides a goal in the presence of `simp_rw`, but the goal is there ([#mathlib4 > `simp_rw` hides a goal @ 💬](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/.60simp_rw.60.20hides.20a.20goal/near/564013486)). ESTIMATED CHANGES Modified Mathlib/Analysis/Analytic/Within.lean Modified Mathlib/Analysis/CStarAlgebra/ApproximateUnit.lean Modified Mathlib/Probability/Kernel/Proper.lean 2025-12-16 11:37:59 6cb9d9d feat: t2Space_iff_of_isOpenQuotientMap (#32884) From sphere-eversion. ESTIMATED CHANGES Modified Mathlib/Topology/Separation/Hausdorff.lean + theorem t2Space_iff_of_isOpenQuotientMap 2025-12-16 11:37:57 922a69e feat(Data/Matrix/Cartan): add explicit forms for B, C, D (#32867) Add explicit matrix representations for small Cartan matrices: - B_two: B Cartan matrix - C_two: C Cartan matrix - D_four: D Cartan matrix (minimal rank for type D) ESTIMATED CHANGES Modified Mathlib/Data/Matrix/Cartan.lean +/- theorem CartanMatrix.A_one +/- theorem CartanMatrix.A_three +/- theorem CartanMatrix.A_two + theorem CartanMatrix.B_one + theorem CartanMatrix.B_two + theorem CartanMatrix.C_one + theorem CartanMatrix.C_two + theorem CartanMatrix.D_four + theorem CartanMatrix.D_one + theorem CartanMatrix.D_three' + theorem CartanMatrix.D_three + theorem CartanMatrix.D_two 2025-12-16 10:54:48 9ead496 chore(Analysis/InnerProductSpace): remove a redundant `CompleteSpace` assumption (#32926) ESTIMATED CHANGES Modified Mathlib/Analysis/InnerProductSpace/Projection/Submodule.lean +/- theorem Submodule.triorthogonal_eq_orthogonal 2025-12-16 10:54:47 be34302 chore(Algebra/Polynomial/Roots): change name of roots_eq_of_degree_le_card (#32917) Changed the name of `roots_eq_of_degree_le_card` to `roots_eq_of_degree_eq_card`, reflecting the actual statement. ESTIMATED CHANGES Modified Mathlib/Algebra/Polynomial/Roots.lean + theorem Polynomial.roots_eq_of_degree_eq_card - theorem Polynomial.roots_eq_of_degree_le_card 2025-12-16 10:54:45 a8ef7d4 chore(Analysis/SpecialFunctions/Trigonometric/Chebyshev): add deprecated module (#32913) This is the follow-up PR of https://github.com/leanprover-community/mathlib4/pull/32912 adding the deprecated module after the file was moved. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/SpecialFunctions/Trigonometric/Chebyshev.lean 2025-12-16 10:54:43 bedee4c chore: fix whitespace (#32903) Extracted from https://github.com/leanprover-community/mathlib4/pull/30658. Found by extending the commandStart linter to proof bodies. ESTIMATED CHANGES Modified Mathlib/Logic/Equiv/Fin/Rotate.lean Modified Mathlib/Probability/Martingale/OptionalSampling.lean 2025-12-16 10:54:41 61d942a feat(Cyclotomic): compute the torsion order of a cyclotomic field (#32782) The order of the torsion group of the `n`-th cyclotomic field is `n` if `n` is even and `2n` if `n` is odd. ESTIMATED CHANGES Modified Mathlib/Data/Nat/Totient.lean + theorem Even.eq_of_totient_eq_totient + theorem Nat.eq_or_eq_of_totient_eq_totient Modified Mathlib/NumberTheory/Cyclotomic/Basic.lean + theorem IsCyclotomicExtension.union_of_isPrimitiveRoot Modified Mathlib/NumberTheory/NumberField/Cyclotomic/Basic.lean + theorem IsCyclotomicExtension.Rat.torsionOrder_eq + theorem NumberField.Units.dvd_torsionOrder_of_isPrimitiveRoot 2025-12-16 10:54:38 35793aa feat(CategoryTheory/Sites): add the Grothendieck topology generated by a precoverage (#32652) Add the file `PrecoverageToGrothendieck.lean`, in which the Grothendieck topology generated by a precoverage is defined as `Precoverage.toGrothendieck`. This replace the previous `Precoverage.toGrothendieck`, which was defined only in the case of a precoverage having pullbacks and being stable under base change. The equivalence between the two constructions is `Precoverage.toGrothendieck_toCoverage`. Prove `Precoverage.isSheaf_toGrothendieck_iff`: given a precoverage `J`, a type-valued presheaf is a sheaf for `J.toGrothendieck` if and only if it is a sheaf for all the pullback sieves of the presieves in `J`. The proof is based on the previous proof of `isSheaf_coverage`, which is now a consequence of `Precoverage.isSheaf_toGrothendieck_iff`. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/CategoryTheory/Sites/Coverage.lean + theorem CategoryTheory.Coverage.Saturate.pullback + theorem CategoryTheory.Coverage.saturate_iff_saturate_toPrecoverage +/- def CategoryTheory.Coverage.toGrothendieck + theorem CategoryTheory.Coverage.toGrothendieck_toPrecoverage - theorem CategoryTheory.Precoverage.mem_toGrothendieck_iff +/- def CategoryTheory.Precoverage.toCoverage - def CategoryTheory.Precoverage.toGrothendieck + theorem CategoryTheory.Precoverage.toGrothendieck_toCoverage Modified Mathlib/CategoryTheory/Sites/Over.lean Added Mathlib/CategoryTheory/Sites/PrecoverageToGrothendieck.lean + inductive CategoryTheory.Precoverage.Saturate + theorem CategoryTheory.Precoverage.generate_mem_toGrothendieck + theorem CategoryTheory.Precoverage.isSheaf_toGrothendieck_iff + theorem CategoryTheory.Precoverage.mem_toGrothendieck_iff + def CategoryTheory.Precoverage.toGrothendieck + theorem CategoryTheory.Precoverage.toGrothendieck_eq_sInf 2025-12-16 09:51:42 a7b7de0 chore(MeasureTheory): avoid `all_goals first` anti-pattern (#32936) This PR replaces `all_goals first | linarith | assumption` with explicit focused tactics in `of_diff_eq_zero_of_symmDiff_eq_zero_positive`. Using `first` with `all_goals` is problematic: 1. **Obfuscatory**: hides which tactic actually closes each goal 2. **Potentially slow**: tries each alternative on every goal 3. **Fragile**: changes to goal order or number silently change behavior The explicit version makes it clear that two goals are closed by `linarith` and two by `assumption`. 🤖 Prepared with Claude Code ESTIMATED CHANGES Modified Mathlib/MeasureTheory/VectorMeasure/Decomposition/Jordan.lean 2025-12-16 09:51:40 72eadd6 chore(Data): fix whitespace (#32931) ESTIMATED CHANGES Modified Mathlib/Data/Complex/Basic.lean +/- theorem Complex.im_mul_ofReal +/- theorem Complex.re_mul_ofReal Modified Mathlib/Data/ENNReal/Inv.lean Modified Mathlib/Data/EReal/Basic.lean Modified Mathlib/Data/Fin/Fin2.lean Modified Mathlib/Data/Finset/Defs.lean Modified Mathlib/Data/Finset/Sort.lean +/- theorem Finset.sort_val Modified Mathlib/Data/Finsupp/Interval.lean +/- theorem Finsupp.card_Icc Modified Mathlib/Data/Finsupp/MonomialOrder/DegLex.lean Modified Mathlib/Data/Fintype/List.lean Modified Mathlib/Data/Fintype/Option.lean Modified Mathlib/Data/Fintype/Quotient.lean Modified Mathlib/Data/List/Lemmas.lean Modified Mathlib/Data/List/Pairwise.lean Modified Mathlib/Data/List/PeriodicityLemma.lean Modified Mathlib/Data/List/Pi.lean Modified Mathlib/Data/Matrix/Mul.lean Modified Mathlib/Data/Nat/Choose/Factorization.lean Modified Mathlib/Data/Nat/Digits/Defs.lean +/- theorem Nat.nat_repr_len_aux Modified Mathlib/Data/Nat/Digits/Lemmas.lean Modified Mathlib/Data/Nat/MaxPowDiv.lean Modified Mathlib/Data/Nat/ModEq.lean +/- theorem Nat.ModEq.cancel_left_div_gcd Modified Mathlib/Data/Nat/Prime/Defs.lean Modified Mathlib/Data/PFunctor/Multivariate/M.lean Modified Mathlib/Data/PFunctor/Univariate/M.lean Modified Mathlib/Data/Real/ConjExponents.lean Modified Mathlib/Data/Real/Embedding.lean +/- theorem Archimedean.embedReal_apply Modified Mathlib/Data/Seq/Computation.lean Modified Mathlib/Data/TypeVec.lean Modified Mathlib/Data/WSeq/Relation.lean Modified Mathlib/Data/ZMod/Basic.lean Modified Mathlib/Data/ZMod/Units.lean 2025-12-16 09:51:37 dd38164 chore(Computability): fix whitespace (#32930) ESTIMATED CHANGES Modified Mathlib/Computability/Ackermann.lean Modified Mathlib/Computability/AkraBazzi/AkraBazzi.lean Modified Mathlib/Computability/AkraBazzi/GrowsPolynomially.lean Modified Mathlib/Computability/AkraBazzi/SumTransform.lean Modified Mathlib/Computability/ContextFreeGrammar.lean Modified Mathlib/Computability/Encoding.lean Modified Mathlib/Computability/NFA.lean Modified Mathlib/Computability/TMToPartrec.lean 2025-12-16 09:36:50 915cd38 chore: remove QuadraticAlgebra.coe (#32797) In the case `R` is `ℤ` or `ℚ` (that is very common in number theory) one now has *two* coercions `R → QuadraticAlgebra R a b`, and this is in practice very annoying. We also add a warning about a diamond for `Algebra ℚ (QuadraticAlgebra a b)`. Discovered at ItaLean2025. ESTIMATED CHANGES Modified Mathlib/Algebra/QuadraticAlgebra/Basic.lean + theorem QuadraticAlgebra.algebraMap_mem_nonZeroDivisors_iff + theorem QuadraticAlgebra.algebraMap_norm_eq_mul_star - theorem QuadraticAlgebra.coe_mem_nonZeroDivisors_iff - theorem QuadraticAlgebra.coe_norm_eq_mul_star + theorem QuadraticAlgebra.norm_algebraMap - theorem QuadraticAlgebra.norm_coe + theorem QuadraticAlgebra.omega_mul_algebraMap_mul_mk - theorem QuadraticAlgebra.omega_mul_coe_mul_mk Modified Mathlib/Algebra/QuadraticAlgebra/Defs.lean + theorem QuadraticAlgebra.C_add + theorem QuadraticAlgebra.C_eq_algebraMap + theorem QuadraticAlgebra.C_eq_one_iff + theorem QuadraticAlgebra.C_eq_zero_iff + theorem QuadraticAlgebra.C_inj + theorem QuadraticAlgebra.C_injective + theorem QuadraticAlgebra.C_intCast + theorem QuadraticAlgebra.C_mul + theorem QuadraticAlgebra.C_mul_eq_smul + theorem QuadraticAlgebra.C_natCast + theorem QuadraticAlgebra.C_neg + theorem QuadraticAlgebra.C_ofNat + theorem QuadraticAlgebra.C_one + theorem QuadraticAlgebra.C_pow + theorem QuadraticAlgebra.C_smul + theorem QuadraticAlgebra.C_sub + theorem QuadraticAlgebra.C_zero + theorem QuadraticAlgebra.algebraMap_dvd_iff + theorem QuadraticAlgebra.algebraMap_dvd_iff_dvd + theorem QuadraticAlgebra.algebraMap_im + theorem QuadraticAlgebra.algebraMap_inj + theorem QuadraticAlgebra.algebraMap_re - def QuadraticAlgebra.coe - theorem QuadraticAlgebra.coe_add - theorem QuadraticAlgebra.coe_algebraMap - theorem QuadraticAlgebra.coe_dvd_iff - theorem QuadraticAlgebra.coe_dvd_iff_dvd - theorem QuadraticAlgebra.coe_eq_one_iff - theorem QuadraticAlgebra.coe_eq_zero_iff - theorem QuadraticAlgebra.coe_inj - theorem QuadraticAlgebra.coe_injective - theorem QuadraticAlgebra.coe_intCast - theorem QuadraticAlgebra.coe_mul - theorem QuadraticAlgebra.coe_mul_eq_smul - theorem QuadraticAlgebra.coe_natCast - theorem QuadraticAlgebra.coe_neg - theorem QuadraticAlgebra.coe_ofNat - theorem QuadraticAlgebra.coe_one - theorem QuadraticAlgebra.coe_pow - theorem QuadraticAlgebra.coe_smul - theorem QuadraticAlgebra.coe_sub - theorem QuadraticAlgebra.coe_zero + theorem QuadraticAlgebra.im_C - theorem QuadraticAlgebra.im_coe + theorem QuadraticAlgebra.mul_C_eq_smul - theorem QuadraticAlgebra.mul_coe_eq_smul + theorem QuadraticAlgebra.re_C - theorem QuadraticAlgebra.re_coe + theorem QuadraticAlgebra.smul_C - theorem QuadraticAlgebra.smul_coe 2025-12-16 07:57:51 8e30505 feat(GroupTheory/SpecificGroups/Alternating/MaximalSubgroups): maximal subgroups of the alternating group (#26831) This proves the first case (intransitive) of the O'Nan-Scott classification of maximal subgroups of the alternating group. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Data/Set/Card.lean + theorem Set.one_lt_ncard_iff_nontrivial + theorem Set.one_lt_ncard_iff_nontrivial_and_finite Modified Mathlib/GroupTheory/GroupAction/MultiplePrimitivity.lean Modified Mathlib/GroupTheory/GroupAction/MultipleTransitivity.lean - theorem SubMulAction.ofStabilizer.AlternatingGroup.isMultiplyPretransitive - theorem SubMulAction.ofStabilizer.AlternatingGroup.isPreprimitive_of_three_le_card - theorem SubMulAction.ofStabilizer.AlternatingGroup.isPretransitive_of_three_le_card - theorem SubMulAction.ofStabilizer.AlternatingGroup.isTrivialBlock_of_isBlock + theorem SubMulAction.ofStabilizer.alternatingGroup.isMultiplyPretransitive + theorem SubMulAction.ofStabilizer.alternatingGroup.isPreprimitive_of_three_le_card + theorem SubMulAction.ofStabilizer.alternatingGroup.isPretransitive_of_three_le_card + theorem SubMulAction.ofStabilizer.alternatingGroup.isTrivialBlock_of_isBlock Modified Mathlib/GroupTheory/Perm/MaximalSubgroups.lean - theorem Equiv.Perm.IsPretransitive.of_partition + theorem Equiv.Perm.exists_mem_stabilizer_smul_eq - theorem Equiv.Perm.moves_in +/- theorem Equiv.Perm.ofSubtype_mem_stabilizer + theorem Equiv.Perm.stabilizer.surjective_toPerm - theorem IsBlock.compl_subset_of_stabilizer_le_of_not_subset_of_not_subset_compl - theorem IsBlock.subsingleton_of_ssubset_compl_of_stabilizer_le - theorem IsBlock.subsingleton_of_stabilizer_lt_of_subset + theorem MulAction.IsBlock.compl_subset_of_stabilizer_le_of_not_subset_of_not_subset_compl + theorem MulAction.IsBlock.subsingleton_of_ssubset_of_stabilizer_Perm_le + theorem MulAction.IsBlock.subsingleton_of_ssubset_of_stabilizer_le + theorem MulAction.IsBlock.subsingleton_of_stabilizer_lt_of_subset + theorem MulAction.IsPretransitive.of_partition + theorem MulAction.isPreprimitive_stabilizer_of_surjective + theorem MulAction.isPreprimitive_stabilizer_subgroup Modified Mathlib/GroupTheory/SpecificGroups/Alternating.lean + theorem Equiv.Perm.mul_mem_alternatingGroup_of_isSwap Added Mathlib/GroupTheory/SpecificGroups/Alternating/MaximalSubgroups.lean + theorem Equiv.Perm.alternatingGroup_le_of_isPreprimitive + theorem Equiv.Perm.exists_mem_stabilizer_isThreeCycle + theorem Equiv.Perm.exists_mem_stabilizer_isThreeCycle_of_two_lt_ncard + theorem MulAction.IsBlock.subsingleton_of_ssubset_compl_of_stabilizer_alternatingGroup_le + theorem alternatingGroup.exists_mem_stabilizer_smul_eq + theorem alternatingGroup.isCoatom_stabilizer + theorem alternatingGroup.isCoatom_stabilizer_of_ncard_lt_ncard_compl + theorem alternatingGroup.isCoatom_stabilizer_singleton + theorem alternatingGroup.stabilizer.surjective_toPerm + theorem alternatingGroup.stabilizer_isPreprimitive + theorem alternatingGroup.stabilizer_ne_top + theorem alternatingGroup.stabilizer_subgroup_isPreprimitive + theorem alternatingGroup.subgroup_eq_top_of_isPreprimitive 2025-12-16 07:12:11 8ee8525 chore(Algebra): consistently tag `mem_sInf`, `mem_iInf`, `coe_sInf`, `coe_iInf` (#32887) * Consistently tag `mem_sInf`, `mem_iInf` as `simp` across all algebraic substructures * Consistently tag `coe_sInf`, `coe_iInf` as `simp, norm_cast` across all algebraic substructures ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/NonUnitalSubalgebra.lean Modified Mathlib/Algebra/Algebra/Subalgebra/Lattice.lean +/- theorem Algebra.mem_iInf Modified Mathlib/Algebra/Field/Subfield/Basic.lean +/- theorem Subfield.mem_iInf Modified Mathlib/Algebra/Group/Subgroup/Lattice.lean +/- theorem Subgroup.mem_iInf Modified Mathlib/Algebra/Group/Submonoid/Basic.lean +/- theorem Submonoid.mem_iInf Modified Mathlib/Algebra/Group/Subsemigroup/Basic.lean +/- theorem Subsemigroup.mem_iInf Modified Mathlib/Algebra/Lie/Submodule.lean +/- theorem LieSubmodule.mem_iInf Modified Mathlib/Algebra/Module/Submodule/Lattice.lean +/- theorem Submodule.mem_iInf Modified Mathlib/Algebra/Ring/Subring/Basic.lean +/- theorem Subring.mem_iInf Modified Mathlib/Algebra/Ring/Subsemiring/Basic.lean +/- theorem Subsemiring.mem_iInf Modified Mathlib/Algebra/Star/NonUnitalSubalgebra.lean Modified Mathlib/Algebra/Star/Subalgebra.lean Modified Mathlib/ModelTheory/Substructures.lean Modified Mathlib/RingTheory/NonUnitalSubring/Basic.lean Modified Mathlib/RingTheory/NonUnitalSubsemiring/Basic.lean 2025-12-16 05:33:14 fcad271 chore: move `set_option backward.proofsInPublic` to where it is needed (#32934) During the transition to the module system, we enabled the global option `backward.proofsInPublic` ("Do not abstract proofs used in the public scope into auxiliary theorems."). This PR removes it as a global option, instead adding it to the specific declarations it is needed (or, in two files where it is needed many files, at the top of the file). This PR makes no attempt to diagnose or fix this issue: it's just the work of localising the problems. ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/Subalgebra/Lattice.lean Modified Mathlib/Algebra/Category/ModuleCat/Basic.lean Modified Mathlib/Algebra/Category/ModuleCat/ChangeOfRings.lean Modified Mathlib/Algebra/Category/ModuleCat/Semi.lean Modified Mathlib/Algebra/Group/End.lean Modified Mathlib/Algebra/Group/Equiv/Defs.lean Modified Mathlib/Algebra/Group/InjSurj.lean Modified Mathlib/Algebra/Group/Subgroup/Map.lean Modified Mathlib/Algebra/Group/Units/Hom.lean Modified Mathlib/Algebra/GroupWithZero/NonZeroDivisors.lean Modified Mathlib/Algebra/Order/Antidiag/Pi.lean Modified Mathlib/Algebra/SkewMonoidAlgebra/Lift.lean Modified Mathlib/AlgebraicGeometry/EllipticCurve/Affine/Point.lean Modified Mathlib/AlgebraicTopology/SimplicialSet/AnodyneExtensions/IsUniquelyCodimOneFace.lean Modified Mathlib/CategoryTheory/Limits/Indization/IndObject.lean Modified Mathlib/CategoryTheory/Limits/Shapes/ZeroMorphisms.lean Modified Mathlib/CategoryTheory/Presentable/IsCardinalFiltered.lean Modified Mathlib/CategoryTheory/Sites/EffectiveEpimorphic.lean Modified Mathlib/CategoryTheory/Sites/Sieves.lean Modified Mathlib/Combinatorics/SimpleGraph/Connectivity/Connected.lean Modified Mathlib/Computability/TMToPartrec.lean Modified Mathlib/Condensed/Discrete/Colimit.lean Modified Mathlib/Data/Finset/NoncommProd.lean Modified Mathlib/Data/PFun.lean Modified Mathlib/GroupTheory/ArchimedeanDensely.lean Modified Mathlib/GroupTheory/Congruence/Hom.lean Modified Mathlib/GroupTheory/Exponent.lean Modified Mathlib/GroupTheory/GroupAction/SubMulAction/OfFixingSubgroup.lean Modified Mathlib/GroupTheory/OreLocalization/Basic.lean Modified Mathlib/GroupTheory/SpecificGroups/Cyclic.lean Modified Mathlib/LinearAlgebra/Determinant.lean Modified Mathlib/Logic/Godel/GodelBetaFunction.lean Modified Mathlib/MeasureTheory/Function/LpSpace/Indicator.lean Modified Mathlib/Probability/Kernel/CondDistrib.lean Modified Mathlib/RingTheory/Extension/Cotangent/Basic.lean Modified Mathlib/RingTheory/Ideal/Height.lean Modified Mathlib/RingTheory/PicardGroup.lean Modified Mathlib/RingTheory/Polynomial/Quotient.lean Modified Mathlib/SetTheory/Descriptive/Tree.lean Modified lakefile.lean 2025-12-16 04:03:38 1c4bbe1 chore: fix non-terminal simp_all (#32933) ESTIMATED CHANGES Modified Mathlib/Analysis/SpecialFunctions/ContinuousFunctionalCalculus/Rpow/IntegralRepresentation.lean 2025-12-16 00:25:16 0a5fe12 chore: remove unneeded `experimental.module` option (#32932) This option has been deprecated in Lean 4.27.0: using the module system no longer requires this opt-in flag. ESTIMATED CHANGES Modified lakefile.lean 2025-12-15 22:35:30 fe3134f chore(Geometry): fix whitespace (#32904) Extracted from https://github.com/leanprover-community/mathlib4/pull/30658. Found by extending the commandStart linter to proof bodies. ESTIMATED CHANGES Modified Mathlib/Geometry/Convex/Cone/Basic.lean Modified Mathlib/Geometry/Euclidean/Sphere/Basic.lean Modified Mathlib/Geometry/Manifold/ContMDiff/Basic.lean Modified Mathlib/Geometry/Manifold/ContMDiffMFDeriv.lean Modified Mathlib/Geometry/Manifold/GroupLieAlgebra.lean Modified Mathlib/Geometry/Manifold/Immersion.lean Modified Mathlib/Geometry/Manifold/IsManifold/InteriorBoundary.lean +/- theorem ModelWithCorners.compl_boundary +/- theorem ModelWithCorners.compl_interior Modified Mathlib/Geometry/Manifold/MFDeriv/Basic.lean Modified Mathlib/Geometry/Manifold/MFDeriv/SpecificFunctions.lean Modified Mathlib/Geometry/Manifold/Sheaf/LocallyRingedSpace.lean Modified Mathlib/Geometry/Manifold/VectorBundle/LocalFrame.lean +/- theorem IsLocalFrameOn.coeff_sum_eq Modified Mathlib/Geometry/Manifold/VectorBundle/Tangent.lean Modified Mathlib/Geometry/Manifold/VectorField/Pullback.lean Modified Mathlib/Geometry/RingedSpace/LocallyRingedSpace.lean 2025-12-15 21:03:56 2d8f9a9 feat(Topology): IsCoveringMapOn ↔ IsCoveringMap restrictPreimage (#27197) ESTIMATED CHANGES Modified Mathlib/Topology/Covering/Basic.lean + theorem IsCoveringMap.comp_homeomorph + theorem IsCoveringMap.comp_homeomorph_iff + theorem IsCoveringMap.homeomorph_comp + theorem IsCoveringMap.homeomorph_comp_iff + theorem IsCoveringMap.restrictPreimage + theorem IsCoveringMapOn.comp_homeomorph + theorem IsCoveringMapOn.comp_homeomorph_iff + theorem IsCoveringMapOn.homeomorph_comp + theorem IsCoveringMapOn.homeomorph_comp_iff + theorem IsCoveringMapOn.isCoveringMap_restrictPreimage + theorem IsCoveringMapOn.of_isCoveringMap_restrictPreimage + theorem IsCoveringMapOn.restrictPreimage + theorem IsEvenlyCovered.comp_homeomorph + theorem IsEvenlyCovered.comp_homeomorph_iff + theorem IsEvenlyCovered.comp_subtypeVal + theorem IsEvenlyCovered.homeomorph_comp + theorem IsEvenlyCovered.homeomorph_comp_iff + theorem IsEvenlyCovered.restrictPreimage + theorem IsEvenlyCovered.subtypeVal_comp +/- theorem isCoveringMap_iff_isCoveringMapOn_univ 2025-12-15 20:43:05 6dd3a14 chore: smaller imports in `IonescuTulcea.traj` (#32895) This file doesn't use the topology on the space of probability measures, so it shouldn't need to import `ProbabilityMeasure`. It did, for a lemma that deserves a version for `IsProbabilityMeasure` but only exists for `ProbabilityMeasure`. This PR adds the lemma, uses it in `IonescuTulcea.traj`, and trims the imports. ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Measure/ProbabilityMeasure.lean +/- theorem MeasureTheory.ProbabilityMeasure.nonempty Modified Mathlib/MeasureTheory/Measure/Typeclasses/Probability.lean + theorem MeasureTheory.nonempty_of_isProbabilityMeasure Modified Mathlib/Probability/Kernel/IonescuTulcea/Traj.lean Modified Mathlib/Probability/ProductMeasure.lean 2025-12-15 19:23:00 5c208fb chore(AlgebraicTopology): fix whitespace (#32908) Found by extending the commandStart linter to proof bodies. ESTIMATED CHANGES Modified Mathlib/AlgebraicTopology/DoldKan/EquivalencePseudoabelian.lean Modified Mathlib/AlgebraicTopology/ModelCategory/Basic.lean Modified Mathlib/AlgebraicTopology/SimplexCategory/GeneratorsRelations/EpiMono.lean Modified Mathlib/AlgebraicTopology/SimplexCategory/GeneratorsRelations/NormalForms.lean Modified Mathlib/AlgebraicTopology/SimplicialCategory/SimplicialObject.lean Modified Mathlib/AlgebraicTopology/SimplicialObject/Split.lean Modified Mathlib/AlgebraicTopology/SimplicialSet/Degenerate.lean Modified Mathlib/AlgebraicTopology/SimplicialSet/HomotopyCat.lean +/- def SSet.Truncated.hoFunctor₂ Modified Mathlib/AlgebraicTopology/SimplicialSet/HornColimits.lean Modified Mathlib/AlgebraicTopology/SimplicialSet/Nerve.lean Modified Mathlib/AlgebraicTopology/SimplicialSet/StdSimplex.lean 2025-12-15 18:48:16 0e1aacf feat: `SetRel.(pre)image` of `iUnion` and `sUnion` (#32847) ESTIMATED CHANGES Modified Mathlib/Data/Rel.lean + theorem SetRel.image_iUnion + theorem SetRel.image_sUnion + theorem SetRel.preimage_iUnion + theorem SetRel.preimage_sUnion 2025-12-15 18:02:04 4347330 feat(Algebra/GroupWithZero/NonZeroDivisors): add a lemma about product (#32774) Product of non-zero divisors is also a non-zero divisors. It's similar with `IsRegular.prod`, while requiring non-zero divisors instead of regular elements. ESTIMATED CHANGES Modified Mathlib/Algebra/GroupWithZero/NonZeroDivisors.lean + theorem prod_mem_nonZeroDivisors_of_mem_nonZeroDivisors 2025-12-15 17:47:29 aaf540d chore(Analysis/SpecialFunctions/Trigonometric/Chebyshev): move file to Analysis/SpecialFunctions/Trigonometric/Chebyshev/Basic.lean (#32912) Create the directory `Analysis/SpecialFunctions/Trigonometric/Chebyshev` and move the file `Analysis/SpecialFunctions/Trigonometric/Chebyshev.lean` to Analysis/SpecialFunctions/Trigonometric/Chebyshev/Basic.lean`. This is needed to make room for the results in the following PR (which will be reworked): #31011. The deprecated module is added in the following PR: #32913 ESTIMATED CHANGES Modified Mathlib.lean Renamed Mathlib/Analysis/SpecialFunctions/Trigonometric/Chebyshev.lean to Mathlib/Analysis/SpecialFunctions/Trigonometric/Chebyshev/Basic.lean 2025-12-15 17:20:02 ae859d2 feat(RingTheory): `IsIntegrallyClosed R[X]` (#32429) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/RingTheory/IntegralClosure/IntegrallyClosed.lean + theorem IsIntegralClosure.of_isIntegralClosure_of_isIntegrallyClosedIn + theorem IsIntegrallyClosed.of_isIntegrallyClosedIn + theorem IsIntegrallyClosed.of_isIntegrallyClosed_of_isIntegrallyClosedIn Added Mathlib/RingTheory/IntegralClosure/IsIntegral/AlmostIntegral.lean + theorem IsAlmostIntegral.isIntegral + theorem IsAlmostIntegral.isIntegral_of_nonZeroDivisors_le_comap + def IsAlmostIntegral + theorem IsIntegral.isAlmostIntegral + theorem IsIntegral.isAlmostIntegral_of_exists_smul_mem_range + theorem IsIntegral.isAlmostIntegral_of_isLocalization + def completeIntegralClosure + theorem completeIntegralClosure_eq_integralClosure + theorem integralClosure_le_completeIntegralClosure + theorem isAlmostIntegral_iff_isIntegral + theorem mem_completeIntegralClosure Modified Mathlib/RingTheory/Polynomial/IsIntegral.lean + theorem IsAlmostIntegral.coeff + theorem IsIntegral.coeff_of_exists_smul_mem_lifts + theorem IsIntegral.coeff_of_isFractionRing 2025-12-15 17:03:14 04d02fe feat: `norm_num` extension for `IsSquare` (#32365) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Tactic.lean Added Mathlib/Tactic/NormNum/IsSquare.lean + def Mathlib.Meta.NormNum.evalIsSquareInt + def Mathlib.Meta.NormNum.evalIsSquareNat + def Mathlib.Meta.NormNum.evalIsSquareRat + theorem Mathlib.Meta.NormNum.iff_isSquare_int_of_isNat + theorem Mathlib.Meta.NormNum.iff_isSquare_of_isInt_int + theorem Mathlib.Meta.NormNum.iff_isSquare_of_isInt_rat + theorem Mathlib.Meta.NormNum.iff_isSquare_of_isNat_rat + theorem Mathlib.Meta.NormNum.isSquare_nat_of_isNat + theorem Mathlib.Meta.NormNum.isSquare_of_isNNRat_rat + theorem Mathlib.Meta.NormNum.not_isSquare_nat_of_isNat + theorem Mathlib.Meta.NormNum.not_isSquare_of_isNNRat_rat_of_den + theorem Mathlib.Meta.NormNum.not_isSquare_of_isNNRat_rat_of_num + theorem Mathlib.Meta.NormNum.not_isSquare_of_isRat_neg Modified MathlibTest/norm_num_ext.lean 2025-12-15 15:46:29 bfbfe1f chore(Condensed): fix whitespace (#32905) Extracted from https://github.com/leanprover-community/mathlib4/pull/30658. Found by extending the commandStart linter to proof bodies. ESTIMATED CHANGES Modified Mathlib/Condensed/Discrete/Characterization.lean Modified Mathlib/Condensed/Light/InternallyProjective.lean 2025-12-15 15:46:26 607429b chore(Dynamics): fix whitespace (#32902) Extracted from https://github.com/leanprover-community/mathlib4/pull/30658. Found by extending the commandStart linter to proof bodies. ESTIMATED CHANGES Modified Mathlib/Dynamics/BirkhoffSum/Average.lean Modified Mathlib/Dynamics/PeriodicPts/Lemmas.lean Modified Mathlib/Dynamics/TopologicalEntropy/DynamicalEntourage.lean 2025-12-15 15:46:24 44d1616 chore(ModelTheory): fix whitespace (#32900) ESTIMATED CHANGES Modified Mathlib/ModelTheory/Arithmetic/Presburger/Semilinear/Basic.lean Modified Mathlib/ModelTheory/Basic.lean Modified Mathlib/ModelTheory/LanguageMap.lean 2025-12-15 15:28:05 f385661 chore(SetTheory): fix whitespace (#32899) Extracted from https://github.com/leanprover-community/mathlib4/pull/30658. Found by extending the commandStart linter to proof bodies. ESTIMATED CHANGES Modified Mathlib/SetTheory/Cardinal/Arithmetic.lean Modified Mathlib/SetTheory/Cardinal/Basic.lean Modified Mathlib/SetTheory/Cardinal/Cofinality.lean Modified Mathlib/SetTheory/Cardinal/CountableCover.lean Modified Mathlib/SetTheory/Cardinal/ENat.lean Modified Mathlib/SetTheory/Cardinal/Order.lean Modified Mathlib/SetTheory/Cardinal/Regular.lean Modified Mathlib/SetTheory/Cardinal/Subfield.lean Modified Mathlib/SetTheory/Game/Ordinal.lean +/- theorem Ordinal.toPGame_leftMoves Modified Mathlib/SetTheory/Ordinal/Basic.lean +/- theorem Cardinal.lift_ord +/- theorem Ordinal.card_univ 2025-12-15 15:28:02 8b47904 chore: golf using `grind`. add `grind` annotations. (#32738) ESTIMATED CHANGES Modified Mathlib/Data/Finsupp/Basic.lean Modified Mathlib/Data/Nat/PrimeFin.lean +/- theorem Nat.mem_primeFactors Modified Mathlib/Data/Seq/Basic.lean Modified Mathlib/LinearAlgebra/Lagrange.lean Modified Mathlib/NumberTheory/Divisors.lean Modified Mathlib/NumberTheory/SumTwoSquares.lean 2025-12-15 15:28:00 3e342c9 feat(Data/Nat/Factorization): add theorems about ordCompl (#32715) Add theorems about ordCompl[p] n, the prime-to-p part of n, when n is a power of p. There are similar existing theorems in Data/Nat/Factorization/PrimePow.lean emphasizing isPrimePow. Motivation of PR is for a follow up PR on Combinatorial Proof of Euler's Partition Identity ESTIMATED CHANGES Modified Mathlib/Data/Nat/BitIndices.lean + theorem Nat.bitIndices_nodup Modified Mathlib/Data/Nat/Factorization/Basic.lean + theorem Nat.ordCompl_eq_self_iff_zero_or_not_dvd + theorem Nat.ordCompl_self_pow + theorem Nat.ordCompl_self_pow_mul + theorem Nat.ordProj_self_pow 2025-12-15 15:27:57 e1ef655 feat: postcomposition by a CLM as a CLM on test functions (#32330) ESTIMATED CHANGES Modified Mathlib/Analysis/Distribution/TestFunction.lean + theorem TestFunction.coe_mk + theorem TestFunction.postcompCLM_apply 2025-12-15 15:27:51 ef1eb32 feat(Algebra/MonoidAlgebra): complete the map API (#32254) Add congruence isomorphisms in both the ring and monoid arguments. Move `mapRangeRingHom` from `Algebra.MonoidAlgebra.Lift` to `Algebra.MonoidAlgebra.MapDomain` and make its proofs additivisable (by not using `lift`). Make `mapDomainRingHom` take a `MonoidHom` rather than `MonoidHomClass`. ESTIMATED CHANGES Modified Mathlib/Algebra/MonoidAlgebra/Basic.lean +/- def MonoidAlgebra.domCongr +/- theorem MonoidAlgebra.domCongr_apply +/- theorem MonoidAlgebra.domCongr_support +/- theorem MonoidAlgebra.domCongr_toAlgHom Modified Mathlib/Algebra/MonoidAlgebra/Lift.lean - theorem AddMonoidAlgebra.mapRangeRingHom_apply - theorem AddMonoidAlgebra.mapRangeRingHom_comp - theorem AddMonoidAlgebra.mapRangeRingHom_id - theorem AddMonoidAlgebra.mapRangeRingHom_single - theorem MonoidAlgebra.mapRangeRingHom_apply - theorem MonoidAlgebra.mapRangeRingHom_comp - theorem MonoidAlgebra.mapRangeRingHom_id - theorem MonoidAlgebra.mapRangeRingHom_single Modified Mathlib/Algebra/MonoidAlgebra/MapDomain.lean + def MonoidAlgebra.mapDomainAddEquiv + theorem MonoidAlgebra.mapDomainAddEquiv_apply + theorem MonoidAlgebra.mapDomainAddEquiv_single + theorem MonoidAlgebra.mapDomainAddEquiv_trans + def MonoidAlgebra.mapDomainNonUnitalRingHom + theorem MonoidAlgebra.mapDomainNonUnitalRingHom_comp + theorem MonoidAlgebra.mapDomainNonUnitalRingHom_id + def MonoidAlgebra.mapDomainRingEquiv + theorem MonoidAlgebra.mapDomainRingEquiv_apply + theorem MonoidAlgebra.mapDomainRingEquiv_single + theorem MonoidAlgebra.mapDomainRingEquiv_trans +/- def MonoidAlgebra.mapDomainRingHom +/- theorem MonoidAlgebra.mapDomainRingHom_id + theorem MonoidAlgebra.mapDomain_add +/- theorem MonoidAlgebra.mapDomain_mul +/- theorem MonoidAlgebra.mapDomain_single +/- theorem MonoidAlgebra.mapDomain_sum + theorem MonoidAlgebra.mapDomain_zero + def MonoidAlgebra.mapRangeAddEquiv + theorem MonoidAlgebra.mapRangeAddEquiv_apply + theorem MonoidAlgebra.mapRangeAddEquiv_single + theorem MonoidAlgebra.mapRangeAddEquiv_trans + def MonoidAlgebra.mapRangeRingEquiv + theorem MonoidAlgebra.mapRangeRingEquiv_apply + theorem MonoidAlgebra.mapRangeRingEquiv_single + theorem MonoidAlgebra.mapRangeRingEquiv_trans + theorem MonoidAlgebra.mapRangeRingHom_apply + theorem MonoidAlgebra.mapRangeRingHom_comp + theorem MonoidAlgebra.mapRangeRingHom_id + theorem MonoidAlgebra.mapRangeRingHom_single + theorem MonoidAlgebra.symm_mapDomainAddEquiv + theorem MonoidAlgebra.symm_mapDomainRingEquiv + theorem MonoidAlgebra.symm_mapRangeAddEquiv + theorem MonoidAlgebra.symm_mapRangeRingEquiv + theorem MonoidAlgebra.toRingHom_mapDomainRingEquiv + theorem MonoidAlgebra.toRingHom_mapRangeRingEquiv Modified Mathlib/Algebra/Polynomial/Laurent.lean +/- theorem LaurentPolynomial.invert_apply Modified Mathlib/RingTheory/Polynomial/Opposites.lean 2025-12-15 14:41:16 fe0eeb9 feat: Ideal.exists_comap_galRestrict_eq (#32883) From flt-regular ESTIMATED CHANGES Modified Mathlib/NumberTheory/RamificationInertia/Galois.lean + theorem Ideal.exists_comap_galRestrict_eq 2025-12-15 14:41:13 adac74e feat(Data/Set/Operations): add two lemmas about equality of `rangeFactorization` (#32877) ESTIMATED CHANGES Modified Mathlib/Data/Set/Operations.lean + theorem Set.rangeFactorization_eq_iff + theorem Set.rangeFactorization_eq_rangeFactorization_iff 2025-12-15 14:41:11 d9c0b29 doc(NumberTheory): fix typos (#32793) Typos found and fixed by Codex. ESTIMATED CHANGES Modified Mathlib/NumberTheory/ArithmeticFunction/Zeta.lean Modified Mathlib/NumberTheory/Cyclotomic/CyclotomicCharacter.lean Modified Mathlib/NumberTheory/Cyclotomic/PrimitiveRoots.lean Modified Mathlib/NumberTheory/EllipticDivisibilitySequence.lean Modified Mathlib/NumberTheory/EulerProduct/Basic.lean Modified Mathlib/NumberTheory/FLT/Three.lean Modified Mathlib/NumberTheory/FermatPsp.lean Modified Mathlib/NumberTheory/LSeries/AbstractFuncEq.lean Modified Mathlib/NumberTheory/LSeries/Dirichlet.lean Modified Mathlib/NumberTheory/LSeries/HurwitzZetaOdd.lean Modified Mathlib/NumberTheory/LSeries/PrimesInAP.lean Modified Mathlib/NumberTheory/LSeries/ZMod.lean Modified Mathlib/NumberTheory/LucasLehmer.lean Modified Mathlib/NumberTheory/MulChar/Basic.lean Modified Mathlib/NumberTheory/NumberField/CanonicalEmbedding/Basic.lean Modified Mathlib/NumberTheory/NumberField/CanonicalEmbedding/NormLeOne.lean Modified Mathlib/NumberTheory/NumberField/CanonicalEmbedding/PolarCoord.lean Modified Mathlib/NumberTheory/NumberField/Units/DirichletTheorem.lean Modified Mathlib/NumberTheory/Padics/PadicVal/Basic.lean Modified Mathlib/NumberTheory/Padics/PadicVal/Defs.lean Modified Mathlib/NumberTheory/Padics/WithVal.lean Modified Mathlib/NumberTheory/Pell.lean Modified Mathlib/NumberTheory/WellApproximable.lean 2025-12-15 14:41:07 66b18d3 feat(LinearAlgebra/Dimension/Constructions): construct a basis from one of submodule and quotient (#32560) Let `V` be an `R`-module. Let `W` be a submodule of `V` with a basis `b` and `c` be a basis of the quotient module `V ⧸ W`. `basisSum b c` is a basis of `V` indexed by the sum type of the index types of `b` and `c` that extends `b`and lifts `c`. We apply this construction to a determinant equality: `LinearMap.det_eq_det_mul_det` shows that if a linear map `f : V →ₗ[R] V` stabilizes the submodule `W`, then the determinant of `f` is the product of the determinants of the linear endomorphisms of `W` and `V ⧸ W` induced by `f`. ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/Determinant.lean + theorem LinearMap.det_eq_det_mul_det Modified Mathlib/LinearAlgebra/Dimension/Constructions.lean + theorem Module.Basis.sumQuot_inl + theorem Module.Basis.sumQuot_inr + theorem Module.Basis.sumQuot_repr_inl + theorem Module.Basis.sumQuot_repr_inl_of_mem + theorem Module.Basis.sumQuot_repr_inr + theorem Module.Basis.sumQuot_repr_inr_of_mem + theorem Module.Basis.sumQuot_repr_left 2025-12-15 14:41:04 ab9609f feat(RingTheory): integrally closed subring of a field is intersection of valuation subrings (#31919) This contribution was created as part of the Heidelberg Lean workshop "Formalising algebraic geometry" in November 2025. ESTIMATED CHANGES Modified Mathlib/RingTheory/Valuation/LocalSubring.lean + theorem Ideal.image_subset_nonunits_valuationSubring + theorem LocalSubring.eq_iInf_of_isIntegrallyClosedIn + theorem LocalSubring.exists_le_valuationSubring_of_isIntegrallyClosedIn + theorem Subring.eq_iInf_of_isIntegrallyClosedIn + theorem Subring.exists_le_valuationSubring_of_isIntegrallyClosedIn + theorem iInf_valuationSubring_superset 2025-12-15 12:46:13 0c63deb feat(Logic/Equiv): `Option α × β ≃ β ⊕ α × β` (#32712) ESTIMATED CHANGES Modified Mathlib/Logic/Equiv/Prod.lean + theorem Equiv.prodCongrLeft_symm + theorem Equiv.prodCongrRight_symm + def optionProdEquiv + theorem optionProdEquiv_mk_none + theorem optionProdEquiv_mk_some + theorem optionProdEquiv_symm_inl + theorem optionProdEquiv_symm_inr 2025-12-15 12:30:27 ebf05d7 doc(Analysis/Distribution/SchwartzSpace): revert formatting change (#32890) ESTIMATED CHANGES Modified Mathlib/Analysis/Distribution/SchwartzSpace.lean 2025-12-15 12:30:24 103af12 feat(RingTheory/MvPolynomial/MonomialOrder): add some variants of `sPolynomial_mul_monomial` (#32788) This commit adds a variant `sPolynomial_mul_monomial'`, using `m.degree (monomial d c * p)` instead of `d + m.degree p`, which are different in the edge case that one of `c` and `p` is 0. A pair of variants about `leadingTerm` instead of `monomial` are also added. ESTIMATED CHANGES Modified Mathlib/RingTheory/MvPolynomial/MonomialOrder.lean + theorem MonomialOrder.sPolynomial_leadingTerm_mul' + theorem MonomialOrder.sPolynomial_leadingTerm_mul + theorem MonomialOrder.sPolynomial_monomial_mul' + theorem MonomialOrder.sPolynomial_monomial_mul - theorem MonomialOrder.sPolynomial_mul_monomial 2025-12-15 11:48:46 89423f9 feat(Algebra/MvPolynomial/Basic): add `MvPolynomial.support_C` (#32876) Similar with `MvPolynomial.support_monomial`, while for `MvPolynomial.C`. ESTIMATED CHANGES Modified Mathlib/Algebra/MvPolynomial/Basic.lean + theorem MvPolynomial.support_C 2025-12-15 11:48:44 6a2f673 chore(CategoryTheory/Limits): more API for wide pullbacks (#32756) Analogous to `PullbackCone`, we add a `WidePullbackCone` with API to construct them and to show they are limiting. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Limits/Shapes/WidePullbacks.lean + theorem CategoryTheory.Limits.WidePullbackCone.IsLimit.hom_ext + def CategoryTheory.Limits.WidePullbackCone.IsLimit.lift + theorem CategoryTheory.Limits.WidePullbackCone.IsLimit.lift_base + theorem CategoryTheory.Limits.WidePullbackCone.IsLimit.lift_π + def CategoryTheory.Limits.WidePullbackCone.IsLimit.mk + def CategoryTheory.Limits.WidePullbackCone.base + theorem CategoryTheory.Limits.WidePullbackCone.condition + def CategoryTheory.Limits.WidePullbackCone.ext + def CategoryTheory.Limits.WidePullbackCone.mk + theorem CategoryTheory.Limits.WidePullbackCone.mk_base + theorem CategoryTheory.Limits.WidePullbackCone.mk_π + def CategoryTheory.Limits.WidePullbackCone.reindex + def CategoryTheory.Limits.WidePullbackCone.reindexIsLimitEquiv + theorem CategoryTheory.Limits.WidePullbackCone.reindex_base + theorem CategoryTheory.Limits.WidePullbackCone.reindex_π + def CategoryTheory.Limits.WidePullbackCone.π + theorem CategoryTheory.Limits.WidePullbackShape.equivalenceOfEquiv_functor_map_term + theorem CategoryTheory.Limits.WidePullbackShape.equivalenceOfEquiv_functor_obj_none + theorem CategoryTheory.Limits.WidePullbackShape.equivalenceOfEquiv_functor_obj_some + def CategoryTheory.Limits.WidePullbackShape.functorExt 2025-12-15 11:48:42 cec4991 feat(Topology/MetricSpace): proper iff `dist _` is proper map (#32710) Also moved `ConditionallyCompleteLinearOrder.isCompact_Icc` and `ProperSpace ℝ` earlier to avoid large inputs. ESTIMATED CHANGES Modified Mathlib/Topology/Algebra/ProperAction/ProperlyDiscontinuous.lean Modified Mathlib/Topology/Maps/Proper/CompactlyGenerated.lean Modified Mathlib/Topology/MetricSpace/ProperSpace.lean Modified Mathlib/Topology/MetricSpace/ProperSpace/Lemmas.lean + theorem isClosedMap_dist + theorem isClosedMap_nndist + theorem isProperMap_dist + theorem isProperMap_nndist + theorem properSpace_iff_isProperMap_dist Modified Mathlib/Topology/MetricSpace/ProperSpace/Real.lean Modified Mathlib/Topology/Order/Compact.lean Modified Mathlib/Topology/Order/IsLUB.lean 2025-12-15 11:48:39 0601524 feat(Chebyshev): degree, leadingCoeff, eval_neg (#32360) Calculated the degree and leading coefficients of Chebyshev T and U, as well as formulas for T(-x) and U(-x). ESTIMATED CHANGES Modified Mathlib/RingTheory/Polynomial/Chebyshev.lean + theorem Polynomial.Chebyshev.T_eval_neg + theorem Polynomial.Chebyshev.U_eval_neg + theorem Polynomial.Chebyshev.degree_T + theorem Polynomial.Chebyshev.degree_U_natCast + theorem Polynomial.Chebyshev.degree_U_neg_one + theorem Polynomial.Chebyshev.degree_U_of_ne_neg_one + theorem Polynomial.Chebyshev.leadingCoeff_T + theorem Polynomial.Chebyshev.leadingCoeff_U_natCast + theorem Polynomial.Chebyshev.natDegree_T + theorem Polynomial.Chebyshev.natDegree_U + theorem Polynomial.Chebyshev.natDegree_U_natCast + theorem Polynomial.Chebyshev.natDegree_U_neg_one 2025-12-15 11:03:16 1f81f0f refactor(Algebra/Polynomial/Splits): continue deprecation (#32818) This PR continues the deprecation in Splits.lean as we move over to the new API in Factors.lean. ESTIMATED CHANGES Modified Mathlib/Algebra/Polynomial/Factors.lean + theorem Polynomial.Splits.mem_lift_of_roots_mem_range + theorem Polynomial.Splits.of_algHom + theorem Polynomial.Splits.of_degree_eq_two + theorem Polynomial.Splits.of_isScalarTower + theorem Polynomial.Splits.of_natDegree_eq_two Modified Mathlib/Algebra/Polynomial/Splits.lean - theorem Polynomial.mem_lift_of_splits_of_roots_mem_range - theorem Polynomial.splits_of_algHom - theorem Polynomial.splits_of_degree_eq_two - theorem Polynomial.splits_of_isScalarTower - theorem Polynomial.splits_of_natDegree_eq_two Modified Mathlib/FieldTheory/Galois/Basic.lean Modified Mathlib/FieldTheory/IsAlgClosed/Basic.lean Modified Mathlib/FieldTheory/Isaacs.lean Modified Mathlib/FieldTheory/Normal/Basic.lean Modified Mathlib/RingTheory/Polynomial/GaussLemma.lean 2025-12-15 11:03:14 c14f394 feat: cardinality of Hahn series (#32640) This is a very preliminary development; most of the PR is really just lemmas about `HahnSeries.support`. This will be needed in the CGT repo, to define surreal Hahn series as the subfield of real, small Hahn series over their own order dual. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/RingTheory/HahnSeries/Addition.lean +/- theorem HahnSeries.support_add_subset + theorem HahnSeries.support_neg_subset + theorem HahnSeries.support_smul_subset + theorem HahnSeries.support_sub_subset Modified Mathlib/RingTheory/HahnSeries/Basic.lean + theorem HahnSeries.support_map_subset + theorem HahnSeries.support_mk + theorem HahnSeries.support_truncLT + theorem HahnSeries.support_truncLT_subset Added Mathlib/RingTheory/HahnSeries/Cardinal.lean + def HahnSeries.cardSupp + theorem HahnSeries.cardSupp_add_le + theorem HahnSeries.cardSupp_congr + theorem HahnSeries.cardSupp_map_le + theorem HahnSeries.cardSupp_mono + theorem HahnSeries.cardSupp_mul_le + theorem HahnSeries.cardSupp_neg + theorem HahnSeries.cardSupp_neg_le + theorem HahnSeries.cardSupp_single_le + theorem HahnSeries.cardSupp_single_of_ne + theorem HahnSeries.cardSupp_smul_le + theorem HahnSeries.cardSupp_sub_le + theorem HahnSeries.cardSupp_truncLT_le + theorem HahnSeries.cardSupp_zero Modified Mathlib/RingTheory/HahnSeries/Multiplication.lean + theorem HahnSeries.support_mul_subset - theorem HahnSeries.support_mul_subset_add_support Modified Mathlib/RingTheory/HahnSeries/Summable.lean 2025-12-15 11:03:11 02db42b chore(Data/Finsupp): rename the `toFun` projection to `apply` in `simps` (#32562) This is the standard name for fun-like types. ESTIMATED CHANGES Modified Counterexamples/CliffordAlgebraNotInjective.lean Modified Mathlib/Algebra/Group/Finsupp.lean Modified Mathlib/Algebra/Polynomial/Derivative.lean Modified Mathlib/Data/Finsupp/Basic.lean Modified Mathlib/Data/Finsupp/Defs.lean Modified Mathlib/Data/Finsupp/Interval.lean Modified Mathlib/Data/Finsupp/Weight.lean Modified Mathlib/LinearAlgebra/Dual/Basis.lean +/- theorem Module.Basis.toDual_range Modified Mathlib/RingTheory/AlgebraTower.lean Modified Mathlib/RingTheory/Flat/EquationalCriterion.lean Modified Mathlib/RingTheory/HahnSeries/HEval.lean 2025-12-15 11:03:08 4351260 chore: refactor `Type*` and `Sort*` to use `mkFreshLevelParam` (#31717) Uses the API for creating new level parameters introduced in #30797. ESTIMATED CHANGES Modified Mathlib/Tactic/TypeStar.lean 2025-12-15 11:03:05 3b65ae2 feat(AlgebraicGeometry): descending affine cover of an inverse limit (#30988) ESTIMATED CHANGES Modified Mathlib/Algebra/Category/Ring/Constructions.lean + theorem CommRingCat.isPushout_of_isLocalization Modified Mathlib/AlgebraicGeometry/AffineTransitionLimit.lean + theorem AlgebraicGeometry.Scheme.exists_hom_comp_eq_comp_of_locallyOfFiniteType + theorem AlgebraicGeometry.Scheme.exists_isAffine_of_isLimit + theorem AlgebraicGeometry.Scheme.exists_isOpenCover_and_isAffine + theorem AlgebraicGeometry.Scheme.exists_isQuasiAffine_of_isLimit + theorem AlgebraicGeometry.exists_isAffineOpen_preimage_eq + theorem AlgebraicGeometry.exists_map_preimage_eq_map_preimage + theorem AlgebraicGeometry.exists_map_preimage_le_map_preimage + theorem AlgebraicGeometry.exists_preimage_eq + theorem AlgebraicGeometry.isBasis_preimage_isAffineOpen Modified Mathlib/AlgebraicGeometry/Gluing.lean Modified Mathlib/AlgebraicGeometry/Morphisms/IsIso.lean Modified Mathlib/AlgebraicGeometry/Pullbacks.lean + theorem AlgebraicGeometry.Scheme.isPullback_of_openCover Modified Mathlib/AlgebraicGeometry/QuasiAffine.lean + theorem AlgebraicGeometry.Scheme.isPullback_toSpecΓ_toSpecΓ + def AlgebraicGeometry.Scheme.openCoverBasicOpenTop + theorem AlgebraicGeometry.Scheme.preimage_opensRange_toSpecΓ Modified Mathlib/AlgebraicGeometry/Sites/MorphismProperty.lean Modified Mathlib/Topology/LocalAtTarget.lean + theorem TopologicalSpace.IsOpenCover.isHomeomorph_iff_restrictPreimage 2025-12-15 10:15:47 3e3a9f3 feat(RingTheory): residue field of `I[X]` (#32809) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/FieldTheory/RatFunc/AsPolynomial.lean + theorem RatFunc.liftRingHom_C + theorem RatFunc.liftRingHom_X Modified Mathlib/FieldTheory/RatFunc/Basic.lean + theorem RatFunc.liftRingHom_algebraMap + theorem RatFunc.liftRingHom_comp_algebraMap + theorem RatFunc.liftRingHom_ofFractionRing_algebraMap Modified Mathlib/RingTheory/Ideal/Quotient/Operations.lean + def AlgHom.liftOfSurjective + theorem AlgHom.liftOfSurjective_apply + theorem AlgHom.liftOfSurjective_comp + theorem AlgHom.liftOfSurjective_surjective Added Mathlib/RingTheory/LocalRing/ResidueField/Polynomial.lean + def Polynomial.fiberEquivQuotient + def Polynomial.residueFieldMapCAlgEquiv + theorem Polynomial.residueFieldMapCAlgEquiv_algebraMap + theorem Polynomial.residueFieldMapCAlgEquiv_symm_C + theorem Polynomial.residueFieldMapCAlgEquiv_symm_X 2025-12-15 10:15:45 55531ff feat(RingTheory): more ergonomic version of jacobi criterion for smoothness (#32802) ESTIMATED CHANGES Modified Mathlib/RingTheory/Extension/Basic.lean + theorem Algebra.Extension.contangentEquiv_tmul Modified Mathlib/RingTheory/Extension/Cotangent/Basic.lean + theorem Algebra.Extension.cotangentComplexBaseChange_eq_lTensor_cotangentComplex + theorem Algebra.Extension.lTensor_cotangentComplex_eq_cotangentComplexBaseChange + def KaehlerDifferential.cotangentComplexBaseChange + theorem KaehlerDifferential.cotangentComplexBaseChange_tmul Modified Mathlib/RingTheory/Smooth/Local.lean + theorem Algebra.FormallySmooth.iff_injective_cotangentComplexBaseChange + theorem Algebra.FormallySmooth.iff_injective_cotangentComplexBaseChange_residueField +/- theorem Algebra.FormallySmooth.iff_injective_lTensor_residueField.{u} 2025-12-15 10:15:41 7124244 doc(RingTheory): fix typos (#32789) Typos found and fixed by Codex. ESTIMATED CHANGES Modified Mathlib/RingTheory/AdicCompletion/AsTensorProduct.lean Modified Mathlib/RingTheory/AdicCompletion/Basic.lean Modified Mathlib/RingTheory/AdicCompletion/RingHom.lean Modified Mathlib/RingTheory/Conductor.lean Modified Mathlib/RingTheory/Congruence/Hom.lean Modified Mathlib/RingTheory/DedekindDomain/Factorization.lean Modified Mathlib/RingTheory/DividedPowers/Basic.lean Modified Mathlib/RingTheory/Etale/StandardEtale.lean Modified Mathlib/RingTheory/Extension/Generators.lean Modified Mathlib/RingTheory/Extension/Presentation/Basic.lean Modified Mathlib/RingTheory/FiniteType.lean Modified Mathlib/RingTheory/Flat/Basic.lean Modified Mathlib/RingTheory/Ideal/Over.lean Modified Mathlib/RingTheory/Ideal/Quotient/Operations.lean Modified Mathlib/RingTheory/Localization/LocalizationLocalization.lean Modified Mathlib/RingTheory/MvPolynomial/MonomialOrder.lean Modified Mathlib/RingTheory/MvPowerSeries/Trunc.lean Modified Mathlib/RingTheory/NonUnitalSubring/Basic.lean Modified Mathlib/RingTheory/NonUnitalSubsemiring/Basic.lean Modified Mathlib/RingTheory/Polynomial/Cyclotomic/Basic.lean Modified Mathlib/RingTheory/SimpleRing/Congr.lean Modified Mathlib/RingTheory/Valuation/Basic.lean Modified Mathlib/RingTheory/Valuation/ValuativeRel/Basic.lean 2025-12-15 10:15:39 ce2e727 feat: inclusion of an open submanifold is an immersion (#32760) ESTIMATED CHANGES Modified Mathlib/Geometry/Manifold/Immersion.lean + theorem Manifold.IsImmersion.ofOpen + theorem Manifold.IsImmersionAt.ofOpen + theorem Manifold.IsImmersionAtOfComplement.ofOpen + theorem Manifold.IsImmersionOfComplement.ofOpen Modified Mathlib/Topology/OpenPartialHomeomorph/Constructions.lean + theorem OpenPartialHomeomorph.subtypeRestr_symm_apply + theorem OpenPartialHomeomorph.subtypeRestr_target_subset 2025-12-15 10:15:35 37c079e feat(NumberTheory/EisensteinSeries/E2): Define the Eisenstein series E2 (#32584) We define the Eisenstein series E2 and prove some basic results which will be needed in #32585 to prove how it transforms under the slash action of SL2. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/NumberTheory/ModularForms/EisensteinSeries/E2/Defs.lean + def EisensteinSeries.D2 + theorem EisensteinSeries.D2_S + theorem EisensteinSeries.D2_T + theorem EisensteinSeries.D2_inv + theorem EisensteinSeries.D2_mul + theorem EisensteinSeries.D2_one + def EisensteinSeries.E2 + def EisensteinSeries.G2 + def EisensteinSeries.e2Summand + theorem EisensteinSeries.e2Summand_even + theorem EisensteinSeries.e2Summand_summable + theorem EisensteinSeries.e2Summand_zero_eq_two_riemannZeta_two Added Mathlib/NumberTheory/ModularForms/EisensteinSeries/E2/Summable.lean + theorem EisensteinSeries.G2_eq_tsum_cexp + theorem EisensteinSeries.G2_eq_tsum_symmetricIco + theorem EisensteinSeries.hasSum_e2Summand_symmetricIcc + theorem EisensteinSeries.hasSum_e2Summand_symmetricIco + theorem EisensteinSeries.summable_e2Summand_symmetricIcc + theorem EisensteinSeries.summable_e2Summand_symmetricIco + theorem EisensteinSeries.tendsto_e2Summand_atTop_nhds_zero Modified Mathlib/Topology/Algebra/InfiniteSum/ConditionalInt.lean + theorem HasProd.hasProd_symmetricIco_of_hasProd_symmetricIcc + theorem Summable.tendsto_zero_of_even_summable_symmetricIcc - theorem SummationFilter.HasProd.hasProd_symmetricIco_of_hasProd_symmetricIcc + theorem SummationFilter.multipliable_symmetricIco_of_multipliable_symmetricIcc - theorem SummationFilter.multipliable_symmetricIco_of_multiplible_symmetricIcc 2025-12-15 10:15:33 7429d41 feat(AlgebraicTopology): finite colimits of finite simplicial sets are finite (#32265) From https://github.com/joelriou/topcat-model-category ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/AlgebraicTopology/SimplicialSet/Finite.lean + theorem SSet.finite_iSup_iff Added Mathlib/AlgebraicTopology/SimplicialSet/FiniteColimits.lean + theorem SSet.finite_of_isColimit + theorem SSet.hasDimensionLT_of_isColimit + theorem SSet.iSup_range_eq_top_of_isColimit Modified Mathlib/CategoryTheory/FinCategory/Basic.lean 2025-12-15 10:15:30 7e8c2cb feat(Algebra): prerequisites for #31919 (#32118) + Extract a lemma `exists_aeval_invOf_eq_zero_of_ideal_map_adjoin_add_span_eq_top` that was used in the proof of [stacks#00IB](https://stacks.math.columbia.edu/tag/00IB) and are used to prove both parts of [stacks#090P](https://stacks.math.columbia.edu/tag/090P) + Add lemmas on units in a submonoid of a DivisionMonoid/Group(WithZero) + Add instances for `integralClosure` and API for integrally closed subrings + Add a lemma on `trailingCoeff` of polynomials + Fix a statement in `local_hom_TFAE` and rename to `isLocalHom_tfae` + Unify the instances `Algebra.ofSubsemiring` and `Algebra.ofSubring` + Move `NonUnitalSub(semi)ringClass` instance on `Ideal` to from Ideal/Operations to Defs + Upgrade `ValuationSubring.nonunits` from `Subsemigroup` to `NonUnitalSubring` ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/Basic.lean +/- theorem Algebra.algebraMap_ofSubsemiring_apply +/- theorem Algebra.coe_algebraMap_ofSubsemiring Modified Mathlib/Algebra/Polynomial/Degree/TrailingDegree.lean + theorem Polynomial.trailingCoeff_eq_coeff_zero Modified Mathlib/NumberTheory/Padics/PadicIntegers.lean Modified Mathlib/RingTheory/Ideal/Nonunits.lean + theorem Submonoid.inv_mem_of_isUnit + theorem Submonoid.isUnit_iff + theorem Submonoid.isUnit_iff_and + theorem Submonoid.isUnit_iff_of_ne_zero + theorem Submonoid.mem_nonunits_iff_of_ne_zero + theorem Submonoid.mem_nonunits_iff_or Modified Mathlib/RingTheory/IntegralClosure/IntegrallyClosed.lean + theorem Subring.integralClosure_le_iff + theorem Subring.integralClosure_subring_le_iff +/- theorem isIntegrallyClosedIn_iff Modified Mathlib/RingTheory/LocalRing/LocalSubring.lean Modified Mathlib/RingTheory/LocalRing/RingHom/Basic.lean Modified Mathlib/RingTheory/Polynomial/Basic.lean Modified Mathlib/RingTheory/Polynomial/Ideal.lean + theorem Algebra.exists_aeval_invOf_eq_zero_of_idealMap_adjoin_sup_span_eq_top +/- theorem Algebra.mem_ideal_map_adjoin Modified Mathlib/RingTheory/Valuation/AlgebraInstances.lean +/- theorem ValuationSubring.isIntegral_of_mem_ringOfIntegers' Modified Mathlib/RingTheory/Valuation/Integers.lean Modified Mathlib/RingTheory/Valuation/ValuationSubring.lean + theorem ValuationSubring.integer_valuation + theorem ValuationSubring.inv_mem_nonunits_iff + theorem ValuationSubring.mem_nonunits_iff_or +/- def ValuationSubring.nonunits +/- def ValuationSubring.nonunitsOrderEmbedding +/- theorem ValuationSubring.nonunits_injective +/- theorem ValuationSubring.nonunits_le 2025-12-15 09:35:30 7fbf73c refactor: turn `RootSystem` into a mixin rather than extending `RootPairing` (#32885) The motivating benefits are: - Saving us from having to duplicate instances - Solving namespace issues such where to put lemmas about `RootPairing.Base` which are true only for `RootSystem`s - Allowing us to drop a few `.toRootPairing` I see no downsides. ESTIMATED CHANGES Modified Mathlib/Algebra/Lie/Weights/IsSimple.lean Modified Mathlib/Algebra/Lie/Weights/RootSystem.lean Modified Mathlib/LinearAlgebra/RootSystem/Base.lean Modified Mathlib/LinearAlgebra/RootSystem/BaseChange.lean Modified Mathlib/LinearAlgebra/RootSystem/Basic.lean + theorem RootPairing.isRootSystem_mk'' + def RootPairing.mk'' - def RootSystem.mk' Modified Mathlib/LinearAlgebra/RootSystem/CartanMatrix.lean +/- theorem RootPairing.Base.cartanMatrixIn_mul_diagonal_eq +/- def RootPairing.Base.equivOfCartanMatrixEq +/- theorem RootPairing.Base.injective_pairingIn Modified Mathlib/LinearAlgebra/RootSystem/Defs.lean + theorem RootPairing.reflectionPerm_eq_reflectionPerm_iff - def RootSystem.flipEquiv - theorem RootSystem.reflectionPerm_eq_reflectionPerm_iff - structure RootSystem Modified Mathlib/LinearAlgebra/RootSystem/Finite/G2.lean Modified Mathlib/LinearAlgebra/RootSystem/Finite/Nondegenerate.lean + theorem RootPairing.rootForm_anisotropic + theorem RootPairing.rootForm_nondegenerate - theorem RootSystem.rootForm_anisotropic - theorem RootSystem.rootForm_nondegenerate Modified Mathlib/LinearAlgebra/RootSystem/GeckConstruction/Relations.lean Modified Mathlib/LinearAlgebra/RootSystem/GeckConstruction/Semisimple.lean Modified Mathlib/LinearAlgebra/RootSystem/Hom.lean Modified Mathlib/LinearAlgebra/RootSystem/Irreducible.lean + theorem RootPairing.eq_top_of_mem_invtSubmodule_of_forall_eq_univ - def RootPairing.toRootSystem - theorem RootSystem.eq_top_of_mem_invtSubmodule_of_forall_eq_univ Modified Mathlib/LinearAlgebra/RootSystem/IsValuedIn.lean +/- theorem RootPairing.span_coroot'_eq_top +/- theorem RootPairing.span_root'_eq_top 2025-12-15 09:35:27 083c64b feat(RingTheory/MvPolynomial/Ideal): `sPolynomial` preserves ideal membership (#32801) It will be used by Buchberger's Criterion (in #29203). ESTIMATED CHANGES Modified Mathlib/RingTheory/MvPolynomial/Ideal.lean + theorem MonomialOrder.sPolynomial_mem_ideal + theorem MonomialOrder.sPolynomial_mem_sup_ideal 2025-12-15 09:35:26 27c3c58 feat(RingTheory/MvPolynomial/MonomialOrder): add several lemmas about `leadingTerm` and inequality on degree (#32787) Some of them were abstracted from a proof of Buchberger's Criterion (#29203). ESTIMATED CHANGES Modified Mathlib/RingTheory/MvPolynomial/MonomialOrder.lean + theorem MonomialOrder.degree_leadingTerm_mul + theorem MonomialOrder.degree_lt_of_left_ne_zero_of_degree_mul_lt + theorem MonomialOrder.degree_mul_leadingTerm + theorem MonomialOrder.degree_mul_lt_iff_left_lt_of_ne_zero + theorem MonomialOrder.leadingTerm_monomial 2025-12-15 09:35:24 34ee977 feat: integer inequalities from multiples in a strict ordered ring (#32747) These were useful during the review of #32259. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Order/Ring/Interval.lean + theorem IsStrictOrderedRing.int_eq_of_mul_mem_Ioo + theorem IsStrictOrderedRing.int_mem_Icc_of_mul_mem_Ioo 2025-12-15 09:35:21 1290917 chore(RingTheory): rename `RingHom.specComap` to `PrimeSpectrum.comap` (#32703) and remove the old `PrimeSpectrum.comap`, which was `RingHom.specComap` bundled as a continuous map. Having both `RingHom.specComap` and `PrimeSpectrum.comap` leads to two ways of writing the same thing, with every lemma written before the topology-on-`PrimeSpectrum`-barrier stated in terms of `RingHom.specComap` and most lemmas after it stated in terms of `PrimeSpectrum.comap`. Since the bundled continuous map version is not useful, because the topology library rarely takes continuous maps as input, we remove the bundled version, but keep the name `PrimeSpectrum.comap` for the unbundled one. ESTIMATED CHANGES Modified Mathlib/AlgebraicGeometry/GammaSpecAdjunction.lean Modified Mathlib/AlgebraicGeometry/IdealSheaf/Basic.lean Modified Mathlib/AlgebraicGeometry/Morphisms/OpenImmersion.lean Modified Mathlib/AlgebraicGeometry/Morphisms/UniversallyClosed.lean Modified Mathlib/AlgebraicGeometry/Scheme.lean +/- theorem AlgebraicGeometry.Spec.map_base Modified Mathlib/AlgebraicGeometry/Spec.lean Modified Mathlib/AlgebraicGeometry/StructureSheaf.lean Modified Mathlib/RingTheory/Flat/FaithfullyFlat/Algebra.lean + theorem Module.FaithfullyFlat.of_comap_surjective - theorem Module.FaithfullyFlat.of_specComap_surjective + theorem PrimeSpectrum.comap_surjective_of_faithfullyFlat - theorem PrimeSpectrum.specComap_surjective_of_faithfullyFlat Modified Mathlib/RingTheory/Ideal/GoingDown.lean + theorem Algebra.HasGoingDown.of_comap_localRingHom_surjective - theorem Algebra.HasGoingDown.of_specComap_localRingHom_surjective Modified Mathlib/RingTheory/Ideal/KrullsHeightTheorem.lean Modified Mathlib/RingTheory/KrullDimension/Polynomial.lean Modified Mathlib/RingTheory/LocalRing/ResidueField/Fiber.lean Modified Mathlib/RingTheory/RingHom/FaithfullyFlat.lean Modified Mathlib/RingTheory/Spectrum/Maximal/Localization.lean Modified Mathlib/RingTheory/Spectrum/Prime/Chevalley.lean Modified Mathlib/RingTheory/Spectrum/Prime/ChevalleyComplexity.lean Modified Mathlib/RingTheory/Spectrum/Prime/ConstructibleSet.lean Modified Mathlib/RingTheory/Spectrum/Prime/FreeLocus.lean Modified Mathlib/RingTheory/Spectrum/Prime/Homeomorph.lean Modified Mathlib/RingTheory/Spectrum/Prime/Polynomial.lean Modified Mathlib/RingTheory/Spectrum/Prime/RingHom.lean + theorem IsLocalHom.of_comap_surjective - theorem IsLocalHom.of_specComap_surjective + def PrimeSpectrum.comap + theorem PrimeSpectrum.comap_asIdeal + theorem PrimeSpectrum.comap_comp + theorem PrimeSpectrum.comap_comp_apply + theorem PrimeSpectrum.comap_id + theorem PrimeSpectrum.comap_injective_of_surjective + theorem PrimeSpectrum.iUnion_range_comap_comp_evalRingHom - theorem PrimeSpectrum.iUnion_range_specComap_comp_evalRingHom + theorem PrimeSpectrum.preimage_comap_zeroLocus + theorem PrimeSpectrum.preimage_comap_zeroLocus_aux - theorem PrimeSpectrum.preimage_specComap_zeroLocus - theorem PrimeSpectrum.preimage_specComap_zeroLocus_aux + theorem PrimeSpectrum.residueField_comap - theorem PrimeSpectrum.residueField_specComap +/- def PrimeSpectrum.sigmaToPi - theorem PrimeSpectrum.specComap_asIdeal - theorem PrimeSpectrum.specComap_comp - theorem PrimeSpectrum.specComap_comp_apply - theorem PrimeSpectrum.specComap_id - theorem PrimeSpectrum.specComap_injective_of_surjective + theorem RingHom.strictMono_comap_of_surjective - theorem RingHom.strictMono_specComap_of_surjective + theorem image_comap_zeroLocus_eq_zeroLocus_comap - theorem image_specComap_zeroLocus_eq_zeroLocus_comap + theorem range_comap_of_surjective - theorem range_specComap_of_surjective Modified Mathlib/RingTheory/Spectrum/Prime/TensorProduct.lean Modified Mathlib/RingTheory/Spectrum/Prime/Topology.lean - theorem PrimeSpectrum.coe_comap - def PrimeSpectrum.comap +/- theorem PrimeSpectrum.comap_apply - theorem PrimeSpectrum.comap_asIdeal - theorem PrimeSpectrum.comap_comp - theorem PrimeSpectrum.comap_comp_apply - theorem PrimeSpectrum.comap_id - theorem PrimeSpectrum.comap_injective_of_surjective + theorem PrimeSpectrum.continuous_comap - theorem PrimeSpectrum.image_comap_zeroLocus_eq_zeroLocus_comap - theorem PrimeSpectrum.localization_specComap_injective - theorem PrimeSpectrum.localization_specComap_range - theorem PrimeSpectrum.preimage_comap_zeroLocus - theorem PrimeSpectrum.range_comap_of_surjective + theorem RingHom.IsIntegral.comap_surjective - theorem RingHom.IsIntegral.specComap_surjective Modified docs/1000.yaml 2025-12-15 09:35:19 7702ccb chore(Algebra/MonoidAlgebra): scope `Algebra R[M] A[M]` instance (#32591) It is currently local, but then the Prop-valued instances about it are not and therefore bring the (non-)instance back from the dead. ESTIMATED CHANGES Modified Mathlib/Algebra/MonoidAlgebra/Basic.lean + theorem MonoidAlgebra.isScalarTower_monoidAlgebra Modified Mathlib/RingTheory/TensorProduct/MonoidAlgebra.lean 2025-12-15 09:35:17 4409d51 feat(LinearAlgebra/TensorProduct): explicit tensor product decomposition in a finite basis (#32492) Prove two lemmas about the coefficients of finite dimensional tensor product expansions in right and left bases. ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/TensorProduct/Basis.lean + theorem TensorProduct.equivFinsuppOfBasisLeft_apply + theorem TensorProduct.equivFinsuppOfBasisRight_apply 2025-12-15 09:35:15 610ce1f feat(RingTheory/PowerSeries/Substitution): add `le_order_subst` (#32479) I add a theorem saying multiplication of order less than the order of substitution. I tried to put at the file `PowerSeries.Order`, but it seems like in this file we already import `PowerSeries.Substitution`. ESTIMATED CHANGES Modified Mathlib/RingTheory/MvPowerSeries/Substitution.lean + theorem MvPowerSeries.le_order_subst + theorem MvPowerSeries.le_weightedOrder_subst + theorem MvPowerSeries.le_weightedOrder_subst_of_forall_ne_zero Modified Mathlib/RingTheory/PowerSeries/Order.lean + theorem PowerSeries.order_eq_order Modified Mathlib/RingTheory/PowerSeries/Substitution.lean + theorem PowerSeries.le_order_subst + theorem PowerSeries.le_weightedOrder_subst 2025-12-15 09:35:13 cd5830e feat(AlgebraicTopology): binary products of standard simplices (#32237) We start the study of nondegenerate simplices in `Δ[p] ⊗ Δ[q]`. In particular, we show that it is of dimension `≤ p + q`. From https://github.com/joelriou/topcat-model-category ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/AlgebraicTopology/SimplicialSet/Monoidal.lean Added Mathlib/AlgebraicTopology/SimplicialSet/ProdStdSimplex.lean + def SSet.prodStdSimplex.isoNerve + theorem SSet.prodStdSimplex.nonDegenerate_iff_injective_objEquiv + theorem SSet.prodStdSimplex.nonDegenerate_iff_strictMono_objEquiv + def SSet.prodStdSimplex.objEquiv + theorem SSet.prodStdSimplex.objEquiv_apply_fst + theorem SSet.prodStdSimplex.objEquiv_apply_snd + theorem SSet.prodStdSimplex.objEquiv_map_apply + theorem SSet.prodStdSimplex.objEquiv_naturality + theorem SSet.prodStdSimplex.objEquiv_δ_apply + def SSet.prodStdSimplex.orderHomOfSimplex + theorem SSet.prodStdSimplex.strictMono_orderHomOfSimplex_iff 2025-12-15 07:33:52 63c92d8 feat: lint against unscoped uses of the linter.flexible option (#32724) We extend the setOption linter to also lint on this option. To facilitate this, we replace the remaining file-level exceptions by local annotations (and squeeze a few non-terminal simps where doing so seems easy enough). ESTIMATED CHANGES Modified Mathlib/Computability/Halting.lean Modified Mathlib/Computability/Partrec.lean Modified Mathlib/Computability/PartrecCode.lean Modified Mathlib/Computability/Primrec.lean Modified Mathlib/Computability/TMToPartrec.lean Modified Mathlib/Data/Seq/Basic.lean Modified Mathlib/Data/WSeq/Basic.lean Modified Mathlib/SetTheory/Ordinal/Notation.lean Modified Mathlib/Tactic/Linter/Style.lean Modified MathlibTest/LintStyle.lean 2025-12-15 01:46:30 3ea6690 feat(Data/Set/Card): ncard of complement of set is Nat.card - ncard of set (#32754) ESTIMATED CHANGES Modified Mathlib/Data/Set/Card.lean + theorem Set.ncard_compl 2025-12-14 23:13:07 e7f9e39 feat(Data/Set/Card): Add simplification theorem about cardinalities of "big" cartesian products. (#32644) This extends the theorem above from just pairs to arbitrary tuples. ESTIMATED CHANGES Modified Mathlib/Data/Set/Card.lean + theorem Set.encard_pi_eq_prod_encard 2025-12-14 20:24:25 5010acf feat(Combinatorics/SimpleGraph): edge labellings (#30047) Add edge labellings for `SimpleGraph` as well as some basic lemmata. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Combinatorics/SimpleGraph/Basic.lean + theorem SimpleGraph.disjoint_left Added Mathlib/Combinatorics/SimpleGraph/EdgeLabeling.lean + def SimpleGraph.EdgeLabeling.compRight + theorem SimpleGraph.EdgeLabeling.compRight_apply + theorem SimpleGraph.EdgeLabeling.compRight_get + theorem SimpleGraph.EdgeLabeling.ext_get + def SimpleGraph.EdgeLabeling.get + theorem SimpleGraph.EdgeLabeling.get_comm + theorem SimpleGraph.EdgeLabeling.get_eq + theorem SimpleGraph.EdgeLabeling.get_mk + theorem SimpleGraph.EdgeLabeling.get_pullback + theorem SimpleGraph.EdgeLabeling.iSup_labelGraph + def SimpleGraph.EdgeLabeling.labelGraph + theorem SimpleGraph.EdgeLabeling.labelGraph_adj + theorem SimpleGraph.EdgeLabeling.labelGraph_le + def SimpleGraph.EdgeLabeling.mk + theorem SimpleGraph.EdgeLabeling.pairwiseDisjoint_univ_labelGraph + theorem SimpleGraph.EdgeLabeling.pairwise_disjoint_labelGraph + def SimpleGraph.EdgeLabeling.pullback + theorem SimpleGraph.EdgeLabeling.pullback_apply + def SimpleGraph.EdgeLabeling + theorem SimpleGraph.TopEdgeLabeling.labelGraph_adj + theorem SimpleGraph.TopEdgeLabeling.labelGraph_toTopEdgeLabeling + theorem SimpleGraph.card_topEdgeLabeling + def SimpleGraph.toTopEdgeLabeling + theorem SimpleGraph.toTopEdgeLabeling_get + theorem SimpleGraph.toTopEdgeLabeling_labelGraph + theorem SimpleGraph.toTopEdgeLabeling_labelGraph_compl Modified Mathlib/Combinatorics/SimpleGraph/Regularity/Increment.lean Modified Mathlib/Combinatorics/SimpleGraph/Triangle/Counting.lean Modified Mathlib/Data/Sym/Sym2.lean 2025-12-14 18:52:35 32d2424 feat: another version of mapping Gaussian measures (#32719) Mathlib has [ProbabilityTheory.isGaussian_map](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Probability/Distributions/Gaussian/Basic.html#ProbabilityTheory.isGaussian_map) which states that mapping a Gaussian measure by a continuous linear map yields a Gaussian measure. However this requires the domain of the linear map to be Borel, which in turns requires some second countability assumption if said domain is a product space. This Borel assumption is only needed to ensure that the continuous linear map is measurable, but for instance `Prod.fst` and `Prod.snd` are measurable regardless of Borel considerations. We thus provide a new version which much less assumptions on the space and with the extra assumption that the map is measurable. This avoids some second countability assumptions in #32144. ESTIMATED CHANGES Modified Mathlib/Probability/Distributions/Gaussian/Basic.lean + theorem ProbabilityTheory.isGaussian_map_of_measurable 2025-12-14 16:32:18 772dc6e chore: lower case `Accumulate` (#32871) `Accumulate` is a function constructing a `Set`. Per our naming rules, it should be lower-case. The current upper case is probably a consequence of the migration script from Lean 3 to Lean 4, which had issues with the casing of Set-valued functions. This PR changes it to lower case. ESTIMATED CHANGES Modified Mathlib/Data/Set/Accumulate.lean - def Set.Accumulate + def Set.accumulate +/- theorem Set.accumulate_bot +/- theorem Set.accumulate_def +/- theorem Set.accumulate_subset_iUnion +/- theorem Set.accumulate_zero_nat +/- theorem Set.biUnion_accumulate +/- theorem Set.iUnion_accumulate +/- theorem Set.mem_accumulate +/- theorem Set.monotone_accumulate +/- theorem Set.subset_accumulate Modified Mathlib/MeasureTheory/Measure/AddContent.lean Modified Mathlib/MeasureTheory/Measure/FiniteMeasure.lean Modified Mathlib/MeasureTheory/Measure/MeasureSpace.lean Modified Mathlib/MeasureTheory/Measure/Portmanteau.lean Modified Mathlib/MeasureTheory/Measure/ProbabilityMeasure.lean Modified Mathlib/MeasureTheory/Measure/SeparableMeasure.lean Modified Mathlib/MeasureTheory/Measure/Typeclasses/SFinite.lean Modified Mathlib/MeasureTheory/SetSemiring.lean Modified Mathlib/Topology/Compactness/Compact.lean Modified Mathlib/Topology/Compactness/Lindelof.lean Modified Mathlib/Topology/Compactness/SigmaCompact.lean 2025-12-14 15:40:21 fcf037d feat: extend Stieltjes measures to more general index types (#32482) Stieltjes measures are currently only defined on the real line. We extend the definition to more general index sets, to allow for instance the nonnegative reals or compact intervals. Some proofs become more cumbersome because we have to deal with the possibility of a bottom or a top element, but the end results are exactly the same as on the real line. ESTIMATED CHANGES Modified Mathlib/Analysis/Calculus/Monotone.lean +/- theorem StieltjesFunction.ae_hasDerivAt Modified Mathlib/MeasureTheory/Measure/Stieltjes.lean + theorem Ioc_diff_botSet + theorem Ioo_subset_Iotop + def Iotop + theorem Iotop_subset_Ioc +/- theorem StieltjesFunction.add_apply +/- theorem StieltjesFunction.borel_le_measurable +/- theorem StieltjesFunction.const_apply +/- theorem StieltjesFunction.countable_leftLim_ne +/- theorem StieltjesFunction.eq_of_measure_of_eq +/- theorem StieltjesFunction.eq_of_measure_of_tendsto_atBot +/- theorem StieltjesFunction.ext +/- theorem StieltjesFunction.iInf_Ioi_eq +/- theorem StieltjesFunction.iInf_rat_gt_eq +/- theorem StieltjesFunction.isFiniteMeasure +/- theorem StieltjesFunction.isProbabilityMeasure +/- def StieltjesFunction.length +/- theorem StieltjesFunction.length_Ioc + theorem StieltjesFunction.length_diff_botSet +/- theorem StieltjesFunction.length_empty + theorem StieltjesFunction.length_eq + theorem StieltjesFunction.length_eq_of_isEmpty +/- theorem StieltjesFunction.length_mono +/- theorem StieltjesFunction.length_subadditive_Icc_Ioo +/- theorem StieltjesFunction.measurableSet_Ioi +/- theorem StieltjesFunction.measure_Icc +/- theorem StieltjesFunction.measure_Ici +/- theorem StieltjesFunction.measure_Ici_of_tendsto_atTop_atTop +/- theorem StieltjesFunction.measure_Ico +/- theorem StieltjesFunction.measure_Iic +/- theorem StieltjesFunction.measure_Iic_of_tendsto_atBot_atBot +/- theorem StieltjesFunction.measure_Iio +/- theorem StieltjesFunction.measure_Iio_of_tendsto_atBot_atBot +/- theorem StieltjesFunction.measure_Ioc +/- theorem StieltjesFunction.measure_Ioi +/- theorem StieltjesFunction.measure_Ioi_of_tendsto_atTop_atTop +/- theorem StieltjesFunction.measure_Ioo +/- theorem StieltjesFunction.measure_add +/- theorem StieltjesFunction.measure_const +/- theorem StieltjesFunction.measure_singleton +/- theorem StieltjesFunction.measure_smul +/- theorem StieltjesFunction.measure_univ +/- theorem StieltjesFunction.measure_univ_of_tendsto_atBot_atBot +/- theorem StieltjesFunction.measure_univ_of_tendsto_atTop_atTop +/- theorem StieltjesFunction.measure_zero +/- theorem StieltjesFunction.outer_Ioc +/- theorem StieltjesFunction.outer_le_length +/- theorem StieltjesFunction.outer_trim +/- theorem StieltjesFunction.rightLim_eq +/- theorem StieltjesFunction.right_continuous +/- theorem StieltjesFunction.zero_apply + def botSet + theorem isOpen_Iotop + theorem measurableSet_botSet + theorem notMem_botSet_of_lt Modified Mathlib/Probability/CDF.lean +/- def ProbabilityTheory.cdf +/- theorem ProbabilityTheory.cdf_measure_stieltjesFunction Modified Mathlib/Probability/Distributions/Exponential.lean +/- def ProbabilityTheory.exponentialCDFReal Modified Mathlib/Probability/Distributions/Gamma.lean +/- def ProbabilityTheory.gammaCDFReal Modified Mathlib/Probability/Kernel/Disintegration/CDFToKernel.lean +/- def ProbabilityTheory.IsCondKernelCDF.toKernel +/- structure ProbabilityTheory.IsCondKernelCDF Modified Mathlib/Probability/Kernel/Disintegration/CondCDF.lean Modified Mathlib/Probability/Kernel/Disintegration/MeasurableStieltjes.lean +/- def ProbabilityTheory.stieltjesOfMeasurableRat Modified Mathlib/Probability/Kernel/Disintegration/StandardBorel.lean +/- def ProbabilityTheory.Kernel.condKernelCDF 2025-12-14 14:45:24 bf4d61f chore: `IsTightMeasureSet_iff_exists_isCompact_measure_compl_le` should be lower case (#32873) ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Measure/Tight.lean - theorem MeasureTheory.IsTightMeasureSet_iff_exists_isCompact_measure_compl_le + theorem MeasureTheory.isTightMeasureSet_iff_exists_isCompact_measure_compl_le Modified Mathlib/MeasureTheory/Measure/TightNormed.lean 2025-12-14 14:45:22 b3acb05 feat: construct a bounded continuous map from a continuous compactly supported map (#32786) ESTIMATED CHANGES Modified Mathlib/Topology/ContinuousMap/CompactlySupported.lean + def CompactlySupportedContinuousMap.toBoundedContinuousFunction 2025-12-14 14:45:20 a3ead08 feat: more API for FiniteMeasure and ProbabilityMeasure (#32784) ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Measure/FiniteMeasure.lean + theorem MeasureTheory.FiniteMeasure.Topology.IsClosedEmbedding.isEmbedding_map_finiteMeasure +/- theorem MeasureTheory.FiniteMeasure.continuous_mass + theorem MeasureTheory.FiniteMeasure.mass_comap_le + theorem MeasureTheory.FiniteMeasure.mass_map_le + theorem MeasureTheory.FiniteMeasure.measureReal_eq_coe_coeFn + theorem MeasureTheory.FiniteMeasure.restrict_union + theorem MeasureTheory.FiniteMeasure.restrict_univ + theorem MeasureTheory.FiniteMeasure.toMeasure_comap + theorem MeasureTheory.FiniteMeasure.toMeasure_mk + theorem MeasureTheory.FiniteMeasure.toMeasure_sum + theorem Topology.IsClosedEmbedding.continuousOn_comap_finiteMeasure Modified Mathlib/MeasureTheory/Measure/ProbabilityMeasure.lean + theorem MeasureTheory.ProbabilityMeasure.range_toFiniteMeasure Modified Mathlib/MeasureTheory/Measure/Typeclasses/Probability.lean + theorem MeasureTheory.isProbabilityMeasure_iff_real +/- theorem MeasureTheory.probReal_univ 2025-12-14 14:45:19 66d2fea fix: minor error in comment of example for natural transformation (#32371) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/NatTrans.lean 2025-12-14 14:45:17 8ab6efe feat(Probability): definition of trajMeasure (#30333) A definition of `trajMeasure` and some basic lemmas. In the context of the Ionescu-Tulcea theorem, `trajMeasure μ₀ κ` corresponds to the distribution of the trajectory obtained by starting with the distribution `μ₀` and then iterating the kernels `κ`. Lemmas `partialTraj_compProd_kernel_eq_traj_map` and `traj_map_eq_kernel` are attributable to @EtienneC30 and some definitions borrow code from @RemyDegenne , who also improved the code considerably. Please let me know if you would like to be co-authors in this pull request. From the LeanBandits project. ESTIMATED CHANGES Modified Mathlib/Order/Interval/Finset/Basic.lean Modified Mathlib/Order/Interval/Finset/Nat.lean Modified Mathlib/Probability/Kernel/IonescuTulcea/PartialTraj.lean + theorem ProbabilityTheory.Kernel.map_partialTraj_succ_self Modified Mathlib/Probability/Kernel/IonescuTulcea/Traj.lean + theorem ProbabilityTheory.Kernel.condDistrib_trajMeasure + theorem ProbabilityTheory.Kernel.map_frestrictLe_trajMeasure_compProd_eq_map_trajMeasure + theorem ProbabilityTheory.Kernel.map_traj_succ_self + theorem ProbabilityTheory.Kernel.partialTraj_compProd_eq_map_traj + def ProbabilityTheory.Kernel.trajMeasure 2025-12-14 13:26:50 5e9b6b9 chore: bump toolchain to v4.27.0-rc1 (#32874) ESTIMATED CHANGES Modified Archive/Imo/Imo2015Q6.lean Modified Cache/IO.lean Modified Cache/Requests.lean +/- def Cache.Requests.getGitCommitHash Modified Mathlib/Algebra/GroupWithZero/Torsion.lean Modified Mathlib/Algebra/Homology/DerivedCategory/Ext/Basic.lean Modified Mathlib/Algebra/Homology/ExactSequence.lean Modified Mathlib/Algebra/Homology/HomotopyCategory/MappingCone.lean Modified Mathlib/Algebra/Module/ZLattice/Summable.lean Modified Mathlib/Algebra/Polynomial/Coeff.lean Modified Mathlib/Algebra/Polynomial/RuleOfSigns.lean Modified Mathlib/Algebra/Ring/Int/Parity.lean Modified Mathlib/AlgebraicTopology/SimplexCategory/MorphismProperty.lean Modified Mathlib/AlgebraicTopology/SimplicialSet/Dimension.lean +/- theorem SSet.hasDimensionLT_of_le Modified Mathlib/AlgebraicTopology/SimplicialSet/NerveAdjunction.lean Modified Mathlib/AlgebraicTopology/SimplicialSet/Path.lean +/- def SSet.Truncated.Path.interval Modified Mathlib/AlgebraicTopology/SimplicialSet/StrictSegal.lean Modified Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/NonUnital.lean Modified Mathlib/Analysis/Calculus/ContDiff/FaaDiBruno.lean Modified Mathlib/Analysis/Convex/Between.lean Modified Mathlib/Analysis/Normed/Affine/Simplex.lean Modified Mathlib/CategoryTheory/Filtered/Small.lean Modified Mathlib/CategoryTheory/Functor/OfSequence.lean Modified Mathlib/CategoryTheory/Limits/Shapes/WideEqualizers.lean Modified Mathlib/CategoryTheory/Shift/CommShiftTwo.lean Modified Mathlib/Combinatorics/Quiver/Path.lean Modified Mathlib/Control/Lawful.lean - theorem ExceptT.run_monadMap - theorem ReaderT.run_mk - theorem StateT.run_mk Modified Mathlib/Data/ENNReal/Inv.lean Modified Mathlib/Data/Fin/Basic.lean Modified Mathlib/Data/Fin/SuccPred.lean Modified Mathlib/Data/Fin/VecNotation.lean Modified Mathlib/Data/Int/Init.lean Modified Mathlib/Data/Int/Interval.lean Modified Mathlib/Data/List/ChainOfFn.lean Modified Mathlib/Data/List/Cycle.lean Modified Mathlib/Data/List/Infix.lean Modified Mathlib/Data/List/Nodup.lean +/- theorem List.get_idxOf Modified Mathlib/Data/Nat/Find.lean Modified Mathlib/Data/PFun.lean Modified Mathlib/Data/Part.lean Modified Mathlib/Data/Prod/Basic.lean Modified Mathlib/Data/Prod/PProd.lean Modified Mathlib/Data/Set/Image.lean Modified Mathlib/Data/Sigma/Basic.lean Modified Mathlib/Data/String/Basic.lean +/- theorem String.toList_nonempty Modified Mathlib/FieldTheory/IntermediateField/Adjoin/Defs.lean Modified Mathlib/Geometry/Euclidean/Incenter.lean Modified Mathlib/GroupTheory/Congruence/Basic.lean Modified Mathlib/GroupTheory/Coxeter/Basic.lean Modified Mathlib/GroupTheory/FreeGroup/Reduce.lean Modified Mathlib/GroupTheory/MonoidLocalization/Basic.lean Modified Mathlib/Init.lean Modified Mathlib/LinearAlgebra/Matrix/GeneralLinearGroup/FinTwo.lean Modified Mathlib/Logic/Unique.lean Modified Mathlib/Order/Interval/Finset/Nat.lean +/- theorem Nat.mem_Ioc_succ' Modified Mathlib/Order/KrullDimension.lean Modified Mathlib/Order/RelClasses.lean Modified Mathlib/Order/RelSeries.lean Modified Mathlib/RingTheory/IntegralClosure/Algebra/Ideal.lean Modified Mathlib/RingTheory/Perfection.lean Modified Mathlib/Tactic/Bound.lean Modified Mathlib/Tactic/Common.lean Modified Mathlib/Tactic/ComputeDegree.lean Modified Mathlib/Tactic/DeprecateTo.lean Modified Mathlib/Tactic/Field.lean Modified Mathlib/Tactic/FieldSimp.lean Modified Mathlib/Tactic/FindSyntax.lean Modified Mathlib/Tactic/Finiteness.lean Modified Mathlib/Tactic/Linarith/Frontend.lean Modified Mathlib/Tactic/Linarith/Parsing.lean - def Std.TreeMap.beq Modified Mathlib/Tactic/Linter/CommandStart.lean Modified Mathlib/Tactic/Linter/DeprecatedSyntaxLinter.lean Modified Mathlib/Tactic/Linter/DocString.lean Modified Mathlib/Tactic/Linter/EmptyLine.lean Modified Mathlib/Tactic/Linter/FindDeprecations.lean Modified Mathlib/Tactic/Linter/FlexibleLinter.lean Modified Mathlib/Tactic/Linter/Header.lean Modified Mathlib/Tactic/Linter/PPRoundtrip.lean Modified Mathlib/Tactic/Linter/TextBased.lean Modified Mathlib/Tactic/MinImports.lean Modified Mathlib/Tactic/NoncommRing.lean Modified Mathlib/Tactic/NormNum/Core.lean Modified Mathlib/Tactic/Positivity/Core.lean Modified Mathlib/Tactic/Sat/FromLRAT.lean Modified Mathlib/Tactic/Simps/Basic.lean Modified Mathlib/Tactic/StacksAttribute.lean Modified Mathlib/Tactic/SuccessIfFailWithMsg.lean Modified Mathlib/Tactic/TacticAnalysis/Declarations.lean - def omegaToCutsat - def omegaToCutsatRegressions + def omegaToLia + def omegaToLiaRegressions Modified Mathlib/Tactic/Translate/Core.lean Modified Mathlib/Tactic/Widget/Calc.lean Modified Mathlib/Tactic/Widget/SelectPanelUtils.lean Modified Mathlib/Topology/EMetricSpace/BoundedVariation.lean Modified Mathlib/Util/CompileInductive.lean Modified Mathlib/Util/GetAllModules.lean Modified Mathlib/Util/Notation3.lean Modified Mathlib/Util/Superscript.lean Modified MathlibTest/DeriveToExpr.lean Modified MathlibTest/DifferentialGeometry/Notation.lean Modified MathlibTest/DifferentialGeometry/NotationAdvanced.lean Modified MathlibTest/FindSyntax.lean Modified MathlibTest/LibraryRewrite.lean Modified MathlibTest/LibrarySearch/basic.lean Added MathlibTest/LibrarySearch/star.lean Modified MathlibTest/PPRoundtrip.lean Modified MathlibTest/TacticAnalysis.lean Modified MathlibTest/Use.lean Modified MathlibTest/Variable.lean Modified MathlibTest/derive_encodable.lean Modified MathlibTest/grind/grobner.lean Modified MathlibTest/grind/lint.lean Modified MathlibTest/notation3.lean Modified lake-manifest.json Modified lakefile.lean Modified lean-toolchain Modified scripts/create_deprecated_modules.lean Modified scripts/mk_all.lean 2025-12-14 12:40:25 3ac4753 feat(RingTheory/PolynomialLaw/Basic): extends polynomial laws to arbitrary universes (#26719) The definition of polynomial laws restricts its operations to a fixed universe. This PR constructs the extension to any universe. This is part of the project of studying divided powers on rings, in particular, for studying the universal divided power algebra of a module. ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/Subalgebra/Basic.lean + theorem AlgHom.val_comp_rangeRestrict + theorem Subalgebra.val_comp_inclusion Modified Mathlib/RingTheory/Congruence/Hom.lean + theorem RingCon.quotientKerEquivRangeₐ_comp_mkₐ Modified Mathlib/RingTheory/PolynomialLaw/Basic.lean + theorem PolynomialLaw.exists_lift' + theorem PolynomialLaw.exists_lift + theorem PolynomialLaw.exists_lift_of_mem_range_rTensor + theorem PolynomialLaw.exists_range_φ_eq_of_fg + theorem PolynomialLaw.factorsThrough_toFunLifted_π + theorem PolynomialLaw.isCompat + theorem PolynomialLaw.isCompat_apply + def PolynomialLaw.lifts + theorem PolynomialLaw.one_tmul_ground + theorem PolynomialLaw.range_φ + theorem PolynomialLaw.toFun'_eq_of_diagram + theorem PolynomialLaw.toFun'_eq_of_inclusion + theorem PolynomialLaw.toFun'_eq_toFun + def PolynomialLaw.toFun + def PolynomialLaw.toFunLifted + theorem PolynomialLaw.toFun_add + theorem PolynomialLaw.toFun_add_apply + theorem PolynomialLaw.toFun_comp + theorem PolynomialLaw.toFun_comp_apply + theorem PolynomialLaw.toFun_eq_rTensor_φ_toFun' + theorem PolynomialLaw.toFun_neg + theorem PolynomialLaw.toFun_smul + theorem PolynomialLaw.toFun_zero + def PolynomialLaw.π + theorem PolynomialLaw.π_surjective + def PolynomialLaw.φ 2025-12-14 10:50:47 a3873a8 feat: more consequences of Riesz-Markov-Kakutani (#32779) ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Integral/RieszMarkovKakutani/Real.lean + theorem MeasureTheory.Measure.exists_innerRegular_eq_of_isCompact + theorem MeasureTheory.Measure.exists_regular_eq_of_compactSpace 2025-12-14 09:20:15 5b6babb feat: characterizing Gaussian measures through the shape of the characteristic function (#30921) Prove that Gaussian measures over a Banach space `E` are exactly those measures `μ` such that there exist `m : E` and `f : StrongDual ℝ E →L[ℝ] StrongDual ℝ E →L[ℝ] ℝ` satisfying `f.toBilinForm.IsPosSemidef` and `charFunDual μ L = exp (L m * I - f L L / 2)`. Prove that such `m` and `f` are unique and equal to `∫ x, x ∂μ` and `covarianceBilinDual μ`. Specialize these statements in the case of Hilbert spaces, with `f : E →L[ℝ] E →L[ℝ] ℝ`, `charFun μ t = exp (⟪t, m⟫ * I - f t t / 2)` and `f = covarianceBilin μ`. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Probability/Distributions/Gaussian/CharFun.lean + theorem ProbabilityTheory.IsGaussian.charFunDual_eq' + theorem ProbabilityTheory.IsGaussian.charFun_eq' + theorem ProbabilityTheory.gaussian_charFunDual_congr + theorem ProbabilityTheory.gaussian_charFun_congr + theorem ProbabilityTheory.isGaussian_iff_gaussian_charFun + theorem ProbabilityTheory.isGaussian_iff_gaussian_charFunDual Modified Mathlib/Probability/Moments/CovarianceBilinDual.lean + theorem ProbabilityTheory.isPosSemidef_covarianceBilinDual 2025-12-14 03:46:48 26fffff refactor: rename `Splits.splits_of_dvd` to `Splits.of_dvd` (#32815) This PR renames `Splits.splits_of_dvd` to `Splits.of_dvd`, per this poll: https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/.60Splits.2Eof_dvd.60.20vs.20.60Splits.2Esplits_of_dvd.60/near/560925458 ESTIMATED CHANGES Modified Mathlib/Algebra/Polynomial/Factors.lean + theorem Polynomial.Splits.of_dvd - theorem Polynomial.Splits.splits_of_dvd Modified Mathlib/Algebra/Polynomial/Splits.lean Modified Mathlib/FieldTheory/AbelRuffini.lean Modified Mathlib/FieldTheory/Finite/GaloisField.lean Modified Mathlib/FieldTheory/Galois/Basic.lean Modified Mathlib/FieldTheory/IsAlgClosed/Basic.lean Modified Mathlib/FieldTheory/Isaacs.lean Modified Mathlib/FieldTheory/Normal/Closure.lean Modified Mathlib/FieldTheory/Normal/Defs.lean Modified Mathlib/FieldTheory/PolynomialGaloisGroup.lean Modified Mathlib/FieldTheory/PrimitiveElement.lean Modified Mathlib/FieldTheory/Separable.lean Modified Mathlib/FieldTheory/SplittingField/IsSplittingField.lean Modified Mathlib/NumberTheory/Cyclotomic/Basic.lean Modified Mathlib/RingTheory/Adjoin/Field.lean Modified Mathlib/RingTheory/Invariant/Basic.lean Modified Mathlib/RingTheory/Polynomial/IsIntegral.lean 2025-12-14 02:50:06 f6241af chore(Algebra/Ring/Subsemiring/Order): relate `Subsemiring.nonneg` with `AddSubmonoid.nonneg` (#32822) * Redefine `Subsemiring.nonneg` to extend `AddSubmonoid.nonneg` * Add a `simp` lemma for the forgetful map ESTIMATED CHANGES Modified Mathlib/Algebra/Ring/Subsemiring/Order.lean + theorem Subsemiring.nonneg_toAddSubmonoid 2025-12-14 02:50:05 695eef9 doc(Geometry): fix typos (#32819) Typos found and fixed by Codex. ESTIMATED CHANGES Modified Mathlib/Geometry/Euclidean/Angle/Oriented/Basic.lean Modified Mathlib/Geometry/Euclidean/Angle/Sphere.lean Modified Mathlib/Geometry/Euclidean/Angle/Unoriented/Affine.lean Modified Mathlib/Geometry/Euclidean/Angle/Unoriented/Basic.lean Modified Mathlib/Geometry/Euclidean/Circumcenter.lean Modified Mathlib/Geometry/Euclidean/Triangle.lean Modified Mathlib/Geometry/Manifold/Bordism.lean Modified Mathlib/Geometry/Manifold/ChartedSpace.lean Modified Mathlib/Geometry/Manifold/ContMDiff/Defs.lean Modified Mathlib/Geometry/Manifold/Immersion.lean Modified Mathlib/Geometry/Manifold/IsManifold/Basic.lean Modified Mathlib/Geometry/Manifold/IsManifold/ExtChartAt.lean Modified Mathlib/Geometry/Manifold/IsManifold/InteriorBoundary.lean Modified Mathlib/Geometry/Manifold/LocalDiffeomorph.lean Modified Mathlib/Geometry/Manifold/LocalSourceTargetProperty.lean Modified Mathlib/Geometry/Manifold/MFDeriv/Defs.lean Modified Mathlib/Geometry/Manifold/PartitionOfUnity.lean Modified Mathlib/Geometry/Manifold/VectorBundle/Hom.lean Modified Mathlib/Geometry/Manifold/VectorBundle/LocalFrame.lean Modified Mathlib/Geometry/Manifold/VectorBundle/MDifferentiable.lean Modified Mathlib/Geometry/Manifold/VectorField/LieBracket.lean Modified Mathlib/Geometry/Manifold/VectorField/Pullback.lean Modified Mathlib/Geometry/RingedSpace/OpenImmersion.lean Modified Mathlib/Geometry/RingedSpace/PresheafedSpace.lean Modified Mathlib/Geometry/RingedSpace/PresheafedSpace/Gluing.lean Modified Mathlib/Geometry/RingedSpace/SheafedSpace.lean 2025-12-14 02:29:26 12d7a64 chore: tidy various files (#32858) ESTIMATED CHANGES Modified Mathlib/AlgebraicTopology/SimplicialSet/Dimension.lean Modified Mathlib/CategoryTheory/Bicategory/InducedBicategory.lean Modified Mathlib/CategoryTheory/Bicategory/NaturalTransformation/Oplax.lean Modified Mathlib/CategoryTheory/ComposableArrows/One.lean Modified Mathlib/CategoryTheory/Enriched/Ordinary/Basic.lean Modified Mathlib/CategoryTheory/Functor/Flat.lean Modified Mathlib/CategoryTheory/Functor/TypeValuedFlat.lean Modified Mathlib/CategoryTheory/MorphismProperty/Basic.lean Modified Mathlib/FieldTheory/Fixed.lean Modified Mathlib/FieldTheory/Galois/IsGaloisGroup.lean Modified Mathlib/FieldTheory/Separable.lean Modified Mathlib/FieldTheory/SplittingField/IsSplittingField.lean Modified Mathlib/Geometry/Euclidean/Angle/Unoriented/TriangleInequality.lean Modified Mathlib/Geometry/Euclidean/Sphere/OrthRadius.lean Modified Mathlib/GroupTheory/GroupAction/MultipleTransitivity.lean Modified Mathlib/GroupTheory/GroupAction/SubMulAction/Combination.lean Modified Mathlib/GroupTheory/Perm/Cycle/Concrete.lean Modified Mathlib/Lean/Expr/Basic.lean Modified Mathlib/MeasureTheory/Function/ConditionalExpectation/PullOut.lean Modified Mathlib/MeasureTheory/Function/UniformIntegrable.lean Modified Mathlib/NumberTheory/ArithmeticFunction/Misc.lean Modified Mathlib/NumberTheory/Chebyshev.lean Modified Mathlib/NumberTheory/Divisors.lean Modified Mathlib/NumberTheory/ModularForms/Cusps.lean Modified Mathlib/NumberTheory/ModularForms/NormTrace.lean Modified Mathlib/NumberTheory/NumberField/Cyclotomic/Basic.lean Modified Mathlib/NumberTheory/NumberField/Cyclotomic/Ideal.lean Modified Mathlib/NumberTheory/NumberField/Discriminant/Basic.lean Modified Mathlib/NumberTheory/NumberField/InfinitePlace/Embeddings.lean Modified Mathlib/Order/Height.lean Modified Mathlib/Probability/Distributions/Gaussian/Basic.lean Modified Mathlib/Probability/IdentDistribIndep.lean Modified Mathlib/Probability/Moments/CovarianceBilin.lean Modified Mathlib/Probability/Moments/SubGaussian.lean Modified Mathlib/RepresentationTheory/Subrepresentation.lean Modified Mathlib/RingTheory/DedekindDomain/AdicValuation.lean Modified Mathlib/RingTheory/Extension/Cotangent/Basis.lean Modified Mathlib/RingTheory/HahnSeries/Binomial.lean Modified Mathlib/RingTheory/Ideal/Height.lean Modified Mathlib/RingTheory/IntegralClosure/IntegralRestrict.lean Modified Mathlib/RingTheory/KrullDimension/Regular.lean Modified Mathlib/RingTheory/MvPolynomial/Homogeneous.lean Modified Mathlib/RingTheory/Polynomial/UniversalFactorizationRing.lean Modified Mathlib/RingTheory/TensorProduct/IsBaseChangeHom.lean Modified Mathlib/SetTheory/ZFC/Ordinal.lean Modified Mathlib/Topology/Algebra/Valued/WithVal.lean Modified Mathlib/Topology/UnitInterval.lean 2025-12-14 02:01:42 c65620f chore(RingTheory/HahnSeries): fix delaborator (#32839) This is copy-pasta from `MonoidAlgebra`. ESTIMATED CHANGES Modified Mathlib/RingTheory/HahnSeries/Basic.lean 2025-12-14 00:33:13 d0c5d20 chore(scripts): update nolints.json (#32859) I am happy to remove some nolints for you! [workflow run for this PR](https://github.com/leanprover-community/mathlib4/actions/runs/20199788622) ESTIMATED CHANGES Modified scripts/nolints.json 2025-12-13 22:17:45 1825e17 chore(Trace/Quotient): move isomorphism to `Localization.AtPrime.Basic` (#32045) This PR move isomorphisms previously defined in `Trace.Quotient` into `Localization.AtPrime.Basic`. The change is purely organizational: `Localization.AtPrime.Basic` is the canonical place for lemmas and constructions about localization at a prime. The isomorphisms are also renamed to match their new namespace: - `equivQuotMaximalIdealOfIsLocalization` -> `IsLocalization.AtPrime.equivQuotMaximalIdeal` - `quotMapEquivQuotMapMaximalIdealOfIsLocalization` -> `IsLocalization.AtPrime.equivQuotMapMaximalIdeal` ESTIMATED CHANGES Modified Mathlib/RingTheory/Localization/AtPrime/Basic.lean + theorem IsLocalization.AtPrime.comap_map_eq_map + def IsLocalization.AtPrime.equivQuotMaximalIdeal Modified Mathlib/RingTheory/Trace/Quotient.lean - theorem comap_map_eq_map_of_isLocalization_algebraMapSubmonoid - def equivQuotMaximalIdealOfIsLocalization - def quotMapEquivQuotMapMaximalIdealOfIsLocalization 2025-12-13 15:18:05 ec195f6 feat: arbitrary product of injective modules is injective (#31263) ESTIMATED CHANGES Modified Mathlib/Algebra/Module/Injective.lean 2025-12-13 15:00:14 d9232ef style: align whitespace for E, E, F, G Cartan matrices (#32848) Follow-up to #32763. Aligns whitespace formatting for the remaining exceptional Cartan matrices (E₇, E₈, F₄, G₂) to match E₆, as requested by @ocfnash. ESTIMATED CHANGES Modified Mathlib/Data/Matrix/Cartan.lean 2025-12-13 14:21:13 dd97bd1 chore: use `Category*` everywhere (#32842) Use the new `Category*` syntax that landed in #30797. - Import the syntax in the `CategoryTheory/Functor/Basic.lean` file: this is the first file in the hierarchy after `CategoryTheory/Category/Basic.lean`. This makes it available in basically every file which uses category theory. - All occurences of `[Category …]` have been replaced by `[Category* …]`. Cases of `[Category.{…} …]` remain untouched. This change did uncover a few "bad uses" of `[Category …]` - The most notable one is the `(J: Type*) [Category J] [FinCategory J]` pattern: in that pattern, `[FinCategory J]` actually requires a `SmallCategory`, so it was silently setting the universe metavariable in `[Category J]` to make it equal to the level of `J`. This pattern has been replaced by `(J: Type*) [SmallCategory J] [FinCategory J]`. - Some similar uses of `[Category …]` (where later declarations would silently set the universe levels have been found in `CategoryTheory/Category/Cat.lean` and `CategoryTheory/Category/ReflQuiv.lean`: here, the levels have been clarified. The only notable "breakage" is that the way Category* sets levels in a specific order did change the universes level order for `PresheafedSpace` (and perhaps, silently, some other declarations), which was sometimes called with explicit levels, so `PresheafedSpace.{u, v, w}` becomes `PresheafedSpace.{v, u, w}` (as expected, universe levels for morphisms come first). Happy to revert if this is deemed too inconvenient (in practice, `PresheafedSpace` is often written `PresheafedSpace.{_, _, v}`, so this did not break a lot.) Finally, minor adjustement in a few files had to be made as adding the `*` character broke through the 100char width limit. ESTIMATED CHANGES Modified Mathlib/Algebra/Category/FGModuleCat/Colimits.lean Modified Mathlib/Algebra/Category/FGModuleCat/Limits.lean Modified Mathlib/Algebra/Category/Grp/AB.lean Modified Mathlib/Algebra/Category/ModuleCat/Adjunctions.lean Modified Mathlib/Algebra/Category/ModuleCat/ChangeOfRings.lean Modified Mathlib/Algebra/Category/ModuleCat/Presheaf/Monoidal.lean Modified Mathlib/Algebra/Category/ModuleCat/Topology/Basic.lean +/- def TopModuleCat.isColimit +/- def TopModuleCat.isLimit +/- def TopModuleCat.ofCocone +/- def TopModuleCat.ofCone Modified Mathlib/Algebra/Homology/Additive.lean Modified Mathlib/Algebra/Homology/AlternatingConst.lean Modified Mathlib/Algebra/Homology/Bifunctor.lean Modified Mathlib/Algebra/Homology/BifunctorAssociator.lean Modified Mathlib/Algebra/Homology/BifunctorFlip.lean Modified Mathlib/Algebra/Homology/BifunctorHomotopy.lean Modified Mathlib/Algebra/Homology/BifunctorShift.lean Modified Mathlib/Algebra/Homology/CochainComplexOpposite.lean Modified Mathlib/Algebra/Homology/CommSq.lean Modified Mathlib/Algebra/Homology/DerivedCategory/Basic.lean Modified Mathlib/Algebra/Homology/DifferentialObject.lean Modified Mathlib/Algebra/Homology/Double.lean Modified Mathlib/Algebra/Homology/Embedding/AreComplementary.lean Modified Mathlib/Algebra/Homology/Embedding/CochainComplex.lean Modified Mathlib/Algebra/Homology/Embedding/Extend.lean Modified Mathlib/Algebra/Homology/Embedding/ExtendHomology.lean Modified Mathlib/Algebra/Homology/Embedding/ExtendHomotopy.lean Modified Mathlib/Algebra/Homology/Embedding/HomEquiv.lean Modified Mathlib/Algebra/Homology/Embedding/IsSupported.lean Modified Mathlib/Algebra/Homology/Embedding/Restriction.lean Modified Mathlib/Algebra/Homology/Embedding/RestrictionHomology.lean Modified Mathlib/Algebra/Homology/Embedding/StupidTrunc.lean Modified Mathlib/Algebra/Homology/Embedding/TruncGE.lean Modified Mathlib/Algebra/Homology/Embedding/TruncGEHomology.lean Modified Mathlib/Algebra/Homology/Embedding/TruncLE.lean Modified Mathlib/Algebra/Homology/Embedding/TruncLEHomology.lean Modified Mathlib/Algebra/Homology/ExactSequence.lean +/- theorem CategoryTheory.ComposableArrows.Exact.isIso_map' Modified Mathlib/Algebra/Homology/Factorizations/Basic.lean Modified Mathlib/Algebra/Homology/Factorizations/CM5b.lean Modified Mathlib/Algebra/Homology/Functor.lean +/- def HomologicalComplex.asFunctor +/- def HomologicalComplex.complexOfFunctorsToFunctorToComplex Modified Mathlib/Algebra/Homology/HomologicalBicomplex.lean Modified Mathlib/Algebra/Homology/HomologicalComplexAbelian.lean Modified Mathlib/Algebra/Homology/HomologicalComplexBiprod.lean Modified Mathlib/Algebra/Homology/HomologicalComplexLimits.lean +/- theorem HomologicalComplex.preservesColimitsOfShape_of_eval +/- theorem HomologicalComplex.preservesLimitsOfShape_of_eval Modified Mathlib/Algebra/Homology/HomologySequence.lean Modified Mathlib/Algebra/Homology/HomologySequenceLemmas.lean Modified Mathlib/Algebra/Homology/Homotopy.lean +/- theorem Homotopy.map_nullHomotopicMap' +/- theorem Homotopy.map_nullHomotopicMap Modified Mathlib/Algebra/Homology/HomotopyCategory.lean Modified Mathlib/Algebra/Homology/HomotopyCategory/HomComplex.lean Modified Mathlib/Algebra/Homology/HomotopyCategory/HomologicalFunctor.lean Modified Mathlib/Algebra/Homology/HomotopyCategory/KInjective.lean Modified Mathlib/Algebra/Homology/HomotopyCategory/KProjective.lean Modified Mathlib/Algebra/Homology/HomotopyCategory/Pretriangulated.lean Modified Mathlib/Algebra/Homology/HomotopyCategory/ShiftSequence.lean Modified Mathlib/Algebra/Homology/HomotopyCategory/ShortExact.lean Modified Mathlib/Algebra/Homology/HomotopyCofiber.lean +/- theorem HomologicalComplex.cylinder.map_ι₀_eq_map_ι₁ Modified Mathlib/Algebra/Homology/LeftResolution/Basic.lean Modified Mathlib/Algebra/Homology/LeftResolution/Reduced.lean Modified Mathlib/Algebra/Homology/LeftResolution/Transport.lean Modified Mathlib/Algebra/Homology/Linear.lean Modified Mathlib/Algebra/Homology/Localization.lean +/- def ComplexShape.strictUniversalPropertyFixedTargetQuotient Modified Mathlib/Algebra/Homology/Monoidal.lean Modified Mathlib/Algebra/Homology/Opposite.lean Modified Mathlib/Algebra/Homology/QuasiIso.lean Modified Mathlib/Algebra/Homology/Refinements.lean Modified Mathlib/Algebra/Homology/ShortComplex/Basic.lean Modified Mathlib/Algebra/Homology/ShortComplex/Exact.lean Modified Mathlib/Algebra/Homology/ShortComplex/ExactFunctor.lean Modified Mathlib/Algebra/Homology/ShortComplex/FunctorEquivalence.lean Modified Mathlib/Algebra/Homology/ShortComplex/HomologicalComplex.lean Modified Mathlib/Algebra/Homology/ShortComplex/LeftHomology.lean Modified Mathlib/Algebra/Homology/ShortComplex/Limits.lean Modified Mathlib/Algebra/Homology/ShortComplex/Linear.lean Modified Mathlib/Algebra/Homology/ShortComplex/Preadditive.lean Modified Mathlib/Algebra/Homology/ShortComplex/PreservesHomology.lean Modified Mathlib/Algebra/Homology/ShortComplex/QuasiIso.lean Modified Mathlib/Algebra/Homology/ShortComplex/Retract.lean Modified Mathlib/Algebra/Homology/ShortComplex/RightHomology.lean Modified Mathlib/Algebra/Homology/ShortComplex/ShortExact.lean Modified Mathlib/Algebra/Homology/ShortComplex/SnakeLemma.lean Modified Mathlib/Algebra/Homology/Square.lean Modified Mathlib/Algebra/Homology/TotalComplex.lean Modified Mathlib/Algebra/Homology/TotalComplexShift.lean Modified Mathlib/Algebra/Homology/TotalComplexSymmetry.lean Modified Mathlib/AlgebraicGeometry/Cover/Directed.lean +/- def AlgebraicGeometry.Scheme.OpenCover.glueMorphismsOfLocallyDirected Modified Mathlib/AlgebraicGeometry/Limits.lean +/- theorem AlgebraicGeometry.Scheme.isAffine_of_isLimit Modified Mathlib/AlgebraicGeometry/LimitsOver.lean Modified Mathlib/AlgebraicGeometry/Sites/SmallAffineZariski.lean Modified Mathlib/AlgebraicTopology/AlternatingFaceMapComplex.lean +/- theorem AlgebraicTopology.map_alternatingFaceMapComplex Modified Mathlib/AlgebraicTopology/DoldKan/Compatibility.lean Modified Mathlib/AlgebraicTopology/DoldKan/Decomposition.lean Modified Mathlib/AlgebraicTopology/DoldKan/Degeneracies.lean Modified Mathlib/AlgebraicTopology/DoldKan/Equivalence.lean Modified Mathlib/AlgebraicTopology/DoldKan/EquivalenceAdditive.lean Modified Mathlib/AlgebraicTopology/DoldKan/EquivalencePseudoabelian.lean Modified Mathlib/AlgebraicTopology/DoldKan/Faces.lean Modified Mathlib/AlgebraicTopology/DoldKan/FunctorGamma.lean Modified Mathlib/AlgebraicTopology/DoldKan/FunctorN.lean Modified Mathlib/AlgebraicTopology/DoldKan/GammaCompN.lean Modified Mathlib/AlgebraicTopology/DoldKan/Homotopies.lean +/- theorem AlgebraicTopology.DoldKan.map_Hσ +/- theorem AlgebraicTopology.DoldKan.map_hσ' Modified Mathlib/AlgebraicTopology/DoldKan/HomotopyEquivalence.lean +/- def AlgebraicTopology.DoldKan.homotopyEquivNormalizedMooreComplexAlternatingFaceMapComplex Modified Mathlib/AlgebraicTopology/DoldKan/NCompGamma.lean Modified Mathlib/AlgebraicTopology/DoldKan/NReflectsIso.lean Modified Mathlib/AlgebraicTopology/DoldKan/Normalized.lean Modified Mathlib/AlgebraicTopology/DoldKan/PInfty.lean +/- theorem AlgebraicTopology.DoldKan.map_PInfty_f Modified Mathlib/AlgebraicTopology/DoldKan/Projections.lean +/- theorem AlgebraicTopology.DoldKan.map_P +/- theorem AlgebraicTopology.DoldKan.map_Q Modified Mathlib/AlgebraicTopology/DoldKan/SplitSimplicialObject.lean Modified Mathlib/AlgebraicTopology/ExtraDegeneracy.lean +/- def CategoryTheory.SimplicialObject.Augmented.ExtraDegeneracy.map Modified Mathlib/AlgebraicTopology/ModelCategory/BrownLemma.lean Modified Mathlib/AlgebraicTopology/ModelCategory/IsCofibrant.lean Modified Mathlib/AlgebraicTopology/ModelCategory/JoyalTrick.lean Modified Mathlib/AlgebraicTopology/MooreComplex.lean Modified Mathlib/AlgebraicTopology/SimplexCategory/Augmented/Basic.lean Modified Mathlib/AlgebraicTopology/SimplicialObject/Basic.lean +/- def CategoryTheory.CosimplicialObject.Augmented.whiskeringObj +/- def CategoryTheory.CosimplicialObject.Truncated.whiskering +/- def CategoryTheory.CosimplicialObject.whiskering +/- def CategoryTheory.SimplicialObject.Augmented.whiskeringObj +/- def CategoryTheory.SimplicialObject.Truncated.whiskering +/- def CategoryTheory.SimplicialObject.whiskering Modified Mathlib/AlgebraicTopology/SimplicialObject/Split.lean Modified Mathlib/AlgebraicTopology/SimplicialSet/HomotopyCat.lean +/- theorem SSet.Truncated.HomotopyCategory.lift_unique' Modified Mathlib/AlgebraicTopology/SimplicialSet/Nerve.lean Modified Mathlib/CategoryTheory/Abelian/Basic.lean Modified Mathlib/CategoryTheory/Abelian/DiagramLemmas/Four.lean Modified Mathlib/CategoryTheory/Abelian/EpiWithInjectiveKernel.lean Modified Mathlib/CategoryTheory/Abelian/Ext.lean Modified Mathlib/CategoryTheory/Abelian/GrothendieckAxioms/Basic.lean +/- theorem CategoryTheory.HasExactColimitsOfShape.domain_of_functor +/- theorem CategoryTheory.HasExactColimitsOfShape.of_codomain_equivalence +/- theorem CategoryTheory.HasExactColimitsOfShape.of_domain_equivalence +/- theorem CategoryTheory.HasExactLimitsOfShape.domain_of_functor +/- theorem CategoryTheory.HasExactLimitsOfShape.of_codomain_equivalence +/- theorem CategoryTheory.HasExactLimitsOfShape.of_domain_equivalence +/- theorem CategoryTheory.hasExactColimitsOfShape_of_final +/- theorem CategoryTheory.hasExactLimitsOfShape_of_initial Modified Mathlib/CategoryTheory/Abelian/GrothendieckAxioms/FunctorCategory.lean Modified Mathlib/CategoryTheory/Abelian/LeftDerived.lean +/- theorem CategoryTheory.ProjectiveResolution.fromLeftDerivedZero'_naturality +/- theorem CategoryTheory.ProjectiveResolution.pOpcycles_comp_fromLeftDerivedZero' Modified Mathlib/CategoryTheory/Abelian/Opposite.lean Modified Mathlib/CategoryTheory/Abelian/Refinements.lean Modified Mathlib/CategoryTheory/Abelian/RightDerived.lean +/- theorem CategoryTheory.InjectiveResolution.toRightDerivedZero'_comp_iCycles +/- theorem CategoryTheory.InjectiveResolution.toRightDerivedZero'_naturality Modified Mathlib/CategoryTheory/Abelian/SerreClass/Bousfield.lean Modified Mathlib/CategoryTheory/Abelian/Transfer.lean Modified Mathlib/CategoryTheory/Action/Basic.lean +/- def CategoryTheory.Functor.Equivalence.mapAction +/- def CategoryTheory.Functor.mapActionComp Modified Mathlib/CategoryTheory/Action/Continuous.lean +/- def CategoryTheory.Functor.mapContActionComp Modified Mathlib/CategoryTheory/Action/Limits.lean Modified Mathlib/CategoryTheory/Action/Monoidal.lean Modified Mathlib/CategoryTheory/Adjunction/Basic.lean +/- theorem CategoryTheory.Equivalence.trans_toAdjunction Modified Mathlib/CategoryTheory/Adjunction/CompositionIso.lean Modified Mathlib/CategoryTheory/Adjunction/Limits.lean Modified Mathlib/CategoryTheory/Adjunction/PartialAdjoint.lean +/- theorem CategoryTheory.Functor.leftAdjointObjIsDefined_colimit +/- theorem CategoryTheory.Functor.leftAdjointObjIsDefined_of_isColimit +/- theorem CategoryTheory.Functor.rightAdjointObjIsDefined_limit +/- theorem CategoryTheory.Functor.rightAdjointObjIsDefined_of_isLimit Modified Mathlib/CategoryTheory/Adjunction/Triple.lean Modified Mathlib/CategoryTheory/Adjunction/Unique.lean Modified Mathlib/CategoryTheory/Adjunction/Whiskering.lean Modified Mathlib/CategoryTheory/Bicategory/CatEnriched.lean +/- theorem CategoryTheory.CatEnrichedOrdinary.id_eq_eqToHom Modified Mathlib/CategoryTheory/Bicategory/Functor/LocallyDiscrete.lean +/- def CategoryTheory.LocallyDiscrete.mkPseudofunctor Modified Mathlib/CategoryTheory/Bicategory/LocallyDiscrete.lean Modified Mathlib/CategoryTheory/CatCommSq.lean Modified Mathlib/CategoryTheory/Category/Cat.lean +/- theorem CategoryTheory.Cat.of_α +/- def CategoryTheory.Functor.ofCatHom +/- theorem CategoryTheory.Functor.of_toCatHom +/- theorem CategoryTheory.Functor.to_ofCatHom Modified Mathlib/CategoryTheory/Category/ReflQuiv.lean +/- theorem CategoryTheory.Cat.FreeRefl.functor_ext +/- theorem CategoryTheory.Cat.FreeRefl.lift_spec +/- theorem CategoryTheory.Cat.FreeRefl.lift_unique' +/- theorem CategoryTheory.ReflQuiv.adj.counit.comp_app_eq +/- theorem CategoryTheory.ReflQuiv.adj_counit_app Modified Mathlib/CategoryTheory/CofilteredSystem.lean Modified Mathlib/CategoryTheory/CommSq.lean Modified Mathlib/CategoryTheory/Comma/Arrow.lean Modified Mathlib/CategoryTheory/Comma/Over/Basic.lean +/- def CategoryTheory.Over.isLimitLiftCone +/- def CategoryTheory.Over.liftCone +/- def CategoryTheory.Over.postComp +/- theorem CategoryTheory.Over.post_comp +/- def CategoryTheory.Under.isColimitLiftCocone +/- def CategoryTheory.Under.liftCocone +/- def CategoryTheory.Under.postComp +/- theorem CategoryTheory.Under.post_comp Modified Mathlib/CategoryTheory/ComposableArrows/Basic.lean Modified Mathlib/CategoryTheory/ConcreteCategory/Basic.lean +/- theorem CategoryTheory.NatTrans.naturality_apply +/- theorem CategoryTheory.coe_toHasForget_instFunLike Modified Mathlib/CategoryTheory/ConcreteCategory/ReflectsIso.lean Modified Mathlib/CategoryTheory/ConnectedComponents.lean +/- def CategoryTheory.ConnectedComponents.liftFunctor +/- def CategoryTheory.ConnectedComponents.typeToCatHomEquiv Modified Mathlib/CategoryTheory/Countable.lean Modified Mathlib/CategoryTheory/Discrete/Basic.lean Modified Mathlib/CategoryTheory/Discrete/SumsProducts.lean Modified Mathlib/CategoryTheory/EffectiveEpi/Basic.lean Modified Mathlib/CategoryTheory/EffectiveEpi/Comp.lean Modified Mathlib/CategoryTheory/EffectiveEpi/Coproduct.lean Modified Mathlib/CategoryTheory/EffectiveEpi/Enough.lean Modified Mathlib/CategoryTheory/EffectiveEpi/Extensive.lean Modified Mathlib/CategoryTheory/EffectiveEpi/Preserves.lean Modified Mathlib/CategoryTheory/EqToHom.lean +/- theorem CategoryTheory.comp_eqToHom_heq +/- theorem CategoryTheory.comp_eqToHom_heq_iff +/- theorem CategoryTheory.conj_eqToHom_iff_heq' +/- theorem CategoryTheory.eqToHom_comp_heq +/- theorem CategoryTheory.eqToHom_comp_heq_iff +/- theorem CategoryTheory.heq_comp +/- theorem CategoryTheory.heq_comp_eqToHom_iff +/- theorem CategoryTheory.heq_eqToHom_comp_iff Modified Mathlib/CategoryTheory/Equivalence.lean +/- theorem CategoryTheory.Functor.isEquivalence_of_comp_left +/- theorem CategoryTheory.Functor.isEquivalence_of_comp_right Modified Mathlib/CategoryTheory/Equivalence/Symmetry.lean +/- def CategoryTheory.Equivalence.congrLeftFunctor Modified Mathlib/CategoryTheory/EssentialImage.lean Modified Mathlib/CategoryTheory/Extensive.lean Modified Mathlib/CategoryTheory/FiberedCategory/Grothendieck.lean Modified Mathlib/CategoryTheory/Functor/Basic.lean +/- theorem CategoryTheory.Functor.map_comp_assoc Modified Mathlib/CategoryTheory/Functor/Currying.lean +/- def CategoryTheory.Functor.curryObjProdComp Modified Mathlib/CategoryTheory/Functor/CurryingThree.lean Modified Mathlib/CategoryTheory/Functor/Derived/Adjunction.lean Modified Mathlib/CategoryTheory/Functor/Derived/LeftDerived.lean Modified Mathlib/CategoryTheory/Functor/Derived/RightDerived.lean Modified Mathlib/CategoryTheory/Functor/EpiMono.lean Modified Mathlib/CategoryTheory/Functor/FullyFaithful.lean Modified Mathlib/CategoryTheory/Functor/KanExtension/Adjunction.lean Modified Mathlib/CategoryTheory/Functor/KanExtension/Basic.lean Modified Mathlib/CategoryTheory/Functor/KanExtension/DenseAt.lean Modified Mathlib/CategoryTheory/Functor/KanExtension/Pointwise.lean Modified Mathlib/CategoryTheory/Functor/KanExtension/Preserves.lean Modified Mathlib/CategoryTheory/Functor/OfSequence.lean Modified Mathlib/CategoryTheory/Functor/ReflectsIso/Balanced.lean Modified Mathlib/CategoryTheory/Functor/ReflectsIso/Basic.lean Modified Mathlib/CategoryTheory/Functor/Trifunctor.lean Modified Mathlib/CategoryTheory/Galois/Action.lean Modified Mathlib/CategoryTheory/Galois/Full.lean Modified Mathlib/CategoryTheory/Generator/Basic.lean Modified Mathlib/CategoryTheory/GradedObject.lean Modified Mathlib/CategoryTheory/GradedObject/Associator.lean Modified Mathlib/CategoryTheory/GradedObject/Bifunctor.lean Modified Mathlib/CategoryTheory/GradedObject/Braiding.lean Modified Mathlib/CategoryTheory/GradedObject/Monoidal.lean Modified Mathlib/CategoryTheory/GradedObject/Single.lean Modified Mathlib/CategoryTheory/GradedObject/Trifunctor.lean Modified Mathlib/CategoryTheory/GradedObject/Unitor.lean Modified Mathlib/CategoryTheory/Grothendieck.lean +/- theorem CategoryTheory.Grothendieck.pre_comp_map_assoc Modified Mathlib/CategoryTheory/Groupoid.lean +/- theorem CategoryTheory.isGroupoid_iff_isomorphisms_eq_top +/- theorem CategoryTheory.isGroupoid_of_reflects_iso Modified Mathlib/CategoryTheory/Groupoid/Discrete.lean Modified Mathlib/CategoryTheory/GuitartExact/VerticalComposition.lean Modified Mathlib/CategoryTheory/Idempotents/Basic.lean +/- theorem CategoryTheory.Idempotents.Equivalence.isIdempotentComplete +/- theorem CategoryTheory.Idempotents.isIdempotentComplete_iff_of_equivalence Modified Mathlib/CategoryTheory/Idempotents/FunctorCategories.lean Modified Mathlib/CategoryTheory/Idempotents/FunctorExtension.lean Modified Mathlib/CategoryTheory/Idempotents/HomologicalComplex.lean Modified Mathlib/CategoryTheory/Idempotents/Karoubi.lean Modified Mathlib/CategoryTheory/Idempotents/KaroubiKaroubi.lean Modified Mathlib/CategoryTheory/Idempotents/SimplicialObject.lean Modified Mathlib/CategoryTheory/Iso.lean Modified Mathlib/CategoryTheory/Join/Final.lean Modified Mathlib/CategoryTheory/Join/Pseudofunctor.lean Modified Mathlib/CategoryTheory/Join/Sum.lean Modified Mathlib/CategoryTheory/LiftingProperties/Adjunction.lean Modified Mathlib/CategoryTheory/LiftingProperties/Basic.lean Modified Mathlib/CategoryTheory/LiftingProperties/Limits.lean Modified Mathlib/CategoryTheory/Limits/Constructions/EventuallyConstant.lean Modified Mathlib/CategoryTheory/Limits/Constructions/Over/Connected.lean Modified Mathlib/CategoryTheory/Limits/Constructions/ZeroObjects.lean Modified Mathlib/CategoryTheory/Limits/EpiMono.lean Modified Mathlib/CategoryTheory/Limits/Final.lean Modified Mathlib/CategoryTheory/Limits/Final/ParallelPair.lean Modified Mathlib/CategoryTheory/Limits/FintypeCat.lean +/- theorem CategoryTheory.Limits.FintypeCat.jointly_surjective Modified Mathlib/CategoryTheory/Limits/Fubini.lean Modified Mathlib/CategoryTheory/Limits/FunctorCategory/Basic.lean +/- theorem CategoryTheory.Limits.preservesColimitsOfShape_of_evaluation +/- theorem CategoryTheory.Limits.preservesLimitsOfShape_of_evaluation Modified Mathlib/CategoryTheory/Limits/FunctorCategory/Finite.lean Modified Mathlib/CategoryTheory/Limits/IsConnected.lean Modified Mathlib/CategoryTheory/Limits/MonoCoprod.lean Modified Mathlib/CategoryTheory/Limits/MorphismProperty.lean +/- theorem CategoryTheory.CostructuredArrow.isClosedUnderColimitsOfShape Modified Mathlib/CategoryTheory/Limits/Presentation.lean +/- def CategoryTheory.Limits.ColimitPresentation.map +/- def CategoryTheory.Limits.ColimitPresentation.reindex +/- def CategoryTheory.Limits.LimitPresentation.map +/- def CategoryTheory.Limits.LimitPresentation.reindex Modified Mathlib/CategoryTheory/Limits/Preserves/Basic.lean Modified Mathlib/CategoryTheory/Limits/Preserves/Bifunctor.lean Modified Mathlib/CategoryTheory/Limits/Preserves/Creates/Pullbacks.lean Modified Mathlib/CategoryTheory/Limits/Preserves/FunctorCategory.lean +/- def CategoryTheory.colimitCompWhiskeringRightIsoColimitComp +/- def CategoryTheory.limitCompWhiskeringRightIsoLimitComp +/- theorem CategoryTheory.limitCompWhiskeringRightIsoLimitComp_hom_whiskerRight_π +/- theorem CategoryTheory.limitCompWhiskeringRightIsoLimitComp_inv_π +/- theorem CategoryTheory.preservesFiniteColimits_of_evaluation +/- theorem CategoryTheory.preservesFiniteLimits_of_evaluation +/- theorem CategoryTheory.whiskerRight_ι_colimitCompWhiskeringRightIsoColimitComp_inv +/- theorem CategoryTheory.ι_colimitCompWhiskeringRightIsoColimitComp_hom Modified Mathlib/CategoryTheory/Limits/Preserves/Over.lean Modified Mathlib/CategoryTheory/Limits/Preserves/Shapes/Multiequalizer.lean Modified Mathlib/CategoryTheory/Limits/Preserves/Shapes/Preorder.lean Modified Mathlib/CategoryTheory/Limits/Preserves/Shapes/Zero.lean Modified Mathlib/CategoryTheory/Limits/Preserves/Ulift.lean +/- def CategoryTheory.Limits.Types.sectionsEquiv Modified Mathlib/CategoryTheory/Limits/Shapes/BinaryProducts.lean Modified Mathlib/CategoryTheory/Limits/Shapes/ConcreteCategory.lean +/- theorem CategoryTheory.Limits.Concrete.cokernel_funext Modified Mathlib/CategoryTheory/Limits/Shapes/Countable.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Diagonal.lean Modified Mathlib/CategoryTheory/Limits/Shapes/DisjointCoproduct.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Images.lean Modified Mathlib/CategoryTheory/Limits/Shapes/IsTerminal.lean +/- def CategoryTheory.Limits.isColimitEquivIsInitialOfIsEmpty +/- def CategoryTheory.Limits.isLimitEquivIsTerminalOfIsEmpty Modified Mathlib/CategoryTheory/Limits/Shapes/Kernels.lean +/- theorem CategoryTheory.Limits.colimit_ι_zero_cokernel_desc Modified Mathlib/CategoryTheory/Limits/Shapes/Multiequalizer.lean +/- def CategoryTheory.Limits.WalkingMulticospan.functorExt +/- def CategoryTheory.Limits.WalkingMultispan.functorExt Modified Mathlib/CategoryTheory/Limits/Shapes/MultiequalizerPullback.lean Modified Mathlib/CategoryTheory/Limits/Shapes/NormalMono/Equalizers.lean Modified Mathlib/CategoryTheory/Limits/Shapes/PiProd.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Preorder/PrincipalSeg.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Pullback/CommSq.lean +/- theorem CategoryTheory.IsPullback.map_iff +/- theorem CategoryTheory.IsPushout.map_iff Modified Mathlib/CategoryTheory/Limits/Shapes/Pullback/Connected.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Pullback/Mono.lean Modified Mathlib/CategoryTheory/Limits/Shapes/SequentialProduct.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Terminal.lean +/- def CategoryTheory.Limits.colimitConstInitial +/- def CategoryTheory.Limits.limitConstTerminal +/- theorem CategoryTheory.Limits.limitConstTerminal_inv_π +/- theorem CategoryTheory.Limits.ι_colimitConstInitial_hom Modified Mathlib/CategoryTheory/Limits/Shapes/ZeroMorphisms.lean Modified Mathlib/CategoryTheory/Limits/Types/ColimitType.lean +/- def CategoryTheory.Functor.CoconeTypes.precomp Modified Mathlib/CategoryTheory/Limits/Types/Yoneda.lean Modified Mathlib/CategoryTheory/Limits/VanKampen.lean +/- theorem CategoryTheory.IsUniversalColimit.whiskerEquivalence +/- theorem CategoryTheory.IsUniversalColimit.whiskerEquivalence_iff +/- theorem CategoryTheory.IsVanKampenColimit.whiskerEquivalence +/- theorem CategoryTheory.IsVanKampenColimit.whiskerEquivalence_iff +/- theorem CategoryTheory.NatTrans.Equifibered.whiskerLeft Modified Mathlib/CategoryTheory/Limits/Yoneda.lean Modified Mathlib/CategoryTheory/Linear/Basic.lean +/- def CategoryTheory.Linear.homCongr +/- theorem CategoryTheory.Linear.homCongr_apply +/- theorem CategoryTheory.Linear.homCongr_symm_apply Modified Mathlib/CategoryTheory/Linear/FunctorCategory.lean Modified Mathlib/CategoryTheory/Linear/LinearFunctor.lean Modified Mathlib/CategoryTheory/Localization/Adjunction.lean Modified Mathlib/CategoryTheory/Localization/Bifunctor.lean Modified Mathlib/CategoryTheory/Localization/Bousfield.lean Modified Mathlib/CategoryTheory/Localization/CalculusOfFractions.lean Modified Mathlib/CategoryTheory/Localization/CalculusOfFractions/ComposableArrows.lean Modified Mathlib/CategoryTheory/Localization/CalculusOfFractions/Fractions.lean Modified Mathlib/CategoryTheory/Localization/CalculusOfFractions/OfAdjunction.lean Modified Mathlib/CategoryTheory/Localization/CalculusOfFractions/Preadditive.lean +/- theorem CategoryTheory.Localization.functor_additive_iff Modified Mathlib/CategoryTheory/Localization/DerivabilityStructure/Basic.lean Modified Mathlib/CategoryTheory/Localization/DerivabilityStructure/Constructor.lean Modified Mathlib/CategoryTheory/Localization/DerivabilityStructure/OfFunctorialResolutions.lean Modified Mathlib/CategoryTheory/Localization/Equivalence.lean Modified Mathlib/CategoryTheory/Localization/HomEquiv.lean Modified Mathlib/CategoryTheory/Localization/Linear.lean Modified Mathlib/CategoryTheory/Localization/Monoidal/Basic.lean Modified Mathlib/CategoryTheory/Localization/Monoidal/Braided.lean Modified Mathlib/CategoryTheory/Localization/Monoidal/Functor.lean Modified Mathlib/CategoryTheory/Localization/Opposite.lean +/- def CategoryTheory.Localization.StrictUniversalPropertyFixedTarget.op Modified Mathlib/CategoryTheory/Localization/Preadditive.lean Modified Mathlib/CategoryTheory/Localization/Predicate.lean +/- theorem CategoryTheory.Functor.IsLocalization.of_equivalence_target +/- theorem CategoryTheory.Localization.faithful_whiskeringLeft +/- theorem CategoryTheory.Localization.full_whiskeringLeft +/- def CategoryTheory.Localization.whiskeringLeftFunctor' Modified Mathlib/CategoryTheory/Localization/Quotient.lean Modified Mathlib/CategoryTheory/Localization/Resolution.lean Modified Mathlib/CategoryTheory/Localization/StructuredArrow.lean Modified Mathlib/CategoryTheory/Localization/Triangulated.lean Modified Mathlib/CategoryTheory/Localization/Trifunctor.lean Modified Mathlib/CategoryTheory/LocallyDirected.lean Modified Mathlib/CategoryTheory/Monoidal/Action/Basic.lean Modified Mathlib/CategoryTheory/Monoidal/Action/End.lean Modified Mathlib/CategoryTheory/Monoidal/Action/LinearFunctor.lean Modified Mathlib/CategoryTheory/Monoidal/Action/Opposites.lean Modified Mathlib/CategoryTheory/Monoidal/Braided/Basic.lean +/- def CategoryTheory.BraidedCategory.ofFaithful +/- def CategoryTheory.SymmetricCategory.ofFaithful Modified Mathlib/CategoryTheory/Monoidal/Braided/Multifunctor.lean Modified Mathlib/CategoryTheory/Monoidal/Braided/Opposite.lean +/- theorem CategoryTheory.BraidedCategory.op_tensorμ +/- theorem CategoryTheory.BraidedCategory.unop_tensorμ Modified Mathlib/CategoryTheory/Monoidal/Braided/Reflection.lean Modified Mathlib/CategoryTheory/Monoidal/Cartesian/FunctorCategory.lean Modified Mathlib/CategoryTheory/Monoidal/Cartesian/Over.lean Modified Mathlib/CategoryTheory/Monoidal/Category.lean Modified Mathlib/CategoryTheory/Monoidal/Closed/FunctorCategory/Groupoid.lean Modified Mathlib/CategoryTheory/Monoidal/Closed/Transport.lean Modified Mathlib/CategoryTheory/Monoidal/CoherenceLemmas.lean Modified Mathlib/CategoryTheory/Monoidal/End.lean Modified Mathlib/CategoryTheory/Monoidal/FunctorCategory.lean Modified Mathlib/CategoryTheory/Monoidal/Limits/Preserves.lean Modified Mathlib/CategoryTheory/Monoidal/Linear.lean +/- theorem CategoryTheory.MonoidalLinear.ofFaithful Modified Mathlib/CategoryTheory/Monoidal/Multifunctor.lean Modified Mathlib/CategoryTheory/Monoidal/OfHasFiniteProducts.lean Modified Mathlib/CategoryTheory/Monoidal/Opposite/Mon_.lean Modified Mathlib/CategoryTheory/Monoidal/Preadditive.lean +/- theorem CategoryTheory.monoidalPreadditive_of_faithful Modified Mathlib/CategoryTheory/Monoidal/Rigid/Braided.lean Modified Mathlib/CategoryTheory/Monoidal/Rigid/FunctorCategory.lean Modified Mathlib/CategoryTheory/Monoidal/Rigid/OfEquivalence.lean Modified Mathlib/CategoryTheory/Monoidal/Skeleton.lean Modified Mathlib/CategoryTheory/Monoidal/Tor.lean Modified Mathlib/CategoryTheory/Monoidal/Types/Basic.lean Modified Mathlib/CategoryTheory/MorphismProperty/Basic.lean +/- theorem CategoryTheory.MorphismProperty.comma_iso_iff +/- def CategoryTheory.MorphismProperty.functorCategory +/- theorem CategoryTheory.MorphismProperty.map_map Modified Mathlib/CategoryTheory/MorphismProperty/Comma.lean +/- def CategoryTheory.MorphismProperty.Comma.lift Modified Mathlib/CategoryTheory/MorphismProperty/Composition.lean Modified Mathlib/CategoryTheory/MorphismProperty/Descent.lean Modified Mathlib/CategoryTheory/MorphismProperty/Factorization.lean Modified Mathlib/CategoryTheory/MorphismProperty/HasCardinalLT.lean +/- theorem CategoryTheory.MorphismProperty.hasCardinalLT_ofHoms Modified Mathlib/CategoryTheory/MorphismProperty/IsInvertedBy.lean +/- def CategoryTheory.MorphismProperty.FunctorsInverting.mk +/- def CategoryTheory.MorphismProperty.FunctorsInverting +/- theorem CategoryTheory.MorphismProperty.IsInvertedBy.iff_comp +/- theorem CategoryTheory.MorphismProperty.IsInvertedBy.map_iff +/- theorem CategoryTheory.MorphismProperty.IsInvertedBy.of_comp +/- theorem CategoryTheory.MorphismProperty.IsInvertedBy.prod Modified Mathlib/CategoryTheory/MorphismProperty/Limits.lean +/- theorem CategoryTheory.MorphismProperty.colimitsOfShape_eq_of_equivalence +/- theorem CategoryTheory.MorphismProperty.colimitsOfShape_le_of_final Modified Mathlib/CategoryTheory/MorphismProperty/OverAdjunction.lean Modified Mathlib/CategoryTheory/MorphismProperty/Retract.lean Modified Mathlib/CategoryTheory/MorphismProperty/RetractArgument.lean Modified Mathlib/CategoryTheory/Noetherian.lean Modified Mathlib/CategoryTheory/ObjectProperty/ColimitsOfShape.lean Modified Mathlib/CategoryTheory/ObjectProperty/FunctorCategory/PreservesLimits.lean Modified Mathlib/CategoryTheory/ObjectProperty/InheritedFromHom.lean Modified Mathlib/CategoryTheory/ObjectProperty/LimitsOfShape.lean Modified Mathlib/CategoryTheory/ObjectProperty/Shift.lean Modified Mathlib/CategoryTheory/Opposites.lean +/- def CategoryTheory.Functor.leftOpComp +/- def CategoryTheory.Functor.rightOpComp +/- theorem CategoryTheory.NatIso.op_associator +/- theorem CategoryTheory.NatIso.op_isoWhiskerLeft +/- theorem CategoryTheory.NatIso.op_isoWhiskerRight +/- theorem CategoryTheory.NatIso.unop_associator +/- theorem CategoryTheory.NatIso.unop_whiskerLeft +/- theorem CategoryTheory.NatIso.unop_whiskerRight +/- theorem CategoryTheory.NatTrans.leftOpWhiskerRight +/- theorem CategoryTheory.NatTrans.op_whiskerLeft +/- theorem CategoryTheory.NatTrans.op_whiskerRight +/- theorem CategoryTheory.NatTrans.rightOpWhiskerRight +/- theorem CategoryTheory.NatTrans.unop_whiskerLeft +/- theorem CategoryTheory.NatTrans.unop_whiskerRight Modified Mathlib/CategoryTheory/PathCategory/Basic.lean +/- theorem CategoryTheory.Paths.ext_functor +/- def CategoryTheory.Paths.lift +/- theorem CategoryTheory.Paths.lift_cons +/- theorem CategoryTheory.Paths.lift_nil +/- theorem CategoryTheory.Paths.lift_spec +/- theorem CategoryTheory.Paths.lift_toPath +/- theorem CategoryTheory.Paths.lift_unique Modified Mathlib/CategoryTheory/PathCategory/MorphismProperty.lean +/- def CategoryTheory.Paths.liftNatIso Modified Mathlib/CategoryTheory/Pi/Basic.lean +/- def CategoryTheory.Functor.pi'CompEval +/- def CategoryTheory.NatIso.pi' +/- def CategoryTheory.NatTrans.pi' Modified Mathlib/CategoryTheory/Preadditive/AdditiveFunctor.lean Modified Mathlib/CategoryTheory/Preadditive/Basic.lean Modified Mathlib/CategoryTheory/Preadditive/FunctorCategory.lean Modified Mathlib/CategoryTheory/Preadditive/Injective/Basic.lean Modified Mathlib/CategoryTheory/Preadditive/Opposite.lean Modified Mathlib/CategoryTheory/Preadditive/Projective/Basic.lean Modified Mathlib/CategoryTheory/Preadditive/Projective/Internal.lean Modified Mathlib/CategoryTheory/Preadditive/Projective/Resolution.lean Modified Mathlib/CategoryTheory/Preadditive/Schur.lean Modified Mathlib/CategoryTheory/Presentable/ColimitPresentation.lean Modified Mathlib/CategoryTheory/Quotient.lean +/- def CategoryTheory.Quotient.equiv Modified Mathlib/CategoryTheory/Quotient/Linear.lean Modified Mathlib/CategoryTheory/Quotient/Preadditive.lean Modified Mathlib/CategoryTheory/Shift/Adjunction.lean Modified Mathlib/CategoryTheory/Shift/Basic.lean Modified Mathlib/CategoryTheory/Shift/CommShift.lean Modified Mathlib/CategoryTheory/Shift/CommShiftTwo.lean Modified Mathlib/CategoryTheory/Shift/Induced.lean Modified Mathlib/CategoryTheory/Shift/InducedShiftSequence.lean Modified Mathlib/CategoryTheory/Shift/Linear.lean Modified Mathlib/CategoryTheory/Shift/Localization.lean Modified Mathlib/CategoryTheory/Shift/Opposite.lean Modified Mathlib/CategoryTheory/Shift/Pullback.lean Modified Mathlib/CategoryTheory/Shift/ShiftSequence.lean Modified Mathlib/CategoryTheory/Shift/ShiftedHom.lean Modified Mathlib/CategoryTheory/Shift/ShiftedHomOpposite.lean Modified Mathlib/CategoryTheory/Shift/SingleFunctors.lean Modified Mathlib/CategoryTheory/Sites/Adjunction.lean Modified Mathlib/CategoryTheory/Sites/CartesianClosed.lean Modified Mathlib/CategoryTheory/Sites/Coherent/Basic.lean Modified Mathlib/CategoryTheory/Sites/Coherent/CoherentSheaves.lean Modified Mathlib/CategoryTheory/Sites/Coherent/CoherentTopology.lean Modified Mathlib/CategoryTheory/Sites/Coherent/Comparison.lean Modified Mathlib/CategoryTheory/Sites/Coherent/Equivalence.lean Modified Mathlib/CategoryTheory/Sites/Coherent/ExtensiveColimits.lean Modified Mathlib/CategoryTheory/Sites/Coherent/ExtensiveSheaves.lean Modified Mathlib/CategoryTheory/Sites/Coherent/ExtensiveTopology.lean Modified Mathlib/CategoryTheory/Sites/Coherent/LocallySurjective.lean Modified Mathlib/CategoryTheory/Sites/Coherent/ReflectsPrecoherent.lean Modified Mathlib/CategoryTheory/Sites/Coherent/ReflectsPreregular.lean Modified Mathlib/CategoryTheory/Sites/Coherent/RegularSheaves.lean Modified Mathlib/CategoryTheory/Sites/Coherent/RegularTopology.lean Modified Mathlib/CategoryTheory/Sites/Coherent/SheafComparison.lean Modified Mathlib/CategoryTheory/Sites/ConstantSheaf.lean Modified Mathlib/CategoryTheory/Sites/CoverLifting.lean Modified Mathlib/CategoryTheory/Sites/Coverage.lean Modified Mathlib/CategoryTheory/Sites/DenseSubsite/Basic.lean Modified Mathlib/CategoryTheory/Sites/DenseSubsite/InducedTopology.lean Modified Mathlib/CategoryTheory/Sites/DenseSubsite/SheafEquiv.lean Modified Mathlib/CategoryTheory/Sites/EffectiveEpimorphic.lean Modified Mathlib/CategoryTheory/Sites/Equivalence.lean Modified Mathlib/CategoryTheory/Sites/Hypercover/Homotopy.lean +/- theorem CategoryTheory.PreOneHypercover.Homotopy.mapMultiforkOfIsLimit_eq Modified Mathlib/CategoryTheory/Sites/Hypercover/One.lean Modified Mathlib/CategoryTheory/Sites/Hypercover/Zero.lean Modified Mathlib/CategoryTheory/Sites/JointlySurjective.lean Modified Mathlib/CategoryTheory/Sites/Localization.lean Modified Mathlib/CategoryTheory/Sites/LocallyFullyFaithful.lean Modified Mathlib/CategoryTheory/Sites/LocallySurjective.lean Modified Mathlib/CategoryTheory/Sites/MorphismProperty.lean Modified Mathlib/CategoryTheory/Sites/Precoverage.lean +/- structure CategoryTheory.Precoverage Modified Mathlib/CategoryTheory/Sites/PreservesLocallyBijective.lean Modified Mathlib/CategoryTheory/Sites/PreservesSheafification.lean Modified Mathlib/CategoryTheory/Sites/Sheafification.lean Modified Mathlib/CategoryTheory/SmallObject/Iteration/ExtendToSucc.lean Modified Mathlib/CategoryTheory/SmallObject/Iteration/FunctorOfCocone.lean Modified Mathlib/CategoryTheory/SmallObject/Iteration/Nonempty.lean Modified Mathlib/CategoryTheory/Sums/Products.lean Modified Mathlib/CategoryTheory/Triangulated/Adjunction.lean Modified Mathlib/CategoryTheory/Triangulated/Basic.lean Modified Mathlib/CategoryTheory/Triangulated/Functor.lean Modified Mathlib/CategoryTheory/Triangulated/HomologicalFunctor.lean Modified Mathlib/CategoryTheory/Triangulated/Opposite/Basic.lean Modified Mathlib/CategoryTheory/Triangulated/Opposite/Functor.lean Modified Mathlib/CategoryTheory/Triangulated/Opposite/OpOp.lean Modified Mathlib/CategoryTheory/Triangulated/Opposite/Pretriangulated.lean +/- theorem CategoryTheory.Functor.map_distinguished_op_exact Modified Mathlib/CategoryTheory/Triangulated/Opposite/Triangle.lean Modified Mathlib/CategoryTheory/Triangulated/Opposite/Triangulated.lean Modified Mathlib/CategoryTheory/Triangulated/SpectralObject.lean Modified Mathlib/CategoryTheory/Triangulated/Subcategory.lean Modified Mathlib/CategoryTheory/Triangulated/TStructure/Basic.lean Modified Mathlib/CategoryTheory/Triangulated/Triangulated.lean Modified Mathlib/CategoryTheory/Triangulated/Yoneda.lean Modified Mathlib/CategoryTheory/Whiskering.lean +/- def CategoryTheory.Functor.postcompose₂ +/- def CategoryTheory.Functor.postcompose₃ Modified Mathlib/CategoryTheory/WithTerminal/Basic.lean +/- def CategoryTheory.WithInitial.inclLift +/- def CategoryTheory.WithInitial.inclLiftToInitial +/- def CategoryTheory.WithInitial.lift +/- def CategoryTheory.WithInitial.liftStar +/- theorem CategoryTheory.WithInitial.liftStar_lift_map +/- def CategoryTheory.WithInitial.liftToInitial +/- def CategoryTheory.WithInitial.liftToInitialUnique +/- def CategoryTheory.WithInitial.liftUnique +/- def CategoryTheory.WithInitial.map +/- def CategoryTheory.WithInitial.mapComp +/- def CategoryTheory.WithInitial.mapId +/- def CategoryTheory.WithInitial.map₂ +/- def CategoryTheory.WithTerminal.inclLift +/- def CategoryTheory.WithTerminal.inclLiftToTerminal +/- def CategoryTheory.WithTerminal.lift +/- def CategoryTheory.WithTerminal.liftStar +/- def CategoryTheory.WithTerminal.liftToTerminal +/- def CategoryTheory.WithTerminal.liftToTerminalUnique +/- def CategoryTheory.WithTerminal.liftUnique +/- theorem CategoryTheory.WithTerminal.lift_map_liftStar +/- def CategoryTheory.WithTerminal.map +/- def CategoryTheory.WithTerminal.mapComp +/- def CategoryTheory.WithTerminal.mapId +/- def CategoryTheory.WithTerminal.map₂ Modified Mathlib/CategoryTheory/WithTerminal/Lemmas.lean Modified Mathlib/Combinatorics/Quiver/ReflQuiver.lean +/- theorem CategoryTheory.Functor.toReflPrefunctor.map_comp +/- def CategoryTheory.Functor.toReflPrefunctor +/- theorem CategoryTheory.ReflQuiver.id_eq_id Modified Mathlib/Condensed/AB.lean Modified Mathlib/Condensed/Discrete/Characterization.lean Modified Mathlib/Condensed/Equivalence.lean +/- def Condensed.ProfiniteCompHaus.equivalence +/- def Condensed.StoneanCompHaus.equivalence +/- def Condensed.StoneanProfinite.equivalence Modified Mathlib/Condensed/Explicit.lean Modified Mathlib/Condensed/Light/Explicit.lean Modified Mathlib/Condensed/Limits.lean Modified Mathlib/Geometry/RingedSpace/OpenImmersion.lean +/- theorem AlgebraicGeometry.PresheafedSpace.IsOpenImmersion.ofRestrict_invApp +/- theorem AlgebraicGeometry.SheafedSpace.IsOpenImmersion.ofRestrict_invApp Modified Mathlib/Geometry/RingedSpace/PresheafedSpace.lean Modified Mathlib/Geometry/RingedSpace/PresheafedSpace/Gluing.lean +/- structure AlgebraicGeometry.PresheafedSpace.GlueData Modified Mathlib/Geometry/RingedSpace/PresheafedSpace/HasColimits.lean Modified Mathlib/Tactic/CategoryTheory/Coherence.lean +/- theorem Mathlib.Tactic.Coherence.insert_id_lhs +/- theorem Mathlib.Tactic.Coherence.insert_id_rhs Modified Mathlib/Tactic/CategoryTheory/Elementwise.lean +/- theorem Tactic.Elementwise.hom_elementwise Modified Mathlib/Tactic/CategoryTheory/IsoReassoc.lean +/- theorem CategoryTheory.Iso.eq_whisker Modified Mathlib/Tactic/CategoryTheory/Monoidal/PureCoherence.lean Modified Mathlib/Tactic/CategoryTheory/Reassoc.lean +/- theorem CategoryTheory.eq_whisker' Modified Mathlib/Topology/Category/LightProfinite/Extend.lean Modified Mathlib/Topology/Category/Profinite/Extend.lean Modified Mathlib/Topology/Category/TopCat/Limits/Basic.lean Modified Mathlib/Topology/Sheaves/Limits.lean Modified Mathlib/Topology/Sheaves/Presheaf.lean Modified Mathlib/Topology/Sheaves/SheafCondition/OpensLeCover.lean Modified Mathlib/Topology/Sheaves/SheafCondition/PairwiseIntersections.lean Modified Mathlib/Topology/Sheaves/SheafCondition/Sites.lean +/- theorem TopCat.Opens.coverDense_iff_isBasis Modified Mathlib/Topology/Sheaves/SheafCondition/UniqueGluing.lean Modified Mathlib/Topology/Sheaves/Stalks.lean +/- def TopCat.Presheaf.stalkCongr +/- theorem TopCat.Presheaf.stalkSpecializes_comp +/- theorem TopCat.Presheaf.stalkSpecializes_refl 2025-12-13 14:05:53 76c18ba feat(Algebra/Lie/CartanMatrix): add Cartan matrices for classical typ… (#32763) Add Cartan matrices for the classical infinite families of simple Lie algebras: - CartanMatrix.A : Type A_{n-1} (rank n-1, sl(n)) - CartanMatrix.B : Type B_n (rank n, so(2n+1)) - CartanMatrix.C : Type C_n (rank n, sp(2n)) - CartanMatrix.D : Type D_n (rank n, so(2n), requires n >= 4) Include diagonal theorems, explicit small cases (A_1, A_2, A_3), and Lie algebra abbreviations via ToLieAlgebra. ESTIMATED CHANGES Modified Mathlib.lean Deleted Mathlib/Algebra/Lie/CartanMatrix.lean - def CartanMatrix.E₆ - def CartanMatrix.E₇ - def CartanMatrix.E₈ - def CartanMatrix.F₄ - inductive CartanMatrix.Generators - def CartanMatrix.G₂ - def CartanMatrix.Relations.EF - def CartanMatrix.Relations.HE - def CartanMatrix.Relations.HF - def CartanMatrix.Relations.HH - def CartanMatrix.Relations.adE - def CartanMatrix.Relations.adF - def CartanMatrix.Relations.toIdeal - def CartanMatrix.Relations.toSet - def Matrix.ToLieAlgebra Added Mathlib/Algebra/Lie/SerreConstruction.lean + inductive CartanMatrix.Generators + def CartanMatrix.Relations.EF + def CartanMatrix.Relations.HE + def CartanMatrix.Relations.HF + def CartanMatrix.Relations.HH + def CartanMatrix.Relations.adE + def CartanMatrix.Relations.adF + def CartanMatrix.Relations.toIdeal + def CartanMatrix.Relations.toSet + def Matrix.ToLieAlgebra Added Mathlib/Data/Matrix/Cartan.lean + def CartanMatrix.A + theorem CartanMatrix.A_apply_le_zero_of_ne + theorem CartanMatrix.A_diag + theorem CartanMatrix.A_one + theorem CartanMatrix.A_three + theorem CartanMatrix.A_transpose + theorem CartanMatrix.A_two + def CartanMatrix.B + theorem CartanMatrix.B_diag + theorem CartanMatrix.B_off_diag_nonpos + theorem CartanMatrix.B_transpose + def CartanMatrix.C + theorem CartanMatrix.C_diag + theorem CartanMatrix.C_off_diag_nonpos + theorem CartanMatrix.C_transpose + def CartanMatrix.D + theorem CartanMatrix.D_diag + theorem CartanMatrix.D_off_diag_nonpos + theorem CartanMatrix.D_transpose + def CartanMatrix.E₆ + def CartanMatrix.E₇ + def CartanMatrix.E₈ + def CartanMatrix.F₄ + def CartanMatrix.G₂ 2025-12-13 13:14:52 12884d8 chore(Algebra): move `CharZero.of_module` earlier (#32834) This has nothing to do with `NoZeroSMulDivisors`. ESTIMATED CHANGES Modified Mathlib/Algebra/Module/NatInt.lean + theorem CharZero.of_module Modified Mathlib/Algebra/NoZeroSMulDivisors/Basic.lean - theorem CharZero.of_module Modified Mathlib/NumberTheory/NumberField/Basic.lean 2025-12-13 13:14:50 b04842a doc(GroupTheory): fix typos (#32781) Typos found and fixed by Codex. ESTIMATED CHANGES Modified Mathlib/GroupTheory/DivisibleHull.lean Modified Mathlib/GroupTheory/HNNExtension.lean Modified Mathlib/GroupTheory/NoncommCoprod.lean Modified Mathlib/GroupTheory/PushoutI.lean Modified Mathlib/GroupTheory/SemidirectProduct.lean 2025-12-13 12:55:35 de45528 doc(FieldTheory): fix typos (#32761) Found and fixed by Codex. ESTIMATED CHANGES Modified Mathlib/FieldTheory/Finite/Extension.lean Modified Mathlib/FieldTheory/Finite/Trace.lean Modified Mathlib/FieldTheory/IsAlgClosed/Spectrum.lean Modified Mathlib/FieldTheory/IsPerfectClosure.lean Modified Mathlib/FieldTheory/Normal/Defs.lean 2025-12-13 11:44:33 38fef68 chore(Data/Finset): Rename filter_neg to filter_not (#32582) Make namings of several theorems consistent. Filter.neg has a different meaning https://leanprover-community.github.io/mathlib4_docs/Mathlib/Order/Filter/Pointwise.html#Filter.instNeg ESTIMATED CHANGES Modified Archive/Imo/Imo1998Q2.lean Modified Mathlib/Algebra/BigOperators/Group/Finset/Basic.lean Modified Mathlib/Algebra/GCDMonoid/Finset.lean Modified Mathlib/Algebra/Order/BigOperators/Group/Finset.lean Modified Mathlib/Combinatorics/Additive/VerySmallDoubling.lean Modified Mathlib/Combinatorics/SetFamily/Compression/Down.lean Modified Mathlib/Combinatorics/SetFamily/Compression/UV.lean Modified Mathlib/Combinatorics/SetFamily/KruskalKatona.lean Modified Mathlib/Combinatorics/SimpleGraph/Density.lean Modified Mathlib/Combinatorics/SimpleGraph/Extremal/Turan.lean Modified Mathlib/Combinatorics/SimpleGraph/FiveWheelLike.lean Modified Mathlib/Combinatorics/SimpleGraph/Regularity/Increment.lean Modified Mathlib/Data/Finset/Basic.lean - theorem Finset.disjoint_filter_filter_neg + theorem Finset.disjoint_filter_filter_not - theorem Finset.filter_union_filter_neg_eq + theorem Finset.filter_union_filter_not_eq Modified Mathlib/Data/Finset/Card.lean + theorem Finset.card_filter_add_card_filter_not - theorem Finset.filter_card_add_filter_neg_card_eq_card Modified Mathlib/Data/Finset/Density.lean Modified Mathlib/Data/Finset/Prod.lean Modified Mathlib/GroupTheory/CosetCover.lean Modified Mathlib/Order/Partition/Equipartition.lean 2025-12-13 10:35:53 2df2f01 chore: bump toolchain to v4.26.0 (#32833) ESTIMATED CHANGES Modified lake-manifest.json Modified lakefile.lean Modified lean-toolchain 2025-12-13 10:20:17 c00849e doc(Probability/Martingale): fix typos (#32651) This PR fixes presumed typos. Changes are as follows: - Clarify the martingale_condExp result statement to match its actual signature (μ[f | ℱ i]). - Rephrase the upcrossings lemma to state “finite number of upcrossings,” aligning wording with the assumption ≠ ∞. - Fix the L¹ inequality in the proof sketch by removing a spurious norm bar. - Correct the Markov bound and tail estimate to use 𝔼|h|, consistent with the definition f_n := 𝔼[h | ℱ_n]. - Close a missing bracket in 𝔼[· | ℱ_n] for readability in the conditional expectation identity. ESTIMATED CHANGES Modified Mathlib/Probability/Martingale/Basic.lean Modified Mathlib/Probability/Martingale/Convergence.lean 2025-12-13 09:05:27 45d036c chore: remove unused hypothesis from Polynomial.card_eq_of_natDegree_le_of_coeff_le (#32821) ESTIMATED CHANGES Modified Mathlib/NumberTheory/MahlerMeasure.lean +/- theorem Polynomial.card_eq_of_natDegree_le_of_coeff_le 2025-12-13 07:56:05 a59f0f1 feat(RingTheory/StandardSmooth): presentation independent characterization (#31081) We show that if `S` is of finite presentation over `R` such that `H¹(S/R) = 0` and `Ω[S⁄R]` is free on `{d sᵢ}ᵢ` for some `sᵢ : S`, then `S` is `R`-standard smooth. The converse of this is already in mathlib. In the next PR, we will deduce from this that smooth is equivalent to locally standard smooth. From Pi1. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/LinearAlgebra/Basis/Exact.lean + theorem Module.Basis.ofSplitExact_apply Modified Mathlib/RingTheory/Extension/Cotangent/Free.lean + theorem Algebra.Generators.cotangentRestrict_bijective_of_basis_kaehlerDifferential Modified Mathlib/RingTheory/Extension/Generators.lean + theorem Algebra.Generators.extend_val_inl + theorem Algebra.Generators.extend_val_inr Modified Mathlib/RingTheory/Smooth/StandardSmooth.lean Modified Mathlib/RingTheory/Smooth/StandardSmoothCotangent.lean + theorem Algebra.IsStandardSmoothOfRelativeDimension.iff_of_isStandardSmooth + theorem Algebra.SubmersivePresentation.basisKaehlerOfIsCompl_apply + theorem Algebra.SubmersivePresentation.basisKaehler_apply Added Mathlib/RingTheory/Smooth/StandardSmoothOfFree.lean + theorem Algebra.Etale.iff_isStandardSmoothOfRelativeDimension_zero + theorem Algebra.IsStandardSmooth.iff_exists_basis_kaehlerDifferential + theorem Algebra.IsStandardSmooth.of_basis_kaehlerDifferential 2025-12-13 02:10:33 8f62007 feat(Data/Nat/Choose/Basic): weaken condition for ```choose_mul``` (#32810) ESTIMATED CHANGES Modified Mathlib/Data/Nat/Choose/Basic.lean +/- theorem Nat.choose_mul Modified Mathlib/NumberTheory/BernoulliPolynomials.lean 2025-12-12 20:02:57 3f5aae8 feat: for a regular measure, write the measure of an open set as a supremum of integrals of continuous functions (#32783) There is already such a statement for the measures of compact sets, in the file on uniqueness of Haar measures. This PR also moves them both to a new file. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/MeasureTheory/Integral/Regular.lean + theorem IsCompact.measure_eq_biInf_integral_hasCompactSupport + theorem IsOpen.measure_eq_biSup_integral_continuous Modified Mathlib/MeasureTheory/Measure/Haar/Unique.lean - theorem IsCompact.measure_eq_biInf_integral_hasCompactSupport 2025-12-12 18:47:20 12d559d feat(Algebra/Order/Ring/Archimedean): `⊤ ≠ 0` (#32800) As well as some trivial drive-by golfing. ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Ring/Archimedean.lean +/- theorem ArchimedeanClass.mk_natCast + theorem ArchimedeanClass.top_ne_zero + theorem ArchimedeanClass.zero_ne_top 2025-12-12 18:47:18 37ac1e9 feat: add one_le_nhds_iff (#32796) * Fixes one instance of `simp`-confluence failure * Placing it here mostly fits, and seems better than creating a new file just for this lemma ESTIMATED CHANGES Modified Mathlib/Topology/Algebra/Monoid.lean + theorem one_le_nhds_iff 2025-12-12 18:47:16 a6e07eb chore(Algebra/MonoidAlgebra): reduce dependence on defeq abuse, golf (#32604) This is crucial for #25273. ESTIMATED CHANGES Modified Mathlib/Algebra/MonoidAlgebra/Basic.lean +/- theorem AddMonoidAlgebra.algHom_ext_iff +/- theorem MonoidAlgebra.domCongr_refl Modified Mathlib/Algebra/MonoidAlgebra/Defs.lean +/- def AddMonoidAlgebra.of +/- def MonoidAlgebra.singleOneRingHom Modified Mathlib/Algebra/MonoidAlgebra/Degree.lean Modified Mathlib/Algebra/MonoidAlgebra/Ideal.lean Modified Mathlib/Algebra/MonoidAlgebra/Support.lean - theorem AddMonoidAlgebra.mem_span_support' +/- theorem AddMonoidAlgebra.mem_span_support Modified Mathlib/Algebra/MonoidAlgebra/ToDirectSum.lean +/- theorem AddMonoidAlgebra.toDirectSum_single Modified Mathlib/Algebra/Polynomial/Basic.lean +/- theorem Polynomial.ofFinsupp_single +/- theorem Polynomial.toFinsupp_C_mul_X +/- theorem Polynomial.toFinsupp_C_mul_X_pow +/- theorem Polynomial.toFinsupp_X +/- theorem Polynomial.toFinsupp_X_pow +/- theorem Polynomial.toFinsupp_monomial Modified Mathlib/Algebra/Polynomial/Degree/CardPowDegree.lean Modified Mathlib/Algebra/Polynomial/Degree/Definitions.lean Modified Mathlib/Algebra/Polynomial/Laurent.lean +/- theorem LaurentPolynomial.single_eq_C +/- theorem LaurentPolynomial.single_eq_C_mul_T +/- theorem LaurentPolynomial.single_zero_one_eq_one +/- theorem LaurentPolynomial.smeval_single 2025-12-12 17:54:00 dc2ec47 feat: add some `grind` lemmas for `Real.Angle`. Then golf. (#32732) These come as a result of having a more thorough look at this file during the review of #32259. The `grind` lemmas are added for convenience. The golfs are primarily due to judicious uses of `grind`, as well as novel approaches to the proofs which simplify what is required. The changes here should be orthogonal to the aforementioned PR. ESTIMATED CHANGES Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Angle.lean + theorem Real.Angle.sin_two_nsmul 2025-12-12 17:53:58 6517bcf feat(CategoryTheory/Triangulated): `opOp` and `unopUnop` commute with shifts (#32594) In this file, we show that if `C` is a pretriangulated category, then the functors `opOp C : C ⥤ Cᵒᵖᵒᵖ` and `unopUnop C : Cᵒᵖᵒᵖ ⥤ C` are triangulated. We also show that the unit and counit isomorphisms of the equivalence `opOpEquivalence C : Cᵒᵖᵒᵖ ≌ C` are compatible with shifts, which is summarized by the property `(opOpEquivalence C).IsTriangulated`. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/CategoryTheory/Shift/Opposite.lean + def CategoryTheory.Functor.commShiftUnop + def CategoryTheory.HasShift.mkShiftCoreOp Modified Mathlib/CategoryTheory/Shift/Pullback.lean + def CategoryTheory.pullbackShiftIso Modified Mathlib/CategoryTheory/Shift/ShiftedHomOpposite.lean Modified Mathlib/CategoryTheory/Triangulated/Opposite/Basic.lean + def CategoryTheory.Pretriangulated.opShiftFunctorEquivalence + def CategoryTheory.Pretriangulated.opShiftFunctorEquivalenceSymmHomEquiv + theorem CategoryTheory.Pretriangulated.opShiftFunctorEquivalence_add_unitIso_hom_app_eq + theorem CategoryTheory.Pretriangulated.opShiftFunctorEquivalence_add_unitIso_inv_app_eq + theorem CategoryTheory.Pretriangulated.opShiftFunctorEquivalence_counitIso_hom_app + theorem CategoryTheory.Pretriangulated.opShiftFunctorEquivalence_counitIso_inv_app + theorem CategoryTheory.Pretriangulated.opShiftFunctorEquivalence_unitIso_hom_app - theorem CategoryTheory.Pretriangulated.opShiftFunctorEquivalence_unitIso_hom_app_eq + theorem CategoryTheory.Pretriangulated.opShiftFunctorEquivalence_unitIso_inv_app - theorem CategoryTheory.Pretriangulated.opShiftFunctorEquivalence_unitIso_inv_app_eq +/- theorem CategoryTheory.Pretriangulated.shiftFunctorCompIsoId_op_hom_app +/- theorem CategoryTheory.Pretriangulated.shiftFunctorCompIsoId_op_inv_app + def CategoryTheory.Pretriangulated.shiftFunctorOpIso +/- theorem CategoryTheory.Pretriangulated.shiftFunctor_op_map +/- theorem CategoryTheory.Pretriangulated.shift_opShiftFunctorEquivalence_counitIso_inv_app Added Mathlib/CategoryTheory/Triangulated/Opposite/OpOp.lean + def CategoryTheory.Pretriangulated.Opposite.OpOpCommShift.iso + theorem CategoryTheory.Pretriangulated.Opposite.OpOpCommShift.iso_hom_app + theorem CategoryTheory.Pretriangulated.Opposite.OpOpCommShift.iso_inv_app + def CategoryTheory.Pretriangulated.Opposite.UnopUnopCommShift.iso + theorem CategoryTheory.Pretriangulated.Opposite.UnopUnopCommShift.iso_hom_app + theorem CategoryTheory.Pretriangulated.Opposite.UnopUnopCommShift.iso_inv_app + theorem CategoryTheory.Pretriangulated.commShiftIso_opOp_hom_app + theorem CategoryTheory.Pretriangulated.commShiftIso_opOp_inv_app + theorem CategoryTheory.Pretriangulated.commShiftIso_unopUnop_hom_app + theorem CategoryTheory.Pretriangulated.commShiftIso_unopUnop_inv_app Modified Mathlib/CategoryTheory/Triangulated/Opposite/Triangulated.lean 2025-12-12 17:53:56 56b10cd feat(RingTheory): strongly transcendental elements (#32537) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Group/Action/Faithful.lean + theorem FaithfulSMul.tower_bot + theorem FaithfulSMul.trans Added Mathlib/RingTheory/Algebraic/StronglyTranscendental.lean + theorem IsStronglyTranscendental.iff_of_isFractionRing + theorem IsStronglyTranscendental.iff_of_isLocalization + theorem IsStronglyTranscendental.of_isLocalization + theorem IsStronglyTranscendental.of_isLocalization_left + theorem IsStronglyTranscendental.of_map + theorem IsStronglyTranscendental.of_surjective_left + theorem IsStronglyTranscendental.of_transcendental + theorem IsStronglyTranscendental.restrictScalars + theorem IsStronglyTranscendental.transcendental + def IsStronglyTranscendental + theorem isStronglyTranscendental_iff_of_field + theorem isStronglyTranscendental_mk_of_mem_minimalPrimes 2025-12-12 17:53:53 5046bce feat(NumberTheory/Chebyshev): prove relationship between psi and theta (#32252) Proves the relationship between the Chebyshev psi and theta functions; psi is a sum of theta evaluated at powers of x. This upstreams a result from the PrimeNumberTheoremAnd project. ESTIMATED CHANGES Modified Mathlib/Data/Nat/Prime/Int.lean + theorem Nat.Prime.pow_inj' Modified Mathlib/NumberTheory/Chebyshev.lean + theorem Chebyshev.abs_psi_sub_theta_le_sqrt_mul_log + theorem Chebyshev.psi_eq_sum_theta + theorem Chebyshev.psi_eq_theta_add_sum_theta + theorem Chebyshev.psi_le + theorem Chebyshev.psi_le_const_mul_self + theorem Chebyshev.psi_sub_theta_eq_sum_not_prime + theorem Chebyshev.sum_PrimePow_eq_sum_sum + theorem Chebyshev.theta_le_psi 2025-12-12 17:04:40 95b192f feat(Algebra/Homology): K-projective cochain complexes (#32741) We define the notion of K-projective cochain complex in an abelian category, and show that bounded above complexes of projective objects are K-projective. This is the dual results to #31941: the main lemma is obtained by dualising the corresponding lemma for K-injective complexes. We also dualise the result from #31900: morphisms in the derived category from a K-projective cochain complex identify to homotopy classes of morphisms. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Homology/CochainComplexOpposite.lean + theorem CochainComplex.acyclic_op + theorem CochainComplex.exactAt_op Added Mathlib/Algebra/Homology/DerivedCategory/KProjective.lean + theorem CochainComplex.IsKProjective.Qh_map_bijective Modified Mathlib/Algebra/Homology/HomotopyCategory/KInjective.lean Added Mathlib/Algebra/Homology/HomotopyCategory/KProjective.lean + theorem CochainComplex.IsKProjective.leftOrthogonal + theorem CochainComplex.isKProjective_iff_leftOrthogonal + theorem CochainComplex.isKProjective_iff_of_iso + theorem CochainComplex.isKProjective_of_iso + theorem CochainComplex.isKProjective_of_op + theorem CochainComplex.isKProjective_of_projective + theorem CochainComplex.isKProjective_shift_iff + theorem HomotopyEquiv.isKProjective 2025-12-12 17:04:38 f62eba1 feat(Algebra/Homology): DerivedCategory and SmallShiftedHom (#32728) Given two cochain complexes `K` and `L`, We define a map from the cohomology of `HomComplex K L` to the type `SmallShiftedHom` (which identifies to a type of morphisms in the derived category). ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Homology/DerivedCategory/Basic.lean + theorem DerivedCategory.Q_map_eq_of_homotopy Added Mathlib/Algebra/Homology/DerivedCategory/SmallShiftedHom.lean + theorem CochainComplex.HomComplex.CohomologyClass.equiv_toSmallShiftedHom_mk + theorem CochainComplex.HomComplex.CohomologyClass.toSmallShiftedHom_mk 2025-12-12 17:04:36 6596905 feat: `MulDistribMulAction M Nˣ` instance (#32432) From ClassFieldTheory [Zulip](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/MulDistribMulAction.20instances) ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Action/Units.lean + theorem Units.coe_inv_smul + theorem Units.coe_smul 2025-12-12 15:51:21 d899146 feat(Geometry/Manifold): interior and boundary of open subsets of manifolds (#32759) A belongs to the interior / boundary of an open submanifold iff it belongs to the interior / boundary, when regarded as a point of the ambient manifold. ESTIMATED CHANGES Modified Mathlib/Geometry/Manifold/ChartedSpace.lean + theorem TopologicalSpace.Opens.chartAt_eq Modified Mathlib/Geometry/Manifold/IsManifold/InteriorBoundary.lean + theorem ModelWithCorners.boundary_open + theorem ModelWithCorners.interior_open + theorem ModelWithCorners.isBoundaryPoint_iff_isBoundaryPoint_val + theorem ModelWithCorners.isInteriorPoint_iff_isInteriorPoint_val 2025-12-12 15:51:19 600d7a7 feat(RingTheory): localization commutes with integral closure (#32596) ESTIMATED CHANGES Modified Mathlib/Algebra/Polynomial/Reverse.lean + theorem Polynomial.natDegree_reflect_le + theorem Polynomial.reflect_reflect Modified Mathlib/RingTheory/Localization/Integral.lean + theorem IsLocalization.Away.isIntegral_of_isIntegral_map + theorem IsLocalization.exists_isIntegral_smul_of_isIntegral_map + theorem isIntegral_of_isIntegral_adjoin_of_mul_eq_one 2025-12-12 15:51:17 c38ebf0 feat(Algebra/Polynomial/Roots): Add ofMultiset_injective (#32533) This shows that the product of roots (as a multiset) is injective. ESTIMATED CHANGES Modified Mathlib/Algebra/Polynomial/Roots.lean + theorem Polynomial.ofMultiset_injective + theorem Polynomial.rightInverse_ofMultiset_roots + theorem Polynomial.roots_ofMultiset 2025-12-12 15:51:15 d0f6447 feat(RingTheory): the etale locus of an algebra (#32529) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/RingTheory/Etale/Locus.lean + theorem Algebra.IsEtaleAt.comp + theorem Algebra.basicOpen_subset_etaleLocus_iff + theorem Algebra.basicOpen_subset_etaleLocus_iff_etale + def Algebra.etaleLocus + theorem Algebra.etaleLocus_eq_compl_support + theorem Algebra.etaleLocus_eq_univ_iff + theorem Algebra.etaleLocus_eq_univ_iff_etale + theorem Algebra.etaleLocus_eq_unramfiedLocus_inter_smoothLocus + theorem Algebra.exists_etale_of_isEtaleAt + theorem Algebra.isOpen_etaleLocus + theorem Algebra.mem_etaleLocus_iff Modified Mathlib/RingTheory/Localization/Away/AdjoinRoot.lean + theorem Algebra.FinitePresentation.of_isLocalizationAway Modified Mathlib/RingTheory/Unramified/Locus.lean 2025-12-12 15:51:14 2cf92aa feat(RingTheory): going-down for integrally closed domains (#32528) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/FieldTheory/Minpoly/IsIntegrallyClosed.lean + theorem IsIntegrallyClosed.minpoly_smul Modified Mathlib/RingTheory/Ideal/GoingDown.lean Added Mathlib/RingTheory/IntegralClosure/Algebra/Ideal.lean + theorem Polynomial.coeff_mem_pow_of_mem_adjoin_C_mul_X + theorem Polynomial.exists_monic_aeval_eq_zero_forall_mem_of_mem_map + theorem Polynomial.exists_monic_aeval_eq_zero_forall_mem_pow_of_isIntegral + theorem Polynomial.exists_monic_aeval_eq_zero_forall_mem_pow_of_mem_map Added Mathlib/RingTheory/IntegralClosure/GoingDown.lean + theorem Polynomial.coeff_mem_radical_span_coeff_of_dvd 2025-12-12 15:51:12 7134347 feat(CategoryTheory): natural transformations between bifunctors which commute to shifts in two variables (#32317) We introduce the two variable counterpart `NatTrans.CommShift₂` of `NatTrans.CommShift`. We also define `Functor.CommShift₂` instances for the precomposition on each variable. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Functor/Category.lean Modified Mathlib/CategoryTheory/Shift/CommShiftTwo.lean 2025-12-12 15:51:10 e944d99 feat: FiniteExhaustion (#31921) Creates a structure that contains the data of a non-decreasing sequence of finite sets whose union equals some countable set. This is used in the brownian motion project to transfer a theorem that holds over finite sets to a countable set (with monotone convergence). The design is modelled on CompactExhaustion (of course it can be seen as precisely a special case but I think taking that approach would be much more convoluted). I didn't want to give this its own file, but I couldn't put it in `Mathlib.Data.Set.Countable` without creating a `large-import` because I needed the fact that product of finite sets is finite, and couldn't find anywhere else sensible to put it that wouldn't create a `large-import`. Would be happy if someone has a better suggestion. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Data/Set/FiniteExhaustion.lean + theorem Set.FiniteExhaustion.Set.nonempty_finiteExhaustion_iff + theorem Set.FiniteExhaustion.iUnion_eq + theorem Set.FiniteExhaustion.subset_succ + theorem Set.FiniteExhaustion.toFun_eq_coe + structure Set.FiniteExhaustion Modified Mathlib/Data/Set/Lattice.lean + theorem Set.iUnion_le_nat 2025-12-12 14:37:32 9739946 feat(AlgebraicTopology/SimplicialSet): structures to study homotopy groups of Kan complexes (#32347) We introduce a structure `SSet.PtSimplex` which consists of morphisms `Δ[n] ⟶ X` which are constant to a certain `x : X _⦋0⦌` on the boundary. Homotopy groups of Kan complexes will be defined as a quotient of this. We introduce two structures `PtSimplex.RelStruct` and `PtSimplex.MulStruct` which will be important in the study of homotopy groups of Kan complexes. From https://github.com/joelriou/topcat-model-category ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/AlgebraicTopology/SimplicialSet/KanComplex/MulStruct.lean + structure SSet.PtSimplex.MulStruct + structure SSet.PtSimplex.RelStruct 2025-12-12 14:22:23 08b5886 refactor(Algebra/Quaternion): intermediate `Module` instance (#30678) This `Module` instance allows me to not ungeneralise the `NoZeroSMulDivisors R ℍ[R,c₁,c₂,c₃]` in #30563. ESTIMATED CHANGES Modified Mathlib/Algebra/Quaternion.lean + def QuaternionAlgebra.addEquivProd + def QuaternionAlgebra.addEquivTuple + theorem QuaternionAlgebra.coe_addEquivProd + theorem QuaternionAlgebra.coe_addEquivTuple + theorem QuaternionAlgebra.coe_symm_addEquivProd + theorem QuaternionAlgebra.coe_symm_addEquivTuple +/- def QuaternionAlgebra.linearEquivTuple 2025-12-12 14:05:44 b5195ed feat(Algebra/MonoidAlgebra): cardinality of monoid algebras (#32588) Currently, all these lemmas are special cases of the `Finsupp` ones. After #25273 however, this will not be the case anymore. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/MonoidAlgebra/Cardinal.lean + theorem MonoidAlgebra.cardinalMk_lift_of_fintype + theorem MonoidAlgebra.cardinalMk_lift_of_infinite' + theorem MonoidAlgebra.cardinalMk_lift_of_infinite + theorem MonoidAlgebra.cardinalMk_of_fintype + theorem MonoidAlgebra.cardinalMk_of_infinite' + theorem MonoidAlgebra.cardinalMk_of_infinite 2025-12-12 14:05:42 5ab4701 feat(Algebra/Homology): the bifunctor `F.map₂CochainComplex` commutes with shifts (#32308) Let `F : C₁ ⥤ C₂ ⥤ D` be a bifunctor (which is additive in both variables). In this PR, we show that the induced bifunctor `F.map₂CochainComplex : CochainComplex C₁ ℤ ⥤ CochainComplex C₂ ℤ ⥤ CochainComplex D ℤ` commutes with shifts by `ℤ`. (This means that it commutes with shifts by each variable, and also that there is a commutativity up to a sign when we consider both commutation at the same time.) ESTIMATED CHANGES Modified Mathlib/Algebra/Homology/Bifunctor.lean Modified Mathlib/Algebra/Homology/BifunctorShift.lean + theorem CategoryTheory.Functor.commShiftIso_map₂CochainComplex_flip_hom_app + theorem CategoryTheory.Functor.commShiftIso_map₂CochainComplex_flip_inv_app + theorem CategoryTheory.Functor.commShiftIso_map₂CochainComplex_hom_app + theorem CategoryTheory.Functor.commShiftIso_map₂CochainComplex_inv_app + theorem CochainComplex.mapBifunctorShift₁Iso_hom_naturality₁ + theorem CochainComplex.mapBifunctorShift₂Iso_hom_naturality₂ + theorem CochainComplex.ι_mapBifunctorShift₁Iso_hom_f + theorem CochainComplex.ι_mapBifunctorShift₂Iso_hom_f Modified Mathlib/CategoryTheory/Shift/CommShiftTwo.lean 2025-12-12 14:05:39 74e8393 feat(AlgebraicTopology): finite simplicial sets (#32202) A simplicial set `X` is finite (`SSet.Finite`) if it has finitely many nondegenerate simplices. Equivalently, `X` is finite dimensional and the type of `n`-simplices of `X` is finite for any `n`. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/AlgebraicTopology/SimplicialSet/Finite.lean + theorem SSet.finite_iff_of_iso + theorem SSet.finite_of_epi + theorem SSet.finite_of_hasDimensionLT + theorem SSet.finite_of_iso + theorem SSet.finite_of_mono + theorem SSet.finite_subcomplex_top_iff + theorem SSet.hasDimensionLT_of_finite Modified Mathlib/AlgebraicTopology/SimplicialSet/StdSimplex.lean 2025-12-12 14:05:36 d3a679b feat(Analysis/Distribution/ContDiffMapSupportedIn): Add postcomposition by a CLM as a CLM on D_K^n (#30239) A map `T : F →L[𝕜] F'` induces a map `postcompCLM T : 𝓓^{n}_{K}(E, F) →L[𝕜] 𝓓^{n}_{K}(E, F')` Co-Authored by: @ADedecker ESTIMATED CHANGES Modified Mathlib/Analysis/Distribution/ContDiffMapSupportedIn.lean + theorem ContDiffMapSupportedIn.postcompCLM_apply + theorem ContDiffMapSupportedIn.postcompLM_apply + theorem ContDiffMapSupportedIn.seminorm_postcompLM_le 2025-12-12 13:03:43 0c2beff feat: show that `Accumulate` and `partialSups` coincide (#32778) I need to shuffle a little bit the imports to let Accumulate import partialSups. As Accumulate is only used in advanced parts of the library, this looks reasonable to me. ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Disjointed.lean + theorem partialSups_add_one_eq_sup_disjointed Modified Mathlib/Data/Nat/Lattice.lean - theorem Set.accumulate_succ Modified Mathlib/Data/Set/Accumulate.lean + theorem Set.accumulate_succ + theorem Set.partialSups_eq_accumulate 2025-12-12 13:03:41 0fae2d4 feat(CategoryTheory/Abelian): projective resolutions as cochain complexes indexed by the integers (#32743) In this PR, we dualise #32003: we define the cochain complex indexed by the integers associated to a projective resolution of an object in an abelian category. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Homology/Embedding/CochainComplex.lean Modified Mathlib/CategoryTheory/Abelian/Injective/Extend.lean Added Mathlib/CategoryTheory/Abelian/Projective/Extend.lean + theorem CategoryTheory.ProjectiveResolution.cochainComplex_d + theorem CategoryTheory.ProjectiveResolution.π'_f_zero 2025-12-12 13:03:39 235f18c chore(Order/SetNotation): use `to_dual` (#32569) We opt to not dualize theorems on sets, and instead just dualize `sSup` and `iSup`. ESTIMATED CHANGES Modified Mathlib/Order/SetNotation.lean - def iInf 2025-12-12 13:03:36 65da710 feat(AlgebraicTopology): horns in Δ[n] as multicoequalizers (#31805) Some API is also introduced for the particular case of inner horns in `Δ[3]`. From https://github.com/joelriou/topcat-model-category ESTIMATED CHANGES Modified Mathlib/AlgebraicTopology/SimplicialSet/HornColimits.lean + theorem SSet.horn.multicoequalizerDiagram + def SSet.horn₃₁.desc.multicofork + theorem SSet.horn₃₁.desc.multicofork_π_three + theorem SSet.horn₃₁.desc.multicofork_π_two + theorem SSet.horn₃₁.desc.multicofork_π_zero + theorem SSet.horn₃₁.exists_desc + theorem SSet.horn₃₁.ι₀_desc + theorem SSet.horn₃₁.ι₂_desc + theorem SSet.horn₃₁.ι₃_desc + def SSet.horn₃₂.desc.multicofork + theorem SSet.horn₃₂.desc.multicofork_π_one + theorem SSet.horn₃₂.desc.multicofork_π_three + theorem SSet.horn₃₂.desc.multicofork_π_zero + theorem SSet.horn₃₂.exists_desc + theorem SSet.horn₃₂.ι₀_desc + theorem SSet.horn₃₂.ι₁_desc + theorem SSet.horn₃₂.ι₃_desc Modified Mathlib/AlgebraicTopology/SimplicialSet/StdSimplex.lean + theorem SSet.stdSimplex.face_le_face_iff + theorem SSet.stdSimplex.obj₀Equiv_symm_mem_face_iff 2025-12-12 12:04:47 8d3520a feat(Algebra/Homology): more API for the HomComplex to a single cochain complex (#32750) This PR dualises #32461. ESTIMATED CHANGES Modified Mathlib/Algebra/Homology/HomotopyCategory/HomComplexSingle.lean + theorem CochainComplex.HomComplex.Cochain.toSingleMk_add + theorem CochainComplex.HomComplex.Cochain.toSingleMk_neg + theorem CochainComplex.HomComplex.Cochain.toSingleMk_sub + theorem CochainComplex.HomComplex.Cochain.toSingleMk_surjective + theorem CochainComplex.HomComplex.Cocycle.toSingleMk_add + theorem CochainComplex.HomComplex.Cocycle.toSingleMk_mem_coboundaries_iff + theorem CochainComplex.HomComplex.Cocycle.toSingleMk_neg + theorem CochainComplex.HomComplex.Cocycle.toSingleMk_sub + theorem CochainComplex.HomComplex.Cocycle.toSingleMk_surjective + theorem CochainComplex.HomComplex.Cocycle.toSingleMk_zero 2025-12-12 12:04:45 ef912b8 chore(Tactic): deprecate `match_target` (#32730) `match_target t` does exactly the same as `guard_target =~ t`. `guard_target` is defined in core Lean, has more functionality and is used everywhere, whereas `match_target` only has one use. Spotted while looking for un(der)documented tactics. ESTIMATED CHANGES Modified Mathlib/Tactic/Basic.lean Modified MathlibTest/MonCat.lean 2025-12-12 12:04:43 17bd7de feat(Algebra): define Dedekind-finite monoids (every left inverse is also a right inverse) (#32610) + Prove equivalent characterizations of Dedekind-finite monoids. + Show commutative monoids, finite monoids, and Artinian semirings are Dedekind-finite, and finite monoids/rings are Dedekind-finite. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Group/Basic.lean Modified Mathlib/Algebra/Group/Defs.lean + theorem IsDedekindFiniteMonoid.of_exists_mul_self_eq_one + theorem IsDedekindFiniteMonoid.of_exists_self_mul_eq_one + theorem mul_eq_one_comm Modified Mathlib/Algebra/Group/Equiv/Basic.lean + theorem MulEquivClass.isDedekindFiniteMonoid_iff Modified Mathlib/Algebra/Group/Hom/Defs.lean + theorem MonoidHom.isDedekindFiniteMonoid_of_injective Modified Mathlib/Algebra/Group/Invertible/Defs.lean + def invertibleOfLeftInverse + def invertibleOfRightInverse Modified Mathlib/Algebra/Group/Opposite.lean +/- theorem MulOpposite.op_pow +/- theorem MulOpposite.op_zpow +/- theorem MulOpposite.unop_pow +/- theorem MulOpposite.unop_zpow Modified Mathlib/Algebra/Group/Submonoid/Defs.lean Modified Mathlib/Algebra/Group/Units/Defs.lean +/- theorem IsUnit.mul_iff +/- theorem IsUnit.of_mul_eq_one +/- theorem IsUnit.of_mul_eq_one_right +/- def Units.mkOfMulEqOne +/- theorem Units.val_mkOfMulEqOne +/- theorem isUnit_iff_exists_inv' +/- theorem isUnit_iff_exists_inv +/- theorem isUnit_of_mul_isUnit_left +/- theorem isUnit_of_mul_isUnit_right Modified Mathlib/Algebra/Regular/Basic.lean + theorem IsDedekindFiniteMonoid.iff_isLeftRegular_of_mul_eq_one + theorem IsDedekindFiniteMonoid.iff_isRightRegular_of_mul_eq_one Modified Mathlib/Algebra/Ring/Regular.lean + theorem IsDedekindFiniteMonoid.iff_eq_of_mul_left_eq_one + theorem IsDedekindFiniteMonoid.iff_eq_of_mul_right_eq_one Added Mathlib/GroupTheory/DedekindFinite.lean Modified Mathlib/NumberTheory/NumberField/Norm.lean Modified Mathlib/RingTheory/Artinian/Module.lean Modified MathlibTest/LibraryRewrite.lean 2025-12-12 12:04:41 9ba8fca feat(RingTheory): properties on `Algebra.TensorProduct.map` (#32540) ESTIMATED CHANGES Modified Mathlib/RingTheory/Finiteness/Basic.lean + theorem RingEquiv.finite Modified Mathlib/RingTheory/SurjectiveOnStalks.lean + theorem RingEquiv.surjectiveOnStalks + theorem RingHom.SurjectiveOnStalks.baseChange' + theorem RingHom.SurjectiveOnStalks.tensorProductMap Modified Mathlib/RingTheory/TensorProduct/Finite.lean + theorem RingHom.Finite.tensorProductMap 2025-12-12 11:43:28 6ad1879 chore: add missing imports in Mathlib.NumberTheory.ArithmeticFunction (#32790) This file was split in #32304, but only one of the new files was imported in the deprecated module. ESTIMATED CHANGES Modified Mathlib/NumberTheory/ArithmeticFunction.lean 2025-12-12 11:43:25 e1a9bd9 feat: a (finite or infinite) sum of inner regular measures is inner regular (#32785) ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Measure/Regular.lean 2025-12-12 09:54:36 fc734e3 chore: move to the new names for Fin coercion lemmas (#32736) These will be renamed in the upcoming lean release; this PR makes the change ahead of time to reduce the difference in the bump. ESTIMATED CHANGES Modified Archive/Imo/Imo1994Q1.lean Modified Archive/Imo/Imo1997Q3.lean Modified Mathlib/Algebra/BigOperators/Fin.lean Modified Mathlib/AlgebraicGeometry/EllipticCurve/Affine/Point.lean Modified Mathlib/AlgebraicTopology/AlternatingFaceMapComplex.lean Modified Mathlib/AlgebraicTopology/DoldKan/Faces.lean Modified Mathlib/AlgebraicTopology/SimplexCategory/Augmented/Monoidal.lean Modified Mathlib/AlgebraicTopology/SimplexCategory/Basic.lean Modified Mathlib/AlgebraicTopology/SimplexCategory/GeneratorsRelations/NormalForms.lean Modified Mathlib/AlgebraicTopology/SimplicialSet/Horn.lean Modified Mathlib/Analysis/Analytic/Composition.lean Modified Mathlib/Analysis/Calculus/ContDiff/FaaDiBruno.lean Modified Mathlib/Data/Fin/Basic.lean Modified Mathlib/Data/Fin/SuccPred.lean Modified Mathlib/Data/Fin/Tuple/Basic.lean Modified Mathlib/Data/Fin/Tuple/Take.lean Modified Mathlib/Data/Multiset/Fintype.lean Modified Mathlib/Data/Vector/Basic.lean Modified Mathlib/Data/ZMod/Basic.lean Modified Mathlib/GroupTheory/Perm/Fin.lean Modified Mathlib/LinearAlgebra/Alternating/Uncurry/Fin.lean Modified Mathlib/LinearAlgebra/Matrix/Determinant/Basic.lean Modified Mathlib/LinearAlgebra/Matrix/Determinant/Misc.lean Modified Mathlib/LinearAlgebra/TensorPower/Basic.lean Modified Mathlib/LinearAlgebra/Vandermonde.lean Modified Mathlib/Logic/Equiv/Fin/Rotate.lean Modified Mathlib/ModelTheory/Semantics.lean Modified Mathlib/Order/Fin/Basic.lean Modified Mathlib/Order/Partition/Equipartition.lean Modified Mathlib/Order/RelSeries.lean Modified Mathlib/RingTheory/NoetherNormalization.lean Modified Mathlib/RingTheory/Polynomial/Resultant/Basic.lean Modified Mathlib/RingTheory/WittVector/Truncated.lean Modified Mathlib/Topology/MetricSpace/GromovHausdorff.lean 2025-12-12 09:54:34 8d8a8b0 feat(Combinatorics): a Hamiltonian graph with a bridge has at most two vertices (#31880) ESTIMATED CHANGES Modified Mathlib/Combinatorics/SimpleGraph/Hamiltonian.lean + theorem SimpleGraph.not_isHamiltonian_of_isBridge 2025-12-12 09:54:31 4c41b5a feat(Data/Set/NAry): lemmas for `diff` (#30914) ESTIMATED CHANGES Modified Mathlib/Data/Set/NAry.lean + theorem Set.subset_image2_diff_left + theorem Set.subset_image2_diff_right 2025-12-12 09:27:27 aef4be2 refactor(Algebra/Polynomial/Splits): continue deprecation (#32752) This PR continues the deprecation in Splits.lean as we move over to the new API in Factors.lean. ESTIMATED CHANGES Modified Mathlib/Algebra/Polynomial/Factors.lean + theorem Polynomial.Splits.coeff_zero_eq_leadingCoeff_mul_prod_roots + theorem Polynomial.Splits.coeff_zero_eq_prod_roots_of_monic + theorem Polynomial.Splits.eval_derivative_div_eval_of_ne_zero + theorem Polynomial.Splits.eval_derivative_eq_eval_mul_sum + theorem Polynomial.Splits.nextCoeff_eq_neg_sum_roots_mul_leadingCoeff + theorem Polynomial.Splits.nextCoeff_eq_neg_sum_roots_of_monic Modified Mathlib/Algebra/Polynomial/Splits.lean - theorem Polynomial.coeff_zero_eq_leadingCoeff_mul_prod_roots_of_splits - theorem Polynomial.coeff_zero_eq_prod_roots_of_monic_of_splits - theorem Polynomial.eval_derivative_div_eval_of_ne_zero_of_splits - theorem Polynomial.eval_derivative_eq_eval_mul_sum_of_splits - theorem Polynomial.nextCoeff_eq_neg_sum_roots_mul_leadingCoeff_of_splits - theorem Polynomial.nextCoeff_eq_neg_sum_roots_of_monic_of_splits Modified Mathlib/Analysis/Complex/Polynomial/GaussLucas.lean Modified Mathlib/Analysis/Normed/Unbundled/SpectralNorm.lean Modified Mathlib/LinearAlgebra/Matrix/Charpoly/Eigs.lean Modified Mathlib/RingTheory/Norm/Basic.lean Modified Mathlib/RingTheory/Trace/Basic.lean 2025-12-12 09:27:25 7feaee8 feat(AlgebraicTopology): stability properties of monomorphisms in the category of simplicial sets (#32517) We show that monomorphisms are stable under coproducts, pushouts, filtered colimits and transfinite compositions. From https://github.com/joelriou/topcat-model-category ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/AlgebraicTopology/SimplicialSet/Monomorphisms.lean Modified Mathlib/CategoryTheory/MorphismProperty/FunctorCategory.lean 2025-12-12 09:27:23 8a37e1d feat(AlgebraicTopology): relative morphisms of simplicial sets (#32345) Given two simplicial sets `X` and `Y`, and subcomplexes `A` of `X`, and `B` of `Y`, we introduce a type `RelativeMorphism A B φ` of morphisms `X ⟶ Y` which induce a given morphism of simplicial sets `A ⟶ B`. We define homotopies between these relative morphisms and introduce the quotient type of homotopy classes. (Homotopy groups of Kan complexes will be defined as a particular case of this construction.) From https://github.com/joelriou/topcat-model-category ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/AlgebraicTopology/SimplicialSet/Monoidal.lean + theorem SSet.ι₀_app_fst + theorem SSet.ι₀_comp + theorem SSet.ι₀_fst + theorem SSet.ι₀_snd + theorem SSet.ι₁_app_fst + theorem SSet.ι₁_comp + theorem SSet.ι₁_fst + theorem SSet.ι₁_snd Added Mathlib/AlgebraicTopology/SimplicialSet/RelativeMorphism.lean + theorem SSet.RelativeMorphism.Homotopy.eq + structure SSet.RelativeMorphism.Homotopy + theorem SSet.RelativeMorphism.HomotopyClass.eq_homotopyClass + def SSet.RelativeMorphism.HomotopyClass.postcomp + def SSet.RelativeMorphism.HomotopyClass + def SSet.RelativeMorphism.comp + def SSet.RelativeMorphism.const + def SSet.RelativeMorphism.homotopyClass + theorem SSet.RelativeMorphism.image_le + theorem SSet.RelativeMorphism.le_preimage + theorem SSet.RelativeMorphism.map_coe + theorem SSet.RelativeMorphism.map_eq_of_mem + def SSet.RelativeMorphism.ofSimplex₀ + theorem SSet.RelativeMorphism.postcomp_homotopyClass + theorem SSet.RelativeMorphism.precomp_homotopyClass + structure SSet.RelativeMorphism Modified Mathlib/AlgebraicTopology/SimplicialSet/Subcomplex.lean + theorem SSet.Subcomplex.ofSimplex_ι 2025-12-12 09:11:02 8028a40 chore(LinearAlgebra/PiTensorProduct): remove use of `erw` in `nonempty_lifts` and `liftAux_tprod` (#32527) ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/PiTensorProduct.lean 2025-12-12 08:03:57 f6835d4 feat: strengthen `pow_gcd_eq_one` (#32464) From ClassFieldTheory ESTIMATED CHANGES Modified Mathlib/Data/Int/GCD.lean + theorem pow_eq_one_iff_of_coprime +/- theorem pow_gcd_eq_one + theorem pow_intGCD_eq_one Modified Mathlib/Data/Int/Init.lean + theorem Int.gcd_negSucc_negSucc + theorem Int.gcd_negSucc_ofNat + theorem Int.gcd_ofNat_negSucc Modified Mathlib/GroupTheory/OrderOfElement.lean +/- theorem pow_gcd_card_eq_one_iff Modified Mathlib/GroupTheory/SpecificGroups/Cyclic.lean Modified Mathlib/RingTheory/RootsOfUnity/PrimitiveRoots.lean 2025-12-12 05:00:29 4d33172 chore: remove >6 month old deprecated modules (#32765) The time has come! ESTIMATED CHANGES Modified Mathlib.lean Deleted Mathlib/Algebra/Category/AlgebraCat/Symmetric.lean Deleted Mathlib/Algebra/Category/Grp/ChosenFiniteProducts.lean Deleted Mathlib/Algebra/Order/Field/InjSurj.lean Deleted Mathlib/Algebra/Order/Floor.lean Deleted Mathlib/Algebra/Order/Group/InjSurj.lean Deleted Mathlib/Algebra/Order/Group/Instances.lean Deleted Mathlib/Algebra/Order/Group/Prod.lean Deleted Mathlib/Algebra/Order/Group/TypeTags.lean Deleted Mathlib/Algebra/Order/GroupWithZero/Unbundled.lean Deleted Mathlib/Algebra/Order/GroupWithZero/Unbundled/Lemmas.lean Deleted Mathlib/Algebra/Ring/Submonoid.lean Deleted Mathlib/AlgebraicGeometry/EllipticCurve/Affine.lean Deleted Mathlib/AlgebraicGeometry/EllipticCurve/Group.lean Deleted Mathlib/AlgebraicGeometry/IdealSheaf.lean Deleted Mathlib/CategoryTheory/Bicategory/NaturalTransformation/Strong.lean Deleted Mathlib/CategoryTheory/ChosenFiniteProducts.lean Deleted Mathlib/CategoryTheory/ChosenFiniteProducts/Cat.lean Deleted Mathlib/CategoryTheory/ChosenFiniteProducts/FunctorCategory.lean Deleted Mathlib/CategoryTheory/ChosenFiniteProducts/InfSemilattice.lean Deleted Mathlib/CategoryTheory/ChosenFiniteProducts/Over.lean Deleted Mathlib/CategoryTheory/FullSubcategory.lean Deleted Mathlib/CategoryTheory/Monoidal/OfChosenFiniteProducts/Basic.lean Deleted Mathlib/CategoryTheory/Monoidal/OfChosenFiniteProducts/Symmetric.lean Deleted Mathlib/CategoryTheory/Monoidal/Yoneda.lean Deleted Mathlib/CategoryTheory/Sites/ChosenFiniteProducts.lean Deleted Mathlib/CategoryTheory/WithTerminal.lean Deleted Mathlib/Data/ENNReal/Order.lean Deleted Mathlib/Data/Real/EReal.lean Deleted Mathlib/Data/Seq/WSeq.lean Deleted Mathlib/Data/Sign.lean Deleted Mathlib/MeasureTheory/Integral/Bochner.lean Deleted Mathlib/MeasureTheory/Integral/BochnerL1.lean Deleted Mathlib/MeasureTheory/Integral/FundThmCalculus.lean Deleted Mathlib/MeasureTheory/Integral/IntegrationByParts.lean Deleted Mathlib/MeasureTheory/Integral/IntervalIntegral.lean Deleted Mathlib/MeasureTheory/Integral/Lebesgue.lean Deleted Mathlib/MeasureTheory/Integral/Lebesgue/MeasurePreserving.lean Deleted Mathlib/MeasureTheory/Integral/Periodic.lean Deleted Mathlib/MeasureTheory/Integral/SetIntegral.lean Deleted Mathlib/MeasureTheory/Integral/VitaliCaratheodory.lean Deleted Mathlib/MeasureTheory/Measure/Typeclasses.lean Deleted Mathlib/NumberTheory/NumberField/Embeddings.lean Deleted Mathlib/Order/Chain.lean Deleted Mathlib/Probability/Distributions/Gaussian.lean Deleted Mathlib/Probability/Variance.lean Deleted Mathlib/RingTheory/CotangentLocalizationAway.lean Deleted Mathlib/RingTheory/EisensteinCriterion.lean Deleted Mathlib/RingTheory/Extension.lean Deleted Mathlib/RingTheory/Generators.lean Deleted Mathlib/RingTheory/Ideal/AssociatedPrime.lean Deleted Mathlib/RingTheory/Invariant.lean Deleted Mathlib/RingTheory/Kaehler/CotangentComplex.lean Deleted Mathlib/RingTheory/Polynomial/Eisenstein/Generalized.lean Deleted Mathlib/RingTheory/Presentation.lean Deleted Mathlib/RingTheory/Valuation/ValExtension.lean Deleted Mathlib/Topology/Algebra/ClosedSubgroup.lean Deleted Mathlib/Topology/Category/Profinite/Nobeling.lean Deleted Mathlib/Topology/GDelta/UniformSpace.lean 2025-12-12 03:14:58 cba7ee8 chore: tidy flexible linter exceptions (#32232) - Remove a few now-superfluous exceptions. (A fair number of them were fixed during review, but the exception removal did not get merged.) - Tweak some annotation comments: move some on the same line, to make it easier to audit the remaining cases (and their reasons) via searching. ESTIMATED CHANGES Modified Mathlib/Algebra/Polynomial/Bivariate.lean Modified Mathlib/Analysis/AbsoluteValue/Equivalence.lean Modified Mathlib/Analysis/Complex/Exponential.lean Modified Mathlib/Analysis/SpecialFunctions/ContinuousFunctionalCalculus/PosPart/Basic.lean Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Complex.lean Modified Mathlib/CategoryTheory/Bicategory/Adjunction/Mate.lean Modified Mathlib/CategoryTheory/Comma/Over/Pullback.lean Modified Mathlib/CategoryTheory/Limits/Constructions/Equalizers.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Products.lean Modified Mathlib/CategoryTheory/Products/Basic.lean Modified Mathlib/Combinatorics/Additive/FreimanHom.lean Modified Mathlib/Data/ENat/Basic.lean 2025-12-12 02:01:26 5085b89 chore: deprecate removed modules (#32762) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/LinearAlgebra/GeneralLinearGroup.lean Added Mathlib/LinearAlgebra/Matrix/LDL.lean Modified Mathlib/Tactic.lean Added Mathlib/Tactic/Propose.lean Added Mathlib/Topology/Covering.lean 2025-12-12 00:57:06 993928b feat(Analysis/Distribution): definition of tempered distributions (#31757) Define the space of tempered distributions as an abbreviation. We also prove the abstract convergence results for `PointwiseConvergenceCLM` and define the Fourier transform on tempered distributions. There is a bit of disagreement in the literature about which is the correct topology on tempered distributions. For practical reasons, we will use the pointwise topology, but we might switch later to the bounded topology, if the abstract functional analysis is developed enough to prove the same statements. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/Distribution/TemperedDistribution.lean + def MeasureTheory.Measure.toTemperedDistribution + theorem MeasureTheory.Measure.toTemperedDistribution_apply + def TemperedDistribution.fourierTransformCLM + theorem TemperedDistribution.fourierTransformCLM_apply + def TemperedDistribution.fourierTransformInvCLM + theorem TemperedDistribution.fourierTransformInvCLM_apply + theorem TemperedDistribution.fourierTransformInv_apply + theorem TemperedDistribution.fourierTransform_apply Modified Mathlib/Analysis/LocallyConvex/PointwiseConvergence.lean + def PointwiseConvergenceCLM.mkCLM + theorem PointwiseConvergenceCLM.tendsto_nhds + theorem PointwiseConvergenceCLM.tendsto_nhds_atTop Modified Mathlib/Topology/Algebra/Module/PointwiseConvergence.lean + def PointwiseConvergenceCLM.postcomp + def PointwiseConvergenceCLM.precomp Modified docs/overview.yaml Modified docs/undergrad.yaml 2025-12-11 22:59:23 c671bc4 chore: use `Set.Nonempty` everywhere (#32697) ESTIMATED CHANGES Modified Counterexamples/Phillips.lean Modified Mathlib/Algebra/Group/Action/Pointwise/Set/Basic.lean + theorem Set.op_smul_inter_nonempty_iff + theorem Set.smul_inter_nonempty_iff' + theorem Set.smul_inter_nonempty_iff Modified Mathlib/Algebra/Lie/Solvable.lean Modified Mathlib/Algebra/Module/DedekindDomain.lean Modified Mathlib/Algebra/Module/Torsion/Basic.lean Modified Mathlib/Algebra/MonoidAlgebra/Degree.lean +/- theorem AddMonoidAlgebra.sum_ne_zero_of_injOn_supDegree Modified Mathlib/Analysis/Convex/SimplicialComplex/Basic.lean +/- theorem Geometry.SimplicialComplex.convexHull_subset_space Modified Mathlib/MeasureTheory/Measure/LevyProkhorovMetric.lean Modified Mathlib/Order/Antichain.lean Modified Mathlib/Order/Partition/Equipartition.lean +/- theorem Finpartition.top_isEquipartition Modified Mathlib/Order/Preorder/Chain.lean Modified Mathlib/RingTheory/Ideal/Operations.lean Modified Mathlib/RingTheory/MvPolynomial/Symmetric/FundamentalTheorem.lean Modified Mathlib/Topology/Algebra/Group/Basic.lean Modified Mathlib/Topology/Connected/Clopen.lean Modified Mathlib/Topology/NoetherianSpace.lean + theorem TopologicalSpace.NoetherianSpace.exists_isOpen_nonempty_subset_irreducibleComponent 2025-12-11 22:12:09 aa417d2 feat(NumberTheory/ArithmeticFunction/Carmichael): Carmichael totient function (#32414) Define `ArithmeticFunction.Carmichael`, the Carmichael function `λ`, also known as the reduced totient function. Prove the known formula for `λ n` in terms of the prime factorization of `n`, along with some useful properties: - `a ^ λ n = 1` - `λ n ∣ φ n` - `a ∣ b → λ a ∣ λ b` - `λ (lcm a b) = lcm (λ a) (λ b)` ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/GCDMonoid/FinsetLemmas.lean + theorem Finset.associated_lcm_prod + theorem Finset.lcm_dvd_prod + theorem Finset.lcm_eq_prod Added Mathlib/NumberTheory/ArithmeticFunction/Carmichael.lean + def ArithmeticFunction.Carmichael + theorem ArithmeticFunction.carmichael_dvd + theorem ArithmeticFunction.carmichael_dvd_totient + theorem ArithmeticFunction.carmichael_eq_exponent' + theorem ArithmeticFunction.carmichael_eq_exponent + theorem ArithmeticFunction.carmichael_factorization + theorem ArithmeticFunction.carmichael_finset_lcm + theorem ArithmeticFunction.carmichael_finset_prod + theorem ArithmeticFunction.carmichael_lcm + theorem ArithmeticFunction.carmichael_mul + theorem ArithmeticFunction.carmichael_pow_of_prime_ne_two + theorem ArithmeticFunction.carmichael_two_pow_of_le_two + theorem ArithmeticFunction.carmichael_two_pow_of_le_two_eq_totient + theorem ArithmeticFunction.carmichael_two_pow_of_ne_two + theorem ArithmeticFunction.pow_carmichael + theorem ArithmeticFunction.two_mul_carmichael_two_pow_of_three_le_eq_totient 2025-12-11 21:26:49 ad8efb3 feat(Combinatorics/SimpleGraph/Acyclic): `IsAcyclic` -> `IsBipartite` (#32568) This generalizes the existing `IsTree` -> `IsBipartite` result. ESTIMATED CHANGES Modified Mathlib/Combinatorics/SimpleGraph/Acyclic.lean + theorem SimpleGraph.IsAcyclic.dist_eq_dist_add_one_of_adj_of_reachable + theorem SimpleGraph.IsAcyclic.dist_ne_of_adj + theorem SimpleGraph.IsAcyclic.isBipartite - theorem SimpleGraph.IsTree.diff_dist_adj + theorem SimpleGraph.IsTree.dist_eq_dist_add_one_of_adj Modified Mathlib/Combinatorics/SimpleGraph/Metric.lean + theorem SimpleGraph.Adj.diff_dist_adj - theorem SimpleGraph.Connected.diff_dist_adj + theorem SimpleGraph.Reachable.coe_dist_eq_edist + theorem SimpleGraph.Reachable.dist_triangle_left + theorem SimpleGraph.Reachable.dist_triangle_right 2025-12-11 19:56:13 bf0f847 chore(*): adaptations for batteries#1545 (#32581) After [batteries#1545](https://github.com/leanprover-community/batteries/pull/1545) is merged: - [x] Edit the lakefile to point to leanprover-community/batteries:main - [x] Run lake update batteries - [x] Merge leanprover-community/mathlib4:master - [ ] Wait for CI and merge ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Data/Nat/Cast/Defs.lean Modified Mathlib/Tactic.lean Modified Mathlib/Tactic/Basic.lean - def LibraryNote Added Mathlib/Tactic/Ext.lean 2025-12-11 19:40:47 da367fd chore: uniformize theorem naming (#32726) Following a suggestion made by @j-loreaux in the review of an earlier PR, rename several of the theorems introduced lately in `Mathlib/Analysis/Complex/ValueDistribution/*`. ESTIMATED CHANGES Modified Mathlib/Analysis/Complex/ValueDistribution/CharacteristicFunction.lean + theorem ValueDistribution.characteristic_mul_top_eventuallyLE + theorem ValueDistribution.characteristic_mul_top_le + theorem ValueDistribution.characteristic_mul_zero_eventuallyLE + theorem ValueDistribution.characteristic_mul_zero_le - theorem ValueDistribution.characteristic_top_mul_eventually_le - theorem ValueDistribution.characteristic_top_mul_le - theorem ValueDistribution.characteristic_zero_mul_eventually_le - theorem ValueDistribution.characteristic_zero_mul_le Modified Mathlib/Analysis/Complex/ValueDistribution/CountingFunction.lean + theorem Function.locallyFinsuppWithin.logCounting_eventuallyLE - theorem Function.locallyFinsuppWithin.logCounting_eventually_le + theorem ValueDistribution.logCounting_mul_top_eventuallyLE + theorem ValueDistribution.logCounting_mul_top_le + theorem ValueDistribution.logCounting_mul_zero_eventuallyLE + theorem ValueDistribution.logCounting_mul_zero_le - theorem ValueDistribution.logCounting_top_mul_eventually_le - theorem ValueDistribution.logCounting_top_mul_le - theorem ValueDistribution.logCounting_zero_mul_eventually_le - theorem ValueDistribution.logCounting_zero_mul_le Modified Mathlib/Analysis/Complex/ValueDistribution/ProximityFunction.lean + theorem ValueDistribution.proximity_mul_top_le + theorem ValueDistribution.proximity_mul_zero_le - theorem ValueDistribution.proximity_top_mul_le - theorem ValueDistribution.proximity_zero_mul_le 2025-12-11 19:40:45 2f7cf63 fix(ci): use bot token for discover-lean-pr-testing merges (#32722) This PR fixes an issue where merge commits from `lean-pr-testing-NNNN` branches weren't triggering CI. The `discover-lean-pr-testing.yml` workflow was using the default `GITHUB_TOKEN` and `github-actions` identity when pushing merge commits. Due to GitHub's "actions don't trigger actions" policy, these commits didn't trigger CI runs. This aligns with how `nightly_bump_toolchain.yml` and `nightly_merge_master.yml` handle pushes - using the `NIGHTLY_TESTING` token and the `leanprover-community-mathlib4-bot` identity. Discovered via https://leanprover.zulipchat.com/#narrow/channel/428973-nightly-testing/topic/Mathlib.20status.20updates/near/563147856 🤖 Prepared with Claude Code ESTIMATED CHANGES Modified .github/workflows/discover-lean-pr-testing.yml 2025-12-11 17:07:49 32831aa doc(Topology): fix typos (#32659) Typos found and fixed by Codex. ESTIMATED CHANGES Modified Mathlib/Topology/Algebra/InfiniteSum/UniformOn.lean Modified Mathlib/Topology/Bases.lean Modified Mathlib/Topology/EMetricSpace/PairReduction.lean Modified Mathlib/Topology/Homotopy/HSpaces.lean Modified Mathlib/Topology/MetricSpace/Bounded.lean Modified Mathlib/Topology/MetricSpace/Gluing.lean Modified Mathlib/Topology/MetricSpace/PiNat.lean Modified Mathlib/Topology/MetricSpace/ProperSpace.lean Modified Mathlib/Topology/MetricSpace/Pseudo/Defs.lean Modified Mathlib/Topology/Metrizable/Basic.lean Modified Mathlib/Topology/Metrizable/Uniformity.lean Modified Mathlib/Topology/OpenPartialHomeomorph/Constructions.lean Modified Mathlib/Topology/OpenPartialHomeomorph/IsImage.lean Modified Mathlib/Topology/UniformSpace/AbstractCompletion.lean 2025-12-11 17:07:47 e49e021 doc: add mutual references to doc strings of `AEMeasurable` and `NullMeasurable` (#32593) ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Measure/MeasureSpaceDef.lean Modified Mathlib/MeasureTheory/Measure/NullMeasurable.lean 2025-12-11 16:28:54 d76e532 feat(CategoryTheory): combine pullback cones in the functor category (#32618) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Limits/FunctorCategory/Shapes/Pullbacks.lean + def CategoryTheory.Limits.PullbackCone.combine + def CategoryTheory.Limits.PullbackCone.combineIsLimit Modified Mathlib/CategoryTheory/Limits/Shapes/Pullback/Cospan.lean + def CategoryTheory.Limits.cospanHomMk + def CategoryTheory.Limits.cospanIsoMk + def CategoryTheory.Limits.spanHomMk + def CategoryTheory.Limits.spanIsoMk 2025-12-11 13:50:26 e7e9abd fix(NumberTheory/MahlerMeasure): add missing public section (#32727) We add the line ``` @[expose] public section ``` which was missing when the file was created in #31732. ESTIMATED CHANGES Modified Mathlib/NumberTheory/MahlerMeasure.lean 2025-12-11 12:43:51 262b886 chore: replace `omega` with `lia` where possible (#32666) As previously discussed, we'd like to move users off `omega` and on to `lia` (which is the linear integer arithmetic module from `grind`, plus a controlled set of instantiated lemmas). This does not yet remove all uses of `omega` in Mathlib. ESTIMATED CHANGES Modified Archive/Imo/Imo1960Q1.lean Modified Archive/Imo/Imo1962Q1.lean Modified Archive/Imo/Imo1985Q2.lean Modified Archive/Imo/Imo1988Q6.lean Modified Archive/Imo/Imo1994Q1.lean Modified Archive/Imo/Imo1997Q3.lean Modified Archive/Imo/Imo2001Q3.lean Modified Archive/Imo/Imo2001Q6.lean Modified Archive/Imo/Imo2008Q3.lean Modified Archive/Imo/Imo2015Q6.lean Modified Archive/Imo/Imo2021Q1.lean Modified Archive/Imo/Imo2024Q1.lean Modified Archive/Imo/Imo2024Q2.lean Modified Archive/Imo/Imo2024Q3.lean Modified Archive/Imo/Imo2024Q5.lean +/- def Imo2024Q5.path0 +/- def Imo2024Q5.path1OfEdge0 Modified Archive/Wiedijk100Theorems/FriendshipGraphs.lean Modified Counterexamples/AharoniKorman.lean Modified Counterexamples/DiscreteTopologyNonDiscreteUniformity.lean Modified Mathlib/Algebra/AffineMonoid/Irreducible.lean Modified Mathlib/Algebra/BigOperators/Fin.lean Modified Mathlib/Algebra/BigOperators/Group/Finset/Interval.lean Modified Mathlib/Algebra/BigOperators/Intervals.lean Modified Mathlib/Algebra/CharP/Lemmas.lean Modified Mathlib/Algebra/ContinuedFractions/Computation/Approximations.lean Modified Mathlib/Algebra/Group/Defs.lean Modified Mathlib/Algebra/Group/Fin/Basic.lean Modified Mathlib/Algebra/Homology/ComplexShapeSigns.lean Modified Mathlib/Algebra/Homology/DerivedCategory/Ext/Basic.lean Modified Mathlib/Algebra/Homology/DerivedCategory/TStructure.lean Modified Mathlib/Algebra/Homology/Embedding/AreComplementary.lean Modified Mathlib/Algebra/Homology/Embedding/Basic.lean Modified Mathlib/Algebra/Homology/ExactSequence.lean Modified Mathlib/Algebra/Homology/HomotopyCategory/DegreewiseSplit.lean Modified Mathlib/Algebra/Homology/HomotopyCategory/HomComplex.lean Modified Mathlib/Algebra/Homology/HomotopyCategory/HomComplexShift.lean Modified Mathlib/Algebra/Homology/HomotopyCategory/MappingCone.lean Modified Mathlib/Algebra/Homology/HomotopyCategory/Pretriangulated.lean Modified Mathlib/Algebra/Homology/HomotopyCategory/Shift.lean Modified Mathlib/Algebra/Homology/HomotopyCategory/SingleFunctors.lean Modified Mathlib/Algebra/Homology/LeftResolution/Basic.lean Modified Mathlib/Algebra/Homology/TotalComplexShift.lean Modified Mathlib/Algebra/Lie/Sl2.lean Modified Mathlib/Algebra/Lie/Weights/Chain.lean Modified Mathlib/Algebra/Lie/Weights/RootSystem.lean Modified Mathlib/Algebra/LinearRecurrence.lean Modified Mathlib/Algebra/Module/ZLattice/Summable.lean Modified Mathlib/Algebra/Order/Antidiag/Nat.lean Modified Mathlib/Algebra/Order/Group/Int/Sum.lean Modified Mathlib/Algebra/Order/Ring/Int.lean Modified Mathlib/Algebra/Polynomial/AlgebraMap.lean Modified Mathlib/Algebra/Polynomial/EraseLead.lean Modified Mathlib/Algebra/Polynomial/Laurent.lean Modified Mathlib/Algebra/Polynomial/RuleOfSigns.lean Modified Mathlib/Algebra/Ring/GeomSum.lean Modified Mathlib/Algebra/Squarefree/Basic.lean Modified Mathlib/AlgebraicTopology/DoldKan/Decomposition.lean Modified Mathlib/AlgebraicTopology/DoldKan/Degeneracies.lean Modified Mathlib/AlgebraicTopology/DoldKan/Faces.lean Modified Mathlib/AlgebraicTopology/DoldKan/FunctorGamma.lean Modified Mathlib/AlgebraicTopology/DoldKan/Projections.lean Modified Mathlib/AlgebraicTopology/SimplexCategory/Augmented/Monoidal.lean Modified Mathlib/AlgebraicTopology/SimplexCategory/Basic.lean Modified Mathlib/AlgebraicTopology/SimplexCategory/Defs.lean +/- def SimplexCategory.Truncated.incl Modified Mathlib/AlgebraicTopology/SimplexCategory/Truncated.lean Modified Mathlib/AlgebraicTopology/SimplicialObject/Basic.lean +/- def CategoryTheory.CosimplicialObject.Truncated.trunc +/- def CategoryTheory.SimplicialObject.Truncated.trunc Modified Mathlib/AlgebraicTopology/SimplicialSet/AnodyneExtensions/Rank.lean Modified Mathlib/AlgebraicTopology/SimplicialSet/Basic.lean Modified Mathlib/AlgebraicTopology/SimplicialSet/Coskeletal.lean Modified Mathlib/AlgebraicTopology/SimplicialSet/Nerve.lean Modified Mathlib/AlgebraicTopology/SimplicialSet/Path.lean +/- def SSet.Truncated.Path.interval Modified Mathlib/AlgebraicTopology/SimplicialSet/StrictSegal.lean Modified Mathlib/Analysis/Analytic/Composition.lean Modified Mathlib/Analysis/Analytic/Inverse.lean Modified Mathlib/Analysis/Analytic/IteratedFDeriv.lean Modified Mathlib/Analysis/Calculus/BumpFunction/FiniteDimension.lean Modified Mathlib/Analysis/Calculus/ContDiff/FaaDiBruno.lean Modified Mathlib/Analysis/Calculus/FDeriv/Measurable.lean Modified Mathlib/Analysis/Complex/Polynomial/Basic.lean Modified Mathlib/Analysis/Convex/Between.lean Modified Mathlib/Analysis/Distribution/FourierSchwartz.lean Modified Mathlib/Analysis/InnerProductSpace/Projection/FiniteDimensional.lean Modified Mathlib/Analysis/InnerProductSpace/TwoDim.lean Modified Mathlib/Analysis/Normed/Affine/Simplex.lean Modified Mathlib/Analysis/Normed/Unbundled/SeminormFromConst.lean Modified Mathlib/Analysis/SpecialFunctions/Gamma/BohrMollerup.lean Modified Mathlib/Analysis/SpecialFunctions/Integrals/Basic.lean Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Basic.lean Modified Mathlib/Analysis/SpecificLimits/Normed.lean Modified Mathlib/Analysis/SumIntegralComparisons.lean Modified Mathlib/CategoryTheory/ComposableArrows/Basic.lean Modified Mathlib/CategoryTheory/Functor/OfSequence.lean Modified Mathlib/CategoryTheory/Limits/Shapes/SequentialProduct.lean Modified Mathlib/Combinatorics/Additive/ApproximateSubgroup.lean Modified Mathlib/Combinatorics/Additive/Corner/Roth.lean Modified Mathlib/Combinatorics/Additive/ErdosGinzburgZiv.lean Modified Mathlib/Combinatorics/Derangements/Finite.lean Modified Mathlib/Combinatorics/Enumerative/Catalan.lean Modified Mathlib/Combinatorics/Enumerative/Composition.lean Modified Mathlib/Combinatorics/Enumerative/DyckWord.lean Modified Mathlib/Combinatorics/Quiver/Path.lean Modified Mathlib/Combinatorics/SetFamily/KruskalKatona.lean Modified Mathlib/Combinatorics/SimpleGraph/ConcreteColorings.lean Modified Mathlib/Combinatorics/SimpleGraph/Connectivity/Connected.lean Modified Mathlib/Combinatorics/SimpleGraph/Connectivity/Subgraph.lean Modified Mathlib/Combinatorics/SimpleGraph/Extremal/Turan.lean Modified Mathlib/Combinatorics/SimpleGraph/FiveWheelLike.lean Modified Mathlib/Combinatorics/SimpleGraph/Matching.lean Modified Mathlib/Combinatorics/SimpleGraph/Metric.lean Modified Mathlib/Combinatorics/SimpleGraph/Paths.lean Modified Mathlib/Combinatorics/SimpleGraph/Walks/Traversal.lean Modified Mathlib/Computability/Ackermann.lean Modified Mathlib/Computability/RegularExpressions.lean Modified Mathlib/Control/Fix.lean Modified Mathlib/Data/Fin/Basic.lean +/- theorem Fin.eq_one_of_ne_zero Modified Mathlib/Data/Fin/SuccPred.lean Modified Mathlib/Data/Fin/Tuple/Sort.lean Modified Mathlib/Data/Finset/Card.lean Modified Mathlib/Data/Int/Basic.lean Modified Mathlib/Data/Int/GCD.lean Modified Mathlib/Data/Int/Init.lean Modified Mathlib/Data/Int/Interval.lean Modified Mathlib/Data/List/Basic.lean +/- theorem List.eq_cons_of_length_one Modified Mathlib/Data/List/Cycle.lean Modified Mathlib/Data/Matrix/Mul.lean Modified Mathlib/Data/Nat/Bits.lean Modified Mathlib/Data/Nat/Bitwise.lean Modified Mathlib/Data/Nat/Choose/Factorization.lean Modified Mathlib/Data/Nat/Digits/Defs.lean Modified Mathlib/Data/Nat/Factorial/Basic.lean Modified Mathlib/Data/Nat/Init.lean Modified Mathlib/Data/Nat/Log.lean Modified Mathlib/Data/Nat/MaxPowDiv.lean Modified Mathlib/Data/Nat/Multiplicity.lean Modified Mathlib/Data/Nat/Pairing.lean Modified Mathlib/Data/Nat/Size.lean Modified Mathlib/Data/Nat/Sqrt.lean Modified Mathlib/Data/Nat/Squarefree.lean Modified Mathlib/Data/Num/Lemmas.lean Modified Mathlib/Data/Num/Prime.lean Modified Mathlib/Data/Num/ZNum.lean Modified Mathlib/Data/Ordmap/Ordset.lean Modified Mathlib/Data/PNat/Xgcd.lean Modified Mathlib/Data/Rat/Defs.lean Modified Mathlib/Data/Seq/Basic.lean Modified Mathlib/Data/Vector/Basic.lean Modified Mathlib/Data/Vector3.lean Modified Mathlib/Geometry/Euclidean/Altitude.lean Modified Mathlib/GroupTheory/Coxeter/Basic.lean Modified Mathlib/GroupTheory/Coxeter/Length.lean Modified Mathlib/GroupTheory/OrderOfElement.lean Modified Mathlib/GroupTheory/Perm/Centralizer.lean Modified Mathlib/GroupTheory/Perm/Cycle/Type.lean Modified Mathlib/GroupTheory/SpecificGroups/Alternating/Centralizer.lean Modified Mathlib/LinearAlgebra/BilinearForm/Orthogonal.lean Modified Mathlib/LinearAlgebra/Dimension/RankNullity.lean Modified Mathlib/LinearAlgebra/Eigenspace/Basic.lean Modified Mathlib/LinearAlgebra/Eigenspace/Triangularizable.lean Modified Mathlib/LinearAlgebra/Matrix/Charpoly/Coeff.lean Modified Mathlib/LinearAlgebra/Matrix/Irreducible/Defs.lean Modified Mathlib/LinearAlgebra/Reflection.lean Modified Mathlib/LinearAlgebra/RootSystem/Base.lean Modified Mathlib/LinearAlgebra/RootSystem/Chain.lean Modified Mathlib/LinearAlgebra/RootSystem/Finite/G2.lean Modified Mathlib/LinearAlgebra/RootSystem/Finite/Lemmas.lean Modified Mathlib/LinearAlgebra/RootSystem/Finite/Nondegenerate.lean Modified Mathlib/LinearAlgebra/RootSystem/GeckConstruction/Lemmas.lean Modified Mathlib/Logic/Equiv/Finset.lean Modified Mathlib/MeasureTheory/Function/AbsolutelyContinuous.lean Modified Mathlib/MeasureTheory/Measure/Hausdorff.lean Modified Mathlib/MeasureTheory/OuterMeasure/Basic.lean Modified Mathlib/NumberTheory/ArithmeticFunction/Misc.lean Modified Mathlib/NumberTheory/ClassNumber/AdmissibleCardPowDegree.lean Modified Mathlib/NumberTheory/DiophantineApproximation/Basic.lean Modified Mathlib/NumberTheory/FLT/Four.lean Modified Mathlib/NumberTheory/FLT/Polynomial.lean Modified Mathlib/NumberTheory/FLT/Three.lean Modified Mathlib/NumberTheory/FermatPsp.lean Modified Mathlib/NumberTheory/FrobeniusNumber.lean Modified Mathlib/NumberTheory/LSeries/HurwitzZetaValues.lean Modified Mathlib/NumberTheory/LSeries/RiemannZeta.lean Modified Mathlib/NumberTheory/LucasLehmer.lean Modified Mathlib/NumberTheory/Modular.lean Modified Mathlib/NumberTheory/PellMatiyasevic.lean Modified Mathlib/NumberTheory/RamificationInertia/Basic.lean Modified Mathlib/NumberTheory/ZetaValues.lean Modified Mathlib/Order/Interval/Finset/Nat.lean Modified Mathlib/Order/Interval/Set/Fin.lean Modified Mathlib/Order/JordanHolder.lean Modified Mathlib/Order/KrullDimension.lean Modified Mathlib/Order/Monotone/Basic.lean Modified Mathlib/Order/OrderIsoNat.lean Modified Mathlib/Order/RelSeries.lean Modified Mathlib/Order/SuccPred/Tree.lean Modified Mathlib/Probability/Kernel/IonescuTulcea/PartialTraj.lean Modified Mathlib/Probability/Martingale/BorelCantelli.lean Modified Mathlib/Probability/Process/Predictable.lean Modified Mathlib/Probability/Process/Stopping.lean Modified Mathlib/RingTheory/Filtration.lean Modified Mathlib/RingTheory/Ideal/NatInt.lean Modified Mathlib/RingTheory/LaurentSeries.lean Modified Mathlib/RingTheory/Polynomial/Bernstein.lean Modified Mathlib/RingTheory/Polynomial/Cyclotomic/Factorization.lean Modified Mathlib/RingTheory/Polynomial/Resultant/Basic.lean Modified Mathlib/RingTheory/Polynomial/UniversalFactorizationRing.lean Modified Mathlib/RingTheory/PowerSeries/Basic.lean Modified Mathlib/RingTheory/PowerSeries/Restricted.lean Modified Mathlib/RingTheory/RootsOfUnity/CyclotomicUnits.lean Modified Mathlib/RingTheory/Spectrum/Prime/ChevalleyComplexity.lean Modified Mathlib/RingTheory/WittVector/Basic.lean Modified Mathlib/RingTheory/WittVector/InitTail.lean Modified Mathlib/RingTheory/WittVector/MulCoeff.lean Modified Mathlib/RingTheory/ZMod/UnitsCyclic.lean Modified Mathlib/Tactic/Bound.lean Modified Mathlib/Tactic/DeriveEncodable.lean Modified Mathlib/Tactic/ENatToNat.lean Modified Mathlib/Tactic/NormNum/Irrational.lean Modified Mathlib/Tactic/Order/ToInt.lean Modified Mathlib/Tactic/PNatToNat.lean Modified Mathlib/Topology/Algebra/InfiniteSum/ConditionalInt.lean Modified Mathlib/Topology/Algebra/InfiniteSum/SummationFilter.lean Modified Mathlib/Topology/Algebra/Order/ArchimedeanDiscrete.lean Modified Mathlib/Topology/EMetricSpace/BoundedVariation.lean Modified Mathlib/Topology/EMetricSpace/PairReduction.lean Modified Mathlib/Topology/UniformSpace/Cauchy.lean Modified MathlibTest/FlexibleLinter.lean Modified MathlibTest/TacticAnalysis.lean Modified MathlibTest/enat_to_nat.lean Modified MathlibTest/observe.lean Modified MathlibTest/pnat_to_nat.lean 2025-12-11 11:46:53 798365a chore: absorb steps into terminal `grind` (#32713) This PR takes existing proofs that end with `grind`, and absorbs steps before `grind` that aren't needed. From [#mathlib4 > Weekly linting log @ 💬](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Weekly.20linting.20log/near/562390081) ESTIMATED CHANGES Modified Mathlib/Algebra/BigOperators/Group/Finset/Interval.lean Modified Mathlib/Algebra/Polynomial/RuleOfSigns.lean Modified Mathlib/Analysis/Analytic/Order.lean Modified Mathlib/CategoryTheory/Filtered/Basic.lean Modified Mathlib/Combinatorics/SimpleGraph/Walks/Maps.lean Modified Mathlib/Data/Fin/Tuple/Basic.lean Modified Mathlib/Data/Finset/Pi.lean Modified Mathlib/Data/Nat/Sqrt.lean Modified Mathlib/Data/PFun.lean Modified Mathlib/MeasureTheory/Integral/IntervalIntegral/DerivIntegrable.lean Modified Mathlib/Order/Interval/Finset/Basic.lean +/- theorem Finset.Ico_diff_Ico_left +/- theorem Finset.Ico_diff_Ico_right +/- theorem Finset.Ico_filter_le +/- theorem Finset.Ico_filter_lt +/- theorem Finset.Ioc_inter_Ioc +/- theorem Finset.Ioo_filter_lt Modified Mathlib/Topology/Algebra/InfiniteSum/Defs.lean 2025-12-11 11:46:51 02a5455 doc: fix typos in the docstring of `Sigmoid` (#32700) Fix three wrong name spaces. ESTIMATED CHANGES Modified Mathlib/Analysis/SpecialFunctions/Sigmoid.lean 2025-12-11 11:46:50 cdcab72 doc(1000.yml): mention the Riemann mapping theorem (#32689) ESTIMATED CHANGES Modified docs/1000.yaml 2025-12-11 11:46:48 c8f4d32 feat: specialize `[pre, post]comp_uniformConvergenceCLM` to `CompactConvergenceCLM` (#32395) ESTIMATED CHANGES Modified Mathlib/Topology/Algebra/Module/StrongTopology.lean + def ContinuousLinearMap.postcomp_compactConvergenceCLM + def ContinuousLinearMap.precomp_compactConvergenceCLM 2025-12-11 10:44:55 6626d3a feat: colex order on finsupps (#31019) ESTIMATED CHANGES Modified Mathlib/Data/Finsupp/Lex.lean + theorem Finsupp.Colex.le_iff_of_unique + theorem Finsupp.Colex.lt_iff + theorem Finsupp.Colex.lt_iff_of_unique + theorem Finsupp.Colex.single_le_iff + theorem Finsupp.Colex.single_lt_iff + theorem Finsupp.Colex.single_strictMono - theorem Finsupp.Lex.lt_of_lt_of_preorder + theorem Finsupp.lex_lt_of_lt_of_preorder + theorem Finsupp.toColex_monotone Modified Mathlib/Order/Synonym.lean 2025-12-11 10:09:39 fbaa01c chore(RingTheory/Smooth): demote superseded `instance` to `theorem` (#32720) `Algebra.Smooth.flat_of_isNoetherianRing` is now superseded by `Algebra.Smooth.flat`, so the former does not need to be an `instance`. ESTIMATED CHANGES Modified Mathlib/RingTheory/Smooth/Flat.lean + theorem Algebra.Smooth.flat_of_isNoetherianRing 2025-12-11 10:09:37 02a656b feat(LinearAlgebra/PiTensorProduct): add version of `subsingletonEquiv` for dependent case (#32598) Dependent `PiTensorProduct`s over singleton types occur naturally when using `tmulEquivDep` to split off one index from a dependent `PiTensorProduct`. This PR creates `subsingletonEquivDep` to deal with this situation. The non-dependent `subsingletonEquiv` is re-defined as a specialization of the general case. This changes the definition of `toDirectSum_ι` in TensorAlgebra/ToTensorPower, and so its proof is therefore changed. [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/PiTensorProduct.lean +/- def PiTensorProduct.subsingletonEquiv +/- theorem PiTensorProduct.subsingletonEquiv_apply_tprod + theorem PiTensorProduct.subsingletonEquiv_symm_apply' + theorem PiTensorProduct.subsingletonEquiv_symm_apply Modified Mathlib/LinearAlgebra/TensorAlgebra/ToTensorPower.lean 2025-12-11 10:09:35 970fa80 feat(Polynomial/Roots): add a theorem for computing roots (#32357) The theorem `roots_eq_of_degree` shows that S is the set of roots of a degree d polynomial P if #S = d and P(x) = 0 for every x in S. ESTIMATED CHANGES Modified Mathlib/Algebra/Polynomial/Roots.lean + theorem Polynomial.roots_eq_of_degree_le_card + theorem Polynomial.roots_eq_of_degree_le_card_of_ne_zero + theorem Polynomial.roots_eq_of_natDegree_le_card_of_ne_zero 2025-12-11 10:09:34 6014a43 refactor: have `MetrizableSpace` not depend on `MetricSpace` (#27946) Some theorems for uniform spaces with a countably generated uniformity do not mention their uniformity in any of the hypotheses or the conclusion (for example `UniformSpace.isCompact_iff_isSeqCompact`). This PR allows those theorems to be stated for (pseudo)metrizable spaces without importing the real numbers. - Use `TopologicalSpace.pseudoMetrizableSpaceUniformity` to endow a pseudometrizable space with a compatible uniformity, and use `TopologicalSpace.pseudoMetrizableSpaceUniformity_countably_generated` to show that this is countably generated. - `TopologicalSpace.pseudoMetrizableSpacePseudoMetric` and `TopologicalSpace.metrizableSpaceMetric` have been moved to `Mathlib/Topology/Metrizable/Uniformity.lean`. See also #2032 ESTIMATED CHANGES Modified Mathlib/Topology/Compactness/PseudometrizableLindelof.lean Modified Mathlib/Topology/GDelta/MetrizableSpace.lean Modified Mathlib/Topology/Metrizable/Basic.lean + theorem TopologicalSpace.pseudoMetrizableSpaceUniformity_countably_generated Modified Mathlib/Topology/Metrizable/ContinuousMap.lean Modified Mathlib/Topology/Metrizable/Real.lean Modified Mathlib/Topology/Metrizable/Uniformity.lean 2025-12-11 09:25:34 50a5c45 doc(GroupTheory/Coset): mention RightActions notation for right cosets (#32718) mention the notations `s <• a` and `s <+ᵥ a` for `(s : Set G)` and `(a : G)` in the docs about cosets in a group correct the typo '`op a • s` with `open AddOpposite`' instead of `op a +ᵥ s` ESTIMATED CHANGES Modified Mathlib/GroupTheory/Coset/Basic.lean Modified Mathlib/GroupTheory/Coset/Defs.lean 2025-12-11 08:08:36 053b764 fix(Algebra/Field): ensure `Field.toGrindField.toInv` is def-eq to `Field.toInv` (#32711) This PR fixes an issue where the `Inv` instance obtained from `Field.toGrindField` was not definitionally equal to `Field.toInv` under instance reducibility. This caused `grind` to fail. Reported at https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/non.20def-eq.20.60Inv.60.20instances.20in.20.60Discriminant.2EDifferent.60 🤖 Prepared with Claude Code ESTIMATED CHANGES Modified Mathlib/Algebra/Field/Basic.lean Added MathlibTest/grind/field_instance.lean 2025-12-11 08:08:33 f3f5e6f chore: add missing deprecations (#32705) From #32074, #32107, #31871, #32061, #32138, #32036, #32179, #32092, #31548, #32228, and perhaps some more. ESTIMATED CHANGES Modified Mathlib/Algebra/Polynomial/Bivariate.lean Modified Mathlib/Algebra/Star/LinearMap.lean Modified Mathlib/Analysis/Distribution/TestFunction.lean Modified Mathlib/Data/Finset/NoncommProd.lean Modified Mathlib/Data/Finsupp/Weight.lean Modified Mathlib/Data/Int/Fib/Basic.lean + theorem Int.fib_gcd Modified Mathlib/Data/Set/Basic.lean Modified Mathlib/FieldTheory/IsAlgClosed/Basic.lean Modified Mathlib/FieldTheory/IsSepClosed.lean Modified Mathlib/NumberTheory/NumberField/Cyclotomic/Ideal.lean Modified Mathlib/Order/Defs/PartialOrder.lean Modified Mathlib/RingTheory/DividedPowers/Padic.lean Modified Mathlib/RingTheory/Etale/Basic.lean Modified Mathlib/RingTheory/Polynomial/ScaleRoots.lean 2025-12-11 08:08:31 77a1948 chore: notation `R⟦Γ⟧ = HahnSeries Γ R` (#32670) As proposed on [Zulip](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Notation.20for.20Hahn.20series/with/562859530). This technically clashes with `R⟦X⟧` for power series, but a similar clash already exists between `R[G]` for `MonoidAlgebra` and `R[X]` for `Polynomial`, so it should be fine. ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Module/HahnEmbedding.lean +/- structure HahnEmbedding.IsPartial +/- def HahnEmbedding.Partial.toOrderAddMonoidHom +/- def HahnEmbedding.Seed.baseEmbedding Modified Mathlib/Algebra/Order/Ring/Archimedean.lean Modified Mathlib/RingTheory/HahnSeries/Addition.lean +/- def HahnSeries.addOppositeEquiv +/- theorem HahnSeries.addOppositeEquiv_leadingCoeff +/- theorem HahnSeries.addOppositeEquiv_orderTop +/- theorem HahnSeries.addOppositeEquiv_support +/- theorem HahnSeries.addOppositeEquiv_symm_leadingCoeff +/- theorem HahnSeries.addOppositeEquiv_symm_orderTop +/- theorem HahnSeries.addOppositeEquiv_symm_support +/- def HahnSeries.coeff.addMonoidHom +/- def HahnSeries.coeff.linearMap +/- theorem HahnSeries.coeff_add' +/- theorem HahnSeries.coeff_add +/- theorem HahnSeries.coeff_neg' +/- theorem HahnSeries.coeff_neg +/- theorem HahnSeries.coeff_nsmul +/- theorem HahnSeries.coeff_order_of_eq_add_single +/- theorem HahnSeries.coeff_smul' +/- theorem HahnSeries.coeff_smul +/- theorem HahnSeries.coeff_sub' +/- theorem HahnSeries.coeff_sub +/- theorem HahnSeries.coeff_sum +/- def HahnSeries.embDomainLinearMap +/- theorem HahnSeries.embDomain_add +/- theorem HahnSeries.embDomain_smul +/- theorem HahnSeries.le_orderTop_of_leadingCoeff_eq +/- theorem HahnSeries.le_order_smul +/- theorem HahnSeries.leadingCoeff_add_eq_left +/- theorem HahnSeries.leadingCoeff_add_eq_right +/- theorem HahnSeries.leadingCoeff_neg +/- theorem HahnSeries.leadingCoeff_sub +/- theorem HahnSeries.min_orderTop_le_orderTop_add +/- theorem HahnSeries.min_orderTop_le_orderTop_sub +/- theorem HahnSeries.min_order_le_order_add +/- theorem HahnSeries.ne_zero_of_eq_add_single +/- def HahnSeries.ofFinsuppLinearMap +/- theorem HahnSeries.orderTop_add_eq_left +/- theorem HahnSeries.orderTop_add_eq_right +/- theorem HahnSeries.orderTop_le_orderTop_smul +/- theorem HahnSeries.orderTop_neg +/- theorem HahnSeries.orderTop_smul_not_lt +/- theorem HahnSeries.orderTop_sub +/- theorem HahnSeries.orderTop_sub_ne +/- theorem HahnSeries.order_neg +/- theorem HahnSeries.order_smul_not_lt +/- def HahnSeries.single.addMonoidHom +/- def HahnSeries.single.linearMap +/- theorem HahnSeries.support_add_subset +/- theorem HahnSeries.support_neg +/- def HahnSeries.truncLTLinearMap +/- theorem HahnSeries.truncLT_add +/- theorem HahnSeries.truncLT_smul Modified Mathlib/RingTheory/HahnSeries/Basic.lean +/- theorem HahnSeries.coeff_eq_zero_of_lt_order +/- theorem HahnSeries.coeff_eq_zero_of_lt_orderTop +/- theorem HahnSeries.coeff_fun_eq_zero_iff +/- theorem HahnSeries.coeff_inj +/- theorem HahnSeries.coeff_injective +/- theorem HahnSeries.coeff_orderTop_ne +/- theorem HahnSeries.coeff_order_ne_zero +/- theorem HahnSeries.coeff_truncLT_of_le +/- theorem HahnSeries.coeff_truncLT_of_lt +/- theorem HahnSeries.coeff_untop_eq_leadingCoeff +/- theorem HahnSeries.coeff_zero' +/- theorem HahnSeries.coeff_zero +/- def HahnSeries.embDomain +/- theorem HahnSeries.embDomain_coeff +/- theorem HahnSeries.embDomain_notin_image_support +/- theorem HahnSeries.embDomain_notin_range +/- theorem HahnSeries.embDomain_zero +/- theorem HahnSeries.isPWO_support +/- theorem HahnSeries.isWF_support +/- def HahnSeries.iterateEquiv +/- def HahnSeries.leadingCoeff +/- theorem HahnSeries.leadingCoeff_eq +/- theorem HahnSeries.leadingCoeff_eq_zero +/- theorem HahnSeries.leadingCoeff_ne_zero +/- theorem HahnSeries.leadingCoeff_of_ne_zero +/- theorem HahnSeries.leadingCoeff_zero +/- def HahnSeries.map +/- theorem HahnSeries.mem_support +/- theorem HahnSeries.ne_zero_of_coeff_ne_zero +/- def HahnSeries.ofFinsupp +/- def HahnSeries.ofIterate +/- def HahnSeries.ofSuppBddBelow +/- def HahnSeries.order +/- def HahnSeries.orderTop +/- theorem HahnSeries.orderTop_embDomain +/- theorem HahnSeries.orderTop_eq_of_le +/- theorem HahnSeries.orderTop_le_of_coeff_ne_zero +/- theorem HahnSeries.orderTop_ne_of_coeff_eq_zero +/- theorem HahnSeries.orderTop_zero +/- theorem HahnSeries.order_le_of_coeff_ne_zero +/- theorem HahnSeries.order_of_ne +/- theorem HahnSeries.order_zero +/- def HahnSeries.single +/- theorem HahnSeries.single_injective +/- theorem HahnSeries.support_embDomain_subset +/- theorem HahnSeries.support_eq_empty_iff +/- theorem HahnSeries.support_zero +/- def HahnSeries.toIterate +/- def HahnSeries.truncLT +/- theorem HahnSeries.untop_orderTop_of_ne_zero +/- theorem HahnSeries.zero_le_orderTop_iff +/- theorem HahnSeries.zero_lt_orderTop_iff +/- theorem HahnSeries.zero_lt_orderTop_of_order +/- theorem HahnSeries.zero_ofSuppBddBelow Modified Mathlib/RingTheory/HahnSeries/Binomial.lean +/- def HahnSeries.SummableFamily.binomialFamily +/- theorem HahnSeries.SummableFamily.binomialFamily_apply +/- theorem HahnSeries.SummableFamily.binomialFamily_apply_of_orderTop_nonpos +/- theorem HahnSeries.SummableFamily.binomialFamily_mem_support +/- theorem HahnSeries.SummableFamily.binomialFamily_orderTop_pos +/- theorem HahnSeries.SummableFamily.orderTop_hsum_binomialFamily_pos Modified Mathlib/RingTheory/HahnSeries/HEval.lean +/- theorem HahnSeries.SummableFamily.hsum_powerSeriesFamily_mul +/- theorem HahnSeries.SummableFamily.powerSeriesFamily_add +/- theorem HahnSeries.SummableFamily.powerSeriesFamily_of_not_orderTop_pos +/- theorem HahnSeries.SummableFamily.powerSeriesFamily_of_orderTop_pos +/- theorem HahnSeries.SummableFamily.powerSeriesFamily_smul +/- theorem HahnSeries.SummableFamily.support_powerSeriesFamily_subset +/- def PowerSeries.heval +/- theorem PowerSeries.heval_mul Modified Mathlib/RingTheory/HahnSeries/HahnEmbedding.lean Modified Mathlib/RingTheory/HahnSeries/Lex.lean +/- theorem HahnSeries.abs_lt_abs_of_orderTop_ofLex +/- theorem HahnSeries.archimedeanClassMk_eq_archimedeanClassMk_iff +/- theorem HahnSeries.archimedeanClassMk_le_archimedeanClassMk_iff +/- theorem HahnSeries.archimedeanClassMk_le_archimedeanClassMk_iff_of_orderTop_ofLex +/- theorem HahnSeries.archimedeanClassOrderIsoWithTop_apply +/- def HahnSeries.embDomainOrderAddMonoidHom +/- def HahnSeries.embDomainOrderEmbedding +/- theorem HahnSeries.finiteArchimedeanClassOrderIsoLex_apply_fst +/- theorem HahnSeries.finiteArchimedeanClassOrderIsoLex_apply_snd +/- theorem HahnSeries.finiteArchimedeanClassOrderIso_apply +/- theorem HahnSeries.leadingCoeff_abs +/- theorem HahnSeries.leadingCoeff_neg_iff +/- theorem HahnSeries.leadingCoeff_nonneg_iff +/- theorem HahnSeries.leadingCoeff_nonpos_iff +/- theorem HahnSeries.leadingCoeff_pos_iff +/- theorem HahnSeries.lt_iff +/- theorem HahnSeries.orderTop_abs +/- theorem HahnSeries.order_abs +/- theorem HahnSeries.support_abs Modified Mathlib/RingTheory/HahnSeries/Multiplication.lean +/- theorem HahnModule.add_smul +/- theorem HahnModule.coeff_smul +/- theorem HahnModule.coeff_smul_left +/- theorem HahnModule.coeff_smul_right +/- def HahnModule.of +/- theorem HahnModule.of_add +/- theorem HahnModule.of_smul +/- theorem HahnModule.of_sub +/- theorem HahnModule.of_zero +/- def HahnModule.rec +/- theorem HahnModule.smul_add +/- theorem HahnModule.support_smul_subset_vadd_support' +/- theorem HahnModule.support_smul_subset_vadd_support +/- theorem HahnModule.zero_smul' +/- def HahnSeries.C +/- theorem HahnSeries.C_eq_algebraMap +/- theorem HahnSeries.C_injective +/- theorem HahnSeries.C_mul_eq_smul +/- theorem HahnSeries.C_ne_zero +/- theorem HahnSeries.C_one +/- theorem HahnSeries.C_zero +/- theorem HahnSeries.algebraMap_apply +/- theorem HahnSeries.coeff_mul +/- theorem HahnSeries.coeff_mul_left' +/- theorem HahnSeries.coeff_mul_order_add_order +/- theorem HahnSeries.coeff_mul_right' +/- theorem HahnSeries.coeff_mul_single_add +/- theorem HahnSeries.coeff_mul_single_zero +/- theorem HahnSeries.coeff_one +/- theorem HahnSeries.coeff_single_mul_add +/- theorem HahnSeries.coeff_single_zero_mul +/- theorem HahnSeries.leadingCoeff_mul_of_nonzero +/- theorem HahnSeries.leadingCoeff_one +/- theorem HahnSeries.of_symm_smul_of_eq_mul +/- theorem HahnSeries.orderTop_add_le_mul +/- theorem HahnSeries.orderTop_mul_of_nonzero +/- theorem HahnSeries.orderTop_one +/- theorem HahnSeries.order_C +/- theorem HahnSeries.order_mul_of_nonzero +/- theorem HahnSeries.order_one +/- theorem HahnSeries.single_zero_mul_eq_smul +/- theorem HahnSeries.support_mul_subset_add_support +/- theorem HahnSeries.support_one Modified Mathlib/RingTheory/HahnSeries/PowerSeries.lean +/- theorem HahnSeries.coeff_toMvPowerSeries +/- theorem HahnSeries.coeff_toPowerSeries +/- def HahnSeries.ofPowerSeries +/- def HahnSeries.ofPowerSeriesAlg +/- def HahnSeries.toMvPowerSeries +/- def HahnSeries.toPowerSeries +/- def HahnSeries.toPowerSeriesAlg Modified Mathlib/RingTheory/HahnSeries/Summable.lean +/- theorem HahnSeries.SummableFamily.coe_injective +/- theorem HahnSeries.SummableFamily.coe_mk +/- theorem HahnSeries.SummableFamily.coe_ofFinsupp +/- theorem HahnSeries.SummableFamily.coe_zero +/- def HahnSeries.SummableFamily.const +/- def HahnSeries.SummableFamily.hsum +/- theorem HahnSeries.SummableFamily.hsum_ofFinsupp +/- theorem HahnSeries.SummableFamily.hsum_single +/- theorem HahnSeries.SummableFamily.hsum_smul +/- theorem HahnSeries.SummableFamily.hsum_smul_module +/- theorem HahnSeries.SummableFamily.isPWO_iUnion_support_prod_mul +/- theorem HahnSeries.SummableFamily.isPWO_iUnion_support_prod_smul +/- def HahnSeries.SummableFamily.lsum +/- def HahnSeries.SummableFamily.ofFinsupp +/- theorem HahnSeries.SummableFamily.pow_finite_co_support +/- def HahnSeries.SummableFamily.powers +/- theorem HahnSeries.SummableFamily.powers_of_not_orderTop_pos +/- theorem HahnSeries.SummableFamily.powers_of_orderTop_pos +/- theorem HahnSeries.SummableFamily.powers_zero +/- def HahnSeries.SummableFamily.single +/- theorem HahnSeries.SummableFamily.smul_apply +/- theorem HahnSeries.SummableFamily.smul_eq +/- structure HahnSeries.SummableFamily +/- theorem HahnSeries.isUnit_iff +/- theorem HahnSeries.isUnit_of_isUnit_leadingCoeff_AddUnitOrder +/- theorem HahnSeries.isUnit_of_orderTop_pos +/- theorem HahnSeries.one_minus_single_neg_mul +/- def HahnSeries.toOrderTopSubOnePos +/- theorem HahnSeries.unit_aux Modified Mathlib/RingTheory/HahnSeries/Valuation.lean +/- def HahnSeries.addVal +/- theorem HahnSeries.addVal_apply +/- theorem HahnSeries.addVal_apply_of_ne +/- theorem HahnSeries.addVal_le_of_coeff_ne_zero Modified Mathlib/RingTheory/LaurentSeries.lean 2025-12-11 08:08:28 034d7b7 feat(Algebra/Homology): more API for the HomComplex from a single cochain complex (#32461) ESTIMATED CHANGES Modified Mathlib/Algebra/Homology/HomotopyCategory/HomComplex.lean +/- theorem CochainComplex.HomComplex.Cocycle.ext Modified Mathlib/Algebra/Homology/HomotopyCategory/HomComplexCohomology.lean + theorem CochainComplex.HomComplex.mem_coboundaries_iff Modified Mathlib/Algebra/Homology/HomotopyCategory/HomComplexSingle.lean + theorem CochainComplex.HomComplex.Cochain.fromSingleMk_add + theorem CochainComplex.HomComplex.Cochain.fromSingleMk_neg + theorem CochainComplex.HomComplex.Cochain.fromSingleMk_sub + theorem CochainComplex.HomComplex.Cochain.fromSingleMk_surjective + theorem CochainComplex.HomComplex.Cocycle.fromSingleMk_add + theorem CochainComplex.HomComplex.Cocycle.fromSingleMk_mem_coboundaries_iff + theorem CochainComplex.HomComplex.Cocycle.fromSingleMk_neg + theorem CochainComplex.HomComplex.Cocycle.fromSingleMk_sub + theorem CochainComplex.HomComplex.Cocycle.fromSingleMk_surjective + theorem CochainComplex.HomComplex.Cocycle.fromSingleMk_zero 2025-12-11 08:08:25 36df19c feat(CategoryTheory/Localization): inverse in `SmallShiftedHom` (#32442) The post/precomposition on the types `SmallShiftedHom W` with a morphism which satisfies `W` is a bijection. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Localization/SmallShiftedHom.lean + theorem CategoryTheory.Localization.SmallShiftedHom.comp_mk₀_id + theorem CategoryTheory.Localization.SmallShiftedHom.equiv_mk₀Inv + theorem CategoryTheory.Localization.SmallShiftedHom.mk₀Inv_comp_mk₀ + theorem CategoryTheory.Localization.SmallShiftedHom.mk₀_comp_mk₀Inv + theorem CategoryTheory.Localization.SmallShiftedHom.mk₀_id_comp 2025-12-11 08:08:23 c31d2fb feat(Algebra): add Subsemigroup.op (#32428) the file Subsemigroup.MulOpposite is analogous to Submonoid.MulOpposite. Also add trivial lemmas on relation with monoids and groups in the corresponding file ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Group/Subgroup/MulOpposite.lean + theorem Subgroup.op_toSubsemigroup + theorem Subgroup.unop_toSubsemigroup Modified Mathlib/Algebra/Group/Submonoid/MulOpposite.lean + theorem Submonoid.op_toSubsemigroup + theorem Submonoid.unop_toSubsemigroup Added Mathlib/Algebra/Group/Subsemigroup/MulOpposite.lean + def Subsemigroup.equivOp + theorem Subsemigroup.le_op_iff + theorem Subsemigroup.mem_op + theorem Subsemigroup.mem_unop + def Subsemigroup.opEquiv + theorem Subsemigroup.op_bot + theorem Subsemigroup.op_closure + theorem Subsemigroup.op_eq_bot + theorem Subsemigroup.op_eq_top + theorem Subsemigroup.op_iInf + theorem Subsemigroup.op_iSup + theorem Subsemigroup.op_inf + theorem Subsemigroup.op_inj + theorem Subsemigroup.op_injective + theorem Subsemigroup.op_le_iff + theorem Subsemigroup.op_le_op_iff + theorem Subsemigroup.op_sInf + theorem Subsemigroup.op_sSup + theorem Subsemigroup.op_sup + theorem Subsemigroup.op_top + theorem Subsemigroup.op_unop + theorem Subsemigroup.unop_bot + theorem Subsemigroup.unop_closure + theorem Subsemigroup.unop_eq_bot + theorem Subsemigroup.unop_eq_top + theorem Subsemigroup.unop_iInf + theorem Subsemigroup.unop_iSup + theorem Subsemigroup.unop_inf + theorem Subsemigroup.unop_inj + theorem Subsemigroup.unop_injective + theorem Subsemigroup.unop_le_unop_iff + theorem Subsemigroup.unop_op + theorem Subsemigroup.unop_sInf + theorem Subsemigroup.unop_sSup + theorem Subsemigroup.unop_sup + theorem Subsemigroup.unop_top 2025-12-11 08:08:20 2bf8d4b feat(CategoryTheory): the Yoneda embedding for a locally small category (#32424) Let `C` be a locally `w`-small category. We define the Yoneda embedding `shrinkYoneda : C ⥤ Cᵒᵖ ⥤ Type w`. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/ShrinkYoneda.lean + theorem CategoryTheory.map_shrinkYonedaEquiv + theorem CategoryTheory.shrinkYonedaEquiv_comp + theorem CategoryTheory.shrinkYonedaEquiv_naturality + theorem CategoryTheory.shrinkYonedaEquiv_shrinkYoneda_map + theorem CategoryTheory.shrinkYonedaEquiv_symm_map Modified Mathlib/CategoryTheory/Yoneda.lean 2025-12-11 08:08:18 7d408ff feat(CategoryTheory): commutation of bifunctors with shifts in two variables (#32303) This will be used when formalising triangulated bifunctors. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Center/NegOnePow.lean + theorem CategoryTheory.CatCenter.app_neg_one_zpow Added Mathlib/CategoryTheory/Shift/CommShiftTwo.lean + structure CategoryTheory.CommShift₂Setup Modified Mathlib/CategoryTheory/Shift/Twist.lean 2025-12-11 08:08:16 8372ba7 refactor(Geometry/Euclidean/Projection): redefine projection and reflection for affine subspaces (#27378) This PR continues the work from #25578. Original PR: https://github.com/leanprover-community/mathlib4/pull/25578 - [x] depends on: #31395 ESTIMATED CHANGES Modified Mathlib/Geometry/Euclidean/Circumcenter.lean Modified Mathlib/Geometry/Euclidean/Projection.lean +/- theorem Affine.Simplex.coe_orthogonalProjection_vadd_smul_vsub_orthogonalProjection +/- def Affine.Simplex.orthogonalProjectionSpan +/- theorem Affine.Simplex.orthogonalProjectionSpan_congr +/- theorem Affine.Simplex.orthogonalProjectionSpan_eq_point +/- theorem Affine.Simplex.orthogonalProjectionSpan_faceOpposite_eq_point_rev +/- theorem Affine.Simplex.orthogonalProjectionSpan_reindex +/- theorem Affine.Simplex.orthogonalProjection_vadd_smul_vsub_orthogonalProjection +/- theorem EuclideanGeometry.coe_orthogonalProjection_eq_iff_mem +/- theorem EuclideanGeometry.dist_eq_iff_dist_orthogonalProjection_eq +/- theorem EuclideanGeometry.dist_orthogonalProjection_eq_infDist +/- theorem EuclideanGeometry.dist_orthogonalProjection_eq_infNndist +/- theorem EuclideanGeometry.dist_orthogonalProjection_eq_zero_iff +/- theorem EuclideanGeometry.dist_orthogonalProjection_ne_zero_of_notMem +/- theorem EuclideanGeometry.dist_reflection +/- theorem EuclideanGeometry.dist_reflection_eq_of_mem +/- theorem EuclideanGeometry.dist_set_eq_iff_dist_orthogonalProjection_eq +/- theorem EuclideanGeometry.dist_sq_smul_orthogonal_vadd_smul_orthogonal_vadd +/- theorem EuclideanGeometry.eq_orthogonalProjection_of_eq_subspace +/- theorem EuclideanGeometry.eq_reflection_of_eq_subspace +/- theorem EuclideanGeometry.exists_dist_eq_iff_exists_dist_orthogonalProjection_eq +/- theorem EuclideanGeometry.inter_eq_singleton_orthogonalProjection - theorem EuclideanGeometry.inter_eq_singleton_orthogonalProjectionFn + def EuclideanGeometry.orthogonalProjection - def EuclideanGeometry.orthogonalProjectionFn - theorem EuclideanGeometry.orthogonalProjectionFn_eq - theorem EuclideanGeometry.orthogonalProjectionFn_mem - theorem EuclideanGeometry.orthogonalProjectionFn_mem_orthogonal - theorem EuclideanGeometry.orthogonalProjectionFn_vsub_mem_direction_orthogonal + theorem EuclideanGeometry.orthogonalProjection_apply' + theorem EuclideanGeometry.orthogonalProjection_apply + theorem EuclideanGeometry.orthogonalProjection_apply_mem +/- theorem EuclideanGeometry.orthogonalProjection_congr +/- theorem EuclideanGeometry.orthogonalProjection_contLinear +/- theorem EuclideanGeometry.orthogonalProjection_eq_iff_mem +/- theorem EuclideanGeometry.orthogonalProjection_eq_orthogonalProjection_iff_vsub_mem +/- theorem EuclideanGeometry.orthogonalProjection_eq_self_iff +/- theorem EuclideanGeometry.orthogonalProjection_linear +/- theorem EuclideanGeometry.orthogonalProjection_mem +/- theorem EuclideanGeometry.orthogonalProjection_mem_orthogonal +/- theorem EuclideanGeometry.orthogonalProjection_mem_subspace_eq_self +/- theorem EuclideanGeometry.orthogonalProjection_orthogonalProjection +/- theorem EuclideanGeometry.orthogonalProjection_orthogonalProjection_of_le +/- theorem EuclideanGeometry.orthogonalProjection_sup_of_orthogonalProjection_eq +/- theorem EuclideanGeometry.orthogonalProjection_vadd_eq_self +/- theorem EuclideanGeometry.orthogonalProjection_vadd_smul_vsub_orthogonalProjection +/- theorem EuclideanGeometry.orthogonalProjection_vsub_mem_direction +/- theorem EuclideanGeometry.orthogonalProjection_vsub_mem_direction_orthogonal +/- theorem EuclideanGeometry.orthogonalProjection_vsub_orthogonalProjection +/- def EuclideanGeometry.reflection + theorem EuclideanGeometry.reflection_apply' +/- theorem EuclideanGeometry.reflection_apply + theorem EuclideanGeometry.reflection_apply_of_mem +/- theorem EuclideanGeometry.reflection_eq_iff_orthogonalProjection_eq +/- theorem EuclideanGeometry.reflection_eq_self_iff +/- theorem EuclideanGeometry.reflection_involutive +/- theorem EuclideanGeometry.reflection_mem_of_le_of_mem +/- theorem EuclideanGeometry.reflection_orthogonal_vadd +/- theorem EuclideanGeometry.reflection_reflection +/- theorem EuclideanGeometry.reflection_symm +/- theorem EuclideanGeometry.reflection_vadd_smul_vsub_orthogonalProjection +/- theorem EuclideanGeometry.vsub_orthogonalProjection_mem_direction +/- theorem EuclideanGeometry.vsub_orthogonalProjection_mem_direction_orthogonal 2025-12-11 08:08:14 63a90fe feat(RingTheory/Perfectoid): Fontaine's theta map is surjective (#26384) This PR continues the work from #22332. Original PR: https://github.com/leanprover-community/mathlib4/pull/22332 In this file, we show that when R is p-adically complete and Frob : R/p -> R/p is surjective, Fontaine's theta map is surjective. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Module/Submodule/Basic.lean + theorem Submodule.toAddSubgroup_toAddSubmonoid Modified Mathlib/LinearAlgebra/SModEq/Basic.lean + theorem SModEq.of_toAddSubgroup_le Added Mathlib/LinearAlgebra/SModEq/Pointwise.lean + theorem SModEq.smul' Modified Mathlib/RingTheory/AdicCompletion/Basic.lean + theorem IsHausdorff.map_algebraMap_iff + theorem IsHausdorff.of_map Modified Mathlib/RingTheory/AdicCompletion/Functoriality.lean + theorem AdicCompletion.exists_smodEq_pow_add_one_smul + theorem AdicCompletion.exists_smodEq_pow_smul_top_and_mkQ_eq + theorem AdicCompletion.exists_smodEq_pow_smul_top_and_smodEq_pow_add_one_smul_top + theorem AdicCompletion.map_of + theorem AdicCompletion.map_surjective_of_mkQ_comp_surjective + theorem surjective_of_mkQ_comp_surjective + theorem surjective_of_mk_map_comp_surjective Modified Mathlib/RingTheory/Perfection.lean + theorem Perfection.coeff_surjective Modified Mathlib/RingTheory/Perfectoid/FontaineTheta.lean + theorem surjective_fontaineTheta Modified Mathlib/RingTheory/WittVector/Defs.lean + theorem WittVector.coeff_surjective 2025-12-11 07:09:54 3128d20 feat: add `@[grind inj]` to `Finset.coe_injective` (#32714) Requested at [#lean4 > `grind` doesn't use the fact that Prop is a Subsingleton @ 💬](https://leanprover.zulipchat.com/#narrow/channel/270676-lean4/topic/.60grind.60.20doesn't.20use.20the.20fact.20that.20Prop.20is.20a.20Subsingleton/near/555663373), seems reasonable. ESTIMATED CHANGES Modified Mathlib/Data/Finset/Defs.lean 2025-12-11 07:09:52 118bff1 feat(CategoryTheory): right Bousfield localization (#32469) This PR dualises definitions and basic results about `ObjectProperty.isLocal` and `MorphismProperty.isLocal`. The dual definitions are named `ObjectProperty.isColocal` and `MorphismProperty.isColocal`. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Localization/Adjunction.lean + theorem CategoryTheory.Adjunction.isLocalization' Modified Mathlib/CategoryTheory/Localization/Bousfield.lean + theorem CategoryTheory.MorphismProperty.le_isColocal_isColocal + theorem CategoryTheory.ObjectProperty.galoisConnection_isColocal + def CategoryTheory.ObjectProperty.isColocal + theorem CategoryTheory.ObjectProperty.isColocal_adj_counit_app + theorem CategoryTheory.ObjectProperty.isColocal_eq_inverseImage_isomorphisms + theorem CategoryTheory.ObjectProperty.isColocal_iff_isIso + theorem CategoryTheory.ObjectProperty.isColocal_iff_isIso_map + theorem CategoryTheory.ObjectProperty.isColocal_of_isIso + theorem CategoryTheory.ObjectProperty.isLocalization_isColocal + theorem CategoryTheory.ObjectProperty.isoClosure_isColocal + theorem CategoryTheory.ObjectProperty.le_isColocal_iff + theorem CategoryTheory.ObjectProperty.le_isColocal_isColocal Modified Mathlib/CategoryTheory/Localization/Opposite.lean + theorem CategoryTheory.Functor.IsLocalization.op_iff - theorem CategoryTheory.Functor.op_iff Modified Mathlib/CategoryTheory/MorphismProperty/Basic.lean + theorem CategoryTheory.MorphismProperty.op_inverseImage + theorem CategoryTheory.MorphismProperty.op_isomorphisms Modified Mathlib/CategoryTheory/ObjectProperty/Local.lean + def CategoryTheory.MorphismProperty.isColocal + theorem CategoryTheory.MorphismProperty.isColocal_iff Modified Mathlib/CategoryTheory/Triangulated/Orthogonal.lean + theorem CategoryTheory.ObjectProperty.isColocal_trW + theorem CategoryTheory.ObjectProperty.leftOrthogonal.map_bijective_of_isTriangulated 2025-12-11 06:55:05 b6513d2 feat(CategoryTheory): more preservation properties of functors (#32423) We consider the preservation of a limit or a colimit as an `ObjectProperty` in the category of functors. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/ObjectProperty/FunctorCategory/PreservesLimits.lean + theorem CategoryTheory.ObjectProperty.congr_preservesColimit + theorem CategoryTheory.ObjectProperty.congr_preservesColimitsOfShape + theorem CategoryTheory.ObjectProperty.congr_preservesLimit + theorem CategoryTheory.ObjectProperty.congr_preservesLimitsOfShape + theorem CategoryTheory.ObjectProperty.preservesColimit_iff + theorem CategoryTheory.ObjectProperty.preservesColimitsOfShape_eq_iSup + theorem CategoryTheory.ObjectProperty.preservesColimitsOfShape_iff + theorem CategoryTheory.ObjectProperty.preservesFiniteColimits_iff + theorem CategoryTheory.ObjectProperty.preservesLimit_iff + theorem CategoryTheory.ObjectProperty.preservesLimitsOfShape_eq_iSup 2025-12-11 00:39:58 f9a3323 feat(CategoryTheory): monomorphisms in Type are stable under coproducts (#32515) We develop the API regarding colimit cofans in the category of types, and we apply it in order to show that monomorphisms are stable under coproducts in the category of types. From https://github.com/joelriou/topcat-model-category ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Limits/Shapes/Products.lean + theorem CategoryTheory.Limits.Pi.map_π + theorem CategoryTheory.Limits.Sigma.ι_map Modified Mathlib/CategoryTheory/Limits/Types/ColimitType.lean + theorem CategoryTheory.Functor.CoconeTypes.IsColimit.iff_bijective Modified Mathlib/CategoryTheory/Limits/Types/Coproducts.lean + def CategoryTheory.Limits.Cofan.cofanTypes + theorem CategoryTheory.Limits.Cofan.eq_of_inj_apply_eq_of_isColimit + theorem CategoryTheory.Limits.Cofan.inj_injective_of_isColimit + theorem CategoryTheory.Limits.Cofan.inj_jointly_surjective_of_isColimit + theorem CategoryTheory.Limits.Cofan.isColimit_cofanTypes_iff + theorem CategoryTheory.Limits.Cofan.nonempty_isColimit_iff_bijective_fromSigma + theorem CategoryTheory.Limits.CofanTypes.bijective_fromSigma_of_isColimit + theorem CategoryTheory.Limits.CofanTypes.eq_of_inj_apply_eq_of_isColimit + theorem CategoryTheory.Limits.CofanTypes.equivOfIsColimit_apply + theorem CategoryTheory.Limits.CofanTypes.equivOfIsColimit_symm_apply + def CategoryTheory.Limits.CofanTypes.fromSigma + theorem CategoryTheory.Limits.CofanTypes.inj_injective_of_isColimit + theorem CategoryTheory.Limits.CofanTypes.inj_jointly_surjective_of_isColimit + theorem CategoryTheory.Limits.CofanTypes.isColimit_iff_bijective_fromSigma + theorem CategoryTheory.Limits.CofanTypes.isColimit_mk + theorem CategoryTheory.Limits.CofanTypes.isColimit_sigma + def CategoryTheory.Limits.CofanTypes.sigma + theorem CategoryTheory.Limits.CofanTypes.sigma_inj Modified Mathlib/CategoryTheory/Types/Monomorphisms.lean 2025-12-11 00:39:56 c56c733 feat(CategoryTheory/Sites): the category structure on the points of a site (#31711) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/CategoryTheory/Sites/Point/Basic.lean + theorem CategoryTheory.GrothendieckTopology.Point.presheafFiber_hom_ext + theorem CategoryTheory.GrothendieckTopology.Point.toPresheafFiber_presheafFiberDesc Added Mathlib/CategoryTheory/Sites/Point/Category.lean + theorem CategoryTheory.GrothendieckTopology.Point.Hom.presheafFiber_comp + theorem CategoryTheory.GrothendieckTopology.Point.Hom.presheafFiber_id + theorem CategoryTheory.GrothendieckTopology.Point.Hom.sheafFiber_comp + theorem CategoryTheory.GrothendieckTopology.Point.Hom.sheafFiber_id + structure CategoryTheory.GrothendieckTopology.Point.Hom + theorem CategoryTheory.GrothendieckTopology.Point.comp_hom + theorem CategoryTheory.GrothendieckTopology.Point.hom_ext + theorem CategoryTheory.GrothendieckTopology.Point.id_hom Modified docs/references.bib 2025-12-11 00:09:12 6789ae6 doc(undergrad/overview): add test functions and distributions (#32707) ESTIMATED CHANGES Modified docs/overview.yaml Modified docs/undergrad.yaml 2025-12-11 00:09:10 6fe0071 refactor: re-prove Euler's partition theorem from Glaisher's theorem (#31873) Less code to maintain is good. I hope the authors of the original proof are fine with this... ESTIMATED CHANGES Modified Archive.lean Deleted Archive/Wiedijk100Theorems/Partition.lean - theorem Theorems100.coeff_indicator - theorem Theorems100.coeff_indicator_neg - theorem Theorems100.coeff_indicator_pos - theorem Theorems100.constantCoeff_indicator - theorem Theorems100.distinctGF_prop - def Theorems100.indicatorSeries - def Theorems100.mkOdd - theorem Theorems100.num_series' - theorem Theorems100.oddGF_prop - def Theorems100.partialDistinctGF - theorem Theorems100.partialDistinctGF_prop - theorem Theorems100.partialGF_prop - def Theorems100.partialOddGF - theorem Theorems100.partialOddGF_prop - theorem Theorems100.partition_theorem - theorem Theorems100.same_coeffs - theorem Theorems100.same_gf - theorem Theorems100.two_series Modified Mathlib/Combinatorics/Enumerative/Partition/Basic.lean + theorem Nat.Partition.countRestricted_two Modified Mathlib/Combinatorics/Enumerative/Partition/Glaisher.lean + theorem Nat.Partition.card_odds_eq_card_distincts Modified docs/100.yaml Modified docs/1000.yaml 2025-12-10 23:03:57 d39a7b8 chore: test `initialize` in private module linter (#32695) Tests (and adds a line of documentation explaining) that declarations created by `initialize` indeed ought to be considered public by the `privateModule` linter, and that a file containing only an `initialize` should silence the linter. ESTIMATED CHANGES Modified Mathlib/Tactic/Linter/PrivateModule.lean Added MathlibTest/PrivateModuleLinter/initialize.lean 2025-12-10 21:53:09 9e508f5 feat(CategoryTheory): the opposite of a triangulated category is triangulated (#32535) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/CategoryTheory/Shift/Basic.lean + theorem CategoryTheory.shiftFunctorComm_hom_app_of_add_eq_zero + theorem CategoryTheory.shiftFunctorComm_inv_app_of_add_eq_zero Modified Mathlib/CategoryTheory/Triangulated/Opposite/Basic.lean + theorem CategoryTheory.Pretriangulated.opShiftFunctorEquivalenceSymmHomEquiv_apply + theorem CategoryTheory.Pretriangulated.opShiftFunctorEquivalenceSymmHomEquiv_left_inv + theorem CategoryTheory.Pretriangulated.shiftFunctorCompIsoId_op_hom_app + theorem CategoryTheory.Pretriangulated.shiftFunctorCompIsoId_op_inv_app + theorem CategoryTheory.Pretriangulated.shift_opShiftFunctorEquivalenceSymmHomEquiv_unop + theorem CategoryTheory.Pretriangulated.shift_opShiftFunctorEquivalence_counitIso_inv_app Modified Mathlib/CategoryTheory/Triangulated/Opposite/Pretriangulated.lean Added Mathlib/CategoryTheory/Triangulated/Opposite/Triangulated.lean Modified Mathlib/CategoryTheory/Triangulated/Pretriangulated.lean + theorem CategoryTheory.Pretriangulated.Triangle.shift_distinguished_iff 2025-12-10 20:52:10 89111f4 feat(Geometry/Euclidean/Incenter): `orthRadius` lemmas (#31733) Add lemmas, in the case where the dimensions are such that the simplex spans the whole space, exspheres are not merely tangent to the faces but the faces are the full tangent spaces (`orthRadius`). ESTIMATED CHANGES Modified Mathlib/Geometry/Euclidean/Incenter.lean + theorem Affine.Simplex.ExcenterExists.affineSpan_faceOpposite_eq_orthRadius + theorem Affine.Simplex.affineSpan_faceOpposite_eq_orthRadius_insphere + theorem Affine.Triangle.affineSpan_pair_eq_orthRadius + theorem Affine.Triangle.affineSpan_pair_eq_orthRadius_insphere 2025-12-10 20:35:28 81721b4 feat(Analysis/Distribution): composition of temperate growth functions (#32297) Proves that the composition of temperate growth functions is again of temperate growth. We have to use the explicit bounds, because we want to have the case that the outer function `g` is only temperate on the image of the inner function `f`, to be able to apply this result for `f x = 1 + |x|^2` and `g x = x ^ r` for any real `r`. ESTIMATED CHANGES Modified Mathlib/Analysis/Distribution/SchwartzSpace.lean Modified Mathlib/Analysis/Distribution/TemperateGrowth.lean + theorem Function.HasTemperateGrowth.comp' + theorem Function.HasTemperateGrowth.comp 2025-12-10 18:38:52 e549dc0 feat(Trigonometry): add tanh_eq (#32694) Add `tanh_eq`, which is the counterpart of `sinh_eq` and `cosh_eq`. ESTIMATED CHANGES Modified Mathlib/Analysis/Complex/Trigonometric.lean + theorem Real.tanh_eq 2025-12-10 18:38:50 255f610 feat(Topology/AddCircle): remove `0 < p` condition from `finite_torsion` (#32691) ESTIMATED CHANGES Modified Mathlib/Topology/Instances/AddCircle/Defs.lean +/- theorem AddCircle.finite_torsion 2025-12-10 18:38:48 fa9f474 feat(Combinatorics/SimpleGraph/Walk): lemmas about the first and last darts/edges (#31416) ESTIMATED CHANGES Modified Mathlib/Combinatorics/SimpleGraph/Acyclic.lean Modified Mathlib/Combinatorics/SimpleGraph/Paths.lean +/- theorem SimpleGraph.Walk.IsPath.eq_penultimate_of_mem_edges +/- theorem SimpleGraph.Walk.IsPath.eq_snd_of_mem_edges Modified Mathlib/Combinatorics/SimpleGraph/Walks/Basic.lean + theorem SimpleGraph.Walk.darts_eq_nil + theorem SimpleGraph.Walk.edges_eq_nil - theorem SimpleGraph.Walk.getLast_darts_snd - theorem SimpleGraph.Walk.head_darts_fst Modified Mathlib/Combinatorics/SimpleGraph/Walks/Traversal.lean + theorem SimpleGraph.Walk.firstDart_eq_head_darts + theorem SimpleGraph.Walk.firstDart_mem_darts + theorem SimpleGraph.Walk.getLast_darts_eq_lastDart + theorem SimpleGraph.Walk.getLast_darts_snd + theorem SimpleGraph.Walk.getLast_edges_eq_mk_penultimate_end + theorem SimpleGraph.Walk.head_darts_eq_firstDart + theorem SimpleGraph.Walk.head_darts_fst + theorem SimpleGraph.Walk.head_edges_eq_mk_start_snd + theorem SimpleGraph.Walk.lastDart_eq_getLast_darts + theorem SimpleGraph.Walk.lastDart_mem_darts + theorem SimpleGraph.Walk.mk_penultimate_end_eq_getLast_edges + theorem SimpleGraph.Walk.mk_penultimate_end_mem_edges + theorem SimpleGraph.Walk.mk_start_snd_eq_head_edges + theorem SimpleGraph.Walk.mk_start_snd_mem_edges + theorem SimpleGraph.Walk.penultimate_mem_dropLast_support + theorem SimpleGraph.Walk.snd_eq_support_getElem_one + theorem SimpleGraph.Walk.support_getElem_eq_getVert + theorem SimpleGraph.Walk.support_getElem_length_sub_one_eq_penultimate + theorem SimpleGraph.Walk.support_getElem_one 2025-12-10 18:06:12 3ae4a54 chore: use `Set.Nonempty` in ProperlyDiscontinuous (#32693) addresses a TODO ESTIMATED CHANGES Modified Mathlib/Topology/Algebra/ConstMulAction.lean Modified Mathlib/Topology/Algebra/Group/Basic.lean Modified Mathlib/Topology/Algebra/ProperAction/ProperlyDiscontinuous.lean 2025-12-10 17:42:09 dde6db9 refactor: add gcongr tag to IsMeagre.mono (#32686) Note that to add the `gcongr` attribute we are required to reorder the last two arguments of `IsMeagre.mono`. ESTIMATED CHANGES Modified Mathlib/Topology/GDelta/Basic.lean +/- theorem IsMeagre.mono 2025-12-10 17:42:06 9afedb2 feat(Analysis/Calculus): norm bound for iterated derivatives of composition with CLM (#32572) ESTIMATED CHANGES Modified Mathlib/Analysis/Calculus/ContDiff/Bounds.lean + theorem ContinuousLinearMap.norm_iteratedFDerivWithin_comp_left + theorem ContinuousLinearMap.norm_iteratedFDeriv_comp_left 2025-12-10 17:42:01 f5f630e chore(RingTheory/MvPolynomial): weaken IsCancelMulZero to NoZeroDivisors in `degree_mul` and related lemmas. (#32558) As observed [on Zulip](https://leanprover.zulipchat.com/#narrow/channel/116395-maths/topic/IsCancelMulZero.20and.20NoZeroDivisors.20for.20semirings/near/562327698) `NoZeroDivisors` is a strictly weaker assumption than `IsCancelMulZero`. ESTIMATED CHANGES Modified Mathlib/RingTheory/MvPolynomial/MonomialOrder.lean +/- theorem MonomialOrder.degree_mul' +/- theorem MonomialOrder.degree_mul +/- theorem MonomialOrder.degree_prod +/- theorem MonomialOrder.leadingCoeff_mul +/- theorem MonomialOrder.sPolynomial_mul_monomial Modified Mathlib/RingTheory/MvPolynomial/MonomialOrder/DegLex.lean 2025-12-10 16:38:28 5df521b feat(Data/Set): a function surjective on univ is surjective (#32655) ESTIMATED CHANGES Modified Mathlib/Data/Set/Function.lean + theorem Set.SurjOn.surjective 2025-12-10 16:38:26 ed8f8ad feat(Analysis): `HasFPowerSeriesOnBall (fun x ↦ 1 / (1 - x))` and friends (#32373) ESTIMATED CHANGES Modified Mathlib/Analysis/Analytic/Binomial.lean + theorem Complex.hasFPowerSeriesOnBall_ofScalars_mul_add_zero + theorem Complex.one_add_cpow_hasFPowerSeriesAt_zero + theorem Complex.one_add_cpow_hasFPowerSeriesOnBall_zero + theorem Complex.one_div_one_sub_cpow_hasFPowerSeriesOnBall_zero + theorem Complex.one_div_one_sub_hasFPowerSeriesOnBall_zero + theorem Complex.one_div_one_sub_pow_hasFPowerSeriesOnBall_zero + theorem Complex.one_div_one_sub_sq_hasFPowerSeriesOnBall_zero + theorem Complex.one_div_sub_hasFPowerSeriesOnBall_zero + theorem Complex.one_div_sub_pow_hasFPowerSeriesOnBall_zero + theorem Complex.one_div_sub_sq_hasFPowerSeriesOnBall_zero + theorem Complex.one_div_sub_sq_sub_one_div_sq_hasFPowerSeriesOnBall_zero + theorem Real.hasFPowerSeriesOnBall_linear_zero + theorem Real.one_add_rpow_hasFPowerSeriesAt_zero + theorem Real.one_add_rpow_hasFPowerSeriesOnBall_zero + theorem Real.one_div_one_sub_hasFPowerSeriesOnBall_zero + theorem Real.one_div_one_sub_rpow_hasFPowerSeriesOnBall_zero + theorem Real.one_div_one_sub_sq_hasFPowerSeriesOnBall_zero + theorem Real.one_div_sub_hasFPowerSeriesOnBall_zero + theorem Real.one_div_sub_pow_hasFPowerSeriesOnBall_zero + theorem Real.one_div_sub_sq_hasFPowerSeriesOnBall_zero - theorem one_add_cpow_hasFPowerSeriesAt_zero - theorem one_add_cpow_hasFPowerSeriesOnBall_zero - theorem one_add_rpow_hasFPowerSeriesAt_zero - theorem one_add_rpow_hasFPowerSeriesOnBall_zero Modified Mathlib/Analysis/Analytic/OfScalars.lean + theorem FormalMultilinearSeries.ofScalars_sub 2025-12-10 16:23:27 98e05ab feat(RingTheory/Smooth): smooth algebras are flat (#12695) We show that smooth ring homomorphisms are flat. The strategy for a smooth `A`-algebra `B` is the following: - first we find a model of `B` over a Noetherian base ring - if `A` is Noetherian, we identify `B` as a retract of the adic completion of a polynomial ring over `A`, which is flat This is the summary PR which will be split in several parts. ESTIMATED CHANGES Modified Mathlib/RingTheory/Smooth/Flat.lean 2025-12-10 15:34:00 460512e feat(CategoryTheory/Sites/Hypercover): pre-`1`-hypercover obtained by taking coproducts of the components (#32578) We show that satisfying the sheaf condition for a pre-`1`-hypercover `E` is the same as satisfying the sheaf condition for `E` collapsed to a single object covering by taking coproducts. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Limits/Shapes/Equalizers.lean + def CategoryTheory.Limits.Fork.equivOfIsos + theorem CategoryTheory.Limits.Fork.equivOfIsos_functor_obj_ι + theorem CategoryTheory.Limits.Fork.equivOfIsos_inverse_obj_ι Modified Mathlib/CategoryTheory/Limits/Shapes/Multiequalizer.lean + def CategoryTheory.Limits.Multicofork.isoOfπ + def CategoryTheory.Limits.MulticospanIndex.multiforkOfParallelHomsEquivFork + theorem CategoryTheory.Limits.MulticospanIndex.multiforkOfParallelHomsEquivFork_functor_obj_ι + theorem CategoryTheory.Limits.MulticospanIndex.multiforkOfParallelHomsEquivFork_inverse_obj_ι + def CategoryTheory.Limits.MulticospanIndex.ofParallelHoms + def CategoryTheory.Limits.Multifork.ext + def CategoryTheory.Limits.Multifork.isLimitEquivOfIsos + def CategoryTheory.Limits.Multifork.isoOfι + theorem CategoryTheory.Limits.Multifork.ι_ofι + def CategoryTheory.Limits.WalkingMulticospan.functorExt + def CategoryTheory.Limits.WalkingMultispan.functorExt Modified Mathlib/CategoryTheory/Limits/Shapes/Products.lean + def CategoryTheory.Limits.Cofan.isColimitMkOfUnique + def CategoryTheory.Limits.Fan.isLimitMkOfUnique Modified Mathlib/CategoryTheory/Sites/Hypercover/One.lean + def CategoryTheory.PreOneHypercover.Y' + theorem CategoryTheory.PreOneHypercover.Y'_apply + def CategoryTheory.PreOneHypercover.forkOfIsColimit + theorem CategoryTheory.PreOneHypercover.forkOfIsColimit_ι_map_inj + def CategoryTheory.PreOneHypercover.isLimitSigmaOfIsColimitEquiv + theorem CategoryTheory.PreOneHypercover.multifork_ι + theorem CategoryTheory.PreOneHypercover.p₁_sigmaOfIsColimit + theorem CategoryTheory.PreOneHypercover.p₂_sigmaOfIsColimit + def CategoryTheory.PreOneHypercover.sigmaOfIsColimit Modified Mathlib/CategoryTheory/Sites/Hypercover/Zero.lean + theorem CategoryTheory.PreZeroHypercover.inj_sigmaOfIsColimit_f + def CategoryTheory.PreZeroHypercover.sigmaOfIsColimit Modified Mathlib/CategoryTheory/Sites/Limits.lean 2025-12-10 14:41:53 3fc5898 perf: revert #32623 for performance regression (#32690) This PR caused a large performance regression: revert this PR for now. It can be re-landed if the performance issue is fixed. ESTIMATED CHANGES Modified Mathlib/Algebra/Category/ModuleCat/ChangeOfRings.lean 2025-12-10 14:41:51 b3fc917 feat: add tanh_arsinh and tanh_arcosh (#32680) ESTIMATED CHANGES Modified Mathlib/Analysis/SpecialFunctions/Arcosh.lean + theorem Real.tanh_arcosh Modified Mathlib/Analysis/SpecialFunctions/Arsinh.lean + theorem Real.tanh_arsinh 2025-12-10 14:41:49 0b868fa feat(Data/Finsupp): characterise `default` (#32592) ESTIMATED CHANGES Modified Mathlib/Algebra/MvPolynomial/Nilpotent.lean Modified Mathlib/Data/Finsupp/Defs.lean + theorem Finsupp.default_eq_zero 2025-12-10 14:41:47 e583d3b doc: fix typos in the docstring of `Sigmoid` (#32580) Fix typos in the docstring of Sigmoid. ESTIMATED CHANGES Modified Mathlib/Analysis/SpecialFunctions/Sigmoid.lean 2025-12-10 13:34:11 ceec959 chore: fix linter.mathlibStandardSet docstring (#32687) ESTIMATED CHANGES Modified Mathlib/Init.lean 2025-12-10 12:19:07 6a1ee19 chore: typos in `Distributions` folder (#32683) ESTIMATED CHANGES Modified Mathlib/Analysis/Distribution/Distribution.lean Modified Mathlib/Analysis/Distribution/TestFunction.lean 2025-12-10 12:01:15 1a5be99 doc: fix instances of "the the" (#32685) ESTIMATED CHANGES Modified Mathlib/AlgebraicGeometry/Sites/Pretopology.lean Modified Mathlib/CategoryTheory/Monad/Comonadicity.lean Modified Mathlib/CategoryTheory/Triangulated/Pretriangulated.lean Modified Mathlib/MeasureTheory/Integral/IntervalIntegral/Periodic.lean Modified Mathlib/RingTheory/GradedAlgebra/Homogeneous/Submodule.lean Modified Mathlib/RingTheory/Smooth/Basic.lean 2025-12-10 11:46:24 9e3ecf1 feat(LinearAlgebra/PiTensorProduct): add basis for `PiTensorProduct` and map for the tensor product of dual space (#32613) Constructs a basis for `PiTensorProduct` given bases for the component spaces and defines maps between the tensor product of dual spaces and the dual of a tensor product. Main definitions: * `Basis.piTensorProduct`: Given bases `b : Π i, Basis (κ i) R (M i)` for each component space `M i`, constructs a basis for `⨂[R] i, M i` indexed by `Π i, κ i` defined by sending `p : Π i, κ i` to `⨂ₜ[R] i, (b i) (p i)`. * `PiTensorProduct.dualDistrib`: The canonical linear map from `⨂[R] i, Dual R (M i)` to `Dual R (⨂[R] i, M i)`, sending `⨂ₜ[R] i, f i` to the composition of `PiTensorProduct.map f` with the linear equivalence `⨂[R] i, R →ₗ R` given by multiplication. * `PiTensorProduct.dualDistribEquiv`: A linear equivalence between `⨂[R] i, Dual R (M i)` and `Dual R (⨂[R] i, M i)` when all `M i` are finite free modules. If `f : (i : ι) → Dual R (M i)`, then this equivalence sends `⨂ₜ[R] i, f i` to the composition of `PiTensorProduct.map f` with the natural isomorphism `⨂[R] i, R ≃ R` given by multiplication. - [x] depends on: #32456 ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/LinearAlgebra/PiTensorProduct/Basis.lean + theorem Basis.piTensorProduct_apply + theorem Basis.piTensorProduct_repr_tprod_apply Added Mathlib/LinearAlgebra/PiTensorProduct/Dual.lean + theorem PiTensorProduct.dualDistribInvOfBasis_apply + theorem PiTensorProduct.dualDistrib_apply + theorem PiTensorProduct.dualDistrib_dualDistribInvOfBasis_left_inverse + theorem PiTensorProduct.dualDistrib_dualDistribInvOfBasis_right_inverse 2025-12-10 10:44:20 f321aeb chore(Topology): move `Covering` to `Covering/Basic` (#32681) #7596 will add further files `AddCircle` and `Quotient` in the same directory. ESTIMATED CHANGES Modified Mathlib.lean Renamed Mathlib/Topology/Covering.lean to Mathlib/Topology/Covering/Basic.lean Modified Mathlib/Topology/Homotopy/Lifting.lean 2025-12-10 08:49:26 5745c55 refactor(FieldTheory/IsAlgClosed/Basic): deprecate `IsAlgClosed.splits_codomain` (#32632) This PR deprecates `IsAlgClosed.splits_codomain` since it is just a special case of `IsAlgClosed.splits`. ESTIMATED CHANGES Modified Archive/Wiedijk100Theorems/AbelRuffini.lean Modified Mathlib/Analysis/Complex/Polynomial/Basic.lean Modified Mathlib/FieldTheory/IsAlgClosed/Basic.lean Modified Mathlib/FieldTheory/PrimitiveElement.lean Modified Mathlib/FieldTheory/SeparableDegree.lean Modified Mathlib/NumberTheory/NumberField/InfinitePlace/Basic.lean Modified Mathlib/NumberTheory/NumberField/InfinitePlace/Embeddings.lean Modified Mathlib/RingTheory/IntegralClosure/IntegralRestrict.lean Modified Mathlib/RingTheory/Norm/Transitivity.lean Modified Mathlib/RingTheory/Trace/Basic.lean 2025-12-10 08:21:13 273f7db feat(CategoryTheory): categories of presheaves are locally presentable (#30247) If `C` is a `w`-small category and `A` is locally `κ`-presentable, then the category `Cᵒᵖ ⥤ Type w` is locally `κ`-presentable; in particular, the category of presheaves of types on a small category is locally (finitely) presentable. (Currently, we formalise this under the additional assumption that `A` has pullbacks. This assumption shall be removed in the future as a locally presentable category is complete.) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/CategoryTheory/EssentiallySmall.lean Added Mathlib/CategoryTheory/Generator/Type.lean + theorem CategoryTheory.Types.isSeparator_punit Modified Mathlib/CategoryTheory/ObjectProperty/Basic.lean + theorem CategoryTheory.ObjectProperty.ofObj_subtypeVal Modified Mathlib/CategoryTheory/Presentable/OrthogonalReflection.lean Added Mathlib/CategoryTheory/Presentable/Presheaf.lean + theorem CategoryTheory.Presheaf.isStrongGenerator 2025-12-10 07:37:34 44cd214 feat(Data/Nat/ModEq): Add modEq_iff_add_fac (#32543) Add a lemma `Nat.modEq_iff_add_fac` which is analogous to `Int.modEq_iff_add_fac`. This lemma came up in some proof. ESTIMATED CHANGES Modified Mathlib/Data/Nat/ModEq.lean + theorem Nat.modEq_iff_exists_eq_add 2025-12-10 07:09:28 d0cc826 feat(Algebra/Homology): the opposite category of cochain complexes (#32476) We construct an equivalence of categories `CochainComplex.opEquivalence C` between `(CochainComplex C ℤ)ᵒᵖ` and `CochainComplex Cᵒᵖ ℤ`, and we show that two morphisms in `CochainComplex C ℤ` are homotopic iff they are homotopic as morphisms in `CochainComplex Cᵒᵖ ℤ`. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Homology/CochainComplexOpposite.lean + def ChainComplex.cochainComplexEquivalence + def CochainComplex.homotopyOp + def CochainComplex.homotopyOpEquiv + theorem CochainComplex.homotopyOp_hom_eq + def CochainComplex.homotopyUnop + theorem CochainComplex.homotopyUnop_hom_eq + def CochainComplex.opEquivalence + def ComplexShape.embeddingDownIntUpInt + def ComplexShape.embeddingUpIntDownInt 2025-12-10 06:35:53 91744e6 feat: derivatives of meromorphic functions are meromorphic (#32385) Show that (iterated) derivatives of meromorphic functions are again meromorphic. ESTIMATED CHANGES Modified Mathlib/Analysis/Calculus/Deriv/Basic.lean + theorem Filter.EventuallyEq.nhdsNE_deriv Modified Mathlib/Analysis/Calculus/FDeriv/Analytic.lean +/- theorem AnalyticAt.iterated_deriv Modified Mathlib/Analysis/Meromorphic/Basic.lean + theorem MeromorphicAt.fun_deriv + theorem MeromorphicAt.fun_iterated_deriv + theorem MeromorphicAt.iterated_deriv + theorem MeromorphicOn.fun_deriv + theorem MeromorphicOn.fun_iterated_deriv + theorem MeromorphicOn.iterated_deriv Modified Mathlib/Topology/Separation/Basic.lean + theorem eventually_nhdsNE_eventually_nhds_iff + theorem eventually_nhdsWithin_eventually_nhds_iff_of_isOpen 2025-12-10 05:47:34 fbe83d4 chore(RingTheory/HahnSeries): use `where` notation (#32669) This declutters the code quite significantly in some places. ESTIMATED CHANGES Modified Mathlib/RingTheory/HahnSeries/Addition.lean Modified Mathlib/RingTheory/HahnSeries/Multiplication.lean 2025-12-10 05:47:32 db868ac chore(LinearAlgebra/TensorProduct): remove use of `erw` in `quotientTensorEquiv` (#32634) ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/TensorProduct/Quotient.lean 2025-12-10 05:47:30 a572714 feat(NumberTheory/MahlerMeasure): Northcott's Theorem (#31732) In this file we prove Northcott's Theorem ``` theorem finite_mahlerMeasure_le (n : ℕ) (B : ℝ≥0) : Set.Finite {p : ℤ[X] | p.natDegree ≤ n ∧ (p.map (Int.castRingHom ℂ)).mahlerMeasure ≤ B} ``` and an explicit bound ``` theorem card_mahlerMeasure_le_prod (n : ℕ) (B : ℝ≥0) : Set.ncard {p : ℤ[X] | p.natDegree ≤ n ∧ (p.map (Int.castRingHom ℂ)).mahlerMeasure ≤ B} ≤ ∏ i : Fin (n + 1), (2 * ⌊n.choose i * B⌋₊ + 1) ``` ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Data/Set/Card.lean + theorem Set.ncard_congr' Added Mathlib/NumberTheory/MahlerMeasure.lean + theorem Polynomial.card_eq_of_natDegree_le_of_coeff_le + theorem Polynomial.card_mahlerMeasure_le_prod + theorem Polynomial.finite_mahlerMeasure_le + theorem Polynomial.one_le_mahlerMeasure_of_ne_zero 2025-12-10 05:47:27 8c63b23 feat(Geometry/Euclidean/Similarity): add triangle similarity (#31062) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Geometry/Euclidean/Similarity.lean + theorem EuclideanGeometry.similar_of_angle_angle + theorem EuclideanGeometry.similar_of_side_angle_side + theorem Similar.angle_eq + theorem Similar.angle_eq_all Modified Mathlib/Topology/MetricSpace/Similarity.lean + theorem Similar.comm_left + theorem Similar.comm_right + theorem Similar.reverse_of_three + theorem similar_iff_exists_pos_dist_eq + theorem similar_iff_exists_pos_pairwise_dist_eq + theorem similar_of_dist_mul_eq_dist_mul_eq 2025-12-10 05:47:25 b2b2fc9 feat(Combinatorics): the Katona circle method (#22701) This file formalizes the Katona circle method. From PlainCombi (LeanCamCombi): https://github.com/YaelDillies/LeanCamCombi/blob/master/LeanCamCombi/PlainCombi/KatonaCircle.lean ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Combinatorics/KatonaCircle.lean + theorem Fintype.card_numbering + theorem Numbering.IsPrefix.subset_of_card_le_card + def Numbering.IsPrefix + theorem Numbering.card_prefixed + theorem Numbering.dens_prefixed + theorem Numbering.disjoint_prefixed_prefixed + theorem Numbering.mem_prefixed + def Numbering.prefixed + def Numbering.prefixedEquiv 2025-12-10 04:42:57 64832b9 feat: product of immersions is an immersion (#28853) ESTIMATED CHANGES Modified Mathlib/Data/Set/Prod.lean + theorem Set.EqOn.left_of_eqOn_prodMap + theorem Set.EqOn.prodMap + theorem Set.EqOn.right_of_eqOn_prodMap + theorem Set.eqOn_prodMap_iff + theorem Set.eqOn_prod_iff Modified Mathlib/Geometry/Manifold/Immersion.lean + theorem Manifold.IsImmersion.prodMap + theorem Manifold.IsImmersionAt.prodMap + theorem Manifold.IsImmersionAtOfComplement.prodMap + theorem Manifold.IsImmersionOfComplement.prodMap Modified Mathlib/Geometry/Manifold/IsManifold/Basic.lean + theorem IsManifold.mem_maximalAtlas_iff + theorem IsManifold.mem_maximalAtlas_prod Modified Mathlib/Geometry/Manifold/IsManifold/ExtChartAt.lean + theorem OpenPartialHomeomorph.extend_prod Modified Mathlib/Geometry/Manifold/LocalSourceTargetProperty.lean +/- theorem Manifold.LiftSourceTargetPropertyAt.codChart_mem_maximalAtlas +/- theorem Manifold.LiftSourceTargetPropertyAt.domChart_mem_maximalAtlas +/- theorem Manifold.LiftSourceTargetPropertyAt.mem_codChart_source +/- theorem Manifold.LiftSourceTargetPropertyAt.mem_domChart_source + theorem Manifold.LiftSourceTargetPropertyAt.prodMap +/- theorem Manifold.LiftSourceTargetPropertyAt.property Modified Mathlib/Topology/OpenPartialHomeomorph/Constructions.lean + theorem OpenPartialHomeomorph.prod_symm_trans_prod 2025-12-10 02:48:23 433c171 doc(LinearAlgebra): fix typos (#32663) Typos found and fixed by Codex. ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/AnnihilatingPolynomial.lean Modified Mathlib/LinearAlgebra/Basis/Submodule.lean Modified Mathlib/LinearAlgebra/Dimension/Finite.lean Modified Mathlib/LinearAlgebra/ExteriorAlgebra/Basic.lean Modified Mathlib/LinearAlgebra/ExteriorPower/Pairing.lean Modified Mathlib/LinearAlgebra/Goursat.lean Modified Mathlib/LinearAlgebra/Lagrange.lean Modified Mathlib/LinearAlgebra/LeftExact.lean Modified Mathlib/LinearAlgebra/LinearDisjoint.lean Modified Mathlib/LinearAlgebra/LinearPMap.lean Modified Mathlib/LinearAlgebra/Matrix/Gershgorin.lean Modified Mathlib/LinearAlgebra/Matrix/Irreducible/Defs.lean Modified Mathlib/LinearAlgebra/Multilinear/DirectSum.lean Modified Mathlib/LinearAlgebra/Reflection.lean Modified Mathlib/LinearAlgebra/RootSystem/GeckConstruction/Basic.lean Modified Mathlib/LinearAlgebra/SpecialLinearGroup.lean Modified Mathlib/LinearAlgebra/Trace.lean 2025-12-10 02:48:21 21c6094 chore: deprecate Nat.succ_mul_choose_eq (#32653) ESTIMATED CHANGES Modified Archive/Wiedijk100Theorems/BallotProblem.lean Modified Mathlib/Algebra/Polynomial/Eval/Degree.lean Modified Mathlib/Data/Nat/Choose/Basic.lean +/- theorem Nat.add_one_mul_choose_eq +/- theorem Nat.succ_mul_choose_eq Modified Mathlib/Data/Nat/Choose/Factorization.lean Modified Mathlib/Data/Nat/Choose/Multinomial.lean Modified Mathlib/Data/Nat/Multiplicity.lean Modified Mathlib/RingTheory/Polynomial/Bernstein.lean 2025-12-10 02:31:06 3d9f34a chore(Data/Finsupp): add deprecations for #32074 (#32650) The lemmas `Finsupp.degree_add` and `Finsupp.degree_zero` were removed in #32074 without deprecation. ESTIMATED CHANGES Modified Mathlib/Data/Finsupp/Weight.lean 2025-12-10 02:31:04 5bdc13f fix(scripts): use explicit refspec in create-adaptation-pr.sh (#32612) This PR fixes a bug in `create-adaptation-pr.sh` where `git push` fails with: ``` fatal: refs/remotes/nightly-testing/HEAD cannot be resolved to branch ``` This happens when the remote and branch share the same name (`nightly-testing`), causing git's ref resolution to get confused by the symbolic `refs/remotes/nightly-testing/HEAD` ref. Using an explicit `src:dst` refspec removes the ambiguity. 🤖 Prepared with Claude Code ESTIMATED CHANGES Modified scripts/create-adaptation-pr.sh 2025-12-10 02:31:02 7d38683 feat: InfiniteGalois.normalAutEquivQuotient (#32372) If `H` is a _closed_ normal subgroup of `Gal(K / k)`, then `Gal(fixedField H / k)` is isomorphic to `Gal(K / k) ⧸ H`. ESTIMATED CHANGES Modified Mathlib/FieldTheory/Galois/Infinite.lean + theorem InfiniteGalois.normalAutEquivQuotient_apply 2025-12-10 01:14:25 efae688 doc: fix typos found by codespell (#32407) Typos found by running codespell. Fixed with help from Codex. ESTIMATED CHANGES Modified Archive/Examples/Kuratowski.lean Modified Mathlib/Algebra/Group/Int/Defs.lean Modified Mathlib/Algebra/SkewPolynomial/Basic.lean Modified Mathlib/Analysis/Distribution/TestFunction.lean Modified Mathlib/CategoryTheory/Bicategory/Functor/StrictPseudofunctor.lean Modified Mathlib/CategoryTheory/ConcreteCategory/BundledHom.lean Modified Mathlib/CategoryTheory/ConcreteCategory/UnbundledHom.lean Modified Mathlib/CategoryTheory/Sites/Descent/IsPrestack.lean Modified Mathlib/CategoryTheory/Sites/Point/Basic.lean Modified Mathlib/Combinatorics/SimpleGraph/Connectivity/Connected.lean Modified Mathlib/Data/Fin/Tuple/Basic.lean Modified Mathlib/Data/List/Chain.lean Modified Mathlib/Geometry/Manifold/Immersion.lean Modified Mathlib/Geometry/Manifold/SmoothApprox.lean Modified Mathlib/GroupTheory/FreeGroup/Orbit.lean Modified Mathlib/LinearAlgebra/Contraction.lean Modified Mathlib/LinearAlgebra/Matrix/PosDef.lean Modified Mathlib/LinearAlgebra/SpecialLinearGroup.lean Modified Mathlib/LinearAlgebra/SymmetricAlgebra/Basic.lean Modified Mathlib/MeasureTheory/Integral/CurveIntegral/Basic.lean Modified Mathlib/NumberTheory/ModularForms/EisensteinSeries/QExpansion.lean Modified Mathlib/Order/Lattice/Congruence.lean Modified Mathlib/RingTheory/Congruence/Hom.lean Modified Mathlib/RingTheory/Extension/Presentation/Basic.lean Modified Mathlib/Tactic/Order/ToInt.lean Modified Mathlib/Tactic/Simproc/ExistsAndEq.lean Modified Mathlib/Tactic/Translate/Core.lean Modified Mathlib/Tactic/Translate/ToDual.lean Modified Mathlib/Topology/Algebra/IsUniformGroup/Defs.lean Modified Mathlib/Topology/Algebra/Module/PointwiseConvergence.lean Modified Mathlib/Topology/CWComplex/Classical/Subcomplex.lean Modified Mathlib/Topology/EMetricSpace/PairReduction.lean Modified Mathlib/Topology/Homotopy/LocallyContractible.lean Modified MathlibTest/EmptyLine.lean Modified MathlibTest/FieldSimp.lean Modified MathlibTest/ImportHeavyFlexibleLinter.lean Modified MathlibTest/ToDual.lean Modified MathlibTest/grind/lint.lean 2025-12-10 00:45:38 2dbb742 chore: fix performance regression in `normal_iSup` (#32662) PR #32574 inadvertently introduced a performance regression in `normal_iSup`. This PR aims to fix this. ESTIMATED CHANGES Modified Mathlib/FieldTheory/Normal/Basic.lean 2025-12-09 23:13:46 0c25ddf chore: golf using `grind` and `simp` (#32656) ESTIMATED CHANGES Modified Mathlib/Data/Finset/Card.lean Modified Mathlib/LinearAlgebra/LinearPMap.lean Modified Mathlib/LinearAlgebra/Quotient/Basic.lean +/- theorem Submodule.Quotient.nontrivial_of_lt_top +/- theorem Submodule.Quotient.nontrivial_of_ne_top 2025-12-09 23:13:44 79a77cb feat(Analysis): Schwartz functions are dense in Lp functions (#32566) ESTIMATED CHANGES Modified Mathlib/Analysis/Distribution/SchwartzSpace.lean + theorem SchwartzMap.denseRange_toLpCLM Modified Mathlib/Analysis/Normed/Lp/SmoothApprox.lean 2025-12-09 22:04:02 23398d9 doc(Probability): fix typos (#32649) This PR fixes a series of typos in the Probability directory that are (hopefully) easy to review and verify. ESTIMATED CHANGES Modified Mathlib/Probability/Independence/BoundedContinuousFunction.lean Modified Mathlib/Probability/Independence/CharacteristicFunction.lean Modified Mathlib/Probability/Kernel/IonescuTulcea/PartialTraj.lean Modified Mathlib/Probability/Kernel/RadonNikodym.lean Modified Mathlib/Probability/Martingale/Basic.lean Modified Mathlib/Probability/Martingale/BorelCantelli.lean 2025-12-09 22:04:00 e72ea5f fix(TacticAnalysis): handle ppTactic failure on pseudo-antiquotations (#32641) This PR the wraps `PrettyPrinter.ppTactic` call in the tactic analysis linter in try/catch in `tryAtEachStepCore` `PrettyPrinter.ppTactic` can fail on certain syntax nodes like `congr($h x)` which use `term.pseudo.antiquot`. This causes the tactic analysis linter to crash with: ``` error: Mathlib/Algebra/Module/LinearMap/Defs.lean:812:0: linter Mathlib.TacticAnalysis.tacticAnalysis failed: Unknown constant `term.pseudo.antiquot` ``` 🤖 Generated with [Claude Code](https://claude.com/claude-code) ESTIMATED CHANGES Modified Mathlib/Tactic/TacticAnalysis/Declarations.lean 2025-12-09 20:21:07 20c9db6 feat(Arsinh): add arcosh (#32356) Defined arcosh and showed that it is inverse to cosh over the appropriate domains. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/SpecialFunctions/Arcosh.lean + theorem Real.add_sqrt_self_sq_sub_one_inv + def Real.arcosh + theorem Real.arcosh_cosh + theorem Real.arcosh_eq_zero_iff + theorem Real.arcosh_le_arcosh + theorem Real.arcosh_lt_arcosh + theorem Real.arcosh_nonneg + theorem Real.arcosh_pos + theorem Real.arcosh_zero + def Real.coshPartialEquiv + theorem Real.cosh_arcosh + theorem Real.exp_arcosh + theorem Real.sinh_arcosh + theorem Real.strictMonoOn_arcosh Modified Mathlib/Analysis/SpecialFunctions/Arsinh.lean 2025-12-09 20:06:28 806884d feat: define the space of distributions (#32353) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/Distribution/Distribution.lean + def Distribution.mapCLM + theorem Distribution.mapCLM_apply Modified docs/references.bib 2025-12-09 19:43:18 a8fcc48 chore: fix capitalisation of `Real.Angle` and `Circle` (#32620) ESTIMATED CHANGES Modified Mathlib/Analysis/Complex/Circle.lean Modified Mathlib/Analysis/SpecialFunctions/Complex/Circle.lean Modified Mathlib/Geometry/Euclidean/Angle/Oriented/Basic.lean Modified Mathlib/Topology/Instances/AddCircle/Defs.lean 2025-12-09 19:21:23 e62d5b5 feat: add `ContDiffAt.continuousAt_fderiv` etc (#32319) ESTIMATED CHANGES Modified Mathlib/Analysis/Calculus/ContDiff/Basic.lean + theorem ContDiffAt.continuousAt_fderiv + theorem ContDiffAt.continuousAt_iteratedFDeriv + theorem ContDiffWithinAt.continuousWithinAt_fderivWithin + theorem ContDiffWithinAt.continuousWithinAt_iteratedFDerivWithin + theorem ContinuousOn.continuousOn_iteratedFDeriv + theorem ContinuousOn.continuousOn_iteratedFDerivWithin 2025-12-09 18:53:37 04f2b82 chore(AlgebraicGeometry): remove `erw` in `isoSpec_image_zeroLocus` (#32642) ESTIMATED CHANGES Modified Mathlib/AlgebraicGeometry/AffineScheme.lean 2025-12-09 18:53:35 1ac5f9c feat(AlgebraicGeometry): "quasi-coherent `𝒪ₓ`-algebras" (#32595) ESTIMATED CHANGES Modified Mathlib/AlgebraicGeometry/Cover/Directed.lean Modified Mathlib/AlgebraicGeometry/Sites/SmallAffineZariski.lean + theorem AlgebraicGeometry.Scheme.AffineZariskiSite.PreservesLocalization.colimitDesc_preimage + theorem AlgebraicGeometry.Scheme.AffineZariskiSite.PreservesLocalization.isLocallyDirected + theorem AlgebraicGeometry.Scheme.AffineZariskiSite.PreservesLocalization.isOpenImmersion + theorem AlgebraicGeometry.Scheme.AffineZariskiSite.PreservesLocalization.opensRange_map + def AlgebraicGeometry.Scheme.AffineZariskiSite.PreservesLocalization +/- def AlgebraicGeometry.Scheme.AffineZariskiSite.basicOpen + theorem AlgebraicGeometry.Scheme.preservesLocalization_toOpensFunctor 2025-12-09 18:53:32 8e66888 feat(Analysis/Distribution): the bilinear pairing of Schwartz functions (#32411) We define the bilinear pairing of Schwartz functions. Since everything is in curried form, and curried continuity and uncurried continuity are different for general TVS, we record the continuity in the left argument separately. ESTIMATED CHANGES Modified Mathlib/Analysis/Distribution/SchwartzSpace.lean + def SchwartzMap.pairing + theorem SchwartzMap.pairing_apply + theorem SchwartzMap.pairing_apply_apply + theorem SchwartzMap.pairing_continuous_left 2025-12-09 18:53:30 c58c5dc feat(Analysis/Distribution): integration by parts for Schwartz functions (#31876) ESTIMATED CHANGES Modified Mathlib/Analysis/Distribution/SchwartzSpace.lean + theorem SchwartzMap.integral_bilinear_lineDerivOp_right_eq_neg_left + theorem SchwartzMap.integral_clm_comp_lineDerivOp_right_eq_neg_left + theorem SchwartzMap.integral_mul_lineDerivOp_right_eq_neg_left + theorem SchwartzMap.integral_smul_deriv_right_eq_neg_left + theorem SchwartzMap.integral_smul_lineDerivOp_right_eq_neg_left 2025-12-09 18:53:27 ced3fdb feat(Analysis/Normed/Affine/Isometry): interpret `AffineIsometry{Map,Equiv}` as `ContinuousAffine{Map,Equiv}` (#31395) Extracted from #27378 ESTIMATED CHANGES Modified Mathlib/Analysis/Normed/Affine/Isometry.lean + theorem AffineIsometry.coe_toContinuousAffineMap + def AffineIsometry.toContinuousAffineMap + theorem AffineIsometry.toContinuousAffineMap_id + theorem AffineIsometry.toContinuousAffineMap_inj + theorem AffineIsometry.toContinuousAffineMap_injective + theorem AffineIsometryEquiv.coeFn_injective + theorem AffineIsometryEquiv.coe_symm_toContinuousAffineEquiv + theorem AffineIsometryEquiv.coe_toContinuousAffineEquiv + def AffineIsometryEquiv.toContinuousAffineEquiv + theorem AffineIsometryEquiv.toContinuousAffineEquiv_inj + theorem AffineIsometryEquiv.toContinuousAffineEquiv_injective + theorem AffineIsometryEquiv.toContinuousAffineEquiv_refl + theorem AffineIsometryEquiv.toContinuousAffineEquiv_symm + theorem AffineSubspace.toContinuousAffineMap_subtypeₐᵢ Modified Mathlib/Topology/Algebra/ContinuousAffineEquiv.lean 2025-12-09 18:06:06 34f04aa feat(Algebra/Polynomial/AlgebraMap): add `aeval_smul` (#32616) This PR adds a lemma `aeval_smul` stating that `Polynomial.aeval` commutes with a `MulSemiringAction`. ESTIMATED CHANGES Modified Mathlib/Algebra/Polynomial/AlgebraMap.lean + theorem Polynomial.aeval_smul 2025-12-09 18:06:04 3620773 feat(Algebra/Polynomial/Roots): add `Monic.mem_rootSet` (#32615) This PR adds a version of `mem_rootSet` with a `Monic` assumption. ESTIMATED CHANGES Modified Mathlib/Algebra/Polynomial/Roots.lean + theorem Polynomial.Monic.mem_rootSet 2025-12-09 18:06:02 4fcdd6c feat: `UniformSpace.Completion.mapRingEquiv` (#31845) lifts a ring isomorphism between uniform rings to a ring isomorphism between their uniform space completions ESTIMATED CHANGES Modified Mathlib/Topology/Algebra/UniformRing.lean + theorem UniformSpace.Completion.coe_mapRingHom + def UniformSpace.Completion.mapRingEquiv +/- theorem UniformSpace.Completion.mapRingHom_apply +/- theorem UniformSpace.Completion.mapRingHom_coe + theorem UniformSpace.Completion.mapRingHom_comp + theorem UniformSpace.Completion.mapRingHom_id 2025-12-09 18:06:00 e4fd1ef feat(Topology/Sublevel): sublevels in relation with semicontinuity and compactness (#31558) Two lemmas about sublevels and semicontinuity related to compactness * `Set.isCompact_inter_preimage_Iic`, the sublevels of a lower semicontinuous function on a compact set are compact. * `Set.biInter_sep_map_le_eq_empty_iff_exists_finset`, an intersection of sublevel sets of a lower semicontinuous function on a compact set is empty if and only if a finite sub-intersection is already empty. Co-authored with @ADedecker ESTIMATED CHANGES Modified Mathlib/Topology/Compactness/Compact.lean + theorem IsCompact.elim_finite_subfamily_isClosed_subtype Modified Mathlib/Topology/Semicontinuous.lean + theorem LowerSemicontinuousOn.inter_biInter_preimage_Iic_eq_empty_iff_exists_finset + theorem LowerSemicontinuousOn.isCompact_inter_preimage_Iic + theorem UpperSemicontinuousOn.inter_biInter_preimage_Ici_eq_empty_iff_exists_finset + theorem UpperSemicontinuousOn.isCompact_inter_preimage_Ici 2025-12-09 17:16:52 19306e1 feat(Tactic/Linter): linter for nonbreaking spaces (#32646) ESTIMATED CHANGES Modified Mathlib/Tactic/Linter/TextBased.lean + def Mathlib.Linter.TextBased.nonbreakingSpaceLinter Modified Mathlib/Topology/OpenPartialHomeomorph/Constructions.lean Modified scripts/nolints-style.txt 2025-12-09 16:30:36 ba42261 chore(CategoryTheory/Limits): upgrade `MulticospanIndex.multiforkEquivPiFork` from `HasLimit` to `IsLimit` (#32576) We also adapt the dual version. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Limits/Shapes/Multiequalizer.lean +/- theorem CategoryTheory.Limits.Multicofork.ofSigmaCofork_ι_app_left - theorem CategoryTheory.Limits.Multicofork.ofSigmaCofork_ι_app_right' - theorem CategoryTheory.Limits.Multicofork.ofSigmaCofork_ι_app_right + theorem CategoryTheory.Limits.Multicofork.ofSigmaCofork_π +/- theorem CategoryTheory.Limits.Multicofork.sigma_condition +/- theorem CategoryTheory.Limits.Multicofork.toSigmaCofork_π + def CategoryTheory.Limits.MulticospanIndex.fstPiMapOfIsLimit + theorem CategoryTheory.Limits.MulticospanIndex.fstPiMapOfIsLimit_proj +/- theorem CategoryTheory.Limits.MulticospanIndex.fstPiMap_π + def CategoryTheory.Limits.MulticospanIndex.multiforkEquivPiForkOfIsLimit + def CategoryTheory.Limits.MulticospanIndex.ofPiForkFunctor + def CategoryTheory.Limits.MulticospanIndex.sndPiMapOfIsLimit + theorem CategoryTheory.Limits.MulticospanIndex.sndPiMapOfIsLimit_proj +/- theorem CategoryTheory.Limits.MulticospanIndex.sndPiMap_π + def CategoryTheory.Limits.MulticospanIndex.toPiForkFunctor + def CategoryTheory.Limits.Multifork.ofPiFork + theorem CategoryTheory.Limits.Multifork.ofPiFork_ι - theorem CategoryTheory.Limits.Multifork.ofPiFork_π_app_left +/- theorem CategoryTheory.Limits.Multifork.ofPiFork_π_app_right +/- theorem CategoryTheory.Limits.Multifork.pi_condition + def CategoryTheory.Limits.Multifork.toPiFork +/- theorem CategoryTheory.Limits.Multifork.toPiFork_π_app_one +/- theorem CategoryTheory.Limits.Multifork.toPiFork_π_app_zero + def CategoryTheory.Limits.MultispanIndex.fstSigmaMapOfIsColimit + theorem CategoryTheory.Limits.MultispanIndex.inj_fstSigmaMapOfIsColimit + theorem CategoryTheory.Limits.MultispanIndex.inj_sndSigmaMapOfIsColimit + def CategoryTheory.Limits.MultispanIndex.sndSigmaMapOfIsColimit +/- theorem CategoryTheory.Limits.MultispanIndex.ι_fstSigmaMap +/- theorem CategoryTheory.Limits.MultispanIndex.ι_sndSigmaMap 2025-12-09 15:53:45 6729ee8 chore(Algebra/DirectSum): remove use of `erw` in `IsInternal.collectedBasis_coe` (#32621) ESTIMATED CHANGES Modified Mathlib/Algebra/DirectSum/Module.lean 2025-12-09 15:53:42 d8cc48c feat(RingTheory): smooth algebras have smooth Noetherian models (#25143) Co-authored by: Judith Ludwig ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/MvPolynomial/Eval.lean + theorem MvPolynomial.eval₂_map_comp_C + theorem MvPolynomial.map_eval Modified Mathlib/Data/Finsupp/Weight.lean + theorem Finsupp.range_single_one Modified Mathlib/RingTheory/Ideal/Cotangent.lean + theorem AlgHom.kerSquareLift_mk Modified Mathlib/RingTheory/MvPolynomial/Homogeneous.lean + theorem Ideal.mem_span_iff_exists_isHomogeneous + theorem Ideal.mem_span_pow_iff_exists_isHomogeneous + theorem Ideal.span_eq_map_homogeneousSubmodule + theorem Ideal.span_pow_eq_map_homogeneousSubmodule + theorem MvPolynomial.IsHomogeneous.of_map + theorem MvPolynomial.homogeneousSubmodule_one_eq_span_X + theorem MvPolynomial.homogeneousSubmodule_one_pow + theorem MvPolynomial.homogeneousSubmodule_zero + theorem MvPolynomial.monomial_mem_homogeneousSubmodule_pow_degree Modified Mathlib/RingTheory/MvPolynomial/WeightedHomogeneous.lean + theorem MvPolynomial.IsWeightedHomogeneous.C_mul + theorem MvPolynomial.IsWeightedHomogeneous.induction_on Added Mathlib/RingTheory/Smooth/NoetherianDescent.lean + theorem Algebra.Smooth.DescentAux.coeffs_h_subset + theorem Algebra.Smooth.DescentAux.coeffs_p_subset + theorem Algebra.Smooth.DescentAux.coeffs_q_subset + theorem Algebra.Smooth.DescentAux.exists_kerSquareLift_comp_eq_id + def Algebra.Smooth.DescentAux.subalgebra + structure Algebra.Smooth.DescentAux 2025-12-09 14:57:58 3d65067 chore(Algebra/Homology): remove use of `erw` in `coneOfHasLimitEval` and `coconeOfHasColimitEval` (#32631) ESTIMATED CHANGES Modified Mathlib/Algebra/Homology/HomologicalComplexLimits.lean 2025-12-09 14:57:56 8c187f5 chore(Algebra/Category/ModuleCat/Monoidal): remove use of `erw` in `leftUnitor_naturality` and `rightUnitor_naturality` (#32629) ESTIMATED CHANGES Modified Mathlib/Algebra/Category/ModuleCat/Monoidal/Basic.lean 2025-12-09 14:57:55 bc3ceab chore(Algebra/Category/ModuleCat): remove use of `erw` in `HomEquiv.fromRestriction` (#32623) ESTIMATED CHANGES Modified Mathlib/Algebra/Category/ModuleCat/ChangeOfRings.lean 2025-12-09 14:57:52 3ac6175 feat: lemmas about `Polynomial.bernoulli` and `bernoulliFun` (#32364) A step towards Euler-Maclaurin. Co-Authored-By: Geoffrey Irving ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Polynomial/Coeff.lean + theorem Polynomial.one_add_X_pow_sub_X_pow Added Mathlib/Analysis/Calculus/ContDiff/Polynomial.lean + theorem Polynomial.contDiff_aeval Modified Mathlib/Data/Nat/Choose/Basic.lean + theorem Nat.add_one_mul_choose_eq Modified Mathlib/NumberTheory/Bernoulli.lean + theorem bernoulli'_eq_zero_of_odd - theorem bernoulli'_odd_eq_zero + theorem bernoulli_eq_zero_of_odd + theorem bernoulli_two Modified Mathlib/NumberTheory/BernoulliPolynomials.lean + theorem Polynomial.bernoulli_comp_neg_X + theorem Polynomial.bernoulli_comp_one_add_X + theorem Polynomial.bernoulli_comp_one_sub_X + theorem Polynomial.bernoulli_eval_neg + theorem Polynomial.bernoulli_eval_one_sub + theorem Polynomial.bernoulli_one + theorem Polynomial.bernoulli_three_eval_one_quarter + theorem Polynomial.coeff_bernoulli Modified Mathlib/NumberTheory/ZetaValues.lean - theorem Polynomial.bernoulli_three_eval_one_quarter + theorem bernoulliFun_eq_integral + theorem bernoulliFun_eval_half + theorem bernoulliFun_eval_half_eq_zero + theorem bernoulliFun_eval_one_sub + theorem bernoulliFun_mul + theorem bernoulliFun_one + theorem bernoulliFun_two + theorem bernoulliFun_zero + theorem contDiff_bernoulliFun + theorem continuous_bernoulliFun + theorem deriv_bernoulliFun + theorem integral_bernoulliFun +/- theorem integral_bernoulliFun_eq_zero + theorem intervalIntegrable_bernoulliFun 2025-12-09 14:57:50 b16832b feat: `toSpanSingleton` as a continuous linear equivalence (#32318) - Define `ContinuousLinearMap.toSpanSingletonCLE`. - Use it to golf a proof about `ContDiffOn` and `deriv`. ESTIMATED CHANGES Modified Mathlib/Analysis/Calculus/ContDiff/Basic.lean Modified Mathlib/Topology/Algebra/Module/LinearMap.lean + def ContinuousLinearMap.toSpanSingletonLE + theorem ContinuousLinearMap.toSpanSingleton_zero Modified Mathlib/Topology/Algebra/Module/StrongTopology.lean + def ContinuousLinearMap.toSpanSingletonCLE 2025-12-09 14:57:48 2084709 feat: head/last element of flattened list (#30892) ESTIMATED CHANGES Modified Mathlib/Data/List/Flatten.lean + theorem List.getLast_flatten_of_flatten_ne_nil + theorem List.getLast_flatten_of_getLast_ne_nil + theorem List.head_flatten_eq_head_head + theorem List.head_head_eq_head_flatten 2025-12-09 14:57:46 f5099c7 feat(Algebra/BigOperators): products of the results of insertion and removal on tuples and lists, and some needed lemmas (#29400) ESTIMATED CHANGES Modified Mathlib/Algebra/BigOperators/Fin.lean + theorem Fin.mul_prod_removeNth + theorem Fin.prod_insertNth Modified Mathlib/Algebra/BigOperators/Group/List/Basic.lean + theorem List.CommMonoid.mul_prod_eraseIdx + theorem List.CommMonoid.prod_insertIdx + theorem List.mul_prod_eraseIdx + theorem List.prod_insertIdx Modified Mathlib/Data/Fin/Tuple/Basic.lean + theorem Fin.exists_cons + theorem Fin.insertNth_succ_cons Modified Mathlib/Data/List/InsertIdx.lean + theorem List.take_eraseIdx_eq_take_of_le + theorem List.take_insertIdx_eq_take_of_le 2025-12-09 13:51:53 cd61ea3 chore: update Mathlib dependencies 2025-12-09 (#32647) This PR updates the Mathlib dependencies. ESTIMATED CHANGES Modified lake-manifest.json 2025-12-09 12:40:47 920783b feat: support of `Pi.single` is subsingleton (#32637) ESTIMATED CHANGES Modified Mathlib/Algebra/Notation/Support.lean + theorem Pi.subsingleton_mulSupport_mulSingle 2025-12-09 12:40:45 42c87a4 chore(Order/ConditionallyCompleteLattice): use `where` notation (#32635) There are some equivalent instances in `OrderBot` and `OrderTop` with different names (see e.g. [`WithBot.instBoundedOrder`](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Order/WithBot.html#WithBot.instBoundedOrder) vs [`WithTop.boundedOrder`](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Order/WithBot.html#WithTop.boundedOrder)). This leads to some annoyance when adding `to_dual` attributes. So instead we try to avoid explicitly calling these instances altogether by using the newer `where` notation. ESTIMATED CHANGES Modified Mathlib/Order/ConditionallyCompleteLattice/Basic.lean 2025-12-09 12:40:43 0c56bb3 chore: missing API for `toSpanSingleton` (#32477) Adds: - `LinearMap.toSpanSingleton_one_eq_algebraLinearMap` - `ContinuousLinearMap.toSpanSingleton_one_eq_algebraMapCLM` - `{LinearMap, ContinuousLinearMap}.smulRight_id` Renames: - `{LinearMap, ContinuousLinearMap}.toSpanSingleton_one` -> `.toSpanSingleton_apply_one` - `LinearMap.isIdempotentElem_apply_one_iff` -> `.isIdempotentElem_map_one_iff` - `algebraMapCLM_coe` -> `coe_algebraMapCLM` - `algebraMapCLM_toLinearMap` -> `toLinearMap_algebraMapCLM` - `ContinuousLinearMap.one_smulRight_eq_toSpanSingleton` -> `.smulRight_one_eq_toSpanSingleton` ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/Bilinear.lean + theorem LinearMap.toSpanSingleton_one_eq_algebraLinearMap Modified Mathlib/Algebra/Module/CharacterModule.lean Modified Mathlib/Algebra/Module/PID.lean Modified Mathlib/Analysis/Calculus/Deriv/CompMul.lean Modified Mathlib/LinearAlgebra/Span/Basic.lean - theorem LinearMap.isIdempotentElem_apply_one_iff + theorem LinearMap.isIdempotentElem_map_one_iff + theorem LinearMap.smulRight_id + theorem LinearMap.toSpanSingleton_apply_one - theorem LinearMap.toSpanSingleton_one Modified Mathlib/RingTheory/Ideal/Operations.lean Modified Mathlib/RingTheory/SimpleModule/Basic.lean Modified Mathlib/Topology/Algebra/Algebra.lean + theorem ContinuousLinearMap.toSpanSingleton_one_eq_algebraMapCLM - theorem algebraMapCLM_coe - theorem algebraMapCLM_toLinearMap + theorem coe_algebraMapCLM + theorem toLinearMap_algebraMapCLM Modified Mathlib/Topology/Algebra/Module/LinearMap.lean - theorem ContinuousLinearMap.one_smulRight_eq_toSpanSingleton + theorem ContinuousLinearMap.smulRight_id + theorem ContinuousLinearMap.smulRight_one_eq_toSpanSingleton + theorem ContinuousLinearMap.toSpanSingleton_apply_one - theorem ContinuousLinearMap.toSpanSingleton_one Modified Mathlib/Topology/ContinuousMap/Ideals.lean 2025-12-09 11:01:53 d3a64a8 feat: import Lean.LibrarySuggestions.Default in Mathlib.Init (#32638) This PR adds `public import Lean.LibrarySuggestions.Default` to `Mathlib/Init.lean`, to enable the `+suggestions` modes in tactics (like `grind +suggestions` and `simp +suggestions`) to work throughout Mathlib without requiring explicit imports 🤖 Generated with [Claude Code](https://claude.com/claude-code) ESTIMATED CHANGES Modified Mathlib/Init.lean 2025-12-09 10:36:40 43dc3a9 chore(AlgebraicGeometry): remove use of `erw` in `ι_glueMorphisms` (#32633) ESTIMATED CHANGES Modified Mathlib/AlgebraicGeometry/Gluing.lean 2025-12-09 10:36:39 8d2e6ec chore(LinearAlgebra/Projectivization): remove use of `erw` in `map` (#32630) ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/Projectivization/Basic.lean 2025-12-09 10:36:37 1783201 chore: use `eval_map_algebraMap` (#32628) This PR replaces awkward occurrences of `rw [eval_map, ← aeval_def]` with `rw [eval_map_algebraMap]`. ESTIMATED CHANGES Modified Mathlib/Algebra/Polynomial/AlgebraMap.lean Modified Mathlib/Analysis/Complex/Polynomial/UnitTrinomial.lean Modified Mathlib/FieldTheory/IntermediateField/Adjoin/Basic.lean Modified Mathlib/FieldTheory/Minpoly/IsIntegrallyClosed.lean Modified Mathlib/FieldTheory/Minpoly/MinpolyDiv.lean Modified Mathlib/FieldTheory/Normal/Basic.lean Modified Mathlib/FieldTheory/PolynomialGaloisGroup.lean Modified Mathlib/FieldTheory/PrimitiveElement.lean Modified Mathlib/FieldTheory/SeparableDegree.lean Modified Mathlib/NumberTheory/Cyclotomic/Basic.lean Modified Mathlib/NumberTheory/Cyclotomic/PrimitiveRoots.lean Modified Mathlib/NumberTheory/Transcendental/Liouville/Basic.lean Modified Mathlib/RingTheory/Discriminant.lean Modified Mathlib/RingTheory/Polynomial/Cyclotomic/Expand.lean Modified Mathlib/RingTheory/Polynomial/GaussLemma.lean 2025-12-09 10:36:35 b8b529c chore(AlgebraicTopology/DoldKan): remove use of `erw` in `N₁Γ₀_app` (#32624) ESTIMATED CHANGES Modified Mathlib/AlgebraicTopology/DoldKan/GammaCompN.lean 2025-12-09 10:20:02 2764e6f chore(Algebra/Homology/ShortComplex): remove use of `erw` in `rightHomologyData` (#32625) ESTIMATED CHANGES Modified Mathlib/Algebra/Homology/ShortComplex/Exact.lean 2025-12-09 09:48:28 d7c8cc9 chore(CategoryTheory/Monoidal): remove use of `erw` in `whiskerLeft_id_bimod` and `id_whiskerRight_bimod` (#32636) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Monoidal/Bimod.lean 2025-12-09 09:48:27 f25fbf7 chore(CategoryTheory/Subobject): remove use of `erw` in `Factors` (#32622) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Subobject/FactorThru.lean 2025-12-09 06:59:47 790901a chore: remove "non-breaking spaces" (#32587) Several code files in mathlib have "non-breaking space" characters in them, which cause formatting errors in the docs; see [here](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Analysis/Analytic/IsolatedZeros.html#AnalyticOnNhd.eq_zero_or_eq_zero_of_smul_eq_zero) for example. This PR kills them. ESTIMATED CHANGES Modified Mathlib/Algebra/Lie/Semisimple/Lemmas.lean Modified Mathlib/Analysis/Analytic/IsolatedZeros.lean Modified Mathlib/CategoryTheory/Category/ReflQuiv.lean Modified Mathlib/Condensed/Solid.lean Modified Mathlib/GroupTheory/Perm/MaximalSubgroups.lean Modified Mathlib/LinearAlgebra/Vandermonde.lean Modified Mathlib/NumberTheory/Padics/AddChar.lean Modified Mathlib/RingTheory/PolynomialLaw/Basic.lean Modified Mathlib/Topology/Algebra/InfiniteSum/UniformOn.lean 2025-12-09 06:39:56 7221b01 refactor: split long file Analysis.SpecialFunctions.Trigonometric.Deriv (#32605) Results on hyperbolic trig functions moved to a different file. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Analysis/Convex/SpecificFunctions/Deriv.lean Modified Mathlib/Analysis/SpecialFunctions/Arsinh.lean Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Deriv.lean - theorem Complex.analyticAt_cosh - theorem Complex.analyticAt_sinh - theorem Complex.analyticOnNhd_cosh - theorem Complex.analyticOnNhd_sinh - theorem Complex.analyticOn_cosh - theorem Complex.analyticOn_sinh - theorem Complex.analyticWithinAt_cosh - theorem Complex.analyticWithinAt_sinh - theorem Complex.contDiff_cosh - theorem Complex.contDiff_sinh - theorem Complex.deriv_cosh - theorem Complex.deriv_sinh - theorem Complex.differentiableAt_cosh - theorem Complex.differentiableAt_sinh - theorem Complex.differentiable_cosh - theorem Complex.differentiable_iteratedDeriv_cosh - theorem Complex.differentiable_iteratedDeriv_sinh - theorem Complex.differentiable_sinh - theorem Complex.hasDerivAt_cosh - theorem Complex.hasDerivAt_sinh - theorem Complex.hasStrictDerivAt_cosh - theorem Complex.hasStrictDerivAt_sinh - theorem Complex.isEquivalent_sinh - theorem Complex.iteratedDeriv_add_one_cosh - theorem Complex.iteratedDeriv_add_one_sinh - theorem Complex.iteratedDeriv_even_cosh - theorem Complex.iteratedDeriv_even_sinh - theorem Complex.iteratedDeriv_odd_cosh - theorem Complex.iteratedDeriv_odd_sinh - theorem Complex.logDeriv_cosh - theorem ContDiff.ccosh - theorem ContDiff.cosh - theorem ContDiff.csinh - theorem ContDiff.sinh - theorem ContDiffAt.ccosh - theorem ContDiffAt.cosh - theorem ContDiffAt.csinh - theorem ContDiffAt.sinh - theorem ContDiffOn.ccosh - theorem ContDiffOn.cosh - theorem ContDiffOn.csinh - theorem ContDiffOn.sinh - theorem ContDiffWithinAt.ccosh - theorem ContDiffWithinAt.cosh - theorem ContDiffWithinAt.csinh - theorem ContDiffWithinAt.sinh - theorem Differentiable.ccosh - theorem Differentiable.cosh - theorem Differentiable.csinh - theorem Differentiable.sinh - theorem DifferentiableAt.ccosh - theorem DifferentiableAt.cosh - theorem DifferentiableAt.csinh - theorem DifferentiableAt.sinh - theorem DifferentiableOn.ccosh - theorem DifferentiableOn.cosh - theorem DifferentiableOn.csinh - theorem DifferentiableOn.sinh - theorem DifferentiableWithinAt.ccosh - theorem DifferentiableWithinAt.cosh - theorem DifferentiableWithinAt.csinh - theorem DifferentiableWithinAt.sinh - theorem HasDerivAt.ccosh - theorem HasDerivAt.cosh - theorem HasDerivAt.csinh - theorem HasDerivAt.sinh - theorem HasDerivWithinAt.ccosh - theorem HasDerivWithinAt.cosh - theorem HasDerivWithinAt.csinh - theorem HasDerivWithinAt.sinh - theorem HasFDerivAt.ccosh - theorem HasFDerivAt.cosh - theorem HasFDerivAt.csinh - theorem HasFDerivAt.sinh - theorem HasFDerivWithinAt.ccosh - theorem HasFDerivWithinAt.cosh - theorem HasFDerivWithinAt.csinh - theorem HasFDerivWithinAt.sinh - theorem HasStrictDerivAt.ccosh - theorem HasStrictDerivAt.cosh - theorem HasStrictDerivAt.csinh - theorem HasStrictDerivAt.sinh - theorem HasStrictFDerivAt.ccosh - theorem HasStrictFDerivAt.cosh - theorem HasStrictFDerivAt.csinh - theorem HasStrictFDerivAt.sinh - theorem Real.abs_sinh - theorem Real.analyticAt_cosh - theorem Real.analyticAt_sinh - theorem Real.analyticOnNhd_cosh - theorem Real.analyticOnNhd_sinh - theorem Real.analyticOn_cosh - theorem Real.analyticOn_sinh - theorem Real.analyticWithinAt_cosh - theorem Real.analyticWithinAt_sinh - theorem Real.contDiff_cosh - theorem Real.contDiff_sinh - theorem Real.cosh_le_cosh - theorem Real.cosh_lt_cosh - theorem Real.cosh_strictMonoOn - theorem Real.deriv_cosh - theorem Real.deriv_sinh - theorem Real.differentiableAt_cosh - theorem Real.differentiableAt_sinh - theorem Real.differentiable_cosh - theorem Real.differentiable_iteratedDeriv_cosh - theorem Real.differentiable_iteratedDeriv_sinh - theorem Real.differentiable_sinh - theorem Real.hasDerivAt_cosh - theorem Real.hasDerivAt_sinh - theorem Real.hasStrictDerivAt_cosh - theorem Real.hasStrictDerivAt_sinh - theorem Real.isEquivalent_sinh - theorem Real.iteratedDerivWithin_cosh_Icc - theorem Real.iteratedDerivWithin_cosh_Ioo - theorem Real.iteratedDerivWithin_sinh_Icc - theorem Real.iteratedDerivWithin_sinh_Ioo - theorem Real.iteratedDeriv_add_one_cosh - theorem Real.iteratedDeriv_add_one_sinh - theorem Real.iteratedDeriv_even_cosh - theorem Real.iteratedDeriv_even_sinh - theorem Real.iteratedDeriv_odd_cosh - theorem Real.iteratedDeriv_odd_sinh - theorem Real.logDeriv_cosh - theorem Real.one_le_cosh - theorem Real.one_lt_cosh - theorem Real.self_le_sinh_iff - theorem Real.self_lt_sinh_iff - theorem Real.sinh_eq_zero - theorem Real.sinh_inj - theorem Real.sinh_injective - theorem Real.sinh_le_self_iff - theorem Real.sinh_le_sinh - theorem Real.sinh_lt_self_iff - theorem Real.sinh_lt_sinh - theorem Real.sinh_ne_zero - theorem Real.sinh_neg_iff - theorem Real.sinh_nonneg_iff - theorem Real.sinh_nonpos_iff - theorem Real.sinh_pos_iff - theorem Real.sinh_strictMono - theorem Real.sinh_sub_id_strictMono - theorem derivWithin_ccosh - theorem derivWithin_cosh - theorem derivWithin_csinh - theorem derivWithin_sinh - theorem deriv_ccosh - theorem deriv_cosh - theorem deriv_csinh - theorem deriv_sinh - theorem fderivWithin_ccosh - theorem fderivWithin_cosh - theorem fderivWithin_csinh - theorem fderivWithin_sinh - theorem fderiv_ccosh - theorem fderiv_cosh - theorem fderiv_csinh - theorem fderiv_sinh Added Mathlib/Analysis/SpecialFunctions/Trigonometric/DerivHyp.lean + theorem Complex.analyticAt_cosh + theorem Complex.analyticAt_sinh + theorem Complex.analyticOnNhd_cosh + theorem Complex.analyticOnNhd_sinh + theorem Complex.analyticOn_cosh + theorem Complex.analyticOn_sinh + theorem Complex.analyticWithinAt_cosh + theorem Complex.analyticWithinAt_sinh + theorem Complex.contDiff_cosh + theorem Complex.contDiff_sinh + theorem Complex.deriv_cosh + theorem Complex.deriv_sinh + theorem Complex.differentiableAt_cosh + theorem Complex.differentiableAt_sinh + theorem Complex.differentiable_cosh + theorem Complex.differentiable_iteratedDeriv_cosh + theorem Complex.differentiable_iteratedDeriv_sinh + theorem Complex.differentiable_sinh + theorem Complex.hasDerivAt_cosh + theorem Complex.hasDerivAt_sinh + theorem Complex.hasStrictDerivAt_cosh + theorem Complex.hasStrictDerivAt_sinh + theorem Complex.isEquivalent_sinh + theorem Complex.iteratedDeriv_add_one_cosh + theorem Complex.iteratedDeriv_add_one_sinh + theorem Complex.iteratedDeriv_even_cosh + theorem Complex.iteratedDeriv_even_sinh + theorem Complex.iteratedDeriv_odd_cosh + theorem Complex.iteratedDeriv_odd_sinh + theorem Complex.logDeriv_cosh + theorem ContDiff.ccosh + theorem ContDiff.cosh + theorem ContDiff.csinh + theorem ContDiff.sinh + theorem ContDiffAt.ccosh + theorem ContDiffAt.cosh + theorem ContDiffAt.csinh + theorem ContDiffAt.sinh + theorem ContDiffOn.ccosh + theorem ContDiffOn.cosh + theorem ContDiffOn.csinh + theorem ContDiffOn.sinh + theorem ContDiffWithinAt.ccosh + theorem ContDiffWithinAt.cosh + theorem ContDiffWithinAt.csinh + theorem ContDiffWithinAt.sinh + theorem Differentiable.ccosh + theorem Differentiable.cosh + theorem Differentiable.csinh + theorem Differentiable.sinh + theorem DifferentiableAt.ccosh + theorem DifferentiableAt.cosh + theorem DifferentiableAt.csinh + theorem DifferentiableAt.sinh + theorem DifferentiableOn.ccosh + theorem DifferentiableOn.cosh + theorem DifferentiableOn.csinh + theorem DifferentiableOn.sinh + theorem DifferentiableWithinAt.ccosh + theorem DifferentiableWithinAt.cosh + theorem DifferentiableWithinAt.csinh + theorem DifferentiableWithinAt.sinh + theorem HasDerivAt.ccosh + theorem HasDerivAt.cosh + theorem HasDerivAt.csinh + theorem HasDerivAt.sinh + theorem HasDerivWithinAt.ccosh + theorem HasDerivWithinAt.cosh + theorem HasDerivWithinAt.csinh + theorem HasDerivWithinAt.sinh + theorem HasFDerivAt.ccosh + theorem HasFDerivAt.cosh + theorem HasFDerivAt.csinh + theorem HasFDerivAt.sinh + theorem HasFDerivWithinAt.ccosh + theorem HasFDerivWithinAt.cosh + theorem HasFDerivWithinAt.csinh + theorem HasFDerivWithinAt.sinh + theorem HasStrictDerivAt.ccosh + theorem HasStrictDerivAt.cosh + theorem HasStrictDerivAt.csinh + theorem HasStrictDerivAt.sinh + theorem HasStrictFDerivAt.ccosh + theorem HasStrictFDerivAt.cosh + theorem HasStrictFDerivAt.csinh + theorem HasStrictFDerivAt.sinh + theorem Real.abs_sinh + theorem Real.analyticAt_cosh + theorem Real.analyticAt_sinh + theorem Real.analyticOnNhd_cosh + theorem Real.analyticOnNhd_sinh + theorem Real.analyticOn_cosh + theorem Real.analyticOn_sinh + theorem Real.analyticWithinAt_cosh + theorem Real.analyticWithinAt_sinh + theorem Real.contDiff_cosh + theorem Real.contDiff_sinh + theorem Real.cosh_le_cosh + theorem Real.cosh_lt_cosh + theorem Real.cosh_strictMonoOn + theorem Real.deriv_cosh + theorem Real.deriv_sinh + theorem Real.differentiableAt_cosh + theorem Real.differentiableAt_sinh + theorem Real.differentiable_cosh + theorem Real.differentiable_iteratedDeriv_cosh + theorem Real.differentiable_iteratedDeriv_sinh + theorem Real.differentiable_sinh + theorem Real.hasDerivAt_cosh + theorem Real.hasDerivAt_sinh + theorem Real.hasStrictDerivAt_cosh + theorem Real.hasStrictDerivAt_sinh + theorem Real.isEquivalent_sinh + theorem Real.iteratedDerivWithin_cosh_Icc + theorem Real.iteratedDerivWithin_cosh_Ioo + theorem Real.iteratedDerivWithin_sinh_Icc + theorem Real.iteratedDerivWithin_sinh_Ioo + theorem Real.iteratedDeriv_add_one_cosh + theorem Real.iteratedDeriv_add_one_sinh + theorem Real.iteratedDeriv_even_cosh + theorem Real.iteratedDeriv_even_sinh + theorem Real.iteratedDeriv_odd_cosh + theorem Real.iteratedDeriv_odd_sinh + theorem Real.logDeriv_cosh + theorem Real.one_le_cosh + theorem Real.one_lt_cosh + theorem Real.self_le_sinh_iff + theorem Real.self_lt_sinh_iff + theorem Real.sinh_eq_zero + theorem Real.sinh_inj + theorem Real.sinh_injective + theorem Real.sinh_le_self_iff + theorem Real.sinh_le_sinh + theorem Real.sinh_lt_self_iff + theorem Real.sinh_lt_sinh + theorem Real.sinh_ne_zero + theorem Real.sinh_neg_iff + theorem Real.sinh_nonneg_iff + theorem Real.sinh_nonpos_iff + theorem Real.sinh_pos_iff + theorem Real.sinh_strictMono + theorem Real.sinh_sub_id_strictMono + theorem derivWithin_ccosh + theorem derivWithin_cosh + theorem derivWithin_csinh + theorem derivWithin_sinh + theorem deriv_ccosh + theorem deriv_cosh + theorem deriv_csinh + theorem deriv_sinh + theorem fderivWithin_ccosh + theorem fderivWithin_cosh + theorem fderivWithin_csinh + theorem fderivWithin_sinh + theorem fderiv_ccosh + theorem fderiv_cosh + theorem fderiv_csinh + theorem fderiv_sinh 2025-12-09 05:22:22 7c1a302 doc: misc. name cleanup in docstrings and sections (#32606) Fix hyphenation and capitalization in monoid algebra and C*-matrix docstrings and sections; clarify NonPreadditiveAbelian references; align nonUnitalSubsemiringMap docstring wording. ESTIMATED CHANGES Modified Mathlib/Algebra/MonoidAlgebra/Basic.lean Modified Mathlib/Algebra/SkewMonoidAlgebra/Basic.lean Modified Mathlib/Analysis/CStarAlgebra/CStarMatrix.lean Modified Mathlib/CategoryTheory/Abelian/Basic.lean Modified Mathlib/RingTheory/NonUnitalSubsemiring/Basic.lean 2025-12-09 05:22:20 c186969 refactor(Topology/OpenPartialHomeomorph): split long file (#32601) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Analysis/Asymptotics/Lemmas.lean Modified Mathlib/Analysis/Calculus/ContDiff/Operations.lean Modified Mathlib/Analysis/Calculus/InverseFunctionTheorem/ApproximatesLinearOn.lean Modified Mathlib/Analysis/Complex/UpperHalfPlane/Topology.lean Modified Mathlib/Analysis/Normed/Module/Ball/Homeomorph.lean Modified Mathlib/Geometry/Manifold/ChartedSpace.lean Modified Mathlib/NumberTheory/NumberField/CanonicalEmbedding/PolarCoord.lean Modified Mathlib/Topology/FiberBundle/Trivialization.lean Modified Mathlib/Topology/IsLocalHomeomorph.lean Modified Mathlib/Topology/OpenPartialHomeomorph.lean - theorem Homeomorph.refl_toOpenPartialHomeomorph - theorem Homeomorph.symm_toOpenPartialHomeomorph - def Homeomorph.toOpenPartialHomeomorph - def Homeomorph.toOpenPartialHomeomorphOfImageEq - def Homeomorph.transOpenPartialHomeomorph - theorem Homeomorph.transOpenPartialHomeomorph_eq_trans - theorem Homeomorph.transOpenPartialHomeomorph_trans - theorem Homeomorph.trans_toOpenPartialHomeomorph - theorem Homeomorph.trans_transOpenPartialHomeomorph - theorem OpenPartialHomeomorph.EqOnSource.eqOn - theorem OpenPartialHomeomorph.EqOnSource.restr - theorem OpenPartialHomeomorph.EqOnSource.source_eq - theorem OpenPartialHomeomorph.EqOnSource.symm' - theorem OpenPartialHomeomorph.EqOnSource.symm_eqOn_target - theorem OpenPartialHomeomorph.EqOnSource.target_eq - theorem OpenPartialHomeomorph.EqOnSource.trans' - def OpenPartialHomeomorph.EqOnSource - theorem OpenPartialHomeomorph.IsImage.apply_mem_iff - theorem OpenPartialHomeomorph.IsImage.iff_preimage_eq' - theorem OpenPartialHomeomorph.IsImage.iff_preimage_eq - theorem OpenPartialHomeomorph.IsImage.iff_symm_preimage_eq' - theorem OpenPartialHomeomorph.IsImage.iff_symm_preimage_eq - theorem OpenPartialHomeomorph.IsImage.image_eq - theorem OpenPartialHomeomorph.IsImage.inter_eq_of_inter_eq_of_eqOn - theorem OpenPartialHomeomorph.IsImage.isOpen_iff - theorem OpenPartialHomeomorph.IsImage.leftInvOn_piecewise - theorem OpenPartialHomeomorph.IsImage.map_nhdsWithin_eq - theorem OpenPartialHomeomorph.IsImage.of_image_eq - theorem OpenPartialHomeomorph.IsImage.of_symm_image_eq - def OpenPartialHomeomorph.IsImage.restr - theorem OpenPartialHomeomorph.IsImage.symm_apply_mem_iff - theorem OpenPartialHomeomorph.IsImage.symm_eqOn_of_inter_eq_of_eqOn - theorem OpenPartialHomeomorph.IsImage.symm_iff - theorem OpenPartialHomeomorph.IsImage.symm_image_eq - theorem OpenPartialHomeomorph.IsImage.symm_mapsTo - theorem OpenPartialHomeomorph.IsImage.toPartialEquiv - def OpenPartialHomeomorph.IsImage - theorem OpenPartialHomeomorph.Set.EqOn.restr_eqOn_source - def OpenPartialHomeomorph.Simps.apply - def OpenPartialHomeomorph.Simps.symm_apply - theorem OpenPartialHomeomorph.coe_coe - theorem OpenPartialHomeomorph.coe_coe_symm - theorem OpenPartialHomeomorph.coe_ofContinuousOpen - theorem OpenPartialHomeomorph.coe_ofContinuousOpenRestrict - theorem OpenPartialHomeomorph.coe_ofContinuousOpenRestrict_symm - theorem OpenPartialHomeomorph.coe_ofContinuousOpen_symm - theorem OpenPartialHomeomorph.coe_restrOpen - theorem OpenPartialHomeomorph.coe_restrOpen_symm - theorem OpenPartialHomeomorph.coe_trans - theorem OpenPartialHomeomorph.coe_trans_symm - def OpenPartialHomeomorph.const - theorem OpenPartialHomeomorph.const_apply - theorem OpenPartialHomeomorph.const_source - theorem OpenPartialHomeomorph.const_target - theorem OpenPartialHomeomorph.continuousAt_iff_continuousAt_comp_left - theorem OpenPartialHomeomorph.continuousAt_iff_continuousAt_comp_right - theorem OpenPartialHomeomorph.continuousAt_symm - theorem OpenPartialHomeomorph.continuousOn_iff_continuousOn_comp_left - theorem OpenPartialHomeomorph.continuousOn_iff_continuousOn_comp_right - theorem OpenPartialHomeomorph.continuousOn_symm - theorem OpenPartialHomeomorph.continuousWithinAt_iff_continuousWithinAt_comp_left - theorem OpenPartialHomeomorph.continuousWithinAt_iff_continuousWithinAt_comp_right - theorem OpenPartialHomeomorph.continuous_iff_continuous_comp_left - def OpenPartialHomeomorph.disjointUnion - theorem OpenPartialHomeomorph.eqOnSource_iff - theorem OpenPartialHomeomorph.eqOnSource_refl - theorem OpenPartialHomeomorph.eq_of_eqOnSource_univ - theorem OpenPartialHomeomorph.eq_symm_apply - theorem OpenPartialHomeomorph.eventually_left_inverse' - theorem OpenPartialHomeomorph.eventually_left_inverse - theorem OpenPartialHomeomorph.eventually_ne_nhdsWithin - theorem OpenPartialHomeomorph.eventually_nhds' - theorem OpenPartialHomeomorph.eventually_nhds - theorem OpenPartialHomeomorph.eventually_nhdsWithin' - theorem OpenPartialHomeomorph.eventually_nhdsWithin - theorem OpenPartialHomeomorph.eventually_right_inverse' - theorem OpenPartialHomeomorph.eventually_right_inverse - def OpenPartialHomeomorph.homeomorphOfImageSubsetSource - theorem OpenPartialHomeomorph.image_eq_target_inter_inv_preimage - theorem OpenPartialHomeomorph.image_mem_nhds - theorem OpenPartialHomeomorph.image_source_eq_target - theorem OpenPartialHomeomorph.image_source_inter_eq' - theorem OpenPartialHomeomorph.image_source_inter_eq - theorem OpenPartialHomeomorph.image_trans_source - theorem OpenPartialHomeomorph.invFun_eq_coe - theorem OpenPartialHomeomorph.inv_image_trans_target - theorem OpenPartialHomeomorph.isImage_source_target - theorem OpenPartialHomeomorph.isImage_source_target_of_disjoint - theorem OpenPartialHomeomorph.isOpenEmbedding_restrict - theorem OpenPartialHomeomorph.isOpen_image_iff_of_subset_source - theorem OpenPartialHomeomorph.isOpen_image_of_subset_source - theorem OpenPartialHomeomorph.isOpen_image_source_inter - theorem OpenPartialHomeomorph.isOpen_image_symm_of_subset_target - theorem OpenPartialHomeomorph.isOpen_inter_preimage - theorem OpenPartialHomeomorph.isOpen_inter_preimage_symm - theorem OpenPartialHomeomorph.isOpen_symm_image_iff_of_subset_target - theorem OpenPartialHomeomorph.left_inv - theorem OpenPartialHomeomorph.lift_openEmbedding_apply - theorem OpenPartialHomeomorph.lift_openEmbedding_source - theorem OpenPartialHomeomorph.lift_openEmbedding_symm - theorem OpenPartialHomeomorph.lift_openEmbedding_symm_source - theorem OpenPartialHomeomorph.lift_openEmbedding_symm_target - theorem OpenPartialHomeomorph.lift_openEmbedding_target - theorem OpenPartialHomeomorph.lift_openEmbedding_toFun - theorem OpenPartialHomeomorph.lift_openEmbedding_trans - theorem OpenPartialHomeomorph.lift_openEmbedding_trans_apply - theorem OpenPartialHomeomorph.map_nhdsWithin_eq - theorem OpenPartialHomeomorph.map_nhdsWithin_preimage_eq - theorem OpenPartialHomeomorph.map_nhds_eq - theorem OpenPartialHomeomorph.map_source'' - theorem OpenPartialHomeomorph.map_source - theorem OpenPartialHomeomorph.map_subtype_source - theorem OpenPartialHomeomorph.map_target - theorem OpenPartialHomeomorph.mk_coe - theorem OpenPartialHomeomorph.mk_coe_symm - theorem OpenPartialHomeomorph.nhdsWithin_source_inter - theorem OpenPartialHomeomorph.nhdsWithin_target_inter - theorem OpenPartialHomeomorph.nhds_eq_comap_inf_principal - def OpenPartialHomeomorph.ofContinuousOpen - def OpenPartialHomeomorph.ofContinuousOpenRestrict - def OpenPartialHomeomorph.ofSet - theorem OpenPartialHomeomorph.ofSet_symm - theorem OpenPartialHomeomorph.ofSet_toPartialEquiv - theorem OpenPartialHomeomorph.ofSet_trans' - theorem OpenPartialHomeomorph.ofSet_trans - theorem OpenPartialHomeomorph.ofSet_trans_ofSet - theorem OpenPartialHomeomorph.ofSet_univ_eq_refl - def OpenPartialHomeomorph.pi - def OpenPartialHomeomorph.piecewise - theorem OpenPartialHomeomorph.preimage_closure - theorem OpenPartialHomeomorph.preimage_eventuallyEq_target_inter_preimage_inter - theorem OpenPartialHomeomorph.preimage_frontier - theorem OpenPartialHomeomorph.preimage_interior - def OpenPartialHomeomorph.prod - theorem OpenPartialHomeomorph.prod_eq_prod_of_nonempty' - theorem OpenPartialHomeomorph.prod_eq_prod_of_nonempty - theorem OpenPartialHomeomorph.prod_symm - theorem OpenPartialHomeomorph.prod_trans - theorem OpenPartialHomeomorph.refl_partialEquiv - theorem OpenPartialHomeomorph.refl_prod_refl - theorem OpenPartialHomeomorph.refl_symm - theorem OpenPartialHomeomorph.refl_trans - def OpenPartialHomeomorph.replaceEquiv - theorem OpenPartialHomeomorph.replaceEquiv_eq_self - theorem OpenPartialHomeomorph.restrOpen_source - theorem OpenPartialHomeomorph.restrOpen_toPartialEquiv - theorem OpenPartialHomeomorph.restr_eqOnSource_restr - theorem OpenPartialHomeomorph.restr_eq_of_source_subset - theorem OpenPartialHomeomorph.restr_inter_source - theorem OpenPartialHomeomorph.restr_source' - theorem OpenPartialHomeomorph.restr_source_inter - theorem OpenPartialHomeomorph.restr_symm_trans - theorem OpenPartialHomeomorph.restr_toPartialEquiv' - theorem OpenPartialHomeomorph.restr_toPartialEquiv - theorem OpenPartialHomeomorph.restr_trans - theorem OpenPartialHomeomorph.restr_univ - theorem OpenPartialHomeomorph.right_inv - theorem OpenPartialHomeomorph.secondCountableTopology_source - theorem OpenPartialHomeomorph.self_trans_symm - theorem OpenPartialHomeomorph.source_inter_preimage_inv_preimage - theorem OpenPartialHomeomorph.source_inter_preimage_target_inter - theorem OpenPartialHomeomorph.source_preimage_target - theorem OpenPartialHomeomorph.subtypeRestr_coe - theorem OpenPartialHomeomorph.subtypeRestr_def - theorem OpenPartialHomeomorph.subtypeRestr_source - theorem OpenPartialHomeomorph.subtypeRestr_symm_eqOn - theorem OpenPartialHomeomorph.subtypeRestr_symm_eqOn_of_le - theorem OpenPartialHomeomorph.subtypeRestr_symm_trans_subtypeRestr - theorem OpenPartialHomeomorph.symm_bijective - theorem OpenPartialHomeomorph.symm_image_eq_source_inter_preimage - theorem OpenPartialHomeomorph.symm_image_target_eq_source - theorem OpenPartialHomeomorph.symm_image_target_inter_eq - theorem OpenPartialHomeomorph.symm_map_nhds_eq - theorem OpenPartialHomeomorph.symm_piecewise - theorem OpenPartialHomeomorph.symm_source - theorem OpenPartialHomeomorph.symm_symm - theorem OpenPartialHomeomorph.symm_target - theorem OpenPartialHomeomorph.symm_toPartialEquiv - theorem OpenPartialHomeomorph.symm_trans_restr - theorem OpenPartialHomeomorph.symm_trans_self - theorem OpenPartialHomeomorph.target_inter_inv_preimage_preimage - theorem OpenPartialHomeomorph.tendsto_symm - def OpenPartialHomeomorph.toFun' - theorem OpenPartialHomeomorph.toFun_eq_coe - def OpenPartialHomeomorph.toHomeomorphOfSourceEqUnivTargetEqUniv - def OpenPartialHomeomorph.toHomeomorphSourceTarget - theorem OpenPartialHomeomorph.toPartialEquiv_injective - theorem OpenPartialHomeomorph.to_isOpenEmbedding - def OpenPartialHomeomorph.transHomeomorph - theorem OpenPartialHomeomorph.transHomeomorph_eq_trans - theorem OpenPartialHomeomorph.transHomeomorph_transHomeomorph - theorem OpenPartialHomeomorph.trans_apply - theorem OpenPartialHomeomorph.trans_assoc - theorem OpenPartialHomeomorph.trans_ofSet - theorem OpenPartialHomeomorph.trans_of_set' - theorem OpenPartialHomeomorph.trans_refl - theorem OpenPartialHomeomorph.trans_source'' - theorem OpenPartialHomeomorph.trans_source' - theorem OpenPartialHomeomorph.trans_source - theorem OpenPartialHomeomorph.trans_symm_eq_symm_trans_symm - theorem OpenPartialHomeomorph.trans_target'' - theorem OpenPartialHomeomorph.trans_target' - theorem OpenPartialHomeomorph.trans_target - theorem OpenPartialHomeomorph.trans_toPartialEquiv - theorem OpenPartialHomeomorph.trans_transHomeomorph - structure OpenPartialHomeomorph - theorem TopologicalSpace.Opens.openPartialHomeomorphSubtypeCoe_coe - theorem TopologicalSpace.Opens.openPartialHomeomorphSubtypeCoe_source - theorem TopologicalSpace.Opens.openPartialHomeomorphSubtypeCoe_target - theorem Topology.IsOpenEmbedding.toOpenPartialHomeomorph_left_inv - theorem Topology.IsOpenEmbedding.toOpenPartialHomeomorph_right_inv Added Mathlib/Topology/OpenPartialHomeomorph/Basic.lean + theorem OpenPartialHomeomorph.coe_ofContinuousOpen + theorem OpenPartialHomeomorph.coe_ofContinuousOpenRestrict + theorem OpenPartialHomeomorph.coe_ofContinuousOpenRestrict_symm + theorem OpenPartialHomeomorph.coe_ofContinuousOpen_symm + def OpenPartialHomeomorph.homeomorphOfImageSubsetSource + theorem OpenPartialHomeomorph.image_eq_target_inter_inv_preimage + theorem OpenPartialHomeomorph.image_source_eq_target + theorem OpenPartialHomeomorph.image_source_inter_eq' + theorem OpenPartialHomeomorph.image_source_inter_eq + theorem OpenPartialHomeomorph.isOpenEmbedding_restrict + theorem OpenPartialHomeomorph.isOpen_image_iff_of_subset_source + theorem OpenPartialHomeomorph.isOpen_image_of_subset_source + theorem OpenPartialHomeomorph.isOpen_image_source_inter + theorem OpenPartialHomeomorph.isOpen_image_symm_of_subset_target + theorem OpenPartialHomeomorph.isOpen_inter_preimage + theorem OpenPartialHomeomorph.isOpen_inter_preimage_symm + theorem OpenPartialHomeomorph.isOpen_symm_image_iff_of_subset_target + theorem OpenPartialHomeomorph.nhds_eq_comap_inf_principal + def OpenPartialHomeomorph.ofContinuousOpen + def OpenPartialHomeomorph.ofContinuousOpenRestrict + theorem OpenPartialHomeomorph.refl_partialEquiv + theorem OpenPartialHomeomorph.refl_symm + theorem OpenPartialHomeomorph.secondCountableTopology_source + theorem OpenPartialHomeomorph.source_inter_preimage_inv_preimage + theorem OpenPartialHomeomorph.source_inter_preimage_target_inter + theorem OpenPartialHomeomorph.source_preimage_target + theorem OpenPartialHomeomorph.symm_image_eq_source_inter_preimage + theorem OpenPartialHomeomorph.symm_image_target_eq_source + theorem OpenPartialHomeomorph.symm_image_target_inter_eq + theorem OpenPartialHomeomorph.target_inter_inv_preimage_preimage + def OpenPartialHomeomorph.toHomeomorphOfSourceEqUnivTargetEqUniv + def OpenPartialHomeomorph.toHomeomorphSourceTarget + theorem OpenPartialHomeomorph.to_isOpenEmbedding + theorem TopologicalSpace.Opens.openPartialHomeomorphSubtypeCoe_coe + theorem TopologicalSpace.Opens.openPartialHomeomorphSubtypeCoe_source + theorem TopologicalSpace.Opens.openPartialHomeomorphSubtypeCoe_target + theorem Topology.IsOpenEmbedding.toOpenPartialHomeomorph_left_inv + theorem Topology.IsOpenEmbedding.toOpenPartialHomeomorph_right_inv Added Mathlib/Topology/OpenPartialHomeomorph/Composition.lean + def Homeomorph.transOpenPartialHomeomorph + theorem Homeomorph.transOpenPartialHomeomorph_eq_trans + theorem Homeomorph.transOpenPartialHomeomorph_trans + theorem Homeomorph.trans_toOpenPartialHomeomorph + theorem Homeomorph.trans_transOpenPartialHomeomorph + theorem OpenPartialHomeomorph.EqOnSource.trans' + theorem OpenPartialHomeomorph.coe_trans + theorem OpenPartialHomeomorph.coe_trans_symm + theorem OpenPartialHomeomorph.image_trans_source + theorem OpenPartialHomeomorph.inv_image_trans_target + theorem OpenPartialHomeomorph.ofSet_trans' + theorem OpenPartialHomeomorph.ofSet_trans + theorem OpenPartialHomeomorph.ofSet_trans_ofSet + theorem OpenPartialHomeomorph.refl_trans + theorem OpenPartialHomeomorph.restr_symm_trans + theorem OpenPartialHomeomorph.restr_trans + theorem OpenPartialHomeomorph.self_trans_symm + theorem OpenPartialHomeomorph.symm_trans_restr + theorem OpenPartialHomeomorph.symm_trans_self + theorem OpenPartialHomeomorph.trans_apply + theorem OpenPartialHomeomorph.trans_assoc + theorem OpenPartialHomeomorph.trans_ofSet + theorem OpenPartialHomeomorph.trans_of_set' + theorem OpenPartialHomeomorph.trans_refl + theorem OpenPartialHomeomorph.trans_source'' + theorem OpenPartialHomeomorph.trans_source' + theorem OpenPartialHomeomorph.trans_source + theorem OpenPartialHomeomorph.trans_symm_eq_symm_trans_symm + theorem OpenPartialHomeomorph.trans_target'' + theorem OpenPartialHomeomorph.trans_target' + theorem OpenPartialHomeomorph.trans_target + theorem OpenPartialHomeomorph.trans_toPartialEquiv Added Mathlib/Topology/OpenPartialHomeomorph/Constructions.lean + def OpenPartialHomeomorph.const + theorem OpenPartialHomeomorph.const_apply + theorem OpenPartialHomeomorph.const_source + theorem OpenPartialHomeomorph.const_target + def OpenPartialHomeomorph.disjointUnion + theorem OpenPartialHomeomorph.lift_openEmbedding_apply + theorem OpenPartialHomeomorph.lift_openEmbedding_source + theorem OpenPartialHomeomorph.lift_openEmbedding_symm + theorem OpenPartialHomeomorph.lift_openEmbedding_symm_source + theorem OpenPartialHomeomorph.lift_openEmbedding_symm_target + theorem OpenPartialHomeomorph.lift_openEmbedding_target + theorem OpenPartialHomeomorph.lift_openEmbedding_toFun + theorem OpenPartialHomeomorph.lift_openEmbedding_trans + theorem OpenPartialHomeomorph.lift_openEmbedding_trans_apply + theorem OpenPartialHomeomorph.map_subtype_source + def OpenPartialHomeomorph.pi + def OpenPartialHomeomorph.piecewise + def OpenPartialHomeomorph.prod + theorem OpenPartialHomeomorph.prod_eq_prod_of_nonempty' + theorem OpenPartialHomeomorph.prod_eq_prod_of_nonempty + theorem OpenPartialHomeomorph.prod_symm + theorem OpenPartialHomeomorph.prod_trans + theorem OpenPartialHomeomorph.refl_prod_refl + theorem OpenPartialHomeomorph.subtypeRestr_coe + theorem OpenPartialHomeomorph.subtypeRestr_def + theorem OpenPartialHomeomorph.subtypeRestr_source + theorem OpenPartialHomeomorph.subtypeRestr_symm_eqOn + theorem OpenPartialHomeomorph.subtypeRestr_symm_eqOn_of_le + theorem OpenPartialHomeomorph.subtypeRestr_symm_trans_subtypeRestr + theorem OpenPartialHomeomorph.symm_piecewise + def OpenPartialHomeomorph.transHomeomorph + theorem OpenPartialHomeomorph.transHomeomorph_eq_trans + theorem OpenPartialHomeomorph.transHomeomorph_transHomeomorph + theorem OpenPartialHomeomorph.trans_transHomeomorph Added Mathlib/Topology/OpenPartialHomeomorph/Continuity.lean + theorem OpenPartialHomeomorph.continuousAt_iff_continuousAt_comp_left + theorem OpenPartialHomeomorph.continuousAt_iff_continuousAt_comp_right + theorem OpenPartialHomeomorph.continuousAt_symm + theorem OpenPartialHomeomorph.continuousOn_iff_continuousOn_comp_left + theorem OpenPartialHomeomorph.continuousOn_iff_continuousOn_comp_right + theorem OpenPartialHomeomorph.continuousWithinAt_iff_continuousWithinAt_comp_left + theorem OpenPartialHomeomorph.continuousWithinAt_iff_continuousWithinAt_comp_right + theorem OpenPartialHomeomorph.continuous_iff_continuous_comp_left + theorem OpenPartialHomeomorph.eventually_left_inverse' + theorem OpenPartialHomeomorph.eventually_left_inverse + theorem OpenPartialHomeomorph.eventually_ne_nhdsWithin + theorem OpenPartialHomeomorph.eventually_nhds' + theorem OpenPartialHomeomorph.eventually_nhds + theorem OpenPartialHomeomorph.eventually_nhdsWithin' + theorem OpenPartialHomeomorph.eventually_nhdsWithin + theorem OpenPartialHomeomorph.eventually_right_inverse' + theorem OpenPartialHomeomorph.eventually_right_inverse + theorem OpenPartialHomeomorph.image_mem_nhds + theorem OpenPartialHomeomorph.map_nhdsWithin_eq + theorem OpenPartialHomeomorph.map_nhdsWithin_preimage_eq + theorem OpenPartialHomeomorph.map_nhds_eq + theorem OpenPartialHomeomorph.nhdsWithin_source_inter + theorem OpenPartialHomeomorph.nhdsWithin_target_inter + theorem OpenPartialHomeomorph.preimage_eventuallyEq_target_inter_preimage_inter + theorem OpenPartialHomeomorph.symm_map_nhds_eq + theorem OpenPartialHomeomorph.tendsto_symm Added Mathlib/Topology/OpenPartialHomeomorph/Defs.lean + def Homeomorph.toOpenPartialHomeomorph + def Homeomorph.toOpenPartialHomeomorphOfImageEq + def OpenPartialHomeomorph.Simps.apply + def OpenPartialHomeomorph.Simps.symm_apply + theorem OpenPartialHomeomorph.coe_coe + theorem OpenPartialHomeomorph.coe_coe_symm + theorem OpenPartialHomeomorph.continuousOn_symm + theorem OpenPartialHomeomorph.eq_symm_apply + theorem OpenPartialHomeomorph.invFun_eq_coe + theorem OpenPartialHomeomorph.left_inv + theorem OpenPartialHomeomorph.map_source'' + theorem OpenPartialHomeomorph.map_source + theorem OpenPartialHomeomorph.map_target + theorem OpenPartialHomeomorph.mk_coe + theorem OpenPartialHomeomorph.mk_coe_symm + def OpenPartialHomeomorph.replaceEquiv + theorem OpenPartialHomeomorph.replaceEquiv_eq_self + theorem OpenPartialHomeomorph.right_inv + theorem OpenPartialHomeomorph.symm_bijective + theorem OpenPartialHomeomorph.symm_source + theorem OpenPartialHomeomorph.symm_symm + theorem OpenPartialHomeomorph.symm_target + theorem OpenPartialHomeomorph.symm_toPartialEquiv + def OpenPartialHomeomorph.toFun' + theorem OpenPartialHomeomorph.toFun_eq_coe + theorem OpenPartialHomeomorph.toPartialEquiv_injective + structure OpenPartialHomeomorph Added Mathlib/Topology/OpenPartialHomeomorph/IsImage.lean + theorem Homeomorph.refl_toOpenPartialHomeomorph + theorem Homeomorph.symm_toOpenPartialHomeomorph + theorem OpenPartialHomeomorph.EqOnSource.eqOn + theorem OpenPartialHomeomorph.EqOnSource.restr + theorem OpenPartialHomeomorph.EqOnSource.source_eq + theorem OpenPartialHomeomorph.EqOnSource.symm' + theorem OpenPartialHomeomorph.EqOnSource.symm_eqOn_target + theorem OpenPartialHomeomorph.EqOnSource.target_eq + def OpenPartialHomeomorph.EqOnSource + theorem OpenPartialHomeomorph.IsImage.apply_mem_iff + theorem OpenPartialHomeomorph.IsImage.iff_preimage_eq' + theorem OpenPartialHomeomorph.IsImage.iff_preimage_eq + theorem OpenPartialHomeomorph.IsImage.iff_symm_preimage_eq' + theorem OpenPartialHomeomorph.IsImage.iff_symm_preimage_eq + theorem OpenPartialHomeomorph.IsImage.image_eq + theorem OpenPartialHomeomorph.IsImage.inter_eq_of_inter_eq_of_eqOn + theorem OpenPartialHomeomorph.IsImage.isOpen_iff + theorem OpenPartialHomeomorph.IsImage.leftInvOn_piecewise + theorem OpenPartialHomeomorph.IsImage.map_nhdsWithin_eq + theorem OpenPartialHomeomorph.IsImage.of_image_eq + theorem OpenPartialHomeomorph.IsImage.of_symm_image_eq + def OpenPartialHomeomorph.IsImage.restr + theorem OpenPartialHomeomorph.IsImage.symm_apply_mem_iff + theorem OpenPartialHomeomorph.IsImage.symm_eqOn_of_inter_eq_of_eqOn + theorem OpenPartialHomeomorph.IsImage.symm_iff + theorem OpenPartialHomeomorph.IsImage.symm_image_eq + theorem OpenPartialHomeomorph.IsImage.symm_mapsTo + theorem OpenPartialHomeomorph.IsImage.toPartialEquiv + def OpenPartialHomeomorph.IsImage + theorem OpenPartialHomeomorph.Set.EqOn.restr_eqOn_source + theorem OpenPartialHomeomorph.coe_restrOpen + theorem OpenPartialHomeomorph.coe_restrOpen_symm + theorem OpenPartialHomeomorph.eqOnSource_iff + theorem OpenPartialHomeomorph.eqOnSource_refl + theorem OpenPartialHomeomorph.eq_of_eqOnSource_univ + theorem OpenPartialHomeomorph.isImage_source_target + theorem OpenPartialHomeomorph.isImage_source_target_of_disjoint + def OpenPartialHomeomorph.ofSet + theorem OpenPartialHomeomorph.ofSet_symm + theorem OpenPartialHomeomorph.ofSet_toPartialEquiv + theorem OpenPartialHomeomorph.ofSet_univ_eq_refl + theorem OpenPartialHomeomorph.preimage_closure + theorem OpenPartialHomeomorph.preimage_frontier + theorem OpenPartialHomeomorph.preimage_interior + theorem OpenPartialHomeomorph.restrOpen_source + theorem OpenPartialHomeomorph.restrOpen_toPartialEquiv + theorem OpenPartialHomeomorph.restr_eqOnSource_restr + theorem OpenPartialHomeomorph.restr_eq_of_source_subset + theorem OpenPartialHomeomorph.restr_inter_source + theorem OpenPartialHomeomorph.restr_source' + theorem OpenPartialHomeomorph.restr_source_inter + theorem OpenPartialHomeomorph.restr_toPartialEquiv' + theorem OpenPartialHomeomorph.restr_toPartialEquiv + theorem OpenPartialHomeomorph.restr_univ 2025-12-09 05:22:19 996ee98 refactor(Algebra/Polynomial/Splits): continue deprecation (#32574) This PR continues the deprecation in `Splits.lean` as we move over to the new API in `Factors.lean`. ESTIMATED CHANGES Modified Mathlib/Algebra/Polynomial/Factors.lean + theorem Polynomial.Splits.eval_derivative + theorem Polynomial.Splits.eval_root_derivative + theorem Polynomial.Splits.of_splits_map Modified Mathlib/Algebra/Polynomial/Splits.lean - theorem Polynomial.aeval_derivative_of_splits - theorem Polynomial.aeval_root_derivative_of_splits - theorem Polynomial.eval_derivative_of_splits - theorem Polynomial.eval₂_derivative_of_splits - theorem Polynomial.splits_comp_of_splits - theorem Polynomial.splits_id_of_splits - theorem Polynomial.splits_of_comp Modified Mathlib/FieldTheory/Galois/Basic.lean Modified Mathlib/FieldTheory/IntermediateField/Adjoin/Basic.lean Modified Mathlib/FieldTheory/Normal/Basic.lean Modified Mathlib/FieldTheory/Normal/Defs.lean Modified Mathlib/FieldTheory/PolynomialGaloisGroup.lean Modified Mathlib/FieldTheory/SplittingField/IsSplittingField.lean Modified Mathlib/RingTheory/Discriminant.lean 2025-12-09 05:22:17 21ecf63 feat(RingTheory): More API for `Ideal.ResidueField` (#32375) ESTIMATED CHANGES Modified Mathlib/RingTheory/LocalRing/ResidueField/Fiber.lean Modified Mathlib/RingTheory/LocalRing/ResidueField/Ideal.lean + theorem Ideal.ResidueField.algHom_ext + theorem Ideal.ResidueField.lift_algebraMap + def Ideal.ResidueField.liftₐ + theorem Ideal.ResidueField.liftₐ_algebraMap + theorem Ideal.ResidueField.liftₐ_comp_toAlgHom + theorem Ideal.ResidueField.map_algebraMap +/- def Ideal.ResidueField.mapₐ +/- theorem Ideal.ResidueField.mapₐ_apply + theorem Ideal.ResidueField.ringHom_ext + theorem Ideal.algebraMap_quotient_residueField_mk - theorem algebraMap_mk Modified Mathlib/RingTheory/LocalRing/ResidueField/Instances.lean Modified Mathlib/RingTheory/Spectrum/Prime/Polynomial.lean Modified Mathlib/RingTheory/Spectrum/Prime/RingHom.lean 2025-12-09 05:22:15 66eafa5 feat(Combinatorics/SimpleGraph/Connectivity/Connected): a few lemmas about `Reachable` (#30570) ESTIMATED CHANGES Modified Mathlib/Combinatorics/SimpleGraph/Connectivity/Connected.lean + theorem SimpleGraph.Reachable.mono' + theorem SimpleGraph.adj_le_reachable + theorem SimpleGraph.reachable_eq_reflTransGen + theorem SimpleGraph.reachable_fromEdgeSet_eq_reflTransGen_toRel + theorem SimpleGraph.reachable_fromEdgeSet_fromRel_eq_reflTransGen 2025-12-09 05:22:13 0806ad5 feat(RingTheory): `ringKrullDim` of quotient via supportDim (#29937) In this PR, we establish some lemma about `ringKrullDim` of quotient via lemmas of `supportDim`. ESTIMATED CHANGES Modified Mathlib/RingTheory/KrullDimension/Regular.lean + theorem ringKrullDim_le_ringKrullDim_add_card + theorem ringKrullDim_le_ringKrullDim_add_spanFinrank + theorem ringKrullDim_le_ringKrullDim_quotSMulTop_succ + theorem ringKrullDim_quotSMulTop_succ_eq_ringKrullDim + theorem ringKrullDim_quotSMulTop_succ_eq_ringKrullDim_of_mem_jacobson 2025-12-09 05:22:09 585cee3 feat: define spectral spaces and prove that a quasi-compact open of a spectral space is spectral (#11090) Define spectral spaces and prove that a quasi-compact open of a spectral space is spectral. ESTIMATED CHANGES Modified Mathlib/Topology/QuasiSeparated.lean + theorem Topology.IsOpenEmbedding.quasiSeparatedSpace Modified Mathlib/Topology/Spectral/Basic.lean + theorem Topology.IsOpenEmbedding.spectralSpace Modified Mathlib/Topology/Spectral/Prespectral.lean + theorem Topology.IsOpenEmbedding.prespectralSpace 2025-12-09 04:22:10 cf617dd feat(RingTheory): descend finiteness along quotients by nilpotent ideals (#32536) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/RingTheory/Finiteness/NilpotentKer.lean + theorem Module.finite_of_surjective_of_ker_le_nilradical 2025-12-09 04:22:08 e9a19f3 chore(Order/WithBot): add `to_dual` attributes (part 1) (#32498) ESTIMATED CHANGES Modified Mathlib/Order/WithBot.lean +/- def Equiv.withBotSubtypeNe - def Equiv.withTopCongr - theorem Equiv.withTopCongr_refl - theorem Equiv.withTopCongr_symm - theorem Equiv.withTopCongr_trans - def Equiv.withTopSubtypeNe +/- theorem WithBot.coe_eq_top +/- theorem WithBot.coe_top +/- theorem WithBot.coe_unbot +/- theorem WithBot.map_comp_map +/- theorem WithBot.map₂_bot_left +/- theorem WithBot.map₂_bot_right +/- theorem WithBot.map₂_coe_coe +/- theorem WithBot.map₂_coe_left +/- theorem WithBot.map₂_coe_right +/- theorem WithBot.map₂_eq_bot_iff +/- theorem WithBot.top_eq_coe - theorem WithTop.bot_eq_coe - theorem WithTop.coe_bot - theorem WithTop.coe_eq_bot - theorem WithTop.coe_eq_coe - theorem WithTop.coe_inj - theorem WithTop.coe_injective - theorem WithTop.coe_ne_top - theorem WithTop.coe_untop - theorem WithTop.comp_map - theorem WithTop.eq_top_iff_forall_ne - theorem WithTop.eq_untop_iff - theorem WithTop.exists_ne_top - theorem WithTop.forall_ne_top - def WithTop.map - theorem WithTop.map_coe - theorem WithTop.map_comm - theorem WithTop.map_comp_map - theorem WithTop.map_eq_some_iff - theorem WithTop.map_eq_top_iff - theorem WithTop.map_id - theorem WithTop.map_injective - theorem WithTop.map_map - theorem WithTop.map_top - def WithTop.map₂ - theorem WithTop.map₂_coe_coe - theorem WithTop.map₂_coe_left - theorem WithTop.map₂_coe_right - theorem WithTop.map₂_eq_top_iff - theorem WithTop.map₂_top_left - theorem WithTop.map₂_top_right - theorem WithTop.ne_top_iff_exists - theorem WithTop.none_eq_top - theorem WithTop.some_eq_coe - theorem WithTop.some_eq_map_iff - theorem WithTop.top_ne_coe - def WithTop.untop - theorem WithTop.untopA_eq_untop - def WithTop.untopD - theorem WithTop.untopD_coe - theorem WithTop.untopD_eq_iff - theorem WithTop.untopD_eq_self_iff - theorem WithTop.untopD_eq_untopD_iff - theorem WithTop.untopD_top - theorem WithTop.untop_coe - theorem WithTop.untop_eq_iff 2025-12-09 04:22:06 4434451 refactor(LinearAlgebra/Matrix): generalize positive semidefinite matrices to infinite dimensions (#31746) ESTIMATED CHANGES Modified Mathlib/Analysis/InnerProductSpace/GramMatrix.lean Modified Mathlib/Analysis/InnerProductSpace/Positive.lean Modified Mathlib/Analysis/Matrix/Order.lean Modified Mathlib/Analysis/Matrix/PosDef.lean Modified Mathlib/Combinatorics/SimpleGraph/LapMatrix.lean Modified Mathlib/Data/Finsupp/Defs.lean + theorem Finsupp.mapRange_eq_zero Modified Mathlib/Data/Finsupp/Order.lean + theorem Finsupp.sum_pos' + theorem Finsupp.sum_pos Modified Mathlib/Data/Matrix/Diagonal.lean + theorem Matrix.intCast_apply Modified Mathlib/LinearAlgebra/Matrix/PosDef.lean + theorem Matrix.PosDef.dotProduct_mulVec_pos + theorem Matrix.PosDef.of_dotProduct_mulVec_pos + theorem Matrix.PosDef.of_subsingleton +/- theorem Matrix.PosDef.posSemidef +/- theorem Matrix.PosSemidef.conjTranspose_mul_mul_same + theorem Matrix.PosSemidef.dotProduct_mulVec_nonneg +/- theorem Matrix.PosSemidef.mul_mul_conjTranspose_same + theorem Matrix.PosSemidef.of_dotProduct_mulVec_nonneg +/- def Matrix.PosSemidef + theorem Matrix.posDef_iff_dotProduct_mulVec +/- theorem Matrix.posSemidef_diagonal_iff + theorem Matrix.posSemidef_iff_dotProduct_mulVec Modified Mathlib/LinearAlgebra/SesquilinearForm/Star.lean 2025-12-09 03:43:30 ef704c5 feat(GroupTheory/OrderOfElement): `Pi.orderOf_eq` and its related and depended-upon theorems related to `Pi`, `minimalPeriod`, and `IsPeriodicPt` (#29204) The need for `Pi.orderOf_eq` comes in helping prove the value of the order of a `ZMod` number when used with `ZMod.prodEquivPi`. At first I was only trying to prove `(a : (i : Fin n) → α i) : orderOf a = Finset.univ.lcm (fun i => orderOf (a i))`, but after seeing the "Corresponding `pi` lemmas" comment, I realized that this could be generalized to Pi-types (`Pi`) and also some related and dependent theorems are not implemented yet, so I went on to add and prove these referring to those similar ones for product types (`Prod`). ESTIMATED CHANGES Modified Mathlib/GroupTheory/OrderOfElement.lean +/- theorem IsOfFinOrder.fst +/- theorem IsOfFinOrder.snd + theorem Pi.orderOf_eq_sInf + theorem orderOf_apply_dvd_orderOf 2025-12-09 02:28:28 6a7d903 chore(RingTheory): better defeqs for `PrimeSpectrum.preimageOrderIsoTensorResidueField` (#30885) ESTIMATED CHANGES Modified Mathlib/RingTheory/Ideal/Prime.lean + theorem Ideal.IsPrime.mul_mem_left_iff + theorem Ideal.IsPrime.mul_mem_right_iff Modified Mathlib/RingTheory/KrullDimension/Polynomial.lean Modified Mathlib/RingTheory/LocalRing/ResidueField/Fiber.lean + theorem Ideal.Fiber.exists_smul_eq_one_tmul + theorem Ideal.ResidueField.exists_smul_eq_tmul_one Modified Mathlib/RingTheory/LocalRing/ResidueField/Ideal.lean + theorem Ideal.surjectiveOnStalks_residueField 2025-12-09 01:44:29 c25bbe0 feat(Topology): basic properties of discrete sets (#32530) ESTIMATED CHANGES Modified Mathlib/Topology/DiscreteSubset.lean + theorem IsDiscrete.eq_of_specializes + theorem IsDiscrete.image + theorem IsDiscrete.image_of_isOpenMap + theorem IsDiscrete.image_of_isOpenMap_of_isOpen + theorem IsDiscrete.of_nhdsWithin + theorem IsDiscrete.preimage' + theorem IsDiscrete.preimage + theorem IsDiscrete.univ + theorem IsEmbedding.isDiscrete_range + theorem IsOpenMap.isDiscrete_range + theorem Set.Subsingleton.isDiscrete + theorem isDiscrete_iff_nhdsWithin + theorem isDiscrete_univ_iff Modified Mathlib/Topology/Separation/Basic.lean 2025-12-09 01:15:36 38d5d84 feat(Analysis/SpecialFunctions): prove expNegInvGlue is not analytic at zero (#32379) Previously expNegInvGlue was shown to have a property not possible by analytic functions; here we add a proof that the function is not analytic. Closes #31209 ESTIMATED CHANGES Modified Mathlib/Analysis/SpecialFunctions/SmoothTransition.lean + theorem expNegInvGlue.not_analyticAt_zero 2025-12-09 00:49:00 84ddc46 feat(LinearAlgebra/PiTensorProduct): `PiTensorProduct`s over `Finsupp`, `DFinsupp`, and `DirectSum` (#32456) Adds linear equivalences for `PiTensorProduct`s taken over `Finsupp`, `DFinsupp`, and `DirectSum`. The main definitions are: * `PiTensorProduct.ofDFinsuppEquiv` is the linear equivalence of tensor products over `DFinsupp` to a `DFinsupp` of tensor products * `PiTensorProduct.ofFinsuppEquiv` is the linear equivalence of tensor products over `Finsupp` to a `Finsupp` of tensor products * `PiTensorProduct.ofDirectSumEquiv` is the linear equivalence of tensor products over a direct sum to the direct sum over tensor products ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/LinearAlgebra/PiTensorProduct/DFinsupp.lean + def PiTensorProduct.ofDFinsuppEquiv + theorem PiTensorProduct.ofDFinsuppEquiv_symm_single_tprod + theorem PiTensorProduct.ofDFinsuppEquiv_tprod_apply + theorem PiTensorProduct.ofDFinsuppEquiv_tprod_single Added Mathlib/LinearAlgebra/PiTensorProduct/DirectSum.lean + theorem PiTensorProduct.ofDirectSumEquiv_symm_lof_tprod + theorem PiTensorProduct.ofDirectSumEquiv_tprod_apply + theorem PiTensorProduct.ofDirectSumEquiv_tprod_lof Added Mathlib/LinearAlgebra/PiTensorProduct/Finsupp.lean + theorem PiTensorProduct.ofFinsuppEquiv'_apply_apply + theorem PiTensorProduct.ofFinsuppEquiv'_tprod_single + theorem PiTensorProduct.ofFinsuppEquiv_apply + theorem PiTensorProduct.ofFinsuppEquiv_symm_single_tprod + theorem PiTensorProduct.ofFinsuppEquiv_tprod_single 2025-12-08 23:40:02 4d124cb fix(scripts/lint-style): improve Mathlib.Init import error messages (#32419) Improve the `checkInitImports` linter by: 1. Accepting transitive imports (not just direct) for the `Mathlib.Init` check 2. Removing hardcoded exceptions for transitively imported files 3. Making error messages actionable with specific advice ### Two cases with different advice 1. **Transitively imported by `Mathlib.Init`** → add `import Mathlib.Tactic.Linter.Header` 2. **NOT imported by `Mathlib.Init`** → add `import Mathlib.Init` ### Example output **Case 1: Transitively imported by Init** ``` • `Mathlib.Util.SomeFile` is transitively imported by `Mathlib.Init`. Please add `import Mathlib.Tactic.Linter.Header` to `Mathlib.Util.SomeFile`. ``` **Case 2: Not imported by Init** ``` • `Mathlib.Util.TestFile` is NOT imported by `Mathlib.Init`. Please add `import Mathlib.Init` to `Mathlib.Util.TestFile`. ``` Prompted by confusion when working on https://github.com/leanprover-community/mathlib4/pull/32416 - the old error message just said files didn't import `Mathlib.Init` without explaining what to do when adding that import would create a cycle. Discussion: https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Mathlib.2EInit.20linter.20error 🤖 Prepared with Claude Code ESTIMATED CHANGES Modified scripts/lint-style.lean 2025-12-08 23:04:50 89e3baf chore(LinearAlgebra/Dimension): generalize and golf (#32339) LinearAlgebra/Dimension/Finite.lean: generalize Ring/AddCommGroup to Semiring/AddCommMonoid whenever possible LinearAlgebra/Dimension/DivisionRing.lean: generalize DivisionRing to OrzechProperty, move to new file OrzechProperty.lean ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Module/ZLattice/Basic.lean Modified Mathlib/FieldTheory/PerfectClosure.lean Modified Mathlib/FieldTheory/PurelyInseparable/PerfectClosure.lean Modified Mathlib/LinearAlgebra/AffineSpace/FiniteDimensional.lean Modified Mathlib/LinearAlgebra/Dimension/DivisionRing.lean - theorem coe_basisOfTopLeSpanOfCardEqFinrank - theorem linearIndependent_iff_card_eq_finrank_span - theorem linearIndependent_iff_card_le_finrank_span - theorem linearIndependent_of_top_le_span_of_card_eq_finrank Modified Mathlib/LinearAlgebra/Dimension/Finite.lean +/- theorem Module.finite_of_rank_eq_zero +/- theorem Module.nontrivial_of_finrank_pos +/- theorem rank_eq_zero_iff + theorem rank_le_one Added Mathlib/LinearAlgebra/Dimension/OrzechProperty.lean + theorem coe_basisOfTopLeSpanOfCardEqFinrank + theorem linearIndependent_iff_card_eq_finrank_span + theorem linearIndependent_iff_card_le_finrank_span + theorem linearIndependent_of_top_le_span_of_card_eq_finrank + theorem linearIndependent_of_top_le_span_of_card_le_finrank Modified Mathlib/LinearAlgebra/Matrix/Rank.lean Modified Mathlib/RingTheory/LocalRing/Quotient.lean 2025-12-08 21:44:37 7a95488 perf(Analysis.Complex.Exponential): make `Complex.exp` an `irreducible_def` (#32599) Recall that `irreducible_def` creates a declaration that is not unfolded by both the elaborator and the kernel (without some special effort). Currently, `UpperHalfPlane.isometry_vertical_line` takes a long time to type check in the kernel because it attempts to unfold `Real.exp` during whnf. Unfolding `Real.exp` quickly leads to unfolding `Complex.exp`. I don't think there is any good reason to want to unfold `Complex.exp` so this PR makes it an `irreducible_def`. ESTIMATED CHANGES Modified Mathlib/Analysis/Complex/Exponential.lean - def Complex.exp Modified MathlibTest/Recall.lean 2025-12-08 21:44:35 666e433 doc: uniformize language (#32426) Uniformize the language in docstrings referring to the three main functions of value distribution theory. ESTIMATED CHANGES Modified Mathlib/Analysis/Complex/ValueDistribution/CharacteristicFunction.lean Modified Mathlib/Analysis/Complex/ValueDistribution/CountingFunction.lean 2025-12-08 20:39:10 f11bc92 feat(Data/List/Cycle): `{next,prev}_getElem` without `Nodup` + infix theorems (#31986) - `List.next`: - `l.next a = l[l.idxOf a + 1]` and `[a, l.next a] <:+: l` - unless `a` is the last element, in which case `l.next l.getLast = l.head` - and in general `l.next a = l[(l.idxOf a + 1) % l.length]` - `List.prev`: - `l.prev a = l[l.idxOf a - 1]` and `[l.prev a, a] <:+: l` - unless `a` is the first element, in which case `l.prev l.head = l.getLast` - and in general `l.prev a = l[(l.idxOf a + (l.length - 1)) % l.length]` ESTIMATED CHANGES Modified Mathlib/Data/List/Basic.lean + theorem List.IsPrefix.mem_iff_idxOf_lt_length + theorem List.idxOf_getLast + theorem List.mem_dropLast_iff_idxOf_lt + theorem List.mem_dropLast_of_mem_of_ne_getLast + theorem List.mem_dropLast_of_mem_of_ne_getLast? + theorem List.mem_dropLast_of_mem_of_ne_getLastD + theorem List.mem_take_iff_idxOf_lt + theorem List.succ_idxOf_lt_length_of_mem_dropLast Modified Mathlib/Data/List/Cycle.lean + theorem List.nextOr_eq_getElem?_idxOf_succ_of_mem_dropLast + theorem List.nextOr_eq_getElem_idxOf_succ_of_mem_dropLast + theorem List.nextOr_getLast_of_notMem_dropLast + theorem List.nextOr_infix_of_mem_dropLast + theorem List.next_eq_getElem + theorem List.next_getLast_eq_head_of_notMem_dropLast + theorem List.prev_eq_getElem + theorem List.prev_eq_getElem?_idxOf_pred_of_ne_head + theorem List.prev_eq_getElem_idxOf_pred_of_ne_head + theorem List.prev_head_eq_getLast + theorem List.prev_infix_of_mem_tail 2025-12-08 19:50:38 4416d9e chore(Algebra/Category/ModuleCat): remove use of `erw` (#32554) ESTIMATED CHANGES Modified Mathlib/Algebra/Category/ModuleCat/ChangeOfRings.lean 2025-12-08 18:59:18 323a70d feat(LinearAlgebra/GeneralLinearGroup): algebra automorphisms in endomorphisms are inner (#28100) Characterization of automorphisms in endomorphisms of vector spaces: for any algebra automorphism `f : End R V ≃ₐ[R] End R V`, there exists a linear isomorphism `T` such that `f a = T.conj a = T ∘ a ∘ T.symm` for all `a`. This does not suppose finite-dimensionality. Also moves `LinearAlgebra/GeneralLinearGroup` to `LinearAlgebra/GeneralLinearGroup/Basic`. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Algebra/Equiv.lean + def LinearEquiv.conjAlgEquiv + theorem LinearEquiv.conjAlgEquiv_apply + theorem LinearEquiv.symm_conjAlgEquiv Modified Mathlib/Algebra/Azumaya/Basic.lean Modified Mathlib/Algebra/Module/LinearMap/End.lean +/- theorem LinearMap.smulRightₗ_apply + theorem LinearMap.smulRightₗ_apply_apply Modified Mathlib/LinearAlgebra/AffineSpace/AffineEquiv.lean Modified Mathlib/LinearAlgebra/Determinant.lean Modified Mathlib/LinearAlgebra/Dual/Lemmas.lean + theorem Module.Projective.exists_dual_eq_one + theorem Module.Projective.exists_dual_ne_zero Modified Mathlib/LinearAlgebra/Eigenspace/Basic.lean Added Mathlib/LinearAlgebra/GeneralLinearGroup/AlgEquiv.lean Renamed Mathlib/LinearAlgebra/GeneralLinearGroup.lean to Mathlib/LinearAlgebra/GeneralLinearGroup/Basic.lean Modified Mathlib/LinearAlgebra/Matrix/GeneralLinearGroup/Defs.lean Modified Mathlib/LinearAlgebra/Matrix/ToLin.lean - def LinearEquiv.algConj Modified Mathlib/LinearAlgebra/Projection.lean Modified Mathlib/LinearAlgebra/SpecialLinearGroup.lean Modified Mathlib/LinearAlgebra/UnitaryGroup.lean Modified Mathlib/NumberTheory/Modular.lean Modified Mathlib/RingTheory/SimpleModule/WedderburnArtin.lean 2025-12-08 18:18:43 e9bc3ca chore: deprecate `ENat.not_lt_zero` in favor of `not_lt_zero` (#32381) ESTIMATED CHANGES Modified Mathlib/Data/ENat/Basic.lean - theorem ENat.not_lt_zero 2025-12-08 17:39:52 151fb3b feat: generalize `continuousAt_zero_of_locally_bounded` to nontrivially normed fields (#32475) Also: - golf the proof a bit - in this file, change all `[UniformSpace E] [IsUniformAddGroup E]` to `[TopologicalSpace E] [IsTopologicalAddGroup E]` (the statements do not mention the uniform structure) - semilinearize [LinearMap.clmOfExistsBoundedImage](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Analysis/LocallyConvex/ContinuousOfBounded.html#LinearMap.clmOfExistsBoundedImage) The only downside is an extra `[RingHomIsometric σ]` assumption, but I think this does not matter (in fact it would be enough to assume continuity of `σ`, which is always true in practice). ESTIMATED CHANGES Modified Mathlib/Analysis/LocallyConvex/ContinuousOfBounded.lean +/- def LinearMap.clmOfExistsBoundedImage +/- theorem LinearMap.clmOfExistsBoundedImage_apply +/- theorem LinearMap.clmOfExistsBoundedImage_coe +/- theorem LinearMap.continuous_of_locally_bounded 2025-12-08 17:39:51 dea2b18 feat(Algebra/Module/Submodule): characterise when `submoduleOf` is `⊤` (#32463) From ClassFieldTheory ESTIMATED CHANGES Modified Mathlib/Algebra/Module/Submodule/Range.lean + theorem Submodule.submoduleOf_eq_top 2025-12-08 17:39:49 70825e9 chore(Topology/Order/Basic): golf `instIsCountablyGenerated_atTop` (#32451) ESTIMATED CHANGES Modified Mathlib/Topology/Order/Basic.lean 2025-12-08 17:39:46 139bbd9 feat: MulAction.fixedPoints and MulAction.fixedBy under MulActionHom (#31528) MulActionHom maps fixedPoints to fixedPoints and fixedBy to fixedBy. ESTIMATED CHANGES Modified Mathlib/GroupTheory/GroupAction/FixedPoints.lean + theorem MulActionHom.map_mem_fixedBy + theorem MulActionHom.map_mem_fixedPoints 2025-12-08 16:53:20 3cd9e38 chore(CStarAlgebra): only import Liouville's theorem privately (#32561) Liouville's theorem (and therefore a huge amount of complex analysis) is currently imported in all of the material on C*-algebras, purely for the proof that the spectrum is nonempty. This PR privatizes this import in the relevant files and ensures that the downstream files don't need to import huge amounts of measure theory. ESTIMATED CHANGES Modified Mathlib/Analysis/CStarAlgebra/Module/Constructions.lean Modified Mathlib/Analysis/CStarAlgebra/Module/Defs.lean Modified Mathlib/Analysis/Normed/Algebra/GelfandFormula.lean Modified Mathlib/Analysis/SpecialFunctions/ContinuousFunctionalCalculus/Rpow/IntegralRepresentation.lean 2025-12-08 16:53:18 aa84d92 chore: update Mathlib dependencies 2025-12-08 (#32512) This PR updates the Mathlib dependencies. ESTIMATED CHANGES Modified Mathlib/Analysis/AbsoluteValue/Equivalence.lean Modified Mathlib/Tactic/ArithMult.lean Modified Mathlib/Tactic/ContinuousFunctionalCalculus.lean Modified lake-manifest.json 2025-12-08 16:53:15 5686b1b chore: simplify some proofs with `wlog!` (#32454) This commit simplifies some proofs that used `wlog` and did things `push_neg` does, with `wlog!` a new variant of `wlog`. ESTIMATED CHANGES Modified Counterexamples/AharoniKorman.lean Modified Mathlib/Algebra/CharP/Defs.lean Modified Mathlib/Algebra/Order/Field/Basic.lean Modified Mathlib/Algebra/Polynomial/RuleOfSigns.lean Modified Mathlib/Analysis/AbsoluteValue/Equivalence.lean Modified Mathlib/Analysis/Analytic/IsolatedZeros.lean Modified Mathlib/Analysis/Calculus/ContDiff/FaaDiBruno.lean Modified Mathlib/Analysis/Normed/Field/Basic.lean Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Bounds.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Countable.lean Modified Mathlib/Data/Set/Enumerate.lean Modified Mathlib/GroupTheory/ArchimedeanDensely.lean Modified Mathlib/GroupTheory/OreLocalization/Cardinality.lean Modified Mathlib/Logic/Godel/GodelBetaFunction.lean Modified Mathlib/MeasureTheory/Constructions/Polish/Basic.lean Modified Mathlib/Order/Fin/Basic.lean Modified Mathlib/Probability/Moments/IntegrableExpMul.lean Modified Mathlib/RingTheory/MvPolynomial/MonomialOrder.lean Modified Mathlib/Topology/Algebra/Order/Group.lean Modified Mathlib/Topology/Algebra/Valued/LocallyCompact.lean Modified Mathlib/Topology/EMetricSpace/PairReduction.lean Modified Mathlib/Topology/MetricSpace/Ultra/Basic.lean Modified Mathlib/Topology/Order/LeftRightNhds.lean 2025-12-08 16:53:13 7c4f93d chore(Data/Finset/Basic): use more dot notation in `Data.Finset.Basic` (#31838) ESTIMATED CHANGES Modified Mathlib/Data/Finset/Basic.lean +/- theorem Finset.attach_empty +/- theorem Finset.choose_mem +/- theorem Finset.choose_property +/- theorem Finset.choose_spec +/- theorem Finset.erase_eq_iff_eq_insert +/- theorem Finset.erase_injOn' +/- theorem Finset.erase_insert +/- theorem Finset.erase_insert_subset +/- theorem Finset.filter_erase +/- theorem Finset.filter_inter +/- theorem Finset.insert_erase +/- theorem Finset.insert_erase_subset +/- theorem Finset.inter_filter +/- theorem Finset.sdiff_eq_filter +/- theorem Finset.sdiff_singleton_eq_erase +/- theorem Finset.subset_insert_iff +/- theorem Multiset.toFinset_add +/- theorem Multiset.toFinset_inter 2025-12-08 16:53:11 ac5606c feat(Combinatorics/Enumerative/Catalan): large and small Schröder numbers (#30609) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Order/BigOperators/Group/LocallyFinite.lean - theorem Finset.sum_Ico_add_eq_sum_Ico_add_one Modified Mathlib/Combinatorics/Enumerative/Catalan.lean Modified Mathlib/Combinatorics/Enumerative/DyckWord.lean Added Mathlib/Combinatorics/Enumerative/Schroder.lean + theorem Nat.even_largeSchroder + def Nat.largeSchroder + theorem Nat.largeSchroder_one + theorem Nat.largeSchroder_succ + theorem Nat.largeSchroder_two + theorem Nat.largeSchroder_zero + def Nat.smallSchroder + theorem Nat.smallSchroder_one + theorem Nat.smallSchroder_succ + theorem Nat.smallSchroder_succ_eq_largeSchroder_div_two + theorem Nat.smallSchroder_zero + theorem Nat.two_mul_smallSchroder_succ 2025-12-08 15:13:42 740623c chore: fix `volume_tac` macro (#32586) The `first | ` bit in the macro is redundant. ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Measure/MeasureSpaceDef.lean 2025-12-08 15:13:41 f890c3e chore: golf using `ext; simpa` (#32553) ESTIMATED CHANGES Modified Mathlib/Algebra/Star/Pointwise.lean Modified Mathlib/Data/Set/Function.lean Modified Mathlib/Order/Atoms/Finite.lean Modified Mathlib/Order/ConditionallyCompleteLattice/Indexed.lean Modified Mathlib/RingTheory/DedekindDomain/Ideal/Lemmas.lean 2025-12-08 15:13:38 60579c1 chore(Probability/Martingale): remove use of `erw` in `Martingale.bddAbove_range_iff_bddBelow_range` (#32547) ESTIMATED CHANGES Modified Mathlib/Probability/Martingale/BorelCantelli.lean 2025-12-08 15:13:36 0d707be chore(Algebra/Homology/HomotopyCategory): remove use of `erw` in `shiftIso_hom_app` and `shiftIso_inv_app` (#32538) ESTIMATED CHANGES Modified Mathlib/Algebra/Homology/HomotopyCategory/ShiftSequence.lean 2025-12-08 15:13:34 ca01d25 chore(Data/Num): remove uses of `erw` in `of_to_nat'` (#32522) ESTIMATED CHANGES Modified Mathlib/Data/Num/Lemmas.lean 2025-12-08 15:13:32 4a5cbc7 chore(ModelTheory): remove use of `erw` in `comp` (#32506) ESTIMATED CHANGES Modified Mathlib/ModelTheory/ElementaryMaps.lean 2025-12-08 15:13:30 647af43 chore(Algebra/Homology/ShortComplex): remove use of `erw` in `cyclesIsoSc'_inv_iCycles` and `pOpcycles_opcyclesIsoSc'_hom` (#32484) ESTIMATED CHANGES Modified Mathlib/Algebra/Homology/ShortComplex/HomologicalComplex.lean 2025-12-08 15:13:28 d31661f chore: golf using `simpa` (#32483) ESTIMATED CHANGES Modified Mathlib/Algebra/Homology/Embedding/Extend.lean Modified Mathlib/Algebra/Polynomial/Smeval.lean Modified Mathlib/Analysis/Calculus/FDeriv/Analytic.lean Modified Mathlib/Analysis/InnerProductSpace/Orthogonal.lean Modified Mathlib/Data/Finset/Prod.lean 2025-12-08 15:13:27 b48293a chore(MeasureTheory/VectorMeasure): remove use of `erw` in `toMeasureOfLEZero_apply` (#32466) ESTIMATED CHANGES Modified Mathlib/MeasureTheory/VectorMeasure/Basic.lean 2025-12-08 15:13:24 0d4c62d feat(RingTheory/Smooth): smooth algebra over Noetherian base is flat (#32064) Co-authored by: Judith Ludwig ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/RingTheory/AdicCompletion/Algebra.lean + def AdicCompletion.evalOneₐ + theorem AdicCompletion.evalOneₐ_liftAlgHom + theorem AdicCompletion.evalOneₐ_of + theorem AdicCompletion.evalOneₐ_surjective + theorem AdicCompletion.evalₐ_liftAlgHom + theorem AdicCompletion.ext_evalₐ + theorem AdicCompletion.factorₐ_evalₐ_one + theorem AdicCompletion.kerProj_of + theorem AdicCompletion.kerProj_surjective + def AdicCompletion.liftAlgHom + theorem AdicCompletion.mk_ofAlgEquiv_symm_eq_evalOneₐ Modified Mathlib/RingTheory/AdicCompletion/RingHom.lean + theorem IsAdicComplete.algHom_ext + def IsAdicComplete.liftAlgHom + theorem IsAdicComplete.mk_liftAlgHom + theorem IsAdicComplete.mkₐ_comp_liftAlgHom Modified Mathlib/RingTheory/Ideal/Quotient/Operations.lean + theorem DoubleQuot.quotQuotEquivQuotOfLEₐ_comp_mkₐ + theorem Ideal.Quotient.factorₐ_refl + theorem Ideal.quotientKerAlgEquivOfSurjective_mk + theorem Ideal.quotientKerAlgEquivOfSurjective_symm_apply Added Mathlib/RingTheory/Smooth/AdicCompletion.lean + theorem Algebra.FormallySmooth.factorₐ_comp_liftAdicCompletionAux + theorem Algebra.FormallySmooth.factorₐ_comp_liftAdicCompletionAux_of_le Added Mathlib/RingTheory/Smooth/Flat.lean + theorem Algebra.FormallySmooth.flat_of_algHom_of_isNoetherianRing Modified docs/references.bib 2025-12-08 14:29:58 88aaf58 chore(CategoryTheory/Limits): remove use of `erw` in `prod_preservesConnectedLimits` (#32545) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Limits/Connected.lean 2025-12-08 14:29:55 ed77abe chore: additivise `MulOpposite.op_finsuppSum` to itself (#32501) In `to_additive` there is this weird quirk about the implementation that when translating `A.B`, it looks for a translation of `A.B` and otherwise for a translation of just `A`, and tries that. This behavior causes trouble in #25273 and I must therefore tag `MulOpposite.op_finsuppSum` and a few other lemmas with `to_additive self` to make sure `to_additive` doesn't try to additivise them. ESTIMATED CHANGES Modified Mathlib/Algebra/BigOperators/Finsupp/Basic.lean +/- theorem MulOpposite.op_finsuppSum +/- theorem MulOpposite.unop_finsuppSum 2025-12-08 14:29:53 eb93f7a chore(RingTheory/Polynomial): make `Ideal.isPrime_map_C_of_isPrime` an instance (#32472) ESTIMATED CHANGES Modified Mathlib/RingTheory/Polynomial/Basic.lean - theorem Ideal.isPrime_map_C_of_isPrime Modified Mathlib/RingTheory/Spectrum/Prime/IsOpenComapC.lean 2025-12-08 14:02:16 90e1227 chore(CategoryTheory/Limits): remove use of `erw` in `colimit.ι_pre` (#32548) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Limits/HasLimits.lean 2025-12-08 14:02:13 cc32bd1 feat(Data/List/GetD): golf and add lemmas for `get` and `getElem?` (#30213) ESTIMATED CHANGES Modified Mathlib/Data/List/GetD.lean + theorem List.getD_eq_get - theorem List.getD_eq_getD_getElem? + theorem List.getD_eq_getElem? +/- theorem List.getD_map +/- theorem List.getD_replicate +/- theorem List.getElem?_getD_singleton_default_eq 2025-12-08 14:02:10 796f1ff feat: Catalan generating function as a formal power series (#29361) We introduce the Catalan generating function as a formal power series over `ℕ`. ## Main Definitions * `PowerSeries.catalanSeries`: The Catalan generating function as a power series. ## Main Results * `PowerSeries.sum_coeff_X_catalanSeries`: When `n` is a natural number, each term in the sum `coeff i X * catalan (n - i)` is 0 except for `i = 1`. * `PowerSeries.coeff_X_mul_catalanSeries`: The coefficient of `X * catalanSeries` at `X^n` is `catalan (n - 1)` when `n > 0`. * `PowerSeries.catalanSeries_one_add_X_mul_self_sq`: The Catalan generating function satisfies the equation `catalanSeries = 1 + X * catalanSeries ^ 2`. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/RingTheory/PowerSeries/Catalan.lean + def PowerSeries.catalanSeries + theorem PowerSeries.catalanSeries_coeff + theorem PowerSeries.catalanSeries_constantCoeff + theorem PowerSeries.catalanSeries_sq_mul_X_add_one 2025-12-08 13:24:05 cce6c32 chore: golf proof of `FirstOrder.Language.ElementaryEmbedding.injective` (#32495) ESTIMATED CHANGES Modified Mathlib/ModelTheory/ElementaryMaps.lean 2025-12-08 13:24:03 716ac68 feat(AlgebraicTopology): dimension of simplicial sets (#32201) For a simplicial set `X` and `d : ℕ`, we introduce a typeclass `X.HasDimensionLT d` saying that the dimension of `X` is `< d`, i.e. all nondegenerate simplices of `X` are of dimension `< d`. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/AlgebraicTopology/SimplicialSet/Dimension.lean + theorem SSet.Subcomplex.eq_top_iff_of_hasDimensionLT + theorem SSet.Subcomplex.hasDimensionLT_of_le + theorem SSet.Subcomplex.le_iff_of_hasDimensionLT + theorem SSet.degenerate_eq_top_of_hasDimensionLT + theorem SSet.dim_le_of_nonDegenerate + theorem SSet.dim_lt_of_nonDegenerate + theorem SSet.hasDimensionLT_iSup_iff + theorem SSet.hasDimensionLT_iff_of_iso + theorem SSet.hasDimensionLT_of_epi + theorem SSet.hasDimensionLT_of_le + theorem SSet.hasDimensionLT_of_mono + theorem SSet.hasDimensionLT_subcomplex_top_iff + theorem SSet.nonDegenerate_eq_bot_of_hasDimensionLT Modified Mathlib/AlgebraicTopology/SimplicialSet/StdSimplex.lean 2025-12-08 13:24:01 62c67eb feat(Geometry/Euclidean/Angle/Sphere): unoriented law of sines with circumradius (#32004) We have the law of sines involving the circumradius for oriented angles in `Mathlib.Geometry.Euclidean.Angle.Sphere`, and for unoriented angles in a form not involving the circumradius in `Mathlib.Geometry.Euclidean.Triangle`. Add a version involving the circumradius but with unoriented angles, deduced from the oriented angles version via moving to a two-dimensional subspace and picking an orientation. ESTIMATED CHANGES Modified Mathlib/Geometry/Euclidean/Angle/Sphere.lean + theorem Affine.Triangle.dist_div_sin_angle_div_two_eq_circumradius + theorem Affine.Triangle.dist_div_sin_angle_eq_two_mul_circumradius 2025-12-08 13:23:59 d3a46ad feat(LinearAlgebra/Transvection): base change of transvections (#31165) The base change of a transvection of a module. ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/TensorProduct/Tower.lean +/- theorem LinearEquiv.coe_baseChange Modified Mathlib/LinearAlgebra/Transvection.lean + theorem IsBaseChange.transvection + theorem LinearEquiv.transvection.baseChange + theorem LinearMap.transvection.LinearEquiv.transvection.LinearMap.transvection.baseChange Modified Mathlib/RingTheory/TensorProduct/IsBaseChangeHom.lean + theorem IsBaseChange.linearMapLeftRightHom_comp 2025-12-08 13:23:56 314dd25 feat(Order/Basic): `le_of_forall_lt_imp_ne` et. al (#27703) ESTIMATED CHANGES Modified Mathlib/Order/Basic.lean + theorem forall_le_imp_ne_iff_lt + theorem forall_lt_imp_ne_iff_le + theorem le_of_forall_lt_imp_ne + theorem lt_of_forall_le_imp_ne 2025-12-08 12:24:51 789a309 chore: re-enable the flexible linter (#32577) It was disabled in #32420 due to giving non-actionable warnings. That has since been fixed in #32421, and #32425 will even provide automatic try this suggestions for a possible fix. While at it, remove a now-outdated comment refering to the linter as disabled. ESTIMATED CHANGES Modified Mathlib/Dynamics/PeriodicPts/Lemmas.lean Modified Mathlib/Init.lean Modified Mathlib/Topology/UnitInterval.lean Modified lakefile.lean 2025-12-08 11:36:56 e10075a feat(Algebra/Group/Indicator): generalize MonoidHom to OneHomClass (#32575) This PR generalizes`MonoidHom.map_mulIndicator` to `map_mulIndicator` that works for any `f : F` where `OneHomClass F`. ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Indicator.lean - theorem MonoidHom.map_mulIndicator + theorem map_mulIndicator Modified Mathlib/Data/ENNReal/Lemmas.lean Modified Mathlib/Data/NNRat/Lemmas.lean Modified Mathlib/Data/NNReal/Basic.lean 2025-12-08 11:36:54 0f53385 feat: `-a ≤ -b ↔ b ≤ a` for `SignType` (#32571) Used in the CGT repo. ESTIMATED CHANGES Modified Mathlib/Data/Sign/Defs.lean 2025-12-08 11:36:53 eebe762 chore(Analysis/Distribution): add a `simp` and generalize a lemma (#32565) The `simp` lemma is parallel to `norm_fourier_toL2_eq` below in the same file. ESTIMATED CHANGES Modified Mathlib/Analysis/Distribution/FourierSchwartz.lean +/- theorem SchwartzMap.inner_fourier_toL2_eq +/- theorem SchwartzMap.integral_inner_fourier_fourier 2025-12-08 11:36:51 ef93776 feat(Finsupp): remove unused conditions of `Finset.sum_apply''` (#32564) This PR removes two unused conditions of `Finset.sum_apply''`. ESTIMATED CHANGES Modified Mathlib/Algebra/BigOperators/Finsupp/Basic.lean 2025-12-08 11:36:49 cb9a87d doc(Analysis.Normed.Lp.LpEquiv): fix a typo and change two variables (#32491) The doc contained two minor typos. Also, some variables where left explicit because "Lean has elaboration problems", but this is no longer true, and this PR makes them implicit. ESTIMATED CHANGES Modified Mathlib/Analysis/Normed/Lp/LpEquiv.lean +/- theorem coe_algEquiv_lpBCF +/- theorem coe_algEquiv_lpBCF_symm +/- theorem coe_lpPiLpₗᵢ +/- theorem coe_ringEquiv_lpBCF +/- theorem coe_ringEquiv_lpBCF_symm 2025-12-08 09:06:17 dc33de0 chore: remove `ltByCases` section (#32557) This refers to a name that has been deprecated and removed from Mathlib for some months now. ESTIMATED CHANGES Modified Mathlib/Order/Basic.lean 2025-12-08 07:46:58 12128c4 chore(CategoryTheory/Localization): remove use of `erw` in `equiv_smallHomMap` (#32549) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Localization/SmallHom.lean 2025-12-08 07:46:56 75d6300 feat(Algebra/MonoidAlgebra): extend the `R[M]` notation to `MonoidAlgebra R M` (#30877) It currently only is notation for `AddMonoidAlgebra R M`. ESTIMATED CHANGES Modified Mathlib/Algebra/FreeAlgebra.lean Modified Mathlib/Algebra/FreeNonUnitalNonAssocAlgebra.lean Modified Mathlib/Algebra/MonoidAlgebra/Basic.lean +/- theorem AddMonoidAlgebra.lift_apply' +/- theorem AddMonoidAlgebra.lift_apply +/- theorem AddMonoidAlgebra.lift_unique +/- theorem MonoidAlgebra.algHom_ext' +/- theorem MonoidAlgebra.algHom_ext +/- theorem MonoidAlgebra.algebraMap_def +/- def MonoidAlgebra.domCongr +/- theorem MonoidAlgebra.domCongr_apply +/- theorem MonoidAlgebra.domCongr_support +/- def MonoidAlgebra.lift +/- theorem MonoidAlgebra.lift_apply' +/- theorem MonoidAlgebra.lift_apply +/- theorem MonoidAlgebra.lift_symm_apply +/- theorem MonoidAlgebra.lift_unique' +/- theorem MonoidAlgebra.lift_unique +/- theorem MonoidAlgebra.mapRangeAlgHom_apply +/- theorem MonoidAlgebra.nonUnitalAlgHom_ext' +/- theorem MonoidAlgebra.nonUnitalAlgHom_ext Modified Mathlib/Algebra/MonoidAlgebra/Defs.lean +/- theorem MonoidAlgebra.addHom_ext' +/- theorem MonoidAlgebra.coe_add +/- theorem MonoidAlgebra.ext +/- theorem MonoidAlgebra.induction_linear +/- theorem MonoidAlgebra.induction_on +/- theorem MonoidAlgebra.intCast_def +/- def MonoidAlgebra.mul' +/- theorem MonoidAlgebra.mul_apply +/- theorem MonoidAlgebra.mul_apply_antidiagonal +/- theorem MonoidAlgebra.mul_apply_left +/- theorem MonoidAlgebra.mul_apply_right +/- theorem MonoidAlgebra.mul_def +/- theorem MonoidAlgebra.mul_single_apply +/- theorem MonoidAlgebra.mul_single_apply_of_not_exists_mul +/- theorem MonoidAlgebra.mul_single_one_apply +/- theorem MonoidAlgebra.natCast_def +/- theorem MonoidAlgebra.neg_apply +/- def MonoidAlgebra.of +/- def MonoidAlgebra.ofMagma +/- theorem MonoidAlgebra.of_commute +/- theorem MonoidAlgebra.one_def +/- theorem MonoidAlgebra.ringHom_ext' +/- theorem MonoidAlgebra.ringHom_ext +/- def MonoidAlgebra.singleAddHom +/- def MonoidAlgebra.singleHom +/- def MonoidAlgebra.singleOneRingHom +/- theorem MonoidAlgebra.single_commute +/- theorem MonoidAlgebra.single_mul_apply +/- theorem MonoidAlgebra.single_mul_apply_of_not_exists_mul +/- theorem MonoidAlgebra.single_one_comm +/- theorem MonoidAlgebra.single_one_mul_apply +/- theorem MonoidAlgebra.single_zero +/- theorem MonoidAlgebra.smul_apply +/- theorem MonoidAlgebra.sum_single Modified Mathlib/Algebra/MonoidAlgebra/Lift.lean +/- theorem AddMonoidAlgebra.mapRangeRingHom_id +/- def MonoidAlgebra.liftNC +/- def MonoidAlgebra.liftNCRingHom +/- theorem MonoidAlgebra.mapRangeRingHom_apply +/- theorem MonoidAlgebra.mapRangeRingHom_id Modified Mathlib/Algebra/MonoidAlgebra/MapDomain.lean +/- theorem MonoidAlgebra.mapDomain_sum Modified Mathlib/Algebra/MonoidAlgebra/Module.lean +/- def MonoidAlgebra.comapDistribMulActionSelf +/- def MonoidAlgebra.singleDistribMulActionHom Modified Mathlib/Algebra/MonoidAlgebra/NoZeroDivisors.lean +/- theorem MonoidAlgebra.mul_apply_mul_eq_mul_of_uniqueMul Modified Mathlib/Algebra/MonoidAlgebra/Opposite.lean Modified Mathlib/Algebra/MonoidAlgebra/Support.lean +/- theorem MonoidAlgebra.mem_span_support +/- theorem MonoidAlgebra.support_mul +/- theorem MonoidAlgebra.support_mul_single +/- theorem MonoidAlgebra.support_mul_single_eq_image +/- theorem MonoidAlgebra.support_mul_single_subset +/- theorem MonoidAlgebra.support_one +/- theorem MonoidAlgebra.support_one_subset +/- theorem MonoidAlgebra.support_single_mul +/- theorem MonoidAlgebra.support_single_mul_eq_image +/- theorem MonoidAlgebra.support_single_mul_subset Modified Mathlib/LinearAlgebra/Finsupp/VectorSpace.lean Modified Mathlib/LinearAlgebra/FreeAlgebra.lean Modified Mathlib/LinearAlgebra/RootSystem/Irreducible.lean Modified Mathlib/RepresentationTheory/Basic.lean +/- theorem Representation.asModuleEquiv_map_smul +/- theorem Representation.free_asModule_free +/- theorem Representation.ofModule_asAlgebraHom_apply_apply +/- theorem Representation.ofModule_asModule_act +/- theorem Representation.ofMulAction_self_smul_eq_mul +/- theorem Representation.smul_ofModule_asModule +/- theorem Representation.smul_one_tprod_asModule +/- theorem Representation.smul_tprod_one_asModule Modified Mathlib/RepresentationTheory/FDRep.lean Modified Mathlib/RepresentationTheory/Homological/GroupCohomology/Basic.lean Modified Mathlib/RepresentationTheory/Homological/GroupHomology/Basic.lean Modified Mathlib/RepresentationTheory/Homological/Resolution.lean Modified Mathlib/RepresentationTheory/Invariants.lean Modified Mathlib/RepresentationTheory/Maschke.lean +/- def LinearMap.equivariantProjection +/- def LinearMap.sumOfConjugatesEquivariant +/- theorem MonoidAlgebra.Submodule.exists_isCompl +/- theorem MonoidAlgebra.exists_leftInverse_of_injective Modified Mathlib/RepresentationTheory/Rep.lean +/- def Rep.counitIso +/- def Rep.counitIsoAddEquiv +/- def Rep.equivalenceModuleMonoidAlgebra +/- def Rep.ofModuleMonoidAlgebra +/- theorem Rep.ofModuleMonoidAlgebra_obj_coe +/- theorem Rep.ofModuleMonoidAlgebra_obj_ρ +/- def Rep.toModuleMonoidAlgebra Modified Mathlib/RepresentationTheory/Submodule.lean Modified Mathlib/RingTheory/Bialgebra/MonoidAlgebra.lean +/- theorem MonoidAlgebra.mapDomainBialgHom_id +/- theorem MonoidAlgebra.mapDomainBialgHom_mapDomainBialgHom Modified Mathlib/RingTheory/Coalgebra/MonoidAlgebra.lean Modified Mathlib/RingTheory/FiniteType.lean +/- theorem MonoidAlgebra.exists_finset_adjoin_eq_top +/- theorem MonoidAlgebra.fg_of_finiteType +/- theorem MonoidAlgebra.finiteType_iff_fg +/- theorem MonoidAlgebra.mem_adjoin_support +/- theorem MonoidAlgebra.support_gen_of_gen' +/- theorem MonoidAlgebra.support_gen_of_gen Modified Mathlib/RingTheory/Finiteness/Finsupp.lean Modified Mathlib/RingTheory/HopfAlgebra/MonoidAlgebra.lean Modified Mathlib/RingTheory/TensorProduct/MonoidAlgebra.lean +/- theorem MonoidAlgebra.scalarTensorEquiv_tmul +/- theorem MonoidAlgebra.tensorEquiv_tmul Added MathlibTest/Algebra/MonoidAlgebra/Defs.lean + theorem test_1 + theorem test_2 2025-12-08 07:29:27 f0de781 chore(CategoryTheory/Sites): remove use of `erw` in `plusMap_zero` (#32550) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Sites/Plus.lean 2025-12-08 07:00:55 410b279 feat(LinearAlgebra/Lagrange): Formula for leading coefficient of a polynomial (#32359) Added `leadingCoeff_interpolate`, which gives a formula for the leading coefficient of a polynomial that follows from Lagrange interpolation. ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/Lagrange.lean + theorem Lagrange.interpolate_poly_eq_self + theorem Lagrange.leadingCoeff_basis + theorem Lagrange.leadingCoeff_eq_sum 2025-12-08 06:22:35 7b56cbf refactor(Algebra/Polynomial/Splits): continue deprecation (#32500) This PR continues the deprecation in `Splits.lean` as we move over to the new API in `Factors.lean`. ESTIMATED CHANGES Modified Mathlib/Algebra/Polynomial/Factors.lean + theorem Polynomial.Splits.adjoin_rootSet_eq_range + theorem Polynomial.Splits.aeval_eq_prod_aroots + theorem Polynomial.Splits.aeval_eq_prod_aroots_of_monic + theorem Polynomial.Splits.eq_X_sub_C_of_single_root + theorem Polynomial.Splits.eval_eq_prod_roots + theorem Polynomial.Splits.eval_eq_prod_roots_of_monic + theorem Polynomial.Splits.mem_range_of_isRoot + theorem Polynomial.Splits.mem_subfield_of_isRoot Modified Mathlib/Algebra/Polynomial/Splits.lean - theorem Polynomial.Splits.mem_subfield_of_isRoot - theorem Polynomial.adjoin_rootSet_eq_range - theorem Polynomial.aeval_eq_prod_aroots_sub_of_monic_of_splits - theorem Polynomial.aeval_eq_prod_aroots_sub_of_splits - theorem Polynomial.aeval_root_of_mapAlg_eq_multiset_prod_X_sub_C - theorem Polynomial.eq_X_sub_C_of_splits_of_single_root - theorem Polynomial.eval_eq_prod_roots_sub_of_monic_of_splits_id - theorem Polynomial.eval_eq_prod_roots_sub_of_splits_id Modified Mathlib/FieldTheory/KummerExtension.lean Modified Mathlib/FieldTheory/Separable.lean Modified Mathlib/FieldTheory/SplittingField/IsSplittingField.lean Modified Mathlib/RingTheory/Polynomial/Tower.lean + theorem Polynomial.aeval_root_of_mapAlg_eq_multiset_prod_X_sub_C 2025-12-08 05:19:17 a960cdb refactor: make `abbrev`s for `IsDirected α (· ≤ ·)` and `IsDirected α (· ≥ ·)` (#32462) This standardizes how we write these typeclasses, and lets us use the `to_dual` tactic in the future. ESTIMATED CHANGES Modified Mathlib/Algebra/Colimit/DirectLimit.lean Modified Mathlib/Algebra/Colimit/Finiteness.lean Modified Mathlib/Algebra/Colimit/Module.lean +/- theorem AddCommGroup.DirectLimit.lift_injective +/- theorem AddCommGroup.DirectLimit.of.zero_exact +/- theorem Module.DirectLimit.exists_of +/- theorem Module.DirectLimit.exists_of₂ +/- theorem Module.DirectLimit.lift_injective Modified Mathlib/Algebra/Colimit/Ring.lean +/- theorem Ring.DirectLimit.exists_of +/- theorem Ring.DirectLimit.induction_on +/- theorem Ring.DirectLimit.lift_injective +/- theorem Ring.DirectLimit.of_injective Modified Mathlib/Algebra/Order/Archimedean/Basic.lean Modified Mathlib/Algebra/Order/Group/Indicator.lean +/- theorem Set.iSup_mulIndicator Modified Mathlib/Analysis/Convex/Quasiconvex.lean +/- theorem QuasiconcaveOn.convex +/- theorem QuasiconvexOn.convex Modified Mathlib/Analysis/Normed/Ring/Basic.lean +/- theorem NormedAddCommGroup.tendsto_atTop' +/- theorem NormedAddCommGroup.tendsto_atTop Modified Mathlib/CategoryTheory/CofilteredSystem.lean +/- theorem nonempty_sections_of_finite_inverse_system Modified Mathlib/CategoryTheory/Filtered/Basic.lean Modified Mathlib/CategoryTheory/Filtered/Final.lean Modified Mathlib/CategoryTheory/Presentable/Type.lean Modified Mathlib/Data/ENNReal/BigOperators.lean +/- theorem ENNReal.finsetSum_iSup_of_monotone Modified Mathlib/Data/ENNReal/Operations.lean +/- theorem ENNReal.iInf_add_iInf_of_monotone +/- theorem ENNReal.iSup_add_iSup_of_monotone Modified Mathlib/Data/ENat/BigOperators.lean +/- theorem ENat.sum_iSup_of_monotone Modified Mathlib/Data/ENat/Lattice.lean +/- theorem ENat.iSup_add_iSup_of_monotone Modified Mathlib/Data/Finset/Basic.lean Modified Mathlib/Data/Finset/Order.lean +/- theorem Finset.exists_le Modified Mathlib/Data/Fintype/Order.lean +/- theorem Finite.bddAbove_range +/- theorem Finite.bddBelow_range +/- theorem Finite.exists_ge +/- theorem Finite.exists_le +/- theorem Set.Finite.exists_ge +/- theorem Set.Finite.exists_le Modified Mathlib/Data/Set/Finite/Lattice.lean +/- theorem Set.iInter_iUnion_of_antitone +/- theorem Set.iUnion_iInter_of_monotone Modified Mathlib/Data/Set/Lattice.lean +/- theorem Set.iInter_union_of_antitone +/- theorem Set.iInter_union_of_monotone +/- theorem Set.iUnion_inter_of_antitone +/- theorem Set.iUnion_inter_of_monotone Modified Mathlib/MeasureTheory/Function/SimpleFunc.lean +/- theorem MeasureTheory.SimpleFunc.exists_forall_le Modified Mathlib/MeasureTheory/Integral/IntegrableOn.lean +/- theorem MeasureTheory.integrableAtFilter_atBot_iff +/- theorem MeasureTheory.integrableAtFilter_atTop_iff Modified Mathlib/MeasureTheory/MeasurableSpace/MeasurablyGenerated.lean Modified Mathlib/MeasureTheory/Measure/MeasureSpace.lean +/- theorem Antitone.measure_iInter +/- theorem Antitone.measure_iUnion +/- theorem MeasureTheory.measure_iUnion_eq_iSup_accumulate +/- theorem Monotone.measure_iInter +/- theorem Monotone.measure_iUnion Modified Mathlib/ModelTheory/DirectLimit.lean +/- theorem FirstOrder.Language.DirectLimit.cg +/- def FirstOrder.Language.DirectLimit.setoid +/- def FirstOrder.Language.DirectLimit Modified Mathlib/ModelTheory/Fraisse.lean +/- theorem FirstOrder.Language.age_directLimit Modified Mathlib/ModelTheory/PartialEquiv.lean Modified Mathlib/Order/Bounds/Basic.lean +/- theorem BddAbove.union +/- theorem BddBelow.union +/- theorem bddAbove_insert +/- theorem bddAbove_union +/- theorem bddBelow_insert +/- theorem bddBelow_union Modified Mathlib/Order/CompleteBooleanAlgebra.lean +/- theorem Order.Frame.MinimalAxioms.Order.Coframe.MinimalAxioms.CompleteDistribLattice.MinimalAxioms.CompletelyDistribLattice.MinimalAxioms.iInf_sup_of_antitone +/- theorem Order.Frame.MinimalAxioms.Order.Coframe.MinimalAxioms.CompleteDistribLattice.MinimalAxioms.CompletelyDistribLattice.MinimalAxioms.iInf_sup_of_monotone +/- theorem Order.Frame.MinimalAxioms.Order.Coframe.MinimalAxioms.CompleteDistribLattice.MinimalAxioms.CompletelyDistribLattice.MinimalAxioms.iSup_inf_of_antitone +/- theorem Order.Frame.MinimalAxioms.Order.Coframe.MinimalAxioms.CompleteDistribLattice.MinimalAxioms.CompletelyDistribLattice.MinimalAxioms.iSup_inf_of_monotone Modified Mathlib/Order/Directed.lean +/- theorem Antitone.directed_ge +/- theorem Antitone.directed_le +/- theorem Monotone.directed_ge +/- theorem Monotone.directed_le +/- theorem constant_of_monotone_antitone +/- theorem directed_of_isDirected_ge +/- theorem directed_of_isDirected_le +/- theorem exists_ge_ge +/- theorem exists_le_le +/- theorem exists_lt_of_directed_ge +/- theorem exists_lt_of_directed_le +/- theorem isBot_iff_isMin +/- theorem isBot_or_exists_lt +/- theorem isTop_iff_isMax +/- theorem isTop_or_exists_gt Modified Mathlib/Order/DirectedInverseSystem.lean Modified Mathlib/Order/Filter/AtTopBot/Archimedean.lean Modified Mathlib/Order/Filter/AtTopBot/Basic.lean +/- theorem Filter.HasAntitoneBasis.comp_mono +/- theorem Filter.atBot_Iic_eq +/- theorem Filter.atBot_Iio_eq +/- theorem Filter.atTop_Ici_eq +/- theorem Filter.atTop_Ioi_eq +/- theorem Filter.map_atBot_eq_of_gc +/- theorem Filter.map_val_Ici_atTop +/- theorem Filter.map_val_Iic_atBot +/- theorem Filter.map_val_Iio_atBot +/- theorem Filter.map_val_Ioi_atTop +/- theorem Filter.map_val_atTop_of_Ici_subset +/- theorem Filter.tendsto_Ici_atTop +/- theorem Filter.tendsto_Iic_atBot +/- theorem Filter.tendsto_Iio_atBot +/- theorem Filter.tendsto_Ioi_atTop +/- theorem Filter.tendsto_comp_val_Ici_atTop +/- theorem Filter.tendsto_comp_val_Iic_atBot +/- theorem Filter.tendsto_comp_val_Iio_atBot +/- theorem Filter.tendsto_comp_val_Ioi_atTop Modified Mathlib/Order/Filter/AtTopBot/CountablyGenerated.lean +/- theorem Filter.atBot_countable_basis +/- theorem Filter.atTop_countable_basis Modified Mathlib/Order/Filter/AtTopBot/Finset.lean Modified Mathlib/Order/Filter/AtTopBot/Prod.lean +/- theorem Filter.eventually_atBot_prod_self' +/- theorem Filter.eventually_atBot_prod_self +/- theorem Filter.eventually_atTop_prod_self' +/- theorem Filter.eventually_atTop_prod_self Modified Mathlib/Order/Filter/Bases/Basic.lean +/- theorem Filter.HasAntitoneBasis.iInf_principal Modified Mathlib/Order/Filter/CountablyGenerated.lean +/- theorem Filter.HasAntitoneBasis.hasBasis_ge Modified Mathlib/Order/Filter/IsBounded.lean +/- theorem Filter.IsBoundedUnder.bddAbove_range +/- theorem Filter.IsBoundedUnder.bddAbove_range_of_cofinite +/- theorem Filter.IsBoundedUnder.bddBelow_range +/- theorem Filter.IsBoundedUnder.bddBelow_range_of_cofinite +/- theorem Filter.IsBoundedUnder.ge_of_finite +/- theorem Filter.IsBoundedUnder.le_of_finite +/- theorem Filter.bddAbove_range_of_tendsto_atTop_atBot +/- theorem Filter.bddBelow_range_of_tendsto_atTop_atTop Modified Mathlib/Order/Ideal.lean +/- theorem Order.Ideal.inter_nonempty Modified Mathlib/Order/SuccPred/Archimedean.lean Modified Mathlib/Topology/Algebra/InfiniteSum/SummationFilter.lean Modified Mathlib/Topology/Category/TopCat/Limits/Konig.lean Modified Mathlib/Topology/Order/LiminfLimsup.lean +/- theorem Filter.Tendsto.bddAbove_range +/- theorem Filter.Tendsto.bddAbove_range_of_cofinite +/- theorem Filter.Tendsto.bddBelow_range +/- theorem Filter.Tendsto.bddBelow_range_of_cofinite Modified Mathlib/Topology/UniformSpace/UniformConvergenceTopology.lean 2025-12-08 05:19:16 8936ad6 feat(Tactic/WLOG): add `wlog!` a variant of `wlog` that calls `push_neg` (#32453) This commit adds `wlog!`, a variant of the `wlog h : P` tactic that also calls `push_neg` at the generated hypothesis `h : ¬ p` in the side goal. ESTIMATED CHANGES Modified Mathlib/Tactic/WLOG.lean + def Mathlib.Tactic.wlogCore Modified MathlibTest/wlog.lean 2025-12-08 05:19:14 4ed9405 refactor: `Ordinal.toType` → `Ordinal.ToType` (#32449) See [Zulip](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/toType.20capitalization/with/562007379). ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Abelian/GrothendieckCategory/EnoughInjectives.lean Modified Mathlib/CategoryTheory/Presentable/CardinalFilteredPresentation.lean Modified Mathlib/CategoryTheory/Presentable/IsCardinalFiltered.lean Modified Mathlib/CategoryTheory/Presentable/OrthogonalReflection.lean +/- theorem CategoryTheory.OrthogonalReflection.iteration_map_succ +/- theorem CategoryTheory.OrthogonalReflection.iteration_map_succ_injectivity +/- theorem CategoryTheory.OrthogonalReflection.iteration_map_succ_surjectivity Modified Mathlib/CategoryTheory/SmallObject/Basic.lean Modified Mathlib/CategoryTheory/SmallObject/IsCardinalForSmallObjectArgument.lean +/- theorem CategoryTheory.SmallObject.hasIterationOfShape +/- theorem CategoryTheory.SmallObject.iterationFunctorMapSuccAppArrowIso_hom_left +/- theorem CategoryTheory.SmallObject.iterationFunctorObjObjRightIso_ιIteration_app_right +/- theorem CategoryTheory.SmallObject.prop_iterationFunctor_map_succ +/- theorem CategoryTheory.SmallObject.ιFunctorObj_eq +/- theorem CategoryTheory.SmallObject.πFunctorObj_eq Modified Mathlib/CategoryTheory/SmallRepresentatives.lean Modified Mathlib/FieldTheory/CardinalEmb.lean Modified Mathlib/SetTheory/Cardinal/Cofinality.lean +/- theorem Ordinal.cof_eq_cof_toType Modified Mathlib/SetTheory/Cardinal/Ordinal.lean Modified Mathlib/SetTheory/Cardinal/Regular.lean Modified Mathlib/SetTheory/Game/Nim.lean +/- theorem SetTheory.PGame.leftMoves_nim +/- theorem SetTheory.PGame.rightMoves_nim Modified Mathlib/SetTheory/Game/Ordinal.lean +/- theorem Ordinal.toPGame_leftMoves Modified Mathlib/SetTheory/Nimber/Field.lean Modified Mathlib/SetTheory/Ordinal/Arithmetic.lean +/- theorem Cardinal.noMaxOrder +/- theorem Ordinal.toType_noMax_of_succ_lt Modified Mathlib/SetTheory/Ordinal/Basic.lean +/- theorem Cardinal.card_typein_toType_lt +/- theorem Cardinal.mk_Iio_ord_toType +/- theorem Cardinal.mk_ord_toType +/- theorem Cardinal.mk_toType + def Ordinal.ToType.mk + def Ordinal.ToType +/- theorem Ordinal.enum_zero_le' +/- def Ordinal.initialSegToType +/- theorem Ordinal.le_enum_succ +/- theorem Ordinal.one_toType_eq +/- def Ordinal.principalSegToType - def Ordinal.toType.mk - def Ordinal.toType +/- def Ordinal.toTypeOrderBot +/- theorem Ordinal.toType_empty_iff_eq_zero +/- theorem Ordinal.toType_nonempty_iff_ne_zero +/- theorem Ordinal.type_toType +/- theorem Ordinal.typein_le_typein' +/- theorem Ordinal.typein_lt_self +/- theorem Ordinal.typein_one_toType Modified Mathlib/SetTheory/Ordinal/Family.lean +/- def Ordinal.familyOfBFamily +/- theorem Ordinal.lsub_typein Modified Mathlib/SetTheory/ZFC/Ordinal.lean +/- theorem Ordinal.type_toPSet 2025-12-08 04:25:32 9da3a99 chore(Geometry/RingedSpace/PresheafedSpace): remove use of `erw` in `colimitCocone` (#32510) ESTIMATED CHANGES Modified Mathlib/Geometry/RingedSpace/PresheafedSpace/HasColimits.lean 2025-12-08 04:25:30 9385c89 feat(Algebra/MonoidAlgebra): `single` as a `DistribMulActionHom` (#32508) After #25273, it will not be possible anymore to (ab)use the `Finsupp` version for this. ESTIMATED CHANGES Modified Mathlib/Algebra/MonoidAlgebra/Module.lean + def MonoidAlgebra.singleDistribMulActionHom 2025-12-08 04:25:29 48c99ba chore(LinearAlgebra/ExteriorAlgebra): remove use of `erw` in `map_surjective_iff` (#32507) ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/ExteriorAlgebra/Basic.lean 2025-12-08 04:25:28 7525013 chore(Algebra/MonoidAlgebra): remove use of `erw` in `MonoidAlgebra.mem_span_support` and `AddMonoidAlgebra.mem_span_support` (#32494) ESTIMATED CHANGES Modified Mathlib/Algebra/MonoidAlgebra/Support.lean 2025-12-08 04:25:26 bbf4715 feat(Algebra): `MulOpposite.op` on a comm monoid as a `MulEquiv` (#32486) ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Equiv/Opposite.lean + theorem MulOpposite.coe_opMulEquiv + theorem MulOpposite.coe_symm_opMulEquiv + def MulOpposite.opMulEquiv 2025-12-08 03:56:06 b7d2fa9 chore(Algebra/DirectSum): remove use of `erw` in `mul_eq_dfinsuppSum` (#32441) ESTIMATED CHANGES Modified Mathlib/Algebra/DirectSum/Ring.lean 2025-12-08 03:56:04 5e943c7 feat: convex combinations in `Set.Icc` (#31525) This will hopefully become obsolete with a more general theory of convex spaces, but this would be helpful to go on for now. Note: Proofs in this PR were developed with assistance from Claude. ESTIMATED CHANGES Modified Mathlib/Topology/UnitInterval.lean + theorem Set.Icc.coe_convexCombo + def Set.Icc.convexCombo + theorem Set.Icc.convexCombo_assoc' + theorem Set.Icc.convexCombo_assoc + theorem Set.Icc.convexCombo_le + theorem Set.Icc.convexCombo_one + theorem Set.Icc.convexCombo_symm + theorem Set.Icc.convexCombo_zero + theorem Set.Icc.eq_convexCombo + theorem Set.Icc.le_convexCombo 2025-12-08 03:56:02 a40d869 feat(Geometry/Euclidean/PerpBisector): add distance inequalities for Sbtw with perpendicularity (#31503) This PR adds two theorems about distance relationships when points satisfy strict betweenness (`Sbtw`) and perpendicularity conditions: ### New theorems - `dist_lt_of_sbtw_of_inner_eq_zero`: If `b` is strictly between `a` and `c`, and `p - a` is perpendicular to `b - a`, then `dist p b < dist p c`. - `dist_lt_of_sbtw_of_mem_perpBisector`: If `p` lies on the perpendicular bisector of `ab` and `b` is strictly between `a` and `c`, then `dist p b < dist p c`. ESTIMATED CHANGES Modified Mathlib/Analysis/InnerProductSpace/Affine.lean + theorem dist_sq_lineMap_lineMap_of_inner_eq_zero + theorem dist_sq_lineMap_of_inner_eq_zero + theorem dist_sq_of_inner_eq_zero Modified Mathlib/Geometry/Euclidean/PerpBisector.lean + theorem EuclideanGeometry.dist_le_of_wbtw_of_inner_eq_zero + theorem EuclideanGeometry.dist_le_of_wbtw_of_mem_perpBisector + theorem EuclideanGeometry.dist_lt_of_sbtw_of_inner_eq_zero + theorem EuclideanGeometry.dist_lt_of_sbtw_of_mem_perpBisector 2025-12-08 03:56:00 949c0ae feat: products of locally contractible spaces (#31455) ESTIMATED CHANGES Modified Mathlib/Topology/Homotopy/LocallyContractible.lean 2025-12-08 03:55:59 b95c7f1 feat(Computability/DFA): add DFA complement, union, and intersection (#31247) Add theorems for DFA complement, union, and intersection closure, and prove that regular languages are closed under complement, union, and intersection. ESTIMATED CHANGES Modified Mathlib/Computability/DFA.lean + theorem DFA.acceptsFrom_compl + theorem DFA.acceptsFrom_inter + theorem DFA.acceptsFrom_union + theorem DFA.accepts_compl + theorem DFA.accepts_inter + theorem DFA.accepts_union + theorem DFA.compl_def + theorem DFA.evalFrom_cons + def DFA.inter + def DFA.union + theorem Language.IsRegular.add + theorem Language.IsRegular.inf +/- def Language.IsRegular + theorem Language.IsRegular_compl +/- theorem Language.isRegular_iff Modified Mathlib/Computability/Language.lean + theorem Language.compl_compl + theorem Language.mem_inf 2025-12-08 03:55:58 5e32db3 feat(Analysis/Convex/Side): affine combinations and sides of faces of a simplex (#31205) Add lemmas saying when (in terms of the weights in the combinations) two affine combinations of the vertices of a simplex lie (strictly or weakly) on the same or opposite sides of a face of that simplex opposite a vertex. ESTIMATED CHANGES Modified Mathlib/Analysis/Convex/Side.lean + theorem Affine.Simplex.sOppSide_affineSpan_faceOpposite_iff + theorem Affine.Simplex.sOppSide_affineSpan_faceOpposite_of_pos_of_neg + theorem Affine.Simplex.sSameSide_affineSpan_faceOpposite_iff + theorem Affine.Simplex.sSameSide_affineSpan_faceOpposite_of_sign_eq + theorem Affine.Simplex.wOppSide_affineSpan_faceOpposite_iff + theorem Affine.Simplex.wSameSide_affineSpan_faceOpposite_iff 2025-12-08 03:11:48 6201e59 feat: replace `Finsupp.embDomain_apply` with more general lemma (#31929) - [x] depends on #31927 - [x] depends on #31928 ESTIMATED CHANGES Modified Mathlib/Algebra/BigOperators/Finsupp/Basic.lean Modified Mathlib/Algebra/Polynomial/Reverse.lean Modified Mathlib/Analysis/Fourier/BoundedContinuousFunctionChar.lean Modified Mathlib/Data/Finsupp/Basic.lean Modified Mathlib/Data/Finsupp/Defs.lean +/- theorem Finsupp.embDomain_apply + theorem Finsupp.embDomain_apply_self Modified Mathlib/Data/Finsupp/Option.lean Modified Mathlib/Data/Finsupp/Sigma.lean Modified Mathlib/Data/Finsupp/Single.lean Modified Mathlib/Data/List/ToFinsupp.lean 2025-12-07 22:48:47 a2c6b11 feat(Analysis/Asymptotics): Variants of isBigO_mul_iff_isBigO_div (#32544) Modifies the proof of `isBigO_mul_iff_isBigO_div` to first prove for `IsBigOWith`. This is then used to prove a version for `IsLittleO`. ESTIMATED CHANGES Modified Mathlib/Analysis/Asymptotics/Lemmas.lean + theorem Asymptotics.isBigOWith_mul_iff_isBigOWith_div + theorem Asymptotics.isLittleO_mul_iff_isLittleO_div 2025-12-07 22:48:45 a7af31c chore(RingTheory): generalize `Algebra.intNorm` (#32542) Generalize the definition of `Algebra.intNorm` by replacing `Module.Finite A B` by `Algebra.IsIntegral A B` and, in some cases, `Algebra.IsAlgebraic (FractionRing A) (FractionRing B)` or `FiniteDimensional (FractionRing A) (FractionRing B)`. The goal being to eventually replace [RingOfIntegers.norm](https://leanprover-community.github.io/mathlib4_docs/Mathlib/NumberTheory/NumberField/Norm.html#RingOfIntegers.norm) by [Algebra.intNorm](https://leanprover-community.github.io/mathlib4_docs/Mathlib/RingTheory/IntegralClosure/IntegralRestrict.html#Algebra.intNorm) Also delete many facts that can now be inferred directly ESTIMATED CHANGES Modified Mathlib/RingTheory/IntegralClosure/IntegralRestrict.lean +/- def Algebra.intNorm +/- theorem Algebra.intNorm_eq_norm +/- theorem Algebra.intNorm_eq_of_isLocalization +/- theorem Algebra.intNorm_eq_zero +/- theorem Algebra.intNorm_map_algEquiv +/- theorem Algebra.intNorm_ne_zero +/- theorem Algebra.intNorm_zero 2025-12-07 22:10:49 466925b feat(Dynamics/PeriodicPts): some theorems for `Pi.map` in `Dynamics/PeriodicPts` analogous to those for `Prod.map` (#29530) Split from #29204. Some namespace prefixes are added in `GroupTheory/OrderOfElement.lean` to distinguish the extra imports introduced. - [ ] depends on: #29528 ESTIMATED CHANGES Modified Mathlib/Dynamics/PeriodicPts/Defs.lean + theorem Function.IsFixedPt.piMap + theorem Function.IsPeriodicPt.piMap + theorem Function.isFixedPt_piMap + theorem Function.isPeriodicPt_piMap Modified Mathlib/Dynamics/PeriodicPts/Lemmas.lean + theorem Function.minimalPeriod_eq_sInf_n_pos_IsPeriodicPt + theorem Function.minimalPeriod_piMap + theorem Function.minimalPeriod_piMap_fintype + theorem Function.minimalPeriod_single_dvd_minimalPeriod_piMap Modified Mathlib/GroupTheory/OrderOfElement.lean +/- theorem orderOf_pow' +/- theorem orderOf_pow +/- theorem pow_gcd_card_eq_one_iff 2025-12-07 18:39:59 dd52921 feat(Topology): UniformContinuous version of uniform limit theorem (#32079) Upgrade the following theorems to UniformContinuous - `continuousOn_of_uniform_approx_of_continuousOn` -> `uniformContinuousOn_of_uniform_approx_of_uniformContinuousOn` - `continuous_of_uniform_approx_of_continuous` -> `uniformContinuous_of_uniform_approx_of_uniformContinuous` - `TendstoUniformlyOn.continuousOn` -> `TendstoUniformlyOn.uniformContinuousOn` - `TendstoUniformly.continuous` -> `TendstoUniformly.uniformContinuous` ESTIMATED CHANGES Modified Mathlib/Topology/UniformSpace/UniformApproximation.lean + theorem uniformContinuousOn_of_uniform_approx_of_uniformContinuousOn + theorem uniformContinuous_of_uniform_approx_of_uniformContinuous 2025-12-07 18:24:48 c674151 feat(Combinatorics/SimpleGraph): characterise containment of `completeBipartiteGraph` (#27602) Prove that a "left" subset of `card α` vertices and a "right" subset of `card β` vertices such that every vertex in the "left" subset is adjacent to every vertex in the "right" subset is equivalent to the containment of `completeBipartiteGraph α β` in `G`. ESTIMATED CHANGES Modified Mathlib/Combinatorics/SimpleGraph/Bipartite.lean + theorem SimpleGraph.completeBipartiteGraph_isContained_iff 2025-12-07 16:03:20 bcc3f98 feat(ModularForms): norm and trace maps (#32460) Define norm and trace maps from modular forms for a finite-index inclusion of levels; and use these to show that modular forms of negative weight are 0, and modular forms of weight 0 are constant, for any arithmetic subgroup. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Group/Subgroup/Pointwise.lean + theorem Subgroup.conjAct_pointwise_smul_eq_self + theorem Subgroup.conjAct_pointwise_smul_iff Modified Mathlib/Analysis/Complex/UpperHalfPlane/Basic.lean Modified Mathlib/Analysis/Complex/UpperHalfPlane/Manifold.lean + theorem UpperHalfPlane.eq_zero_of_frequently + theorem UpperHalfPlane.mul_eq_zero_iff + theorem UpperHalfPlane.prod_eq_zero_iff Modified Mathlib/NumberTheory/ModularForms/ArithmeticSubgroups.lean Modified Mathlib/NumberTheory/ModularForms/Basic.lean + theorem ModularForm.coe_eq_zero_iff +/- def ModularForm.const +/- def ModularForm.constℝ - theorem ModularForm.mul_coe Modified Mathlib/NumberTheory/ModularForms/Cusps.lean + theorem IsCusp.mono + theorem IsCusp.of_isFiniteRelIndex + theorem IsCusp.of_isFiniteRelIndex_conj Modified Mathlib/NumberTheory/ModularForms/LevelOne.lean Added Mathlib/NumberTheory/ModularForms/NormTrace.lean + theorem ModularForm.eq_const_of_weight_zero + theorem ModularForm.isZero_of_neg_weight + theorem ModularForm.norm_eq_zero_iff + theorem ModularForm.norm_ne_zero + def SlashInvariantForm.quotientFunc + theorem SlashInvariantForm.quotientFunc_mk + theorem SlashInvariantForm.quotientFunc_smul Modified Mathlib/NumberTheory/ModularForms/SlashActions.lean + theorem ModularForm.prod_fintype_slash + theorem ModularForm.prod_slash + theorem SlashAction.slash_eq_zero_iff + theorem SlashAction.sum_slash Modified Mathlib/NumberTheory/ModularForms/SlashInvariantForms.lean + def SlashInvariantForm.Simps.coe Modified Mathlib/Topology/Perfect.lean 2025-12-07 12:35:30 412e7b8 feat(RingTheory/Coprime/Lemmas): Add Int.isCoprime_gcdA/B (#32369) Adds Int.isCoprime_gcdA and Int.isCoprime_gcdB ESTIMATED CHANGES Modified Mathlib/RingTheory/Coprime/Lemmas.lean + theorem Int.isCoprime_gcdA + theorem Int.isCoprime_gcdB 2025-12-07 11:10:46 a8519e1 feat: ext criterion wrt Icc for measures (#32516) We already have such a criterion for Ioc or Ico. The Icc version doesn't need `NoMaxOrder` or `NoMinOrder`, and will be used to extend results for Stieltjes measures to more general index sets (that could have a max or a min). ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Constructions/BorelSpace/Order.lean + theorem Dense.borel_eq_generateFrom_Icc_mem + theorem Dense.borel_eq_generateFrom_Icc_mem_aux + theorem MeasureTheory.Measure.ext_of_Icc' + theorem MeasureTheory.Measure.ext_of_Icc + theorem borel_eq_generateFrom_Icc + theorem generateFrom_Icc_mem_le_borel Modified Mathlib/Topology/Order/LeftRightLim.lean + theorem ContinuousWithinAt.leftLim_eq + theorem ContinuousWithinAt.rightLim_eq 2025-12-07 10:19:58 b32362e chore(CategoryTheory): remove use of `erw` in `ι_gluedIso_hom` (#32523) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/GlueData.lean 2025-12-07 08:15:53 9a65ee0 feat(Combinatorics/SimpleGraph/Acyclic): every acyclic subgraph can be extended to a maximal one (#32041) We show that every acyclic subgraph can be extended to a maximal acyclic subgraph. ESTIMATED CHANGES Modified Mathlib/Combinatorics/SimpleGraph/Acyclic.lean + theorem SimpleGraph.exists_maximal_isAcyclic_of_le_isAcyclic + theorem SimpleGraph.isAcyclic_sSup_of_isAcyclic_directedOn 2025-12-07 00:32:06 419be56 chore(scripts): update nolints.json (#32524) I am happy to remove some nolints for you! [workflow run for this PR](https://github.com/leanprover-community/mathlib4/actions/runs/19996139733) ESTIMATED CHANGES Modified scripts/nolints.json 2025-12-06 23:05:44 4a435b5 chore(CategoryTheory/ConcreteCategory): remove use of `erw` (#32519) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/ConcreteCategory/BundledHom.lean 2025-12-06 22:49:41 014cece chore(CategoryTheory/Idempotents): remove uses of `erw` (#32520) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Idempotents/Karoubi.lean 2025-12-06 21:34:12 1b21a5e chore(CategoryTheory/Limits): remove use of `erw` in `limit.pre_π` and `limit.post_π` (#32518) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Limits/HasLimits.lean 2025-12-06 21:07:49 b1f5e07 feat(Geometry/Manifold): mdifferentiability of finset sums/prods (#32514) Show that a finite sum or product of mdifferentiable functions is mdifferentiable (with the expected derivative), and analogues for MDifferentiableOn, MDifferentiableWithinAt, etc. ESTIMATED CHANGES Modified Mathlib/Geometry/Manifold/MFDeriv/SpecificFunctions.lean + theorem HasMFDerivAt.prod + theorem HasMFDerivAt.sum + theorem HasMFDerivWithinAt.prod + theorem HasMFDerivWithinAt.sum + theorem MDifferentiable.prod + theorem MDifferentiable.sum + theorem MDifferentiableAt.prod + theorem MDifferentiableAt.sum + theorem MDifferentiableOn.prod + theorem MDifferentiableOn.sum + theorem MDifferentiableWithinAt.prod + theorem MDifferentiableWithinAt.sum 2025-12-06 20:52:23 9af34aa chore(CategoryTheory/Localization): remove use of `erw` in `homMap_apply` (#32511) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Localization/HomEquiv.lean 2025-12-06 18:41:29 30c7104 chore(Data/Num): remove use of `erw` in `ofNat'_one` (#32504) ESTIMATED CHANGES Modified Mathlib/Data/Num/Lemmas.lean +/- theorem Num.ofNat'_one 2025-12-06 18:41:27 c29699f chore(Algebra/Module/LinearMap): remove use of `erw` (#32489) ESTIMATED CHANGES Modified Mathlib/Algebra/Module/LinearMap/Basic.lean 2025-12-06 18:41:26 50d7b2c chore: dualize `WithBot` and `WithTop` using `to_dual` (#32488) ESTIMATED CHANGES Modified Mathlib/Order/TypeTags.lean +/- def WithBot.some - def WithTop.recTopCoe - theorem WithTop.recTopCoe_coe - theorem WithTop.recTopCoe_top - def WithTop.some - def WithTop 2025-12-06 17:41:28 5c2ae8c chore: delete `Units.mulDistribMulAction'` (#32430) This instance was intended a strengthening of `Units.mulAction'`, but in fact its conditions are so strong that it (almost) never applies! Indeed, this instance assumes both `MulDistribMulAction G M`, meaning `∀ (g : G) (m₁ m₂ : M), g • (m₁ * m₂) = g • m₁ * g • m₂`, and `SMulCommClass G M M` meaning `∀ (g : G) (m₁ m₂ : M), g • (m₁ * m₂) = m₁ * g • m₂`. In particular, if `M` is cancellative, then we obtain `∀ (g : G) (m : M), g • m = m`, i.e. the action is trivial! The instance was added in leanprover-community/mathlib3#10480, apparently with no motivation beyond square-filling of instances. [Zulip](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/MulDistribMulAction.20instances) ESTIMATED CHANGES Modified Mathlib/Algebra/GroupWithZero/Action/Units.lean 2025-12-06 17:24:52 31ec2d9 feat(Algebra/Homology): miscellaneous lemmas (#32434) From ClassFieldTheory ESTIMATED CHANGES Modified Mathlib/Algebra/Homology/ShortComplex/Exact.lean + theorem CategoryTheory.ShortComplex.Exact.epi_kernelLift + theorem CategoryTheory.ShortComplex.Exact.mono_cokernelDesc Modified Mathlib/CategoryTheory/Abelian/Exact.lean + theorem CategoryTheory.ShortComplex.Exact.isIso_imageToKernel' + theorem CategoryTheory.ShortComplex.Exact.isIso_imageToKernel + theorem CategoryTheory.ShortComplex.exact_iff_isIso_imageToKernel' 2025-12-06 14:46:20 371379b feat(RingTheory): improved linearity of `Derivation.compDer` (#32509) Given a scalar tower $$R\to A \to B \to M$$, we have the natural map $Der_R(B, M)\to Der_R(A, M)$. It was stated to be $$A$$-linear, but is in fact even $$B$$-linear. To be able to phrase this, I needed to change `[IsScalarTower R A M]` to `[IsScalarTower R B M]`. Those should be factually equivalent, due to `IsScalarTower.to₁₃₄`, however the inference of `IsScalarTower R B M` from `IsScalarTower R A M` does not seem to be automatic. ESTIMATED CHANGES Modified Mathlib/RingTheory/Derivation/Basic.lean 2025-12-06 12:38:19 2ff4254 chore(CategoryTheory/Limits/Shapes): remove use of `erw` in `cokernel.isColimitCoconeZeroCocone` (#32502) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Limits/Shapes/Kernels.lean 2025-12-06 12:38:18 9878970 chore(CategoryTheory/Limits): remove use of `erw` in `colimit.ι_post` (#32490) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Limits/HasLimits.lean 2025-12-06 12:38:16 97b7e47 chore(CategoryTheory/WithTerminal): remove use of `erw` in `liftStar_lift_map` (#32487) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/WithTerminal/Basic.lean 2025-12-06 12:38:15 63575ea chore(CategoryTheory/Subobject): remove use of `erw` in `imageSubobjectIso_comp_image_map` (#32485) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Subobject/Limits.lean 2025-12-06 12:38:13 64aed99 feat(Data/List/Basic): `idxOf` lemmas (#31930) ESTIMATED CHANGES Modified Mathlib/Data/List/Basic.lean + theorem List.IsPrefix.idxOf_eq_of_mem + theorem List.IsPrefix.idxOf_le + theorem List.IsSuffix.idxOf_add_length_le + theorem List.IsSuffix.idxOf_le + theorem List.idxOf_eq_zero_iff_eq_nil_or_head_eq + theorem List.idxOf_eq_zero_iff_head_eq 2025-12-06 12:22:14 634bcf4 chore(CategoryTheory/Limits/Shapes/Opposites): remove use of `erw` in `Fan.IsLimit.op` (#32505) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Limits/Shapes/Opposites/Products.lean 2025-12-06 11:00:15 cbb725e feat(Algebra/Polynomial/Basic): Add ofMultiset (#32496) Due to a force push I can't reopen #32005. This adds just the definition as described in https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Adding.20Polynomial.2EfromRoots.3F/with/558903708 without any refactor. ESTIMATED CHANGES Modified Mathlib/Algebra/Polynomial/Basic.lean + def Polynomial.ofMultiset 2025-12-06 00:03:17 89ec9c8 feat(Analysis/Convex/StrictCombination): convex combinations in strictly convex sets and spaces (#31452) Add various lemmas that combinations of points (nonnegative weights, at least two weights of distinct points nonzero) in strictly convex sets lie in the interior of that set, or in strictly convex spaces or affine spaces for such spaces lie in a ball when the points lie in the corresponding closed ball. These are analogous to existing lemmas for convex combinations and for pairs of points in strictly convex sets or spaces. In particular, the way `StrictConvex.centerMass_mem_interior` is stated with various hypotheses after the colon follows how `Convex.centerMass_mem` is stated (the hypotheses could of course move before the colon if they were then generalized for the induction). Convenience lemmas for the cases of `closedInterior` (excluding vertices) of a simplex, and `interior` of a simplex, are included. https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Triangle.20interior.20and.20its.20circumsphere/with/540305703 requested such a statement (in a different form). They don't include anything for bundled spheres since those are currently defined in `Mathlib.Geometry.Euclidean`, though given a suitable more generic name for the bundled sphere structure, various basic material about such spheres could move to a more generic metric space location, at which point it would be reasonable to add versions of these statements that use bundled spheres. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/Convex/StrictCombination.lean + theorem Affine.Simplex.dist_lt_of_mem_closedInterior_of_strictConvexSpace + theorem Affine.Simplex.dist_lt_of_mem_interior_of_strictConvexSpace + theorem StrictConvex.centerMass_mem_interior + theorem StrictConvex.sum_mem_interior + theorem centerMass_mem_ball_of_strictConvexSpace + theorem dist_affineCombination_lt_of_strictConvexSpace + theorem norm_sum_lt_of_strictConvexSpace + theorem sum_mem_ball_of_strictConvexSpace 2025-12-05 23:23:21 0a1e860 chore(Order/SuccPred/Basic): use `to_dual` (#32447) Not everything has been dualized yet. Dualizing theorems about `Monotone`, `Ixx`, `Order(Bot/Top)` still depends on other PRs. ESTIMATED CHANGES Modified Mathlib/Order/Interval/Set/SuccPred.lean Modified Mathlib/Order/Iterate.lean - theorem Function.iterate_le_id_of_le_id Modified Mathlib/Order/Lattice.lean Modified Mathlib/Order/SuccPred/Basic.lean + theorem Order.le_and_le_succ_iff - theorem Order.le_iff_eq_or_le_pred + theorem Order.le_iff_eq_or_succ_le' - theorem Order.le_le_succ_iff - theorem Order.le_of_pred_lt - theorem Order.le_pred_iff - theorem Order.le_pred_iff_isMin - theorem Order.le_pred_iff_of_not_isMin - theorem Order.le_pred_of_lt + theorem Order.le_succ_and_le_iff + theorem Order.lt_succ_iff_eq_or_gt - theorem Order.min_of_le_pred - def Order.pred - theorem Order.pred_eq_iff_isMin - theorem Order.pred_eq_pred_iff - theorem Order.pred_eq_pred_iff_of_not_isMin - theorem Order.pred_injective - theorem Order.pred_iterate_le - theorem Order.pred_le - theorem Order.pred_le_iff_eq_or_le - theorem Order.pred_le_le_iff - theorem Order.pred_le_pred - theorem Order.pred_le_pred_iff - theorem Order.pred_le_pred_iff_of_not_isMin - theorem Order.pred_le_pred_of_le - theorem Order.pred_le_pred_of_not_isMin_of_le - theorem Order.pred_lt - theorem Order.pred_lt_iff - theorem Order.pred_lt_iff_eq_or_lt - theorem Order.pred_lt_iff_eq_or_lt_of_not_isMin - theorem Order.pred_lt_iff_not_isMin - theorem Order.pred_lt_iff_of_not_isMin - theorem Order.pred_lt_of_le - theorem Order.pred_lt_pred - theorem Order.pred_lt_pred_iff - theorem Order.pred_lt_pred_iff_of_not_isMin - theorem Order.pred_lt_pred_of_not_isMin - theorem Order.pred_ne_pred_iff +/- theorem Order.succ_le_succ_iff +/- theorem Order.succ_lt_succ +/- theorem Order.succ_lt_succ_iff Modified Mathlib/Tactic/Translate/ToDual.lean 2025-12-05 20:44:21 07946e8 feat: `WithVal v` and `WithVal w` are isomorphic as uniform spaces when `v` and `w` are equivalent valuations (#30133) ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Hom/Ring.lean + theorem OrderRingIso.apply_symm_apply + theorem OrderRingIso.lt_symm_apply + theorem OrderRingIso.symm_apply_apply + theorem OrderRingIso.symm_apply_lt Modified Mathlib/RingTheory/Valuation/Basic.lean + theorem Valuation.IsEquiv.pos_iff Modified Mathlib/Topology/Algebra/Valued/WithVal.lean + def Valuation.IsEquiv.orderRingIso + theorem Valuation.IsEquiv.orderRingIso_apply + theorem Valuation.IsEquiv.orderRingIso_symm_apply + theorem Valuation.IsEquiv.uniformContinuous_equivWithVal + def Valuation.IsEquiv.uniformEquiv + def WithVal.equivWithVal + theorem WithVal.equivWithVal_apply + theorem WithVal.equivWithVal_symm + theorem WithVal.equivWithVal_symm_apply + theorem WithVal.le_def + theorem WithVal.lt_def 2025-12-05 20:27:34 51a7cdb feat(Algebra/Homology): extensions of bifunctors to complexes preserve homotopies (#32383) Given a `TotalComplexShape c₁ c₂ c`, a functor `F : C₁ ⥤ C₂ ⥤ D`, we show in this PR that up to homotopy the morphism `mapBifunctorMap f₁ f₂ F c` only depends on the homotopy classes of the morphism `f₁` in `HomologicalComplex C c₁` and of the morphism `f₂` in `HomologicalComplex C c₂`. (The case of `f₁` was already done, the case of `f₂` is obtained in this PR by symmetry.) ESTIMATED CHANGES Modified Mathlib/Algebra/Homology/BifunctorFlip.lean + theorem HomologicalComplex.mapBifunctorFlipIso_hom_naturality + theorem HomologicalComplex.ι_mapBifunctorFlipIso_hom + theorem HomologicalComplex.ι_mapBifunctorFlipIso_inv Modified Mathlib/Algebra/Homology/BifunctorHomotopy.lean + theorem HomologicalComplex.mapBifunctorMapHomotopy.ιMapBifunctor_hom₂ Modified Mathlib/Algebra/Homology/ComplexShapeSigns.lean + def TotalComplexShape.symm + def TotalComplexShape.symmSymmetry 2025-12-05 19:18:17 571ff86 chore(Probability): deprecate `Independence.Kernel` (#32465) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Probability/Independence/Kernel.lean 2025-12-05 19:18:14 be36c8d feat(LinearAlgebra/Multilinear): constructing `MultilinearMap` over `DirectSum` (#32450) Adds `fromDirectSumEquiv` as an analog for `fromDFinsuppEquiv` specifically for `DirectSum`. This map combines a collection of `MultilinearMap`s into a single `MultilinearMap` on the `DirectSum`. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/LinearAlgebra/Multilinear/DirectSum.lean + theorem MultilinearMap.directSum_ext + theorem MultilinearMap.fromDirectSumEquiv_apply + theorem MultilinearMap.fromDirectSumEquiv_lof + theorem MultilinearMap.fromDirectSumEquiv_symm_apply 2025-12-05 18:16:07 fe7877b feat(Data/Finset/Empty): add `@[push]` tags for pushing negation (#32195) This PR tags `Finset.nonempty_iff_ne_empty` and `Finset.not_nonempty_iff_eq_empty` with `@[push]`, so that they can be used in `push_neg`, `by_cases!`, etc. A bunch of proofs have been golfed using this. ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Pointwise/Finset/Basic.lean Modified Mathlib/Algebra/Module/ZLattice/Basic.lean Modified Mathlib/Algebra/MonoidAlgebra/Degree.lean Modified Mathlib/Algebra/Order/Module/HahnEmbedding.lean Modified Mathlib/Algebra/Polynomial/Basic.lean Modified Mathlib/Analysis/Convex/SimplicialComplex/Basic.lean Modified Mathlib/Analysis/LocallyConvex/WithSeminorms.lean Modified Mathlib/Analysis/SpecialFunctions/Log/PosLog.lean Modified Mathlib/Combinatorics/Additive/ApproximateSubgroup.lean Modified Mathlib/Combinatorics/Additive/Energy.lean Modified Mathlib/Combinatorics/Additive/VerySmallDoubling.lean Modified Mathlib/Combinatorics/Colex.lean Modified Mathlib/Combinatorics/Hall/Finite.lean Modified Mathlib/Combinatorics/SetFamily/AhlswedeZhang.lean Modified Mathlib/Combinatorics/SetFamily/KruskalKatona.lean Modified Mathlib/Combinatorics/SimpleGraph/Clique.lean Modified Mathlib/Data/Finset/BooleanAlgebra.lean Modified Mathlib/Data/Finset/Card.lean Modified Mathlib/Data/Finset/Empty.lean Modified Mathlib/Data/Finset/Filter.lean Modified Mathlib/Data/Finset/Max.lean Modified Mathlib/Data/Finset/NAry.lean Modified Mathlib/Data/Finset/Pi.lean Modified Mathlib/Data/Finset/Powerset.lean Modified Mathlib/Data/Finset/Prod.lean Modified Mathlib/Data/Finset/Sigma.lean Modified Mathlib/Data/Finset/Sym.lean Modified Mathlib/Data/Finsupp/Defs.lean Modified Mathlib/Data/Nat/PrimeFin.lean Modified Mathlib/GroupTheory/CosetCover.lean Modified Mathlib/LinearAlgebra/Multilinear/Basic.lean Modified Mathlib/LinearAlgebra/RootSystem/Base.lean Modified Mathlib/MeasureTheory/SetAlgebra.lean Modified Mathlib/NumberTheory/Divisors.lean +/- theorem Nat.divisors_eq_empty Modified Mathlib/Order/Interval/Finset/Basic.lean +/- theorem Finset.Iio_nonempty +/- theorem Finset.Ioi_nonempty Modified Mathlib/Order/Partition/Finpartition.lean Modified Mathlib/RingTheory/HahnSeries/Multiplication.lean Modified Mathlib/RingTheory/HahnSeries/Summable.lean Modified Mathlib/Topology/EMetricSpace/PairReduction.lean 2025-12-05 18:16:05 0749ef1 feat(push): `push` annotations for `Real.log` (#30039) This PR adds `push` annotations, and tests for `Real.log`. It also updates the `#push` and `#pull` commands so that they can take a discharger, and can take any head. ESTIMATED CHANGES Modified Mathlib/Analysis/SpecialFunctions/Log/Basic.lean Modified Mathlib/Analysis/SpecialFunctions/Pow/Real.lean Modified Mathlib/Tactic/Push.lean Modified MathlibTest/push.lean 2025-12-05 17:27:38 ae8e527 fix(Condensed/Explicit): typo in docstring (#32478) ESTIMATED CHANGES Modified Mathlib/Condensed/Explicit.lean 2025-12-05 17:27:36 5a54f93 chore: remove finiteness from Order.Filter.Lift (#23411) ESTIMATED CHANGES Modified Mathlib/Dynamics/TopologicalEntropy/DynamicalEntourage.lean Modified Mathlib/Order/Filter/Basic.lean + theorem Filter.iInf_sets_induct Modified Mathlib/Order/Filter/Finite.lean - theorem Filter.iInf_sets_induct Modified Mathlib/Order/Filter/Lift.lean Modified Mathlib/Order/Filter/SmallSets.lean Modified Mathlib/Topology/Algebra/ContinuousMonoidHom.lean Modified Mathlib/Topology/Algebra/Monoid/Defs.lean 2025-12-05 16:31:45 5869ccb chore(Probability): split `Independence.Kernel` (#32327) Create a new folder `Kernel` with two files: `Indep` is about independence of families of sets and sigma-algebras, while `IndepFun` contains the definitions and results about independence of random variables. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Probability/Independence/Basic.lean Modified Mathlib/Probability/Independence/Conditional.lean Renamed Mathlib/Probability/Independence/Kernel.lean to Mathlib/Probability/Independence/Kernel/Indep.lean - theorem ProbabilityTheory.Kernel.IndepFun.comp - theorem ProbabilityTheory.Kernel.IndepFun.comp₀ - theorem ProbabilityTheory.Kernel.IndepFun.congr' - theorem ProbabilityTheory.Kernel.IndepFun.meas_inter - theorem ProbabilityTheory.Kernel.IndepFun.neg_left - theorem ProbabilityTheory.Kernel.IndepFun.neg_right - def ProbabilityTheory.Kernel.IndepFun - theorem ProbabilityTheory.Kernel.iIndepFun.ae_isProbabilityMeasure - theorem ProbabilityTheory.Kernel.iIndepFun.comp - theorem ProbabilityTheory.Kernel.iIndepFun.comp₀ - theorem ProbabilityTheory.Kernel.iIndepFun.cond_iInter - theorem ProbabilityTheory.Kernel.iIndepFun.congr' - theorem ProbabilityTheory.Kernel.iIndepFun.indepFun - theorem ProbabilityTheory.Kernel.iIndepFun.indepFun_div_div - theorem ProbabilityTheory.Kernel.iIndepFun.indepFun_div_div₀ - theorem ProbabilityTheory.Kernel.iIndepFun.indepFun_div_left - theorem ProbabilityTheory.Kernel.iIndepFun.indepFun_div_left₀ - theorem ProbabilityTheory.Kernel.iIndepFun.indepFun_div_right - theorem ProbabilityTheory.Kernel.iIndepFun.indepFun_div_right₀ - theorem ProbabilityTheory.Kernel.iIndepFun.indepFun_finset - theorem ProbabilityTheory.Kernel.iIndepFun.indepFun_finset_prod_of_notMem - theorem ProbabilityTheory.Kernel.iIndepFun.indepFun_finset_prod_of_notMem₀ - theorem ProbabilityTheory.Kernel.iIndepFun.indepFun_finset₀ - theorem ProbabilityTheory.Kernel.iIndepFun.indepFun_mul_left - theorem ProbabilityTheory.Kernel.iIndepFun.indepFun_mul_left₀ - theorem ProbabilityTheory.Kernel.iIndepFun.indepFun_mul_mul - theorem ProbabilityTheory.Kernel.iIndepFun.indepFun_mul_mul₀ - theorem ProbabilityTheory.Kernel.iIndepFun.indepFun_mul_right - theorem ProbabilityTheory.Kernel.iIndepFun.indepFun_mul_right₀ - theorem ProbabilityTheory.Kernel.iIndepFun.indepFun_prodMk - theorem ProbabilityTheory.Kernel.iIndepFun.indepFun_prodMk_prodMk - theorem ProbabilityTheory.Kernel.iIndepFun.indepFun_prodMk_prodMk₀ - theorem ProbabilityTheory.Kernel.iIndepFun.indepFun_prodMk₀ - theorem ProbabilityTheory.Kernel.iIndepFun.indepFun_prod_range_succ - theorem ProbabilityTheory.Kernel.iIndepFun.indepFun_prod_range_succ₀ - theorem ProbabilityTheory.Kernel.iIndepFun.meas_biInter - theorem ProbabilityTheory.Kernel.iIndepFun.meas_iInter - theorem ProbabilityTheory.Kernel.iIndepFun.of_precomp - theorem ProbabilityTheory.Kernel.iIndepFun.of_subsingleton - theorem ProbabilityTheory.Kernel.iIndepFun.precomp - def ProbabilityTheory.Kernel.iIndepFun - theorem ProbabilityTheory.Kernel.iIndepFun_congr' - theorem ProbabilityTheory.Kernel.iIndepFun_congr - theorem ProbabilityTheory.Kernel.iIndepFun_iff_measure_inter_preimage_eq_mul - theorem ProbabilityTheory.Kernel.iIndepFun_precomp_of_bijective - theorem ProbabilityTheory.Kernel.iIndepFun_zero_right - theorem ProbabilityTheory.Kernel.iIndepSet.iIndepFun_indicator - theorem ProbabilityTheory.Kernel.indepFun_congr - theorem ProbabilityTheory.Kernel.indepFun_const_left - theorem ProbabilityTheory.Kernel.indepFun_const_right - theorem ProbabilityTheory.Kernel.indepFun_iff_compProd_map_prod_eq_compProd_prod_map_map - theorem ProbabilityTheory.Kernel.indepFun_iff_indepSet_preimage - theorem ProbabilityTheory.Kernel.indepFun_iff_measure_inter_preimage_eq_mul - theorem ProbabilityTheory.Kernel.indepFun_zero_left - theorem ProbabilityTheory.Kernel.indepFun_zero_right Added Mathlib/Probability/Independence/Kernel/IndepFun.lean + theorem ProbabilityTheory.Kernel.IndepFun.comp + theorem ProbabilityTheory.Kernel.IndepFun.comp₀ + theorem ProbabilityTheory.Kernel.IndepFun.congr' + theorem ProbabilityTheory.Kernel.IndepFun.meas_inter + theorem ProbabilityTheory.Kernel.IndepFun.neg_left + theorem ProbabilityTheory.Kernel.IndepFun.neg_right + def ProbabilityTheory.Kernel.IndepFun + theorem ProbabilityTheory.Kernel.iIndepFun.ae_isProbabilityMeasure + theorem ProbabilityTheory.Kernel.iIndepFun.comp + theorem ProbabilityTheory.Kernel.iIndepFun.comp₀ + theorem ProbabilityTheory.Kernel.iIndepFun.cond_iInter + theorem ProbabilityTheory.Kernel.iIndepFun.congr' + theorem ProbabilityTheory.Kernel.iIndepFun.indepFun + theorem ProbabilityTheory.Kernel.iIndepFun.indepFun_div_div + theorem ProbabilityTheory.Kernel.iIndepFun.indepFun_div_div₀ + theorem ProbabilityTheory.Kernel.iIndepFun.indepFun_div_left + theorem ProbabilityTheory.Kernel.iIndepFun.indepFun_div_left₀ + theorem ProbabilityTheory.Kernel.iIndepFun.indepFun_div_right + theorem ProbabilityTheory.Kernel.iIndepFun.indepFun_div_right₀ + theorem ProbabilityTheory.Kernel.iIndepFun.indepFun_finset + theorem ProbabilityTheory.Kernel.iIndepFun.indepFun_finset_prod_of_notMem + theorem ProbabilityTheory.Kernel.iIndepFun.indepFun_finset_prod_of_notMem₀ + theorem ProbabilityTheory.Kernel.iIndepFun.indepFun_finset₀ + theorem ProbabilityTheory.Kernel.iIndepFun.indepFun_mul_left + theorem ProbabilityTheory.Kernel.iIndepFun.indepFun_mul_left₀ + theorem ProbabilityTheory.Kernel.iIndepFun.indepFun_mul_mul + theorem ProbabilityTheory.Kernel.iIndepFun.indepFun_mul_mul₀ + theorem ProbabilityTheory.Kernel.iIndepFun.indepFun_mul_right + theorem ProbabilityTheory.Kernel.iIndepFun.indepFun_mul_right₀ + theorem ProbabilityTheory.Kernel.iIndepFun.indepFun_prodMk + theorem ProbabilityTheory.Kernel.iIndepFun.indepFun_prodMk_prodMk + theorem ProbabilityTheory.Kernel.iIndepFun.indepFun_prodMk_prodMk₀ + theorem ProbabilityTheory.Kernel.iIndepFun.indepFun_prodMk₀ + theorem ProbabilityTheory.Kernel.iIndepFun.indepFun_prod_range_succ + theorem ProbabilityTheory.Kernel.iIndepFun.indepFun_prod_range_succ₀ + theorem ProbabilityTheory.Kernel.iIndepFun.meas_biInter + theorem ProbabilityTheory.Kernel.iIndepFun.meas_iInter + theorem ProbabilityTheory.Kernel.iIndepFun.of_precomp + theorem ProbabilityTheory.Kernel.iIndepFun.of_subsingleton + theorem ProbabilityTheory.Kernel.iIndepFun.precomp + def ProbabilityTheory.Kernel.iIndepFun + theorem ProbabilityTheory.Kernel.iIndepFun_congr' + theorem ProbabilityTheory.Kernel.iIndepFun_congr + theorem ProbabilityTheory.Kernel.iIndepFun_iff_measure_inter_preimage_eq_mul + theorem ProbabilityTheory.Kernel.iIndepFun_precomp_of_bijective + theorem ProbabilityTheory.Kernel.iIndepFun_zero_right + theorem ProbabilityTheory.Kernel.iIndepSet.iIndepFun_indicator + theorem ProbabilityTheory.Kernel.indepFun_congr + theorem ProbabilityTheory.Kernel.indepFun_const_left + theorem ProbabilityTheory.Kernel.indepFun_const_right + theorem ProbabilityTheory.Kernel.indepFun_iff_compProd_map_prod_eq_compProd_prod_map_map + theorem ProbabilityTheory.Kernel.indepFun_iff_indepSet_preimage + theorem ProbabilityTheory.Kernel.indepFun_iff_measure_inter_preimage_eq_mul + theorem ProbabilityTheory.Kernel.indepFun_zero_left + theorem ProbabilityTheory.Kernel.indepFun_zero_right 2025-12-05 16:31:42 169d847 feat(LinearAlgebra/AffineSpace/Independent): injectivity of spans of images (#31979) Add the lemma ```lean lemma AffineIndependent.injective_affineSpan_image [Nontrivial k] {p : ι → P} (ha : AffineIndependent k p) : Injective fun (s : Set ι) ↦ affineSpan k (p '' s) := by ``` which is straightforward given existing lemmas, and the corresponding `vectorSpan` lemma ```lean lemma AffineIndependent.vectorSpan_image_eq_iff [Nontrivial k] {p : ι → P} (ha : AffineIndependent k p) {s₁ s₂ : Set ι} : vectorSpan k (p '' s₁) = vectorSpan k (p '' s₂) ↔ s₁ = s₂ ∨ s₁.Subsingleton ∧ s₂.Subsingleton := by ``` (feel free to golf). ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/AffineSpace/Independent.lean + theorem AffineIndependent.injective_affineSpan_image + theorem AffineIndependent.vectorSpan_image_eq_iff 2025-12-05 16:31:40 3e37eff feat(AlgebraicTopology): horns in `Δ[2]` as pushouts (#31802) Horns in `Δ[2]` are pushouts of two copies of `Δ[1]`. From https://github.com/joelriou/topcat-model-category ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/AlgebraicTopology/SimplicialSet/Horn.lean + theorem SSet.horn.faceSingletonComplIso_inv_ι + def SSet.horn.faceι + theorem SSet.horn.faceι_ι + theorem SSet.horn.yonedaEquiv_ι + def SSet.horn.ι + theorem SSet.horn.ι_ι Added Mathlib/AlgebraicTopology/SimplicialSet/HornColimits.lean + theorem SSet.horn₂₀.isPushout + theorem SSet.horn₂₀.sq + theorem SSet.horn₂₁.isPushout + theorem SSet.horn₂₁.sq + theorem SSet.horn₂₂.isPushout + theorem SSet.horn₂₂.sq Modified Mathlib/AlgebraicTopology/SimplicialSet/StdSimplex.lean + def SSet.stdSimplex.faceSingletonComplIso + theorem SSet.stdSimplex.faceSingletonComplIso_hom_ι + theorem SSet.stdSimplex.faceSingletonIso_one_hom_comp_ι_eq_δ + theorem SSet.stdSimplex.faceSingletonIso_zero_hom_comp_ι_eq_δ + theorem SSet.stdSimplex.face_singleton_compl + def SSet.stdSimplex.finSuccAboveOrderIsoFinset Modified Mathlib/AlgebraicTopology/SimplicialSet/Subcomplex.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Pullback/CommSq.lean + theorem CategoryTheory.IsPullback.of_iso' + theorem CategoryTheory.IsPushout.of_iso' 2025-12-05 16:31:37 2754531 feat(Combinatorics/Additive): subset-sum definition and basic properties (#31689) Add subset-sum definition, basic properties and cardinality lower bound ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Analysis/Distribution/SchwartzSpace.lean Added Mathlib/Combinatorics/Additive/SubsetSum.lean + theorem Finset.card_add_card_subsetSum_lt_card_subsetSum_insert_max + theorem Finset.card_choose_two_lt_card_subsetSum_of_nonneg + theorem Finset.card_succ_choose_two_lt_card_subsetSum_of_pos + theorem Finset.mem_subsetSum_iff + theorem Finset.nonneg_of_mem_subsetSum + def Finset.subsetSum + theorem Finset.subsetSum_erase_zero + theorem Finset.subsetSum_mono + theorem Finset.subsetSum_nonempty + theorem Finset.subset_subsetSum + theorem Finset.vadd_finset_subsetSum_subset_subsetSum_insert + theorem Finset.zero_mem_subsetSum Modified Mathlib/Data/Nat/Choose/Basic.lean Modified docs/references.bib 2025-12-05 16:31:35 1ab85c2 chore(Tactic/Measurability): `fun_prop` lemmas for solving `MeasurableSet {x | ...}` goals (#31592) Currently, lemmas of the form `MeasurableSet {x | ...}` cannot be used by `measurability`, because `simp` changes the goal to `Measurable fun x => ...`. This PR adds the necessary `fun_prop` lemmas so that they work with `measurability` (except for statements involving equality, which are done in #31512). This fixes #26620. ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Constructions/BorelSpace/Order.lean + theorem Measurable.le' + theorem Measurable.lt + theorem measurable_le + theorem measurable_lt Modified Mathlib/MeasureTheory/MeasurableSpace/Constructions.lean Modified MathlibTest/measurability.lean 2025-12-05 16:31:32 2f587a3 feat(Geometry/Euclidean/MongePoint): `reindex` lemmas (#31210) Add lemmas about `mongePoint`, `mongePlane` and `orthocenter` applied to `Simplex.reindex`. ESTIMATED CHANGES Modified Mathlib/Geometry/Euclidean/MongePoint.lean + theorem Affine.Simplex.mongePlane_reindex + theorem Affine.Simplex.mongePoint_reindex + theorem Affine.Triangle.orthocenter_reindex 2025-12-05 16:31:30 3bd1307 feat(RingTheory/Extension/Cotangent): basis of free cotangent space can be realized as a presentation (#31034) Let `S` be a finitely presented `R`-algebra and suppose `P : R[X] → S` generates `S` with kernel `I`. In this PR we show that if `I/I²` is free, there exists an `R`-presentation `P'` of `S` extending `P` with kernel `I'`, such that `I'/I'²` is free on the images of the relations of `P'`. From Pi1. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/RingTheory/Extension/Cotangent/Basis.lean + def Algebra.Generators.PresentationOfFreeCotangent.Aux.basis + def Algebra.Generators.PresentationOfFreeCotangent.Aux.basisLeft + def Algebra.Generators.PresentationOfFreeCotangent.Aux.basisRight + theorem Algebra.Generators.PresentationOfFreeCotangent.Aux.basis_apply + theorem Algebra.Generators.PresentationOfFreeCotangent.Aux.basis_inl + theorem Algebra.Generators.PresentationOfFreeCotangent.Aux.basis_inr + def Algebra.Generators.PresentationOfFreeCotangent.Aux.cotangentEquivProd + theorem Algebra.Generators.PresentationOfFreeCotangent.Aux.cotangentEquivProd_symm_apply + def Algebra.Generators.PresentationOfFreeCotangent.Aux.fhom + def Algebra.Generators.PresentationOfFreeCotangent.Aux.hom + def Algebra.Generators.PresentationOfFreeCotangent.Aux.kerGen + theorem Algebra.Generators.PresentationOfFreeCotangent.Aux.ker_presLeft_le + theorem Algebra.Generators.PresentationOfFreeCotangent.Aux.map_ofComp_mk + def Algebra.Generators.PresentationOfFreeCotangent.Aux.pres + def Algebra.Generators.PresentationOfFreeCotangent.Aux.presLeft + def Algebra.Generators.PresentationOfFreeCotangent.Aux.presRight + theorem Algebra.Generators.PresentationOfFreeCotangent.Aux.pres_val_comp_inr + theorem Algebra.Generators.PresentationOfFreeCotangent.Aux.span_range_mk_kerGen + def Algebra.Generators.PresentationOfFreeCotangent.Aux.tensorCotangentEquiv + theorem Algebra.Generators.PresentationOfFreeCotangent.Aux.tensorCotangentEquiv_symm_apply + def Algebra.Generators.PresentationOfFreeCotangent.Aux.tensorCotangentHom + theorem Algebra.Generators.PresentationOfFreeCotangent.Aux.tensorCotangentHom_tmul + def Algebra.Generators.PresentationOfFreeCotangent.Aux.tensorCotangentInv + theorem Algebra.Generators.PresentationOfFreeCotangent.Aux.tensorCotangentInv_apply + theorem Algebra.Generators.PresentationOfFreeCotangent.Aux.toAlgHom_fhom + structure Algebra.Generators.PresentationOfFreeCotangent.Aux Modified Mathlib/RingTheory/Extension/Generators.lean + theorem Algebra.Generators.aeval_val_surjective Modified Mathlib/RingTheory/Extension/Presentation/Basic.lean + theorem Algebra.Presentation.Generators.fg_ker_of_finitePresentation + theorem Algebra.Presentation.mem_ker_naive 2025-12-05 16:31:27 6f5bfe8 feat(Combinatorics): Glaisher's theorem (#30618) This proves Glaisher's theorem, one of the 1000+ theorems. It is also a generalization of [Euler's partition theorem](https://github.com/leanprover-community/mathlib4/blob/master/Archive/Wiedijk100Theorems/Partition.lean), which can be rewritten as a collorary of this (will be in a different PR) ESTIMATED CHANGES Modified Archive/Wiedijk100Theorems/Partition.lean Modified Mathlib.lean Modified Mathlib/Combinatorics/Enumerative/Partition/Basic.lean + def Nat.Partition.countRestricted +/- def Nat.Partition.distincts +/- def Nat.Partition.oddDistincts +/- def Nat.Partition.odds + def Nat.Partition.restricted Modified Mathlib/Combinatorics/Enumerative/Partition/GenFun.lean + theorem Nat.Partition.tendsto_order_genFun_term_atTop_nhds_top Added Mathlib/Combinatorics/Enumerative/Partition/Glaisher.lean + theorem Nat.Partition.card_restricted_eq_card_countRestricted + theorem Nat.Partition.hasProd_powerSeriesMk_card_countRestricted + theorem Nat.Partition.hasProd_powerSeriesMk_card_restricted + theorem Nat.Partition.multipliable_powerSeriesMk_card_countRestricted + theorem Nat.Partition.multipliable_powerSeriesMk_card_restricted + theorem Nat.Partition.powerSeriesMk_card_countRestricted_eq_tprod + theorem Nat.Partition.powerSeriesMk_card_restricted_eq_powerSeriesMk_card_countRestricted + theorem Nat.Partition.powerSeriesMk_card_restricted_eq_tprod Modified Mathlib/RingTheory/PowerSeries/PiTopology.lean + theorem PowerSeries.WithPiTopology.multipliable_one_sub_X_pow + theorem PowerSeries.WithPiTopology.tprod_one_sub_X_pow_ne_zero Modified docs/1000.yaml 2025-12-05 16:31:25 954f077 feat(CategoryTheory): locally presentable categories and strong generators (#30241) Let `C` be category that is locally `w`-small and has colimits of size `w`. Then, `C` is locally `κ`-presentable iff it has a strong generator consisting of `κ`-presentable objects. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/CategoryTheory/Comma/StructuredArrow/Small.lean Added Mathlib/CategoryTheory/Presentable/StrongGenerator.lean + theorem CategoryTheory.IsCardinalFilteredGenerator.of_isDense + theorem CategoryTheory.IsCardinalFilteredGenerator.of_isDense_ι + theorem CategoryTheory.IsCardinalLocallyPresentable.iff_exists_isStrongGenerator + theorem CategoryTheory.IsCardinalLocallyPresentable.of_le + theorem CategoryTheory.IsStrongGenerator.colimitsCardinalClosure_eq_isCardinalPresentable + theorem CategoryTheory.ObjectProperty.IsStrongGenerator.isDense_colimitsCardinalClosure_ι + theorem CategoryTheory.ObjectProperty.colimitsCardinalClosure_le_isCardinalPresentable 2025-12-05 15:16:55 c882ca7 chore: make sure that `Nat.AtLeastTwo` instances are constructive (#32467) @riccardobrasca noticed a few weeks ago that you cannot *write* the symbol `2` in an abstract ring `R` without relying on the axiom of choice. After investigating a bit, we realized that this boiled down to the use of excluded midde (through `lia`) in [Nat.instAtLeastTwoHAddOfNat](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Data/Nat/Init.html#Nat.instAtLeastTwoHAddOfNat). While I am by no means advocating for widespread support of constructive users in Mathlib, I think this one is ridiculous enough that it needs fixing (and the fix is really easy). ESTIMATED CHANGES Modified Mathlib/Data/Nat/Init.lean 2025-12-05 15:16:53 60ed2cb chore: mark `Set.not_finite` as `simp` (#32457) ESTIMATED CHANGES Modified Mathlib/Data/Finite/Defs.lean +/- theorem Set.not_finite 2025-12-05 15:16:51 e13273c chore: add `variable [OrderTopology α]` (#32452) ESTIMATED CHANGES Modified Mathlib/Topology/Order/Basic.lean +/- theorem Dense.topology_eq_generateFrom +/- theorem Filter.Eventually.exists_Ioo_subset +/- theorem IsLowerSet.isClosed +/- theorem IsLowerSet.isOpen +/- theorem IsOpen.exists_Ioo_subset +/- theorem IsUpperSet.isClosed +/- theorem IsUpperSet.isOpen +/- theorem PredOrder.hasBasis_nhds_Ioc +/- theorem PredOrder.hasBasis_nhds_Ioc_of_exists_gt +/- theorem SecondCountableTopology.of_separableSpace_orderTopology +/- theorem Set.PairwiseDisjoint.countable_of_Ioo +/- theorem SuccOrder.hasBasis_nhds_Ioc +/- theorem SuccOrder.hasBasis_nhds_Ioc_of_exists_lt +/- theorem countable_image_gt_image_Iio +/- theorem countable_image_gt_image_Ioi +/- theorem countable_image_lt_image_Iio +/- theorem countable_image_lt_image_Ioi +/- theorem countable_of_isolated_left' +/- theorem countable_setOf_covBy_left +/- theorem countable_setOf_covBy_right +/- theorem dense_iff_exists_between +/- theorem dense_of_exists_between +/- theorem exists_Icc_mem_subset_of_mem_nhds +/- theorem exists_Icc_mem_subset_of_mem_nhdsGE +/- theorem exists_Icc_mem_subset_of_mem_nhdsLE +/- theorem exists_Ico_subset_of_mem_nhds' +/- theorem exists_Ico_subset_of_mem_nhds +/- theorem exists_Ioc_subset_of_mem_nhds' +/- theorem exists_Ioc_subset_of_mem_nhds +/- theorem mem_nhds_iff_exists_Ioo_subset' +/- theorem mem_nhds_iff_exists_Ioo_subset +/- theorem nhds_basis_Ioo' +/- theorem nhds_basis_Ioo +/- theorem order_separated 2025-12-05 15:16:49 c4e9384 chore(Order/SuccPred/Basic): use `where` notation (#32448) ESTIMATED CHANGES Modified Mathlib/Order/SuccPred/Basic.lean 2025-12-05 15:16:48 b78d709 chore: avoid non-terminal simp (#32445) ESTIMATED CHANGES Modified Mathlib/Order/Iterate.lean 2025-12-05 15:16:46 69f968a feat(SetTheory/Ordinal): Improve API for Ordinal.toType (#32408) Zulip thread: https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/API.20for.20Ordinal.2EtoType/with/561739587 * Adds coercion from `Ordinal.toType` to `Ordinal` & `Set.Iio o` * Renames `Ordinal.enumIsoToType` to `Ordinal.toType.mk` with an implicit parameter, so `(.mk ⟨α, h⟩)` can be used to build a `toType`. This prepares for deprecation of the name `Ordinal.enumIsoToType` (to be discussed). ESTIMATED CHANGES Modified Mathlib/SetTheory/Cardinal/Ordinal.lean Modified Mathlib/SetTheory/Game/Nim.lean Modified Mathlib/SetTheory/Game/Ordinal.lean Modified Mathlib/SetTheory/Nimber/Field.lean Modified Mathlib/SetTheory/Ordinal/Basic.lean + def Ordinal.toType.mk Modified Mathlib/SetTheory/ZFC/Ordinal.lean 2025-12-05 15:16:44 e71bc5f chore: golf using `simp` and `grind` (#32363) ESTIMATED CHANGES Modified Mathlib/AlgebraicGeometry/EllipticCurve/Affine/Formula.lean Modified Mathlib/Data/Array/Extract.lean Modified Mathlib/Data/List/Intervals.lean Modified Mathlib/Data/List/Sym.lean Modified Mathlib/GroupTheory/Perm/Support.lean 2025-12-05 15:16:42 b7146b4 feat: add `grind` annotations for `SimpleGraph.Walk.length_{support,darts,edges}` (#31780) ESTIMATED CHANGES Modified Mathlib/Combinatorics/SimpleGraph/Hamiltonian.lean Modified Mathlib/Combinatorics/SimpleGraph/Walks/Basic.lean 2025-12-05 15:16:40 fcef898 chore(Tactic/Order): use `AtomM` (#31673) The `order` tactic uses its own machinery to collect atoms and facts from the context. This PR replaces it with `AtomM` to unify with other tactics like `ring`. ESTIMATED CHANGES Modified Mathlib/Tactic/Order.lean +/- def Mathlib.Tactic.Order.findContradictionWithNe +/- def Mathlib.Tactic.Order.findContradictionWithNle +/- def Mathlib.Tactic.Order.orderCore + def Mathlib.Tactic.Order.orderCoreImp +/- def Mathlib.Tactic.Order.updateGraphWithNltInfSup Modified Mathlib/Tactic/Order/CollectFacts.lean Modified Mathlib/Tactic/Order/Graph/Basic.lean +/- def Mathlib.Tactic.Order.Graph.buildTransitiveLeProof +/- def Mathlib.Tactic.Order.Graph.constructLeGraph Modified Mathlib/Tactic/Order/Graph/Tarjan.lean +/- def Mathlib.Tactic.Order.Graph.findSCCs Modified Mathlib/Tactic/Order/Preprocessing.lean +/- def Mathlib.Tactic.Order.preprocessFacts +/- def Mathlib.Tactic.Order.preprocessFactsLinear +/- def Mathlib.Tactic.Order.preprocessFactsPartial +/- def Mathlib.Tactic.Order.replaceBotTop Modified Mathlib/Tactic/Order/ToInt.lean Modified Mathlib/Util/AtomM.lean +/- def Mathlib.Tactic.AtomM.addAtom + def Mathlib.Tactic.AtomM.containsThenAdd + def Mathlib.Tactic.AtomM.containsThenAddQ Modified MathlibTest/order.lean 2025-12-05 15:16:38 3f8e88e feat(LinearAlgebra/AffineSpace): add commutativity lemmas for line parallelism (#31471) Adds three lemmas showing that parallelism between lines defined by point pairs is invariant under reversing the order of points. ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/AffineSpace/AffineSubspace/Basic.lean + theorem AffineSubspace.affineSpan_pair_comm 2025-12-05 15:16:36 84ddba1 refactor(`Data/List/Sort`): deprecate and replace `List.Sorted` (#30441) Deprecates `Sorted` and defines new special-case predicates to be used for preorders. `List.Sorted` is essentially an irrelevant definition, as it is identical to List.Pairwise, and we have some results about Sorted which also always apply to Pairwise or do so under certain conditions (and vice versa). We also commonly use Sorted to talk specifically about `<` and `<=`, which can be somewhat unwieldy. As a result, this PR does the following. ### Deprecate List.Sorted `List.Sorted` is currently just a synonym of `List.Pairwise`, but it isn't even an `abbrev`. We deprecate it here along with theorems that are just repeats from Pairwise. ### Separate out InsertionSort and MergeSort content We extract the theorems about insertion sort and merge sort that currently exist in the context of `List.Sorted` - they are currently in the same file but I think they could go elsewhere, potentially even into `Batteries` where I think they would naturally fit - they aren't really mathematical in nature IMO. ### Define `Sorted*` predicates. It is useful to have predicates `SortedLT`, `SortedLE`, `SortedGT` and `SortedGE`, which correspond to exactly what they sound like. These are equivalent to suitable `Pairwise` statements, but that is not how they are defined - one could equivalently define them using `IsChain`, or, as I do here, using monotonicity of `List.get`. While the latter is how they are defined, I use irreducible definitions - it is not permitted to use the definitions directly. Instead, API is provided so that you can easily move to/from monotonicity statements, Pairwise statements, and IsChain statements. You don't destructure lists directly here: to prove things from, say, (a :: b :: l).sortedLT, one probably accesses IsChain lemmas to extract things from this statement. But one can also use the monotonicty API to prove things usefully. `Data.List.Sorted` contains all of this and I think it exhibits my thinking on what should be possible. I've actually changed my mind a couple of times on how to actually define these - one could use Pairwise, IsChain or Monotone etc. to taste - but it doesn't matter, because the API is robust enough that it changes very little once one establishes the core set of facts/equivalence between these. ### In particular, add better decidability instance [List.decidableSorted](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Data/List/Sort.html#List.decidableSorted) has the fundamental issue that `List.Sorted` seems conceptually meant for transitive relations, but the instance of Decidable it uses uses Pairwise's decidability, not IsChain's. This is a problem because the latter is O(n) and the former is O(n^2), where n is the length of the list. It's not a major deal one might think - but I think being able to efficiently check whether something is <-sorted or <=-sorted is important. ### Adapt library to changes I think nearly everywhere we *actually use* `List.Sorted` it is in the context of (<) or (<=), so I've changed to using these specific predicates. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/AlgebraicTopology/SimplexCategory/GeneratorsRelations/NormalForms.lean - theorem SimplexCategoryGenRel.IsAdmissible.pairwise + theorem SimplexCategoryGenRel.IsAdmissible.sortedLT Modified Mathlib/Analysis/Convex/BetweenList.lean - theorem List.Sorted.sbtw - theorem List.Sorted.wbtw + theorem List.SortedLE.wbtw + theorem List.SortedLT.sbtw Modified Mathlib/Analysis/Matrix/Spectrum.lean Modified Mathlib/Combinatorics/Young/YoungDiagram.lean +/- def YoungDiagram.equivListRowLens +/- theorem YoungDiagram.mem_ofRowLens +/- def YoungDiagram.ofRowLens +/- theorem YoungDiagram.rowLen_ofRowLens +/- theorem YoungDiagram.rowLens_length_ofRowLens +/- theorem YoungDiagram.rowLens_ofRowLens_eq_self +/- theorem YoungDiagram.rowLens_sorted Modified Mathlib/Data/Fin/Tuple/Sort.lean Modified Mathlib/Data/Finset/Sort.lean + theorem Finset.pairwise_sort - theorem Finset.sort_sorted - theorem Finset.sort_sorted_gt - theorem Finset.sort_sorted_lt + theorem Finset.sortedGT_sort + theorem Finset.sortedLT_sort Modified Mathlib/Data/List/Nodup.lean Modified Mathlib/Data/List/NodupEquivFin.lean - theorem List.Sorted.coe_getIso_apply - theorem List.Sorted.coe_getIso_symm_apply - def List.Sorted.getIso - theorem List.Sorted.get_mono - theorem List.Sorted.get_strictMono + theorem List.SortedLT.coe_getIso_apply + theorem List.SortedLT.coe_getIso_symm_apply + def List.SortedLT.getIso Modified Mathlib/Data/List/OfFn.lean Modified Mathlib/Data/List/Pairwise.lean + theorem List.Pairwise.cons_cons_of_trans + theorem List.Pairwise.decide + theorem List.Pairwise.head!_le + theorem List.Pairwise.rel_get_of_le + theorem List.Pairwise.rel_get_of_lt + theorem List.pairwise_cons_cons_iff_of_trans + theorem List.pairwise_replicate_of_refl Modified Mathlib/Data/List/Sort.lean + theorem List.Pairwise.eq_of_mem_iff + theorem List.Pairwise.insertionSort_eq + theorem List.Pairwise.merge + theorem List.Pairwise.orderedInsert + theorem List.Perm.eq_of_pairwise' + theorem List.Perm.eq_of_sortedGE + theorem List.Perm.eq_of_sortedLE + theorem List.Perm.eq_reverse_of_sortedLE_of_sortedGE - theorem List.Sorted.decide - theorem List.Sorted.eq_of_mem_iff - theorem List.Sorted.filterMap - theorem List.Sorted.head!_le - theorem List.Sorted.insertionSort_eq - theorem List.Sorted.le_head! - theorem List.Sorted.merge - theorem List.Sorted.of_cons - theorem List.Sorted.orderedInsert - theorem List.Sorted.rel_get_of_le - theorem List.Sorted.rel_get_of_lt - theorem List.Sorted.rel_of_mem_take_of_mem_drop - theorem List.Sorted.tail - def List.Sorted + def List.SortedGE + theorem List.SortedGT.eq_of_mem_iff + theorem List.SortedGT.eq_reverse_of_mem_iff_of_sortedLT + theorem List.SortedGT.getElem_le_getElem_iff + theorem List.SortedGT.getElem_lt_getElem_iff + def List.SortedGT + def List.SortedLE + theorem List.SortedLT.eq_of_mem_iff + theorem List.SortedLT.eq_reverse_of_mem_iff_of_sortedGT + theorem List.SortedLT.getElem_le_getElem_iff + theorem List.SortedLT.getElem_lt_getElem_iff + def List.SortedLT +/- theorem List.Sublist.orderedInsert_sublist + theorem List.Subset.antisymm_of_pairwise + theorem List.Subset.antisymm_of_sortedGT + theorem List.Subset.antisymm_of_sortedLT - theorem List.eq_of_perm_of_sorted +/- def List.insertionSort +/- theorem List.insertionSort_cons + theorem List.insertionSort_cons_of_forall_rel + theorem List.insertionSort_nil +/- theorem List.mergeSort_eq_self + theorem List.orderedInsert_cons + theorem List.orderedInsert_cons_of_le +/- theorem List.orderedInsert_eq_take_drop +/- theorem List.orderedInsert_length +/- theorem List.orderedInsert_nil - theorem List.orderedInsert_of_le + theorem List.orderedInsert_of_not_le + theorem List.pairwise_insertionSort + theorem List.pairwise_mergeSort' +/- theorem List.perm_insertionSort - theorem List.rel_of_sorted_cons + theorem List.sortedGE_iff_antitone_get + theorem List.sortedGE_iff_getElem_ge_getElem_of_le + theorem List.sortedGE_iff_isChain + theorem List.sortedGE_iff_pairwise + theorem List.sortedGE_insertionSort + theorem List.sortedGE_map_ofDual + theorem List.sortedGE_map_toDual + theorem List.sortedGE_mergeSort + theorem List.sortedGE_ofFn_iff + theorem List.sortedGE_reverse + theorem List.sortedGT_iff_getElem_gt_getElem_of_lt + theorem List.sortedGT_iff_isChain + theorem List.sortedGT_iff_nodup_and_sortedGE + theorem List.sortedGT_iff_pairwise + theorem List.sortedGT_iff_strictAnti_get + theorem List.sortedGT_map_ofDual + theorem List.sortedGT_map_toDual + theorem List.sortedGT_ofFn_iff + theorem List.sortedGT_reverse + theorem List.sortedLE_iff_getElem_le_getElem_of_le + theorem List.sortedLE_iff_isChain + theorem List.sortedLE_iff_monotone_get + theorem List.sortedLE_iff_pairwise + theorem List.sortedLE_insertionSort + theorem List.sortedLE_map_ofDual + theorem List.sortedLE_map_toDual + theorem List.sortedLE_mergeSort + theorem List.sortedLE_ofFn_iff + theorem List.sortedLE_range' + theorem List.sortedLE_replicate + theorem List.sortedLE_reverse + theorem List.sortedLT_finRange + theorem List.sortedLT_iff_getElem_lt_getElem_of_lt + theorem List.sortedLT_iff_isChain + theorem List.sortedLT_iff_nodup_and_sortedLE + theorem List.sortedLT_iff_pairwise + theorem List.sortedLT_iff_strictMono_get + theorem List.sortedLT_map_ofDual + theorem List.sortedLT_map_toDual + theorem List.sortedLT_ofFn_iff + theorem List.sortedLT_range' + theorem List.sortedLT_range + theorem List.sortedLT_reverse - theorem List.sorted_cons - theorem List.sorted_cons_cons - theorem List.sorted_ge_ofFn_iff - theorem List.sorted_gt_ofFn_iff - theorem List.sorted_insertionSort - theorem List.sorted_le_ofFn_iff +/- theorem List.sorted_le_range' +/- theorem List.sorted_le_range - theorem List.sorted_le_replicate - theorem List.sorted_lt_ofFn_iff - theorem List.sorted_lt_range' - theorem List.sorted_lt_range - theorem List.sorted_mergeSort' - theorem List.sorted_nil - theorem List.sorted_ofFn_iff - theorem List.sorted_replicate - theorem List.sorted_singleton +/- theorem List.sublist_insertionSort' + theorem List.sublist_of_subperm_of_pairwise - theorem List.sublist_of_subperm_of_sorted + theorem List.sublist_of_subperm_of_sortedGE + theorem List.sublist_of_subperm_of_sortedLE + theorem OrderEmbedding.sortedGE_listMap + theorem OrderEmbedding.sortedGT_listMap + theorem OrderEmbedding.sortedLE_listMap + theorem OrderEmbedding.sortedLT_listMap - theorem OrderEmbedding.sorted_gt_listMap - theorem OrderEmbedding.sorted_lt_listMap + theorem OrderIso.sortedGT_listMap + theorem OrderIso.sortedLT_listMap - theorem OrderIso.sorted_gt_listMap - theorem OrderIso.sorted_lt_listMap + theorem RelEmbedding.pairwise_listMap + theorem RelEmbedding.pairwise_swap_listMap - theorem RelEmbedding.sorted_listMap - theorem RelEmbedding.sorted_swap_listMap + theorem RelIso.pairwise_listMap + theorem RelIso.pairwise_swap_listMap - theorem RelIso.sorted_listMap - theorem RelIso.sorted_swap_listMap + theorem StrictAnti.sortedGE_listMap + theorem StrictAnti.sortedGT_listMap + theorem StrictAnti.sortedLE_listMap + theorem StrictAnti.sortedLT_listMap - theorem StrictAnti.sorted_ge_listMap - theorem StrictAnti.sorted_gt_listMap - theorem StrictAnti.sorted_le_listMap - theorem StrictAnti.sorted_lt_listMap + theorem StrictMono.sortedGE_listMap + theorem StrictMono.sortedGT_listMap + theorem StrictMono.sortedLE_listMap + theorem StrictMono.sortedLT_listMap - theorem StrictMono.sorted_ge_listMap - theorem StrictMono.sorted_gt_listMap - theorem StrictMono.sorted_le_listMap - theorem StrictMono.sorted_lt_listMap Modified Mathlib/Data/Multiset/Sort.lean + theorem Multiset.pairwise_sort - theorem Multiset.sort_sorted Modified Mathlib/Data/Nat/BitIndices.lean +/- theorem Nat.bitIndices_sorted +/- theorem Nat.bitIndices_twoPowsum Modified Mathlib/Data/Nat/Factors.lean +/- theorem Nat.primeFactorsList_sorted Added Mathlib/Deprecated/Sort.lean + theorem List.Sorted.filter + theorem List.Sorted.filterMap + theorem List.Sorted.of_cons + theorem List.Sorted.rel_of_mem_take_of_mem_drop + theorem List.Sorted.tail + def List.decidableSorted + theorem List.rel_of_sorted_cons + theorem List.sorted_cons + theorem List.sorted_nil + theorem List.sorted_singleton Modified Mathlib/Logic/Equiv/Finset.lean +/- theorem Denumerable.raise'_sorted +/- theorem Denumerable.raise_lower' Modified Mathlib/Logic/Equiv/Multiset.lean +/- theorem Denumerable.raise_lower +/- theorem Denumerable.raise_sorted Modified Mathlib/NumberTheory/ADEInequality.lean Modified Mathlib/NumberTheory/Divisors.lean + theorem Nat.pairwise_divisorsAntidiagonalList_fst + theorem Nat.pairwise_divisorsAntidiagonalList_snd + theorem Nat.sortedGT_map_snd_divisorsAntidiagonalList + theorem Nat.sortedLT_map_fst_divisorsAntidiagonalList - theorem Nat.sorted_divisorsAntidiagonalList_fst - theorem Nat.sorted_divisorsAntidiagonalList_snd Modified Mathlib/Order/JordanHolder.lean +/- theorem CompositionSeries.ext +/- theorem CompositionSeries.toList_sorted Modified Mathlib/Order/RelSeries.lean + theorem RelSeries.toList_getElem Modified Mathlib/Order/Synonym.lean + theorem OrderDual.ofDual_comp_toDual + theorem OrderDual.ofDual_trans_toDual + theorem OrderDual.toDual_comp_ofDual + theorem OrderDual.toDual_trans_ofDual Modified Mathlib/SetTheory/Ordinal/Basic.lean - theorem List.Sorted.lt_ord_of_lt + theorem List.SortedGT.lt_ord_of_lt Modified Mathlib/SetTheory/Ordinal/CantorNormalForm.lean Modified Mathlib/Tactic/Simproc/Factors.lean Modified Mathlib/Topology/Category/Profinite/Nobeling/Basic.lean Modified Mathlib/Topology/Category/Profinite/Nobeling/Span.lean 2025-12-05 15:16:34 777c0f0 feat(SimpleGraph): `IsSubwalk` of common Walk decompositions (#29369) Add some helper lemmas to show that decompositions of walks are sub-walks. ESTIMATED CHANGES Modified Mathlib/Combinatorics/SimpleGraph/Connectivity/WalkDecomp.lean + theorem SimpleGraph.Walk.isSubwalk_dropUntil + theorem SimpleGraph.Walk.isSubwalk_takeUntil Modified Mathlib/Combinatorics/SimpleGraph/Walks/Operations.lean + theorem SimpleGraph.Walk.append_take_drop_eq Modified Mathlib/Combinatorics/SimpleGraph/Walks/Subwalks.lean + theorem SimpleGraph.Walk.isSubwalk_concat + theorem SimpleGraph.Walk.isSubwalk_drop + theorem SimpleGraph.Walk.isSubwalk_take 2025-12-05 15:16:32 830d71f feat(Data/List): periods of lists; prove the Periodicity Lemma (#29362) Add the concept of the period of a List (word, sequence) which is missing, and prove its basic nontrivial property describing under which conditions list can have two periods known as the Periodicity Lemma (aka Fine-Wilf Theorem). ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Data/List/PeriodicityLemma.lean + theorem List.HasPeriod.drop_of_hasPeriod_add + theorem List.HasPeriod.drop_prefix + theorem List.HasPeriod.factor + theorem List.HasPeriod.gcd + theorem List.HasPeriod.getElem?_mod + theorem List.HasPeriod.infix + theorem List.HasPeriod.take_append + def List.HasPeriod + theorem List.hasPeriod_empty + theorem List.hasPeriod_iff_forall_getElem?_mod + theorem List.hasPeriod_iff_getElem? + theorem List.hasPeriod_of_length_le + theorem List.hasPeriod_zero 2025-12-05 15:01:11 ee728d5 feat(Algebra/Homology): morphisms in the derived category between single complexes (#32439) When `Ext` groups of an abelian category are `w`-small, the type of morphisms in the derived category between complexes that are cohomologically in a single degree are also `w`-small. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Homology/DerivedCategory/Ext/Basic.lean Added Mathlib/Algebra/Homology/DerivedCategory/Ext/TStructure.lean + theorem CategoryTheory.HasExt.hasSmallLocalizedShiftedHom_of_isLE_of_isGE Modified Mathlib/Algebra/Homology/DerivedCategory/TStructure.lean + theorem DerivedCategory.exists_iso_singleFunctor_obj_of_isGE_of_isLE 2025-12-05 15:01:09 ece545c feat(Combinatorics/SimpleGraph/Connectivity/Subgraph): map a walk to its own subgraph (#30826) While this is not very interesting on its own, it opens the possibility of mapping a walk to any graph, given a graph homomorphism from the walk's subgraph. ESTIMATED CHANGES Modified Mathlib/Combinatorics/SimpleGraph/Connectivity/Subgraph.lean + def SimpleGraph.Walk.mapToSubgraph + theorem SimpleGraph.Walk.map_mapToSubgraph_eq_induce + theorem SimpleGraph.Walk.map_mapToSubgraph_eq_induce_id + theorem SimpleGraph.Walk.map_mapToSubgraph_hom 2025-12-05 15:01:06 07f0a46 feat(Combinatorics/SimpleGraph/Acyclic): `singletonGraph` and `subgraphOfAdj` are trees (#30757) ESTIMATED CHANGES Modified Mathlib/Combinatorics/SimpleGraph/Acyclic.lean + theorem SimpleGraph.IsAcyclic.of_subsingleton + theorem SimpleGraph.IsTree.coe_singletonSubgraph + theorem SimpleGraph.IsTree.coe_subgraphOfAdj + theorem SimpleGraph.IsTree.of_subsingleton + theorem SimpleGraph.Subgraph.isAcyclic_coe_bot Modified Mathlib/Combinatorics/SimpleGraph/Subgraph.lean 2025-12-05 13:19:41 57f46b3 feat(CategoryTheory/Bicategory): fix `to_app` tags (#32468) Fix these tags to generate more useful lemmas. When I first added these I was not so careful, as I was not sure how useful this attribute would be in the end, and I did not want to rigorously go around and tag every lemma that could be tagged with `to_app`. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Bicategory/Functor/Lax.lean Modified Mathlib/CategoryTheory/Bicategory/Functor/Oplax.lean Modified Mathlib/CategoryTheory/Bicategory/Functor/Pseudofunctor.lean Modified Mathlib/CategoryTheory/Bicategory/NaturalTransformation/Pseudo.lean 2025-12-05 13:19:40 a7e9955 feat(tauto): better error message on failure (#32406) This PR improves the `tauto` error message. Previously, it said "tauto failed to solve some goals.", and then a separate message reported on the unsolved goals. But I think these unsolved goals are implementation details of `tauto`. So instead, the error message now says "Tactic `tauto` failed", followed by the goal on which `tauto` was run. This change is so that `tauto` can be used as part of the `by_contra!` tactic. ESTIMATED CHANGES Modified Mathlib/Lean/Elab/Tactic/Basic.lean - def Lean.Elab.Tactic.doneWithScope - def Lean.Elab.Tactic.focusAndDoneWithScope Modified Mathlib/Tactic/Tauto.lean +/- def Mathlib.Tactic.Tauto.tautology 2025-12-05 13:19:38 dbaea0e chore(Order/BoundedOrder/Basic): use `to_dual` (#32377) Notes: - `eq_bot_of_minimal` didn't have a dual version, and was unused, so I deprecated it. - I removed the two >6 month old deprecations. - The choice of whether to write down top/bot lemmas is mostly based on whichever one came first originally. ESTIMATED CHANGES Modified Mathlib/Order/BoundedOrder/Basic.lean - theorem Ne.bot_lt' - theorem Ne.bot_lt - theorem OrderDual.ofDual_bot - theorem OrderDual.ofDual_eq_bot +/- theorem OrderDual.ofDual_eq_top +/- theorem OrderDual.ofDual_top - theorem OrderDual.toDual_bot - theorem OrderDual.toDual_eq_bot +/- theorem OrderDual.toDual_eq_top +/- theorem OrderDual.toDual_top - theorem Pi.top_apply - theorem Pi.top_comp - theorem Pi.top_def - theorem Prod.fst_bot +/- theorem Prod.fst_top - theorem Prod.snd_bot +/- theorem Prod.snd_top - theorem Subtype.coe_eq_top_iff - theorem Subtype.coe_top - theorem Subtype.mk_eq_top_iff - theorem Subtype.mk_top - theorem ULift.down_bot +/- theorem ULift.down_top - theorem ULift.up_bot +/- theorem ULift.up_top - theorem bot_le - theorem bot_lt_iff_ne_bot - theorem bot_lt_of_lt - theorem bot_notMem_iff - theorem bot_unique - theorem eq_bot_iff - theorem eq_bot_mono - theorem eq_bot_or_bot_lt - theorem isBot_bot - theorem isBot_iff_eq_bot - theorem isMin_bot - theorem isMin_iff_eq_bot - theorem le_bot_iff +/- theorem lt_top_of_lt - theorem ne_bot_of_gt - theorem ne_bot_of_le_ne_bot - theorem not_bot_lt_iff - theorem not_isBot_iff_ne_bot - theorem not_isMax_bot - theorem not_isMin_iff_ne_bot - theorem not_lt_bot - theorem top_ne_bot Modified Mathlib/Order/KrullDimension.lean 2025-12-05 13:19:36 5dcbf6d doc(1000.yaml): add `ZMod` version of Chinese remainder theorem (#32340) The `Ideal` statement is from leanprover-community/mathlib3#774 and the `ZMod` statement is from leanprover-community/mathlib3#8356. ESTIMATED CHANGES Modified docs/1000.yaml 2025-12-05 13:19:34 d2fb7e0 feat: generalize urysohns lemma (#32337) Generalize some of the theorems in the Urysohn's lemma file. ESTIMATED CHANGES Modified Mathlib/Topology/UrysohnsLemma.lean +/- theorem exists_continuousMap_one_of_isCompact_subset_isOpen +/- theorem exists_tsupport_one_of_isOpen_isClosed 2025-12-05 13:19:32 55bbac0 feat(translate): refactor `applyReplacementFun` and more (#32176) This PR cleans up a lot of the `to_additive` implementation. `applyReplacementFun` is cleaned up: - Instead of running `shouldTranslate` at every single constant appliaction, we now only run it on constant applications where the head constant can actually be translated - The option for translating numerals was mistakenly not actually looked at. This means that `to_dual` would translate the numeral 1 to 0. This is fixed. - We remove the `Expr.proj` handling, because these are already handled by `expand`. - The `if gf.isBVar && x.isLit` is now not needed anymore and is removed. - It now uses `memoFix` instead of `Lean.Expr.replaceRec`, which will is more transparent, and will allow us to change the monad in the future if needed. Some more cleanups: - `transformDecl` has been removed/inlined since it is a small function only used once. - `transformDeclAux` has been renamed to `transformDeclRec` (as it recursively transforms the declarations appearing inside the declaration). It now recursively calls itself with an empty `reorder` and `dontTranslate`, which helps avoid a case split. - In `ToAdditive` and `ToDual`, an unused piece of syntax has been removed. - `memoFix` has been reimplemented to actually use pointer equality. ESTIMATED CHANGES Modified Mathlib/Tactic/Translate/Core.lean Modified Mathlib/Tactic/Translate/ToAdditive.lean Modified Mathlib/Tactic/Translate/ToDual.lean Modified Mathlib/Util/MemoFix.lean + def injectIntoBaseIO Modified MathlibTest/ToDual.lean + theorem one_le_one Modified MathlibTest/toAdditive.lean 2025-12-05 13:19:31 6de4df1 feat(CMField): add `IsCyclotomicExtension.Rat.isCMField` (#31812) We remove the `NumberField` hypothesis in two more results and thus can deduce that any nontrivial cyclotomic extension of `ℚ` is `CM`. In particular, we add the instance: ```lean instance (K : Type*) [Field K] [CharZero K] [IsCyclotomicExtension ⊤ ℚ K] : IsCMField K ``` ESTIMATED CHANGES Modified Mathlib/NumberTheory/NumberField/CMField.lean + theorem NumberField.IsCMField.IsCyclotomicExtension.Rat.isCMField +/- theorem NumberField.IsCMField.ofCMExtension +/- theorem NumberField.IsCMField.of_forall_isConj Modified Mathlib/NumberTheory/NumberField/Cyclotomic/Embeddings.lean + theorem IsCyclotomicExtension.Rat.isTotallyComplex +/- theorem IsCyclotomicExtension.Rat.nrRealPlaces_eq_zero Modified Mathlib/NumberTheory/NumberField/InfinitePlace/Ramification.lean + theorem NumberField.InfinitePlace.IsComplex.of_comap Modified Mathlib/NumberTheory/NumberField/InfinitePlace/TotallyRealComplex.lean + theorem NumberField.isTotallyComplex_of_algebra 2025-12-05 13:19:29 06bb38c feat(push_neg): `push_neg +distrib` syntax (#31406) This PR adds the syntax `push_neg +distrib`, `by_cases! +distrib`, `contrapose! +distrib` and `by_contra! +distrib`. This is much more convenient to use than writing out `set_option push_neg.use_distrib true in`. All uses of the `set_option` version have been replaced with the new syntax. I also add a missing `namespace` in the definition of `by_cases!` and `by_contra!` ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Pointwise/Finset/Basic.lean Modified Mathlib/Algebra/Group/Pointwise/Set/Basic.lean Modified Mathlib/Algebra/Group/UniqueProds/Basic.lean Modified Mathlib/Analysis/SpecialFunctions/BinaryEntropy.lean Modified Mathlib/Data/EReal/Operations.lean Modified Mathlib/Data/Finite/Prod.lean Modified Mathlib/Geometry/Euclidean/Angle/Oriented/Basic.lean Modified Mathlib/LinearAlgebra/LinearIndependent/Defs.lean Modified Mathlib/NumberTheory/Padics/PadicVal/Basic.lean Modified Mathlib/NumberTheory/WellApproximable.lean Modified Mathlib/Order/LiminfLimsup.lean Modified Mathlib/Order/Quotient.lean Modified Mathlib/RingTheory/Ideal/Basic.lean Modified Mathlib/SetTheory/Cardinal/Arithmetic.lean Modified Mathlib/Tactic/ByCases.lean Modified Mathlib/Tactic/ByContra.lean Modified Mathlib/Tactic/Contrapose.lean Modified Mathlib/Tactic/Push.lean + structure Mathlib.Tactic.Push.Config + def Mathlib.Tactic.Push.push +/- def Mathlib.Tactic.Push.pushCore +/- def Mathlib.Tactic.Push.pushStep Modified MathlibTest/Contrapose.lean Modified MathlibTest/byContra.lean Modified MathlibTest/push_neg.lean 2025-12-05 13:19:27 bb08bd8 feat(Bicategory/FunctorBicategory): define bicategory of pseudofunctors (#30926) This PR contains a definition of the bicategory of pseudofunctors, in the file `Bicategory/FunctorBicategory/Pseudo.lean`. It also moves the file `Bicategory/Functorbicategory.lean` to `Bicategory/FunctorBicategory/Oplax.lean`. This is a migration of #14089 to a fork. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/CategoryTheory/Bicategory/FunctorBicategory/Oplax.lean Added Mathlib/CategoryTheory/Bicategory/FunctorBicategory/Pseudo.lean Modified Mathlib/CategoryTheory/Bicategory/NaturalTransformation/Oplax.lean 2025-12-05 12:39:41 ce74069 chore(Algebra/MonoidAlgebra): use `to_additive` more (#32398) Using Jovan's new `dont_translate` syntax, we can tag much more of the `MonoidAlgebra` API with `to_additive`. A few points: 1. `to_additive` currently doesn't support the destructing `have` syntax, because it generates an auxiliary `match` statement. The corresponding `obtain` syntax is fine though. 2. `AddMonoidAlgebra.opRingEquiv` and `MonoidAlgebra.opRingEquiv` were not the same statement (up to additivisation): The first assumed commutativity of the base monoid to get rid of an `AddOpposite` in the RHS. Using `to_additive` makes the type signatures align, at the cost of some shuffling around in later files. This shuffling around will become trivial after #32254. ESTIMATED CHANGES Modified Mathlib/Algebra/MonoidAlgebra/Module.lean - theorem AddMonoidAlgebra.distribMulActionHom_ext' - theorem AddMonoidAlgebra.lhom_ext' - theorem AddMonoidAlgebra.lsingle_apply +/- theorem MonoidAlgebra.distribMulActionHom_ext' +/- theorem MonoidAlgebra.lhom_ext' +/- theorem MonoidAlgebra.lsingle_apply Modified Mathlib/Algebra/MonoidAlgebra/NoZeroDivisors.lean - theorem AddMonoidAlgebra.mul_apply_add_eq_mul_of_uniqueAdd Modified Mathlib/Algebra/MonoidAlgebra/Opposite.lean - theorem AddMonoidAlgebra.opRingEquiv_single - theorem AddMonoidAlgebra.opRingEquiv_symm_single +/- theorem MonoidAlgebra.opRingEquiv_single +/- theorem MonoidAlgebra.opRingEquiv_symm_single Modified Mathlib/Algebra/MonoidAlgebra/Support.lean - theorem AddMonoidAlgebra.support_mul - theorem AddMonoidAlgebra.support_mul_single - theorem AddMonoidAlgebra.support_one - theorem AddMonoidAlgebra.support_one_subset - theorem AddMonoidAlgebra.support_single_mul +/- theorem MonoidAlgebra.support_mul +/- theorem MonoidAlgebra.support_mul_single +/- theorem MonoidAlgebra.support_mul_single_eq_image +/- theorem MonoidAlgebra.support_mul_single_subset +/- theorem MonoidAlgebra.support_single_mul +/- theorem MonoidAlgebra.support_single_mul_eq_image +/- theorem MonoidAlgebra.support_single_mul_subset Modified Mathlib/RingTheory/Polynomial/Opposites.lean +/- theorem Polynomial.support_opRingEquiv 2025-12-05 12:05:57 e43846c feat(AlgebraicTopology/SimplicialSet): the rank function with values in natural numbers of a regular pairing (#28351) Given a regular pairing `P` for a subcomplex of a simplicial set, following the work by Sean Moss, *Another approach to the Kan-Quillen model structure*, we show that the rank function relative to the well founded ancestrality relation has values in the type of natural numbers. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/AlgebraicTopology/SimplexCategory/Basic.lean Modified Mathlib/AlgebraicTopology/SimplicialSet/AnodyneExtensions/Pairing.lean + theorem SSet.Subcomplex.Pairing.dim_p Added Mathlib/AlgebraicTopology/SimplicialSet/AnodyneExtensions/RankNat.lean + theorem SSet.Subcomplex.Pairing.isRegular_iff_nonempty_rankFunction + theorem SSet.Subcomplex.Pairing.isRegular_iff_nonempty_weakRankFunction + theorem SSet.Subcomplex.Pairing.rank'_eq + theorem SSet.Subcomplex.Pairing.rank'_lt + theorem SSet.Subcomplex.Pairing.rank_lt 2025-12-05 11:03:20 2c4760b chore: golf using `grind` (#32333) ESTIMATED CHANGES Modified Mathlib/Data/Set/Image.lean Modified Mathlib/Order/Interval/Finset/Basic.lean Modified Mathlib/Order/Interval/Finset/Nat.lean +/- theorem Nat.Ico_succ_singleton +/- theorem Nat.Ioc_succ_singleton 2025-12-05 11:03:18 ce93331 feat(Analysis): derivative of Weierstrass ℘ (#32089) ESTIMATED CHANGES Modified Mathlib/Analysis/SpecialFunctions/Elliptic/Weierstrass.lean + def PeriodPair.derivWeierstrassP + def PeriodPair.derivWeierstrassPExcept + theorem PeriodPair.derivWeierstrassPExcept_add_coe + theorem PeriodPair.derivWeierstrassPExcept_def + theorem PeriodPair.derivWeierstrassPExcept_neg + theorem PeriodPair.derivWeierstrassPExcept_of_notMem + theorem PeriodPair.derivWeierstrassPExcept_sub + theorem PeriodPair.derivWeierstrassP_add_coe + theorem PeriodPair.derivWeierstrassP_coe + theorem PeriodPair.derivWeierstrassP_neg + theorem PeriodPair.derivWeierstrassP_sub_coe + theorem PeriodPair.derivWeierstrassP_zero + theorem PeriodPair.deriv_weierstrassP + theorem PeriodPair.differentiableOn_derivWeierstrassP + theorem PeriodPair.differentiableOn_derivWeierstrassPExcept + theorem PeriodPair.eqOn_deriv_weierstrassPExcept_derivWeierstrassPExcept + theorem PeriodPair.hasSumLocallyUniformly_derivWeierstrassP + theorem PeriodPair.hasSumLocallyUniformly_derivWeierstrassPExcept + theorem PeriodPair.hasSum_derivWeierstrassP + theorem PeriodPair.hasSum_derivWeierstrassPExcept + theorem PeriodPair.isOpen_compl_lattice_diff + theorem PeriodPair.not_continuousAt_weierstrassP + theorem PeriodPair.periodic_derivWeierstrassP + theorem PeriodPair.periodic_weierstrassP + theorem PeriodPair.weierstrassP_add_coe + theorem PeriodPair.weierstrassP_coe + theorem PeriodPair.weierstrassP_sub_coe + theorem PeriodPair.weierstrassP_zero 2025-12-05 11:03:15 d8b3187 chore(Tactic/Linters): remove `public section` (#31803) Mostly as a learning exercise for me to understand the module system better. ESTIMATED CHANGES Modified Mathlib/Tactic/Linter/CommandRanges.lean Modified Mathlib/Tactic/Linter/CommandStart.lean - def Mathlib.Linter.mkWindow Modified Mathlib/Tactic/Linter/DeprecatedModule.lean Modified Mathlib/Tactic/Linter/DeprecatedSyntaxLinter.lean Modified Mathlib/Tactic/Linter/DirectoryDependency.lean +/- def Mathlib.Linter.DirectoryDependency.NamePrefixRel - def Mathlib.Linter.directoryDependencyCheck - def findImports Modified Mathlib/Tactic/Linter/DocPrime.lean Modified Mathlib/Tactic/Linter/DocString.lean - def Mathlib.Linter.getDeclModifiers Modified Mathlib/Tactic/Linter/FindDeprecations.lean Modified Mathlib/Tactic/Linter/FlexibleLinter.lean - def Mathlib.Linter.Flexible.toStained Modified Mathlib/Tactic/Linter/GlobalAttributeIn.lean Modified Mathlib/Tactic/Linter/HashCommandLinter.lean Modified Mathlib/Tactic/Linter/HaveLetLinter.lean Modified Mathlib/Tactic/Linter/Header.lean - def Mathlib.Linter.copyrightHeaderChecks - def Mathlib.Linter.getImportIds Modified Mathlib/Tactic/Linter/Lint.lean - def Batteries.Tactic.Lint.deprecatedNoSince - def Batteries.Tactic.Lint.structureInType Modified Mathlib/Tactic/Linter/MinImports.lean Modified Mathlib/Tactic/Linter/Multigoal.lean Modified Mathlib/Tactic/Linter/OldObtain.lean Modified Mathlib/Tactic/Linter/PPRoundtrip.lean Modified Mathlib/Tactic/Linter/Style.lean - def Mathlib.Linter.Style.openClassical.extractOpenNames - def Mathlib.Linter.Style.setOption.isSetOption - def Mathlib.Linter.isCDot? Modified Mathlib/Tactic/Linter/TextBased.lean - inductive Mathlib.Linter.TextBased.ErrorFormat - def Mathlib.Linter.TextBased.modulesOSForbidden Modified Mathlib/Tactic/Linter/UnusedTactic.lean Modified Mathlib/Tactic/Linter/UnusedTacticExtension.lean Modified Mathlib/Tactic/Linter/UpstreamableDecl.lean - def Lean.Name.isLocal Modified MathlibTest/CommandStart.lean Modified MathlibTest/FlexibleLinter.lean Modified MathlibTest/ForbiddenModuleNames.lean - def testModulesOSForbidden Modified MathlibTest/ModuleCasing.lean - def testModulesNotUpperCamelCase 2025-12-05 11:03:13 f337188 refactor(AlgebraicTopology): refactor the homotopy category and the nerve adjunction (#31174) This PR completely refactors the adjunction between quivers and reflexive quivers, the homotopy category of a simplicial set, and the adjunction between (2-truncated) simplicial sets and `Cat` (which involves the homotopy category of a simplicial set and the nerve of a category). The general principle which is applied here is that for any (strictly functorial) construction involving quivers, refl. quivers or categories, the constructions and the basic API are first done in the unbundled setting (a type with a `Category/Quiver/...` instance), and only at the very end, the functors involving `Cat/Quiv/...` and the adjunctions are defined in the bundled situation. This gives cleaner code and improves automation. The adjunctions are now constructed by defining the `homEquiv` rather than by constructing the unit/counit. This emphasizes a little bit more the universal properties of the constructions. The unit/counit can be recovered from the `homEquiv` (and it seems they are definitionally to the previous definitions). ESTIMATED CHANGES Modified Mathlib/AlgebraicTopology/SimplicialSet/CompStruct.lean + theorem SSet.Edge.toTruncated_id Modified Mathlib/AlgebraicTopology/SimplicialSet/HomotopyCat.lean + theorem SSet.OneTruncation₂.HoRel₂.mk + inductive SSet.OneTruncation₂.HoRel₂ - structure SSet.OneTruncation₂.Hom +/- theorem SSet.OneTruncation₂.homOfEq_edge +/- theorem SSet.OneTruncation₂.hom_ext +/- theorem SSet.OneTruncation₂.id_edge + def SSet.OneTruncation₂.map +/- def SSet.OneTruncation₂.nerveEquiv +/- def SSet.OneTruncation₂.nerveHomEquiv + theorem SSet.OneTruncation₂.nerveHomEquiv_apply + theorem SSet.OneTruncation₂.nerveHomEquiv_id + theorem SSet.OneTruncation₂.nerve_hom_ext +/- def SSet.OneTruncation₂.ofNerve₂ - theorem SSet.Truncated.HoRel₂.mk' - inductive SSet.Truncated.HoRel₂ + theorem SSet.Truncated.HomotopyCategory.congr_arrowMk_homMk + theorem SSet.Truncated.HomotopyCategory.functor_ext + def SSet.Truncated.HomotopyCategory.homMk + theorem SSet.Truncated.HomotopyCategory.homMk_comp_homMk + theorem SSet.Truncated.HomotopyCategory.homMk_id + def SSet.Truncated.HomotopyCategory.lift + theorem SSet.Truncated.HomotopyCategory.lift_map_homMk + theorem SSet.Truncated.HomotopyCategory.lift_obj_mk +/- theorem SSet.Truncated.HomotopyCategory.lift_unique' + def SSet.Truncated.HomotopyCategory.mk + def SSet.Truncated.HomotopyCategory.mkNatIso + theorem SSet.Truncated.HomotopyCategory.mkNatIso_hom_app_mk + theorem SSet.Truncated.HomotopyCategory.mkNatIso_inv_app_mk + def SSet.Truncated.HomotopyCategory.mkNatTrans + theorem SSet.Truncated.HomotopyCategory.mkNatTrans_app_mk + theorem SSet.Truncated.HomotopyCategory.mk_surjective + def SSet.Truncated.HomotopyCategory.morphismPropertyHomMk + theorem SSet.Truncated.HomotopyCategory.morphismPropertyHomMk_eq_strictMap + theorem SSet.Truncated.HomotopyCategory.morphismPropertyHomMk_of_edge + theorem SSet.Truncated.HomotopyCategory.morphismProperty_eq_top + theorem SSet.Truncated.HomotopyCategory.multiplicativeClosure_morphismPropertyHomMk +/- def SSet.Truncated.HomotopyCategory.quotientFunctor +/- def SSet.Truncated.HomotopyCategory +/- def SSet.Truncated.mapHomotopyCategory + theorem SSet.Truncated.mapHomotopyCategory_homMk + theorem SSet.Truncated.mapHomotopyCategory_obj +/- def SSet.isTerminalHoFunctorDeltaZero Modified Mathlib/AlgebraicTopology/SimplicialSet/Nerve.lean + theorem CategoryTheory.nerve.edgeMk_id + theorem CategoryTheory.nerveMap_app_mk₀ + theorem CategoryTheory.nerveMap_app_mk₁ Modified Mathlib/AlgebraicTopology/SimplicialSet/NerveAdjunction.lean - theorem CategoryTheory.ReflPrefunctor.congr_mk₁_map + def CategoryTheory.nerve.fullyFaithfulNerveFunctor₂ + def CategoryTheory.nerve.functorOfNerveMap + theorem CategoryTheory.nerve.functorOfNerveMap_nerveFunctor₂_map + theorem CategoryTheory.nerve.nerveFunctor₂_map_functorOfNerveMap - def CategoryTheory.nerve₂Adj.counit.app - theorem CategoryTheory.nerve₂Adj.counit.app_eq - theorem CategoryTheory.nerve₂Adj.counit.naturality - def CategoryTheory.nerve₂Adj.counit - def CategoryTheory.nerve₂Adj.unit.app - theorem CategoryTheory.nerve₂Adj.unit.map_app_eq - theorem CategoryTheory.nerve₂Adj.unit.naturality - def CategoryTheory.nerve₂Adj.unit - theorem CategoryTheory.oneTruncation₂_toNerve₂Mk' - theorem CategoryTheory.toNerve₂.ext - def CategoryTheory.toNerve₂.mk' - def CategoryTheory.toNerve₂.mk.app - theorem CategoryTheory.toNerve₂.mk.app_one - theorem CategoryTheory.toNerve₂.mk.app_two - theorem CategoryTheory.toNerve₂.mk.app_zero - def CategoryTheory.toNerve₂.mk - theorem CategoryTheory.toNerve₂.mk_naturality - theorem CategoryTheory.toNerve₂.mk_naturality_δ0i - theorem CategoryTheory.toNerve₂.mk_naturality_δ1i - theorem CategoryTheory.toNerve₂.mk_naturality_σ00 - theorem CategoryTheory.toNerve₂.mk_naturality_σ1i + def SSet.Truncated.HomotopyCategory.descOfTruncation + theorem SSet.Truncated.HomotopyCategory.descOfTruncation_comp + theorem SSet.Truncated.HomotopyCategory.descOfTruncation_map_homMk + theorem SSet.Truncated.HomotopyCategory.descOfTruncation_obj_mk + def SSet.Truncated.HomotopyCategory.functorEquiv + def SSet.Truncated.HomotopyCategory.homToNerveMk + theorem SSet.Truncated.HomotopyCategory.homToNerveMk_app_edge + theorem SSet.Truncated.HomotopyCategory.homToNerveMk_app_one + theorem SSet.Truncated.HomotopyCategory.homToNerveMk_app_zero + theorem SSet.Truncated.HomotopyCategory.homToNerveMk_comp + def SSet.Truncated.liftOfStrictSegal.app + def SSet.Truncated.liftOfStrictSegal.f₂ + theorem SSet.Truncated.liftOfStrictSegal.hδ'₀ + theorem SSet.Truncated.liftOfStrictSegal.hδ'₁ + theorem SSet.Truncated.liftOfStrictSegal.hδ'₂ + theorem SSet.Truncated.liftOfStrictSegal.hσ'₀ + theorem SSet.Truncated.liftOfStrictSegal.hσ'₁ + theorem SSet.Truncated.liftOfStrictSegal.naturalityProperty_eq_top + theorem SSet.Truncated.liftOfStrictSegal.spineEquiv_f₂_arrow_one + theorem SSet.Truncated.liftOfStrictSegal.spineEquiv_f₂_arrow_zero + def SSet.Truncated.liftOfStrictSegal + theorem SSet.Truncated.liftOfStrictSegal_app_0 + theorem SSet.Truncated.liftOfStrictSegal_app_1 + def SSet.Truncated.nerve₂Adj Modified Mathlib/AlgebraicTopology/SimplicialSet/Path.lean + def SSet.Truncated.Path.mk₂ Modified Mathlib/CategoryTheory/Category/ReflQuiv.lean + theorem CategoryTheory.Cat.FreeRefl.functor_ext + def CategoryTheory.Cat.FreeRefl.homMk + theorem CategoryTheory.Cat.FreeRefl.homMk_id + theorem CategoryTheory.Cat.FreeRefl.hom_induction + def CategoryTheory.Cat.FreeRefl.induction + def CategoryTheory.Cat.FreeRefl.lift' + theorem CategoryTheory.Cat.FreeRefl.lift'_map + theorem CategoryTheory.Cat.FreeRefl.lift'_obj + def CategoryTheory.Cat.FreeRefl.lift + theorem CategoryTheory.Cat.FreeRefl.lift_map + theorem CategoryTheory.Cat.FreeRefl.lift_obj + theorem CategoryTheory.Cat.FreeRefl.lift_spec +/- theorem CategoryTheory.Cat.FreeRefl.lift_unique' + def CategoryTheory.Cat.FreeRefl.mk + def CategoryTheory.Cat.FreeRefl.morphismPropertyHomMk + theorem CategoryTheory.Cat.FreeRefl.morphismPropertyHomMk_homMk + theorem CategoryTheory.Cat.FreeRefl.morphismProperty_eq_top + theorem CategoryTheory.Cat.FreeRefl.multiplicativeClosure_morphismPropertyHomMk +/- def CategoryTheory.Cat.FreeRefl.quotientFunctor + theorem CategoryTheory.Cat.FreeRefl.quotientFunctor_map_cons +/- theorem CategoryTheory.Cat.FreeRefl.quotientFunctor_map_id + theorem CategoryTheory.Cat.FreeRefl.quotientFunctor_map_nil +/- def CategoryTheory.Cat.FreeRefl +/- inductive CategoryTheory.Cat.FreeReflRel +/- def CategoryTheory.Cat.freeReflMap + theorem CategoryTheory.Cat.freeReflMap_map + theorem CategoryTheory.Cat.freeReflMap_obj + def CategoryTheory.Cat.toFreeRefl - def CategoryTheory.ReflQuiv.adj.counit.app +/- theorem CategoryTheory.ReflQuiv.adj.counit.comp_app_eq + def CategoryTheory.ReflQuiv.adj.homEquiv + theorem CategoryTheory.ReflQuiv.adj.homEquiv_naturality_left_symm + theorem CategoryTheory.ReflQuiv.adj.homEquiv_naturality_right - def CategoryTheory.ReflQuiv.adj.unit.app +/- theorem CategoryTheory.ReflQuiv.adj.unit.map_app_eq + def CategoryTheory.ReflQuiv.adj + theorem CategoryTheory.ReflQuiv.adj_counit_app + theorem CategoryTheory.ReflQuiv.adj_homEquiv + theorem CategoryTheory.ReflQuiv.adj_unit_app + theorem CategoryTheory.ReflQuiv.comp_map + theorem CategoryTheory.ReflQuiv.comp_obj + theorem CategoryTheory.ReflQuiv.id_map + theorem CategoryTheory.ReflQuiv.id_obj Modified Mathlib/CategoryTheory/Monoidal/Closed/Cartesian.lean - theorem CategoryTheory.CartesianMonoidalCategory.isLeftAdjoint_prod_functor Modified Mathlib/CategoryTheory/MorphismProperty/Basic.lean + theorem CategoryTheory.MorphismProperty.map_mem_strictMap + inductive CategoryTheory.MorphismProperty.strictMap Modified Mathlib/CategoryTheory/MorphismProperty/Composition.lean + theorem CategoryTheory.MorphismProperty.strictMap_multiplicativeClosure_le Modified Mathlib/CategoryTheory/PathCategory/Basic.lean Modified Mathlib/Combinatorics/Quiver/ReflQuiver.lean +/- theorem CategoryTheory.ReflPrefunctor.congr_map 2025-12-05 11:03:11 1097e18 feat(FieldTheory): fg extension over perfect field is separably generated (#30998) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/FieldTheory/Perfect.lean + theorem frobeniusEquiv_symm_pow Added Mathlib/FieldTheory/SeparablyGenerated.lean + theorem MvPolynomial.aeval_toPolynomialAdjoinImageCompl_eq_zero + theorem MvPolynomial.coeff_toPolynomialAdjoinImageCompl_ne_zero + theorem MvPolynomial.exists_mem_support_not_dvd_of_forall_totalDegree_le + theorem MvPolynomial.irreducible_of_forall_totalDegree_le + theorem MvPolynomial.irreducible_toPolynomialAdjoinImageCompl + theorem MvPolynomial.isAlgebraic_of_mem_vars_of_forall_totalDegree_le + def MvPolynomial.toPolynomialAdjoinImageCompl + theorem exists_isTranscendenceBasis_and_isSeparable_of_linearIndepOn_pow' + theorem exists_isTranscendenceBasis_and_isSeparable_of_linearIndepOn_pow + theorem exists_isTranscendenceBasis_and_isSeparable_of_linearIndepOn_pow_of_adjoin_eq_top + theorem exists_isTranscendenceBasis_and_isSeparable_of_linearIndepOn_pow_of_fg + theorem exists_isTranscendenceBasis_and_isSeparable_of_perfectField Modified Mathlib/RingTheory/AlgebraicIndependent/Defs.lean + def AlgebraicIndepOn.aevalEquiv + theorem AlgebraicIndepOn.univ 2025-12-05 10:18:47 e92873e chore(Algebra): extract `Submonoid.IsLocalizationMap` (#29596) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Module/FinitePresentation.lean Modified Mathlib/AlgebraicGeometry/Morphisms/QuasiSeparated.lean Modified Mathlib/AlgebraicGeometry/ProjectiveSpectrum/Scheme.lean Modified Mathlib/GroupTheory/MonoidLocalization/Basic.lean + structure AddSubmonoid.IsLocalizationMap +/- structure AddSubmonoid.LocalizationMap + theorem AddSubmonoid.isLocalizationMap_nat_int + theorem AddSubmonoid.isLocalizationMap_top_nat_int + theorem Submonoid.IsLocalizationMap.mulEquiv_comp + structure Submonoid.IsLocalizationMap + theorem Submonoid.LocalizationMap.exists_of_eq + theorem Submonoid.LocalizationMap.map_injective_of_surjOn_or_injective + theorem Submonoid.LocalizationMap.map_surjective_of_surjOn + theorem Submonoid.LocalizationMap.subsingleton_of_subsingleton +/- structure Submonoid.LocalizationMap + theorem Submonoid.isLocalizationMap_id + theorem Submonoid.isLocalizationMap_iff_bijective + theorem Submonoid.isLocalizationMap_of_group Added Mathlib/GroupTheory/MonoidLocalization/Lemmas.lean + theorem Submonoid.IsLocalizationMap.surj_pi_of_finite Modified Mathlib/GroupTheory/MonoidLocalization/MonoidWithZero.lean +/- theorem Submonoid.LocalizationMap.subsingleton - def Submonoid.LocalizationMap.toMonoidWithZeroHom Modified Mathlib/RingTheory/EssentialFiniteness.lean Modified Mathlib/RingTheory/Extension/Presentation/Submersive.lean Modified Mathlib/RingTheory/GradedAlgebra/HomogeneousLocalization.lean Modified Mathlib/RingTheory/Localization/Basic.lean Modified Mathlib/RingTheory/Localization/Defs.lean + theorem IsLocalization.exists_of_eq +/- theorem IsLocalization.injective_iff_isRegular + theorem IsLocalization.map_units + theorem IsLocalization.surj + theorem isLocalization_iff + theorem isLocalization_iff_isLocalizationMap Modified Mathlib/RingTheory/Localization/FractionRing.lean Modified Mathlib/RingTheory/Valuation/ValuationRing.lean 2025-12-05 09:09:50 1843876 feat(TacticAnalysis): add generic env var-based tryAtEachStep linter (#32416) ## Summary Adds a generic `tryAtEachStepFromEnv` tactic analysis linter that reads the tactic to try from environment variables. This allows hammer-bench and similar tools to test arbitrary tactics without requiring Mathlib code changes. - `TRY_AT_EACH_STEP_TACTIC`: The tactic syntax to try (e.g., "grind +suggestions") - `TRY_AT_EACH_STEP_LABEL`: Human-readable label for output (optional) Uses `captureException` with `tacticSeq.fn` to parse tactic strings, following Kenny Lau's suggestion from [Zulip](https://leanprover.zulipchat.com/#narrow/channel/113488-general/topic/piggy.20back.20off.20of.20the.20lean4.20parser). This enables support for tactic sequences like "simp; grind". Also removes the unnecessary `Mathlib.Init` import from `ParseCommand.lean` to avoid import cycles. 🤖 Prepared with Claude Code ESTIMATED CHANGES Modified Mathlib/Init.lean Modified Mathlib/Tactic/TacticAnalysis/Declarations.lean +/- def Mathlib.TacticAnalysis.tryAtEachStep + def Mathlib.TacticAnalysis.tryAtEachStepCore + def Mathlib.TacticAnalysis.tryAtEachStepFromEnvImpl + def Mathlib.TacticAnalysis.tryAtEachStepFromStrings + def tryAtEachStepFromEnv Modified Mathlib/Util/ParseCommand.lean Modified MathlibTest/TacticAnalysis.lean + def unknownTacticTest Modified MathlibTest/tryAtEachStep.lean 2025-12-05 04:35:26 a7f816c feat(Analysis/SpecialFunctions/Gamma/BohrMollerup): the Gamma function has a minimum in (1, 2) (#31409) There's a number in `(1, 2)` which is a minimum of `Gamma` on `(0, ∞)`. The actual number is ≈ 1.46163... ESTIMATED CHANGES Modified Mathlib/Analysis/SpecialFunctions/Gamma/BohrMollerup.lean + theorem Real.exists_isMinOn_Gamma_Ioi Modified Mathlib/Analysis/SpecialFunctions/Gamma/Deriv.lean + theorem Real.differentiableOn_Gamma_Ioi 2025-12-05 03:30:46 b6ceecf chore(Order/Lattice): use `to_dual` for `SemilatticeSup` (#32321) This PR uses `to_dual` for `SemilatticeSup` Notes: - `to_dual` cannot handle `Monotone` for the same reason that it cannot handle `DecidableLT`. - The dual of `le_iff_exists_sup` did not exist before. - The dual of `le_of_sup_eq` did not exist before. - `sup_le_sup_left`, `sup_congr_left`, `sup_eq_sup_iff_left` et all use the wrong left/right naming convention. - `sup_le_sup_left`, `sup_le_sup_right` currently require `(reorder := h₁ c)`, which indicates that the argument order is fishy. ESTIMATED CHANGES Modified Mathlib/Order/Lattice.lean - theorem Ne.inf_lt_or_inf_lt - theorem inf_assoc - theorem inf_comm - theorem inf_congr_left - theorem inf_congr_right - theorem inf_eq_inf_iff_left - theorem inf_eq_inf_iff_right - theorem inf_eq_left - theorem inf_eq_right - theorem inf_idem - theorem inf_inf_distrib_left - theorem inf_inf_distrib_right - theorem inf_inf_inf_comm - theorem inf_le_inf - theorem inf_le_inf_left - theorem inf_le_inf_right - theorem inf_le_ite - theorem inf_le_left - theorem inf_le_of_left_le - theorem inf_le_of_right_le - theorem inf_le_right - theorem inf_left_comm - theorem inf_left_idem - theorem inf_left_right_swap - theorem inf_lt_left - theorem inf_lt_left_or_right - theorem inf_lt_of_left_lt - theorem inf_lt_of_right_lt - theorem inf_lt_right - theorem inf_right_comm - theorem inf_right_idem +/- theorem ite_le_sup - theorem le_inf - theorem le_inf_iff - theorem left_eq_inf - theorem right_eq_inf 2025-12-05 02:29:31 9c0d097 feat(Linter/FlexibleLinter): add actionable fix suggestion to warning (#32421) ## Summary The flexible linter warning now includes actionable guidance on how to fix the issue: - For `simp`: "Try 'simp?' and use the suggested 'simp only [...]'." - For `simp_all`: "Try 'simp_all?' and use the suggested 'simp_all only [...]'." This addresses [user feedback on Zulip](https://leanprover.zulipchat.com/#narrow/channel/113488-general/topic/advice.20on.20fixing.20.22simp.20at.20.2E.2E.2E.22.20is.20a.20flexible.20tactic.20modifyin/near/561806999) that the warning was non-actionable, leading to the linter being disabled in #32420. **Before:** ``` 'simp at h' is a flexible tactic modifying 'h'… ``` **After:** ``` 'simp at h' is a flexible tactic modifying 'h'. Try 'simp?' and use the suggested 'simp only [...]'. ``` 🤖 Prepared with Claude Code ESTIMATED CHANGES Modified Mathlib/Tactic/Linter/FlexibleLinter.lean Modified MathlibTest/FlexibleLinter.lean Modified MathlibTest/ImportHeavyFlexibleLinter.lean 2025-12-05 02:29:29 a55eb6d chore: adaptations for batteries#1490 (#31270) After [batteries#1490](https://github.com/leanprover-community/batteries/pull/1490) is merged: - [x] Edit the lakefile to point to leanprover-community/batteries:main - [x] Run lake update batteries - [x] Merge leanprover-community/mathlib4:master - [ ] Wait for CI and merge ESTIMATED CHANGES Modified Mathlib/Algebra/Module/Torsion/Basic.lean Modified Mathlib/Analysis/Calculus/FDeriv/Mul.lean Modified Mathlib/Analysis/Normed/Module/Multilinear/Basic.lean Modified Mathlib/Data/Finset/Sort.lean Modified Mathlib/Data/List/FinRange.lean - theorem List.finRange_eq_nil - theorem List.finRange_eq_pmap_range - theorem List.finRange_map_get - theorem List.finRange_map_getElem - theorem List.get_finRange - theorem List.map_coe_finRange - theorem List.nodup_finRange - theorem List.pairwise_le_finRange - theorem List.pairwise_lt_finRange Modified Mathlib/Data/List/Sublists.lean Modified lake-manifest.json 2025-12-04 23:38:19 1560095 feat: define class `SemigroupAction` (#19046) ESTIMATED CHANGES Modified Mathlib/Algebra/Azumaya/Matrix.lean Modified Mathlib/Algebra/Category/ModuleCat/Presheaf.lean Modified Mathlib/Algebra/Group/Action/Defs.lean Modified Mathlib/Algebra/Group/Action/Hom.lean Modified Mathlib/Algebra/Group/Action/Prod.lean Modified Mathlib/Algebra/Group/Action/TypeTags.lean Modified Mathlib/Algebra/Polynomial/Laurent.lean Modified Mathlib/GroupTheory/CoprodI.lean Modified Mathlib/GroupTheory/GroupAction/SubMulAction/OfStabilizer.lean Modified Mathlib/LinearAlgebra/Eigenspace/Matrix.lean Modified Mathlib/LinearAlgebra/FreeModule/Finite/Quotient.lean Modified Mathlib/LinearAlgebra/Matrix/GeneralLinearGroup/FinTwo.lean Modified Mathlib/LinearAlgebra/Matrix/Module.lean Modified Mathlib/LinearAlgebra/Matrix/SesquilinearForm.lean Modified Mathlib/NumberTheory/ModularForms/BoundedAtCusp.lean Modified Mathlib/NumberTheory/ModularForms/CongruenceSubgroups.lean Modified Mathlib/NumberTheory/ModularForms/Cusps.lean Modified Mathlib/RingTheory/Kaehler/Basic.lean Modified Mathlib/RingTheory/Trace/Basic.lean Modified Mathlib/Topology/Compactification/OnePoint/ProjectiveLine.lean 2025-12-04 21:34:47 25333c5 fix: correct `RingEquiv.ofHomInv` so that it doesn't use `RingHomClass` (#32361) Per [#mathlib4 > Mathlib's morphism hierarchy](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Mathlib's.20morphism.20hierarchy/with/558812628), this removes the use of coercions from `RingHomClass` in the construction [RingEquiv.ofHomInv](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Algebra/Ring/Equiv.html#RingEquiv.ofHomInv). ESTIMATED CHANGES Modified Mathlib/Algebra/Category/Ring/Basic.lean Modified Mathlib/Algebra/Polynomial/Eval/Degree.lean Modified Mathlib/Algebra/Ring/Equiv.lean - def RingEquiv.ofHomInv' - def RingEquiv.ofHomInv + def RingEquiv.ofNonUnitalRingHom + theorem RingEquiv.symm_ofNonUnitalRingHom Modified Mathlib/Algebra/RingQuot.lean Modified Mathlib/RingTheory/FreeCommRing.lean Modified Mathlib/RingTheory/Ideal/Quotient/Operations.lean 2025-12-04 20:46:10 c699728 chore: golf using `simpa` (#32391) ESTIMATED CHANGES Modified Mathlib/Logic/Equiv/Fin/Rotate.lean Modified Mathlib/Order/SuccPred/Basic.lean Modified Mathlib/Probability/Kernel/Condexp.lean Modified Mathlib/RingTheory/MvPowerSeries/Order.lean Modified Mathlib/Topology/MetricSpace/BundledFun.lean 2025-12-04 20:16:18 e618b64 chore: golf using `simpa` (#32362) ESTIMATED CHANGES Modified Mathlib/Algebra/Polynomial/Derivation.lean Modified Mathlib/Algebra/Polynomial/RingDivision.lean Modified Mathlib/Combinatorics/SimpleGraph/Basic.lean Modified Mathlib/FieldTheory/IntermediateField/Adjoin/Defs.lean Modified Mathlib/Geometry/Euclidean/Projection.lean 2025-12-04 19:47:55 1ff540c feat: generalize the codomain in Martingale.Basic (#31439) Many lemmas in `Martingale.Basic` are stated for real-valued process. If the results are about martingales, we generalize to real Banach spaces. If the results are about sub/supermartingales, we generalize to real Banach spaces which are order-closed, ordered monoids and ordered modules. This covers for instance `n -> Real` when `Fintype n`. ESTIMATED CHANGES Modified Mathlib/Probability/Martingale/Basic.lean +/- theorem MeasureTheory.Submartingale.condExp_sub_nonneg +/- theorem MeasureTheory.Submartingale.setIntegral_le + theorem MeasureTheory.Submartingale.sum_smul_sub' + theorem MeasureTheory.Submartingale.sum_smul_sub +/- theorem MeasureTheory.Submartingale.zero_le_of_predictable +/- theorem MeasureTheory.Supermartingale.le_zero_of_predictable +/- theorem MeasureTheory.Supermartingale.setIntegral_le +/- theorem MeasureTheory.martingale_nat +/- theorem MeasureTheory.martingale_of_condExp_sub_eq_zero_nat +/- theorem MeasureTheory.martingale_of_setIntegral_eq_succ +/- theorem MeasureTheory.submartingale_iff_condExp_sub_nonneg +/- theorem MeasureTheory.submartingale_nat +/- theorem MeasureTheory.submartingale_of_condExp_sub_nonneg +/- theorem MeasureTheory.submartingale_of_condExp_sub_nonneg_nat +/- theorem MeasureTheory.supermartingale_nat +/- theorem MeasureTheory.supermartingale_of_condExp_sub_nonneg_nat Modified Mathlib/Probability/Process/Stopping.lean +/- theorem MeasureTheory.stoppedValue_piecewise_const' +/- theorem MeasureTheory.stoppedValue_piecewise_const 2025-12-04 18:52:41 f056ee3 feat(Tactic): easy tactic docs for `#find` and `elementwise` (#32352) This PR adds a few easy to write tactic docs: we adapt the `#find` command documentation into `#find` tactic documentation. We also add documentation to the `elementwise` tactic noting that it is unimplemented and users should look at the `elementwise_of%` elaborator instead. (Should we just delete the `elementwise` tactic altogether?) ESTIMATED CHANGES Modified Mathlib/Tactic/Find.lean 2025-12-04 18:52:38 2841766 feat(RingTheory/MvPolynomial/MonomialOrder): add S-polynomial (#32344) It is used in the statement and proof of Buchberger's criterion. Co-authored-By: Hao Shen <3118181069@qq.com> ESTIMATED CHANGES Modified Mathlib/RingTheory/MvPolynomial/MonomialOrder.lean + theorem MonomialOrder.coeff_sPolynomial_sup_eq_zero + theorem MonomialOrder.degree_sPolynomial + theorem MonomialOrder.degree_sPolynomial_le + theorem MonomialOrder.degree_sPolynomial_lt_sup_degree + theorem MonomialOrder.sPolynomial_antisymm + theorem MonomialOrder.sPolynomial_decomposition' + theorem MonomialOrder.sPolynomial_decomposition + theorem MonomialOrder.sPolynomial_def + theorem MonomialOrder.sPolynomial_left_zero + theorem MonomialOrder.sPolynomial_lt_of_degree_ne_zero_of_degree_eq + theorem MonomialOrder.sPolynomial_mul_monomial + theorem MonomialOrder.sPolynomial_right_zero + theorem MonomialOrder.sPolynomial_self 2025-12-04 17:49:40 fab0e3f fix(to_additive): use `findRelevantArg` for auxiliarly declarations (#32404) This PR uses the heuristic `findRelevantArg` for determining the `relevant_arg` in auxiliary declarations. Previously, it was always set to the default `1` in auxiliary declarations. Future work: `findRelevantArg` is somewhat limited in its ability to recognize the correct `relevant_arg`. It may be improved in the future (together with a linter that tells you when a `(relevant_arg := ...)` argument is already found by the heuristic) ESTIMATED CHANGES Modified Mathlib/Tactic/Translate/Core.lean +/- def Mathlib.Tactic.Translate.findRelevantArg Modified MathlibTest/toAdditive.lean + def Test.mulMatchAux + theorem Test.mulMatchThm 2025-12-04 16:59:21 64c4b46 fix(Tactic): replace all remaining `cutsat` by `lia` (#32431) ESTIMATED CHANGES Modified Mathlib/Algebra/Homology/HomotopyCategory/HomComplex.lean Modified Mathlib/Algebra/Homology/HomotopyCategory/HomComplexCohomology.lean Modified Mathlib/Algebra/Homology/HomotopyCategory/HomComplexSingle.lean Modified Mathlib/AlgebraicTopology/SimplicialSet/Skeleton.lean +/- theorem SSet.mem_skeleton 2025-12-04 16:59:19 82afd22 chore(Algebra/Order): deprecate `not_neg` in favour of `not_lt_zero` (#32397) Since almost every other instance of `¬_ < 0` is named using `_lt_zero`, we fix the week-old name of `not_neg` to `not_lt_zero`. [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Monoid/Canonical/Defs.lean +/- theorem not_lt_one Modified Mathlib/Analysis/BoxIntegral/Basic.lean Modified Mathlib/RingTheory/Spectrum/Prime/LTSeries.lean Modified Mathlib/SetTheory/Cardinal/Cofinality.lean Modified Mathlib/SetTheory/Game/Birthday.lean Modified Mathlib/SetTheory/Nimber/Basic.lean Modified Mathlib/SetTheory/Ordinal/Family.lean Modified Mathlib/SetTheory/Ordinal/NaturalOps.lean Modified Mathlib/SetTheory/Ordinal/Principal.lean Modified Mathlib/Topology/Category/Profinite/Nobeling/Induction.lean 2025-12-04 16:59:17 fcb0760 chore: replace some `@[measurability]` attributes by `@[fun_prop]` (#32187) Since #30511, the `@[measurability]` attribute applies `@[fun_prop]` when applied to statements about `Measurable`. This PR cleans up some of these attributes. There are two types of change in this PR, neither of which change the behavior of tactics: - Changing `@[measurability]` to `@[fun_prop]`: this has no effect. - Changing `@[fun_prop, measurability]` to `@[fun_prop]`: this just removes a duplicate `fun_prop` theorem. Note that this PR does not change the attributes of lemmas where it was unclear whether they should be tagged with `fun_prop`. ESTIMATED CHANGES Modified Mathlib/Analysis/Calculus/FDeriv/Measurable.lean Modified Mathlib/Analysis/LConvolution.lean Modified Mathlib/Analysis/Normed/Lp/MeasurableSpace.lean Modified Mathlib/Analysis/SpecialFunctions/Log/ENNRealLogExp.lean Modified Mathlib/InformationTheory/KullbackLeibler/KLFun.lean Modified Mathlib/MeasureTheory/Constructions/BorelSpace/Basic.lean Modified Mathlib/MeasureTheory/Constructions/BorelSpace/ContinuousLinearMap.lean Modified Mathlib/MeasureTheory/Constructions/BorelSpace/Metric.lean Modified Mathlib/MeasureTheory/Constructions/BorelSpace/Order.lean Modified Mathlib/MeasureTheory/Constructions/BorelSpace/Real.lean Modified Mathlib/MeasureTheory/Constructions/Cylinders.lean Modified Mathlib/MeasureTheory/Constructions/UnitInterval.lean Modified Mathlib/MeasureTheory/Function/Floor.lean Modified Mathlib/MeasureTheory/Function/LpSpace/Basic.lean Modified Mathlib/MeasureTheory/Function/SimpleFunc.lean Modified Mathlib/MeasureTheory/Function/SimpleFuncDenseLp.lean Modified Mathlib/MeasureTheory/Function/SpecialFunctions/Arctan.lean Modified Mathlib/MeasureTheory/Function/SpecialFunctions/Basic.lean Modified Mathlib/MeasureTheory/Function/SpecialFunctions/Inner.lean Modified Mathlib/MeasureTheory/Function/SpecialFunctions/RCLike.lean Modified Mathlib/MeasureTheory/Function/SpecialFunctions/Sinc.lean Modified Mathlib/MeasureTheory/Function/StronglyMeasurable/AEStronglyMeasurable.lean Modified Mathlib/MeasureTheory/Function/StronglyMeasurable/Basic.lean Modified Mathlib/MeasureTheory/Function/StronglyMeasurable/Lemmas.lean Modified Mathlib/MeasureTheory/Group/Arithmetic.lean Modified Mathlib/MeasureTheory/Integral/CircleIntegral.lean Modified Mathlib/MeasureTheory/Integral/IntervalIntegral/Periodic.lean Modified Mathlib/MeasureTheory/MeasurableSpace/Basic.lean Modified Mathlib/MeasureTheory/MeasurableSpace/Constructions.lean Modified Mathlib/MeasureTheory/MeasurableSpace/Defs.lean +/- theorem Measurable.of_discrete Modified Mathlib/MeasureTheory/MeasurableSpace/Embedding.lean Modified Mathlib/MeasureTheory/MeasurableSpace/NCard.lean Modified Mathlib/MeasureTheory/MeasurableSpace/PreorderRestrict.lean Modified Mathlib/MeasureTheory/Measure/AEMeasurable.lean Modified Mathlib/MeasureTheory/Measure/CharacteristicFunction.lean Modified Mathlib/MeasureTheory/Measure/Decomposition/Lebesgue.lean Modified Mathlib/MeasureTheory/Measure/LogLikelihoodRatio.lean Modified Mathlib/MeasureTheory/Measure/MeasureSpaceDef.lean Modified Mathlib/MeasureTheory/Order/Group/Lattice.lean Modified Mathlib/MeasureTheory/Order/Lattice.lean Modified Mathlib/MeasureTheory/VectorMeasure/Decomposition/Lebesgue.lean Modified Mathlib/Probability/Density.lean Modified Mathlib/Probability/Distributions/Beta.lean Modified Mathlib/Probability/Distributions/Exponential.lean Modified Mathlib/Probability/Distributions/Gamma.lean Modified Mathlib/Probability/Distributions/Gaussian/Real.lean Modified Mathlib/Probability/Distributions/Geometric.lean Modified Mathlib/Probability/Distributions/Pareto.lean Modified Mathlib/Probability/Distributions/Poisson.lean Modified Mathlib/Probability/Kernel/IonescuTulcea/Maps.lean Modified Mathlib/Probability/Kernel/IonescuTulcea/PartialTraj.lean 2025-12-04 15:25:37 478318e feat(Algebra/MvPolynomial/Equiv): `degreeOf_eq_natDegree` (#25926) Adds `MvPolynomial.degreeOf_eq_natDegree`, which states that the degree of a particular variable in a multivariate polynomial is equal to the degree of the single-variable polynomial obtained by treating the multivariable polynomial as a single variable polynomial over multivariable polynomials in the remaining variables. Also adds/refactors some relevant API around `optionEquivLeft` leading to the proof for this theorem, mainly by making analogous lemmas to those for `finSuccEquiv`. This PR continues the work from #12664. ESTIMATED CHANGES Modified Mathlib/Algebra/MvPolynomial/Equiv.lean + theorem MvPolynomial.degreeOf_eq_natDegree + theorem MvPolynomial.degree_optionEquivLeft +/- theorem MvPolynomial.mem_support_coeff_finSuccEquiv + theorem MvPolynomial.mem_support_coeff_optionEquivLeft +/- theorem MvPolynomial.natDegree_optionEquivLeft + theorem MvPolynomial.nonempty_support_finSuccEquiv + theorem MvPolynomial.nonempty_support_optionEquivLeft - theorem MvPolynomial.support_coeff_finSuccEquiv - theorem MvPolynomial.support_finSuccEquiv_nonempty + theorem MvPolynomial.support_optionEquivLeft Modified Mathlib/Algebra/MvPolynomial/SchwartzZippel.lean 2025-12-04 15:10:27 ff45808 chore: golf using `simpa` (#32324) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Idempotents/Biproducts.lean Modified Mathlib/CategoryTheory/Monoidal/Mod_.lean Modified Mathlib/Combinatorics/SimpleGraph/Girth.lean Modified Mathlib/GroupTheory/GroupAction/Jordan.lean Modified Mathlib/GroupTheory/Perm/Cycle/PossibleTypes.lean 2025-12-04 14:55:02 467152b feat(Algebra/Homology): cohomology of `HomComplex` and morphisms in the homotopy category (#32093) We show that `HomComplex.CohomologyClass K L n` identifies to the type of morphisms between `K` and `L⟦n⟧` in the homotopy category. ESTIMATED CHANGES Modified Mathlib/Algebra/Homology/HomotopyCategory.lean + theorem HomotopyCategory.quotient_map_eq_zero_iff Modified Mathlib/Algebra/Homology/HomotopyCategory/HomComplexCohomology.lean + def CochainComplex.HomComplex.CohomologyClass.toHom + theorem CochainComplex.HomComplex.CohomologyClass.toHom_bijective + theorem CochainComplex.HomComplex.CohomologyClass.toHom_mk + theorem CochainComplex.HomComplex.CohomologyClass.toHom_mk_eq_zero_iff Modified Mathlib/Algebra/Homology/HomotopyCategory/HomComplexShift.lean + def CochainComplex.HomComplex.Cocycle.equivHomShift' + def CochainComplex.HomComplex.Cocycle.equivHomShift + def CochainComplex.HomComplex.Cocycle.leftShiftAddEquiv + def CochainComplex.HomComplex.Cocycle.rightShiftAddEquiv 2025-12-04 13:55:55 03cbefa feat(Geometry/Euclidean/Sphere/Power): power equals squared tangent length and characterization of tangency (#31496) Adds two lemmas in `Geometry.Euclidean.Sphere.Power`: * `power_eq_dist_sq_of_IsTangentAt` — the power of a point equals the square of its tangent length. * `IsTangentAt_of_dist_sq_eq_power` — characterization of tangency via the power of a point. ESTIMATED CHANGES Modified Mathlib/Geometry/Euclidean/Sphere/Power.lean + theorem EuclideanGeometry.Sphere.IsTangentAt.power_eq_dist_sq + theorem EuclideanGeometry.Sphere.isTangentAt_iff_dist_sq_eq_power 2025-12-04 13:03:20 f92afd7 feat(Algebra/Homology): HasExt instance for ModuleCat (#32312) `HasExt` instance for `ModuleCat.{v} R` assuming `Small.{v} R`, which is frequently used. As currently no appropriate file import `ModuleCat` and `Ext`, a new file was created. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Category/ModuleCat/Ext/HasExt.lean 2025-12-04 12:03:53 e11cecf fix(Tactic/FunProp): don't revert state after running discharger (#32302) The old behaviour is problematic when using e.g. `grind`, which likes to store its proofs in constants. It was originally copied from code used for `simp`, and seems not to be necessary in `fun_prop`, so we remove it. See [discussion on Zulip](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/.60fun_prop.60.20bug.20with.20.60grind.60.20as.20discharger/). ESTIMATED CHANGES Modified Mathlib/Tactic/FunProp/Decl.lean Modified MathlibTest/fun_prop_dev.lean + theorem div_Con' 2025-12-04 11:18:33 c779db2 feat(LinearAlgebra/Multilinear): basis for multilinear maps (#31178) Adds a basis for MulilinearMap given bases for the domain and codomain. This PR builds upon work started in #25141 toward #11155. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/LinearAlgebra/Multilinear/Basis.lean + theorem Basis.multilinearMap_apply + theorem Basis.multilinearMap_apply_apply Modified Mathlib/LinearAlgebra/Multilinear/DFinsupp.lean + def MultilinearMap.freeDFinsuppEquiv + theorem MultilinearMap.freeDFinsuppEquiv_apply + theorem MultilinearMap.freeDFinsuppEquiv_def + theorem MultilinearMap.freeDFinsuppEquiv_single + def MultilinearMap.fromDFinsuppEquiv + theorem MultilinearMap.fromDFinsuppEquiv_apply + theorem MultilinearMap.fromDFinsuppEquiv_single + theorem MultilinearMap.fromDFinsuppEquiv_symm_apply Added Mathlib/LinearAlgebra/Multilinear/Finsupp.lean + theorem MultilinearMap.freeFinsuppEquiv_apply + theorem MultilinearMap.freeFinsuppEquiv_def + theorem MultilinearMap.freeFinsuppEquiv_single 2025-12-04 10:27:14 f8f8ff4 feat: weak approximation theorems for infinite places of a number field (#27971) Under the diagonal embedding into infinite places, a number field $K$ is dense inside both the product $\prod_{v \mid \infty} (K, v)$, where $(K, v)$ denotes $K$ equipped with $v$'s topology, and the infinite adele ring $\prod_v K_v$. This PR continues the work from #22153. Original PR: https://github.com/leanprover-community/mathlib4/pull/22153 ESTIMATED CHANGES Modified Mathlib/Analysis/Normed/Field/WithAbs.lean + theorem WithAbs.tendsto_one_div_one_add_pow_nhds_one Modified Mathlib/NumberTheory/NumberField/AdeleRing.lean + theorem NumberField.InfiniteAdeleRing.denseRange_algebraMap Modified Mathlib/NumberTheory/NumberField/InfinitePlace/Basic.lean + theorem NumberField.InfinitePlace.denseRange_algebraMap_pi + theorem NumberField.InfinitePlace.eq_iff_isEquiv + theorem NumberField.InfinitePlace.eq_one_of_rpow_eq + theorem NumberField.InfinitePlace.isNontrivial 2025-12-04 09:22:49 d257f21 refactor(Algebra/Polynomial/Splits): continue deprecation (#32409) This PR continues the deprecation in `Splits.lean` as we move over to the new API in `Factors.lean`. ESTIMATED CHANGES Modified Mathlib/Algebra/Polynomial/Factors.lean + theorem Polynomial.Splits.dvd_iff_roots_le_roots + theorem Polynomial.Splits.dvd_of_roots_le_roots + theorem Polynomial.Splits.eq_prod_roots_of_monic + theorem Polynomial.Splits.image_rootSet + theorem Polynomial.Splits.map_roots Modified Mathlib/Algebra/Polynomial/Splits.lean - theorem Polynomial.Splits.dvd_iff_roots_le_roots - theorem Polynomial.Splits.dvd_of_roots_le_roots - theorem Polynomial.eq_prod_roots_of_monic_of_splits_id - theorem Polynomial.image_rootSet - theorem Polynomial.roots_map - theorem Polynomial.splits_of_exists_multiset Modified Mathlib/FieldTheory/AbelRuffini.lean Modified Mathlib/FieldTheory/Finite/Basic.lean Modified Mathlib/FieldTheory/Galois/Basic.lean Modified Mathlib/FieldTheory/IsAlgClosed/Spectrum.lean Modified Mathlib/FieldTheory/KummerExtension.lean Modified Mathlib/FieldTheory/Normal/Basic.lean Modified Mathlib/FieldTheory/PolynomialGaloisGroup.lean Modified Mathlib/FieldTheory/SeparableDegree.lean Modified Mathlib/FieldTheory/SplittingField/IsSplittingField.lean Modified Mathlib/RingTheory/Adjoin/Field.lean Modified Mathlib/RingTheory/Polynomial/Resultant/Basic.lean 2025-12-04 09:22:47 8101f86 feat(Tactic): add `lia` as an alias for `cutsat` and use it throughout (#32376) ## Summary - Adds `lia` as an alias for the `cutsat` tactic in preparation for the upcoming rename in Lean core - Replaces all uses of `cutsat` with `lia` throughout Mathlib (405 files, ~1450 changes) - Updates FlexibleLinter to recognize `lia` as a flexible tactic This unblocks nightly-testing by allowing Mathlib to work with both the current `cutsat` name and the future `lia` name. Related discussion: https://leanprover.zulipchat.com/#narrow/channel/428973-nightly-testing/topic/Mathlib.20status.20updates/near/561369768 ## Test plan - [x] Verified core tactic files build (`Mathlib.Tactic.Lia`, `Mathlib.Tactic.Common`) - [x] Verified linter tests pass (`MathlibTest.FlexibleLinter`, `MathlibTest.TacticAnalysis`) - [ ] CI will run full build 🤖 Prepared with Claude Code ESTIMATED CHANGES Modified Archive/Imo/Imo1994Q1.lean Modified Counterexamples/EulerSumOfPowers.lean Modified Mathlib/Algebra/AddConstMap/Basic.lean Modified Mathlib/Algebra/ContinuedFractions/Computation/TerminatesIffRat.lean Modified Mathlib/Algebra/GCDMonoid/Nat.lean Modified Mathlib/Algebra/Group/Defs.lean Modified Mathlib/Algebra/Group/Fin/Basic.lean Modified Mathlib/Algebra/Group/ForwardDiff.lean Modified Mathlib/Algebra/Group/Int/Defs.lean Modified Mathlib/Algebra/Group/Int/Even.lean Modified Mathlib/Algebra/Group/Int/Units.lean Modified Mathlib/Algebra/Group/Nat/Even.lean +/- theorem Nat.succ_mod_two_eq_one_iff +/- theorem Nat.succ_mod_two_eq_zero_iff +/- theorem Nat.two_not_dvd_two_mul_add_one +/- theorem Nat.two_not_dvd_two_mul_sub_one Modified Mathlib/Algebra/Group/Nat/Range.lean Modified Mathlib/Algebra/Group/Torsion.lean +/- theorem sq_eq_one Modified Mathlib/Algebra/GroupWithZero/Basic.lean Modified Mathlib/Algebra/GroupWithZero/Units/Basic.lean Modified Mathlib/Algebra/Homology/DerivedCategory/Ext/Basic.lean Modified Mathlib/Algebra/Homology/DerivedCategory/Ext/EnoughInjectives.lean Modified Mathlib/Algebra/Homology/DerivedCategory/Ext/EnoughProjectives.lean Modified Mathlib/Algebra/Homology/DerivedCategory/Ext/ExactSequences.lean Modified Mathlib/Algebra/Homology/DerivedCategory/Ext/ExtClass.lean Modified Mathlib/Algebra/Homology/DerivedCategory/Fractions.lean Modified Mathlib/Algebra/Homology/Embedding/Basic.lean Modified Mathlib/Algebra/Homology/Embedding/Boundary.lean Modified Mathlib/Algebra/Homology/Embedding/CochainComplex.lean +/- theorem CochainComplex.exactAt_of_isGE +/- theorem CochainComplex.exactAt_of_isLE +/- theorem CochainComplex.isZero_of_isGE +/- theorem CochainComplex.isZero_of_isLE +/- theorem CochainComplex.isZero_of_isStrictlyGE +/- theorem CochainComplex.isZero_of_isStrictlyLE Modified Mathlib/Algebra/Homology/Embedding/Connect.lean Modified Mathlib/Algebra/Homology/ExactSequence.lean Modified Mathlib/Algebra/Homology/Factorizations/CM5b.lean Modified Mathlib/Algebra/Homology/HomotopyCategory/DegreewiseSplit.lean Modified Mathlib/Algebra/Homology/HomotopyCategory/HomComplex.lean Modified Mathlib/Algebra/Homology/HomotopyCategory/HomComplexCohomology.lean Modified Mathlib/Algebra/Homology/HomotopyCategory/HomComplexInduction.lean Modified Mathlib/Algebra/Homology/HomotopyCategory/HomComplexShift.lean Modified Mathlib/Algebra/Homology/HomotopyCategory/KInjective.lean Modified Mathlib/Algebra/Homology/HomotopyCategory/MappingCone.lean Modified Mathlib/Algebra/Homology/HomotopyCategory/Pretriangulated.lean Modified Mathlib/Algebra/Homology/HomotopyCategory/Shift.lean Modified Mathlib/Algebra/Homology/HomotopyCategory/ShiftSequence.lean Modified Mathlib/Algebra/Homology/HomotopyCategory/ShortExact.lean Modified Mathlib/Algebra/Homology/HomotopyCategory/Triangulated.lean Modified Mathlib/Algebra/Homology/TotalComplexShift.lean Modified Mathlib/Algebra/Lie/CartanExists.lean Modified Mathlib/Algebra/Lie/EngelSubalgebra.lean Modified Mathlib/Algebra/Lie/LieTheorem.lean Modified Mathlib/Algebra/Lie/Nilpotent.lean Modified Mathlib/Algebra/Lie/Weights/Killing.lean Modified Mathlib/Algebra/Lie/Weights/RootSystem.lean Modified Mathlib/Algebra/ModEq.lean Modified Mathlib/Algebra/Module/LinearMap/End.lean Modified Mathlib/Algebra/MvPolynomial/Degrees.lean Modified Mathlib/Algebra/Order/Floor/Extended.lean Modified Mathlib/Algebra/Order/Group/Basic.lean Modified Mathlib/Algebra/Order/Group/DenselyOrdered.lean Modified Mathlib/Algebra/Order/Group/Int/Sum.lean Modified Mathlib/Algebra/Order/Group/Unbundled/Int.lean Modified Mathlib/Algebra/Order/GroupWithZero/Unbundled/Basic.lean Modified Mathlib/Algebra/Order/Monoid/Unbundled/Pow.lean Modified Mathlib/Algebra/Order/Ring/GeomSum.lean Modified Mathlib/Algebra/Order/Ring/Int.lean Modified Mathlib/Algebra/Polynomial/AlgebraMap.lean Modified Mathlib/Algebra/Polynomial/CoeffList.lean Modified Mathlib/Algebra/Polynomial/Degree/CardPowDegree.lean Modified Mathlib/Algebra/Polynomial/Degree/IsMonicOfDegree.lean Modified Mathlib/Algebra/Polynomial/Derivative.lean Modified Mathlib/Algebra/Polynomial/FieldDivision.lean Modified Mathlib/Algebra/Polynomial/OfFn.lean Modified Mathlib/Algebra/Ring/Divisibility/Lemmas.lean Modified Mathlib/Algebra/Ring/GeomSum.lean Modified Mathlib/Algebra/Ring/Parity.lean +/- theorem Nat.mod_two_add_succ_mod_two +/- theorem Nat.succ_mod_two_add_mod_two Modified Mathlib/Algebra/Vertex/VertexOperator.lean Modified Mathlib/AlgebraicGeometry/EllipticCurve/DivisionPolynomial/Degree.lean Modified Mathlib/AlgebraicGeometry/ProjectiveSpectrum/Scheme.lean Modified Mathlib/AlgebraicGeometry/StructureSheaf.lean Modified Mathlib/AlgebraicTopology/AlternatingFaceMapComplex.lean Modified Mathlib/AlgebraicTopology/DoldKan/Decomposition.lean Modified Mathlib/AlgebraicTopology/DoldKan/Degeneracies.lean Modified Mathlib/AlgebraicTopology/DoldKan/Faces.lean Modified Mathlib/AlgebraicTopology/DoldKan/FunctorGamma.lean Modified Mathlib/AlgebraicTopology/DoldKan/GammaCompN.lean Modified Mathlib/AlgebraicTopology/DoldKan/NCompGamma.lean Modified Mathlib/AlgebraicTopology/DoldKan/Projections.lean Modified Mathlib/AlgebraicTopology/DoldKan/SplitSimplicialObject.lean Modified Mathlib/AlgebraicTopology/Quasicategory/StrictSegal.lean Modified Mathlib/AlgebraicTopology/SimplexCategory/Basic.lean Modified Mathlib/AlgebraicTopology/SimplexCategory/GeneratorsRelations/Basic.lean Modified Mathlib/AlgebraicTopology/SimplexCategory/MorphismProperty.lean Modified Mathlib/AlgebraicTopology/SimplicialSet/Coskeletal.lean Modified Mathlib/AlgebraicTopology/SimplicialSet/Degenerate.lean Modified Mathlib/AlgebraicTopology/SimplicialSet/Horn.lean Modified Mathlib/AlgebraicTopology/SimplicialSet/Path.lean Modified Mathlib/AlgebraicTopology/SimplicialSet/StrictSegal.lean Modified Mathlib/Analysis/Analytic/Composition.lean Modified Mathlib/Analysis/Analytic/Order.lean Modified Mathlib/Analysis/Asymptotics/SpecificAsymptotics.lean Modified Mathlib/Analysis/Calculus/ContDiff/FTaylorSeries.lean Modified Mathlib/Analysis/Complex/Exponential.lean Modified Mathlib/Analysis/Convex/Radon.lean Modified Mathlib/Analysis/Fourier/FourierTransformDeriv.lean Modified Mathlib/Analysis/InnerProductSpace/Projection/FiniteDimensional.lean Modified Mathlib/Analysis/Normed/Affine/Simplex.lean Modified Mathlib/Analysis/Normed/Algebra/Spectrum.lean Modified Mathlib/Analysis/Normed/Field/Lemmas.lean Modified Mathlib/Analysis/Normed/Unbundled/AlgebraNorm.lean Modified Mathlib/Analysis/Polynomial/Basic.lean Modified Mathlib/Analysis/Polynomial/Factorization.lean Modified Mathlib/Analysis/Real/OfDigits.lean Modified Mathlib/Analysis/Real/Pi/Irrational.lean Modified Mathlib/Analysis/SpecialFunctions/Complex/Arctan.lean Modified Mathlib/Analysis/SpecialFunctions/ContinuousFunctionalCalculus/Rpow/IntegralRepresentation.lean Modified Mathlib/Analysis/SpecialFunctions/Gamma/Basic.lean Modified Mathlib/Analysis/SpecialFunctions/Gamma/BohrMollerup.lean Modified Mathlib/Analysis/SpecialFunctions/Log/Base.lean Modified Mathlib/Analysis/SpecialFunctions/OrdinaryHypergeometric.lean Modified Mathlib/Analysis/SpecialFunctions/Stirling.lean Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Angle.lean Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Arctan.lean Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Basic.lean Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Cotangent.lean Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/EulerSineProd.lean Modified Mathlib/Analysis/SpecificLimits/Basic.lean Modified Mathlib/Analysis/SpecificLimits/FloorPow.lean Modified Mathlib/Analysis/SpecificLimits/Normed.lean Modified Mathlib/Analysis/SumIntegralComparisons.lean Modified Mathlib/CategoryTheory/Abelian/Injective/Dimension.lean Modified Mathlib/CategoryTheory/Abelian/Injective/Extend.lean Modified Mathlib/CategoryTheory/Abelian/Projective/Dimension.lean Modified Mathlib/CategoryTheory/ComposableArrows/Basic.lean Modified Mathlib/CategoryTheory/ComposableArrows/One.lean Modified Mathlib/CategoryTheory/Functor/OfSequence.lean +/- theorem CategoryTheory.Functor.OfSequence.map_id +/- theorem CategoryTheory.Functor.OfSequence.map_le_succ Modified Mathlib/CategoryTheory/GradedObject/Monoidal.lean Modified Mathlib/CategoryTheory/Limits/Shapes/SequentialProduct.lean Modified Mathlib/CategoryTheory/Preadditive/Schur.lean Modified Mathlib/CategoryTheory/Shift/ShiftedHomOpposite.lean Modified Mathlib/CategoryTheory/Triangulated/HomologicalFunctor.lean Modified Mathlib/CategoryTheory/Triangulated/Opposite/Basic.lean Modified Mathlib/CategoryTheory/Triangulated/Opposite/Functor.lean Modified Mathlib/CategoryTheory/Triangulated/TStructure/Basic.lean +/- theorem CategoryTheory.Triangulated.TStructure.isGE_of_GE +/- theorem CategoryTheory.Triangulated.TStructure.isGE_of_shift +/- theorem CategoryTheory.Triangulated.TStructure.isGE_shift +/- theorem CategoryTheory.Triangulated.TStructure.isGE_shift_iff +/- theorem CategoryTheory.Triangulated.TStructure.isLE_of_LE +/- theorem CategoryTheory.Triangulated.TStructure.isLE_of_shift +/- theorem CategoryTheory.Triangulated.TStructure.isLE_shift +/- theorem CategoryTheory.Triangulated.TStructure.isLE_shift_iff +/- theorem CategoryTheory.Triangulated.TStructure.isZero +/- theorem CategoryTheory.Triangulated.TStructure.zero Modified Mathlib/CategoryTheory/Triangulated/TStructure/TruncLTGE.lean Modified Mathlib/CategoryTheory/Triangulated/Yoneda.lean Modified Mathlib/Combinatorics/Additive/AP/Three/Defs.lean Modified Mathlib/Combinatorics/Additive/ApproximateSubgroup.lean Modified Mathlib/Combinatorics/Additive/Convolution.lean Modified Mathlib/Combinatorics/Additive/Corner/Roth.lean Modified Mathlib/Combinatorics/Additive/ErdosGinzburgZiv.lean Modified Mathlib/Combinatorics/Additive/SmallTripling.lean Modified Mathlib/Combinatorics/Colex.lean Modified Mathlib/Combinatorics/Enumerative/Catalan.lean Modified Mathlib/Combinatorics/Enumerative/Composition.lean Modified Mathlib/Combinatorics/Enumerative/DyckWord.lean Modified Mathlib/Combinatorics/Extremal/RuzsaSzemeredi.lean Modified Mathlib/Combinatorics/Hindman.lean Modified Mathlib/Combinatorics/Quiver/Path.lean Modified Mathlib/Combinatorics/SetFamily/KruskalKatona.lean Modified Mathlib/Combinatorics/SetFamily/Shadow.lean Modified Mathlib/Combinatorics/SimpleGraph/Acyclic.lean Modified Mathlib/Combinatorics/SimpleGraph/Bipartite.lean Modified Mathlib/Combinatorics/SimpleGraph/ConcreteColorings.lean Modified Mathlib/Combinatorics/SimpleGraph/Connectivity/Represents.lean Modified Mathlib/Combinatorics/SimpleGraph/Connectivity/Subgraph.lean Modified Mathlib/Combinatorics/SimpleGraph/Connectivity/WalkDecomp.lean Modified Mathlib/Combinatorics/SimpleGraph/DegreeSum.lean Modified Mathlib/Combinatorics/SimpleGraph/Extremal/Turan.lean Modified Mathlib/Combinatorics/SimpleGraph/FiveWheelLike.lean Modified Mathlib/Combinatorics/SimpleGraph/Girth.lean Modified Mathlib/Combinatorics/SimpleGraph/Matching.lean Modified Mathlib/Combinatorics/SimpleGraph/Metric.lean Modified Mathlib/Combinatorics/SimpleGraph/Paths.lean Modified Mathlib/Combinatorics/SimpleGraph/Tutte.lean Modified Mathlib/Combinatorics/SimpleGraph/Walks/Operations.lean Modified Mathlib/Combinatorics/SimpleGraph/Walks/Subwalks.lean Modified Mathlib/Computability/Ackermann.lean Modified Mathlib/Computability/AkraBazzi/GrowsPolynomially.lean Modified Mathlib/Computability/AkraBazzi/SumTransform.lean Modified Mathlib/Computability/PartrecCode.lean Modified Mathlib/Data/Array/Extract.lean Modified Mathlib/Data/Bool/Count.lean Modified Mathlib/Data/ENNReal/Holder.lean Modified Mathlib/Data/FP/Basic.lean Modified Mathlib/Data/Fin/Basic.lean Modified Mathlib/Data/Fin/Embedding.lean Modified Mathlib/Data/Fin/SuccPred.lean Modified Mathlib/Data/Fin/Tuple/Basic.lean Modified Mathlib/Data/Fin/VecNotation.lean +/- def Matrix.vecAlt0 Modified Mathlib/Data/Finset/Card.lean Modified Mathlib/Data/Finset/Max.lean Modified Mathlib/Data/Finset/Prod.lean Modified Mathlib/Data/Int/Basic.lean Modified Mathlib/Data/Int/CardIntervalMod.lean Modified Mathlib/Data/Int/DivMod.lean Modified Mathlib/Data/Int/Init.lean +/- theorem Int.lt_succ_self +/- theorem Int.pred_self_lt +/- theorem Int.toNat_lt_of_ne_zero Modified Mathlib/Data/Int/Lemmas.lean Modified Mathlib/Data/Int/ModEq.lean Modified Mathlib/Data/Int/NatAbs.lean Modified Mathlib/Data/Int/Order/Basic.lean Modified Mathlib/Data/List/Basic.lean Modified Mathlib/Data/List/Chain.lean Modified Mathlib/Data/List/Cycle.lean Modified Mathlib/Data/List/Dedup.lean Modified Mathlib/Data/List/InsertIdx.lean Modified Mathlib/Data/List/Intervals.lean Modified Mathlib/Data/List/NodupEquivFin.lean Modified Mathlib/Data/List/OfFn.lean Modified Mathlib/Data/List/Range.lean Modified Mathlib/Data/List/Rotate.lean Modified Mathlib/Data/List/Shortlex.lean Modified Mathlib/Data/List/SplitLengths.lean Modified Mathlib/Data/List/TakeWhile.lean Modified Mathlib/Data/List/ToFinsupp.lean Modified Mathlib/Data/List/Triplewise.lean Modified Mathlib/Data/Multiset/Basic.lean Modified Mathlib/Data/Multiset/Fintype.lean +/- theorem Multiset.coe_mem Modified Mathlib/Data/Nat/Bits.lean Modified Mathlib/Data/Nat/Bitwise.lean Modified Mathlib/Data/Nat/Cast/NeZero.lean +/- theorem NeZero.one_le Modified Mathlib/Data/Nat/Cast/Order/Basic.lean +/- theorem Nat.cast_nonpos Modified Mathlib/Data/Nat/Choose/Basic.lean Modified Mathlib/Data/Nat/Choose/Factorization.lean Modified Mathlib/Data/Nat/Choose/Sum.lean Modified Mathlib/Data/Nat/Digits/Lemmas.lean Modified Mathlib/Data/Nat/Dist.lean +/- theorem Nat.dist_eq_sub_of_le +/- theorem Nat.dist_eq_zero +/- theorem Nat.dist_pos_of_ne +/- theorem Nat.dist_succ_succ +/- theorem Nat.dist_tri_left' +/- theorem Nat.dist_tri_left +/- theorem Nat.dist_tri_right' +/- theorem Nat.dist_tri_right +/- theorem Nat.dist_zero_left +/- theorem Nat.dist_zero_right +/- theorem Nat.eq_of_dist_eq_zero Modified Mathlib/Data/Nat/Factorial/Basic.lean Modified Mathlib/Data/Nat/Factorial/NatCast.lean Modified Mathlib/Data/Nat/Factorization/Basic.lean Modified Mathlib/Data/Nat/Factorization/Defs.lean Modified Mathlib/Data/Nat/Find.lean Modified Mathlib/Data/Nat/Init.lean +/- theorem Nat.AtLeastTwo.neZero_sub_one Modified Mathlib/Data/Nat/Log.lean Modified Mathlib/Data/Nat/ModEq.lean Modified Mathlib/Data/Nat/Pairing.lean Modified Mathlib/Data/Nat/PartENat.lean Modified Mathlib/Data/Nat/Prime/Basic.lean Modified Mathlib/Data/Nat/Prime/Defs.lean Modified Mathlib/Data/Nat/Size.lean Modified Mathlib/Data/Nat/Squarefree.lean Modified Mathlib/Data/Nat/Totient.lean Modified Mathlib/Data/Num/Lemmas.lean Modified Mathlib/Data/Ordmap/Invariants.lean Modified Mathlib/Data/Ordmap/Ordset.lean +/- theorem Ordnode.Valid'.node4L_lemma₂ Modified Mathlib/Data/Rat/Lemmas.lean Modified Mathlib/Data/Real/Archimedean.lean Modified Mathlib/Data/Seq/Basic.lean Modified Mathlib/Data/Set/Card.lean Modified Mathlib/Data/Set/Card/Arithmetic.lean Modified Mathlib/Data/Set/Enumerate.lean Modified Mathlib/Data/Set/Insert.lean Modified Mathlib/Data/Vector/Basic.lean +/- theorem List.Vector.get_tail Modified Mathlib/Data/ZMod/Basic.lean Modified Mathlib/Data/ZMod/Defs.lean Modified Mathlib/Dynamics/PeriodicPts/Defs.lean Modified Mathlib/Dynamics/PeriodicPts/Lemmas.lean Modified Mathlib/FieldTheory/JacobsonNoether.lean Modified Mathlib/FieldTheory/Minpoly/MinpolyDiv.lean Modified Mathlib/Geometry/Euclidean/Circumcenter.lean Modified Mathlib/Geometry/Euclidean/Incenter.lean Modified Mathlib/Geometry/Euclidean/MongePoint.lean Modified Mathlib/Geometry/Euclidean/Triangle.lean Modified Mathlib/Geometry/Group/Growth/LinearLowerBound.lean Modified Mathlib/GroupTheory/ArchimedeanDensely.lean Modified Mathlib/GroupTheory/CommutingProbability.lean Modified Mathlib/GroupTheory/Coxeter/Basic.lean Modified Mathlib/GroupTheory/Coxeter/Inversion.lean Modified Mathlib/GroupTheory/Coxeter/Length.lean Modified Mathlib/GroupTheory/Exponent.lean Modified Mathlib/GroupTheory/FreeGroup/Basic.lean Modified Mathlib/GroupTheory/Index.lean Modified Mathlib/GroupTheory/Perm/Cycle/Concrete.lean Modified Mathlib/GroupTheory/Perm/Fin.lean Modified Mathlib/GroupTheory/SpecificGroups/Alternating/Centralizer.lean Modified Mathlib/GroupTheory/SpecificGroups/Cyclic.lean Modified Mathlib/LinearAlgebra/BilinearForm/Orthogonal.lean Modified Mathlib/LinearAlgebra/Eigenspace/Basic.lean Modified Mathlib/LinearAlgebra/FiniteDimensional/Lemmas.lean Modified Mathlib/LinearAlgebra/Matrix/Charpoly/Coeff.lean Modified Mathlib/LinearAlgebra/Matrix/GeneralLinearGroup/FinTwo.lean Modified Mathlib/LinearAlgebra/Projectivization/Cardinality.lean Modified Mathlib/LinearAlgebra/RootSystem/Base.lean Modified Mathlib/LinearAlgebra/RootSystem/Chain.lean Modified Mathlib/LinearAlgebra/RootSystem/Finite/G2.lean Modified Mathlib/LinearAlgebra/RootSystem/Finite/Lemmas.lean Modified Mathlib/LinearAlgebra/RootSystem/GeckConstruction/Lemmas.lean Modified Mathlib/LinearAlgebra/RootSystem/GeckConstruction/Semisimple.lean Modified Mathlib/LinearAlgebra/RootSystem/Reduced.lean Modified Mathlib/Logic/Denumerable.lean Modified Mathlib/Logic/Equiv/Fin/Basic.lean Modified Mathlib/Logic/Equiv/Fin/Rotate.lean +/- theorem finRotate_last' Modified Mathlib/Logic/Godel/GodelBetaFunction.lean Modified Mathlib/MeasureTheory/Integral/RieszMarkovKakutani/Real.lean Modified Mathlib/MeasureTheory/Measure/LevyProkhorovMetric.lean Modified Mathlib/MeasureTheory/VectorMeasure/Decomposition/Hahn.lean Modified Mathlib/ModelTheory/Semantics.lean Modified Mathlib/NumberTheory/AbelSummation.lean Modified Mathlib/NumberTheory/ArithmeticFunction/Misc.lean Modified Mathlib/NumberTheory/ArithmeticFunction/Moebius.lean Modified Mathlib/NumberTheory/ClassNumber/Finite.lean Modified Mathlib/NumberTheory/Cyclotomic/Discriminant.lean Modified Mathlib/NumberTheory/Cyclotomic/PrimitiveRoots.lean Modified Mathlib/NumberTheory/Dioph.lean Modified Mathlib/NumberTheory/DiophantineApproximation/Basic.lean Modified Mathlib/NumberTheory/Divisors.lean Modified Mathlib/NumberTheory/FLT/Polynomial.lean Modified Mathlib/NumberTheory/FLT/Three.lean Modified Mathlib/NumberTheory/FactorisationProperties.lean Modified Mathlib/NumberTheory/Fermat.lean +/- theorem Nat.fermatNumber_ne_one Modified Mathlib/NumberTheory/FermatPsp.lean Modified Mathlib/NumberTheory/FrobeniusNumber.lean Modified Mathlib/NumberTheory/Harmonic/ZetaAsymp.lean Modified Mathlib/NumberTheory/JacobiSum/Basic.lean Modified Mathlib/NumberTheory/LSeries/HurwitzZetaValues.lean Modified Mathlib/NumberTheory/LSeries/Nonvanishing.lean Modified Mathlib/NumberTheory/LegendreSymbol/QuadraticChar/Basic.lean Modified Mathlib/NumberTheory/LegendreSymbol/QuadraticChar/GaussSum.lean Modified Mathlib/NumberTheory/LegendreSymbol/QuadraticReciprocity.lean Modified Mathlib/NumberTheory/LegendreSymbol/ZModChar.lean Modified Mathlib/NumberTheory/LucasLehmer.lean Modified Mathlib/NumberTheory/ModularForms/EisensteinSeries/Summable.lean Modified Mathlib/NumberTheory/Multiplicity.lean Modified Mathlib/NumberTheory/NumberField/Cyclotomic/Basic.lean Modified Mathlib/NumberTheory/NumberField/FinitePlaces.lean Modified Mathlib/NumberTheory/NumberField/InfinitePlace/Basic.lean Modified Mathlib/NumberTheory/Ostrowski.lean Modified Mathlib/NumberTheory/Padics/MahlerBasis.lean Modified Mathlib/NumberTheory/Padics/PadicVal/Basic.lean Modified Mathlib/NumberTheory/Padics/RingHoms.lean Modified Mathlib/NumberTheory/Pell.lean Modified Mathlib/NumberTheory/PellMatiyasevic.lean Modified Mathlib/NumberTheory/Primorial.lean Modified Mathlib/NumberTheory/PythagoreanTriples.lean Modified Mathlib/NumberTheory/SelbergSieve.lean Modified Mathlib/NumberTheory/SumTwoSquares.lean Modified Mathlib/NumberTheory/Transcendental/Liouville/Residual.lean Modified Mathlib/NumberTheory/ZetaValues.lean Modified Mathlib/NumberTheory/Zsqrtd/QuadraticReciprocity.lean Modified Mathlib/Order/Filter/AtTopBot/Basic.lean Modified Mathlib/Order/Filter/AtTopBot/Finite.lean Modified Mathlib/Order/Interval/Finset/Nat.lean Modified Mathlib/Order/Interval/Set/Fin.lean Modified Mathlib/Order/JordanHolder.lean Modified Mathlib/Order/KrullDimension.lean Modified Mathlib/Order/Monotone/Basic.lean Modified Mathlib/Order/OrderIsoNat.lean Modified Mathlib/Order/Partition/Equipartition.lean Modified Mathlib/Order/RelSeries.lean Modified Mathlib/Order/SuccPred/LinearLocallyFinite.lean Modified Mathlib/Probability/Kernel/IonescuTulcea/PartialTraj.lean Modified Mathlib/Probability/Kernel/IonescuTulcea/Traj.lean Modified Mathlib/Probability/Moments/SubGaussian.lean Modified Mathlib/Probability/Process/Stopping.lean Modified Mathlib/Probability/ProductMeasure.lean Modified Mathlib/RingTheory/AdicCompletion/Basic.lean Modified Mathlib/RingTheory/AdicCompletion/Exactness.lean Modified Mathlib/RingTheory/Binomial.lean Modified Mathlib/RingTheory/DedekindDomain/Ideal/Lemmas.lean Modified Mathlib/RingTheory/Derivation/Basic.lean Modified Mathlib/RingTheory/Extension/Presentation/Submersive.lean Modified Mathlib/RingTheory/Filtration.lean Modified Mathlib/RingTheory/Ideal/Basic.lean Modified Mathlib/RingTheory/Ideal/NatInt.lean Modified Mathlib/RingTheory/Ideal/Operations.lean Modified Mathlib/RingTheory/Ideal/Quotient/Nilpotent.lean Modified Mathlib/RingTheory/Ideal/Quotient/PowTransition.lean Modified Mathlib/RingTheory/LaurentSeries.lean Modified Mathlib/RingTheory/Multiplicity.lean Modified Mathlib/RingTheory/MvPolynomial/Homogeneous.lean Modified Mathlib/RingTheory/MvPolynomial/Symmetric/NewtonIdentities.lean Modified Mathlib/RingTheory/Nilpotent/Exp.lean Modified Mathlib/RingTheory/NoetherNormalization.lean Modified Mathlib/RingTheory/Polynomial/Basic.lean Modified Mathlib/RingTheory/Polynomial/Bernstein.lean Modified Mathlib/RingTheory/Polynomial/Cyclotomic/Eval.lean Modified Mathlib/RingTheory/Polynomial/Cyclotomic/Expand.lean Modified Mathlib/RingTheory/Polynomial/Cyclotomic/Factorization.lean Modified Mathlib/RingTheory/Polynomial/Eisenstein/IsIntegral.lean Modified Mathlib/RingTheory/Polynomial/Hermite/Basic.lean Modified Mathlib/RingTheory/Polynomial/Pochhammer.lean Modified Mathlib/RingTheory/Polynomial/Resultant/Basic.lean Modified Mathlib/RingTheory/Polynomial/ShiftedLegendre.lean Modified Mathlib/RingTheory/PowerSeries/Basic.lean Modified Mathlib/RingTheory/PowerSeries/Binomial.lean Modified Mathlib/RingTheory/PowerSeries/Order.lean Modified Mathlib/RingTheory/Radical.lean Modified Mathlib/RingTheory/RingHom/Integral.lean Modified Mathlib/RingTheory/RootsOfUnity/Complex.lean Modified Mathlib/RingTheory/Spectrum/Prime/ChevalleyComplexity.lean Modified Mathlib/RingTheory/WittVector/WittPolynomial.lean Modified Mathlib/RingTheory/ZMod/UnitsCyclic.lean Modified Mathlib/SetTheory/Descriptive/Tree.lean Modified Mathlib/SetTheory/Game/State.lean Modified Mathlib/SetTheory/Surreal/Dyadic.lean Modified Mathlib/Tactic/DeriveEncodable.lean Modified Mathlib/Tactic/Linter/FlexibleLinter.lean Modified Mathlib/Tactic/NormNum/Irrational.lean Modified Mathlib/Tactic/NormNum/NatLog.lean Modified Mathlib/Tactic/Simproc/Factors.lean Modified Mathlib/Tactic/TacticAnalysis/Declarations.lean Modified Mathlib/Topology/Algebra/InfiniteSum/NatInt.lean Modified Mathlib/Topology/Algebra/InfiniteSum/Nonarchimedean.lean Modified Mathlib/Topology/Algebra/InfiniteSum/TsumUniformlyOn.lean Modified Mathlib/Topology/Algebra/Order/Group.lean Modified Mathlib/Topology/Compactification/OnePoint/Sphere.lean Modified Mathlib/Topology/EMetricSpace/BoundedVariation.lean Modified Mathlib/Topology/EMetricSpace/Paracompact.lean Modified Mathlib/Topology/MetricSpace/Closeds.lean Modified MathlibTest/FlexibleLinter.lean Modified MathlibTest/TacticAnalysis.lean Modified scripts/lint-style.lean 2025-12-04 09:22:45 9dfd1bb feat(CategoryTheory): Ext-groups in Grothendieck abelian categories (#32348) If an abelian category `C` satisfies `IsGrothendieckAbelian.{w} C`, we define a `HasExt.{w} C` instance (which follows from the existence of enough injectives in `C`). The consequence is that `Ext X Y n : Type w` when `X` and `Y` are objects in `C`. As it can be argued that the universe `w` must be unique (when `C` is nonzero), this is the best choice of universe for the definition of `Ext`-groups. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Abelian/GrothendieckCategory/HasExt.lean 2025-12-04 09:22:43 bcfe566 feat(NumberTheory): define Chebyshev functions (#32247) Defines the Chebyshev psi and theta functions and proves some simple results. Deduces an upper bound on theta using the existing bound on primorials. More substantial results will follow in subsequent PRs. This is the initial PR to upstream some material from the PrimeNumberTheoremAnd project. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/NumberTheory/Chebyshev.lean + theorem Chebyshev.psi_eq_psi_coe_floor + theorem Chebyshev.psi_eq_sum_Icc + theorem Chebyshev.psi_eq_zero_of_lt_two + theorem Chebyshev.psi_mono + theorem Chebyshev.psi_nonneg + theorem Chebyshev.theta_eq_log_primorial + theorem Chebyshev.theta_eq_sum_Icc + theorem Chebyshev.theta_eq_theta_coe_floor + theorem Chebyshev.theta_eq_zero_of_lt_two + theorem Chebyshev.theta_le_log4_mul_x + theorem Chebyshev.theta_mono + theorem Chebyshev.theta_nonneg 2025-12-04 09:22:42 b9e179f feat(Algebra/Homology): cochains/cocycles from/to single complexes (#32097) We provide constructors for `HomComplex.Cochain` and `HomComplex.Cocycle` when the source or target cochain complexes sits in a single degree. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Homology/HomotopyCategory/HomComplex.lean + theorem CochainComplex.HomComplex.Cochain.single_v_eq_zero' + theorem CochainComplex.HomComplex.Cochain.single_zero + theorem CochainComplex.HomComplex.Cochain.δ_single Added Mathlib/Algebra/Homology/HomotopyCategory/HomComplexSingle.lean + theorem CochainComplex.HomComplex.Cochain.fromSingleMk_v + theorem CochainComplex.HomComplex.Cochain.fromSingleMk_v_eq_zero + theorem CochainComplex.HomComplex.Cochain.fromSingleMk_zero + theorem CochainComplex.HomComplex.Cochain.toSingleMk_v + theorem CochainComplex.HomComplex.Cochain.toSingleMk_v_eq_zero + theorem CochainComplex.HomComplex.Cochain.toSingleMk_zero + theorem CochainComplex.HomComplex.Cochain.δ_fromSingleMk + theorem CochainComplex.HomComplex.Cochain.δ_toSingleMk Modified Mathlib/Algebra/Homology/HomotopyCategory/SingleFunctors.lean + theorem CochainComplex.singleFunctor_obj_d 2025-12-04 09:22:40 d94916e feat(NumberTheory/ModularForms): improvements to q-expansions (#32060) Generalize q-expansion theory so it works for any discrete subgroup of GL2R, and express the q-expansion coefficients as integrals (using the Cauchy integral formula for derivatives) ESTIMATED CHANGES Modified Mathlib/Analysis/Complex/Periodic.lean + theorem Function.Periodic.exp_decay_sub_of_bounded_at_inf Modified Mathlib/Analysis/Complex/UpperHalfPlane/FunctionsBoundedAtInfty.lean Modified Mathlib/Analysis/SpecialFunctions/Pow/Asymptotics.lean + theorem isLittleO_exp_mul_rpow_of_lt Modified Mathlib/NumberTheory/ModularForms/Basic.lean +/- theorem CuspFormClass.zero_at_infty +/- theorem CuspFormClass.zero_at_infty_slash +/- theorem ModularFormClass.bdd_at_infty +/- theorem ModularFormClass.bdd_at_infty_slash +/- theorem ModularFormClass.continuous Modified Mathlib/NumberTheory/ModularForms/Cusps.lean + theorem Subgroup.isCusp_of_mem_strictPeriods Modified Mathlib/NumberTheory/ModularForms/Identities.lean + theorem SlashInvariantForm.vAdd_apply_of_mem_strictPeriods Modified Mathlib/NumberTheory/ModularForms/LevelOne.lean + theorem ModularFormClass.one_mem_strictPeriods_SL2Z Modified Mathlib/NumberTheory/ModularForms/Petersson.lean + theorem SlashInvariantFormClass.norm_petersson_smul + theorem UpperHalfPlane.IsZeroAtImInfty.of_exp_decay + theorem UpperHalfPlane.IsZeroAtImInfty.petersson_exp_decay_left + theorem UpperHalfPlane.IsZeroAtImInfty.petersson_exp_decay_right + theorem UpperHalfPlane.IsZeroAtImInfty.petersson_isZeroAtImInfty_left + theorem UpperHalfPlane.IsZeroAtImInfty.petersson_isZeroAtImInfty_right + theorem UpperHalfPlane.petersson_norm_symm + theorem UpperHalfPlane.petersson_symm Modified Mathlib/NumberTheory/ModularForms/QExpansion.lean +/- theorem CuspFormClass.cuspFunction_apply_zero + theorem CuspFormClass.exp_decay_atImInfty' +/- theorem CuspFormClass.exp_decay_atImInfty +/- theorem CuspFormClass.zero_at_infty_comp_ofComplex +/- theorem ModularFormClass.analyticAt_cuspFunction_zero +/- theorem ModularFormClass.bounded_at_infty_comp_ofComplex + theorem ModularFormClass.cuspFunction_apply_zero +/- theorem ModularFormClass.differentiableAt_cuspFunction + theorem ModularFormClass.differentiableOn_cuspFunction_ball + theorem ModularFormClass.exp_decay_sub_atImInfty' + theorem ModularFormClass.exp_decay_sub_atImInfty +/- theorem ModularFormClass.hasFPowerSeries_cuspFunction +/- theorem ModularFormClass.hasSum_qExpansion - theorem ModularFormClass.hasSum_qExpansion_of_abs_lt + theorem ModularFormClass.hasSum_qExpansion_of_norm_lt +/- theorem ModularFormClass.qExpansionFormalMultilinearSeries_radius + theorem ModularFormClass.qExpansion_coeff_eq_circleIntegral + theorem ModularFormClass.qExpansion_coeff_eq_intervalIntegral + theorem ModularFormClass.qExpansion_coeff_zero +/- def SlashInvariantFormClass.cuspFunction +/- theorem SlashInvariantFormClass.eq_cuspFunction +/- theorem SlashInvariantFormClass.periodic_comp_ofComplex + theorem UpperHalfPlane.IsZeroAtImInfty.cuspFunction_apply_zero + theorem UpperHalfPlane.IsZeroAtImInfty.exp_decay_atImInfty' + theorem UpperHalfPlane.IsZeroAtImInfty.exp_decay_atImInfty + theorem UpperHalfPlane.IsZeroAtImInfty.valueAtInfty_eq_zero + theorem UpperHalfPlane.IsZeroAtImInfty.zero_at_infty_comp_ofComplex + theorem UpperHalfPlane.qParam_tendsto_atImInfty + def UpperHalfPlane.valueAtInfty 2025-12-04 09:22:38 530f3dc feat(CategoryTheory): prerequisites for the characterization of locally presentable categories using strong generators (#32034) Various basic results are added so as to prepare for #30241. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/EssentiallySmall.lean Modified Mathlib/CategoryTheory/Functor/KanExtension/Dense.lean + theorem CategoryTheory.Functor.IsDense.comp_left_iff_of_isEquivalence + theorem CategoryTheory.Functor.IsDense.comp_right_iff_of_isEquivalence + theorem CategoryTheory.Functor.IsDense.iff_of_iso + theorem CategoryTheory.Functor.IsDense.of_iso Modified Mathlib/CategoryTheory/Generator/Basic.lean + theorem CategoryTheory.ObjectProperty.IsCoseparating.epi_iff + theorem CategoryTheory.ObjectProperty.IsSeparating.mono_iff Modified Mathlib/CategoryTheory/Limits/HasLimits.lean + theorem CategoryTheory.Limits.HasColimitsOfShape.of_essentiallySmall + theorem CategoryTheory.Limits.HasColimitsOfShape.of_small + theorem CategoryTheory.Limits.HasLimitsOfShape.of_essentiallySmall + theorem CategoryTheory.Limits.HasLimitsOfShape.of_small Modified Mathlib/CategoryTheory/ObjectProperty/Basic.lean + theorem CategoryTheory.ObjectProperty.map_monotone + theorem CategoryTheory.ObjectProperty.strictMap_le_map + theorem CategoryTheory.ObjectProperty.strictMap_monotone Modified Mathlib/CategoryTheory/ObjectProperty/ClosedUnderIsomorphisms.lean + theorem CategoryTheory.ObjectProperty.isoClosure_strictMap + theorem CategoryTheory.ObjectProperty.map_isoClosure Modified Mathlib/CategoryTheory/ObjectProperty/ColimitsCardinalClosure.lean + theorem CategoryTheory.ObjectProperty.colimitsCardinalClosure_le + theorem CategoryTheory.ObjectProperty.le_colimitsCardinalClosure Modified Mathlib/CategoryTheory/ObjectProperty/ColimitsOfShape.lean Modified Mathlib/CategoryTheory/ObjectProperty/CompleteLattice.lean + theorem CategoryTheory.ObjectProperty.ι_map_top Modified Mathlib/CategoryTheory/ObjectProperty/Small.lean Modified Mathlib/CategoryTheory/Presentable/Limits.lean + theorem CategoryTheory.isClosedUnderColimitsOfShape_isCardinalPresentable 2025-12-04 09:22:36 6cb3caa feat(Algebra/Homology/Embedding): extension functor on homotopy categories (#32007) Given an embedding of complex shapes `e : c.Embedding c'` and a preadditive category `C`, we define a fully faithful functor `e.extendHomotopyFunctor C : HomotopyCategory C c ⥤ HomotopyCategory C c'`. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Homology/Embedding/Extend.lean Added Mathlib/Algebra/Homology/Embedding/ExtendHomotopy.lean + theorem Homotopy.extend.homAux_eq + theorem Homotopy.extend.hom_eq + theorem Homotopy.extend.hom_eq_zero₁ + theorem Homotopy.extend.hom_eq_zero₂ + theorem Homotopy.extend_hom_eq + theorem Homotopy.extend_ofExtend + theorem Homotopy.ofExtend_extend 2025-12-04 09:22:34 7a7c4bb feat(AlgebraicTopology): the skeleton of a simplicial set (#31996) From https://github.com/joelriou/topcat-model-category ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/AlgebraicTopology/SimplicialSet/Skeleton.lean + theorem SSet.iSup_skeleton + theorem SSet.iSup_skeletonOfMono + theorem SSet.mem_skeleton + theorem SSet.mem_skeletonOfMono_obj_iff_of_nonDegenerate + theorem SSet.mem_skeleton_obj_iff_of_nonDegenerate + theorem SSet.ofSimplex_le_skeleton + def SSet.skeleton + def SSet.skeletonOfMono + theorem SSet.skeletonOfMono_obj_eq_top + theorem SSet.skeletonOfMono_succ + theorem SSet.skeletonOfMono_zero + theorem SSet.skeleton_le_skeletonOfMono + theorem SSet.skeleton_obj_eq_top + theorem SSet.skeleton_succ + theorem SSet.skeleton_zero 2025-12-04 09:22:32 ef5118f feat(CategoryTheory): Pullback of equalizer is an equalizer (#30120) We show that the pullback of an equalizer (seen as a subobject) along some morphism `h` is the subobject that comes from the equalizer of the two original arrows precomposed with `h`. A `TODO` was completed in the process. This is a prerequisite of the [MTT project](https://github.com/kyoDralliam/model-theory-topos), which aims to use the internal language of toposes to reason about e.g. sheaves. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Limits/Shapes/Equalizers.lean + theorem CategoryTheory.Limits.hasEqualizer_precomp_of_equalizer + def CategoryTheory.Limits.isLimitPrecompFork + def CategoryTheory.Limits.liftPrecomp + def CategoryTheory.Limits.precompFork Modified Mathlib/CategoryTheory/Limits/Shapes/Pullback/PullbackCone.lean +/- def CategoryTheory.Limits.PullbackCone.mk Modified Mathlib/CategoryTheory/Subobject/Basic.lean + theorem CategoryTheory.Subobject.skeletal Modified Mathlib/CategoryTheory/Subobject/FactorThru.lean + def CategoryTheory.Subobject.homOfFactors + theorem CategoryTheory.Subobject.le_of_factors Modified Mathlib/CategoryTheory/Subobject/Limits.lean + theorem CategoryTheory.Limits.pullback_equalizer + theorem CategoryTheory.Limits.pullback_factors + theorem CategoryTheory.Limits.pullback_factors_iff 2025-12-04 08:18:51 6dd65ee chore: disable the flexible linter (#32420) - Remove `linter.flexible` from the standard linter set in `Mathlib/Init.lean` - Explicitly disable the flexible linter in `lakefile.lean` with a comment explaining why The flexible linter gives non-actionable warnings and is not yet ready for use in Mathlib. This change disables it by default while keeping it available for downstream projects that may want to enable it explicitly. 🤖 Generated with [Claude Code](https://claude.com/claude-code) ESTIMATED CHANGES Modified Mathlib/Init.lean Modified lakefile.lean 2025-12-04 07:55:29 e842f09 chore(Analysis/SpecialFunctions): remove redundant lines (#32413) The Z definition is a remnant from a previous version proof and not actually used by the simp statement in the current proof. ESTIMATED CHANGES Modified Mathlib/Analysis/SpecialFunctions/PolarCoord.lean 2025-12-04 07:21:17 c0952c4 chore: update Mathlib dependencies 2025-12-04 (#32417) This PR updates the Mathlib dependencies. ESTIMATED CHANGES Modified lake-manifest.json 2025-12-04 02:49:00 14ff892 chore(Order/Defs/Unbundled): use `to_dual` (#32378) Note: - The name translations upper ↔ lower, and minimal ↔ maximal have been added. ESTIMATED CHANGES Modified Mathlib/Order/Defs/Unbundled.lean - def IsLowerSet - def IsRelLowerSet - theorem Maximal.le_of_ge - theorem Maximal.prop - def Maximal - theorem MaximalFor.le_of_le - theorem MaximalFor.prop - def MaximalFor Modified Mathlib/Tactic/Translate/ToDual.lean 2025-12-03 22:36:13 6a7385f fix(to_additive): only refold aux lemmas in `def` body (#32393) This PR fixes `declAbstractNestedProofs` to do what its doc-string says it does. Zulip: [#metaprogramming / tactics > to_additive and module system](https://leanprover.zulipchat.com/#narrow/channel/239415-metaprogramming-.2F-tactics/topic/to_additive.20.20and.20module.20system/with/561621488) ESTIMATED CHANGES Modified Mathlib/Tactic/Translate/Core.lean Modified MathlibTest/toAdditive.lean + def abstractMul 2025-12-03 20:10:30 1134593 feat(Order): replace the implementation of `Set.chainHeight` (#30345) `Set.chainHeight` is unused in Mathlib--it was a previous attempt to formalize heights for preorders before `Order.height` came into use. The current implementation `Set.chainHeight` is previously defined for Sets that had an `LT` order but it's behavior was unexpected for relations that were not strict orders, e.g. singleton sets with a reflexive relation would have infinite height. LE is such a relation so this implementation is very limited in what it could be used for. I replace it with an implementation that: - Is defined for arbitrary relations instead of using `[LT]`. - Uses `IsChain` instead of `List.IsChain` for defining chains. This is equivalent for transitive relations, but behaves differently for non- transitive relations--it requires that all elements in the set are comparable instead of just comparability between neighboring elements in the List. This makes the definition better behaved for e.g. reflexive relations and better matches the definition of chain height typically used in the literature. The API has been slimmed down but what remains largely matches the previous API. Discussed on [Zulip](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Definitions.20for.20chain.20height.2Fpartitions/near/542823244) ESTIMATED CHANGES Modified Mathlib/Order/Height.lean - theorem Set.chainHeight_add_le_chainHeight_add + theorem Set.chainHeight_coe_univ + theorem Set.chainHeight_coe_univ_le + theorem Set.chainHeight_coe_univ_lt - theorem Set.chainHeight_dual +/- theorem Set.chainHeight_empty + theorem Set.chainHeight_eq_iSup - theorem Set.chainHeight_eq_iSup_Ici - theorem Set.chainHeight_eq_iSup_Iic - theorem Set.chainHeight_eq_iSup_subtype + theorem Set.chainHeight_eq_of_relEmbedding + theorem Set.chainHeight_eq_of_relIso +/- theorem Set.chainHeight_eq_top_iff +/- theorem Set.chainHeight_eq_zero_iff + theorem Set.chainHeight_flip - theorem Set.chainHeight_image - theorem Set.chainHeight_insert_of_forall_gt - theorem Set.chainHeight_insert_of_forall_lt - theorem Set.chainHeight_le_chainHeight_TFAE - theorem Set.chainHeight_le_chainHeight_iff - theorem Set.chainHeight_le_chainHeight_iff_le + theorem Set.chainHeight_le_encard +/- theorem Set.chainHeight_mono + theorem Set.chainHeight_ne_top_of_finite +/- theorem Set.chainHeight_of_isEmpty - theorem Set.chainHeight_union_eq - theorem Set.chainHeight_union_le - theorem Set.cons_mem_subchain_iff + theorem Set.encard_eq_chainHeight_of_isChain + theorem Set.encard_le_chainHeight_of_isChain - theorem Set.exists_chain_of_le_chainHeight + theorem Set.exists_eq_chainHeight_of_chainHeight_ne_top + theorem Set.exists_eq_chainHeight_of_finite + theorem Set.exists_isChain_of_le_chainHeight + theorem Set.finite_of_chainHeight_ne_top - theorem Set.le_chainHeight_TFAE - theorem Set.le_chainHeight_add_nat_iff - theorem Set.le_chainHeight_iff - theorem Set.length_le_chainHeight_of_mem_subchain - theorem Set.nil_mem_subchain + theorem Set.not_isChain_of_chainHeight_lt_encard +/- theorem Set.one_le_chainHeight_iff - theorem Set.singleton_mem_subchain_iff - def Set.subchain - theorem Set.wellFoundedGT_of_chainHeight_ne_top - theorem Set.wellFoundedLT_of_chainHeight_ne_top 2025-12-03 19:32:08 230c619 feat(Algebra/Homology): morphisms to K-injective complexes in the derived category (#31900) We compute the type of morphisms to K-injective complexes in the derived category. (Some definitions about acyclic complexes are also moved from `DerivedCategory.Basic` to a new file `HomotopyCategory.Acyclic`.) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Homology/DerivedCategory/Basic.lean - theorem HomotopyCategory.mem_subcategoryAcyclic_iff - theorem HomotopyCategory.quasiIso_eq_subcategoryAcyclic_W - theorem HomotopyCategory.quotient_obj_mem_subcategoryAcyclic_iff_exactAt - def HomotopyCategory.subcategoryAcyclic Added Mathlib/Algebra/Homology/DerivedCategory/KInjective.lean + theorem CochainComplex.IsKInjective.Qh_map_bijective Added Mathlib/Algebra/Homology/HomotopyCategory/Acyclic.lean + theorem HomotopyCategory.mem_subcategoryAcyclic_iff + theorem HomotopyCategory.quasiIso_eq_subcategoryAcyclic_W + theorem HomotopyCategory.quotient_obj_mem_subcategoryAcyclic_iff_acyclic + theorem HomotopyCategory.quotient_obj_mem_subcategoryAcyclic_iff_exactAt + def HomotopyCategory.subcategoryAcyclic Modified Mathlib/Algebra/Homology/HomotopyCategory/KInjective.lean + theorem CochainComplex.IsKInjective.rightOrthogonal + theorem CochainComplex.isKInjective_iff_of_iso + theorem CochainComplex.isKInjective_iff_rightOrthogonal + theorem CochainComplex.isKInjective_of_iso + theorem CochainComplex.isKInjective_shift_iff + theorem HomotopyEquiv.isKInjective 2025-12-03 18:57:46 e9259fa feat: covariance of a variable multiplied by a constant (#32234) Rename `covariance_mul_left : cov[fun ω ↦ c * X ω, Y; μ] = c * cov[X, Y; μ]` to `covariance_const_mul_left` and add `covariance_mul_const_left : cov[fun ω ↦ X ω * c, Y; μ] = cov[X, Y; μ] * c`. Same for `right` and variance. Also minimize the `public import`s in the `Covariance` file. ESTIMATED CHANGES Modified Mathlib/Probability/Distributions/Gaussian/Basic.lean Modified Mathlib/Probability/Moments/Basic.lean Modified Mathlib/Probability/Moments/Covariance.lean + theorem ProbabilityTheory.covariance_const_mul_left + theorem ProbabilityTheory.covariance_const_mul_right + theorem ProbabilityTheory.covariance_mul_const_left + theorem ProbabilityTheory.covariance_mul_const_right - theorem ProbabilityTheory.covariance_mul_left - theorem ProbabilityTheory.covariance_mul_right Modified Mathlib/Probability/Moments/CovarianceBilin.lean Modified Mathlib/Probability/Moments/Variance.lean + theorem ProbabilityTheory.variance_const_mul - theorem ProbabilityTheory.variance_mul + theorem ProbabilityTheory.variance_mul_const 2025-12-03 18:25:38 e6aec26 feat: topological version of `support_comp_eq` (#32368) And other related lemmas (the API is copy-pasted from the algebraic one) ESTIMATED CHANGES Modified Mathlib/Topology/Algebra/Support.lean + theorem mulTSupport_comp_eq + theorem mulTSupport_comp_eq_of_range_subset + theorem mulTSupport_comp_eq_preimage + theorem mulTSupport_comp_subset + theorem mulTSupport_comp_subset_preimage + theorem mulTSupport_subset_comp 2025-12-03 18:10:50 4d39716 feat: generalize the pull-out property of the conditional expectation (#31666) This was stated for the product of two real functions only. This PR generalizes to an arbitrary bilinear map. The huge diff is because I moved it to a new file as it is not related to reals anymore. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/MeasureTheory/Function/ConditionalExpectation/PullOut.lean + theorem MeasureTheory.condExp_aestronglyMeasurable_bilin_of_bound + theorem MeasureTheory.condExp_bilin_of_aestronglyMeasurable_left + theorem MeasureTheory.condExp_bilin_of_aestronglyMeasurable_right + theorem MeasureTheory.condExp_bilin_of_stronglyMeasurable_left + theorem MeasureTheory.condExp_bilin_of_stronglyMeasurable_right + theorem MeasureTheory.condExp_mul_of_aestronglyMeasurable_left + theorem MeasureTheory.condExp_mul_of_aestronglyMeasurable_right + theorem MeasureTheory.condExp_mul_of_stronglyMeasurable_left + theorem MeasureTheory.condExp_mul_of_stronglyMeasurable_right + theorem MeasureTheory.condExp_smul_of_aestronglyMeasurable_left + theorem MeasureTheory.condExp_smul_of_aestronglyMeasurable_right + theorem MeasureTheory.condExp_stronglyMeasurable_bilin_of_bound + theorem MeasureTheory.condExp_stronglyMeasurable_mul_of_bound + theorem MeasureTheory.condExp_stronglyMeasurable_mul_of_bound₀ + theorem MeasureTheory.condExp_stronglyMeasurable_simpleFunc_bilin + theorem MeasureTheory.condExp_stronglyMeasurable_simpleFunc_mul Modified Mathlib/MeasureTheory/Function/ConditionalExpectation/Real.lean - theorem MeasureTheory.condExp_mul_of_aestronglyMeasurable_left - theorem MeasureTheory.condExp_mul_of_aestronglyMeasurable_right - theorem MeasureTheory.condExp_mul_of_stronglyMeasurable_left - theorem MeasureTheory.condExp_mul_of_stronglyMeasurable_right - theorem MeasureTheory.condExp_stronglyMeasurable_mul_of_bound - theorem MeasureTheory.condExp_stronglyMeasurable_mul_of_bound₀ - theorem MeasureTheory.condExp_stronglyMeasurable_simpleFunc_mul Modified Mathlib/Probability/CondVar.lean Modified Mathlib/Probability/Martingale/Basic.lean Modified Mathlib/Probability/Martingale/OptionalStopping.lean Modified Mathlib/Probability/Martingale/Upcrossing.lean 2025-12-03 17:53:16 a607823 feat: coercion to bounded continuous functions as a CLM on TestFunction (#32228) This code comes from #30328 by @luigi-massacci, which I have adapted following reviews on earlier PR. I'm opening this as a shortcut to parallelize reviewing. ESTIMATED CHANGES Modified Mathlib/Analysis/Distribution/TestFunction.lean - theorem TestFunction.coe_ofSupportedInLM + theorem TestFunction.injective_toBoundedContinuousFunctionCLM - def TestFunction.ofSupportedInLM + theorem TestFunction.toBoundedContinuousFunctionCLM_eq_of_scalars 2025-12-03 17:53:13 007ae99 feat(CyclotomicField): splitting of the prime `p` in a cyclotomic field `ℚ(ζₙ)` (#32217) Let `p` be a prime number and let `n` be a positive integer divisible by `p`. Write `n = p ^ (k + 1) * m` with `m` not divisible by `p`. In this PR, we prove that the residual degree of `p` in `ℚ(ζₙ)` is the order of `p` modulo `m` and its ramification index is `p ^ k * (p - 1)`. ESTIMATED CHANGES Modified Mathlib/NumberTheory/NumberField/Cyclotomic/Ideal.lean + theorem IsCyclotomicExtension.Rat.inertiaDegIn_eq + theorem IsCyclotomicExtension.Rat.inertiaDegIn_eq_of_not_dvd + theorem IsCyclotomicExtension.Rat.inertiaDegIn_eq_of_prime + theorem IsCyclotomicExtension.Rat.inertiaDegIn_eq_of_prime_pow - theorem IsCyclotomicExtension.Rat.inertiaDegIn_of_not_dvd + theorem IsCyclotomicExtension.Rat.inertiaDeg_eq + theorem IsCyclotomicExtension.Rat.inertiaDeg_eq_of_not_dvd - theorem IsCyclotomicExtension.Rat.inertiaDeg_of_not_dvd + theorem IsCyclotomicExtension.Rat.ramificationIdxIn_eq + theorem IsCyclotomicExtension.Rat.ramificationIdxIn_eq_of_not_dvd + theorem IsCyclotomicExtension.Rat.ramificationIdxIn_eq_of_prime + theorem IsCyclotomicExtension.Rat.ramificationIdxIn_eq_of_prime_pow - theorem IsCyclotomicExtension.Rat.ramificationIdxIn_of_not_dvd + theorem IsCyclotomicExtension.Rat.ramificationIdx_eq + theorem IsCyclotomicExtension.Rat.ramificationIdx_eq_of_not_dvd - theorem IsCyclotomicExtension.Rat.ramificationIdx_of_not_dvd Modified Mathlib/RingTheory/DedekindDomain/Ideal/Lemmas.lean + theorem Ideal.prime_of_mem_primesOver Modified Mathlib/RingTheory/Ideal/GoingUp.lean + theorem Ideal.isMaximal_of_mem_primesOver +/- theorem Ideal.primesOver_bot 2025-12-03 17:53:11 e5d7d9a feat(CategoryTheory/Sites/Point): properties of fiber functors (#31710) In this PR, we show that the fiber functors on presheaves and sheaves defined by a point of a site preserve finite limits and all colimits. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Sites/Point/Basic.lean + theorem CategoryTheory.GrothendieckTopology.Point.W_isInvertedBy_presheafFiber + theorem CategoryTheory.GrothendieckTopology.Point.toPresheafFiber_eq_iff' + theorem CategoryTheory.GrothendieckTopology.Point.toPresheafFiber_jointly_surjective + theorem CategoryTheory.GrothendieckTopology.Point.toPresheafFiber_jointly_surjective₂ + theorem CategoryTheory.GrothendieckTopology.Point.toPresheafFiber_map_bijective + theorem CategoryTheory.GrothendieckTopology.Point.toPresheafFiber_map_injective + theorem CategoryTheory.GrothendieckTopology.Point.toPresheafFiber_map_surjective + theorem CategoryTheory.GrothendieckTopology.Point.toPresheafFiber_naturality + theorem CategoryTheory.GrothendieckTopology.Point.toPresheafFiber_w 2025-12-03 16:54:36 f3d4352 doc: replace `reflexivity` with `rfl` in doc string of `tauto` tactic (#32399) The name `reflexivity` is an old Lean 3 spelling. ESTIMATED CHANGES Modified Mathlib/Tactic/Tauto.lean 2025-12-03 15:36:11 952cd71 fix(translate): only generate equation lemmas when generating new decls (#32396) This PR avoids calling `getEqnsFor?` unneccessarily. Due to a bug(?), `getEqnsFor?` sometimes throws an error, but that only occurrs in a case where we aren't actually interested in its result Zulip: [#metaprogramming / tactics > to_dual and structure projections](https://leanprover.zulipchat.com/#narrow/channel/239415-metaprogramming-.2F-tactics/topic/to_dual.20and.20structure.20projections/with/561654296) ESTIMATED CHANGES Modified Mathlib/Tactic/Translate/Core.lean Modified MathlibTest/ToDual.lean + structure Lattice 2025-12-03 15:11:53 72d9105 chore: delete `elementwise` tactic stub (#32400) This tactic used to exist in Mathlib 3, but it was never ported and has been completely replaced by the `elementwise_of%` elaborator. So I think we should consider the tactic stub as deprecated for two years and remove it. ESTIMATED CHANGES Modified Mathlib/Tactic/CategoryTheory/Elementwise.lean 2025-12-03 14:57:21 8198848 chore: generalize `Subring.toIsOrderedRing` to `SubringClass` (#32212) ESTIMATED CHANGES Modified Mathlib/Algebra/Ring/Subring/Order.lean +/- def Subring.orderedSubtype 2025-12-03 13:44:49 998c33d feat: products of identically distributed random variables (#31545) If `X` and `Y` are independent random variables, `Z` and `W` are independent random variables, such that `X` and `Z` are identically distributed and `Y` and `W` are identically distributed, then the pairs `(X, Y)` and `(Z, W)` are identically distributed. Also add a similar result for products of countably many random variables. From the LeanBandits project. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Probability/IdentDistribIndep.lean + theorem ProbabilityTheory.IdentDistrib.pi + theorem ProbabilityTheory.IdentDistrib.prodMk 2025-12-03 12:39:05 6b2aef4 feat: drop unnecessary assumption in `MeasureTheory.Integrable.comp_snd_map_prod_id` (#32392) ESTIMATED CHANGES Modified Mathlib/Probability/Kernel/Condexp.lean +/- theorem MeasureTheory.Integrable.comp_snd_map_prod_id 2025-12-03 12:39:03 a197dfb feat(RamificationInertia): multiplicativity of indices in a tower of Galois extensions (#32309) Let `A ⊆ B ⊆ C` be a tower of Galois extensions of rings. Let `p` be a prime ideal of `A` and let `P` be an ideal of `B` above `p`. Then we prove: - `p.inertiaDegIn B * P.inertiaDegIn C = p.inertiaDegIn C` - `p.ramificationIdxIn B * P.ramificationIdxIn C = p.ramificationIdxIn C` - `(p.primesOver B).ncard * (P.primesOver C).ncard = (p.primesOver C).ncard` ESTIMATED CHANGES Modified Mathlib/NumberTheory/RamificationInertia/Galois.lean + theorem Ideal.inertiaDegIn_mul_inertiaDegIn + theorem Ideal.ncard_primesOver_mul_ncard_primesOver + theorem Ideal.ramificationIdxIn_mul_ramificationIdxIn 2025-12-03 12:21:33 423873c doc: clarify commit message formatting in PR template (#32380) Clarifies that the PR title is from the title of the GitHub PR. ESTIMATED CHANGES Modified .github/PULL_REQUEST_TEMPLATE.md 2025-12-03 12:21:32 4bf4bb1 feat(AlgebraicGeometry): locally directed colimits in `P.Over ⊤ S` (#30140) We lift the colimit properties of `Scheme` to `P.Over ⊤ S` if `IsLocalAtSource P`. In particular, `P.Over ⊤ S` has pushouts along open immersions and (small) coproducts. We also add two instances, that make ``` example {U X Y : Scheme.{u}} (f : U ⟶ X) (g : U ⟶ Y) [IsOpenImmersion f] [IsOpenImmersion g] : HasPushout f g := inferInstance ``` work. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/AlgebraicGeometry/Limits.lean Added Mathlib/AlgebraicGeometry/LimitsOver.lean Modified Mathlib/CategoryTheory/Limits/MorphismProperty.lean + theorem CategoryTheory.CostructuredArrow.isClosedUnderColimitsOfShape Modified Mathlib/CategoryTheory/Limits/Over.lean Modified Mathlib/CategoryTheory/MorphismProperty/Comma.lean + theorem CategoryTheory.MorphismProperty.Over.forget_comp_forget_map + theorem CategoryTheory.MorphismProperty.Under.forget_comp_forget_map 2025-12-03 11:20:36 ced1553 chore(Tactic): copy docs to undocumented tactics (#32350) This PR adds the `@[tactic_alt]` or `@[inherit_doc]` attribute to add docstrings to undocumented tactics. These changes should fix about a third of the 33 currently undocumented tactics, and two thirds of the undocumented tactics in all of Mathlib. (For a precise number, ask me once Mathlib finishes building.) ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/Dual/Basis.lean Modified Mathlib/Tactic/CancelDenoms/Core.lean Modified Mathlib/Tactic/Find.lean Modified Mathlib/Tactic/Have.lean Modified Mathlib/Tactic/Linter/FlexibleLinter.lean Modified Mathlib/Tactic/Measurability.lean Modified Mathlib/Tactic/Set.lean 2025-12-03 10:41:39 2cfe0c2 feat: expand notation for `CompactConvergenceCLM` (#32390) Also use `:25` like in [«term_→SL[_]_»](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Topology/Algebra/Module/LinearMap.html#%C2%ABterm_%E2%86%92SL[_]_%C2%BB) and [«term_→SLₚₜ[_]_»](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Topology/Algebra/Module/PointwiseConvergence.html#%C2%ABterm_%E2%86%92SL%E2%82%9A%E2%82%9C[_]_%C2%BB) ESTIMATED CHANGES Modified Mathlib/Topology/Algebra/Module/StrongTopology.lean 2025-12-03 09:57:31 ec49104 feat: product of Borel spaces indexed by a subsingleton (#32274) A countable product of second countable Borel spaces is a Borel space, this is [Pi.borelSpace](https://leanprover-community.github.io/mathlib4_docs/Mathlib/MeasureTheory/Constructions/BorelSpace/Basic.html#Pi.borelSpace). Here we drop the second countability assumption when the index type is a subsingleton. ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Constructions/BorelSpace/Basic.lean Modified Mathlib/MeasureTheory/Measure/Hausdorff.lean +/- theorem MeasureTheory.hausdorffMeasure_measurePreserving_funUnique 2025-12-03 09:39:52 0a01e3e fix(CI): fix autolabelling script (#32388) When the scripts/bench directory was removed in https://github.com/leanprover-community/mathlib4/pull/32358, the corresponding autolabelling entry was not removed, resulting in an error every time the script was run. ESTIMATED CHANGES Modified scripts/autolabel.lean 2025-12-03 08:38:25 754ca54 ci(scripts/autolabel): remove deprecated uses (#32384) ESTIMATED CHANGES Modified scripts/autolabel.lean 2025-12-03 08:00:45 dd38cff feat: behavior of the counting function under addition (#32311) Establish the behavior of the "Proximity Function" of Value Distribution theory with respect to addition. This material is used in [Project VD](https://github.com/kebekus/ProjectVD), which aims to formalize Value Distribution Theory for meromorphic functions on the complex plane. The formula established here is part of a larger package discussing the behavior of the Nenvanlinna height under algebraic manipulations of the functions. ESTIMATED CHANGES Modified Mathlib/Analysis/Complex/ValueDistribution/CountingFunction.lean + theorem ValueDistribution.logCounting_add_top_eventuallyLE + theorem ValueDistribution.logCounting_add_top_le + theorem ValueDistribution.logCounting_const + theorem ValueDistribution.logCounting_const_zero + theorem ValueDistribution.logCounting_sum_top_eventuallyLE + theorem ValueDistribution.logCounting_sum_top_le Modified Mathlib/Analysis/Meromorphic/Divisor.lean + theorem MeromorphicOn.min_divisor_le_divisor_add + theorem MeromorphicOn.negPart_divisor_add_le_add + theorem MeromorphicOn.negPart_divisor_add_le_max Modified Mathlib/Analysis/Meromorphic/Order.lean + theorem meromorphicOrderAt_add_of_top_left + theorem meromorphicOrderAt_add_of_top_right 2025-12-03 07:14:53 14bfbad refactor: MorphismProperty.HasPullbacksAlong (#31231) Fix a morphism `f : X -> Y` in a category `C` with two morphism properties `P` and `Q`. To define a pullback functor between the subcategories of the slice categories `P.Over Q Y ⥤ P.Over Q X` one does not need the existence of all pullbacks along `f`. This refactor requires only that `f` has pullbacks of `P`-morphisms. This property of "`f` has pullbacks of `P`-morphisms is defined as a typeclass. Note that it cannot simply be an `abbrev` like `Limits.HasPullbacksAlong` because the typeclass inference system will not be able to infer `P` that way. ESTIMATED CHANGES Modified Mathlib/AlgebraicGeometry/Cover/Directed.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Pullback/HasPullback.lean + theorem CategoryTheory.Limits.hasPullback_symmetry_of_hasPullbacksAlong + theorem CategoryTheory.Limits.hasPushouts_symmetry_of_hasPushoutsAlong Modified Mathlib/CategoryTheory/MorphismProperty/Limits.lean + theorem CategoryTheory.MorphismProperty.baseChange_map' +/- theorem CategoryTheory.MorphismProperty.baseChange_obj +/- theorem CategoryTheory.MorphismProperty.pullback_fst +/- theorem CategoryTheory.MorphismProperty.pullback_map +/- theorem CategoryTheory.MorphismProperty.pullback_snd Modified Mathlib/CategoryTheory/MorphismProperty/OverAdjunction.lean +/- theorem CategoryTheory.MorphismProperty.Over.pullbackComp_left_fst_fst +/- theorem CategoryTheory.MorphismProperty.Over.pullbackCongr_hom_app_left_fst 2025-12-03 03:21:51 66ba1e1 chore: split operator monotonicity results to privately import integration results (#32329) This PR splits the file `Mathlib.Analysis.SpecialFunctions.ContinuousFunctionalCalculus.Rpow.IntegralRepresentation` to split off operator monotonicity results into their own file (called `Order`). This allows us to privately import the results about CFC integration since they are rather heavy and only used as a proof technique. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Analysis/SpecialFunctions/ContinuousFunctionalCalculus/ExpLog/Order.lean Modified Mathlib/Analysis/SpecialFunctions/ContinuousFunctionalCalculus/Rpow/IntegralRepresentation.lean - theorem CFC.monotone_nnrpow - theorem CFC.monotone_rpow - theorem CFC.monotone_sqrt - theorem CFC.nnrpow_le_nnrpow - theorem CFC.rpow_le_rpow - theorem CFC.sqrt_le_sqrt Added Mathlib/Analysis/SpecialFunctions/ContinuousFunctionalCalculus/Rpow/Order.lean + theorem CFC.monotone_nnrpow + theorem CFC.monotone_rpow + theorem CFC.monotone_sqrt + theorem CFC.nnrpow_le_nnrpow + theorem CFC.rpow_le_rpow + theorem CFC.sqrt_le_sqrt 2025-12-03 01:23:51 6920d30 feat(Probability): version of `infinitePi_pi` for countable sets (#32287) ESTIMATED CHANGES Modified Mathlib/Data/Finset/Pi.lean +/- theorem Finset.restrict_preimage + theorem Finset.restrict_preimage_univ Modified Mathlib/Data/Set/Lattice.lean + theorem Set.pi_iUnion_eq_iInter_pi Modified Mathlib/Order/CompleteLattice/Finset.lean + theorem Set.iUnion_finset_eq_set Modified Mathlib/Probability/ProbabilityMassFunction/Binomial.lean Modified Mathlib/Probability/ProductMeasure.lean + theorem MeasureTheory.Measure.infinitePi_map_restrict' + theorem MeasureTheory.Measure.infinitePi_pi_of_countable + theorem MeasureTheory.Measure.infinitePi_pi_univ +/- theorem MeasureTheory.Measure.infinitePi_singleton + theorem MeasureTheory.Measure.infinitePi_singleton_of_fintype Modified Mathlib/Topology/Algebra/InfiniteSum/Basic.lean +/- theorem tprod_singleton 2025-12-03 01:23:49 d6f0e1f feat(Order/Max): use `@[to_dual]` (#32059) This PR does the `@[to_dual]` tagging for `Mathlib.Order.Max`. ESTIMATED CHANGES Modified Mathlib/Order/Max.lean - theorem IsMax.fst - theorem IsMax.mono - theorem IsMax.not_lt - theorem IsMax.prodMk - theorem IsMax.snd - def IsMax - theorem IsTop.fst - theorem IsTop.isMax_iff - theorem IsTop.mono - theorem IsTop.prodMk - theorem IsTop.snd - def IsTop - theorem NoMaxOrder.not_acc - theorem NoTopOrder.to_noMaxOrder - theorem Prod.isMax_iff - theorem Prod.isTop_iff - theorem isMax_iff_forall_not_lt - theorem isMax_ofDual_iff - theorem isMax_toDual_iff - theorem isTop_ofDual_iff - theorem isTop_toDual_iff - theorem noTopOrder_iff_noMaxOrder - theorem not_isMax - theorem not_isMax_iff - theorem not_isMax_of_lt - theorem not_isTop Modified Mathlib/Tactic/Translate/ToDual.lean 2025-12-03 00:23:50 5b31753 feat(translate): define the `do_translate` attribute (#32229) This PR defines `to_additive_do_translate`/`to_dual_do_translate`, the counterpart of `to_additive_dont_translate`/`to_dual_dont_translate`. Previously, we used `to_additive self`/`to_dual self` instead of `to_additive_do_translate`/`to_dual_do_translate`, but this was a hack. ESTIMATED CHANGES Modified Mathlib/Tactic/ToAdditive.lean Modified Mathlib/Tactic/ToDual.lean Modified Mathlib/Tactic/Translate/Core.lean Modified Mathlib/Tactic/Translate/ToAdditive.lean Modified Mathlib/Tactic/Translate/ToDual.lean Modified MathlibTest/toAdditive.lean +/- def Test.MonoidEnd + def Test.Unit'' + def Test.Unit' 2025-12-02 23:20:56 093e8f3 chore: remove some redundant `@[measurability]` attributes (#32239) This PR removes the `@[measurability]` attribute from some lemmas when another form of the lemma is already tagged with `@[fun_prop]`. ESTIMATED CHANGES Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Arctan.lean Modified Mathlib/MeasureTheory/Constructions/BorelSpace/ContinuousLinearMap.lean Modified Mathlib/MeasureTheory/Constructions/BorelSpace/Metric.lean Modified Mathlib/MeasureTheory/Constructions/BorelSpace/Real.lean Modified Mathlib/MeasureTheory/Function/SpecialFunctions/Arctan.lean Modified Mathlib/MeasureTheory/Function/SpecialFunctions/Basic.lean Modified Mathlib/MeasureTheory/Function/SpecialFunctions/RCLike.lean Modified Mathlib/MeasureTheory/MeasurableSpace/Constructions.lean Modified Mathlib/MeasureTheory/MeasurableSpace/Defs.lean 2025-12-02 23:02:27 a4819b5 feat(Analysis/Normed): extension to linear isometry equivalence (#31076) We add extensions of linear equivalences and isometry equivalences on Banach spaces. This will be used to extend the Fourier transform to an isometry on L^2. In passing we expand on some doc-strings and fix a few typos. ESTIMATED CHANGES Modified Mathlib/Analysis/Normed/Operator/Extend.lean + def LinearEquiv.extend + def LinearEquiv.extendOfIsometry + theorem LinearEquiv.extendOfIsometry_apply + theorem LinearEquiv.extendOfIsometry_eq + theorem LinearEquiv.extendOfIsometry_symm_apply + theorem LinearEquiv.extendOfIsometry_symm_eq + theorem LinearEquiv.extend_apply + theorem LinearEquiv.extend_eq + theorem LinearEquiv.extend_symm_apply + theorem LinearEquiv.extend_symm_eq + theorem LinearEquiv.norm_extend_le + theorem LinearEquiv.norm_extend_symm_le 2025-12-02 22:30:36 6e8bf48 feat(Analysis/ContDiff): smooth compactly supported functions are dense in Lp (#31079) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/Normed/Lp/SmoothApprox.lean + theorem HasCompactSupport.exist_eLpNorm_sub_le_of_continuous + theorem MeasureTheory.Lp.dense_hasCompactSupport_contDiff + theorem MeasureTheory.MemLp.exist_eLpNorm_sub_le Modified Mathlib/MeasureTheory/Function/LpSeminorm/Basic.lean + theorem MeasureTheory.eLpNorm_indicator_sub_le_of_dist_bdd + theorem MeasureTheory.eLpNorm_sub_le_of_dist_bdd Modified Mathlib/MeasureTheory/Function/UniformIntegrable.lean - theorem MeasureTheory.eLpNorm_sub_le_of_dist_bdd Modified Mathlib/MeasureTheory/Measure/MeasureSpace.lean + theorem MeasureTheory.Measure.measure_support_eq_zero_iff 2025-12-02 22:00:14 9389269 feat: iteratedDeriv_const and iteratedDerivWithin_const (#32366) ESTIMATED CHANGES Modified Mathlib/Analysis/Calculus/IteratedDeriv/Defs.lean + theorem iteratedDerivWithin_const + theorem iteratedDeriv_const 2025-12-02 20:43:01 04dff12 feat: add missing `push` attributes for `@[to_fun]` (#32341) This PR add two missing `push` tags for the `pull fun _ ↦ _` tactic used by `@[to_fun]`. ESTIMATED CHANGES Modified Mathlib/Algebra/BigOperators/Pi.lean Modified Mathlib/Algebra/Group/Action/Pi.lean 2025-12-02 19:39:24 782f6c4 ci: decommission speedcenter (#32358) Since the speedcenter has been shut down and replaced by https://radar.lean-lang.org/, this PR updates or removes all the speedcenter-related infrastructure I could find in mathlib. The most significant change is that the `bench-after-CI` label no longer has any effect. Instead, radar respects the existing `awaiting-CI` tag for `!bench` commands. The workflow that replaces `bench-after-CI` is now: 1. Tag your PR with `awaiting-CI` (otherwise the `!bench` will start executing immediately) 2. Send a `!bench`/`!radar` command ESTIMATED CHANGES Modified .github/build.in.yml Deleted .github/workflows/bench_summary_comment.yml Modified .github/workflows/bors.yml Modified .github/workflows/build.yml Modified .github/workflows/build_fork.yml Modified LongestPole/Main.lean + def RadarAPI.JsonGet.instructions + def RadarAPI.getRunInfo + def RadarAPI.getRunInfoJson + def RadarAPI.instructions - def SpeedCenterAPI.RunResponse.instructions - def SpeedCenterAPI.getRunResponse - def SpeedCenterAPI.instructions - def SpeedCenterAPI.runJson - def mathlib4RepoId Added LongestPole/RadarJson.lean + structure RadarAPI.JsonCommitComparison + structure RadarAPI.JsonGet + structure RadarAPI.JsonMetricComparison Deleted LongestPole/SpeedCenterJson.lean - structure SpeedCenterAPI.CommitSource - structure SpeedCenterAPI.Dimension - structure SpeedCenterAPI.ErrorMessage - structure SpeedCenterAPI.Measurement - structure SpeedCenterAPI.Result - structure SpeedCenterAPI.Run - structure SpeedCenterAPI.RunResponse - structure SpeedCenterAPI.Source Modified LongestPole/Unused.lean Modified bors.toml Modified lakefile.lean Modified scripts/README.md Deleted scripts/bench/accumulate_profile.py Deleted scripts/bench/fake-root/bin/lean Deleted scripts/bench/fake-root/bin/leanc Deleted scripts/bench/fake-root/lib/lean/libleanshared.so Deleted scripts/bench/run Deleted scripts/bench/temci-config.run.yml Deleted scripts/bench/temci-config.yml Deleted scripts/bench_summary.lean - structure BenchAction.Bench - def BenchAction.addBenchSummaryComment - def BenchAction.benchOutput - def BenchAction.formatDiff - def BenchAction.formatFile - def BenchAction.formatPercent - def BenchAction.intDecs - def BenchAction.summary - def BenchAction.toCollapsibleTable - def BenchAction.toTable 2025-12-02 19:12:37 9e76ccd feat(Analysis/Distribution): notation for `lineDeriv` (#32084) This PR defines type classes for notation for the (iterated) line derivative. Its main uses in bundled types of smooth functions and their duals (distributions) and various function spaces (not yet in mathlib). We separate the algebraic properties to avoid the type class search to get hung up on metavariables, in particular it is necessary to have a separate type class for scalar multiplication. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/Distribution/DerivNotation.lean + theorem LineDeriv.continuous_iteratedLineDerivOp + def LineDeriv.iteratedLineDerivOp + def LineDeriv.iteratedLineDerivOpCLM + theorem LineDeriv.iteratedLineDerivOpCLM_apply + theorem LineDeriv.iteratedLineDerivOp_add + theorem LineDeriv.iteratedLineDerivOp_const_eq_iter_lineDerivOp + theorem LineDeriv.iteratedLineDerivOp_one + theorem LineDeriv.iteratedLineDerivOp_smul + theorem LineDeriv.iteratedLineDerivOp_succ_left + theorem LineDeriv.iteratedLineDerivOp_succ_right + theorem LineDeriv.iteratedLineDerivOp_zero + def LineDeriv.lineDerivOpCLM + theorem LineDeriv.lineDerivOpCLM_apply Modified Mathlib/Analysis/Distribution/SchwartzSpace.lean + theorem SchwartzMap.iteratedLineDerivOp_eq_iteratedFDeriv - def SchwartzMap.iteratedPDeriv - theorem SchwartzMap.iteratedPDeriv_eq_iteratedFDeriv - theorem SchwartzMap.iteratedPDeriv_one - theorem SchwartzMap.iteratedPDeriv_succ_left - theorem SchwartzMap.iteratedPDeriv_succ_right - theorem SchwartzMap.iteratedPDeriv_zero + theorem SchwartzMap.lineDerivOpCLM_eq + theorem SchwartzMap.lineDerivOp_apply + theorem SchwartzMap.lineDerivOp_apply_eq_fderiv - def SchwartzMap.pderivCLM - theorem SchwartzMap.pderivCLM_apply - theorem SchwartzMap.pderivCLM_eq_lineDeriv 2025-12-02 18:14:40 2ad0387 chore: golf using `simpa` (#32351) ESTIMATED CHANGES Modified Mathlib/Order/Filter/Pointwise.lean Modified Mathlib/RingTheory/Localization/Finiteness.lean Modified Mathlib/RingTheory/Polynomial/Basic.lean Modified Mathlib/RingTheory/RingHom/Finite.lean Modified Mathlib/RingTheory/Valuation/ValuativeRel/Basic.lean Modified Mathlib/Topology/VectorBundle/Basic.lean 2025-12-02 17:23:03 1d4d380 chore: golf using `simpa` (#32349) Trace profiling results (shown if ≥10 ms before or after): * `CharP.ringChar_ne_one`: <10 ms before, <10 ms after 🎉 * `IsUltrametricDist.isNonarchimedean_nnnorm`: 30 ms before, <10 ms after 🎉 * `SimpleGraph.sdiff_compl_neighborFinset_inter_eq`: <10 ms before, 12 ms after * `List.get_eq_get_rotate`: <10 ms before, <10 ms after 🎉 * `MeasureTheory.IsSetRing.finsetSup_mem`: 15 ms before, 27 ms after This golfing PR is batched under the following guidelines: * Up to 5 changed files per PR * Up to 25 changed declarations per PR * Up to 100 changed lines per PR ESTIMATED CHANGES Modified Mathlib/Algebra/CharP/Defs.lean Modified Mathlib/Analysis/Normed/Group/Ultra.lean Modified Mathlib/Combinatorics/SimpleGraph/StronglyRegular.lean Modified Mathlib/Data/List/Rotate.lean Modified Mathlib/MeasureTheory/SetSemiring.lean 2025-12-02 17:23:01 dca5861 feat: properties of sub-Gaussian random variables (#31550) Add several simple lemmas, and the fact that for `X, Y` two independent sub-Gaussian random variables such that `μ[X] ≥ μ[Y]`, the probability that `X ≤ Y` is bounded by an exponential function of `(μ[X] - μ[Y])^2`. From the LeanBandits project. ESTIMATED CHANGES Modified Mathlib/Probability/Moments/Basic.lean + theorem ProbabilityTheory.mgf_const_mul Modified Mathlib/Probability/Moments/IntegrableExpMul.lean + theorem ProbabilityTheory.integrable_of_mem_interior_integrableExpSet Modified Mathlib/Probability/Moments/SubGaussian.lean + theorem ProbabilityTheory.HasSubgaussianMGF.congr_identDistrib + theorem ProbabilityTheory.HasSubgaussianMGF.id_map_iff + theorem ProbabilityTheory.HasSubgaussianMGF.integrable + theorem ProbabilityTheory.HasSubgaussianMGF.integrableExpSet_eq_univ + theorem ProbabilityTheory.HasSubgaussianMGF.measureReal_le_le_exp + theorem ProbabilityTheory.HasSubgaussianMGF.memLp + theorem ProbabilityTheory.HasSubgaussianMGF.sub_of_indepFun + theorem ProbabilityTheory.Kernel.HasSubgaussianMGF.id_map_iff 2025-12-02 17:09:05 e5aa51a chore(Analysis): rename `℘` to `weierstrassP` (#32354) ESTIMATED CHANGES Modified Mathlib/Analysis/SpecialFunctions/Elliptic/Weierstrass.lean + theorem PeriodPair.differentiableOn_weierstrassP + theorem PeriodPair.differentiableOn_weierstrassPExcept - theorem PeriodPair.differentiableOn_℘ - theorem PeriodPair.differentiableOn_℘Except + theorem PeriodPair.hasSumLocallyUniformly_weierstrassP + theorem PeriodPair.hasSumLocallyUniformly_weierstrassPExcept - theorem PeriodPair.hasSumLocallyUniformly_℘ - theorem PeriodPair.hasSumLocallyUniformly_℘Except + theorem PeriodPair.hasSum_weierstrassP + theorem PeriodPair.hasSum_weierstrassPExcept - theorem PeriodPair.hasSum_℘ - theorem PeriodPair.hasSum_℘Except + def PeriodPair.weierstrassP + def PeriodPair.weierstrassPExcept + theorem PeriodPair.weierstrassPExcept_add + theorem PeriodPair.weierstrassPExcept_def + theorem PeriodPair.weierstrassPExcept_neg + theorem PeriodPair.weierstrassPExcept_of_notMem + theorem PeriodPair.weierstrassP_bound + theorem PeriodPair.weierstrassP_neg - def PeriodPair.℘ - def PeriodPair.℘Except - theorem PeriodPair.℘Except_add - theorem PeriodPair.℘Except_def - theorem PeriodPair.℘Except_neg - theorem PeriodPair.℘Except_of_notMem - theorem PeriodPair.℘_bound - theorem PeriodPair.℘_neg 2025-12-02 16:24:49 1472a11 chore: deprecate Algebra.id.smul_eq_mul (#32346) `smul_eq_mul` is more general, is defined earlier, and has a shorter name. ESTIMATED CHANGES Modified Archive/Wiedijk100Theorems/FriendshipGraphs.lean Modified Mathlib/Algebra/Algebra/Defs.lean Modified Mathlib/Algebra/Algebra/Spectrum/Basic.lean Modified Mathlib/Algebra/Module/PID.lean Modified Mathlib/Analysis/Asymptotics/SpecificAsymptotics.lean Modified Mathlib/Analysis/Calculus/BumpFunction/FiniteDimension.lean Modified Mathlib/Analysis/Calculus/FormalMultilinearSeries.lean Modified Mathlib/Analysis/Calculus/LagrangeMultipliers.lean Modified Mathlib/Analysis/Complex/RemovableSingularity.lean Modified Mathlib/Analysis/Convex/SpecificFunctions/Basic.lean Modified Mathlib/Analysis/Convolution.lean Modified Mathlib/Analysis/InnerProductSpace/Dual.lean Modified Mathlib/Analysis/InnerProductSpace/TwoDim.lean Modified Mathlib/Analysis/LocallyConvex/Polar.lean Modified Mathlib/Analysis/LocallyConvex/Separation.lean Modified Mathlib/Analysis/Normed/Module/HahnBanach.lean Modified Mathlib/Analysis/SpecialFunctions/Gaussian/FourierTransform.lean Modified Mathlib/Analysis/SpecialFunctions/Integrability/Basic.lean Modified Mathlib/Analysis/SpecialFunctions/Pow/Deriv.lean Modified Mathlib/Combinatorics/Enumerative/IncidenceAlgebra.lean Modified Mathlib/LinearAlgebra/Contraction.lean Modified Mathlib/LinearAlgebra/Determinant.lean Modified Mathlib/LinearAlgebra/Matrix/ToLin.lean Modified Mathlib/LinearAlgebra/PiTensorProduct.lean Modified Mathlib/LinearAlgebra/Trace.lean Modified Mathlib/MeasureTheory/Function/ConditionalExpectation/Real.lean Modified Mathlib/MeasureTheory/Integral/Bochner/Set.lean Modified Mathlib/MeasureTheory/Integral/CircleIntegral.lean Modified Mathlib/MeasureTheory/Integral/FinMeasAdditive.lean Modified Mathlib/MeasureTheory/Integral/Layercake.lean Modified Mathlib/MeasureTheory/Measure/Haar/OfBasis.lean Modified Mathlib/MeasureTheory/Measure/Lebesgue/Basic.lean Modified Mathlib/MeasureTheory/Measure/Lebesgue/EqHaar.lean Modified Mathlib/MeasureTheory/Measure/ProbabilityMeasure.lean Modified Mathlib/NumberTheory/NumberField/CanonicalEmbedding/Basic.lean Modified Mathlib/NumberTheory/Transcendental/Liouville/LiouvilleWith.lean Modified Mathlib/NumberTheory/WellApproximable.lean Modified Mathlib/Probability/BorelCantelli.lean Modified Mathlib/Probability/Distributions/Uniform.lean Modified Mathlib/Probability/StrongLaw.lean Modified Mathlib/RingTheory/AdicCompletion/Algebra.lean Modified Mathlib/RingTheory/AdicCompletion/AsTensorProduct.lean Modified Mathlib/RingTheory/AdicCompletion/Basic.lean Modified Mathlib/RingTheory/Adjoin/PowerBasis.lean Modified Mathlib/RingTheory/Conductor.lean Modified Mathlib/RingTheory/DedekindDomain/Different.lean Modified Mathlib/RingTheory/Derivation/Lie.lean Modified Mathlib/RingTheory/DividedPowers/Basic.lean Modified Mathlib/RingTheory/DividedPowers/SubDPIdeal.lean Modified Mathlib/RingTheory/HahnSeries/Summable.lean Modified Mathlib/RingTheory/Ideal/Cotangent.lean Modified Mathlib/RingTheory/MvPolynomial/Homogeneous.lean Modified Mathlib/RingTheory/MvPowerSeries/Basic.lean Modified Mathlib/RingTheory/Nullstellensatz.lean Modified Mathlib/RingTheory/Polynomial/Bernstein.lean Modified Mathlib/RingTheory/Trace/Basic.lean Modified Mathlib/RingTheory/WittVector/Isocrystal.lean Modified Mathlib/Topology/Algebra/Module/CharacterSpace.lean Modified Mathlib/Topology/ContinuousMap/Algebra.lean Modified Mathlib/Topology/ContinuousMap/StoneWeierstrass.lean Modified MathlibTest/instance_diamonds.lean 2025-12-02 15:26:49 f7cf1b3 feat(Topology): IsCompletelyPseudoMetrizable (#31235) Introduce the notion of IsCompletelyPseudoMetrizable. The main motivation is to prove the first Baire theorem for a completely pseudometrizable space. Zulip discussion: https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/First.20Baire.20theorem ESTIMATED CHANGES Modified Mathlib/Topology/Baire/CompleteMetrizable.lean Modified Mathlib/Topology/MetricSpace/Isometry.lean +/- theorem Topology.IsEmbedding.to_isometry Modified Mathlib/Topology/Metrizable/CompletelyMetrizable.lean + theorem IsClosed.isCompletelyPseudoMetrizableSpace + theorem TopologicalSpace.IsCompletelyMetrizableSpace_of_isCompletelyPseudoMetrizableSpace + theorem TopologicalSpace.complete_completelyPseudoMetrizableMetric + def TopologicalSpace.upgradeIsCompletelyPseudoMetrizable + theorem Topology.IsClosedEmbedding.IsCompletelyPseudoMetrizableSpace 2025-12-02 15:26:46 656d9cd feat(Bicategory/Product): add products of bicategories (#31169) In this PR the cartesian product of bicategories is added. I also partially revert, only for products, a previous change which removed the simps projection `_Hom` from `CategoryStruct`. The reason for this is that simp is no longer able to apply lemmas like `(𝟙 X).1 = 𝟙 X.1` due to defeq abuse of the notation `.1` for homomorphisms in this category. The solution to this would be to add a type-alias for `Hom` in case of products, however I am not convinced this is worth it, as we would lose the notation `(𝟙 X).1` which is heavily used in mathlib and would take ages to replace everywhere. What is lost from including `_Hom` as a simp lemma is that after application, simp can no longer know that it is the `Hom` type in some category. However since the product is such a simple structure, simp should be able to easily recover any such results after projection to the two factors. Therefore I believe not much is lost in this specific case. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Bicategory/Product.lean + def CategoryTheory.Bicategory.Prod.fst + def CategoryTheory.Bicategory.Prod.sectL + def CategoryTheory.Bicategory.Prod.sectR + def CategoryTheory.Bicategory.Prod.snd + def CategoryTheory.Bicategory.Prod.swap Modified Mathlib/CategoryTheory/Products/Basic.lean 2025-12-02 14:25:12 7b4930f chore(Order/RelClasses): use `@[to_dual]` (#32090) This PR tags `WellFoundedLT` and `WellFoundedGT` with `@[to_dual]`. It also improves the name guessing so that these names are translated into eachother. The automatically generated form doesn't use `GE.ge` or `GT.gt`, but instead swaps the arguments of `LE.le` and `LT.lt`. Arguably, this is an improvement. ESTIMATED CHANGES Modified Mathlib/Data/Finset/Lattice/Fold.lean Modified Mathlib/Order/RelClasses.lean - theorem WellFoundedGT.apply - def WellFoundedGT.fix - theorem WellFoundedGT.fix_eq - theorem WellFoundedGT.induction - def WellFoundedGT.toWellFoundedRelation - theorem transitive_ge - theorem transitive_gt - theorem wellFoundedLT_dual_iff - theorem wellFounded_gt Modified Mathlib/RingTheory/DedekindDomain/Ideal/Basic.lean Modified Mathlib/Tactic/Translate/GuessName.lean Modified Mathlib/Tactic/Translate/ToDual.lean +/- def Mathlib.Tactic.ToDual.abbreviationDict 2025-12-02 14:25:10 30dfca1 feat(AlgebraicTopology/Quasicategory): define the homotopy category of a 2-truncated quasicategory (#31630) The homotopy category `HomotopyCategory₂ A` of a 2-truncated quasicategory `A` has: * objects given by the vertices of `A` * morphisms given by (left) homotopy classes of edges between two vertices. From: https://github.com/emilyriehl/infinity-cosmos ESTIMATED CHANGES Modified Mathlib/AlgebraicTopology/Quasicategory/TwoTruncated.lean + theorem SSet.Truncated.Edge.CompStruct.comp_unique + theorem SSet.Truncated.Edge.CompStruct.homotopyCategory₂_fac + theorem SSet.Truncated.Edge.CompStruct.nonempty_iff + theorem SSet.Truncated.HomotopicL.congr_homotopyCategory₂HomMk + theorem SSet.Truncated.HomotopicR.congr_homotopyCategory₂HomMk + def SSet.Truncated.HomotopyCategory₂.Hom + def SSet.Truncated.HomotopyCategory₂.homMk + theorem SSet.Truncated.HomotopyCategory₂.homMk_id + theorem SSet.Truncated.HomotopyCategory₂.homMk_surjective + theorem SSet.Truncated.HomotopyCategory₂.mk_surjective + structure SSet.Truncated.HomotopyCategory₂ 2025-12-02 14:08:25 a746252 feat: InfiniteGalois.mem_range_algebraMap_iff_fixed (#32338) Analogous to `IsGalois.mem_range_algebraMap_iff_fixed` but without the finite-dimensionality assumption. ESTIMATED CHANGES Modified Mathlib/FieldTheory/Galois/Basic.lean Modified Mathlib/FieldTheory/Galois/Infinite.lean + theorem InfiniteGalois.mem_range_algebraMap_iff_fixed 2025-12-02 12:55:04 e3c47d8 feat(grw): support `grw (transparency := default)` (#32315) This PR modifies the `grw` implementation so that it supports `erw`-like behaviour. I haven't added a separate `egrw` tactic (because I think the name gets a bit ridiculous), instead it should be used as `grw (transparency := default)`. ESTIMATED CHANGES Modified Mathlib/Tactic/GRewrite/Core.lean Modified Mathlib/Tactic/GRewrite/Elab.lean Modified MathlibTest/GRewrite.lean + def double 2025-12-02 12:55:03 a2f9dca chore(Order/Basic): use `@[to_dual]` (#31903) This PR uses `@[to_dual]` in the rest of `Mathlib.Order.Basic`. I noticed that it was annoying to have to manually specify the reorder argument when it was very obvious what it should be, when using `to_dual self`. So, I created #31902 to do this automatically. `Eq.trans_ge` is not what the lemma name would make me think it is. So for now I've left it and similar lemmas without a tag, to avoid unnecessarily creating new lemmas. There are some lemmas like `Function.Injective.linearOrder` that have a hypothesis of the form `∀ {x y}, f x ≤ f y ↔ x ≤ y`. In order to dualize this, we need to swap `x` and `y`, but it is not yet possible to reorder arguments of arguments. ESTIMATED CHANGES Modified Mathlib/Order/Basic.lean + theorem DenselyOrdered.dense' - theorem PUnit.min_eq +/- theorem Prod.GCongr.mk_le_mk +/- theorem Prod.le_def +/- theorem Prod.mk_le_mk - theorem Prod.mk_le_swap - theorem Prod.mk_lt_swap +/- theorem Prod.swap_le_mk +/- theorem Prod.swap_le_swap +/- theorem Prod.swap_lt_mk +/- theorem eq_iff_eq_of_lt_iff_lt_of_gt_iff_gt - theorem eq_of_forall_gt_iff - theorem eq_of_le_of_forall_gt_imp_ge_of_dense +/- theorem exists_between - theorem forall_gt_iff_le - theorem forall_lt_imp_le_iff_le_of_dense - theorem le_of_forall_gt - theorem le_of_forall_lt_imp_le_of_dense - theorem max_rec' - theorem max_rec - theorem strongLT_of_le_of_strongLT - theorem update_le_iff - theorem update_le_self_iff - theorem update_lt_self_iff Modified Mathlib/Tactic/ToDual.lean 2025-12-02 12:41:32 1d4623c chore(deps): bump the actions-version-updates group across 2 directories with 6 updates (#32313) Bumps the actions-version-updates group with 2 updates in the /.github directory: [actions/checkout](https://github.com/actions/checkout) and [octokit/graphql-action](https://github.com/octokit/graphql-action). Bumps the actions-version-updates group with 6 updates in the /.github/workflows directory: | Package | From | To | | ESTIMATED CHANGES Modified .github/build.in.yml Modified .github/workflows/PR_summary.yml Modified .github/workflows/actionlint.yml Modified .github/workflows/add_label_from_diff.yaml Modified .github/workflows/auto_assign_reviewers.yaml Modified .github/workflows/bench_summary_comment.yml Modified .github/workflows/bors.yml Modified .github/workflows/build.yml Modified .github/workflows/build_fork.yml Modified .github/workflows/check_pr_titles.yaml Modified .github/workflows/daily.yml Modified .github/workflows/discover-lean-pr-testing.yml Modified .github/workflows/docker_build.yml Modified .github/workflows/latest_import.yml Modified .github/workflows/long_file_report.yml Modified .github/workflows/maintainer_bors.yml Modified .github/workflows/maintainer_bors_wf_run.yml Modified .github/workflows/maintainer_merge.yml Modified .github/workflows/maintainer_merge_wf_run.yml Modified .github/workflows/nightly-docgen.yml Modified .github/workflows/nightly-regression-report.yml Modified .github/workflows/nightly_bump_toolchain.yml Modified .github/workflows/nightly_detect_failure.yml Modified .github/workflows/nightly_merge_master.yml Modified .github/workflows/nolints.yml Modified .github/workflows/pre-commit.yml Modified .github/workflows/remove_deprecated_decls.yml Modified .github/workflows/technical_debt_metrics.yml Modified .github/workflows/update_dependencies.yml Modified .github/workflows/update_dependencies_zulip.yml Modified .github/workflows/weekly-lints.yml Modified .github/workflows/zulip_emoji_closed_pr.yaml Modified .github/workflows/zulip_emoji_labelling.yaml Modified .github/workflows/zulip_emoji_merge_delegate.yaml 2025-12-02 11:41:19 1199f1d chore: tidy various files (#32332) ESTIMATED CHANGES Modified Counterexamples/PeanoCurve.lean Modified Mathlib/Analysis/Calculus/Deriv/Basic.lean Modified Mathlib/Analysis/Calculus/Deriv/Comp.lean Modified Mathlib/Analysis/Calculus/Deriv/Mul.lean Modified Mathlib/Analysis/Calculus/Deriv/Polynomial.lean Modified Mathlib/Analysis/Calculus/Deriv/Slope.lean Modified Mathlib/Analysis/Calculus/Deriv/ZPow.lean Modified Mathlib/Analysis/Complex/ValueDistribution/CountingFunction.lean Modified Mathlib/Analysis/Distribution/FourierSchwartz.lean Modified Mathlib/Analysis/Distribution/TemperateGrowth.lean Modified Mathlib/Analysis/Real/OfDigits.lean Modified Mathlib/CategoryTheory/Limits/VanKampen.lean Modified Mathlib/CategoryTheory/Triangulated/Opposite/Pretriangulated.lean Modified Mathlib/Data/Int/GCD.lean Modified Mathlib/Data/List/SplitOn.lean Modified Mathlib/FieldTheory/PrimeField.lean Modified Mathlib/Geometry/Convex/Cone/TensorProduct.lean Modified Mathlib/Geometry/Manifold/MFDeriv/SpecificFunctions.lean Modified Mathlib/GroupTheory/Perm/ClosureSwap.lean Modified Mathlib/MeasureTheory/Function/ConditionalExpectation/Basic.lean Modified Mathlib/NumberTheory/ClassNumber/Finite.lean Modified Mathlib/NumberTheory/RamificationInertia/Basic.lean Modified Mathlib/NumberTheory/RamificationInertia/Galois.lean Modified Mathlib/Order/BourbakiWitt.lean Modified Mathlib/Probability/Process/Stopping.lean Modified Mathlib/RingTheory/PowerSeries/Trunc.lean Modified Mathlib/RingTheory/Valuation/ValuativeRel/Basic.lean Modified Mathlib/Topology/Algebra/IsUniformGroup/Defs.lean Modified Mathlib/Topology/Algebra/Module/PointwiseConvergence.lean Modified Mathlib/Topology/Semicontinuous.lean 2025-12-02 10:19:13 d822606 feat(RingTheory/MvPolynomial/MonomialOrder): add two lemmas about degree (#32336) It is used by and split from https://github.com/leanprover-community/mathlib4/pull/29203. ESTIMATED CHANGES Modified Mathlib/RingTheory/MvPolynomial/MonomialOrder.lean + theorem MonomialOrder.degree_mul' + theorem MonomialOrder.notMem_support_of_degree_lt 2025-12-02 09:53:36 d42cf40 refactor(Algebra/Polynomial/Splits): continue deprecation (#32325) This PR continues the deprecation in `Splits.lean` as we move over to the new API in `Factors.lean`. ESTIMATED CHANGES Modified Archive/Wiedijk100Theorems/AbelRuffini.lean Modified Mathlib/Algebra/Polynomial/Factors.lean + theorem Polynomial.eval_rootOfSplits Modified Mathlib/Algebra/Polynomial/Splits.lean - theorem Polynomial.degree_eq_card_roots' - theorem Polynomial.exists_root_of_splits' - theorem Polynomial.exists_root_of_splits - theorem Polynomial.map_rootOfSplits' - theorem Polynomial.map_rootOfSplits - theorem Polynomial.natDegree_eq_card_roots' - def Polynomial.rootOfSplits' - def Polynomial.rootOfSplits - theorem Polynomial.roots_ne_zero_of_splits' - theorem Polynomial.roots_ne_zero_of_splits Modified Mathlib/Analysis/Complex/Polynomial/GaussLucas.lean Modified Mathlib/FieldTheory/AbelRuffini.lean Modified Mathlib/FieldTheory/Extension.lean Modified Mathlib/FieldTheory/IsAlgClosed/Basic.lean Modified Mathlib/FieldTheory/IsSepClosed.lean Modified Mathlib/FieldTheory/KummerExtension.lean Modified Mathlib/FieldTheory/PolynomialGaloisGroup.lean Modified Mathlib/FieldTheory/SeparableDegree.lean Modified Mathlib/NumberTheory/Cyclotomic/Basic.lean Modified Mathlib/RingTheory/Adjoin/Field.lean Modified Mathlib/Topology/Algebra/Polynomial.lean 2025-12-02 09:39:58 b563145 doc(RingTheory/Perfectoid): fix documentations of B_dR (#32343) Changed `\(...\)` to `$...$`. ESTIMATED CHANGES Modified Mathlib/RingTheory/Perfectoid/BDeRham.lean Modified Mathlib/RingTheory/Perfectoid/FontaineTheta.lean 2025-12-02 09:01:09 657012c chore: golf `by_contra` (#32335) ESTIMATED CHANGES Modified Mathlib/Combinatorics/Matroid/Basic.lean Modified Mathlib/Topology/Connected/Clopen.lean Modified Mathlib/Topology/ShrinkingLemma.lean 2025-12-02 09:01:07 4aacc26 refactor(NumberTheory/ArithmeticFunction): split long file (#32304) Split the > 1500 line `Mathlib.NumberTheory.ArithmeticFunction` into several smaller pieces. ESTIMATED CHANGES Modified Archive/Wiedijk100Theorems/PerfectNumbers.lean Modified Mathlib.lean Modified Mathlib/Algebra/Order/Antidiag/Nat.lean Modified Mathlib/NumberTheory/ArithmeticFunction.lean - theorem ArithmeticFunction.IsMultiplicative.eq_iff_eq_on_prime_powers - theorem ArithmeticFunction.IsMultiplicative.eq_zero_of_squarefree_of_dvd_eq_zero - theorem ArithmeticFunction.IsMultiplicative.iff_ne_zero - theorem ArithmeticFunction.IsMultiplicative.intCast - theorem ArithmeticFunction.IsMultiplicative.lcm_apply_mul_gcd_apply - theorem ArithmeticFunction.IsMultiplicative.map_div_of_coprime - theorem ArithmeticFunction.IsMultiplicative.map_gcd - theorem ArithmeticFunction.IsMultiplicative.map_lcm - theorem ArithmeticFunction.IsMultiplicative.map_mul_of_coprime - theorem ArithmeticFunction.IsMultiplicative.map_one - theorem ArithmeticFunction.IsMultiplicative.map_prod - theorem ArithmeticFunction.IsMultiplicative.map_prod_of_prime - theorem ArithmeticFunction.IsMultiplicative.map_prod_of_subset_primeFactors - theorem ArithmeticFunction.IsMultiplicative.mul - theorem ArithmeticFunction.IsMultiplicative.multiplicative_factorization - theorem ArithmeticFunction.IsMultiplicative.natCast - theorem ArithmeticFunction.IsMultiplicative.pdiv - theorem ArithmeticFunction.IsMultiplicative.pmul - theorem ArithmeticFunction.IsMultiplicative.ppow - theorem ArithmeticFunction.IsMultiplicative.prodPrimeFactors - theorem ArithmeticFunction.IsMultiplicative.prodPrimeFactors_add_of_squarefree - theorem ArithmeticFunction.IsMultiplicative.prodPrimeFactors_one_add_of_squarefree - theorem ArithmeticFunction.IsMultiplicative.prodPrimeFactors_one_sub_of_squarefree - theorem ArithmeticFunction.IsMultiplicative.prod_primeFactors - def ArithmeticFunction.IsMultiplicative - theorem ArithmeticFunction.abs_moebius - theorem ArithmeticFunction.abs_moebius_eq_one_of_squarefree - theorem ArithmeticFunction.abs_moebius_le_one - theorem ArithmeticFunction.add_apply - def ArithmeticFunction.cardDistinctFactors - theorem ArithmeticFunction.cardDistinctFactors_apply - theorem ArithmeticFunction.cardDistinctFactors_apply_prime - theorem ArithmeticFunction.cardDistinctFactors_apply_prime_pow - theorem ArithmeticFunction.cardDistinctFactors_eq_cardFactors_iff_squarefree - theorem ArithmeticFunction.cardDistinctFactors_eq_one_iff - theorem ArithmeticFunction.cardDistinctFactors_eq_zero - theorem ArithmeticFunction.cardDistinctFactors_mul - theorem ArithmeticFunction.cardDistinctFactors_one - theorem ArithmeticFunction.cardDistinctFactors_pos - theorem ArithmeticFunction.cardDistinctFactors_prod - theorem ArithmeticFunction.cardDistinctFactors_zero - def ArithmeticFunction.cardFactors - theorem ArithmeticFunction.cardFactors_apply - theorem ArithmeticFunction.cardFactors_apply_prime - theorem ArithmeticFunction.cardFactors_apply_prime_pow - theorem ArithmeticFunction.cardFactors_eq_one_iff_prime - theorem ArithmeticFunction.cardFactors_eq_sum_factorization - theorem ArithmeticFunction.cardFactors_eq_zero_iff_eq_zero_or_one - theorem ArithmeticFunction.cardFactors_mul - theorem ArithmeticFunction.cardFactors_multiset_prod - theorem ArithmeticFunction.cardFactors_one - theorem ArithmeticFunction.cardFactors_pos_iff_one_lt - theorem ArithmeticFunction.cardFactors_pow - theorem ArithmeticFunction.cardFactors_zero - theorem ArithmeticFunction.coe_coe - theorem ArithmeticFunction.coe_inj - theorem ArithmeticFunction.coe_mk - theorem ArithmeticFunction.coe_moebius_mul_coe_zeta - theorem ArithmeticFunction.coe_mul_zeta_apply - theorem ArithmeticFunction.coe_zetaUnit - theorem ArithmeticFunction.coe_zeta_mul_apply - theorem ArithmeticFunction.coe_zeta_mul_coe_moebius - theorem ArithmeticFunction.coe_zeta_mul_comm - theorem ArithmeticFunction.coe_zeta_mul_moebius - theorem ArithmeticFunction.coe_zeta_smul_apply - theorem ArithmeticFunction.ext - def ArithmeticFunction.id - theorem ArithmeticFunction.id_apply - theorem ArithmeticFunction.intCoe_apply - theorem ArithmeticFunction.intCoe_int - theorem ArithmeticFunction.intCoe_mul - theorem ArithmeticFunction.intCoe_one - theorem ArithmeticFunction.inv_zetaUnit - theorem ArithmeticFunction.isMultiplicative_id - theorem ArithmeticFunction.isMultiplicative_moebius - theorem ArithmeticFunction.isMultiplicative_one - theorem ArithmeticFunction.isMultiplicative_pow - theorem ArithmeticFunction.isMultiplicative_sigma - theorem ArithmeticFunction.isMultiplicative_zeta - theorem ArithmeticFunction.map_zero - def ArithmeticFunction.moebius - theorem ArithmeticFunction.moebius_apply_isPrimePow_not_prime - theorem ArithmeticFunction.moebius_apply_of_squarefree - theorem ArithmeticFunction.moebius_apply_one - theorem ArithmeticFunction.moebius_apply_prime - theorem ArithmeticFunction.moebius_apply_prime_pow - theorem ArithmeticFunction.moebius_eq_or - theorem ArithmeticFunction.moebius_eq_zero_of_not_squarefree - theorem ArithmeticFunction.moebius_mul_coe_zeta - theorem ArithmeticFunction.moebius_ne_zero_iff_eq_or - theorem ArithmeticFunction.moebius_ne_zero_iff_squarefree - theorem ArithmeticFunction.moebius_sq - theorem ArithmeticFunction.moebius_sq_eq_one_of_squarefree - theorem ArithmeticFunction.mul_apply - theorem ArithmeticFunction.mul_apply_one - theorem ArithmeticFunction.mul_smul' - theorem ArithmeticFunction.mul_zeta_apply - theorem ArithmeticFunction.natCoe_apply - theorem ArithmeticFunction.natCoe_mul - theorem ArithmeticFunction.natCoe_nat - theorem ArithmeticFunction.natCoe_one - def ArithmeticFunction.natToArithmeticFunction - def ArithmeticFunction.ofInt - theorem ArithmeticFunction.one_apply - theorem ArithmeticFunction.one_apply_ne - theorem ArithmeticFunction.one_one - theorem ArithmeticFunction.one_smul' - def ArithmeticFunction.pdiv - theorem ArithmeticFunction.pdiv_apply - theorem ArithmeticFunction.pdiv_zeta - def ArithmeticFunction.pmul - theorem ArithmeticFunction.pmul_apply - theorem ArithmeticFunction.pmul_assoc - theorem ArithmeticFunction.pmul_comm - theorem ArithmeticFunction.pmul_zeta - def ArithmeticFunction.pow - theorem ArithmeticFunction.pow_apply - theorem ArithmeticFunction.pow_one_eq_id - theorem ArithmeticFunction.pow_zero_eq_zeta - def ArithmeticFunction.ppow - theorem ArithmeticFunction.ppow_apply - theorem ArithmeticFunction.ppow_one - theorem ArithmeticFunction.ppow_succ' - theorem ArithmeticFunction.ppow_succ - theorem ArithmeticFunction.ppow_zero - def ArithmeticFunction.prodPrimeFactors - theorem ArithmeticFunction.prodPrimeFactors_apply - theorem ArithmeticFunction.prod_eq_iff_prod_pow_moebius_eq - theorem ArithmeticFunction.prod_eq_iff_prod_pow_moebius_eq_of_nonzero - theorem ArithmeticFunction.prod_eq_iff_prod_pow_moebius_eq_on - theorem ArithmeticFunction.prod_eq_iff_prod_pow_moebius_eq_on_of_nonzero - def ArithmeticFunction.sigma - theorem ArithmeticFunction.sigma_apply - theorem ArithmeticFunction.sigma_apply_prime_pow - theorem ArithmeticFunction.sigma_eq_one_iff - theorem ArithmeticFunction.sigma_eq_prod_primeFactors_sum_range_factorization_pow_mul - theorem ArithmeticFunction.sigma_eq_sum_div - theorem ArithmeticFunction.sigma_eq_zero - theorem ArithmeticFunction.sigma_mono - theorem ArithmeticFunction.sigma_one - theorem ArithmeticFunction.sigma_one_apply - theorem ArithmeticFunction.sigma_one_apply_prime_pow - theorem ArithmeticFunction.sigma_pos - theorem ArithmeticFunction.sigma_pos_iff - theorem ArithmeticFunction.sigma_zero_apply - theorem ArithmeticFunction.sigma_zero_apply_prime_pow - theorem ArithmeticFunction.smul_apply - theorem ArithmeticFunction.sum_Ioc_mul_eq_sum_prod_filter - theorem ArithmeticFunction.sum_Ioc_mul_eq_sum_sum - theorem ArithmeticFunction.sum_Ioc_mul_zeta_eq_sum - theorem ArithmeticFunction.sum_Ioc_sigma0_eq_sum_div - theorem ArithmeticFunction.sum_Ioc_zeta - theorem ArithmeticFunction.sum_divisorsAntidiagonal_eq_sum_divisors - theorem ArithmeticFunction.sum_eq_iff_sum_mul_moebius_eq - theorem ArithmeticFunction.sum_eq_iff_sum_mul_moebius_eq_on - theorem ArithmeticFunction.sum_eq_iff_sum_smul_moebius_eq - theorem ArithmeticFunction.sum_eq_iff_sum_smul_moebius_eq_on' - theorem ArithmeticFunction.sum_eq_iff_sum_smul_moebius_eq_on - theorem ArithmeticFunction.toFun_eq - theorem ArithmeticFunction.zero_apply - def ArithmeticFunction.zeta - def ArithmeticFunction.zetaUnit - theorem ArithmeticFunction.zeta_apply - theorem ArithmeticFunction.zeta_apply_ne - theorem ArithmeticFunction.zeta_eq_zero - theorem ArithmeticFunction.zeta_mul_apply - theorem ArithmeticFunction.zeta_mul_comm - theorem ArithmeticFunction.zeta_mul_pow_eq_sigma - theorem ArithmeticFunction.zeta_pmul - theorem ArithmeticFunction.zeta_pos - def ArithmeticFunction - theorem Nat.Coprime.card_divisors_mul - theorem Nat.Coprime.sum_divisors_mul - theorem Nat.card_divisors - theorem Nat.divisors_card_eq_one_iff - theorem Nat.sum_divisors Added Mathlib/NumberTheory/ArithmeticFunction/Defs.lean + theorem ArithmeticFunction.IsMultiplicative.eq_iff_eq_on_prime_powers + theorem ArithmeticFunction.IsMultiplicative.eq_zero_of_squarefree_of_dvd_eq_zero + theorem ArithmeticFunction.IsMultiplicative.iff_ne_zero + theorem ArithmeticFunction.IsMultiplicative.intCast + theorem ArithmeticFunction.IsMultiplicative.lcm_apply_mul_gcd_apply + theorem ArithmeticFunction.IsMultiplicative.map_div_of_coprime + theorem ArithmeticFunction.IsMultiplicative.map_gcd + theorem ArithmeticFunction.IsMultiplicative.map_lcm + theorem ArithmeticFunction.IsMultiplicative.map_mul_of_coprime + theorem ArithmeticFunction.IsMultiplicative.map_one + theorem ArithmeticFunction.IsMultiplicative.map_prod + theorem ArithmeticFunction.IsMultiplicative.map_prod_of_prime + theorem ArithmeticFunction.IsMultiplicative.map_prod_of_subset_primeFactors + theorem ArithmeticFunction.IsMultiplicative.mul + theorem ArithmeticFunction.IsMultiplicative.multiplicative_factorization + theorem ArithmeticFunction.IsMultiplicative.natCast + theorem ArithmeticFunction.IsMultiplicative.prod_primeFactors + def ArithmeticFunction.IsMultiplicative + theorem ArithmeticFunction.add_apply + theorem ArithmeticFunction.coe_coe + theorem ArithmeticFunction.coe_inj + theorem ArithmeticFunction.coe_mk + theorem ArithmeticFunction.ext + theorem ArithmeticFunction.intCoe_apply + theorem ArithmeticFunction.intCoe_int + theorem ArithmeticFunction.intCoe_mul + theorem ArithmeticFunction.intCoe_one + theorem ArithmeticFunction.isMultiplicative_one + theorem ArithmeticFunction.map_zero + theorem ArithmeticFunction.mul_apply + theorem ArithmeticFunction.mul_apply_one + theorem ArithmeticFunction.mul_smul' + theorem ArithmeticFunction.natCoe_apply + theorem ArithmeticFunction.natCoe_mul + theorem ArithmeticFunction.natCoe_nat + theorem ArithmeticFunction.natCoe_one + def ArithmeticFunction.natToArithmeticFunction + def ArithmeticFunction.ofInt + theorem ArithmeticFunction.one_apply + theorem ArithmeticFunction.one_apply_ne + theorem ArithmeticFunction.one_one + theorem ArithmeticFunction.one_smul' + theorem ArithmeticFunction.smul_apply + theorem ArithmeticFunction.toFun_eq + theorem ArithmeticFunction.zero_apply + def ArithmeticFunction Added Mathlib/NumberTheory/ArithmeticFunction/Misc.lean + theorem ArithmeticFunction.IsMultiplicative.prodPrimeFactors + theorem ArithmeticFunction.IsMultiplicative.prodPrimeFactors_add_of_squarefree + def ArithmeticFunction.cardDistinctFactors + theorem ArithmeticFunction.cardDistinctFactors_apply + theorem ArithmeticFunction.cardDistinctFactors_apply_prime + theorem ArithmeticFunction.cardDistinctFactors_apply_prime_pow + theorem ArithmeticFunction.cardDistinctFactors_eq_cardFactors_iff_squarefree + theorem ArithmeticFunction.cardDistinctFactors_eq_one_iff + theorem ArithmeticFunction.cardDistinctFactors_eq_zero + theorem ArithmeticFunction.cardDistinctFactors_mul + theorem ArithmeticFunction.cardDistinctFactors_one + theorem ArithmeticFunction.cardDistinctFactors_pos + theorem ArithmeticFunction.cardDistinctFactors_prod + theorem ArithmeticFunction.cardDistinctFactors_zero + def ArithmeticFunction.cardFactors + theorem ArithmeticFunction.cardFactors_apply + theorem ArithmeticFunction.cardFactors_apply_prime + theorem ArithmeticFunction.cardFactors_apply_prime_pow + theorem ArithmeticFunction.cardFactors_eq_one_iff_prime + theorem ArithmeticFunction.cardFactors_eq_sum_factorization + theorem ArithmeticFunction.cardFactors_eq_zero_iff_eq_zero_or_one + theorem ArithmeticFunction.cardFactors_mul + theorem ArithmeticFunction.cardFactors_multiset_prod + theorem ArithmeticFunction.cardFactors_one + theorem ArithmeticFunction.cardFactors_pos_iff_one_lt + theorem ArithmeticFunction.cardFactors_pow + theorem ArithmeticFunction.cardFactors_zero + def ArithmeticFunction.id + theorem ArithmeticFunction.id_apply + theorem ArithmeticFunction.isMultiplicative_id + theorem ArithmeticFunction.isMultiplicative_pow + theorem ArithmeticFunction.isMultiplicative_sigma + def ArithmeticFunction.pow + theorem ArithmeticFunction.pow_apply + theorem ArithmeticFunction.pow_one_eq_id + theorem ArithmeticFunction.pow_zero_eq_zeta + def ArithmeticFunction.prodPrimeFactors + theorem ArithmeticFunction.prodPrimeFactors_apply + def ArithmeticFunction.sigma + theorem ArithmeticFunction.sigma_apply + theorem ArithmeticFunction.sigma_apply_prime_pow + theorem ArithmeticFunction.sigma_eq_one_iff + theorem ArithmeticFunction.sigma_eq_prod_primeFactors_sum_range_factorization_pow_mul + theorem ArithmeticFunction.sigma_eq_sum_div + theorem ArithmeticFunction.sigma_eq_zero + theorem ArithmeticFunction.sigma_mono + theorem ArithmeticFunction.sigma_one + theorem ArithmeticFunction.sigma_one_apply + theorem ArithmeticFunction.sigma_one_apply_prime_pow + theorem ArithmeticFunction.sigma_pos + theorem ArithmeticFunction.sigma_pos_iff + theorem ArithmeticFunction.sigma_zero_apply + theorem ArithmeticFunction.sigma_zero_apply_prime_pow + theorem ArithmeticFunction.sum_Ioc_mul_eq_sum_prod_filter + theorem ArithmeticFunction.sum_Ioc_mul_eq_sum_sum + theorem ArithmeticFunction.sum_Ioc_mul_zeta_eq_sum + theorem ArithmeticFunction.sum_Ioc_sigma0_eq_sum_div + theorem ArithmeticFunction.sum_Ioc_zeta + theorem ArithmeticFunction.zeta_mul_pow_eq_sigma + theorem Nat.Coprime.card_divisors_mul + theorem Nat.Coprime.sum_divisors_mul + theorem Nat.card_divisors + theorem Nat.divisors_card_eq_one_iff + theorem Nat.sum_divisors Added Mathlib/NumberTheory/ArithmeticFunction/Moebius.lean + theorem ArithmeticFunction.IsMultiplicative.prodPrimeFactors_one_add_of_squarefree + theorem ArithmeticFunction.IsMultiplicative.prodPrimeFactors_one_sub_of_squarefree + theorem ArithmeticFunction.abs_moebius + theorem ArithmeticFunction.abs_moebius_eq_one_of_squarefree + theorem ArithmeticFunction.abs_moebius_le_one + theorem ArithmeticFunction.coe_moebius_mul_coe_zeta + theorem ArithmeticFunction.coe_zetaUnit + theorem ArithmeticFunction.coe_zeta_mul_coe_moebius + theorem ArithmeticFunction.coe_zeta_mul_moebius + theorem ArithmeticFunction.inv_zetaUnit + theorem ArithmeticFunction.isMultiplicative_moebius + def ArithmeticFunction.moebius + theorem ArithmeticFunction.moebius_apply_isPrimePow_not_prime + theorem ArithmeticFunction.moebius_apply_of_squarefree + theorem ArithmeticFunction.moebius_apply_one + theorem ArithmeticFunction.moebius_apply_prime + theorem ArithmeticFunction.moebius_apply_prime_pow + theorem ArithmeticFunction.moebius_eq_or + theorem ArithmeticFunction.moebius_eq_zero_of_not_squarefree + theorem ArithmeticFunction.moebius_mul_coe_zeta + theorem ArithmeticFunction.moebius_ne_zero_iff_eq_or + theorem ArithmeticFunction.moebius_ne_zero_iff_squarefree + theorem ArithmeticFunction.moebius_sq + theorem ArithmeticFunction.moebius_sq_eq_one_of_squarefree + theorem ArithmeticFunction.prod_eq_iff_prod_pow_moebius_eq + theorem ArithmeticFunction.prod_eq_iff_prod_pow_moebius_eq_of_nonzero + theorem ArithmeticFunction.prod_eq_iff_prod_pow_moebius_eq_on + theorem ArithmeticFunction.prod_eq_iff_prod_pow_moebius_eq_on_of_nonzero + theorem ArithmeticFunction.sum_eq_iff_sum_mul_moebius_eq + theorem ArithmeticFunction.sum_eq_iff_sum_mul_moebius_eq_on + theorem ArithmeticFunction.sum_eq_iff_sum_smul_moebius_eq + theorem ArithmeticFunction.sum_eq_iff_sum_smul_moebius_eq_on' + theorem ArithmeticFunction.sum_eq_iff_sum_smul_moebius_eq_on + def ArithmeticFunction.zetaUnit Added Mathlib/NumberTheory/ArithmeticFunction/VonMangoldt.lean + theorem ArithmeticFunction.log_apply + theorem ArithmeticFunction.log_mul_moebius_eq_vonMangoldt + theorem ArithmeticFunction.moebius_mul_log_eq_vonMangoldt + theorem ArithmeticFunction.sum_moebius_mul_log_eq + theorem ArithmeticFunction.vonMangoldt_apply + theorem ArithmeticFunction.vonMangoldt_apply_one + theorem ArithmeticFunction.vonMangoldt_apply_pow + theorem ArithmeticFunction.vonMangoldt_apply_prime + theorem ArithmeticFunction.vonMangoldt_eq_zero_iff + theorem ArithmeticFunction.vonMangoldt_le_log + theorem ArithmeticFunction.vonMangoldt_mul_zeta + theorem ArithmeticFunction.vonMangoldt_ne_zero_iff + theorem ArithmeticFunction.vonMangoldt_nonneg + theorem ArithmeticFunction.vonMangoldt_pos_iff + theorem ArithmeticFunction.vonMangoldt_sum + theorem ArithmeticFunction.zeta_mul_vonMangoldt Added Mathlib/NumberTheory/ArithmeticFunction/Zeta.lean + theorem ArithmeticFunction.IsMultiplicative.pdiv + theorem ArithmeticFunction.IsMultiplicative.pmul + theorem ArithmeticFunction.IsMultiplicative.ppow + theorem ArithmeticFunction.coe_mul_zeta_apply + theorem ArithmeticFunction.coe_zeta_mul_apply + theorem ArithmeticFunction.coe_zeta_mul_comm + theorem ArithmeticFunction.coe_zeta_smul_apply + theorem ArithmeticFunction.isMultiplicative_zeta + theorem ArithmeticFunction.mul_zeta_apply + def ArithmeticFunction.pdiv + theorem ArithmeticFunction.pdiv_apply + theorem ArithmeticFunction.pdiv_zeta + def ArithmeticFunction.pmul + theorem ArithmeticFunction.pmul_apply + theorem ArithmeticFunction.pmul_assoc + theorem ArithmeticFunction.pmul_comm + theorem ArithmeticFunction.pmul_zeta + def ArithmeticFunction.ppow + theorem ArithmeticFunction.ppow_apply + theorem ArithmeticFunction.ppow_one + theorem ArithmeticFunction.ppow_succ' + theorem ArithmeticFunction.ppow_succ + theorem ArithmeticFunction.ppow_zero + theorem ArithmeticFunction.sum_divisorsAntidiagonal_eq_sum_divisors + def ArithmeticFunction.zeta + theorem ArithmeticFunction.zeta_apply + theorem ArithmeticFunction.zeta_apply_ne + theorem ArithmeticFunction.zeta_eq_zero + theorem ArithmeticFunction.zeta_mul_apply + theorem ArithmeticFunction.zeta_mul_comm + theorem ArithmeticFunction.zeta_pmul + theorem ArithmeticFunction.zeta_pos Modified Mathlib/NumberTheory/EulerProduct/Basic.lean Modified Mathlib/NumberTheory/LSeries/Convolution.lean Modified Mathlib/NumberTheory/LSeries/Dirichlet.lean Modified Mathlib/NumberTheory/LSeries/Positivity.lean Modified Mathlib/NumberTheory/SelbergSieve.lean Modified Mathlib/NumberTheory/TsumDivsorsAntidiagonal.lean Modified Mathlib/NumberTheory/VonMangoldt.lean - theorem ArithmeticFunction.log_apply - theorem ArithmeticFunction.log_mul_moebius_eq_vonMangoldt - theorem ArithmeticFunction.moebius_mul_log_eq_vonMangoldt - theorem ArithmeticFunction.sum_moebius_mul_log_eq - theorem ArithmeticFunction.vonMangoldt_apply - theorem ArithmeticFunction.vonMangoldt_apply_one - theorem ArithmeticFunction.vonMangoldt_apply_pow - theorem ArithmeticFunction.vonMangoldt_apply_prime - theorem ArithmeticFunction.vonMangoldt_eq_zero_iff - theorem ArithmeticFunction.vonMangoldt_le_log - theorem ArithmeticFunction.vonMangoldt_mul_zeta - theorem ArithmeticFunction.vonMangoldt_ne_zero_iff - theorem ArithmeticFunction.vonMangoldt_nonneg - theorem ArithmeticFunction.vonMangoldt_pos_iff - theorem ArithmeticFunction.vonMangoldt_sum - theorem ArithmeticFunction.zeta_mul_vonMangoldt Modified Mathlib/RingTheory/Polynomial/Cyclotomic/Basic.lean Modified MathlibTest/ArithMult.lean Modified MathlibTest/positivity.lean 2025-12-02 08:46:18 b106e92 chore: avoid unbracketed `by` within `suffices` (#32342) This is a preparatory PR which will allow us to increase the precedence of the `by` notation. The issue is that the `suffices A by ...`/`suffices A from ...` notation can get confused, if `A` contains an unbracketed `by`. ESTIMATED CHANGES Modified Mathlib/SetTheory/Lists.lean 2025-12-02 07:28:41 90f5d6d refactor(CategoryTheory): promote `IsRegularMono`/`Epi` from `abbrev` to `class` and add some API (#32192) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Adhesive.lean Modified Mathlib/CategoryTheory/Adjunction/Lifting/Left.lean Modified Mathlib/CategoryTheory/Limits/Shapes/KernelPair.lean Modified Mathlib/CategoryTheory/Limits/Shapes/NormalMono/Basic.lean Modified Mathlib/CategoryTheory/Limits/Shapes/RegularMono.lean + def CategoryTheory.IsRegularEpi.W + def CategoryTheory.IsRegularEpi.desc + theorem CategoryTheory.IsRegularEpi.fac + def CategoryTheory.IsRegularEpi.getStruct + def CategoryTheory.IsRegularEpi.isColimit + def CategoryTheory.IsRegularEpi.left + def CategoryTheory.IsRegularEpi.right + theorem CategoryTheory.IsRegularEpi.uniq + theorem CategoryTheory.IsRegularEpi.w + def CategoryTheory.IsRegularMono.Z + theorem CategoryTheory.IsRegularMono.fac + def CategoryTheory.IsRegularMono.getStruct + def CategoryTheory.IsRegularMono.isLimit + def CategoryTheory.IsRegularMono.left + def CategoryTheory.IsRegularMono.lift + def CategoryTheory.IsRegularMono.right + theorem CategoryTheory.IsRegularMono.uniq + theorem CategoryTheory.IsRegularMono.w +/- theorem CategoryTheory.isRegularEpi_of_regularEpi +/- theorem CategoryTheory.isRegularMono_of_regularMono + def CategoryTheory.regularEpiOfEffectiveEpi - def CategoryTheory.regularEpiOfIsRegularEpi + def CategoryTheory.regularEpiOfKernelPair - def CategoryTheory.regularMonoOfIsRegularMono Modified Mathlib/CategoryTheory/Topos/Classifier.lean Modified Mathlib/Topology/Category/TopCat/EffectiveEpi.lean 2025-12-02 05:38:03 7ede2f6 feat: colex order on (dependent) finsupps (#30482) ESTIMATED CHANGES Modified Mathlib/Data/DFinsupp/Lex.lean + theorem DFinsupp.Colex.le_iff_of_unique + theorem DFinsupp.Colex.lt_iff + theorem DFinsupp.colex_lt_iff_of_unique + theorem DFinsupp.toColex_monotone Modified Mathlib/Order/Synonym.lean 2025-12-02 04:52:14 84601a7 chore(RingTheory/LocalRing): fix problematic instance (#27445) We shouldn't use `RingHom.toAlgebra` for `Algebra (ResidueField R) (ResidueField S)`. The smul should come from the smul field in `Algebra`. - Redefined `Algebra (ResidueField R) (ResidueField S)` via `Ideal.Quotient.algebraOfLiesOver`, and provided missing `IsScalarTower` instances for it. - Added missing `IsScalarTower` for `Localization.AtPrime`. - Removed `Algebra p.ResidueField q.ResidueField` and the `IsScalarTower` instances coming with it (because they are `inferInstance` now) ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Archimedean/Submonoid.lean Modified Mathlib/RingTheory/LocalRing/ResidueField/Basic.lean + theorem IsLocalRing.ResidueField.algebraMap_residue Modified Mathlib/RingTheory/LocalRing/ResidueField/Ideal.lean Modified Mathlib/RingTheory/LocalRing/ResidueField/Instances.lean Modified Mathlib/RingTheory/Localization/AtPrime/Basic.lean Modified Mathlib/RingTheory/Unramified/LocalRing.lean 2025-12-01 22:59:17 91b78e4 feat(OpenPartialHomeomorph): add missing `simp` lemmas (#32310) I found missing lemmas about `restrOpen` while working on https://github.com/urkud/SardMoreira. ESTIMATED CHANGES Modified Mathlib/Topology/OpenPartialHomeomorph.lean + theorem OpenPartialHomeomorph.coe_ofContinuousOpen + theorem OpenPartialHomeomorph.coe_ofContinuousOpenRestrict + theorem OpenPartialHomeomorph.coe_ofContinuousOpenRestrict_symm + theorem OpenPartialHomeomorph.coe_ofContinuousOpen_symm + theorem OpenPartialHomeomorph.coe_restrOpen + theorem OpenPartialHomeomorph.coe_restrOpen_symm 2025-12-01 22:59:15 804c757 doc: fix latex formatting (#32299) Lots of docstrings use either `\( ... \)` or `$$ ... $$` for inline formulae; convert these to unicode math where possible, and otherwise to `$ ... $`. ESTIMATED CHANGES Modified Mathlib/Algebra/Category/FGModuleCat/EssentiallySmall.lean Modified Mathlib/Analysis/Calculus/DifferentialForm/Basic.lean Modified Mathlib/Analysis/Calculus/Implicit.lean Modified Mathlib/Analysis/Calculus/Taylor.lean Modified Mathlib/Analysis/Distribution/SchwartzSpace.lean Modified Mathlib/Analysis/Normed/Module/Alternating/Uncurry/Fin.lean Modified Mathlib/Analysis/Normed/Operator/Mul.lean Modified Mathlib/Analysis/ODE/Gronwall.lean Modified Mathlib/Analysis/Real/Pi/Chudnovsky.lean Modified Mathlib/Analysis/SpecialFunctions/OrdinaryHypergeometric.lean Modified Mathlib/CategoryTheory/InducedCategory.lean Modified Mathlib/CategoryTheory/Sites/Descent/IsPrestack.lean Modified Mathlib/Combinatorics/Additive/CauchyDavenport.lean Modified Mathlib/GroupTheory/CosetCover.lean Modified Mathlib/GroupTheory/GroupAction/DomAct/Basic.lean Modified Mathlib/GroupTheory/Order/Min.lean Modified Mathlib/LinearAlgebra/Alternating/Uncurry/Fin.lean Modified Mathlib/MeasureTheory/Integral/CurveIntegral/Poincare.lean Modified Mathlib/NumberTheory/ArithmeticFunction.lean Modified Mathlib/NumberTheory/Bernoulli.lean Modified Mathlib/NumberTheory/BernoulliPolynomials.lean 2025-12-01 22:59:14 1ed7dfb doc: fix a/an articles (3/4) (#32292) Found and fixed by a script (due to Codex). Then manually reviewed. ESTIMATED CHANGES Modified Mathlib/GroupTheory/SemidirectProduct.lean Modified Mathlib/GroupTheory/Submonoid/Center.lean Modified Mathlib/Lean/Meta/RefinedDiscrTree.lean Modified Mathlib/LinearAlgebra/Basis/Submodule.lean Modified Mathlib/LinearAlgebra/Dual/Lemmas.lean Modified Mathlib/LinearAlgebra/Finsupp/Defs.lean Modified Mathlib/LinearAlgebra/PiTensorProduct.lean Modified Mathlib/LinearAlgebra/Projection.lean Modified Mathlib/LinearAlgebra/SymmetricAlgebra/Basic.lean Modified Mathlib/MeasureTheory/Function/LocallyIntegrable.lean Modified Mathlib/MeasureTheory/Group/Measure.lean Modified Mathlib/MeasureTheory/Measure/Haar/Basic.lean Modified Mathlib/MeasureTheory/Measure/Portmanteau.lean Modified Mathlib/MeasureTheory/Measure/Prod.lean Modified Mathlib/ModelTheory/Arithmetic/Presburger/Semilinear/Basic.lean Modified Mathlib/ModelTheory/Arithmetic/Presburger/Semilinear/Defs.lean Modified Mathlib/NumberTheory/LSeries/HurwitzZetaEven.lean Modified Mathlib/NumberTheory/ModularForms/EisensteinSeries/Defs.lean Modified Mathlib/NumberTheory/NumberField/CanonicalEmbedding/Basic.lean Modified Mathlib/NumberTheory/NumberField/Discriminant/Basic.lean Modified Mathlib/NumberTheory/NumberField/InfinitePlace/Ramification.lean Modified Mathlib/Order/DirectedInverseSystem.lean Modified Mathlib/Order/Ideal.lean Modified Mathlib/Order/KrullDimension.lean Modified Mathlib/Order/UpperLower/Closure.lean Modified Mathlib/Probability/Distributions/Exponential.lean Modified Mathlib/Probability/Kernel/Disintegration/Unique.lean Modified Mathlib/RingTheory/AdjoinRoot.lean Modified Mathlib/RingTheory/AlgebraicIndependent/Basic.lean Modified Mathlib/RingTheory/Bialgebra/Equiv.lean Modified Mathlib/RingTheory/Coalgebra/Equiv.lean Modified Mathlib/RingTheory/Ideal/GoingUp.lean Modified Mathlib/RingTheory/Idempotents.lean Modified Mathlib/RingTheory/LocalRing/ResidueField/Ideal.lean Modified Mathlib/RingTheory/Localization/Away/Basic.lean Modified Mathlib/RingTheory/Radical.lean Modified Mathlib/RingTheory/Valuation/Archimedean.lean Modified Mathlib/Tactic/CC.lean 2025-12-01 22:59:12 0e9e4c0 feat(SimpleGraph/Walks/Operations): golf `ext_support` using `darts_injective` and `map_{fst,snd}_darts` (#32106) ESTIMATED CHANGES Modified Mathlib/Combinatorics/SimpleGraph/Walks/Operations.lean +/- theorem SimpleGraph.Walk.ext_support Modified Mathlib/Data/List/Zip.lean + theorem List.rightInverse_unzip_zip 2025-12-01 22:59:07 16c96d1 feat(Combinatorics/SimpleGraph): lemmas about the support of cycles (#31758) ESTIMATED CHANGES Modified Mathlib/Combinatorics/SimpleGraph/Connectivity/WalkDecomp.lean + theorem SimpleGraph.Walk.mem_support_rotate_iff Modified Mathlib/Combinatorics/SimpleGraph/Paths.lean + theorem SimpleGraph.Walk.IsCycle.count_support + theorem SimpleGraph.Walk.IsCycle.count_support_of_mem 2025-12-01 22:59:05 b07e7ab feat(LinearAlgebra/Dual/BaseChange): base change of a linear form (on the Module.Dual) (#31162) Base change map for `Module.Dual`. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/DirectSum/Module.lean + theorem DirectSum.coe_congrAddEquiv + theorem DirectSum.coe_congrLinearEquiv - theorem DirectSum.coe_congr_addEquiv - theorem DirectSum.coe_congr_linearEquiv + def DirectSum.congrAddEquiv + def DirectSum.congrLinearEquiv + theorem DirectSum.congrLinearEquiv_toAddEquiv + theorem DirectSum.congrLinearEquiv_toLinearMap - def DirectSum.congr_addEquiv - def DirectSum.congr_linearEquiv - theorem DirectSum.congr_linearEquiv_toAddEquiv - theorem DirectSum.congr_linearEquiv_toLinearMap Modified Mathlib/Algebra/Module/Equiv/Basic.lean +/- def LinearEquiv.congrLeft Modified Mathlib/LinearAlgebra/Basis/Defs.lean + theorem Module.Basis.constr_symm_apply Added Mathlib/LinearAlgebra/Dual/BaseChange.lean + theorem IsBaseChange.dual + theorem IsBaseChange.toDualBaseChange_tmul + theorem IsBaseChange.toDual_apply + theorem IsBaseChange.toDual_comp_apply + def Module.Dual.baseChange + theorem Module.Dual.baseChange_apply_tmul + theorem Module.Dual.baseChange_baseChange + def Module.Dual.congr Modified Mathlib/LinearAlgebra/TensorProduct/Tower.lean + theorem LinearMap.baseChange_baseChange Modified Mathlib/RingTheory/TensorProduct/IsBaseChangeHom.lean + theorem IsBaseChange.linearMapLeftRightHom_comp_apply Modified Mathlib/RingTheory/TensorProduct/IsBaseChangePi.lean 2025-12-01 21:50:44 2ddd611 doc: fix a/an articles (4/4) (#32293) Found and fixed by a script (due to Codex). Then manually reviewed. ESTIMATED CHANGES Modified Mathlib/Tactic/CC/Addition.lean Modified Mathlib/Tactic/DeriveEncodable.lean Modified Mathlib/Tactic/FieldSimp.lean Modified Mathlib/Tactic/GCongr/Core.lean Modified Mathlib/Tactic/Linarith/Frontend.lean Modified Mathlib/Tactic/TermCongr.lean Modified Mathlib/Topology/Algebra/ContinuousMonoidHom.lean Modified Mathlib/Topology/Algebra/Group/Quotient.lean Modified Mathlib/Topology/Algebra/InfiniteSum/GroupCompletion.lean Modified Mathlib/Topology/Algebra/Module/LinearMap.lean Modified Mathlib/Topology/Algebra/RestrictedProduct/Basic.lean Modified Mathlib/Topology/Algebra/UniformRing.lean Modified Mathlib/Topology/Convenient/GeneratedBy.lean Modified Mathlib/Topology/Homotopy/Equiv.lean Modified Mathlib/Topology/Maps/Proper/Basic.lean Modified Mathlib/Topology/Maps/Proper/UniversallyClosed.lean Modified Mathlib/Topology/Order/LowerUpperTopology.lean Modified Mathlib/Topology/VectorBundle/Riemannian.lean 2025-12-01 21:50:41 5fc7bcb refactor(RingTheory/Perfection): add `PreTilt.coeff` (#32248) In this PR, we separate `PreTilt.coeff` from `Perfection.coeff` to solve the abuse defeq problem between `PreTilt O p` and `Perfection (ModP O p) p`. ESTIMATED CHANGES Modified Mathlib/RingTheory/Perfection.lean + def PreTilt.coeff + theorem PreTilt.coeff_def - theorem PreTilt.coeff_frobenius_pow + theorem PreTilt.coeff_iterate_frobenius' + theorem PreTilt.coeff_iterate_frobenius +/- theorem PreTilt.coeff_nat_find_add_ne_zero + theorem PreTilt.coeff_pow_p +/- theorem PreTilt.valAux_eq Modified Mathlib/RingTheory/Perfectoid/FontaineTheta.lean Modified Mathlib/RingTheory/Perfectoid/Untilt.lean 2025-12-01 21:12:24 cfd0058 feat(Geometry/Euclidean/Circumcenter): `circumcenter_ne_point` (#32290) Add a lemma that the circumcenter of a simplex (with two or more vertices) does not equal one of its vertices. This uses `Simplex ℝ P (n + 1)` rather than `[NeZero n]` because `circumradius_pos` hasn't yet been converted to the syntactically more general form using `NeZero`. ESTIMATED CHANGES Modified Mathlib/Geometry/Euclidean/Circumcenter.lean + theorem Affine.Simplex.circumcenter_ne_point 2025-12-01 21:12:21 b728e14 doc: fix cases of "this " (#32286) Found and fixed with help from Codex. ESTIMATED CHANGES Modified Mathlib/Algebra/DirectSum/Internal.lean Modified Mathlib/Algebra/GradedMonoid.lean Modified Mathlib/Analysis/InnerProductSpace/Defs.lean Modified Mathlib/Analysis/LocallyConvex/Barrelled.lean Modified Mathlib/Analysis/Normed/Group/Constructions.lean Modified Mathlib/CategoryTheory/Limits/Shapes/End.lean Modified Mathlib/CategoryTheory/Sites/CompatibleSheafification.lean Modified Mathlib/Data/ZMod/IntUnitsPower.lean Modified Mathlib/Topology/Algebra/Monoid.lean 2025-12-01 21:12:17 6eabe6b chore: make FiniteAdeleRing a def rather than an abbrev (#32277) On current master `#synth CommRing (FiniteAdeleRing A K)` works fine but `#synth SMul (FiniteAdeleRing A K) (FiniteAdeleRing A K)` times out because typeclass inference can see through the abbrev and the first thing it tries is "if G acts on X_i for all i then G acts on the restricted product" and it goes off on a wild goose chase, quickly hitting dreaded stuff such as ` [] ✅️ apply @NormedAlgebra.toAlgebra to Algebra (FiniteAdeleRing A K) K ▶` , spending a long time failing on `Group (FiniteAdeleRing A K)` and so on. I claim that there is no need for typeclass inference to know that finite adele rings are actually restricted products; this is in some sense an implentation detail (the finite adele ring of a number field $K$ is just $K\otimes_{\mathbb{Z}}\widehat{\mathbb{Z}}$; the fact that we represent it as a restricted product is some sense a historical coincidence). Indeed, we have developed the theory of adeles and finite adeles a lot further in the FLT repo and there is only one place where we had an auxiliary restricted product of vector spaces and used typeclass inference to give a module structure over a finite adele ring; this was some internal object in a proof. ESTIMATED CHANGES Modified Mathlib/RingTheory/DedekindDomain/FiniteAdeleRing.lean + def IsDedekindDomain.FiniteAdeleRing 2025-12-01 21:12:14 d9609d5 feat(Topology/Separation/Hausdorff): generalize (#32205) Generalize theorems in `Topology/Separation/Hausdorff`. Also add a docstring and fix a docstring. ESTIMATED CHANGES Modified Mathlib/Topology/Separation/Hausdorff.lean +/- theorem SeparatedNhds.of_isClosed_isCompact_closure_compl_isClosed 2025-12-01 21:12:11 02df094 feat(SimpleGraph): `deleteEdges` distributes over `sup` (#31692) ... and other lemmas From ProofBench ESTIMATED CHANGES Modified Mathlib/Combinatorics/SimpleGraph/DeleteEdges.lean + theorem SimpleGraph.deleteEdges_fromEdgeSet + theorem SimpleGraph.deleteEdges_sup +/- theorem SimpleGraph.edgeFinset_deleteEdges 2025-12-01 20:13:21 67fb1ea feat: add `IsHermitian.of_subsingleton` (#32314) ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/Matrix/Hermitian.lean + theorem Matrix.IsHermitian.of_subsingleton 2025-12-01 20:13:19 c4cd7a8 doc: fix a/an articles (2/4) (#32289) Found and fixed by a script (due to Codex). Then manually reviewed. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Endofunctor/Algebra.lean Modified Mathlib/CategoryTheory/Grothendieck.lean Modified Mathlib/CategoryTheory/Limits/Preorder.lean Modified Mathlib/CategoryTheory/Limits/Presheaf.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Grothendieck.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Kernels.lean Modified Mathlib/CategoryTheory/Limits/Shapes/SplitEqualizer.lean Modified Mathlib/CategoryTheory/Limits/Shapes/StrictInitial.lean Modified Mathlib/CategoryTheory/Limits/Types/Coequalizers.lean Modified Mathlib/CategoryTheory/Limits/Types/ColimitType.lean Modified Mathlib/CategoryTheory/Monad/Equalizer.lean Modified Mathlib/CategoryTheory/Monoidal/Comon_.lean Modified Mathlib/CategoryTheory/Monoidal/Transport.lean Modified Mathlib/CategoryTheory/Presentable/CardinalFilteredPresentation.lean Modified Mathlib/CategoryTheory/Shift/ShiftSequence.lean Modified Mathlib/CategoryTheory/Triangulated/HomologicalFunctor.lean Modified Mathlib/CategoryTheory/Triangulated/SpectralObject.lean Modified Mathlib/CategoryTheory/Whiskering.lean Modified Mathlib/Combinatorics/Matroid/Circuit.lean Modified Mathlib/Combinatorics/Matroid/Closure.lean Modified Mathlib/Combinatorics/SimpleGraph/Clique.lean Modified Mathlib/Data/Finsupp/Defs.lean Modified Mathlib/Data/Finsupp/MonomialOrder.lean Modified Mathlib/Data/List/Chain.lean Modified Mathlib/Data/List/Destutter.lean Modified Mathlib/Data/Rel/Separated.lean Modified Mathlib/Data/Sym/Basic.lean Modified Mathlib/FieldTheory/AlgebraicClosure.lean Modified Mathlib/FieldTheory/Separable.lean Modified Mathlib/GroupTheory/Exponent.lean Modified Mathlib/GroupTheory/OreLocalization/Basic.lean 2025-12-01 20:13:17 6105fc7 doc: fix a/an articles (1/4) (#32288) Found and fixed by a script (due to Codex). Then manually reviewed. ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Defs.lean Modified Mathlib/Algebra/Group/Equiv/Opposite.lean Modified Mathlib/Algebra/Group/Equiv/TypeTags.lean Modified Mathlib/Algebra/Group/Submonoid/MulOpposite.lean Modified Mathlib/Algebra/Group/Submonoid/Units.lean Modified Mathlib/Algebra/Homology/BifunctorHomotopy.lean Modified Mathlib/Algebra/Homology/DerivedCategory/Ext/Basic.lean Modified Mathlib/Algebra/Homology/Embedding/Basic.lean Modified Mathlib/Algebra/Homology/Embedding/ExtendHomology.lean Modified Mathlib/Algebra/Homology/Homotopy.lean Modified Mathlib/Algebra/Homology/ShortComplex/Exact.lean Modified Mathlib/Algebra/Homology/ShortComplex/Preadditive.lean Modified Mathlib/Algebra/Lie/Semisimple/Lemmas.lean Modified Mathlib/Algebra/Module/Equiv/Basic.lean Modified Mathlib/Algebra/Module/LinearMap/Star.lean Modified Mathlib/Algebra/Module/NatInt.lean Modified Mathlib/Algebra/Module/RingHom.lean Modified Mathlib/Algebra/Order/Archimedean/Class.lean Modified Mathlib/Algebra/Order/Field/Subfield.lean Modified Mathlib/Algebra/Order/Hom/TypeTags.lean Modified Mathlib/Algebra/Order/Module/Defs.lean Modified Mathlib/Algebra/Order/Ring/Star.lean Modified Mathlib/Algebra/Order/WithTop/Untop0.lean Modified Mathlib/AlgebraicGeometry/Cover/Open.lean Modified Mathlib/AlgebraicGeometry/IdealSheaf/Basic.lean Modified Mathlib/AlgebraicTopology/SimplexCategory/GeneratorsRelations/NormalForms.lean Modified Mathlib/AlgebraicTopology/SimplicialSet/AnodyneExtensions/PairingCore.lean Modified Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Instances.lean Modified Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Isometric.lean Modified Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/NonUnital.lean Modified Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Unital.lean Modified Mathlib/Analysis/Calculus/ContDiff/FaaDiBruno.lean Modified Mathlib/Analysis/Calculus/InverseFunctionTheorem/ApproximatesLinearOn.lean Modified Mathlib/Analysis/Convex/Birkhoff.lean Modified Mathlib/Analysis/Convex/KreinMilman.lean Modified Mathlib/Analysis/LocallyConvex/AbsConvex.lean Modified Mathlib/Analysis/Normed/Module/Alternating/Basic.lean Modified Mathlib/CategoryTheory/Abelian/GrothendieckAxioms/Basic.lean Modified Mathlib/CategoryTheory/Abelian/Projective/Resolution.lean Modified Mathlib/CategoryTheory/Adjunction/Basic.lean Modified Mathlib/CategoryTheory/Adjunction/FullyFaithful.lean Modified Mathlib/CategoryTheory/Bicategory/Functor/Lax.lean Modified Mathlib/CategoryTheory/Bicategory/NaturalTransformation/Lax.lean 2025-12-01 20:13:15 7848218 chore: make `Associated.rfl` simp (#32283) From Toric ESTIMATED CHANGES Modified Mathlib/Algebra/GroupWithZero/Associated.lean Modified Mathlib/RingTheory/UniqueFactorizationDomain/Kaplansky.lean 2025-12-01 20:13:13 9eeaf70 feat: `Finsupp.sum` in opposite monoid (#32253) ESTIMATED CHANGES Modified Mathlib/Algebra/BigOperators/Finsupp/Basic.lean + theorem AddOpposite.op_finsuppProd + theorem AddOpposite.unop_finsuppProd + theorem MulOpposite.op_finsuppSum + theorem MulOpposite.unop_finsuppSum Modified Mathlib/Algebra/BigOperators/Group/Finset/Defs.lean + theorem Finset.op_prod +/- theorem Finset.op_sum + theorem Finset.unop_prod +/- theorem Finset.unop_sum 2025-12-01 20:13:11 3fc4ef0 feat: add `grind` annotation for `LinearPMap.mem_graph_iff` (#31785) ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/LinearPMap.lean 2025-12-01 19:09:23 2310ec3 feat(Bicategory/FunctorBicategory): add type aliases for 2-morphisms in functor bicategories (#32301) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Bicategory/FunctorBicategory/Oplax.lean Modified Mathlib/CategoryTheory/Bicategory/Modification/Oplax.lean + structure CategoryTheory.Oplax.OplaxTrans.Hom - theorem CategoryTheory.Oplax.OplaxTrans.Modification.comp_app' - theorem CategoryTheory.Oplax.OplaxTrans.Modification.id_app' +/- theorem CategoryTheory.Oplax.OplaxTrans.homCategory.ext + structure CategoryTheory.Oplax.StrongTrans.Hom +/- theorem CategoryTheory.Oplax.StrongTrans.homCategory.ext Modified Mathlib/CategoryTheory/Bicategory/Modification/Pseudo.lean + structure CategoryTheory.Pseudofunctor.StrongTrans.Hom +/- theorem CategoryTheory.Pseudofunctor.StrongTrans.homCategory.ext 2025-12-01 19:09:21 c880700 feat(Topology/Order): `HasProd` and `tprod` lemmas for ENNReal (#32276) Add a few related missing lemmas with the main goal to prove that the product of a sequence of `ENNReal`s between 0 and 1 converges and give a formula in terms of the infimum on `Finsets`. This is useful in probability (which is why it was proved for `ENNReal` in particular). ESTIMATED CHANGES Modified Mathlib/Algebra/Order/BigOperators/Group/Finset.lean + theorem Finset.prod_anti_set_of_le_one + theorem Finset.prod_le_prod_of_subset_of_le_one Modified Mathlib/Topology/Algebra/InfiniteSum/Order.lean + theorem hasProd_of_isGLB_of_le_one Modified Mathlib/Topology/Instances/ENNReal/Lemmas.lean + theorem ENNReal.hasProd_iInf_prod + theorem ENNReal.multipliable_of_le_one + theorem ENNReal.tprod_eq_iInf_prod 2025-12-01 19:09:19 28ba29b feat(by_contra!): allow `rintro` patterns in `by_contra!` (#32230) This PR adds the feature to `by_cases!` that it case use `rintro` patterns. The test that I added to the test file is to show that that error message didn't change. ESTIMATED CHANGES Modified Archive/Imo/Imo2008Q4.lean Modified Counterexamples/AharoniKorman.lean Modified Mathlib/Algebra/Category/Grp/EpiMono.lean Modified Mathlib/Algebra/DirectSum/Internal.lean Modified Mathlib/Algebra/Lie/Submodule.lean Modified Mathlib/Algebra/Order/CompleteField.lean Modified Mathlib/Algebra/Order/Module/HahnEmbedding.lean Modified Mathlib/Algebra/Polynomial/RingDivision.lean Modified Mathlib/Analysis/ConstantSpeed.lean Modified Mathlib/Analysis/LocallyConvex/Bounded.lean Modified Mathlib/Analysis/MeanInequalities.lean Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Arctan.lean Modified Mathlib/CategoryTheory/Preadditive/Biproducts.lean Modified Mathlib/Combinatorics/Graph/Basic.lean Modified Mathlib/Combinatorics/Matroid/IndepAxioms.lean Modified Mathlib/Combinatorics/SimpleGraph/Extremal/Turan.lean Modified Mathlib/Dynamics/TopologicalEntropy/CoverEntropy.lean Modified Mathlib/GroupTheory/Exponent.lean Modified Mathlib/GroupTheory/Perm/Cycle/Factors.lean Modified Mathlib/GroupTheory/SpecificGroups/Alternating/Centralizer.lean Modified Mathlib/LinearAlgebra/RootSystem/Finite/Lemmas.lean Modified Mathlib/MeasureTheory/Function/ConvergenceInMeasure.lean Modified Mathlib/ModelTheory/Satisfiability.lean Modified Mathlib/NumberTheory/FLT/Three.lean Modified Mathlib/NumberTheory/LSeries/Basic.lean Modified Mathlib/NumberTheory/Ostrowski.lean Modified Mathlib/Order/Category/NonemptyFinLinOrd.lean Modified Mathlib/Probability/Process/HittingTime.lean Modified Mathlib/RingTheory/DiscreteValuationRing/Basic.lean Modified Mathlib/RingTheory/DiscreteValuationRing/TFAE.lean Modified Mathlib/RingTheory/GradedAlgebra/Radical.lean Modified Mathlib/RingTheory/Ideal/Height.lean Modified Mathlib/RingTheory/Ideal/Oka.lean Modified Mathlib/RingTheory/Localization/FractionRing.lean Modified Mathlib/RingTheory/MvPolynomial/Symmetric/FundamentalTheorem.lean Modified Mathlib/RingTheory/WittVector/TeichmullerSeries.lean Modified Mathlib/Tactic/ByContra.lean Modified Mathlib/Topology/Algebra/Nonarchimedean/TotallyDisconnected.lean Modified Mathlib/Topology/Connected/Clopen.lean Modified Mathlib/Topology/Separation/Connected.lean Modified MathlibTest/byContra.lean 2025-12-01 19:09:17 9083ade feat: script to sanity check version tags (#32162) The primary action is `git checkout && lake exe cache get && lake build --no-build`, but we also sanity check everything that I can ever remember going wrong during releases. I'll add running this script in Mathlib as a step in the release checklist. This is entirely written by Claude. It's purely informational, so I don't think it requires any careful review. ESTIMATED CHANGES Modified scripts/README.md Added scripts/verify_version_tags.py 2025-12-01 19:09:15 fae0f6a feat(Mathlib/Tactic/CategoryStar): Category* (#30797) We introduce `Category*`, an elaborator for introducing category instances which behaves analogously to `Type*`. Specifically, when writing `Category* C` this elaborator does the following: 1. It creates a new universe parameter `v`, and the elaborated term becomes `Category.{v} C`. 2. It places `v` *just before* the universe parameters appearing in `C` or its type, as commonly done in the category theory library. Basic usage: ```lean variable (C : Type*) [Category* C] variable (D : Type*) [Category* D] ``` This is essentially equivalent to: ```lean universe v_1 u_1 variable (C : Type u_1) [Category.{v_1} C] universe v_2 u_2 variable (D : Type u_2) [Category.{v_2} D] ``` ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Lean/Elab/Term.lean + def Lean.Elab.Term.mkFreshLevelParam Modified Mathlib/Tactic.lean Added Mathlib/Tactic/CategoryTheory/CategoryStar.lean Added MathlibTest/CategoryTheory/CategoryStar.lean + def Big + def barE + def barF + def ff + def foo + def fooC + def fooCDE + def fooD + def fooE 2025-12-01 18:53:52 0df88ea chore(CMField): generalize definitions and results (#31811) Following [this](https://leanprover.zulipchat.com/#narrow/channel/217875-Is-there-code-for-X.3F/topic/Complex.20conjugation.20in.20the.20absolute.20Galois.20group/with/556605918) discussion on Zulip, we continue the work in #31810 but removing the `NumberField` hypothesis in the definition of CM-fields. Many results still hold if it is replaced by the hypothesis that the field is of characteristic zero and some integrality hypothesis. The aim is to generalize the notion of CM-field to algebraic (non necessarily finite) extensions of ℚ and in particular to prove that nontrivial cyclotomic extensions of ℚ are CM, see #31812 ESTIMATED CHANGES Modified Mathlib/NumberTheory/NumberField/CMField.lean +/- theorem NumberField.IsCMField.card_infinitePlace_eq_card_infinitePlace +/- theorem NumberField.IsCMField.equivInfinitePlace_apply +/- theorem NumberField.IsCMField.equivInfinitePlace_symm_apply +/- theorem NumberField.IsCMField.exists_isConj +/- theorem NumberField.IsCMField.of_forall_isConj +/- theorem NumberField.IsCMField.unitsComplexConj_eq_self_iff +/- theorem NumberField.IsCMField.units_rank_eq_units_rank Modified Mathlib/NumberTheory/NumberField/InfinitePlace/Basic.lean Modified Mathlib/NumberTheory/NumberField/InfinitePlace/Embeddings.lean Modified Mathlib/NumberTheory/NumberField/InfinitePlace/TotallyRealComplex.lean 2025-12-01 18:53:50 4777673 feat(CategoryTheory): localization of locally presentable categories (#30554) Let `W : MorphismProperty C` be a `w`-small property of morphisms in a locally `κ`-presentable category `C` (with `κ : Cardinal.{w}` a regular cardinal), such that the domains and codomains of morphisms satisfying `W` are `κ`-presentable. Then, the fullsubcategory `W.rightOrthogonal` is also locally `κ`-presentable (it is also stable under `κ`-filtered colimits, and the inclusion functor has a left adjoint). ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Presentable/OrthogonalReflection.lean + theorem CategoryTheory.MorphismProperty.isLocallyPresentable_isLocal + theorem CategoryTheory.MorphismProperty.isRightAdjoint_ι_isLocal + theorem CategoryTheory.OrthogonalReflection.isLocal_isLocal_reflection + theorem CategoryTheory.OrthogonalReflection.isLocal_reflectionObj + theorem CategoryTheory.OrthogonalReflection.isRightAdjoint_ι + theorem CategoryTheory.OrthogonalReflection.iteration_map_succ + theorem CategoryTheory.OrthogonalReflection.iteration_map_succ_injectivity + theorem CategoryTheory.OrthogonalReflection.iteration_map_succ_surjectivity 2025-12-01 18:53:42 2a6c60e feat(Combinatorics/SimpleGraph/Connectivity/Subgraph): add `ConnectedComponent.toSubgraph` (#30232) ESTIMATED CHANGES Modified Mathlib/Combinatorics/SimpleGraph/Connectivity/Subgraph.lean + theorem SimpleGraph.ConnectedComponent.coe_toSubgraph + theorem SimpleGraph.ConnectedComponent.connected_toSubgraph + theorem SimpleGraph.ConnectedComponent.spanningCoe_toSubgraph Modified Mathlib/Combinatorics/SimpleGraph/Subgraph.lean + theorem SimpleGraph.Subgraph.spanningCoe_coe + theorem SimpleGraph.spanningCoe_induce_top 2025-12-01 17:55:09 d47d4b6 chore(undergrad.yaml): `{LinearMap -> Matrix}.GeneralLinearGroup` (#32261) ESTIMATED CHANGES Modified docs/undergrad.yaml 2025-12-01 17:55:07 c5797bd feat(Combinatorics/SimpleGraph): use `Sym2.diagSet` instead of explicit sets (#32255) ESTIMATED CHANGES Modified Mathlib/Combinatorics/SimpleGraph/Basic.lean +/- theorem SimpleGraph.edgeSet_eq_iff +/- theorem SimpleGraph.edgeSet_fromEdgeSet +/- theorem SimpleGraph.edgeSet_subset_setOf_not_isDiag +/- theorem SimpleGraph.edgeSet_top +/- theorem SimpleGraph.fromEdgeSet_not_isDiag Modified Mathlib/Combinatorics/SimpleGraph/DeleteEdges.lean Modified Mathlib/Combinatorics/SimpleGraph/Finite.lean Modified Mathlib/Combinatorics/SimpleGraph/Operations.lean Modified Mathlib/Data/Sym/Card.lean + theorem Sym2.card_diagSet_compl Modified Mathlib/Data/Sym/Sym2.lean 2025-12-01 17:55:05 b6b88ca feat(Order/Basic): change the type of `Eq.trans_ge` and `LE.le.trans_eq'` (#32246) This PR changes the meaning of `Eq.trans_ge` and `LE.le.trans_eq'` (and similarly for `<`). These lemmas are only very rarely used, and their previous value did not easily work with the `to_dual` tactic. I think it is more intuitive for these to be directly generated by `to_dual`. `Eq.trans_ge` used to be `b = a → c ≤ b → c ≤ a` and is now `a = b → c ≤ b → c ≤ a` `LE.le.trans_eq'` used to be `b ≤ a → c = b → c ≤ a` and is now `b ≤ a → b = c → c ≤ a` This PR also deprecates `le_of_le_of_eq'` and `le_of_eq_of_le'` (and similarly for `<`) since they are duplicates of the non-primed versions. ESTIMATED CHANGES Modified Mathlib/Algebra/Order/ToIntervalMod.lean Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Bounds.lean Modified Mathlib/Combinatorics/Additive/CauchyDavenport.lean Modified Mathlib/Combinatorics/Additive/VerySmallDoubling.lean Modified Mathlib/Dynamics/TopologicalEntropy/CoverEntropy.lean Modified Mathlib/GroupTheory/SpecificGroups/Alternating/KleinFour.lean Modified Mathlib/LinearAlgebra/Dimension/Basic.lean Modified Mathlib/Order/Basic.lean Modified Mathlib/Order/CompleteLattice/Basic.lean 2025-12-01 17:55:03 b0f11fe feat: divisibility lemmas for multivariate polynomials (#32226) Prove several divisibility lemmas for multivariate polynomials, of the form: if $$p$$ divides $$X ^ n * q$$, then there exists $$m\leq n$$ and $$p'$$ dividing $$q$$ such that $$p = X^m * p'$$. They come from a particular case that was proven in #31161 . ESTIMATED CHANGES Modified Mathlib/Algebra/MvPolynomial/Basic.lean + theorem IsRegular.monomial + theorem MvPolynomial.X_mul_cancel_left_iff + theorem MvPolynomial.X_mul_cancel_right_iff + theorem MvPolynomial.monomial_one_mul_cancel_left_iff + theorem MvPolynomial.monomial_one_mul_cancel_right_iff Modified Mathlib/Algebra/MvPolynomial/Division.lean + theorem MvPolynomial.X_dvd_mul_iff + theorem MvPolynomial.X_prime + theorem MvPolynomial.dvd_X_mul_iff + theorem MvPolynomial.dvd_monomial_mul_iff_exists + theorem MvPolynomial.eq_divMonomial_single + theorem MvPolynomial.eq_modMonomial_single + theorem MvPolynomial.eq_modMonomial_single_iff Modified Mathlib/RingTheory/MvPolynomial/MonomialOrder/DegLex.lean + theorem MvPolynomial.dvd_C_iff_exists + theorem MvPolynomial.dvd_X_iff_exists + theorem MvPolynomial.dvd_monomial_iff_exists + theorem MvPolynomial.dvd_monomial_one_iff_exists + theorem MvPolynomial.totalDegree_le_of_dvd_of_isDomain +/- theorem MvPolynomial.totalDegree_mul_of_isDomain 2025-12-01 17:55:02 934dbd5 doc(Condensed): make ASCII art diagrams align more nicely in docs (#32221) Especially in the rendered docs the right vertical arrow was too far to the right. Hopefully this fixes it. ESTIMATED CHANGES Modified Mathlib/Condensed/Light/InternallyProjective.lean 2025-12-01 17:54:59 a0fffb0 feat(Topology/Compactness): Add an indexed version of Alexanders subbasis theorem (#32213) ESTIMATED CHANGES Modified Mathlib/Topology/Compactness/Compact.lean + theorem compactSpace_generateFrom' + theorem isCompact_generateFrom' 2025-12-01 17:54:58 34af011 chore(Data/Finset): golf `restrict_preimage` using `ext; simp_all` (#32208) ESTIMATED CHANGES Modified Mathlib/Data/Finset/Pi.lean 2025-12-01 17:54:56 3677664 feat: A countable linearly ordered set equipped with the order topology is second countable. (#32200) I also removed the extra instance of FirstCountableTopology in optional sampling theorems for martingales. ESTIMATED CHANGES Modified Mathlib/Probability/Martingale/OptionalSampling.lean Modified Mathlib/Topology/Order/Basic.lean 2025-12-01 17:54:54 f707e36 feat(CategoryTheory): improve API for limits in preorders (#32178) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Limits/Preorder.lean + def Preorder.coconeOfUpperBound + theorem Preorder.coconePt_mem_upperBounds - def Preorder.coconePt_mem_upperBounds + def Preorder.colimitCoconeOfIsLUB +/- theorem Preorder.hasLimit_iff_hasGLB + def Preorder.limitConeOfIsGLB - theorem Preorder.upperBoundOfCocone 2025-12-01 17:54:52 1608899 feat: add gronwallBound_mono (#32170) This PR adds `gronwallBound_mono`, which proves that the `gronwallBound` function is monotone non-decreasing with respect to the time variable `x` (given non-negative parameters `δ`, `ε`, and `K`). This lemma is useful for comparing Gronwall bounds over different time intervals or establishing upper bounds in ODE analysis. ESTIMATED CHANGES Modified Mathlib/Analysis/ODE/Gronwall.lean + theorem gronwallBound_mono 2025-12-01 17:54:50 5c6def6 feat(Geometry/Euclidean/Sphere/SecondInter): isometry and subtype lemmas (#32023) Add lemmas about `Sphere.secondInter` when mapping points under an affine isometry or from a subspace to the full space. ESTIMATED CHANGES Modified Mathlib/Geometry/Euclidean/Sphere/SecondInter.lean + theorem EuclideanGeometry.Sphere.coe_secondInter + theorem EuclideanGeometry.Sphere.secondInter_map 2025-12-01 17:54:48 2c2f599 feat: `@[to_fun]` attribute for generating `fun _ => ...` form of lemmas (#31872) This PR shows that it is quite easy to have an attribute that generates a new declaration with `fun` pushed or pulled w.r.t. the original declaration. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Tactic.lean Modified Mathlib/Tactic/CategoryTheory/Elementwise.lean Modified Mathlib/Tactic/CategoryTheory/Reassoc.lean Modified Mathlib/Tactic/CategoryTheory/ToApp.lean Added Mathlib/Tactic/ToFun.lean Modified Mathlib/Util/AddRelatedDecl.lean +/- def Mathlib.Tactic.addRelatedDecl Added MathlibTest/ToFun.lean + theorem Function.mul_comm 2025-12-01 17:54:46 84239d4 feat(LinearAlgebra/Matrix/Module): Adds Module instance over Matrix rings (#31639) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/LinearAlgebra/Matrix/Module.lean + def LinearMap.mapMatrixModule + theorem LinearMap.mapMatrixModule_comp + theorem LinearMap.mapMatrixModule_comp_apply + theorem LinearMap.mapMatrixModule_id + theorem LinearMap.mapMatrixModule_id_apply + theorem Matrix.Module.smul_apply + theorem Matrix.Module.smul_def' + theorem Matrix.Module.smul_def Added Mathlib/RingTheory/Morita/Matrix.lean + def ModuleCat.toMatrixModCat 2025-12-01 17:54:44 4d1d764 feat: relate images to pointwise negation/inverses (#27422) These lemmas kept coming up in the CGT repo. ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Pointwise/Set/Basic.lean + theorem Set.image_inv_of_apply_inv_eq + theorem Set.image_inv_of_apply_inv_eq_inv 2025-12-01 12:02:42 eb5fdb9 chore(NumberTheory/ArithmeticFunction): clean unnecessary imports and scopes (#32298) ESTIMATED CHANGES Modified Mathlib/NumberTheory/ArithmeticFunction.lean +/- theorem ArithmeticFunction.sigma_eq_sum_div +/- theorem ArithmeticFunction.zeta_pos 2025-12-01 12:02:39 45cd8ef chore(Order/ULift): use `@[to_dual]` (#32088) ESTIMATED CHANGES Modified Mathlib/Order/ULift.lean - theorem ULift.down_inf +/- theorem ULift.down_le +/- theorem ULift.down_lt +/- theorem ULift.down_sup - theorem ULift.up_inf +/- theorem ULift.up_le +/- theorem ULift.up_lt +/- theorem ULift.up_sup 2025-12-01 11:03:34 8e0ed7c refactor(LinearAlgebra/FiniteDimensional/Defs): move `of_fact_finrank_eq_two` (#32296) Move `of_fact_finrank_eq_two` from `Mathlib.Analysis.InnerProductSpace.TwoDim` to `Mathlib.LinearAlgebra.FiniteDimensional.Defs` to avoid a large import in #31891 that was only in order to use that one lemma without needing the rest of `Mathlib.Analysis.InnerProductSpace.TwoDim`. ESTIMATED CHANGES Modified Mathlib/Analysis/InnerProductSpace/TwoDim.lean - theorem FiniteDimensional.of_fact_finrank_eq_two Modified Mathlib/LinearAlgebra/FiniteDimensional/Defs.lean + theorem FiniteDimensional.of_fact_finrank_eq_two 2025-12-01 11:03:32 6e0e262 doc(GroupTheory/GroupAction/SubMulAction/OfStabilizer): fix documentation and add missing (#32291) As noticed by @harahu , the documentation of `GroupTheory.GroupAction.SubMulAction.OfStabilizer` was not fully aligned with the definitions in the file, one lemma was actually missing, another one was in another file. We fix that. ESTIMATED CHANGES Modified Mathlib/GroupTheory/GroupAction/MultipleTransitivity.lean + theorem SubMulAction.ofStabilizer.isPretransitive_iff + theorem SubMulAction.ofStabilizer.isPretransitive_iff_of_conj Modified Mathlib/GroupTheory/GroupAction/SubMulAction/OfFixingSubgroup.lean Modified Mathlib/GroupTheory/GroupAction/SubMulAction/OfStabilizer.lean 2025-12-01 11:03:30 9a6290f fix: adjust `abel`'s `hint` prio to avoid suggesting `abel` on unrelated trivial goals (#31865) ESTIMATED CHANGES Modified Mathlib/Tactic/Abel.lean Modified MathlibTest/hintAll.lean + def f 2025-12-01 11:03:28 5ea7473 feat(Logic/Relation): lemmas relating `Relation.Map` and `Function.onFun` (#30416) ESTIMATED CHANGES Modified Mathlib/Logic/Relation.lean + theorem Relation.le_onFun_map + theorem Relation.map_onFun_eq_of_surjective + theorem Relation.map_onFun_le + theorem Relation.map_onFun_map_eq_map + theorem Relation.onFun_map_eq_of_injective + theorem Relation.onFun_map_onFun_eq_onFun + theorem Relation.onFun_map_onFun_iff_onFun 2025-12-01 10:02:24 311ef18 feat(GroupTheory/GroupAction/SubMulAction/Combination): combinations and group actions (#27107) `Nat.Combination X n` is the type all `s : Finset X` such that `s.card = n`. This PR provides some API for this subtype and the `SubMulAction` it inherits when a group acts on `X`. It will be used in conjunction with the description of some maximal subgroups of `Equiv.Perm X` to construct primitive actions. Question on the names: when `X` is a fintype, there is `Finset.powersetCard` that gives the same object, as a `Finset`. But the present PR also applies when `X` is infinite. Then maybe `Nat.Combination` should be renamed as `Set.powersetCard`? ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Group/Action/End.lean + theorem AddAction.coe_toPermHom + theorem AddAction.toPerm_zero + theorem MulAction.coe_toPermHom + theorem MulAction.toPerm_one Modified Mathlib/Algebra/Group/Action/Faithful.lean + theorem faithfulSMul_iff Modified Mathlib/Data/ENat/Basic.lean + theorem ENat.add_le_add_iff_left + theorem ENat.add_le_add_iff_right + theorem ENat.lt_add_one_iff' Modified Mathlib/Data/Fintype/EquivFin.lean + theorem Function.Embedding.exists_of_card_eq_finset Modified Mathlib/Data/Nat/Choose/Basic.lean + theorem Nat.choose_eq_one_iff Added Mathlib/GroupTheory/GroupAction/SubMulAction/Combination.lean + theorem Nat.Combination.addAction_faithful + theorem Nat.Combination.coe_coe + theorem Nat.Combination.coe_compl + theorem Nat.Combination.coe_mulActionHom_of_embedding + theorem Nat.Combination.coe_smul + def Nat.Combination.compl + theorem Nat.Combination.compl_bijective + theorem Nat.Combination.compl_compl + theorem Nat.Combination.eq_iff_subset + theorem Nat.Combination.exists_mem_notMem + theorem Nat.Combination.faithfulSMul + theorem Nat.Combination.faithfulVAdd + theorem Nat.Combination.isPretransitive + theorem Nat.Combination.isPretransitive_of_isMultiplyPretransitive + theorem Nat.Combination.mem_coe_iff + theorem Nat.Combination.mem_compl + theorem Nat.Combination.mem_iff + def Nat.Combination.mulActionHom_of_embedding + theorem Nat.Combination.mulActionHom_of_embedding_surjective + def Nat.Combination.mulActionHom_singleton + theorem Nat.Combination.mulActionHom_singleton_bijective + theorem Nat.Combination.mulAction_faithful + theorem Nat.Combination.nontrivial' + theorem Nat.Combination.nontrivial + def Nat.Combination.subMulAction + def Nat.Combination Modified Mathlib/Logic/Equiv/Basic.lean + theorem Equiv.swap_injective_of_left + theorem Equiv.swap_injective_of_right Modified Mathlib/Logic/Nontrivial/Basic.lean Modified Mathlib/Logic/Nontrivial/Defs.lean 2025-12-01 09:24:57 d6cf3d8 refactor(Algebra/Polynomial/Splits): continue deprecation (#32284) This PR continues the deprecation in `Splits.lean` as we move over to the new API in `Factors.lean`. ESTIMATED CHANGES Modified Mathlib/Algebra/Polynomial/Factors.lean +/- theorem Polynomial.Splits.comp_X_sub_C + theorem Polynomial.Splits.degree_eq_card_roots + theorem Polynomial.Splits.degree_eq_one_of_irreducible + theorem Polynomial.Splits.degree_le_one_of_irreducible + theorem Polynomial.Splits.natDegree_eq_one_of_irreducible + theorem Polynomial.splits_iff_card_roots + theorem Polynomial.splits_prod_iff Modified Mathlib/Algebra/Polynomial/Splits.lean - theorem Polynomial.Splits.def - theorem Polynomial.degree_eq_card_roots - theorem Polynomial.degree_eq_one_of_irreducible_of_splits - theorem Polynomial.natDegree_eq_card_roots - theorem Polynomial.splits_iff - theorem Polynomial.splits_iff_card_roots - theorem Polynomial.splits_of_splits_id - theorem Polynomial.splits_prod_iff Modified Mathlib/Analysis/Complex/Polynomial/Basic.lean Modified Mathlib/FieldTheory/AbelRuffini.lean Modified Mathlib/FieldTheory/IsAlgClosed/AlgebraicClosure.lean Modified Mathlib/FieldTheory/IsAlgClosed/Basic.lean Modified Mathlib/FieldTheory/IsSepClosed.lean Modified Mathlib/FieldTheory/Normal/Defs.lean Modified Mathlib/FieldTheory/PrimitiveElement.lean Modified Mathlib/FieldTheory/Separable.lean 2025-12-01 09:24:55 1cd42ec feat: drop a measurability assumption (#32280) If `P.map f` is a probability measure, then so is `P`. There is no need to assume that `f` is aemeasurable because if it's not then `P.map f` is `0` so it can't be a probability measure. ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Measure/Typeclasses/Probability.lean +/- theorem MeasureTheory.Measure.isProbabilityMeasure_of_map 2025-12-01 09:11:23 a014ea9 feat: endow test functions with the natural LF topology (#31806) This code comes from #30325 by @luigi-massacci, who is the main author of this file. I am just opening another stream of PRs in order to parallelize the review work, and adding some touches along the way. ESTIMATED CHANGES Modified Mathlib/Analysis/Distribution/TestFunction.lean + theorem TestFunction.coe_ofSupportedInCLM + theorem TestFunction.coe_ofSupportedInLM + theorem TestFunction.continuous_ofSupportedIn + def TestFunction.ofSupportedIn + def TestFunction.ofSupportedInCLM + def TestFunction.ofSupportedInLM + theorem TestFunction.originalTop_le + theorem TestFunction.topologicalSpace_le_iff 2025-12-01 08:16:42 529c029 chore: golf using `grind` (#32271) ESTIMATED CHANGES Modified Mathlib/Data/PFun.lean Modified Mathlib/Order/CompleteLattice/Lemmas.lean Modified Mathlib/SetTheory/Cardinal/Basic.lean Modified Mathlib/Topology/NhdsWithin.lean Modified Mathlib/Topology/Path.lean 2025-12-01 07:58:30 9666c90 feat(CategoryTheory): an accessible category is essentially large (#31137) If a category `C` satisfies `HasCardinalFilteredGenerator C κ` for `κ : Cardinal.{w}` (e.g. it is locally `κ`-presentable or `κ`-accessible), then `C` is equivalent to a `w`-large category, i.e. a category whose type of objects is in `Type (w + 1)` and whose types of morphisms are in `Type w`. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/ObjectProperty/Equivalence.lean + def CategoryTheory.Equivalence.congrFullSubcategory + theorem CategoryTheory.ObjectProperty.essSurj_ιOfLE_iff + theorem CategoryTheory.ObjectProperty.isEquivalence_ιOfLE_iff + def CategoryTheory.ObjectProperty.topEquivalence Modified Mathlib/CategoryTheory/ObjectProperty/Small.lean + theorem CategoryTheory.ObjectProperty.exists_equivalence_iff + theorem CategoryTheory.ObjectProperty.exists_equivalence_iff_of_locallySmall Added Mathlib/CategoryTheory/Presentable/EssentiallyLarge.lean + theorem CategoryTheory.HasCardinalFilteredGenerator.exists_equivalence + theorem CategoryTheory.ObjectProperty.IsCardinalFilteredGenerator.essentiallyLarge_top 2025-12-01 06:24:07 6a263eb refactor(Category Theory): change `RegularMono`/`Epi` from class to structure (#32154) Refactors `RegularEpi` to be a structure. See [zulip](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/.60RegularEpi.60.20vs.20.60IsRegularEpi.60/with/560474249). [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Adjunction/Lifting/Left.lean +/- def CategoryTheory.LiftLeftAdjoint.counitCoequalises Modified Mathlib/CategoryTheory/Adjunction/Lifting/Right.lean +/- def CategoryTheory.LiftRightAdjoint.unitEqualises Modified Mathlib/CategoryTheory/Limits/Shapes/KernelPair.lean +/- def CategoryTheory.IsKernelPair.toCoequalizer Modified Mathlib/CategoryTheory/Limits/Shapes/NormalMono/Basic.lean + def CategoryTheory.NormalEpi.regularEpi + def CategoryTheory.NormalMono.regularMono Modified Mathlib/CategoryTheory/Limits/Shapes/RegularMono.lean +/- def CategoryTheory.RegularEpi.desc' + theorem CategoryTheory.RegularEpi.effectiveEpi + theorem CategoryTheory.RegularEpi.epi + def CategoryTheory.RegularEpi.ofSplitEpi + structure CategoryTheory.RegularEpi + def CategoryTheory.RegularMono.equalizer +/- def CategoryTheory.RegularMono.lift' + theorem CategoryTheory.RegularMono.mono + def CategoryTheory.RegularMono.ofIsSplitMono + theorem CategoryTheory.RegularMono.strongMono + structure CategoryTheory.RegularMono + def CategoryTheory.coequalizerRegular +/- def CategoryTheory.effectiveEpiStructOfRegularEpi +/- theorem CategoryTheory.isIso_of_regularEpi_of_mono +/- theorem CategoryTheory.isIso_of_regularMono_of_epi + theorem CategoryTheory.isRegularEpi_of_regularEpi + theorem CategoryTheory.isRegularMono_of_regularMono + theorem CategoryTheory.strongEpi_of_regularEpi Modified Mathlib/CategoryTheory/Topos/Classifier.lean Modified Mathlib/Topology/Category/TopCat/EffectiveEpi.lean 2025-12-01 00:16:57 dc19f2a feat(Filter): replace coframe instance with better defeqs (#31264) Replace the `Filter.instCoframe` with explicitly given operations. Prove `Filter.mem_sdiff` and `Filter.hnot_def`. The definitions I chose here are somewhat arbitrary, but I think they're better than what we had before. I chose these specific definitions based on a conversation with AI, but I did not use AI to help me write this PR. ESTIMATED CHANGES Modified Archive/Wiedijk100Theorems/SumOfPrimeReciprocalsDiverges.lean Modified Mathlib/Analysis/BoxIntegral/Basic.lean Modified Mathlib/MeasureTheory/Measure/Restrict.lean Modified Mathlib/Order/Filter/Basic.lean + theorem Filter.mem_sdiff_iff_union Modified Mathlib/Order/Filter/Defs.lean + theorem Filter.mem_sdiff Modified Mathlib/Order/Filter/Finite.lean Modified Mathlib/Topology/Algebra/InfiniteSum/NatInt.lean 2025-11-30 23:42:52 21b9433 feat(Analysis/Normed/Group): add `grind` annotation for `norm_nonneg` (#32275) ESTIMATED CHANGES Modified Mathlib/Analysis/Normed/Group/Basic.lean Modified Mathlib/Analysis/SpecialFunctions/Log/RpowTendsto.lean 2025-11-30 21:13:13 addb2ca feat:(LinearAlgebra/SpecialLinearGroup) : center of the special linear group of a module (#31078) prove that the center special linear group of a module consists with roots of unity compare with the corresponding result `Matrix.SpecialLinearGroup.center_equiv_rootsOfUnity`. ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/Dimension/Finite.lean - theorem rank_pos_of_free Modified Mathlib/LinearAlgebra/Dimension/StrongRankCondition.lean + theorem Module.finrank_eq_zero_iff_of_free + theorem Module.finrank_pos_iff_of_free + theorem Module.rank_pos_iff_of_free + theorem Module.rank_pos_of_free + theorem Module.rank_zero_iff_of_free Modified Mathlib/LinearAlgebra/Matrix/SpecialLinearGroup.lean + theorem Matrix.SpecialLinearGroup.eq_scalar_center_equiv_rootsOfUnity Modified Mathlib/LinearAlgebra/Matrix/ToLin.lean + theorem Matrix.toLin_scalar Modified Mathlib/LinearAlgebra/SpecialLinearGroup.lean +/- def Matrix.SpecialLinearGroup.toLin'_equiv + theorem Matrix.SpecialLinearGroup.toLin_equiv.symm_toLinearMap_eq + theorem Matrix.SpecialLinearGroup.toLin_equiv.toLinearMap_eq + theorem SpecialLinearGroup.centerCongr_toLin_equiv_trans_centerEquivRootsOfUnity_eq + theorem SpecialLinearGroup.centerEquivRootsOfUnity_apply + theorem SpecialLinearGroup.centerEquivRootsOfUnity_apply_apply + theorem SpecialLinearGroup.centerEquivRootsOfUnity_apply_of_finrank_le_one + theorem SpecialLinearGroup.centerEquivRootsOfUnity_symm_apply + theorem SpecialLinearGroup.center_eq_bot_of_finrank_le_one + theorem SpecialLinearGroup.mem_center_iff + theorem SpecialLinearGroup.mem_center_iff_spec + theorem rootsOfUnity.eq_one 2025-11-30 20:12:06 ef0eb9e chore(Tactic): use the convenient `addConstInfo` more (#32240) I discovered that `addConstInfo` is the API for adding hover information of a constant. Different tactics use different less convenient APIs for doing exactly the same thing. This PR replaces all of those with `addConstInfo`. ESTIMATED CHANGES Modified Mathlib/Tactic/HigherOrder.lean Modified Mathlib/Tactic/Recall.lean Modified Mathlib/Tactic/Sat/FromLRAT.lean Modified Mathlib/Tactic/Simps/Basic.lean Modified Mathlib/Tactic/Translate/Core.lean Modified MathlibTest/Recall.lean 2025-11-30 19:57:58 6ed9cc4 feat: alternative characterisation of SimplyConnectedSpace (#31737) - [x] depends on #31574 Note: Proofs in this PR were developed with assistance from Claude. ESTIMATED CHANGES Modified Mathlib/AlgebraicTopology/FundamentalGroupoid/InducedMaps.lean Modified Mathlib/AlgebraicTopology/FundamentalGroupoid/SimplyConnected.lean + theorem simply_connected_iff_loops_nullhomotopic Modified Mathlib/Topology/Homotopy/Path.lean 2025-11-30 19:21:02 587fc55 feat(FieldTheory/IsIntegrallyClosed): lemma to judge whether an element is integral (#29798) In this PR, we proved that an element is integral iff it's root of irreducible polynomial with unit leading coeff, which is an easy way to judge an element is integral or not, such as $\sqrt 5 / 4$, because it's root of $16x^2-5$ with not unit leading coeff, so it's not integral. ESTIMATED CHANGES Modified Mathlib/FieldTheory/Minpoly/IsIntegrallyClosed.lean + theorem minpoly.IsIntegrallyClosed.isIntegral_iff_isUnit_leadingCoeff 2025-11-30 17:00:22 f8aeccd feat: `inl` and `inr` as linear isometries (#32249) ESTIMATED CHANGES Modified Mathlib/Analysis/Normed/Operator/NormedSpace.lean + theorem ContinuousLinearMap.norm_inl + theorem ContinuousLinearMap.norm_inl_le_one + theorem ContinuousLinearMap.norm_inr + theorem ContinuousLinearMap.norm_inr_le_one + theorem LinearIsometry.inl_apply + theorem LinearIsometry.inr_apply 2025-11-30 15:04:18 a86aa1d feat(RingTheory/Perfectoid): Fontaine's theta map and the de Rham period rings (#26388) This PR continues the work from #21564. Original PR: https://github.com/leanprover-community/mathlib4/pull/21564 In this PR, we define Fontaine's theta map and the period ring B_dR. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/RingTheory/Ideal/Maps.lean + theorem RingHom.eq_liftOfSurjective + theorem RingHom.liftOfSurjective_comp + theorem RingHom.liftOfSurjective_comp_apply Added Mathlib/RingTheory/Perfectoid/BDeRham.lean + def BDeRham + def BDeRhamPlus + def fontaineThetaInvertP Added Mathlib/RingTheory/Perfectoid/FontaineTheta.lean + theorem WittVector.factorPowSucc_comp_fontaineThetaModPPow + theorem WittVector.factorPowSucc_fontaineThetaModPPow_eq + def WittVector.fontaineTheta + def WittVector.fontaineThetaModPPow + theorem WittVector.fontaineThetaModPPow_teichmuller + theorem WittVector.fontaineTheta_teichmuller + def WittVector.ghostComponentModPPow + theorem WittVector.ghostComponentModPPow_map_mk + theorem WittVector.ghostComponentModPPow_teichmuller_coeff + theorem WittVector.ker_map_le_ker_mk_comp_ghostComponent + theorem WittVector.mk_fontaineTheta + theorem WittVector.mk_pow_fontaineTheta + theorem WittVector.quotEquivOfEq_ghostComponentModPPow Modified docs/references.bib 2025-11-30 14:26:52 d9862ca chore: add missing tzdata dependency (fixes #31824) (#32268) ...not sure why people reported in #31824 missing timezone data all of a sudden (looked for a few hours, couldn't find any major change to the container setup) but this should fix it, assuming the prebuilt image receives this update. ESTIMATED CHANGES Modified .docker/gitpod-blueprint/Dockerfile Modified .docker/gitpod/Dockerfile 2025-11-30 14:26:49 e3aea9b feat(RingTheory): associated primes of localized module (#26210) We prove that `Ass(S^{-1}M)` is equal to the preimage of `Ass(M)` under `Ideal.comap` if the base ring is Noetherian. From this we conclude that every minimal prime over `Module.annihilator R M` is in `Ass(M)` when `M` is finitely generated. ESTIMATED CHANGES Modified Mathlib/RingTheory/Ideal/AssociatedPrime/Localization.lean + theorem Module.associatedPrimes.comap_mem_associatedPrimes_of_mem_associatedPrimes_of_isLocalizedModule_of_fg - theorem Module.associatedPrimes.mem_associatePrimes_localizedModule_atPrime_of_mem_associated_primes - theorem Module.associatedPrimes.mem_associatePrimes_of_comap_mem_associatePrimes_isLocalizedModule + theorem Module.associatedPrimes.mem_associatedPrimes_atPrime_of_mem_associatedPrimes + theorem Module.associatedPrimes.mem_associatedPrimes_of_comap_mem_associatedPrimes_of_isLocalizedModule + theorem Module.associatedPrimes.minimalPrimes_annihilator_subset_associatedPrimes + theorem Module.associatedPrimes.preimage_comap_associatedPrimes_eq_associatedPrimes_of_isLocalizedModule Modified Mathlib/RingTheory/Regular/Depth.lean 2025-11-30 13:26:11 e2c9aff chore(NumberTheory/Real/GoldenRatio): integer version of Binet's formula (#32236) ESTIMATED CHANGES Modified Mathlib/NumberTheory/Real/GoldenRatio.lean + theorem Real.coe_intFib_eq 2025-11-30 13:26:09 047d072 feat(Algebra/Central): `Module.End` is central (#32223) And that Azumaya algebras are central. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Azumaya/Basic.lean Added Mathlib/Algebra/Central/End.lean Modified Mathlib/Algebra/Group/Action/Faithful.lean 2025-11-30 13:26:07 39e8baa feat(IsGaloisGroup): add `IsGaloisGroup.toFractionRing` (#32220) This PR just extracts existing code to prove that, if `G` is a Galois group for `B/A` where `A` and `B` are domains, then one can define an action of `FractionRing B` such that `G` is a Galois group for `(FractionRing B) / (FractionRing A)`. ESTIMATED CHANGES Modified Mathlib/FieldTheory/Galois/IsGaloisGroup.lean + theorem IsGaloisGroup.toFractionRing Modified Mathlib/NumberTheory/RamificationInertia/Galois.lean 2025-11-30 13:26:05 2f95f85 feat(CategoryTheory/Limits/Types): more results on pushout squares (#32180) More lemmas are introduced in order to relate pushout and pullback squares in `Type`. From https://github.com/joelriou/topcat-model-category ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Limits/Shapes/Pullback/HasPullback.lean + theorem CategoryTheory.Limits.pullback.exists_lift + theorem CategoryTheory.Limits.pushout.exists_desc Modified Mathlib/CategoryTheory/Limits/Types/Pullbacks.lean + theorem CategoryTheory.Limits.Types.CategoryTheory.Limits.Types.exists_of_isPullback + theorem CategoryTheory.Limits.Types.CategoryTheory.Limits.Types.ext_of_isPullback + theorem CategoryTheory.Limits.Types.CategoryTheory.Limits.Types.isPullback_iff Modified Mathlib/CategoryTheory/Limits/Types/Pushouts.lean + theorem CategoryTheory.Limits.Types.eq_or_eq_of_isPushout' + theorem CategoryTheory.Limits.Types.eq_or_eq_of_isPushout + theorem CategoryTheory.Limits.Types.isPullback_of_isPushout + theorem CategoryTheory.Limits.Types.isPushout_of_isPullback_of_mono' + theorem CategoryTheory.Limits.Types.isPushout_of_isPullback_of_mono + theorem CategoryTheory.Limits.Types.mono_of_isPushout_of_isPullback 2025-11-30 13:26:04 e7d2a0c doc: use file refs when referencing files (#32025) We replace (mostly defect) module references with (working) file references, in cases where the surrounding text makes it quite clear that the author intended to be referencing the file instead of the module it defines. The replacement was done with a script that checked that the resulting path does exist. ESTIMATED CHANGES Modified Mathlib/Algebra/Category/ModuleCat/ChangeOfRings.lean Modified Mathlib/Algebra/Category/ModuleCat/LeftResolution.lean Modified Mathlib/Algebra/Group/TypeTags/Basic.lean Modified Mathlib/Algebra/Homology/DerivedCategory/Basic.lean Modified Mathlib/Algebra/Homology/LeftResolution/Reduced.lean Modified Mathlib/Algebra/Homology/Refinements.lean Modified Mathlib/Algebra/Homology/Square.lean Modified Mathlib/Algebra/Module/Submodule/Bilinear.lean Modified Mathlib/Analysis/CStarAlgebra/Matrix.lean Modified Mathlib/Analysis/InnerProductSpace/l2Space.lean Modified Mathlib/Analysis/Normed/Group/FunctionSeries.lean Modified Mathlib/Analysis/Normed/Module/WeakDual.lean Modified Mathlib/Analysis/Normed/Operator/BoundedLinearMaps.lean Modified Mathlib/CategoryTheory/Adjunction/Basic.lean Modified Mathlib/CategoryTheory/Adjunction/Evaluation.lean Modified Mathlib/CategoryTheory/Localization/Monoidal/Basic.lean Modified Mathlib/CategoryTheory/Monad/Basic.lean Modified Mathlib/CategoryTheory/Noetherian.lean Modified Mathlib/CategoryTheory/ObjectProperty/Local.lean Modified Mathlib/CategoryTheory/PathCategory/MorphismProperty.lean Modified Mathlib/CategoryTheory/Presentable/OrthogonalReflection.lean Modified Mathlib/CategoryTheory/Quotient/Linear.lean Modified Mathlib/CategoryTheory/Shift/InducedShiftSequence.lean Modified Mathlib/Condensed/Light/Instances.lean Modified Mathlib/Data/Finset/NAry.lean Modified Mathlib/Data/Int/Order/Lemmas.lean Modified Mathlib/Data/Set/Card.lean Modified Mathlib/Data/Set/NAry.lean Modified Mathlib/GroupTheory/Perm/Basic.lean Modified Mathlib/LinearAlgebra/ExteriorPower/Basic.lean Modified Mathlib/MeasureTheory/Function/ConditionalExpectation/CondexpL1.lean Modified Mathlib/MeasureTheory/Function/ConditionalExpectation/CondexpL2.lean Modified Mathlib/MeasureTheory/Integral/IntervalIntegral/FundThmCalculus.lean Modified Mathlib/Order/Filter/NAry.lean Modified Mathlib/Order/Interval/Set/Disjoint.lean Modified Mathlib/Probability/Distributions/Gaussian/Basic.lean Modified Mathlib/Probability/Kernel/Disintegration/CondCDF.lean Modified Mathlib/RingTheory/IsAdjoinRoot.lean Modified Mathlib/SetTheory/Ordinal/Basic.lean Modified Mathlib/Tactic/GRewrite.lean Modified Mathlib/Topology/Algebra/InfiniteSum/Defs.lean Modified Mathlib/Topology/Algebra/InfiniteSum/SummationFilter.lean Modified Mathlib/Topology/Algebra/Order/ArchimedeanDiscrete.lean Modified Mathlib/Topology/CWComplex/Classical/Subcomplex.lean Modified Mathlib/Topology/Category/Compactum.lean 2025-11-30 12:40:08 6b501e1 feat: define Subrepresentation (#31554) This is upstreamed from the FLT project. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Group/Subgroup/Lattice.lean + theorem Subgroup.exists_mem_sup + theorem Subgroup.forall_mem_sup Modified Mathlib/Algebra/Group/Submonoid/Membership.lean + theorem Submonoid.exists_mem_sup + theorem Submonoid.forall_mem_sup Modified Mathlib/LinearAlgebra/Span/Defs.lean + theorem Submodule.exists_mem_sup + theorem Submodule.forall_mem_sup Added Mathlib/RepresentationTheory/Subrepresentation.lean + theorem Subrepresentation.coe_inf + theorem Subrepresentation.coe_sup + def Subrepresentation.toRepresentation + theorem Subrepresentation.toSubmodule_inf + theorem Subrepresentation.toSubmodule_injective + theorem Subrepresentation.toSubmodule_sup + structure Subrepresentation 2025-11-30 12:04:37 9970984 refactor: `lex_lt` → `Lex.lt` (#32243) We place theorems about the lexicographic `<` relation in the `Lex` namespace, per Yaël's suggestion. ESTIMATED CHANGES Modified Mathlib/Data/DFinsupp/Lex.lean + theorem DFinsupp.Lex.le_iff_of_unique + theorem DFinsupp.Lex.lt_iff + theorem DFinsupp.Lex.lt_iff_of_unique - theorem DFinsupp.lex_le_iff_of_unique - theorem DFinsupp.lex_lt_iff - theorem DFinsupp.lex_lt_iff_of_unique Modified Mathlib/Data/Finsupp/Lex.lean + theorem Finsupp.Lex.le_iff_of_unique + theorem Finsupp.Lex.lt_iff + theorem Finsupp.Lex.lt_iff_of_unique + theorem Finsupp.Lex.lt_of_lt_of_preorder - theorem Finsupp.lex_le_iff_of_unique - theorem Finsupp.lex_lt_iff - theorem Finsupp.lex_lt_iff_of_unique - theorem Finsupp.lex_lt_of_lt_of_preorder Modified Mathlib/Data/Finsupp/MonomialOrder.lean Modified Mathlib/Order/PiLex.lean + theorem Pi.Colex.lt_iff_of_unique + theorem Pi.Lex.lt_iff_of_unique - theorem Pi.colex_lt_iff_of_unique - theorem Pi.lex_lt_iff_of_unique 2025-11-30 12:04:35 dc15895 feat(RingTheory/AdjoinRoot): map (#32111) And golf `algHomOfDvd`, `algHomOfAssociated` using it. From Toric ESTIMATED CHANGES Modified Mathlib/Algebra/Polynomial/Eval/Defs.lean + theorem Polynomial.associated_map_map Modified Mathlib/FieldTheory/IntermediateField/Adjoin/Basic.lean Modified Mathlib/RingTheory/AdjoinRoot.lean +/- theorem AdjoinRoot.algEquivOfAssociated_root +/- theorem AdjoinRoot.algEquivOfAssociated_symm +/- theorem AdjoinRoot.algEquivOfAssociated_toAlgHom +/- theorem AdjoinRoot.algEquivOfEq_root +/- theorem AdjoinRoot.algEquivOfEq_symm +/- theorem AdjoinRoot.algEquivOfEq_toAlgHom +/- theorem AdjoinRoot.algHomOfDvd_root +/- theorem AdjoinRoot.coe_algEquivOfAssociated +/- theorem AdjoinRoot.coe_algEquivOfEq +/- theorem AdjoinRoot.coe_algHomOfDvd + theorem AdjoinRoot.coe_mapAlgEquiv + theorem AdjoinRoot.coe_mapAlgHom + theorem AdjoinRoot.coe_mapRingEquiv + def AdjoinRoot.map + def AdjoinRoot.mapAlgEquiv + def AdjoinRoot.mapAlgHom + theorem AdjoinRoot.mapAlgHom_comp_mapAlghom + def AdjoinRoot.mapRingEquiv + theorem AdjoinRoot.map_comp_map + theorem AdjoinRoot.map_of + theorem AdjoinRoot.map_root + theorem AdjoinRoot.ringHom_ext + theorem AdjoinRoot.symm_mapAlgEquiv + theorem AdjoinRoot.symm_mapRingEquiv 2025-11-30 12:04:34 b8fec73 chore(RingTheory/TensorProduct): remove `IsBaseChange.« end »` (#32050) ESTIMATED CHANGES Modified Mathlib/RingTheory/TensorProduct/IsBaseChangeHom.lean - theorem IsBaseChange.« 2025-11-30 12:04:32 e56018a feat: a pullback of schemes is canonically over the second component (#31475) From Toric ESTIMATED CHANGES Modified Mathlib/AlgebraicGeometry/Pullbacks.lean + theorem AlgebraicGeometry.pullbackSpecIso_hom_base + theorem AlgebraicGeometry.pullbackSpecIso_hom_fst' + theorem AlgebraicGeometry.pullbackSpecIso_inv_fst' Modified Mathlib/CategoryTheory/Monoidal/Cartesian/Over.lean + theorem CategoryTheory.Over.preservesTerminalIso_pullback + theorem CategoryTheory.Over.prodComparisonIso_pullback_Spec_inv_left_fst_fst' + theorem CategoryTheory.Over.prodComparisonIso_pullback_inv_left_fst_fst + theorem CategoryTheory.Over.prodComparisonIso_pullback_inv_left_fst_snd' + theorem CategoryTheory.Over.prodComparisonIso_pullback_inv_left_snd' +/- theorem CategoryTheory.Over.tensorObj_left + theorem CategoryTheory.Over.ε_pullback_left + theorem CategoryTheory.Over.η_pullback_left + theorem CategoryTheory.Over.μ_pullback_left_fst_fst' + theorem CategoryTheory.Over.μ_pullback_left_fst_fst + theorem CategoryTheory.Over.μ_pullback_left_fst_snd' + theorem CategoryTheory.Over.μ_pullback_left_fst_snd + theorem CategoryTheory.Over.μ_pullback_left_snd' + theorem CategoryTheory.Over.μ_pullback_left_snd 2025-11-30 11:46:19 5434356 feat(RingTheory/Height): height of ideal is height of preimage plus height in quotient (#27510) If `S` has going-down over `R`, the height of a prime `P` lying over `p` equals the height of `p` plus the height of the image of `P` in `S / p S`. Co-authored by: Sihan Su Co-authored by: Yi Song ESTIMATED CHANGES Modified Mathlib/RingTheory/Ideal/Height.lean + theorem Ideal.exists_ltSeries_length_eq_height Modified Mathlib/RingTheory/Ideal/KrullsHeightTheorem.lean + theorem Ideal.height_eq_height_add_of_liesOver_of_hasGoingDown Modified Mathlib/RingTheory/Spectrum/Prime/RingHom.lean + theorem RingHom.strictMono_specComap_of_surjective 2025-11-30 11:24:47 19d21ab chore: fix the statement of `Fin.orderPred_eq` (#32256) The current statement is identical to `Fin.orderSucc_eq` (and about `Order.succ` instead of `Order.pred`). I think it makes more sense to just fix the statement than to deprecate to something wrong, but one could instead deprecate and call the correct statement `Fin.orderPred_eq'`. ESTIMATED CHANGES Modified Mathlib/Data/Fin/SuccPredOrder.lean 2025-11-30 11:01:48 fa47ce1 feat(Combinatorics/SimpleGraph): impl `Iso.degree_eq` and `Iso.minDegree_eq` and `Iso.maxDegree_eq` (#31418) Move `Iso.card_edgeFinset_eq` further down in Finite.lean and implement: - `Iso.degree_eq` - `Iso.minDegree_eq` - `Iso.maxDegree_eq` ESTIMATED CHANGES Modified Mathlib/Combinatorics/SimpleGraph/Finite.lean + theorem SimpleGraph.Iso.degree_eq + theorem SimpleGraph.Iso.maxDegree_eq + theorem SimpleGraph.Iso.minDegree_eq 2025-11-30 08:31:53 9aa5b55 feat: the set of points where IsImmersionAt(OfComplement) holds is open (#30356) Prove an API lemma which `chrisflav` requested in #28793, which was split from that PR to keep the diff smaller. ESTIMATED CHANGES Modified Mathlib/Geometry/Manifold/Immersion.lean + theorem IsOpen.isImmersionAt + theorem IsOpen.isImmersionAtOfComplement Modified Mathlib/Geometry/Manifold/LocalSourceTargetProperty.lean + theorem IsOpen.liftSourceTargetPropertyAt 2025-11-30 04:06:52 ea4910a chore: update Mathlib dependencies 2025-11-30 (#32263) This PR updates the Mathlib dependencies. ESTIMATED CHANGES Modified lake-manifest.json 2025-11-30 04:06:51 ffc04d4 feat(Analysis/Calculus/LHopital): L'Hopital's rule from within a convex set (#31408) Extracted from #19796 ESTIMATED CHANGES Modified Mathlib/Analysis/Calculus/LHopital.lean + theorem HasDerivWithinAt.lhopital_zero_nhdsWithin_convex + theorem deriv.lhopital_zero_nhdsWithin_convex + theorem derivWithin.lhopital_zero_nhdsWithin_convex Modified Mathlib/Analysis/Convex/Topology.lean + theorem Convex.Ioo_subset_of_mem_closure + theorem Convex.diff_singleton_eventually_mem_nhds + theorem Convex.nhdsWithin_diff_eq_nhdsGT + theorem Convex.nhdsWithin_diff_eq_nhdsLT + theorem Convex.nhdsWithin_diff_eq_nhdsNE + theorem Convex.nhdsWithin_inter_Iio_eq_nhdsLT + theorem Convex.nhdsWithin_inter_Ioi_eq_nhdsGT 2025-11-30 03:38:14 7274ca3 feat(Topology/DiscreteSubset): lemmas for the codiscrete filter in a T1Space (#31961) ESTIMATED CHANGES Modified Mathlib/Topology/DiscreteSubset.lean + theorem Set.Finite.compl_mem_codiscrete + theorem Set.Infinite.of_accPt + theorem codiscrete_le_cofinite 2025-11-29 23:56:58 b86f640 chore: golf `pow_dvd_ghostComponent_of_dvd_coeff` with `gcongr` (#32258) ESTIMATED CHANGES Modified Mathlib/RingTheory/WittVector/Basic.lean 2025-11-29 21:29:01 874226a feat(Data/List/Cycle): generalize `next` theorems from `x ∈ l ∧ x ≠ l.getLast` to `x ∈ l.dropLast` (#31958) This is a generalization since `x ∈ l ∧ x ≠ l.getLast → x ∈ l.dropLast` is true for all `x, l`, but the reverse direction is false: consider `x = 2, l = [1, 2, 3, 4, 2]`. Since `List.next` looks for the first occurrence of `x`, the theorems stay true after this generalization. ESTIMATED CHANGES Modified Mathlib/Data/List/Cycle.lean + theorem List.nextOr_eq_nextOr_of_mem_dropLast - theorem List.nextOr_eq_nextOr_of_mem_of_ne + theorem List.next_cons_eq_next_of_mem_dropLast - theorem List.next_ne_head_ne_getLast 2025-11-29 17:28:03 97f41d5 chore(RingTheory): golf `liftAlgHom_eq_algHom` and `quotient_mk_maps_eq` using `ext; simp` (#32209) ESTIMATED CHANGES Modified Mathlib/RingTheory/AdjoinRoot.lean Modified Mathlib/RingTheory/Ideal/GoingUp.lean 2025-11-29 16:52:05 e48365e doc: expand docstring of `LocallyIntegrableOn` with counterexample (#32244) The docstring already mentions that `LocallyIntegrableOn f s μ` is weaker than `LocallyIntegrable f (μ.restrict s)`, but I think that a basic counterexample helps to understand the distinction. ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Function/LocallyIntegrable.lean 2025-11-29 16:52:03 0340191 chore(GroupTheory/Finiteness): fix import mistake from #30768 (#32241) This PR fixes an import mistake from #30768. ESTIMATED CHANGES Modified Mathlib/GroupTheory/Finiteness.lean 2025-11-29 16:30:58 20a9b31 feat: instantiate `ContinuousEval` for `BoundedContinuousFunction` (#32233) ESTIMATED CHANGES Modified Mathlib/Topology/ContinuousMap/Bounded/Basic.lean - theorem BoundedContinuousFunction.continuous_eval - theorem BoundedContinuousFunction.continuous_eval_const + theorem BoundedContinuousFunction.lipschitz_eval_const - theorem BoundedContinuousFunction.lipschitz_evalx Modified Mathlib/Topology/MetricSpace/GromovHausdorffRealized.lean 2025-11-29 16:10:22 691dd54 feat(RingTheory): universal coprime factorization ring (#32099) ESTIMATED CHANGES Modified Mathlib/RingTheory/Polynomial/Resultant/Basic.lean + theorem Polynomial.isUnit_resultant_iff_isCoprime + theorem Polynomial.resultant_eq_zero_iff Modified Mathlib/RingTheory/Polynomial/UniversalFactorizationRing.lean + def Polynomial.UniversalCoprimeFactorizationRing.factor₁ + theorem Polynomial.UniversalCoprimeFactorizationRing.factor₁_mul_factor₂ + def Polynomial.UniversalCoprimeFactorizationRing.factor₂ + def Polynomial.UniversalCoprimeFactorizationRing.homEquiv + theorem Polynomial.UniversalCoprimeFactorizationRing.homEquiv_comp_fst + theorem Polynomial.UniversalCoprimeFactorizationRing.homEquiv_comp_snd + theorem Polynomial.UniversalCoprimeFactorizationRing.isCoprime_factor₁_factor₂ + theorem Polynomial.UniversalFactorizationRing.jacobian_resentation + def Polynomial.UniversalFactorizationRing.presentation 2025-11-29 14:44:00 d2965a4 chore: remove [BorelSpace β] from Continuous.stronglyMeasurable_of_hasCompactSupport (#32235) Since `StronglyMeasurable` does not make reference to a sigma algebra on the codomain, there is no reason to assume there is one. Probably we should eventually lint for this? ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Function/StronglyMeasurable/Basic.lean 2025-11-29 13:44:49 1fb75e1 feat(Analysis/Convex/Quasiconvex): properties of quasiconcave functions (#31548) Prove properties of quasiconcave/quasiconvex functions: * monotony * restriction * connectedness of preimages Co-authored with: @ADedecker ESTIMATED CHANGES Modified Mathlib/Analysis/Convex/Quasiconvex.lean + theorem Convex.quasiconcaveOn_restrict + theorem Convex.quasiconvexOn_restrict - theorem QuasiconcaveOn.mono - theorem QuasiconvexOn.mono Modified Mathlib/Data/Set/Basic.lean + theorem Set.sep_eq_inter_sep - theorem Set.sep_of_subset 2025-11-29 10:54:15 9649952 feat(Order/SaddlePoint): define saddle points of a map (#31547) * `IsSaddlePointOn`. Let `f : E × F → β` be a map, where `β` is preordered. A pair `(a,b)` in `E × F` is a *saddle point* of `f` on `X × Y` if `f a y ≤ f x b` for all `x ∈ X` and all `y `in Y`. * `isSaddlePointOn_iff`: if `β` is a complete linear order, then `(a, b) ∈ X × Y` is a saddle point on `X × Y` iff `⨆ y ∈ Y, f a y = ⨅ x ∈ X f x b = f a b`. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Analysis/Convex/Quasiconvex.lean + theorem QuasiconcaveOn.antitone_comp + theorem QuasiconcaveOn.isPreconnected_preimage_subtype + theorem QuasiconcaveOn.mono + theorem QuasiconcaveOn.monotone_comp + theorem QuasiconvexOn.antitone_comp + theorem QuasiconvexOn.isPreconnected_preimage_subtype + theorem QuasiconvexOn.mono + theorem QuasiconvexOn.monotone_comp + theorem QuasilinearOn.antitone_comp + theorem QuasilinearOn.isPreconnected_preimage_subtype + theorem QuasilinearOn.monotone_comp Modified Mathlib/Data/Set/Basic.lean + theorem Set.sep_of_subset Added Mathlib/Order/SaddlePoint.lean + theorem IsSaddlePointOn.swap_left + theorem IsSaddlePointOn.swap_right + def IsSaddlePointOn + theorem iSup₂_iInf₂_le_iInf₂_iSup₂ + theorem isSaddlePointOn_iff' + theorem isSaddlePointOn_iff + theorem isSaddlePointOn_value 2025-11-29 08:58:54 7408ee7 feat(Probability/Kernel): \phi-irreducibility of kernels (#29734) Define powers of kernels, the Chapman-Kolmogorov equations, as well as \phi-irreducibility of kernels, following Robert-Casella, "Monte Carlo Statistical Methods", Definition 6.13. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Probability/Kernel/Composition/Comp.lean + theorem ProbabilityTheory.Kernel.comp_id + theorem ProbabilityTheory.Kernel.id_comp + theorem ProbabilityTheory.Kernel.pow_add + theorem ProbabilityTheory.Kernel.pow_add_apply_eq_lintegral + theorem ProbabilityTheory.Kernel.pow_succ_apply_eq_lintegral Modified Mathlib/Probability/Kernel/Composition/CompMap.lean - theorem ProbabilityTheory.Kernel.comp_id - theorem ProbabilityTheory.Kernel.id_comp Added Mathlib/Probability/Kernel/Irreducible.lean + theorem ProbabilityTheory.Kernel.isIrreducible_of_le_measure Modified docs/references.bib 2025-11-29 08:38:32 cadf14b feat: characteristic function of the sum of two independent random variables (#32224) ESTIMATED CHANGES Modified Mathlib/Probability/Independence/CharacteristicFunction.lean + theorem ProbabilityTheory.IndepFun.charFunDual_map_add_eq_mul + theorem ProbabilityTheory.IndepFun.charFun_map_add_eq_mul +/- theorem ProbabilityTheory.indepFun_iff_charFun_prod 2025-11-29 05:38:00 f741387 feat(Order): coercion to `WithBot α` commutes with `biSup` (#26287) The coercion from `α` to `WithBot α` commutes with `biSup` and `biInf`. ESTIMATED CHANGES Modified Mathlib/Order/ConditionallyCompleteLattice/Basic.lean + theorem WithBot.sInf_empty Modified Mathlib/Order/ConditionallyCompleteLattice/Indexed.lean + theorem WithBot.coe_biInf + theorem WithBot.coe_biSup 2025-11-29 05:14:16 12dc97b feat(CategoryTheory): prerequisites for the existence of the left adjoint in the orthogonal reflection construction (#30513) This PR contains prerequisites for #30554. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Limits/Shapes/Multiequalizer.lean Modified Mathlib/CategoryTheory/Presentable/OrthogonalReflection.lean + theorem CategoryTheory.MorphismProperty.isCardinalAccessible_ι_isLocal + theorem CategoryTheory.OrthogonalReflection.D₁.hasCoproductsOfShape + theorem CategoryTheory.OrthogonalReflection.D₂.hasColimitsOfShape Modified Mathlib/CategoryTheory/Yoneda.lean 2025-11-29 04:11:53 078133b feat: turn on the `unusedDecidableInType` linter (#31747) This PR turns on the `unusedDecidableInType` syntax linter (#31142) after fixing the remaining violations in #31831, #31934, and #32153. This also imports the linter into Mathlib.Init and adds the linter to the Mathlib standard set. Given that classicality is embedded in Lean, this is probably the behavior downstream repos who use the mathlib standard set want; if they are specifically constructive repos, the linter can always be turned off in the lakefile. We exempt the entirety of [Mathlib/Data/Fintype/Quotient.lean](https://github.com/leanprover-community/mathlib4/pull/31747/files#diff-9591d2f3828bee189ea954bc33586ce451536bf00792362f7cdca4f5a8551207), [Mathlib/Order/Heyting/Regular.lean](https://github.com/leanprover-community/mathlib4/pull/31747/files#diff-af85d99e5d2f5561fe837f662f179c58f1ebe2a4ed0432a15260199883850c50), [Mathlib/Logic/Encodable/Basic.lean](https://github.com/leanprover-community/mathlib4/pull/31747/files#diff-db01c9a2d4726fe7ca0e6eb18a7cd485b5a9c6b26ba422dfbe501dcebef3cf77) and a declaration in [Mathlib/Computability/Halting.lean](https://github.com/leanprover-community/mathlib4/pull/31747/files#diff-d47323ee8b4b2321052b4be93715f8b2f3f840f76ec441d8bf75c834b8665b32) since constructivity is desired there. We also exempt `dec_em'`, which is a variant of `Decidable.em` but with the disjuncts reversed. Many prior violations have already been fixed through the use of #10235, hence the small number of violations picked up by the syntax linter. ESTIMATED CHANGES Modified Mathlib/Computability/Halting.lean Modified Mathlib/Data/Fintype/Quotient.lean Modified Mathlib/Init.lean Modified Mathlib/Lean/Elab/InfoTree.lean Modified Mathlib/Lean/Environment.lean Modified Mathlib/Lean/Expr/Basic.lean Modified Mathlib/Logic/Basic.lean Modified Mathlib/Logic/Encodable/Basic.lean Modified Mathlib/Order/Heyting/Regular.lean Modified Mathlib/Tactic/Core.lean Modified Mathlib/Tactic/Linter/UnusedInstancesInType.lean Modified Mathlib/Tactic/Push/Attr.lean Modified Mathlib/Util/TermReduce.lean Modified MathlibTest/UnusedInstancesInType.lean Modified scripts/lint-style.lean 2025-11-29 02:24:55 6f417e4 feat(Data/Sym/Sym2): add `Sym2.diagSet` (#30559) `Sym2.diagSet` is the set of elements on the diagonal. ESTIMATED CHANGES Modified Mathlib/Data/Sym/Sym2.lean - theorem Sym2.IsDiag.mem_range_diag + def Sym2.diagSet + theorem Sym2.diagSet_compl_eq_fromRel_ne + theorem Sym2.diagSet_compl_eq_setOf_not_isDiag + theorem Sym2.diagSet_eq_fromRel_eq + theorem Sym2.diagSet_eq_setOf_isDiag + theorem Sym2.diagSet_eq_univ_of_subsingleton + theorem Sym2.irreflexive_iff_fromRel_subset_diagSet_compl + theorem Sym2.isDiag_of_subsingleton + theorem Sym2.mem_diagSet_iff_eq + theorem Sym2.mem_diagSet_iff_isDiag + theorem Sym2.reflexive_iff_diagSet_subset_fromRel 2025-11-29 01:21:06 7b3642c fix: remove compile_inductive% False (#32225) Per `hargoniX` [on Zulip](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Error.20when.20executing.20files.20with.20Mathlib.20import/near/560729156): This issue occurs due to two factors. The first is the module system that changed the behavior of the inliner for, so far, unknown reasons. However, the behavior of compile_inductive% on False has always been wrong to begin with and so far merely been fixed by the inliner by chance. First things first, it is unnecessary to even compile_inductive% False because False.rec is the single recursor that the compiler has native support for. The reason that calling compile_inductive% on it causes an issue, is that it introduces a new constant False.rec' = unreach. This constant used to be inlined but with the new module system does not get inlined for some reason. Because of this, the compiler decides to closed term lift it and we end up executing an unreachable during initialization. This behavior is a known limitation/bug of the current closed term extraction feature. The correct fix would be for mathlib to either stop calling compile_inductive% on False as it is actively harming compiler optimizations and unnecessary or to at least place a @[no_extract] attribute on the False.rec' that compile_inductive% generates. This attribute informs the closed term extractor that it is not supposed to pull the constant out and is also placed on other always crashing symbols like panic! or unreachable!. ESTIMATED CHANGES Modified Mathlib/Util/CompileInductive.lean Modified MathlibTest/CompileInductive.lean 2025-11-29 00:17:39 63af23d chore: golf using `contrapose` for `↔` (#32193) This PR golfs some proofs to use the new `↔` support in the `contrapose`/`contrapose!` tactic. ESTIMATED CHANGES Modified Mathlib/Algebra/CharP/MixedCharZero.lean Modified Mathlib/Algebra/GroupWithZero/NonZeroDivisors.lean Modified Mathlib/Algebra/Order/Floor/Semiring.lean Modified Mathlib/Algebra/Order/Group/Defs.lean +/- theorem le_inv_self_iff +/- theorem lt_inv_self_iff Modified Mathlib/Algebra/Order/Monoid/Defs.lean +/- theorem mul_self_le_one_iff +/- theorem mul_self_lt_one_iff Modified Mathlib/Analysis/Complex/Basic.lean Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Angle.lean Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Basic.lean Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Complex.lean Modified Mathlib/CategoryTheory/Abelian/Injective/Dimension.lean Modified Mathlib/CategoryTheory/Abelian/Projective/Dimension.lean Modified Mathlib/Combinatorics/Enumerative/Composition.lean Modified Mathlib/Combinatorics/Matroid/Loop.lean Modified Mathlib/Combinatorics/SimpleGraph/Clique.lean Modified Mathlib/Combinatorics/SimpleGraph/CompleteMultipartite.lean Modified Mathlib/Combinatorics/SimpleGraph/Connectivity/Connected.lean Modified Mathlib/Combinatorics/SimpleGraph/Trails.lean Modified Mathlib/Data/Finset/Card.lean Modified Mathlib/Data/Fintype/EquivFin.lean Modified Mathlib/Data/Nat/Digits/Lemmas.lean Modified Mathlib/Data/Nat/PrimeFin.lean Modified Mathlib/Data/Set/Card.lean Modified Mathlib/Geometry/Euclidean/Angle/Oriented/Basic.lean Modified Mathlib/LinearAlgebra/Dimension/Finite.lean Modified Mathlib/LinearAlgebra/Dual/Lemmas.lean Modified Mathlib/LinearAlgebra/SesquilinearForm/Basic.lean Modified Mathlib/MeasureTheory/Measure/Typeclasses/SFinite.lean Modified Mathlib/ModelTheory/Satisfiability.lean Modified Mathlib/Order/Atoms.lean Modified Mathlib/Order/KrullDimension.lean Modified Mathlib/Order/Quotient.lean Modified Mathlib/Order/WellFounded.lean Modified Mathlib/RingTheory/DedekindDomain/AdicValuation.lean Modified Mathlib/RingTheory/Flat/FaithfullyFlat/Basic.lean Modified Mathlib/RingTheory/Ideal/Basic.lean Modified Mathlib/RingTheory/PowerSeries/Order.lean Modified Mathlib/RingTheory/Spectrum/Prime/Basic.lean Modified Mathlib/SetTheory/Cardinal/Arithmetic.lean Modified Mathlib/SetTheory/Cardinal/UnivLE.lean Modified Mathlib/SetTheory/Ordinal/FixedPoint.lean Modified Mathlib/SetTheory/ZFC/Rank.lean Modified Mathlib/Topology/MetricSpace/Infsep.lean 2025-11-28 22:11:09 6f1ec98 feat: hasDerivAt_const_mul (#32227) This was the one theorem that existed for mul_const but was missing for const_mul. ESTIMATED CHANGES Modified Mathlib/Analysis/Calculus/Deriv/Mul.lean + theorem hasDerivAt_const_mul 2025-11-28 21:57:40 c08393f feat: `IsEmbedding` description of the topology on ContDiffMapSupportedIn (#32222) The natural map from `\mathcal{D}^{n}_{K}(E, F)` to `Π i, E →ᵇ (E [×i]→L[ℝ] F)` is a topological and uniform embedding. This is just a reformulation of the definition of the topology, but we have a large API around `IsEmbedding` and related so it can be convenient to have. ESTIMATED CHANGES Modified Mathlib/Analysis/Distribution/ContDiffMapSupportedIn.lean + theorem ContDiffMapSupportedIn.isUniformEmbedding_pi_structureMapCLM + theorem ContDiffMapSupportedIn.structureMapCLM_zero_apply + theorem ContDiffMapSupportedIn.structureMapCLM_zero_injective + theorem ContDiffMapSupportedIn.structureMapLM_zero_apply + theorem ContDiffMapSupportedIn.structureMapLM_zero_injective 2025-11-28 21:44:45 f338e2a chore(lint-style.py): remove the non-terminal simp check (#32207) This has been superseded by the flexible linter, which is much more nuanced and can be silenced in a much better way. ESTIMATED CHANGES Modified scripts/lint-style.py 2025-11-28 20:45:53 bd16f75 doc(CategoryTheory): add documentation for the "five lemma" in pretriangulated categories (#32156) Added comment to make five lemma easier to find ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Triangulated/Pretriangulated.lean 2025-11-28 20:45:52 e3b828e chore(Order/Def): avoid relying on internal class projections in other files (#31808) This PR removes references to lemmas that are class projections of `Preorder`, `PartialOrder` or `LinearOrder`. Instead, the global namespace lemmas should be used. To avoid accidentally referring to these lemmas, they are marked as `protected`. I hope that it will be possible to hide these lemmas from the imports, using the module system. See https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Should.20duplicated.20class.20projections.20be.20private.3F/with/558208782 ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Monoid/Unbundled/Basic.lean Modified Mathlib/Analysis/SpecialFunctions/MulExpNegMulSqIntegral.lean Modified Mathlib/CategoryTheory/Category/Preorder.lean Modified Mathlib/CategoryTheory/SmallObject/Iteration/FunctorOfCocone.lean Modified Mathlib/MeasureTheory/Function/LpSeminorm/Basic.lean Modified Mathlib/NumberTheory/ModularForms/EisensteinSeries/Summable.lean Modified Mathlib/Order/Defs/LinearOrder.lean Modified Mathlib/Order/Defs/PartialOrder.lean + theorem ge_antisymm + theorem ge_trans +/- theorem le_trans Modified Mathlib/Order/Max.lean Modified Mathlib/Order/RelClasses.lean Modified Mathlib/Tactic/Order/ToInt.lean 2025-11-28 20:32:51 585719a chore(Data/Finsupp): golf `embSigma_apply_of_ne` and `embSigma_single` using `grind` (#32177) ESTIMATED CHANGES Modified Mathlib/Data/Finsupp/Sigma.lean 2025-11-28 19:37:55 fc14f3d feat: smooth immersions (#28793) Define smooth immersions between manifolds. We use a definition which allows for corners, infinite dimension and arbitrary fields. This matches the mathematical literature for e.g. real Banach manifolds with corners (even though there is no textbook treating manifolds as general as mathlib's). This PR provides four central definitions: being an immersion at a point, and being an immersion everywhere, plus a variant of these with a fixed complement. (Being an immersion at a point is a property with respect to some choice of complement in the model normed space of the codomain. In most applications, there is no need to control this complement. Such control will be helpful, however, when considering the local characterisation of submanifolds: locally, a submanifold is described either as the image of an immersion, or the preimage of a submersion ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Geometry/Manifold/Immersion.lean + def Manifold.ImmersionAtProp + def Manifold.IsImmersion.complement + theorem Manifold.IsImmersion.congr + theorem Manifold.IsImmersion.isImmersionAt + theorem Manifold.IsImmersion.isImmersionOfComplement_complement + def Manifold.IsImmersion + def Manifold.IsImmersionAt.codChart + theorem Manifold.IsImmersionAt.codChart_mem_maximalAtlas + def Manifold.IsImmersionAt.complement + theorem Manifold.IsImmersionAt.congr_iff + theorem Manifold.IsImmersionAt.congr_of_eventuallyEq + def Manifold.IsImmersionAt.domChart + theorem Manifold.IsImmersionAt.domChart_mem_maximalAtlas + def Manifold.IsImmersionAt.equiv + theorem Manifold.IsImmersionAt.isImmersionAtOfComplement_complement + theorem Manifold.IsImmersionAt.map_target_subset_target + theorem Manifold.IsImmersionAt.mem_codChart_source + theorem Manifold.IsImmersionAt.mem_domChart_source + theorem Manifold.IsImmersionAt.mk_of_charts + theorem Manifold.IsImmersionAt.mk_of_continuousAt + theorem Manifold.IsImmersionAt.property + theorem Manifold.IsImmersionAt.source_subset_preimage_source + theorem Manifold.IsImmersionAt.target_subset_preimage_target + theorem Manifold.IsImmersionAt.writtenInCharts + def Manifold.IsImmersionAtOfComplement.codChart + theorem Manifold.IsImmersionAtOfComplement.codChart_mem_maximalAtlas + theorem Manifold.IsImmersionAtOfComplement.congr_F + theorem Manifold.IsImmersionAtOfComplement.congr_iff_of_eventuallyEq + theorem Manifold.IsImmersionAtOfComplement.congr_of_eventuallyEq + def Manifold.IsImmersionAtOfComplement.domChart + theorem Manifold.IsImmersionAtOfComplement.domChart_mem_maximalAtlas + def Manifold.IsImmersionAtOfComplement.equiv + theorem Manifold.IsImmersionAtOfComplement.isImmersionAt + theorem Manifold.IsImmersionAtOfComplement.map_target_subset_target + theorem Manifold.IsImmersionAtOfComplement.mem_codChart_source + theorem Manifold.IsImmersionAtOfComplement.mem_domChart_source + theorem Manifold.IsImmersionAtOfComplement.mk_of_charts + theorem Manifold.IsImmersionAtOfComplement.mk_of_continuousAt + theorem Manifold.IsImmersionAtOfComplement.property + theorem Manifold.IsImmersionAtOfComplement.small + def Manifold.IsImmersionAtOfComplement.smallComplement + def Manifold.IsImmersionAtOfComplement.smallEquiv + theorem Manifold.IsImmersionAtOfComplement.source_subset_preimage_source + theorem Manifold.IsImmersionAtOfComplement.target_subset_preimage_target + theorem Manifold.IsImmersionAtOfComplement.trans_F + theorem Manifold.IsImmersionAtOfComplement.writtenInCharts + theorem Manifold.IsImmersionOfComplement.congr + theorem Manifold.IsImmersionOfComplement.congr_F + theorem Manifold.IsImmersionOfComplement.isImmersion + theorem Manifold.IsImmersionOfComplement.isImmersionAt + theorem Manifold.IsImmersionOfComplement.trans_F + def Manifold.IsImmersionOfComplement + theorem Manifold.isLocalSourceTargetProperty_immersionAtProp Added Mathlib/Geometry/Manifold/LocalSourceTargetProperty.lean + structure Manifold.IsLocalSourceTargetProperty + theorem Manifold.LiftSourceTargetPropertyAt.codChart_mem_maximalAtlas + theorem Manifold.LiftSourceTargetPropertyAt.congr_iff + theorem Manifold.LiftSourceTargetPropertyAt.congr_iff_of_eventuallyEq + theorem Manifold.LiftSourceTargetPropertyAt.congr_of_eventuallyEq + theorem Manifold.LiftSourceTargetPropertyAt.domChart_mem_maximalAtlas + theorem Manifold.LiftSourceTargetPropertyAt.mem_codChart_source + theorem Manifold.LiftSourceTargetPropertyAt.mem_domChart_source + theorem Manifold.LiftSourceTargetPropertyAt.mk_of_continuousAt + theorem Manifold.LiftSourceTargetPropertyAt.property + theorem Manifold.LiftSourceTargetPropertyAt.source_subset_preimage_source + def Manifold.LiftSourceTargetPropertyAt + structure Manifold.LocalPresentationAt Modified docs/references.bib 2025-11-28 19:07:12 143c343 feat(Combinatorics/SimpleGraph): Probe that all trees are bipartite (#32185) This contribution was created as part of the Utrecht Summerschool "Formalizing Mathematics in Lean" in July 2025. ESTIMATED CHANGES Modified Mathlib/Combinatorics/SimpleGraph/Acyclic.lean + theorem SimpleGraph.IsTree.diff_dist_adj + theorem SimpleGraph.IsTree.isBipartite 2025-11-28 19:07:10 d4ac089 feat(InfinitePlace/Ramification): embeddings of unramified/ramified infinite places satisfy `IsUnmixed/IsMixed` (#29946) ESTIMATED CHANGES Modified Mathlib/NumberTheory/NumberField/InfinitePlace/Ramification.lean + theorem NumberField.InfinitePlace.IsRamified.comap_embedding + theorem NumberField.InfinitePlace.IsRamified.comap_embedding_conjugate + theorem NumberField.InfinitePlace.IsRamified.isComplex + theorem NumberField.InfinitePlace.IsRamified.isMixed_conjugate_embedding + theorem NumberField.InfinitePlace.IsRamified.isMixed_embedding + theorem NumberField.InfinitePlace.IsRamified.isReal + theorem NumberField.InfinitePlace.IsUnramified.isUnmixed + theorem NumberField.InfinitePlace.IsUnramified.isUnmixed_conjugate + theorem NumberField.InfinitePlace.comap_embedding_of_isReal + theorem NumberField.InfinitePlace.isRamified_mk_iff_isMixed + theorem NumberField.InfinitePlace.isUnramified_mk_iff_isUnmixed 2025-11-28 18:47:28 f939935 feat: 𝓓^{n}_{K}(E, F) is T3 (#32219) ESTIMATED CHANGES Modified Mathlib/Analysis/Distribution/ContDiffMapSupportedIn.lean 2025-11-28 18:47:26 d75cbde chore(MeasureTheory/Function/LpSpace): golf entire `ext` using `ext; assumption` (#32130) ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Function/LpSpace/Basic.lean 2025-11-28 18:47:24 bf44baa feat(CategoryTheory): transport closed monoidal structure along equivalence (#30766) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Monoidal/Closed/Transport.lean 2025-11-28 17:46:22 5d5418c chore: rename `E` to `𝕜` in file `TsumUniformlyOn` (#32216) This single deviation from our usual conventions cost me an embarrassing amount of time (not realising domain was one-dimensional). ESTIMATED CHANGES Modified Mathlib/Topology/Algebra/InfiniteSum/TsumUniformlyOn.lean +/- theorem derivWithin_tsum +/- theorem iteratedDerivWithin_tsum 2025-11-28 17:46:20 86a0051 chore(CategoryTheory/Closed): deprecate modules (#32214) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Closed/Cartesian.lean Added Mathlib/CategoryTheory/Closed/Enrichment.lean Added Mathlib/CategoryTheory/Closed/Functor.lean Added Mathlib/CategoryTheory/Closed/FunctorCategory/Basic.lean Added Mathlib/CategoryTheory/Closed/FunctorCategory/Complete.lean Added Mathlib/CategoryTheory/Closed/FunctorCategory/Groupoid.lean Added Mathlib/CategoryTheory/Closed/FunctorToTypes.lean Added Mathlib/CategoryTheory/Closed/Ideal.lean Added Mathlib/CategoryTheory/Closed/Monoidal.lean Added Mathlib/CategoryTheory/Closed/Types.lean Added Mathlib/CategoryTheory/Closed/Zero.lean 2025-11-28 17:46:19 a9158ac chore(Algebra/Order/Group/Unbundled): golf `abs_le_one_iff` (+ others) using `grind` (#32175) ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Group/Unbundled/Int.lean +/- theorem Int.natAbs_abs 2025-11-28 17:46:17 9a7ede2 chore(GroupTheory/QuotientGroup): golf `subsingleton_quotient_top` using `simp` (#32174) ESTIMATED CHANGES Modified Mathlib/GroupTheory/QuotientGroup/Basic.lean 2025-11-28 17:46:15 6906410 chore: remove a few unused Fintype assumptions in statements (#32151) ESTIMATED CHANGES Modified Mathlib/Combinatorics/SetFamily/FourFunctions.lean Modified Mathlib/Combinatorics/SimpleGraph/Clique.lean Modified Mathlib/LinearAlgebra/Pi.lean Modified Mathlib/Topology/DiscreteSubset.lean + theorem discreteTopology_iUnion_finite - theorem discreteTopology_iUnion_fintype 2025-11-28 17:46:13 5a9a754 chore(Data/DFinsupp): golf entire `mapRange_def` using `ext; simp_all` (#32136)
Show trace profiling of mapRange_def: 11 ms before, 12 ms after ### Trace profiling of `mapRange_def` before PR 32136 ```diff diff --git a/Mathlib/Data/DFinsupp/Defs.lean b/Mathlib/Data/DFinsupp/Defs.lean index 7d7269bf51..db05c94165 100644 ESTIMATED CHANGES Modified Mathlib/Data/DFinsupp/Defs.lean 2025-11-28 17:46:11 7fe0b73 feat(RingTheory): ann(I) ≠ ⊥ from ∀ r ∈ I, ann(r) ≠ ⊥ (#32135) ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/Span/Basic.lean + theorem LinearMap.ker_toSpanSingleton_eq_bot_iff Modified Mathlib/RingTheory/Ideal/AssociatedPrime/Finiteness.lean + theorem Ideal.bot_lt_annihilator_of_disjoint_nonZeroDivisors + theorem Ideal.nonempty_inter_nonZeroDivisors_of_faithfulSMul 2025-11-28 17:46:10 e45c309 chore(Data/Set): golf entire `Injective.compl_image_eq` using `grind` (#32115) ESTIMATED CHANGES Modified Mathlib/Data/Set/Image.lean 2025-11-28 17:46:08 6af175d chore(Data/Vector): golf `ofFn_get` (#32113) ESTIMATED CHANGES Modified Mathlib/Data/Vector/Basic.lean 2025-11-28 17:46:06 4dbedbe chore(MeasureTheory/MeasurableSpace): golf `generateFrom_pi_eq` using `grind` (#32112) ESTIMATED CHANGES Modified Mathlib/MeasureTheory/MeasurableSpace/Pi.lean 2025-11-28 17:46:04 ae7605f feat(CategoryTheory/Triangulated): spectral objects (#31586) In this file, we introduce the category `SpectralObject C ι` of spectral objects in a pretriangulated category `C` indexed by the category `ι`, a notion introduced by Verdier in order to give a nice presentation of spectral sequences. In the short term, I intend to PR the construction of the spectral object consisting of all truncations of an object in a triangulated category equipped with a t-structure. In a more distant future, the analogous notion of spectral object in an abelian category shall be introduced, and spectral sequences will be constructed by combining two facts : 1. by applying an homological functor, a spectral object in a triangulated category can be transformed into a spectral object in an abelian category (easy) 2. spectral sequences are attached to spectral objects in abelian categories (very technical) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Triangulated/SpectralObject.lean + structure CategoryTheory.Triangulated.SpectralObject.Hom + theorem CategoryTheory.Triangulated.SpectralObject.comp_hom + theorem CategoryTheory.Triangulated.SpectralObject.hom_ext + theorem CategoryTheory.Triangulated.SpectralObject.id_hom + theorem CategoryTheory.Triangulated.SpectralObject.mapTriangulatedFunctor_δ + def CategoryTheory.Triangulated.SpectralObject.triangle + theorem CategoryTheory.Triangulated.SpectralObject.triangle_distinguished + def CategoryTheory.Triangulated.SpectralObject.δ + theorem CategoryTheory.Triangulated.SpectralObject.ω₂_obj_distinguished + structure CategoryTheory.Triangulated.SpectralObject 2025-11-28 16:39:34 d14bbde chore: make ac_rfl tactic as flexible (#32206) [Zulip discussion](https://leanprover.zulipchat.com/#narrow/channel/345428-mathlib-reviewers/topic/PR.20!4.2328962.3A.20chore.3A.20enable.20the.20flexible.20linter.20in.20mathlib/near/560774327) ESTIMATED CHANGES Modified Mathlib/Tactic/Linter/FlexibleLinter.lean Modified MathlibTest/FlexibleLinter.lean 2025-11-28 16:39:33 2a3c47d chore(Logic/Equiv): golf entire `Function.Injective.map_swap` using `grind` (#32110) ESTIMATED CHANGES Modified Mathlib/Logic/Equiv/Basic.lean 2025-11-28 16:39:31 9c9edd0 feat(MeasureTheory): subsetness is measurable (#32096) ESTIMATED CHANGES Modified Mathlib/MeasureTheory/MeasurableSpace/Constructions.lean +/- theorem MeasurableSet.sep_finite +/- theorem MeasurableSet.sep_infinite +/- theorem MeasurableSet.setOf_finite +/- theorem MeasurableSet.setOf_infinite 2025-11-28 16:39:29 6ccffb6 chore(to_additive): remove redundant entries from `abbreviationDict` (#32092) This PR removes some entries from the `to_additive` `abbreviationDict`. These were only used in `noncommProd_mul_single` which I have renamed to `noncommProd_mulSingle`. ESTIMATED CHANGES Modified Mathlib/Data/Finset/NoncommProd.lean + theorem Finset.noncommProd_mulSingle - theorem Finset.noncommProd_mul_single Modified Mathlib/GroupTheory/Finiteness.lean Modified Mathlib/Tactic/Translate/ToAdditive.lean Modified MathlibTest/toAdditive.lean 2025-11-28 16:39:27 a15523f chore(CategoryTheory): make the construction effective epi -> regular epi use general pullback cones (#32086) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Limits/Shapes/RegularMono.lean + def CategoryTheory.isColimitCoforkOfEffectiveEpi 2025-11-28 16:39:26 6d6a180 chore(Logic/Function): golf `Injective.dite` and `rec_update` (+ others) using `grind` (#32068) ESTIMATED CHANGES Modified Mathlib/Logic/Function/Basic.lean 2025-11-28 16:39:24 43c1e61 doc(LinearAlgebra/CliffordAlgebra/Contraction): fix typos (#31863) Issues found and fixed with help from Codex. ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/CliffordAlgebra/Contraction.lean 2025-11-28 16:39:22 a6080a7 feat: add `grind` annotations for `Set.mem_toFinset` and `Multiset.mem_toFinset` (#31818) ESTIMATED CHANGES Modified Mathlib/Combinatorics/Enumerative/Partition/Basic.lean Modified Mathlib/Combinatorics/Enumerative/Partition/GenFun.lean Modified Mathlib/Data/Finset/Dedup.lean Modified Mathlib/Data/Fintype/Sets.lean Modified Mathlib/Topology/Algebra/InfiniteSum/Defs.lean 2025-11-28 16:39:21 0225efd feat(Algebra/Polynomial/AlgebraMap): add Polynomial.mapAlgHom lemmas (#30547) Co-authored by: @AntoineChambert-Loir ESTIMATED CHANGES Modified Mathlib/Algebra/Polynomial/AlgebraMap.lean + theorem Polynomial.X_pow_smul_rTensor_monomial + theorem Polynomial.coeff_mapAlgHom_apply + theorem Polynomial.lcoeff_comp_mapAlgHom_eq + theorem Polynomial.mapAlgHom_monomial 2025-11-28 16:39:19 ecc842f feat: Fin.find update (#30037) We currently define `Fin.find` in a way that is redundant (in the sense that it is just equivalent to `Fin.find?` in batteries). This PR replaces it with a definition that works closer to `Nat.find`, and links the new definition of `Fin.find` to `Fin.find?` in the natural way. ESTIMATED CHANGES Modified Mathlib/Data/Fin/Tuple/Basic.lean - def Fin.find + theorem Fin.find?_decide_eq_dite + theorem Fin.find?_decide_get_eq_find + theorem Fin.find?_eq_dite + theorem Fin.find?_eq_some_find_of_exists + theorem Fin.find?_eq_some_find_of_isSome + theorem Fin.find_congr' + theorem Fin.find_congr + theorem Fin.find_eq_dite + theorem Fin.find_eq_iff - theorem Fin.find_eq_none_iff - theorem Fin.find_eq_some_iff + theorem Fin.find_eq_zero + theorem Fin.find_le + theorem Fin.find_le_iff + theorem Fin.find_lt_iff + theorem Fin.find_mem_find?_decide - theorem Fin.find_min' - theorem Fin.find_min + theorem Fin.find_mono + theorem Fin.find_mono_of_le + theorem Fin.find_nat_lt + theorem Fin.find_of_find_le + theorem Fin.find_of_not_zero + theorem Fin.find_pos - theorem Fin.find_spec + theorem Fin.get_find?_eq_find_of_eq_true - theorem Fin.isSome_find_iff + theorem Fin.le_find_iff + theorem Fin.lt_find_iff + theorem Fin.mem_find?_iff - theorem Fin.mem_find_iff - theorem Fin.mem_find_of_unique - theorem Fin.nat_find_mem_find + theorem Fin.val_find 2025-11-28 16:39:17 d6ab112 refactor: use isometry extensions for completions at infinite places of number fields (#29969) The API for `InfinitePlace.Completion` currently makes use of abstract results defined on absolute values, which all depend on the hypothesis of the form `∀ x, ‖f x‖ = v x`. This is equivalent to `f` being an isometry, and so many of these results can be bypassed and deprecated by using `Isometry.completion_extension` ESTIMATED CHANGES Modified Mathlib/Analysis/Normed/Field/WithAbs.lean +/- theorem AbsoluteValue.Completion.locallyCompactSpace Modified Mathlib/NumberTheory/NumberField/AdeleRing.lean Modified Mathlib/NumberTheory/NumberField/InfinitePlace/Completion.lean +/- def NumberField.InfinitePlace.Completion.extensionEmbedding + theorem NumberField.InfinitePlace.isometry_embedding + theorem NumberField.InfinitePlace.isometry_embedding_of_isReal Modified Mathlib/Topology/MetricSpace/Completion.lean +/- theorem Isometry.completion_extension + def Isometry.extensionHom + theorem Isometry.extensionHom_coe 2025-11-28 16:39:16 5f80bf5 feat: grind annotations for `Disjoint` (#28026) ESTIMATED CHANGES Modified Archive/Imo/Imo2001Q3.lean Modified Mathlib/Data/Finset/Disjoint.lean Modified Mathlib/Data/Set/Disjoint.lean +/- theorem Set.disjoint_iff_forall_ne +/- theorem Set.not_disjoint_iff Modified Mathlib/Order/BooleanAlgebra/Basic.lean Modified Mathlib/Order/BoundedOrder/Basic.lean Modified Mathlib/Order/BoundedOrder/Lattice.lean Modified Mathlib/Order/CompleteLattice/MulticoequalizerDiagram.lean Modified Mathlib/Order/Disjoint.lean +/- theorem Codisjoint.eq_iff +/- theorem Codisjoint.ne_iff + theorem Codisjoint.out +/- theorem Disjoint.eq_iff +/- theorem Disjoint.ne_iff + theorem Disjoint.out +/- theorem codisjoint_assoc +/- theorem codisjoint_left_comm +/- theorem codisjoint_right_comm Modified Mathlib/Order/SupIndep.lean Modified MathlibTest/grind/pairwise_disjoint.lean 2025-11-28 15:51:32 7c89bb6 feat: universal property of weak convergence over a compact space (#32087) ... in terms of continuous maps ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Measure/FiniteMeasure.lean + theorem MeasureTheory.FiniteMeasure.continuous_iff_forall_continuousMap_continuous_integral + theorem MeasureTheory.FiniteMeasure.continuous_iff_forall_continuousMap_continuous_lintegral +/- theorem MeasureTheory.FiniteMeasure.continuous_iff_forall_continuous_integral +/- theorem MeasureTheory.FiniteMeasure.continuous_iff_forall_continuous_lintegral +/- theorem MeasureTheory.FiniteMeasure.continuous_integral_boundedContinuousFunction + theorem MeasureTheory.FiniteMeasure.continuous_integral_continuousMap + theorem MeasureTheory.FiniteMeasure.continuous_lintegral_boundedContinuousFunction + theorem MeasureTheory.FiniteMeasure.continuous_lintegral_continuousMap Modified Mathlib/MeasureTheory/Measure/ProbabilityMeasure.lean + theorem MeasureTheory.ProbabilityMeasure.continuous_iff_forall_continuousMap_continuous_integral + theorem MeasureTheory.ProbabilityMeasure.continuous_iff_forall_continuousMap_continuous_lintegral +/- theorem MeasureTheory.ProbabilityMeasure.continuous_iff_forall_continuous_integral +/- theorem MeasureTheory.ProbabilityMeasure.continuous_iff_forall_continuous_lintegral +/- theorem MeasureTheory.ProbabilityMeasure.continuous_integral_boundedContinuousFunction + theorem MeasureTheory.ProbabilityMeasure.continuous_integral_continuousMap + theorem MeasureTheory.ProbabilityMeasure.continuous_lintegral_boundedContinuousFunction + theorem MeasureTheory.ProbabilityMeasure.continuous_lintegral_continuousMap 2025-11-28 15:51:30 7a3abee chore(Data/Fintype): golf entire `piFinset_update_eq_filter_piFinset_mem` (+ others) using `grind`. `grind` annotate `mem_piFinset` (#32065) ESTIMATED CHANGES Modified Mathlib/Data/Fintype/Pi.lean 2025-11-28 15:51:29 ceaf127 refactor(SetTheory/Ordinal): use generic order lemmas (#31883) ... and deprecate the custom `Ordinal` ones ESTIMATED CHANGES Modified Mathlib/RingTheory/Spectrum/Prime/LTSeries.lean Modified Mathlib/SetTheory/Cardinal/Aleph.lean Modified Mathlib/SetTheory/Cardinal/Cofinality.lean Modified Mathlib/SetTheory/Cardinal/Ordinal.lean Modified Mathlib/SetTheory/Game/Birthday.lean Modified Mathlib/SetTheory/Game/Nim.lean Modified Mathlib/SetTheory/Game/Ordinal.lean Modified Mathlib/SetTheory/Nimber/Basic.lean Modified Mathlib/SetTheory/Ordinal/Arithmetic.lean +/- theorem Ordinal.div_le_of_le_mul +/- theorem Ordinal.sub_le_self +/- theorem Ordinal.zero_div +/- theorem Ordinal.zero_sub Modified Mathlib/SetTheory/Ordinal/Basic.lean - theorem Ordinal.eq_zero_or_pos - theorem Ordinal.le_add_left - theorem Ordinal.le_add_right Modified Mathlib/SetTheory/Ordinal/Exponential.lean Modified Mathlib/SetTheory/Ordinal/Family.lean Modified Mathlib/SetTheory/Ordinal/FixedPoint.lean Modified Mathlib/SetTheory/Ordinal/NaturalOps.lean - theorem NatOrdinal.zero_le +/- theorem Ordinal.le_nadd_self +/- theorem Ordinal.le_self_nadd Modified Mathlib/SetTheory/Ordinal/Notation.lean Modified Mathlib/SetTheory/Ordinal/Principal.lean Modified Mathlib/SetTheory/Ordinal/Topology.lean Modified Mathlib/SetTheory/Ordinal/Veblen.lean Modified Mathlib/Topology/Category/Profinite/Nobeling/Induction.lean 2025-11-28 14:57:34 fa915c1 feat(Data/Finite/Defs): add `@[push]` tag for `Set.not_finite` and `Set.not_infinite` (#32199) This PR extends `push_neg` with the two lemmas about `Set.Infinite`/`Set.Finite`. ESTIMATED CHANGES Modified Archive/Imo/Imo2024Q3.lean Modified Counterexamples/AharoniKorman.lean Modified Mathlib/Algebra/Order/Archimedean/IndicatorCard.lean Modified Mathlib/Combinatorics/Matroid/Basic.lean Modified Mathlib/Data/ENat/Lattice.lean Modified Mathlib/Data/Finite/Defs.lean + theorem Set.not_finite Modified Mathlib/Data/Finite/Prod.lean Modified Mathlib/Data/Set/Card.lean Modified Mathlib/Data/Set/MulAntidiagonal.lean Modified Mathlib/Data/Set/SMulAntidiagonal.lean Modified Mathlib/GroupTheory/OrderOfElement.lean Modified Mathlib/LinearAlgebra/Reflection.lean Modified Mathlib/NumberTheory/DiophantineApproximation/Basic.lean Modified Mathlib/NumberTheory/LSeries/PrimesInAP.lean Modified Mathlib/NumberTheory/Pell.lean Modified Mathlib/Order/CompactlyGenerated/Basic.lean Modified Mathlib/Order/WellFoundedSet.lean Modified Mathlib/Order/WellQuasiOrder.lean 2025-11-28 14:57:32 0594480 feat(CategoryTheory/Bicategory): define lax transformations between oplax functors (#25825) and also define oplax transformations between lax functors. - [x] depends on: #25779 ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Bicategory/NaturalTransformation/Lax.lean + def CategoryTheory.Lax.OplaxTrans.id + def CategoryTheory.Lax.OplaxTrans.vComp + theorem CategoryTheory.Lax.OplaxTrans.vComp_naturality_comp + theorem CategoryTheory.Lax.OplaxTrans.vComp_naturality_id + theorem CategoryTheory.Lax.OplaxTrans.vComp_naturality_naturality + structure CategoryTheory.Lax.OplaxTrans Modified Mathlib/CategoryTheory/Bicategory/NaturalTransformation/Oplax.lean + def CategoryTheory.Oplax.LaxTrans.id + def CategoryTheory.Oplax.LaxTrans.vComp + theorem CategoryTheory.Oplax.LaxTrans.vComp_naturality_comp + theorem CategoryTheory.Oplax.LaxTrans.vComp_naturality_id + theorem CategoryTheory.Oplax.LaxTrans.vComp_naturality_naturality + structure CategoryTheory.Oplax.LaxTrans Modified scripts/noshake.json 2025-11-28 14:12:31 4bb77eb chore(Data/Finsupp): Rename degree_def (#32179) ESTIMATED CHANGES Modified Mathlib/Combinatorics/Nullstellensatz.lean Modified Mathlib/Data/Finsupp/Weight.lean + theorem Finsupp.degree_apply - theorem Finsupp.degree_def Modified Mathlib/RingTheory/MvPolynomial/Homogeneous.lean Modified Mathlib/RingTheory/MvPowerSeries/Substitution.lean 2025-11-28 14:12:29 c44323d feat(RingTheory): compute the characteristic of the quotient by an ideal (#32168) More precisely, we prove: ```lean theorem Ideal.ringChar_quot {S : Type*} [CommRing S] (I : Ideal S) : ringChar (S ⧸ I) = absNorm (under ℤ I) ``` ESTIMATED CHANGES Modified Mathlib/RingTheory/Ideal/Int.lean + theorem Ideal.ringChar_quot 2025-11-28 14:12:27 b7da419 feat(LinearAlgebra): rank of commutative semiring over itself (#32123) ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/Dimension/Basic.lean + theorem CommSemiring.rank_self + theorem Module.le_rank_iff + theorem Module.le_rank_iff_exists_finset + theorem Module.le_rank_iff_exists_linearMap + theorem Module.one_le_rank_iff + theorem rank_subsingleton Modified Mathlib/LinearAlgebra/Dimension/Finrank.lean + theorem CommSemiring.finrank_self Modified Mathlib/LinearAlgebra/Dimension/Subsingleton.lean - theorem rank_subsingleton Modified Mathlib/SetTheory/Cardinal/Basic.lean + theorem Cardinal.exists_finset_eq_card 2025-11-28 14:12:25 5971034 feat(LinearAlgebra/Span): improve `R ∙ x` notation precedence and printing (#32108) This PR makes 2 changes to the `R ∙ x` notation. - The precedence is improved. On the one hand, we want to write `R ∙ x ⊔ R ∙ y`/`R ∙ x ⊓ R ∙ y` without brackets, so the precedence should be least `70`. On the other hand we want to be able to write `R ∙ a * b` without brackets, so the precedence should be at most `70`. As a result, the notation `ℝ ∙ (v - w)` now does require brackets, but I think this is reasonable. - An `app_unexpander` has been added to pretty print the notation. This unexpander needs to be defined by hand because we need to explicitly tell it that the `{_}` notation that is used is the `«term{_}»` notation. This PR also removes a bunch of unneeded brackets. ESTIMATED CHANGES Modified Mathlib/Algebra/Lie/Engel.lean Modified Mathlib/Algebra/Lie/Normalizer.lean +/- theorem LieSubalgebra.lie_mem_sup_of_mem_normalizer Modified Mathlib/Algebra/Module/Torsion/Basic.lean Modified Mathlib/Analysis/InnerProductSpace/Projection/Basic.lean Modified Mathlib/Analysis/InnerProductSpace/Projection/Reflection.lean Modified Mathlib/Geometry/Euclidean/Angle/Oriented/Basic.lean +/- theorem Orientation.two_zsmul_oangle_left_of_span_eq +/- theorem Orientation.two_zsmul_oangle_of_span_eq_of_span_eq +/- theorem Orientation.two_zsmul_oangle_right_of_span_eq Modified Mathlib/Geometry/Euclidean/MongePoint.lean Modified Mathlib/LinearAlgebra/AffineSpace/AffineSubspace/Basic.lean +/- theorem vectorSpan_pair +/- theorem vectorSpan_pair_rev Modified Mathlib/LinearAlgebra/Basis/Flag.lean Modified Mathlib/LinearAlgebra/BilinearForm/Orthogonal.lean Modified Mathlib/LinearAlgebra/Dimension/FreeAndStrongRankCondition.lean Modified Mathlib/LinearAlgebra/Reflection.lean Modified Mathlib/LinearAlgebra/Span/Basic.lean +/- theorem Submodule.covBy_span_singleton_sup +/- theorem Submodule.wcovBy_span_singleton_sup Modified Mathlib/LinearAlgebra/Span/Defs.lean +/- theorem Submodule.lt_sup_iff_notMem +/- theorem Submodule.mem_span_singleton +/- theorem Submodule.span_insert +/- theorem Submodule.span_singleton_eq_bot +/- theorem Submodule.span_singleton_eq_range +/- theorem Submodule.span_singleton_eq_top_iff +/- theorem Submodule.span_singleton_le_iff_mem +/- theorem Submodule.span_singleton_smul_eq +/- theorem Submodule.span_zero_singleton Modified Mathlib/RingTheory/Noetherian/Defs.lean Modified Mathlib/Topology/Instances/AddCircle/Defs.lean Modified Mathlib/Topology/Instances/AddCircle/Real.lean 2025-11-28 14:12:23 ba5f510 refactor(Algebra/Polynomial/Splits): continue deprecation (#32103) This PR continues the deprecation in `Splits.lean` as we move over to the new API in `Factors.lean`. ESTIMATED CHANGES Modified Mathlib/Algebra/CubicDiscriminant.lean Modified Mathlib/Algebra/Polynomial/Factors.lean + theorem IsUnit.splits + theorem Polynomial.Splits.comp_X_add_C + theorem Polynomial.Splits.comp_X_sub_C + theorem Polynomial.Splits.comp_of_degree_le_one + theorem Polynomial.Splits.comp_of_degree_le_one_of_invertible + theorem Polynomial.Splits.comp_of_degree_le_one_of_monic + theorem Polynomial.Splits.comp_of_natDegree_le_one + theorem Polynomial.Splits.comp_of_natDegree_le_one_of_invertible + theorem Polynomial.Splits.comp_of_natDegree_le_one_of_monic - theorem Polynomial.Splits.of_dvd + theorem Polynomial.Splits.splits_of_dvd + theorem Polynomial.splits_iff_comp_splits_of_degree_eq_one + theorem Polynomial.splits_iff_comp_splits_of_natDegree_eq_one + theorem Polynomial.splits_of_degree_le_one_of_invertible + theorem Polynomial.splits_of_degree_le_one_of_monic + theorem Polynomial.splits_of_natDegree_le_one_of_invertible + theorem Polynomial.splits_of_natDegree_le_one_of_monic Modified Mathlib/Algebra/Polynomial/Splits.lean - theorem Polynomial.Splits.comp_X_add_C - theorem Polynomial.Splits.comp_X_sub_C - theorem Polynomial.Splits.comp_of_degree_le_one - theorem Polynomial.eq_prod_roots_of_splits - theorem Polynomial.eq_prod_roots_of_splits_id - theorem Polynomial.splits_iff_comp_splits_of_degree_eq_one - theorem Polynomial.splits_mul - theorem Polynomial.splits_of_isUnit - theorem Polynomial.splits_of_splits_mul' - theorem Polynomial.splits_of_splits_mul - theorem Polynomial.splits_of_splits_of_dvd Modified Mathlib/Analysis/Polynomial/MahlerMeasure.lean Modified Mathlib/FieldTheory/AbelRuffini.lean Modified Mathlib/FieldTheory/Finite/GaloisField.lean Modified Mathlib/FieldTheory/Galois/Basic.lean Modified Mathlib/FieldTheory/IsAlgClosed/AlgebraicClosure.lean Modified Mathlib/FieldTheory/IsAlgClosed/Basic.lean Modified Mathlib/FieldTheory/IsAlgClosed/Spectrum.lean Modified Mathlib/FieldTheory/Isaacs.lean Modified Mathlib/FieldTheory/Normal/Basic.lean Modified Mathlib/FieldTheory/Normal/Closure.lean Modified Mathlib/FieldTheory/Normal/Defs.lean Modified Mathlib/FieldTheory/PolynomialGaloisGroup.lean Modified Mathlib/FieldTheory/Separable.lean Modified Mathlib/FieldTheory/SplittingField/IsSplittingField.lean Modified Mathlib/NumberTheory/Cyclotomic/Basic.lean Modified Mathlib/RingTheory/Adjoin/Field.lean Modified Mathlib/RingTheory/Invariant/Basic.lean Modified Mathlib/RingTheory/Polynomial/IsIntegral.lean 2025-11-28 14:12:21 7f65024 refactor(FieldTheory/IsAlgClosed,IsSepClosed): rename from `factors` to `splits` (#32036) This PR corrects the names of the fields of `IsAlgClosed` and `IsSepClosed`. ESTIMATED CHANGES Modified Mathlib/FieldTheory/IsAlgClosed/Basic.lean - theorem IsAlgClosed.splits Modified Mathlib/FieldTheory/IsSepClosed.lean - theorem IsSepClosed.splits_of_separable 2025-11-28 14:12:19 f8c8067 chore(CategoryTheory): generalize `EqualizerCondition.bijective_mapToEqualizer_pullback` to abstract pullback cones (#31906) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Sites/Coherent/RegularSheaves.lean + theorem CategoryTheory.regularTopology.EqualizerCondition.bijective_mapToEqualizer_pullback' +/- theorem CategoryTheory.regularTopology.EqualizerCondition.bijective_mapToEqualizer_pullback + theorem CategoryTheory.regularTopology.EqualizerCondition.mk' - def CategoryTheory.regularTopology.MapToEqualizer + def CategoryTheory.regularTopology.mapToEqualizer Modified Mathlib/Condensed/TopComparison.lean 2025-11-28 13:07:46 3b77237 chore: enable the flexible linter in mathlib (#28962) Let's see what has regressed in the mean-time, and how many exceptions remain. We're somewhat liberal with disabling the linter when this doesn't make sense: let's see how close we are. ESTIMATED CHANGES Modified Archive/Arithcc.lean Modified Archive/Examples/Eisenstein.lean Modified Archive/Examples/IfNormalization/Result.lean Modified Archive/Imo/Imo1997Q3.lean Modified Archive/Imo/Imo2008Q4.lean Modified Archive/Imo/Imo2019Q4.lean Modified Archive/Imo/Imo2024Q5.lean Modified Counterexamples/MapFloor.lean Modified Mathlib/Algebra/Field/GeomSum.lean Modified Mathlib/Algebra/FreeAlgebra.lean Modified Mathlib/Algebra/Group/Submonoid/Basic.lean Modified Mathlib/Algebra/Homology/Augment.lean Modified Mathlib/Algebra/Lie/Nilpotent.lean Modified Mathlib/Algebra/Lie/Weights/IsSimple.lean Modified Mathlib/Algebra/LinearRecurrence.lean Modified Mathlib/Algebra/Module/ZLattice/Summable.lean Modified Mathlib/Algebra/Polynomial/Bivariate.lean Modified Mathlib/Algebra/Polynomial/RuleOfSigns.lean Modified Mathlib/Algebra/Ring/Subring/Basic.lean Modified Mathlib/Algebra/SkewMonoidAlgebra/Basic.lean Modified Mathlib/AlgebraicGeometry/Cover/Directed.lean Modified Mathlib/AlgebraicGeometry/EllipticCurve/Affine/Formula.lean Modified Mathlib/AlgebraicGeometry/EllipticCurve/Affine/Point.lean Modified Mathlib/AlgebraicGeometry/EllipticCurve/Jacobian/Formula.lean Modified Mathlib/AlgebraicGeometry/EllipticCurve/Projective/Formula.lean Modified Mathlib/AlgebraicGeometry/Limits.lean Modified Mathlib/AlgebraicTopology/SimplexCategory/Augmented/Monoidal.lean Modified Mathlib/AlgebraicTopology/SimplicialSet/HomotopyCat.lean Modified Mathlib/AlgebraicTopology/SimplicialSet/NerveAdjunction.lean Modified Mathlib/Analysis/AbsoluteValue/Equivalence.lean Modified Mathlib/Analysis/Analytic/Constructions.lean Modified Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Basic.lean Modified Mathlib/Analysis/Calculus/ContDiff/FaaDiBruno.lean Modified Mathlib/Analysis/Calculus/LHopital.lean Modified Mathlib/Analysis/Complex/Arg.lean Modified Mathlib/Analysis/Complex/Exponential.lean Modified Mathlib/Analysis/Complex/JensenFormula.lean Modified Mathlib/Analysis/Fourier/FourierTransformDeriv.lean Modified Mathlib/Analysis/FunctionalSpaces/SobolevInequality.lean Modified Mathlib/Analysis/InnerProductSpace/Rayleigh.lean Modified Mathlib/Analysis/MeanInequalities.lean Modified Mathlib/Analysis/SpecialFunctions/ContinuousFunctionalCalculus/PosPart/Basic.lean Modified Mathlib/Analysis/SpecialFunctions/ContinuousFunctionalCalculus/Rpow/IntegralRepresentation.lean Modified Mathlib/Analysis/SpecialFunctions/Elliptic/Weierstrass.lean Modified Mathlib/Analysis/SpecialFunctions/Gaussian/FourierTransform.lean Modified Mathlib/Analysis/SpecialFunctions/Log/PosLog.lean Modified Mathlib/Analysis/SpecialFunctions/Pow/NNReal.lean Modified Mathlib/Analysis/SpecialFunctions/Pow/Real.lean Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Complex.lean Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Inverse.lean Modified Mathlib/CategoryTheory/Bicategory/Adjunction/Mate.lean Modified Mathlib/CategoryTheory/Bicategory/InducedBicategory.lean Modified Mathlib/CategoryTheory/Comma/Over/Pullback.lean Modified Mathlib/CategoryTheory/Dialectica/Monoidal.lean Modified Mathlib/CategoryTheory/Galois/Basic.lean Modified Mathlib/CategoryTheory/Limits/Constructions/Equalizers.lean Modified Mathlib/CategoryTheory/Limits/Shapes/BinaryProducts.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Equalizers.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Grothendieck.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Products.lean Modified Mathlib/CategoryTheory/Limits/VanKampen.lean Modified Mathlib/CategoryTheory/Monoidal/DayConvolution/Braided.lean Modified Mathlib/CategoryTheory/Monoidal/Internal/Module.lean Modified Mathlib/CategoryTheory/Products/Basic.lean Modified Mathlib/Combinatorics/Additive/Corner/Roth.lean Modified Mathlib/Combinatorics/Additive/FreimanHom.lean Modified Mathlib/Combinatorics/Additive/SmallTripling.lean Modified Mathlib/Combinatorics/Additive/VerySmallDoubling.lean Modified Mathlib/Combinatorics/SetFamily/FourFunctions.lean Modified Mathlib/Combinatorics/SimpleGraph/Regularity/Uniform.lean Modified Mathlib/Computability/Halting.lean Modified Mathlib/Computability/Partrec.lean Modified Mathlib/Computability/PartrecCode.lean Modified Mathlib/Computability/Primrec.lean Modified Mathlib/Computability/TMConfig.lean Modified Mathlib/Computability/TMToPartrec.lean Modified Mathlib/Control/EquivFunctor/Instances.lean Modified Mathlib/Data/Bool/Count.lean Modified Mathlib/Data/ENat/Basic.lean Modified Mathlib/Data/EReal/Operations.lean Modified Mathlib/Data/Finsupp/Sigma.lean Modified Mathlib/Data/Matrix/Basis.lean Modified Mathlib/Data/Multiset/Bind.lean Modified Mathlib/Data/Nat/Digits/Defs.lean Modified Mathlib/Data/Nat/Digits/Lemmas.lean Modified Mathlib/Data/Num/Lemmas.lean Modified Mathlib/Data/Rat/Cast/CharZero.lean Modified Mathlib/Data/Seq/Basic.lean Modified Mathlib/Data/Set/Prod.lean Modified Mathlib/Data/String/Basic.lean Modified Mathlib/Data/WSeq/Basic.lean Modified Mathlib/Dynamics/TopologicalEntropy/DynamicalEntourage.lean Modified Mathlib/Geometry/Euclidean/Triangle.lean Modified Mathlib/Geometry/Manifold/ContMDiff/Constructions.lean Modified Mathlib/Geometry/Manifold/MFDeriv/Basic.lean Modified Mathlib/Geometry/Manifold/MFDeriv/SpecificFunctions.lean Modified Mathlib/GroupTheory/Coxeter/Basic.lean Modified Mathlib/GroupTheory/FreeGroup/Basic.lean Modified Mathlib/GroupTheory/GroupAction/MultiplePrimitivity.lean Modified Mathlib/GroupTheory/GroupAction/SubMulAction/OfStabilizer.lean Modified Mathlib/GroupTheory/HNNExtension.lean Modified Mathlib/GroupTheory/Perm/Fin.lean Modified Mathlib/Init.lean Modified Mathlib/LinearAlgebra/CliffordAlgebra/Basic.lean Modified Mathlib/LinearAlgebra/Contraction.lean Modified Mathlib/LinearAlgebra/DirectSum/TensorProduct.lean Modified Mathlib/LinearAlgebra/Matrix/Charpoly/Coeff.lean Modified Mathlib/Logic/Equiv/List.lean Modified Mathlib/MeasureTheory/Constructions/BorelSpace/Real.lean Modified Mathlib/MeasureTheory/Function/LpSeminorm/Basic.lean Modified Mathlib/MeasureTheory/Measure/HasOuterApproxClosedProd.lean Modified Mathlib/MeasureTheory/Measure/Typeclasses/Probability.lean Modified Mathlib/NumberTheory/ArithmeticFunction.lean Modified Mathlib/NumberTheory/LucasLehmer.lean Modified Mathlib/NumberTheory/NumberField/InfinitePlace/Basic.lean Modified Mathlib/NumberTheory/Padics/PadicNumbers.lean Modified Mathlib/NumberTheory/PellMatiyasevic.lean Modified Mathlib/NumberTheory/PythagoreanTriples.lean Modified Mathlib/NumberTheory/Zsqrtd/Basic.lean Modified Mathlib/Order/Compare.lean Modified Mathlib/Order/Iterate.lean Modified Mathlib/Order/KrullDimension.lean Modified Mathlib/Order/OrderIsoNat.lean Modified Mathlib/Probability/Distributions/Exponential.lean Modified Mathlib/Probability/Distributions/Fernique.lean Modified Mathlib/RingTheory/DedekindDomain/PID.lean Modified Mathlib/RingTheory/Extension/Cotangent/Basic.lean Modified Mathlib/RingTheory/FiniteType.lean Modified Mathlib/RingTheory/GradedAlgebra/HomogeneousLocalization.lean Modified Mathlib/RingTheory/HahnSeries/Lex.lean Modified Mathlib/RingTheory/Idempotents.lean Modified Mathlib/RingTheory/MvPowerSeries/Substitution.lean Modified Mathlib/RingTheory/Polynomial/Cyclotomic/Eval.lean Modified Mathlib/RingTheory/Spectrum/Prime/ChevalleyComplexity.lean Modified Mathlib/RingTheory/TensorProduct/IsBaseChangeFree.lean Modified Mathlib/RingTheory/TensorProduct/IsBaseChangeHom.lean Modified Mathlib/RingTheory/Valuation/ValuativeRel/Basic.lean Modified Mathlib/RingTheory/WittVector/FrobeniusFractionField.lean Modified Mathlib/SetTheory/Cardinal/Cofinality.lean Modified Mathlib/SetTheory/Cardinal/Free.lean Modified Mathlib/SetTheory/Ordinal/Notation.lean Modified Mathlib/Tactic/NormNum/Irrational.lean Modified Mathlib/Topology/Algebra/InfiniteSum/SummationFilter.lean Modified Mathlib/Topology/Algebra/InfiniteSum/UniformOn.lean Modified Mathlib/Topology/EMetricSpace/PairReduction.lean Modified Mathlib/Topology/MetricSpace/PiNat.lean Modified Mathlib/Topology/Piecewise.lean Modified Mathlib/Topology/UniformSpace/Ultra/Completion.lean Modified Mathlib/Topology/UniformSpace/Ultra/Constructions.lean 2025-11-28 11:46:58 7b0ee8f chore: update Mathlib dependencies 2025-11-28 (#32203) This PR updates the Mathlib dependencies. ESTIMATED CHANGES Modified lake-manifest.json 2025-11-28 11:46:56 d19e769 feat(NumberTheory/ModularForms): adjoin -1 to a subgroup (#30649) Given a subgroup of GL(2, R), form the subgroup generated by it and `-1`. Using this, define the width of a subgroup. ESTIMATED CHANGES Modified Mathlib/NumberTheory/ModularForms/ArithmeticSubgroups.lean + def Subgroup.adjoinNegOne + theorem Subgroup.adjoinNegOne_eq_self_iff + theorem Subgroup.commensurable_adjoinNegOne_self + theorem Subgroup.hasDetOne_adjoinNegOne_iff + theorem Subgroup.hasDetPlusMinusOne_adjoinNegOne_iff + theorem Subgroup.le_adjoinNegOne + theorem Subgroup.mem_adjoinNegOne_iff + theorem Subgroup.negOne_mem_adjoinNegOne + theorem Subgroup.relIndex_adjoinNegOne_ne_zero + theorem Subgroup.relindex_adjoinNegOne_eq_two Modified Mathlib/NumberTheory/ModularForms/Cusps.lean + theorem Subgroup.IsRegularAtInfty.eq + def Subgroup.IsRegularAtInfty + theorem Subgroup.commensurable_strictPeriods_periods + theorem Subgroup.isRegularAtInfty_iff + theorem Subgroup.isRegularAtInfty_of_neg_one_mem + theorem Subgroup.periods_eq_zmultiples_widthInfty + theorem Subgroup.relIndex_strictPeriods + theorem Subgroup.strictPeriods_eq_periods_of_neg_one_mem + theorem Subgroup.strictPeriods_le_periods + theorem Subgroup.two_mul_withInfty_mem_strictPeriods + theorem Subgroup.widthInfty_mem_periods + theorem Subgroup.widthInfty_nonneg + theorem Subgroup.widthInfty_pos + theorem Subgroup.widthInfty_pos_iff 2025-11-28 11:15:56 4eb9bc7 feat(Data/Int/Fib): the Cassini and Catalan identities (#30882) The [Cassini and Catalan identities](https://en.wikipedia.org/wiki/Cassini_and_Catalan_identities) are identities for the Fibonacci numbers. * Cassini's identity: `fib (n + 1) * fib (n - 1) - fib n ^ 2 = (-1) ^ |n|` for all integers `n`. * Catalan's identity: `fib (x + a) ^ 2 - fib (x + 2 * a) * fib x = fib a ^ 2 * (-1) ^ |x|` for all integers `x` and `a`. Also moved `Data.Int.Fib` to `Data.Int.Fib.Basic`. No deprecation needed since this was only pushed this week. ESTIMATED CHANGES Modified Mathlib.lean Renamed Mathlib/Data/Int/Fib.lean to Mathlib/Data/Int/Fib/Basic.lean Added Mathlib/Data/Int/Fib/Lemmas.lean + theorem Int.fib_natCast_succ_mul_fib_natCast_pred_sub_fib_natCast_sq Modified Mathlib/Data/Matrix/Basic.lean 2025-11-28 10:54:37 3438e5b feat(Analysis): generalize `Real.deriv_rpow_const` and prove iteration version (#32196) We prove that for calculating the derivative of `Real.rpow` it is not necessary to check any conditions, since the junk values align. This makes it easy to calculate the iterated derivative. ESTIMATED CHANGES Modified Mathlib/Analysis/SpecialFunctions/Pow/Asymptotics.lean + theorem tendsto_rpow_neg_nhdsGT_zero Modified Mathlib/Analysis/SpecialFunctions/Pow/Deriv.lean +/- theorem Real.deriv_rpow_const' +/- theorem Real.deriv_rpow_const + theorem Real.iter_deriv_rpow_const + theorem Real.not_differentiableAt_rpow_const_zero Modified Mathlib/Computability/AkraBazzi/AkraBazzi.lean 2025-11-28 10:31:09 eeda320 feat(Bicategory/Modification/Pseudo): define modifications between strong natural transformations of pseudofunctors (#30895) This PR adds modifications between strong natural transformations of pseudofunctors. At the same time, it improves the existing code on modifications between oplax natural tranformations of oplax functors (by removing some simp lemmas). This is a migration of #18254 to a fork. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/CategoryTheory/Bicategory/FunctorBicategory/Oplax.lean Modified Mathlib/CategoryTheory/Bicategory/Modification/Oplax.lean +/- def CategoryTheory.Oplax.OplaxTrans.Modification.vcomp +/- structure CategoryTheory.Oplax.OplaxTrans.Modification - def CategoryTheory.Oplax.OplaxTrans.ModificationIso.ofComponents - theorem CategoryTheory.Oplax.OplaxTrans.ext + theorem CategoryTheory.Oplax.OplaxTrans.homCategory.ext + def CategoryTheory.Oplax.OplaxTrans.isoMk + def CategoryTheory.Oplax.StrongTrans.Modification.equivOplax + def CategoryTheory.Oplax.StrongTrans.Modification.id + def CategoryTheory.Oplax.StrongTrans.Modification.mkOfOplax + def CategoryTheory.Oplax.StrongTrans.Modification.toOplax + def CategoryTheory.Oplax.StrongTrans.Modification.vcomp + theorem CategoryTheory.Oplax.StrongTrans.Modification.whiskerLeft_naturality + theorem CategoryTheory.Oplax.StrongTrans.Modification.whiskerRight_naturality + structure CategoryTheory.Oplax.StrongTrans.Modification + theorem CategoryTheory.Oplax.StrongTrans.homCategory.ext + def CategoryTheory.Oplax.StrongTrans.isoMk Added Mathlib/CategoryTheory/Bicategory/Modification/Pseudo.lean + def CategoryTheory.Pseudofunctor.StrongTrans.Modification.equivOplax + def CategoryTheory.Pseudofunctor.StrongTrans.Modification.id + def CategoryTheory.Pseudofunctor.StrongTrans.Modification.mkOfOplax + def CategoryTheory.Pseudofunctor.StrongTrans.Modification.toOplax + def CategoryTheory.Pseudofunctor.StrongTrans.Modification.vcomp + theorem CategoryTheory.Pseudofunctor.StrongTrans.Modification.whiskerLeft_naturality + theorem CategoryTheory.Pseudofunctor.StrongTrans.Modification.whiskerRight_naturality + structure CategoryTheory.Pseudofunctor.StrongTrans.Modification + theorem CategoryTheory.Pseudofunctor.StrongTrans.homCategory.ext + def CategoryTheory.Pseudofunctor.StrongTrans.isoMk Modified Mathlib/CategoryTheory/Bicategory/NaturalTransformation/Oplax.lean Modified Mathlib/CategoryTheory/Bicategory/NaturalTransformation/Pseudo.lean 2025-11-28 08:05:25 8505a46 doc: balance parentheses and brackets (#32119) We fix various unbalanced brackets and parentheses in mathlib docstrings. The instances were found by way of a script, but the false positive rate was high enough that I don't think it would make for a valuable linter. Codex wrote the detection script and performed the fixes. ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Action/Pointwise/Set/Basic.lean Modified Mathlib/Algebra/Group/ForwardDiff.lean Modified Mathlib/Algebra/Group/Pointwise/Finset/Basic.lean Modified Mathlib/Algebra/Group/Pointwise/Finset/BigOperators.lean Modified Mathlib/Algebra/Group/Pointwise/Finset/Scalar.lean Modified Mathlib/Algebra/Group/Pointwise/Set/Basic.lean Modified Mathlib/Algebra/Group/Pointwise/Set/Scalar.lean Modified Mathlib/Algebra/Homology/ShortComplex/Exact.lean Modified Mathlib/AlgebraicTopology/CechNerve.lean Modified Mathlib/Analysis/Asymptotics/TVS.lean Modified Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Continuity.lean Modified Mathlib/CategoryTheory/Abelian/Refinements.lean Modified Mathlib/CategoryTheory/Adjunction/Basic.lean Modified Mathlib/CategoryTheory/Shift/Opposite.lean Modified Mathlib/Geometry/Manifold/Instances/Sphere.lean Modified Mathlib/MeasureTheory/Constructions/BorelSpace/Real.lean Modified Mathlib/MeasureTheory/Function/SimpleFunc.lean Modified Mathlib/MeasureTheory/Integral/IntervalIntegral/FundThmCalculus.lean Modified Mathlib/MeasureTheory/Measure/MeasureSpaceDef.lean Modified Mathlib/MeasureTheory/Measure/OpenPos.lean Modified Mathlib/NumberTheory/NumberField/Cyclotomic/Three.lean Modified Mathlib/Order/LiminfLimsup.lean Modified Mathlib/Probability/CondVar.lean Modified Mathlib/RingTheory/MvPolynomial/Groebner.lean Modified Mathlib/Tactic/Generalize.lean Modified Mathlib/Tactic/Linter/DeprecatedSyntaxLinter.lean Modified Mathlib/Tactic/Module.lean Modified Mathlib/Tactic/Simps/Basic.lean Modified Mathlib/Topology/Algebra/Group/Basic.lean Modified Mathlib/Topology/Algebra/InfiniteSum/Defs.lean Modified Mathlib/Topology/Bases.lean 2025-11-28 08:05:23 a46dc89 feat(Geometry/Euclidean/../TriangleInequality): one equality case of the vector triangle inequality (#32100) This PR proves one equality case of the triangle inequality for angles. It also adds a `proof_wanted` for the bidirectional version. [#new members > Criterion for equality in the triangle inequality for angles @ 💬](https://leanprover.zulipchat.com/#narrow/channel/113489-new-members/topic/Criterion.20for.20equality.20in.20the.20triangle.20inequality.20for.20angles/near/560161005) ESTIMATED CHANGES Modified Mathlib/Geometry/Euclidean/Angle/Unoriented/TriangleInequality.lean + theorem InnerProductGeometry.angle_le_angle_add_angle_aux + theorem InnerProductGeometry.angle_le_angle_add_angle_of_norm_eq_one + theorem InnerProductGeometry.inner_normalize_ortho + theorem InnerProductGeometry.inner_normalized_ortho_sq_add_inner_sq_eq_one + theorem InnerProductGeometry.inner_ortho_nonneg_of_norm_eq_one + theorem InnerProductGeometry.inner_ortho_right_eq_sin_angle - theorem angle_le_angle_add_angle_aux - theorem angle_le_angle_add_angle_of_norm_eq_one - theorem inner_normalize_ortho - theorem inner_normalized_ortho_sq_add_inner_sq_eq_one - theorem inner_ortho_nonneg_of_norm_eq_one - theorem inner_ortho_right_eq_sin_angle 2025-11-28 08:05:21 0b4fac0 feat: fixed points of normal subgroup is stable under the group action (#31511) The set of fixed points of a normal subgroup is stable under the group action. ESTIMATED CHANGES Modified Mathlib/GroupTheory/GroupAction/SubMulAction.lean + theorem coe_smul_fixedPoints_of_normal + def fixedPointsSubMulOfNormal + theorem smul_mem_fixedPoints_of_normal 2025-11-28 08:05:18 a945bbf feat(Geometry/Euclidean/SignedDist): `signedInfDist_reindex` (#31256) Add a lemma saying how `Affine.Simplex.signedInfDist` interacts with `Affine.Simplex.reindex`. ESTIMATED CHANGES Modified Mathlib/Geometry/Euclidean/SignedDist.lean + theorem Affine.Simplex.signedInfDist_reindex 2025-11-28 08:05:14 71c5ee2 feat(Geometry/Euclidean/Altitude): `reindex` lemmas (#31056) Add lemmas about `altitude`, `altitudeFoot` and `height` applied to `Simplex.reindex`. ESTIMATED CHANGES Modified Mathlib/Geometry/Euclidean/Altitude.lean + theorem Affine.Simplex.altitudeFoot_reindex + theorem Affine.Simplex.altitude_reindex + theorem Affine.Simplex.height_reindex 2025-11-28 08:05:12 e4f6915 chore(CategoryTheory): move `Closed` directory into `Monoidal` (#30771) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Category/ModuleCat/Monoidal/Closed.lean Modified Mathlib/AlgebraicTopology/SimplicialSet/Monoidal.lean Modified Mathlib/AlgebraicTopology/SimplicialSet/NerveAdjunction.lean Modified Mathlib/CategoryTheory/Category/Cat/CartesianClosed.lean Modified Mathlib/CategoryTheory/Distributive/Monoidal.lean Modified Mathlib/CategoryTheory/Limits/Sifted.lean Modified Mathlib/CategoryTheory/Monoidal/Braided/Reflection.lean Renamed Mathlib/CategoryTheory/Closed/Monoidal.lean to Mathlib/CategoryTheory/Monoidal/Closed/Basic.lean Renamed Mathlib/CategoryTheory/Closed/Cartesian.lean to Mathlib/CategoryTheory/Monoidal/Closed/Cartesian.lean Renamed Mathlib/CategoryTheory/Closed/Enrichment.lean to Mathlib/CategoryTheory/Monoidal/Closed/Enrichment.lean Renamed Mathlib/CategoryTheory/Closed/Functor.lean to Mathlib/CategoryTheory/Monoidal/Closed/Functor.lean Renamed Mathlib/CategoryTheory/Closed/FunctorCategory/Basic.lean to Mathlib/CategoryTheory/Monoidal/Closed/FunctorCategory/Basic.lean Renamed Mathlib/CategoryTheory/Closed/FunctorCategory/Complete.lean to Mathlib/CategoryTheory/Monoidal/Closed/FunctorCategory/Complete.lean Renamed Mathlib/CategoryTheory/Closed/FunctorCategory/Groupoid.lean to Mathlib/CategoryTheory/Monoidal/Closed/FunctorCategory/Groupoid.lean Renamed Mathlib/CategoryTheory/Closed/FunctorToTypes.lean to Mathlib/CategoryTheory/Monoidal/Closed/FunctorToTypes.lean Renamed Mathlib/CategoryTheory/Closed/Ideal.lean to Mathlib/CategoryTheory/Monoidal/Closed/Ideal.lean Renamed Mathlib/CategoryTheory/Closed/Types.lean to Mathlib/CategoryTheory/Monoidal/Closed/Types.lean Renamed Mathlib/CategoryTheory/Closed/Zero.lean to Mathlib/CategoryTheory/Monoidal/Closed/Zero.lean Modified Mathlib/CategoryTheory/Monoidal/DayConvolution/Closed.lean Modified Mathlib/CategoryTheory/Monoidal/Rigid/Basic.lean Modified Mathlib/CategoryTheory/Monoidal/Subcategory.lean Modified Mathlib/CategoryTheory/Preadditive/Projective/Internal.lean Modified Mathlib/CategoryTheory/Sites/CartesianClosed.lean Modified Mathlib/CategoryTheory/Sites/Monoidal.lean Modified Mathlib/Condensed/CartesianClosed.lean Modified Mathlib/Condensed/Light/CartesianClosed.lean 2025-11-28 07:12:46 6726d3f refactor: Change `isChain_get_iff*` lemmas (#32062) Changes `isChain_iff_get` lemmas to make them more usable. ESTIMATED CHANGES Modified Archive/Imo/Imo2024Q5.lean Modified Mathlib/Data/List/Chain.lean +/- theorem List.isChain_reverse Modified Mathlib/Data/List/ChainOfFn.lean Modified Mathlib/Order/RelSeries.lean 2025-11-28 06:58:06 b514609 feat: add `DifferentiableAt.lineDifferentiableAt` (#32183) ESTIMATED CHANGES Modified Mathlib/Analysis/Calculus/LineDeriv/Basic.lean + theorem DifferentiableAt.lineDifferentiableAt + theorem DifferentiableWithinAt.lineDifferentiableWithinAt 2025-11-28 06:43:00 0d0a7e4 chore(Analysis/Distribution): proof simplifications (#32197) ESTIMATED CHANGES Modified Mathlib/Analysis/Distribution/TemperateGrowth.lean 2025-11-28 00:08:25 963c484 fix: restore `multipliableUniformlyOn_iff_hasProdUniformlyOn` (#32191) Add back `multipliableUniformlyOn_iff_hasProdUniformlyOn`, which was accidentally removed while resolving a merge conflict in #31313. ESTIMATED CHANGES Modified Mathlib/Topology/Algebra/InfiniteSum/UniformOn.lean + theorem multipliableUniformlyOn_iff_hasProdUniformlyOn 2025-11-27 23:09:31 37726fd fix(Linter/PrivateModule): do not consider reserved names as public (#32140) As discovered [on zulip](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/PrivateModule.20linter.20not.20firing). The declarations associated with reserved names are added to the environment lazily, and may therefore be added in downstream files. Further, they may be added to the public scope if their originating modules are `public import`s. For example, if `foo` is public in `M.Foo`, this causes `foo.eq_1` to be reserved as a name in downstream modules. If `M.Bar` uses `public import M.Foo`, then when the declaration for `foo.eq_1` is realized and added to the environment, it will end up in the public scope. We should still fire the linter in these cases if every non-reserved name is private. Hence, we ignore reserved names in the main loop and do not count them as public declarations from the current module. ESTIMATED CHANGES Modified Mathlib/Analysis/Calculus/ImplicitContDiff.lean Modified Mathlib/Tactic/Linter/PrivateModule.lean Modified Mathlib/Tactic/ToAdditive.lean Added MathlibTest/PrivateModuleLinter/reservedName1.lean + def foo Added MathlibTest/PrivateModuleLinter/reservedName2.lean 2025-11-27 22:32:55 cf0f1b2 feat(Bicategory/InducedBicategory): add induced bicategories (#30925) This PR adds a way of inducing a full bicategory structure on given type of objects with a map to the objects of some bicategory (i.e. with all 1-morphisms and all 2-morphisms). I have not tried to implement "locally induced bicategories" which should allow for a sub-class of 1-morphisms as well. This is because copying the naive approach and replacing the map F as for induced categories with a functor, one runs into issues when the equalities in F.map_comp and F.map_id are not defeq equalities. One could probably define locally full sub-bicategories using a pair of ObjectProperty + MorphismProperty to ensure that the inclusions are actually defeq, but I did not want to get into this. This is the migration of #25603 to a fork. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Bicategory/InducedBicategory.lean + structure CategoryTheory.Bicategory.InducedBicategory.Hom + structure CategoryTheory.Bicategory.InducedBicategory.Hom₂ + theorem CategoryTheory.Bicategory.InducedBicategory.eqToHom_hom + def CategoryTheory.Bicategory.InducedBicategory.forget + theorem CategoryTheory.Bicategory.InducedBicategory.hom_ext + theorem CategoryTheory.Bicategory.InducedBicategory.hom₂_ext + def CategoryTheory.Bicategory.InducedBicategory.isoMk + theorem CategoryTheory.Bicategory.InducedBicategory.mkHom_eqToHom + def CategoryTheory.Bicategory.InducedBicategory 2025-11-27 21:37:43 747865c chore(Data/Finset): golf entire `mem_finset_image` and `image_erase` using `grind` (#32189) ESTIMATED CHANGES Modified Mathlib/Data/Finset/Image.lean 2025-11-27 21:12:46 e183968 feat(Convex/Segment): add `lineMap_mem_openSegment` (#32181) ESTIMATED CHANGES Modified Mathlib/Analysis/Convex/Segment.lean + theorem lineMap_mem_openSegment 2025-11-27 20:24:57 e3df2e6 feat: move set inverse/negative inside binders (#32173) ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Pointwise/Set/Basic.lean + theorem Set.exists_inv_mem + theorem Set.forall_inv_mem 2025-11-27 19:21:49 139686f feat(Measure/../NoAtoms): add `Measure.ae_ne` (#32182) ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Measure/Typeclasses/NoAtoms.lean + theorem MeasureTheory.Measure.ae_ne 2025-11-27 19:21:47 48eb806 feat(MeasureTheory\Group\Action): add μ(c • s ∩ t) = μ(s ∩ c⁻¹ • t) and similar (#32117) Adding lemmas (and their symmetric version thereof) `μ(c • s ∩ t) = μ(s ∩ c⁻¹ • t)` `μ(c • s ∪ t) = μ(s ∪ c⁻¹ • t)` `μ(c • s ∖ t) = μ(s ∖ c⁻¹ • t)` `μ(c • s Δ t) = μ(s Δ c⁻¹ • t)` for μ a `SMulInvariantMeasure`. ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Group/Action.lean + theorem MeasureTheory.measure_inter_inv_smul + theorem MeasureTheory.measure_inv_smul_inter + theorem MeasureTheory.measure_inv_smul_sdiff + theorem MeasureTheory.measure_inv_smul_symmDiff + theorem MeasureTheory.measure_inv_smul_union + theorem MeasureTheory.measure_sdiff_inv_smul + theorem MeasureTheory.measure_symmDiff_inv_smul + theorem MeasureTheory.measure_union_inv_smul 2025-11-27 19:21:46 3486100 fix: reduce the amount of coercion instances that are always tried (#31168) Previously, there were a couple of coercion instances that are rarely used but still always tried (e.g. from `SignType`). This PR replaces those with `CoeDep` instances. Note: `CoeDep` is used here even though the coercions are non-dependent because it is similar to `CoeHTCT` but is meant to be used from the user side in contrast to `CoeHTCT`, which is an implementation detail. Zulip discussion: https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Matrix.20multiplication.20notation.20failed/with/548327898 ESTIMATED CHANGES Modified Mathlib/Data/Sign/Defs.lean 2025-11-27 18:23:02 98a6772 chore(Data/Sum): golf `Data.Sum.Basic` using `grind` (#32141) ESTIMATED CHANGES Modified Mathlib/Data/Sum/Basic.lean 2025-11-27 18:09:41 4e32118 feat: order instances on quotients (#29735) We define a `Preorder (Quotient s)` instance in the natural way, and prove that it can be strengthened to a `LinearOrder` when all equivalence classes are `OrdConnected`. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Order/Quotient.lean + theorem Quotient.le_def + theorem Quotient.lift_monotone + theorem Quotient.lt_of_mk_lt_mk + theorem Quotient.mk_le_mk + theorem Quotient.mk_lt_mk + theorem Quotient.mk_monotone 2025-11-27 17:00:35 4b2f10c chore: golf using the combination `ext` and `grind`. add `grind` annotations (#31307) ESTIMATED CHANGES Modified Mathlib/Algebra/Polynomial/Coeff.lean Modified Mathlib/Algebra/Polynomial/Reverse.lean Modified Mathlib/Combinatorics/Enumerative/Partition/Basic.lean Modified Mathlib/Combinatorics/Enumerative/Partition/GenFun.lean Modified Mathlib/Data/DFinsupp/Defs.lean Modified Mathlib/Data/Finset/Pi.lean Modified Mathlib/Data/PFun.lean Modified Mathlib/Data/Part.lean Modified Mathlib/Order/Interval/Finset/Basic.lean Modified Mathlib/Order/Interval/Finset/Defs.lean Modified Mathlib/Topology/EMetricSpace/BoundedVariation.lean 2025-11-27 17:00:33 4e83287 feat(Combinatorics/SimpleGraph): add lemma `IsTree.dist_ne_of_adj` and necessary lemmas (#30069) This contribution was created as part of the Utrecht Summerschool "Formalizing Mathematics in Lean" in July 2025. ESTIMATED CHANGES Modified Mathlib/Combinatorics/SimpleGraph/Acyclic.lean + theorem SimpleGraph.IsAcyclic.mem_support_of_ne_mem_support_of_adj_of_isPath + theorem SimpleGraph.IsAcyclic.ne_mem_support_of_support_of_adj_of_isPath + theorem SimpleGraph.IsAcyclic.path_concat + theorem SimpleGraph.IsTree.dist_ne_of_adj 2025-11-27 16:44:54 62a39c1 feat(Geometry/Euclidean/Triangle): greatest / least angles in a triangle (#32006) Add lemmas that the greatest angle in a (possibly degenerate) triangle is at least π / 3, and the least is at most π / 3, along with versions with strict inequality if the angles aren't all equal. ESTIMATED CHANGES Modified Mathlib/Geometry/Euclidean/Triangle.lean + theorem EuclideanGeometry.angle_le_pi_div_three_of_le_of_le + theorem EuclideanGeometry.angle_lt_pi_div_three_of_le_of_le_of_ne + theorem EuclideanGeometry.pi_div_three_le_angle_of_le_of_le + theorem EuclideanGeometry.pi_div_three_lt_angle_of_le_of_le_of_ne 2025-11-27 16:44:52 c40b7e5 feat(NumberTheory/Real/GoldenRatio): add two more fib identities (#31401) ESTIMATED CHANGES Modified Mathlib/NumberTheory/Real/GoldenRatio.lean + theorem Real.fib_succ_sub_goldenConj_mul_fib + theorem Real.goldenConj_mul_fib_succ_add_fib 2025-11-27 16:44:50 2e1927f feat(Data/Nat/Choose/Multinomial): add multinomial_eq_of_support_subset (#30976) ESTIMATED CHANGES Modified Mathlib/Data/Nat/Choose/Multinomial.lean + theorem Finsupp.multinomial_eq_of_support_subset 2025-11-27 16:30:59 2b4fa09 feat: generalize `Finsupp.lex_lt_iff_of_unique` (#30973) ESTIMATED CHANGES Modified Mathlib/Data/DFinsupp/Lex.lean + theorem DFinsupp.lex_iff_of_unique + theorem DFinsupp.lex_le_iff_of_unique + theorem DFinsupp.lex_lt_iff_of_unique Modified Mathlib/Data/Finsupp/Lex.lean + theorem Finsupp.lex_iff_of_unique +/- theorem Finsupp.lex_le_iff_of_unique +/- theorem Finsupp.lex_lt_iff_of_unique Modified Mathlib/Order/PiLex.lean + theorem Pi.colex_le_iff_of_unique + theorem Pi.colex_lt_iff_of_unique + theorem Pi.lex_iff_of_unique + theorem Pi.lex_le_iff_of_unique + theorem Pi.lex_lt_iff_of_unique 2025-11-27 16:30:57 d855d70 feat: `PadicInt` is isomorphic to the integers of the uniform space completion `(Rat.padicValuation p).Completion` (#30363) - Uniform and ring isomorphisms between `𝒪[(Rat.padicValuation p).Completion]` and `ℤ_[p]` - A homeomorphism `e : X ≃ Y` gives a closed set `{ x : X | p x ↔ q (e x) }` for clopen subsets given by `p` and `q` - Move `Padic.isUnit_den` to an earlier file to avoid having to import `Padics.RingHoms` unnecessarily ESTIMATED CHANGES Modified Mathlib/NumberTheory/Padics/PadicIntegers.lean + theorem PadicInt.isUnit_den Modified Mathlib/NumberTheory/Padics/RingHoms.lean - theorem PadicInt.isUnit_den Modified Mathlib/NumberTheory/Padics/WithVal.lean + theorem Padic.norm_rat_le_one_iff_padicValuation_le_one + theorem Padic.withValUniformEquiv_cast_apply + theorem Padic.withValUniformEquiv_norm_le_one_iff Modified Mathlib/Topology/Homeomorph/Defs.lean + theorem Homeomorph.isClosed_setOf_iff 2025-11-27 16:17:09 633ee94 feat(Analysis/Distribution/ContDiffMapSupportedIn): add withSeminorms statement (#30236) Add `withSeminorms` instance to `ContDiffMapSupportedIn`, where the seminorm familiy is given by the sup-norm on the i-th derivative. Co-authored by: @ADedecker ESTIMATED CHANGES Modified Mathlib/Analysis/Distribution/ContDiffMapSupportedIn.lean + theorem ContDiffMapSupportedIn.norm_apply_le_seminorm + theorem ContDiffMapSupportedIn.norm_iteratedFDeriv_apply_le_seminorm + theorem ContDiffMapSupportedIn.norm_iteratedFDeriv_apply_le_seminorm_withOrder + theorem ContDiffMapSupportedIn.norm_toBoundedContinuousFunction + theorem ContDiffMapSupportedIn.toBoundedContinuousFunctionCLM_apply + theorem ContDiffMapSupportedIn.toBoundedContinuousFunctionCLM_eq_of_scalars + theorem ContDiffMapSupportedIn.toBoundedContinuousFunctionLM_apply 2025-11-27 14:44:54 bc044be chore: add deprecations from #30242 (#32172) ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Monoid/Unbundled/Basic.lean 2025-11-27 14:13:05 eaef552 feat(Data/Nat/PrimeFin): add API for Nat.primeFactors (#32145) We add three API lemmas for `Nat.primeFactors` (in the namespace `Nat.Prime`, to allow for dot notation). See the discussion on Zulip at [#PR reviews > #30273 (already merged) @ 💬](https://leanprover.zulipchat.com/#narrow/channel/144837-PR-reviews/topic/.2330273.20.28already.20merged.29/near/560237631). ESTIMATED CHANGES Modified Mathlib/Data/Nat/PrimeFin.lean + theorem Nat.Prime.mem_primeFactors' + theorem Nat.Prime.mem_primeFactors + theorem Nat.Prime.mem_primeFactors_self 2025-11-27 13:47:20 9ea0d96 feat(RingTheory): `IsStandardEtale` (#32138) ESTIMATED CHANGES Modified Mathlib/Algebra/Polynomial/Bivariate.lean - theorem Polynomial.Bivariate.Polynomial.Bivariate.pderiv_one_equivMvPolynomial - theorem Polynomial.Bivariate.Polynomial.Bivariate.pderiv_zero_equivMvPolynomial + theorem Polynomial.Bivariate.pderiv_one_equivMvPolynomial + theorem Polynomial.Bivariate.pderiv_zero_equivMvPolynomial Modified Mathlib/RingTheory/Etale/Basic.lean - theorem Algebra.FormallyEtale.Algebra.FormallyEtale.iff_of_surjective - theorem Algebra.FormallyEtale.Algebra.FormallyEtale.of_restrictScalars + theorem Algebra.FormallyEtale.iff_of_surjective + theorem Algebra.FormallyEtale.of_restrictScalars Modified Mathlib/RingTheory/Etale/StandardEtale.lean + theorem Algebra.IsStandardEtale.of_equiv + theorem Algebra.IsStandardEtale.of_isLocalizationAway + theorem Algebra.IsStandardEtale.of_surjective + theorem StandardEtalePresentation.aeval_val_equivMvPolynomial + def StandardEtalePresentation.equivRing + theorem StandardEtalePresentation.equivRing_symm_X + theorem StandardEtalePresentation.equivRing_x + theorem StandardEtalePresentation.exists_mul_aeval_x_g_pow_eq_aeval_x + def StandardEtalePresentation.mapEquiv + def StandardEtalePresentation.toPresentation + def StandardEtalePresentation.toSubmersivePresentation + theorem StandardEtalePresentation.toSubmersivePresentation_jacobian + structure StandardEtalePresentation Modified Mathlib/RingTheory/Extension/Generators.lean + theorem Algebra.Generators.ker_ofAlgHom 2025-11-27 13:47:18 4e93559 feat(CyclotomicField): splitting of the prime `p` in `ℚ⟮ζₘ⟯` when `p` does not divide `m` (#31946) This PR proves that when the prime `p` does not divide `m`, it splits completely in the cyclotomic field `ℚ(ζₘ)`. Also change `liesOver_span_zeta_sub_one` from a theorem to an instance for better typeclass inference ESTIMATED CHANGES Modified Mathlib/NumberTheory/NumberField/Basic.lean + theorem NumberField.RingOfIntegers.minpoly_coe Modified Mathlib/NumberTheory/NumberField/Cyclotomic/Ideal.lean + theorem IsCyclotomicExtension.Rat.inertiaDegIn_of_not_dvd + theorem IsCyclotomicExtension.Rat.inertiaDeg_of_not_dvd - theorem IsCyclotomicExtension.Rat.liesOver_span_zeta_sub_one + theorem IsCyclotomicExtension.Rat.ramificationIdxIn_of_not_dvd + theorem IsCyclotomicExtension.Rat.ramificationIdx_of_not_dvd 2025-11-27 13:47:15 f32d859 feat(CategoryTheory): add predicate `IsRepresentedBy` (#31337) We define the predicate `IsRepresentedBy`: A functor `F` is represented by `X` with universal element `x : F.obj X` if the natural transformation `yoneda.obj X ⟶ F` induced by `x` is an isomorphism. We also relate this to the other existing ways of expressing a functor is representable. This is part of a series towards expressing a certain morphism is an analytification morphism, which will be defined in terms of `IsRepresentedBy`. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/RepresentedBy.lean + theorem CategoryTheory.Functor.IsRepresentable.iff_exists_isRepresentedBy + theorem CategoryTheory.Functor.IsRepresentedBy.iff_exists_representableBy + theorem CategoryTheory.Functor.IsRepresentedBy.iff_isIso_uliftYonedaEquiv + theorem CategoryTheory.Functor.IsRepresentedBy.iff_natIso + theorem CategoryTheory.Functor.IsRepresentedBy.iff_of_isoObj + theorem CategoryTheory.Functor.IsRepresentedBy.of_isRepresentable + theorem CategoryTheory.Functor.IsRepresentedBy.of_isoObj + theorem CategoryTheory.Functor.IsRepresentedBy.of_natIso + theorem CategoryTheory.Functor.IsRepresentedBy.representableBy_homEquiv_apply + structure CategoryTheory.Functor.IsRepresentedBy + theorem CategoryTheory.Functor.RepresentableBy.isRepresentedBy Modified Mathlib/CategoryTheory/Yoneda.lean + def CategoryTheory.Functor.CorepresentableBy.equivOfIsoObj + def CategoryTheory.Functor.CorepresentableBy.equivUliftCoyonedaIso + def CategoryTheory.Functor.CorepresentableBy.ofIsoObj + def CategoryTheory.Functor.RepresentableBy.equivOfIsoObj + def CategoryTheory.Functor.RepresentableBy.equivUliftYonedaIso + def CategoryTheory.Functor.RepresentableBy.ofIsoObj + def CategoryTheory.Functor.corepresentableByUliftFunctorEquiv + theorem CategoryTheory.Functor.isCorepresentable_comp_uliftFunctor_iff + theorem CategoryTheory.Functor.isRepresentable_comp_uliftFunctor_iff + def CategoryTheory.Functor.representableByUliftFunctorEquiv 2025-11-27 13:06:23 8c00a0d feat: `RingEquiv.restrict` (#31846) ESTIMATED CHANGES Modified Mathlib/Algebra/Ring/Subring/Basic.lean + def RingEquiv.restrict 2025-11-27 13:06:22 ba9cbd6 feat(LinearAlgebra/AffineSpace/Simplex/Basic): faces and `reindex` (#31054) Add lemmas about the set of vertices of a `face` or `faceOpposite` of `Simplex.reindex`. ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/AffineSpace/Simplex/Basic.lean + theorem Affine.Simplex.range_faceOpposite_reindex + theorem Affine.Simplex.range_face_reindex 2025-11-27 12:51:52 93fc5cb feat(Analysis/Distribution): natural powers of temperate functions (#32166) We prove that the natural powers of a temperate growth function is of temperate growth. We also remove some unnecessary namespace indicators, this does not change the theorem names. ESTIMATED CHANGES Modified Mathlib/Analysis/Distribution/TemperateGrowth.lean +/- theorem Function.HasTemperateGrowth.id' +/- theorem Function.HasTemperateGrowth.id +/- theorem Function.HasTemperateGrowth.mul + theorem Function.HasTemperateGrowth.pow +/- theorem Function.HasTemperateGrowth.smul 2025-11-27 12:30:39 a30baca feat: bounded Lp norm of limit if converge in measure (#31882) We prove that if the `eLpNorm` of a collection of `AEStronglyMeasurable` functions that converges in measure is bounded by some constant `C`, then the `eLpNorm` of its limit is also bounded by `C`. We also weaken some assumptions in proofs of other theorems. ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Function/ConvergenceInMeasure.lean + theorem MeasureTheory.eLpNorm_le_of_tendstoInMeasure +/- theorem MeasureTheory.tendstoInMeasure_iff_enorm +/- theorem MeasureTheory.tendstoInMeasure_iff_measureReal_enorm +/- theorem MeasureTheory.tendstoInMeasure_iff_measureReal_norm +/- theorem MeasureTheory.tendstoInMeasure_iff_norm +/- theorem MeasureTheory.tendstoInMeasure_of_tendsto_eLpNorm_top Modified Mathlib/MeasureTheory/Function/LpSpace/Complete.lean + theorem MeasureTheory.Lp.eLpNorm_le_of_ae_tendsto 2025-11-27 11:47:40 5b3c429 feat(Algebra/Algebra/Basic): add RingHom.commSemiringToCommRing (#30974) Co-authored by: @AntoineChambert-Loir ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/Basic.lean 2025-11-27 10:43:10 9819a5b feat(Algebra/Homology): cohomology of HomComplex (#32091) Given `ℤ`-indexed cochain complexes `K` and `L`, and `n : ℤ`, we introduce a type `HomComplex.CohomologyClass K L n` which is the quotient of `HomComplex.Cocycle K L n` which identifies cohomologous cocycles. We construct this type of cohomology classes instead of using the homology API because `Cochain K L` can be considered both as a complex of abelian groups or as a complex of `R`-modules when the category is `R`-linear. This also complements the API around `HomComplex` which is centered on terms in types `Cochain` or `Cocycle` which are suitable for computations. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Homology/HomotopyCategory/HomComplex.lean + def CochainComplex.HomComplex.Cocycle.isKernel + def CochainComplex.HomComplex.Cocycle.toCochainAddMonoidHom Added Mathlib/Algebra/Homology/HomotopyCategory/HomComplexCohomology.lean + def CochainComplex.HomComplex.CohomologyClass.descAddMonoidHom + theorem CochainComplex.HomComplex.CohomologyClass.descAddMonoidHom_cohomologyClass + def CochainComplex.HomComplex.CohomologyClass.mk + def CochainComplex.HomComplex.CohomologyClass.mkAddMonoidHom + theorem CochainComplex.HomComplex.CohomologyClass.mk_add + theorem CochainComplex.HomComplex.CohomologyClass.mk_eq_zero_iff + theorem CochainComplex.HomComplex.CohomologyClass.mk_neg + theorem CochainComplex.HomComplex.CohomologyClass.mk_sub + theorem CochainComplex.HomComplex.CohomologyClass.mk_surjective + theorem CochainComplex.HomComplex.CohomologyClass.mk_zero + def CochainComplex.HomComplex.CohomologyClass + def CochainComplex.HomComplex.coboundaries + def CochainComplex.HomComplex.leftHomologyData' 2025-11-27 10:43:07 1ad1c36 feat(CategoryTheory/Sites): cover of pullback from cover of left or right component (#31336) To construct this, we also add a typeclass `Precoverage.RespectsIso` that asserts that a pre-`0`-hypercover being covering for a precoverage `J` implies being covering for every isomorphic pre-`0`-hypercover. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Sites/Hypercover/Zero.lean + theorem CategoryTheory.PreZeroHypercover.inv_hom_h₀_comp_f + theorem CategoryTheory.PreZeroHypercover.inv_inv_h₀_comp_f + theorem CategoryTheory.PreZeroHypercover.presieve₀_mem_iff_of_iso + theorem CategoryTheory.PreZeroHypercover.presieve₀_mem_of_iso + def CategoryTheory.PreZeroHypercover.pullbackCoverOfLeftIsoPullback₁ + def CategoryTheory.PreZeroHypercover.pullbackCoverOfRightIsoPullback₂ + theorem CategoryTheory.Precoverage.RespectsIso.of_forall_exists_iso + theorem CategoryTheory.Precoverage.ZeroHypercover.presieve₀_mem_of_iso Modified Mathlib/CategoryTheory/Sites/Sieves.lean + theorem CategoryTheory.Presieve.ofArrows_comp_eq_of_surjective + theorem CategoryTheory.Presieve.ofArrows_comp_le 2025-11-27 10:43:05 e716b7c feat: add piCongrSigmaFiber and piCongrFiberwise equivalences (#29706) ## Summary Add two new equivalence functions for working with fibers and sigma types: - `Equiv.piCongrSigmaFiber`: transforms between functions on sigma fibers and regular pi types - `Equiv.piCongrFiberwise`: lifts fiber-wise equivalences to product equivalences These functions are from the FLT (Fermat's Last Theorem) project and are useful for manipulating dependent function types indexed by fibers of a function. ## Details The new definitions allow for elegant transformations between: 1. Functions defined on sigma types representing fibers of a function 2. Regular dependent functions These are particularly useful in algebraic contexts where one needs to work with products indexed by fibers. ## Context This PR was prepared by Claude (Claude Code) based on the following prompt: > "Please read FLT/Mathlib/Logic/Equiv/Basic.lean, and also the corresponding file in the Mathlib repository. Please prepare a PR to Mathlib containing this content, putting it at an appropriate point in the corresponding Mathlib file. Make sure the PR is label FLT, and write in the PR comment an explanation that the PR was prepared by Claude, including quoting the prompting." The content is sourced from `/Users/kim/projects/lean/FLT/FLT/Mathlib/Logic/Equiv/Basic.lean` in the FLT project repository. 🤖 Generated with [Claude Code](https://claude.ai/code) ESTIMATED CHANGES Modified Mathlib/Logic/Equiv/Basic.lean + def Equiv.piCongrFiberwise + theorem Equiv.piCongrFiberwise_apply + theorem Equiv.piCongrFiberwise_symm_apply + def Equiv.piCongrSigmaFiber + theorem Equiv.piCongrSigmaFiber_apply + theorem Equiv.piCongrSigmaFiber_symm_apply 2025-11-27 10:43:03 03cc451 feat(SimpleGraph): helper lemmas for `Walk.IsSubwalk` (#29376) ESTIMATED CHANGES Modified Mathlib/Combinatorics/SimpleGraph/Walks/Subwalks.lean + theorem SimpleGraph.Walk.IsSubwalk.darts_isInfix + theorem SimpleGraph.Walk.IsSubwalk.darts_subset + theorem SimpleGraph.Walk.IsSubwalk.edges_isInfix + theorem SimpleGraph.Walk.IsSubwalk.edges_subset + theorem SimpleGraph.Walk.IsSubwalk.support_subset 2025-11-27 09:46:46 f157c2c feat: add Kernel.restrict_const (#32167) This PR adds a simple lemma Kernel.restrict_const showing that the restriction of a constant kernel to a measurable set s commutes with the restriction of the underlying measure. Specifically, it proves: (Kernel.const α μ).restrict hs = Kernel.const α (μ.restrict s) ESTIMATED CHANGES Modified Mathlib/Probability/Kernel/Basic.lean + theorem ProbabilityTheory.Kernel.restrict_const 2025-11-27 09:46:45 a0d8a53 chore: add missing deprecation `logMahlerMeasure_mul_eq_add_logMahelerMeasure` (#32148) From #30548. ESTIMATED CHANGES Modified Mathlib/Analysis/Polynomial/MahlerMeasure.lean 2025-11-27 09:46:43 d7c53e9 feat: add centralMoment_congr_ae lemma (#31985) Add `centralMoment_congr_ae` lemma showing that central moments are equal for almost-everywhere equal random variables. This is useful for working with random variables that are only defined up to a.e. equality. Contributed by sequential-intelligence-lab(SIL), University of Virginia ESTIMATED CHANGES Modified Mathlib/Probability/Moments/Basic.lean + theorem ProbabilityTheory.centralMoment_congr_ae 2025-11-27 09:46:41 a3c69a1 feat(Data/Nat): reducible strong recursion (#30181) + Redefine `Nat.strongRec'` to allow Lean kernel computation (reduction) with the strong Nat recursor. TODO: maybe merge this with Batteries' `Nat.strongRec`. + Redefine `Nat.xgcd` to use `Nat.strongRec'` to allow kernel reduction. ESTIMATED CHANGES Modified Mathlib/Data/Int/GCD.lean +/- theorem Nat.gcdA_zero_left +/- theorem Nat.gcdB_zero_left +/- def Nat.xgcdAux +/- theorem Nat.xgcd_zero_left Modified Mathlib/Data/Nat/Init.lean + theorem Nat.strongRec'_spec +/- def Nat.strongRecOn' 2025-11-27 08:57:55 b76a60f feat(AlgebraicTopology): multicoequalizers and pushouts of simplicial sets (#31797) Let `X` be a simplicial set. In this PR, we show that a bicartesian square in the lattice of subcomplexes of `X` gives a pushout in the category `SSet`, and "multicoequalizer diagrams" in this lattice also allow to express certain subcomplexes as the multicoequalizers in the category of simplicial sets. From https://github.com/joelriou/topcat-model-category ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/AlgebraicTopology/SimplicialSet/Subcomplex.lean - def SSet.Subcomplex.eqToIso Added Mathlib/AlgebraicTopology/SimplicialSet/SubcomplexColimits.lean + theorem SSet.Subcomplex.BicartSq.isPushout Modified Mathlib/CategoryTheory/Limits/Shapes/Multiequalizer.lean Modified Mathlib/CategoryTheory/Limits/Types/Multicoequalizer.lean + theorem CategoryTheory.Limits.Types.isPushout_of_bicartSq Modified Mathlib/Order/CompleteLattice/MulticoequalizerDiagram.lean 2025-11-27 08:57:52 616b0cf feat(Order): helper lemmas for `IsChain`/`IsAntichain` (#30003) These were useful in formalizing Dilworth's theorem. ESTIMATED CHANGES Modified Mathlib/Order/Antichain.lean + theorem isAntichain_coe_univ_iff + theorem isAntichain_preimage_subtypeVal Modified Mathlib/Order/Preorder/Chain.lean + theorem isChain_coe_univ_iff + theorem isChain_preimage_subtypeVal 2025-11-27 08:19:38 697c2c8 feat(Analysis/Convex/Between): `InjOn` lemmas (#32164) Add lemmas `Set.InjOn.wbtw_map_iff` and `Set.InjOn.sbtw_map_iff`, analogous to those already present for `Function.Injective`. For use together with #32161 in #31205. ESTIMATED CHANGES Modified Mathlib/Analysis/Convex/Between.lean + theorem Set.InjOn.sbtw_map_iff + theorem Set.InjOn.wbtw_map_iff + theorem affineSegment_subset_affineSpan 2025-11-27 08:19:36 3f65178 feat(LinearAlgebra/AffineSpace/Basis): spaces of coordinates (#32161) Define `fintypeAffineCoords`, the `AffineSubspace` of `ι → k` (for `Fintype ι`) where coordinates sum to `1`, and the analogous `finsuppAffineCoords` for a general `ι`. The `Finsupp` case was recently discussed in #30854 and is the subject of a TODO (not addressed) in this file. The `Fintype` case is intended for use in #31205 to refactor a proof based on review there. ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/AffineSpace/Basis.lean + theorem AffineIndependent.injOn_affineCombination_fintypeAffineCoords + def finsuppAffineCoords + def fintypeAffineCoords + theorem mem_finsuppAffineCoords_iff_linearCombination + theorem mem_fintypeAffineCoords_iff_sum 2025-11-27 08:19:34 57005bf feat(LinearAlgebra/AffineSpace/Simplex/Basic): `affineCombination_mem_affineSpan_faceOpposite_iff` (#32150) Add a convenience lemma that reflects common patterns appearing in #31205 and pointed out in review of that PR. ```lean lemma affineCombination_mem_affineSpan_faceOpposite_iff {n : ℕ} [NeZero n] {s : Simplex k P n} {w : Fin (n + 1) → k} (hw : ∑ i, w i = 1) {i : Fin (n + 1)} : Finset.univ.affineCombination k s.points w ∈ affineSpan k (Set.range (s.faceOpposite i).points) ↔ w i = 0 := by ``` ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/AffineSpace/Simplex/Basic.lean + theorem Affine.Simplex.affineCombination_mem_affineSpan_faceOpposite_iff 2025-11-27 08:19:33 c1b2e4a feat(CategoryTheory/Triangulated): right orthogonal and localization (#31843) In this PR, we show that if `P` is a triangulated subcategory of a triangulated category `C`, if `L : C ⥤ D` is the localization functor to the Verdier quotient by `P`, and `Y : C` belongs to the right orthogonal of `P`, then morphisms `X ⟶ Y` identify to morphisms `L.obj X ⟶ L.obj Y`. (In the case of the localization functor from the category of complexes to the derived category of an abelian category, this will allow the computation of morphisms to a K-injective complex in the derived category as homotopy classes of morphisms.) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Triangulated/Orthogonal.lean + theorem CategoryTheory.ObjectProperty.isLocal_trW + theorem CategoryTheory.ObjectProperty.rightOrthogonal.map_bijective_of_isTriangulated 2025-11-27 08:19:31 34bdc72 feat(CategoryTheory): DiagramWithUniqueTerminal (#31426) This PR sets up the type `DiagramWithUniqueTerminal` of diagrams of bounded cardinality with a unique terminal object in a filtered category. This shall be used in #30605 in order to show that for any filtered category, there is a final functor from a directed poset. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Presentable/Directed.lean + theorem CategoryTheory.IsCardinalFiltered.exists_cardinal_directed.Diagram.IsTerminal.lift_self + theorem CategoryTheory.IsCardinalFiltered.exists_cardinal_directed.Diagram.IsTerminal.prop + structure CategoryTheory.IsCardinalFiltered.exists_cardinal_directed.Diagram.IsTerminal + def CategoryTheory.IsCardinalFiltered.exists_cardinal_directed.Diagram.iSup + def CategoryTheory.IsCardinalFiltered.exists_cardinal_directed.Diagram.single + def CategoryTheory.IsCardinalFiltered.exists_cardinal_directed.Diagram.sup + structure CategoryTheory.IsCardinalFiltered.exists_cardinal_directed.Diagram + theorem CategoryTheory.IsCardinalFiltered.exists_cardinal_directed.DiagramWithUniqueTerminal.ext + structure CategoryTheory.IsCardinalFiltered.exists_cardinal_directed.DiagramWithUniqueTerminal + def CategoryTheory.IsCardinalFiltered.exists_cardinal_directed.functor + def CategoryTheory.IsCardinalFiltered.exists_cardinal_directed.functorMap + theorem CategoryTheory.IsCardinalFiltered.exists_cardinal_directed.functorMap_comp + theorem CategoryTheory.IsCardinalFiltered.exists_cardinal_directed.functorMap_id 2025-11-27 08:19:29 eee0187 chore: remove obsolete NormDigits namespace (#30248) In Lean 3, `nat.digits m n` with concrete numbers `m` `n` could be normalized via `norm_num`. [The logic enabling that](https://github.com/leanprover-community/mathlib3/blob/65a1391a0106c9204fe45bc73a039f056558cb83/src/data/nat/digits.lean#L599-L678) was partially ported over to Lean 4 in the `NormDigits` namespace, but never was completed. Independently, simprocs as introduced in Lean v4.6.0 made it so that `simp [Nat.digits, Nat.digitsAux]` could normalize `Nat.digits m n` without any need for the special `NormDigits` code. More recently, #25864 made it so that just plain `rfl` can normalize `Nat.digits m n` (but note that a revert PR has been proposed in #30246). Therefore, the `NormDigits` namespace is no longer relevent and should be deleted. ESTIMATED CHANGES Modified Mathlib/Data/Nat/Digits/Defs.lean - theorem Nat.NormDigits.digits_one - theorem Nat.NormDigits.digits_succ 2025-11-27 08:19:27 6148916 feat(FieldTheory/IsGaloisGroup): prove the Galois correspondence for `IsGaloisGroup` (#29688) This PR reproves the Galois correspondence for `IsGaloisGroup`. ESTIMATED CHANGES Modified Mathlib/FieldTheory/Galois/IsGaloisGroup.lean + theorem IsGaloisGroup.card_fixingSubgroup_eq_finrank + theorem IsGaloisGroup.finrank_fixedPoints_eq_card_subgroup + theorem IsGaloisGroup.fixedPoints_bot + theorem IsGaloisGroup.fixedPoints_fixingSubgroup + theorem IsGaloisGroup.fixedPoints_le_of_le + theorem IsGaloisGroup.fixedPoints_top + theorem IsGaloisGroup.fixingSubgroup_bot + theorem IsGaloisGroup.fixingSubgroup_fixedPoints + theorem IsGaloisGroup.fixingSubgroup_le_of_le + theorem IsGaloisGroup.fixingSubgroup_top + theorem IsGaloisGroup.intermediateFieldEquivSubgroup_apply + theorem IsGaloisGroup.intermediateFieldEquivSubgroup_symm_apply + theorem IsGaloisGroup.intermediateFieldEquivSubgroup_symm_apply_toDual + theorem IsGaloisGroup.le_fixedPoints_iff_le_fixingSubgroup + theorem IsGaloisGroup.map_mulEquivAlgEquiv_fixingSubgroup + theorem IsGaloisGroup.ofDual_intermediateFieldEquivSubgroup_apply + theorem IsGaloisGroup.of_mulEquiv_algEquiv 2025-11-27 08:19:25 c6867ad feat: ring-theoretic fractions in Rat (#28399) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/RingTheory/Localization/NumDen.lean + theorem IsFractionRing.num_den_unique Added Mathlib/RingTheory/Localization/Rat.lean + theorem Rat.associated_num_den + theorem Rat.isFractionRingDen + theorem Rat.isFractionRingNum + theorem Rat.isLocalizationIsInteger_iff 2025-11-27 08:19:23 4c04a1d feat(Data/Finsupp/Basic): Finsupp.optionElim (#25920) Similar to how `Finsupp.cons` constructs a map `Fin (n + 1) →₀ M` from a map `Fin n →₀ M`, we define `Finsupp.optionElim'` to construct a map `Option α →₀ M` from a map `α →₀ M`, given an additional value for `none`. We base this on the new `optionEquiv` definition. As a function, it behaves as `Option.elim'`, hence the name. We prove a variety of API lemmas, based on those for `Finsupp.cons`, to bring the definitions more in line with the contents of Data/Finsupp/Fin. Original PR: https://github.com/leanprover-community/mathlib4/pull/13861 - [x] depends on: #26309 ESTIMATED CHANGES Modified Mathlib/Data/Finsupp/Option.lean +/- theorem Finsupp.embDomain_some_none +/- theorem Finsupp.embDomain_some_some +/- theorem Finsupp.eq_option_embedding_update_none_iff + def Finsupp.optionElim + theorem Finsupp.optionElim_apply_eq_elim + theorem Finsupp.optionElim_apply_none + theorem Finsupp.optionElim_apply_some + theorem Finsupp.optionElim_eq_elim' + theorem Finsupp.optionElim_ne_zero_iff + theorem Finsupp.optionElim_ne_zero_of_left + theorem Finsupp.optionElim_ne_zero_of_right + theorem Finsupp.optionElim_some + theorem Finsupp.optionElim_zero +/- def Finsupp.some +/- theorem Finsupp.some_apply +/- theorem Finsupp.some_embDomain_some + theorem Finsupp.some_optionElim +/- theorem Finsupp.some_single_none +/- theorem Finsupp.some_single_some +/- theorem Finsupp.some_update_none +/- theorem Finsupp.some_zero 2025-11-27 07:13:13 9a1cf4a feat: more lemmas on `Concept` (#29995) These are used in the [`combinatorial-games`](https://github.com/vihdzp/combinatorial-games) repository. ESTIMATED CHANGES Modified Mathlib/Order/Concept.lean + theorem Concept.compl_extent + theorem Concept.compl_intent + def Concept.copy + theorem Concept.copy_eq + theorem Concept.isCompl_extent_intent 2025-11-27 04:08:03 516dddc feat(CategoryTheory/Presentable): transport via an equivalence (#30731) If `e : C ≌ D` is an equivalence of categories and `C` is locally presentable (resp. accessible), then so is `D`. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Presentable/Adjunction.lean + theorem CategoryTheory.Equivalence.hasCardinalFilteredGenerator + theorem CategoryTheory.Equivalence.isAccessibleCategory + theorem CategoryTheory.Equivalence.isCardinalAccessibleCategory + theorem CategoryTheory.Equivalence.isCardinalLocallyPresentable + theorem CategoryTheory.Equivalence.isLocallyPresentable 2025-11-27 01:03:27 49c9359 feat(SpecialFunctions/Log): tight bounds on artanh(x) (#31487) We provide tight bounds, thanks to Taylor series, on `1/2 (log ((1+x)/(1-x)))`. It is more convenient, however, to avoid Taylor series in the proof, since the geometric sum formula can be used to more easily calculate the difference. From the [exponential-ramsey project](https://github.com/b-mehta/exponential-ramsey/blob/main/src/log_small.lean), and used to give [very tight estimates on logs (Zulip)](https://leanprover.zulipchat.com/#narrow/channel/113488-general/topic/A.20million.20digits.20of.20log.202/with/554793210). ESTIMATED CHANGES Modified Mathlib/Analysis/SpecialFunctions/Log/Deriv.lean + theorem Real.hasDerivAt_half_log_one_add_div_one_sub_sub_sum_range + theorem Real.log_div_le_sum_range_add + theorem Real.sum_range_le_log_div + theorem Real.sum_range_sub_log_div_le 2025-11-26 23:22:18 6a9728e chore(CyclotomicField): add missing deprecated aliases for #30010 (#32149) These results were removed since they were not needed anymore but I forgot to add the deprecated aliases. ESTIMATED CHANGES Modified Mathlib/NumberTheory/NumberField/Cyclotomic/Basic.lean 2025-11-26 22:53:27 072b486 chore: fix more unused decidable instances in types (#32153) Found by #31747. After this, we should be able to turn on the unused decidable in type linter by default. ESTIMATED CHANGES Modified Mathlib/Combinatorics/SimpleGraph/Acyclic.lean +/- theorem SimpleGraph.IsAcyclic.isPath_iff_isChain +/- theorem SimpleGraph.IsAcyclic.isPath_iff_isTrail Modified Mathlib/Data/Finsupp/Sigma.lean +/- theorem Finsupp.embSigma_single 2025-11-26 22:16:13 102243f feat: Linearity of Derivation.compAlgebraMap (#32026) Let $Der_R(B,M)$ denote the $M$-valued derivations an $R$-algebra $B$. Assume we are also given an $R$-algebra homomorphism $\sigma: A\to B$. Then precomposing with $\sigma$ induces a map $Der_R(B,M)\to Der_R(A,M)$. This map is defined `Derivation.compAlgebraMap`. In this PR we enhance this map: When $R$ $A$ $M$ also form a scalar tower, this map is in fact $A$-linear, as witnessed by the added `Derivation.compAlgebraHom`. ESTIMATED CHANGES Modified Mathlib/RingTheory/Derivation/Basic.lean + def Derivation.compAlgebraMapL 2025-11-26 21:08:41 feb1bf6 feat: $C^n$ implicit function theorem (#30595) I formalise a proof that the implicit function obtained from a $C^n$ implicit equation ($n \geq 1$) is $C^n$. Roughly speaking, given an equation $f : E \times F \to F$ that is smooth at $(a,b) : E\times F$ and whose derivative $f'$ is in some sense non-singular, then there exists a function $\phi : E \to F$ such that $\phi(a) = b$, $f(x, \phi(x)) = f(a,b)$ for all $x$ in a neighbourhood of $a$, and $\phi$ is $C^n$ at $a$. The current implicit function theorem in Mathlib is quite general and not directly applicable to many familiar scenarios. The statements added by this PR correspond to, e.g., the way the theorem is described on Wikipedia, and will be directly useful for an upcoming formalisation of the smoothness theorem for flows of ODEs. - [x] depends on: #30607 ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Analysis/Calculus/Implicit.lean Added Mathlib/Analysis/Calculus/ImplicitContDiff.lean + theorem ImplicitFunctionData.contDiff_implicitFunction + theorem IsContDiffImplicitAt.apply_implicitFunction + theorem IsContDiffImplicitAt.comp_implicitFunctionAux_eq_snd + theorem IsContDiffImplicitAt.contDiffAt_implicitFunction + theorem IsContDiffImplicitAt.implicitFunctionAux_fst + def IsContDiffImplicitAt.implicitFunctionData + theorem IsContDiffImplicitAt.implicitFunctionData_leftFun_pt + theorem IsContDiffImplicitAt.implicitFunctionData_rightFun_pt + theorem IsContDiffImplicitAt.implicitFunction_def + structure IsContDiffImplicitAt 2025-11-26 20:07:35 addec83 chore: generalize le_sum_ofDigitsTerm_digits (#32072) ESTIMATED CHANGES Modified Mathlib/Analysis/Real/OfDigits.lean +/- theorem Real.le_sum_ofDigitsTerm_digits 2025-11-26 19:53:55 c15bb2e feat(Combinatorics/SimpleGraph): add simp lemma `getVert_map` for `Walk.map` (#32102) ESTIMATED CHANGES Modified Mathlib/Combinatorics/SimpleGraph/Walks/Maps.lean + theorem SimpleGraph.Walk.getVert_map 2025-11-26 19:12:37 20a0747 chore: rename LinearMap.coeFn_sum to LinearMap.coe_sum (#32054) ESTIMATED CHANGES Modified Mathlib/Algebra/Azumaya/Matrix.lean Modified Mathlib/Algebra/Lie/TraceForm.lean Modified Mathlib/Algebra/Lie/Weights/Basic.lean Modified Mathlib/Algebra/Module/Submodule/LinearMap.lean - theorem LinearMap.coeFn_sum + theorem LinearMap.coe_sum Modified Mathlib/LinearAlgebra/Basis/Defs.lean Modified Mathlib/LinearAlgebra/BilinearForm/Hom.lean Modified Mathlib/LinearAlgebra/BilinearForm/Properties.lean Modified Mathlib/LinearAlgebra/Contraction.lean Modified Mathlib/LinearAlgebra/Dual/Lemmas.lean Modified Mathlib/LinearAlgebra/Eigenspace/Basic.lean Modified Mathlib/LinearAlgebra/Matrix/SesquilinearForm.lean Modified Mathlib/LinearAlgebra/Matrix/ToLin.lean Modified Mathlib/LinearAlgebra/Multilinear/Basic.lean Modified Mathlib/LinearAlgebra/RootSystem/Base.lean Modified Mathlib/LinearAlgebra/RootSystem/Finite/CanonicalBilinear.lean Modified Mathlib/LinearAlgebra/SesquilinearForm/Star.lean Modified Mathlib/LinearAlgebra/TensorProduct/Pi.lean Modified Mathlib/RingTheory/Bialgebra/MonoidAlgebra.lean Modified Mathlib/Topology/Algebra/Module/LinearMap.lean Modified Mathlib/Topology/Algebra/Module/ModuleTopology.lean 2025-11-26 18:21:49 97cfe23 feat: updates to downstream repos scripts (#31839) Adds repos, improves the output for `scripts/downstream-tags.py`, and adds flags to `scripts/downstream_dashboard.py` so we can query particular defect types. ESTIMATED CHANGES Modified scripts/downstream-tags.py Modified scripts/downstream_dashboard.py Modified scripts/downstream_repos.yml 2025-11-26 18:08:05 95f1094 feat(SetTheory/ZFC/Ordinal): Lean ordinals to ZFC ordinals (#26544) We define `Ordinal.toZFSet` and prove that its outputs are precisely the ZFC ordinals. Moved from #19985. ESTIMATED CHANGES Modified Mathlib/SetTheory/ZFC/Basic.lean + theorem ZFSet.insert_eq Modified Mathlib/SetTheory/ZFC/Ordinal.lean + theorem Ordinal.coe_toZFSet + theorem Ordinal.mem_toPSet_iff + theorem Ordinal.mem_toZFSet_iff + theorem Ordinal.mk_toPSet + theorem Ordinal.rank_toPSet + theorem Ordinal.rank_toZFSet + theorem Ordinal.toZFSet_injective + theorem Ordinal.toZFSet_mem_toZFSet_iff + theorem Ordinal.toZFSet_monotone + theorem Ordinal.toZFSet_strictMono + theorem Ordinal.toZFSet_subset_toZFSet_iff + theorem Ordinal.toZFSet_succ + theorem Ordinal.toZFSet_zero + theorem Ordinal.type_toPSet + theorem ZFSet.IsOrdinal.rank_inj + theorem ZFSet.IsOrdinal.rank_le_iff_subset + theorem ZFSet.IsOrdinal.rank_lt_iff_mem + theorem ZFSet.IsOrdinal.toZFSet_rank_eq + theorem ZFSet.isOrdinal_iff_mem_range_toZFSet + theorem ZFSet.isOrdinal_succ + theorem ZFSet.isOrdinal_toZFSet Modified Mathlib/SetTheory/ZFC/PSet.lean + theorem PSet.mem_def Modified Mathlib/SetTheory/ZFC/Rank.lean + theorem ZFSet.rank_mk 2025-11-26 17:53:27 e8aa54a feat(Algebra/Homology): K-injective cochain complexes (#31941) We define the notion of K-injective cochain complex in an abelian category, and show that bounded below complexes of injective objects are K-injective. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Homology/HomotopyCategory/HomComplex.lean + def CochainComplex.HomComplex.Cochain.single + theorem CochainComplex.HomComplex.Cochain.single_v + theorem CochainComplex.HomComplex.Cochain.single_v_eq_zero Added Mathlib/Algebra/Homology/HomotopyCategory/HomComplexInduction.lean + def CochainComplex.HomComplex.Cochain.EqUpTo + def CochainComplex.HomComplex.Cochain.InductionUp.limitSequence + theorem CochainComplex.HomComplex.Cochain.InductionUp.limitSequence_eqUpTo + def CochainComplex.HomComplex.Cochain.InductionUp.sequence + theorem CochainComplex.HomComplex.Cochain.InductionUp.sequence_eqUpTo Added Mathlib/Algebra/Homology/HomotopyCategory/KInjective.lean + theorem CochainComplex.isKInjective_of_injective + theorem CochainComplex.isKInjective_of_injective_aux Modified docs/references.bib 2025-11-26 17:53:25 5e892b1 feat(Geometry/Convex/Cone): characterize salient pointed cones (#31648) Prove one lemma characterizing salient pointed cones by the intersection of the cone and its negative. This characterization is often used as the definition of salient in presentations where convex cones are by default pointed. ESTIMATED CHANGES Modified Mathlib/Geometry/Convex/Cone/Pointed.lean + theorem PointedCone.salient_iff_inter_neg_eq_singleton 2025-11-26 17:13:40 02e56b4 chore: tag `Finsupp.prod_congr` with `gcongr` (#28511) ESTIMATED CHANGES Modified Mathlib/Algebra/BigOperators/Finsupp/Basic.lean 2025-11-26 16:35:08 b29a244 feat(CategoryTheory): injective resolutions as cochain complexes indexed by the integers (#32003) Given an injective resolution `R` of an object `X` in an abelian category `C`, we define `R.cochainComplex : CochainComplex C ℤ`, which is the extension of `R.cocomplex : CochainComplex C ℕ`, and the quasi-isomorphism `R.ι' : (CochainComplex.singleFunctor C 0).obj X ⟶ R.cochainComplex`. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Homology/Embedding/CochainComplex.lean Modified Mathlib/Algebra/Homology/Embedding/Extend.lean + theorem HomologicalComplex.extendSingleIso_hom_f + theorem HomologicalComplex.extendSingleIso_inv_f + theorem HomologicalComplex.extend_single_d Modified Mathlib/Algebra/Homology/Embedding/ExtendHomology.lean Added Mathlib/CategoryTheory/Abelian/Injective/Extend.lean + theorem CategoryTheory.InjectiveResolution.cochainComplex_d + theorem CategoryTheory.InjectiveResolution.ι'_f_zero 2025-11-26 16:35:05 22ed602 feat(AlgebraicTopology/SimplicialSet): rank functions for pairings (#28346) This PR introduces the type of (weak) rank functions for pairings, a notion introduced by Sean Moss, *Another approach to the Kan-Quillen model structure*. Rank functions can be used in order to show that certain pairings are regular (i.e. the ancestrality relation is well founded). In a future PR, it shall be shown that a regular pairing admits a rank function to the natural numbers, which shall be used to show that the corresponding inclusion of simplicial sets is a (strong) anodyne extension. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/AlgebraicTopology/SimplicialSet/AnodyneExtensions/Pairing.lean + theorem SSet.Subcomplex.Pairing.AncestralRel.dim_le Added Mathlib/AlgebraicTopology/SimplicialSet/AnodyneExtensions/Rank.lean + theorem SSet.Subcomplex.Pairing.RankFunction.isRegular + def SSet.Subcomplex.Pairing.RankFunction.toWeakRankFunction + theorem SSet.Subcomplex.Pairing.RankFunction.wf_ancestralRel + structure SSet.Subcomplex.Pairing.RankFunction + theorem SSet.Subcomplex.Pairing.WeakRankFunction.isRegular + theorem SSet.Subcomplex.Pairing.WeakRankFunction.wf_ancestralRel + structure SSet.Subcomplex.Pairing.WeakRankFunction + structure SSet.Subcomplex.PairingCore.RankFunction + structure SSet.Subcomplex.PairingCore.WeakRankFunction 2025-11-26 16:01:49 87c9cf0 feat(SimpleGraph): characterise when `fromEdgeSet` is less than another graph (#31693) From ProofBench ESTIMATED CHANGES Modified Mathlib/Combinatorics/SimpleGraph/Basic.lean + theorem SimpleGraph.fromEdgeSet_le 2025-11-26 16:01:46 cb55ab3 feat: many lemmas on integrability of a bounded linear map composed with two functions (#31661) Specialize [ContinuousLinearMap.memLp_of_bilin](https://leanprover-community.github.io/mathlib4_docs/Mathlib/MeasureTheory/Function/Holder.html#ContinuousLinearMap.memLp_of_bilin) to the case where one of the argument is bounded and the other is integrable. Add a version of [MeasureTheory.Integrable.bdd_mul'](https://leanprover-community.github.io/mathlib4_docs/Mathlib/MeasureTheory/Function/L1Space/Integrable.html#MeasureTheory.Integrable.bdd_mul') for scalar multiplication. This is needed for #31666. ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Function/ConditionalExpectation/Real.lean Modified Mathlib/MeasureTheory/Function/Holder.lean + theorem ContinuousLinearMap.integrable_of_bilin_of_bdd_left + theorem ContinuousLinearMap.integrable_of_bilin_of_bdd_right Modified Mathlib/MeasureTheory/Function/L1Space/Integrable.lean - theorem MeasureTheory.Integrable.bdd_mul' +/- theorem MeasureTheory.Integrable.bdd_mul + theorem MeasureTheory.Integrable.bdd_smul + theorem MeasureTheory.Integrable.mul_bdd + theorem MeasureTheory.Integrable.smul_bdd Modified Mathlib/Probability/Martingale/Basic.lean 2025-11-26 16:01:44 f45ec66 feat: monotonicity of Holderianity (#31561) Prove many results related to the following two: - If a function is `r`-Hölder over a bounded space, then it is also `s`-Hölder when `s ≤ r`. - If a function is `r`-Hölder and `t`-Hölder, then it is `s`-Hölder for `r ≤ s ≤ t`. ESTIMATED CHANGES Modified Mathlib/Topology/MetricSpace/Holder.lean + theorem HolderOnWith.holderOnWith_zero_of_bounded + theorem HolderOnWith.interpolate + theorem HolderOnWith.interpolate_const + theorem HolderOnWith.mono_const + theorem HolderOnWith.of_le + theorem HolderOnWith.of_le_of_le + theorem HolderWith.holderWith_zero_of_bounded + theorem HolderWith.interpolate + theorem HolderWith.interpolate_const + theorem HolderWith.of_le + theorem HolderWith.of_le_of_le + theorem convex_setOf_holderOnWith + theorem convex_setOf_holderWith Modified Mathlib/Topology/MetricSpace/HolderNorm.lean + theorem HolderOnWith.exists_holderOnWith_of_le' + theorem HolderOnWith.exists_holderOnWith_of_le + theorem HolderOnWith.exists_holderOnWith_of_le_of_le + theorem MemHolder.memHolder_of_le_of_le + theorem MemHolder.of_le' + theorem MemHolder.of_le 2025-11-26 16:01:41 9183cd2 feat(Topology): `nhdsSetWithin` filter (#31077) Add a relative version `nhdsSetWithin` of `nhdsSet`, analogous to `nhdsWithin`. The main application of this is a slightly more general variant of the tube lemma (`generalized_tube_lemma_left`) that came up while working in analysis files. ESTIMATED CHANGES Modified Mathlib/Topology/Compactness/Compact.lean + theorem IsCompact.nhdsSetWithin_prod_eq + theorem generalized_tube_lemma' + theorem generalized_tube_lemma_left + theorem generalized_tube_lemma_right Modified Mathlib/Topology/ContinuousOn.lean + theorem Continuous.preimage_mem_nhdsSet + theorem Continuous.preimage_mem_nhdsSetWithin + theorem ContinuousOn.preimage_mem_nhdsSetWithin + theorem ContinuousOn.preimage_mem_nhdsSetWithin_of_mem_nhdsSet Modified Mathlib/Topology/Defs/Filter.lean + def nhdsSetWithin Modified Mathlib/Topology/NhdsWithin.lean + theorem Topology.IsInducing.map_nhdsSet_eq + theorem map_nhdsSet_induced_eq + theorem map_nhdsSet_subtype_val + theorem mem_nhdsSetWithin + theorem mem_nhdsSet_induced + theorem mem_nhdsSet_subtype_iff_nhdsSetWithin + theorem nhdsSetWithin_basis_open + theorem nhdsSetWithin_empty' + theorem nhdsSetWithin_empty + theorem nhdsSetWithin_eq_principal_of_subset + theorem nhdsSetWithin_hasBasis + theorem nhdsSetWithin_mono_left + theorem nhdsSetWithin_mono_right + theorem nhdsSetWithin_prod_le + theorem nhdsSetWithin_self + theorem nhdsSetWithin_singleton + theorem nhdsSetWithin_univ' + theorem nhdsSetWithin_univ + theorem nhdsSet_induced + theorem principal_inter_le_nhdsSetWithin 2025-11-26 16:01:38 5c71dcf feat(CyclotomicFields): generalize `IsPrimitiveRoot.integralPowerBasis` to all (nonzero) integers (#30010) ESTIMATED CHANGES Modified Mathlib/NumberTheory/NumberField/Cyclotomic/Basic.lean + theorem IsCyclotomicExtension.Rat.adjoin_singleton_eq_top + theorem IsCyclotomicExtension.Rat.cyclotomicRing_isIntegralClosure +/- theorem IsCyclotomicExtension.Rat.discr + theorem IsCyclotomicExtension.Rat.isIntegralClosure_adjoin_singleton + theorem IsCyclotomicExtension.Rat.natAbs_discr - theorem IsPrimitiveRoot.integralPowerBasis'_gen + theorem IsPrimitiveRoot.integralPowerBasisOfPrimePow_dim + theorem IsPrimitiveRoot.integralPowerBasisOfPrimePow_gen +/- theorem IsPrimitiveRoot.integralPowerBasis_dim +/- theorem IsPrimitiveRoot.integralPowerBasis_gen - theorem IsPrimitiveRoot.power_basis_int'_dim - theorem IsPrimitiveRoot.subOneIntegralPowerBasis'_gen - theorem IsPrimitiveRoot.subOneIntegralPowerBasis'_gen_prime + theorem IsPrimitiveRoot.subOneIntegralPowerBasisOfPrimePow_gen + theorem IsPrimitiveRoot.subOneIntegralPowerBasisOfPrimePow_gen_prime +/- theorem IsPrimitiveRoot.subOneIntegralPowerBasis_gen - theorem IsPrimitiveRoot.subOneIntegralPowerBasis_gen_prime 2025-11-26 15:02:01 76fe653 feat(Int): Shift{Left,Right} instance spec on how it interacts with Nat (#32142) replaces #28884 We have: ``` Int.shiftLeft_neg Int.shiftRight_neg Int.shiftLeft_natCast Int.shiftRight_natCast Int.shiftLeft_negSucc Int.shiftRight_negSucc ``` and we were missing a connection to the `HShiftLeft Int Nat Int` instance in core. This rectifies the missing API with ``` Int.shiftLeft_natCast_right Int.shiftRight_natCast_right ``` the negations are handled by existing simp lemmas ESTIMATED CHANGES Modified Mathlib/Data/Int/Bitwise.lean + theorem Int.shiftLeft_natCast_right + theorem Int.shiftRight_natCast_right 2025-11-26 15:01:59 d0b7272 fix: fix namespace of deprecations (#32137) ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/Quotient/Basic.lean 2025-11-26 15:01:58 cf46d6e chore(TotallyReal/TotallyComplex): remove the `NumberField` hypothesis (#31810) We remove the`NumberField` hypothesis in the definitions and most of the results. In general, it can be replaced by the hypothesis that the field is of characteristic zero and some integrality hypothesis. ESTIMATED CHANGES Modified Mathlib/NumberTheory/NumberField/CMField.lean Modified Mathlib/NumberTheory/NumberField/InfinitePlace/TotallyRealComplex.lean +/- theorem NumberField.IsTotallyComplex.nrRealPlaces_eq_zero +/- theorem NumberField.IsTotallyReal.maximalRealSubfield_eq_top +/- theorem NumberField.IsTotallyReal.nrComplexPlaces_eq_zero +/- theorem NumberField.IsTotallyReal.of_algebra +/- theorem NumberField.nrComplexPlaces_eq_zero_iff +/- theorem NumberField.nrRealPlaces_eq_zero_iff 2025-11-26 15:01:56 e47720c feat: Add multiplicative version of structure theorem for finitely generated abelian groups (#31526) This is similar to the multiplicative version of the structure theorem for *finite* abelian groups (using a pi type instead of a direct sum) ESTIMATED CHANGES Modified Mathlib/GroupTheory/FiniteAbelian/Basic.lean + theorem CommGroup.equiv_free_prod_prod_multiplicative_zmod 2025-11-26 15:01:54 c081da6 feat(MeasureTheory): typeclass for measurability of equality (#31512) Currently, there are multiple lemmas of the form `MeasurableSet {x | f x = g x}` with different typeclass assumptions. This PR unifies them using a new `MeasurableEq` typeclass. A new instance for second-countable Hausdorff spaces is also added. ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Constructions/BorelSpace/Basic.lean Modified Mathlib/MeasureTheory/Group/Arithmetic.lean - theorem ae_eq_trim_of_measurable - theorem measurableSet_eq_fun' - theorem measurableSet_eq_fun - theorem measurableSet_eq_fun_of_countable - theorem nullMeasurableSet_eq_fun Modified Mathlib/MeasureTheory/MeasurableSpace/Constructions.lean + theorem Measurable.const_eq + theorem Measurable.eq + theorem Measurable.eq_const + theorem measurableSet_eq_fun Modified Mathlib/MeasureTheory/MeasurableSpace/Defs.lean Modified Mathlib/MeasureTheory/Measure/AEMeasurable.lean + theorem nullMeasurableSet_eq_fun Modified Mathlib/MeasureTheory/Measure/Trim.lean + theorem ae_eq_trim_of_measurable Modified Mathlib/Probability/Kernel/CondDistrib.lean +/- theorem ProbabilityTheory.condExp_ae_eq_integral_condDistrib' Modified Mathlib/Probability/Kernel/Posterior.lean 2025-11-26 15:01:51 d503061 doc(Algebra): fix typos (#30669) Issues were found and fixed with help from Codex. ESTIMATED CHANGES Modified Mathlib/Algebra/AddConstMap/Basic.lean Modified Mathlib/Algebra/BigOperators/Pi.lean Modified Mathlib/Algebra/BrauerGroup/Defs.lean Modified Mathlib/Algebra/CharZero/AddMonoidHom.lean Modified Mathlib/Algebra/Field/Action/ConjAct.lean Modified Mathlib/Algebra/Field/Power.lean Modified Mathlib/Algebra/Field/ULift.lean Modified Mathlib/Algebra/GroupWithZero/Associated.lean Modified Mathlib/Algebra/Homology/ComplexShapeSigns.lean Modified Mathlib/Algebra/Homology/DerivedCategory/Basic.lean Modified Mathlib/Algebra/Homology/DerivedCategory/ShortExact.lean Modified Mathlib/Algebra/Homology/Factorizations/Basic.lean Modified Mathlib/Algebra/Homology/HomologySequenceLemmas.lean Modified Mathlib/Algebra/Homology/HomotopyCategory/HomComplex.lean Modified Mathlib/Algebra/Homology/HomotopyCategory/MappingCone.lean Modified Mathlib/Algebra/Homology/HomotopyCategory/ShortExact.lean Modified Mathlib/Algebra/Homology/HomotopyCategory/SingleFunctors.lean Modified Mathlib/Algebra/Homology/HomotopyCategory/Triangulated.lean Modified Mathlib/Algebra/Homology/HomotopyCofiber.lean Modified Mathlib/Algebra/Homology/Localization.lean Modified Mathlib/Algebra/Lie/Free.lean Modified Mathlib/Algebra/Lie/InvariantForm.lean Modified Mathlib/Algebra/Lie/Quotient.lean Modified Mathlib/Algebra/Lie/Sl2.lean Modified Mathlib/Algebra/Lie/Submodule.lean Modified Mathlib/Algebra/Lie/TraceForm.lean Modified Mathlib/Algebra/Order/Ring/Nat.lean Modified Mathlib/Algebra/Polynomial/Lifts.lean Modified Mathlib/Algebra/Polynomial/RuleOfSigns.lean Modified Mathlib/Algebra/SkewMonoidAlgebra/Single.lean Modified Mathlib/Algebra/Star/NonUnitalSubsemiring.lean 2025-11-26 15:01:47 75ee4ad feat(RingTheory/Congruence/Hom): prove basic isomorphisms theorems for ring congruences (#26277) This file contains elementary definitions involving congruence relations and morphisms for semirings, rings, and algebras. * `RingCon.ker`: the kernel of a monoid homomorphism as a congruence relation * `RingCon.lift`, `RingCon.liftₐ`: the homomorphism / the algebra morphism on the quotient given that the congruence is in the kernel * `RingCon.map`, `RingCon.mapₐ`: homomorphism / algebra morphism from a smaller to a larger quotient * `RingCon.quotientKerEquivRangeS`, `RingCon.quotientKerEquivRange`, `RingCon.quotientKerEquivRangeₐ` : the first isomorphism theorem for semirings (using `RingHom.rangeS`), rings (using `RingHom.range`) and algebras (using `AlgHom.range`). * `RingCon.comapQuotientEquivRangeS`, `RingCon.comapQuotientEquivRange`, `RingCon.comapQuotientEquivRangeₐ` : the second isomorphism theorem for semirings (using `RingHom.rangeS`), rings (using `RingHom.range`) and algebras (using `AlgHom.range`). * `RingCon.quotientQuotientEquivQuotient`, `RingCon.quotientQuotientEquivQuotientₐ` : the third isomorphism theorem for semirings (or rings) and algebras It is an adaptation of what existed for multiplicative congruences (docs#Con) and is only useful for semirings which are not rings. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Ring/Subsemiring/Basic.lean + theorem RingHom.injective_codRestrict + theorem RingHom.rangeS_codRestrict + theorem RingHom.rangeS_eq_top + theorem RingHom.surjective_codRestrict Modified Mathlib/Algebra/RingQuot.lean + def RingCon.mkₐ + theorem RingCon.mkₐ_surjective Modified Mathlib/Data/Set/Restrict.lean + theorem Set.range_codRestrict + theorem Set.surjective_codRestrict Modified Mathlib/LinearAlgebra/Dimension/DivisionRing.lean Modified Mathlib/RingTheory/Congruence/Basic.lean + theorem RingCon.comap_mono Modified Mathlib/RingTheory/Congruence/Defs.lean + theorem RingCon.coe_inj + theorem RingCon.coe_mk' +/- def RingCon.comap + theorem RingCon.comap_rel + theorem RingCon.ext'' +/- def RingCon.mk' + theorem RingCon.mk'_surjective Added Mathlib/RingTheory/Congruence/Hom.lean + theorem RingCon.Quotient.hom_ext + theorem RingCon.coe_comapQuotientEquivRange_mk + theorem RingCon.coe_comapQuotientEquivRangeₐ_mk + theorem RingCon.coe_comapQuotientEquivRangeₐ_symm_mk + theorem RingCon.coe_liftₐ + theorem RingCon.coe_quotientKerEquivRangeS_mk + theorem RingCon.coe_quotientKerEquivRangeₐ_mkₐ + theorem RingCon.comapQuotientEquivOfSurj_mk + theorem RingCon.comapQuotientEquivOfSurj_symm_mk' + theorem RingCon.comapQuotientEquivOfSurj_symm_mk + theorem RingCon.comapQuotientEquivRangeS_mk + theorem RingCon.comapQuotientEquivRangeS_symm_mk + theorem RingCon.comapQuotientEquivRange_mk + theorem RingCon.comapQuotientEquivRange_symm_mk + theorem RingCon.comapQuotientEquivRangeₐ_mk + theorem RingCon.comap_bot + theorem RingCon.comap_eq + theorem RingCon.congr_mk + theorem RingCon.congrₐ_mk + def RingCon.correspondence + def RingCon.factorₐ + theorem RingCon.factorₐ_apply + theorem RingCon.factorₐ_mk + def RingCon.ker + def RingCon.kerLift + theorem RingCon.kerLift_injective + theorem RingCon.kerLift_mk + theorem RingCon.kerLift_range_eq + def RingCon.kerLiftₐ + theorem RingCon.kerLiftₐ_injective + theorem RingCon.kerLiftₐ_mk + theorem RingCon.kerLiftₐ_range_eq + theorem RingCon.ker_apply + theorem RingCon.ker_comp + theorem RingCon.ker_eq_lift_of_injective + theorem RingCon.ker_mk'_eq + def RingCon.lift + theorem RingCon.lift_apply_mk' + theorem RingCon.lift_bijective_iff + theorem RingCon.lift_coe + theorem RingCon.lift_comp_mk' + theorem RingCon.lift_injective_iff + theorem RingCon.lift_mk' + theorem RingCon.lift_surjective_iff + theorem RingCon.lift_surjective_of_surjective + theorem RingCon.lift_unique + def RingCon.liftₐ + theorem RingCon.liftₐ_coe_toRingHom + theorem RingCon.liftₐ_mk + theorem RingCon.liftₐ_range + def RingCon.map + def RingCon.mapGen + theorem RingCon.mapGen_apply_apply_of_surjective + theorem RingCon.mapGen_eq_map_of_surjective + theorem RingCon.map_apply + theorem RingCon.mkₐ_comp_factorₐ_comp_mkₐ + def RingCon.quotientKerEquivOfRightInverse + theorem RingCon.quotientKerEquivOfRightInverse_apply + theorem RingCon.quotientKerEquivOfSurjective_mk + theorem RingCon.quotientKerEquivRangeₐ_mkₐ + def RingCon.quotientQuotientEquivQuotient + theorem RingCon.quotientQuotientEquivQuotient_coe_coe + theorem RingCon.quotientQuotientEquivQuotient_mk_mk + theorem RingCon.quotientQuotientEquivQuotient_symm_mk + def RingCon.quotientQuotientEquivQuotientₐ + theorem RingCon.quotientQuotientEquivQuotientₐ_coe_coe + theorem RingCon.quotientQuotientEquivQuotientₐ_mk_mk + theorem RingCon.quotientQuotientEquivQuotientₐ_symm_mk + theorem RingCon.rangeS_kerLift + theorem RingCon.rangeS_lift + theorem RingCon.rangeS_mk' + theorem RingCon.range_lift + theorem RingCon.range_mk' + theorem RingCon.range_mkₐ 2025-11-26 13:56:19 3f25611 chore(Data/Part): golf entire `assert_pos` and `assert_neg` using `ext; simp_all` (#32139) ESTIMATED CHANGES Modified Mathlib/Data/Part.lean 2025-11-26 13:56:17 0bee8dd chore(Data/Int/Fib): add `fib_neg` (#32107) Forgot to add `Int.fib_neg`: ```lean theorem fib_neg (n : ℤ) : fib (-n) = if Even n then -fib n else fib n := by ``` Also changes `Int.fib_gcd` to `Int.gcd_fib` and gets rid of the unnecessary coercions. ESTIMATED CHANGES Modified Mathlib/Algebra/Ring/Parity.lean + theorem neg_one_zpow_eq_ite Modified Mathlib/Data/Int/Fib.lean - theorem Int.fib_gcd + theorem Int.fib_neg + theorem Int.gcd_fib Modified Mathlib/Logic/Basic.lean + theorem apply_ite_left 2025-11-26 13:56:14 b25a4f7 feat(Data/Finsupp): add degree_sum (#32074) ESTIMATED CHANGES Modified Mathlib/Combinatorics/Nullstellensatz.lean Modified Mathlib/Data/Finsupp/MonomialOrder/DegLex.lean Modified Mathlib/Data/Finsupp/Weight.lean +/- def Finsupp.degree - theorem Finsupp.degree_add + theorem Finsupp.degree_def - theorem Finsupp.degree_zero Modified Mathlib/RingTheory/MvPolynomial/Homogeneous.lean Modified Mathlib/RingTheory/MvPowerSeries/Substitution.lean 2025-11-26 13:03:14 5eac5e0 refactor(Topology): relax Eventually to Frequently for TendstoUniformly.continuous (#32122) ... and its friends. For downstream streams, I don't find any that can be generalized, so I keep their statements and added a Eventually.frequently in between or the equivalent ESTIMATED CHANGES Modified Mathlib/Analysis/Analytic/Basic.lean Modified Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Continuity.lean Modified Mathlib/Analysis/Complex/LocallyUniformLimit.lean Modified Mathlib/Analysis/Normed/Group/FunctionSeries.lean Modified Mathlib/Topology/ContinuousMap/Bounded/Basic.lean Modified Mathlib/Topology/UniformSpace/UniformApproximation.lean Modified Mathlib/Topology/UniformSpace/UniformConvergenceTopology.lean 2025-11-26 13:03:12 2d70ee5 feat(Data/Multiset): add Multiset filter and bind lemmas (#31107) Add basic lemmas equating `Multiset` `filter`, `filterMap`, `join`, and `bind` operations. ESTIMATED CHANGES Modified Mathlib/Data/Multiset/Bind.lean + theorem Multiset.bind_filter + theorem Multiset.bind_filterMap + theorem Multiset.filterMap_bind + theorem Multiset.filterMap_eq_bind + theorem Multiset.filterMap_join + theorem Multiset.filter_bind + theorem Multiset.filter_eq_bind + theorem Multiset.filter_join Modified Mathlib/Data/Multiset/Filter.lean + theorem Multiset.filterMap_add + theorem Multiset.filterMap_cons + theorem Multiset.map_filter_eq_filterMap 2025-11-26 13:03:10 e2bf3a6 feat(Computability/NFA): NFA acceptsFrom definitions and lemmas (#31038) This PR defines `NFA.acceptsFrom`, similar to [`DFA.acceptsFrom`](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Computability/DFA.html#DFA.acceptsFrom), and provides helper lemmas. ESTIMATED CHANGES Modified Mathlib/Computability/NFA.lean + def NFA.acceptsFrom + theorem NFA.acceptsFrom_iUnion + theorem NFA.acceptsFrom_iUnion₂ + theorem NFA.acceptsFrom_union + theorem NFA.accepts_eq_acceptsFrom_start + theorem NFA.append_mem_acceptsFrom + theorem NFA.append_preimage_acceptsFrom + theorem NFA.cons_mem_acceptsFrom + theorem NFA.cons_preimage_acceptsFrom + theorem NFA.evalFrom_append + theorem NFA.evalFrom_iUnion + theorem NFA.evalFrom_iUnion₂ + theorem NFA.evalFrom_union +/- theorem NFA.eval_append_singleton + theorem NFA.mem_acceptsFrom + theorem NFA.nil_mem_acceptsFrom + theorem NFA.stepSet_union 2025-11-26 12:49:29 54106a2 feat(Algebra): add subsingleton of IsZero for `AddCommGrpCat` (#32101) ESTIMATED CHANGES Modified Mathlib/Algebra/Category/Grp/Zero.lean + theorem CommGrpCat.isZero_iff_subsingleton + theorem CommGrpCat.subsingleton_of_isZero + theorem GrpCat.isZero_iff_subsingleton + theorem GrpCat.subsingleton_of_isZero 2025-11-26 12:23:26 0194007 feat(Analysis): `tendsto_zpow_nhdsNE_zero_cobounded` (#32120) ESTIMATED CHANGES Modified Mathlib/Analysis/Meromorphic/Order.lean Modified Mathlib/Analysis/Normed/Field/Lemmas.lean + theorem Filter.inv_nhdsNE_zero - theorem Filter.inv_nhdsWithin_ne_zero + theorem Filter.tendsto_inv₀_nhdsNE_zero - theorem Filter.tendsto_inv₀_nhdsWithin_ne_zero - theorem NormedField.tendsto_norm_inv_nhdsNE_zero_atTop + theorem tendsto_norm_inv_nhdsNE_zero_atTop + theorem tendsto_zpow_nhdsNE_zero_cobounded Modified Mathlib/Analysis/Normed/Ring/Lemmas.lean + theorem tendsto_pow_cobounded_cobounded 2025-11-26 12:00:48 757fe2e chore: fix dependency counting script (#32133) Specifically support lines which start as either of: * `public import` * `import` ESTIMATED CHANGES Modified scripts/count-trans-deps.py 2025-11-26 11:32:22 2aff67d refactor: redefine `IsTuranMaximal` (#28719) Redefined `IsTuranMaximal := G.IsExtremal (CliqueFree · (r + 1))` and - replaced `classical` in `IsTuranMaximal.le_iff_eq` with `DecidableRel` - refactored `turanGraph.instDecidableRelAdj`, `turanGraph_zero`, `exists_isTuranMaximal` - added `open Fintype` - replaced `simp only` with `rw` or `simp_rw` ESTIMATED CHANGES Modified Mathlib/Combinatorics/SimpleGraph/Extremal/Basic.lean + theorem SimpleGraph.IsExtremal.le_iff_eq Modified Mathlib/Combinatorics/SimpleGraph/Extremal/Turan.lean +/- theorem SimpleGraph.IsTuranMaximal.card_parts - theorem SimpleGraph.IsTuranMaximal.le_iff_eq +/- def SimpleGraph.IsTuranMaximal +/- theorem SimpleGraph.not_cliqueFree_of_isTuranMaximal +/- theorem SimpleGraph.turanGraph_zero 2025-11-26 11:32:20 dbb8003 feat(Data/Nat/Factorization): some results on equality of powers of naturals proved from factorization (#28557) I came across some math olympiad problems in number theory that could benefit from these theorems, expecially those on the prime power equality `p ^ m = a ^ n`. A specialized `eq_of_factorization_eq'` is added BTW to help with proof search. ESTIMATED CHANGES Modified Mathlib/Data/Nat/Factorization/Basic.lean + theorem Nat.exists_eq_pow_of_exponent_coprime_of_pow_eq_pow + theorem Nat.exists_eq_pow_of_pow_eq_pow Modified Mathlib/Data/Nat/Factorization/Defs.lean + theorem Nat.eq_of_factorization_eq' Modified Mathlib/Data/Nat/Factorization/PrimePow.lean + theorem Nat.exists_base_eq_prime_pow_of_prime_pow_eq_base_pow + theorem Nat.exponent_dvd_of_prime_pow_eq_pow + theorem Nat.exponent_eq_exponent_mul_factorization_of_prime_pow_eq_base_pow 2025-11-26 11:15:47 8f6c938 chore(CategoryTheory/Limits): golf entire `ι_colimitLimitIso_limit_π` using `simp` (#32132) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Limits/FilteredColimitCommutesFiniteLimit.lean 2025-11-26 10:44:46 0520e08 feat: characteristic function of a Gaussian measure (#31567) ESTIMATED CHANGES Modified Mathlib/Probability/Distributions/Gaussian/Basic.lean + theorem ProbabilityTheory.IsGaussian.charFun_eq + theorem ProbabilityTheory.isGaussian_iff_charFun_eq 2025-11-26 10:04:12 e814276 feat: beta reduce in the `T%` elaborator (#30879) Whenever the `T%` elaborator succeeds, head beta reduce the resulting application. This enables applying it with anonymous functions or inside big operators without issue. (For instance, all changes to `SmoothSection` in #30357 are now possible without additional `dsimp` steps.) In the process, also extract the workhorse component of the elaborator into an independent function and improve its doc-string to mention the corresponding tracing option. ESTIMATED CHANGES Modified Mathlib/Geometry/Manifold/Notation.lean + def Manifold.Elab.totalSpaceMk Modified MathlibTest/DifferentialGeometry/Notation.lean 2025-11-26 10:04:09 ce7caf1 feat(Algebra/Order/Floor): generalize mul_floor_div theorems to rings and semirings (#30041) Generalize `mul_cast_floor_div_cancel` from `Field` and `Semifield` to `Ring` and `Semiring`. ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Floor/Ring.lean +/- theorem Int.cast_mul_floor_div_cancel_of_pos +/- theorem Int.mul_cast_floor_div_cancel_of_pos +/- theorem Int.mul_natCast_floor_div_cancel +/- theorem Int.natCast_mul_floor_div_cancel Modified Mathlib/Algebra/Order/Floor/Semifield.lean - theorem Nat.cast_mul_floor_div_cancel - theorem Nat.mul_cast_floor_div_cancel Modified Mathlib/Algebra/Order/Floor/Semiring.lean + theorem Nat.cast_mul_floor_div_cancel + theorem Nat.mul_cast_floor_div_cancel Modified Mathlib/Analysis/Real/OfDigits.lean 2025-11-26 09:48:55 c6d0669 chore(Topology/MetricSpace): golf `candidates_nonneg` and `candidates_lipschitz_aux` using `grind` (#32051) ESTIMATED CHANGES Modified Mathlib/Topology/MetricSpace/GromovHausdorffRealized.lean 2025-11-26 09:48:52 7ed80c7 feat(Geometry/Euclidean/Angle/Oriented/Affine): equal angles between parallel lines (#31713) We have an existing lemma that angles are equal mod π when corresponding lines in those angles are parallel. Add a stronger lemma giving equality mod 2π when all four endpoints of the angles lie on the same line (excluding the degenerate case of collinear points where it's possible one angle is 0 and the other is π). ESTIMATED CHANGES Modified Mathlib/Geometry/Euclidean/Angle/Oriented/Affine.lean + theorem EuclideanGeometry.oangle_eq_of_parallel 2025-11-26 09:48:50 b815664 feat(AlgebraicTopology): edges and "triangles" in the nerve of a category (#31274) We study `Edge` and `Edge.CompStruct` in the case of the nerve of a category. In particular, `Edge.CompStruct` are related to commutative triangles. ESTIMATED CHANGES Modified Mathlib/AlgebraicTopology/SimplicialNerve.lean Modified Mathlib/AlgebraicTopology/SimplicialSet/CompStruct.lean + theorem SSet.Edge.CompStruct.d₀ + theorem SSet.Edge.CompStruct.d₁ + theorem SSet.Edge.CompStruct.d₂ +/- def SSet.Edge.CompStruct.simplex + theorem SSet.Edge.map_edge +/- def SSet.Edge.mk' + def SSet.Edge.mk + theorem SSet.Edge.mk_edge Modified Mathlib/AlgebraicTopology/SimplicialSet/Coskeletal.lean Modified Mathlib/AlgebraicTopology/SimplicialSet/HomotopyCat.lean Modified Mathlib/AlgebraicTopology/SimplicialSet/Nerve.lean + def CategoryTheory.nerve.edgeMk + theorem CategoryTheory.nerve.edgeMk_edge + theorem CategoryTheory.nerve.edgeMk_surjective + def CategoryTheory.nerve.homEquiv + theorem CategoryTheory.nerve.homEquiv_comp + theorem CategoryTheory.nerve.homEquiv_edgeMk + theorem CategoryTheory.nerve.homEquiv_edgeMk_map_nerveMap + theorem CategoryTheory.nerve.homEquiv_id + theorem CategoryTheory.nerve.left_edge + theorem CategoryTheory.nerve.mk₁_homEquiv_apply + theorem CategoryTheory.nerve.nonempty_compStruct_iff + theorem CategoryTheory.nerve.right_edge +/- theorem CategoryTheory.nerve.δ_obj +/- theorem CategoryTheory.nerve.δ₀_eq + theorem CategoryTheory.nerve.δ₂_two + theorem CategoryTheory.nerve.δ₂_zero +/- theorem CategoryTheory.nerve.σ_obj + theorem CategoryTheory.nerve.σ_zero_nerveEquiv_symm +/- def CategoryTheory.nerveEquiv Modified Mathlib/AlgebraicTopology/SimplicialSet/NerveAdjunction.lean Modified Mathlib/AlgebraicTopology/SimplicialSet/StrictSegal.lean Modified Mathlib/CategoryTheory/ComposableArrows/Basic.lean + theorem CategoryTheory.ComposableArrows.ext₂_of_arrow + theorem CategoryTheory.ComposableArrows.mk₁_comp_eqToHom + theorem CategoryTheory.ComposableArrows.mk₁_eqToHom_comp + theorem CategoryTheory.ComposableArrows.mk₁_hom 2025-11-26 08:45:01 07e962f feat: the empty line in commands linter (#25945) This linter flags empty lines within a command. It allows empty lines within doc-strings, module-docs and a couple of other "sensible" places. It also skips files that are likely to contain meta-code, since there the use of empty lines in definition is more widespread. This PR continues the work from #25236. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Polynomial/RuleOfSigns.lean Modified Mathlib/Analysis/Meromorphic/FactorizedRational.lean Modified Mathlib/CategoryTheory/Comma/StructuredArrow/CommaMap.lean Modified Mathlib/CategoryTheory/Monoidal/Opposite/Mon_.lean Modified Mathlib/Combinatorics/Enumerative/Bell.lean Modified Mathlib/Data/UInt.lean Modified Mathlib/GroupTheory/Perm/MaximalSubgroups.lean Modified Mathlib/Init.lean Modified Mathlib/RepresentationTheory/Homological/GroupHomology/LowDegree.lean Modified Mathlib/RingTheory/Flat/TorsionFree.lean Modified Mathlib/RingTheory/HahnSeries/HahnEmbedding.lean Modified Mathlib/Tactic.lean Added Mathlib/Tactic/Linter/EmptyLine.lean + def Lean.Substring.Raw.getRange + def Lean.Syntax.Mathlib.Linter.EmptyLine.emptyLineLinter + def Lean.Syntax.filter + def Lean.Syntax.filterMap + def Lean.Syntax.filterMapM Added MathlibTest/EmptyLine.lean + structure F + def F₀ + structure WithAString 2025-11-26 08:20:32 26d3df1 feat(LinearAlgebra/SymmetricAlgebra): IsSymmetricAlgebra (#27308) This PR continues the work from #24602. Original PR: https://github.com/leanprover-community/mathlib4/pull/24602 ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/SymmetricAlgebra/Basic.lean + theorem IsSymmetricAlgebra.algHom_ext + theorem IsSymmetricAlgebra.comp_equiv + theorem IsSymmetricAlgebra.equiv_apply + theorem IsSymmetricAlgebra.equiv_symm_apply + theorem IsSymmetricAlgebra.equiv_symm_comp + theorem IsSymmetricAlgebra.equiv_toAlgHom + theorem IsSymmetricAlgebra.induction + theorem IsSymmetricAlgebra.lift_comp_linearMap + theorem IsSymmetricAlgebra.lift_eq + theorem IsSymmetricAlgebra.lift_unique + theorem IsSymmetricAlgebra.of_equiv + def IsSymmetricAlgebra + theorem SymmetricAlgebra.isSymmetricAlgebra_ι Modified Mathlib/LinearAlgebra/SymmetricAlgebra/Basis.lean + theorem SymmetricAlgebra.IsSymmetricAlgebra.mvPolynomial 2025-11-26 07:51:50 5f59d4e feat(Mathlib/Geometry/Euclidean/Triangle): oriented converse of pons asinorum (#32029) We have pons asinorum for both oriented and unoriented angles, but the converse only for unoriented angles. Add the converse for oriented angles (where the hypothesis uses equality of angles mod π, as that's often more convenient to prove than equality mod 2π, and in fact it implies equality mod 2π in this context). ESTIMATED CHANGES Modified Mathlib/Geometry/Euclidean/Triangle.lean + theorem EuclideanGeometry.dist_eq_of_two_zsmul_oangle_eq + theorem Orientation.norm_eq_of_two_zsmul_oangle_sub_eq 2025-11-26 07:51:48 6bb1e61 feat(Topology/UniformSpace/Closeds): uniform continuity of union (#32011) ESTIMATED CHANGES Modified Mathlib/Topology/UniformSpace/Closeds.lean + theorem TopologicalSpace.Closeds.uniformContinuous_sup + theorem TopologicalSpace.Compacts.uniformContinuous_sup + theorem TopologicalSpace.NonemptyCompacts.uniformContinuous_sup + theorem UniformContinuous.sup_closeds + theorem UniformContinuous.sup_compacts + theorem UniformContinuous.sup_nonemptyCompacts + theorem UniformSpace.hausdorff.uniformContinuous_union + theorem union_mem_hausdorffEntourage 2025-11-26 07:51:45 5d8e98d feat(Analysis): the Sequential Banach-Alaoglu theorem (#31656) Add the sequential Banach-Alaoglu theorem: closed balls of the dual of a separable normed space are sequentially compact in the weak-* topology. ESTIMATED CHANGES Modified Mathlib/Analysis/Normed/Module/WeakDual.lean + theorem WeakDual.exists_countable_separating + theorem WeakDual.isSeqCompact_closedBall + theorem WeakDual.isSeqCompact_of_isBounded_of_isClosed + theorem WeakDual.isSeqCompact_polar + theorem WeakDual.metrizable_of_isCompact 2025-11-26 07:04:10 e107beb feat: allow `grind` to unfold `abs` (#31935) Following discussion on [zulip](https://leanprover.zulipchat.com/#narrow/channel/113488-general/topic/.22Missing.20Tactics.22.20list/near/558745339)[#general > "Missing Tactics" list @ 💬](https://leanprover.zulipchat.com/#narrow/channel/113488-general/topic/.22Missing.20Tactics.22.20list/near/558745339). ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Group/Unbundled/Abs.lean Added MathlibTest/grind/linarith.lean 2025-11-26 06:47:59 5334b1e chore(Topology/UniformSpace/Closeds): rename `UniformSpace.hausdorff.isClosed_powerset` to `IsClosed.powerset_hausdorff` (#32022) The new name is analogous to the one for `TotallyBounded` and allows using dot notation. ESTIMATED CHANGES Modified Mathlib/Topology/UniformSpace/Closeds.lean + theorem IsClosed.powerset_hausdorff - theorem UniformSpace.hausdorff.isClosed_powerset 2025-11-26 06:47:57 b2345a4 feat(HaarToSphere): add an `IsOpenPosMeasure` instance (#31966) ... for `Measure.toSphere μ`. ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Constructions/HaarToSphere.lean 2025-11-26 06:17:33 6afe337 chore: reverse the directions of Path.symm_cast and trans_cast (#31575) It seems Mathlib doesn't mind currently which way these go, but pushing casts inwards is better for me. Note: Proofs in this PR were developed with assistance from Claude. ESTIMATED CHANGES Modified Mathlib/Topology/Path.lean + theorem Path.cast_symm + theorem Path.cast_trans 2025-11-26 06:17:31 01e172e feat(HasSumUniformlyOn): generalize theorem (#31313) Drop the `T2Space` assumption which was never really needed in `MultipliableUniformlyOn.hasProdUniformlyOn` and `SummableUniformlyOn.hasSumUniformlyOn`. ESTIMATED CHANGES Modified Mathlib/Topology/Algebra/InfiniteSum/UniformOn.lean +/- theorem MultipliableLocallyUniformly.hasProdLocallyUniformly +/- theorem MultipliableLocallyUniformlyOn.hasProdLocallyUniformlyOn +/- theorem MultipliableLocallyUniformlyOn_congr +/- theorem MultipliableUniformly.hasProdUniformly +/- theorem MultipliableUniformlyOn.hasProdUniformlyOn +/- theorem multipliableLocallyUniformlyOn_iff_hasProdLocallyUniformlyOn +/- theorem multipliableLocallyUniformlyOn_of_of_forall_exists_nhds +/- theorem multipliableLocallyUniformly_iff_hasProdLocallyUniformly +/- theorem multipliableLocallyUniformly_of_of_forall_exists_nhds - theorem multipliableUniformlyOn_iff_hasProdUniformlyOn +/- theorem multipliableUniformly_iff_hasProdUniformly Modified Mathlib/Topology/UniformSpace/LocallyUniformConvergence.lean + theorem TendstoLocallyUniformly.congr + theorem TendstoLocallyUniformly.congr_inseparable + theorem TendstoLocallyUniformly.congr_inseparable_right + theorem TendstoLocallyUniformly.congr_right + theorem TendstoLocallyUniformlyOn.congr_inseparable + theorem TendstoLocallyUniformlyOn.congr_inseparable_right Modified Mathlib/Topology/UniformSpace/UniformConvergence.lean + theorem TendstoUniformlyOn.congr_inseparable + theorem TendstoUniformlyOn.congr_inseparable_right + theorem TendstoUniformlyOnFilter.congr_inseparable + theorem tendstoUniformly_congr_inseparable 2025-11-26 05:44:55 46c21b0 feat(Algebra/Polynomial/Factors): Composition with negation of `X` is multiplicative (#32121) This PR proves `(p * q).comp (-X) = p.comp (-X) * q.comp (-X)` for rings (possibly noncommutative) and deduces that `f.Splits` implies `(f.comp (-X)).Splits`. This generalizes the current theorem `Polynomial.Splits.comp_neg_X` so that the coefficients may be taken from a `Ring` instead of a `Field` ESTIMATED CHANGES Modified Mathlib/Algebra/Polynomial/Eval/Defs.lean + theorem Polynomial.mul_comp_neg_X Modified Mathlib/Algebra/Polynomial/Factors.lean + theorem Polynomial.Splits.comp_neg_X Modified Mathlib/Algebra/Polynomial/Splits.lean - theorem Polynomial.Splits.comp_neg_X 2025-11-26 05:17:20 52a3c07 doc(Topology/Order/IntermediateValue): polish docstrings (#31969) Issues found and fixed with help from Codex. ESTIMATED CHANGES Modified Mathlib/Topology/Order/IntermediateValue.lean 2025-11-26 03:58:31 bebc23c feat(Matrix): Kill todo in `Analysis.CStarAlgebra.Matrix` (#31939) ESTIMATED CHANGES Modified Mathlib/Analysis/CStarAlgebra/Matrix.lean + theorem Matrix.l2_opNNNorm_diagonal + theorem Matrix.l2_opNorm_diagonal + theorem Matrix.l2_opNorm_toEuclideanCLM 2025-11-26 02:38:41 6647d12 feat(LinearAlgebra/Matrix/ToLin): `star A.toLin' = (A.map star).toLin'` (intrinsic star) (#31221) ESTIMATED CHANGES Modified Mathlib/Algebra/Star/LinearMap.lean + theorem LinearMap.IntrinsicStar.isSelfAdjoint_iff_map_star + theorem LinearMap.IntrinsicStar.isSelfAdjoint_iff_toMatrix' - theorem LinearMap.isSelfAdjoint_iff_map_star + theorem LinearMap.toMatrix'_intrinsicStar + theorem Matrix.IntrinsicStar.isSelfAdjoint_toLin'_iff + theorem Matrix.intrinsicStar_toLin' 2025-11-26 02:38:39 7a0e478 feat(CStarAlgebra): the log is operator monotone (#30894) This PR shows that the logarithm is operator monotone, i.e. `CFC.log` is monotone on `{a : A | IsStrictlyPositive a}` where `A` is a unital C*-algebra. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Analysis/Complex/Exponential.lean + theorem Real.norm_exp_sub_one_sub_id_le Added Mathlib/Analysis/SpecialFunctions/ContinuousFunctionalCalculus/ExpLog/Order.lean + theorem CFC.log_le_log + theorem CFC.log_monotoneOn + theorem CFC.tendsto_cfc_rpow_sub_one_log Modified Mathlib/Analysis/SpecialFunctions/ContinuousFunctionalCalculus/Rpow/Basic.lean + theorem CFC.rpow_eq_cfc_real Added Mathlib/Analysis/SpecialFunctions/Log/RpowTendsto.lean + theorem Real.norm_inv_mul_rpow_sub_one_sub_log_le + theorem Real.tendstoLocallyUniformlyOn_rpow_sub_one_log + theorem tendsto_rpow_sub_one_log 2025-11-26 01:45:31 483cf36 feat(DifferentialForm): pullback commutes with exterior derivative (#30871) ESTIMATED CHANGES Modified Mathlib/Analysis/Calculus/DifferentialForm/Basic.lean + theorem extDerivWithin_pullback + theorem extDeriv_pullback Modified Mathlib/Analysis/Normed/Module/Alternating/Basic.lean + theorem ContinuousAlternatingMap.compContinuousLinearMapCLM_apply + def ContinuousAlternatingMap.fderivCompContinuousLinearMapCLM + theorem ContinuousAlternatingMap.fderivCompContinuousLinearMapCLM_apply + theorem ContinuousAlternatingMap.fderivCompContinuousLinearMap_of_isEmpty Modified Mathlib/Analysis/Normed/Module/Alternating/Uncurry/Fin.lean + theorem ContinuousAlternatingMap.alternatizeUncurryFin_alternatizeUncurryFinCLM_comp_apply + theorem ContinuousAlternatingMap.alternatizeUncurryFin_fderivCompContinuousLinearMap_eq_zero + theorem ContinuousAlternatingMap.fderivCompContinuousLinearMap_eq_alternatizeUncurryFin Modified Mathlib/Data/Fin/Tuple/Basic.lean + theorem Fin.removeNth_fun_const Modified Mathlib/LinearAlgebra/Alternating/Uncurry/Fin.lean 2025-11-26 01:16:14 0ceb38e chore: use generic `map_X` lemmas where possible (#31244) While thinking about grind annotations for homomorphisms, it occurs to me that automation is more likely when we use the generic, rather than namespaced, lemmas where possible. This is some cleanup in that direction. ESTIMATED CHANGES Modified Archive/Examples/Eisenstein.lean Modified Archive/Wiedijk100Theorems/Partition.lean Modified Counterexamples/CliffordAlgebraNotInjective.lean Modified Counterexamples/DirectSumIsInternal.lean Modified Counterexamples/Phillips.lean Modified Mathlib/Algebra/Algebra/Tower.lean Modified Mathlib/Algebra/Category/Grp/FilteredColimits.lean Modified Mathlib/Algebra/Category/Grp/Images.lean Modified Mathlib/Algebra/Category/Grp/ZModuleEquivalence.lean Modified Mathlib/Algebra/Category/ModuleCat/ChangeOfRings.lean Modified Mathlib/Algebra/Category/ModuleCat/FilteredColimits.lean Modified Mathlib/Algebra/Category/ModuleCat/Images.lean Modified Mathlib/Algebra/Category/ModuleCat/Monoidal/Basic.lean Modified Mathlib/Algebra/Category/MonCat/FilteredColimits.lean Modified Mathlib/Algebra/CharP/Pi.lean Modified Mathlib/Algebra/CharP/Subring.lean Modified Mathlib/Algebra/Colimit/Module.lean Modified Mathlib/Algebra/Colimit/Ring.lean Modified Mathlib/Algebra/CubicDiscriminant.lean Modified Mathlib/Algebra/DirectSum/Algebra.lean Modified Mathlib/Algebra/DirectSum/Basic.lean Modified Mathlib/Algebra/DirectSum/Ring.lean Modified Mathlib/Algebra/Exact.lean Modified Mathlib/Algebra/FreeAbelianGroup/Finsupp.lean Modified Mathlib/Algebra/FreeMonoid/Basic.lean Modified Mathlib/Algebra/GCDMonoid/Basic.lean Modified Mathlib/Algebra/Group/ForwardDiff.lean Modified Mathlib/Algebra/Group/Hom/Defs.lean Modified Mathlib/Algebra/Group/Prod.lean Modified Mathlib/Algebra/Group/Subgroup/Pointwise.lean Modified Mathlib/Algebra/Group/Submonoid/Pointwise.lean Modified Mathlib/Algebra/GroupWithZero/Action/End.lean Modified Mathlib/Algebra/GroupWithZero/Subgroup.lean Modified Mathlib/Algebra/GroupWithZero/Submonoid/Pointwise.lean Modified Mathlib/Algebra/Homology/ComplexShapeSigns.lean Modified Mathlib/Algebra/Homology/Homotopy.lean Modified Mathlib/Algebra/Lie/BaseChange.lean Modified Mathlib/Algebra/Lie/Basic.lean Modified Mathlib/Algebra/Lie/Character.lean Modified Mathlib/Algebra/Lie/DirectSum.lean Modified Mathlib/Algebra/Lie/Free.lean Modified Mathlib/Algebra/Lie/TensorProduct.lean Modified Mathlib/Algebra/Lie/TraceForm.lean Modified Mathlib/Algebra/Lie/Weights/Basic.lean Modified Mathlib/Algebra/Lie/Weights/Cartan.lean Modified Mathlib/Algebra/Module/Equiv/Basic.lean Modified Mathlib/Algebra/Module/Injective.lean Modified Mathlib/Algebra/Module/LinearMap/Defs.lean - theorem LinearMap.map_eq_zero_iff Modified Mathlib/Algebra/Module/LinearMap/End.lean Modified Mathlib/Algebra/Module/LocalizedModule/Basic.lean Modified Mathlib/Algebra/Module/LocalizedModule/Exact.lean Modified Mathlib/Algebra/Module/Submodule/Bilinear.lean Modified Mathlib/Algebra/Module/Submodule/Ker.lean Modified Mathlib/Algebra/Module/Submodule/LinearMap.lean Modified Mathlib/Algebra/Module/ZLattice/Covolume.lean Modified Mathlib/Algebra/MonoidAlgebra/Grading.lean Modified Mathlib/Algebra/MvPolynomial/CommRing.lean Modified Mathlib/Algebra/MvPolynomial/Derivation.lean Modified Mathlib/Algebra/MvPolynomial/Equiv.lean Modified Mathlib/Algebra/MvPolynomial/Eval.lean Modified Mathlib/Algebra/MvPolynomial/Funext.lean Modified Mathlib/Algebra/MvPolynomial/Monad.lean Modified Mathlib/Algebra/Order/CompleteField.lean Modified Mathlib/Algebra/Polynomial/Basic.lean Modified Mathlib/Algebra/Polynomial/Coeff.lean Modified Mathlib/Algebra/Polynomial/Degree/Lemmas.lean Modified Mathlib/Algebra/Polynomial/DenomsClearable.lean Modified Mathlib/Algebra/Polynomial/Derivative.lean Modified Mathlib/Algebra/Polynomial/Eval/Coeff.lean Modified Mathlib/Algebra/Polynomial/Eval/Defs.lean Modified Mathlib/Algebra/Polynomial/FieldDivision.lean Modified Mathlib/Algebra/Polynomial/Lifts.lean Modified Mathlib/Algebra/Polynomial/Monic.lean Modified Mathlib/Algebra/Polynomial/Roots.lean Modified Mathlib/Algebra/Quandle.lean Modified Mathlib/Algebra/Ring/Action/Basic.lean Modified Mathlib/Algebra/Ring/Action/End.lean Modified Mathlib/Algebra/RingQuot.lean Modified Mathlib/Algebra/Star/TensorProduct.lean Modified Mathlib/Algebra/TrivSqZeroExt.lean Modified Mathlib/AlgebraicGeometry/GammaSpecAdjunction.lean Modified Mathlib/AlgebraicGeometry/Modules/Tilde.lean Modified Mathlib/AlgebraicGeometry/Properties.lean Modified Mathlib/AlgebraicGeometry/StructureSheaf.lean Modified Mathlib/Analysis/BoxIntegral/Basic.lean Modified Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Unital.lean Modified Mathlib/Analysis/CStarAlgebra/Matrix.lean Modified Mathlib/Analysis/Calculus/ContDiff/Basic.lean Modified Mathlib/Analysis/Calculus/ContDiff/FTaylorSeries.lean Modified Mathlib/Analysis/Calculus/Deriv/Basic.lean Modified Mathlib/Analysis/Calculus/FDeriv/Symmetric.lean Modified Mathlib/Analysis/Calculus/InverseFunctionTheorem/ApproximatesLinearOn.lean Modified Mathlib/Analysis/Calculus/Taylor.lean Modified Mathlib/Analysis/Complex/Harmonic/Analytic.lean Modified Mathlib/Analysis/Complex/Isometry.lean Modified Mathlib/Analysis/Complex/Norm.lean Modified Mathlib/Analysis/Complex/Polynomial/Basic.lean Modified Mathlib/Analysis/Complex/Trigonometric.lean Modified Mathlib/Analysis/Convolution.lean Modified Mathlib/Analysis/Fourier/BoundedContinuousFunctionChar.lean Modified Mathlib/Analysis/Fourier/FourierTransform.lean Modified Mathlib/Analysis/Fourier/FourierTransformDeriv.lean Modified Mathlib/Analysis/InnerProductSpace/Adjoint.lean Modified Mathlib/Analysis/InnerProductSpace/Basic.lean Modified Mathlib/Analysis/InnerProductSpace/Defs.lean Modified Mathlib/Analysis/InnerProductSpace/Dual.lean Modified Mathlib/Analysis/InnerProductSpace/LinearMap.lean Modified Mathlib/Analysis/InnerProductSpace/LinearPMap.lean Modified Mathlib/Analysis/InnerProductSpace/Symmetric.lean Modified Mathlib/Analysis/InnerProductSpace/TwoDim.lean Modified Mathlib/Analysis/InnerProductSpace/l2Space.lean Modified Mathlib/Analysis/LocallyConvex/ContinuousOfBounded.lean Modified Mathlib/Analysis/Normed/Group/SemiNormedGrp/Kernels.lean Modified Mathlib/Analysis/Normed/Module/Basic.lean Modified Mathlib/Analysis/Normed/Module/HahnBanach.lean Modified Mathlib/Analysis/Normed/Module/RCLike/Basic.lean Modified Mathlib/Analysis/Normed/Operator/Bilinear.lean Modified Mathlib/Analysis/Normed/Operator/Extend.lean Modified Mathlib/Analysis/Normed/Operator/Mul.lean Modified Mathlib/Analysis/Normed/Unbundled/FiniteExtension.lean Modified Mathlib/Analysis/Normed/Unbundled/IsPowMulFaithful.lean Modified Mathlib/Analysis/Normed/Unbundled/SpectralNorm.lean Modified Mathlib/Analysis/RCLike/Basic.lean Modified Mathlib/Analysis/SpecialFunctions/Complex/CircleAddChar.lean Modified Mathlib/Analysis/SpecialFunctions/Gamma/Basic.lean Modified Mathlib/CategoryTheory/Abelian/GrothendieckCategory/ModuleEmbedding/GabrielPopescu.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Images.lean Modified Mathlib/CategoryTheory/SingleObj.lean Modified Mathlib/Data/Complex/Basic.lean Modified Mathlib/Data/DFinsupp/BigOperators.lean Modified Mathlib/Data/Real/ENatENNReal.lean Modified Mathlib/Data/ZMod/Basic.lean Modified Mathlib/Dynamics/Circle/RotationNumber/TranslationNumber.lean Modified Mathlib/FieldTheory/AbelRuffini.lean Modified Mathlib/FieldTheory/Finite/Basic.lean Modified Mathlib/FieldTheory/Finite/Polynomial.lean Modified Mathlib/FieldTheory/Fixed.lean Modified Mathlib/FieldTheory/IsAlgClosed/Basic.lean Modified Mathlib/FieldTheory/IsSepClosed.lean Modified Mathlib/FieldTheory/Minpoly/Basic.lean Modified Mathlib/FieldTheory/Minpoly/Field.lean Modified Mathlib/FieldTheory/PrimitiveElement.lean Modified Mathlib/FieldTheory/PurelyInseparable/Exponent.lean Modified Mathlib/FieldTheory/RatFunc/Basic.lean Modified Mathlib/FieldTheory/RatFunc/Defs.lean Modified Mathlib/FieldTheory/Separable.lean Modified Mathlib/Geometry/Euclidean/Angle/Oriented/Rotation.lean Modified Mathlib/Geometry/Euclidean/MongePoint.lean Modified Mathlib/Geometry/Manifold/ContMDiffMFDeriv.lean Modified Mathlib/Geometry/Manifold/LocalDiffeomorph.lean Modified Mathlib/Geometry/Manifold/VectorField/LieBracket.lean Modified Mathlib/Geometry/RingedSpace/Basic.lean Modified Mathlib/GroupTheory/Abelianization/Defs.lean Modified Mathlib/GroupTheory/Congruence/Basic.lean Modified Mathlib/GroupTheory/CoprodI.lean Modified Mathlib/GroupTheory/FreeAbelianGroup.lean Modified Mathlib/GroupTheory/FreeGroup/Basic.lean Modified Mathlib/GroupTheory/MonoidLocalization/Basic.lean Modified Mathlib/GroupTheory/Nilpotent.lean Modified Mathlib/GroupTheory/OrderOfElement.lean Modified Mathlib/GroupTheory/OreLocalization/Basic.lean Modified Mathlib/GroupTheory/Perm/Sign.lean Modified Mathlib/GroupTheory/SemidirectProduct.lean Modified Mathlib/GroupTheory/SpecificGroups/Alternating.lean Modified Mathlib/GroupTheory/SpecificGroups/Cyclic.lean Modified Mathlib/LinearAlgebra/AffineSpace/AffineMap.lean Modified Mathlib/LinearAlgebra/AffineSpace/AffineSubspace/Basic.lean Modified Mathlib/LinearAlgebra/AffineSpace/Basis.lean Modified Mathlib/LinearAlgebra/AffineSpace/Combination.lean Modified Mathlib/LinearAlgebra/Alternating/DomCoprod.lean Modified Mathlib/LinearAlgebra/Basis/Basic.lean Modified Mathlib/LinearAlgebra/Basis/Bilinear.lean Modified Mathlib/LinearAlgebra/Basis/Defs.lean Modified Mathlib/LinearAlgebra/Basis/Prod.lean Modified Mathlib/LinearAlgebra/BilinearMap.lean Modified Mathlib/LinearAlgebra/CliffordAlgebra/Basic.lean Modified Mathlib/LinearAlgebra/CliffordAlgebra/Contraction.lean Modified Mathlib/LinearAlgebra/CliffordAlgebra/Equivs.lean Modified Mathlib/LinearAlgebra/CliffordAlgebra/Even.lean Modified Mathlib/LinearAlgebra/CliffordAlgebra/EvenEquiv.lean Modified Mathlib/LinearAlgebra/CliffordAlgebra/Grading.lean Modified Mathlib/LinearAlgebra/CliffordAlgebra/Prod.lean Modified Mathlib/LinearAlgebra/Complex/Module.lean Modified Mathlib/LinearAlgebra/Contraction.lean Modified Mathlib/LinearAlgebra/CrossProduct.lean Modified Mathlib/LinearAlgebra/DFinsupp.lean Modified Mathlib/LinearAlgebra/Determinant.lean Modified Mathlib/LinearAlgebra/Dimension/Free.lean Modified Mathlib/LinearAlgebra/Dimension/RankNullity.lean Modified Mathlib/LinearAlgebra/Dual/Basis.lean Modified Mathlib/LinearAlgebra/Dual/Defs.lean Modified Mathlib/LinearAlgebra/Eigenspace/Basic.lean Modified Mathlib/LinearAlgebra/Eigenspace/Minpoly.lean Modified Mathlib/LinearAlgebra/ExteriorAlgebra/Basic.lean +/- theorem ExteriorAlgebra.ι_eq_zero_iff Modified Mathlib/LinearAlgebra/ExteriorAlgebra/Grading.lean Modified Mathlib/LinearAlgebra/FiniteDimensional/Basic.lean Modified Mathlib/LinearAlgebra/FreeModule/Finite/CardQuotient.lean Modified Mathlib/LinearAlgebra/FreeModule/PID.lean Modified Mathlib/LinearAlgebra/InvariantBasisNumber.lean Modified Mathlib/LinearAlgebra/Matrix/Adjugate.lean Modified Mathlib/LinearAlgebra/Matrix/Basis.lean Modified Mathlib/LinearAlgebra/Matrix/Charpoly/Coeff.lean Modified Mathlib/LinearAlgebra/Matrix/MvPolynomial.lean Modified Mathlib/LinearAlgebra/Matrix/Polynomial.lean Modified Mathlib/LinearAlgebra/Matrix/Rank.lean Modified Mathlib/LinearAlgebra/Matrix/SesquilinearForm.lean Modified Mathlib/LinearAlgebra/Matrix/ToLin.lean Modified Mathlib/LinearAlgebra/Matrix/ToLinearEquiv.lean Modified Mathlib/LinearAlgebra/Multilinear/Basic.lean Modified Mathlib/LinearAlgebra/PiTensorProduct.lean Modified Mathlib/LinearAlgebra/Projection.lean Modified Mathlib/LinearAlgebra/QuadraticForm/Basic.lean Modified Mathlib/LinearAlgebra/QuadraticForm/Dual.lean Modified Mathlib/LinearAlgebra/QuadraticForm/TensorProduct.lean Modified Mathlib/LinearAlgebra/RootSystem/OfBilinear.lean Modified Mathlib/LinearAlgebra/RootSystem/RootPositive.lean Modified Mathlib/LinearAlgebra/SesquilinearForm/Basic.lean Modified Mathlib/LinearAlgebra/StdBasis.lean Modified Mathlib/LinearAlgebra/TensorAlgebra/Basic.lean +/- theorem TensorAlgebra.ι_eq_zero_iff Modified Mathlib/LinearAlgebra/TensorAlgebra/Grading.lean Modified Mathlib/LinearAlgebra/TensorAlgebra/ToTensorPower.lean Modified Mathlib/LinearAlgebra/TensorPower/Basic.lean Modified Mathlib/LinearAlgebra/TensorProduct/Basic.lean Modified Mathlib/LinearAlgebra/TensorProduct/Graded/External.lean Modified Mathlib/LinearAlgebra/Trace.lean Modified Mathlib/MeasureTheory/Function/AEEqOfIntegral.lean Modified Mathlib/MeasureTheory/Function/ConditionalExpectation/CondexpL2.lean Modified Mathlib/MeasureTheory/Function/Jacobian.lean Modified Mathlib/MeasureTheory/Integral/Bochner/ContinuousLinearMap.lean Modified Mathlib/MeasureTheory/Integral/FinMeasAdditive.lean Modified Mathlib/MeasureTheory/Integral/SetToL1.lean Modified Mathlib/MeasureTheory/Measure/Haar/OfBasis.lean Modified Mathlib/MeasureTheory/Measure/Lebesgue/EqHaar.lean Modified Mathlib/MeasureTheory/Measure/Map.lean Modified Mathlib/NumberTheory/ArithmeticFunction.lean Modified Mathlib/NumberTheory/Bernoulli.lean Modified Mathlib/NumberTheory/BernoulliPolynomials.lean Modified Mathlib/NumberTheory/ClassNumber/Finite.lean Modified Mathlib/NumberTheory/Cyclotomic/Basic.lean Modified Mathlib/NumberTheory/Cyclotomic/Discriminant.lean Modified Mathlib/NumberTheory/LucasLehmer.lean Modified Mathlib/NumberTheory/Modular.lean Modified Mathlib/NumberTheory/NumberField/Cyclotomic/Basic.lean Modified Mathlib/NumberTheory/NumberField/Discriminant/Defs.lean Modified Mathlib/NumberTheory/NumberField/FinitePlaces.lean Modified Mathlib/NumberTheory/NumberField/Ideal/Basic.lean Modified Mathlib/NumberTheory/NumberField/ProductFormula.lean Modified Mathlib/NumberTheory/Padics/RingHoms.lean Modified Mathlib/NumberTheory/RamificationInertia/Basic.lean Modified Mathlib/NumberTheory/SumTwoSquares.lean Modified Mathlib/NumberTheory/Zsqrtd/Basic.lean Modified Mathlib/RepresentationTheory/Homological/Resolution.lean Modified Mathlib/RepresentationTheory/Invariants.lean Modified Mathlib/RingTheory/AdicCompletion/Basic.lean Modified Mathlib/RingTheory/Adjoin/PowerBasis.lean Modified Mathlib/RingTheory/AdjoinRoot.lean Modified Mathlib/RingTheory/AlgebraTower.lean Modified Mathlib/RingTheory/Coalgebra/TensorProduct.lean Modified Mathlib/RingTheory/Conductor.lean Modified Mathlib/RingTheory/DedekindDomain/Different.lean Modified Mathlib/RingTheory/DedekindDomain/Factorization.lean Modified Mathlib/RingTheory/DedekindDomain/Ideal/Basic.lean Modified Mathlib/RingTheory/Derivation/Basic.lean Modified Mathlib/RingTheory/Discriminant.lean Modified Mathlib/RingTheory/Etale/Kaehler.lean Modified Mathlib/RingTheory/Extension/Cotangent/Basic.lean Modified Mathlib/RingTheory/FractionalIdeal/Basic.lean Modified Mathlib/RingTheory/FractionalIdeal/Extended.lean Modified Mathlib/RingTheory/FractionalIdeal/Operations.lean Modified Mathlib/RingTheory/FreeCommRing.lean Modified Mathlib/RingTheory/HahnSeries/Summable.lean Modified Mathlib/RingTheory/Henselian.lean Modified Mathlib/RingTheory/Ideal/Over.lean Modified Mathlib/RingTheory/Ideal/Quotient/Operations.lean Modified Mathlib/RingTheory/IntegralClosure/IsIntegral/Basic.lean Modified Mathlib/RingTheory/IntegralClosure/IsIntegralClosure/Basic.lean Modified Mathlib/RingTheory/Kaehler/Basic.lean Modified Mathlib/RingTheory/Kaehler/JacobiZariski.lean Modified Mathlib/RingTheory/Kaehler/Polynomial.lean Modified Mathlib/RingTheory/Kaehler/TensorProduct.lean Modified Mathlib/RingTheory/LaurentSeries.lean Modified Mathlib/RingTheory/LocalProperties/Reduced.lean Modified Mathlib/RingTheory/LocalRing/ResidueField/Basic.lean Modified Mathlib/RingTheory/Localization/Basic.lean Modified Mathlib/RingTheory/Localization/Defs.lean Modified Mathlib/RingTheory/Localization/Ideal.lean Modified Mathlib/RingTheory/Localization/Integer.lean Modified Mathlib/RingTheory/Localization/Integral.lean Modified Mathlib/RingTheory/Localization/LocalizationLocalization.lean Modified Mathlib/RingTheory/Localization/NumDen.lean Modified Mathlib/RingTheory/MvPolynomial/WeightedHomogeneous.lean Modified Mathlib/RingTheory/MvPowerSeries/Basic.lean Modified Mathlib/RingTheory/MvPowerSeries/Order.lean Modified Mathlib/RingTheory/NoetherNormalization.lean Modified Mathlib/RingTheory/Norm/Basic.lean Modified Mathlib/RingTheory/Norm/Transitivity.lean Modified Mathlib/RingTheory/Nullstellensatz.lean Modified Mathlib/RingTheory/OreLocalization/Ring.lean Modified Mathlib/RingTheory/Perfection.lean Modified Mathlib/RingTheory/Polynomial/Basic.lean Modified Mathlib/RingTheory/Polynomial/Content.lean Modified Mathlib/RingTheory/Polynomial/Cyclotomic/Basic.lean Modified Mathlib/RingTheory/Polynomial/Eisenstein/Basic.lean Modified Mathlib/RingTheory/Polynomial/Eisenstein/IsIntegral.lean Modified Mathlib/RingTheory/Polynomial/GaussLemma.lean Modified Mathlib/RingTheory/Polynomial/Quotient.lean Modified Mathlib/RingTheory/PolynomialAlgebra.lean Modified Mathlib/RingTheory/PowerBasis.lean Modified Mathlib/RingTheory/PowerSeries/Basic.lean Modified Mathlib/RingTheory/PowerSeries/Order.lean Modified Mathlib/RingTheory/RootsOfUnity/Basic.lean Modified Mathlib/RingTheory/TensorProduct/Basic.lean Modified Mathlib/RingTheory/Trace/Basic.lean Modified Mathlib/RingTheory/Valuation/Integers.lean Modified Mathlib/RingTheory/Valuation/ValuationRing.lean Modified Mathlib/RingTheory/WittVector/Compare.lean Modified Mathlib/RingTheory/WittVector/Defs.lean Modified Mathlib/RingTheory/WittVector/Frobenius.lean Modified Mathlib/RingTheory/WittVector/FrobeniusFractionField.lean Modified Mathlib/RingTheory/WittVector/InitTail.lean Modified Mathlib/RingTheory/WittVector/IsPoly.lean Modified Mathlib/RingTheory/WittVector/Isocrystal.lean Modified Mathlib/RingTheory/WittVector/StructurePolynomial.lean Modified Mathlib/RingTheory/WittVector/Teichmuller.lean Modified Mathlib/RingTheory/WittVector/Truncated.lean Modified Mathlib/RingTheory/WittVector/WittPolynomial.lean Modified Mathlib/Topology/Algebra/Module/Basic.lean Modified Mathlib/Topology/Algebra/Module/LinearMap.lean Modified Mathlib/Topology/Algebra/Module/WeakBilin.lean Modified Mathlib/Topology/Category/Profinite/Nobeling/Successor.lean Modified Mathlib/Topology/ContinuousMap/CompactlySupported.lean Modified Mathlib/Topology/ContinuousMap/Polynomial.lean Modified Mathlib/Topology/Sheaves/CommRingCat.lean 2025-11-25 23:45:46 760a178 feat(Topology): prod/sum of UniformContinuous function is UniformContinuous (#32082) The big operator version of `UniformContinuous.mul`. This seems to be the only lemma that requires `[CommGroup α]` over `[Group α]` in the section, so I just declare all type variables ad-hoc to preserve the desired parameter order A --ψ--> A --φ--> A --ψ--> A ⟶ 0`. When `G` is finite and generated by `g : G`, then `P := Chains(k[G], N, ρ(g) - Id)` (with `ρ` the left regular representation) is a projective resolution of `k` as a trivial representation. In this PR we show that for `A : Rep k G`, `(A ⊗ P)_G` is isomorphic to `Chains(A, N, ρ_A(g) - Id)` as a complex of `k`-modules, and hence the homology of this complex computes group homology. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/RepresentationTheory/Homological/FiniteCyclic.lean Added Mathlib/RepresentationTheory/Homological/GroupHomology/FiniteCyclic.lean + theorem Rep.FiniteCyclicGroup.groupHomologyπEven_eq_iff + theorem Rep.FiniteCyclicGroup.groupHomologyπEven_eq_zero_iff + theorem Rep.FiniteCyclicGroup.groupHomologyπOdd_eq_iff + theorem Rep.FiniteCyclicGroup.groupHomologyπOdd_eq_zero_iff 2025-10-28 10:18:10 50818a5 feat(RingTheory): a semiprimary ring is Noetherian/Artinian iff its Jacobson radical is fg (#22151) A key fact used is `Module.FG.smul`: if `I` is a two-sided ideal of `R` that is f.g. as a left ideal and `N` is a f.g. `R`-module, then `I • M` is also a f.g. `R`-module. Many lemmas about coprimality of ideals are also generalized to the noncommutative, two-sided setting. ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/Operations.lean Modified Mathlib/AlgebraicGeometry/EllipticCurve/Affine/Point.lean Modified Mathlib/NumberTheory/RamificationInertia/Basic.lean Modified Mathlib/RingTheory/Extension/Basic.lean Modified Mathlib/RingTheory/Finiteness/Basic.lean + theorem Ideal.fg_top Modified Mathlib/RingTheory/Finiteness/Ideal.lean + theorem Ideal.FG.mul + theorem Ideal.FG.pow + theorem Submodule.FG.smul Modified Mathlib/RingTheory/HopkinsLevitzki.lean + theorem IsSemiprimaryRing.isNoetherianRing_iff_jacobson_fg + theorem IsSemiprimaryRing.isNoetherian_iff_finite_of_jacobson_fg Modified Mathlib/RingTheory/Ideal/Maps.lean Modified Mathlib/RingTheory/Ideal/Operations.lean +/- theorem Ideal.iInf_sup_eq_top +/- theorem Ideal.mem_mul_span_singleton +/- theorem Ideal.mul_le_inf +/- theorem Ideal.mul_sup_eq_of_coprime_left +/- theorem Ideal.mul_sup_eq_of_coprime_right +/- theorem Ideal.mul_top +/- theorem Ideal.natCast_eq_top + theorem Ideal.pow_sup_eq_top' +/- theorem Ideal.pow_sup_eq_top + theorem Ideal.pow_sup_pow_eq_top' +/- theorem Ideal.pow_sup_pow_eq_top +/- theorem Ideal.span_mul_span' +/- theorem Ideal.span_mul_span +/- theorem Ideal.span_pair_mul_span_pair +/- theorem Ideal.span_singleton_mul_left_inj +/- theorem Ideal.span_singleton_mul_left_mono +/- theorem Ideal.span_singleton_mul_span_singleton +/- theorem Ideal.span_singleton_pow +/- theorem Ideal.sup_iInf_eq_top +/- theorem Ideal.sup_mul_eq_of_coprime_left +/- theorem Ideal.sup_mul_eq_of_coprime_right + theorem Ideal.sup_pow_eq_top' +/- theorem Ideal.sup_pow_eq_top +/- theorem Submodule.mem_smul_span_singleton +/- theorem Submodule.span_smul_span 2025-10-28 09:17:55 ed54e09 feat: missing basic API for uniformly continuous functions (#30977) ESTIMATED CHANGES Modified Mathlib/Topology/MetricSpace/Pseudo/Defs.lean + theorem Metric.uniformContinuous_iff_le Modified Mathlib/Topology/UniformSpace/Basic.lean + theorem UniformContinuousOn.congr 2025-10-28 09:17:53 bcc52d7 perf(MeasureTheory/Measure/Restrict): make `restrictₗ` irreducible (#30968) This makes failing unification problems involving `Measure.restrict` significantly faster. ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Measure/Restrict.lean 2025-10-28 09:17:51 af1138b feat: linters to try hammers at every step (#30808) This PR adds three linters which respectively try running `simp_all`, `aesop`, and `grind` at each step in Mathlib. The intention is not to look at individual outputs and make replacements, but rather to use these as baselines for premise selection algorithm comparisons. In https://github.com/leanprover/lean4/pull/10920 I'm adding `grind +premises` (and I'd like to do the same with `simp_all` and `aesop`), and we can then measure how different premise selection algorithms compare at library scale. ESTIMATED CHANGES Modified Mathlib/Tactic/Core.lean Modified Mathlib/Tactic/TacticAnalysis/Declarations.lean + def tryAtEachStep + def tryAtEachStepAesop + def tryAtEachStepGrind + def tryAtEachStepGrindPremises + def tryAtEachStepSimpAll Modified MathlibTest/TacticAnalysis.lean + def P + theorem p Added MathlibTest/tryAtEachStep.lean + theorem foo Modified scripts/noshake.json 2025-10-28 09:17:49 e963315 feat: further extensions of the differential geometry elaborators (#30413) Also infer the model with corners on - a space of continuous linear equivalences - a closed real interval (Set.Icc) - the complex upper half plane And add elaborators for `HasMFDeriv(Within)At` analogous to the `mfderiv(Within)` ones. Further cases, as well as products, disjoint unions or open subsets, will be covered in future PRs. ESTIMATED CHANGES Modified Mathlib/Geometry/Manifold/Notation.lean Modified MathlibTest/DifferentialGeometry/Notation.lean Modified MathlibTest/DifferentialGeometry/NotationAdvanced.lean + def RealCopy' + def RealCopy + def id' 2025-10-28 09:17:47 9859788 feat: behavior of divisors when taking powers of meromorphic functions (#30238) Establish the behavior of divisors when taking powers of meromorphic functions. For consistency, provide `_fun`-versions of several simple lemmas. ESTIMATED CHANGES Modified Mathlib/Algebra/Order/WithTop/Untop0.lean + theorem WithTop.untop₀_natCast + theorem WithTop.untop₀_ofNat Modified Mathlib/Analysis/Meromorphic/Divisor.lean + theorem MeromorphicOn.divisor_const + theorem MeromorphicOn.divisor_fun_inv + theorem MeromorphicOn.divisor_fun_mul + theorem MeromorphicOn.divisor_fun_pow + theorem MeromorphicOn.divisor_fun_smul + theorem MeromorphicOn.divisor_fun_zpow + theorem MeromorphicOn.divisor_intCast + theorem MeromorphicOn.divisor_natCast + theorem MeromorphicOn.divisor_ofNat + theorem MeromorphicOn.divisor_pow + theorem MeromorphicOn.divisor_zpow Modified Mathlib/Analysis/Meromorphic/FactorizedRational.lean Modified Mathlib/Analysis/Meromorphic/Order.lean + theorem meromorphicOrderAt_const + theorem meromorphicOrderAt_const_intCast + theorem meromorphicOrderAt_const_natCast + theorem meromorphicOrderAt_const_ofNat 2025-10-28 09:17:45 e1e62f4 feat(Topology/Instances): Cantor set is the set of ternary numbers without `1`s (#26096) * Prove `ofDigits_zero_two_sequence_mem_cantorSet`: If `x = 0.d₀d₁...` in base-3, and none of the digits `dᵢ` is `1`, then `x` belongs to the Cantor set. * Prove `ofDigits_zero_two_sequence_unique`: such a representation is uniquie. * Define `toTernary` which converts a real number from the Cantor set to its ternary representation without `1`s. * Prove `ofDigits_cantorToTernary : ofDigits (cantorToTernary x) = x`. ESTIMATED CHANGES Modified Mathlib/Topology/Instances/CantorSet.lean + theorem cantorSequence_eq_self_sub_sum_cantorToTernary + theorem cantorSequence_get_succ + theorem cantorSequence_mem_cantorSet + theorem cantorSet_eq_zero_two_ofDigits + theorem cantorStep_mem_cantorSet + theorem cantorToTernary_ne_one + theorem le_ofDigits_cantorToTernary_sum + theorem ofDigits_cantorToTernary + theorem ofDigits_cantorToTernary_sum_le + theorem ofDigits_zero_two_sequence_mem_cantorSet + theorem ofDigits_zero_two_sequence_unique Modified scripts/noshake.json 2025-10-28 08:36:31 95e5f68 feat(Topology): Units of nonnegative elements (#30420) ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Nonneg/Field.lean + def Nonneg.unitsEquivPos Modified Mathlib/Topology/Algebra/Field.lean + def Nonneg.unitsHomeomorphPos 2025-10-28 07:56:30 8367022 chore: two suggestions from the weekly linter (#30992) From [#mathlib4 > Weekly linting log @ 💬](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Weekly.20linting.20log/near/547192939) ESTIMATED CHANGES Modified Mathlib/Algebra/Polynomial/RuleOfSigns.lean Modified Mathlib/RingTheory/RootsOfUnity/CyclotomicUnits.lean +/- theorem IsPrimitiveRoot.pow_sub_one_mul_geom_sum_eq_pow_sub_one_mul_geom_sum 2025-10-28 05:30:06 337f3a7 feat(Geometry/Euclidean/Incenter): excenters are distinct (#30938) Add some lemmas that excenters of a simplex are distinct points, except when they have the same signs up to negating all the signs. ESTIMATED CHANGES Modified Mathlib/Geometry/Euclidean/Incenter.lean + theorem Affine.Simplex.ExcenterExists.excenterWeights_eq_excenterWeights_iff + theorem Affine.Simplex.ExcenterExists.excenter_eq_excenter_iff + theorem Affine.Simplex.ExcenterExists.excenter_eq_incenter_iff + theorem Affine.Simplex.excenter_singleton_injective + theorem Affine.Simplex.excenter_singleton_ne_incenter 2025-10-28 05:30:04 715cc30 feat(Geometry/Euclidean/Projection): projection onto sup (#30703) Add a lemma that, if the orthogonal projections of a point onto two subspaces are equal, so is the projection onto their supremum. ESTIMATED CHANGES Modified Mathlib/Geometry/Euclidean/Projection.lean + theorem EuclideanGeometry.orthogonalProjection_sup_of_orthogonalProjection_eq 2025-10-28 05:30:02 8f3ecec feat(Geometry/Euclidean/Angle/Oriented/RightAngle): angles less than `π / 2` (#30600) Add a lemma that an oriented angle in a right-angled triangle is less than `π / 2`, even in degenerate cases (there's already a corresponding lemma for unoriented angles, but that one needs to exclude some degenerate cases because of the different default values for oriented and unoriented angles involving zero vectors). Deduce lemmas that, for such angles involved in right-angled triangles, equality of the angles (i.e. equality mod 2π) follows from equality of twice the angles (i.e. equality of the angles mod π). ESTIMATED CHANGES Modified Mathlib/Geometry/Euclidean/Angle/Oriented/RightAngle.lean + theorem EuclideanGeometry.abs_oangle_toReal_lt_pi_div_two_of_angle_eq_pi_div_two + theorem EuclideanGeometry.oangle_eq_oangle_of_two_zsmul_eq_of_angle_eq_pi_div_two + theorem EuclideanGeometry.oangle_eq_oangle_rev_of_two_zsmul_eq_of_angle_eq_pi_div_two 2025-10-28 05:30:00 5ab5c34 feat(Geometry/Euclidean/Projection): `orthogonalProjection_orthogonalProjection_of_le` (#30474) Add a lemma that `orthogonalProjection s₁ (orthogonalProjection s₂ p) = orthogonalProjection s₁ p` for `s₁ ≤ s₂`. (A similar lemma for projection onto submodules rather than affine subspaces already exists.) ESTIMATED CHANGES Modified Mathlib/Geometry/Euclidean/Projection.lean + theorem EuclideanGeometry.orthogonalProjection_orthogonalProjection_of_le 2025-10-28 05:29:58 e6f0e55 feat: define `Star` on tensor products (#27290) This pr defines the `Star`, `StarAddMonoid`, `StarModule`, `StarMul`, and `StarRing` instances on tensor product spaces. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Star/TensorProduct.lean + theorem TensorProduct.star_tmul Modified Mathlib/RingTheory/TensorProduct/Basic.lean 2025-10-28 05:03:08 b9e2532 doc(RingTheory): fix typos (#30710) Found with help from Codex, curated by me. I've tried to limit the PR to changes that are easy to verify. Should you find it difficult to review any particular part of this PR, know that I have nothing against trimming this PR down in favor of smaller free-standing PRs for the difficult-to-review parts. ESTIMATED CHANGES Modified Mathlib/RingTheory/DividedPowers/Basic.lean Modified Mathlib/RingTheory/FractionalIdeal/Basic.lean Modified Mathlib/RingTheory/Ideal/MinimalPrime/Basic.lean Modified Mathlib/RingTheory/Ideal/MinimalPrime/Localization.lean Modified Mathlib/RingTheory/Ideal/Pointwise.lean Modified Mathlib/RingTheory/Localization/Away/Basic.lean Modified Mathlib/RingTheory/MvPowerSeries/Order.lean Modified Mathlib/RingTheory/PowerSeries/Restricted.lean Modified Mathlib/RingTheory/Valuation/Minpoly.lean 2025-10-28 04:48:09 69d5ad6 fix(Geometry/IsManifold/Basic): fix a typo (#30743) The same doc-string was copy-pasted twice. ESTIMATED CHANGES Modified Mathlib/Geometry/Manifold/IsManifold/Basic.lean 2025-10-28 01:14:59 76badb2 chore: deprecate Function.Involutive.iterate_bit{0,1} (#30986) ESTIMATED CHANGES Modified Mathlib/Algebra/Ring/Parity.lean - theorem Function.Involutive.iterate_bit0 - theorem Function.Involutive.iterate_bit1 + theorem Function.Involutive.iterate_two_mul_add_one 2025-10-27 22:34:37 0a7fab8 feat(AlgebraicGeometry): global sections of inverse limits of schemes (#30226) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/AlgebraicGeometry/AffineTransitionLimit.lean + theorem AlgebraicGeometry.Scheme.compactSpace_of_isLimit + theorem AlgebraicGeometry.exists_appTop_map_eq_zero_of_isAffine_of_isLimit + theorem AlgebraicGeometry.exists_appTop_map_eq_zero_of_isLimit + theorem AlgebraicGeometry.exists_appTop_π_eq_of_isAffine_of_isLimit + theorem AlgebraicGeometry.exists_appTop_π_eq_of_isLimit + theorem AlgebraicGeometry.exists_app_map_eq_map_of_isLimit + theorem AlgebraicGeometry.exists_app_map_eq_zero_of_isLimit + theorem AlgebraicGeometry.exists_map_eq_top + theorem AlgebraicGeometry.isAffineHom_π_app + def AlgebraicGeometry.isLimitOpensCone + theorem AlgebraicGeometry.nonempty_isColimit_Γ_mapCocone + def AlgebraicGeometry.opensCone + def AlgebraicGeometry.opensDiagram + def AlgebraicGeometry.opensDiagramι Modified Mathlib/AlgebraicGeometry/Limits.lean + theorem AlgebraicGeometry.Scheme.isAffine_of_isLimit Modified Mathlib/AlgebraicGeometry/OpenImmersion.lean + theorem AlgebraicGeometry.IsOpenImmersion.isPullback Modified Mathlib/AlgebraicGeometry/Restrict.lean Added Mathlib/CategoryTheory/Limits/Shapes/Pullback/Connected.lean + def CategoryTheory.Limits.isColimitOfIsPushoutOfIsConnected + def CategoryTheory.Limits.isLimitOfIsPullbackOfIsConnected 2025-10-27 21:05:24 f1364c9 chore(Data/List): golf entire `nodup_iff_getElem?_ne_getElem?` and `Nodup.pmap` using `grind` (#30961) ESTIMATED CHANGES Modified Mathlib/Data/List/Nodup.lean 2025-10-27 21:05:23 e8dba13 chore(Data/Seq): golf `terminates_parallel` using `grind` (#30944) ESTIMATED CHANGES Modified Mathlib/Data/Seq/Parallel.lean 2025-10-27 21:05:21 1fbd1af chore(Data/Prod): golf `toLex_covBy_toLex_iff` using `grind` (#30888) ESTIMATED CHANGES Modified Mathlib/Data/Prod/Lex.lean 2025-10-27 21:05:19 d5ebaaf feat(Probability/Decision): basic properties of the Bayes risk (#29143) - Comparison of the Bayes risk and the minimax risk - Maximal value of the Bayes risk and particular cases where it equals that value - Data-processing inequality ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Probability/Decision/Risk/Basic.lean + theorem ProbabilityTheory.avgRisk_const_left' + theorem ProbabilityTheory.avgRisk_const_left + theorem ProbabilityTheory.avgRisk_const_right' + theorem ProbabilityTheory.avgRisk_const_right + theorem ProbabilityTheory.avgRisk_le_iSup_risk + theorem ProbabilityTheory.avgRisk_le_mul' + theorem ProbabilityTheory.avgRisk_le_mul + theorem ProbabilityTheory.bayesRisk_compProd_le_bayesRisk + theorem ProbabilityTheory.bayesRisk_const' + theorem ProbabilityTheory.bayesRisk_const + theorem ProbabilityTheory.bayesRisk_const_of_neZero + theorem ProbabilityTheory.bayesRisk_const_of_nonempty + theorem ProbabilityTheory.bayesRisk_discard + theorem ProbabilityTheory.bayesRisk_eq_iInf_measure_of_subsingleton + theorem ProbabilityTheory.bayesRisk_le_avgRisk + theorem ProbabilityTheory.bayesRisk_le_bayesRisk_comp + theorem ProbabilityTheory.bayesRisk_le_bayesRisk_map + theorem ProbabilityTheory.bayesRisk_le_iInf' + theorem ProbabilityTheory.bayesRisk_le_iInf + theorem ProbabilityTheory.bayesRisk_le_minimaxRisk + theorem ProbabilityTheory.bayesRisk_le_mul' + theorem ProbabilityTheory.bayesRisk_le_mul + theorem ProbabilityTheory.bayesRisk_lt_top + theorem ProbabilityTheory.bayesRisk_of_subsingleton' + theorem ProbabilityTheory.bayesRisk_of_subsingleton + theorem ProbabilityTheory.iSup_bayesRisk_le_minimaxRisk Modified Mathlib/Probability/Decision/Risk/Defs.lean 2025-10-27 20:01:14 0f4d3c5 feat(Order): lemmas about `iSupIndep` (#29791) * generalize `Finset.SupIndep` "bind" operations from `DistribLattice` to `IsModularLattice` * new lemma `iSupIndep.iInf` * more characterizations of `iSupIndep` on submodules: * `iSupIndep_iff_finset_sum_eq_zero_imp_eq_zero` * `iSupIndep_iff_finset_sum_eq_imp_eq` * add `@[simp]` and `@[grind]` attributes which were helpful for these proofs Original motivation was to have the following fact: ```lean theorem iSupIndep_iInf_genEigenspace [NoZeroSMulDivisors R M] {α : Type*} (f : α → End R M) (k : ℕ∞) : iSupIndep fun μ : α → R ↦ ⨅ a : α, ((f a).genEigenspace (μ a)) k := .iInf (f · |>.genEigenspace · k) (f · |>.independent_genEigenspace k) ``` ESTIMATED CHANGES Modified Mathlib/Data/Finset/Disjoint.lean Modified Mathlib/Data/Finset/Lattice/Fold.lean Modified Mathlib/Data/Finset/Lattice/Union.lean +/- theorem Finset.inf_biUnion Modified Mathlib/Data/Finset/Sigma.lean Modified Mathlib/GroupTheory/Perm/Cycle/Factors.lean Modified Mathlib/LinearAlgebra/DFinsupp.lean + theorem iSupIndep_iff_finset_sum_eq_imp_eq + theorem iSupIndep_iff_finset_sum_eq_zero_imp_eq_zero Modified Mathlib/LinearAlgebra/Eigenspace/Basic.lean Modified Mathlib/Logic/Embedding/Basic.lean Modified Mathlib/Order/CompactlyGenerated/Basic.lean + theorem iSupIndep.iInf Modified Mathlib/Order/Partition/Finpartition.lean Modified Mathlib/Order/SupIndep.lean + theorem Finset.SupIndep.mono + theorem Finset.supIndep_sigma_iff' + theorem iSupIndep.injOn_iInf + theorem iSupIndep_subsingleton 2025-10-27 19:39:45 fcfaca0 chore: fix longest pole utilities, and verify in CI (#29967) We should consider outright deleting these. The fact that they were broken is good evidence they haven't been used recently. Sebastian also has a good replacement available (that is aware of the module system), although I'm not sure it's deployed yet. ESTIMATED CHANGES Modified .github/build.in.yml Modified .github/workflows/bors.yml Modified .github/workflows/build.yml Modified .github/workflows/build_fork.yml Modified LongestPole/Main.lean Modified LongestPole/Unused.lean 2025-10-27 16:35:57 ef9ae2a feat(gcongr): support `@[gcongr]` for `Monotone` and friends (#28339) This PR adds the feature to `gcongr` that you can now tag lemmas whose conclusion is `Monotone f`, `Antitone f`, etc. ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Floor/Ring.lean +/- theorem Int.floor_le_floor Modified Mathlib/Algebra/Order/Floor/Semiring.lean +/- theorem Nat.floor_le_floor Modified Mathlib/Algebra/Order/Module/Algebra.lean +/- theorem algebraMap_mono +/- theorem algebraMap_strictMono Modified Mathlib/Algebra/Order/Ring/Cast.lean Modified Mathlib/Algebra/Ring/Subring/Basic.lean Modified Mathlib/Analysis/Complex/Exponential.lean Modified Mathlib/Analysis/SpecialFunctions/Log/ERealExp.lean +/- theorem EReal.exp_le_exp +/- theorem EReal.exp_lt_exp Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Arctan.lean Modified Mathlib/Combinatorics/Extremal/RuzsaSzemeredi.lean - theorem ruzsaSzemerediNumberNat_le_ruzsaSzemerediNumberNat +/- theorem ruzsaSzemerediNumberNat_mono Modified Mathlib/Data/Finsupp/Order.lean Modified Mathlib/Data/Multiset/Defs.lean +/- theorem Multiset.card_strictMono Modified Mathlib/Data/Nat/Cast/Order/Basic.lean - theorem GCongr.natCast_le_natCast - theorem GCongr.natCast_lt_natCast Modified Mathlib/Data/Rat/Cast/Order.lean Modified Mathlib/Data/Real/Sqrt.lean Modified Mathlib/LinearAlgebra/Basis/Flag.lean +/- theorem Module.Basis.flag_le_flag Modified Mathlib/MeasureTheory/Function/SimpleFunc.lean Modified Mathlib/MeasureTheory/Integral/Lebesgue/Add.lean Modified Mathlib/Order/Filter/Map.lean - theorem GCongr.Filter.comap_le_comap - theorem GCongr.Filter.map_le_map Modified Mathlib/Order/Hom/Basic.lean Modified Mathlib/Order/KrullDimension.lean Modified Mathlib/Tactic/GCongr/Core.lean Modified MathlibTest/GCongr/inequalities.lean + def GCongrTests.myAnti + theorem GCongrTests.myAnti_strictAnti + theorem GCongrTests.myAnti_strictAntiOn + def GCongrTests.myCons + theorem GCongrTests.myCons_antitone + theorem GCongrTests.myCons_antitoneOn + theorem GCongrTests.myCons_monotone' + theorem GCongrTests.myCons_monotone + theorem GCongrTests.myCons_monotoneOn + def GCongrTests.myMono + theorem GCongrTests.myMono_strictMono + theorem GCongrTests.myMono_strictMonoOn 2025-10-27 15:32:19 4086670 feat(Geometry/Euclidean/Incenter): `dist_excenter_eq_dist_excenter` (#30935) Add lemmas ```lean lemma ExcenterExists.dist_excenter_eq_dist_excenter {signs : Finset (Fin (n + 1))} (h : s.ExcenterExists signs) (i₁ i₂ : Fin (n + 1)) : dist (s.excenter signs) (s.touchpoint signs i₁) = dist (s.excenter signs) (s.touchpoint signs i₂) := by ``` ```lean lemma dist_incenter_eq_dist_incenter (i₁ i₂ : Fin (n + 1)) : dist s.incenter (s.touchpoint ∅ i₁) = dist s.incenter (s.touchpoint ∅ i₂) := ``` that an excenter of a simplex is equidistant to any two of its touchpoints. These are trivial variants of the existing lemmas that the distance equals the exradius, but they are useful several times when relating excenters to angle bisection, so it seems worth having them as separate lemmas. ESTIMATED CHANGES Modified Mathlib/Geometry/Euclidean/Incenter.lean + theorem Affine.Simplex.ExcenterExists.dist_excenter_eq_dist_excenter + theorem Affine.Simplex.dist_incenter_eq_dist_incenter 2025-10-27 15:32:17 d1e0be9 feat(Geometry/Euclidean/Incenter): cases for excenters of triangles (#30918) Add lemmas that all choices of signs give a valid excenter for a triangle, and that any excenter for a triangle is either the incenter or the excenter opposite a vertex. ESTIMATED CHANGES Modified Mathlib/Geometry/Euclidean/Incenter.lean + theorem Affine.Simplex.excenter_compl + theorem Affine.Simplex.exradius_compl + theorem Affine.Simplex.exsphere_compl + theorem Affine.Triangle.excenterExists + theorem Affine.Triangle.excenter_eq_incenter_or_excenter_singleton + theorem Affine.Triangle.excenter_eq_incenter_or_excenter_singleton_of_ne 2025-10-27 15:32:15 01318ac feat(Geometry/Euclidean/Incenter): excenters are not vertices (#30916) Add lemmas that excenters of a simplex do not equal any of the vertices of that simplex. ESTIMATED CHANGES Modified Mathlib/Geometry/Euclidean/Incenter.lean + theorem Affine.Simplex.ExcenterExists.affineCombination_eq_excenter_iff + theorem Affine.Simplex.ExcenterExists.excenterWeights_ne_zero + theorem Affine.Simplex.ExcenterExists.excenter_ne_point + theorem Affine.Simplex.excenterWeightsUnnorm_ne_zero + theorem Affine.Simplex.incenter_ne_point 2025-10-27 15:32:14 c9becdb fix(Tactic/Lift): don't clear a variable if it's impossible (#30850) Closes #19160. ESTIMATED CHANGES Modified Mathlib/Data/Set/Finite/Basic.lean Modified Mathlib/GroupTheory/Perm/Cycle/Basic.lean Modified Mathlib/Order/WithBot.lean +/- theorem WithBot.lt_unbot_iff +/- theorem WithBot.unbot_lt_iff Modified Mathlib/Tactic/Lift.lean Modified MathlibTest/lift.lean + def foo 2025-10-27 15:32:12 d7286e8 feat(LinearAlgebra/AffineSpace/Independent): `inf_affineSpan_eq_affineSpan_inter` (#30702) Add a lemma ```lean lemma AffineIndependent.inf_affineSpan_eq_affineSpan_inter [Nontrivial k] {p : ι → P} (ha : AffineIndependent k p) (s₁ s₂ : Set ι) : affineSpan k (p '' s₁) ⊓ affineSpan k (p '' s₂) = affineSpan k (p '' (s₁ ∩ s₂)) := by ``` with a proof adapted from that of the existing weaker `exists_mem_inter_of_exists_mem_inter_affineSpan`, and change `exists_mem_inter_of_exists_mem_inter_affineSpan` to be proved using the new lemma. ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/AffineSpace/Independent.lean + theorem AffineIndependent.inf_affineSpan_eq_affineSpan_inter 2025-10-27 15:32:10 502d38e feat(Geometry/Euclidean/Projection): characteristic property (#30698) Add a lemma ```lean lemma orthogonalProjection_eq_iff_mem {s : AffineSubspace ℝ P} [Nonempty s] [s.direction.HasOrthogonalProjection] {p q : P} : orthogonalProjection s p = q ↔ q ∈ s ∧ p -ᵥ q ∈ s.directionᗮ := by ``` that gives the characteristic property of the orthogonal projection in a more convenient form to use than the existing `inter_eq_singleton_orthogonalProjection` (from which it is derived). Deduce a lemma `orthogonalProjection_eq_orthogonalProjection_iff_vsub_mem` about equality of two projections onto the same subspace. ESTIMATED CHANGES Modified Mathlib/Geometry/Euclidean/Projection.lean + theorem EuclideanGeometry.coe_orthogonalProjection_eq_iff_mem + theorem EuclideanGeometry.orthogonalProjection_eq_iff_mem + theorem EuclideanGeometry.orthogonalProjection_eq_orthogonalProjection_iff_vsub_mem 2025-10-27 15:32:08 f70c739 feat(Analysis/SpecialFunctions/Trigonometric/Angle): equality from equality of twice angles (#30598) Add lemmas that two angles less than `π / 2` are equal if and only if twice those angles are equal, along with a separate lemma ```lean lemma toReal_neg_eq_neg_toReal_iff {θ : Angle} : (-θ).toReal = -(θ.toReal) ↔ θ ≠ π := by ``` which isn't directly connected but turns out to be useful in the same application (dealing with angles in right-angled triangles that are less then `π / 2`, when you have two such triangles that are oppositely-oriented). ESTIMATED CHANGES Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Angle.lean + theorem Real.Angle.toReal_neg_eq_neg_toReal_iff + theorem Real.Angle.two_nsmul_eq_iff_eq_of_abs_toReal_lt_pi_div_two + theorem Real.Angle.two_zsmul_eq_iff_eq_of_abs_toReal_lt_pi_div_two 2025-10-27 15:32:06 6e974c7 feat(Geometry/Euclidean/Angle): angles with orthogonal projections (#30522) Add some lemmas that angles involving orthogonal projections are right angles. The unoriented versions abstract something used multiple times in `Mathlib.Geometry.Euclidean.Angle.Bisector` (which is thus refactored to use the new lemmas); I expect the oriented versions may be of use in future in further oriented angle bisection lemmas building on top of #30477. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Geometry/Euclidean/Angle/Bisector.lean Added Mathlib/Geometry/Euclidean/Angle/Oriented/Projection.lean + theorem EuclideanGeometry.oangle_orthogonalProjection_self + theorem EuclideanGeometry.oangle_self_orthogonalProjection + theorem EuclideanGeometry.two_zsmul_oangle_orthogonalProjection_self + theorem EuclideanGeometry.two_zsmul_oangle_self_orthogonalProjection Added Mathlib/Geometry/Euclidean/Angle/Unoriented/Projection.lean + theorem EuclideanGeometry.angle_orthogonalProjection_self + theorem EuclideanGeometry.angle_self_orthogonalProjection 2025-10-27 15:32:03 1835445 feat: more lemmas on `AntisymmRel` (#30489) ESTIMATED CHANGES Modified Mathlib/Order/Antisymmetrization.lean + theorem not_antisymmRel_of_gt + theorem not_antisymmRel_of_lt + theorem not_gt_of_antisymmRel + theorem not_lt_of_antisymmRel 2025-10-27 15:32:01 714a52c feat(Geometry/Euclidean/Incenter): touchpoints are not vertices (#30485) Add lemmas that touchpoints of a simplex do not equal any of the vertices (in two or more dimensions, this isn't true for a 1-simplex). ESTIMATED CHANGES Modified Mathlib/Geometry/Euclidean/Incenter.lean + theorem Affine.Simplex.ExcenterExists.touchpoint_ne_point + theorem Affine.Simplex.touchpoint_empty_ne_point 2025-10-27 15:31:59 529ccf0 feat: remove separability assumption from Algebra.dvd_algebraMap_intNorm_self (#30478) Continuing the work of #30323 and #30448 we remove the separability assumption from `Algebra.dvd_algebraMap_intNorm_self`. ESTIMATED CHANGES Modified Mathlib/RingTheory/Ideal/Norm/RelNorm.lean +/- theorem Ideal.relNorm_le_comap +/- theorem Ideal.spanNorm_le_comap Modified Mathlib/RingTheory/IntegralClosure/IntegralRestrict.lean +/- theorem Algebra.dvd_algebraMap_intNorm_self 2025-10-27 15:31:57 d5cab0e refactor(CategoryTheory/Generator): use ObjectProperty instead of Set (#30269) In certain applications (see #30247), it becomes unpractical to have certains notions like `IsSeparating` defined for `Set C`, while the API for the relatively new `ObjectProperty` is expanding. In this PR, we move the definition of `IsSeparating` to the `ObjectProperty` namespace. ESTIMATED CHANGES Modified Mathlib/Algebra/Category/ModuleCat/AB.lean Modified Mathlib/Algebra/Category/ModuleCat/Presheaf/Generator.lean +/- theorem PresheafOfModules.freeYoneda.isDetecting +/- theorem PresheafOfModules.freeYoneda.isSeparating +/- def PresheafOfModules.freeYoneda Modified Mathlib/CategoryTheory/Abelian/GrothendieckCategory/EnoughInjectives.lean Modified Mathlib/CategoryTheory/Abelian/GrothendieckCategory/ModuleEmbedding/GabrielPopescu.lean Modified Mathlib/CategoryTheory/Adjunction/AdjointFunctorTheorems.lean +/- theorem CategoryTheory.Limits.hasColimits_of_hasLimits_of_isCoseparating +/- theorem CategoryTheory.Limits.hasLimits_of_hasColimits_of_isSeparating Modified Mathlib/CategoryTheory/Comma/StructuredArrow/Small.lean Modified Mathlib/CategoryTheory/Generator/Basic.lean + theorem CategoryTheory.CostructuredArrow.isSeparating_inverseImage_proj - theorem CategoryTheory.CostructuredArrow.isSeparating_proj_preimage - theorem CategoryTheory.IsCodetecting.isCoseparating - theorem CategoryTheory.IsCodetecting.isIso_iff_of_epi - theorem CategoryTheory.IsCodetecting.mono - def CategoryTheory.IsCodetecting - theorem CategoryTheory.IsCoseparating.isCodetecting - theorem CategoryTheory.IsCoseparating.mono - theorem CategoryTheory.IsCoseparating.of_equivalence - def CategoryTheory.IsCoseparating - theorem CategoryTheory.IsDetecting.isIso_iff_of_mono - theorem CategoryTheory.IsDetecting.isSeparating - theorem CategoryTheory.IsDetecting.mono - def CategoryTheory.IsDetecting - theorem CategoryTheory.IsSeparating.isDetecting - theorem CategoryTheory.IsSeparating.isSeparator_coproduct - theorem CategoryTheory.IsSeparating.mono - theorem CategoryTheory.IsSeparating.of_equivalence - def CategoryTheory.IsSeparating + theorem CategoryTheory.ObjectProperty.IsCodetecting.isCoseparating + theorem CategoryTheory.ObjectProperty.IsCodetecting.isIso_iff_of_epi + theorem CategoryTheory.ObjectProperty.IsCodetecting.of_le + def CategoryTheory.ObjectProperty.IsCodetecting + theorem CategoryTheory.ObjectProperty.IsCoseparating.isCodetecting + theorem CategoryTheory.ObjectProperty.IsCoseparating.of_equivalence + theorem CategoryTheory.ObjectProperty.IsCoseparating.of_le + def CategoryTheory.ObjectProperty.IsCoseparating + theorem CategoryTheory.ObjectProperty.IsDetecting.isIso_iff_of_mono + theorem CategoryTheory.ObjectProperty.IsDetecting.isSeparating + theorem CategoryTheory.ObjectProperty.IsDetecting.of_le + def CategoryTheory.ObjectProperty.IsDetecting + theorem CategoryTheory.ObjectProperty.IsSeparating.isDetecting + theorem CategoryTheory.ObjectProperty.IsSeparating.isSeparator_coproduct + theorem CategoryTheory.ObjectProperty.IsSeparating.of_equivalence + theorem CategoryTheory.ObjectProperty.IsSeparating.of_le + def CategoryTheory.ObjectProperty.IsSeparating + theorem CategoryTheory.ObjectProperty.isCodetecting_bot_of_isGroupoid + theorem CategoryTheory.ObjectProperty.isCodetecting_iff_isCoseparating + theorem CategoryTheory.ObjectProperty.isCodetecting_op_iff + theorem CategoryTheory.ObjectProperty.isCodetecting_unop_iff + theorem CategoryTheory.ObjectProperty.isCoseparating_bot_of_isThin + theorem CategoryTheory.ObjectProperty.isCoseparating_iff_mono + theorem CategoryTheory.ObjectProperty.isCoseparating_op_iff + theorem CategoryTheory.ObjectProperty.isCoseparating_unop_iff + theorem CategoryTheory.ObjectProperty.isDetecting_bot_of_isGroupoid + theorem CategoryTheory.ObjectProperty.isDetecting_iff_isSeparating + theorem CategoryTheory.ObjectProperty.isDetecting_op_iff + theorem CategoryTheory.ObjectProperty.isDetecting_unop_iff + theorem CategoryTheory.ObjectProperty.isGroupoid_of_isCodetecting_bot + theorem CategoryTheory.ObjectProperty.isGroupoid_of_isDetecting_bot + theorem CategoryTheory.ObjectProperty.isSeparating_bot_of_isThin + theorem CategoryTheory.ObjectProperty.isSeparating_iff_epi + theorem CategoryTheory.ObjectProperty.isSeparating_op_iff + theorem CategoryTheory.ObjectProperty.isSeparating_unop_iff + theorem CategoryTheory.ObjectProperty.isThin_of_isCoseparating_bot + theorem CategoryTheory.ObjectProperty.isThin_of_isSeparating_bot + theorem CategoryTheory.StructuredArrow.isCoseparating_inverseImage_proj - theorem CategoryTheory.StructuredArrow.isCoseparating_proj_preimage +/- theorem CategoryTheory.Subobject.eq_of_isDetecting +/- theorem CategoryTheory.Subobject.eq_of_le_of_isDetecting +/- theorem CategoryTheory.Subobject.inf_eq_of_isDetecting - theorem CategoryTheory.groupoid_of_isCodetecting_empty - theorem CategoryTheory.groupoid_of_isDetecting_empty - theorem CategoryTheory.isCodetecting_empty_of_groupoid - theorem CategoryTheory.isCodetecting_iff_isCoseparating - theorem CategoryTheory.isCodetecting_op_iff - theorem CategoryTheory.isCodetecting_unop_iff - theorem CategoryTheory.isCoseparating_empty_of_thin - theorem CategoryTheory.isCoseparating_iff_mono - theorem CategoryTheory.isCoseparating_op_iff - theorem CategoryTheory.isCoseparating_unop_iff + theorem CategoryTheory.isCoseparator_iff_of_isLimit_fan + theorem CategoryTheory.isCoseparator_of_isLimit_fan - theorem CategoryTheory.isDetecting_empty_of_groupoid - theorem CategoryTheory.isDetecting_iff_isSeparating - theorem CategoryTheory.isDetecting_op_iff - theorem CategoryTheory.isDetecting_unop_iff - theorem CategoryTheory.isSeparating_empty_of_thin - theorem CategoryTheory.isSeparating_iff_epi - theorem CategoryTheory.isSeparating_op_iff - theorem CategoryTheory.isSeparating_unop_iff + theorem CategoryTheory.isSeparator_iff_of_isColimit_cofan - theorem CategoryTheory.thin_of_isCoseparating_empty - theorem CategoryTheory.thin_of_isSeparating_empty +/- theorem CategoryTheory.wellPowered_of_isDetecting Modified Mathlib/CategoryTheory/Generator/HomologicalComplex.lean Modified Mathlib/CategoryTheory/Generator/Indization.lean +/- theorem CategoryTheory.Ind.isSeparating_range_yoneda Modified Mathlib/CategoryTheory/Generator/Preadditive.lean +/- theorem CategoryTheory.Preadditive.isCoseparating_iff +/- theorem CategoryTheory.Preadditive.isSeparating_iff Modified Mathlib/CategoryTheory/Generator/Presheaf.lean +/- theorem CategoryTheory.Presheaf.isSeparating +/- theorem CategoryTheory.Presheaf.isSeparator Modified Mathlib/CategoryTheory/Generator/Sheaf.lean +/- theorem CategoryTheory.Sheaf.isSeparating +/- theorem CategoryTheory.Sheaf.isSeparator 2025-10-27 15:31:56 4b88792 feat: constructor for submodules and pointed cones from two-element closures (#27578) in Algebra/Module/Submodule/Defs.lean - Construct a submodule from closure under two-element linear combinations. in Geometry/Convex/Cone/Pointed.lean - Construct a pointed cone from closure under two-element conical combinations. - lemma mem_span_set ESTIMATED CHANGES Modified Mathlib/Algebra/Module/Submodule/Defs.lean + def Submodule.ofLinearComb Modified Mathlib/Geometry/Convex/Cone/Pointed.lean + theorem PointedCone.mem_span_set + def PointedCone.ofConeComb 2025-10-27 15:02:54 0cf8d72 chore(RingTheory/TensorProduct/Basic): split RingTheory.TensorProduct.Basic (#30806) This PR splits the file * Mathlib/RingTheory/TensorProduct/Basic.lean into * Mathlib/RingTheory/TensorProduct/Basic.lean * Mathlib/RingTheory/TensorProduct/Maps.lean Everything from the file `Basic.lean` related to maps between tensor products of `R`-algebras has been moved to a new file `Maps.lean`, unless it is required for constructions. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Algebra/Subalgebra/Centralizer.lean Modified Mathlib/Algebra/Azumaya/Basic.lean Modified Mathlib/Algebra/Category/AlgCat/Monoidal.lean Modified Mathlib/LinearAlgebra/Dual/Lemmas.lean Modified Mathlib/LinearAlgebra/TensorProduct/Opposite.lean Modified Mathlib/LinearAlgebra/TensorProduct/RightExactness.lean Modified Mathlib/LinearAlgebra/TensorProduct/Subalgebra.lean Modified Mathlib/RingTheory/Bialgebra/Basic.lean Modified Mathlib/RingTheory/IsTensorProduct.lean Modified Mathlib/RingTheory/MatrixAlgebra.lean Modified Mathlib/RingTheory/Nilpotent/Exp.lean Modified Mathlib/RingTheory/Spectrum/Prime/RingHom.lean Modified Mathlib/RingTheory/TensorProduct/Basic.lean - theorem Algebra.TensorProduct.adjoin_tmul_eq_top - def Algebra.TensorProduct.algEquivOfLinearEquivTensorProduct - theorem Algebra.TensorProduct.algEquivOfLinearEquivTensorProduct_apply - def Algebra.TensorProduct.algEquivOfLinearEquivTripleTensorProduct - theorem Algebra.TensorProduct.algEquivOfLinearEquivTripleTensorProduct_apply - def Algebra.TensorProduct.algHomOfLinearMapTensorProduct - theorem Algebra.TensorProduct.algHomOfLinearMapTensorProduct_apply - theorem Algebra.TensorProduct.assoc_aux_1 - theorem Algebra.TensorProduct.assoc_aux_2 - theorem Algebra.TensorProduct.assoc_symm_tmul - theorem Algebra.TensorProduct.assoc_tmul - theorem Algebra.TensorProduct.assoc_toLinearEquiv - def Algebra.TensorProduct.cancelBaseChange - theorem Algebra.TensorProduct.cancelBaseChange_symm_tmul - theorem Algebra.TensorProduct.cancelBaseChange_tmul - theorem Algebra.TensorProduct.comm_comp_includeLeft - theorem Algebra.TensorProduct.comm_comp_includeRight - theorem Algebra.TensorProduct.comm_comp_map - theorem Algebra.TensorProduct.comm_comp_map_apply - theorem Algebra.TensorProduct.comm_symm - theorem Algebra.TensorProduct.comm_symm_tmul - theorem Algebra.TensorProduct.comm_tmul - theorem Algebra.TensorProduct.comm_toLinearEquiv - def Algebra.TensorProduct.congr - theorem Algebra.TensorProduct.congr_apply - theorem Algebra.TensorProduct.congr_refl - theorem Algebra.TensorProduct.congr_symm - theorem Algebra.TensorProduct.congr_symm_apply - theorem Algebra.TensorProduct.congr_toLinearEquiv - theorem Algebra.TensorProduct.congr_trans - def Algebra.TensorProduct.equivOfCompatibleSMul - theorem Algebra.TensorProduct.includeLeft_bijective - theorem Algebra.TensorProduct.includeRight_bijective - def Algebra.TensorProduct.leftComm - theorem Algebra.TensorProduct.leftComm_symm_tmul - theorem Algebra.TensorProduct.leftComm_tmul - theorem Algebra.TensorProduct.leftComm_toLinearEquiv - def Algebra.TensorProduct.lidOfCompatibleSMul - theorem Algebra.TensorProduct.lidOfCompatibleSMul_tmul - theorem Algebra.TensorProduct.lid_symm_apply - theorem Algebra.TensorProduct.lid_tmul - theorem Algebra.TensorProduct.lid_toLinearEquiv - def Algebra.TensorProduct.lift - def Algebra.TensorProduct.liftEquiv - theorem Algebra.TensorProduct.lift_comp_includeLeft - theorem Algebra.TensorProduct.lift_comp_includeRight - theorem Algebra.TensorProduct.lift_includeLeft_includeRight - theorem Algebra.TensorProduct.lift_tmul - def Algebra.TensorProduct.lmul'' - theorem Algebra.TensorProduct.lmul''_eq_lid_comp_mapOfCompatibleSMul - def Algebra.TensorProduct.lmul' - theorem Algebra.TensorProduct.lmul'_apply_tmul - theorem Algebra.TensorProduct.lmul'_comp_includeLeft - theorem Algebra.TensorProduct.lmul'_comp_includeRight - theorem Algebra.TensorProduct.lmul'_comp_map - theorem Algebra.TensorProduct.lmul'_toLinearMap - def Algebra.TensorProduct.lmulEquiv - theorem Algebra.TensorProduct.lmulEquiv_eq_lidOfCompatibleSMul - def Algebra.TensorProduct.map - def Algebra.TensorProduct.mapOfCompatibleSMul' - def Algebra.TensorProduct.mapOfCompatibleSMul - theorem Algebra.TensorProduct.mapOfCompatibleSMul_surjective - theorem Algebra.TensorProduct.mapOfCompatibleSMul_tmul - theorem Algebra.TensorProduct.map_bijective - theorem Algebra.TensorProduct.map_comp - theorem Algebra.TensorProduct.map_comp_id - theorem Algebra.TensorProduct.map_comp_includeLeft - theorem Algebra.TensorProduct.map_comp_includeRight - theorem Algebra.TensorProduct.map_id - theorem Algebra.TensorProduct.map_id_comp - theorem Algebra.TensorProduct.map_range - theorem Algebra.TensorProduct.map_restrictScalars_comp_includeRight - theorem Algebra.TensorProduct.map_tmul - def Algebra.TensorProduct.productMap - theorem Algebra.TensorProduct.productMap_apply_tmul - theorem Algebra.TensorProduct.productMap_eq_comp_map - theorem Algebra.TensorProduct.productMap_left - theorem Algebra.TensorProduct.productMap_left_apply - theorem Algebra.TensorProduct.productMap_range - theorem Algebra.TensorProduct.productMap_right - theorem Algebra.TensorProduct.productMap_right_apply - theorem Algebra.TensorProduct.rid_symm_apply - theorem Algebra.TensorProduct.rid_tmul - theorem Algebra.TensorProduct.rid_toLinearEquiv - def Algebra.TensorProduct.tensorTensorTensorComm - theorem Algebra.TensorProduct.tensorTensorTensorComm_symm - theorem Algebra.TensorProduct.tensorTensorTensorComm_symm_tmul - theorem Algebra.TensorProduct.tensorTensorTensorComm_tmul - theorem Algebra.TensorProduct.tensorTensorTensorComm_toLinearEquiv - theorem Algebra.TensorProduct.tmul_one_eq_one_tmul - theorem Algebra.TensorProduct.toLinearEquiv_tensorTensorTensorComm - theorem LinearMap.map_mul_of_map_mul_tmul - def LinearMap.tensorProduct - def LinearMap.tensorProductEnd - def Module.End.lTensorAlgHom - def Module.End.rTensorAlgHom - def Module.endTensorEndAlgHom - theorem Module.endTensorEndAlgHom_apply Modified Mathlib/RingTheory/TensorProduct/Finite.lean Added Mathlib/RingTheory/TensorProduct/Maps.lean + theorem Algebra.TensorProduct.adjoin_tmul_eq_top + def Algebra.TensorProduct.algEquivOfLinearEquivTensorProduct + theorem Algebra.TensorProduct.algEquivOfLinearEquivTensorProduct_apply + def Algebra.TensorProduct.algEquivOfLinearEquivTripleTensorProduct + theorem Algebra.TensorProduct.algEquivOfLinearEquivTripleTensorProduct_apply + def Algebra.TensorProduct.algHomOfLinearMapTensorProduct + theorem Algebra.TensorProduct.algHomOfLinearMapTensorProduct_apply + theorem Algebra.TensorProduct.assoc_aux_1 + theorem Algebra.TensorProduct.assoc_aux_2 + theorem Algebra.TensorProduct.assoc_symm_tmul + theorem Algebra.TensorProduct.assoc_tmul + theorem Algebra.TensorProduct.assoc_toLinearEquiv + def Algebra.TensorProduct.cancelBaseChange + theorem Algebra.TensorProduct.cancelBaseChange_symm_tmul + theorem Algebra.TensorProduct.cancelBaseChange_tmul + theorem Algebra.TensorProduct.comm_comp_includeLeft + theorem Algebra.TensorProduct.comm_comp_includeRight + theorem Algebra.TensorProduct.comm_comp_map + theorem Algebra.TensorProduct.comm_comp_map_apply + theorem Algebra.TensorProduct.comm_symm + theorem Algebra.TensorProduct.comm_symm_tmul + theorem Algebra.TensorProduct.comm_tmul + theorem Algebra.TensorProduct.comm_toLinearEquiv + def Algebra.TensorProduct.congr + theorem Algebra.TensorProduct.congr_apply + theorem Algebra.TensorProduct.congr_refl + theorem Algebra.TensorProduct.congr_symm + theorem Algebra.TensorProduct.congr_symm_apply + theorem Algebra.TensorProduct.congr_toLinearEquiv + theorem Algebra.TensorProduct.congr_trans + def Algebra.TensorProduct.equivOfCompatibleSMul + theorem Algebra.TensorProduct.includeLeft_bijective + theorem Algebra.TensorProduct.includeRight_bijective + def Algebra.TensorProduct.leftComm + theorem Algebra.TensorProduct.leftComm_symm_tmul + theorem Algebra.TensorProduct.leftComm_tmul + theorem Algebra.TensorProduct.leftComm_toLinearEquiv + def Algebra.TensorProduct.lidOfCompatibleSMul + theorem Algebra.TensorProduct.lidOfCompatibleSMul_tmul + theorem Algebra.TensorProduct.lid_symm_apply + theorem Algebra.TensorProduct.lid_tmul + theorem Algebra.TensorProduct.lid_toLinearEquiv + def Algebra.TensorProduct.lift + def Algebra.TensorProduct.liftEquiv + theorem Algebra.TensorProduct.lift_comp_includeLeft + theorem Algebra.TensorProduct.lift_comp_includeRight + theorem Algebra.TensorProduct.lift_includeLeft_includeRight + theorem Algebra.TensorProduct.lift_tmul + def Algebra.TensorProduct.lmul'' + theorem Algebra.TensorProduct.lmul''_eq_lid_comp_mapOfCompatibleSMul + def Algebra.TensorProduct.lmul' + theorem Algebra.TensorProduct.lmul'_apply_tmul + theorem Algebra.TensorProduct.lmul'_comp_includeLeft + theorem Algebra.TensorProduct.lmul'_comp_includeRight + theorem Algebra.TensorProduct.lmul'_comp_map + theorem Algebra.TensorProduct.lmul'_toLinearMap + def Algebra.TensorProduct.lmulEquiv + theorem Algebra.TensorProduct.lmulEquiv_eq_lidOfCompatibleSMul + def Algebra.TensorProduct.map + def Algebra.TensorProduct.mapOfCompatibleSMul' + def Algebra.TensorProduct.mapOfCompatibleSMul + theorem Algebra.TensorProduct.mapOfCompatibleSMul_surjective + theorem Algebra.TensorProduct.mapOfCompatibleSMul_tmul + theorem Algebra.TensorProduct.map_bijective + theorem Algebra.TensorProduct.map_comp + theorem Algebra.TensorProduct.map_comp_id + theorem Algebra.TensorProduct.map_comp_includeLeft + theorem Algebra.TensorProduct.map_comp_includeRight + theorem Algebra.TensorProduct.map_id + theorem Algebra.TensorProduct.map_id_comp + theorem Algebra.TensorProduct.map_range + theorem Algebra.TensorProduct.map_restrictScalars_comp_includeRight + theorem Algebra.TensorProduct.map_tmul + def Algebra.TensorProduct.productMap + theorem Algebra.TensorProduct.productMap_apply_tmul + theorem Algebra.TensorProduct.productMap_eq_comp_map + theorem Algebra.TensorProduct.productMap_left + theorem Algebra.TensorProduct.productMap_left_apply + theorem Algebra.TensorProduct.productMap_range + theorem Algebra.TensorProduct.productMap_right + theorem Algebra.TensorProduct.productMap_right_apply + theorem Algebra.TensorProduct.rid_symm_apply + theorem Algebra.TensorProduct.rid_tmul + theorem Algebra.TensorProduct.rid_toLinearEquiv + def Algebra.TensorProduct.tensorTensorTensorComm + theorem Algebra.TensorProduct.tensorTensorTensorComm_symm + theorem Algebra.TensorProduct.tensorTensorTensorComm_symm_tmul + theorem Algebra.TensorProduct.tensorTensorTensorComm_tmul + theorem Algebra.TensorProduct.tensorTensorTensorComm_toLinearEquiv + theorem Algebra.TensorProduct.tmul_one_eq_one_tmul + theorem Algebra.TensorProduct.toLinearEquiv_tensorTensorTensorComm + theorem LinearMap.map_mul_of_map_mul_tmul + def LinearMap.tensorProduct + def LinearMap.tensorProductEnd + def Module.End.lTensorAlgHom + def Module.End.rTensorAlgHom + def Module.endTensorEndAlgHom + theorem Module.endTensorEndAlgHom_apply Modified Mathlib/RingTheory/TensorProduct/Pi.lean 2025-10-27 15:02:52 21401e5 feat: API for dealing with divisors attached to meromorphic functions (#30794) Provide supporting API useful in the discussion of (zero/pole) divisors attached to meromorphic functions. ESTIMATED CHANGES Modified Mathlib/Topology/LocallyFinsupp.lean + theorem Function.locallyFinsuppWithin.negPart_apply + theorem Function.locallyFinsuppWithin.nsmul_negPart + theorem Function.locallyFinsuppWithin.nsmul_posPart + theorem Function.locallyFinsuppWithin.posPart_apply 2025-10-27 15:02:50 65a039a feat(MvPolynomial/Expand): more lemmas (#28833) ESTIMATED CHANGES Modified Mathlib/Algebra/MvPolynomial/Eval.lean +/- theorem MvPolynomial.aeval_X + theorem MvPolynomial.aeval_eq_eval +/- theorem MvPolynomial.coe_aeval_eq_eval Modified Mathlib/Algebra/MvPolynomial/Expand.lean + theorem MvPolynomial.aeval_comp_expand + theorem MvPolynomial.aeval_expand + theorem MvPolynomial.coeff_expand_of_not_dvd + theorem MvPolynomial.coeff_expand_smul + theorem MvPolynomial.eval_expand + theorem MvPolynomial.eval₂Hom_comp_expand + theorem MvPolynomial.eval₂_expand + theorem MvPolynomial.expand_mul + theorem MvPolynomial.expand_mul_eq_comp +/- theorem MvPolynomial.expand_one_apply + theorem MvPolynomial.expand_zero + theorem MvPolynomial.expand_zero_apply + theorem MvPolynomial.support_expand + theorem MvPolynomial.support_expand_subset 2025-10-27 14:40:43 bd73402 chore(CMField): refactor the definition of `IsCMField` (#30965) Change the definition to ```lean class IsCMField (K : Type*) [Field K] [NumberField K] : Prop where [to_isTotallyComplex : IsTotallyComplex K] [is_quadratic : IsQuadraticExtension (maximalRealSubfield K) K] ``` ESTIMATED CHANGES Modified Mathlib/NumberTheory/NumberField/CMField.lean 2025-10-27 14:26:26 bb68410 chore: construct LEAN_SRC_PATH programmatically in CI (#30844) Followup to #30839 ESTIMATED CHANGES Modified .github/build.in.yml Modified .github/workflows/bors.yml Modified .github/workflows/build.yml Modified .github/workflows/build_fork.yml 2025-10-27 13:29:54 0c8813a refactor(Probability): change stopping times to take values in `WithTop` (#29430) This PR changes stopping times to have type `Ω → WithTop ι` instead of `Ω → ι`. Previously, a stopping time for a filtration indexed by Nat had to have value in Nat. That's not representative of the way stopping times are used in probability. A typical stopping time is the first time at which we see a head in an infinite sequence of coin flips. That time could be infinite (although it is almost surely finite). We can't represent it with a `Ω → Nat` stopping time: if we choose an arbitrary value in Nat for the event that it is infinite, we destroy the stopping time property. We faced that issue in the `BorelCantelli` file, in which we avoided such a possibly infinite stopping time by introducing a sequence of bounded stopping times. We had to prove additional lemmas about them since we could not directly use the API for stopped processes. With the new type, that file is greatly simplified as the API is directly usable, and we can write the proof as we would on paper. The issue with the previous stopping time implementation was noted in [Ying and Degenne, A Formalization of Doob’s Martingale Convergence Theorems in mathlib, CPP 2023, https://dl.acm.org/doi/pdf/10.1145/3573105.3575675]. Other changes: - the sigma-algebra generated by a stopping time is now a sub-sigma algebra by definition - `measurableSet_eq_stopping_time` is generalized and the now useless `measurableSet_eq_stopping_time_of_countable` is removed - `hitting` is renamed to `hittingBtwn` - a new `hittingAfter` is introduced and used in the Borel-Cantelli proof. That proof is now much simpler since we can use a stopped process as intended instead of going around the limitations of the previous stopping time implementation. ESTIMATED CHANGES Modified Mathlib/Order/WithBot.lean + theorem WithTop.le_untopA_iff + theorem WithTop.lt_untopA_iff + theorem WithTop.untopA_le + theorem WithTop.untopA_le_iff + theorem WithTop.untopA_lt_iff + theorem WithTop.untopA_mono + theorem WithTop.untopD_le + theorem WithTop.untopD_le_iff + theorem WithTop.untopD_lt_iff + theorem WithTop.untopD_mono + theorem WithTop.untop_mono Modified Mathlib/Probability/Martingale/Basic.lean Modified Mathlib/Probability/Martingale/BorelCantelli.lean +/- theorem MeasureTheory.Adapted.isStoppingTime_leastGE + theorem MeasureTheory.Submartingale.eLpNorm_stoppedAbove_le' + theorem MeasureTheory.Submartingale.eLpNorm_stoppedAbove_le - theorem MeasureTheory.Submartingale.stoppedValue_leastGE - theorem MeasureTheory.Submartingale.stoppedValue_leastGE_eLpNorm_le' - theorem MeasureTheory.Submartingale.stoppedValue_leastGE_eLpNorm_le - theorem MeasureTheory.leastGE_eq_min - theorem MeasureTheory.leastGE_le - theorem MeasureTheory.leastGE_mono - theorem MeasureTheory.norm_stoppedValue_leastGE_le + theorem MeasureTheory.stoppedAbove_le - theorem MeasureTheory.stoppedValue_stoppedValue_leastGE Modified Mathlib/Probability/Martingale/OptionalSampling.lean +/- theorem MeasureTheory.Martingale.condExp_stopping_time_ae_eq_restrict_eq_const Modified Mathlib/Probability/Martingale/OptionalStopping.lean - theorem MeasureTheory.smul_le_stoppedValue_hitting + theorem MeasureTheory.smul_le_stoppedValue_hittingBtwn Modified Mathlib/Probability/Martingale/Upcrossing.lean +/- theorem MeasureTheory.lowerCrossingTime_zero Modified Mathlib/Probability/Process/HittingTime.lean + theorem MeasureTheory.hittingAfter_bot_le_iff + theorem MeasureTheory.hittingAfter_def + theorem MeasureTheory.hittingAfter_eq_sInf + theorem MeasureTheory.hittingAfter_eq_top_iff + theorem MeasureTheory.hittingAfter_isStoppingTime + theorem MeasureTheory.hittingAfter_le_iff + theorem MeasureTheory.hittingAfter_le_of_mem + theorem MeasureTheory.hittingAfter_lt_iff + theorem MeasureTheory.hittingAfter_mem_set + theorem MeasureTheory.hittingAfter_mem_set_of_ne_top + theorem MeasureTheory.hittingBtwn_bot_le_iff + theorem MeasureTheory.hittingBtwn_def + theorem MeasureTheory.hittingBtwn_eq_end_iff + theorem MeasureTheory.hittingBtwn_eq_hittingBtwn_of_exists + theorem MeasureTheory.hittingBtwn_eq_sInf + theorem MeasureTheory.hittingBtwn_isStoppingTime + theorem MeasureTheory.hittingBtwn_le + theorem MeasureTheory.hittingBtwn_le_iff_of_exists + theorem MeasureTheory.hittingBtwn_le_iff_of_lt + theorem MeasureTheory.hittingBtwn_le_of_mem + theorem MeasureTheory.hittingBtwn_lt_iff + theorem MeasureTheory.hittingBtwn_mem_Icc + theorem MeasureTheory.hittingBtwn_mem_set + theorem MeasureTheory.hittingBtwn_mem_set_of_hittingBtwn_lt + theorem MeasureTheory.hittingBtwn_mono + theorem MeasureTheory.hittingBtwn_of_le + theorem MeasureTheory.hittingBtwn_of_lt - theorem MeasureTheory.hitting_bot_le_iff - theorem MeasureTheory.hitting_def - theorem MeasureTheory.hitting_eq_end_iff - theorem MeasureTheory.hitting_eq_hitting_of_exists - theorem MeasureTheory.hitting_eq_sInf - theorem MeasureTheory.hitting_isStoppingTime - theorem MeasureTheory.hitting_le - theorem MeasureTheory.hitting_le_iff_of_exists - theorem MeasureTheory.hitting_le_iff_of_lt - theorem MeasureTheory.hitting_le_of_mem - theorem MeasureTheory.hitting_lt_iff - theorem MeasureTheory.hitting_mem_Icc - theorem MeasureTheory.hitting_mem_set - theorem MeasureTheory.hitting_mem_set_of_hitting_lt - theorem MeasureTheory.hitting_mono - theorem MeasureTheory.hitting_of_le - theorem MeasureTheory.hitting_of_lt + theorem MeasureTheory.isStoppingTime_hittingBtwn_isStoppingTime - theorem MeasureTheory.isStoppingTime_hitting_isStoppingTime - theorem MeasureTheory.le_hitting + theorem MeasureTheory.le_hittingAfter + theorem MeasureTheory.le_hittingBtwn + theorem MeasureTheory.le_hittingBtwn_of_exists - theorem MeasureTheory.le_hitting_of_exists - theorem MeasureTheory.notMem_of_lt_hitting + theorem MeasureTheory.notMem_of_lt_hittingAfter + theorem MeasureTheory.notMem_of_lt_hittingBtwn + theorem MeasureTheory.stoppedValue_hittingBtwn_mem - theorem MeasureTheory.stoppedValue_hitting_mem Modified Mathlib/Probability/Process/Stopping.lean +/- theorem MeasureTheory.IsStoppingTime.add +/- theorem MeasureTheory.IsStoppingTime.add_const_nat +/- theorem MeasureTheory.IsStoppingTime.measurableSet_eq_stopping_time + theorem MeasureTheory.IsStoppingTime.measurableSet_eq_stopping_time_min - theorem MeasureTheory.IsStoppingTime.measurableSet_eq_stopping_time_of_countable + theorem MeasureTheory.IsStoppingTime.measurableSet_stopping_time_le_min +/- theorem MeasureTheory.IsStoppingTime.measurableSpace_le - theorem MeasureTheory.IsStoppingTime.measurableSpace_le_of_countable +/- def MeasureTheory.IsStoppingTime +/- theorem MeasureTheory.condExp_min_stopping_time_ae_eq_restrict_le + theorem MeasureTheory.measurableSet_preimage_stoppedValue_inter +/- def MeasureTheory.stoppedProcess +/- theorem MeasureTheory.stoppedProcess_eq_of_ge +/- theorem MeasureTheory.stoppedProcess_eq_of_le +/- theorem MeasureTheory.stoppedProcess_eq_stoppedValue +/- def MeasureTheory.stoppedValue +/- theorem MeasureTheory.stoppedValue_eq_of_mem_finset +/- theorem MeasureTheory.stoppedValue_piecewise_const' +/- theorem MeasureTheory.stoppedValue_piecewise_const +/- theorem MeasureTheory.stoppedValue_stoppedProcess + theorem MeasureTheory.stoppedValue_stoppedProcess_ae_eq +/- theorem MeasureTheory.stoppedValue_sub_eq_sum 2025-10-27 12:39:54 a5c1f74 feat(ZeroLEOne): add instances for (indexed) product types (#30506) ESTIMATED CHANGES Modified Mathlib/Algebra/Order/ZeroLEOne.lean 2025-10-27 12:10:19 a36ed51 feat: `f r = r` for `f : ℝ →+* ℝ` (#30486) ESTIMATED CHANGES Modified Mathlib/Data/Real/CompleteField.lean + theorem Real.ringHom_apply 2025-10-27 10:32:58 2f09753 chore: update Mathlib dependencies 2025-10-27 (#30964) This PR updates the Mathlib dependencies. [workflow run for this PR](https://github.com/leanprover-community/mathlib4/actions/runs/18835607221) ESTIMATED CHANGES Modified lake-manifest.json 2025-10-27 10:32:56 ffc0e77 doc(Algebra/Group/Basic): fix broken link (#30951) The first paragraph of https://leanprover-community.github.io/mathlib4_docs/Mathlib/Algebra/Group/Basic.html contains a broken link to Algebra/Group/Basic.lean, which should be Mathlib/Algebra/Group/Basic.lean. ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Basic.lean 2025-10-27 10:19:31 2b63991 chore: allow 'exe cache' to upload Canonical oleans (#30952) See https://leanprover.zulipchat.com/#narrow/channel/113488-general/topic/Canonical ESTIMATED CHANGES Modified Cache/IO.lean 2025-10-27 10:19:28 f8329ef feat(Nat/Nth): inequalities about Nat.nth (#27742) ESTIMATED CHANGES Modified Mathlib/Data/Nat/Nth.lean + theorem Nat.eq_nth_of_strictMonoOn_of_mapsTo_of_surjOn + theorem Nat.le_nth_of_monotoneOn_of_surjOn + theorem Nat.nth_le_of_strictMonoOn_of_mapsTo 2025-10-27 09:15:44 9209df7 chore: only run post_update hook when versions match (#30956) See [#lean4 > Lake new errors @ 💬](https://leanprover.zulipchat.com/#narrow/channel/270676-lean4/topic/Lake.20new.20errors/near/547175291) ESTIMATED CHANGES Modified lakefile.lean 2025-10-27 09:15:42 ac430c1 feat(Topology): add `IsCompact.closure_eq_nhdsKer` (#30123) ESTIMATED CHANGES Modified Mathlib/Topology/Separation/Regular.lean + theorem IsCompact.closure_eq_nhdsKer 2025-10-27 09:15:40 180a3c4 refactor(CategoryTheory/ObjectProperty): IsClosedUnderLimitsOfShape (#29881) This PR renames `ClosedUnderLimitsOfShape` as `ObjectProperty.IsClosedUnderLimitsOfShape`, and make it a typeclass. The stability condition of a property `P` by (co)limits of shape `J` is now expressed as `P.colimitsOfShape J ≤ P`. This facilitates the connection with the relatively new API `ColimitPresentation` #29382 (and the related `ObjectProperty.ColimitOfShape`). By using a typeclass for the stability condition, it will be possible to add instances `HasLimitsOfShape` instances for fullsubcategories. This also makes the design more parallel to what we have for the stability under (co)limits of `MorphismProperty`. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Limits/FullSubcategory.lean - def CategoryTheory.Limits.ClosedUnderColimitsOfShape - def CategoryTheory.Limits.ClosedUnderLimitsOfShape - theorem CategoryTheory.Limits.closedUnderColimitsOfShape_of_colimit - theorem CategoryTheory.Limits.closedUnderLimitsOfShape_of_limit +/- def CategoryTheory.Limits.createsColimitFullSubcategoryInclusionOfClosed - def CategoryTheory.Limits.createsColimitsOfShapeFullSubcategoryInclusion +/- def CategoryTheory.Limits.createsLimitFullSubcategoryInclusionOfClosed - def CategoryTheory.Limits.createsLimitsOfShapeFullSubcategoryInclusion +/- theorem CategoryTheory.Limits.hasColimit_of_closedUnderColimits - theorem CategoryTheory.Limits.hasColimitsOfShape_of_closedUnderColimits +/- theorem CategoryTheory.Limits.hasLimit_of_closedUnderLimits - theorem CategoryTheory.Limits.hasLimitsOfShape_of_closedUnderLimits Modified Mathlib/CategoryTheory/Limits/Indization/Category.lean Modified Mathlib/CategoryTheory/Limits/Indization/Equalizers.lean - theorem CategoryTheory.Limits.closedUnderLimitsOfShape_walkingParallelPair_isIndObject Modified Mathlib/CategoryTheory/Limits/MorphismProperty.lean - theorem CategoryTheory.CostructuredArrow.closedUnderLimitsOfShape_discrete_empty - theorem CategoryTheory.MorphismProperty.Comma.hasColimitsOfShape_of_closedUnderColimitsOfShape - theorem CategoryTheory.MorphismProperty.Comma.hasLimitsOfShape_of_closedUnderLimitsOfShape - theorem CategoryTheory.Over.closedUnderLimitsOfShape_discrete_empty - theorem CategoryTheory.Over.closedUnderLimitsOfShape_pullback Modified Mathlib/CategoryTheory/Monoidal/Cartesian/Basic.lean Modified Mathlib/CategoryTheory/ObjectProperty/ColimitsOfShape.lean + theorem CategoryTheory.ObjectProperty.ColimitOfShape.prop + theorem CategoryTheory.ObjectProperty.IsClosedUnderColimitsOfShape.mk' + theorem CategoryTheory.ObjectProperty.prop_colimit + theorem CategoryTheory.ObjectProperty.prop_of_isColimit Modified Mathlib/CategoryTheory/ObjectProperty/LimitsOfShape.lean + theorem CategoryTheory.ObjectProperty.IsClosedUnderLimitsOfShape.mk' + theorem CategoryTheory.ObjectProperty.LimitOfShape.prop + theorem CategoryTheory.ObjectProperty.prop_limit + theorem CategoryTheory.ObjectProperty.prop_of_isLimit Modified Mathlib/CategoryTheory/Subobject/MonoOver.lean - theorem CategoryTheory.MonoOver.closedUnderLimitsOfShape_isMono 2025-10-27 09:15:38 453ea3b feat(Logic/Equiv/List): add `decodeList_encodeList_eq_self` and removed unnecessary linter options (#28831) ESTIMATED CHANGES Modified Mathlib/Logic/Equiv/List.lean + theorem Encodable.decodeList_encodeList_eq_self 2025-10-27 08:05:24 747d81a feat(Algebra/Group/Torsion): characterise when `a ^ n = 1` (#30680) ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Torsion.lean - theorem IsMulTorsionFree.pow_eq_one_iff' +/- theorem IsMulTorsionFree.pow_eq_one_iff + theorem IsMulTorsionFree.pow_eq_one_iff_left + theorem IsMulTorsionFree.pow_eq_one_iff_right + theorem IsMulTorsionFree.zpow_eq_one_iff + theorem IsMulTorsionFree.zpow_eq_one_iff_left + theorem IsMulTorsionFree.zpow_eq_one_iff_right +/- theorem sq_eq_one Modified Mathlib/Algebra/GroupWithZero/Torsion.lean Modified Mathlib/Algebra/Ring/NonZeroDivisors.lean 2025-10-27 04:03:01 cd0d357 feat(Topology/UniformSpace/OfCompactT2): generalize theorem (#30917) This PR continues the work from #24103. Original PR: https://github.com/leanprover-community/mathlib4/pull/24103 ESTIMATED CHANGES Modified Mathlib/Topology/Separation/Regular.lean + theorem disjoint_nested_nhds_of_not_inseparable Modified Mathlib/Topology/UniformSpace/OfCompactT2.lean + def uniformSpaceOfCompactR1 - def uniformSpaceOfCompactT2 Modified scripts/noshake.json 2025-10-27 04:02:59 59f196f feat: `Set.prod_image_left` (#30701) ESTIMATED CHANGES Modified Mathlib/Data/Set/Operations.lean + theorem Set.prod_image_left + theorem Set.prod_image_right 2025-10-27 02:53:45 88d330e feat: characterise when `Set.rangeFactorization` is injective (#30126) ESTIMATED CHANGES Modified Mathlib/Data/Set/Image.lean - theorem Set.rangeFactorization_surjective Modified Mathlib/Data/Set/Operations.lean + theorem Set.rangeFactorization_bijective + theorem Set.rangeFactorization_injective + theorem Set.rangeFactorization_surjective 2025-10-26 22:22:38 540c589 chore(RingTheory/TensorProduct): golf `tensorTensorTensorComm_symm` and `toLinearEquiv_tensorTensorTensorComm` using `rfl` (#30947) ESTIMATED CHANGES Modified Mathlib/RingTheory/TensorProduct/Basic.lean 2025-10-26 19:41:08 b49483a chore(CategoryTheory/Preadditive): golf `Biproduct.column_nonzero_of_iso'` using `grind` (#30941) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Preadditive/Biproducts.lean 2025-10-26 19:22:04 a15689b chore(Data/List/SplitBy): golf theorems (#30896) ESTIMATED CHANGES Modified Mathlib/Data/List/SplitBy.lean +/- theorem List.ne_nil_of_mem_splitBy 2025-10-26 18:30:54 e771c6f feat(Topology/Algebra/Module): `prod` and `coprod` as `ContinuousLinearEquiv`s (#28906) ESTIMATED CHANGES Modified Mathlib/Topology/Algebra/Module/LinearMapPiProd.lean Modified Mathlib/Topology/Algebra/Module/StrongTopology.lean + def ContinuousLinearMap.coprodEquivL + def ContinuousLinearMap.prodL 2025-10-26 17:45:06 7743d59 feat(Data/Sign/Defs): `sign_eq_sign_or_eq_neg` (#30929) Add the lemma that, in a linear order with zero, two nonzero values have the same sign or opposite signs. ```lean lemma sign_eq_sign_or_eq_neg {b : α} (ha : a ≠ 0) (hb : b ≠ 0) : sign a = sign b ∨ sign a = -sign b := by ``` ESTIMATED CHANGES Modified Mathlib/Data/Sign/Defs.lean + theorem sign_eq_sign_or_eq_neg 2025-10-26 16:48:11 442e00c feat(Data/Finset/BooleanAlgebra): `singleton_ne_univ` (#30930) Add a `simp` lemma `Finset.singleton_ne_univ`, for which the corresponding `Set` lemma already exists. ```lean @[simp] lemma singleton_ne_univ [Nontrivial α] (a : α) : {a} ≠ univ := by ``` ESTIMATED CHANGES Modified Mathlib/Data/Finset/BooleanAlgebra.lean + theorem Finset.singleton_ne_univ 2025-10-26 16:07:39 05253d6 feat(DivergenceTheorem): add 2 versions (#30396) ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Integral/DivergenceTheorem.lean + theorem MeasureTheory.integral2_divergence_prod_of_hasFDerivAt + theorem MeasureTheory.integral_divergence_prod_Icc_of_hasFDerivAt_of_le 2025-10-26 15:49:25 61d564b feat(NumberTheory): order of inertia group = ramification index (#30675) ESTIMATED CHANGES Modified Mathlib/NumberTheory/RamificationInertia/Galois.lean + theorem Ideal.card_inertia_eq_ramificationIdxIn + theorem Ideal.ncard_primesOver_mul_card_inertia_mul_finrank Modified Mathlib/RingTheory/Ideal/Over.lean + theorem Ideal.Quotient.ker_stabilizerHom + theorem Ideal.Quotient.map_ker_stabilizer_subtype Modified Mathlib/RingTheory/Ideal/Pointwise.lean + theorem Ideal.inertia_le_stabilizer 2025-10-26 14:28:43 849e626 chore: tidy various files (#30919) ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Action/Defs.lean Modified Mathlib/Algebra/Lie/Abelian.lean Modified Mathlib/Algebra/Lie/Basic.lean Modified Mathlib/Algebra/Lie/Character.lean Modified Mathlib/Algebra/Lie/Weights/IsSimple.lean Modified Mathlib/Algebra/Polynomial/RuleOfSigns.lean Modified Mathlib/AlgebraicTopology/SimplicialSet/NonDegenerateSimplices.lean Modified Mathlib/Analysis/CStarAlgebra/Basic.lean Modified Mathlib/Analysis/Complex/ValueDistribution/FirstMainTheorem.lean Modified Mathlib/Analysis/InnerProductSpace/GramMatrix.lean Modified Mathlib/Analysis/Normed/Unbundled/SpectralNorm.lean Modified Mathlib/Analysis/SpecialFunctions/Log/Summable.lean Modified Mathlib/CategoryTheory/Limits/Presentation.lean Modified Mathlib/CategoryTheory/ObjectProperty/LimitsOfShape.lean Modified Mathlib/CategoryTheory/Subobject/MonoOver.lean Modified Mathlib/CategoryTheory/Types/Monomorphisms.lean Modified Mathlib/FieldTheory/KummerExtension.lean Modified Mathlib/GroupTheory/DivisibleHull.lean Modified Mathlib/GroupTheory/Finiteness.lean Modified Mathlib/GroupTheory/OrderOfElement.lean Modified Mathlib/LinearAlgebra/Determinant.lean Modified Mathlib/NumberTheory/ArithmeticFunction.lean Modified Mathlib/NumberTheory/Cyclotomic/Basic.lean Modified Mathlib/NumberTheory/NumberField/CMField.lean Modified Mathlib/NumberTheory/NumberField/Norm.lean +/- theorem RingOfIntegers.algebraMap_norm_algebraMap Modified Mathlib/NumberTheory/SumTwoSquares.lean Modified Mathlib/Probability/Distributions/Beta.lean Modified Mathlib/Probability/Distributions/Gaussian/Basic.lean Modified Mathlib/Probability/Kernel/CondDistrib.lean Modified Mathlib/RingTheory/DividedPowers/Padic.lean Modified Mathlib/RingTheory/MvPowerSeries/NoZeroDivisors.lean Modified Mathlib/RingTheory/RootsOfUnity/CyclotomicUnits.lean Modified Mathlib/RingTheory/Valuation/ValuationSubring.lean Modified Mathlib/Topology/Instances/AddCircle/Defs.lean 2025-10-26 13:57:09 84a53aa chore: rename duplicate lemmas about leadingCoeff (map ..) (#30923) Neither name was great; the new one is more in line with Polynomial.leadingCoeff_map and Polynomial.leadingCoeff_map_of_leadingCoeff_ne_zero. ESTIMATED CHANGES Modified Mathlib/Algebra/Polynomial/Monic.lean - theorem Polynomial.leadingCoeff_map' + theorem Polynomial.leadingCoeff_map_of_injective - theorem Polynomial.leadingCoeff_of_injective 2025-10-26 13:57:07 5cdb67d chore: deprecate duplicate Polynomial.Monic.natDegree_eq_zero_iff_eq_one (#30922) ESTIMATED CHANGES Modified Mathlib/Algebra/Polynomial/Degree/Operations.lean Modified Mathlib/Algebra/Polynomial/Monic.lean - theorem Polynomial.Monic.natDegree_eq_zero_iff_eq_one Modified Mathlib/Topology/Algebra/Polynomial.lean 2025-10-26 13:57:06 e7d09b1 chore: golf `nondegenerate_of_det_ne_zero`, `num_zero` and `sum_to_range` using `simp_all` (#30520) ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/Matrix/Nondegenerate.lean Modified Mathlib/RingTheory/Localization/NumDen.lean Modified Mathlib/Topology/Category/Profinite/Nobeling/Successor.lean 2025-10-26 12:59:40 bf1dbb9 chore(Order/Defs): golf `min_def` (#30924) After this change, `min_def` has a proof term that indicates that it is an alias of `LinearOrder.min_def`. So the duplicate declaration linter will not report it. ESTIMATED CHANGES Modified Mathlib/Order/Defs/LinearOrder.lean +/- theorem max_def +/- theorem min_def 2025-10-26 12:40:30 9b82ea7 refactor(FieldTheory/Galois/IsGaloisGroup): Generalize to rings (#30791) This allows you to talk about Galois groups of extensions of rings without having to pass to the field of fractions. The connection with the field of fractions is given in #30792. ESTIMATED CHANGES Modified Mathlib/FieldTheory/Galois/IsGaloisGroup.lean 2025-10-26 12:40:28 1e2effc doc(LinearAlgebra/Matrix/PosDef): module docstring (#30677) ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/Matrix/PosDef.lean 2025-10-26 11:35:56 9ef6aec feat(FlexibleLinter): mark field tactic as flexible and normalising (#30820) It is essentially `field_simp; ring1`, both of which are flexible and normalising. Also add `ring1`, `ring1_nf` and their `!` variants as normalising: those were simply missing before. ESTIMATED CHANGES Modified Mathlib/Tactic/Linter/FlexibleLinter.lean Modified MathlibTest/ImportHeavyFlexibleLinter.lean 2025-10-26 10:07:37 8dc6b85 feat: a sufficient condition for stochastic processes to be independent (#30878) We prove that two stochastic processes $(X\_s)\_{s \in S}$ and $(Y\_t)\_{t \in T}$ are independent if for all $s_1, ..., s_p \in S$ and $t_1, ..., t_q \in T$ the two families $(X_{s_1}, ..., X_{s_p})$ and $(Y_{t_1}, ..., Y_{t_q})$ are independent. We prove an analogous condition for a family of stochastic processes. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Probability/Independence/Process.lean + theorem ProbabilityTheory.IndepFun.indepFun_process + theorem ProbabilityTheory.Kernel.IndepFun.indepFun_process + theorem ProbabilityTheory.Kernel.iIndepFun.iIndepFun_process + theorem ProbabilityTheory.iIndepFun.iIndepFun_process 2025-10-26 10:07:36 0ca8fa2 chore(Data/List/Perm): golf `Perm.bagInter_right` using `grind` (#30589) ESTIMATED CHANGES Modified Mathlib/Data/List/Perm/Lattice.lean 2025-10-26 09:23:57 841fd68 chore: rename lemmas with 'ltOnePart' in their name (#30903) There's no such thing as ltOnePart; they're referring to leOnePart. ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Group/PosPart.lean + theorem one_lt_leOnePart + theorem one_lt_leOnePart_iff - theorem one_lt_ltOnePart - theorem one_lt_ltOnePart_iff 2025-10-26 07:53:14 2108383 chore(Condensed): fix typo (#30846) This PR fixes several typos in `Condensed/Light/Module.lean` and `Condensed/Solid.lean`. ESTIMATED CHANGES Modified Mathlib/Condensed/Light/Module.lean Modified Mathlib/Condensed/Solid.lean 2025-10-26 07:39:09 b35d3c7 feat(CategoryTheory/Sites): pre-`0`-hypercover families (#30910) When defining a precoverage on a category, it is sometimes convenient to only define it on indexed covers. For this, we introduce a structure `PreZeroHypercoverFamily` that is the data of a property on the pre-`0`-hypercovers of every object that is invariant under deduplication. This induces a precoverage and conversely every precoverage induces such a family. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Sites/Hypercover/ZeroFamily.lean + theorem CategoryTheory.PreZeroHypercover.presieve₀_mem_precoverage_iff + theorem CategoryTheory.PreZeroHypercoverFamily.mem_precoverage_iff + def CategoryTheory.PreZeroHypercoverFamily.precoverage + inductive CategoryTheory.PreZeroHypercoverFamily.presieve + structure CategoryTheory.PreZeroHypercoverFamily + theorem CategoryTheory.Precoverage.HasIsos.of_preZeroHypercoverFamily + theorem CategoryTheory.Precoverage.IsStableUnderBaseChange.of_preZeroHypercoverFamily_of_isClosedUnderIsomorphisms + theorem CategoryTheory.Precoverage.IsStableUnderComposition.of_preZeroHypercoverFamily + def CategoryTheory.Precoverage.equivPreZeroHypercoverFamily + def CategoryTheory.Precoverage.preZeroHypercoverFamily 2025-10-26 07:20:43 f9cb3f9 feat: independence and uncurrying (#30184) Consider `((Xᵢⱼ)ⱼ)ᵢ` a family of families of random variables. Assume that for any `i`, the random variables `(Xᵢⱼ)ⱼ` are independent. Assume furthermore that the random variables `((Xᵢⱼ)ⱼ)ᵢ` are independent. Then the random variables `(Xᵢⱼ)` indexed by pairs `(i, j)` are independent. This PR also drops the `IsProbabilityMeasure` assumption from [MeasureTheory.Measure.infinitePi](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Probability/ProductMeasure.html#MeasureTheory.Measure.infinitePi) to avoid weird errors with `congr`. ESTIMATED CHANGES Modified Mathlib/Probability/Independence/InfinitePi.lean +/- theorem ProbabilityTheory.iIndepFun_iff_map_fun_eq_infinitePi_map₀' +/- theorem ProbabilityTheory.iIndepFun_iff_map_fun_eq_infinitePi_map₀ +/- theorem ProbabilityTheory.iIndepFun_infinitePi + theorem ProbabilityTheory.iIndepFun_uncurry' + theorem ProbabilityTheory.iIndepFun_uncurry + theorem ProbabilityTheory.iIndepFun_uncurry_infinitePi' + theorem ProbabilityTheory.iIndepFun_uncurry_infinitePi Modified Mathlib/Probability/ProductMeasure.lean + theorem MeasureTheory.Measure.infinitePi_map_eval 2025-10-25 23:37:10 f4dee01 feat(Combinatorics/Additive/VerySmallDoubling): Hamidoune's Freiman-Kneser theorem for nonabelian groups (#28296) Prove the noncommutative Freiman-Kneser theorem for doubling less than 2 - ε ESTIMATED CHANGES Modified Mathlib/Combinatorics/Additive/VerySmallDoubling.lean + theorem Finset.card_mul_finset_lt_two + theorem Finset.doubling_lt_two 2025-10-25 22:49:43 086483d feat(CategoryTheory/Sites): more API for zero hypercovers (#30906) We add constructors for isomorphisms of (pre)-`0`-hypercovers and operations relating `Presieve`s and pre-`0`-hypercovers. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Sites/Hypercover/Zero.lean + theorem CategoryTheory.PreZeroHypercover.Hom.ext' + theorem CategoryTheory.PreZeroHypercover.Hom.ext'_iff + def CategoryTheory.PreZeroHypercover.fromShrink + theorem CategoryTheory.PreZeroHypercover.hom_inv_h₀ + theorem CategoryTheory.PreZeroHypercover.hom_inv_s₀_apply + theorem CategoryTheory.PreZeroHypercover.inv_hom_h₀ + theorem CategoryTheory.PreZeroHypercover.inv_hom_s₀_apply + def CategoryTheory.PreZeroHypercover.isoMk + theorem CategoryTheory.PreZeroHypercover.presieve₀_eq_presieve₀_iff + theorem CategoryTheory.PreZeroHypercover.presieve₀_shrink + def CategoryTheory.PreZeroHypercover.shrink + theorem CategoryTheory.PreZeroHypercover.shrink_eq_shrink_of_presieve₀_eq_presieve₀ + def CategoryTheory.PreZeroHypercover.toShrink + def CategoryTheory.Precoverage.ZeroHypercover.isoMk + theorem CategoryTheory.Precoverage.le_of_zeroHypercover + theorem CategoryTheory.Presieve.exists_eq_preZeroHypercover + def CategoryTheory.Presieve.preZeroHypercover + theorem CategoryTheory.Presieve.presieve₀_preZeroHypercover 2025-10-25 22:36:58 b26242b feat(AlgebraicGeometry/Morphisms/Flat): add a simple lemma (#30237) This PR introduces the following simple lemma: - `AlgebraicGeometry.Flat.flat_and_surjective_iff_faithfullyFlat_of_isAffine`: A morphism between affine schemes is flat and surjective if and only if the corresponding map on global sections is faithfully flat. ESTIMATED CHANGES Modified Mathlib/AlgebraicGeometry/Morphisms/Flat.lean + theorem AlgebraicGeometry.Flat.flat_and_surjective_iff_faithfullyFlat_of_isAffine 2025-10-25 21:04:26 f6f9225 chore(CategoryTheory/Sites/Precoverage): remove universe parameters in `IsStableUnderBaseChange` etc. (#30835) The additional universe parameters provide little value and I am not aware of any practical applications. Moreover, it is a theorem that being `max u v`-stable under base change (resp. stable under composition) implies being `w`-stable under base change (resp. stable under composition) for any `w`. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Sites/Hypercover/Zero.lean Modified Mathlib/CategoryTheory/Sites/Precoverage.lean + theorem CategoryTheory.Precoverage.comp_mem_coverings + theorem CategoryTheory.Precoverage.mem_coverings_of_isPullback +/- theorem CategoryTheory.Precoverage.pullbackArrows_mem Modified Mathlib/CategoryTheory/Sites/Sieves.lean + theorem CategoryTheory.Presieve.ofArrows.eq_eqToHom_comp_hom_idx + theorem CategoryTheory.Presieve.ofArrows.hom_idx + def CategoryTheory.Presieve.ofArrows.idx + theorem CategoryTheory.Presieve.ofArrows.obj_idx + theorem CategoryTheory.Presieve.ofArrows_eq_ofArrows_uncurry 2025-10-25 20:23:26 1ab7b2e chore: rephrase leOnePart_le_one/negPart_nonpos (#30899) The current phrasing is identical to that of the primed lemmas. ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Group/PosPart.lean +/- theorem leOnePart_le_one 2025-10-25 20:23:24 76f1b46 chore: remove duplicate `Ordinal.deriv_id_of_nfp_id` (#30893) ESTIMATED CHANGES Modified Mathlib/SetTheory/Ordinal/FixedPoint.lean - theorem Ordinal.deriv_id_of_nfp_id 2025-10-25 19:37:51 2d528fd chore: deprecate duplicate Rat.{nat,int}Cast_eq_zero and rename _eq_one lemmas (#30868) ESTIMATED CHANGES Modified Mathlib/Data/Rat/Defs.lean - theorem Rat.intCast_eq_one + theorem Rat.intCast_eq_one_iff - theorem Rat.intCast_eq_zero - theorem Rat.natCast_eq_one + theorem Rat.natCast_eq_one_iff - theorem Rat.natCast_eq_zero Modified Mathlib/NumberTheory/Padics/PadicNumbers.lean 2025-10-25 18:20:54 985bd66 feat(RingTheory): Noetherian ring of fractions is semilocal (#30837) A step towards showing invertible modules over Noetherian (comm.) rings are isomorphic to ideals, see https://mathoverflow.net/a/499611. The argument is [due to Gemini](https://gemini.google.com/share/0266bae9b43b) even though it was initially mistaken. A ring of fractions is a ring `R` that is its own ring of fractions (i.e. satisfying `IsFractionRing R R`). We show this is equivalent to the condition that all non-zerodivisors are units. ESTIMATED CHANGES Modified Mathlib/Algebra/GroupWithZero/NonZeroDivisors.lean + theorem isUnit_le_nonZeroDivisors Modified Mathlib/RingTheory/Ideal/AssociatedPrime/Basic.lean + theorem biUnion_associatedPrimes_eq_compl_nonZeroDivisors Modified Mathlib/RingTheory/Ideal/AssociatedPrime/Finiteness.lean + theorem Ideal.IsMaximal.mem_associatedPrimes_of_isFractionRing Modified Mathlib/RingTheory/Localization/Basic.lean Modified Mathlib/RingTheory/Localization/FractionRing.lean + theorem IsFractionRing.idem + theorem IsFractionRing.nonZeroDivisors_eq_isUnit + theorem IsFractionRing.self_iff_bijective + theorem IsFractionRing.self_iff_nonZeroDivisors_eq_isUnit + theorem IsFractionRing.self_iff_nonZeroDivisors_le_isUnit + theorem IsFractionRing.self_iff_surjective + theorem IsFractionRing.trans 2025-10-25 17:18:20 36f4b59 chore(Data/ENNReal): deprecate duplicate `sup_eq_zero` (#30883) `ENNReal.sup_eq_zero` is a duplicate of `ENNReal.max_eq_zero_iff`, so it is deprecated. ESTIMATED CHANGES Modified Mathlib/Data/ENNReal/Real.lean Modified Mathlib/Topology/MetricSpace/HausdorffDistance.lean 2025-10-25 17:18:18 b07925b feat(AlgebraicGeometry): quasi-affine if covered by affine basic opens of global sections (#30286) ESTIMATED CHANGES Modified Mathlib/AlgebraicGeometry/IdealSheaf/Basic.lean + theorem AlgebraicGeometry.Scheme.ker_toSpecΓ Modified Mathlib/AlgebraicGeometry/Morphisms/Affine.lean - theorem AlgebraicGeometry.isAffineOpen_of_isAffineOpen_basicOpen_aux + theorem AlgebraicGeometry.isRetrocompact_basicOpen Modified Mathlib/AlgebraicGeometry/Morphisms/Basic.lean + theorem AlgebraicGeometry.IsZariskiLocalAtTarget.of_forall_source_exists_preimage Modified Mathlib/AlgebraicGeometry/Morphisms/Immersion.lean +/- theorem AlgebraicGeometry.IsImmersion.of_comp Modified Mathlib/AlgebraicGeometry/OpenImmersion.lean Modified Mathlib/AlgebraicGeometry/QuasiAffine.lean + theorem AlgebraicGeometry.Scheme.IsQuasiAffine.isBasis_basicOpen + theorem AlgebraicGeometry.Scheme.IsQuasiAffine.of_forall_exists_mem_basicOpen + theorem AlgebraicGeometry.Scheme.IsQuasiAffine.of_isAffineHom Modified Mathlib/Topology/Constructible.lean + theorem QuasiSeparatedSpace.of_isOpenCover 2025-10-25 16:12:01 9c935d6 chore(Data/Fintype/Sets): deprecate duplicate `toFinset_subset_toFinset_of_subset` (#30884) I accidentally added the duplicate `toFinset_subset_toFinset_of_subset` of `toFinset_mono` when working on `grw`. So this PR deprecates it. ESTIMATED CHANGES Modified Mathlib/Data/Fintype/Sets.lean 2025-10-25 11:48:29 aa1b475 feat(CategoryTheory/Adjunction/PartialAdjunction): add symm naturality lemmas for HomEquiv and lift functor (#30143) Add two lemmas for `partialRightAdjointHomEquiv` to help work with `partialRightAdjointHomEquiv.symm`. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Adjunction/PartialAdjoint.lean + theorem CategoryTheory.Functor.partialLeftAdjointHomEquiv_comp_symm + theorem CategoryTheory.Functor.partialLeftAdjointHomEquiv_symm_comp + theorem CategoryTheory.Functor.partialRightAdjointHomEquiv_comp_symm + theorem CategoryTheory.Functor.partialRightAdjointHomEquiv_symm_comp 2025-10-25 11:09:37 0852c3e chore: don't push oleans to Cloudflare (#30875) It's apparent that no one has the bandwidth right now to diagnose/deal with the problems we regularly see with the Cloudflare uploads, so I'm just switching them off. ESTIMATED CHANGES Modified .github/build.in.yml Modified .github/workflows/bors.yml Modified .github/workflows/build.yml Modified .github/workflows/build_fork.yml 2025-10-25 10:31:03 4b9bae0 feat(CategoryTheory/Limits/Shapes): (co)kernel as a functor (#30674) and (co)kernel inclusion/projection as a natural transformation. Also fix a typo. From ClassFieldTheory ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/CategoryTheory/Limits/Cones.lean Added Mathlib/CategoryTheory/Limits/FunctorCategory/Shapes/Kernels.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Equalizers.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Kernels.lean + theorem CategoryTheory.Limits.coker.condition + def CategoryTheory.Limits.coker.π + theorem CategoryTheory.Limits.ker.condition + def CategoryTheory.Limits.ker.ι 2025-10-25 08:12:12 aac77d1 feat(Algebra/BigOperators/Finsupp/Fin): add finTwoArrowEquiv (#30538) Co-authored by: @AntoineChambert-Loir ESTIMATED CHANGES Modified Mathlib/Algebra/BigOperators/Finsupp/Fin.lean + theorem Finsupp.ofSupportFinite_fin_two_eq + theorem finTwoArrowEquiv'_sum_eq 2025-10-25 05:43:25 dc82ad5 chore: bump leantar to v0.1.16 (#30874) ESTIMATED CHANGES Modified Cache/IO.lean 2025-10-24 22:09:28 97d68c4 chore: deprecate duplicate Polynomial.monic_of_degree_le_of_coeff_eq_one (#30865) ESTIMATED CHANGES Modified Mathlib/Algebra/Polynomial/Degree/Operations.lean + theorem Polynomial.monic_of_degree_le - theorem Polynomial.monic_of_degree_le_of_coeff_eq_one Modified Mathlib/Algebra/Polynomial/Monic.lean - theorem Polynomial.monic_of_degree_le Modified Mathlib/RingTheory/Polynomial/IntegralNormalization.lean 2025-10-24 20:56:08 668ca25 Fix: change how multigoal linter handles focus. (#30470) Se #20081, moves focus to exclusions rather than ignoreBranch to get get multigoal linting inside haves and suffices. Fixes the places in the library where the linter now shows multiple goals; mostly this was just adding · but sometimes some small rearrangement. Adds a test for the new behaviour. ESTIMATED CHANGES Modified Archive/Wiedijk100Theorems/CubingACube.lean Modified Counterexamples/DiscreteTopologyNonDiscreteUniformity.lean Modified Mathlib/Algebra/Lie/Weights/IsSimple.lean Modified Mathlib/Algebra/Polynomial/Monomial.lean Modified Mathlib/Algebra/Polynomial/Sequence.lean Modified Mathlib/AlgebraicGeometry/ProjectiveSpectrum/Proper.lean Modified Mathlib/AlgebraicGeometry/RationalMap.lean Modified Mathlib/Analysis/CStarAlgebra/CStarMatrix.lean Modified Mathlib/Analysis/FunctionalSpaces/SobolevInequality.lean Modified Mathlib/Analysis/InnerProductSpace/Harmonic/Constructions.lean Modified Mathlib/Analysis/Meromorphic/Order.lean Modified Mathlib/Analysis/SpecialFunctions/BinaryEntropy.lean Modified Mathlib/Analysis/SpecialFunctions/ImproperIntegrals.lean Modified Mathlib/Analysis/SpecialFunctions/Log/Deriv.lean Modified Mathlib/CategoryTheory/Monad/Comonadicity.lean Modified Mathlib/CategoryTheory/Monad/Monadicity.lean Modified Mathlib/Data/List/NodupEquivFin.lean Modified Mathlib/GroupTheory/GroupAction/MultipleTransitivity.lean Modified Mathlib/LinearAlgebra/Eigenspace/Basic.lean Modified Mathlib/LinearAlgebra/SesquilinearForm/Basic.lean Modified Mathlib/Order/RelSeries.lean Modified Mathlib/RingTheory/Unramified/Finite.lean Modified Mathlib/Tactic/Linter/Multigoal.lean Modified MathlibTest/Multigoal.lean 2025-10-24 20:19:08 6d6ec67 chore: drop duplicate instance Rat.hasSolidNorm (#30864) Also move the three concrete instances together. ESTIMATED CHANGES Modified Mathlib/Analysis/Normed/Order/Lattice.lean 2025-10-24 20:19:06 39cfbec feat: if the order topology for a dense linear ordering is discrete, the space has at most one point (#30856) See also [Zulip discussion](https://leanprover.zulipchat.com/#narrow/channel/217875-Is-there-code-for-X.3F/topic/Characterisation.20of.20the.20integers/with/546911488) ESTIMATED CHANGES Modified Mathlib/Analysis/NormedSpace/PiTensorProduct/InjectiveSeminorm.lean Modified Mathlib/Topology/Order/DenselyOrdered.lean + theorem DenselyOrdered.subsingleton_of_discreteTopology 2025-10-24 20:19:04 b820384 feat(Combinatorics/SimpleGraph): inducing a walk (#30590) A walk which is fully contained within a set of vertices becomes a walk on the corresponding induced graph. From the ProofBench workshop ESTIMATED CHANGES Modified Mathlib/Combinatorics/SimpleGraph/Maps.lean + theorem SimpleGraph.induce_adj Modified Mathlib/Combinatorics/SimpleGraph/Walk.lean + theorem SimpleGraph.Walk.induce_cons + theorem SimpleGraph.Walk.induce_nil + theorem SimpleGraph.Walk.map_induce + theorem SimpleGraph.Walk.support_induce 2025-10-24 20:19:01 d9c991c feat(CategoryTheory): LeftBousfield.W is stable under transfinite compositions (#30509) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Localization/BousfieldTransfiniteComposition.lean Modified Mathlib/CategoryTheory/SmallObject/WellOrderInductionData.lean 2025-10-24 19:16:19 e2ef164 fix: make Set.Subsingleton.offDiag_eq_empty match its name (#30863) ESTIMATED CHANGES Modified Mathlib/Data/Set/Prod.lean 2025-10-24 19:16:17 7d5591e refactor(Algebra/Polynomial/Splits): switch from `Splits` to `Factors` (#30284) ESTIMATED CHANGES Modified Mathlib/Algebra/Polynomial/Splits.lean +/- theorem Polynomial.splits_C +/- theorem Polynomial.splits_mul +/- theorem Polynomial.splits_of_map_eq_C +/- theorem Polynomial.splits_of_splits_id +/- theorem Polynomial.splits_zero Modified Mathlib/FieldTheory/IsAlgClosed/Basic.lean Modified Mathlib/FieldTheory/IsSepClosed.lean Modified Mathlib/FieldTheory/SeparableDegree.lean 2025-10-24 18:46:47 afceaae chore: deprecate Nat.factorization_eq_zero_of_non_prime (#30862) ESTIMATED CHANGES Modified Mathlib/Data/Nat/Choose/Factorization.lean Modified Mathlib/Data/Nat/Factorization/Basic.lean Modified Mathlib/Data/Nat/Factorization/Defs.lean - theorem Nat.factorization_eq_zero_of_non_prime + theorem Nat.factorization_eq_zero_of_not_prime Modified Mathlib/Data/Nat/Factorization/PrimePow.lean Modified Mathlib/Data/Nat/Squarefree.lean Modified Mathlib/NumberTheory/Bertrand.lean 2025-10-24 16:40:49 a0a0b57 feat(GroupTheory/Finiteness): submonoid finiteness from well-quasi-order, Gordan's lemma (#30840) We show that in a monoid whose algebraic order is a well-quasi-order (typical example is `ℕ ^ k`), any subtractive submonoid is finitely generated. As a corollary, `AddMonoidHom.eqLocusM f g` is finitely generated, which is also known as [a version of Gordan's lemma](https://en.wikipedia.org/wiki/Gordan%27s_lemma) when specialized for `ℕ ^ k`. ESTIMATED CHANGES Modified Mathlib/GroupTheory/Finiteness.lean + theorem AddSubmonoid.fg_eqLocusM + theorem AddSubmonoid.fg_of_subtractive 2025-10-24 15:50:23 f9c58af feat: `isProperMap_fst_of_compactSpace`, `IsProperMap.restrictPreimage` (#30410) ESTIMATED CHANGES Modified Mathlib/Topology/Compactness/Compact.lean - theorem isClosedMap_fst_of_compactSpace - theorem isClosedMap_snd_of_compactSpace Modified Mathlib/Topology/IsClosedRestrict.lean Modified Mathlib/Topology/LocalAtTarget.lean + theorem IsProperMap.restrictPreimage Modified Mathlib/Topology/Maps/Proper/Basic.lean + theorem isClosedMap_fst_of_compactSpace + theorem isClosedMap_snd_of_compactSpace + theorem isProperMap_const + theorem isProperMap_const_iff + theorem isProperMap_fst_of_compactSpace + theorem isProperMap_snd_of_compactSpace 2025-10-24 15:50:21 f055b42 feat(Topology): the topology generated by a family of spaces (#29341) Some categories of topological spaces are "convenient" in the sense that they have nice categorical properties (e.g. they have limits, colimits and are cartesian closed). This PR is the first in a series towards showing that delta generated spaces form a cartesian closed monoidal category (see https://github.com/joelriou/topcat-model-category/blob/852a514c1d955ab586507bcd5a7b5efb99c6c3df/TopCatModelCategory/Convenient/CartesianClosed.lean#L92 for the general result), and this result is part of my formalization effort towards the Quillen model category structure on simplicial sets. In this PR, given a family `X` of topological spaces, and a topological space `Y`, we introduce the `X`-generated topology on `Y`, which is coinduced by all continuous maps `X i → Y`. (Eventually, this will generalize previous works by Dagur Asgeirsson and Ben Eltschig about compactly/delta generated spaces in mathlib. At some point, their definitions will be refactored as particular cases of the definitions in this PR series.) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Topology/Convenient/GeneratedBy.lean + def TopologicalSpace.generatedBy + theorem TopologicalSpace.generatedBy_le + theorem TopologicalSpace.generatedBy_mono + theorem Topology.IsGeneratedBy.continuous_iff + theorem Topology.IsGeneratedBy.equiv_symm_comp_continuous_iff + theorem Topology.IsGeneratedBy.generatedBy_eq + def Topology.IsGeneratedBy.homeomorph + theorem Topology.IsGeneratedBy.homeomorph_coe + theorem Topology.IsGeneratedBy.homeomorph_symm_coe + theorem Topology.IsGeneratedBy.iff_le_generatedBy + theorem Topology.IsGeneratedBy.isClosed_iff + theorem Topology.IsGeneratedBy.isOpen_iff + theorem Topology.IsGeneratedBy.le_generatedBy + theorem Topology.IsQuotientMap.isGeneratedBy + theorem Topology.WithGeneratedByTopology.continuous_equiv + theorem Topology.WithGeneratedByTopology.continuous_from_iff + def Topology.WithGeneratedByTopology.equiv + theorem Topology.WithGeneratedByTopology.isClosed_iff + theorem Topology.WithGeneratedByTopology.isOpen_iff + def Topology.WithGeneratedByTopology Modified docs/references.bib 2025-10-24 14:57:48 c65bb0b refactor(Topology/UniformSpace): use `SetRel` (#23181) What's left in `UniformSpace.Defs` is precisely the theory of the uniformity filter. The motivation is that the theory of coverings and packings in both high dimensional probability and dynamics can be based on entourages, while they have little to do with the uniformity filter (indeed, entourages are in a sense a quantitative version of the uniformity filter). ESTIMATED CHANGES Modified Mathlib/Data/Rel.lean + theorem SetRel.prod_subset_comm Modified Mathlib/Dynamics/TopologicalEntropy/CoverEntropy.lean +/- theorem Dynamics.IsDynCoverOf.coverMincard_le_card +/- theorem Dynamics.IsDynCoverOf.iterate_le_pow +/- theorem Dynamics.IsDynCoverOf.nonempty +/- theorem Dynamics.IsDynCoverOf.nonempty_inter +/- theorem Dynamics.IsDynCoverOf.of_entourage_subset +/- theorem Dynamics.IsDynCoverOf.of_le +/- def Dynamics.IsDynCoverOf +/- theorem Dynamics.coverEntropyEntourage_empty +/- theorem Dynamics.coverEntropyEntourage_le_coverEntropy +/- theorem Dynamics.coverEntropyEntourage_nonneg +/- theorem Dynamics.coverEntropyInfEntourage_empty +/- theorem Dynamics.coverEntropyInfEntourage_le_coverEntropyEntourage +/- theorem Dynamics.coverEntropyInfEntourage_le_coverEntropyInf +/- theorem Dynamics.coverEntropyInfEntourage_nonneg +/- theorem Dynamics.coverEntropyInf_eq_iSup_basis +/- theorem Dynamics.coverEntropy_eq_iSup_basis +/- theorem Dynamics.coverMincard_empty +/- theorem Dynamics.coverMincard_eq_zero_iff +/- theorem Dynamics.coverMincard_finite_iff +/- theorem Dynamics.coverMincard_le_pow +/- theorem Dynamics.coverMincard_monotone_time +/- theorem Dynamics.coverMincard_mul_le_pow +/- theorem Dynamics.coverMincard_zero +/- theorem Dynamics.isDynCoverOf_empty +/- theorem Dynamics.isDynCoverOf_zero +/- theorem Dynamics.nonempty_inter_of_coverMincard +/- theorem Dynamics.one_le_coverMincard_iff Modified Mathlib/Dynamics/TopologicalEntropy/DynamicalEntourage.lean +/- theorem Dynamics.ball_dynEntourage_mem_nhds +/- def Dynamics.dynEntourage +/- theorem Dynamics.dynEntourage_antitone +/- theorem Dynamics.dynEntourage_comp_subset +/- theorem Dynamics.dynEntourage_eq_inter_Ico +/- theorem Dynamics.dynEntourage_mem_uniformity +/- theorem Dynamics.dynEntourage_one +/- theorem Dynamics.dynEntourage_zero +/- theorem Dynamics.mem_ball_dynEntourage +/- theorem Dynamics.mem_ball_dynEntourage_comp +/- theorem Dynamics.mem_dynEntourage Modified Mathlib/Dynamics/TopologicalEntropy/NetEntropy.lean +/- theorem Dynamics.IsDynNetIn.card_le_card_of_isDynCoverOf +/- theorem Dynamics.IsDynNetIn.card_le_netMaxcard +/- theorem Dynamics.IsDynNetIn.of_entourage_subset +/- theorem Dynamics.IsDynNetIn.of_le +/- def Dynamics.IsDynNetIn +/- theorem Dynamics.coverEntropyEntourage_le_netEntropyEntourage +/- theorem Dynamics.coverEntropyInfEntourage_le_netEntropyInfEntourage +/- theorem Dynamics.coverMincard_le_netMaxcard +/- theorem Dynamics.isDynNetIn_empty +/- theorem Dynamics.isDynNetIn_singleton +/- theorem Dynamics.netEntropyEntourage_empty +/- theorem Dynamics.netEntropyEntourage_le_coverEntropy +/- theorem Dynamics.netEntropyEntourage_le_coverEntropyEntourage +/- theorem Dynamics.netEntropyEntourage_nonneg +/- theorem Dynamics.netEntropyInfEntourage_empty +/- theorem Dynamics.netEntropyInfEntourage_le_coverEntropyInf +/- theorem Dynamics.netEntropyInfEntourage_le_coverEntropyInfEntourage +/- theorem Dynamics.netEntropyInfEntourage_le_netEntropyEntourage +/- theorem Dynamics.netEntropyInfEntourage_nonneg +/- theorem Dynamics.netMaxcard_empty +/- theorem Dynamics.netMaxcard_eq_zero_iff +/- theorem Dynamics.netMaxcard_finite_iff +/- theorem Dynamics.netMaxcard_infinite_iff +/- theorem Dynamics.netMaxcard_le_coverMincard +/- theorem Dynamics.netMaxcard_monotone_time +/- theorem Dynamics.netMaxcard_univ +/- theorem Dynamics.netMaxcard_zero +/- theorem Dynamics.one_le_netMaxcard_iff Modified Mathlib/Dynamics/TopologicalEntropy/Semiconj.lean +/- theorem Dynamics.IsDynCoverOf.image +/- theorem Dynamics.IsDynCoverOf.preimage +/- theorem Dynamics.coverEntropyEntourage_image_le +/- theorem Dynamics.coverEntropyInfEntourage_image_le +/- theorem Dynamics.coverMincard_image_le +/- theorem Dynamics.le_coverEntropyEntourage_image +/- theorem Dynamics.le_coverEntropyInfEntourage_image +/- theorem Dynamics.le_coverMincard_image Modified Mathlib/Dynamics/TopologicalEntropy/Subset.lean Modified Mathlib/InformationTheory/Hamming.lean Modified Mathlib/MeasureTheory/Measure/RegularityCompacts.lean Modified Mathlib/Topology/MetricSpace/BundledFun.lean - theorem PseudoMetric.IsUltra.isTransitiveRel_ball - theorem PseudoMetric.IsUltra.isTransitiveRel_closedBall - theorem PseudoMetric.isSymmetricRel_ball - theorem PseudoMetric.isSymmetricRel_closedBall Modified Mathlib/Topology/MetricSpace/PiNat.lean Modified Mathlib/Topology/Metrizable/Uniformity.lean Modified Mathlib/Topology/UniformSpace/Ascoli.lean Modified Mathlib/Topology/UniformSpace/Basic.lean +/- theorem Dense.biUnion_uniformity_ball +/- theorem Filter.HasBasis.mem_uniformity_iff +/- theorem Filter.HasBasis.uniformity_closure - theorem IsSymmetricRel.entourageProd +/- theorem UniformSpace.isClosed_ball +/- theorem UniformSpace.isOpen_ball +/- theorem UniformSpace.uniformSpace_eq_bot +/- theorem ball_entourageProd +/- theorem ball_preimage +/- theorem bot_uniformity +/- theorem closure_eq_inter_uniformity +/- theorem comp_open_symm_mem_uniformity_sets +/- theorem discreteTopology_of_discrete_uniformity +/- def entourageProd +/- theorem entourageProd_mem_uniformity +/- theorem eventually_uniformity_comp_subset +/- theorem eventually_uniformity_iterate_comp_subset +/- theorem interior_mem_uniformity +/- theorem mem_entourageProd +/- theorem mem_uniformity_isClosed +/- theorem nhdset_of_mem_uniformity +/- theorem uniformity_hasBasis_closure +/- theorem uniformity_hasBasis_open +/- theorem union_mem_uniformity_sum Modified Mathlib/Topology/UniformSpace/Cauchy.lean +/- theorem CauchySeq.subseq_mem +/- theorem CauchySeq.subseq_subseq_mem +/- theorem Filter.HasBasis.cauchy_iff +/- theorem Filter.HasBasis.totallyBounded_iff +/- theorem Filter.Tendsto.subseq_mem_entourage +/- theorem TotallyBounded.exists_subset +/- theorem UniformSpace.complete_of_convergent_controlled_sequences +/- theorem cauchySeq_of_controlled +/- def interUnionBalls +/- theorem isCompact_closure_interUnionBalls +/- theorem totallyBounded_interUnionBalls + theorem totallyBounded_of_forall_isSymm - theorem totallyBounded_of_forall_symm Modified Mathlib/Topology/UniformSpace/Compact.lean Modified Mathlib/Topology/UniformSpace/CompactConvergence.lean Modified Mathlib/Topology/UniformSpace/Completion.lean +/- theorem CauchyFilter.basis_uniformity +/- def CauchyFilter.gen +/- theorem CauchyFilter.monotone_gen Modified Mathlib/Topology/UniformSpace/Defs.lean +/- theorem Filter.HasBasis.biInter_biUnion_ball +/- theorem IsSymmetricRel.eq +/- theorem IsSymmetricRel.iInter +/- theorem IsSymmetricRel.inter +/- theorem IsSymmetricRel.mk_mem_comm +/- theorem IsSymmetricRel.sInter +/- def IsSymmetricRel +/- theorem Monotone.compRel + theorem SetRel.mem_filter_prod_comm +/- theorem UniformSpace.ball_eq_of_symmetry +/- theorem UniformSpace.ball_mem_nhds +/- theorem UniformSpace.ball_mem_nhdsWithin +/- theorem UniformSpace.mem_ball_self +/- theorem UniformSpace.mem_ball_symmetry +/- theorem UniformSpace.mem_comp_comp +/- theorem UniformSpace.mem_comp_of_mem_ball +/- theorem UniformSpace.mem_uniformity_ofCore_iff +/- theorem comp3_mem_uniformity +/- def compRel +/- theorem compRel_assoc - theorem compRel_mono +/- theorem comp_comp_symm_mem_uniformity_sets +/- theorem comp_le_uniformity3 +/- theorem comp_le_uniformity +/- theorem comp_mem_uniformity_sets +/- theorem comp_symm_mem_uniformity_sets +/- theorem comp_symm_of_uniformity - theorem eq_singleton_prod_subset_idRel +/- theorem idRel_subset +/- theorem id_compRel - theorem isSymmetricRel_idRel - theorem isSymmetricRel_univ +/- theorem left_subset_compRel +/- theorem lift'_comp_uniformity +/- theorem mem_compRel +/- theorem mem_nhds_left +/- theorem mem_nhds_right +/- theorem mem_uniformity_of_eq +/- theorem nhds_basis_uniformity' +/- theorem nhds_basis_uniformity - theorem prodMk_mem_compRel +/- theorem refl_le_uniformity +/- theorem refl_mem_uniformity +/- theorem right_subset_compRel +/- theorem subset_comp_self +/- theorem subset_comp_self_of_mem_uniformity +/- theorem subset_iterate_compRel +/- theorem symm_of_uniformity +/- theorem symmetric_symmetrizeRel +/- def symmetrizeRel +/- theorem symmetrizeRel_subset_self +/- theorem symmetrize_mem_uniformity +/- theorem symmetrize_mono +/- theorem uniformity_lift_le_comp +/- theorem uniformity_lift_le_swap Modified Mathlib/Topology/UniformSpace/DiscreteUniformity.lean - theorem DiscreteUniformity.eq_principal_idRel + theorem DiscreteUniformity.eq_principal_relId - theorem DiscreteUniformity.idRel_mem_uniformity + theorem DiscreteUniformity.relId_mem_uniformity - theorem discreteUniformity_iff_eq_principal_idRel + theorem discreteUniformity_iff_eq_principal_relId - theorem discreteUniformity_iff_idRel_mem_uniformity + theorem discreteUniformity_iff_relId_mem_uniformity Modified Mathlib/Topology/UniformSpace/Equicontinuity.lean Modified Mathlib/Topology/UniformSpace/HeineCantor.lean Modified Mathlib/Topology/UniformSpace/OfCompactT2.lean Modified Mathlib/Topology/UniformSpace/OfFun.lean Modified Mathlib/Topology/UniformSpace/Separation.lean Modified Mathlib/Topology/UniformSpace/Ultra/Basic.lean - theorem IsTransitiveRel.ball_subset_of_mem +/- theorem IsTransitiveRel.comp_eq_of_idRel_subset +/- theorem IsTransitiveRel.comp_subset_self +/- theorem IsTransitiveRel.iInter +/- theorem IsTransitiveRel.inter - theorem IsTransitiveRel.isOpen_ball_of_mem_uniformity +/- theorem IsTransitiveRel.mem_filter_prod_trans +/- theorem IsTransitiveRel.prod_subset_trans +/- theorem IsTransitiveRel.sInter +/- theorem IsTransitiveRel.symmetrizeRel +/- def IsTransitiveRel +/- theorem IsUltraUniformity.mk_of_hasBasis - theorem UniformSpace.ball_eq_of_mem_of_isSymmetricRel_of_isTransitiveRel + theorem UniformSpace.isClopen_ball_of_isSymm_of_isTrans_of_mem_uniformity - theorem UniformSpace.isClopen_ball_of_isSymmetricRel_of_isTransitiveRel_of_mem_uniformity + theorem UniformSpace.isClosed_ball_of_isSymm_of_isTrans_of_mem_uniformity - theorem UniformSpace.isClosed_ball_of_isSymmetricRel_of_isTransitiveRel_of_mem_uniformity + theorem UniformSpace.isOpen_ball_of_mem_uniformity + theorem ball_eq_of_mem + theorem ball_subset_of_mem - theorem isTransitiveRel_idRel +/- theorem isTransitiveRel_iff_comp_subset_self Modified Mathlib/Topology/UniformSpace/Ultra/Completion.lean - theorem IsSymmetricRel.cauchyFilter_gen - theorem IsTransitiveRel.cauchyFilter_gen Modified Mathlib/Topology/UniformSpace/Ultra/Constructions.lean - theorem IsTransitiveRel.entourageProd Modified Mathlib/Topology/UniformSpace/UniformApproximation.lean Modified Mathlib/Topology/UniformSpace/UniformConvergence.lean Modified Mathlib/Topology/UniformSpace/UniformEmbedding.lean 2025-10-24 11:00:10 50c7f34 feat(RingTheory/IsTensorProduct): add `IsPushout.cancelBaseChange` (#28772) This is a cancel-on-the-left version of `AlgebraTensorModule.cancelBaseChange`. ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/Basic.lean Modified Mathlib/Algebra/RingQuot.lean Modified Mathlib/Analysis/RCLike/Inner.lean Modified Mathlib/RingTheory/IsTensorProduct.lean + def Algebra.IsPushout.cancelBaseChange + def Algebra.IsPushout.cancelBaseChangeAux + theorem Algebra.IsPushout.cancelBaseChangeAux_symm_tmul + theorem Algebra.IsPushout.cancelBaseChange_symm_tmul + theorem Algebra.IsPushout.cancelBaseChange_tmul 2025-10-24 11:00:07 31888ce chore(Data): `SetLike Finset` (#28241) ESTIMATED CHANGES Modified Counterexamples/AharoniKorman.lean +/- theorem Hollom.chainBetween_isChain Modified Mathlib/Algebra/BigOperators/Field.lean +/- theorem Finset.dens_biUnion Modified Mathlib/Algebra/BigOperators/Finprod.lean Modified Mathlib/Algebra/BigOperators/Group/Finset/Basic.lean +/- theorem Finset.card_biUnion Modified Mathlib/Algebra/Group/Pointwise/Finset/Basic.lean Modified Mathlib/Algebra/GroupWithZero/Action/Pointwise/Finset.lean Modified Mathlib/Algebra/Module/FinitePresentation.lean Modified Mathlib/Algebra/MvPolynomial/Variables.lean +/- theorem MvPolynomial.aeval_ite_mem_eq_self Modified Mathlib/Algebra/Polynomial/Roots.lean Modified Mathlib/Algebra/Squarefree/Basic.lean Modified Mathlib/AlgebraicTopology/SimplicialSet/StdSimplex.lean Modified Mathlib/Analysis/Normed/Affine/Convex.lean Modified Mathlib/Combinatorics/Additive/RuzsaCovering.lean Modified Mathlib/Combinatorics/Additive/VerySmallDoubling.lean Modified Mathlib/Combinatorics/SetFamily/LYM.lean +/- theorem Finset.lubell_yamamoto_meshalkin_inequality_sum_inv_choose +/- theorem IsAntichain.sperner Modified Mathlib/Combinatorics/SimpleGraph/Clique.lean Modified Mathlib/Combinatorics/SimpleGraph/Connectivity/WalkCounting.lean Modified Mathlib/Combinatorics/SimpleGraph/Regularity/Chunk.lean Modified Mathlib/Data/DFinsupp/Defs.lean Modified Mathlib/Data/ENNReal/BigOperators.lean Modified Mathlib/Data/Finset/Attach.lean +/- theorem Finset.coe_attach Modified Mathlib/Data/Finset/Basic.lean +/- def Finset.equivToSet Modified Mathlib/Data/Finset/Defs.lean +/- theorem Finset.coe_ssubset - def Finset.toSet Modified Mathlib/Data/Finset/Insert.lean Modified Mathlib/Data/Finset/Pi.lean Modified Mathlib/Data/Finset/Union.lean Modified Mathlib/Data/Set/Card.lean Modified Mathlib/Data/Set/Card/Arithmetic.lean Modified Mathlib/FieldTheory/Finite/GaloisField.lean Modified Mathlib/FieldTheory/Perfect.lean Modified Mathlib/GroupTheory/Finiteness.lean Modified Mathlib/GroupTheory/Perm/Centralizer.lean Modified Mathlib/GroupTheory/Perm/Cycle/Basic.lean Modified Mathlib/LinearAlgebra/Basis/Cardinality.lean Modified Mathlib/LinearAlgebra/Dimension/Constructions.lean Modified Mathlib/LinearAlgebra/Finsupp/Supported.lean Modified Mathlib/LinearAlgebra/LinearIndependent/Basic.lean Modified Mathlib/LinearAlgebra/LinearIndependent/Defs.lean Modified Mathlib/MeasureTheory/Integral/IntegrableOn.lean Modified Mathlib/MeasureTheory/Measure/Restrict.lean Modified Mathlib/ModelTheory/FinitelyGenerated.lean Modified Mathlib/ModelTheory/Semantics.lean Modified Mathlib/Order/CountableDenseLinearOrder.lean Modified Mathlib/Probability/Independence/InfinitePi.lean Modified Mathlib/Probability/Independence/Kernel.lean Modified Mathlib/Probability/Process/Filtration.lean Modified Mathlib/Probability/ProductMeasure.lean Modified Mathlib/RepresentationTheory/Homological/GroupHomology/Functoriality.lean Modified Mathlib/RingTheory/Extension/Generators.lean Modified Mathlib/RingTheory/GradedAlgebra/FiniteType.lean Modified Mathlib/RingTheory/Ideal/Quotient/Index.lean Modified Mathlib/RingTheory/IntegralClosure/IsIntegral/Basic.lean Modified Mathlib/RingTheory/Kaehler/Basic.lean Modified Mathlib/RingTheory/Noetherian/OfPrime.lean Modified Mathlib/RingTheory/Polynomial/ContentIdeal.lean +/- def Polynomial.contentIdeal +/- theorem Polynomial.contentIdeal_def Modified Mathlib/RingTheory/Spectrum/Prime/ChevalleyComplexity.lean Modified Mathlib/RingTheory/Spectrum/Prime/Polynomial.lean Modified Mathlib/Topology/Algebra/InfiniteSum/SummationFilter.lean Modified Mathlib/Topology/ClopenBox.lean Modified Mathlib/Topology/Compactness/Bases.lean Modified Mathlib/Topology/Compactness/Compact.lean Modified Mathlib/Topology/DiscreteQuotient.lean Modified Mathlib/Topology/Instances/ENNReal/Lemmas.lean Modified Mathlib/Topology/Order/HullKernel.lean Modified Mathlib/Topology/Separation/Basic.lean 2025-10-24 10:20:09 301d992 chore(GroupTheory/Index): move awkwardly placed lemmas (#30832) The lemmas `Subgroup.toSubmonoid_zpowers` and `Submonoid.powers_le_zpowers` were awkwardly placed at the top of `Index.lean` despite being unrelated to the contents of that file. I have moved them to directly afterward `closure_toSubmonoid` which is thematically similar and also the key ingredient in the proof. ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Subgroup/Pointwise.lean + theorem Subgroup.toSubmonoid_zpowers + theorem Submonoid.powers_le_zpowers Modified Mathlib/GroupTheory/Index.lean - theorem Subgroup.toSubmonoid_zpowers - theorem Submonoid.powers_le_zpowers 2025-10-24 09:13:58 3d2dfe8 feat(Data/Finset/Card): add some more Pigeonhole Principle theorems `exists_ne_map_eq_of_card_image_lt` and `not_injOn_of_card_image_lt` (#28077) `exists_ne_map_eq_of_card_image_lt` is a special case of `exists_ne_map_eq_of_card_lt_of_maps_to` where `t` is `s.image f`, and `not_injOn_of_card_image_lt` is its variant using `Set.InjOn`. I ran into some cases where such theorems would save me some time. ESTIMATED CHANGES Modified Mathlib/Data/Finset/Card.lean + theorem Finset.exists_ne_map_eq_of_card_image_lt + theorem Finset.not_injOn_of_card_image_lt 2025-10-24 05:21:51 be9d1e4 feat(DedekindDomain): formulas for the different ideal in the compositum of disjoint extensions (#29770) Let `A ⊆ B` be a finite extension of Dedekind domains and assume that `A ⊆ R₁, R₂ ⊆ B` are two subrings such that `R₁ ⊔ R₂ = B`, their fractions fields are linearly disjoint (over the fraction field of `A`) and that `𝓓(R₁/A)` and `𝓓(R₂/A)` are coprime, where `𝓓` denote the different ideal. We prove in particular: `𝓓(B/A) = 𝓓(R₁/A) * 𝓓(R₂/A)` ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/RingTheory/DedekindDomain/Different.lean Added Mathlib/RingTheory/DedekindDomain/LinearDisjoint.lean + theorem FractionalIdeal.differentIdeal_dvd_map_differentIdeal + theorem FractionalIdeal.differentIdeal_eq_differentIdeal_mul_differentIdeal_of_isCoprime + theorem FractionalIdeal.differentIdeal_eq_map_differentIdeal + theorem FractionalIdeal.map_differentIdeal_dvd_differentIdeal + theorem Submodule.traceDual_le_span_map_traceDual Modified Mathlib/RingTheory/FractionalIdeal/Extended.lean + theorem FractionalIdeal.coe_extendedHomₐ_eq_span + theorem FractionalIdeal.extended_le_one_of_le_one + theorem FractionalIdeal.one_le_extended_of_one_le 2025-10-24 01:54:07 4c627ad chore: LEAN_SRC_PATH for reap (#30839) Followup to #30818. We also need to update the LEAN_SRC_PATH pre-emptively. ESTIMATED CHANGES Modified .github/build.in.yml Modified .github/workflows/bors.yml Modified .github/workflows/build.yml Modified .github/workflows/build_fork.yml 2025-10-23 23:46:50 e37e4dc feat(FieldTheory): construct extension of finite field (#30738) We develop the theory of extensions of finite fields: given any finite field `k` and any `n > 0` there is a unique (up to in geneeral non-unique isomorphism) extension of `k` of degree `n`, which is galois with cyclic galois group generated by the (arithmetic) Frobenius map `x ↦ x ^ Nat.card k`. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Ring/GeomSum.lean + theorem dvd_pow_pow_sub_self_of_dvd + theorem dvd_pow_sub_one_of_dvd Added Mathlib/FieldTheory/Finite/Extension.lean + theorem FiniteField.Extension.exists_frob_pow_eq + theorem FiniteField.Extension.frob_apply + def FiniteField.Extension + theorem FiniteField.card_algEquiv_extension + theorem FiniteField.finrank_extension + theorem FiniteField.finrank_zmod_extension + theorem FiniteField.natCard_algEquiv_extension + theorem FiniteField.natCard_extension + theorem FiniteField.nonempty_algHom_extension Modified Mathlib/FieldTheory/Finite/GaloisField.lean + theorem FiniteField.card_algHom_of_finrank_dvd + theorem FiniteField.natCard_algHom_of_finrank_dvd + theorem FiniteField.nonempty_algHom_iff_finrank_dvd + theorem FiniteField.nonempty_algHom_of_finrank_dvd + theorem FiniteField.pow_finrank_eq_card + theorem FiniteField.pow_finrank_eq_natCard 2025-10-23 22:55:32 b1e4080 chore: do not double-build nightly-testing non-fork PRs (#30834) They are already built by build.yml as part of branch pushes ESTIMATED CHANGES Modified .github/workflows/build_fork.yml Modified .github/workflows/mk_build_yml.sh 2025-10-23 22:33:20 e091017 feat: convexOn_rpow_left (#30829) ESTIMATED CHANGES Modified Mathlib/Analysis/Convex/SpecificFunctions/Basic.lean + theorem convexOn_rpow_left 2025-10-23 21:34:26 090ad2e feat: add `ContinuousSMul` instances for `ℚ≥0` (#28474) ESTIMATED CHANGES Modified Mathlib/Topology/Instances/Rat.lean 2025-10-23 20:35:52 0808490 feat: enorm_div_rev (#30830) ESTIMATED CHANGES Modified Mathlib/Analysis/Normed/Group/Basic.lean + theorem enorm_div_rev 2025-10-23 20:09:56 e3d2a83 feat(Algebra/Star): define the intrinsic star on linear maps (#29941) This pr defines the _intrinsic_ star operation on linear maps `E →ₗ F` where `(star f) x = star (f (star x))`. This corresponds to a map being star-preserving, i.e., a map is self-adjoint iff it is star-preserving. This is scoped to `IntrinsicStar` as to not conflict with the global instance on `E →ₗ[𝕜] E` on finite-dimensional Hilbert spaces, where `star` is defined as `LinearMap.adjoint`. These are mathematically distinct instances. In a finite-dimensional C⋆-algebra with a positive linear functional, which induces the GNS Hilbert space (TODO) and a coalgebra given by the adjoint of the multiplication map and the algebra unit map (TODO), we get a star ring where multiplication is given by the convolution product (#25183) and star is given by the intrinsic star. In such a space, we can then define the isomorphism `(E →ₗ[ℂ] F) ≃⋆ₐ (F ⊗[ℂ] Eᵐᵒᵖ)`, which is an important identification in the theory of non-commutative graphs. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Star/LinearMap.lean + def LinearMap.intrinsicInvolutiveStar + def LinearMap.intrinsicStar + def LinearMap.intrinsicStarAddMonoid + theorem LinearMap.intrinsicStarModule + theorem LinearMap.intrinsicStar_apply + theorem LinearMap.intrinsicStar_comp + theorem LinearMap.intrinsicStar_id + theorem LinearMap.intrinsicStar_mulLeft + theorem LinearMap.intrinsicStar_mulRight + theorem LinearMap.intrinsicStar_zero + theorem LinearMap.isSelfAdjoint_iff_map_star 2025-10-23 17:08:45 0ceaa55 feat: interplay of posPart, negPart, untop₀, min and max (#30774) Add a host of elementary (but somewhat delicate) lemmas on the interplay of posPart, negPart, untop₀, min, and max. This material is used in [Project VD](https://github.com/kebekus/ProjectVD), which aims to formalize Value Distribution Theory for meromorphic functions on the complex plane. It will be used in follow-up PRs to compare pole- and zero-divisors attached to meromorphic functions on the complex plane, and their behavior under algebraic manipulations of the functions. ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Group/PosPart.lean + theorem leOnePart_max + theorem leOnePart_min + theorem oneLePart_max + theorem oneLePart_min Modified Mathlib/Algebra/Order/WithTop/Untop0.lean + theorem WithTop.le_of_untop₀_le_untop₀ +/- def WithTop.untop₀ + theorem WithTop.untop₀_le_untop₀ + theorem WithTop.untop₀_le_untop₀_iff + theorem WithTop.untop₀_max + theorem WithTop.untop₀_min +/- theorem WithTop.untop₀_neg +/- theorem WithTop.untop₀_nonneg 2025-10-23 17:08:44 66ac8ae chore: remove more instance fields (#30753) This PR is a follow up on #30734, doing some cases that weren't done in that PR. ESTIMATED CHANGES Modified Mathlib/Algebra/Ring/ULift.lean Modified Mathlib/Algebra/RingQuot.lean Modified Mathlib/Algebra/Star/Pointwise.lean Modified Mathlib/Analysis/Matrix.lean Modified Mathlib/Geometry/Convex/Cone/Basic.lean Modified Mathlib/NumberTheory/ArithmeticFunction.lean 2025-10-23 17:08:42 0fb521d feat(Data/Set/Pairwise): prove pairwise results for Chains, move `Set.pairwise_iUnion₂` (#28119) Initiate a new file `Data/Set/Pairwise/Chain.lean` which makes some `Pairwise` results available to the `IsChain` predicate. In the process, move `Set.pairwise_iUnion₂` to group it with similar results. Perform some variable harmonization. Part of Carleson, original result by Edward van de Meent. Moves: - `Set.pairwise_iUnion₂`: from `Data.Set.Lattice` to `Data.Set.Pairwise.Lattice` ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Data/Set/Lattice.lean - theorem Set.pairwise_iUnion₂ Added Mathlib/Data/Set/Pairwise/Chain.lean + theorem IsChain.pairwiseDisjoint_iUnion₂ + theorem IsChain.pairwiseDisjoint_sUnion + theorem IsChain.pairwise_iUnion₂ + theorem IsChain.pairwise_sUnion Modified Mathlib/Data/Set/Pairwise/Lattice.lean +/- theorem Set.pairwise_iUnion + theorem Set.pairwise_iUnion₂ + theorem Set.pairwise_iUnion₂_iff +/- theorem Set.pairwise_sUnion 2025-10-23 17:08:40 0a19b1f feat: sharp bounds for `‖exp (I * x) - 1‖` when `x` is real (#27252) From Carleson ESTIMATED CHANGES Modified Mathlib/Analysis/Complex/Trigonometric.lean + theorem Complex.enorm_exp_I_mul_ofReal + theorem Complex.enorm_exp_ofReal_mul_I + theorem Complex.nnnorm_exp_I_mul_ofReal + theorem Complex.nnnorm_exp_ofReal_mul_I + theorem Complex.norm_exp_I_mul_ofReal + theorem Complex.norm_exp_I_mul_ofReal_sub_one Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Bounds.lean + theorem Real.enorm_exp_I_mul_ofReal_sub_one_le + theorem Real.nnnorm_exp_I_mul_ofReal_sub_one_le + theorem Real.norm_exp_I_mul_ofReal_sub_one_le 2025-10-23 14:48:48 32bd6c7 style(Data): fix whitespace (#30778) Extracted from #30658. Found by extending the commandStart linter to proof bodies. ESTIMATED CHANGES Modified Mathlib/Data/Fin/Fin2.lean Modified Mathlib/Data/Finmap.lean Modified Mathlib/Data/Finset/Card.lean Modified Mathlib/Data/Finset/Insert.lean +/- theorem Finset.not_nontrivial_empty +/- theorem Finset.not_nontrivial_singleton Modified Mathlib/Data/Finset/Lattice/Basic.lean +/- theorem Finset.subset_union_right Modified Mathlib/Data/Fintype/Fin.lean Modified Mathlib/Data/Int/Bitwise.lean Modified Mathlib/Data/Int/Cast/Defs.lean Modified Mathlib/Data/List/Basic.lean Modified Mathlib/Data/List/Destutter.lean Modified Mathlib/Data/List/Nodup.lean Modified Mathlib/Data/List/Perm/Basic.lean Modified Mathlib/Data/List/Rotate.lean Modified Mathlib/Data/List/TakeWhile.lean Modified Mathlib/Data/Multiset/Basic.lean Modified Mathlib/Data/Multiset/UnionInter.lean Modified Mathlib/Data/Nat/Bits.lean Modified Mathlib/Data/Nat/Cast/Defs.lean Modified Mathlib/Data/Nat/Choose/Basic.lean Modified Mathlib/Data/Nat/Choose/Mul.lean Modified Mathlib/Data/Nat/Factorial/SuperFactorial.lean Modified Mathlib/Data/Nat/Log.lean Modified Mathlib/Data/Option/Basic.lean Modified Mathlib/Data/PSigma/Order.lean Modified Mathlib/Data/Part.lean +/- theorem Part.inv_def Modified Mathlib/Data/Seq/Computation.lean Modified Mathlib/Data/Set/Basic.lean +/- theorem Set.powerset_empty +/- theorem Set.powerset_inter +/- theorem Set.powerset_univ Modified Mathlib/Data/Set/Defs.lean Modified Mathlib/Data/Set/Function.lean +/- theorem Set.exists_image_eq_and_injOn Modified Mathlib/Data/Sigma/Order.lean Modified Mathlib/Data/Stream/Init.lean +/- theorem Stream'.take_succ' Modified Mathlib/Data/Sum/Basic.lean Modified Mathlib/Data/Sym/Sym2.lean Modified Mathlib/Data/TypeVec.lean Modified Mathlib/Data/Vector/Basic.lean 2025-10-23 14:48:46 69098f8 feat(Order/WellFoundedSet): `partiallyWellOrderedOn_univ_iff` and `Pi.wellQuasiOrderedLE` (#30275) Connect `Set.PartiallyWellOrderedOn` with `WellQuasiOrdered` and `Set.IsPWO` with `WellQuasiOrderedLE`. Add an instance `Pi.wellQuasiOrderedLE` for Dickson's lemma. ESTIMATED CHANGES Modified Mathlib/Order/RelIso/Set.lean + def RelIso.subrelUnivIso Modified Mathlib/Order/WellFoundedSet.lean + theorem Set.isPWO_of_wellQuasiOrderedLE + theorem Set.isPWO_univ_iff + theorem Set.partiallyWellOrderedOn_of_wellQuasiOrdered + theorem Set.partiallyWellOrderedOn_univ_iff Modified Mathlib/Order/WellQuasiOrder.lean + theorem RelIso.wellQuasiOrdered_iff 2025-10-23 14:48:44 7baeab8 feat: properties of sesquilinear forms over a star ring (#30274) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/LinearAlgebra/SesquilinearForm/Star.lean + theorem LinearMap.isPosSemidef_iff_posSemidef_toMatrix + theorem LinearMap.isSymm_iff_basis + theorem LinearMap.isSymm_iff_isHermitian_toMatrix + theorem apply_eq_star_dotProduct_toMatrix₂_mulVec + theorem star_dotProduct_toMatrix₂_mulVec Modified Mathlib/Tactic/Linter/DirectoryDependency.lean 2025-10-23 14:48:41 725562e refactor: make `PosMulMono` and alike custom classes (#29395) In the current setup, users get confusing non-beta-reduced goals involving a subtype when trying to provide an instance of `PosMulMono`. This PR changes it to be a custom structure with the expected fields. This follows `PosSMulMono` and alike. ESTIMATED CHANGES Modified Counterexamples/CanonicallyOrderedCommSemiringTwoMul.lean - theorem Counterexample.Nxzmod2.add_le_add_left - theorem Counterexample.Nxzmod2.add_left_cancel - theorem Counterexample.Nxzmod2.le_of_add_le_add_left Modified Mathlib/Algebra/Algebra/Operations.lean Modified Mathlib/Algebra/Order/GroupWithZero/Canonical.lean Modified Mathlib/Algebra/Order/GroupWithZero/Unbundled/Basic.lean Modified Mathlib/Algebra/Order/GroupWithZero/Unbundled/Defs.lean +/- theorem mul_le_mul_of_nonneg_left +/- theorem mul_le_mul_of_nonneg_right +/- theorem mul_lt_mul_of_pos_left +/- theorem mul_lt_mul_of_pos_right Modified Mathlib/Algebra/Order/GroupWithZero/WithZero.lean Modified Mathlib/Algebra/Order/Pi.lean Modified Mathlib/Algebra/Order/Ring/Canonical.lean Modified Mathlib/Algebra/Order/Ring/Defs.lean Modified Mathlib/Algebra/Order/Ring/InjSurj.lean Modified Mathlib/Algebra/Order/Ring/Nat.lean Modified Mathlib/Algebra/Order/Ring/Opposite.lean Modified Mathlib/Algebra/Order/Ring/Prod.lean Modified Mathlib/Algebra/Order/Ring/Star.lean Modified Mathlib/Algebra/Order/Ring/WithTop.lean Modified Mathlib/Data/NNRat/Defs.lean Modified Mathlib/Data/Num/Lemmas.lean Modified Mathlib/Order/Filter/FilterProduct.lean Modified Mathlib/Order/Filter/Ring.lean Modified Mathlib/SetTheory/Ordinal/Arithmetic.lean Modified Mathlib/SetTheory/Ordinal/NaturalOps.lean Modified MathlibTest/GRewrite.lean 2025-10-23 13:34:21 d5b0059 feat(GroupTheory/FreeGroup/Orbit): The orbit of a point generated by parts of a free group can be "duplicated" (#30130) Applying `w⁻¹` to the orbit generated by all elements of a free group that start with `w` yields the orbit generated by all the words that start with every letter execpt `w⁻` (and the original point) The orbit of a point `x` generated by a set of group elements `s` defined as all the points that can be reached by applying the elements of `s` to `x`. A special case of this result is needed for the banach tarski theorem. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Dynamics/Flow.lean +/- theorem Flow.mem_orbit +/- theorem Flow.mem_orbit_iff +/- def Flow.orbit Added Mathlib/GroupTheory/FreeGroup/Orbit.lean + theorem FreeGroup.Orbit.duplicate + theorem FreeGroup.startsWith.Injective + theorem FreeGroup.startsWith.disjoint_iff_ne + theorem FreeGroup.startsWith.ne_one + theorem FreeGroup.startsWith.smul_def + def FreeGroup.startsWith + theorem FreeGroup.startsWith_mk_mul Modified Mathlib/GroupTheory/GroupAction/Defs.lean +/- theorem MulAction.mem_orbit +/- theorem MulAction.mem_orbit_iff 2025-10-23 12:52:13 a6e83a0 chore(MeasureTheory/Covering/Differentiation): simp adaptation notes (#30783) Two adaptation notes from 2024 in `MeasureTheory/Covering/Differentiation` no longer apply, I replace them with the previously used `simpa`/`simp_rw`. ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Covering/Differentiation.lean 2025-10-23 12:28:40 2d881d4 perf(Probability/Kernel/Disintegration/Density): smile more (#30819) Reverts an unintentional regression from #30691 ([benchmark output](https://leanprover.zulipchat.com/#narrow/channel/116290-rss/topic/Benchmark.20results.20for.20mathlib4/near/546585656)). There was even a comment about this already. Without this, elaborating the first two lemmas takes 8--10 seconds on my fast computer. Add one more smile (without it, the exact takes half a second on my computer). ESTIMATED CHANGES Modified Mathlib/Probability/Kernel/Disintegration/Density.lean 2025-10-23 12:28:38 c192723 feat: better `norm_num` for `rpow` (#30615) - Use recently added `Nat.nthRoot` to make `(a : ℝ) ^ (b : ℝ)` work for rational `a ≥ 0` and `b`. - Simplify the logic by using `.eqTrans`. ESTIMATED CHANGES Modified Mathlib/Analysis/SpecialFunctions/Pow/Real.lean + theorem Mathlib.Meta.NormNum.IsInt.rpow_eq_inv_pow + theorem Mathlib.Meta.NormNum.IsNNRat.rpow_isNNRat + theorem Mathlib.Meta.NormNum.IsNat.rpow_eq_pow + theorem Mathlib.Meta.NormNum.IsNat.rpow_isNNRat +/- def Mathlib.Meta.NormNum.evalRPow + def Mathlib.Meta.NormNum.proveIsNatRPowIsNNRat + theorem Mathlib.Meta.NormNum.rpow_isRat_eq_inv_rpow Modified MathlibTest/norm_num_rpow.lean 2025-10-23 12:28:35 84ed40c feat: computations with the matrix associated to a sesquilinear form (#30276) ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/Matrix/BilinearForm.lean Modified Mathlib/LinearAlgebra/Matrix/SesquilinearForm.lean + theorem apply_eq_dotProduct_toMatrix₂_mulVec + theorem dotProduct_toMatrix₂_mulVec 2025-10-23 10:55:14 ba4e2b0 chore: allow uploading oleans for Reap (#30818) `reap` is a promising neural theorem prover, with an API and public weights, that we can use in Mathlib already. In #29953 we're trying to prepare a branch that requires `reap`, and imports it in `Tactic.Common`, so that oleans are available. However because this requires a change to Cache.lean, we need to merge that to `master` before oleans can be uploaded, even from another branch. ESTIMATED CHANGES Modified Cache/IO.lean 2025-10-23 10:55:12 abe6652 chore: use 'cache put-unpacked' for Archive and Counterexamples (#30815) Previously we were uploading all the oleans 5 times over! ESTIMATED CHANGES Modified .github/build.in.yml Modified .github/workflows/bors.yml Modified .github/workflows/build.yml Modified .github/workflows/build_fork.yml 2025-10-23 10:55:10 7e9ba32 doc: normalize spacing in text (#30804) This PR normalizes instances of repeated white-space in documentation text, only in places it seems clear that a single space was intended. ESTIMATED CHANGES Modified Mathlib/Algebra/AddConstMap/Basic.lean Modified Mathlib/Algebra/Category/Grp/Limits.lean Modified Mathlib/Algebra/Group/Fin/Basic.lean Modified Mathlib/Analysis/Calculus/VectorField.lean Modified Mathlib/Analysis/MeanInequalities.lean Modified Mathlib/Analysis/Meromorphic/NormalForm.lean Modified Mathlib/Analysis/Normed/Unbundled/FiniteExtension.lean Modified Mathlib/Analysis/Normed/Unbundled/IsPowMulFaithful.lean Modified Mathlib/CategoryTheory/Limits/Presheaf.lean Modified Mathlib/CategoryTheory/Presentable/IsCardinalFiltered.lean Modified Mathlib/Data/Set/Card.lean Modified Mathlib/Data/ZMod/Defs.lean Modified Mathlib/GroupTheory/GroupAction/Blocks.lean Modified Mathlib/GroupTheory/GroupAction/MultiplePrimitivity.lean Modified Mathlib/GroupTheory/GroupAction/SubMulAction/OfFixingSubgroup.lean Modified Mathlib/LinearAlgebra/Matrix/GeneralLinearGroup/FinTwo.lean Modified Mathlib/LinearAlgebra/Matrix/PosDef.lean Modified Mathlib/Logic/Equiv/Sum.lean Modified Mathlib/MeasureTheory/Function/AbsolutelyContinuous.lean Modified Mathlib/MeasureTheory/Measure/Prod.lean Modified Mathlib/NumberTheory/LSeries/ZMod.lean Modified Mathlib/NumberTheory/NumberField/FinitePlaces.lean Modified Mathlib/RepresentationTheory/Coinduced.lean Modified Mathlib/RepresentationTheory/Homological/GroupHomology/LowDegree.lean Modified Mathlib/RingTheory/MvPolynomial/MonomialOrder.lean Modified Mathlib/RingTheory/Polynomial/GaussNorm.lean Modified Mathlib/SetTheory/Cardinal/Finite.lean 2025-10-23 10:55:08 8acb4f3 feat: local frames in a vector bundle (#30338) We define a predicate `IsLocalFrameOn`, for a collection of sections of a vector bundle to be a local frame. We provide some basic API, such as the coefficients of a section `t` w.r.t. a local frame, or proving smoothness of `t` via proving the smoothness of its local frame coefficients. A future PR will construct actual local frames, and use these to define the local extension of a tangent vector to a vector field near a point. From the path towards geodesics and the Levi-Civita connection. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Geometry/Manifold/VectorBundle/LocalFrame.lean + def IsLocalFrameOn.coeff + theorem IsLocalFrameOn.coeff_apply_of_mem + theorem IsLocalFrameOn.coeff_apply_of_notMem + theorem IsLocalFrameOn.coeff_apply_zero_at + theorem IsLocalFrameOn.coeff_congr + theorem IsLocalFrameOn.coeff_eq_of_eq + theorem IsLocalFrameOn.coeff_sum_eq + theorem IsLocalFrameOn.congr + theorem IsLocalFrameOn.contMDiffAt + theorem IsLocalFrameOn.contMDiffAt_of_coeff + theorem IsLocalFrameOn.contMDiffAt_of_coeff_aux + theorem IsLocalFrameOn.contMDiffOn_of_coeff + theorem IsLocalFrameOn.eq_iff_coeff + theorem IsLocalFrameOn.eventually_eq_sum_coeff_smul + theorem IsLocalFrameOn.mdifferentiableAt_of_coeff + theorem IsLocalFrameOn.mdifferentiableAt_of_coeff_aux + theorem IsLocalFrameOn.mdifferentiableOn_of_coeff + theorem IsLocalFrameOn.mono + def IsLocalFrameOn.toBasisAt + theorem IsLocalFrameOn.toBasisAt_coe + structure IsLocalFrameOn 2025-10-23 10:10:59 98b1401 chore: generalize `tprod_ite_eq` (#30810) ESTIMATED CHANGES Modified Mathlib/Analysis/InnerProductSpace/l2Space.lean Modified Mathlib/Probability/ProbabilityMassFunction/Monad.lean Modified Mathlib/Topology/Algebra/InfiniteSum/Basic.lean +/- theorem tprod_ite_eq 2025-10-23 09:27:06 766e19e chore: remove `MulAction ℚ α → MulAction ℚ≥0 α` instances (#30671) This fixes the instances diamond in the `NNRat` action. ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/Rat.lean - theorem NNRat.cast_smul_eq_nnqsmul - theorem Rat.cast_smul_eq_qsmul Modified Mathlib/Algebra/Module/Rat.lean + theorem NNRat.cast_smul_eq_nnqsmul + theorem Rat.cast_smul_eq_qsmul Modified Mathlib/Algebra/Order/Module/Rat.lean Modified Mathlib/Data/NNRat/Lemmas.lean 2025-10-23 09:11:31 615903a chore: ignore Mathlib.Tactic.Field imports in shake (#30816) ESTIMATED CHANGES Modified scripts/noshake.json 2025-10-23 19:05:01+11:00 4cc49eb chore: revert #30788 and #30785 (#30807) ESTIMATED CHANGES Modified .github/workflows/nightly-docgen.yml Modified Cache/IO.lean +/- def Cache.IO.rootHashGeneration Modified Cache/Requests.lean Modified Mathlib.lean Modified Mathlib/Algebra/Algebra/StrictPositivity.lean Modified Mathlib/Algebra/BigOperators/Group/List/Basic.lean Modified Mathlib/Algebra/BigOperators/Group/List/Lemmas.lean Modified Mathlib/Algebra/Notation/Defs.lean - theorem SMul.smul_eq_hSMul Modified Mathlib/Algebra/Order/Ring/Unbundled/Rat.lean Modified Mathlib/Algebra/Polynomial/RuleOfSigns.lean Modified Mathlib/AlgebraicTopology/SimplexCategory/GeneratorsRelations/NormalForms.lean Modified Mathlib/Analysis/LocallyConvex/WithSeminorms.lean Modified Mathlib/Computability/DFA.lean Modified Mathlib/Computability/RegularExpressions.lean Modified Mathlib/Control/Monad/Cont.lean Modified Mathlib/Data/Finsupp/Notation.lean Modified Mathlib/Data/Fintype/EquivFin.lean Modified Mathlib/Data/Int/LeastGreatest.lean Modified Mathlib/Data/List/Chain.lean Modified Mathlib/Data/List/Flatten.lean Modified Mathlib/Data/List/SplitOn.lean Modified Mathlib/Data/Nat/Digits/Defs.lean +/- theorem Nat.repr_length Modified Mathlib/Data/Set/Insert.lean Modified Mathlib/Data/String/Basic.lean - theorem List.asString_inj - theorem List.length_asString +/- theorem List.toList_asString +/- theorem String.asString_toList - theorem String.endPos_empty - theorem String.length_data + theorem String.ltb_cons_addChar' +/- theorem String.ltb_cons_addChar +/- theorem String.toList_inj Modified Mathlib/Data/String/Defs.lean Modified Mathlib/Data/String/Lemmas.lean +/- theorem String.congr_append Added Mathlib/Lean/Elab/InfoTree.lean + def Lean.Elab.collectTryThisSuggestions Modified Mathlib/MeasureTheory/Integral/IntervalIntegral/LebesgueDifferentiationThm.lean Modified Mathlib/SetTheory/PGame/Basic.lean Modified Mathlib/Tactic/Basic.lean + structure Mathlib.Tactic.withResetServerInfo.Result + def Mathlib.Tactic.withResetServerInfo Modified Mathlib/Tactic/DeclarationNames.lean +/- def Mathlib.Linter.getNamesFrom Modified Mathlib/Tactic/Hint.lean +/- def Mathlib.Tactic.Hint.suggestion - def Mathlib.Tactic.Hint.withMessageLog - def Mathlib.Tactic.Hint.withoutInfoTrees Modified Mathlib/Tactic/Linter/CommandRanges.lean Modified Mathlib/Tactic/Linter/CommandStart.lean +/- def Mathlib.Linter.CommandStart.endPos Modified Mathlib/Tactic/Linter/DocString.lean Modified Mathlib/Tactic/Linter/FindDeprecations.lean +/- def Mathlib.Tactic.getPosAfterImports +/- def Mathlib.Tactic.parseLine Modified Mathlib/Tactic/Linter/HashCommandLinter.lean Modified Mathlib/Tactic/Linter/Header.lean +/- def Mathlib.Linter.authorsLineChecks +/- def Mathlib.Linter.parseUpToHere +/- def Mathlib.Linter.toSyntax Modified Mathlib/Tactic/Linter/PPRoundtrip.lean Modified Mathlib/Tactic/Linter/TextBased.lean Modified Mathlib/Tactic/Linter/UpstreamableDecl.lean Modified Mathlib/Tactic/Says.lean - def Mathlib.Tactic.Says.evalTacticCapturingInfo - def Mathlib.Tactic.Says.evalTacticCapturingMessages Modified Mathlib/Tactic/SuccessIfFailWithMsg.lean Modified Mathlib/Tactic/ToAdditive/Frontend.lean Modified Mathlib/Tactic/ToAdditive/GuessName.lean Modified Mathlib/Tactic/ToExpr.lean Modified Mathlib/Tactic/Widget/Calc.lean Modified Mathlib/Tactic/Widget/CongrM.lean Modified Mathlib/Tactic/Widget/Conv.lean Modified Mathlib/Tactic/Widget/GCongr.lean Modified Mathlib/Tactic/Widget/InteractiveUnfold.lean Modified Mathlib/Tactic/Widget/LibraryRewrite.lean Modified Mathlib/Tactic/Widget/SelectPanelUtils.lean Modified Mathlib/Util/CompileInductive.lean Modified Mathlib/Util/Superscript.lean Modified MathlibTest/CalcQuestionMark.lean Modified MathlibTest/Change.lean Modified MathlibTest/DeprecateTo.lean Modified MathlibTest/FieldSimp.lean Modified MathlibTest/FindSyntax.lean Modified MathlibTest/LibraryRewrite.lean Modified MathlibTest/LibrarySearch/basic.lean Modified MathlibTest/LibrarySearch/mathlib.lean Modified MathlibTest/LibrarySearch/observe.lean Modified MathlibTest/Subsingleton.lean Modified MathlibTest/Use.lean Modified MathlibTest/Util/PrintSorries.lean Modified MathlibTest/Variable.lean Modified MathlibTest/fast_instance.lean Modified MathlibTest/hint.lean Modified MathlibTest/propose.lean Modified MathlibTest/rewrites.lean Modified MathlibTest/ring.lean Modified MathlibTest/says.lean Modified MathlibTest/says_whitespace.lean Modified MathlibTest/success_if_fail_with_msg.lean Modified MathlibTest/toAdditive.lean Modified lake-manifest.json Modified lakefile.lean Modified lean-toolchain Modified scripts/check-yaml.lean Modified scripts/noshake.json 2025-10-23 06:37:37 3ae8eef chore: bump leantar to 0.1.16-pre4 (#30813) ESTIMATED CHANGES Modified Cache/IO.lean 2025-10-23 02:07:25 8a246bc chore: use `lake build --no-build --rehash` when verifying the cache in CI (#30805) See [#mathlib4 > Build error in Tactic file @ 💬](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Build.20error.20in.20Tactic.20file/near/546563514). ESTIMATED CHANGES Modified .github/build.in.yml Modified .github/workflows/bors.yml Modified .github/workflows/build.yml Modified .github/workflows/build_fork.yml 2025-10-23 01:53:22 9c7fedb feat: trapezoidal rule for integration (#29040) This PR defines the trapezoidal rule and proves the standard error bound on it in terms of bounds on the second derivative. I have vague plans of using this plus interval arithmetic to develop a tactic that can automatically close goals of the form `\integral x in a..b, f x < y` or similar. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/MeasureTheory/Integral/IntervalIntegral/TrapezoidalRule.lean + theorem sum_trapezoidal_error_adjacent_intervals + theorem sum_trapezoidal_integral_adjacent_intervals + theorem trapezoidal_error_eq + theorem trapezoidal_error_le + theorem trapezoidal_error_le_of_c2 + theorem trapezoidal_error_symm + theorem trapezoidal_integral_eq + theorem trapezoidal_integral_ext + theorem trapezoidal_integral_one + theorem trapezoidal_integral_symm Modified scripts/noshake.json 2025-10-23 00:20:05 2f46caa feat: ignore `#adaptation_note` in the `mergeWithGrind` linter (#30803) This PR, following the example of the `hashCommand` linter, adds a set `mergeWithGrindAllowed` which is used to exclude `#adaptation_note` from the `mergeWithGrind` linter. ESTIMATED CHANGES Modified Mathlib/Tactic/TacticAnalysis/Declarations.lean Modified MathlibTest/TacticAnalysis.lean 2025-10-23 00:20:02 5fdb78b style(misc): fix whitespace (#30691) Extracted from #30658. Found by extending the commandStart linter to proof bodies. ESTIMATED CHANGES Modified Mathlib/Combinatorics/SimpleGraph/Regularity/Uniform.lean Modified Mathlib/Combinatorics/SimpleGraph/Triangle/Removal.lean Modified Mathlib/Computability/TuringMachine.lean Modified Mathlib/Control/ULiftable.lean Modified Mathlib/Geometry/Manifold/PoincareConjecture.lean Modified Mathlib/Geometry/Manifold/VectorBundle/SmoothSection.lean Modified Mathlib/GroupTheory/ArchimedeanDensely.lean Modified Mathlib/GroupTheory/CoprodI.lean Modified Mathlib/GroupTheory/Coxeter/Basic.lean Modified Mathlib/GroupTheory/Coxeter/Inversion.lean Modified Mathlib/GroupTheory/Coxeter/Length.lean Modified Mathlib/GroupTheory/FixedPointFree.lean Modified Mathlib/GroupTheory/GroupAction/Blocks.lean Modified Mathlib/GroupTheory/GroupAction/MultipleTransitivity.lean Modified Mathlib/GroupTheory/GroupAction/Primitive.lean Modified Mathlib/GroupTheory/GroupAction/SubMulAction/OfFixingSubgroup.lean Modified Mathlib/GroupTheory/HNNExtension.lean Modified Mathlib/GroupTheory/MonoidLocalization/Basic.lean Modified Mathlib/GroupTheory/Perm/Centralizer.lean Modified Mathlib/GroupTheory/Perm/Cycle/Concrete.lean Modified Mathlib/GroupTheory/PushoutI.lean Modified Mathlib/GroupTheory/SpecificGroups/Dihedral.lean +/- theorem DihedralGroup.r_pow +/- theorem DihedralGroup.r_zpow Modified Mathlib/GroupTheory/SpecificGroups/Quaternion.lean Modified Mathlib/LinearAlgebra/BilinearForm/TensorProduct.lean Modified Mathlib/LinearAlgebra/CliffordAlgebra/EvenEquiv.lean Modified Mathlib/LinearAlgebra/CliffordAlgebra/Prod.lean Modified Mathlib/LinearAlgebra/Eigenspace/Matrix.lean Modified Mathlib/LinearAlgebra/FreeProduct/Basic.lean Modified Mathlib/LinearAlgebra/Matrix/Adjugate.lean Modified Mathlib/LinearAlgebra/Matrix/Determinant/TotallyUnimodular.lean Modified Mathlib/LinearAlgebra/Matrix/FixedDetMatrices.lean Modified Mathlib/LinearAlgebra/Matrix/GeneralLinearGroup/Card.lean Modified Mathlib/LinearAlgebra/Matrix/Ideal.lean Modified Mathlib/LinearAlgebra/Matrix/Notation.lean Modified Mathlib/LinearAlgebra/QuadraticForm/TensorProduct.lean Modified Mathlib/LinearAlgebra/RootSystem/Base.lean Modified Mathlib/LinearAlgebra/RootSystem/Chain.lean Modified Mathlib/LinearAlgebra/RootSystem/Finite/G2.lean +/- theorem RootPairing.EmbeddedG2.pairing_long_short Modified Mathlib/LinearAlgebra/RootSystem/GeckConstruction/Basic.lean Modified Mathlib/LinearAlgebra/RootSystem/RootPairingCat.lean Modified Mathlib/LinearAlgebra/TensorProduct/Graded/External.lean Modified Mathlib/LinearAlgebra/TensorProduct/Graded/Internal.lean Modified Mathlib/LinearAlgebra/Vandermonde.lean Modified Mathlib/Logic/Equiv/Defs.lean Modified Mathlib/Logic/Equiv/Option.lean +/- def Equiv.optionEquivSumPUnit.{v, Modified Mathlib/Logic/Equiv/Prod.lean +/- def Equiv.uniqueSigma Modified Mathlib/Logic/Function/Iterate.lean Modified Mathlib/Logic/Small/Defs.lean Modified Mathlib/MeasureTheory/Function/ConditionalExpectation/AEMeasurable.lean Modified Mathlib/MeasureTheory/Function/Holder.lean Modified Mathlib/MeasureTheory/Function/UniformIntegrable.lean Modified Mathlib/MeasureTheory/Group/GeometryOfNumbers.lean Modified Mathlib/MeasureTheory/Integral/Average.lean Modified Mathlib/MeasureTheory/Measure/AddContent.lean Modified Mathlib/MeasureTheory/Measure/LogLikelihoodRatio.lean Modified Mathlib/MeasureTheory/Measure/Tilted.lean Modified Mathlib/ModelTheory/Syntax.lean Modified Mathlib/NumberTheory/Dioph.lean Modified Mathlib/NumberTheory/FLT/Basic.lean Modified Mathlib/NumberTheory/FLT/MasonStothers.lean Modified Mathlib/NumberTheory/FLT/Three.lean Modified Mathlib/NumberTheory/FactorisationProperties.lean Modified Mathlib/NumberTheory/Multiplicity.lean Modified Mathlib/NumberTheory/PellMatiyasevic.lean Modified Mathlib/NumberTheory/Zsqrtd/Basic.lean Modified Mathlib/Probability/Distributions/Gamma.lean Modified Mathlib/Probability/Distributions/Gaussian/Real.lean Modified Mathlib/Probability/Distributions/Geometric.lean +/- def ProbabilityTheory.geometricPMFReal Modified Mathlib/Probability/Distributions/Poisson.lean +/- def ProbabilityTheory.poissonPMFReal Modified Mathlib/Probability/Independence/Conditional.lean Modified Mathlib/Probability/Independence/ZeroOne.lean Modified Mathlib/Probability/Kernel/Condexp.lean Modified Mathlib/Probability/Kernel/Disintegration/Density.lean Modified Mathlib/Probability/Kernel/WithDensity.lean Modified Mathlib/Probability/Moments/Basic.lean +/- theorem ProbabilityTheory.mgf_add_const Modified Mathlib/Probability/Moments/Covariance.lean +/- theorem ProbabilityTheory.covariance_fun_neg_left +/- theorem ProbabilityTheory.covariance_fun_neg_right Modified Mathlib/Probability/Moments/IntegrableExpMul.lean Modified Mathlib/Probability/Moments/MGFAnalytic.lean Modified Mathlib/Probability/Moments/SubGaussian.lean Modified Mathlib/Probability/ProbabilityMassFunction/Binomial.lean Modified Mathlib/Probability/StrongLaw.lean Modified Mathlib/RepresentationTheory/Homological/GroupCohomology/LowDegree.lean Modified Mathlib/RepresentationTheory/Homological/GroupHomology/Basic.lean Modified Mathlib/RepresentationTheory/Homological/GroupHomology/LowDegree.lean Modified Mathlib/RepresentationTheory/Homological/Resolution.lean Modified Mathlib/SetTheory/Cardinal/Defs.lean +/- theorem Cardinal.mk_arrow Modified Mathlib/Tactic/ApplyAt.lean Modified Mathlib/Tactic/FastInstance.lean Modified Mathlib/Topology/Algebra/Constructions/DomMulAct.lean Modified Mathlib/Topology/Algebra/RestrictedProduct/Basic.lean Modified Mathlib/Topology/UniformSpace/Defs.lean Modified Mathlib/Topology/VectorBundle/Riemannian.lean 2025-10-23 00:20:00 acca40f feat(RingTheory/Localization/FractionRing): `R` is nontrivial iff `S` is nontrivial (#30645) This PR shows that if `S` is the fraction ring of `R`, then `R` is nontrivial iff `S` is nontrivial. ESTIMATED CHANGES Modified Mathlib/RingTheory/Localization/FractionRing.lean + theorem IsFractionRing.nontrivial_iff_nontrivial 2025-10-23 00:03:59 0fd80fa doc: document `ToAdditive.insertTranslation` (#30784) * Document `ToAdditive.insertTranslation` * Shorten invocations * Update comments ESTIMATED CHANGES Modified Mathlib/GroupTheory/Coset/Defs.lean Modified Mathlib/GroupTheory/FreeGroup/Basic.lean Modified Mathlib/GroupTheory/MonoidLocalization/Basic.lean Modified Mathlib/Tactic/ToAdditive/Frontend.lean Modified MathlibTest/toAdditive.lean 2025-10-23 00:03:57 c03073a doc: Cartesian-closed -> Cartesian closed (#30777) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Category/Cat/CartesianClosed.lean Modified Mathlib/CategoryTheory/Closed/Cartesian.lean Modified Mathlib/CategoryTheory/Closed/Functor.lean Modified Mathlib/CategoryTheory/Closed/Ideal.lean Modified Mathlib/CategoryTheory/Closed/Monoidal.lean Modified Mathlib/CategoryTheory/Closed/Zero.lean Modified Mathlib/CategoryTheory/Functor/Currying.lean Modified Mathlib/CategoryTheory/Limits/Shapes/StrictInitial.lean Modified Mathlib/CategoryTheory/Subterminal.lean Modified Mathlib/Condensed/CartesianClosed.lean Modified Mathlib/Condensed/Light/CartesianClosed.lean Modified Mathlib/Order/Heyting/Basic.lean Modified Mathlib/Topology/Category/DeltaGenerated.lean Modified MathlibTest/fun_prop_dev.lean 2025-10-23 00:03:55 87ab66e refactor: generalise `Set.eq_empty_of_isEmpty` (#30722) We don't need to know that the full type is empty, but merely the set itself. ESTIMATED CHANGES Modified Mathlib/Data/Set/Basic.lean +/- theorem Set.eq_empty_of_isEmpty Modified Mathlib/Topology/Category/Profinite/CofilteredLimit.lean 2025-10-23 00:03:52 3167cff chore(Algebra/Order/Monoid/Unbundled/MinMax): golf 2 lemmas using `grind` (#30280) ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Monoid/Unbundled/MinMax.lean 2025-10-23 00:03:50 41772ea feat(Algebra/Polynomial/Factors): Introduce predicate and basic API (#30212) This PR introduces a predicate `Polynomial.Factors` that generalizes `Polynomial.Splits` beyond fields. This PR contains the definition of `Polynomial.Factors` along with most of API for `Polynomial.Splits`. The end goal is to either redefine `Polynomial.Splits` in terms of `Polynomial.Factors` or deprecate `Polynomial.Splits` entirely. Zulip discussion: https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Generalizing.20.60Polynomial.2ESplits.60.20to.20rings ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Polynomial/Factors.lean + theorem Polynomial.Factors.C_mul_X_pow + theorem Polynomial.Factors.X_add_C + theorem Polynomial.Factors.X_pow + theorem Polynomial.Factors.X_sub_C + theorem Polynomial.Factors.eq_prod_roots + theorem Polynomial.Factors.exists_eval_eq_zero + theorem Polynomial.Factors.listProd + theorem Polynomial.Factors.monomial + theorem Polynomial.Factors.multisetProd + theorem Polynomial.Factors.natDegree_eq_card_roots + theorem Polynomial.Factors.natDegree_le_one_of_irreducible + theorem Polynomial.Factors.of_degree_eq_one + theorem Polynomial.Factors.of_degree_le_one + theorem Polynomial.Factors.of_dvd + theorem Polynomial.Factors.of_natDegree_eq_one + theorem Polynomial.Factors.of_natDegree_le_one + theorem Polynomial.Factors.roots_ne_zero + theorem Polynomial.Factors.splits + def Polynomial.Factors + theorem Polynomial.factors_X_sub_C_mul_iff + theorem Polynomial.factors_iff_exists_multiset' + theorem Polynomial.factors_iff_exists_multiset + theorem Polynomial.factors_iff_splits + theorem Polynomial.factors_mul_iff + theorem Polynomial.factors_neg_iff + theorem Polynomial.factors_of_degree_le_zero + theorem Polynomial.factors_of_natDegree_eq_zero Modified Mathlib/Algebra/Polynomial/Monic.lean + theorem Polynomial.not_isUnit_X_add_C Modified Mathlib/Algebra/Polynomial/Splits.lean 2025-10-23 00:03:47 9fdf911 feat(AdjoinRoot): bundle operations as `AlgHom`s (#29132) In particular, generalise and rename `liftHom` to use a general `eval₂` instead of `aeval`. From Toric ESTIMATED CHANGES Modified Mathlib/FieldTheory/IntermediateField/Adjoin/Basic.lean Modified Mathlib/FieldTheory/Isaacs.lean Modified Mathlib/FieldTheory/KummerExtension.lean Modified Mathlib/FieldTheory/Minpoly/IsIntegrallyClosed.lean Modified Mathlib/RingTheory/Adjoin/Field.lean Modified Mathlib/RingTheory/AdjoinRoot.lean + theorem AdjoinRoot.algHom_ext' + theorem AdjoinRoot.coe_liftAlgHom + theorem AdjoinRoot.coe_ofAlgHom + def AdjoinRoot.liftAlgHom + theorem AdjoinRoot.liftAlgHom_eq_algHom + theorem AdjoinRoot.liftAlgHom_mk + theorem AdjoinRoot.liftAlgHom_of + theorem AdjoinRoot.liftAlgHom_root +/- theorem AdjoinRoot.liftHom_mk + theorem AdjoinRoot.toRingHom_liftAlgHom + theorem AdjoinRoot.toRingHom_ofAlgHom +/- def AdjoinRoot Modified Mathlib/RingTheory/Localization/Away/AdjoinRoot.lean 2025-10-23 00:03:45 f64ce1e feat(Analysis/Normed/Group/Quotient): isometric versions of isomorphisms (#27000) This PR adds an isometric version of the third isomorphism theorem for groups and modules. ESTIMATED CHANGES Modified Mathlib/Analysis/Normed/Group/Quotient.lean + def QuotientGroup.quotientBotIsometryEquiv + def QuotientGroup.quotientQuotientIsometryEquivQuotient + def Subgroup.quotientIsometryEquivOfEq + def Submodule.quotLIEOfEq + def Submodule.quotientQuotientLIEQuotient + def Submodule.quotientQuotientLIEQuotientSup 2025-10-22 23:09:26 0a7093c chore(MeasureTheory/Function/SimpleFunc): deprecate `SimpleFunc.coe_le` (#30737) This PR deprecates the duplicate `MeasureTheory.SimpleFunc.coe_le` of `coe_le_coe` that seems to have accidentally slipped in via #18707. ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Function/SimpleFunc.lean - theorem MeasureTheory.SimpleFunc.coe_le +/- theorem MeasureTheory.SimpleFunc.coe_le_coe 2025-10-22 23:09:25 f329f8c chore(Data/Finset): golf `powersetCard_succ_insert` using `grind` (#30593) ESTIMATED CHANGES Modified Mathlib/Data/Finset/Powerset.lean 2025-10-22 23:09:23 e789890 chore(CauSeq): Add `lim_sub` lemma to CauSeq. (#30395) ESTIMATED CHANGES Modified Mathlib/Algebra/Order/CauSeq/Completion.lean + theorem CauSeq.lim_sub 2025-10-22 23:09:21 bbfa916 feat(Algebra/Ring/Basic): add `a / -b = -a / b` (#30261) ESTIMATED CHANGES Modified Mathlib/Algebra/Ring/Basic.lean + theorem div_neg_eq_neg_div' +/- theorem neg_div' 2025-10-22 23:09:20 3d0794d chore(RingTheory/AdicValuation,LaurentSeries): switch to `WithZero.exp` instead of coercions of `Multiplicative.ofAdd` (#29642) as requested at https://github.com/leanprover-community/mathlib4/pull/27339#issuecomment-3285102305 ESTIMATED CHANGES Modified Mathlib/FieldTheory/RatFunc/AsPolynomial.lean Modified Mathlib/NumberTheory/NumberField/FinitePlaces.lean Modified Mathlib/RingTheory/DedekindDomain/AdicValuation.lean Modified Mathlib/RingTheory/DedekindDomain/SelmerGroup.lean Modified Mathlib/RingTheory/LaurentSeries.lean +/- theorem PowerSeries.intValuation_X 2025-10-22 23:09:18 599f81d feat(RingTheory/Valuation): Valuation.leAddSubgroup and ideal/submodule versions of ltAddSubgroup (#26829) Extracted from #25450 without changing how Valued works ESTIMATED CHANGES Modified Mathlib/RingTheory/Valuation/Basic.lean + def Valuation.leAddSubgroup + theorem Valuation.leAddSubgroup_monotone + theorem Valuation.leAddSubgroup_zero + theorem Valuation.ltAddSubgroup_le_leAddSubgroup + theorem Valuation.ltAddSubgroup_monotone + theorem Valuation.mem_leAddSubgroup_iff Modified Mathlib/RingTheory/Valuation/Integers.lean + def Valuation.leIdeal + theorem Valuation.leIdeal_map_algebraMap_eq_leSubmodule_min + theorem Valuation.leIdeal_mono + theorem Valuation.leIdeal_v_le_of_mem + theorem Valuation.leIdeal_zero + def Valuation.leSubmodule + theorem Valuation.leSubmodule_comap_algebraMap_eq_leIdeal + theorem Valuation.leSubmodule_monotone + theorem Valuation.leSubmodule_v_le_of_mem + theorem Valuation.leSubmodule_zero + def Valuation.ltIdeal + theorem Valuation.ltIdeal_le_leIdeal + theorem Valuation.ltIdeal_mono + theorem Valuation.ltIdeal_v_le_of_mem + def Valuation.ltSubmodule + theorem Valuation.ltSubmodule_le_leSubmodule + theorem Valuation.ltSubmodule_monotone + theorem Valuation.ltSubmodule_v_le_of_mem + theorem Valuation.mem_leIdeal_iff + theorem Valuation.mem_leSubmodule_iff + theorem Valuation.mem_ltIdeal_iff + theorem Valuation.mem_ltSubmodule_iff 2025-10-22 23:09:16 f52115b chore: shortcut instance `CompleteLattice α → PartialOrder α` (#25758) This avoids using the path `CompleteLattice α → CompletePartialOrder α → PartialOrder α` that goes through `Order.CompletePartialOrder` and makes it appear used to our automation, such as `shake` or `#min_imports`. This is a followup to #25358. ESTIMATED CHANGES Modified Mathlib/Order/CompleteLattice/Defs.lean 2025-10-22 20:30:30 71a105d feat(Analysis/SpecialFunctions/Log): log_prod for Lists and Multisets (#30681) We add ``` lemma log_list_prod {l : List ℝ} (h : ∀ x ∈ l, x ≠ 0) : log l.prod = (l.map (fun x ↦ log x)).sum ``` and ``` lemma log_multiset_prod {s : Multiset ℝ} (h : ∀ x ∈ s, x ≠ 0) : log s.prod = (s.map (fun x ↦ log x)).sum ``` ESTIMATED CHANGES Modified Mathlib/Algebra/BigOperators/Group/Multiset/Defs.lean + theorem Multiset.prod_map_toList Modified Mathlib/Analysis/Meromorphic/FactorizedRational.lean Modified Mathlib/Analysis/SpecialFunctions/Log/Basic.lean + theorem Real.log_list_prod + theorem Real.log_multiset_prod +/- theorem Real.log_prod Modified Mathlib/NumberTheory/NumberField/CanonicalEmbedding/NormLeOne.lean Modified Mathlib/Probability/Moments/Basic.lean 2025-10-22 20:30:28 663fc8b feat(RingTheory): define the dual of a basis for the trace and prove basic properties (#26396) Specialize the construction of `BilinForm.dualBasis` to the case of the trace and proves basic results about it. This will be useful for future works on the [Submodule.traceDual](https://leanprover-community.github.io/mathlib4_docs/Mathlib/RingTheory/DedekindDomain/Different.html#Submodule.traceDual) ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/BilinearForm/DualLattice.lean Modified Mathlib/LinearAlgebra/BilinearForm/Properties.lean +/- theorem LinearMap.BilinForm.apply_dualBasis_left +/- theorem LinearMap.BilinForm.apply_dualBasis_right +/- theorem LinearMap.BilinForm.dualBasis_dualBasis +/- theorem LinearMap.BilinForm.dualBasis_dualBasis_flip + theorem LinearMap.BilinForm.dualBasis_eq_iff +/- theorem LinearMap.BilinForm.dualBasis_flip_dualBasis + theorem LinearMap.BilinForm.dualBasis_injective + theorem LinearMap.BilinForm.dualBasis_involutive +/- theorem LinearMap.BilinForm.dualBasis_repr_apply Modified Mathlib/RingTheory/DedekindDomain/Different.lean + theorem Submodule.traceDual_span_of_basis Modified Mathlib/RingTheory/PowerBasis.lean - def Module.Basis.PowerBasis Modified Mathlib/RingTheory/Trace/Basic.lean + theorem Algebra.isNilpotent_trace_of_isNilpotent +/- theorem Algebra.traceMatrix_of_basis_mulVec - theorem Algebra.trace_isNilpotent_of_isNilpotent + theorem Module.Basis.traceDual_def + theorem Module.Basis.traceDual_eq_iff + theorem Module.Basis.traceDual_inj + theorem Module.Basis.traceDual_injective + theorem Module.Basis.traceDual_involutive + theorem Module.Basis.traceDual_powerBasis_eq + theorem Module.Basis.traceDual_repr_apply + theorem Module.Basis.traceDual_traceDual + theorem Module.Basis.trace_mul_traceDual + theorem Module.Basis.trace_traceDual_mul +/- theorem det_traceForm_ne_zero - theorem traceForm_dualBasis_powerBasis_eq 2025-10-22 19:38:08 df375c2 feat(SetTheory/Cardinal): generalize and rename theorems on `Cardinal.sum` (#29351) Some theorems on `Cardinal.sum f` are taking `f : ι → Cardinal.{max u v}`, which can be generalized to `f : ι → Cardinal.{v}`. Also rename `sum_le_iSup_lift`, `sum_eq_iSup_lift` etc. to reflect their signatures in names. ESTIMATED CHANGES Modified Mathlib/Data/W/Cardinal.lean Modified Mathlib/ModelTheory/Encoding.lean Modified Mathlib/SetTheory/Cardinal/Arithmetic.lean - theorem Cardinal.sum_eq_iSup - theorem Cardinal.sum_eq_iSup_lift + theorem Cardinal.sum_eq_iSup_of_lift_mk_le_iSup + theorem Cardinal.sum_eq_iSup_of_mk_le_iSup + theorem Cardinal.sum_eq_lift_iSup_of_lift_mk_le_lift_iSup Modified Mathlib/SetTheory/Cardinal/Basic.lean + theorem Cardinal.lift_iSup_le_sum - theorem Cardinal.sum_le_iSup - theorem Cardinal.sum_le_iSup_lift + theorem Cardinal.sum_le_lift_mk_mul_iSup + theorem Cardinal.sum_le_lift_mk_mul_iSup_lift + theorem Cardinal.sum_le_mk_mul_iSup Modified Mathlib/SetTheory/Cardinal/Cofinality.lean Modified Mathlib/SetTheory/Cardinal/Defs.lean + theorem Cardinal.lift_power_sum +/- theorem Cardinal.power_sum Modified Mathlib/SetTheory/Cardinal/Order.lean +/- theorem Cardinal.le_sum + theorem Cardinal.lift_le_sum Modified Mathlib/SetTheory/Cardinal/Ordinal.lean Modified Mathlib/SetTheory/Cardinal/Pigeonhole.lean Modified Mathlib/SetTheory/Cardinal/Regular.lean 2025-10-22 18:34:27 92204ff feat(GroupTheory/Index): criteria for subgroup to have index 2 (#30466) A few variations on the existing `Subgroup.index_eq_two_iff`. ESTIMATED CHANGES Modified Mathlib/GroupTheory/Index.lean + theorem Subgroup.index_dvd_two_iff' + theorem Subgroup.index_dvd_two_iff + theorem Subgroup.index_eq_two_iff' + theorem Subgroup.index_eq_two_iff_exists_notMem_and' + theorem Subgroup.index_eq_two_iff_exists_notMem_and + theorem Subgroup.relIindex_dvd_two_iff' + theorem Subgroup.relIindex_eq_two_iff' + theorem Subgroup.relIndex_dvd_two_iff + theorem Subgroup.relIndex_eq_two_iff + theorem Subgroup.relIndex_eq_two_iff_exists_notMem_and' + theorem Subgroup.relIndex_eq_two_iff_exists_notMem_and 2025-10-22 14:25:51-04:00 2521caa chore: revert #30740 and #30748 (#30788) cf. [#mathlib4 > Build error in Tactic file @ 💬](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Build.20error.20in.20Tactic.20file/near/546455276) ESTIMATED CHANGES Modified .github/workflows/nightly-docgen.yml Modified Cache/IO.lean +/- def Cache.IO.rootHashGeneration Modified Cache/Requests.lean Modified Mathlib.lean Modified Mathlib/Algebra/Algebra/StrictPositivity.lean Modified Mathlib/Algebra/BigOperators/Group/List/Basic.lean Modified Mathlib/Algebra/BigOperators/Group/List/Lemmas.lean Modified Mathlib/Algebra/Notation/Defs.lean + theorem SMul.smul_eq_hSMul Modified Mathlib/Algebra/Order/Ring/Unbundled/Rat.lean Modified Mathlib/Algebra/Polynomial/RuleOfSigns.lean Modified Mathlib/AlgebraicTopology/SimplexCategory/GeneratorsRelations/NormalForms.lean Modified Mathlib/Analysis/LocallyConvex/WithSeminorms.lean Modified Mathlib/Computability/DFA.lean Modified Mathlib/Computability/RegularExpressions.lean Modified Mathlib/Control/Monad/Cont.lean Modified Mathlib/Data/Finsupp/Notation.lean Modified Mathlib/Data/Fintype/EquivFin.lean Modified Mathlib/Data/Int/LeastGreatest.lean Modified Mathlib/Data/List/Chain.lean Modified Mathlib/Data/List/Flatten.lean Modified Mathlib/Data/List/SplitOn.lean Modified Mathlib/Data/Nat/Digits/Defs.lean +/- theorem Nat.repr_length Modified Mathlib/Data/Set/Insert.lean Modified Mathlib/Data/String/Basic.lean + theorem List.asString_inj + theorem List.length_asString +/- theorem List.toList_asString +/- theorem String.asString_toList + theorem String.endPos_empty + theorem String.length_data - theorem String.ltb_cons_addChar' +/- theorem String.ltb_cons_addChar +/- theorem String.toList_inj Modified Mathlib/Data/String/Defs.lean Modified Mathlib/Data/String/Lemmas.lean +/- theorem String.congr_append Deleted Mathlib/Lean/Elab/InfoTree.lean - def Lean.Elab.collectTryThisSuggestions Modified Mathlib/MeasureTheory/Integral/IntervalIntegral/LebesgueDifferentiationThm.lean Modified Mathlib/SetTheory/PGame/Basic.lean Modified Mathlib/Tactic/Basic.lean - structure Mathlib.Tactic.withResetServerInfo.Result - def Mathlib.Tactic.withResetServerInfo Modified Mathlib/Tactic/DeclarationNames.lean +/- def Mathlib.Linter.getNamesFrom Modified Mathlib/Tactic/Hint.lean +/- def Mathlib.Tactic.Hint.suggestion + def Mathlib.Tactic.Hint.withMessageLog + def Mathlib.Tactic.Hint.withoutInfoTrees Modified Mathlib/Tactic/Linter/CommandRanges.lean Modified Mathlib/Tactic/Linter/CommandStart.lean +/- def Mathlib.Linter.CommandStart.endPos Modified Mathlib/Tactic/Linter/DocString.lean Modified Mathlib/Tactic/Linter/FindDeprecations.lean +/- def Mathlib.Tactic.getPosAfterImports +/- def Mathlib.Tactic.parseLine Modified Mathlib/Tactic/Linter/HashCommandLinter.lean Modified Mathlib/Tactic/Linter/Header.lean +/- def Mathlib.Linter.authorsLineChecks +/- def Mathlib.Linter.parseUpToHere +/- def Mathlib.Linter.toSyntax Modified Mathlib/Tactic/Linter/PPRoundtrip.lean Modified Mathlib/Tactic/Linter/TextBased.lean Modified Mathlib/Tactic/Linter/UpstreamableDecl.lean Modified Mathlib/Tactic/Says.lean + def Mathlib.Tactic.Says.evalTacticCapturingInfo + def Mathlib.Tactic.Says.evalTacticCapturingMessages Modified Mathlib/Tactic/SuccessIfFailWithMsg.lean Modified Mathlib/Tactic/ToAdditive/Frontend.lean Modified Mathlib/Tactic/ToAdditive/GuessName.lean Modified Mathlib/Tactic/ToExpr.lean Modified Mathlib/Tactic/Widget/Calc.lean Modified Mathlib/Tactic/Widget/CongrM.lean Modified Mathlib/Tactic/Widget/Conv.lean Modified Mathlib/Tactic/Widget/GCongr.lean Modified Mathlib/Tactic/Widget/InteractiveUnfold.lean Modified Mathlib/Tactic/Widget/LibraryRewrite.lean Modified Mathlib/Tactic/Widget/SelectPanelUtils.lean Modified Mathlib/Util/CompileInductive.lean Modified Mathlib/Util/Superscript.lean Modified MathlibTest/CalcQuestionMark.lean Modified MathlibTest/Change.lean Modified MathlibTest/DeprecateTo.lean Modified MathlibTest/FieldSimp.lean Modified MathlibTest/FindSyntax.lean Modified MathlibTest/LibraryRewrite.lean Modified MathlibTest/LibrarySearch/basic.lean Modified MathlibTest/LibrarySearch/mathlib.lean Modified MathlibTest/LibrarySearch/observe.lean Modified MathlibTest/Subsingleton.lean Modified MathlibTest/Use.lean Modified MathlibTest/Util/PrintSorries.lean Modified MathlibTest/Variable.lean Modified MathlibTest/fast_instance.lean Modified MathlibTest/hint.lean Modified MathlibTest/propose.lean Modified MathlibTest/rewrites.lean Modified MathlibTest/ring.lean Modified MathlibTest/says.lean Modified MathlibTest/says_whitespace.lean Modified MathlibTest/success_if_fail_with_msg.lean Modified MathlibTest/toAdditive.lean Modified lake-manifest.json Modified lakefile.lean Modified lean-toolchain Modified scripts/check-yaml.lean Modified scripts/noshake.json 2025-10-22 17:48:30 40d354e feat(ValMinAbs): add lemmas (#28837) ESTIMATED CHANGES Modified Mathlib/Data/ZMod/ValMinAbs.lean + theorem ZMod.abs_valMinAbs_eq_abs_valMinAbs + theorem ZMod.eq_neg_of_valMinAbs_eq_neg_valMinAbs + theorem ZMod.natAbs_valMinAbs_eq_natAbs_valMinAbs +/- theorem ZMod.valMinAbs_eq_zero + theorem ZMod.valMinAbs_inj 2025-10-22 16:00:51 ce36371 feat(Combinators/SimpleGraph/Hamiltonian): `p.support.length = Fintype.card α` (#30206) ESTIMATED CHANGES Modified Mathlib/Combinatorics/SimpleGraph/Hamiltonian.lean + theorem SimpleGraph.Walk.IsHamiltonian.length_support 2025-10-22 16:00:49 f31d6cc chore(Data/Typevec): Move variables into `variable` declaration in typevec (#27552) This will be needed to allow `M.corec` to be generic across universes ESTIMATED CHANGES Modified Mathlib/Data/TypeVec.lean +/- theorem TypeVec.Arrow.ext +/- def TypeVec.Arrow +/- def TypeVec.comp +/- theorem TypeVec.comp_assoc +/- theorem TypeVec.comp_id +/- theorem TypeVec.id_comp +/- def TypeVec.«repeat» 2025-10-22 11:41:41 e8336e1 chore: Revert "chore: bump toolchain to v4.25.0-rc2 (#30772)" (#30785) This reverts commit d9d1cc1012eccfc8d01215b1b7943b0e7f8b7757. cf. [#mathlib4 > Build error in Tactic file](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Build.20error.20in.20Tactic.20file/with/546423630) ESTIMATED CHANGES Modified lake-manifest.json Modified lean-toolchain 2025-10-22 09:45:44 52404eb chore: normalize doc heading spacing (#30760) This PR removes superfluous white-space in the markdown headers of the docs: remove repeated spaces before a `#`, or between it and the actual heading. I've tried to figure out whether there exists subtle reasons why one might want to have more than one space after the #-symbol, but I've been unable to find any. ESTIMATED CHANGES Modified Mathlib/Algebra/MonoidAlgebra/NoZeroDivisors.lean Modified Mathlib/Algebra/MonoidAlgebra/Support.lean Modified Mathlib/Algebra/Polynomial/Laurent.lean Modified Mathlib/Algebra/SkewMonoidAlgebra/Support.lean Modified Mathlib/Data/Finset/NatDivisors.lean Modified Mathlib/Data/Nat/Dist.lean Modified Mathlib/MeasureTheory/Integral/RieszMarkovKakutani/Basic.lean Modified Mathlib/MeasureTheory/Integral/RieszMarkovKakutani/NNReal.lean Modified Mathlib/RingTheory/MvPowerSeries/NoZeroDivisors.lean Modified Mathlib/RingTheory/Polynomial/Opposites.lean Modified Mathlib/RingTheory/PowerSeries/NoZeroDivisors.lean Modified Mathlib/Tactic/ComputeDegree.lean Modified Mathlib/Tactic/DeprecateTo.lean Modified Mathlib/Tactic/ExtendDoc.lean Modified Mathlib/Tactic/ExtractGoal.lean Modified Mathlib/Tactic/FindSyntax.lean Modified Mathlib/Tactic/Linter/CommandRanges.lean Modified Mathlib/Tactic/Linter/CommandStart.lean Modified Mathlib/Tactic/Linter/DeprecatedModule.lean Modified Mathlib/Tactic/Linter/DocString.lean Modified Mathlib/Tactic/Linter/FlexibleLinter.lean Modified Mathlib/Tactic/Linter/HaveLetLinter.lean Modified Mathlib/Tactic/Linter/Header.lean Modified Mathlib/Tactic/Linter/Lint.lean Modified Mathlib/Tactic/Linter/MinImports.lean Modified Mathlib/Tactic/Linter/Multigoal.lean Modified Mathlib/Tactic/Linter/PPRoundtrip.lean Modified Mathlib/Tactic/Linter/Style.lean Modified Mathlib/Tactic/Linter/UnusedTactic.lean Modified Mathlib/Tactic/MoveAdd.lean Modified Mathlib/Util/CountHeartbeats.lean Modified MathlibTest/MoveAdd.lean Modified scripts/create_deprecated_modules.lean Modified scripts/declarations_diff.sh 2025-10-22 09:45:41 dc784dc feat(Algebra/Order/Ring/Unbundled/Rat): exact form for `|q|` (#30263) ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Ring/Unbundled/Rat.lean + theorem Rat.abs_def' + theorem Rat.den_abs_eq_den + theorem Rat.num_abs_eq_abs_num 2025-10-22 09:45:39 85017a1 feat: uncurrying the product measure gives the product measure (#30179) ESTIMATED CHANGES Modified Mathlib/Probability/ProductMeasure.lean + theorem MeasureTheory.Measure.infinitePi_map_curry + theorem MeasureTheory.Measure.infinitePi_map_curry_symm + theorem MeasureTheory.Measure.infinitePi_map_piCurry + theorem MeasureTheory.Measure.infinitePi_map_piCurry_symm 2025-10-22 08:45:21 26ace33 chore(Analysis): Remove a transitive import and an unused scoped ENNReal (#30765) ESTIMATED CHANGES Modified Mathlib/Analysis/BoundedVariation.lean 2025-10-22 07:35:44 f8b9dcc refactor(Analysis/Calculus/IteratedDeriv/Defs): tweak statement of `iteratedDerivWithin_one` (#29324) This PR removes the `x` from `iteratedDerivWithin_one` to make it match `iteratedDerivWithin_zero`. ESTIMATED CHANGES Modified Mathlib/Analysis/Calculus/IteratedDeriv/Defs.lean +/- theorem iteratedDerivWithin_one 2025-10-22 03:58:15 d9d1cc1 chore: bump toolchain to v4.25.0-rc2 (#30772) ESTIMATED CHANGES Modified lake-manifest.json Modified lean-toolchain 2025-10-22 00:08:25 1bbe77d feat(Data/{Finset,Multiset}/Sort): give sort functions ≤ default argument (#27864) Changes the `Finset.sort` and `Multiset.sort` functions to take `≤` as the default relation argument. Then removes this argument where possible through the rest of the library. This involves switching the order of arguments, but I think this is fine, as this function is mostly called by dot notation anyway, and I think it is more typical for the first argument of such functions to have the type that matches the namespace. Thanks to @eric-wieser for suggesting this approach Zulip discussion: [#mathlib4 > Redefine {Fin/Multi}set.sort to take linear order?](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Redefine.20.7BFin.2FMulti.7Dset.2Esort.20to.20take.20linear.20order.3F/with/532398325) ESTIMATED CHANGES Modified Mathlib/Algebra/Polynomial/Basic.lean Modified Mathlib/Data/Finset/Sort.lean +/- theorem Finset.length_sort +/- theorem Finset.map_sort +/- theorem Finset.mem_sort +/- def Finset.sort +/- theorem Finset.sort_cons +/- theorem Finset.sort_empty +/- theorem Finset.sort_eq +/- theorem Finset.sort_insert +/- theorem Finset.sort_mk +/- theorem Finset.sort_nodup +/- theorem Finset.sort_perm_toList +/- theorem Finset.sort_range +/- theorem Finset.sort_singleton +/- theorem Finset.sort_sorted +/- theorem Finset.sort_sorted_gt +/- theorem Finset.sort_sorted_lt +/- theorem Finset.sort_toFinset +/- theorem Finset.sort_val +/- theorem Finset.sorted_zero_eq_min' +/- theorem Finset.sorted_zero_eq_min'_aux Modified Mathlib/Data/Multiset/Sort.lean +/- theorem Multiset.coe_sort +/- theorem Multiset.length_sort +/- theorem Multiset.map_sort +/- theorem Multiset.mem_sort +/- def Multiset.sort +/- theorem Multiset.sort_cons +/- theorem Multiset.sort_eq +/- theorem Multiset.sort_range +/- theorem Multiset.sort_singleton +/- theorem Multiset.sort_sorted +/- theorem Multiset.sort_zero Modified Mathlib/Data/Nat/Nth.lean Modified Mathlib/GroupTheory/Perm/Cycle/Factors.lean Modified Mathlib/GroupTheory/Perm/Sign.lean Modified Mathlib/Logic/Equiv/Finset.lean Modified Mathlib/Logic/Equiv/Multiset.lean Modified Mathlib/NumberTheory/ADEInequality.lean 2025-10-21 22:20:04 4994494 style(Algebra): fix whitespace (#30688) Extracted from #30658. Found by extending the commandStart linter to proof bodies. ESTIMATED CHANGES Modified Mathlib/Algebra/Category/ModuleCat/ChangeOfRings.lean +/- def ModuleCat.ExtendRestrictScalarsAdj.counit +/- def ModuleCat.ExtendRestrictScalarsAdj.unit Modified Mathlib/Algebra/Divisibility/Basic.lean Modified Mathlib/Algebra/EuclideanDomain/Basic.lean +/- theorem EuclideanDomain.mul_add_div_left Modified Mathlib/Algebra/Group/Commute/Defs.lean Modified Mathlib/Algebra/Group/Hom/CompTypeclasses.lean Modified Mathlib/Algebra/Group/Pointwise/Finset/Basic.lean Modified Mathlib/Algebra/Group/Semiconj/Basic.lean Modified Mathlib/Algebra/Group/Semiconj/Units.lean Modified Mathlib/Algebra/Homology/HomotopyCategory/HomComplex.lean +/- theorem CochainComplex.HomComplex.δ_neg Modified Mathlib/Algebra/Homology/HomotopyCategory/HomComplexShift.lean Modified Mathlib/Algebra/MvPolynomial/Equiv.lean Modified Mathlib/Algebra/Notation/Defs.lean Modified Mathlib/Algebra/Notation/Pi/Defs.lean +/- theorem Pi.div_apply Modified Mathlib/Algebra/Order/Antidiag/Pi.lean Modified Mathlib/Algebra/Polynomial/Laurent.lean Modified Mathlib/Algebra/Polynomial/Sequence.lean +/- theorem Polynomial.Sequence.basis_degree_strictMono +/- theorem Polynomial.Sequence.basis_natDegree_strictMono +/- theorem Polynomial.Sequence.degree_strictMono +/- theorem Polynomial.Sequence.natDegree_strictMono Modified Mathlib/Algebra/Polynomial/Smeval.lean +/- theorem Polynomial.smeval_X_pow_mul +/- theorem Polynomial.smeval_at_zero +/- theorem Polynomial.smeval_comp +/- theorem Polynomial.smeval_mul +/- theorem Polynomial.smeval_mul_X_pow +/- theorem Polynomial.smeval_neg +/- theorem Polynomial.smeval_pow +/- def Polynomial.smul_pow Modified Mathlib/Algebra/Quaternion.lean Modified Mathlib/Algebra/Ring/Ext.lean 2025-10-21 20:48:58 1f2d45d style(Order): fix whitespace (#30762) Extracted from #30658. Found by extending the commandStart linter to proof bodies. ESTIMATED CHANGES Modified Mathlib/Order/Bounds/Image.lean Modified Mathlib/Order/Filter/Cocardinal.lean Modified Mathlib/Order/Heyting/Basic.lean Modified Mathlib/Order/KonigLemma.lean Modified Mathlib/Order/Monotone/Basic.lean +/- theorem StrictMono.add_le_nat Modified Mathlib/Order/PiLex.lean Modified Mathlib/Order/RelClasses.lean Modified Mathlib/Order/SetNotation.lean +/- theorem Set.sSup_eq_sUnion Modified Mathlib/Order/WithBot.lean +/- theorem WithTop.coe_untopD_le 2025-10-21 20:48:55 95d8f63 chore(Analysis): remove unused variable declarations (#30761) ...and also remove a docstring containing only an empty header. ESTIMATED CHANGES Modified Mathlib/Analysis/BoundedVariation.lean 2025-10-21 20:48:53 6776574 style(RingTheory): fix whitespace (#30685) Extracted from #30658. Found by extending the commandStart linter to proof bodies. ESTIMATED CHANGES Modified Mathlib/RingTheory/AdicCompletion/LocalRing.lean Modified Mathlib/RingTheory/Binomial.lean +/- theorem Ring.multichoose_neg_self Modified Mathlib/RingTheory/DedekindDomain/Factorization.lean Modified Mathlib/RingTheory/DedekindDomain/SelmerGroup.lean +/- def IsDedekindDomain.HeightOneSpectrum.valuationOfNeZeroMod +/- def IsDedekindDomain.selmerGroup.fromUnitLift +/- def IsDedekindDomain.selmerGroup Modified Mathlib/RingTheory/DividedPowers/SubDPIdeal.lean Modified Mathlib/RingTheory/Flat/Domain.lean Modified Mathlib/RingTheory/Grassmannian.lean Modified Mathlib/RingTheory/HahnSeries/HEval.lean Modified Mathlib/RingTheory/Ideal/IsPrincipalPowQuotient.lean Modified Mathlib/RingTheory/Invariant/Basic.lean Modified Mathlib/RingTheory/LaurentSeries.lean Modified Mathlib/RingTheory/Localization/Defs.lean Modified Mathlib/RingTheory/MvPowerSeries/Evaluation.lean Modified Mathlib/RingTheory/MvPowerSeries/LinearTopology.lean Modified Mathlib/RingTheory/Nilpotent/Exp.lean Modified Mathlib/RingTheory/Norm/Transitivity.lean Modified Mathlib/RingTheory/Polynomial/Pochhammer.lean Modified Mathlib/RingTheory/SimpleModule/Isotypic.lean 2025-10-21 20:48:51 df90d22 feat(RingTheory): meta properties of bijective ring homomorphisms (#28695) In particular, we show that bijective is a property local on the (algebraic) source. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Algebra/Basic.lean + theorem Algebra.algebraMapSubmonoid_self Modified Mathlib/Algebra/Algebra/Hom.lean + theorem AlgHom.coe_toLinearMap Modified Mathlib/LinearAlgebra/TensorProduct/Basic.lean + theorem TensorProduct.map_bijective Modified Mathlib/RingTheory/LocalProperties/Exactness.lean + theorem bijective_of_isLocalization_of_span_eq_top + theorem injective_of_isLocalization_of_span_eq_top + theorem surjective_of_isLocalization_of_span_eq_top Modified Mathlib/RingTheory/Localization/Algebra.lean + theorem IsLocalization.mapExtendScalars_eq_toLinearMap_mapₐ + theorem IsLocalization.map_eq_toLinearMap_mapₐ + theorem IsLocalization.map_linearMap_eq_toLinearMap_mapₐ Modified Mathlib/RingTheory/Localization/Away/Basic.lean Modified Mathlib/RingTheory/Localization/Basic.lean Added Mathlib/RingTheory/RingHom/Bijective.lean + theorem RingHom.Bijective.containsIdentities + theorem RingHom.Bijective.isStableUnderBaseChange + theorem RingHom.Bijective.ofLocalizationSpan + theorem RingHom.Bijective.respectsIso + theorem RingHom.Bijective.stableUnderComposition Modified Mathlib/RingTheory/TensorProduct/Basic.lean + theorem Algebra.TensorProduct.includeLeft_bijective + theorem Algebra.TensorProduct.includeRight_bijective + theorem Algebra.TensorProduct.map_bijective 2025-10-21 20:13:55 dc03831 feat(LinearAlgebra/Matrix/PosDef): add `posSemidef_sum` (#29868) ESTIMATED CHANGES Modified Mathlib/Algebra/Star/BigOperators.lean + theorem isSelfAdjoint_sum Modified Mathlib/LinearAlgebra/Matrix/PosDef.lean + theorem Matrix.posDef_sum + theorem Matrix.posSemidef_sum 2025-10-21 18:22:15 3218e4a chore(AlgebraicGeometry): add missing lemmas about morphism classes (#30596) ESTIMATED CHANGES Modified Mathlib/AlgebraicGeometry/IdealSheaf/Subscheme.lean Modified Mathlib/AlgebraicGeometry/Morphisms/Affine.lean Modified Mathlib/AlgebraicGeometry/Morphisms/ClosedImmersion.lean + theorem AlgebraicGeometry.Scheme.Hom.app_surjective + theorem AlgebraicGeometry.isClosedImmersion_iff_isAffineHom Modified Mathlib/AlgebraicGeometry/Morphisms/Constructors.lean + theorem AlgebraicGeometry.AffineTargetMorphismProperty.diagonal_of_openCover_source Modified Mathlib/AlgebraicGeometry/Morphisms/Descent.lean Modified Mathlib/AlgebraicGeometry/Morphisms/Finite.lean + theorem AlgebraicGeometry.IsFinite.comp_iff + theorem AlgebraicGeometry.IsFinite.of_comp Modified Mathlib/AlgebraicGeometry/Morphisms/FinitePresentation.lean +/- theorem AlgebraicGeometry.Scheme.Hom.isConstructible_image +/- theorem AlgebraicGeometry.Scheme.Hom.isConstructible_preimage Modified Mathlib/AlgebraicGeometry/Morphisms/FiniteType.lean Modified Mathlib/AlgebraicGeometry/Morphisms/Flat.lean +/- theorem AlgebraicGeometry.Flat.epi_of_flat_of_surjective Modified Mathlib/AlgebraicGeometry/Morphisms/Immersion.lean +/- def AlgebraicGeometry.Scheme.Hom.coborderRange +/- theorem AlgebraicGeometry.Scheme.Hom.isLocallyClosed_range +/- def AlgebraicGeometry.Scheme.Hom.liftCoborder +/- theorem AlgebraicGeometry.Scheme.Hom.liftCoborder_ι Modified Mathlib/AlgebraicGeometry/Morphisms/Integral.lean + theorem AlgebraicGeometry.IsIntegralHom.comp_iff + theorem AlgebraicGeometry.IsIntegralHom.of_comp Modified Mathlib/AlgebraicGeometry/Morphisms/Proper.lean + theorem AlgebraicGeometry.IsProper.comp_iff + theorem AlgebraicGeometry.IsProper.of_comp - theorem AlgebraicGeometry.IsProper.of_comp_of_isSeparated Modified Mathlib/AlgebraicGeometry/Morphisms/QuasiCompact.lean - theorem AlgebraicGeometry.quasiCompact_over_affine_iff Modified Mathlib/AlgebraicGeometry/Morphisms/QuasiSeparated.lean +/- theorem AlgebraicGeometry.IsAffineOpen.isQuasiSeparated + theorem AlgebraicGeometry.QuasiCompact.of_comp +/- theorem AlgebraicGeometry.QuasiSeparated.of_comp + theorem AlgebraicGeometry.Scheme.quasiSeparatedSpace_of_isOpenCover +/- theorem AlgebraicGeometry.quasiCompact_affineProperty_iff_quasiSeparatedSpace + theorem AlgebraicGeometry.quasiCompact_iff_compactSpace - theorem AlgebraicGeometry.quasiSeparatedSpace_iff_affine + theorem AlgebraicGeometry.quasiSeparatedSpace_iff_forall_affineOpens +/- theorem AlgebraicGeometry.quasiSeparatedSpace_of_quasiSeparated + theorem AlgebraicGeometry.quasiSeparated_iff_quasiSeparatedSpace - theorem AlgebraicGeometry.quasiSeparated_over_affine_iff Modified Mathlib/AlgebraicGeometry/Morphisms/Separated.lean +/- theorem AlgebraicGeometry.IsAffineHom.comp_iff + theorem AlgebraicGeometry.IsClosedImmersion.comp_iff +/- theorem AlgebraicGeometry.isSeparated_of_injective Modified Mathlib/AlgebraicGeometry/Morphisms/UniversallyClosed.lean Modified Mathlib/AlgebraicGeometry/Noetherian.lean Modified Mathlib/AlgebraicGeometry/Pullbacks.lean +/- def AlgebraicGeometry.Scheme.Pullback.openCoverOfBase' +/- def AlgebraicGeometry.Scheme.Pullback.openCoverOfBase +/- def AlgebraicGeometry.Scheme.Pullback.openCoverOfLeft +/- def AlgebraicGeometry.Scheme.Pullback.openCoverOfLeftRight +/- def AlgebraicGeometry.Scheme.Pullback.openCoverOfRight Modified Mathlib/AlgebraicGeometry/QuasiAffine.lean Modified Mathlib/AlgebraicGeometry/ValuativeCriterion.lean 2025-10-21 16:00:25 a194863 CI: remove deprecations automatically (#30070) This workflow automates the removal of deprecated declarations. The action is currently configured to run once a week to automatically remove all deprecations older than 6 months. This is managed by the `remove_deprecated_decls` action and depends on the two files `Mathlib/Tactic/Linter/CommandRanges.lean` and `Mathlib/Tactic/Linter/FindDeprecations.lean`. The action can be manually triggered and there is the option of passing two dates in `YYYY-MM-DD` format or also the more human "3 months ago", as long as it is a valid input for `date -d`. The lean files take care of identifying the declarations with the deprecated attribute whose `since` field is between the given ranges. Those declarations then get automatically removed and, if there are no errors, the bot creates a PR with the changes. These PRs then go, naturally, through CI, where issues related to having removed the deprecated declarations will be picked up. The bot also posts a comment on Zulip mentioning when the PR has been opened. Zulip thread: [#mathlib reviewers > auto-removing oudated deprecations](https://leanprover.zulipchat.com/#narrow/channel/345428-mathlib-reviewers/topic/auto-removing.20oudated.20deprecations/with/541052056) (in reviewers channel) ESTIMATED CHANGES Added .github/workflows/remove_deprecated_decls.yml Modified Mathlib.lean Modified Mathlib/Tactic.lean Added Mathlib/Tactic/Linter/CommandRanges.lean + def Mathlib.Linter.CommandRanges.commandRangesLinter Added Mathlib/Tactic/Linter/FindDeprecations.lean + structure Mathlib.Tactic.DeprecationInfo + def Mathlib.Tactic.addAfterImports + def Mathlib.Tactic.deprecatedHashMap + def Mathlib.Tactic.getDeprecatedInfo + def Mathlib.Tactic.getPosAfterImports + def Mathlib.Tactic.importLT + def Mathlib.Tactic.parseLine + def Mathlib.Tactic.removeDeprecations + def Mathlib.Tactic.removeRanges + def Mathlib.Tactic.repos + def Mathlib.Tactic.rewriteOneFile Added MathlibTest/FindDeprecations.lean 2025-10-21 15:08:16 409ca75 feat: define `CFC.abs`, the absolute value in a C⋆-algebra (#30314) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Star/Basic.lean Added Mathlib/Analysis/SpecialFunctions/ContinuousFunctionalCalculus/Abs.lean + theorem CFC.abs_add_self + theorem CFC.abs_algebraMap + theorem CFC.abs_algebraMap_nnreal + theorem CFC.abs_eq_cfc_norm + theorem CFC.abs_eq_cfcₙ_coe_norm + theorem CFC.abs_eq_cfcₙ_norm + theorem CFC.abs_eq_zero_iff + theorem CFC.abs_intCast + theorem CFC.abs_mul_abs + theorem CFC.abs_mul_self + theorem CFC.abs_natCast + theorem CFC.abs_neg + theorem CFC.abs_nnrpow + theorem CFC.abs_nnrpow_two + theorem CFC.abs_nnrpow_two_mul + theorem CFC.abs_nonneg + theorem CFC.abs_ofNat + theorem CFC.abs_of_nonneg + theorem CFC.abs_of_nonpos + theorem CFC.abs_one + theorem CFC.abs_smul + theorem CFC.abs_smul_nonneg + theorem CFC.abs_sq + theorem CFC.abs_star + theorem CFC.abs_sub_self + theorem CFC.abs_zero + theorem CFC.cfcAbs_cfcAbs + theorem CFC.commute_abs_self + theorem CFC.norm_abs + theorem CFC.quasispectrum_abs + theorem CFC.spectrum_abs + theorem Commute.cfcAbs_cfcAbs + theorem Commute.cfcAbs_left + theorem Commute.cfcAbs_mul_eq + theorem Commute.cfcAbs_right + theorem cfc_comp_norm + theorem cfcₙ_comp_norm + theorem cfcₙ_norm_nonneg + theorem cfcₙ_norm_sq_nonneg 2025-10-21 15:08:14 7072112 feat(SkewMonoidAlgebra): Lifts for skew monoid algebras (#29314) Lemmas about different kinds of "lifts" to `SkewMonoidAlgebra` - Similar in spirit to the MonoidAlgebra.Lift file. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/SkewMonoidAlgebra/Basic.lean Added Mathlib/Algebra/SkewMonoidAlgebra/Lift.lean + theorem SkewMonoidAlgebra.coeff_equivMapDomain + def SkewMonoidAlgebra.domCongr + def SkewMonoidAlgebra.domCongrAlg + theorem SkewMonoidAlgebra.domCongrAlg_apply + theorem SkewMonoidAlgebra.domCongrAlg_toAlgHom + theorem SkewMonoidAlgebra.domCongr_refl + theorem SkewMonoidAlgebra.domCongr_single + theorem SkewMonoidAlgebra.domCongr_support + theorem SkewMonoidAlgebra.domCongr_symm + def SkewMonoidAlgebra.domLCongr + def SkewMonoidAlgebra.equivMapDomain + theorem SkewMonoidAlgebra.equivMapDomain_eq_mapDomain + theorem SkewMonoidAlgebra.equivMapDomain_refl + theorem SkewMonoidAlgebra.equivMapDomain_single + theorem SkewMonoidAlgebra.equivMapDomain_trans + def SkewMonoidAlgebra.lift + def SkewMonoidAlgebra.liftNCAlgHom + theorem SkewMonoidAlgebra.lift_apply' + theorem SkewMonoidAlgebra.lift_apply + theorem SkewMonoidAlgebra.lift_def + theorem SkewMonoidAlgebra.lift_of + theorem SkewMonoidAlgebra.lift_single + theorem SkewMonoidAlgebra.lift_symm_apply + theorem SkewMonoidAlgebra.lift_unique' + theorem SkewMonoidAlgebra.lift_unique + def SkewMonoidAlgebra.mapDomainAlgHom + def SkewMonoidAlgebra.submoduleOfSmulMem + theorem SkewMonoidAlgebra.toFinsupp_equivMapDomain 2025-10-21 15:08:11 58e54de chore(Analysis/Fourier): golf entire `fourier_zero` and `fourier_zero'` using `simp` (#28260) ESTIMATED CHANGES Modified Mathlib/Analysis/Fourier/AddCircle.lean +/- theorem fourier_zero' 2025-10-21 14:19:42 2c2e856 feat: remove unnecessary nonempty assumption at expect lemmas (#30502) feat: Dropped unnecessary `Nonempty` assumptions in `expect_eq_zero_iff_of_nonpos` and `expect_eq_zero_iff_of_nonneg` (the `Finset` and `Fintype` versions) ESTIMATED CHANGES Modified Mathlib/Algebra/Order/BigOperators/Expect.lean +/- theorem Finset.expect_eq_zero_iff_of_nonneg +/- theorem Finset.expect_eq_zero_iff_of_nonpos +/- theorem Fintype.expect_eq_zero_iff_of_nonneg +/- theorem Fintype.expect_eq_zero_iff_of_nonpos 2025-10-21 14:19:39 c59d921 feat: application of twice uncurried differential form (#30491) We add a formula that expresses the value of the twice uncurried&alternatized form as a sum of terms of the form `f a b u - f b a u`. ESTIMATED CHANGES Modified Mathlib/Algebra/BigOperators/Fin.lean + theorem Fin.prod_prod_eq_prod_triangle_mul Modified Mathlib/LinearAlgebra/Alternating/Uncurry/Fin.lean + theorem AlternatingMap.alternatizeUncurryFin_alternatizeUncurryFinLM_comp_apply 2025-10-21 13:36:28 726f8bc chore(CompactlySupported): rename ContinuousMap.liftCompactlySupported (#30726) ESTIMATED CHANGES Modified Mathlib/Topology/ContinuousMap/CompactlySupported.lean - def CompactlySupportedContinuousMap.ContinuousMap.liftCompactlySupported + def CompactlySupportedContinuousMap.continuousMapEquiv 2025-10-21 13:36:26 af5e957 feat(Algebra/Group/Subgroup): membership of toAddSubgroup etc (#30461) Some simp lemmas for statements of the form `g ∈ Subgroup.toAddSubgroup H` ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Subgroup/Lattice.lean + theorem AddSubgroup.mem_toSubgroup' + theorem Additive.mem_toAddSubgroup + theorem Multiplicative.mem_toSubgroup + theorem Subgroup.mem_toAddSubgroup' 2025-10-21 12:12:35 b758e76 chore: remove redundant fields from instances (#30734) This PR removes all occurrences of patterns like `mul := (· * ·)` in definitions of instances. These patterns are unneccessary, and sometimes they cause the instance to behave inefficiently during unification. I have no idea why these patterns were there in the first place. Maybe it was a Lean3 thing? As a result, we get a pretty good speedup: 0.63% less instructions. ESTIMATED CHANGES Modified Counterexamples/LinearOrderWithPosMulPosEqZero.lean Modified Counterexamples/ZeroDivisorsInAddMonoidAlgebras.lean Modified Mathlib/Algebra/Algebra/Basic.lean Modified Mathlib/Algebra/Algebra/RestrictScalars.lean Modified Mathlib/Algebra/GradedMonoid.lean Modified Mathlib/Algebra/Group/Action/Defs.lean Modified Mathlib/Algebra/Group/Action/Hom.lean Modified Mathlib/Algebra/Group/Action/Opposite.lean Modified Mathlib/Algebra/Group/Action/Option.lean Modified Mathlib/Algebra/Group/Action/Pi.lean Modified Mathlib/Algebra/Group/InjSurj.lean Modified Mathlib/Algebra/Group/Pointwise/Set/Basic.lean Modified Mathlib/Algebra/Group/TypeTags/Basic.lean Modified Mathlib/Algebra/Group/WithOne/Defs.lean Modified Mathlib/Algebra/GroupWithZero/Action/Defs.lean Modified Mathlib/Algebra/GroupWithZero/Action/Units.lean Modified Mathlib/Algebra/GroupWithZero/Associated.lean Modified Mathlib/Algebra/GroupWithZero/InjSurj.lean Modified Mathlib/Algebra/Module/GradedModule.lean Modified Mathlib/Algebra/Module/LocalizedModule/Basic.lean Modified Mathlib/Algebra/Module/Submodule/Pointwise.lean Modified Mathlib/Algebra/Module/ULift.lean Modified Mathlib/Algebra/Order/Interval/Basic.lean Modified Mathlib/Algebra/Order/Ring/WithTop.lean Modified Mathlib/Algebra/Order/UpperLower.lean Modified Mathlib/Algebra/Quaternion.lean Modified Mathlib/Algebra/Ring/BooleanRing.lean Modified Mathlib/Algebra/Ring/Defs.lean Modified Mathlib/Algebra/Ring/Hom/Defs.lean Modified Mathlib/Algebra/Ring/InjSurj.lean Modified Mathlib/Algebra/Ring/Pi.lean Modified Mathlib/Algebra/RingQuot.lean Modified Mathlib/Algebra/Symmetrized.lean Modified Mathlib/Algebra/TrivSqZeroExt.lean Modified Mathlib/Algebra/Tropical/Basic.lean Modified Mathlib/CategoryTheory/Abelian/NonPreadditive.lean Modified Mathlib/CategoryTheory/Preadditive/OfBiproducts.lean Modified Mathlib/Combinatorics/Enumerative/IncidenceAlgebra.lean Modified Mathlib/Computability/Language.lean Modified Mathlib/Data/Complex/Basic.lean Modified Mathlib/Data/ENNReal/Action.lean Modified Mathlib/Data/Finsupp/SMulWithZero.lean Modified Mathlib/Data/Matrix/Mul.lean Modified Mathlib/Data/NNReal/Defs.lean Modified Mathlib/Data/Nat/PartENat.lean Modified Mathlib/Data/Num/Lemmas.lean Modified Mathlib/Data/Num/ZNum.lean Modified Mathlib/Data/Rat/Defs.lean Modified Mathlib/Data/Real/Basic.lean Modified Mathlib/Data/Sign/Defs.lean Modified Mathlib/FieldTheory/PerfectClosure.lean Modified Mathlib/FieldTheory/RatFunc/Basic.lean Modified Mathlib/Geometry/Manifold/Algebra/SmoothFunctions.lean Modified Mathlib/GroupTheory/FreeGroup/Basic.lean Modified Mathlib/GroupTheory/GroupAction/SubMulAction.lean Modified Mathlib/GroupTheory/GroupAction/SubMulAction/Pointwise.lean Modified Mathlib/LinearAlgebra/Complex/Module.lean Modified Mathlib/LinearAlgebra/LinearPMap.lean Modified Mathlib/LinearAlgebra/PiTensorProduct.lean Modified Mathlib/LinearAlgebra/Ray.lean Modified Mathlib/LinearAlgebra/TensorProduct/Basic.lean Modified Mathlib/NumberTheory/Dioph.lean Modified Mathlib/NumberTheory/MulChar/Basic.lean Modified Mathlib/NumberTheory/Zsqrtd/Basic.lean Modified Mathlib/Order/Filter/Pointwise.lean Modified Mathlib/RingTheory/GradedAlgebra/HomogeneousLocalization.lean Modified Mathlib/RingTheory/HahnSeries/Addition.lean Modified Mathlib/RingTheory/HahnSeries/Summable.lean Modified Mathlib/RingTheory/MvPowerSeries/Basic.lean Modified Mathlib/SetTheory/Cardinal/Order.lean Modified Mathlib/SetTheory/Ordinal/Arithmetic.lean Modified Mathlib/SetTheory/Ordinal/Basic.lean Modified Mathlib/SetTheory/Ordinal/NaturalOps.lean Modified Mathlib/SetTheory/Ordinal/Notation.lean Modified Mathlib/SetTheory/Surreal/Basic.lean Modified Mathlib/Topology/Algebra/Module/LinearMap.lean Modified Mathlib/Topology/Algebra/UniformMulAction.lean Modified Mathlib/Topology/ContinuousMap/Algebra.lean Modified MathlibTest/Simps.lean +/- def coercing.bar +/- def coercing.new_bar 2025-10-21 12:12:33 91a64a7 fix(AlgebraicTopology/SimplexCategory/GeneratorsRelations): ungrind `IsAdmissible.singleton` (#30732) As pointed in the thread for #30586, the attribute `[grind →]` on `IsAdmissible.singleton` causes unwanted instantiations as the only hypothesis is too generic. The lemma is un-grinded and the only proof that uses it now calls it explicitly. ESTIMATED CHANGES Modified Mathlib/AlgebraicTopology/SimplexCategory/GeneratorsRelations/NormalForms.lean 2025-10-21 12:12:31 24c5360 doc: fix recurring instances of "this files" (#30719) I noticed that there were a lot of instances of the typo "this files" in the repo. I fixed these while doing some drive-by typo fixes in the files I touched while I was at it. The drive-by fixes are due to Codex and consist of: - Minor textual tweaks to improve flow of sentences. - Punctuation, like adding commas and full stops where appropriate in sentences. - Trimming superfluous white space and adding missing white space. - Swapping a `∪`-operator for a `∩`, where the latter was intended. - Swapping `𝒱(α, β, 𝔖 uβ)` for `𝒱(α, β, 𝔖, uβ)` where the latter was intended. ESTIMATED CHANGES Modified Mathlib/Algebra/Homology/HomotopyCategory/ShiftSequence.lean Modified Mathlib/Algebra/Order/Group/Opposite.lean Modified Mathlib/Algebra/Order/Ring/Opposite.lean Modified Mathlib/Analysis/Convex/Star.lean Modified Mathlib/Analysis/LocallyConvex/Barrelled.lean Modified Mathlib/Analysis/LocallyConvex/ContinuousOfBounded.lean Modified Mathlib/CategoryTheory/Limits/ConeCategory.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Pullback/Categorical/CatCospanTransform.lean Modified Mathlib/CategoryTheory/Triangulated/TStructure/Basic.lean Modified Mathlib/Combinatorics/Quiver/Push.lean Modified Mathlib/Condensed/Light/Module.lean +/- def LightCondensed.freeForgetAdjunction Modified Mathlib/Condensed/Module.lean Modified Mathlib/Data/Finsupp/Weight.lean Modified Mathlib/Data/List/Lattice.lean Modified Mathlib/Data/Sym/Sym2/Order.lean Modified Mathlib/GroupTheory/QuotientGroup/Basic.lean Modified Mathlib/LinearAlgebra/Matrix/SemiringInverse.lean Modified Mathlib/LinearAlgebra/SesquilinearForm/Basic.lean Modified Mathlib/Logic/Equiv/PartialEquiv.lean Modified Mathlib/Probability/ProbabilityMassFunction/Integrals.lean Modified Mathlib/RingTheory/MvPowerSeries/PiTopology.lean Modified Mathlib/RingTheory/TensorProduct/Quotient.lean Modified Mathlib/Tactic/HaveI.lean Modified Mathlib/Topology/Algebra/Group/ClosedSubgroup.lean Modified Mathlib/Topology/Algebra/GroupCompletion.lean Modified Mathlib/Topology/Algebra/Module/ClosedSubmodule.lean Modified Mathlib/Topology/Algebra/Nonarchimedean/Bases.lean Modified Mathlib/Topology/Algebra/OpenSubgroup.lean Modified Mathlib/Topology/Algebra/UniformFilterBasis.lean Modified Mathlib/Topology/Algebra/UniformRing.lean Modified Mathlib/Topology/Category/LightProfinite/Sequence.lean Modified Mathlib/Topology/Category/TopCat/Sphere.lean Modified Mathlib/Topology/MetricSpace/Equicontinuity.lean Modified Mathlib/Topology/MetricSpace/HausdorffDistance.lean Modified Mathlib/Topology/UniformSpace/Separation.lean Modified Mathlib/Topology/UniformSpace/UniformConvergenceTopology.lean 2025-10-21 12:12:29 e78e779 feat(NumberField/Cyclotomic): splitting of the prime `p` in the `p^k`-th cyclotomic field (#30682) The prime ideal above the prime `p` in the `p^k`-th cyclotomic field is totally ramified. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/NumberTheory/NumberField/Cyclotomic/Basic.lean + theorem IsCyclotomicExtension.Rat.finrank Added Mathlib/NumberTheory/NumberField/Cyclotomic/Ideal.lean + theorem IsCyclotomicExtension.Rat.absNorm_span_zeta_sub_one + theorem IsCyclotomicExtension.Rat.associated_norm_zeta_sub_one + theorem IsCyclotomicExtension.Rat.eq_span_zeta_sub_one_of_liesOver + theorem IsCyclotomicExtension.Rat.inertiaDeg_eq_of_prime_pow + theorem IsCyclotomicExtension.Rat.inertiaDeg_span_zeta_sub_one + theorem IsCyclotomicExtension.Rat.liesOver_span_zeta_sub_one + theorem IsCyclotomicExtension.Rat.map_eq_span_zeta_sub_one_pow + theorem IsCyclotomicExtension.Rat.ncard_primesOver_of_prime_pow + theorem IsCyclotomicExtension.Rat.p_mem_span_zeta_sub_one + theorem IsCyclotomicExtension.Rat.ramificationIdx_eq_of_prime_pow + theorem IsCyclotomicExtension.Rat.ramificationIdx_span_zeta_sub_one + theorem IsCyclotomicExtension.Rat.span_zeta_sub_one_ne_bot Modified Mathlib/NumberTheory/RamificationInertia/Basic.lean + theorem Ideal.absNorm_eq_pow_inertiaDeg' Modified Mathlib/RingTheory/RootsOfUnity/CyclotomicUnits.lean + theorem IsPrimitiveRoot.associated_map_sub_one_map_sub_one + theorem IsPrimitiveRoot.associated_sub_one_map_sub_one 2025-10-21 12:12:27 6880a16 feat(LinearAlgebra/AffineSpace/FiniteDimensional): `finiteDimensional_direction_affineSpan_insert_set` (#30521) Add an instance ```lean instance finiteDimensional_direction_affineSpan_insert_set (s : Set P) [FiniteDimensional k (affineSpan k s).direction] (p : P) : FiniteDimensional k (affineSpan k (insert p s)).direction := by ``` which is what is needed in a Euclidean context to be able to talk about an `orthogonalProjection` onto a `line` (i.e. the affine span of two points). ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/AffineSpace/FiniteDimensional.lean 2025-10-21 12:12:25 d865df9 feat: `empty_ne_singleton` (#30493) This slightly strengthens our simp set. ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Group/Finset.lean Modified Mathlib/Data/Finset/Insert.lean + theorem Finset.empty_ne_singleton Modified Mathlib/Data/Set/Insert.lean + theorem Set.empty_ne_singleton 2025-10-21 12:12:23 7702f1c chore(Algebra/Order/BigOperators/Group/List): remove commutativity assumptions (#30488) ESTIMATED CHANGES Modified Mathlib/Algebra/Order/BigOperators/Group/List.lean +/- theorem List.monotone_prod_take +/- theorem List.prod_eq_one_iff 2025-10-21 12:12:21 b72a2be feat(CategoryTheory): local objects with respect to a MorphismProperty (#30472) Given `W : MorphismProperty C`, we define `W.isLocal : ObjectProperty C` which is the property of objects `Z` such that for any `f : X ⟶ Y` satisfying `W`, the precomposition with `f` gives a bijection `(Y ⟶ Z) ≃ (X ⟶ Z)`. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/CategoryTheory/Localization/Bousfield.lean + theorem CategoryTheory.Localization.LeftBousfield.galoisConnection + theorem CategoryTheory.Localization.LeftBousfield.le_W_iff + theorem CategoryTheory.MorphismProperty.le_leftBousfieldW_isLocal + theorem CategoryTheory.ObjectProperty.le_isLocal_W Added Mathlib/CategoryTheory/ObjectProperty/Local.lean + def CategoryTheory.MorphismProperty.isLocal + theorem CategoryTheory.MorphismProperty.isLocal_iff 2025-10-21 12:12:19 2785cc1 feat(CategoryTheory/Limits): sections of functors and precomposition with initial functors (#30403) Given `F : C ⥤ D` and `P : D ⥤ Type w`, we define a map `sectionsPrecomp F : P.sections → (F ⋙ P).sections` and show that it is a bijection when `F` is initial. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Limits/Final/Type.lean + theorem CategoryTheory.Functor.bijective_sectionsPrecomp + def CategoryTheory.Functor.sectionsPrecomp 2025-10-21 12:12:17 f37cfa7 feat(RingTheory/RootsOfUnity): `rootsOfUnity_inf_rootsOfUnity` (#30264) towards torsion subgroup as union of roots of unity of prime powers ESTIMATED CHANGES Modified Mathlib/RingTheory/RootsOfUnity/Basic.lean + theorem disjoint_rootsOfUnity_of_coprime + theorem rootsOfUnity_inf_rootsOfUnity 2025-10-21 12:12:15 c3836ff feat(CategoryTheory/Limits/Opposites) : add opposites of coforks and forks (#30200) This PR adds missing definitions surrounding `op` and `unop` of coforks and forks. In `CategoryTheory/Limits/Shapes/Equalizers.lean`: - `CoforkOfπ.ext` : Adds an extensionality `def` corresponding to the existing `ForkOfι.ext` In `CategoryTheory/Limits/Opposites.lean`: - `parallelPairOpIso`: the dual behavior for `parallelPair` (similar to `spanOp`, `cospanOp`) - `pullbackIsoOpPushout`: the dual version of the existing `pullbackIsoUnopPushout` - `Cofork.unop`, `Cofork.op`, `Fork.unop`, `Fork.op`: define `unop` and `op` of `Cofork` and `Fork` - `isColimitEquivIsLimitOp`: A cofork in `C` is a colimit if and only if its opposite is limit in `Cᵒᵖ` - `isColimitOfπEquivIsLimitOp`: `Cofork.ofπ π` is colimit in `C` if and only if `Fork.ofι π.op` is limit in `Cᵒᵖ` - `isColimitCoforkPushoutEquivIsColimitForkOpPullback`: `Cofork.ofπ f pullback.condition` is colimit in `C` if and only if `Fork.ofι f.op pushout.condition` is limit in `Cᵒᵖ`. Relevant dual statements have also been added. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Limits/Shapes/Equalizers.lean + def CategoryTheory.Limits.CoforkOfπ.ext + theorem CategoryTheory.Limits.walkingParallelPairOpEquiv_counitIso_hom_app_op_one + theorem CategoryTheory.Limits.walkingParallelPairOpEquiv_counitIso_hom_app_op_zero + theorem CategoryTheory.Limits.walkingParallelPairOpEquiv_counitIso_inv_app_op_one + theorem CategoryTheory.Limits.walkingParallelPairOpEquiv_counitIso_inv_app_op_zero + theorem CategoryTheory.Limits.walkingParallelPairOpEquiv_unitIso_hom_app_one + theorem CategoryTheory.Limits.walkingParallelPairOpEquiv_unitIso_hom_app_zero + theorem CategoryTheory.Limits.walkingParallelPairOpEquiv_unitIso_inv_app_one + theorem CategoryTheory.Limits.walkingParallelPairOpEquiv_unitIso_inv_app_zero Modified Mathlib/CategoryTheory/Limits/Shapes/Opposites/Equalizers.lean + def CategoryTheory.Limits.Cofork.isColimitCoforkPushoutEquivIsColimitForkOpPullback + def CategoryTheory.Limits.Cofork.isColimitCoforkPushoutEquivIsColimitForkUnopPullback + def CategoryTheory.Limits.Cofork.isColimitEquivIsLimitOp + def CategoryTheory.Limits.Cofork.isColimitEquivIsLimitUnop + def CategoryTheory.Limits.Cofork.isColimitOfπEquivIsLimitOp + def CategoryTheory.Limits.Cofork.isColimitOfπEquivIsLimitUnop + def CategoryTheory.Limits.Cofork.ofπOpIsoOfι + def CategoryTheory.Limits.Cofork.ofπUnopIsoOfι + def CategoryTheory.Limits.Cofork.op + def CategoryTheory.Limits.Cofork.opUnopIso + theorem CategoryTheory.Limits.Cofork.op_unop_π + theorem CategoryTheory.Limits.Cofork.op_ι + theorem CategoryTheory.Limits.Cofork.op_π_app_one + theorem CategoryTheory.Limits.Cofork.op_π_app_zero + def CategoryTheory.Limits.Cofork.unop + def CategoryTheory.Limits.Cofork.unopOpIso + theorem CategoryTheory.Limits.Cofork.unop_op_π + theorem CategoryTheory.Limits.Cofork.unop_ι + theorem CategoryTheory.Limits.Cofork.unop_π_app_one + theorem CategoryTheory.Limits.Cofork.unop_π_app_zero + def CategoryTheory.Limits.Fork.isLimitEquivIsColimitOp + def CategoryTheory.Limits.Fork.isLimitEquivIsColimitUnop + def CategoryTheory.Limits.Fork.isLimitForkPushoutEquivIsColimitForkOpPullback + def CategoryTheory.Limits.Fork.isLimitForkPushoutEquivIsColimitForkUnopPullback + def CategoryTheory.Limits.Fork.isLimitOfιEquivIsColimitOp + def CategoryTheory.Limits.Fork.isLimitOfιEquivIsColimitUnop + def CategoryTheory.Limits.Fork.ofιOpIsoOfπ + def CategoryTheory.Limits.Fork.ofιUnopIsoOfπ + def CategoryTheory.Limits.Fork.op + def CategoryTheory.Limits.Fork.opUnopIso + theorem CategoryTheory.Limits.Fork.op_unop_ι + theorem CategoryTheory.Limits.Fork.op_ι_app_one + theorem CategoryTheory.Limits.Fork.op_ι_app_zero + theorem CategoryTheory.Limits.Fork.op_π + def CategoryTheory.Limits.Fork.unop + def CategoryTheory.Limits.Fork.unopOpIso + theorem CategoryTheory.Limits.Fork.unop_op_ι + theorem CategoryTheory.Limits.Fork.unop_ι_app_one + theorem CategoryTheory.Limits.Fork.unop_ι_app_zero + theorem CategoryTheory.Limits.Fork.unop_π + def CategoryTheory.Limits.opParallelPairIso + theorem CategoryTheory.Limits.opParallelPairIso_hom_app_one + theorem CategoryTheory.Limits.opParallelPairIso_hom_app_zero + theorem CategoryTheory.Limits.opParallelPairIso_inv_app_one + theorem CategoryTheory.Limits.opParallelPairIso_inv_app_zero + def CategoryTheory.Limits.parallelPairOpIso + theorem CategoryTheory.Limits.parallelPairOpIso_hom_app_one + theorem CategoryTheory.Limits.parallelPairOpIso_hom_app_zero + theorem CategoryTheory.Limits.parallelPairOpIso_inv_app_one + theorem CategoryTheory.Limits.parallelPairOpIso_inv_app_zero Modified Mathlib/CategoryTheory/Limits/Shapes/Opposites/Pullbacks.lean - def CategoryTheory.Limits.PullbackCone.opUnop + def CategoryTheory.Limits.PullbackCone.opUnopIso - def CategoryTheory.Limits.PullbackCone.unopOp + def CategoryTheory.Limits.PullbackCone.unopOpIso - def CategoryTheory.Limits.PushoutCocone.opUnop + def CategoryTheory.Limits.PushoutCocone.opUnopIso - def CategoryTheory.Limits.PushoutCocone.unopOp + def CategoryTheory.Limits.PushoutCocone.unopOpIso + theorem CategoryTheory.Limits.pullbackIsoOpPushout_hom_inl + theorem CategoryTheory.Limits.pullbackIsoOpPushout_hom_inr + theorem CategoryTheory.Limits.pullbackIsoOpPushout_inv_fst + theorem CategoryTheory.Limits.pullbackIsoOpPushout_inv_snd + theorem CategoryTheory.Limits.pushoutIsoOpPullback_inl_hom + theorem CategoryTheory.Limits.pushoutIsoOpPullback_inr_hom + theorem CategoryTheory.Limits.pushoutIsoOpPullback_inv_fst + theorem CategoryTheory.Limits.pushoutIsoOpPullback_inv_snd 2025-10-21 12:12:13 c090988 refactor: generalize LinearMap.toMatrix₂ and Matrix.toLinearMap₂ to sesquilinear forms (#30108) Generalize [LinearMap.toMatrix₂](https://leanprover-community.github.io/mathlib4_docs/Mathlib/LinearAlgebra/Matrix/SesquilinearForm.html#LinearMap.toMatrix%E2%82%82) to take a sesquilinear map as input. Create `Matrix.toLinearMapₛₗ₂` to generalize [Matrix.toLinearMap₂](https://leanprover-community.github.io/mathlib4_docs/Mathlib/LinearAlgebra/Matrix/SesquilinearForm.html#Matrix.toLinearMap%E2%82%82) to sesquilinear maps, while still keeping [Matrix.toLinearMap₂](https://leanprover-community.github.io/mathlib4_docs/Mathlib/LinearAlgebra/Matrix/SesquilinearForm.html#Matrix.toLinearMap%E2%82%82) to avoid specifying `RingHom.id R` in the bilinear case. Only do so for maps which are semilinear in the first coordinate to avoid specifying `RingHom.id R` for the second homomorphism. ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/Matrix/SesquilinearForm.lean +/- theorem LinearMap.toMatrix₂Aux_eq +/- theorem LinearMap.toMatrix₂_apply + theorem LinearMap.toMatrix₂_symm' + theorem LinearMap.toMatrix₂_toLinearMapₛₗ₂ + theorem Matrix.toLinearMap₂_apply_basis + theorem Matrix.toLinearMapₛₗ₂_apply + theorem Matrix.toLinearMapₛₗ₂_apply_basis + theorem Matrix.toLinearMapₛₗ₂_symm + theorem Matrix.toLinearMapₛₗ₂_toMatrix₂ 2025-10-21 12:12:10 df398e5 feat(FieldTheory/RatFunc/Basic): add characteristic instances for `RatFunc` (#29356) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Algebra/Basic.lean + theorem algebraMap.coe_eq_zero_iff + theorem algebraMap.coe_inj + theorem algebraMap.lift_map_eq_zero_iff Modified Mathlib/Algebra/Algebra/Field.lean - theorem algebraMap.coe_inj - theorem algebraMap.lift_map_eq_zero_iff Added Mathlib/Algebra/Algebra/IsSimpleRing.lean Modified Mathlib/Algebra/CharP/Algebra.lean + theorem ExpChar.of_injective_algebraMap' +/- theorem charP_of_injective_algebraMap' Modified Mathlib/Analysis/RCLike/Basic.lean Modified Mathlib/FieldTheory/Differential/Liouville.lean Modified Mathlib/FieldTheory/Finite/Basic.lean Modified Mathlib/FieldTheory/Finite/GaloisField.lean Modified Mathlib/FieldTheory/RatFunc/Basic.lean Modified Mathlib/RingTheory/Localization/FractionRing.lean 2025-10-21 11:51:10 f07bd03 feat(AlgebraicTopology): the type of nondegenerate simplices not in a given subcomplex (#28330) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/AlgebraicTopology/SimplicialSet/NonDegenerateSimplices.lean + theorem SSet.N.ext_iff Added Mathlib/AlgebraicTopology/SimplicialSet/NonDegenerateSimplicesSubcomplex.lean + theorem SSet.Subcomplex.N.cast_eq_self + theorem SSet.Subcomplex.N.ext_iff + theorem SSet.Subcomplex.N.mk'_surjective + def SSet.Subcomplex.N.mk + theorem SSet.Subcomplex.N.mk_surjective + structure SSet.Subcomplex.N 2025-10-21 11:18:25 7f43b3a feat(GroupTheory/FreeGroup): add cyclic reduction of words (#27673) This PR adds the definition of `reduceCyclically`. This function produces a subword of a word `w` by cancelling the first and last letters of `w` as long as possible. If `w` is reduced, the resulting word will be cyclically reduced. It is a part of a series of PR on the theory of cyclically reduced words. Upstreamed from the [EquationalTheories](https://github.com/teorth/equational_theories) project. - [x] depends on: #25966 - [x] depends on: #27672 ESTIMATED CHANGES Modified Mathlib/GroupTheory/FreeGroup/CyclicallyReduced.lean - theorem FreeGroup.IsCyclicallyReduced.nil - theorem FreeGroup.IsCyclicallyReduced.singleton + theorem FreeGroup.reduceCyclically.conj_conjugator_reduceCyclically + def FreeGroup.reduceCyclically.conjugator + theorem FreeGroup.reduceCyclically.isCyclicallyReduced + def FreeGroup.reduceCyclically 2025-10-21 22:10:07+11:00 da2fd30 chore: fix bad merge of bump/v4.25.0 (#30748) ESTIMATED CHANGES Modified Cache/IO.lean +/- def Cache.IO.rootHashGeneration 2025-10-21 18:15:21+11:00 258b485 chore: merge bump/v4.25.0 (#30740) ESTIMATED CHANGES Modified .github/workflows/nightly-docgen.yml Modified Cache/IO.lean +/- def Cache.IO.rootHashGeneration Modified Cache/Requests.lean Modified Mathlib.lean Modified Mathlib/Algebra/Algebra/StrictPositivity.lean Modified Mathlib/Algebra/BigOperators/Group/List/Basic.lean Modified Mathlib/Algebra/BigOperators/Group/List/Lemmas.lean Modified Mathlib/Algebra/Notation/Defs.lean - theorem SMul.smul_eq_hSMul Modified Mathlib/Algebra/Order/Ring/Unbundled/Rat.lean Modified Mathlib/Algebra/Polynomial/RuleOfSigns.lean Modified Mathlib/AlgebraicTopology/SimplexCategory/GeneratorsRelations/NormalForms.lean Modified Mathlib/Analysis/LocallyConvex/WithSeminorms.lean Modified Mathlib/Computability/DFA.lean Modified Mathlib/Computability/RegularExpressions.lean Modified Mathlib/Control/Monad/Cont.lean Modified Mathlib/Data/Finsupp/Notation.lean Modified Mathlib/Data/Fintype/EquivFin.lean Modified Mathlib/Data/Int/LeastGreatest.lean Modified Mathlib/Data/List/Chain.lean Modified Mathlib/Data/List/Flatten.lean Modified Mathlib/Data/List/SplitOn.lean Modified Mathlib/Data/Nat/Digits/Defs.lean +/- theorem Nat.repr_length Modified Mathlib/Data/Set/Insert.lean Modified Mathlib/Data/String/Basic.lean - theorem List.asString_inj - theorem List.length_asString +/- theorem List.toList_asString +/- theorem String.asString_toList - theorem String.endPos_empty - theorem String.length_data + theorem String.ltb_cons_addChar' +/- theorem String.ltb_cons_addChar +/- theorem String.toList_inj Modified Mathlib/Data/String/Defs.lean Modified Mathlib/Data/String/Lemmas.lean +/- theorem String.congr_append Added Mathlib/Lean/Elab/InfoTree.lean + def Lean.Elab.collectTryThisSuggestions Modified Mathlib/MeasureTheory/Integral/IntervalIntegral/LebesgueDifferentiationThm.lean Modified Mathlib/SetTheory/PGame/Basic.lean Modified Mathlib/Tactic/Basic.lean + structure Mathlib.Tactic.withResetServerInfo.Result + def Mathlib.Tactic.withResetServerInfo Modified Mathlib/Tactic/DeclarationNames.lean +/- def Mathlib.Linter.getNamesFrom Modified Mathlib/Tactic/Hint.lean +/- def Mathlib.Tactic.Hint.suggestion - def Mathlib.Tactic.Hint.withMessageLog - def Mathlib.Tactic.Hint.withoutInfoTrees Modified Mathlib/Tactic/Linter/CommandStart.lean +/- def Mathlib.Linter.CommandStart.endPos Modified Mathlib/Tactic/Linter/DocString.lean Modified Mathlib/Tactic/Linter/HashCommandLinter.lean Modified Mathlib/Tactic/Linter/Header.lean +/- def Mathlib.Linter.authorsLineChecks +/- def Mathlib.Linter.parseUpToHere +/- def Mathlib.Linter.toSyntax Modified Mathlib/Tactic/Linter/PPRoundtrip.lean Modified Mathlib/Tactic/Linter/TextBased.lean Modified Mathlib/Tactic/Linter/UpstreamableDecl.lean Modified Mathlib/Tactic/Says.lean - def Mathlib.Tactic.Says.evalTacticCapturingInfo - def Mathlib.Tactic.Says.evalTacticCapturingMessages Modified Mathlib/Tactic/SuccessIfFailWithMsg.lean Modified Mathlib/Tactic/ToAdditive/Frontend.lean Modified Mathlib/Tactic/ToAdditive/GuessName.lean Modified Mathlib/Tactic/ToExpr.lean Modified Mathlib/Tactic/Widget/Calc.lean Modified Mathlib/Tactic/Widget/CongrM.lean Modified Mathlib/Tactic/Widget/Conv.lean Modified Mathlib/Tactic/Widget/GCongr.lean Modified Mathlib/Tactic/Widget/InteractiveUnfold.lean Modified Mathlib/Tactic/Widget/LibraryRewrite.lean Modified Mathlib/Tactic/Widget/SelectPanelUtils.lean Modified Mathlib/Util/CompileInductive.lean Modified Mathlib/Util/Superscript.lean Modified MathlibTest/CalcQuestionMark.lean Modified MathlibTest/Change.lean Modified MathlibTest/DeprecateTo.lean Modified MathlibTest/FieldSimp.lean Modified MathlibTest/FindSyntax.lean Modified MathlibTest/LibraryRewrite.lean Modified MathlibTest/LibrarySearch/basic.lean Modified MathlibTest/LibrarySearch/mathlib.lean Modified MathlibTest/LibrarySearch/observe.lean Modified MathlibTest/Subsingleton.lean Modified MathlibTest/Use.lean Modified MathlibTest/Util/PrintSorries.lean Modified MathlibTest/Variable.lean Modified MathlibTest/fast_instance.lean Modified MathlibTest/hint.lean Modified MathlibTest/propose.lean Modified MathlibTest/rewrites.lean Modified MathlibTest/ring.lean Modified MathlibTest/says.lean Modified MathlibTest/says_whitespace.lean Modified MathlibTest/success_if_fail_with_msg.lean Modified MathlibTest/toAdditive.lean Modified lake-manifest.json Modified lakefile.lean Modified lean-toolchain Modified scripts/check-yaml.lean Modified scripts/noshake.json 2025-10-21 04:10:30 9486513 feat(Geometry/Euclidean/Angle/Oriented): oriented/unoriented equality and bisection lemmas (#30476) Add lemmas ```lean lemma oangle_eq_neg_of_angle_eq_of_sign_eq_neg {w x y z : V} (h : InnerProductGeometry.angle w x = InnerProductGeometry.angle y z) (hs : (o.oangle w x).sign = -(o.oangle y z).sign) : o.oangle w x = -o.oangle y z := by ``` and ```lean lemma angle_eq_iff_oangle_eq_neg_of_sign_eq_neg {w x y z : V} (hw : w ≠ 0) (hx : x ≠ 0) (hy : y ≠ 0) (hz : z ≠ 0) (hs : (o.oangle w x).sign = -(o.oangle y z).sign) : InnerProductGeometry.angle w x = InnerProductGeometry.angle y z ↔ o.oangle w x = -o.oangle y z := by ``` and similar affine versions, corresponding to such lemmas that already exist when the signs are equal rather than negations of each other. Deduce lemmas relating oriented and unoriented versions of angle bisection: ```lean lemma angle_eq_iff_oangle_eq_or_sameRay {x y z : V} (hx : x ≠ 0) (hz : z ≠ 0) : InnerProductGeometry.angle x y = InnerProductGeometry.angle y z ↔ o.oangle x y = o.oangle y z ∨ SameRay ℝ x z := by ``` and ```lean lemma angle_eq_iff_oangle_eq_or_wbtw {p₁ p₂ p₃ p₄ : P} (hp₁ : p₁ ≠ p₂) (hp₄ : p₄ ≠ p₂) : ∠ p₁ p₂ p₃ = ∠ p₃ p₂ p₄ ↔ ∡ p₁ p₂ p₃ = ∡ p₃ p₂ p₄ ∨ Wbtw ℝ p₂ p₁ p₄ ∨ Wbtw ℝ p₂ p₄ p₁ := by ``` ESTIMATED CHANGES Modified Mathlib/Geometry/Euclidean/Angle/Oriented/Affine.lean + theorem EuclideanGeometry.angle_eq_iff_oangle_eq_neg_of_sign_eq_neg + theorem EuclideanGeometry.angle_eq_iff_oangle_eq_or_wbtw + theorem EuclideanGeometry.oangle_eq_neg_of_angle_eq_of_sign_eq_neg Modified Mathlib/Geometry/Euclidean/Angle/Oriented/Basic.lean + theorem Orientation.angle_eq_iff_oangle_eq_neg_of_sign_eq_neg + theorem Orientation.angle_eq_iff_oangle_eq_or_sameRay + theorem Orientation.oangle_eq_neg_of_angle_eq_of_sign_eq_neg 2025-10-21 00:59:55 5be0e07 chore(CategoryTheory): add deprecated module for Localization.Monoidal (#30728) Follow-up to #25794 ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Localization/Monoidal.lean 2025-10-20 23:25:44 560872a feat(LinearAlgebra/AffineSpace/AffineSubspace/Defs): nonempty sup (#30699) Add instances that the supremum of two affine subspaces, either one nonempty, is nonempty. These are useful when working with orthogonal projections onto such a supremum. ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/AffineSpace/AffineSubspace/Defs.lean 2025-10-20 22:29:39 a443129 chore: add tests about the differential geometry elaborators inferring the type of x (#30577) A first version of the in-progress elaborator for `IsImmersionAt` had a bug where this fails. It turns out this already worked for `CMDiffAt` and friends (without any further changes); let's add a test for it. ESTIMATED CHANGES Modified MathlibTest/DifferentialGeometry/Notation.lean Modified MathlibTest/DifferentialGeometry/NotationAdvanced.lean 2025-10-20 21:55:52 7468d44 feat: norm_num support for Int.fract (#26428) ESTIMATED CHANGES Modified Mathlib/Data/Rat/Floor.lean + def Rat.evalIntFract + theorem Rat.isNNRat_intFract_of_isNNRat + theorem Rat.isNat_intFract_of_isInt + theorem Rat.isNat_intFract_of_isNat + theorem Rat.isRat_intFract_of_isRat_negOfNat Modified MathlibTest/norm_num_ext.lean 2025-10-20 21:41:52 5b59b3a chore(Analysis/SpecialFunctions): golf entire `mulExpNegMulSq_eq_sqrt_mul_mulExpNegMulSq_one` using `grind` (#30320) ESTIMATED CHANGES Modified Mathlib/Analysis/SpecialFunctions/MulExpNegMulSq.lean 2025-10-20 19:14:21 39996ca feat(push): `@[push]` annotations for `fun` (#30038) This PR adds the annotations for the tactics `push fun _ ↦ _` and `pull fun _ ↦ _` and the simprocs `pushFun` and `pullFun`. The following operations are supported: `1`, `0`, `*`, `+`, `⁻¹`, `-`, `/`, `^`, `•`, `+ᵥ`, `-ᵥ`, `star`, `ofNat`, `natCast`, `intCast`, `⊔`, `⊓`, `| |`, `∆`, `⇔`, `⇨`, `⊥`, `⊤`, `ᶜ`, `\`, `default`, `algebraMap`, `kstar`, `⌊/⌋`, `⁺`, `⁻`, `⁺ᵐ`, `⁻ᵐ`. ESTIMATED CHANGES Modified Mathlib/Algebra/AddTorsor/Basic.lean Modified Mathlib/Algebra/Algebra/Pi.lean Modified Mathlib/Algebra/Notation/Pi/Defs.lean Modified Mathlib/Algebra/Order/Floor/Div.lean Modified Mathlib/Algebra/Order/Group/PosPart.lean +/- theorem Pi.leOnePart_def +/- theorem Pi.oneLePart_def Modified Mathlib/Algebra/Order/Group/Unbundled/Abs.lean Modified Mathlib/Algebra/Order/Kleene.lean Modified Mathlib/Data/Int/Cast/Pi.lean Modified Mathlib/Data/Nat/Cast/Basic.lean Modified Mathlib/Logic/Unique.lean Modified Mathlib/Order/Basic.lean Modified Mathlib/Order/BoundedOrder/Basic.lean Modified Mathlib/Order/Heyting/Basic.lean Modified Mathlib/Order/Lattice.lean Modified Mathlib/Order/SymmDiff.lean Modified MathlibTest/push.lean 2025-10-20 16:23:01 dde1cff feat(CategoryTheory): localization preserves braided structure (#25794) ESTIMATED CHANGES Modified Mathlib.lean Renamed Mathlib/CategoryTheory/Localization/Monoidal.lean to Mathlib/CategoryTheory/Localization/Monoidal/Basic.lean + theorem CategoryTheory.associator_hom + theorem CategoryTheory.associator_inv Added Mathlib/CategoryTheory/Localization/Monoidal/Braided.lean + theorem CategoryTheory.Localization.Monoidal.braidingNatIso_hom_app + theorem CategoryTheory.Localization.Monoidal.braidingNatIso_hom_app_naturality_μ_left + theorem CategoryTheory.Localization.Monoidal.braidingNatIso_hom_app_naturality_μ_right + theorem CategoryTheory.Localization.Monoidal.map_hexagon_forward + theorem CategoryTheory.Localization.Monoidal.map_hexagon_reverse + theorem CategoryTheory.Localization.Monoidal.β_hom_app Modified Mathlib/CategoryTheory/Monoidal/Braided/Basic.lean + def CategoryTheory.BraidedCategory.curriedBraidingNatIso Modified Mathlib/CategoryTheory/Monoidal/Braided/Multifunctor.lean + def CategoryTheory.SymmetricCategory.ofCurried Modified Mathlib/CategoryTheory/Sites/Monoidal.lean 2025-10-20 15:33:54 59e3f72 style: fix whitespace (#30725) Found by extending the commandStart linter to proof bodies. Extracted from #30658. ESTIMATED CHANGES Modified Mathlib/Algebra/Azumaya/Basic.lean Modified Mathlib/Algebra/BigOperators/Associated.lean Modified Mathlib/Algebra/BigOperators/Ring/Nat.lean Modified Mathlib/Analysis/SpecificLimits/Basic.lean +/- theorem tendsto_one_div_atTop_nhds_zero_nat Modified Mathlib/CategoryTheory/Adjunction/Basic.lean +/- theorem CategoryTheory.Adjunction.comp_homEquiv Modified Mathlib/CategoryTheory/ConcreteCategory/Basic.lean Modified Mathlib/CategoryTheory/Limits/Shapes/BinaryProducts.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Pullback/Categorical/Basic.lean Modified Mathlib/CategoryTheory/Monoidal/Action/Basic.lean Modified Mathlib/CategoryTheory/Monoidal/Action/LinearFunctor.lean Modified Mathlib/CategoryTheory/ObjectProperty/Small.lean Modified Mathlib/Data/EReal/Inv.lean +/- theorem EReal.div_lt_iff Modified Mathlib/Data/EReal/Operations.lean Modified Mathlib/Data/FP/Basic.lean Modified Mathlib/Data/Fin/Tuple/Embedding.lean Modified Mathlib/Data/List/Sort.lean Modified Mathlib/Data/List/Sym.lean Modified Mathlib/Data/Nat/ChineseRemainder.lean Modified Mathlib/Data/Num/Lemmas.lean Modified Mathlib/Data/Num/ZNum.lean Modified Mathlib/Data/Ordmap/Invariants.lean Modified Mathlib/Data/Prod/TProd.lean Modified Mathlib/Data/Sign/Defs.lean Modified Mathlib/Data/Sym/Sym2.lean Modified Mathlib/Data/Vector/MapLemmas.lean Modified Mathlib/GroupTheory/FreeGroup/CyclicallyReduced.lean Modified Mathlib/Order/Filter/Partial.lean Modified Mathlib/Order/ScottContinuity/Prod.lean Modified Mathlib/Probability/Kernel/Composition/KernelLemmas.lean Modified Mathlib/Probability/ProbabilityMassFunction/Binomial.lean Modified Mathlib/RepresentationTheory/Homological/GroupHomology/LowDegree.lean Modified Mathlib/SetTheory/Cardinal/UnivLE.lean +/- theorem univLE_iff_cardinal_le Modified Mathlib/Topology/Instances/ENNReal/Lemmas.lean Modified Mathlib/Topology/Instances/EReal/Lemmas.lean +/- theorem EReal.liminf_neg +/- theorem EReal.limsup_neg Modified Mathlib/Topology/Order/IntermediateValue.lean 2025-10-20 14:46:16 b7404f6 feat(Algebra/GroupWithZero/Action/Defs): add `smul_div₀'` (#30644) This PR adds a lemma `g • (x / y) = (g • x) / (g • y)` for a `MulDistribMulAction` of a `Group` on a `GroupWithZero`. The prime at the end is to match the other `MulDistribMulAction` lemmas `smul_mul'`, `smul_inv'`, and `smul_div'`. ESTIMATED CHANGES Modified Mathlib/Algebra/GroupWithZero/Action/Basic.lean + theorem smul_zpow₀' Modified Mathlib/Algebra/GroupWithZero/Action/Defs.lean + theorem smul_div₀' + theorem smul_inv₀' 2025-10-20 13:51:32 4964959 style: fix whitespace (#30724) Found by extending the commandStart linter to proof bodies. Extracted from #30658. ESTIMATED CHANGES Modified Mathlib/Algebra/AddConstMap/Equiv.lean Modified Mathlib/Algebra/Category/ModuleCat/Basic.lean Modified Mathlib/Algebra/Category/MonCat/Limits.lean Modified Mathlib/CategoryTheory/Category/ULift.lean + def CategoryTheory.ULiftHom.{w, - def CategoryTheory.ULiftHom.{w,u} Modified Mathlib/CategoryTheory/Comma/Over/Basic.lean +/- def CategoryTheory.Under.mapFunctor Modified Mathlib/CategoryTheory/Filtered/Basic.lean Modified Mathlib/CategoryTheory/Limits/HasLimits.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Pullback/HasPullback.lean Modified Mathlib/CategoryTheory/Limits/Shapes/WidePullbacks.lean Modified Mathlib/CategoryTheory/Limits/Types/Colimits.lean Modified Mathlib/CategoryTheory/Monoidal/Functor.lean Modified Mathlib/CategoryTheory/MorphismProperty/Factorization.lean Modified Mathlib/CategoryTheory/Skeletal.lean Modified Mathlib/Data/Finset/Lattice/Fold.lean Modified Mathlib/Data/Set/Monotone.lean Modified Mathlib/GroupTheory/Congruence/Hom.lean Modified Mathlib/GroupTheory/NoncommPiCoprod.lean Modified Mathlib/GroupTheory/Perm/Cycle/Basic.lean Modified Mathlib/GroupTheory/Perm/Cycle/Factors.lean Modified Mathlib/GroupTheory/Perm/Fin.lean Modified Mathlib/GroupTheory/Perm/Finite.lean Modified Mathlib/LinearAlgebra/BilinearMap.lean Modified Mathlib/Order/ConditionallyCompleteLattice/Basic.lean Modified Mathlib/Order/ConditionallyCompleteLattice/Indexed.lean Modified Mathlib/Probability/ProbabilityMassFunction/Binomial.lean Modified Mathlib/RepresentationTheory/Homological/GroupHomology/LowDegree.lean Modified Mathlib/RingTheory/DedekindDomain/Instances.lean Modified Mathlib/RingTheory/DualNumber.lean Modified Mathlib/RingTheory/Etale/Field.lean Modified Mathlib/RingTheory/LaurentSeries.lean Modified Mathlib/RingTheory/LocalProperties/Semilocal.lean Modified Mathlib/RingTheory/Polynomial/Eisenstein/Distinguished.lean Modified Mathlib/RingTheory/TwoSidedIdeal/Lattice.lean +/- theorem TwoSidedIdeal.mem_top Modified Mathlib/RingTheory/WittVector/Frobenius.lean Modified Mathlib/Topology/Algebra/ClopenNhdofOne.lean Modified Mathlib/Topology/CWComplex/Classical/Subcomplex.lean Modified Mathlib/Topology/Category/Profinite/Nobeling/Successor.lean Modified Mathlib/Topology/ContinuousMap/Bounded/ArzelaAscoli.lean Modified Mathlib/Topology/Covering.lean Modified Mathlib/Topology/EMetricSpace/PairReduction.lean Modified Mathlib/Topology/Order/HullKernel.lean Modified Mathlib/Topology/UniformSpace/Ascoli.lean 2025-10-20 13:08:43 5e2da96 style(Probability/Distributions/Fernique): fix whitespace (#30723) Found by extending the commandStart linter to bodies of proofs. Extracted from #30658. ESTIMATED CHANGES Modified Mathlib/Probability/Distributions/Fernique.lean 2025-10-20 12:55:17 af74401 feat: add an implication in the Portmanteau theorem (#30402) Add the implication from closed sets to convergence: if for all closed sets `F` we have the limsup condition `limsup μsₙ(F) ≤ μ(F)`, then the measures `μsₙ` converge weakly to the measure `μ`. Also add variants of the implications where the hypothesis features a coercion from `ProbabilityMeasure` to `Measure`, as those were sometimes easier to get in the proofs I encountered in #30348. ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Measure/Portmanteau.lean + theorem MeasureTheory.tendsto_of_forall_isClosed_limsup_le' + theorem MeasureTheory.tendsto_of_forall_isClosed_limsup_le + theorem MeasureTheory.tendsto_of_forall_isClosed_limsup_le_nat + theorem MeasureTheory.tendsto_of_forall_isOpen_le_liminf' + theorem MeasureTheory.tendsto_of_forall_isOpen_le_liminf_nat' 2025-10-20 11:16:06 c06a96f feat: add tactic analysis linters for converting tauto to grind (#30619) ESTIMATED CHANGES Modified Mathlib/Init.lean Modified Mathlib/Tactic/Tauto.lean + def tautoToGrind + def tautoToGrindRegressions 2025-10-20 11:16:04 fa41ffe chore: backport grind annotation changes from nightly-testing (#30572) ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Units/Defs.lean Modified Mathlib/Analysis/SpecialFunctions/ContinuousFunctionalCalculus/ExpLog.lean +/- theorem CFC.log_one +/- theorem CFC.log_zero Modified Mathlib/Analysis/SpecialFunctions/ContinuousFunctionalCalculus/Rpow/Basic.lean Modified Mathlib/Combinatorics/SimpleGraph/CompleteMultipartite.lean Modified Mathlib/Combinatorics/SimpleGraph/FiveWheelLike.lean Modified Mathlib/Data/Finset/Attach.lean Modified Mathlib/Data/Finset/Defs.lean Modified Mathlib/Data/Finset/Empty.lean Modified Mathlib/Data/Fintype/Defs.lean Modified Mathlib/Data/List/Triplewise.lean Modified Mathlib/Data/Multiset/ZeroCons.lean Modified Mathlib/Data/Set/Basic.lean Modified Mathlib/Data/Set/Insert.lean Modified Mathlib/Data/Set/Operations.lean Modified Mathlib/Order/CompleteLattice/MulticoequalizerDiagram.lean Modified MathlibTest/Simps.lean Modified MathlibTest/grind/pairwise_disjoint.lean 2025-10-20 10:39:32 b744c7b chore(README): add linters to Damiano's interests (#30715) As discussed via DM. ESTIMATED CHANGES Modified README.md 2025-10-20 10:39:29 63cd909 chore(Analysis/InnerProductSpace/MulOpposite): `NormedAddCommGroup` -> `SeminormedAddCommGroup` (#30695) Also generalize one `InnerProductSpace` to `Module` and move section to earlier file. ESTIMATED CHANGES Modified Mathlib/Analysis/InnerProductSpace/MulOpposite.lean - theorem MulOpposite.isometry_opLinearEquiv - def MulOpposite.opLinearIsometryEquiv - theorem MulOpposite.toContinuousLinearEquiv_opLinearIsometryEquiv - theorem MulOpposite.toLinearEquiv_opLinearIsometryEquiv + theorem OrthonormalBasis.toBasis_mulOpposite Modified Mathlib/Analysis/Normed/Operator/LinearIsometry.lean + theorem MulOpposite.isometry_opLinearEquiv + def MulOpposite.opLinearIsometryEquiv + theorem MulOpposite.toContinuousLinearEquiv_opLinearIsometryEquiv + theorem MulOpposite.toLinearEquiv_opLinearIsometryEquiv 2025-10-20 10:08:44 147c92b chore: change `disc` to `discr` to denote the discriminant (#30709) See [Zulip](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/.60disc.60.20or.20.60discr.60/with/545818093) ESTIMATED CHANGES Modified Mathlib/Algebra/CubicDiscriminant.lean - theorem Cubic.card_roots_of_disc_ne_zero + theorem Cubic.card_roots_of_discr_ne_zero - def Cubic.disc - theorem Cubic.disc_eq_prod_three_roots - theorem Cubic.disc_ne_zero_iff_roots_ne - theorem Cubic.disc_ne_zero_iff_roots_nodup + def Cubic.discr + theorem Cubic.discr_eq_prod_three_roots + theorem Cubic.discr_ne_zero_iff_roots_ne + theorem Cubic.discr_ne_zero_iff_roots_nodup Modified Mathlib/AlgebraicGeometry/EllipticCurve/Weierstrass.lean - theorem WeierstrassCurve.twoTorsionPolynomial_disc - theorem WeierstrassCurve.twoTorsionPolynomial_disc_isUnit - theorem WeierstrassCurve.twoTorsionPolynomial_disc_ne_zero - theorem WeierstrassCurve.twoTorsionPolynomial_disc_ne_zero_of_isElliptic - theorem WeierstrassCurve.twoTorsionPolynomial_disc_of_char_three - theorem WeierstrassCurve.twoTorsionPolynomial_disc_of_char_two + theorem WeierstrassCurve.twoTorsionPolynomial_discr + theorem WeierstrassCurve.twoTorsionPolynomial_discr_isUnit + theorem WeierstrassCurve.twoTorsionPolynomial_discr_ne_zero + theorem WeierstrassCurve.twoTorsionPolynomial_discr_ne_zero_of_isElliptic + theorem WeierstrassCurve.twoTorsionPolynomial_discr_of_char_three + theorem WeierstrassCurve.twoTorsionPolynomial_discr_of_char_two Modified Mathlib/LinearAlgebra/Matrix/Charpoly/Disc.lean - theorem Matrix.disc_fin_two - theorem Matrix.disc_of_card_eq_two + theorem Matrix.discr_fin_two + theorem Matrix.discr_of_card_eq_two Modified Mathlib/LinearAlgebra/Matrix/GeneralLinearGroup/FinTwo.lean +/- def Matrix.IsElliptic +/- def Matrix.IsHyperbolic +/- def Matrix.IsParabolic - theorem Matrix.disc_conj' - theorem Matrix.disc_conj + theorem Matrix.discr_conj' + theorem Matrix.discr_conj - theorem Matrix.sub_scalar_sq_eq_disc + theorem Matrix.sub_scalar_sq_eq_discr Modified Mathlib/NumberTheory/ModularForms/Cusps.lean Modified Mathlib/RingTheory/Polynomial/Resultant/Basic.lean - theorem Polynomial.disc_C - theorem Polynomial.disc_of_degree_eq_one - theorem Polynomial.disc_of_degree_eq_three - theorem Polynomial.disc_of_degree_eq_two + theorem Polynomial.discr_C + theorem Polynomial.discr_of_degree_eq_one + theorem Polynomial.discr_of_degree_eq_three + theorem Polynomial.discr_of_degree_eq_two Modified Mathlib/Topology/Compactification/OnePoint/ProjectiveLine.lean 2025-10-20 10:08:42 a30886d feat(Algebra): index of posSubgroup (#30422) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Order/Ring/Units.lean + theorem Units.index_posSubgroup 2025-10-20 09:26:59 577ebdb chore: fix some typos (#30705) ESTIMATED CHANGES Modified Mathlib/Analysis/InnerProductSpace/Basic.lean Modified Mathlib/Analysis/InnerProductSpace/Defs.lean Modified Mathlib/CategoryTheory/Limits/IndYoneda.lean Modified Mathlib/Combinatorics/Quiver/Basic.lean Modified Mathlib/RingTheory/Ideal/Maps.lean 2025-10-20 09:02:20 0d83798 chore(Analysis/Convex/Combination): remove an unused variable (#30707) Not sure how this went undetected. ESTIMATED CHANGES Modified Mathlib/Analysis/Convex/Combination.lean 2025-10-20 09:02:18 1a99d26 style(Analysis): fix whitespace (#30687) Extracted from #30658. Found by extending the commandStart linter to proof bodies. ESTIMATED CHANGES Modified Mathlib/Analysis/InnerProductSpace/Laplacian.lean Modified Mathlib/Analysis/Seminorm.lean Modified Mathlib/Analysis/SpecialFunctions/Gaussian/FourierTransform.lean 2025-10-20 08:46:05 57a8e09 chore(Analysis/SpecialFunctions/Log/PosLog): golf a proof using `grw` (#30704) ESTIMATED CHANGES Modified Mathlib/Analysis/SpecialFunctions/Log/PosLog.lean + theorem Real.posLog_le_posLog 2025-10-20 07:59:59 c736069 chore: remove unused variables (#30670) ESTIMATED CHANGES Modified Mathlib/Algebra/Module/NatInt.lean 2025-10-19 23:18:36 9e57458 feat(LinearAlgebra/AffineSpace/FiniteDimensional): `finiteDimensional_sup` (#30700) Add an instance that the supremum of two finite-dimensional affine subspaces is finite-dimensional. This is useful when working with orthogonal projections. ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/AffineSpace/FiniteDimensional.lean 2025-10-19 17:51:16 8aa3ccd style(CategoryTheory): fix whitespace (#30689) Extracted from #30658. Found by extending the commandStart linter to proof bodies. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/FiberedCategory/Cocartesian.lean Modified Mathlib/CategoryTheory/Functor/Basic.lean Modified Mathlib/CategoryTheory/Functor/KanExtension/Preserves.lean Modified Mathlib/CategoryTheory/Iso.lean Modified Mathlib/CategoryTheory/Limits/Preserves/Bifunctor.lean Modified Mathlib/CategoryTheory/Limits/Types/Shapes.lean Modified Mathlib/CategoryTheory/Monoidal/DayConvolution.lean 2025-10-19 15:27:01 7c64d37 feat(CategoryTheory/Abelian): iso between image and coimage functors (#30673) From ClassFieldTheory ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Abelian/Basic.lean + theorem CategoryTheory.Abelian.coimage.comp_π_eq_zero + def CategoryTheory.Abelian.coimageFunctor + def CategoryTheory.Abelian.coimageFunctorIsoImageFunctor + theorem CategoryTheory.Abelian.image.ι_comp_eq_zero + def CategoryTheory.Abelian.imageFunctor 2025-10-19 14:27:25 aa7a3d9 chore: miscellaneous linter whitespace fixes (#30663) Extracted from #30658. Found by `adomani`'s extension of the commandStart linter to proof bodies. ESTIMATED CHANGES Modified Mathlib/Algebra/CharP/Defs.lean +/- theorem CharP.cast_eq_iff_mod_eq Modified Mathlib/Algebra/Group/NatPowAssoc.lean +/- theorem npow_add Modified Mathlib/Algebra/GroupWithZero/Associated.lean Modified Mathlib/Algebra/GroupWithZero/WithZero.lean +/- theorem WithZero.exp_neg +/- theorem WithZero.exp_sub Modified Mathlib/Algebra/Order/GroupWithZero/Canonical.lean Modified Mathlib/Algebra/Ring/Ext.lean Modified Mathlib/Algebra/Ring/Subsemiring/Defs.lean Modified Mathlib/Algebra/Star/MonoidHom.lean +/- theorem StarMonoidHom.coe_mk Modified Mathlib/Algebra/Star/StarRingHom.lean +/- theorem NonUnitalStarRingHom.coe_mk Modified Mathlib/CategoryTheory/EpiMono.lean Modified Mathlib/CategoryTheory/Equivalence.lean Modified Mathlib/CategoryTheory/Functor/FullyFaithful.lean Modified Mathlib/CategoryTheory/Join/Basic.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Images.lean Modified Mathlib/CategoryTheory/Limits/Types/Limits.lean Modified Mathlib/CategoryTheory/ObjectProperty/FullSubcategory.lean Modified Mathlib/CategoryTheory/Sums/Products.lean Modified Mathlib/Combinatorics/Graph/Basic.lean Modified Mathlib/Data/BitVec.lean +/- theorem BitVec.ofFin_intCast Modified Mathlib/Data/Bool/Basic.lean +/- theorem Bool.toNat_beq_one +/- theorem Bool.toNat_bne_zero Modified Mathlib/Data/DFinsupp/Multiset.lean +/- theorem DFinsupp.toMultiset_sup Modified Mathlib/Data/Fin/Tuple/Basic.lean Modified Mathlib/Data/List/Chain.lean Modified Mathlib/Data/List/Induction.lean Modified Mathlib/Data/List/Iterate.lean Modified Mathlib/Data/Multiset/DershowitzManna.lean Modified Mathlib/Data/Nat/Bits.lean Modified Mathlib/Data/Nat/Bitwise.lean Modified Mathlib/Data/Nat/NthRoot/Defs.lean Modified Mathlib/Data/Nat/Prime/Basic.lean +/- theorem Nat.coprime_of_lt_minFac Modified Mathlib/Data/Set/Enumerate.lean Modified Mathlib/Data/Set/Subsingleton.lean +/- theorem Set.univ_set_eq_singleton_empty_iff Modified Mathlib/GroupTheory/Perm/List.lean Modified Mathlib/LinearAlgebra/Matrix/SemiringInverse.lean Modified Mathlib/LinearAlgebra/Multilinear/Basic.lean +/- theorem MultilinearMap.coe_smul Modified Mathlib/Order/Hom/Order.lean 2025-10-19 13:37:58 548eafd feat: add `smul_zpow'` (#30664) This matches `smul_div'` and `smul_inv'`. ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Action/Basic.lean + theorem smul_zpow' 2025-10-19 11:35:37 0231ea9 chore(Data/Fin): deprecate `Fin.mul_one'`, `Fin.one_mul'`, `Fin.mul_zero'` and `Fin.zero_mul'` (#28422) ESTIMATED CHANGES Modified Mathlib/Data/Fin/Basic.lean Modified Mathlib/Data/ZMod/Defs.lean 2025-10-19 10:56:47 1838dfb feat: better API for `T1Space` and `DiscreteSpace` on quotients by non-normal subgroups (#30383) This is motivated by #29743, which led me to realize that the current proof of [Subgroup.isOpen_of_isClosed_of_finiteIndex](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Topology/Algebra/Group/ClosedSubgroup.html#Subgroup.isOpen_of_isClosed_of_finiteIndex) is quite complicated. Morally, the proof should be "`G / H` is T1 because `H` is closed, finite because `H` has finite index in `G`, hence it is discrete, hence `H` is open". The issue is that too much of our API on quotient groups (and in particular the separation criterion) was restricted to quotients by *normal* subgroups. This PR fixes this, and cleans some things along the way. ESTIMATED CHANGES Modified Mathlib/GroupTheory/Coset/Defs.lean + theorem QuotientGroup.preimage_mk_one Modified Mathlib/Topology/Algebra/ConstMulAction.lean + theorem MulAction.IsPretransitive.discreteTopology_iff + theorem MulAction.IsPretransitive.t1Space_iff Modified Mathlib/Topology/Algebra/Group/Basic.lean Modified Mathlib/Topology/Algebra/Group/ClosedSubgroup.lean Modified Mathlib/Topology/Algebra/Group/Quotient.lean + theorem QuotientGroup.discreteTopology + theorem QuotientGroup.discreteTopology_iff + theorem QuotientGroup.t1Space_iff Modified Mathlib/Topology/Algebra/OpenSubgroup.lean 2025-10-19 08:57:04 d95168e feat(DedekindDomain/Different): add the transitivity formula (#26155) This PR proves the transitivity formula for the different ideal. The PR also adds one new instance: - `FiniteDimensional (FractionRing A) (FractionRing B)` deduced from `Module.Finite A B`. ESTIMATED CHANGES Modified Mathlib/RingTheory/Algebraic/Integral.lean Modified Mathlib/RingTheory/DedekindDomain/Different.lean + theorem FractionalIdeal.dual_eq_dual_mul_dual + theorem FractionalIdeal.smul_mem_dual_one + theorem FractionalIdeal.trace_mem_dual_one + theorem differentIdeal_eq_differentIdeal_mul_differentIdeal Modified Mathlib/RingTheory/DedekindDomain/IntegralClosure.lean Modified Mathlib/RingTheory/FractionalIdeal/Extended.lean + theorem FractionalIdeal.extendedHomₐ_coeIdeal_eq_map + theorem FractionalIdeal.extendedHomₐ_eq_zero_iff + theorem FractionalIdeal.extended_coeIdeal_eq_map + theorem FractionalIdeal.extended_eq_zero_iff + theorem FractionalIdeal.extended_ne_zero Modified Mathlib/RingTheory/Localization/Basic.lean + theorem IsLocalization.map_injective_of_injective' 2025-10-19 08:16:23 d914c7c chore: tag `Polynomial.coeff` lemmas with `aesop simp` (#30445) ESTIMATED CHANGES Modified Mathlib/Algebra/Polynomial/Basic.lean 2025-10-18 21:25:43 5c98c22 chore: use `positivity [h, h']` once more (#30656) Continuation of #30654. ESTIMATED CHANGES Modified Mathlib/Computability/AkraBazzi/SumTransform.lean 2025-10-18 20:48:21 3af1c0a chore: use the `positivity [h, h']` syntax when useful (#30654) Since #30388, `have := foo; positivity` can be shortened to `positivity [foo]`. Make use of that when sensible. I searched for all occurrences of `have :.*\n\s*positi` (using VS Code, i.e. using `rg` internally) and inspected them manually. In a few cases, keeping the `have` separate seemed more readable to me. ESTIMATED CHANGES Modified Archive/Wiedijk100Theorems/BallotProblem.lean Modified Mathlib/Analysis/Complex/Positivity.lean Modified Mathlib/Analysis/Convex/Strong.lean Modified Mathlib/Analysis/Convex/Visible.lean Modified Mathlib/Analysis/SpecialFunctions/BinaryEntropy.lean Modified Mathlib/Computability/AkraBazzi/AkraBazzi.lean Modified Mathlib/GroupTheory/CommutingProbability.lean Modified Mathlib/NumberTheory/LSeries/PrimesInAP.lean Modified Mathlib/Probability/Distributions/Geometric.lean Modified Mathlib/Probability/Distributions/Pareto.lean Modified MathlibTest/positivity.lean 2025-10-18 20:48:18 9692a75 feat(Analysis): PathConnectedSpace ℂˣ (#30418) ESTIMATED CHANGES Modified Mathlib/Analysis/Complex/Convex.lean 2025-10-18 20:48:16 55b7972 feat: `Field`, `FiniteDimensional` and `Algebra.IsSeparable` instances for `WithAbs` (#27974) This PR continues the work from #24870. Original PR: https://github.com/leanprover-community/mathlib4/pull/24870 ESTIMATED CHANGES Modified Mathlib/Analysis/Normed/Field/WithAbs.lean 2025-10-18 20:18:00 60413e1 refactor(AlgebraicGeometry) : an argument is incorrectly explicit (#30629) An argument `W'` is incorrectly implicit in [`WeierstrassCurve.Affine.CoordinateRing`](https://leanprover-community.github.io/mathlib4_docs/Mathlib/AlgebraicGeometry/EllipticCurve/Affine/Point.html#WeierstrassCurve.Affine.CoordinateRing) and [`WeierstrassCurve.Affine.FunctionField`](https://leanprover-community.github.io/mathlib4_docs/Mathlib/AlgebraicGeometry/EllipticCurve/Affine/Point.html#WeierstrassCurve.Affine.FunctionField). This issue has not surfaced because the dot notation (`W'.CoordinateRing`) is always used. ESTIMATED CHANGES Modified Mathlib/AlgebraicGeometry/EllipticCurve/Affine/Point.lean 2025-10-18 20:17:58 632f086 feat: the action underlying a topological additive torsor is proper (#30411) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Topology/Algebra/ProperAction/AddTorsor.lean 2025-10-18 20:17:57 9af14e5 chore: move `isProperMap_iff_isClosedMap_filter` next to the ultrafilter version (#30409) I don't quite know/remember what the motivation for having `Mathlib.Topology.Maps.Proper.UniversallyClosed` be a separate file, but certainly [isProperMap_iff_isClosedMap_filter](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Topology/Maps/Proper/Basic.html#isProperMap_iff_isClosedMap_filter) and [isProperMap_iff_isClosedMap_ultrafilter](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Topology/Maps/Proper/UniversallyClosed.html#isProperMap_iff_isClosedMap_ultrafilter) should be together. ESTIMATED CHANGES Modified Mathlib/Topology/Maps/Proper/Basic.lean - theorem isProperMap_iff_isClosedMap_filter Modified Mathlib/Topology/Maps/Proper/UniversallyClosed.lean + theorem isProperMap_iff_isClosedMap_filter 2025-10-18 20:17:55 c1dddc7 feat(Analysis/InnerProductSpace/Positive): `U.starProjection ≤ V.starProjection` iff `U ≤ V` (#27162) For symmetric projections `p` and `q`, `p ≤ q` iff `range p ≤ range q`, so then: `U.starProjection ≤ V.starProjection` iff `U ≤ V`, which implies that `Submodule.starProjection` is an injective function. ESTIMATED CHANGES Modified Mathlib/Analysis/InnerProductSpace/Positive.lean - theorem LinearMap.IsPositive.of_isSymmetricProjection + theorem LinearMap.IsSymmetricProjection.isPositive + theorem LinearMap.IsSymmetricProjection.le_iff_range_le_range + theorem Submodule.starProjection_inj + theorem Submodule.starProjection_le_starProjection_iff Modified Mathlib/Analysis/InnerProductSpace/Symmetric.lean + theorem LinearMap.IsSymmetricProjection.sub_of_range_le_range 2025-10-18 19:47:22 41e1a24 feat(LinearAlgebra/Matrix/PosDef): kronecker of positive (semi-)definite matrices is positive (semi-)definite (#28097) This first shows that `U * x * star U` is positive (semi-)definite if and only if `x` is, for an invertible matrix `U` in a not necessarily commutative star-ring. Then using the spectral theorem, it follows that the kronecker of positive (semi-)definite matrices is positive (semi-)definite. ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/StrictPositivity.lean + theorem IsUnit.isStrictlyPositive_conjugate_iff' + theorem IsUnit.isStrictlyPositive_conjugate_iff Modified Mathlib/Algebra/Order/Star/Basic.lean + theorem IsUnit.conjugate_nonneg_iff' + theorem IsUnit.conjugate_nonneg_iff Modified Mathlib/Algebra/Star/SelfAdjoint.lean + theorem IsUnit.isSelfAdjoint_conjugate_iff' + theorem IsUnit.isSelfAdjoint_conjugate_iff - theorem isSelfAdjoint_conjugate_iff_of_isUnit' - theorem isSelfAdjoint_conjugate_iff_of_isUnit Modified Mathlib/Analysis/Matrix/Order.lean + theorem Matrix.PosDef.kronecker + theorem Matrix.PosSemidef.kronecker Modified Mathlib/LinearAlgebra/Matrix/GeneralLinearGroup/Defs.lean + theorem Matrix.IsUnit.kronecker Modified Mathlib/LinearAlgebra/Matrix/Hermitian.lean + theorem Matrix.isHermitian_iff_isSelfAdjoint Modified Mathlib/LinearAlgebra/Matrix/PosDef.lean + theorem Matrix.IsUnit.posDef_conjugate_iff' + theorem Matrix.IsUnit.posDef_conjugate_iff + theorem Matrix.IsUnit.posSemidef_conjugate_iff' + theorem Matrix.IsUnit.posSemidef_conjugate_iff 2025-10-18 17:29:55 2c2d756 chore(AlgebraicTopology): clean up FundamentalGroupoid (#28234) + Extract `FundamentalGroupoid.map (f : C(X, Y)) : FundamentalGroupoid X ⥤ FundamentalGroupoid Y` from `fundamentalGroupoidFunctor : TopCat ⥤ CategoryTheory.Grpd` + Define `FundamentalGroup.map (f : C(X, Y)) (x : X) : FundamentalGroup X x →* FundamentalGroup Y (f x)` and `mapOfEq : FundamentalGroup X x →* FundamentalGroup Y y` that takes an assumption `f x = y`. + Redefine `FundamentalGroup` to be `End` rather than `Aut`: since `FundamentalGroupoid` is a groupoid, `End` already has a group structure. This requires fixing some proofs about `HomotopyGroup`s, so we take this opportunity to golf a few proofs and replace `=>` by `↦`. + Golf within the file FundamentalGroupoid/Basic. + Generalize `toArrow` up to `fromPath` in `FundamentalGroupoid/FundamentalGroup` from `X : TopCat` to `[TopologicalSpace X]`. ESTIMATED CHANGES Modified Mathlib/AlgebraicTopology/FundamentalGroupoid/Basic.lean + theorem FundamentalGroupoid.conj_eqToHom + theorem FundamentalGroupoid.eqToHom_eq +/- def FundamentalGroupoid.fundamentalGroupoidFunctor + def FundamentalGroupoid.map +/- structure FundamentalGroupoid Modified Mathlib/AlgebraicTopology/FundamentalGroupoid/FundamentalGroup.lean + def FundamentalGroup.map + def FundamentalGroup.mapOfEq + theorem FundamentalGroup.mapOfEq_apply +/- def FundamentalGroup Modified Mathlib/AlgebraicTopology/FundamentalGroupoid/InducedMaps.lean Modified Mathlib/AlgebraicTopology/FundamentalGroupoid/SimplyConnected.lean Modified Mathlib/CategoryTheory/Groupoid.lean Modified Mathlib/Topology/Covering.lean Modified Mathlib/Topology/Homotopy/HomotopyGroup.lean Modified Mathlib/Topology/Homotopy/Product.lean 2025-10-18 16:44:11 a93525e chore: remove `@[gcongr]` from `opow_le_opow_right` (#30651) This tag was accidentally added in #30508, but it is redundant ESTIMATED CHANGES Modified Mathlib/SetTheory/Ordinal/Exponential.lean 2025-10-18 16:44:10 06ed561 feat(FieldTheory): abelian extensions (#23669) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/FieldTheory/Galois/Abelian.lean + theorem IsAbelianGalois.of_algHom + theorem IsAbelianGalois.of_isCyclic + theorem IsAbelianGalois.tower_bot + theorem IsAbelianGalois.tower_top Modified Mathlib/NumberTheory/Cyclotomic/Basic.lean + theorem IsCyclotomicExtension.isAbelianGalois 2025-10-18 16:04:21 94c059e feat(Algebra/Order/Module): add missing instances (#30544) ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Module/Defs.lean 2025-10-18 15:19:37 ded3210 feat(Analysis): semilinearize `ContinuousLinearMapWOT` (#30597) ESTIMATED CHANGES Modified Mathlib/Analysis/LocallyConvex/WeakOperatorTopology.lean +/- theorem ContinuousLinearMap.toWOT_apply +/- def ContinuousLinearMapWOT.ContinuousLinearMap.toWOTCLM +/- theorem ContinuousLinearMapWOT.add_apply +/- theorem ContinuousLinearMapWOT.continuous_dual_apply +/- theorem ContinuousLinearMapWOT.continuous_inducingFn +/- theorem ContinuousLinearMapWOT.continuous_of_dual_apply_continuous +/- theorem ContinuousLinearMapWOT.ext +/- theorem ContinuousLinearMapWOT.ext_dual +/- theorem ContinuousLinearMapWOT.ext_iff +/- theorem ContinuousLinearMapWOT.hasBasis_seminorms +/- def ContinuousLinearMapWOT.inducingFn +/- theorem ContinuousLinearMapWOT.inducingFn_apply +/- theorem ContinuousLinearMapWOT.isEmbedding_inducingFn +/- theorem ContinuousLinearMapWOT.isInducing_inducingFn +/- theorem ContinuousLinearMapWOT.le_nhds_iff_forall_dual_apply_le_nhds +/- theorem ContinuousLinearMapWOT.neg_apply +/- def ContinuousLinearMapWOT.seminorm +/- def ContinuousLinearMapWOT.seminormFamily +/- theorem ContinuousLinearMapWOT.smul_apply +/- theorem ContinuousLinearMapWOT.sub_apply +/- theorem ContinuousLinearMapWOT.tendsto_iff_forall_dual_apply_tendsto +/- theorem ContinuousLinearMapWOT.withSeminorms +/- theorem ContinuousLinearMapWOT.zero_apply +/- def ContinuousLinearMapWOT 2025-10-18 14:55:33 e568f0d feat: a topological group acts on itself properly (#30387) Both on the left and right, and the same is true (essentially by `inferInstance`) for actions by closed subgroups. As a consequence we get that the quotient by a closed subgroup is Hausdorff (note that [QuotientGroup.instT3Space](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Topology/Algebra/Group/Quotient.html#QuotientGroup.instT3Space) requires the subgroup to be normal !). ESTIMATED CHANGES Modified Mathlib/Topology/Algebra/ProperAction/Basic.lean - theorem t2Space_quotient_mulAction_of_properSMul 2025-10-17 19:01:28 a77a0ae chore(Analysis/Matrix/Order): `IsStrictlyPositive x` iff `x.PosDef` (#30050) ESTIMATED CHANGES Modified Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Instances.lean + theorem IsStrictlyPositive.commute_iff Modified Mathlib/Analysis/Matrix/Order.lean + theorem Matrix.isStrictlyPositive_iff_posDef 2025-10-17 18:28:01 6e8691f refactor(Analysis/InnerProductSpace/Positive): generalize positivity to use `IsSymmetric` instead of `IsSelfAdjoint` and `CompleteSpace` (#30000) The definition of `ContinuousLinearMap.IsPositive` remains the same in complete spaces, but this allows us to use positivity and the partial order without needing completeness. The new definition is now exactly the same as `LinearMap.IsPositive` but for continuous linear maps. To use the old definition (i.e., `IsSelfAdjoint` and ...), instead of unfolding, use `ContinuousLinearMap.isPositive_def'`. `isPositive_iff` is renamed to `isPositive_iff'`, and `isPositive_iff` points to the same thing but with `IsSymmetric` instead of `IsSelfAdjoint`. ESTIMATED CHANGES Modified Mathlib/Analysis/InnerProductSpace/Positive.lean +/- theorem ContinuousLinearMap.IsIdempotentElem.TFAE +/- theorem ContinuousLinearMap.IsIdempotentElem.isPositive_iff_isSelfAdjoint +/- theorem ContinuousLinearMap.IsPositive.adjoint_conj +/- theorem ContinuousLinearMap.IsPositive.conj_adjoint +/- theorem ContinuousLinearMap.IsPositive.inner_left_eq_inner_right +/- theorem ContinuousLinearMap.IsPositive.isSelfAdjoint + theorem ContinuousLinearMap.IsPositive.isSymmetric +/- theorem ContinuousLinearMap.IsPositive.of_isStarProjection +/- theorem ContinuousLinearMap.isPositive_adjoint_comp_self + theorem ContinuousLinearMap.isPositive_def' + theorem ContinuousLinearMap.isPositive_def + theorem ContinuousLinearMap.isPositive_id + theorem ContinuousLinearMap.isPositive_iff' +/- theorem ContinuousLinearMap.isPositive_one +/- theorem ContinuousLinearMap.isPositive_self_comp_adjoint +/- theorem ContinuousLinearMap.isPositive_zero +/- theorem ContinuousLinearMap.isUnit_of_forall_le_norm_inner_map + theorem LinearMap.isPositive_id Modified Mathlib/Analysis/InnerProductSpace/StarOrder.lean 2025-10-17 16:51:18 d167cc6 chore(Analysis/SpecialFunctions/CFC/Rpow/Basic): extra TFAE conditions for nonnegativity (#30340) ESTIMATED CHANGES Modified Mathlib/Analysis/SpecialFunctions/ContinuousFunctionalCalculus/Rpow/Basic.lean + theorem CStarAlgebra.nonneg_iff_isSelfAdjoint_and_negPart_eq_zero 2025-10-17 16:51:16 0b3ea7e feat(Topology/Connected): locally (path-)connected compact spaces have finitely many (path-)connected components (#30316) feat(Topology/Connected): locally (path-)connected compact spaces have finitely many (path-)connected components Locally (path-)connectedness implies all (path-)connected components are open, so they form an open cover. Compactness implies there's a finite subcover. Since the components are disjoint, the subcover must equal the cover. ESTIMATED CHANGES Modified Mathlib/Topology/Connected/Clopen.lean Modified Mathlib/Topology/Connected/LocPathConnected.lean Modified Mathlib/Topology/Connected/LocallyConnected.lean Modified Mathlib/Topology/Connected/PathConnected.lean + theorem ZerothHomotopy.preimage_singleton_eq_pathComponent 2025-10-17 16:01:59 4b2be98 chore: missing fun_prop attribute (#30635) ESTIMATED CHANGES Modified Mathlib/Topology/Continuous.lean 2025-10-17 16:01:57 799e512 chore(Algebra/Group/EvenFunction): don't import torsion-free modules (#30628) All we need here is torsion-free groups. As a prerequisite, restate `neg_eq_zero` and friends for torsion-free groups. They were stated for torsion-free `R`-modules where `R` has char zero, but any such module is a torsion-free group, so this was fake generality. ESTIMATED CHANGES Modified Archive/Imo/Imo1961Q3.lean Modified Mathlib/Algebra/Group/EvenFunction.lean +/- theorem Function.Odd.map_zero Modified Mathlib/Algebra/Group/Torsion.lean + theorem inv_eq_self + theorem inv_ne_self + theorem self_eq_inv + theorem self_ne_inv + theorem sq_eq_one Modified Mathlib/Algebra/NoZeroSMulDivisors/Basic.lean - theorem neg_eq_self - theorem neg_ne_self - theorem self_eq_neg - theorem self_ne_neg - theorem two_nsmul_eq_zero Modified Mathlib/Analysis/Normed/Module/Ball/Action.lean +/- theorem ne_neg_of_mem_sphere Modified Mathlib/Data/Complex/Basic.lean Modified Mathlib/MeasureTheory/Group/Integral.lean Modified Mathlib/NumberTheory/LSeries/ZMod.lean 2025-10-17 16:01:54 5227167 feat: add module instance to ContDiffMapSupportedIn (#30198) Add a module instance for the type `ContDiffMapSupportedIn` of n-times continuously differentiable maps supported in a fixed compact. ESTIMATED CHANGES Modified Mathlib/Analysis/Distribution/ContDiffMapSupportedIn.lean + theorem ContDiffMapSupportedIn.add_apply + def ContDiffMapSupportedIn.coeHom + theorem ContDiffMapSupportedIn.coeHom_injective + theorem ContDiffMapSupportedIn.coe_add + theorem ContDiffMapSupportedIn.coe_coeHom + theorem ContDiffMapSupportedIn.coe_neg + theorem ContDiffMapSupportedIn.coe_smul + theorem ContDiffMapSupportedIn.coe_sub + theorem ContDiffMapSupportedIn.coe_zero + theorem ContDiffMapSupportedIn.neg_apply + theorem ContDiffMapSupportedIn.smul_apply + theorem ContDiffMapSupportedIn.sub_apply + theorem ContDiffMapSupportedIn.toBoundedContinuousFunction_apply + theorem ContDiffMapSupportedIn.zero_apply Modified Mathlib/Data/Set/Function.lean + theorem Set.EqOn.comp_left₂ 2025-10-17 16:01:52 4630367 feat: Finsupp.comapDomain_surjective (#29756) ESTIMATED CHANGES Modified Mathlib/Data/Finsupp/Basic.lean + theorem Finsupp.comapDomain_surjective 2025-10-17 15:40:11 49d2652 chore(Algebra/ModEq): don't import modules (#30614) In particular, don't import torsion-free modules, as here all we need are torsion groups. ESTIMATED CHANGES Modified Mathlib/Algebra/ModEq.lean +/- theorem AddCommGroup.nsmul_modEq_nsmul +/- theorem AddCommGroup.zsmul_modEq_zsmul 2025-10-17 15:40:08 c4286cf feat(CategoryTheory/Monoidal): `mapMon` of a lax-braided functor is lax-braided (#29136) From Toric ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Monoidal/Grp_.lean Modified Mathlib/CategoryTheory/Monoidal/Mon_.lean 2025-10-17 14:39:52 9823cfe chore: generalize Egorov file to measurable edist assumption (#30604) This PR generalizes the lemmas of the Egorov theorem file to use measurability of distances instead of strong measurability of the processes. For the proof of the Kolmogorov-Chentsov theorem in the Brownian process project, we don't have strong measurability of the processes but we have measurability of the distances and we want to use an equivalent of `tendstoInMeasure_of_tendsto_ae`. ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Function/ConvergenceInMeasure.lean + theorem MeasureTheory.tendstoInMeasure_of_tendsto_ae_of_measurable_edist - theorem MeasureTheory.tendstoInMeasure_of_tendsto_ae_of_stronglyMeasurable Modified Mathlib/MeasureTheory/Function/Egorov.lean +/- theorem MeasureTheory.Egorov.exists_notConvergentSeq_lt +/- def MeasureTheory.Egorov.iUnionNotConvergentSeq +/- theorem MeasureTheory.Egorov.iUnionNotConvergentSeq_measurableSet +/- theorem MeasureTheory.Egorov.iUnionNotConvergentSeq_subset +/- theorem MeasureTheory.Egorov.measure_iUnionNotConvergentSeq +/- def MeasureTheory.Egorov.notConvergentSeqLTIndex +/- theorem MeasureTheory.Egorov.notConvergentSeqLTIndex_spec + theorem MeasureTheory.tendstoUniformlyOn_of_ae_tendsto_of_measurable_edist' + theorem MeasureTheory.tendstoUniformlyOn_of_ae_tendsto_of_measurable_edist 2025-10-17 14:39:50 9254cb8 feat: add Finset lemmas (#30539) Co-authored by: @AntoineChambert-Loir ESTIMATED CHANGES Modified Mathlib/Algebra/BigOperators/Group/Finset/Basic.lean + theorem Finset.prod_comp_equiv + theorem Finset.prod_map_equiv Modified Mathlib/Data/Finsupp/Defs.lean + theorem Finsupp.ofSupportFinite_support 2025-10-17 14:39:48 b163c0b chore: mark one lemma as simp (#30529) From `fpvandoorn` and my upcoming Lean course; this seems like a useful simp lemma in general. ESTIMATED CHANGES Modified Mathlib/Algebra/GroupWithZero/Units/Basic.lean 2025-10-17 14:39:47 108140a chore: use `grw`, `gcongr` more (#30508) Golf many proofs using `grw`, `gcongr`, `cutsat`, `linarith`... For this, tag a few more lemmas with `gcongr`, and make some existing ones stronger. The goal here is not necessarily to golf (although it usually is the case), but instead to reduce the number of explicit mentions of lemmas, as these are a maintainability concern. The precise golfs that are performed are motivated by #30242, where four pairs of very basic and widespread lemmas get swapped. The best way to reduce the number of swaps needed is to simply not mention the lemmas explicitly. ESTIMATED CHANGES Modified Archive/Imo/Imo2001Q3.lean Modified Mathlib/Algebra/AddConstMap/Basic.lean Modified Mathlib/Algebra/AlgebraicCard.lean Modified Mathlib/Algebra/MonoidAlgebra/Degree.lean +/- theorem AddMonoidAlgebra.le_inf_support_mul +/- theorem AddMonoidAlgebra.sup_support_mul_le Modified Mathlib/Algebra/MvPolynomial/Degrees.lean Modified Mathlib/Algebra/MvPolynomial/SchwartzZippel.lean Modified Mathlib/Algebra/Order/BigOperators/Group/Finset.lean Modified Mathlib/Algebra/Order/BigOperators/Group/List.lean Modified Mathlib/Algebra/Order/BigOperators/Group/Multiset.lean Modified Mathlib/Algebra/Order/BigOperators/Ring/Finset.lean Modified Mathlib/Algebra/Order/CauSeq/BigOperators.lean Modified Mathlib/Algebra/Order/Field/Canonical.lean Modified Mathlib/Algebra/Order/Group/Abs.lean +/- theorem mabs_mul_three Modified Mathlib/Algebra/Order/Group/Finset.lean Modified Mathlib/Algebra/Order/Group/Int/Sum.lean Modified Mathlib/Algebra/Order/Group/Pointwise/Interval.lean Modified Mathlib/Algebra/Order/Group/Unbundled/Abs.lean Modified Mathlib/Algebra/Order/GroupWithZero/WithZero.lean Modified Mathlib/Algebra/Order/Interval/Set/Monoid.lean Modified Mathlib/Algebra/Order/Kleene.lean +/- theorem kstar_mul_le +/- theorem mul_kstar_le Modified Mathlib/Algebra/Order/Monoid/Basic.lean Modified Mathlib/Algebra/Order/Monoid/NatCast.lean Modified Mathlib/Algebra/Order/Monoid/Unbundled/Basic.lean Modified Mathlib/Algebra/Order/Monoid/Unbundled/Pow.lean Modified Mathlib/Algebra/Order/Monoid/Unbundled/WithTop.lean Modified Mathlib/Algebra/Order/Quantale.lean Modified Mathlib/Algebra/Order/Ring/Basic.lean Modified Mathlib/Algebra/Order/Ring/GeomSum.lean Modified Mathlib/Algebra/Order/Ring/Unbundled/Basic.lean Modified Mathlib/Algebra/Order/Star/Basic.lean Modified Mathlib/Algebra/Order/Sub/Defs.lean +/- theorem add_le_add_add_tsub Modified Mathlib/Algebra/Order/Sub/Unbundled/Basic.lean +/- theorem add_le_of_le_tsub_left_of_le +/- theorem add_le_of_le_tsub_right_of_le Modified Mathlib/Algebra/Polynomial/AlgebraMap.lean Modified Mathlib/Algebra/Polynomial/Degree/Definitions.lean Modified Mathlib/Algebra/Polynomial/Degree/Lemmas.lean Modified Mathlib/Algebra/Polynomial/Degree/Operations.lean Modified Mathlib/Algebra/Polynomial/Monic.lean Modified Mathlib/Algebra/Polynomial/UnitTrinomial.lean Modified Mathlib/AlgebraicGeometry/EllipticCurve/Affine/Point.lean Modified Mathlib/AlgebraicGeometry/ProjectiveSpectrum/Proper.lean Modified Mathlib/Analysis/Analytic/CPolynomialDef.lean Modified Mathlib/Analysis/Asymptotics/TVS.lean Modified Mathlib/Analysis/BoxIntegral/Box/Basic.lean Modified Mathlib/Analysis/BoxIntegral/Integrability.lean Modified Mathlib/Analysis/CStarAlgebra/Multiplier.lean Modified Mathlib/Analysis/Calculus/ContDiff/Basic.lean Modified Mathlib/Analysis/Calculus/ContDiff/Bounds.lean Modified Mathlib/Analysis/Calculus/ContDiff/Defs.lean Modified Mathlib/Analysis/Calculus/FDeriv/Measurable.lean Modified Mathlib/Analysis/Calculus/LocalExtr/Polynomial.lean Modified Mathlib/Analysis/Complex/Exponential.lean Modified Mathlib/Analysis/Convex/Birkhoff.lean Modified Mathlib/Analysis/Convex/Gauge.lean Modified Mathlib/Analysis/Convex/SpecificFunctions/Basic.lean Modified Mathlib/Analysis/InnerProductSpace/Projection/Minimal.lean Modified Mathlib/Analysis/Normed/Affine/ContinuousAffineMap.lean Modified Mathlib/Analysis/Normed/Algebra/Spectrum.lean Modified Mathlib/Analysis/Normed/Group/Uniform.lean Modified Mathlib/Analysis/Normed/Order/UpperLower.lean Modified Mathlib/Analysis/Normed/Unbundled/SeminormFromConst.lean Modified Mathlib/Analysis/NormedSpace/ENormedSpace.lean Modified Mathlib/Analysis/NormedSpace/Extr.lean Modified Mathlib/Analysis/ODE/Gronwall.lean Modified Mathlib/Analysis/ODE/PicardLindelof.lean Modified Mathlib/Analysis/PSeries.lean Modified Mathlib/Analysis/Real/Hyperreal.lean +/- theorem Hyperreal.isSt_sSup Modified Mathlib/Analysis/SpecialFunctions/Exp.lean Modified Mathlib/Analysis/SpecialFunctions/Log/Summable.lean Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Basic.lean Modified Mathlib/Analysis/SpecificLimits/Basic.lean Modified Mathlib/Analysis/SpecificLimits/FloorPow.lean Modified Mathlib/Analysis/Subadditive.lean Modified Mathlib/Combinatorics/Additive/CauchyDavenport.lean Modified Mathlib/Combinatorics/Additive/VerySmallDoubling.lean Modified Mathlib/Combinatorics/Enumerative/Composition.lean Modified Mathlib/Combinatorics/Extremal/RuzsaSzemeredi.lean + theorem ruzsaSzemerediNumberNat_le_ruzsaSzemerediNumberNat +/- theorem ruzsaSzemerediNumberNat_mono Modified Mathlib/Combinatorics/Matroid/Basic.lean Modified Mathlib/Combinatorics/Matroid/Rank/ENat.lean Modified Mathlib/Combinatorics/Schnirelmann.lean Modified Mathlib/Combinatorics/SetFamily/HarrisKleitman.lean Modified Mathlib/Combinatorics/SetFamily/Kleitman.lean Modified Mathlib/Combinatorics/SetFamily/KruskalKatona.lean Modified Mathlib/Combinatorics/SetFamily/LYM.lean Modified Mathlib/Combinatorics/SimpleGraph/Clique.lean Modified Mathlib/Combinatorics/SimpleGraph/Extremal/Turan.lean Modified Mathlib/Combinatorics/SimpleGraph/Regularity/Bound.lean Modified Mathlib/Combinatorics/SimpleGraph/Regularity/Chunk.lean Modified Mathlib/Combinatorics/SimpleGraph/Regularity/Increment.lean Modified Mathlib/Combinatorics/SimpleGraph/Regularity/Uniform.lean + theorem Finpartition.card_nonuniformWitnesses_le Modified Mathlib/Combinatorics/SimpleGraph/Triangle/Removal.lean Modified Mathlib/Computability/Ackermann.lean Modified Mathlib/Computability/Language.lean Modified Mathlib/Data/DFinsupp/Lex.lean Modified Mathlib/Data/ENNReal/Operations.lean Modified Mathlib/Data/ENat/Lattice.lean Modified Mathlib/Data/EReal/Operations.lean Modified Mathlib/Data/Finset/Filter.lean Modified Mathlib/Data/Finset/Union.lean Modified Mathlib/Data/Finsupp/MonomialOrder.lean Modified Mathlib/Data/Int/Basic.lean Modified Mathlib/Data/Int/LeastGreatest.lean Modified Mathlib/Data/NNReal/Defs.lean Modified Mathlib/Data/Nat/Cast/Order/Ring.lean Modified Mathlib/Data/Nat/Choose/Factorization.lean Modified Mathlib/Data/Nat/Count.lean +/- theorem Nat.count_mono_left Modified Mathlib/Data/Nat/Digits/Defs.lean Modified Mathlib/Data/Nat/Dist.lean +/- theorem Nat.dist_add_add_right +/- theorem Nat.dist_eq_intro +/- theorem Nat.dist_eq_max_sub_min +/- theorem Nat.dist_eq_sub_of_le +/- theorem Nat.dist_eq_zero +/- theorem Nat.dist_pos_of_ne +/- theorem Nat.dist_succ_succ +/- theorem Nat.dist_tri_left' +/- theorem Nat.dist_tri_left +/- theorem Nat.dist_tri_right' +/- theorem Nat.dist_tri_right +/- theorem Nat.dist_zero_left +/- theorem Nat.dist_zero_right +/- theorem Nat.eq_of_dist_eq_zero Modified Mathlib/Data/Nat/Factorization/Basic.lean Modified Mathlib/Data/Nat/Fib/Zeckendorf.lean Modified Mathlib/Data/Nat/Totient.lean Modified Mathlib/Data/Num/ZNum.lean Modified Mathlib/Data/Set/Equitable.lean Modified Mathlib/Dynamics/Circle/RotationNumber/TranslationNumber.lean Modified Mathlib/Geometry/Manifold/VectorField/LieBracket.lean Modified Mathlib/GroupTheory/Archimedean.lean Modified Mathlib/GroupTheory/Index.lean Modified Mathlib/GroupTheory/MonoidLocalization/Order.lean Modified Mathlib/GroupTheory/Perm/Cycle/Type.lean Modified Mathlib/InformationTheory/Hamming.lean Modified Mathlib/LinearAlgebra/AffineSpace/FiniteDimensional.lean Modified Mathlib/LinearAlgebra/AffineSpace/Ordered.lean Modified Mathlib/LinearAlgebra/Dimension/LinearMap.lean Modified Mathlib/MeasureTheory/Constructions/Polish/Basic.lean Modified Mathlib/MeasureTheory/Covering/Besicovitch.lean Modified Mathlib/MeasureTheory/Covering/BesicovitchVectorSpace.lean Modified Mathlib/MeasureTheory/Covering/Differentiation.lean Modified Mathlib/MeasureTheory/Function/ConditionalExpectation/CondexpL2.lean Modified Mathlib/MeasureTheory/Function/Jacobian.lean Modified Mathlib/MeasureTheory/Function/L1Space/Integrable.lean Modified Mathlib/MeasureTheory/Function/LpSpace/Indicator.lean Modified Mathlib/MeasureTheory/Function/SimpleFuncDense.lean Modified Mathlib/MeasureTheory/Function/UniformIntegrable.lean Modified Mathlib/MeasureTheory/Integral/Bochner/Basic.lean Modified Mathlib/MeasureTheory/Integral/Bochner/VitaliCaratheodory.lean Modified Mathlib/MeasureTheory/Integral/Lebesgue/Add.lean Modified Mathlib/MeasureTheory/Integral/SetToL1.lean Modified Mathlib/MeasureTheory/Measure/Content.lean Modified Mathlib/MeasureTheory/Measure/Decomposition/Hahn.lean Modified Mathlib/MeasureTheory/Measure/Doubling.lean Modified Mathlib/MeasureTheory/Measure/LevyProkhorovMetric.lean Modified Mathlib/MeasureTheory/Measure/Regular.lean Modified Mathlib/MeasureTheory/Measure/Typeclasses/Finite.lean Modified Mathlib/MeasureTheory/Measure/WithDensity.lean Modified Mathlib/MeasureTheory/OuterMeasure/Caratheodory.lean Modified Mathlib/MeasureTheory/VectorMeasure/Basic.lean Modified Mathlib/ModelTheory/Encoding.lean Modified Mathlib/ModelTheory/Semantics.lean Modified Mathlib/ModelTheory/Syntax.lean Modified Mathlib/NumberTheory/AbelSummation.lean Modified Mathlib/NumberTheory/Bertrand.lean Modified Mathlib/NumberTheory/Dioph.lean +/- theorem Poly.sumsq_nonneg Modified Mathlib/NumberTheory/Divisors.lean Modified Mathlib/NumberTheory/EllipticDivisibilitySequence.lean Modified Mathlib/NumberTheory/Harmonic/Bounds.lean Modified Mathlib/NumberTheory/Padics/PadicVal/Basic.lean Modified Mathlib/NumberTheory/PellMatiyasevic.lean Modified Mathlib/NumberTheory/PrimeCounting.lean Modified Mathlib/NumberTheory/Primorial.lean Modified Mathlib/NumberTheory/SmoothNumbers.lean Modified Mathlib/NumberTheory/SumPrimeReciprocals.lean Modified Mathlib/NumberTheory/Zsqrtd/Basic.lean Modified Mathlib/NumberTheory/Zsqrtd/QuadraticReciprocity.lean Modified Mathlib/Order/Filter/AtTopBot/Monoid.lean Modified Mathlib/Order/Filter/Germ/OrderedMonoid.lean Modified Mathlib/Order/Height.lean Modified Mathlib/Order/KrullDimension.lean Modified Mathlib/Order/SuccPred/LinearLocallyFinite.lean Modified Mathlib/Probability/Kernel/Disintegration/Basic.lean Modified Mathlib/Probability/Kernel/WithDensity.lean Modified Mathlib/Probability/StrongLaw.lean Modified Mathlib/RingTheory/DedekindDomain/Factorization.lean Modified Mathlib/RingTheory/DedekindDomain/Ideal/Lemmas.lean Modified Mathlib/RingTheory/DedekindDomain/PID.lean Modified Mathlib/RingTheory/Finiteness/Subalgebra.lean Modified Mathlib/RingTheory/GradedAlgebra/Radical.lean Modified Mathlib/RingTheory/HahnSeries/Multiplication.lean Modified Mathlib/RingTheory/KrullDimension/NonZeroDivisors.lean Modified Mathlib/RingTheory/MvPolynomial/Groebner.lean Modified Mathlib/RingTheory/MvPolynomial/MonomialOrder.lean Modified Mathlib/RingTheory/MvPowerSeries/Inverse.lean Modified Mathlib/RingTheory/MvPowerSeries/Order.lean Modified Mathlib/RingTheory/PowerSeries/Order.lean Modified Mathlib/RingTheory/Valuation/Archimedean.lean Modified Mathlib/RingTheory/Valuation/ExtendToLocalization.lean Modified Mathlib/RingTheory/Valuation/Integers.lean Modified Mathlib/RingTheory/Valuation/ValuativeRel/Basic.lean Modified Mathlib/SetTheory/Cardinal/Aleph.lean Modified Mathlib/SetTheory/Cardinal/Arithmetic.lean Modified Mathlib/SetTheory/Cardinal/CountableCover.lean Modified Mathlib/SetTheory/Cardinal/Order.lean Modified Mathlib/SetTheory/Ordinal/Arithmetic.lean Modified Mathlib/SetTheory/Ordinal/Exponential.lean Modified Mathlib/SetTheory/Ordinal/FixedPoint.lean Modified Mathlib/SetTheory/Ordinal/NaturalOps.lean Modified Mathlib/SetTheory/Ordinal/Notation.lean Modified Mathlib/SetTheory/Ordinal/Principal.lean Modified Mathlib/SetTheory/PGame/Algebra.lean Modified Mathlib/SetTheory/Surreal/Dyadic.lean Modified Mathlib/Tactic/LinearCombination/Lemmas.lean Modified Mathlib/Topology/Algebra/Order/LiminfLimsup.lean Modified Mathlib/Topology/Algebra/Valued/ValuedField.lean Modified Mathlib/Topology/CWComplex/Classical/Basic.lean Modified Mathlib/Topology/ContinuousMap/Bounded/Normed.lean Modified Mathlib/Topology/ContinuousMap/ZeroAtInfty.lean Modified Mathlib/Topology/EMetricSpace/BoundedVariation.lean Modified Mathlib/Topology/EMetricSpace/Defs.lean +/- theorem edist_triangle4 Modified Mathlib/Topology/Instances/ENNReal/Lemmas.lean Modified Mathlib/Topology/MetricSpace/Algebra.lean Modified Mathlib/Topology/MetricSpace/Antilipschitz.lean Modified Mathlib/Topology/MetricSpace/Bounded.lean Modified Mathlib/Topology/MetricSpace/Contracting.lean Modified Mathlib/Topology/MetricSpace/Dilation.lean Modified Mathlib/Topology/MetricSpace/Gluing.lean +/- theorem Metric.Sum.one_le_dist_inl_inr Modified Mathlib/Topology/MetricSpace/GromovHausdorffRealized.lean Modified Mathlib/Topology/MetricSpace/HausdorffDistance.lean Modified Mathlib/Topology/MetricSpace/Pseudo/Defs.lean Modified Mathlib/Topology/MetricSpace/Thickening.lean Modified Mathlib/Topology/Metrizable/Uniformity.lean Modified Mathlib/Topology/UnitInterval.lean Modified Mathlib/Topology/UrysohnsLemma.lean 2025-10-17 12:35:31 5a6cfc3 fix: Improve definition of `SimplexCategoryGenRel.IsAdmissible` (#30586) Give `SimplexCategoryGenRel.IsAdmissible` an inductive definition equivalent to its prior definition. ESTIMATED CHANGES Modified Mathlib/AlgebraicTopology/SimplexCategory/GeneratorsRelations/NormalForms.lean +/- theorem SimplexCategoryGenRel.IsAdmissible.cons +/- def SimplexCategoryGenRel.IsAdmissible.getElemAsFin + theorem SimplexCategoryGenRel.IsAdmissible.getElem_lt +/- def SimplexCategoryGenRel.IsAdmissible.head +/- theorem SimplexCategoryGenRel.IsAdmissible.head_lt + theorem SimplexCategoryGenRel.IsAdmissible.isChain +/- theorem SimplexCategoryGenRel.IsAdmissible.le + theorem SimplexCategoryGenRel.IsAdmissible.mono - theorem SimplexCategoryGenRel.IsAdmissible.nil + theorem SimplexCategoryGenRel.IsAdmissible.of_cons + theorem SimplexCategoryGenRel.IsAdmissible.pairwise + theorem SimplexCategoryGenRel.IsAdmissible.simplicialEvalσ_succ_getElem - theorem SimplexCategoryGenRel.IsAdmissible.sorted - theorem SimplexCategoryGenRel.IsAdmissible.tail + inductive SimplexCategoryGenRel.IsAdmissible - def SimplexCategoryGenRel.IsAdmissible + theorem SimplexCategoryGenRel.isAdmissible_cons_cons_iff + theorem SimplexCategoryGenRel.isAdmissible_cons_iff + theorem SimplexCategoryGenRel.isAdmissible_iff_isChain_and_le + theorem SimplexCategoryGenRel.isAdmissible_iff_pairwise_and_le + theorem SimplexCategoryGenRel.isAdmissible_of_isChain_of_forall_getElem_le + theorem SimplexCategoryGenRel.isAdmissible_singleton_iff + theorem SimplexCategoryGenRel.simplicialEvalσ_of_le_mem - theorem SimplexCategoryGenRel.simplicialEvalσ_of_lt_mem Modified Mathlib/Data/List/Chain.lean - theorem List.IsChain.cons' + theorem List.IsChain.cons + theorem List.IsChain.of_cons +/- theorem List.IsChain.tail - theorem List.isChain_cons' + theorem List.isChain_cons Modified Mathlib/Data/List/SplitBy.lean Modified Mathlib/Data/Nat/Fib/Zeckendorf.lean Modified Mathlib/GroupTheory/CoprodI.lean Modified Mathlib/GroupTheory/HNNExtension.lean Modified Mathlib/Order/Height.lean Modified Mathlib/Topology/Category/Profinite/Nobeling/Span.lean Modified scripts/nolints_prime_decls.txt 2025-10-17 12:10:18 40f9b4e feat(CategoryTheory): `Exists` gives images (#30088) We show that (the underlying arrow of) `(exists f.obj) x` is an image. This is a prerequisite of the [MTT project](https://github.com/kyoDralliam/model-theory-topos), which aims to use the internal language of toposes to reason about e.g. sheaves. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Limits/Shapes/Images.lean + def CategoryTheory.Limits.Image.imageFactorisation + def CategoryTheory.Limits.ImageFactorisation.copy + def CategoryTheory.Limits.ImageFactorisation.ofIsoI + def CategoryTheory.Limits.IsImage.copy + def CategoryTheory.Limits.IsImage.ofIsoI + def CategoryTheory.Limits.MonoFactorisation.copy + def CategoryTheory.Limits.MonoFactorisation.ofIsoI Modified Mathlib/CategoryTheory/Skeletal.lean Modified Mathlib/CategoryTheory/Subobject/Basic.lean + def CategoryTheory.Subobject.existsCompRepresentativeIso + def CategoryTheory.Subobject.existsIsoImage + def CategoryTheory.Subobject.imageFactorisation + def CategoryTheory.Subobject.lowerCompRepresentativeIso 2025-10-17 10:08:37 ae97c1b doc(Combinatorics): fix typos (#30621) Found with the help of Codex. ESTIMATED CHANGES Modified Mathlib/Combinatorics/Additive/FreimanHom.lean Modified Mathlib/Combinatorics/Enumerative/DyckWord.lean Modified Mathlib/Combinatorics/Quiver/Cast.lean Modified Mathlib/Combinatorics/SetFamily/AhlswedeZhang.lean Modified Mathlib/Combinatorics/SimpleGraph/CompleteMultipartite.lean Modified Mathlib/Combinatorics/SimpleGraph/ConcreteColorings.lean Modified Mathlib/Combinatorics/SimpleGraph/Copy.lean Modified Mathlib/Combinatorics/SimpleGraph/Extremal/TuranDensity.lean Modified Mathlib/Combinatorics/SimpleGraph/FiveWheelLike.lean 2025-10-17 08:48:49 2528a23 feat(Analysis/InnerProductSpace/TensorProduct): `LinearIsometry.lTensor` and `.rTensor` (#30613) This adds the linear isometry versions of `LinearMap.lTensor` and `LinearMap.rTensor`. ESTIMATED CHANGES Modified Mathlib/Analysis/InnerProductSpace/TensorProduct.lean + def LinearIsometry.lTensor + theorem LinearIsometry.lTensor_apply + theorem LinearIsometry.lTensor_def + def LinearIsometry.rTensor + theorem LinearIsometry.rTensor_apply + theorem LinearIsometry.rTensor_def + theorem LinearIsometry.toLinearMap_lTensor + theorem LinearIsometry.toLinearMap_rTensor + def LinearIsometryEquiv.lTensor + theorem LinearIsometryEquiv.lTensor_apply + theorem LinearIsometryEquiv.lTensor_def + def LinearIsometryEquiv.rTensor + theorem LinearIsometryEquiv.rTensor_apply + theorem LinearIsometryEquiv.rTensor_def + theorem LinearIsometryEquiv.symm_lTensor + theorem LinearIsometryEquiv.symm_rTensor + theorem LinearIsometryEquiv.toLinearEquiv_lTensor + theorem LinearIsometryEquiv.toLinearEquiv_rTensor + theorem LinearIsometryEquiv.toLinearIsometry_lTensor + theorem LinearIsometryEquiv.toLinearIsometry_rTensor + theorem TensorProduct.congrIsometry_refl_refl + theorem TensorProduct.mapIsometry_id_id 2025-10-17 08:10:26 397c810 chore(NumberTheory/ArithmeticFunction): remove notation scope (#30465) Right now, the notations `ζ`, `σ`, `ω`, `Ω` and `μ` for arithmetic functions exist in the scope `ArithmeticFunction` and in additional scopes `ArithmeticFunction.zeta` etc. This leads to an "ambiguous notation" error when both are open (even though both interpretations result in exactly the same term). We fix this by removing the notations from `ArithmeticFunction`, only leaving the fine-grained per-function access. (Cleaning up after myself here; I had introduced the duplication at some point. A better solution would be for Lean to check whether conflicting notations actually lead to the same result and in this case not give an error.) ESTIMATED CHANGES Modified Archive/Wiedijk100Theorems/PerfectNumbers.lean Modified Mathlib/Algebra/Order/Antidiag/Nat.lean Modified Mathlib/NumberTheory/ArithmeticFunction.lean Modified Mathlib/NumberTheory/LSeries/Dirichlet.lean Modified Mathlib/NumberTheory/TsumDivsorsAntidiagonal.lean Modified Mathlib/NumberTheory/VonMangoldt.lean Modified Mathlib/RingTheory/Polynomial/Cyclotomic/Basic.lean Modified MathlibTest/ArithMult.lean 2025-10-17 07:57:00 fb8b831 chore(IsPrimitiveRoot): cleanup statement of `IsPrimitiveRoot.prime_dvd_of_dvd_norm_sub_one` (#30581) A hypothesis in the statement of this function uses a `let` as can be seen in the doc: [IsPrimitiveRoot.prime_dvd_of_dvd_norm_sub_one](https://leanprover-community.github.io/mathlib4_docs/Mathlib/NumberTheory/NumberField/Cyclotomic/Basic.html#IsPrimitiveRoot.prime_dvd_of_dvd_norm_sub_one). It should be a `haveI`. This is fixed in this PR. ESTIMATED CHANGES Modified Mathlib/NumberTheory/NumberField/Cyclotomic/Basic.lean 2025-10-17 07:05:29 acb60b6 chore: golf proof for `choose_le_two_pow` (#30617) This is a quick PR for golf I noticed on a lemma bounding `Nat.choose` ESTIMATED CHANGES Modified Mathlib/Data/Nat/Choose/Bounds.lean 2025-10-16 23:23:40 0008c2f doc(AlgebraicTopology): fix typos (#30616) Issues found with the help of Codex. ESTIMATED CHANGES Modified Mathlib/AlgebraicTopology/DoldKan/NReflectsIso.lean Modified Mathlib/AlgebraicTopology/ModelCategory/Basic.lean Modified Mathlib/AlgebraicTopology/RelativeCellComplex/Basic.lean Modified Mathlib/AlgebraicTopology/SimplexCategory/GeneratorsRelations/Basic.lean Modified Mathlib/AlgebraicTopology/SimplexCategory/GeneratorsRelations/NormalForms.lean Modified Mathlib/AlgebraicTopology/SimplicialNerve.lean Modified Mathlib/AlgebraicTopology/SimplicialSet/Horn.lean Modified Mathlib/AlgebraicTopology/SimplicialSet/NerveNondegenerate.lean 2025-10-16 23:23:38 298f0c4 doc: fixes for Turing machine docs (#30500) Fixes found by Junie Pro. ESTIMATED CHANGES Modified Mathlib/Computability/PostTuringMachine.lean Modified Mathlib/Computability/TuringMachine.lean 2025-10-16 22:37:38 d3bd8e5 feat(Positivity): add support for `positivity [h₁, h₂]` syntax (#30388) Related issue: #2427 ESTIMATED CHANGES Modified Mathlib/Tactic/Positivity/Core.lean Modified MathlibTest/positivity.lean 2025-10-16 19:17:46 4e56e21 feat(Data/Nat): define `Nat.nthRoot` (#28768) Define `Nat.nthRoot n a` to be the `n`th root of a natural number `a`. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/SpecialFunctions/Pow/NthRootLemmas.lean + theorem Nat.exists_pow_eq_iff' + theorem Nat.exists_pow_eq_iff + theorem Nat.le_nthRoot_iff + theorem Nat.lt_pow_nthRoot_add_one + theorem Nat.nthRoot.lt_pow_go_succ_aux + theorem Nat.nthRoot_eq_of_le_of_lt + theorem Nat.nthRoot_lt_iff + theorem Nat.nthRoot_one_left + theorem Nat.nthRoot_one_right + theorem Nat.nthRoot_pow + theorem Nat.nthRoot_zero_left + theorem Nat.nthRoot_zero_right + theorem Nat.pow_nthRoot_le_iff Added Mathlib/Data/Nat/NthRoot/Defs.lean + def Nat.nthRoot 2025-10-16 16:35:38 4b0359c refactor: define `≤`/`<` on `WithBot`/`WithTop` by induction (#19668) The motivation for this change is that it is really confusing to run `intro r s shouldnthaveintroedthat` on a goal of the form `∀ r s : ℝ≥0∞, r ≤ s` and get the nonsense-looking goal `r = ↑shouldnthaveintroedthat → ∃ b : α, s = ↑b ∧ shouldnthaveintroedthat ≤ b⟩` instead of an error, and similarly when destructing something of the form `∃ r s : ℝ≥0∞, r < s`. Furthermore, I suspect this improves performance. ESTIMATED CHANGES Modified Mathlib/Algebra/Order/GroupWithZero/Canonical.lean +/- theorem WithZero.coe_le_coe +/- theorem WithZero.coe_le_iff + theorem WithZero.le_coe_iff +/- theorem WithZero.le_def + theorem WithZero.le_unzero_iff + theorem WithZero.lt_coe_iff +/- theorem WithZero.lt_def + theorem WithZero.lt_iff_exists_coe + theorem WithZero.lt_unzero_iff +/- theorem WithZero.not_coe_le_zero + theorem WithZero.unbot_le_iff +/- theorem WithZero.unzero_le_unzero + theorem WithZero.unzero_lt_iff +/- theorem WithZero.zero_le Modified Mathlib/Analysis/Analytic/OfScalars.lean Modified Mathlib/Analysis/Oscillation.lean Modified Mathlib/Data/Finset/Lattice/Fold.lean Modified Mathlib/Data/Finset/Max.lean +/- theorem Finset.max_of_mem +/- theorem Finset.min_of_mem Modified Mathlib/LinearAlgebra/Eigenspace/Triangularizable.lean Modified Mathlib/MeasureTheory/Integral/Lebesgue/Countable.lean Modified Mathlib/MeasureTheory/Measure/LevyProkhorovMetric.lean Modified Mathlib/Order/Interval/Basic.lean Modified Mathlib/Order/Interval/Set/WithBotTop.lean +/- theorem WithBot.range_coe Modified Mathlib/Order/KrullDimension.lean Modified Mathlib/Order/WithBot.lean +/- theorem WithBot.coe_le_iff +/- theorem WithBot.le_coe_iff +/- theorem WithBot.le_def + theorem WithBot.le_iff_forall +/- theorem WithBot.lt_def + theorem WithBot.unbot_le_unbot + theorem WithBot.unbot_lt_unbot +/- theorem WithTop.coe_le_iff +/- theorem WithTop.le_coe_iff +/- theorem WithTop.le_def + theorem WithTop.le_iff_forall +/- theorem WithTop.lt_def Modified Mathlib/Probability/Moments/Variance.lean Modified Mathlib/RingTheory/PowerBasis.lean Modified Mathlib/Topology/MetricSpace/Holder.lean Modified Mathlib/Topology/MetricSpace/HolderNorm.lean Modified Mathlib/Topology/Order/WithTop.lean Modified MathlibTest/hint.lean 2025-10-16 16:17:02 21259a9 feat(Analysis/InnerProductSpace): define the inner product on tensor products (#27228) This defines the inner product on tensor product spaces. Also defines `OrthonormalBasis.tensorProduct`. The implementation is based on [here](https://github.com/ocfnash/lean-shannon-lovasz/blob/e63e535599ffb3c2a7e995e1621847693dd68fab/src/to_mathlib/analysis/inner_product_space/tensor_product.lean#L404) (by @jjaassoonn), which defines the inner product on real tensor product spaces. The exact same implementation also applies for the general case. Closes #6020 ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Analysis/InnerProductSpace/Basic.lean + theorem ext_iff_inner_left + theorem ext_iff_inner_right Added Mathlib/Analysis/InnerProductSpace/TensorProduct.lean + theorem Orthonormal.basisTensorProduct + theorem Orthonormal.tmul + theorem OrthonormalBasis.tensorProduct_apply' + theorem OrthonormalBasis.tensorProduct_apply + theorem OrthonormalBasis.tensorProduct_repr_tmul_apply' + theorem OrthonormalBasis.tensorProduct_repr_tmul_apply + theorem OrthonormalBasis.toBasis_tensorProduct + theorem RCLike.inner_tmul_eq + theorem TensorProduct.adjoint_map + def TensorProduct.assocIsometry + theorem TensorProduct.assocIsometry_apply + theorem TensorProduct.assocIsometry_symm_apply + def TensorProduct.commIsometry + theorem TensorProduct.commIsometry_apply + theorem TensorProduct.commIsometry_symm + def TensorProduct.congrIsometry + theorem TensorProduct.congrIsometry_apply + theorem TensorProduct.congrIsometry_symm + theorem TensorProduct.dist_tmul_le + theorem TensorProduct.edist_tmul_le + theorem TensorProduct.enorm_assoc + theorem TensorProduct.enorm_comm + theorem TensorProduct.enorm_lid + theorem TensorProduct.enorm_map + theorem TensorProduct.enorm_tmul + theorem TensorProduct.ext_iff_inner_left_threefold' + theorem TensorProduct.ext_iff_inner_left_threefold + theorem TensorProduct.ext_iff_inner_right_threefold' + theorem TensorProduct.ext_iff_inner_right_threefold + theorem TensorProduct.inner_assoc_assoc + theorem TensorProduct.inner_comm_comm + theorem TensorProduct.inner_lid_lid + theorem TensorProduct.inner_mapIncl_mapIncl + theorem TensorProduct.inner_map_map + theorem TensorProduct.inner_tmul + def TensorProduct.lidIsometry + theorem TensorProduct.lidIsometry_apply + theorem TensorProduct.lidIsometry_symm_apply + def TensorProduct.mapInclIsometry + theorem TensorProduct.mapInclIsometry_apply + def TensorProduct.mapIsometry + theorem TensorProduct.mapIsometry_apply + theorem TensorProduct.nndist_tmul_le + theorem TensorProduct.nnnorm_assoc + theorem TensorProduct.nnnorm_comm + theorem TensorProduct.nnnorm_lid + theorem TensorProduct.nnnorm_map + theorem TensorProduct.nnnorm_tmul + theorem TensorProduct.norm_assoc + theorem TensorProduct.norm_comm + theorem TensorProduct.norm_lid + theorem TensorProduct.norm_map + theorem TensorProduct.norm_tmul + theorem TensorProduct.toLinearEquiv_assocIsometry + theorem TensorProduct.toLinearEquiv_commIsometry + theorem TensorProduct.toLinearEquiv_congrIsometry + theorem TensorProduct.toLinearEquiv_lidIsometry + theorem TensorProduct.toLinearMap_mapInclIsometry + theorem TensorProduct.toLinearMap_mapIsometry 2025-10-16 15:36:47 18d7b57 feat: asymptotic cone of a set (#27292) This PR defines the asymptotic cone of a set in a normed affine space and proves its main properties. This is partial progress towards showing that an unbounded finite-dimensional convex set contains a ray. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/Normed/Affine/AsymptoticCone.lean + theorem AffineSpace.asymptoticNhds_le_cobounded + theorem AffineSpace.cobounded_eq_iSup_sphere_asymptoticNhds + theorem asymptoticCone_subset_singleton_of_bounded + theorem isBounded_iff_asymptoticCone_subset_singleton + theorem not_bounded_iff_exists_ne_zero_mem_asymptoticCone Modified Mathlib/Order/Filter/Map.lean + theorem Filter.biSup_pure_eq_principal + theorem Filter.iSup_pure_eq_top Added Mathlib/Topology/Algebra/AsymptoticCone.lean + def AffineSpace.asymptoticNhds + theorem AffineSpace.asymptoticNhds_bind_asymptoticNhds + theorem AffineSpace.asymptoticNhds_bind_nhds + theorem AffineSpace.asymptoticNhds_eq_smul + theorem AffineSpace.asymptoticNhds_eq_smul_vadd + theorem AffineSpace.asymptoticNhds_smul + theorem AffineSpace.asymptoticNhds_vadd_pure + theorem AffineSpace.asymptoticNhds_zero + theorem AffineSpace.nhds_bind_asymptoticNhds + theorem AffineSpace.vadd_asymptoticNhds + theorem Convex.smul_vadd_mem_of_isClosed_of_mem_asymptoticCone + theorem Convex.smul_vadd_mem_of_mem_nhds_of_mem_asymptoticCone + theorem Filter.Tendsto.asymptoticNhds_vadd_const + theorem Filter.Tendsto.atTop_smul_const_tendsto_asymptoticNhds + theorem Filter.Tendsto.atTop_smul_nhds_tendsto_asymptoticNhds + theorem Filter.Tendsto.const_vadd_asymptoticNhds + theorem StarConvex.smul_vadd_mem_of_isClosed_of_mem_asymptoticCone + def asymptoticCone + theorem asymptoticCone_affineSubspace + theorem asymptoticCone_asymptoticCone + theorem asymptoticCone_biUnion + theorem asymptoticCone_closure + theorem asymptoticCone_empty + theorem asymptoticCone_eq_closure_of_forall_smul_mem + theorem asymptoticCone_iUnion_of_finite + theorem asymptoticCone_mono + theorem asymptoticCone_nonempty + theorem asymptoticCone_sUnion + theorem asymptoticCone_submodule + theorem asymptoticCone_union + theorem asymptoticCone_univ + theorem isClosed_asymptoticCone + theorem mem_asymptoticCone_iff + theorem smul_mem_asymptoticCone + theorem smul_mem_asymptoticCone_iff + theorem zero_mem_asymptoticCone 2025-10-16 14:12:21 3bde458 fix: update the continuity lemma library note (#30606) One previously failing example elaborates fine now, and update the lemma examples to follow mathlib's naming convention. ESTIMATED CHANGES Modified Mathlib/Topology/Continuous.lean 2025-10-16 13:41:54 f1634b7 chore: rename fields in `ImplicitFunctionData` (#30607) Make them match the naming convention, as discussed on zulip: [#mathlib4 > Naming convention @ 💬](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Naming.20convention/near/545300205) ESTIMATED CHANGES Modified Mathlib/Analysis/Calculus/Implicit.lean 2025-10-16 09:16:33 c092d56 chore(Data/Seq): address porting note in `terminates_parallel.aux` by golfing (#30603) ESTIMATED CHANGES Modified Mathlib/Data/Seq/Parallel.lean 2025-10-16 08:58:03 a03b172 chore: generalize `Adapted` to dependent types (#30549) This PR generalizes `Adapted` to be a predicate about functions `(i : ι) → Ω → β i` instead of `ι → Ω → β`. From the LeanBandits project, in which we have a sequence of random variables `X 0, X 1, ...` and want to says that `n => (X_0, ..., X_n)` is adapted to the natural filtration. ESTIMATED CHANGES Modified Mathlib/Probability/BorelCantelli.lean Modified Mathlib/Probability/Process/Adapted.lean +/- def MeasureTheory.Adapted +/- theorem MeasureTheory.Filtration.adapted_natural + theorem MeasureTheory.adapted_const' +/- theorem MeasureTheory.adapted_const + theorem MeasureTheory.adapted_zero' +/- theorem MeasureTheory.adapted_zero Modified Mathlib/Probability/Process/Filtration.lean +/- theorem MeasureTheory.Filtration.filtrationOfSet_eq_natural +/- def MeasureTheory.Filtration.natural 2025-10-16 08:58:00 7841a15 chore: move Data/Real/GoldenRatio and RingTheory/Real/Irrational to NumberTheory/Real (#30498) Neither file is about data structures, so let's find a better home for them. Create a new directory `NumberTheory/Real` for them. Moving these files was suggested [on zulip](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Cleaning.20up.20.60Data.60/with/544442456). ESTIMATED CHANGES Modified Counterexamples/IrrationalPowerOfIrrational.lean Modified Mathlib.lean Modified Mathlib/Analysis/Real/Pi/Irrational.lean Modified Mathlib/Analysis/SpecificLimits/Fibonacci.lean Modified Mathlib/Combinatorics/Additive/VerySmallDoubling.lean Modified Mathlib/Data/Real/Irrational.lean Modified Mathlib/NumberTheory/DiophantineApproximation/Basic.lean Modified Mathlib/NumberTheory/Rayleigh.lean Renamed Mathlib/Data/Real/GoldenRatio.lean to Mathlib/NumberTheory/Real/GoldenRatio.lean Renamed Mathlib/RingTheory/Real/Irrational.lean to Mathlib/NumberTheory/Real/Irrational.lean Modified Mathlib/NumberTheory/Transcendental/Liouville/Basic.lean Modified Mathlib/Tactic/NormNum/Irrational.lean Modified Mathlib/Topology/Instances/AddCircle/DenseSubgroup.lean Modified Mathlib/Topology/Instances/Irrational.lean 2025-10-16 08:57:58 463a9d1 chore: split test file for differential geometry elaborators (#30412) The test file was getting quite long (with more tests to come for future features), and accumulating too many imports: once mathlib was tweaked to make use of the elaborators, recompilation after a basic change would take too long. Split it into a basic file with minimal imports, and another file for all more advanced features. ESTIMATED CHANGES Modified MathlibTest/DifferentialGeometry/Notation.lean Added MathlibTest/DifferentialGeometry/NotationAdvanced.lean 2025-10-16 08:57:56 2a99dbc feat: solutions to $C^n$ vector fields are $C^n$ in time (#26393) I prove that solutions to $C^n$ vector fields are also $C^n$ in time, where $n ≤ \infty$. This PR continues the work from #21286. ESTIMATED CHANGES Modified Mathlib/Analysis/Calculus/Deriv/Basic.lean + theorem HasDerivWithinAt.continuousOn Modified Mathlib/Analysis/ODE/PicardLindelof.lean + theorem ODE.contDiffOn_enat_Icc_of_hasDerivWithinAt + theorem ODE.contDiffOn_enat_picard_Icc + theorem ODE.contDiffOn_nat_picard_Icc + theorem ODE.picard_eq_of_hasDerivAt 2025-10-16 08:57:54 acf42d3 feat(Topology): Add PairReduction.lean (#26243) Add file PairReduction.lean which proves the theorem `pair_reduction` which is needed for the proof of the general Kolmogorov-Chentsov theorem in the Brownian Motion project. - [x] depends on: #27239 ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Topology/EMetricSpace/PairReduction.lean + theorem EMetric.pair_reduction + theorem PairReduction.antitone_logSizeBallSeq_add_one_subset + theorem PairReduction.card_finset_logSizeBallSeq_add_one_lt + theorem PairReduction.card_finset_logSizeBallSeq_card_eq_zero + theorem PairReduction.card_finset_logSizeBallSeq_le + theorem PairReduction.card_le_logSizeRadius_le_pow_logSizeRadius + theorem PairReduction.card_pairSetSeq_le_logSizeRadius_mul + theorem PairReduction.card_pairSet_le + theorem PairReduction.disjoint_smallBall_logSizeBallSeq + theorem PairReduction.edist_le_of_mem_pairSet + theorem PairReduction.exists_radius_le + theorem PairReduction.finset_logSizeBallSeq_add_one + theorem PairReduction.finset_logSizeBallSeq_add_one_ssubset + theorem PairReduction.finset_logSizeBallSeq_add_one_subset + theorem PairReduction.finset_logSizeBallSeq_subset_logSizeBallSeq_init + theorem PairReduction.finset_logSizeBallSeq_zero + theorem PairReduction.iSup_edist_pairSet + def PairReduction.logSizeBallSeq + def PairReduction.logSizeBallStruct.ball + def PairReduction.logSizeBallStruct.smallBall + structure PairReduction.logSizeBallStruct + def PairReduction.logSizeRadius + theorem PairReduction.logSizeRadius_le_card_smallBall + theorem PairReduction.one_le_logSizeRadius + theorem PairReduction.one_le_radius_logSizeBallSeq + def PairReduction.pairSet + def PairReduction.pairSetSeq + theorem PairReduction.pairSet_empty_eq_empty + theorem PairReduction.pairSet_subset + theorem PairReduction.point_logSizeBallSeq_add_one + theorem PairReduction.point_logSizeBallSeq_zero + theorem PairReduction.point_mem_finset_logSizeBallSeq + theorem PairReduction.point_mem_logSizeBallSeq_init + theorem PairReduction.point_notMem_finset_logSizeBallSeq_add_one + theorem PairReduction.pow_logSizeRadius_le_card_le_logSizeRadius + theorem PairReduction.radius_logSizeBallSeq_add_one + theorem PairReduction.radius_logSizeBallSeq_le + theorem PairReduction.radius_logSizeBallSeq_zero Modified docs/references.bib 2025-10-16 08:08:25 7065ce7 feat: Borel space on WithTop (#30543) - add `untopA`, abbreviation of `untopD` with `Classical.arbitrary` as default value - prove continuity of functions related to `WithTop`: coercion from the base type, `untop`, `untopD`, `untopA` - define the Borel measurable space on `WithTop`, and prove measurability of the same functions (from continuity) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Data/Countable/Basic.lean + theorem untopD_coe_enat Added Mathlib/MeasureTheory/Constructions/BorelSpace/WithTop.lean + theorem Measurable.untopA + theorem Measurable.untopD + theorem Measurable.withTop_coe + def WithTop.MeasurableEquiv.neTopEquiv + def WithTop.measurableEquivSum + theorem WithTop.measurable_coe + theorem WithTop.measurable_of_measurable_comp_coe + theorem WithTop.measurable_untopA + theorem WithTop.measurable_untopD Modified Mathlib/Order/WithBot.lean + theorem WithBot.unbotA_eq_unbot + theorem WithTop.untopA_eq_untop Modified Mathlib/Topology/Order/WithTop.lean + theorem WithTop.continuousOn_untopA + theorem WithTop.continuousOn_untopD + theorem WithTop.continuous_coe + theorem WithTop.continuous_untop + theorem WithTop.isEmbedding_coe + theorem WithTop.isOpenEmbedding_coe + def WithTop.neTopHomeomorph + theorem WithTop.nhds_coe + def WithTop.sumHomeomorph + theorem WithTop.tendsto_untop + theorem WithTop.tendsto_untopA + theorem WithTop.tendsto_untopD 2025-10-16 07:51:24 b2a9ee2 feat(CategoryTheory): functors that are dense at an object (#29556) Given a functor `F : C ⥤ D` and `Y : D`, we say that `F` is dense at `Y` if `Y` identifies to the colimit of all `F.obj X` for `X : C` and `f : F.obj X ⟶ Y`, i.e. the obvious natural transformation makes the identity functor of `D` a pointwise left Kan extension of `F` along `F` at `Y`. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Functor/KanExtension/DenseAt.lean + def CategoryTheory.Functor.DenseAt.ofIso + def CategoryTheory.Functor.DenseAt.ofNatIso + theorem CategoryTheory.Functor.congr_isDenseAt + def CategoryTheory.Functor.isDenseAt + theorem CategoryTheory.Functor.isDenseAt_eq_isPointwiseLeftKanExtensionAt Modified Mathlib/CategoryTheory/Functor/KanExtension/Pointwise.lean + theorem CategoryTheory.Functor.LeftExtension.IsPointwiseLeftKanExtensionAt.hom_ext' + def CategoryTheory.Functor.LeftExtension.isPointwiseLeftKanExtensionAt + theorem CategoryTheory.Functor.RightExtension.IsPointwiseRightKanExtensionAt.hom_ext' + def CategoryTheory.Functor.RightExtension.isPointwiseRightKanExtensionAt 2025-10-16 07:51:23 a7bcf93 feat(PNat/Factors): add attrs and lemmas (#28812) ESTIMATED CHANGES Modified Mathlib/Data/PNat/Factors.lean + theorem PNat.mem_factorMultiset + theorem PrimeMultiset.mem_ofNatList + theorem PrimeMultiset.mem_ofNatMultiset + theorem PrimeMultiset.toPNatMultiset_ofPNatList 2025-10-16 07:33:11 ed5b08c feat: notation for galois group (#30266) This PR adds support for the notation `Gal(L/K) := L ≃ₐ[K] L`. `Gal(L/K)` is a simple macro for `L ≃ₐ[K] L`, but `L ≃ₐ[K] L` only delaborates to `Gal(L/K)` when `L` and `K` are fields. Zulip thread: https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Notation.20for.20Galois.20group/with/543320864 ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Analysis/Normed/Unbundled/SpectralNorm.lean +/- theorem spectralNorm_eq_of_equiv Modified Mathlib/FieldTheory/AbelRuffini.lean Modified Mathlib/FieldTheory/Finite/Basic.lean Modified Mathlib/FieldTheory/Fixed.lean Modified Mathlib/FieldTheory/Galois/Basic.lean +/- theorem IntermediateField.fixedField_bot +/- theorem IntermediateField.fixedField_le +/- def IntermediateField.fixingSubgroupEquiv +/- theorem IntermediateField.restrictRestrictAlgEquivMapHom_apply +/- def IntermediateField.subgroupEquivAlgEquiv +/- theorem IsGalois.finiteDimensional_of_finite +/- theorem IsGalois.map_fixingSubgroup Modified Mathlib/FieldTheory/Galois/GaloisClosure.lean +/- theorem FiniteGaloisIntermediateField.adjoin_simple_map_algEquiv Modified Mathlib/FieldTheory/Galois/Infinite.lean +/- theorem InfiniteGalois.fixingSubgroup_fixedField +/- theorem InfiniteGalois.restrict_fixedField Modified Mathlib/FieldTheory/Galois/IsGaloisGroup.lean Modified Mathlib/FieldTheory/Galois/NormalBasis.lean +/- theorem IsGalois.normalBasis_apply Added Mathlib/FieldTheory/Galois/Notation.lean Modified Mathlib/FieldTheory/Galois/Profinite.lean +/- theorem InfiniteGalois.krullTopology_mem_nhds_one_iff_of_isGalois Modified Mathlib/FieldTheory/KrullTopology.lean +/- def fixedByFinite +/- def galBasis +/- theorem mem_galBasis_iff Modified Mathlib/FieldTheory/KummerExtension.lean +/- theorem autEquivRootsOfUnity_apply_rootOfSplit +/- theorem autEquivRootsOfUnity_smul +/- theorem exists_root_adjoin_eq_top_of_isCyclic +/- theorem isCyclic_of_isSplittingField_X_pow_sub_C Modified Mathlib/FieldTheory/Minpoly/ConjRootClass.lean Modified Mathlib/FieldTheory/Minpoly/Field.lean Modified Mathlib/FieldTheory/Minpoly/IsConjRoot.lean Modified Mathlib/FieldTheory/Normal/Basic.lean Modified Mathlib/FieldTheory/Normal/Closure.lean +/- theorem IntermediateField.normalClosure_def'' +/- theorem IntermediateField.normal_iff_forall_map_eq' +/- theorem IntermediateField.normal_iff_forall_map_le' Modified Mathlib/FieldTheory/Normal/Defs.lean +/- def AlgEquiv.restrictNormal +/- def AlgEquiv.restrictNormalHom +/- def AlgHom.restrictNormal' +/- def Normal.algHomEquivAut Modified Mathlib/FieldTheory/PolynomialGaloisGroup.lean +/- theorem Polynomial.Gal.galActionHom_restrict +/- def Polynomial.Gal.restrict +/- theorem Polynomial.Gal.restrict_smul Modified Mathlib/NumberTheory/Cyclotomic/CyclotomicCharacter.lean Modified Mathlib/NumberTheory/Cyclotomic/Gal.lean Modified Mathlib/NumberTheory/NumberField/CMField.lean +/- theorem NumberField.IsCMField.of_forall_isConj Modified Mathlib/NumberTheory/NumberField/InfinitePlace/Embeddings.lean +/- theorem NumberField.ComplexEmbedding.IsConj.comp +/- theorem NumberField.ComplexEmbedding.IsConj.ext +/- theorem NumberField.ComplexEmbedding.IsConj.ext_iff +/- theorem NumberField.ComplexEmbedding.isConj_one_iff Modified Mathlib/NumberTheory/NumberField/InfinitePlace/Ramification.lean +/- theorem NumberField.InfinitePlace.mem_stabilizer_mk_iff Modified Mathlib/NumberTheory/NumberField/Norm.lean Modified Mathlib/NumberTheory/RamificationInertia/Galois.lean +/- theorem Ideal.coe_smul_primesOver_eq_map_galRestrict +/- theorem Ideal.coe_smul_primesOver_mk_eq_map_galRestrict Modified Mathlib/RepresentationTheory/Homological/GroupCohomology/Hilbert90.lean +/- theorem groupCohomology.Hilbert90.aux_ne_zero Modified Mathlib/RingTheory/IntegralClosure/IntegralRestrict.lean +/- theorem algebraMap_galRestrict_apply +/- theorem coe_galRestrict_apply +/- def galRestrict +/- theorem galRestrict_apply Modified Mathlib/RingTheory/Invariant/Basic.lean Modified Mathlib/RingTheory/Norm/Transitivity.lean Modified Mathlib/RingTheory/Trace/Basic.lean Added MathlibTest/GalNotation.lean Modified scripts/noshake.json 2025-10-16 05:14:02 c4bf6be feat: affine homotopy between continuous maps (#30569) Cherry-picked from #24019 ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Topology/Homotopy/Affine.lean + def ContinuousMap.Homotopy.affine + theorem ContinuousMap.Homotopy.evalAt_affine 2025-10-16 04:35:03 a59d17e feat(Analysis/Fourier): Parseval for FourierCoeffOn (#30023) `tsum_sq_fourierCoeffOn` proved via the existing `tsum_sq_fourierCoeff`. The lemmas I needed, particularly `memLp_liftIoc_of_memLp` which shows that the lift of an Lp function on the interval is Lp on AddCircle, turned out to be much messier than I anticipated. Hopefully someone can suggest improvements. ESTIMATED CHANGES Modified Mathlib/Analysis/Fourier/AddCircle.lean + theorem AddCircle.integral_haarAddCircle + theorem MeasureTheory.memLp_haarAddCircle_iff + theorem fourierCoeffOn_congr_ae + theorem fourierCoeff_congr_ae + theorem hasSum_sq_fourierCoeff + theorem hasSum_sq_fourierCoeffOn + theorem tsum_sq_fourierCoeffOn Modified Mathlib/MeasureTheory/Integral/IntervalIntegral/Periodic.lean + theorem AddCircle.integral_liftIoc_eq_intervalIntegral + theorem AddCircle.measurePreserving_equivIoc + theorem MeasureTheory.MemLp.memLp_liftIoc Modified Mathlib/Topology/Instances/AddCircle/Defs.lean + theorem AddCircle.Ico_ext + theorem AddCircle.Ioc_ext + theorem AddCircle.equivIco_coe_eq + theorem AddCircle.equivIoc_coe_eq + theorem AddCircle.liftIco_comp_apply + theorem AddCircle.liftIoc_comp_apply 2025-10-16 04:20:10 27036ae feat: Limits for ProfiniteAddGrp (#30341) `to_additive` was not working in the construction of limits in the category of profinite groups; I believe the fix was to add `@[to_additive self]` to the `Profinite` declaration. ESTIMATED CHANGES Modified Mathlib/Topology/Algebra/Category/ProfiniteGrp/Basic.lean Modified Mathlib/Topology/Category/Profinite/Basic.lean 2025-10-16 03:54:15 c0b3860 chore: simplify cache's treatment of nightly-testing (#30571) See discussion at [#ecosystem infrastructure > `cache get` fails when depending on Mathlib nightly-testing](https://leanprover.zulipchat.com/#narrow/channel/536994-ecosystem-infrastructure/topic/.60cache.20get.60.20fails.20when.20depending.20on.20Mathlib.20nightly-testing/with/544872705) ESTIMATED CHANGES Modified Cache/Requests.lean 2025-10-16 03:33:05 7f60989 doc(AlgebraicGeometry): fix typos (#30591) Found with help from Codex. ESTIMATED CHANGES Modified Mathlib/AlgebraicGeometry/EllipticCurve/Jacobian/Point.lean Modified Mathlib/AlgebraicGeometry/EllipticCurve/Projective/Point.lean Modified Mathlib/AlgebraicGeometry/Morphisms/AffineAnd.lean Modified Mathlib/AlgebraicGeometry/Morphisms/Basic.lean Modified Mathlib/AlgebraicGeometry/Morphisms/Constructors.lean Modified Mathlib/AlgebraicGeometry/Morphisms/QuasiCompact.lean Modified Mathlib/AlgebraicGeometry/Morphisms/Separated.lean Modified Mathlib/AlgebraicGeometry/OpenImmersion.lean Modified Mathlib/AlgebraicGeometry/PointsPi.lean Modified Mathlib/AlgebraicGeometry/ProjectiveSpectrum/Scheme.lean Modified Mathlib/AlgebraicGeometry/QuasiAffine.lean Modified Mathlib/AlgebraicGeometry/Scheme.lean Modified Mathlib/AlgebraicGeometry/ValuativeCriterion.lean 2025-10-16 02:52:28 68304f2 chore(SetTheory): deprecate `mk_multiset_of_countable` and `iSup_succ`. remove `cast_succ`. (#28488) ESTIMATED CHANGES Modified Mathlib/SetTheory/Cardinal/Basic.lean Modified Mathlib/SetTheory/Cardinal/Finsupp.lean - theorem Cardinal.mk_multiset_of_countable Modified Mathlib/SetTheory/Ordinal/Family.lean - theorem Ordinal.iSup_succ Modified Mathlib/SetTheory/Ordinal/NaturalOps.lean 2025-10-16 02:52:25 c6fb381 feat(LinearAlgebra/Projectivization/Subspace): correspondence between linear and projective subspaces (#26909) ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/Projectivization/Subspace.lean + theorem Projectivization.Subspace.mem_submodule_iff + def Projectivization.Subspace.submodule + theorem Submodule.mem_projectivization_iff_submodule_le + theorem Submodule.mk_mem_projectivization_iff 2025-10-16 01:38:47 bf6c674 feat: `AEMeasurable.dist` (#30585) Add the lemma `AEMeasurable.dist` and remove a few `@` in the same file. ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Constructions/BorelSpace/Metric.lean + theorem AEMeasurable.dist 2025-10-16 01:38:46 ca47b81 chore: rename pow_eq_zero to eq_zero_of_pow_eq_zero (#30443) For consistency with eq_zero_of_zpow_eq_zero. ESTIMATED CHANGES Modified Archive/Imo/Imo1961Q3.lean Modified Archive/Imo/Imo1962Q4.lean Modified Mathlib/Algebra/GroupWithZero/Basic.lean + theorem eq_zero_of_pow_eq_zero - theorem pow_eq_zero +/- theorem pow_ne_zero Modified Mathlib/Algebra/GroupWithZero/NonZeroDivisors.lean Modified Mathlib/Algebra/IsPrimePow.lean Modified Mathlib/Algebra/Polynomial/DenomsClearable.lean Modified Mathlib/Algebra/Polynomial/SumIteratedDerivative.lean Modified Mathlib/Algebra/Quaternion.lean Modified Mathlib/AlgebraicGeometry/EllipticCurve/Jacobian/Basic.lean Modified Mathlib/AlgebraicGeometry/EllipticCurve/Projective/Basic.lean Modified Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Basic.lean Modified Mathlib/Analysis/InnerProductSpace/Defs.lean Modified Mathlib/Analysis/SpecialFunctions/Log/Basic.lean Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Basic.lean Modified Mathlib/Analysis/SpecificLimits/Normed.lean Modified Mathlib/FieldTheory/Finite/Basic.lean Modified Mathlib/FieldTheory/Finite/GaloisField.lean Modified Mathlib/FieldTheory/PurelyInseparable/Tower.lean Modified Mathlib/GroupTheory/Schreier.lean Modified Mathlib/LinearAlgebra/SesquilinearForm/Basic.lean Modified Mathlib/MeasureTheory/Function/ConvergenceInMeasure.lean Modified Mathlib/MeasureTheory/Measure/Lebesgue/EqHaar.lean Modified Mathlib/NumberTheory/Cyclotomic/Discriminant.lean Modified Mathlib/NumberTheory/Cyclotomic/PrimitiveRoots.lean Modified Mathlib/NumberTheory/FLT/Four.lean Modified Mathlib/NumberTheory/NumberField/InfinitePlace/Embeddings.lean Modified Mathlib/NumberTheory/PythagoreanTriples.lean Modified Mathlib/RingTheory/Coprime/Basic.lean Modified Mathlib/RingTheory/DiscreteValuationRing/Basic.lean Modified Mathlib/RingTheory/Ideal/Operations.lean Modified Mathlib/RingTheory/Jacobson/Ring.lean Modified Mathlib/RingTheory/Nilpotent/Defs.lean Modified Mathlib/RingTheory/Perfection.lean Modified Mathlib/RingTheory/Polynomial/Cyclotomic/Expand.lean Modified Mathlib/RingTheory/Polynomial/Selmer.lean Modified Mathlib/Tactic/LinearCombination'.lean Modified Mathlib/Tactic/LinearCombination/Lemmas.lean Modified Mathlib/Topology/Instances/ENNReal/Lemmas.lean 2025-10-16 01:38:44 504041d feat(Analysis/Fourier): Plancherel's theorem (#29860) The Plancherel theorem states that the Fourier transform is unitary on L^2. We prove the main step which is that the Fourier transform on Schwartz space preserves the L^2-norm. ESTIMATED CHANGES Modified Mathlib/Analysis/Complex/Basic.lean + theorem Complex.ofRealLI_apply Modified Mathlib/Analysis/Distribution/FourierSchwartz.lean + theorem SchwartzMap.fourier_inversion + theorem SchwartzMap.fourier_inversion_inv + theorem SchwartzMap.inner_fourierTransformCLM_toL2_eq + theorem SchwartzMap.integral_bilin_fourierIntegral_eq + theorem SchwartzMap.integral_inner_fourier_fourier + theorem SchwartzMap.integral_norm_sq_fourier + theorem SchwartzMap.integral_sesq_fourierIntegral_eq + theorem SchwartzMap.integral_sesq_fourier_fourier + theorem SchwartzMap.norm_fourierTransformCLM_toL2_eq Modified Mathlib/Analysis/Distribution/SchwartzSpace.lean + theorem SchwartzMap.inner_toL2_toL2_eq Modified Mathlib/Analysis/Fourier/FourierTransform.lean + theorem VectorFourier.integral_fourierIntegral_swap + theorem VectorFourier.integral_sesq_fourierIntegral_eq_neg_flip Modified docs/1000.yaml Modified docs/undergrad.yaml 2025-10-16 01:23:42 5aecb23 chore: rename `Grp_` to `Grp` (#30496) [Zulip](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Removing.20underscores.20from.20docs.23Mon_.2C.20docs.23Grp_.20.2E.2E.2E) ESTIMATED CHANGES Modified Mathlib/Algebra/Category/Grp/LeftExactFunctor.lean Modified Mathlib/CategoryTheory/Monoidal/Cartesian/CommGrp_.lean Modified Mathlib/CategoryTheory/Monoidal/Cartesian/Grp_.lean + def Grp.homMk + theorem Grp.homMk_hom' - def Grp_.homMk - theorem Grp_.homMk_hom' +/- def yonedaGrp Modified Mathlib/CategoryTheory/Monoidal/CommGrp_.lean +/- theorem CategoryTheory.Functor.comp_mapCommGrp_mul +/- theorem CategoryTheory.Functor.comp_mapCommGrp_one +/- def CategoryTheory.Functor.mapCommGrp +/- def CategoryTheory.Functor.mapCommGrpIdIso +/- theorem CategoryTheory.Functor.mapCommGrp_id_one +/- theorem CategoryTheory.Functor.mapCommpGrp_id_mul + theorem CommGrp.comp' + theorem CommGrp.comp_hom + def CommGrp.forget + def CommGrp.forget₂CommMon + theorem CommGrp.forget₂CommMon_comp_forget + theorem CommGrp.forget₂CommMon_map_hom + theorem CommGrp.forget₂CommMon_obj_mul + theorem CommGrp.forget₂CommMon_obj_one + def CommGrp.forget₂Grp + theorem CommGrp.forget₂Grp_comp_forget + theorem CommGrp.forget₂Grp_map_hom + theorem CommGrp.forget₂Grp_obj_mul + theorem CommGrp.forget₂Grp_obj_one + def CommGrp.fullyFaithfulForget₂CommMon + def CommGrp.fullyFaithfulForget₂Grp + theorem CommGrp.hom_ext + theorem CommGrp.id' + theorem CommGrp.id_hom + def CommGrp.mkIso' + def CommGrp.toCommMon + def CommGrp.toGrp + def CommGrp.trivial + structure CommGrp - theorem CommGrp_.comp' - theorem CommGrp_.comp_hom - def CommGrp_.forget - def CommGrp_.forget₂CommMon - theorem CommGrp_.forget₂CommMon_comp_forget - theorem CommGrp_.forget₂CommMon_map_hom - theorem CommGrp_.forget₂CommMon_obj_mul - theorem CommGrp_.forget₂CommMon_obj_one - def CommGrp_.forget₂Grp_ - theorem CommGrp_.forget₂Grp_comp_forget - theorem CommGrp_.forget₂Grp_map_hom - theorem CommGrp_.forget₂Grp_obj_mul - theorem CommGrp_.forget₂Grp_obj_one - def CommGrp_.fullyFaithfulForget₂CommMon - def CommGrp_.fullyFaithfulForget₂Grp_ - theorem CommGrp_.hom_ext - theorem CommGrp_.id' - theorem CommGrp_.id_hom - def CommGrp_.mkIso' - def CommGrp_.toCommMon - def CommGrp_.toGrp_ - def CommGrp_.trivial - structure CommGrp_ Modified Mathlib/CategoryTheory/Monoidal/Grp_.lean + theorem Grp.comp' + theorem Grp.comp_hom + theorem Grp.hom_ext + theorem Grp.id' + theorem Grp.id_hom + def Grp.toMon + def Grp.trivial + structure Grp +/- def GrpObj.tensorObj.CategoryTheory.Equivalence.mapGrp +/- theorem GrpObj.tensorObj.CategoryTheory.Functor.comp_mapGrp_mul +/- theorem GrpObj.tensorObj.CategoryTheory.Functor.comp_mapGrp_one +/- theorem GrpObj.tensorObj.CategoryTheory.Functor.essImage_mapGrp +/- def GrpObj.tensorObj.CategoryTheory.Functor.mapGrp +/- def GrpObj.tensorObj.CategoryTheory.Functor.mapGrpIdIso +/- theorem GrpObj.tensorObj.CategoryTheory.Functor.mapGrp_id_mul +/- theorem GrpObj.tensorObj.CategoryTheory.Functor.mapGrp_id_one + theorem GrpObj.tensorObj.Grp.associator_hom_hom + theorem GrpObj.tensorObj.Grp.associator_inv_hom + theorem GrpObj.tensorObj.Grp.braiding_hom_hom + theorem GrpObj.tensorObj.Grp.braiding_inv_hom + def GrpObj.tensorObj.Grp.forget + def GrpObj.tensorObj.Grp.forget₂Mon + theorem GrpObj.tensorObj.Grp.forget₂Mon_comp_forget + theorem GrpObj.tensorObj.Grp.forget₂Mon_map_hom + theorem GrpObj.tensorObj.Grp.forget₂Mon_obj_mul + theorem GrpObj.tensorObj.Grp.forget₂Mon_obj_one + theorem GrpObj.tensorObj.Grp.fst_hom + def GrpObj.tensorObj.Grp.fullyFaithfulForget₂Mon + theorem GrpObj.tensorObj.Grp.leftUnitor_hom_hom + theorem GrpObj.tensorObj.Grp.leftUnitor_inv_hom + theorem GrpObj.tensorObj.Grp.lift_hom + def GrpObj.tensorObj.Grp.mkIso' + theorem GrpObj.tensorObj.Grp.rightUnitor_hom_hom + theorem GrpObj.tensorObj.Grp.rightUnitor_inv_hom + theorem GrpObj.tensorObj.Grp.snd_hom + theorem GrpObj.tensorObj.Grp.tensorObj_mul + theorem GrpObj.tensorObj.Grp.tensorObj_one + theorem GrpObj.tensorObj.Grp.tensorUnit_X + theorem GrpObj.tensorObj.Grp.tensorUnit_mul + theorem GrpObj.tensorObj.Grp.tensorUnit_one + theorem GrpObj.tensorObj.Grp.whiskerLeft_hom + theorem GrpObj.tensorObj.Grp.whiskerRight_hom - theorem GrpObj.tensorObj.Grp_.associator_hom_hom - theorem GrpObj.tensorObj.Grp_.associator_inv_hom - theorem GrpObj.tensorObj.Grp_.braiding_hom_hom - theorem GrpObj.tensorObj.Grp_.braiding_inv_hom - def GrpObj.tensorObj.Grp_.forget - def GrpObj.tensorObj.Grp_.forget₂Mon - theorem GrpObj.tensorObj.Grp_.forget₂Mon_comp_forget - theorem GrpObj.tensorObj.Grp_.forget₂Mon_map_hom - theorem GrpObj.tensorObj.Grp_.forget₂Mon_obj_mul - theorem GrpObj.tensorObj.Grp_.forget₂Mon_obj_one - theorem GrpObj.tensorObj.Grp_.fst_hom - def GrpObj.tensorObj.Grp_.fullyFaithfulForget₂Mon - theorem GrpObj.tensorObj.Grp_.leftUnitor_hom_hom - theorem GrpObj.tensorObj.Grp_.leftUnitor_inv_hom - theorem GrpObj.tensorObj.Grp_.lift_hom - def GrpObj.tensorObj.Grp_.mkIso' - theorem GrpObj.tensorObj.Grp_.rightUnitor_hom_hom - theorem GrpObj.tensorObj.Grp_.rightUnitor_inv_hom - theorem GrpObj.tensorObj.Grp_.snd_hom - theorem GrpObj.tensorObj.Grp_.tensorObj_mul - theorem GrpObj.tensorObj.Grp_.tensorObj_one - theorem GrpObj.tensorObj.Grp_.tensorUnit_X - theorem GrpObj.tensorObj.Grp_.tensorUnit_mul - theorem GrpObj.tensorObj.Grp_.tensorUnit_one - theorem GrpObj.tensorObj.Grp_.whiskerLeft_hom - theorem GrpObj.tensorObj.Grp_.whiskerRight_hom - theorem Grp_.comp' - theorem Grp_.comp_hom - theorem Grp_.hom_ext - theorem Grp_.id' - theorem Grp_.id_hom - def Grp_.toMon - def Grp_.trivial - structure Grp_ Modified Mathlib/CategoryTheory/Monoidal/Internal/Types/CommGrp_.lean Modified Mathlib/CategoryTheory/Monoidal/Internal/Types/Grp_.lean Modified Mathlib/CategoryTheory/Preadditive/CommGrp_.lean +/- def CategoryTheory.Preadditive.commGrpEquivalence +/- def CategoryTheory.Preadditive.commGrpEquivalenceAux +/- def CategoryTheory.Preadditive.toCommGrp 2025-10-15 16:19:02 6b1d0f0 doc(README): add Michael Rothgang to the maintainer list (#30588) ESTIMATED CHANGES Modified README.md 2025-10-15 16:18:59 97ffe6c feat(NumberTheory/SumTwoSquares): it is decidable whether a number is the sum of two squares (#30273) Add a `Decidable` instance for the already proven theorem of being the sum of two squares. Try `#eval Finset.range 50 |>.filter (∃ x y, · = x ^ 2 + y ^ 2)` ESTIMATED CHANGES Modified Mathlib/NumberTheory/SumTwoSquares.lean - theorem Nat.Prime.mod_four_ne_three_of_dvd_isSquare_neg_one + theorem Nat.mod_four_ne_three_of_mem_primeFactors_of_isSquare_neg_one - theorem ZMod.isSquare_neg_one_iff + theorem ZMod.isSquare_neg_one_iff_forall_mem_primeFactors_mod_four_ne_three 2025-10-15 16:18:56 cb5b0e5 feat: add Mathlib.RingTheory.RootsOfUnity.CyclotomicUnits (#30085) We add basic results about cyclotomic units. From `flt-regular`. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/RingTheory/RootsOfUnity/CyclotomicUnits.lean + theorem IsPrimitiveRoot.associated_pow_add_sub_sub_one + theorem IsPrimitiveRoot.associated_pow_sub_one_pow_of_coprime + theorem IsPrimitiveRoot.associated_sub_one_pow_sub_one_of_coprime + theorem IsPrimitiveRoot.geom_sum_isUnit' + theorem IsPrimitiveRoot.geom_sum_isUnit + theorem IsPrimitiveRoot.ntRootsFinset_pairwise_associated_sub_one_sub_of_prime + theorem IsPrimitiveRoot.pow_sub_one_eq_geom_sum_mul_geom_sum_inv_mul_pow_sub_one + theorem IsPrimitiveRoot.pow_sub_one_mul_geom_sum_eq_pow_sub_one_mul_geom_sum 2025-10-15 15:17:59 a38ceed chore(NumberField): follow-up to #30536 (#30583) Create the deprecated module files for the files moved in #30536 ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/NumberTheory/Cyclotomic/Embeddings.lean Added Mathlib/NumberTheory/Cyclotomic/PID.lean Added Mathlib/NumberTheory/Cyclotomic/Rat.lean Added Mathlib/NumberTheory/Cyclotomic/Three.lean 2025-10-15 15:17:57 ab46cf6 refactor: weaken HasPullbacks to HasPullback in MorphismProperty.OverAdjuction (#29810) This PR replaces the global assumption of `HasPullback T` with the weaker assumption that pullbacks exist along the morphism only. For the sake of readability I also moved the variable `(f : X -> Y)` into the statement of each theorem. As instructed in https://github.com/leanprover-community/mathlib4/pull/29795#discussion_r2363310388 - [ ] depends on: #29795 - [ ] depends on: #29812 ESTIMATED CHANGES Modified Mathlib/CategoryTheory/MorphismProperty/OverAdjunction.lean +/- def CategoryTheory.MorphismProperty.Over.map +/- def CategoryTheory.MorphismProperty.Over.mapComp +/- theorem CategoryTheory.MorphismProperty.Over.map_comp +/- theorem CategoryTheory.MorphismProperty.Over.pullbackComp_left_fst_fst +/- theorem CategoryTheory.MorphismProperty.Over.pullbackCongr_hom_app_left_fst 2025-10-15 15:17:54 192b6cc feat(Tactic/Simproc): nested quantifiers in `existsAndEq` (#26843) Generalize the `existsAndEq` simproc to nested existential quantifiers. For example `∃ a, p a ∧ ∃ b, a = f b ∧ q b` now simplifies to `∃ b, p (f b) ∧ q b`. ESTIMATED CHANGES Modified Mathlib/Combinatorics/SimpleGraph/Maps.lean Modified Mathlib/Data/List/ProdSigma.lean Modified Mathlib/Tactic/Simproc/ExistsAndEq.lean + inductive ExistsAndEq.GoTo + def ExistsAndEq.mkNestedExists + def ExistsAndEq.withExistsElimAlongPath + def ExistsAndEq.withNestedExistsElim + def ExistsAndEq.withNestedExistsIntro Modified MathlibTest/Simproc/ExistsAndEq.lean 2025-10-15 14:27:44 83d59d3 feat(Combinatorics/Quiver): add congruence theorems for reflexive prefunctors (#30580) An equality of reflexive prefunctors gives an equality on homs (`ReflPrefunctor.congr_hom`) and objects (`ReflPrefunctor.congr_obj`). Mirrors the existing theorems `Prefunctor.congr_hom` and `Prefunctor.congr_obj`. ESTIMATED CHANGES Modified Mathlib/Combinatorics/Quiver/ReflQuiver.lean + theorem CategoryTheory.ReflPrefunctor.congr_hom + theorem CategoryTheory.ReflPrefunctor.congr_obj 2025-10-15 14:27:42 f4df4df doc(CategoryTheory): fix typos (#30573) Found with help from Codex. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/ConnectedComponents.lean Modified Mathlib/CategoryTheory/EssentialImage.lean Modified Mathlib/CategoryTheory/Join/Basic.lean Modified Mathlib/CategoryTheory/Join/Final.lean Modified Mathlib/CategoryTheory/Join/Opposites.lean Modified Mathlib/CategoryTheory/Join/Pseudofunctor.lean Modified Mathlib/CategoryTheory/Join/Sum.lean Modified Mathlib/CategoryTheory/Sites/LocallyBijective.lean Modified Mathlib/CategoryTheory/Sites/LocallyFullyFaithful.lean Modified Mathlib/CategoryTheory/Sites/Sheaf.lean 2025-10-15 14:27:40 9cef17b chore: tidy various files (#30442) ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Subsemigroup/Defs.lean Modified Mathlib/Analysis/Complex/SummableUniformlyOn.lean Modified Mathlib/Analysis/SpecialFunctions/BinaryEntropy.lean Modified Mathlib/Data/Nat/Factorization/Basic.lean Modified Mathlib/Data/PFunctor/Univariate/M.lean Modified Mathlib/GroupTheory/GroupAction/Jordan.lean Modified Mathlib/GroupTheory/GroupAction/MultipleTransitivity.lean Modified Mathlib/GroupTheory/GroupAction/SubMulAction/OfStabilizer.lean Modified Mathlib/LinearAlgebra/Dual/Defs.lean Modified Mathlib/LinearAlgebra/Eigenspace/Minpoly.lean Modified Mathlib/MeasureTheory/Function/AbsolutelyContinuous.lean Modified Mathlib/Probability/Distributions/Fernique.lean Modified Mathlib/RingTheory/PowerSeries/Restricted.lean Modified Mathlib/Topology/EMetricSpace/BoundedVariation.lean 2025-10-15 14:13:29 3294938 chore(NumberField): create directory `Cyclotomic` and move relevant files there (#30536) Create the directory `NumberTheory/NumberField/Cyclotomic` and move there the files concerning cyclotomic fields over `ℚ`. Deprecated modules files are added in #30583 ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/NumberTheory/FLT/Three.lean Renamed Mathlib/NumberTheory/Cyclotomic/Rat.lean to Mathlib/NumberTheory/NumberField/Cyclotomic/Basic.lean Renamed Mathlib/NumberTheory/Cyclotomic/Embeddings.lean to Mathlib/NumberTheory/NumberField/Cyclotomic/Embeddings.lean Renamed Mathlib/NumberTheory/Cyclotomic/PID.lean to Mathlib/NumberTheory/NumberField/Cyclotomic/PID.lean Renamed Mathlib/NumberTheory/Cyclotomic/Three.lean to Mathlib/NumberTheory/NumberField/Cyclotomic/Three.lean Modified Mathlib/NumberTheory/NumberField/Ideal/Basic.lean 2025-10-15 13:28:35 111da03 chore: update Mathlib dependencies 2025-10-15 (#30578) This PR updates the Mathlib dependencies. [workflow run for this PR](https://github.com/leanprover-community/mathlib4/actions/runs/18528440265) ESTIMATED CHANGES Modified lake-manifest.json 2025-10-15 13:28:33 8a93fbd feat(Analysis/SpecificLimits/Fibonacci): prove that the ratio of consecutive Fibonacci numbers tends to the golden ratio (#29759) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/SpecificLimits/Fibonacci.lean + theorem tendsto_fib_div_fib_succ_atTop + theorem tendsto_fib_succ_div_fib_atTop 2025-10-15 13:28:29 ea2b21a feat(IntermediateField/LinearDisjoint): Two fields are linearly disjoint over `K` iff their intersection is `K` in the Galois case (#27273) ESTIMATED CHANGES Modified Mathlib/FieldTheory/Galois/Basic.lean + theorem IsGalois.sup_right Modified Mathlib/FieldTheory/IntermediateField/Adjoin/Defs.lean + theorem IntermediateField.lift_inf + theorem IntermediateField.lift_sup + theorem IntermediateField.restrictScalars_eq_top_iff Modified Mathlib/FieldTheory/IntermediateField/Basic.lean + theorem IntermediateField.lift_inj + theorem IntermediateField.restrictScalars_inj Modified Mathlib/FieldTheory/LinearDisjoint.lean + theorem IntermediateField.LinearDisjoint.iff_inf_eq_bot + theorem IntermediateField.LinearDisjoint.of_inf_eq_bot 2025-10-15 12:44:51 6652a12 feat: `lineMap` is continuous in all arguments (#30568) ESTIMATED CHANGES Modified Mathlib/Topology/Algebra/Affine.lean + theorem AffineMap.lineMap_continuous_uncurry + theorem Continuous.lineMap + theorem ContinuousAt.lineMap + theorem ContinuousOn.lineMap + theorem ContinuousWithinAt.lineMap 2025-10-15 12:44:49 5f6a1bb chore(Algebra/Order/Ring/Unbundled/Rat): golf (#30282) ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Ring/Unbundled/Rat.lean +/- theorem Rat.ofScientific_nonneg 2025-10-15 12:44:47 b1e43fa feat: miscellaneous improvements to the differential geometry elaborators (#28032) - Support inferring the model with corners on a `TangentBundle`. - Support inferring the model with corners on the space `H` a manifold is modelled on. - Correct the grammar in an error message. - Extend the tracing to show a bit more information. - Use backticks in all tracing (and other) error messages, per [zulip discussion](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Style.3A.20Backticks.20in.20messages.3F/with/544859886) - Add some more tests, including one which is currently failing. ESTIMATED CHANGES Modified Mathlib/Geometry/Manifold/Notation.lean Modified MathlibTest/DifferentialGeometry/Notation.lean 2025-10-15 12:31:05 758089c chore: remove ancient version test in cache (#30566) ESTIMATED CHANGES Modified Cache/Main.lean 2025-10-15 11:11:39 06bd309 feat: missing basic API for uniformly continuous functions (#30531) ESTIMATED CHANGES Modified Mathlib/Topology/UniformSpace/Basic.lean + theorem UniformContinuous.comp_uniformContinuousOn +/- theorem UniformContinuous.continuous + theorem UniformContinuous.uniformContinuousOn + theorem UniformContinuousOn.comp + theorem UniformContinuousOn.mono + theorem uniformContinuous_swap Modified Mathlib/Topology/UniformSpace/UniformConvergence.lean 2025-10-15 10:28:28 bfa61d1 chore: rename IrreducibleCloseds fields to match naming convention (#30550) ESTIMATED CHANGES Modified Mathlib/Topology/KrullDimension.lean Modified Mathlib/Topology/Sets/Closeds.lean +/- theorem TopologicalSpace.IrreducibleCloseds.isClosed +/- theorem TopologicalSpace.IrreducibleCloseds.isIrreducible 2025-10-15 10:28:26 4cea329 chore(algebra): generalize mul_mem_smul_iff to rings (#30254) Generalize mul_mem_smul_iff to rings instead of just commutative rings. ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/Operations.lean +/- theorem Submodule.mul_mem_smul_iff 2025-10-15 10:06:17 ff11cd5 chore(CategoryTheory/Limits/Opposites): split the file Limits.Opposites (#30517) This PR splits the file - `Mathlib/CategoryTheory/Limits/Opposites.lean` into - `Mathlib/CategoryTheory/Limits/Opposites.lean` - `Mathlib/CategoryTheory/Limits/Shapes/Opposites/` This was suggested in a review of #30200. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Homology/ShortComplex/RightHomology.lean Modified Mathlib/AlgebraicGeometry/Limits.lean Modified Mathlib/CategoryTheory/Generator/Basic.lean Modified Mathlib/CategoryTheory/Limits/Constructions/Filtered.lean Modified Mathlib/CategoryTheory/Limits/FormalCoproducts.lean Modified Mathlib/CategoryTheory/Limits/Opposites.lean - def CategoryTheory.Limits.Cofan.op - def CategoryTheory.Limits.CokernelCofork.IsColimit.ofπOp - def CategoryTheory.Limits.CokernelCofork.IsColimit.ofπUnop - def CategoryTheory.Limits.Fan.op - def CategoryTheory.Limits.KernelFork.IsLimit.ofιOp - def CategoryTheory.Limits.KernelFork.IsLimit.ofιUnop - def CategoryTheory.Limits.PullbackCone.isLimitEquivIsColimitOp - def CategoryTheory.Limits.PullbackCone.isLimitEquivIsColimitUnop - def CategoryTheory.Limits.PullbackCone.op - def CategoryTheory.Limits.PullbackCone.opUnop - theorem CategoryTheory.Limits.PullbackCone.op_inl - theorem CategoryTheory.Limits.PullbackCone.op_inr - def CategoryTheory.Limits.PullbackCone.unop - def CategoryTheory.Limits.PullbackCone.unopOp - theorem CategoryTheory.Limits.PullbackCone.unop_inl - theorem CategoryTheory.Limits.PullbackCone.unop_inr - def CategoryTheory.Limits.PushoutCocone.isColimitEquivIsLimitOp - def CategoryTheory.Limits.PushoutCocone.isColimitEquivIsLimitUnop - def CategoryTheory.Limits.PushoutCocone.op - def CategoryTheory.Limits.PushoutCocone.opUnop - theorem CategoryTheory.Limits.PushoutCocone.op_fst - theorem CategoryTheory.Limits.PushoutCocone.op_snd - def CategoryTheory.Limits.PushoutCocone.unop - def CategoryTheory.Limits.PushoutCocone.unopOp - theorem CategoryTheory.Limits.PushoutCocone.unop_fst - theorem CategoryTheory.Limits.PushoutCocone.unop_snd - def CategoryTheory.Limits.cospanOp - theorem CategoryTheory.Limits.desc_op_comp_opCoproductIsoProduct'_hom - theorem CategoryTheory.Limits.desc_op_comp_opCoproductIsoProduct_hom - theorem CategoryTheory.Limits.fst_opProdIsoCoprod_hom - theorem CategoryTheory.Limits.hasCoproductsOfShape_of_opposite - theorem CategoryTheory.Limits.hasCoproducts_of_opposite - theorem CategoryTheory.Limits.hasFiniteCoproducts_of_opposite - theorem CategoryTheory.Limits.hasFiniteProducts_of_opposite - theorem CategoryTheory.Limits.hasProductsOfShape_of_opposite - theorem CategoryTheory.Limits.hasProducts_of_opposite - theorem CategoryTheory.Limits.has_cofiltered_limits_of_has_filtered_colimits_op - theorem CategoryTheory.Limits.has_filtered_colimits_of_has_cofiltered_limits_op - theorem CategoryTheory.Limits.inl_opProdIsoCoprod_inv - theorem CategoryTheory.Limits.inr_opProdIsoCoprod_inv - def CategoryTheory.Limits.opCoproductIsoProduct' - theorem CategoryTheory.Limits.opCoproductIsoProduct'_comp_self - theorem CategoryTheory.Limits.opCoproductIsoProduct'_hom_comp_proj - theorem CategoryTheory.Limits.opCoproductIsoProduct'_inv_comp_inj - def CategoryTheory.Limits.opCoproductIsoProduct - theorem CategoryTheory.Limits.opCoproductIsoProduct_hom_comp_π - theorem CategoryTheory.Limits.opCoproductIsoProduct_inv_comp_ι - def CategoryTheory.Limits.opCospan - def CategoryTheory.Limits.opProdIsoCoprod - theorem CategoryTheory.Limits.opProdIsoCoprod_hom_fst - theorem CategoryTheory.Limits.opProdIsoCoprod_hom_snd - theorem CategoryTheory.Limits.opProdIsoCoprod_inv_inl - theorem CategoryTheory.Limits.opProdIsoCoprod_inv_inr - def CategoryTheory.Limits.opProductIsoCoproduct' - theorem CategoryTheory.Limits.opProductIsoCoproduct'_comp_self - theorem CategoryTheory.Limits.opProductIsoCoproduct'_inv_comp_lift - def CategoryTheory.Limits.opProductIsoCoproduct - theorem CategoryTheory.Limits.opProductIsoCoproduct_inv_comp_lift - def CategoryTheory.Limits.opSpan - theorem CategoryTheory.Limits.proj_comp_opProductIsoCoproduct'_hom - theorem CategoryTheory.Limits.pullbackIsoUnopPushout_hom_inl - theorem CategoryTheory.Limits.pullbackIsoUnopPushout_hom_inr - theorem CategoryTheory.Limits.pullbackIsoUnopPushout_inv_fst - theorem CategoryTheory.Limits.pullbackIsoUnopPushout_inv_snd - theorem CategoryTheory.Limits.pushoutIsoUnopPullback_inl_hom - theorem CategoryTheory.Limits.pushoutIsoUnopPullback_inr_hom - theorem CategoryTheory.Limits.pushoutIsoUnopPullback_inv_fst - theorem CategoryTheory.Limits.pushoutIsoUnopPullback_inv_snd - theorem CategoryTheory.Limits.snd_opProdIsoCoprod_hom - def CategoryTheory.Limits.spanOp - theorem CategoryTheory.Limits.π_comp_opProductIsoCoproduct_hom Modified Mathlib/CategoryTheory/Limits/Preserves/Shapes/Pullbacks.lean Added Mathlib/CategoryTheory/Limits/Shapes/Opposites/Equalizers.lean Added Mathlib/CategoryTheory/Limits/Shapes/Opposites/Filtered.lean + theorem CategoryTheory.Limits.has_cofiltered_limits_of_has_filtered_colimits_op + theorem CategoryTheory.Limits.has_filtered_colimits_of_has_cofiltered_limits_op Added Mathlib/CategoryTheory/Limits/Shapes/Opposites/Kernels.lean + def CategoryTheory.Limits.CokernelCofork.IsColimit.ofπOp + def CategoryTheory.Limits.CokernelCofork.IsColimit.ofπUnop + def CategoryTheory.Limits.KernelFork.IsLimit.ofιOp + def CategoryTheory.Limits.KernelFork.IsLimit.ofιUnop Added Mathlib/CategoryTheory/Limits/Shapes/Opposites/Products.lean + def CategoryTheory.Limits.Cofan.op + def CategoryTheory.Limits.Fan.op + theorem CategoryTheory.Limits.desc_op_comp_opCoproductIsoProduct'_hom + theorem CategoryTheory.Limits.desc_op_comp_opCoproductIsoProduct_hom + theorem CategoryTheory.Limits.fst_opProdIsoCoprod_hom + theorem CategoryTheory.Limits.hasCoproductsOfShape_of_opposite + theorem CategoryTheory.Limits.hasCoproducts_of_opposite + theorem CategoryTheory.Limits.hasFiniteCoproducts_of_opposite + theorem CategoryTheory.Limits.hasFiniteProducts_of_opposite + theorem CategoryTheory.Limits.hasProductsOfShape_of_opposite + theorem CategoryTheory.Limits.hasProducts_of_opposite + theorem CategoryTheory.Limits.inl_opProdIsoCoprod_inv + theorem CategoryTheory.Limits.inr_opProdIsoCoprod_inv + def CategoryTheory.Limits.opCoproductIsoProduct' + theorem CategoryTheory.Limits.opCoproductIsoProduct'_comp_self + theorem CategoryTheory.Limits.opCoproductIsoProduct'_hom_comp_proj + theorem CategoryTheory.Limits.opCoproductIsoProduct'_inv_comp_inj + def CategoryTheory.Limits.opCoproductIsoProduct + theorem CategoryTheory.Limits.opCoproductIsoProduct_hom_comp_π + theorem CategoryTheory.Limits.opCoproductIsoProduct_inv_comp_ι + def CategoryTheory.Limits.opProdIsoCoprod + theorem CategoryTheory.Limits.opProdIsoCoprod_hom_fst + theorem CategoryTheory.Limits.opProdIsoCoprod_hom_snd + theorem CategoryTheory.Limits.opProdIsoCoprod_inv_inl + theorem CategoryTheory.Limits.opProdIsoCoprod_inv_inr + def CategoryTheory.Limits.opProductIsoCoproduct' + theorem CategoryTheory.Limits.opProductIsoCoproduct'_comp_self + theorem CategoryTheory.Limits.opProductIsoCoproduct'_inv_comp_lift + def CategoryTheory.Limits.opProductIsoCoproduct + theorem CategoryTheory.Limits.opProductIsoCoproduct_inv_comp_lift + theorem CategoryTheory.Limits.proj_comp_opProductIsoCoproduct'_hom + theorem CategoryTheory.Limits.snd_opProdIsoCoprod_hom + theorem CategoryTheory.Limits.π_comp_opProductIsoCoproduct_hom Added Mathlib/CategoryTheory/Limits/Shapes/Opposites/Pullbacks.lean + def CategoryTheory.Limits.PullbackCone.isLimitEquivIsColimitOp + def CategoryTheory.Limits.PullbackCone.isLimitEquivIsColimitUnop + def CategoryTheory.Limits.PullbackCone.op + def CategoryTheory.Limits.PullbackCone.opUnop + theorem CategoryTheory.Limits.PullbackCone.op_inl + theorem CategoryTheory.Limits.PullbackCone.op_inr + def CategoryTheory.Limits.PullbackCone.unop + def CategoryTheory.Limits.PullbackCone.unopOp + theorem CategoryTheory.Limits.PullbackCone.unop_inl + theorem CategoryTheory.Limits.PullbackCone.unop_inr + def CategoryTheory.Limits.PushoutCocone.isColimitEquivIsLimitOp + def CategoryTheory.Limits.PushoutCocone.isColimitEquivIsLimitUnop + def CategoryTheory.Limits.PushoutCocone.op + def CategoryTheory.Limits.PushoutCocone.opUnop + theorem CategoryTheory.Limits.PushoutCocone.op_fst + theorem CategoryTheory.Limits.PushoutCocone.op_snd + def CategoryTheory.Limits.PushoutCocone.unop + def CategoryTheory.Limits.PushoutCocone.unopOp + theorem CategoryTheory.Limits.PushoutCocone.unop_fst + theorem CategoryTheory.Limits.PushoutCocone.unop_snd + def CategoryTheory.Limits.cospanOp + def CategoryTheory.Limits.opCospan + def CategoryTheory.Limits.opSpan + theorem CategoryTheory.Limits.pullbackIsoUnopPushout_hom_inl + theorem CategoryTheory.Limits.pullbackIsoUnopPushout_hom_inr + theorem CategoryTheory.Limits.pullbackIsoUnopPushout_inv_fst + theorem CategoryTheory.Limits.pullbackIsoUnopPushout_inv_snd + theorem CategoryTheory.Limits.pushoutIsoUnopPullback_inl_hom + theorem CategoryTheory.Limits.pushoutIsoUnopPullback_inr_hom + theorem CategoryTheory.Limits.pushoutIsoUnopPullback_inv_fst + theorem CategoryTheory.Limits.pushoutIsoUnopPullback_inv_snd + def CategoryTheory.Limits.spanOp Modified Mathlib/CategoryTheory/Sites/Hypercover/Homotopy.lean Modified Mathlib/CategoryTheory/Sites/Preserves.lean Modified Mathlib/CategoryTheory/SmallObject/Iteration/Basic.lean Modified Mathlib/Topology/Category/CompHausLike/SigmaComparison.lean Modified Mathlib/Topology/Category/TopCat/Yoneda.lean 2025-10-15 10:06:15 c368e9e chore(AlgebraicGeometry): autumn cleaning (#30426) (everything is in the `AlgebraicGeometry` namespace; "x" means auto-generated) ### Important change Added `instance {X Y : Scheme.{u}} : CoeFun (X ⟶ Y) (fun _ ↦ X → Y)`. In particular, the preferred way to apply `f : X ⟶ Y` to `x : X` is `f x` instead of `f.base x`, and the lemma names should be updated accordingly. The pretty printer doesn't work yet but this will be added in a future PR. ### Renamed `Scheme.Hom.image_le_image_of_le` -> `Scheme.Hom.image_mono` `Scheme.Hom.image_preimage_eq_opensRange_inter` -> `Scheme.Hom.image_preimage_eq_opensRange_inf` `Scheme.Hom.map_mem_image_iff` -> `Scheme.Hom.apply_mem_image_iff` `Scheme.basic_open_isOpenImmersion` -> `Scheme.isOpenImmersion_SpecMap_localizationAway` `IsOpenImmersion.to_iso` -> `IsOpenImmersion.isIso` `IsOpenImmersion.of_stalk_iso` -> `IsOpenImmersion.of_isIso_stalkMap` `IsOpenImmersion.iff_stalk_iso` -> `IsOpenImmersion.iff_isIso_stalkMap` `isIso_iff_stalk_iso` -> `isIso_iff_isIso_stalkMap` `IsOpenImmersion.range_pullback_snd_of_left` -> `IsOpenImmersion.range_pullbackSnd` `IsOpenImmersion.opensRange_pullback_snd_of_left` -> `Scheme.Hom.opensRange_pullbackSnd` `IsOpenImmersion.range_pullback_fst_of_right` -> `IsOpenImmersion.range_pullbackFst` `IsOpenImmersion.opensRange_pullback_fst_of_right` -> `Scheme.Hom.opensRange_pullbackFst` `IsOpenImmersion.map_ΓIso_hom` -> `IsOpenImmersion.app_ΓIso_hom` `isBasis_affine_open` -> `Scheme.isBasis_affineOpens` `Scheme.Hom.ι_base_apply` -> `Scheme.Hom.ι_apply` `Scheme.map_basicOpen` -> `Scheme.Opens.ι_image_basicOpen`' `Scheme.map_basicOpen_map` -> `Scheme.Opens.ι_image_basicOpen_topIso_inv` `Scheme.Hom.le_preimage_resLE_iff` -> `Scheme.Hom.le_resLE_preimage_iff` `Scheme.Hom.coe_resLE_base` -> `Scheme.Hom.coe_resLE_apply` `Scheme.Hom.preimage_iSup_eq_top` -> `Scheme.Hom.iSup_preimage_eq_top` `Scheme.Hom.preimage_le_preimage_of_le` -> `Scheme.Hom.preimage_mono` `Scheme.preimage_comp` -> `Scheme.Hom.comp_preimage` `Scheme.id.base` -> `Scheme.Hom.id_base` `Scheme.id_app` -> `Scheme.Hom.id_app` `Scheme.id_appTop` -> `Scheme.Hom.id_appTop` `Scheme.comp_toLRSHom` -> `Scheme.Hom.comp_toLRSHom` `Scheme.comp_toLRSHom_assoc` -> `Scheme.Hom.comp_toLRSHom_assoc` `Scheme.comp_coeBase` -> `Scheme.Hom.comp_base` `Scheme.comp_coeBase_assoc` -> `Scheme.Hom.comp_base_assoc` `Scheme.comp_base` -> `Scheme.Hom.comp_base` `Scheme.comp_base_assoc` -> `Scheme.Hom.comp_base_assoc` `Scheme.comp_base_apply` -> `Scheme.Hom.comp_apply` `Scheme.comp_app` -> `Scheme.Hom.comp_app` `Scheme.comp_app_assoc` -> `Scheme.Hom.comp_app_assoc` `Scheme.comp_appTop` -> `Scheme.Hom.comp_appTop` `Scheme.comp_appTop_assoc` -> `Scheme.Hom.comp_appTop_assoc` `Scheme.appLE_comp_appLE` -> `Scheme.Hom.appLE_comp_appLE` `Scheme.comp_appLE` -> `Scheme.Hom.comp_appLE` `Scheme.comp_appLE_assoc` -> `Scheme.Hom.comp_appLE_assoc` `Scheme.congr_app` -> `Scheme.Hom.congr_app` `Scheme.app_eq` -> `Scheme.Hom.app_eq` `Scheme.eqToHom_c_app` -> `Scheme.Hom.eqToHom_app` `Scheme.inv_app` -> `Scheme.Hom.inv_app` `Scheme.inv_appTop` -> `Scheme.Hom.inv_appTop` `Spec.map_base_apply` -> `Spec.map_apply` `Scheme.iso_hom_base_inv_base` -> `Scheme.hom_base_inv_base` `Scheme.iso_hom_base_inv_base_apply` -> `Scheme.hom_inv_apply` `Scheme.iso_inv_base_hom_base` -> `Scheme.inv_base_hom_base` `Scheme.iso_inv_base_hom_base_apply` -> `Scheme.inv_hom_apply` `Scheme.stalkMap_id` -> `Scheme.Hom.stalkMap_id` `Scheme.stalkMap_comp` -> `Scheme.Hom.stalkMap_comp` `Scheme.stalkSpecializes_stalkMap` -> `Scheme.Hom.stalkSpecializes_stalkMap` `Scheme.stalkSpecializes_stalkMap_assoc` -> `Scheme.Hom.stalkSpecializes_stalkMap_assoc` `Scheme.stalkSpecializes_stalkMap_apply` -> `Scheme.Hom.stalkSpecializes_stalkMap_apply` `Scheme.stalkMap_congr` -> `Scheme.Hom.stalkMap_congr` `Scheme.stalkMap_congr_assoc` -> `Scheme.Hom.stalkMap_congr_assoc` `Scheme.stalkMap_congr_hom` -> `Scheme.Hom.stalkMap_congr_hom` `Scheme.stalkMap_congr_hom_assoc` -> `Scheme.Hom.stalkMap_congr_hom_assoc` `Scheme.stalkMap_congr_point` -> `Scheme.Hom.stalkMap_congr_point` `Scheme.stalkMap_congr_point_assoc` -> `Scheme.Hom.stalkMap_congr_point_assoc` `Scheme.stalkMap_hom_inv` -> `Scheme.Hom.stalkMap_hom_inv` `Scheme.stalkMap_hom_inv_assoc` -> `Scheme.Hom.stalkMap_hom_inv_assoc` `Scheme.stalkMap_hom_inv_apply` -> `Scheme.Hom.stalkMap_hom_inv_apply` `Scheme.stalkMap_inv_hom` -> `Scheme.Hom.stalkMap_inv_hom` `Scheme.stalkMap_inv_hom_assoc` -> `Scheme.Hom.stalkMap_inv_hom_assoc` `Scheme.stalkMap_inv_hom_apply` -> `Scheme.Hom.stalkMap_inv_hom_apply` `Scheme.stalkMap_germ` -> `Scheme.Hom.germ_stalkMap` `Scheme.stalkMap_germ_assoc` -> `Scheme.Hom.germ_stalkMap_assoc` `Scheme.stalkMap_germ_apply` -> `Scheme.Hom.germ_stalkMap_apply` `Scheme.arrowStalkMapIsoOfEq` -> `Scheme.Hom.arrowStalkMapIsoOfEq` `quasiCompact_iff_spectral` -> `quasiCompact_iff_isSpectralMap` `IsAffineOpen.Spec_map_appLE_fromSpec` -> `IsAffineOpen.SpecMap_appLE_fromSpec` `IsAffineOpen.Spec_map_appLE_fromSpec_assoc` -> `IsAffineOpen.SpecMap_appLE_fromSpec_assoc` `AffineSpace.map_Spec_map` -> `AffineSpace.map_SpecMap` `Scheme.Pullback.Triplet.Spec_map_tensor_isPullback` -> `Scheme.Pullback.Triplet.isPullback_SpecMap_tensor` `Scheme.Pullback.Triplet.Spec_map_tensorInl_fromSpecResidueField` -> `Scheme.Pullback.Triplet.SpecMap_tensorInl_fromSpecResidueField` `Scheme.Spec_map_presheaf_map_eqToHom` -> `Scheme.SpecMap_presheaf_map_eqToHom` `Scheme.Spec_map_residue_apply` -> `Scheme.SpecMap_residue_apply` `Scheme.Hom.Spec_map_residueFieldMap_fromSpecResidueField` -> `Scheme.Hom.SpecMap_residueFieldMap_fromSpecResidueField` `Scheme.Spec_map_stalkSpecializes_fromSpecStalk` -> `Scheme.SpecMap_stalkSpecializes_fromSpecStalk` `Scheme.Spec_map_stalkSpecializes_fromSpecStalk_assoc` -> `Scheme.SpecMap_stalkSpecializes_fromSpecStalk_assoc` `Scheme.Spec_map_stalkMap_fromSpecStalk` -> `Scheme.SpecMap_stalkMap_fromSpecStalk` `Scheme.Spec_map_stalkMap_fromSpecStalk_assoc` -> `Scheme.SpecMap_stalkMap_fromSpecStalk_assoc` `IsClosedImmersion.Spec_map_residue` -> `IsClosedImmersion.SpecMap_residue` `Spec_map_localization_isIso` -> `isIso_SpecMap_stakMap_localization` `stalkwise_Spec_map_iff` -> `stalkwise_SpecMap_iff` `IsPreimmersion.Spec_map_iff` -> `IsPreimmersion.SpecMap_iff` `IsPreimmersion.mk_Spec_map` -> `IsPreimmersion.mk_SpecMap` `diagonal_Spec_map` -> `diagonal_SpecMap` `isPullback_Spec_map_isPushout` -> `isPullback_SpecMap_of_isPushout` `isPullback_Spec_map_pushout` -> `isPullback_SpecMap_pushout` `IsOpenImmersion.forget_preservesOfLeft` -> x `IsOpenImmersion.forget_preservesOfRight` -> x `IsOpenImmersion.pullback_snd_of_left` -> x `IsOpenImmersion.pullback_fst_of_right` -> x `IsOpenImmersion.pullback_to_base` -> x `IsOpenImmersion.forgetToTop_preserves_of_left` -> x `IsOpenImmersion.forgetToTop_preserves_of_right` -> x `fromGlued_stalk_iso` -> x `fromGlued_open_map` -> `isOpenMap_fromGlued` `fromGlued_isOpenEmbedding` -> `isOpenEmbedding_fromGlued` `fromGlued_open_immersion` -> x `IsAffineOpen.isoSpec_hom_base_apply` -> `IsAffineOpen.isoSpec_hom_apply` `isoSpec_hom_base_apply` -> `isoSpec_hom_apply` `Scheme.Pullback.Triplet.specTensorTo_base_fst` -> `Scheme.Pullback.Triplet.fst_SpecTensorTo_apply` `Scheme.Pullback.Triplet.specTensorTo_base_snd` -> `Scheme.Pullback.Triplet.snd_SpecTensorTo_apply` `Scheme.toSpecΓ_base` -> `Scheme.toSpecΓ_apply` `basicOpen_union_eq_self_iff` -> `iSup_basicOpen_eq_self_iff` `self_le_basicOpen_union_iff` -> `self_le_iSup_basicOpen_iff` `Scheme.Opens.toSpecΓ_SpecMap_map` -> `Scheme.Opens.toSpecΓ_SpecMap_presheaf_map` `Scheme.Opens.toSpecΓ_SpecMap_map_assoc` -> `Scheme.Opens.toSpecΓ_SpecMap_presheaf_map_assoc` `isIso_iff_isOpenImmersion` -> `isIso_iff_isOpenImmersion_and_epi_base` `isCompactOpen_iff_eq_finset_affine_union` -> `isCompact_and_isOpen_iff_finite_and_eq_biUnion_affineOpens` `isCompactOpen_iff_eq_basicOpen_union` -> `isCompact_and_isOpen_iff_finite_and_eq_biUnion_basicOpen` ### Removed `Scheme.presheaf_map_eqToHom_op` `affinePreimage` `instance : Inhabited Scheme` `Γ_map_morphismRestrict` `eqToHom_eq_homOfLE` ### Added `instance {X Y : Scheme.{u}} : CoeFun (X ⟶ Y) (fun _ ↦ X → Y)` `Scheme.Opens.toSpecΓ_preimage_basicOpen` `Scheme.Hom.isSpectralMap` `isCompact_iff_finite_and_eq_biUnion_affineOpens` `Scheme.Hom.coe_image` `Scheme.Hom.comp_image` `Scheme.Hom.id_image` `Scheme.Hom.inv_image` `Scheme.Hom.mem_preimage` `Scheme.Hom.coe_preimage` `Scheme.Hom.preimage_sup` `Scheme.Hom.preimage_inf` `Scheme.Hom.preimage_top` `Scheme.Hom.preimage_bot` `Scheme.Hom.id_preimage` `Scheme.Opens.mem_ι_image_iff` `IsAffine.iff_of_isIso` `SpecMap_ΓSpecIso_inv_toSpecΓ` `SpecMap_ΓSpecIso_inv_toSpecΓ_assoc` `toSpecΓ_SpecMap_ΓSpecIso_inv` `toSpecΓ_SpecMap_ΓSpecIso_inv_assoc` `Scheme.Opens.toSpecΓ_SpecMap_map_top` `Scheme.Opens.toSpecΓ_SpecMap_map_top_assoc` `Scheme.Opens.toSpecΓ_naturality` `Scheme.Opens.toSpecΓ_naturality_assoc` `IsAffineOpen.fromSpec_toSpecΓ` `IsAffineOpen.fromSpec_toSpecΓ_assoc` `IsAffineOpen.preimage_of_isOpenImmersion` `Scheme.Hom.image_le_opensRange` `Scheme.Hom.image_preimage_le` `Scheme.Opens.mem_basicOpen_toScheme` `Scheme.homOfLE_appLE` `Scheme.opensRange_homOfLE` ESTIMATED CHANGES Modified Mathlib/AlgebraicGeometry/AffineScheme.lean + theorem AlgebraicGeometry.IsAffine.iff_of_isIso + theorem AlgebraicGeometry.IsAffineOpen.SpecMap_appLE_fromSpec - theorem AlgebraicGeometry.IsAffineOpen.Spec_map_appLE_fromSpec - theorem AlgebraicGeometry.IsAffineOpen.basicOpen_union_eq_self_iff + theorem AlgebraicGeometry.IsAffineOpen.fromSpec_toSpecΓ + theorem AlgebraicGeometry.IsAffineOpen.iSup_basicOpen_eq_self_iff +/- theorem AlgebraicGeometry.IsAffineOpen.isLocalization_stalk' + theorem AlgebraicGeometry.IsAffineOpen.isoSpec_hom_apply - theorem AlgebraicGeometry.IsAffineOpen.isoSpec_hom_base_apply + theorem AlgebraicGeometry.IsAffineOpen.preimage_of_isOpenImmersion - theorem AlgebraicGeometry.IsAffineOpen.self_le_basicOpen_union_iff + theorem AlgebraicGeometry.IsAffineOpen.self_le_iSup_basicOpen_iff - theorem AlgebraicGeometry.Scheme.Opens.toSpecΓ_SpecMap_map + theorem AlgebraicGeometry.Scheme.Opens.toSpecΓ_SpecMap_presheaf_map + theorem AlgebraicGeometry.Scheme.Opens.toSpecΓ_SpecMap_presheaf_map_top + theorem AlgebraicGeometry.Scheme.Opens.toSpecΓ_naturality + theorem AlgebraicGeometry.Scheme.Opens.toSpecΓ_preimage_basicOpen +/- theorem AlgebraicGeometry.Scheme.Opens.toSpecΓ_preimage_zeroLocus + theorem AlgebraicGeometry.Scheme.isBasis_affineOpens - theorem AlgebraicGeometry.isBasis_affine_open Modified Mathlib/AlgebraicGeometry/AffineSpace.lean +/- theorem AlgebraicGeometry.AffineSpace.isOpenMap_over + theorem AlgebraicGeometry.AffineSpace.map_SpecMap - theorem AlgebraicGeometry.AffineSpace.map_Spec_map Modified Mathlib/AlgebraicGeometry/AffineTransitionLimit.lean Modified Mathlib/AlgebraicGeometry/Cover/Directed.lean Modified Mathlib/AlgebraicGeometry/Cover/MorphismProperty.lean Modified Mathlib/AlgebraicGeometry/Cover/Open.lean Modified Mathlib/AlgebraicGeometry/Cover/Sigma.lean Modified Mathlib/AlgebraicGeometry/Fiber.lean +/- def AlgebraicGeometry.Scheme.Hom.asFiber +/- def AlgebraicGeometry.Scheme.Hom.fiber +/- def AlgebraicGeometry.Scheme.Hom.fiberHomeo +/- theorem AlgebraicGeometry.Scheme.Hom.fiberHomeo_apply +/- def AlgebraicGeometry.Scheme.Hom.fiberToSpecResidueField +/- theorem AlgebraicGeometry.Scheme.Hom.fiberToSpecResidueField_apply +/- def AlgebraicGeometry.Scheme.Hom.fiberι +/- theorem AlgebraicGeometry.Scheme.Hom.fiberι_asFiber +/- theorem AlgebraicGeometry.Scheme.Hom.fiberι_fiberHomeo_symm +/- theorem AlgebraicGeometry.Scheme.Hom.finite_preimage +/- theorem AlgebraicGeometry.Scheme.Hom.range_fiberι Modified Mathlib/AlgebraicGeometry/FunctionField.lean +/- theorem AlgebraicGeometry.genericPoint_eq_of_isOpenImmersion Modified Mathlib/AlgebraicGeometry/GammaSpecAdjunction.lean + theorem AlgebraicGeometry.Scheme.toSpecΓ_apply - theorem AlgebraicGeometry.Scheme.toSpecΓ_base + theorem AlgebraicGeometry.SpecMap_ΓSpecIso_inv_toSpecΓ + theorem AlgebraicGeometry.toSpecΓ_SpecMap_ΓSpecIso_inv Modified Mathlib/AlgebraicGeometry/Gluing.lean +/- theorem AlgebraicGeometry.Scheme.Cover.fromGlued_injective - theorem AlgebraicGeometry.Scheme.Cover.fromGlued_isOpenEmbedding - theorem AlgebraicGeometry.Scheme.Cover.fromGlued_open_map + theorem AlgebraicGeometry.Scheme.Cover.isOpenEmbedding_fromGlued + theorem AlgebraicGeometry.Scheme.Cover.isOpenMap_fromGlued +/- theorem AlgebraicGeometry.Scheme.GlueData.isOpen_iff Modified Mathlib/AlgebraicGeometry/IdealSheaf/Basic.lean Modified Mathlib/AlgebraicGeometry/IdealSheaf/Functorial.lean Modified Mathlib/AlgebraicGeometry/IdealSheaf/Subscheme.lean Modified Mathlib/AlgebraicGeometry/Limits.lean Modified Mathlib/AlgebraicGeometry/Morphisms/Affine.lean - def AlgebraicGeometry.affinePreimage Modified Mathlib/AlgebraicGeometry/Morphisms/Basic.lean Modified Mathlib/AlgebraicGeometry/Morphisms/ClosedImmersion.lean Modified Mathlib/AlgebraicGeometry/Morphisms/Constructors.lean + theorem AlgebraicGeometry.stalkwise_SpecMap_iff - theorem AlgebraicGeometry.stalkwise_Spec_map_iff Modified Mathlib/AlgebraicGeometry/Morphisms/Descent.lean Modified Mathlib/AlgebraicGeometry/Morphisms/FinitePresentation.lean Modified Mathlib/AlgebraicGeometry/Morphisms/Flat.lean Modified Mathlib/AlgebraicGeometry/Morphisms/FormallyUnramified.lean Modified Mathlib/AlgebraicGeometry/Morphisms/Immersion.lean Modified Mathlib/AlgebraicGeometry/Morphisms/Integral.lean Modified Mathlib/AlgebraicGeometry/Morphisms/IsIso.lean Modified Mathlib/AlgebraicGeometry/Morphisms/OpenImmersion.lean Modified Mathlib/AlgebraicGeometry/Morphisms/Preimmersion.lean + theorem AlgebraicGeometry.IsPreimmersion.SpecMap_iff - theorem AlgebraicGeometry.IsPreimmersion.Spec_map_iff + theorem AlgebraicGeometry.IsPreimmersion.mk_SpecMap - theorem AlgebraicGeometry.IsPreimmersion.mk_Spec_map Modified Mathlib/AlgebraicGeometry/Morphisms/Proper.lean Modified Mathlib/AlgebraicGeometry/Morphisms/QuasiCompact.lean + theorem AlgebraicGeometry.Scheme.Hom.isSpectralMap - theorem AlgebraicGeometry.isCompactOpen_iff_eq_basicOpen_union - theorem AlgebraicGeometry.isCompactOpen_iff_eq_finset_affine_union + theorem AlgebraicGeometry.isCompact_and_isOpen_iff_finite_and_eq_biUnion_affineOpens + theorem AlgebraicGeometry.isCompact_and_isOpen_iff_finite_and_eq_biUnion_basicOpen + theorem AlgebraicGeometry.isCompact_iff_finite_and_eq_biUnion_affineOpens - theorem AlgebraicGeometry.quasiCompact_iff_forall_affine + theorem AlgebraicGeometry.quasiCompact_iff_forall_isAffineOpen + theorem AlgebraicGeometry.quasiCompact_iff_isSpectralMap - theorem AlgebraicGeometry.quasiCompact_iff_spectral Modified Mathlib/AlgebraicGeometry/Morphisms/QuasiSeparated.lean Modified Mathlib/AlgebraicGeometry/Morphisms/RingHomProperties.lean Modified Mathlib/AlgebraicGeometry/Morphisms/Separated.lean Modified Mathlib/AlgebraicGeometry/Morphisms/Smooth.lean Modified Mathlib/AlgebraicGeometry/Morphisms/SurjectiveOnStalks.lean Modified Mathlib/AlgebraicGeometry/Morphisms/UnderlyingMap.lean Modified Mathlib/AlgebraicGeometry/Morphisms/UniversallyInjective.lean Modified Mathlib/AlgebraicGeometry/Noetherian.lean Modified Mathlib/AlgebraicGeometry/OpenImmersion.lean + theorem AlgebraicGeometry.IsOpenImmersion.app_ΓIso_hom +/- theorem AlgebraicGeometry.IsOpenImmersion.comp_lift + theorem AlgebraicGeometry.IsOpenImmersion.iff_isIso_stalkMap - theorem AlgebraicGeometry.IsOpenImmersion.iff_stalk_iso + theorem AlgebraicGeometry.IsOpenImmersion.isIso +/- def AlgebraicGeometry.IsOpenImmersion.isoOfRangeEq +/- def AlgebraicGeometry.IsOpenImmersion.isoRestrict +/- def AlgebraicGeometry.IsOpenImmersion.lift +/- theorem AlgebraicGeometry.IsOpenImmersion.lift_fac +/- theorem AlgebraicGeometry.IsOpenImmersion.lift_uniq + theorem AlgebraicGeometry.IsOpenImmersion.of_isIso_stalkMap - theorem AlgebraicGeometry.IsOpenImmersion.of_stalk_iso - theorem AlgebraicGeometry.IsOpenImmersion.opensRange_pullback_fst_of_right - theorem AlgebraicGeometry.IsOpenImmersion.opensRange_pullback_snd_of_left + theorem AlgebraicGeometry.IsOpenImmersion.range_pullbackFst + theorem AlgebraicGeometry.IsOpenImmersion.range_pullbackSnd - theorem AlgebraicGeometry.IsOpenImmersion.range_pullback_fst_of_right - theorem AlgebraicGeometry.IsOpenImmersion.range_pullback_snd_of_left - theorem AlgebraicGeometry.IsOpenImmersion.to_iso - theorem AlgebraicGeometry.IsOpenImmersion.ΓIso_hom_map + theorem AlgebraicGeometry.Scheme.Hom.apply_mem_image_iff + theorem AlgebraicGeometry.Scheme.Hom.coe_image + theorem AlgebraicGeometry.Scheme.Hom.comp_image + theorem AlgebraicGeometry.Scheme.Hom.id_image - theorem AlgebraicGeometry.Scheme.Hom.image_le_image_of_le + theorem AlgebraicGeometry.Scheme.Hom.image_le_opensRange + theorem AlgebraicGeometry.Scheme.Hom.image_mono + theorem AlgebraicGeometry.Scheme.Hom.image_preimage_eq_opensRange_inf - theorem AlgebraicGeometry.Scheme.Hom.image_preimage_eq_opensRange_inter + theorem AlgebraicGeometry.Scheme.Hom.image_preimage_le + theorem AlgebraicGeometry.Scheme.Hom.inv_image +/- theorem AlgebraicGeometry.Scheme.Hom.isOpenEmbedding - theorem AlgebraicGeometry.Scheme.Hom.map_mem_image_iff + def AlgebraicGeometry.Scheme.Hom.opensFunctor + theorem AlgebraicGeometry.Scheme.Hom.opensRange_pullbackFst + theorem AlgebraicGeometry.Scheme.Hom.opensRange_pullbackSnd +/- theorem AlgebraicGeometry.Scheme.Hom.preimage_opensRange + theorem AlgebraicGeometry.isIso_iff_isIso_stalkMap - theorem AlgebraicGeometry.isIso_iff_isOpenImmersion + theorem AlgebraicGeometry.isIso_iff_isOpenImmersion_and_epi_base - theorem AlgebraicGeometry.isIso_iff_stalk_iso Modified Mathlib/AlgebraicGeometry/PointsPi.lean Modified Mathlib/AlgebraicGeometry/ProjectiveSpectrum/Basic.lean Modified Mathlib/AlgebraicGeometry/Properties.lean +/- theorem AlgebraicGeometry.isIntegral_of_isOpenImmersion +/- theorem AlgebraicGeometry.isReduced_of_isOpenImmersion Modified Mathlib/AlgebraicGeometry/PullbackCarrier.lean + theorem AlgebraicGeometry.Scheme.Pullback.Triplet.SpecMap_tensorInl_fromSpecResidueField - theorem AlgebraicGeometry.Scheme.Pullback.Triplet.Spec_map_tensorInl_fromSpecResidueField - theorem AlgebraicGeometry.Scheme.Pullback.Triplet.Spec_map_tensor_isPullback + theorem AlgebraicGeometry.Scheme.Pullback.Triplet.fst_SpecTensorTo_apply + theorem AlgebraicGeometry.Scheme.Pullback.Triplet.isPullback_SpecMap_tensor +/- def AlgebraicGeometry.Scheme.Pullback.Triplet.mk' + theorem AlgebraicGeometry.Scheme.Pullback.Triplet.snd_SpecTensorTo_apply - theorem AlgebraicGeometry.Scheme.Pullback.Triplet.specTensorTo_base_fst - theorem AlgebraicGeometry.Scheme.Pullback.Triplet.specTensorTo_base_snd +/- theorem AlgebraicGeometry.Scheme.Pullback.exists_preimage_pullback +/- theorem AlgebraicGeometry.Scheme.Pullback.range_fst +/- theorem AlgebraicGeometry.Scheme.Pullback.range_snd Modified Mathlib/AlgebraicGeometry/Pullbacks.lean + theorem AlgebraicGeometry.diagonal_SpecMap - theorem AlgebraicGeometry.diagonal_Spec_map + theorem AlgebraicGeometry.isPullback_SpecMap_of_isPushout + theorem AlgebraicGeometry.isPullback_SpecMap_pushout - theorem AlgebraicGeometry.isPullback_Spec_map_isPushout - theorem AlgebraicGeometry.isPullback_Spec_map_pushout Modified Mathlib/AlgebraicGeometry/QuasiAffine.lean Modified Mathlib/AlgebraicGeometry/RationalMap.lean Modified Mathlib/AlgebraicGeometry/ResidueField.lean + theorem AlgebraicGeometry.Scheme.Hom.SpecMap_residueFieldMap_fromSpecResidueField - theorem AlgebraicGeometry.Scheme.Hom.Spec_map_residueFieldMap_fromSpecResidueField +/- def AlgebraicGeometry.Scheme.Hom.residueFieldMap + theorem AlgebraicGeometry.Scheme.SpecMap_residue_apply - theorem AlgebraicGeometry.Scheme.Spec_map_residue_apply +/- theorem AlgebraicGeometry.Scheme.evaluation_naturality +/- theorem AlgebraicGeometry.Scheme.evaluation_naturality_apply Modified Mathlib/AlgebraicGeometry/Restrict.lean + theorem AlgebraicGeometry.Scheme.Hom.coe_resLE_apply - theorem AlgebraicGeometry.Scheme.Hom.coe_resLE_base +/- def AlgebraicGeometry.Scheme.Hom.isoOpensRange +/- theorem AlgebraicGeometry.Scheme.Hom.isoOpensRange_hom_ι +/- theorem AlgebraicGeometry.Scheme.Hom.isoOpensRange_inv_comp - theorem AlgebraicGeometry.Scheme.Hom.le_preimage_resLE_iff + theorem AlgebraicGeometry.Scheme.Hom.le_resLE_preimage_iff +/- theorem AlgebraicGeometry.Scheme.Hom.preimageIso_hom_ι +/- theorem AlgebraicGeometry.Scheme.Hom.preimageIso_inv_ι +/- theorem AlgebraicGeometry.Scheme.Opens.isoOfLE_hom_ι +/- theorem AlgebraicGeometry.Scheme.Opens.isoOfLE_inv_ι + theorem AlgebraicGeometry.Scheme.Opens.mem_basicOpen_toScheme + theorem AlgebraicGeometry.Scheme.Opens.mem_ι_image_iff +/- theorem AlgebraicGeometry.Scheme.Opens.range_ι + theorem AlgebraicGeometry.Scheme.Opens.ι_apply - theorem AlgebraicGeometry.Scheme.Opens.ι_base_apply + theorem AlgebraicGeometry.Scheme.Opens.ι_image_basicOpen' + theorem AlgebraicGeometry.Scheme.Opens.ι_image_basicOpen_topIso_inv + theorem AlgebraicGeometry.Scheme.homOfLE_appLE - theorem AlgebraicGeometry.Scheme.map_basicOpen - theorem AlgebraicGeometry.Scheme.map_basicOpen_map + theorem AlgebraicGeometry.Scheme.opensRange_homOfLE - theorem AlgebraicGeometry.eqToHom_eq_homOfLE +/- def AlgebraicGeometry.morphismRestrictOpensRange - theorem AlgebraicGeometry.Γ_map_morphismRestrict Modified Mathlib/AlgebraicGeometry/Scheme.lean + theorem AlgebraicGeometry.Scheme.Hom.Spec_closedPoint + theorem AlgebraicGeometry.Scheme.Hom.appLE_comp_appLE + theorem AlgebraicGeometry.Scheme.Hom.app_eq + theorem AlgebraicGeometry.Scheme.Hom.coe_preimage + theorem AlgebraicGeometry.Scheme.Hom.comp_app + theorem AlgebraicGeometry.Scheme.Hom.comp_appLE + theorem AlgebraicGeometry.Scheme.Hom.comp_appTop + theorem AlgebraicGeometry.Scheme.Hom.comp_apply + theorem AlgebraicGeometry.Scheme.Hom.comp_base + theorem AlgebraicGeometry.Scheme.Hom.comp_preimage + theorem AlgebraicGeometry.Scheme.Hom.comp_toLRSHom + theorem AlgebraicGeometry.Scheme.Hom.congr_app +/- theorem AlgebraicGeometry.Scheme.Hom.continuous +/- def AlgebraicGeometry.Scheme.Hom.copyBase +/- theorem AlgebraicGeometry.Scheme.Hom.copyBase_eq + theorem AlgebraicGeometry.Scheme.Hom.eqToHom_app + theorem AlgebraicGeometry.Scheme.Hom.germ_stalkMap + theorem AlgebraicGeometry.Scheme.Hom.germ_stalkMap_apply +/- theorem AlgebraicGeometry.Scheme.Hom.homeomorph_apply + theorem AlgebraicGeometry.Scheme.Hom.iSup_preimage_eq_top + theorem AlgebraicGeometry.Scheme.Hom.id_app + theorem AlgebraicGeometry.Scheme.Hom.id_appTop + theorem AlgebraicGeometry.Scheme.Hom.id_base + theorem AlgebraicGeometry.Scheme.Hom.id_preimage + theorem AlgebraicGeometry.Scheme.Hom.inv_app + theorem AlgebraicGeometry.Scheme.Hom.inv_appTop + theorem AlgebraicGeometry.Scheme.Hom.mem_preimage + theorem AlgebraicGeometry.Scheme.Hom.preimage_bot - theorem AlgebraicGeometry.Scheme.Hom.preimage_iSup_eq_top + theorem AlgebraicGeometry.Scheme.Hom.preimage_inf - theorem AlgebraicGeometry.Scheme.Hom.preimage_le_preimage_of_le + theorem AlgebraicGeometry.Scheme.Hom.preimage_mono + theorem AlgebraicGeometry.Scheme.Hom.preimage_sup + theorem AlgebraicGeometry.Scheme.Hom.preimage_top +/- def AlgebraicGeometry.Scheme.Hom.stalkMap + theorem AlgebraicGeometry.Scheme.Hom.stalkMap_comp + theorem AlgebraicGeometry.Scheme.Hom.stalkMap_congr + theorem AlgebraicGeometry.Scheme.Hom.stalkMap_congr_hom + theorem AlgebraicGeometry.Scheme.Hom.stalkMap_congr_point + theorem AlgebraicGeometry.Scheme.Hom.stalkMap_hom_inv + theorem AlgebraicGeometry.Scheme.Hom.stalkMap_hom_inv_apply + theorem AlgebraicGeometry.Scheme.Hom.stalkMap_id + theorem AlgebraicGeometry.Scheme.Hom.stalkMap_inv_hom + theorem AlgebraicGeometry.Scheme.Hom.stalkMap_inv_hom_apply + theorem AlgebraicGeometry.Scheme.Hom.stalkSpecializes_stalkMap + theorem AlgebraicGeometry.Scheme.Hom.stalkSpecializes_stalkMap_apply + theorem AlgebraicGeometry.Scheme.SpecMap_presheaf_map_eqToHom - theorem AlgebraicGeometry.Scheme.Spec_map_presheaf_map_eqToHom - theorem AlgebraicGeometry.Scheme.appLE_comp_appLE - theorem AlgebraicGeometry.Scheme.app_eq - theorem AlgebraicGeometry.Scheme.comp_app - theorem AlgebraicGeometry.Scheme.comp_appLE - theorem AlgebraicGeometry.Scheme.comp_appTop - theorem AlgebraicGeometry.Scheme.comp_base - theorem AlgebraicGeometry.Scheme.comp_base_apply - theorem AlgebraicGeometry.Scheme.comp_coeBase - theorem AlgebraicGeometry.Scheme.comp_toLRSHom - theorem AlgebraicGeometry.Scheme.congr_app - theorem AlgebraicGeometry.Scheme.eqToHom_c_app +/- theorem AlgebraicGeometry.Scheme.forget_map + theorem AlgebraicGeometry.Scheme.hom_base_inv_base + theorem AlgebraicGeometry.Scheme.hom_inv_apply - theorem AlgebraicGeometry.Scheme.id.base - theorem AlgebraicGeometry.Scheme.id_app - theorem AlgebraicGeometry.Scheme.id_appTop - theorem AlgebraicGeometry.Scheme.inv_app - theorem AlgebraicGeometry.Scheme.inv_appTop + theorem AlgebraicGeometry.Scheme.inv_base_hom_base + theorem AlgebraicGeometry.Scheme.inv_hom_apply - theorem AlgebraicGeometry.Scheme.iso_hom_base_inv_base - theorem AlgebraicGeometry.Scheme.iso_hom_base_inv_base_apply - theorem AlgebraicGeometry.Scheme.iso_inv_base_hom_base - theorem AlgebraicGeometry.Scheme.iso_inv_base_hom_base_apply - theorem AlgebraicGeometry.Scheme.preimage_comp - theorem AlgebraicGeometry.Scheme.presheaf_map_eqToHom_op - theorem AlgebraicGeometry.Scheme.stalkMap_comp - theorem AlgebraicGeometry.Scheme.stalkMap_congr - theorem AlgebraicGeometry.Scheme.stalkMap_congr_hom - theorem AlgebraicGeometry.Scheme.stalkMap_congr_point - theorem AlgebraicGeometry.Scheme.stalkMap_germ - theorem AlgebraicGeometry.Scheme.stalkMap_germ_apply - theorem AlgebraicGeometry.Scheme.stalkMap_hom_inv - theorem AlgebraicGeometry.Scheme.stalkMap_hom_inv_apply - theorem AlgebraicGeometry.Scheme.stalkMap_id - theorem AlgebraicGeometry.Scheme.stalkMap_inv_hom - theorem AlgebraicGeometry.Scheme.stalkMap_inv_hom_apply - theorem AlgebraicGeometry.Scheme.stalkSpecializes_stalkMap - theorem AlgebraicGeometry.Scheme.stalkSpecializes_stalkMap_apply + theorem AlgebraicGeometry.Spec.map_apply - theorem AlgebraicGeometry.Spec.map_base_apply + theorem AlgebraicGeometry.SpecMap_preimage_basicOpen - theorem AlgebraicGeometry.Spec_closedPoint Modified Mathlib/AlgebraicGeometry/Sites/MorphismProperty.lean Modified Mathlib/AlgebraicGeometry/Sites/SmallAffineZariski.lean Modified Mathlib/AlgebraicGeometry/Spec.lean - theorem AlgebraicGeometry.Spec_map_localization_isIso + theorem AlgebraicGeometry.isIso_SpecMap_stakMap_localization Modified Mathlib/AlgebraicGeometry/SpreadingOut.lean Modified Mathlib/AlgebraicGeometry/Stalk.lean + theorem AlgebraicGeometry.Scheme.SpecMap_stalkMap_fromSpecStalk + theorem AlgebraicGeometry.Scheme.SpecMap_stalkSpecializes_fromSpecStalk - theorem AlgebraicGeometry.Scheme.Spec_map_stalkMap_fromSpecStalk - theorem AlgebraicGeometry.Scheme.Spec_map_stalkSpecializes_fromSpecStalk +/- theorem AlgebraicGeometry.Scheme.germ_stalkClosedPointTo Modified Mathlib/AlgebraicGeometry/ValuativeCriterion.lean 2025-10-15 09:16:44 9d6530c chore(*): use `gcongr`/`grw` (#30561) ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Ring/Unbundled/Basic.lean Modified Mathlib/Analysis/Distribution/FourierSchwartz.lean Modified Mathlib/Analysis/Normed/Field/Ultra.lean Modified Mathlib/Analysis/Normed/Operator/BoundedLinearMaps.lean Modified Mathlib/Analysis/Normed/Unbundled/RingSeminorm.lean Modified Mathlib/Analysis/SpecialFunctions/Pow/Asymptotics.lean Modified Mathlib/LinearAlgebra/Matrix/DotProduct.lean Modified Mathlib/MeasureTheory/Function/LpSeminorm/CompareExp.lean Modified Mathlib/MeasureTheory/Function/LpSpace/Indicator.lean Modified Mathlib/MeasureTheory/Integral/FinMeasAdditive.lean Modified Mathlib/MeasureTheory/Measure/AddContent.lean Modified Mathlib/ModelTheory/Skolem.lean Modified Mathlib/Probability/StrongLaw.lean Modified Mathlib/SetTheory/Cardinal/Order.lean 2025-10-15 08:28:01 3088711 feat: `{x | p x}⁻¹ = {x | p x⁻¹}` (#30487) ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Pointwise/Finset/Basic.lean + theorem Finset.inv_filter + theorem Finset.inv_filter_univ Modified Mathlib/Algebra/Group/Pointwise/Set/Basic.lean + theorem Set.inv_setOf 2025-10-15 07:38:47 24899e1 doc(CategoryTheory): fix typos (#30558) Found with the help of Codex. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Abelian/Basic.lean Modified Mathlib/CategoryTheory/Abelian/FreydMitchell.lean Modified Mathlib/CategoryTheory/Action.lean Modified Mathlib/CategoryTheory/Adjunction/Basic.lean Modified Mathlib/CategoryTheory/Bicategory/EqToHom.lean Modified Mathlib/CategoryTheory/Bicategory/Functor/StrictlyUnitary.lean Modified Mathlib/CategoryTheory/Bicategory/Kan/Adjunction.lean Modified Mathlib/CategoryTheory/CodiscreteCategory.lean Modified Mathlib/CategoryTheory/CofilteredSystem.lean Modified Mathlib/CategoryTheory/CommSq.lean Modified Mathlib/CategoryTheory/Functor/Derived/PointwiseRightDerived.lean Modified Mathlib/CategoryTheory/Join/Basic.lean Modified Mathlib/CategoryTheory/Limits/ConcreteCategory/Basic.lean Modified Mathlib/CategoryTheory/Limits/Constructions/Over/Products.lean Modified Mathlib/CategoryTheory/Limits/Final.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Multiequalizer.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Pullback/HasPullback.lean Modified Mathlib/CategoryTheory/Limits/Sifted.lean Modified Mathlib/CategoryTheory/Localization/Resolution.lean Modified Mathlib/CategoryTheory/Monoidal/Bimon_.lean Modified Mathlib/CategoryTheory/Monoidal/Braided/Multifunctor.lean Modified Mathlib/CategoryTheory/Monoidal/Category.lean Modified Mathlib/CategoryTheory/Monoidal/DayConvolution.lean Modified Mathlib/CategoryTheory/MorphismProperty/Local.lean Modified Mathlib/CategoryTheory/Products/Basic.lean Modified Mathlib/CategoryTheory/Shift/Adjunction.lean Modified Mathlib/CategoryTheory/Sites/MayerVietorisSquare.lean Modified Mathlib/CategoryTheory/SmallObject/Basic.lean Modified Mathlib/CategoryTheory/Sums/Basic.lean 2025-10-15 07:38:45 385a951 chore(Probability/Distributions/Gaussian): golf `integrable_exp_sq_of_conv_neg` using `grind` (#30556) ESTIMATED CHANGES Modified Mathlib/Probability/Distributions/Gaussian/Fernique.lean 2025-10-15 07:25:27 1a640d9 feat(Homotopy/Path): add missing lemmas (#30552) - Add `@[simps]` to `ContinuousMap.Homotopy.evalAt`. - Add `ContinuousMap.Homotopy.pathExtend_evalAt`. - Reuse section `variable`s. ESTIMATED CHANGES Modified Mathlib/Topology/Homotopy/Path.lean +/- def ContinuousMap.Homotopy.evalAt + theorem ContinuousMap.Homotopy.pathExtend_evalAt 2025-10-15 07:25:25 f7e96f4 chore: fix the lemma name `condIndepFun_iff_condDistrib_prod_ae_eq_prodMkRight` (#30545) There is a `prodMkRight` in the statement, not a `prodMkLeft`. ESTIMATED CHANGES Modified Mathlib/Probability/Independence/Conditional.lean - theorem ProbabilityTheory.condIndepFun_iff_condDistrib_prod_ae_eq_prodMkLeft + theorem ProbabilityTheory.condIndepFun_iff_condDistrib_prod_ae_eq_prodMkRight 2025-10-15 06:33:18 4c1ded9 chore: drop Nat.Basic import from List.Basic (#30555) A slight import win for a minimal change. ESTIMATED CHANGES Modified Mathlib/Data/List/Basic.lean +/- theorem List.getElem?_length Modified Mathlib/Data/List/Infix.lean Modified Mathlib/Data/List/InsertIdx.lean Modified Mathlib/Data/List/Lex.lean Modified Mathlib/Data/List/Nodup.lean Modified Mathlib/Data/List/Zip.lean Modified Mathlib/Data/Multiset/Defs.lean 2025-10-15 06:00:01 60c559f feat(GeneralLinearGroup/FinTwo): the addChar sending x to [1,x;0,1] (#30475) ESTIMATED CHANGES Modified Mathlib/Algebra/Group/AddChar.lean Modified Mathlib/LinearAlgebra/Matrix/GeneralLinearGroup/FinTwo.lean + theorem Matrix.GeneralLinearGroup.injective_upperRightHom + theorem Matrix.GeneralLinearGroup.isParabolic_iff_of_upperTriangular + theorem Matrix.GeneralLinearGroup.isParabolic_iff_of_upperTriangular_of_det + def Matrix.GeneralLinearGroup.upperRightHom + theorem Matrix.isParabolic_iff_of_upperTriangular Modified Mathlib/NumberTheory/ModularForms/Cusps.lean + theorem Subgroup.HasDetPlusMinusOne.isParabolic_iff_of_upperTriangular Modified Mathlib/Topology/Instances/Matrix.lean + theorem Matrix.GeneralLinearGroup.continuous_upperRightHom 2025-10-15 01:27:18 a0187b2 chore: update Mathlib dependencies 2025-10-15 (#30565) This PR updates the Mathlib dependencies. [workflow run for this PR](https://github.com/leanprover-community/mathlib4/actions/runs/18513921009) ESTIMATED CHANGES Modified lake-manifest.json 2025-10-14 23:42:35 4c492e5 feat: the unitary group in a C⋆-algebra is locally path connected (#30311) When `A` is a unital C⋆-algebra and `u : unitary A` is a unitary element whose distance to `1` is less that `2`, the spectrum of `u` is contained in the slit plane, so the principal branch of the logarithm is continuous on the spectrum of `u` (or equivalently, `Complex.arg` is continuous on the spectrum). The continuous functional calculus can then be used to define a selfadjoint element `x` such that `u = exp (I • x)`. Moreover, there is a relatively nice relationship between the norm of `x` and the norm of `u - 1`, namely `‖u - 1‖ ^ 2 = 2 * (1 - cos ‖x‖)`. In fact, these maps `u ↦ x` and `x ↦ u` establish a partial homeomorphism between `ball (1 : unitary A) 2` and `ball (0 : selfAdjoint A) π`. The map `t ↦ exp (t • (I • x))` constitutes a path from `1` to `u`, showing that unitary elements sufficiently close (i.e., within a distance `2`) to `1 : unitary A` are path connected to `1`. This property can be translated around the unitary group to show that if `u v : unitary A` are unitary elements with `‖u - v‖ < 2`, then there is a path joining them. In fact, this path has the property that it lies within `closedBall u ‖u - v‖`, and consequently any ball of radius `δ < 2` in `unitary A` is path connected. Therefore, the unitary group is locally path connected. Finally, we provide the standard characterization of the path component of `1 : unitary A` as finite products of exponential unitaries. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Analysis/CStarAlgebra/Spectrum.lean + theorem spectrum.norm_eq_one_of_unitary Added Mathlib/Analysis/CStarAlgebra/Unitary/Connected.lean + theorem IsSelfAdjoint.cfc_arg + theorem argSelfAdjoint_expUnitary + theorem expUnitary_argSelfAdjoint + theorem selfAdjoint.joined_one_expUnitary + theorem selfAdjoint.norm_sq_expUnitary_sub_one + theorem unitary.continuousOn_argSelfAdjoint + theorem unitary.expUnitary_eq_mul_inv + theorem unitary.isPathConnected_ball + theorem unitary.joined + theorem unitary.mem_pathComponentOne_iff + theorem unitary.norm_argSelfAdjoint + theorem unitary.norm_argSelfAdjoint_le_pi + theorem unitary.norm_expUnitary_smul_argSelfAdjoint_sub_one_le + theorem unitary.norm_sub_eq + theorem unitary.norm_sub_one_lt_two_iff + theorem unitary.norm_sub_one_sq_eq + theorem unitary.spectrum_subset_slitPlane_iff_norm_lt_two + theorem unitary.two_mul_one_sub_cos_norm_argSelfAdjoint + theorem unitary.two_mul_one_sub_le_norm_sub_one_sq 2025-10-14 23:03:52 8a1a1e3 refactor(Analysis/LocallyConvex/AbsConvex): Redefine AbsConvex to use a single ring of scalars (#29342) Currently the definition of Absolutely Convex in Mathlib is a little unexpected: ``` def AbsConvex (s : Set E) : Prop := Balanced 𝕜 s ∧ Convex ℝ s ``` At the time this definition was formulated, Mathlib's definition of `Convex` required the scalars to be an `OrderedSemiring` whereas the definition of `Balanced` required the scalars to be a `SeminormedRing`. Mathlib didn't have a concept of a semi-normed ordered ring, so a set was defined as `AbsConvex` if it is balanced over a `SeminormedRing` `𝕜` and convex over `ℝ`. Recently the requirements for the definition of `Convex` have been relaxed (#24392, #20595) so it is now possible to use a single scalar ring in common with the literature. Previous discussion: - https://github.com/leanprover-community/mathlib4/pull/17029#discussion_r1782249323 - https://github.com/leanprover-community/mathlib4/pull/26345#discussion_r2287535746 ESTIMATED CHANGES Modified Mathlib/Analysis/Convex/Basic.lean +/- theorem Convex.is_linear_preimage +/- theorem Convex.linear_preimage Modified Mathlib/Analysis/LocallyConvex/AbsConvex.lean +/- def AbsConvex +/- theorem absConvexHull_eq_convexHull_balancedHull +/- theorem convex_absConvexHull +/- theorem nhds_hasBasis_absConvex_open +/- theorem zero_mem_absConvexHull Modified Mathlib/Analysis/LocallyConvex/AbsConvexOpen.lean +/- theorem AbsConvexOpenSets.coe_convex Modified Mathlib/Analysis/LocallyConvex/Basic.lean Modified Mathlib/Analysis/Normed/Module/Dual.lean 2025-10-14 22:19:40 37ee77c feat(Topology/Algebra): discrete iff finite index subgroup discrete (#29743) Show that if G is a topological group and H is a finite-index subgroup, then H is discrete iff G is. As application, show that arithmetic subgroups of GL(2, R), which are by definition those commensurable with SL(2, Z), are discrete. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Data/Set/Constructions.lean + theorem Set.biUnion_empty_finset Modified Mathlib/NumberTheory/ModularForms/ArithmeticSubgroups.lean Modified Mathlib/Topology/Algebra/ContinuousMonoidHom.lean + def ContinuousMulEquiv.Simps.symm_apply + theorem MulEquiv.symm_toContinuousMulEquiv + def MulEquiv.toContinuousMulEquiv + theorem MulEquiv.toHomeomorph_toContinuousMulEquiv + theorem MulEquiv.toMulEquiv_toContinuousMulEquiv Added Mathlib/Topology/Algebra/IsUniformGroup/DiscreteSubgroup.lean + theorem Subgroup.Commensurable.discreteTopology_iff + theorem Subgroup.discreteTopology_iff_of_finiteIndex + theorem Subgroup.discreteTopology_iff_of_isFiniteRelIndex + def Subgroup.subgroupOfContinuousMulEquivOfLe + theorem Subgroup.subgroupOfContinuousMulEquivOfLe_symm_apply + theorem Subgroup.subgroupOfContinuousMulEquivOfLe_toMulEquiv Modified Mathlib/Topology/Constructions.lean - theorem discreteTopology_subtype_iff Modified Mathlib/Topology/DiscreteSubset.lean + theorem compl_mem_codiscrete_iff + theorem discreteTopology_biUnion_finset + theorem discreteTopology_iUnion_fintype + theorem discreteTopology_subtype_iff' + theorem discreteTopology_subtype_iff + theorem discreteTopology_union Modified Mathlib/Topology/Homeomorph/Defs.lean + theorem Equiv.symm_toHomeomorph - theorem Equiv.toHomeomorph_symm 2025-10-14 22:19:38 1f0a5ce feat(RingTheory/Cotangent): cotangent of composition with localization away from an element (#28699) Let `R → S → T` be algebras such that `T` is the localization of `S` away from one element, where `S` is generated over `R` by `P : R[X] → S` with kernel `I` and `Q : S[Y] → T` is the canonical `S`-presentation of `T` with kernel `K`. Denote by `J` the kernel of the composition `R[X,Y] → T`. We deduce `J/J² ≃ₗ[T] T ⊗[S] (I/I²) × K/K²` from the Jacobi Zariski sequence. From Pi1. ESTIMATED CHANGES Modified Mathlib/RingTheory/Extension/Cotangent/LocalizationAway.lean + theorem Algebra.Generators.cotangentCompAwaySec_apply + def Algebra.Generators.cotangentCompLocalizationAwayEquiv + theorem Algebra.Generators.cotangentCompLocalizationAwayEquiv_symm_comp_inl + theorem Algebra.Generators.cotangentCompLocalizationAwayEquiv_symm_inl + theorem Algebra.Generators.cotangentCompLocalizationAwayEquiv_symm_inr + theorem Algebra.Generators.map_comp_cotangentCompAwaySec + theorem Algebra.Generators.snd_comp_cotangentCompLocalizationAwayEquiv + theorem Algebra.Generators.snd_cotangentCompLocalizationAwayEquiv Modified Mathlib/RingTheory/Extension/Generators.lean + theorem Algebra.Generators.Hom.algebraMap_toAlgHom' Modified Mathlib/RingTheory/Extension/Presentation/Basic.lean + theorem Algebra.Generators.C_mul_X_sub_one_mem_ker Modified Mathlib/RingTheory/Smooth/StandardSmoothCotangent.lean + def Algebra.Generators.basisCotangentAway + theorem Algebra.Generators.basisCotangentAway_apply + theorem Algebra.Generators.cMulXSubOneCotangent_eq + theorem Algebra.SubmersivePresentation.basisCotangent_localizationAway_apply 2025-10-14 21:17:40 9c4daf9 chore: remove linters from mathlibStandardSet which don't work downstream (#30541) See discussion at [#general > weak.linter.mathlibStandardSet and lint-style-action @ 💬](https://leanprover.zulipchat.com/#narrow/channel/113488-general/topic/weak.2Elinter.2EmathlibStandardSet.20and.20lint-style-action/near/544726745) ESTIMATED CHANGES Modified Mathlib/Init.lean Modified Mathlib/Tactic/Linter/TextBased.lean Modified lakefile.lean 2025-10-14 19:39:17 1af1826 chore(LinearAlgebra): golf `of_mem_specialOrthogonalGroup_fin_two_iff` using `grind` (#30516) ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/UnitaryGroup.lean 2025-10-14 19:24:45 bab341f feat(RingTheory/DividedPowers/Basic): add divided power structure on pZp (#26956) We construct a divided power structure on the ideal `(p) ⊆ ℤ_[p]`, given by the family of maps `fun n x ↦ x^n / n!`. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/NumberTheory/Padics/PadicIntegers.lean + theorem PadicInt.coe_sum Modified Mathlib/NumberTheory/Padics/PadicVal/Basic.lean + theorem padicValNat_factorial_le + theorem padicValNat_factorial_lt_of_ne_zero + theorem sub_one_mul_padicValNat_factorial_lt_of_ne_zero Added Mathlib/RingTheory/DividedPowers/Padic.lean + theorem PadicInt.coe_dpow_eq 2025-10-14 16:26:30 6e58d23 feat(Tactic/Order): frontend for `order` (#27066) * Support `order [h1, h2]` and `order only [h1, h2]` syntax. * Split conjunctions while extracting facts from the context. E.g. hypotheses in the form `A ∧ B` are converted into two facts `A` and `B`. * Similarly, extract facts from existential quantifiers in the hypotheses. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Tactic/Linarith/Frontend.lean - def Mathlib.Tactic.Linarith.elabLinarithArg Modified Mathlib/Tactic/Order.lean + def Mathlib.Tactic.Order.orderCore Modified Mathlib/Tactic/Order/CollectFacts.lean +/- def Mathlib.Tactic.Order.collectFacts - def Mathlib.Tactic.Order.collectFactsImp Added Mathlib/Util/ElabWithoutMVars.lean + def elabTermWithoutNewMVars Modified MathlibTest/order.lean 2025-10-14 15:44:19 8c31e48 feat(Algebra/Module/LinearMap/Defs): add lemmas (#30546) Co-authored by: @AntoineChambert-Loir ESTIMATED CHANGES Modified Mathlib/Algebra/Module/LinearMap/Defs.lean + theorem LinearMap.restrictScalars_id + theorem LinearMap.restrictScalars_self 2025-10-14 15:30:42 4e6ecfb chore(Algebra/Order/Module/PositiveLinearMap): generalize `OrderHomClass.ofLinear` (#29626) Generalize `OrderHomClass.ofLinear` from linear maps to additive group homomorphisms. ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Module/PositiveLinearMap.lean - theorem OrderHomClass.ofLinear + theorem OrderHomClass.of_addMonoidHom Modified Mathlib/Analysis/CStarAlgebra/CompletelyPositiveMap.lean 2025-10-14 14:50:25 946cb31 chore: notation for (conditional) independence (#30419) Add notations: - `X ⟂ᵢ[μ] Y` for independence of X and Y. Simplified to `X ⟂ᵢ Y` if the measure is `volume`. - `X ⟂ᵢ[Z, hZ; μ] Y` for independence of X and Y given Z. Simplified to `X ⟂ᵢ[Z, hZ] Y` if the measure is `volume`. I don't use a double uptack because neither my browser nor my vscode font have that character (U+2AEB). Instead I have chosen a \perp with an i for indepedence. ESTIMATED CHANGES Modified Mathlib/Probability/HasLaw.lean Modified Mathlib/Probability/IdentDistrib.lean Modified Mathlib/Probability/Independence/Basic.lean Modified Mathlib/Probability/Independence/CharacteristicFunction.lean Modified Mathlib/Probability/Independence/Conditional.lean Modified Mathlib/Probability/Independence/Integrable.lean Modified Mathlib/Probability/Independence/Integration.lean Modified Mathlib/Probability/Moments/Basic.lean +/- theorem ProbabilityTheory.IndepFun.cgf_add +/- theorem ProbabilityTheory.IndepFun.exp_mul +/- theorem ProbabilityTheory.IndepFun.integrable_exp_mul_add +/- theorem ProbabilityTheory.IndepFun.mgf_add' +/- theorem ProbabilityTheory.IndepFun.mgf_add Modified Mathlib/Probability/Moments/Covariance.lean +/- theorem ProbabilityTheory.IndepFun.covariance_eq_zero Modified Mathlib/Probability/Moments/SubGaussian.lean Modified Mathlib/Probability/Moments/Variance.lean Modified Mathlib/Probability/StrongLaw.lean 2025-10-14 14:50:23 2f41e4a feat(Algebra/Polynomial): Descartes' Rule of signs (#26331) This PR continues the work from #23681. Original PR: https://github.com/leanprover-community/mathlib4/pull/23681 ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Polynomial/CoeffList.lean Modified Mathlib/Algebra/Polynomial/Degree/Operations.lean + theorem Polynomial.coeff_X_sub_C_mul Modified Mathlib/Algebra/Polynomial/EraseLead.lean + theorem Polynomial.eraseLead_mul_eq_mul_eraseLead_of_nextCoeff_zero Added Mathlib/Algebra/Polynomial/RuleOfSigns.lean + theorem Polynomial.roots_countP_pos_le_signVariations + def Polynomial.signVariations + theorem Polynomial.signVariations_C_mul + theorem Polynomial.signVariations_X_sub_C_mul_eraseLead_le + theorem Polynomial.signVariations_eq_eraseLead_add_ite + theorem Polynomial.signVariations_eraseLead + theorem Polynomial.signVariations_eraseLead_le + theorem Polynomial.signVariations_eraseLead_mul_X_sub_C + theorem Polynomial.signVariations_le_eraseLead_succ + theorem Polynomial.signVariations_monomial + theorem Polynomial.signVariations_neg + theorem Polynomial.signVariations_zero + theorem Polynomial.succ_signVariations_X_sub_C_mul_monomial + theorem Polynomial.succ_signVariations_le_X_sub_C_mul Modified Mathlib/Data/Sign/Defs.lean + theorem SignType.trichotomy Modified docs/100.yaml 2025-10-14 13:52:57 60b581d feat: support coercions in the differential geometry elaborators (#30307) Generalise the `CMDiff`, `MDiff` and `mfderiv` elaborators (and its friends) to apply to any object which coerces to a function. We can such speak about the smoothness of a `PartialEquiv`, `OpenPartialHomeomorph` (or the future `ClosedPartialHomeomorph` and `PartialHomeomorph`), smooth section or bundled smooth map without the need for a coercion. As a by-product, add new functions `Lean.Meta.ensure{HasType,IsFunction,IsSort}` which apply the respective coercion if necessary. While at it, add more sections (and section headers) to the test file for the elaborators. ESTIMATED CHANGES Modified Mathlib/Geometry/Manifold/Notation.lean Modified Mathlib/Lean/Meta/Basic.lean + def Lean.Meta.ensureHasType + def Lean.Meta.ensureIsFunction + def Lean.Meta.ensureIsSort Modified MathlibTest/DifferentialGeometry/Notation.lean 2025-10-14 11:53:59 ac33158 feat: `gaussianReal_ext_iff` (#30414) Two real Gaussian distributions are equal iff they have the same mean and variance. ESTIMATED CHANGES Modified Mathlib/Probability/Distributions/Gaussian/Real.lean + theorem ProbabilityTheory.gaussianReal_ext_iff 2025-10-14 11:19:07 e1ca12e feat: field tactic (#29089) This PR creates a `field` tactic, i.e. an analogue of `ring` but for fields -- a finishing tactic for equality goals in fields. It is basically `field_simp; ring1`, with a few tweaks for better error reporting! We could have done this at any point in the last five years, but since `field_simp` is more performant as of #28658, now seems like a good time. I propose that `field` be preferred to terminal `field_simp`/`field_simp; ring` from now on. I'll follow up with a PR ([preview](https://github.com/leanprover-community/mathlib4/commit/44c0136fb8650f57416733d0b336c60b338f3d99)) making this change widely across the library. In the current PR I also rewrote the docstrings of `field_simp` and friends to nudge users in this direction. Closes #4837 ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Tactic.lean Added Mathlib/Tactic/Field.lean Modified Mathlib/Tactic/FieldSimp.lean Modified MathlibTest/FieldSimp.lean 2025-10-14 10:42:37 89e22b1 refactor: add LinearMapClass and LinearEquivClass instances to Lie(Module)Hom and Equiv (#30450) Adding these instances means we can use general linearity lemmas like `map_add` without needing a specialized version like `LieHom.map_add`. Because these specialized lemmata become superfluous, this PR deprecates them. ESTIMATED CHANGES Modified Mathlib/Algebra/Lie/Abelian.lean Modified Mathlib/Algebra/Lie/Basic.lean - theorem LieHom.map_add - theorem LieHom.map_neg - theorem LieHom.map_smul - theorem LieHom.map_sub - theorem LieHom.map_zero - theorem LieModuleHom.map_add - theorem LieModuleHom.map_neg - theorem LieModuleHom.map_smul - theorem LieModuleHom.map_sub - theorem LieModuleHom.map_zero Modified Mathlib/Algebra/Lie/CartanExists.lean Modified Mathlib/Algebra/Lie/Character.lean Modified Mathlib/Algebra/Lie/EngelSubalgebra.lean Modified Mathlib/Algebra/Lie/Ideal.lean Modified Mathlib/Algebra/Lie/NonUnitalNonAssocAlgebra.lean Modified Mathlib/Algebra/Lie/OfAssociative.lean Modified Mathlib/Algebra/Lie/TensorProduct.lean Modified Mathlib/Algebra/Lie/Weights/Basic.lean Modified Mathlib/Algebra/Lie/Weights/Killing.lean Modified Mathlib/Algebra/Lie/Weights/Linear.lean 2025-10-14 10:22:59 60a1d0a feat(Analysis/Normed/Unbundled/SpectralNorm): add API (#26668) ESTIMATED CHANGES Modified Mathlib/Algebra/Polynomial/FieldDivision.lean + theorem Polynomial.monic_mapAlg_iff Modified Mathlib/Analysis/Normed/Unbundled/SpectralNorm.lean +/- theorem spectralAlgNorm_mul +/- def spectralMulAlgNorm +/- theorem spectralMulAlgNorm_def +/- def spectralNorm.metricSpace +/- def spectralNorm.normedAddCommGroup +/- def spectralNorm.normedField +/- def spectralNorm.normedSpace +/- def spectralNorm.seminormedAddCommGroup + theorem spectralNorm.spectralMulAlgNorm_eq_of_mem_roots + theorem spectralNorm.spectralNorm_eq_norm_coeff_zero_rpow + theorem spectralNorm.spectralNorm_pow_natDegree_eq_prod_roots +/- def spectralNorm.uniformSpace + theorem spectralValue_le_one_iff 2025-10-14 09:29:54 f897ebc chore: replace some `tac; grind` where `grind` suffices (#30528) Found by a bot driving the tactic analysis framework: [#mathlib4 > Weekly linting log @ 💬](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Weekly.20linting.20log/near/544462480) ESTIMATED CHANGES Modified Mathlib/Analysis/SpecialFunctions/ContinuousFunctionalCalculus/ExpLog.lean Modified Mathlib/Data/Finset/Card.lean Modified Mathlib/Data/List/Chain.lean Modified Mathlib/GroupTheory/GroupAction/Jordan.lean 2025-10-14 07:54:45 c48ea03 chore: bump toolchain to v4.24.0 (#30530) ESTIMATED CHANGES Modified lake-manifest.json Modified lean-toolchain 2025-10-14 04:17:33 3aa3aca fix: remove second type from test in `order.lean` (#30510) When the `order` tactic fails, it prints all the types it was run on. The order in which these types are printed is arbitrary, and any changes in the transitive imports of `order.lean` can change this order and cause the test to fail. For example [#mathlib4 > MathlibTest.order error](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/MathlibTest.2Eorder.20error/with/544585480) This PR removes the second type from the test. ESTIMATED CHANGES Modified MathlibTest/order.lean 2025-10-14 04:17:31 91f98c4 feat: group instances on `Colex α` (#30483) This is just copy-paste + replace `Lex` with `Colex` throughout. ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Group/Synonym.lean + theorem ofColex_div + theorem ofColex_eq_one + theorem ofColex_inv + theorem ofColex_mul + theorem ofColex_one + theorem ofColex_pow +/- theorem ofLex_eq_one + theorem pow_ofColex + theorem pow_toColex + theorem toColex_div + theorem toColex_eq_one + theorem toColex_inv + theorem toColex_mul + theorem toColex_one + theorem toColex_pow +/- theorem toLex_eq_one 2025-10-14 03:59:16 2c51cf4 feat(LinearAlgebra/Matrix/Charpoly): `trace_eq_neg_charpoly_coeff` using `nextCoeff` (#30231) ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/Matrix/Charpoly/Coeff.lean + theorem Matrix.trace_eq_neg_charpoly_nextCoeff Modified Mathlib/LinearAlgebra/Matrix/Charpoly/Eigs.lean 2025-10-14 03:26:47 7893dd0 feat(Data/List/Sigma): grind annotations, some missing API (#30313) - `grind` annotations for `List.keys`, `List.NodupKeys`, and `List.lookup`, with some shortening of proofs - upstream `keys_append`, `sublist_dlookup`, and `nodupKeys_middle` from https://github.com/leanprover/cslib/pull/68 ESTIMATED CHANGES Modified Mathlib/Data/List/Sigma.lean + theorem List.NodupKeys.map₁ + theorem List.NodupKeys.map₂ +/- theorem List.dlookup_isSome + theorem List.keys_append +/- theorem List.map_dlookup_eq_find + theorem List.map₂_keys +/- theorem List.ne_key + theorem List.nodupKeys_middle +/- theorem List.notMem_keys +/- theorem List.of_mem_dlookup + theorem List.sublist_dlookup 2025-10-14 00:50:11 1d03283 chore(MonoidAlgebra/Defs): reorder, rename variables (#29207) Sort the declarations according to typeclass assumptions, *and* according to the order in which we need them to be for #25273. Rename the semiring variable to `R` and the monoid one to `M`. Simultaneously golf. The rename is motivated by the idea that variables should reflect the generality, if such generality is used, and indeed such generality is definitely used since polynomials over a ring are the same thing as `AddMonoidAlgebra R ℕ`, and we neither have `R` a field nor `ℕ` a group. Furthermore, the file isn't entirely consistent with its use of variables to begin with, and that was causing me issues when resectioning. ESTIMATED CHANGES Modified Mathlib/Algebra/Category/Ring/Adjunctions.lean Modified Mathlib/Algebra/MonoidAlgebra/Basic.lean Modified Mathlib/Algebra/MonoidAlgebra/Defs.lean +/- theorem AddMonoidAlgebra.induction_on +/- def AddMonoidAlgebra.of' +/- theorem AddMonoidAlgebra.of'_apply +/- theorem AddMonoidAlgebra.of'_commute +/- theorem AddMonoidAlgebra.of'_eq_of +/- def AddMonoidAlgebra.of +/- def AddMonoidAlgebra.ofMagma +/- theorem AddMonoidAlgebra.of_apply +/- theorem AddMonoidAlgebra.of_injective +/- theorem AddMonoidAlgebra.ringHom_ext' +/- def AddMonoidAlgebra.singleHom - theorem AddMonoidAlgebra.smul_single' +/- theorem MonoidAlgebra.addHom_ext' +/- theorem MonoidAlgebra.ext +/- theorem MonoidAlgebra.induction_linear +/- theorem MonoidAlgebra.induction_on +/- theorem MonoidAlgebra.intCast_def +/- def MonoidAlgebra.mul' +/- theorem MonoidAlgebra.mul_apply +/- theorem MonoidAlgebra.mul_apply_antidiagonal +/- theorem MonoidAlgebra.mul_apply_left +/- theorem MonoidAlgebra.mul_apply_right +/- theorem MonoidAlgebra.mul_def +/- theorem MonoidAlgebra.mul_single_apply +/- theorem MonoidAlgebra.mul_single_apply_aux +/- theorem MonoidAlgebra.mul_single_apply_of_not_exists_mul +/- theorem MonoidAlgebra.mul_single_one_apply +/- theorem MonoidAlgebra.natCast_def +/- def MonoidAlgebra.of +/- def MonoidAlgebra.ofMagma +/- theorem MonoidAlgebra.of_commute +/- theorem MonoidAlgebra.of_injective +/- theorem MonoidAlgebra.one_def +/- theorem MonoidAlgebra.prod_single +/- theorem MonoidAlgebra.ringHom_ext' +/- theorem MonoidAlgebra.ringHom_ext + def MonoidAlgebra.singleAddHom - theorem MonoidAlgebra.singleAddHom_apply +/- def MonoidAlgebra.singleHom +/- def MonoidAlgebra.singleOneRingHom +/- theorem MonoidAlgebra.single_add +/- theorem MonoidAlgebra.single_apply +/- theorem MonoidAlgebra.single_commute +/- theorem MonoidAlgebra.single_commute_single +/- theorem MonoidAlgebra.single_eq_zero +/- theorem MonoidAlgebra.single_mul_apply +/- theorem MonoidAlgebra.single_mul_apply_aux +/- theorem MonoidAlgebra.single_mul_apply_of_not_exists_mul +/- theorem MonoidAlgebra.single_mul_single +/- theorem MonoidAlgebra.single_ne_zero +/- theorem MonoidAlgebra.single_neg +/- theorem MonoidAlgebra.single_one_comm +/- theorem MonoidAlgebra.single_one_mul_apply +/- theorem MonoidAlgebra.single_pow +/- theorem MonoidAlgebra.single_zero +/- theorem MonoidAlgebra.smul_apply + theorem MonoidAlgebra.smul_single' +/- theorem MonoidAlgebra.smul_single +/- theorem MonoidAlgebra.sum_single +/- theorem MonoidAlgebra.sum_single_index +/- def MonoidAlgebra Modified Mathlib/Algebra/MonoidAlgebra/Division.lean Modified Mathlib/Algebra/MonoidAlgebra/Grading.lean Modified Mathlib/Algebra/MonoidAlgebra/MapDomain.lean Modified Mathlib/Algebra/MonoidAlgebra/Module.lean - theorem MonoidAlgebra.smul_single' Modified Mathlib/Algebra/MvPolynomial/Basic.lean Modified Mathlib/Algebra/Polynomial/Laurent.lean 2025-10-13 20:44:11 57f5895 chore: add module deprecations for removed files (#30519) The files were moved in: - 50229ae534b8cbd5ed798d38dbb2b3f27d20d20b - 1a3e03e5d2f2be462a184a221fc72456f992987a - fefa0fbec28fb2dfc1b78741499d9d177ee75c94 - 27e8b12514da477e4b681ba3134b0c42ac19bc5d (two files) - c3104a0a6e21b2926b505f47ac9c96eacf24aa3a - a778305ec3a679802f7dcfa64e2b903d4679ee21 - 1b18558289ee0c58c43f196a3d628f9be728f5d7 - eaa1502e407c6ce4bb367d12df0f15ff3f14e25a ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/ArithmeticGeometric.lean Added Mathlib/Analysis/InnerProductSpace/Harmonic/Analytic.lean Added Mathlib/Analysis/NormedSpace/ConformalLinearMap.lean Added Mathlib/CategoryTheory/Bicategory/Functor/Strict.lean Added Mathlib/CategoryTheory/Bicategory/Strict.lean Added Mathlib/Data/Nat/PowModTotient.lean Added Mathlib/Data/Real/Irrational.lean Added Mathlib/LinearAlgebra/AffineSpace/ContinuousAffineEquiv.lean Added Mathlib/Probability/Moments/CovarianceBilin.lean 2025-10-13 14:40:57 7a9e177 refactor: make ContinuousLinearMap.id protected (#30362) As it is for many other kinds of homomorphisms. ESTIMATED CHANGES Modified Mathlib/Analysis/Calculus/Conformal/NormedSpace.lean Modified Mathlib/Analysis/Calculus/FDeriv/Add.lean +/- theorem hasFDerivAt_sub_const +/- theorem hasStrictFDerivAt_sub_const Modified Mathlib/Analysis/Calculus/FDeriv/Basic.lean +/- theorem fderivWithin_id +/- theorem fderiv_id +/- theorem hasFDerivAtFilter_id +/- theorem hasFDerivAt_id +/- theorem hasFDerivWithinAt_id +/- theorem hasStrictFDerivAt_id Modified Mathlib/Analysis/Normed/Operator/Basic.lean +/- theorem ContinuousLinearMap.norm_id_le +/- theorem ContinuousLinearMap.norm_id_of_nontrivial_seminorm Modified Mathlib/Analysis/Normed/Operator/Bilinear.lean Modified Mathlib/Analysis/Normed/Operator/Conformal.lean +/- theorem isConformalMap_const_smul +/- theorem isConformalMap_id Modified Mathlib/Analysis/Normed/Operator/NormedSpace.lean +/- theorem ContinuousLinearMap.nnnorm_id +/- theorem ContinuousLinearMap.norm_id Modified Mathlib/Topology/Algebra/Module/Equiv.lean +/- theorem ContinuousLinearMap.inverse_eq +/- theorem ContinuousLinearMap.inverse_id Modified Mathlib/Topology/Algebra/Module/LinearMap.lean +/- theorem ContinuousLinearMap.coe_eq_id +/- theorem ContinuousLinearMap.coe_id' +/- theorem ContinuousLinearMap.coe_id +/- theorem ContinuousLinearMap.comp_id - def ContinuousLinearMap.id +/- theorem ContinuousLinearMap.id_apply +/- theorem ContinuousLinearMap.id_comp +/- theorem ContinuousLinearMap.one_def Modified Mathlib/Topology/Algebra/Module/LinearMapPiProd.lean +/- theorem ContinuousLinearMap.fst_prod_snd 2025-10-13 13:57:48 3c90d00 feat(CategoryTheory/Sites): small `0`-hypercovers (#30321) A `w`-`0`-hypercover `E` is `w'`-small if there exists an indexing type `ι` in `Type w'` and a restriction map `ι → E.I₀` such that the restriction of `E` to `ι` is still covering. This is weaker than `E.I₀` being `w'`-small. For example, every Zariski cover of `X : Scheme.{u}` is `u`-small, because `X` itself suffices as indexing type. ESTIMATED CHANGES Modified Mathlib/AlgebraicGeometry/Cover/MorphismProperty.lean Modified Mathlib/CategoryTheory/MorphismProperty/Local.lean + theorem CategoryTheory.MorphismProperty.of_zeroHypercover_source + theorem CategoryTheory.MorphismProperty.of_zeroHypercover_target Modified Mathlib/CategoryTheory/Sites/Hypercover/Zero.lean + theorem CategoryTheory.PreZeroHypercover.presieve₀_restrictIndex_equiv + def CategoryTheory.PreZeroHypercover.restrictIndex + def CategoryTheory.Precoverage.ZeroHypercover.Small.Index + theorem CategoryTheory.Precoverage.ZeroHypercover.Small.mem₀ + def CategoryTheory.Precoverage.ZeroHypercover.restrictIndexOfSmall Modified Mathlib/CategoryTheory/Sites/MorphismProperty.lean 2025-10-13 13:12:20 5b27418 feat: commutativity of `mul` and `finprod` (#30326) For (semi-)rings without zero divisors, show that multiplication commutes with `finprod`. Following a [brief discussion of Zulip](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Naming.20inconstency.2C.20finsum.20and.20multiplication/with/543461589), unify naming between theorems about multiplication and theorems about scalar multiplication. ESTIMATED CHANGES Modified Mathlib/Algebra/BigOperators/Finprod.lean + theorem finsum_mem_mul' +/- theorem finsum_mem_mul + theorem finsum_mul' +/- theorem finsum_mul + theorem mul_finsum' +/- theorem mul_finsum + theorem mul_finsum_mem' +/- theorem mul_finsum_mem 2025-10-13 12:21:27 45dfe1b doc: typo fixes (#30501) Fixes found by Junie Pro ESTIMATED CHANGES Modified Mathlib/Computability/TuringDegree.lean 2025-10-13 10:58:47 c557aff chore(Algebra): generalize subalgebra operations to semirings (#30250) Relax Subalgebra operations to work over `CommSemiring` structures instead of demanding commutative rings. ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/Subalgebra/Operations.lean 2025-10-13 10:44:50 eaa1502 refactor: rename covarianceBilin to covarianceBilinDual (#30417) This allows to define `covarianceBilin` on a Hilbert space in #30324, following the naming scheme `charFunDual/charFun`. ESTIMATED CHANGES Modified Mathlib.lean Renamed Mathlib/Probability/Moments/CovarianceBilin.lean to Mathlib/Probability/Moments/CovarianceBilinDual.lean - def ProbabilityTheory.covarianceBilin + def ProbabilityTheory.covarianceBilinDual + theorem ProbabilityTheory.covarianceBilinDual_apply' + theorem ProbabilityTheory.covarianceBilinDual_apply + theorem ProbabilityTheory.covarianceBilinDual_comm + theorem ProbabilityTheory.covarianceBilinDual_eq_covariance + theorem ProbabilityTheory.covarianceBilinDual_of_not_memLp + theorem ProbabilityTheory.covarianceBilinDual_self_eq_variance + theorem ProbabilityTheory.covarianceBilinDual_zero - theorem ProbabilityTheory.covarianceBilin_apply' - theorem ProbabilityTheory.covarianceBilin_apply - theorem ProbabilityTheory.covarianceBilin_comm - theorem ProbabilityTheory.covarianceBilin_eq_covariance - theorem ProbabilityTheory.covarianceBilin_of_not_memLp - theorem ProbabilityTheory.covarianceBilin_self_eq_variance - theorem ProbabilityTheory.covarianceBilin_zero + theorem ProbabilityTheory.norm_uncenteredCovarianceBilinDual_le - theorem ProbabilityTheory.norm_uncenteredCovarianceBilin_le - def ProbabilityTheory.uncenteredCovarianceBilin + def ProbabilityTheory.uncenteredCovarianceBilinDual + theorem ProbabilityTheory.uncenteredCovarianceBilinDual_apply + theorem ProbabilityTheory.uncenteredCovarianceBilinDual_of_not_memLp + theorem ProbabilityTheory.uncenteredCovarianceBilinDual_zero - theorem ProbabilityTheory.uncenteredCovarianceBilin_apply - theorem ProbabilityTheory.uncenteredCovarianceBilin_of_not_memLp - theorem ProbabilityTheory.uncenteredCovarianceBilin_zero 2025-10-13 09:56:15 9b3e142 chore: delete unused test file (#30497) This file as added in #29513, but never hooked up to the unit tests. It is thus unused; delete it. ESTIMATED CHANGES Deleted MathlibTest/LintStyle2.lean 2025-10-13 08:40:46 c7448d4 doc: fix repeated words in documentation (#30479) ESTIMATED CHANGES Modified Mathlib/Algebra/Category/ModuleCat/ChangeOfRings.lean Modified Mathlib/AlgebraicGeometry/Restrict.lean Modified Mathlib/AlgebraicTopology/SimplicialSet/Coskeletal.lean Modified Mathlib/Analysis/Complex/Hadamard.lean Modified Mathlib/Analysis/Normed/Unbundled/SpectralNorm.lean Modified Mathlib/Analysis/NormedSpace/Alternating/Basic.lean Modified Mathlib/Analysis/ODE/PicardLindelof.lean Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Cotangent.lean Modified Mathlib/CategoryTheory/Abelian/GrothendieckCategory/ColimCoyoneda.lean Modified Mathlib/CategoryTheory/Category/ReflQuiv.lean Modified Mathlib/CategoryTheory/Comma/Over/OverClass.lean Modified Mathlib/CategoryTheory/Limits/Final.lean Modified Mathlib/CategoryTheory/Monoidal/Action/Basic.lean Modified Mathlib/CategoryTheory/Monoidal/Action/LinearFunctor.lean Modified Mathlib/CategoryTheory/MorphismProperty/Factorization.lean Modified Mathlib/CategoryTheory/SmallObject/IsCardinalForSmallObjectArgument.lean Modified Mathlib/Combinatorics/Matroid/Constructions.lean Modified Mathlib/Combinatorics/Matroid/Minor/Contract.lean Modified Mathlib/Combinatorics/Matroid/Rank/ENat.lean Modified Mathlib/Combinatorics/SimpleGraph/Extremal/Basic.lean Modified Mathlib/Combinatorics/SimpleGraph/Matching.lean Modified Mathlib/Combinatorics/SimpleGraph/Tutte.lean Modified Mathlib/Condensed/Discrete/Basic.lean Modified Mathlib/Control/Bifunctor.lean Modified Mathlib/Data/Int/ConditionallyCompleteOrder.lean Modified Mathlib/FieldTheory/Galois/GaloisClosure.lean Modified Mathlib/FieldTheory/IsAlgClosed/Classification.lean Modified Mathlib/Geometry/Manifold/Bordism.lean Modified Mathlib/GroupTheory/GroupAction/MultiplePrimitivity.lean Modified Mathlib/GroupTheory/GroupAction/Support.lean Modified Mathlib/GroupTheory/Submonoid/Center.lean Modified Mathlib/LinearAlgebra/RootSystem/IsValuedIn.lean Modified Mathlib/LinearAlgebra/Vandermonde.lean Modified Mathlib/MeasureTheory/Function/AbsolutelyContinuous.lean Modified Mathlib/NumberTheory/KummerDedekind.lean Modified Mathlib/NumberTheory/Padics/Complex.lean Modified Mathlib/NumberTheory/Padics/MahlerBasis.lean Modified Mathlib/Probability/Kernel/Disintegration/Density.lean Modified Mathlib/Probability/Moments/SubGaussian.lean Modified Mathlib/Probability/Process/Filtration.lean Modified Mathlib/RingTheory/DividedPowers/SubDPIdeal.lean Modified Mathlib/RingTheory/IntegralClosure/IntegralRestrict.lean Modified Mathlib/RingTheory/MvPowerSeries/Order.lean Modified Mathlib/RingTheory/Valuation/Discrete/Basic.lean Modified Mathlib/Tactic/FunProp.lean Modified Mathlib/Tactic/FunProp/Core.lean Modified Mathlib/Tactic/GCongr/Core.lean Modified Mathlib/Tactic/Linter/DirectoryDependency.lean Modified Mathlib/Tactic/Linter/FlexibleLinter.lean Modified Mathlib/Tactic/MoveAdd.lean Modified Mathlib/Topology/Category/Compactum.lean Modified Mathlib/Topology/LocallyFinsupp.lean Modified Mathlib/Topology/Sheaves/PresheafOfFunctions.lean Modified Mathlib/Topology/VectorBundle/Riemannian.lean 2025-10-13 08:18:06 ccfa0e6 doc: refer to the ASCII asterisk as more common (#30495) Following up on #29668. @kbuzzard made a last-minute suggestion to keep referring to the ASCII asterisk as more common than the Unicode operator. I reintroduce that language in this PR. I also make some further small changes that I think are beneficial to the flow of the text. ESTIMATED CHANGES Modified Mathlib/Computability/Language.lean 2025-10-13 07:43:09 4e9ce78 chore: `Polynomial.eval_X_pow` (#30446) This is of course just `eval_pow` + `eval_X`, but I believe it appears commonly enough to warrant its own shortcut. ESTIMATED CHANGES Modified Mathlib/Algebra/Polynomial/Eval/Defs.lean + theorem Polynomial.eval_X_pow Modified Mathlib/Algebra/Polynomial/GroupRingAction.lean Modified Mathlib/Algebra/Polynomial/UnitTrinomial.lean Modified Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Unital.lean Modified Mathlib/Analysis/Normed/Algebra/GelfandFormula.lean Modified Mathlib/FieldTheory/IsAlgClosed/Spectrum.lean Modified Mathlib/FieldTheory/Minpoly/MinpolyDiv.lean Modified Mathlib/FieldTheory/SeparableDegree.lean Modified Mathlib/RingTheory/LittleWedderburn.lean Modified Mathlib/RingTheory/Polynomial/Cyclotomic/Roots.lean Modified Mathlib/RingTheory/RootsOfUnity/Minpoly.lean 2025-10-13 07:43:08 ef523e2 chore(CategoryTheory): split Limits.Presentation (#29903) The part of the code involving "set theory" (via finitely presentable objects) is moved to `CategoryTheory.Presentable.ColimitPresentation`. As `ColimitPresentation` is going to be used more widely, this will reduce dependencies to set theory for some files. - [x] depends on: #29851 - [x] depends on: #29849 - [x] depends on: #29843 ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/CategoryTheory/Limits/Presentation.lean - def CategoryTheory.Limits.ColimitPresentation.Total.Hom.comp - structure CategoryTheory.Limits.ColimitPresentation.Total.Hom - theorem CategoryTheory.Limits.ColimitPresentation.Total.exists_hom_of_hom - def CategoryTheory.Limits.ColimitPresentation.Total - def CategoryTheory.Limits.ColimitPresentation.bind Modified Mathlib/CategoryTheory/ObjectProperty/Ind.lean Added Mathlib/CategoryTheory/Presentable/ColimitPresentation.lean + def CategoryTheory.Limits.ColimitPresentation.Total.Hom.comp + structure CategoryTheory.Limits.ColimitPresentation.Total.Hom + theorem CategoryTheory.Limits.ColimitPresentation.Total.exists_hom_of_hom + def CategoryTheory.Limits.ColimitPresentation.Total + def CategoryTheory.Limits.ColimitPresentation.bind 2025-10-13 07:28:39 537040d doc: cleanup of kleene star docs (#29668) This PR: - Corrects "Kleene's star" to "Kleene star" - Clarifies a comment about notation. ESTIMATED CHANGES Modified Mathlib/Computability/Language.lean 2025-10-13 06:34:23 91ddcb0 fix(lint-style): parse linter options and load environment extensions correctly (#29513) Parse options and load linter set extension correctly. This fixes two issues: - We never called the `toOptions` function that parses Lakefile options into a `Lean.Options` structure: the function we use instead is only meant for command-line options and doesn't handle the `weak.` prefix correctly. - The way we load linter sets was incorrect: `withImportModules` stopped updating environment extensions since [lean4#6325](https://github.com/leanprover/lean4/pull/6325), and that is exactly what we use to store linter sets. At the time of writing, `importModules` might be a suitable replacement (but this is not very safe, and not documented to be stable). Instead, write a small elaborator returning the environment at the point of elaboration, and use that instead. ESTIMATED CHANGES Modified Mathlib/Tactic/Polyrith.lean Added MathlibTest/LintStyle2.lean Modified scripts/README.md Modified scripts/lint-style.lean +/- def toLeanOptions 2025-10-13 01:40:41 a778305 chore: move Data/Real/Irrational to RingTheory (#29002) It certainly has nothing to do with data (structures). ESTIMATED CHANGES Modified Counterexamples/IrrationalPowerOfIrrational.lean Modified Mathlib.lean Modified Mathlib/Analysis/Real/Pi/Irrational.lean Modified Mathlib/Data/Real/GoldenRatio.lean Modified Mathlib/NumberTheory/DiophantineApproximation/Basic.lean Modified Mathlib/NumberTheory/Rayleigh.lean Modified Mathlib/NumberTheory/Transcendental/Liouville/Basic.lean Renamed Mathlib/Data/Real/Irrational.lean to Mathlib/RingTheory/Real/Irrational.lean Modified Mathlib/Tactic/NormNum/Irrational.lean Modified Mathlib/Topology/Instances/AddCircle/DenseSubgroup.lean Modified Mathlib/Topology/Instances/Irrational.lean 2025-10-13 00:20:35 b2bc3a5 feat(Geometry/Euclidean/Sphere/Tangent) add isTangentAt with right-angle (#30235) This PR mainly adds two theorems: - `IsTangentAt.dist_eq_of_mem_of_mem` : Two tangent lines through same point yield equal distances - `IsTangentAt_iff_angle_eq_pi_div_two`: Characterization of tangency via angle. ESTIMATED CHANGES Modified Mathlib/Geometry/Euclidean/Angle/Sphere.lean + theorem EuclideanGeometry.Sphere.IsTangentAt.angle_eq_pi_div_two + theorem EuclideanGeometry.Sphere.IsTangentAt_iff_angle_eq_pi_div_two + theorem EuclideanGeometry.Sphere.IsTangentAt_of_angle_eq_pi_div_two Modified Mathlib/Geometry/Euclidean/Sphere/Tangent.lean + theorem EuclideanGeometry.Sphere.IsTangentAt.dist_eq_of_mem_of_mem 2025-10-12 23:36:14 50803f9 feat(SetTheory/Ordinal/Exponential): generalize theorems from `y = succ x` to `x < y` (#29042) ESTIMATED CHANGES Modified Mathlib/SetTheory/Ordinal/Exponential.lean + theorem Ordinal.opow_mul_add_lt_opow + theorem Ordinal.opow_mul_add_lt_opow_mul 2025-10-12 23:06:50 837b150 test(Data/DFinsupp/Lex): make `irreducible` decidability instances reducible (#30480) ESTIMATED CHANGES Modified Mathlib/Data/DFinsupp/Lex.lean 2025-10-12 20:35:56 98ff46e feat(CategoryTheory): Colimits in `Subobject X` (#29863) Adds colimits to `Subobject X`. Together with https://github.com/leanprover-community/mathlib4/pull/29253, this will show existence of lubs in the poset of subobjects. This is a prerequisite of the [MTT project](https://github.com/kyoDralliam/model-theory-topos), which aims to use the internal language of toposes to reason about e.g. sheaves. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Subobject/Basic.lean Modified Mathlib/CategoryTheory/Subobject/MonoOver.lean + def CategoryTheory.MonoOver.coconeOfHasStrongEpiMonoFactorisation + theorem CategoryTheory.MonoOver.commSqOfHasStrongEpiMonoFactorisation + def CategoryTheory.MonoOver.isColimitCoconeOfHasStrongEpiMonoFactorisation + def CategoryTheory.MonoOver.liftStructOfHasStrongEpiMonoFactorisation + def CategoryTheory.MonoOver.strongEpiMonoFactorisationSigmaDesc 2025-10-12 18:01:19 2ffecf4 chore: rename `Grp` to `GrpCat` (#30191) This frees up the name for `Grp_` to be renamed to `Grp`. We leave no deprecation since the name will be reused instantly. [Zulip](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Removing.20underscores.20from.20docs.23Mon_.2C.20docs.23Grp_.20.2E.2E.2E) ESTIMATED CHANGES Modified Mathlib/Algebra/Category/Grp/AB.lean Modified Mathlib/Algebra/Category/Grp/Abelian.lean - def AddCommGrp.normalEpi - def AddCommGrp.normalMono + def AddCommGrpCat.normalEpi + def AddCommGrpCat.normalMono Modified Mathlib/Algebra/Category/Grp/Adjunctions.lean - def AddCommGrp.adj - def AddCommGrp.free - theorem AddCommGrp.free_map_coe - theorem AddCommGrp.free_obj_coe + def AddCommGrpCat.adj + def AddCommGrpCat.free + theorem AddCommGrpCat.free_map_coe + theorem AddCommGrpCat.free_obj_coe - def CommGrp.forget₂CommMonAdj + def CommGrpCat.forget₂CommMonAdj +/- def CommMonCat.units - def Grp.abelianize - def Grp.abelianizeAdj - def Grp.adj - def Grp.forget₂MonAdj - def Grp.free + def GrpCat.abelianize + def GrpCat.abelianizeAdj + def GrpCat.adj + def GrpCat.forget₂MonAdj + def GrpCat.free +/- def MonCat.units Modified Mathlib/Algebra/Category/Grp/Basic.lean - structure AddCommGrp.Hom - def AddCommGrp.asHom - theorem AddCommGrp.asHom_injective - theorem AddCommGrp.injective_of_mono - theorem AddCommGrp.int_hom_ext - structure AddCommGrp + structure AddCommGrpCat.Hom + def AddCommGrpCat.asHom + theorem AddCommGrpCat.asHom_injective + theorem AddCommGrpCat.injective_of_mono + theorem AddCommGrpCat.int_hom_ext + structure AddCommGrpCat - structure AddGrp.Hom - structure AddGrp + structure AddGrpCat.Hom + structure AddGrpCat +/- def CategoryTheory.Aut.isoPerm +/- def CategoryTheory.Iso.commGroupIsoToMulEquiv +/- def CategoryTheory.Iso.groupIsoToMulEquiv - def CommGrp.Hom.Simps.hom - structure CommGrp.Hom - theorem CommGrp.coe_comp - theorem CommGrp.coe_id - theorem CommGrp.coe_of - theorem CommGrp.comp_apply - theorem CommGrp.ext - theorem CommGrp.forget_map - theorem CommGrp.forget₂_commMonCat_map_ofHom - theorem CommGrp.forget₂_grp_map_ofHom - def CommGrp.fullyFaithfulForget₂ToGrp - theorem CommGrp.hom_comp - theorem CommGrp.hom_ext - theorem CommGrp.hom_id - theorem CommGrp.hom_inv_apply - theorem CommGrp.hom_ofHom - theorem CommGrp.id_apply - theorem CommGrp.inv_hom_apply - theorem CommGrp.ofHom_apply - theorem CommGrp.ofHom_comp - theorem CommGrp.ofHom_hom - theorem CommGrp.ofHom_id - theorem CommGrp.ofHom_injective - theorem CommGrp.one_apply - def CommGrp.uliftFunctor - structure CommGrp + def CommGrpCat.Hom.Simps.hom + structure CommGrpCat.Hom + theorem CommGrpCat.coe_comp + theorem CommGrpCat.coe_id + theorem CommGrpCat.coe_of + theorem CommGrpCat.comp_apply + theorem CommGrpCat.ext + theorem CommGrpCat.forget_map + theorem CommGrpCat.forget₂_commMonCat_map_ofHom + theorem CommGrpCat.forget₂_grp_map_ofHom + def CommGrpCat.fullyFaithfulForget₂ToGrp + theorem CommGrpCat.hom_comp + theorem CommGrpCat.hom_ext + theorem CommGrpCat.hom_id + theorem CommGrpCat.hom_inv_apply + theorem CommGrpCat.hom_ofHom + theorem CommGrpCat.id_apply + theorem CommGrpCat.inv_hom_apply + theorem CommGrpCat.ofHom_apply + theorem CommGrpCat.ofHom_comp + theorem CommGrpCat.ofHom_hom + theorem CommGrpCat.ofHom_id + theorem CommGrpCat.ofHom_injective + theorem CommGrpCat.one_apply + def CommGrpCat.uliftFunctor + structure CommGrpCat - def Grp.Hom.Simps.hom - structure Grp.Hom - theorem Grp.coe_comp - theorem Grp.coe_id - theorem Grp.coe_of - theorem Grp.comp_apply - theorem Grp.ext - theorem Grp.forget_map - theorem Grp.forget₂_map_ofHom - def Grp.fullyFaithfulForget₂ToMonCat - theorem Grp.hom_comp - theorem Grp.hom_ext - theorem Grp.hom_id - theorem Grp.hom_inv_apply - theorem Grp.hom_ofHom - theorem Grp.id_apply - theorem Grp.inv_hom_apply - theorem Grp.ofHom_apply - theorem Grp.ofHom_comp - theorem Grp.ofHom_hom - theorem Grp.ofHom_id - theorem Grp.ofHom_injective - theorem Grp.one_apply - def Grp.uliftFunctor - structure Grp + def GrpCat.Hom.Simps.hom + structure GrpCat.Hom + theorem GrpCat.coe_comp + theorem GrpCat.coe_id + theorem GrpCat.coe_of + theorem GrpCat.comp_apply + theorem GrpCat.ext + theorem GrpCat.forget_map + theorem GrpCat.forget₂_map_ofHom + def GrpCat.fullyFaithfulForget₂ToMonCat + theorem GrpCat.hom_comp + theorem GrpCat.hom_ext + theorem GrpCat.hom_id + theorem GrpCat.hom_inv_apply + theorem GrpCat.hom_ofHom + theorem GrpCat.id_apply + theorem GrpCat.inv_hom_apply + theorem GrpCat.ofHom_apply + theorem GrpCat.ofHom_comp + theorem GrpCat.ofHom_hom + theorem GrpCat.ofHom_id + theorem GrpCat.ofHom_injective + theorem GrpCat.one_apply + def GrpCat.uliftFunctor + structure GrpCat +/- theorem MonoidHom.comp_id_commGrp +/- theorem MonoidHom.comp_id_grp +/- theorem MonoidHom.id_commGrp_comp +/- theorem MonoidHom.id_grp_comp +/- def MulEquiv.toCommGrpIso +/- def MulEquiv.toGrpIso +/- def mulEquivIsoCommGroupIso +/- def mulEquivIsoGroupIso Modified Mathlib/Algebra/Category/Grp/Biproducts.lean - def AddCommGrp.HasLimit.lift - def AddCommGrp.HasLimit.productLimitCone - def AddCommGrp.binaryProductLimitCone - theorem AddCommGrp.binaryProductLimitCone_cone_π_app_left - theorem AddCommGrp.binaryProductLimitCone_cone_π_app_right - theorem AddCommGrp.biprodIsoProd_inv_comp_fst - theorem AddCommGrp.biprodIsoProd_inv_comp_snd - theorem AddCommGrp.biproductIsoPi_inv_comp_π + def AddCommGrpCat.HasLimit.lift + def AddCommGrpCat.HasLimit.productLimitCone + def AddCommGrpCat.binaryProductLimitCone + theorem AddCommGrpCat.binaryProductLimitCone_cone_π_app_left + theorem AddCommGrpCat.binaryProductLimitCone_cone_π_app_right + theorem AddCommGrpCat.biprodIsoProd_inv_comp_fst + theorem AddCommGrpCat.biprodIsoProd_inv_comp_snd + theorem AddCommGrpCat.biproductIsoPi_inv_comp_π Modified Mathlib/Algebra/Category/Grp/CartesianMonoidal.lean - theorem AddCommGrp.tensorObj_eq - theorem AddCommGrp.μ_forget_apply + theorem AddCommGrpCat.tensorObj_eq + theorem AddCommGrpCat.μ_forget_apply - def AddGrp.binaryProductLimitCone - theorem AddGrp.tensorObj_eq - theorem AddGrp.μ_forget_apply + def AddGrpCat.binaryProductLimitCone + theorem AddGrpCat.tensorObj_eq + theorem AddGrpCat.μ_forget_apply - def CommGrp.binaryProductLimitCone - theorem CommGrp.tensorObj_eq - theorem CommGrp.μ_forget_apply + def CommGrpCat.binaryProductLimitCone + theorem CommGrpCat.tensorObj_eq + theorem CommGrpCat.μ_forget_apply - def Grp.binaryProductLimitCone - theorem Grp.tensorObj_eq - theorem Grp.μ_forget_apply + def GrpCat.binaryProductLimitCone + theorem GrpCat.tensorObj_eq + theorem GrpCat.μ_forget_apply Modified Mathlib/Algebra/Category/Grp/Colimits.lean - theorem AddCommGrp.Colimits.Quot.addMonoidHom_ext - def AddCommGrp.Colimits.Quot.desc - theorem AddCommGrp.Colimits.Quot.desc_colimitCocone - theorem AddCommGrp.Colimits.Quot.desc_quotQuotUliftAddEquiv - theorem AddCommGrp.Colimits.Quot.desc_toCocone_desc - theorem AddCommGrp.Colimits.Quot.desc_toCocone_desc_app - theorem AddCommGrp.Colimits.Quot.map_ι - def AddCommGrp.Colimits.Quot.ι - theorem AddCommGrp.Colimits.Quot.ι_desc - def AddCommGrp.Colimits.Quot - def AddCommGrp.Colimits.quotQuotUliftAddEquiv - def AddCommGrp.Colimits.quotToQuotUlift - theorem AddCommGrp.Colimits.quotToQuotUlift_ι - def AddCommGrp.Colimits.quotUliftToQuot - theorem AddCommGrp.Colimits.quotUliftToQuot_ι - def AddCommGrp.Colimits.toCocone - theorem AddCommGrp.hasColimit_of_small_quot + theorem AddCommGrpCat.Colimits.Quot.addMonoidHom_ext + def AddCommGrpCat.Colimits.Quot.desc + theorem AddCommGrpCat.Colimits.Quot.desc_colimitCocone + theorem AddCommGrpCat.Colimits.Quot.desc_quotQuotUliftAddEquiv + theorem AddCommGrpCat.Colimits.Quot.desc_toCocone_desc + theorem AddCommGrpCat.Colimits.Quot.desc_toCocone_desc_app + theorem AddCommGrpCat.Colimits.Quot.map_ι + def AddCommGrpCat.Colimits.Quot.ι + theorem AddCommGrpCat.Colimits.Quot.ι_desc + def AddCommGrpCat.Colimits.Quot + def AddCommGrpCat.Colimits.quotQuotUliftAddEquiv + def AddCommGrpCat.Colimits.quotToQuotUlift + theorem AddCommGrpCat.Colimits.quotToQuotUlift_ι + def AddCommGrpCat.Colimits.quotUliftToQuot + theorem AddCommGrpCat.Colimits.quotUliftToQuot_ι + def AddCommGrpCat.Colimits.toCocone + theorem AddCommGrpCat.hasColimit_of_small_quot Modified Mathlib/Algebra/Category/Grp/EnoughInjectives.lean Modified Mathlib/Algebra/Category/Grp/EpiMono.lean - theorem AddGrp.epi_iff_range_eq_top - theorem AddGrp.epi_iff_surjective + theorem AddGrpCat.epi_iff_range_eq_top + theorem AddGrpCat.epi_iff_surjective - theorem CommGrp.epi_iff_range_eq_top - theorem CommGrp.epi_iff_surjective - theorem CommGrp.ker_eq_bot_of_mono - theorem CommGrp.mono_iff_injective - theorem CommGrp.mono_iff_ker_eq_bot - theorem CommGrp.range_eq_top_of_epi + theorem CommGrpCat.epi_iff_range_eq_top + theorem CommGrpCat.epi_iff_surjective + theorem CommGrpCat.ker_eq_bot_of_mono + theorem CommGrpCat.mono_iff_injective + theorem CommGrpCat.mono_iff_ker_eq_bot + theorem CommGrpCat.range_eq_top_of_epi - inductive Grp.SurjectiveOfEpiAuxs.XWithInfinity - theorem Grp.SurjectiveOfEpiAuxs.agree - theorem Grp.SurjectiveOfEpiAuxs.comp_eq - theorem Grp.SurjectiveOfEpiAuxs.fromCoset_eq_of_mem_range - theorem Grp.SurjectiveOfEpiAuxs.fromCoset_ne_of_nin_range - def Grp.SurjectiveOfEpiAuxs.g - theorem Grp.SurjectiveOfEpiAuxs.g_apply_fromCoset - theorem Grp.SurjectiveOfEpiAuxs.g_apply_infinity - theorem Grp.SurjectiveOfEpiAuxs.g_ne_h - def Grp.SurjectiveOfEpiAuxs.h - theorem Grp.SurjectiveOfEpiAuxs.h_apply_fromCoset' - theorem Grp.SurjectiveOfEpiAuxs.h_apply_fromCoset - theorem Grp.SurjectiveOfEpiAuxs.h_apply_fromCoset_nin_range - theorem Grp.SurjectiveOfEpiAuxs.h_apply_infinity - theorem Grp.SurjectiveOfEpiAuxs.mul_smul - theorem Grp.SurjectiveOfEpiAuxs.one_smul - theorem Grp.SurjectiveOfEpiAuxs.τ_apply_fromCoset' - theorem Grp.SurjectiveOfEpiAuxs.τ_apply_fromCoset - theorem Grp.SurjectiveOfEpiAuxs.τ_apply_infinity - theorem Grp.SurjectiveOfEpiAuxs.τ_symm_apply_fromCoset - theorem Grp.SurjectiveOfEpiAuxs.τ_symm_apply_infinity - theorem Grp.epi_iff_range_eq_top - theorem Grp.epi_iff_surjective - theorem Grp.ker_eq_bot_of_mono - theorem Grp.mono_iff_injective - theorem Grp.mono_iff_ker_eq_bot - theorem Grp.surjective_of_epi + inductive GrpCat.SurjectiveOfEpiAuxs.XWithInfinity + theorem GrpCat.SurjectiveOfEpiAuxs.agree + theorem GrpCat.SurjectiveOfEpiAuxs.comp_eq + theorem GrpCat.SurjectiveOfEpiAuxs.fromCoset_eq_of_mem_range + theorem GrpCat.SurjectiveOfEpiAuxs.fromCoset_ne_of_nin_range + def GrpCat.SurjectiveOfEpiAuxs.g + theorem GrpCat.SurjectiveOfEpiAuxs.g_apply_fromCoset + theorem GrpCat.SurjectiveOfEpiAuxs.g_apply_infinity + theorem GrpCat.SurjectiveOfEpiAuxs.g_ne_h + def GrpCat.SurjectiveOfEpiAuxs.h + theorem GrpCat.SurjectiveOfEpiAuxs.h_apply_fromCoset' + theorem GrpCat.SurjectiveOfEpiAuxs.h_apply_fromCoset + theorem GrpCat.SurjectiveOfEpiAuxs.h_apply_fromCoset_nin_range + theorem GrpCat.SurjectiveOfEpiAuxs.h_apply_infinity + theorem GrpCat.SurjectiveOfEpiAuxs.mul_smul + theorem GrpCat.SurjectiveOfEpiAuxs.one_smul + theorem GrpCat.SurjectiveOfEpiAuxs.τ_apply_fromCoset' + theorem GrpCat.SurjectiveOfEpiAuxs.τ_apply_fromCoset + theorem GrpCat.SurjectiveOfEpiAuxs.τ_apply_infinity + theorem GrpCat.SurjectiveOfEpiAuxs.τ_symm_apply_fromCoset + theorem GrpCat.SurjectiveOfEpiAuxs.τ_symm_apply_infinity + theorem GrpCat.epi_iff_range_eq_top + theorem GrpCat.epi_iff_surjective + theorem GrpCat.ker_eq_bot_of_mono + theorem GrpCat.mono_iff_injective + theorem GrpCat.mono_iff_ker_eq_bot + theorem GrpCat.surjective_of_epi Modified Mathlib/Algebra/Category/Grp/EquivalenceGroupAddGroup.lean - def AddCommGrp.toCommGrp + def AddCommGrpCat.toCommGrp - def AddGrp.toGrp + def AddGrpCat.toGrp - def CommGrp.toAddCommGrp + def CommGrpCat.toAddCommGrp - def Grp.toAddGrp + def GrpCat.toAddGrp +/- def commGroupAddCommGroupEquivalence +/- def groupAddGroupEquivalence Modified Mathlib/Algebra/Category/Grp/FilteredColimits.lean - theorem Grp.FilteredColimits.G.mk_eq - def Grp.FilteredColimits.colimitInvAux - theorem Grp.FilteredColimits.colimitInvAux_eq_of_rel - theorem Grp.FilteredColimits.colimit_inv_mk_eq - theorem Grp.FilteredColimits.colimit_mul_mk_eq' - theorem Grp.FilteredColimits.colimit_mul_mk_eq - theorem Grp.FilteredColimits.colimit_one_eq + theorem GrpCat.FilteredColimits.G.mk_eq + def GrpCat.FilteredColimits.colimitInvAux + theorem GrpCat.FilteredColimits.colimitInvAux_eq_of_rel + theorem GrpCat.FilteredColimits.colimit_inv_mk_eq + theorem GrpCat.FilteredColimits.colimit_mul_mk_eq' + theorem GrpCat.FilteredColimits.colimit_mul_mk_eq + theorem GrpCat.FilteredColimits.colimit_one_eq Modified Mathlib/Algebra/Category/Grp/FiniteGrp.lean Modified Mathlib/Algebra/Category/Grp/ForgetCorepresentable.lean - def AddCommGrp.coyonedaObjIsoForget + def AddCommGrpCat.coyonedaObjIsoForget - def AddGrp.coyonedaObjIsoForget + def AddGrpCat.coyonedaObjIsoForget - def CommGrp.coyonedaObjIsoForget + def CommGrpCat.coyonedaObjIsoForget - def Grp.coyonedaObjIsoForget + def GrpCat.coyonedaObjIsoForget Modified Mathlib/Algebra/Category/Grp/Images.lean - def AddCommGrp.factorThruImage - theorem AddCommGrp.image.fac - theorem AddCommGrp.image.lift_fac - def AddCommGrp.image.ι - def AddCommGrp.image - def AddCommGrp.monoFactorisation + def AddCommGrpCat.factorThruImage + theorem AddCommGrpCat.image.fac + theorem AddCommGrpCat.image.lift_fac + def AddCommGrpCat.image.ι + def AddCommGrpCat.image + def AddCommGrpCat.monoFactorisation Modified Mathlib/Algebra/Category/Grp/Injective.lean - theorem AddCommGrp.injective_as_module_iff + theorem AddCommGrpCat.injective_as_module_iff Modified Mathlib/Algebra/Category/Grp/IsFinite.lean - def AddCommGrp.isFinite - theorem AddCommGrp.prop_isFinite_iff + def AddCommGrpCat.isFinite + theorem AddCommGrpCat.prop_isFinite_iff Modified Mathlib/Algebra/Category/Grp/Kernels.lean - def AddCommGrp.cokernelCocone - def AddCommGrp.cokernelIsColimit - def AddCommGrp.kernelCone - def AddCommGrp.kernelIsLimit + def AddCommGrpCat.cokernelCocone + def AddCommGrpCat.cokernelIsColimit + def AddCommGrpCat.kernelCone + def AddCommGrpCat.kernelIsLimit Modified Mathlib/Algebra/Category/Grp/LargeColimits.lean - theorem AddCommGrp.hasColimit_iff_small_quot - theorem AddCommGrp.isColimit_iff_bijective_desc + theorem AddCommGrpCat.hasColimit_iff_small_quot + theorem AddCommGrpCat.isColimit_iff_bijective_desc Modified Mathlib/Algebra/Category/Grp/LeftExactFunctor.lean Modified Mathlib/Algebra/Category/Grp/Limits.lean - def AddCommGrp.kernelIsoKer - def AddCommGrp.kernelIsoKerOver - theorem AddCommGrp.kernelIsoKer_hom_comp_subtype - theorem AddCommGrp.kernelIsoKer_inv_comp_ι + def AddCommGrpCat.kernelIsoKer + def AddCommGrpCat.kernelIsoKerOver + theorem AddCommGrpCat.kernelIsoKer_hom_comp_subtype + theorem AddCommGrpCat.kernelIsoKer_inv_comp_ι - theorem CommGrp.hasLimit_iff_small_sections + theorem CommGrpCat.hasLimit_iff_small_sections - theorem Grp.hasLimit_iff_small_sections - def Grp.sectionsSubgroup - def Grp.sectionsπMonoidHom + theorem GrpCat.hasLimit_iff_small_sections + def GrpCat.sectionsSubgroup + def GrpCat.sectionsπMonoidHom Modified Mathlib/Algebra/Category/Grp/Preadditive.lean - def AddCommGrp.homAddEquiv - theorem AddCommGrp.hom_add - theorem AddCommGrp.hom_add_apply - theorem AddCommGrp.hom_neg - theorem AddCommGrp.hom_nsmul - theorem AddCommGrp.hom_sub - theorem AddCommGrp.hom_zero - theorem AddCommGrp.hom_zsmul + def AddCommGrpCat.homAddEquiv + theorem AddCommGrpCat.hom_add + theorem AddCommGrpCat.hom_add_apply + theorem AddCommGrpCat.hom_neg + theorem AddCommGrpCat.hom_nsmul + theorem AddCommGrpCat.hom_sub + theorem AddCommGrpCat.hom_zero + theorem AddCommGrpCat.hom_zsmul Modified Mathlib/Algebra/Category/Grp/Subobject.lean Modified Mathlib/Algebra/Category/Grp/Ulift.lean - def CommGrp.uliftFunctorFullyFaithful + def CommGrpCat.uliftFunctorFullyFaithful - def Grp.uliftFunctorFullyFaithful + def GrpCat.uliftFunctorFullyFaithful Modified Mathlib/Algebra/Category/Grp/Yoneda.lean - def CommGrp.coyoneda - def CommGrp.coyonedaForget - def CommGrp.coyonedaType + def CommGrpCat.coyoneda + def CommGrpCat.coyonedaForget + def CommGrpCat.coyonedaType Modified Mathlib/Algebra/Category/Grp/ZModuleEquivalence.lean Modified Mathlib/Algebra/Category/Grp/Zero.lean - theorem CommGrp.isZero_of_subsingleton + theorem CommGrpCat.isZero_of_subsingleton - theorem Grp.isZero_of_subsingleton + theorem GrpCat.isZero_of_subsingleton Modified Mathlib/Algebra/Category/ModuleCat/AB.lean Modified Mathlib/Algebra/Category/ModuleCat/Abelian.lean Modified Mathlib/Algebra/Category/ModuleCat/Basic.lean +/- def ModuleCat.mkOfSMul' +/- def ModuleCat.smul +/- def ModuleCat.smulNatTrans Modified Mathlib/Algebra/Category/ModuleCat/ChangeOfRings.lean Modified Mathlib/Algebra/Category/ModuleCat/Colimits.lean Modified Mathlib/Algebra/Category/ModuleCat/EnoughInjectives.lean Modified Mathlib/Algebra/Category/ModuleCat/FilteredColimits.lean +/- def ModuleCat.FilteredColimits.M Modified Mathlib/Algebra/Category/ModuleCat/Limits.lean Modified Mathlib/Algebra/Category/ModuleCat/Presheaf.lean Modified Mathlib/Algebra/Category/ModuleCat/Presheaf/Colimits.lean Modified Mathlib/Algebra/Category/ModuleCat/Presheaf/Limits.lean Modified Mathlib/Algebra/Category/ModuleCat/Presheaf/Sheafification.lean Modified Mathlib/Algebra/Category/ModuleCat/Presheaf/Sheafify.lean Modified Mathlib/Algebra/Category/ModuleCat/Sheaf.lean Modified Mathlib/Algebra/Category/ModuleCat/Sheaf/Abelian.lean Modified Mathlib/Algebra/Category/ModuleCat/Sheaf/Colimits.lean Modified Mathlib/Algebra/Category/ModuleCat/Sheaf/Free.lean Modified Mathlib/Algebra/Category/ModuleCat/Sheaf/Generators.lean Modified Mathlib/Algebra/Category/ModuleCat/Sheaf/Limits.lean Modified Mathlib/Algebra/Category/ModuleCat/Sheaf/PullbackContinuous.lean Modified Mathlib/Algebra/Category/ModuleCat/Sheaf/Quasicoherent.lean Modified Mathlib/Algebra/Category/ModuleCat/Tannaka.lean Modified Mathlib/Algebra/Category/Ring/Adjunctions.lean Modified Mathlib/Algebra/Category/Ring/Basic.lean Modified Mathlib/Algebra/Category/Ring/FilteredColimits.lean Modified Mathlib/Algebra/Category/Ring/Limits.lean Modified Mathlib/Algebra/HierarchyDesign.lean Modified Mathlib/Algebra/Homology/DerivedCategory/Ext/Basic.lean Modified Mathlib/Algebra/Homology/DerivedCategory/Ext/ExactSequences.lean Modified Mathlib/Algebra/Homology/HomotopyCategory/HomComplex.lean +/- def CochainComplex.HomComplex Modified Mathlib/Algebra/Homology/ShortComplex/Ab.lean +/- theorem CategoryTheory.ShortComplex.abLeftHomologyData_f' Modified Mathlib/Algebra/Homology/ShortComplex/ConcreteCategory.lean Modified Mathlib/AlgebraicGeometry/Modules/Sheaf.lean Modified Mathlib/AlgebraicGeometry/Modules/Tilde.lean Modified Mathlib/CategoryTheory/Abelian/Yoneda.lean Modified Mathlib/CategoryTheory/Action/Basic.lean Modified Mathlib/CategoryTheory/Adjunction/Additive.lean Modified Mathlib/CategoryTheory/Galois/Prorepresentability.lean Modified Mathlib/CategoryTheory/Generator/Preadditive.lean Modified Mathlib/CategoryTheory/Linear/Yoneda.lean Modified Mathlib/CategoryTheory/Monoidal/Cartesian/CommGrp_.lean +/- def CommGrpObj.ofRepresentableBy Modified Mathlib/CategoryTheory/Monoidal/Cartesian/Grp_.lean +/- def GrpObj.ofRepresentableBy +/- def yonedaGrp +/- def yonedaGrpObj +/- def yonedaGrpObjIsoOfRepresentableBy Modified Mathlib/CategoryTheory/Monoidal/CommGrp_.lean Modified Mathlib/CategoryTheory/Monoidal/CommMon_.lean Modified Mathlib/CategoryTheory/Monoidal/Grp_.lean Modified Mathlib/CategoryTheory/Monoidal/Internal/Types/CommGrp_.lean +/- theorem CommGrpTypeEquivalenceCommGrp.inverse_obj_X +/- theorem CommGrpTypeEquivalenceCommGrp.inverse_obj_inv +/- theorem CommGrpTypeEquivalenceCommGrp.inverse_obj_mul +/- theorem CommGrpTypeEquivalenceCommGrp.inverse_obj_one Modified Mathlib/CategoryTheory/Monoidal/Internal/Types/Grp_.lean Modified Mathlib/CategoryTheory/Monoidal/Mon_.lean Modified Mathlib/CategoryTheory/Preadditive/Indization.lean Modified Mathlib/CategoryTheory/Preadditive/Yoneda/Basic.lean - def AddCommGrp.preadditiveCoyonedaIso + def AddCommGrpCat.preadditiveCoyonedaIso +/- def CategoryTheory.preadditiveCoyoneda +/- def CategoryTheory.preadditiveYoneda Modified Mathlib/CategoryTheory/Preadditive/Yoneda/Injective.lean Modified Mathlib/CategoryTheory/Preadditive/Yoneda/Projective.lean Modified Mathlib/CategoryTheory/Sites/MayerVietorisSquare.lean +/- theorem CategoryTheory.GrothendieckTopology.MayerVietorisSquare.isPushoutAddCommGrpFreeSheaf Modified Mathlib/CategoryTheory/Sites/NonabelianCohomology/H1.lean Modified Mathlib/CategoryTheory/Sites/SheafCohomology/Basic.lean Modified Mathlib/CategoryTheory/Triangulated/Yoneda.lean Modified Mathlib/Geometry/Manifold/Sheaf/Smooth.lean Modified Mathlib/GroupTheory/Abelianization/Defs.lean Modified Mathlib/GroupTheory/FreeAbelianGroup.lean Modified Mathlib/GroupTheory/FreeGroup/Basic.lean Modified Mathlib/RepresentationTheory/Homological/GroupCohomology/LowDegree.lean Modified Mathlib/Topology/Algebra/Category/ProfiniteGrp/Basic.lean Modified Mathlib/Topology/Sheaves/SheafCondition/UniqueGluing.lean Modified MathlibTest/Algebra/Category/Grp/Injective.lean Modified MathlibTest/CategoryTheory/ConcreteCategory/Grp.lean Modified scripts/nolints_prime_decls.txt 2025-10-12 17:44:44 417cda3 feat: remove separability assumption from Algebra.norm_eq_norm_adjoin and Algebra.norm_eq_prod_roots (#30448) Continuing the work of #30323 we remove the separability assumption from `Algebra.norm_eq_norm_adjoin` and `Algebra.norm_eq_prod_roots`. ESTIMATED CHANGES Modified Mathlib/FieldTheory/Finite/GaloisField.lean Modified Mathlib/NumberTheory/Cyclotomic/PrimitiveRoots.lean Modified Mathlib/NumberTheory/NumberField/InfinitePlace/Basic.lean Modified Mathlib/NumberTheory/NumberField/Norm.lean +/- theorem RingOfIntegers.dvd_norm +/- theorem RingOfIntegers.isUnit_norm_of_isGalois Modified Mathlib/RingTheory/Discriminant.lean Modified Mathlib/RingTheory/IntegralClosure/IntegralRestrict.lean Modified Mathlib/RingTheory/Norm/Basic.lean - theorem Algebra.norm_eq_norm_adjoin - theorem Algebra.norm_eq_prod_automorphisms - theorem Algebra.norm_eq_prod_embeddings - theorem Algebra.norm_eq_prod_roots Modified Mathlib/RingTheory/Norm/Transitivity.lean +/- theorem Algebra.isIntegral_norm + theorem Algebra.norm_eq_norm_adjoin + theorem Algebra.norm_eq_prod_automorphisms + theorem Algebra.norm_eq_prod_embeddings + theorem Algebra.norm_eq_prod_roots 2025-10-12 16:50:20 74170ab doc(CategoryTheory/Abelian/NonPreadditive): mention `NonPreadditiveAbelian.preadditive` in docstring of `NonPreadditiveAbelian` (#30469) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Abelian/NonPreadditive.lean 2025-10-12 15:57:33 efc2282 doc(CategoryTheory/Iso): mention `AsIso` and `inv` in the docstring for `IsIso` (#30467) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Iso.lean 2025-10-12 14:20:00 1a7fef6 feat(CategoryTheory): pseudofunctors to Cat (#25971) This PR adds convenience lemmas for pseudofunctors to `Cat`, mostly using the `to_app` attribute. The simp set for the `to_app` attribute is extended in order to take into account that in `Cat`, associators and unitors induce identities. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Bicategory/Functor/Cat.lean + theorem CategoryTheory.Pseudofunctor.mapComp'_hom_naturality + theorem CategoryTheory.Pseudofunctor.mapComp'_inv_naturality + theorem CategoryTheory.Pseudofunctor.mapComp'_naturality_1 + theorem CategoryTheory.Pseudofunctor.mapComp'_naturality_2 + theorem CategoryTheory.Pseudofunctor.mapId'_hom_naturality + theorem CategoryTheory.Pseudofunctor.mapId'_inv_naturality Modified Mathlib/CategoryTheory/Bicategory/Functor/Pseudofunctor.lean Modified Mathlib/CategoryTheory/Bicategory/Grothendieck.lean Modified Mathlib/CategoryTheory/Bicategory/Strict/Pseudofunctor.lean + theorem CategoryTheory.Pseudofunctor.mapComp'_comp_id_hom + theorem CategoryTheory.Pseudofunctor.mapComp'_comp_id_inv - theorem CategoryTheory.Pseudofunctor.mapComp'_hom_comp_mapComp'_hom_whiskerRight - theorem CategoryTheory.Pseudofunctor.mapComp'_hom_comp_whiskerLeft_mapComp'_hom + theorem CategoryTheory.Pseudofunctor.mapComp'_id_comp_hom + theorem CategoryTheory.Pseudofunctor.mapComp'_id_comp_inv - theorem CategoryTheory.Pseudofunctor.mapComp'_inv_comp_mapComp'_hom - theorem CategoryTheory.Pseudofunctor.mapComp'_inv_whiskerRight_comp_mapComp'_inv + theorem CategoryTheory.Pseudofunctor.mapComp'_inv_whiskerRight_mapComp'₀₂₃_inv + theorem CategoryTheory.Pseudofunctor.mapComp'₀₁₃_hom + theorem CategoryTheory.Pseudofunctor.mapComp'₀₁₃_hom_comp_whiskerLeft_mapComp'_hom + theorem CategoryTheory.Pseudofunctor.mapComp'₀₁₃_inv + theorem CategoryTheory.Pseudofunctor.mapComp'₀₁₃_inv_comp_mapComp'₀₂₃_hom + theorem CategoryTheory.Pseudofunctor.mapComp'₀₂₃_hom + theorem CategoryTheory.Pseudofunctor.mapComp'₀₂₃_hom_comp_mapComp'_hom_whiskerRight + theorem CategoryTheory.Pseudofunctor.mapComp'₀₂₃_inv - theorem CategoryTheory.Pseudofunctor.whiskerLeft_mapComp'_inv_comp_mapComp'_inv + theorem CategoryTheory.Pseudofunctor.whiskerLeft_mapComp'_inv_comp_mapComp'₀₁₃_inv Modified Mathlib/Tactic/CategoryTheory/ToApp.lean Modified MathlibTest/CategoryTheory/ToApp.lean 2025-10-12 13:56:13 cb38ed1 refactor(RingTheory/AdjoinRoot): generalise `algEquivOfAssociated` (#30456) Generalise `algEquivOfAssociated` from fields to commutative rings, and use it to define `algEquivOfEq`. Also make the `f` and `g` arguments explicit to avoid there only being Prop arguments to the defs. ESTIMATED CHANGES Modified Mathlib/FieldTheory/IntermediateField/Adjoin/Basic.lean - theorem AdjoinRoot.algEquivOfAssociated_apply_root - theorem AdjoinRoot.algEquivOfAssociated_toAlgHom - theorem AdjoinRoot.algHomOfDvd_apply_root - theorem AdjoinRoot.coe_algEquivOfAssociated - theorem AdjoinRoot.coe_algHomOfDvd Modified Mathlib/RingTheory/AdjoinRoot.lean + theorem AdjoinRoot.algEquivOfAssociated_root + theorem AdjoinRoot.algEquivOfAssociated_symm + theorem AdjoinRoot.algEquivOfAssociated_toAlgHom - def AdjoinRoot.algEquivOfEq +/- theorem AdjoinRoot.algEquivOfEq_root +/- theorem AdjoinRoot.algEquivOfEq_symm + theorem AdjoinRoot.algEquivOfEq_toAlgHom + theorem AdjoinRoot.algHomOfDvd_root + theorem AdjoinRoot.coe_algEquivOfAssociated + theorem AdjoinRoot.coe_algEquivOfEq + theorem AdjoinRoot.coe_algHomOfDvd 2025-10-12 13:56:11 ef123dc refactor(RingTheory/FinitePresentation): generalise instances (#30455) Previously, they only proved that `R[X]` (or alike) is finitely presented over `R`. Now they prove that `A[X]` is finite presented over `R` if `A` is. As a result, generalise the (non-)instance for `AdjoinRoot` and make it an instance ESTIMATED CHANGES Modified Mathlib/RingTheory/AdjoinRoot.lean - theorem AdjoinRoot.finitePresentation - theorem AdjoinRoot.finiteType Modified Mathlib/RingTheory/FinitePresentation.lean 2025-10-12 13:56:09 5fb64f8 feat(Counterexamples): Euler's sum of powers conjecture (#29110) feat(Counterexamples): Euler's sum of powers conjecture ESTIMATED CHANGES Modified Counterexamples.lean Added Counterexamples/EulerSumOfPowers.lean + theorem Counterexample.LanderParkinSelfridgeConjecture_of_sumOfPowersConjectureWith + theorem Counterexample.existsEqualSumsOfLikePowersFor_of_sumOfPowersConjectureWith + theorem Counterexample.fermatLastTheoremWith_of_sumOfPowersConjectureWith + theorem Counterexample.fermatLastTheorem_of_sumOfPowersConjecture + theorem Counterexample.sumOfPowersConjectureFor_five_false + theorem Counterexample.sumOfPowersConjectureFor_four_false + theorem Counterexample.sumOfPowersConjectureFor_le_three + theorem Counterexample.sumOfPowersConjectureWith_three_iff_fermatLastTheoremWith_three + theorem Counterexample.sumOfPowersConjecture_of_injective + theorem Counterexample.sumOfPowersConjecture_of_ringHom 2025-10-12 13:15:53 36533cb feat: `(Algebra.ofId R A).toRingHom = algebraMap R A` (#30454) A simple lemma which is missing. ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/Hom.lean + theorem Algebra.toRingHom_ofId Modified Mathlib/RingTheory/LocalRing/ResidueField/Instances.lean 2025-10-12 11:37:05 c4b611e feat(LinearAlgebra/Matrix/PosDef): `vecMulVec a (star a)` is positive semi-definite (#29861) The matrices `vecMulVec a (star a)` and `vecMulVec (star a) a` are always positive semi-definite. ESTIMATED CHANGES Modified Mathlib/Data/Matrix/Mul.lean + theorem exists_ne_zero_dotProduct_eq_zero + theorem not_injective_dotProduct_left + theorem not_injective_dotProduct_right Modified Mathlib/LinearAlgebra/Matrix/PosDef.lean + theorem Matrix.PosDef.mul_conjTranspose_self + theorem Matrix.posSemidef_vecMulVec_self_star + theorem Matrix.posSemidef_vecMulVec_star_self 2025-10-12 08:25:40 29be66d chore(Mathlib/Order/BooleanAlgebra/Basic): some golf (#30427) ESTIMATED CHANGES Modified Mathlib/Data/Finset/SDiff.lean Modified Mathlib/Order/BooleanAlgebra/Basic.lean - theorem sdiff_eq_self_iff_disjoint' +/- theorem sdiff_eq_self_iff_disjoint +/- theorem sup_inf_inf_sdiff 2025-10-12 08:10:14 55c0690 chore: update Mathlib dependencies 2025-10-12 (#30453) This PR updates the Mathlib dependencies. [workflow run for this PR](https://github.com/leanprover-community/mathlib4/actions/runs/18440664752) ESTIMATED CHANGES Modified lake-manifest.json 2025-10-12 04:58:07 cfcfdad chore(Order/Defs/PartialOrder): golf non-instance (#30062) Golf `decidableLTOfDecidableLE` ESTIMATED CHANGES Modified Mathlib/Order/Defs/PartialOrder.lean +/- def decidableLTOfDecidableLE 2025-10-12 03:26:04 4b9a202 CI: run a weekly linter workflow (#29769) This PR adds a workflow analogous to the nightly regression lints, that reports possible refactors using the tactic analysis framework. Those would be too noisy or take too much time to run in regular CI. As a first linter, we have the `mergeWithGrind` linter that reports when a sequence of tactics followed by `grind` can become just `grind`. ESTIMATED CHANGES Added .github/workflows/weekly-lints.yml Modified Mathlib/Init.lean 2025-10-12 02:38:46 5f8806f chore: update Mathlib dependencies 2025-10-12 (#30449) This PR updates the Mathlib dependencies. [workflow run for this PR](https://github.com/leanprover-community/mathlib4/actions/runs/18437370407) ESTIMATED CHANGES Modified lake-manifest.json 2025-10-12 00:30:37 54c708e chore: adaptations for batteries#1456 (#30444) ESTIMATED CHANGES Modified Mathlib/Data/Fin/Basic.lean - theorem Fin.coe_divNat - theorem Fin.coe_modNat - def Fin.divNat - def Fin.modNat Modified Mathlib/Logic/Equiv/Fin/Basic.lean Modified Mathlib/Probability/ProbabilityMassFunction/Binomial.lean Modified lake-manifest.json 2025-10-12 00:03:53 11ddf68 feat(Combinatorics/SimpleGraph/Walk): `p.getVert` and `p.support.get` have the same range (#30225) ESTIMATED CHANGES Modified Mathlib/Combinatorics/SimpleGraph/Walk.lean + theorem SimpleGraph.Walk.range_getVert_eq_range_support_getElem 2025-10-11 23:02:24 150a34d feat: add `NullMeasurableSet` version of `setIntegral_mono_on` (#30385) ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Integral/Bochner/Set.lean + theorem MeasureTheory.setIntegral_mono_on_ae₀ + theorem MeasureTheory.setIntegral_mono_on₀ Modified Mathlib/MeasureTheory/Integral/DominatedConvergence.lean 2025-10-11 23:02:22 c859402 chore(Algebra/BigOperators): move factorial theorem to `Data/Nat/Factorial/BigOperators` (#30183) ESTIMATED CHANGES Modified Mathlib/Algebra/BigOperators/Intervals.lean - theorem Finset.prod_range_add_one_eq_factorial Modified Mathlib/Analysis/SpecificLimits/Basic.lean Modified Mathlib/Data/Nat/Factorial/BigOperators.lean + theorem Finset.prod_range_add_one_eq_factorial + theorem Nat.factorial_eq_prod_range_add_one Modified Mathlib/Data/ZMod/Factorial.lean Modified Mathlib/LinearAlgebra/Vandermonde.lean 2025-10-11 23:02:20 e2faeeb feat: invariant dual submodules define Lie ideals (#29979) Invariant dual submodules define Lie ideals ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Lie/Weights/IsSimple.lean + theorem LieAlgebra.IsKilling.eq_top_of_invtSubmodule_ne_bot Modified Mathlib/Algebra/Lie/Weights/RootSystem.lean - theorem LieAlgebra.IsKilling.eq_top_of_invtSubmodule_ne_bot Modified Mathlib/LinearAlgebra/RootSystem/Finite/Lemmas.lean + theorem RootPairing.pairingIn_eq_zero_of_add_notMem_of_sub_notMem + theorem RootPairing.pairing_eq_zero_of_add_notMem_of_sub_notMem 2025-10-11 22:15:14 698d306 chore(LinearAlgebra/TensorProduct/Finiteness): rename `_of_finite` lemmas to `_of_setFinite` (#30435) `TensorProduct.exists_finite_submodule_of_finite` and its variants are confusing since the `finite` in the name refers to different things, so we change it to `_of_setFinite`. ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/LinearDisjoint.lean Modified Mathlib/LinearAlgebra/TensorProduct/Finiteness.lean - theorem TensorProduct.exists_finite_submodule_left_of_finite' - theorem TensorProduct.exists_finite_submodule_left_of_finite + theorem TensorProduct.exists_finite_submodule_left_of_setFinite' + theorem TensorProduct.exists_finite_submodule_left_of_setFinite - theorem TensorProduct.exists_finite_submodule_of_finite' - theorem TensorProduct.exists_finite_submodule_of_finite + theorem TensorProduct.exists_finite_submodule_of_setFinite' + theorem TensorProduct.exists_finite_submodule_of_setFinite - theorem TensorProduct.exists_finite_submodule_right_of_finite' - theorem TensorProduct.exists_finite_submodule_right_of_finite + theorem TensorProduct.exists_finite_submodule_right_of_setFinite' + theorem TensorProduct.exists_finite_submodule_right_of_setFinite Modified Mathlib/RingTheory/LinearDisjoint.lean 2025-10-11 22:15:12 a1428e3 feat(Combinatorics/SimpleGraph/Acyclic): a tree is a minimal connected graph (#30428) ESTIMATED CHANGES Modified Mathlib/Combinatorics/SimpleGraph/Acyclic.lean + theorem SimpleGraph.isTree_iff_minimal_connected 2025-10-11 22:15:11 d8281f5 feat(Combinatorics/SimpleGraph/Acyclic): homomorphisms into an acyclic graph implies acyclic (#30317) ESTIMATED CHANGES Modified Mathlib/Combinatorics/SimpleGraph/Acyclic.lean + theorem SimpleGraph.IsAcyclic.anti + theorem SimpleGraph.IsAcyclic.comap + theorem SimpleGraph.IsAcyclic.embedding + theorem SimpleGraph.IsAcyclic.induce + theorem SimpleGraph.IsAcyclic.isTree_connectedComponent + theorem SimpleGraph.IsAcyclic.of_comap + theorem SimpleGraph.IsAcyclic.of_map + theorem SimpleGraph.IsAcyclic.subgraph + theorem SimpleGraph.Iso.isAcyclic_iff + theorem SimpleGraph.Iso.isTree_iff 2025-10-11 22:15:09 69c9f3a feat(Data/List/Nodup): `get` is bijective iff `count = 1` (#30223) ESTIMATED CHANGES Modified Mathlib/Data/List/Nodup.lean + theorem List.getElem_bijective_iff + theorem List.get_bijective_iff 2025-10-11 22:15:07 32acb95 chore(Data/List/Nodup): golf `nodup_iff_injective_get` (#30220) ESTIMATED CHANGES Modified Mathlib/Data/List/Nodup.lean +/- theorem List.nodup_iff_injective_get 2025-10-11 22:15:04 bd91ab1 feat(Combinatorics/SimpleGraph/Paths): path iff `p.support.get` is injective (#30219) ESTIMATED CHANGES Modified Mathlib/Combinatorics/SimpleGraph/Paths.lean + theorem SimpleGraph.Walk.isPath_iff_injective_get_support 2025-10-11 22:01:29 bdf1052 chore(Combinatorics/SimpleGraph): avoid importing linarith (#30430) Avoid importing linarith, make minor style changes. ESTIMATED CHANGES Modified Mathlib/Combinatorics/SimpleGraph/Acyclic.lean Modified Mathlib/Combinatorics/SimpleGraph/Connectivity/Connected.lean Modified Mathlib/Combinatorics/SimpleGraph/Connectivity/Subgraph.lean 2025-10-11 22:01:27 e771538 feat(Combinatorics/SimpleGraph/Walk): `p.getVert` is `p.support.get` (#30205) ESTIMATED CHANGES Modified Mathlib/Combinatorics/SimpleGraph/Walk.lean + theorem SimpleGraph.Walk.getVert_comp_val_eq_get_support + theorem SimpleGraph.Walk.getVert_eq_getD_support 2025-10-11 21:45:57 ecf7753 chore: adaptations for batteries#1457 (#30447) After [batteries#1457](https://github.com/leanprover-community/batteries/pull/1457) is merged: - [x] Edit the lakefile to point to leanprover-community/batteries:main - [x] Run lake update batteries - [x] Merge leanprover-community/mathlib4:master - [ ] Wait for CI and merge ESTIMATED CHANGES Modified Mathlib/Probability/ProbabilityMassFunction/Binomial.lean Modified lake-manifest.json 2025-10-11 20:21:06 f9f5e91 feat(NumberTheory/ArithmeticFunction): add some lemmas (#30147) feat(NumberTheory/ArithmeticFunction): add a few lemmas: - `ζ` commutes with everything - `f.ppow 1 = f` and `pow 1 = id` - An expression for `σ` using prime factorization, generalizing `Nat.sum_divisors` ESTIMATED CHANGES Modified Mathlib/NumberTheory/ArithmeticFunction.lean + theorem ArithmeticFunction.coe_zeta_mul_comm + theorem ArithmeticFunction.pow_one_eq_id + theorem ArithmeticFunction.ppow_one + theorem ArithmeticFunction.sigma_eq_prod_primeFactors_sum_range_factorization_pow_mul + theorem ArithmeticFunction.zeta_mul_comm 2025-10-11 20:00:54 702b830 feat: Ideal.ramificationIdx_mul_inertiaDeg_of_isLocalRing (#29729) We add the special case `Ideal.ramificationIdx_mul_inertiaDeg_of_isLocalRing` of `Ideal.sum_ramification_inertia` in the local (DVR) case: the product of the ramification index and the inertia degree equals the degree of the field extension. Also make the argument `p` implicit in `Ideal.sum_ramification_inertia`. ESTIMATED CHANGES Modified Mathlib/NumberTheory/RamificationInertia/Basic.lean + theorem Ideal.ramificationIdx_mul_inertiaDeg_of_isLocalRing Modified Mathlib/NumberTheory/RamificationInertia/Galois.lean Modified Mathlib/RingTheory/DedekindDomain/Basic.lean + theorem IsLocalRing.primesOver_eq Modified Mathlib/RingTheory/DedekindDomain/Ideal/Lemmas.lean + theorem IsLocalRing.primesOverFinset_eq 2025-10-11 18:49:49 0c1a3a6 feat: bundled C^n maps supported in a fixed compact set (#30197) Add a type of n-times continuously differentiable maps supported in a fixed compact set and related notation. Co-authored by: @ADedecker ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/Distribution/ContDiffMapSupportedIn.lean + def ContDiffMapSupportedIn.Simps.apply + theorem ContDiffMapSupportedIn.coe_copy + theorem ContDiffMapSupportedIn.copy_eq + theorem ContDiffMapSupportedIn.ext + theorem ContDiffMapSupportedIn.toFun_eq_coe + structure ContDiffMapSupportedIn 2025-10-11 18:15:05 831fa5a chore: generalise extensionality lemmas for localization (#30173) This PR generalises some extensionality lemmas for morphisms from localization. The codomains are generalised from `CommMonoid` to `Monoid`, and from `CommSemiring` to `Semiring`. Then two new extensionality lemmas for algebra morphisms are added. Currently `Submonoid.LocalizationMap.epic_of_localizationMap` says that if `M` and `P` are commutative monoids, and `f : M →* N` is a localization map for a submonoid `S`, then two monoid homs `j k : N →* P` are equal if they are equal after composing with `f`. This PR relaxes the assumption on `P` from `CommMonoid` to `Monoid`. Similar generalisations are made in other places, and then two new lemmas for `AlgHom` are added. ESTIMATED CHANGES Modified Mathlib/Algebra/Category/Ring/Instances.lean Modified Mathlib/AlgebraicGeometry/StructureSheaf.lean Modified Mathlib/GroupTheory/MonoidLocalization/Basic.lean +/- theorem Submonoid.LocalizationMap.epic_of_localizationMap Modified Mathlib/RingTheory/Localization/Basic.lean + theorem IsLocalization.algHom_ext + theorem Localization.algHom_ext Modified Mathlib/RingTheory/Localization/Defs.lean +/- theorem IsLocalization.monoidHom_ext +/- theorem IsLocalization.ringHom_ext 2025-10-11 16:48:17 02905c8 docs(LinearAlgebra.Eigenspace.Basic): fix repeated word in module doc (#30434) Replace Eigenvalues and eigenvalues by eigenvalues and eigenvectors ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/Eigenspace/Basic.lean 2025-10-11 16:33:49 7950cd5 feat (RingTheory/HahnSeries/Multiplication): Add group instances to HahnModule (#29772) This PR adds `Zero` and `AddCommGroup` instances to `HahnModule` when appropriate. We also add comparison lemmas for subtraction in the `AddCommGroup` case, and reorganize some `variables`. ESTIMATED CHANGES Modified Mathlib/RingTheory/HahnSeries/Multiplication.lean +/- theorem HahnModule.coeff_smul +/- theorem HahnModule.of_add + theorem HahnModule.of_sub +/- theorem HahnModule.of_symm_add + theorem HahnModule.of_symm_sub +/- theorem HahnModule.of_symm_zero +/- theorem HahnModule.of_zero 2025-10-11 15:38:08 b1b0f15 feat(RingTheory): an algebra that is an invertible module is isomorphic to the base ring (#29954) This PR considers the case where we have an `R`-algebra `A` which is also an invertible `R`-module, then constructs an isomorphism between `R` and `A` as `R`-algebras: ```lean variable (R A : Type*) [CommSemiring R] [Semiring A] [Algebra R A] [Module.Invertible R A] def algEquivOfRing : R ≃ₐ[R] A := ``` ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/Equiv.lean + def LinearEquiv.algEquivOfRing Modified Mathlib/RingTheory/PicardGroup.lean + theorem Module.Invertible.algEquivOfRing_apply + theorem Module.Invertible.leftInverse_iff_rightInverse + theorem Module.Invertible.leftInverse_of_rightInverse + def Module.Invertible.linearEquivOfLeftInverse + theorem Module.Invertible.linearEquivOfLeftInverse_apply + theorem Module.Invertible.linearEquivOfLeftInverse_symm_apply + def Module.Invertible.linearEquivOfRightInverse + theorem Module.Invertible.linearEquivOfRightInverse_apply + theorem Module.Invertible.linearEquivOfRightInverse_symm_apply + theorem Module.Invertible.of_isLocalization + theorem Module.Invertible.rightInverse_of_leftInverse 2025-10-11 15:22:30 cfb4670 docs(Analysis.Analytic.IsolatedZeros): Fix name of referenced theorem (#30433) Fix the docstring for AnalyticOnNhd.preimage_mem_codiscreteWithin, the theorem to see also was missing "mem" in its name. ESTIMATED CHANGES Modified Mathlib/Analysis/Analytic/IsolatedZeros.lean 2025-10-11 15:09:00 3da7809 feat: Hahn embedding theorem (#27268) This proves [Hahn embedding theorem](https://en.wikipedia.org/wiki/Hahn_embedding_theorem), one among the 1000+ theorems project. Note on file location: I originally placed it in Algebra/Order/Group, but got prompted that Algebra can't import Analysis (needed for `Real` being a `Rat`-module` and related fact), so now I moved it under HahnSeries ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Order/Module/HahnEmbedding.lean Added Mathlib/RingTheory/HahnSeries/HahnEmbedding.lean + theorem hahnEmbedding_isOrderedAddMonoid + theorem hahnEmbedding_isOrderedModule_rat Modified docs/1000.yaml Modified docs/references.bib 2025-10-11 15:08:58 26fbcd9 feat: introduce Gram matrices (#25883) A Gram matrix has entry `⟪v i, v j⟫` at `i j : n`, where `v : n → α` is an `InnerProductSpace 𝕜 α`. Give this notion and show that Gram matrices are positive semi-definite. This will be used later in order to show that the covariance matrix for Brownian Motion is positive semi-definite. [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/InnerProductSpace/GramMatrix.lean + def Matrix.gram + theorem Matrix.gram_apply + theorem Matrix.gram_single + theorem Matrix.gram_zero + theorem Matrix.isHermitian_gram + theorem Matrix.linearIndependent_of_posDef_gram + theorem Matrix.posDef_gram_iff_linearIndependent + theorem Matrix.posDef_gram_of_linearIndependent + theorem Matrix.posSemidef_gram + theorem Matrix.star_dotProduct_gram_mulVec + theorem Matrix.submatrix_gram Modified Mathlib/MeasureTheory/Function/L2Space.lean + theorem MeasureTheory.L2.inner_indicatorConstLp_indicatorConstLp + theorem MeasureTheory.L2.inner_indicatorConstLp_one_indicatorConstLp_one + theorem MeasureTheory.L2.real_inner_indicatorConstLp_one_indicatorConstLp_one 2025-10-11 14:50:53 2fb8b41 chore(TangentCone): split `uniqueDiffWithinAt_convex` (#30376) I need the new lemma for #24019 ESTIMATED CHANGES Modified Mathlib/Analysis/Calculus/TangentCone.lean + theorem Convex.span_tangentConeAt 2025-10-11 14:31:45 723f276 feat(CategoryTheory): monomorphisms in Type are stable under transfinite compositions (#28219) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/CategoryTheory/Limits/Types/Shapes.lean + theorem CategoryTheory.Limits.Types.Types.pushoutCocone_inr_injective_of_isColimit + theorem CategoryTheory.Limits.Types.Types.pushoutCocone_inr_mono_of_isColimit Added Mathlib/CategoryTheory/Types/Monomorphisms.lean Added MathlibTest/CategoryTheory/TransfiniteComposition.lean 2025-10-11 13:15:51 a2df56f feat(Filter): a finite set is eventually a subset of any exhaustion (#30152) This will be used to prove a sort of compactness result for finite minors of a graph. From the ProofBench workshop ESTIMATED CHANGES Modified Mathlib/Order/Filter/Finite.lean + theorem Filter.eventually_subset_of_finite 2025-10-11 10:18:21 bd2b5c4 feat(Analysis/SpecialFunctions/Log): one trivial fact about posLog (#30369) This is a trivial fact about `posLog`. ESTIMATED CHANGES Modified Mathlib/Analysis/SpecialFunctions/Log/PosLog.lean + theorem Real.posLog_eq_log_max_one 2025-10-11 05:45:29 c4b0fc9 feat: a `PointedCone`-valued version of `Submodule.span` (#28140) This is merely to guide typing. From Toric ESTIMATED CHANGES Modified Mathlib/Geometry/Convex/Cone/Dual.lean +/- theorem PointedCone.dual_span Modified Mathlib/Geometry/Convex/Cone/Pointed.lean +/- theorem PointedCone.mem_toConvexCone + theorem PointedCone.subset_span 2025-10-11 00:32:15 06d95e5 test(TacticAnalysis): ensure `classical`'s effects are picked up (#29501) This test case used to fail, and needed a fix to the `classical` tactic in the standard library: - [x] depends on: https://github.com/leanprover/lean4/pull/10332 ESTIMATED CHANGES Modified MathlibTest/TacticAnalysis.lean + theorem forall_imp_iff_exists_imp 2025-10-10 19:44:16 2b8db8b chore: some renames around `DiscreteTopology` (#30397) Renames: - `forall_open_iff_discrete` to `discreteTopology_iff_forall_isOpen`, for consistency with `discreteTopology_iff_forall_isClosed` - `singletons_open_iff_discrete` to `discreteTopology_iff_isOpen_singleton`, for consistency with `discreteTopology_iff_singleton_mem_nhds` ESTIMATED CHANGES Modified Counterexamples/DiscreteTopologyNonDiscreteUniformity.lean Modified Counterexamples/SorgenfreyLine.lean Modified Mathlib/Geometry/Manifold/ChartedSpace.lean Modified Mathlib/Topology/Algebra/Group/Basic.lean Modified Mathlib/Topology/Algebra/OpenSubgroup.lean Modified Mathlib/Topology/Constructions.lean Modified Mathlib/Topology/Covering.lean Modified Mathlib/Topology/DiscreteQuotient.lean Modified Mathlib/Topology/DiscreteSubset.lean Modified Mathlib/Topology/Instances/Discrete.lean Modified Mathlib/Topology/IsLocalHomeomorph.lean Modified Mathlib/Topology/JacobsonSpace.lean Modified Mathlib/Topology/Order.lean + theorem discreteTopology_iff_forall_isOpen + theorem discreteTopology_iff_isOpen_singleton 2025-10-10 19:12:55 c2f4acd chore: switch arguments of `IsProperMap.comp` (#30406) For consistency with the rest of the library (e.g [Continuous.comp](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Topology/Continuous.html#Continuous.comp)) ESTIMATED CHANGES Modified Mathlib/Topology/Algebra/ProperAction/Basic.lean Modified Mathlib/Topology/Algebra/ProperAction/ProperlyDiscontinuous.lean Modified Mathlib/Topology/Maps/Proper/Basic.lean +/- theorem IsProperMap.comp 2025-10-10 18:04:37 89875f4 refactor: weaken HasPullbacks to HasPullback in MorphismProperty.Limits (#29812) The `HasPullbacks` instance on a category `C` for defining the `baseChange` / pullback functor along a map `f : X -> Y` between their over categories can be weakened to just a `HasPullback` condition on `f`. - [ ] depends on: #29795 ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Limits/Shapes/Pullback/CommSq.lean Modified Mathlib/CategoryTheory/MorphismProperty/Limits.lean +/- theorem CategoryTheory.MorphismProperty.baseChange_map +/- theorem CategoryTheory.MorphismProperty.baseChange_obj 2025-10-10 17:24:26 3a3edd3 feat: the `ConvexCone` generated by a set (#25292) Define `ConvexCone.copy` and `ConvexCone.hull` and use them to golf the `CompleteLattice` instance. From Toric ESTIMATED CHANGES Modified Mathlib/Analysis/Convex/Cone/Basic.lean Modified Mathlib/Geometry/Convex/Cone/Basic.lean + theorem ConvexCone.coe_hull_of_convex + theorem ConvexCone.copy_eq + theorem ConvexCone.disjoint_coe + theorem ConvexCone.disjoint_hull_left_of_convex + theorem ConvexCone.disjoint_hull_right_of_convex + theorem ConvexCone.gc_hull_coe + def ConvexCone.hull + theorem ConvexCone.hull_le_iff + theorem ConvexCone.hull_min + theorem ConvexCone.mem_hull_of_convex + theorem ConvexCone.subset_hull 2025-10-10 16:52:45 5e62b58 feat: add `LaxMonoidal` instance for `Applicative` functors (#30407) Since similar conversions exist for `Functor`s and `Monad`s. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Monoidal/Functor/Types.lean 2025-10-10 16:18:36 5207100 feat(CategoryTheory/MarkovCategory): Add Markov category (#29925) This PR introduces Markov categories, extending copy-discard categories with natural discard to model categorical probability theory. This PR builds on #29939 and #29919 and was split up from #29657. ## Main additions ### 1. Markov categories (`MarkovCategory`) Extends `CopyDiscardCategory` where discard is natural: `f ≫ ε[Y] = ε[X]` for all morphisms `f : X → Y`. This forces a probabilistic interpretation where morphisms preserve normalization (probability measures sum to 1). ## Mathematical significance Markov categories capture probability theory categorically: - Morphisms: Stochastic processes/Markov kernels - Copy: Perfect correlation (both outputs always equal) - Discard: Marginalization (integrating out variables) - Natural discard: Preservation of total probability The same framework handles finite probability (stochastic matrices), measure-theoretic probability (Markov kernels), and quantum probability (completely positive maps). ## Design decisions - Terminal unit follows from axioms. We prove `unit_terminal` and `unit_isTerminal` rather than assuming them ## Implementation notes - Built on top of `CopyDiscardCategory` per suggestion [#mathlib4 > Markov categories PR @ 💬](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Markov.20categories.20PR/near/539656225) - Includes both computational (`unit_terminal`) and categorical (`unit_isTerminal`) characterizations of the terminal object ## References Cho & Jacobs (2019) and Fritz (2020) [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) - [x] depends on: #29939 ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/MarkovCategory/Basic.lean + theorem CategoryTheory.MarkovCategory.eq_discard + def CategoryTheory.MarkovCategory.isTerminalUnit Added MathlibTest/CategoryTheory/MarkovCategory.lean 2025-10-10 15:14:54 1ddcdac chore: update Mathlib dependencies 2025-10-10 (#30401) This PR updates the Mathlib dependencies. [workflow run for this PR](https://github.com/leanprover-community/mathlib4/actions/runs/18408982943) ESTIMATED CHANGES Modified lake-manifest.json 2025-10-10 14:40:00 e978dd5 feat: `thickenedIndicator` is Lipschitz (#30346) ESTIMATED CHANGES Modified Mathlib/Data/ENNReal/Operations.lean + theorem ENNReal.sub_sub_sub_cancel_left Modified Mathlib/Topology/MetricSpace/ThickenedIndicator.lean + theorem lipschitzWith_thickenedIndicator + theorem thickenedIndicatorAux_mono_infEdist + theorem thickenedIndicator_mono_infEdist 2025-10-10 14:00:11 108075f feat(RingTheory/PowerSeries): Multipliable (1 + f i) for when the order tends to infinity (#30210) As `Summable f` and `Multipliable (1 + f ·)` are often related, this shares the same condition as `summable_of_tendsto_order_atTop_nhds_top` ESTIMATED CHANGES Modified Mathlib/RingTheory/MvPowerSeries/PiTopology.lean + theorem MvPowerSeries.WithPiTopology.multipliable_one_add_of_tendsto_order_atTop_nhds_top + theorem MvPowerSeries.WithPiTopology.multipliable_one_add_of_tendsto_weightedOrder_atTop_nhds_top + theorem MvPowerSeries.WithPiTopology.summable_prod_of_tendsto_order_atTop_nhds_top + theorem MvPowerSeries.WithPiTopology.summable_prod_of_tendsto_weightedOrder_atTop_nhds_top Modified Mathlib/RingTheory/PowerSeries/PiTopology.lean + theorem PowerSeries.WithPiTopology.multipliable_one_add_of_tendsto_order_atTop_nhds_top + theorem PowerSeries.WithPiTopology.summable_prod_of_tendsto_order_atTop_nhds_top 2025-10-10 13:18:00 5da8203 ci(update_dependencies.yml): use lake-manifest.json in working directory rather than HEAD (#30381) This fixes an embarrassing mistake in #30095: the script currently compares `lake-manifest.json` in the `update-dependencies-bot-use-only` branch to itself rather than to the changes made in the working directory. This has caused the update workflow to fail to push changes for about a week or so. ESTIMATED CHANGES Modified .github/workflows/update_dependencies.yml 2025-10-10 11:36:11 883384f fix(Tactic/NormNum): do not hang on large powers (#28311) This uses `Lean.checkExponent` to guard against large powers. Unfortunately the log messages it emits are currently swallowed, but surfacing these may require changing the API for norm_num extensions (to live in `OptionT MetaM`) and so is left to future work. ESTIMATED CHANGES Modified Mathlib/Tactic/NormNum/Pow.lean Modified Mathlib/Tactic/Ring/Basic.lean Modified MathlibTest/norm_num.lean + theorem large1 Modified MathlibTest/norm_num_ext.lean 2025-10-10 10:01:13 61e5c4c style: fix capitalisation `Valued.isOpen_closedball -> Valued.isOpen_closedBall` (#30358) ESTIMATED CHANGES Modified Mathlib/Topology/Algebra/Valued/LocallyCompact.lean Modified Mathlib/Topology/Algebra/Valued/ValuationTopology.lean + theorem Valued.isOpen_closedBall - theorem Valued.isOpen_closedball 2025-10-10 10:01:11 fae5d20 chore(Topology/ContinuousMap/CompactlySupported): golf `exists_add_nnrealPart_add_eq` (#30353) This PR shortens the proof of `exists_add_nnrealPart_add_eq`, based on #29866 ESTIMATED CHANGES Modified Mathlib/Topology/ContinuousMap/CompactlySupported.lean 2025-10-10 09:41:45 2e7f87e feat: `IsRoot.mul_div_eq` (#30249) ESTIMATED CHANGES Modified Mathlib/Algebra/Polynomial/FieldDivision.lean Modified Mathlib/RingTheory/AdjoinRoot.lean 2025-10-10 08:52:44 aec4d45 feat(NumberField/IsCM): compute ratio of regulators (#26104) This PR continues the work from #23696. Compute the ratio between the regulator of `K` and the regulator of its maximal real subfield. ESTIMATED CHANGES Modified Mathlib/NumberTheory/NumberField/CMField.lean + theorem NumberField.IsCMField.closure_realFundSystem_sup_torsion + theorem NumberField.IsCMField.equivInfinitePlace_apply + theorem NumberField.IsCMField.equivInfinitePlace_symm_apply + theorem NumberField.IsCMField.regOfFamily_realFunSystem + theorem NumberField.IsCMField.regulator_div_regulator_eq_two_pow_mul_indexRealUnits_inv Modified Mathlib/NumberTheory/NumberField/InfinitePlace/TotallyRealComplex.lean + theorem NumberField.IsTotallyComplex.mult_eq + theorem NumberField.IsTotallyReal.mult_eq 2025-10-10 07:59:54 702baa5 chore(Order/Interval/Set): golf entire `{Icc,Ici,Ico,Iic,Iio,Ioc,Ioi,Ioo}_coe` (#30268) ESTIMATED CHANGES Modified Mathlib/Order/Interval/Set/WithBotTop.lean +/- theorem WithBot.Icc_coe +/- theorem WithBot.Ici_coe +/- theorem WithBot.Ico_coe +/- theorem WithBot.Ioc_coe +/- theorem WithBot.Ioi_coe +/- theorem WithBot.Ioo_coe +/- theorem WithTop.Icc_coe +/- theorem WithTop.Ico_coe +/- theorem WithTop.Iic_coe +/- theorem WithTop.Iio_coe +/- theorem WithTop.Ioc_coe +/- theorem WithTop.Ioo_coe 2025-10-10 06:53:31 029f3b6 refactor: weaken HasPullbacks to HasPullback in Over.Pullback (#29795) Add an abbreviation `HasPullbackAlong f` to mean that all maps into the codomain of `f` have pullbacks along `f`. As discussed in zulip [#mathlib4 > Hom.HasPullback](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Hom.2EHasPullback/with/541055666) The `HasPullbacks` instance on a category `C` for defining the pullback functor along a map `f : X -> Y` between their over categories can be weakened to just a `HasPullbackAlong` condition on `f`. Dually, for `HasPushout` and undercategories. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Comma/Over/Pullback.lean +/- def CategoryTheory.Over.mapPullbackAdj +/- def CategoryTheory.Over.postAdjunctionLeft +/- def CategoryTheory.Over.pullback +/- def CategoryTheory.Over.pullbackComp +/- def CategoryTheory.Under.mapPushoutAdj +/- def CategoryTheory.Under.pushout +/- def CategoryTheory.Under.pushoutComp Modified Mathlib/CategoryTheory/Limits/Shapes/Pullback/HasPullback.lean 2025-10-10 06:35:07 364c5af chore(CategoryTheory/Subpresheaf): golf entire `of_equiv` (#30394) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Subpresheaf/Finite.lean 2025-10-10 05:35:26 4a3989c chore(RingTheory/AdjoinRoot): move `AdjoinRoot.algEquivOfEq` earlier (#30300) Before this PR it was in `Mathlib.FieldTheory.IntermediateField.Adjoin.Basic` and required `Field K`. This PR moves it to `Mathlib.RingTheory.AdjoinRoot` and replaces the `Field` assumption by `CommRing` while simplifying the proof. ESTIMATED CHANGES Modified Mathlib/FieldTheory/IntermediateField/Adjoin/Basic.lean - theorem AdjoinRoot.algEquivOfEq_apply_root - theorem AdjoinRoot.algEquivOfEq_toAlgHom - theorem AdjoinRoot.coe_algEquivOfEq Modified Mathlib/RingTheory/AdjoinRoot.lean +/- theorem AdjoinRoot.aeval_eq + theorem AdjoinRoot.aeval_eq_of_algebra + def AdjoinRoot.algEquivOfEq + theorem AdjoinRoot.algEquivOfEq_root + theorem AdjoinRoot.algEquivOfEq_symm 2025-10-10 02:55:55 81a5aaa feat: C⋆-algebras are spanned by their unitary elements (#30308) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/CStarAlgebra/Unitary/Span.lean + theorem CStarAlgebra.exists_sum_four_unitary + theorem CStarAlgebra.norm_smul_two_inv_smul_add_four_unitary + theorem CStarAlgebra.span_unitary + theorem IsSelfAdjoint.self_add_I_smul_cfcSqrt_sub_sq_mem_unitary + theorem selfAdjoint.realPart_unitarySelfAddISMul + theorem selfAdjoint.star_coe_unitarySelfAddISMul 2025-10-09 20:31:53 6955cd0 chore: drastically speed up `LieModule.Cohomology.d₂₃` (#30377) ESTIMATED CHANGES Modified Mathlib/Algebra/Lie/Cochain.lean 2025-10-09 20:31:52 d71aff6 chore(CategoryTheory/Presentable/IsCardinalFiltered): fix name (#30306) The wrong name `isFiltered_of_isCardinalDirected` is fixed: the correct name is `isFiltered_of_isCardinalFiltered`. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Abelian/GrothendieckCategory/ColimCoyoneda.lean Modified Mathlib/CategoryTheory/Abelian/GrothendieckCategory/Subobject.lean Modified Mathlib/CategoryTheory/Presentable/IsCardinalFiltered.lean - theorem CategoryTheory.isFiltered_of_isCardinalDirected + theorem CategoryTheory.isFiltered_of_isCardinalFiltered Modified Mathlib/CategoryTheory/Presentable/Limits.lean 2025-10-09 20:05:03 d12bacd chore(*): rename note 'CategoryTheory universes' to 'category theory universes' (#30360) Discussed in #23767 but spun off to its own PR to keep the diff smaller. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Adjunction/Opposites.lean Modified Mathlib/CategoryTheory/Category/Basic.lean Modified Mathlib/CategoryTheory/Comma/Arrow.lean Modified Mathlib/CategoryTheory/Comma/Over/Basic.lean Modified Mathlib/CategoryTheory/Comma/StructuredArrow/Basic.lean Modified Mathlib/CategoryTheory/Comma/StructuredArrow/Small.lean Modified Mathlib/CategoryTheory/Core.lean Modified Mathlib/CategoryTheory/Discrete/Basic.lean Modified Mathlib/CategoryTheory/EqToHom.lean Modified Mathlib/CategoryTheory/Functor/Basic.lean Modified Mathlib/CategoryTheory/Functor/Category.lean Modified Mathlib/CategoryTheory/Groupoid.lean Modified Mathlib/CategoryTheory/InducedCategory.lean Modified Mathlib/CategoryTheory/Iso.lean Modified Mathlib/CategoryTheory/Limits/Cones.lean Modified Mathlib/CategoryTheory/Limits/Constructions/Over/Connected.lean Modified Mathlib/CategoryTheory/Limits/FunctorCategory/Basic.lean Modified Mathlib/CategoryTheory/Limits/HasLimits.lean Modified Mathlib/CategoryTheory/Limits/Preserves/Basic.lean Modified Mathlib/CategoryTheory/Monad/Basic.lean Modified Mathlib/CategoryTheory/Monad/Kleisli.lean Modified Mathlib/CategoryTheory/NatTrans.lean Modified Mathlib/CategoryTheory/Opposites.lean Modified Mathlib/CategoryTheory/PEmpty.lean Modified Mathlib/CategoryTheory/PUnit.lean Modified Mathlib/CategoryTheory/Types/Basic.lean Modified Mathlib/CategoryTheory/Yoneda.lean Modified Mathlib/Combinatorics/Quiver/Basic.lean Modified Mathlib/Data/Opposite.lean 2025-10-09 19:29:37 a2e710e feat: the Laplacian in Real is the second derivative (#30384) ESTIMATED CHANGES Modified Mathlib/Analysis/InnerProductSpace/Laplacian.lean + theorem InnerProductSpace.laplacianWithin_eq_iteratedDerivWithin_real + theorem InnerProductSpace.laplacian_eq_iteratedDeriv_real 2025-10-09 19:29:35 8b55e79 chore: use `fun_prop` in Homeomorph (#28929) Let's make the continuity auto-parameters use `fun_prop`, instead of `continuity`. Open question: should we use `first |fun_prop; |dsimp; fun_prop` instead? ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Group/Measure.lean Modified Mathlib/Topology/Algebra/Algebra/Equiv.lean Modified Mathlib/Topology/Algebra/Constructions/DomMulAct.lean Modified Mathlib/Topology/Algebra/ContinuousMonoidHom.lean Modified Mathlib/Topology/Constructions/SumProd.lean Modified Mathlib/Topology/Homeomorph/Defs.lean 2025-10-09 18:59:44 14871d5 chore(Topology): some more fun_prop tagging (#23137) ESTIMATED CHANGES Modified Mathlib/Dynamics/Flow.lean Modified Mathlib/Topology/Algebra/Monoid.lean 2025-10-09 18:05:05 7014959 feat(Analysis/Polynomial/MahlerMeasure): add a couple of easy facts (#30370) We add a couple of easy facts about `mahlerMeasure`. ESTIMATED CHANGES Modified Mathlib/Analysis/Polynomial/MahlerMeasure.lean + theorem Polynomial.logMahlerMeasure_mul_eq_add_logMahelerMeasure + theorem Polynomial.mahlerMeasure_pos_of_ne_zero + theorem Polynomial.prod_mahlerMeasure_eq_mahlerMeasure_prod 2025-10-09 18:05:03 afac0c2 feat(LinearAlgebra): roots of charpoly are the eigenvalues/spectrum (#29478) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/LinearAlgebra/Determinant.lean +/- theorem LinearMap.bot_lt_ker_of_det_eq_zero + theorem LinearMap.det_eq_zero_iff_ker_ne_bot + theorem LinearMap.finite_of_det_ne_one Added Mathlib/LinearAlgebra/Eigenspace/Charpoly.lean + theorem Module.End.hasEigenvalue_iff_isRoot_charpoly + theorem Module.End.mem_spectrum_iff_isRoot_charpoly Modified Mathlib/LinearAlgebra/Eigenspace/Matrix.lean + theorem LinearMap.spectrum_toMatrix' + theorem LinearMap.spectrum_toMatrix +/- theorem Matrix.maxGenEigenspace_toLin'_diagonal_eq_eigenspace +/- theorem Matrix.maxGenEigenspace_toLin_diagonal_eq_eigenspace + theorem Matrix.spectrum_toLin' + theorem Matrix.spectrum_toLin Modified Mathlib/LinearAlgebra/Matrix/Charpoly/Eigs.lean +/- theorem Matrix.det_eq_prod_roots_charpoly +/- theorem Matrix.det_eq_prod_roots_charpoly_of_splits + theorem Matrix.mem_spectrum_iff_isRoot_charpoly + theorem Matrix.mem_spectrum_of_isRoot_charpoly +/- theorem Matrix.trace_eq_sum_roots_charpoly +/- theorem Matrix.trace_eq_sum_roots_charpoly_of_splits 2025-10-09 17:08:11 16d3e09 feat(Order/ScottContinuity): Scott continuity on product spaces (#26338) Some further results on Scott Continuity: - `scottContinuous_iff_map_sSup`: `f` is Scott continuous if and only if it commutes with `sSup` on directed sets - `ScottContinuous_prod_of_ScottContinuous`: `f` is Scott continuous on a product space if it is Scott continuous in each variable - `ScottContinuousOn.inf₂`: For complete linear orders, the meet operation is Scott continuous ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Order/Bounds/Basic.lean + theorem IsGLB.prod + theorem IsLUB.prod + theorem lowerBounds_prod + theorem upperBounds_prod Modified Mathlib/Order/ScottContinuity.lean Added Mathlib/Order/ScottContinuity/Complete.lean + theorem ScottContinuous.inf₂ + theorem scottContinuous_iff_map_sSup + theorem scottContinuous_inf_left + theorem scottContinuous_inf_right Added Mathlib/Order/ScottContinuity/Prod.lean + theorem ScottContinuous.fromProd + theorem ScottContinuous.prod + theorem ScottContinuousOn.fromProd 2025-10-09 16:24:41 724a6cb feat(Cardinal/Finite): ENat powers and cardinality (#27216) This PR continues the work from #25574. Original PR: https://github.com/leanprover-community/mathlib4/pull/25574 ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Data/ENat/Basic.lean Added Mathlib/Data/ENat/Pow.lean + theorem ENat.epow_add + theorem ENat.epow_eq_one_iff + theorem ENat.epow_eq_zero_iff + theorem ENat.epow_left_mono + theorem ENat.epow_mul + theorem ENat.epow_natCast + theorem ENat.epow_one + theorem ENat.epow_right_mono + theorem ENat.epow_top + theorem ENat.epow_zero + theorem ENat.mul_epow + theorem ENat.one_epow + theorem ENat.one_le_epow + theorem ENat.top_epow + theorem ENat.top_epow_top + theorem ENat.zero_epow + theorem ENat.zero_epow_top Modified Mathlib/SetTheory/Cardinal/Finite.lean + theorem ENat.card_eq_one_iff_unique + theorem ENat.card_fun +/- theorem ENat.card_prod + theorem ENat.one_le_card_iff_nonempty 2025-10-09 15:27:05 0d2a45f feat: `UniformEquiv.subtype` (#30361) `e : α ≃ᵤ β` lifts to subtypes `{ a : α // p a } ≃ᵤ { b : β // q b }` provided `p = q ∘ e`. ESTIMATED CHANGES Modified Mathlib/Topology/UniformSpace/Basic.lean + theorem UniformContinuous.subtype_map Modified Mathlib/Topology/UniformSpace/Equiv.lean + def UniformEquiv.subtype 2025-10-09 13:58:12 cc0d5cb feat(IsCyclotomicExtension): some results for the sub-algebra case (#29665) We add some results about cyclotomic extensions which are also contained in an extension `A ⊆ B` of rings. In this case, the cyclotomic extension `IsCyclotomicExtension S A C` is determined by `S` and thus we can prove various statements such as the fact that the compositum of `A[ζₙ]` and `A[ζₘ]` is `A[ζₗ]` where `l` is the lcm of `n` and `m`. ESTIMATED CHANGES Modified Mathlib/NumberTheory/Cyclotomic/Basic.lean + theorem IntermediateField.isCyclotomicExtension_eq + theorem IntermediateField.isCyclotomicExtension_lcm_sup + theorem IntermediateField.isCyclotomicExtension_le_of_dvd + theorem IntermediateField.isCyclotomicExtension_singleton_iff_eq_adjoin - theorem IsCyclotomicExtension.empty + theorem IsCyclotomicExtension.eq + theorem IsCyclotomicExtension.isCyclotomicExtension_zero_iff + theorem IsCyclotomicExtension.lcm_sup + theorem IsCyclotomicExtension.le_of_dvd + theorem IsCyclotomicExtension.mem_of_pow_eq_one + theorem isCyclotomicExtension_iff_eq_adjoin + theorem isCyclotomicExtension_singleton_iff_eq_adjoin 2025-10-09 13:01:55 b7b295a chore (Topology/UniformSpace/Ultra): deprecate `IsTransitiveRel.mem_filter_prod_comm` (#30319) ESTIMATED CHANGES Modified Mathlib/Topology/UniformSpace/Ultra/Basic.lean - theorem IsTransitiveRel.mem_filter_prod_comm Modified Mathlib/Topology/UniformSpace/Ultra/Completion.lean 2025-10-09 13:01:52 946a829 feat(AlgebraicTopology/SimplicialSet): nondegenerate simplices in the standard simplex (#28395) In this PR, we show that `d`-dimensional nondegenerate simplices in `Δ[n]` identify to `Fin (d + 1) ↪o Fin (n + 1)`. (This PR also contains some general additional API for (non)degenerate simplices. For this reason, three definitions related to subcomplexes generated by a simplex had to be moved from `StdSimplex.lean` to `Subcomplex.lean`.) ESTIMATED CHANGES Modified Mathlib/AlgebraicTopology/SimplicialSet/Degenerate.lean + theorem SSet.Subcomplex.degenerate_eq_top_iff + theorem SSet.Subcomplex.eq_top_iff_contains_nonDegenerate + theorem SSet.Subcomplex.iSup_ofSimplex_nonDegenerate_eq_top + theorem SSet.Subcomplex.le_iff_contains_nonDegenerate + theorem SSet.Subcomplex.mem_degenerate_iff + theorem SSet.Subcomplex.mem_nonDegenerate_iff + theorem SSet.degenerate_app_apply + theorem SSet.degenerate_iff_of_isIso + theorem SSet.degenerate_iff_of_mono + theorem SSet.degenerate_le_preimage + theorem SSet.image_degenerate_le + def SSet.nonDegenerateEquivOfIso + theorem SSet.nonDegenerate_iff_of_isIso + theorem SSet.nonDegenerate_iff_of_mono Modified Mathlib/AlgebraicTopology/SimplicialSet/Simplices.lean Modified Mathlib/AlgebraicTopology/SimplicialSet/StdSimplex.lean - theorem SSet.Subcomplex.mem_ofSimplex_obj - theorem SSet.Subcomplex.mem_ofSimplex_obj_iff - theorem SSet.Subcomplex.ofSimplex_le_iff + def SSet.stdSimplex.isoNerve + theorem SSet.stdSimplex.isoNerve_hom_app_apply + theorem SSet.stdSimplex.isoNerve_inv_app_apply + theorem SSet.stdSimplex.mem_nonDegenerate_iff_mono + theorem SSet.stdSimplex.mem_nonDegenerate_iff_strictMono + theorem SSet.stdSimplex.monotone_apply + def SSet.stdSimplex.nonDegenerateEquiv + theorem SSet.stdSimplex.objEquiv_symm_mem_nonDegenerate_iff_mono Modified Mathlib/AlgebraicTopology/SimplicialSet/Subcomplex.lean + theorem SSet.Subcomplex.mem_ofSimplex_obj + theorem SSet.Subcomplex.mem_ofSimplex_obj_iff + theorem SSet.Subcomplex.ofSimplex_le_iff + theorem SSet.Subcomplex.toRange_app_val + theorem SSet.Subcomplex.toRange_ι Modified Mathlib/Order/Hom/Basic.lean + def ULift.orderIso 2025-10-09 12:15:26 e11b36c feat: interpret `HasTemperateGrowth` in terms of `IsBigO` (#30251) Prompted by some thinking about #30176 ESTIMATED CHANGES Modified Mathlib/Analysis/Distribution/SchwartzSpace.lean + theorem Function.HasTemperateGrowth.isBigO + theorem Function.HasTemperateGrowth.isBigO_uniform + theorem Function.hasTemperateGrowth_iff_isBigO 2025-10-09 12:15:24 6a1dc6b feat(GroupTheory): add DivisibleHull (#29275) This is part of Hahn embedding theorem #27268, where an a ordered group is first embedded in a divisible group / Q-module. I am aware at #25662 there is also an ongoing rewrite of `LocalizedModule` that this PR uses. Hopefully I avoided interfering it by using mostly with public API. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Order/Monoid/Defs.lean + theorem IsOrderedCancelMonoid.of_mul_lt_mul_left Added Mathlib/Algebra/Order/Monoid/PNat.lean + def PNat.equivNonZeroDivisorsNat Modified Mathlib/Algebra/Order/Monoid/Unbundled/Pow.lean - theorem le_of_pow_le_pow_left' + theorem pow_le_pow_iff_left Modified Mathlib/Data/NNRat/Defs.lean +/- theorem NNRat.divNat_zero + theorem NNRat.mk_zero Added Mathlib/GroupTheory/DivisibleHull.lean + theorem DivisibleHull.archimedeanClassMk_mk_eq + def DivisibleHull.archimedeanClassOrderHom + def DivisibleHull.archimedeanClassOrderHomInv + def DivisibleHull.archimedeanClassOrderIso + theorem DivisibleHull.archimedeanClassOrderIso_apply + theorem DivisibleHull.archimedeanClassOrderIso_symm_apply + def DivisibleHull.coeAddMonoidHom + def DivisibleHull.coeOrderAddMonoidHom + theorem DivisibleHull.coe_add + theorem DivisibleHull.coe_inj + theorem DivisibleHull.coe_injective + theorem DivisibleHull.ind + def DivisibleHull.liftOn + theorem DivisibleHull.liftOn_mk + def DivisibleHull.liftOn₂ + theorem DivisibleHull.liftOn₂_mk + def DivisibleHull.mk + theorem DivisibleHull.mk_add_mk + theorem DivisibleHull.mk_add_mk_left + theorem DivisibleHull.mk_eq_mk + theorem DivisibleHull.mk_eq_mk_iff_smul_eq_smul + theorem DivisibleHull.mk_le_mk + theorem DivisibleHull.mk_left_injective + theorem DivisibleHull.mk_lt_mk + theorem DivisibleHull.mk_zero + theorem DivisibleHull.neg_mk + theorem DivisibleHull.nnqsmul_mk + theorem DivisibleHull.nsmul_mk + theorem DivisibleHull.qsmul_def + theorem DivisibleHull.qsmul_mk + theorem DivisibleHull.qsmul_of_nonneg + theorem DivisibleHull.qsmul_of_nonpos + theorem DivisibleHull.zero_qsmul + theorem DivisibleHull.zsmul_mk 2025-10-09 11:58:52 b68e7aa chore(Topology/Category): golf entire `finiteCoproduct.ι_desc_apply`, `piIsoPi_hom_apply`, `prodIsoProd_hom_apply` and `pullbackIsoProdSubtype_hom_apply` using `tauto` and `rfl` (#28574) ESTIMATED CHANGES Modified Mathlib/Topology/Category/CompHausLike/Limits.lean Modified Mathlib/Topology/Category/TopCat/Limits/Products.lean Modified Mathlib/Topology/Category/TopCat/Limits/Pullbacks.lean 2025-10-09 10:59:05 d554a18 refactor: make library notes a definition (#23767) Make library notes a definition of `Unit` type, whose doc-string is the note's content. As a consequence, - doc-gen will display all library notes without any custom logic, - library notes are shown upon hover (via the use of the doc-string), - go to definition for library notes is easy Automate this using a macro, which also enforces that all library notes are inside the Mathlib.LibraryNote namespace. *Temporarily*, we use the `library_note2` name; if/when the batteries version is changed, we can reclaim the original name. This PR does not address how to *refer* to library notes nicely (in a way that is shown in the documentation, checked for typos, with sufficient imports ensured etc.). That is left to a future PR. This is proposal 2a from this zulip discussion: [#mathlib4 > library notes @ 💬](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/library.20notes/near/510614740) ESTIMATED CHANGES Modified Archive/Imo/Imo2019Q2.lean Modified Mathlib/Algebra/BigOperators/Group/Finset/Defs.lean Modified Mathlib/Algebra/Category/Ring/Limits.lean Modified Mathlib/Algebra/Group/Action/Defs.lean Modified Mathlib/Algebra/Group/Conj.lean Modified Mathlib/Algebra/Group/Defs.lean Modified Mathlib/Algebra/Group/Hom/Defs.lean Modified Mathlib/Algebra/Group/Pointwise/Set/Basic.lean Modified Mathlib/Algebra/Group/Pointwise/Set/Scalar.lean Modified Mathlib/Algebra/Group/Submonoid/Operations.lean Modified Mathlib/Algebra/HierarchyDesign.lean Modified Mathlib/Algebra/Order/Hom/Basic.lean Modified Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Note.lean Modified Mathlib/Analysis/RCLike/Lemmas.lean Modified Mathlib/CategoryTheory/Category/Basic.lean Modified Mathlib/Data/NNRat/Defs.lean Modified Mathlib/Data/Nat/Cast/Defs.lean Modified Mathlib/Data/Nat/Init.lean Modified Mathlib/Geometry/Manifold/Algebra/Monoid.lean Modified Mathlib/Geometry/Manifold/ChartedSpace.lean Modified Mathlib/Logic/Basic.lean Modified Mathlib/Tactic/Basic.lean + def LibraryNote Modified Mathlib/Tactic/NormNum/Basic.lean Modified Mathlib/Tactic/SetLike.lean Modified Mathlib/Tactic/Simps/Basic.lean Modified Mathlib/Topology/Algebra/InfiniteSum/Defs.lean Modified Mathlib/Topology/Algebra/Nonarchimedean/Bases.lean Modified Mathlib/Topology/Continuous.lean 2025-10-09 10:29:52 14d639d feat(Geometry/Euclidean/Incenter): touchpoints in `interior` and `Sbtw` (#29837) Add lemmas showing that touchpoints for the incenter are in the interior of a face, as is the touchpoint opposite a vertex for the excenter opposite that vertex, and corresponding `Sbtw` statements in the case of a triangle including `Sbtw` statements about the other touchpoints (not in the interior of a side) for an excenter in that case. The `Sbtw` statements are expected to be used in followups together with #29656 to give statements about the incenter and excenters lying on angle bisectors as expressed in terms of angles involving vertices rather than touchpoints. ESTIMATED CHANGES Modified Mathlib/Geometry/Euclidean/Incenter.lean + theorem Affine.Simplex.sign_excenterWeights_singleton_neg + theorem Affine.Simplex.sign_excenterWeights_singleton_pos + theorem Affine.Simplex.sign_touchpointWeights_singleton_neg + theorem Affine.Simplex.sign_touchpointWeights_singleton_pos + theorem Affine.Simplex.touchpointWeights_empty_pos +/- theorem Affine.Simplex.touchpointWeights_eq_zero + theorem Affine.Simplex.touchpointWeights_singleton_neg + theorem Affine.Simplex.touchpointWeights_singleton_pos + theorem Affine.Simplex.touchpoint_empty_mem_interior_faceOpposite + theorem Affine.Simplex.touchpoint_singleton_mem_interior_faceOpposite + theorem Affine.Triangle.sbtw_touchpoint_empty + theorem Affine.Triangle.sbtw_touchpoint_singleton + theorem Affine.Triangle.touchpoint_singleton_sbtw 2025-10-09 10:11:32 66ed00a feat(AlgebraicTopology): the type of non degenerate simplices of a simplicial set (#28224) In this PR, we introduce the ordered type `X.N` of nondegenerate simplices in a simplicial set `X`. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/AlgebraicTopology/SimplicialSet/Degenerate.lean + theorem SSet.mono_of_nonDegenerate Added Mathlib/AlgebraicTopology/SimplicialSet/NonDegenerateSimplices.lean + theorem SSet.N.cast_eq_self + theorem SSet.N.dim_le_of_le + theorem SSet.N.dim_lt_of_lt + theorem SSet.N.eq_iff + theorem SSet.N.le_iff + theorem SSet.N.le_iff_exists_mono + theorem SSet.N.mk'_surjective + def SSet.N.mk + theorem SSet.N.mk_surjective + theorem SSet.N.subcomplex_injective + theorem SSet.N.subcomplex_injective_iff + structure SSet.N + theorem SSet.S.existsUnique_n + theorem SSet.S.subcomplex_toN + theorem SSet.S.toN_eq_iff + def SSet.orderEmbeddingN Modified Mathlib/AlgebraicTopology/SimplicialSet/StdSimplex.lean + theorem SSet.Subcomplex.mem_ofSimplex_obj_iff Modified Mathlib/CategoryTheory/EpiMono.lean + def CategoryTheory.SplitEpi.op + def CategoryTheory.SplitMono.op 2025-10-09 10:11:29 4d783e9 feat(Combinatorics/Additive/VerySmallDoubling): weak non-commutative Kneser's theorem (#26660) add theorem about the structure of a doubling smaller than the golden ratio ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Action/Pointwise/Finset.lean + theorem Finset.mul_mem_smul_finset_iff Modified Mathlib/Combinatorics/Additive/VerySmallDoubling.lean + theorem Finset.doubling_lt_golden_ratio 2025-10-09 09:24:31 3305d4b feat(Algebra/Group/Submonoid): add `(Add)Submonoid.closure_pi` (#29823) This generalizes and moves some proofs from subgroups to submonoids in order to add `(Add)Submonoid.closure_pi`. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Group/Subgroup/Finite.lean + theorem Subgroup.closure_pi Added Mathlib/Algebra/Group/Submonoid/Finite.lean + theorem Submonoid.closure_pi + theorem Submonoid.pi_le_iff + theorem Submonoid.pi_mem_of_mulSingle_mem + theorem Submonoid.pi_mem_of_mulSingle_mem_aux 2025-10-09 09:24:29 917d337 feat(Geometry/Euclidean/Angle/Bisector): bisecting angles and equal distances (#29656) Prove a lemma ```lean /-- A point `p` is equidistant to two affine subspaces if and only if the angles at a point `p'` in their intersection between `p` and its orthogonal projections onto the subspaces are equal. -/ lemma dist_orthogonalProjection_eq_iff_angle_eq {p p' : P} {s₁ s₂ : AffineSubspace ℝ P} [s₁.direction.HasOrthogonalProjection] [s₂.direction.HasOrthogonalProjection] (hp' : p' ∈ s₁ ⊓ s₂) : haveI : Nonempty s₁ := ⟨p', hp'.1⟩ haveI : Nonempty s₂ := ⟨p', hp'.2⟩ dist p (orthogonalProjection s₁ p) = dist p (orthogonalProjection s₂ p) ↔ ∠ p p' (orthogonalProjection s₁ p) = ∠ p p' (orthogonalProjection s₂ p) := by ``` that gives the basic fact relating equal distances to affine subspaces, and bisecting angles involving those subspaces, needed to connect `incenter` and `excenter` to bisecting angles. (Other pieces involved in getting such a statement for angles involving vertices of a triangle rather than just touchpoints include #29410, #29413, #29418 and their dependencies.) I expect the new file `Bisector.lean` to be an appropriate place to end up with actual definitions of bisectors as submodules and affine subspaces; those definitions aren't needed for my immediate goals with `incenter` and `excenter`, but it seems appropriate to use such a file for lemmas relating to bisectors whether or not they explicitly involve such definitions. I do expect to add similar statements involving oriented angles in a followup, so the imports of this new file should be expected to increase. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Geometry/Euclidean/Angle/Bisector.lean + theorem EuclideanGeometry.dist_orthogonalProjection_eq_iff_angle_eq 2025-10-09 08:14:14 1ed2bab feat: remove separability assumption from Algebra.isIntegral_norm (#30323) We generalize `Algebra.isIntegral_norm` removing the assumption that `L/K` is separable. ESTIMATED CHANGES Modified Mathlib/NumberTheory/NumberField/Norm.lean +/- theorem RingOfIntegers.algebraMap_norm_algebraMap +/- theorem RingOfIntegers.coe_algebraMap_norm +/- theorem RingOfIntegers.coe_norm +/- theorem RingOfIntegers.norm_algebraMap +/- theorem RingOfIntegers.norm_norm Modified Mathlib/RingTheory/Ideal/Norm/RelNorm.lean +/- theorem Ideal.relNorm_le_comap +/- theorem Ideal.spanNorm_le_comap Modified Mathlib/RingTheory/IntegralClosure/IntegralRestrict.lean +/- def Algebra.intNormAux +/- theorem Algebra.map_intNormAux Modified Mathlib/RingTheory/Norm/Basic.lean - theorem Algebra.isIntegral_norm Modified Mathlib/RingTheory/Norm/Transitivity.lean + theorem Algebra.isIntegral_norm Modified Mathlib/RingTheory/Polynomial/Eisenstein/IsIntegral.lean 2025-10-09 08:14:12 03556d0 feat(Data/Nat/BinaryRec): equational lemmas for variants of binary recursion (#30221) Adds the missing equational lemmas for `binaryRec'` and `binaryRecFromOne`. The statements and implicitness are chosen to match the existing ones for `binaryRec`, which seem to work quite well. ESTIMATED CHANGES Modified Mathlib/Data/Nat/BinaryRec.lean + theorem Nat.binaryRec'_eq + theorem Nat.binaryRec'_one + theorem Nat.binaryRec'_zero + theorem Nat.binaryRecFromOne_eq + theorem Nat.binaryRecFromOne_one + theorem Nat.binaryRecFromOne_zero 2025-10-09 08:14:10 dc9234a feat: Fernique's theorem for Gaussian distributions (#30167) For a Gaussian measure on a second-countable normed space, there exists `C > 0` such that the function `x ↦ exp (C * ‖x‖ ^ 2)` is integrable. As a consequence, a Gaussian measure in a second-countable Banach space has finite moments of all orders. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Order/Field/Basic.lean + theorem two_mul_le_add_mul_sq Modified Mathlib/Probability/Distributions/Gaussian/Basic.lean Added Mathlib/Probability/Distributions/Gaussian/Fernique.lean + theorem ProbabilityTheory.IsGaussian.charFunDual_eq_of_forall_strongDual_eq_zero + theorem ProbabilityTheory.IsGaussian.charFunDual_eq_of_integral_eq_zero + theorem ProbabilityTheory.IsGaussian.eq_dirac_of_variance_eq_zero + theorem ProbabilityTheory.IsGaussian.exists_integrable_exp_sq + theorem ProbabilityTheory.IsGaussian.integrable_exp_sq_of_conv_neg + theorem ProbabilityTheory.IsGaussian.integrable_fun_id + theorem ProbabilityTheory.IsGaussian.integrable_id + theorem ProbabilityTheory.IsGaussian.integral_dual + theorem ProbabilityTheory.IsGaussian.integral_dual_conv_map_neg_eq_zero + theorem ProbabilityTheory.IsGaussian.map_rotation_eq_self + theorem ProbabilityTheory.IsGaussian.map_rotation_eq_self_of_forall_strongDual_eq_zero + theorem ProbabilityTheory.IsGaussian.memLp_id + theorem ProbabilityTheory.IsGaussian.memLp_two_fun_id + theorem ProbabilityTheory.IsGaussian.memLp_two_id + theorem ProbabilityTheory.IsGaussian.noAtoms Modified docs/1000.yaml 2025-10-09 08:14:09 67f5eec feat: composing a continuous multilinear map with continuous linear maps is analytic in both variables (#30111) ESTIMATED CHANGES Modified Mathlib/Analysis/Analytic/CPolynomial.lean + theorem ContinuousMultilinearMap.analyticAt_uncurry_compContinuousLinearMap + theorem ContinuousMultilinearMap.analyticAt_uncurry_of_linear + theorem ContinuousMultilinearMap.analyticOnNhd_uncurry_compContinuousLinearMap + theorem ContinuousMultilinearMap.analyticOnNhd_uncurry_of_linear + theorem ContinuousMultilinearMap.analyticOn_uncurry_compContinuousLinearMap + theorem ContinuousMultilinearMap.analyticOn_uncurry_of_linear + theorem ContinuousMultilinearMap.analyticWithinAt_uncurry_compContinuousLinearMap + theorem ContinuousMultilinearMap.analyticWithinAt_uncurry_of_linear + theorem ContinuousMultilinearMap.cpolynomialAt_uncurry_compContinuousLinearMap + theorem ContinuousMultilinearMap.cpolynomialAt_uncurry_of_linear + theorem ContinuousMultilinearMap.cpolynomialOn_uncurry_compContinuousLinearMap + theorem ContinuousMultilinearMap.cpolyomialOn_uncurry_of_linear Modified Mathlib/Analysis/NormedSpace/Multilinear/Basic.lean + theorem ContinuousLinearMap.coe_flipMultilinearEquiv + theorem ContinuousLinearMap.coe_symm_flipMultilinearEquiv + theorem ContinuousLinearMap.flipLinear_flipMultilinear + def ContinuousLinearMap.flipMultilinearEquiv + def ContinuousLinearMap.flipMultilinearEquivₗ + def ContinuousMultilinearMap.flipLinear + theorem ContinuousMultilinearMap.flipMultilinear_flipLinear 2025-10-09 08:14:07 760bc88 chore: move some results from `Analysis/Normed/Algebra/Spectrum` to `Analysis/{Real, Complex}/Spectrum` (#29916) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Instances.lean Added Mathlib/Analysis/Complex/Spectrum.lean + theorem QuasispectrumRestricts.real_iff + theorem SpectrumRestricts.real_iff Modified Mathlib/Analysis/Normed/Algebra/Spectrum.lean - theorem QuasispectrumRestricts.le_nnreal_iff - theorem QuasispectrumRestricts.lt_nnreal_iff - theorem QuasispectrumRestricts.nnreal_iff - theorem QuasispectrumRestricts.nnreal_of_nonneg - theorem QuasispectrumRestricts.real_iff - theorem SpectrumRestricts.le_nnreal_iff - theorem SpectrumRestricts.lt_nnreal_iff - theorem SpectrumRestricts.nnreal_iff - theorem SpectrumRestricts.nnreal_le_iff - theorem SpectrumRestricts.nnreal_lt_iff - theorem SpectrumRestricts.nnreal_of_nonneg - theorem SpectrumRestricts.real_iff - theorem coe_mem_spectrum_real_of_nonneg Added Mathlib/Analysis/Real/Spectrum.lean + theorem QuasispectrumRestricts.le_nnreal_iff + theorem QuasispectrumRestricts.lt_nnreal_iff + theorem QuasispectrumRestricts.nnreal_iff + theorem QuasispectrumRestricts.nnreal_of_nonneg + theorem SpectrumRestricts.le_nnreal_iff + theorem SpectrumRestricts.lt_nnreal_iff + theorem SpectrumRestricts.nnreal_iff + theorem SpectrumRestricts.nnreal_le_iff + theorem SpectrumRestricts.nnreal_lt_iff + theorem SpectrumRestricts.nnreal_of_nonneg + theorem coe_mem_spectrum_real_of_nonneg 2025-10-09 08:14:05 6011733 chore(Algebra/Order/BigOperators/Group/{Finset, Multiset}): generalize results to `(Mul)(Add)LeftMono` (#29864) Generalize some stuff from `IsOrdered(Add)Monoid` to `(Mul)(Add)LeftMono`. ESTIMATED CHANGES Modified Mathlib/Algebra/Order/BigOperators/Group/Finset.lean +/- theorem Finset.abs_sum_of_nonneg' +/- theorem Finset.abs_sum_of_nonneg +/- theorem Finset.apply_union_le_sum +/- theorem Finset.exists_lt_of_prod_lt' +/- theorem Finset.le_prod_nonempty_of_submultiplicative +/- theorem Finset.le_prod_nonempty_of_submultiplicative_on_pred +/- theorem Finset.le_prod_of_submultiplicative +/- theorem Finset.le_prod_of_submultiplicative_on_pred +/- theorem Finset.mul_le_prod +/- theorem Finset.one_le_prod'' +/- theorem Finset.one_le_prod' +/- theorem Finset.one_lt_prod_iff_of_one_le +/- theorem Finset.pow_card_le_prod +/- theorem Finset.prod_eq_one_iff_of_le_one' +/- theorem Finset.prod_eq_one_iff_of_one_le' +/- theorem Finset.prod_fiberwise_le_prod_of_one_le_prod_fiber' +/- theorem Finset.prod_image_le_of_one_le +/- theorem Finset.prod_le_one' +/- theorem Finset.prod_le_pow_card +/- theorem Finset.prod_le_prod' +/- theorem Finset.prod_le_prod_fiberwise_of_prod_fiber_le_one' +/- theorem Finset.prod_le_prod_of_subset_of_one_le' +/- theorem Finset.prod_le_univ_prod_of_one_le' +/- theorem Finset.prod_lt_one_iff_of_le_one +/- theorem Finset.prod_mono_set_of_one_le' +/- theorem Finset.single_le_prod' Modified Mathlib/Algebra/Order/BigOperators/Group/Multiset.lean +/- theorem Multiset.all_one_of_le_one_le_of_prod_eq_one +/- theorem Multiset.one_le_prod_of_one_le +/- theorem Multiset.pow_card_le_prod +/- theorem Multiset.prod_le_pow_card +/- theorem Multiset.prod_le_prod_map +/- theorem Multiset.prod_le_prod_of_rel_le +/- theorem Multiset.prod_map_le_prod +/- theorem Multiset.prod_map_le_prod_map +/- theorem Multiset.single_le_prod Modified Mathlib/Algebra/Order/Group/Int/Sum.lean Modified Mathlib/Data/NNRat/BigOperators.lean Modified Mathlib/Tactic/Positivity/Finset.lean 2025-10-09 07:55:49 41c5057 feat(Algebra/HahnEmbedding): ArchimedeanStrata is non-empty (#30101) This is a small part of #27268 (Hahn embedding theorem). Separated out for easy review while waiting for the other dependency. ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Module/HahnEmbedding.lean 2025-10-09 02:34:28 5592362 feat: the Hölder conjugate of an `ENNReal` (#30174) ESTIMATED CHANGES Modified Mathlib/Data/Real/ConjExponents.lean + theorem ENNReal.HolderConjugate.inv_one_sub_inv' 2025-10-09 01:02:37 0b0ba00 chore(SimpleGraph/Subgraph): remove duplicate def and fix names (#29690) We previously had `Subgraph.topEquiv` and `Subgraph.topIso` for the graph isomorphism `(⊤ : G.Subgraph).coe ≃g G`. `Subgraph.topIso` seems preferable as a name for this so this PR deprecates the other name. Also rename and deprecate `Subgraph.botEquiv` to `Subgraph.botIso`. ESTIMATED CHANGES Modified Mathlib/Combinatorics/SimpleGraph/Subgraph.lean - def SimpleGraph.Subgraph.botEquiv + def SimpleGraph.Subgraph.botIso - def SimpleGraph.Subgraph.topEquiv 2025-10-08 22:58:46 3540854 feat (Algebra/Lie): Define low-degree cochains and differentials (#29154) This PR defines 1-cochains and 2-cochains of a Lie algebra `L` with coefficients in an `L`-module `M`. This special case is useful for constructing central extensions of Lie algebras, while not needing the general machinery of Lie algebra cohomology. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Lie/Abelian.lean + def TrivialLieModule.equiv + def TrivialLieModule Added Mathlib/Algebra/Lie/Cochain.lean + theorem LieModule.Cohomology.add_apply_apply + def LieModule.Cohomology.d₁₂ + theorem LieModule.Cohomology.d₁₂_apply_apply + theorem LieModule.Cohomology.d₁₂_apply_apply_ofTrivial + def LieModule.Cohomology.d₂₃ + theorem LieModule.Cohomology.d₂₃_apply + theorem LieModule.Cohomology.d₂₃_comp_d₁₂ + theorem LieModule.Cohomology.mem_twoCocycle_iff + theorem LieModule.Cohomology.mem_twoCocycle_iff_of_trivial + theorem LieModule.Cohomology.smul_apply_apply + def LieModule.Cohomology.twoCochain + theorem LieModule.Cohomology.twoCochain_alt + theorem LieModule.Cohomology.twoCochain_skew + theorem LieModule.Cohomology.twoCochain_val_apply + def LieModule.Cohomology.twoCocycle 2025-10-08 22:31:47 9ccce5c feat (TopCat.Sphere) : add the open ball, instances (#29789) * Adds `𝔹 n`, the open `n`-ball, as a bundled object in `TopCat`, and accompanying notation and inclusion hom * Adds instances witnessing that both inclusions are mono and that the disk and disk-boundary are compact ESTIMATED CHANGES Modified Mathlib/Topology/Category/TopCat/Sphere.lean + def TopCat.ballInclusion Modified Mathlib/Topology/MetricSpace/ProperSpace.lean 2025-10-08 20:10:20 b6e83e5 chore: rename polynomial lemmas (#30270) Renaming the lemmas `Polynomial.prod_roots_eq_coeff_zero_of_monic_of_splits` and `Polynomial.sum_roots_eq_nextCoeff_of_monic_of_split` to agree with the equality order. ESTIMATED CHANGES Modified Mathlib/Algebra/Polynomial/Splits.lean + theorem Polynomial.coeff_zero_eq_prod_roots_of_monic_of_splits + theorem Polynomial.nextCoeff_eq_neg_sum_roots_of_monic_of_splits - theorem Polynomial.prod_roots_eq_coeff_zero_of_monic_of_splits - theorem Polynomial.sum_roots_eq_nextCoeff_of_monic_of_split Modified Mathlib/LinearAlgebra/Matrix/Charpoly/Eigs.lean Modified Mathlib/RingTheory/Norm/Basic.lean Modified Mathlib/RingTheory/Trace/Basic.lean 2025-10-08 19:13:44 04ab3ec feat (Algebra/Group/Action/Basic): add IsLeftCancelSMul (#28876) This PR adds classes `IsLeftCancelSMul` and `IsLeftCancelVAdd`, for actions that are injective on the left. This property automatically holds for group actions, and for the left multiplication action of a left cancellative monoid. ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Action/Defs.lean + theorem IsCancelSMul.left_cancel + theorem IsCancelSMul.right_cancel + theorem IsLeftCancelSMul.left_cancel Modified Mathlib/Algebra/Order/AddTorsor.lean 2025-10-08 18:52:20 03f8d3a feat(Algebra/Polynomial/Degree/SmallDegree): eq_quadratic_of_degree_le_two (#29981) Expansion of a polynomial of degree 2. ESTIMATED CHANGES Modified Mathlib/RingTheory/Polynomial/SmallDegreeVieta.lean + theorem Polynomial.eq_quadratic_of_degree_le_two 2025-10-08 18:11:42 61ed277 feat: currying as a measurable equivalence (#30161) ESTIMATED CHANGES Modified Mathlib/MeasureTheory/MeasurableSpace/Constructions.lean + theorem measurable_curry + theorem measurable_equivCurry + theorem measurable_equivCurry_symm + theorem measurable_piCurry + theorem measurable_piCurry_symm + theorem measurable_sigmaCurry + theorem measurable_sigmaUncurry + theorem measurable_uncurry Modified Mathlib/MeasureTheory/MeasurableSpace/Embedding.lean + theorem MeasurableEquiv.coe_curry + theorem MeasurableEquiv.coe_curry_symm + theorem MeasurableEquiv.coe_piCurry + theorem MeasurableEquiv.coe_piCurry_symm + def MeasurableEquiv.curry + def MeasurableEquiv.piCurry 2025-10-08 17:24:15 3c8f6c9 chore: rename `MonoidHom.toAdditive''` to `MonoidHom.toAdditiveLeft` (#29800) and alike ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Action/End.lean +/- def AddAction.toPermHom Modified Mathlib/Algebra/Group/Equiv/TypeTags.lean - def AddEquiv.toMultiplicative'' - def AddEquiv.toMultiplicative' + def AddEquiv.toMultiplicativeLeft + def AddEquiv.toMultiplicativeRight Modified Mathlib/Algebra/Group/Nat/Hom.lean Modified Mathlib/Algebra/Group/TypeTags/Hom.lean - theorem AddMonoidHom.coe_toMultiplicative'' - theorem AddMonoidHom.coe_toMultiplicative' + theorem AddMonoidHom.coe_toMultiplicativeLeft + theorem AddMonoidHom.coe_toMultiplicativeRight - def AddMonoidHom.toMultiplicative'' - def AddMonoidHom.toMultiplicative' + def AddMonoidHom.toMultiplicativeLeft + def AddMonoidHom.toMultiplicativeRight - theorem MonoidHom.coe_toAdditive'' - theorem MonoidHom.coe_toAdditive' + theorem MonoidHom.coe_toAdditiveLeft + theorem MonoidHom.coe_toAdditiveRight - def MonoidHom.toAdditive'' - def MonoidHom.toAdditive' + def MonoidHom.toAdditiveLeft + def MonoidHom.toAdditiveRight Modified Mathlib/Algebra/Order/Hom/TypeTags.lean - def OrderAddMonoidIso.toMultiplicative'' - def OrderAddMonoidIso.toMultiplicative' + def OrderAddMonoidIso.toMultiplicativeLeft + def OrderAddMonoidIso.toMultiplicativeRight Modified Mathlib/Data/Finsupp/Ext.lean Modified Mathlib/Data/Int/Cast/Lemmas.lean Modified Mathlib/FieldTheory/KummerExtension.lean Modified Mathlib/GroupTheory/ArchimedeanDensely.lean Modified Mathlib/GroupTheory/FiniteAbelian/Basic.lean Modified Mathlib/NumberTheory/NumberField/Units/DirichletTheorem.lean Modified Mathlib/RepresentationTheory/Homological/GroupHomology/LowDegree.lean Modified Mathlib/RingTheory/FreeCommRing.lean Modified Mathlib/RingTheory/Valuation/RankOne.lean 2025-10-08 15:47:49 49fb0bc feat(Algebra/Ring/Invertible): add `eq_of_invOf_add_eq_invOf_add_invOf` (#29477) Formalize statement and prove eq_of_invOf_add_eq_invOf_add_invOf ⅟(a + b) = ⅟a + ⅟b → a * ⅟b * a = b * ⅟a * b (for a, b in a ring; a, b invertible) This will be useful to formalize a proof in https://github.com/eric-wieser/lean-matrix-cookbook. ESTIMATED CHANGES Modified Mathlib/Algebra/Ring/Invertible.lean + theorem eq_of_invOf_add_eq_invOf_add_invOf + theorem neg_add_eq_mul_invOf_mul_same_iff + theorem neg_one_eq_invOf_mul_add_invOf_mul_iff 2025-10-08 14:28:43 c7bb793 feat: custom elaborators for differential geometry (#27021) Add two sets of custom elaborators for differential geometry, to - infer the model with corners in `MDifferentiable{WithinAt,At,On}` or `ContMDiff{WithinAt,At,On}` expressions from the local context, and provide shorter notation in that setting - do the same for mfderiv: `mfderiv% f` is shorthand for `mfderiv I J f`; `mfderiv[s] f x` is short for `mfderivWithin I J f s` - convert a fibre bundle section from a dependent section to a function into the total space, making working with differentiability of sections of fibre bundles less cumbersome This was [discussed on zulip](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Differential.20geometry.20elaborators.20experiment/with/528035295), to overall broad consensus. This code has substantial tests (which have caught bugs in the past). It has also been tested in the branch in #26221 (uncovering minor issues, but not substantial ones ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Geometry/Manifold/Notation.lean + def Manifold.Elab.Elab.findModel + def Manifold.Elab.Elab.findModels Added MathlibTest/DifferentialGeometry/Notation.lean Modified scripts/noshake.json 2025-10-08 13:41:02 d9328bf feat: separable but not second countable LOTS (#29920) ESTIMATED CHANGES Modified Counterexamples.lean Added Counterexamples/SeparableNotSecondCountable.lean + theorem RealProdLexBool.not_secondCountableTopology Modified Mathlib/Data/Prod/Lex.lean + theorem WCovBy.fst_ofLex 2025-10-08 13:06:36 f51758c feat: exterior derivative of a differential form (#29985) Define the exterior derivative of a differential form on a normed space taking values in another normed space. Also prove that $d^2\omega=0$ provided that $\omega$ is a sufficiently smooth form. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/Calculus/DifferentialForm/Basic.lean + theorem Filter.EventuallyEq.extDerivWithin' + theorem Filter.EventuallyEq.extDerivWithin_eq + theorem Filter.EventuallyEq.extDerivWithin_eq_nhds + theorem Filter.EventuallyEq.extDerivWithin_eq_of_insert + theorem Filter.EventuallyEq.extDerivWithin_eq_of_mem + theorem Filter.EventuallyEq.extDeriv_eq + theorem extDerivWithin_add + theorem extDerivWithin_apply + theorem extDerivWithin_congr' + theorem extDerivWithin_congr + theorem extDerivWithin_constOfIsEmpty + theorem extDerivWithin_extDerivWithin_apply + theorem extDerivWithin_extDerivWithin_eqOn + theorem extDerivWithin_fun_add + theorem extDerivWithin_fun_smul + theorem extDerivWithin_smul + theorem extDerivWithin_univ + theorem extDeriv_add + theorem extDeriv_apply + theorem extDeriv_constOfIsEmpty + theorem extDeriv_extDeriv + theorem extDeriv_extDeriv_apply + theorem extDeriv_fun_add + theorem extDeriv_fun_smul + theorem extDeriv_smul Modified Mathlib/Analysis/NormedSpace/Alternating/Basic.lean + def ContinuousAlternatingMap.constOfIsEmptyLIE Modified Mathlib/Analysis/NormedSpace/Alternating/Uncurry/Fin.lean + theorem ContinuousAlternatingMap.alternatizeUncurryFin_constOfIsEmptyLIE_comp 2025-10-08 12:44:23 595bf89 refactor(LinearAlgebra): move SesquilinearForm file in a SesquilinearForm folder (#30277) This is motivated by #30274 where I create a new file in the folder for sesquilinear forms over a star ring. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Analysis/InnerProductSpace/Orthogonal.lean Modified Mathlib/Analysis/InnerProductSpace/Symmetric.lean Modified Mathlib/Analysis/LocallyConvex/Polar.lean Modified Mathlib/LinearAlgebra/Dual/Lemmas.lean Modified Mathlib/LinearAlgebra/Matrix/SesquilinearForm.lean Modified Mathlib/LinearAlgebra/SesquilinearForm.lean - theorem LinearEquiv.isAdjointPair_symm_iff - theorem LinearMap.BilinForm.apply_apply_same_eq_zero_iff - theorem LinearMap.BilinForm.apply_mul_apply_le_of_forall_zero_le - theorem LinearMap.BilinForm.apply_mul_apply_lt_iff_linearIndependent - theorem LinearMap.BilinForm.apply_smul_sub_smul_sub_eq - theorem LinearMap.BilinForm.apply_sq_le_of_symm - theorem LinearMap.BilinForm.apply_sq_lt_iff_linearIndependent_of_symm - theorem LinearMap.BilinForm.nondegenerate_iff' - theorem LinearMap.BilinForm.nondegenerate_iff - theorem LinearMap.BilinForm.nondegenerate_restrict_iff_disjoint_ker - theorem LinearMap.BilinForm.not_linearIndependent_of_apply_mul_apply_eq - theorem LinearMap.BilinMap.isSymm_iff_eq_flip - theorem LinearMap.IsAdjointPair.add - theorem LinearMap.IsAdjointPair.comp - theorem LinearMap.IsAdjointPair.mul - theorem LinearMap.IsAdjointPair.smul - theorem LinearMap.IsAdjointPair.sub - def LinearMap.IsAdjointPair - theorem LinearMap.IsAlt.eq_of_add_add_eq_zero - theorem LinearMap.IsAlt.isRefl - theorem LinearMap.IsAlt.neg - theorem LinearMap.IsAlt.ortho_comm - theorem LinearMap.IsAlt.self_eq_zero - def LinearMap.IsAlt - structure LinearMap.IsNonneg - def LinearMap.IsOrtho - def LinearMap.IsOrthogonal - theorem LinearMap.IsOrthoᵢ.nondegenerate_of_not_isOrtho_basis_self - theorem LinearMap.IsOrthoᵢ.not_isOrtho_basis_self_of_separatingLeft - theorem LinearMap.IsOrthoᵢ.not_isOrtho_basis_self_of_separatingRight - theorem LinearMap.IsOrthoᵢ.separatingLeft_of_not_isOrtho_basis_self - theorem LinearMap.IsOrthoᵢ.separatingRight_iff_not_isOrtho_basis_self - def LinearMap.IsOrthoᵢ - def LinearMap.IsPairSelfAdjoint - structure LinearMap.IsPosSemidef - theorem LinearMap.IsRefl.domRestrict - theorem LinearMap.IsRefl.eq_iff - theorem LinearMap.IsRefl.eq_zero - theorem LinearMap.IsRefl.flip_isRefl_iff - theorem LinearMap.IsRefl.ker_eq_bot_iff_ker_flip_eq_bot - theorem LinearMap.IsRefl.ker_flip_eq_bot - theorem LinearMap.IsRefl.nondegenerate_iff_separatingLeft - theorem LinearMap.IsRefl.nondegenerate_iff_separatingRight - theorem LinearMap.IsRefl.ortho_comm - def LinearMap.IsRefl - def LinearMap.IsSkewAdjoint - theorem LinearMap.IsSymm.domRestrict - theorem LinearMap.IsSymm.isRefl - theorem LinearMap.IsSymm.nondegenerate_restrict_of_isCompl_ker - theorem LinearMap.IsSymm.ortho_comm - structure LinearMap.IsSymm - def LinearMap.Nondegenerate - theorem LinearMap.SeparatingLeft.congr - theorem LinearMap.SeparatingLeft.ne_zero - def LinearMap.SeparatingLeft - def LinearMap.SeparatingRight - theorem LinearMap.disjoint_ker_of_nondegenerate_restrict - theorem LinearMap.flip_nondegenerate - theorem LinearMap.flip_separatingLeft - theorem LinearMap.flip_separatingRight - theorem LinearMap.isAdjointPair_id - theorem LinearMap.isAdjointPair_iff_comp_eq_compl₂ - theorem LinearMap.isAdjointPair_one - theorem LinearMap.isAdjointPair_zero - theorem LinearMap.isAlt_iff_eq_neg_flip - theorem LinearMap.isCompl_span_singleton_orthogonal - theorem LinearMap.isNonneg_def - theorem LinearMap.isNonneg_zero - theorem LinearMap.isOrtho_def - theorem LinearMap.isOrtho_flip - theorem LinearMap.isOrtho_zero_left - theorem LinearMap.isOrtho_zero_right - theorem LinearMap.isOrthogonal_of_forall_apply_same - theorem LinearMap.isOrthoᵢ_def - theorem LinearMap.isOrthoᵢ_flip - def LinearMap.isPairSelfAdjointSubmodule - theorem LinearMap.isPairSelfAdjoint_equiv - theorem LinearMap.isPosSemidef_def - theorem LinearMap.isPosSemidef_zero - theorem LinearMap.isSkewAdjoint_iff_neg_self_adjoint - theorem LinearMap.isSymm_def - theorem LinearMap.isSymm_iff_eq_flip - theorem LinearMap.isSymm_zero - theorem LinearMap.linearIndependent_of_isOrthoᵢ - theorem LinearMap.mem_isPairSelfAdjointSubmodule - theorem LinearMap.mem_selfAdjointSubmodule - theorem LinearMap.mem_skewAdjointSubmodule - theorem LinearMap.nondegenerate_restrict_of_disjoint_orthogonal - theorem LinearMap.not_separatingLeft_zero - theorem LinearMap.ortho_smul_left - theorem LinearMap.ortho_smul_right - theorem LinearMap.orthogonal_span_singleton_eq_to_lin_ker - def LinearMap.selfAdjointSubmodule - theorem LinearMap.separatingLeft_congr_iff - theorem LinearMap.separatingLeft_iff_ker_eq_bot - theorem LinearMap.separatingLeft_iff_linear_nontrivial - theorem LinearMap.separatingRight_iff_flip_ker_eq_bot - theorem LinearMap.separatingRight_iff_linear_flip_nontrivial - def LinearMap.skewAdjointSubmodule - theorem LinearMap.span_singleton_inf_orthogonal_eq_bot - theorem LinearMap.span_singleton_sup_orthogonal_eq_top - theorem Submodule.le_orthogonalBilin_orthogonalBilin - theorem Submodule.mem_orthogonalBilin_iff - def Submodule.orthogonalBilin - theorem Submodule.orthogonalBilin_le Added Mathlib/LinearAlgebra/SesquilinearForm/Basic.lean + theorem LinearEquiv.isAdjointPair_symm_iff + theorem LinearMap.BilinForm.apply_apply_same_eq_zero_iff + theorem LinearMap.BilinForm.apply_mul_apply_le_of_forall_zero_le + theorem LinearMap.BilinForm.apply_mul_apply_lt_iff_linearIndependent + theorem LinearMap.BilinForm.apply_smul_sub_smul_sub_eq + theorem LinearMap.BilinForm.apply_sq_le_of_symm + theorem LinearMap.BilinForm.apply_sq_lt_iff_linearIndependent_of_symm + theorem LinearMap.BilinForm.nondegenerate_iff' + theorem LinearMap.BilinForm.nondegenerate_iff + theorem LinearMap.BilinForm.nondegenerate_restrict_iff_disjoint_ker + theorem LinearMap.BilinForm.not_linearIndependent_of_apply_mul_apply_eq + theorem LinearMap.BilinMap.isSymm_iff_eq_flip + theorem LinearMap.IsAdjointPair.add + theorem LinearMap.IsAdjointPair.comp + theorem LinearMap.IsAdjointPair.mul + theorem LinearMap.IsAdjointPair.smul + theorem LinearMap.IsAdjointPair.sub + def LinearMap.IsAdjointPair + theorem LinearMap.IsAlt.eq_of_add_add_eq_zero + theorem LinearMap.IsAlt.isRefl + theorem LinearMap.IsAlt.neg + theorem LinearMap.IsAlt.ortho_comm + theorem LinearMap.IsAlt.self_eq_zero + def LinearMap.IsAlt + structure LinearMap.IsNonneg + def LinearMap.IsOrtho + def LinearMap.IsOrthogonal + theorem LinearMap.IsOrthoᵢ.nondegenerate_of_not_isOrtho_basis_self + theorem LinearMap.IsOrthoᵢ.not_isOrtho_basis_self_of_separatingLeft + theorem LinearMap.IsOrthoᵢ.not_isOrtho_basis_self_of_separatingRight + theorem LinearMap.IsOrthoᵢ.separatingLeft_of_not_isOrtho_basis_self + theorem LinearMap.IsOrthoᵢ.separatingRight_iff_not_isOrtho_basis_self + def LinearMap.IsOrthoᵢ + def LinearMap.IsPairSelfAdjoint + structure LinearMap.IsPosSemidef + theorem LinearMap.IsRefl.domRestrict + theorem LinearMap.IsRefl.eq_iff + theorem LinearMap.IsRefl.eq_zero + theorem LinearMap.IsRefl.flip_isRefl_iff + theorem LinearMap.IsRefl.ker_eq_bot_iff_ker_flip_eq_bot + theorem LinearMap.IsRefl.ker_flip_eq_bot + theorem LinearMap.IsRefl.nondegenerate_iff_separatingLeft + theorem LinearMap.IsRefl.nondegenerate_iff_separatingRight + theorem LinearMap.IsRefl.ortho_comm + def LinearMap.IsRefl + def LinearMap.IsSkewAdjoint + theorem LinearMap.IsSymm.domRestrict + theorem LinearMap.IsSymm.isRefl + theorem LinearMap.IsSymm.nondegenerate_restrict_of_isCompl_ker + theorem LinearMap.IsSymm.ortho_comm + structure LinearMap.IsSymm + def LinearMap.Nondegenerate + theorem LinearMap.SeparatingLeft.congr + theorem LinearMap.SeparatingLeft.ne_zero + def LinearMap.SeparatingLeft + def LinearMap.SeparatingRight + theorem LinearMap.disjoint_ker_of_nondegenerate_restrict + theorem LinearMap.flip_nondegenerate + theorem LinearMap.flip_separatingLeft + theorem LinearMap.flip_separatingRight + theorem LinearMap.isAdjointPair_id + theorem LinearMap.isAdjointPair_iff_comp_eq_compl₂ + theorem LinearMap.isAdjointPair_one + theorem LinearMap.isAdjointPair_zero + theorem LinearMap.isAlt_iff_eq_neg_flip + theorem LinearMap.isCompl_span_singleton_orthogonal + theorem LinearMap.isNonneg_def + theorem LinearMap.isNonneg_zero + theorem LinearMap.isOrtho_def + theorem LinearMap.isOrtho_flip + theorem LinearMap.isOrtho_zero_left + theorem LinearMap.isOrtho_zero_right + theorem LinearMap.isOrthogonal_of_forall_apply_same + theorem LinearMap.isOrthoᵢ_def + theorem LinearMap.isOrthoᵢ_flip + def LinearMap.isPairSelfAdjointSubmodule + theorem LinearMap.isPairSelfAdjoint_equiv + theorem LinearMap.isPosSemidef_def + theorem LinearMap.isPosSemidef_zero + theorem LinearMap.isSkewAdjoint_iff_neg_self_adjoint + theorem LinearMap.isSymm_def + theorem LinearMap.isSymm_iff_eq_flip + theorem LinearMap.isSymm_zero + theorem LinearMap.linearIndependent_of_isOrthoᵢ + theorem LinearMap.mem_isPairSelfAdjointSubmodule + theorem LinearMap.mem_selfAdjointSubmodule + theorem LinearMap.mem_skewAdjointSubmodule + theorem LinearMap.nondegenerate_restrict_of_disjoint_orthogonal + theorem LinearMap.not_separatingLeft_zero + theorem LinearMap.ortho_smul_left + theorem LinearMap.ortho_smul_right + theorem LinearMap.orthogonal_span_singleton_eq_to_lin_ker + def LinearMap.selfAdjointSubmodule + theorem LinearMap.separatingLeft_congr_iff + theorem LinearMap.separatingLeft_iff_ker_eq_bot + theorem LinearMap.separatingLeft_iff_linear_nontrivial + theorem LinearMap.separatingRight_iff_flip_ker_eq_bot + theorem LinearMap.separatingRight_iff_linear_flip_nontrivial + def LinearMap.skewAdjointSubmodule + theorem LinearMap.span_singleton_inf_orthogonal_eq_bot + theorem LinearMap.span_singleton_sup_orthogonal_eq_top + theorem Submodule.le_orthogonalBilin_orthogonalBilin + theorem Submodule.mem_orthogonalBilin_iff + def Submodule.orthogonalBilin + theorem Submodule.orthogonalBilin_le Modified Mathlib/RingTheory/Polynomial/Wronskian.lean 2025-10-08 12:30:32 98ed3e3 feat: beta distribution (#26785) Add the Beta distribution to the probability distributions in mathlib4 This PR introduces the Beta distribution on the reals. Main definitions: - betaPDFReal (α β x : ℝ) — the probability density function as a real-valued function - betaPDF (α β x : ℝ) — the pdf as a ℝ≥0∞-valued function - betaMeasure (α β : ℝ) — the probability measure associated with the Beta distribution Main results: - lintegral_betaPDF_eq_one — proof that the pdf integrates to 1 (normalization) - Lemmas on positivity, measurability, and integrability of the pdf - isProbabilityMeasureBeta — the Beta measure is a probability measure Notes: - Follows the general structure of other distributions in mathlib (e.g. Gamma). - Several unused helper lemmas were removed, and proofs streamlined in response to reviewer feedback. - Thanks to @EtienneC30 and @RemyDegenne for detailed reviews across multiple rounds. This is a clean version of the PR originally opened as [#25608](https://github.com/leanprover-community/mathlib4/pull/25608) and temporarily migrated in [#26325](https://github.com/leanprover-community/mathlib4/pull/26325). ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Analysis/SpecialFunctions/Gamma/Beta.lean + theorem Complex.betaIntegral_eq_Gamma_mul_div Added Mathlib/Probability/Distributions/Beta.lean + def ProbabilityTheory.betaMeasure + theorem ProbabilityTheory.betaPDFReal_pos + theorem ProbabilityTheory.betaPDF_eq + theorem ProbabilityTheory.betaPDF_eq_zero_of_nonpos + theorem ProbabilityTheory.betaPDF_eq_zero_of_one_le + theorem ProbabilityTheory.betaPDF_of_pos_lt_one + theorem ProbabilityTheory.beta_eq_betaIntegralReal + theorem ProbabilityTheory.beta_pos + theorem ProbabilityTheory.isProbabilityMeasureBeta + theorem ProbabilityTheory.lintegral_betaPDF + theorem ProbabilityTheory.lintegral_betaPDF_eq_one + theorem ProbabilityTheory.measurable_betaPDFReal + theorem ProbabilityTheory.stronglyMeasurable_betaPDFReal 2025-10-08 09:30:55 577300f feat(CategoryTheory): the opposite of a property of objects (#30294) This PR adds the prerequisites for the refactor PR #30269, mostly the addition of `ObjectProperty.op` and constructors for `ObjectProperty` given by families of objects. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/CategoryTheory/ObjectProperty/Basic.lean + inductive CategoryTheory.ObjectProperty.ofObj + theorem CategoryTheory.ObjectProperty.ofObj_apply + theorem CategoryTheory.ObjectProperty.ofObj_iff + theorem CategoryTheory.ObjectProperty.ofObj_le_iff + def CategoryTheory.ObjectProperty.pair + theorem CategoryTheory.ObjectProperty.pair_iff + theorem CategoryTheory.ObjectProperty.singleton_iff + theorem CategoryTheory.ObjectProperty.singleton_le_iff + inductive CategoryTheory.ObjectProperty.strictMap + theorem CategoryTheory.ObjectProperty.strictMap_iff + theorem CategoryTheory.ObjectProperty.strictMap_obj + theorem CategoryTheory.ObjectProperty.strictMap_ofObj + theorem CategoryTheory.ObjectProperty.strictMap_singleton Added Mathlib/CategoryTheory/ObjectProperty/Opposite.lean + theorem CategoryTheory.ObjectProperty.op_iff + theorem CategoryTheory.ObjectProperty.op_injective + theorem CategoryTheory.ObjectProperty.op_injective_iff + theorem CategoryTheory.ObjectProperty.op_isoClosure + theorem CategoryTheory.ObjectProperty.op_monotone + theorem CategoryTheory.ObjectProperty.op_monotone_iff + theorem CategoryTheory.ObjectProperty.op_ofObj + theorem CategoryTheory.ObjectProperty.op_singleton + theorem CategoryTheory.ObjectProperty.op_unop + def CategoryTheory.ObjectProperty.subtypeOpEquiv + theorem CategoryTheory.ObjectProperty.unop_iff + theorem CategoryTheory.ObjectProperty.unop_injective + theorem CategoryTheory.ObjectProperty.unop_injective_iff + theorem CategoryTheory.ObjectProperty.unop_isoClosure + theorem CategoryTheory.ObjectProperty.unop_monotone + theorem CategoryTheory.ObjectProperty.unop_monotone_iff + theorem CategoryTheory.ObjectProperty.unop_ofObj + theorem CategoryTheory.ObjectProperty.unop_op + theorem CategoryTheory.ObjectProperty.unop_singleton Modified Mathlib/CategoryTheory/ObjectProperty/Small.lean 2025-10-08 08:36:27 390a021 docs: use `CoxeterMatrix.Group` in doc-strings (#30304) I observed this looking at the docs and noticing that `CoxeterMatrix.group` was not linked (second paragraph of [file#Mathlib.GroupTheory.Coxeter.Basic](https://leanprover-community.github.io/mathlib4_docs/Mathlib/GroupTheory/Coxeter/Basic.html)). Also note that [docs#CoxeterMatrix.Group](https://leanprover-community.github.io/mathlib4_docs/Mathlib/GroupTheory/Coxeter/Basic.html#CoxeterMatrix.Group) exists, while [docs#CoxeterMatrix.group](https://leanprover-community.github.io/mathlib4_docs/Mathlib/GroupTheory/Coxeter/Basic.html#CoxeterMatrix.group) does not! ESTIMATED CHANGES Modified Mathlib/GroupTheory/Coxeter/Basic.lean 2025-10-08 08:36:26 ce443a7 feat(GroupTheory): finitely generated groups are quotients of free groups on finite generators (#30056) This is equivalent to the formulation that finitely generated groups/monoids are quotients of FreeGroups/Monoids over the same generators, though I think the phrasing as a surjective homomorphism is more useful. ESTIMATED CHANGES Modified Mathlib/GroupTheory/Finiteness.lean + theorem Group.fg_iff_exists_freeGroup_hom_surjective + theorem Monoid.fg_iff_exists_freeMonoid_hom_surjective Modified Mathlib/GroupTheory/FreeGroup/Basic.lean + theorem FreeGroup.closure_eq_range 2025-10-08 08:14:07 c32a3cf feat(Probability): existence of independent random variables with a given sequence of distributions (#29959) In some sense none of these are necessary, especially `exists_hasLaw`, because one could just use the identity or the projections of the product explicitly, but I think using these lemmas when one wants to introduce random variables in probabilistic proofs will be much more natural. Also added needed `fun_prop` tags to `aemeasurable_id` lemmas which randomly generalized `charFun_map_smul` to not need `SecondCountableTopology` (detected by the linter). ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/MeasureTheory/Measure/CharacteristicFunction.lean +/- theorem MeasureTheory.charFun_map_smul Modified Mathlib/MeasureTheory/Measure/MeasureSpaceDef.lean Modified Mathlib/Probability/HasLaw.lean Added Mathlib/Probability/HasLawExists.lean + theorem Measure.exists_hasLaw + theorem ProbabilityTheory.exists_hasLaw_indepFun + theorem ProbabilityTheory.exists_iid 2025-10-08 04:09:33 64ce1d7 feat: define positive semidefinite sesquilinear maps (#28162) Following what is done for `IsSymm`, we duplicate the definition for bilinear forms. ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/BilinearForm/Properties.lean + structure LinearMap.BilinForm.IsNonneg + structure LinearMap.BilinForm.IsPosSemidef + theorem LinearMap.BilinForm.isNonneg_def + theorem LinearMap.BilinForm.isNonneg_iff + theorem LinearMap.BilinForm.isNonneg_zero + theorem LinearMap.BilinForm.isPosSemidef_def + theorem LinearMap.BilinForm.isPosSemidef_iff + theorem LinearMap.BilinForm.isPosSemidef_zero Modified Mathlib/LinearAlgebra/SesquilinearForm.lean + structure LinearMap.IsNonneg + structure LinearMap.IsPosSemidef + theorem LinearMap.isNonneg_def + theorem LinearMap.isNonneg_zero + theorem LinearMap.isPosSemidef_def + theorem LinearMap.isPosSemidef_zero 2025-10-08 02:50:08 1464c2e feat: add lemmata about selfadjoint elements (#30301) This contains: - a `NormedSpace 𝕜 (selfAdjoint E)` instance. - `‖x * x‖ = ‖x‖ ^ 2` for selfadjoint `x` in a non-unital C⋆-ring. - some improved `simp` lemmas for `realPart` and `imaginaryPart` which supersede existing ones. ESTIMATED CHANGES Modified Mathlib/Analysis/CStarAlgebra/Basic.lean + theorem IsSelfAdjoint.nnnorm_mul_self +/- theorem IsSelfAdjoint.nnnorm_pow_two_pow + theorem IsSelfAdjoint.norm_mul_self + theorem IsSelfAdjoint.norm_pow_two_pow - theorem selfAdjoint.nnnorm_pow_two_pow Modified Mathlib/LinearAlgebra/Complex/Module.lean + theorem selfAdjoint.imaginaryPart_coe + theorem selfAdjoint.realPart_coe 2025-10-08 02:34:59 e503dc1 chore(LinearAlgebra/Matrix/PosDef): deprecate `PosSemidef.sqrt` in favour of `CFC` (#29896) We deprecate `PosSemidef.sqrt` and all related results in favour of using more general results (i.e., `CFC.sqrt` and results in C*-algebras). This also defines the partial order and `StarOrderedRing` instances on matrices. This also moves all results related to `PosSemidef.sqrt` to `Analysis/Matrix/Order` to minimize imports. The partial order instance on matrices is scoped to `MatrixOrder` (analogous to `ComplexOrder`). ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Instances.lean + theorem commute_iff_mul_nonneg Added Mathlib/Analysis/Matrix/Order.lean + theorem Matrix.PosDef.commute_iff + def Matrix.PosDef.matrixInnerProductSpace + theorem Matrix.PosDef.posDef_sqrt + theorem Matrix.PosSemidef.commute_iff + theorem Matrix.PosSemidef.dotProduct_mulVec_zero_iff + theorem Matrix.PosSemidef.eq_sqrt_iff_sq_eq + theorem Matrix.PosSemidef.inv_sqrt + theorem Matrix.PosSemidef.isUnit_sqrt_iff + theorem Matrix.PosSemidef.posDef_iff_isUnit + theorem Matrix.PosSemidef.posSemidef_sqrt + theorem Matrix.PosSemidef.sq_eq_sq_iff + theorem Matrix.PosSemidef.sq_sqrt + theorem Matrix.PosSemidef.sqrt_eq_iff_eq_sq + theorem Matrix.PosSemidef.sqrt_eq_one_iff + theorem Matrix.PosSemidef.sqrt_eq_zero_iff + theorem Matrix.PosSemidef.sqrt_mul_self + theorem Matrix.PosSemidef.sqrt_sq + theorem Matrix.PosSemidef.toLinearMap₂'_zero_iff + theorem Matrix.instIsOrderedAddMonoid + theorem Matrix.instNonnegSpectrumClass + theorem Matrix.instStarOrderedRing + theorem Matrix.le_iff + theorem Matrix.nonneg_iff_posSemidef + theorem Matrix.posDef_iff_eq_conjTranspose_mul_self + theorem Matrix.posSemidef_iff_eq_conjTranspose_mul_self + theorem Matrix.posSemidef_iff_isHermitian_and_spectrum_nonneg Modified Mathlib/Analysis/SpecialFunctions/ContinuousFunctionalCalculus/Rpow/Basic.lean + theorem CFC.mul_self_eq_mul_self_iff + theorem CFC.sq_eq_sq_iff + theorem CFC.sqrt_eq_one_iff' + theorem CFC.sqrt_eq_one_iff Modified Mathlib/Combinatorics/SimpleGraph/LapMatrix.lean Modified Mathlib/LinearAlgebra/Matrix/PosDef.lean - theorem Matrix.PosDef.commute_iff - def Matrix.PosDef.matrixInnerProductSpace - theorem Matrix.PosDef.posDef_sqrt - theorem Matrix.PosSemidef.commute_iff - def Matrix.PosSemidef.delabSqrt - theorem Matrix.PosSemidef.dotProduct_mulVec_zero_iff - theorem Matrix.PosSemidef.eq_of_sq_eq_sq - theorem Matrix.PosSemidef.eq_sqrt_iff_sq_eq - theorem Matrix.PosSemidef.inv_sqrt - theorem Matrix.PosSemidef.isUnit_sqrt_iff - theorem Matrix.PosSemidef.posDef_iff_isUnit - theorem Matrix.PosSemidef.posSemidef_sqrt - theorem Matrix.PosSemidef.sq_eq_sq_iff - theorem Matrix.PosSemidef.sq_sqrt - theorem Matrix.PosSemidef.sqrt_eq_iff_eq_sq - theorem Matrix.PosSemidef.sqrt_eq_one_iff - theorem Matrix.PosSemidef.sqrt_eq_zero_iff - theorem Matrix.PosSemidef.sqrt_mul_self - theorem Matrix.PosSemidef.sqrt_sq - theorem Matrix.PosSemidef.toLinearMap₂'_zero_iff + theorem Matrix.PosSemidef.trace_eq_zero_iff - theorem Matrix.posDef_iff_eq_conjTranspose_mul_self - theorem Matrix.posSemidef_iff_eq_conjTranspose_mul_self - theorem Matrix.posSemidef_iff_isHermitian_and_spectrum_nonneg Deleted MathlibTest/PosDef.lean 2025-10-07 21:16:08 2634a31 chore(AlgebraicGeometry): replace `IsLocalAtTarget` by `IsZariskiLocalAtTarget` (#30310) `IsZariskiLocalAtTarget` is an `abbrev` for `MorphismProperty.IsLocalAtTarget Scheme.zariskiPrecoverage`. The same is done for `Source`. ESTIMATED CHANGES Modified Mathlib/AlgebraicGeometry/AffineSpace.lean Modified Mathlib/AlgebraicGeometry/Cover/Sigma.lean Modified Mathlib/AlgebraicGeometry/IdealSheaf/Subscheme.lean Modified Mathlib/AlgebraicGeometry/Morphisms/AffineAnd.lean Modified Mathlib/AlgebraicGeometry/Morphisms/Basic.lean - theorem AlgebraicGeometry.HasAffineProperty.isLocalAtSource + theorem AlgebraicGeometry.HasAffineProperty.isZariskiLocalAtSource - theorem AlgebraicGeometry.HasAffineProperty.of_isLocalAtTarget + theorem AlgebraicGeometry.HasAffineProperty.of_isZariskiLocalAtTarget - theorem AlgebraicGeometry.IsLocalAtSource.comp - theorem AlgebraicGeometry.IsLocalAtSource.iff_exists_resLE - theorem AlgebraicGeometry.IsLocalAtSource.iff_of_iSup_eq_top - theorem AlgebraicGeometry.IsLocalAtSource.iff_of_openCover - theorem AlgebraicGeometry.IsLocalAtSource.isLocalAtTarget - theorem AlgebraicGeometry.IsLocalAtSource.of_iSup_eq_top - theorem AlgebraicGeometry.IsLocalAtSource.of_isOpenImmersion - theorem AlgebraicGeometry.IsLocalAtSource.of_openCover - theorem AlgebraicGeometry.IsLocalAtSource.resLE - theorem AlgebraicGeometry.IsLocalAtSource.sigmaDesc - theorem AlgebraicGeometry.IsLocalAtTarget.iff_of_iSup_eq_top - theorem AlgebraicGeometry.IsLocalAtTarget.iff_of_openCover - theorem AlgebraicGeometry.IsLocalAtTarget.of_iSup_eq_top - theorem AlgebraicGeometry.IsLocalAtTarget.of_isPullback - theorem AlgebraicGeometry.IsLocalAtTarget.of_openCover - theorem AlgebraicGeometry.IsLocalAtTarget.of_range_subset_iSup - theorem AlgebraicGeometry.IsLocalAtTarget.restrict + theorem AlgebraicGeometry.IsZariskiLocalAtSource.comp + theorem AlgebraicGeometry.IsZariskiLocalAtSource.iff_exists_resLE + theorem AlgebraicGeometry.IsZariskiLocalAtSource.iff_of_iSup_eq_top + theorem AlgebraicGeometry.IsZariskiLocalAtSource.iff_of_openCover + theorem AlgebraicGeometry.IsZariskiLocalAtSource.isZariskiLocalAtTarget + theorem AlgebraicGeometry.IsZariskiLocalAtSource.of_iSup_eq_top + theorem AlgebraicGeometry.IsZariskiLocalAtSource.of_isOpenImmersion + theorem AlgebraicGeometry.IsZariskiLocalAtSource.of_openCover + theorem AlgebraicGeometry.IsZariskiLocalAtSource.resLE + theorem AlgebraicGeometry.IsZariskiLocalAtSource.sigmaDesc + theorem AlgebraicGeometry.IsZariskiLocalAtTarget.iff_of_iSup_eq_top + theorem AlgebraicGeometry.IsZariskiLocalAtTarget.iff_of_openCover + theorem AlgebraicGeometry.IsZariskiLocalAtTarget.of_iSup_eq_top + theorem AlgebraicGeometry.IsZariskiLocalAtTarget.of_isPullback + theorem AlgebraicGeometry.IsZariskiLocalAtTarget.of_openCover + theorem AlgebraicGeometry.IsZariskiLocalAtTarget.of_range_subset_iSup + theorem AlgebraicGeometry.IsZariskiLocalAtTarget.restrict Modified Mathlib/AlgebraicGeometry/Morphisms/ClosedImmersion.lean Modified Mathlib/AlgebraicGeometry/Morphisms/Constructors.lean - theorem AlgebraicGeometry.AffineTargetMorphismProperty.isStableUnderBaseChange_of_isStableUnderBaseChangeOnAffine_of_isLocalAtTarget + theorem AlgebraicGeometry.AffineTargetMorphismProperty.isStableUnderBaseChange_of_isStableUnderBaseChangeOnAffine_of_isZariskiLocalAtTarget - theorem AlgebraicGeometry.stalkwiseIsLocalAtTarget_of_respectsIso + theorem AlgebraicGeometry.stalkwiseIsZariskiLocalAtTarget_of_respectsIso - theorem AlgebraicGeometry.stalkwise_isLocalAtSource_of_respectsIso + theorem AlgebraicGeometry.stalkwise_isZariskiLocalAtSource_of_respectsIso - theorem AlgebraicGeometry.topologically_isLocalAtSource' - theorem AlgebraicGeometry.topologically_isLocalAtSource - theorem AlgebraicGeometry.topologically_isLocalAtTarget' - theorem AlgebraicGeometry.topologically_isLocalAtTarget + theorem AlgebraicGeometry.topologically_isZariskiLocalAtSource' + theorem AlgebraicGeometry.topologically_isZariskiLocalAtSource + theorem AlgebraicGeometry.topologically_isZariskiLocalAtTarget' + theorem AlgebraicGeometry.topologically_isZariskiLocalAtTarget - theorem AlgebraicGeometry.universally_isLocalAtSource - theorem AlgebraicGeometry.universally_isLocalAtTarget + theorem AlgebraicGeometry.universally_isZariskiLocalAtSource + theorem AlgebraicGeometry.universally_isZariskiLocalAtTarget Modified Mathlib/AlgebraicGeometry/Morphisms/Descent.lean - theorem AlgebraicGeometry.IsLocalAtTarget.descendsAlong - theorem AlgebraicGeometry.IsLocalAtTarget.descendsAlong_inf_quasiCompact + theorem AlgebraicGeometry.IsZariskiLocalAtTarget.descendsAlong + theorem AlgebraicGeometry.IsZariskiLocalAtTarget.descendsAlong_inf_quasiCompact - theorem AlgebraicGeometry.Scheme.exists_hom_isAffine_of_isLocalAtSource + theorem AlgebraicGeometry.Scheme.exists_hom_isAffine_of_isZariskiLocalAtSource Modified Mathlib/AlgebraicGeometry/Morphisms/Finite.lean Modified Mathlib/AlgebraicGeometry/Morphisms/Flat.lean Modified Mathlib/AlgebraicGeometry/Morphisms/FormallyUnramified.lean Modified Mathlib/AlgebraicGeometry/Morphisms/Immersion.lean Modified Mathlib/AlgebraicGeometry/Morphisms/Integral.lean Modified Mathlib/AlgebraicGeometry/Morphisms/IsIso.lean Modified Mathlib/AlgebraicGeometry/Morphisms/LocalClosure.lean Modified Mathlib/AlgebraicGeometry/Morphisms/LocalIso.lean - theorem AlgebraicGeometry.IsLocalIso.le_of_isLocalAtSource + theorem AlgebraicGeometry.IsLocalIso.le_of_isZariskiLocalAtSource Modified Mathlib/AlgebraicGeometry/Morphisms/OpenImmersion.lean Modified Mathlib/AlgebraicGeometry/Morphisms/Preimmersion.lean Modified Mathlib/AlgebraicGeometry/Morphisms/Proper.lean Modified Mathlib/AlgebraicGeometry/Morphisms/QuasiCompact.lean Modified Mathlib/AlgebraicGeometry/Morphisms/RingHomProperties.lean - theorem AlgebraicGeometry.HasRingHomProperty.isLocal_ringHomProperty_of_isLocalAtSource_of_isLocalAtTarget + theorem AlgebraicGeometry.HasRingHomProperty.isLocal_ringHomProperty_of_isZariskiLocalAtSource_of_isZariskiLocalAtTarget - theorem AlgebraicGeometry.HasRingHomProperty.of_isLocalAtSource_of_isLocalAtTarget + theorem AlgebraicGeometry.HasRingHomProperty.of_isZariskiLocalAtSource_of_isZariskiLocalAtTarget Modified Mathlib/AlgebraicGeometry/Morphisms/Separated.lean Modified Mathlib/AlgebraicGeometry/Morphisms/SurjectiveOnStalks.lean Modified Mathlib/AlgebraicGeometry/Morphisms/UnderlyingMap.lean Modified Mathlib/AlgebraicGeometry/Morphisms/UniversallyClosed.lean Modified Mathlib/AlgebraicGeometry/Morphisms/UniversallyInjective.lean Modified Mathlib/AlgebraicGeometry/Morphisms/UniversallyOpen.lean Modified Mathlib/AlgebraicGeometry/ProjectiveSpectrum/Proper.lean Modified Mathlib/AlgebraicGeometry/Sites/MorphismProperty.lean Modified Mathlib/CategoryTheory/MorphismProperty/Local.lean + theorem CategoryTheory.MorphismProperty.IsLocalAtSource.mk_of_iff + theorem CategoryTheory.MorphismProperty.IsLocalAtTarget.mk_of_iff Modified Mathlib/CategoryTheory/Sites/Precoverage.lean 2025-10-07 21:16:07 1ab7069 feat: a few lemmata about `ℂ` (#30305) These are useful for facts about unitary elements in C⋆-algebras. ESTIMATED CHANGES Modified Mathlib/Analysis/Complex/Basic.lean + theorem Complex.subset_slitPlane_iff_of_subset_sphere Modified Mathlib/Analysis/Complex/Norm.lean + theorem Complex.normSq_ofReal_add_I_mul_sqrt_one_sub + theorem Complex.normSq_ofReal_sub_I_mul_sqrt_one_sub + theorem Complex.norm_sub_one_sq_eqOn_sphere + theorem Complex.norm_sub_one_sq_eq_of_norm_one Modified Mathlib/Analysis/SpecialFunctions/Complex/Arg.lean + theorem Complex.continuousOn_arg 2025-10-07 20:49:59 d88ac22 feat(Combinatorics/Quiver): add strongly connected quivers (#29754) Define strongly connected quivers and their components. Add both standard strong connectivity (allowing length-0 paths) and positive-path strong connectivity. Establish basic properties and relationships to weak connectivity via symmetrification. This is part of Perron Frobenius theorem and grounds its characterization/def of Irreducible matrices and Markov chain analysis in subsequent PRs. split from #28728 ESTIMATED CHANGES Modified Mathlib/Combinatorics/Quiver/ConnectedComponent.lean + theorem Quiver.IsSStronglyConnected.exists_pos_cycle + theorem Quiver.IsSStronglyConnected.exists_pos_path + theorem Quiver.IsSStronglyConnected.isStronglyConnected + def Quiver.IsSStronglyConnected + theorem Quiver.IsStronglyConnected.isSStronglyConnected_of_hom + theorem Quiver.IsStronglyConnected.isStronglyConnected_symmetrify + theorem Quiver.IsStronglyConnected.nonempty_path + def Quiver.IsStronglyConnected + theorem Quiver.StronglyConnectedComponent.IsSStronglyConnected.pos_cycle + theorem Quiver.StronglyConnectedComponent.mk_eq_mk + def Quiver.StronglyConnectedComponent + theorem Quiver.exists_path_of_stronglyConnectedComponent_eq + theorem Quiver.isSStronglyConnected_iff + theorem Quiver.isStronglyConnected_iff + theorem Quiver.stronglyConnectedComponent_eq_of_path + theorem Quiver.stronglyConnectedComponent_singleton_iff + def Quiver.stronglyConnectedSetoid Modified Mathlib/Combinatorics/Quiver/Symmetric.lean - def Quiver.IsPreconnected 2025-10-07 19:30:54 a673886 feat: toLp and ofLp are analytic (#28473) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/Analytic/WithLp.lean + theorem PiLp.analyticOn_ofLp + theorem PiLp.analyticOn_toLp + theorem WithLp.analyticOn_ofLp + theorem WithLp.analyticOn_toLp 2025-10-07 19:06:05 57004e7 chore(Analysis/LocallyConvex): deprecate `polar_weak_closed` (#28390) ESTIMATED CHANGES Modified Mathlib/Analysis/LocallyConvex/Polar.lean - theorem LinearMap.polar_weak_closed 2025-10-07 17:36:42 20bb1ba chore(Data): golf entire `equivFunOnFintype_single`, `predAbove_right_zero`, `snoc_zero` and more using `rfl` (#28561) ESTIMATED CHANGES Modified Mathlib/Data/DFinsupp/Defs.lean Modified Mathlib/Data/Fin/Tuple/Basic.lean Modified Mathlib/Data/Fin/Tuple/Take.lean Modified Mathlib/Data/Finmap.lean Modified Mathlib/Data/Finsupp/AList.lean +/- theorem AList.empty_lookupFinsupp Modified Mathlib/Data/Finsupp/Single.lean +/- theorem Finsupp.zero_update Modified Mathlib/Data/Matrix/Basic.lean Modified Mathlib/Data/Matrix/Block.lean Modified Mathlib/Data/PFunctor/Multivariate/W.lean Modified Mathlib/Data/PFunctor/Univariate/M.lean Modified Mathlib/Data/QPF/Multivariate/Constructions/Cofix.lean Modified Mathlib/Data/Seq/Computation.lean +/- theorem Computation.tail_think Modified Mathlib/Data/Set/Piecewise.lean Modified Mathlib/Data/Set/Sups.lean +/- theorem Set.image_inf_prod Modified Mathlib/Data/TypeVec.lean +/- theorem TypeVec.dropFun_diag Modified Mathlib/Data/Vector/Basic.lean +/- theorem List.Vector.scanl_cons Modified Mathlib/Data/Vector/Defs.lean Modified Mathlib/Topology/Connected/PathConnected.lean 2025-10-07 17:22:51 14831fe ci(label_new_contributor.yml): only trigger when PR is opened (#30162) Currently, this is triggered even when new bots push a commit to a PR (e.g. the pre-commit.ci bot); adding the `types` filter will prevent the `new-contributor` label being added in such cases. ESTIMATED CHANGES Modified .github/workflows/label_new_contributor.yml 2025-10-07 15:54:03 1f467e3 feat: first main theorem of value distribution theory (#30103) Establish the first main theorem of value distribution theory in full. This PR completes a major milestone in [Project VD](https://github.com/kebekus/ProjectVD), which aims to formalize Value Distribution Theory for meromorphic functions on the complex plane. ESTIMATED CHANGES Modified Mathlib/Analysis/Complex/ValueDistribution/FirstMainTheorem.lean - theorem ValueDistribution.abs_characteristic_sub_characteristic_shift_eqO + theorem ValueDistribution.characteristic_sub_characteristic_inv + theorem ValueDistribution.characteristic_sub_characteristic_inv_at_zero + theorem ValueDistribution.characteristic_sub_characteristic_inv_le + theorem ValueDistribution.characteristic_sub_characteristic_inv_of_ne_zero + theorem ValueDistribution.isBigO_characteristic_sub_characteristic_inv + theorem ValueDistribution.isBigO_characteristic_sub_characteristic_shift Modified docs/overview.yaml 2025-10-07 15:26:30 1dcc303 feat: define `curveIntegral` (#24754) Define the integral of a 1-form along a (piecewise smooth) path in a normed space. This is a step towards a formalization of the Poincaré lemma for 1-forms. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Analysis/Convex/PathConnected.lean + theorem Path.eqOn_extend_segment Modified Mathlib/Analysis/Normed/Module/Basic.lean + theorem NormedSpace.restrictScalars_eq Added Mathlib/MeasureTheory/Integral/CurveIntegral/Basic.lean + theorem ContinuousOn.curveIntegrable_of_contDiffOn + theorem CurveIntegrable.fun_neg + theorem CurveIntegrable.fun_zero + theorem CurveIntegrable.intervalIntegrable_curveIntegralFun_trans_left + theorem CurveIntegrable.intervalIntegrable_curveIntegralFun_trans_right + theorem CurveIntegrable.neg + theorem CurveIntegrable.refl + theorem CurveIntegrable.smul + theorem CurveIntegrable.zero + def CurveIntegrable + theorem HasFDerivAt.curveIntegral_segment_source' + theorem HasFDerivAt.curveIntegral_segment_source + theorem HasFDerivWithinAt.curveIntegral_segment_source' + theorem HasFDerivWithinAt.curveIntegral_segment_source + theorem curveIntegrable_cast_iff + theorem curveIntegrable_fun_neg_iff + theorem curveIntegrable_neg_iff + theorem curveIntegrable_restrictScalars_iff + theorem curveIntegrable_segment + theorem curveIntegrable_smul_iff + theorem curveIntegrable_symm + theorem curveIntegralFun_add + theorem curveIntegralFun_cast + theorem curveIntegralFun_def + theorem curveIntegralFun_fun_zero + theorem curveIntegralFun_neg + theorem curveIntegralFun_refl + theorem curveIntegralFun_restrictScalars + theorem curveIntegralFun_segment + theorem curveIntegralFun_smul + theorem curveIntegralFun_sub + theorem curveIntegralFun_symm + theorem curveIntegralFun_symm_apply + theorem curveIntegralFun_trans_aeeq_left + theorem curveIntegralFun_trans_aeeq_right + theorem curveIntegralFun_trans_of_half_lt + theorem curveIntegralFun_trans_of_lt_half + theorem curveIntegralFun_zero + theorem curveIntegral_add + theorem curveIntegral_cast + theorem curveIntegral_def + theorem curveIntegral_eq_intervalIntegral_deriv + theorem curveIntegral_fun_add + theorem curveIntegral_fun_neg + theorem curveIntegral_fun_smul + theorem curveIntegral_fun_sub + theorem curveIntegral_fun_zero + theorem curveIntegral_neg + theorem curveIntegral_of_not_completeSpace + theorem curveIntegral_refl + theorem curveIntegral_restrictScalars + theorem curveIntegral_segment + theorem curveIntegral_segment_const + theorem curveIntegral_smul + theorem curveIntegral_sub + theorem curveIntegral_symm + theorem curveIntegral_trans + theorem curveIntegral_zero + theorem norm_curveIntegral_segment_le Modified Mathlib/MeasureTheory/Integral/IntervalIntegral/Basic.lean - theorem IntervalIntegrable.congr + theorem IntervalIntegrable.congr_ae + theorem intervalIntegrable_congr + theorem intervalIntegrable_congr_ae Modified Mathlib/MeasureTheory/Integral/IntervalIntegral/ContDiff.lean 2025-10-07 14:48:27 0bba669 chore: tidy various files (#30296) ESTIMATED CHANGES Modified Archive/Wiedijk100Theorems/CubingACube.lean Modified Mathlib/Algebra/Group/Embedding.lean Modified Mathlib/Algebra/Lie/Solvable.lean Modified Mathlib/Algebra/Module/LinearMap/DivisionRing.lean Modified Mathlib/Algebra/Order/BigOperators/Group/List.lean Modified Mathlib/Algebra/Order/Floor/Ring.lean Modified Mathlib/Algebra/Order/Ring/InjSurj.lean Modified Mathlib/Algebra/Polynomial/Splits.lean Modified Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Commute.lean Modified Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Order.lean Modified Mathlib/Analysis/Calculus/FDeriv/Norm.lean Modified Mathlib/Analysis/Polynomial/MahlerMeasure.lean Modified Mathlib/Analysis/SpecialFunctions/Integrals/PosLogEqCircleAverage.lean Modified Mathlib/CategoryTheory/Quotient.lean Modified Mathlib/CategoryTheory/Sites/JointlySurjective.lean Modified Mathlib/Combinatorics/Enumerative/IncidenceAlgebra.lean Modified Mathlib/Combinatorics/SimpleGraph/Clique.lean Modified Mathlib/Combinatorics/SimpleGraph/Connectivity/Connected.lean Modified Mathlib/Data/Finsupp/BigOperators.lean Modified Mathlib/Data/Nat/Digits/Defs.lean Modified Mathlib/Data/Real/Embedding.lean Modified Mathlib/FieldTheory/Minpoly/IsIntegrallyClosed.lean Modified Mathlib/LinearAlgebra/Basis/Defs.lean Modified Mathlib/LinearAlgebra/Dual/Lemmas.lean Modified Mathlib/LinearAlgebra/Projectivization/Cardinality.lean Modified Mathlib/MeasureTheory/Measure/LevyProkhorovMetric.lean Modified Mathlib/NumberTheory/ModularForms/Basic.lean Modified Mathlib/RingTheory/DividedPowers/SubDPIdeal.lean Modified Mathlib/RingTheory/Flat/Tensor.lean Modified Mathlib/RingTheory/Ideal/Int.lean Modified Mathlib/RingTheory/Regular/Depth.lean Modified Mathlib/Topology/Bases.lean Modified Mathlib/Topology/CWComplex/Classical/Finite.lean Modified Mathlib/Topology/Order/HullKernel.lean 2025-10-07 14:17:27 5cc7567 chore: fix formatting for deprecation dates (#30297) Also update the date to when the PR (#27699) was actually landed. ESTIMATED CHANGES Modified Mathlib/Analysis/LocallyConvex/Polar.lean Modified Mathlib/Topology/Algebra/Module/LinearMap.lean 2025-10-07 14:02:49 68d6b9a ci: remove "CI Success" job (#30283) Currently we have a job named "CI Success" which passes if and only if the "Lint style" and the "Post-Build Step" succeed. This was added in #25614 when we moved to a fork-based contribution model because I thought that bors would have trouble recognizing CI jobs on PRs from forks, since those job names end with "(fork)". However, this was wrong: in fact, the `status` field in `bors.toml` only checks that the required status checks pass on the `staging` branch and doesn't apply to the PR branches at all. (There is a separate config field named `pr_status`, which checks that commits on PR branches have passed certain CI checks before `bors r+` works on them, but we haven't been using this.) The downside of only having "CI Success" in the `status` field is that when an earlier job fails, bors won't be able to link to the logs of that run in the comments it posts on GitHub and Zulip. We could just add all of the earlier jobs to `status` and keep "CI Success", but since my original concern was unfounded, I've opted to just remove the unnecessary job completely and replace the `status` field with all "Build", "Lint style" and "Post-Build Step" so that all of the logs are easily available again. Thanks to @kckennylau for bringing this up in [#mathlib4 > Build failed: CI Success](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Build.20failed.3A.20CI.20Success/with/543367124). ESTIMATED CHANGES Modified .github/build.in.yml Modified .github/workflows/bors.yml Modified .github/workflows/build.yml Modified .github/workflows/build_fork.yml Modified bors.toml 2025-10-07 12:53:49 98c8639 refactor: Nat.minFac: avoid reducing wfrec (#30291) ESTIMATED CHANGES Modified Mathlib/Data/Nat/Prime/Defs.lean +/- def Nat.minFacAux Modified Mathlib/Data/Num/Prime.lean 2025-10-07 11:23:36 2f9b481 chore: Rename Proj.openCoverOfIsOpenCover to Proj.affineOpenCoverOfIrrelevantLESpan (#30288) #30072 renamed `AlgebraicGeometry.Scheme.openCoverOfISupEqTop` to `AlgebraicGeometry.Scheme.openCoverOfIsOpenCover` with deprecation, but it also moved `AlgebraicGeometry.Proj.openCoverOfISupEqTop` to `AlgebraicGeometry.Proj.openCoverOfIsOpenCover` by [accident](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Proj.2EopenCoverOfISupEqTop/near/543421929), and without deprecation. This PR is a partial revert of that Proj renaming, but also renames it to the [more sensible](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Proj.2EopenCoverOfISupEqTop/near/543422249) `Proj.affineOpenCoverOfIrrelevantLESpan`. Deprecation is added for the old name `Proj.openCoverOfISupEqTop`, but not for the current `Proj.openCoverOfIsOpenCover`, because this current erroneous `Proj.openCoverOfIsOpenCover` has only existed for 4 days. ESTIMATED CHANGES Modified Mathlib/AlgebraicGeometry/ProjectiveSpectrum/Basic.lean + def AlgebraicGeometry.Proj.affineOpenCoverOfIrrelevantLESpan - def AlgebraicGeometry.Proj.openCoverOfIsOpenCover Modified Mathlib/AlgebraicGeometry/ProjectiveSpectrum/Proper.lean 2025-10-07 10:51:29 c049c5a chore(GroupTheory/Perm): deprecate `mem_of_formPerm_ne_self` and `formPerm_eq_self_of_notMem` (#28441) ESTIMATED CHANGES Modified Mathlib/GroupTheory/Perm/Cycle/Concrete.lean Modified Mathlib/GroupTheory/Perm/List.lean - theorem List.formPerm_eq_self_of_notMem - theorem List.mem_of_formPerm_ne_self 2025-10-07 09:43:34 ee76732 refactor: Category.Filtered.Small: avoid reducing wfrec (#30292) Using `rw!` this isn’t too bad. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Filtered/Small.lean 2025-10-07 09:26:55 51d6a5e refactor: Chebyshev: avoid reducing wfrec (#30290) ESTIMATED CHANGES Modified Mathlib/RingTheory/Polynomial/Chebyshev.lean +/- theorem Polynomial.Chebyshev.C_neg_one +/- theorem Polynomial.Chebyshev.C_one +/- theorem Polynomial.Chebyshev.C_zero +/- theorem Polynomial.Chebyshev.S_one +/- theorem Polynomial.Chebyshev.S_zero +/- theorem Polynomial.Chebyshev.T_neg_one +/- theorem Polynomial.Chebyshev.T_one +/- theorem Polynomial.Chebyshev.T_zero +/- theorem Polynomial.Chebyshev.U_one +/- theorem Polynomial.Chebyshev.U_zero 2025-10-07 09:26:53 1d1cff0 feat(RingTheory): make Euclidean domain from DVR (#29693) ESTIMATED CHANGES Modified Mathlib/RingTheory/DiscreteValuationRing/Basic.lean + theorem IsDiscreteValuationRing.bot_lt_toWithBotNat_iff + theorem IsDiscreteValuationRing.dvd_of_toWithBotNat_le_toWithBotNat + def IsDiscreteValuationRing.quotient + def IsDiscreteValuationRing.remainder + def IsDiscreteValuationRing.toEuclideanDomain + def IsDiscreteValuationRing.toWithBotNat + theorem IsDiscreteValuationRing.toWithBotNat_eq_bot_iff + theorem IsDiscreteValuationRing.toWithBotNat_le_toWithBotNat_iff + theorem IsDiscreteValuationRing.toWithBotNat_zero 2025-10-07 09:12:35 cd149dd refactor: FrobeniusFractionField: avoid reducing wfrec (#30289) ESTIMATED CHANGES Modified Mathlib/RingTheory/WittVector/FrobeniusFractionField.lean 2025-10-07 08:33:08 ef24a29 feat: factorization of cyclotomic polynomial over finite fields (#30032) We compute the degree of the factors of the `n`-th cyclotomic polynomial over a finite field of characteristic `p` when `p` and `n` are coprime. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/CharP/CharAndCard.lean +/- theorem charP_of_card_eq_prime + theorem charP_of_card_eq_prime_pow +/- theorem not_isUnit_prime_of_dvd_card Modified Mathlib/NumberTheory/Cyclotomic/Basic.lean - theorem Polynomial.separable_cyclotomic Modified Mathlib/NumberTheory/GaussSum.lean Modified Mathlib/RingTheory/Polynomial/Cyclotomic/Basic.lean + theorem Polynomial.separable_cyclotomic + theorem Polynomial.squarefree_cyclotomic Added Mathlib/RingTheory/Polynomial/Cyclotomic/Factorization.lean + theorem Polynomial.irreducible_of_dvd_cyclotomic_of_natDegree + theorem Polynomial.natDegree_of_dvd_cyclotomic_of_irreducible + theorem Polynomial.natDegree_of_mem_normalizedFactors_cyclotomic + theorem Polynomial.normalizedFactors_cyclotomic_card + theorem ZMod.irreducible_of_dvd_cyclotomic_of_natDegree 2025-10-07 08:33:06 29c47b6 chore(GroupTheory/Perm/Cycle): deprecate `Disjoint.cycleType` (#28429) ESTIMATED CHANGES Modified Mathlib/GroupTheory/Perm/Centralizer.lean Modified Mathlib/GroupTheory/Perm/Cycle/Type.lean - theorem Equiv.Perm.Disjoint.cycleType +/- theorem Equiv.Perm.Disjoint.cycleType_mul Modified Mathlib/GroupTheory/SpecificGroups/Alternating.lean 2025-10-07 08:33:04 53db35f feat(RingTheory/Presentation): core of a presentation (#24794) If `P` is a presentation of `S` as an `R`-algebra and `R₀` a subring of `R` containing the coefficients of the relations of `P`, then there exists an `R₀`-algebra `S₀` such that `S` is isomorphic to the base change of `S₀` to `R`. This is a tool to remove Noetherian hypothesis in certain situations. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Algebra/Subalgebra/Basic.lean + theorem Subalgebra.algebraMap_apply + theorem Subalgebra.setRange_algebraMap Modified Mathlib/Algebra/Algebra/Subalgebra/Tower.lean Modified Mathlib/Algebra/Algebra/Tower.lean + theorem AlgEquiv.coe_restrictScalars_symm' + theorem AlgEquiv.coe_restrictScalars_symm + theorem AlgEquiv.restrictScalars_symm_apply Modified Mathlib/RingTheory/AlgebraicIndependent/Transcendental.lean Added Mathlib/RingTheory/Extension/Presentation/Core.lean + def Algebra.Presentation.Core + theorem Algebra.Presentation.HasCoeffs.coeffs_relation_mem_range + theorem Algebra.Presentation.HasCoeffs.of_isScalarTower + theorem Algebra.Presentation.HasCoeffs.relation_mem_range_map + theorem Algebra.Presentation.aeval_val_relationOfHasCoeffs + theorem Algebra.Presentation.algebraTensorAlgEquiv_symm_relation + def Algebra.Presentation.coeffs + theorem Algebra.Presentation.coeffs_relation_subset_coeffs + theorem Algebra.Presentation.coeffs_relation_subset_core + theorem Algebra.Presentation.coeffs_subset_core + theorem Algebra.Presentation.coeffs_subset_range + def Algebra.Presentation.core + theorem Algebra.Presentation.finite_coeffs + theorem Algebra.Presentation.map_relationOfHasCoeffs + theorem Algebra.Presentation.tensorModelOfHasCoeffsEquiv_symm_tmul + theorem Algebra.Presentation.tensorModelOfHasCoeffsEquiv_tmul + theorem Algebra.Presentation.tensorModelOfHasCoeffsHom_tmul + theorem Algebra.Presentation.tensorModelOfHasCoeffsInv_aeval_val Modified Mathlib/RingTheory/FiniteType.lean + theorem Algebra.FiniteType.adjoin_of_finite Modified Mathlib/RingTheory/Ideal/Quotient/Basic.lean + theorem Ideal.Quotient.mk_span_range Modified Mathlib/RingTheory/LinearDisjoint.lean Modified Mathlib/RingTheory/TensorProduct/MvPolynomial.lean + theorem MvPolynomial.algebraTensorAlgEquiv_symm_comp_aeval + theorem MvPolynomial.algebraTensorAlgEquiv_symm_map 2025-10-07 07:59:22 f9996fc feat(Nat/Log): add lemma for `log b (n / b ^ k)` (#30222) This lemma is a simple consequence of the previous by induction, but is often useful for calculation, especially since the natural number division and natural number subtraction play very nicely here. ESTIMATED CHANGES Modified Mathlib/Data/Nat/Log.lean + theorem Nat.log_div_base_pow 2025-10-06 23:15:37 c857041 feat(Nat/Log): log of Nat.bit (#30227) A useful rewrite lemma in applications, especially when `b` is a more complex expression. Mathlib already has a preference for using `Nat.log 2` over `Nat.log2`, since the former has many more lemmas about it, and better tactic support, so we follow the established pattern here. ESTIMATED CHANGES Modified Mathlib/Data/Nat/Log.lean + theorem Nat.log_two_bit 2025-10-06 22:42:41 cd0687a chore(Nat/Log): swap Nat.pow_le_iff_le_log lemmas (#30229) Swap the order of the following four lemmas: - `Nat.pow_le_iff_le_log` - `Nat.lt_pow_iff_log_lt` - `Nat.le_pow_iff_clog_le` - `Nat.pow_lt_iff_lt_clog` This is to match the pattern used everywhere else in mathlib, eg for Real.log, and the pattern used in core, eg for Nat.log2. ESTIMATED CHANGES Modified Mathlib/Data/Nat/Digits/Lemmas.lean Modified Mathlib/Data/Nat/Log.lean + theorem Nat.clog_le_iff_le_pow + theorem Nat.le_log_iff_pow_le +/- theorem Nat.le_pow_iff_clog_le + theorem Nat.log_lt_iff_lt_pow + theorem Nat.lt_clog_iff_pow_lt Modified Mathlib/Tactic/NormNum/NatLog.lean 2025-10-06 22:42:40 e324732 feat(Data/List): relate destutter and dedup (#30228) ESTIMATED CHANGES Modified Mathlib/Data/List/Dedup.lean + theorem List.dedup_cons' + theorem List.dedup_cons Modified Mathlib/Data/List/Destutter.lean + theorem List.Pairwise.destutter_eq_dedup 2025-10-06 22:06:01 7e091d1 chore(Analysis/Calculus/Deriv): deprecate `differentiableAt_comp_const_add` (#28376) ESTIMATED CHANGES Modified Mathlib/Analysis/Calculus/Deriv/Add.lean - theorem differentiableAt_comp_const_add 2025-10-06 21:14:27 e9a7887 chore(RingTheory/MvPolynomial): deprecate `weightedHomogeneousComponent_of_isWeightedHomogeneous_same` and `weightedHomogeneousComponent_of_isWeightedHomogeneous_ne` (#28305) ESTIMATED CHANGES Modified Mathlib/RingTheory/MvPolynomial/WeightedHomogeneous.lean - theorem MvPolynomial.weightedHomogeneousComponent_of_isWeightedHomogeneous_ne - theorem MvPolynomial.weightedHomogeneousComponent_of_isWeightedHomogeneous_same 2025-10-06 20:40:10 900513a feat(AlgebraicGeometry): quasi-affine schemes (#30256) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/AlgebraicGeometry/Morphisms/OpenImmersion.lean + theorem AlgebraicGeometry.IsOpenImmersion.of_forall_source_exists + theorem AlgebraicGeometry.IsOpenImmersion.of_openCover_source Modified Mathlib/AlgebraicGeometry/Morphisms/QuasiSeparated.lean - theorem AlgebraicGeometry.isIso_ΓSpec_adjunction_unit_app_basicOpen Modified Mathlib/AlgebraicGeometry/Morphisms/Separated.lean Added Mathlib/AlgebraicGeometry/QuasiAffine.lean + theorem AlgebraicGeometry.Scheme.IsQuasiAffine.of_isImmersion 2025-10-06 20:40:08 b9b63f9 chore(RingTheory): golf entire `smul_eq_zero_of_mem`, `hasEval`, `eq_of_prod_eq_prod` and `isIntegral_of_mem_ringOfIntegers` (#28487) ESTIMATED CHANGES Modified Mathlib/RingTheory/Extension/Basic.lean Modified Mathlib/RingTheory/PowerSeries/Substitution.lean Modified Mathlib/RingTheory/UniqueFactorizationDomain/FactorSet.lean - theorem Associates.eq_of_prod_eq_prod Modified Mathlib/RingTheory/Valuation/AlgebraInstances.lean 2025-10-06 20:25:30 ff6e6b5 chore(AlgebraicGeometry/PullbackCarrier): remove duplicate lemma (#30279) `AlgebraicGeometry.Scheme.pullbackComparison_forget_surjective` is a duplicate of `AlgebraicGeometry.Scheme.Pullback.forget_comparison_surjective`. These were added in #29894 resp. #30020. We keep the one with the correct name. We keep the first one, because it has the correct name. ESTIMATED CHANGES Modified Mathlib/AlgebraicGeometry/PullbackCarrier.lean - theorem AlgebraicGeometry.Scheme.Pullback.forget_comparison_surjective 2025-10-06 18:32:02 2a770fb feat(Algebra/Subgroup/Lattice): `mem_biSup_of_directedOn` (#29990) Generalization of existing `mem_iSup_of_directed` On the way to characterization of the torsion subgroup as the sup over all subgroups of roots of unity ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Subgroup/Lattice.lean + theorem Subgroup.mem_biSup_of_directedOn + theorem Subgroup.mem_iSup_prop Modified Mathlib/Algebra/Group/Submonoid/Membership.lean + theorem Submonoid.mem_biSup_of_directedOn + theorem Submonoid.mem_iSup_prop Modified Mathlib/Algebra/Group/Subsemigroup/Membership.lean + theorem Subsemigroup.mem_biSup_of_directedOn + theorem Subsemigroup.mem_iSup_prop Modified Mathlib/Order/Directed.lean + theorem directedOn_onFun_iff 2025-10-06 17:04:21 f4f1bfc feat(RingTheory/Noetherian): add `IsNoetherianRing.of_prime` (#28451) This PR introduces the first usage of `Ideal.IsOka` introduced in #27200 to prove that if all prime ideals of a `CommRing` are finitely generated then this ring is Noetherian. To do so, we also added the lemma `Ideal.mem_span_range_self`. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/RingTheory/Ideal/Span.lean + theorem Ideal.mem_span_range_self +/- theorem Ideal.span_pair_eq_span_left_iff_dvd +/- theorem Ideal.span_pair_eq_span_right_iff_dvd Added Mathlib/RingTheory/Noetherian/OfPrime.lean + theorem Ideal.isOka_fg + theorem IsNoetherianRing.of_prime Modified docs/references.bib 2025-10-06 16:30:14 5b550d3 chore(AlgebraicGeometry): remove `Spec()` notation (#30272) ESTIMATED CHANGES Modified Mathlib/AlgebraicGeometry/AffineScheme.lean Modified Mathlib/AlgebraicGeometry/AffineSpace.lean Modified Mathlib/AlgebraicGeometry/Cover/Open.lean Modified Mathlib/AlgebraicGeometry/IdealSheaf/Subscheme.lean Modified Mathlib/AlgebraicGeometry/Limits.lean +/- def AlgebraicGeometry.coprodSpec +/- def AlgebraicGeometry.sigmaSpec Modified Mathlib/AlgebraicGeometry/Modules/Tilde.lean Modified Mathlib/AlgebraicGeometry/Morphisms/ClosedImmersion.lean Modified Mathlib/AlgebraicGeometry/Morphisms/FiniteType.lean Modified Mathlib/AlgebraicGeometry/Morphisms/Proper.lean +/- theorem AlgebraicGeometry.finite_appTop_of_universallyClosed +/- theorem AlgebraicGeometry.isField_of_universallyClosed Modified Mathlib/AlgebraicGeometry/Morphisms/UniversallyClosed.lean Modified Mathlib/AlgebraicGeometry/Noetherian.lean Modified Mathlib/AlgebraicGeometry/OpenImmersion.lean Modified Mathlib/AlgebraicGeometry/PointsPi.lean +/- def AlgebraicGeometry.pointsPi Modified Mathlib/AlgebraicGeometry/ProjectiveSpectrum/Basic.lean +/- def AlgebraicGeometry.Proj.awayι +/- def AlgebraicGeometry.Proj.basicOpenIsoSpec +/- def AlgebraicGeometry.Proj.basicOpenToSpec +/- def AlgebraicGeometry.Proj.toSpecZero Modified Mathlib/AlgebraicGeometry/ProjectiveSpectrum/Proper.lean Modified Mathlib/AlgebraicGeometry/Pullbacks.lean Modified Mathlib/AlgebraicGeometry/ResidueField.lean Modified Mathlib/AlgebraicGeometry/Restrict.lean Modified Mathlib/AlgebraicGeometry/Scheme.lean +/- theorem AlgebraicGeometry.Scheme.default_asIdeal Modified Mathlib/AlgebraicGeometry/Stalk.lean Modified Mathlib/AlgebraicGeometry/ValuativeCriterion.lean 2025-10-06 16:30:12 207daae feat(RingTheory/Valuation/ValuativeRel): strict valuative relation (#30262) extracted out of #27163 a way of discussing unbundled `posSubmonoid` ESTIMATED CHANGES Modified Mathlib/RingTheory/Valuation/ValuativeRel/Basic.lean + theorem Valuation.Compatible.srel_iff_lt + theorem ValuativeExtension.srel_iff_srel + theorem ValuativeRel.not_srel_iff +/- theorem ValuativeRel.posSubmonoid_def + def ValuativeRel.srel + theorem ValuativeRel.srel_iff + theorem ValuativeRel.zero_srel_mul + theorem ValuativeRel.zero_srel_one 2025-10-06 15:37:35 95fae5d feat(Data/Set/Subsingleton): added new lemma `Subsingleton.union_subsingleton` along with some trivial code cleanup (#29955) ESTIMATED CHANGES Modified Mathlib/Data/Set/Subsingleton.lean +/- theorem Set.subsingleton_isBot +/- theorem Set.subsingleton_isTop +/- theorem Set.subsingleton_of_subsingleton + theorem Set.subsingleton_of_subsingleton_inter_left + theorem Set.subsingleton_of_subsingleton_inter_right 2025-10-06 15:21:50 70adeca chore: golf `sin_pi_mul_eq` and `isCyclic_units_iff` using `grind` (#30193) ESTIMATED CHANGES Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/EulerSineProd.lean Modified Mathlib/RingTheory/ZMod/UnitsCyclic.lean 2025-10-06 14:26:09 c61c9d2 chore(AlgebraicGeometry/Sites): golf entire `pretopology_eq_inf` using `rfl` (#30243) ESTIMATED CHANGES Modified Mathlib/AlgebraicGeometry/Sites/Pretopology.lean +/- theorem AlgebraicGeometry.Scheme.pretopology_eq_inf 2025-10-06 14:26:08 103639b chore(Tactic/Positivity): golf entire `min_ne` and `max_ne` using `grind` (#30211) ESTIMATED CHANGES Modified Mathlib/Tactic/Positivity/Basic.lean 2025-10-06 14:26:06 56b17cd chore(Data): golf entire `getElem_insertIdx_add_succ` and `inv_sqrt_two_sub_one` using `grind` (#30207) ESTIMATED CHANGES Modified Mathlib/Data/List/InsertIdx.lean Modified Mathlib/Data/Real/Sqrt.lean 2025-10-06 14:26:04 b4c621d chore(Data/Rat): golf entire `inv_intCast_num_of_pos` and `den_inv_of_ne_zero` using `simp` (#30117) ESTIMATED CHANGES Modified Mathlib/Data/Rat/Lemmas.lean 2025-10-06 14:26:01 a64b5cc chore(Data/Finset): golf entire `powersetCard_zero` using `grind` (#30114) ESTIMATED CHANGES Modified Mathlib/Data/Finset/Powerset.lean 2025-10-06 14:26:00 6d8cd6c chore(Data): golf entire `tail_cons` using `rfl`. fix `coe_eq_image_val` theorem statement. (#29661) ESTIMATED CHANGES Modified Mathlib/Data/Seq/Defs.lean +/- theorem Stream'.Seq.tail_cons Modified Mathlib/Data/Set/Functor.lean 2025-10-06 14:25:58 d799b46 feat(Positivity): add positivity extensions for `NNReal.rpow` and `ENNReal.rpow` (#29463) ESTIMATED CHANGES Modified Mathlib/Analysis/SpecialFunctions/Pow/NNReal.lean + theorem ENNReal.rpow_zero_pos + def Mathlib.Meta.Positivity.evalENNRealRpow + def Mathlib.Meta.Positivity.evalNNRealRpow + theorem NNReal.rpow_zero_pos Modified MathlibTest/positivity.lean 2025-10-06 14:25:56 d8b0cfb chore: remove redundant `rintro` invocations (before `omega`) (#29221) ESTIMATED CHANGES Modified Mathlib/Algebra/BigOperators/Intervals.lean Modified Mathlib/Data/List/Range.lean 2025-10-06 14:25:54 a153b15 chore(Topology/PartialHomeomorph): add module deprecation (#29116) This is the follow-up PR of #29113 adding the deprecated module after the file was renamed. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Topology/PartialHomeomorph.lean 2025-10-06 14:25:52 f3ad651 chore: golf entire `epi_of_cokernel_π_eq_zero`, `bottom_row_coprime`, `congr_of_eventuallyEq` and `Invertible.congr` (#28490) ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Invertible/Defs.lean Modified Mathlib/CategoryTheory/Abelian/Basic.lean +/- theorem CategoryTheory.Abelian.epi_of_cokernel_π_eq_zero Modified Mathlib/Topology/ContinuousOn.lean 2025-10-06 13:48:56 65b9734 chore(Tactic/CancelDenoms): golf entire `cancel_factors_eq` using `grind` (#27370) ESTIMATED CHANGES Modified Mathlib/Tactic/CancelDenoms/Core.lean 2025-10-06 13:19:57 33b8ef0 feat(AlgebraicGeometry): qc immersion = open immersion >> closed immersion (#30257) ESTIMATED CHANGES Modified Mathlib/AlgebraicGeometry/IdealSheaf/Functorial.lean + theorem AlgebraicGeometry.Scheme.IdealSheafData.ker_fst_of_isClosedImmersion + theorem AlgebraicGeometry.isPullback_of_isClosedImmersion Modified Mathlib/AlgebraicGeometry/Morphisms/ClosedImmersion.lean + theorem AlgebraicGeometry.IsClosedImmersion.isIso_lift + theorem AlgebraicGeometry.IsClosedImmersion.isIso_of_ker_eq Modified Mathlib/AlgebraicGeometry/Morphisms/Immersion.lean + theorem AlgebraicGeometry.IsImmersion.isImmersion_iff_exists_of_quasiCompact + theorem AlgebraicGeometry.IsImmersion.isPullback_toImage_liftCoborder + theorem AlgebraicGeometry.Scheme.Hom.liftCoborder_preimage + theorem AlgebraicGeometry.liftCoborder_app 2025-10-06 12:30:02 4a88b7e feat: preimage of Set.pi by uncurry (#30178) ESTIMATED CHANGES Modified Mathlib/Data/Set/Prod.lean + theorem Set.uncurry_preimage_prod_pi Modified Mathlib/Data/Set/Sigma.lean + theorem Set.uncurry_preimage_sigma_pi 2025-10-06 12:30:00 abf8c9d feat(Topology/Algebra/InfiniteSum): generalise to allow summation filters (#29914) We introduce a notion of a "summation filter" on a type, which is (a structure wrapper around) a filter on the finsets of that type. Then we can define tsums / tprods "along L" for any summation filter L, giving a formalism that specializes to the existing notion of unconditional summation, but also covers conditional summation on `ℕ` etc. This is implemented using an **optional parameter** to `HasSum`, `tsum` etc which defaults to the standard unconditional sum, so the vast majority of existing code using unconditional summation will work without change. Co-authored by Chris Birkbeck. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Analysis/Analytic/Uniqueness.lean Modified Mathlib/Analysis/Complex/Basic.lean +/- theorem Complex.conj_tsum +/- theorem Complex.hasSum_conj' +/- theorem Complex.hasSum_conj +/- theorem Complex.hasSum_im +/- theorem Complex.hasSum_ofReal +/- theorem Complex.hasSum_re +/- theorem Complex.im_tsum +/- theorem Complex.ofReal_tsum +/- theorem Complex.re_tsum +/- theorem Complex.summable_ofReal +/- theorem RCLike.conj_tsum +/- theorem RCLike.hasSum_conj' +/- theorem RCLike.hasSum_conj +/- theorem RCLike.hasSum_im +/- theorem RCLike.hasSum_ofReal +/- theorem RCLike.hasSum_re +/- theorem RCLike.im_tsum +/- theorem RCLike.ofReal_tsum +/- theorem RCLike.re_tsum +/- theorem RCLike.summable_conj +/- theorem RCLike.summable_ofReal Modified Mathlib/Analysis/Quaternion.lean +/- theorem Quaternion.hasSum_coe +/- theorem Quaternion.summable_coe +/- theorem Quaternion.tsum_coe Modified Mathlib/Analysis/SpecialFunctions/Log/Summable.lean Modified Mathlib/Geometry/Manifold/VectorBundle/MDifferentiable.lean Modified Mathlib/Geometry/Manifold/VectorBundle/SmoothSection.lean Modified Mathlib/MeasureTheory/Measure/MeasureSpace.lean Modified Mathlib/NumberTheory/EulerProduct/Basic.lean Modified Mathlib/NumberTheory/TsumDivsorsAntidiagonal.lean Modified Mathlib/RingTheory/MvPowerSeries/PiTopology.lean Modified Mathlib/RingTheory/MvPowerSeries/Substitution.lean Modified Mathlib/Topology/Algebra/InfiniteSum/Basic.lean + theorem Function.LeftInverse.map_tprod +/- theorem HasProd.congr_fun +/- theorem HasProd.mul +/- theorem HasProd.update' +/- theorem Multipliable.congr +/- theorem Multipliable.map_tprod +/- theorem Multipliable.mul +/- theorem Multipliable.of_finite + theorem Topology.IsClosedEmbedding.map_tprod +/- theorem eq_mul_of_hasProd_ite +/- theorem hasProd_empty +/- theorem hasProd_ite_eq +/- theorem hasProd_one +/- theorem hasProd_single +/- theorem hasProd_unique +/- theorem hasProd_zero_of_exists_eq_zero +/- theorem multipliable_congr +/- theorem multipliable_empty +/- theorem multipliable_of_exists_eq_zero +/- theorem multipliable_of_finite_mulSupport +/- theorem multipliable_one +/- theorem multipliable_prod +/- theorem prod_eq_tprod_mulIndicator +/- theorem tprod_congr₂ +/- theorem tprod_empty +/- theorem tprod_eq_finprod +/- theorem tprod_eq_mulSingle +/- theorem tprod_eq_prod' +/- theorem tprod_eq_prod +/- theorem tprod_fintype +/- theorem tprod_ite_eq +/- theorem tprod_of_exists_eq_zero +/- theorem tprod_one +/- theorem tprod_tprod_eq_mulSingle Modified Mathlib/Topology/Algebra/InfiniteSum/Constructions.lean +/- theorem HasProd.prodMk +/- theorem HasSum.op +/- theorem HasSum.star +/- theorem HasSum.unop +/- theorem Pi.multipliable +/- theorem Summable.ofStar +/- theorem Summable.op +/- theorem Summable.star +/- theorem Summable.unop +/- theorem hasSum_op +/- theorem summable_op +/- theorem summable_star_iff' +/- theorem summable_star_iff +/- theorem summable_unop +/- theorem tprod_apply +/- theorem tsum_op +/- theorem tsum_star +/- theorem tsum_unop Modified Mathlib/Topology/Algebra/InfiniteSum/Defs.lean + theorem Finset.hasProd_support + theorem Function.Injective.hasProd_comap_iff + theorem Function.Injective.hasProd_comap_iff_of_hasSupport + theorem Function.Injective.hasProd_map_iff +/- theorem HasProd.multipliable +/- theorem HasProd.tprod_eq +/- theorem HasProd.unique +/- def HasProd +/- theorem Multipliable.hasProd +/- theorem Multipliable.hasProd_iff + theorem Multipliable.mono_filter +/- def Multipliable + theorem hasProd_bot +/- theorem hasProd_fintype + theorem hasProd_fintype_support +/- theorem hasProd_prod_of_ne_finset_one + theorem hasProd_prod_support_of_ne_finset_one + theorem hasProd_subtype_comap_iff_of_mulSupport_subset + theorem multipliable_bot +/- theorem multipliable_of_ne_finset_one + theorem tprod_bot +/- theorem tprod_eq_one_of_not_multipliable Modified Mathlib/Topology/Algebra/InfiniteSum/Group.lean +/- theorem HasProd.div +/- theorem HasProd.inv +/- theorem HasProd.update +/- theorem Multipliable.div +/- theorem Multipliable.inv +/- theorem Multipliable.of_inv +/- theorem Multipliable.trans_div +/- theorem Multipliable.update +/- theorem hasProd_ite_div_hasProd +/- theorem multipliable_iff_of_multipliable_div +/- theorem multipliable_inv_iff +/- theorem tprod_inv Modified Mathlib/Topology/Algebra/InfiniteSum/GroupCompletion.lean +/- theorem Summable.toCompl_tsum Modified Mathlib/Topology/Algebra/InfiniteSum/Module.lean +/- theorem ContinuousLinearEquiv.tsum_eq_iff +/- theorem HasSum.const_smul +/- theorem HasSum.smul_const +/- theorem Summable.const_smul +/- theorem Summable.smul_const Modified Mathlib/Topology/Algebra/InfiniteSum/NatInt.lean Modified Mathlib/Topology/Algebra/InfiniteSum/Order.lean +/- theorem HasProd.le_one +/- theorem HasProd.one_le +/- theorem hasProd_le +/- theorem hasProd_le_of_prod_le +/- theorem hasProd_lt +/- theorem hasProd_mono +/- theorem hasProd_one_iff_of_one_le +/- theorem le_hasProd +/- theorem le_hasProd_of_le_prod +/- theorem lt_hasProd +/- theorem one_le_tprod +/- theorem prod_le_hasProd +/- theorem tprod_le_of_prod_le' +/- theorem tprod_le_one Modified Mathlib/Topology/Algebra/InfiniteSum/Ring.lean +/- theorem Commute.tsum_left +/- theorem Commute.tsum_right +/- theorem HasSum.const_div +/- theorem HasSum.div_const +/- theorem HasSum.mul_left +/- theorem HasSum.mul_right +/- theorem Summable.const_div +/- theorem Summable.div_const +/- theorem Summable.mul_left +/- theorem Summable.mul_right +/- theorem hasSum_div_const_iff +/- theorem hasSum_mul_left_iff +/- theorem hasSum_mul_right_iff +/- theorem summable_const_div_iff +/- theorem summable_div_const_iff +/- theorem summable_mul_left_iff +/- theorem summable_mul_right_iff +/- theorem tsum_div_const +/- theorem tsum_mul_left +/- theorem tsum_mul_right Added Mathlib/Topology/Algebra/InfiniteSum/SummationFilter.lean + def SummationFilter.comap + theorem SummationFilter.comap_unconditional + def SummationFilter.conditional + theorem SummationFilter.conditional_filter_eq_map_Ici + theorem SummationFilter.conditional_filter_eq_map_Iic + theorem SummationFilter.conditional_filter_eq_map_range + theorem SummationFilter.eq_unconditional_of_finite + theorem SummationFilter.eventually_mem_or_not_mem + theorem SummationFilter.leAtTop_of_not_NeBot + def SummationFilter.map + theorem SummationFilter.neBot_or_eq_bot + def SummationFilter.support + theorem SummationFilter.support_comap + theorem SummationFilter.support_eq_limsInf + theorem SummationFilter.support_eq_univ + theorem SummationFilter.support_eq_univ_iff + theorem SummationFilter.support_map + def SummationFilter.unconditional + structure SummationFilter Modified Mathlib/Topology/ContinuousMap/Algebra.lean Modified Mathlib/Topology/Instances/ENNReal/Lemmas.lean Modified Mathlib/Topology/Instances/Matrix.lean +/- theorem HasSum.matrix_diag +/- theorem HasSum.matrix_diagonal +/- theorem HasSum.matrix_transpose +/- theorem Matrix.transpose_tsum +/- theorem Summable.matrix_blockDiag' +/- theorem Summable.matrix_blockDiag +/- theorem Summable.matrix_blockDiagonal +/- theorem Summable.matrix_diag +/- theorem Summable.matrix_diagonal +/- theorem Summable.matrix_transpose Modified Mathlib/Topology/Instances/NNReal/Lemmas.lean +/- theorem NNReal.coe_tsum +/- theorem NNReal.hasSum_coe +/- theorem NNReal.hasSum_real_toNNReal_of_nonneg +/- theorem NNReal.summable_coe 2025-10-06 12:00:08 3681a10 chore: new file for constructions of uniform groups (#30026) The split between `Defs` and `Basic` was a bit messy (e.g the `Prod` instance was in `Defs` but the `Pi` instance was in `Basic`), and I'm going to make these files longer when introducing left and right uniform groups, so I figured the best solution was to move everything in an intermediate `Constructions` file. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Analysis/CStarAlgebra/Module/Synonym.lean Modified Mathlib/RingTheory/MvPowerSeries/PiTopology.lean Modified Mathlib/Topology/Algebra/IsUniformGroup/Basic.lean - theorem IsUniformInducing.isUniformGroup Added Mathlib/Topology/Algebra/IsUniformGroup/Constructions.lean + theorem IsUniformInducing.isUniformGroup + theorem isUniformGroup_iInf + theorem isUniformGroup_inf + theorem isUniformGroup_sInf Modified Mathlib/Topology/Algebra/IsUniformGroup/Defs.lean - theorem isUniformGroup_iInf - theorem isUniformGroup_inf - theorem isUniformGroup_sInf Modified Mathlib/Topology/Instances/TrivSqZeroExt.lean Modified Mathlib/Topology/UniformSpace/Matrix.lean 2025-10-06 10:49:40 c9e5385 feat(Algebra/Order/Ring): make `IsOrderedRing.toStrictOrderedRing` an instance (#27178) Requiring `IsStrictOrderedRing` on a `Field` is a footgun (the current instances come from a find and replace on `LinearOrderedField`). Weakening typeclasses can incur a performance hit so will be done where appropriate in future PRs. ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Ring/Defs.lean - theorem IsOrderedRing.toIsStrictOrderedRing 2025-10-06 10:18:47 686ba3a feat: `Rat.padicValuation` is surjective (#30170) ESTIMATED CHANGES Modified Mathlib/NumberTheory/Padics/PadicNumbers.lean + theorem Rat.surjective_padicValuation 2025-10-06 09:32:22 23a8b67 feat(Algebra/Order/Ring/Ordering): basic results about ring (pre)orderings (#28295) * Basic automation for membership of ring orderings * Alternative constructors for ring preorderings and ring orderings * Basic results about ring preorderings and their supports, including the special case over a field ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Group/Subgroup/Defs.lean + theorem HasMemOrInvMem.inv_mem_of_notMem + theorem HasMemOrInvMem.mem_of_inv_notMem Added Mathlib/Algebra/Order/Ring/Ordering/Basic.lean + theorem RingPreordering.HasIdealSupport.neg_smul_mem + theorem RingPreordering.HasIdealSupport.smul_mem + theorem RingPreordering.IsOrdering.mk' + theorem RingPreordering.coe_mk' + theorem RingPreordering.hasIdealSupport_of_isUnit_two + theorem RingPreordering.inv_mem + theorem RingPreordering.isOrdering_iff + theorem RingPreordering.mem_mk' + theorem RingPreordering.mem_of_isSumSq + def RingPreordering.mk' + theorem RingPreordering.one_notMem_support + theorem RingPreordering.one_notMem_supportAddSubgroup + theorem RingPreordering.supportAddSubgroup_eq_bot + theorem RingPreordering.supportAddSubgroup_ne_top + theorem RingPreordering.support_eq_bot + theorem RingPreordering.support_ne_top + theorem RingPreordering.toSubsemiring_le_toSubsemiring + theorem RingPreordering.toSubsemiring_lt_toSubsemiring + theorem RingPreordering.toSubsemiring_mono + theorem RingPreordering.toSubsemiring_strictMono + theorem RingPreordering.unitsInv_mem 2025-10-06 08:37:22 928504d chore(Data/Int): deprecate `ediv_ediv_eq_ediv_mul` (#30265) ESTIMATED CHANGES Modified Mathlib/Data/Int/DivMod.lean - theorem Int.ediv_ediv_eq_ediv_mul 2025-10-06 08:23:25 eb00e00 feat(Mathlib/AlgebraicGeometry/AffineScheme): add preservation of limits of affine schemes (#30034) This PR adds simple results about affine schemes. Main changes: * `createsLimitsForgetToScheme`: The forgetful functor `AffineScheme ⥤ Scheme` creates small limits. * (written by Andrew Yang) `preservesLimit_rightOp_Γ`: Shows that `Scheme.Γ.rightOp : Scheme ⥤ CommRingCatᵒᵖ` preserves limits of diagrams consisting of affine schemes. * `preservesColimit_Γ`: The dual statement. This PR reopens #30015, which was acidentally closed by myself. ESTIMATED CHANGES Modified Mathlib/AlgebraicGeometry/AffineScheme.lean 2025-10-06 08:23:23 afc966d feat(Topology/WithVal): ValuativeRel (WithVal v) (#27207) with a helper valuation defined that does not pierce defeq ESTIMATED CHANGES Modified Mathlib/Topology/Algebra/Valued/WithVal.lean + def WithVal.valuation + theorem WithVal.valuation_equiv_symm 2025-10-06 07:59:35 7039b57 chore: make Opposite.small an instance (#30159) If `X` is small, so is `Xᵒᵖ`. It no longer seems to be dangerous to have such an instance. (Which shall be convenient for #30160.) ESTIMATED CHANGES Modified Mathlib/Data/Opposite.lean - theorem Opposite.small 2025-10-05 14:36:52 586e9c3 feat(CategoryTheory): limits of objects satisfying a property (#29851) This PR dualises #29843. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/CategoryTheory/ObjectProperty/ColimitsOfShape.lean Added Mathlib/CategoryTheory/ObjectProperty/LimitsOfShape.lean + theorem CategoryTheory.ObjectProperty.LimitOfShape.limitsOfShape + def CategoryTheory.ObjectProperty.LimitOfShape.ofIso + def CategoryTheory.ObjectProperty.LimitOfShape.ofLE + structure CategoryTheory.ObjectProperty.LimitOfShape + theorem CategoryTheory.ObjectProperty.isoClosure_strictLimitsOfShape + def CategoryTheory.ObjectProperty.limitsOfShape + theorem CategoryTheory.ObjectProperty.limitsOfShape_isoClosure + theorem CategoryTheory.ObjectProperty.limitsOfShape_monotone + inductive CategoryTheory.ObjectProperty.strictLimitsOfShape + theorem CategoryTheory.ObjectProperty.strictLimitsOfShape_le_limitsOfShape + theorem CategoryTheory.ObjectProperty.strictLimitsOfShape_monotone 2025-10-05 14:23:26 010a30c feat(CategoryTheory): extremal epimorphisms (#29518) An extremal epimorphism `p : X ⟶ Y` is an epimorphism which does not factor through any proper subobject of `Y`. In case the category has equalizers, we show that a morphism `p : X ⟶ Y` which does not factor through any proper subobject of `Y` is automatically an epimorphism, and also an extremal epimorphism. We also show that a strong epimorphism is an extremal epimorphism, and that both notions coincide when the category has pullbacks. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/ExtremalEpi.lean + theorem CategoryTheory.ExtremalEpi.mk_of_hasEqualizers + theorem CategoryTheory.ExtremalEpi.subobject_eq_top + theorem CategoryTheory.extremalEpi_iff_strongEpi_of_hasPullbacks 2025-10-05 12:08:38 75a2970 feat(Analysis/Distribution): a smooth function with compact support is a Schwartz function (#30175) ESTIMATED CHANGES Modified Mathlib/Analysis/Distribution/SchwartzSpace.lean + def HasCompactSupport.toSchwartzMap 2025-10-05 11:42:56 34812cd feat(Nat/Digits): use fuel in `Nat.digits` (#25864) Add a `fuel` parameter to `Nat.digitsAux` to make it structurally recursive. ESTIMATED CHANGES Modified Mathlib/Data/Nat/Digits/Defs.lean + theorem Nat.digitsAux.go_fuel_irrel + theorem Nat.digitsAux.go_succ + theorem Nat.digitsAux.go_zero +/- def Nat.digitsAux +/- theorem Nat.digitsAux_zero 2025-10-05 10:39:22 b1f909f chore(Lean/Expr): remove Batteries imports (#30188) And make the remaining import linter exceptions more fine-grained. ESTIMATED CHANGES Modified Mathlib/Lean/Expr/Rat.lean Modified Mathlib/Tactic/Linter/DirectoryDependency.lean 2025-10-05 10:19:21 bfc2799 chore(RingTheory/PrimitiveRoots): switch argument for `isUnit` from `0 < k` to `k ≠ 0` (#29988) Did not do this for all lemmas in `IsPrimitiveRoot` namespace which is still heterogeneous between - `NeZero k` - `0 < k` - `k ≠ 0` Note: there will always be some mismatch in hypotheses, because core has lemmas about divisibility in `0 < k` hypothesis form On the way to describing the torsion subgroup, as requested in #29517 ESTIMATED CHANGES Modified Mathlib/FieldTheory/KummerExtension.lean Modified Mathlib/NumberTheory/Cyclotomic/CyclotomicCharacter.lean Modified Mathlib/NumberTheory/Cyclotomic/Rat.lean Modified Mathlib/NumberTheory/MulChar/Lemmas.lean Modified Mathlib/RingTheory/Frobenius.lean Modified Mathlib/RingTheory/RootsOfUnity/EnoughRootsOfUnity.lean Modified Mathlib/RingTheory/RootsOfUnity/PrimitiveRoots.lean +/- theorem IsPrimitiveRoot.isUnit +/- theorem IsPrimitiveRoot.pow_ne_one_of_pos_of_lt 2025-10-05 10:19:19 b8ab47b feat(RingTheory): local properties of semilocal rings (#29924) Proves local properties of semilocal rings, which wiil be used in Iwasawa theory. For a natural language proof, see [lean-iwasawa](https://acmepjz.github.io/lean-iwasawa/blueprint/sect0002.html#a0000000013) (slightly different from this PR). > > > > [![Open in Gitpod](https://camo.githubusercontent.com/b04f5659467d23b5109ba935a40c00decd264eea25c22d50a118021349eea94f/68747470733a2f2f676974706f642e696f2f627574746f6e2f6f70656e2d696e2d676974706f642e737667)](https://gitpod.io/from-referrer/) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/RingTheory/DedekindDomain/PID.lean + theorem IsPrincipalIdealRing.of_finite_maximals Modified Mathlib/RingTheory/Ideal/Height.lean + theorem Ring.krullDimLE_of_isLocalization_maximal Modified Mathlib/RingTheory/LocalProperties/IntegrallyClosed.lean + theorem IsIntegrallyClosed.of_isLocalization_maximal Added Mathlib/RingTheory/LocalProperties/Semilocal.lean + theorem IsNoetherianRing.of_isLocalization_maximal + theorem Module.Finite.of_isLocalized_maximal + theorem Module.Finite.of_localized_maximal + theorem Submodule.fg_of_isLocalized_maximal + theorem Submodule.fg_of_localized_maximal + theorem isPrincipalIdealRing_of_isPrincipalIdealRing_isLocalization_maximal Modified Mathlib/RingTheory/Localization/AtPrime/Basic.lean + theorem IsLocalization.isDomain_of_atPrime 2025-10-05 10:04:50 d19e914 feat: the definition of nonarchimedean local fields (#27465) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/NumberTheory/LocalField/Basic.lean + theorem IsNonarchimedeanLocalField.isCompact_closedBall + def IsNonarchimedeanLocalField.valueGroupWithZeroIsoInt Modified Mathlib/RingTheory/Valuation/RankOne.lean Modified Mathlib/RingTheory/Valuation/ValuativeRel/Basic.lean + theorem ValuativeRel.ValueGroupWithZero.mk_eq_valuation + theorem ValuativeRel.exists_valuation_div_valuation_eq +/- theorem ValuativeRel.isNontrivial_iff_isNontrivial +/- theorem ValuativeRel.valuation_surjective Modified Mathlib/Topology/Algebra/Valued/ValuativeRel.lean + theorem IsValuativeTopology.hasBasis_nhds' + theorem IsValuativeTopology.hasBasis_nhds_zero' + theorem IsValuativeTopology.v_eq_valuation 2025-10-05 07:59:02 245959d feat: {forall,exists}_ne_{top,bot} (#30208) Working towards #27918. ESTIMATED CHANGES Modified Mathlib/Data/ENNReal/Basic.lean +/- theorem ENNReal.exists_ne_top +/- theorem ENNReal.forall_ne_top Modified Mathlib/Data/ENat/Basic.lean + theorem ENat.exists_ne_top + theorem ENat.forall_ne_top Modified Mathlib/Order/WithBot.lean + theorem WithBot.exists_ne_bot + theorem WithBot.forall_ne_bot + theorem WithTop.exists_ne_top + theorem WithTop.forall_ne_top Modified Mathlib/Topology/Instances/ENat.lean 2025-10-04 20:24:12 9bee9f3 feat: a theorem of Jordan on primitive subgroups of the permutation group (#26282) A theorem of Jordan on the primitive subgroups of a permutation group: * if it contains a swap, it is equal to the permutation group, * if it contains a 3-cycle, it contains the alternating group. This PR continues the work from #24131. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Data/Set/Card.lean + theorem Set.ncard_le_card + theorem Set.ncard_lt_card + theorem Set.ncard_range_of_injective + theorem Set.ncard_union_eq_iff + theorem Set.ncard_union_lt + theorem Set.nonempty_inter_compl_of_ncard_add_ncard_lt + theorem Set.nonempty_inter_of_le_ncard_add_ncard + theorem Set.nonempty_inter_of_lt_ncard_add_ncard + theorem Set.union_ne_univ_of_ncard_add_ncard_lt Modified Mathlib/GroupTheory/GroupAction/FixingSubgroup.lean + theorem fixingSubgroup_empty Added Mathlib/GroupTheory/GroupAction/Jordan.lean + theorem Equiv.Perm.alternatingGroup_le_of_isPreprimitive_of_isThreeCycle_mem + theorem Equiv.Perm.eq_top_of_isPreprimitive_of_isSwap_mem + theorem Equiv.Perm.isMultiplyPretransitive_of_nontrivial + theorem Equiv.Perm.isPretransitive_of_isCycle_mem + theorem Equiv.Perm.subgroup_eq_top_of_nontrivial + theorem MulAction.IsPreprimitive.isMultiplyPreprimitive + theorem MulAction.IsPreprimitive.is_two_motive_of_is_motive + theorem MulAction.IsPreprimitive.is_two_preprimitive + theorem MulAction.IsPreprimitive.is_two_pretransitive + theorem normalClosure_of_stabilizer_eq_top Modified Mathlib/GroupTheory/GroupAction/MultiplePrimitivity.lean Modified Mathlib/GroupTheory/GroupAction/MultipleTransitivity.lean - theorem Equiv.Perm.eq_top_if_isMultiplyPretransitive - theorem Equiv.Perm.isMultiplyPretransitive + theorem IsMultiplyPretransitive.alternatingGroup_le - theorem SubMulAction.ofFixingSubgroup.isMultiplyPretransitive' - theorem SubMulAction.ofFixingSubgroup.isMultiplyPretransitive + theorem SubMulAction.ofStabilizer.AlternatingGroup.isMultiplyPretransitive + theorem SubMulAction.ofStabilizer.AlternatingGroup.isPreprimitive_of_three_le_card + theorem SubMulAction.ofStabilizer.AlternatingGroup.isPretransitive_of_three_le_card + theorem SubMulAction.ofStabilizer.AlternatingGroup.isTrivialBlock_of_isBlock + theorem SubMulAction.ofStabilizer.Equiv.Perm.eq_top_of_isMultiplyPretransitive + theorem SubMulAction.ofStabilizer.Equiv.Perm.isMultiplyPretransitive + theorem SubMulAction.ofStabilizer.MulAction.IsMultiplyPretransitive.index_of_fixingSubgroup_eq + theorem SubMulAction.ofStabilizer.MulAction.IsMultiplyPretransitive.index_of_fixingSubgroup_mul + theorem SubMulAction.ofStabilizer.ofFixingSubgroup.isMultiplyPretransitive' + theorem SubMulAction.ofStabilizer.ofFixingSubgroup.isMultiplyPretransitive Modified Mathlib/GroupTheory/GroupAction/Primitive.lean + theorem MulAction.isTrivialBlock_of_card_le_two Modified Mathlib/GroupTheory/GroupAction/SubMulAction/OfFixingSubgroup.lean + theorem SubMulAction.IsPreprimitive.isPreprimitive_ofFixingSubgroup_inter + theorem SubMulAction.IsPretransitive.isPretransitive_ofFixingSubgroup_inter Modified Mathlib/GroupTheory/GroupAction/SubMulAction/OfStabilizer.lean + theorem SubMulAction.ENat_card_ofStabilizer_add_one_eq - theorem SubMulAction.Enat_card_ofStabilizer_eq_add_one + theorem SubMulAction.nat_card_ofStabilizer_add_one_eq Modified Mathlib/GroupTheory/Perm/Cycle/Type.lean + theorem Equiv.Perm.IsSwap.orderOf + theorem Equiv.Perm.isSwap_iff_cycleType Modified Mathlib/SetTheory/Cardinal/Embedding.lean + theorem Fin.Embedding.restrictSurjective_of_le_ENatCard + theorem Fin.Embedding.restrictSurjective_of_le_natCard 2025-10-04 19:42:01 0751bf5 chore: add a space before "with" in finset sum notation (#30194) Currently, `∑ i ∈ Finset.range 10 with Even i, i ^ i` prints as `∑ i ∈ Finset.range 10with Even i, i ^ i`. This PR fixes that. ESTIMATED CHANGES Modified Mathlib/Algebra/BigOperators/Group/Finset/Defs.lean 2025-10-04 13:07:05 b557810 chore(Data): golf entire `mem_image_const`, `natCast_pred_of_pos` and `div_sqrt` using `grind` (#30186) ESTIMATED CHANGES Modified Mathlib/Data/Finset/Image.lean Modified Mathlib/Data/Int/Init.lean Modified Mathlib/Data/Real/Sqrt.lean 2025-10-04 10:27:47 6a6dd70 feat(Order): generalize `Finset.exists_maximalFor` to transitive orders (#30113) Currently `exists_maximalFor` and it's related analogs are only defined for Preorders. I generalize the results where it is possible to do so to transitive relations without requiring reflexivity. This was necessary for work where I needed to work with < and find maximums. ESTIMATED CHANGES Modified Mathlib/Order/Basic.lean Modified Mathlib/Order/Preorder/Finite.lean 2025-10-04 09:36:09 b4264fb feat(NormedSpace/Alternating/Uncurry/Fin): new file (#29957) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/NormedSpace/Alternating/Uncurry/Fin.lean + theorem ContinuousAlternatingMap.alternatizeUncurryFinCLM_apply + theorem ContinuousAlternatingMap.alternatizeUncurryFin_add + theorem ContinuousAlternatingMap.alternatizeUncurryFin_alternatizeUncurryFinCLM_comp_of_symmetric + theorem ContinuousAlternatingMap.alternatizeUncurryFin_apply + theorem ContinuousAlternatingMap.alternatizeUncurryFin_curryLeft + theorem ContinuousAlternatingMap.alternatizeUncurryFin_smul + theorem ContinuousAlternatingMap.map_insertNth + theorem ContinuousAlternatingMap.neg_one_pow_smul_map_insertNth + theorem ContinuousAlternatingMap.neg_one_pow_smul_map_removeNth_add_eq_zero_of_eq + theorem ContinuousAlternatingMap.norm_alternatizeUncurryFinCLM_le + theorem ContinuousAlternatingMap.norm_alternatizeUncurryFin_le + theorem ContinuousAlternatingMap.toAlternatingMap_alternatizeUncurryFin Modified Mathlib/LinearAlgebra/Alternating/Uncurry/Fin.lean + def AlternatingMap.alternatizeUncurryFin + def AlternatingMap.alternatizeUncurryFinLM + theorem AlternatingMap.alternatizeUncurryFin_add + theorem AlternatingMap.alternatizeUncurryFin_alternatizeUncurryFinLM_comp_of_symmetric + theorem AlternatingMap.alternatizeUncurryFin_apply + theorem AlternatingMap.alternatizeUncurryFin_curryLeft + theorem AlternatingMap.alternatizeUncurryFin_smul - def AlternatingMap.uncurryFin - def AlternatingMap.uncurryFinLM - theorem AlternatingMap.uncurryFin_add - theorem AlternatingMap.uncurryFin_apply - theorem AlternatingMap.uncurryFin_curryLeft - theorem AlternatingMap.uncurryFin_smul - theorem AlternatingMap.uncurryFin_uncurryFinLM_comp_of_symmetric 2025-10-04 08:50:36 b501241 feat(Analysis/Convex): functoriality of the standard simplex (#28891) When `f : X → Y` is a map between finite types, and `S` is an ordered semiring, we define the maps `stdSimplex.map f : stdSimplex S X → stdSimplex S Y`. In the case `S := ℝ`, we show that these maps are continuous. In a future PR #28893, the definition of the topological simplex in `AlgebraicTopology` shall be refactored. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Analysis/Convex/StdSimplex.lean + theorem stdSimplex.continuous_map + theorem stdSimplex.ext + theorem stdSimplex.image_linearMap + theorem stdSimplex.le_one + theorem stdSimplex.map_coe + theorem stdSimplex.map_comp_apply + theorem stdSimplex.map_id_apply + theorem stdSimplex.map_vertex + theorem stdSimplex.sum_eq_one + theorem stdSimplex.vertex_coe + theorem stdSimplex.zero_le Modified Mathlib/LinearAlgebra/Finsupp/Pi.lean + theorem FunOnFinite.linearMap_apply_apply + theorem FunOnFinite.linearMap_comp + theorem FunOnFinite.linearMap_id + theorem FunOnFinite.linearMap_piSingle + theorem FunOnFinite.map_apply_apply + theorem FunOnFinite.map_comp + theorem FunOnFinite.map_id + theorem FunOnFinite.map_piSingle Added Mathlib/Topology/Algebra/Monoid/FunOnFinite.lean + theorem FunOnFinite.continuous_linearMap + theorem FunOnFinite.continuous_map 2025-10-04 08:50:34 321bb74 Add q-expansion identities for Eisenstein series. (#27844) This is PR contains some q-expansion identities that are needed to give the q-expansions of Eisenstein series, which will be added as part of #27606. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Analysis/Complex/Exponential.lean + theorem Complex.exp_nsmul' Added Mathlib/Analysis/Complex/SummableUniformlyOn.lean + theorem SummableLocallyUniformlyOn.differentiableOn Modified Mathlib/Analysis/Normed/Module/FiniteDimension.lean + theorem summable_norm_mul_geometric_of_norm_lt_one' Modified Mathlib/NumberTheory/LSeries/RiemannZeta.lean + theorem two_mul_riemannZeta_eq_tsum_int_inv_pow_of_even Modified Mathlib/NumberTheory/ModularForms/EisensteinSeries/Defs.lean + theorem EisensteinSeries.gammaSetDivGcdEquiv_eq Added Mathlib/NumberTheory/ModularForms/EisensteinSeries/QExpansion.lean + theorem EisensteinSeries.qExpansion_identity + theorem EisensteinSeries.qExpansion_identity_pnat + theorem contDiffOn_tsum_cexp + theorem differentiableAt_iteratedDerivWithin_cexp + theorem iteratedDerivWithin_tsum_cexp_eq + theorem summableLocallyUniformlyOn_iteratedDerivWithin_cexp + theorem summableLocallyUniformlyOn_iteratedDerivWithin_smul_cexp + theorem summable_pow_mul_cexp 2025-10-04 08:50:31 5903e2b feat(AlgebraicTopology/SimplexCategory/GeneratorsRelations/NormalForms): Normal forms for `P_σ`s (#25736) We prove that admissible lists introduced in #21744 indeed provide a suitable normal form for morphisms of `SimplexCategoryGenRel` satisfying `P_σ` (i.e that are compositions of degeneracies). To this end, we introduce `standardσ`, a construction that takes a list and turn it into a composition of `σ i`s in `SimplexCategoryGenRel`. We then prove that, thanks to the fifth simplicial identity, composition on the right by some `σ i` corresponds to simplicial insertion of `i` in the list. This gives existence of a normal form for every morphism satisfying `P_σ`, i.e exhibits such morphism as some `standardσ`. For unicity, we introduce an auxiliary function `simplicialEvalσ : (List ℕ) → ℕ → ℕ` and show that for admissible lists, it lifts to `ℕ` the `orderHom` attached to `toSimplexCategory.map standardσ` and that we can recover elements of the list only by looking at values of this function. Since admissible lists are sorted, this fully characterizes the list, and thus shows that the list only depends on the morphism `standardσ` attached to it. Part of a series of PR formalising that `SimplexCategoryGenRel` is equivalent to `SimplexCategory`. ESTIMATED CHANGES Modified Mathlib/AlgebraicTopology/SimplexCategory/GeneratorsRelations/NormalForms.lean + theorem SimplexCategoryGenRel.exists_normal_form_P_σ + theorem SimplexCategoryGenRel.lt_and_eval_eq_eval_add_one_of_mem_isAdmissible + theorem SimplexCategoryGenRel.mem_isAdmissible_iff + theorem SimplexCategoryGenRel.mem_isAdmissible_of_lt_and_eval_eq_eval_add_one + def SimplexCategoryGenRel.simplicialEvalσ + theorem SimplexCategoryGenRel.simplicialEvalσ_monotone + theorem SimplexCategoryGenRel.simplicialEvalσ_of_isAdmissible + theorem SimplexCategoryGenRel.simplicialEvalσ_of_lt_mem + def SimplexCategoryGenRel.standardσ + theorem SimplexCategoryGenRel.standardσ_comp_standardσ + theorem SimplexCategoryGenRel.standardσ_cons + theorem SimplexCategoryGenRel.standardσ_nil + theorem SimplexCategoryGenRel.standardσ_simplicialInsert 2025-10-04 07:54:24 08f5cd2 chore(Lean/Expr/Basic): move material about rewriting to a new file (#30156) These methods should go into Lean.Meta.Tactic.Rewrite instead, so move them to a new file. I credit Kim, Kyle and Patrick from #3801 for this; Kim's final clean-up eventually introduced these methods. With this moved, the imports for Lean.Expr.Basic can be reduced to just Lean.Expr, which we do. Noticed during work on #26221. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Lean/Expr/Basic.lean - def Lean.Expr.rewrite - def Lean.Expr.rewriteType Added Mathlib/Lean/Meta/Tactic/Rewrite.lean + def Lean.Expr.rewrite + def Lean.Expr.rewriteType Modified Mathlib/Order/Defs/PartialOrder.lean Modified Mathlib/Tactic/Common.lean Modified Mathlib/Tactic/DeprecateTo.lean Modified Mathlib/Tactic/Linarith/Preprocessing.lean Modified Mathlib/Tactic/ToAdditive/Frontend.lean Modified MathlibTest/Lint.lean 2025-10-04 05:32:36 bc0b6c6 chore(SpecialFunctions/Pow/Real): adjust intCast lemma to use int (#30172) The old statement was identical to the natCast one, and did not mention int or intCast at all, so we correct the statement. ESTIMATED CHANGES Modified Mathlib/Analysis/SpecialFunctions/Pow/Real.lean +/- theorem Real.rpow_sub_intCast 2025-10-04 03:18:29 468e675 chore(Analysis/NormedSpace/Extend): deprecate module (#30165) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/NormedSpace/Extend.lean 2025-10-04 03:18:28 57b34ca chore(Lean/Elab/Term): reduce import to match file name (#30155) This file only requires importing Lean.Elab.Term, and it's good practice anyway for the file name and only import to match. Discovering in #26221. ESTIMATED CHANGES Modified Mathlib/Lean/Elab/Term.lean 2025-10-04 03:18:26 1b1f528 feat(RingTheory): {Mv}PowerSeries.{le_}{weighted}Order_prod (#29820) The big operator version of `{le}_{weighted}Order_mul` ESTIMATED CHANGES Modified Mathlib/RingTheory/MvPowerSeries/NoZeroDivisors.lean + theorem MvPowerSeries.order_prod + theorem MvPowerSeries.weightedOrder_prod Modified Mathlib/RingTheory/MvPowerSeries/Order.lean + theorem MvPowerSeries.le_order_prod + theorem MvPowerSeries.le_weightedOrder_prod + theorem MvPowerSeries.weightedOrder_one Modified Mathlib/RingTheory/PowerSeries/Order.lean + theorem PowerSeries.le_order_prod + theorem PowerSeries.order_prod 2025-10-04 03:18:25 9358199 chore(Data/Finite): deprecate `card_le_of_injective`, `card_le_of_surjective` and `card_sum` (#28492) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Galois/Basic.lean Modified Mathlib/Combinatorics/SimpleGraph/Connectivity/WalkCounting.lean Modified Mathlib/Combinatorics/SimpleGraph/Tutte.lean Modified Mathlib/Data/Finite/Card.lean - theorem Finite.card_le_of_injective - theorem Finite.card_le_of_surjective - theorem Finite.card_sum Modified Mathlib/GroupTheory/CommutingProbability.lean Modified Mathlib/GroupTheory/Index.lean 2025-10-04 02:47:21 5bcb7f8 chore(Order/Filter/Finite): clean up (#30154) `protected alias` works now. Also write a module doc. ESTIMATED CHANGES Modified Mathlib/Order/Filter/Finite.lean 2025-10-03 22:56:44 0607ff2 feat(CategoryTheory/MorphismProperty): locality conditions (#30164) These are "upstreamed" from the corresponding definitions for morphism properties of schemes. The old definitions for schemes will be deprecated in a follow-up PR. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/CategoryTheory/MorphismProperty/Basic.lean Added Mathlib/CategoryTheory/MorphismProperty/Local.lean + theorem CategoryTheory.MorphismProperty.IsLocalAtSource.iff_of_zeroHypercover + theorem CategoryTheory.MorphismProperty.IsLocalAtSource.of_le + theorem CategoryTheory.MorphismProperty.IsLocalAtTarget.iff_of_zeroHypercover + theorem CategoryTheory.MorphismProperty.IsLocalAtTarget.mk_of_isStableUnderBaseChange + theorem CategoryTheory.MorphismProperty.IsLocalAtTarget.of_isPullback + theorem CategoryTheory.MorphismProperty.IsLocalAtTarget.of_le Modified Mathlib/CategoryTheory/Sites/Hypercover/Zero.lean + def CategoryTheory.Precoverage.ZeroHypercover.weaken 2025-10-03 20:46:39 f16a915 chore(Topology/Constructions): avoid some defeq abuse (#30097) Uses `x ∈ s` instead of `s x` for `s : Set X`. ESTIMATED CHANGES Modified Mathlib/Topology/Constructions.lean 2025-10-03 19:27:41 1d31a94 feat(CategoryTheory/Limits/Sifted): characterization of sifted categories (#25735) Characterize small sifted as those for which the `Type`-valued colimit functor preserves finite product. Deduce that filtered categories, and that categories admitting a final functor from a sifted categories are also sifted. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Limits/Indization/FilteredColimits.lean Modified Mathlib/CategoryTheory/Limits/Sifted.lean + theorem CategoryTheory.IsSifted.factorization_prodComparison_colim + theorem CategoryTheory.IsSifted.isSiftedOrEmpty_of_colim_preservesBinaryProducts + theorem CategoryTheory.IsSifted.isSiftedOrEmpty_of_colim_preservesFiniteProducts + theorem CategoryTheory.IsSifted.nonempty_of_colim_preservesLimitsOfShapeFinZero + theorem CategoryTheory.IsSifted.of_colim_preservesFiniteProducts + theorem CategoryTheory.IsSifted.of_final_functor_from_sifted' + theorem CategoryTheory.IsSifted.of_final_functor_from_sifted 2025-10-03 17:59:36 bd5729a doc(CategoryTheory/Limits): update docstrings of `HasPullbacks` etc (#30145) Update the docstrings of `HasPullbacks`, `HasEqualizers` etc. to reflect that those declarations are propositions and no longer carry any choices of limits as data. This came up in #29795. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Limits/Shapes/BinaryProducts.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Biproducts.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Equalizers.lean Modified Mathlib/CategoryTheory/Limits/Shapes/FiniteLimits.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Pullback/HasPullback.lean Modified Mathlib/CategoryTheory/Limits/Shapes/WideEqualizers.lean Modified Mathlib/CategoryTheory/Limits/Shapes/WidePullbacks.lean 2025-10-03 17:59:34 fe0511b feat(CategoryTheory/CopyDiscardCategory): add Copy-Discard categories (#29939) This PR introduces copy-discard categories for categorical probability theory (see #29657 for future work). This PR builds on #29919. ## Main additions ### 1. Copy-discard categories (`CopyDiscardCategory`) A symmetric monoidal category where every object has commutative comonoid structure (copy and discard operations) compatible with the tensor product. ### 2. Deterministic morphisms Morphisms that preserve copy-discard structure. In probabilistic interpretations, these lack randomness. In Cartesian categories, all morphisms are deterministic. ## Mathematical significance Copy-discard categories provide the base for categorical probability (a later PR will build Markov categories from this); morphisms model stochastic processes, copy creates perfect correlation, discard marginalizes. ## Implementation notes - Builds on the `CommComonObj` class in #29919 - Uses type class instances to provide copy/discard for all objects - The `Deterministic` type class abbreviates `IsComonHom` for readability ## References Added citations to: - Cho & Jacobs (2019) on disintegration and Bayesian inversion with string diagrams - Fritz (2020) on categorical approaches to statistics and conditional independence [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/CopyDiscardCategory/Basic.lean Added Mathlib/CategoryTheory/CopyDiscardCategory/Cartesian.lean Added Mathlib/CategoryTheory/CopyDiscardCategory/Deterministic.lean + theorem CategoryTheory.Deterministic.copy_natural + theorem CategoryTheory.Deterministic.discard_natural Modified docs/references.bib 2025-10-03 17:59:33 a07ecdd feat(CategoryTheory/Limits/Shapes/Products): add limMapPi and sigmaMapColim (#27815) Add the canonical morphism from a limit to the product over its objects. Prove that it is a monomorphism. Dually, add the canonical morphism to a colimit from the coproduc of its objects and prove that it is an epimorphism. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Limits/Shapes/Products.lean 2025-10-03 17:24:40 ddbd4d2 feat(CharP/*): generalize a lemma, add `ringChar_eq_one` (#29952) ESTIMATED CHANGES Modified Mathlib/Algebra/CharP/Defs.lean + theorem ringChar.ringChar_eq_one + theorem ringChar.ringChar_subsingleton Modified Mathlib/Algebra/CharP/Invertible.lean +/- theorem not_ringChar_dvd_of_invertible 2025-10-03 16:11:14 32e6452 feat(Algebra): IsDomain R[X] ↔ IsDomain R ∧ IsCancelAdd R (#27238) ESTIMATED CHANGES Modified Counterexamples.lean Added Counterexamples/PolynomialIsDomain.lean + theorem NatMaxAdd.natCast_eq_one + theorem NatMaxAdd.noZeroDivisors_polynomial + theorem NatMaxAdd.not_isCancelAdd + theorem NatMaxAdd.not_isDomain_polynomial + def NatMaxAdd + theorem not_isDomain_commSemiring_imp_isDomain_polynomial Modified Mathlib/Algebra/Group/Defs.lean Modified Mathlib/Algebra/Group/Opposite.lean Modified Mathlib/Algebra/GroupWithZero/TransferInstance.lean Modified Mathlib/Algebra/Opposites.lean + theorem MulOpposite.isLeftCancelAdd_iff + theorem MulOpposite.isRightCancelAdd_iff Modified Mathlib/Algebra/Polynomial/Basic.lean + theorem Polynomial.noZeroDivisors_iff Modified Mathlib/RingTheory/Polynomial/Opposites.lean + theorem Polynomial.isDomain_iff + theorem Polynomial.isLeftCancelMulZero_iff + theorem Polynomial.isRightCancelMulZero_iff 2025-10-03 15:29:23 17b380c chore(Algebra/Ring/Invertible): fix two names (#30166) ESTIMATED CHANGES Modified Mathlib/Algebra/Ring/Invertible.lean + theorem AddUnits.neg_mulLeft + theorem AddUnits.neg_mulRight - theorem AddUnits.neg_mul_left - theorem AddUnits.neg_mul_right 2025-10-03 14:43:36 3bddb2a chore: replace CategoryTheory.FreeGroupoid with Quiver.FreeGroupoid (#30115) As suggested by Riou in #29279, when we build the free groupoid on a category the name `CategoryTheory.FreeGroupoid` will be inappropriate and confusing. We put definitions in the file `CategoryTheory.FreeGroupoid` in the namespace `Quiver.FreeGroupoid` instead. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Groupoid/FreeGroupoid.lean - def CategoryTheory.FreeGroupoid - theorem CategoryTheory.Groupoid.Free.congr_comp_reverse - theorem CategoryTheory.Groupoid.Free.congr_reverse - theorem CategoryTheory.Groupoid.Free.congr_reverse_comp - theorem CategoryTheory.Groupoid.Free.freeGroupoidFunctor_comp - theorem CategoryTheory.Groupoid.Free.freeGroupoidFunctor_id - def CategoryTheory.Groupoid.Free.lift - theorem CategoryTheory.Groupoid.Free.lift_spec - theorem CategoryTheory.Groupoid.Free.lift_unique - def CategoryTheory.Groupoid.Free.of - theorem CategoryTheory.Groupoid.Free.of_eq - def CategoryTheory.Groupoid.Free.quotInv - inductive CategoryTheory.Groupoid.Free.redStep - def CategoryTheory.freeGroupoidFunctor + theorem Quiver.FreeGroupoid.congr_comp_reverse + theorem Quiver.FreeGroupoid.congr_reverse + theorem Quiver.FreeGroupoid.congr_reverse_comp + def Quiver.FreeGroupoid.lift + theorem Quiver.FreeGroupoid.lift_spec + theorem Quiver.FreeGroupoid.lift_unique + def Quiver.FreeGroupoid.of + theorem Quiver.FreeGroupoid.of_eq + def Quiver.FreeGroupoid.quotInv + inductive Quiver.FreeGroupoid.redStep + def Quiver.FreeGroupoid + def Quiver.freeGroupoidFunctor + theorem Quiver.freeGroupoidFunctor_comp + theorem Quiver.freeGroupoidFunctor_id 2025-10-03 14:29:07 f962fa3 chore(CategoryTheory/Monoidal/Mon): reorder (#30157) Move the `BraidedCategory (Mon_ C)` instance earlier in the file. Indeed I think it makes more sense like this (defining `MonClass`, then `Mon`, then `Functor.mapMon`). This is necessary for the material in #29136 to be placed in a relatively non-silly order within the file. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Monoidal/Mon_.lean - theorem CategoryTheory.Equivalence.Mon.associator_hom_hom - theorem CategoryTheory.Equivalence.Mon.associator_inv_hom - theorem CategoryTheory.Equivalence.Mon.braiding_hom_hom - theorem CategoryTheory.Equivalence.Mon.braiding_inv_hom - theorem CategoryTheory.Equivalence.Mon.forget_δ - theorem CategoryTheory.Equivalence.Mon.forget_ε - theorem CategoryTheory.Equivalence.Mon.forget_η - theorem CategoryTheory.Equivalence.Mon.forget_μ - theorem CategoryTheory.Equivalence.Mon.leftUnitor_hom_hom - theorem CategoryTheory.Equivalence.Mon.leftUnitor_inv_hom - theorem CategoryTheory.Equivalence.Mon.rightUnitor_hom_hom - theorem CategoryTheory.Equivalence.Mon.rightUnitor_inv_hom - theorem CategoryTheory.Equivalence.Mon.tensorObj_mul - theorem CategoryTheory.Equivalence.Mon.tensorObj_one - theorem CategoryTheory.Equivalence.Mon.tensorUnit_X - theorem CategoryTheory.Equivalence.Mon.tensorUnit_mul - theorem CategoryTheory.Equivalence.Mon.tensorUnit_one - theorem CategoryTheory.Equivalence.Mon.tensor_mul - theorem CategoryTheory.Equivalence.Mon.tensor_one - theorem CategoryTheory.Equivalence.Mon.whiskerLeft_hom - theorem CategoryTheory.Equivalence.Mon.whiskerRight_hom - theorem CategoryTheory.Equivalence.MonObj.Mon_tensor_mul_assoc - theorem CategoryTheory.Equivalence.MonObj.Mon_tensor_mul_one - theorem CategoryTheory.Equivalence.MonObj.Mon_tensor_one_mul - theorem CategoryTheory.Equivalence.MonObj.mul_associator - theorem CategoryTheory.Equivalence.MonObj.mul_braiding - theorem CategoryTheory.Equivalence.MonObj.mul_leftUnitor - theorem CategoryTheory.Equivalence.MonObj.mul_rightUnitor - theorem CategoryTheory.Equivalence.MonObj.one_associator - theorem CategoryTheory.Equivalence.MonObj.one_braiding - theorem CategoryTheory.Equivalence.MonObj.one_leftUnitor - theorem CategoryTheory.Equivalence.MonObj.one_rightUnitor + theorem Mon.associator_hom_hom + theorem Mon.associator_inv_hom + theorem Mon.braiding_hom_hom + theorem Mon.braiding_inv_hom + theorem Mon.forget_δ + theorem Mon.forget_ε + theorem Mon.forget_η + theorem Mon.forget_μ + theorem Mon.leftUnitor_hom_hom + theorem Mon.leftUnitor_inv_hom + theorem Mon.rightUnitor_hom_hom + theorem Mon.rightUnitor_inv_hom + theorem Mon.tensorObj_mul + theorem Mon.tensorObj_one + theorem Mon.tensorUnit_X + theorem Mon.tensorUnit_mul + theorem Mon.tensorUnit_one + theorem Mon.tensor_mul + theorem Mon.tensor_one + theorem Mon.whiskerLeft_hom + theorem Mon.whiskerRight_hom + theorem MonObj.Mon_tensor_mul_assoc + theorem MonObj.Mon_tensor_mul_one + theorem MonObj.Mon_tensor_one_mul + theorem MonObj.mul_associator + theorem MonObj.mul_braiding + theorem MonObj.mul_leftUnitor + theorem MonObj.mul_rightUnitor + theorem MonObj.one_associator + theorem MonObj.one_braiding + theorem MonObj.one_leftUnitor + theorem MonObj.one_rightUnitor 2025-10-03 10:42:17 4b5fe0e feat(Probability): Fernique's theorem for distributions that are invariant by rotation (#28343) Let `μ` be a finite measure on a second-countable normed space `E` such that the product measure `μ.prod μ` on `E × E` is invariant by rotation of angle `-π/4`. Then there exists a constant `C > 0` such that the function `x ↦ exp (C * ‖x‖ ^ 2)` is integrable with respect to `μ`. The main application of this theorem will be for Gaussian measures. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Data/Real/Sqrt.lean + theorem Real.inv_sqrt_two_sub_one Added Mathlib/Probability/Distributions/Fernique.lean + def ContinuousLinearMap.rotation + theorem ContinuousLinearMap.rotation_apply + theorem ProbabilityTheory.Fernique.lintegral_closedBall_diff_exp_logRatio_mul_sq_le + theorem ProbabilityTheory.Fernique.lintegral_exp_mul_sq_norm_le_mul + theorem ProbabilityTheory.Fernique.logRatio_mono + theorem ProbabilityTheory.Fernique.logRatio_mul_normThreshold_add_one_le + theorem ProbabilityTheory.Fernique.logRatio_nonneg + theorem ProbabilityTheory.Fernique.logRatio_pos + theorem ProbabilityTheory.Fernique.lt_normThreshold_zero + theorem ProbabilityTheory.Fernique.measure_gt_normThreshold_le_exp + theorem ProbabilityTheory.Fernique.measure_gt_normThreshold_le_rpow + theorem ProbabilityTheory.Fernique.measure_le_mul_measure_gt_normThreshold_le_of_map_rotation_eq_self + theorem ProbabilityTheory.Fernique.normThreshold_add_one + theorem ProbabilityTheory.Fernique.normThreshold_eq + theorem ProbabilityTheory.Fernique.normThreshold_strictMono + theorem ProbabilityTheory.Fernique.normThreshold_zero + theorem ProbabilityTheory.Fernique.sq_normThreshold_add_one_le + theorem ProbabilityTheory.Fernique.tendsto_normThreshold_atTop + theorem ProbabilityTheory.exists_integrable_exp_sq_of_map_rotation_eq_self' + theorem ProbabilityTheory.exists_integrable_exp_sq_of_map_rotation_eq_self + theorem ProbabilityTheory.exists_integrable_exp_sq_of_map_rotation_eq_self_of_isProbabilityMeasure + theorem ProbabilityTheory.lintegral_exp_mul_sq_norm_le_of_map_rotation_eq_self + theorem ProbabilityTheory.measure_le_mul_measure_gt_le_of_map_rotation_eq_self + theorem StrictMono.exists_between_of_tendsto_atTop Modified docs/references.bib 2025-10-03 07:54:37 452e1c3 chore: remove tactic `simp_lex` and use `simp` instead (#28111) Motivation: `simp_lex` is just shorthand for `refine toLex.surjective.forall₃.2 ?_; rintro (a | a) (b | b) (c | c) <;> simp`, so plain `simp` seems preferable. ESTIMATED CHANGES Modified Mathlib/Data/Sum/Interval.lean 2025-10-03 07:18:19 f44f6a5 feature(Analysis/LocallyConvex/WeakSpace): weak closed convex hull equals closed convex hull (#29258) The weak closed convex hull is equal to the closed convex hull in the original topology. ESTIMATED CHANGES Modified Mathlib/Analysis/LocallyConvex/WeakSpace.lean + theorem toWeakSpace_closedConvexHull_eq Modified Mathlib/Topology/Algebra/Module/WeakDual.lean 2025-10-03 06:19:43 6dcfd42 refactor(AlgebraicGeometry): replace `Scheme.Cover` by an `abbrev` for `ZeroHypercover` (#29061) We replace `Scheme.Cover` by an `abbrev` for `Coverage.ZeroHypercover`. The main motivation is to allow for a generalization of `IsLocalAtTarget`, `IsLocalAtSource` etc. to arbitrary coverages. The second motivation is to reduce duplication in the upcoming introduction of categories of analytic spaces (e.g. adic spaces), by generalizing notions of `Cover` to suitable general categories. Future work: Besides the generalisation of `IsLocalAtTarget`, the content of `AlgebraicGeometry.Cover.Over` and `AlgebraicGeometry.Sites.Small` shall be generalized to general coverages instead of the coverage induced by a morphism property. ESTIMATED CHANGES Modified Mathlib/AlgebraicGeometry/AffineSpace.lean Modified Mathlib/AlgebraicGeometry/AffineTransitionLimit.lean Modified Mathlib/AlgebraicGeometry/Cover/Directed.lean Modified Mathlib/AlgebraicGeometry/Cover/MorphismProperty.lean +/- def AlgebraicGeometry.Scheme.AffineCover.cover +/- def AlgebraicGeometry.Scheme.Cover.Hom.comp +/- def AlgebraicGeometry.Scheme.Cover.Hom.id +/- structure AlgebraicGeometry.Scheme.Cover.Hom - def AlgebraicGeometry.Scheme.Cover.add - def AlgebraicGeometry.Scheme.Cover.bind +/- def AlgebraicGeometry.Scheme.Cover.changeProp +/- theorem AlgebraicGeometry.Scheme.Cover.comp_app +/- theorem AlgebraicGeometry.Scheme.Cover.comp_idx_apply +/- def AlgebraicGeometry.Scheme.Cover.copy + theorem AlgebraicGeometry.Scheme.Cover.covers +/- theorem AlgebraicGeometry.Scheme.Cover.exists_eq +/- theorem AlgebraicGeometry.Scheme.Cover.iUnion_range +/- theorem AlgebraicGeometry.Scheme.Cover.id_app +/- theorem AlgebraicGeometry.Scheme.Cover.id_idx_apply + def AlgebraicGeometry.Scheme.Cover.idx - def AlgebraicGeometry.Scheme.Cover.inter + theorem AlgebraicGeometry.Scheme.Cover.map_prop - def AlgebraicGeometry.Scheme.Cover.pullbackCover' - def AlgebraicGeometry.Scheme.Cover.pullbackCover - def AlgebraicGeometry.Scheme.Cover.reindex +/- def AlgebraicGeometry.Scheme.Cover.ulift - structure AlgebraicGeometry.Scheme.Cover + theorem AlgebraicGeometry.Scheme.presieve₀_mem_precoverage_iff Modified Mathlib/AlgebraicGeometry/Cover/Open.lean Modified Mathlib/AlgebraicGeometry/Cover/Over.lean +/- def AlgebraicGeometry.Scheme.Cover.pullbackCoverOver' +/- def AlgebraicGeometry.Scheme.Cover.pullbackCoverOver +/- def AlgebraicGeometry.Scheme.Cover.pullbackCoverOverProp' +/- def AlgebraicGeometry.Scheme.Cover.pullbackCoverOverProp Modified Mathlib/AlgebraicGeometry/Cover/Sigma.lean Modified Mathlib/AlgebraicGeometry/FunctionField.lean Modified Mathlib/AlgebraicGeometry/Gluing.lean - theorem AlgebraicGeometry.Scheme.IsLocallyDirected.openCover_I₀ - theorem AlgebraicGeometry.Scheme.IsLocallyDirected.openCover_X - theorem AlgebraicGeometry.Scheme.IsLocallyDirected.openCover_f Modified Mathlib/AlgebraicGeometry/IdealSheaf/Basic.lean Modified Mathlib/AlgebraicGeometry/IdealSheaf/Subscheme.lean Modified Mathlib/AlgebraicGeometry/Limits.lean Modified Mathlib/AlgebraicGeometry/Morphisms/Basic.lean Modified Mathlib/AlgebraicGeometry/Morphisms/ClosedImmersion.lean Modified Mathlib/AlgebraicGeometry/Morphisms/Constructors.lean Modified Mathlib/AlgebraicGeometry/Morphisms/Finite.lean Modified Mathlib/AlgebraicGeometry/Morphisms/FinitePresentation.lean Modified Mathlib/AlgebraicGeometry/Morphisms/FiniteType.lean Modified Mathlib/AlgebraicGeometry/Morphisms/FormallyUnramified.lean Modified Mathlib/AlgebraicGeometry/Morphisms/LocalClosure.lean Modified Mathlib/AlgebraicGeometry/Morphisms/QuasiSeparated.lean Modified Mathlib/AlgebraicGeometry/Morphisms/RingHomProperties.lean Modified Mathlib/AlgebraicGeometry/Morphisms/Separated.lean Modified Mathlib/AlgebraicGeometry/Morphisms/SurjectiveOnStalks.lean Modified Mathlib/AlgebraicGeometry/Morphisms/UnderlyingMap.lean Modified Mathlib/AlgebraicGeometry/Noetherian.lean Modified Mathlib/AlgebraicGeometry/Properties.lean Modified Mathlib/AlgebraicGeometry/Pullbacks.lean Modified Mathlib/AlgebraicGeometry/RationalMap.lean Modified Mathlib/AlgebraicGeometry/Restrict.lean Modified Mathlib/AlgebraicGeometry/Sites/Pretopology.lean +/- theorem AlgebraicGeometry.Scheme.Cover.mem_grothendieckTopology +/- theorem AlgebraicGeometry.Scheme.Cover.mem_pretopology Modified Mathlib/AlgebraicGeometry/Sites/Small.lean +/- theorem AlgebraicGeometry.Scheme.Cover.overEquiv_generate_toPresieveOver_eq_ofArrows +/- def AlgebraicGeometry.Scheme.Cover.toPresieveOver +/- def AlgebraicGeometry.Scheme.Cover.toPresieveOverProp +/- theorem AlgebraicGeometry.Scheme.Cover.toPresieveOver_le_arrows_iff Modified Mathlib/AlgebraicGeometry/SpreadingOut.lean Modified Mathlib/AlgebraicGeometry/Stalk.lean Modified Mathlib/CategoryTheory/Sites/Hypercover/Zero.lean 2025-10-03 04:27:24 3fdbf34 chore(Data): golf `Data/` using `grind` (#26640) ESTIMATED CHANGES Modified Mathlib/Data/EReal/Operations.lean Modified Mathlib/Data/Finset/Powerset.lean Modified Mathlib/Data/List/Basic.lean Modified Mathlib/Data/List/Cycle.lean Modified Mathlib/Data/List/FinRange.lean +/- theorem List.finRange_succ_eq_map Modified Mathlib/Data/List/Induction.lean Modified Mathlib/Data/List/Nodup.lean Modified Mathlib/Data/List/Sigma.lean Modified Mathlib/Data/PEquiv.lean Modified Mathlib/Data/PNat/Xgcd.lean Modified Mathlib/Data/Prod/Lex.lean Modified Mathlib/Data/Real/GoldenRatio.lean Modified Mathlib/Data/Set/Lattice.lean Modified Mathlib/Data/Stream/Init.lean 2025-10-02 21:48:35 3407d8a chore: Revert "chore: deprecate `Traversable` deriving handler (#29573)" (#29931) This reverts commit f4506f7151c9057fd9f8714b2a1f13a647fe2352. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Tactic.lean Renamed Mathlib/Deprecated/Tactic/DeriveTraversable.lean to Mathlib/Tactic/DeriveTraversable.lean Modified MathlibTest/Traversable.lean 2025-10-02 21:06:29 e793704 chore(Convex/Extreme): redefine `IsExtreme` and `extremePoints` (#29950) Remove a redundant conclusion from the definitions, so that it's easier to prove these statements now. As suggested by @YaelDillies in a comment to #23458 ESTIMATED CHANGES Modified Mathlib/Analysis/Convex/Exposed.lean Modified Mathlib/Analysis/Convex/Extreme.lean + theorem IsExtreme.right_mem_of_mem_openSegment + structure IsExtreme - def IsExtreme Modified Mathlib/Analysis/Convex/KreinMilman.lean Modified Mathlib/Dynamics/Ergodic/Extreme.lean 2025-10-02 20:11:11 3c14b55 doc(Logic): update library note [fact non-instances] (#30125) Going through all library notes I noticed that this note still refers Lean 3's instance search mechanisms. Instance synthesis is still not a good proof search mechanism, but it's smarter than before and looks at more than the head symbol now. ESTIMATED CHANGES Modified Mathlib/Logic/Basic.lean 2025-10-02 19:28:18 3da1779 feat(Order): synchronize IsAntichain API with IsChain (#29834) For `IsAntichain`, make `empty`/`singleton` two simp lemmas that exactly match the API in `IsChain`, and add an analogous `isAntichain_union` lemma. For `IsChain`, add a `preimage` lemma matching IsAntichain's and copy over a set of lemmas about different mappings preserving the predicate. ESTIMATED CHANGES Modified Mathlib/Order/Antichain.lean - theorem isAntichain_singleton + theorem isAntichain_union Modified Mathlib/Order/Preorder/Chain.lean + theorem IsChain.image_embedding + theorem IsChain.image_embedding_iff + theorem IsChain.image_iso + theorem IsChain.image_iso_iff + theorem IsChain.image_relEmbedding + theorem IsChain.image_relEmbedding_iff + theorem IsChain.image_relIso + theorem IsChain.image_relIso_iff + theorem IsChain.preimage + theorem IsChain.preimage_embedding + theorem IsChain.preimage_iso + theorem IsChain.preimage_iso_iff + theorem IsChain.preimage_relEmbedding + theorem IsChain.preimage_relIso 2025-10-02 18:41:23 84a5d74 chore(VectorBundle/Riemannian): use `grw` (#29915) ESTIMATED CHANGES Modified Mathlib/Topology/VectorBundle/Riemannian.lean 2025-10-02 18:14:39 18226f6 feature(Analysis/Convex/Basic): Convexity and the algebra map (#29248) Let `R` and `A` be ordered rings, `A` an `R`-algebra and `R`, `A`, `M` a scalar tower. We provide sufficient conditions for an `R`-convex subset of `M` to be `A`-convex and for an `A`-convex subset of `M` to be `R`-convex. These are used to show that, when `K` is `RCLike` and `ℝ` `K` `E` is a scalar tower, a set is `K`-convex if and only if it is `ℝ`-convex. Used in #29258 ESTIMATED CHANGES Modified Mathlib/Analysis/Convex/Basic.lean + theorem convex_of_nonneg_surjective_algebraMap Modified Mathlib/Analysis/RCLike/Lemmas.lean + theorem convex_RCLike_iff_convex_real 2025-10-02 17:50:27 27e8b12 chore(Bicategory/Strict): move around files related to strict bicategories (#30134) This PR moves around some files in preparation for #30132, which introduces the notion of "strict" pseudofunctors. I want to add this new definition to the file `Bicategory/Functor/Strict.lean`, which already contains API for pseudofunctors *between* strict bicategories. My addition is about strict pseudofunctors between arbitrary bicategories. To make the distinction more clear I have decided to rearrange the file structure slightly. First I created a folder `Bicategory/Strict/` to which I move the file `Bicategory/Strict.lean` (as `Bicategory/Strict/Basic.lean`). Then I move the current file `Bicategory/Functor/Strict.lean` to `Bicategory/Strict/Pseudofunctor.lean` as I believe this fits better with the contents of the file. Then the name `Bicategory/Functor/Strict.lean` is freed up to contain the notion of a "strict" pseudofunctor in the upcoming #30132. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/CategoryTheory/Bicategory/LocallyDiscrete.lean Renamed Mathlib/CategoryTheory/Bicategory/Strict.lean to Mathlib/CategoryTheory/Bicategory/Strict/Basic.lean Renamed Mathlib/CategoryTheory/Bicategory/Functor/Strict.lean to Mathlib/CategoryTheory/Bicategory/Strict/Pseudofunctor.lean Modified Mathlib/CategoryTheory/Category/Cat.lean Modified Mathlib/CategoryTheory/FiberedCategory/BasedCategory.lean 2025-10-02 17:25:09 3576a64 feat(CategoryTheory/Bicategory): EqToHom for bicategories (#28242) We generalize the `eqToHom` construction from `Category` to `CategoryStruct`, allowing its usage in bicategorical contexts. We introduce a file `CategoryTheory/Bicategory/EqToHom` that records some of the properties of `eqToHom`s 1-morphisms and 2-morphisms, such as the transitivity up to isomorphism of `eqToHom` 1-morphisms, and congruence lemmas for unitors, associators and whiskering with respects to `eqToHom` 2-morphisms. This generalization and these congruence lemmas will be used to define icons between lax functors, and work with categories of strictly unitary lax/pseudo-functors (e.g for pseudocomposable arrows and lax-composable arrows in bicategories, which are part of the definitions of nerve constructions in bicategories). ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Bicategory/EqToHom.lean + theorem CategoryTheory.Bicategory.associator_eqToHom_hom + theorem CategoryTheory.Bicategory.associator_eqToHom_inv + theorem CategoryTheory.Bicategory.associator_hom_congr + theorem CategoryTheory.Bicategory.associator_inv_congr + theorem CategoryTheory.Bicategory.congr_whiskerLeft + def CategoryTheory.Bicategory.eqToHomTransIso + theorem CategoryTheory.Bicategory.eqToHomTransIso_refl_left + theorem CategoryTheory.Bicategory.eqToHomTransIso_refl_refl + theorem CategoryTheory.Bicategory.eqToHomTransIso_refl_right + theorem CategoryTheory.Bicategory.leftUnitor_hom_congr + theorem CategoryTheory.Bicategory.leftUnitor_inv_congr + theorem CategoryTheory.Bicategory.rightUnitor_hom_congr + theorem CategoryTheory.Bicategory.rightUnitor_inv_congr + theorem CategoryTheory.Bicategory.whiskerRight_congr Modified Mathlib/CategoryTheory/EqToHom.lean +/- def CategoryTheory.eqToHom +/- theorem CategoryTheory.eqToHom_refl 2025-10-02 16:21:32 adb7d97 feat(Set): generalize Set.(e)ncard_prod (#30128) Currently Set.(e)ncard_prod computes the cardinality of a product when both s and t are of type `Set α`, perform the trivial generalization of allowing t to be of a different type. ESTIMATED CHANGES Modified Mathlib/Data/Set/Card.lean +/- theorem Set.encard_prod +/- theorem Set.ncard_prod 2025-10-02 15:37:59 3a826f5 feat: `Colex` order on pi types (#29080) We define an order instance on `Colex (∀ i, β i)`, so that its `<` relation is `Pi.Lex (· > ·) (· < ·)`. ESTIMATED CHANGES Modified Mathlib/Order/PiLex.lean + theorem Pi.Colex.noMaxOrder' + theorem Pi.colex_asc + theorem Pi.le_toColex_update_self_iff + theorem Pi.lt_toColex_update_self_iff + theorem Pi.toColex_monotone + theorem Pi.toColex_strictMono + theorem Pi.toColex_update_le_self_iff + theorem Pi.toColex_update_lt_self_iff 2025-10-02 15:01:54 4dd34c0 feat(CategoryTheory/Limits/MorphismProperty): dualise lemmas on limits (#30127) We also add the object properties induced by morphism properties for `Comma`, `CostructuredArrow` and `StructuredArrow` and use them accordingly. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Limits/MorphismProperty.lean + theorem CategoryTheory.MorphismProperty.Comma.hasColimit_of_closedUnderColimitsOfShape + theorem CategoryTheory.MorphismProperty.Comma.hasColimitsOfShape_of_closedUnderColimitsOfShape Modified Mathlib/CategoryTheory/MorphismProperty/Comma.lean + def CategoryTheory.MorphismProperty.commaObj + theorem CategoryTheory.MorphismProperty.commaObj_iff + def CategoryTheory.MorphismProperty.costructuredArrowObj + theorem CategoryTheory.MorphismProperty.costructuredArrowObj_iff + def CategoryTheory.MorphismProperty.structuredArrowObj + theorem CategoryTheory.MorphismProperty.structuredArrowObj_iff 2025-10-02 14:28:55 e4f93e7 feat(Probability): characterize conditional independence with conditional distributions (#30024) Two random variables `f, g` are conditionally independent given a third `k` iff the conditional distribution of `f` given `k` and `g` is equal to the conditional distribution of `f` given `k`. ```lean CondIndepFun (mγ.comap k) hk.comap_le g f μ ↔ condDistrib f (fun ω ↦ (k ω, g ω)) μ =ᵐ[μ.map (fun ω ↦ (k ω, g ω))] (condDistrib f k μ).prodMkRight _ ``` From the LeanBandits project. ESTIMATED CHANGES Modified Mathlib/Probability/Independence/Conditional.lean + theorem ProbabilityTheory.condIndepFun_iff_condDistrib_prod_ae_eq_prodMkLeft + theorem ProbabilityTheory.condIndepFun_iff_map_prod_eq_prod_condDistrib_prod_condDistrib Modified Mathlib/Probability/Kernel/Composition/Lemmas.lean + theorem ProbabilityTheory.Kernel.prod_prodMkLeft_comp_prod_deterministic + theorem ProbabilityTheory.Kernel.prod_prodMkRight_comp_deterministic_prod Modified Mathlib/Probability/Kernel/Composition/Prod.lean + theorem ProbabilityTheory.Kernel.prodAssoc_symm_prod + theorem ProbabilityTheory.Kernel.prodComm_prod 2025-10-02 14:13:44 f5bc879 chore(Mathlib/AlgebraicGeometry/Restrict): change openCoverOfISupEqTop to openCoverOfIsOpenCover (#30072) This PR changes [AlgebraicGeometry.Scheme.openCoverOfISupEqTop](https://leanprover-community.github.io/mathlib4_docs/Mathlib/AlgebraicGeometry/Restrict.html#AlgebraicGeometry.Scheme.openCoverOfISupEqTop) into `AlgebraicGeometry.Scheme.openCoverOfISupEqTop`, which now takes `TopologicalSpace.IsOpenCover`. ESTIMATED CHANGES Modified Mathlib/AlgebraicGeometry/IdealSheaf/Subscheme.lean Modified Mathlib/AlgebraicGeometry/Morphisms/Basic.lean Modified Mathlib/AlgebraicGeometry/Morphisms/Constructors.lean Modified Mathlib/AlgebraicGeometry/Morphisms/RingHomProperties.lean Modified Mathlib/AlgebraicGeometry/ProjectiveSpectrum/Basic.lean - def AlgebraicGeometry.Proj.openCoverOfISupEqTop + def AlgebraicGeometry.Proj.openCoverOfIsOpenCover Modified Mathlib/AlgebraicGeometry/ProjectiveSpectrum/Proper.lean Modified Mathlib/AlgebraicGeometry/Restrict.lean - def AlgebraicGeometry.Scheme.openCoverOfISupEqTop + def AlgebraicGeometry.Scheme.openCoverOfIsOpenCover 2025-10-02 13:49:15 ae4763b refactor(AlgebraicGeometry/Sites): redefine pretopologies via precoverages (#29894) We redefine the pretopology defined by a morphism property via `Precoverage` and make it independent of `Scheme.Cover`. This changes the definition of `AlgebraicGeometry.Scheme.pretopology`, because covering presieves are now allowed to be large. This does not matter, because the generated Grothendieck topology remains the same. This allows us to redefine `Scheme.Cover` to be a `ZeroHypercover` with respect to this new precoverage, which will be done in the next PR. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/AlgebraicGeometry/Cover/MorphismProperty.lean - theorem AlgebraicGeometry.Scheme.IsJointlySurjectivePreserving.exists_preimage_snd_triplet_of_prop Modified Mathlib/AlgebraicGeometry/GluingOneHypercover.lean Modified Mathlib/AlgebraicGeometry/PullbackCarrier.lean + theorem AlgebraicGeometry.Scheme.Pullback.pullbackComparison_forget_surjective Modified Mathlib/AlgebraicGeometry/Sites/BigZariski.lean Modified Mathlib/AlgebraicGeometry/Sites/Etale.lean Modified Mathlib/AlgebraicGeometry/Sites/MorphismProperty.lean + theorem AlgebraicGeometry.Scheme.IsJointlySurjectivePreserving.exists_preimage_snd_triplet_of_prop - theorem AlgebraicGeometry.Scheme.grothendieckTopology_cover - theorem AlgebraicGeometry.Scheme.grothendieckTopology_eq_inf - theorem AlgebraicGeometry.Scheme.grothendieckTopology_le_grothendieckTopology - def AlgebraicGeometry.Scheme.jointlySurjectivePretopology - def AlgebraicGeometry.Scheme.jointlySurjectiveTopology - theorem AlgebraicGeometry.Scheme.jointlySurjectiveTopology_eq_toGrothendieck_jointlySurjectivePretopology - theorem AlgebraicGeometry.Scheme.mem_jointlySurjectiveTopology_iff_jointlySurjectivePretopology + theorem AlgebraicGeometry.Scheme.ofArrows_mem_precoverage_iff + def AlgebraicGeometry.Scheme.precoverage - def AlgebraicGeometry.Scheme.pretopology - theorem AlgebraicGeometry.Scheme.pretopology_cover - theorem AlgebraicGeometry.Scheme.pretopology_le_inf - theorem AlgebraicGeometry.Scheme.pretopology_le_pretopology Added Mathlib/AlgebraicGeometry/Sites/Pretopology.lean + theorem AlgebraicGeometry.Scheme.Cover.mem_grothendieckTopology + theorem AlgebraicGeometry.Scheme.Cover.mem_pretopology + theorem AlgebraicGeometry.Scheme.grothendieckTopology_eq_inf + theorem AlgebraicGeometry.Scheme.grothendieckTopology_monotone + def AlgebraicGeometry.Scheme.jointlySurjectivePretopology + def AlgebraicGeometry.Scheme.jointlySurjectiveTopology + theorem AlgebraicGeometry.Scheme.jointlySurjectiveTopology_eq_toGrothendieck_jointlySurjectivePretopology + theorem AlgebraicGeometry.Scheme.mem_grothendieckTopology_iff + theorem AlgebraicGeometry.Scheme.mem_jointlySurjectiveTopology_iff_jointlySurjectivePretopology + theorem AlgebraicGeometry.Scheme.mem_pretopology_iff + def AlgebraicGeometry.Scheme.pretopology + theorem AlgebraicGeometry.Scheme.pretopology_eq_inf + theorem AlgebraicGeometry.Scheme.pretopology_monotone Modified Mathlib/AlgebraicGeometry/Sites/Representability.lean Modified Mathlib/AlgebraicGeometry/Sites/Small.lean Modified Mathlib/CategoryTheory/Sites/JointlySurjective.lean + theorem CategoryTheory.Presieve.ofArrows_mem_comap_jointlySurjectivePrecoverage_iff Modified Mathlib/CategoryTheory/Sites/Sieves.lean + theorem CategoryTheory.Presieve.map_monotone 2025-10-02 13:23:13 48541a8 feat(RepresentationTheory/Homological): add standard resolution for finite cyclic groups (#27363) Let `k` be a commutative ring and `G` a finite commutative group. Given `g : G` and `A : Rep k G`, we can define a periodic chain complex in `Rep k G` given by `... ⟶ A --N--> A --(ρ(g) - 𝟙)--> A --N--> A --(ρ(g) - 𝟙)--> A ⟶ 0` where `N` is the norm map sending `a : A` to `∑ ρ(g)(a)` for all `g` in `G`. When `G` is generated by `g` and `A` is the left regular representation `k[G]`, this chain complex is a projective resolution of `k` as a trivial representation, which we prove in this PR. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/RepresentationTheory/Homological/FiniteCyclic.lean + theorem Rep.FiniteCyclicGroup.leftRegular.range_applyAsHom_sub_eq_ker_linearCombination + theorem Rep.FiniteCyclicGroup.leftRegular.range_applyAsHom_sub_eq_ker_norm + theorem Rep.FiniteCyclicGroup.leftRegular.range_norm_eq_ker_applyAsHom_sub + theorem Rep.FiniteCyclicGroup.resolution_quasiIso + theorem Representation.FiniteCyclicGroup.coinvariantsKer_eq_range + theorem Representation.FiniteCyclicGroup.coinvariantsKer_leftRegular_eq_ker Modified Mathlib/RepresentationTheory/Invariants.lean + theorem Representation.mem_invariants_iff_of_forall_mem_zpowers 2025-10-02 12:58:47 ca55add feat(Mathlib/CategoryTheory/EffectiveEpi/Types): Effective epi in types (#29958) This PR characterizes effective epimorphisms in the category `Type u`, proving that a function of types is an effective epimorphism if and only if it is surjective. The main results: `regularEpi_iff_surjective`: A function f : `X → Y` in `Type u` is a regular epimorphism if and only if it is surjective. `effectiveEpi_iff_surjective`: A function f : `X → Y` in `Type u` is an effective epimorphism if and only if it is surjective. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Types/Basic.lean + theorem CategoryTheory.isSplitEpi_iff_surjective 2025-10-02 12:29:01 cb7170f chore(CategoryTheory/Localization/CalculusOfFractions): golf entire `symm_add` using `grind` (#30118) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Localization/CalculusOfFractions/Preadditive.lean 2025-10-02 11:57:41 570711a feat(Algebra/Homology): add injective dimension (#30080) In this PR, we created `Mathlib.CategoryTheory.Abelian.Injective.Dimension` corresponding to `Mathlib.CategoryTheory.Abelian.Projective.Dimension` This is a preliminary for Gorenstein ring. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Abelian/Injective/Dimension.lean + theorem CategoryTheory.Abelian.Ext.eq_zero_of_hasInjectiveDimensionLT + theorem CategoryTheory.HasInjectiveDimensionLT.mk + theorem CategoryTheory.HasInjectiveDimensionLT.subsingleton + theorem CategoryTheory.Limits.IsZero.hasInjectiveDimensionLT_zero + theorem CategoryTheory.Retract.hasInjectiveDimensionLT + theorem CategoryTheory.Retract.injectiveDimension_le + theorem CategoryTheory.ShortComplex.ShortExact.hasInjectiveDimensionLT_X₁ + theorem CategoryTheory.ShortComplex.ShortExact.hasInjectiveDimensionLT_X₂ + theorem CategoryTheory.ShortComplex.ShortExact.hasInjectiveDimensionLT_X₃ + theorem CategoryTheory.ShortComplex.ShortExact.hasInjectiveDimensionLT_X₃_iff + theorem CategoryTheory.hasInjectiveDimensionLT_iff + theorem CategoryTheory.hasInjectiveDimensionLT_of_ge + theorem CategoryTheory.hasInjectiveDimensionLT_of_iso + theorem CategoryTheory.hasInjectiveDimensionLT_zero_iff_isZero + theorem CategoryTheory.injectiveDimension_eq_bot_iff + theorem CategoryTheory.injectiveDimension_eq_of_iso + theorem CategoryTheory.injectiveDimension_ge_iff + theorem CategoryTheory.injectiveDimension_le_iff + theorem CategoryTheory.injectiveDimension_lt_iff + theorem CategoryTheory.injectiveDimension_ne_top_iff + theorem CategoryTheory.injective_iff_hasInjectiveDimensionLT_one + theorem CategoryTheory.injective_iff_subsingleton_ext_one + theorem CategoryTheory.isZero_of_hasInjectiveDimensionLT_zero 2025-10-02 10:12:22 1f85fdf feat(MeasureTheory): add absolutely continuous functions (#29504) Add absolutely continuous functions. Part of originally planned #29092. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/MeasureTheory/Function/AbsolutelyContinuous.lean + theorem AbsolutelyContinuousOnInterval.add + theorem AbsolutelyContinuousOnInterval.boundedVariationOn + theorem AbsolutelyContinuousOnInterval.const_mul + theorem AbsolutelyContinuousOnInterval.const_smul + theorem AbsolutelyContinuousOnInterval.continuousOn + def AbsolutelyContinuousOnInterval.disjWithin + theorem AbsolutelyContinuousOnInterval.disjWithin_comm + theorem AbsolutelyContinuousOnInterval.disjWithin_mono + theorem AbsolutelyContinuousOnInterval.exists_bound + theorem AbsolutelyContinuousOnInterval.fun_add + theorem AbsolutelyContinuousOnInterval.fun_mul + theorem AbsolutelyContinuousOnInterval.fun_neg + theorem AbsolutelyContinuousOnInterval.fun_smul + theorem AbsolutelyContinuousOnInterval.fun_sub + theorem AbsolutelyContinuousOnInterval.hasBasis_totalLengthFilter + theorem AbsolutelyContinuousOnInterval.mono + theorem AbsolutelyContinuousOnInterval.mul + theorem AbsolutelyContinuousOnInterval.neg + theorem AbsolutelyContinuousOnInterval.smul + theorem AbsolutelyContinuousOnInterval.sub + theorem AbsolutelyContinuousOnInterval.symm + def AbsolutelyContinuousOnInterval.totalLengthFilter + theorem AbsolutelyContinuousOnInterval.uniformity_eq_comap_totalLengthFilter + theorem AbsolutelyContinuousOnInterval.uniformlyContinuousOn + def AbsolutelyContinuousOnInterval + theorem LipschitzOnWith.absolutelyContinuousOnInterval + theorem absolutelyContinuousOnInterval_iff Modified Mathlib/Topology/EMetricSpace/BoundedVariation.lean + theorem eVariationOn.sum' + theorem eVariationOn.sum 2025-10-02 09:32:22 fc44d8a feat(LinearAlgebra/Eigenspace/Minpoly): reduce typeclass assumptions (#29898) ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/Eigenspace/Minpoly.lean +/- theorem Module.End.aeval_apply_of_hasEigenvector +/- theorem Module.End.hasEigenvalue_iff_isRoot +/- theorem Module.End.hasEigenvalue_of_isRoot +/- theorem Module.End.isRoot_of_hasEigenvalue +/- theorem Module.End.ker_aeval_ring_hom'_unit_polynomial 2025-10-02 09:10:16 a50a869 chore: rename PartialHomeomorph to OpenPartialHomeomorph (#29113) This PR renames `PartialHomeomorph` to `OpenPartialHomeomorph` as discussed in [#mathlib4 > Generalizing `PartialHomeomorph`?](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Generalizing.20.60PartialHomeomorph.60.3F). This is the first step towards generalizing `PartialHomeomorph` to allow arbitrary sources and targets. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Analysis/Analytic/Inverse.lean + theorem OpenPartialHomeomorph.hasFPowerSeriesAt_symm - theorem PartialHomeomorph.hasFPowerSeriesAt_symm Modified Mathlib/Analysis/Asymptotics/Defs.lean Modified Mathlib/Analysis/Asymptotics/Lemmas.lean + theorem OpenPartialHomeomorph.isBigOWith_congr + theorem OpenPartialHomeomorph.isBigO_congr + theorem OpenPartialHomeomorph.isLittleO_congr - theorem PartialHomeomorph.isBigOWith_congr - theorem PartialHomeomorph.isBigO_congr - theorem PartialHomeomorph.isLittleO_congr Modified Mathlib/Analysis/Calculus/ContDiff/Operations.lean + theorem OpenPartialHomeomorph.contDiffAt_symm + theorem OpenPartialHomeomorph.contDiffAt_symm_deriv + theorem OpenPartialHomeomorph.contDiffOn_restrContDiff_source + theorem OpenPartialHomeomorph.contDiffOn_restrContDiff_target + def OpenPartialHomeomorph.restrContDiff - theorem PartialHomeomorph.contDiffAt_symm - theorem PartialHomeomorph.contDiffAt_symm_deriv - theorem PartialHomeomorph.contDiffOn_restrContDiff_source - theorem PartialHomeomorph.contDiffOn_restrContDiff_target - def PartialHomeomorph.restrContDiff Modified Mathlib/Analysis/Calculus/Deriv/Inverse.lean + theorem OpenPartialHomeomorph.hasDerivAt_symm + theorem OpenPartialHomeomorph.hasStrictDerivAt_symm - theorem PartialHomeomorph.hasDerivAt_symm - theorem PartialHomeomorph.hasStrictDerivAt_symm Modified Mathlib/Analysis/Calculus/FDeriv/Analytic.lean + theorem OpenPartialHomeomorph.analyticAt_symm' + theorem OpenPartialHomeomorph.analyticAt_symm - theorem PartialHomeomorph.analyticAt_symm' - theorem PartialHomeomorph.analyticAt_symm Modified Mathlib/Analysis/Calculus/FDeriv/Equiv.lean + theorem OpenPartialHomeomorph.hasFDerivAt_symm + theorem OpenPartialHomeomorph.hasStrictFDerivAt_symm - theorem PartialHomeomorph.hasFDerivAt_symm - theorem PartialHomeomorph.hasStrictFDerivAt_symm Modified Mathlib/Analysis/Calculus/Implicit.lean + def HasStrictFDerivAt.implicitToOpenPartialHomeomorph + def HasStrictFDerivAt.implicitToOpenPartialHomeomorphOfComplemented + theorem HasStrictFDerivAt.implicitToOpenPartialHomeomorphOfComplemented_apply + theorem HasStrictFDerivAt.implicitToOpenPartialHomeomorphOfComplemented_apply_ker + theorem HasStrictFDerivAt.implicitToOpenPartialHomeomorphOfComplemented_fst + theorem HasStrictFDerivAt.implicitToOpenPartialHomeomorphOfComplemented_self + theorem HasStrictFDerivAt.implicitToOpenPartialHomeomorph_apply_ker + theorem HasStrictFDerivAt.implicitToOpenPartialHomeomorph_fst + theorem HasStrictFDerivAt.implicitToOpenPartialHomeomorph_self - def HasStrictFDerivAt.implicitToPartialHomeomorph - def HasStrictFDerivAt.implicitToPartialHomeomorphOfComplemented - theorem HasStrictFDerivAt.implicitToPartialHomeomorphOfComplemented_apply - theorem HasStrictFDerivAt.implicitToPartialHomeomorphOfComplemented_apply_ker - theorem HasStrictFDerivAt.implicitToPartialHomeomorphOfComplemented_fst - theorem HasStrictFDerivAt.implicitToPartialHomeomorphOfComplemented_self - theorem HasStrictFDerivAt.implicitToPartialHomeomorph_apply_ker - theorem HasStrictFDerivAt.implicitToPartialHomeomorph_fst - theorem HasStrictFDerivAt.implicitToPartialHomeomorph_self + theorem HasStrictFDerivAt.mem_implicitToOpenPartialHomeomorphOfComplemented_source + theorem HasStrictFDerivAt.mem_implicitToOpenPartialHomeomorphOfComplemented_target + theorem HasStrictFDerivAt.mem_implicitToOpenPartialHomeomorph_source + theorem HasStrictFDerivAt.mem_implicitToOpenPartialHomeomorph_target - theorem HasStrictFDerivAt.mem_implicitToPartialHomeomorphOfComplemented_source - theorem HasStrictFDerivAt.mem_implicitToPartialHomeomorphOfComplemented_target - theorem HasStrictFDerivAt.mem_implicitToPartialHomeomorph_source - theorem HasStrictFDerivAt.mem_implicitToPartialHomeomorph_target + theorem ImplicitFunctionData.map_pt_mem_toOpenPartialHomeomorph_target - theorem ImplicitFunctionData.map_pt_mem_toPartialHomeomorph_target + theorem ImplicitFunctionData.pt_mem_toOpenPartialHomeomorph_source - theorem ImplicitFunctionData.pt_mem_toPartialHomeomorph_source + def ImplicitFunctionData.toOpenPartialHomeomorph + theorem ImplicitFunctionData.toOpenPartialHomeomorph_apply + theorem ImplicitFunctionData.toOpenPartialHomeomorph_coe - def ImplicitFunctionData.toPartialHomeomorph - theorem ImplicitFunctionData.toPartialHomeomorph_apply - theorem ImplicitFunctionData.toPartialHomeomorph_coe Modified Mathlib/Analysis/Calculus/InverseFunctionTheorem/ApproximatesLinearOn.lean + def ApproximatesLinearOn.toOpenPartialHomeomorph + theorem ApproximatesLinearOn.toOpenPartialHomeomorph_coe + theorem ApproximatesLinearOn.toOpenPartialHomeomorph_source + theorem ApproximatesLinearOn.toOpenPartialHomeomorph_target - def ApproximatesLinearOn.toPartialHomeomorph - theorem ApproximatesLinearOn.toPartialHomeomorph_coe - theorem ApproximatesLinearOn.toPartialHomeomorph_source - theorem ApproximatesLinearOn.toPartialHomeomorph_target Modified Mathlib/Analysis/Calculus/InverseFunctionTheorem/ContDiff.lean + theorem ContDiffAt.image_mem_toOpenPartialHomeomorph_target - theorem ContDiffAt.image_mem_toPartialHomeomorph_target + theorem ContDiffAt.mem_toOpenPartialHomeomorph_source - theorem ContDiffAt.mem_toPartialHomeomorph_source + def ContDiffAt.toOpenPartialHomeomorph + theorem ContDiffAt.toOpenPartialHomeomorph_coe - def ContDiffAt.toPartialHomeomorph - theorem ContDiffAt.toPartialHomeomorph_coe Modified Mathlib/Analysis/Calculus/InverseFunctionTheorem/FDeriv.lean + theorem HasStrictFDerivAt.image_mem_toOpenPartialHomeomorph_target - theorem HasStrictFDerivAt.image_mem_toPartialHomeomorph_target + theorem HasStrictFDerivAt.mem_toOpenPartialHomeomorph_source - theorem HasStrictFDerivAt.mem_toPartialHomeomorph_source + def HasStrictFDerivAt.toOpenPartialHomeomorph + theorem HasStrictFDerivAt.toOpenPartialHomeomorph_coe - def HasStrictFDerivAt.toPartialHomeomorph - theorem HasStrictFDerivAt.toPartialHomeomorph_coe Modified Mathlib/Analysis/Complex/Tietze.lean Modified Mathlib/Analysis/Complex/UpperHalfPlane/Topology.lean +/- def UpperHalfPlane.ofComplex Modified Mathlib/Analysis/InnerProductSpace/Calculus.lean + theorem OpenPartialHomeomorph.contDiffOn_univBall_symm + theorem OpenPartialHomeomorph.contDiffOn_univUnitBall_symm + theorem OpenPartialHomeomorph.contDiff_unitBallBall + theorem OpenPartialHomeomorph.contDiff_unitBallBall_symm + theorem OpenPartialHomeomorph.contDiff_univBall + theorem OpenPartialHomeomorph.contDiff_univUnitBall - theorem PartialHomeomorph.contDiffOn_univBall_symm - theorem PartialHomeomorph.contDiffOn_univUnitBall_symm - theorem PartialHomeomorph.contDiff_unitBallBall - theorem PartialHomeomorph.contDiff_unitBallBall_symm - theorem PartialHomeomorph.contDiff_univBall - theorem PartialHomeomorph.contDiff_univUnitBall Modified Mathlib/Analysis/Normed/Module/Ball/Homeomorph.lean + theorem OpenPartialHomeomorph.ball_subset_univBall_target + theorem OpenPartialHomeomorph.continuousOn_univBall_symm + theorem OpenPartialHomeomorph.continuous_univBall + def OpenPartialHomeomorph.unitBallBall + def OpenPartialHomeomorph.univBall + theorem OpenPartialHomeomorph.univBall_apply_zero + theorem OpenPartialHomeomorph.univBall_source + theorem OpenPartialHomeomorph.univBall_symm_apply_center + theorem OpenPartialHomeomorph.univBall_target + def OpenPartialHomeomorph.univUnitBall + theorem OpenPartialHomeomorph.univUnitBall_apply_zero + theorem OpenPartialHomeomorph.univUnitBall_symm_apply_zero - theorem PartialHomeomorph.ball_subset_univBall_target - theorem PartialHomeomorph.continuousOn_univBall_symm - theorem PartialHomeomorph.continuous_univBall - def PartialHomeomorph.unitBallBall - def PartialHomeomorph.univBall - theorem PartialHomeomorph.univBall_apply_zero - theorem PartialHomeomorph.univBall_source - theorem PartialHomeomorph.univBall_symm_apply_center - theorem PartialHomeomorph.univBall_target - def PartialHomeomorph.univUnitBall - theorem PartialHomeomorph.univUnitBall_apply_zero - theorem PartialHomeomorph.univUnitBall_symm_apply_zero Modified Mathlib/Analysis/SpecialFunctions/Arsinh.lean Modified Mathlib/Analysis/SpecialFunctions/Complex/LogDeriv.lean Modified Mathlib/Analysis/SpecialFunctions/Log/Basic.lean Modified Mathlib/Analysis/SpecialFunctions/PolarCoord.lean +/- def polarCoord Modified Mathlib/Analysis/SpecialFunctions/Sqrt.lean Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Arctan.lean +/- def Real.tanPartialHomeomorph Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Inverse.lean +/- def Real.sinPartialHomeomorph Modified Mathlib/Deprecated/AnalyticManifold.lean +/- theorem mem_analyticGroupoid +/- theorem mem_analyticGroupoid_of_boundaryless +/- theorem symm_trans_mem_analyticGroupoid Modified Mathlib/Geometry/Manifold/ChartedSpace.lean + def OpenPartialHomeomorph.singletonChartedSpace + theorem OpenPartialHomeomorph.singletonChartedSpace_chartAt_eq + theorem OpenPartialHomeomorph.singletonChartedSpace_chartAt_source + theorem OpenPartialHomeomorph.singletonChartedSpace_mem_atlas_eq + theorem OpenPartialHomeomorph.singleton_hasGroupoid + def OpenPartialHomeomorph.toStructomorph - def PartialHomeomorph.singletonChartedSpace - theorem PartialHomeomorph.singletonChartedSpace_chartAt_eq - theorem PartialHomeomorph.singletonChartedSpace_chartAt_source - theorem PartialHomeomorph.singletonChartedSpace_mem_atlas_eq - theorem PartialHomeomorph.singleton_hasGroupoid - def PartialHomeomorph.toStructomorph +/- theorem StructureGroupoid.compatible_of_mem_maximalAtlas +/- theorem StructureGroupoid.id_mem +/- theorem StructureGroupoid.id_mem_maximalAtlas +/- theorem StructureGroupoid.locality +/- def StructureGroupoid.maximalAtlas +/- theorem StructureGroupoid.mem_maximalAtlas_of_eqOnSource +/- theorem StructureGroupoid.mem_maximalAtlas_of_mem_groupoid +/- theorem StructureGroupoid.mem_of_eqOnSource +/- theorem StructureGroupoid.subtypeRestr_mem_maximalAtlas +/- theorem StructureGroupoid.symm +/- theorem StructureGroupoid.trans +/- theorem StructureGroupoid.trans_restricted +/- theorem TopologicalSpace.Opens.chart_eq' +/- theorem TopologicalSpace.Opens.chart_eq +/- theorem chartedSpaceSelf_atlas +/- theorem coe_achart +/- theorem hasGroupoid_of_pregroupoid +/- theorem mem_groupoid_of_pregroupoid +/- theorem mem_maximalAtlas_iff +/- theorem mem_pregroupoid_of_eqOnSource Modified Mathlib/Geometry/Manifold/ConformalGroupoid.lean Modified Mathlib/Geometry/Manifold/ContMDiff/Atlas.lean +/- theorem contMDiffOn_of_mem_contDiffGroupoid +/- theorem isLocalStructomorphOn_contDiffGroupoid_iff +/- theorem isLocalStructomorphOn_contDiffGroupoid_iff_aux Modified Mathlib/Geometry/Manifold/ContMDiff/Basic.lean Modified Mathlib/Geometry/Manifold/ContMDiff/Defs.lean Modified Mathlib/Geometry/Manifold/ContMDiffMFDeriv.lean Modified Mathlib/Geometry/Manifold/Diffeomorph.lean + theorem Diffeomorph.toOpenPartialHomeomorph_mdifferentiable - theorem Diffeomorph.toPartialHomeomorph_mdifferentiable Modified Mathlib/Geometry/Manifold/Instances/Icc.lean Modified Mathlib/Geometry/Manifold/Instances/Real.lean Modified Mathlib/Geometry/Manifold/Instances/Sphere.lean +/- def stereographic Modified Mathlib/Geometry/Manifold/IsManifold/Basic.lean +/- theorem ContDiffGroupoid.mem_of_source_eq_empty +/- theorem ContinuousGroupoid.mem_of_source_eq_empty +/- theorem IsManifold.compatible_of_mem_maximalAtlas +/- theorem ModelWithCorners.uniqueDiffOn_preimage_source + theorem OpenPartialHomeomorph.isManifold_singleton - theorem PartialHomeomorph.isManifold_singleton +/- theorem symm_trans_mem_contDiffGroupoid Modified Mathlib/Geometry/Manifold/IsManifold/ExtChartAt.lean + theorem OpenPartialHomeomorph.contDiffOn_extend_coord_change + theorem OpenPartialHomeomorph.contDiffWithinAt_extend_coord_change' + theorem OpenPartialHomeomorph.contDiffWithinAt_extend_coord_change + theorem OpenPartialHomeomorph.continuousAt_extend + theorem OpenPartialHomeomorph.continuousAt_extend_symm' + theorem OpenPartialHomeomorph.continuousAt_extend_symm + theorem OpenPartialHomeomorph.continuousOn_extend + theorem OpenPartialHomeomorph.continuousOn_extend_symm + theorem OpenPartialHomeomorph.continuousOn_writtenInExtend_iff + theorem OpenPartialHomeomorph.continuousWithinAt_writtenInExtend_iff + def OpenPartialHomeomorph.extend + theorem OpenPartialHomeomorph.extend_coe + theorem OpenPartialHomeomorph.extend_coe_symm + theorem OpenPartialHomeomorph.extend_coord_change_source + theorem OpenPartialHomeomorph.extend_coord_change_source_mem_nhdsWithin' + theorem OpenPartialHomeomorph.extend_coord_change_source_mem_nhdsWithin + theorem OpenPartialHomeomorph.extend_image_nhds_mem_nhds_of_boundaryless + theorem OpenPartialHomeomorph.extend_image_nhds_mem_nhds_of_mem_interior_range + theorem OpenPartialHomeomorph.extend_image_source_inter + theorem OpenPartialHomeomorph.extend_image_target_mem_nhds + theorem OpenPartialHomeomorph.extend_left_inv' + theorem OpenPartialHomeomorph.extend_left_inv + theorem OpenPartialHomeomorph.extend_preimage_inter_eq + theorem OpenPartialHomeomorph.extend_preimage_mem_nhds + theorem OpenPartialHomeomorph.extend_preimage_mem_nhdsWithin + theorem OpenPartialHomeomorph.extend_preimage_mem_nhds_of_mem_nhdsWithin + theorem OpenPartialHomeomorph.extend_source + theorem OpenPartialHomeomorph.extend_source_mem_nhds + theorem OpenPartialHomeomorph.extend_source_mem_nhdsWithin + theorem OpenPartialHomeomorph.extend_symm_continuousWithinAt_comp_right_iff + theorem OpenPartialHomeomorph.extend_symm_preimage_inter_range_eventuallyEq + theorem OpenPartialHomeomorph.extend_symm_preimage_inter_range_eventuallyEq_aux + theorem OpenPartialHomeomorph.extend_target' + theorem OpenPartialHomeomorph.extend_target + theorem OpenPartialHomeomorph.extend_target_eventuallyEq + theorem OpenPartialHomeomorph.extend_target_mem_nhdsWithin + theorem OpenPartialHomeomorph.extend_target_subset_range + theorem OpenPartialHomeomorph.interior_extend_target_subset_interior_range + theorem OpenPartialHomeomorph.isOpen_extend_preimage' + theorem OpenPartialHomeomorph.isOpen_extend_preimage + theorem OpenPartialHomeomorph.isOpen_extend_source + theorem OpenPartialHomeomorph.isOpen_extend_target + theorem OpenPartialHomeomorph.map_extend_nhds + theorem OpenPartialHomeomorph.map_extend_nhdsWithin + theorem OpenPartialHomeomorph.map_extend_nhdsWithin_eq_image + theorem OpenPartialHomeomorph.map_extend_nhdsWithin_eq_image_of_subset + theorem OpenPartialHomeomorph.map_extend_nhds_of_boundaryless + theorem OpenPartialHomeomorph.map_extend_nhds_of_mem_interior_range + theorem OpenPartialHomeomorph.map_extend_symm_nhdsWithin + theorem OpenPartialHomeomorph.map_extend_symm_nhdsWithin_range + theorem OpenPartialHomeomorph.mapsTo_extend + theorem OpenPartialHomeomorph.mem_interior_extend_target + theorem OpenPartialHomeomorph.nhdsWithin_extend_target_eq + theorem OpenPartialHomeomorph.tendsto_extend_comp_iff - theorem PartialHomeomorph.contDiffOn_extend_coord_change - theorem PartialHomeomorph.contDiffWithinAt_extend_coord_change' - theorem PartialHomeomorph.contDiffWithinAt_extend_coord_change - theorem PartialHomeomorph.continuousAt_extend - theorem PartialHomeomorph.continuousAt_extend_symm' - theorem PartialHomeomorph.continuousAt_extend_symm - theorem PartialHomeomorph.continuousOn_extend - theorem PartialHomeomorph.continuousOn_extend_symm - theorem PartialHomeomorph.continuousOn_writtenInExtend_iff - theorem PartialHomeomorph.continuousWithinAt_writtenInExtend_iff - def PartialHomeomorph.extend - theorem PartialHomeomorph.extend_coe - theorem PartialHomeomorph.extend_coe_symm - theorem PartialHomeomorph.extend_coord_change_source - theorem PartialHomeomorph.extend_coord_change_source_mem_nhdsWithin' - theorem PartialHomeomorph.extend_coord_change_source_mem_nhdsWithin - theorem PartialHomeomorph.extend_image_nhds_mem_nhds_of_boundaryless - theorem PartialHomeomorph.extend_image_nhds_mem_nhds_of_mem_interior_range - theorem PartialHomeomorph.extend_image_source_inter - theorem PartialHomeomorph.extend_image_target_mem_nhds - theorem PartialHomeomorph.extend_left_inv' - theorem PartialHomeomorph.extend_left_inv - theorem PartialHomeomorph.extend_preimage_inter_eq - theorem PartialHomeomorph.extend_preimage_mem_nhds - theorem PartialHomeomorph.extend_preimage_mem_nhdsWithin - theorem PartialHomeomorph.extend_preimage_mem_nhds_of_mem_nhdsWithin - theorem PartialHomeomorph.extend_source - theorem PartialHomeomorph.extend_source_mem_nhds - theorem PartialHomeomorph.extend_source_mem_nhdsWithin - theorem PartialHomeomorph.extend_symm_continuousWithinAt_comp_right_iff - theorem PartialHomeomorph.extend_symm_preimage_inter_range_eventuallyEq - theorem PartialHomeomorph.extend_symm_preimage_inter_range_eventuallyEq_aux - theorem PartialHomeomorph.extend_target' - theorem PartialHomeomorph.extend_target - theorem PartialHomeomorph.extend_target_eventuallyEq - theorem PartialHomeomorph.extend_target_mem_nhdsWithin - theorem PartialHomeomorph.extend_target_subset_range - theorem PartialHomeomorph.interior_extend_target_subset_interior_range - theorem PartialHomeomorph.isOpen_extend_preimage' - theorem PartialHomeomorph.isOpen_extend_preimage - theorem PartialHomeomorph.isOpen_extend_source - theorem PartialHomeomorph.isOpen_extend_target - theorem PartialHomeomorph.map_extend_nhds - theorem PartialHomeomorph.map_extend_nhdsWithin - theorem PartialHomeomorph.map_extend_nhdsWithin_eq_image - theorem PartialHomeomorph.map_extend_nhdsWithin_eq_image_of_subset - theorem PartialHomeomorph.map_extend_nhds_of_boundaryless - theorem PartialHomeomorph.map_extend_nhds_of_mem_interior_range - theorem PartialHomeomorph.map_extend_symm_nhdsWithin - theorem PartialHomeomorph.map_extend_symm_nhdsWithin_range - theorem PartialHomeomorph.mapsTo_extend - theorem PartialHomeomorph.mem_interior_extend_target - theorem PartialHomeomorph.nhdsWithin_extend_target_eq - theorem PartialHomeomorph.tendsto_extend_comp_iff Modified Mathlib/Geometry/Manifold/IsManifold/InteriorBoundary.lean Modified Mathlib/Geometry/Manifold/LocalDiffeomorph.lean + def PartialDiffeomorph.toOpenPartialHomeomorph - def PartialDiffeomorph.toPartialHomeomorph Modified Mathlib/Geometry/Manifold/LocalInvariantProperties.lean + theorem OpenPartialHomeomorph.isLocalStructomorphWithinAt_iff' + theorem OpenPartialHomeomorph.isLocalStructomorphWithinAt_iff + theorem OpenPartialHomeomorph.isLocalStructomorphWithinAt_source_iff - theorem PartialHomeomorph.isLocalStructomorphWithinAt_iff' - theorem PartialHomeomorph.isLocalStructomorphWithinAt_iff - theorem PartialHomeomorph.isLocalStructomorphWithinAt_source_iff +/- theorem StructureGroupoid.LocalInvariantProp.left_invariance +/- theorem StructureGroupoid.LocalInvariantProp.liftPropWithinAt_indep_chart_target_aux +/- theorem StructureGroupoid.LocalInvariantProp.right_invariance Modified Mathlib/Geometry/Manifold/MFDeriv/Atlas.lean + theorem OpenPartialHomeomorph.MDifferentiable.comp_symm_deriv + theorem OpenPartialHomeomorph.MDifferentiable.ker_mfderiv_eq_bot + theorem OpenPartialHomeomorph.MDifferentiable.mdifferentiableAt_symm + theorem OpenPartialHomeomorph.MDifferentiable.mfderiv_bijective + theorem OpenPartialHomeomorph.MDifferentiable.mfderiv_injective + theorem OpenPartialHomeomorph.MDifferentiable.mfderiv_surjective + theorem OpenPartialHomeomorph.MDifferentiable.range_mfderiv_eq_top + theorem OpenPartialHomeomorph.MDifferentiable.range_mfderiv_eq_univ + theorem OpenPartialHomeomorph.MDifferentiable.symm_comp_deriv + theorem OpenPartialHomeomorph.MDifferentiable.trans - theorem PartialHomeomorph.MDifferentiable.comp_symm_deriv - theorem PartialHomeomorph.MDifferentiable.ker_mfderiv_eq_bot - theorem PartialHomeomorph.MDifferentiable.mdifferentiableAt_symm - theorem PartialHomeomorph.MDifferentiable.mfderiv_bijective - theorem PartialHomeomorph.MDifferentiable.mfderiv_injective - theorem PartialHomeomorph.MDifferentiable.mfderiv_surjective - theorem PartialHomeomorph.MDifferentiable.range_mfderiv_eq_top - theorem PartialHomeomorph.MDifferentiable.range_mfderiv_eq_univ - theorem PartialHomeomorph.MDifferentiable.symm_comp_deriv - theorem PartialHomeomorph.MDifferentiable.trans Modified Mathlib/Geometry/Manifold/MFDeriv/Basic.lean Modified Mathlib/Geometry/Manifold/MFDeriv/Defs.lean + def OpenPartialHomeomorph.MDifferentiable - def PartialHomeomorph.MDifferentiable Modified Mathlib/Geometry/Manifold/MFDeriv/Tangent.lean Modified Mathlib/Geometry/Manifold/MFDeriv/UniqueDifferential.lean +/- theorem UniqueMDiffOn.uniqueMDiffOn_preimage Modified Mathlib/Geometry/Manifold/PartitionOfUnity.lean Modified Mathlib/Geometry/Manifold/VectorBundle/Basic.lean Modified Mathlib/Geometry/Manifold/VectorBundle/FiberwiseLinear.lean + def FiberwiseLinear.openPartialHomeomorph - def FiberwiseLinear.partialHomeomorph + theorem FiberwiseLinear.source_trans_openPartialHomeomorph - theorem FiberwiseLinear.source_trans_partialHomeomorph + theorem FiberwiseLinear.target_trans_openPartialHomeomorph - theorem FiberwiseLinear.target_trans_partialHomeomorph + theorem FiberwiseLinear.trans_openPartialHomeomorph_apply - theorem FiberwiseLinear.trans_partialHomeomorph_apply +/- theorem mem_contMDiffFiberwiseLinear_iff Modified Mathlib/Geometry/Manifold/VectorBundle/Hom.lean Modified Mathlib/Geometry/Manifold/VectorBundle/MDifferentiable.lean Modified Mathlib/Geometry/Manifold/VectorBundle/Tangent.lean Modified Mathlib/Logic/Equiv/PartialEquiv.lean Modified Mathlib/MeasureTheory/Function/Jacobian.lean +/- theorem MeasureTheory.integral_target_eq_integral_abs_det_fderiv_smul Modified Mathlib/NumberTheory/ModularForms/EisensteinSeries/UniformConvergence.lean Modified Mathlib/NumberTheory/NumberField/CanonicalEmbedding/NormLeOne.lean +/- def NumberField.mixedEmbedding.fundamentalCone.expMap +/- def NumberField.mixedEmbedding.fundamentalCone.expMapBasis +/- def NumberField.mixedEmbedding.fundamentalCone.expMap_single Modified Mathlib/NumberTheory/NumberField/CanonicalEmbedding/PolarCoord.lean +/- def NumberField.mixedEmbedding.polarCoordReal +/- def NumberField.mixedEmbedding.polarSpaceCoord Modified Mathlib/Topology/Covering.lean Modified Mathlib/Topology/FiberBundle/Basic.lean +/- def FiberBundleCore.trivChange Modified Mathlib/Topology/FiberBundle/Constructions.lean + theorem Bundle.Trivial.toOpenPartialHomeomorph_trivialization_symm_apply - theorem Bundle.Trivial.toPartialHomeomorph_trivialization_symm_apply Modified Mathlib/Topology/FiberBundle/Trivialization.lean +/- theorem Trivialization.apply_symm_apply +/- theorem Trivialization.coe_coe +/- theorem Trivialization.coe_mk +/- theorem Trivialization.ext' +/- theorem Trivialization.map_target +/- theorem Trivialization.symm_apply_mk_proj +/- structure Trivialization Modified Mathlib/Topology/Instances/AddCircle/Defs.lean + def AddCircle.openPartialHomeomorphCoe - def AddCircle.partialHomeomorphCoe Modified Mathlib/Topology/IsLocalHomeomorph.lean +/- theorem IsLocalHomeomorph.mk + theorem IsLocalHomeomorphOn.OpenPartialHomeomorph.isLocalHomeomorphOn - theorem IsLocalHomeomorphOn.PartialHomeomorph.isLocalHomeomorphOn +/- theorem IsLocalHomeomorphOn.mk Renamed Mathlib/Topology/PartialHomeomorph.lean to Mathlib/Topology/OpenPartialHomeomorph.lean + theorem Homeomorph.refl_toOpenPartialHomeomorph - theorem Homeomorph.refl_toPartialHomeomorph + theorem Homeomorph.symm_toOpenPartialHomeomorph - theorem Homeomorph.symm_toPartialHomeomorph + def Homeomorph.toOpenPartialHomeomorph + def Homeomorph.toOpenPartialHomeomorphOfImageEq - def Homeomorph.toPartialHomeomorph - def Homeomorph.toPartialHomeomorphOfImageEq + def Homeomorph.transOpenPartialHomeomorph + theorem Homeomorph.transOpenPartialHomeomorph_eq_trans + theorem Homeomorph.transOpenPartialHomeomorph_trans - def Homeomorph.transPartialHomeomorph - theorem Homeomorph.transPartialHomeomorph_eq_trans - theorem Homeomorph.transPartialHomeomorph_trans + theorem Homeomorph.trans_toOpenPartialHomeomorph - theorem Homeomorph.trans_toPartialHomeomorph + theorem Homeomorph.trans_transOpenPartialHomeomorph - theorem Homeomorph.trans_transPartialHomeomorph + theorem OpenPartialHomeomorph.EqOnSource.eqOn + theorem OpenPartialHomeomorph.EqOnSource.restr + theorem OpenPartialHomeomorph.EqOnSource.source_eq + theorem OpenPartialHomeomorph.EqOnSource.symm' + theorem OpenPartialHomeomorph.EqOnSource.symm_eqOn_target + theorem OpenPartialHomeomorph.EqOnSource.target_eq + theorem OpenPartialHomeomorph.EqOnSource.trans' + def OpenPartialHomeomorph.EqOnSource + theorem OpenPartialHomeomorph.IsImage.apply_mem_iff + theorem OpenPartialHomeomorph.IsImage.iff_preimage_eq' + theorem OpenPartialHomeomorph.IsImage.iff_preimage_eq + theorem OpenPartialHomeomorph.IsImage.iff_symm_preimage_eq' + theorem OpenPartialHomeomorph.IsImage.iff_symm_preimage_eq + theorem OpenPartialHomeomorph.IsImage.image_eq + theorem OpenPartialHomeomorph.IsImage.inter_eq_of_inter_eq_of_eqOn + theorem OpenPartialHomeomorph.IsImage.isOpen_iff + theorem OpenPartialHomeomorph.IsImage.leftInvOn_piecewise + theorem OpenPartialHomeomorph.IsImage.map_nhdsWithin_eq + theorem OpenPartialHomeomorph.IsImage.of_image_eq + theorem OpenPartialHomeomorph.IsImage.of_symm_image_eq + def OpenPartialHomeomorph.IsImage.restr + theorem OpenPartialHomeomorph.IsImage.symm_apply_mem_iff + theorem OpenPartialHomeomorph.IsImage.symm_eqOn_of_inter_eq_of_eqOn + theorem OpenPartialHomeomorph.IsImage.symm_iff + theorem OpenPartialHomeomorph.IsImage.symm_image_eq + theorem OpenPartialHomeomorph.IsImage.symm_mapsTo + theorem OpenPartialHomeomorph.IsImage.toPartialEquiv + def OpenPartialHomeomorph.IsImage + theorem OpenPartialHomeomorph.Set.EqOn.restr_eqOn_source + def OpenPartialHomeomorph.Simps.apply + def OpenPartialHomeomorph.Simps.symm_apply + theorem OpenPartialHomeomorph.coe_coe + theorem OpenPartialHomeomorph.coe_coe_symm + theorem OpenPartialHomeomorph.coe_trans + theorem OpenPartialHomeomorph.coe_trans_symm + def OpenPartialHomeomorph.const + theorem OpenPartialHomeomorph.const_apply + theorem OpenPartialHomeomorph.const_source + theorem OpenPartialHomeomorph.const_target + theorem OpenPartialHomeomorph.continuousAt_iff_continuousAt_comp_left + theorem OpenPartialHomeomorph.continuousAt_iff_continuousAt_comp_right + theorem OpenPartialHomeomorph.continuousAt_symm + theorem OpenPartialHomeomorph.continuousOn_iff_continuousOn_comp_left + theorem OpenPartialHomeomorph.continuousOn_iff_continuousOn_comp_right + theorem OpenPartialHomeomorph.continuousOn_symm + theorem OpenPartialHomeomorph.continuousWithinAt_iff_continuousWithinAt_comp_left + theorem OpenPartialHomeomorph.continuousWithinAt_iff_continuousWithinAt_comp_right + theorem OpenPartialHomeomorph.continuous_iff_continuous_comp_left + def OpenPartialHomeomorph.disjointUnion + theorem OpenPartialHomeomorph.eqOnSource_iff + theorem OpenPartialHomeomorph.eqOnSource_refl + theorem OpenPartialHomeomorph.eq_of_eqOnSource_univ + theorem OpenPartialHomeomorph.eq_symm_apply + theorem OpenPartialHomeomorph.eventually_left_inverse' + theorem OpenPartialHomeomorph.eventually_left_inverse + theorem OpenPartialHomeomorph.eventually_ne_nhdsWithin + theorem OpenPartialHomeomorph.eventually_nhds' + theorem OpenPartialHomeomorph.eventually_nhds + theorem OpenPartialHomeomorph.eventually_nhdsWithin' + theorem OpenPartialHomeomorph.eventually_nhdsWithin + theorem OpenPartialHomeomorph.eventually_right_inverse' + theorem OpenPartialHomeomorph.eventually_right_inverse + def OpenPartialHomeomorph.homeomorphOfImageSubsetSource + theorem OpenPartialHomeomorph.image_eq_target_inter_inv_preimage + theorem OpenPartialHomeomorph.image_mem_nhds + theorem OpenPartialHomeomorph.image_source_eq_target + theorem OpenPartialHomeomorph.image_source_inter_eq' + theorem OpenPartialHomeomorph.image_source_inter_eq + theorem OpenPartialHomeomorph.image_trans_source + theorem OpenPartialHomeomorph.invFun_eq_coe + theorem OpenPartialHomeomorph.inv_image_trans_target + theorem OpenPartialHomeomorph.isImage_source_target + theorem OpenPartialHomeomorph.isImage_source_target_of_disjoint + theorem OpenPartialHomeomorph.isOpenEmbedding_restrict + theorem OpenPartialHomeomorph.isOpen_image_iff_of_subset_source + theorem OpenPartialHomeomorph.isOpen_image_of_subset_source + theorem OpenPartialHomeomorph.isOpen_image_source_inter + theorem OpenPartialHomeomorph.isOpen_image_symm_of_subset_target + theorem OpenPartialHomeomorph.isOpen_inter_preimage + theorem OpenPartialHomeomorph.isOpen_inter_preimage_symm + theorem OpenPartialHomeomorph.isOpen_symm_image_iff_of_subset_target + theorem OpenPartialHomeomorph.left_inv + theorem OpenPartialHomeomorph.lift_openEmbedding_apply + theorem OpenPartialHomeomorph.lift_openEmbedding_source + theorem OpenPartialHomeomorph.lift_openEmbedding_symm + theorem OpenPartialHomeomorph.lift_openEmbedding_symm_source + theorem OpenPartialHomeomorph.lift_openEmbedding_symm_target + theorem OpenPartialHomeomorph.lift_openEmbedding_target + theorem OpenPartialHomeomorph.lift_openEmbedding_toFun + theorem OpenPartialHomeomorph.lift_openEmbedding_trans + theorem OpenPartialHomeomorph.lift_openEmbedding_trans_apply + theorem OpenPartialHomeomorph.map_nhdsWithin_eq + theorem OpenPartialHomeomorph.map_nhdsWithin_preimage_eq + theorem OpenPartialHomeomorph.map_nhds_eq + theorem OpenPartialHomeomorph.map_source'' + theorem OpenPartialHomeomorph.map_source + theorem OpenPartialHomeomorph.map_subtype_source + theorem OpenPartialHomeomorph.map_target + theorem OpenPartialHomeomorph.mk_coe + theorem OpenPartialHomeomorph.mk_coe_symm + theorem OpenPartialHomeomorph.nhdsWithin_source_inter + theorem OpenPartialHomeomorph.nhdsWithin_target_inter + theorem OpenPartialHomeomorph.nhds_eq_comap_inf_principal + def OpenPartialHomeomorph.ofContinuousOpen + def OpenPartialHomeomorph.ofContinuousOpenRestrict + def OpenPartialHomeomorph.ofSet + theorem OpenPartialHomeomorph.ofSet_symm + theorem OpenPartialHomeomorph.ofSet_toPartialEquiv + theorem OpenPartialHomeomorph.ofSet_trans' + theorem OpenPartialHomeomorph.ofSet_trans + theorem OpenPartialHomeomorph.ofSet_trans_ofSet + theorem OpenPartialHomeomorph.ofSet_univ_eq_refl + def OpenPartialHomeomorph.pi + def OpenPartialHomeomorph.piecewise + theorem OpenPartialHomeomorph.preimage_closure + theorem OpenPartialHomeomorph.preimage_eventuallyEq_target_inter_preimage_inter + theorem OpenPartialHomeomorph.preimage_frontier + theorem OpenPartialHomeomorph.preimage_interior + def OpenPartialHomeomorph.prod + theorem OpenPartialHomeomorph.prod_eq_prod_of_nonempty' + theorem OpenPartialHomeomorph.prod_eq_prod_of_nonempty + theorem OpenPartialHomeomorph.prod_symm + theorem OpenPartialHomeomorph.prod_trans + theorem OpenPartialHomeomorph.refl_partialEquiv + theorem OpenPartialHomeomorph.refl_prod_refl + theorem OpenPartialHomeomorph.refl_symm + theorem OpenPartialHomeomorph.refl_trans + def OpenPartialHomeomorph.replaceEquiv + theorem OpenPartialHomeomorph.replaceEquiv_eq_self + theorem OpenPartialHomeomorph.restrOpen_source + theorem OpenPartialHomeomorph.restrOpen_toPartialEquiv + theorem OpenPartialHomeomorph.restr_eqOnSource_restr + theorem OpenPartialHomeomorph.restr_eq_of_source_subset + theorem OpenPartialHomeomorph.restr_inter_source + theorem OpenPartialHomeomorph.restr_source' + theorem OpenPartialHomeomorph.restr_source_inter + theorem OpenPartialHomeomorph.restr_symm_trans + theorem OpenPartialHomeomorph.restr_toPartialEquiv' + theorem OpenPartialHomeomorph.restr_toPartialEquiv + theorem OpenPartialHomeomorph.restr_trans + theorem OpenPartialHomeomorph.restr_univ + theorem OpenPartialHomeomorph.right_inv + theorem OpenPartialHomeomorph.secondCountableTopology_source + theorem OpenPartialHomeomorph.self_trans_symm + theorem OpenPartialHomeomorph.source_inter_preimage_inv_preimage + theorem OpenPartialHomeomorph.source_inter_preimage_target_inter + theorem OpenPartialHomeomorph.source_preimage_target + theorem OpenPartialHomeomorph.subtypeRestr_coe + theorem OpenPartialHomeomorph.subtypeRestr_def + theorem OpenPartialHomeomorph.subtypeRestr_source + theorem OpenPartialHomeomorph.subtypeRestr_symm_eqOn + theorem OpenPartialHomeomorph.subtypeRestr_symm_eqOn_of_le + theorem OpenPartialHomeomorph.subtypeRestr_symm_trans_subtypeRestr + theorem OpenPartialHomeomorph.symm_bijective + theorem OpenPartialHomeomorph.symm_image_eq_source_inter_preimage + theorem OpenPartialHomeomorph.symm_image_target_eq_source + theorem OpenPartialHomeomorph.symm_image_target_inter_eq + theorem OpenPartialHomeomorph.symm_map_nhds_eq + theorem OpenPartialHomeomorph.symm_piecewise + theorem OpenPartialHomeomorph.symm_source + theorem OpenPartialHomeomorph.symm_symm + theorem OpenPartialHomeomorph.symm_target + theorem OpenPartialHomeomorph.symm_toPartialEquiv + theorem OpenPartialHomeomorph.symm_trans_restr + theorem OpenPartialHomeomorph.symm_trans_self + theorem OpenPartialHomeomorph.target_inter_inv_preimage_preimage + theorem OpenPartialHomeomorph.tendsto_symm + def OpenPartialHomeomorph.toFun' + theorem OpenPartialHomeomorph.toFun_eq_coe + def OpenPartialHomeomorph.toHomeomorphOfSourceEqUnivTargetEqUniv + def OpenPartialHomeomorph.toHomeomorphSourceTarget + theorem OpenPartialHomeomorph.toPartialEquiv_injective + theorem OpenPartialHomeomorph.to_isOpenEmbedding + def OpenPartialHomeomorph.transHomeomorph + theorem OpenPartialHomeomorph.transHomeomorph_eq_trans + theorem OpenPartialHomeomorph.transHomeomorph_transHomeomorph + theorem OpenPartialHomeomorph.trans_apply + theorem OpenPartialHomeomorph.trans_assoc + theorem OpenPartialHomeomorph.trans_ofSet + theorem OpenPartialHomeomorph.trans_of_set' + theorem OpenPartialHomeomorph.trans_refl + theorem OpenPartialHomeomorph.trans_source'' + theorem OpenPartialHomeomorph.trans_source' + theorem OpenPartialHomeomorph.trans_source + theorem OpenPartialHomeomorph.trans_symm_eq_symm_trans_symm + theorem OpenPartialHomeomorph.trans_target'' + theorem OpenPartialHomeomorph.trans_target' + theorem OpenPartialHomeomorph.trans_target + theorem OpenPartialHomeomorph.trans_toPartialEquiv + theorem OpenPartialHomeomorph.trans_transHomeomorph + structure OpenPartialHomeomorph - theorem PartialHomeomorph.EqOnSource.eqOn - theorem PartialHomeomorph.EqOnSource.restr - theorem PartialHomeomorph.EqOnSource.source_eq - theorem PartialHomeomorph.EqOnSource.symm' - theorem PartialHomeomorph.EqOnSource.symm_eqOn_target - theorem PartialHomeomorph.EqOnSource.target_eq - theorem PartialHomeomorph.EqOnSource.trans' - def PartialHomeomorph.EqOnSource - theorem PartialHomeomorph.IsImage.apply_mem_iff - theorem PartialHomeomorph.IsImage.iff_preimage_eq' - theorem PartialHomeomorph.IsImage.iff_preimage_eq - theorem PartialHomeomorph.IsImage.iff_symm_preimage_eq' - theorem PartialHomeomorph.IsImage.iff_symm_preimage_eq - theorem PartialHomeomorph.IsImage.image_eq - theorem PartialHomeomorph.IsImage.inter_eq_of_inter_eq_of_eqOn - theorem PartialHomeomorph.IsImage.isOpen_iff - theorem PartialHomeomorph.IsImage.leftInvOn_piecewise - theorem PartialHomeomorph.IsImage.map_nhdsWithin_eq - theorem PartialHomeomorph.IsImage.of_image_eq - theorem PartialHomeomorph.IsImage.of_symm_image_eq - def PartialHomeomorph.IsImage.restr - theorem PartialHomeomorph.IsImage.symm_apply_mem_iff - theorem PartialHomeomorph.IsImage.symm_eqOn_of_inter_eq_of_eqOn - theorem PartialHomeomorph.IsImage.symm_iff - theorem PartialHomeomorph.IsImage.symm_image_eq - theorem PartialHomeomorph.IsImage.symm_mapsTo - theorem PartialHomeomorph.IsImage.toPartialEquiv - def PartialHomeomorph.IsImage - theorem PartialHomeomorph.Set.EqOn.restr_eqOn_source - def PartialHomeomorph.Simps.apply - def PartialHomeomorph.Simps.symm_apply - theorem PartialHomeomorph.coe_coe - theorem PartialHomeomorph.coe_coe_symm - theorem PartialHomeomorph.coe_trans - theorem PartialHomeomorph.coe_trans_symm - def PartialHomeomorph.const - theorem PartialHomeomorph.const_apply - theorem PartialHomeomorph.const_source - theorem PartialHomeomorph.const_target - theorem PartialHomeomorph.continuousAt_iff_continuousAt_comp_left - theorem PartialHomeomorph.continuousAt_iff_continuousAt_comp_right - theorem PartialHomeomorph.continuousAt_symm - theorem PartialHomeomorph.continuousOn_iff_continuousOn_comp_left - theorem PartialHomeomorph.continuousOn_iff_continuousOn_comp_right - theorem PartialHomeomorph.continuousOn_symm - theorem PartialHomeomorph.continuousWithinAt_iff_continuousWithinAt_comp_left - theorem PartialHomeomorph.continuousWithinAt_iff_continuousWithinAt_comp_right - theorem PartialHomeomorph.continuous_iff_continuous_comp_left - def PartialHomeomorph.disjointUnion - theorem PartialHomeomorph.eqOnSource_iff - theorem PartialHomeomorph.eqOnSource_refl - theorem PartialHomeomorph.eq_of_eqOnSource_univ - theorem PartialHomeomorph.eq_symm_apply - theorem PartialHomeomorph.eventually_left_inverse' - theorem PartialHomeomorph.eventually_left_inverse - theorem PartialHomeomorph.eventually_ne_nhdsWithin - theorem PartialHomeomorph.eventually_nhds' - theorem PartialHomeomorph.eventually_nhds - theorem PartialHomeomorph.eventually_nhdsWithin' - theorem PartialHomeomorph.eventually_nhdsWithin - theorem PartialHomeomorph.eventually_right_inverse' - theorem PartialHomeomorph.eventually_right_inverse - def PartialHomeomorph.homeomorphOfImageSubsetSource - theorem PartialHomeomorph.image_eq_target_inter_inv_preimage - theorem PartialHomeomorph.image_mem_nhds - theorem PartialHomeomorph.image_source_eq_target - theorem PartialHomeomorph.image_source_inter_eq' - theorem PartialHomeomorph.image_source_inter_eq - theorem PartialHomeomorph.image_trans_source - theorem PartialHomeomorph.invFun_eq_coe - theorem PartialHomeomorph.inv_image_trans_target - theorem PartialHomeomorph.isImage_source_target - theorem PartialHomeomorph.isImage_source_target_of_disjoint - theorem PartialHomeomorph.isOpenEmbedding_restrict - theorem PartialHomeomorph.isOpen_image_iff_of_subset_source - theorem PartialHomeomorph.isOpen_image_of_subset_source - theorem PartialHomeomorph.isOpen_image_source_inter - theorem PartialHomeomorph.isOpen_image_symm_of_subset_target - theorem PartialHomeomorph.isOpen_inter_preimage - theorem PartialHomeomorph.isOpen_inter_preimage_symm - theorem PartialHomeomorph.isOpen_symm_image_iff_of_subset_target - theorem PartialHomeomorph.left_inv - theorem PartialHomeomorph.lift_openEmbedding_apply - theorem PartialHomeomorph.lift_openEmbedding_source - theorem PartialHomeomorph.lift_openEmbedding_symm - theorem PartialHomeomorph.lift_openEmbedding_symm_source - theorem PartialHomeomorph.lift_openEmbedding_symm_target - theorem PartialHomeomorph.lift_openEmbedding_target - theorem PartialHomeomorph.lift_openEmbedding_toFun - theorem PartialHomeomorph.lift_openEmbedding_trans - theorem PartialHomeomorph.lift_openEmbedding_trans_apply - theorem PartialHomeomorph.map_nhdsWithin_eq - theorem PartialHomeomorph.map_nhdsWithin_preimage_eq - theorem PartialHomeomorph.map_nhds_eq - theorem PartialHomeomorph.map_source'' - theorem PartialHomeomorph.map_source - theorem PartialHomeomorph.map_subtype_source - theorem PartialHomeomorph.map_target - theorem PartialHomeomorph.mk_coe - theorem PartialHomeomorph.mk_coe_symm - theorem PartialHomeomorph.nhdsWithin_source_inter - theorem PartialHomeomorph.nhdsWithin_target_inter - theorem PartialHomeomorph.nhds_eq_comap_inf_principal - def PartialHomeomorph.ofContinuousOpen - def PartialHomeomorph.ofContinuousOpenRestrict - def PartialHomeomorph.ofSet - theorem PartialHomeomorph.ofSet_symm - theorem PartialHomeomorph.ofSet_toPartialEquiv - theorem PartialHomeomorph.ofSet_trans' - theorem PartialHomeomorph.ofSet_trans - theorem PartialHomeomorph.ofSet_trans_ofSet - theorem PartialHomeomorph.ofSet_univ_eq_refl - def PartialHomeomorph.pi - def PartialHomeomorph.piecewise - theorem PartialHomeomorph.preimage_closure - theorem PartialHomeomorph.preimage_eventuallyEq_target_inter_preimage_inter - theorem PartialHomeomorph.preimage_frontier - theorem PartialHomeomorph.preimage_interior - def PartialHomeomorph.prod - theorem PartialHomeomorph.prod_eq_prod_of_nonempty' - theorem PartialHomeomorph.prod_eq_prod_of_nonempty - theorem PartialHomeomorph.prod_symm - theorem PartialHomeomorph.prod_trans - theorem PartialHomeomorph.refl_partialEquiv - theorem PartialHomeomorph.refl_prod_refl - theorem PartialHomeomorph.refl_symm - theorem PartialHomeomorph.refl_trans - def PartialHomeomorph.replaceEquiv - theorem PartialHomeomorph.replaceEquiv_eq_self - theorem PartialHomeomorph.restrOpen_source - theorem PartialHomeomorph.restrOpen_toPartialEquiv - theorem PartialHomeomorph.restr_eqOnSource_restr - theorem PartialHomeomorph.restr_eq_of_source_subset - theorem PartialHomeomorph.restr_inter_source - theorem PartialHomeomorph.restr_source' - theorem PartialHomeomorph.restr_source_inter - theorem PartialHomeomorph.restr_symm_trans - theorem PartialHomeomorph.restr_toPartialEquiv' - theorem PartialHomeomorph.restr_toPartialEquiv - theorem PartialHomeomorph.restr_trans - theorem PartialHomeomorph.restr_univ - theorem PartialHomeomorph.right_inv - theorem PartialHomeomorph.secondCountableTopology_source - theorem PartialHomeomorph.self_trans_symm - theorem PartialHomeomorph.source_inter_preimage_inv_preimage - theorem PartialHomeomorph.source_inter_preimage_target_inter - theorem PartialHomeomorph.source_preimage_target - theorem PartialHomeomorph.subtypeRestr_coe - theorem PartialHomeomorph.subtypeRestr_def - theorem PartialHomeomorph.subtypeRestr_source - theorem PartialHomeomorph.subtypeRestr_symm_eqOn - theorem PartialHomeomorph.subtypeRestr_symm_eqOn_of_le - theorem PartialHomeomorph.subtypeRestr_symm_trans_subtypeRestr - theorem PartialHomeomorph.symm_bijective - theorem PartialHomeomorph.symm_image_eq_source_inter_preimage - theorem PartialHomeomorph.symm_image_target_eq_source - theorem PartialHomeomorph.symm_image_target_inter_eq - theorem PartialHomeomorph.symm_map_nhds_eq - theorem PartialHomeomorph.symm_piecewise - theorem PartialHomeomorph.symm_source - theorem PartialHomeomorph.symm_symm - theorem PartialHomeomorph.symm_target - theorem PartialHomeomorph.symm_toPartialEquiv - theorem PartialHomeomorph.symm_trans_restr - theorem PartialHomeomorph.symm_trans_self - theorem PartialHomeomorph.target_inter_inv_preimage_preimage - theorem PartialHomeomorph.tendsto_symm - def PartialHomeomorph.toFun' - theorem PartialHomeomorph.toFun_eq_coe - def PartialHomeomorph.toHomeomorphOfSourceEqUnivTargetEqUniv - def PartialHomeomorph.toHomeomorphSourceTarget - theorem PartialHomeomorph.toPartialEquiv_injective - theorem PartialHomeomorph.to_isOpenEmbedding - def PartialHomeomorph.transHomeomorph - theorem PartialHomeomorph.transHomeomorph_eq_trans - theorem PartialHomeomorph.transHomeomorph_transHomeomorph - theorem PartialHomeomorph.trans_apply - theorem PartialHomeomorph.trans_assoc - theorem PartialHomeomorph.trans_ofSet - theorem PartialHomeomorph.trans_of_set' - theorem PartialHomeomorph.trans_refl - theorem PartialHomeomorph.trans_source'' - theorem PartialHomeomorph.trans_source' - theorem PartialHomeomorph.trans_source - theorem PartialHomeomorph.trans_symm_eq_symm_trans_symm - theorem PartialHomeomorph.trans_target'' - theorem PartialHomeomorph.trans_target' - theorem PartialHomeomorph.trans_target - theorem PartialHomeomorph.trans_toPartialEquiv - theorem PartialHomeomorph.trans_transHomeomorph - structure PartialHomeomorph + theorem TopologicalSpace.Opens.openPartialHomeomorphSubtypeCoe_coe + theorem TopologicalSpace.Opens.openPartialHomeomorphSubtypeCoe_source + theorem TopologicalSpace.Opens.openPartialHomeomorphSubtypeCoe_target - theorem TopologicalSpace.Opens.partialHomeomorphSubtypeCoe_coe - theorem TopologicalSpace.Opens.partialHomeomorphSubtypeCoe_source - theorem TopologicalSpace.Opens.partialHomeomorphSubtypeCoe_target + theorem Topology.IsOpenEmbedding.toOpenPartialHomeomorph_left_inv + theorem Topology.IsOpenEmbedding.toOpenPartialHomeomorph_right_inv - theorem Topology.IsOpenEmbedding.toPartialHomeomorph_left_inv - theorem Topology.IsOpenEmbedding.toPartialHomeomorph_right_inv Modified Mathlib/Topology/VectorBundle/Basic.lean +/- def VectorBundleCore.trivChange Modified MathlibTest/MfldSetTac.lean + theorem OpenPartialHomeomorph.coe_coe + theorem OpenPartialHomeomorph.coe_coe_symm + theorem OpenPartialHomeomorph.left_inv + def OpenPartialHomeomorph.symm + theorem OpenPartialHomeomorph.symm_to_PartialEquiv + structure OpenPartialHomeomorph - theorem PartialHomeomorph.coe_coe - theorem PartialHomeomorph.coe_coe_symm - theorem PartialHomeomorph.left_inv - def PartialHomeomorph.symm - theorem PartialHomeomorph.symm_to_PartialEquiv - structure PartialHomeomorph 2025-10-02 08:08:40 74c7a5c feat(Topology/Algebra/InfiniteSum/NatInt): add more pnat tsum lemmas (#27841) ESTIMATED CHANGES Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Cotangent.lean Modified Mathlib/NumberTheory/TsumDivsorsAntidiagonal.lean Modified Mathlib/Topology/Algebra/InfiniteSum/Basic.lean + theorem tprod_comp_neg Modified Mathlib/Topology/Algebra/InfiniteSum/NatInt.lean + theorem multipliable_pnat_iff_multipliable_succ - theorem pnat_multipliable_iff_multipliable_succ + theorem tprod_int_eq_zero_mul_tprod_pnat_sq +/- theorem tprod_pnat_eq_tprod_succ + theorem tprod_zero_pnat_eq_tprod_nat 2025-10-02 07:53:13 8d736b5 feat: add ContMDiff.congr (#28527) I wanted this lemma both while working on an early version of #28056 and while working on #23040: time to add it. Besides, it fills a natural API gap. ESTIMATED CHANGES Modified Mathlib/Geometry/Manifold/ContMDiff/Defs.lean + theorem ContMDiff.congr + theorem contMDiff_congr 2025-10-02 05:40:18 18a54b0 chore: remove redundant `generalize`, `induction`, `repeat'` and `unfold` invocations (#29317) ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Archimedean/Class.lean Modified Mathlib/Data/ENNReal/Real.lean Modified Mathlib/RingTheory/Polynomial/Opposites.lean +/- theorem Polynomial.support_opRingEquiv 2025-10-01 22:02:13 c697341 feat(CategoryTheory/Sites): the category of `1`-hypercovers up to homotopy (#29551) We define the category of `1`-hypercovers up to homotopy as the category of `1`-hypercovers where morphisms are considered up to existence of a homotopy. We show that this category is cofiltered if the base category has pullbacks. This category will be used to define a second construction of sheafification by taking certain colimits of multiequalizers over this category. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Sites/Hypercover/Homotopy.lean + def CategoryTheory.GrothendieckTopology.OneHypercover.homotopicRel + theorem CategoryTheory.PreOneHypercover.Homotopy.map_eq_map Modified Mathlib/CategoryTheory/Sites/Hypercover/One.lean + def CategoryTheory.GrothendieckTopology.OneHypercover.inter + def CategoryTheory.GrothendieckTopology.OneHypercover.isoMk + def CategoryTheory.GrothendieckTopology.OneHypercover.toZeroHypercover + def CategoryTheory.GrothendieckTopology.OneHypercover.trivial + def CategoryTheory.PreOneHypercover.inter + def CategoryTheory.PreOneHypercover.interFst + def CategoryTheory.PreOneHypercover.interLift + def CategoryTheory.PreOneHypercover.interSnd + theorem CategoryTheory.PreOneHypercover.sieve₀_trivial + theorem CategoryTheory.PreOneHypercover.sieve₁_inter + theorem CategoryTheory.PreOneHypercover.sieve₁_trivial + def CategoryTheory.PreOneHypercover.trivial Modified Mathlib/CategoryTheory/Sites/Hypercover/Zero.lean + def CategoryTheory.PreZeroHypercover.interFst + def CategoryTheory.PreZeroHypercover.interLift + def CategoryTheory.PreZeroHypercover.interSnd 2025-10-01 21:33:12 9699f52 feat: prove Gauss-Lucas theorem (#29630) The proof was found by Aristotle AI, then rewritten by me in Mathlib style. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Polynomial/Eval/Defs.lean + theorem Polynomial.eval_listSum +/- theorem Polynomial.eval_mul_X + theorem Polynomial.eval_multisetSum Modified Mathlib/Algebra/Polynomial/Splits.lean + theorem Polynomial.aeval_derivative_of_splits + theorem Polynomial.eval_derivative_div_eval_of_ne_zero_of_splits + theorem Polynomial.eval_derivative_eq_eval_mul_sum_of_splits + theorem Polynomial.eval_derivative_of_splits + theorem Polynomial.eval₂_derivative_of_splits Added Mathlib/Analysis/Complex/Polynomial/GaussLucas.lean + theorem Polynomial.derivRootWeight_nonneg + theorem Polynomial.eq_centerMass_of_eval_derivative_eq_zero + theorem Polynomial.rootSet_derivative_subset_convexHull_rootSet + theorem Polynomial.sum_derivRootWeight_pos Modified docs/1000.yaml 2025-10-01 20:18:22 69ebb74 perf(Algebra/IsPrimePow): speed up decidability for Nat IsPrimePow (#30093) Previously, this decidability instance was defined using `isPrimePow_nat_iff_bounded`, which (as I understand it) means that it undertook a search over all pairs `p, k` of numbers below `n` until it finds one where `p` is prime, and `p^k = n`, or else loops through all possibilities. This PR creates a new theorem which instead searches over possible values of the exponent first, bounding the search at the binary logarithm of `n`, and then a further theorem which uses `n.minFac` for `p`. This massively reduces the time for large `n`. In principle this could be made polynomial time, if we were to compute the putative prime factor for each `k` by taking the `k`th root and checking primality with AKS. But until that is implemented, this seems like a fine improvement. ESTIMATED CHANGES Modified Mathlib/Algebra/IsPrimePow.lean + theorem isPrimePow_nat_iff_bounded_log + theorem isPrimePow_nat_iff_bounded_log_minFac 2025-10-01 17:16:18 12fc3da feat(CategoryTheory/Closed): variant of `cartesianClosedOfReflective` with better definitional equalities (#30017) A variant of `cartesianClosedOfReflective` that allows for better control over the resulting exponentials. The main application of this is that exponentials of sheaves are now computed as exponentials of presheaves up to definitional equality. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Closed/Ideal.lean + def CategoryTheory.cartesianClosedOfReflective' +/- def CategoryTheory.cartesianClosedOfReflective Modified Mathlib/CategoryTheory/Sites/CartesianClosed.lean 2025-10-01 15:29:52 3cf5388 feat(AbsoluteValue/Equivalence): two absolute values `v` and `w` are equivalent if and only if `WithAbs v` and `WithAbs w` are homeomorphic (#29966) ESTIMATED CHANGES Modified Mathlib/Analysis/AbsoluteValue/Equivalence.lean + theorem AbsoluteValue.IsEquiv.equivWithAbs_image_mem_nhds_zero + theorem AbsoluteValue.IsEquiv.isEmbedding_equivWithAbs + theorem AbsoluteValue.isEquiv_iff_isHomeomorph Modified Mathlib/Analysis/Normed/Ring/WithAbs.lean + def WithAbs.equivWithAbs + theorem WithAbs.equivWithAbs_equiv_symm_apply + theorem WithAbs.equivWithAbs_symm + theorem WithAbs.equivWithAbs_symm_equiv_symm_apply + theorem WithAbs.equiv_equivWithAbs_symm_apply 2025-10-01 13:25:46 2c3f8ca chore: remove non-terminal simps (#30106) Found by the flexible linter; extracted from https://github.com/leanprover-community/mathlib4/pull/28962. I consider these changes improvements as well, given they improve robustness. ESTIMATED CHANGES Modified Mathlib/AlgebraicTopology/SimplicialSet/NerveAdjunction.lean Modified Mathlib/Analysis/Analytic/Binomial.lean Modified Mathlib/Analysis/Calculus/FDeriv/Pow.lean Modified Mathlib/Analysis/Calculus/FormalMultilinearSeries.lean Modified Mathlib/Analysis/Complex/ValueDistribution/FirstMainTheorem.lean Modified Mathlib/Analysis/Meromorphic/TrailingCoefficient.lean Modified Mathlib/CategoryTheory/SmallObject/Construction.lean Modified Mathlib/Combinatorics/SetFamily/FourFunctions.lean Modified Mathlib/Data/ENNReal/BigOperators.lean Modified Mathlib/Data/Nat/Digits/Lemmas.lean Modified Mathlib/Probability/Kernel/IonescuTulcea/PartialTraj.lean Modified Mathlib/Probability/ProbabilityMassFunction/Constructions.lean Modified Mathlib/Topology/Instances/EReal/Lemmas.lean 2025-10-01 13:25:44 486ed12 ci(nolints.yml): use peter-evans/create-pull-request instead of bash script (#30096) We simplify the workflow by using peter-evans/create-pull-request instead of our custom bash script to create the PR. Testing result in #30094. ESTIMATED CHANGES Modified .github/workflows/nolints.yml Modified scripts/README.md Deleted scripts/update_nolints_CI.sh 2025-10-01 13:25:41 057a6c8 chore: remove non-terminal simps (#30091) Found by the flexible linter; extracted from #28962. This is a subset of changes which I consider improvements on its own. ESTIMATED CHANGES Modified Archive/Arithcc.lean Modified Archive/Imo/Imo2008Q2.lean Modified Archive/Wiedijk100Theorems/CubingACube.lean Modified Counterexamples/Phillips.lean Modified Mathlib/Algebra/BigOperators/Fin.lean Modified Mathlib/Algebra/Category/ModuleCat/Subobject.lean Modified Mathlib/Algebra/Lie/Weights/RootSystem.lean Modified Mathlib/AlgebraicGeometry/Gluing.lean Modified Mathlib/AlgebraicGeometry/StructureSheaf.lean Modified Mathlib/AlgebraicGeometry/ValuativeCriterion.lean Modified Mathlib/Analysis/Analytic/OfScalars.lean Modified Mathlib/Analysis/Calculus/ContDiff/FaaDiBruno.lean Modified Mathlib/Analysis/Meromorphic/NormalForm.lean Modified Mathlib/Analysis/NormedSpace/MultipliableUniformlyOn.lean Modified Mathlib/Analysis/ODE/Gronwall.lean Modified Mathlib/Analysis/Real/Pi/Irrational.lean Modified Mathlib/Analysis/SpecialFunctions/BinaryEntropy.lean Modified Mathlib/Analysis/SpecialFunctions/MulExpNegMulSq.lean Modified Mathlib/Analysis/SpecialFunctions/MulExpNegMulSqIntegral.lean Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Basic.lean Modified Mathlib/Analysis/SpecificLimits/Normed.lean Modified Mathlib/Combinatorics/Enumerative/Composition.lean Modified Mathlib/Combinatorics/SetFamily/KruskalKatona.lean Modified Mathlib/Combinatorics/SimpleGraph/ConcreteColorings.lean Modified Mathlib/Geometry/Euclidean/Triangle.lean Modified Mathlib/Geometry/Manifold/Riemannian/Basic.lean Modified Mathlib/GroupTheory/GroupAction/MultiplePrimitivity.lean Modified Mathlib/GroupTheory/GroupAction/MultipleTransitivity.lean Modified Mathlib/LinearAlgebra/TensorProduct/Associator.lean Modified Mathlib/NumberTheory/NumberField/InfinitePlace/Basic.lean Modified Mathlib/RingTheory/HahnSeries/Lex.lean Modified Mathlib/RingTheory/KrullDimension/Module.lean Modified Mathlib/Topology/DiscreteSubset.lean Modified Mathlib/Topology/Order.lean Modified Mathlib/Topology/Order/Monotone.lean Modified Mathlib/Topology/PartialHomeomorph.lean Modified Mathlib/Topology/PartitionOfUnity.lean 2025-10-01 13:25:39 caee90c feat(Probability/Independence): relate conditional independence and factorization of a kernel (#29884) ```lean CondIndepFun m' hm' f g μ ↔ (condExpKernel μ m').map (fun ω ↦ (f ω, g ω)) =ᵐ[μ.trim hm'] (condExpKernel μ m').map f ×ₖ (condExpKernel μ m').map g ``` From the LeanBandits project. ESTIMATED CHANGES Modified Mathlib/Probability/Independence/Conditional.lean + theorem ProbabilityTheory.condIndepFun_iff_compProd_map_prod_eq_compProd_prod_map_map + theorem ProbabilityTheory.condIndepFun_iff_map_prod_eq_prod_comp_trim + theorem ProbabilityTheory.condIndepFun_iff_map_prod_eq_prod_map_map Modified Mathlib/Probability/Independence/Kernel.lean + theorem ProbabilityTheory.Kernel.indepFun_iff_compProd_map_prod_eq_compProd_prod_map_map 2025-10-01 13:25:37 11f59c5 feat(Probability): `condDistrib` lemmas (#29555) From the LeanBandits project. ESTIMATED CHANGES Modified Mathlib/Probability/Kernel/CondDistrib.lean + theorem ProbabilityTheory.condDistrib_ae_eq_iff_measure_eq_compProd +/- theorem ProbabilityTheory.condDistrib_ae_eq_of_measure_eq_compProd + theorem ProbabilityTheory.condDistrib_ae_eq_of_measure_eq_compProd_of_measurable + theorem ProbabilityTheory.condDistrib_comp + theorem ProbabilityTheory.condDistrib_comp_map + theorem ProbabilityTheory.condDistrib_comp_self + theorem ProbabilityTheory.condDistrib_congr + theorem ProbabilityTheory.condDistrib_congr_left + theorem ProbabilityTheory.condDistrib_congr_right + theorem ProbabilityTheory.condDistrib_const + theorem ProbabilityTheory.condDistrib_fst_prod + theorem ProbabilityTheory.condDistrib_map + theorem ProbabilityTheory.condDistrib_self + theorem ProbabilityTheory.condDistrib_snd_prod Modified Mathlib/Probability/Kernel/Condexp.lean + theorem ProbabilityTheory.condDistrib_apply_ae_eq_condExpKernel_map 2025-10-01 13:25:36 fd89053 doc(ModelTheory): clarify free and (in-scope) bound variables in `BoundedFormula` (#29373) The current design of `BoundedFormula` is actually a locally nameless representation. Following PL convention, we should call the `α` indexed variables as free variables, and the `Fin n` indexed variables as (in-scope) bound variables. Also clarify that the bound variables are actually de Bruijn levels. Some references: - - [Locally nameless in CSLib](https://github.com/leanprover/cslib/blob/4734d98a80d82e8bb15cbb64b6cfaa30c08691a8/Cslib/Languages/LambdaCalculus/LocallyNameless/Untyped/Basic.lean) - [Locally nameless in Lean core](https://github.com/leanprover/lean4/blob/540e9e85f3317d04133aa2a69d5a24fb31e92d8b/src/Lean/Expr.lean#L238) ESTIMATED CHANGES Modified Mathlib/ModelTheory/Semantics.lean Modified Mathlib/ModelTheory/Syntax.lean 2025-10-01 13:25:34 5274277 feat: `Colex` type synonym (#29058) We create a new `Colex` type synonym for the colexicographic order on a type. We use this to re-define the colexicographic order on `Finset`, protecting and deprecating the existing `Finset.Colex` type synonym. A future PR will add instances for `Pi` types and `Finsupp`. See [Zulip](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Pi.2ELex/near/536563593) for some discussion on this. ESTIMATED CHANGES Modified Mathlib/Combinatorics/Colex.lean +/- theorem Finset.Colex.le_def +/- theorem Finset.Colex.le_iff_max'_mem +/- theorem Finset.Colex.le_iff_sdiff_subset_lowerClosure +/- theorem Finset.Colex.lt_iff_exists_forall_lt +/- theorem Finset.Colex.lt_iff_max'_mem +/- theorem Finset.Colex.ofColex_bot +/- theorem Finset.Colex.ofColex_top +/- theorem Finset.Colex.singleton_le_singleton +/- theorem Finset.Colex.singleton_le_toColex +/- theorem Finset.Colex.singleton_lt_singleton +/- theorem Finset.Colex.toColex_mono +/- theorem Finset.Colex.toColex_strictMono - structure Finset.Colex - theorem Finset.ofColex_inj +/- theorem Finset.ofColex_injective +/- theorem Finset.ofColex_ne_ofColex - theorem Finset.ofColex_toColex +/- def Finset.orderIsoColex - theorem Finset.toColex_inj +/- theorem Finset.toColex_injective +/- theorem Finset.toColex_ne_toColex - theorem Finset.toColex_ofColex Modified Mathlib/Order/Synonym.lean + theorem Colex.exists + theorem Colex.forall + def Colex + def ofColex + theorem ofColex_inj + theorem ofColex_symm_eq + theorem ofColex_toColex + def toColex + theorem toColex_inj + theorem toColex_ofColex + theorem toColex_symm_eq 2025-10-01 12:21:36 901e2eb feat(Tactic/Common): add `fun_prop` tactic to `hint` (#30090) This registers `fun_prop` with `hint`, so that `hint` users will find it. ESTIMATED CHANGES Modified Mathlib/Tactic/Common.lean Modified MathlibTest/MinImports.lean 2025-10-01 12:09:26 4853a8d ci(update_dependencies.yml): skip force pushing if lake-manifest.json was not modified (#30095) This PR fixes a few things with the current `update_dependencies.yml`: - In #29726, I incorrectly removed some code that was necessary for the workflow to be able to detect whether `ready-to-merge` was already on the PR. - If the branch used by this workflow is already present, we check whether there are any differences between `lake-manifest.json` on that branch and in the working directory (`master` after running `lake update`) before running any later steps. This should prevent some unnecessary force-pushing. ESTIMATED CHANGES Modified .github/workflows/update_dependencies.yml 2025-10-01 11:17:52 78e78cb chore: remove deprecated declarations in `SetTheory.Ordinal.Family` (#30102) **All** the `FIXME There is undeprecated material below still depending on this?!` lemmas, with lemma names changed and (non-problematic) deprecations added as necessary. ESTIMATED CHANGES Modified Mathlib/SetTheory/Cardinal/Cofinality.lean Modified Mathlib/SetTheory/Cardinal/Regular.lean Modified Mathlib/SetTheory/Ordinal/Family.lean +/- theorem Ordinal.IsNormal.bsup - theorem Ordinal.IsNormal.sup + theorem Ordinal.bsup'_eq_iSup + theorem Ordinal.bsup_eq_iSup - theorem Ordinal.bsup_eq_sup' - theorem Ordinal.bsup_eq_sup + theorem Ordinal.iSup'_eq_bsup + theorem Ordinal.iSup_Iio_eq_bsup +/- theorem Ordinal.iSup_eq_bsup + theorem Ordinal.iSup_eq_iSup + theorem Ordinal.iSup_eq_lsub + theorem Ordinal.iSup_eq_lsub_iff + theorem Ordinal.iSup_eq_lsub_iff_lt_iSup + theorem Ordinal.iSup_eq_lsub_or_succ_iSup_eq_lsub + theorem Ordinal.iSup_le_lsub + theorem Ordinal.iSup_typein_limit + theorem Ordinal.iSup_typein_succ - theorem Ordinal.le_sup +/- def Ordinal.lsub +/- theorem Ordinal.lsub_eq_zero_iff +/- theorem Ordinal.lsub_le_iff + theorem Ordinal.lsub_le_succ_iSup - theorem Ordinal.lsub_le_sup_succ +/- theorem Ordinal.lsub_notMem_range +/- theorem Ordinal.lsub_pos +/- theorem Ordinal.lt_lsub_iff - theorem Ordinal.ne_iSup_iff_lt_iSup - theorem Ordinal.ne_sup_iff_lt_sup +/- theorem Ordinal.sSup_eq_bsup + theorem Ordinal.succ_iSup_eq_lsub_iff + theorem Ordinal.succ_iSup_le_lsub_iff - def Ordinal.sup - theorem Ordinal.sup_const - theorem Ordinal.sup_eq_bsup' - theorem Ordinal.sup_eq_bsup - theorem Ordinal.sup_eq_lsub - theorem Ordinal.sup_eq_lsub_iff_lt_sup - theorem Ordinal.sup_eq_lsub_iff_succ - theorem Ordinal.sup_eq_lsub_or_sup_succ_eq_lsub - theorem Ordinal.sup_eq_of_range_eq - theorem Ordinal.sup_eq_sup - theorem Ordinal.sup_le - theorem Ordinal.sup_le_iff - theorem Ordinal.sup_le_lsub - theorem Ordinal.sup_le_of_range_subset - theorem Ordinal.sup_not_succ_of_ne_sup - theorem Ordinal.sup_succ_eq_lsub - theorem Ordinal.sup_succ_le_lsub - theorem Ordinal.sup_sum - theorem Ordinal.sup_typein_limit - theorem Ordinal.sup_typein_succ - theorem Ordinal.sup_unique Modified Mathlib/SetTheory/Ordinal/Topology.lean 2025-10-01 10:39:34 1b87793 feat(RingTheory): units are exactly non-zerodivisors in noncommutative Artinian rings (#28887) ESTIMATED CHANGES Modified Mathlib/RingTheory/Artinian/Algebra.lean Modified Mathlib/RingTheory/Artinian/Module.lean + theorem IsArtinianRing.isUnitSubmonoid_eq + theorem IsArtinianRing.isUnitSubmonoid_eq_nonZeroDivisorsRight + theorem IsArtinianRing.isUnitSubmonoid_eq_of_mulOpposite + theorem IsArtinianRing.isUnit_iff_isLeftRegular + theorem IsArtinianRing.isUnit_iff_isRegular + theorem IsArtinianRing.isUnit_iff_isRegular_of_mulOpposite + theorem IsArtinianRing.isUnit_iff_isRightRegular + theorem IsArtinianRing.isUnit_iff_mem_nonZeroDivisors + theorem IsArtinianRing.isUnit_iff_mem_nonZeroDivisors_of_mulOpposite + theorem IsArtinianRing.isUnit_of_mem_nonZeroDivisors + theorem IsArtinianRing.isUnit_of_mem_nonZeroDivisors_of_mulOpposite + theorem IsArtinianRing.nonZeroDivisorsLeft_eq_isUnitSubmonoid Modified Mathlib/RingTheory/Artinian/Ring.lean - theorem IsArtinianRing.isUnit_iff_mem_nonZeroDivisors - theorem IsArtinianRing.isUnit_of_mem_nonZeroDivisors - theorem IsArtinianRing.isUnit_submonoid_eq Modified Mathlib/RingTheory/IntegralClosure/IsIntegral/Basic.lean +/- theorem Algebra.finite_adjoin_simple_of_isIntegral 2025-10-01 10:39:32 6edd067 feat: collections of non-trivial and pairwise inequivalent absolute values contain values that diverge around 1 (#27969) If $v_1, ..., v_k$ is a a finite collection of non-trivial and pairwise inequivalent absolute values in a field, then for each $v_i$ there is a point $a$ for which $1 < v_i(a)$ while $v_j(a) < 1$ for all $j \neq i$. This generalises the corresponding result on pairs of absolute values PR'd in #27964 This PR continues the work from #22142. Original PR: https://github.com/leanprover-community/mathlib4/pull/22142 ESTIMATED CHANGES Modified Mathlib/Analysis/AbsoluteValue/Equivalence.lean + theorem AbsoluteValue.exists_one_lt_lt_one_pi_of_not_isEquiv Modified Mathlib/Analysis/SpecificLimits/Normed.lean + theorem AbsoluteValue.tendsto_div_one_add_pow_nhds_one + theorem AbsoluteValue.tendsto_div_one_add_pow_nhds_zero Modified Mathlib/Data/Fintype/Sum.lean + theorem Fintype.card_subtype_eq_or_eq_of_ne 2025-10-01 10:14:09 79a1283 feat(FractionRing): add `algHom_commutes` (#29907) Add a version of `algHom.commutes` and `algEquiv.commutes` for fraction fields and use them to simplify some proofs. ESTIMATED CHANGES Modified Mathlib/RingTheory/DedekindDomain/Different.lean Modified Mathlib/RingTheory/IntegralClosure/IntegralRestrict.lean Modified Mathlib/RingTheory/Localization/FractionRing.lean + theorem IsFractionRing.algEquiv_commutes + theorem IsFractionRing.algHom_commutes 2025-10-01 09:41:35 e38a194 feat: the composition of continuously polynomial functions is continuously polynomial (#30086) ESTIMATED CHANGES Modified Mathlib/Analysis/Analytic/Composition.lean + theorem CPolynomialAt.comp + theorem CPolynomialAt.comp_of_eq + theorem CPolynomialAt.fun_comp + theorem CPolynomialAt.fun_comp_of_eq + theorem CPolynomialOn.comp' + theorem CPolynomialOn.comp + theorem HasFiniteFPowerSeriesAt.comp 2025-10-01 08:55:05 e018b8d feat(Topology/InfiniteSum): Formula for `∏' i : ι, (1 + f i)` (#29857) This is the infinite version of [Finset.prod_one_add](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Algebra/BigOperators/Ring/Finset.html#Finset.prod_one_add). Unfortunately I think it only holds in the Summable->Multipliable direction, but not the opposite way. One usage of this is in generating power series of partition functions (infinite version of those in https://github.com/leanprover-community/mathlib4/blob/master/Archive/Wiedijk100Theorems/Partition.lean). Using these lemma one can quickly argue about general multipliability, and direct calculation if the product factor is `(1 + monomial)` ESTIMATED CHANGES Modified Mathlib/Topology/Algebra/InfiniteSum/Ring.lean + theorem hasProd_one_add_of_hasSum_prod + theorem multipliable_one_add_of_summable_prod + theorem tprod_one_add 2025-10-01 08:55:03 75a0561 feat(CategoryTheory/Limits/Shapes/Pullback/Categorical/CatCospanTransform): more lemmas about isomorphisms of `CatCospanTransform` (#26547) We construct ways to extract left, right or base components of ismorphisms of `CatCospanTransform`, as well as various `IsIso` instances, and lemmas allowing to compute the left, right or base component of the inverse of a `CatCospanTransformMorphism` that has an `IsIso` instance. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Limits/Shapes/Pullback/Categorical/CatCospanTransform.lean + def CategoryTheory.Limits.CatCospanTransform.baseIso + theorem CategoryTheory.Limits.CatCospanTransform.inv_base + theorem CategoryTheory.Limits.CatCospanTransform.inv_left + theorem CategoryTheory.Limits.CatCospanTransform.inv_right + theorem CategoryTheory.Limits.CatCospanTransform.isIso_iff + def CategoryTheory.Limits.CatCospanTransform.leftIso + def CategoryTheory.Limits.CatCospanTransform.rightIso 2025-10-01 08:38:45 b60e8b5 doc: fix minor docstring errors (#30104) Fix a few typos and errors in the docstrings of files I added recently. ESTIMATED CHANGES Modified Mathlib/Analysis/Complex/JensenFormula.lean Modified Mathlib/Analysis/Complex/ValueDistribution/CharacteristicFunction.lean Modified Mathlib/Analysis/Complex/ValueDistribution/CountingFunction.lean Modified Mathlib/Analysis/Complex/ValueDistribution/FirstMainTheorem.lean Modified Mathlib/Analysis/Complex/ValueDistribution/ProximityFunction.lean 2025-10-01 07:52:32 7438734 chore: fix type confusion in LatticeHom.withTop/withBot/withTopWithBot (#30100) Based on #27918. ESTIMATED CHANGES Modified Mathlib/Order/Hom/WithTopBot.lean +/- theorem LatticeHom.coe_withBot +/- theorem LatticeHom.coe_withTopWithBot 2025-10-01 05:53:48 ba16996 chore: move code around in `NormedSpace.Multilinear.Basic` (#30087) Preparation for #22089. The current PR only moves 77 lines earlier in the file, to make it available at a point where I will need it. Pure cut and paste, no other change. ESTIMATED CHANGES Modified Mathlib/Analysis/NormedSpace/Multilinear/Basic.lean 2025-10-01 05:38:59 6549fa3 chore: deprecate duplicate `zeta_mul_kappa` lemma (#30055) This PR deprecates the duplicate lemma `zeta_mul_kappa` that was identical to `zeta_mul_zeta` but with a typo in the name. Closes #28440. ESTIMATED CHANGES Modified Mathlib/Combinatorics/Enumerative/IncidenceAlgebra.lean - theorem IncidenceAlgebra.zeta_mul_kappa 2025-09-30 21:50:22 bb6ed24 feat: Units.{continuous_map,isOpenMap_map} (#29780) ESTIMATED CHANGES Modified Mathlib/Topology/Algebra/Constructions.lean + theorem Units.continuous_map + theorem Units.isOpenMap_map 2025-09-30 20:08:16 213ff10 feat(TangentCone): generalize some lemmas to TVS (#29842) This is a step towards porting the whole file to topological vector spaces, see #24163 for a definition that works well in that case. ESTIMATED CHANGES Modified Mathlib/Analysis/Calculus/TangentCone.lean 2025-09-30 20:08:15 bc68d1d chore(Analysis/Distribution/SchwartzMap): correct a definition and add two lemmas (#29818) Fix the definition of `mkCLM` to allow for linear maps that are only defined on the Schwartz space. Also add two apply lemmas that were missing. ESTIMATED CHANGES Modified Mathlib/Analysis/Distribution/FourierSchwartz.lean Modified Mathlib/Analysis/Distribution/SchwartzSpace.lean + theorem SchwartzMap.bilinLeftCLM_apply +/- def SchwartzMap.mkCLM +/- def SchwartzMap.mkLM + theorem SchwartzMap.neg_apply 2025-09-30 19:48:23 e74fcfd feat: add Module.Basis.continuous_toMatrix (#29848) ESTIMATED CHANGES Modified Mathlib/Analysis/Normed/Module/FiniteDimension.lean + theorem Module.Basis.continuous_coe_repr + theorem Module.Basis.continuous_toMatrix 2025-09-30 18:42:44 77be240 chore(CategoryTheory/Limits): generalise from `Over` to `CostructuredArrow` (#30074) We generalise the limit results for connected categories from `Over` to `CostructuredArrow`. Also the naming is adapted to the naming convention. From Proetale. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Limits/Constructions/Over/Connected.lean + def CategoryTheory.CostructuredArrow.CreatesConnected.isLimitRaiseCone + theorem CategoryTheory.CostructuredArrow.CreatesConnected.mapCone_raiseCone + def CategoryTheory.CostructuredArrow.CreatesConnected.natTransInCostructuredArrow + def CategoryTheory.CostructuredArrow.CreatesConnected.raiseCone + def CategoryTheory.CostructuredArrow.Over.conePost + def CategoryTheory.CostructuredArrow.Over.conePostIso + def CategoryTheory.CostructuredArrow.Over.isLimitConePost - def CategoryTheory.Over.CreatesConnected.natTransInOver - def CategoryTheory.Over.CreatesConnected.raiseCone - def CategoryTheory.Over.CreatesConnected.raisedConeIsLimit - theorem CategoryTheory.Over.CreatesConnected.raised_cone_lowers_to_original - def CategoryTheory.Over.conePost - def CategoryTheory.Over.conePostIso - def CategoryTheory.Over.isLimitConePost 2025-09-30 17:24:12 0c04c3e feat(GroupTheory/FreeGroup): add definition of cyclically reduced words (#27672) This PR adds the definition of cyclically reduced words for free groups. It is a part of a series of PR on the theory of cyclically reduced words. Upstreamed from the [EquationalTheories](https://github.com/teorth/equational_theories) project. - [x] depends on: #25966 ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/GroupTheory/FreeGroup/CyclicallyReduced.lean + theorem FreeGroup.IsCyclicallyReduced.flatten_replicate + theorem FreeGroup.IsCyclicallyReduced.isReduced + theorem FreeGroup.IsCyclicallyReduced.nil + theorem FreeGroup.IsCyclicallyReduced.singleton + def FreeGroup.IsCyclicallyReduced + theorem FreeGroup.isCyclicallyReduced_cons_append_iff + theorem FreeGroup.isCyclicallyReduced_iff 2025-09-30 15:31:06 4243cfd feat(Data/Nat/Init): `n.AtLeastTwo` implies `NeZero (n - 1)` (#29410) Add an instance for `NeZero (n - 1)` deduced from `n.AtLeastTwo`. ESTIMATED CHANGES Modified Mathlib/Data/Nat/Init.lean + theorem Nat.AtLeastTwo.neZero_sub_one 2025-09-30 15:16:30 ecc0d48 feat: establish Jensen's Formula (#30065) Establish Jensen's formula of complex analysis. This material is used in [Project VD](https://github.com/kebekus/ProjectVD), which aims to formalize Value Distribution Theory for meromorphic functions on the complex plane. The formula established here is the last missing ingredient in the first main theorem of value distribution theory. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/Complex/JensenFormula.lean + theorem AnalyticOnNhd.circleAverage_log_norm_of_ne_zero + theorem MeromorphicOn.circleAverage_log_norm + theorem circleAverage_log_norm_factorizedRational Modified Mathlib/Analysis/Complex/ValueDistribution/CountingFunction.lean +/- theorem Function.locallyFinsuppWithin.countingFunction_finsum_eq_finsum_add 2025-09-30 15:00:05 e639e88 chore: redefine SimpleGraph.maxDegree with WithBot.unbotD (#30076) Using `Option.getD` is not type-correct. Works towards #27918. ESTIMATED CHANGES Modified Mathlib/Combinatorics/SimpleGraph/Finite.lean 2025-09-30 13:58:37 9978e09 feat(FDeriv/Analytic): generalize results about derivatives of multilinear maps (#30018) ESTIMATED CHANGES Modified Mathlib/Analysis/Calculus/FDeriv/Analytic.lean + theorem HasFDerivAt.continuousMultilinearMap_apply + theorem HasFDerivWithinAt.continuousMultilinearMap_apply + theorem HasFiniteFPowerSeriesOnBall.hasStrictFDerivAt + theorem HasStrictFDerivAt.continuousMultilinearMap_apply 2025-09-30 12:55:53 b34acd3 feat(Analysis/SpecialFunctions): add the sigmoid function (#28780) Add the Sigmoid from `ℝ` to `ℝ` and from `ℝ` to `I` and show some analytical properties. Then, add `sigmoid_ord_embedding`, the Sigmoid function seen as an `OrderEmbedding` from `ℝ` to `I`. Show that it is a `MeasurableEmbedding` and that we could use it to construct a `MeasurableEmbedding` from any `StandardBorelSpace` to `I`. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/SpecialFunctions/Sigmoid.lean + theorem AnalyticAt.sigmoid' + theorem AnalyticAt.sigmoid + theorem AnalyticOn.sigmoid + theorem AnalyticOnNhd.sigmoid + theorem AnalyticWithinAt.sigmoid + theorem ContDiff.sigmoid + theorem Continuous.sigmoid + theorem Differentiable.sigmoid + theorem DifferentiableAt.sigmoid + theorem Real.deriv_sigmoid + theorem Real.hasDerivAt_sigmoid + theorem Real.range_sigmoid + theorem Real.sigmoid_def + theorem Real.sigmoid_inj + theorem Real.sigmoid_injective + theorem Real.sigmoid_le + theorem Real.sigmoid_le_iff + theorem Real.sigmoid_le_one + theorem Real.sigmoid_lt + theorem Real.sigmoid_lt_iff + theorem Real.sigmoid_lt_one + theorem Real.sigmoid_monotone + theorem Real.sigmoid_mul_rexp_neg + theorem Real.sigmoid_neg + theorem Real.sigmoid_nonneg + theorem Real.sigmoid_pos + theorem Real.sigmoid_strictMono + theorem Real.sigmoid_zero + theorem Real.tendsto_sigmoid_atBot + theorem Real.tendsto_sigmoid_atTop + theorem Topology.isEmbedding_sigmoid + theorem analyticAt_sigmoid + theorem analyticOnNhd_sigmoid + theorem analyticOn_sigmoid + theorem analyticWithinAt_sigmoid + theorem contDiff_sigmoid + theorem continuous_sigmoid + theorem differentiableAt_sigmoid + theorem differentiable_sigmoid + theorem measurableEmbedding_sigmoid + theorem measurableEmbedding_sigmoid_comp_embeddingReal + theorem unitInterval.continuous_sigmoid + theorem unitInterval.range_sigmoid + theorem unitInterval.sigmoid_inj + theorem unitInterval.sigmoid_injective + theorem unitInterval.sigmoid_le + theorem unitInterval.sigmoid_le_iff + theorem unitInterval.sigmoid_lt + theorem unitInterval.sigmoid_lt_iff + theorem unitInterval.sigmoid_lt_one + theorem unitInterval.sigmoid_monotone + theorem unitInterval.sigmoid_neg + theorem unitInterval.sigmoid_pos + theorem unitInterval.sigmoid_strictMono + theorem unitInterval.tendsto_sigmoid_atBot + theorem unitInterval.tendsto_sigmoid_atTop Modified Mathlib/Data/Set/Operations.lean + theorem Set.Subtype.range_coind 2025-09-30 12:36:32 f6d8304 chore: adapt file-level docstring on Taylor series to current mathlib (#30084) ESTIMATED CHANGES Modified Mathlib/Analysis/Calculus/ContDiff/FTaylorSeries.lean 2025-09-30 12:06:12 9d2bcc5 feat(RingTheory): golf `IsPrincipalIdealRing.of_prime` (#28477) In complement to #28451 and as discussed in #27200, this PR uses the newly added Oka predicates to golf the proof of `IsPrincipalIdealRing.of_prime`. ESTIMATED CHANGES Modified Mathlib/RingTheory/PrincipalIdealDomain.lean + theorem Ideal.exists_maximal_not_isPrincipal + theorem Ideal.nonPrincipals_eq_empty_iff + theorem Ideal.nonPrincipals_zorn +/- theorem nonPrincipals_def +/- theorem nonPrincipals_eq_empty_iff +/- theorem nonPrincipals_zorn Modified Mathlib/RingTheory/PrincipalIdealDomainOfPrime.lean + theorem Ideal.isOka_isPrincipal 2025-09-30 11:00:18 49fa7a7 feat(Finset/Interval): improve computation performance (#30078) Use `map` on `(t \ s).powerset` instead of filtering `t.powerset`. ESTIMATED CHANGES Modified Mathlib/Data/Finset/Disjoint.lean + theorem Finset.disjUnion_inj_left + theorem Finset.disjUnion_inj_right Modified Mathlib/Data/Finset/Interval.lean +/- theorem Finset.Icc_eq_filter_powerset +/- theorem Finset.Ico_eq_filter_ssubsets +/- theorem Finset.Iic_eq_powerset +/- theorem Finset.Iio_eq_ssubsets +/- theorem Finset.Ioc_eq_filter_powerset +/- theorem Finset.Ioo_eq_filter_ssubsets 2025-09-30 10:01:47 22effe3 doc: treat "non" as a prefix where it appears as a free-standing word (#29156) In English, "non" is merely a prefix, not a word in itself. Hence, it should always be attached to another word, either directly or by hyphen. This PR attaches the prefix "non" to whatever it is prefixing in the cases where it currently appears as a free-standing word. There's a couple of tricky cases in the PR that needs some extra attention. I will call these out by review comments. ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Defs.lean Modified Mathlib/Algebra/Order/Hom/Basic.lean Modified Mathlib/Algebra/Order/Sub/Basic.lean Modified Mathlib/Algebra/Ring/BooleanRing.lean Modified Mathlib/Algebra/Ring/CentroidHom.lean Modified Mathlib/Algebra/Ring/Defs.lean Modified Mathlib/Algebra/Star/CentroidHom.lean Modified Mathlib/AlgebraicTopology/DoldKan/Degeneracies.lean Modified Mathlib/Analysis/Complex/Arg.lean Modified Mathlib/Analysis/Complex/Polynomial/Basic.lean Modified Mathlib/Analysis/InnerProductSpace/Basic.lean Modified Mathlib/Analysis/Normed/Group/Basic.lean Modified Mathlib/Analysis/Normed/Unbundled/RingSeminorm.lean Modified Mathlib/Analysis/SpecialFunctions/NonIntegrable.lean Modified Mathlib/CategoryTheory/Closed/Ideal.lean Modified Mathlib/CategoryTheory/Filtered/Basic.lean Modified Mathlib/CategoryTheory/Monoidal/Category.lean Modified Mathlib/CategoryTheory/Monoidal/Mod_.lean Modified Mathlib/CategoryTheory/SmallObject/Iteration/Basic.lean Modified Mathlib/Combinatorics/Additive/AP/Three/Defs.lean Modified Mathlib/Combinatorics/SimpleGraph/Regularity/Uniform.lean Modified Mathlib/Data/Finsupp/Weight.lean Modified Mathlib/FieldTheory/Finite/GaloisField.lean Modified Mathlib/FieldTheory/RatFunc/Basic.lean Modified Mathlib/GroupTheory/Perm/Cycle/Basic.lean Modified Mathlib/GroupTheory/Perm/Sign.lean Modified Mathlib/Order/BooleanAlgebra/Basic.lean Modified Mathlib/Order/CompleteBooleanAlgebra.lean Modified Mathlib/Order/Disjoint.lean Modified Mathlib/Order/GaloisConnection/Basic.lean Modified Mathlib/Order/Interval/Finset/Defs.lean Modified Mathlib/Order/Partition/Finpartition.lean Modified Mathlib/Order/SuccPred/Archimedean.lean Modified Mathlib/Order/SuccPred/Basic.lean Modified Mathlib/Order/TransfiniteIteration.lean Modified Mathlib/Probability/ProductMeasure.lean Modified Mathlib/RingTheory/KrullDimension/NonZeroDivisors.lean Modified Mathlib/RingTheory/LocalRing/MaximalIdeal/Defs.lean Modified Mathlib/RingTheory/MvPolynomial/MonomialOrder.lean Modified Mathlib/RingTheory/MvPolynomial/WeightedHomogeneous.lean Modified Mathlib/RingTheory/MvPowerSeries/Order.lean Modified Mathlib/RingTheory/OrderOfVanishing.lean Modified Mathlib/RingTheory/Polynomial/Eisenstein/Criterion.lean Modified Mathlib/RingTheory/Regular/IsSMulRegular.lean Modified Mathlib/SetTheory/Ordinal/Basic.lean Modified Mathlib/Topology/Algebra/Nonarchimedean/Bases.lean Modified Mathlib/Topology/Algebra/Valued/ValuationTopology.lean Modified Mathlib/Topology/Baire/BaireMeasurable.lean Modified Mathlib/Topology/Connected/LocallyConnected.lean Modified Mathlib/Topology/ContinuousMap/StoneWeierstrass.lean Modified Mathlib/Topology/Sets/Compacts.lean 2025-09-30 10:01:45 9e233b1 feat(AlgebraicTopology/SimplexCategory/Augmented): monoidal structure on `AugmentedSimplexCategory` (#25743) We construct a monoidal category structure on `AugmentedSimplexCategory`. The tensor products corresponds to ordinal sum. We characterize morphisms out of a tensor product of object in terms of their precomposition with canonical maps `x ⟶ x ⊗ y` and `y ⟶ x ⊗ y` coming from the fact that the unit is an initial object. When constructing this structure, we found that making `AugmentedSimplexCategory` an abbrev rather than a `def` worked better. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/AlgebraicTopology/SimplexCategory/Augmented.lean - def AugmentedSimplexCategory.equivAugmentedCosimplicialObject - def AugmentedSimplexCategory.equivAugmentedCosimplicialObjectFunctorCompDropIso - def AugmentedSimplexCategory.equivAugmentedCosimplicialObjectFunctorCompPointIso - def AugmentedSimplexCategory.equivAugmentedCosimplicialObjectFunctorCompToArrowIso - def AugmentedSimplexCategory.equivAugmentedSimplicialObject - def AugmentedSimplexCategory.equivAugmentedSimplicialObjectFunctorCompDropIso - def AugmentedSimplexCategory.equivAugmentedSimplicialObjectFunctorCompPointIso - def AugmentedSimplexCategory.equivAugmentedSimplicialObjectFunctorCompToArrowIso - def AugmentedSimplexCategory.inclusion - def AugmentedSimplexCategory Added Mathlib/AlgebraicTopology/SimplexCategory/Augmented/Basic.lean + def AugmentedSimplexCategory.equivAugmentedCosimplicialObject + def AugmentedSimplexCategory.equivAugmentedCosimplicialObjectFunctorCompDropIso + def AugmentedSimplexCategory.equivAugmentedCosimplicialObjectFunctorCompPointIso + def AugmentedSimplexCategory.equivAugmentedCosimplicialObjectFunctorCompToArrowIso + def AugmentedSimplexCategory.equivAugmentedSimplicialObject + def AugmentedSimplexCategory.equivAugmentedSimplicialObjectFunctorCompDropIso + def AugmentedSimplexCategory.equivAugmentedSimplicialObjectFunctorCompPointIso + def AugmentedSimplexCategory.equivAugmentedSimplicialObjectFunctorCompToArrowIso + def AugmentedSimplexCategory.inclusion Added Mathlib/AlgebraicTopology/SimplexCategory/Augmented/Monoidal.lean + def AugmentedSimplexCategory.associator + theorem AugmentedSimplexCategory.eqToHom_toOrderHom + theorem AugmentedSimplexCategory.id_star_whiskerRight + theorem AugmentedSimplexCategory.id_tensorHom + theorem AugmentedSimplexCategory.inl'_eval + def AugmentedSimplexCategory.inl + theorem AugmentedSimplexCategory.inl_comp_inl_comp_associator + theorem AugmentedSimplexCategory.inl_comp_tensorHom + theorem AugmentedSimplexCategory.inr'_eval + def AugmentedSimplexCategory.inr + theorem AugmentedSimplexCategory.inr_comp_associator + theorem AugmentedSimplexCategory.inr_comp_inl_comp_associator + theorem AugmentedSimplexCategory.inr_comp_tensorHom + def AugmentedSimplexCategory.leftUnitor + def AugmentedSimplexCategory.rightUnitor + def AugmentedSimplexCategory.tensorHom + def AugmentedSimplexCategory.tensorHomOf + theorem AugmentedSimplexCategory.tensorHom_comp_tensorHom + theorem AugmentedSimplexCategory.tensorHom_id + def AugmentedSimplexCategory.tensorObj + theorem AugmentedSimplexCategory.tensorObj_hom_ext + theorem AugmentedSimplexCategory.tensor_id + theorem AugmentedSimplexCategory.whiskerLeft_id_star Modified Mathlib/AlgebraicTopology/SimplexCategory/Basic.lean + theorem SimplexCategory.eqToHom_toOrderHom 2025-09-30 09:47:26 12016cb feat(RingTheory): (Mv)PowerSeries.(weighted)Order of neg (#29760) Also renamed the wrong `PowerSeries.order_add_of_order_eq` while I am at it. ESTIMATED CHANGES Modified Mathlib/RingTheory/MvPowerSeries/Order.lean + theorem MvPowerSeries.order_neg + theorem MvPowerSeries.weightedOrder_neg Modified Mathlib/RingTheory/PowerSeries/Order.lean - theorem PowerSeries.order_add_of_order_eq + theorem PowerSeries.order_add_of_order_ne + theorem PowerSeries.order_neg 2025-09-30 09:19:47 ca417ea feat(MeasureTheory/Measure): instance IsOrderedAddCommMonoid for Measures (#30064) ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Measure/MeasureSpace.lean Modified Mathlib/MeasureTheory/OuterMeasure/Operations.lean 2025-09-30 08:44:49 56610ac feat(NumberTheory/ModularForms): define modular forms for any subgroup of GL(2, R) (#26651) This PR generalizes (some of) the modular forms files to allow the level to be any subgroup of GL(2, R), not necessarily the image of a subgroup of SL(2, Z). Intended applications include defining Hecke operators. ESTIMATED CHANGES Modified Mathlib/NumberTheory/ModularForms/ArithmeticSubgroups.lean + theorem Subgroup.HasDetPlusMinusOne.abs_det Modified Mathlib/NumberTheory/ModularForms/Basic.lean + theorem CuspForm.IsGLPos.coe_smul + theorem CuspForm.IsGLPos.smul_apply +/- theorem CuspForm.coe_translate + theorem CuspFormClass.zero_at_infty + theorem CuspFormClass.zero_at_infty_slash + theorem ModularForm.IsGLPos.coe_smul + theorem ModularForm.IsGLPos.smul_apply +/- theorem ModularForm.coe_intCast +/- theorem ModularForm.coe_natCast +/- theorem ModularForm.coe_translate +/- def ModularForm.const +/- theorem ModularForm.const_apply + def ModularForm.constℝ + theorem ModularForm.constℝ_apply +/- theorem ModularForm.gradedMonoid_eq_of_cast +/- def ModularForm.mcast +/- def ModularForm.mul +/- theorem ModularForm.mul_coe +/- theorem ModularForm.one_coe_eq_one +/- theorem ModularForm.toSlashInvariantForm_intCast +/- theorem ModularForm.toSlashInvariantForm_natCast + theorem ModularFormClass.bdd_at_infty + theorem ModularFormClass.bdd_at_infty_slash Modified Mathlib/NumberTheory/ModularForms/EisensteinSeries/Basic.lean Modified Mathlib/NumberTheory/ModularForms/EisensteinSeries/Defs.lean Modified Mathlib/NumberTheory/ModularForms/Identities.lean Modified Mathlib/NumberTheory/ModularForms/LevelOne.lean Modified Mathlib/NumberTheory/ModularForms/Petersson.lean +/- theorem SlashInvariantFormClass.petersson_smul Modified Mathlib/NumberTheory/ModularForms/QExpansion.lean +/- theorem CuspFormClass.zero_at_infty_comp_ofComplex +/- theorem ModularFormClass.bounded_at_infty_comp_ofComplex +/- theorem ModularFormClass.differentiableAt_comp_ofComplex Modified Mathlib/NumberTheory/ModularForms/SlashInvariantForms.lean +/- theorem SlashInvariantForm.coe_intCast +/- theorem SlashInvariantForm.coe_mul +/- theorem SlashInvariantForm.coe_natCast + theorem SlashInvariantForm.coe_smulℝ +/- theorem SlashInvariantForm.coe_translate - theorem SlashInvariantForm.coe_translateGL +/- def SlashInvariantForm.const + def SlashInvariantForm.constℝ +/- def SlashInvariantForm.mul +/- theorem SlashInvariantForm.one_coe_eq_one +/- theorem SlashInvariantForm.slash_action_eqn'' +/- theorem SlashInvariantForm.slash_action_eqn' + theorem SlashInvariantForm.slash_action_eqn_SL'' + theorem SlashInvariantForm.smul_applyℝ 2025-09-30 01:09:59 ccbcff4 feat(Algebra): inherit cancellation to subobjects (#27992) This PR: 1. adds `Is{Left,Right}Cancel{Add,Mul,MulZero}` instances for `{Add,Mul,MulZero}MemClass` etc. 2. removes the duplicated instances for `Submonoid` and `Submodule` which are introduced in #27955 (benchmark results show there isn't large difference with duplicated instances). Thanks @Vierkantor's help in benchmarks. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Group/Submonoid/Defs.lean Modified Mathlib/Algebra/Group/Subsemigroup/Defs.lean Added Mathlib/Algebra/GroupWithZero/Submonoid/CancelMulZero.lean Modified Mathlib/Algebra/Module/Submodule/Defs.lean 2025-09-29 20:43:28 a43dd5b feat(SchwartzSpace): integration by parts in 1d (#29846) ESTIMATED CHANGES Modified Mathlib/Analysis/Distribution/SchwartzSpace.lean + theorem SchwartzMap.hasDerivAt + theorem SchwartzMap.hasFDerivAt + theorem SchwartzMap.hasTemperateGrowth + theorem SchwartzMap.integral_bilinear_deriv_right_eq_neg_left + theorem SchwartzMap.integral_clm_comp_deriv_right_eq_neg_left + theorem SchwartzMap.integral_mul_deriv_eq_neg_deriv_mul Modified Mathlib/MeasureTheory/Function/Holder.lean + theorem ContinuousLinearMap.memLp_of_bilin 2025-09-29 20:30:31 3fc80ba chore: update Mathlib dependencies 2025-09-29 (#30075) This PR updates the Mathlib dependencies. ESTIMATED CHANGES Modified lake-manifest.json 2025-09-29 20:16:53 ca9beb5 feat: add Stirling-style global bounds on factorial (#29801) ESTIMATED CHANGES Modified Mathlib/Analysis/SpecialFunctions/Stirling.lean + theorem Stirling.le_factorial_stirling + theorem Stirling.le_log_factorial_stirling + theorem Stirling.sqrt_pi_le_stirlingSeq 2025-09-29 19:11:09 426708f feat(GroupTheory): `powers_le_zpowers` (#29991) In a later file because of no earlier import. Allows for a restatement of `orderOf_eq_card_of_forall_mem_zpowers` as `orderOf_eq_card_of_forall_mem_powers` Add a simp tag for an "obvious" lemma at the same time On the way to characterization of the torsion subgroup as the sup over all subgroups of roots of unity ESTIMATED CHANGES Modified Mathlib/GroupTheory/Index.lean + theorem Subgroup.toSubmonoid_zpowers + theorem Submonoid.powers_le_zpowers Modified Mathlib/GroupTheory/OrderOfElement.lean Modified Mathlib/GroupTheory/SpecificGroups/Cyclic.lean + theorem orderOf_eq_card_of_forall_mem_powers 2025-09-29 18:09:11 e8c4385 feat(SkewMonoidAlgebra): algebra instance (#29310) Algebra instance for skew monoid algebras. ESTIMATED CHANGES Modified Mathlib/Algebra/SkewMonoidAlgebra/Basic.lean + theorem SkewMonoidAlgebra.algHom_ext' + theorem SkewMonoidAlgebra.algHom_ext + theorem SkewMonoidAlgebra.coe_algebraMap + theorem SkewMonoidAlgebra.single_algebraMap_eq_algebraMap_mul_of + theorem SkewMonoidAlgebra.single_eq_algebraMap_mul_of 2025-09-29 17:34:09 40e294d feat: define (now covariant) CategoryTheory.Pseudofunctor.Grothendieck (#29681) Following off PR #27320, define the covariant version of the Grothendieck construction on a pseudofunctor. - [x] depends on: #27320 ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Bicategory/Grothendieck.lean + structure CategoryTheory.Pseudofunctor.Grothendieck.Hom + structure CategoryTheory.Pseudofunctor.Grothendieck 2025-09-29 16:33:08 d266937 feat(RingTheory/ValuativeRel/Trivial): the trivial valuative relation (#27313) lemmas stated using `[Valuation.Compatible (1 : Valuation R Γ₀)]` ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/GroupWithZero/Hom.lean + theorem MonoidWithZeroHom.one_apply_eq_one_iff Modified Mathlib/RingTheory/Valuation/Basic.lean + theorem Valuation.one_apply_eq_one_iff Modified Mathlib/RingTheory/Valuation/ValuativeRel/Basic.lean + theorem ValuativeRel.exists_valuation_posSubmonoid_div_valuation_posSubmonoid_eq + theorem ValuativeRel.one_apply_posSubmonoid Added Mathlib/RingTheory/Valuation/ValuativeRel/Trivial.lean + theorem ValuativeRel.eq_trivialRel_of_compatible_one + theorem ValuativeRel.isDiscrete_trivialRel + theorem ValuativeRel.not_isNontrivial_of_trivialRel + theorem ValuativeRel.subsingleton_units_valueGroupWithZero_of_trivialRel + def ValuativeRel.trivialRel + theorem ValuativeRel.trivialRel_eq_ofValuation_one 2025-09-29 16:14:52 ee6d62f feat(RingTheory/Valuation): generalize CommGroupWithZero on mrange to MonoidWithZeroHom (#28329) Before, they were only for Valuation, but that is too restricted ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/GroupWithZero/Range.lean +/- theorem MonoidWithZeroHom.mrange_nontrivial +/- theorem MonoidWithZeroHom.range_nontrivial Added Mathlib/Algebra/GroupWithZero/Submonoid/Instances.lean + theorem MonoidWithZeroHom.val_mrange_zero Modified Mathlib/RingTheory/Valuation/Archimedean.lean Modified Mathlib/RingTheory/Valuation/Basic.lean +/- theorem Valuation.val_mrange_zero 2025-09-29 15:37:36 2955a4d feat(PowerBasis): various ways to create power bases (#29674) Add the two following results: - If `x` generates `S` over `R` and is integral over `R`, then it defines a power basis over `R` (also version over a field), - Construct a power basis from a basis consisting of powers of an element. ESTIMATED CHANGES Modified Mathlib/FieldTheory/Minpoly/IsIntegrallyClosed.lean + theorem PowerBasis.ofAdjoinEqTop'_dim + theorem PowerBasis.ofAdjoinEqTop'_gen - theorem PowerBasis.ofGenMemAdjoin'_dim - theorem PowerBasis.ofGenMemAdjoin'_gen Modified Mathlib/NumberTheory/Cyclotomic/PrimitiveRoots.lean Modified Mathlib/NumberTheory/Cyclotomic/Rat.lean Modified Mathlib/RingTheory/Adjoin/PowerBasis.lean + theorem PowerBasis.ofAdjoinEqTop_dim + theorem PowerBasis.ofAdjoinEqTop_gen Modified Mathlib/RingTheory/PowerBasis.lean + def Module.Basis.PowerBasis + theorem Module.Basis.PowerBasis_gen 2025-09-29 15:37:34 b752d9a feat(RingTheory/ZMod): `HasEnoughRootsOfUnity (ZMod p) (p - 1)` (#29424) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/RingTheory/ZMod/Torsion.lean + theorem ZMod.rootsOfUnity_eq_top 2025-09-29 15:37:32 f684816 feat(CategoryTheory/Limits/Shapes/Pullback/Categorical): 2-functoriality of `CatCommSqOver` (#26679) This PR uses the notion of categorical cospan transforms from #26412 and its bicategory-like notations from #26447 to provide API for 2-functoriality of the construction `CatCommSqOver F G X`. We show that `ψ : CatCospanTransform F G F' G'` defines a functor `CatCommSqOver F G X ⥤ CatCommSqOver F' G' X`, and that a functor `U : X ⥤ Y` induces a functor `CatCommSqOver F G Y ⥤ CatCommSqOver F G X` via precomposition. We give the battery of lemma that shows that these constructions are components of a `Cat`-valued "bipseudofunctor", although we cannot state it this way to keep things unbundled and universe polymorphic. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Limits/Shapes/Pullback/Categorical/Basic.lean + def CategoryTheory.Limits.CategoricalPullback.CatCommSqOver.precompose + def CategoryTheory.Limits.CategoricalPullback.CatCommSqOver.precomposeObjComp + def CategoryTheory.Limits.CategoricalPullback.CatCommSqOver.precomposeObjId + theorem CategoryTheory.Limits.CategoricalPullback.CatCommSqOver.precomposeObjTransformObjSquare_iso_hom_comp + theorem CategoryTheory.Limits.CategoricalPullback.CatCommSqOver.precomposeObjTransformObjSquare_iso_hom_id + theorem CategoryTheory.Limits.CategoricalPullback.CatCommSqOver.precomposeObjTransformObjSquare_iso_hom_naturality₂ + theorem CategoryTheory.Limits.CategoricalPullback.CatCommSqOver.precompose_map_associator + theorem CategoryTheory.Limits.CategoricalPullback.CatCommSqOver.precompose_map_leftUnitor + theorem CategoryTheory.Limits.CategoricalPullback.CatCommSqOver.precompose_map_rightUnitor + theorem CategoryTheory.Limits.CategoricalPullback.CatCommSqOver.precompose_map_whiskerLeft + theorem CategoryTheory.Limits.CategoricalPullback.CatCommSqOver.precompose_map_whiskerRight + def CategoryTheory.Limits.CategoricalPullback.CatCommSqOver.transform + def CategoryTheory.Limits.CategoricalPullback.CatCommSqOver.transformObjComp + def CategoryTheory.Limits.CategoricalPullback.CatCommSqOver.transformObjId + theorem CategoryTheory.Limits.CategoricalPullback.CatCommSqOver.transformObjPrecomposeObjSquare_iso_hom_id + theorem CategoryTheory.Limits.CategoricalPullback.CatCommSqOver.transformObjPrecomposeObjSquare_iso_hom_naturality₂ + theorem CategoryTheory.Limits.CategoricalPullback.CatCommSqOver.transformPrecomposeObjSquare_iso_hom_comp + theorem CategoryTheory.Limits.CategoricalPullback.CatCommSqOver.transform_map_associator + theorem CategoryTheory.Limits.CategoricalPullback.CatCommSqOver.transform_map_leftUnitor + theorem CategoryTheory.Limits.CategoricalPullback.CatCommSqOver.transform_map_rightUnitor + theorem CategoryTheory.Limits.CategoricalPullback.CatCommSqOver.transform_map_whiskerLeft + theorem CategoryTheory.Limits.CategoricalPullback.CatCommSqOver.transform_map_whiskerRight 2025-09-29 15:10:23 10d128b feat(NumberField/IsCM): compute the index of the subgroup of real units (#26108) This PR continues the work from #23694. We prove that the index of the subgroup of the units of a CM-field generated by the real units and the roots of unity is `1` or `2` and give an equivalent condition for it to be equal to `2`. ESTIMATED CHANGES Modified Mathlib/NumberTheory/NumberField/Basic.lean +/- def NumberField.RingOfIntegers.mapRingEquiv + theorem NumberField.RingOfIntegers.mapRingEquiv_apply + theorem NumberField.RingOfIntegers.mapRingEquiv_symm_apply +/- def NumberField.RingOfIntegers.mapRingHom + theorem NumberField.RingOfIntegers.mapRingHom_apply Modified Mathlib/NumberTheory/NumberField/CMField.lean + theorem NumberField.IsCMField.coe_ringOfIntegersComplexConj + theorem NumberField.IsCMField.complexConj_torsion + theorem NumberField.IsCMField.indexRealUnits_eq_one_or_two + theorem NumberField.IsCMField.indexRealUnits_eq_two_iff + theorem NumberField.IsCMField.indexRealUnits_mul_eq + theorem NumberField.IsCMField.index_unitsMulComplexConjInv_range_dvd + theorem NumberField.IsCMField.infinitePlace_complexConj + theorem NumberField.IsCMField.map_unitsMulComplexConjInv_torsion + theorem NumberField.IsCMField.ringOfIntegersComplexConj_eq_self_iff + theorem NumberField.IsCMField.unitsMulComplexConjInv_apply + theorem NumberField.IsCMField.unitsMulComplexConjInv_apply_torsion + theorem NumberField.IsCMField.unitsMulComplexConjInv_ker Modified Mathlib/NumberTheory/NumberField/Units/Basic.lean +/- theorem NumberField.Units.even_torsionOrder +/- theorem NumberField.Units.map_complexEmbedding_torsion +/- theorem NumberField.Units.mem_torsion +/- theorem NumberField.Units.rootsOfUnity_eq_one +/- theorem NumberField.Units.rootsOfUnity_eq_torsion +/- theorem NumberField.Units.torsionOrder_eq_two_of_odd_finrank +/- theorem NumberField.Units.torsionOrder_ne_zero +/- theorem NumberField.Units.torsionOrder_pos +/- theorem NumberField.Units.torsion_eq_one_or_neg_one_of_odd_finrank 2025-09-29 13:29:04 b657854 chore: update Mathlib dependencies 2025-09-29 (#30067) This PR updates the Mathlib dependencies. ESTIMATED CHANGES Modified lake-manifest.json 2025-09-29 12:57:52 2788527 feat(CategoryTheory/MorphismProperty/Representable): add relative representability of diagonal map (#29122) Adds a criterion for the diagonal morphism `X ⟶ X × X` to be relatively representable with respect to a functor `F : C ⥤ D` under mild assumptions. `CategoryTheory.Functor.relativelyRepresentable.diag_iff` proves that when: - `C` has pullbacks and binary products - `D` has pullbacks, binary products and a terminal object - `F : C ⥤ D` is full and preserves pullbacks and binary products the diagonal morphism `X ⟶ X × X` is relatively representable if and only if every morphism of the form `F.obj a ⟶ X` is relatively representable. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/MorphismProperty/Representable.lean + theorem CategoryTheory.Functor.relativelyRepresentable.diag_iff + theorem CategoryTheory.Functor.relativelyRepresentable.diag_of_map_from_obj + theorem CategoryTheory.Functor.relativelyRepresentable.of_diag + theorem CategoryTheory.Functor.relativelyRepresentable.toPullbackTerminal 2025-09-29 11:36:44 f5617af feat(RingTheory): `IsPrecomplete I R` iff `CompleteSpace R` (#30058) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/RingTheory/AdicCompletion/Topology.lean Modified Mathlib/Topology/Algebra/Nonarchimedean/AdicTopology.lean + theorem IsAdic.hasBasis_nhds + theorem IsAdic.hasBasis_nhds_zero 2025-09-29 11:36:41 b62f227 feat(Algebra/Polynomial/Degree/Support): add missing `as_sum_range_C_mul_X_pow'` (#30046) This PR adds the missing lemma `as_sum_range_C_mul_X_pow'` which is analogous to `as_sum_range'`. I also changed the argument `n` to be implicit in `as_sum_range'`, because it can be inferred. ESTIMATED CHANGES Modified Mathlib/Algebra/Polynomial/Degree/Support.lean +/- theorem Polynomial.as_sum_range' + theorem Polynomial.as_sum_range_C_mul_X_pow' 2025-09-29 10:30:09 4d40d78 feat(push_neg): `push_neg` for type size classes (#30051) This PR adds `push_neg` attributes for the size classes - IsEmpty/Nonempty - Subsingleton/Nontrivial - Finite/Infinite - Countable/Uncoutable ESTIMATED CHANGES Modified Mathlib/Algebra/Category/Grp/Adjunctions.lean Modified Mathlib/Algebra/CharP/MixedCharZero.lean Modified Mathlib/Algebra/Lie/Submodule.lean Modified Mathlib/Algebra/Lie/Weights/Linear.lean Modified Mathlib/AlgebraicGeometry/AffineTransitionLimit.lean Modified Mathlib/AlgebraicGeometry/PullbackCarrier.lean Modified Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Order.lean Modified Mathlib/Analysis/Calculus/FDeriv/Norm.lean Modified Mathlib/Combinatorics/SimpleGraph/Clique.lean Modified Mathlib/Combinatorics/SimpleGraph/Connectivity/Connected.lean Modified Mathlib/Combinatorics/SimpleGraph/Diam.lean Modified Mathlib/Combinatorics/SimpleGraph/Extremal/Basic.lean Modified Mathlib/Combinatorics/SimpleGraph/Extremal/Turan.lean Modified Mathlib/Combinatorics/SimpleGraph/Finite.lean Modified Mathlib/Data/Countable/Basic.lean Modified Mathlib/Data/Countable/Defs.lean Modified Mathlib/Data/Finite/Defs.lean Modified Mathlib/Data/Fintype/Pigeonhole.lean Modified Mathlib/Data/Fintype/Prod.lean Modified Mathlib/Data/Fintype/Sum.lean Modified Mathlib/Data/Real/Embedding.lean Modified Mathlib/Data/Set/Subsingleton.lean Modified Mathlib/FieldTheory/Galois/IsGaloisGroup.lean Modified Mathlib/Geometry/Manifold/ChartedSpace.lean Modified Mathlib/GroupTheory/SpecificGroups/Cyclic.lean Modified Mathlib/LinearAlgebra/Basis/Defs.lean Modified Mathlib/LinearAlgebra/Dimension/Localization.lean Modified Mathlib/LinearAlgebra/InvariantBasisNumber.lean Modified Mathlib/LinearAlgebra/Projectivization/Cardinality.lean Modified Mathlib/Logic/IsEmpty.lean Modified Mathlib/Logic/Nontrivial/Defs.lean Modified Mathlib/MeasureTheory/Measure/LevyProkhorovMetric.lean Modified Mathlib/Order/Birkhoff.lean Modified Mathlib/Order/Interval/Set/Basic.lean Modified Mathlib/RepresentationTheory/Submodule.lean Modified Mathlib/RingTheory/Algebraic/Basic.lean Modified Mathlib/RingTheory/AlgebraicIndependent/Basic.lean Modified Mathlib/RingTheory/AlgebraicIndependent/TranscendenceBasis.lean Modified Mathlib/RingTheory/DividedPowers/SubDPIdeal.lean Modified Mathlib/RingTheory/Flat/FaithfullyFlat/Basic.lean Modified Mathlib/RingTheory/Frobenius.lean Modified Mathlib/RingTheory/Ideal/Int.lean Modified Mathlib/RingTheory/Regular/Depth.lean Modified Mathlib/RingTheory/Spectrum/Maximal/Localization.lean Modified Mathlib/RingTheory/Spectrum/Prime/FreeLocus.lean Modified Mathlib/RingTheory/Unramified/Basic.lean Modified Mathlib/RingTheory/Valuation/Discrete/Basic.lean Modified Mathlib/RingTheory/Valuation/DiscreteValuativeRel.lean Modified Mathlib/Topology/CWComplex/Classical/Finite.lean Modified Mathlib/Topology/Category/Profinite/CofilteredLimit.lean Modified Mathlib/Topology/MetricSpace/Infsep.lean Modified Mathlib/Topology/Separation/Connected.lean 2025-09-29 10:30:06 1cde841 feat: Equiv.with{Top,Bot}Congr (#29968) Extracted from #27918 ESTIMATED CHANGES Modified Mathlib/Order/Hom/WithTopBot.lean Modified Mathlib/Order/Interval/Basic.lean Modified Mathlib/Order/WithBot.lean + def Equiv.withBotCongr + theorem Equiv.withBotCongr_refl + theorem Equiv.withBotCongr_symm + theorem Equiv.withBotCongr_trans + def Equiv.withTopCongr + theorem Equiv.withTopCongr_refl + theorem Equiv.withTopCongr_symm + theorem Equiv.withTopCongr_trans Modified Mathlib/Topology/Compactification/OnePoint/Basic.lean 2025-09-29 09:44:21 524bdd0 chore(Data/List/Sigma): remove redundant hypothesis from `List.perm_dlookup` (#30060) `perm_nodupKeys` can be used to eliminate a hypothesis from `perm_dlookup` ESTIMATED CHANGES Modified Mathlib/Data/List/AList.lean Modified Mathlib/Data/List/Sigma.lean +/- theorem List.perm_dlookup +/- theorem List.perm_lookupAll 2025-09-29 09:44:18 a90d374 fix: attributes to_app and reassoc (#29679) In `../Pseudofunctor`, the parallel attributes `@[reassoc, to_app]` fail to generate the useful lemmas `..._app_assoc`. These have been replaced with the attribute `@[to_app (attr:=reassoc)]` In `../NaturalTransformation/Pseudo`, there was no `@[reassoc, to_app]` on `naturality_comp_inv`, but there was for `naturality_comp_hom`, so I added it. Related zulip posts: [#mathlib4 > reassoc and simp](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/reassoc.20and.20simp/with/449403172) By the way, for `../NaturalTransformation/Pseudo`, - I'm also not sure whether ```lean4 @[reassoc (attr := simp), to_app] theorem whiskerLeft_naturality_naturality (f : a' ⟶ G.obj a) {g h : a ⟶ b} (β : g ⟶ h) : f ◁ G.map₂ β ▷ θ.app b ≫ f ◁ (θ.naturality h).hom = f ◁ (θ.naturality g).hom ≫ f ◁ θ.app a ◁ H.map₂ β := θ.toOplax.whiskerLeft_naturality_naturality _ _ ``` really is the behaviour that we want. I am not changing it because I am unsure. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Bicategory/Functor/Pseudofunctor.lean Modified Mathlib/CategoryTheory/Bicategory/NaturalTransformation/Pseudo.lean 2025-09-29 08:46:24 a9af4dc feat(Algebra/Group/Hom/Defs): MonoidHom switching from MulOneClass to MulOne (#28702) Currently `MonoidHom` relies on a `MulOneClass`, stating that 1 is a multiplicative identity; when actually all a "monoid" hom does is preserve multiplication and one. So, really, a MonoidHom is a "mul-and-one hom", but one cannot use it with any type that isn't a MulOneClass. (It also does not enforce being a Monoid: associativity is not required.) In general, homs like this should only rely on the data being present in the source and destination type; any applications of it are then free to assume MulOneClass or Monoid where appropriate, which is essentially already how it does. This drops the MulOneClass assumption so that MonoidHom just takes the Mul and One types. _But_ if we wrote `MonoidHom [Mul M] [One M]`, this would essentially double the effort needed for typeclass inference. An experiment in #28889 confirmed this performance hit. So, we define a `MulOne` type which is just the `Mul` and `One` data bundled together, and the performance change becomes pretty minimal. And then there are the corresponding changes to `AddMonoidHom` / `AddZeroClass` becoming `AddZero`. This follows some discussion at [#mathlib4 > RingHom for not-a-ring](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/RingHom.20for.20not-a-ring) ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Defs.lean Modified Mathlib/Algebra/Group/Ext.lean Modified Mathlib/Algebra/Group/Hom/Defs.lean +/- structure AddMonoidHom +/- theorem MonoidHom.cancel_left +/- theorem MonoidHom.cancel_right +/- theorem MonoidHom.coe_comp +/- theorem MonoidHom.coe_copy +/- theorem MonoidHom.coe_id +/- theorem MonoidHom.coe_mk +/- def MonoidHom.comp +/- theorem MonoidHom.comp_apply +/- theorem MonoidHom.comp_assoc +/- theorem MonoidHom.comp_id +/- theorem MonoidHom.comp_one +/- theorem MonoidHom.copy_eq +/- theorem MonoidHom.ext +/- def MonoidHom.id +/- theorem MonoidHom.id_comp +/- theorem MonoidHom.mk_coe +/- theorem MonoidHom.one_apply +/- theorem MonoidHom.one_comp +/- theorem MonoidHom.toFun_eq_coe +/- theorem MonoidHom.toMulHom_coe +/- theorem MonoidHom.toMulHom_injective +/- theorem MonoidHom.toOneHom_coe +/- theorem MonoidHom.toOneHom_injective +/- structure MonoidHom Modified Mathlib/Algebra/Ring/Ext.lean Modified Mathlib/AlgebraicGeometry/EllipticCurve/Affine/Point.lean Modified Mathlib/LinearAlgebra/LinearPMap.lean Modified Mathlib/RingTheory/Kaehler/JacobiZariski.lean 2025-09-29 07:22:51 e513b0a feat(Algebra/GCDMonoid): simp form of `Associates.out x = 0` (#29989) ESTIMATED CHANGES Modified Mathlib/Algebra/GCDMonoid/Basic.lean + theorem Associates.out_eq_zero_iff + theorem Associates.out_zero 2025-09-29 07:22:49 869a722 refactor: `LinearMap.toMatrix_toSpanSingleton` (#29880) [`LinearMap.toMatrix_toSpanSingleton`](https://leanprover-community.github.io/mathlib4_docs/Mathlib/LinearAlgebra/Matrix/ToLin.html#LinearMap.toMatrix_toSpanSingleton) has wrong arguments order; `v₂` comes before `v₁`, and the basis `v₁` has wrong index. ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/Matrix/ToLin.lean +/- theorem LinearMap.toMatrix_toSpanSingleton 2025-09-29 07:22:47 3fb157f feat: `one_sub_one_div_cast_*` theorems (#28445) ESTIMATED CHANGES Modified Mathlib/Data/Nat/Cast/Order/Field.lean + theorem Nat.one_sub_one_div_cast_le_one + theorem Nat.one_sub_one_div_cast_nonneg 2025-09-29 07:08:50 c9d27f7 feat: separating a convex compact set and its neighborhood with a polytope (#28195) ESTIMATED CHANGES Modified Mathlib/Analysis/Normed/Affine/Convex.lean + theorem Convex.exists_subset_interior_convexHull_finset_of_isCompact 2025-09-29 06:38:09 2dbcb96 feat(Analysis): add three little theorems relating argument to image (#28352) These relate argument to image under a continuous function, given a Prop that eventually holds on a product of filters in domain and codomain. In fact the second pair of statements concern a segment whose end-points are the image. They should prove useful in PRs 26300 and 26985. ESTIMATED CHANGES Modified Mathlib/Analysis/Normed/Module/Convex.lean + theorem Filter.Eventually.segment_of_prod_nhds + theorem Filter.Eventually.segment_of_prod_nhdsWithin Modified Mathlib/Order/Filter/Prod.lean + theorem Filter.Eventually.image_of_prod 2025-09-29 05:27:41 5cde0dd feat: representation of log⁺ as a circle average (#29725) If `a` is any complex number, show that the circle average of `log ‖· - a‖` over the unit circle equals the positive part of the logarithm, `log⁺ ‖a‖`. This material is used in [Project VD](https://github.com/kebekus/ProjectVD), which aims to formalize Value Distribution Theory for meromorphic functions on the complex plane. The formula established here is a key ingredient in Jensen's formula of complex analysis. ESTIMATED CHANGES Modified Mathlib/Analysis/SpecialFunctions/Integrals/PosLogEqCircleAverage.lean + theorem circleAverage_log_norm_add_const_eq_posLog + theorem circleAverage_log_norm_sub_const_eq_log_radius_add_posLog + theorem circleAverage_log_norm_sub_const_eq_posLog + theorem circleAverage_log_norm_sub_const_of_mem_closedBall + theorem circleAverage_log_norm_sub_const₀ + theorem circleAverage_log_norm_sub_const₂ +/- theorem circleIntegrable_log_norm_sub_const 2025-09-29 04:37:38 75f8fee feat(CategoryTheory/Limits/Cones): add Co(co)neMorphism.map_w (#29962) This PR introduces `ConeMorphism.map_w` and `CoconeMorphism.map_w`, which assert that functors preserve the commutativity of (co)cone morphisms. Thanks to @chrisflav for the review and suggestions on the earlier version of this PR. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Limits/Cones.lean + theorem CategoryTheory.Limits.CoconeMorphism.map_w + theorem CategoryTheory.Limits.ConeMorphism.map_w 2025-09-29 04:25:02 7d605a8 chore(CategoryTheory/ObjectProperty): tag `ObjectProperty.Small` with pp_with_univ (#30054) The declaration `CategoryTheory.ObjectProperty.Small` introduced in #29843 depends on an extra universe level `w`, so should be tagged `pp_with_univ` to avoid confusion. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/ObjectProperty/Small.lean 2025-09-28 21:43:29 a1957e2 chore: deprecate using non-deprecated names (#30057) Found by the automated removal of deprecations in #30052, specifically [this commit](https://github.com/leanprover-community/mathlib4/commit/5a7cf542b397052d2f07152c4c2c0685d681e671). ESTIMATED CHANGES Modified Mathlib/Analysis/LocallyConvex/Basic.lean Modified Mathlib/CategoryTheory/Monoidal/Cartesian/Mon_.lean Modified Mathlib/Data/Set/Pairwise/Basic.lean 2025-09-28 20:38:02 b500347 chore: fix non-terminal simps followed by `fun_prop` (#30048) In most cases, these can be `dsimp; fun_prop` instead (which shows more clearly what is going on). In two cases where `simp` was actually necessary, squeeze it. Extracted from #28962, but hopefully also makes sense on its own. ESTIMATED CHANGES Modified Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Unique.lean Modified Mathlib/MeasureTheory/Function/StronglyMeasurable/Basic.lean Modified Mathlib/MeasureTheory/Group/Arithmetic.lean Modified Mathlib/MeasureTheory/Measure/WithDensity.lean Modified Mathlib/Topology/Homeomorph/Lemmas.lean 2025-09-28 20:38:01 b8f1ced feat(Combinatorics/SimpleGraph/Paths): add lemma `SimpleGraph.Walk.IsPath.mem_support_iff_exists_append` (#27461) This contribution was created as part of the Utrecht Summerschool "Formalizing Mathematics in Lean" in July 2025. ESTIMATED CHANGES Modified Mathlib/Combinatorics/SimpleGraph/Paths.lean +/- theorem SimpleGraph.Walk.IsPath.disjoint_support_of_append + theorem SimpleGraph.Walk.IsPath.mem_support_iff_exists_append +/- theorem SimpleGraph.Walk.IsPath.ne_of_mem_support_of_append 2025-09-28 20:25:34 df8d6a9 feat: links between characteristic function and independence (#26269) Prove several results of the form: random variables are independent if and only if their joint characteristic function is equal to the product of the characteristic functions. More specifically, prove this in Hilbert spaces for two variables and a finite family of variables. Same in Banach spaces, with an arbitrary Lp norm. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Probability/Independence/CharacteristicFunction.lean + theorem ProbabilityTheory.iIndepFun_iff_charFunDual_pi' + theorem ProbabilityTheory.iIndepFun_iff_charFunDual_pi + theorem ProbabilityTheory.iIndepFun_iff_charFun_pi + theorem ProbabilityTheory.indepFun_iff_charFunDual_prod' + theorem ProbabilityTheory.indepFun_iff_charFunDual_prod + theorem ProbabilityTheory.indepFun_iff_charFun_prod 2025-09-28 19:43:12 9aeba39 feat(Dynamics/Flow): define semiconjugacy, factor and orbit (#28000) We add definitions relating to flows. This contribution was created as part of the Utrecht Summerschool "Formalizing Mathematics in Lean" in July 2025. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Galois/Examples.lean Modified Mathlib/Data/ZMod/QuotientGroup.lean Modified Mathlib/Dynamics/Flow.lean + theorem Flow.IsFactorOf.self + theorem Flow.IsFactorOf.trans + def Flow.IsFactorOf + theorem Flow.IsSemiconjugacy.comp + theorem Flow.IsSemiconjugacy.isFactorOf + structure Flow.IsSemiconjugacy + theorem Flow.coe_restrict_apply + def Flow.forwardOrbit + theorem Flow.forwardOrbit_eq_range_nonneg + theorem Flow.forwardOrbit_subset_orbit + theorem Flow.isForwardInvariant_forwardOrbit + theorem Flow.isInvariant_orbit + theorem Flow.isSemiconjugacy_id_iff_eq + theorem Flow.mem_orbit + theorem Flow.mem_orbit_iff + theorem Flow.mem_orbit_of_mem_forwardOrbit + theorem Flow.mem_orbit_of_mem_orbit + theorem Flow.mem_orbit_self + theorem Flow.nonempty_orbit + def Flow.orbit + theorem Flow.orbit_eq_range + theorem Flow.orbit_restrict + def Flow.restrictAddSubmonoid + theorem Flow.restrictAddSubmonoid_apply + def Flow.restrictNonneg + def Flow.toAddAction + theorem IsForwardInvariant.isInvariant + def IsForwardInvariant - theorem IsFwInvariant.isInvariant - def IsFwInvariant + theorem IsInvariant.isForwardInvariant - theorem IsInvariant.isFwInvariant + theorem isForwardInvariant_iff_isInvariant - theorem isFwInvariant_iff_isInvariant Modified Mathlib/Dynamics/Minimal.lean Modified Mathlib/GroupTheory/GroupAction/Basic.lean Modified Mathlib/GroupTheory/GroupAction/Blocks.lean Modified Mathlib/GroupTheory/GroupAction/Defs.lean + theorem MulAction.nonempty_orbit - theorem MulAction.orbit_nonempty 2025-09-28 19:27:28 f83741b feat(MeasureTheory): add Lebesgue differentiation theorem for intervals (#29503) Add the Lebesgue differentiation theorem for intervals. Part of originally planned #29092. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Analysis/Calculus/Deriv/Slope.lean + theorem hasDerivAt_iff_tendsto_slope_left_right Added Mathlib/MeasureTheory/Integral/IntervalIntegral/LebesgueDifferentiationThm.lean + theorem IntervalIntegrable.ae_hasDerivAt_integral + theorem LocallyIntegrable.ae_hasDerivAt_integral 2025-09-28 18:16:54 fc733ac feat: characteristic function on product space (#26264) The characteristic function of a measure is a product of characteristic functions if and only if the measure is a product measure. We prove this for Hilbert spaces and Banach spaces equipped with any Lp norm. ESTIMATED CHANGES Modified Mathlib/Analysis/Normed/Lp/ProdLp.lean Modified Mathlib/LinearAlgebra/Pi.lean + theorem LinearMap.sum_single_apply Modified Mathlib/MeasureTheory/Measure/CharacteristicFunction.lean + theorem MeasureTheory.charFunDual_eq_pi_iff' + theorem MeasureTheory.charFunDual_eq_pi_iff + theorem MeasureTheory.charFunDual_eq_prod_iff' + theorem MeasureTheory.charFunDual_eq_prod_iff + theorem MeasureTheory.charFunDual_pi' + theorem MeasureTheory.charFunDual_pi + theorem MeasureTheory.charFunDual_prod' + theorem MeasureTheory.charFun_eq_pi_iff + theorem MeasureTheory.charFun_eq_prod_iff + theorem MeasureTheory.charFun_pi + theorem MeasureTheory.charFun_prod Modified Mathlib/MeasureTheory/SpecificCodomains/WithLp.lean Modified Mathlib/Topology/Algebra/Module/LinearMapPiProd.lean + theorem ContinuousLinearMap.sum_comp_single 2025-09-28 17:04:30 f48b2e9 chore(Algebra/Order/Group): golf entire `max_sub_max_le_max` using `grind` (#29850) ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Group/MinMax.lean 2025-09-28 16:48:03 7a743c4 feat(CategoryTheory/Sites): some lemmas on separated presheaves (#30044) A handful of simple API lemmas on separated presheaves of types. Specifically: - for `J ≤ J'` every `J'`-separated presheaf is `J`-separated - subpresheaves of separated presheaves are separated - a presheaf is separated iff a presheaf isomorphic to it is - a separated presheaf for which all compatible families admit amalgamations is a sheaf. We also change the implicit binder in the definition of `Presieve.IsSeparated` to a strict-implicit one to enable better support for dot notation, and slightly simplify the proof of `Subpresheaf.sheafify_isSheaf` as an application. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Sites/IsSheafFor.lean + theorem CategoryTheory.Presieve.isSeparatedFor_iso Modified Mathlib/CategoryTheory/Sites/SheafOfTypes.lean + theorem CategoryTheory.Presieve.IsSeparated.isSheaf + theorem CategoryTheory.Presieve.isSeparated_iso + theorem CategoryTheory.Presieve.isSeparated_of_le Modified Mathlib/CategoryTheory/Sites/Subsheaf.lean + theorem CategoryTheory.Subpresheaf.isSeparated 2025-09-28 15:39:45 ac0e5e1 chore(LinearAlgebra/TensorProduct/Basic): semi-linearize `map` and `lift` (#27288) Semi-linearizing `TensorProduct.map`. This is important as we can then define `star` on tensors as: `star x := map (starLinearEquiv R) (starLinearEquiv R) x`. We can then also define the inner product on tensors. ESTIMATED CHANGES Modified Mathlib/Algebra/Category/ModuleCat/ChangeOfRings.lean Modified Mathlib/LinearAlgebra/TensorProduct/Basic.lean +/- theorem TensorProduct.ext' +/- theorem TensorProduct.lift.tmul' +/- theorem TensorProduct.lift.tmul +/- theorem TensorProduct.lift.unique +/- def TensorProduct.lift + theorem TensorProduct.liftAux.smulₛₗ +/- def TensorProduct.liftAux +/- theorem TensorProduct.liftAux_tmul +/- def TensorProduct.map +/- theorem TensorProduct.map_comp +/- theorem TensorProduct.map_map +/- theorem TensorProduct.map_tmul +/- theorem TensorProduct.range_map_mono Modified Mathlib/RingTheory/Coalgebra/Hom.lean 2025-09-28 14:05:02 49e5379 feat(CategoryTheory): colimits of objects satisfying a property (#29843) Given a property of object `P : ObjectProperty C` and a category `J`, we introduce two properties of objects `P.strictColimitsOfShape J` and `P.colimitsOfShape J`. The former contains exactly the objects of the form `colimit F` for any functor `F : J ⥤ C` that has a colimit and such that `F.obj j` satisfies `P` for any `j`, while the latter contains all the objects that are isomorphic to these "chosen" objects `colimit F`. - [x] depends on: #29849 ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/CategoryTheory/EssentiallySmall.lean Modified Mathlib/CategoryTheory/Limits/Presentation.lean Added Mathlib/CategoryTheory/ObjectProperty/ColimitsOfShape.lean + theorem CategoryTheory.ObjectProperty.ColimitOfShape.colimitsOfShape + def CategoryTheory.ObjectProperty.ColimitOfShape.ofIso + def CategoryTheory.ObjectProperty.ColimitOfShape.ofLE + structure CategoryTheory.ObjectProperty.ColimitOfShape + def CategoryTheory.ObjectProperty.colimitsOfShape + theorem CategoryTheory.ObjectProperty.colimitsOfShape_isoClosure + theorem CategoryTheory.ObjectProperty.colimitsOfShape_monotone + theorem CategoryTheory.ObjectProperty.isoClosure_strictColimitsOfShape + inductive CategoryTheory.ObjectProperty.strictColimitsOfShape + theorem CategoryTheory.ObjectProperty.strictColimitsOfShape_le_colimitsOfShape + theorem CategoryTheory.ObjectProperty.strictColimitsOfShape_monotone Added Mathlib/CategoryTheory/ObjectProperty/Small.lean + theorem CategoryTheory.ObjectProperty.Small.of_le 2025-09-28 13:29:18 652dbc7 feat(Combinatorics/SimpleGraph): add theorem `SimpleGraph.Connected.diff_dist_adj` (#27468) This contribution was created as part of the Utrecht Summerschool "Formalizing Mathematics in Lean" in July 2025. ESTIMATED CHANGES Modified Mathlib/Combinatorics/SimpleGraph/Metric.lean + theorem SimpleGraph.Connected.diff_dist_adj 2025-09-28 12:35:46 03f9314 chore(Order/Defs): golf entire `le_min`, `max_le` and `min_eq_left` using `grind` (#29892) ESTIMATED CHANGES Modified Mathlib/Order/Defs/LinearOrder.lean 2025-09-28 12:07:02 1ff79c0 chore: add IsUniformGroup.of_compactSpace to replace topologicalGroup_is_uniform_of_compactSpace (#30027) Given a compact topological group, *any* uniformity makes it into a `IsUniformGroup`. Hence, we replace `topologicalGroup_is_uniform_of_compactSpace` with a new *instance* `IsUniformGroup.of_compactSpace`, which applies automatically where `topologicalGroup_is_uniform_of_compactSpace` was used. ESTIMATED CHANGES Modified Mathlib/Analysis/Complex/Circle.lean Modified Mathlib/Topology/Algebra/IsUniformGroup/Basic.lean Modified Mathlib/Topology/Algebra/IsUniformGroup/Defs.lean 2025-09-28 12:07:00 4eca3e8 feat(InfinitePlace/Embeddings): remove dependency of `IsMixed`/`IsUnmixed` on `Extension`. (#29945) - Remove the unnecessary dependency of `ComplexEmbedding.IsUnmixed` on the subtype `ComplexEmbedding.Extension`, which makes it easier to use as it does not require the construction of a term of `ComplexEmbedding.Extension`. This also aligns it more closely with [`InfinitePlace.IsUnramified`](https://github.com/leanprover-community/mathlib4/blob/f4506f7151c9057fd9f8714b2a1f13a647fe2352/Mathlib/NumberTheory/NumberField/InfinitePlace/Ramification.lean#L162-L165), of which it is intended to be an analogue. - Ditto for `ComplexEmbedding.IsMixed`. - The definition of `IsUnmixed` is now given in simp-normal form. ESTIMATED CHANGES Modified Mathlib/NumberTheory/NumberField/InfinitePlace/Embeddings.lean - theorem NumberField.ComplexEmbedding.Extension.IsUnmixed.isReal_iff_isReal + theorem NumberField.ComplexEmbedding.IsUnmixed.isReal_iff_isReal 2025-09-28 11:30:36 5903cc2 chore: move differentiability results about products to SpecificFunction (#30049) They are not used further in this file, and `SpecificFunctions` is specifically meant to contain their material. ESTIMATED CHANGES Modified Mathlib/Geometry/Manifold/MFDeriv/Basic.lean - theorem HasMFDerivAt.prodMk - theorem HasMFDerivWithinAt.prodMk - theorem MDifferentiable.prodMk - theorem MDifferentiable.prodMk_space - theorem MDifferentiableAt.prodMk - theorem MDifferentiableAt.prodMk_space - theorem MDifferentiableOn.prodMk - theorem MDifferentiableOn.prodMk_space - theorem MDifferentiableWithinAt.prodMk - theorem MDifferentiableWithinAt.prodMk_space Modified Mathlib/Geometry/Manifold/MFDeriv/NormedSpace.lean Modified Mathlib/Geometry/Manifold/MFDeriv/SpecificFunctions.lean + theorem HasMFDerivAt.prodMk + theorem HasMFDerivWithinAt.prodMk + theorem MDifferentiable.prodMk + theorem MDifferentiable.prodMk_space + theorem MDifferentiableAt.prodMk + theorem MDifferentiableAt.prodMk_space + theorem MDifferentiableOn.prodMk + theorem MDifferentiableOn.prodMk_space + theorem MDifferentiableWithinAt.prodMk + theorem MDifferentiableWithinAt.prodMk_space 2025-09-28 11:30:34 27fa797 feat: Tendsto.uniformity_mul_iff (#30025) Shows that if `g : ι → G × G` tends to the uniformity (e.g if `g` is diagonal-valued), then for any `f : ι → G × G` one has that `g` tends to the uniformity iff `f * g` does. We use this to give a shorter and (imho) more natural proof of [uniformity_eq_comap_nhds_one](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Topology/Algebra/IsUniformGroup/Defs.html#uniformity_eq_comap_nhds_one): one has to check that `f : ι → G × G` converges to the uniformity iff `fun i ↦ (1, (f i).2 / (f i).1)` does, which follows from the lemma using `g = fun i ↦ ((f i).1, (f i).1)`. I'm tempted to remove the now unused [mem_uniformity_of_uniformContinuous_invariant](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Topology/UniformSpace/Basic.html#mem_uniformity_of_uniformContinuous_invariant), which doesn't seem very idiomatic to me, but I'm not sure what the consensus is on removing lemmas without a clear replacement... ESTIMATED CHANGES Modified Mathlib/Topology/Algebra/IsUniformGroup/Defs.lean + theorem Filter.Tendsto.uniformity_div + theorem Filter.Tendsto.uniformity_inv + theorem Filter.Tendsto.uniformity_inv_iff + theorem Filter.Tendsto.uniformity_mul_iff_left + theorem Filter.Tendsto.uniformity_mul_iff_right 2025-09-28 11:30:33 cacb900 feat(ENat): two helper lemmas (#30002) Note `le_sub_of_add_le_left` was already defined above, but not the `_right` analog. `le_sub_one_of_lt` matches the statement for Nat. ESTIMATED CHANGES Modified Mathlib/Data/ENat/Basic.lean 2025-09-28 10:35:27 027837c chore(RingTheory/Flat): split CharacterModule results from `Flat/Basic.lean` (#29808) The results requiring character modules require importing a whole set of topological definitions, via `AddCircle`. This creates a big topological dependency tree for theory that otherwise lives neatly in algebra. As we can see by looking at the 50 or so files losing hundreds of dependencies each! I spotted this as I tried to reduce the amount of analysis and topology imported into the LinearAlgebra folder. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Lie/Weights/Chain.lean Modified Mathlib/AlgebraicGeometry/ProjectiveSpectrum/Proper.lean Modified Mathlib/RingTheory/AdicCompletion/AsTensorProduct.lean Modified Mathlib/RingTheory/Flat/Basic.lean - theorem Module.Flat.iff_characterModule_baer - theorem Module.Flat.iff_characterModule_injective - theorem Module.Flat.iff_lTensor_injective' - theorem Module.Flat.iff_lTensor_injective - theorem Module.Flat.iff_lift_lsmul_comp_subtype_injective - theorem Module.Flat.iff_rTensor_injective' - theorem Module.Flat.iff_rTensor_injective - theorem Module.Flat.injective_characterModule_iff_rTensor_preserves_injective_linearMap Modified Mathlib/RingTheory/Flat/EquationalCriterion.lean Added Mathlib/RingTheory/Flat/Tensor.lean + theorem Module.Flat.iff_characterModule_baer + theorem Module.Flat.iff_characterModule_injective + theorem Module.Flat.iff_lTensor_injective' + theorem Module.Flat.iff_lTensor_injective + theorem Module.Flat.iff_lift_lsmul_comp_subtype_injective + theorem Module.Flat.iff_rTensor_injective' + theorem Module.Flat.iff_rTensor_injective + theorem Module.Flat.injective_characterModule_iff_rTensor_preserves_injective_linearMap Modified Mathlib/RingTheory/Flat/TorsionFree.lean Modified Mathlib/Tactic/Linter/DirectoryDependency.lean 2025-09-28 10:18:48 618aa6a refactor(Algebra/Polynomial/Splits): generalize `Polynomial.splits_map_iff` from `Field` to `CommRing` (#30043) `Polynomial.splits_map_iff` currently assumes `K →+* L →+* F` with `K` a `CommRing`, `L` a `Field`, and `F` a `Field`. But `L` can be generalized to a `CommRing`. This also allows for a golf in `RingTheory/Invariant/Basic.lean`. ESTIMATED CHANGES Modified Mathlib/Algebra/Polynomial/Splits.lean +/- theorem Polynomial.splits_map_iff Modified Mathlib/RingTheory/Invariant/Basic.lean 2025-09-28 08:47:29 048c8ef feat: Generalise `exists_maximalIdeal_pow_le_of_finite_quotient` (#30028) ESTIMATED CHANGES Modified Mathlib/RingTheory/LocalRing/Quotient.lean - theorem IsLocalRing.exists_maximalIdeal_pow_le_of_finite_quotient + theorem IsLocalRing.exists_maximalIdeal_pow_le_of_isArtinianRing_quotient Modified Mathlib/Topology/Algebra/Ring/Compact.lean 2025-09-28 08:47:27 77d8df0 feat(Data/Matrix/{Mul, Basic}): add `sum_vecMul` and `sum_dotProduct` (#29862) ESTIMATED CHANGES Modified Mathlib/Data/Matrix/Basic.lean + theorem Matrix.mulVec_sum + theorem Matrix.sum_mulVec + theorem Matrix.sum_vecMul + theorem Matrix.vecMul_sum Modified Mathlib/Data/Matrix/Mul.lean + theorem dotProduct_sum + theorem sum_dotProduct 2025-09-28 08:22:54 d49c7af feat(Order/Filter): Tendsto Finset.Iic atTop atTop (#29867) A generalization of `Filter.tendsto_finset_range` in the same file ESTIMATED CHANGES Modified Mathlib/Order/Filter/AtTopBot/Finset.lean + theorem Filter.tendsto_finset_Ici_atBot_atTop + theorem Filter.tendsto_finset_Iic_atTop_atTop 2025-09-28 07:37:18 12a46f8 feat(CategoryTheory/Limits/Creates): add preservesLimit_comp_of_createsLimit (#30014) This PR introduces two instances regarding the interaction between functors that create (co)limits and preservation of (co)limits under composition. `preservesLimit_comp_of_createsLimit `: Given a diagram `K : J => C` and composable functors of categories `C ==F==> D ==G==> E`, if -`F` creates limits for `K` and -`F ⋙ G` preserves limits for `K` then `G` preserves limits for the diagram `J ==K==> C ==F==>D`. `preservesColimit_comp_of_createsColimit `: the dual statement. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Limits/Creates.lean 2025-09-28 07:07:33 ecb8781 feat(GroupTheory/Finiteness): `FG.biSup` and `FG.biSup_finset` (#29797) The current `FG.biSup` are wrongly named in #29034 and are renamed to `FG.biSup_finset`. Add `FG.biSup` that take `Set.Finite` instead. ESTIMATED CHANGES Modified Mathlib/GroupTheory/Finiteness.lean +/- theorem Subgroup.FG.biSup + theorem Subgroup.FG.biSup_finset +/- theorem Submonoid.FG.biSup + theorem Submonoid.FG.biSup_finset 2025-09-28 00:17:34 bf35bd3 chore(scripts): update nolints.json (#30040) I am happy to remove some nolints for you! ESTIMATED CHANGES Modified scripts/nolints.json 2025-09-27 21:57:51 7b4aafd chore: mark cutsat and grober as flexible (#30035) These tactics are thin wrapper over `grind`, hence are likewise flexible. Extracted from #28962; follow-up to #29027. ESTIMATED CHANGES Modified Mathlib/Tactic/Linter/FlexibleLinter.lean Modified MathlibTest/FlexibleLinter.lean 2025-09-27 18:02:22 265c14d chore(Order): move some lemmas/fix some comments (#29994) The comment about `IsAntichain.mk` appears vestigial, this was ported from mathlib3 and has never existed in mathlib4. Also move two lemmas to the appropriate section about `PartialOrder`s. ESTIMATED CHANGES Modified Mathlib/Order/Antichain.lean 2025-09-27 16:22:29 ad69e75 feat(Mathlib/AlgebraicGeometry/Morphisms/Flat): add simple properties of flat maps (#30021) This PR adds two lemmas for faithfully flat ring maps and flat surjective scheme morphisms. - `RingHom.FaithfullyFlat.injective`: Proves that a faithfully flat ring map is injective. (This is built on the pre-existing lemma `Module.FaithfullyFlat.tensorProduct_mk_injective`, which states that ```If `B` is a faithfully flat `A`-module and `M` is any `A`-module, the canonical map `M →ₗ[A] B ⊗[A] M` is injective.```) - `AlgebraicGeometry.Flat.epi_of_flat_surjective`: Proves that a flat surjective morphism of schemes is an epimorphism in the category of schemes. For this, `Mathlib/AlgebraicGeometry/Morphisms/Flat.lean` now imports `Mathlib.RingTheory.RingHom.FaithfullyFlat` to use the former. ESTIMATED CHANGES Modified Mathlib/AlgebraicGeometry/Morphisms/Flat.lean + theorem AlgebraicGeometry.Flat.epi_of_flat_of_surjective Modified Mathlib/Geometry/RingedSpace/SheafedSpace.lean + theorem AlgebraicGeometry.SheafedSpace.epi_of_base_surjective_of_stalk_mono Modified Mathlib/RingTheory/Flat/FaithfullyFlat/Algebra.lean Modified Mathlib/RingTheory/RingHom/FaithfullyFlat.lean + theorem RingHom.FaithfullyFlat.injective 2025-09-27 15:46:53 d271de9 chore(Analysis/SpecialFunctions/CFC/Rpow/Basic): fix confusing names (#30031) Make names less confusing. I don't think these need deprecations since it was last week that they got pushed. ESTIMATED CHANGES Modified Mathlib/Analysis/SpecialFunctions/ContinuousFunctionalCalculus/Rpow/Basic.lean - theorem CStarAlgebra.nonneg_iff_eq_isSelfAdjoint_mul_self - theorem CStarAlgebra.nonneg_iff_eq_nonneg_mul_self + theorem CStarAlgebra.nonneg_iff_exists_isSelfAdjoint_and_eq_mul_self + theorem CStarAlgebra.nonneg_iff_exists_nonneg_and_eq_mul_self 2025-09-27 15:46:51 09b236a feat(Analysis/SpecialFunctions/CFC/Rpow/Basic): add `isStrictlyPositive_TFAE` (#30013) Some equivalent lemmas for strict positivity in a C⋆-algebra. ESTIMATED CHANGES Modified Mathlib/Analysis/SpecialFunctions/ContinuousFunctionalCalculus/Rpow/Basic.lean + theorem CStarAlgebra.isStrictlyPositive_TFAE + theorem CStarAlgebra.isStrictlyPositive_iff_eq_mul_star_self + theorem CStarAlgebra.isStrictlyPositive_iff_eq_star_mul_self + theorem CStarAlgebra.isStrictlyPositive_iff_exists_isStrictlyPositive_and_eq_mul_self + theorem CStarAlgebra.isStrictlyPositive_iff_exists_isUnit_and_isSelfAdjoint_and_eq_mul_self + theorem CStarAlgebra.isStrictlyPositive_iff_isSelfAdjoint_and_spectrum_pos + theorem CStarAlgebra.isStrictlyPositive_iff_isStrictlyPositive_sqrt_and_eq_sqrt_mul_sqrt + theorem CStarAlgebra.isStrictlyPositive_iff_isUnit_sqrt_and_eq_sqrt_mul_sqrt 2025-09-27 15:46:50 5a2fc85 feat(HaarToSphere): add integrability lemmas (#24248) ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Constructions/HaarToSphere.lean + theorem MeasureTheory.Measure.toSphere_eq_zero_iff + theorem MeasureTheory.Measure.toSphere_eq_zero_iff_finrank + theorem MeasureTheory.Measure.toSphere_ne_zero + theorem MeasureTheory.integrable_fun_norm_addHaar Modified Mathlib/MeasureTheory/Integral/Prod.lean + theorem MeasureTheory.AEStronglyMeasurable.comp_fst_iff + theorem MeasureTheory.AEStronglyMeasurable.comp_snd_iff +/- theorem MeasureTheory.AEStronglyMeasurable.prodMk_left + theorem MeasureTheory.AEStronglyMeasurable.prodMk_right + theorem MeasureTheory.Integrable.comp_fst_iff + theorem MeasureTheory.Integrable.comp_snd_iff + theorem MeasureTheory.Integrable.of_comp_fst + theorem MeasureTheory.Integrable.of_comp_snd 2025-09-27 14:52:33 fc7a223 feat/fix(FlexibleLinter): mark more tactics as flexible (#29027) and add proper tests for all of these. In particular, this PR - fixes the handling of `(n)linarith` (which had a bug), and adds a test, - adds `ring!` and `abel!` (as flexible tactics), - adds `ring_nf!` and `abel_nf!` as stopper tactics, - adds `cfc_tac` and its sisters as flexible tactic (as they use aesop and/or fun_prop), - adds `continuity` and `measurability` as flexible (as they are aesop-based), - add `group` and `module` as flexible, - add `grind` as flexible, - add `finiteness` as flexible, and `finiteness_nonterminal` as stopper tactic. - add tests documenting that `fun_prop` and `positivity` are currently not marked as flexible I'm happy to discuss any of these particular additions further. ESTIMATED CHANGES Modified Mathlib/Tactic/Linter/FlexibleLinter.lean Modified MathlibTest/FlexibleLinter.lean Added MathlibTest/ImportHeavyFlexibleLinter.lean 2025-09-27 14:30:17 63fd0cf refactor(Analysis/LocallyConvex/WithSeminorms): Relax some of the hypothesis (#29604) Relax some of the hypothesis in `Analysis/LocallyConvex/WithSeminorms` ESTIMATED CHANGES Modified Mathlib/Analysis/LocallyConvex/WithSeminorms.lean +/- theorem Seminorm.continuous_iff_continuous_comp +/- def SeminormFamily.basisSets +/- theorem SeminormFamily.basisSets_smul_left +/- theorem SeminormFamily.filter_eq_iInf 2025-09-27 13:45:11 8042729 chore: golf using subset_rfl (#29684) Instead of subset_refl _. ESTIMATED CHANGES Modified Mathlib/Analysis/LocallyConvex/BalancedCoreHull.lean Modified Mathlib/Data/Fintype/EquivFin.lean Modified Mathlib/LinearAlgebra/Eigenspace/Triangularizable.lean Modified Mathlib/MeasureTheory/OuterMeasure/OfFunction.lean Modified Mathlib/ModelTheory/Semantics.lean Modified Mathlib/Topology/Algebra/Module/LocallyConvex.lean Modified Mathlib/Topology/NoetherianSpace.lean Modified Mathlib/Topology/UniformSpace/UniformConvergenceTopology.lean 2025-09-27 12:35:39 79c7feb feat: `finsum` and locally finite sums of differentiable sections are differentiable (#29686) Mirrors analogous API for C^n sections; this is added mostly for completeness. Follow-up to #26871. Hence, this also originated from our work towards the path towards geodesics and the Levi-Civita connection. ESTIMATED CHANGES Modified Mathlib/Geometry/Manifold/MFDeriv/Basic.lean + theorem MDifferentiableWithinAt.congr' Modified Mathlib/Geometry/Manifold/VectorBundle/MDifferentiable.lean + theorem MDifferentiable.finsum_section_of_locallyFinite + theorem MDifferentiable.sum_section_of_locallyFinite + theorem MDifferentiableAt.finsum_section_of_locallyFinite + theorem MDifferentiableAt.sum_section_of_locallyFinite + theorem MDifferentiableOn.finsum_section_of_locallyFinite + theorem MDifferentiableOn.smul_section_of_tsupport + theorem MDifferentiableOn.sum_section_of_locallyFinite + theorem MDifferentiableWithinAt.finsum_section_of_locallyFinite + theorem MDifferentiableWithinAt.sum_section_of_locallyFinite 2025-09-27 12:35:37 7b48a4e chore: remove redundant `congr` invocations (#29182) ESTIMATED CHANGES Modified Mathlib/Algebra/BigOperators/Finprod.lean Modified Mathlib/Algebra/Homology/HomotopyCategory/HomComplexShift.lean Modified Mathlib/Algebra/Module/LocalizedModule/Basic.lean Modified Mathlib/Algebra/MvPolynomial/Basic.lean Modified Mathlib/Algebra/Polynomial/Coeff.lean Modified Mathlib/Algebra/Polynomial/Roots.lean Modified Mathlib/Algebra/Polynomial/Splits.lean 2025-09-27 11:48:59 fed4c2f feat(Mathlib/AlgebraicGeometry/PullbackCarrier): pullbackComparison for Scheme.forget is surjective (#30020) This PR adds a simple lemma `forget_comparison_surjective` which states that: The pullback comparison map for the forgetful functor `Scheme ⥤ Type*` is surjective. The proof builds on the existing `exists_preimage_pullback`, which was already available. ESTIMATED CHANGES Modified Mathlib/AlgebraicGeometry/PullbackCarrier.lean + theorem AlgebraicGeometry.Scheme.Pullback.forget_comparison_surjective 2025-09-27 11:48:57 b0eb065 doc(1000.yaml): add Dilworth's theorem (#30016) ESTIMATED CHANGES Modified docs/1000.yaml 2025-09-27 11:48:56 cfc33f4 chore(Order): untangle imports by moving `IsAntichain` lemmas (#29993) Right now Minimal.lean imports Antichain.lean to prove some lemmas about antichains. This is an unnecessary import, since those lemmas can live in Antichain.lean with no additional imports, and thereby reduce the imports in Minimal.lean (and this helps prevent circular includes for another PR of mine.) ESTIMATED CHANGES Modified Mathlib/Order/Antichain.lean + theorem IsAntichain.eq_setOf_maximal + theorem IsAntichain.eq_setOf_minimal + theorem IsAntichain.maximal_mem_iff + theorem IsAntichain.minimal_mem_iff + theorem setOf_maximal_antichain + theorem setOf_minimal_antichain Modified Mathlib/Order/Minimal.lean - theorem IsAntichain.eq_setOf_maximal - theorem IsAntichain.eq_setOf_minimal - theorem IsAntichain.maximal_mem_iff - theorem IsAntichain.minimal_mem_iff - theorem setOf_maximal_antichain - theorem setOf_minimal_antichain 2025-09-27 11:48:54 0b06a5d chore: tidy various files (#29841) ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Module/HahnEmbedding.lean Modified Mathlib/Algebra/SkewMonoidAlgebra/Basic.lean Modified Mathlib/AlgebraicGeometry/EllipticCurve/Reduction.lean Modified Mathlib/Analysis/AbsoluteValue/Equivalence.lean Modified Mathlib/Analysis/InnerProductSpace/Basic.lean Modified Mathlib/Analysis/InnerProductSpace/Defs.lean Modified Mathlib/Analysis/InnerProductSpace/LinearPMap.lean Modified Mathlib/Analysis/Normed/Unbundled/FiniteExtension.lean Modified Mathlib/Analysis/NormedSpace/HahnBanach/SeparatingDual.lean Modified Mathlib/Analysis/RCLike/Extend.lean Modified Mathlib/CategoryTheory/Category/Grpd.lean +/- theorem CategoryTheory.Grpd.id_eq_id Modified Mathlib/CategoryTheory/Sites/Precoverage.lean Modified Mathlib/Data/Int/WithZero.lean Modified Mathlib/Data/Seq/Basic.lean Modified Mathlib/GroupTheory/Perm/Centralizer.lean Modified Mathlib/LinearAlgebra/Dual/Basis.lean Modified Mathlib/LinearAlgebra/Dual/Lemmas.lean Modified Mathlib/LinearAlgebra/LinearIndependent/Lemmas.lean Modified Mathlib/NumberTheory/ArithmeticFunction.lean Modified Mathlib/NumberTheory/ModularForms/Cusps.lean Modified Mathlib/RingTheory/DedekindDomain/Factorization.lean Modified Mathlib/RingTheory/Extension/Presentation/Submersive.lean Modified Mathlib/RingTheory/FractionalIdeal/Operations.lean Modified Mathlib/RingTheory/Ideal/IsPrincipal.lean Modified Mathlib/RingTheory/MvPowerSeries/Basic.lean Modified Mathlib/RingTheory/MvPowerSeries/Order.lean Modified Mathlib/RingTheory/Polynomial/Wronskian.lean Modified Mathlib/RingTheory/ReesAlgebra.lean Modified Mathlib/RingTheory/Spectrum/Prime/Basic.lean Modified Mathlib/RingTheory/Trace/Basic.lean Modified Mathlib/RingTheory/WittVector/Identities.lean Modified Mathlib/Topology/Algebra/AffineSubspace.lean Modified Mathlib/Topology/PartialHomeomorph.lean Modified Mathlib/Topology/Sheaves/SheafCondition/EqualizerProducts.lean 2025-09-27 11:48:52 2a54fc0 doc: hyphenate attributive compound adjectives ending in "preserving" (#29301) Compound adjectives that are attributive (coming before their noun) should almost always be hyphenated in English. This PR covers such adjectives that are ending in "preserving". ESTIMATED CHANGES Modified Mathlib/Algebra/Order/CompleteField.lean Modified Mathlib/AlgebraicTopology/SimplicialSet/Boundary.lean Modified Mathlib/CategoryTheory/Monoidal/Cartesian/Basic.lean Modified Mathlib/CategoryTheory/Monoidal/OfHasFiniteProducts.lean Modified Mathlib/CategoryTheory/Preadditive/LeftExact.lean Modified Mathlib/CategoryTheory/Sites/Coherent/ExtensiveSheaves.lean Modified Mathlib/CategoryTheory/Sites/PreservesLocallyBijective.lean Modified Mathlib/CategoryTheory/Sites/Sheafification.lean Modified Mathlib/Condensed/Discrete/Colimit.lean Modified Mathlib/Condensed/Discrete/LocallyConstant.lean Modified Mathlib/Dynamics/Circle/RotationNumber/TranslationNumber.lean Modified Mathlib/Dynamics/Ergodic/Ergodic.lean Modified Mathlib/Dynamics/Ergodic/MeasurePreserving.lean Modified Mathlib/GroupTheory/GroupAction/DomAct/Basic.lean Modified Mathlib/GroupTheory/SpecificGroups/KleinFour.lean Modified Mathlib/LinearAlgebra/Reflection.lean Modified Mathlib/MeasureTheory/Constructions/Pi.lean Modified Mathlib/MeasureTheory/Function/AEEqFun.lean Modified Mathlib/MeasureTheory/Function/LpSpace/Basic.lean Modified Mathlib/MeasureTheory/Function/LpSpace/ContinuousCompMeasurePreserving.lean Modified Mathlib/MeasureTheory/Function/LpSpace/DomAct/Continuous.lean Modified Mathlib/MeasureTheory/Group/AEStabilizer.lean Modified Mathlib/MeasureTheory/Group/Action.lean Modified Mathlib/MeasureTheory/Group/FundamentalDomain.lean Modified Mathlib/MeasureTheory/Measure/ContinuousPreimage.lean Modified Mathlib/MeasureTheory/Measure/Prod.lean Modified Mathlib/MeasureTheory/Measure/QuasiMeasurePreserving.lean Modified Mathlib/Probability/Density.lean Modified Mathlib/RingTheory/FractionalIdeal/Norm.lean Modified Mathlib/RingTheory/GradedAlgebra/HomogeneousLocalization.lean Modified Mathlib/RingTheory/OrderOfVanishing.lean Modified Mathlib/Topology/Sheaves/SheafCondition/Sites.lean Modified Mathlib/Topology/Sheaves/SheafOfFunctions.lean 2025-09-27 11:48:50 7e2798c chore(LinearAlgebra/Matrix/Determinant): golf `det_eq_zero_of_not_linearIndependent_rows` (#28439) ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/Matrix/Determinant/Basic.lean 2025-09-27 11:48:49 955e577 feat(NumberTheory): Niven's theorem (#26371) This file proves Niven's theorem, that the only rational cosines of angles that are rational multiples of pi, are [-1, -1/2, 0, 1/2, 1]. This is one of the theorems missing from 1000.yaml. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/NumberTheory/Niven.lean + theorem IsIntegral.exists_int_iff_exists_rat + theorem IsIntegral.ratCast_iff + theorem isIntegral_two_mul_cos_rat_mul_pi + theorem niven + theorem niven_angle_eq + theorem niven_sin Modified docs/1000.yaml 2025-09-27 11:35:13 ca95f36 chore(RingTheory/HahnSeries): golf `C_ne_zero` (#28846) ESTIMATED CHANGES Modified Mathlib/RingTheory/HahnSeries/Multiplication.lean +/- theorem HahnSeries.C_ne_zero 2025-09-27 10:51:54 12130d8 feat: finite sum, difference, scalar product of differentiable sections is differentiable (#26871) This mirrors the additions of #26674 to `mdifferentiable` sections. Part of the path towards geodesics and the Levi-Civita connection. ESTIMATED CHANGES Modified Mathlib/Geometry/Manifold/VectorBundle/MDifferentiable.lean + theorem MDifferentiable.sum_section + theorem MDifferentiableAt.smul_const_section + theorem MDifferentiableAt.smul_section + theorem MDifferentiableAt.sum_section + theorem MDifferentiableOn.smul_const_section + theorem MDifferentiableOn.smul_section + theorem MDifferentiableOn.sum_section + theorem MDifferentiableWithinAt.smul_section + theorem MDifferentiableWithinAt.sum_section + theorem mDifferentiableOn_sub_section + theorem mdifferentiableAt_add_section + theorem mdifferentiableAt_neg_section + theorem mdifferentiableAt_sub_section + theorem mdifferentiableOn_add_section + theorem mdifferentiableOn_neg_section + theorem mdifferentiableWithinAt_add_section + theorem mdifferentiableWithinAt_neg_section + theorem mdifferentiableWithinAt_smul_const_section + theorem mdifferentiableWithinAt_sub_section + theorem mdifferentiable_add_section + theorem mdifferentiable_neg_section + theorem mdifferentiable_smul_const_section + theorem mdifferentiable_smul_section + theorem mdifferentiable_sub_section 2025-09-27 10:51:52 ab29df3 feat(AlgebraicGeometry): inverse limits and schemes of finite type (#25941) We prove the following: Given a cofiltered diagram `D` of quasi-compact `S`-schemes with affine transition maps, and another scheme `X` of finite type over `S`. Then the canonical map `colim Homₛ(Dᵢ, X) ⟶ Homₛ(lim Dᵢ, X)` is injective. ESTIMATED CHANGES Modified Mathlib/AlgebraicGeometry/AffineTransitionLimit.lean + def AlgebraicGeometry.ExistsHomHomCompEqCompAux.D' + def AlgebraicGeometry.ExistsHomHomCompEqCompAux.c' + theorem AlgebraicGeometry.ExistsHomHomCompEqCompAux.exists_eq + theorem AlgebraicGeometry.ExistsHomHomCompEqCompAux.exists_index + def AlgebraicGeometry.ExistsHomHomCompEqCompAux.g + def AlgebraicGeometry.ExistsHomHomCompEqCompAux.hc' + def AlgebraicGeometry.ExistsHomHomCompEqCompAux.hii' + def AlgebraicGeometry.ExistsHomHomCompEqCompAux.i' + theorem AlgebraicGeometry.ExistsHomHomCompEqCompAux.range_g_subset + structure AlgebraicGeometry.ExistsHomHomCompEqCompAux + theorem AlgebraicGeometry.Scheme.exists_hom_hom_comp_eq_comp_of_locallyOfFiniteType + theorem AlgebraicGeometry.Scheme.nonempty_of_isLimit + theorem AlgebraicGeometry.exists_mem_of_isClosed_of_nonempty' + theorem AlgebraicGeometry.exists_mem_of_isClosed_of_nonempty - theorem Scheme.nonempty_of_isLimit - theorem exists_mem_of_isClosed_of_nonempty' - theorem exists_mem_of_isClosed_of_nonempty Modified Mathlib/AlgebraicGeometry/Morphisms/Affine.lean Modified Mathlib/AlgebraicGeometry/Morphisms/FiniteType.lean Modified Mathlib/CategoryTheory/Limits/Constructions/Over/Connected.lean + def CategoryTheory.Over.conePost + def CategoryTheory.Over.conePostIso + def CategoryTheory.Over.isLimitConePost Modified Mathlib/CategoryTheory/Limits/Creates.lean + theorem CategoryTheory.liftedLimitMapsToOriginal_hom_π 2025-09-27 10:51:51 528d3ce feat(RingTheory/Invariant): residue field extension is finite (#25616) ESTIMATED CHANGES Modified Mathlib/FieldTheory/Galois/Basic.lean + theorem IsGalois.finiteDimensional_of_finite Modified Mathlib/RingTheory/Invariant/Basic.lean + theorem Ideal.Quotient.finite_of_isInvariant + theorem Ideal.Quotient.normal 2025-09-27 10:18:39 6576717 feat(Algebra/Module/LinearMap): `range (f.smulRight x) = span {x}` (#28350) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Module/LinearMap/DivisionRing.lean + theorem LinearMap.range_smulRight_apply + theorem LinearMap.range_smulRight_apply_of_surjective + theorem LinearMap.surjective_iff_ne_zero Modified Mathlib/LinearAlgebra/Dual/Lemmas.lean +/- theorem Module.Dual.range_eq_top_of_ne_zero Modified Mathlib/Topology/Algebra/Module/LinearMap.lean + theorem ContinuousLinearMap.range_smulRight_apply 2025-09-27 09:23:59 af353e3 feat(FieldTheory/Galois): normal basis theorem (#27390) from [*Formalizing Class Field Theory*](https://www.claymath.org/events/formalizing-class-field-theory/) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Module/PID.lean Modified Mathlib/Algebra/Polynomial/Module/AEval.lean + theorem Module.AEval'.X_pow_smul_of + theorem Module.AEval.X_pow_smul_of Added Mathlib/FieldTheory/Galois/NormalBasis.lean + theorem IsGalois.normalBasis_apply + theorem exists_linearIndependent_algEquiv_apply Modified Mathlib/LinearAlgebra/Dual/Lemmas.lean + theorem span_flip_eq_top_iff_linearIndependent Modified Mathlib/LinearAlgebra/LinearIndependent/Basic.lean Modified docs/references.bib 2025-09-27 07:57:44 d018b27 feat(FDeriv/CompCLM): application of continuous alternating maps to constants (#29984) Copy the section about continuous multilinear maps, adjust. ESTIMATED CHANGES Modified Mathlib/Analysis/Calculus/FDeriv/CompCLM.lean + theorem Differentiable.continuousAlternatingMap_apply_const + theorem DifferentiableAt.continuousAlternatingMap_apply_const + theorem DifferentiableOn.continuousAlternatingMap_apply_const + theorem DifferentiableWithinAt.continuousAlternatingMap_apply_const + theorem HasFDerivAt.continuousAlternatingMap_apply_const + theorem HasFDerivWithinAt.continuousAlternatingMap_apply_const + theorem HasStrictFDerivAt.continuousAlternatingMap_apply_const + theorem fderivWithin_continuousAlternatingMap_apply_const + theorem fderivWithin_continuousAlternatingMap_apply_const_apply + theorem fderiv_continuousAlternatingMap_apply_const + theorem fderiv_continuousAlternatingMap_apply_const_apply 2025-09-27 06:37:55 d255a60 feat: ext lemmas for finite measures on products (#29878) - Two finite measures on a product `α × β` are equal iff they are equal on products of sets. - Two finite measures on a product `α × β × γ` are equal iff they are equal on products of sets, and similarly for `(α × β) × γ`. From the LeanBandits project. ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Measure/Prod.lean + theorem MeasureTheory.Measure.ext_prod + theorem MeasureTheory.Measure.ext_prod_iff + theorem MeasureTheory.Measure.ext_prod₃ + theorem MeasureTheory.Measure.ext_prod₃_iff' + theorem MeasureTheory.Measure.ext_prod₃_iff 2025-09-26 20:32:05 1fb1d7f chore(RingTheory/Laurent): use WithZero.exp to golf statements and proofs about valuation on K((X)) (#27339) Done as part of refactor of Valued in #27314. This PR does not change any definitions. Instead, uses `WithZero.exp` instead of coercion + Multiplicative.ofAdd. And some helper simp lemmas about valuations of RatFunc vis a vis LaurentSeries. ESTIMATED CHANGES Modified Mathlib/FieldTheory/RatFunc/AsPolynomial.lean Modified Mathlib/RingTheory/LaurentSeries.lean + theorem LaurentSeries.exists_ratFunc_eq_v + theorem LaurentSeries.valuation_coe_ratFunc + theorem LaurentSeries.valuation_le_iff_coeff_lt_log_eq_zero +/- theorem PowerSeries.intValuation_X 2025-09-26 13:55:01 06c7bee chore(Analysis/Normed/Algebra/Spectrum): split file and reduce imports (#29978) This file is currently a *very* heavy import as it relies on Liouville's theorem to prove that the spectrum is nonempty, as well as the Cauchy integral formula to prove Gelfand's formula. We split out these results into a separate file to significantly reduce the import burden. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Instances.lean Modified Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Integral.lean Modified Mathlib/Analysis/CStarAlgebra/Spectrum.lean Added Mathlib/Analysis/Normed/Algebra/GelfandFormula.lean + theorem spectrum.algebraMap_eq_of_mem + theorem spectrum.differentiableOn_inverse_one_sub_smul + theorem spectrum.exists_nnnorm_eq_spectralRadius + theorem spectrum.hasDerivAt_resolvent + theorem spectrum.limsup_pow_nnnorm_pow_one_div_le_spectralRadius + theorem spectrum.map_polynomial_aeval + theorem spectrum.pow_nnnorm_pow_one_div_tendsto_nhds_spectralRadius + theorem spectrum.pow_norm_pow_one_div_tendsto_nhds_spectralRadius + theorem spectrum.spectralRadius_lt_of_forall_lt Modified Mathlib/Analysis/Normed/Algebra/Spectrum.lean - theorem spectrum.algebraMap_eq_of_mem - theorem spectrum.differentiableOn_inverse_one_sub_smul - theorem spectrum.exists_nnnorm_eq_spectralRadius - theorem spectrum.hasDerivAt_resolvent - theorem spectrum.limsup_pow_nnnorm_pow_one_div_le_spectralRadius - theorem spectrum.map_polynomial_aeval - theorem spectrum.pow_nnnorm_pow_one_div_tendsto_nhds_spectralRadius - theorem spectrum.pow_norm_pow_one_div_tendsto_nhds_spectralRadius - theorem spectrum.spectralRadius_lt_of_forall_lt Modified Mathlib/Analysis/SpecialFunctions/ContinuousFunctionalCalculus/ExpLog.lean 2025-09-26 12:24:14 e5a6d2d chore(TangentCone): add 2 `simp` attributes (#29986) ESTIMATED CHANGES Modified Mathlib/Analysis/Calculus/TangentCone.lean 2025-09-26 12:24:12 bfb2504 feat: comap of a measurable space by a product (#29875) For `X : α → β` and `Y : α → γ`, with `mβ : MeasurableSpace β`, `mγ : MeasurableSpace γ`, `(mβ.prod mγ).comap (fun ω ↦ (X ω, Y ω)) = mβ.comap X ⊔ mγ.comap Y` ESTIMATED CHANGES Modified Mathlib/MeasureTheory/MeasurableSpace/Prod.lean + theorem MeasurableSpace.comap_prodMap + theorem MeasurableSpace.comap_prodMk 2025-09-26 12:24:10 1233591 feat(Probability): `CondIndepFun` lemmas (#29554) Lemmas about conditional independence of constant random variables and of random variables that are measurable with respect to the sigma-algebra that we are conditioning on. From the LeanBandits project. ESTIMATED CHANGES Modified Mathlib/Probability/Independence/Basic.lean + theorem ProbabilityTheory.indepFun_const_left + theorem ProbabilityTheory.indepFun_const_right Modified Mathlib/Probability/Independence/Conditional.lean + theorem ProbabilityTheory.condIndepFun_const_left + theorem ProbabilityTheory.condIndepFun_const_right + theorem ProbabilityTheory.condIndepFun_of_measurable_left + theorem ProbabilityTheory.condIndepFun_of_measurable_right + theorem ProbabilityTheory.condIndepFun_self_left + theorem ProbabilityTheory.condIndepFun_self_right Modified Mathlib/Probability/Independence/Kernel.lean + theorem ProbabilityTheory.Kernel.indepFun_const_left + theorem ProbabilityTheory.Kernel.indepFun_const_right 2025-09-26 12:24:08 cffe679 feat(Probability): lemmas about composition of kernels and measures (#29552) From the LeanBandits project. ESTIMATED CHANGES Modified Mathlib/Probability/ConditionalProbability.lean + theorem ProbabilityTheory.ae_cond_of_forall_mem Modified Mathlib/Probability/Kernel/Composition/Lemmas.lean + theorem MeasureTheory.Measure.compProd_map +/- theorem MeasureTheory.Measure.parallelComp_comp_compProd Modified Mathlib/Probability/Kernel/Composition/MeasureComp.lean + theorem MeasureTheory.Measure.compProd_deterministic + theorem MeasureTheory.Measure.comp_congr + theorem MeasureTheory.Measure.copy_comp_map Modified Mathlib/Probability/Kernel/Composition/ParallelComp.lean + theorem ProbabilityTheory.Kernel.deterministic_parallelComp_deterministic + theorem ProbabilityTheory.Kernel.parallelComp_apply_prod Modified Mathlib/Probability/Kernel/Composition/Prod.lean + theorem ProbabilityTheory.Kernel.prod_apply_prod 2025-09-26 11:53:49 7cc03ef feat: Define strictly positive operators (i.e. positive definite) (#29087) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Algebra/StrictPositivity.lean + theorem IsStrictlyPositive.iff_of_unital + theorem IsStrictlyPositive.isSelfAdjoint + theorem IsStrictlyPositive.spectrum_pos + def IsStrictlyPositive + theorem IsUnit.isStrictlyPositive + theorem isStrictlyPositive_algebraMap + theorem isStrictlyPositive_one Modified Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Order.lean + theorem IsStrictlyPositive.add_nonneg + theorem IsStrictlyPositive.nonneg_add + theorem isStrictlyPositive_add Modified Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Unital.lean + theorem StarOrderedRing.isStrictlyPositive_iff_spectrum_pos + theorem cfcHom_isStrictlyPositive_iff + theorem cfc_isStrictlyPositive_iff Modified Mathlib/Analysis/SpecialFunctions/ContinuousFunctionalCalculus/ExpLog.lean +/- theorem CFC.exp_log +/- theorem CFC.log_exp +/- theorem CFC.log_one + theorem CFC.log_pow' + theorem CFC.log_smul' +/- theorem CFC.log_zero Modified Mathlib/Analysis/SpecialFunctions/ContinuousFunctionalCalculus/Rpow/Basic.lean + theorem IsStrictlyPositive.nnrpow + theorem IsStrictlyPositive.rpow + theorem IsStrictlyPositive.sqrt Modified Mathlib/Topology/UniformSpace/Real.lean 2025-09-26 11:33:22 26e837d feat(MeasureTheory/ProbabilityTheory): `Is(Probability/Finite)Measure` iff map `Is(Probability/Finite)Measure` (#29922) Adds theorems stating that if the pushforward of a measure is a probability/finite measure than the original measure is a probability/finite measure. Add the corresponding iff theorems and `HasLaw` versions. I also thought that these theorems should be under the same namespace whereas currently `isFiniteMeasure_map` is under `MeasureTheory.Measure` but `isProbabilityMeasure_map` is under `MeasureTheory`. I felt it more appropriate that they be in the `MeasureTheory.Measure` namespace so I made that change and updated downstream accordingly but I could change both to `MeasureTheory` (no `Measure`) instead if preferred. ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Group/Convolution.lean Modified Mathlib/MeasureTheory/Measure/IntegralCharFun.lean Modified Mathlib/MeasureTheory/Measure/Typeclasses/Finite.lean + theorem MeasureTheory.Measure.isFiniteMeasure_map_iff + theorem MeasureTheory.Measure.isFiniteMeasure_of_map Modified Mathlib/MeasureTheory/Measure/Typeclasses/Probability.lean + theorem MeasureTheory.Measure.isProbabilityMeasure_map + theorem MeasureTheory.Measure.isProbabilityMeasure_map_iff + theorem MeasureTheory.Measure.isProbabilityMeasure_of_map - theorem MeasureTheory.isProbabilityMeasure_map Modified Mathlib/Probability/CDF.lean Modified Mathlib/Probability/HasLaw.lean Modified Mathlib/Probability/Kernel/IonescuTulcea/Traj.lean Modified Mathlib/Probability/StrongLaw.lean 2025-09-26 08:53:11 7ba3757 feat(FieldTheory/IsGalois): map induced by the restriction to a subfield (#26841) For `E/L` a field extension and `K` a subfield of `E`, we define the map `(E ≃ₐ[L] E) →* (K ≃ₐ[F] K)` induced by the restriction to `K` (with `F` a subfield of `K` and `L` such that `K/F` is normal) and study when it is injective and surjective. ESTIMATED CHANGES Modified Mathlib/FieldTheory/Galois/Basic.lean + theorem IntermediateField.fixingSubgroup_sup + theorem IntermediateField.restrictRestrictAlgEquivMapHom_apply + theorem IntermediateField.restrictRestrictAlgEquivMapHom_injective + theorem IntermediateField.restrictRestrictAlgEquivMapHom_surjective 2025-09-26 08:13:23 927875a doc(Tactic/FieldSimp): update tactic docstring (#29917) The `field_simp` tactic has changed a lot recently. We update the examples mentioned in the tactic docstring, and also write customised docstrings for the new variants (conv tactic, simproc set) -- previously they inherited the docstring of the main tactic. We also add the tactic docstring examples to the main `field_simp` tests. Extracted from #29089. ESTIMATED CHANGES Modified Mathlib/Tactic/FieldSimp.lean Modified MathlibTest/FieldSimp.lean 2025-09-26 06:47:20 f636b7a chore(CategoryTheory/Sites): remove `FamilyOfElements.compPresheafMap` in favour of `.map` (#29977) Remove `FamilyOfElements.compPresheafMap` in favour of `FamilyOfElements.map`, a definitionally equivalent declaration that has also been around for a while - see [zulip](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Naming.20convention/near/540901136). Since no one expressed any preference regarding which of the two definitions to keep I've just gone ahead and picked `FamilyOfElements.compPresheafMap` for removal here. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Sites/IsSheafFor.lean - theorem CategoryTheory.Presieve.FamilyOfElements.Compatible.compPresheafMap + theorem CategoryTheory.Presieve.FamilyOfElements.Compatible.map - theorem CategoryTheory.Presieve.FamilyOfElements.IsAmalgamation.compPresheafMap + theorem CategoryTheory.Presieve.FamilyOfElements.IsAmalgamation.map - theorem CategoryTheory.Presieve.FamilyOfElements.compPresheafMap_comp - theorem CategoryTheory.Presieve.FamilyOfElements.compPresheafMap_id + theorem CategoryTheory.Presieve.FamilyOfElements.map_comp + theorem CategoryTheory.Presieve.FamilyOfElements.map_id Modified Mathlib/CategoryTheory/Sites/Subsheaf.lean 2025-09-26 06:47:18 a8c41d0 feat(LinearAlgebra): trace of `LinearMap.smulRight` (#29890) from [PhysLean](https://github.com/HEPLean/PhysLean) ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/Matrix/ToLin.lean + theorem LinearMap.toMatrix_smulRight Modified Mathlib/LinearAlgebra/Trace.lean + theorem LinearMap.trace_smulRight 2025-09-26 06:47:16 e97a2a1 feat(CategoryTheory): categories of bounded cardinality is essentially a set (#29865) Given a type `Ω`, we show that there is a family `SmallCategoryOfSet.categoryFamily Ω` of small categories indexed by a small type such that any category with types of objects and morphisms of cardinality less than or equal to that of `Ω` is equivalent to a category in the family. In order to do so, we consider the (small) type of all category structures such that the types of objects and morphisms are subtypes of `Ω`. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/SmallRepresentatives.lean + def CategoryTheory.CoreSmallCategoryOfSet.fullyFaithfulFunctor + def CategoryTheory.CoreSmallCategoryOfSet.functor + def CategoryTheory.CoreSmallCategoryOfSet.smallCategoryOfSet + structure CategoryTheory.CoreSmallCategoryOfSet + theorem CategoryTheory.SmallCategoryOfSet.exists_equivalence + structure CategoryTheory.SmallCategoryOfSet 2025-09-26 06:47:14 4abe24d feat(CategoryTheory): limit presentations (#29849) This PR introduces `LimitPresentation` which is the dual notion to `ColimitPresentation` introduced in #29382. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Limits/Presentation.lean + def CategoryTheory.Limits.ColimitPresentation.changeDiag + theorem CategoryTheory.Limits.ColimitPresentation.hasColimit + def CategoryTheory.Limits.LimitPresentation.changeDiag + theorem CategoryTheory.Limits.LimitPresentation.hasLimit + def CategoryTheory.Limits.LimitPresentation.map + def CategoryTheory.Limits.LimitPresentation.ofIso + def CategoryTheory.Limits.LimitPresentation.reindex + def CategoryTheory.Limits.LimitPresentation.self + structure CategoryTheory.Limits.LimitPresentation 2025-09-26 06:47:12 fd662ed feat: add missing `norm_cast` on subobject coercion lemmas to set (#29185) This is not exhaustive, but performed manually with some regex searches. Only one proof breaks, and only because `convert` goes further than it previously did. ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/NonUnitalSubalgebra.lean Modified Mathlib/Algebra/Algebra/Subalgebra/Lattice.lean Modified Mathlib/Algebra/Algebra/Subalgebra/Pointwise.lean Modified Mathlib/Algebra/Algebra/Subalgebra/Prod.lean Modified Mathlib/Algebra/Field/Subfield/Basic.lean Modified Mathlib/Algebra/Field/Subfield/Defs.lean Modified Mathlib/Algebra/Group/Subgroup/Basic.lean Modified Mathlib/Algebra/Group/Subgroup/Lattice.lean Modified Mathlib/Algebra/Group/Subgroup/Pointwise.lean Modified Mathlib/Algebra/Group/Submonoid/Defs.lean Modified Mathlib/Algebra/Group/Submonoid/Operations.lean Modified Mathlib/Algebra/Group/Submonoid/Pointwise.lean Modified Mathlib/Algebra/Group/Subsemigroup/Defs.lean Modified Mathlib/Algebra/Group/Subsemigroup/Operations.lean Modified Mathlib/Algebra/GroupWithZero/Subgroup.lean Modified Mathlib/Algebra/GroupWithZero/Submonoid/Pointwise.lean Modified Mathlib/Algebra/Lie/Submodule.lean Modified Mathlib/Algebra/Module/Submodule/Pointwise.lean Modified Mathlib/Algebra/Ring/Subring/Basic.lean Modified Mathlib/Algebra/Ring/Subring/Pointwise.lean Modified Mathlib/Algebra/Ring/Subsemiring/Basic.lean Modified Mathlib/Algebra/Ring/Subsemiring/Defs.lean Modified Mathlib/Algebra/Ring/Subsemiring/Pointwise.lean Modified Mathlib/Algebra/Star/NonUnitalSubalgebra.lean Modified Mathlib/Algebra/Star/NonUnitalSubsemiring.lean Modified Mathlib/Algebra/Star/Subalgebra.lean Modified Mathlib/Algebra/Star/Subsemiring.lean Modified Mathlib/Topology/Algebra/Group/ClosedSubgroup.lean 2025-09-26 06:47:10 91e5adb feat(CategoryTheory): weaken assumptions for the stability of the left lifting property under transfinite compositions (#28489) This PR introduces two predicates `HasLiftingPropertyFixedBot/Top` which assert the existence of a lifting in squares when the left/right/top (resp. left/right/bottom) morphisms are fixed. (This weakens the `HasLiftingProperty` class which assumes there is a lifting when we only fix the left and right morphisms.) The `HasLiftingPropertyFixedTop` variant shall be used in the study of the homotopy theory of Kan complexes. The `HasLiftingPropertyFixedBot` variant will be used in the formalization of the model category structure on simplicial sets: this is the reason why this PR also weakens the assumptions in the proof that the left lifting property with respect to certain morphisms is stable under transfinite composition. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/LiftingProperties/Basic.lean + def CategoryTheory.HasLiftingPropertyFixedBot + def CategoryTheory.HasLiftingPropertyFixedTop Modified Mathlib/CategoryTheory/SmallObject/TransfiniteCompositionLifting.lean + theorem CategoryTheory.HasLiftingProperty.transfiniteComposition.hasLiftingPropertyFixedBot_ι_app_bot 2025-09-26 06:47:09 f2d2257 feat(Algebra/Module/Submodule): add `submoduleMap` for isometries (#27357) Per [discussion on Zulip](https://leanprover.zulipchat.com/#narrow/channel/217875-Is-there-code-for-X.3F/topic/Analog.20of.20LinearEquiv.2EsubmoduleMap.20for.20AffineIsometryEquiv.3F), add a version of `.submoduleMap` for `LinearIsometry` and `LinearIsometryEquiv` by analogy with `LinearMap.submoduleMap` and `LinearEquiv.submoduleMap`. ESTIMATED CHANGES Modified Mathlib/Analysis/Normed/Operator/LinearIsometry.lean + def LinearIsometry.submoduleMap + def LinearIsometryEquiv.submoduleMap 2025-09-26 06:32:12 ea8a7df feat(CategoryTheory): Limits in `Subobject X` (#29766) Adds limits to `Subobject X`. Together with https://github.com/leanprover-community/mathlib4/pull/29253, this will show existence of glbs in the poset of subobjects. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Subobject/Basic.lean Modified Mathlib/CategoryTheory/Subobject/Lattice.lean Modified Mathlib/CategoryTheory/Subobject/MonoOver.lean + theorem CategoryTheory.MonoOver.closedUnderLimitsOfShape_isMono Modified Mathlib/CategoryTheory/Subpresheaf/Subobject.lean 2025-09-26 06:18:29 453f274 chore(RingTheory): golf entire `coeff_opRingEquiv` and `comp_assoc` using `rfl` (#28571) ESTIMATED CHANGES Modified Mathlib/RingTheory/FractionalIdeal/Extended.lean +/- theorem FractionalIdeal.mem_extended_iff Modified Mathlib/RingTheory/Polynomial/Opposites.lean Modified Mathlib/RingTheory/PolynomialLaw/Basic.lean +/- theorem PolynomialLaw.comp_assoc 2025-09-26 04:30:44 6a7c79a chore: add missing deprecations from #29295 (#29987) cf. #29295 ESTIMATED CHANGES Modified Mathlib/Algebra/Order/GroupWithZero/Unbundled/Defs.lean 2025-09-26 00:18:42 d329850 doc: move docstring references to definitions to correct locations (#29479) This addresses some instances of docstrings referring to results that have been moved away form their prior locations. ESTIMATED CHANGES Modified Mathlib/Computability/AkraBazzi/AkraBazzi.lean Modified Mathlib/Computability/AkraBazzi/SumTransform.lean 2025-09-25 22:03:15 dd5e2a5 feat(Rel): more API (#26988) Some of this API already exists in `Topology.UniformSpace.Defs` but not spelled with `SetRel`, some of it was written for #24173. ESTIMATED CHANGES Modified Mathlib/Combinatorics/SimpleGraph/Basic.lean Modified Mathlib/Data/Rel.lean +/- theorem SetRel.cod_mono + theorem SetRel.comp_eq_self + theorem SetRel.comp_iUnion + theorem SetRel.comp_sUnion + theorem SetRel.comp_subset_comp + theorem SetRel.comp_subset_comp_left + theorem SetRel.comp_subset_comp_right + theorem SetRel.comp_subset_self +/- theorem SetRel.dom_mono + theorem SetRel.exists_eq_singleton_of_prod_subset_id + theorem SetRel.iUnion_comp + theorem SetRel.id_subset + theorem SetRel.id_subset_iff + theorem SetRel.inv_eq_self + theorem SetRel.inv_eq_self_iff +/- theorem SetRel.inv_id +/- theorem SetRel.inv_mono + theorem SetRel.isRefl_mono + theorem SetRel.isTrans_iff_comp_subset_self + theorem SetRel.left_subset_comp + theorem SetRel.prodMk_mem_comp + theorem SetRel.prod_comp_prod + theorem SetRel.prod_comp_prod_of_disjoint + theorem SetRel.prod_comp_prod_of_inter_nonempty + theorem SetRel.right_subset_comp + theorem SetRel.sUnion_comp + theorem SetRel.subset_iterate_comp + theorem SetRel.subset_symmetrize + def SetRel.symmetrize + theorem SetRel.symmetrize_mono + theorem SetRel.symmetrize_subset_inv + theorem SetRel.symmetrize_subset_self 2025-09-25 21:22:54 1a3e53d chore: rephrase AddMonoidHom.map_trace in terms of Matrix.map (#29755) ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/Matrix/Trace.lean Modified Mathlib/RingTheory/Trace/Basic.lean Modified Mathlib/RingTheory/Trace/Quotient.lean 2025-09-25 18:53:59 0c5275f chore: scope an expensive `IsDomain`->`IsAddTorsionFree` instance (#29486) Unfortunately this instance significantly affects (10%) the run time of ``` import Mathlib variable {K : Type*} [Field K] example : Lean.Grind.NoNatZeroDivisors K := inferInstance ``` which is on the critical path for `grind`. It seems okay to scope it? It is only used once, in a file with explicit `IsDomain` variables. ESTIMATED CHANGES Modified Mathlib/Algebra/Ring/Torsion.lean Modified Mathlib/LinearAlgebra/RootSystem/Finite/Lemmas.lean Modified MathlibTest/slow_instances.lean 2025-09-25 17:12:00 14f82fa chore: add missing fast_instance attributes (#29510) ESTIMATED CHANGES Modified Mathlib/Topology/ContinuousMap/Bounded/Normed.lean Modified Mathlib/Topology/ContinuousMap/ZeroAtInfty.lean 2025-09-25 16:27:45 3b71588 feat: explicit zsmul field in ring constructor to solve performance issue (#29474) ESTIMATED CHANGES Modified Mathlib/Algebra/Ring/InjSurj.lean 2025-09-25 14:17:06 ee0f6ec chore: remove defunct polyrith tactic (#29547) In my understanding, the public Sage server that `polyrith` relies on is down and never going to come back, and hence the `polyrith` code is dead. There are a bunch of viable options for restoring this, e.g. running Sage locally, running our own Sage server, moving to a different external CAS, implementing Grobner bases in a way that produces nullstellensatz certificates (including by modifying the `grind` implementation). But none of these exist at the moment, so this code in Mathlib is not of any use. It can immediately be restored from history if someone wants to implement one of these solutions. In the meantime, one can also use `grobner` (which calls the Grobner module in `grind`) to close the goal without a source code certificate. ESTIMATED CHANGES Modified Archive/Imo/Imo1962Q4.lean Modified Archive/Imo/Imo2006Q3.lean Modified Mathlib/Algebra/Star/CHSH.lean Modified Mathlib/Tactic/Polyrith.lean - def Mathlib.Tactic.Polyrith.Poly.add' - def Mathlib.Tactic.Polyrith.Poly.format - def Mathlib.Tactic.Polyrith.Poly.mul' - def Mathlib.Tactic.Polyrith.Poly.pow' - def Mathlib.Tactic.Polyrith.Poly.sumM - def Mathlib.Tactic.Polyrith.Poly.toSyntax - def Mathlib.Tactic.Polyrith.Poly.unDiv? - def Mathlib.Tactic.Polyrith.Poly.unNeg? - inductive Mathlib.Tactic.Polyrith.Poly - structure Mathlib.Tactic.Polyrith.SageCoeffAndPower - structure Mathlib.Tactic.Polyrith.SageError - def Mathlib.Tactic.Polyrith.SageResult - structure Mathlib.Tactic.Polyrith.SageSuccess - inductive Mathlib.Tactic.Polyrith.Source - def Mathlib.Tactic.Polyrith.parseContext - def Mathlib.Tactic.Polyrith.polyrith - def Mathlib.Tactic.Polyrith.runSage - def Mathlib.Tactic.Polyrith.sageCreateQuery - def Mathlib.Tactic.Polyrith.sageHelperFunctions - def Mathlib.Tactic.Polyrith.sageTypeStr Deleted MathlibTest/polyrith.lean Modified scripts/README.md Modified scripts/noshake.json Deleted scripts/polyrith_sage_helper.py 2025-09-25 12:50:53 d286087 feat(Normed/Ring/WithAbs): apply results relating `algebraMap`s on `WithAbs` (#29944) ESTIMATED CHANGES Modified Mathlib/Analysis/Normed/Ring/WithAbs.lean + theorem WithAbs.algebraMap_left_apply + theorem WithAbs.algebraMap_right_apply + theorem WithAbs.equiv_algebraMap_apply 2025-09-25 12:38:33 7ef0067 feat(CategoryTheory/Monoidal): Add commutative comonoid objects (#29919) This PR adds commutative comonoid objects and removes the problematic global comonoid instance (see #29657). ## Main changes ### 1. Add `CommComonObj` class Added `Mathlib/CategoryTheory/Monoidal/CommComon_.lean` defining commutative comonoids. This captures the mathematical notion that swapping the two copies produced by comultiplication gives the same result. In cartesian categories, all comonoids are automatically commutative (copying data has no preferred order). ### 2. Remove global `ComonObj` instance for unit object The global `ComonObj (𝟙_ C)` instance interfered in [related proofs](https://github.com/leanprover-community/mathlib4/pull/29657#discussion_r2352151327). This PR removes it and updates affected code: - `Bicategory/Monad/Basic.lean`: Now uses `ComonObj.instTensorUnit` for the identity monad's comonad structure - `Monoidal/Bimon_.lean`: Added explicit proofs the global instance previously resolved, verifying unit morphisms preserve comonoid structure ## Design notes - `CommComonObj` extends `ComonObj` and requires `BraidedCategory` for the braiding - Unlike the removed global instance, `CommComonObj` stays a class (it describes a property, not a structure) - The explicit `instTensorUnit` lets users control when to use the trivial comonoid structure [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/CategoryTheory/Bicategory/Monad/Basic.lean Modified Mathlib/CategoryTheory/Monoidal/Bimon_.lean Added Mathlib/CategoryTheory/Monoidal/CommComon_.lean + theorem CategoryTheory.CommComon.comp_hom + def CategoryTheory.CommComon.forget₂Comon + theorem CategoryTheory.CommComon.hom_ext + theorem CategoryTheory.CommComon.id_hom + def CategoryTheory.CommComon.toComon + def CategoryTheory.CommComon.trivial + structure CategoryTheory.CommComon Modified Mathlib/CategoryTheory/Monoidal/Comon_.lean + def ComonObj.instTensorUnit 2025-09-25 12:26:16 2f015bc feat(Convex/LinearIsometry): new file (#24157) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/Convex/ContinuousLinearEquiv.lean + theorem ContinuousLinearEquiv.strictConvex_image + theorem ContinuousLinearEquiv.strictConvex_preimage Added Mathlib/Analysis/Convex/LinearIsometry.lean + theorem LinearIsometry.strictConvexSpace + theorem LinearIsometry.strictConvexSpace_range_iff + theorem LinearIsometryEquiv.strictConvex_image + theorem LinearIsometryEquiv.strictConvex_preimage + theorem StrictConvex.linearIsometry_preimage 2025-09-25 10:58:10 4609fed feat(Combinatorics/Matroid/Circuit): added lemma `Matroid.IsCocircuit.nonempty` (#29891) ESTIMATED CHANGES Modified Mathlib/Combinatorics/Matroid/Circuit.lean + theorem Matroid.IsCocircuit.nonempty 2025-09-25 10:30:01 8fe6434 refactor: `simps coe` for `ContinuousLinearMap.smulRight` (#29887) from [PhysLean](https://github.com/HEPLean/PhysLean) ESTIMATED CHANGES Modified Mathlib/Topology/Algebra/Module/LinearMap.lean 2025-09-25 09:22:10 4a36421 feat(MeasureTheory/Probability): add formula for the pdf of the multiplication of two independent random variables (#29762) Add theorems for the `pdf` of the multiplication of two independent random variables (existence results in form of `HasPDF` and a formula in terms of `mlconvolution` of the individual `pdf`s). Also refactor previous related results about `rnderiv` to help with the proof (as well as fix a mistake I made in previous PRs with the assumption MeasureSpace instead of MeasurableSpace). ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Measure/Decomposition/RadonNikodym.lean + theorem MeasureTheory.HaveLebesgueDecomposition.mconv + theorem MeasureTheory.mconv_eq_withDensity_mlconvolution_rnDeriv Modified Mathlib/MeasureTheory/Measure/WithDensity.lean Modified Mathlib/Probability/Density.lean + theorem ProbabilityTheory.IndepFun.mul_hasPDF' + theorem ProbabilityTheory.IndepFun.mul_hasPDF + theorem ProbabilityTheory.IndepFun.pdf_mul_eq_mlconvolution_pdf' + theorem ProbabilityTheory.IndepFun.pdf_mul_eq_mlconvolution_pdf 2025-09-25 08:55:11 3ef873b feat: associativity of `compProd` for kernels and measures (#29879) From the LeanBandits project. ESTIMATED CHANGES Modified Mathlib/Probability/Kernel/Composition/CompProd.lean + theorem ProbabilityTheory.Kernel.compProd_assoc Modified Mathlib/Probability/Kernel/Composition/MapComap.lean + theorem ProbabilityTheory.Kernel.comap_comp_right Modified Mathlib/Probability/Kernel/Composition/MeasureCompProd.lean + theorem MeasureTheory.Measure.compProd_assoc' + theorem MeasureTheory.Measure.compProd_assoc 2025-09-25 08:39:51 2a3cdc4 chore: remove redundant `let` and `letI` invocations (#29271) ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/TransferInstance.lean Modified Mathlib/Algebra/Module/FinitePresentation.lean Modified Mathlib/CategoryTheory/Monoidal/Grp_.lean Modified Mathlib/ModelTheory/Algebra/Ring/FreeCommRing.lean 2025-09-25 08:21:11 eb2aba5 refactor(LinearAlgebra/Matrix): move lemmas around to reduce imports (#29709) This makes results such as `Matrix.det_one_sub_mul_comm` and `Matrix.eval_det` more accessible. From https://github.com/leanprover-community/mathlib4/pull/29709#issuecomment-3297172309, > | File | Base Count | Head Count | Change | > | ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/Matrix/Charpoly/Coeff.lean - theorem Matrix.eval_det - theorem Matrix.eval_det_add_X_smul - theorem Matrix.matPolyEquiv_eval - theorem Matrix.matPolyEquiv_eval_eq_map - theorem Matrix.matPolyEquiv_symm_map_eval Modified Mathlib/LinearAlgebra/Matrix/Hermitian.lean + theorem Matrix.IsHermitian.fromBlocks₁₁ + theorem Matrix.IsHermitian.fromBlocks₂₂ + theorem Matrix.schur_complement_eq₁₁ + theorem Matrix.schur_complement_eq₂₂ Modified Mathlib/LinearAlgebra/Matrix/PosDef.lean + theorem Matrix.PosDef.fromBlocks₁₁ + theorem Matrix.PosDef.fromBlocks₂₂ Modified Mathlib/LinearAlgebra/Matrix/SchurComplement.lean - theorem Matrix.IsHermitian.fromBlocks₁₁ - theorem Matrix.IsHermitian.fromBlocks₂₂ - theorem Matrix.PosSemidef.fromBlocks₁₁ - theorem Matrix.PosSemidef.fromBlocks₂₂ - theorem Matrix.schur_complement_eq₁₁ - theorem Matrix.schur_complement_eq₂₂ Modified Mathlib/RingTheory/MatrixPolynomialAlgebra.lean + theorem eval_det + theorem eval_det_add_X_smul + theorem matPolyEquiv_eval + theorem matPolyEquiv_eval_eq_map + theorem matPolyEquiv_symm_map_eval 2025-09-25 08:08:47 a91f858 feat: define + characterise `LieAlgebra.IsKilling.sl2SubmoduleOfRoot` (#29951) Extend Killing.lean by sl2SubmoduleOfRoot ESTIMATED CHANGES Modified Mathlib/Algebra/Lie/Weights/Killing.lean + theorem LieAlgebra.IsKilling.coroot_mem_corootSpace + theorem LieAlgebra.IsKilling.sl2SubmoduleOfRoot_eq_sup 2025-09-25 07:46:33 71604a9 Refactor(Probability/Kernel): build `compProd` from `comp` and `parallelComp` (#29704) This PR changes the definitions of `Kernel.compProd` and `Kernel.prod`. - Before this PR, we had 3 types of compositions of kernels that were built "from scratch": `comp`, `parallelComp` and `compProd`. And then `prod` was defined using `compProd`. - After this PR, only `comp` and `parallelComp` are basic blocks of the compositions/products of kernels: `compProd` and `prod` are built from those (and from particular deterministic kernels). The auxiliary definition `compProdFun` that was used only to build `compProd` is deleted. I had to move several lemmas around to reflect changes in the import structure in the folder. The PR summary bot comment shows that nothing was lost besides results about `compProdFun`. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Probability/Kernel/Composition/CompProd.lean - theorem ProbabilityTheory.Kernel.compProdFun_empty - theorem ProbabilityTheory.Kernel.compProdFun_eq_tsum - theorem ProbabilityTheory.Kernel.compProdFun_iUnion - theorem ProbabilityTheory.Kernel.compProdFun_tsum_left - theorem ProbabilityTheory.Kernel.compProdFun_tsum_right - theorem ProbabilityTheory.Kernel.compProd_apply_eq_compProdFun - theorem ProbabilityTheory.Kernel.measurable_compProdFun Added Mathlib/Probability/Kernel/Composition/KernelLemmas.lean + theorem ProbabilityTheory.Kernel.compProd_prodMkLeft_eq_comp + theorem ProbabilityTheory.Kernel.comp_eq_snd_compProd + theorem ProbabilityTheory.Kernel.deterministic_comp_copy + theorem ProbabilityTheory.Kernel.parallelComp_comm + theorem ProbabilityTheory.Kernel.parallelComp_comp_parallelComp + theorem ProbabilityTheory.Kernel.parallelComp_comp_prod + theorem ProbabilityTheory.Kernel.parallelComp_id_left_comp_parallelComp + theorem ProbabilityTheory.Kernel.parallelComp_id_right_comp_parallelComp + theorem ProbabilityTheory.Kernel.snd_compProd_prodMkLeft + theorem ProbabilityTheory.Kernel.swap_parallelComp Modified Mathlib/Probability/Kernel/Composition/Lemmas.lean - theorem ProbabilityTheory.Kernel.deterministic_comp_copy - theorem ProbabilityTheory.Kernel.parallelComp_comm - theorem ProbabilityTheory.Kernel.parallelComp_comp_copy - theorem ProbabilityTheory.Kernel.parallelComp_comp_parallelComp - theorem ProbabilityTheory.Kernel.parallelComp_comp_prod - theorem ProbabilityTheory.Kernel.parallelComp_id_left_comp_parallelComp - theorem ProbabilityTheory.Kernel.parallelComp_id_right_comp_parallelComp - theorem ProbabilityTheory.Kernel.swap_parallelComp Modified Mathlib/Probability/Kernel/Composition/MeasureComp.lean Modified Mathlib/Probability/Kernel/Composition/Prod.lean - theorem ProbabilityTheory.Kernel.compProd_prodMkLeft_eq_comp - theorem ProbabilityTheory.Kernel.comp_eq_snd_compProd + theorem ProbabilityTheory.Kernel.parallelComp_comp_copy - theorem ProbabilityTheory.Kernel.snd_compProd_prodMkLeft 2025-09-25 05:18:46 80565ea chore: rely less on WithTop/Bot-Option defeq, add missing API (#29874) Nowhere near comprehensive; inspired by #27918. ESTIMATED CHANGES Modified Mathlib/Algebra/Order/AddGroupWithTop.lean Modified Mathlib/Algebra/Order/Interval/Basic.lean Modified Mathlib/CategoryTheory/Preadditive/Injective/Basic.lean Modified Mathlib/Data/ENNReal/Basic.lean +/- theorem ENNReal.coe_ofNNRealHom Modified Mathlib/Data/ENat/Basic.lean Modified Mathlib/Data/Finset/Max.lean Modified Mathlib/Order/Hom/WithTopBot.lean +/- theorem InfHom.withBot_id +/- theorem InfHom.withTop_id +/- theorem SupHom.withBot_id +/- theorem SupHom.withTop_id Modified Mathlib/Order/WithBot.lean + theorem WithBot.comp_map + theorem WithBot.map_comp_map + theorem WithBot.map_id + theorem WithBot.map_map + theorem WithTop.comp_map + theorem WithTop.map_comp_map + theorem WithTop.map_id + theorem WithTop.map_map 2025-09-25 05:05:22 38dae6b feat(GroupTheory/Commensurable): additivize (#29707) Move `Commensurable` into the `Subgroup` namespace, and add `to_additive` flags (hence auto-creating a parallel def `AddSubgroup.commensurable`) ESTIMATED CHANGES Modified Mathlib/GroupTheory/Commensurable.lean - theorem Commensurable.comm - theorem Commensurable.commensurable_conj - theorem Commensurable.commensurable_inv - def Commensurable.commensurator' - theorem Commensurable.commensurator'_mem_iff - def Commensurable.commensurator - theorem Commensurable.commensurator_mem_iff - theorem Commensurable.eq - theorem Commensurable.equivalence - def Commensurable.quotConjEquiv - theorem Commensurable.symm - theorem Commensurable.trans - def Commensurable + theorem Subgroup.Commensurable.comm + theorem Subgroup.Commensurable.commensurable_conj + theorem Subgroup.Commensurable.commensurable_inv + def Subgroup.Commensurable.commensurator' + theorem Subgroup.Commensurable.commensurator'_mem_iff + def Subgroup.Commensurable.commensurator + theorem Subgroup.Commensurable.commensurator_mem_iff + theorem Subgroup.Commensurable.conj + theorem Subgroup.Commensurable.eq + theorem Subgroup.Commensurable.equivalence + theorem Subgroup.Commensurable.symm + theorem Subgroup.Commensurable.trans + def Subgroup.Commensurable + def Subgroup.quotConjEquiv Modified Mathlib/NumberTheory/ModularForms/CongruenceSubgroups.lean - theorem CongruenceSubgroup.IsArithmetic.conj + theorem Subgroup.IsArithmetic.conj Modified Mathlib/NumberTheory/ModularForms/Cusps.lean - theorem Commensurable.isCusp_iff + theorem Subgroup.Commensurable.isCusp_iff 2025-09-25 02:45:11 6d9efa4 feat(simps): allow adding arbitrary attributes (#29911) * This deprecates `mfld_cfg`, attributes now need to be given as a `Syntax` object, which is not nice to do globally. (Storing attributes as `Array Attribute` also didn't work, I believe because the attribute needs to be elaborated and applied in the same `TermElabM.run` snippet.) ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Embedding.lean Modified Mathlib/CategoryTheory/Functor/Basic.lean Modified Mathlib/CategoryTheory/Functor/Category.lean +/- theorem CategoryTheory.Functor.flip_map_app Modified Mathlib/CategoryTheory/Iso.lean Modified Mathlib/CategoryTheory/NatIso.lean Modified Mathlib/Data/Bundle.lean Modified Mathlib/Logic/Embedding/Basic.lean Modified Mathlib/Logic/Embedding/Set.lean Modified Mathlib/Logic/Equiv/Defs.lean +/- def Equiv.conj +/- def Equiv.sigmaCongrLeft Modified Mathlib/Logic/Equiv/Option.lean Modified Mathlib/Logic/Equiv/PartialEquiv.lean Modified Mathlib/Logic/Equiv/Prod.lean Modified Mathlib/Tactic/Simps/Basic.lean - def hasSimpAttribute Modified Mathlib/Topology/PartialHomeomorph.lean Modified Mathlib/Topology/VectorBundle/Basic.lean Modified MathlibTest/Simps.lean + def Grind.foo + def hasSimpAttribute 2025-09-25 01:58:53 9892c96 chore: remove redundant `rcases` invocations (#29224) ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/Defs.lean Modified Mathlib/Algebra/Group/Ext.lean Modified Mathlib/Algebra/Module/Injective.lean Modified Mathlib/Algebra/Polynomial/Basic.lean Modified Mathlib/Algebra/Polynomial/Coeff.lean Modified Mathlib/Algebra/Polynomial/Degree/Definitions.lean Modified Mathlib/Algebra/Polynomial/Degree/Support.lean 2025-09-24 23:34:30 1d84eb6 feat: miscellaneous grind golfs (#29700) ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Floor/Ring.lean Modified Mathlib/Algebra/Polynomial/Derivative.lean Modified Mathlib/Combinatorics/Matroid/Map.lean Modified Mathlib/Data/Int/Init.lean Modified Mathlib/Data/Nat/Bits.lean +/- theorem Nat.binaryRec_decreasing Modified Mathlib/Data/Nat/Digits/Lemmas.lean Modified Mathlib/Data/Nat/Size.lean Modified Mathlib/Data/PEquiv.lean Modified Mathlib/MeasureTheory/Constructions/Cylinders.lean Modified Mathlib/MeasureTheory/PiSystem.lean Modified Mathlib/Order/WellFoundedSet.lean 2025-09-24 21:24:06 5ec827a feat: 3 lemmas about `Measure.trim` and map/comap (#29876) ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Measure/Trim.lean + theorem MeasureTheory.ae_map_iff_ae_trim + theorem MeasureTheory.map_trim_comap + theorem MeasureTheory.trim_comap_apply 2025-09-24 19:02:59 e13affe chore(MeasureTheory/VectorMeasure): golf entire `le_restrict_empty` using `simp` (#29893) ESTIMATED CHANGES Modified Mathlib/MeasureTheory/VectorMeasure/Basic.lean 2025-09-24 18:06:16 28c8070 chore(Analysis/Convex/Slope): golf (#29913) Golf, mostly using `field_simp`'s new inequality-handling capability. ESTIMATED CHANGES Modified Mathlib/Analysis/Convex/Slope.lean 2025-09-24 16:53:43 44aa061 fix: adaptations for batteries#1421 (#29928) Fixes the mathlib build after leanprover-community/batteries#1421. ESTIMATED CHANGES Modified Archive/Imo/Imo2024Q5.lean Modified Mathlib/CategoryTheory/ConnectedComponents.lean Modified Mathlib/CategoryTheory/IsConnected.lean Modified Mathlib/CategoryTheory/Limits/IsConnected.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Countable.lean Modified Mathlib/CategoryTheory/Limits/Sifted.lean Modified Mathlib/Combinatorics/Quiver/Path.lean + theorem Quiver.Path.isChain_cons_toList_nonempty + theorem Quiver.Path.isChain_toList_nonempty - theorem Quiver.Path.toList_chain_nonempty Modified Mathlib/Combinatorics/SimpleGraph/Walk.lean - theorem SimpleGraph.Walk.chain'_adj_support - theorem SimpleGraph.Walk.chain'_dartAdj_darts - theorem SimpleGraph.Walk.chain_adj_support - theorem SimpleGraph.Walk.chain_dartAdj_darts + theorem SimpleGraph.Walk.isChain_adj_cons_support + theorem SimpleGraph.Walk.isChain_adj_support + theorem SimpleGraph.Walk.isChain_dartAdj_cons_darts + theorem SimpleGraph.Walk.isChain_dartAdj_darts Modified Mathlib/Data/Bool/Count.lean - theorem List.Chain'.count_false_eq_count_true - theorem List.Chain'.count_false_le_count_true_add_one - theorem List.Chain'.count_not_eq_count - theorem List.Chain'.count_not_le_count_add_one - theorem List.Chain'.count_true_le_count_false_add_one - theorem List.Chain'.length_div_two_le_count_bool - theorem List.Chain'.length_sub_one_le_two_mul_count_bool - theorem List.Chain'.two_mul_count_bool_eq_ite - theorem List.Chain'.two_mul_count_bool_le_length_add_one - theorem List.Chain'.two_mul_count_bool_of_even - theorem List.Chain.count_not + theorem List.IsChain.count_false_eq_count_true + theorem List.IsChain.count_false_le_count_true_add_one + theorem List.IsChain.count_not_cons + theorem List.IsChain.count_not_eq_count + theorem List.IsChain.count_not_le_count_add_one + theorem List.IsChain.count_true_le_count_false_add_one + theorem List.IsChain.length_div_two_le_count_bool + theorem List.IsChain.length_sub_one_le_two_mul_count_bool + theorem List.IsChain.two_mul_count_bool_eq_ite + theorem List.IsChain.two_mul_count_bool_le_length_add_one + theorem List.IsChain.two_mul_count_bool_of_even Modified Mathlib/Data/List/Chain.lean - theorem List.Chain'.append - theorem List.Chain'.append_overlap - theorem List.Chain'.chain - theorem List.Chain'.cons' - theorem List.Chain'.cons_cons - theorem List.Chain'.cons_of_le - theorem List.Chain'.cons_of_ne_nil - theorem List.Chain'.drop - theorem List.Chain'.iff - theorem List.Chain'.iff_mem - theorem List.Chain'.imp - theorem List.Chain'.imp_head - theorem List.Chain'.induction - theorem List.Chain'.infix - theorem List.Chain'.init - theorem List.Chain'.iterate_eq_of_apply_eq - theorem List.Chain'.left_of_append - theorem List.Chain'.prefix - theorem List.Chain'.rel_head - theorem List.Chain'.rel_head? - theorem List.Chain'.right_of_append - theorem List.Chain'.suffix - theorem List.Chain'.tail - theorem List.Chain'.take - theorem List.Chain.backwards_induction - theorem List.Chain.backwards_induction_head - theorem List.Chain.iff - theorem List.Chain.iff_mem - theorem List.Chain.induction + theorem List.IsChain.append + theorem List.IsChain.append_overlap + theorem List.IsChain.backwards_concat_induction + theorem List.IsChain.backwards_cons_induction + theorem List.IsChain.backwards_cons_induction_head + theorem List.IsChain.backwards_induction + theorem List.IsChain.concat_induction + theorem List.IsChain.concat_induction_head + theorem List.IsChain.cons' + theorem List.IsChain.cons_induction + theorem List.IsChain.cons_of_le + theorem List.IsChain.cons_of_ne_nil + theorem List.IsChain.drop + theorem List.IsChain.dropLast + theorem List.IsChain.iff + theorem List.IsChain.iff_mem + theorem List.IsChain.iff_mem_mem_tail + theorem List.IsChain.iff_of_mem_imp + theorem List.IsChain.iff_of_mem_tail_imp + theorem List.IsChain.imp_head + theorem List.IsChain.imp_of_mem_imp + theorem List.IsChain.imp_of_mem_tail_imp + theorem List.IsChain.induction + theorem List.IsChain.infix + theorem List.IsChain.isChain_cons + theorem List.IsChain.iterate_eq_of_apply_eq + theorem List.IsChain.left_of_append + theorem List.IsChain.prefix + theorem List.IsChain.rel_head + theorem List.IsChain.rel_head? + theorem List.IsChain.right_of_append + theorem List.IsChain.suffix + theorem List.IsChain.tail + theorem List.IsChain.take - theorem List.Pairwise.chain' - theorem List.chain'_append - theorem List.chain'_append_cons_cons - theorem List.chain'_attach - theorem List.chain'_attachWith - theorem List.chain'_cons' - theorem List.chain'_cons_cons - theorem List.chain'_eq_iff_eq_replicate - theorem List.chain'_flatten - theorem List.chain'_iff_forall_getElem - theorem List.chain'_iff_forall_rel_of_append_cons_cons - theorem List.chain'_iff_get - theorem List.chain'_iff_pairwise - theorem List.chain'_isInfix - theorem List.chain'_map - theorem List.chain'_map_of_chain' - theorem List.chain'_nil - theorem List.chain'_of_chain'_map - theorem List.chain'_of_not - theorem List.chain'_pair - theorem List.chain'_replicate_of_rel - theorem List.chain'_reverse - theorem List.chain'_singleton - theorem List.chain'_split - theorem List.chain_append_cons_cons - theorem List.chain_append_singleton_iff_forall₂ - theorem List.chain_eq_iff_eq_replicate - theorem List.chain_iff_forall₂ - theorem List.chain_iff_get - theorem List.chain_iff_pairwise - theorem List.chain_map - theorem List.chain_map_of_chain - theorem List.chain_of_chain_map - theorem List.chain_of_chain_pmap - theorem List.chain_pmap_of_chain - theorem List.chain_replicate_of_rel - theorem List.chain_singleton - theorem List.chain_split - theorem List.exists_chain_of_relationReflTransGen + theorem List.exists_isChain_cons_of_relationReflTransGen + theorem List.exists_isChain_ne_nil_of_relationReflTransGen + theorem List.exists_not_getElem_of_not_isChain + theorem List.isChain_append + theorem List.isChain_append_cons_cons + theorem List.isChain_attach + theorem List.isChain_attachWith + theorem List.isChain_cons' + theorem List.isChain_cons_append_cons_cons + theorem List.isChain_cons_append_singleton_iff_forall₂ + theorem List.isChain_cons_eq_iff_eq_replicate + theorem List.isChain_cons_iff + theorem List.isChain_cons_iff_forall₂ + theorem List.isChain_cons_iff_get + theorem List.isChain_cons_map + theorem List.isChain_cons_map_of_isChain_cons + theorem List.isChain_cons_of_isChain_cons_map + theorem List.isChain_cons_of_isChain_cons_pmap + theorem List.isChain_cons_pmap + theorem List.isChain_cons_pmap_of_isChain_cons + theorem List.isChain_cons_split + theorem List.isChain_eq_iff_eq_replicate + theorem List.isChain_flatten + theorem List.isChain_iff_forall_rel_of_append_cons_cons + theorem List.isChain_iff_forall₂ + theorem List.isChain_iff_get + theorem List.isChain_isInfix + theorem List.isChain_map + theorem List.isChain_map_of_isChain + theorem List.isChain_nil + theorem List.isChain_of_isChain_map + theorem List.isChain_of_isChain_pmap + theorem List.isChain_pair + theorem List.isChain_pmap + theorem List.isChain_pmap_of_isChain + theorem List.isChain_replicate_of_rel + theorem List.isChain_reverse + theorem List.isChain_singleton + theorem List.isChain_split - theorem List.relationReflTransGen_of_exists_chain + theorem List.relationReflTransGen_of_exists_isChain + theorem List.relationReflTransGen_of_exists_isChain_cons Modified Mathlib/Data/List/ChainOfFn.lean - theorem List.chain'_ofFn + theorem List.isChain_ofFn Modified Mathlib/Data/List/Cycle.lean + theorem Cycle.chain_range_succ Modified Mathlib/Data/List/Defs.lean Modified Mathlib/Data/List/Destutter.lean - theorem List.Chain'.length_le_length_destutter - theorem List.Chain'.length_le_length_destutter_ne + theorem List.IsChain.length_le_length_destutter + theorem List.IsChain.length_le_length_destutter_ne +/- theorem List.destutter'_eq_self_iff - theorem List.destutter'_is_chain' - theorem List.destutter'_is_chain - theorem List.destutter'_of_chain + theorem List.destutter'_of_isChain_cons +/- theorem List.destutter_eq_self_iff - theorem List.destutter_is_chain' - theorem List.destutter_of_chain' + theorem List.destutter_of_isChain + theorem List.isChain_cons_destutter'_of_rel + theorem List.isChain_destutter' + theorem List.isChain_destutter Modified Mathlib/Data/List/Induction.lean + def List.twoStepInduction + theorem List.twoStepInduction_cons_cons + theorem List.twoStepInduction_nil + theorem List.twoStepInduction_singleton Modified Mathlib/Data/List/Intervals.lean - theorem List.Ico.chain'_succ + theorem List.Ico.isChain_succ Modified Mathlib/Data/List/Range.lean - theorem List.chain'_range_succ - theorem List.chain_range_succ + theorem List.isChain_cons_range_succ + theorem List.isChain_range + theorem List.isChain_range_succ Modified Mathlib/Data/List/SplitBy.lean - theorem List.chain'_getLast_head_splitBy - theorem List.chain'_of_mem_splitBy + theorem List.isChain_getLast_head_splitBy + theorem List.isChain_of_mem_splitBy Modified Mathlib/Data/List/TFAE.lean +/- theorem List.tfae_of_cycle Modified Mathlib/Data/Nat/Factors.lean + theorem Nat.isChain_cons_primeFactorsList + theorem Nat.isChain_primeFactorsList + theorem Nat.isChain_two_cons_primeFactorsList - theorem Nat.primeFactorsList_chain' - theorem Nat.primeFactorsList_chain - theorem Nat.primeFactorsList_chain_2 Modified Mathlib/Data/Nat/Fib/Zeckendorf.lean +/- def List.IsZeckendorfRep Modified Mathlib/Data/Ordmap/Ordnode.lean Modified Mathlib/GroupTheory/CoprodI.lean Modified Mathlib/GroupTheory/FreeGroup/Basic.lean +/- theorem FreeGroup.IsReduced.infix +/- theorem FreeGroup.IsReduced.nil +/- theorem FreeGroup.IsReduced.singleton +/- def FreeGroup.IsReduced Modified Mathlib/GroupTheory/FreeGroup/Reduce.lean Modified Mathlib/GroupTheory/HNNExtension.lean Modified Mathlib/Logic/Equiv/Finset.lean + theorem Denumerable.isChain_cons_raise' + theorem Denumerable.isChain_cons_raise'_of_lt + theorem Denumerable.isChain_raise' - theorem Denumerable.raise'_chain +/- theorem Denumerable.raise'_sorted Modified Mathlib/Logic/Equiv/Multiset.lean + theorem Denumerable.isChain_cons_raise + theorem Denumerable.isChain_raise - theorem Denumerable.raise_chain +/- theorem Denumerable.raise_sorted Modified Mathlib/Order/Height.lean +/- theorem Set.nil_mem_subchain Modified Mathlib/Order/KrullDimension.lean Modified Mathlib/Order/RelSeries.lean - def RelSeries.fromListChain' - theorem RelSeries.fromListChain'_cons + def RelSeries.fromListIsChain + theorem RelSeries.fromListIsChain_cons - theorem RelSeries.head_fromListChain' + theorem RelSeries.head_fromListIsChain + theorem RelSeries.isChain_toList - theorem RelSeries.toList_chain' - theorem RelSeries.toList_fromListChain' + theorem RelSeries.toList_fromListIsChain Modified Mathlib/Tactic/Simproc/Factors.lean Modified Mathlib/Tactic/TFAE.lean Modified Mathlib/Topology/Category/Profinite/Nobeling/Basic.lean +/- def Profinite.NobelingProof.Products Modified Mathlib/Topology/Category/Profinite/Nobeling/Span.lean Modified Mathlib/Topology/Category/Profinite/Nobeling/Successor.lean - theorem Profinite.NobelingProof.GoodProducts.chain'_cons_of_lt + theorem Profinite.NobelingProof.GoodProducts.isChain_cons_of_lt Modified Mathlib/Topology/Category/Profinite/Nobeling/ZeroLimit.lean +/- def Profinite.NobelingProof.Products.nil Modified Mathlib/Topology/Metrizable/Uniformity.lean Modified Mathlib/Topology/Sheaves/SheafCondition/PairwiseIntersections.lean Modified MathlibTest/MkIffOfInductive.lean Modified lake-manifest.json Modified scripts/nolints_prime_decls.txt 2025-09-24 15:36:53 51ec285 fix: make 'says' more robust to whitespace (#29930) See [#general > says tactic does not work in v4.24.0-rc1 @ 💬](https://leanprover.zulipchat.com/#narrow/channel/113488-general/topic/says.20tactic.20does.20not.20work.20in.20v4.2E24.2E0-rc1/near/540658297). ESTIMATED CHANGES Modified Mathlib/Tactic/Says.lean Added MathlibTest/says_whitespace.lean 2025-09-24 14:41:19 f863e92 feat(Analysis/Polynomial/MahlerMeasure): the Mahler measure of a complex polynomial (#26035) We introduce the Mahler measure of a complex polynomial and prove some basic facts. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/Polynomial/MahlerMeasure.lean + theorem Polynomial.intervalIntegrable_mahlerMeasure + theorem Polynomial.logMahlerMeasure_X + theorem Polynomial.logMahlerMeasure_const + theorem Polynomial.logMahlerMeasure_def + theorem Polynomial.logMahlerMeasure_eq_log_MahlerMeasure + theorem Polynomial.logMahlerMeasure_monomial + theorem Polynomial.logMahlerMeasure_one + theorem Polynomial.logMahlerMeasure_zero + theorem Polynomial.mahlerMeasure_const + theorem Polynomial.mahlerMeasure_def_of_ne_zero + theorem Polynomial.mahlerMeasure_eq_zero_iff + theorem Polynomial.mahlerMeasure_mul + theorem Polynomial.mahlerMeasure_nonneg + theorem Polynomial.mahlerMeasure_one + theorem Polynomial.mahlerMeasure_zero Modified Mathlib/MeasureTheory/Integral/CircleIntegral.lean + theorem circleIntegrable_def 2025-09-24 13:52:59 5f779be feat(LinearAlgebra/Matrix): `charpoly` splits into `IsHermitian.eigenvalues` (#29476) ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/Matrix/HermitianFunctionalCalculus.lean + theorem Matrix.IsHermitian.charpoly_cfc_eq Modified Mathlib/LinearAlgebra/Matrix/Spectrum.lean + theorem Matrix.IsHermitian.charpoly_eq + theorem Matrix.IsHermitian.eigenvalues_eq_eigenvalues_iff + theorem Matrix.IsHermitian.eigenvalues₀_antitone + theorem Matrix.IsHermitian.roots_charpoly_eq_eigenvalues + theorem Matrix.IsHermitian.roots_charpoly_eq_eigenvalues₀ + theorem Matrix.IsHermitian.sort_roots_charpoly_eq_eigenvalues₀ + theorem Matrix.IsHermitian.splits_charpoly 2025-09-24 13:31:31 bdca5a5 feat(Topology/Instances): `AddCircle.liftIoc_continuous` (#29057) Previously `AddCircle.liftIco_continuous` existed but this equivalent result did not. In the process I prove that `liftIoc` is equivalent to `liftIco` if the endpoint values are equal. ESTIMATED CHANGES Modified Mathlib/Topology/Instances/AddCircle/Defs.lean + theorem AddCircle.liftIoc_continuous + theorem AddCircle.liftIoc_eq_liftIco + theorem AddCircle.liftIoc_eq_lift_Icc + theorem AddCircle.liftIoc_zero_coe_apply + theorem AddCircle.liftIoc_zero_continuous 2025-09-24 13:09:17 b6fcd6e doc: spell semiring in closed form (#29636) My impression of the literature is that it is quite uncommon to spell "semiring" as "semi-ring". In mathlib there is only 14 cases of "semi-ring", as opposed to ~1400 cases of "semiring" in docstrings. I figure that standardizing on "semiring" will help improve search-ability of mathlib somewhat. We spare the MeasureTheory directory, since, apparently, spelling "semiring" as "semi-ring" does occur in that context. ESTIMATED CHANGES Modified Mathlib/Algebra/Star/CentroidHom.lean Modified Mathlib/RingTheory/MvPowerSeries/Basic.lean 2025-09-24 12:05:31 365203e feat: grind golf in Mathlib.Data.List (#29492) Much of this comes from locations identified by the new `linter.tacticAnalysis.terminalToGrind`, and then cleaning up in flagged files. ESTIMATED CHANGES Modified Mathlib/Data/List/Basic.lean +/- theorem List.eq_cons_of_length_one +/- theorem List.idxOf_append_of_mem Modified Mathlib/Data/List/Flatten.lean Modified Mathlib/Data/List/Induction.lean Modified Mathlib/Data/List/Lattice.lean +/- theorem List.bagInter_sublist_left + theorem List.cons_bagInteger +/- theorem List.count_bagInter + theorem List.inter_cons +/- theorem List.mem_bagInter Modified Mathlib/Data/List/Lookmap.lean + theorem List.lookmap_cons Modified Mathlib/Data/List/ReduceOption.lean Modified Mathlib/Data/List/SplitOn.lean Modified Mathlib/Data/List/TakeDrop.lean Modified Mathlib/Data/List/Triplewise.lean Modified Mathlib/Data/Multiset/UnionInter.lean 2025-09-24 11:23:47 21fd553 chore: cleanup in Nat bitwise files (#29929) ESTIMATED CHANGES Modified Mathlib/Computability/PartrecCode.lean Modified Mathlib/Data/Nat/Bits.lean + theorem Nat.bit_bodd_div2 - theorem Nat.bit_decomp + theorem Nat.bit_false_zero - theorem Nat.bit_zero Modified Mathlib/Data/Nat/Bitwise.lean Modified Mathlib/Logic/Denumerable.lean Modified Mathlib/Logic/Equiv/Nat.lean 2025-09-24 10:00:43 725b6fa chore: move `NumberField/Completion.lean` -> `NumberField/InfinitePlace/Completion.lean` (#29932) The file `NumberField/Completion.lean` contains the completion of a number field at an infinite place, so it is better placed in the `InfinitePlace` subdirectory. Also fix the following naming issues in `Completion.lean` - `extensionEmbedding_of_isReal_coe` -> `extensionEmbeddingOfIsReal_coe` - `isometry_extensionEmbedding_of_isReal` -> `isometry_extensionEmbeddingOfIsReal` - `isClosed_image_extensionEmbedding_of_isReal` -> `isClosed_image_extensionEmbeddingOfIsReal` - `surjective_extensionEmbedding_of_isReal` -> `surjective_extensionEmbeddingOfIsReal` - `bijective_extensionEmbedding_of_isReal` -> `bijective_extensionEmbeddingOfIsReal` ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/NumberTheory/NumberField/AdeleRing.lean Modified Mathlib/NumberTheory/NumberField/Completion.lean - theorem NumberField.InfinitePlace.Completion.Rat.norm_infinitePlace_completion - theorem NumberField.InfinitePlace.Completion.WithAbs.ratCast_equiv - theorem NumberField.InfinitePlace.Completion.bijective_extensionEmbedding_of_isComplex - theorem NumberField.InfinitePlace.Completion.bijective_extensionEmbedding_of_isReal - def NumberField.InfinitePlace.Completion.extensionEmbedding - def NumberField.InfinitePlace.Completion.extensionEmbeddingOfIsReal - theorem NumberField.InfinitePlace.Completion.extensionEmbedding_coe - theorem NumberField.InfinitePlace.Completion.extensionEmbedding_of_isReal_coe - theorem NumberField.InfinitePlace.Completion.isClosed_image_extensionEmbedding - theorem NumberField.InfinitePlace.Completion.isClosed_image_extensionEmbedding_of_isReal - def NumberField.InfinitePlace.Completion.isometryEquivComplexOfIsComplex - def NumberField.InfinitePlace.Completion.isometryEquivRealOfIsReal - theorem NumberField.InfinitePlace.Completion.isometry_extensionEmbedding - theorem NumberField.InfinitePlace.Completion.isometry_extensionEmbedding_of_isReal - theorem NumberField.InfinitePlace.Completion.norm_coe - def NumberField.InfinitePlace.Completion.ringEquivComplexOfIsComplex - def NumberField.InfinitePlace.Completion.ringEquivRealOfIsReal - theorem NumberField.InfinitePlace.Completion.subfield_ne_real_of_isComplex - theorem NumberField.InfinitePlace.Completion.surjective_extensionEmbedding_of_isComplex - theorem NumberField.InfinitePlace.Completion.surjective_extensionEmbedding_of_isReal Added Mathlib/NumberTheory/NumberField/InfinitePlace/Completion.lean + theorem NumberField.InfinitePlace.Completion.Rat.norm_infinitePlace_completion + theorem NumberField.InfinitePlace.Completion.WithAbs.ratCast_equiv + theorem NumberField.InfinitePlace.Completion.bijective_extensionEmbeddingOfIsReal + theorem NumberField.InfinitePlace.Completion.bijective_extensionEmbedding_of_isComplex + def NumberField.InfinitePlace.Completion.extensionEmbedding + def NumberField.InfinitePlace.Completion.extensionEmbeddingOfIsReal + theorem NumberField.InfinitePlace.Completion.extensionEmbeddingOfIsReal_coe + theorem NumberField.InfinitePlace.Completion.extensionEmbedding_coe + theorem NumberField.InfinitePlace.Completion.isClosed_image_extensionEmbedding + theorem NumberField.InfinitePlace.Completion.isClosed_image_extensionEmbeddingOfIsReal + def NumberField.InfinitePlace.Completion.isometryEquivComplexOfIsComplex + def NumberField.InfinitePlace.Completion.isometryEquivRealOfIsReal + theorem NumberField.InfinitePlace.Completion.isometry_extensionEmbedding + theorem NumberField.InfinitePlace.Completion.isometry_extensionEmbeddingOfIsReal + theorem NumberField.InfinitePlace.Completion.norm_coe + def NumberField.InfinitePlace.Completion.ringEquivComplexOfIsComplex + def NumberField.InfinitePlace.Completion.ringEquivRealOfIsReal + theorem NumberField.InfinitePlace.Completion.subfield_ne_real_of_isComplex + theorem NumberField.InfinitePlace.Completion.surjective_extensionEmbeddingOfIsReal + theorem NumberField.InfinitePlace.Completion.surjective_extensionEmbedding_of_isComplex 2025-09-24 07:16:04 f4506f7 chore: deprecate `Traversable` deriving handler (#29573) This broke on `nightly-testing`. It's very probably fixable, but I'm not interested in doing that myself, and I think this is a good opportunity to remove some code which has not been used since 2018. ESTIMATED CHANGES Modified Mathlib.lean Renamed Mathlib/Tactic/DeriveTraversable.lean to Mathlib/Deprecated/Tactic/DeriveTraversable.lean Modified Mathlib/Tactic.lean Modified MathlibTest/Traversable.lean 2025-09-24 06:24:32 92b3585 feat: alternate characterization of `≤` on Archimedean classes (#29611) The definition of `mk x ≤ mk y` is that `|y| ≤ n * |x|` for some natural `n`. We prove the alternate characterization that `q * |y| ≤ |x|` for some positive rational `q`, and in fact prove a more general version for any densely ordered Archimedean ring. ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Ring/Archimedean.lean + theorem ArchimedeanClass.mk_le_mk_iff_denselyOrdered + theorem ArchimedeanClass.mk_le_mk_iff_ratCast 2025-09-24 05:32:46 a5c5c5c chore: replace omega with cutsat where possible (#29461) Context: `omega` is poorly implemented, and we'd eventually like to deprecate it outside of bootstrapping Lean itself. Currently the `cutsat` frontend to `grind` is only a partial replacement, but we're working on getting it to parity. This PR replaces all the occurrences of `omega` which can be replaced by `cutsat` today. Note that overall there is a slight reduction in the total instruction count for building Mathlib (despite increases in certain files). So my preference is to not worry about the performance side of things here. (I've split the PR into two commits: the first commit contains only changes which do not introduce even a local slow-down. The second commit contains the 7 files which have a local performance penalty.) Even the file with the most significant slowdown, Mathlib.RingTheory.AdicCompletion.Exactness, seems perfectly fine in VSCode to me. ESTIMATED CHANGES Modified Mathlib/Algebra/AddConstMap/Basic.lean Modified Mathlib/Algebra/ContinuedFractions/Computation/TerminatesIffRat.lean Modified Mathlib/Algebra/CubicDiscriminant.lean Modified Mathlib/Algebra/GCDMonoid/Nat.lean Modified Mathlib/Algebra/Group/Defs.lean Modified Mathlib/Algebra/Group/Fin/Basic.lean Modified Mathlib/Algebra/Group/ForwardDiff.lean Modified Mathlib/Algebra/Group/Int/Even.lean Modified Mathlib/Algebra/Group/Int/Units.lean Modified Mathlib/Algebra/Group/Nat/Even.lean +/- theorem Nat.succ_mod_two_eq_one_iff +/- theorem Nat.succ_mod_two_eq_zero_iff +/- theorem Nat.two_not_dvd_two_mul_add_one +/- theorem Nat.two_not_dvd_two_mul_sub_one Modified Mathlib/Algebra/Group/Nat/Range.lean Modified Mathlib/Algebra/GroupWithZero/Basic.lean Modified Mathlib/Algebra/GroupWithZero/Units/Basic.lean Modified Mathlib/Algebra/Homology/DerivedCategory/Ext/Basic.lean Modified Mathlib/Algebra/Homology/DerivedCategory/Ext/EnoughInjectives.lean Modified Mathlib/Algebra/Homology/DerivedCategory/Ext/EnoughProjectives.lean Modified Mathlib/Algebra/Homology/DerivedCategory/Ext/ExactSequences.lean Modified Mathlib/Algebra/Homology/DerivedCategory/Ext/ExtClass.lean Modified Mathlib/Algebra/Homology/DerivedCategory/Fractions.lean Modified Mathlib/Algebra/Homology/Embedding/Basic.lean Modified Mathlib/Algebra/Homology/Embedding/Boundary.lean Modified Mathlib/Algebra/Homology/Embedding/CochainComplex.lean Modified Mathlib/Algebra/Homology/Embedding/Connect.lean Modified Mathlib/Algebra/Homology/ExactSequence.lean Modified Mathlib/Algebra/Homology/HomotopyCategory/DegreewiseSplit.lean Modified Mathlib/Algebra/Homology/HomotopyCategory/HomComplex.lean Modified Mathlib/Algebra/Homology/HomotopyCategory/HomComplexShift.lean Modified Mathlib/Algebra/Homology/HomotopyCategory/MappingCone.lean Modified Mathlib/Algebra/Homology/HomotopyCategory/Pretriangulated.lean Modified Mathlib/Algebra/Homology/HomotopyCategory/Shift.lean Modified Mathlib/Algebra/Homology/HomotopyCategory/ShiftSequence.lean Modified Mathlib/Algebra/Homology/HomotopyCategory/ShortExact.lean Modified Mathlib/Algebra/Homology/HomotopyCategory/Triangulated.lean Modified Mathlib/Algebra/Homology/TotalComplexShift.lean Modified Mathlib/Algebra/Lie/CartanExists.lean Modified Mathlib/Algebra/Lie/EngelSubalgebra.lean Modified Mathlib/Algebra/Lie/LieTheorem.lean Modified Mathlib/Algebra/Lie/Nilpotent.lean Modified Mathlib/Algebra/Lie/Weights/Killing.lean Modified Mathlib/Algebra/Lie/Weights/RootSystem.lean Modified Mathlib/Algebra/ModEq.lean Modified Mathlib/Algebra/Module/LinearMap/End.lean Modified Mathlib/Algebra/MvPolynomial/Degrees.lean Modified Mathlib/Algebra/Order/Floor/Ring.lean Modified Mathlib/Algebra/Order/Group/Basic.lean Modified Mathlib/Algebra/Order/Group/DenselyOrdered.lean Modified Mathlib/Algebra/Order/Group/Int/Sum.lean Modified Mathlib/Algebra/Order/Group/Unbundled/Int.lean Modified Mathlib/Algebra/Order/GroupWithZero/Unbundled/Basic.lean Modified Mathlib/Algebra/Order/Monoid/Unbundled/Pow.lean Modified Mathlib/Algebra/Order/Ring/GeomSum.lean Modified Mathlib/Algebra/Order/Ring/Int.lean Modified Mathlib/Algebra/Polynomial/AlgebraMap.lean Modified Mathlib/Algebra/Polynomial/CoeffList.lean Modified Mathlib/Algebra/Polynomial/Degree/CardPowDegree.lean Modified Mathlib/Algebra/Polynomial/Degree/IsMonicOfDegree.lean Modified Mathlib/Algebra/Polynomial/Derivative.lean Modified Mathlib/Algebra/Polynomial/FieldDivision.lean Modified Mathlib/Algebra/Polynomial/OfFn.lean Modified Mathlib/Algebra/Polynomial/Sequence.lean Modified Mathlib/Algebra/Ring/Divisibility/Lemmas.lean Modified Mathlib/Algebra/Ring/GeomSum.lean Modified Mathlib/Algebra/Ring/Parity.lean +/- theorem Nat.mod_two_add_succ_mod_two +/- theorem Nat.succ_mod_two_add_mod_two Modified Mathlib/Algebra/Vertex/VertexOperator.lean Modified Mathlib/AlgebraicGeometry/EllipticCurve/DivisionPolynomial/Degree.lean Modified Mathlib/AlgebraicGeometry/ProjectiveSpectrum/Scheme.lean Modified Mathlib/AlgebraicGeometry/StructureSheaf.lean Modified Mathlib/AlgebraicTopology/AlternatingFaceMapComplex.lean Modified Mathlib/AlgebraicTopology/DoldKan/Decomposition.lean Modified Mathlib/AlgebraicTopology/DoldKan/Degeneracies.lean Modified Mathlib/AlgebraicTopology/DoldKan/Faces.lean Modified Mathlib/AlgebraicTopology/DoldKan/FunctorGamma.lean Modified Mathlib/AlgebraicTopology/DoldKan/GammaCompN.lean Modified Mathlib/AlgebraicTopology/DoldKan/NCompGamma.lean Modified Mathlib/AlgebraicTopology/DoldKan/Projections.lean Modified Mathlib/AlgebraicTopology/DoldKan/SplitSimplicialObject.lean Modified Mathlib/AlgebraicTopology/Quasicategory/StrictSegal.lean Modified Mathlib/AlgebraicTopology/SimplexCategory/Basic.lean Modified Mathlib/AlgebraicTopology/SimplexCategory/GeneratorsRelations/Basic.lean Modified Mathlib/AlgebraicTopology/SimplexCategory/GeneratorsRelations/NormalForms.lean Modified Mathlib/AlgebraicTopology/SimplexCategory/MorphismProperty.lean Modified Mathlib/AlgebraicTopology/SimplicialSet/Coskeletal.lean Modified Mathlib/AlgebraicTopology/SimplicialSet/Degenerate.lean Modified Mathlib/AlgebraicTopology/SimplicialSet/Horn.lean Modified Mathlib/AlgebraicTopology/SimplicialSet/Path.lean Modified Mathlib/AlgebraicTopology/SimplicialSet/StrictSegal.lean Modified Mathlib/Analysis/Analytic/Composition.lean Modified Mathlib/Analysis/Analytic/Order.lean Modified Mathlib/Analysis/Asymptotics/SpecificAsymptotics.lean Modified Mathlib/Analysis/Calculus/ContDiff/FTaylorSeries.lean Modified Mathlib/Analysis/Complex/Exponential.lean Modified Mathlib/Analysis/Convex/Radon.lean Modified Mathlib/Analysis/Fourier/FourierTransformDeriv.lean Modified Mathlib/Analysis/InnerProductSpace/Projection/FiniteDimensional.lean Modified Mathlib/Analysis/Normed/Affine/Simplex.lean Modified Mathlib/Analysis/Normed/Algebra/Spectrum.lean Modified Mathlib/Analysis/Normed/Unbundled/AlgebraNorm.lean Modified Mathlib/Analysis/Polynomial/Basic.lean Modified Mathlib/Analysis/Polynomial/Factorization.lean Modified Mathlib/Analysis/Real/OfDigits.lean Modified Mathlib/Analysis/Real/Pi/Irrational.lean Modified Mathlib/Analysis/SpecialFunctions/Complex/Arctan.lean Modified Mathlib/Analysis/SpecialFunctions/ContinuousFunctionalCalculus/Rpow/IntegralRepresentation.lean Modified Mathlib/Analysis/SpecialFunctions/Gamma/Basic.lean Modified Mathlib/Analysis/SpecialFunctions/Gamma/BohrMollerup.lean Modified Mathlib/Analysis/SpecialFunctions/Log/Base.lean Modified Mathlib/Analysis/SpecialFunctions/OrdinaryHypergeometric.lean Modified Mathlib/Analysis/SpecialFunctions/Stirling.lean Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Arctan.lean Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Basic.lean Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Cotangent.lean Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/EulerSineProd.lean Modified Mathlib/Analysis/SpecificLimits/Basic.lean Modified Mathlib/Analysis/SpecificLimits/FloorPow.lean Modified Mathlib/Analysis/SpecificLimits/Normed.lean Modified Mathlib/Analysis/SumIntegralComparisons.lean Modified Mathlib/CategoryTheory/Abelian/Projective/Dimension.lean Modified Mathlib/CategoryTheory/ComposableArrows.lean Modified Mathlib/CategoryTheory/Functor/OfSequence.lean +/- theorem CategoryTheory.Functor.OfSequence.map_id +/- theorem CategoryTheory.Functor.OfSequence.map_le_succ Modified Mathlib/CategoryTheory/GradedObject/Monoidal.lean Modified Mathlib/CategoryTheory/Limits/Shapes/SequentialProduct.lean Modified Mathlib/CategoryTheory/Preadditive/Schur.lean Modified Mathlib/CategoryTheory/Shift/ShiftedHomOpposite.lean Modified Mathlib/CategoryTheory/Triangulated/HomologicalFunctor.lean Modified Mathlib/CategoryTheory/Triangulated/Opposite/Basic.lean Modified Mathlib/CategoryTheory/Triangulated/Opposite/Functor.lean Modified Mathlib/CategoryTheory/Triangulated/TStructure/Basic.lean Modified Mathlib/CategoryTheory/Triangulated/Yoneda.lean Modified Mathlib/Combinatorics/Additive/AP/Three/Defs.lean Modified Mathlib/Combinatorics/Additive/ApproximateSubgroup.lean Modified Mathlib/Combinatorics/Additive/Convolution.lean Modified Mathlib/Combinatorics/Additive/Corner/Roth.lean Modified Mathlib/Combinatorics/Additive/ErdosGinzburgZiv.lean Modified Mathlib/Combinatorics/Additive/SmallTripling.lean Modified Mathlib/Combinatorics/Colex.lean Modified Mathlib/Combinatorics/Enumerative/Catalan.lean Modified Mathlib/Combinatorics/Enumerative/DyckWord.lean Modified Mathlib/Combinatorics/Extremal/RuzsaSzemeredi.lean Modified Mathlib/Combinatorics/Hindman.lean Modified Mathlib/Combinatorics/Quiver/Path.lean Modified Mathlib/Combinatorics/SetFamily/KruskalKatona.lean Modified Mathlib/Combinatorics/SetFamily/Shadow.lean Modified Mathlib/Combinatorics/SimpleGraph/Acyclic.lean Modified Mathlib/Combinatorics/SimpleGraph/Bipartite.lean Modified Mathlib/Combinatorics/SimpleGraph/ConcreteColorings.lean Modified Mathlib/Combinatorics/SimpleGraph/Connectivity/Represents.lean Modified Mathlib/Combinatorics/SimpleGraph/Connectivity/Subgraph.lean Modified Mathlib/Combinatorics/SimpleGraph/Connectivity/WalkDecomp.lean Modified Mathlib/Combinatorics/SimpleGraph/DegreeSum.lean Modified Mathlib/Combinatorics/SimpleGraph/Extremal/Turan.lean Modified Mathlib/Combinatorics/SimpleGraph/FiveWheelLike.lean Modified Mathlib/Combinatorics/SimpleGraph/Girth.lean Modified Mathlib/Combinatorics/SimpleGraph/Matching.lean Modified Mathlib/Combinatorics/SimpleGraph/Metric.lean Modified Mathlib/Combinatorics/SimpleGraph/Paths.lean Modified Mathlib/Combinatorics/SimpleGraph/Tutte.lean Modified Mathlib/Combinatorics/SimpleGraph/Walk.lean Modified Mathlib/Computability/Ackermann.lean Modified Mathlib/Computability/AkraBazzi/GrowsPolynomially.lean Modified Mathlib/Computability/AkraBazzi/SumTransform.lean Modified Mathlib/Computability/PartrecCode.lean Modified Mathlib/Data/Array/Extract.lean Modified Mathlib/Data/Bool/Count.lean Modified Mathlib/Data/ENNReal/Holder.lean Modified Mathlib/Data/FP/Basic.lean Modified Mathlib/Data/Fin/Basic.lean Modified Mathlib/Data/Fin/Embedding.lean Modified Mathlib/Data/Fin/SuccPred.lean Modified Mathlib/Data/Fin/Tuple/Basic.lean Modified Mathlib/Data/Fin/VecNotation.lean +/- def Matrix.vecAlt0 Modified Mathlib/Data/Finset/Card.lean Modified Mathlib/Data/Finset/Max.lean Modified Mathlib/Data/Finset/Prod.lean Modified Mathlib/Data/Int/Basic.lean Modified Mathlib/Data/Int/CardIntervalMod.lean Modified Mathlib/Data/Int/DivMod.lean Modified Mathlib/Data/Int/Init.lean +/- theorem Int.lt_succ_self +/- theorem Int.pred_self_lt +/- theorem Int.toNat_lt_of_ne_zero Modified Mathlib/Data/Int/Lemmas.lean Modified Mathlib/Data/Int/ModEq.lean Modified Mathlib/Data/Int/NatAbs.lean Modified Mathlib/Data/Int/Order/Basic.lean Modified Mathlib/Data/List/Basic.lean +/- theorem List.eq_cons_of_length_one Modified Mathlib/Data/List/Chain.lean Modified Mathlib/Data/List/ChainOfFn.lean Modified Mathlib/Data/List/Cycle.lean Modified Mathlib/Data/List/Dedup.lean Modified Mathlib/Data/List/InsertIdx.lean Modified Mathlib/Data/List/Intervals.lean Modified Mathlib/Data/List/NatAntidiagonal.lean Modified Mathlib/Data/List/Nodup.lean Modified Mathlib/Data/List/NodupEquivFin.lean Modified Mathlib/Data/List/OfFn.lean Modified Mathlib/Data/List/Range.lean Modified Mathlib/Data/List/Rotate.lean Modified Mathlib/Data/List/Scan.lean Modified Mathlib/Data/List/Shortlex.lean Modified Mathlib/Data/List/SplitLengths.lean Modified Mathlib/Data/List/TakeWhile.lean Modified Mathlib/Data/List/ToFinsupp.lean Modified Mathlib/Data/List/Triplewise.lean Modified Mathlib/Data/Multiset/Basic.lean Modified Mathlib/Data/Multiset/Fintype.lean +/- theorem Multiset.coe_mem Modified Mathlib/Data/Nat/Bits.lean Modified Mathlib/Data/Nat/Bitwise.lean Modified Mathlib/Data/Nat/Cast/NeZero.lean +/- theorem NeZero.one_le Modified Mathlib/Data/Nat/Cast/Order/Basic.lean +/- theorem Nat.cast_nonpos Modified Mathlib/Data/Nat/Choose/Basic.lean Modified Mathlib/Data/Nat/Choose/Factorization.lean Modified Mathlib/Data/Nat/Choose/Sum.lean Modified Mathlib/Data/Nat/Digits/Lemmas.lean Modified Mathlib/Data/Nat/Factorial/Basic.lean Modified Mathlib/Data/Nat/Factorial/NatCast.lean Modified Mathlib/Data/Nat/Factorization/Basic.lean Modified Mathlib/Data/Nat/Factorization/Defs.lean Modified Mathlib/Data/Nat/Find.lean Modified Mathlib/Data/Nat/Init.lean Modified Mathlib/Data/Nat/Log.lean Modified Mathlib/Data/Nat/ModEq.lean Modified Mathlib/Data/Nat/Pairing.lean Modified Mathlib/Data/Nat/PartENat.lean Modified Mathlib/Data/Nat/Prime/Basic.lean Modified Mathlib/Data/Nat/Prime/Defs.lean Modified Mathlib/Data/Nat/Size.lean Modified Mathlib/Data/Nat/Squarefree.lean Modified Mathlib/Data/Nat/Totient.lean Modified Mathlib/Data/Num/Lemmas.lean Modified Mathlib/Data/Ordmap/Invariants.lean Modified Mathlib/Data/Ordmap/Ordset.lean +/- theorem Ordnode.Valid'.node4L_lemma₂ Modified Mathlib/Data/Rat/Lemmas.lean Modified Mathlib/Data/Real/Archimedean.lean Modified Mathlib/Data/Seq/Basic.lean Modified Mathlib/Data/Set/Card.lean Modified Mathlib/Data/Set/Card/Arithmetic.lean Modified Mathlib/Data/Set/Enumerate.lean Modified Mathlib/Data/Set/Insert.lean Modified Mathlib/Data/Vector/Basic.lean +/- theorem List.Vector.get_tail Modified Mathlib/Data/ZMod/Basic.lean Modified Mathlib/Data/ZMod/Defs.lean Modified Mathlib/Dynamics/PeriodicPts/Defs.lean Modified Mathlib/Dynamics/PeriodicPts/Lemmas.lean Modified Mathlib/FieldTheory/JacobsonNoether.lean Modified Mathlib/FieldTheory/Minpoly/MinpolyDiv.lean Modified Mathlib/Geometry/Euclidean/Circumcenter.lean Modified Mathlib/Geometry/Euclidean/Incenter.lean Modified Mathlib/Geometry/Euclidean/MongePoint.lean Modified Mathlib/Geometry/Euclidean/Triangle.lean Modified Mathlib/Geometry/Group/Growth/LinearLowerBound.lean Modified Mathlib/GroupTheory/ArchimedeanDensely.lean Modified Mathlib/GroupTheory/CommutingProbability.lean Modified Mathlib/GroupTheory/Coxeter/Basic.lean Modified Mathlib/GroupTheory/Coxeter/Inversion.lean Modified Mathlib/GroupTheory/Coxeter/Length.lean Modified Mathlib/GroupTheory/Exponent.lean Modified Mathlib/GroupTheory/FreeGroup/Basic.lean Modified Mathlib/GroupTheory/Index.lean Modified Mathlib/GroupTheory/Perm/Cycle/Concrete.lean Modified Mathlib/GroupTheory/Perm/Fin.lean Modified Mathlib/GroupTheory/SpecificGroups/Alternating/Centralizer.lean Modified Mathlib/GroupTheory/SpecificGroups/Cyclic.lean Modified Mathlib/LinearAlgebra/BilinearForm/Orthogonal.lean Modified Mathlib/LinearAlgebra/Eigenspace/Basic.lean Modified Mathlib/LinearAlgebra/Eigenspace/Minpoly.lean Modified Mathlib/LinearAlgebra/FiniteDimensional/Lemmas.lean Modified Mathlib/LinearAlgebra/Matrix/Charpoly/Coeff.lean Modified Mathlib/LinearAlgebra/Matrix/GeneralLinearGroup/FinTwo.lean Modified Mathlib/LinearAlgebra/Projectivization/Cardinality.lean Modified Mathlib/LinearAlgebra/RootSystem/Base.lean Modified Mathlib/LinearAlgebra/RootSystem/Chain.lean Modified Mathlib/LinearAlgebra/RootSystem/Finite/G2.lean Modified Mathlib/LinearAlgebra/RootSystem/Finite/Lemmas.lean Modified Mathlib/LinearAlgebra/RootSystem/GeckConstruction/Lemmas.lean Modified Mathlib/LinearAlgebra/RootSystem/GeckConstruction/Semisimple.lean Modified Mathlib/LinearAlgebra/RootSystem/Reduced.lean Modified Mathlib/Logic/Denumerable.lean Modified Mathlib/Logic/Equiv/Fin/Basic.lean Modified Mathlib/Logic/Equiv/Fin/Rotate.lean +/- theorem finRotate_last' Modified Mathlib/Logic/Godel/GodelBetaFunction.lean Modified Mathlib/MeasureTheory/Integral/RieszMarkovKakutani/Real.lean Modified Mathlib/MeasureTheory/Measure/LevyProkhorovMetric.lean Modified Mathlib/MeasureTheory/VectorMeasure/Decomposition/Hahn.lean Modified Mathlib/ModelTheory/Semantics.lean Modified Mathlib/NumberTheory/AbelSummation.lean Modified Mathlib/NumberTheory/ArithmeticFunction.lean Modified Mathlib/NumberTheory/ClassNumber/Finite.lean Modified Mathlib/NumberTheory/Cyclotomic/Discriminant.lean Modified Mathlib/NumberTheory/Cyclotomic/PrimitiveRoots.lean Modified Mathlib/NumberTheory/Cyclotomic/Rat.lean Modified Mathlib/NumberTheory/Dioph.lean Modified Mathlib/NumberTheory/DiophantineApproximation/Basic.lean Modified Mathlib/NumberTheory/Divisors.lean Modified Mathlib/NumberTheory/FLT/Polynomial.lean Modified Mathlib/NumberTheory/FLT/Three.lean Modified Mathlib/NumberTheory/FactorisationProperties.lean Modified Mathlib/NumberTheory/Fermat.lean +/- theorem Nat.fermatNumber_ne_one Modified Mathlib/NumberTheory/FermatPsp.lean Modified Mathlib/NumberTheory/FrobeniusNumber.lean Modified Mathlib/NumberTheory/Harmonic/ZetaAsymp.lean Modified Mathlib/NumberTheory/JacobiSum/Basic.lean Modified Mathlib/NumberTheory/LSeries/HurwitzZetaValues.lean Modified Mathlib/NumberTheory/LSeries/Nonvanishing.lean Modified Mathlib/NumberTheory/LegendreSymbol/QuadraticChar/Basic.lean Modified Mathlib/NumberTheory/LegendreSymbol/QuadraticChar/GaussSum.lean Modified Mathlib/NumberTheory/LegendreSymbol/QuadraticReciprocity.lean Modified Mathlib/NumberTheory/LegendreSymbol/ZModChar.lean Modified Mathlib/NumberTheory/LucasLehmer.lean Modified Mathlib/NumberTheory/ModularForms/EisensteinSeries/Summable.lean Modified Mathlib/NumberTheory/Multiplicity.lean Modified Mathlib/NumberTheory/NumberField/FinitePlaces.lean Modified Mathlib/NumberTheory/NumberField/InfinitePlace/Basic.lean Modified Mathlib/NumberTheory/Ostrowski.lean Modified Mathlib/NumberTheory/Padics/MahlerBasis.lean Modified Mathlib/NumberTheory/Padics/PadicVal/Basic.lean Modified Mathlib/NumberTheory/Padics/RingHoms.lean Modified Mathlib/NumberTheory/Pell.lean Modified Mathlib/NumberTheory/PellMatiyasevic.lean Modified Mathlib/NumberTheory/PythagoreanTriples.lean Modified Mathlib/NumberTheory/SelbergSieve.lean Modified Mathlib/NumberTheory/SumTwoSquares.lean Modified Mathlib/NumberTheory/Transcendental/Liouville/Residual.lean Modified Mathlib/NumberTheory/ZetaValues.lean Modified Mathlib/Order/Filter/AtTopBot/Basic.lean Modified Mathlib/Order/Filter/AtTopBot/Finite.lean Modified Mathlib/Order/Interval/Finset/Nat.lean Modified Mathlib/Order/Interval/Set/Fin.lean Modified Mathlib/Order/JordanHolder.lean Modified Mathlib/Order/KrullDimension.lean Modified Mathlib/Order/Monotone/Basic.lean Modified Mathlib/Order/OrderIsoNat.lean Modified Mathlib/Order/Partition/Equipartition.lean Modified Mathlib/Order/RelSeries.lean Modified Mathlib/Order/SuccPred/LinearLocallyFinite.lean Modified Mathlib/Probability/Kernel/IonescuTulcea/PartialTraj.lean Modified Mathlib/Probability/Kernel/IonescuTulcea/Traj.lean Modified Mathlib/Probability/Moments/SubGaussian.lean Modified Mathlib/Probability/Process/Stopping.lean Modified Mathlib/Probability/ProductMeasure.lean Modified Mathlib/RingTheory/AdicCompletion/Basic.lean Modified Mathlib/RingTheory/AdicCompletion/Exactness.lean Modified Mathlib/RingTheory/Binomial.lean Modified Mathlib/RingTheory/DedekindDomain/Ideal/Lemmas.lean Modified Mathlib/RingTheory/Derivation/Basic.lean Modified Mathlib/RingTheory/Extension/Presentation/Submersive.lean Modified Mathlib/RingTheory/Filtration.lean Modified Mathlib/RingTheory/Ideal/Basic.lean Modified Mathlib/RingTheory/Ideal/NatInt.lean Modified Mathlib/RingTheory/Ideal/Operations.lean Modified Mathlib/RingTheory/Ideal/Quotient/Nilpotent.lean Modified Mathlib/RingTheory/LaurentSeries.lean Modified Mathlib/RingTheory/Multiplicity.lean Modified Mathlib/RingTheory/MvPolynomial/Homogeneous.lean Modified Mathlib/RingTheory/MvPolynomial/Symmetric/NewtonIdentities.lean Modified Mathlib/RingTheory/Nilpotent/Exp.lean Modified Mathlib/RingTheory/NoetherNormalization.lean Modified Mathlib/RingTheory/Polynomial/Basic.lean Modified Mathlib/RingTheory/Polynomial/Bernstein.lean Modified Mathlib/RingTheory/Polynomial/Cyclotomic/Eval.lean Modified Mathlib/RingTheory/Polynomial/Cyclotomic/Expand.lean Modified Mathlib/RingTheory/Polynomial/Eisenstein/IsIntegral.lean Modified Mathlib/RingTheory/Polynomial/Hermite/Basic.lean Modified Mathlib/RingTheory/Polynomial/Pochhammer.lean Modified Mathlib/RingTheory/Polynomial/Resultant/Basic.lean Modified Mathlib/RingTheory/Polynomial/ShiftedLegendre.lean Modified Mathlib/RingTheory/PowerSeries/Basic.lean Modified Mathlib/RingTheory/PowerSeries/Binomial.lean Modified Mathlib/RingTheory/PowerSeries/Order.lean Modified Mathlib/RingTheory/Radical.lean Modified Mathlib/RingTheory/RingHom/Integral.lean Modified Mathlib/RingTheory/RootsOfUnity/Complex.lean Modified Mathlib/RingTheory/Spectrum/Prime/ChevalleyComplexity.lean Modified Mathlib/RingTheory/WittVector/WittPolynomial.lean Modified Mathlib/RingTheory/ZMod/UnitsCyclic.lean Modified Mathlib/SetTheory/Descriptive/Tree.lean Modified Mathlib/SetTheory/Game/State.lean Modified Mathlib/SetTheory/Surreal/Dyadic.lean Modified Mathlib/Tactic/DeriveEncodable.lean Modified Mathlib/Tactic/NormNum/Irrational.lean Modified Mathlib/Tactic/NormNum/NatLog.lean Modified Mathlib/Tactic/Simproc/Factors.lean Modified Mathlib/Topology/Algebra/InfiniteSum/NatInt.lean Modified Mathlib/Topology/Algebra/InfiniteSum/Nonarchimedean.lean Modified Mathlib/Topology/Algebra/InfiniteSum/TsumUniformlyOn.lean Modified Mathlib/Topology/Algebra/Order/Group.lean Modified Mathlib/Topology/Compactification/OnePoint/Sphere.lean Modified Mathlib/Topology/EMetricSpace/BoundedVariation.lean Modified Mathlib/Topology/EMetricSpace/Paracompact.lean Modified Mathlib/Topology/MetricSpace/Closeds.lean 2025-09-24 03:38:48 6317a92 chore: review of `erw` in `Algebra/Homology/DerivedCategory` (#23360) ESTIMATED CHANGES Modified Mathlib/Algebra/Homology/DerivedCategory/Basic.lean + theorem DerivedCategory.Qh_obj_singleFunctors_obj Modified Mathlib/Algebra/Homology/DerivedCategory/Ext/ExtClass.lean Modified Mathlib/Algebra/Homology/DerivedCategory/SingleTriangle.lean Modified Mathlib/Algebra/Homology/HomotopyCategory/SingleFunctors.lean + theorem HomotopyCategory.quotient_obj_singleFunctors_obj Modified Mathlib/CategoryTheory/Shift/SingleFunctors.lean 2025-09-24 03:26:06 a88dcfe chore: remove some 'nonrec' (#19907) `nonrec` is nearly always obfuscatory: it tells the reader "this apparent recursive call is not actually, but I'm going to leave you to guess what it is instead", when we could just disambiguate and tell the reader. However I'm not sure I have the patience to go through the remaining 600 uses. (A few are genuinely useful, but I guess less than 10%.) ESTIMATED CHANGES Modified Mathlib/Algebra/Category/ModuleCat/Differentials/Basic.lean + def ModuleCat.Derivation Modified Mathlib/Algebra/Category/ModuleCat/Differentials/Presheaf.lean + theorem PresheafOfModules.Derivation'.d_app Modified Mathlib/Algebra/ContinuedFractions/Computation/Approximations.lean + def SimpContFract.of Modified Mathlib/Algebra/ContinuedFractions/ConvergentsEquiv.lean + theorem ContFract.convs_eq_convs' Modified Mathlib/Algebra/DualNumber.lean + theorem DualNumber.algHom_ext Modified Mathlib/Algebra/Quaternion.lean + def Quaternion.im + theorem Quaternion.im_add + theorem Quaternion.im_neg + theorem Quaternion.im_smul + theorem Quaternion.im_sub + theorem Quaternion.mul_star_eq_coe + theorem Quaternion.re_add_im + theorem Quaternion.self_add_star' + theorem Quaternion.self_add_star + theorem Quaternion.star_add_self' + theorem Quaternion.star_add_self + theorem Quaternion.star_eq_two_re_sub + theorem Quaternion.star_mul_eq_coe + theorem Quaternion.sub_im_self + theorem Quaternion.sub_re_self 2025-09-24 02:31:18 fd4329c chore: run 'lake build AesopTest' on nightlies (#29697) This would have prevented an annoying hurdle during the last release cycle. ESTIMATED CHANGES Modified .github/build.in.yml Modified .github/workflows/bors.yml Modified .github/workflows/build.yml Modified .github/workflows/build_fork.yml 2025-09-23 19:02:13 05514c8 chore: generalize `ContinuousAffineMap.contLinear` to `IsTopologicalAddTorsor` (#29617) ESTIMATED CHANGES Modified Mathlib/Analysis/Calculus/AddTorsor/AffineMap.lean Modified Mathlib/Analysis/Normed/Affine/ContinuousAffineMap.lean - theorem ContinuousAffineMap.add_contLinear - theorem ContinuousAffineMap.coe_contLinear - theorem ContinuousAffineMap.coe_contLinear_eq_linear - theorem ContinuousAffineMap.coe_linear_eq_coe_contLinear - theorem ContinuousAffineMap.coe_mk_const_linear_eq_linear - theorem ContinuousAffineMap.comp_contLinear - theorem ContinuousAffineMap.const_contLinear - def ContinuousAffineMap.contLinear - theorem ContinuousAffineMap.contLinear_eq_zero_iff_exists_const - theorem ContinuousAffineMap.contLinear_map_vsub - theorem ContinuousAffineMap.decomp - theorem ContinuousAffineMap.map_vadd - theorem ContinuousAffineMap.neg_contLinear - theorem ContinuousAffineMap.prodMap_contLinear - theorem ContinuousAffineMap.prod_contLinear - theorem ContinuousAffineMap.smul_contLinear - theorem ContinuousAffineMap.sub_contLinear - theorem ContinuousAffineMap.to_affine_map_contLinear - theorem ContinuousAffineMap.vadd_apply - theorem ContinuousAffineMap.vadd_toAffineMap - theorem ContinuousAffineMap.vsub_apply - theorem ContinuousAffineMap.vsub_toAffineMap - theorem ContinuousAffineMap.zero_contLinear Modified Mathlib/Geometry/Euclidean/Projection.lean Modified Mathlib/Topology/Algebra/ContinuousAffineMap.lean + theorem ContinuousAffineMap.add_contLinear + theorem ContinuousAffineMap.coe_contLinear + theorem ContinuousAffineMap.coe_contLinear_eq_linear + theorem ContinuousAffineMap.coe_linear_eq_coe_contLinear + theorem ContinuousAffineMap.coe_mk_contLinear_eq_linear + theorem ContinuousAffineMap.comp_contLinear + theorem ContinuousAffineMap.const_contLinear + def ContinuousAffineMap.contLinear + theorem ContinuousAffineMap.contLinear_eq_zero_iff_exists_const + theorem ContinuousAffineMap.contLinear_map_vsub + theorem ContinuousAffineMap.decomp + theorem ContinuousAffineMap.map_vadd + theorem ContinuousAffineMap.neg_contLinear + theorem ContinuousAffineMap.prodMap_contLinear + theorem ContinuousAffineMap.prod_contLinear + theorem ContinuousAffineMap.smul_contLinear + theorem ContinuousAffineMap.sub_contLinear + theorem ContinuousAffineMap.vadd_apply + theorem ContinuousAffineMap.vadd_contLinear + theorem ContinuousAffineMap.vadd_toAffineMap + theorem ContinuousAffineMap.vsub_apply + theorem ContinuousAffineMap.vsub_contLinear + theorem ContinuousAffineMap.vsub_toAffineMap + theorem ContinuousAffineMap.zero_contLinear + theorem ContinuousLinearMap.toContinuousAffineMap_contLinear 2025-09-23 18:22:00 8017dd1 feat(gcongr): `@[gcongr]` for `gcd` and `IsCoprime` (#29889) This PR adds `gcongr` tags for `gcd` and `IsCoprime`. Although I don't expect it to be used very much, it is nice that we can use `grw` with the divisibility relation. Is the name `isCoprime_mono` allowed even if the relation is divisibity? ESTIMATED CHANGES Modified Mathlib/Algebra/GCDMonoid/Basic.lean +/- theorem gcd_dvd_gcd_mul_left +/- theorem gcd_dvd_gcd_mul_left_right +/- theorem gcd_dvd_gcd_mul_right +/- theorem gcd_dvd_gcd_mul_right_right Modified Mathlib/RingTheory/Coprime/Basic.lean + theorem IsCoprime.mono 2025-09-23 18:21:58 8e82ec6 fix(Tactic/ToAdditive/Frontend): swap `reorderForall` and `applyReplacementForall` (#29119) This PR does some general clean-up in the `to_additive` implementation: - `expand` is moved up so that it can be called directly inside of `applyReplacementFun`. The current situation requires uses of `applyReplacementFun` to know that they need to call `expand` first. - `applyReplacementFun` is significantly cleaned up, without changing the implementation, making it shorter, more readable and more efficient. - It swaps reorderForall/Lambda with applyReplacementForall/Lambda, because in the previous order, if `reorder` would reorder some argument that appears in `dontTranslate`, it would do the wrong thing (although I don't think this will ever come up in practice) ESTIMATED CHANGES Modified Mathlib/Tactic/ToAdditive/Frontend.lean +/- def ToAdditive.will.reorderForall +/- def ToAdditive.will.reorderLambda Modified MathlibTest/toAdditive.lean 2025-09-23 17:30:33 608b610 feat(Algebra/Homology): define projective dimension as a number (#29882) In this PR, we gave the definition of projective dimension in `WithBot ℕ∞` as `projectiveDimension`, `projectiveDimension X = ⊥` iff `X` is zero and acts in common sense in the non-negative values. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Abelian/Projective/Dimension.lean + theorem CategoryTheory.Retract.projectiveDimension_le + theorem CategoryTheory.hasProjectiveDimensionLT_zero_iff_isZero + theorem CategoryTheory.projectiveDimension_eq_bot_iff + theorem CategoryTheory.projectiveDimension_eq_of_iso + theorem CategoryTheory.projectiveDimension_ge_iff + theorem CategoryTheory.projectiveDimension_le_iff + theorem CategoryTheory.projectiveDimension_lt_iff + theorem CategoryTheory.projectiveDimension_ne_top_iff + theorem CategoryTheory.projective_iff_hasProjectiveDimensionLT_one + theorem CategoryTheory.projective_iff_subsingleton_ext_one 2025-09-23 17:30:31 3993708 chore(Data/Nat/Init): remove `@[instance]` from `instAtLeastTwo` (#29832) The instance `instAtLeastTwo` is never used as it is weaker than the instance defined right below it. It is still used somewhere in `norm_num`, so we can't delete it. ESTIMATED CHANGES Modified Mathlib/Algebra/CharZero/Defs.lean Modified Mathlib/Data/Nat/Init.lean Modified Mathlib/Tactic/NormNum/Result.lean + theorem Mathlib.Meta.NormNum.instAtLeastTwo 2025-09-23 17:30:29 4e6270f chore: clean up some proofs about locally compact valuation (#28669) ESTIMATED CHANGES Modified Mathlib/RingTheory/Valuation/Archimedean.lean + theorem Valuation.Integers.isPrincipalIdealRing_iff_not_denselyOrdered_mrange Modified Mathlib/RingTheory/Valuation/Basic.lean + theorem Valuation.isNontrivial_iff_exists_lt_one Modified Mathlib/Topology/Algebra/Valued/LocallyCompact.lean + theorem Valuation.isNontrivial_iff_not_a_field 2025-09-23 16:16:34 238545e chore: remove redundant `haveI`/`letI` (#29908) These `haveI` and `letI` invocations seem to be remnants of lean3, when local variables weren't automatically added as instances. ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Pointwise/Set/Finite.lean Modified Mathlib/AlgebraicGeometry/Morphisms/AffineAnd.lean Modified Mathlib/FieldTheory/Finite/Basic.lean Modified Mathlib/LinearAlgebra/Basis/Defs.lean Modified Mathlib/LinearAlgebra/Matrix/Charpoly/FiniteField.lean Modified Mathlib/Probability/Kernel/WithDensity.lean Modified Mathlib/SetTheory/Cardinal/Cofinality.lean 2025-09-23 16:16:32 11471b6 chore(Geometry/Euclidean/SignedDist): use `normalize` (#29897) This PR uses the new `NormedSpace.normalize` in `signedDist`. It also fills in some missing API. ESTIMATED CHANGES Modified Mathlib/Analysis/NormedSpace/Normalize.lean +/- theorem NormedSpace.norm_normalize_eq_one_iff + theorem NormedSpace.normalize_eq_zero_iff + theorem NormedSpace.normalize_smul Modified Mathlib/Geometry/Euclidean/SignedDist.lean +/- theorem signedDist_apply +/- theorem signedDist_apply_apply +/- theorem signedDist_apply_linear +/- theorem signedDist_apply_linear_apply +/- theorem signedDist_linear_apply +/- theorem signedDist_linear_apply_apply + theorem signedDist_smul_of_neg + theorem signedDist_smul_of_pos +/- theorem signedDist_vadd_left +/- theorem signedDist_vadd_right 2025-09-23 16:16:30 a45cce9 feat(Order/Filter/Basic): `gcongr` for `EventuallyEq` (#29747) This was originally requested in [#mathlib4 > ✔ `rw` with ae relations](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/.E2.9C.94.20.60rw.60.20with.20ae.20relations/with/529301301) ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Function/ConditionalExpectation/AEMeasurable.lean Modified Mathlib/MeasureTheory/Function/ConditionalExpectation/Basic.lean Modified Mathlib/MeasureTheory/Function/ConditionalExpectation/CondexpL1.lean Modified Mathlib/MeasureTheory/Function/ConditionalExpectation/Real.lean Modified Mathlib/MeasureTheory/VectorMeasure/Decomposition/Lebesgue.lean Modified Mathlib/Order/Filter/Basic.lean 2025-09-23 15:40:43 8f2d1c4 feat(Tactic/FieldSimp): handle inequalities (#29364) This PR extends the `field_simp` tactic to cancel positive denominators in inequalities, by analogy with the existing behaviour of cancelling nonzero denominators in equalities. For example, `field_simp` now reduces the following goal (from `Mathlib.Analysis.Convex.Mul`): ``` x y a b : ℚ hx : 0 < x hy : 0 < y ha : 0 < a hb : 0 < b ⊢ (a * x + b * y)⁻¹ ≤ a * x⁻¹ + b * y⁻¹ ``` to `⊢ x * y ≤ (a * x + b * y) * (a * y + x * b)`. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Analysis/Calculus/BumpFunction/FiniteDimension.lean Modified Mathlib/Analysis/Convex/Continuous.lean Modified Mathlib/Analysis/Convex/Mul.lean Modified Mathlib/Analysis/Convex/Slope.lean Modified Mathlib/Analysis/PSeries.lean Modified Mathlib/Analysis/SpecialFunctions/Stirling.lean Modified Mathlib/RingTheory/RootsOfUnity/Complex.lean Modified Mathlib/Tactic.lean Modified Mathlib/Tactic/FieldSimp.lean + def Mathlib.Tactic.FieldSimp.DenomCondition.proof + def Mathlib.Tactic.FieldSimp.DenomCondition.proofZero + inductive Mathlib.Tactic.FieldSimp.DenomCondition + def Mathlib.Tactic.FieldSimp.mkDenomConditionProofSucc' + def Mathlib.Tactic.FieldSimp.mkDenomConditionProofSucc + def Mathlib.Tactic.FieldSimp.proc - def Mathlib.Tactic.FieldSimp.reduceEq + def Mathlib.Tactic.FieldSimp.reduceLeQ + def Mathlib.Tactic.FieldSimp.reduceLtQ + def Mathlib.Tactic.FieldSimp.reduceProp Added Mathlib/Tactic/FieldSimp/Attr.lean Modified Mathlib/Tactic/FieldSimp/Lemmas.lean + theorem Mathlib.Tactic.FieldSimp.NF.cons_pos + theorem Mathlib.Tactic.FieldSimp.le_eq_cancel_le + theorem Mathlib.Tactic.FieldSimp.lt_eq_cancel_lt + theorem Mathlib.Tactic.FieldSimp.zpow'_of_ne_zero_left Modified MathlibTest/FieldSimp.lean Modified scripts/noshake.json 2025-09-23 14:25:17 c73c039 feat: norm_num extension for abs (#29223) Adds a `norm_num` extension for the [absolute value operator](https://github.com/leanprover-community/mathlib4/blob/3a941a8fd0acf2b70463b31aeb8ce08bb214a512/Mathlib/Algebra/Order/Group/Unbundled/Abs.lean#L39-L40). ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Analysis/Complex/ExponentialBounds.lean Modified Mathlib/Tactic.lean Modified Mathlib/Tactic/NormNum.lean Added Mathlib/Tactic/NormNum/Abs.lean + def Mathlib.Meta.NormNum.evalAbs + theorem Mathlib.Meta.NormNum.isNNRat_abs_neg + theorem Mathlib.Meta.NormNum.isNNRat_abs_nonneg + theorem Mathlib.Meta.NormNum.isNat_abs_neg + theorem Mathlib.Meta.NormNum.isNat_abs_nonneg Added MathlibTest/norm_num_abs.lean 2025-09-23 13:41:04 e02195e chore(MeasureTheory): semilinearize composition of integrals with CLM (#29853) ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Function/LpSpace/Basic.lean +/- theorem ContinuousLinearMap.add_compLp +/- theorem ContinuousLinearMap.add_compLpL +/- theorem ContinuousLinearMap.coeFn_compLp' +/- theorem ContinuousLinearMap.coeFn_compLp +/- theorem ContinuousLinearMap.coeFn_compLpL +/- def ContinuousLinearMap.compLp +/- def ContinuousLinearMap.compLpL +/- def ContinuousLinearMap.compLpₗ +/- theorem ContinuousLinearMap.comp_memLp' +/- theorem ContinuousLinearMap.comp_memLp +/- theorem ContinuousLinearMap.norm_compLpL_le +/- theorem ContinuousLinearMap.norm_compLp_le +/- theorem ContinuousLinearMap.smul_compLp +/- theorem ContinuousLinearMap.smul_compLpL Modified Mathlib/MeasureTheory/Integral/Bochner/ContinuousLinearMap.lean +/- theorem ContinuousLinearMap.continuous_integral_comp_L1 +/- theorem ContinuousLinearMap.integral_compLp +/- theorem ContinuousLinearMap.integral_comp_L1_comm +/- theorem ContinuousLinearMap.integral_comp_comm' +/- theorem ContinuousLinearMap.integral_comp_comm + theorem ContinuousLinearMap.integral_comp_commSL +/- theorem ContinuousLinearMap.setIntegral_compLp 2025-09-23 12:05:22 d181a58 feat(MeasureTheory/Integral/IntegrableOn): add `IntegrableOn.of_inter_support` (#29895) This lemma helps proving integrability in the presence of extra information about the support of a function (e.g. compactly supported / finitely supported). From the Carleson project. ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Integral/IntegrableOn.lean + theorem MeasureTheory.IntegrableOn.of_inter_support 2025-09-23 12:05:20 a3f0fd5 feat(MeasureTheory): Convolution of `dirac`s (#29826) Add `dirac_mconv_dirac` which gives a formula for the convolution of `dirac`s. (I made it a `simp` lemma because I think its a good `simp` lemma but not totally sure). Also cleaned up the rest of the file by removing unnecessary uses of `Measure` prefix (since the Measure namespace is open). ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Group/Convolution.lean + theorem MeasureTheory.Measure.dirac_mconv_dirac 2025-09-23 12:05:17 45960ed feat(MeasureTheory): Add `mconv_smul_left` and `mconv_smul_right` (#29825) ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Group/Convolution.lean + theorem MeasureTheory.Measure.mconv_smul_left Modified Mathlib/MeasureTheory/Measure/WithDensity.lean + theorem MeasureTheory.Measure.mconv_smul_right 2025-09-23 11:51:56 62b471f feat(ProbabilityTheory): Add `moment_def` and `moment_one` (#29902) Add `moment_def` to make it easier to go from `μ[X ^ p]` to `moment X p μ`. Also added `moment_one` as a special case. This is useful for stating a lemma for the mean and variance of a random variable as a corollary of the moments if all of the moments can be proved at once (but one could use `moment_def` instead if this lemma is deemed unnecessary). ESTIMATED CHANGES Modified Mathlib/Probability/Moments/Basic.lean + theorem ProbabilityTheory.moment_def + theorem ProbabilityTheory.moment_one 2025-09-23 10:09:16 2d15b8f chore: update Mathlib dependencies 2025-09-23 (#29905) This PR updates the Mathlib dependencies. ESTIMATED CHANGES Modified lake-manifest.json 2025-09-23 06:31:48 a9a54f8 feat: the complete graph is connected iff nonempty (#29901) Also fix the names of a bunch of lemmas. From the ProofBench workshop ESTIMATED CHANGES Modified Mathlib/Combinatorics/SimpleGraph/Connectivity/Connected.lean - theorem SimpleGraph.bot_not_connected - theorem SimpleGraph.bot_not_preconnected - theorem SimpleGraph.bot_preconnected - theorem SimpleGraph.bot_preconnected_iff_subsingleton + theorem SimpleGraph.connected_bot_iff + theorem SimpleGraph.connected_top + theorem SimpleGraph.connected_top_iff + theorem SimpleGraph.not_connected_bot + theorem SimpleGraph.not_preconnected_bot + theorem SimpleGraph.preconnected_bot + theorem SimpleGraph.preconnected_bot_iff_subsingleton + theorem SimpleGraph.preconnected_top + theorem SimpleGraph.reachable_top - theorem SimpleGraph.top_connected - theorem SimpleGraph.top_preconnected Modified Mathlib/Combinatorics/SimpleGraph/Diam.lean Modified Mathlib/Combinatorics/SimpleGraph/Maps.lean + theorem SimpleGraph.comap_bot + theorem SimpleGraph.comap_top + theorem SimpleGraph.induce_top 2025-09-23 06:31:46 fb1c359 feat(NumberTheory/ModularForms): integrand for Petersson product (#29640) Define integrand in Petersson product pairing of modular forms, & show its invariance property ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Analysis/Complex/Basic.lean Modified Mathlib/Analysis/Complex/UpperHalfPlane/MoebiusAction.lean + theorem UpperHalfPlane.σ_conj Modified Mathlib/Analysis/Complex/UpperHalfPlane/Topology.lean Modified Mathlib/NumberTheory/ModularForms/Basic.lean + theorem ModularFormClass.continuous Added Mathlib/NumberTheory/ModularForms/Petersson.lean + theorem SlashInvariantFormClass.petersson_smul + theorem UpperHalfPlane.petersson_continuous + theorem UpperHalfPlane.petersson_slash + theorem UpperHalfPlane.petersson_slash_SL 2025-09-23 05:58:26 5d37eb6 feat(Data/Set/Card): every finset of card less than `ENat.card α` doesn't contain some element (#29900) From the ProofBench workshop ESTIMATED CHANGES Modified Mathlib/Data/Set/Card.lean + theorem Finset.exists_not_mem_of_card_lt_enatCard +/- theorem Function.Embedding.encard_le +/- theorem Set.encard_congr +/- theorem Set.encard_univ +/- theorem Set.encard_univ_coe Modified Mathlib/MeasureTheory/Measure/Count.lean Modified Mathlib/SetTheory/Cardinal/Finite.lean + theorem ENat.card_le_card_of_injective + theorem ENat.card_le_one + theorem ENat.card_pos + theorem ENat.one_lt_card 2025-09-23 03:07:06 79b52d2 feat: extensible `push` and `pull` tactics (#21965) This PR defines the `push` and `pull` tactics, and makes `push_neg` a macro for `push Not`. The tactics are also available in `conv` mode. For tagging, there is only the `@[push]` attribute, which adds the reverse rewrite for the `pull` tactic when relevant. In the future, we may also need a separate `@[pull X]` attribute for pulling `X`. Thanks to this change, we will be able to make `push_neg` into a more powerful tactic by tagging more lemmas. It also means that about 60 files now don't need to import `LinearOrder`/`PartialOrder`. This will be especially useful when we get the `@[to_dual]` attribute. This work originally started in #21769. There is now the follow up PR #29000 which adds `push` tags and tests for them. The `@[push]` attribute is defined in `Mathlib.Tactic.Push.Attr` and the main implementation of `push` and `pull` is in `Mathlib.Tactic.Push`. Some proofs need to be fixed because the new simp-based `push_neg` can see through more reducible definitions. Zulip conversation: [#mathlib4 > I made an extensible `push` tactic generalizing `push_neg`](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/I.20made.20an.20extensible.20.60push.60.20tactic.20generalizing.20.60push_neg.60) closes #21841 ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Lie/Weights/Killing.lean Modified Mathlib/Combinatorics/SimpleGraph/Coloring.lean Modified Mathlib/Combinatorics/SimpleGraph/Extremal/Basic.lean Modified Mathlib/Data/Nat/Basic.lean Modified Mathlib/Data/Set/Basic.lean + theorem Set.nonempty_iff_empty_ne +/- theorem Set.not_nonempty_iff_eq_empty Modified Mathlib/Lean/Expr/Basic.lean Modified Mathlib/Order/Defs/LinearOrder.lean +/- theorem not_le +/- theorem not_lt Modified Mathlib/RingTheory/AlgebraicIndependent/TranscendenceBasis.lean Modified Mathlib/RingTheory/HahnSeries/Lex.lean Modified Mathlib/RingTheory/Multiplicity.lean Modified Mathlib/Tactic.lean Modified Mathlib/Tactic/Push.lean + def Mathlib.Tactic.Push.elabDischarger + def Mathlib.Tactic.Push.elabHead + def Mathlib.Tactic.Push.elabPushTree + theorem Mathlib.Tactic.Push.not_and_eq + theorem Mathlib.Tactic.Push.not_and_or_eq + theorem Mathlib.Tactic.Push.not_exists + theorem Mathlib.Tactic.Push.not_forall_eq + theorem Mathlib.Tactic.Push.not_iff + def Mathlib.Tactic.Push.pullCore + def Mathlib.Tactic.Push.pullStep + def Mathlib.Tactic.Push.pushCore + def Mathlib.Tactic.Push.pushSimpConfig + def Mathlib.Tactic.Push.pushStep + def Mathlib.Tactic.Push.resolvePushId? - def Mathlib.Tactic.PushNeg.elabPushNegConv - theorem Mathlib.Tactic.PushNeg.empty_ne_eq_nonempty - theorem Mathlib.Tactic.PushNeg.ne_empty_eq_nonempty - theorem Mathlib.Tactic.PushNeg.not_and_eq - theorem Mathlib.Tactic.PushNeg.not_and_or_eq - theorem Mathlib.Tactic.PushNeg.not_exists_eq - theorem Mathlib.Tactic.PushNeg.not_forall_eq - theorem Mathlib.Tactic.PushNeg.not_ge_eq - theorem Mathlib.Tactic.PushNeg.not_gt_eq - theorem Mathlib.Tactic.PushNeg.not_iff - theorem Mathlib.Tactic.PushNeg.not_implies_eq - theorem Mathlib.Tactic.PushNeg.not_le_eq - theorem Mathlib.Tactic.PushNeg.not_lt_eq - theorem Mathlib.Tactic.PushNeg.not_ne_eq - theorem Mathlib.Tactic.PushNeg.not_nonempty_eq - theorem Mathlib.Tactic.PushNeg.not_not_eq - theorem Mathlib.Tactic.PushNeg.not_or_eq - def Mathlib.Tactic.PushNeg.pushNegCore - def Mathlib.Tactic.PushNeg.transformNegationStep Added Mathlib/Tactic/Push/Attr.lean + def Mathlib.Tactic.Push.Head.ofExpr? + def Mathlib.Tactic.Push.Head.toString + inductive Mathlib.Tactic.Push.Head + def Mathlib.Tactic.Push.isPullThm Modified Mathlib/Topology/Algebra/IsUniformGroup/Basic.lean Added MathlibTest/push.lean Modified MathlibTest/push_neg.lean Modified scripts/noshake.json 2025-09-23 00:04:53 bde7e02 fix(Cache): misleading ProofWidgets fetch failure (#29886) This PR fixes an issue with `lake cache get` where it would incorrectly appear that cache failed to ProofWidgets. This was caused by cache printing output of the `lake build --no-build` invocation used to check whether a fetch was necessary. This also improves the output on a real failure by the running the `lake build` command to fetch the release with a `-v` and only printing the output on a failure. ESTIMATED CHANGES Modified Cache/Requests.lean 2025-09-22 18:40:24 f914ea5 feat: range of the continuous functional calculus (#29561) This shows that the range of the continuous functional calculus is the elemental star algebra generated by the given element. In addition, we show that `b` commutes with `cfc f a` whenever it commutes with both `a` and `star a`. When `a` is selfadjoint, we can drop the latter hypothesis. Finally, we also show that the product of nonnegative elements is nonnegative if they commute. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Analysis/CStarAlgebra/ApproximateUnit.lean Added Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Commute.lean Modified Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Continuity.lean Modified Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Instances.lean + theorem Commute.mul_nonneg + theorem cfc_complex_eq_real +/- theorem cfc_nnreal_eq_real + theorem cfc_real_eq_nnreal + theorem cfcₙ_complex_eq_real +/- theorem cfcₙ_nnreal_eq_real + theorem cfcₙ_real_eq_nnreal Modified Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Isometric.lean Modified Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/NonUnital.lean + theorem range_cfcₙ_eq_range_cfcₙHom Modified Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Order.lean Added Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Range.lean + theorem cfcHom_apply_mem_elemental + theorem cfc_apply_mem_elemental + theorem cfcₙHom_apply_mem_elemental + theorem cfcₙ_apply_mem_elemental + theorem range_cfc + theorem range_cfcHom + theorem range_cfc_nnreal + theorem range_cfc_nnreal_eq_image_cfc_real + theorem range_cfcₙ + theorem range_cfcₙHom + theorem range_cfcₙ_nnreal + theorem range_cfcₙ_nnreal_eq_image_cfcₙ_real Modified Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Unital.lean + theorem range_cfc_eq_range_cfcHom Modified Mathlib/Analysis/SpecialFunctions/ContinuousFunctionalCalculus/Rpow/Basic.lean Modified Mathlib/Topology/ContinuousMap/StoneWeierstrass.lean + theorem ContinuousMap.elemental_id_eq_top + theorem ContinuousMapZero.elemental_eq_top 2025-09-22 17:31:22 eb10b35 feat(CategoryTheory/Sites): jointly surjective precoverage (#29883) We define the precoverage on `Type u` of jointly surjective families. This precoverage can be pulled-back along a (forgetful) functor from `C` to `Type u` to obtain a precoverage on `C`. We show that the obtained precoverage is stable under base change if the pullback comparison map is surjective. This will be used to define the jointly surjective precoverage on the category of schemes. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Limits/Types/Pullbacks.lean + theorem CategoryTheory.Limits.Types.range_fst_of_isPullback + theorem CategoryTheory.Limits.Types.range_pullbackFst + theorem CategoryTheory.Limits.Types.range_pullbackSnd + theorem CategoryTheory.Limits.Types.range_snd_of_isPullback Added Mathlib/CategoryTheory/Sites/JointlySurjective.lean + theorem CategoryTheory.Presieve.mem_comap_jointlySurjectivePrecoverage_iff + def CategoryTheory.Types.jointlySurjectivePrecoverage + theorem CategoryTheory.Types.mem_jointlySurjectivePrecoverage_iff + theorem CategoryTheory.Types.ofArrows_mem_jointlySurjectivePrecoverage_iff + theorem CategoryTheory.Types.singleton_mem_jointlySurjectivePrecoverage_iff + theorem CategoryTheory.isStableUnderBaseChange_comap_jointlySurjectivePrecoverage Modified Mathlib/CategoryTheory/Sites/Precoverage.lean + theorem CategoryTheory.Precoverage.comap_id Modified Mathlib/CategoryTheory/Sites/Sieves.lean + theorem CategoryTheory.Presieve.map_id 2025-09-22 16:57:42 44b42c1 feat(Topology/Constructions): `piMap` is inducing / embedding / etc (#29648) Assorted topological results about Pi types, matrices, and matrix groups: - An arbitrary product of topologically inducing maps is inducing, and similarly for embeddings, etc. - As a special case, inducing / embedding / etc maps of topological rings induce maps with the same property on matrix spaces. - When R is a topological ring and `n` a fintype, `SL n R` (with the topology it inherits from `Matrix n n R`) is a topological group, and its topology coincides with the subspace topology from `GL n R`. - The image of `SL n Z` in `GL n R` is discrete. ESTIMATED CHANGES Modified Mathlib/Analysis/Normed/Algebra/MatrixExponential.lean Modified Mathlib/LinearAlgebra/Matrix/GeneralLinearGroup/Defs.lean Modified Mathlib/NumberTheory/ModularForms/ArithmeticSubgroups.lean + theorem Matrix.SpecialLinearGroup.isClosedEmbedding_mapGLInt Modified Mathlib/Order/Filter/Pi.lean + theorem Filter.pi_comap Modified Mathlib/Topology/Algebra/Group/Basic.lean Modified Mathlib/Topology/Constructions.lean Modified Mathlib/Topology/Instances/Matrix.lean + theorem Matrix.SpecialLinearGroup.continuous_toGL + theorem Matrix.SpecialLinearGroup.isClosedEmbedding_toGL + theorem Matrix.SpecialLinearGroup.isEmbedding_mapGL + theorem Matrix.SpecialLinearGroup.isEmbedding_toGL + theorem Matrix.SpecialLinearGroup.isInducing_mapGL + theorem Matrix.SpecialLinearGroup.isInducing_toGL + theorem Matrix.SpecialLinearGroup.range_toGL + theorem Topology.IsClosedEmbedding.matrix_map + theorem Topology.IsEmbedding.matrix_map + theorem Topology.IsInducing.matrix_map + theorem Topology.IsOpenEmbedding.matrix_map 2025-09-22 16:24:56 7f8d282 feat(Ring/DedekindDomain): formula for the splitting of prime ideals in an extension (#27105) This PR just puts together all the results that were already there to deduce: ```lean map (algebraMap S R) p = ∏ P ∈ p.primesOver R, P ^ p.ramificationIdx (algebraMap S R) P ``` for `p` a maximal ideal of a ring `S` and `R` an extension of `S` that is a Dedekind ring. Note. There is a significant import increase in the file `RingTheory.DedekindDomain.Factorization`. However, this file is almost a leaf file so this increase only affects a limited number of files. If the increase is too big, a new file, say `RingTheory.DedekindDomain.PrimeSplitting`, can be added instead. ESTIMATED CHANGES Modified Mathlib/NumberTheory/RamificationInertia/Basic.lean Modified Mathlib/RingTheory/DedekindDomain/Factorization.lean + theorem Ideal.map_algebraMap_eq_finset_prod_pow + theorem IsDedekindDomain.HeightOneSpectrum.maxPowDividing_eq_pow_multiset_count Modified Mathlib/RingTheory/DedekindDomain/Ideal/Basic.lean + theorem Ideal.liesOver_iff_dvd_map Modified Mathlib/RingTheory/DedekindDomain/Ideal/Lemmas.lean + theorem IsDedekindDomain.HeightOneSpectrum.equivPrimesOver_apply Modified Mathlib/RingTheory/Ideal/Operations.lean + theorem Ideal.pow_eq_top_iff Modified Mathlib/RingTheory/Ideal/Over.lean + theorem Ideal.ne_bot_of_mem_primesOver 2025-09-22 15:52:45 ea6c112 feat: some lemmas about closed maps (#29144) This is a compilation of (1) some observations by @PatrickMassot and (2) some lemmas written by @AntoineChambert-Loir and I for a specific application, which turned out to have a nice proof using (1). The most interesting results are: - `isClosedMap_iff_kernImage`: a map is closed iff the [Set.kernImage](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Data/Set/Operations.html#Set.kernImage) of any ***open set*** is open (+ similar result for open maps) - `isClosedMap_iff_comap_nhds_le`: as a consequence, the map `f` is closed iff for any `y`, one has `comap f (𝓝 y) ≤ 𝓝ˢ (f ⁻¹' {y})` (with equality if `f` is also continuous) - `IsClosedMap.eventually_nhds_fiber` is a restatement of this in `eventually` terms: assuming `f` is closed, if some property holds in the neighborhood of the fiber at `y₀`, then it holds on the fiber at `y` for all `y` close enough to `y₀`. ESTIMATED CHANGES Modified Mathlib/Topology/Maps/Basic.lean + theorem Topology.IsInducing.IsClosedMap.comap_nhdsSet_eq + theorem Topology.IsInducing.IsClosedMap.comap_nhds_eq + theorem Topology.IsInducing.IsClosedMap.eventually_nhds_fiber + theorem Topology.IsInducing.IsClosedMap.frequently_nhds_fiber + theorem Topology.IsInducing.IsOpenMap.map_nhdsSet_eq + theorem Topology.IsInducing.IsOpenMap.map_nhds_eq +/- theorem Topology.IsInducing.IsOpenMap.nhds_le + theorem Topology.IsInducing.isClosedMap_iff_comap_nhdsSet_le + theorem Topology.IsInducing.isClosedMap_iff_comap_nhds_le + theorem Topology.IsInducing.isClosedMap_iff_kernImage + theorem Topology.IsInducing.isClosedMap_iff_kernImage_interior + theorem Topology.IsInducing.isOpenMap_iff_closure_kernImage + theorem Topology.IsInducing.isOpenMap_iff_image_interior - theorem Topology.IsInducing.isOpenMap_iff_interior + theorem Topology.IsInducing.isOpenMap_iff_kernImage 2025-09-22 15:22:11 9c678d6 feat(LinearAlgebra/AffineSpace/Ordered): add `lineMap_le_lineMap_iff_of_lt'` (#27257) I only need `lineMap_le_lineMap_iff_of_lt'`. The other lemmas are added for completeness. ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/AffineSpace/Ordered.lean + theorem left_le_lineMap_iff_nonneg + theorem left_lt_lineMap_iff_pos + theorem lineMap_le_left_iff_nonpos + theorem lineMap_le_lineMap_iff_of_lt' + theorem lineMap_le_right_iff_le_one + theorem lineMap_lt_left_iff_neg + theorem lineMap_lt_lineMap_iff_of_lt' + theorem lineMap_lt_right_iff_lt_one +/- theorem midpoint_le_midpoint + theorem right_le_lineMap_iff_one_le + theorem right_lt_lineMap_iff_one_lt 2025-09-22 15:04:19 54ccf1e feat(Algebra/Homology): the derived category of a linear abelian category is linear (#26031) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Homology/DerivedCategory/Linear.lean Modified Mathlib/Algebra/Homology/HomotopyCategory/Shift.lean Modified Mathlib/Algebra/Homology/HomotopyCategory/SingleFunctors.lean 2025-09-22 13:30:02 eb83b6d chore(Analysis/Normed/Completeness): Generalize extend to uniform groups (#29869) Since the continuous linear maps are defined for topological vector spaces, we can generalize `ContinuousLinearMap.extend` so that the dense subspace is not a normed space anymore. ESTIMATED CHANGES Modified Mathlib/Analysis/Normed/Operator/Completeness.lean 2025-09-22 13:30:00 5c1fe16 feat(ConstMulAction): prove `set_smul_closure_subset` (#29859) Cherry-picked from #24163. It is useful for the proof of `tangentConeAt_closure` for the pending new definition of `tangentConeAt`. ESTIMATED CHANGES Modified Mathlib/Topology/Algebra/ConstMulAction.lean + theorem set_smul_closure_subset 2025-09-22 13:29:58 b4c2157 chore(MeasureTheory): Semilinearize integrable_comp of CLM and CLE (#29852) ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Function/L1Space/Integrable.lean +/- theorem ContinuousLinearEquiv.integrable_comp_iff +/- theorem ContinuousLinearMap.integrable_comp +/- theorem LinearIsometryEquiv.integrable_comp_iff +/- theorem MeasureTheory.Integrable.apply_continuousLinearMap 2025-09-22 13:29:56 b8af118 feat(Data/Matrix): add `vecMul_fromRows` and `fromCols_mulVec` (#29784) We have [`Matrix.fromBlocks_mulVec`](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Data/Matrix/Block.html#Matrix.fromBlocks_mulVec) and [`Matrix.vecMul_fromBlocks`](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Data/Matrix/Block.html#Matrix.vecMul_fromBlocks) but not the `fromRows`/`fromCols` version. I find those helpful in #27414. ESTIMATED CHANGES Modified Mathlib/Data/Matrix/ColumnRowPartitioned.lean + theorem Matrix.fromCols_mulVec + theorem Matrix.vecMul_fromRows 2025-09-22 13:29:55 bfeb1b0 chore(InnerProductSpace/OfNorm): golf (#29783) Golf a lemma from the proof of the Jordan-von Neumann theorem (parallelogram law characterization for Hilbert spaces). ESTIMATED CHANGES Modified Mathlib/Analysis/InnerProductSpace/OfNorm.lean 2025-09-22 13:29:53 76eb9c0 feat: restricted power series form a ring (#26089) We define restricted power series over a normed ring R, and show they form a ring when R has the ultrametric property This is an update of [#23338](https://github.com/leanprover-community/mathlib4/pull/23338) to meet new expectations of PRs from forks. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/RingTheory/PowerSeries/Restricted.lean + theorem PowerSeries.IsRestricted.C + theorem PowerSeries.IsRestricted.add + def PowerSeries.IsRestricted.convergenceSet + theorem PowerSeries.IsRestricted.convergenceSet_BddAbove + theorem PowerSeries.IsRestricted.isRestricted_iff + theorem PowerSeries.IsRestricted.isRestricted_iff_abs + theorem PowerSeries.IsRestricted.monomial + theorem PowerSeries.IsRestricted.mul + theorem PowerSeries.IsRestricted.neg + theorem PowerSeries.IsRestricted.one + theorem PowerSeries.IsRestricted.smul + theorem PowerSeries.IsRestricted.zero + def PowerSeries.IsRestricted Modified scripts/noshake.json 2025-09-22 12:37:12 11bbf0d feat: grind annotations for `Finset.sdiff` (#29427) Note that `grind` often will not instantiate equational lemmas that are not fully applied, so we need to split some theorems into versions for `simp` and versions for `grind`. Moves: - sup_eq_union -> sup_eq_union' - inf_eq_inter -> inf_eq_inter' ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Limits/Bicones.lean Modified Mathlib/Combinatorics/SetFamily/Compression/UV.lean Modified Mathlib/Data/Finset/Card.lean Modified Mathlib/Data/Finset/Empty.lean Modified Mathlib/Data/Finset/Fold.lean Modified Mathlib/Data/Finset/Image.lean Modified Mathlib/Data/Finset/Insert.lean + theorem Finset.nontrivial_def Modified Mathlib/Data/Finset/Lattice/Basic.lean + theorem Finset.inf_eq_inter' +/- theorem Finset.inf_eq_inter + theorem Finset.sup_eq_union' +/- theorem Finset.sup_eq_union Modified Mathlib/Data/Finset/SDiff.lean +/- theorem Finset.sdiff_ssubset +/- theorem Finset.sdiff_subset_sdiff +/- theorem Finset.sdiff_union_of_subset +/- theorem Finset.union_sdiff_of_subset Modified scripts/noshake.json 2025-09-22 11:55:23 baf3075 chore(Algebra/Category/Grp): don't import `AddCircle` in `Injective.lean` (#29811) The file `Grp/Injective.lean` contained an injectivity result for `AddCircle`, but this is immediately derived from existing instances. It used to have a much more complex proof. Since `AddCircle` brings with it a whole bunch of analysis and topology imports that we don't need for this algebraic theory, this saves us a couple hundred transitive imports. Also, clean up the module docs to reflect the current situation. I have moved the instance to a test file, to ensure it remains accessible even after future refactors. This import was spotted in the same PR run as #29808, but does not change the top-level directory import structure in the same way. ESTIMATED CHANGES Modified Mathlib/Algebra/Category/Grp/EnoughInjectives.lean Modified Mathlib/Algebra/Category/Grp/Injective.lean Added MathlibTest/Algebra/Category/Grp/Injective.lean 2025-09-22 11:40:58 183704f feat(Tactic/Ring): handle `ℤ`-scalar multiplication in the ring tactic (#29782) `ring` handles ℕ-scalar multiplication; it seems like an accidental omission that it doesn't handle ℤ-scalar multiplication. This PR adds that feature. Everything is directly adapted from the ℕ case. A notable use case for this feature: often `abel_nf` output contains ℤ-scalar multiplication, so it's important that this can be handled if needed in subsequent `ring` calls. ESTIMATED CHANGES Modified Mathlib/Tactic/Ring/Basic.lean + def Mathlib.Tactic.Ring.Cache.int + def Mathlib.Tactic.Ring.evalZSMul + def Mathlib.Tactic.Ring.instCommSemiringInt + theorem Mathlib.Tactic.Ring.intCast_add + theorem Mathlib.Tactic.Ring.intCast_mul + theorem Mathlib.Tactic.Ring.intCast_negOfNat_Int + theorem Mathlib.Tactic.Ring.intCast_zero + theorem Mathlib.Tactic.Ring.natCast_int + theorem Mathlib.Tactic.Ring.smul_eq_intCast + theorem Mathlib.Tactic.Ring.smul_int + def Mathlib.Tactic.Ring.sℤ + theorem Mathlib.Tactic.Ring.zsmul_congr Modified Mathlib/Topology/Category/Profinite/Nobeling/Span.lean Modified MathlibTest/ring.lean 2025-09-22 11:27:26 ac57c6e feat(NumberTheory/ModularForms): tweak def of slash-action (#29804) This PR adjusts the definition of the weight k slash action on modular forms to include an absolute-value sign, which makes some formulae slightly nicer later on. It also removes some junk accidentally left in the definition of a `SlashAction`. The definition originally required it to have some linearity property, which was removed in a PR several months ago; but the constructor still takes a useless extra type argument `γ` (originally, the ring that the action is linear over) which should have been removed in that PR but wasn't. ESTIMATED CHANGES Modified Mathlib/NumberTheory/ModularForms/Basic.lean +/- def UpperHalfPlane.J +/- theorem UpperHalfPlane.denom_J +/- theorem UpperHalfPlane.val_J Modified Mathlib/NumberTheory/ModularForms/SlashActions.lean - def ModularForm.slash +/- theorem SlashAction.neg_slash +/- def monoidHomSlashAction 2025-09-21 21:36:54 432a037 docs(Analysis/Calculus/Gradient/Basic): decapitalize (#29847) ESTIMATED CHANGES Modified Mathlib/Analysis/Calculus/Gradient/Basic.lean 2025-09-21 21:36:52 24d97c4 chore(Data/Nat/Choose): add le-version of a bound and fix name of the lt-version (#29821) ESTIMATED CHANGES Modified Mathlib/Data/Nat/Choose/Bounds.lean +/- theorem Nat.choose_le_two_pow + theorem Nat.choose_lt_two_pow 2025-09-21 21:36:51 69e74d5 chore(RingTheory/AdicValuation): golf using WithZero.log (#27108) with helper lemma of how `log` preserves order ESTIMATED CHANGES Modified Mathlib/Algebra/Order/GroupWithZero/Canonical.lean + theorem WithZero.le_exp_log Modified Mathlib/RingTheory/DedekindDomain/AdicValuation.lean 2025-09-21 21:23:43 61d33a4 feat(Geometry/Euclidean/Sphere/Power): use side condition `p ∈ line[ℝ, a, b]` (#29344) This PR changes the side condition used in theorems about `Sphere.power` to be `p ∈ line[ℝ, a, b]`. This is symmetric in `a` and `b`, and more general than the current condition. TODO (in this PR?): add some basic lemmas about `p ∈ line[ℝ, a, b]`. TODO (in another PR): prove the power theorems about `Sphere.secondInter`, which is more general in the sense that it also includes the case where `a` and `b` coincide, and then `p` is on the tangent line. ESTIMATED CHANGES Modified Mathlib/Geometry/Euclidean/Sphere/Power.lean +/- theorem EuclideanGeometry.mul_dist_eq_abs_sub_sq_dist +/- theorem InnerProductGeometry.mul_norm_eq_abs_sub_sq_norm 2025-09-21 20:41:25 103f096 feat(Algebra): add `mem_closure_iff_of_fintype` and `mem_closure_finset'` (#29793) `mem_closure_iff_of_fintype` is a corollary of `mem_closure_range_iff_of_fintype`, when we have a `s : Set M` with a `Fintype s` instance on it. `mem_closure_finset'` is a special case of `mem_closure_iff_of_fintype` when we have a `Finset`. Also add `mem_span_iff_of_fintype` for `Submodule`. Thanks for the [discussion in Zulip](https://leanprover.zulipchat.com/#narrow/channel/217875-Is-there-code-for-X.3F/topic/.60Finset.2Euniv_eq_attach.60.20for.20.60Set.2EtoFinset.60). ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Subgroup/Finsupp.lean + theorem Subgroup.mem_closure_iff_of_fintype Modified Mathlib/Algebra/Group/Submonoid/Finsupp.lean + theorem Submonoid.mem_closure_finset' + theorem Submonoid.mem_closure_iff_of_fintype Modified Mathlib/LinearAlgebra/Finsupp/LinearCombination.lean + theorem Submodule.mem_span_iff_of_fintype 2025-09-21 19:07:44 c822477 feat(Topology/Maps): `IsOpenMap` and `ClusterPt` (#23240) ESTIMATED CHANGES Modified Mathlib/Topology/ClusterPt.lean + theorem mem_interior_iff_not_clusterPt_compl Modified Mathlib/Topology/Maps/Basic.lean + theorem Topology.IsInducing.IsOpenMap.clusterPt_comap + theorem Topology.IsInducing.isOpenMap_iff_clusterPt_comap 2025-09-21 18:44:25 2cf26da feat: isomorphic monoid objects have isomorphic hom monoids (#29830) From Toric ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Monoidal/Cartesian/Mon_.lean + def Hom.mulEquivCongrRight 2025-09-21 18:06:46 409aebc chore: reduce `open Fin.NatCast` (#29840) Removing the type cast to `Fin` allowed me to golf `IsPathConnected.exists_path_through_family`. ESTIMATED CHANGES Modified Mathlib/Topology/Connected/PathConnected.lean Modified Mathlib/Topology/Path.lean + theorem Path.bijective_cast + theorem Path.exists_congr + theorem Path.source_mem_range + theorem Path.target_mem_range 2025-09-21 16:51:52 b599079 feat(Analysis/Convex/Between): interior of a 1-simplex (#29418) Add lemmas relating the `interior` or `closedInterior` of a 1-simplex to betweenness. ESTIMATED CHANGES Modified Mathlib/Analysis/Convex/Between.lean + theorem Affine.Simplex.closedInterior_eq_affineSegment + theorem Affine.Simplex.closedInterior_face_eq_affineSegment + theorem Affine.Simplex.interior_eq_image_Ioo + theorem Affine.Simplex.mem_closedInterior_face_iff_wbtw + theorem Affine.Simplex.mem_closedInterior_iff_wbtw + theorem Affine.Simplex.mem_interior_face_iff_sbtw + theorem Affine.Simplex.mem_interior_iff_sbtw 2025-09-21 14:45:04 2b6dfe1 fix(scripts/declarations_diff.sh): `protected alias ⟨d1, d2⟩ := d` isn't splitted correctly (#29838) In #29836, there are no declaration diffs, but CI shows declarations diff, because the scripts can't split `protected alias ⟨d1, d2⟩ := d` correctly. This can be fixed by swapping scripts. ESTIMATED CHANGES Modified scripts/declarations_diff.sh 2025-09-21 12:54:20 5de5f94 feat(CategoryTheory): define internally projective objects (#29822) This PR defines internal projectivity and proves that a retract of an internally projective object is internally projective ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/CategoryTheory/Functor/EpiMono.lean + theorem CategoryTheory.Functor.preservesEpimorphisms.ofRetract + theorem CategoryTheory.Functor.preservesEpimorphisms.of_natTrans + theorem CategoryTheory.Functor.preservesMonomorphisms.ofRetract + theorem CategoryTheory.Functor.preservesMonomorphisms.of_natTrans Added Mathlib/CategoryTheory/ObjectProperty/Retract.lean + theorem CategoryTheory.ObjectProperty.le_retractClosure + theorem CategoryTheory.ObjectProperty.monotone_retractClosure + theorem CategoryTheory.ObjectProperty.prop_of_retract + theorem CategoryTheory.ObjectProperty.prop_retractClosure + theorem CategoryTheory.ObjectProperty.prop_retractClosure_iff + def CategoryTheory.ObjectProperty.retractClosure + theorem CategoryTheory.ObjectProperty.retractClosure_eq_self + theorem CategoryTheory.ObjectProperty.retractClosure_le_iff Added Mathlib/CategoryTheory/Preadditive/Projective/Internal.lean + theorem CategoryTheory.InternallyProjective.ofRetract + def CategoryTheory.isInternallyProjective Modified Mathlib/CategoryTheory/Retract.lean + def CategoryTheory.Retract.op 2025-09-21 11:22:34 2a85676 feat: `f : α →+*o α` is the identity (#29828) ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Archimedean/Hom.lean + theorem OrderRingHom.apply_eq_self + theorem OrderRingHom.eq_id + theorem OrderRingIso.apply_eq_self + theorem OrderRingIso.eq_refl 2025-09-21 11:22:32 a24a7fb feat(Order/Filter): Tendsto Finset.powerset atTop atTop (#29794) ESTIMATED CHANGES Modified Mathlib/Order/Filter/AtTopBot/Finset.lean + theorem Filter.tendsto_finset_powerset_atTop_atTop 2025-09-21 10:40:58 270cdd3 chore: rename `mul_lt_mul_left`/`mul_lt_mul_right` to `mul_lt_mul_iff_right₀`/`mul_lt_mul_iff_left₀` (#29295) Follow up to #28645 ESTIMATED CHANGES Modified Archive/Imo/Imo2011Q3.lean Modified Counterexamples/CanonicallyOrderedCommSemiringTwoMul.lean - theorem Counterexample.Nxzmod2.mul_lt_mul_of_pos_left - theorem Counterexample.Nxzmod2.mul_lt_mul_of_pos_right Modified Mathlib/Algebra/Order/Archimedean/Basic.lean Modified Mathlib/Algebra/Order/GroupWithZero/Unbundled/Basic.lean Modified Mathlib/Algebra/Order/GroupWithZero/Unbundled/Defs.lean + theorem mul_lt_mul_iff_left₀ + theorem mul_lt_mul_iff_right₀ - theorem mul_lt_mul_left - theorem mul_lt_mul_right Modified Mathlib/Algebra/Order/GroupWithZero/WithZero.lean Modified Mathlib/Algebra/Polynomial/Eval/Degree.lean Modified Mathlib/Analysis/BoxIntegral/UnitPartition.lean Modified Mathlib/Analysis/Convex/Slope.lean Modified Mathlib/Analysis/Fourier/RiemannLebesgueLemma.lean Modified Mathlib/Analysis/Normed/Group/AddCircle.lean Modified Mathlib/Analysis/Normed/Unbundled/SpectralNorm.lean Modified Mathlib/Analysis/Real/Cardinality.lean Modified Mathlib/Analysis/Seminorm.lean Modified Mathlib/Analysis/SpecialFunctions/BinaryEntropy.lean Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Arctan.lean Modified Mathlib/Combinatorics/SimpleGraph/Regularity/Lemma.lean Modified Mathlib/Computability/Ackermann.lean Modified Mathlib/Data/NNReal/Defs.lean Modified Mathlib/Data/Nat/Choose/Central.lean Modified Mathlib/Data/Nat/Totient.lean Modified Mathlib/Data/Ordmap/Invariants.lean Modified Mathlib/Data/Ordmap/Ordset.lean Modified Mathlib/Data/ZMod/ValMinAbs.lean Modified Mathlib/FieldTheory/ChevalleyWarning.lean Modified Mathlib/GroupTheory/Perm/Cycle/Type.lean Modified Mathlib/MeasureTheory/Covering/Vitali.lean Modified Mathlib/MeasureTheory/Integral/CircleIntegral.lean Modified Mathlib/MeasureTheory/Measure/Decomposition/Lebesgue.lean Modified Mathlib/MeasureTheory/Measure/Hausdorff.lean Modified Mathlib/MeasureTheory/Measure/SeparableMeasure.lean Modified Mathlib/NumberTheory/Bertrand.lean Modified Mathlib/NumberTheory/DiophantineApproximation/Basic.lean Modified Mathlib/SetTheory/Ordinal/Arithmetic.lean - theorem Ordinal.mul_lt_mul_of_pos_left Modified Mathlib/SetTheory/Ordinal/Exponential.lean Modified Mathlib/SetTheory/Ordinal/FixedPoint.lean Modified Mathlib/SetTheory/Ordinal/Notation.lean Modified Mathlib/SetTheory/Ordinal/Principal.lean Modified Mathlib/Tactic/Bound.lean - theorem Mathlib.Tactic.Bound.mul_lt_mul_left_of_pos_of_lt - theorem Mathlib.Tactic.Bound.mul_lt_mul_right_of_pos_of_lt Modified Mathlib/Tactic/CancelDenoms/Core.lean Modified Mathlib/Topology/Algebra/Monoid.lean +/- theorem Filter.TendstoNhdsWithinIio.const_mul +/- theorem Filter.TendstoNhdsWithinIio.mul_const +/- theorem Filter.TendstoNhdsWithinIoi.const_mul +/- theorem Filter.TendstoNhdsWithinIoi.mul_const Modified Mathlib/Topology/MetricSpace/Contracting.lean Modified Mathlib/Topology/MetricSpace/Dilation.lean Modified Mathlib/Topology/MetricSpace/Lipschitz.lean 2025-09-21 09:51:12 91a6a39 chore: golf by `simp [field]` and `grind`, fix docstring typo (#29807) ESTIMATED CHANGES Modified Mathlib/Analysis/Normed/Operator/Banach.lean Modified Mathlib/Data/Fin/Embedding.lean 2025-09-20 23:26:16 efcc0aa chore: update Mathlib dependencies 2025-09-20 (#29844) This PR updates the Mathlib dependencies. ESTIMATED CHANGES Modified lake-manifest.json 2025-09-20 21:51:06 b30f4b3 chore(CategoryTheory/Monoidal): golf entire `counitInv_app_comp_functor_map_η_inverse` (#28432) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Monoidal/Functor.lean 2025-09-20 19:08:05 a820971 feat: pullback along an epi preserved under pullbacks is faithful (#28555) From Toric ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Comma/Over/Basic.lean Modified Mathlib/CategoryTheory/Comma/Over/Pullback.lean 2025-09-20 19:08:04 d5b94b6 refactor: simplify `(f₁ ⊗ₘ f₂) ≫ (g₁ ⊗ₘ g₂)` to `(f₁ ≫ g₁) ⊗ₘ (f₂ ≫ g₂)` (#26448) ... instead of the other way around. This is motivated by the fact that homs happening "in parallel" is a non-concept (time along a branch can always be reparametrised), while homs happening "in series" is a well-defined concept. One should not simp the well-defined concept into the non-concept but instead the other way around. This is also motivated by the advent of the `mon_tauto` simp set in #26057. From Toric ESTIMATED CHANGES Modified Mathlib/Algebra/Category/ModuleCat/Monoidal/Basic.lean + theorem ModuleCat.MonoidalCategory.tensorHom_comp_tensorHom - theorem ModuleCat.MonoidalCategory.tensor_comp Modified Mathlib/Algebra/Category/ModuleCat/Presheaf/Monoidal.lean Modified Mathlib/CategoryTheory/Bicategory/End.lean Modified Mathlib/CategoryTheory/Dialectica/Monoidal.lean + theorem CategoryTheory.Dial.tensorHom_comp_tensorHom - theorem CategoryTheory.Dial.tensor_comp Modified Mathlib/CategoryTheory/Enriched/Basic.lean Modified Mathlib/CategoryTheory/Enriched/FunctorCategory.lean Modified Mathlib/CategoryTheory/Enriched/Ordinary/Basic.lean Modified Mathlib/CategoryTheory/GradedObject/Braiding.lean Modified Mathlib/CategoryTheory/GradedObject/Monoidal.lean + theorem CategoryTheory.GradedObject.Monoidal.tensorHom_comp_tensorHom - theorem CategoryTheory.GradedObject.Monoidal.tensor_comp Modified Mathlib/CategoryTheory/Localization/Monoidal.lean Modified Mathlib/CategoryTheory/Monoidal/Braided/Basic.lean Modified Mathlib/CategoryTheory/Monoidal/Braided/Reflection.lean Modified Mathlib/CategoryTheory/Monoidal/Cartesian/Basic.lean + theorem CategoryTheory.CartesianMonoidalCategory.ofChosenFiniteProducts.tensorHom_comp_tensorHom - theorem CategoryTheory.CartesianMonoidalCategory.ofChosenFiniteProducts.tensor_comp Modified Mathlib/CategoryTheory/Monoidal/Cartesian/Mon_.lean Modified Mathlib/CategoryTheory/Monoidal/Category.lean Modified Mathlib/CategoryTheory/Monoidal/DayConvolution.lean Modified Mathlib/CategoryTheory/Monoidal/Free/Basic.lean Modified Mathlib/CategoryTheory/Monoidal/Functor.lean Modified Mathlib/CategoryTheory/Monoidal/FunctorCategory.lean Modified Mathlib/CategoryTheory/Monoidal/Internal/Limits.lean Modified Mathlib/CategoryTheory/Monoidal/Limits/Basic.lean Modified Mathlib/CategoryTheory/Monoidal/Mon_.lean Modified Mathlib/CategoryTheory/Monoidal/NaturalTransformation.lean Modified Mathlib/CategoryTheory/Monoidal/Opposite.lean Modified Mathlib/CategoryTheory/Monoidal/Preadditive.lean Modified Mathlib/CategoryTheory/Monoidal/Transport.lean Modified Mathlib/CategoryTheory/Monoidal/Types/Coyoneda.lean 2025-09-20 18:52:43 27c1663 feat: groupoid instance on quotient category (#29278) Show that `CategoryTheory.Quotient` constructs a groupoid when the original category was a groupoid. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Quotient.lean + theorem CategoryTheory.Quotient.inv_mk 2025-09-20 17:17:51 6495aaa feat: harmonic functions on `ℂ` are real analytic (#29763) Deliver on an open TODO and show (in four lines) that harmonic functions on the complex plane are real analytic. ESTIMATED CHANGES Modified Mathlib/Analysis/Complex/Harmonic/Analytic.lean + theorem HarmonicAt.analyticAt 2025-09-20 16:27:54 739e4db chore: move setOf_riemmanianEDist_lt_subset_nhds deprecation out of comment (#29839) Follow-up from #28581 ESTIMATED CHANGES Modified Mathlib/Geometry/Manifold/Riemannian/Basic.lean 2025-09-20 13:34:28 be1e9da chore: reduce open `Fin.NatCast` (#29814) ESTIMATED CHANGES Modified Mathlib/Order/RelSeries.lean 2025-09-20 12:57:26 123b6b1 refactor(Geometry/Euclidean/Altitude,Geometry/Euclidean/Incenter): use `Nat.AtLeastTwo` (#29413) Using `[Nat.AtLeastTwo n]` in place of `(hn : 1 < n)` saves passing various explicit hypotheses around, and is convenient in particular if applying lemmas in the common use case of a triangle. As [discussed on Zulip](https://leanprover.zulipchat.com/#narrow/channel/345428-mathlib-reviewers/topic/Use.20of.20.60Nat.2EAtLeastTwo.60/with/539258835), `AtLeastTwo` is mainly used with literals at present, and there is no clear consensus about broader use in groups of lemmas sharing a common value of `n`, but `NeZero` is used in a similar way in the `rootsOfUnity` API. ESTIMATED CHANGES Modified Mathlib/Geometry/Euclidean/Altitude.lean +/- theorem Affine.Simplex.abs_inner_vsub_altitudeFoot_div_lt_one +/- theorem Affine.Simplex.abs_inner_vsub_altitudeFoot_lt_mul +/- theorem Affine.Simplex.inner_vsub_vsub_altitudeFoot_eq_height_sq +/- theorem Affine.Simplex.neg_mul_lt_inner_vsub_altitudeFoot +/- theorem Affine.Simplex.neg_one_lt_inner_vsub_altitudeFoot_div Modified Mathlib/Geometry/Euclidean/Incenter.lean +/- theorem Affine.Simplex.excenterExists_singleton +/- theorem Affine.Simplex.excenter_singleton_mem_affineSpan_range +/- theorem Affine.Simplex.exradius_singleton_pos +/- theorem Affine.Simplex.inv_height_lt_sum_inv_height +/- theorem Affine.Simplex.sum_excenterWeightsUnnorm_singleton_pos 2025-09-20 12:21:38 1b18558 chore(LinearAlgebra/AffineSpace): move `ContinuousAffineEquiv` to `Topology/Algebra` (#29779) The file defining `ConfinuousAffineMap` lives in `Topology/Algebra`, so we should have `ContinuousAffineEquiv` in the same place. (And this is also where the other algebraic morphisms live: continuous mul equivs, continuous linear equivs, ...) This removes the only direct import of Mathlib/Topology into Mathlib/LinearAlgebra. (We still have some indirect dependencies!) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Analysis/Convex/AmpleSet.lean Modified Mathlib/Analysis/Normed/Affine/AddTorsor.lean Renamed Mathlib/LinearAlgebra/AffineSpace/ContinuousAffineEquiv.lean to Mathlib/Topology/Algebra/ContinuousAffineEquiv.lean 2025-09-20 11:20:07 6054864 feat: golfing Imo2008Q4 (#29692) No strong opinions on this one, just interesting to see what `grind` can already handle. ESTIMATED CHANGES Modified Archive/Imo/Imo2008Q4.lean 2025-09-20 11:20:06 f1fc124 chore: remove redundant `suffices` invocations (#29316) ESTIMATED CHANGES Modified Mathlib/Algebra/ContinuedFractions/Computation/Approximations.lean Modified Mathlib/Algebra/ContinuedFractions/Determinant.lean Modified Mathlib/MeasureTheory/Function/LpSeminorm/Basic.lean 2025-09-20 11:20:04 e44d413 doc: hyphenate "first order" and "higher order" when used attributively (#29297) Compound adjectives that are attributive (coming before their noun) should almost always be hyphenated in English. This PR covers "first order" and "higher order". ESTIMATED CHANGES Modified Mathlib/Analysis/Calculus/ContDiff/FTaylorSeries.lean Modified Mathlib/Analysis/Fourier/FourierTransformDeriv.lean Modified Mathlib/FieldTheory/AxGrothendieck.lean Modified Mathlib/Logic/Basic.lean Modified Mathlib/ModelTheory/Algebra/Field/Basic.lean Modified Mathlib/ModelTheory/Algebra/Field/CharP.lean Modified Mathlib/ModelTheory/Algebra/Field/IsAlgClosed.lean Modified Mathlib/ModelTheory/Algebra/Ring/Basic.lean Modified Mathlib/RingTheory/MvPolynomial/FreeCommRing.lean Modified Mathlib/Topology/VectorBundle/Riemannian.lean Modified docs/undergrad.yaml 2025-09-20 11:20:02 7ad10c8 feat(PeriodicPts, OrderOfElement): add `nontriviality` lemmas (#28820) Also golf 1 proof. ESTIMATED CHANGES Modified Mathlib/Dynamics/PeriodicPts/Defs.lean + theorem Function.IsPeriodicPt.of_subsingleton + theorem Function.minimalPeriod_eq_one_of_subsingleton Modified Mathlib/GroupTheory/OrderOfElement.lean + theorem IsUnit.orderOf_eq_one + theorem Subsingleton.orderOf_eq Modified Mathlib/Logic/Function/Defs.lean + theorem Function.IsFixedPt.of_subsingleton 2025-09-20 10:41:50 cfb143d doc: hyphenate compound adjectives ending in -dimensional (#28945) Compound adjectives appearing before the noun they are modifying should be hyphenated in order to avoid ambiguity. This PR hyphenates such compound adjectives than are ending in "-dimensional". It does not cover similar compound adjectives appearing _after_ their noun, as hyphenation is then regarded as a stylistic choice, as opposed to a grammatical tool. ESTIMATED CHANGES Modified Mathlib/Algebra/Azumaya/Matrix.lean Modified Mathlib/Algebra/BrauerGroup/Defs.lean Modified Mathlib/Algebra/Category/FGModuleCat/Basic.lean Modified Mathlib/Algebra/Category/FGModuleCat/Limits.lean Modified Mathlib/Algebra/Lie/Derivation/Killing.lean Modified Mathlib/Algebra/Lie/Weights/RootSystem.lean Modified Mathlib/Algebra/Module/ZLattice/Basic.lean Modified Mathlib/Algebra/Module/ZLattice/Covolume.lean Modified Mathlib/Analysis/BoundedVariation.lean Modified Mathlib/Analysis/Calculus/BumpFunction/Basic.lean Modified Mathlib/Analysis/Calculus/BumpFunction/SmoothApprox.lean Modified Mathlib/Analysis/Calculus/ContDiff/FiniteDimension.lean Modified Mathlib/Analysis/Calculus/Deriv/AffineMap.lean Modified Mathlib/Analysis/Calculus/Implicit.lean Modified Mathlib/Analysis/Calculus/LineDeriv/QuadraticMap.lean Modified Mathlib/Analysis/Complex/AbsMax.lean Modified Mathlib/Analysis/Complex/Tietze.lean Modified Mathlib/Analysis/Convex/AmpleSet.lean Modified Mathlib/Analysis/Convex/Continuous.lean Modified Mathlib/Analysis/Convex/Measure.lean Modified Mathlib/Analysis/Convex/SimplicialComplex/Basic.lean Modified Mathlib/Analysis/Distribution/AEEqOfIntegralContDiff.lean Modified Mathlib/Analysis/FunctionalSpaces/SobolevInequality.lean Modified Mathlib/Analysis/InnerProductSpace/Adjoint.lean Modified Mathlib/Analysis/InnerProductSpace/EuclideanDist.lean Modified Mathlib/Analysis/InnerProductSpace/JointEigenspace.lean Modified Mathlib/Analysis/InnerProductSpace/PiL2.lean Modified Mathlib/Analysis/InnerProductSpace/Spectrum.lean Modified Mathlib/Analysis/Normed/Module/FiniteDimension.lean Modified Mathlib/Analysis/Normed/Operator/ContinuousLinearMap.lean Modified Mathlib/Analysis/NormedSpace/HahnBanach/Extension.lean Modified Mathlib/Analysis/RCLike/Lemmas.lean Modified Mathlib/CategoryTheory/Preadditive/Schur.lean Modified Mathlib/Combinatorics/Additive/AP/Three/Behrend.lean Modified Mathlib/FieldTheory/Differential/Liouville.lean Modified Mathlib/FieldTheory/IntermediateField/Algebraic.lean Modified Mathlib/FieldTheory/IsAlgClosed/Spectrum.lean Modified Mathlib/FieldTheory/PrimitiveElement.lean Modified Mathlib/FieldTheory/PurelyInseparable/Basic.lean Modified Mathlib/Geometry/Manifold/BumpFunction.lean Modified Mathlib/Geometry/Manifold/ChartedSpace.lean Modified Mathlib/Geometry/Manifold/Diffeomorph.lean Modified Mathlib/Geometry/Manifold/Metrizable.lean Modified Mathlib/Geometry/Manifold/PartitionOfUnity.lean Modified Mathlib/LinearAlgebra/Coevaluation.lean Modified Mathlib/LinearAlgebra/Complex/FiniteDimensional.lean Modified Mathlib/LinearAlgebra/Complex/Module.lean Modified Mathlib/LinearAlgebra/Dimension/Finite.lean Modified Mathlib/LinearAlgebra/Dimension/Finrank.lean Modified Mathlib/LinearAlgebra/Dimension/FreeAndStrongRankCondition.lean Modified Mathlib/LinearAlgebra/FiniteDimensional/Basic.lean Modified Mathlib/LinearAlgebra/FiniteDimensional/Defs.lean Modified Mathlib/LinearAlgebra/FiniteDimensional/Lemmas.lean Modified Mathlib/LinearAlgebra/Matrix/FiniteDimensional.lean Modified Mathlib/LinearAlgebra/Matrix/GeneralLinearGroup/Card.lean Modified Mathlib/LinearAlgebra/Multilinear/FiniteDimensional.lean Modified Mathlib/MeasureTheory/Integral/TorusIntegral.lean Modified Mathlib/MeasureTheory/Measure/Haar/InnerProductSpace.lean Modified Mathlib/MeasureTheory/Measure/Haar/OfBasis.lean Modified Mathlib/MeasureTheory/Measure/Lebesgue/EqHaar.lean Modified Mathlib/MeasureTheory/Measure/Lebesgue/VolumeOfBalls.lean Modified Mathlib/Order/RelSeries.lean Modified Mathlib/Probability/Process/FiniteDimensionalLaws.lean Modified Mathlib/RepresentationTheory/FDRep.lean Modified Mathlib/RepresentationTheory/Maschke.lean Modified Mathlib/RepresentationTheory/Tannaka.lean Modified Mathlib/RingTheory/Finiteness/Basic.lean Modified Mathlib/RingTheory/Finiteness/Lattice.lean Modified Mathlib/RingTheory/Grassmannian.lean Modified Mathlib/Tactic/FunProp/Theorems.lean Modified Mathlib/Topology/Algebra/InfiniteSum/Defs.lean Modified Mathlib/Topology/Algebra/Module/FiniteDimension.lean Modified Mathlib/Topology/MetricSpace/HausdorffDimension.lean Modified MathlibTest/fun_prop.lean Modified docs/overview.yaml Modified docs/undergrad.yaml 2025-09-20 08:39:32 9803e9a feat(Algebra): preliminaries for ring structure on `AddLocalization` (#29597) ESTIMATED CHANGES Modified Mathlib/Algebra/Module/End.lean +/- theorem IsAddUnit.smul_left Modified Mathlib/Algebra/Order/Nonneg/Basic.lean Modified Mathlib/Algebra/Order/Nonneg/Ring.lean Modified Mathlib/Algebra/Ring/Invertible.lean + def AddUnits.mulLeft + def AddUnits.mulRight + theorem AddUnits.neg_mul_eq_mul_neg + theorem AddUnits.neg_mul_left + theorem AddUnits.neg_mul_neg + theorem AddUnits.neg_mul_right + theorem IsAddUnit.mul_left + theorem IsAddUnit.mul_right Modified Mathlib/LinearAlgebra/TensorProduct/Basic.lean + theorem IsAddUnit.tmul_left + theorem IsAddUnit.tmul_right 2025-09-19 21:40:23 a492302 chore: remove the `field_simps` simp set (#29045) This was used for the field_simp tactic before its recent rewrite. Its uses in mathlib were removed in #28918. ESTIMATED CHANGES Modified Mathlib/Algebra/CharP/MixedCharZero.lean Modified Mathlib/Algebra/Field/Basic.lean Modified Mathlib/Algebra/Group/Basic.lean Modified Mathlib/Algebra/Group/Defs.lean Modified Mathlib/Algebra/Group/Units/Basic.lean Modified Mathlib/Algebra/Group/Units/Defs.lean Modified Mathlib/Algebra/GroupWithZero/Basic.lean Modified Mathlib/Algebra/GroupWithZero/Units/Basic.lean +/- theorem div_eq_div_iff +/- theorem div_eq_iff +/- theorem eq_div_iff +/- theorem inv_mul_eq_inv_mul_iff +/- theorem mul_inv_eq_mul_inv_iff Modified Mathlib/Algebra/NeZero.lean Modified Mathlib/Algebra/Order/Field/Basic.lean Modified Mathlib/Algebra/Ring/Basic.lean Modified Mathlib/Algebra/Ring/Units.lean Modified Mathlib/Analysis/Complex/Trigonometric.lean Modified Mathlib/Analysis/InnerProductSpace/Basic.lean Modified Mathlib/Analysis/MeanInequalitiesPow.lean Modified Mathlib/Analysis/Normed/Unbundled/SeminormFromBounded.lean Modified Mathlib/Analysis/Normed/Unbundled/SeminormFromConst.lean Modified Mathlib/Analysis/Normed/Unbundled/SmoothingSeminorm.lean Modified Mathlib/Combinatorics/SetFamily/AhlswedeZhang.lean Modified Mathlib/Combinatorics/SimpleGraph/Density.lean Modified Mathlib/MeasureTheory/Measure/Haar/Basic.lean Modified Mathlib/Tactic/Attr/Register.lean 2025-09-19 18:56:43 b7a2822 chore(CategoryTheory/Sites): rename `.ofGrothendieck` to `GrothendieckTopology.to{Coverage, Pretopology}` (#29815) We rename `{Coverage, Pretopology}.ofGrothendieck` to `GrothendieckTopology.to{Coverage, Pretopology}`. This is friendlier to dot notation (anonymous dot notation needs extra parentheses and is harder to decipher). We also make the `C` argument in both the `toGrothendieck` as well as the `to{Coverage, Pretopology}` functions implicit. ESTIMATED CHANGES Modified Mathlib/AlgebraicGeometry/Sites/Small.lean Modified Mathlib/CategoryTheory/Sites/Coherent/Basic.lean Modified Mathlib/CategoryTheory/Sites/Coherent/Comparison.lean Modified Mathlib/CategoryTheory/Sites/Coverage.lean +/- def CategoryTheory.Coverage.gi - def CategoryTheory.Coverage.ofGrothendieck - theorem CategoryTheory.Coverage.ofGrothendieck_iff +/- theorem CategoryTheory.Coverage.toGrothendieck_eq_sInf + theorem CategoryTheory.GrothendieckTopology.mem_toCoverage_iff + def CategoryTheory.GrothendieckTopology.toCoverage Modified Mathlib/CategoryTheory/Sites/Pretopology.lean + theorem CategoryTheory.GrothendieckTopology.mem_toPretopology + def CategoryTheory.GrothendieckTopology.toPretopology +/- def CategoryTheory.Pretopology.gi - theorem CategoryTheory.Pretopology.mem_ofGrothendieck - def CategoryTheory.Pretopology.ofGrothendieck +/- theorem CategoryTheory.Pretopology.toGrothendieck_bot Modified Mathlib/CategoryTheory/Sites/Sheaf.lean Modified Mathlib/CategoryTheory/Sites/SheafOfTypes.lean Modified Mathlib/CategoryTheory/Sites/Spaces.lean - theorem Opens.pretopology_ofGrothendieck + theorem Opens.toPretopology_grothendieckTopology 2025-09-19 18:56:41 2803e3e feat: `Functor.map` of a fully faithful monoidal functor as a `MulEquiv` (#29799) From Toric ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Monoidal/Cartesian/Mon_.lean + def CategoryTheory.Functor.FullyFaithful.homMulEquiv + def CategoryTheory.Functor.homMonoidHom 2025-09-19 18:56:40 bad30a6 feat(Order/Lattice): conditions for an equivalence relation to be a lattice congruence (#26836) Define a structure asserting that a binary relation is a lattice congruence and provide sufficient and necessary conditions. An application is given in #26983 ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Order/Lattice/Congruence.lean + def LatticeCon.ker + def LatticeCon.mk' + theorem LatticeCon.r_inf_sup_iff + structure LatticeCon Modified docs/references.bib 2025-09-19 18:41:46 002db63 chore: register `MeromorphicAt.id` as a `fun_prop` lemma (#29817) ESTIMATED CHANGES Modified Mathlib/Analysis/Meromorphic/Basic.lean 2025-09-19 16:11:31 d9cecd1 refactor(AlgebraicGeometry): rename fields of `Scheme.Cover` to match `ZeroHypercover` (#29803) This is in preparation for replacing `Scheme.Cover` by `ZeroHypercover` for the Zariski precoverage (see #29061). For consistency, also the fields of `Scheme.AffineCover` were updated accordingly. Deprecations were added for the following renames: - `Scheme.Cover.J` -> `Scheme.Cover.I₀` - `Scheme.Cover.obj` -> `Scheme.Cover.X` - `Scheme.Cover.map` -> `Scheme.Cover.f` and similarly for `AffineCover`. No deprecations were added for the automatically generated `simps` lemmas, in the expectation that users will already get a deprecation warning for one of the fields above. ESTIMATED CHANGES Modified Mathlib/AlgebraicGeometry/AffineScheme.lean Modified Mathlib/AlgebraicGeometry/AffineSpace.lean Modified Mathlib/AlgebraicGeometry/AffineTransitionLimit.lean Modified Mathlib/AlgebraicGeometry/Cover/Directed.lean +/- def AlgebraicGeometry.Scheme.Cover.LocallyDirected.ofIsBasisOpensRange +/- theorem AlgebraicGeometry.Scheme.Cover.LocallyDirected.ofIsBasisOpensRange_le_iff +/- theorem AlgebraicGeometry.Scheme.Cover.LocallyDirected.ofIsBasisOpensRange_trans +/- theorem AlgebraicGeometry.Scheme.Cover.exists_lift_trans_eq +/- def AlgebraicGeometry.Scheme.Cover.functorOfLocallyDirected +/- theorem AlgebraicGeometry.Scheme.Cover.property_trans +/- def AlgebraicGeometry.Scheme.Cover.trans +/- theorem AlgebraicGeometry.Scheme.Cover.trans_comp +/- theorem AlgebraicGeometry.Scheme.Cover.trans_id +/- theorem AlgebraicGeometry.Scheme.Cover.trans_map +/- def AlgebraicGeometry.Scheme.OpenCover.glueMorphismsOfLocallyDirected +/- theorem AlgebraicGeometry.Scheme.OpenCover.map_glueMorphismsOfLocallyDirected Modified Mathlib/AlgebraicGeometry/Cover/MorphismProperty.lean +/- def AlgebraicGeometry.Scheme.AffineCover.cover +/- structure AlgebraicGeometry.Scheme.AffineCover +/- def AlgebraicGeometry.Scheme.Cover.bind +/- def AlgebraicGeometry.Scheme.Cover.changeProp +/- theorem AlgebraicGeometry.Scheme.Cover.exists_eq +/- theorem AlgebraicGeometry.Scheme.Cover.id_app +/- theorem AlgebraicGeometry.Scheme.Cover.id_idx_apply +/- def AlgebraicGeometry.Scheme.Cover.reindex +/- structure AlgebraicGeometry.Scheme.Cover Modified Mathlib/AlgebraicGeometry/Cover/Open.lean +/- theorem AlgebraicGeometry.Scheme.OpenCover.compactSpace +/- def AlgebraicGeometry.Scheme.affineBasisCoverRing +/- theorem AlgebraicGeometry.Scheme.affineBasisCover_obj Modified Mathlib/AlgebraicGeometry/Cover/Over.lean Modified Mathlib/AlgebraicGeometry/Cover/Sigma.lean Modified Mathlib/AlgebraicGeometry/FunctionField.lean Modified Mathlib/AlgebraicGeometry/Gluing.lean +/- def AlgebraicGeometry.Scheme.Cover.glueMorphisms +/- def AlgebraicGeometry.Scheme.Cover.gluedCoverT' +/- theorem AlgebraicGeometry.Scheme.Cover.gluedCoverT'_fst_fst +/- theorem AlgebraicGeometry.Scheme.Cover.gluedCoverT'_fst_snd +/- theorem AlgebraicGeometry.Scheme.Cover.gluedCoverT'_snd_fst +/- theorem AlgebraicGeometry.Scheme.Cover.gluedCoverT'_snd_snd +/- theorem AlgebraicGeometry.Scheme.Cover.glued_cover_cocycle +/- theorem AlgebraicGeometry.Scheme.Cover.glued_cover_cocycle_fst +/- theorem AlgebraicGeometry.Scheme.Cover.glued_cover_cocycle_snd +/- theorem AlgebraicGeometry.Scheme.Cover.ι_fromGlued +/- theorem AlgebraicGeometry.Scheme.Cover.ι_glueMorphisms + theorem AlgebraicGeometry.Scheme.IsLocallyDirected.openCover_I₀ - theorem AlgebraicGeometry.Scheme.IsLocallyDirected.openCover_J + theorem AlgebraicGeometry.Scheme.IsLocallyDirected.openCover_X + theorem AlgebraicGeometry.Scheme.IsLocallyDirected.openCover_f - theorem AlgebraicGeometry.Scheme.IsLocallyDirected.openCover_map - theorem AlgebraicGeometry.Scheme.IsLocallyDirected.openCover_obj Modified Mathlib/AlgebraicGeometry/IdealSheaf/Basic.lean Modified Mathlib/AlgebraicGeometry/IdealSheaf/Subscheme.lean Modified Mathlib/AlgebraicGeometry/Limits.lean Modified Mathlib/AlgebraicGeometry/Morphisms/Basic.lean +/- theorem AlgebraicGeometry.HasAffineProperty.iff_of_openCover +/- theorem AlgebraicGeometry.IsLocalAtSource.of_openCover Modified Mathlib/AlgebraicGeometry/Morphisms/ClosedImmersion.lean Modified Mathlib/AlgebraicGeometry/Morphisms/Constructors.lean Modified Mathlib/AlgebraicGeometry/Morphisms/Descent.lean Modified Mathlib/AlgebraicGeometry/Morphisms/Finite.lean Modified Mathlib/AlgebraicGeometry/Morphisms/FinitePresentation.lean Modified Mathlib/AlgebraicGeometry/Morphisms/FiniteType.lean Modified Mathlib/AlgebraicGeometry/Morphisms/Flat.lean Modified Mathlib/AlgebraicGeometry/Morphisms/FormallyUnramified.lean Modified Mathlib/AlgebraicGeometry/Morphisms/Immersion.lean Modified Mathlib/AlgebraicGeometry/Morphisms/LocalClosure.lean +/- theorem AlgebraicGeometry.sourceLocalClosure.property_coverMap_comp Modified Mathlib/AlgebraicGeometry/Morphisms/QuasiCompact.lean Modified Mathlib/AlgebraicGeometry/Morphisms/QuasiSeparated.lean Modified Mathlib/AlgebraicGeometry/Morphisms/RingHomProperties.lean +/- theorem AlgebraicGeometry.HasRingHomProperty.iff_of_source_openCover Modified Mathlib/AlgebraicGeometry/Morphisms/Separated.lean Modified Mathlib/AlgebraicGeometry/Morphisms/SurjectiveOnStalks.lean Modified Mathlib/AlgebraicGeometry/Morphisms/UnderlyingMap.lean Modified Mathlib/AlgebraicGeometry/Morphisms/UniversallyClosed.lean Modified Mathlib/AlgebraicGeometry/Morphisms/UniversallyOpen.lean Modified Mathlib/AlgebraicGeometry/Noetherian.lean Modified Mathlib/AlgebraicGeometry/PointsPi.lean Modified Mathlib/AlgebraicGeometry/ProjectiveSpectrum/Basic.lean Modified Mathlib/AlgebraicGeometry/ProjectiveSpectrum/Proper.lean Modified Mathlib/AlgebraicGeometry/Properties.lean Modified Mathlib/AlgebraicGeometry/Pullbacks.lean +/- theorem AlgebraicGeometry.Scheme.Pullback.cocycle +/- theorem AlgebraicGeometry.Scheme.Pullback.cocycle_fst_fst_fst +/- theorem AlgebraicGeometry.Scheme.Pullback.cocycle_fst_fst_snd +/- theorem AlgebraicGeometry.Scheme.Pullback.cocycle_fst_snd +/- theorem AlgebraicGeometry.Scheme.Pullback.cocycle_snd_fst_fst +/- theorem AlgebraicGeometry.Scheme.Pullback.cocycle_snd_fst_snd +/- theorem AlgebraicGeometry.Scheme.Pullback.cocycle_snd_snd +/- theorem AlgebraicGeometry.Scheme.Pullback.diagonalCover_map +/- def AlgebraicGeometry.Scheme.Pullback.gluedLiftPullbackMap +/- theorem AlgebraicGeometry.Scheme.Pullback.gluedLiftPullbackMap_fst +/- theorem AlgebraicGeometry.Scheme.Pullback.gluedLiftPullbackMap_snd +/- theorem AlgebraicGeometry.Scheme.Pullback.gluing_ι +/- theorem AlgebraicGeometry.Scheme.Pullback.lift_comp_ι +/- def AlgebraicGeometry.Scheme.Pullback.pullbackFstιToV +/- theorem AlgebraicGeometry.Scheme.Pullback.pullbackFstιToV_fst +/- theorem AlgebraicGeometry.Scheme.Pullback.pullbackFstιToV_snd +/- def AlgebraicGeometry.Scheme.Pullback.pullbackP1Iso +/- theorem AlgebraicGeometry.Scheme.Pullback.pullbackP1Iso_hom_fst +/- theorem AlgebraicGeometry.Scheme.Pullback.pullbackP1Iso_hom_snd +/- theorem AlgebraicGeometry.Scheme.Pullback.pullbackP1Iso_hom_ι +/- theorem AlgebraicGeometry.Scheme.Pullback.pullbackP1Iso_inv_fst +/- theorem AlgebraicGeometry.Scheme.Pullback.pullbackP1Iso_inv_snd +/- def AlgebraicGeometry.Scheme.Pullback.t' +/- theorem AlgebraicGeometry.Scheme.Pullback.t'_fst_fst_fst +/- theorem AlgebraicGeometry.Scheme.Pullback.t'_fst_fst_snd +/- theorem AlgebraicGeometry.Scheme.Pullback.t'_fst_snd +/- theorem AlgebraicGeometry.Scheme.Pullback.t'_snd_fst_fst +/- theorem AlgebraicGeometry.Scheme.Pullback.t'_snd_fst_snd +/- theorem AlgebraicGeometry.Scheme.Pullback.t'_snd_snd +/- def AlgebraicGeometry.Scheme.Pullback.t +/- theorem AlgebraicGeometry.Scheme.Pullback.t_fst_fst +/- theorem AlgebraicGeometry.Scheme.Pullback.t_fst_snd +/- theorem AlgebraicGeometry.Scheme.Pullback.t_id +/- theorem AlgebraicGeometry.Scheme.Pullback.t_snd +/- def AlgebraicGeometry.Scheme.Pullback.v Modified Mathlib/AlgebraicGeometry/RationalMap.lean Modified Mathlib/AlgebraicGeometry/Restrict.lean Modified Mathlib/AlgebraicGeometry/Sites/BigZariski.lean Modified Mathlib/AlgebraicGeometry/Sites/MorphismProperty.lean Modified Mathlib/AlgebraicGeometry/Sites/Representability.lean +/- theorem AlgebraicGeometry.Scheme.LocalRepresentability.glueData_openCover_map Modified Mathlib/AlgebraicGeometry/Sites/Small.lean Modified Mathlib/AlgebraicGeometry/SpreadingOut.lean Modified Mathlib/AlgebraicGeometry/Stalk.lean 2025-09-19 16:11:29 8de0329 chore(Algebra): avoid duplicating proofs by reusing existing theorems or lemmas (#27847) ESTIMATED CHANGES Modified Archive/Imo/Imo1972Q5.lean Modified Archive/Imo/Imo2015Q6.lean Modified Mathlib/Algebra/Homology/Embedding/Extend.lean Modified Mathlib/Algebra/MvPolynomial/Rename.lean Modified Mathlib/Algebra/Order/AbsoluteValue/Basic.lean Modified Mathlib/Algebra/Order/Archimedean/Class.lean Modified Mathlib/Algebra/Order/BigOperators/Expect.lean Modified Mathlib/Algebra/Order/BigOperators/Group/Finset.lean Modified Mathlib/Algebra/Order/BigOperators/Group/Multiset.lean Modified Mathlib/Algebra/Order/Group/Abs.lean +/- theorem mabs_mul' - theorem mabs_mul Modified Mathlib/Algebra/Order/Ring/Unbundled/Rat.lean +/- theorem Rat.lt_one_iff_num_lt_denom Modified Mathlib/Algebra/Polynomial/Degree/Lemmas.lean - theorem Polynomial.coeff_mul_of_natDegree_le Modified Mathlib/Algebra/Polynomial/Monic.lean - theorem Polynomial.ne_zero_of_ne_zero_of_monic Modified Mathlib/AlgebraicGeometry/EllipticCurve/DivisionPolynomial/Degree.lean Modified Mathlib/Analysis/MeanInequalities.lean Modified Mathlib/Analysis/Normed/Lp/lpSpace.lean Modified Mathlib/Data/NNRat/Defs.lean Modified Mathlib/MeasureTheory/Function/Jacobian.lean Modified Mathlib/NumberTheory/Pell.lean Modified Mathlib/RingTheory/Polynomial/Basic.lean Modified Mathlib/Tactic/ComputeDegree.lean Modified Mathlib/Topology/Algebra/Order/Group.lean Modified Mathlib/Topology/MetricSpace/Algebra.lean Modified MathlibTest/GCongr/inequalities.lean Modified MathlibTest/GRewrite.lean 2025-09-19 15:24:19 85e4dec fix: unexpander for `|a|ₘ` doesn't work (#29664) This occurs because it's mistakenly written `@[app_unexpander abs]` instead of `@[app_unexpander mabs]`, so the fix is straightforward. ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Group/Unbundled/Abs.lean Added MathlibTest/Delab/Abs.lean 2025-09-19 13:20:49 9fd7af8 feat: stronger version of `ArchimedeanClass.mk_le_mk` (#29678) ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Archimedean/Class.lean + theorem MulArchimedeanClass.mk_le_mk_iff_lt 2025-09-19 12:48:36 fc96601 chore(Combinatorics/Matroid/Minor): golf entire `Matroidᵣ.coe_inj` (#29663) ESTIMATED CHANGES Modified Mathlib/Combinatorics/Matroid/Minor/Restrict.lean 2025-09-19 12:48:34 e900d23 feat: add group/field versions of Filter.map_*_atTop_eq_nat (#29532) Add Filter.map_add_atTop_eq, Filter.map_sub_atTop_eq, and Filter.map_div_atTop_eq, which correspond to Filter.map_add_atTop_eq_nat, Filter.map_sub_atTop_eq_nat, and Filter.map_div_atTop_eq_nat respectively. These theorems apply to ordered groups/fields ESTIMATED CHANGES Modified Mathlib/Order/Filter/AtTopBot/Archimedean.lean + theorem Filter.map_add_atTop_eq + theorem Filter.map_sub_atTop_eq Modified Mathlib/Order/Filter/AtTopBot/Field.lean + theorem Filter.map_div_atTop_eq 2025-09-19 12:48:32 a91abcc chore: replace `norm_num` with `simp` where applicable (#28035) Same motivation as in kim-em's #24064 (chore: replace `norm_num` with `simp` where applicable): > Consider replacing a tactic with a (ahem) simpler alternative. Note that `norm_num` runs `simp` internally, so using `simp` is simply faster. ESTIMATED CHANGES Modified Mathlib/Algebra/Polynomial/Div.lean Modified Mathlib/Algebra/Star/CHSH.lean Modified Mathlib/AlgebraicTopology/FundamentalGroupoid/Basic.lean Modified Mathlib/Analysis/Analytic/Inverse.lean Modified Mathlib/Analysis/Asymptotics/AsymptoticEquivalent.lean Modified Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Order.lean Modified Mathlib/Analysis/Calculus/Deriv/MeanValue.lean Modified Mathlib/Analysis/Calculus/Taylor.lean Modified Mathlib/Analysis/Complex/Trigonometric.lean Modified Mathlib/Analysis/ConstantSpeed.lean Modified Mathlib/Analysis/Convex/Function.lean Modified Mathlib/Analysis/Fourier/AddCircle.lean Modified Mathlib/Analysis/Fourier/Inversion.lean Modified Mathlib/Analysis/Fourier/RiemannLebesgueLemma.lean Modified Mathlib/Analysis/InnerProductSpace/Basic.lean Modified Mathlib/Analysis/InnerProductSpace/LinearMap.lean Modified Mathlib/Analysis/InnerProductSpace/Orthonormal.lean Modified Mathlib/Analysis/InnerProductSpace/TwoDim.lean Modified Mathlib/Analysis/NormedSpace/ENormedSpace.lean Modified Mathlib/Analysis/PSeries.lean Modified Mathlib/Analysis/Real/Cardinality.lean Modified Mathlib/Analysis/Real/Pi/Bounds.lean Modified Mathlib/Analysis/SpecialFunctions/Complex/LogBounds.lean Modified Mathlib/Analysis/SpecialFunctions/ContinuousFunctionalCalculus/Rpow/Basic.lean Modified Mathlib/Analysis/SpecialFunctions/Gamma/Beta.lean Modified Mathlib/Analysis/SpecialFunctions/Gamma/BohrMollerup.lean Modified Mathlib/Analysis/SpecialFunctions/Gaussian/GaussianIntegral.lean Modified Mathlib/Analysis/SpecialFunctions/Integrals/Basic.lean Modified Mathlib/Analysis/SpecialFunctions/Integrals/PosLogEqCircleAverage.lean Modified Mathlib/Analysis/SpecialFunctions/JapaneseBracket.lean Modified Mathlib/Analysis/SpecialFunctions/Pow/Real.lean Modified Mathlib/Analysis/SpecialFunctions/Stirling.lean Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Basic.lean Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Bounds.lean Modified Mathlib/Analysis/SpecificLimits/Normed.lean Modified Mathlib/Combinatorics/Additive/AP/Three/Behrend.lean Modified Mathlib/Combinatorics/Additive/SmallTripling.lean Modified Mathlib/Combinatorics/SimpleGraph/Regularity/Bound.lean Modified Mathlib/Combinatorics/SimpleGraph/Regularity/Chunk.lean Modified Mathlib/Combinatorics/SimpleGraph/Regularity/Lemma.lean Modified Mathlib/Computability/Ackermann.lean Modified Mathlib/Computability/AkraBazzi/SumTransform.lean +/- theorem AkraBazziRecurrence.bi_min_div_two_pos Modified Mathlib/Data/EReal/Basic.lean Modified Mathlib/Data/Nat/Digits/Div.lean Modified Mathlib/Data/Real/GoldenRatio.lean Modified Mathlib/Data/Real/Sign.lean Modified Mathlib/Geometry/Euclidean/Basic.lean Modified Mathlib/Geometry/Euclidean/MongePoint.lean Modified Mathlib/Geometry/Euclidean/Triangle.lean Modified Mathlib/GroupTheory/GroupAction/Blocks.lean Modified Mathlib/GroupTheory/Perm/Cycle/Basic.lean Modified Mathlib/GroupTheory/SpecificGroups/Alternating/KleinFour.lean Modified Mathlib/GroupTheory/SpecificGroups/Quaternion.lean Modified Mathlib/LinearAlgebra/QuadraticForm/Basic.lean Modified Mathlib/LinearAlgebra/RootSystem/Reduced.lean Modified Mathlib/MeasureTheory/Function/ConvergenceInMeasure.lean Modified Mathlib/MeasureTheory/Function/UniformIntegrable.lean Modified Mathlib/MeasureTheory/Integral/Bochner/Basic.lean Modified Mathlib/MeasureTheory/Integral/CircleIntegral.lean Modified Mathlib/NumberTheory/ADEInequality.lean Modified Mathlib/NumberTheory/Bernoulli.lean Modified Mathlib/NumberTheory/Cyclotomic/Discriminant.lean Modified Mathlib/NumberTheory/Cyclotomic/PID.lean Modified Mathlib/NumberTheory/Cyclotomic/Rat.lean Modified Mathlib/NumberTheory/FactorisationProperties.lean Modified Mathlib/NumberTheory/Fermat.lean Modified Mathlib/NumberTheory/FermatPsp.lean Modified Mathlib/NumberTheory/Harmonic/GammaDeriv.lean Modified Mathlib/NumberTheory/Harmonic/ZetaAsymp.lean Modified Mathlib/NumberTheory/LSeries/DirichletContinuation.lean Modified Mathlib/NumberTheory/LucasLehmer.lean Modified Mathlib/NumberTheory/Modular.lean Modified Mathlib/NumberTheory/ModularForms/Basic.lean Modified Mathlib/NumberTheory/ModularForms/LevelOne.lean Modified Mathlib/NumberTheory/Multiplicity.lean Modified Mathlib/NumberTheory/NumberField/CanonicalEmbedding/ConvexBody.lean Modified Mathlib/NumberTheory/NumberField/Discriminant/Basic.lean Modified Mathlib/NumberTheory/NumberField/Discriminant/Defs.lean Modified Mathlib/NumberTheory/Padics/Hensel.lean Modified Mathlib/NumberTheory/Zsqrtd/GaussianInt.lean Modified Mathlib/RingTheory/DedekindDomain/Different.lean Modified Mathlib/RingTheory/Fintype.lean Modified Mathlib/RingTheory/Ideal/NatInt.lean Modified Mathlib/RingTheory/PowerSeries/Basic.lean Modified Mathlib/RingTheory/ZMod/UnitsCyclic.lean Modified Mathlib/Tactic/NormNum/LegendreSymbol.lean Modified Mathlib/Topology/Algebra/Valued/WithZeroMulInt.lean Modified Mathlib/Topology/Instances/CantorSet.lean Modified Mathlib/Topology/Instances/ENNReal/Lemmas.lean Modified Mathlib/Topology/Separation/CompletelyRegular.lean 2025-09-19 12:48:30 5cab10b chore(Data/Nat/GCD): use `Nat.Prime.dvd_or_dvd` from #27981 in `Nat.Prime.dvd_or_dvd_of_dvd_lcm` from #27963 to simplify the proof a bit (#27982) - [ ] depends on: #27963 - [ ] depends on: #27981 ESTIMATED CHANGES Modified Mathlib/Data/Nat/GCD/Prime.lean 2025-09-19 12:18:50 d8a594d feat(Topology/UniformSpace/Path): new file (#24105) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Topology/ContinuousMap/Defs.lean Modified Mathlib/Topology/Path.lean + theorem Path.range_coe Modified Mathlib/Topology/UniformSpace/CompactConvergence.lean + theorem ContinuousMap.isComplete_setOf_eqOn Added Mathlib/Topology/UniformSpace/Path.lean + theorem Filter.HasBasis.uniformityPath + theorem Path.hasBasis_uniformity + theorem Path.isUniformEmbedding_coe + theorem Path.uniformContinuous + theorem Path.uniformContinuous_extend + theorem Path.uniformContinuous_extend_left + theorem Path.uniformContinuous_symm + theorem Path.uniformContinuous_trans 2025-09-19 11:33:56 7ed538d doc: attach "quasi" as a prefix where it is currently freestanding (#29256) Quasi is rarely used as a free-standing adjective. Rather, it is commonly understood as just a prefix modifying some other concept. This PR takes this into account by attaching the prefix to whatever it is modifying. ESTIMATED CHANGES Modified Mathlib/AlgebraicGeometry/Morphisms/Descent.lean Modified Mathlib/Dynamics/BirkhoffSum/QuasiMeasurePreserving.lean Modified Mathlib/Dynamics/Ergodic/Ergodic.lean Modified Mathlib/Dynamics/Ergodic/Function.lean Modified Mathlib/GroupTheory/GroupAction/DomAct/Basic.lean Modified Mathlib/MeasureTheory/Function/AEEqFun.lean Modified Mathlib/MeasureTheory/Function/AEEqFun/DomAct.lean Modified Mathlib/MeasureTheory/Group/AEStabilizer.lean Modified Mathlib/MeasureTheory/Measure/QuasiMeasurePreserving.lean Modified Mathlib/MeasureTheory/Measure/Restrict.lean 2025-09-19 10:17:50 249e5ae chore: import-only tactic files (#29805) #22365 inadvertently broke the convention that the `ring` and `norm_num` main files should be import-only. This fixes that. ESTIMATED CHANGES Modified Mathlib/Tactic/NormNum.lean Modified Mathlib/Tactic/NormNum/Core.lean Modified Mathlib/Tactic/Ring.lean Modified Mathlib/Tactic/Ring/RingNF.lean 2025-09-19 09:23:39 c3104a0 chore(Data/Nat): move `PowModTotient` to `NumberTheory` (#29775) This PR removes the only import of `Mathlib/FieldTheory` in `Mathlib/Data`, by moving a file on the totient function to the number theory folder. I add an entry to the directory dependency linter. ESTIMATED CHANGES Modified Mathlib.lean Renamed Mathlib/Data/Nat/PowModTotient.lean to Mathlib/NumberTheory/PowModTotient.lean Modified Mathlib/Tactic/Linter/DirectoryDependency.lean 2025-09-19 09:23:37 4f57113 feat(RingTheory): summability lemma for (Mv)PowerSeries (#29607) About `PowerSeries.summable_of_tendsto_weightedOrder_atTop_nhds_top`, it surprised me that `PowerSeries.order` isn't implemented using `MvPowerSeries.order`, so I had to duplicate the proof for `MvPowerSeries` and `PowerSeries`. The other lemmas are also duplication instead of reusing the same proof, because it turned out piercing through defeq actually makes the code longer. ESTIMATED CHANGES Modified Mathlib/RingTheory/MvPowerSeries/PiTopology.lean + theorem MvPowerSeries.WithPiTopology.hasSum_iff_hasSum_coeff + theorem MvPowerSeries.WithPiTopology.summable_iff_summable_coeff + theorem MvPowerSeries.WithPiTopology.summable_of_tendsto_order_atTop_nhds_top + theorem MvPowerSeries.WithPiTopology.summable_of_tendsto_weightedOrder_atTop_nhds_top Modified Mathlib/RingTheory/PowerSeries/PiTopology.lean + theorem PowerSeries.WithPiTopology.hasSum_iff_hasSum_coeff + theorem PowerSeries.WithPiTopology.summable_iff_summable_coeff + theorem PowerSeries.WithPiTopology.summable_of_tendsto_order_atTop_nhds_top 2025-09-19 09:10:21 ba68f6f feat: predicates for extensions of complex embeddings (#27977) If `L/K` and `ψ : K →+* ℂ`, we define the subtype `ComplexExtension L ψ` of `L →+* ℂ` that extend `ψ` to `L`. Also define two predicates asserting ways that `φ` can extend `ψ`. - `φ.IsMixed` : `ψ` has real image while `φ` has complex image. - `φ.IsUnmixed`: the negation of `IsMixed` -- `ψ` has real image if and only if `φ` has real image. `ComplexExtension.IsMixed` and `ComplexExtension.IsUnmixed` are the `ComplexEmbedding` analogues to ramified and unramified infinite places, which is a two-to-one isomorphism in the former and a one-to-one isomorphism in the latter, hence the slightly different terminology. This PR continues the work from #24877. Original PR: https://github.com/leanprover-community/mathlib4/pull/24877 ESTIMATED CHANGES Modified Mathlib/NumberTheory/NumberField/InfinitePlace/Embeddings.lean + theorem NumberField.ComplexEmbedding.Extension.IsUnmixed.isReal_iff_isReal + theorem NumberField.ComplexEmbedding.Extension.comp_eq + theorem NumberField.ComplexEmbedding.Extension.conjugate_comp_ne + theorem NumberField.ComplexEmbedding.Extension.not_isReal_of_not_isReal + theorem NumberField.ComplexEmbedding.conjugate_comp 2025-09-19 08:37:25 c08166f chore: `abel_nf` bug (#29778) Fix the bug reported at https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/abel_nf.20bug/with/540086130. Context: when `abel_nf` runs on a statement `e`, it is supposed to run abelian-group-normalization only on subexpressions of `e` which would not be treated as atoms by the normalization algorithm. For example, in the statement `log (sin (x + y + y)) + log (sin (y + x + y)) = z` the normalization should be run - on `x + y + y` => `x + 2y` - on `y + x + y` => `x + 2y` - on `log (sin (x + 2y)) + log (sin (x + 2y))` => `2 log (sin (x + 2y))` but not on `x`, `y`, `z`, `sin (x + 2y)`, `log (sin (x + 2y))` or `2 log (sin (x + 2y)) = z`. This saves work, and also keeps the table of atoms smaller (e.g. in the above example `z`, `sin (x + 2y)` and `2 log (sin (x + 2y)) = z` never join the atoms table since they never appear as atomic subexpressions of abelian-group expressions). The issue fixed in this PR was that the atoms check was logically incorrect: instead of testing whether a subexpression `t` was non-atomic *before* normalizing it, we tested -- *after* normalizing it! -- whether its normalized form `t'` was non-atomic. ESTIMATED CHANGES Modified Mathlib/Tactic/Abel.lean + def Mathlib.Tactic.Abel.isAtom Modified MathlibTest/abel.lean 2025-09-19 08:22:28 5aef7bb chore(MathlibTest/FieldSimp): one more test (#29786) ESTIMATED CHANGES Modified MathlibTest/FieldSimp.lean 2025-09-19 07:04:56 85c6303 chore(*): drop some `Decidable`/`Fintype` assumptions (#29785) Found by the linter in #10235 ESTIMATED CHANGES Modified Mathlib/Algebra/GroupWithZero/ProdHom.lean +/- theorem MonoidWithZeroHom.fst_surjective +/- theorem MonoidWithZeroHom.snd_surjective Modified Mathlib/Algebra/MvPolynomial/Eval.lean +/- theorem MvPolynomial.coe_coeffs_map Modified Mathlib/Algebra/SkewMonoidAlgebra/Single.lean +/- theorem SkewMonoidAlgebra.coeff_update_ne +/- theorem SkewMonoidAlgebra.coeff_update_same +/- theorem SkewMonoidAlgebra.update_eq_erase_add_single +/- theorem SkewMonoidAlgebra.update_zero_eq_erase Modified Mathlib/Algebra/SkewMonoidAlgebra/Support.lean Modified Mathlib/Algebra/Squarefree/Basic.lean +/- theorem Finset.squarefree_prod_of_pairwise_isCoprime Modified Mathlib/AlgebraicGeometry/EllipticCurve/Jacobian/Point.lean Modified Mathlib/AlgebraicGeometry/EllipticCurve/Projective/Point.lean Modified Mathlib/Analysis/InnerProductSpace/Trace.lean Modified Mathlib/Combinatorics/SimpleGraph/Finite.lean +/- theorem SimpleGraph.degree_le_card_edgeFinset Modified Mathlib/LinearAlgebra/Matrix/PosDef.lean +/- theorem Matrix.PosDef.commute_iff +/- theorem Matrix.PosSemidef.commute_iff Modified Mathlib/RepresentationTheory/Homological/Resolution.lean Modified Mathlib/RepresentationTheory/Rep.lean Modified Mathlib/RingTheory/MvPowerSeries/Basic.lean +/- theorem MvPowerSeries.coeff_prod Modified Mathlib/RingTheory/PowerSeries/Basic.lean +/- theorem PowerSeries.coeff_prod Modified Mathlib/RingTheory/TensorProduct/DirectLimitFG.lean +/- theorem TensorProduct.Algebra.exists_of_fg +/- theorem TensorProduct.exists_of_fg Modified Mathlib/RingTheory/UniqueFactorizationDomain/NormalizedFactors.lean +/- def UniqueFactorizationMonoid.normalizedFactorsEquiv +/- theorem UniqueFactorizationMonoid.normalizedFactorsEquiv_apply +/- theorem UniqueFactorizationMonoid.normalizedFactorsEquiv_symm_apply Modified Mathlib/Topology/Algebra/RestrictedProduct/TopologicalSpace.lean +/- theorem RestrictedProduct.continuous_dom_pi Modified Mathlib/Topology/Instances/Matrix.lean +/- theorem IsOpen.matrix Modified Mathlib/Topology/Order/HullKernel.lean +/- theorem PrimitiveSpectrum.closedsGC_closureOperator +/- theorem PrimitiveSpectrum.hull_kernel_of_isClosed +/- theorem PrimitiveSpectrum.isClosed_iff +/- theorem PrimitiveSpectrum.isOpen_iff 2025-09-19 05:31:20 c66d3e5 feat (CategoryTheory.Discrete) : convenience lemmas for forall, exists (#29787) Adds `Discrete.forall` and `Discrete.exists` as convenience lemmas to allow easy mass-unwrapping of `Discrete` types without e.g. going through `discreteEquiv.forall_congr_left`. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Discrete/Basic.lean + theorem CategoryTheory.Discrete.exists + theorem CategoryTheory.Discrete.forall 2025-09-18 18:51:01 4f7d34e feat(CategoryTheory/MorphismProperty): define `ind P` (#29380) Given a morphism property `P`, we define a morphism property `ind P` that is satisfied for `f : X ⟶ Y` if `Y` is a filtered colimit of `Yᵢ` and `fᵢ : X ⟶ Yᵢ` satisfy `P`. We show that `ind` is idempotent under certain compactness assumptions. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/CategoryTheory/Limits/Presentation.lean + def CategoryTheory.Limits.ColimitPresentation.reindex Modified Mathlib/CategoryTheory/MorphismProperty/Comma.lean + def CategoryTheory.MorphismProperty.over + def CategoryTheory.MorphismProperty.overObj + theorem CategoryTheory.MorphismProperty.overObj_iff + theorem CategoryTheory.MorphismProperty.over_iff + def CategoryTheory.MorphismProperty.under + def CategoryTheory.MorphismProperty.underObj + theorem CategoryTheory.MorphismProperty.underObj_iff + theorem CategoryTheory.MorphismProperty.under_iff Added Mathlib/CategoryTheory/MorphismProperty/Ind.lean + theorem CategoryTheory.MorphismProperty.exists_hom_of_isFinitelyPresentable + def CategoryTheory.MorphismProperty.ind + theorem CategoryTheory.MorphismProperty.ind_iff_ind_underMk + theorem CategoryTheory.MorphismProperty.ind_ind + theorem CategoryTheory.MorphismProperty.ind_underObj_pushout + theorem CategoryTheory.MorphismProperty.le_ind + theorem CategoryTheory.MorphismProperty.underObj_ind_eq_ind_underObj Added Mathlib/CategoryTheory/ObjectProperty/Ind.lean + def CategoryTheory.ObjectProperty.ind + theorem CategoryTheory.ObjectProperty.ind_ind + theorem CategoryTheory.ObjectProperty.le_ind Modified Mathlib/CategoryTheory/Presentable/Finite.lean + def CategoryTheory.MorphismProperty.isFinitelyPresentable + def CategoryTheory.ObjectProperty.isFinitelyPresentable Added Mathlib/CategoryTheory/WithTerminal/Lemmas.lean 2025-09-18 18:34:13 3dfd54e feat(CategoryTheory/Sites): generating precoverage for localized topology (#29737) We show that the Grothendieck topology on `Over X`, obtained from localizing the topology generated by the precoverage `K`, is generated by the preimage of `K`. The newly introduced `Precoverage.toGrothendieck` / `GrothendieckTopology.toPrecoverage` don't match the existing naming scheme for `Pretopology` and `Coverage`. The reason is that the name `GrothendieckTopology.toPrecoverage` is friendlier to dot notation (anonymous dot notation would need additional parenthesis). We will change the names for `Pretopology` and `Coverage` in a separate PR. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Limits/Preserves/Creates/Pullbacks.lean + theorem CategoryTheory.Limits.HasPullback.of_createsLimit + theorem CategoryTheory.Limits.HasPushout.of_createsColimit Modified Mathlib/CategoryTheory/Sites/Coverage.lean + theorem CategoryTheory.GrothendieckTopology.mem_toPrecoverage_iff + def CategoryTheory.GrothendieckTopology.toPrecoverage + theorem CategoryTheory.Precoverage.mem_toGrothendieck_iff + def CategoryTheory.Precoverage.toCoverage + def CategoryTheory.Precoverage.toGrothendieck + theorem CategoryTheory.Precoverage.toGrothendieck_le_iff_le_toPrecoverage Modified Mathlib/CategoryTheory/Sites/Over.lean + theorem CategoryTheory.Presieve.map_functorPullback_overForget + theorem CategoryTheory.Sieve.overEquiv_generate + theorem CategoryTheory.Sieve.overEquiv_symm_generate + theorem CategoryTheory.Sieve.overEquiv_symm_pullback + theorem CategoryTheory.over_toGrothendieck_eq_toGrothendieck_comap_forget Modified Mathlib/CategoryTheory/Sites/Precoverage.lean + theorem CategoryTheory.Precoverage.pullbackArrows_mem Modified Mathlib/CategoryTheory/Sites/Pretopology.lean +/- def CategoryTheory.Precoverage.toPretopology Modified Mathlib/CategoryTheory/Sites/Sieves.lean + theorem CategoryTheory.Presieve.bindOfArrows_ofArrows + theorem CategoryTheory.Presieve.map_functorPullback + theorem CategoryTheory.Sieve.functorPullback_pullback + theorem CategoryTheory.Sieve.generate_functorPullback_le + theorem CategoryTheory.Sieve.ofArrows_eq_pullback_of_isPullback 2025-09-18 17:55:11 a56c007 fix: riemmanian -> riemannian (#28581) changed riemmanian to riemannian ESTIMATED CHANGES Modified Mathlib/Geometry/Manifold/Riemannian/Basic.lean + theorem eventually_riemannianEDist_lt - theorem eventually_riemmanianEDist_lt + theorem setOf_riemannianEDist_lt_subset_nhds' + theorem setOf_riemannianEDist_lt_subset_nhds - theorem setOf_riemmanianEDist_lt_subset_nhds' - theorem setOf_riemmanianEDist_lt_subset_nhds 2025-09-18 17:28:35 1827e11 chore(Analysis/NormedSpace/Extend): split file (#29445) This PR accomplishes a few tasks: 1. splits the file according to whether the material needs the operator norm on continuous linear map. This will help us avoid importing the operator norm into `LocallyConvex/` in an upcoming transition of material from `NormedSpace/HahnBanach/` into other folders. 2. moves the resulting files out of the `NormedSpace` folder in accordance with #28698. 3. Cleans up the declarations / proofs / docstrings a small amount. 4. Uses `Module.Dual` spelling for the linear maps. This is part of #28698 to migrate the material in `Analysis/NormedSpace/` to other locations. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/Normed/Module/RCLike/Extend.lean + theorem ContinuousLinearMap.norm_extendTo𝕜' + theorem ContinuousLinearMap.norm_extendTo𝕜'_bound + theorem ContinuousLinearMap.norm_extendTo𝕜 Deleted Mathlib/Analysis/NormedSpace/Extend.lean - theorem ContinuousLinearMap.extendTo𝕜'_apply - theorem ContinuousLinearMap.extendTo𝕜_apply - theorem ContinuousLinearMap.norm_extendTo𝕜' - theorem ContinuousLinearMap.norm_extendTo𝕜'_bound - theorem ContinuousLinearMap.norm_extendTo𝕜 - theorem LinearMap.extendTo𝕜'_apply - theorem LinearMap.extendTo𝕜'_apply_re - theorem LinearMap.extendTo𝕜_apply - theorem LinearMap.norm_extendTo𝕜'_apply_sq Modified Mathlib/Analysis/NormedSpace/HahnBanach/Extension.lean Modified Mathlib/Analysis/NormedSpace/HahnBanach/Separation.lean Added Mathlib/Analysis/RCLike/Extend.lean + theorem ContinuousLinearMap.extendTo𝕜'_apply + theorem ContinuousLinearMap.extendTo𝕜_apply + theorem LinearMap.extendTo𝕜'_apply + theorem LinearMap.extendTo𝕜'_apply_re + theorem LinearMap.extendTo𝕜_apply + theorem LinearMap.norm_extendTo𝕜'_apply_sq 2025-09-18 15:32:52 aad2696 refactor: switch to using `Fact (0 ∈ s)` for `ContinuousMapZero.id` (#29563) `ContinuousMapZero` is used exclusively for the non-unital continuous functional calculus. Within this scope we have an instance `Zero s` for `s : Set R` under the assumption `Fact (0 ∈ s)`. This is somewhat reasonable because, in the most common scenario, `s := quasispectrum R a`, for which we can always provide this `Fact` instance. However, several declarations were put in place prior to this `Zero` instance, and they made use of a different paradigm where we take `Zero s` as an *argument* and then have another argument of the form `h0 : ↑(0 : s) = (0 : R)`. This PR shifts that paradigm into the new regime, and I think this change is beneficial. ESTIMATED CHANGES Modified Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Basic.lean Modified Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Continuity.lean Modified Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Instances.lean +/- theorem cfcₙAux_id Modified Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/NonUnital.lean - theorem cfcₙHomSuperset_id' +/- theorem cfcₙHom_id Modified Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Restrict.lean Modified Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Unique.lean Modified Mathlib/Analysis/SpecialFunctions/ContinuousFunctionalCalculus/PosPart/Basic.lean Modified Mathlib/Topology/ContinuousMap/ContinuousMapZero.lean +/- theorem ContinuousMapZero.toContinuousMap_id Modified Mathlib/Topology/ContinuousMap/StoneWeierstrass.lean +/- theorem ContinuousMapZero.adjoin_id_dense +/- theorem ContinuousMapZero.induction_on +/- theorem ContinuousMapZero.induction_on_of_compact 2025-09-18 14:30:38 937c094 chore(NumberField/CMField): refactor (#29746) The current development of `NumberField.CMField` is to develop the theory for `K/F` a quadratic extension of a totally real field by a totally complex field (`CMExtension`) and then to specialize to the special case where `F` is the maximal real subfield of `K` (`IsCM`). This leads to a lot of code duplication. Since, when `K/F` is a `CMExtension`, `F` is isomorphic to the maximal real subfield of `K`, this refactor proposes to prove all the results in the `IsCM` case, that is for the totally real maximal subfield, and then one can use the isomorphism between `F` and the maximal real subfield of `K` to deduce the analogue of these results in the `CMExtension` case. This leads to simpler code but also the removal of many results for the `CMExtension` case. Hopefully, since this is a leaf file, that should not cause too much difficulties. ESTIMATED CHANGES Modified Mathlib/NumberTheory/NumberField/CMField.lean - theorem NumberField.CMExtension.card_infinitePlace_eq_card_infinitePlace - theorem NumberField.CMExtension.coe_ringOfIntegersComplexConj - theorem NumberField.CMExtension.coe_unitsComplexConj - theorem NumberField.CMExtension.complexConj_apply_apply - theorem NumberField.CMExtension.complexConj_eq_self_iff - theorem NumberField.CMExtension.complexConj_ne_one - theorem NumberField.CMExtension.complexEmbedding_complexConj - theorem NumberField.CMExtension.exists_isConj - theorem NumberField.CMExtension.isConj_complexConj - theorem NumberField.CMExtension.isConj_eq_isConj - theorem NumberField.CMExtension.orderOf_complexConj - theorem NumberField.CMExtension.ringOfIntegersComplexConj_apply_apply - theorem NumberField.CMExtension.ringOfIntegersComplexConj_eq_self_iff - theorem NumberField.CMExtension.unitsComplexConj_eq_self_iff - theorem NumberField.CMExtension.unitsComplexConj_torsion - theorem NumberField.CMExtension.unitsComplexEmbedding_complexConj - theorem NumberField.CMExtension.units_rank_eq_units_rank - theorem NumberField.CMExtension.zpowers_complexConj_eq_top + theorem NumberField.IsCMField.complexConj_apply_apply + theorem NumberField.IsCMField.complexConj_apply_eq_self + theorem NumberField.IsCMField.complexConj_ne_one + theorem NumberField.IsCMField.complexEmbedding_complexConj + theorem NumberField.IsCMField.exists_isConj + theorem NumberField.IsCMField.isConj_complexConj + theorem NumberField.IsCMField.isConj_eq_isConj + theorem NumberField.IsCMField.mem_realUnits_iff +/- theorem NumberField.IsCMField.ofCMExtension +/- theorem NumberField.IsCMField.of_forall_isConj + theorem NumberField.IsCMField.orderOf_complexConj +/- def NumberField.IsCMField.realUnits - theorem NumberField.IsCMField.ringOfIntegersComplexConj_eq_self_iff + theorem NumberField.IsCMField.unitsComplexConj_torsion + theorem NumberField.IsCMField.zpowers_complexConj_eq_top Modified Mathlib/NumberTheory/NumberField/InfinitePlace/TotallyRealComplex.lean + theorem NumberField.mem_maximalRealSubfield_iff 2025-09-18 14:30:37 ff9e325 feat(RingTheory): hom from local ring to ZMod is a local hom (#29407) Slight increase in imports by importing ZMod.Basic into LocalRing.RingHom.Basic. ESTIMATED CHANGES Modified Mathlib/RingTheory/LocalRing/RingHom/Basic.lean 2025-09-18 14:30:35 3f0f8ed chore(Algebra): golf entire `eq_lift_comp_mkRingHom` and `eq_liftAlgHom_comp_mkAlgHom` (#28378) ESTIMATED CHANGES Modified Mathlib/Algebra/RingQuot.lean 2025-09-18 13:30:20 c7383b2 chore: bump for ProofWidgets4#135 (#29773) ESTIMATED CHANGES Modified lake-manifest.json Modified lakefile.lean 2025-09-18 12:51:13 b79638e refactor(Analysis/Calculus/FDeriv): split off material on composing continuous linear maps (#29753) This PR splits off the first sections of `FDeriv/Mul.lean`, concerning the applying of continuous linear maps, into a new file. This material is unused in the rest of the file and does not have much to do with multiplication of functions either. Another motivation for this change is that `FDeriv/Mul.lean` is on the long pole and in the build trace it appears with only one other file being built continuously. By splitting it up and reducing its dependencies, we should be able to improve parallelism. https://speed.lean-lang.org/mathlib4-out/b16bc96c8fa8c9b828fd6b48607becccee06d77f/ ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Analysis/Calculus/ContDiff/Basic.lean Modified Mathlib/Analysis/Calculus/Deriv/Mul.lean Added Mathlib/Analysis/Calculus/FDeriv/CompCLM.lean + theorem Differentiable.clm_apply + theorem Differentiable.clm_comp + theorem Differentiable.continuousMultilinear_apply_const + theorem DifferentiableAt.clm_apply + theorem DifferentiableAt.clm_comp + theorem DifferentiableAt.continuousMultilinear_apply_const + theorem DifferentiableOn.clm_apply + theorem DifferentiableOn.clm_comp + theorem DifferentiableOn.continuousMultilinear_apply_const + theorem DifferentiableWithinAt.clm_apply + theorem DifferentiableWithinAt.clm_comp + theorem DifferentiableWithinAt.continuousMultilinear_apply_const + theorem HasFDerivAt.clm_apply + theorem HasFDerivAt.clm_comp + theorem HasFDerivAt.continuousMultilinear_apply_const + theorem HasFDerivWithinAt.clm_apply + theorem HasFDerivWithinAt.clm_comp + theorem HasFDerivWithinAt.continuousMultilinear_apply_const + theorem HasStrictFDerivAt.clm_apply + theorem HasStrictFDerivAt.clm_comp + theorem HasStrictFDerivAt.continuousMultilinear_apply_const + theorem fderivWithin_clm_apply + theorem fderivWithin_clm_comp + theorem fderivWithin_continuousMultilinear_apply_const + theorem fderivWithin_continuousMultilinear_apply_const_apply + theorem fderiv_clm_apply + theorem fderiv_clm_comp + theorem fderiv_continuousMultilinear_apply_const + theorem fderiv_continuousMultilinear_apply_const_apply Modified Mathlib/Analysis/Calculus/FDeriv/Mul.lean - theorem Differentiable.clm_apply - theorem Differentiable.clm_comp - theorem Differentiable.continuousMultilinear_apply_const - theorem DifferentiableAt.clm_apply - theorem DifferentiableAt.clm_comp - theorem DifferentiableAt.continuousMultilinear_apply_const - theorem DifferentiableOn.clm_apply - theorem DifferentiableOn.clm_comp - theorem DifferentiableOn.continuousMultilinear_apply_const - theorem DifferentiableWithinAt.clm_apply - theorem DifferentiableWithinAt.clm_comp - theorem DifferentiableWithinAt.continuousMultilinear_apply_const - theorem HasFDerivAt.clm_apply - theorem HasFDerivAt.clm_comp - theorem HasFDerivAt.continuousMultilinear_apply_const - theorem HasFDerivWithinAt.clm_apply - theorem HasFDerivWithinAt.clm_comp - theorem HasFDerivWithinAt.continuousMultilinear_apply_const - theorem HasStrictFDerivAt.clm_apply - theorem HasStrictFDerivAt.clm_comp - theorem HasStrictFDerivAt.continuousMultilinear_apply_const - theorem fderivWithin_clm_apply - theorem fderivWithin_clm_comp - theorem fderivWithin_continuousMultilinear_apply_const - theorem fderivWithin_continuousMultilinear_apply_const_apply - theorem fderiv_clm_apply - theorem fderiv_clm_comp - theorem fderiv_continuousMultilinear_apply_const - theorem fderiv_continuousMultilinear_apply_const_apply Modified Mathlib/Geometry/Manifold/MFDeriv/SpecificFunctions.lean 2025-09-18 12:51:11 4b34167 chore: Deprecate IsAdjoinRoot.subsingleton (#29516) This PR deprecates `IsAdjoinRoot.subsingleton` in favour of the new `Algebra.subsingleton`: ```lean theorem IsAdjoinRoot.subsingleton {R : Type u} {S : Type v} [CommRing R] [Ring S] {f : Polynomial R} [Algebra R S] (h : IsAdjoinRoot S f) [Subsingleton R] : Subsingleton S theorem Algebra.subsingleton (R : Type u) (A : Type v) [CommSemiring R] [Semiring A] [Algebra R A] [Subsingleton R] : Subsingleton A ``` ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/Defs.lean + theorem Algebra.subsingleton Modified Mathlib/RingTheory/IsAdjoinRoot.lean +/- theorem IsAdjoinRoot.subsingleton 2025-09-18 12:05:22 db0f76a chore(GroupWithZero/WithZero): reorganize variable names (#29644) ESTIMATED CHANGES Modified Mathlib/Algebra/GroupWithZero/WithZero.lean 2025-09-18 10:53:51 fcfc098 feat(Algebra): add `Algebra.adjoin_eq_adjoin_union` (#29673) If `A` is spanned over `R` by `s`, then the algebra spanned over `A` by `t` is the equal to the algebra spanned over `R` by `s ∪ t`. ESTIMATED CHANGES Modified Mathlib/RingTheory/Adjoin/Basic.lean + theorem Algebra.adjoin_eq_adjoin_union 2025-09-18 09:59:16 2e93e95 fix(CI): use `sed` instead of Bash string manipulation (#29767) Processing these log lines through `sed` seems to go much faster (minutes rather than hours). Verified on my own machine by running `lake build > build_log.txt; ./scripts/zulip_build_report.sh build-log.txt`. Shellcheck prefers Bash string manipulation, so we silence those lints. Timing differences on an example build log: * on `master`: 33s * on this branch: 0.01s ESTIMATED CHANGES Modified scripts/zulip_build_report.sh 2025-09-18 09:07:24 cf2d648 feat: theorems on `MulArchimedeanClass.mk (a / b)` (#29685) ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Archimedean/Class.lean + theorem MulArchimedeanClass.min_le_mk_div + theorem MulArchimedeanClass.mk_div_eq_mk_left + theorem MulArchimedeanClass.mk_div_eq_mk_right + theorem MulArchimedeanClass.mk_left_le_mk_div + theorem MulArchimedeanClass.mk_right_le_mk_div 2025-09-18 08:35:52 3c8e525 feat(RingTheory/Extension/Presentation): lemmas for computation of Jacobian (#28767) ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/Determinant.lean + theorem LinearMap.isUnit_iff_isUnit_det Modified Mathlib/LinearAlgebra/LinearIndependent/Lemmas.lean + theorem LinearMap.bijective_of_linearIndependent_of_span_eq_top + theorem LinearMap.injective_of_linearIndependent Modified Mathlib/RingTheory/Extension/Presentation/Submersive.lean + theorem Algebra.PreSubmersivePresentation.isUnit_jacobian_iff_aevalDifferential_bijective + theorem Algebra.PreSubmersivePresentation.isUnit_jacobian_of_linearIndependent_of_span_eq_top + theorem Algebra.PreSubmersivePresentation.jacobian_eq_det_aevalDifferential 2025-09-17 22:57:33 ea6efff chore: golf `LinearMap.charpoly_toMatrix` and add corollaries (#29420) ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/Charpoly/ToMatrix.lean + theorem Matrix.charpoly_mulVecLin + theorem Matrix.charpoly_toLin' + theorem Matrix.charpoly_toLin 2025-09-17 21:20:51 3366766 chore: update plausible (#29757) Replaces #29738 ESTIMATED CHANGES Modified Mathlib/Testing/Plausible/Functions.lean Modified lake-manifest.json 2025-09-17 21:07:06 6a4c896 feat(Grp_): `η ≫ ι = η` (#29736) and another simple lemma. From Toric ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Monoidal/Cartesian/Grp_.lean + theorem GrpObj.one_inv + theorem Grp_.homMk_hom' 2025-09-17 21:07:04 e567ca7 feat: pushforward of a group object along a monoidal functor (#29691) This is an unbundled version of `Functor.mapGrp`. From Toric ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Monoidal/Grp_.lean + theorem GrpObj.tensorObj.CategoryTheory.Functor.obj.ι_def 2025-09-17 20:43:06 8846f53 feat(CategoryTheory): (Co)limits in skeletons (#29318) As [suggested in the zulip](https://leanprover.zulipchat.com/#narrow/channel/217875-Is-there-code-for-X.3F/topic/Transporting.20properties.20along.20an.20equivalence.20of.20cats/with/533308058), I add here some instances for (co)limits in the skeletons. This is useful, e.g., for showing that `Subobject X` has arbitrary suprema/infima under some conditions in the underlying category. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Limits/Skeleton.lean Modified Mathlib/CategoryTheory/Skeletal.lean 2025-09-17 20:23:39 fa47c04 feat(CategoryTheory/Monoidal/DayConvolution): Day functors type synonym (#26824) Given monoidal categories `C` and `V`, we introduce a type synonym `DayFunctor C V` (denoted `C ⊛⥤ V`) for functors `C ⥤ V` and produce a category instance on it. Using the infrastructure from #26820, we show that this category admits a monoidal structure coming from Day convolution of functors. We provide a very basic API for this category, such as an abbreviation for the unit map of day convolutions, and a restatement of the universal property of the tensor product with respect to that unit. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Monoidal/DayConvolution/DayFunctor.lean + structure CategoryTheory.MonoidalCategory.DayFunctor.Hom + def CategoryTheory.MonoidalCategory.DayFunctor.equiv + theorem CategoryTheory.MonoidalCategory.DayFunctor.functor_mk + theorem CategoryTheory.MonoidalCategory.DayFunctor.hom_ext + def CategoryTheory.MonoidalCategory.DayFunctor.isoPointwiseLeftKanExtension + theorem CategoryTheory.MonoidalCategory.DayFunctor.mk_functor + def CategoryTheory.MonoidalCategory.DayFunctor.tensorDesc + theorem CategoryTheory.MonoidalCategory.DayFunctor.tensor_hom_ext + def CategoryTheory.MonoidalCategory.DayFunctor.unitDesc + theorem CategoryTheory.MonoidalCategory.DayFunctor.unit_hom_ext + def CategoryTheory.MonoidalCategory.DayFunctor.η + theorem CategoryTheory.MonoidalCategory.DayFunctor.η_comp_isoPointwiseLeftKanExtension_hom + theorem CategoryTheory.MonoidalCategory.DayFunctor.η_comp_tensorDec + theorem CategoryTheory.MonoidalCategory.DayFunctor.η_comp_tensorDesc_app + theorem CategoryTheory.MonoidalCategory.DayFunctor.ι_comp_isoPointwiseLeftKanExtension_inv + def CategoryTheory.MonoidalCategory.DayFunctor.ν + def CategoryTheory.MonoidalCategory.DayFunctor.νNatTrans + theorem CategoryTheory.MonoidalCategory.DayFunctor.ν_comp_unitDesc + structure CategoryTheory.MonoidalCategory.DayFunctor 2025-09-17 18:01:05 6b0379c feat(Algebra): add `mem_eqLocus` simp lemmas (#29749) Currently only `LinearMap.mem_eqLocus` exists. ESTIMATED CHANGES Modified Mathlib/Algebra/Field/Subfield/Basic.lean + theorem RingHom.mem_eqLocusField Modified Mathlib/Algebra/Group/Submonoid/Defs.lean + theorem MonoidHom.mem_eqLocusM Modified Mathlib/Algebra/Group/Subsemigroup/Defs.lean + theorem MulHom.mem_eqLocus Modified Mathlib/Algebra/Ring/Subring/Basic.lean + theorem RingHom.mem_eqLocus Modified Mathlib/Algebra/Ring/Subsemiring/Defs.lean + theorem RingHom.mem_eqLocusS Modified Mathlib/ModelTheory/Substructures.lean + theorem FirstOrder.Language.Hom.mem_eqLocus Modified Mathlib/RingTheory/NonUnitalSubring/Basic.lean + theorem NonUnitalRingHom.mem_eqLocus 2025-09-17 17:04:46 2f30c4c refactor(Data/Set/Finite): redo proof to reduce imports (#29752) This PR changes the construction of a `finite_iUnion` instance so that we do not need finiteness of sigma types. I noticed this import on the [long pole](https://speed.lean-lang.org/mathlib4-out/b16bc96c8fa8c9b828fd6b48607becccee06d77f/) and figured it can be reduced somewhat. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Sites/Coherent/CoherentTopology.lean Modified Mathlib/CategoryTheory/Sites/Coherent/ExtensiveTopology.lean Modified Mathlib/Data/Set/Finite/Lattice.lean Modified Mathlib/Data/Set/Finite/List.lean Modified Mathlib/Order/Filter/Finite.lean Modified Mathlib/Order/RelSeries.lean Modified Mathlib/Topology/Sets/CompactOpenCovered.lean 2025-09-17 17:04:44 50229ae chore(Algebra): reduce imports of Analysis in Algebra (#29745) This PR enforces we only import `Mathlib.Analysis` into `Mathlib.Algebra` in the `ZLattice` files. We do so by moving the definition of arithmetic-geometric sequences to `Mathlib.Analysis.SpecificLimits`, which is also where limits of geometric series live. ZLattices belong, in my opinion and that of Wikipedia, to algebra as much as Lie theory does ESTIMATED CHANGES Modified Mathlib.lean Renamed Mathlib/Algebra/ArithmeticGeometric.lean to Mathlib/Analysis/SpecificLimits/ArithmeticGeometric.lean Modified Mathlib/Tactic/Linter/DirectoryDependency.lean 2025-09-17 17:04:42 c8acac5 feat: add pre-commit config for cleaning trailing whitespace (#29733) ESTIMATED CHANGES Added .github/workflows/pre-commit.yml Added .pre-commit-config.yaml Modified Mathlib/Algebra/BigOperators/Sym.lean Modified Mathlib/Algebra/Category/Grp/AB.lean Modified Mathlib/Algebra/Category/ModuleCat/AB.lean Modified Mathlib/Algebra/Central/Defs.lean Modified Mathlib/Algebra/CharP/LinearMaps.lean Modified Mathlib/Algebra/DirectSum/Algebra.lean Modified Mathlib/Algebra/HierarchyDesign.lean Modified Mathlib/Algebra/PEmptyInstances.lean Modified Mathlib/Analysis/InnerProductSpace/Convex.lean Modified Mathlib/Geometry/Manifold/VectorBundle/FiberwiseLinear.lean Modified Mathlib/LinearAlgebra/PerfectPairing/Restrict.lean Modified Mathlib/RingTheory/Ideal/BigOperators.lean Modified Mathlib/Topology/Separation/Connected.lean Modified MathlibTest/finset_builder.lean Modified scripts/zulip_build_report.sh 2025-09-17 17:04:40 8267b58 chore(RingTheory/PowerSeries): golf `coeff_one_pow` using `ring` (#29732) ESTIMATED CHANGES Modified Mathlib/RingTheory/PowerSeries/Basic.lean 2025-09-17 16:51:04 8d1cfe6 doc: fix typo (#29739) There should be no hyphen in "Monte Carlo" ESTIMATED CHANGES Modified docs/undergrad.yaml 2025-09-17 16:12:02 4f719ec feat(NumberTheory/Padic): extend API for zmodRepr (#29405) Include lemmas for simplifying norms of `p - 1` when lifted into Z_[p] and Q_[p] Provide specialized lemmas for `Padic` that rewrite norms in a similar way as `IsUltrametricDist` lemmas, without the import Describe how norms of `zmodRepr` are equal to 1 for units, which is specialized for naturals cast into Z_[p] Extract mapping lemmas from the ring-hom version of `zmodRepr` (`toZMod`) and provide them for `zmodRepr` as well Connect the `ZMod.val` injection + cast to `PadicInt.toZMod`, showing that they are inverse via `val_toZMod_eq_zmodRepr`. In preparation for `p - 1` roots of unity of Z_[p] and Q_[p] ESTIMATED CHANGES Modified Mathlib/NumberTheory/Padics/PadicIntegers.lean + theorem PadicInt.norm_natCast_p_sub_one + theorem PadicInt.one_le_norm_iff + theorem PadicInt.val_mkUnits Modified Mathlib/NumberTheory/Padics/PadicNumbers.lean - theorem Padic.eq_of_norm_add_lt_left - theorem Padic.eq_of_norm_add_lt_right + theorem Padic.norm_eq_of_norm_add_lt_left + theorem Padic.norm_eq_of_norm_add_lt_right + theorem Padic.norm_eq_of_norm_sub_lt_left + theorem Padic.norm_eq_of_norm_sub_lt_right + theorem Padic.norm_natCast_p_sub_one Modified Mathlib/NumberTheory/Padics/RingHoms.lean + theorem PadicInt.norm_natCast_zmodRepr_eq + theorem PadicInt.norm_natCast_zmodRepr_eq_iff + theorem PadicInt.norm_natCast_zmodRepr_eq_one_iff + theorem PadicInt.norm_natCast_zmodRepr_eq_one_iff_ne + theorem PadicInt.norm_sub_zmodRepr_lt_one + theorem PadicInt.toZMod_eq_residueField_comp_residue + theorem PadicInt.val_toZMod_eq_zmodRepr + theorem PadicInt.zmodRepr_eq_zero_iff_dvd + theorem PadicInt.zmodRepr_eq_zero_of_dvd + theorem PadicInt.zmodRepr_mul + theorem PadicInt.zmodRepr_natCast + theorem PadicInt.zmodRepr_natCast_ofNat + theorem PadicInt.zmodRepr_natCast_of_lt + theorem PadicInt.zmodRepr_natCast_zmodRepr +/- theorem PadicInt.zmodRepr_unique + theorem PadicInt.zmodRepr_units_ne_zero + theorem PadicInt.zmodRepr_zero 2025-09-17 15:06:06 5413137 feat(RingTheory/RootsOfUnity): of_card_le (#29416) If the cardinality of n-th roots of unity is >= n, then `HasEnoughRootsOfUnity` the reverse direction of `natCard_rootsOfUnity` but requires `CommRing` Stated with an `LE` instead of `Eq` to have a weaker hypothesis ESTIMATED CHANGES Modified Mathlib/RingTheory/RootsOfUnity/EnoughRootsOfUnity.lean + theorem HasEnoughRootsOfUnity.of_card_le Modified Mathlib/RingTheory/RootsOfUnity/PrimitiveRoots.lean + theorem card_rootsOfUnity_eq_iff_exists_isPrimitiveRoot 2025-09-17 14:03:08 d3542f3 feat: add Nontrivial instance for linear maps (#28958) Show that the space of `K`-linear maps between two non-trivial `K`-vector spaces is nontrivial, and that the space of continuous linear maps between two non-trivial topological vector spaces `V` and `W` over a topological field `R` is nontrivial, under the assumption that `R`-scalar multiplication is continuous on `W` and that `SeparatingDual R V`. ESTIMATED CHANGES Modified Mathlib/Analysis/Normed/Module/Span.lean Modified Mathlib/Analysis/NormedSpace/HahnBanach/Extension.lean Modified Mathlib/Analysis/NormedSpace/HahnBanach/SeparatingDual.lean Modified Mathlib/LinearAlgebra/Basis/VectorSpace.lean Modified Mathlib/MeasureTheory/Function/AEEqOfIntegral.lean 2025-09-17 13:39:45 47146f0 chore(Topology/Algebra/Affine): generalize `eventually_homothety_*` to `IsTopologicalAddTorsor` (#29620) ESTIMATED CHANGES Modified Mathlib/Analysis/Normed/Affine/AddTorsor.lean - theorem eventually_homothety_image_subset_of_finite_subset_interior - theorem eventually_homothety_mem_of_mem_interior Modified Mathlib/Topology/Algebra/Affine.lean + theorem eventually_homothety_image_subset_of_finite_subset_interior + theorem eventually_homothety_mem_of_mem_interior 2025-09-17 12:43:56 af4f406 chore(CategoryTheory/Bicategory/Functor/Strict): generalize some results to op/lax functors (#28289) We generalize some of the results in `CategoryTheory/Bicategory/Functor/Strict/` to op/lax functors. The results for lax functors will be useful when studying types of strictly unitary lay functors from `LocallyDiscrete (Fin (n + 1))` to a bicategory `B`, i.e the type of lax-composable arrows in `B`. This PR is part of an ongoing effort to formalize the Duskin nerve of a bicategory. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Bicategory/Functor/Lax.lean + def CategoryTheory.LaxFunctor.mapComp' + theorem CategoryTheory.LaxFunctor.mapComp'_eq_mapComp + def CategoryTheory.LaxFunctor.mapId' + theorem CategoryTheory.LaxFunctor.mapId'_eq_mapId Modified Mathlib/CategoryTheory/Bicategory/Functor/Oplax.lean + def CategoryTheory.OplaxFunctor.mapComp' + theorem CategoryTheory.OplaxFunctor.mapComp'_eq_mapComp + def CategoryTheory.OplaxFunctor.mapId' + theorem CategoryTheory.OplaxFunctor.mapId'_eq_mapId Modified Mathlib/CategoryTheory/Bicategory/Functor/Pseudofunctor.lean + theorem CategoryTheory.Pseudofunctor.toLax_mapComp' + theorem CategoryTheory.Pseudofunctor.toLax_mapId' + theorem CategoryTheory.Pseudofunctor.toOplax_mapComp' + theorem CategoryTheory.Pseudofunctor.toOplax_mapId' Modified Mathlib/CategoryTheory/Bicategory/Functor/Strict.lean + theorem CategoryTheory.LaxFunctor.mapComp'_whiskerRight_comp_mapComp' + theorem CategoryTheory.LaxFunctor.whiskerLeft_mapComp'_comp_mapComp' + theorem CategoryTheory.OplaxFunctor.mapComp'_comp_mapComp'_whiskerRight + theorem CategoryTheory.OplaxFunctor.mapComp'_comp_whiskerLeft_mapComp' 2025-09-17 12:23:42 fd8c168 feat(ModelTheory): define linear and semilinear sets (#27342) Separated from #27100. This PR defines the [linear and semilinear sets](https://en.wikipedia.org/wiki/Generalized_arithmetic_progression#Semilinear_sets) for any `AddCommMonoid` and prove some basic properties. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/ModelTheory/Arithmetic/Presburger/Semilinear/Defs.lean + theorem IsLinearSet.add + theorem IsLinearSet.closure_finset + theorem IsLinearSet.closure_of_finite + theorem IsLinearSet.image + theorem IsLinearSet.isProperSemilinearSet + theorem IsLinearSet.isSemilinearSet + theorem IsLinearSet.of_fg + theorem IsLinearSet.singleton + theorem IsLinearSet.vadd + def IsLinearSet + theorem IsProperLinearSet.isLinearSet + theorem IsProperLinearSet.isProperSemilinearSet + theorem IsProperLinearSet.singleton + def IsProperLinearSet + theorem IsProperSemilinearSet.biUnion + theorem IsProperSemilinearSet.biUnion_finset + theorem IsProperSemilinearSet.empty + theorem IsProperSemilinearSet.isSemilinearSet + theorem IsProperSemilinearSet.sUnion + theorem IsProperSemilinearSet.union + def IsProperSemilinearSet + theorem IsSemilinearSet.add + theorem IsSemilinearSet.biUnion + theorem IsSemilinearSet.biUnion_finset + theorem IsSemilinearSet.closure_finset + theorem IsSemilinearSet.closure_of_finite + theorem IsSemilinearSet.empty + theorem IsSemilinearSet.iUnion + theorem IsSemilinearSet.image + theorem IsSemilinearSet.isProperSemilinearSet + theorem IsSemilinearSet.of_fg + theorem IsSemilinearSet.of_finite + theorem IsSemilinearSet.proj' + theorem IsSemilinearSet.proj + theorem IsSemilinearSet.sUnion + theorem IsSemilinearSet.singleton + theorem IsSemilinearSet.union + theorem IsSemilinearSet.vadd + def IsSemilinearSet + theorem isLinearSet_iff + theorem isLinearSet_iff_exists_fg_eq_vadd + theorem isProperLinearSet_iff + theorem isSemilinearSet_image_iff Modified docs/references.bib 2025-09-17 11:12:53 7fe0746 fix: update the nightly regression linter set to match rename (#29740) These linter options got renamed but the set did not get updated. Update the set and add a check for future occurrences. ESTIMATED CHANGES Modified Mathlib/Init.lean 2025-09-17 11:12:51 9913918 doc: improve grammar and flow in documentation (#29498) This PR might be deemed too stylistic in nature, but I'll propose it anyhow, with the purpose of sectioning out potential for bikeshedding from #29464. The changes are largely the work of LLM coding agents, but I have manually checked every change and have not included anything in this PR that I cannot personally stand for. In totality, my opinion is that this PR improves the legibility, clarity and conciseness of the documentation it covers, and should be merged. ESTIMATED CHANGES Modified Mathlib/Computability/AkraBazzi/AkraBazzi.lean Modified Mathlib/Computability/AkraBazzi/GrowsPolynomially.lean Modified Mathlib/Computability/AkraBazzi/SumTransform.lean 2025-09-17 11:12:49 e6ceccb feat: ContMDiffAt.pow (#29459) Powers of `C^n` functions `M → G` into a commutative monoid `G` are `C^n`. This is upstreamed from [https://github.com/girving/ray](https://github.com/girving/ray). ESTIMATED CHANGES Modified Mathlib/Geometry/Manifold/Algebra/Monoid.lean + theorem ContMDiff.pow + theorem ContMDiffOn.pow + theorem ContMDiffWithinAt.pow 2025-09-17 11:12:46 9a09b74 feat: a subcomplex of a classical CW complex is a CW complex (#29177) This PR proves that any subcomplex of a (relative classical) CW complex is again a CW complex. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Topology/CWComplex/Classical/Basic.lean + theorem Topology.CWComplex.isClosed_of_disjoint_openCell_or_isClosed_inter_closedCell + theorem Topology.RelCWComplex.isClosed_of_disjoint_openCell_or_isClosed_inter_closedCell Added Mathlib/Topology/CWComplex/Classical/Subcomplex.lean + theorem Topology.CWComplex.Subcomplex.cell_def + theorem Topology.CWComplex.Subcomplex.map_def + theorem Topology.CWComplex.Subcomplex.union_closedCell + theorem Topology.RelCWComplex.Subcomplex.cellFrontier_eq + theorem Topology.RelCWComplex.Subcomplex.cellFrontier_subset_of_mem + theorem Topology.RelCWComplex.Subcomplex.closedCell_eq + theorem Topology.RelCWComplex.Subcomplex.closedCell_subset_of_mem + theorem Topology.RelCWComplex.Subcomplex.disjoint_openCell_subcomplex_of_not_mem + theorem Topology.RelCWComplex.Subcomplex.openCell_eq + theorem Topology.RelCWComplex.Subcomplex.openCell_subset_of_mem + theorem Topology.RelCWComplex.Subcomplex.union_closedCell Modified docs/references.bib 2025-09-17 11:12:43 88520b7 refactor(AbsoluteValue): generalise equivalence to non-real valued absolute values (#27964) - Abstract the definition of `AbsoluteValue.IsEquiv` to any `AbsoluteValue R S` via preservation of partial orders (previously defined only for real absolute value using the power relation `(v .)^c = w`) - Show `AbsoluteValue.IsEquiv` is equivalent to the power definition when the values are real - Two inequivalent absolute values `v` and `w` have a point `x` at which `1 < v x` and `w x < 1` ESTIMATED CHANGES Modified Mathlib/Algebra/Order/AbsoluteValue/Basic.lean Modified Mathlib/Analysis/AbsoluteValue/Equivalence.lean + theorem AbsoluteValue.IsEquiv.eq_iff_eq + theorem AbsoluteValue.IsEquiv.eq_one_iff + theorem AbsoluteValue.IsEquiv.isNontrivial_congr + theorem AbsoluteValue.IsEquiv.le_iff_le + theorem AbsoluteValue.IsEquiv.le_one_iff + theorem AbsoluteValue.IsEquiv.log_div_log_eq_log_div_log + theorem AbsoluteValue.IsEquiv.log_div_log_pos + theorem AbsoluteValue.IsEquiv.lt_iff_lt + theorem AbsoluteValue.IsEquiv.lt_one_iff + theorem AbsoluteValue.IsEquiv.one_le_iff + theorem AbsoluteValue.IsEquiv.one_lt_iff + theorem AbsoluteValue.IsEquiv.refl + theorem AbsoluteValue.IsEquiv.rfl + theorem AbsoluteValue.IsEquiv.symm + theorem AbsoluteValue.IsEquiv.trans +/- def AbsoluteValue.IsEquiv - theorem AbsoluteValue.eq_trivial_of_isEquiv_trivial + theorem AbsoluteValue.exists_lt_one_one_le_of_not_isEquiv + theorem AbsoluteValue.exists_one_lt_lt_one_of_not_isEquiv + theorem AbsoluteValue.isEquiv_iff_exists_rpow_eq + theorem AbsoluteValue.isEquiv_iff_lt_one_iff + theorem AbsoluteValue.isEquiv_of_lt_one_imp - theorem AbsoluteValue.isEquiv_refl - theorem AbsoluteValue.isEquiv_symm - theorem AbsoluteValue.isEquiv_trans + theorem AbsoluteValue.isEquiv_trivial_iff_eq_trivial Modified Mathlib/NumberTheory/Ostrowski.lean - theorem Rat.AbsoluteValue.equiv_on_nat_iff_equiv +/- theorem Rat.AbsoluteValue.equiv_real_of_unbounded + theorem Rat.AbsoluteValue.exists_nat_rpow_iff_isEquiv - theorem Rat.AbsoluteValue.not_real_equiv_padic + theorem Rat.AbsoluteValue.not_real_isEquiv_padic 2025-09-17 10:12:40 6c38ba4 feat(Logic/Basic): HEq iff Exists a cast (#29228) Proves that `a ≍ b ↔ ∃ (h : β = α), a = cast h b`. This is pretty similar to existing e.g. `heq_of_eq_cast (e : β = α) : a = cast e b → a ≍ b`, but this is more amenable to rewriting with simp (e.g. under binders). ESTIMATED CHANGES Modified Mathlib/Logic/Basic.lean + theorem heq_iff_exists_cast_eq + theorem heq_iff_exists_eq_cast 2025-09-17 10:12:37 4536223 feat: dcongr_heq (#28149) `dcongr_heq` is very useful for proofs about typevecs as these are highly dependent ESTIMATED CHANGES Modified Mathlib/Logic/Basic.lean + theorem dcongr_heq.{u, 2025-09-17 10:12:35 b16bc96 feat(Order): no basic lemmas and some SuccOrder `biUnion` lemmas (#27934) Documents that not all possible interval inclusion lemmas will be added to `Basic.lean`. Also proves some `biUnion` results about `SuccOrder`. ESTIMATED CHANGES Modified Mathlib/Order/Interval/Set/Basic.lean Modified Mathlib/Order/SuccPred/Archimedean.lean +/- theorem Pred.rec +/- theorem Succ.rec Modified Mathlib/Order/SuccPred/IntervalSucc.lean + theorem biUnion_Ici_Ico_map_succ + theorem biUnion_Ici_Ioc_map_succ 2025-09-17 10:12:32 425027f feat: add isOpen_setOf_affineIndependent (#23528) From sphere-eversion. ESTIMATED CHANGES Modified Mathlib/Analysis/Normed/Module/FiniteDimension.lean + theorem isOpen_setOf_affineIndependent 2025-09-17 09:25:55 c122fa6 feat(Data/Nat): p.Coprime factorial and choose (#29404) And descFactorial, for n < p ESTIMATED CHANGES Modified Mathlib/Data/Nat/Choose/Dvd.lean + theorem Nat.Prime.coprime_choose_of_lt Modified Mathlib/Data/Nat/Prime/Factorial.lean + theorem Nat.Prime.coprime_descFactorial_of_lt_of_le + theorem Nat.Prime.coprime_factorial_of_lt 2025-09-17 09:25:53 8a40195 chore(RingTheory): process porting notes, part 2 (#29353) This PR goes through all the remaining porting notes in the RingTheory folder and fixes the ones that have an obvious solution. ESTIMATED CHANGES Modified Mathlib/Algebra/Module/Equiv/Defs.lean + theorem LinearEquiv.coe_symm_mk' Modified Mathlib/Algebra/Module/LocalizedModule/Basic.lean - theorem IsLocalizedModule.surj Modified Mathlib/Algebra/Module/LocalizedModule/Submodule.lean Modified Mathlib/Algebra/Polynomial/Laurent.lean Modified Mathlib/FieldTheory/RatFunc/Basic.lean Modified Mathlib/NumberTheory/Cyclotomic/Basic.lean Modified Mathlib/NumberTheory/NumberField/FractionalIdeal.lean Modified Mathlib/NumberTheory/Padics/PadicIntegers.lean Modified Mathlib/RingTheory/Extension/Presentation/Submersive.lean Modified Mathlib/RingTheory/LaurentSeries.lean Modified Mathlib/RingTheory/LocalRing/ResidueField/Ideal.lean Modified Mathlib/RingTheory/Localization/Algebra.lean Modified Mathlib/RingTheory/Localization/AtPrime/Basic.lean Modified Mathlib/RingTheory/Localization/Away/AdjoinRoot.lean Modified Mathlib/RingTheory/Localization/Away/Basic.lean Modified Mathlib/RingTheory/Localization/Basic.lean Modified Mathlib/RingTheory/Localization/Defs.lean - theorem IsLocalization.map_units - theorem IsLocalization.surj Modified Mathlib/RingTheory/Localization/FractionRing.lean +/- theorem IsFractionRing.coe_inj Modified Mathlib/RingTheory/Localization/Ideal.lean Modified Mathlib/RingTheory/Localization/Integral.lean Modified Mathlib/RingTheory/Localization/InvSubmonoid.lean Modified Mathlib/RingTheory/Localization/LocalizationLocalization.lean Modified Mathlib/RingTheory/Localization/NumDen.lean Modified Mathlib/RingTheory/Localization/Pi.lean Modified Mathlib/RingTheory/MatrixAlgebra.lean Modified Mathlib/RingTheory/Multiplicity.lean Modified Mathlib/RingTheory/MvPolynomial/Tower.lean Modified Mathlib/RingTheory/MvPowerSeries/Basic.lean Modified Mathlib/RingTheory/Noetherian/Defs.lean Modified Mathlib/RingTheory/NonUnitalSubsemiring/Basic.lean Modified Mathlib/RingTheory/Nullstellensatz.lean Modified Mathlib/RingTheory/Polynomial/Bernstein.lean Modified Mathlib/RingTheory/Polynomial/Content.lean Modified Mathlib/RingTheory/Polynomial/Cyclotomic/Roots.lean Modified Mathlib/RingTheory/Polynomial/Dickson.lean Modified Mathlib/RingTheory/Polynomial/Eisenstein/Basic.lean Modified Mathlib/RingTheory/Polynomial/GaussLemma.lean Modified Mathlib/RingTheory/Polynomial/Hermite/Basic.lean Modified Mathlib/RingTheory/Polynomial/Hermite/Gaussian.lean Modified Mathlib/RingTheory/Polynomial/RationalRoot.lean Modified Mathlib/RingTheory/PowerSeries/Basic.lean Modified Mathlib/RingTheory/ReesAlgebra.lean Modified Mathlib/RingTheory/RingHomProperties.lean Modified Mathlib/RingTheory/RingInvo.lean Modified Mathlib/RingTheory/RootsOfUnity/Basic.lean Modified Mathlib/RingTheory/RootsOfUnity/Minpoly.lean Modified Mathlib/RingTheory/SimpleModule/Basic.lean - def JordanHolderModule.Iso - theorem JordanHolderModule.iso_symm - theorem JordanHolderModule.iso_trans - theorem JordanHolderModule.second_iso Modified Mathlib/RingTheory/Smooth/Basic.lean Modified Mathlib/RingTheory/Spectrum/Prime/Basic.lean Modified Mathlib/RingTheory/TensorProduct/Free.lean Modified Mathlib/RingTheory/Trace/Basic.lean Modified Mathlib/RingTheory/Unramified/Basic.lean Modified Mathlib/RingTheory/Valuation/Basic.lean +/- def AddValuation.asFun Modified Mathlib/RingTheory/Valuation/Quotient.lean Modified Mathlib/RingTheory/Valuation/ValuationRing.lean - theorem ValuationRing.cond Modified Mathlib/RingTheory/Valuation/ValuationSubring.lean Modified Mathlib/RingTheory/WittVector/Basic.lean +/- theorem WittVector.mapFun.injective Modified Mathlib/RingTheory/WittVector/Frobenius.lean Modified Mathlib/RingTheory/WittVector/Identities.lean Modified Mathlib/RingTheory/WittVector/IsPoly.lean Modified Mathlib/RingTheory/WittVector/MulCoeff.lean 2025-09-17 09:25:50 8afdc2e chore: rename hom_to_functor, id_to_functor (#29250) The files `CategoryTheory.Category.Grpd` and `CategoryTheory.Category.Cat` should be consistent in naming conventions and style. Here I renamed `CategoryTheory.Grpd.hom_to_functor` to `CategoryTheory.Grpd.comp_eq_comp` to mirror `CategoryTheory.Cat.comp_eq_comp`. Similarly I renamed `CategoryTheory.Grpd.id_to_functor` to `CategoryTheory.Grpd.id_eq_eq` ESTIMATED CHANGES Modified Mathlib/AlgebraicTopology/FundamentalGroupoid/InducedMaps.lean Modified Mathlib/CategoryTheory/Category/Grpd.lean + theorem CategoryTheory.Grpd.comp_eq_comp - theorem CategoryTheory.Grpd.hom_to_functor + theorem CategoryTheory.Grpd.id_eq_id 2025-09-17 08:54:03 e942f24 feat: add `ENat.card_coe_set_eq` to match `Nat.card_coe_set_eq` (#29716) ESTIMATED CHANGES Modified Mathlib/Data/Set/Card.lean + theorem ENat.card_coe_set_eq Modified Mathlib/MeasureTheory/Measure/Count.lean 2025-09-17 08:54:01 47b4d78 chore(AlgebraicTopology/ModelCategory): remove redundant `have` in `mk'.cm3a_aux` (#28981) ESTIMATED CHANGES Modified Mathlib/AlgebraicTopology/ModelCategory/Basic.lean 2025-09-17 08:53:58 5e52cb6 feat(FieldTheory/SplittingField/IsSplittingField): add IsScalarTower.splits, IsScalarTower.isAlgebraic (#26667) ESTIMATED CHANGES Modified Mathlib/FieldTheory/SplittingField/IsSplittingField.lean + theorem Polynomial.IsSplittingField.IsScalarTower.isAlgebraic + theorem Polynomial.IsSplittingField.IsScalarTower.splits 2025-09-17 08:27:34 fa3e1aa chore(Algebra/AddTorsor/Basic): import existing `Pi.vadd'` instance (#29618) Removes a duplicate definition of `+ᵥ` in `Pi.instAddTorsor`. ESTIMATED CHANGES Modified Mathlib/Algebra/AddTorsor/Basic.lean 2025-09-17 08:13:29 6845e57 feat(CategoryTheory/Bicategory/Functor): strictly unitary lax/pseudo functors (#27849) We define strictly unitary lax/pseudo functors between bicategories. A lax (resp. pseudo-)functor from `C` to `D` is strictly unitary if `F.map(𝟙 X) = 𝟙 (F.obj X)` and if the 2-cell `mapId` is the identity 2-cell induced by this equality. We provide a constructor for those that do not require the `mapId` field. Although this structure is somewhat "evil" from a purely categorical perspective (it mentions non-definitonal equality of objects in a 1-category), these class of functors are of interest: strictly unitary lax functors are part of the definition of the Duskin nerve of a bicategory (which embeds bicategories in the theory of simplicial sets), while strictly unitary pseudofunctors are part of the definition of the 2-nerve of a bicategory, which embeds bicategories into the theory of simplicial categories. This PR is part of an ongoing work that will hopefully culminate with the construction of the Duskin Nerve, as well as a proof of the fact that the Duskin nerve of a locally groupoidal bicategory is a quasicategory. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Bicategory/Functor/StrictlyUnitary.lean + def CategoryTheory.StrictlyUnitaryLaxFunctor.comp + theorem CategoryTheory.StrictlyUnitaryLaxFunctor.comp_assoc + theorem CategoryTheory.StrictlyUnitaryLaxFunctor.comp_id + def CategoryTheory.StrictlyUnitaryLaxFunctor.id + theorem CategoryTheory.StrictlyUnitaryLaxFunctor.id_comp + def CategoryTheory.StrictlyUnitaryLaxFunctor.mapIdIso + def CategoryTheory.StrictlyUnitaryLaxFunctor.mk' + structure CategoryTheory.StrictlyUnitaryLaxFunctor + structure CategoryTheory.StrictlyUnitaryLaxFunctorCore + def CategoryTheory.StrictlyUnitaryPseudofunctor.comp + def CategoryTheory.StrictlyUnitaryPseudofunctor.id + def CategoryTheory.StrictlyUnitaryPseudofunctor.mk' + def CategoryTheory.StrictlyUnitaryPseudofunctor.toStrictlyUnitaryLaxFunctor + theorem CategoryTheory.StrictlyUnitaryPseudofunctor.toStrictlyUnitaryLaxFunctor_map + theorem CategoryTheory.StrictlyUnitaryPseudofunctor.toStrictlyUnitaryLaxFunctor_mapComp + theorem CategoryTheory.StrictlyUnitaryPseudofunctor.toStrictlyUnitaryLaxFunctor_mapId + theorem CategoryTheory.StrictlyUnitaryPseudofunctor.toStrictlyUnitaryLaxFunctor_map₂ + theorem CategoryTheory.StrictlyUnitaryPseudofunctor.toStrictlyUnitaryLaxFunctor_obj + structure CategoryTheory.StrictlyUnitaryPseudofunctor + structure CategoryTheory.StrictlyUnitaryPseudofunctorCore 2025-09-17 08:00:14 8d4dd98 doc(LinearPMap): Fix links (#29730) ESTIMATED CHANGES Modified Mathlib/Topology/Algebra/Module/LinearPMap.lean 2025-09-17 06:29:35 9045a8d feat (Limits.FunctorCategory): limitIsoFlipCompLim and colimitIsoFlipCompColim are natural (#29227) Add `limIsoFlipCompWhiskerLim`, `limCompFlipIsoWhiskerLim`, `colimIsoFlipCompWhiskerColim`, `colimCompFlipIsoWhiskerColim`, each witnessing that their corresponding families of isomorphisms are natural in the diagram $F# . ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Limits/FunctorCategory/Basic.lean + def CategoryTheory.Limits.colimCompFlipIsoWhiskerColim + def CategoryTheory.Limits.colimIsoFlipCompWhiskerColim + def CategoryTheory.Limits.limCompFlipIsoWhiskerLim + def CategoryTheory.Limits.limIsoFlipCompWhiskerLim 2025-09-17 06:03:47 d7c5652 chore: rename `Mon_`, `Comon_`, ... to `Mon`, `Comon`, etc (#29660) Moves: * `Mon_` -> `Mon` * `Comon_` -> `Comon` * `Bimon_` -> `Bimon` * `Hopf_` -> `Hopf` * `IsMon_Hom` -> `IsMonHom` * `IsComon_Hom` -> `IsComonHom` * `IsBimon_Hom` -> `IsBimonHom` `Mod_` and `Grp_`/`CommGrp_` will follow in a later PR. [Zulip](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Removing.20underscores.20from.20docs.23Mon_.2C.20docs.23Grp_.20.2E.2E.2E) ESTIMATED CHANGES Modified Mathlib/Algebra/Category/CoalgCat/ComonEquivalence.lean +/- def CoalgCat.comonEquivalence +/- def CoalgCat.toComon Modified Mathlib/Algebra/Category/CommBialgCat.lean +/- def commBialgCatEquivComonCommAlgCat Modified Mathlib/CategoryTheory/Monad/EquivMon.lean +/- def CategoryTheory.Monad.monToMonad +/- def CategoryTheory.Monad.monadMonEquiv +/- def CategoryTheory.Monad.monadToMon +/- def CategoryTheory.Monad.ofMon +/- theorem CategoryTheory.Monad.ofMon_obj +/- def CategoryTheory.Monad.toMon Modified Mathlib/CategoryTheory/Monoidal/Action/Basic.lean Modified Mathlib/CategoryTheory/Monoidal/Bimod.lean +/- theorem Bimod.comp_whiskerLeft_bimod +/- theorem Bimod.comp_whiskerRight_bimod +/- theorem Bimod.id_whiskerLeft_bimod +/- theorem Bimod.id_whiskerRight_bimod +/- def Bimod.isoOfIso +/- theorem Bimod.pentagon_bimod +/- theorem Bimod.triangle_bimod +/- theorem Bimod.whiskerLeft_comp_bimod +/- theorem Bimod.whiskerLeft_id_bimod +/- theorem Bimod.whiskerRight_comp_bimod +/- theorem Bimod.whiskerRight_id_bimod +/- theorem Bimod.whisker_assoc_bimod +/- theorem Bimod.whisker_exchange_bimod +/- structure Bimod Modified Mathlib/CategoryTheory/Monoidal/Bimon_.lean + theorem Bimon.BimonObjAux_comul + theorem Bimon.BimonObjAux_counit + theorem Bimon.comp_hom' + theorem Bimon.compatibility + def Bimon.equivMonComon + def Bimon.equivMonComonCounitIsoApp + def Bimon.equivMonComonCounitIsoAppX + def Bimon.equivMonComonCounitIsoAppXAux + def Bimon.equivMonComonUnitIsoApp + def Bimon.equivMonComonUnitIsoAppX + def Bimon.equivMonComonUnitIsoAppXAux + theorem Bimon.ext + def Bimon.forget + theorem Bimon.id_hom' + def Bimon.mk' + def Bimon.mk'X + theorem Bimon.mul_counit + def Bimon.ofMonComon + def Bimon.ofMonComonObj + def Bimon.ofMonComonObjX + theorem Bimon.ofMonComonObjX_mul + theorem Bimon.ofMonComonObjX_one + theorem Bimon.ofMonComon_toMonComon_obj_comul + theorem Bimon.ofMonComon_toMonComon_obj_counit + theorem Bimon.one_comul + def Bimon.toComon + theorem Bimon.toComon_forget + def Bimon.toMonComon + def Bimon.toMonComonObj + theorem Bimon.toMonComon_ofMonComon_obj_mul + theorem Bimon.toMonComon_ofMonComon_obj_one + theorem Bimon.toMon_forget + def Bimon.toTrivial + def Bimon.trivial + def Bimon.trivialTo + def Bimon - theorem Bimon_.BimonObjAux_comul - theorem Bimon_.BimonObjAux_counit - theorem Bimon_.comp_hom' - theorem Bimon_.compatibility - def Bimon_.equivMon_Comon_ - def Bimon_.equivMon_Comon_CounitIsoApp - def Bimon_.equivMon_Comon_CounitIsoAppX - def Bimon_.equivMon_Comon_CounitIsoAppXAux - def Bimon_.equivMon_Comon_UnitIsoApp - def Bimon_.equivMon_Comon_UnitIsoAppX - def Bimon_.equivMon_Comon_UnitIsoAppXAux - theorem Bimon_.ext - def Bimon_.forget - theorem Bimon_.id_hom' - def Bimon_.mk' - def Bimon_.mk'X - theorem Bimon_.mul_counit - def Bimon_.ofMon_Comon_ - def Bimon_.ofMon_Comon_Obj - def Bimon_.ofMon_Comon_ObjX - theorem Bimon_.ofMon_Comon_ObjX_mul - theorem Bimon_.ofMon_Comon_ObjX_one - theorem Bimon_.ofMon_Comon_toMon_Comon_obj_comul - theorem Bimon_.ofMon_Comon_toMon_Comon_obj_counit - theorem Bimon_.one_comul - def Bimon_.toComon_ - theorem Bimon_.toComon_forget - def Bimon_.toMon_Comon_ - def Bimon_.toMon_Comon_obj - theorem Bimon_.toMon_Comon_ofMon_Comon_obj_mul - theorem Bimon_.toMon_Comon_ofMon_Comon_obj_one - theorem Bimon_.toMon_forget - def Bimon_.toTrivial - def Bimon_.trivial - def Bimon_.trivialTo - def Bimon_ Modified Mathlib/CategoryTheory/Monoidal/Cartesian/CommMon_.lean Modified Mathlib/CategoryTheory/Monoidal/Cartesian/Comon_.lean + def cartesianComon - def cartesianComon_ +/- def comonEquiv + def isoCartesianComon - def iso_cartesianComon_ Modified Mathlib/CategoryTheory/Monoidal/Cartesian/Grp_.lean +/- theorem GrpObj.div_comp +/- theorem GrpObj.inv_comp +/- theorem GrpObj.zpow_comp +/- def Grp_.homMk Modified Mathlib/CategoryTheory/Monoidal/Cartesian/Mod_.lean +/- def Mod_.trivialAction Modified Mathlib/CategoryTheory/Monoidal/Cartesian/Mon_.lean + theorem Mon.fst_hom + theorem Mon.lift_hom + theorem Mon.snd_hom +/- theorem MonObj.mul_comp +/- theorem MonObj.one_comp +/- theorem MonObj.pow_comp - theorem Mon_.fst_hom - theorem Mon_.lift_hom - theorem Mon_.snd_hom +/- def yonedaMon Modified Mathlib/CategoryTheory/Monoidal/CommGrp_.lean + def CommGrp_.forget₂CommMon - def CommGrp_.forget₂CommMon_ +/- theorem CommGrp_.forget₂CommMon_comp_forget +/- theorem CommGrp_.forget₂CommMon_obj_mul +/- theorem CommGrp_.forget₂CommMon_obj_one + def CommGrp_.fullyFaithfulForget₂CommMon - def CommGrp_.fullyFaithfulForget₂CommMon_ +/- theorem CommGrp_.id' +/- theorem CommGrp_.id_hom + def CommGrp_.toCommMon - def CommGrp_.toCommMon_ Modified Mathlib/CategoryTheory/Monoidal/CommMon_.lean + def CategoryTheory.Equivalence.CommMon.EquivLaxBraidedFunctorPUnit.commMonToLaxBraided + def CategoryTheory.Equivalence.CommMon.EquivLaxBraidedFunctorPUnit.commMonToLaxBraidedObj + theorem CategoryTheory.Equivalence.CommMon.EquivLaxBraidedFunctorPUnit.commMonToLaxBraidedObj_ε + theorem CategoryTheory.Equivalence.CommMon.EquivLaxBraidedFunctorPUnit.commMonToLaxBraidedObj_μ + def CategoryTheory.Equivalence.CommMon.EquivLaxBraidedFunctorPUnit.counitIso + theorem CategoryTheory.Equivalence.CommMon.EquivLaxBraidedFunctorPUnit.counitIso_aux_mul + theorem CategoryTheory.Equivalence.CommMon.EquivLaxBraidedFunctorPUnit.counitIso_aux_one + def CategoryTheory.Equivalence.CommMon.EquivLaxBraidedFunctorPUnit.laxBraidedToCommMon + def CategoryTheory.Equivalence.CommMon.EquivLaxBraidedFunctorPUnit.unitIso + def CategoryTheory.Equivalence.CommMon.equivLaxBraidedFunctorPUnit - def CategoryTheory.Equivalence.CommMon_.EquivLaxBraidedFunctorPUnit.commMonToLaxBraided - def CategoryTheory.Equivalence.CommMon_.EquivLaxBraidedFunctorPUnit.commMonToLaxBraidedObj - theorem CategoryTheory.Equivalence.CommMon_.EquivLaxBraidedFunctorPUnit.commMonToLaxBraidedObj_ε - theorem CategoryTheory.Equivalence.CommMon_.EquivLaxBraidedFunctorPUnit.commMonToLaxBraidedObj_μ - def CategoryTheory.Equivalence.CommMon_.EquivLaxBraidedFunctorPUnit.counitIso - theorem CategoryTheory.Equivalence.CommMon_.EquivLaxBraidedFunctorPUnit.counitIso_aux_mul - theorem CategoryTheory.Equivalence.CommMon_.EquivLaxBraidedFunctorPUnit.counitIso_aux_one - def CategoryTheory.Equivalence.CommMon_.EquivLaxBraidedFunctorPUnit.laxBraidedToCommMon - def CategoryTheory.Equivalence.CommMon_.EquivLaxBraidedFunctorPUnit.unitIso - def CategoryTheory.Equivalence.CommMon_.equivLaxBraidedFunctorPUnit +/- theorem CategoryTheory.Functor.comp_mapCommMon_mul +/- theorem CategoryTheory.Functor.comp_mapCommMon_one +/- def CategoryTheory.Functor.mapCommMon +/- def CategoryTheory.Functor.mapCommMonFunctor +/- def CategoryTheory.Functor.mapCommMonIdIso +/- theorem CategoryTheory.Functor.mapCommMon_id_mul +/- theorem CategoryTheory.Functor.mapCommMon_id_one + theorem CommMon.comp' + theorem CommMon.comp_hom + def CommMon.forget + def CommMon.forget₂Mon + theorem CommMon.forget₂Mon_comp_forget + theorem CommMon.forget₂Mon_map_hom + theorem CommMon.forget₂Mon_obj_mul + theorem CommMon.forget₂Mon_obj_one + def CommMon.fullyFaithfulForget₂Mon + theorem CommMon.hom_ext + theorem CommMon.id' + theorem CommMon.id_hom + def CommMon.mkIso' + def CommMon.toMon + def CommMon.trivial + structure CommMon - theorem CommMon_.comp' - theorem CommMon_.comp_hom - def CommMon_.forget - def CommMon_.forget₂Mon_ - theorem CommMon_.forget₂Mon_comp_forget - theorem CommMon_.forget₂Mon_map_hom - theorem CommMon_.forget₂Mon_obj_mul - theorem CommMon_.forget₂Mon_obj_one - def CommMon_.fullyFaithfulForget₂Mon_ - theorem CommMon_.hom_ext - theorem CommMon_.id' - theorem CommMon_.id_hom - def CommMon_.mkIso' - def CommMon_.toMon_ - def CommMon_.trivial - structure CommMon_ Modified Mathlib/CategoryTheory/Monoidal/Comon_.lean +/- def CategoryTheory.Functor.mapComon + def Comon.ComonToMonOpOp + def Comon.ComonToMonOpOpObj + def Comon.Comon_EquivMon_OpOp + structure Comon.Hom + def Comon.MonOpOpToComon + def Comon.MonOpOpToComonObj + def Comon.comp + theorem Comon.comp_hom' + theorem Comon.ext + def Comon.forget + theorem Comon.forget_δ + theorem Comon.forget_ε + theorem Comon.forget_η + theorem Comon.forget_μ + def Comon.id + theorem Comon.id_hom' + def Comon.mkIso' + def Comon.mkIso + theorem Comon.tensorObj_X + theorem Comon.tensorObj_comul' + theorem Comon.tensorObj_comul + theorem Comon.tensorObj_counit + def Comon.trivial + structure Comon - def Comon_.Comon_EquivMon_OpOp - def Comon_.Comon_ToMon_OpOp - def Comon_.Comon_ToMon_OpOpObj - structure Comon_.Hom - def Comon_.Mon_OpOpToComonObj - def Comon_.Mon_OpOpToComon_ - def Comon_.comp - theorem Comon_.comp_hom' - theorem Comon_.ext - def Comon_.forget - theorem Comon_.forget_δ - theorem Comon_.forget_ε - theorem Comon_.forget_η - theorem Comon_.forget_μ - def Comon_.id - theorem Comon_.id_hom' - def Comon_.mkIso' - def Comon_.mkIso - theorem Comon_.tensorObj_X - theorem Comon_.tensorObj_comul' - theorem Comon_.tensorObj_comul - theorem Comon_.tensorObj_counit - def Comon_.trivial - structure Comon_ Modified Mathlib/CategoryTheory/Monoidal/Conv.lean Modified Mathlib/CategoryTheory/Monoidal/Grp_.lean +/- theorem GrpObj.inv_hom +/- theorem GrpObj.lift_inv_comp_left +/- theorem GrpObj.lift_inv_comp_right + def GrpObj.tensorObj.Grp_.forget₂Mon - def GrpObj.tensorObj.Grp_.forget₂Mon_ +/- theorem GrpObj.tensorObj.Grp_.forget₂Mon_comp_forget +/- theorem GrpObj.tensorObj.Grp_.forget₂Mon_map_hom +/- theorem GrpObj.tensorObj.Grp_.forget₂Mon_obj_mul +/- theorem GrpObj.tensorObj.Grp_.forget₂Mon_obj_one + def GrpObj.tensorObj.Grp_.fullyFaithfulForget₂Mon - def GrpObj.tensorObj.Grp_.fullyFaithfulForget₂Mon_ +/- def GrpObj.tensorObj.Grp_.mkIso' +/- theorem Grp_.id' +/- theorem Grp_.id_hom + def Grp_.toMon - def Grp_.toMon_ Modified Mathlib/CategoryTheory/Monoidal/Hopf_.lean + def Hopf.toBimon + structure Hopf +/- theorem HopfObj.hom_antipode - def Hopf_.toBimon_ - structure Hopf_ Modified Mathlib/CategoryTheory/Monoidal/Internal/FunctorCategory.lean +/- def CategoryTheory.Monoidal.CommMonFunctorCategoryEquivalence.counitIso +/- def CategoryTheory.Monoidal.CommMonFunctorCategoryEquivalence.functor +/- def CategoryTheory.Monoidal.CommMonFunctorCategoryEquivalence.inverse +/- def CategoryTheory.Monoidal.CommMonFunctorCategoryEquivalence.unitIso +/- def CategoryTheory.Monoidal.ComonFunctorCategoryEquivalence.counitIso +/- def CategoryTheory.Monoidal.ComonFunctorCategoryEquivalence.functor +/- def CategoryTheory.Monoidal.ComonFunctorCategoryEquivalence.functorObj +/- def CategoryTheory.Monoidal.ComonFunctorCategoryEquivalence.functorObjObj +/- def CategoryTheory.Monoidal.ComonFunctorCategoryEquivalence.inverseObj +/- def CategoryTheory.Monoidal.MonFunctorCategoryEquivalence.counitIso +/- def CategoryTheory.Monoidal.MonFunctorCategoryEquivalence.functor +/- def CategoryTheory.Monoidal.MonFunctorCategoryEquivalence.functorObj +/- def CategoryTheory.Monoidal.MonFunctorCategoryEquivalence.functorObjObj +/- def CategoryTheory.Monoidal.MonFunctorCategoryEquivalence.inverse +/- def CategoryTheory.Monoidal.MonFunctorCategoryEquivalence.inverseObj +/- def CategoryTheory.Monoidal.MonFunctorCategoryEquivalence.unitIso +/- def CategoryTheory.Monoidal.commMonFunctorCategoryEquivalence +/- def CategoryTheory.Monoidal.comonFunctorCategoryEquivalence +/- def CategoryTheory.Monoidal.monFunctorCategoryEquivalence Modified Mathlib/CategoryTheory/Monoidal/Internal/Limits.lean + def Mon.forgetMapConeLimitConeIso + def Mon.limit + def Mon.limitCone + def Mon.limitConeIsLimit - def Mon_.forgetMapConeLimitConeIso - def Mon_.limit - def Mon_.limitCone - def Mon_.limitConeIsLimit Modified Mathlib/CategoryTheory/Monoidal/Internal/Module.lean +/- def ModuleCat.MonModuleEquivalenceAlgebra.functor +/- def ModuleCat.MonModuleEquivalenceAlgebra.inverse +/- def ModuleCat.monModuleEquivalenceAlgebra Modified Mathlib/CategoryTheory/Monoidal/Internal/Types/Basic.lean Modified Mathlib/CategoryTheory/Monoidal/Internal/Types/CommGrp_.lean Modified Mathlib/CategoryTheory/Monoidal/Internal/Types/Grp_.lean Modified Mathlib/CategoryTheory/Monoidal/Mod_.lean +/- def Mod_.comap Modified Mathlib/CategoryTheory/Monoidal/Mon_.lean + def CategoryTheory.Equivalence.Mon.EquivLaxMonoidalFunctorPUnit.counitIso + def CategoryTheory.Equivalence.Mon.EquivLaxMonoidalFunctorPUnit.counitIsoAux + theorem CategoryTheory.Equivalence.Mon.EquivLaxMonoidalFunctorPUnit.isMonHom_counitIsoAux + def CategoryTheory.Equivalence.Mon.EquivLaxMonoidalFunctorPUnit.laxMonoidalToMon + def CategoryTheory.Equivalence.Mon.EquivLaxMonoidalFunctorPUnit.monToLaxMonoidal + def CategoryTheory.Equivalence.Mon.EquivLaxMonoidalFunctorPUnit.monToLaxMonoidalObj + theorem CategoryTheory.Equivalence.Mon.EquivLaxMonoidalFunctorPUnit.monToLaxMonoidalObj_ε + theorem CategoryTheory.Equivalence.Mon.EquivLaxMonoidalFunctorPUnit.monToLaxMonoidalObj_μ + theorem CategoryTheory.Equivalence.Mon.EquivLaxMonoidalFunctorPUnit.monToLaxMonoidal_laxMonoidalToMon_obj_mul + theorem CategoryTheory.Equivalence.Mon.EquivLaxMonoidalFunctorPUnit.monToLaxMonoidal_laxMonoidalToMon_obj_one + def CategoryTheory.Equivalence.Mon.EquivLaxMonoidalFunctorPUnit.unitIso + theorem CategoryTheory.Equivalence.Mon.associator_hom_hom + theorem CategoryTheory.Equivalence.Mon.associator_inv_hom + theorem CategoryTheory.Equivalence.Mon.braiding_hom_hom + theorem CategoryTheory.Equivalence.Mon.braiding_inv_hom + def CategoryTheory.Equivalence.Mon.equivLaxMonoidalFunctorPUnit + theorem CategoryTheory.Equivalence.Mon.forget_δ + theorem CategoryTheory.Equivalence.Mon.forget_ε + theorem CategoryTheory.Equivalence.Mon.forget_η + theorem CategoryTheory.Equivalence.Mon.forget_μ + theorem CategoryTheory.Equivalence.Mon.leftUnitor_hom_hom + theorem CategoryTheory.Equivalence.Mon.leftUnitor_inv_hom + theorem CategoryTheory.Equivalence.Mon.rightUnitor_hom_hom + theorem CategoryTheory.Equivalence.Mon.rightUnitor_inv_hom + theorem CategoryTheory.Equivalence.Mon.tensorObj_mul + theorem CategoryTheory.Equivalence.Mon.tensorObj_one + theorem CategoryTheory.Equivalence.Mon.tensorUnit_X + theorem CategoryTheory.Equivalence.Mon.tensorUnit_mul + theorem CategoryTheory.Equivalence.Mon.tensorUnit_one + theorem CategoryTheory.Equivalence.Mon.tensor_mul + theorem CategoryTheory.Equivalence.Mon.tensor_one + theorem CategoryTheory.Equivalence.Mon.whiskerLeft_hom + theorem CategoryTheory.Equivalence.Mon.whiskerRight_hom - def CategoryTheory.Equivalence.Mon_.EquivLaxMonoidalFunctorPUnit.counitIso - def CategoryTheory.Equivalence.Mon_.EquivLaxMonoidalFunctorPUnit.counitIsoAux - theorem CategoryTheory.Equivalence.Mon_.EquivLaxMonoidalFunctorPUnit.counitIsoAux_IsMon_Hom - def CategoryTheory.Equivalence.Mon_.EquivLaxMonoidalFunctorPUnit.laxMonoidalToMon - def CategoryTheory.Equivalence.Mon_.EquivLaxMonoidalFunctorPUnit.monToLaxMonoidal - def CategoryTheory.Equivalence.Mon_.EquivLaxMonoidalFunctorPUnit.monToLaxMonoidalObj - theorem CategoryTheory.Equivalence.Mon_.EquivLaxMonoidalFunctorPUnit.monToLaxMonoidalObj_ε - theorem CategoryTheory.Equivalence.Mon_.EquivLaxMonoidalFunctorPUnit.monToLaxMonoidalObj_μ - theorem CategoryTheory.Equivalence.Mon_.EquivLaxMonoidalFunctorPUnit.monToLaxMonoidal_laxMonoidalToMon_obj_mul - theorem CategoryTheory.Equivalence.Mon_.EquivLaxMonoidalFunctorPUnit.monToLaxMonoidal_laxMonoidalToMon_obj_one - def CategoryTheory.Equivalence.Mon_.EquivLaxMonoidalFunctorPUnit.unitIso - theorem CategoryTheory.Equivalence.Mon_.associator_hom_hom - theorem CategoryTheory.Equivalence.Mon_.associator_inv_hom - theorem CategoryTheory.Equivalence.Mon_.braiding_hom_hom - theorem CategoryTheory.Equivalence.Mon_.braiding_inv_hom - def CategoryTheory.Equivalence.Mon_.equivLaxMonoidalFunctorPUnit - theorem CategoryTheory.Equivalence.Mon_.forget_δ - theorem CategoryTheory.Equivalence.Mon_.forget_ε - theorem CategoryTheory.Equivalence.Mon_.forget_η - theorem CategoryTheory.Equivalence.Mon_.forget_μ - theorem CategoryTheory.Equivalence.Mon_.leftUnitor_hom_hom - theorem CategoryTheory.Equivalence.Mon_.leftUnitor_inv_hom - theorem CategoryTheory.Equivalence.Mon_.rightUnitor_hom_hom - theorem CategoryTheory.Equivalence.Mon_.rightUnitor_inv_hom - theorem CategoryTheory.Equivalence.Mon_.tensorObj_mul - theorem CategoryTheory.Equivalence.Mon_.tensorObj_one - theorem CategoryTheory.Equivalence.Mon_.tensorUnit_X - theorem CategoryTheory.Equivalence.Mon_.tensorUnit_mul - theorem CategoryTheory.Equivalence.Mon_.tensorUnit_one - theorem CategoryTheory.Equivalence.Mon_.tensor_mul - theorem CategoryTheory.Equivalence.Mon_.tensor_one - theorem CategoryTheory.Equivalence.Mon_.whiskerLeft_hom - theorem CategoryTheory.Equivalence.Mon_.whiskerRight_hom +/- theorem CategoryTheory.Functor.comp_mapMon_mul +/- theorem CategoryTheory.Functor.comp_mapMon_one +/- theorem CategoryTheory.Functor.essImage_mapMon +/- theorem CategoryTheory.Functor.id_mapMon_mul +/- theorem CategoryTheory.Functor.id_mapMon_one +/- def CategoryTheory.Functor.mapMon +/- def CategoryTheory.Functor.mapMonFunctor +/- def CategoryTheory.Functor.mapMonIdIso + theorem Mon.Hom.ext' + structure Mon.Hom + def Mon.comp + theorem Mon.comp_hom' + def Mon.forget + theorem Mon.hom_injective + def Mon.id + theorem Mon.id_hom' + def Mon.mkIso' + def Mon.trivial + structure Mon - theorem Mon_.Hom.ext' - structure Mon_.Hom - def Mon_.comp - theorem Mon_.comp_hom' - def Mon_.forget - theorem Mon_.hom_injective - def Mon_.id - theorem Mon_.id_hom' - def Mon_.mkIso' - def Mon_.trivial - structure Mon_ Modified Mathlib/CategoryTheory/Monoidal/Opposite/Mon_.lean +/- def MonObj.mopEquiv Modified Mathlib/RingTheory/HopfAlgebra/Basic.lean Modified MathlibTest/CategoryTheory/Mon_.lean Modified scripts/nolints_prime_decls.txt 2025-09-17 05:19:52 81dcdf5 feat(Data/Seq): coinductive predicates for sequences (#28874) * Prove `eq_of_bisim'` and `eq_of_bisim_strong` coinductive principles for equality. * Develop API for a predicate `∀ x ∈ s, p x` where `s : Seq α`, including coinductive principle `all_coind`. * Introduce the `Pairwise` predicate along with API and coinductive principles `Pairwise.coind` and `Pairwise.coind_trans`. * Introduce `ENat`-valued length of a sequence, `length'`, along with minimal API. * Move theorems about `length` from `Defs.lean` to `Basic.lean`. * Prove a coinductive principle for a predicate `a.length' ≤ b.length'`. All of these "coinductive principles" are stated in the form as similar as possible to inductive principles. ESTIMATED CHANGES Modified Mathlib/Data/Seq/Basic.lean + theorem Stream'.Seq.Pairwise.coind + theorem Stream'.Seq.Pairwise.coind_trans + theorem Stream'.Seq.Pairwise.cons + theorem Stream'.Seq.Pairwise.cons_cons_of_trans + theorem Stream'.Seq.Pairwise.cons_elim + theorem Stream'.Seq.Pairwise.nil + theorem Stream'.Seq.Pairwise_cons_cons_head + theorem Stream'.Seq.Pairwise_cons_nil + theorem Stream'.Seq.Pairwise_drop + theorem Stream'.Seq.Pairwise_tail + theorem Stream'.Seq.all_coind + theorem Stream'.Seq.all_cons + theorem Stream'.Seq.all_get + theorem Stream'.Seq.all_of_get + theorem Stream'.Seq.at_least_as_long_as_coind + theorem Stream'.Seq.drop_length' + theorem Stream'.Seq.drop_zero + theorem Stream'.Seq.length'_cons + theorem Stream'.Seq.length'_eq_zero_iff_nil + theorem Stream'.Seq.length'_le_iff + theorem Stream'.Seq.length'_map + theorem Stream'.Seq.length'_ne_zero_iff_cons + theorem Stream'.Seq.length'_nil + theorem Stream'.Seq.length'_of_not_terminates + theorem Stream'.Seq.length'_of_terminates + theorem Stream'.Seq.length_cons + theorem Stream'.Seq.length_eq_zero + theorem Stream'.Seq.length_le_iff' + theorem Stream'.Seq.length_le_iff + theorem Stream'.Seq.length_nil + theorem Stream'.Seq.lt_length'_iff + theorem Stream'.Seq.lt_length_iff' + theorem Stream'.Seq.lt_length_iff + theorem Stream'.Seq.map_all_iff + theorem Stream'.Seq.set_all + theorem Stream'.Seq.take_all Modified Mathlib/Data/Seq/Defs.lean + def Stream'.Seq.Pairwise + theorem Stream'.Seq.eq_of_bisim' + theorem Stream'.Seq.eq_of_bisim_strong - theorem Stream'.Seq.length_eq_zero - theorem Stream'.Seq.length_le_iff' - theorem Stream'.Seq.length_le_iff - theorem Stream'.Seq.length_nil - theorem Stream'.Seq.lt_length_iff' - theorem Stream'.Seq.lt_length_iff + theorem Stream'.Seq.mem_iff_exists_get? Modified Mathlib/Data/Stream/Init.lean + theorem Stream'.mem_iff_exists_get_eq 2025-09-17 04:57:01 5502a86 feat(CategoryTheory/Monoidal): more natural constructors for braided categories (#29568) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/CategoryTheory/Functor/CurryingThree.lean + def CategoryTheory.Functor.flip₁₃ + def CategoryTheory.Functor.flip₁₃Functor + def CategoryTheory.Functor.flip₂₃ + def CategoryTheory.Functor.flip₂₃Functor Added Mathlib/CategoryTheory/Monoidal/Braided/Multifunctor.lean + def CategoryTheory.BraidedCategory.Hexagon.functor₁₂₃' + def CategoryTheory.BraidedCategory.Hexagon.functor₁₂₃ + def CategoryTheory.BraidedCategory.Hexagon.functor₁₃₂' + def CategoryTheory.BraidedCategory.Hexagon.functor₁₃₂ + def CategoryTheory.BraidedCategory.Hexagon.functor₂₁₃' + def CategoryTheory.BraidedCategory.Hexagon.functor₂₁₃ + def CategoryTheory.BraidedCategory.Hexagon.functor₂₃₁' + def CategoryTheory.BraidedCategory.Hexagon.functor₂₃₁ + def CategoryTheory.BraidedCategory.Hexagon.functor₃₁₂' + def CategoryTheory.BraidedCategory.Hexagon.functor₃₁₂ + def CategoryTheory.BraidedCategory.ofBifunctor.Forward.firstMap₂ + def CategoryTheory.BraidedCategory.ofBifunctor.Forward.firstMap₃ + def CategoryTheory.BraidedCategory.ofBifunctor.Forward.secondMap₁ + def CategoryTheory.BraidedCategory.ofBifunctor.Forward.secondMap₂ + def CategoryTheory.BraidedCategory.ofBifunctor.Forward.secondMap₃ + def CategoryTheory.BraidedCategory.ofBifunctor.Reverse.firstMap₂ + def CategoryTheory.BraidedCategory.ofBifunctor.Reverse.firstMap₃ + def CategoryTheory.BraidedCategory.ofBifunctor.Reverse.secondMap₁ + def CategoryTheory.BraidedCategory.ofBifunctor.Reverse.secondMap₂ + def CategoryTheory.BraidedCategory.ofBifunctor.Reverse.secondMap₃ + def CategoryTheory.BraidedCategory.ofBifunctor 2025-09-17 01:02:41 80cfc26 chore(Logic/Equiv): golf entire `trans_cancel_left` and `trans_cancel_right` using `grind` (#29658) ESTIMATED CHANGES Modified Mathlib/Logic/Equiv/Defs.lean 2025-09-17 01:02:39 13498d0 chore: update references to deprecated Real.Pi modules (#29653) Update references of `Data.Real.Pi.*` modules to `Analysis.Real.Pi.*` since they were marked deprecated in #29209. ESTIMATED CHANGES Modified Mathlib/Analysis/Real/Pi/Bounds.lean Modified Mathlib/Analysis/Real/Pi/Wallis.lean Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Basic.lean Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/EulerSineProd.lean 2025-09-17 01:02:38 00b850f chore: tidy various files (#29635) ESTIMATED CHANGES Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Cotangent.lean Modified Mathlib/CategoryTheory/Monoidal/Action/Opposites.lean Modified Mathlib/Combinatorics/SimpleGraph/Paths.lean Modified Mathlib/NumberTheory/ModularForms/EisensteinSeries/Summable.lean +/- theorem EisensteinSeries.abs_norm_eq_max_natAbs +/- theorem EisensteinSeries.abs_norm_eq_max_natAbs_neg Modified Mathlib/RingTheory/Coprime/Lemmas.lean +/- theorem Finset.prod_dvd_of_coprime 2025-09-17 01:02:36 d97ab19 chore(*): replace `simp? says` with `simp only` (#29593) Replace the output of `simp? says` with a `simp only` where the proof does not become less readable, and then golf the result by trying to drop lemmas from the simp set, or even replace it outright with (`simp_`)`rw`. This is a weaker form of #29442. ESTIMATED CHANGES Modified Mathlib/Algebra/Homology/Augment.lean Modified Mathlib/Algebra/MvPolynomial/Rename.lean Modified Mathlib/Algebra/Polynomial/Coeff.lean Modified Mathlib/Computability/PartrecCode.lean Modified Mathlib/Computability/TMToPartrec.lean Modified Mathlib/Data/List/Sigma.lean Modified Mathlib/Data/Ordmap/Ordset.lean Modified Mathlib/Data/PFunctor/Multivariate/M.lean Modified Mathlib/Data/QPF/Multivariate/Constructions/Fix.lean Modified Mathlib/Data/Seq/Parallel.lean Modified Mathlib/Data/Set/Enumerate.lean Modified Mathlib/Data/WSeq/Productive.lean Modified Mathlib/Data/WSeq/Relation.lean Modified Mathlib/GroupTheory/CoprodI.lean Modified Mathlib/MeasureTheory/Integral/Lebesgue/Add.lean Modified Mathlib/NumberTheory/Zsqrtd/Basic.lean 2025-09-17 01:02:35 fff031e feat(SimpleGraph): remove finiteness assumption from `isEmpty_of_chromaticNumber_eq_zero` (#29578) ESTIMATED CHANGES Modified Mathlib/Combinatorics/SimpleGraph/Coloring.lean + theorem SimpleGraph.chromaticNumber_eq_zero_of_isEmpty - theorem SimpleGraph.chromaticNumber_eq_zero_of_isempty +/- theorem SimpleGraph.isEmpty_of_chromaticNumber_eq_zero 2025-09-17 01:02:33 35360ac feat(CategoryTheory/Monoidal): more natural constructors for monoidal functors (#29564) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Monoidal/Multifunctor.lean + def CategoryTheory.Functor.LaxMonoidal.CoreMonoidal.ofBifunctor + def CategoryTheory.Functor.LaxMonoidal.Monoidal.ofBifunctor + def CategoryTheory.Functor.LaxMonoidal.OplaxMonoidal.ofBifunctor.bottomMapᵣ + def CategoryTheory.Functor.LaxMonoidal.OplaxMonoidal.ofBifunctor.bottomMapₗ + def CategoryTheory.Functor.LaxMonoidal.OplaxMonoidal.ofBifunctor.firstMap + def CategoryTheory.Functor.LaxMonoidal.OplaxMonoidal.ofBifunctor.firstMap₁ + def CategoryTheory.Functor.LaxMonoidal.OplaxMonoidal.ofBifunctor.firstMap₂ + def CategoryTheory.Functor.LaxMonoidal.OplaxMonoidal.ofBifunctor.firstMap₃ + def CategoryTheory.Functor.LaxMonoidal.OplaxMonoidal.ofBifunctor.leftMapᵣ + def CategoryTheory.Functor.LaxMonoidal.OplaxMonoidal.ofBifunctor.leftMapₗ + def CategoryTheory.Functor.LaxMonoidal.OplaxMonoidal.ofBifunctor.secondMap + def CategoryTheory.Functor.LaxMonoidal.OplaxMonoidal.ofBifunctor.secondMap₁ + def CategoryTheory.Functor.LaxMonoidal.OplaxMonoidal.ofBifunctor.secondMap₂ + def CategoryTheory.Functor.LaxMonoidal.OplaxMonoidal.ofBifunctor.secondMap₃ + def CategoryTheory.Functor.LaxMonoidal.OplaxMonoidal.ofBifunctor.topMapᵣ + def CategoryTheory.Functor.LaxMonoidal.OplaxMonoidal.ofBifunctor.topMapₗ + def CategoryTheory.Functor.LaxMonoidal.OplaxMonoidal.ofBifunctor + def CategoryTheory.Functor.LaxMonoidal.ofBifunctor.bottomMapᵣ + def CategoryTheory.Functor.LaxMonoidal.ofBifunctor.bottomMapₗ + def CategoryTheory.Functor.LaxMonoidal.ofBifunctor.firstMap + def CategoryTheory.Functor.LaxMonoidal.ofBifunctor.firstMap₁ + def CategoryTheory.Functor.LaxMonoidal.ofBifunctor.firstMap₂ + def CategoryTheory.Functor.LaxMonoidal.ofBifunctor.firstMap₃ + def CategoryTheory.Functor.LaxMonoidal.ofBifunctor.leftMapᵣ + def CategoryTheory.Functor.LaxMonoidal.ofBifunctor.leftMapₗ + def CategoryTheory.Functor.LaxMonoidal.ofBifunctor.secondMap + def CategoryTheory.Functor.LaxMonoidal.ofBifunctor.secondMap₁ + def CategoryTheory.Functor.LaxMonoidal.ofBifunctor.secondMap₂ + def CategoryTheory.Functor.LaxMonoidal.ofBifunctor.secondMap₃ + def CategoryTheory.Functor.LaxMonoidal.ofBifunctor.topMapᵣ + def CategoryTheory.Functor.LaxMonoidal.ofBifunctor.topMapₗ + def CategoryTheory.Functor.LaxMonoidal.ofBifunctor 2025-09-17 01:02:31 38084fa refactor(SimpleGraph): make `triangleRemovalBound` positive more often (#29540) It wasn't positive when `ε > 4`, but that is a junk value anyway, so we change the junk value to a positive one. See #29496 for more context. ESTIMATED CHANGES Modified Mathlib/Combinatorics/Additive/Corner/Roth.lean Modified Mathlib/Combinatorics/SimpleGraph/DeleteEdges.lean + theorem SimpleGraph.DeleteFar.le_card_edgeFinset Modified Mathlib/Combinatorics/SimpleGraph/Triangle/Basic.lean +/- theorem SimpleGraph.FarFromTriangleFree.lt_half Modified Mathlib/Combinatorics/SimpleGraph/Triangle/Removal.lean + def Mathlib.Meta.Positivity.evalTriangleRemovalBound + theorem SimpleGraph.triangleRemovalBound_le +/- theorem SimpleGraph.triangleRemovalBound_pos Modified Mathlib/Data/Nat/Choose/Bounds.lean + theorem Nat.choose_lt_descFactorial + theorem Nat.choose_lt_pow + theorem Nat.choose_lt_pow_div Modified Mathlib/Data/Nat/Factorial/Basic.lean +/- theorem Nat.descFactorial_lt_pow + theorem Nat.descFactorial_pos 2025-09-17 01:02:30 c9a2a18 chore(RingTheory/Extension/Presentation): remove use of `erw` in `aeval_comp_val_eq` (#29475) ESTIMATED CHANGES Modified Mathlib/RingTheory/Extension/Presentation/Basic.lean 2025-09-16 23:57:07 f463d1b chore: `TopologicalGroup.isOpenMap_iff_nhds_one` -> `IsTopologicalGroup.isOpenMap_iff_nhds_one` (#29721) ESTIMATED CHANGES Modified Mathlib/Topology/Algebra/Group/Basic.lean + theorem IsTopologicalGroup.isOpenMap_iff_nhds_one - theorem TopologicalGroup.isOpenMap_iff_nhds_one Modified Mathlib/Topology/Algebra/IsOpenUnits.lean 2025-09-16 23:57:04 1129426 chore: deprecate some duplicate HEq lemmas (#29711) ESTIMATED CHANGES Modified Mathlib/Combinatorics/SimpleGraph/Walk.lean Modified Mathlib/Data/Fintype/Quotient.lean Modified Mathlib/Logic/Basic.lean - theorem Eq.rec_eq_cast - theorem eqRec_heq' - theorem heq_rec_iff_heq - theorem rec_heq_iff_heq Modified Mathlib/Logic/Equiv/Basic.lean Modified Mathlib/Tactic/CC/Addition.lean 2025-09-16 23:57:02 b237a77 feat: add Module.Finite.of_pi (#29708) ESTIMATED CHANGES Modified Mathlib/RingTheory/Finiteness/Basic.lean + theorem Module.Finite.of_pi + theorem Module.Finite.pi_iff 2025-09-16 23:42:34 540f082 chore(Analysis/CStarAlgebra/ContinuousFunctionalCalculus): deprecate some duplicate declarations (#29731) At a certain point, we refactored `SpectrumRestricts` so that it was a synonym of `QuasispectrumRestricts` and these duplicate lemmas hadn't yet been removed. ESTIMATED CHANGES Modified Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Basic.lean Modified Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Continuity.lean Modified Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Instances.lean - theorem CFC.exists_sqrt_of_isSelfAdjoint_of_spectrumRestricts + theorem IsSelfAdjoint.quasispectrumRestricts - theorem SpectrumRestricts.isSelfAdjoint - theorem isSelfAdjoint_iff_isStarNormal_and_spectrumRestricts - theorem nonneg_iff_isSelfAdjoint_and_spectrumRestricts Modified Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Isometric.lean Modified Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Order.lean Modified Mathlib/Analysis/InnerProductSpace/StarOrder.lean 2025-09-16 21:53:54 241ba23 chore(Topology): process porting notes (#29383) Go through the porting notes in the Topology folder and solve the ones with an obvious fix. This last batch of porting notes should bring us below 500 open porting notes in Mathlib, when the RingTheory ones get merged too! ESTIMATED CHANGES Modified Mathlib/Topology/Algebra/Module/CharacterSpace.lean Modified Mathlib/Topology/Algebra/Monoid.lean Modified Mathlib/Topology/Algebra/MulAction.lean Modified Mathlib/Topology/Algebra/Ring/Ideal.lean Modified Mathlib/Topology/Bases.lean Modified Mathlib/Topology/Bornology/Basic.lean - def Bornology.cobounded - theorem Bornology.le_cofinite Modified Mathlib/Topology/Bornology/Constructions.lean Modified Mathlib/Topology/Category/Profinite/CofilteredLimit.lean Modified Mathlib/Topology/Category/TopCat/Limits/Basic.lean Modified Mathlib/Topology/Category/TopCat/Limits/Cofiltered.lean Modified Mathlib/Topology/Compactness/Compact.lean Modified Mathlib/Topology/Constructions/SumProd.lean Modified Mathlib/Topology/ContinuousMap/Periodic.lean Modified Mathlib/Topology/ContinuousMap/ZeroAtInfty.lean Modified Mathlib/Topology/DiscreteQuotient.lean Modified Mathlib/Topology/Gluing.lean Modified Mathlib/Topology/Homotopy/Basic.lean Modified Mathlib/Topology/Homotopy/Equiv.lean - def ContinuousMap.HomotopyEquiv.toFun' - theorem ContinuousMap.HomotopyEquiv.toFun_eq_coe Modified Mathlib/Topology/Homotopy/HomotopyGroup.lean Modified Mathlib/Topology/LocallyConstant/Basic.lean Modified Mathlib/Topology/MetricSpace/Algebra.lean - def LipschitzAdd.C Modified Mathlib/Topology/MetricSpace/Equicontinuity.lean Modified Mathlib/Topology/MetricSpace/GromovHausdorff.lean Modified Mathlib/Topology/MetricSpace/IsometricSMul.lean - theorem isometry_smul Modified Mathlib/Topology/Order.lean Modified Mathlib/Topology/Order/Compact.lean Modified Mathlib/Topology/Separation/Basic.lean Modified Mathlib/Topology/Sheaves/CommRingCat.lean Modified Mathlib/Topology/Sheaves/SheafCondition/EqualizerProducts.lean + theorem TopCat.Presheaf.SheafConditionEqualizerProducts.piInters.hom_ext + theorem TopCat.Presheaf.SheafConditionEqualizerProducts.piOpens.hom_ext Modified Mathlib/Topology/Sheaves/Sheafify.lean Modified Mathlib/Topology/Sheaves/Stalks.lean Modified Mathlib/Topology/UniformSpace/Cauchy.lean - theorem UniformSpace.secondCountable_of_separable Modified Mathlib/Topology/UniformSpace/UniformConvergenceTopology.lean 2025-09-16 20:21:41 cec5510 feat(NumberField/IsCM): first results about the action of `complexConjugation` on units (#26107) Define the subgroup of real units of a CM field and prove that it is equal to the subgroup of units fixed by the complex conjugation. ESTIMATED CHANGES Modified Mathlib/GroupTheory/GroupAction/FixedPoints.lean + theorem MulAction.mem_fixedBy_zpow + theorem MulAction.mem_fixedBy_zpowers_iff_mem_fixedBy Modified Mathlib/NumberTheory/NumberField/CMField.lean + theorem NumberField.CMExtension.coe_ringOfIntegersComplexConj + theorem NumberField.CMExtension.coe_unitsComplexConj + theorem NumberField.CMExtension.complexConj_eq_self_iff + theorem NumberField.CMExtension.ringOfIntegersComplexConj_apply_apply + theorem NumberField.CMExtension.ringOfIntegersComplexConj_eq_self_iff + theorem NumberField.CMExtension.unitsComplexConj_eq_self_iff + theorem NumberField.CMExtension.unitsComplexConj_torsion + theorem NumberField.CMExtension.unitsComplexEmbedding_complexConj + theorem NumberField.IsCMField.complexConj_eq_self_iff + def NumberField.IsCMField.realUnits + theorem NumberField.IsCMField.ringOfIntegersComplexConj_eq_self_iff + theorem NumberField.IsCMField.unitsComplexConj_eq_self_iff Modified Mathlib/NumberTheory/NumberField/Units/Basic.lean + theorem NumberField.Units.map_complexEmbedding_torsion 2025-09-16 19:37:07 76d4027 chore: tests for casting and the field_simp discharger (#29103) Add further tests for the `field_simps` discharger and casting, inspired by #6034. Golf a few field_simp proofs further, such as by using `norm_cast` as discharger. In particular, this PR includes all mathlib changes from #6034. Golf two proofs that we noticed in passing. ESTIMATED CHANGES Modified Mathlib/Analysis/Analytic/Composition.lean Modified Mathlib/Analysis/Fourier/AddCircle.lean Modified Mathlib/Analysis/InnerProductSpace/Dual.lean Modified Mathlib/Analysis/SpecialFunctions/Stirling.lean Modified Mathlib/Analysis/SpecificLimits/RCLike.lean Modified Mathlib/NumberTheory/PythagoreanTriples.lean Modified Mathlib/RingTheory/RootsOfUnity/Complex.lean Modified MathlibTest/FieldSimp.lean 2025-09-16 19:22:39 35f7b4a feat(lint-style): also lint against module names containing whitespace (#29683) This makes iterating over all file names much easier, particularly in bash and `xargs`. And update the module doc-string, while at it. Follow-up to #27965. ESTIMATED CHANGES Modified Mathlib/Tactic/Linter/TextBased.lean Modified MathlibTest/ForbiddenModuleNames.lean 2025-09-16 18:56:14 d535233 chore(Topology/Algebra/Affine): generalize `Filter.Tendsto.{lineMap, midpoint}` (#29621) ESTIMATED CHANGES Modified Mathlib/Analysis/Normed/Affine/AddTorsor.lean Modified Mathlib/Analysis/Normed/Affine/Isometry.lean Modified Mathlib/Analysis/Normed/Group/AddTorsor.lean - theorem Filter.Tendsto.lineMap - theorem Filter.Tendsto.midpoint Modified Mathlib/Topology/Algebra/Affine.lean + theorem Filter.Tendsto.lineMap + theorem Filter.Tendsto.midpoint Modified Mathlib/Topology/UrysohnsLemma.lean 2025-09-16 18:41:33 1ef83b2 feat: add C⋆-algebra instances for elemental algebras (#29559) ESTIMATED CHANGES Modified Mathlib/Analysis/CStarAlgebra/Classes.lean Modified Mathlib/Topology/Algebra/NonUnitalStarAlgebra.lean + theorem NonUnitalStarAlgebra.elemental.isClosed 2025-09-16 18:28:44 1a3e03e chore: move file Analysis.{InnerProductSpace => Complex}.Harmonic.Analytic (#29724) On discussion with @sgouezel, move file to more logical positions. ESTIMATED CHANGES Modified Mathlib.lean Renamed Mathlib/Analysis/InnerProductSpace/Harmonic/Analytic.lean to Mathlib/Analysis/Complex/Harmonic/Analytic.lean Modified Mathlib/Analysis/Complex/Harmonic/MeanValue.lean 2025-09-16 17:36:18 620bf58 ci: enable new version of gh-get-current-pr workflow on PRs from forks (#29726) Also remove some outdated code in update_dependencies ESTIMATED CHANGES Modified .github/build.in.yml Modified .github/workflows/bors.yml Modified .github/workflows/build.yml Modified .github/workflows/build_fork.yml Modified .github/workflows/update_dependencies.yml 2025-09-16 17:36:16 024dc34 chore(Matrix.GeneralLinearGroup.Defs): remove de-instancing left over from Lean 3 (#29722) This was useful in Lean 3, but now that coercions are inlined (in this case producing a coercion identical to the one found via `Subtype.val`), it should not be relevant anymore. ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/Matrix/GeneralLinearGroup/Defs.lean 2025-09-16 17:10:34 076512b chore(Topology/Algebra/Affine): generalize to `IsTopologicalAddTorsor` (#29616) ESTIMATED CHANGES Modified Mathlib/Analysis/Normed/Affine/ContinuousAffineMap.lean Modified Mathlib/Analysis/Normed/Affine/Isometry.lean - theorem AffineMap.continuous_linear_iff - theorem AffineMap.isOpenMap_linear_iff Modified Mathlib/Analysis/Normed/Operator/Banach.lean Modified Mathlib/LinearAlgebra/AffineSpace/AffineMap.lean + theorem AffineMap.coe_homothety Modified Mathlib/Topology/Algebra/Affine.lean +/- theorem AffineMap.continuous_iff + theorem AffineMap.continuous_linear_iff +/- theorem AffineMap.homothety_continuous +/- theorem AffineMap.homothety_isOpenMap + theorem AffineMap.isOpenMap_linear_iff +/- theorem AffineMap.lineMap_continuous 2025-09-16 15:34:35 3693957 feat(NumberTheory/ModularForms): define boundedness / vanishing at a cusp (#29560) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Analysis/Complex/UpperHalfPlane/FunctionsBoundedAtInfty.lean + theorem UpperHalfPlane.tendsto_smul_atImInfty Modified Mathlib/Analysis/Complex/UpperHalfPlane/MoebiusAction.lean + theorem UpperHalfPlane.norm_σ - def UpperHalfPlane.σ Added Mathlib/NumberTheory/ModularForms/BoundedAtCusp.lean + theorem OnePoint.IsBoundedAt.add + theorem OnePoint.IsBoundedAt.smul_iff + def OnePoint.IsBoundedAt + theorem OnePoint.IsZeroAt.add + theorem OnePoint.IsZeroAt.smul_iff + def OnePoint.IsZeroAt + theorem OnePoint.isBoundedAt_iff + theorem OnePoint.isBoundedAt_iff_exists_SL2Z + theorem OnePoint.isBoundedAt_iff_forall_SL2Z + theorem OnePoint.isBoundedAt_infty_iff + theorem OnePoint.isZeroAt_iff + theorem OnePoint.isZeroAt_iff_exists_SL2Z + theorem OnePoint.isZeroAt_iff_forall_SL2Z + theorem OnePoint.isZeroAt_infty_iff + theorem UpperHalfPlane.IsBoundedAtImInfty.slash + theorem UpperHalfPlane.IsZeroAtImInfty.slash 2025-09-16 15:34:32 b4ef90d feat(Probability/Invariance):Reversibility/DetailedBalance (#28691) Add reversibility (detailed balance) for Markov kernels and show it implies invariance ESTIMATED CHANGES Modified Mathlib/Probability/Kernel/Invariance.lean + theorem ProbabilityTheory.Kernel.IsReversible.invariant + def ProbabilityTheory.Kernel.IsReversible 2025-09-16 15:34:29 d36f267 feat(NumberField): specialized version of Kummer Dedekind for the splitting of prime numbers (#26101) We prove a specialized version of [KummerDedekind.normalizedFactorsMapEquivNormalizedFactorsMinPolyMk](https://leanprover-community.github.io/mathlib4_docs/Mathlib/NumberTheory/KummerDedekind.html#KummerDedekind.normalizedFactorsMapEquivNormalizedFactorsMinPolyMk) for the splitting of rational prime numbers in number fields. This PR continues the work from #25038. ESTIMATED CHANGES Modified Mathlib/NumberTheory/NumberField/Ideal/KummerDedekind.lean + theorem NumberField.Ideal.inertiaDeg_primesOverSpanEquivMonicFactorsMod_symm_apply' + theorem NumberField.Ideal.inertiaDeg_primesOverSpanEquivMonicFactorsMod_symm_apply + theorem NumberField.Ideal.liesOver_primesOverSpanEquivMonicFactorsMod_symm + def NumberField.Ideal.primesOverSpanEquivMonicFactorsMod + theorem NumberField.Ideal.primesOverSpanEquivMonicFactorsMod_symm_apply + theorem NumberField.Ideal.primesOverSpanEquivMonicFactorsMod_symm_apply_eq_span + theorem NumberField.Ideal.ramificationIdx_primesOverSpanEquivMonicFactorsMod_symm_apply' + theorem NumberField.Ideal.ramificationIdx_primesOverSpanEquivMonicFactorsMod_symm_apply Modified Mathlib/NumberTheory/RamificationInertia/Basic.lean + theorem Ideal.IsDedekindDomain.ramificationIdx_eq_multiplicity Modified Mathlib/RingTheory/AdjoinRoot.lean + theorem finrank_quotient_span_eq_natDegree Modified Mathlib/RingTheory/DedekindDomain/Ideal/Lemmas.lean + theorem Ideal.mem_primesOver_iff_mem_normalizedFactors Modified Mathlib/RingTheory/IsAdjoinRoot.lean + theorem finrank_quotient_span_eq_natDegree' 2025-09-16 14:41:53 0521a54 feat: mean value theorem for harmonic functions (#29682) Building on #9598, prove that harmonic functions on disks in the complex plane are real parts of holomorphic functions. As a corollary, establish the mean value theorem for harmonic functions. This material is used in [Project VD](https://github.com/kebekus/ProjectVD), which aims to formalize Value Distribution Theory for meromorphic functions on the complex plane. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/Complex/Harmonic/MeanValue.lean + theorem HarmonicOnNhd.circleAverage_eq Modified Mathlib/Analysis/InnerProductSpace/Harmonic/Analytic.lean + theorem harmonic_is_realOfHolomorphic 2025-09-16 14:41:51 5661081 doc: "notations" -> "notation" in headers (#29666) We treat "notation" as an uncountable noun in the context of these headers and drop the plural "s". See: https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Notations.20vs.20Notation/ ESTIMATED CHANGES Modified Archive/Kuratowski.lean Modified Counterexamples/SorgenfreyLine.lean Modified Mathlib/Algebra/AddTorsor/Defs.lean Modified Mathlib/Algebra/Algebra/Equiv.lean Modified Mathlib/Algebra/Algebra/Hom.lean Modified Mathlib/Algebra/Algebra/Spectrum/Basic.lean Modified Mathlib/Algebra/Category/ModuleCat/ChangeOfRings.lean Modified Mathlib/Algebra/CharP/LinearMaps.lean Modified Mathlib/Algebra/Group/Equiv/Defs.lean Modified Mathlib/Algebra/Group/Hom/Defs.lean Modified Mathlib/Algebra/GroupWithZero/Hom.lean Modified Mathlib/Algebra/GroupWithZero/NonZeroDivisors.lean Modified Mathlib/Algebra/Module/Submodule/Ker.lean Modified Mathlib/Algebra/Module/Submodule/Range.lean Modified Mathlib/Algebra/Notation.lean Modified Mathlib/Algebra/Order/Floor/Defs.lean Modified Mathlib/Algebra/Order/Group/Abs.lean Modified Mathlib/Algebra/Order/Group/Unbundled/Abs.lean Modified Mathlib/Algebra/Quotient.lean Modified Mathlib/Algebra/Ring/Equiv.lean Modified Mathlib/Algebra/Ring/Hom/Defs.lean Modified Mathlib/AlgebraicGeometry/EllipticCurve/Affine/Point.lean Modified Mathlib/AlgebraicTopology/SimplexCategory/Defs.lean Modified Mathlib/Analysis/Asymptotics/AsymptoticEquivalent.lean Modified Mathlib/Analysis/Calculus/ContDiff/Basic.lean Modified Mathlib/Analysis/Calculus/ContDiff/Defs.lean Modified Mathlib/Analysis/Calculus/ContDiff/FTaylorSeries.lean Modified Mathlib/Analysis/Calculus/ContDiff/Operations.lean Modified Mathlib/Analysis/Calculus/FormalMultilinearSeries.lean Modified Mathlib/Analysis/Calculus/InverseFunctionTheorem/ApproximatesLinearOn.lean Modified Mathlib/Analysis/Convex/Segment.lean Modified Mathlib/Analysis/Normed/Module/WeakDual.lean Modified Mathlib/CategoryTheory/Abelian/Pseudoelements.lean Modified Mathlib/CategoryTheory/Category/Basic.lean Modified Mathlib/CategoryTheory/Equivalence.lean Modified Mathlib/CategoryTheory/Iso.lean Modified Mathlib/CategoryTheory/Monoidal/Rigid/Basic.lean Modified Mathlib/Combinatorics/SimpleGraph/Finsubgraph.lean Modified Mathlib/Computability/Reduce.lean Modified Mathlib/Data/ENNReal/Basic.lean Modified Mathlib/Data/Fin/VecNotation.lean Modified Mathlib/Data/Finsupp/Defs.lean Modified Mathlib/Data/Matrix/PEquiv.lean Modified Mathlib/Data/NNReal/Basic.lean Modified Mathlib/Data/NNReal/Defs.lean Modified Mathlib/Data/Nat/ModEq.lean Modified Mathlib/Data/Rat/Defs.lean Modified Mathlib/Data/Set/Operations.lean Modified Mathlib/Dynamics/OmegaLimit.lean Modified Mathlib/FieldTheory/IsAlgClosed/Spectrum.lean Modified Mathlib/FieldTheory/JacobsonNoether.lean Modified Mathlib/FieldTheory/KrullTopology.lean Modified Mathlib/Geometry/Manifold/ChartedSpace.lean Modified Mathlib/Geometry/Manifold/Diffeomorph.lean Modified Mathlib/Geometry/Manifold/Instances/Real.lean Modified Mathlib/GroupTheory/OreLocalization/Basic.lean Modified Mathlib/LinearAlgebra/AffineSpace/AffineMap.lean Modified Mathlib/LinearAlgebra/BilinearForm/Basic.lean Modified Mathlib/LinearAlgebra/BilinearForm/Hom.lean Modified Mathlib/LinearAlgebra/BilinearForm/Orthogonal.lean Modified Mathlib/LinearAlgebra/BilinearForm/Properties.lean Modified Mathlib/LinearAlgebra/Matrix/BilinearForm.lean Modified Mathlib/LinearAlgebra/Matrix/Kronecker.lean Modified Mathlib/LinearAlgebra/Matrix/Notation.lean Modified Mathlib/LinearAlgebra/PiTensorProduct.lean Modified Mathlib/LinearAlgebra/Span/Basic.lean Modified Mathlib/LinearAlgebra/Span/Defs.lean Modified Mathlib/MeasureTheory/Function/ConditionalExpectation/Basic.lean Modified Mathlib/MeasureTheory/Function/LpSpace/Basic.lean Modified Mathlib/MeasureTheory/Function/SimpleFuncDense.lean Modified Mathlib/MeasureTheory/Function/SimpleFuncDenseLp.lean Modified Mathlib/MeasureTheory/Integral/Bochner/Basic.lean Modified Mathlib/MeasureTheory/Integral/Bochner/L1.lean Modified Mathlib/MeasureTheory/Integral/DivergenceTheorem.lean Modified Mathlib/MeasureTheory/Integral/TorusIntegral.lean Modified Mathlib/MeasureTheory/Measure/Hausdorff.lean Modified Mathlib/NumberTheory/LegendreSymbol/JacobiSymbol.lean Modified Mathlib/NumberTheory/Padics/PadicVal/Basic.lean Modified Mathlib/NumberTheory/Primorial.lean Modified Mathlib/NumberTheory/Zsqrtd/GaussianInt.lean Modified Mathlib/Order/Filter/Basic.lean Modified Mathlib/Order/Filter/Defs.lean Modified Mathlib/Order/Filter/Prod.lean Modified Mathlib/Order/InitialSeg.lean Modified Mathlib/Order/Lattice.lean Modified Mathlib/Order/Notation.lean Modified Mathlib/Order/SymmDiff.lean Modified Mathlib/Probability/ConditionalProbability.lean Modified Mathlib/Probability/Kernel/Composition/Comp.lean Modified Mathlib/Probability/Kernel/Composition/CompNotation.lean Modified Mathlib/Probability/Kernel/Composition/CompProd.lean Modified Mathlib/Probability/Kernel/Composition/MeasureCompProd.lean Modified Mathlib/Probability/Kernel/Composition/ParallelComp.lean Modified Mathlib/Probability/Kernel/Composition/Prod.lean Modified Mathlib/RingTheory/Bialgebra/Equiv.lean Modified Mathlib/RingTheory/Bialgebra/Hom.lean Modified Mathlib/RingTheory/Coalgebra/Equiv.lean Modified Mathlib/RingTheory/Coalgebra/Hom.lean Modified Mathlib/RingTheory/DedekindDomain/SelmerGroup.lean Modified Mathlib/RingTheory/RingInvo.lean Modified Mathlib/SetTheory/Ordinal/Basic.lean Modified Mathlib/Topology/Algebra/Algebra/Equiv.lean Modified Mathlib/Topology/Algebra/Module/WeakBilin.lean Modified Mathlib/Topology/Algebra/Module/WeakDual.lean Modified Mathlib/Topology/Defs/Filter.lean Modified Mathlib/Topology/Inseparable.lean Modified Mathlib/Topology/MetricSpace/HausdorffDimension.lean Modified Mathlib/Topology/UniformSpace/Basic.lean Modified Mathlib/Topology/UniformSpace/Defs.lean Modified Mathlib/Topology/UniformSpace/Equicontinuity.lean 2025-09-16 14:41:48 f6ca6a5 feat: add tests for `cutsat` and `grobner` frontends to `grind` (#29468) Ports the old `polyrith` tests to tests for `grobner`. ESTIMATED CHANGES Modified Archive/Imo/Imo1994Q1.lean Modified Mathlib/RingTheory/ClassGroup.lean Added MathlibTest/grind/grobner.lean 2025-09-16 14:41:46 fefa0fb chore(Analysis/{NormedSpace/ConformalLinearMap → Normed/Operator/Conformal}): move file (#29448) This is part of #28698 to migrate the material in `Analysis/NormedSpace/` to other locations. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Analysis/Calculus/Conformal/NormedSpace.lean Modified Mathlib/Analysis/InnerProductSpace/ConformalLinearMap.lean Renamed Mathlib/Analysis/NormedSpace/ConformalLinearMap.lean to Mathlib/Analysis/Normed/Operator/Conformal.lean 2025-09-16 13:27:53 d19d8de feat: generalize terminal tactic analysis (#29694) This PR generalizes the existing tactic analysis tools for identifying successes or failures of replacing terminal tactics with `grind`, to the case of replacing one terminal tactic by another. ESTIMATED CHANGES Modified Mathlib/Computability/AkraBazzi/AkraBazzi.lean Modified Mathlib/Tactic/TacticAnalysis.lean Modified Mathlib/Tactic/TacticAnalysis/Declarations.lean + def Mathlib.TacticAnalysis.grindReplacementWith + def Mathlib.TacticAnalysis.terminalReplacement - def grindReplacementWith - def linarithToGrind + def linarithToGrindRegressions + def omegaToCutsat + def omegaToCutsatRegressions - def omegaToGrind - def ringToGrind + def ringToGrindRegressions Modified MathlibTest/TacticAnalysis.lean 2025-09-16 12:27:10 2b4a36b CI: fix Bash substitution syntax in regression report (#29712) I used `sed` syntax in the string substitutions, but we need Bash syntax instead. This change should ensure we correctly group the same types of warnings/errors/etc together. Tested on MacOS, so this may have some subtle differences with the Linux runners. ESTIMATED CHANGES Modified scripts/zulip_build_report.sh 2025-09-16 12:27:08 97e5c4c chore: remove adaptation notes (#29695) ESTIMATED CHANGES Modified Mathlib/Algebra/BigOperators/Group/Finset/Basic.lean Modified Mathlib/Data/Option/Basic.lean Modified Mathlib/Logic/Basic.lean Modified Mathlib/NumberTheory/KummerDedekind.lean Modified Mathlib/NumberTheory/Ostrowski.lean Modified Mathlib/NumberTheory/Padics/PadicVal/Basic.lean Modified Mathlib/Order/CompleteLattice/MulticoequalizerDiagram.lean Modified Mathlib/RingTheory/Ideal/Operations.lean Modified Mathlib/Tactic/ToAdditive/Frontend.lean Modified MathlibTest/toAdditive.lean 2025-09-16 12:27:05 356c9ea chore: add test for grind panic (#29273) This test used to panic until `v4.24.0`. ESTIMATED CHANGES Added MathlibTest/grind/panic.lean + structure Ideal.Quotient + structure Ideal + theorem normalizedFactorsMapEquivNormalizedFactorsMinPolyMk_symm_apply_eq_span.extracted_1_3 2025-09-16 12:27:03 305b343 feat(LinearAlgebra/Matrix/PosDef): inner product on matrices induced by positive definite matrix (#28858) This defines an inner product on matrices induced by a positive definite matrix `M`: `inner x y = trace (M * xᴴ * y)`. When `M = 1`, this is exactly the [Frobenius inner product](https://en.wikipedia.org/wiki/Frobenius_inner_product). ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/Matrix/PosDef.lean + def Matrix.PosDef.matrixInnerProductSpace 2025-09-16 12:27:01 241c337 feat(RingTheory/GoingDown): lift `LTSeries` of primes (#22300) Inductive version of `Ideal.exists_ideal_lt_liesOver_of_lt`. Co-authored by: Sihan Su Co-authored by: Yi Song ESTIMATED CHANGES Modified Mathlib/RingTheory/Ideal/GoingDown.lean + theorem Ideal.exists_ltSeries_of_hasGoingDown 2025-09-16 12:06:37 3b21e24 feat: generalize `LinearMap.finrank_maxGenEigenspace` (#29428) ESTIMATED CHANGES Modified Mathlib/Algebra/Lie/Rank.lean Modified Mathlib/LinearAlgebra/Charpoly/Basic.lean + theorem LinearMap.charpoly_sub_smul Modified Mathlib/LinearAlgebra/Eigenspace/Basic.lean + theorem Module.End.maxGenEigenspace_eq_maxGenEigenspace_zero Modified Mathlib/LinearAlgebra/Eigenspace/Zero.lean + theorem LinearMap.finrank_eigenspace_le + theorem LinearMap.finrank_genEigenspace_le - theorem LinearMap.finrank_maxGenEigenspace + theorem LinearMap.finrank_maxGenEigenspace_eq + theorem LinearMap.finrank_maxGenEigenspace_zero_eq Modified Mathlib/LinearAlgebra/Matrix/Charpoly/Basic.lean + theorem Matrix.charpoly_sub_scalar 2025-09-16 12:06:35 3b67fc9 feat(SkewMonoidAlgebra): Modifying elements of skew monoid algebra at exactly one point (erase and update) (#29319) Basic results on updating/erasing an element of a skew monoid algebras using one point of the domain. Similar to `Finsupp.erase` and `Finsupp.update` ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/SkewMonoidAlgebra/Single.lean + theorem SkewMonoidAlgebra.coeff_erase_apply + theorem SkewMonoidAlgebra.coeff_erase_ne + theorem SkewMonoidAlgebra.coeff_erase_same + theorem SkewMonoidAlgebra.coeff_update + theorem SkewMonoidAlgebra.coeff_update_apply + theorem SkewMonoidAlgebra.coeff_update_ne + theorem SkewMonoidAlgebra.coeff_update_same + def SkewMonoidAlgebra.erase + theorem SkewMonoidAlgebra.erase_single + theorem SkewMonoidAlgebra.induction + theorem SkewMonoidAlgebra.single_add_erase + theorem SkewMonoidAlgebra.support_erase + theorem SkewMonoidAlgebra.support_update + def SkewMonoidAlgebra.update + theorem SkewMonoidAlgebra.update_eq_erase_add_single + theorem SkewMonoidAlgebra.update_self + theorem SkewMonoidAlgebra.update_zero_eq_erase + theorem SkewMonoidAlgebra.zero_update 2025-09-16 11:11:17 738719f chore: validate dependency revs (#29698) More than once (e.g. #29696) I've accidentally changed our dependencies to nightly-testing versions on `master`. This PR may be too restrictive, in which case we can relax it as needed. ESTIMATED CHANGES Modified .github/build.in.yml Modified .github/workflows/bors.yml Modified .github/workflows/build.yml Modified .github/workflows/build_fork.yml 2025-09-16 11:11:15 7857d07 fix: incorrect dependencies in lakefile (#29696) ESTIMATED CHANGES Modified lake-manifest.json Modified lakefile.lean 2025-09-16 11:11:12 89a45e5 feat(Topology/LinearPMap): the inverse is closed iff f is closed (#29631) The proof is trivial, just needed a bit of sectioning of the file to please the linter. ESTIMATED CHANGES Modified Mathlib/Topology/Algebra/Module/LinearPMap.lean + theorem LinearPMap.inverse_closed_iff 2025-09-16 11:11:10 d98f0bb feat(Analysis/SpecialFunctions/CFC/Rpow): `0 ≤ a` iff `a = star b * b` for some `b` (#29592) It can sometimes be convenient to directly have this form for non-negative elements. ESTIMATED CHANGES Modified Mathlib/Analysis/SpecialFunctions/ContinuousFunctionalCalculus/Rpow/Basic.lean + theorem CStarAlgebra.nonneg_TFAE + theorem CStarAlgebra.nonneg_iff_eq_isSelfAdjoint_mul_self + theorem CStarAlgebra.nonneg_iff_eq_mul_star_self + theorem CStarAlgebra.nonneg_iff_eq_nonneg_mul_self + theorem CStarAlgebra.nonneg_iff_eq_sqrt_mul_sqrt + theorem CStarAlgebra.nonneg_iff_eq_star_mul_self 2025-09-16 10:17:08 78a7a89 chore: basic grind annotations for Real.sqrt (#29456) ESTIMATED CHANGES Modified Mathlib/Data/Real/Sqrt.lean + theorem Real.sq_sqrt' Modified Mathlib/Order/Defs/LinearOrder.lean +/- theorem lt_trichotomy 2025-09-16 10:17:05 837ba8a chore: grind annotations in Data/Nat/Find (#29455) ESTIMATED CHANGES Modified Mathlib/Data/Nat/Find.lean 2025-09-16 10:17:02 cd010f0 feat: `grind` annotations for `Nat.count` (#29454) ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Embedding.lean Modified Mathlib/Data/Nat/Count.lean +/- theorem Nat.count_lt_count_succ_iff +/- theorem Nat.count_succ_eq_count_iff +/- theorem Nat.count_succ_eq_succ_count_iff +/- theorem Nat.count_zero 2025-09-16 10:17:00 b3174e3 chore: grind annotations in Data/Bool (#29453) ESTIMATED CHANGES Modified Mathlib/Data/Bool/Basic.lean +/- theorem Bool.bool_iff_false +/- theorem Bool.coe_xor_iff +/- theorem Bool.dichotomy +/- theorem Bool.eq_false_eq_not_eq_true +/- theorem Bool.eq_false_of_not_eq_true' +/- theorem Bool.eq_true_eq_not_eq_false +/- theorem Bool.eq_true_of_not_eq_false' +/- theorem Bool.false_eq_true_eq_False +/- theorem Bool.not_eq_false_eq_eq_true +/- theorem Bool.not_eq_true_eq_eq_false + theorem Bool.ofNat_add_one +/- theorem Bool.ofNat_toNat + theorem Bool.ofNat_zero +/- theorem Bool.or_inr +/- theorem Bool.toNat_beq_zero +/- theorem Bool.true_eq_false_eq_False Modified Mathlib/Data/Bool/Count.lean Modified Mathlib/Data/Bool/Set.lean +/- theorem Bool.compl_singleton +/- theorem Bool.range_eq +/- theorem Bool.univ_eq 2025-09-16 10:16:57 bad1fcc feat: `grind` annotations for `Finset.card` (#29429) ESTIMATED CHANGES Modified Archive/Imo/Imo1998Q2.lean Modified Counterexamples/AharoniKorman.lean Modified Mathlib/Algebra/BigOperators/Ring/Finset.lean Modified Mathlib/Combinatorics/Additive/PluenneckeRuzsa.lean Modified Mathlib/Combinatorics/Hall/Finite.lean Modified Mathlib/Combinatorics/SetFamily/Compression/UV.lean Modified Mathlib/Combinatorics/SetFamily/HarrisKleitman.lean Modified Mathlib/Combinatorics/SetFamily/KruskalKatona.lean Modified Mathlib/Combinatorics/SetFamily/Shadow.lean Modified Mathlib/Combinatorics/SimpleGraph/DeleteEdges.lean Modified Mathlib/Combinatorics/SimpleGraph/Extremal/Turan.lean Modified Mathlib/Combinatorics/SimpleGraph/Finite.lean Modified Mathlib/Combinatorics/SimpleGraph/FiveWheelLike.lean Modified Mathlib/Combinatorics/SimpleGraph/Operations.lean Modified Mathlib/Combinatorics/SimpleGraph/Regularity/Chunk.lean Modified Mathlib/Combinatorics/SimpleGraph/Regularity/Equitabilise.lean Modified Mathlib/Combinatorics/SimpleGraph/StronglyRegular.lean Modified Mathlib/Combinatorics/SimpleGraph/Triangle/Basic.lean Modified Mathlib/Combinatorics/SimpleGraph/Triangle/Counting.lean Modified Mathlib/Data/Finset/Card.lean +/- theorem Finset.card_insert_eq_ite +/- theorem Finset.card_insert_le +/- theorem Finset.card_inter +/- theorem Finset.card_le_card_sdiff_add_card +/- theorem Finset.card_pair_eq_one_or_two +/- theorem Finset.card_sdiff +/- theorem Finset.card_sdiff_add_card_eq_card +/- theorem Finset.card_sdiff_eq_card_sdiff_iff +/- theorem Finset.card_sdiff_le_card_sdiff_iff +/- theorem Finset.card_sdiff_lt_card_sdiff_iff + theorem Finset.card_sdiff_of_subset +/- theorem Finset.card_singleton_inter +/- theorem Finset.card_union +/- theorem Finset.card_union_le +/- theorem Finset.pred_card_le_card_erase Modified Mathlib/Data/Finset/CastCard.lean Modified Mathlib/Data/Finset/Insert.lean +/- theorem Finset.insert_eq_self Modified Mathlib/Data/Finset/Interval.lean Modified Mathlib/Data/Finset/Lattice/Lemmas.lean + theorem Finset.insert_inter + theorem Finset.inter_insert Modified Mathlib/Data/Fintype/Card.lean Modified Mathlib/Data/Nat/Totient.lean Modified Mathlib/Data/Set/Card/Arithmetic.lean Modified Mathlib/Geometry/Euclidean/Circumcenter.lean Modified Mathlib/LinearAlgebra/Lagrange.lean Modified Mathlib/LinearAlgebra/Multilinear/Basic.lean Modified Mathlib/NumberTheory/JacobiSum/Basic.lean Modified Mathlib/Order/Interval/Finset/Box.lean 2025-09-16 09:16:53 ec636b9 feat: grind annotations for Finset.range (#29426) ESTIMATED CHANGES Modified Mathlib/Data/Finset/Empty.lean + theorem Finset.nonempty_def Modified Mathlib/Data/Finset/Range.lean +/- theorem Finset.mem_range_le +/- theorem Finset.mem_range_sub_ne_zero +/- theorem Finset.mem_range_succ_iff +/- theorem Finset.notMem_range_self +/- theorem Finset.range_add_one +/- theorem Finset.range_subset_range +/- theorem Finset.self_mem_range_succ 2025-09-16 09:16:50 9413359 feat: Set.codRestrict_range_surjective (#29332) ESTIMATED CHANGES Modified Mathlib/Data/Set/Restrict.lean + theorem Set.codRestrict_range_surjective 2025-09-16 09:16:48 76a3eef chore (Algebra/Vertex): linearize coefficient functions (#29133) This PR upgrades the coefficient functions of vertex operators and heterogeneous vertex operators to be linear maps instead of just functions. We also deprecate the corresponding linearity lemmas, and add two rfl simp lemmas. ESTIMATED CHANGES Modified Mathlib/Algebra/Vertex/HVertexOperator.lean +/- def HVertexOperator.coeff - theorem HVertexOperator.coeff_add +/- theorem HVertexOperator.coeff_inj + theorem HVertexOperator.coeff_of_coeff - theorem HVertexOperator.coeff_smul +/- def HVertexOperator.of_coeff + theorem HVertexOperator.of_coeff_coeff Modified Mathlib/Algebra/Vertex/VertexOperator.lean +/- def VertexOperator.ncoeff - theorem VertexOperator.ncoeff_add + theorem VertexOperator.ncoeff_apply - theorem VertexOperator.ncoeff_smul 2025-09-16 09:16:46 c58f162 refactor(RingTheory/RingHom): factor out proofs for `Algebra.FinitePresentation` (#26489) The current way to use locality of a given property of algebras is to convert everything into the language of `RingHom`s and then for example the `RingHom.OfLocalizationSpanTarget` API. This has two disadvantages: 1. The ring hom property API fixes the universes of source and target to be the same, hence we unnecessarily lose out on some universe generality. 2. The results for `RingHom`s are proven by translating everything in terms of `Algebra`, so we duplicate the translation steps. This PR refactors `RingHom.FinitePresentation` to do all locality proofs in the language of `Algebra`s and translate it into the corresponding `RingHom.OfLocalizationSpan{Target}` in the last step. We also streamline some of the translation proofs by unifying the API. ESTIMATED CHANGES Modified Mathlib/RingTheory/RingHom/FinitePresentation.lean + theorem Algebra.FinitePresentation.of_span_eq_top_target + theorem Algebra.FinitePresentation.of_span_eq_top_target_aux +/- theorem RingHom.finitePresentation_localizationPreserves - theorem RingHom.finitePresentation_ofLocalizationSpanTarget_aux 2025-09-16 08:17:48 360066c chore: remove redundant `have`:s in `Computability/`, `Combinatorics/`, `Condensed/`, `Data/Nat/` and `Data/PNat/` (#28996) ESTIMATED CHANGES Modified Mathlib/Computability/AkraBazzi/AkraBazzi.lean Modified Mathlib/Computability/DFA.lean Modified Mathlib/Condensed/AB.lean Modified Mathlib/Data/Nat/BitIndices.lean Modified Mathlib/Data/Nat/Init.lean Modified Mathlib/Data/PNat/Xgcd.lean 2025-09-16 03:01:21 b30c039 feat: alternating series error bound (#29577) Thanks for the hints from @sgouezel at [#Is there code for X? > error term for summable alternating series?](https://leanprover.zulipchat.com/#narrow/channel/217875-Is-there-code-for-X.3F/topic/error.20term.20for.20summable.20alternating.20series.3F/with/538984368). ESTIMATED CHANGES Modified Mathlib/Analysis/SpecificLimits/Normed.lean + theorem Summable.tendsto_alternating_series_tsum + theorem alternating_series_error_bound Modified Mathlib/Topology/Algebra/InfiniteSum/NatInt.lean + theorem Summable.alternating 2025-09-16 00:56:55 41d6186 fix(Topology/Homotopy): fix name&args order of `comp` (#24829) `ContinuousMap.Homotopy.hcomp` used name & arguments order that matches Mathlib's category theory conventions, not topology conventions. ESTIMATED CHANGES Modified Mathlib/Topology/Homotopy/Basic.lean + theorem ContinuousMap.Homotopic.comp + def ContinuousMap.Homotopy.comp Modified Mathlib/Topology/Homotopy/Contractible.lean Modified Mathlib/Topology/Homotopy/Equiv.lean Modified Mathlib/Topology/Homotopy/Lifting.lean 2025-09-15 23:45:18 b57dbae feat(Algebra/GCDMonoid): add some theorems related to divisibility and `lcm` for both `GCDMonoid` and `Nat` (#27963) While working on formalizing some math olympiad problems, I found that the theorem `dvd_lcm : p ∣ lcm a b ↔ p ∣ a ∨ p ∣ b` is missing in Mathlib. So I added this along with some other related theorems. These theorems are simlilar to those related to divisibility and multiplication (`dvd_mul` as compared to `dvd_lcm` for example), as commented in the doc strings. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/GCDMonoid/Basic.lean + theorem Prime.dvd_lcm + theorem Prime.dvd_or_dvd_of_dvd_lcm + theorem Prime.not_dvd_lcm + theorem dvd_lcm_of_dvd_left + theorem dvd_lcm_of_dvd_right + theorem dvd_of_lcm_left_dvd + theorem dvd_of_lcm_right_dvd + theorem lcm_dvd_mul Modified Mathlib/Data/Nat/GCD/Basic.lean + theorem Nat.dvd_lcm_of_dvd_left + theorem Nat.dvd_lcm_of_dvd_right + theorem Nat.dvd_of_lcm_left_dvd + theorem Nat.dvd_of_lcm_right_dvd Added Mathlib/Data/Nat/GCD/Prime.lean + theorem Nat.Prime.dvd_lcm + theorem Nat.Prime.dvd_or_dvd_of_dvd_lcm + theorem Nat.Prime.not_dvd_lcm 2025-09-15 22:46:50 2609d95 chore: deprecate Real.add_lt_add_iff_left (#29676) `_root_.add_lt_add_iff_left` serves the same purpose, though the instance that provides it currently relies on the specialized theorem. By deprecating it, authors no longer need to make a meaningless choice between the two theorems. Making it `protected` should ensure no disambiguation is needed when the `Real` namespace is open, though I've not managed to reproduce a case where Lean errors rather than using the namespaced theorem silently. ESTIMATED CHANGES Modified Archive/Wiedijk100Theorems/CubingACube.lean Modified Mathlib/Data/Real/Basic.lean - theorem Real.add_lt_add_iff_left 2025-09-15 22:03:34 cfec790 chore(Data/Set): unsimp `Finite.insert` (#29689) This is completely superseded by `finite_insert`. ESTIMATED CHANGES Modified Mathlib/Data/Set/Finite/Basic.lean 2025-09-15 21:27:20 4c5068b feat(RingTheory/Flat): Add theorems relating Submodule.torsion and Module.Flat (#26783) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Algebra/Bilinear.lean + theorem LinearMap.lift_lsmul_mul_eq_lsmul_lift_lsmul Modified Mathlib/Algebra/Module/LocalizedModule/Basic.lean + theorem IsLocalizedModule.noZeroSMulDivisors Added Mathlib/RingTheory/Flat/TorsionFree.lean + theorem IsDedekindDomain.flat_iff_torsion_eq_bot + theorem Module.Flat.flat_iff_torsion_eq_bot_of_isBezout + theorem Module.Flat.flat_iff_torsion_eq_bot_of_valuationRing_localization_isMaximal + theorem Module.Flat.isSMulRegular_of_isRegular + theorem Module.Flat.isSMulRegular_of_nonZeroDivisors + theorem Module.Flat.torsion_eq_bot Modified Mathlib/RingTheory/Ideal/IsPrincipal.lean + theorem Ideal.isoBaseOfIsPrincipal_apply + theorem Ideal.subtype_isoBaseOfIsPrincipal_eq_mul 2025-09-15 20:56:47 847721a feat: group objects form a cartesian-monoidal category (#29166) From Toric ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Monoidal/Grp_.lean + theorem GrpObj.tensorObj.Grp_.associator_hom_hom + theorem GrpObj.tensorObj.Grp_.associator_inv_hom + theorem GrpObj.tensorObj.Grp_.braiding_hom_hom + theorem GrpObj.tensorObj.Grp_.braiding_inv_hom + theorem GrpObj.tensorObj.Grp_.fst_hom + theorem GrpObj.tensorObj.Grp_.leftUnitor_hom_hom + theorem GrpObj.tensorObj.Grp_.leftUnitor_inv_hom + theorem GrpObj.tensorObj.Grp_.lift_hom + theorem GrpObj.tensorObj.Grp_.rightUnitor_hom_hom + theorem GrpObj.tensorObj.Grp_.rightUnitor_inv_hom + theorem GrpObj.tensorObj.Grp_.snd_hom + theorem GrpObj.tensorObj.Grp_.tensorObj_mul + theorem GrpObj.tensorObj.Grp_.tensorObj_one + theorem GrpObj.tensorObj.Grp_.tensorUnit_X + theorem GrpObj.tensorObj.Grp_.tensorUnit_mul + theorem GrpObj.tensorObj.Grp_.tensorUnit_one + theorem GrpObj.tensorObj.Grp_.whiskerLeft_hom + theorem GrpObj.tensorObj.Grp_.whiskerRight_hom 2025-09-15 20:34:10 32803e9 feat(NormNum): add extensions for `Even` and `Odd` (#28934) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Tactic.lean Added Mathlib/Tactic/NormNum/Parity.lean + def Mathlib.Meta.NormNum.evalEven + def Mathlib.Meta.NormNum.evalOdd Modified MathlibTest/norm_num_ext.lean Modified scripts/noshake.json 2025-09-15 19:49:27 4b2e225 feat(IsPrimitiveRoot): add `adjoin_pair_eq` (#29600) The sub-algebra generated by two roots of unity of order `k₁` and `k₂` resp. is the same as the one generated by a single root of unity of order `lcm k₁ k₂`. ESTIMATED CHANGES Modified Mathlib/RingTheory/RootsOfUnity/PrimitiveRoots.lean + theorem IsPrimitiveRoot.adjoin_pair_eq 2025-09-15 19:33:59 9ccb6e7 feat: mdifferentiableOn_section_of_mem_baseSet₀ (#26870) The `MDifferentiable` analogue of `contMDiffOn_section_of_mem_baseSet₀`. From the path towards geodesics and the Levi-Civita connection. ESTIMATED CHANGES Modified Mathlib/Geometry/Manifold/VectorBundle/Basic.lean + theorem Trivialization.contMDiffAt_section_iff + theorem Trivialization.contMDiffOn_section_baseSet_iff + theorem Trivialization.contMDiffOn_section_iff - theorem contMDiffAt_section_of_mem_baseSet - theorem contMDiffOn_section_of_mem_baseSet - theorem contMDiffOn_section_of_mem_baseSet₀ Modified Mathlib/Geometry/Manifold/VectorBundle/MDifferentiable.lean + theorem MDifferentiableWithinAt.change_section_trivialization + theorem Trivialization.mdifferentiableAt_section_iff + theorem Trivialization.mdifferentiableAt_snd_comp_iff₂ + theorem Trivialization.mdifferentiableAt_totalSpace_iff + theorem Trivialization.mdifferentiableOn_section_baseSet_iff + theorem Trivialization.mdifferentiableOn_section_iff + theorem Trivialization.mdifferentiableWithinAt_section_iff + theorem Trivialization.mdifferentiableWithinAt_snd_comp_iff₂ + theorem Trivialization.mdifferentiableWithinAt_totalSpace_iff 2025-09-15 18:36:44 5e8936e feat: add `induction'` to the deprecated syntax linter (#29548) Exactly like `cases'`. ESTIMATED CHANGES Modified Mathlib/Init.lean Modified Mathlib/Tactic/Linter/DeprecatedSyntaxLinter.lean Modified MathlibTest/DeprecatedSyntaxLinter.lean 2025-09-15 18:23:02 3a0fa9d feat(ArithmeticFunction): lemmas about positivity (#28789) Add lemmas like `σ k n = 0 ↔ n = 0`. Also add `positivity` extensions for `zeta` and `sigma`. ESTIMATED CHANGES Modified Mathlib/NumberTheory/ArithmeticFunction.lean + theorem ArithmeticFunction.cardDistinctFactors_eq_zero + theorem ArithmeticFunction.cardDistinctFactors_pos + theorem ArithmeticFunction.sigma_eq_zero + theorem ArithmeticFunction.sigma_pos_iff + theorem ArithmeticFunction.zeta_eq_zero + theorem ArithmeticFunction.zeta_pos + def Mathlib.Meta.Positivity.evalArithmeticFunctionSigma + def Mathlib.Meta.Positivity.evalArithmeticFunctionZeta Modified MathlibTest/positivity.lean 2025-09-15 17:59:29 31e27b3 feat(MeasureTheory.Integral): Mean value theorem for integrals (#29114) Combines results from MeasureTheory.Integral.Average and the intermediate value theorem to give the integral form of the mean value theorem: https://en.wikipedia.org/wiki/Mean_value_theorem#Mean_value_theorems_for_definite_integrals ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Integral/IntervalAverage.lean + theorem exists_eq_interval_average 2025-09-15 16:50:03 a2fe58d feat(Data/Set): `insert a s` is finite iff `s` is (#29677) ESTIMATED CHANGES Modified Mathlib/Data/Set/Finite/Basic.lean + theorem Set.finite_insert 2025-09-15 16:50:01 61e169e feat(IntermediateField/LinearDisjoint): add `finrank_left_eq_finrank` and `finrank_right_eq_finrank` (#29667) Add the following result: If `A` and `B` are linearly disjoint over `F` and `A ⊔ B = E`, then the `Module.finrank` of `E` over `A` is equal to the `Module.finrank` of `B` over `F`. and the corresponding right version. ESTIMATED CHANGES Modified Mathlib/FieldTheory/LinearDisjoint.lean + theorem IntermediateField.LinearDisjoint.finrank_left_eq_finrank + theorem IntermediateField.LinearDisjoint.finrank_right_eq_finrank 2025-09-15 16:49:59 ea49cde feat(SimpleGraph/Walk): add missing results involving `getVert` / `takeUntil` (#29601) Add some missing lemmas involving `getVert` / `takeUntil`. In particular `getVert_le_length_takeUntil_eq_iff` which says that if `p` is a walk containing the vertex `u` then `n = (p.takeUntil u h).length` is the smallest `n` such that `p.getVert n = u`. ESTIMATED CHANGES Modified Mathlib/Combinatorics/SimpleGraph/Connectivity/WalkDecomp.lean + theorem SimpleGraph.Walk.getVert_le_length_takeUntil_eq_iff + theorem SimpleGraph.Walk.getVert_length_takeUntil + theorem SimpleGraph.Walk.getVert_lt_length_takeUntil_ne + theorem SimpleGraph.Walk.takeUntil_append_of_mem_left Modified Mathlib/Combinatorics/SimpleGraph/Walk.lean + theorem SimpleGraph.Walk.support_eq_concat 2025-09-15 15:53:11 1e81efc feat(Data/Finset/Max): `min'_pair`, `max'_pair` (#29415) Add the lemmas: ```lean lemma min'_pair (a b : α) : min' {a, b} (insert_nonempty _ _) = min a b := by ``` ```lean lemma max'_pair (a b : α) : max' {a, b} (insert_nonempty _ _) = max a b := by ``` and corresponding `min_pair` and `max_pair`. So that the primed lemmas can be proved by `simp`, like the unprimed ones, make `min'_insert` and `max'_insert` into `simp` lemmas, and swap the arguments to `min` and `max` on their RHS, also corresponding more closely to the unprimed lemmas `min_insert` and `max_insert`. ESTIMATED CHANGES Modified Mathlib/Data/Finset/Max.lean +/- theorem Finset.max'_insert + theorem Finset.max'_pair + theorem Finset.max_pair +/- theorem Finset.min'_insert + theorem Finset.min'_pair + theorem Finset.min_pair 2025-09-15 14:53:04 dba1734 chore: module deprecations from #28953 (#29672) [#general > deprecated_module @ 💬](https://leanprover.zulipchat.com/#narrow/channel/113488-general/topic/deprecated_module/near/539545664) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Data/Complex/Cardinality.lean Added Mathlib/Data/Complex/FiniteDimensional.lean Added Mathlib/Data/Complex/Norm.lean Added Mathlib/Data/Complex/Order.lean 2025-09-15 14:53:02 1129786 feat: more lemmas about `Matrix.vecMulVec` (#29401) The most interesting of these is `(vecMulVec u v).det = 0`. ESTIMATED CHANGES Modified Mathlib/Data/Matrix/Mul.lean + theorem Matrix.diag_vecMulVec Modified Mathlib/LinearAlgebra/Matrix/Determinant/Basic.lean + theorem Matrix.det_vecMulVec Modified Mathlib/LinearAlgebra/Matrix/RowCol.lean + theorem Matrix.updateCol_comm + theorem Matrix.updateCol_idem + theorem Matrix.updateRow_comm + theorem Matrix.updateRow_idem + theorem Matrix.update_vecMulVec + theorem Matrix.vecMulVec_update Modified Mathlib/LinearAlgebra/Matrix/Trace.lean + theorem Matrix.trace_vecMulVec 2025-09-15 14:52:59 60ad961 chore(Algebra/Polynomial/Basic): make some arguments implicit (#29397) ESTIMATED CHANGES Modified Mathlib/Algebra/Polynomial/Basic.lean +/- theorem Polynomial.coeff_mem_coeffs +/- theorem Polynomial.coeffs_empty_iff Modified Mathlib/Algebra/Polynomial/Lifts.lean Modified Mathlib/RingTheory/Polynomial/Basic.lean Modified Mathlib/RingTheory/Polynomial/ContentIdeal.lean 2025-09-15 13:59:04 35ebe14 feat(CI): `nightly-testing` regression report (#29506) This PR adds a workflow that builds the `nightly-testing-green` branch with extra linting options enabled, and reports the results on Zulip. We currently can use this to catch places where `grind` doesn't solve goals that `linarith`/`omega`/`ring` can solve. Example output to Zulip: > Mathlib's [nightly-testing branch](https://github.com/leanprover-community/mathlib4-nightly-testing/tree/nightly-testing) ([0f4ee783b5dac29751bce6be710a445e89159a69](https://github.com/Vierkantor/mathlib4/commit/0f4ee783b5dac29751bce6be710a445e89159a69)) regression run [completed](https://github.com/Vierkantor/mathlib4/actions/runs/17583902916). > Warnings: 283 > > | | Warning description | > | ESTIMATED CHANGES Added .github/workflows/nightly-regression-report.yml Modified Mathlib/Tactic/TacticAnalysis/Declarations.lean +/- def grindReplacementWith +/- def linarithToGrind +/- def omegaToGrind +/- def ringToGrind Added scripts/zulip_build_report.sh 2025-09-15 13:59:01 44bb47f feat(LinearAlgebra): symmetric tensor power (#26192) This file defines the symmetric tensor power of a module over a ring. The finite powers will form a grading of the symmetric algebra. The n-th symmetric R-tensor power of M will also correspond to global sections of a line bundle on Proj(M) of degree n. It also has a universal property where maps out of it correspond to symmetric multilinear forms. We implement the modules separately instead deriving it from the algebra because this way allows us to generalise it to the case where we have an infinite indexing set, which allows us to talk about infinitely multilinear symmetric linear maps. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/LinearAlgebra/TensorPower/Symmetric.lean + inductive SymmetricPower.Rel + theorem SymmetricPower.domDomCongr_tprod + def SymmetricPower.mk + theorem SymmetricPower.range_mk + def SymmetricPower.smul' + theorem SymmetricPower.smul + theorem SymmetricPower.span_tprod_eq_top + def SymmetricPower.tprod + theorem SymmetricPower.tprod_equiv + def SymmetricPower 2025-09-15 13:16:51 02b619c chore: remove a few unused imports (#29625) These were noticed by shake in a different project where typeclass synthesis followed different paths, and therefore didn't need the same imports. ESTIMATED CHANGES Modified Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Unique.lean Modified Mathlib/Analysis/Complex/IsIntegral.lean Modified Mathlib/Analysis/LocallyConvex/Basic.lean Modified Mathlib/Analysis/Meromorphic/Complex.lean Modified Mathlib/Analysis/Normed/Module/Basic.lean Modified Mathlib/Analysis/Seminorm.lean Modified Mathlib/Analysis/VonNeumannAlgebra/Basic.lean Modified Mathlib/NumberTheory/LSeries/Convolution.lean Modified Mathlib/NumberTheory/LSeries/Injectivity.lean Modified Mathlib/NumberTheory/NumberField/Discriminant/Defs.lean Modified Mathlib/Topology/Algebra/Module/FiniteDimension.lean 2025-09-15 12:54:32 eed770a chore: bump toolchain to v4.24.0-rc1 (#29671) ESTIMATED CHANGES Modified .github/actionlint.yml Added .github/workflows/nightly-docgen.yml Modified Archive/Wiedijk100Theorems/BallotProblem.lean Modified Mathlib/Algebra/BigOperators/Finprod.lean Modified Mathlib/Algebra/BigOperators/Group/Finset/Basic.lean Modified Mathlib/Algebra/CharZero/Quotient.lean Modified Mathlib/Algebra/DirectSum/LinearMap.lean Modified Mathlib/Algebra/EuclideanDomain/Int.lean Modified Mathlib/Algebra/Field/Rat.lean +/- theorem NNRat.inv_def Modified Mathlib/Algebra/Group/Basic.lean Modified Mathlib/Algebra/Group/Even.lean Modified Mathlib/Algebra/Homology/ExactSequence.lean Modified Mathlib/Algebra/ModEq.lean Modified Mathlib/Algebra/Module/LocalizedModule/Basic.lean Modified Mathlib/Algebra/Module/Submodule/Equiv.lean Modified Mathlib/Algebra/MonoidAlgebra/Degree.lean Modified Mathlib/Algebra/MvPolynomial/Rename.lean Modified Mathlib/Algebra/Notation/Defs.lean Modified Mathlib/Algebra/Order/Ring/Int.lean Modified Mathlib/Algebra/Order/Ring/Rat.lean Modified Mathlib/Algebra/Order/Ring/Unbundled/Rat.lean - theorem Rat.divInt_nonneg - theorem Rat.divInt_nonneg_iff_of_pos_right Modified Mathlib/Algebra/Polynomial/Bivariate.lean Modified Mathlib/Algebra/Polynomial/Eval/Defs.lean +/- def Polynomial.eval + theorem Polynomial.eval₂_id Modified Mathlib/Algebra/Polynomial/Eval/SMul.lean Modified Mathlib/Algebra/Regular/Defs.lean Modified Mathlib/Algebra/Ring/Rat.lean - theorem Rat.mkRat_eq_div Modified Mathlib/AlgebraicGeometry/IdealSheaf/Subscheme.lean Modified Mathlib/AlgebraicGeometry/Morphisms/ClosedImmersion.lean Modified Mathlib/AlgebraicGeometry/Morphisms/RingHomProperties.lean Modified Mathlib/AlgebraicGeometry/ProjectiveSpectrum/Basic.lean Modified Mathlib/AlgebraicGeometry/ProjectiveSpectrum/Proper.lean Modified Mathlib/AlgebraicGeometry/Scheme.lean Modified Mathlib/AlgebraicGeometry/StructureSheaf.lean Modified Mathlib/AlgebraicTopology/DoldKan/Degeneracies.lean Modified Mathlib/AlgebraicTopology/DoldKan/Faces.lean Modified Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Instances.lean Modified Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/NonUnital.lean Modified Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Unital.lean Modified Mathlib/Analysis/Calculus/ContDiff/FaaDiBruno.lean Modified Mathlib/Analysis/Normed/Algebra/Spectrum.lean Modified Mathlib/Analysis/SpecialFunctions/Log/Summable.lean Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Basic.lean Modified Mathlib/CategoryTheory/Adjunction/Reflective.lean Modified Mathlib/CategoryTheory/Groupoid/Subgroupoid.lean Modified Mathlib/CategoryTheory/Limits/Shapes/WidePullbacks.lean Modified Mathlib/CategoryTheory/Monoidal/Braided/Basic.lean Modified Mathlib/CategoryTheory/Shift/Basic.lean Modified Mathlib/CategoryTheory/Sites/Hypercover/Zero.lean Modified Mathlib/Combinatorics/Enumerative/Bell.lean Modified Mathlib/Combinatorics/SimpleGraph/Hamiltonian.lean Modified Mathlib/Combinatorics/SimpleGraph/Walk.lean Modified Mathlib/Computability/AkraBazzi/AkraBazzi.lean Modified Mathlib/Computability/ContextFreeGrammar.lean Modified Mathlib/Computability/TMToPartrec.lean + theorem Turing.PartrecToTM2.default_Γ' Modified Mathlib/Data/Bool/Basic.lean Modified Mathlib/Data/DFinsupp/Notation.lean + def DFinsupp.Internal.elabSingle₀ + def DFinsupp.Internal.elabUpdate₀ - def DFinsupp.elabSingle₀ - def DFinsupp.elabUpdate₀ Modified Mathlib/Data/FP/Basic.lean Modified Mathlib/Data/Finsupp/Notation.lean + def Finsupp.Internal.elabSingle₀ + def Finsupp.Internal.elabUpdate₀ - def Finsupp.elabSingle₀ - def Finsupp.elabUpdate₀ Modified Mathlib/Data/Int/Basic.lean Modified Mathlib/Data/Int/Bitwise.lean + theorem Int.shiftLeft_add' - theorem Int.shiftLeft_add + theorem Int.zero_shiftLeft' - theorem Int.zero_shiftLeft Modified Mathlib/Data/Int/GCD.lean Modified Mathlib/Data/Int/Interval.lean Modified Mathlib/Data/Int/Lemmas.lean Modified Mathlib/Data/List/Basic.lean Modified Mathlib/Data/List/Cycle.lean Modified Mathlib/Data/List/Rotate.lean Modified Mathlib/Data/NNRat/Defs.lean +/- theorem NNRat.divNat_mul_divNat Modified Mathlib/Data/NNRat/Floor.lean Modified Mathlib/Data/Nat/Count.lean +/- def Nat.CountSet.fintype Modified Mathlib/Data/Nat/GCD/Basic.lean Modified Mathlib/Data/Nat/GCD/BigOperators.lean Modified Mathlib/Data/Nat/Init.lean Modified Mathlib/Data/Nat/PartENat.lean Modified Mathlib/Data/Nat/Prime/Defs.lean Modified Mathlib/Data/Nat/Sqrt.lean +/- theorem Nat.log2_two Modified Mathlib/Data/Prod/PProd.lean Modified Mathlib/Data/Rat/Cast/Defs.lean Modified Mathlib/Data/Rat/Defs.lean - theorem Rat.den_intCast - theorem Rat.den_natCast - theorem Rat.den_ofNat - theorem Rat.den_pow - theorem Rat.divInt_eq_div - theorem Rat.divInt_mul_divInt' +/- theorem Rat.divInt_one_one - theorem Rat.divInt_self' - theorem Rat.inv_def' - theorem Rat.inv_divInt' - theorem Rat.mk'_eq_divInt - theorem Rat.mkRat_one - theorem Rat.natCast_inj - theorem Rat.normalize_eq_mk' - def Rat.numDenCasesOn''.{u} - def Rat.numDenCasesOn'.{u} - def Rat.numDenCasesOn.{u} - theorem Rat.num_divInt_den - theorem Rat.num_eq_zero - theorem Rat.num_intCast - theorem Rat.num_natCast - theorem Rat.num_nonneg - theorem Rat.num_ofNat - theorem Rat.num_pow - theorem Rat.pow_def Modified Mathlib/Data/Rat/Floor.lean Modified Mathlib/Data/Rat/Lemmas.lean +/- theorem Rat.inv_intCast_den +/- theorem Rat.inv_intCast_num +/- theorem Rat.inv_natCast_den +/- theorem Rat.inv_natCast_num +/- theorem Rat.inv_ofNat_den +/- theorem Rat.inv_ofNat_num - theorem Rat.num_inv Modified Mathlib/Data/Rat/NatSqrt/Real.lean Modified Mathlib/Data/Set/Defs.lean Modified Mathlib/Data/Sigma/Lex.lean Modified Mathlib/Data/TwoPointing.lean Modified Mathlib/Data/UInt.lean Modified Mathlib/Data/ZMod/Basic.lean Modified Mathlib/Dynamics/PeriodicPts/Defs.lean Modified Mathlib/Geometry/Manifold/Algebra/LeftInvariantDerivation.lean Modified Mathlib/Geometry/Manifold/Instances/Icc.lean Modified Mathlib/GroupTheory/OrderOfElement.lean Modified Mathlib/GroupTheory/Perm/Centralizer.lean Modified Mathlib/GroupTheory/SpecificGroups/Cyclic.lean Modified Mathlib/Init.lean Modified Mathlib/Lean/Expr/Rat.lean Modified Mathlib/Lean/Json.lean Modified Mathlib/LinearAlgebra/Determinant.lean Modified Mathlib/LinearAlgebra/LinearPMap.lean Modified Mathlib/LinearAlgebra/Matrix/Charpoly/LinearMap.lean Modified Mathlib/LinearAlgebra/PID.lean Modified Mathlib/LinearAlgebra/Projection.lean Modified Mathlib/LinearAlgebra/Quotient/Basic.lean Modified Mathlib/LinearAlgebra/Reflection.lean Modified Mathlib/LinearAlgebra/Vandermonde.lean Modified Mathlib/Logic/Equiv/Fin/Basic.lean Modified Mathlib/Logic/Equiv/Fintype.lean Modified Mathlib/Logic/Equiv/Prod.lean +/- def Equiv.sigmaProdDistrib Modified Mathlib/Logic/Function/Basic.lean Modified Mathlib/Logic/Function/Coequalizer.lean Modified Mathlib/Logic/Function/CompTypeclasses.lean Modified Mathlib/Logic/Function/Defs.lean - theorem Function.HasLeftInverse.injective - def Function.HasLeftInverse - theorem Function.HasRightInverse.surjective - def Function.HasRightInverse - theorem Function.Injective.comp - theorem Function.Injective.eq_iff' - theorem Function.Injective.eq_iff - theorem Function.Injective.ne - theorem Function.Injective.ne_iff' - theorem Function.Injective.ne_iff - def Function.Injective - theorem Function.LeftInverse.injective - def Function.LeftInverse - theorem Function.RightInverse.surjective - def Function.RightInverse - theorem Function.Surjective.comp - def Function.Surjective - theorem Function.injective_id - theorem Function.leftInverse_of_surjective_of_rightInverse - theorem Function.rightInverse_of_injective_of_leftInverse - theorem Function.surjective_id Modified Mathlib/Logic/Function/ULift.lean +/- theorem ULift.down_inj +/- theorem ULift.down_injective Modified Mathlib/Logic/Nonempty.lean Modified Mathlib/Logic/Nontrivial/Defs.lean Modified Mathlib/MeasureTheory/Function/AEEqFun.lean +/- theorem MeasureTheory.AEEqFun.toGerm_eq Modified Mathlib/MeasureTheory/Function/ConditionalExpectation/CondexpL2.lean Modified Mathlib/MeasureTheory/Function/L1Space/AEEqFun.lean Modified Mathlib/MeasureTheory/Integral/SetToL1.lean Modified Mathlib/MeasureTheory/Measure/MeasureSpaceDef.lean Modified Mathlib/ModelTheory/DirectLimit.lean Modified Mathlib/ModelTheory/Fraisse.lean Modified Mathlib/NumberTheory/ClassNumber/Finite.lean Modified Mathlib/NumberTheory/KummerDedekind.lean Modified Mathlib/NumberTheory/Ostrowski.lean Modified Mathlib/NumberTheory/Padics/PadicVal/Basic.lean Modified Mathlib/Order/CompleteLattice/MulticoequalizerDiagram.lean Modified Mathlib/Order/Defs/LinearOrder.lean Modified Mathlib/Order/Defs/PartialOrder.lean Modified Mathlib/Order/DirectedInverseSystem.lean Modified Mathlib/Order/Disjoint.lean +/- theorem Disjoint.mono_right Modified Mathlib/Order/Disjointed.lean Modified Mathlib/Order/Filter/Defs.lean Modified Mathlib/Probability/Distributions/Pareto.lean Modified Mathlib/Probability/Kernel/Composition/CompProd.lean Modified Mathlib/Probability/Kernel/IonescuTulcea/Traj.lean Modified Mathlib/Probability/Martingale/OptionalSampling.lean Modified Mathlib/RingTheory/ChainOfDivisors.lean Modified Mathlib/RingTheory/DedekindDomain/AdicValuation.lean Modified Mathlib/RingTheory/DedekindDomain/Different.lean Modified Mathlib/RingTheory/IsAdjoinRoot.lean Modified Mathlib/RingTheory/LaurentSeries.lean Modified Mathlib/RingTheory/Multiplicity.lean Modified Mathlib/RingTheory/Polynomial/Resultant/Basic.lean Modified Mathlib/RingTheory/RootsOfUnity/PrimitiveRoots.lean Modified Mathlib/Tactic/Core.lean Modified Mathlib/Tactic/DeriveCountable.lean Modified Mathlib/Tactic/DeriveEncodable.lean Modified Mathlib/Tactic/DeriveFintype.lean Modified Mathlib/Tactic/DeriveTraversable.lean Modified Mathlib/Tactic/FieldSimp.lean Modified Mathlib/Tactic/HigherOrder.lean Modified Mathlib/Tactic/Hint.lean Modified Mathlib/Tactic/Linarith/Datatypes.lean Modified Mathlib/Tactic/Linarith/Oracle/SimplexAlgorithm/Datatypes.lean Modified Mathlib/Tactic/Linter/DeprecatedModule.lean +/- def Mathlib.Linter.addModuleDeprecation Modified Mathlib/Tactic/Linter/Header.lean Modified Mathlib/Tactic/Linter/Lint.lean Modified Mathlib/Tactic/Linter/Style.lean Modified Mathlib/Tactic/NormNum/GCD.lean Modified Mathlib/Tactic/Polyrith.lean Modified Mathlib/Tactic/Ring/RingNF.lean Modified Mathlib/Tactic/StacksAttribute.lean Modified Mathlib/Tactic/SuppressCompilation.lean Modified Mathlib/Tactic/ToAdditive/Frontend.lean + def ToAdditive.will.warnAttrCore - def ToAdditive.will.warnExt +/- def ToAdditive.will.warnParametricAttr Modified Mathlib/Tactic/TypeStar.lean Modified Mathlib/Tactic/WLOG.lean Modified Mathlib/Testing/Plausible/Sampleable.lean Modified Mathlib/Topology/Category/TopCat/Limits/Products.lean Modified Mathlib/Topology/Instances/AddCircle/Defs.lean Modified Mathlib/Topology/MetricSpace/Gluing.lean Modified Mathlib/Topology/PartialHomeomorph.lean Modified Mathlib/Util/AddRelatedDecl.lean Modified Mathlib/Util/AtomM/Recurse.lean Modified Mathlib/Util/Notation3.lean - def Mathlib.Notation3.$(Lean.mkIdent - def Mathlib.Notation3.mkNameFromSyntax Modified Mathlib/Util/ParseCommand.lean Modified Mathlib/Util/Superscript.lean Modified MathlibTest/AssertExists.lean Modified MathlibTest/CalcQuestionMark.lean Modified MathlibTest/Change.lean Modified MathlibTest/DeprecateTo.lean +/- theorem new_name_mul Modified MathlibTest/LibraryRewrite.lean Modified MathlibTest/LibrarySearch/basic.lean Modified MathlibTest/LibrarySearch/mathlib.lean Modified MathlibTest/LibrarySearch/observe.lean Modified MathlibTest/StacksAttribute.lean Modified MathlibTest/Subsingleton.lean Modified MathlibTest/Use.lean Modified MathlibTest/Variable.lean Modified MathlibTest/hint.lean Modified MathlibTest/lift.lean Modified MathlibTest/linarith.lean Modified MathlibTest/notation3.lean Modified MathlibTest/order.lean Modified MathlibTest/propose.lean Modified MathlibTest/renameBvar.lean Modified MathlibTest/rewrites.lean Modified MathlibTest/ring.lean Modified MathlibTest/says.lean Modified MathlibTest/slow_instances.lean Modified MathlibTest/success_if_fail_with_msg.lean Modified MathlibTest/toAdditive.lean Modified lake-manifest.json Modified lakefile.lean Modified lean-toolchain Modified scripts/noshake.json 2025-09-15 12:07:23 966d3cf chore: generalize `AffineSubspace.isClosed_direction_iff` to `IsTopologicalAddTorsor` (#29619) ESTIMATED CHANGES Modified Mathlib/Analysis/Complex/AbsMax.lean Modified Mathlib/Analysis/Normed/Affine/AddTorsor.lean - theorem AffineSubspace.isClosed_direction_iff Modified Mathlib/Analysis/Normed/Affine/Convex.lean Modified Mathlib/Analysis/Normed/Module/FiniteDimension.lean Modified Mathlib/Analysis/RCLike/Lemmas.lean Modified Mathlib/Geometry/Euclidean/Triangle.lean Modified Mathlib/Topology/Algebra/AffineSubspace.lean + theorem AffineSubspace.isClosed_direction_iff 2025-09-15 11:54:06 c9c0e9d fix: improve keyword handling in add_deprecations script (#29628) The script had a bug where it would try to interpret a word ending in a keyword such as `def` as an actual `def`inition. This caused problems when a declaration *name* was `start_mul_def`, since the script would guess that the word following `start_mul_def` could be a declaration name. This patch makes the script a little more robust: it should now match a *full word* with a keyword, not just one that *ends* with a keyword. The bug was reported in #28406. ESTIMATED CHANGES Modified scripts/add_deprecations.sh 2025-09-15 11:41:48 18f2794 doc: fix repeated typo "nonegative" (#29637) ESTIMATED CHANGES 2025-09-15 11:20:27 a45fa64 chore(Analysis/Complex): remove `add_one_lt_exp_of_pos` and `add_one_le_exp_of_nonneg` (both `private` theorems) (#29659) ESTIMATED CHANGES Modified Mathlib/Analysis/Complex/Trigonometric.lean 2025-09-15 11:05:57 814d397 feat(Analysis/Normed/Ultra): nonarch norm of sum over disjoint norms achieves max (#29408) ESTIMATED CHANGES Modified Mathlib/Analysis/Normed/Group/Ultra.lean + theorem IsUltrametricDist.nnnorm_prod_eq_sup_of_pairwise_ne + theorem IsUltrametricDist.norm_prod_eq_sup'_of_pairwise_ne 2025-09-15 10:13:51 9449ca0 chore: Remove `simp` tag for `MonObj.ofIso_mul` and friends. (#29662) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Monoidal/Grp_.lean Modified Mathlib/CategoryTheory/Monoidal/Mon_.lean 2025-09-15 10:13:49 df4ef40 feat: equivalence of `Complex.IsConservativeOn` and `DifferentiableOn ℂ` for continuous functions on open sets (#29629) ESTIMATED CHANGES Modified Mathlib/Analysis/Complex/HasPrimitives.lean + theorem Complex.IsConservativeOn.mono + theorem Complex.IsExactOn.differentiableOn - theorem Complex.IsExactOn.isConservativeOn_of_isOpen + theorem Complex.isConservativeOn_and_continuousOn_iff_isDifferentiableOn 2025-09-15 10:13:47 ec52a07 feat: a better version of `LinearOrder.lift` (#29436) This adds the following, which do not construct any new data and instead assume compatibility: * `Function.Injective.preorder` (a generalization of `PreOrder.lift`) * `Function.Injective.partialOrder` (a generalization of `PartialOrder.lift`) * `Function.Injective.linearOrder` (a generalization of `LinearOrder.liftWithOrd` and the other three variants) The following existing constructions are modified to do the same (and confusingly no longer assume injectivity): * `Function.Injective.isOrderedAddMonoid` * `Function.Injective.isOrderedRing` * `Function.Injective.isStrictOrderedRing` This fixes the instance diamond in [#mathlib4 > Instance diamond in DecidableEq Fin @ 💬](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Instance.20diamond.20in.20DecidableEq.20Fin/near/538119386) (which was discovered in #29418), by reusing the existing `Decidable` instance rather than constructing defeq-but-only-without-smart-unfolding instance from scratch. ESTIMATED CHANGES Modified Counterexamples/MapFloor.lean Modified Mathlib/Algebra/Group/Subgroup/Order.lean Modified Mathlib/Algebra/Module/Submodule/Order.lean Modified Mathlib/Algebra/Order/Field/Subfield.lean Modified Mathlib/Algebra/Order/GroupWithZero/Canonical.lean Modified Mathlib/Algebra/Order/Monoid/Basic.lean +/- theorem Function.Injective.isOrderedCancelMonoid +/- theorem Function.Injective.isOrderedMonoid Modified Mathlib/Algebra/Order/Monoid/Submonoid.lean Modified Mathlib/Algebra/Order/Monoid/Units.lean + theorem Units.compare_val +/- theorem Units.max_val +/- theorem Units.min_val Modified Mathlib/Algebra/Order/Nonneg/Ring.lean Modified Mathlib/Algebra/Order/Ring/InjSurj.lean Modified Mathlib/Algebra/Ring/Subring/Order.lean Modified Mathlib/Algebra/Ring/Subsemiring/Order.lean Modified Mathlib/Analysis/Seminorm.lean Modified Mathlib/Order/Basic.lean Modified Mathlib/Order/Fin/Basic.lean + theorem Fin.compare_eq_compare_val Modified Mathlib/Order/Lattice.lean 2025-09-15 10:13:45 9c5cb31 chore: deprecate PartENat (#29231) See [#mathlib4 > deprecate Mathlib.Data.Nat.PartENat?](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/deprecate.20Mathlib.2EData.2ENat.2EPartENat.3F). ESTIMATED CHANGES Modified Mathlib/Data/Nat/PartENat.lean 2025-09-15 10:13:43 b75e1df chore(Data/List): golf entire `idxOf_append_of_mem`, `cons_sublist_cons'`, `length_eraseIdx_add_one`, `length_eraseP_add_one` and `idxOf_append_of_notMem` using `grind` (#28612) ESTIMATED CHANGES Modified Mathlib/Data/List/Basic.lean 2025-09-15 10:13:42 3754faf chore(LinearAlgebra): golf entire `congr_symm`, `LinearMap.toMatrix_smulBasis_left`, `LinearMap.toMatrix_smulBasis_right` and more using `rfl` (#28564) ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/BilinearForm/Hom.lean Modified Mathlib/LinearAlgebra/Matrix/ToLin.lean Modified Mathlib/LinearAlgebra/Multilinear/Curry.lean Modified Mathlib/LinearAlgebra/TensorProduct/Graded/External.lean 2025-09-15 10:13:40 bab4f60 feat: verify that file names contain no forbidden characters (#27965) Follow-up to #27588: Windows also forbids certain characters in file names. I snuck in a change to also disallow `!` (which causes problems on Nix OS) and `.` (i.e., #27944) ESTIMATED CHANGES Modified Mathlib/Tactic/Linter/TextBased.lean - def Mathlib.Linter.TextBased.modulesForbiddenWindows + def Mathlib.Linter.TextBased.modulesOSForbidden Added MathlibTest/ForbiddenModuleNames.lean + def testModulesOSForbidden Deleted MathlibTest/ForbiddenWindows.lean - def testModulesForbiddenWindows Modified scripts/lint-style.lean 2025-09-15 10:13:38 bf481e2 feat(FieldTheory/Galois/Basic): Add simp-lemma for `FixedPoints.intermediateField` (#26189) This PR adds a simp-lemma `FixedPoints.mem_intermediateField_iff` for the definition `FixedPoints.intermediateField`. ESTIMATED CHANGES Modified Mathlib/FieldTheory/Galois/Basic.lean + theorem FixedPoints.mem_intermediateField_iff 2025-09-15 10:13:36 5d58cf7 chore(Condensed): introduce an abbrev for the equivalence of light condensed sets with a category of sheaves on a small site (#25795) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Condensed/Light/Small.lean 2025-09-15 09:41:46 1e49ea1 feat: topological affine spaces (#28493) This PR adds a typeclass `IsTopologicalAddTorsor` for topological affine spaces and generalizes basic results which currently assume `NormedAddTorsor`. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Analysis/Normed/Group/AddTorsor.lean - theorem Continuous.vsub - theorem ContinuousOn.vsub - theorem Filter.Tendsto.vsub - theorem IsClosed.vadd_right_of_isCompact - theorem continuous_vsub Added Mathlib/Topology/Algebra/Group/AddTorsor.lean + theorem Continuous.vsub + theorem ContinuousOn.vsub + theorem Filter.Tendsto.vsub + def Homeomorph.vaddConst + theorem IsClosed.vadd_right_of_isCompact + theorem IsTopologicalAddTorsor.to_isTopologicalAddGroup Modified Mathlib/Topology/Algebra/Group/Pointwise.lean 2025-09-15 08:45:17 77edfd1 feat(MeasureTheory): add formula for Radon-Nikodym derivative of a convolution of measures (#29647) Add `rnDeriv_mconv` and `rnDeriv_mconv'` which give formulas (up to almost everywhere equality) for the Radon-Nikodym derivative of a convolution of measures in terms of the Radon-Nikodym derivatives of the individual measures. The theorems have different assumptions on the measures (which match the difference in the assumptions of `withDensity_eq_iff` and `withDensity_eq_iff_of_SigmaFinite`). Also add `mconv_absolutelyContinuous` which shows that absolute continuity is preserved under convolution of measures (with sufficient assumptions). ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Group/Convolution.lean + theorem MeasureTheory.Measure.mconv_absolutelyContinuous Modified Mathlib/MeasureTheory/Measure/Decomposition/RadonNikodym.lean + theorem MeasureTheory.rnDeriv_mconv' + theorem MeasureTheory.rnDeriv_mconv 2025-09-15 08:45:15 545e7ab feat(NumberField): two ring-isomorphic number fields have the same discriminant (#29598) ESTIMATED CHANGES Modified Mathlib/NumberTheory/NumberField/Discriminant/Defs.lean + theorem NumberField.discr_eq_discr_of_ringEquiv 2025-09-15 08:45:12 f0533f4 chore: fix a few typos (#29470) chore: fix some typos and add deprecations accordingly ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Action/Faithful.lean Modified Mathlib/Algebra/Order/Ring/IsNonarchimedean.lean Modified Mathlib/Analysis/Analytic/CPolynomial.lean + theorem ContinuousLinearMap.cpolynomialOn_uncurry_of_multilinear - theorem ContinuousLinearMap.cpolyomialOn_uncurry_of_multilinear Modified Mathlib/Analysis/Normed/Unbundled/SpectralNorm.lean Modified Mathlib/Analysis/Polynomial/Factorization.lean 2025-09-15 08:45:11 a208fca feat(Data/Nat/Basic): Nat.dvd_sub_self_iff (#29403) a lemma to deal with a trivial side case ESTIMATED CHANGES Modified Mathlib/Data/Nat/Basic.lean 2025-09-15 08:45:09 a5a2ded feat: `Polynomial.coeffs_nonempty_iff` (#29398) ESTIMATED CHANGES Modified Mathlib/Algebra/Polynomial/Basic.lean + theorem Polynomial.coeffs_nonempty_iff 2025-09-15 08:02:22 e2a8106 chore: remove redundant `cases` invocations (#29225) ESTIMATED CHANGES Modified Mathlib/Algebra/CharP/Lemmas.lean Modified Mathlib/Algebra/Lie/Subalgebra.lean Modified Mathlib/Algebra/Module/Submodule/Equiv.lean Modified Mathlib/Algebra/MonoidAlgebra/Degree.lean Modified Mathlib/Algebra/Polynomial/Basic.lean 2025-09-15 00:57:53 a807134 doc(Computability/Partrec): fix typo (#29655) Fix typo (change `ℕ → ℕ` to `ℕ →. ℕ`) in > `Partrec f` means that the partial function `f : ℕ → ℕ` is partially recursive. ESTIMATED CHANGES Modified Mathlib/Computability/Partrec.lean 2025-09-15 00:18:31 37df177 chore: bump toolchain to v4.23.0 (#29654) ESTIMATED CHANGES Modified lake-manifest.json Modified lean-toolchain 2025-09-14 23:26:50 06be74e feat(LinearAlgebra/TensorProduct/Basic): add `range_map_mono` (#29343) ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/TensorProduct/Basic.lean + theorem TensorProduct.range_map_mono 2025-09-14 19:47:53 ea162bb feat: more connections between `TensorProduct` and `map₂` (#29391) The new lemmas about `map₂` are analogous to the lemmas about `Set.image2`. ESTIMATED CHANGES Modified Mathlib/Algebra/Lie/TensorProduct.lean Modified Mathlib/Algebra/Module/Submodule/Bilinear.lean + theorem Submodule.map_map₂ + theorem Submodule.map₂_map_left + theorem Submodule.map₂_map_map + theorem Submodule.map₂_map_right Modified Mathlib/LinearAlgebra/TensorProduct/Basic.lean - theorem TensorProduct.map_range_eq_span_tmul + theorem TensorProduct.range_map + theorem TensorProduct.range_map_eq_span_tmul Modified Mathlib/LinearAlgebra/TensorProduct/Quotient.lean 2025-09-14 16:34:37 07e4315 feat(CategoryTheory/Sites): functoriality of precoverages and `0`-hypercovers (#29472) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Sites/Hypercover/Zero.lean + def CategoryTheory.PreZeroHypercover.map + theorem CategoryTheory.PreZeroHypercover.presieve₀_map + def CategoryTheory.Precoverage.ZeroHypercover.map Modified Mathlib/CategoryTheory/Sites/Precoverage.lean + def CategoryTheory.Precoverage.comap + theorem CategoryTheory.Precoverage.comap_inf + theorem CategoryTheory.Precoverage.mem_comap_iff Modified Mathlib/CategoryTheory/Sites/Sieves.lean + theorem CategoryTheory.Presieve.map_map + theorem CategoryTheory.Presieve.map_ofArrows + theorem CategoryTheory.Presieve.map_singleton + theorem CategoryTheory.Presieve.ofArrows.mk' 2025-09-14 16:21:00 d547aa6 feat(AlgebraicGeometry/EllipticCurve): reduction of elliptic curves (#28115) Define the reduction of elliptic curves over the fraction field of a DVR, following Silverman. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/AlgebraicGeometry/EllipticCurve/Reduction.lean + theorem WeierstrassCurve.baseChange_integralModel_eq + theorem WeierstrassCurve.exists_isIntegral + theorem WeierstrassCurve.exists_isMinimal + theorem WeierstrassCurve.integralModel_Δ_eq + theorem WeierstrassCurve.isGoodReduction_iff_isElliptic_reduction + theorem WeierstrassCurve.isIntegral_of_exists_lift + theorem WeierstrassCurve.valuation_Δ_aux_eq_of_isIntegral + theorem WeierstrassCurve.Δ_integral_of_isIntegral Modified Mathlib/GroupTheory/ArchimedeanDensely.lean 2025-09-14 15:56:24 6c58699 chore(CategoryTheory/Bicategory/Grothendieck): rename Grothendieck to coGrothendieck (#27320) Rename `CategoryTheory.Pseudofunctor.Grothendieck` to `CategoryTheory.Pseudofunctor.coGrothendieck`. Currently there are two inconsistent conventions taken in [`CategoryTheory.Grothendieck`](https://leanprover-community.github.io/mathlib4_docs/Mathlib/CategoryTheory/Grothendieck.html#CategoryTheory.Grothendieck) and [`CategoryTheory.Pseudofunctor.Grothendieck`](https://leanprover-community.github.io/mathlib4_docs/Mathlib/CategoryTheory/Bicategory/Grothendieck.html#CategoryTheory.Pseudofunctor.Grothendieck), namely the latter includes an `op` on the indexing category / base category of the Grothendieck construction. Later on, I will make more PRs to introduce the version of `CategoryTheory.Pseudofunctor.Grothendieck` that does not have an `op`. Zulip discussion: [#mathlib4 > Refactor Grothendieck from Pseudofunctor.Grothendieck](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Refactor.20Grothendieck.20from.20Pseudofunctor.2EGrothendieck/with/529165679). ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Bicategory/Grothendieck.lean + theorem CategoryTheory.Pseudofunctor.CoGrothendieck.Hom.congr + theorem CategoryTheory.Pseudofunctor.CoGrothendieck.Hom.ext + theorem CategoryTheory.Pseudofunctor.CoGrothendieck.Hom.ext_iff + structure CategoryTheory.Pseudofunctor.CoGrothendieck.Hom + def CategoryTheory.Pseudofunctor.CoGrothendieck.forget + def CategoryTheory.Pseudofunctor.CoGrothendieck.map + def CategoryTheory.Pseudofunctor.CoGrothendieck.mapCompIso + def CategoryTheory.Pseudofunctor.CoGrothendieck.mapIdIso + theorem CategoryTheory.Pseudofunctor.CoGrothendieck.map_comp_eq + theorem CategoryTheory.Pseudofunctor.CoGrothendieck.map_comp_forget + theorem CategoryTheory.Pseudofunctor.CoGrothendieck.map_id_eq + theorem CategoryTheory.Pseudofunctor.CoGrothendieck.map_id_map + structure CategoryTheory.Pseudofunctor.CoGrothendieck - theorem CategoryTheory.Pseudofunctor.Grothendieck.Hom.congr - theorem CategoryTheory.Pseudofunctor.Grothendieck.Hom.ext - theorem CategoryTheory.Pseudofunctor.Grothendieck.Hom.ext_iff - structure CategoryTheory.Pseudofunctor.Grothendieck.Hom - def CategoryTheory.Pseudofunctor.Grothendieck.forget - def CategoryTheory.Pseudofunctor.Grothendieck.map - def CategoryTheory.Pseudofunctor.Grothendieck.mapCompIso - def CategoryTheory.Pseudofunctor.Grothendieck.mapIdIso - theorem CategoryTheory.Pseudofunctor.Grothendieck.map_comp_eq - theorem CategoryTheory.Pseudofunctor.Grothendieck.map_comp_forget - theorem CategoryTheory.Pseudofunctor.Grothendieck.map_id_eq - theorem CategoryTheory.Pseudofunctor.Grothendieck.map_id_map - structure CategoryTheory.Pseudofunctor.Grothendieck Modified Mathlib/CategoryTheory/FiberedCategory/Grothendieck.lean + def CategoryTheory.Pseudofunctor.CoGrothendieck.compIso + theorem CategoryTheory.Pseudofunctor.CoGrothendieck.comp_const + theorem CategoryTheory.Pseudofunctor.CoGrothendieck.isStronglyCartesian_homCartesianLift + def CategoryTheory.Pseudofunctor.CoGrothendieck.ι - def CategoryTheory.Pseudofunctor.Grothendieck.compIso - theorem CategoryTheory.Pseudofunctor.Grothendieck.comp_const - theorem CategoryTheory.Pseudofunctor.Grothendieck.isStronglyCartesian_homCartesianLift - def CategoryTheory.Pseudofunctor.Grothendieck.ι 2025-09-14 15:36:08 5fc66a8 chore: rename `Mod_Class` to `ModObj` (#29641) and similarly for `Hopf_Class` and `IsCommMon`. This is a follow-up to #28406. ESTIMATED CHANGES Modified Mathlib/Algebra/Category/CommBialgCat.lean Modified Mathlib/CategoryTheory/Monoidal/Cartesian/CommGrp_.lean Modified Mathlib/CategoryTheory/Monoidal/Cartesian/CommMon_.lean - theorem IsCommMon.ofRepresentableBy + theorem IsCommMonObj.ofRepresentableBy Modified Mathlib/CategoryTheory/Monoidal/Cartesian/Grp_.lean Modified Mathlib/CategoryTheory/Monoidal/Cartesian/Mod_.lean + def ModObj.trivialAction - def Mod_Class.trivialAction Modified Mathlib/CategoryTheory/Monoidal/Cartesian/Mon_.lean Modified Mathlib/CategoryTheory/Monoidal/CommGrp_.lean +/- def CommGrp_.mkIso' Modified Mathlib/CategoryTheory/Monoidal/CommMon_.lean +/- def CommMon_.mkIso' Modified Mathlib/CategoryTheory/Monoidal/Hopf_.lean + theorem HopfObj.antipode_antipode + theorem HopfObj.antipode_comul + theorem HopfObj.antipode_comul₁ + theorem HopfObj.antipode_comul₂ + theorem HopfObj.antipode_counit + theorem HopfObj.hom_antipode + theorem HopfObj.mul_antipode + theorem HopfObj.mul_antipode₁ + theorem HopfObj.mul_antipode₂ + theorem HopfObj.one_antipode - theorem Hopf_Class.antipode_antipode - theorem Hopf_Class.antipode_comul - theorem Hopf_Class.antipode_comul₁ - theorem Hopf_Class.antipode_comul₂ - theorem Hopf_Class.antipode_counit - theorem Hopf_Class.hom_antipode - theorem Hopf_Class.mul_antipode - theorem Hopf_Class.mul_antipode₁ - theorem Hopf_Class.mul_antipode₂ - theorem Hopf_Class.one_antipode Modified Mathlib/CategoryTheory/Monoidal/Internal/FunctorCategory.lean Modified Mathlib/CategoryTheory/Monoidal/Internal/Types/Basic.lean Modified Mathlib/CategoryTheory/Monoidal/Internal/Types/CommGrp_.lean Modified Mathlib/CategoryTheory/Monoidal/Mod_.lean + theorem ModObj.assoc_flip + theorem ModObj.ext + theorem ModObj.mul_smul + theorem ModObj.one_smul + theorem ModObj.smul_eq_mul +/- def Mod_.Hom.mk'' +/- def Mod_.scalarRestriction - theorem Mod_Class.assoc_flip - theorem Mod_Class.ext - theorem Mod_Class.mul_smul - theorem Mod_Class.one_smul - theorem Mod_Class.smul_eq_mul Modified Mathlib/CategoryTheory/Monoidal/Mon_.lean - theorem CategoryTheory.Equivalence.IsCommMon.mul_comm' + theorem CategoryTheory.Equivalence.IsCommMonObj.mul_comm' +/- theorem CategoryTheory.Equivalence.MonObj.mul_mul_mul_comm' +/- theorem CategoryTheory.Equivalence.MonObj.mul_mul_mul_comm Modified Mathlib/CategoryTheory/Preadditive/CommGrp_.lean Modified MathlibTest/CategoryTheory/Monoidal/MonTauto.lean 2025-09-14 10:28:26 b667bcd chore: rename `Grp_Class` to `GrpObj` (#29623) This is a follow-up to #28406. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Monoidal/Cartesian/CommGrp_.lean + def CommGrpObj.ofRepresentableBy - def CommGrp_Class.ofRepresentableBy Modified Mathlib/CategoryTheory/Monoidal/Cartesian/Grp_.lean + theorem GrpObj.comp_div + theorem GrpObj.comp_inv + theorem GrpObj.comp_zpow + theorem GrpObj.div_comp + theorem GrpObj.inv_comp + theorem GrpObj.inv_eq_inv + def GrpObj.ofRepresentableBy + theorem GrpObj.ofRepresentableBy_yonedaGrpObjRepresentableBy + theorem GrpObj.zpow_comp - theorem Grp_Class.comp_div - theorem Grp_Class.comp_inv - theorem Grp_Class.comp_zpow - theorem Grp_Class.div_comp - theorem Grp_Class.inv_comp - theorem Grp_Class.inv_eq_inv - def Grp_Class.ofRepresentableBy - theorem Grp_Class.ofRepresentableBy_yonedaGrpObjRepresentableBy - theorem Grp_Class.zpow_comp Modified Mathlib/CategoryTheory/Monoidal/CommGrp_.lean +/- def CommGrp_.mkIso' Modified Mathlib/CategoryTheory/Monoidal/Grp_.lean + theorem GrpObj.eq_lift_inv_left + theorem GrpObj.eq_lift_inv_right + theorem GrpObj.ext + theorem GrpObj.inv_comp_inv + theorem GrpObj.inv_hom + theorem GrpObj.inv_inv + theorem GrpObj.isPullback + theorem GrpObj.lift_comp_inv_left + theorem GrpObj.lift_comp_inv_right + theorem GrpObj.lift_inv_comp_left + theorem GrpObj.lift_inv_comp_right + theorem GrpObj.lift_inv_left_eq + theorem GrpObj.lift_inv_right_eq + theorem GrpObj.lift_left_mul_ext + def GrpObj.mulRight + theorem GrpObj.mulRight_one + theorem GrpObj.mul_inv + theorem GrpObj.mul_inv_rev + theorem GrpObj.tensorHom_inv_inv_mul + def GrpObj.tensorObj.CategoryTheory.Adjunction.mapGrp + def GrpObj.tensorObj.CategoryTheory.Equivalence.mapGrp + theorem GrpObj.tensorObj.CategoryTheory.Functor.comp_mapGrp_mul + theorem GrpObj.tensorObj.CategoryTheory.Functor.comp_mapGrp_one + theorem GrpObj.tensorObj.CategoryTheory.Functor.essImage_mapGrp + def GrpObj.tensorObj.CategoryTheory.Functor.mapGrp + def GrpObj.tensorObj.CategoryTheory.Functor.mapGrpCompIso + def GrpObj.tensorObj.CategoryTheory.Functor.mapGrpIdIso + def GrpObj.tensorObj.CategoryTheory.Functor.mapGrpNatIso + def GrpObj.tensorObj.CategoryTheory.Functor.mapGrpNatTrans + theorem GrpObj.tensorObj.CategoryTheory.Functor.mapGrp_id_mul + theorem GrpObj.tensorObj.CategoryTheory.Functor.mapGrp_id_one + def GrpObj.tensorObj.Grp_.forget + def GrpObj.tensorObj.Grp_.forget₂Mon_ + theorem GrpObj.tensorObj.Grp_.forget₂Mon_comp_forget + theorem GrpObj.tensorObj.Grp_.forget₂Mon_map_hom + theorem GrpObj.tensorObj.Grp_.forget₂Mon_obj_mul + theorem GrpObj.tensorObj.Grp_.forget₂Mon_obj_one + def GrpObj.tensorObj.Grp_.fullyFaithfulForget₂Mon_ + def GrpObj.tensorObj.Grp_.mkIso' + theorem GrpObj.toMonObj_injective - theorem Grp_Class.eq_lift_inv_left - theorem Grp_Class.eq_lift_inv_right - theorem Grp_Class.ext - theorem Grp_Class.inv_comp_inv - theorem Grp_Class.inv_hom - theorem Grp_Class.inv_inv - theorem Grp_Class.isPullback - theorem Grp_Class.lift_comp_inv_left - theorem Grp_Class.lift_comp_inv_right - theorem Grp_Class.lift_inv_comp_left - theorem Grp_Class.lift_inv_comp_right - theorem Grp_Class.lift_inv_left_eq - theorem Grp_Class.lift_inv_right_eq - theorem Grp_Class.lift_left_mul_ext - def Grp_Class.mulRight - theorem Grp_Class.mulRight_one - theorem Grp_Class.mul_inv - theorem Grp_Class.mul_inv_rev - theorem Grp_Class.tensorHom_inv_inv_mul - def Grp_Class.tensorObj.CategoryTheory.Adjunction.mapGrp - def Grp_Class.tensorObj.CategoryTheory.Equivalence.mapGrp - theorem Grp_Class.tensorObj.CategoryTheory.Functor.comp_mapGrp_mul - theorem Grp_Class.tensorObj.CategoryTheory.Functor.comp_mapGrp_one - theorem Grp_Class.tensorObj.CategoryTheory.Functor.essImage_mapGrp - def Grp_Class.tensorObj.CategoryTheory.Functor.mapGrp - def Grp_Class.tensorObj.CategoryTheory.Functor.mapGrpCompIso - def Grp_Class.tensorObj.CategoryTheory.Functor.mapGrpIdIso - def Grp_Class.tensorObj.CategoryTheory.Functor.mapGrpNatIso - def Grp_Class.tensorObj.CategoryTheory.Functor.mapGrpNatTrans - theorem Grp_Class.tensorObj.CategoryTheory.Functor.mapGrp_id_mul - theorem Grp_Class.tensorObj.CategoryTheory.Functor.mapGrp_id_one - def Grp_Class.tensorObj.Grp_.forget - def Grp_Class.tensorObj.Grp_.forget₂Mon_ - theorem Grp_Class.tensorObj.Grp_.forget₂Mon_comp_forget - theorem Grp_Class.tensorObj.Grp_.forget₂Mon_map_hom - theorem Grp_Class.tensorObj.Grp_.forget₂Mon_obj_mul - theorem Grp_Class.tensorObj.Grp_.forget₂Mon_obj_one - def Grp_Class.tensorObj.Grp_.fullyFaithfulForget₂Mon_ - def Grp_Class.tensorObj.Grp_.mkIso' - theorem Grp_Class.toMonObj_injective Modified Mathlib/CategoryTheory/Monoidal/Internal/Types/CommGrp_.lean Modified Mathlib/CategoryTheory/Monoidal/Internal/Types/Grp_.lean Modified Mathlib/CategoryTheory/Preadditive/CommGrp_.lean 2025-09-14 10:28:25 1aa1962 chore: golf entire `dite_ne_left_iff`, `exists_prime_lt_and_le_two_mul_succ`, `lt_up` and `sUnion_mem_empty_univ` using `grind` (#28706) ESTIMATED CHANGES Modified Mathlib/Data/Set/Lattice.lean Modified Mathlib/Logic/Basic.lean Modified Mathlib/NumberTheory/Bertrand.lean Modified Mathlib/RingTheory/NoetherNormalization.lean 2025-09-14 09:37:27 82ba83d doc(1000.yaml): add four more entries (#29632) Based on Aristotle AI finding 1-line proofs. ESTIMATED CHANGES Modified docs/1000.yaml 2025-09-14 09:24:11 0c27645 feat(Algebra/Order): Hahn embedding theorem, part 1 (#27043) Part 1 of Hahn embedding theorem, or the core part of it. This proves that one can embed an ordered module in HahnSeries. To obtain the full Hahn embedding theorem, one needs to specialize the coefficient of HahnSeries to Real as a module over Rat, and compose with another embedding from ordered group to ordered module. These will be in part 2 There is a debatable design here: throughout the file, all lemmas uses an input `HahnEmbedding.Seed`. Because the the final theorem is an existence theorem without specifying what `HahnEmbedding.Seed` is used, it is possible to `Classical.choose` a seed from the very beginning (provided `R = Real` ), and the entire file will just use the same chosen seed. Overall, choosing everything from the beginning will likely make the code a little bit more concise. I decided against choosing anything till the final step, for the reason that such choice is not canonical for an arbitrary module, and there may be future use of this construction with more canonical choice for specific modules. Examples are: - if the input is a `HahnSeries Γ R`, the canonical choice for the `stratum` would be `HahnSeries.single` - for the field version of Hahn embedding theorem ("every linearly ordered field can be embedded in `HahnSeries` as a field", not implemented), the canonical choice should ensure that all `stratum` form a graded ring, and the `coeff` should map `(1 : M)` to `(1 : R)`. But if the argument is not strong enough, I am OK with converting everything to a classical choose. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Order/Module/HahnEmbedding.lean + theorem HahnEmbedding.ArchimedeanStrata.archimedeanClassMk_of_mem_stratum + theorem HahnEmbedding.ArchimedeanStrata.ball_eq_closedBall + def HahnEmbedding.ArchimedeanStrata.baseDomain + theorem HahnEmbedding.ArchimedeanStrata.iSupIndep_stratum' + theorem HahnEmbedding.ArchimedeanStrata.iSupIndep_stratum + theorem HahnEmbedding.ArchimedeanStrata.isInternal_stratum' + theorem HahnEmbedding.ArchimedeanStrata.nontrivial_stratum + theorem HahnEmbedding.ArchimedeanStrata.stratum_eq_bot_iff + theorem HahnEmbedding.ArchimedeanStrata.stratum_top + structure HahnEmbedding.ArchimedeanStrata + structure HahnEmbedding.IsPartial + theorem HahnEmbedding.Partial.apply_of_mem_stratum + theorem HahnEmbedding.Partial.archimedeanClassMk_eq_iff + theorem HahnEmbedding.Partial.archimedeanClassMk_le_of_eval_eq + theorem HahnEmbedding.Partial.baseEmbedding_le_extendFun + theorem HahnEmbedding.Partial.baseEmbedding_le_sSupFun + theorem HahnEmbedding.Partial.coeff_eq_of_mem + theorem HahnEmbedding.Partial.coeff_eq_zero_of_mem + theorem HahnEmbedding.Partial.coeff_ne_zero + def HahnEmbedding.Partial.eval + def HahnEmbedding.Partial.evalCoeff + theorem HahnEmbedding.Partial.evalCoeff_eq + theorem HahnEmbedding.Partial.evalCoeff_eq_zero + theorem HahnEmbedding.Partial.eval_eq_truncLT + theorem HahnEmbedding.Partial.eval_lt + theorem HahnEmbedding.Partial.eval_ne + theorem HahnEmbedding.Partial.eval_smul + theorem HahnEmbedding.Partial.eval_zero + theorem HahnEmbedding.Partial.exists_domain_eq_top + theorem HahnEmbedding.Partial.exists_isMax + theorem HahnEmbedding.Partial.exists_sub_mem_ball + def HahnEmbedding.Partial.extend + def HahnEmbedding.Partial.extendFun + theorem HahnEmbedding.Partial.extendFun_strictMono + theorem HahnEmbedding.Partial.isPartial_extendFun + theorem HahnEmbedding.Partial.isPartial_sSupFun + theorem HahnEmbedding.Partial.isWF_support_evalCoeff + theorem HahnEmbedding.Partial.le_sSupFun + theorem HahnEmbedding.Partial.lt_extend + theorem HahnEmbedding.Partial.mem_domain + theorem HahnEmbedding.Partial.orderTop_eq_archimedeanClassMk + theorem HahnEmbedding.Partial.orderTop_eq_finiteArchimedeanClassMk + theorem HahnEmbedding.Partial.orderTop_eq_iff + def HahnEmbedding.Partial.sSup + def HahnEmbedding.Partial.sSupFun + theorem HahnEmbedding.Partial.sSupFun_strictMono + def HahnEmbedding.Partial.toOrderAddMonoidHom + theorem HahnEmbedding.Partial.toOrderAddMonoidHom_apply + theorem HahnEmbedding.Partial.toOrderAddMonoidHom_injective + theorem HahnEmbedding.Partial.truncLT_eval_mem_range_extendFun + theorem HahnEmbedding.Partial.truncLT_mem_range_extendFun + theorem HahnEmbedding.Partial.truncLT_mem_range_sSupFun + def HahnEmbedding.Seed.baseEmbedding + theorem HahnEmbedding.Seed.baseEmbedding_pos + theorem HahnEmbedding.Seed.baseEmbedding_strictMono + def HahnEmbedding.Seed.coeff' + theorem HahnEmbedding.Seed.coeff_baseEmbedding + theorem HahnEmbedding.Seed.domain_baseEmbedding + def HahnEmbedding.Seed.hahnCoeff + theorem HahnEmbedding.Seed.hahnCoeff_apply + theorem HahnEmbedding.Seed.isPartial_baseEmbedding + theorem HahnEmbedding.Seed.mem_domain_baseEmbedding + theorem HahnEmbedding.Seed.truncLT_mem_range_baseEmbedding + structure HahnEmbedding.Seed + theorem hahnEmbedding_isOrderedModule Modified docs/references.bib 2025-09-14 03:21:20 10061bf doc: Hyphenize compound adjectives ending in "-valued" (#29239) ESTIMATED CHANGES Modified Mathlib/Algebra/BigOperators/Group/Finset/Basic.lean Modified Mathlib/AlgebraicGeometry/ProjectiveSpectrum/StructureSheaf.lean Modified Mathlib/AlgebraicGeometry/StructureSheaf.lean Modified Mathlib/Analysis/Calculus/Deriv/Comp.lean Modified Mathlib/Analysis/Calculus/Taylor.lean Modified Mathlib/Analysis/Complex/UpperHalfPlane/FunctionsBoundedAtInfty.lean Modified Mathlib/Analysis/MeanInequalities.lean Modified Mathlib/Analysis/NormedSpace/MultipliableUniformlyOn.lean Modified Mathlib/CategoryTheory/Functor/ReflectsIso/Basic.lean Modified Mathlib/CategoryTheory/Limits/Cones.lean Modified Mathlib/CategoryTheory/Simple.lean Modified Mathlib/CategoryTheory/Sites/Subsheaf.lean Modified Mathlib/CategoryTheory/Subpresheaf/Basic.lean Modified Mathlib/Data/Sigma/Basic.lean Modified Mathlib/Geometry/Manifold/Riemannian/Basic.lean Modified Mathlib/Geometry/RingedSpace/SheafedSpace.lean Modified Mathlib/MeasureTheory/Constructions/BorelSpace/Real.lean Modified Mathlib/MeasureTheory/Function/ConditionalExpectation/Real.lean Modified Mathlib/MeasureTheory/VectorMeasure/Basic.lean Modified Mathlib/NumberTheory/Padics/PadicNumbers.lean Modified Mathlib/Probability/Martingale/Upcrossing.lean Modified Mathlib/Probability/StrongLaw.lean Modified Mathlib/Tactic/CategoryTheory/MonoidalComp.lean Modified Mathlib/Tactic/FunProp/Decl.lean Modified Mathlib/Tactic/Linarith/Frontend.lean Modified Mathlib/Topology/Algebra/InfiniteSum/ENNReal.lean Modified Mathlib/Topology/EMetricSpace/BoundedVariation.lean Modified Mathlib/Topology/Separation/CompletelyRegular.lean Modified Mathlib/Topology/Sheaves/CommRingCat.lean Modified Mathlib/Topology/Sheaves/Sheafify.lean Modified docs/undergrad.yaml 2025-09-14 02:36:01 e49014a feat(SetTheory): generalize Schroeder-Bernstein theorem (#29162) In a proof of the infinite-version of the graph theoretic statement of Hall's Marriage Theorem, I needed a slight generalization of the Schroeder-Bernstein theorem. In particular, I wanted the bijection to also satisfy a pointwise property that the individual injections satisfy. ESTIMATED CHANGES Modified Mathlib/SetTheory/Cardinal/SchroederBernstein.lean + theorem Function.Embedding.schroeder_bernstein_of_rel 2025-09-13 23:10:34 6b22622 feat(CategoryTheory): The finite pretopology on a category (#28614) We define `CategoryTheory.Pretopology.finite`, the finite pretopology on a category, which consists of presieves that contain only finitely many arrows. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Sites/Finite.lean + def CategoryTheory.Precoverage.finite + theorem CategoryTheory.Precoverage.mem_finite_iff + theorem CategoryTheory.Precoverage.ofArrows_mem_finite + def CategoryTheory.Pretopology.finite + theorem CategoryTheory.Pretopology.ofArrows_mem_finite Modified Mathlib/CategoryTheory/Sites/Sieves.lean + inductive CategoryTheory.Presieve.map + def CategoryTheory.Presieve.uncurry + theorem CategoryTheory.Presieve.uncurry_bind + theorem CategoryTheory.Presieve.uncurry_ofArrows + theorem CategoryTheory.Presieve.uncurry_pullbackArrows + theorem CategoryTheory.Presieve.uncurry_singleton + theorem CategoryTheory.Sieve.arrows_generate_map_eq_functorPushforward + theorem CategoryTheory.Sieve.generate_map_eq_functorPushforward 2025-09-13 21:44:00 f459627 feat(Algebra/GCDMonoid/Finset): change the signature of `lcm_eq_zero_iff` to its simp normal form and add `lcm_ne_zero_iff` theorems (#29208) This PR is similar to #28897 and I found a need for one of the added theorems in #29204. I've noticed that the existing theorem `lcm_eq_zero_iff`'s rhs term `0 ∈ f '' s` is not in simp normal form. Should this be deprecated and replaced? I have left comments about this in the code. ESTIMATED CHANGES Modified Mathlib/Algebra/GCDMonoid/Finset.lean +/- theorem Finset.lcm_eq_zero_iff + theorem Finset.lcm_ne_zero_iff Modified Mathlib/Algebra/GCDMonoid/Multiset.lean + theorem Multiset.lcm_ne_zero_iff 2025-09-13 18:35:29 ff8e821 feat: closed point of scheme gives maximal ideal in affine open (#29491) If a point `x` is a closed point in a scheme `X`, then its corresponding prime ideal in an affine open, `primeIdealOf x`, is maximal. The converse is not true in general, but is true for schemes locally of finite type over a field. ESTIMATED CHANGES Modified Mathlib/AlgebraicGeometry/AffineScheme.lean + theorem AlgebraicGeometry.IsAffineOpen.primeIdealOf_isMaximal_of_isClosed 2025-09-13 17:38:57 0f1f217 chore: rename `Mon_Class` to `MonObj` (#28406) and `Comon_Class` to `ComonObj`. `Grp_Class`, `CommGrp_Class` and `Mod_Class` will follow. [Zulip](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Removing.20underscores.20from.20docs.23Mon_.2C.20docs.23Grp_.20.2E.2E.2E) ESTIMATED CHANGES Modified Mathlib/Algebra/Category/CoalgCat/ComonEquivalence.lean Modified Mathlib/Algebra/Category/CommBialgCat.lean Modified Mathlib/Algebra/Category/Grp/LeftExactFunctor.lean Modified Mathlib/CategoryTheory/Bicategory/Monad/Basic.lean +/- theorem CategoryTheory.Bicategory.Comonad.comul_assoc +/- theorem CategoryTheory.Bicategory.Comonad.comul_assoc_flip +/- theorem CategoryTheory.Bicategory.Comonad.comul_counit +/- theorem CategoryTheory.Bicategory.Comonad.counit_comul Modified Mathlib/CategoryTheory/Monad/EquivMon.lean Modified Mathlib/CategoryTheory/Monoidal/Bimod.lean Modified Mathlib/CategoryTheory/Monoidal/Bimon_.lean + theorem Bimon_.BimonObjAux_comul + theorem Bimon_.BimonObjAux_counit - theorem Bimon_.Bimon_ClassAux_comul - theorem Bimon_.Bimon_ClassAux_counit +/- theorem Bimon_.compatibility +/- def Bimon_.mk' +/- def Bimon_.mk'X +/- theorem Bimon_.mul_counit +/- theorem Bimon_.one_comul Modified Mathlib/CategoryTheory/Monoidal/Cartesian/CommGrp_.lean Modified Mathlib/CategoryTheory/Monoidal/Cartesian/CommMon_.lean Modified Mathlib/CategoryTheory/Monoidal/Cartesian/Comon_.lean +/- theorem comul_eq_lift +/- theorem counit_eq_toUnit Modified Mathlib/CategoryTheory/Monoidal/Cartesian/Grp_.lean Modified Mathlib/CategoryTheory/Monoidal/Cartesian/Mod_.lean +/- def Mod_Class.trivialAction Modified Mathlib/CategoryTheory/Monoidal/Cartesian/Mon_.lean + theorem MonObj.comp_mul + theorem MonObj.comp_one + theorem MonObj.comp_pow + theorem MonObj.lift_comp_one_left + theorem MonObj.lift_comp_one_right + theorem MonObj.lift_lift_assoc + theorem MonObj.mul_comp + theorem MonObj.mul_eq_mul + def MonObj.ofRepresentableBy + theorem MonObj.ofRepresentableBy_yonedaMonObjRepresentableBy + theorem MonObj.one_comp + theorem MonObj.one_eq_one + theorem MonObj.pow_comp - theorem Mon_Class.comp_mul - theorem Mon_Class.comp_one - theorem Mon_Class.comp_pow - theorem Mon_Class.lift_comp_one_left - theorem Mon_Class.lift_comp_one_right - theorem Mon_Class.lift_lift_assoc - theorem Mon_Class.mul_comp - theorem Mon_Class.mul_eq_mul - def Mon_Class.ofRepresentableBy - theorem Mon_Class.ofRepresentableBy_yonedaMonObjRepresentableBy - theorem Mon_Class.one_comp - theorem Mon_Class.one_eq_one - theorem Mon_Class.pow_comp Modified Mathlib/CategoryTheory/Monoidal/CommGrp_.lean Modified Mathlib/CategoryTheory/Monoidal/CommMon_.lean +/- def CommMon_.mkIso' Modified Mathlib/CategoryTheory/Monoidal/Comon_.lean +/- theorem CategoryTheory.Functor.obj.Δ_def +/- theorem CategoryTheory.Functor.obj.ε_def + theorem ComonObj.comul_assoc_flip + theorem ComonObj.comul_counit_hom + theorem ComonObj.counit_comul_hom +/- theorem Comon_.tensorObj_comul' +/- theorem Comon_.tensorObj_comul +/- theorem Comon_.tensorObj_counit - theorem Comon_Class.comul_assoc_flip - theorem Comon_Class.comul_counit_hom - theorem Comon_Class.counit_comul_hom Modified Mathlib/CategoryTheory/Monoidal/Conv.lean Modified Mathlib/CategoryTheory/Monoidal/Grp_.lean +/- theorem Grp_Class.ext + theorem Grp_Class.toMonObj_injective - theorem Grp_Class.toMon_Class_injective Modified Mathlib/CategoryTheory/Monoidal/Hopf_.lean Modified Mathlib/CategoryTheory/Monoidal/Internal/FunctorCategory.lean +/- def CategoryTheory.Monoidal.ComonFunctorCategoryEquivalence.functorObj +/- def CategoryTheory.Monoidal.ComonFunctorCategoryEquivalence.functorObjObj +/- def CategoryTheory.Monoidal.MonFunctorCategoryEquivalence.functorObj +/- def CategoryTheory.Monoidal.MonFunctorCategoryEquivalence.functorObjObj Modified Mathlib/CategoryTheory/Monoidal/Internal/Module.lean +/- theorem ModuleCat.MonModuleEquivalenceAlgebra.algebraMap +/- def ModuleCat.MonModuleEquivalenceAlgebra.inverseObj Modified Mathlib/CategoryTheory/Monoidal/Internal/Types/Basic.lean Modified Mathlib/CategoryTheory/Monoidal/Internal/Types/CommGrp_.lean Modified Mathlib/CategoryTheory/Monoidal/Internal/Types/Grp_.lean Modified Mathlib/CategoryTheory/Monoidal/Mod_.lean +/- def Mod_.comap +/- structure Mod_ +/- theorem Mod_Class.smul_eq_mul Modified Mathlib/CategoryTheory/Monoidal/Mon_.lean + theorem CategoryTheory.Equivalence.MonObj.Mon_tensor_mul_assoc + theorem CategoryTheory.Equivalence.MonObj.Mon_tensor_mul_one + theorem CategoryTheory.Equivalence.MonObj.Mon_tensor_one_mul + theorem CategoryTheory.Equivalence.MonObj.mul_associator + theorem CategoryTheory.Equivalence.MonObj.mul_braiding + theorem CategoryTheory.Equivalence.MonObj.mul_leftUnitor + theorem CategoryTheory.Equivalence.MonObj.mul_mul_mul_comm' + theorem CategoryTheory.Equivalence.MonObj.mul_mul_mul_comm + theorem CategoryTheory.Equivalence.MonObj.mul_rightUnitor + theorem CategoryTheory.Equivalence.MonObj.one_associator + theorem CategoryTheory.Equivalence.MonObj.one_braiding + theorem CategoryTheory.Equivalence.MonObj.one_leftUnitor + theorem CategoryTheory.Equivalence.MonObj.one_rightUnitor - theorem CategoryTheory.Equivalence.Mon_Class.Mon_tensor_mul_assoc - theorem CategoryTheory.Equivalence.Mon_Class.Mon_tensor_mul_one - theorem CategoryTheory.Equivalence.Mon_Class.Mon_tensor_one_mul - theorem CategoryTheory.Equivalence.Mon_Class.mul_associator - theorem CategoryTheory.Equivalence.Mon_Class.mul_braiding - theorem CategoryTheory.Equivalence.Mon_Class.mul_leftUnitor - theorem CategoryTheory.Equivalence.Mon_Class.mul_mul_mul_comm' - theorem CategoryTheory.Equivalence.Mon_Class.mul_mul_mul_comm - theorem CategoryTheory.Equivalence.Mon_Class.mul_rightUnitor - theorem CategoryTheory.Equivalence.Mon_Class.one_associator - theorem CategoryTheory.Equivalence.Mon_Class.one_braiding - theorem CategoryTheory.Equivalence.Mon_Class.one_leftUnitor - theorem CategoryTheory.Equivalence.Mon_Class.one_rightUnitor + theorem MonObj.ext + theorem MonObj.mul_assoc_flip + theorem MonObj.mul_one_hom + def MonObj.ofIso + theorem MonObj.one_mul_hom +/- def Mon_.mkIso' - theorem Mon_Class.ext - theorem Mon_Class.mul_assoc_flip - theorem Mon_Class.mul_one_hom - def Mon_Class.ofIso - theorem Mon_Class.one_mul_hom Modified Mathlib/CategoryTheory/Monoidal/Opposite/Mon_.lean + def MonObj.mopEquiv + def MonObj.mopEquivCompForgetIso - def Mon_Class.mopEquiv - def Mon_Class.mopEquivCompForgetIso Modified Mathlib/CategoryTheory/Preadditive/CommGrp_.lean Modified Mathlib/Tactic/Attr/Register.lean Modified MathlibTest/CategoryTheory/Monoidal/MonTauto.lean 2025-09-13 17:16:14 4e0206c chore(GroupTheory/Index): rename `relindex` to `relIndex` (#19872) Zulip discussion about renaming: [#PR reviews > #19872 rename relindex to relIndex @ 💬](https://leanprover.zulipchat.com/#narrow/channel/144837-PR-reviews/topic/.2319872.20rename.20relindex.20to.20relIndex/near/515908054) ESTIMATED CHANGES Modified Mathlib/Algebra/Module/ZLattice/Covolume.lean + theorem ZLattice.covolume_div_covolume_eq_relIndex' + theorem ZLattice.covolume_div_covolume_eq_relIndex - theorem ZLattice.covolume_div_covolume_eq_relindex' - theorem ZLattice.covolume_div_covolume_eq_relindex Modified Mathlib/FieldTheory/Relrank.lean Modified Mathlib/GroupTheory/Commensurable.lean Modified Mathlib/GroupTheory/CosetCover.lean Modified Mathlib/GroupTheory/GroupAction/Blocks.lean + theorem MulAction.IsBlock.ncard_block_eq_relIndex - theorem MulAction.IsBlock.ncard_block_eq_relindex Modified Mathlib/GroupTheory/Index.lean + theorem AddSubgroup.relIndex_pointwise_smul + theorem AddSubgroup.relIndex_toSubgroup - theorem AddSubgroup.relindex_pointwise_smul - theorem AddSubgroup.relindex_toSubgroup + theorem Subgroup.exists_pow_mem_of_relIndex_ne_zero - theorem Subgroup.exists_pow_mem_of_relindex_ne_zero + theorem Subgroup.index_eq_zero_of_relIndex_eq_zero - theorem Subgroup.index_eq_zero_of_relindex_eq_zero + theorem Subgroup.inf_relIndex_left + theorem Subgroup.inf_relIndex_right - theorem Subgroup.inf_relindex_left - theorem Subgroup.inf_relindex_right + theorem Subgroup.pow_mem_of_relIndex_ne_zero_of_dvd - theorem Subgroup.pow_mem_of_relindex_ne_zero_of_dvd + theorem Subgroup.relIndex_bot_left + theorem Subgroup.relIndex_bot_right + theorem Subgroup.relIndex_comap + theorem Subgroup.relIndex_comap_ne_zero + theorem Subgroup.relIndex_dvd_card + theorem Subgroup.relIndex_dvd_index_of_le + theorem Subgroup.relIndex_dvd_index_of_normal + theorem Subgroup.relIndex_dvd_of_le_left + theorem Subgroup.relIndex_eq_one + theorem Subgroup.relIndex_eq_zero_of_le_left + theorem Subgroup.relIndex_eq_zero_of_le_right + theorem Subgroup.relIndex_iInf_le + theorem Subgroup.relIndex_iInf_ne_zero + theorem Subgroup.relIndex_inf_le + theorem Subgroup.relIndex_inf_mul_relIndex + theorem Subgroup.relIndex_inf_ne_zero + theorem Subgroup.relIndex_inter_ne_zero + theorem Subgroup.relIndex_ker + theorem Subgroup.relIndex_le_of_le_left + theorem Subgroup.relIndex_le_of_le_right + theorem Subgroup.relIndex_map_map + theorem Subgroup.relIndex_map_map_of_injective + theorem Subgroup.relIndex_mul_index + theorem Subgroup.relIndex_mul_relIndex + theorem Subgroup.relIndex_ne_zero + theorem Subgroup.relIndex_ne_zero_trans + theorem Subgroup.relIndex_pointwise_smul + theorem Subgroup.relIndex_self + theorem Subgroup.relIndex_subgroupOf + theorem Subgroup.relIndex_sup_left + theorem Subgroup.relIndex_sup_right + theorem Subgroup.relIndex_toAddSubgroup + theorem Subgroup.relIndex_top_left + theorem Subgroup.relIndex_top_right - theorem Subgroup.relindex_bot_left - theorem Subgroup.relindex_bot_right - theorem Subgroup.relindex_comap - theorem Subgroup.relindex_comap_ne_zero - theorem Subgroup.relindex_dvd_card - theorem Subgroup.relindex_dvd_index_of_le - theorem Subgroup.relindex_dvd_index_of_normal - theorem Subgroup.relindex_dvd_of_le_left - theorem Subgroup.relindex_eq_one - theorem Subgroup.relindex_eq_zero_of_le_left - theorem Subgroup.relindex_eq_zero_of_le_right - theorem Subgroup.relindex_iInf_le - theorem Subgroup.relindex_iInf_ne_zero - theorem Subgroup.relindex_inf_le - theorem Subgroup.relindex_inf_mul_relindex - theorem Subgroup.relindex_inf_ne_zero - theorem Subgroup.relindex_inter_ne_zero - theorem Subgroup.relindex_ker - theorem Subgroup.relindex_le_of_le_left - theorem Subgroup.relindex_le_of_le_right - theorem Subgroup.relindex_map_map - theorem Subgroup.relindex_map_map_of_injective - theorem Subgroup.relindex_mul_index - theorem Subgroup.relindex_mul_relindex - theorem Subgroup.relindex_ne_zero - theorem Subgroup.relindex_ne_zero_trans - theorem Subgroup.relindex_pointwise_smul - theorem Subgroup.relindex_self - theorem Subgroup.relindex_subgroupOf - theorem Subgroup.relindex_sup_left - theorem Subgroup.relindex_sup_right - theorem Subgroup.relindex_toAddSubgroup - theorem Subgroup.relindex_top_left - theorem Subgroup.relindex_top_right Modified Mathlib/GroupTheory/IndexNormal.lean Modified Mathlib/GroupTheory/PGroup.lean Modified Mathlib/GroupTheory/Schreier.lean Modified Mathlib/GroupTheory/SchurZassenhaus.lean Modified Mathlib/GroupTheory/Sylow.lean Modified Mathlib/GroupTheory/Transfer.lean Modified Mathlib/LinearAlgebra/FreeModule/Finite/CardQuotient.lean + theorem AddSubgroup.relIndex_eq_abs_det + theorem AddSubgroup.relIndex_eq_natAbs_det - theorem AddSubgroup.relindex_eq_abs_det - theorem AddSubgroup.relindex_eq_natAbs_det Modified Mathlib/NumberTheory/ModularForms/ArithmeticSubgroups.lean Modified Mathlib/NumberTheory/ModularForms/CongruenceSubgroups.lean Modified Mathlib/NumberTheory/ModularForms/Cusps.lean + theorem isCusp_iff_of_relIndex_ne_zero - theorem isCusp_iff_of_relindex_ne_zero Modified Mathlib/NumberTheory/NumberField/Discriminant/Different.lean Modified Mathlib/NumberTheory/NumberField/Units/Regulator.lean Modified Mathlib/RingTheory/Ideal/Quotient/Index.lean 2025-09-13 15:32:44 09100dc chore(Probability): rename IsFiniteKernel.bound to Kernel.bound (#29613) That definition was specific to finite kernels before #29137, but not anymore. Also the new name allows dot notation. ESTIMATED CHANGES Modified Mathlib/Probability/Kernel/Basic.lean Modified Mathlib/Probability/Kernel/Composition/Comp.lean Modified Mathlib/Probability/Kernel/Composition/CompProd.lean Modified Mathlib/Probability/Kernel/Composition/MapComap.lean Modified Mathlib/Probability/Kernel/Composition/ParallelComp.lean Modified Mathlib/Probability/Kernel/Defs.lean - theorem ProbabilityTheory.IsFiniteKernel.bound_eq_zero_of_isEmpty' - theorem ProbabilityTheory.IsFiniteKernel.bound_eq_zero_of_isEmpty - theorem ProbabilityTheory.IsFiniteKernel.bound_lt_top - theorem ProbabilityTheory.IsFiniteKernel.bound_ne_top - theorem ProbabilityTheory.IsFiniteKernel.bound_zero - theorem ProbabilityTheory.IsMarkovKernel.bound_eq_one - theorem ProbabilityTheory.IsZeroOrMarkovKernel.bound_le_one + theorem ProbabilityTheory.Kernel.bound_eq_one + theorem ProbabilityTheory.Kernel.bound_eq_zero_of_isEmpty' + theorem ProbabilityTheory.Kernel.bound_eq_zero_of_isEmpty + theorem ProbabilityTheory.Kernel.bound_le_one + theorem ProbabilityTheory.Kernel.bound_lt_top + theorem ProbabilityTheory.Kernel.bound_ne_top + theorem ProbabilityTheory.Kernel.bound_zero +/- theorem ProbabilityTheory.Kernel.measure_le_bound Modified Mathlib/Probability/Kernel/Integral.lean Modified Mathlib/Probability/Kernel/RadonNikodym.lean Modified Mathlib/Probability/Kernel/WithDensity.lean 2025-09-13 14:25:56 675132e chore(Algebra/Group/Submonoid/Membership): fix outdated docs (#29590) removes two declarations from the doc header that are no longer part of the file and quickly explains `Submonoid.powers` and `AddSubmonoid.multiples` ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Submonoid/Membership.lean 2025-09-13 14:25:54 6af9b66 chore: minor grind golfing in Logic/Embedding (#29536) ESTIMATED CHANGES Modified Mathlib/Logic/Embedding/Basic.lean + theorem subtypeOrLeftEmbedding_apply Modified Mathlib/Logic/Embedding/Set.lean 2025-09-13 14:25:52 d1684dd chore: grind golf in Mathlib.Logic (#29493) More golfs identified by `linter.tacticAnalysis.terminalToGrind`. ESTIMATED CHANGES Modified Mathlib/Logic/Basic.lean Modified Mathlib/Logic/Function/Basic.lean Modified Mathlib/Logic/Relation.lean Modified scripts/noshake.json 2025-09-13 14:25:51 52fe727 chore: remove redundant `obtain` invocations (#29219) ESTIMATED CHANGES Modified Mathlib/Algebra/ContinuedFractions/ConvergentsEquiv.lean Modified Mathlib/Algebra/Homology/HomotopyCategory/Pretriangulated.lean Modified Mathlib/Algebra/Lie/Weights/Cartan.lean Modified Mathlib/Algebra/Module/PID.lean Modified Mathlib/Algebra/Order/Ring/Unbundled/Basic.lean Modified Mathlib/Algebra/Polynomial/Monic.lean 2025-09-13 14:08:51 a840318 feat(NumberTheory/ModularForms): Cusps of subgroups acting on upper half-plane (#29327) - Define "arithmetic subgroups" of GL(2, R), as subgroups commensurable with the image of SL(2, Z) - Add some notations and API to make it easier to work with images in GL(2, R) of subgroups of SL(2, Z) - Define "cusps" of a subgroup of GL(2, R), as fixed points of parabolic elements on P^1(R). - Prove that the cusps of an arithmetic subgroup are precisely P^1(Q). ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/LinearAlgebra/Matrix/GeneralLinearGroup/Defs.lean + theorem Matrix.SpecialLinearGroup.det_mapGL + theorem Matrix.SpecialLinearGroup.map_mapGL Modified Mathlib/LinearAlgebra/Matrix/GeneralLinearGroup/FinTwo.lean + theorem Matrix.GeneralLinearGroup.isParabolic_conj_iff' + theorem Matrix.GeneralLinearGroup.isParabolic_conj_iff +/- theorem Matrix.disc_conj' +/- theorem Matrix.disc_conj +/- theorem Matrix.isElliptic_conj'_iff +/- theorem Matrix.isElliptic_conj_iff +/- theorem Matrix.isHyperbolic_conj'_iff +/- theorem Matrix.isHyperbolic_conj_iff +/- theorem Matrix.isParabolic_conj'_iff +/- theorem Matrix.isParabolic_conj_iff Added Mathlib/NumberTheory/ModularForms/ArithmeticSubgroups.lean + theorem Subgroup.isArithmetic_iff_finiteIndex Modified Mathlib/NumberTheory/ModularForms/CongruenceSubgroups.lean + theorem CongruenceSubgroup.IsArithmetic.conj +/- theorem CongruenceSubgroup.finiteIndex_conjGL + theorem CongruenceSubgroup.isArithmetic_conj_SL2Z Added Mathlib/NumberTheory/ModularForms/Cusps.lean + theorem Commensurable.isCusp_iff + theorem IsCusp.smul + theorem IsCusp.smul_of_mem + def IsCusp + theorem OnePoint.exists_mem_SL2 + theorem Subgroup.IsArithmetic.isCusp_iff_isCusp_SL2Z + theorem cosetToCuspOrbit_apply_mk + def cusps_subMulAction + theorem isCusp_SL2Z_iff' + theorem isCusp_SL2Z_iff + theorem isCusp_iff_of_relindex_ne_zero + theorem surjective_cosetToCuspOrbit Modified Mathlib/NumberTheory/ModularForms/SlashInvariantForms.lean 2025-09-13 12:46:57 0a26ae3 feat: archimedean classes of rationals (#28187) We prove some lemmas relating `ArchimedeanClass` to `ℚ` and other archimedean fields. ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Archimedean/Class.lean Modified Mathlib/Algebra/Order/Ring/Archimedean.lean + theorem ArchimedeanClass.eq_zero_or_top_of_archimedean + theorem ArchimedeanClass.mk_eq_zero_of_archimedean + theorem ArchimedeanClass.mk_intCast + theorem ArchimedeanClass.mk_map_of_archimedean' + theorem ArchimedeanClass.mk_map_of_archimedean + theorem ArchimedeanClass.mk_natCast + theorem ArchimedeanClass.mk_ratCast + theorem ArchimedeanClass.orderHom_zero Modified Mathlib/Order/Antisymmetrization.lean 2025-09-13 11:53:33 f775396 feat(TacticAnalysis): add a linter for merging consequent intro tactics (#28862) The linter is triggered by setting the option `linter.tacticAnalysis.introMerge` (which is on by default). When it finds consequent `intro` tactics, it will give a warning suggesting a single use of `intro`. For example: ```lean4 set_option linter.tacticAnalysis.introMerge true /-- warning: Try this: intro a b -/ #guard_msgs in example : ∀ a b : Unit, a = b := by intro a intro b rfl ``` ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Idempotents/Basic.lean Modified Mathlib/CategoryTheory/Limits/MonoCoprod.lean Modified Mathlib/CategoryTheory/Sites/Coverage.lean Modified Mathlib/Data/PNat/Prime.lean Modified Mathlib/Data/QPF/Multivariate/Constructions/Fix.lean Modified Mathlib/Order/Category/NonemptyFinLinOrd.lean Modified Mathlib/Order/OmegaCompletePartialOrder.lean Modified Mathlib/RingTheory/RootsOfUnity/Minpoly.lean Modified Mathlib/Tactic/TacticAnalysis/Declarations.lean + def introMerge Modified MathlibTest/TacticAnalysis.lean Modified MathlibTest/success_if_fail_with_msg.lean 2025-09-13 11:28:43 14f092f feat(Algebra/AddTorsor/Basic): add `Pi.vsub_apply` (#29603) ESTIMATED CHANGES Modified Mathlib/Algebra/AddTorsor/Basic.lean + theorem Pi.vsub_apply + theorem Pi.vsub_def 2025-09-13 10:43:18 1fb0e53 chore: tidy various files (#29583) ESTIMATED CHANGES Modified Counterexamples/CanonicallyOrderedCommSemiringTwoMul.lean Modified Mathlib/Algebra/GroupWithZero/Action/Hom.lean Modified Mathlib/Algebra/GroupWithZero/Range.lean Modified Mathlib/Algebra/Module/Submodule/Pointwise.lean Modified Mathlib/Algebra/Order/Module/Archimedean.lean Modified Mathlib/Algebra/QuadraticAlgebra.lean Modified Mathlib/Analysis/InnerProductSpace/Adjoint.lean Modified Mathlib/Analysis/InnerProductSpace/Positive.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Multiequalizer.lean Modified Mathlib/CategoryTheory/Sites/SheafOfTypes.lean Modified Mathlib/Data/List/Indexes.lean Modified Mathlib/Data/List/Lemmas.lean Modified Mathlib/Data/List/OfFn.lean Modified Mathlib/Data/List/Pi.lean +/- theorem List.mem_pi Modified Mathlib/Data/Nat/Bits.lean Modified Mathlib/Data/Nat/Factorial/NatCast.lean Modified Mathlib/LinearAlgebra/BilinearMap.lean Modified Mathlib/LinearAlgebra/Matrix/Spectrum.lean Modified Mathlib/NumberTheory/MulChar/Basic.lean Modified Mathlib/Probability/Moments/Variance.lean Modified Mathlib/RepresentationTheory/Basic.lean Modified Mathlib/RingTheory/Adjoin/Basic.lean Modified Mathlib/RingTheory/DedekindDomain/Ideal/Basic.lean Modified Mathlib/RingTheory/DividedPowers/RatAlgebra.lean Modified Mathlib/RingTheory/HahnSeries/Summable.lean Modified Mathlib/RingTheory/Ideal/Basic.lean Modified Mathlib/RingTheory/IntegralDomain.lean Modified Mathlib/RingTheory/LocalRing/Module.lean Modified Mathlib/RingTheory/Polynomial/Basic.lean Modified Mathlib/RingTheory/Polynomial/Content.lean Modified Mathlib/RingTheory/Polynomial/Cyclotomic/Basic.lean Modified Mathlib/Topology/Order/IsNormal.lean 2025-09-13 09:02:16 d009324 feat(Analysis/ODE/Gronwall): add a consequence of Grönwall's inequality (#26992) This PR continues the work from #25708. Original PR: https://github.com/leanprover-community/mathlib4/pull/25708 ESTIMATED CHANGES Modified Mathlib/Analysis/ODE/Gronwall.lean + theorem eq_zero_of_abs_deriv_le_mul_abs_self_of_eq_zero_right 2025-09-13 07:05:44 3b5ca69 feat(CategoryTheory/Monoidal/Action): actions as monoidal functors to endofunctors (#25875) Given a monoidal category `C` and a category `D`, we show that left actions of `C` on `D` correspond to monoidal functors `C ⥤ (D ⥤ D)ᴹᵒᵖ` by showing that the composition of `curriedAction C D` with `mopFunctor` is monoidal, and in the other direction by defining an action of `C` on `D` out of the data of such a monoidal functor. Similarly, we show that monoidal functors `C ⥤ (D ⥤ D)` correspond to right actions of `C` on `D`. We use this to define the "evaluation" right action of `(C ⥤ C)` (with the composition monoidal structure) on `C` as the action corresponding to the identity functor `(C ⥤ C) ⥤ (C ⥤ C)`. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/CategoryTheory/Monoidal/Action/Basic.lean Added Mathlib/CategoryTheory/Monoidal/Action/End.lean + def CategoryTheory.MonoidalCategory.MonoidalLeftAction.actionOfMonoidalFunctorToEndofunctorMop + def CategoryTheory.MonoidalCategory.MonoidalLeftAction.curriedActionActionOfMonoidalFunctorToEndofunctorMopIso + def CategoryTheory.MonoidalCategory.MonoidalLeftAction.curriedActionMop + theorem CategoryTheory.MonoidalCategory.MonoidalLeftAction.curriedActionMop_map_unmop_app + def CategoryTheory.MonoidalCategory.MonoidalRightAction.actionOfMonoidalFunctorToEndofunctor + def CategoryTheory.MonoidalCategory.MonoidalRightAction.curriedActionActionOfMonoidalFunctorToEndofunctorIso Modified Mathlib/CategoryTheory/Monoidal/Opposite.lean + theorem CategoryTheory.MonoidalOpposite.hom_ext 2025-09-13 04:50:31 9c51fb9 ci: fix delegated reaction being triggered by bors failure message (#29612) Follow-up to #29606. The reaction script step was being skipped because bors was not counted as a bot: cf. [log](https://github.com/leanprover-community/mathlib4/actions/runs/17690687974/job/50283460700#step:2:102). ESTIMATED CHANGES Modified .github/workflows/maintainer_bors.yml 2025-09-13 02:46:45 655a116 doc: capitalize cartesian (#29294) Cartesian is derived from the name of a mathematician, which means it is capitalized in English. The only real deviation from this pattern I know of is "abelian". ESTIMATED CHANGES Modified Mathlib/Algebra/BigOperators/Group/Multiset/Basic.lean Modified Mathlib/Algebra/BigOperators/Group/Multiset/Defs.lean Modified Mathlib/Algebra/Category/CommAlgCat/Monoidal.lean Modified Mathlib/Algebra/Category/Grp/Biproducts.lean Modified Mathlib/Algebra/Category/ModuleCat/Biproducts.lean Modified Mathlib/Algebra/Category/Ring/Constructions.lean Modified Mathlib/Algebra/Ring/Fin.lean Modified Mathlib/AlgebraicGeometry/Morphisms/SurjectiveOnStalks.lean Modified Mathlib/Analysis/Calculus/ContDiff/Basic.lean Modified Mathlib/Analysis/Calculus/Deriv/Prod.lean Modified Mathlib/Analysis/Calculus/FDeriv/Basic.lean Modified Mathlib/Analysis/Calculus/FDeriv/Prod.lean Modified Mathlib/Analysis/Normed/Operator/BoundedLinearMaps.lean Modified Mathlib/CategoryTheory/Adjunction/Mates.lean Modified Mathlib/CategoryTheory/Category/Cat/CartesianClosed.lean Modified Mathlib/CategoryTheory/Closed/Cartesian.lean Modified Mathlib/CategoryTheory/Closed/Functor.lean Modified Mathlib/CategoryTheory/Closed/FunctorToTypes.lean Modified Mathlib/CategoryTheory/Closed/Ideal.lean Modified Mathlib/CategoryTheory/Closed/Monoidal.lean Modified Mathlib/CategoryTheory/Closed/Types.lean Modified Mathlib/CategoryTheory/Closed/Zero.lean Modified Mathlib/CategoryTheory/Comma/Over/Pullback.lean Modified Mathlib/CategoryTheory/Distributive/Cartesian.lean Modified Mathlib/CategoryTheory/FiberedCategory/Cartesian.lean Modified Mathlib/CategoryTheory/FiberedCategory/Cocartesian.lean Modified Mathlib/CategoryTheory/FiberedCategory/Fibered.lean Modified Mathlib/CategoryTheory/FiberedCategory/Grothendieck.lean Modified Mathlib/CategoryTheory/FiberedCategory/HasFibers.lean Modified Mathlib/CategoryTheory/Functor/Currying.lean Modified Mathlib/CategoryTheory/Limits/Shapes/BinaryProducts.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Pullback/CommSq.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Reflexive.lean Modified Mathlib/CategoryTheory/Limits/Shapes/StrictInitial.lean Modified Mathlib/CategoryTheory/Limits/Types/Shapes.lean Modified Mathlib/CategoryTheory/Monoidal/Cartesian/Basic.lean Modified Mathlib/CategoryTheory/Monoidal/Cartesian/Cat.lean Modified Mathlib/CategoryTheory/Monoidal/Cartesian/Comon_.lean Modified Mathlib/CategoryTheory/Monoidal/Cartesian/InfSemilattice.lean Modified Mathlib/CategoryTheory/Monoidal/Cartesian/Mod_.lean Modified Mathlib/CategoryTheory/Monoidal/Cartesian/Mon_.lean Modified Mathlib/CategoryTheory/Monoidal/Cartesian/Over.lean Modified Mathlib/CategoryTheory/Monoidal/CommGrp_.lean Modified Mathlib/CategoryTheory/Monoidal/Grp_.lean Modified Mathlib/CategoryTheory/Monoidal/Hopf_.lean Modified Mathlib/CategoryTheory/Monoidal/Mon_.lean Modified Mathlib/CategoryTheory/Monoidal/OfHasFiniteProducts.lean Modified Mathlib/CategoryTheory/Monoidal/Types/Basic.lean Modified Mathlib/CategoryTheory/Pi/Basic.lean Modified Mathlib/CategoryTheory/Products/Basic.lean Modified Mathlib/CategoryTheory/Sites/CartesianClosed.lean Modified Mathlib/CategoryTheory/Sites/CartesianMonoidal.lean Modified Mathlib/CategoryTheory/Subterminal.lean Modified Mathlib/Combinatorics/Enumerative/IncidenceAlgebra.lean Modified Mathlib/Condensed/CartesianClosed.lean Modified Mathlib/Condensed/Light/CartesianClosed.lean Modified Mathlib/Data/Finset/Pi.lean Modified Mathlib/Data/List/Pi.lean Modified Mathlib/Data/Multiset/Pi.lean Modified Mathlib/Data/Ordmap/Ordnode.lean Modified Mathlib/Data/SProd.lean Modified Mathlib/Data/Set/Operations.lean Modified Mathlib/Lean/Thunk.lean Modified Mathlib/LinearAlgebra/Alternating/Basic.lean Modified Mathlib/LinearAlgebra/Multilinear/Basic.lean Modified Mathlib/ModelTheory/Definability.lean Modified Mathlib/Order/CompleteLattice/MulticoequalizerDiagram.lean Modified Mathlib/Order/Filter/Defs.lean Modified Mathlib/Order/Heyting/Basic.lean Modified Mathlib/RingTheory/Spectrum/Prime/TensorProduct.lean Modified Mathlib/SetTheory/ZFC/Basic.lean Modified Mathlib/Topology/Algebra/Algebra.lean Modified Mathlib/Topology/Algebra/Module/Alternating/Basic.lean Modified Mathlib/Topology/Algebra/Module/LinearMapPiProd.lean Modified Mathlib/Topology/Algebra/Module/Multilinear/Basic.lean Modified Mathlib/Topology/Algebra/Nonarchimedean/Basic.lean Modified Mathlib/Topology/Algebra/Ring/Basic.lean Modified Mathlib/Topology/Category/CompactlyGenerated.lean Modified Mathlib/Topology/Category/DeltaGenerated.lean Modified Mathlib/Topology/ClopenBox.lean Modified MathlibTest/FBinop.lean Modified MathlibTest/fun_prop_dev.lean Modified docs/overview.yaml 2025-09-13 02:46:44 db73ea1 chore(RingTheory/Smooth): split `StandardSmooth` (#28725) We factor out the `SubmersivePresentation` part into a separate file to prepare for new content. Also the module docstrings and TODOs are updated. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/RingTheory/Extension/Presentation/Submersive.lean + theorem Algebra.PreSubmersivePresentation.aevalDifferential_single + theorem Algebra.PreSubmersivePresentation.aevalDifferential_toMatrix'_eq_mapMatrix_jacobiMatrix + theorem Algebra.PreSubmersivePresentation.baseChange_jacobian + theorem Algebra.PreSubmersivePresentation.baseChange_ring + theorem Algebra.PreSubmersivePresentation.baseChange_toPresentation + theorem Algebra.PreSubmersivePresentation.card_relations_le_card_vars_of_isFinite + theorem Algebra.PreSubmersivePresentation.comp_jacobian_eq_jacobian_smul_jacobian + theorem Algebra.PreSubmersivePresentation.dimension_comp_eq_dimension_add_dimension + theorem Algebra.PreSubmersivePresentation.jacobiMatrix_apply + theorem Algebra.PreSubmersivePresentation.jacobiMatrix_naive + theorem Algebra.PreSubmersivePresentation.jacobiMatrix_reindex + theorem Algebra.PreSubmersivePresentation.jacobian_eq_jacobiMatrix_det + theorem Algebra.PreSubmersivePresentation.jacobian_reindex + theorem Algebra.PreSubmersivePresentation.localizationAway_jacobiMatrix + theorem Algebra.PreSubmersivePresentation.localizationAway_jacobian + def Algebra.PreSubmersivePresentation.naive + theorem Algebra.PreSubmersivePresentation.ofBijectiveAlgebraMap_jacobian + theorem Algebra.PreSubmersivePresentation.toGenerators_comp + theorem Algebra.PreSubmersivePresentation.toPresentation_comp + structure Algebra.PreSubmersivePresentation + theorem Algebra.SubmersivePresentation.aevalDifferentialEquiv_apply + theorem Algebra.SubmersivePresentation.basisDeriv_apply + theorem Algebra.SubmersivePresentation.linearIndependent_aeval_val_pderiv_relation + structure Algebra.SubmersivePresentation Modified Mathlib/RingTheory/RingHom/StandardSmooth.lean Modified Mathlib/RingTheory/Smooth/StandardSmooth.lean - theorem Algebra.PreSubmersivePresentation.aevalDifferential_single - theorem Algebra.PreSubmersivePresentation.aevalDifferential_toMatrix'_eq_mapMatrix_jacobiMatrix - theorem Algebra.PreSubmersivePresentation.baseChange_jacobian - theorem Algebra.PreSubmersivePresentation.baseChange_ring - theorem Algebra.PreSubmersivePresentation.baseChange_toPresentation - theorem Algebra.PreSubmersivePresentation.card_relations_le_card_vars_of_isFinite - theorem Algebra.PreSubmersivePresentation.comp_jacobian_eq_jacobian_smul_jacobian - theorem Algebra.PreSubmersivePresentation.dimension_comp_eq_dimension_add_dimension - theorem Algebra.PreSubmersivePresentation.jacobiMatrix_apply - theorem Algebra.PreSubmersivePresentation.jacobiMatrix_naive - theorem Algebra.PreSubmersivePresentation.jacobiMatrix_reindex - theorem Algebra.PreSubmersivePresentation.jacobian_eq_jacobiMatrix_det - theorem Algebra.PreSubmersivePresentation.jacobian_reindex - theorem Algebra.PreSubmersivePresentation.localizationAway_jacobiMatrix - theorem Algebra.PreSubmersivePresentation.localizationAway_jacobian - def Algebra.PreSubmersivePresentation.naive - theorem Algebra.PreSubmersivePresentation.ofBijectiveAlgebraMap_jacobian - theorem Algebra.PreSubmersivePresentation.toGenerators_comp - theorem Algebra.PreSubmersivePresentation.toPresentation_comp - structure Algebra.PreSubmersivePresentation - theorem Algebra.SubmersivePresentation.aevalDifferentialEquiv_apply - theorem Algebra.SubmersivePresentation.basisDeriv_apply - theorem Algebra.SubmersivePresentation.linearIndependent_aeval_val_pderiv_relation - structure Algebra.SubmersivePresentation 2025-09-13 01:59:56 adb1fa7 chore: add a shortcut `Module ℂ ℂ` instance for computability (#29609) This makes the construction in [#new members > Defining an inner product to use Cauchy-Schwarz @ 💬](https://leanprover.zulipchat.com/#narrow/channel/113489-new-members/topic/Defining.20an.20inner.20product.20to.20use.20Cauchy-Schwarz/near/539179544) computable. Previously to make it computable, it could not be defined in the point-free way. ESTIMATED CHANGES Modified Mathlib/Analysis/Complex/Basic.lean 2025-09-13 01:59:55 71ded59 chore: remove unecessary `noncomputable` (#29608) ESTIMATED CHANGES Modified Mathlib/Analysis/CStarAlgebra/Classes.lean 2025-09-13 00:00:35 14acf8e fix: log tactic analysis messages on correct range (#28919) The tactic analysis framework attempts to log messages on a synthetic concatenation of tactics (`` `(tactic|$tacticSeq;*)``). However, this inserts position info from the current ref in the tactic sequence nodes, and so messages are logged on the current ref (in this case, the whole command). This PR works around this by setting the ref to the input array of tactics via `mkNullNode`. (Note that VS code cannot log on disjoint ranges, so Lean's `log*` family of functions only logs on the first line of multiline ranges. Hence, logging on the full tactic sequence range results in a squiggly line under only the first line of the tactic. This is unrelated to the current fix.) ESTIMATED CHANGES Modified Mathlib/Tactic/TacticAnalysis.lean 2025-09-12 23:46:45 93fccc9 feat(RingTheory/Ideal/Height): sup of ideal heights equals Krull dimension (#27825) Adds `Ideal.sup_height_eq_ringKrullDim` and `Ideal.sup_primeHeight_eq_ringKrullDim`. They show the suprema of heights of ideals / prime ideals are equal to the Krull dimension, when the ring is nonzero. ESTIMATED CHANGES Modified Mathlib/RingTheory/Ideal/Height.lean + theorem Ideal.sup_height_eq_ringKrullDim + theorem Ideal.sup_primeHeight_eq_ringKrullDim + theorem Ideal.sup_primeHeight_of_maximal_eq_ringKrullDim 2025-09-12 23:06:34 bf8a2e5 feat(Analysis/InnerProductSpace/LinearPMap): the adjoint is closed (#29595) Define the graph of the adjoint and prove that the adjoint operator is always closed. Author: Moritz Doll ESTIMATED CHANGES Modified Mathlib/Analysis/InnerProductSpace/LinearPMap.lean + theorem IsSelfAdjoint.isClosed + theorem LinearPMap.adjoint_graph_eq_graph_adjoint + theorem LinearPMap.adjoint_isClosed + theorem LinearPMap.graph_adjoint_toLinearPMap_eq_adjoint + def Submodule.adjoint + theorem Submodule.mem_adjoint_iff Modified Mathlib/LinearAlgebra/Prod.lean + theorem LinearEquiv.skewSwap_apply + theorem LinearEquiv.skewSwap_symm_apply 2025-09-12 22:44:10 2d33bff feat(NumberTheory): Frobenius number exists & ℕ is Noetherian semiring (#27743) + The Frobenius number of a set of natural numbers exist iff the set has gcd 1 and doesn't contain 1. + All additive submonoids (= ideals) of ℕ are finitely generated. + The game of Sylver coinage always terminates. This is the outcome of a course project at Heidelberg University: [matematiflo.github.io/CompAssistedMath2025](https://matematiflo.github.io/CompAssistedMath2025/) ESTIMATED CHANGES Modified Mathlib/Data/Set/Finite/Basic.lean Modified Mathlib/LinearAlgebra/FreeModule/PID.lean +/- theorem dvd_generator_iff Modified Mathlib/NumberTheory/FrobeniusNumber.lean + theorem Nat.addSubmonoid_fg + theorem Nat.dvdNotUnit_setGcd_insert + theorem Nat.dvd_setGcd_iff + theorem Nat.exists_mem_closure_of_ge + theorem Nat.exists_mem_span_nat_finset_of_ge + theorem Nat.exists_ne_zero_of_setGcd_ne_zero + theorem Nat.finite_setOf_setGcd_dvd_and_mem_span + theorem Nat.setGcd_dvd_of_mem + theorem Nat.setGcd_dvd_of_mem_closure + theorem Nat.setGcd_eq_zero_iff + theorem Nat.setGcd_insert_of_dvd + theorem Nat.setGcd_mono + theorem Nat.span_singleton_setGcd + theorem Nat.subset_span_setGcd + theorem exists_frobeniusNumber_iff + theorem frobeniusNumber_iff Modified Mathlib/RingTheory/Ideal/NatInt.lean +/- theorem Nat.maximalIdeal_eq_span_two_three + theorem Nat.one_mem_closure_iff + theorem Nat.one_mem_span_iff Modified Mathlib/RingTheory/PrincipalIdealDomain.lean + theorem Submodule.IsPrincipal.dvd_generator_span_iff 2025-09-12 21:44:54 ec25e80 ci: add delegated reaction on Zulip in response to bors failure comment (#29606) This will make the "Build failed:" comment posted by bors apply a "delegated" reaction to messages in the "mathlib bors notifications" channel, which will make it easier for maintainers to see what needs to be done. cf. [#rss > mathlib bors notifications @ 💬](https://leanprover.zulipchat.com/#narrow/channel/116290-rss/topic/mathlib.20bors.20notifications/near/538556470) ESTIMATED CHANGES Modified .github/workflows/maintainer_bors.yml 2025-09-12 19:22:52 e799479 doc(script): document `downstream_dashboard.py` (#29584) This should have been documented in the first place, but the CI check for this was broken. #29513 fixes the check (hence discovered this issue). ESTIMATED CHANGES Modified scripts/README.md 2025-09-12 19:09:31 0f2759c feat(RingTheory/Ideal/IsOka): Add a variant for `Ideal.IsOka.forall_of_forall_prime` (#29567) When reviewing #28451 and #28477, @kckennylau noticed that a common pattern to create the argument `hmax` of `Ideal.IsOka.forall_of_forall_prime`. This PR factors out this common pattern inside `Ideal.IsOka.forall_of_forall_prime'`. ESTIMATED CHANGES Modified Mathlib/RingTheory/Ideal/Oka.lean + theorem Ideal.IsOka.forall_of_forall_prime' +/- theorem Ideal.IsOka.forall_of_forall_prime +/- theorem Ideal.IsOka.isPrime_of_maximal_not 2025-09-12 16:37:04 c4611fa feat(IsMulTorsionFree): the power map of a nontrivial regular element is injective (#28738) ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Opposite.lean Modified Mathlib/Algebra/Group/Torsion.lean + theorem IsMulTorsionFree.pow_eq_one_iff' Modified Mathlib/Algebra/Ring/NonZeroDivisors.lean + theorem IsLeftRegular.pow_injective + theorem IsMulTorsionFree.pow_right_inj + theorem IsMulTorsionFree.pow_right_injective + theorem IsMulTorsionFree.pow_right_injective₀ + theorem IsMulTorsionFree.pow_right_inj₀ + theorem IsRightRegular.pow_injective +/- theorem isRegular_iff_isUnit_of_finite 2025-09-12 16:05:41 8eab036 feat(Topology/Algebra/Module/ClosedSubmodule): add instances `Lattice` `CompleteLattice` (#29230) add necessary definitions and lemmas to get instances `Lattice` `CompleteLattice` for closed submodules. motivation: needed to define standard subspaces in a Hilbert space #29251 https://ems.press/content/serial-article-files/48171 ESTIMATED CHANGES Modified Mathlib/Topology/Algebra/Module/ClosedSubmodule.lean + theorem ClosedSubmodule.closure_toSubmodule_eq + theorem ClosedSubmodule.coe_iSup + theorem ClosedSubmodule.coe_sSup + theorem ClosedSubmodule.coe_sup + theorem ClosedSubmodule.mem_iSup + theorem ClosedSubmodule.mem_sSup + theorem ClosedSubmodule.mem_sup + theorem ClosedSubmodule.toSubmodule_iSup + theorem ClosedSubmodule.toSubmodule_sSup + theorem ClosedSubmodule.toSubmodule_sup + theorem Submodule.mem_closure_iff 2025-09-12 15:34:03 f0e5f81 feat(Analysis/Polynomial/Factorization): new file (#29249) This adds a new file with the following two results: ```lean /-- If `f : F[X]` is monic of degree `≥ 1` and `F` is an algebraically closed field, then `f = f₁ * f₂` with `f₁` monic of degree `1` and `f₂` monic of degree `f.natDegree - 1`. -/ lemma Polynomial.IsMonicOfDegree.eq_mul_isMonicOfDegree_one_isMonicOfDegree {F : Type*} [Field F] [IsAlgClosed F] {f : F[X]} {n : ℕ} (hf : IsMonicOfDegree f (n + 1)) : ∃ f₁ f₂ : F[X], IsMonicOfDegree f₁ 1 ∧ IsMonicOfDegree f₂ n ∧ f = f₁ * f₂ /-- If `f : ℝ[X]` is monic of degree `≥ 2`, then `f = f₁ * f₂` with `f₁` monic of degree `2` and `f₂` monic of degree `f.natDegree - 2`. -/ lemma Polynomial.IsMonicOfDegree.eq_mul_isMonicOfDegree_two_isMonicOfDegree {f : ℝ[X]} {n : ℕ} (hf : IsMonicOfDegree f (n + 2)) : ∃ f₁ f₂ : ℝ[X], IsMonicOfDegree f₁ 2 ∧ IsMonicOfDegree f₂ n ∧ f = f₁ * f₂ ``` They are needed for the Gelfand-Mazur theorem in the [Heights](https://github.com/MichaelStollBayreuth/Heights) repository. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/Polynomial/Factorization.lean + theorem Polynomial.IsMonicOfDegree.eq_isMonicOfDegree_one_mul_isMonicOfDegree + theorem Polynomial.IsMonicOfDegree.eq_isMonicOfDegree_one_or_two_mul + theorem Polynomial.IsMonicOfDegree.eq_isMonicOfDegree_two_mul_isMonicOfDegree 2025-09-12 15:34:00 14ede0e feat(CategoryTheory): transport the structure of a monoidal functor along an isomorphism of functors. (#28904) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Monoidal/Functor.lean + def CategoryTheory.Functor.Monoidal.coreMonoidalTransport + def CategoryTheory.Functor.Monoidal.transport 2025-09-12 15:33:57 1cc7364 feat(Algebra/Category/FGModuleCat/Abelian): `FGModuleCat k` is abelian if `k` is a noetherian ring (#27125) - [x] depends on: #27094 ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Category/FGModuleCat/Abelian.lean 2025-09-12 14:30:03 48d4807 feat(Data/Matrix/Mul): add `vecMulVec_eq_zero` and `vecMulVec_ne_zero` (#29591) ESTIMATED CHANGES Modified Mathlib/Data/Matrix/Mul.lean + theorem Matrix.vecMulVec_eq_zero + theorem Matrix.vecMulVec_ne_zero 2025-09-12 14:30:00 66e926d fix(lint-style): recognise a few more transitive imports of `Mathlib.Init` as such (#29586) Uncovered by the fix of CI in #29513. ESTIMATED CHANGES Modified Mathlib/Lean/Elab/Tactic/Meta.lean Modified Mathlib/Tactic/Linter/DirectoryDependency.lean Modified scripts/lint-style.lean 2025-09-12 14:29:58 7407acc chore: grind some proofs in the CHSH inequality (#29333) ESTIMATED CHANGES Modified Mathlib/Algebra/Star/CHSH.lean - theorem TsirelsonInequality.tsirelson_inequality_aux 2025-09-12 14:29:56 9f97c81 feat(Probability/Kernel): change the def of `IsFiniteKernel.bound` to make it more informative (#29137) Previously, `IsFiniteKernel.bound` was a finite upper bound on the measure of the univ set for all measures in the image of the kernel. This PR changes it to the least upper bound. In particular, for a Markov kernel it now has value 1. ESTIMATED CHANGES Modified Mathlib/Probability/Kernel/Composition/Comp.lean +/- theorem ProbabilityTheory.Kernel.comp_apply_univ_le Modified Mathlib/Probability/Kernel/Composition/MapComap.lean Modified Mathlib/Probability/Kernel/Defs.lean + theorem ProbabilityTheory.IsFiniteKernel.bound_eq_zero_of_isEmpty' + theorem ProbabilityTheory.IsFiniteKernel.bound_eq_zero_of_isEmpty + theorem ProbabilityTheory.IsFiniteKernel.bound_zero + theorem ProbabilityTheory.IsMarkovKernel.bound_eq_one + theorem ProbabilityTheory.IsZeroOrMarkovKernel.bound_le_one +/- theorem ProbabilityTheory.Kernel.measure_le_bound Modified Mathlib/Probability/Kernel/RadonNikodym.lean 2025-09-12 14:29:54 f7ff5d5 chore(RingTheory/SimpleModule): golf and generalize lifting_property (#27482) ESTIMATED CHANGES Modified Mathlib/RingTheory/SimpleModule/Basic.lean +/- theorem IsSemisimpleModule.lifting_property Modified Mathlib/RingTheory/SimpleModule/InjectiveProjective.lean + theorem Module.injective_of_isSemisimpleRing - theorem Module.injective_of_semisimple_ring + theorem Module.projective_of_isSemisimpleRing - theorem Module.projective_of_semisimple_ring 2025-09-12 13:27:50 839e741 chore: add two missing Mathlib.Init imports (#29585) Discovered by #29513, which fixes the CI check enforcing these. ESTIMATED CHANGES Modified Mathlib/Tactic/Hint.lean Modified Mathlib/Tactic/RewriteSearch.lean 2025-09-12 12:47:18 bbd46d7 feat: a complex differentiable function on a disk has a primitive (#9598) We prove that holomorphic functions on discs have primitives. TODO: Extend to holomorphic functions on simply connected domains, and use this to define general complex logarithms. Co-authored by: Ian Jauslin ian.jauslin@rutgers.edu ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Analysis/Complex/Asymptotics.lean + theorem Complex.isBigO_im_sub_im + theorem Complex.isBigO_re_sub_re Modified Mathlib/Analysis/Complex/Convex.lean + theorem Complex.Convex.rectangle_subset +/- theorem Complex.isConnected_of_lowerHalfPlane +/- theorem Complex.isConnected_of_upperHalfPlane + theorem Complex.rectangle_eq_convexHull Added Mathlib/Analysis/Complex/HasPrimitives.lean + theorem Complex.IsConservativeOn.eventually_nhds_wedgeIntegral_sub_wedgeIntegral + theorem Complex.IsConservativeOn.hasDerivAt_wedgeIntegral + theorem Complex.IsConservativeOn.isExactOn_ball + def Complex.IsConservativeOn + theorem Complex.IsExactOn.isConservativeOn_of_isOpen + def Complex.IsExactOn + def Complex.wedgeIntegral + theorem Complex.wedgeIntegral_add_wedgeIntegral_eq + theorem DifferentiableOn.isConservativeOn + theorem DifferentiableOn.isExactOn_ball 2025-09-12 10:33:53 07c7363 feat: countable metric spaces are totally disconnected (#29211) Prove that countable metric spaces are totally disconnected. This can't be placed inside `Mathlib.Topology.MetricSpace.Basic` because it causes a circular import with `Mathlib.Analysis.Real.Cardinality`. See also [Rat.instTotallyDisconnectedSpace](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Topology/Instances/RatLemmas.html#Rat.instTotallyDisconnectedSpace). There is a reference [here](https://people.math.harvard.edu/~ctm/home/text/class/harvard/131/01/html/home/course/course.pdf) for the mathematical statement and proof. This is upstreamed from [https://github.com/girving/ray](https://github.com/girving/ray). ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Analysis/Real/Cardinality.lean + theorem Cardinal.Real.Icc_countable_iff + theorem Cardinal.Real.Ico_countable_iff + theorem Cardinal.Real.Ioc_countable_iff + theorem Cardinal.Real.Ioo_countable_iff Modified Mathlib/Topology/Separation/CompletelyRegular.lean + theorem CompletelyRegularSpace.isTopologicalBasis_clopens_of_cardinalMk_lt_continuum Added Mathlib/Topology/Separation/Lemmas.lean + theorem CompletelyRegularSpace.totallySeparatedSpace_of_cardinalMk_lt_continuum + theorem Set.Countable.isTotallyDisconnected Modified Mathlib/Topology/Separation/Profinite.lean + theorem totallySeparatedSpace_of_t0_of_basis_clopen - theorem totallySeparatedSpace_of_t1_of_basis_clopen 2025-09-12 09:08:49 ec58e7e chore: update lint-style-action to 2025-08-18 (#29575) [That commit](https://github.com/leanprover-community/lint-style-action/commit/a7e7428fa44f9635d6eb8e01919d16fd498d387a) seems to contain a fix for the bibtool check getting ignored -- cf. #29572 for a fix for current bibtool issues, which should have been caught by this. ESTIMATED CHANGES Modified .github/build.in.yml Modified .github/workflows/bors.yml Modified .github/workflows/bot_fix_style.yaml Modified .github/workflows/build.yml Modified .github/workflows/build_fork.yml Modified .github/workflows/lint_and_suggest_pr.yml 2025-09-12 08:42:01 9df78dd feat(RingTheory/Finiteness): `fg_iff_exists_fin_addMonoidHom` (#29032) which are simple corollaries of `Submodule.fg_iff_exists_fin_linearMap`. ESTIMATED CHANGES Modified Mathlib/RingTheory/Finiteness/Cardinality.lean + theorem AddSubgroup.fg_iff_exists_fin_addMonoidHom + theorem AddSubmonoid.fg_iff_exists_fin_addMonoidHom 2025-09-12 08:09:50 447bd0e chore: update Mathlib dependencies 2025-09-12 (#29580) This PR updates the Mathlib dependencies. ESTIMATED CHANGES Modified lake-manifest.json 2025-09-12 07:39:49 f29d34c chore: clean up Mathlib.Analysis.Real.OfDigits (#29566) This PR golfs the proofs, removes an unnecessary assumption from `ofDigits_digits_sum_eq`, changes the name of `sum_ofDigitsTerm_digits_ge` to `le_sum_ofDigitsTerm_digits` without leaving a deprecation, and removes the use of the `move_mul` tactic. ESTIMATED CHANGES Modified Mathlib/Analysis/Real/OfDigits.lean + theorem Real.le_sum_ofDigitsTerm_digits +/- theorem Real.ofDigits_digits_sum_eq - theorem Real.sum_ofDigitsTerm_digits_ge +/- theorem Real.sum_ofDigitsTerm_digits_le Modified scripts/noshake.json 2025-09-12 04:49:35 47d990e fix: add Elab.async false in #count_heartbeats (#29335) See [#mathlib4 > Is count_heartbeats broken](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Is.20count_heartbeats.20broken) I have not yet added an effective test. Could someone else please attempt that, either here or in a different PR? I'd prefer not to take that on. I did verify that it works as expected at [docs#FractionIdeal.quotientEquiv](https://leanprover-community.github.io/mathlib4_docs/find/?pattern=FractionalIdeal.quotientEquiv#doc). ESTIMATED CHANGES Modified Mathlib/Util/CountHeartbeats.lean 2025-09-12 03:08:49 bdbe20f chore: deprecate unused prereqs of the rw_search tactic (#29549) These probably should have been deprecated at the same time as #29196. ESTIMATED CHANGES Modified Mathlib.lean Renamed Mathlib/Order/Estimator.lean to Mathlib/Deprecated/Estimator.lean Renamed Mathlib/Data/MLList/BestFirst.lean to Mathlib/Deprecated/MLList/BestFirst.lean Modified MathlibTest/search/BestFirst.lean 2025-09-12 02:31:15 ee3f244 chore: fix some redirected issue/pull links (#29529) ESTIMATED CHANGES Modified Mathlib/Algebra/Category/Grp/Adjunctions.lean Modified Mathlib/Algebra/Category/Grp/Limits.lean Modified Mathlib/Algebra/Category/ModuleCat/Adjunctions.lean Modified Mathlib/Algebra/Category/ModuleCat/ChangeOfRings.lean Modified Mathlib/Algebra/Category/ModuleCat/FilteredColimits.lean Modified Mathlib/Algebra/Category/ModuleCat/Kernels.lean Modified Mathlib/Algebra/Category/ModuleCat/Monoidal/Basic.lean Modified Mathlib/Algebra/Category/ModuleCat/Subobject.lean Modified Mathlib/GroupTheory/Congruence/Basic.lean 2025-09-12 02:14:01 61d76e5 doc(references): add missing diamondshurman2005 and normalize (#29572) Add missing reference used in https://leanprover-community.github.io/mathlib4_docs/Mathlib/NumberTheory/ModularForms/DedekindEta.html Since I am here, also ran normalize command to fix format and order. ESTIMATED CHANGES Modified docs/references.bib 2025-09-11 21:36:29 0e84db2 chore(Algebra/Category): remove redundant `dsimp` invocations (#29288) ESTIMATED CHANGES Modified Mathlib/Algebra/Category/CoalgCat/ComonEquivalence.lean Modified Mathlib/Algebra/Category/ModuleCat/ChangeOfRings.lean Modified Mathlib/Algebra/Category/ModuleCat/Presheaf/Sheafify.lean Modified Mathlib/Algebra/Category/Ring/FinitePresentation.lean 2025-09-11 20:55:19 b09d6c0 chore: remove redundant `have`:s in `Data/Real/`, `Dynamics/` and `FieldTheory/` (#28998) ESTIMATED CHANGES Modified Mathlib/Data/Real/ConjExponents.lean Modified Mathlib/Data/Real/Embedding.lean Modified Mathlib/Data/Sym/Sym2.lean Modified Mathlib/Dynamics/TopologicalEntropy/CoverEntropy.lean Modified Mathlib/FieldTheory/AxGrothendieck.lean Modified Mathlib/FieldTheory/Galois/Infinite.lean Modified Mathlib/FieldTheory/IntermediateField/Algebraic.lean Modified Mathlib/FieldTheory/KummerPolynomial.lean Modified Mathlib/FieldTheory/Minpoly/IsIntegrallyClosed.lean Modified Mathlib/FieldTheory/PurelyInseparable/Basic.lean Modified Mathlib/FieldTheory/PurelyInseparable/PerfectClosure.lean Modified Mathlib/FieldTheory/PurelyInseparable/Tower.lean Modified Mathlib/FieldTheory/Separable.lean Modified Mathlib/FieldTheory/SeparableDegree.lean 2025-09-11 19:39:08 7bccc2a chore(Tactic/Widget/StringDiagram): update docs (#29541) string diagrams for bicategories are already given in #16852 ESTIMATED CHANGES Modified Mathlib/Tactic/Widget/StringDiagram.lean 2025-09-11 19:17:11 e5d0dd6 feat(Data/Real): representation of reals from `[0, 1]` in positional system (#26021) * Introduce `ofDigits {b : ℕ} (digits : ℕ → Fin b) : ℝ`, representing a real number of the form `0.d₀d₁d₂...` (where `dᵢ = digits i`) as an infinite sum. * Prove that this sum converges to a number in the interval `[0, 1]`. * Prove `ofDigits_close_of_common_prefix`: if the first `n` digits of two numbers are equal, then their difference is bounded by `b⁻ⁿ`. * Introduce `Real.digits`, which converts a real number into its sequence of digits. * Prove that `ofDigits (toDigits x b) = x`. Zulip threads: - [Zulip thread where this was proposed](https://leanprover.zulipchat.com/#narrow/stream/217875-Is-there-code-for-X.3F/topic/Base.20n.20expansion.20of.20real.20numbers.3F/near/502937293) - [#PR reviews > representation of reals in [0, 1] in positional system](https://leanprover.zulipchat.com/#narrow/channel/144837-PR-reviews/topic/representation.20of.20reals.20in.20.5B0.2C.201.5D.20in.20positional.20system/with/537704930) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/Real/OfDigits.lean + theorem Real.abs_ofDigits_sub_ofDigits_le + theorem Real.hasSum_ofDigitsTerm_digits + theorem Real.ofDigitsTerm_le + theorem Real.ofDigitsTerm_nonneg + theorem Real.ofDigits_digits + theorem Real.ofDigits_digits_sum_eq + theorem Real.ofDigits_eq_sum_add_ofDigits + theorem Real.ofDigits_le_one + theorem Real.ofDigits_nonneg + theorem Real.sum_ofDigitsTerm_digits_ge + theorem Real.sum_ofDigitsTerm_digits_le + theorem Real.summable_ofDigitsTerm Modified scripts/noshake.json 2025-09-11 17:39:45 b4ccfa4 chore(CategoryTheory/Sites): move `PreOneHypercover.Homotopy` in new file (#29553) In preparation for more material. The module docstring is written in anticipation of #29551. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Sites/Hypercover/Homotopy.lean + theorem CategoryTheory.GrothendieckTopology.OneHypercover.exists_nonempty_homotopy + theorem CategoryTheory.PreOneHypercover.Homotopy.mapMultiforkOfIsLimit_eq + structure CategoryTheory.PreOneHypercover.Homotopy + theorem CategoryTheory.PreOneHypercover.exists_nonempty_homotopy + theorem CategoryTheory.PreOneHypercover.sieve₀_cylinder + theorem CategoryTheory.PreOneHypercover.sieve₁'_cylinder + theorem CategoryTheory.PreOneHypercover.toPullback_cylinder Modified Mathlib/CategoryTheory/Sites/Hypercover/One.lean - theorem CategoryTheory.GrothendieckTopology.OneHypercover.exists_nonempty_homotopy - theorem CategoryTheory.PreOneHypercover.Homotopy.mapMultiforkOfIsLimit_eq - structure CategoryTheory.PreOneHypercover.Homotopy - theorem CategoryTheory.PreOneHypercover.exists_nonempty_homotopy - theorem CategoryTheory.PreOneHypercover.sieve₀_cylinder - theorem CategoryTheory.PreOneHypercover.sieve₁'_cylinder - theorem CategoryTheory.PreOneHypercover.toPullback_cylinder 2025-09-11 16:39:58 cf09064 feat(Logic/Function): some additional theorems for `Pi.map` analogous to those for `Prod.map` (#29528) Split from #29204. ESTIMATED CHANGES Modified Mathlib/Logic/Function/Basic.lean + theorem Pi.map_comp_map + theorem Pi.map_id' + theorem Pi.map_id Modified Mathlib/Logic/Function/Iterate.lean + theorem Pi.map_iterate 2025-09-11 16:39:56 226979a chore: add `@[grind =]` to `Set.mem_setOf_eq` (#29495) We can't literally write `@[grind =]`, because there is a lambda produced by the notation, but a custom `grind_pattern` does the job! ESTIMATED CHANGES Modified Mathlib/Data/Set/Operations.lean 2025-09-11 16:39:54 c924509 chore: minor golfing in Mathlib.Data.Subtype (#29490) ESTIMATED CHANGES Modified Mathlib/Data/Subtype.lean +/- theorem Subtype.coe_eq_iff 2025-09-11 15:40:35 e026378 feat(data): List.Chain' helper lemmas (#25812) Add two helpers lemmas to go from a List.Chain' hypothesis to a concrete predicate about two consecutive elements, one in the positive and one in the negative. ESTIMATED CHANGES Modified Mathlib/Data/List/Chain.lean + theorem List.chain'_iff_forall_getElem + theorem List.chain'_of_not 2025-09-11 14:47:50 cafcdcb feat: `{NonUnital}{Star}Subalgebra.map_topologicalClosure` (#29535) This adds the following 5 results for each of variant of `{NonUnital}{Star}Subalgebra` ```lean lemma map_topologicalClosure_le (hφ : Continuous φ) : map φ s.topologicalClosure ≤ (map φ s).topologicalClosure := image_closure_subset_closure_image hφ lemma topologicalClosure_map_le (hφ : IsClosedMap φ) : (map φ s).topologicalClosure ≤ map φ s.topologicalClosure := hφ.closure_image_subset _ lemma topologicalClosure_map (hφ : IsClosedMap φ) (hφ' : Continuous φ) : (map φ s).topologicalClosure = map φ s.topologicalClosure := SetLike.coe_injective <| hφ.closure_image_eq_of_continuous hφ' _ lemma topologicalClosure_adjoin_le_centralizer_centralizer (s : Set A) : (adjoin R s).topologicalClosure ≤ centralizer R (centralizer R s) := topologicalClosure_minimal (adjoin_le_centralizer_centralizer R s) (Set.isClosed_centralizer _) lemma elemental.le_centralizer_centralizer (x : A) : elemental R x ≤ centralizer R (centralizer R {x}) := topologicalClosure_adjoin_le_centralizer_centralizer R {x} ``` In the case of `Subalgebra`, we repurpose the existing `Subalgebra.topologicalClosure_map`, as this was the wrong name for the lemma anyway. Moreover, for those results we use the bundled `ContinuousAlgHom` for continuity. There's also some minor clean up of the explicitness of some variables in `topologicalClosure_minimal`. ESTIMATED CHANGES Modified Mathlib/Topology/Algebra/Algebra.lean + theorem Algebra.elemental.le_centralizer_centralizer + theorem Subalgebra.map_topologicalClosure_le + theorem Subalgebra.topologicalClosure_adjoin_le_centralizer_centralizer +/- theorem Subalgebra.topologicalClosure_map + theorem Subalgebra.topologicalClosure_map_le +/- theorem Subalgebra.topologicalClosure_minimal Modified Mathlib/Topology/Algebra/Group/Basic.lean + theorem Set.isClosed_centralizer Modified Mathlib/Topology/Algebra/NonUnitalAlgebra.lean + theorem NonUnitalAlgebra.elemental.le_centralizer_centralizer + theorem NonUnitalSubalgebra.map_topologicalClosure_le + theorem NonUnitalSubalgebra.topologicalClosure_adjoin_le_centralizer_centralizer + theorem NonUnitalSubalgebra.topologicalClosure_map + theorem NonUnitalSubalgebra.topologicalClosure_map_le +/- theorem NonUnitalSubalgebra.topologicalClosure_minimal Modified Mathlib/Topology/Algebra/NonUnitalStarAlgebra.lean + theorem NonUnitalStarAlgebra.elemental.le_centralizer_centralizer + theorem NonUnitalStarSubalgebra.map_topologicalClosure_le + theorem NonUnitalStarSubalgebra.topologicalClosure_adjoin_le_centralizer_centralizer + theorem NonUnitalStarSubalgebra.topologicalClosure_map + theorem NonUnitalStarSubalgebra.topologicalClosure_map_le Modified Mathlib/Topology/Algebra/StarSubalgebra.lean + theorem StarAlgebra.elemental.le_centralizer_centralizer + theorem StarSubalgebra.topologicalClosure_adjoin_le_centralizer_centralizer Modified Mathlib/Topology/ContinuousMap/StoneWeierstrass.lean 2025-09-11 12:42:50 6744585 feat(SimpleGraph): `IsHamiltonian` implies vertex type is `Fintype`/`Finite` (#29502) From zulip: https://leanprover.zulipchat.com/#narrow/channel/217875-Is-there-code-for-X.3F/topic/Hamiltonian.20paths.20define.20a.20bijection.20with.20Fin.20n/near/538529855 ESTIMATED CHANGES Modified Mathlib/Combinatorics/SimpleGraph/Hamiltonian.lean 2025-09-11 11:23:29 2df6ba0 feat(RepresentationTheory/FDRep): The forgetful functor from `FDRep R G` to `Rep R G` preserves finite (co)limits (#27134) For finite limits, we need them to exist in `FDRep R G`, so we need to assume that `R` is a Noetherian ring. - [x] depends on: #27132 - [ ] depends on: #27094 ESTIMATED CHANGES Modified Mathlib/RepresentationTheory/FDRep.lean 2025-09-11 10:26:39 2cf10f2 chore: deprime `induction` in all remaining places (#29542) The second commit removes the `Mathlib.Tactic.Cases` imports from all mathlib files (except `Mathlib.Tactic`) to prove that `induction'` has been completely removed from the main body of mathlib. ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Group/Action.lean Modified Mathlib/Combinatorics/Quiver/Path/Decomposition.lean Modified Mathlib/Data/Countable/Basic.lean Modified Mathlib/Data/Multiset/Antidiagonal.lean Modified Mathlib/Data/Multiset/Bind.lean Modified Mathlib/Data/Multiset/DershowitzManna.lean Modified Mathlib/Data/Multiset/Pi.lean +/- theorem Multiset.mem_pi Modified Mathlib/Data/Multiset/Powerset.lean Modified Mathlib/Data/Num/Lemmas.lean Modified Mathlib/Data/Num/Prime.lean Modified Mathlib/Data/Num/ZNum.lean Modified Mathlib/Data/PFunctor/Univariate/M.lean Modified Mathlib/Data/QPF/Univariate/Basic.lean Modified Mathlib/Data/Seq/Basic.lean Modified Mathlib/Data/Seq/Computation.lean Modified Mathlib/Data/Seq/Defs.lean Modified Mathlib/Data/Seq/Parallel.lean Modified Mathlib/Data/Set/Finite/Basic.lean Modified Mathlib/Data/Setoid/Partition.lean Modified Mathlib/Data/Stream/Init.lean +/- theorem Stream'.append_take_drop +/- theorem Stream'.cons_get_inits_core +/- theorem Stream'.get_inits +/- theorem Stream'.get_tails +/- theorem Stream'.get_unfolds_head_tail +/- theorem Stream'.take_theorem Modified Mathlib/Data/Sym/Sym2/Order.lean Modified Mathlib/Data/Vector/Basic.lean Modified Mathlib/Data/W/Basic.lean Modified Mathlib/Data/W/Cardinal.lean Modified Mathlib/Data/WSeq/Basic.lean Modified Mathlib/Data/WSeq/Defs.lean Modified Mathlib/Data/WSeq/Relation.lean Modified Mathlib/Tactic/Common.lean Modified scripts/noshake.json 2025-09-11 10:26:37 ceac268 chore(Submodule): instantiate `MulLeftMono` instead of ad hoc lemma (#29168) ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/Operations.lean - theorem Submodule.mul_le_mul - theorem Submodule.mul_le_mul_left - theorem Submodule.mul_le_mul_right Modified Mathlib/Algebra/Polynomial/CoeffMem.lean Modified Mathlib/RingTheory/DedekindDomain/Different.lean Modified Mathlib/RingTheory/DedekindDomain/Factorization.lean Modified Mathlib/RingTheory/DedekindDomain/PID.lean Modified Mathlib/RingTheory/Finiteness/Subalgebra.lean Modified Mathlib/RingTheory/FractionalIdeal/Basic.lean - theorem FractionalIdeal.add_le_add_left - theorem FractionalIdeal.mul_le_mul_left Modified Mathlib/RingTheory/Spectrum/Prime/Basic.lean 2025-09-11 10:11:16 24de9a7 chore(CategoryTheory/Sites): move hypercover files in a new folder (#29546) In preparation for more material. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/AlgebraicGeometry/GluingOneHypercover.lean Modified Mathlib/CategoryTheory/Sites/Continuous.lean Renamed Mathlib/CategoryTheory/Sites/IsSheafOneHypercover.lean to Mathlib/CategoryTheory/Sites/Hypercover/IsSheaf.lean Renamed Mathlib/CategoryTheory/Sites/OneHypercover.lean to Mathlib/CategoryTheory/Sites/Hypercover/One.lean Renamed Mathlib/CategoryTheory/Sites/ZeroHypercover.lean to Mathlib/CategoryTheory/Sites/Hypercover/Zero.lean 2025-09-11 09:39:41 5b812b0 chore(MeasureTheory): remove unnecessary argument in `CountableOrCountablyGenerated` (#29545) This PR changes the definition of `CountableOrCountablyGenerated` to ```lean class CountableOrCountablyGenerated (α β : Type*) [MeasurableSpace β] : Prop where countableOrCountablyGenerated : Countable α ∨ MeasurableSpace.CountablyGenerated β ``` That is, it removes a `[MeasurableSpace α]` argument from the definition. That argument is not necessary to state the property and I saw an example in which Lean could not infer it. ESTIMATED CHANGES Modified Mathlib/MeasureTheory/MeasurableSpace/CountablyGenerated.lean 2025-09-11 08:59:54 e9d357f chore: rename Int.abs_sign_of_nonzero (#29296) See discussion at . ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Group/Unbundled/Int.lean + theorem Int.abs_sign_of_ne_zero - theorem Int.abs_sign_of_nonzero 2025-09-11 08:34:31 b26156e feat(RingTheory): NNRat is ring of fractions of Nat (#29388) Extract from the new revision of #29275. ESTIMATED CHANGES Modified Mathlib/RingTheory/Localization/FractionRing.lean 2025-09-11 07:52:40 0b0e1dd feat: the topology on WithTop is second countable (#29466) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Data/Fintype/WithTopBot.lean Modified Mathlib/Order/Interval/Set/WithBotTop.lean + theorem WithBot.Icc_coe + theorem WithBot.Ici_coe + theorem WithBot.Ico_coe + theorem WithBot.Iic_coe + theorem WithBot.Iio_coe + theorem WithBot.Ioc_coe + theorem WithBot.Ioi_coe + theorem WithBot.Ioo_coe + theorem WithTop.Icc_coe + theorem WithTop.Ici_coe + theorem WithTop.Ico_coe + theorem WithTop.Iic_coe + theorem WithTop.Iio_coe + theorem WithTop.Ioc_coe + theorem WithTop.Ioi_coe + theorem WithTop.Ioo_coe Modified Mathlib/Topology/Bases.lean + theorem TopologicalSpace.IsTopologicalBasis.exists_countable + theorem TopologicalSpace.IsTopologicalBasis.exists_countable_biUnion_of_isOpen + theorem TopologicalSpace.exists_countable_of_generateFrom Modified Mathlib/Topology/Order/Basic.lean + theorem exists_countable_generateFrom_Ioi_Iio + theorem isOpen_Iio' + theorem isOpen_Ioi' + theorem isTopologicalBasis_biInter_Ioi_Iio_of_generateFrom Added Mathlib/Topology/Order/WithTop.lean 2025-09-11 07:19:35 91e4c39 chore: fix two sets of induction recursor names (#29537) Both in `Algebra.Polynomial`. We also deprime `induction` in the same files. These were split off from #29291. ESTIMATED CHANGES Modified Mathlib/Algebra/Polynomial/EraseLead.lean +/- theorem Polynomial.induction_with_natDegree_le Modified Mathlib/Algebra/Polynomial/Laurent.lean +/- theorem LaurentPolynomial.induction_on_mul_T 2025-09-11 07:19:33 212a45c chore: deprime `induction` in assorted files (#29291) * The rest of `Algebra`, **except** three instances in `Algebra.Polynomial.EraseLead` and `Algebra.Polynomial.Laurent` where induction branch names have to be fixed as well (this is done in #29537) * The rest of `RingTheory` * Everything outside the `Algebra, Data, RingTheory` folders (i.e. those instances that appeared after my "first round" of depriming) ESTIMATED CHANGES Modified Archive/Kuratowski.lean Modified Mathlib/Algebra/Group/ForwardDiff.lean Modified Mathlib/Algebra/Polynomial/BigOperators.lean Modified Mathlib/Algebra/Polynomial/Degree/Lemmas.lean Modified Mathlib/Algebra/Polynomial/Derivative.lean Modified Mathlib/Algebra/Polynomial/Eval/Defs.lean Modified Mathlib/Algebra/Polynomial/HasseDeriv.lean Modified Mathlib/Algebra/Polynomial/Module/Basic.lean Modified Mathlib/Algebra/Polynomial/Reverse.lean +/- theorem Polynomial.reflect_mul_induction Modified Mathlib/Analysis/Complex/Exponential.lean Modified Mathlib/Analysis/Real/Cardinality.lean Modified Mathlib/Analysis/Real/Pi/Wallis.lean Modified Mathlib/Combinatorics/Enumerative/Stirling.lean Modified Mathlib/Combinatorics/Quiver/Path/Decomposition.lean Modified Mathlib/Combinatorics/SimpleGraph/CompleteMultipartite.lean Modified Mathlib/Dynamics/Ergodic/MeasurePreserving.lean Modified Mathlib/Geometry/Manifold/ContMDiff/Basic.lean Modified Mathlib/LinearAlgebra/Vandermonde.lean Modified Mathlib/RingTheory/MvPolynomial/Symmetric/FundamentalTheorem.lean Modified Mathlib/RingTheory/Nilpotent/Basic.lean Modified Mathlib/RingTheory/Norm/Transitivity.lean Modified Mathlib/RingTheory/OreLocalization/Basic.lean Modified Mathlib/RingTheory/OreLocalization/NonZeroDivisors.lean Modified Mathlib/RingTheory/OreLocalization/Ring.lean Modified Mathlib/Topology/Algebra/InfiniteSum/TsumUniformlyOn.lean Modified Mathlib/Topology/Order/HullKernel.lean Modified MathlibTest/propose.lean 2025-09-11 06:33:17 c2f7a68 chore: deprime `induction` in `Data.*Fin*` (#29124) ESTIMATED CHANGES Modified Mathlib/Data/DFinsupp/Defs.lean Modified Mathlib/Data/DFinsupp/WellFounded.lean Modified Mathlib/Data/Fin/Tuple/Basic.lean Modified Mathlib/Data/Fin/Tuple/NatAntidiagonal.lean Modified Mathlib/Data/Finmap.lean Modified Mathlib/Data/Finset/Fold.lean Modified Mathlib/Data/Finset/Image.lean Modified Mathlib/Data/Finset/Lattice/Fold.lean Modified Mathlib/Data/Finset/Lattice/Lemmas.lean Modified Mathlib/Data/Finset/Lattice/Pi.lean Modified Mathlib/Data/Finset/Max.lean Modified Mathlib/Data/Finset/NAry.lean Modified Mathlib/Data/Finset/NoncommProd.lean Modified Mathlib/Data/Finset/PiInduction.lean Modified Mathlib/Data/Finset/Sym.lean Modified Mathlib/Data/Finsupp/BigOperators.lean Modified Mathlib/Data/Fintype/Basic.lean Modified Mathlib/Data/Fintype/Card.lean Modified Mathlib/Data/Fintype/EquivFin.lean Modified Mathlib/Data/Fintype/Fin.lean Modified Mathlib/Data/Fintype/Lattice.lean Modified Mathlib/Data/Fintype/Quotient.lean Modified Mathlib/Data/Fintype/Sum.lean 2025-09-11 06:33:15 cdc7e37 chore: deprime `induction` in `Data.{*Nat, Int, *Real}` (#29123) But not `Data.Num` – its material looks more suitable for full deprecation. See [Zulip](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Deprecating.20.60Num.60/with/536890373). ESTIMATED CHANGES Modified Mathlib/Data/ENNReal/BigOperators.lean Modified Mathlib/Data/ENNReal/Inv.lean Modified Mathlib/Data/ENat/Basic.lean Modified Mathlib/Data/ENat/BigOperators.lean Modified Mathlib/Data/Int/ModEq.lean Modified Mathlib/Data/Nat/BitIndices.lean Modified Mathlib/Data/Nat/ChineseRemainder.lean Modified Mathlib/Data/Nat/Choose/Basic.lean Modified Mathlib/Data/Nat/Choose/Central.lean Modified Mathlib/Data/Nat/Choose/Factorization.lean Modified Mathlib/Data/Nat/Choose/Multinomial.lean Modified Mathlib/Data/Nat/Digits/Defs.lean Modified Mathlib/Data/Nat/Digits/Lemmas.lean Modified Mathlib/Data/Nat/Factorial/BigOperators.lean Modified Mathlib/Data/Nat/Factorial/Cast.lean Modified Mathlib/Data/Nat/Factorization/Basic.lean Modified Mathlib/Data/Nat/Factorization/Defs.lean Modified Mathlib/Data/Nat/Factorization/Induction.lean Modified Mathlib/Data/Nat/Fib/Basic.lean Modified Mathlib/Data/Nat/Multiplicity.lean Modified Mathlib/Data/Nat/Nth.lean Modified Mathlib/Data/Nat/PrimeFin.lean Modified Mathlib/Data/Nat/Totient.lean Modified Mathlib/Data/Real/Basic.lean 2025-09-11 04:25:18 4346854 chore: update a comment about a fixed bug (#29520) ESTIMATED CHANGES Modified Mathlib/Data/Option/Basic.lean 2025-09-11 04:25:16 3761bc3 chore(Topology/Algebra/Module/StrongDual): remove `strongDualPairing` and move contents (#29320) This PR deletes `strongDualPairing`, which is a duplicate of `topDualPairing`. The other contents of the file are moved to `Mathlib.Analysis.LocallyConvex.Polar`, because they are specializations of the general theory of polars, and they do not actually use the strong topology on the dual. ESTIMATED CHANGES Modified Mathlib/Analysis/Fourier/RiemannLebesgueLemma.lean Modified Mathlib/Analysis/LocallyConvex/Polar.lean + theorem StrongDual.dualPairing_separatingLeft + theorem StrongDual.mem_polarSubmodule + theorem StrongDual.mem_polar_iff + theorem StrongDual.mem_polar_singleton + def StrongDual.polar + def StrongDual.polarSubmodule + theorem StrongDual.polarSubmodule_eq_polar + theorem StrongDual.polarSubmodule_eq_setOf + theorem StrongDual.polar_empty + theorem StrongDual.polar_nonempty + theorem StrongDual.polar_singleton + theorem StrongDual.polar_univ + theorem StrongDual.polar_zero + theorem StrongDual.zero_mem_polar Modified Mathlib/Analysis/Normed/Module/Dual.lean Modified Mathlib/Topology/Algebra/Module/LinearMap.lean + def topDualPairing + theorem topDualPairing_apply Modified Mathlib/Topology/Algebra/Module/StrongDual.lean - theorem StrongDual.dualPairing_apply - theorem StrongDual.dualPairing_separatingLeft - theorem StrongDual.mem_polarSubmodule - theorem StrongDual.mem_polar_iff - theorem StrongDual.mem_polar_singleton - def StrongDual.polar - def StrongDual.polarSubmodule - theorem StrongDual.polarSubmodule_eq_polar - theorem StrongDual.polarSubmodule_eq_setOf - theorem StrongDual.polar_empty - theorem StrongDual.polar_nonempty - theorem StrongDual.polar_singleton - theorem StrongDual.polar_univ - theorem StrongDual.polar_zero - theorem StrongDual.zero_mem_polar - def strongDualPairing Modified Mathlib/Topology/Algebra/Module/WeakDual.lean - def topDualPairing - theorem topDualPairing_apply 2025-09-11 03:24:29 7ccfe95 chore: restore tauto test after issues fixed (#29531) ESTIMATED CHANGES Modified MathlibTest/Tauto.lean 2025-09-11 03:24:28 52111d5 chore: correct some links to point to mathlib3 (#29524) ESTIMATED CHANGES Modified Mathlib/Topology/FiberBundle/Basic.lean 2025-09-11 03:24:26 b5c83db chore: remove unnecessary simp +singlePass (#29523) Clean up a comment and an unnecessary +singlePass. Apparently no longer slow. ESTIMATED CHANGES Modified Mathlib/Topology/MetricSpace/GromovHausdorff.lean 2025-09-11 03:24:24 42b0bcd chore: update some links (#29522) ESTIMATED CHANGES Modified Mathlib/Geometry/Manifold/PartitionOfUnity.lean Modified Mathlib/Geometry/RingedSpace/PresheafedSpace.lean Modified Mathlib/Geometry/RingedSpace/SheafedSpace.lean Modified Mathlib/Logic/Small/Defs.lean Modified Mathlib/Topology/Separation/Basic.lean 2025-09-11 03:24:22 1cd0521 chore: convert all linkifiers to links (#29521) This helps disambiguate, and also opens the possibility of a script which checks such links to see if the issue has been closed, for follow-up. (Prototype at #29527.) We've done this before at https://github.com/leanprover-community/mathlib4/pull/11036. ESTIMATED CHANGES Modified Cache/IO.lean Modified Counterexamples/AharoniKorman.lean Modified Mathlib/Algebra/Homology/ExactSequence.lean Modified Mathlib/Algebra/Homology/HomologySequence.lean Modified Mathlib/Algebra/Homology/HomotopyCategory/DegreewiseSplit.lean Modified Mathlib/Algebra/Homology/HomotopyCategory/MappingCone.lean Modified Mathlib/Algebra/Homology/HomotopyCategory/ShortExact.lean Modified Mathlib/Algebra/Homology/HomotopyCategory/Triangulated.lean Modified Mathlib/Algebra/Lie/Weights/Chain.lean Modified Mathlib/Algebra/Lie/Weights/RootSystem.lean Modified Mathlib/Algebra/Order/BigOperators/Ring/Finset.lean Modified Mathlib/Algebra/Order/GroupWithZero/Canonical.lean Modified Mathlib/Algebra/SkewMonoidAlgebra/Basic.lean Modified Mathlib/AlgebraicGeometry/EllipticCurve/ModelsWithJ.lean Modified Mathlib/AlgebraicGeometry/EllipticCurve/Weierstrass.lean Modified Mathlib/Analysis/Calculus/FDeriv/Mul.lean Modified Mathlib/Analysis/InnerProductSpace/Harmonic/Analytic.lean Modified Mathlib/Analysis/LocallyConvex/WeakOperatorTopology.lean Modified Mathlib/Analysis/RCLike/Basic.lean Modified Mathlib/CategoryTheory/ComposableArrows.lean Modified Mathlib/CategoryTheory/Monoidal/DayConvolution/Closed.lean Modified Mathlib/LinearAlgebra/RootSystem/Finite/Lemmas.lean Modified Mathlib/LinearAlgebra/RootSystem/GeckConstruction/Lemmas.lean Modified Mathlib/Order/Atoms.lean Modified Mathlib/RepresentationTheory/Rep.lean Modified Mathlib/RingTheory/DedekindDomain/Ideal/Basic.lean Modified Mathlib/Tactic/DepRewrite.lean Modified Mathlib/Tactic/Eqns.lean Modified Mathlib/Tactic/GRewrite/Elab.lean Modified Mathlib/Topology/Algebra/LinearTopology.lean Modified Mathlib/Topology/Algebra/Valued/WithZeroMulInt.lean Modified Mathlib/Topology/Sheaves/CommRingCat.lean Modified Mathlib/Topology/UniformSpace/Dini.lean Modified MathlibTest/ApplyAt.lean Modified MathlibTest/CalcQuestionMark.lean Modified MathlibTest/TermCongr.lean Modified MathlibTest/push_neg.lean Modified MathlibTest/ring.lean Modified scripts/zulip_emoji_reactions.py 2025-09-11 03:10:53 3267bd7 chore: remove note about non-instance (#29525) The linked issue has been closed, let's see if this is okay now. ESTIMATED CHANGES Modified Mathlib/RingTheory/WittVector/DiscreteValuationRing.lean - theorem WittVector.isDiscreteValuationRing 2025-09-11 00:51:56 9fe6658 fix(TacticAnalysis): include more `CommandElabM` state calling `runTactic` (#29505) This PR fixes a few "unknown universe `v`" errors when running the tactic analysis framework on Mathlib. We need to move more state from the CommandElabM to the TermElabM that ends up running tactic code. Since we do essentially the same in a few places, bundle up all the state manipulation into a new function `runTacticCode`. ESTIMATED CHANGES Modified Mathlib/Lean/ContextInfo.lean + def Lean.Elab.ContextInfo.runTacticCode Modified Mathlib/Tactic/TacticAnalysis.lean Modified Mathlib/Tactic/TacticAnalysis/Declarations.lean Modified MathlibTest/TacticAnalysis.lean 2025-09-11 00:51:54 c2a2f49 chore: deprime `induction` in `Data.List` (for real) (#29313) Including removing the `Tactic.Cases` import in `Data.List.Indexes`. ESTIMATED CHANGES Modified Mathlib/Data/List/Chain.lean Modified Mathlib/Data/List/Cycle.lean Modified Mathlib/Data/List/Destutter.lean Modified Mathlib/Data/List/DropRight.lean Modified Mathlib/Data/List/Duplicate.lean Modified Mathlib/Data/List/Indexes.lean Modified Mathlib/Data/List/Infix.lean Modified Mathlib/Data/List/Lemmas.lean Modified Mathlib/Data/List/Lex.lean Modified Mathlib/Data/List/MinMax.lean Modified Mathlib/Data/List/NodupEquivFin.lean Modified Mathlib/Data/List/OfFn.lean Modified Mathlib/Data/List/Permutation.lean Modified Mathlib/Data/List/Pi.lean Modified Mathlib/Data/List/Prime.lean Modified Mathlib/Data/List/ProdSigma.lean Modified Mathlib/Data/List/Range.lean Modified Mathlib/Data/List/ReduceOption.lean Modified Mathlib/Data/List/Rotate.lean Modified Mathlib/Data/List/Sigma.lean Modified Mathlib/Data/List/SplitOn.lean Modified Mathlib/Data/List/Sublists.lean +/- theorem List.revzip_sublists' +/- theorem List.revzip_sublists Modified Mathlib/Data/List/Zip.lean 2025-09-11 00:51:52 21b3282 chore: deprime `induction` in `Algebra` except `/Polynomial` (#29286) In `Algebra.Order.Ring.WithTop` I also replace all uses of the overpowerful `induction` with `cases`. ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/Subalgebra/Lattice.lean Modified Mathlib/Algebra/BigOperators/Group/Finset/Basic.lean Modified Mathlib/Algebra/BigOperators/Group/List/Lemmas.lean Modified Mathlib/Algebra/FreeMonoid/Basic.lean Modified Mathlib/Algebra/Group/Conj.lean Modified Mathlib/Algebra/Group/ForwardDiff.lean Modified Mathlib/Algebra/Group/Pointwise/Finset/Basic.lean Modified Mathlib/Algebra/Group/Pointwise/Set/BigOperators.lean Modified Mathlib/Algebra/Group/Pointwise/Set/Finite.lean Modified Mathlib/Algebra/Group/Pointwise/Set/ListOfFn.lean Modified Mathlib/Algebra/Lie/Solvable.lean Modified Mathlib/Algebra/Module/BigOperators.lean Modified Mathlib/Algebra/Module/LocalizedModule/Basic.lean Modified Mathlib/Algebra/Module/PID.lean Modified Mathlib/Algebra/MvPolynomial/Degrees.lean Modified Mathlib/Algebra/MvPolynomial/Equiv.lean Modified Mathlib/Algebra/Order/Antidiag/Pi.lean Modified Mathlib/Algebra/Order/BigOperators/Group/Finset.lean Modified Mathlib/Algebra/Order/BigOperators/Group/List.lean Modified Mathlib/Algebra/Order/CauSeq/BigOperators.lean Modified Mathlib/Algebra/Order/Group/Finset.lean Modified Mathlib/Algebra/Order/Group/Multiset.lean Modified Mathlib/Algebra/Order/Ring/WithTop.lean Modified Mathlib/Algebra/Pointwise/Stabilizer.lean Modified Mathlib/Algebra/PresentedMonoid/Basic.lean Modified Mathlib/Algebra/Ring/Subring/Basic.lean Modified Mathlib/Algebra/Tropical/BigOperators.lean 2025-09-11 00:51:51 6e38edb chore: deprime `induction` in more of `RingTheory` (#29285) From `LocalRing` upwards. Continuation from #29127. ESTIMATED CHANGES Modified Mathlib/RingTheory/AdicCompletion/LocalRing.lean Modified Mathlib/RingTheory/DedekindDomain/Factorization.lean Modified Mathlib/RingTheory/DedekindDomain/Ideal/Basic.lean Modified Mathlib/RingTheory/Derivation/Basic.lean Modified Mathlib/RingTheory/DiscreteValuationRing/TFAE.lean Modified Mathlib/RingTheory/Filtration.lean Modified Mathlib/RingTheory/FiniteLength.lean Modified Mathlib/RingTheory/FractionalIdeal/Operations.lean Modified Mathlib/RingTheory/GradedAlgebra/HomogeneousLocalization.lean Modified Mathlib/RingTheory/HahnSeries/Multiplication.lean Modified Mathlib/RingTheory/HahnSeries/Summable.lean Modified Mathlib/RingTheory/Henselian.lean Modified Mathlib/RingTheory/HopkinsLevitzki.lean Modified Mathlib/RingTheory/Ideal/Basic.lean Modified Mathlib/RingTheory/Ideal/Maps.lean Modified Mathlib/RingTheory/Ideal/Norm/AbsNorm.lean Modified Mathlib/RingTheory/Ideal/Operations.lean Modified Mathlib/RingTheory/Ideal/Quotient/Nilpotent.lean Modified Mathlib/RingTheory/Idempotents.lean Modified Mathlib/RingTheory/Jacobson/Ring.lean Modified Mathlib/RingTheory/Kaehler/Basic.lean Modified Mathlib/RingTheory/LaurentSeries.lean Modified Mathlib/RingTheory/LittleWedderburn.lean Modified Mathlib/RingTheory/LocalRing/Module.lean Modified Mathlib/RingTheory/Multiplicity.lean Modified Mathlib/RingTheory/Perfection.lean Modified Mathlib/RingTheory/Prime.lean Modified Mathlib/RingTheory/ReesAlgebra.lean 2025-09-11 00:00:11 7b1146a chore(Data/Finset): deprecate `range_succ`; rename `range_subset` to `range_subset_range` (#29509) This PR contains the non-`grind` changes split off from #29426: * `Finset.range_succ` is deprecated in favour of `Finset.range_add_one`: we prefer writing `n + 1` over `Nat.succ n`. See also the [Zulip thread](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/Naming.20convention.3A.20succ.20vs.2E.20add_one/near/537119004) where no one objects to preferring `n + 1` over `n.succ`. (Even if we have a tiny amount of discussion about enforcing the preference with linter.) * `Finset.range_subset` is renamed to `Finset.range_subset_range`, to make space for a new `Finset.range_subset : range n ⊆ s ↔ ∀ x, x < n → x ∈ s` This PR adds two definitions: `Finset.range_subset` and `Finset.subset_range` are `Iff` lemmas for showing containment of `range`. Moves: - Finset.range_subset -> Finset.range_subset_range ESTIMATED CHANGES Modified Archive/Imo/Imo1982Q3.lean Modified Mathlib/Algebra/BigOperators/Group/Finset/Basic.lean Modified Mathlib/Algebra/BigOperators/Intervals.lean Modified Mathlib/Algebra/Polynomial/Derivative.lean Modified Mathlib/Analysis/Complex/Exponential.lean Modified Mathlib/Analysis/Distribution/SchwartzSpace.lean Modified Mathlib/Analysis/SpecialFunctions/Gamma/BohrMollerup.lean Modified Mathlib/Combinatorics/Additive/AP/Three/Behrend.lean Modified Mathlib/Combinatorics/SetFamily/AhlswedeZhang.lean Modified Mathlib/Data/Finset/Image.lean Modified Mathlib/Data/Finset/NatDivisors.lean Modified Mathlib/Data/Finset/Range.lean + theorem Finset.nonempty_range_add_one - theorem Finset.nonempty_range_succ +/- theorem Finset.range_mono +/- theorem Finset.range_nontrivial +/- theorem Finset.range_subset + theorem Finset.range_subset_range +/- theorem Finset.range_succ + theorem Finset.subset_range Modified Mathlib/Data/Nat/Factorization/Basic.lean Modified Mathlib/MeasureTheory/Function/SimpleFunc.lean Modified Mathlib/MeasureTheory/Order/Lattice.lean Modified Mathlib/NumberTheory/Bertrand.lean Modified Mathlib/NumberTheory/Padics/MahlerBasis.lean Modified Mathlib/NumberTheory/Primorial.lean Modified Mathlib/NumberTheory/SmoothNumbers.lean Modified Mathlib/Order/Interval/Set/Union.lean Modified Mathlib/Order/PartialSups.lean Modified Mathlib/Probability/Martingale/OptionalStopping.lean Modified Mathlib/Probability/Martingale/Upcrossing.lean Modified Mathlib/RingTheory/DividedPowers/SubDPIdeal.lean Modified Mathlib/RingTheory/WittVector/MulCoeff.lean Modified Mathlib/RingTheory/WittVector/WittPolynomial.lean Modified Mathlib/Tactic/NormNum/BigOperators.lean Modified Mathlib/Topology/Instances/ENNReal/Lemmas.lean 2025-09-10 21:40:57 5197d27 doc: capitalize hermitian (#29515) Named after Charles Hermite, the adjective "Hermitian" is usually capitalized in English. ESTIMATED CHANGES Modified Mathlib/Analysis/InnerProductSpace/Defs.lean Modified Mathlib/LinearAlgebra/Matrix/Hermitian.lean Modified Mathlib/LinearAlgebra/Matrix/PosDef.lean Modified Mathlib/LinearAlgebra/Matrix/Spectrum.lean 2025-09-10 21:40:56 5708c2a chore: deprecate duplicates of Subtype.ext and ext_iff (#29489) ESTIMATED CHANGES Modified Mathlib/Algebra/Category/Grp/Images.lean Modified Mathlib/Algebra/Category/Grp/Kernels.lean Modified Mathlib/Algebra/Category/ModuleCat/Images.lean Modified Mathlib/Algebra/Category/ModuleCat/Kernels.lean Modified Mathlib/Algebra/Lie/Submodule.lean Modified Mathlib/Algebra/Module/Submodule/Defs.lean Modified Mathlib/Algebra/Module/Submodule/Ker.lean Modified Mathlib/Algebra/Module/Submodule/Map.lean Modified Mathlib/Algebra/Module/Submodule/Range.lean Modified Mathlib/Algebra/Module/ZLattice/Basic.lean Modified Mathlib/Analysis/Calculus/FDeriv/Analytic.lean Modified Mathlib/CategoryTheory/Elements.lean Modified Mathlib/CategoryTheory/Sites/Sieves.lean Modified Mathlib/Combinatorics/Configuration.lean Modified Mathlib/Combinatorics/SimpleGraph/Connectivity/Connected.lean Modified Mathlib/Combinatorics/SimpleGraph/Regularity/Increment.lean Modified Mathlib/Data/Finset/Pairwise.lean Modified Mathlib/Data/Finset/Range.lean Modified Mathlib/Data/Set/Inclusion.lean Modified Mathlib/Data/SetLike/Basic.lean Modified Mathlib/Data/Setoid/Basic.lean Modified Mathlib/Data/Setoid/Partition.lean Modified Mathlib/Data/Subtype.lean Modified Mathlib/GroupTheory/Congruence/Hom.lean Modified Mathlib/GroupTheory/CoprodI.lean Modified Mathlib/GroupTheory/Perm/Cycle/Type.lean Modified Mathlib/GroupTheory/QuotientGroup/Basic.lean Modified Mathlib/GroupTheory/SpecificGroups/Cyclic.lean Modified Mathlib/LinearAlgebra/Dimension/Basic.lean Modified Mathlib/LinearAlgebra/Quotient/Basic.lean Modified Mathlib/LinearAlgebra/RootSystem/OfBilinear.lean Modified Mathlib/LinearAlgebra/UnitaryGroup.lean Modified Mathlib/Logic/Denumerable.lean Modified Mathlib/Logic/Equiv/Basic.lean Modified Mathlib/NumberTheory/NumberField/CanonicalEmbedding/FundamentalCone.lean Modified Mathlib/NumberTheory/NumberField/Discriminant/Basic.lean Modified Mathlib/NumberTheory/NumberField/Units/DirichletTheorem.lean Modified Mathlib/NumberTheory/Padics/Hensel.lean Modified Mathlib/NumberTheory/Padics/PadicIntegers.lean Modified Mathlib/SetTheory/Ordinal/Basic.lean Modified Mathlib/Topology/Algebra/Module/LinearMap.lean Modified Mathlib/Topology/MetricSpace/Contracting.lean Modified Mathlib/Topology/UniformSpace/Completion.lean 2025-09-10 21:40:54 427b425 doc: capitalize galois (#29244) ESTIMATED CHANGES Modified Mathlib/AlgebraicGeometry/IdealSheaf/Basic.lean Modified Mathlib/AlgebraicGeometry/IdealSheaf/Functorial.lean Modified Mathlib/AlgebraicGeometry/ProjectiveSpectrum/Topology.lean Modified Mathlib/CategoryTheory/Category/GaloisConnection.lean Modified Mathlib/CategoryTheory/Sites/Pretopology.lean Modified Mathlib/CategoryTheory/Sites/Sieves.lean Modified Mathlib/Data/Int/Log.lean Modified Mathlib/FieldTheory/KummerExtension.lean Modified Mathlib/LinearAlgebra/AffineSpace/AffineSubspace/Basic.lean Modified Mathlib/MeasureTheory/PiSystem.lean Modified Mathlib/NumberTheory/NumberField/InfinitePlace/Ramification.lean Modified Mathlib/RingTheory/GradedAlgebra/Homogeneous/Ideal.lean Modified Mathlib/RingTheory/Invariant/Basic.lean Modified Mathlib/RingTheory/Invariant/Defs.lean Modified Mathlib/RingTheory/Spectrum/Prime/Basic.lean Modified Mathlib/Topology/Sets/Closeds.lean Modified Mathlib/Topology/Sets/Opens.lean 2025-09-10 21:28:06 15c5c9c doc: add Hellinger-Toeplitz to 1000.yaml (#29487) Add a reference to Hellinger-Toeplitz to the list of 1000 theorems. The theorem was implemented in https://github.com/leanprover-community/mathlib3/commit/611dccaffa155035a2bbb029a25a2033c02e8f25 ESTIMATED CHANGES Modified docs/1000.yaml 2025-09-10 17:34:00 79f860c feat: compute the essential image of `mapMon`/`mapGrp` (#29159) From Toric ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Monoidal/Grp_.lean - def Grp_Class.tensorObj.CategoryTheory.Functor.FullyFaithful.grp_Class + theorem Grp_Class.tensorObj.CategoryTheory.Functor.essImage_mapGrp Modified Mathlib/CategoryTheory/Monoidal/Mon_.lean + theorem CategoryTheory.Functor.essImage_mapMon 2025-09-10 16:44:38 16adc44 chore: swap `mul_left_mono` and `mul_right_mono` (#29396) `mul_left_mono` currently states monotonicity of *left* multiplication, ie *right* monotonicity of multiplication. There's ambiguity on which part of the sentence above should be followed in the name, but `_mono`/`_strictMono` lemmas are in large majority following the rule that it is "left/right monotonicity" that should be followed. See eg `pow_left_mono`, `zsmul_left_mono`. Unfortunately this means that the typeclass `MulLeftMono` corresponds to `mul_right_mono`. This could be fixed here or in a future PR. ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Monoid/Unbundled/Basic.lean +/- theorem mul_left_mono +/- theorem mul_left_strictMono +/- theorem mul_right_mono +/- theorem mul_right_strictMono Modified Mathlib/Algebra/Order/Monoid/Unbundled/WithTop.lean + theorem WithTop.coe_ne_one Modified Mathlib/Algebra/Order/Ring/WithTop.lean Modified Mathlib/Data/ENNReal/Basic.lean +/- theorem ENNReal.coe_ne_one +/- theorem ENNReal.coe_ne_zero Modified Mathlib/Data/ENNReal/Operations.lean +/- theorem ENNReal.mul_left_strictMono + theorem ENNReal.mul_right_strictMono Modified Mathlib/Data/ENat/Basic.lean +/- theorem ENat.mul_left_strictMono +/- theorem ENat.mul_right_strictMono Modified Mathlib/MeasureTheory/OuterMeasure/Operations.lean Modified Mathlib/SetTheory/Ordinal/Arithmetic.lean Modified Mathlib/Topology/EMetricSpace/Lipschitz.lean Modified Mathlib/Topology/MetricSpace/Antilipschitz.lean Modified Mathlib/Topology/MetricSpace/Holder.lean 2025-09-10 16:44:36 2a3c5ef chore(CategoryTheory): remove redundant `have`:s in `CategoryTheory/` (#28994) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Abelian/Injective/Resolution.lean Modified Mathlib/CategoryTheory/Abelian/Projective/Resolution.lean Modified Mathlib/CategoryTheory/FiberedCategory/Cocartesian.lean Modified Mathlib/CategoryTheory/Galois/Decomposition.lean Modified Mathlib/CategoryTheory/Galois/Full.lean Modified Mathlib/CategoryTheory/GradedObject/Associator.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Products.lean Modified Mathlib/CategoryTheory/Limits/Shapes/SingleObj.lean Modified Mathlib/CategoryTheory/Limits/VanKampen.lean Modified Mathlib/CategoryTheory/Localization/CalculusOfFractions/OfAdjunction.lean Modified Mathlib/CategoryTheory/Localization/SmallHom.lean Modified Mathlib/CategoryTheory/Preadditive/Injective/Preserves.lean Modified Mathlib/CategoryTheory/Preadditive/Projective/Preserves.lean Modified Mathlib/CategoryTheory/Yoneda.lean 2025-09-10 15:46:31 bc7eebf chore(*): replace `simp? says` with `suffices`/`have` (#29441) Go through occurrences of `simp? says` and, where the goal is not too long, replace them with `suffices ... := by simpa`. Similarly for hypotheses, replace `simp? at H says ...` with `replace H : ... := by simpa`. I think this improves maintainability by declaring which shape we want to end up in, instead of the rewrites we want to use to achieve that shape. Zulip thread: https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/noisy.20simp.20says.20in.20CI ESTIMATED CHANGES Modified Mathlib/Algebra/Category/MonCat/FilteredColimits.lean Modified Mathlib/AlgebraicTopology/FundamentalGroupoid/Basic.lean Modified Mathlib/Analysis/Calculus/IteratedDeriv/FaaDiBruno.lean Modified Mathlib/Analysis/Convex/Function.lean Modified Mathlib/CategoryTheory/Abelian/Transfer.lean Modified Mathlib/CategoryTheory/GradedObject.lean Modified Mathlib/CategoryTheory/Limits/Shapes/BinaryProducts.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Images.lean Modified Mathlib/CategoryTheory/Sites/ConstantSheaf.lean Modified Mathlib/Condensed/Discrete/Colimit.lean Modified Mathlib/Data/List/Basic.lean Modified Mathlib/Data/List/Sigma.lean Modified Mathlib/Data/List/Sublists.lean Modified Mathlib/Data/Nat/Bits.lean Modified Mathlib/Data/WSeq/Basic.lean Modified Mathlib/Geometry/Euclidean/Circumcenter.lean Modified Mathlib/Geometry/Manifold/Instances/Icc.lean Modified Mathlib/Geometry/Manifold/MFDeriv/Atlas.lean Modified Mathlib/GroupTheory/SpecificGroups/Cyclic.lean Modified Mathlib/LinearAlgebra/AffineSpace/AffineMap.lean Modified Mathlib/LinearAlgebra/TensorProduct/RightExactness.lean Modified Mathlib/MeasureTheory/Covering/Besicovitch.lean Modified Mathlib/MeasureTheory/Measure/Lebesgue/VolumeOfBalls.lean Modified Mathlib/MeasureTheory/Measure/Stieltjes.lean Modified Mathlib/NumberTheory/Bernoulli.lean Modified Mathlib/NumberTheory/Dioph.lean Modified Mathlib/NumberTheory/LucasLehmer.lean Modified Mathlib/RingTheory/Henselian.lean Modified Mathlib/RingTheory/Unramified/Finite.lean Modified Mathlib/SetTheory/Cardinal/Pigeonhole.lean Modified Mathlib/Topology/UniformSpace/Cauchy.lean 2025-09-10 15:46:29 e2f5d26 doc: capitalize boolean (#29246) Adjectives derived from the proper names of people are almost always capitalized. Hence, "Boolean" should presumably also be capitalized. This conclusion is backed by the practice of [Wikipedia](https://en.wikipedia.org/wiki/Boolean_algebra), [Merriam-Webster](https://www.merriam-webster.com/dictionary/Boolean) and the [OED](https://www.oed.com/dictionary/boolean_adj). [Searching](https://scholar.google.com/scholar?as_ylo=2025&q=%22boolean%22&hl=en&as_sdt=0,5) for "boolean" on Google Scholar shows results heavily favoring the capitalized version. In mathematics, there is a single exception to this rule that I know of, namely "abelian". This case is deemed weird enough that Wikipedia finds it necessary to provide the following justification in the article on [abelian groups](https://en.wikipedia.org/wiki/Abelian_group#A_note_on_typography): > Among mathematical adjectives derived from the proper name of a mathematician, the word "abelian" is rare in that it is usually spelled with a lowercase *a*, rather than an uppercase *A*, the lack of capitalization being a tacit acknowledgment not only of the degree to which Abel's name has been institutionalized but also of how ubiquitous in modern mathematics are the concepts introduced by him. In conclusion, I think mathlib would seem less idiosyncratic if we followed this established pattern to a greater extent. This PR is a one-off effort to have current mathlib align with the pattern. It does not imply that future contributors should meet friction in the PR process when opting for lowercase "boolean". I do, however, believe that the current mathlib is leading by example, and that however mathlib currently looks will influence the choices of future contributors. Hence why I think this PR will have positive downstream effects in any case. ESTIMATED CHANGES Modified .github/workflows/stale.yml Modified Archive/Examples/IfNormalization/Result.lean Modified Archive/Examples/IfNormalization/Statement.lean Modified Archive/Examples/IfNormalization/WithoutAesop.lean Modified Mathlib/Algebra/Lie/Semisimple/Basic.lean Modified Mathlib/Algebra/Ring/BooleanRing.lean Modified Mathlib/Algebra/Star/CHSH.lean Modified Mathlib/Analysis/BoxIntegral/Basic.lean Modified Mathlib/Analysis/BoxIntegral/Partition/Filter.lean Modified Mathlib/Combinatorics/Digraph/Basic.lean Modified Mathlib/Combinatorics/SetFamily/Compression/UV.lean Modified Mathlib/Combinatorics/SetFamily/Intersecting.lean Modified Mathlib/Combinatorics/SimpleGraph/Basic.lean Modified Mathlib/Data/Bool/Basic.lean Modified Mathlib/Data/Bool/Count.lean Modified Mathlib/Data/Finset/BooleanAlgebra.lean Modified Mathlib/Data/Finset/SDiff.lean Modified Mathlib/Data/Fintype/Order.lean Modified Mathlib/Data/Ineq.lean Modified Mathlib/Data/Int/Bitwise.lean Modified Mathlib/Data/List/Defs.lean Modified Mathlib/Data/Nat/Bits.lean Modified Mathlib/Data/Nat/Factorial/Basic.lean Modified Mathlib/Data/Num/Basic.lean Modified Mathlib/Data/Num/Bitwise.lean Modified Mathlib/Data/Set/BooleanAlgebra.lean Modified Mathlib/Data/Set/Lattice.lean Modified Mathlib/Lean/PrettyPrinter/Delaborator.lean Modified Mathlib/ModelTheory/Complexity.lean Modified Mathlib/ModelTheory/Definability.lean Modified Mathlib/Order/Atoms.lean Modified Mathlib/Order/Basic.lean Modified Mathlib/Order/BooleanAlgebra/Basic.lean Modified Mathlib/Order/BooleanAlgebra/Defs.lean Modified Mathlib/Order/BooleanAlgebra/Set.lean Modified Mathlib/Order/BooleanGenerators.lean Modified Mathlib/Order/BooleanSubalgebra.lean Modified Mathlib/Order/Category/BoolAlg.lean Modified Mathlib/Order/Category/FinBoolAlg.lean Modified Mathlib/Order/Heyting/Basic.lean Modified Mathlib/Order/Heyting/Boundary.lean Modified Mathlib/Order/Heyting/Regular.lean Modified Mathlib/Order/Hom/Basic.lean Modified Mathlib/Order/Hom/BoundedLattice.lean Modified Mathlib/Order/Notation.lean Modified Mathlib/Order/README.md Modified Mathlib/Tactic/CancelDenoms/Core.lean Modified Mathlib/Tactic/FieldSimp.lean Modified Mathlib/Tactic/ITauto.lean Modified Mathlib/Tactic/LinearCombination/Lemmas.lean Modified Mathlib/Tactic/MoveAdd.lean Modified Mathlib/Tactic/Positivity/Core.lean Modified Mathlib/Tactic/Simps/Basic.lean Modified Mathlib/Tactic/Simps/NotationClass.lean Modified Mathlib/Topology/Constructible.lean Modified MathlibTest/LintStyle.lean Modified scripts/migrate_to_fork.py 2025-09-10 14:58:21 ae91682 feat: add bundled versions of `Equiv.cast` (#27182) These are essentially the non-categorical versions of `eqToHom`. These are helpful to state some functorial results about things like `DFinsupp.equivCongrLeft` (with the alternative being to use an evil triangle somewhere instead). [#Is there code for X? > LinearEquiv.cast / AddEquiv.cast etc @ 💬](https://leanprover.zulipchat.com/#narrow/channel/217875-Is-there-code-for-X.3F/topic/LinearEquiv.2Ecast.20.2F.20AddEquiv.2Ecast.20etc/near/521390380) ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/Equiv.lean Modified Mathlib/Algebra/Group/Equiv/Defs.lean Modified Mathlib/Algebra/Module/Equiv/Defs.lean Modified Mathlib/Algebra/Ring/Equiv.lean 2025-09-10 13:58:27 61beb5e chore: grind golfing in Mathlib/Data/Option/Basic.lean (#29494) ESTIMATED CHANGES Modified Mathlib/Data/Option/Basic.lean + theorem Option.failure_eq_none 2025-09-10 13:07:12 737245d doc: capitalize turing (#29292) Turing is the name of a mathematician, which means it is capitalized in English. ESTIMATED CHANGES Modified Mathlib/Computability/TMToPartrec.lean 2025-09-10 12:37:42 d386f9f chore: remove triangleRemovalBound positivity extension (#29496) This extension just applies src#SimpleGraph.triangleRemovalBound_pos, discharging an `ε ≤ 1` by hoping it is there as a hypothesis(!!), and discharging the other argument by a recursive call to `positivity`. This is used in a single proof, as ``` · have : ε / 9 ≤ 1 := by linarith positivity ``` My complaint here is that this is completely unreadable. One can only understand why the `have` statement is introduced here by *reading meta code*. (First of all one has to use `show_term` or similar to even work out which lemma is being applied, then some grepping to find the positivity extension, and finally the surprising discovery that the `have` statement is there because the extension goes out look for exactly this fact.) ESTIMATED CHANGES Modified Mathlib/Combinatorics/Additive/Corner/Roth.lean Modified Mathlib/Combinatorics/SimpleGraph/Triangle/Removal.lean - def Mathlib.Meta.Positivity.evalTriangleRemovalBound 2025-09-10 12:22:58 943efc1 chore(MeasureTheory/Constructions): golf entire `inter_cylinder{,_same}` and `union_cylinder{,_same}` using `rfl` (#28566) ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Constructions/Cylinders.lean 2025-09-10 11:05:33 76dc62e Log deriv lemmas (#28412) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Analysis/Calculus/Deriv/Basic.lean + theorem Set.EqOn.deriv Modified Mathlib/Analysis/Calculus/LogDeriv.lean + theorem logDeriv_eqOn_iff Added Mathlib/Analysis/Calculus/LogDerivUniformlyOn.lean + theorem logDeriv_tprod_eq_tsum 2025-09-10 10:19:28 fd77c93 chore: remove redundant `haveI` invocations (#29220) ESTIMATED CHANGES Modified Mathlib/Algebra/BigOperators/Associated.lean Modified Mathlib/Algebra/BigOperators/Group/Finset/Basic.lean Modified Mathlib/Algebra/FreeAlgebra/Cardinality.lean Modified Mathlib/Algebra/Group/Subgroup/Finite.lean Modified Mathlib/Algebra/Module/PID.lean Modified Mathlib/Algebra/Module/SnakeLemma.lean Modified Mathlib/Algebra/Order/CauSeq/Basic.lean 2025-09-10 06:51:21 9ec894f feat: changes to tactic analysis linter (#29460) Some code cleanup and more features for the `grindReplacementWith` passes. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Lean/Elab/Tactic/Meta.lean + def Lean.Elab.runTactic' Modified Mathlib/Tactic/TacticAnalysis.lean Modified Mathlib/Tactic/TacticAnalysis/Declarations.lean +/- def grindReplacementWith +/- def omegaToGrind 2025-09-10 05:00:38 bd3280f feat(CI): create `nightly-testing-daily` and `nightly-testing-green` branches (#29469) These two branches track the `nightly-testing-YYYY-MM-DD` tags and the latest successfully built `nightly-testing` commit, respectively. These can then be used for other CI actions such as tests that run every night. ESTIMATED CHANGES Modified .github/workflows/nightly_detect_failure.yml 2025-09-10 03:20:24 e72f153 chore(Init): import tactic analysis passes (#29305) We declare a few tactic analysis passes but never import them as part of Mathlib. This means we can't enable them locally or via global options. Depends ESTIMATED CHANGES Modified Mathlib/Init.lean Modified MathlibTest/FindSyntax.lean Modified MathlibTest/MinImports.lean 2025-09-10 03:06:12 e158447 feat(Cache): richer reporting for uploads & downloads (#29483) This PR changes the `put` to use the same progress reporting method as `get`. It also increases the amount of information reported on an error and includes the transfer speed when reporting progress. ESTIMATED CHANGES Modified Cache/Requests.lean + def Cache.Requests.monitorCurl 2025-09-10 02:06:24 f1635b3 chore: refactor `BinomialRing` to avoid bad instances (#29485) This instance was doubling (measured on `nightly-testing`) the run-time of the failed search ``` import Mathlib variable {K : Type*} [Field K] {x : K} example : Lean.Grind.NoNatZeroDivisors K := inferInstance ``` `grind` hits this search case often, so we'd like to keep this failing fast. ESTIMATED CHANGES Modified Mathlib/NumberTheory/Padics/MahlerBasis.lean Modified Mathlib/RingTheory/Binomial.lean Modified MathlibTest/slow_instances.lean 2025-09-10 01:23:18 ba52cca doc: capitalize taylor (#29245) ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/Matrix/Charpoly/Coeff.lean 2025-09-09 23:34:50 a862963 feat(CategoryTheory/Sites): more constructions for `ZeroHypercover` (#29467) They are mostly "upstreamed" constructions from `AlgebraicGeometry.Scheme.Cover`. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Sites/Precoverage.lean Modified Mathlib/CategoryTheory/Sites/ZeroHypercover.lean + def CategoryTheory.PreZeroHypercover.add + theorem CategoryTheory.PreZeroHypercover.add_X_none + theorem CategoryTheory.PreZeroHypercover.add_X_some + theorem CategoryTheory.PreZeroHypercover.add_f_nome + theorem CategoryTheory.PreZeroHypercover.add_f_some + def CategoryTheory.PreZeroHypercover.inter + theorem CategoryTheory.PreZeroHypercover.inter_def + theorem CategoryTheory.PreZeroHypercover.presieve₀_add + theorem CategoryTheory.PreZeroHypercover.presieve₀_f +/- theorem CategoryTheory.PreZeroHypercover.presieve₀_pullback₁ + theorem CategoryTheory.PreZeroHypercover.presieve₀_reindex + theorem CategoryTheory.PreZeroHypercover.presieve₀_singleton + theorem CategoryTheory.PreZeroHypercover.presieve₀_sum + def CategoryTheory.PreZeroHypercover.reindex + theorem CategoryTheory.PreZeroHypercover.sieve₀_f + def CategoryTheory.PreZeroHypercover.sum + def CategoryTheory.PreZeroHypercover.sumInl + def CategoryTheory.PreZeroHypercover.sumInr + def CategoryTheory.PreZeroHypercover.sumLift + theorem CategoryTheory.PreZeroHypercover.sum_X_inl + theorem CategoryTheory.PreZeroHypercover.sum_X_inr + theorem CategoryTheory.PreZeroHypercover.sum_f_inl + theorem CategoryTheory.PreZeroHypercover.sum_f_inr + def CategoryTheory.Precoverage.ZeroHypercover.add + def CategoryTheory.Precoverage.ZeroHypercover.inter +/- def CategoryTheory.Precoverage.ZeroHypercover.pullback₁ +/- def CategoryTheory.Precoverage.ZeroHypercover.pullback₂ + def CategoryTheory.Precoverage.ZeroHypercover.reindex + def CategoryTheory.Precoverage.ZeroHypercover.sum +/- structure CategoryTheory.Precoverage.ZeroHypercover + theorem CategoryTheory.Precoverage.mem_iff_exists_zeroHypercover 2025-09-09 22:32:52 cf83031 fix(TacticAnalysis): don't re-export imported analysis passes (#29303) Marc reported that importing Mathlib on nightly-testing is a lot slower, and traced this back to tactic analysis. It turns out the issue is that each pass from an imported file is re-exported, and then the whole is deduplicated. But we already get the passes from transitive imports, so we do not need to re-export. Instead, keep a list of entries for the current file we want to export, and an array of all passes encountered so far. Only the list is exported, and this already guarantees uniqueness since each dependency only occurs once per file we build. ESTIMATED CHANGES Modified Mathlib/Tactic/TacticAnalysis.lean 2025-09-09 22:19:33 5a0d041 chore: use both cache backends; report Cloudflare problems on Zulip (#29465) ESTIMATED CHANGES Modified .github/build.in.yml Modified .github/workflows/bors.yml Modified .github/workflows/build.yml Modified .github/workflows/build_fork.yml 2025-09-09 21:27:45 ff0f7a1 chore(AlgebraicGeometry): remove redundant `have`:s in `AlgebraicGeometry/` (#28980) ESTIMATED CHANGES Modified Mathlib/AlgebraicGeometry/Morphisms/Flat.lean Modified Mathlib/AlgebraicGeometry/Morphisms/Proper.lean Modified Mathlib/AlgebraicGeometry/Morphisms/QuasiCompact.lean Modified Mathlib/AlgebraicGeometry/Morphisms/Separated.lean Modified Mathlib/AlgebraicGeometry/PointsPi.lean 2025-09-09 20:51:52 16a04a1 chore(Analysis): remove redundant `have`:s in `Analysis/` (#28993) - [ ] depends on: #28658 to avoid semantic conflicts ESTIMATED CHANGES Modified Mathlib/Analysis/BoxIntegral/UnitPartition.lean Modified Mathlib/Analysis/Calculus/FDeriv/Measurable.lean Modified Mathlib/Analysis/FunctionalSpaces/SobolevInequality.lean Modified Mathlib/Analysis/InnerProductSpace/Rayleigh.lean Modified Mathlib/Analysis/Normed/Unbundled/SmoothingSeminorm.lean Modified Mathlib/Analysis/NormedSpace/HahnBanach/Separation.lean Modified Mathlib/Analysis/SpecialFunctions/Exponential.lean Modified Mathlib/Analysis/SpecificLimits/FloorPow.lean 2025-09-09 20:21:52 5dc53c4 chore(Analysis): golf entire `HasGradientAtFilter.hasDerivAtFilter`, `liftIsometry_symm_apply` and `mapL_apply` using `tauto` and `rfl` (#28558) ESTIMATED CHANGES Modified Mathlib/Analysis/Calculus/Gradient/Basic.lean Modified Mathlib/Analysis/NormedSpace/PiTensorProduct/InjectiveSeminorm.lean 2025-09-09 20:21:50 d0e3587 feat(Topology): some `IsOpenMap` lemmas (#27527) Some lemmas for `IsOpenMap` that I needed. I've also added variants for `IsClosedMap` to maintain symmetry in the API. ESTIMATED CHANGES Modified Mathlib/Topology/Connected/TotallyDisconnected.lean Modified Mathlib/Topology/Constructions.lean + theorem Continuous.subtype_coind + theorem IsClosed.isClosedMap_inclusion + theorem IsClosedMap.codRestrict + theorem IsClosedMap.mapsToRestrict + theorem IsClosedMap.restrict + theorem IsClosedMap.subtype_coind + theorem IsClosedMap.subtype_map + theorem IsClosedMap.subtype_mk + theorem IsOpen.isOpenMap_inclusion + theorem IsOpenMap.codRestrict + theorem IsOpenMap.mapsToRestrict + theorem IsOpenMap.subtype_coind + theorem IsOpenMap.subtype_map + theorem IsOpenMap.subtype_mk Modified Mathlib/Topology/ContinuousOn.lean + theorem ContinuousOn.mapsToRestrict - theorem ContinuousOn.restrict_mapsTo Modified Mathlib/Topology/EMetricSpace/Lipschitz.lean Modified Mathlib/Topology/Homeomorph/Lemmas.lean Modified Mathlib/Topology/PartialHomeomorph.lean 2025-09-09 20:10:15 ed00a78 feat(RingTheory/HahnSeries): embDomain as OrderAddMonoidHom; orderTop of embDomain (#29421) These will be used in #27268 Hahn embedding theorem ESTIMATED CHANGES Modified Mathlib/RingTheory/HahnSeries/Basic.lean + theorem HahnSeries.orderTop_embDomain Modified Mathlib/RingTheory/HahnSeries/Lex.lean + def HahnSeries.embDomainOrderAddMonoidHom + theorem HahnSeries.embDomainOrderAddMonoidHom_injective + def HahnSeries.embDomainOrderEmbedding 2025-09-09 19:57:51 f70fb8e feat(AlgebraicTopology): nondegenerate simplices in the nerve of a partially ordered type (#28337) In this PR, we show that nondegenerate simplices in the nerve of a partially ordered type `X` correspond to strictly monotone functions `Fin (n + 1) → X`. (Incidentally, better normal formal are used for the RHS of lemmas involving (non)degenerate simplices of dimension `0`.) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/AlgebraicTopology/SimplicialNerve.lean Modified Mathlib/AlgebraicTopology/SimplicialSet/Degenerate.lean +/- theorem SSet.degenerate_zero +/- theorem SSet.nondegenerate_zero Modified Mathlib/AlgebraicTopology/SimplicialSet/Nerve.lean + theorem CategoryTheory.nerve.ext_of_isThin + theorem CategoryTheory.nerve.δ_obj + theorem CategoryTheory.nerve.σ_obj Added Mathlib/AlgebraicTopology/SimplicialSet/NerveNondegenerate.lean + theorem PartialOrder.mem_nerve_degenerate_of_eq + theorem PartialOrder.mem_nerve_nonDegenerate_iff_injective + theorem PartialOrder.mem_nerve_nonDegenerate_iff_strictMono + theorem PartialOrder.mem_range_nerve_σ_iff 2025-09-09 19:31:10 b92a17e doc: use three hashes instead of four in sectioning headers (#29473) This is prescribed by the [documentation style guide](https://leanprover-community.github.io/contribute/doc.html#sectioning-comments) ESTIMATED CHANGES Modified Mathlib/Computability/AkraBazzi/AkraBazzi.lean Modified Mathlib/Computability/AkraBazzi/SumTransform.lean 2025-09-09 18:33:49 79962c3 feat(AlgebraicTopology/ModelCategory): relation between left and right homotopies (#28392) In this PR, we relate left and right homotopy between morphisms `X ⟶ Y` in model categories. In particular, if `X` is cofibrant and `Y` is fibrant, these notions coincide (for arbitrary choices of good cylinders or good path objects). Using the factorization lemma by K. S. Brown, we deduce versions of the Whitehead theorem which assert that when both `X` and `Y` are fibrant and cofibrant, then any weak equivalence `X ⟶ Y` is a homotopy equivalence. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/AlgebraicTopology/ModelCategory/Homotopy.lean + theorem HomotopicalAlgebra.LeftHomotopyClass.postcomp_bijective_of_fibration_of_weakEquivalence + theorem HomotopicalAlgebra.LeftHomotopyClass.postcomp_bijective_of_weakEquivalence + theorem HomotopicalAlgebra.LeftHomotopyClass.whitehead + theorem HomotopicalAlgebra.LeftHomotopyRel.rightHomotopyRel + theorem HomotopicalAlgebra.RightHomotopyClass.precomp_bijective_of_cofibration_of_weakEquivalence + theorem HomotopicalAlgebra.RightHomotopyClass.precomp_bijective_of_weakEquivalence + theorem HomotopicalAlgebra.RightHomotopyClass.whitehead + theorem HomotopicalAlgebra.RightHomotopyRel.leftHomotopyRel + def HomotopicalAlgebra.leftHomotopyClassEquivRightHomotopyClass + theorem HomotopicalAlgebra.leftHomotopyClassEquivRightHomotopyClass_mk + theorem HomotopicalAlgebra.leftHomotopyClassEquivRightHomotopyClass_symm_mk + theorem HomotopicalAlgebra.leftHomotopyRel_iff_rightHomotopyRel 2025-09-09 18:17:13 088f81e feat: basic properties of toLp and ofLp (#28469) Provide a `homeomorph` and `uniformEquiv` version of `WithLp.equiv`. Show that `toLp` and `ofLp` are Lipschitz and anti-Lipschitz, and that `toLp` is a uniform inducing. Show that evaluation in PiLp is continuous and open. ESTIMATED CHANGES Modified Mathlib/Analysis/Normed/Lp/PiLp.lean + theorem PiLp.antilipschitzWith_toLp + def PiLp.homeomorph + theorem PiLp.isOpenMap_apply + theorem PiLp.isUniformInducing_toLp + theorem PiLp.lipschitzWith_toLp + theorem PiLp.toEquiv_homeomorph + theorem PiLp.toEquiv_uniformEquiv + theorem PiLp.toHomeomorph_uniformEquiv + def PiLp.uniformEquiv Modified Mathlib/Analysis/Normed/Lp/ProdLp.lean + def WithLp.homeomorphProd + theorem WithLp.isUniformInducing_toLp + theorem WithLp.prod_antilipschitzWith_toLp + theorem WithLp.prod_lipschitzWith_toLp + theorem WithLp.toEquiv_homeomorphProd + theorem WithLp.toEquiv_uniformEquivProd + theorem WithLp.toHomeomorph_uniformEquivProd + def WithLp.uniformEquivProd 2025-09-09 16:07:27 8e2d951 feat(Analysis/InnerProductSpace/Positive): `A.toMatrix.PosSemidef` iff `A.IsPositive` (#28554) ESTIMATED CHANGES Modified Mathlib/Analysis/InnerProductSpace/Positive.lean + theorem LinearMap.posSemidef_toMatrix_iff 2025-09-09 15:52:39 70ddb5d feat(Analysis/InnerProductSpace/Adjoint): `(range T)ᗮ = ker T` for normal operators (#29384) ESTIMATED CHANGES Modified Mathlib/Analysis/InnerProductSpace/Adjoint.lean + theorem ContinuousLinearMap.IsStarNormal.adjoint_apply_eq_zero_iff + theorem ContinuousLinearMap.IsStarNormal.ker_adjoint_eq_ker + theorem ContinuousLinearMap.IsStarNormal.orthogonal_range Modified Mathlib/Analysis/InnerProductSpace/Positive.lean 2025-09-09 14:11:49 78ec5ad feat(Algebra/Order): ArchimedeanClass.ball ≤ .closedBall (#29423) One missing lemma that will be used in #27268 Hahn embedding theorem ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Module/Archimedean.lean + theorem ArchimedeanClass.ball_le_closedBall 2025-09-09 13:25:53 313cdd4 feat: well-founded instances for `ULift` (#28678) ESTIMATED CHANGES Modified Mathlib/Order/WellFounded.lean 2025-09-09 13:02:18 4a587d4 feat(Algebra/Order): OrderIso on FiniteArchimedeanClass from OrderIso on all classes (#29451) This will be used in https://github.com/leanprover-community/mathlib4/pull/27268 Hahn embedding theorem ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Archimedean/Class.lean + theorem FiniteMulArchimedeanClass.coe_congrOrderIso_apply + def FiniteMulArchimedeanClass.congrOrderIso + theorem FiniteMulArchimedeanClass.congrOrderIso_symm 2025-09-09 13:02:16 232ae11 feat(LinearAlgebra/AffineSpace/Independent) add affineIndependent_update_of_notMem_affineSpan (#29128) ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/AffineSpace/Independent.lean + theorem AffineIndependent.affineIndependent_update_of_notMem_affineSpan 2025-09-09 13:02:14 d7dfaf9 feat(Analysis/InnerProductSpace/Positive): `A.toEuclideanLin.IsPositive` iff `A.PosSemidef` (#28553) ESTIMATED CHANGES Modified Mathlib/Analysis/InnerProductSpace/Positive.lean + theorem Matrix.isPositive_toEuclideanLin_iff Modified Mathlib/LinearAlgebra/Matrix/Hermitian.lean + theorem Matrix.IsHermitian.im_star_dotProduct_mulVec_self 2025-09-09 13:02:12 8e70088 feat(CategoryTheory): locally presentable and accessible categories (#28178) In this PR, we introduce the notions of locally presentable and locally accessible categories. The definitions involve the existence of certain colimits, and the fact that any object identifies as a filtered colimit of a given set of presentable objects. In particular, we show that in these categories, all the objects are presentable. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/CategoryTheory/Presentable/Basic.lean + theorem CategoryTheory.Functor.isAccessible_of_isCardinalAccessible + theorem CategoryTheory.isPresentable_of_isCardinalPresentable Added Mathlib/CategoryTheory/Presentable/CardinalFilteredPresentation.lean + def CategoryTheory.AreCardinalFilteredGenerators.J + theorem CategoryTheory.AreCardinalFilteredGenerators.exists_colimitPresentation_diag_obj_iso + theorem CategoryTheory.AreCardinalFilteredGenerators.isPresentable + theorem CategoryTheory.AreCardinalFilteredGenerators.presentable + structure CategoryTheory.AreCardinalFilteredGenerators + theorem CategoryTheory.Limits.ColimitPresentation.isCardinalPresentable Added Mathlib/CategoryTheory/Presentable/LocallyPresentable.lean Modified Mathlib/SetTheory/Cardinal/HasCardinalLT.lean +/- theorem HasCardinalLT.exists_regular_cardinal_forall 2025-09-09 12:06:00 23c0a44 chore: remove redundant `have`:s in `LinearAlgebra/` and `Logic/` (#29005) ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/AffineSpace/FiniteDimensional.lean Modified Mathlib/LinearAlgebra/Dimension/Localization.lean Modified Mathlib/LinearAlgebra/FreeModule/PID.lean Modified Mathlib/LinearAlgebra/RootSystem/Basic.lean Modified Mathlib/LinearAlgebra/RootSystem/CartanMatrix.lean Modified Mathlib/LinearAlgebra/RootSystem/Finite/G2.lean Modified Mathlib/LinearAlgebra/RootSystem/Finite/Lemmas.lean Modified Mathlib/LinearAlgebra/RootSystem/GeckConstruction/Lemmas.lean Modified Mathlib/LinearAlgebra/Semisimple.lean Modified Mathlib/Logic/Basic.lean 2025-09-09 12:05:58 757b6f0 feat(AlgebraicTopology): the covariant involution of SimplexCategory (#28404) In this PR, we introduce the functor `rev : SimplexCategory ⥤ SimplexCategory` which, via the equivalence between the simplex category and the category of nonempty finite linearly ordered types, corresponds to the *covariant* functor which sends a type `α` to `αᵒᵈ`. We also define the induced functors/equivalences on simplicial objects and simplicial sets. This is introduced in order to handle the symmetry between horns (some combinatorial results shall be shown for all horns but one: this symmetry will allow to deduce the remaining case). ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/AlgebraicTopology/SimplexCategory/Rev.lean + def SimplexCategory.rev + def SimplexCategory.revCompRevIso + def SimplexCategory.revEquivalence + theorem SimplexCategory.rev_map_apply + theorem SimplexCategory.rev_map_rev_map + theorem SimplexCategory.rev_map_δ + theorem SimplexCategory.rev_map_σ Added Mathlib/AlgebraicTopology/SimplicialObject/Op.lean + def SimplicialObject.opEquivalence + def SimplicialObject.opFunctor + def SimplicialObject.opFunctorCompOpFunctorIso + theorem SimplicialObject.opFunctorCompOpFunctorIso_hom_app_app + theorem SimplicialObject.opFunctorCompOpFunctorIso_inv_app_app + theorem SimplicialObject.opFunctor_map_app + theorem SimplicialObject.opFunctor_obj_map + theorem SimplicialObject.opFunctor_obj_δ + theorem SimplicialObject.opFunctor_obj_σ + def SimplicialObject.opObjIso Modified Mathlib/AlgebraicTopology/SimplicialSet/Basic.lean + theorem SSet.id_app Added Mathlib/AlgebraicTopology/SimplicialSet/Op.lean + def SSet.opEquivalence + def SSet.opFunctor + def SSet.opFunctorCompOpFunctorIso + theorem SSet.opFunctor_map + def SSet.opObjEquiv + theorem SSet.op_map + theorem SSet.op_δ + theorem SSet.op_σ Modified Mathlib/CategoryTheory/Whiskering.lean 2025-09-09 11:19:50 2237732 chore(Data/Set): golf a lemma that is a duplicate (#29452) The Subtype API is still full of `coe` vs `val` duplication. This serves simply to record yet another pair, rather than to try and solve this problem. Note that `Subtype.image_val_subset` is in a different namespace and has different argument explicitness. ESTIMATED CHANGES Modified Mathlib/Data/Set/Functor.lean +/- theorem Set.image_val_subset 2025-09-09 11:19:48 3ef1c2c feat(Algebra/Order): Generalize IsMulTorsionFree to linearly ordered monoid (#29386) Signature change: ```diff -instance {α : Type*} [CommGroup α] [LinearOrder α] [IsOrderedMonoid α] : IsMulTorsionFree α +instance {α : Type*} [Monoid α] [LinearOrder α] [MulLeftStrictMono α] [MulRightStrictMono α] : IsMulTorsionFree α ``` ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Group/Basic.lean Modified Mathlib/Algebra/Order/Monoid/Unbundled/Pow.lean 2025-09-09 11:19:47 e0ae623 chore: tidy various files (#29205) ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/Hom.lean Modified Mathlib/Algebra/Algebra/NonUnitalSubalgebra.lean Modified Mathlib/Algebra/Category/Grp/Limits.lean Modified Mathlib/Algebra/Category/MonCat/Limits.lean Modified Mathlib/Algebra/Order/Star/Basic.lean Modified Mathlib/AlgebraicTopology/ModelCategory/RightHomotopy.lean Modified Mathlib/Analysis/Calculus/BumpFunction/FiniteDimension.lean Modified Mathlib/Analysis/Calculus/ContDiff/FTaylorSeries.lean Modified Mathlib/Analysis/Complex/Periodic.lean Modified Mathlib/Analysis/SpecialFunctions/ContinuousFunctionalCalculus/Rpow/IntegralRepresentation.lean Modified Mathlib/Geometry/Manifold/Instances/Real.lean Modified Mathlib/MeasureTheory/Function/ConditionalExpectation/CondexpL2.lean Modified Mathlib/NumberTheory/Padics/WithVal.lean Modified Mathlib/RingTheory/GradedAlgebra/Basic.lean Modified Mathlib/Topology/Algebra/Module/LinearMap.lean 2025-09-09 11:19:44 6a410a0 feat(GroupTheory/Finiteness): `Submonoid.FG`, `Subgroup.FG` on supremums (#29034) ESTIMATED CHANGES Modified Mathlib/GroupTheory/Finiteness.lean + theorem Subgroup.FG.biSup + theorem Subgroup.FG.bot + theorem Subgroup.FG.finset_sup + theorem Subgroup.FG.iSup + theorem Subgroup.FG.sup + theorem Submonoid.FG.biSup + theorem Submonoid.FG.bot + theorem Submonoid.FG.finset_sup + theorem Submonoid.FG.iSup + theorem Submonoid.FG.sup 2025-09-09 10:56:53 3df560d chore(LinearAlgebra/Matrix/SesquilinearForm): make `Matrix.IsSelfAdjoint` protected (#29206) This avoids a conflict with `_root_.IsSelfAdjoint` when the `Matrix` namespace is open. We also protect `Matrix.IsSkewAdjoint` for API consistency. ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/Matrix/SesquilinearForm.lean - def Matrix.IsSelfAdjoint - def Matrix.IsSkewAdjoint 2025-09-09 10:56:52 e6416e0 feat: more lemmas on characteristic 2 rings (#28589) ESTIMATED CHANGES Modified Mathlib/Algebra/CharP/Two.lean + theorem CharTwo.CommRing.sq_inj + theorem CharTwo.CommRing.sq_injective 2025-09-09 10:44:27 79195cf feat(LinearAlgebra/Matrix/PosDef): positive (semi-)definite matrices commute iff their product is positive (semi-)definite (#28616) _) x; aesop`. Same specializing of the limit lemmas may be useful here. ESTIMATED CHANGES Modified Mathlib/AlgebraicGeometry/Spec.lean Modified Mathlib/CategoryTheory/Limits/Shapes/KernelPair.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Kernels.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Products.lean 2025-08-11 12:31:37 f9ec0bd chore: removed unneeded applications of id (#28230) These likely come from suggestions given by `exact?` or similar tactics. ESTIMATED CHANGES Modified Mathlib/Data/Fintype/List.lean Modified Mathlib/Data/Matrix/ColumnRowPartitioned.lean Modified Mathlib/Geometry/Manifold/MFDeriv/Basic.lean Modified Mathlib/MeasureTheory/Function/ConditionalExpectation/Basic.lean Modified Mathlib/Topology/Order/IntermediateValue.lean Modified Mathlib/Topology/UrysohnsLemma.lean 2025-08-11 12:31:35 6e2f4e1 chore: rename `Zlattice.FG` to `ZLattice.FG` (#28228) Every other declaration uses `ZLattice`. ESTIMATED CHANGES Modified Mathlib/Algebra/Module/ZLattice/Basic.lean + theorem ZLattice.FG - theorem Zlattice.FG 2025-08-11 12:31:33 9c24bde chore(Data/ZMod): golf `natCast_mod` (#28201) Motivation: Avoid (partial) proof duplication. ESTIMATED CHANGES Modified Mathlib/Data/ZMod/Basic.lean +/- theorem ZMod.natCast_mod 2025-08-11 12:31:31 4161fc5 chore: more indentation fixes (#28118) Found by the linter in #27996. ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/BilinearForm/TensorProduct.lean Modified Mathlib/LinearAlgebra/Eigenspace/Triangularizable.lean Modified Mathlib/LinearAlgebra/Isomorphisms.lean Modified Mathlib/Logic/Equiv/Sum.lean Modified Mathlib/MeasureTheory/Constructions/Pi.lean Modified Mathlib/MeasureTheory/Function/SimpleFunc.lean Modified Mathlib/MeasureTheory/Group/Measure.lean Modified Mathlib/NumberTheory/LSeries/DirichletContinuation.lean Modified Mathlib/NumberTheory/Pell.lean Modified Mathlib/Order/Atoms.lean Modified Mathlib/Order/CompleteLattice/Basic.lean Modified Mathlib/Order/Nucleus.lean Modified Mathlib/Order/Radical.lean Modified Mathlib/Probability/Independence/Basic.lean Modified Mathlib/Probability/Independence/Integration.lean Modified Mathlib/RingTheory/FractionalIdeal/Operations.lean +/- theorem FractionalIdeal.num_eq_zero_iff Modified Mathlib/RingTheory/Polynomial/ScaleRoots.lean Modified Mathlib/RingTheory/QuotSMulTop.lean Modified Mathlib/RingTheory/Valuation/Basic.lean Modified Mathlib/RingTheory/Valuation/Extension.lean Modified Mathlib/Tactic/CC/Lemmas.lean Modified Mathlib/Tactic/Find.lean Modified Mathlib/Tactic/FunProp/Types.lean Modified Mathlib/Tactic/Linter/TextBased.lean Modified Mathlib/Tactic/SplitIfs.lean Modified Mathlib/Tactic/Widget/Conv.lean Modified Mathlib/Topology/Algebra/Module/FiniteDimension.lean Modified Mathlib/Topology/Algebra/Module/Multilinear/Topology.lean Modified Mathlib/Topology/Algebra/Module/StrongTopology.lean Modified Mathlib/Topology/Algebra/Module/WeakDual.lean Modified Mathlib/Topology/CompactOpen.lean Modified Mathlib/Topology/EMetricSpace/Lipschitz.lean Modified Mathlib/Topology/Spectral/Hom.lean Modified Mathlib/Topology/UniformSpace/LocallyUniformConvergence.lean 2025-08-11 11:23:44 d945570 feat: use `grind` in `CategoryTheory.NatIso` (#28065) - [x] depends on: #28022 There are still two places where we have to fall back to `aesop`. These work fine on `nightly-testing`, due to some intervening improvements to `grind`. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Functor/Category.lean Modified Mathlib/CategoryTheory/Iso.lean Modified Mathlib/CategoryTheory/NatIso.lean +/- def CategoryTheory.NatIso.hcomp +/- theorem CategoryTheory.NatIso.isIso_inv_app 2025-08-11 11:23:40 3e4fe21 feat: IMO 2001 Q5 (#27890) #25862 finds a use relatively quickly. ESTIMATED CHANGES Modified Archive.lean Added Archive/Imo/Imo2001Q5.lean + theorem Imo2001Q5.Setup.ABC_eq + theorem Imo2001Q5.Setup.ABQ_eq + theorem Imo2001Q5.Setup.ACB_eq + theorem Imo2001Q5.Setup.APB_eq + theorem Imo2001Q5.Setup.AQB_eq + theorem Imo2001Q5.Setup.AQC_eq + theorem Imo2001Q5.Setup.AQ_by_AB + theorem Imo2001Q5.Setup.A_ne_B + theorem Imo2001Q5.Setup.A_ne_C + theorem Imo2001Q5.Setup.BAP_eq + theorem Imo2001Q5.Setup.BPC_eq + theorem Imo2001Q5.Setup.BP_by_AB + theorem Imo2001Q5.Setup.B_ne_C + theorem Imo2001Q5.Setup.PAC_eq + theorem Imo2001Q5.Setup.P_ne_B + theorem Imo2001Q5.Setup.P_ne_C + theorem Imo2001Q5.Setup.QBC_eq + theorem Imo2001Q5.Setup.QB_by_AB + theorem Imo2001Q5.Setup.Q_ne_A + theorem Imo2001Q5.Setup.Q_ne_C + theorem Imo2001Q5.Setup.key_x_equation + theorem Imo2001Q5.Setup.not_collinear_BAC + theorem Imo2001Q5.Setup.sbtw_AQC + theorem Imo2001Q5.Setup.sbtw_BPC + def Imo2001Q5.Setup.x + theorem Imo2001Q5.Setup.x_eq + theorem Imo2001Q5.Setup.x_lt_pi_div_three + theorem Imo2001Q5.Setup.x_pos + structure Imo2001Q5.Setup + theorem Imo2001Q5.result Modified Mathlib/Data/Complex/Trigonometric.lean Modified Mathlib/Geometry/Euclidean/Triangle.lean + theorem EuclideanGeometry.angle_add_of_ne_of_ne 2025-08-11 11:23:38 0a75191 feat(Algebra): connect IsRegular/IsCancelMul to nonZeroDivisors/NoZeroDivisors (#27877) + Show that a regular element is not a zero divisors, and the converse holds in a ring. + Show that Is(Left/Right)CancelMul and NoZeroDivisors are equivalent for a ring. ESTIMATED CHANGES Modified Mathlib/Algebra/Divisibility/Basic.lean + theorem IsLeftRegular.dvd_cancel_left Modified Mathlib/Algebra/GroupWithZero/Defs.lean + theorem noZeroDivisors_iff_eq_zero_of_mul + theorem noZeroDivisors_iff_left_eq_zero_of_mul + theorem noZeroDivisors_iff_right_eq_zero_of_mul Modified Mathlib/Algebra/GroupWithZero/NonZeroDivisors.lean + theorem IsLeftRegular.mem_nonZeroDivisorsLeft + theorem IsRegular.mem_nonZeroDivisors + theorem IsRightRegular.mem_nonZeroDivisorsRight + theorem IsSMulRegular.mem_nonZeroSMulDivisors + theorem isSMulRegular_iff_mem_nonZeroSMulDivisors + theorem noZeroDivisors_iff_forall_mem_nonZeroDivisors + theorem noZeroDivisors_iff_forall_mem_nonZeroDivisorsLeft + theorem noZeroDivisors_iff_forall_mem_nonZeroDivisorsRight + theorem noZeroSMulDivisors_iff_forall_mem_nonZeroSMulDivisors +/- def nonZeroDivisors Modified Mathlib/Algebra/NoZeroSMulDivisors/Defs.lean + theorem noZeroSMulDivisors_iff_right_eq_zero_of_smul Modified Mathlib/Algebra/Regular/Prod.lean Modified Mathlib/Algebra/Regular/SMul.lean - theorem IsSMulRegular.eq_zero_of_smul_eq_zero - theorem IsSMulRegular.of_injective + theorem isSMulRegular_iff_right_eq_zero_of_smul Modified Mathlib/Algebra/Ring/Basic.lean +/- theorem isCancelMulZero_iff_noZeroDivisors + theorem isLeftRegular_iff_right_eq_zero_of_mul + theorem isRegular_iff_eq_zero_of_mul + theorem isRightRegular_iff_left_eq_zero_of_mul + theorem noZeroDivisors_tfae Modified Mathlib/Algebra/Ring/NonZeroDivisors.lean - theorem IsLeftRegular.mem_nonZeroDivisorsLeft - theorem IsRightRegular.mem_nonZeroDivisorsRight +/- theorem dvd_cancel_right_mem_nonZeroDivisors +/- theorem isRegular_iff_mem_nonZeroDivisors +/- theorem mul_cancel_left_mem_nonZeroDivisors Modified Mathlib/Data/Finsupp/SMul.lean Modified Mathlib/Data/Matrix/Diagonal.lean Modified Mathlib/GroupTheory/GroupAction/Hom.lean + theorem IsSMulRegular.of_injective Modified Mathlib/RingTheory/Regular/IsSMulRegular.lean - theorem isSMulRegular_iff_mem_nonZeroSMulDivisors - theorem isSMulRegular_iff_smul_eq_zero_imp_eq_zero - theorem isSMulRegular_of_smul_eq_zero_imp_eq_zero - theorem isSMulRegular_on_quot_iff_smul_mem_implies_mem - theorem isSMulRegular_on_submodule_iff_mem_imp_smul_eq_zero_imp_eq_zero + theorem isSMulRegular_quotient_iff_mem_of_smul_mem + theorem isSMulRegular_submodule_iff_right_eq_zero_of_smul - theorem mem_of_isSMulRegular_on_quot_of_smul_mem + theorem mem_of_isSMulRegular_quotient_of_smul_mem 2025-08-11 11:23:36 e1f5037 feat(Topology): finite dimensional vector space over locally compact complete space is locally compact (#27449) *From the 2025 Local Class Field Theory Workshop.* ESTIMATED CHANGES Modified Mathlib/Topology/Algebra/Module/FiniteDimension.lean + theorem LocallyCompactSpace.of_finiteDimensional_of_complete 2025-08-11 11:23:34 f8b8b9f feat(RingTheory/Valuation): the trivial valuation, as One (Valuation R Γ₀) (#27312) ESTIMATED CHANGES Modified Mathlib/Algebra/GroupWithZero/Hom.lean + theorem MonoidWithZeroHom.one_apply_def + theorem MonoidWithZeroHom.one_apply_eq_zero_iff Modified Mathlib/RingTheory/Valuation/Basic.lean + theorem Valuation.not_isNontrivial_one + theorem Valuation.one_apply_def + theorem Valuation.one_apply_eq_zero_iff + theorem Valuation.one_apply_le_one + theorem Valuation.one_apply_lt_one_iff + theorem Valuation.one_apply_of_ne_zero + theorem Valuation.toMonoidWithZeroHom_one 2025-08-11 11:23:32 0fadc19 feat: IMO 1997 Q3 (#27159) ESTIMATED CHANGES Modified Archive.lean Added Archive/Imo/Imo1997Q3.lean + def Imo1997Q3.S + theorem Imo1997Q3.S_one_add_S_revPerm + theorem Imo1997Q3.lt_abs_add_of_sign_eq + theorem Imo1997Q3.result + theorem Imo1997Q3.sign_eq_of_abs_sub_le + theorem Imo1997Q3.sign_eq_of_contra 2025-08-11 11:23:31 0658602 feat(AlgebraicTopology): path objects in model categories (#26958) This PR dualizes #26171 which was about cylinder objects. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/AlgebraicTopology/ModelCategory/IsCofibrant.lean Added Mathlib/AlgebraicTopology/ModelCategory/PathObject.lean + theorem HomotopicalAlgebra.PathObject.exists_very_good + theorem HomotopicalAlgebra.PathObject.ofFactorizationData_p + def HomotopicalAlgebra.PathObject.symm + theorem HomotopicalAlgebra.PathObject.symm_p + structure HomotopicalAlgebra.PathObject + theorem HomotopicalAlgebra.PrepathObject.p_fst + theorem HomotopicalAlgebra.PrepathObject.p_snd + def HomotopicalAlgebra.PrepathObject.symm + theorem HomotopicalAlgebra.PrepathObject.symm_p + structure HomotopicalAlgebra.PrepathObject Modified Mathlib/CategoryTheory/Limits/Shapes/Pullback/CommSq.lean + theorem CategoryTheory.IsPullback.of_isLimit_binaryFan_of_isTerminal + theorem CategoryTheory.IsPullback.of_prod_fst_with_id 2025-08-11 10:52:53 c278b5e feat: interval in archimedean field contains fraction with large enough denominator (#27424) This is a slight generalization of `exists_rat_btwn` that can be used, for instance, to prove that there's a dyadic rational between any two elements. ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Archimedean/Basic.lean + theorem exists_div_btwn +/- theorem exists_rat_btwn 2025-08-11 10:26:06 e704c68 feat(RingTheory): add HahnSeries.ofFinsupp (#28136) Part of #27043 Hahn's embedding theorem ESTIMATED CHANGES Modified Mathlib/RingTheory/HahnSeries/Addition.lean + theorem HahnSeries.coeff_ofFinsuppLinearMap + def HahnSeries.ofFinsuppLinearMap Modified Mathlib/RingTheory/HahnSeries/Basic.lean + theorem HahnSeries.coeff_ofFinsupp + def HahnSeries.ofFinsupp 2025-08-11 10:26:04 35f3847 feat(RingTheory/Finiteness): add `Submodule.fg_iff_exists_fin_linearMap` (#27957) which generalizes `Module.Finite.exists_fin'`. Also clean up some unused universes/variables and simplify the proof of `Module.Finite.exists_fin'` using this new theorem. ESTIMATED CHANGES Modified Mathlib/RingTheory/Finiteness/Cardinality.lean +/- theorem Module.Finite.exists_fin' + theorem Submodule.fg_iff_exists_fin_linearMap 2025-08-11 09:44:53 ba407fd refactor(CategoryTheory): have Functor not extend Prefunctor (#28106) All the resulting changes are improvements; we just get to remove a bunch of hacky projections which were otherwise necessary to steer elaboration. ESTIMATED CHANGES Modified Mathlib/Algebra/Category/ModuleCat/Presheaf.lean Modified Mathlib/AlgebraicGeometry/Modules/Tilde.lean Modified Mathlib/AlgebraicGeometry/Scheme.lean Modified Mathlib/AlgebraicTopology/FundamentalGroupoid/Basic.lean Modified Mathlib/CategoryTheory/Closed/Cartesian.lean + def CategoryTheory.exp.delabFunctorObjExp - def CategoryTheory.exp.delabPrefunctorObjExp Modified Mathlib/CategoryTheory/Comma/Presheaf/Colimit.lean Modified Mathlib/CategoryTheory/EqToHom.lean Modified Mathlib/CategoryTheory/Functor/Basic.lean + theorem CategoryTheory.Functor.congr_map + def CategoryTheory.Functor.toPrefunctor Modified Mathlib/CategoryTheory/Functor/FullyFaithful.lean Modified Mathlib/CategoryTheory/Functor/Functorial.lean Modified Mathlib/CategoryTheory/Galois/Decomposition.lean Modified Mathlib/CategoryTheory/Groupoid.lean Modified Mathlib/CategoryTheory/Limits/IsLimit.lean Modified Mathlib/CategoryTheory/Limits/Preserves/Basic.lean Modified Mathlib/CategoryTheory/Limits/Presheaf.lean Modified Mathlib/CategoryTheory/Limits/Shapes/ConcreteCategory.lean Modified Mathlib/CategoryTheory/Monoidal/Opposite.lean +/- def CategoryTheory.mopFunctor +/- def CategoryTheory.unmopFunctor Modified Mathlib/CategoryTheory/PathCategory/Basic.lean Modified Mathlib/CategoryTheory/Sites/PreservesLocallyBijective.lean Modified Mathlib/CategoryTheory/Types.lean Modified Mathlib/Topology/Sheaves/Presheaf.lean 2025-08-11 09:25:04 eac80b1 feat: roots of a root system are determined by their pairings with elements of a base (#28086) Also two minor loosely-related lemmas ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/RootSystem/Base.lean + theorem RootPairing.Base.exists_mem_support_pos_pairingIn_ne_zero + theorem RootPairing.Base.support_nonempty Modified Mathlib/LinearAlgebra/RootSystem/CartanMatrix.lean + theorem RootPairing.Base.injective_pairingIn 2025-08-11 09:25:02 16d91fe feat: drop assumption `[P.IsNotG2]` in lemma `RootPairing.lie_e_f_ne` (#28011) We also move a few lemmas from `LinearAlgebra.RootSystem.Chain` into `LinearAlgebra.RootSystem.Finite.G2` so that we can invert the import order of these two files. The motivation for this is to allow us to import `LinearAlgebra.RootSystem.Base` into `LinearAlgebra.RootSystem.Finite.G2`. ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/RootSystem/Chain.lean - theorem RootPairing.chainBotCoeff_add_chainTopCoeff_le_two - theorem RootPairing.chainBotCoeff_if_one_zero - theorem RootPairing.chainTopCoeff_if_one_zero - theorem RootPairing.pairingIn_le_zero_of_root_add_mem - theorem RootPairing.zero_le_pairingIn_of_root_sub_mem Modified Mathlib/LinearAlgebra/RootSystem/Defs.lean + theorem RootPairing.pairing_eq_add_of_root_eq_smul_add_smul Modified Mathlib/LinearAlgebra/RootSystem/Finite/G2.lean + def RootPairing.EmbeddedG2.basis + theorem RootPairing.IsG2.card_base_support_eq_two + theorem RootPairing.IsG2.nonempty + theorem RootPairing.IsG2.span_eq_rootSpan_int + def RootPairing.IsG2.toEmbeddedG2 + theorem RootPairing.chainBotCoeff_add_chainTopCoeff_le_two + theorem RootPairing.chainBotCoeff_if_one_zero + theorem RootPairing.chainTopCoeff_if_one_zero + theorem RootPairing.pairingIn_le_zero_of_root_add_mem + theorem RootPairing.zero_le_pairingIn_of_root_sub_mem Modified Mathlib/LinearAlgebra/RootSystem/GeckConstruction/Basic.lean +/- theorem RootPairing.GeckConstruction.lie_e_f_ne Modified Mathlib/LinearAlgebra/RootSystem/GeckConstruction/Lemmas.lean + theorem RootPairing.chainBotCoeff_mul_chainTopCoeff.isNotG2 Modified Mathlib/LinearAlgebra/RootSystem/IsValuedIn.lean + theorem RootPairing.pairingIn_eq_add_of_root_eq_smul_add_smul 2025-08-11 09:25:00 862b4cf chore(Algebra/DirectSum): golf entire `mulHom_of_of` using `simp` (#27907) ESTIMATED CHANGES Modified Mathlib/Algebra/DirectSum/Ring.lean 2025-08-11 08:45:12 9439afe feat: the Geck Construction yields trace-free matrices (#27831) This will be used with `LieAlgebra.hasTrivialRadical_of_isIrreducible_of_isFaithful` (and a proof of irreducibility) to prove semisimplicity. ESTIMATED CHANGES Modified Mathlib/Algebra/Lie/Semisimple/Lemmas.lean + theorem LieAlgebra.trace_toEnd_eq_zero Modified Mathlib/Data/Matrix/Mul.lean + theorem Matrix.pow_col_eq_zero_of_le + theorem Matrix.pow_row_eq_zero_of_le Modified Mathlib/LinearAlgebra/RootSystem/GeckConstruction/Basic.lean + theorem RootPairing.GeckConstruction.isNilpotent_e + theorem RootPairing.GeckConstruction.isNilpotent_f + theorem RootPairing.GeckConstruction.trace_toEnd_eq_zero +/- theorem RootPairing.GeckConstruction.ω_mul_ω Modified Mathlib/Order/ConditionallyCompleteLattice/Finset.lean + theorem Finite.ciInf_le + theorem Finite.le_ciSup Modified Mathlib/RingTheory/Finiteness/Nilpotent.lean + theorem Matrix.isNilpotent_iff + theorem Matrix.isNilpotent_iff_forall_col + theorem Matrix.isNilpotent_iff_forall_row + theorem Matrix.isNilpotent_transpose_iff Modified Mathlib/RingTheory/Nilpotent/Lemmas.lean + theorem Matrix.isNilpotent_toLin'_iff 2025-08-11 08:33:24 6c7a256 feat(Algebra/Homology): complementary embeddings (#27536) Given two embeddings `e₁ : c₁.Embedding c` and `e₂ : c₂.Embedding c` of complex shapes, we introduce a property `e₁.AreComplementary e₂` saying that the image subsets of the indices of `c₁` and `c₂` form a partition of the indices of `c`. If `e₁.IsTruncLE` and `e₂.IsTruncGE`, and `K : HomologicalComplex C c`, we construct a quasi-isomorphism `shortComplexTruncLEX₃ToTruncGE` between the cokernel of `K.ιTruncLE e₁ : K.truncLE e₁ ⟶ K` and `K.truncGE e₂`. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Homology/Embedding/AreComplementary.lean + theorem ComplexShape.Embedding.AreComplementary.Boundary.exists₁ + theorem ComplexShape.Embedding.AreComplementary.Boundary.exists₂ + theorem ComplexShape.Embedding.AreComplementary.Boundary.fst + theorem ComplexShape.Embedding.AreComplementary.Boundary.fst_inj + theorem ComplexShape.Embedding.AreComplementary.Boundary.of_boundaryGE + theorem ComplexShape.Embedding.AreComplementary.Boundary.of_boundaryLE + theorem ComplexShape.Embedding.AreComplementary.Boundary.snd + theorem ComplexShape.Embedding.AreComplementary.Boundary.snd_inj + def ComplexShape.Embedding.AreComplementary.Boundary + def ComplexShape.Embedding.AreComplementary.desc' + theorem ComplexShape.Embedding.AreComplementary.desc'_inl + theorem ComplexShape.Embedding.AreComplementary.desc'_inr + def ComplexShape.Embedding.AreComplementary.desc.aux + theorem ComplexShape.Embedding.AreComplementary.desc.aux_trans + theorem ComplexShape.Embedding.AreComplementary.desc_inl + theorem ComplexShape.Embedding.AreComplementary.desc_inr + theorem ComplexShape.Embedding.AreComplementary.equiv_inl + theorem ComplexShape.Embedding.AreComplementary.equiv_inr + theorem ComplexShape.Embedding.AreComplementary.exists_i₁ + theorem ComplexShape.Embedding.AreComplementary.exists_i₂ + def ComplexShape.Embedding.AreComplementary.fromSum + theorem ComplexShape.Embedding.AreComplementary.fromSum_bijective + theorem ComplexShape.Embedding.AreComplementary.hom_ext' + theorem ComplexShape.Embedding.AreComplementary.hom_ext + theorem ComplexShape.Embedding.AreComplementary.isStrictlySupportedOutside₁_iff + theorem ComplexShape.Embedding.AreComplementary.isStrictlySupportedOutside₂_iff + theorem ComplexShape.Embedding.AreComplementary.isSupportedOutside₁_iff + theorem ComplexShape.Embedding.AreComplementary.isSupportedOutside₂_iff + theorem ComplexShape.Embedding.AreComplementary.symm + structure ComplexShape.Embedding.AreComplementary + theorem ComplexShape.Embedding.embeddingUpInt_areComplementary + theorem HomologicalComplex.g_shortComplexTruncLEX₃ToTruncGE 2025-08-11 07:48:41 2f21638 chore: remove unnecessary maxHeartbeats options (#28217) These are no longer needed. ESTIMATED CHANGES Modified Mathlib/Algebra/Category/BialgCat/Monoidal.lean Modified Mathlib/Algebra/Category/Ring/Adjunctions.lean Modified Mathlib/Algebra/Homology/HomotopyCategory/Triangulated.lean Modified Mathlib/Analysis/InnerProductSpace/LinearMap.lean Modified Mathlib/CategoryTheory/Functor/Flat.lean Modified Mathlib/GroupTheory/Coxeter/Matrix.lean Modified Mathlib/RingTheory/Spectrum/Prime/ChevalleyComplexity.lean 2025-08-11 07:26:28 7add01f chore: remove last backward compatibility flags (#28216) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Limits/Final.lean Modified Mathlib/CategoryTheory/SmallObject/Iteration/Nonempty.lean Modified Mathlib/Order/RelSeries.lean 2025-08-11 06:47:00 cf5fb8b feat(CategoryTheory/Limits): filtered colimits of types (#27504) In this file, given a functor `F : J ⥤ Type w₀` from a filtered category `J`, we compute the equivalence relation generated by `F.ColimitTypeRel` on `(j : J) × (F.obj j)`. Given `c : CoconeTypes F`, we deduce a lemma `Functor.CoconeTypes.injective_descColimitType_iff_of_isFiltered` which gives a concrete condition under which the map `F.descColimitType c : F.ColimitType → c.pt` is injective, which is an important step when proving `c.IsColimit`. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/CategoryTheory/Limits/Types/ColimitType.lean + theorem CategoryTheory.Functor.CoconeTypes.descColimitType_surjective_iff Added Mathlib/CategoryTheory/Limits/Types/ColimitTypeFiltered.lean + theorem CategoryTheory.Functor.CoconeTypes.descColimitType_injective_iff_of_isFiltered' + theorem CategoryTheory.Functor.CoconeTypes.descColimitType_injective_iff_of_isFiltered + theorem CategoryTheory.Functor.eqvGen_colimitTypeRel_iff_of_isFiltered + theorem CategoryTheory.Functor.ιColimitType_eq_iff_of_isFiltered' + theorem CategoryTheory.Functor.ιColimitType_eq_iff_of_isFiltered 2025-08-11 06:03:20 4eb75f4 chore(CategoryTheory/Sites): golf `toPlus_eq_mk` (#28194) Motivation: Avoid (partial) proof duplication. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Sites/ConcreteSheafification.lean 2025-08-11 06:03:18 8a8363e chore: golf using `simp` (#27952) ESTIMATED CHANGES Modified Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Instances.lean Modified Mathlib/Analysis/InnerProductSpace/Orthonormal.lean Modified Mathlib/CategoryTheory/Monoidal/Bimod.lean Modified Mathlib/CategoryTheory/Monoidal/Hopf_.lean Modified Mathlib/Combinatorics/Quiver/Push.lean Modified Mathlib/Computability/Language.lean Modified Mathlib/Data/DFinsupp/Defs.lean Modified Mathlib/Data/Int/Bitwise.lean Modified Mathlib/Data/List/Sigma.lean Modified Mathlib/Data/Seq/Seq.lean Modified Mathlib/GroupTheory/Perm/DomMulAct.lean Modified Mathlib/LinearAlgebra/PiTensorProduct.lean Modified Mathlib/LinearAlgebra/TensorProduct/Basic.lean Modified Mathlib/MeasureTheory/Measure/WithDensity.lean Modified Mathlib/RingTheory/FractionalIdeal/Operations.lean Modified Mathlib/RingTheory/Trace/Quotient.lean Modified Mathlib/SetTheory/Ordinal/Notation.lean Modified Mathlib/Topology/Bornology/BoundedOperation.lean 2025-08-11 06:03:16 fe0214b chore(ModelTheory/Semantics): golf entire `realize_all_liftAt_one_self` using `simp` (#27928) ESTIMATED CHANGES Modified Mathlib/ModelTheory/Semantics.lean 2025-08-11 05:40:07 0e192ea chore(Data/ZMod): golf `eq_iff_modEq_nat` (#28200) Motivation: Avoid (partial) proof duplication. ESTIMATED CHANGES Modified Mathlib/Data/ZMod/Basic.lean +/- theorem ZMod.eq_iff_modEq_nat 2025-08-11 04:09:06 2bf876c chore(Geometry/Manifold/MFDeriv): golf `Filter.EventuallyEq.mdifferentiableWithinAt_iff` (#28199) Motivation: Avoid (partial) proof duplication. ESTIMATED CHANGES Modified Mathlib/Geometry/Manifold/MFDeriv/Basic.lean 2025-08-11 03:57:10 0025b4a chore(scripts): update nolints.json (#28214) I am happy to remove some nolints for you! ESTIMATED CHANGES Modified scripts/nolints.json 2025-08-11 01:30:11 cc4b4fd chore: update Mathlib dependencies 2025-08-11 (#28210) This PR updates the Mathlib dependencies. ESTIMATED CHANGES Modified lake-manifest.json 2025-08-11 00:35:17 8ad5cdd feat: a bounded function is integrable against a finite measure (#28173) From MiscYD ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Integral/IntegrableOn.lean + theorem MeasureTheory.Integrable.of_bound + theorem MeasureTheory.IntegrableOn.of_bound 2025-08-10 23:44:02 c17e2c1 feat: accept `docComment` syntax for docstrings in `to_additive` (#28133) This PR adds support to `to_additive` to accept additive docstrings written in `docComment` syntax, e.g. `@[to_additive /-- I am an additive docstring! -/]` It does not remove support for or deprecate existing `str` syntax for `to_additive` docstrings, nor does it reformat existing `to_additive` docstrings in Mathlib; see #28066 and #28135. ESTIMATED CHANGES Modified Mathlib/Tactic/ToAdditive/Frontend.lean Modified MathlibTest/toAdditive.lean + theorem mulTrivial' + theorem mulTrivial 2025-08-10 19:54:19 00a5ef3 chore(Algebra): fix confusing docstring of IsMul/AddTorsionFree (#28177) ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Torsion.lean 2025-08-10 19:06:08 ffac4c5 feat(Algebra/Group/Center): `center (A × B) = center A ×ˢ center B` (#28009) ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Center.lean + theorem Set.center_prod 2025-08-10 18:31:52 5646947 chore: fix typo (#28190) coerction > coercion (×2) ESTIMATED CHANGES Modified Mathlib/Tactic/FunProp/Mor.lean 2025-08-10 16:17:38 e858849 chore: update Mathlib dependencies 2025-08-10 (#28183) This PR updates the Mathlib dependencies. ESTIMATED CHANGES Modified lake-manifest.json 2025-08-10 16:17:36 a7e5d7b chore: turn LinearMap.IsSymm into a structure (#27873) This is to allow extending the structure to define positive semidefinite sesquilinear forms in #28052, similarly to what was done in #26274. ESTIMATED CHANGES Modified Counterexamples/QuadraticForm.lean +/- theorem Counterexample.isSymm_B Modified Mathlib/Algebra/Lie/TraceForm.lean +/- theorem LieModule.traceForm_isSymm Modified Mathlib/LinearAlgebra/BilinearForm/Properties.lean Modified Mathlib/LinearAlgebra/BilinearForm/TensorProduct.lean Modified Mathlib/LinearAlgebra/QuadraticForm/Basic.lean Modified Mathlib/LinearAlgebra/QuadraticForm/Dual.lean +/- theorem LinearMap.isSymm_dualProd Modified Mathlib/LinearAlgebra/RootSystem/Finite/CanonicalBilinear.lean Modified Mathlib/LinearAlgebra/RootSystem/OfBilinear.lean Modified Mathlib/LinearAlgebra/RootSystem/RootPositive.lean Modified Mathlib/LinearAlgebra/SesquilinearForm.lean +/- theorem LinearMap.IsSymm.domRestrict + structure LinearMap.IsSymm - def LinearMap.IsSymm + theorem LinearMap.isSymm_def +/- theorem LinearMap.isSymm_zero 2025-08-10 15:01:32 61d24d1 feat(Topology/ValuedField): range of valuation on competion is the same as base field (#27264) and other helper API to prepare for ValuativeTopology ESTIMATED CHANGES Modified Mathlib/Topology/Algebra/Valued/ValuedField.lean + theorem Valuation.inversion_estimate' + theorem Valued.closure_coe_completion_v_mul_v_lt + theorem Valued.continuous_extensionValuation + theorem Valued.exists_coe_eq_v + theorem Valued.extensionValuation_apply_coe + theorem Valued.extension_eq_zero_iff + theorem Valued.valuation_isClosedMap 2025-08-10 13:13:20 b457494 feat(Analysis/Calculus/IteratedDeriv): iteratedDerivWithin = iteratedDeriv (#28170) Adds a simple theorem `iteratedDerivWithin_eq_iteratedDeriv` as a consequence of `iteratedFDerivWithin_eq_iteratedFDeriv`. From CLT ESTIMATED CHANGES Modified Mathlib/Analysis/Calculus/IteratedDeriv/Defs.lean + theorem iteratedDerivWithin_eq_iteratedDeriv 2025-08-10 12:55:13 1bc5791 feat: taking the product of probability measures is a continuous map (#27932) ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Constructions/BorelSpace/Basic.lean + theorem null_frontier_inter Modified Mathlib/MeasureTheory/Measure/FiniteMeasure.lean + theorem MeasureTheory.FiniteMeasure.apply_union_le Modified Mathlib/MeasureTheory/Measure/FiniteMeasureProd.lean +/- theorem MeasureTheory.FiniteMeasure.prod_prod + theorem MeasureTheory.ProbabilityMeasure.continuous_prod +/- theorem MeasureTheory.ProbabilityMeasure.prod_prod Modified Mathlib/MeasureTheory/Measure/ProbabilityMeasure.lean + theorem MeasureTheory.ProbabilityMeasure.apply_union_le 2025-08-10 09:48:04 c75cfde feat: ENNReal.add_sub_add_eq_sub_right/left (#28081) Similar to `add_tsub_add_eq_tsub_right`, but for ENNReal we need the additional hypothesis that one of the terms is finite. ESTIMATED CHANGES Modified Mathlib/Data/ENNReal/Operations.lean + theorem ENNReal.add_sub_add_eq_sub_left + theorem ENNReal.add_sub_add_eq_sub_right 2025-08-10 09:22:34 4f3d768 feat(ProbabilityTheory): a new predicate HasLaw (#27628) Introduce a predicate `HasLaw X μ P` stating that the random variable `X` has law `μ` under the measure `P`. This is expressed as `P.map X = μ`. We also require `X` to be `P`-almost-everywhere measurable to avoid pathological cases. from BrownianMotion ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Probability/HasLaw.lean + theorem MeasureTheory.MeasurePreserving.hasLaw + theorem ProbabilityTheory.HasLaw.comp + theorem ProbabilityTheory.HasLaw.congr + theorem ProbabilityTheory.HasLaw.covariance_comp + theorem ProbabilityTheory.HasLaw.covariance_fun_comp + theorem ProbabilityTheory.HasLaw.fun_comp + theorem ProbabilityTheory.HasLaw.integral_comp + theorem ProbabilityTheory.HasLaw.integral_eq + theorem ProbabilityTheory.HasLaw.lintegral_comp + theorem ProbabilityTheory.HasLaw.measurePreserving + theorem ProbabilityTheory.HasLaw.variance_eq + structure ProbabilityTheory.HasLaw + theorem ProbabilityTheory.HasPDF.hasLaw + theorem ProbabilityTheory.IndepFun.hasLaw_fun_mul + theorem ProbabilityTheory.IndepFun.hasLaw_mul 2025-08-10 08:00:36 58586f4 feat(Analysis): additional `AsymptoticEquivalent` API (#26882) Add four new theorems about asymptotic equivalence. These are used in the Brownian Motion project. ESTIMATED CHANGES Modified Mathlib/Analysis/Asymptotics/AsymptoticEquivalent.lean + theorem Asymptotics.IsEquivalent.add_add_of_nonneg + theorem Asymptotics.IsEquivalent.add_const_of_norm_tendsto_atTop + theorem Asymptotics.IsEquivalent.const_add_of_norm_tendsto_atTop Modified Mathlib/Analysis/Asymptotics/SpecificAsymptotics.lean + theorem Asymptotics.IsEquivalent.rpow 2025-08-10 05:40:00 8c8a8e8 feat(Monoidal/Grp_): `((forget₂Mon_ C).obj G).X = G.X` (#28137) Some missing projection lemmas. From Toric ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Monoidal/CommGrp_.lean Modified Mathlib/CategoryTheory/Monoidal/CommMon_.lean Modified Mathlib/CategoryTheory/Monoidal/Grp_.lean 2025-08-10 05:26:49 3fa1215 chore(CategoryTheory/Action): missing `reassoc` on `Action.Hom.comp_hom` (#28145) From ClassFieldTheory ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Action/Basic.lean 2025-08-10 04:28:51 b0fecb3 chore(CategoryTheory/Monoidal): golf `id_whiskerLeft_bimod` using `grind` (#28161) Motivation: Make use of available automation (and shorten the proof). ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Monoidal/Bimod.lean 2025-08-10 04:28:50 495a584 chore(CategoryTheory/Preadditive): golf `Biproduct.column_nonzero_of_iso'` using `grind` (#28160) Motivation: Make use of available automation (and shorten the proof). ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Preadditive/Biproducts.lean 2025-08-10 04:28:48 6afd9f5 chore(CategoryTheory/Localization): golf `MorphismProperty.map_eq_iff_postcomp` using `grind` (#28159) Motivation: Make use of available automation (and shorten the proof). ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Localization/CalculusOfFractions.lean 2025-08-10 04:28:47 8f2faac chore(CategoryTheory/Sites): golf `isSheafFor_bind` using `grind` (#28157) Motivation: Make use of available automation (and shorten the proof).
Show trace profiling of isSheafFor_bind ### Before ``` ℹ [838/838] Replayed Mathlib.CategoryTheory.Sites.Canonical info: Mathlib/CategoryTheory/Sites/Canonical.lean:48:0: [Elab.command] [0.014550] /-- To show `P` is a sheaf for the binding of `U` with `B`, it suffices to show that `P` is a sheaf for `U`, that `P` is a sheaf for each sieve in `B`, and that it is separated for any pullback of any sieve in `B`. This is mostly an auxiliary lemma to show `isSheafFor_trans`. Adapted from [Elephant], Lemma C2.1.7(i) with suggestions as mentioned in https://math.stackexchange.com/a/358709/ -/ theorem isSheafFor_bind (P : Cᵒᵖ ⥤ Type v) (U : Sieve X) (B : ∀ ⦃Y⦄ ⦃f : Y ⟶ X⦄, U f → Sieve Y) (hU : Presieve.IsSheafFor P (U : Presieve X)) (hB : ∀ ⦃Y⦄ ⦃f : Y ⟶ X⦄ (hf : U f), Presieve.IsSheafFor P (B hf : Presieve Y)) (hB' : ∀ ⦃Y⦄ ⦃f : Y ⟶ X⦄ (h : U f) ⦃Z⦄ (g : Z ⟶ Y), Presieve.IsSeparatedFor P (((B h).pullback g) : Presieve Z)) : Presieve.IsSheafFor P (Sieve.bind (U : Presieve X) B : Presieve X) := by intro s hs let y : ∀ ⦃Y⦄ ⦃f : Y ⟶ X⦄ (hf : U f), Presieve.FamilyOfElements P (B hf : Presieve Y) := fun Y f hf Z g hg => s _ (Presieve.bind_comp _ _ hg) have hy : ∀ ⦃Y⦄ ⦃f : Y ⟶ X⦄ (hf : U f), (y hf).Compatible := by intro Y f H Y₁ Y₂ Z g₁ g₂ f₁ f₂ hf₁ hf₂ comm apply hs apply reassoc_of% comm let t : Presieve.FamilyOfElements P (U : Presieve X) := fun Y f hf => (hB hf).amalgamate (y hf) (hy hf) have ht : ∀ ⦃Y⦄ ⦃f : Y ⟶ X⦄ (hf : U f), (y hf).IsAmalgamation (t f hf) := fun Y f hf => (hB hf).isAmalgamation _ have hT : t.Compatible := by rw [Presieve.compatible_iff_sieveCompatible] intro Z W f h hf apply (hB (U.downward_closed hf h)).isSeparatedFor.ext intro Y l hl apply (hB' hf (l ≫ h)).ext intro M m hm have : bind U B (m ≫ l ≫ h ≫ f) := by simpa using (Presieve.bind_comp f hf hm : bind U B _) trans s (m ≫ l ≫ h ≫ f) this · have := ht (U.downward_closed hf h) _ ((B _).downward_closed hl m) rw [op_comp, FunctorToTypes.map_comp_apply] at this rw [this] change s _ _ = s _ _ -- Porting note: the proof was `by simp` congr 1 simp only [assoc] · have h : s _ _ = _ := (ht hf _ hm).symm conv_lhs at h => congr; rw [assoc, assoc] rw [h] simp only [op_comp, assoc, FunctorToTypes.map_comp_apply] refine ⟨hU.amalgamate t hT, ?_, ?_⟩ · rintro Z _ ⟨Y, f, g, hg, hf, rfl⟩ rw [op_comp, FunctorToTypes.map_comp_apply, Presieve.IsSheafFor.valid_glue _ _ _ hg] apply ht hg _ hf · intro y hy apply hU.isSeparatedFor.ext intro Y f hf apply (hB hf).isSeparatedFor.ext intro Z g hg rw [← FunctorToTypes.map_comp_apply, ← op_comp, hy _ (Presieve.bind_comp _ _ hg), hU.valid_glue _ _ hf, ht hf _ hg] [Elab.definition.header] [0.013428] CategoryTheory.Sheaf.isSheafFor_bind info: Mathlib/CategoryTheory/Sites/Canonical.lean:48:0: [Elab.async] [0.114179] elaborating proof of CategoryTheory.Sheaf.isSheafFor_bind [Elab.definition.value] [0.110524] CategoryTheory.Sheaf.isSheafFor_bind [Elab.step] [0.104029] intro s hs let y : ∀ ⦃Y⦄ ⦃f : Y ⟶ X⦄ (hf : U f), Presieve.FamilyOfElements P (B hf : Presieve Y) := fun Y f hf Z g hg => s _ (Presieve.bind_comp _ _ hg) have hy : ∀ ⦃Y⦄ ⦃f : Y ⟶ X⦄ (hf : U f), (y hf).Compatible := by intro Y f H Y₁ Y₂ Z g₁ g₂ f₁ f₂ hf₁ hf₂ comm apply hs apply reassoc_of% comm let t : Presieve.FamilyOfElements P (U : Presieve X) := fun Y f hf => (hB hf).amalgamate (y hf) (hy hf) have ht : ∀ ⦃Y⦄ ⦃f : Y ⟶ X⦄ (hf : U f), (y hf).IsAmalgamation (t f hf) := fun Y f hf => (hB hf).isAmalgamation _ have hT : t.Compatible := by rw [Presieve.compatible_iff_sieveCompatible] intro Z W f h hf apply (hB (U.downward_closed hf h)).isSeparatedFor.ext intro Y l hl apply (hB' hf (l ≫ h)).ext intro M m hm have : bind U B (m ≫ l ≫ h ≫ f) := by simpa using (Presieve.bind_comp f hf hm : bind U B _) trans s (m ≫ l ≫ h ≫ f) this · have := ht (U.downward_closed hf h) _ ((B _).downward_closed hl m) rw [op_comp, FunctorToTypes.map_comp_apply] at this rw [this] change s _ _ = s _ _ -- Porting note: the proof was `by simp` congr 1 simp only [assoc] · have h : s _ _ = _ := (ht hf _ hm).symm conv_lhs at h => congr; rw [assoc, assoc] rw [h] simp only [op_comp, assoc, FunctorToTypes.map_comp_apply] refine ⟨hU.amalgamate t hT, ?_, ?_⟩ · rintro Z _ ⟨Y, f, g, hg, hf, rfl⟩ rw [op_comp, FunctorToTypes.map_comp_apply, Presieve.IsSheafFor.valid_glue _ _ _ hg] apply ht hg _ hf · intro y hy apply hU.isSeparatedFor.ext intro Y f hf apply (hB hf).isSeparatedFor.ext intro Z g hg rw [← FunctorToTypes.map_comp_apply, ← op_comp, hy _ (Presieve.bind_comp _ _ hg), hU.valid_glue _ _ hf, ht hf _ hg] [Elab.step] [0.104019] intro s hs let y : ∀ ⦃Y⦄ ⦃f : Y ⟶ X⦄ (hf : U f), Presieve.FamilyOfElements P (B hf : Presieve Y) := fun Y f hf Z g hg => s _ (Presieve.bind_comp _ _ hg) have hy : ∀ ⦃Y⦄ ⦃f : Y ⟶ X⦄ (hf : U f), (y hf).Compatible := by intro Y f H Y₁ Y₂ Z g₁ g₂ f₁ f₂ hf₁ hf₂ comm apply hs apply reassoc_of% comm let t : Presieve.FamilyOfElements P (U : Presieve X) := fun Y f hf => (hB hf).amalgamate (y hf) (hy hf) have ht : ∀ ⦃Y⦄ ⦃f : Y ⟶ X⦄ (hf : U f), (y hf).IsAmalgamation (t f hf) := fun Y f hf => (hB hf).isAmalgamation _ have hT : t.Compatible := by rw [Presieve.compatible_iff_sieveCompatible] intro Z W f h hf apply (hB (U.downward_closed hf h)).isSeparatedFor.ext intro Y l hl apply (hB' hf (l ≫ h)).ext intro M m hm have : bind U B (m ≫ l ≫ h ≫ f) := by simpa using (Presieve.bind_comp f hf hm : bind U B _) trans s (m ≫ l ≫ h ≫ f) this · have := ht (U.downward_closed hf h) _ ((B _).downward_closed hl m) rw [op_comp, FunctorToTypes.map_comp_apply] at this rw [this] change s _ _ = s _ _ -- Porting note: the proof was `by simp` congr 1 simp only [assoc] · have h : s _ _ = _ := (ht hf _ hm).symm conv_lhs at h => congr; rw [assoc, assoc] rw [h] simp only [op_comp, assoc, FunctorToTypes.map_comp_apply] refine ⟨hU.amalgamate t hT, ?_, ?_⟩ · rintro Z _ ⟨Y, f, g, hg, hf, rfl⟩ rw [op_comp, FunctorToTypes.map_comp_apply, Presieve.IsSheafFor.valid_glue _ _ _ hg] apply ht hg _ hf · intro y hy apply hU.isSeparatedFor.ext intro Y f hf apply (hB hf).isSeparatedFor.ext intro Z g hg rw [← FunctorToTypes.map_comp_apply, ← op_comp, hy _ (Presieve.bind_comp _ _ hg), hU.valid_glue _ _ hf, ht hf _ hg] [Elab.step] [0.070744] have hT : t.Compatible := by rw [Presieve.compatible_iff_sieveCompatible] intro Z W f h hf apply (hB (U.downward_closed hf h)).isSeparatedFor.ext intro Y l hl apply (hB' hf (l ≫ h)).ext intro M m hm have : bind U B (m ≫ l ≫ h ≫ f) := by simpa using (Presieve.bind_comp f hf hm : bind U B _) trans s (m ≫ l ≫ h ≫ f) this · have := ht (U.downward_closed hf h) _ ((B _).downward_closed hl m) rw [op_comp, FunctorToTypes.map_comp_apply] at this rw [this] change s _ _ = s _ _ -- Porting note: the proof was `by simp` congr 1 simp only [assoc] · have h : s _ _ = _ := (ht hf _ hm).symm conv_lhs at h => congr; rw [assoc, assoc] rw [h] simp only [op_comp, assoc, FunctorToTypes.map_comp_apply] [Elab.step] [0.070651] focus refine no_implicit_lambda% (have hT : t.Compatible := ?body✝; ?_) case body✝ => with_annotate_state"by" ( rw [Presieve.compatible_iff_sieveCompatible] intro Z W f h hf apply (hB (U.downward_closed hf h)).isSeparatedFor.ext intro Y l hl apply (hB' hf (l ≫ h)).ext intro M m hm have : bind U B (m ≫ l ≫ h ≫ f) := by simpa using (Presieve.bind_comp f hf hm : bind U B _) trans s (m ≫ l ≫ h ≫ f) this · have := ht (U.downward_closed hf h) _ ((B _).downward_closed hl m) rw [op_comp, FunctorToTypes.map_comp_apply] at this rw [this] change s _ _ = s _ _ -- Porting note: the proof was `by simp` congr 1 simp only [assoc] · have h : s _ _ = _ := (ht hf _ hm).symm conv_lhs at h => congr; rw [assoc, assoc] rw [h] simp only [op_comp, assoc, FunctorToTypes.map_comp_apply]) [Elab.step] [0.070647] refine no_implicit_lambda% (have hT : t.Compatible := ?body✝; ?_) case body✝ => with_annotate_state"by" ( rw [Presieve.compatible_iff_sieveCompatible] intro Z W f h hf apply (hB (U.downward_closed hf h)).isSeparatedFor.ext intro Y l hl apply (hB' hf (l ≫ h)).ext intro M m hm have : bind U B (m ≫ l ≫ h ≫ f) := by simpa using (Presieve.bind_comp f hf hm : bind U B _) trans s (m ≫ l ≫ h ≫ f) this · have := ht (U.downward_closed hf h) _ ((B _).downward_closed hl m) rw [op_comp, FunctorToTypes.map_comp_apply] at this rw [this] change s _ _ = s _ _ -- Porting note: the proof was `by simp` congr 1 simp only [assoc] · have h : s _ _ = _ := (ht hf _ hm).symm conv_lhs at h => congr; rw [assoc, assoc] rw [h] simp only [op_comp, assoc, FunctorToTypes.map_comp_apply]) [Elab.step] [0.070644] refine no_implicit_lambda% (have hT : t.Compatible := ?body✝; ?_) case body✝ => with_annotate_state"by" ( rw [Presieve.compatible_iff_sieveCompatible] intro Z W f h hf apply (hB (U.downward_closed hf h)).isSeparatedFor.ext intro Y l hl apply (hB' hf (l ≫ h)).ext intro M m hm have : bind U B (m ≫ l ≫ h ≫ f) := by simpa using (Presieve.bind_comp f hf hm : bind U B _) trans s (m ≫ l ≫ h ≫ f) this · have := ht (U.downward_closed hf h) _ ((B _).downward_closed hl m) rw [op_comp, FunctorToTypes.map_comp_apply] at this rw [this] change s _ _ = s _ _ -- Porting note: the proof was `by simp` congr 1 simp only [assoc] · have h : s _ _ = _ := (ht hf _ hm).symm conv_lhs at h => congr; rw [assoc, assoc] rw [h] simp only [op_comp, assoc, FunctorToTypes.map_comp_apply]) [Elab.step] [0.070400] case body✝ => with_annotate_state"by" ( rw [Presieve.compatible_iff_sieveCompatible] intro Z W f h hf apply (hB (U.downward_closed hf h)).isSeparatedFor.ext intro Y l hl apply (hB' hf (l ≫ h)).ext intro M m hm have : bind U B (m ≫ l ≫ h ≫ f) := by simpa using (Presieve.bind_comp f hf hm : bind U B _) trans s (m ≫ l ≫ h ≫ f) this · have := ht (U.downward_closed hf h) _ ((B _).downward_closed hl m) rw [op_comp, FunctorToTypes.map_comp_apply] at this rw [this] change s _ _ = s _ _ -- Porting note: the proof was `by simp` congr 1 simp only [assoc] · have h : s _ _ = _ := (ht hf _ hm).symm conv_lhs at h => congr; rw [assoc, assoc] rw [h] simp only [op_comp, assoc, FunctorToTypes.map_comp_apply]) [Elab.step] [0.070383] with_annotate_state"by" ( rw [Presieve.compatible_iff_sieveCompatible] intro Z W f h hf apply (hB (U.downward_closed hf h)).isSeparatedFor.ext intro Y l hl apply (hB' hf (l ≫ h)).ext intro M m hm have : bind U B (m ≫ l ≫ h ≫ f) := by simpa using (Presieve.bind_comp f hf hm : bind U B _) trans s (m ≫ l ≫ h ≫ f) this · have := ht (U.downward_closed hf h) _ ((B _).downward_closed hl m) rw [op_comp, FunctorToTypes.map_comp_apply] at this rw [this] change s _ _ = s _ _ -- Porting note: the proof was `by simp` congr 1 simp only [assoc] · have h : s _ _ = _ := (ht hf _ hm).symm conv_lhs at h => congr; rw [assoc, assoc] rw [h] simp only [op_comp, assoc, FunctorToTypes.map_comp_apply]) [Elab.step] [0.070380] with_annotate_state"by" ( rw [Presieve.compatible_iff_sieveCompatible] intro Z W f h hf apply (hB (U.downward_closed hf h)).isSeparatedFor.ext intro Y l hl apply (hB' hf (l ≫ h)).ext intro M m hm have : bind U B (m ≫ l ≫ h ≫ f) := by simpa using (Presieve.bind_comp f hf hm : bind U B _) trans s (m ≫ l ≫ h ≫ f) this · have := ht (U.downward_closed hf h) _ ((B _).downward_closed hl m) rw [op_comp, FunctorToTypes.map_comp_apply] at this rw [this] change s _ _ = s _ _ -- Porting note: the proof was `by simp` congr 1 simp only [assoc] · have h : s _ _ = _ := (ht hf _ hm).symm conv_lhs at h => congr; rw [assoc, assoc] rw [h] simp only [op_comp, assoc, FunctorToTypes.map_comp_apply]) [Elab.step] [0.070377] with_annotate_state"by" ( rw [Presieve.compatible_iff_sieveCompatible] intro Z W f h hf apply (hB (U.downward_closed hf h)).isSeparatedFor.ext intro Y l hl apply (hB' hf (l ≫ h)).ext intro M m hm have : bind U B (m ≫ l ≫ h ≫ f) := by simpa using (Presieve.bind_comp f hf hm : bind U B _) trans s (m ≫ l ≫ h ≫ f) this · have := ht (U.downward_closed hf h) _ ((B _).downward_closed hl m) rw [op_comp, FunctorToTypes.map_comp_apply] at this rw [this] change s _ _ = s _ _ -- Porting note: the proof was `by simp` congr 1 simp only [assoc] · have h : s _ _ = _ := (ht hf _ hm).symm conv_lhs at h => congr; rw [assoc, assoc] rw [h] simp only [op_comp, assoc, FunctorToTypes.map_comp_apply]) [Elab.step] [0.070374] ( rw [Presieve.compatible_iff_sieveCompatible] intro Z W f h hf apply (hB (U.downward_closed hf h)).isSeparatedFor.ext intro Y l hl apply (hB' hf (l ≫ h)).ext intro M m hm have : bind U B (m ≫ l ≫ h ≫ f) := by simpa using (Presieve.bind_comp f hf hm : bind U B _) trans s (m ≫ l ≫ h ≫ f) this · have := ht (U.downward_closed hf h) _ ((B _).downward_closed hl m) rw [op_comp, FunctorToTypes.map_comp_apply] at this rw [this] change s _ _ = s _ _ -- Porting note: the proof was `by simp` congr 1 simp only [assoc] · have h : s _ _ = _ := (ht hf _ hm).symm conv_lhs at h => congr; rw [assoc, assoc] rw [h] simp only [op_comp, assoc, FunctorToTypes.map_comp_apply]) [Elab.step] [0.070371] rw [Presieve.compatible_iff_sieveCompatible] intro Z W f h hf apply (hB (U.downward_closed hf h)).isSeparatedFor.ext intro Y l hl apply (hB' hf (l ≫ h)).ext intro M m hm have : bind U B (m ≫ l ≫ h ≫ f) := by simpa using (Presieve.bind_comp f hf hm : bind U B _) trans s (m ≫ l ≫ h ≫ f) this · have := ht (U.downward_closed hf h) _ ((B _).downward_closed hl m) rw [op_comp, FunctorToTypes.map_comp_apply] at this rw [this] change s _ _ = s _ _ -- Porting note: the proof was `by simp` congr 1 simp only [assoc] · have h : s _ _ = _ := (ht hf _ hm).symm conv_lhs at h => congr; rw [assoc, assoc] rw [h] simp only [op_comp, assoc, FunctorToTypes.map_comp_apply] [Elab.step] [0.070366] rw [Presieve.compatible_iff_sieveCompatible] intro Z W f h hf apply (hB (U.downward_closed hf h)).isSeparatedFor.ext intro Y l hl apply (hB' hf (l ≫ h)).ext intro M m hm have : bind U B (m ≫ l ≫ h ≫ f) := by simpa using (Presieve.bind_comp f hf hm : bind U B _) trans s (m ≫ l ≫ h ≫ f) this · have := ht (U.downward_closed hf h) _ ((B _).downward_closed hl m) rw [op_comp, FunctorToTypes.map_comp_apply] at this rw [this] change s _ _ = s _ _ -- Porting note: the proof was `by simp` congr 1 simp only [assoc] · have h : s _ _ = _ := (ht hf _ hm).symm conv_lhs at h => congr; rw [assoc, assoc] rw [h] simp only [op_comp, assoc, FunctorToTypes.map_comp_apply] [Elab.step] [0.048056] have : bind U B (m ≫ l ≫ h ≫ f) := by simpa using (Presieve.bind_comp f hf hm : bind U B _) [Elab.step] [0.048035] focus refine no_implicit_lambda% (have : bind U B (m ≫ l ≫ h ≫ f) := ?body✝; ?_) case body✝ => with_annotate_state"by" (simpa using (Presieve.bind_comp f hf hm : bind U B _)) [Elab.step] [0.048032] refine no_implicit_lambda% (have : bind U B (m ≫ l ≫ h ≫ f) := ?body✝; ?_) case body✝ => with_annotate_state"by" (simpa using (Presieve.bind_comp f hf hm : bind U B _)) [Elab.step] [0.048029] refine no_implicit_lambda% (have : bind U B (m ≫ l ≫ h ≫ f) := ?body✝; ?_) case body✝ => with_annotate_state"by" (simpa using (Presieve.bind_comp f hf hm : bind U B _)) [Elab.step] [0.018655] refine no_implicit_lambda% (have : bind U B (m ≫ l ≫ h ≫ f) := ?body✝; ?_) [Elab.step] [0.018606] expected type: P.map m.op (P.map l.op (t (h ≫ f) ⋯)) = P.map m.op (P.map l.op (P.map h.op (t f hf))), term no_implicit_lambda% (have : bind U B (m ≫ l ≫ h ≫ f) := ?body✝; ?_) [Elab.step] [0.018603] expected type: P.map m.op (P.map l.op (t (h ≫ f) ⋯)) = P.map m.op (P.map l.op (P.map h.op (t f hf))), term (have : bind U B (m ≫ l ≫ h ≫ f) := ?body✝; ?_) [Elab.step] [0.018598] expected type: P.map m.op (P.map l.op (t (h ≫ f) ⋯)) = P.map m.op (P.map l.op (P.map h.op (t f hf))), term have : bind U B (m ≫ l ≫ h ≫ f) := ?body✝; ?_ [Elab.step] [0.018298] expected type: Prop, term bind U B (m ≫ l ≫ h ≫ f) [Elab.step] [0.012305] expected type: M ⟶ X, term (m ≫ l ≫ h ≫ f) [Elab.step] [0.012300] expected type: M ⟶ X, term m ≫ l ≫ h ≫ f [Elab.step] [0.010181] expected type: M ⟶ X, term CategoryStruct.comp✝ m (l ≫ h ≫ f) [Elab.step] [0.029363] case body✝ => with_annotate_state"by" (simpa using (Presieve.bind_comp f hf hm : bind U B _)) [Elab.step] [0.029326] with_annotate_state"by" (simpa using (Presieve.bind_comp f hf hm : bind U B _)) [Elab.step] [0.029323] with_annotate_state"by" (simpa using (Presieve.bind_comp f hf hm : bind U B _)) [Elab.step] [0.029319] with_annotate_state"by" (simpa using (Presieve.bind_comp f hf hm : bind U B _)) [Elab.step] [0.029316] (simpa using (Presieve.bind_comp f hf hm : bind U B _)) [Elab.step] [0.029313] simpa using (Presieve.bind_comp f hf hm : bind U B _) [Elab.step] [0.029309] simpa using (Presieve.bind_comp f hf hm : bind U B _) [Elab.step] [0.029303] simpa using (Presieve.bind_comp f hf hm : bind U B _) [Elab.step] [0.011381] expected type: , term (Presieve.bind_comp f hf hm : bind U B _) Build completed successfully. ``` ### After ``` ℹ [838/838] Replayed Mathlib.CategoryTheory.Sites.Canonical info: Mathlib/CategoryTheory/Sites/Canonical.lean:48:0: [Elab.command] [0.013801] /-- To show `P` is a sheaf for the binding of `U` with `B`, it suffices to show that `P` is a sheaf for `U`, that `P` is a sheaf for each sieve in `B`, and that it is separated for any pullback of any sieve in `B`. This is mostly an auxiliary lemma to show `isSheafFor_trans`. Adapted from [Elephant], Lemma C2.1.7(i) with suggestions as mentioned in https://math.stackexchange.com/a/358709/ -/ theorem isSheafFor_bind (P : Cᵒᵖ ⥤ Type v) (U : Sieve X) (B : ∀ ⦃Y⦄ ⦃f : Y ⟶ X⦄, U f → Sieve Y) (hU : Presieve.IsSheafFor P (U : Presieve X)) (hB : ∀ ⦃Y⦄ ⦃f : Y ⟶ X⦄ (hf : U f), Presieve.IsSheafFor P (B hf : Presieve Y)) (hB' : ∀ ⦃Y⦄ ⦃f : Y ⟶ X⦄ (h : U f) ⦃Z⦄ (g : Z ⟶ Y), Presieve.IsSeparatedFor P (((B h).pullback g) : Presieve Z)) : Presieve.IsSheafFor P (Sieve.bind (U : Presieve X) B : Presieve X) := by intro s hs let y : ∀ ⦃Y⦄ ⦃f : Y ⟶ X⦄ (hf : U f), Presieve.FamilyOfElements P (B hf : Presieve Y) := fun Y f hf Z g hg => s _ (Presieve.bind_comp _ _ hg) have hy : ∀ ⦃Y⦄ ⦃f : Y ⟶ X⦄ (hf : U f), (y hf).Compatible := by intro Y f H Y₁ Y₂ Z g₁ g₂ f₁ f₂ hf₁ hf₂ comm apply hs apply reassoc_of% comm let t : Presieve.FamilyOfElements P (U : Presieve X) := fun Y f hf => (hB hf).amalgamate (y hf) (hy hf) have ht : ∀ ⦃Y⦄ ⦃f : Y ⟶ X⦄ (hf : U f), (y hf).IsAmalgamation (t f hf) := fun Y f hf => (hB hf).isAmalgamation _ have hT : t.Compatible := by rw [Presieve.compatible_iff_sieveCompatible] intro Z W f h hf apply (hB (U.downward_closed hf h)).isSeparatedFor.ext intro Y l hl apply (hB' hf (l ≫ h)).ext intro M m hm have : bind U B (m ≫ l ≫ h ≫ f) := by simpa using (Presieve.bind_comp f hf hm : bind U B _) trans s (m ≫ l ≫ h ≫ f) this · have := ht (U.downward_closed hf h) _ ((B _).downward_closed hl m) rw [op_comp, FunctorToTypes.map_comp_apply] at this grind · have h : s _ _ = _ := (ht hf _ hm).symm conv_lhs at h => congr; rw [assoc, assoc] rw [h] simp only [op_comp, assoc, FunctorToTypes.map_comp_apply] refine ⟨hU.amalgamate t hT, ?_, ?_⟩ · rintro Z _ ⟨Y, f, g, hg, hf, rfl⟩ rw [op_comp, FunctorToTypes.map_comp_apply, Presieve.IsSheafFor.valid_glue _ _ _ hg] apply ht hg _ hf · intro y hy apply hU.isSeparatedFor.ext intro Y f hf apply (hB hf).isSeparatedFor.ext intro Z g hg rw [← FunctorToTypes.map_comp_apply, ← op_comp, hy _ (Presieve.bind_comp _ _ hg), hU.valid_glue _ _ hf, ht hf _ hg] [Elab.definition.header] [0.012686] CategoryTheory.Sheaf.isSheafFor_bind info: Mathlib/CategoryTheory/Sites/Canonical.lean:48:0: [Elab.async] [0.155829] elaborating proof of CategoryTheory.Sheaf.isSheafFor_bind [Elab.definition.value] [0.151988] CategoryTheory.Sheaf.isSheafFor_bind [Elab.step] [0.146449] intro s hs let y : ∀ ⦃Y⦄ ⦃f : Y ⟶ X⦄ (hf : U f), Presieve.FamilyOfElements P (B hf : Presieve Y) := fun Y f hf Z g hg => s _ (Presieve.bind_comp _ _ hg) have hy : ∀ ⦃Y⦄ ⦃f : Y ⟶ X⦄ (hf : U f), (y hf).Compatible := by intro Y f H Y₁ Y₂ Z g₁ g₂ f₁ f₂ hf₁ hf₂ comm apply hs apply reassoc_of% comm let t : Presieve.FamilyOfElements P (U : Presieve X) := fun Y f hf => (hB hf).amalgamate (y hf) (hy hf) have ht : ∀ ⦃Y⦄ ⦃f : Y ⟶ X⦄ (hf : U f), (y hf).IsAmalgamation (t f hf) := fun Y f hf => (hB hf).isAmalgamation _ have hT : t.Compatible := by rw [Presieve.compatible_iff_sieveCompatible] intro Z W f h hf apply (hB (U.downward_closed hf h)).isSeparatedFor.ext intro Y l hl apply (hB' hf (l ≫ h)).ext intro M m hm have : bind U B (m ≫ l ≫ h ≫ f) := by simpa using (Presieve.bind_comp f hf hm : bind U B _) trans s (m ≫ l ≫ h ≫ f) this · have := ht (U.downward_closed hf h) _ ((B _).downward_closed hl m) rw [op_comp, FunctorToTypes.map_comp_apply] at this grind · have h : s _ _ = _ := (ht hf _ hm).symm conv_lhs at h => congr; rw [assoc, assoc] rw [h] simp only [op_comp, assoc, FunctorToTypes.map_comp_apply] refine ⟨hU.amalgamate t hT, ?_, ?_⟩ · rintro Z _ ⟨Y, f, g, hg, hf, rfl⟩ rw [op_comp, FunctorToTypes.map_comp_apply, Presieve.IsSheafFor.valid_glue _ _ _ hg] apply ht hg _ hf · intro y hy apply hU.isSeparatedFor.ext intro Y f hf apply (hB hf).isSeparatedFor.ext intro Z g hg rw [← FunctorToTypes.map_comp_apply, ← op_comp, hy _ (Presieve.bind_comp _ _ hg), hU.valid_glue _ _ hf, ht hf _ hg] [Elab.step] [0.146439] intro s hs let y : ∀ ⦃Y⦄ ⦃f : Y ⟶ X⦄ (hf : U f), Presieve.FamilyOfElements P (B hf : Presieve Y) := fun Y f hf Z g hg => s _ (Presieve.bind_comp _ _ hg) have hy : ∀ ⦃Y⦄ ⦃f : Y ⟶ X⦄ (hf : U f), (y hf).Compatible := by intro Y f H Y₁ Y₂ Z g₁ g₂ f₁ f₂ hf₁ hf₂ comm apply hs apply reassoc_of% comm let t : Presieve.FamilyOfElements P (U : Presieve X) := fun Y f hf => (hB hf).amalgamate (y hf) (hy hf) have ht : ∀ ⦃Y⦄ ⦃f : Y ⟶ X⦄ (hf : U f), (y hf).IsAmalgamation (t f hf) := fun Y f hf => (hB hf).isAmalgamation _ have hT : t.Compatible := by rw [Presieve.compatible_iff_sieveCompatible] intro Z W f h hf apply (hB (U.downward_closed hf h)).isSeparatedFor.ext intro Y l hl apply (hB' hf (l ≫ h)).ext intro M m hm have : bind U B (m ≫ l ≫ h ≫ f) := by simpa using (Presieve.bind_comp f hf hm : bind U B _) trans s (m ≫ l ≫ h ≫ f) this · have := ht (U.downward_closed hf h) _ ((B _).downward_closed hl m) rw [op_comp, FunctorToTypes.map_comp_apply] at this grind · have h : s _ _ = _ := (ht hf _ hm).symm conv_lhs at h => congr; rw [assoc, assoc] rw [h] simp only [op_comp, assoc, FunctorToTypes.map_comp_apply] refine ⟨hU.amalgamate t hT, ?_, ?_⟩ · rintro Z _ ⟨Y, f, g, hg, hf, rfl⟩ rw [op_comp, FunctorToTypes.map_comp_apply, Presieve.IsSheafFor.valid_glue _ _ _ hg] apply ht hg _ hf · intro y hy apply hU.isSeparatedFor.ext intro Y f hf apply (hB hf).isSeparatedFor.ext intro Z g hg rw [← FunctorToTypes.map_comp_apply, ← op_comp, hy _ (Presieve.bind_comp _ _ hg), hU.valid_glue _ _ hf, ht hf _ hg] [Elab.step] [0.115973] have hT : t.Compatible := by rw [Presieve.compatible_iff_sieveCompatible] intro Z W f h hf apply (hB (U.downward_closed hf h)).isSeparatedFor.ext intro Y l hl apply (hB' hf (l ≫ h)).ext intro M m hm have : bind U B (m ≫ l ≫ h ≫ f) := by simpa using (Presieve.bind_comp f hf hm : bind U B _) trans s (m ≫ l ≫ h ≫ f) this · have := ht (U.downward_closed hf h) _ ((B _).downward_closed hl m) rw [op_comp, FunctorToTypes.map_comp_apply] at this grind · have h : s _ _ = _ := (ht hf _ hm).symm conv_lhs at h => congr; rw [assoc, assoc] rw [h] simp only [op_comp, assoc, FunctorToTypes.map_comp_apply] [Elab.step] [0.115875] focus refine no_implicit_lambda% (have hT : t.Compatible := ?body✝; ?_) case body✝ => with_annotate_state"by" ( rw [Presieve.compatible_iff_sieveCompatible] intro Z W f h hf apply (hB (U.downward_closed hf h)).isSeparatedFor.ext intro Y l hl apply (hB' hf (l ≫ h)).ext intro M m hm have : bind U B (m ≫ l ≫ h ≫ f) := by simpa using (Presieve.bind_comp f hf hm : bind U B _) trans s (m ≫ l ≫ h ≫ f) this · have := ht (U.downward_closed hf h) _ ((B _).downward_closed hl m) rw [op_comp, FunctorToTypes.map_comp_apply] at this grind · have h : s _ _ = _ := (ht hf _ hm).symm conv_lhs at h => congr; rw [assoc, assoc] rw [h] simp only [op_comp, assoc, FunctorToTypes.map_comp_apply]) [Elab.step] [0.115871] refine no_implicit_lambda% (have hT : t.Compatible := ?body✝; ?_) case body✝ => with_annotate_state"by" ( rw [Presieve.compatible_iff_sieveCompatible] intro Z W f h hf apply (hB (U.downward_closed hf h)).isSeparatedFor.ext intro Y l hl apply (hB' hf (l ≫ h)).ext intro M m hm have : bind U B (m ≫ l ≫ h ≫ f) := by simpa using (Presieve.bind_comp f hf hm : bind U B _) trans s (m ≫ l ≫ h ≫ f) this · have := ht (U.downward_closed hf h) _ ((B _).downward_closed hl m) rw [op_comp, FunctorToTypes.map_comp_apply] at this grind · have h : s _ _ = _ := (ht hf _ hm).symm conv_lhs at h => congr; rw [assoc, assoc] rw [h] simp only [op_comp, assoc, FunctorToTypes.map_comp_apply]) [Elab.step] [0.115867] refine no_implicit_lambda% (have hT : t.Compatible := ?body✝; ?_) case body✝ => with_annotate_state"by" ( rw [Presieve.compatible_iff_sieveCompatible] intro Z W f h hf apply (hB (U.downward_closed hf h)).isSeparatedFor.ext intro Y l hl apply (hB' hf (l ≫ h)).ext intro M m hm have : bind U B (m ≫ l ≫ h ≫ f) := by simpa using (Presieve.bind_comp f hf hm : bind U B _) trans s (m ≫ l ≫ h ≫ f) this · have := ht (U.downward_closed hf h) _ ((B _).downward_closed hl m) rw [op_comp, FunctorToTypes.map_comp_apply] at this grind · have h : s _ _ = _ := (ht hf _ hm).symm conv_lhs at h => congr; rw [assoc, assoc] rw [h] simp only [op_comp, assoc, FunctorToTypes.map_comp_apply]) [Elab.step] [0.115627] case body✝ => with_annotate_state"by" ( rw [Presieve.compatible_iff_sieveCompatible] intro Z W f h hf apply (hB (U.downward_closed hf h)).isSeparatedFor.ext intro Y l hl apply (hB' hf (l ≫ h)).ext intro M m hm have : bind U B (m ≫ l ≫ h ≫ f) := by simpa using (Presieve.bind_comp f hf hm : bind U B _) trans s (m ≫ l ≫ h ≫ f) this · have := ht (U.downward_closed hf h) _ ((B _).downward_closed hl m) rw [op_comp, FunctorToTypes.map_comp_apply] at this grind · have h : s _ _ = _ := (ht hf _ hm).symm conv_lhs at h => congr; rw [assoc, assoc] rw [h] simp only [op_comp, assoc, FunctorToTypes.map_comp_apply]) [Elab.step] [0.115611] with_annotate_state"by" ( rw [Presieve.compatible_iff_sieveCompatible] intro Z W f h hf apply (hB (U.downward_closed hf h)).isSeparatedFor.ext intro Y l hl apply (hB' hf (l ≫ h)).ext intro M m hm have : bind U B (m ≫ l ≫ h ≫ f) := by simpa using (Presieve.bind_comp f hf hm : bind U B _) trans s (m ≫ l ≫ h ≫ f) this · have := ht (U.downward_closed hf h) _ ((B _).downward_closed hl m) rw [op_comp, FunctorToTypes.map_comp_apply] at this grind · have h : s _ _ = _ := (ht hf _ hm).symm conv_lhs at h => congr; rw [assoc, assoc] rw [h] simp only [op_comp, assoc, FunctorToTypes.map_comp_apply]) [Elab.step] [0.115608] with_annotate_state"by" ( rw [Presieve.compatible_iff_sieveCompatible] intro Z W f h hf apply (hB (U.downward_closed hf h)).isSeparatedFor.ext intro Y l hl apply (hB' hf (l ≫ h)).ext intro M m hm have : bind U B (m ≫ l ≫ h ≫ f) := by simpa using (Presieve.bind_comp f hf hm : bind U B _) trans s (m ≫ l ≫ h ≫ f) this · have := ht (U.downward_closed hf h) _ ((B _).downward_closed hl m) rw [op_comp, FunctorToTypes.map_comp_apply] at this grind · have h : s _ _ = _ := (ht hf _ hm).symm conv_lhs at h => congr; rw [assoc, assoc] rw [h] simp only [op_comp, assoc, FunctorToTypes.map_comp_apply]) [Elab.step] [0.115605] with_annotate_state"by" ( rw [Presieve.compatible_iff_sieveCompatible] intro Z W f h hf apply (hB (U.downward_closed hf h)).isSeparatedFor.ext intro Y l hl apply (hB' hf (l ≫ h)).ext intro M m hm have : bind U B (m ≫ l ≫ h ≫ f) := by simpa using (Presieve.bind_comp f hf hm : bind U B _) trans s (m ≫ l ≫ h ≫ f) this · have := ht (U.downward_closed hf h) _ ((B _).downward_closed hl m) rw [op_comp, FunctorToTypes.map_comp_apply] at this grind · have h : s _ _ = _ := (ht hf _ hm).symm conv_lhs at h => congr; rw [assoc, assoc] rw [h] simp only [op_comp, assoc, FunctorToTypes.map_comp_apply]) [Elab.step] [0.115602] ( rw [Presieve.compatible_iff_sieveCompatible] intro Z W f h hf apply (hB (U.downward_closed hf h)).isSeparatedFor.ext intro Y l hl apply (hB' hf (l ≫ h)).ext intro M m hm have : bind U B (m ≫ l ≫ h ≫ f) := by simpa using (Presieve.bind_comp f hf hm : bind U B _) trans s (m ≫ l ≫ h ≫ f) this · have := ht (U.downward_closed hf h) _ ((B _).downward_closed hl m) rw [op_comp, FunctorToTypes.map_comp_apply] at this grind · have h : s _ _ = _ := (ht hf _ hm).symm conv_lhs at h => congr; rw [assoc, assoc] rw [h] simp only [op_comp, assoc, FunctorToTypes.map_comp_apply]) [Elab.step] [0.115598] rw [Presieve.compatible_iff_sieveCompatible] intro Z W f h hf apply (hB (U.downward_closed hf h)).isSeparatedFor.ext intro Y l hl apply (hB' hf (l ≫ h)).ext intro M m hm have : bind U B (m ≫ l ≫ h ≫ f) := by simpa using (Presieve.bind_comp f hf hm : bind U B _) trans s (m ≫ l ≫ h ≫ f) this · have := ht (U.downward_closed hf h) _ ((B _).downward_closed hl m) rw [op_comp, FunctorToTypes.map_comp_apply] at this grind · have h : s _ _ = _ := (ht hf _ hm).symm conv_lhs at h => congr; rw [assoc, assoc] rw [h] simp only [op_comp, assoc, FunctorToTypes.map_comp_apply] [Elab.step] [0.115594] rw [Presieve.compatible_iff_sieveCompatible] intro Z W f h hf apply (hB (U.downward_closed hf h)).isSeparatedFor.ext intro Y l hl apply (hB' hf (l ≫ h)).ext intro M m hm have : bind U B (m ≫ l ≫ h ≫ f) := by simpa using (Presieve.bind_comp f hf hm : bind U B _) trans s (m ≫ l ≫ h ≫ f) this · have := ht (U.downward_closed hf h) _ ((B _).downward_closed hl m) rw [op_comp, FunctorToTypes.map_comp_apply] at this grind · have h : s _ _ = _ := (ht hf _ hm).symm conv_lhs at h => congr; rw [assoc, assoc] rw [h] simp only [op_comp, assoc, FunctorToTypes.map_comp_apply] [Elab.step] [0.043295] have : bind U B (m ≫ l ≫ h ≫ f) := by simpa using (Presieve.bind_comp f hf hm : bind U B _) [Elab.step] [0.043275] focus refine no_implicit_lambda% (have : bind U B (m ≫ l ≫ h ≫ f) := ?body✝; ?_) case body✝ => with_annotate_state"by" (simpa using (Presieve.bind_comp f hf hm : bind U B _)) [Elab.step] [0.043271] refine no_implicit_lambda% (have : bind U B (m ≫ l ≫ h ≫ f) := ?body✝; ?_) case body✝ => with_annotate_state"by" (simpa using (Presieve.bind_comp f hf hm : bind U B _)) [Elab.step] [0.043268] refine no_implicit_lambda% (have : bind U B (m ≫ l ≫ h ≫ f) := ?body✝; ?_) case body✝ => with_annotate_state"by" (simpa using (Presieve.bind_comp f hf hm : bind U B _)) [Elab.step] [0.033468] case body✝ => with_annotate_state"by" (simpa using (Presieve.bind_comp f hf hm : bind U B _)) [Elab.step] [0.033431] with_annotate_state"by" (simpa using (Presieve.bind_comp f hf hm : bind U B _)) [Elab.step] [0.033427] with_annotate_state"by" (simpa using (Presieve.bind_comp f hf hm : bind U B _)) [Elab.step] [0.033422] with_annotate_state"by" (simpa using (Presieve.bind_comp f hf hm : bind U B _)) [Elab.step] [0.033418] (simpa using (Presieve.bind_comp f hf hm : bind U B _)) [Elab.step] [0.033415] simpa using (Presieve.bind_comp f hf hm : bind U B _) [Elab.step] [0.033410] simpa using (Presieve.bind_comp f hf hm : bind U B _) [Elab.step] [0.033404] simpa using (Presieve.bind_comp f hf hm : bind U B _) [Elab.step] [0.013249] expected type: , term (Presieve.bind_comp f hf hm : bind U B _) [Elab.step] [0.058366] · have := ht (U.downward_closed hf h) _ ((B _).downward_closed hl m) rw [op_comp, FunctorToTypes.map_comp_apply] at this grind [Elab.step] [0.058223] have := ht (U.downward_closed hf h) _ ((B _).downward_closed hl m) rw [op_comp, FunctorToTypes.map_comp_apply] at this grind [Elab.step] [0.058219] have := ht (U.downward_closed hf h) _ ((B _).downward_closed hl m) rw [op_comp, FunctorToTypes.map_comp_apply] at this grind [Elab.step] [0.054534] grind Build completed successfully. ```
ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Sites/Canonical.lean 2025-08-10 04:28:45 88d7016 feat: when a function is surjective on a one-element type (#28156) This is really silly and quite specialised, but I found it surprisingly hard to prove inline. From MiscYD ESTIMATED CHANGES Modified Mathlib/Data/Set/Function.lean + theorem Set.surjOn_univ_of_subsingleton_nonempty 2025-08-10 04:28:44 8551253 chore(CategoryTheory/SmallObject/Iteration): golf `map_id` using `grind` (#28128) Motivation: Make use of available automation (and shorten the proof). ESTIMATED CHANGES Modified Mathlib/CategoryTheory/SmallObject/Iteration/FunctorOfCocone.lean 2025-08-10 04:28:42 22dcb7c chore(CategoryTheory/Idempotents): golf `split_imp_of_iso` using `grind` (#28127) Motivation: Make use of available automation (and shorten the proof). ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Idempotents/Basic.lean 2025-08-10 04:28:41 13ad35d chore: replace `monoidal` and `monoidal_coherence` by `simp` where applicable (#28114) Motivation: Replace `monoidal`/`monoidal_coherence` with `simp` where applicable, making it clear that only straightforward, non-trivial rewrites remain. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Monoidal/Bimod.lean Modified Mathlib/CategoryTheory/Monoidal/Braided/Basic.lean Modified Mathlib/CategoryTheory/Monoidal/CoherenceLemmas.lean Modified Mathlib/CategoryTheory/Monoidal/Comon_.lean Modified Mathlib/CategoryTheory/Monoidal/Rigid/Basic.lean 2025-08-10 04:28:39 9dfedb1 chore: replace `eval_simp` and `map_simp` by `simp` where applicable (#28110) Motivation: `eval_simp` and `map_simp` are shorthand for `simp only [eval_C, eval_X, eval_neg, …]` and `simp only [map_ofNat, map_neg, map_add, …]`, respectively. In the cases covered by this PR, `eval_simp` and `map_simp` are used as terminal tactics where `simp` already closes the goal, so `simp` seems preferable in these situations. ESTIMATED CHANGES Modified Mathlib/AlgebraicGeometry/EllipticCurve/Affine/Formula.lean Modified Mathlib/AlgebraicGeometry/EllipticCurve/Jacobian/Basic.lean Modified Mathlib/AlgebraicGeometry/EllipticCurve/Jacobian/Formula.lean Modified Mathlib/AlgebraicGeometry/EllipticCurve/Projective/Basic.lean 2025-08-10 04:16:34 9e09523 chore(CategoryTheory/Localization): golf `MorphismProperty.map_eq_iff_precomp` using `grind` (#28158) Motivation: Make use of available automation (and shorten the proof). ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Localization/CalculusOfFractions.lean 2025-08-10 01:50:05 c189d4e feat(Order/WellFoundedSet): add `Set.IsPWO.exists_le_minimal`, `Set.IsPWO.exists_minimal`, `Set.IsPWO.exists_minimalFor` (#27082) which are the `IsPWO` version of `exists_minimal_le_of_wellFoundedLT` and others. ESTIMATED CHANGES Modified Mathlib/Order/WellFoundedSet.lean + theorem Set.IsPWO.exists_le_minimal + theorem Set.IsPWO.exists_minimal + theorem Set.IsPWO.exists_minimalFor 2025-08-09 22:22:09 632465e feat: list exists unique decidability (#28105) The `ExistsUnique` analog to `List.decidableBEx`. ESTIMATED CHANGES Modified Mathlib/Logic/ExistsUnique.lean 2025-08-09 20:42:04 f84eed8 feat: Nat.exists_of_count_lt_count (#28060) From PNT+ ESTIMATED CHANGES Modified Mathlib/Data/Nat/Count.lean + theorem Nat.count_ne_iff_exists + theorem Nat.exists_of_count_lt_count 2025-08-09 20:42:03 61e770e feat(Logic/Equiv): `Equiv` on `Subtype` implies equivalence of existence statements (#27277) * Add lemmas stating that an `Equiv` between `Subtypes` implies the equivalence of the corresponding `Exists` and `ExistsUnique` propositions. ESTIMATED CHANGES Modified Mathlib/Logic/Equiv/Defs.lean 2025-08-09 19:57:54 20573c6 feat(RingTheory): integral extensions of comm. rings are local homs (#26746) migrated from #23684 ESTIMATED CHANGES Modified Mathlib/Algebra/Field/Equiv.lean Modified Mathlib/Algebra/Group/Invertible/Basic.lean - def Units.invertible Modified Mathlib/Algebra/GroupWithZero/Units/Basic.lean Modified Mathlib/AlgebraicGeometry/Morphisms/Proper.lean Modified Mathlib/FieldTheory/LinearDisjoint.lean Modified Mathlib/LinearAlgebra/Dimension/Localization.lean Modified Mathlib/NumberTheory/RamificationInertia/Unramified.lean Modified Mathlib/RingTheory/Artinian/Ring.lean Modified Mathlib/RingTheory/Ideal/Int.lean Modified Mathlib/RingTheory/IntegralClosure/Algebra/Defs.lean + theorem algebraMap_isIntegral_iff Modified Mathlib/RingTheory/IntegralClosure/IsIntegralClosure/Basic.lean +/- theorem Algebra.IsIntegral.isField_iff_isField + theorem RingHom.IsIntegral.isLocalHom +/- theorem isField_of_isIntegral_of_isField Modified Mathlib/RingTheory/LinearDisjoint.lean Modified Mathlib/RingTheory/Localization/FractionRing.lean Modified Mathlib/RingTheory/Localization/Integral.lean Modified Mathlib/RingTheory/SimpleRing/Field.lean 2025-08-09 19:57:52 01e1717 chore: deduce `Nat.multiplicity` lemmas from the `Nat.factorization` ones (#22503) Port lemmas from `Data/Nat/Multiplicity` to into a new file called `Data/Nat/Factorization/Multiplicity`, re-written in terms of `factorization`. ESTIMATED CHANGES Modified Mathlib/Data/Nat/Choose/Factorization.lean + theorem Nat.factorization_choose' + theorem Nat.factorization_choose + theorem Nat.factorization_choose_prime_pow + theorem Nat.factorization_choose_prime_pow_add_factorization + theorem Nat.factorization_factorial + theorem Nat.factorization_factorial_le_div_pred + theorem Nat.factorization_factorial_mul + theorem Nat.factorization_factorial_mul_succ + theorem Nat.factorization_le_factorization_choose_add + theorem Nat.factorization_le_factorization_of_dvd_right + theorem Nat.multiplicity_choose_aux + theorem Nat.sub_one_mul_factorization_factorial Modified Mathlib/Data/Nat/Factorization/Basic.lean + theorem Nat.Ico_pow_dvd_eq_Ico_of_lt + theorem Nat.factorization_eq_card_pow_dvd_of_lt + theorem Nat.factorization_pow_self + theorem Nat.factorization_prod_apply Modified Mathlib/Data/Nat/Multiplicity.lean - theorem Nat.Prime.multiplicity_choose_aux 2025-08-09 19:44:02 8afc93b feat(Algebra/Order): `LinearEquiv` version of `toLex`/`ofLex` (#27711) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Order/Group/Equiv.lean + theorem coe_ofLexMulEquiv + theorem coe_toLexMulEquiv + def ofLexMulEquiv + theorem symm_ofLexMulEquiv + theorem symm_toLexMulEquiv + theorem toEquiv_ofLexMulEquiv + theorem toEquiv_toLexMulEquiv + def toLexMulEquiv Modified Mathlib/Algebra/Order/GroupWithZero/Lex.lean - theorem coe_symm_toLexMulEquiv - theorem coe_toLexMulEquiv - theorem toEquiv_symm_toLexMulEquiv - theorem toEquiv_toLexMulEquiv - def toLexMulEquiv Added Mathlib/Algebra/Order/Module/Equiv.lean + theorem coe_ofLexLinearEquiv + theorem coe_toLexLinearEquiv + def ofLexLinearEquiv + theorem symm_ofLexLinearEquiv + theorem symm_toLexLinearEquiv + def toLexLinearEquiv 2025-08-09 16:15:54 b49e49b feat: `⇑(evalMonoidHom f i) = Function.eval i` (#28144) From ClassFieldTheory ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Pi/Lemmas.lean + theorem Pi.coe_evalMonoidHom 2025-08-09 16:00:53 3297c54 feat(LinearAlgebra/Matrix/PosDef): positive semidefinite matrix is positive definite iff is invertible (#28083) ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/Matrix/PosDef.lean + theorem Matrix.PosSemidef.posDef_iff_isUnit 2025-08-09 15:13:00 d9ebc1c feat(CategoryTheory/Action): `Action.sub_hom` (#28146) From ClassFieldTheory ESTIMATED CHANGES Modified Mathlib/Algebra/Category/ContinuousCohomology/Basic.lean Modified Mathlib/CategoryTheory/Action/Basic.lean + theorem Action.hom_injective Modified Mathlib/CategoryTheory/Action/Limits.lean +/- theorem Action.add_hom +/- theorem Action.neg_hom + theorem Action.nsmul_hom + theorem Action.sub_hom +/- theorem Action.sum_hom + theorem Action.zsmul_hom 2025-08-09 02:06:50 24bd36c perf: replace `continuity`/`measurability` by `fun_prop` (#28109) ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Integral/Lebesgue/Add.lean Modified Mathlib/NumberTheory/Padics/Complex.lean Modified Mathlib/Topology/Algebra/Module/LinearMap.lean Modified Mathlib/Topology/ContinuousMap/Bounded/Basic.lean Modified Mathlib/Topology/Instances/Complex.lean Modified Mathlib/Topology/Path.lean Modified Mathlib/Topology/TietzeExtension.lean 2025-08-09 00:27:02 faf6192 chore(RingTheory/IsAdjoinRoot): refactor IsAdjoinRoot (#27367) * Change definition of `IsAdjoinRoot` to use bundled `AlgHom` * Remove duplicated API for `AdjoinRoot.isAdjoinRootMonic` * Remove bad `simp` lemma `isAdjoinRoot_map_eq_mk` * Make `map_repr` `simp` * Rename some lemmas to be more descriptive The data of `IsAdjoinRoot` is determined by `IsAdjoinRoot.root`. The simp normal form was previously unclear; now it runs through simplifying `IsAdjoinRoot.root` rather than `IsAdjoinRoot.map`. ESTIMATED CHANGES Modified Mathlib/RingTheory/AdjoinRoot.lean + theorem AdjoinRoot.coe_mkₐ + def AdjoinRoot.mkₐ + theorem AdjoinRoot.mkₐ_toRingHom Modified Mathlib/RingTheory/IsAdjoinRoot.lean + theorem AdjoinRoot.isAdjoinRootMonic_toAdjoinRoot - theorem AdjoinRoot.isAdjoinRoot_map_eq_mk + theorem AdjoinRoot.isAdjoinRoot_map_eq_mkₐ +/- theorem IsAdjoinRoot.aequiv_symm - theorem IsAdjoinRoot.aeval_eq - theorem IsAdjoinRoot.aeval_root + theorem IsAdjoinRoot.aeval_root_eq_map + theorem IsAdjoinRoot.aeval_root_self +/- theorem IsAdjoinRoot.lift_self +/- theorem IsAdjoinRoot.lift_self_apply +/- theorem IsAdjoinRoot.repr_zero_mem_span +/- theorem IsAdjoinRootMonic.isIntegral_root 2025-08-08 20:01:56 8623f65 refactor (RingTheory/HahnSeries/HEval): remove positive order condition from definition (#25830) This PR removes the positive order condition for substitution (or Hahn evaluation) of a Hahn series into a power series. When the order is not positive, the function substitutes zero. We also add short lemmas for substitution into `PowerSeries.X` and `PowerSeries.C`. ESTIMATED CHANGES Modified Mathlib/RingTheory/HahnSeries/HEval.lean + theorem PowerSeries.heval_C + theorem PowerSeries.heval_X +/- theorem PowerSeries.heval_unit Modified Mathlib/RingTheory/HahnSeries/Summable.lean 2025-08-08 19:43:54 96117a2 feat: if a probability measure is less than another, they are equal (#28082) ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Measure/Typeclasses/Finite.lean + theorem MeasureTheory.Measure.eq_of_le_of_measure_univ_eq Modified Mathlib/MeasureTheory/Measure/Typeclasses/Probability.lean + theorem MeasureTheory.Measure.eq_of_le_of_isProbabilityMeasure 2025-08-08 19:05:42 21016cd feat: add `Matrix.vecMulVecLinear` (#28116) This is the bilinear version of `Matrix.vecMulVec`. ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/Matrix/ToLin.lean + def vecMulVecBilin 2025-08-08 18:47:21 7036baf chore(Valued/WithVal): apply_symm_equiv (#27110) valuation on the WIthVal is equal to the underlying valuation and simp tag ESTIMATED CHANGES Modified Mathlib/Topology/Algebra/Valued/WithVal.lean +/- theorem WithVal.apply_equiv + theorem WithVal.apply_symm_equiv 2025-08-08 18:31:42 1c1dc96 chore: replace `cfc_cont_tac` by `fun_prop` where applicable (#28113) ESTIMATED CHANGES Modified Mathlib/Analysis/SpecialFunctions/ContinuousFunctionalCalculus/Rpow/Basic.lean 2025-08-08 15:38:28 fe81dd4 feat(MeasureTheory): add def `support` of a measure, and related API (#27680) The definition of support given in terms of neighborhood filters, as well as basic topological lemmas including those related to restricted measures, proof that the support of the sum of measures is the union of the supports, and proof that support is monotone with respect to absolute continuity of measures. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/MeasureTheory/Measure/AbsolutelyContinuous.lean + theorem MeasureTheory.Measure.AbsolutelyContinuous.null_mono + theorem MeasureTheory.Measure.AbsolutelyContinuous.pos_mono Added Mathlib/MeasureTheory/Measure/Support.lean + theorem Filter.HasBasis.mem_measureSupport + theorem Filter.HasBasis.notMem_measureSupport + theorem MeasureTheory.Measure.AbsolutelyContinuous.support_mono + theorem MeasureTheory.Measure.compl_support_eq_sUnion + theorem MeasureTheory.Measure.interior_inter_support + theorem MeasureTheory.Measure.isClosed_support + theorem MeasureTheory.Measure.isOpen_compl_support + theorem MeasureTheory.Measure.measure_compl_support + theorem MeasureTheory.Measure.mem_support_iff + theorem MeasureTheory.Measure.mem_support_iff_forall + theorem MeasureTheory.Measure.mem_support_restrict + theorem MeasureTheory.Measure.nonempty_inter_support_of_pos + theorem MeasureTheory.Measure.nonempty_support + theorem MeasureTheory.Measure.nonempty_support_iff + theorem MeasureTheory.Measure.notMem_support_iff + theorem MeasureTheory.Measure.notMem_support_iff_exists + theorem MeasureTheory.Measure.nullMeasurableSet_compl_support + theorem MeasureTheory.Measure.nullMeasurableSet_support + theorem MeasureTheory.Measure.subset_compl_support_of_isOpen + theorem MeasureTheory.Measure.support_add + theorem MeasureTheory.Measure.support_eq_forall_isOpen + theorem MeasureTheory.Measure.support_eq_sInter + theorem MeasureTheory.Measure.support_eq_univ + theorem MeasureTheory.Measure.support_mem_ae + theorem MeasureTheory.Measure.support_mem_ae_of_isLindelof + theorem MeasureTheory.Measure.support_mono + theorem MeasureTheory.Measure.support_restrict_subset + theorem MeasureTheory.Measure.support_subset_of_isClosed + theorem MeasureTheory.Measure.support_zero Modified Mathlib/MeasureTheory/OuterMeasure/Basic.lean + theorem MeasureTheory.pos_mono Modified Mathlib/Order/Filter/SmallSets.lean + theorem Filter.HasBasis.eventually_smallSets + theorem Filter.HasBasis.frequently_smallSets + theorem Filter.frequently_smallSets' 2025-08-08 14:49:51 a5b4f3b feat: add lemmas on `spectralRadius` along with supporting lemmas (#27993) Added new lemmas on `spectralRadius` and `spectrum`, and removed unnecessary assumptions from some existing `spectralRadius` lemmas. Also introduced lemmas involving `iSup₂` and `iInf₂`. ESTIMATED CHANGES Modified Mathlib/Analysis/Normed/Algebra/Spectrum.lean +/- theorem spectrum.SpectralRadius.of_subsingleton +/- theorem spectrum.mem_resolventSet_of_spectralRadius_lt + theorem spectrum.spectralRadius_one + theorem spectrum.spectralRadius_pow_le' + theorem spectrum.spectralRadius_pow_le Modified Mathlib/FieldTheory/IsAlgClosed/Spectrum.lean + theorem spectrum.pow_mem_pow Modified Mathlib/Order/CompleteLattice/Basic.lean + theorem OrderIso.map_iInf₂ + theorem OrderIso.map_iSup₂ Modified Mathlib/Topology/Instances/NNReal/Lemmas.lean + theorem ENNReal.iSup₂_pow_of_ne_zero 2025-08-08 13:59:57 3667935 feat: plumbing version of ClearExcept tactic (#27792) ESTIMATED CHANGES Modified Mathlib/Tactic/ClearExcept.lean + def Lean.Elab.Tactic.clearExcept + def Lean.Elab.Tactic.getVarsToClear 2025-08-08 13:04:18 0775e91 chore: bump Mathlib dependencies manually (#28108) ESTIMATED CHANGES Modified Mathlib/Data/PNat/Prime.lean Modified Mathlib/Data/Rat/Defs.lean Modified Mathlib/Data/Rat/Lemmas.lean Modified Mathlib/NumberTheory/Zsqrtd/Basic.lean Modified lake-manifest.json 2025-08-08 13:04:16 4c46972 style: fix some odd indentation in proofs (#28068) ESTIMATED CHANGES Modified Archive/Examples/Eisenstein.lean Modified Counterexamples/IrrationalPowerOfIrrational.lean Modified Mathlib/Algebra/Algebra/Hom.lean Modified Mathlib/Algebra/Category/ModuleCat/ChangeOfRings.lean Modified Mathlib/Algebra/Category/ModuleCat/Differentials/Presheaf.lean Modified Mathlib/Algebra/Module/Torsion.lean Modified Mathlib/Algebra/Polynomial/Coeff.lean Modified Mathlib/Algebra/Polynomial/Monic.lean Modified Mathlib/Analysis/Calculus/ContDiff/Bounds.lean Modified Mathlib/Analysis/Calculus/FDeriv/Add.lean Modified Mathlib/Analysis/Complex/Hadamard.lean Modified Mathlib/Analysis/Meromorphic/Basic.lean Modified Mathlib/Analysis/Normed/Unbundled/SpectralNorm.lean Modified Mathlib/Analysis/SpecialFunctions/Pow/Integral.lean Modified Mathlib/CategoryTheory/Bicategory/Adjunction/Mate.lean Modified Mathlib/CategoryTheory/Comma/Basic.lean Modified Mathlib/CategoryTheory/Dialectica/Basic.lean Modified Mathlib/CategoryTheory/Functor/KanExtension/Adjunction.lean Modified Mathlib/CategoryTheory/Idempotents/FunctorCategories.lean Modified Mathlib/CategoryTheory/Limits/Shapes/StrictInitial.lean Modified Mathlib/CategoryTheory/Limits/Types/Colimits.lean Modified Mathlib/CategoryTheory/Sites/CartesianMonoidal.lean Modified Mathlib/CategoryTheory/SmallObject/WellOrderInductionData.lean Modified Mathlib/CategoryTheory/Triangulated/Functor.lean Modified Mathlib/Combinatorics/Additive/Dissociation.lean Modified Mathlib/Combinatorics/Derangements/Basic.lean Modified Mathlib/Combinatorics/Quiver/ReflQuiver.lean Modified Mathlib/Combinatorics/SimpleGraph/Coloring.lean Modified Mathlib/Combinatorics/SimpleGraph/Matching.lean Modified Mathlib/Data/DFinsupp/WellFounded.lean Modified Mathlib/Data/Finset/NoncommProd.lean Modified Mathlib/Data/Matroid/Dual.lean Modified Mathlib/Data/Nat/Factorization/Basic.lean Modified Mathlib/Data/Num/Lemmas.lean Modified Mathlib/Data/Real/Embedding.lean Modified Mathlib/Geometry/Manifold/VectorBundle/Tangent.lean Modified Mathlib/GroupTheory/GroupAction/Iwasawa.lean Modified Mathlib/Lean/Meta.lean 2025-08-08 12:52:27 8f5fc0e feat: very simple congruence lemmata for circleAverage (#28028) Establish very simple congruence lemmata for `circleAverage`. ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Integral/CircleAverage.lean + theorem Real.circleAverage_congr_sphere + theorem Real.circleAverage_eq_circleAverage_zero_one + theorem Real.circleAverage_zero_one_congr_inv 2025-08-08 12:40:21 a8d2931 chore: rename valuation_posSubmonoid_ne_zero_of_compatible (#28040) and sneak one more lemma in ESTIMATED CHANGES Modified Mathlib/RingTheory/Valuation/ValuativeRel.lean + theorem Valuation.apply_posSubmonoid_ne_zero + theorem Valuation.apply_posSubmonoid_pos - theorem ValuativeRel.valuation_posSubmonoid_ne_zero_of_compatible 2025-08-08 11:53:52 f77f5d6 chore(Nat/Factorization/Induction): recursors (#28096) Name the motive `motive` and name the minor premises according to their constructors. Also clean up `Nat.recOnMul.hp''`. ESTIMATED CHANGES Modified Mathlib/Data/Nat/Factorization/Induction.lean +/- theorem Nat.prime_composite_induction +/- def Nat.recOnMul +/- def Nat.recOnPosPrimePosCoprime +/- def Nat.recOnPrimeCoprime +/- def Nat.recOnPrimePow +/- theorem induction_on_primes Modified Mathlib/FieldTheory/KummerExtension.lean Modified Mathlib/NumberTheory/SumFourSquares.lean Modified Mathlib/NumberTheory/SumTwoSquares.lean 2025-08-08 11:27:18 d1133c6 style: improve indentation in doc-strings (#28069) Found by the linter in #27996. ESTIMATED CHANGES Modified Archive/MiuLanguage/DecisionSuf.lean Modified LongestPole/Unused.lean Modified Mathlib/Analysis/Fourier/FourierTransform.lean Modified Mathlib/CategoryTheory/Monad/Comonadicity.lean Modified Mathlib/CategoryTheory/Monad/Monadicity.lean Modified Mathlib/Combinatorics/SimpleGraph/CompleteMultipartite.lean Modified Mathlib/Combinatorics/SimpleGraph/Finite.lean Modified Mathlib/Data/Matrix/Mul.lean Modified Mathlib/Data/Matroid/Rank/Cardinal.lean Modified Mathlib/Data/QPF/Multivariate/Constructions/Fix.lean Modified Mathlib/GroupTheory/SpecificGroups/Cyclic.lean 2025-08-08 10:54:23 6a8a98d feat(Algebra/Algebra/Bilinear): `mulLeft_inj` and `mulRight_inj` (#27999) ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/Bilinear.lean +/- theorem LinearMap.mulLeft_eq_zero_iff + theorem LinearMap.mulLeft_inj +/- theorem LinearMap.mulRight_eq_zero_iff + theorem LinearMap.mulRight_inj 2025-08-08 10:40:23 3bca90f chore: add simps to Valuation.ltAddSubgroup (#28023) ESTIMATED CHANGES Modified Mathlib/RingTheory/Valuation/Basic.lean +/- def Valuation.ltAddSubgroup + theorem Valuation.mem_ltAddSubgroup_iff 2025-08-08 10:25:00 63b8cd5 chore: remove `suppress_compilation` from Mathlib.Algebra.Category.Ring.Constructions (#27248) ESTIMATED CHANGES Modified Mathlib/Algebra/Category/Ring/Constructions.lean - def CommRingCat.piIsoPi - def RingEquiv.piEquivPi 2025-08-08 09:39:12 96370ae feat(Algebra/Prime): Irreducible.not_dvd_unit (#27960) also provide `Irreducible.not_dvd_isUnit` ESTIMATED CHANGES Modified Mathlib/Algebra/Prime/Defs.lean + theorem Irreducible.not_dvd_isUnit + theorem Irreducible.not_dvd_unit 2025-08-08 09:39:10 ff26410 feat(Analysis/SpecialFunctions/Trigonometric): add the missing `tan_sub` and `tan_sub'` functions for both real and complex numbers (#27622) While working on some proofs, I found that the `tan_sub` theorems are missing, while there are the corresponding`sin_sub` and `cos_sub` theorems. So I'd like to propose adding these for `tan`. ESTIMATED CHANGES Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Arctan.lean + theorem Real.tan_sub' + theorem Real.tan_sub Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Complex.lean + theorem Complex.tan_sub' + theorem Complex.tan_sub 2025-08-08 09:39:08 7bc143a feat(Data/Matrix): more lemmas about `Matrix.vecMulVec` (#27072) Inspired by [#new members > Is this a reasonable formalization? @ 💬](https://leanprover.zulipchat.com/#narrow/channel/113489-new-members/topic/Is.20this.20a.20reasonable.20formalization.3F/near/528412531). ESTIMATED CHANGES Modified Mathlib/Data/Matrix/ConjTranspose.lean + theorem Matrix.conjTranspose_vecMulVec Modified Mathlib/Data/Matrix/Mul.lean + theorem Matrix.add_vecMulVec + theorem Matrix.neg_vecMulVec + theorem Matrix.smul_vecMulVec + theorem Matrix.sub_vecMulVec + theorem Matrix.transpose_vecMulVec + theorem Matrix.vecMulVec_add + theorem Matrix.vecMulVec_mulVec + theorem Matrix.vecMulVec_mul_vecMulVec + theorem Matrix.vecMulVec_neg + theorem Matrix.vecMulVec_smul' + theorem Matrix.vecMulVec_smul + theorem Matrix.vecMulVec_sub + theorem Matrix.vecMulVec_zero + theorem Matrix.vecMul_vecMulVec + theorem Matrix.zero_vecMulVec 2025-08-08 09:19:13 0b3c069 feat(Algebra/ModEq): add the `IsTrans` instance for `AddCommGroup.ModEq` (#27741) This could conceivably help with some `calc` style proofs. ESTIMATED CHANGES Modified Mathlib/Algebra/ModEq.lean 2025-08-08 08:47:05 8a141b8 feat: characterise zeros of `cos` in terms of values of `sin` (#27663) Similar to #27622. These seem missing for cosine case. I simplified the proofs adapted from `sin_eq_zero_iff_cos_eq` using `simp` compared to the original way of constructing the remaining goal explictly using `exact`. If needed, I can simplify the proofs of the 2 `sin_eq_zero_iff_cos_eq`s too. ESTIMATED CHANGES Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Basic.lean + theorem Complex.cos_eq_zero_iff_sin_eq + theorem Real.cos_eq_zero_iff_sin_eq 2025-08-08 08:35:39 cf0b42e fix: restore the algebraic instances on `UInt` types (#27540) These were deleted without comment in the 4.20.0 upgrade (https://github.com/leanprover-community/mathlib4/commit/7d6781bab0100467855789de1053ccabeed34520), presumably because they were annoying to fix. This follows the advice in the comment to make a PR to restore them. These should be much less fragile than before, as `rfl` is no longer used for any of the proofs about data defined elsewhere. Some fragile theorems remain, but they can be upstreamed and then deleted. [#lean4 > open scoped UInt64.CommRing @ 💬](https://leanprover.zulipchat.com/#narrow/channel/270676-lean4/topic/open.20scoped.20UInt64.2ECommRing/near/531000387) ESTIMATED CHANGES Modified Mathlib/Data/BitVec.lean Modified Mathlib/Data/UInt.lean + theorem $typeName.toBitVec_injective + theorem $typeName.toFin_injective 2025-08-08 08:19:10 4b30dc1 chore(Analysis/InnerProductSpace/Projection): split file (#27851) Splitting long file `Analysis.InnerProductSpace.Projection`: - Projection/Minimal: contains the Hilbert projection theorem and minimizer characterization. - Projection/Basic: contains the definitions for `HasOrthogonalProjection`, `othogonalProjection`, `starProjection` and pretty much everything concerning those. - Projection/Reflection: everything about `Submodule.reflection`. - Projection/Submodule: stuff like `K ⊔ Kᗮ = ⊤` for when `K` admits an orthogonal projection. - Projection/FiniteDimensional: stuff about orthogonal projections on finite-dimensional spaces (but also some lemmas that doesn't use `FiniteDimensional`). ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Analysis/InnerProductSpace/Dual.lean Modified Mathlib/Analysis/InnerProductSpace/MeanErgodic.lean Modified Mathlib/Analysis/InnerProductSpace/PiL2.lean Deleted Mathlib/Analysis/InnerProductSpace/Projection.lean - theorem ContinuousLinearMap.IsIdempotentElem.hasOrthogonalProjection_range - theorem Dense.eq_of_inner_left - theorem Dense.eq_of_inner_right - theorem Dense.eq_of_sub_mem_orthogonal - theorem Dense.eq_zero_of_inner_left - theorem Dense.eq_zero_of_inner_right - theorem Dense.eq_zero_of_mem_orthogonal - theorem LinearIsometry.map_starProjection' - theorem LinearIsometry.map_starProjection - theorem LinearIsometryEquiv.reflections_generate - theorem LinearIsometryEquiv.reflections_generate_dim - theorem LinearIsometryEquiv.reflections_generate_dim_aux - theorem OrthogonalFamily.isInternal_iff - theorem OrthogonalFamily.isInternal_iff_of_isComplete - theorem OrthogonalFamily.projection_directSum_coeAddHom - theorem OrthogonalFamily.sum_projection_of_mem_iSup - theorem Submodule.IsOrtho.orthogonalProjection_comp_subtypeL - theorem Submodule.IsOrtho.starProjection_comp_starProjection - theorem Submodule.coe_orthogonalProjection_apply - theorem Submodule.det_reflection - theorem Submodule.eq_orthogonalProjectionFn_of_mem_of_inner_eq_zero - theorem Submodule.eq_starProjection_of_eq_submodule - theorem Submodule.eq_starProjection_of_mem_of_inner_eq_zero - theorem Submodule.eq_starProjection_of_mem_orthogonal' - theorem Submodule.eq_starProjection_of_mem_orthogonal - theorem Submodule.exists_add_mem_mem_orthogonal - theorem Submodule.exists_norm_eq_iInf_of_complete_subspace - theorem Submodule.finrank_add_finrank_orthogonal' - theorem Submodule.finrank_add_finrank_orthogonal - theorem Submodule.finrank_add_inf_finrank_orthogonal' - theorem Submodule.finrank_add_inf_finrank_orthogonal - theorem Submodule.finrank_orthogonal_span_singleton - theorem Submodule.id_eq_sum_starProjection_self_orthogonalComplement - theorem Submodule.inner_orthogonalProjection_eq_of_mem_left - theorem Submodule.inner_orthogonalProjection_eq_of_mem_right - theorem Submodule.inner_starProjection_left_eq_right - theorem Submodule.isCompl_orthogonal_of_hasOrthogonalProjection - theorem Submodule.isIdempotentElem_starProjection - theorem Submodule.ker_orthogonalProjection - theorem Submodule.ker_starProjection - theorem Submodule.le_orthogonal_iff_le_orthogonal - theorem Submodule.linearEquiv_det_reflection - theorem Submodule.lipschitzWith_orthogonalProjection - theorem Submodule.lipschitzWith_starProjection - theorem Submodule.mem_iff_norm_starProjection - theorem Submodule.norm_eq_iInf_iff_inner_eq_zero - theorem Submodule.norm_eq_iInf_iff_real_inner_eq_zero - theorem Submodule.norm_orthogonalProjection - theorem Submodule.norm_orthogonalProjection_apply - theorem Submodule.norm_orthogonalProjection_apply_le - theorem Submodule.norm_sq_eq_add_norm_sq_projection - theorem Submodule.norm_sq_eq_add_norm_sq_starProjection - theorem Submodule.norm_starProjection - theorem Submodule.norm_starProjection_apply - theorem Submodule.norm_starProjection_apply_le - theorem Submodule.orthogonalComplement_eq_orthogonalComplement - def Submodule.orthogonalProjection - def Submodule.orthogonalProjectionFn - theorem Submodule.orthogonalProjectionFn_eq - theorem Submodule.orthogonalProjectionFn_inner_eq_zero - theorem Submodule.orthogonalProjectionFn_mem - theorem Submodule.orthogonalProjectionFn_norm_sq - theorem Submodule.orthogonalProjection_bot - theorem Submodule.orthogonalProjection_coe_eq_linearProjOfIsCompl - theorem Submodule.orthogonalProjection_comp_subtypeL_eq_zero_iff - theorem Submodule.orthogonalProjection_eq_linearProjOfIsCompl - theorem Submodule.orthogonalProjection_eq_zero_iff - theorem Submodule.orthogonalProjection_mem_subspace_eq_self - theorem Submodule.orthogonalProjection_mem_subspace_orthogonalComplement_eq_zero - theorem Submodule.orthogonalProjection_norm_le - theorem Submodule.orthogonalProjection_orthogonal - theorem Submodule.orthogonalProjection_orthogonalComplement_singleton_eq_zero - theorem Submodule.orthogonalProjection_orthogonal_apply_eq_zero - theorem Submodule.orthogonalProjection_starProjection_of_le - theorem Submodule.orthogonal_eq_bot_iff - theorem Submodule.orthogonal_le_iff_orthogonal_le - theorem Submodule.orthogonal_le_orthogonal_iff - theorem Submodule.orthogonal_orthogonal - theorem Submodule.orthogonal_orthogonal_eq_closure - theorem Submodule.range_starProjection - theorem Submodule.re_inner_starProjection_eq_normSq - theorem Submodule.re_inner_starProjection_nonneg - def Submodule.reflection - def Submodule.reflectionLinearEquiv - theorem Submodule.reflection_apply - theorem Submodule.reflection_bot - theorem Submodule.reflection_eq_self_iff - theorem Submodule.reflection_inv - theorem Submodule.reflection_involutive - theorem Submodule.reflection_map - theorem Submodule.reflection_map_apply - theorem Submodule.reflection_mem_subspace_eq_self - theorem Submodule.reflection_mem_subspace_orthogonalComplement_eq_neg - theorem Submodule.reflection_mem_subspace_orthogonal_precomplement_eq_neg - theorem Submodule.reflection_mul_reflection - theorem Submodule.reflection_orthogonal - theorem Submodule.reflection_orthogonalComplement_singleton_eq_neg - theorem Submodule.reflection_orthogonal_apply - theorem Submodule.reflection_reflection - theorem Submodule.reflection_singleton_apply - theorem Submodule.reflection_sub - theorem Submodule.reflection_symm - theorem Submodule.reflection_trans_reflection - theorem Submodule.smul_starProjection_singleton - def Submodule.starProjection - theorem Submodule.starProjection_add_starProjection_orthogonal - theorem Submodule.starProjection_apply - theorem Submodule.starProjection_apply_eq_zero_iff - theorem Submodule.starProjection_apply_mem - theorem Submodule.starProjection_bot - theorem Submodule.starProjection_coe_eq_isCompl_projection - theorem Submodule.starProjection_comp_starProjection_eq_zero_iff - theorem Submodule.starProjection_comp_starProjection_of_le - theorem Submodule.starProjection_eq_self_iff - theorem Submodule.starProjection_inner_eq_zero - theorem Submodule.starProjection_isSymmetric - theorem Submodule.starProjection_map_apply - theorem Submodule.starProjection_mem_subspace_eq_self - theorem Submodule.starProjection_minimal - theorem Submodule.starProjection_norm_le - theorem Submodule.starProjection_orthogonal' - theorem Submodule.starProjection_orthogonal - theorem Submodule.starProjection_orthogonalComplement_singleton_eq_zero - theorem Submodule.starProjection_orthogonal_apply_eq_zero - theorem Submodule.starProjection_orthogonal_val - theorem Submodule.starProjection_singleton - theorem Submodule.starProjection_tendsto_closure_iSup - theorem Submodule.starProjection_tendsto_self - theorem Submodule.starProjection_top' - theorem Submodule.starProjection_top - theorem Submodule.starProjection_unit_singleton - theorem Submodule.sub_starProjection_mem_orthogonal - theorem Submodule.sup_orthogonal_inf_of_hasOrthogonalProjection - theorem Submodule.sup_orthogonal_of_hasOrthogonalProjection - theorem Submodule.topologicalClosure_eq_self - theorem Submodule.topologicalClosure_eq_top_iff - theorem Submodule.triorthogonal_eq_orthogonal - theorem exists_norm_eq_iInf_of_complete_convex - theorem maximal_orthonormal_iff_basis_of_finiteDimensional - theorem maximal_orthonormal_iff_orthogonalComplement_eq_bot - theorem norm_eq_iInf_iff_real_inner_le_zero Added Mathlib/Analysis/InnerProductSpace/Projection/Basic.lean + theorem ContinuousLinearMap.IsIdempotentElem.hasOrthogonalProjection_range + theorem LinearIsometry.map_starProjection' + theorem LinearIsometry.map_starProjection + theorem Submodule.IsOrtho.orthogonalProjection_comp_subtypeL + theorem Submodule.IsOrtho.starProjection_comp_starProjection + theorem Submodule.coe_orthogonalProjection_apply + theorem Submodule.eq_orthogonalProjectionFn_of_mem_of_inner_eq_zero + theorem Submodule.eq_starProjection_of_eq_submodule + theorem Submodule.eq_starProjection_of_mem_of_inner_eq_zero + theorem Submodule.eq_starProjection_of_mem_orthogonal' + theorem Submodule.eq_starProjection_of_mem_orthogonal + theorem Submodule.exists_add_mem_mem_orthogonal + theorem Submodule.id_eq_sum_starProjection_self_orthogonalComplement + theorem Submodule.inner_orthogonalProjection_eq_of_mem_left + theorem Submodule.inner_orthogonalProjection_eq_of_mem_right + theorem Submodule.inner_starProjection_left_eq_right + theorem Submodule.isIdempotentElem_starProjection + theorem Submodule.ker_orthogonalProjection + theorem Submodule.ker_starProjection + theorem Submodule.lipschitzWith_orthogonalProjection + theorem Submodule.lipschitzWith_starProjection + theorem Submodule.mem_iff_norm_starProjection + theorem Submodule.norm_orthogonalProjection + theorem Submodule.norm_orthogonalProjection_apply + theorem Submodule.norm_orthogonalProjection_apply_le + theorem Submodule.norm_sq_eq_add_norm_sq_projection + theorem Submodule.norm_sq_eq_add_norm_sq_starProjection + theorem Submodule.norm_starProjection + theorem Submodule.norm_starProjection_apply + theorem Submodule.norm_starProjection_apply_le + def Submodule.orthogonalProjection + def Submodule.orthogonalProjectionFn + theorem Submodule.orthogonalProjectionFn_eq + theorem Submodule.orthogonalProjectionFn_inner_eq_zero + theorem Submodule.orthogonalProjectionFn_mem + theorem Submodule.orthogonalProjectionFn_norm_sq + theorem Submodule.orthogonalProjection_bot + theorem Submodule.orthogonalProjection_comp_subtypeL_eq_zero_iff + theorem Submodule.orthogonalProjection_eq_zero_iff + theorem Submodule.orthogonalProjection_mem_subspace_eq_self + theorem Submodule.orthogonalProjection_mem_subspace_orthogonalComplement_eq_zero + theorem Submodule.orthogonalProjection_norm_le + theorem Submodule.orthogonalProjection_orthogonal + theorem Submodule.orthogonalProjection_orthogonalComplement_singleton_eq_zero + theorem Submodule.orthogonalProjection_orthogonal_apply_eq_zero + theorem Submodule.orthogonalProjection_starProjection_of_le + theorem Submodule.range_starProjection + theorem Submodule.re_inner_starProjection_eq_normSq + theorem Submodule.re_inner_starProjection_nonneg + theorem Submodule.smul_starProjection_singleton + def Submodule.starProjection + theorem Submodule.starProjection_add_starProjection_orthogonal + theorem Submodule.starProjection_apply + theorem Submodule.starProjection_apply_eq_zero_iff + theorem Submodule.starProjection_apply_mem + theorem Submodule.starProjection_bot + theorem Submodule.starProjection_comp_starProjection_eq_zero_iff + theorem Submodule.starProjection_comp_starProjection_of_le + theorem Submodule.starProjection_eq_self_iff + theorem Submodule.starProjection_inner_eq_zero + theorem Submodule.starProjection_isSymmetric + theorem Submodule.starProjection_map_apply + theorem Submodule.starProjection_mem_subspace_eq_self + theorem Submodule.starProjection_minimal + theorem Submodule.starProjection_norm_le + theorem Submodule.starProjection_orthogonal' + theorem Submodule.starProjection_orthogonal + theorem Submodule.starProjection_orthogonalComplement_singleton_eq_zero + theorem Submodule.starProjection_orthogonal_apply_eq_zero + theorem Submodule.starProjection_orthogonal_val + theorem Submodule.starProjection_singleton + theorem Submodule.starProjection_top' + theorem Submodule.starProjection_top + theorem Submodule.starProjection_unit_singleton + theorem Submodule.sub_starProjection_mem_orthogonal Added Mathlib/Analysis/InnerProductSpace/Projection/FiniteDimensional.lean + theorem LinearIsometryEquiv.reflections_generate + theorem LinearIsometryEquiv.reflections_generate_dim + theorem LinearIsometryEquiv.reflections_generate_dim_aux + theorem OrthogonalFamily.isInternal_iff + theorem OrthogonalFamily.isInternal_iff_of_isComplete + theorem OrthogonalFamily.projection_directSum_coeAddHom + theorem OrthogonalFamily.sum_projection_of_mem_iSup + theorem Submodule.det_reflection + theorem Submodule.finrank_add_finrank_orthogonal' + theorem Submodule.finrank_add_finrank_orthogonal + theorem Submodule.finrank_add_inf_finrank_orthogonal' + theorem Submodule.finrank_add_inf_finrank_orthogonal + theorem Submodule.finrank_orthogonal_span_singleton + theorem Submodule.linearEquiv_det_reflection + theorem Submodule.topologicalClosure_eq_self + theorem maximal_orthonormal_iff_basis_of_finiteDimensional + theorem maximal_orthonormal_iff_orthogonalComplement_eq_bot Added Mathlib/Analysis/InnerProductSpace/Projection/Minimal.lean + theorem Submodule.exists_norm_eq_iInf_of_complete_subspace + theorem Submodule.norm_eq_iInf_iff_inner_eq_zero + theorem Submodule.norm_eq_iInf_iff_real_inner_eq_zero + theorem exists_norm_eq_iInf_of_complete_convex + theorem norm_eq_iInf_iff_real_inner_le_zero Added Mathlib/Analysis/InnerProductSpace/Projection/Reflection.lean + def Submodule.reflection + def Submodule.reflectionLinearEquiv + theorem Submodule.reflection_apply + theorem Submodule.reflection_bot + theorem Submodule.reflection_eq_self_iff + theorem Submodule.reflection_inv + theorem Submodule.reflection_involutive + theorem Submodule.reflection_map + theorem Submodule.reflection_map_apply + theorem Submodule.reflection_mem_subspace_eq_self + theorem Submodule.reflection_mem_subspace_orthogonalComplement_eq_neg + theorem Submodule.reflection_mem_subspace_orthogonal_precomplement_eq_neg + theorem Submodule.reflection_mul_reflection + theorem Submodule.reflection_orthogonal + theorem Submodule.reflection_orthogonalComplement_singleton_eq_neg + theorem Submodule.reflection_orthogonal_apply + theorem Submodule.reflection_reflection + theorem Submodule.reflection_singleton_apply + theorem Submodule.reflection_sub + theorem Submodule.reflection_symm + theorem Submodule.reflection_trans_reflection Added Mathlib/Analysis/InnerProductSpace/Projection/Submodule.lean + theorem Dense.eq_of_inner_left + theorem Dense.eq_of_inner_right + theorem Dense.eq_of_sub_mem_orthogonal + theorem Dense.eq_zero_of_inner_left + theorem Dense.eq_zero_of_inner_right + theorem Dense.eq_zero_of_mem_orthogonal + theorem Submodule.isCompl_orthogonal_of_hasOrthogonalProjection + theorem Submodule.le_orthogonal_iff_le_orthogonal + theorem Submodule.orthogonalComplement_eq_orthogonalComplement + theorem Submodule.orthogonalProjection_coe_eq_linearProjOfIsCompl + theorem Submodule.orthogonalProjection_eq_linearProjOfIsCompl + theorem Submodule.orthogonal_eq_bot_iff + theorem Submodule.orthogonal_le_iff_orthogonal_le + theorem Submodule.orthogonal_le_orthogonal_iff + theorem Submodule.orthogonal_orthogonal + theorem Submodule.orthogonal_orthogonal_eq_closure + theorem Submodule.starProjection_coe_eq_isCompl_projection + theorem Submodule.starProjection_tendsto_closure_iSup + theorem Submodule.starProjection_tendsto_self + theorem Submodule.sup_orthogonal_inf_of_hasOrthogonalProjection + theorem Submodule.sup_orthogonal_of_hasOrthogonalProjection + theorem Submodule.topologicalClosure_eq_top_iff + theorem Submodule.triorthogonal_eq_orthogonal Modified Mathlib/Analysis/InnerProductSpace/Semisimple.lean Modified Mathlib/Analysis/InnerProductSpace/l2Space.lean Modified Mathlib/Geometry/Euclidean/Altitude.lean Modified Mathlib/Geometry/Euclidean/Projection.lean Modified Mathlib/MeasureTheory/Function/ConditionalExpectation/CondexpL2.lean 2025-08-08 07:46:19 ed755e7 chore: replace `aesop`-based tactics `bound` and `measurability` with `simp` where applicable (#28079) `bound` and `measurability` are built on top of `aesop`. `aesop` runs `simp_all`. ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Function/UnifTight.lean Modified Mathlib/Topology/Instances/ENNReal/Lemmas.lean 2025-08-08 04:56:45 d996ed5 feat: initial use of `grind` in category theory (#28022) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Functor/Basic.lean Modified Mathlib/CategoryTheory/Functor/Category.lean Modified Mathlib/CategoryTheory/Functor/Functorial.lean Modified Mathlib/CategoryTheory/HomCongr.lean Modified Mathlib/CategoryTheory/Iso.lean Modified Mathlib/CategoryTheory/NatIso.lean Modified Mathlib/CategoryTheory/NatTrans.lean 2025-08-08 03:05:41 2f7302f feat(TensorProduct): add a Repr (#26646) Now that tensor products are computable again, this makes them `#eval`able. ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/TensorProduct/Basic.lean 2025-08-08 02:11:08 e999ad4 fix: do not remove reactions if the corresponding label is still present on the PR (#27570) Recently the reaction bot on Zulip has been observed to add a reaction and then remove it shortly afterwards (mainly the reactions corresponding to the `ready-to-merge` and `delegated` labels). The mechanism seems to be the following: - a maintainer writes a comment like "bors merge" (or "bors d+") on a PR that has been `maintainer-merge`'d - `zulip_emoji_merge_delegate.yaml` and `zulip_emoji_merge_delegate_wf.yaml` react to this comment and: - simultaneously adds the "ready-to-merge" and removes the `maintainer-merge` label - adds the "merge" emoji reaction on Zulip - the `zulip_emoji_labelling.yaml` workflow reacts to the `maintainer-merge` label being removed, and clears the "merge" emoji as well. See [this log](https://github.com/leanprover-community/mathlib4/actions/runs/16270158496/job/45935446666#step:5:30) (which removes the "delegated" emoji). We change the `zulip_emoji_labelling.yaml` workflow so that it passes the current list of labels on the PR to the `zulip_emoji_reactions.py` script, and also change the script so that it only removes a reaction if the corresponding label is NOT present. cf. https://leanprover.zulipchat.com/#narrow/channel/345428-mathlib-reviewers/topic/merge.2Fdelegate.20emojis.20bot/near/528289834 ESTIMATED CHANGES Modified .github/workflows/zulip_emoji_labelling.yaml Modified scripts/zulip_emoji_reactions.py 2025-08-08 01:43:37 b007f47 chore: update Mathlib dependencies 2025-08-08 (#28103) This PR updates the Mathlib dependencies. ESTIMATED CHANGES Modified lake-manifest.json 2025-08-08 01:16:10 a9b0039 feat(Data/Matrix/Vec): `star x.vec = (x.map star).vec` (#28098) This adds `star x.vec = (x.map star).vec` and `xᴴᵀ = x.map star = xᵀᴴ`. This also generalizes: - `Matrix.vec_dotProduct_vec`: from `NonUnitalNonAssocSemiring` to `AddCommMonoid` and `Mul` as we only need matrix multiplication to be defined for this. - `Matrix.star_vec_dotProduct_vec`: from `NonUnitalNonAssocSemiring` and `StarRing` to `AddCommMonoid`, `Mul`, and `Star`. ESTIMATED CHANGES Modified Mathlib/Data/Matrix/ConjTranspose.lean + theorem Matrix.conjTranspose_transpose + theorem Matrix.transpose_conjTranspose Modified Mathlib/Data/Matrix/Vec.lean + theorem Matrix.star_vec +/- theorem Matrix.star_vec_dotProduct_vec +/- theorem Matrix.vec_dotProduct_vec 2025-08-08 00:06:50 08ab79b feat: integrability in a product space (#27674) Prove that `f : (i : ι) → X → E i` is in `Lᵖ` if and only if for all `i`, `f i` is in `Lᵖ`. Do the same for `f : X → (E × F)`. Also provide `WithLp` versions. from BrownianMotion ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Analysis/NormedSpace/OperatorNorm/NormedSpace.lean + theorem ContinuousLinearMap.norm_single + theorem ContinuousLinearMap.norm_single_le_one Modified Mathlib/MeasureTheory/Integral/Pi.lean + theorem MeasureTheory.integrable_comp_eval + theorem MeasureTheory.integral_comp_eval +/- theorem MeasureTheory.integral_fintype_prod_eq_pow +/- theorem MeasureTheory.integral_fintype_prod_eq_prod +/- theorem MeasureTheory.integral_fintype_prod_volume_eq_pow +/- theorem MeasureTheory.integral_fintype_prod_volume_eq_prod Modified Mathlib/MeasureTheory/Measure/Lebesgue/VolumeOfBalls.lean Added Mathlib/MeasureTheory/SpecificCodomains/Pi.lean + theorem MeasureTheory.MemLp.fst + theorem MeasureTheory.MemLp.snd + theorem MeasureTheory.eval_integral + theorem MeasureTheory.integrable_pi_iff + theorem MeasureTheory.memLp_pi_iff + theorem MeasureTheory.memLp_prod_iff Added Mathlib/MeasureTheory/SpecificCodomains/WithLp.lean + theorem MeasureTheory.Integrable.prodLp_fst + theorem MeasureTheory.Integrable.prodLp_snd + theorem MeasureTheory.MemLp.prodLp_fst + theorem MeasureTheory.MemLp.prodLp_snd + theorem MeasureTheory.eval_integral_piLp + theorem MeasureTheory.fst_integral_withLp + theorem MeasureTheory.integrable_piLp_iff + theorem MeasureTheory.integrable_prodLp_iff + theorem MeasureTheory.memLp_piLp_iff + theorem MeasureTheory.memLp_prodLp_iff + theorem MeasureTheory.snd_integral_withLp Modified Mathlib/NumberTheory/NumberField/CanonicalEmbedding/ConvexBody.lean Modified Mathlib/Topology/MetricSpace/Isometry.lean 2025-08-07 23:30:58 3f33d00 fix: include .lake in artifact upload (#28092) Follow-up to #28062. It turns out `.olean` files are stored in `.lake` which are excluded by default by the `actions/upload-artifact` action. We use the `include-hidden-files` option, taking care to exclude the `.git` folder which may include secrets like `GITHUB_TOKEN`, etc. ESTIMATED CHANGES Modified .github/build.in.yml Modified .github/workflows/bors.yml Modified .github/workflows/build.yml Modified .github/workflows/build_fork.yml 2025-08-07 22:25:08 e5dbecc chore(LinearAlgebra.PiTensorProduct): restore syntax and remove comment (#28058) Remove a comment from a minor adaptation note with #8386 and restore the original syntax. ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/PiTensorProduct.lean 2025-08-07 22:25:07 23b849e feat: generalize `opNNNorm_le_of_unit_nnnorm` to semilinear maps (#28014) This also generalizes to complex-linear maps. ESTIMATED CHANGES Modified Mathlib/Analysis/NormedSpace/OperatorNorm/Basic.lean +/- theorem ContinuousLinearMap.opNorm_le_of_unit_norm Modified Mathlib/Analysis/NormedSpace/OperatorNorm/NNNorm.lean +/- theorem ContinuousLinearMap.opNNNorm_le_of_unit_nnnorm 2025-08-07 22:25:05 df9e1c1 chore: move and namespace perm_toList (#28010) ESTIMATED CHANGES Modified Mathlib/Data/Finset/Dedup.lean Modified Mathlib/Data/Fintype/List.lean - theorem perm_toList 2025-08-07 22:25:03 7032356 feat(LinearAlgebra/AffineSpace/Simplex/Basic): interior of a 0-simplex (#27914) Add `simp` lemmas giving the `interior` and `closedInterior` of a 0-simplex. ```lean @[simp] lemma interior_eq_empty (s : Simplex k P 0) : s.interior = ∅ := by ``` ```lean @[simp] lemma closedInterior_eq_singleton [ZeroLEOneClass k] (s : Simplex k P 0) : s.closedInterior = {s.points 0} := by ``` ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/AffineSpace/Simplex/Basic.lean + theorem Affine.Simplex.closedInterior_eq_singleton + theorem Affine.Simplex.interior_eq_empty 2025-08-07 22:25:02 76a2636 chore: surround commutative diagrams in code blocks (#27901) This is rendered better on the generated documentation, and indicates that this code has different formatting rules. Found by the linter in #27898. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Bicategory/Adjunction/Mate.lean Modified Mathlib/CategoryTheory/Comma/Arrow.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Kernels.lean Modified Mathlib/CategoryTheory/NatTrans.lean Modified Mathlib/CategoryTheory/Sites/IsSheafFor.lean Modified Mathlib/Geometry/RingedSpace/PresheafedSpace/Gluing.lean 2025-08-07 22:00:27 db78892 chore: move `Polynomial.eval_map_algebraMap` (#27959) This lemma is unrelated to `IsScalarTower`. It should not be placed in `RingTheory.Polynomial.Tower`. ESTIMATED CHANGES Modified Mathlib/Algebra/Polynomial/AlgebraMap.lean + theorem Polynomial.eval_map_algebraMap Modified Mathlib/Dynamics/Newton.lean Modified Mathlib/RingTheory/Polynomial/Nilpotent.lean Modified Mathlib/RingTheory/Polynomial/Tower.lean - theorem Polynomial.eval_map_algebraMap 2025-08-07 21:32:59 deb7399 feat(Bivariate): aevalAeval and swap (#27636) Add the `aeval` equivalent to `Bivariate.evalEval`. This PR also introduces `Bivariate.swap`, the R-algebra automorphism given by `X ↦ Y` and `Y ↦ X`. ESTIMATED CHANGES Modified Mathlib/Algebra/Polynomial/Bivariate.lean + theorem Polynomial.Bivariate.aevalAeval_swap + theorem Polynomial.Bivariate.aveal_eq_map_swap + def Polynomial.Bivariate.swap + theorem Polynomial.Bivariate.swap_X + theorem Polynomial.Bivariate.swap_Y + theorem Polynomial.Bivariate.swap_apply + theorem Polynomial.Bivariate.swap_monomial_monomial + theorem Polynomial.coe_aevalAeval_eq_evalEval 2025-08-07 19:34:58 bfc16d0 chore(MeasureTheory/Measure): add convenience lemma `mono_null` to `MeasureSpaceDef`. (#28049) Add `MeasureTheory.Measure.mono_null` in order to access dot notation for the existing lemma `measure_mono_null`. ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Measure/MeasureSpaceDef.lean + theorem MeasureTheory.Measure.mono_null 2025-08-07 17:04:52 3891677 feat: analyticity of harmonic functions, Part I (#27556) If `f : ℂ → ℝ` is harmonic at `x`, show that `∂f/∂1 - I • ∂f/∂I` is complex-analytic at `x`. As soon as PR #9598 (feat(Analysis/Complex): HasPrimitives on disc) is merged, I will extend this result to show that `f` itself is locally the real part of a holomorphic function, and hence real-analytic. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/InnerProductSpace/Harmonic/Analytic.lean + theorem HarmonicAt.analyticAt_complex_partial + theorem HarmonicAt.differentiableAt_complex_partial 2025-08-07 17:04:49 11925c2 feat(Topology/Baire/Lemmas): In a nonempty Baire space, any dense GDelta set is not meagre (#27471) Proves that in a nonempty Baire space any dense Gδ set is not meagre ESTIMATED CHANGES Modified Mathlib/Topology/Baire/Lemmas.lean + theorem not_isMeagre_of_isGδ_of_dense 2025-08-07 17:04:46 cd9f3f6 feat(Valued): FaithfulSMul to completion (#27116) simplifies coercions and golfs existing instance ESTIMATED CHANGES Modified Mathlib/RingTheory/DedekindDomain/AdicValuation.lean + theorem IsDedekindDomain.HeightOneSpectrum.algebraMap_adicCompletionIntegers_apply Modified Mathlib/Topology/Algebra/Valued/ValuedField.lean 2025-08-07 17:04:44 7aff5e2 chore(GeomSum): split into ring vs field and non-ordered vs ordered parts (#26142) The motivation here is that `Data.Nat.Multiplicity` needs the results about geometric sums of naturals, without wanting to know anything about fields. ESTIMATED CHANGES Modified Archive/Imo/Imo1982Q3.lean Modified Archive/Imo/Imo2013Q5.lean Modified Archive/Wiedijk100Theorems/PerfectNumbers.lean Modified Counterexamples/ZeroDivisorsInAddMonoidAlgebras.lean Modified Mathlib.lean Added Mathlib/Algebra/Field/GeomSum.lean + theorem geom_sum_Ico' + theorem geom_sum_Ico + theorem geom_sum_eq + theorem geom_sum_inv + theorem geom_sum₂_Ico + theorem geom₂_sum Modified Mathlib/Algebra/GeomSum.lean - theorem Commute.mul_geom_sum₂ - theorem Commute.mul_neg_geom_sum₂ - theorem Commute.sub_dvd_pow_sub_pow - theorem Nat.geomSum_eq - theorem Nat.geomSum_lt - theorem Nat.geom_sum_Ico_le - theorem Nat.geom_sum_le - theorem Nat.pred_mul_geom_sum_le - theorem Odd.add_dvd_pow_add_pow - theorem Odd.geom_sum_pos - theorem Odd.nat_add_dvd_pow_add_pow - theorem RingHom.map_geom_sum - theorem RingHom.map_geom_sum₂ - theorem geom_sum_Ico' - theorem geom_sum_Ico - theorem geom_sum_Ico_le_of_lt_one - theorem geom_sum_Ico_mul - theorem geom_sum_Ico_mul_neg - theorem geom_sum_alternating_of_le_neg_one - theorem geom_sum_alternating_of_lt_neg_one - theorem geom_sum_eq - theorem geom_sum_eq_zero_iff_neg_one - theorem geom_sum_inv - theorem geom_sum_lt - theorem geom_sum_mul - theorem geom_sum_mul_add - theorem geom_sum_mul_neg - theorem geom_sum_mul_of_le_one - theorem geom_sum_mul_of_one_le - theorem geom_sum_ne_zero - theorem geom_sum_neg_iff - theorem geom_sum_of_lt_one - theorem geom_sum_of_one_lt - theorem geom_sum_one - theorem geom_sum_pos' - theorem geom_sum_pos - theorem geom_sum_pos_and_lt_one - theorem geom_sum_pos_iff - theorem geom_sum_succ' - theorem geom_sum_succ - theorem geom_sum_two - theorem geom_sum_zero - theorem geom_sum₂_Ico - theorem geom_sum₂_comm - theorem geom_sum₂_mul - theorem geom_sum₂_mul_add - theorem geom_sum₂_mul_of_ge - theorem geom_sum₂_mul_of_le - theorem geom_sum₂_self - theorem geom_sum₂_succ_eq - theorem geom_sum₂_with_one - theorem geom₂_sum - theorem geom₂_sum_of_gt - theorem geom₂_sum_of_lt - theorem mul_geom_sum - theorem mul_geom_sum₂_Ico - theorem mul_neg_geom_sum - theorem nat_pow_one_sub_dvd_pow_mul_sub_one - theorem nat_sub_dvd_pow_sub_pow - theorem neg_one_geom_sum - theorem one_geom_sum - theorem one_sub_dvd_one_sub_pow - theorem op_geom_sum - theorem op_geom_sum₂ - theorem pow_one_sub_dvd_pow_mul_sub_one - theorem sub_dvd_pow_sub_pow - theorem sub_one_dvd_pow_sub_one - theorem zero_geom_sum Modified Mathlib/Algebra/Order/CauSeq/BigOperators.lean Added Mathlib/Algebra/Order/Field/GeomSum.lean + theorem geom_sum_Ico_le_of_lt_one + theorem geom_sum_lt + theorem geom_sum_of_lt_one + theorem geom_sum_of_one_lt + theorem geom₂_sum_of_gt + theorem geom₂_sum_of_lt Added Mathlib/Algebra/Order/Ring/GeomSum.lean + theorem Nat.geomSum_lt + theorem Nat.geom_sum_Ico_le + theorem Nat.geom_sum_le + theorem Nat.pred_mul_geom_sum_le + theorem Odd.geom_sum_pos + theorem geom_sum_alternating_of_le_neg_one + theorem geom_sum_alternating_of_lt_neg_one + theorem geom_sum_eq_zero_iff_neg_one + theorem geom_sum_ne_zero + theorem geom_sum_neg_iff + theorem geom_sum_pos' + theorem geom_sum_pos + theorem geom_sum_pos_and_lt_one + theorem geom_sum_pos_iff Added Mathlib/Algebra/Ring/GeomSum.lean + theorem Commute.mul_geom_sum₂ + theorem Commute.mul_neg_geom_sum₂ + theorem Commute.sub_dvd_pow_sub_pow + theorem Nat.geomSum_eq + theorem Odd.add_dvd_pow_add_pow + theorem Odd.nat_add_dvd_pow_add_pow + theorem RingHom.map_geom_sum + theorem RingHom.map_geom_sum₂ + theorem geom_sum_Ico_mul + theorem geom_sum_Ico_mul_neg + theorem geom_sum_mul + theorem geom_sum_mul_add + theorem geom_sum_mul_neg + theorem geom_sum_mul_of_le_one + theorem geom_sum_mul_of_one_le + theorem geom_sum_one + theorem geom_sum_succ' + theorem geom_sum_succ + theorem geom_sum_two + theorem geom_sum_zero + theorem geom_sum₂_comm + theorem geom_sum₂_mul + theorem geom_sum₂_mul_add + theorem geom_sum₂_mul_of_ge + theorem geom_sum₂_mul_of_le + theorem geom_sum₂_self + theorem geom_sum₂_succ_eq + theorem geom_sum₂_with_one + theorem mul_geom_sum + theorem mul_geom_sum₂_Ico + theorem mul_neg_geom_sum + theorem nat_pow_one_sub_dvd_pow_mul_sub_one + theorem nat_sub_dvd_pow_sub_pow + theorem neg_one_geom_sum + theorem one_geom_sum + theorem one_sub_dvd_one_sub_pow + theorem op_geom_sum + theorem op_geom_sum₂ + theorem pow_one_sub_dvd_pow_mul_sub_one + theorem sub_dvd_pow_sub_pow + theorem sub_one_dvd_pow_sub_one + theorem zero_geom_sum Modified Mathlib/Analysis/Polynomial/CauchyBound.lean Modified Mathlib/Analysis/SpecificLimits/Basic.lean Modified Mathlib/Analysis/SpecificLimits/FloorPow.lean Modified Mathlib/Combinatorics/Colex.lean Modified Mathlib/Combinatorics/SetFamily/KruskalKatona.lean Modified Mathlib/Data/Nat/Multiplicity.lean Modified Mathlib/LinearAlgebra/Projectivization/Cardinality.lean Modified Mathlib/LinearAlgebra/Vandermonde.lean Modified Mathlib/NumberTheory/Basic.lean Modified Mathlib/NumberTheory/FactorisationProperties.lean Modified Mathlib/NumberTheory/MulChar/Basic.lean Modified Mathlib/NumberTheory/Multiplicity.lean Modified Mathlib/RingTheory/AdicCompletion/Basic.lean Modified Mathlib/RingTheory/Ideal/Quotient/Index.lean Modified Mathlib/RingTheory/Idempotents.lean Modified Mathlib/RingTheory/IntegralDomain.lean Modified Mathlib/RingTheory/Nilpotent/Basic.lean Modified Mathlib/RingTheory/Polynomial/Basic.lean Modified Mathlib/Tactic/NormNum/Irrational.lean 2025-08-07 16:22:44 2aaab59 chore: replace `field_simp`, `simp!` and `simp_all` with `simp` where applicable (#28080) ESTIMATED CHANGES Modified Mathlib/Analysis/Convex/Body.lean Modified Mathlib/Analysis/SpecialFunctions/Gamma/Beta.lean Modified Mathlib/Combinatorics/SimpleGraph/Connectivity/WalkDecomp.lean Modified Mathlib/Combinatorics/SimpleGraph/Matching.lean Modified Mathlib/Probability/Moments/IntegrableExpMul.lean Modified Mathlib/RingTheory/HahnSeries/HEval.lean Modified Mathlib/RingTheory/Valuation/ValuationSubring.lean 2025-08-07 16:22:42 b1407cb chore: replace `aesop` with `simp` where applicable (#28018) ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/Subalgebra/Centralizer.lean Modified Mathlib/Algebra/BigOperators/Finprod.lean Modified Mathlib/Analysis/InnerProductSpace/Harmonic/Basic.lean Modified Mathlib/Analysis/Normed/Unbundled/FiniteExtension.lean Modified Mathlib/CategoryTheory/Products/Basic.lean +/- theorem CategoryTheory.Prod.fac' +/- theorem CategoryTheory.Prod.fac Modified Mathlib/CategoryTheory/Subpresheaf/Image.lean Modified Mathlib/Combinatorics/SimpleGraph/Matching.lean Modified Mathlib/Data/Rel.lean Modified Mathlib/GroupTheory/Perm/Centralizer.lean Modified Mathlib/LinearAlgebra/LinearPMap.lean Modified Mathlib/NumberTheory/Cyclotomic/Basic.lean Modified Mathlib/Topology/Compactness/Compact.lean Modified Mathlib/Topology/Order/IsLUB.lean Modified Mathlib/Topology/Sets/Opens.lean Modified Mathlib/Topology/Spectral/Prespectral.lean 2025-08-07 16:22:40 0c0957d feat: in a Baire space, every nonempty open set is of second category (#27333) In a Baire space, every nonempty open set is non‑meagre (of second category). ESTIMATED CHANGES Modified Mathlib/Topology/Baire/Lemmas.lean + theorem not_isMeagre_of_isOpen 2025-08-07 16:22:38 8bc082b feat(RingTheory/DividedPowes/SubDPIdeal): complete lattice and quotients (#26936) We show that sub-dp-ideals of a divided power ideal `I` of a ring `A` form a complete lattice under inclusion. Given an ideal `J` of `A`, we construct the divided power structure on the ideal `I(A⧸J)` of the quotient, provided that `I ⊓ J` is a sub-dp-ideal of `I`. ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/Span/Defs.lean + theorem Submodule.iSup_eq_span' Modified Mathlib/RingTheory/DividedPowers/SubDPIdeal.lean + theorem DividedPowers.Quotient.OfSurjective.dividedPowers_unique + theorem DividedPowers.Quotient.OfSurjective.dpow_apply' + theorem DividedPowers.Quotient.OfSurjective.dpow_apply + theorem DividedPowers.Quotient.OfSurjective.dpow_def + theorem DividedPowers.Quotient.OfSurjective.isDPMorphism + theorem DividedPowers.Quotient.dividedPowers_unique + theorem DividedPowers.Quotient.dpow_apply + theorem DividedPowers.Quotient.isDPMorphism + theorem DividedPowers.SubDPIdeal.dpow_mem_span_of_mem_span + theorem DividedPowers.SubDPIdeal.inf_carrier_def + theorem DividedPowers.SubDPIdeal.le_iff + theorem DividedPowers.SubDPIdeal.lt_iff + theorem DividedPowers.SubDPIdeal.sInf_carrier_def + theorem DividedPowers.SubDPIdeal.sSup_carrier_def + theorem DividedPowers.SubDPIdeal.span_carrier_eq_dpow_span + theorem DividedPowers.SubDPIdeal.sup_carrier_def + theorem DividedPowers.dpow_span_isSubideal 2025-08-07 15:43:41 23a38df chore(Algebra/Notation): move `Function.support` earlier (#28064) The definition doesn't need anything about monoids/groups. This is useful to disentangle `Finsupp` results downstream. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/BigOperators/Finprod.lean Modified Mathlib/Algebra/BigOperators/Group/Finset/Lemmas.lean Modified Mathlib/Algebra/BigOperators/GroupWithZero/Finset.lean Modified Mathlib/Algebra/Group/FiniteSupport.lean Modified Mathlib/Algebra/Group/Finsupp.lean Modified Mathlib/Algebra/Group/Indicator.lean Modified Mathlib/Algebra/Group/Support.lean - theorem Function.compl_mulSupport - theorem Function.disjoint_mulSupport_iff - theorem Function.ext_iff_mulSupport - theorem Function.mem_mulSupport - def Function.mulSupport - theorem Function.mulSupport_along_fiber_subset - theorem Function.mulSupport_binop_subset - theorem Function.mulSupport_comp_eq - theorem Function.mulSupport_comp_eq_of_range_subset - theorem Function.mulSupport_comp_eq_preimage - theorem Function.mulSupport_comp_subset - theorem Function.mulSupport_const - theorem Function.mulSupport_curry - theorem Function.mulSupport_disjoint_iff - theorem Function.mulSupport_eq_empty_iff - theorem Function.mulSupport_eq_iff - theorem Function.mulSupport_eq_preimage - theorem Function.mulSupport_extend_one - theorem Function.mulSupport_extend_one_subset - theorem Function.mulSupport_fun_curry - theorem Function.mulSupport_fun_one - theorem Function.mulSupport_nonempty_iff - theorem Function.mulSupport_one - theorem Function.mulSupport_prodMk' - theorem Function.mulSupport_prodMk - theorem Function.mulSupport_subset_comp - theorem Function.mulSupport_subset_iff' - theorem Function.mulSupport_subset_iff - theorem Function.mulSupport_update_eq_ite - theorem Function.mulSupport_update_of_ne_one - theorem Function.mulSupport_update_one - theorem Function.notMem_mulSupport - theorem Function.range_eq_image_or_of_mulSupport_subset - theorem Function.range_subset_insert_image_mulSupport - theorem Pi.mulSupport_mulSingle - theorem Pi.mulSupport_mulSingle_disjoint - theorem Pi.mulSupport_mulSingle_of_ne - theorem Pi.mulSupport_mulSingle_one - theorem Pi.mulSupport_mulSingle_subset - theorem Set.image_inter_mulSupport_eq Modified Mathlib/Algebra/GroupWithZero/Indicator.lean Added Mathlib/Algebra/Notation/Support.lean + theorem Function.compl_mulSupport + theorem Function.disjoint_mulSupport_iff + theorem Function.ext_iff_mulSupport + theorem Function.mem_mulSupport + def Function.mulSupport + theorem Function.mulSupport_along_fiber_subset + theorem Function.mulSupport_binop_subset + theorem Function.mulSupport_comp_eq + theorem Function.mulSupport_comp_eq_of_range_subset + theorem Function.mulSupport_comp_eq_preimage + theorem Function.mulSupport_comp_subset + theorem Function.mulSupport_const + theorem Function.mulSupport_curry + theorem Function.mulSupport_disjoint_iff + theorem Function.mulSupport_eq_empty_iff + theorem Function.mulSupport_eq_iff + theorem Function.mulSupport_eq_preimage + theorem Function.mulSupport_extend_one + theorem Function.mulSupport_extend_one_subset + theorem Function.mulSupport_fun_curry + theorem Function.mulSupport_fun_one + theorem Function.mulSupport_nonempty_iff + theorem Function.mulSupport_one + theorem Function.mulSupport_prodMk' + theorem Function.mulSupport_prodMk + theorem Function.mulSupport_subset_comp + theorem Function.mulSupport_subset_iff' + theorem Function.mulSupport_subset_iff + theorem Function.mulSupport_update_eq_ite + theorem Function.mulSupport_update_of_ne_one + theorem Function.mulSupport_update_one + theorem Function.notMem_mulSupport + theorem Function.range_eq_image_or_of_mulSupport_subset + theorem Function.range_subset_insert_image_mulSupport + theorem Pi.mulSupport_mulSingle + theorem Pi.mulSupport_mulSingle_disjoint + theorem Pi.mulSupport_mulSingle_of_ne + theorem Pi.mulSupport_mulSingle_one + theorem Pi.mulSupport_mulSingle_subset + theorem Set.image_inter_mulSupport_eq Modified Mathlib/Algebra/Ring/CharZero.lean Modified Mathlib/Data/Finsupp/Defs.lean Modified Mathlib/Data/Int/CharZero.lean Modified Mathlib/Data/Set/Pointwise/Support.lean Modified Mathlib/RingTheory/HahnSeries/Addition.lean Modified Mathlib/RingTheory/HahnSeries/Basic.lean Modified Mathlib/Topology/LocallyFinsupp.lean Modified Mathlib/Topology/Separation/Basic.lean 2025-08-07 15:29:11 32e40df chore(Finsupp): move order properties under `Order` (#25002) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/MvPolynomial/Basic.lean Modified Mathlib/Algebra/Order/Floor/Div.lean Modified Mathlib/Data/Finsupp/Multiset.lean Modified Mathlib/Data/Finsupp/Order.lean - theorem Finsupp.coe_le_coe - theorem Finsupp.coe_lt_coe - theorem Finsupp.coe_mono - theorem Finsupp.coe_strictMono - theorem Finsupp.inf_apply - theorem Finsupp.le_def - theorem Finsupp.lt_def - def Finsupp.orderEmbeddingToFun - theorem Finsupp.orderEmbeddingToFun_apply - theorem Finsupp.sup_apply - theorem Finsupp.support_inf_union_support_sup - theorem Finsupp.support_sup_union_support_inf Modified Mathlib/Data/Finsupp/PWO.lean Modified Mathlib/Data/Finsupp/Weight.lean Modified Mathlib/Data/Nat/Choose/Multinomial.lean Modified Mathlib/Data/Nat/Factorization/Defs.lean Added Mathlib/Order/Preorder/Finsupp.lean + theorem Finsupp.coe_le_coe + theorem Finsupp.coe_lt_coe + theorem Finsupp.coe_mono + theorem Finsupp.coe_strictMono + theorem Finsupp.inf_apply + theorem Finsupp.le_def + theorem Finsupp.lt_def + def Finsupp.orderEmbeddingToFun + theorem Finsupp.sup_apply + theorem Finsupp.support_inf_union_support_sup + theorem Finsupp.support_sup_union_support_inf 2025-08-07 15:06:08 d9e9851 chore(LinearAlgebra/Matrix/PosDef): lemma in wrong namespace (#28084) `Matrix.PosDef.posDef_iff_eq_conjTranspose_mul_self` should be `Matrix.posDef_iff_eq_conjTranspose_mul_self`. ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/Matrix/PosDef.lean - theorem Matrix.PosDef.posDef_iff_eq_conjTranspose_mul_self + theorem Matrix.posDef_iff_eq_conjTranspose_mul_self 2025-08-07 14:50:00 a03809f feat: a `MeasurableEmbedding` has a measurable left inverse (#27517) Definition of the measurable left inverse of a `MeasurableEmbedding`. ESTIMATED CHANGES Modified Mathlib/MeasureTheory/MeasurableSpace/Embedding.lean + theorem MeasurableEmbedding.equivRange_apply + theorem MeasurableEmbedding.equivRange_symm_apply_mk + def MeasurableEmbedding.invFun + theorem MeasurableEmbedding.leftInverse_invFun + theorem MeasurableEmbedding.measurable_invFun 2025-08-07 13:48:00 482cd79 chore: move algebraic properties of `Finsupp.single` to `Algebra.Group.Finsupp` (#28073) They do not belong under `Data` as they are not about a datatype. ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Finsupp.lean + theorem AddEquiv.finsuppUnique_symm + theorem Finsupp.apply_single + def Finsupp.eraseAddHom + theorem Finsupp.erase_add + theorem Finsupp.erase_add_single + theorem Finsupp.erase_eq_sub_single + theorem Finsupp.erase_neg + theorem Finsupp.erase_sub + theorem Finsupp.induction_linear + theorem Finsupp.induction_on_max + theorem Finsupp.induction_on_max₂ + theorem Finsupp.induction_on_min + theorem Finsupp.induction_on_min₂ + theorem Finsupp.induction₂ +/- theorem Finsupp.mapRange_neg' +/- theorem Finsupp.mapRange_sub' + def Finsupp.singleAddHom + theorem Finsupp.single_add + theorem Finsupp.single_add_apply + theorem Finsupp.single_add_erase + theorem Finsupp.single_add_single_eq_single_add_single + theorem Finsupp.single_neg + theorem Finsupp.single_sub + theorem Finsupp.support_add_single +/- theorem Finsupp.support_neg + theorem Finsupp.support_single_add +/- theorem Finsupp.support_sub + theorem Finsupp.update_eq_erase_add_single + theorem Finsupp.update_eq_single_add_erase + theorem Finsupp.update_eq_sub_add_single Modified Mathlib/Data/Finsupp/Ext.lean Modified Mathlib/Data/Finsupp/Pointwise.lean Modified Mathlib/Data/Finsupp/SMulWithZero.lean Modified Mathlib/Data/Finsupp/Single.lean - theorem AddEquiv.finsuppUnique_symm - theorem Finsupp.apply_single - def Finsupp.eraseAddHom - theorem Finsupp.erase_add - theorem Finsupp.erase_add_single - theorem Finsupp.erase_eq_sub_single - theorem Finsupp.erase_neg - theorem Finsupp.erase_sub - theorem Finsupp.induction_linear - theorem Finsupp.induction_on_max - theorem Finsupp.induction_on_max₂ - theorem Finsupp.induction_on_min - theorem Finsupp.induction_on_min₂ - theorem Finsupp.induction₂ - def Finsupp.singleAddHom - theorem Finsupp.single_add - theorem Finsupp.single_add_apply - theorem Finsupp.single_add_erase - theorem Finsupp.single_add_single_eq_single_add_single - theorem Finsupp.single_neg - theorem Finsupp.single_sub - theorem Finsupp.support_add_single - theorem Finsupp.support_single_add - theorem Finsupp.update_eq_erase_add_single - theorem Finsupp.update_eq_single_add_erase - theorem Finsupp.update_eq_sub_add_single Modified Mathlib/Data/List/ToFinsupp.lean 2025-08-07 13:47:58 cd49593 style(Data/Matroid/Basic): remove extraneous space (#28071) ESTIMATED CHANGES Modified Mathlib/Data/Matroid/Basic.lean 2025-08-07 13:47:57 e2ea7bd chore(RingTheory/Spectrum/Prime/Topology): remove unused section (#28044) ESTIMATED CHANGES Modified Mathlib/RingTheory/Spectrum/Prime/Topology.lean 2025-08-07 13:47:55 203bc36 feat(SetTheory/Cardinal/Aleph): characterization of initial successor ordinals (#26607) ESTIMATED CHANGES Modified Mathlib/SetTheory/Cardinal/Aleph.lean + theorem Ordinal.isInitial_succ 2025-08-07 13:16:36 f405d4f chore: remove Nonempty assumptions in WithSeminorms (#27874) ESTIMATED CHANGES Modified Mathlib/Analysis/LocallyConvex/Barrelled.lean Modified Mathlib/Analysis/LocallyConvex/WeakDual.lean Modified Mathlib/Analysis/LocallyConvex/WeakOperatorTopology.lean Modified Mathlib/Analysis/LocallyConvex/WithSeminorms.lean +/- theorem LinearMap.withSeminorms_induced +/- theorem Seminorm.bound_of_continuous +/- theorem SeminormFamily.basisSets_nonempty + theorem SeminormFamily.basisSets_univ_mem +/- theorem Topology.IsInducing.withSeminorms +/- theorem withSeminorms_iInf 2025-08-07 13:06:22 a1f4e27 chore: update Mathlib dependencies 2025-08-07 (#28078) This PR updates the Mathlib dependencies. ESTIMATED CHANGES Modified lake-manifest.json 2025-08-07 12:26:02 9da5e1d chore: simplify the proof that the variance of independent random variables is the sum of the variances (#27989) Building on #27988 proving that the covariance of independent random variables is zero, simplify the proof that the variance of independent random variables is the sum of the variances by unfolding the variance and proving that the non-diagonal terms are 0. ESTIMATED CHANGES Modified Mathlib/Probability/CondVar.lean Modified Mathlib/Probability/Moments/Variance.lean - theorem ProbabilityTheory.IndepFun.variance_add - theorem ProbabilityTheory.IndepFun.variance_sum + theorem ProbabilityTheory.evariance_congr + theorem ProbabilityTheory.variance_add + theorem ProbabilityTheory.variance_congr - theorem ProbabilityTheory.variance_def' + theorem ProbabilityTheory.variance_eq_sub + theorem ProbabilityTheory.variance_fun_add 2025-08-07 07:54:03 d6931d9 feat: the covariance of independent random variables is zero (#27988) ESTIMATED CHANGES Modified Mathlib/Probability/Independence/Integration.lean Modified Mathlib/Probability/Moments/Covariance.lean + theorem ProbabilityTheory.IndepFun.covariance_eq_zero + theorem ProbabilityTheory.covariance_eq_sub 2025-08-07 07:54:01 8a73d23 feat: random variables on separate spaces are independent (#27984) More precisely, given a family of random variables `X : (i : ι) → Ω i → 𝓧 i`, with each `Ω i` equipped with a probability measure `μ i`, the random variables `fun ω ↦ X i (ω i) : (Π j, Ω j) → 𝓧 i` are independent. Include a version for `Measure.prod`, `Measure.pi` and `Measure.infinitePi`. ESTIMATED CHANGES Modified Mathlib/Probability/Independence/Basic.lean + theorem ProbabilityTheory.iIndepFun_pi + theorem ProbabilityTheory.indepFun_prod + theorem ProbabilityTheory.indepFun_prod₀ Modified Mathlib/Probability/Independence/InfinitePi.lean + theorem ProbabilityTheory.iIndepFun_infinitePi 2025-08-07 07:24:10 9025c20 feat(Data/Nat/Prime): extract `Nat.Prime.dvd_or_dvd` from `Nat.Prime.dvd_mul` (#27981) This extracted theorem `Nat.Prime.dvd_or_dvd` is similar to `Prime.dvd_or_dvd`, which is already separate from `Prime.dvd_mul`. ESTIMATED CHANGES Modified Mathlib/Data/Nat/Prime/Defs.lean 2025-08-07 07:24:08 cde6b58 feat: in a countable measurable space, every measure is s-finite (#27583) Also add API lemmas about `measurableAtom`. The instance is placed in the `WithDensity` file, because that's where we have the instance `SFinite (c • μ)` that I use in the proof. ESTIMATED CHANGES Modified Mathlib/MeasureTheory/MeasurableSpace/Constructions.lean + theorem disjoint_measurableAtom_of_notMem + theorem measurableAtom_eq_of_mem + theorem measurableAtom_subset_of_mem Modified Mathlib/MeasureTheory/Measure/Dirac.lean + theorem MeasureTheory.Measure.exists_sum_smul_dirac Modified Mathlib/MeasureTheory/Measure/MeasureSpace.lean + theorem MeasureTheory.ext_of_measurableAtoms Modified Mathlib/MeasureTheory/Measure/WithDensity.lean 2025-08-07 07:24:07 2fa1162 feat(Category/Ring): `Algebra.IsPushout` iff `CategoryTheory.IsPushout` (#27380) In particular, `RingHom.IsStableUnderBaseChange P` iff `(RingHom.toMorphismProperty P).IsStableUnderCobaseChange`. ESTIMATED CHANGES Modified Mathlib/Algebra/Category/Ring/Constructions.lean + theorem CommRingCat.isPushout_iff_isPushout Modified Mathlib/RingTheory/IsTensorProduct.lean + theorem Algebra.IsPushout.of_equiv Modified Mathlib/RingTheory/RingHomProperties.lean + theorem RingHom.isStableUnderCobaseChange_toMorphismProperty_iff 2025-08-07 06:46:54 da57f1f chore: factor out lemmas from `LinearOrder ℚ` (#27716) ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Ring/Unbundled/Rat.lean 2025-08-07 06:00:07 51da749 chore: remove inlined lake-build-with-retry.sh from workflow, improve log messages (#28016) To merge #27691, I had to inline a copy of `lake-build-with-retry.sh` into the workflow file (since the workflow always tries to run the `master` branch version of scripts, etc.). Now that that file exists in the `master` branch, we can remove this code. I also improved the log messages for the step checking if the archive + counterexamples builds failed. ESTIMATED CHANGES Modified .github/build.in.yml Modified .github/workflows/bors.yml Modified .github/workflows/build.yml Modified .github/workflows/build_fork.yml 2025-08-07 05:50:52 bfffa50 chore: upload artifact for debugging no-build failures (#28062) Since the `lake build --no-build` failures in the "Post-Build Step" job are still occurring (cf. [#mathlib4 > Failing CI @ 💬](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Failing.20CI/near/533022248)), we upload the contents of the `pr-branch` directory as a workflow artifact, to help with figuring out what's going on. ESTIMATED CHANGES Modified .github/build.in.yml Modified .github/workflows/bors.yml Modified .github/workflows/build.yml Modified .github/workflows/build_fork.yml 2025-08-07 03:58:25 090d04d chore: fix indentation in doc-strings (#28043) The style guide asks for subsequent lines in doc-strings to not be indented ([zulip discussion](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Style.20.3Abicycle.3A.20.3A.20indenting.20second.20lines.20in.20doc-strings/with/513186492)). This fixes some violations. Found by the linter in https://github.com/leanprover-community/mathlib4/pull/27996. ESTIMATED CHANGES Modified Mathlib/Analysis/SpecialFunctions/Stirling.lean Modified Mathlib/Analysis/SpecificLimits/Normed.lean Modified Mathlib/CategoryTheory/Comma/Arrow.lean Modified Mathlib/CategoryTheory/Comma/Basic.lean Modified Mathlib/CategoryTheory/Filtered/Basic.lean Modified Mathlib/CategoryTheory/Filtered/Small.lean Modified Mathlib/CategoryTheory/Limits/Opposites.lean Modified Mathlib/CategoryTheory/Limits/Shapes/BinaryProducts.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Biproducts.lean Modified Mathlib/CategoryTheory/SingleObj.lean Modified Mathlib/Combinatorics/SimpleGraph/FiveWheelLike.lean Modified Mathlib/Data/Multiset/Bind.lean Modified Mathlib/Data/Real/Embedding.lean Modified Mathlib/NumberTheory/EllipticDivisibilitySequence.lean Modified Mathlib/RingTheory/DividedPowers/SubDPIdeal.lean Modified Mathlib/RingTheory/LocalRing/ResidueField/Fiber.lean Modified Mathlib/Tactic/CC/Datatypes.lean Modified Mathlib/Tactic/TermCongr.lean Modified Mathlib/Topology/Algebra/Nonarchimedean/Bases.lean Modified Mathlib/Topology/Spectral/Hom.lean 2025-08-07 03:39:04 1ab0f16 refactor(LinearAlgebra/AffineSpace/Independent) move simplex to Simplex.Basic and Simplex.Centroid (#27917) This PR is the first step in the migration and split; see discussion in #27881 . This is part of a series; the next PR: #27919 - Move simplex related material from `LinearAlgebra.AffineSpace.Independent` to a new `Mathlib.LinearAlgebra.AffineSpace.Simplex.Basic` - Move the centroid of simplex related material from `LinearAlgebra.AffineSpace.Independent` to a new `Mathlib.LinearAlgebra.AffineSpace.Simplex.Centroid` - No changes or additions to any theorems, definitions, or proofs. - Added docstrings for the new files: `LinearAlgebra.AffineSpace.Simplex.Basic` and `LinearAlgebra.AffineSpace.Simplex.Centroid`. - Modified the docstring in `LinearAlgebra.AffineSpace.Independent`. - Fix the imports in `LinearAlgebra.AffineSpace.FiniteDimensional`, `Geometry.Euclidean.Circumcenter` and `Analysis.Normed.Affine.Simplex` *Dependency map*: Before: `LinearAlgebra.AffineSpace.Independent` depends on `LinearAlgebra.AffineSpace.Combination` After: `LinearAlgebra.AffineSpace.Independent` depends on `LinearAlgebra.AffineSpace.Combination` `LinearAlgebra.AffineSpace.Simplex.Basic` depends on `LinearAlgebra.AffineSpace.Independent` `LinearAlgebra.AffineSpace.Simplex.Centroid` depends on `LinearAlgebra.AffineSpace.Simplex.Basic` ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Analysis/Normed/Affine/Simplex.lean Modified Mathlib/Geometry/Euclidean/Circumcenter.lean Modified Mathlib/LinearAlgebra/AffineSpace/FiniteDimensional.lean Modified Mathlib/LinearAlgebra/AffineSpace/Independent.lean - theorem Affine.Simplex.affineCombination_mem_closedInterior_iff - theorem Affine.Simplex.affineCombination_mem_interior_iff - theorem Affine.Simplex.centroid_eq_iff - theorem Affine.Simplex.centroid_eq_of_range_eq - theorem Affine.Simplex.closedInterior_subset_affineSpan - theorem Affine.Simplex.ext - def Affine.Simplex.face - def Affine.Simplex.faceOpposite - theorem Affine.Simplex.faceOpposite_map - theorem Affine.Simplex.faceOpposite_point_eq_point_one - theorem Affine.Simplex.faceOpposite_point_eq_point_rev - theorem Affine.Simplex.faceOpposite_point_eq_point_succAbove - theorem Affine.Simplex.faceOpposite_point_eq_point_zero - theorem Affine.Simplex.face_centroid_eq_centroid - theorem Affine.Simplex.face_centroid_eq_iff - theorem Affine.Simplex.face_eq_mkOfPoint - theorem Affine.Simplex.face_map - theorem Affine.Simplex.face_points' - theorem Affine.Simplex.face_points - theorem Affine.Simplex.interior_subset_closedInterior - def Affine.Simplex.map - theorem Affine.Simplex.map_comp - theorem Affine.Simplex.map_id - theorem Affine.Simplex.map_mkOfPoint - theorem Affine.Simplex.map_subtype_restrict - theorem Affine.Simplex.mem_affineSpan_image_iff - theorem Affine.Simplex.mem_affineSpan_range_faceOpposite_points_iff - theorem Affine.Simplex.mem_affineSpan_range_face_points_iff - def Affine.Simplex.mkOfPoint - theorem Affine.Simplex.mkOfPoint_points - theorem Affine.Simplex.range_faceOpposite_points - theorem Affine.Simplex.range_face_points - def Affine.Simplex.reindex - theorem Affine.Simplex.reindex_map - theorem Affine.Simplex.reindex_range_points - theorem Affine.Simplex.reindex_refl - theorem Affine.Simplex.reindex_reindex_symm - theorem Affine.Simplex.reindex_symm_reindex - theorem Affine.Simplex.reindex_trans - def Affine.Simplex.restrict - theorem Affine.Simplex.restrict_map_inclusion - theorem Affine.Simplex.restrict_map_restrict - theorem Affine.Simplex.restrict_map_subtype - structure Affine.Simplex Added Mathlib/LinearAlgebra/AffineSpace/Simplex/Basic.lean + theorem Affine.Simplex.affineCombination_mem_closedInterior_iff + theorem Affine.Simplex.affineCombination_mem_interior_iff + theorem Affine.Simplex.closedInterior_subset_affineSpan + theorem Affine.Simplex.ext + def Affine.Simplex.face + def Affine.Simplex.faceOpposite + theorem Affine.Simplex.faceOpposite_map + theorem Affine.Simplex.faceOpposite_point_eq_point_one + theorem Affine.Simplex.faceOpposite_point_eq_point_rev + theorem Affine.Simplex.faceOpposite_point_eq_point_succAbove + theorem Affine.Simplex.faceOpposite_point_eq_point_zero + theorem Affine.Simplex.face_eq_mkOfPoint + theorem Affine.Simplex.face_map + theorem Affine.Simplex.face_points' + theorem Affine.Simplex.face_points + theorem Affine.Simplex.interior_subset_closedInterior + def Affine.Simplex.map + theorem Affine.Simplex.map_comp + theorem Affine.Simplex.map_id + theorem Affine.Simplex.map_mkOfPoint + theorem Affine.Simplex.map_subtype_restrict + theorem Affine.Simplex.mem_affineSpan_image_iff + theorem Affine.Simplex.mem_affineSpan_range_faceOpposite_points_iff + theorem Affine.Simplex.mem_affineSpan_range_face_points_iff + def Affine.Simplex.mkOfPoint + theorem Affine.Simplex.mkOfPoint_points + theorem Affine.Simplex.range_faceOpposite_points + theorem Affine.Simplex.range_face_points + def Affine.Simplex.reindex + theorem Affine.Simplex.reindex_map + theorem Affine.Simplex.reindex_range_points + theorem Affine.Simplex.reindex_refl + theorem Affine.Simplex.reindex_reindex_symm + theorem Affine.Simplex.reindex_symm_reindex + theorem Affine.Simplex.reindex_trans + def Affine.Simplex.restrict + theorem Affine.Simplex.restrict_map_inclusion + theorem Affine.Simplex.restrict_map_restrict + theorem Affine.Simplex.restrict_map_subtype + structure Affine.Simplex Added Mathlib/LinearAlgebra/AffineSpace/Simplex/Centroid.lean + theorem Affine.Simplex.centroid_eq_iff + theorem Affine.Simplex.centroid_eq_of_range_eq + theorem Affine.Simplex.face_centroid_eq_centroid + theorem Affine.Simplex.face_centroid_eq_iff 2025-08-07 02:47:55 2729390 feat: faster NoNatZeroDivisors instance (#28033) This switches out the instance for `Lean.Grind.NoNatZeroDivisors` to a much faster-to-fail instance. This fixes the slow behaviour reported by @hrmacbeth at [#lean4 > grind and ordered ring @ 💬](https://leanprover.zulipchat.com/#narrow/channel/270676-lean4/topic/grind.20and.20ordered.20ring/near/530466710) and discussed further at [#mathlib4 > type-class inference slow/timing out @ 💬](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/type-class.20inference.20slow.2Ftiming.20out/near/530602780) It does require adding an import for the (newly added in #28031) `Mathlib.Algebra.Ring.Torsion` to keep a call to `grind` working. I hope we can actually move this import earlier so people don't get stuck on this instance being missing, and hence grind failing them. - [x] depends on: #28031 ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Torsion.lean Modified Mathlib/Algebra/NoZeroSMulDivisors/Defs.lean Modified Mathlib/LinearAlgebra/RootSystem/Finite/Lemmas.lean Added MathlibTest/slow_instances.lean 2025-08-07 01:38:39 e0e60e4 feat: `Monotone.prodMk` (#28050) Prove theorem `Monotone.prodMk` and `monotone_prodMk_iff` See [Zulip](https://leanprover.zulipchat.com/#narrow/channel/217875-Is-there-code-for-X.3F/topic/Monotone.20on.20product.20order) ESTIMATED CHANGES Modified Mathlib/Order/Monotone/Defs.lean + theorem Monotone.prodMk + theorem monotone_prodMk_iff 2025-08-07 01:38:37 f92ca81 chore(Algebra/Notation): move `Pi.single` earlier (#28027) The definition doesn't need anything about monoids/groups. This is useful to disentangle `Finsupp` results downstream. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Category/MonCat/Limits.lean Modified Mathlib/Algebra/Group/Equiv/TypeTags.lean Modified Mathlib/Algebra/Group/Fin/Tuple.lean Modified Mathlib/Algebra/Group/Finsupp.lean Modified Mathlib/Algebra/Group/Hom/Defs.lean Modified Mathlib/Algebra/Group/Nat/Hom.lean Modified Mathlib/Algebra/Group/Pi/Basic.lean - theorem Pi.apply_mulSingle - theorem Pi.apply_mulSingle₂ - def Pi.mulSingle - theorem Pi.mulSingle_apply - theorem Pi.mulSingle_comm - theorem Pi.mulSingle_eq_of_ne' - theorem Pi.mulSingle_eq_of_ne - theorem Pi.mulSingle_eq_one_iff - theorem Pi.mulSingle_eq_same - theorem Pi.mulSingle_inj - theorem Pi.mulSingle_injective - theorem Pi.mulSingle_ne_one_iff - theorem Pi.mulSingle_one - theorem Pi.mulSingle_op - theorem Pi.mulSingle_op₂ Modified Mathlib/Algebra/Group/Pointwise/Set/Scalar.lean Modified Mathlib/Algebra/Group/Support.lean Modified Mathlib/Algebra/Group/TypeTags/Basic.lean Modified Mathlib/Algebra/GroupWithZero/Action/Defs.lean Added Mathlib/Algebra/Notation/Pi/Basic.lean + theorem Pi.apply_mulSingle + theorem Pi.apply_mulSingle₂ + def Pi.mulSingle + theorem Pi.mulSingle_apply + theorem Pi.mulSingle_comm + theorem Pi.mulSingle_eq_of_ne' + theorem Pi.mulSingle_eq_of_ne + theorem Pi.mulSingle_eq_one_iff + theorem Pi.mulSingle_eq_same + theorem Pi.mulSingle_inj + theorem Pi.mulSingle_injective + theorem Pi.mulSingle_ne_one_iff + theorem Pi.mulSingle_one + theorem Pi.mulSingle_op + theorem Pi.mulSingle_op₂ Renamed Mathlib/Algebra/Notation/Pi.lean to Mathlib/Algebra/Notation/Pi/Defs.lean Modified Mathlib/Algebra/Order/Field/Pi.lean Modified Mathlib/Algebra/Order/Group/Unbundled/Abs.lean Modified Mathlib/Algebra/Order/GroupWithZero/Unbundled/Basic.lean Modified Mathlib/Algebra/Order/Sub/Prod.lean Modified Mathlib/Algebra/Order/Sum.lean Modified Mathlib/CategoryTheory/Limits/Shapes/ZeroMorphisms.lean Modified Mathlib/Order/Interval/Set/Pi.lean 2025-08-07 01:38:36 711636e feat(Int): Decidable instance for IsCoprime (#27739) ESTIMATED CHANGES Modified Mathlib/RingTheory/Coprime/Lemmas.lean 2025-08-07 00:48:26 80a716b chore(Data/FunLike/Equiv): remove `FunLike` argument in `subsingleton_dom` (#27911) This PR removes an unneccessary hypothesis that I spotted in `subsingleton_dom`. ESTIMATED CHANGES Modified Mathlib/Data/FunLike/Equiv.lean +/- theorem EquivLike.subsingleton_dom 2025-08-07 00:32:43 364afc5 chore: update Mathlib dependencies 2025-08-06 (#28051) This PR updates the Mathlib dependencies. ESTIMATED CHANGES Modified Mathlib/Probability/ProbabilityMassFunction/Binomial.lean Modified lake-manifest.json 2025-08-06 22:19:38 d790830 feat(Algebra/Group/Center): `center (Π i, A i) = univ.pi (fun i => center (A i))` (#28024) ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Center.lean + theorem Set.center_pi 2025-08-06 22:19:36 05c5802 feat(autolabel): label script changes also (#27967) - changes to lint-style.{py,lean} are t-linter changes, - changes to nolint.json, noshake.json, nolints-style.txt and nolint_prime_decls.txt don't get any area label; - all other files in script are labelled as CI changes. This matches the new meaning of the CI label, as also [discussed on zulip](https://leanprover.zulipchat.com/#narrow/channel/345428-mathlib-reviewers/topic/Proposal.3A.20automatic.20reviewer.20assignment/near/532789070). ESTIMATED CHANGES Modified scripts/autolabel.lean 2025-08-06 22:19:34 aec92dc chore: do not include cache requests in build benchmark (#24889) ESTIMATED CHANGES Modified scripts/bench/temci-config.run.yml 2025-08-06 21:33:17 6a89d6e chore: un-indent some doc-strings to match the style guide (#28041) The style guide asks for subsequent lines in doc-strings to not be indented ([zulip discussion](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Style.20.3Abicycle.3A.20.3A.20indenting.20second.20lines.20in.20doc-strings/with/513186492)). This fixes some violations. Found by the linter in https://github.com/leanprover-community/mathlib4/pull/27996. ESTIMATED CHANGES Modified Mathlib/Algebra/Divisibility/Basic.lean Modified Mathlib/Algebra/Divisibility/Units.lean Modified Mathlib/Algebra/Group/Prod.lean Modified Mathlib/Algebra/Group/Subgroup/Lattice.lean Modified Mathlib/Algebra/Group/Subgroup/Map.lean Modified Mathlib/Algebra/Group/Submonoid/BigOperators.lean Modified Mathlib/Algebra/Group/Submonoid/Membership.lean Modified Mathlib/Algebra/Group/Submonoid/Operations.lean Modified Mathlib/Algebra/Group/Subsemigroup/Operations.lean Modified Mathlib/Algebra/GroupWithZero/Units/Basic.lean Modified Mathlib/Algebra/Order/Monoid/Canonical/Defs.lean Modified Mathlib/Algebra/Ring/Equiv.lean Modified Mathlib/Algebra/Ring/Subring/Basic.lean Modified Mathlib/Algebra/Ring/Subsemiring/Basic.lean Modified Mathlib/Algebra/Ring/Units.lean Modified Mathlib/CategoryTheory/Comma/Basic.lean Modified Mathlib/CategoryTheory/Comma/Over/Basic.lean Modified Mathlib/CategoryTheory/Comma/StructuredArrow/Basic.lean Modified Mathlib/CategoryTheory/Functor/EpiMono.lean Modified Mathlib/CategoryTheory/Limits/Preserves/Basic.lean Modified Mathlib/CategoryTheory/Limits/Preserves/Shapes/Biproducts.lean Modified Mathlib/CategoryTheory/Limits/Shapes/BinaryBiproducts.lean Modified Mathlib/CategoryTheory/Limits/Shapes/BinaryProducts.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Biproducts.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Equalizers.lean Modified Mathlib/CategoryTheory/Limits/Shapes/FiniteLimits.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Images.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Kernels.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Products.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Pullback/HasPullback.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Pullback/Mono.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Pullback/PullbackCone.lean Modified Mathlib/CategoryTheory/Limits/Shapes/ZeroMorphisms.lean Modified Mathlib/CategoryTheory/Linear/Basic.lean Modified Mathlib/CategoryTheory/Preadditive/Basic.lean Modified Mathlib/CategoryTheory/Preadditive/Biproducts.lean Modified Mathlib/Control/Functor.lean Modified Mathlib/Data/Nat/Bits.lean Modified Mathlib/Lean/Meta/RefinedDiscrTree/Lookup.lean Modified Mathlib/LinearAlgebra/Matrix/Reindex.lean Modified Mathlib/LinearAlgebra/Span/Basic.lean Modified Mathlib/Logic/Embedding/Basic.lean Modified Mathlib/Logic/Equiv/Basic.lean Modified Mathlib/Logic/Equiv/Option.lean Modified Mathlib/Logic/Relator.lean Modified Mathlib/Order/Basic.lean Modified Mathlib/Order/CompactlyGenerated/Basic.lean Modified Mathlib/Order/Hom/Basic.lean Modified Mathlib/Order/MinMax.lean Modified Mathlib/Order/OrderIsoNat.lean Modified Mathlib/RingTheory/Congruence/Basic.lean Modified Mathlib/RingTheory/Congruence/Defs.lean Modified Mathlib/RingTheory/NonUnitalSubring/Basic.lean Modified Mathlib/Tactic/Ring/Basic.lean Modified Mathlib/Tactic/Simps/NotationClass.lean Modified Mathlib/Tactic/ToAdditive/Frontend.lean 2025-08-06 20:27:50 0228751 feat(Algebra/GroupWithZero): WithZero.exp_injective (#27666) ESTIMATED CHANGES Modified Mathlib/Algebra/GroupWithZero/WithZero.lean + theorem WithZero.exp_eq_one + theorem WithZero.exp_inj + theorem WithZero.exp_injective 2025-08-06 19:36:57 537e847 feat(Probability): instances for `Kernel` on empty types (#27587) ESTIMATED CHANGES Modified Mathlib/Probability/Kernel/Basic.lean Modified Mathlib/Probability/Kernel/Defs.lean + theorem ProbabilityTheory.Kernel.not_isMarkovKernel_zero 2025-08-06 17:32:11 2e65cf9 feat: locally finite finsums of C^n sections are C^n (#28048) This may seem redundant in light of #27349, but is not: `finsum`s are more convenient for use with partitions of unity: when using them for constructing new objects, one takes a convex combination ESTIMATED CHANGES Modified Mathlib/Geometry/Manifold/ContMDiff/Defs.lean + theorem ContMDiffWithinAt.congr' Modified Mathlib/Geometry/Manifold/VectorBundle/SmoothSection.lean + theorem ContMDiff.finsum_section_of_locallyFinite + theorem ContMDiffAt.finsum_section_of_locallyFinite + theorem ContMDiffOn.finsum_section_of_locallyFinite + theorem ContMDiffWithinAt.finsum_section_of_locallyFinite 2025-08-06 17:32:09 bbba5b7 feat: a characteristic zero domain IsAddTorsionFree (#28031) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Ring/Torsion.lean 2025-08-06 17:32:08 4c2080a feat(LinearAlgebra/SModEq): add `gcongr` lemmas (#28008) ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/SModEq.lean + theorem SModEq.comm + theorem SModEq.prod + theorem SModEq.sum 2025-08-06 17:32:06 7a8a234 feat: integral of product of indepent random variables (#27986) Move `Probability.Integration` into the `Independence` folder. Change the proof of [ProbabilityTheory.IndepFun.integral_mul](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Probability/Integration.html#ProbabilityTheory.IndepFun.integral_mul) to simplify it and generalize to an `RCLike` codomain. Add a version for a finite product. The actual diff starts at line 202, what is above was just moved without being touched (except the author line). ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Probability/Independence/Integration.lean + theorem ProbabilityTheory.IndepFun.integrable_left_of_integrable_mul + theorem ProbabilityTheory.IndepFun.integrable_mul + theorem ProbabilityTheory.IndepFun.integrable_right_of_integrable_mul + theorem ProbabilityTheory.IndepFun.integral_comp_mul_comp + theorem ProbabilityTheory.IndepFun.integral_fun_comp_mul_comp + theorem ProbabilityTheory.IndepFun.integral_fun_mul_eq_mul_integral + theorem ProbabilityTheory.IndepFun.integral_mul_eq_mul_integral + theorem ProbabilityTheory.iIndepFun.integral_fun_prod_comp + theorem ProbabilityTheory.iIndepFun.integral_fun_prod_eq_prod_integral + theorem ProbabilityTheory.iIndepFun.integral_prod_comp + theorem ProbabilityTheory.iIndepFun.integral_prod_eq_prod_integral + theorem ProbabilityTheory.indepFun_iff_integral_comp_mul + theorem ProbabilityTheory.lintegral_mul_eq_lintegral_mul_lintegral_of_indepFun'' + theorem ProbabilityTheory.lintegral_mul_eq_lintegral_mul_lintegral_of_indepFun' + theorem ProbabilityTheory.lintegral_mul_eq_lintegral_mul_lintegral_of_indepFun + theorem ProbabilityTheory.lintegral_mul_eq_lintegral_mul_lintegral_of_independent_measurableSpace + theorem ProbabilityTheory.lintegral_mul_indicator_eq_lintegral_mul_lintegral_indicator + theorem ProbabilityTheory.lintegral_prod_eq_prod_lintegral_of_indepFun Modified Mathlib/Probability/Integration.lean - theorem ProbabilityTheory.IndepFun.integrable_left_of_integrable_mul - theorem ProbabilityTheory.IndepFun.integrable_mul - theorem ProbabilityTheory.IndepFun.integrable_right_of_integrable_mul - theorem ProbabilityTheory.IndepFun.integral_mul' - theorem ProbabilityTheory.IndepFun.integral_mul - theorem ProbabilityTheory.IndepFun.integral_mul_of_integrable - theorem ProbabilityTheory.IndepFun.integral_mul_of_nonneg - theorem ProbabilityTheory.indepFun_iff_integral_comp_mul - theorem ProbabilityTheory.lintegral_mul_eq_lintegral_mul_lintegral_of_indepFun'' - theorem ProbabilityTheory.lintegral_mul_eq_lintegral_mul_lintegral_of_indepFun' - theorem ProbabilityTheory.lintegral_mul_eq_lintegral_mul_lintegral_of_indepFun - theorem ProbabilityTheory.lintegral_mul_eq_lintegral_mul_lintegral_of_independent_measurableSpace - theorem ProbabilityTheory.lintegral_mul_indicator_eq_lintegral_mul_lintegral_indicator - theorem ProbabilityTheory.lintegral_prod_eq_prod_lintegral_of_indepFun Modified Mathlib/Probability/Moments/Basic.lean Modified Mathlib/Probability/Moments/Variance.lean 2025-08-06 17:32:04 fc65f32 feat(Algebra/Adjoin): singleton as aeval (#27828) For `x : A`, elements of `Algebra.adjoin R {x}` can be represented as a polynomial of `R` evaluated at the point `x`. This PR introduces three (3) theorems related to this: - `adjoin_mem_exists_aeval` rewrite an element of `A` in `adjoin R {x}` as the `aeval` of some polynomial. - `adjoin_eq_exists_aeval` rewrite an element `adjoin R {x}` as the `aeval` of some polynomial. - `adjoin_singleton_induction`: an induction principle reducing problems over `adjoin R {x}` to problems of the form `M (⟨aeval x p, aeval_mem_adjoin_singleton R x⟩ : adjoin R {x})`. ESTIMATED CHANGES Modified Mathlib/RingTheory/Adjoin/Polynomial.lean + theorem Algebra.adjoin_eq_exists_aeval + theorem Algebra.adjoin_mem_exists_aeval + theorem Algebra.adjoin_singleton_induction +/- theorem Polynomial.adjoin_X +/- theorem Polynomial.aeval_mem_adjoin_singleton 2025-08-06 17:32:02 5bc5588 chore(Order/Filter/Basic): write lemmas in point-free style (#27184) This PR writes the congruence lemmas about filtered equality and about asymptotic equivalence in a point-free style. This is so that they can then be tagged with `@[gcongr]`. Some of the old versions have been kept with a `fun_` name. And apparently the import size has decreased as a bonus :) ESTIMATED CHANGES Modified Mathlib/Analysis/Asymptotics/AsymptoticEquivalent.lean Modified Mathlib/Analysis/Normed/Ring/Units.lean Modified Mathlib/MeasureTheory/Function/LpSpace/Basic.lean Modified Mathlib/MeasureTheory/Function/LpSpace/Indicator.lean Modified Mathlib/MeasureTheory/Integral/Lebesgue/Add.lean Modified Mathlib/Order/Filter/Basic.lean + theorem Filter.EventuallyEq.fun_div + theorem Filter.EventuallyEq.fun_inv + theorem Filter.EventuallyEq.fun_mul + theorem Filter.EventuallyEq.fun_pow_const +/- theorem Filter.EventuallyEq.inv Modified Mathlib/Order/Filter/Map.lean Modified Mathlib/Probability/Density.lean 2025-08-06 16:47:48 3c73795 chore: replace `aesop` with `omega` where applicable (#28015) ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Int/Units.lean Modified Mathlib/Analysis/SpecialFunctions/ContinuousFunctionalCalculus/Rpow/IntegralRepresentation.lean Modified Mathlib/Combinatorics/SimpleGraph/Paths.lean Modified Mathlib/Data/ENNReal/Holder.lean Modified Mathlib/GroupTheory/SpecificGroups/Cyclic.lean Modified Mathlib/LinearAlgebra/RootSystem/Finite/G2.lean Modified Mathlib/NumberTheory/ArithmeticFunction.lean Modified Mathlib/Order/Interval/Finset/Nat.lean 2025-08-06 16:47:46 c7bad0f feat(Data/Finset/Lattice/Lemmas): add trivial lemmas about `Finset.insert` (#27547) The analogous `Set` lemmas are already simp. ESTIMATED CHANGES Modified Mathlib/Analysis/Analytic/Inverse.lean Modified Mathlib/Computability/TMToPartrec.lean Modified Mathlib/Data/Finset/Lattice/Lemmas.lean + theorem Finset.singleton_union + theorem Finset.union_singleton Modified Mathlib/GroupTheory/Perm/Support.lean 2025-08-06 16:01:43 fcb39c7 feat: preliminary grind annotations for Finset.prod (#27923) ESTIMATED CHANGES Modified Mathlib/Algebra/BigOperators/Group/Finset/Basic.lean + theorem Finset.prod_cons' + theorem Finset.prod_insert' + theorem Finset.prod_singleton' Modified Mathlib/Algebra/BigOperators/Group/Finset/Defs.lean + theorem Finset.prod_empty' + theorem Finset.prod_map' Modified Mathlib/Algebra/BigOperators/Group/Multiset/Basic.lean Modified Mathlib/Algebra/BigOperators/Group/Multiset/Defs.lean Modified Mathlib/Algebra/Group/Units/Defs.lean Modified Mathlib/Data/Finset/Insert.lean Modified Mathlib/Data/Multiset/AddSub.lean Modified Mathlib/Data/Multiset/ZeroCons.lean Modified Mathlib/RingTheory/Ideal/Operations.lean 2025-08-06 14:45:00 32f045f chore(Algebra): review a few porting notes (#27880) Go through porting notes and address a few that are either TODOs unrelated to the port, things changed in Lean 4 but not for the worse, or issues that are now solved. ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/Basic.lean Modified Mathlib/Algebra/Algebra/Subalgebra/Directed.lean Modified Mathlib/Algebra/Algebra/Subalgebra/Lattice.lean Modified Mathlib/Algebra/Algebra/Subalgebra/Tower.lean Modified Mathlib/Algebra/BigOperators/Finprod.lean Modified Mathlib/Algebra/Field/Subfield/Defs.lean Modified Mathlib/Algebra/Group/Action/TypeTags.lean Modified Mathlib/Algebra/Group/End.lean 2025-08-06 14:44:58 d6b26cb feat(FieldTheory): lemmas about trace and norm in finite fields (#27289) ESTIMATED CHANGES Modified Mathlib/FieldTheory/Finite/Basic.lean + theorem FiniteField.coe_frobeniusAlgEquivOfAlgebraic_iterate Modified Mathlib/FieldTheory/Finite/Trace.lean + theorem FiniteField.algebraMap_norm_eq_pow_sum + theorem FiniteField.algebraMap_norm_eq_prod_pow + theorem FiniteField.algebraMap_trace_eq_sum_pow 2025-08-06 14:19:13 9c03ca6 feat: evaluation maps the infinite product measure to the single marginal (#27951) ESTIMATED CHANGES Modified Mathlib/Probability/ProductMeasure.lean + theorem measurePreserving_eval_infinitePi 2025-08-06 14:02:55 2c5d7a0 feat: mean value property of complex differentiable functions on the complex plane (#27735) As an immediate application of the Cauchy integral formula, establish the mean value property of complex-differentiable functions on the complex plane. Fix a typo in the docstrings of `Mathlib/Analysis/Complex/CauchyIntegral.lean` and remove one unnecessary type cast. This material is used in [Project VD](https://github.com/kebekus/ProjectVD), which aims to formalize Value Distribution Theory for meromorphic functions on the complex plane. TODO: As soon as PR https://github.com/leanprover-community/mathlib4/pull/9598 (feat(Analysis/Complex): HasPrimitives on disc) is merged, extend this to harmonic functions. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Analysis/Complex/CauchyIntegral.lean Added Mathlib/Analysis/Complex/MeanValue.lean + theorem circleAverage_of_differentiable_on + theorem circleAverage_of_differentiable_on_off_countable Modified Mathlib/Analysis/MellinInversion.lean Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Basic.lean Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Cotangent.lean Modified Mathlib/MeasureTheory/Integral/CircleAverage.lean + theorem Real.circleAverage_eq_circleIntegral Modified Mathlib/MeasureTheory/Integral/CircleIntegral.lean 2025-08-06 14:02:54 a0ad187 feat(Probability): `Kernel.comp_const` (#27586) `κ ∘ₖ Kernel.const α μ = Kernel.const α (κ ∘ₘ μ)` ESTIMATED CHANGES Modified Mathlib/Probability/Kernel/Composition/MeasureComp.lean + theorem ProbabilityTheory.Kernel.comp_const Modified Mathlib/Probability/Kernel/Invariance.lean - theorem ProbabilityTheory.Kernel.Invariant.comp_const 2025-08-06 13:26:16 c3f0f19 feat: miscellaneous Lie algebra lemmas (#27600) These came up in the proof that the Geck Construction yields _semisimple_ Lie algebras. I am splitting them into their own PR to simplify review. ESTIMATED CHANGES Modified Mathlib/Algebra/Lie/Abelian.lean + theorem LieSubalgebra.isLieAbelian_lieSpan_iff Modified Mathlib/Algebra/Lie/Basic.lean + def LieRingModule.toEnd +/- theorem lie_sum +/- theorem sum_lie +/- theorem sum_lie_sum Modified Mathlib/Algebra/Lie/Semisimple/Defs.lean + theorem LieModule.IsIrreducible.mk Modified Mathlib/Algebra/Lie/Subalgebra.lean + theorem LieSubalgebra.coe_lieSpan_eq_span_of_forall_lie_eq_zero + theorem LieSubalgebra.mem_comap + theorem LieSubalgebra.mem_mk_iff' Modified Mathlib/Order/Atoms.lean + theorem IsSimpleOrder.of_forall_eq_top 2025-08-06 12:31:10 35a5aa0 feat: practical criterion for convergence of probability measures (#27867) Assume that, applied to all the elements of a π-system, a sequence of probability measures converges to a limiting probability measure. Assume also that the π-system contains arbitrarily small neighborhoods of any point. Then the sequence of probability measures converges for the weak topology. This is Theorem 2.3 in [Billingsely, Convergence of probability measures]. To be used in #27932 to show that taking the product of two probability measures is a continuous operation. ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Measure/Portmanteau.lean + theorem IsPiSystem.tendsto_measureReal_biUnion + theorem IsPiSystem.tendsto_probabilityMeasure_biUnion + theorem IsPiSystem.tendsto_probabilityMeasure_of_tendsto_of_mem + theorem MeasureTheory.ProbabilityMeasure.exists_lt_measure_biUnion_of_isOpen Modified Mathlib/MeasureTheory/Measure/ProbabilityMeasure.lean + theorem MeasureTheory.ProbabilityMeasure.coeFn_empty + theorem MeasureTheory.ProbabilityMeasure.measureReal_eq_coe_coeFn + theorem MeasureTheory.ProbabilityMeasure.toNNReal_measureReal_eq_coeFn Modified Mathlib/MeasureTheory/PiSystem.lean + theorem IsPiSystem.biInter_mem 2025-08-06 12:15:26 fe304a0 feat: mapping the product measure by a product of map (#27983) Add a version for the finite and the infinite product of measures. ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Constructions/Pi.lean + theorem MeasureTheory.Measure.pi_map_pi Modified Mathlib/Probability/ProductMeasure.lean + theorem MeasureTheory.Measure.infinitePi_map_pi 2025-08-06 11:35:26 5a23cf1 feat(FieldTheory/Finite): minimal polynomial of Frobenius (#27368) for the normal basis theorem at *Formalizing Class Field Theory* ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/Equiv.lean + def AlgEquiv.toAlgHomHom Modified Mathlib/Algebra/Algebra/Hom.lean + def AlgHom.toEnd Modified Mathlib/FieldTheory/Finite/Basic.lean + theorem FiniteField.minpoly_frobeniusAlgHom Modified Mathlib/FieldTheory/Minpoly/Basic.lean + theorem minpoly.eq_of_linearIndependent 2025-08-06 11:02:08 5b83500 feat(RatFunc): transcendental_X (#27823) The variable `RatFunc.X` is transcendental over `K` in `RatFunc K`. ESTIMATED CHANGES Modified Mathlib/FieldTheory/RatFunc/AsPolynomial.lean + theorem RatFunc.transcendental_X 2025-08-06 11:02:07 ce744ee feat(CategoryTheory): Artinian objects (#26989) The API for Noetherian objects (from `Subobject.NoetherianObject`) is "dualized" in order to develop an API for Artinian objects. The previously existing definitions `ArtinianObject` and `NoetherianObject` from the file `CategoryTheory.Noetherian` are deprecated. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/CategoryTheory/Noetherian.lean - theorem CategoryTheory.ArtinianObject.subobject_lt_wellFounded - theorem CategoryTheory.NoetherianObject.subobject_gt_wellFounded - theorem CategoryTheory.exists_simple_subobject Added Mathlib/CategoryTheory/Subobject/ArtinianObject.lean + theorem CategoryTheory.antitone_chain_condition_of_isArtinianObject + theorem CategoryTheory.exists_simple_subobject + def CategoryTheory.isArtinianObject + theorem CategoryTheory.isArtinianObject_iff_antitone_chain_condition + theorem CategoryTheory.isArtinianObject_iff_isEventuallyConstant + theorem CategoryTheory.isArtinianObject_iff_not_strictAnti + theorem CategoryTheory.isArtinianObject_of_isZero + theorem CategoryTheory.isArtinianObject_of_mono + theorem CategoryTheory.isEventuallyConstant_of_isArtinianObject + theorem CategoryTheory.not_strictAnti_of_isArtinianObject Modified Mathlib/CategoryTheory/Subobject/NoetherianObject.lean 2025-08-06 11:02:04 fa3aec1 feat(RingTheory/MvPolynomial/Groebner): add docstring and a particular case (#26022) * add a new division theorem when one divides by a single polynomial * add docstrings to the three division theorems This PR continues the work from #24819. Original PR: https://github.com/leanprover-community/mathlib4/pull/24819 ESTIMATED CHANGES Modified Mathlib/RingTheory/MvPolynomial/Groebner.lean + theorem MonomialOrder.div_single 2025-08-06 11:02:02 093fce9 feat(RepresentationTheory/Homological/GroupHomology/Functoriality): the degree 1 part of the corestriction-coinflation exact sequence when the subgroup acts trivially (#25952) Given a normal subgroup `S` of `G` and a `G`-representation `A` on which `S` acts trivially, this PR defines the short complex `H₁(S, A) ⟶ H₁(G, A) ⟶ H₁(G ⧸ S, A)` induced by the natural inclusion `S → G` and projection `G → G / S`. We show it is exact and that the righthand map is an epimorphism. ESTIMATED CHANGES Modified Mathlib/RepresentationTheory/Homological/GroupCohomology/Functoriality.lean - theorem groupCohomology.map_1_one + theorem groupCohomology.map₁_one Modified Mathlib/RepresentationTheory/Homological/GroupHomology/Functoriality.lean + theorem groupHomology.H1CoresCoinfOfTrivial_exact + theorem groupHomology.mapCycles₁_hom + theorem groupHomology.mapCycles₂_hom + theorem groupHomology.map₁_one 2025-08-06 10:52:41 fc48d27 feat(Algebra/Homology/AlternatingConst): generalize to any appropriate complex shape and pair of maps (#27361) Given an object `X : C` and endomorphisms `φ, ψ : X ⟶ X` such that `φ ∘ ψ = ψ ∘ φ = 0`, this PR defines the periodic chain and cochain complexes `... ⟶ X --φ--> X --ψ--> X --φ--> X --ψ--> 0` and `0 ⟶ X --ψ--> X --φ--> X --ψ--> X --φ--> ...` (or more generally for any complex shape `c` on `ℕ` where `c.Rel i j` implies `i` and `j` have different parity). We calculate the homology of these periodic complexes. This generalizes some of the current content of the file, which works for the chain complex where `ψ = 0` and `φ = Id`. ESTIMATED CHANGES Modified Mathlib/Algebra/Homology/AlternatingConst.lean - def AlgebraicTopology.alternatingFaceMapComplexConst - def ChainComplex.alternatingConst + theorem ComplexShape.down_nat_odd_add + theorem ComplexShape.up_nat_odd_add + theorem HomologicalComplex.alternatingConst_iCycles_even_comp + theorem HomologicalComplex.alternatingConst_iCycles_odd_comp 2025-08-06 09:16:00 1e4b2ad chore(Algebra/Group/Support): rename primed lemmas to match naming convention (#27777) `mulSupport_inv` should be called `mulSupport_fun_inv`, according to the [naming convention](https://leanprover-community.github.io/contribute/naming.html#unexpanded-and-expanded-forms-of-functions), similarly for the other lemmas. Unfortunately, there is no good tooling yet for renames `A -> B` and `B -> C`. ESTIMATED CHANGES Modified Mathlib/Algebra/BigOperators/Finprod.lean Modified Mathlib/Algebra/Group/Indicator.lean Modified Mathlib/Algebra/Group/Support.lean - theorem Function.mulSupport_curry' + theorem Function.mulSupport_fun_curry + theorem Function.mulSupport_fun_inv + theorem Function.mulSupport_fun_one - theorem Function.mulSupport_inv' +/- theorem Function.mulSupport_inv - theorem Function.mulSupport_one' +/- theorem Function.mulSupport_one + theorem Function.mulSupport_prodMk' + theorem Function.mulSupport_prodMk - theorem Function.mulSupport_prod_mk' - theorem Function.mulSupport_prod_mk Modified Mathlib/Algebra/GroupWithZero/Indicator.lean Modified Mathlib/LinearAlgebra/RootSystem/Base.lean Modified Mathlib/MeasureTheory/Function/SimpleFunc.lean Modified Mathlib/MeasureTheory/Function/StronglyMeasurable/Basic.lean Modified Mathlib/RingTheory/HahnSeries/Addition.lean Modified Mathlib/RingTheory/HahnSeries/Basic.lean Modified Mathlib/Topology/Algebra/Support.lean Modified Mathlib/Topology/LocallyFinsupp.lean 2025-08-06 01:57:14 e20d25f chore(Analysis/NormedSpace/OperatorNorm): add a `norm` version of an `nnnorm` lemma (#28020) ESTIMATED CHANGES Modified Mathlib/Analysis/NormedSpace/OperatorNorm/NNNorm.lean + theorem ContinuousLinearMap.sSup_sphere_eq_norm 2025-08-06 01:34:59 0759233 feat(RingTheory/TensorProduct/Basic): `mulLeft R (a ⊗ₜ b) = map (mulLeft R a) (mulLeft R b)` (#27998) Add `mulLeft R (a ⊗ₜ[R] b) = map (mulLeft R a) (mulLeft R b)` and analogue for `mulRight`. ESTIMATED CHANGES Modified Mathlib/RingTheory/TensorProduct/Basic.lean + theorem LinearMap.mulLeft_tmul + theorem LinearMap.mulRight_tmul 2025-08-06 01:34:57 59fa465 feat: define morphism type `StarMonoidHom` (#27763) This defines star-preserving monoid homomorphisms between star monoids. The primary motivation for these morphisms is to provide a target type for morphisms which induce a corresponding morphism between the unitary groups in a star monoid. Without this type, there is no concrete type for [unitary.map](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Algebra/Star/Unitary.html#unitary.map) and we end up resorting to morphisms *classes* instead, which is suboptimal. See [Zulip](https://leanprover.zulipchat.com/#narrow/channel/113489-new-members/topic/.E2.9C.94.20Golfing.20matrix.20group.20coercion/near/528000462) for the problem which motivated the creation of this type. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Star/MonoidHom.lean + def StarMonoidHom.Simps.coe + theorem StarMonoidHom.coe_comp + theorem StarMonoidHom.coe_copy + theorem StarMonoidHom.coe_id + theorem StarMonoidHom.coe_mk + theorem StarMonoidHom.coe_one + theorem StarMonoidHom.coe_toMonoidHom + def StarMonoidHom.comp + theorem StarMonoidHom.comp_apply + theorem StarMonoidHom.comp_assoc + theorem StarMonoidHom.comp_id + theorem StarMonoidHom.copy_eq + theorem StarMonoidHom.ext + theorem StarMonoidHom.id_comp + def StarMonoidHom.ofClass + theorem StarMonoidHom.one_apply + structure StarMonoidHom + def StarMulEquiv.Simps.apply + def StarMulEquiv.Simps.symm_apply + theorem StarMulEquiv.apply_symm_apply + theorem StarMulEquiv.coe_mk + theorem StarMulEquiv.coe_ofBijective + theorem StarMulEquiv.coe_refl + theorem StarMulEquiv.coe_toMulEquiv + theorem StarMulEquiv.coe_trans + theorem StarMulEquiv.ext + theorem StarMulEquiv.invFun_eq_symm + theorem StarMulEquiv.leftInverse_symm + theorem StarMulEquiv.ofBijective_apply + def StarMulEquiv.ofClass + def StarMulEquiv.ofStarMonoidHom + theorem StarMulEquiv.refl_symm + theorem StarMulEquiv.rightInverse_symm + theorem StarMulEquiv.symm_apply_apply + theorem StarMulEquiv.symm_bijective + theorem StarMulEquiv.symm_symm + theorem StarMulEquiv.symm_trans_apply + def StarMulEquiv.trans + theorem StarMulEquiv.trans_apply + structure StarMulEquiv 2025-08-06 01:05:17 edfb965 refactor(Analysis/NormedSpace/OperatorNorm): rearrange variables (#28012) As requested in #27912. ESTIMATED CHANGES Modified Mathlib/Analysis/NormedSpace/OperatorNorm/NNNorm.lean +/- theorem ContinuousLinearMap.exists_lt_apply_of_lt_opNNNorm +/- theorem ContinuousLinearMap.exists_lt_apply_of_lt_opNorm +/- theorem ContinuousLinearMap.exists_nnnorm_eq_one_lt_apply_of_lt_opNNNorm +/- theorem ContinuousLinearMap.isLeast_opNNNorm +/- theorem ContinuousLinearMap.le_opENorm +/- theorem ContinuousLinearMap.le_opNNNorm +/- theorem ContinuousLinearMap.lipschitz +/- theorem ContinuousLinearMap.nndist_le_opNNNorm +/- theorem ContinuousLinearMap.opENorm_comp_le +/- theorem ContinuousLinearMap.opNNNorm_comp_le +/- theorem ContinuousLinearMap.sSup_sphere_eq_nnnorm +/- theorem ContinuousLinearMap.sSup_unitClosedBall_eq_nnnorm +/- theorem ContinuousLinearMap.sSup_unitClosedBall_eq_norm +/- theorem ContinuousLinearMap.sSup_unit_ball_eq_nnnorm +/- theorem ContinuousLinearMap.sSup_unit_ball_eq_norm 2025-08-05 23:45:45 9845f69 feat: replace aesop_cat with a configurable discharger (#27938) This PR * replaces `aesop_cat` with `cat_disch` * by default, `cat_disch` calls the original implementation of `aesop_cat` * but an option configures it to call `grind` instead * and adds logging options To make further use of `grind` in the category theory library: 1. Turn on `set_option mathlib.tactic.category.log_aesop`. 2. Run `lake build` 3. In files that report they are using `aesop` as the discharger, add `set_option mathlib.tactic.category.grind true` (and leave this set in your PR), and fix any problems. 4. Eventually, we can consider changing over the defaults. I have a branch `grind_cat` which starts switching over to the `grind` based discharger. It can close many goals that `aesop_cat` can't. This looks like a huge PR, but besides the changes to `Mathlib/CategoryTheory/Category/Basic.lean` and `Mathlib/CategoryTheory/Category/Init.lean`, all other changes are search and replace `by aesop_cat` to `by cat_disch`. ESTIMATED CHANGES Modified Mathlib/Algebra/Category/Grp/Basic.lean Modified Mathlib/Algebra/Category/Grp/Biproducts.lean Modified Mathlib/Algebra/Category/Grp/CartesianMonoidal.lean Modified Mathlib/Algebra/Category/Grp/EpiMono.lean Modified Mathlib/Algebra/Category/Grp/LeftExactFunctor.lean Modified Mathlib/Algebra/Category/ModuleCat/Basic.lean Modified Mathlib/Algebra/Category/ModuleCat/Differentials/Presheaf.lean Modified Mathlib/Algebra/Category/ModuleCat/Monoidal/Symmetric.lean Modified Mathlib/Algebra/Category/ModuleCat/Presheaf.lean Modified Mathlib/Algebra/Category/ModuleCat/Topology/Basic.lean Modified Mathlib/Algebra/Homology/Additive.lean Modified Mathlib/Algebra/Homology/CommSq.lean Modified Mathlib/Algebra/Homology/DerivedCategory/SingleTriangle.lean Modified Mathlib/Algebra/Homology/Double.lean Modified Mathlib/Algebra/Homology/ExactSequence.lean Modified Mathlib/Algebra/Homology/HomologicalBicomplex.lean Modified Mathlib/Algebra/Homology/HomologicalComplex.lean Modified Mathlib/Algebra/Homology/Homotopy.lean Modified Mathlib/Algebra/Homology/HomotopyCategory.lean Modified Mathlib/Algebra/Homology/HomotopyCategory/HomComplex.lean +/- theorem CochainComplex.HomComplex.Cochain.ofHoms_zero +/- theorem CochainComplex.HomComplex.Cocycle.homOf_ofHom_eq_self +/- theorem CochainComplex.HomComplex.Cocycle.ofHom_homOf_eq_self Modified Mathlib/Algebra/Homology/HomotopyCategory/MappingCone.lean +/- theorem CochainComplex.mappingCone.inr_desc Modified Mathlib/Algebra/Homology/HomotopyCategory/Triangulated.lean Modified Mathlib/Algebra/Homology/HomotopyCofiber.lean Modified Mathlib/Algebra/Homology/Linear.lean Modified Mathlib/Algebra/Homology/ShortComplex/Basic.lean +/- theorem CategoryTheory.ShortComplex.π₁Toπ₂_comp_π₂Toπ₃ Modified Mathlib/Algebra/Homology/ShortComplex/Exact.lean Modified Mathlib/Algebra/Homology/ShortComplex/FunctorEquivalence.lean Modified Mathlib/Algebra/Homology/ShortComplex/HomologicalComplex.lean Modified Mathlib/Algebra/Homology/ShortComplex/Homology.lean Modified Mathlib/Algebra/Homology/ShortComplex/LeftHomology.lean Modified Mathlib/Algebra/Homology/ShortComplex/Limits.lean Modified Mathlib/Algebra/Homology/ShortComplex/Linear.lean Modified Mathlib/Algebra/Homology/ShortComplex/Preadditive.lean Modified Mathlib/Algebra/Homology/ShortComplex/RightHomology.lean Modified Mathlib/Algebra/Homology/ShortComplex/SnakeLemma.lean Modified Mathlib/Algebra/Homology/Single.lean Modified Mathlib/Algebra/Homology/TotalComplex.lean Modified Mathlib/AlgebraicGeometry/Cover/MorphismProperty.lean Modified Mathlib/AlgebraicGeometry/ProjectiveSpectrum/StructureSheaf.lean Modified Mathlib/AlgebraicGeometry/Scheme.lean Modified Mathlib/AlgebraicGeometry/Sites/Representability.lean Modified Mathlib/AlgebraicTopology/CechNerve.lean Modified Mathlib/AlgebraicTopology/DoldKan/Normalized.lean Modified Mathlib/AlgebraicTopology/ExtraDegeneracy.lean Modified Mathlib/AlgebraicTopology/ModelCategory/Cylinder.lean +/- theorem HomotopicalAlgebra.Cylinder.ofFactorizationData_i +/- theorem HomotopicalAlgebra.Precylinder.symm_i Modified Mathlib/AlgebraicTopology/MooreComplex.lean Modified Mathlib/AlgebraicTopology/RelativeCellComplex/AttachCells.lean Modified Mathlib/AlgebraicTopology/SimplicialNerve.lean Modified Mathlib/AlgebraicTopology/SimplicialObject/Basic.lean Modified Mathlib/AlgebraicTopology/SimplicialObject/Split.lean Modified Mathlib/CategoryTheory/Abelian/CommSq.lean Modified Mathlib/CategoryTheory/Abelian/Ext.lean Modified Mathlib/CategoryTheory/Abelian/GrothendieckAxioms/Colim.lean Modified Mathlib/CategoryTheory/Abelian/GrothendieckCategory/ModuleEmbedding/GabrielPopescu.lean Modified Mathlib/CategoryTheory/Abelian/GrothendieckCategory/Monomorphisms.lean Modified Mathlib/CategoryTheory/Abelian/Images.lean Modified Mathlib/CategoryTheory/Abelian/Projective/Resolution.lean Modified Mathlib/CategoryTheory/Abelian/Yoneda.lean Modified Mathlib/CategoryTheory/Action/Basic.lean Modified Mathlib/CategoryTheory/Adjunction/Basic.lean Modified Mathlib/CategoryTheory/Adjunction/Comma.lean Modified Mathlib/CategoryTheory/Adjunction/Lifting/Left.lean Modified Mathlib/CategoryTheory/Adjunction/Mates.lean Modified Mathlib/CategoryTheory/Adjunction/Parametrized.lean Modified Mathlib/CategoryTheory/Bicategory/Adjunction/Adj.lean Modified Mathlib/CategoryTheory/Bicategory/Adjunction/Basic.lean Modified Mathlib/CategoryTheory/Bicategory/Basic.lean Modified Mathlib/CategoryTheory/Bicategory/Extension.lean Modified Mathlib/CategoryTheory/Bicategory/Free.lean Modified Mathlib/CategoryTheory/Bicategory/Functor/Lax.lean Modified Mathlib/CategoryTheory/Bicategory/Functor/LocallyDiscrete.lean Modified Mathlib/CategoryTheory/Bicategory/Functor/Oplax.lean Modified Mathlib/CategoryTheory/Bicategory/Functor/Prelax.lean Modified Mathlib/CategoryTheory/Bicategory/Functor/Pseudofunctor.lean +/- def CategoryTheory.Pseudofunctor.mapId' Modified Mathlib/CategoryTheory/Bicategory/Functor/Strict.lean Modified Mathlib/CategoryTheory/Bicategory/Grothendieck.lean Modified Mathlib/CategoryTheory/Bicategory/LocallyDiscrete.lean Modified Mathlib/CategoryTheory/Bicategory/Modification/Oplax.lean Modified Mathlib/CategoryTheory/Bicategory/NaturalTransformation/Oplax.lean Modified Mathlib/CategoryTheory/Bicategory/NaturalTransformation/Pseudo.lean Modified Mathlib/CategoryTheory/Bicategory/Strict.lean Modified Mathlib/CategoryTheory/Category/Basic.lean + def CategoryTheory.categoryTheoryDischarger Modified Mathlib/CategoryTheory/Category/Cat.lean Modified Mathlib/CategoryTheory/Category/Cat/Adjunction.lean Modified Mathlib/CategoryTheory/Category/Cat/Limit.lean Modified Mathlib/CategoryTheory/Category/Factorisation.lean Modified Mathlib/CategoryTheory/Category/GaloisConnection.lean Modified Mathlib/CategoryTheory/Category/Init.lean Modified Mathlib/CategoryTheory/Category/Pairwise.lean Modified Mathlib/CategoryTheory/Center/Linear.lean Modified Mathlib/CategoryTheory/Closed/Cartesian.lean Modified Mathlib/CategoryTheory/Closed/FunctorCategory/Basic.lean Modified Mathlib/CategoryTheory/CodiscreteCategory.lean Modified Mathlib/CategoryTheory/CommSq.lean Modified Mathlib/CategoryTheory/Comma/Arrow.lean Modified Mathlib/CategoryTheory/Comma/Basic.lean Modified Mathlib/CategoryTheory/Comma/Over/Basic.lean +/- def CategoryTheory.Over.homMk +/- def CategoryTheory.Over.isoMk +/- theorem CategoryTheory.Over.w +/- def CategoryTheory.Under.homMk +/- theorem CategoryTheory.Under.w Modified Mathlib/CategoryTheory/Comma/Over/Pullback.lean Modified Mathlib/CategoryTheory/Comma/Presheaf/Basic.lean Modified Mathlib/CategoryTheory/Comma/StructuredArrow/Basic.lean +/- theorem CategoryTheory.CostructuredArrow.homMk'_id +/- theorem CategoryTheory.StructuredArrow.homMk'_id Modified Mathlib/CategoryTheory/Comma/StructuredArrow/Small.lean Modified Mathlib/CategoryTheory/ComposableArrows.lean Modified Mathlib/CategoryTheory/ConcreteCategory/Basic.lean Modified Mathlib/CategoryTheory/ConcreteCategory/BundledHom.lean Modified Mathlib/CategoryTheory/Conj.lean +/- theorem CategoryTheory.Iso.conjAut_apply Modified Mathlib/CategoryTheory/Core.lean Modified Mathlib/CategoryTheory/Dialectica/Monoidal.lean Modified Mathlib/CategoryTheory/DifferentialObject.lean +/- theorem CategoryTheory.DifferentialObject.ext Modified Mathlib/CategoryTheory/DinatTrans.lean Modified Mathlib/CategoryTheory/Discrete/Basic.lean Modified Mathlib/CategoryTheory/Elements.lean Modified Mathlib/CategoryTheory/Endofunctor/Algebra.lean +/- theorem CategoryTheory.Endofunctor.Algebra.ext +/- def CategoryTheory.Endofunctor.Algebra.isoMk +/- theorem CategoryTheory.Endofunctor.Coalgebra.ext +/- def CategoryTheory.Endofunctor.Coalgebra.isoMk Modified Mathlib/CategoryTheory/Endomorphism.lean Modified Mathlib/CategoryTheory/Enriched/Basic.lean Modified Mathlib/CategoryTheory/Enriched/FunctorCategory.lean Modified Mathlib/CategoryTheory/Enriched/Ordinary/Basic.lean Modified Mathlib/CategoryTheory/EpiMono.lean Modified Mathlib/CategoryTheory/EqToHom.lean Modified Mathlib/CategoryTheory/Equivalence.lean +/- theorem CategoryTheory.Equivalence.changeFunctor_refl Modified Mathlib/CategoryTheory/Equivalence/Symmetry.lean Modified Mathlib/CategoryTheory/EssentiallySmall.lean Modified Mathlib/CategoryTheory/Extensive.lean Modified Mathlib/CategoryTheory/FiberedCategory/BasedCategory.lean Modified Mathlib/CategoryTheory/FiberedCategory/Cartesian.lean Modified Mathlib/CategoryTheory/FiberedCategory/Cocartesian.lean Modified Mathlib/CategoryTheory/FintypeCat.lean Modified Mathlib/CategoryTheory/Functor/Basic.lean Modified Mathlib/CategoryTheory/Functor/Category.lean Modified Mathlib/CategoryTheory/Functor/Const.lean Modified Mathlib/CategoryTheory/Functor/Currying.lean Modified Mathlib/CategoryTheory/Functor/Derived/Adjunction.lean Modified Mathlib/CategoryTheory/Functor/EpiMono.lean Modified Mathlib/CategoryTheory/Functor/FullyFaithful.lean Modified Mathlib/CategoryTheory/Functor/FunctorHom.lean Modified Mathlib/CategoryTheory/Functor/Functorial.lean Modified Mathlib/CategoryTheory/Functor/KanExtension/Basic.lean Modified Mathlib/CategoryTheory/GradedObject.lean +/- theorem CategoryTheory.GradedObject.mapMap_comp +/- theorem CategoryTheory.GradedObject.mapMap_id Modified Mathlib/CategoryTheory/GradedObject/Braiding.lean Modified Mathlib/CategoryTheory/GradedObject/Monoidal.lean Modified Mathlib/CategoryTheory/GradedObject/Trifunctor.lean Modified Mathlib/CategoryTheory/Grothendieck.lean Modified Mathlib/CategoryTheory/Groupoid.lean Modified Mathlib/CategoryTheory/GuitartExact/Opposite.lean Modified Mathlib/CategoryTheory/HomCongr.lean Modified Mathlib/CategoryTheory/Idempotents/FunctorExtension.lean Modified Mathlib/CategoryTheory/Idempotents/HomologicalComplex.lean Modified Mathlib/CategoryTheory/Idempotents/Karoubi.lean Modified Mathlib/CategoryTheory/Idempotents/KaroubiKaroubi.lean Modified Mathlib/CategoryTheory/IsConnected.lean Modified Mathlib/CategoryTheory/Iso.lean Modified Mathlib/CategoryTheory/Join/Basic.lean Modified Mathlib/CategoryTheory/Join/Opposites.lean Modified Mathlib/CategoryTheory/LiftingProperties/Adjunction.lean Modified Mathlib/CategoryTheory/Limits/ConeCategory.lean Modified Mathlib/CategoryTheory/Limits/Cones.lean Modified Mathlib/CategoryTheory/Limits/Constructions/Over/Connected.lean Modified Mathlib/CategoryTheory/Limits/Constructions/Over/Products.lean Modified Mathlib/CategoryTheory/Limits/Constructions/ZeroObjects.lean Modified Mathlib/CategoryTheory/Limits/ExactFunctor.lean Modified Mathlib/CategoryTheory/Limits/Final.lean Modified Mathlib/CategoryTheory/Limits/Fubini.lean Modified Mathlib/CategoryTheory/Limits/HasLimits.lean Modified Mathlib/CategoryTheory/Limits/IsLimit.lean Modified Mathlib/CategoryTheory/Limits/MonoCoprod.lean Modified Mathlib/CategoryTheory/Limits/Opposites.lean Modified Mathlib/CategoryTheory/Limits/Preserves/Bifunctor.lean Modified Mathlib/CategoryTheory/Limits/Preserves/Shapes/Kernels.lean Modified Mathlib/CategoryTheory/Limits/Preserves/Shapes/Terminal.lean Modified Mathlib/CategoryTheory/Limits/Preserves/Shapes/Zero.lean Modified Mathlib/CategoryTheory/Limits/Presheaf.lean Modified Mathlib/CategoryTheory/Limits/Shapes/BinaryBiproducts.lean Modified Mathlib/CategoryTheory/Limits/Shapes/BinaryProducts.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Biproducts.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Diagonal.lean Modified Mathlib/CategoryTheory/Limits/Shapes/End.lean +/- theorem CategoryTheory.Limits.coend.map_id +/- theorem CategoryTheory.Limits.end_.map_id Modified Mathlib/CategoryTheory/Limits/Shapes/Equalizers.lean +/- def CategoryTheory.Limits.Cofork.ext +/- def CategoryTheory.Limits.Fork.ext Modified Mathlib/CategoryTheory/Limits/Shapes/Images.lean Modified Mathlib/CategoryTheory/Limits/Shapes/IsTerminal.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Kernels.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Multiequalizer.lean Modified Mathlib/CategoryTheory/Limits/Shapes/PiProd.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Preorder/TransfiniteCompositionOfShape.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Products.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Pullback/Categorical/Basic.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Pullback/Categorical/CatCospanTransform.lean +/- theorem CategoryTheory.Limits.CatCospanTransform.comp_whiskerRight +/- theorem CategoryTheory.Limits.CatCospanTransform.id_whiskerLeft +/- theorem CategoryTheory.Limits.CatCospanTransform.id_whiskerRight +/- theorem CategoryTheory.Limits.CatCospanTransform.whiskerLeft_comp +/- theorem CategoryTheory.Limits.CatCospanTransform.whiskerRight_id +/- theorem CategoryTheory.Limits.CatCospanTransform.whisker_exchange +/- theorem CategoryTheory.Limits.CatCospanTransform.whiskerleft_id Modified Mathlib/CategoryTheory/Limits/Shapes/Pullback/CommSq.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Pullback/HasPullback.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Pullback/PullbackCone.lean +/- def CategoryTheory.Limits.PullbackCone.ext +/- def CategoryTheory.Limits.PushoutCocone.ext Modified Mathlib/CategoryTheory/Limits/Shapes/Reflexive.lean Modified Mathlib/CategoryTheory/Limits/Shapes/RegularMono.lean Modified Mathlib/CategoryTheory/Limits/Shapes/SplitCoequalizer.lean Modified Mathlib/CategoryTheory/Limits/Shapes/SplitEqualizer.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Terminal.lean Modified Mathlib/CategoryTheory/Limits/Shapes/WideEqualizers.lean Modified Mathlib/CategoryTheory/Limits/Shapes/WidePullbacks.lean Modified Mathlib/CategoryTheory/Limits/Shapes/ZeroMorphisms.lean Modified Mathlib/CategoryTheory/Limits/VanKampen.lean Modified Mathlib/CategoryTheory/Limits/Yoneda.lean Modified Mathlib/CategoryTheory/Linear/Basic.lean Modified Mathlib/CategoryTheory/Linear/LinearFunctor.lean Modified Mathlib/CategoryTheory/Localization/Construction.lean Modified Mathlib/CategoryTheory/Localization/Resolution.lean Modified Mathlib/CategoryTheory/Localization/Trifunctor.lean Modified Mathlib/CategoryTheory/Monad/Adjunction.lean Modified Mathlib/CategoryTheory/Monad/Algebra.lean Modified Mathlib/CategoryTheory/Monad/Basic.lean Modified Mathlib/CategoryTheory/Monoidal/Action/Basic.lean Modified Mathlib/CategoryTheory/Monoidal/Action/LinearFunctor.lean Modified Mathlib/CategoryTheory/Monoidal/Bimod.lean Modified Mathlib/CategoryTheory/Monoidal/Bimon_.lean Modified Mathlib/CategoryTheory/Monoidal/Braided/Basic.lean Modified Mathlib/CategoryTheory/Monoidal/Cartesian/Basic.lean +/- theorem CategoryTheory.CartesianMonoidalCategory.lift_snd_fst Modified Mathlib/CategoryTheory/Monoidal/Cartesian/FunctorCategory.lean Modified Mathlib/CategoryTheory/Monoidal/Cartesian/Mon_.lean Modified Mathlib/CategoryTheory/Monoidal/Category.lean Modified Mathlib/CategoryTheory/Monoidal/Center.lean Modified Mathlib/CategoryTheory/Monoidal/CommGrp_.lean Modified Mathlib/CategoryTheory/Monoidal/CommMon_.lean Modified Mathlib/CategoryTheory/Monoidal/Comon_.lean +/- def Comon_.mkIso Modified Mathlib/CategoryTheory/Monoidal/Free/Basic.lean Modified Mathlib/CategoryTheory/Monoidal/Free/Coherence.lean Modified Mathlib/CategoryTheory/Monoidal/Functor.lean Modified Mathlib/CategoryTheory/Monoidal/Grp_.lean Modified Mathlib/CategoryTheory/Monoidal/Hopf_.lean Modified Mathlib/CategoryTheory/Monoidal/Internal/Types/Basic.lean Modified Mathlib/CategoryTheory/Monoidal/Internal/Types/CommGrp_.lean Modified Mathlib/CategoryTheory/Monoidal/Internal/Types/Grp_.lean Modified Mathlib/CategoryTheory/Monoidal/Linear.lean Modified Mathlib/CategoryTheory/Monoidal/Mod_.lean Modified Mathlib/CategoryTheory/Monoidal/Mon_.lean Modified Mathlib/CategoryTheory/Monoidal/NaturalTransformation.lean Modified Mathlib/CategoryTheory/Monoidal/Preadditive.lean Modified Mathlib/CategoryTheory/Monoidal/Rigid/Basic.lean Modified Mathlib/CategoryTheory/Monoidal/Subcategory.lean Modified Mathlib/CategoryTheory/Monoidal/Transport.lean Modified Mathlib/CategoryTheory/Monoidal/Types/Coyoneda.lean Modified Mathlib/CategoryTheory/MorphismProperty/Comma.lean Modified Mathlib/CategoryTheory/MorphismProperty/Factorization.lean Modified Mathlib/CategoryTheory/MorphismProperty/OverAdjunction.lean Modified Mathlib/CategoryTheory/NatIso.lean Modified Mathlib/CategoryTheory/NatTrans.lean Modified Mathlib/CategoryTheory/Opposites.lean Modified Mathlib/CategoryTheory/Pi/Basic.lean Modified Mathlib/CategoryTheory/Preadditive/AdditiveFunctor.lean Modified Mathlib/CategoryTheory/Preadditive/Basic.lean Modified Mathlib/CategoryTheory/Preadditive/CommGrp_.lean Modified Mathlib/CategoryTheory/Preadditive/OfBiproducts.lean Modified Mathlib/CategoryTheory/Preadditive/Opposite.lean Modified Mathlib/CategoryTheory/Preadditive/Projective/Basic.lean Modified Mathlib/CategoryTheory/Quotient.lean Modified Mathlib/CategoryTheory/Retract.lean Modified Mathlib/CategoryTheory/Shift/Basic.lean Modified Mathlib/CategoryTheory/Shift/CommShift.lean Modified Mathlib/CategoryTheory/Shift/ShiftSequence.lean Modified Mathlib/CategoryTheory/Shift/SingleFunctors.lean Modified Mathlib/CategoryTheory/SingleObj.lean Modified Mathlib/CategoryTheory/Sites/CompatiblePlus.lean Modified Mathlib/CategoryTheory/Sites/CoverLifting.lean Modified Mathlib/CategoryTheory/Sites/DenseSubsite/Basic.lean Modified Mathlib/CategoryTheory/Sites/Grothendieck.lean Modified Mathlib/CategoryTheory/Sites/Limits.lean Modified Mathlib/CategoryTheory/Sites/OneHypercover.lean Modified Mathlib/CategoryTheory/Sites/Over.lean Modified Mathlib/CategoryTheory/Sites/Sheaf.lean Modified Mathlib/CategoryTheory/Sites/SheafOfTypes.lean Modified Mathlib/CategoryTheory/Sites/Sheafification.lean Modified Mathlib/CategoryTheory/Sites/Whiskering.lean Modified Mathlib/CategoryTheory/Sites/ZeroHypercover.lean Modified Mathlib/CategoryTheory/SmallObject/TransfiniteCompositionLifting.lean Modified Mathlib/CategoryTheory/Square.lean Modified Mathlib/CategoryTheory/Subobject/Lattice.lean Modified Mathlib/CategoryTheory/Subobject/Limits.lean +/- theorem CategoryTheory.Limits.kernelSubobjectMap_id Modified Mathlib/CategoryTheory/Subobject/MonoOver.lean Modified Mathlib/CategoryTheory/Subterminal.lean Modified Mathlib/CategoryTheory/Sums/Basic.lean Modified Mathlib/CategoryTheory/Sums/Products.lean Modified Mathlib/CategoryTheory/Triangulated/Basic.lean Modified Mathlib/CategoryTheory/Triangulated/Functor.lean Modified Mathlib/CategoryTheory/Triangulated/Opposite/Triangle.lean Modified Mathlib/CategoryTheory/Triangulated/Pretriangulated.lean Modified Mathlib/CategoryTheory/Triangulated/TriangleShift.lean Modified Mathlib/CategoryTheory/Types.lean Modified Mathlib/CategoryTheory/Whiskering.lean Modified Mathlib/CategoryTheory/WithTerminal/Basic.lean Modified Mathlib/CategoryTheory/WithTerminal/Cone.lean Modified Mathlib/CategoryTheory/Yoneda.lean Modified Mathlib/Combinatorics/Quiver/ReflQuiver.lean Modified Mathlib/Geometry/Manifold/Sheaf/Smooth.lean Modified Mathlib/Geometry/RingedSpace/LocallyRingedSpace.lean Modified Mathlib/RepresentationTheory/Rep.lean Modified Mathlib/Topology/Category/Profinite/AsLimit.lean Modified Mathlib/Topology/Category/TopCat/Limits/Products.lean Modified Mathlib/Topology/Category/TopCat/Limits/Pullbacks.lean Modified Mathlib/Topology/Sheaves/CommRingCat.lean Modified Mathlib/Topology/Sheaves/Presheaf.lean Modified Mathlib/Topology/Sheaves/Sheaf.lean Modified Mathlib/Topology/Sheaves/SheafCondition/PairwiseIntersections.lean Modified Mathlib/Topology/Sheaves/Skyscraper.lean Modified MathlibTest/aesop_cat.lean 2025-08-05 22:50:27 9b85b15 chore: un-indent some doc-strings to match the style guide (#28005) The style guide asks for subsequent lines in doc-strings to not be indented ([zulip discussion](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Style.20.3Abicycle.3A.20.3A.20indenting.20second.20lines.20in.20doc-strings/with/513186492)). This fixes some violations. Found by the linter in #27996. ESTIMATED CHANGES Modified Mathlib/Analysis/Asymptotics/Lemmas.lean Modified Mathlib/Analysis/BoxIntegral/Partition/Tagged.lean Modified Mathlib/Analysis/Normed/Group/Hom.lean Modified Mathlib/Analysis/Normed/Module/Span.lean Modified Mathlib/Analysis/Normed/Operator/ContinuousLinearMap.lean Modified Mathlib/Analysis/Normed/Order/Basic.lean Modified Mathlib/Analysis/Normed/Ring/InfiniteSum.lean Modified Mathlib/CategoryTheory/Abelian/Pseudoelements.lean Modified Mathlib/CategoryTheory/Action.lean Modified Mathlib/CategoryTheory/Comma/Presheaf/Basic.lean Modified Mathlib/CategoryTheory/Comma/Presheaf/Colimit.lean Modified Mathlib/CategoryTheory/Enriched/Ordinary/Basic.lean Modified Mathlib/CategoryTheory/Filtered/Final.lean Modified Mathlib/CategoryTheory/Filtered/Small.lean Modified Mathlib/CategoryTheory/Limits/Indization/IndObject.lean Modified Mathlib/CategoryTheory/Monad/Kleisli.lean Modified Mathlib/CategoryTheory/Monoidal/Free/Coherence.lean Modified Mathlib/CategoryTheory/Preadditive/OfBiproducts.lean Modified Mathlib/CategoryTheory/Sites/Subcanonical.lean Modified Mathlib/CategoryTheory/Topos/Classifier.lean Modified Mathlib/Combinatorics/Derangements/Basic.lean Modified Mathlib/Combinatorics/Quiver/ConnectedComponent.lean Modified Mathlib/Combinatorics/Quiver/Subquiver.lean Modified Mathlib/Data/List/Destutter.lean Modified Mathlib/Data/Matrix/Hadamard.lean Modified Mathlib/Data/Matroid/Basic.lean Modified Mathlib/Data/Multiset/Functor.lean Modified Mathlib/Data/Nat/Bitwise.lean Modified Mathlib/Data/Num/Bitwise.lean Modified Mathlib/Data/Set/SMulAntidiagonal.lean Modified Mathlib/Data/Setoid/Partition.lean Modified Mathlib/Data/Vector/Snoc.lean Modified Mathlib/Dynamics/Flow.lean Modified Mathlib/Geometry/Manifold/ChartedSpace.lean Modified Mathlib/Geometry/RingedSpace/PresheafedSpace.lean Modified Mathlib/LinearAlgebra/CrossProduct.lean Modified Mathlib/LinearAlgebra/RootSystem/Defs.lean Modified Mathlib/NumberTheory/Padics/PadicVal/Basic.lean Modified Mathlib/RingTheory/AdjoinRoot.lean Modified Mathlib/RingTheory/Localization/Away/AdjoinRoot.lean Modified Mathlib/Topology/Algebra/InfiniteSum/Ring.lean Modified Mathlib/Topology/Algebra/Module/FiniteDimension.lean Modified Mathlib/Topology/Algebra/Nonarchimedean/Bases.lean Modified Mathlib/Topology/Homotopy/Path.lean Modified Mathlib/Topology/LocallyConstant/Basic.lean Modified Mathlib/Topology/MetricSpace/Bounded.lean Modified Mathlib/Topology/Sheaves/LocalPredicate.lean Modified Mathlib/Topology/Sheaves/SheafCondition/OpensLeCover.lean Modified Mathlib/Topology/Sheaves/SheafCondition/Sites.lean 2025-08-05 22:50:25 2530d06 feat(Analysis/NormedSpace/OperatorNorm): characterize the operator norm via `sphere 0 1` (#27912) Namely that `sSup ((fun x => ‖f x‖₊) '' Metric.sphere 0 1) = ‖f‖₊`, which we previously had for `ball` and `closedBall`. From lean-matrix-cookbook ESTIMATED CHANGES Modified Mathlib/Analysis/NormedSpace/OperatorNorm/NNNorm.lean + theorem ContinuousLinearMap.exists_nnnorm_eq_one_lt_apply_of_lt_opNNNorm + theorem ContinuousLinearMap.opNNNorm_subsingleton + theorem ContinuousLinearMap.sSup_sphere_eq_nnnorm 2025-08-05 22:41:19 f955171 ci: rebuild until `lake build --no-build` succeeds (#27691) This should hopefully help with the CI failing in the cache verification step in the Post-Build job, as recently observed on various PRs in: [#mathlib4 > Failing CI @ 💬](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Failing.20CI/near/530878203). Also adds `-v` to the `lake build --no-build` steps as well as `-wfail` to the `Archive` and `Counterexamples` build steps (cf. #19633 for the latter). The log output will be long, so we use [GitHub's log grouping feature](https://docs.github.com/en/actions/reference/workflows-and-actions/workflow-commands#grouping-log-lines) to make the logs easier to navigate. ESTIMATED CHANGES Modified .github/build.in.yml Modified .github/workflows/bors.yml Modified .github/workflows/build.yml Modified .github/workflows/build_fork.yml Modified scripts/README.md Modified scripts/docker_build.sh Modified scripts/docker_push.sh Added scripts/lake-build-with-retry.sh 2025-08-05 21:29:25 0657e26 chore(CategoryTheory/Limit/Preserves/Opposites): un-indent some doc-strings to match the style guide (#28007) The style guide asks for subsequent lines in doc-strings to not be indented ([zulip discussion](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Style.20.3Abicycle.3A.20.3A.20indenting.20second.20lines.20in.20doc-strings/with/513186492)). This fixes some violations. Found by the linter in #27996. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Limits/Preserves/Opposites.lean 2025-08-05 21:29:23 aea309f chore: un-indent some doc-strings to match the style guide (#28006) The style guide asks for subsequent lines in doc-strings to not be indented ([zulip discussion](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Style.20.3Abicycle.3A.20.3A.20indenting.20second.20lines.20in.20doc-strings/with/513186492)). This fixes some violations. Found by the linter in #27996. ESTIMATED CHANGES Modified Mathlib/Algebra/ContinuedFractions/Computation/Basic.lean Modified Mathlib/AlgebraicGeometry/GammaSpecAdjunction.lean Modified Mathlib/AlgebraicGeometry/Morphisms/Basic.lean Modified Mathlib/Analysis/BoxIntegral/Integrability.lean Modified Mathlib/Analysis/Calculus/Conformal/InnerProduct.lean Modified Mathlib/Analysis/Calculus/ContDiff/RCLike.lean Modified Mathlib/Analysis/Complex/Conformal.lean Modified Mathlib/Analysis/Complex/Polynomial/Basic.lean Modified Mathlib/Analysis/Convex/KreinMilman.lean Modified Mathlib/Analysis/Fourier/FourierTransformDeriv.lean Modified Mathlib/Analysis/Normed/Algebra/Spectrum.lean Modified Mathlib/Analysis/Normed/Module/Dual.lean Modified Mathlib/Analysis/Normed/Module/FiniteDimension.lean Modified Mathlib/Analysis/Normed/Unbundled/RingSeminorm.lean Modified Mathlib/Analysis/NormedSpace/Alternating/Basic.lean Modified Mathlib/Analysis/NormedSpace/ConformalLinearMap.lean Modified Mathlib/Analysis/NormedSpace/HahnBanach/Extension.lean Modified Mathlib/Analysis/NormedSpace/Multilinear/Basic.lean Modified Mathlib/Analysis/NormedSpace/OperatorNorm/Basic.lean Modified Mathlib/Analysis/NormedSpace/OperatorNorm/NormedSpace.lean Modified Mathlib/CategoryTheory/Category/RelCat.lean Modified Mathlib/CategoryTheory/Idempotents/Basic.lean Modified Mathlib/CategoryTheory/Limits/Indization/FilteredColimits.lean Modified Mathlib/CategoryTheory/Limits/IsConnected.lean Modified Mathlib/CategoryTheory/Monad/Adjunction.lean Modified Mathlib/CategoryTheory/Monoidal/Free/Basic.lean Modified Mathlib/CategoryTheory/Simple.lean Modified Mathlib/CategoryTheory/Sites/Coverage.lean Modified Mathlib/CategoryTheory/Sites/Spaces.lean Modified Mathlib/CategoryTheory/Subobject/Presheaf.lean Modified Mathlib/CategoryTheory/Triangulated/Pretriangulated.lean Modified Mathlib/Combinatorics/Quiver/Arborescence.lean Modified Mathlib/Combinatorics/SimpleGraph/AdjMatrix.lean Modified Mathlib/Combinatorics/Young/YoungDiagram.lean Modified Mathlib/Condensed/Equivalence.lean Modified Mathlib/Data/FinEnum.lean Modified Mathlib/Data/Num/Bitwise.lean Modified Mathlib/Dynamics/OmegaLimit.lean Modified Mathlib/Geometry/Euclidean/Angle/Unoriented/Conformal.lean Modified Mathlib/Geometry/RingedSpace/OpenImmersion.lean Modified Mathlib/GroupTheory/FreeGroup/NielsenSchreier.lean Modified Mathlib/GroupTheory/GroupExtension/Basic.lean Modified Mathlib/GroupTheory/GroupExtension/Defs.lean Modified Mathlib/LinearAlgebra/Eigenspace/Basic.lean Modified Mathlib/LinearAlgebra/Eigenspace/Matrix.lean Modified Mathlib/LinearAlgebra/Matrix/Circulant.lean Modified Mathlib/LinearAlgebra/Matrix/Hermitian.lean Modified Mathlib/LinearAlgebra/Matrix/IsDiag.lean Modified Mathlib/MeasureTheory/Function/AEEqFun.lean Modified Mathlib/MeasureTheory/Function/SimpleFunc.lean Modified Mathlib/MeasureTheory/Function/SimpleFuncDenseLp.lean Modified Mathlib/MeasureTheory/Integral/Bochner/L1.lean Modified Mathlib/MeasureTheory/Integral/IntegralEqImproper.lean Modified Mathlib/MeasureTheory/Measure/Lebesgue/Basic.lean Modified Mathlib/MeasureTheory/Measure/Lebesgue/Integral.lean Modified Mathlib/ModelTheory/Algebra/Ring/Basic.lean Modified Mathlib/NumberTheory/Harmonic/Int.lean Modified Mathlib/NumberTheory/KummerDedekind.lean Modified Mathlib/NumberTheory/SelbergSieve.lean Modified Mathlib/Order/CountableDenseLinearOrder.lean Modified Mathlib/Order/Ideal.lean Modified Mathlib/Order/SuccPred/Tree.lean Modified Mathlib/RingTheory/DedekindDomain/Ideal/Lemmas.lean Modified Mathlib/RingTheory/FreeCommRing.lean Modified Mathlib/RingTheory/LocalRing/NonLocalRing.lean Modified Mathlib/RingTheory/Polynomial/GaussLemma.lean Modified Mathlib/Tactic/CC/Addition.lean Modified Mathlib/Tactic/CC/Datatypes.lean Modified Mathlib/Tactic/CC/MkProof.lean Modified Mathlib/Tactic/ReduceModChar.lean Modified Mathlib/Topology/Algebra/Valued/ValuedField.lean Modified Mathlib/Topology/Category/Profinite/Nobeling/Basic.lean Modified Mathlib/Topology/Category/Profinite/Nobeling/Successor.lean Modified Mathlib/Topology/Category/Stonean/Basic.lean Modified Mathlib/Topology/Category/TopCat/Opens.lean Modified Mathlib/Topology/Homotopy/Product.lean Modified Mathlib/Topology/Instances/CantorSet.lean Modified Mathlib/Topology/MetricSpace/GromovHausdorff.lean Modified Mathlib/Topology/Sheaves/SheafCondition/Sites.lean 2025-08-05 21:29:20 acbf17e chore: un-indent some doc-strings to match the style guide (#28004) The style guide asks for subsequent lines in doc-strings to not be indented ([zulip discussion](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Style.20.3Abicycle.3A.20.3A.20indenting.20second.20lines.20in.20doc-strings/with/513186492)). This fixes some violations. Found by the linter in #27996. ESTIMATED CHANGES Modified Mathlib/Algebra/Category/Grp/Colimits.lean Modified Mathlib/Algebra/Category/ModuleCat/ChangeOfRings.lean Modified Mathlib/Algebra/Category/ModuleCat/Free.lean Modified Mathlib/Algebra/Category/ModuleCat/Subobject.lean Modified Mathlib/Algebra/Homology/ComplexShape.lean Modified Mathlib/CategoryTheory/Abelian/NonPreadditive.lean Modified Mathlib/CategoryTheory/Abelian/Subobject.lean Modified Mathlib/CategoryTheory/Elements.lean Modified Mathlib/CategoryTheory/Filtered/Basic.lean Modified Mathlib/CategoryTheory/Filtered/Small.lean Modified Mathlib/CategoryTheory/Limits/Constructions/Filtered.lean Modified Mathlib/CategoryTheory/Limits/Constructions/Pullbacks.lean Modified Mathlib/CategoryTheory/Limits/Creates.lean Modified Mathlib/CategoryTheory/Limits/Final.lean Modified Mathlib/CategoryTheory/Limits/Preserves/FunctorCategory.lean Modified Mathlib/CategoryTheory/Limits/Preserves/Limits.lean Modified Mathlib/CategoryTheory/Limits/Presheaf.lean Modified Mathlib/CategoryTheory/Limits/Shapes/NormalMono/Basic.lean Modified Mathlib/CategoryTheory/Limits/Shapes/RegularMono.lean Modified Mathlib/CategoryTheory/Monad/Algebra.lean Modified Mathlib/CategoryTheory/Preadditive/Projective/Basic.lean Modified Mathlib/CategoryTheory/SingleObj.lean Modified Mathlib/CategoryTheory/Sites/Grothendieck.lean Modified Mathlib/CategoryTheory/Sites/IsSheafFor.lean Modified Mathlib/CategoryTheory/Sites/Sieves.lean Modified Mathlib/CategoryTheory/Subobject/Basic.lean Modified Mathlib/CategoryTheory/Subobject/Limits.lean Modified Mathlib/CategoryTheory/Subobject/MonoOver.lean Modified Mathlib/CategoryTheory/Subpresheaf/Basic.lean Modified Mathlib/GroupTheory/SpecificGroups/Cyclic.lean Modified Mathlib/LinearAlgebra/Matrix/Symmetric.lean Modified Mathlib/Order/Interval/Set/OrdConnectedComponent.lean Modified Mathlib/Order/RelSeries.lean Modified Mathlib/RingTheory/LocalRing/Defs.lean Modified Mathlib/Topology/Algebra/Field.lean Modified Mathlib/Topology/CompactOpen.lean Modified Mathlib/Topology/Compactness/SigmaCompact.lean Modified Mathlib/Topology/Defs/Filter.lean 2025-08-05 21:29:19 7281be5 chore(GroupTheory): un-indent some doc-strings to match the style guide (#28003) The style guide asks for subsequent lines in doc-strings to not be indented ([zulip discussion](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Style.20.3Abicycle.3A.20.3A.20indenting.20second.20lines.20in.20doc-strings/with/513186492)). This fixes some violations. Found by the linter in #27996. ESTIMATED CHANGES Modified Mathlib/GroupTheory/Congruence/Basic.lean Modified Mathlib/GroupTheory/Congruence/Defs.lean Modified Mathlib/GroupTheory/Congruence/Hom.lean 2025-08-05 21:29:17 6afdda8 chore(Data/Setoid/Basic): un-indent some doc-strings to match the style guide (#28002) The style guide asks for subsequent lines in doc-strings to not be indented ([zulip discussion](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Style.20.3Abicycle.3A.20.3A.20indenting.20second.20lines.20in.20doc-strings/with/513186492)). This fixes some violations. Found by the linter in #27996. ESTIMATED CHANGES Modified Mathlib/Data/Setoid/Basic.lean 2025-08-05 16:35:06 e074407 feat: basic linear algebra lemmas about matrices (#27605) These came up in the proof that the Geck Construction yields semisimple Lie algebras. I am splitting them into their own PR to simplify review. ESTIMATED CHANGES Modified Mathlib/Analysis/Normed/Module/FiniteDimension.lean Modified Mathlib/Data/Matrix/Block.lean + theorem Matrix.fromBlocks_diagonal_pow Modified Mathlib/Data/Matrix/Diagonal.lean + theorem Matrix.diagonal_one' Modified Mathlib/Data/Matrix/Mul.lean + theorem Matrix.commute_diagonal Modified Mathlib/LinearAlgebra/Basis/Basic.lean + theorem Submodule.eq_top_iff_forall_basis_mem Modified Mathlib/LinearAlgebra/Basis/Defs.lean Modified Mathlib/LinearAlgebra/Eigenspace/Basic.lean + theorem Module.End.eigenspace_le_maxGenEigenspace Modified Mathlib/LinearAlgebra/Eigenspace/Matrix.lean + theorem Matrix.iSup_eigenspace_toLin'_diagonal_eq_top + theorem Matrix.iSup_eigenspace_toLin_diagonal_eq_top + theorem Matrix.maxGenEigenspace_toLin'_diagonal_eq_eigenspace + theorem Matrix.maxGenEigenspace_toLin_diagonal_eq_eigenspace +/- theorem spectrum_diagonal Modified Mathlib/LinearAlgebra/Matrix/BilinearForm.lean Modified Mathlib/LinearAlgebra/Matrix/ToLin.lean + theorem Matrix.toLin'_pow + theorem Matrix.toLin_apply_eq_zero_iff + theorem Matrix.toLin_pow Modified Mathlib/LinearAlgebra/Pi.lean + theorem Pi.mem_span_range_single_inl_iff 2025-08-05 16:15:08 be91470 doc(Analysis/Calculus/MeanValue): correct docstring for image_le_of_deriv_right_le_deriv_boundary (#27985) The old docstring incorrectly stated that `B` has derivative `B'` everywhere on `ℝ`, but the actual theorem requires `B` to have right derivative `B'` at every point of `[a, b)`. This commit corrects the docstring to match the theorem's actual assumptions. ESTIMATED CHANGES Modified Mathlib/Analysis/Calculus/MeanValue.lean 2025-08-05 14:12:07 6ae95cf chore(Algebra/Group/WithOne): injectivity of `coe` and `map` (#27665) ESTIMATED CHANGES Modified Mathlib/Algebra/Group/WithOne/Basic.lean + theorem WithOne.map_inj + theorem WithOne.map_injective' + theorem WithOne.map_injective Modified Mathlib/Algebra/Group/WithOne/Defs.lean + theorem WithOne.coe_injective 2025-08-05 14:12:05 757b1d8 feat(LinearAlgebra/TensorProduct/Associator): `lTensor rTensor ∘ assoc = assoc ∘ rTensor lTensor` (#27569) This adds `LinearMap.lTensor_rTensor_comp_assoc` and `LinearMap.rTensor_lTensor_comp_assoc_symm`. ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/TensorProduct/Associator.lean + theorem LinearMap.lTensor_rTensor_comp_assoc + theorem LinearMap.rTensor_lTensor_comp_assoc_symm 2025-08-05 13:52:11 51cdf8c feat: `ProbabilityTheory.cdf_eq_real` for measure on `unitInterval` (#27515) Given a probability measure `μ` on `I`, the CDF of the pushforward of `μ` along `Subtype.val` is equal to the measure of the closed interval. ESTIMATED CHANGES Modified Mathlib/Probability/CDF.lean + theorem ProbabilityTheory.unitInterval.cdf_eq_real Modified Mathlib/Topology/UnitInterval.lean + theorem unitInterval.subtype_Ici_eq_Icc + theorem unitInterval.subtype_Iic_eq_Icc + theorem unitInterval.subtype_Iio_eq_Ico + theorem unitInterval.subtype_Ioi_eq_Ioc 2025-08-05 13:09:45 e62a361 feat: fst and snd preserve the product measure (#27949) ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Measure/Prod.lean + theorem MeasureTheory.measurePreserving_fst + theorem MeasureTheory.measurePreserving_snd 2025-08-05 11:33:25 da7f723 feat(RingTheory/SimpleRing/Principal): a commutative simple ring is a PID (#27113) via `IsField` and new `IsField.isDomain` ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Field/IsField.lean + theorem IsField.isDomain Modified Mathlib/RingTheory/PrincipalIdealDomain.lean Added Mathlib/RingTheory/SimpleRing/Principal.lean 2025-08-05 10:41:06 8a90bb8 feat: add mulEquivHaarChar (#25829) API for the positive real factor by which an continuous multiplicative equivalence scales a regular Haar measure on a locally compact topological group. From FLT. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/MeasureTheory/Group/Measure.lean + theorem MeasureTheory.Measure.IsHaarMeasure.nnreal_smul Added Mathlib/MeasureTheory/Measure/Haar/MulEquivHaarChar.lean + theorem MeasureTheory.integral_comap_eq_mulEquivHaarChar_smul + theorem MeasureTheory.mulEquivHaarChar_eq + theorem MeasureTheory.mulEquivHaarChar_pos + theorem MeasureTheory.mulEquivHaarChar_refl + theorem MeasureTheory.mulEquivHaarChar_smul_eq_comap + theorem MeasureTheory.mulEquivHaarChar_smul_integral_map + theorem MeasureTheory.mulEquivHaarChar_smul_map + theorem MeasureTheory.mulEquivHaarChar_smul_preimage + theorem MeasureTheory.mulEquivHaarChar_trans Modified Mathlib/MeasureTheory/Measure/Haar/Unique.lean + theorem MeasureTheory.Measure.haarScalarFactor_smul_smul + theorem MeasureTheory.Measure.mul_haarScalarFactor_smul 2025-08-05 08:44:41 25b3be1 feat(Algebra): submonoids and submodules inherit cancellations (#27955) `Submonoid`, `AddSubmonoid` and `Submodule` inherit (left/right) cancellation properties from the base type. ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Submonoid/Defs.lean Modified Mathlib/Algebra/Module/Submodule/Defs.lean 2025-08-05 07:35:56 e2e37a5 chore: further >6month old deprecations (#27799) ESTIMATED CHANGES Modified Mathlib/Algebra/AddTorsor/Basic.lean Modified Mathlib/Algebra/Algebra/Basic.lean Modified Mathlib/Algebra/Algebra/Bilinear.lean - theorem LinearMap.mulLeft_injective - theorem LinearMap.mulRight_injective - theorem LinearMap.mul_injective Modified Mathlib/Algebra/Algebra/NonUnitalSubalgebra.lean Modified Mathlib/Algebra/Algebra/Spectrum/Basic.lean Modified Mathlib/Algebra/Algebra/Subalgebra/Lattice.lean Modified Mathlib/Algebra/Algebra/Subalgebra/Pointwise.lean Modified Mathlib/Algebra/AlgebraicCard.lean Modified Mathlib/Algebra/BigOperators/Group/List/Lemmas.lean Modified Mathlib/Algebra/Category/Grp/Basic.lean - theorem CommGrp.comp_def - theorem Grp.comp_def Modified Mathlib/Algebra/Category/ModuleCat/Basic.lean Modified Mathlib/Algebra/Category/Semigrp/Basic.lean - theorem Semigrp.comp_def Modified Mathlib/Algebra/CharP/Defs.lean Modified Mathlib/Algebra/DirectSum/Module.lean Modified Mathlib/Algebra/GradedMonoid.lean Modified Mathlib/Algebra/GradedMulAction.lean Modified Mathlib/Algebra/Group/Action/Pointwise/Set/Basic.lean Modified Mathlib/Algebra/Group/Equiv/Basic.lean Modified Mathlib/Algebra/Group/Even.lean Modified Mathlib/Algebra/Group/Hom/Defs.lean Modified Mathlib/Algebra/Group/Pointwise/Finset/Basic.lean Modified Mathlib/Algebra/Group/Pointwise/Finset/Scalar.lean Modified Mathlib/Algebra/Group/Pointwise/Set/Basic.lean Modified Mathlib/Algebra/Group/Subgroup/Defs.lean Modified Mathlib/Algebra/Group/Subgroup/Ker.lean Modified Mathlib/Algebra/Group/Submonoid/Operations.lean Modified Mathlib/Algebra/Group/Subsemigroup/Operations.lean Modified Mathlib/Algebra/GroupWithZero/Action/Pointwise/Set.lean Modified Mathlib/Algebra/GroupWithZero/NeZero.lean Modified Mathlib/Algebra/GroupWithZero/Units/Basic.lean Modified Mathlib/Algebra/Lie/Abelian.lean Modified Mathlib/Algebra/Lie/Basic.lean Modified Mathlib/Algebra/Lie/Ideal.lean Modified Mathlib/Algebra/Lie/InvariantForm.lean Modified Mathlib/Algebra/Lie/Nilpotent.lean - theorem LieModule.exists_lowerCentralSeries_eq_bot_of_isNilpotent Modified Mathlib/Algebra/Lie/Subalgebra.lean Modified Mathlib/Algebra/Lie/Submodule.lean Modified Mathlib/Algebra/Lie/TensorProduct.lean Modified Mathlib/Algebra/Lie/Weights/Basic.lean Modified Mathlib/Algebra/Module/FinitePresentation.lean Modified Mathlib/Algebra/Module/LinearMap/Defs.lean - def DistribMulActionHom.toLinearMap - def DistribMulActionHom.toSemilinearMap Modified Mathlib/Algebra/Module/LocalizedModule/Basic.lean Modified Mathlib/Algebra/Module/Submodule/Defs.lean Modified Mathlib/Algebra/Module/Torsion.lean Modified Mathlib/Algebra/MvPolynomial/Cardinal.lean Modified Mathlib/Algebra/MvPolynomial/CommRing.lean Modified Mathlib/Algebra/MvPolynomial/Degrees.lean Modified Mathlib/Algebra/MvPolynomial/Equiv.lean Modified Mathlib/Algebra/Order/Antidiag/Nat.lean Modified Mathlib/Algebra/Order/Archimedean/Basic.lean Modified Mathlib/Algebra/Order/Field/Basic.lean - theorem div_le_div - theorem div_le_div_iff - theorem div_le_div_left - theorem div_le_div_right - theorem div_lt_div' - theorem div_lt_div - theorem div_lt_div_iff - theorem div_lt_div_left - theorem div_lt_div_right Modified Mathlib/Algebra/Order/Group/Basic.lean Modified Mathlib/Algebra/Order/Group/Pointwise/Bounds.lean Modified Mathlib/Algebra/Order/Group/Pointwise/Interval.lean - theorem Set.preimage_neg_uIcc Modified Mathlib/Algebra/Order/GroupWithZero/Canonical.lean - def OrderIso.mulLeft₀' - theorem OrderIso.mulLeft₀'_symm - def OrderIso.mulRight₀' - theorem OrderIso.mulRight₀'_symm - theorem div_le_div_left₀ - theorem div_le_div_right₀ - theorem mul_inv_le_of_le_mul - theorem mul_lt_mul_of_lt_of_le₀ - theorem mul_lt_mul₀ - theorem pow_lt_pow_succ Modified Mathlib/Algebra/Order/Monoid/ToMulBot.lean Modified Mathlib/Algebra/Order/Monoid/Unbundled/WithTop.lean - theorem WithTop.zero_lt_coe Modified Mathlib/Algebra/Order/Ring/Basic.lean - theorem le_of_pow_le_pow_left - theorem lt_of_mul_self_lt_mul_self - theorem lt_of_pow_lt_pow_left - theorem lt_self_pow - theorem one_le_sq_iff - theorem one_lt_sq_iff - theorem pow_le_pow_iff_left - theorem pow_le_pow_iff_right - theorem pow_le_pow_left - theorem pow_left_strictMonoOn - theorem pow_lt_pow_iff_left - theorem pow_lt_pow_iff_right - theorem pow_lt_pow_iff_right_of_lt_one - theorem pow_lt_pow_left - theorem pow_lt_pow_right - theorem pow_lt_pow_right_of_lt_one - theorem pow_lt_self_of_lt_one - theorem pow_right_inj - theorem pow_right_injective - theorem pow_right_strictAnti - theorem pow_right_strictMono - theorem sq_eq_sq - theorem sq_le_one_iff - theorem sq_lt_one_iff Modified Mathlib/Algebra/Pointwise/Stabilizer.lean Modified Mathlib/Algebra/Polynomial/Cardinal.lean Modified Mathlib/Algebra/Polynomial/Degree/Lemmas.lean Modified Mathlib/Algebra/Polynomial/Div.lean Modified Mathlib/Algebra/Ring/Equiv.lean Modified Mathlib/Algebra/Ring/Subring/Basic.lean Modified Mathlib/Algebra/Ring/SumsOfSquares.lean Modified Mathlib/Algebra/Squarefree/Basic.lean Modified Mathlib/Algebra/Star/Basic.lean Modified Mathlib/Algebra/Star/NonUnitalSubalgebra.lean Modified Mathlib/Algebra/Vertex/HVertexOperator.lean Modified Mathlib/AlgebraicGeometry/AffineScheme.lean Modified Mathlib/AlgebraicGeometry/Cover/Open.lean Modified Mathlib/AlgebraicGeometry/EllipticCurve/Jacobian/Basic.lean Modified Mathlib/AlgebraicGeometry/GammaSpecAdjunction.lean Modified Mathlib/AlgebraicGeometry/Morphisms/RingHomProperties.lean Modified Mathlib/AlgebraicGeometry/Scheme.lean Modified Mathlib/AlgebraicTopology/SimplicialSet/Boundary.lean Modified Mathlib/AlgebraicTopology/SimplicialSet/Horn.lean Modified Mathlib/AlgebraicTopology/SimplicialSet/StdSimplex.lean Modified Mathlib/Analysis/Asymptotics/Theta.lean Modified Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Basic.lean Modified Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/NonUnital.lean Modified Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Unital.lean Modified Mathlib/Analysis/Calculus/ContDiff/Basic.lean Modified Mathlib/Analysis/Calculus/ContDiff/Defs.lean Modified Mathlib/Analysis/Calculus/ContDiff/FTaylorSeries.lean Modified Mathlib/Analysis/Calculus/IteratedDeriv/Lemmas.lean Modified Mathlib/Analysis/Calculus/Rademacher.lean Modified Mathlib/Analysis/Complex/Basic.lean Modified Mathlib/Analysis/Complex/Convex.lean Modified Mathlib/Analysis/Complex/UpperHalfPlane/MoebiusAction.lean Modified Mathlib/Analysis/Convex/Basic.lean Modified Mathlib/Analysis/Convex/Deriv.lean Modified Mathlib/Analysis/Convex/Exposed.lean Modified Mathlib/Analysis/Convex/StrictConvexSpace.lean Modified Mathlib/Analysis/LocallyConvex/WeakOperatorTopology.lean Modified Mathlib/Analysis/LocallyConvex/WithSeminorms.lean Modified Mathlib/Analysis/Normed/Field/Basic.lean Modified Mathlib/Analysis/Normed/Field/Lemmas.lean Modified Mathlib/Analysis/Normed/Field/WithAbs.lean Modified Mathlib/Analysis/Normed/Group/Basic.lean Modified Mathlib/Analysis/Normed/Group/Constructions.lean Modified Mathlib/Analysis/Normed/Group/Continuity.lean Modified Mathlib/Analysis/Normed/Module/WeakDual.lean Modified Mathlib/Analysis/Normed/Ring/WithAbs.lean - theorem WithAbs.equiv_add - theorem WithAbs.equiv_mul - theorem WithAbs.equiv_neg - theorem WithAbs.equiv_sub - theorem WithAbs.equiv_symm_add - theorem WithAbs.equiv_symm_mul - theorem WithAbs.equiv_symm_neg - theorem WithAbs.equiv_symm_sub - theorem WithAbs.equiv_symm_zero - theorem WithAbs.equiv_zero - def WithAbs.ringEquiv Modified Mathlib/Analysis/Normed/Unbundled/RingSeminorm.lean - theorem MulRingNorm.apply_natAbs_eq - def MulRingNorm.equiv - theorem MulRingNorm.equiv_refl - theorem MulRingNorm.equiv_symm - theorem MulRingNorm.equiv_trans - theorem MulRingNorm_nat_le_nat - theorem mulRingNorm_sum_le_sum_mulRingNorm Modified Mathlib/Analysis/NormedSpace/HahnBanach/Separation.lean Modified Mathlib/Analysis/NormedSpace/Multilinear/Basic.lean - theorem ContinuousMultilinearMap.opNorm_neg Modified Mathlib/Analysis/NormedSpace/OperatorNorm/NNNorm.lean Modified Mathlib/Analysis/NormedSpace/Pointwise.lean Modified Mathlib/Analysis/NormedSpace/Real.lean Modified Mathlib/Analysis/SpecialFunctions/ContinuousFunctionalCalculus/PosPart/Basic.lean - theorem CFC.eq_negPart_iff - theorem CFC.eq_posPart_iff Modified Mathlib/Analysis/SpecialFunctions/Exp.lean Modified Mathlib/Analysis/SpecialFunctions/Integrals/Basic.lean Modified Mathlib/Analysis/SpecialFunctions/Log/Basic.lean Modified Mathlib/Analysis/SpecialFunctions/Pow/Deriv.lean Modified Mathlib/CategoryTheory/Adjunction/Limits.lean - theorem CategoryTheory.Adjunction.isEquivalenceReflectsColimits - theorem CategoryTheory.Adjunction.isEquivalenceReflectsLimits - theorem CategoryTheory.Adjunction.leftAdjointPreservesColimits - theorem CategoryTheory.Adjunction.rightAdjointPreservesLimits Modified Mathlib/CategoryTheory/Adjunction/Opposites.lean Modified Mathlib/CategoryTheory/Limits/Creates.lean - theorem CategoryTheory.preservesColimitOfCreatesColimitAndHasColimit - theorem CategoryTheory.preservesColimitOfShapeOfCreatesColimitsOfShapeAndHasColimitsOfShape - theorem CategoryTheory.preservesColimitsOfCreatesColimitsAndHasColimits - theorem CategoryTheory.preservesLimitOfCreatesLimitAndHasLimit - theorem CategoryTheory.preservesLimitOfShapeOfCreatesLimitsOfShapeAndHasLimitsOfShape - theorem CategoryTheory.preservesLimitsOfCreatesLimitsAndHasLimits Modified Mathlib/CategoryTheory/Limits/FunctorCategory/Basic.lean - theorem CategoryTheory.Limits.preservesColimitOfEvaluation - theorem CategoryTheory.Limits.preservesLimitOfEvaluation - theorem CategoryTheory.Limits.preservesLimitsOfEvaluation - theorem CategoryTheory.Limits.preservesLimitsOfShapeOfEvaluation Modified Mathlib/CategoryTheory/Limits/Opposites.lean Modified Mathlib/CategoryTheory/Limits/Preserves/Basic.lean - theorem CategoryTheory.Limits.PreservesColimitsOfSizeShrink - theorem CategoryTheory.Limits.PreservesLimitsOfSizeShrink - theorem CategoryTheory.Limits.compPreservesColimit - theorem CategoryTheory.Limits.compPreservesColimits - theorem CategoryTheory.Limits.compPreservesColimitsOfShape - theorem CategoryTheory.Limits.compPreservesLimit - theorem CategoryTheory.Limits.compPreservesLimits - theorem CategoryTheory.Limits.compPreservesLimitsOfShape - theorem CategoryTheory.Limits.compReflectsColimit - theorem CategoryTheory.Limits.compReflectsColimits - theorem CategoryTheory.Limits.compReflectsColimitsOfShape - theorem CategoryTheory.Limits.compReflectsLimit - theorem CategoryTheory.Limits.compReflectsLimits - theorem CategoryTheory.Limits.compReflectsLimitsOfShape - theorem CategoryTheory.Limits.fullyFaithfulReflectsColimits - theorem CategoryTheory.Limits.fullyFaithfulReflectsLimits - theorem CategoryTheory.Limits.idPreservesColimits - theorem CategoryTheory.Limits.idPreservesLimits - theorem CategoryTheory.Limits.idReflectsColimits - theorem CategoryTheory.Limits.idReflectsLimits - theorem CategoryTheory.Limits.preservesColimitOfIsoDiagram - theorem CategoryTheory.Limits.preservesColimitOfNatIso - theorem CategoryTheory.Limits.preservesColimitOfPreservesColimitCocone - theorem CategoryTheory.Limits.preservesColimitOfReflectsOfPreserves - theorem CategoryTheory.Limits.preservesColimitsOfNatIso - theorem CategoryTheory.Limits.preservesColimitsOfReflectsOfPreserves - theorem CategoryTheory.Limits.preservesColimitsOfShapeOfEquiv - theorem CategoryTheory.Limits.preservesColimitsOfShapeOfNatIso - theorem CategoryTheory.Limits.preservesColimitsOfShapeOfReflectsOfPreserves - theorem CategoryTheory.Limits.preservesColimitsOfSizeOfUnivLE - theorem CategoryTheory.Limits.preservesLimitOfIsoDiagram - theorem CategoryTheory.Limits.preservesLimitOfNatIso - theorem CategoryTheory.Limits.preservesLimitOfPreservesLimitCone - theorem CategoryTheory.Limits.preservesLimitOfReflectsOfPreserves - theorem CategoryTheory.Limits.preservesLimitsOfNatIso - theorem CategoryTheory.Limits.preservesLimitsOfReflectsOfPreserves - theorem CategoryTheory.Limits.preservesLimitsOfShapeOfEquiv - theorem CategoryTheory.Limits.preservesLimitsOfShapeOfNatIso - theorem CategoryTheory.Limits.preservesLimitsOfShapeOfReflectsOfPreserves - theorem CategoryTheory.Limits.preservesLimitsOfSizeOfUnivLE - theorem CategoryTheory.Limits.preservesSmallestColimitsOfPreservesColimits - theorem CategoryTheory.Limits.preservesSmallestLimitsOfPreservesLimits - theorem CategoryTheory.Limits.reflectsColimitOfIsoDiagram - theorem CategoryTheory.Limits.reflectsColimitOfNatIso - theorem CategoryTheory.Limits.reflectsColimitOfReflectsIsomorphisms - theorem CategoryTheory.Limits.reflectsColimitsOfNatIso - theorem CategoryTheory.Limits.reflectsColimitsOfReflectsIsomorphisms - theorem CategoryTheory.Limits.reflectsColimitsOfShapeOfEquiv - theorem CategoryTheory.Limits.reflectsColimitsOfShapeOfNatIso - theorem CategoryTheory.Limits.reflectsColimitsOfShapeOfReflectsIsomorphisms - theorem CategoryTheory.Limits.reflectsColimitsOfSizeOfUnivLE - theorem CategoryTheory.Limits.reflectsColimitsOfSizeShrink - theorem CategoryTheory.Limits.reflectsLimitOfIsoDiagram - theorem CategoryTheory.Limits.reflectsLimitOfNatIso - theorem CategoryTheory.Limits.reflectsLimitOfReflectsIsomorphisms - theorem CategoryTheory.Limits.reflectsLimitsOfNatIso - theorem CategoryTheory.Limits.reflectsLimitsOfReflectsIsomorphisms - theorem CategoryTheory.Limits.reflectsLimitsOfShapeOfEquiv - theorem CategoryTheory.Limits.reflectsLimitsOfShapeOfNatIso - theorem CategoryTheory.Limits.reflectsLimitsOfShapeOfReflectsIsomorphisms - theorem CategoryTheory.Limits.reflectsLimitsOfSizeOfUnivLE - theorem CategoryTheory.Limits.reflectsLimitsOfSizeShrink - theorem CategoryTheory.Limits.reflectsSmallestColimitsOfReflectsColimits - theorem CategoryTheory.Limits.reflectsSmallestLimitsOfReflectsLimits Modified Mathlib/CategoryTheory/Limits/Preserves/Opposites.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Countable.lean Modified Mathlib/CategoryTheory/Limits/Shapes/NormalMono/Basic.lean Modified Mathlib/CategoryTheory/Limits/Shapes/RegularMono.lean Modified Mathlib/CategoryTheory/Monoidal/Bimon_.lean Modified Mathlib/CategoryTheory/MorphismProperty/Limits.lean Modified Mathlib/CategoryTheory/Products/Basic.lean Modified Mathlib/CategoryTheory/Shift/CommShift.lean Modified Mathlib/CategoryTheory/Sites/Adjunction.lean Modified Mathlib/CategoryTheory/Sites/Coherent/LocallySurjective.lean Modified Mathlib/CategoryTheory/Sites/Continuous.lean Modified Mathlib/CategoryTheory/Sites/CoversTop.lean Modified Mathlib/CategoryTheory/Sites/LocallySurjective.lean Modified Mathlib/CategoryTheory/Sites/Sheaf.lean Modified Mathlib/CategoryTheory/Sites/Types.lean Modified Mathlib/Combinatorics/Additive/RuzsaCovering.lean Modified Mathlib/Combinatorics/Enumerative/Partition.lean Modified Mathlib/Condensed/Discrete/Characterization.lean Modified Mathlib/Data/Complex/Basic.lean Modified Mathlib/Data/ENNReal/Operations.lean Modified Mathlib/Data/EReal/Operations.lean Modified Mathlib/Data/Finmap.lean Modified Mathlib/Data/Finset/Image.lean Modified Mathlib/Data/Finset/Insert.lean Modified Mathlib/Data/Finset/NAry.lean Modified Mathlib/Data/Fintype/Card.lean Modified Mathlib/Data/Fintype/EquivFin.lean Modified Mathlib/Data/Fintype/Perm.lean Modified Mathlib/Data/Fintype/Units.lean Modified Mathlib/Data/Int/ModEq.lean Modified Mathlib/Data/List/AList.lean Modified Mathlib/Data/List/Enum.lean Modified Mathlib/Data/List/Lemmas.lean Modified Mathlib/Data/List/Lex.lean Modified Mathlib/Data/List/MinMax.lean Modified Mathlib/Data/List/OfFn.lean - theorem List.last_ofFn - theorem List.last_ofFn_succ Modified Mathlib/Data/List/Perm/Subperm.lean - theorem List.cons_subperm_of_mem Modified Mathlib/Data/List/ToFinsupp.lean Modified Mathlib/Data/Matrix/ColumnRowPartitioned.lean Modified Mathlib/Data/Matrix/Mul.lean Modified Mathlib/Data/Matrix/Notation.lean Modified Mathlib/Data/Matrix/RowCol.lean Modified Mathlib/Data/Matroid/Basic.lean Modified Mathlib/Data/Multiset/UnionInter.lean Modified Mathlib/Data/NNReal/Defs.lean - theorem NNReal.div_le_div_left_of_le Modified Mathlib/Data/Nat/Bitwise.lean Modified Mathlib/Data/Nat/Cast/Defs.lean - theorem Nat.cast_eq_ofNat Modified Mathlib/Data/Nat/Factorization/Basic.lean Modified Mathlib/Data/Nat/Init.lean - theorem Nat.div_lt_iff_lt_mul' - theorem Nat.le_div_iff_mul_le' Modified Mathlib/Data/Nat/Prime/Defs.lean Modified Mathlib/Data/PFunctor/Univariate/M.lean Modified Mathlib/Data/Quot.lean Modified Mathlib/Data/Real/ENatENNReal.lean Modified Mathlib/Data/Set/Basic.lean Modified Mathlib/Data/Set/Image.lean Modified Mathlib/Data/Set/Lattice.lean Modified Mathlib/Data/Set/NAry.lean Modified Mathlib/Data/Vector/Basic.lean Modified Mathlib/Data/W/Cardinal.lean Modified Mathlib/Data/ZMod/Units.lean Modified Mathlib/Dynamics/Minimal.lean Modified Mathlib/Dynamics/Newton.lean Modified Mathlib/FieldTheory/Finite/GaloisField.lean Modified Mathlib/FieldTheory/Fixed.lean Modified Mathlib/FieldTheory/IntermediateField/Basic.lean Modified Mathlib/FieldTheory/IsAlgClosed/Basic.lean Modified Mathlib/FieldTheory/IsSepClosed.lean Modified Mathlib/FieldTheory/RatFunc/Defs.lean Modified Mathlib/Geometry/Manifold/Algebra/LieGroup.lean Modified Mathlib/Geometry/Manifold/ChartedSpace.lean Modified Mathlib/Geometry/Manifold/ContMDiff/Basic.lean Modified Mathlib/Geometry/Manifold/DerivationBundle.lean Modified Mathlib/Geometry/Manifold/Instances/Real.lean Modified Mathlib/Geometry/Manifold/IsManifold/Basic.lean Modified Mathlib/Geometry/Manifold/IsManifold/ExtChartAt.lean Modified Mathlib/Geometry/Manifold/MFDeriv/Basic.lean Modified Mathlib/Geometry/Manifold/MFDeriv/UniqueDifferential.lean Modified Mathlib/Geometry/Manifold/Metrizable.lean Modified Mathlib/Geometry/Manifold/VectorBundle/Basic.lean Modified Mathlib/Geometry/Manifold/VectorBundle/FiberwiseLinear.lean Modified Mathlib/Geometry/Manifold/VectorBundle/Tangent.lean Modified Mathlib/GroupTheory/Complement.lean - theorem Subgroup.card_left_transversal - theorem Subgroup.card_right_transversal - theorem Subgroup.exists_left_transversal - theorem Subgroup.exists_right_transversal - def Subgroup.leftTransversals - theorem Subgroup.mem_leftTransversals_iff_bijective - theorem Subgroup.mem_leftTransversals_iff_existsUnique_inv_mul_mem - theorem Subgroup.mem_leftTransversals_iff_existsUnique_quotient_mk''_eq - theorem Subgroup.mem_rightTransversals_iff_bijective - theorem Subgroup.mem_rightTransversals_iff_existsUnique_mul_inv_mem - theorem Subgroup.mem_rightTransversals_iff_existsUnique_quotient_mk''_eq - theorem Subgroup.range_mem_leftTransversals - theorem Subgroup.range_mem_rightTransversals - def Subgroup.rightTransversals Modified Mathlib/GroupTheory/CosetCover.lean Modified Mathlib/GroupTheory/GroupAction/Blocks.lean Modified Mathlib/GroupTheory/Index.lean Modified Mathlib/GroupTheory/Nilpotent.lean Modified Mathlib/GroupTheory/NoncommPiCoprod.lean Modified Mathlib/GroupTheory/Perm/Fin.lean Modified Mathlib/GroupTheory/Schreier.lean Modified Mathlib/GroupTheory/SchurZassenhaus.lean Modified Mathlib/GroupTheory/SpecificGroups/Cyclic.lean Modified Mathlib/GroupTheory/Sylow.lean Modified Mathlib/GroupTheory/Transfer.lean Modified Mathlib/LinearAlgebra/AffineSpace/AffineEquiv.lean Modified Mathlib/LinearAlgebra/Alternating/Basic.lean Modified Mathlib/LinearAlgebra/DFinsupp.lean Modified Mathlib/LinearAlgebra/Dimension/Basic.lean Modified Mathlib/LinearAlgebra/Dimension/Finite.lean Modified Mathlib/LinearAlgebra/Dimension/FreeAndStrongRankCondition.lean Modified Mathlib/LinearAlgebra/Dimension/StrongRankCondition.lean Modified Mathlib/LinearAlgebra/Eigenspace/Basic.lean - theorem Module.End.disjoint_iSup_genEigenspace - theorem Module.End.genEigenrange_def - theorem Module.End.genEigenspace_def - theorem Module.End.iSup_genEigenspace_inf_le_add - theorem Module.End.iSup_genEigenspace_le_smul - theorem Module.End.independent_iSup_genEigenspace - theorem Module.End.injOn_iSup_genEigenspace - theorem Module.End.isNilpotent_restrict_iSup_sub_algebraMap - theorem Module.End.map_add_of_iInf_iSup_genEigenspace_ne_bot_of_commute - theorem Module.End.map_smul_of_iInf_iSup_genEigenspace_ne_bot - theorem Module.End.mapsTo_iSup_genEigenspace_of_comm - theorem Module.End.maxGenEigenspace_def Modified Mathlib/LinearAlgebra/FreeModule/Finite/Matrix.lean Modified Mathlib/LinearAlgebra/FreeProduct/Basic.lean Modified Mathlib/LinearAlgebra/LinearIndependent/Lemmas.lean Modified Mathlib/LinearAlgebra/Matrix/Determinant/Basic.lean Modified Mathlib/LinearAlgebra/Matrix/Determinant/TotallyUnimodular.lean Modified Mathlib/LinearAlgebra/Matrix/DotProduct.lean Modified Mathlib/LinearAlgebra/Matrix/GeneralLinearGroup/Defs.lean Modified Mathlib/LinearAlgebra/Matrix/Permanent.lean Modified Mathlib/LinearAlgebra/Multilinear/Basic.lean Modified Mathlib/LinearAlgebra/PiTensorProduct.lean Modified Mathlib/LinearAlgebra/Projectivization/Independence.lean Modified Mathlib/Logic/Embedding/Basic.lean Modified Mathlib/Logic/Equiv/Defs.lean Modified Mathlib/Logic/ExistsUnique.lean Modified Mathlib/Logic/Function/Basic.lean Modified Mathlib/Logic/Unique.lean Modified Mathlib/MeasureTheory/Constructions/BorelSpace/Order.lean Modified Mathlib/MeasureTheory/Covering/Differentiation.lean Modified Mathlib/MeasureTheory/Covering/Vitali.lean Modified Mathlib/MeasureTheory/Function/ConditionalExpectation/Basic.lean Modified Mathlib/MeasureTheory/Function/ConditionalExpectation/CondexpL1.lean Modified Mathlib/MeasureTheory/Function/ConditionalExpectation/CondexpL2.lean Modified Mathlib/MeasureTheory/Function/ConditionalExpectation/Indicator.lean Modified Mathlib/MeasureTheory/Function/ConditionalExpectation/Real.lean Modified Mathlib/MeasureTheory/Function/L1Space/HasFiniteIntegral.lean Modified Mathlib/MeasureTheory/Function/LpSeminorm/Basic.lean Modified Mathlib/MeasureTheory/Function/LpSeminorm/Defs.lean Modified Mathlib/MeasureTheory/Function/LpSpace/Indicator.lean Modified Mathlib/MeasureTheory/Function/SimpleFuncDenseLp.lean Modified Mathlib/MeasureTheory/Integral/Bochner/Basic.lean Modified Mathlib/MeasureTheory/Integral/Lebesgue/Norm.lean Modified Mathlib/MeasureTheory/MeasurableSpace/Prod.lean Modified Mathlib/MeasureTheory/Measure/AbsolutelyContinuous.lean Modified Mathlib/MeasureTheory/Measure/Count.lean Modified Mathlib/MeasureTheory/Measure/Haar/Unique.lean Modified Mathlib/MeasureTheory/Measure/Lebesgue/EqHaar.lean Modified Mathlib/MeasureTheory/Measure/Map.lean Modified Mathlib/MeasureTheory/Measure/Regular.lean Modified Mathlib/ModelTheory/PartialEquiv.lean Modified Mathlib/NumberTheory/DirichletCharacter/Basic.lean Modified Mathlib/NumberTheory/EulerProduct/DirichletLSeries.lean Modified Mathlib/NumberTheory/Fermat.lean Modified Mathlib/NumberTheory/Multiplicity.lean Modified Mathlib/NumberTheory/NumberField/CanonicalEmbedding/FundamentalCone.lean Modified Mathlib/NumberTheory/NumberField/Completion.lean Modified Mathlib/NumberTheory/NumberField/InfinitePlace/Basic.lean Modified Mathlib/NumberTheory/Padics/PadicIntegers.lean Modified Mathlib/NumberTheory/Padics/PadicNumbers.lean Modified Mathlib/NumberTheory/Padics/RingHoms.lean Modified Mathlib/NumberTheory/RamificationInertia/Basic.lean Modified Mathlib/Order/Antisymmetrization.lean Modified Mathlib/Order/Basic.lean Modified Mathlib/Order/CompactlyGenerated/Basic.lean Modified Mathlib/Order/CompleteLattice/Basic.lean - theorem iInf_le' - theorem le_iSup' Modified Mathlib/Order/Disjoint.lean Modified Mathlib/Order/Filter/Defs.lean Modified Mathlib/Order/Ideal.lean Modified Mathlib/Order/InitialSeg.lean Modified Mathlib/Order/KrullDimension.lean Modified Mathlib/Order/Lattice.lean - theorem inf_eq_min - theorem sup_eq_max Modified Mathlib/Order/Monotone/Basic.lean Modified Mathlib/Order/Notation.lean Modified Mathlib/Order/Preorder/Chain.lean Modified Mathlib/Order/RelIso/Basic.lean Modified Mathlib/Order/SupIndep.lean Modified Mathlib/Probability/BorelCantelli.lean Modified Mathlib/Probability/Density.lean Modified Mathlib/Probability/Independence/ZeroOne.lean Modified Mathlib/Probability/Kernel/Composition/MeasureCompProd.lean Modified Mathlib/Probability/Kernel/CondDistrib.lean Modified Mathlib/Probability/Kernel/Condexp.lean Modified Mathlib/Probability/Kernel/Proper.lean Modified Mathlib/Probability/Martingale/Basic.lean Modified Mathlib/Probability/Martingale/Convergence.lean Modified Mathlib/Probability/Martingale/OptionalSampling.lean Modified Mathlib/Probability/Moments/Variance.lean Modified Mathlib/Probability/Process/Stopping.lean Modified Mathlib/RingTheory/Algebraic/Basic.lean Modified Mathlib/RingTheory/Algebraic/Cardinality.lean Modified Mathlib/RingTheory/Algebraic/Defs.lean Modified Mathlib/RingTheory/Algebraic/Integral.lean Modified Mathlib/RingTheory/Algebraic/Pi.lean Modified Mathlib/RingTheory/Artinian/Module.lean Modified Mathlib/RingTheory/DedekindDomain/Ideal/Lemmas.lean Modified Mathlib/RingTheory/DiscreteValuationRing/TFAE.lean Modified Mathlib/RingTheory/Filtration.lean Modified Mathlib/RingTheory/Finiteness/Cardinality.lean Modified Mathlib/RingTheory/Finiteness/Ideal.lean Modified Mathlib/RingTheory/Flat/Basic.lean Modified Mathlib/RingTheory/Flat/FaithfullyFlat/Basic.lean Modified Mathlib/RingTheory/Flat/Stability.lean Modified Mathlib/RingTheory/HahnSeries/Summable.lean Modified Mathlib/RingTheory/Ideal/Cotangent.lean Modified Mathlib/RingTheory/Ideal/Maps.lean Modified Mathlib/RingTheory/Ideal/Over.lean Modified Mathlib/RingTheory/Idempotents.lean Modified Mathlib/RingTheory/IntegralClosure/IsIntegralClosure/Basic.lean Modified Mathlib/RingTheory/Jacobson/Ring.lean Modified Mathlib/RingTheory/KrullDimension/Zero.lean - theorem IsLocalization.AtPrime.prime_unique_of_minimal Modified Mathlib/RingTheory/LocalRing/Basic.lean Modified Mathlib/RingTheory/LocalRing/Defs.lean Modified Mathlib/RingTheory/LocalRing/MaximalIdeal/Basic.lean Modified Mathlib/RingTheory/LocalRing/MaximalIdeal/Defs.lean Modified Mathlib/RingTheory/LocalRing/Module.lean Modified Mathlib/RingTheory/LocalRing/Quotient.lean Modified Mathlib/RingTheory/LocalRing/ResidueField/Basic.lean Modified Mathlib/RingTheory/LocalRing/ResidueField/Defs.lean Modified Mathlib/RingTheory/LocalRing/RingHom/Basic.lean Modified Mathlib/RingTheory/Localization/AtPrime/Basic.lean Modified Mathlib/RingTheory/Localization/Away/Basic.lean Modified Mathlib/RingTheory/Localization/BaseChange.lean Modified Mathlib/RingTheory/Localization/Cardinality.lean Modified Mathlib/RingTheory/Localization/FractionRing.lean Modified Mathlib/RingTheory/Multiplicity.lean Modified Mathlib/RingTheory/MvPolynomial.lean Modified Mathlib/RingTheory/MvPolynomial/MonomialOrder.lean Modified Mathlib/RingTheory/Noetherian/Basic.lean Modified Mathlib/RingTheory/NonUnitalSubring/Basic.lean Modified Mathlib/RingTheory/NonUnitalSubsemiring/Basic.lean Modified Mathlib/RingTheory/Polynomial/Basic.lean Modified Mathlib/RingTheory/Polynomial/Chebyshev.lean Modified Mathlib/RingTheory/Polynomial/HilbertPoly.lean Modified Mathlib/RingTheory/Polynomial/IntegralNormalization.lean Modified Mathlib/RingTheory/Polynomial/Wronskian.lean Modified Mathlib/RingTheory/PowerSeries/Basic.lean Modified Mathlib/RingTheory/PowerSeries/Order.lean Modified Mathlib/RingTheory/PrincipalIdealDomain.lean Modified Mathlib/RingTheory/Regular/RegularSequence.lean Modified Mathlib/RingTheory/SimpleModule/Basic.lean Modified Mathlib/RingTheory/Spectrum/Prime/TensorProduct.lean Modified Mathlib/RingTheory/Spectrum/Prime/Topology.lean Modified Mathlib/RingTheory/UniqueFactorizationDomain/Basic.lean Modified Mathlib/RingTheory/UniqueFactorizationDomain/Multiplicity.lean Modified Mathlib/RingTheory/UniqueFactorizationDomain/NormalizedFactors.lean Modified Mathlib/RingTheory/Unramified/Field.lean Modified Mathlib/RingTheory/Valuation/Basic.lean Modified Mathlib/SetTheory/Cardinal/Aleph.lean Modified Mathlib/SetTheory/Cardinal/Basic.lean Modified Mathlib/SetTheory/Cardinal/Ordinal.lean - theorem Cardinal.principal_add_aleph Modified Mathlib/SetTheory/Cardinal/Subfield.lean Modified Mathlib/SetTheory/Cardinal/ToNat.lean Modified Mathlib/SetTheory/Game/Nim.lean Modified Mathlib/SetTheory/Game/Ordinal.lean Modified Mathlib/SetTheory/Ordinal/Arithmetic.lean Modified Mathlib/SetTheory/Ordinal/Family.lean Modified Mathlib/SetTheory/Ordinal/Topology.lean Modified Mathlib/SetTheory/PGame/Algebra.lean - theorem SetTheory.PGame.moveLeft_neg_symm' - theorem SetTheory.PGame.moveLeft_neg_symm - theorem SetTheory.PGame.moveRight_neg_symm' - theorem SetTheory.PGame.moveRight_neg_symm Modified Mathlib/Tactic/DefEqTransformations.lean Modified Mathlib/Tactic/Linter/OldObtain.lean - def Mathlib.Linter.Style.is_obtain_without_proof Modified Mathlib/Tactic/Linter/Style.lean - def Mathlib.Linter.Style.setOption.is_set_option - def Mathlib.Linter.Style.setOption.parse_set_option Modified Mathlib/Tactic/MoveAdd.lean Modified Mathlib/Topology/AlexandrovDiscrete.lean Modified Mathlib/Topology/Algebra/Algebra.lean Modified Mathlib/Topology/Algebra/ConstMulAction.lean Modified Mathlib/Topology/Algebra/Constructions.lean Modified Mathlib/Topology/Algebra/Constructions/DomMulAct.lean Modified Mathlib/Topology/Algebra/Group/Basic.lean Modified Mathlib/Topology/Algebra/Group/CompactOpen.lean Modified Mathlib/Topology/Algebra/Group/Quotient.lean Modified Mathlib/Topology/Algebra/GroupWithZero.lean Modified Mathlib/Topology/Algebra/InfiniteSum/Basic.lean Modified Mathlib/Topology/Algebra/IsUniformGroup/Defs.lean Modified Mathlib/Topology/Algebra/Module/Alternating/Basic.lean Modified Mathlib/Topology/Algebra/Module/Alternating/Topology.lean Modified Mathlib/Topology/Algebra/Module/Equiv.lean Modified Mathlib/Topology/Algebra/Module/Multilinear/Basic.lean Modified Mathlib/Topology/Algebra/Module/Multilinear/Topology.lean Modified Mathlib/Topology/Algebra/Module/StrongTopology.lean Modified Mathlib/Topology/Algebra/Module/WeakBilin.lean Modified Mathlib/Topology/Algebra/Monoid.lean Modified Mathlib/Topology/Algebra/MulAction.lean Modified Mathlib/Topology/Algebra/Order/Field.lean Modified Mathlib/Topology/Algebra/Ring/Ideal.lean Modified Mathlib/Topology/Algebra/SeparationQuotient/Section.lean Modified Mathlib/Topology/Algebra/StarSubalgebra.lean Modified Mathlib/Topology/Algebra/UniformRing.lean Modified Mathlib/Topology/Bases.lean Modified Mathlib/Topology/Category/Profinite/Nobeling/Induction.lean Modified Mathlib/Topology/Category/TopCat/EffectiveEpi.lean Modified Mathlib/Topology/Category/TopCat/Limits/Basic.lean Modified Mathlib/Topology/Category/TopCat/Limits/Products.lean Modified Mathlib/Topology/Category/TopCat/Limits/Pullbacks.lean Modified Mathlib/Topology/Clopen.lean Modified Mathlib/Topology/ClopenBox.lean Modified Mathlib/Topology/CompactOpen.lean Modified Mathlib/Topology/Compactness/Compact.lean Modified Mathlib/Topology/Compactness/Lindelof.lean Modified Mathlib/Topology/Compactness/LocallyCompact.lean Modified Mathlib/Topology/Compactness/SigmaCompact.lean Modified Mathlib/Topology/Connected/Basic.lean Modified Mathlib/Topology/Connected/Clopen.lean Modified Mathlib/Topology/Connected/LocallyConnected.lean Modified Mathlib/Topology/Connected/PathConnected.lean Modified Mathlib/Topology/Connected/TotallyDisconnected.lean Modified Mathlib/Topology/Constructions.lean Modified Mathlib/Topology/Constructions/SumProd.lean Modified Mathlib/Topology/ContinuousMap/Bounded/Basic.lean Modified Mathlib/Topology/ContinuousMap/ContinuousMapZero.lean Modified Mathlib/Topology/ContinuousMap/Sigma.lean Modified Mathlib/Topology/ContinuousMap/T0Sierpinski.lean Modified Mathlib/Topology/ContinuousOn.lean Modified Mathlib/Topology/Covering.lean Modified Mathlib/Topology/Defs/Induced.lean Modified Mathlib/Topology/DenseEmbedding.lean Modified Mathlib/Topology/DiscreteQuotient.lean Modified Mathlib/Topology/FiberBundle/Basic.lean Modified Mathlib/Topology/FiberBundle/Constructions.lean Modified Mathlib/Topology/FiberBundle/IsHomeomorphicTrivialBundle.lean Modified Mathlib/Topology/Filter.lean Modified Mathlib/Topology/GDelta/Basic.lean Modified Mathlib/Topology/Homeomorph/Defs.lean Modified Mathlib/Topology/Homeomorph/Lemmas.lean Modified Mathlib/Topology/Inseparable.lean Modified Mathlib/Topology/Instances/Discrete.lean Modified Mathlib/Topology/Instances/ENNReal/Lemmas.lean Modified Mathlib/Topology/Instances/ENat.lean Modified Mathlib/Topology/Instances/EReal/Lemmas.lean Modified Mathlib/Topology/Instances/Matrix.lean Modified Mathlib/Topology/Instances/Rat.lean Modified Mathlib/Topology/Instances/TrivSqZeroExt.lean Modified Mathlib/Topology/Irreducible.lean Modified Mathlib/Topology/LocalAtTarget.lean Modified Mathlib/Topology/LocallyClosed.lean Modified Mathlib/Topology/Maps/Basic.lean Modified Mathlib/Topology/Maps/OpenQuotient.lean Modified Mathlib/Topology/MetricSpace/Basic.lean Modified Mathlib/Topology/MetricSpace/Dilation.lean Modified Mathlib/Topology/MetricSpace/Isometry.lean Modified Mathlib/Topology/MetricSpace/ProperSpace.lean Modified Mathlib/Topology/MetricSpace/Pseudo/Basic.lean Modified Mathlib/Topology/MetricSpace/Pseudo/Constructions.lean Modified Mathlib/Topology/Metrizable/Basic.lean Modified Mathlib/Topology/Metrizable/Urysohn.lean Modified Mathlib/Topology/NoetherianSpace.lean Modified Mathlib/Topology/Order/Basic.lean Modified Mathlib/Topology/Order/DenselyOrdered.lean - theorem nhdsWithin_Iio_self_neBot - theorem nhdsWithin_Ioi_self_neBot Modified Mathlib/Topology/Order/LeftRight.lean - theorem nhdsWithin_Ici_self_neBot - theorem nhdsWithin_Iic_self_neBot Modified Mathlib/Topology/Order/LeftRightNhds.lean Modified Mathlib/Topology/Order/LowerUpperTopology.lean Modified Mathlib/Topology/Order/Monotone.lean Modified Mathlib/Topology/Order/OrderClosed.lean Modified Mathlib/Topology/Order/ProjIcc.lean Modified Mathlib/Topology/Order/T5.lean Modified Mathlib/Topology/QuasiSeparated.lean Modified Mathlib/Topology/SeparatedMap.lean Modified Mathlib/Topology/Separation/Basic.lean Modified Mathlib/Topology/Separation/Hausdorff.lean Modified Mathlib/Topology/Separation/Profinite.lean Modified Mathlib/Topology/Separation/Regular.lean Modified Mathlib/Topology/Sequences.lean Modified Mathlib/Topology/Sheaves/CommRingCat.lean - theorem CommRingCat.presheaf_restrict_restrict Modified Mathlib/Topology/Sheaves/Stalks.lean Modified Mathlib/Topology/UniformSpace/Ascoli.lean Modified Mathlib/Topology/UniformSpace/Basic.lean Modified Mathlib/Topology/UniformSpace/CompactConvergence.lean Modified Mathlib/Topology/UniformSpace/CompleteSeparated.lean Modified Mathlib/Topology/UniformSpace/UniformEmbedding.lean Modified docs/overview.yaml 2025-08-05 06:48:08 00335dd feat: multiplying by a constant on the right preserves integrability (#27948) ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Function/LpSeminorm/Basic.lean + theorem MeasureTheory.MemLp.mul_const 2025-08-05 06:06:03 1ac26b4 chore: golf Algebra.mem_adjoin_iff (#27931) ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/Subalgebra/Basic.lean + theorem Subalgebra.coe_mk + theorem Subalgebra.mem_mk Modified Mathlib/Algebra/Algebra/Subalgebra/Lattice.lean 2025-08-05 05:33:05 101686e update LinearOrderedCommRing to CommRing , LinearOrder and IsStrictOrderedRing in linarith's doc (#27924) update LinearOrderedCommRing to CommRing , LinearOrder and IsStrictOrderedRing in linarith's doc, because LinearOrderedCommRing has been deprecated since 2025-04-10 ESTIMATED CHANGES Modified Mathlib/Tactic/Linarith/Frontend.lean 2025-08-05 02:02:22 a2707a1 feat(Analysis/InnerProductSpace/Adjoint): some API for `innerSL` (#27845) In [bra-ket notation](https://en.wikipedia.org/wiki/Bra–ket_notation), these are: - $\langle x|^\dagger=|x\rangle$, - $f\circ|x\rangle=|f(x)\rangle$, - $\langle x|\circ f=\langle f^\dagger(x)|$, where $\langle x|$ is `innerSL _ x`, and $|x\rangle$ is `(lsmul _ _).flip x`. ESTIMATED CHANGES Modified Mathlib/Analysis/InnerProductSpace/Adjoint.lean + theorem ContinuousLinearMap.adjoint_innerSL_apply + theorem ContinuousLinearMap.innerSL_apply_comp + theorem ContinuousLinearMap.innerSL_apply_comp_of_isSymmetric Modified Mathlib/Analysis/NormedSpace/OperatorNorm/Mul.lean + theorem ContinuousLinearMap.comp_lsmul_flip_apply 2025-08-04 23:21:13 b24ea32 chore(RingTheory/Valuation): change definition of IsValuativeTopology (#27939) ESTIMATED CHANGES Modified Mathlib/RingTheory/Valuation/ValuativeRel.lean Modified Mathlib/Topology/Algebra/Valued/ValuativeRel.lean + theorem IsValuativeTopology.hasBasis_nhds - theorem IsValuativeTopology.mem_nhds + theorem IsValuativeTopology.mem_nhds_iff' + theorem IsValuativeTopology.mem_nhds_zero_iff + theorem IsValuativeTopology.of_zero 2025-08-04 22:51:18 228533c feat(RepresentationTheory): add the norm map (#27362) Given a representation `A` of a finite group `G`, `A.norm` is the representation morphism `A ⟶ A` defined by `x ↦ ∑ A.ρ g x` for `g` in `G`. We define this and prove related lemmas. ESTIMATED CHANGES Modified Mathlib/Algebra/BigOperators/Fin.lean + theorem Fin.partialProd_init Modified Mathlib/RepresentationTheory/Basic.lean + theorem Representation.apply_eq_of_leftRegular_eq_of_generator + theorem Representation.apply_sub_id_partialSum_eq + theorem Representation.ker_leftRegular_norm_eq + theorem Representation.leftRegular_norm_apply + theorem Representation.leftRegular_norm_eq_zero_iff + def Representation.norm + theorem Representation.norm_comp_self + theorem Representation.norm_ofDistribMulAction_eq + theorem Representation.norm_ofMulDistribMulAction_eq + theorem Representation.norm_self_apply + theorem Representation.self_comp_norm + theorem Representation.self_norm_apply Modified Mathlib/RepresentationTheory/Rep.lean + theorem Rep.applyAsHom_comm + def Rep.norm + def Rep.normNatTrans + theorem Rep.norm_comm 2025-08-04 22:28:41 5e6c9d1 feat(Topology/Algebra/Module/LinearMap): add `ContinuousLinearMap.isIdempotentElem_toLinearMap_iff` (#27942) Instead of having to annoyingly do `congr(LinearMapClass.linearMap $h.eq)` over and over to use results for idempotent linear maps, we can just do `h.toLinearMap`, where `h : IsIdempotentElem T` for some continuous linear map `T`. ESTIMATED CHANGES Modified Mathlib/Analysis/InnerProductSpace/Adjoint.lean Modified Mathlib/Analysis/InnerProductSpace/Positive.lean Modified Mathlib/Topology/Algebra/Module/LinearMap.lean + theorem ContinuousLinearMap.isIdempotentElem_toLinearMap_iff 2025-08-04 21:54:24 d59ab0f feat: add naming hint to doc string of `LinearMap.proj` (#27685) The goal is to improve discoverability of `LinearMap.proj` for people familiar with the `Pi.eval...` pattern used elsewhere. ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/Pi.lean + theorem LinearMap.toAddMonoidHom_proj 2025-08-04 20:55:40 11bbb4e chore(CategoryTheory/Presentable/Basic): remove bad instance (#27941) The instance `HasCardinalFilteredColimits.hasColimitsOfShape` is bad because it has no way to infer the value of `κ`. Almost a year ago there was a change to type classes, which causes Lean to not give a warning about this, in https://github.com/leanprover/lean4/pull/5376 and I would like to fix that. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Presentable/Basic.lean 2025-08-04 20:55:39 2c4e63c feat: add IsEmbedding.sumElim_of_separatingNhds (#26099) Characterise when the Sum.elim of two inducing maps resp. embeddings is an embedding, and deduce that the ranges of the two maps lying in separated neighbourhoods suffices. This is used in my bordism theory project. Co-authored by: @plp127 ESTIMATED CHANGES Modified Mathlib/Data/Sum/Basic.lean + theorem Sum.elim_swap Modified Mathlib/Topology/Constructions/SumProd.lean + theorem IsInducing.sumSwap + theorem IsOpenEmbedding.sumSwap + theorem Topology.IsEmbedding.sumElim + theorem Topology.IsEmbedding.sumElim_left + theorem Topology.IsEmbedding.sumElim_of_separatedNhds + theorem Topology.IsEmbedding.sumElim_right + theorem Topology.IsInducing.disjoint_of_sumElim_aux + theorem Topology.IsInducing.sumElim + theorem Topology.IsInducing.sumElim_left + theorem Topology.IsInducing.sumElim_of_separatedNhds + theorem Topology.IsInducing.sumElim_right + theorem isEmbedding_sumElim + theorem isInducing_sumElim 2025-08-04 19:25:11 f4542b3 chore: update Mathlib dependencies 2025-08-04 (#27945) This PR updates the Mathlib dependencies. ESTIMATED CHANGES Modified lake-manifest.json 2025-08-04 19:25:10 9845535 chore: move `Localization.AtPrime` deprecated module to the right place (#27935) This PR fixes an oversight introduced in #27796. ESTIMATED CHANGES Modified Mathlib.lean Renamed Mathlib.RingTheory.Localization.AtPrime.lean to Mathlib/RingTheory/Localization/AtPrime.lean 2025-08-04 19:25:08 b2ecd43 feat: autolabel group theory, ring theory PRs (#27892) The algebra label is getting split into more granular areas. [Zulip discussion](https://leanprover.zulipchat.com/#narrow/channel/345428-mathlib-reviewers/topic/Proposal.3A.20more.20fine-grained.20algebra.20labels/with/532532749) ESTIMATED CHANGES Modified scripts/autolabel.lean 2025-08-04 18:38:40 5694eb0 fix(ToAdditive): `IsCancelAdd` mistranslations (#27940) ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Defs.lean Modified Mathlib/Algebra/Order/Monoid/Defs.lean Modified Mathlib/Tactic/ToAdditive/Frontend.lean 2025-08-04 17:27:33 8d2ff52 chore: drop some `gcongr` attributes (#27876) These attrs were introduced in #27718 but are no longer needed since #26907. Also add `@[gcongr]` on `map_dvd` and use `gcongr` in some proofs. ESTIMATED CHANGES Modified Mathlib/Algebra/BigOperators/Associated.lean Modified Mathlib/Algebra/BigOperators/Group/Finset/Basic.lean Modified Mathlib/Algebra/Divisibility/Basic.lean +/- theorem mul_dvd_mul_right Modified Mathlib/Algebra/Divisibility/Hom.lean Modified Mathlib/Algebra/EuclideanDomain/Basic.lean Modified Mathlib/Algebra/GCDMonoid/Basic.lean Modified Mathlib/Algebra/Polynomial/Div.lean Modified Mathlib/Data/Nat/Log.lean Modified Mathlib/NumberTheory/PellMatiyasevic.lean Modified Mathlib/RingTheory/Multiplicity.lean Modified Mathlib/RingTheory/Nilpotent/Basic.lean Modified Mathlib/RingTheory/Polynomial/Content.lean 2025-08-04 15:00:05 9a749a6 fix: cleanup measurability + prod/sum lemmas + fun_prop (#25254) * Add `fun_prop` to a few more lemmas * Rename the compositional version to something without a prime, add the compositional version for `StronglyMeasurable` * use the `prod/fun_prod` naming scheme (the compositional version is called `prod_apply`) for `[AE][Strongly]Measurable` ESTIMATED CHANGES Modified Mathlib/Analysis/FunctionalSpaces/SobolevInequality.lean Modified Mathlib/MeasureTheory/Constructions/BorelSpace/Real.lean Modified Mathlib/MeasureTheory/Function/Intersectivity.lean Modified Mathlib/MeasureTheory/Function/LpSpace/Complete.lean Modified Mathlib/MeasureTheory/Function/StronglyMeasurable/AEStronglyMeasurable.lean + theorem Finset.aestronglyMeasurable_fun_prod - theorem Finset.aestronglyMeasurable_prod' + theorem List.aestronglyMeasurable_fun_prod - theorem List.aestronglyMeasurable_prod' +/- theorem List.aestronglyMeasurable_prod + theorem Multiset.aestronglyMeasurable_fun_prod - theorem Multiset.aestronglyMeasurable_prod' +/- theorem Multiset.aestronglyMeasurable_prod Modified Mathlib/MeasureTheory/Function/StronglyMeasurable/Basic.lean + theorem Finset.stronglyMeasurable_fun_prod - theorem Finset.stronglyMeasurable_prod' + theorem List.stronglyMeasurable_fun_prod - theorem List.stronglyMeasurable_prod' + theorem MeasureTheory.StronglyMeasurable.Finset.stronglyMeasurable_prod_apply + theorem Multiset.stronglyMeasurable_fun_prod - theorem Multiset.stronglyMeasurable_prod' +/- theorem Multiset.stronglyMeasurable_prod Modified Mathlib/MeasureTheory/Function/UniformIntegrable.lean Modified Mathlib/MeasureTheory/Group/Arithmetic.lean + theorem Finset.aemeasurable_fun_prod - theorem Finset.aemeasurable_prod' + theorem Finset.measurable_fun_prod - theorem Finset.measurable_prod' + theorem Finset.measurable_prod_apply + theorem List.aemeasurable_fun_prod - theorem List.aemeasurable_prod' + theorem List.measurable_fun_prod - theorem List.measurable_prod' + theorem Multiset.aemeasurable_fun_prod - theorem Multiset.aemeasurable_prod' +/- theorem Multiset.aemeasurable_prod + theorem Multiset.measurable_fun_prod - theorem Multiset.measurable_prod' +/- theorem Multiset.measurable_prod Modified Mathlib/MeasureTheory/Integral/DominatedConvergence.lean Modified Mathlib/MeasureTheory/Integral/Lebesgue/Add.lean Modified Mathlib/MeasureTheory/Integral/MeanInequalities.lean Modified Mathlib/MeasureTheory/Integral/Prod.lean Modified Mathlib/MeasureTheory/MeasurableSpace/Constructions.lean + theorem measurable_fun_prod + theorem measurable_fun_sum - theorem measurable_prod - theorem measurable_sum Modified Mathlib/MeasureTheory/MeasurableSpace/Embedding.lean Modified Mathlib/MeasureTheory/Measure/FiniteMeasure.lean + theorem MeasureTheory.FiniteMeasure.measurable_fun_prod - theorem MeasureTheory.FiniteMeasure.measurable_prod Modified Mathlib/MeasureTheory/Measure/GiryMonad.lean Modified Mathlib/MeasureTheory/Measure/ProbabilityMeasure.lean + theorem MeasureTheory.ProbabilityMeasure.measurable_fun_prod - theorem MeasureTheory.ProbabilityMeasure.measurable_prod Modified Mathlib/Probability/Independence/Conditional.lean Modified Mathlib/Probability/Independence/Kernel.lean Modified Mathlib/Probability/Integration.lean Modified Mathlib/Probability/Kernel/MeasurableIntegral.lean Modified Mathlib/Probability/Martingale/Basic.lean Modified Mathlib/Probability/Martingale/BorelCantelli.lean Modified Mathlib/Probability/Martingale/Centering.lean Modified Mathlib/Probability/Martingale/Upcrossing.lean Modified Mathlib/Probability/Moments/SubGaussian.lean Modified Mathlib/Probability/StrongLaw.lean 2025-08-04 14:43:22 5e4041f chore(CategoryTheory/Adjunction): golf entire `conjugateEquiv_counit` using `simp` (#27929) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Adjunction/Mates.lean 2025-08-04 14:28:47 d2231fc feat(MeasureTheory): `iInf_le_lintegral` and `lintegral_le_iSup` (#27591) ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Integral/Lebesgue/Basic.lean + theorem MeasureTheory.iInf_mul_le_lintegral + theorem MeasureTheory.iInf_mul_le_setLIntegral + theorem MeasureTheory.lintegral_le_iSup_mul + theorem MeasureTheory.setLIntegral_le_iSup_mul Modified Mathlib/MeasureTheory/Integral/Lebesgue/Countable.lean + theorem MeasureTheory.iInf_le_lintegral + theorem MeasureTheory.lintegral_le_iSup 2025-08-04 14:14:51 2c0fd5c chore: rename ValuativeTopology to IsValuativeTopology (#26845) ESTIMATED CHANGES Modified Mathlib/RingTheory/Valuation/ValuativeRel.lean Modified Mathlib/Topology/Algebra/Valued/ValuativeRel.lean + theorem IsValuativeTopology.hasBasis_nhds_zero + theorem IsValuativeTopology.isClopen_ball + theorem IsValuativeTopology.isClopen_closedBall + theorem IsValuativeTopology.isClopen_sphere + theorem IsValuativeTopology.isClosed_ball + theorem IsValuativeTopology.isClosed_closedBall + theorem IsValuativeTopology.isOpen_ball + theorem IsValuativeTopology.isOpen_closedBall + theorem IsValuativeTopology.isOpen_sphere + theorem IsValuativeTopology.mem_nhds - theorem ValuativeTopology.hasBasis_nhds_zero - theorem ValuativeTopology.isClopen_ball - theorem ValuativeTopology.isClopen_closedBall - theorem ValuativeTopology.isClopen_sphere - theorem ValuativeTopology.isClosed_ball - theorem ValuativeTopology.isClosed_closedBall - theorem ValuativeTopology.isOpen_ball - theorem ValuativeTopology.isOpen_closedBall - theorem ValuativeTopology.isOpen_sphere - theorem ValuativeTopology.mem_nhds 2025-08-04 13:09:32 bc9b0d7 chore(MeasureTheory/VectorMeasure): golf entire `le_restrict_univ_iff_le` using `simp` (#27927) ESTIMATED CHANGES Modified Mathlib/MeasureTheory/VectorMeasure/Basic.lean 2025-08-04 13:09:30 c863eea refactor: rename `RingHomIsometric.`{`is_iso`→`norm_map`} (#27913) This then makes it obvious how to name a new `nnnorm_map` lemma. ESTIMATED CHANGES Modified Mathlib/Analysis/LocallyConvex/Bounded.lean Modified Mathlib/Analysis/Normed/Operator/Banach.lean Modified Mathlib/Analysis/Normed/Operator/Compact.lean Modified Mathlib/Analysis/Normed/Ring/Basic.lean + theorem RingHomIsometric.enorm_map + theorem RingHomIsometric.nnnorm_map Modified Mathlib/Analysis/Normed/Ring/Lemmas.lean Modified Mathlib/Analysis/NormedSpace/OperatorNorm/NNNorm.lean Modified Mathlib/Analysis/RCLike/Basic.lean +/- theorem RCLike.enorm_conj +/- theorem RCLike.nnnorm_conj Modified Mathlib/Analysis/Seminorm.lean 2025-08-04 13:09:28 982a20e chore(Algebra): golf using `grind` (#27909) ESTIMATED CHANGES Modified Mathlib/Algebra/AddConstMap/Basic.lean Modified Mathlib/Algebra/ContinuedFractions/ConvergentsEquiv.lean Modified Mathlib/Algebra/ContinuedFractions/Determinant.lean Modified Mathlib/Algebra/Group/Indicator.lean Modified Mathlib/Algebra/Group/UniqueProds/Basic.lean Modified Mathlib/Algebra/Module/CharacterModule.lean Modified Mathlib/Algebra/Order/Field/Basic.lean Modified Mathlib/Algebra/Polynomial/HasseDeriv.lean Modified Mathlib/Algebra/Polynomial/PartialFractions.lean Modified Mathlib/Algebra/Polynomial/UnitTrinomial.lean 2025-08-04 13:09:26 96b3b7c feat: inclusion exclusion principle for integrals (#27834) Prove that the integral of a function over a union of sets is the alternating sum of the integrals over the intersections of the set. Also give a version for the (real-valued) measure of a union of sets. ESTIMATED CHANGES Modified Mathlib/Combinatorics/Enumerative/InclusionExclusion.lean + theorem Finset.indicator_biUnion_eq_sum_powerset + theorem Finset.prod_indicator_biUnion_finset_sub_indicator +/- theorem Finset.prod_indicator_biUnion_sub_indicator Modified Mathlib/MeasureTheory/Integral/Bochner/Set.lean + theorem MeasureTheory.integral_biUnion_eq_sum_powerset + theorem MeasureTheory.measureReal_biUnion_eq_sum_powerset + theorem MeasureTheory.setIntegral_one_eq_measureReal 2025-08-04 13:09:24 c9b162d feat: T1 Alexandrov-discrete topology is discrete (#27019) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Topology/Separation/AlexandrovDiscrete.lean + theorem nhdsKer_eq_of_t1Space 2025-08-04 12:20:59 a4491fa feat: `erw?` supports all arguments that `erw` does (#27751) This PR teaches `erw?` how to deal with multiple arguments and how to rewrite at a hypothesis, so that it can be used everywhere that `erw` can. (And ideally `erw` can then be removed from those places.) In addition to the new tests, I picked a few places in the library to run as test cases with more complicated terms (but `extract_goals` didn't really work there...) ESTIMATED CHANGES Modified Mathlib/Tactic/ErwQuestion.lean + def Mathlib.Tactic.Erw?.extractRewriteHypEq Modified MathlibTest/ErwQuestion.lean + def c + theorem f_c 2025-08-04 11:36:38 f3de9dd feat: circle averages commute with composition by continuous linear maps (#27930) Establish that circle averages commute with composition by continuous linear maps. ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Integral/CircleAverage.lean + theorem ContinuousLinearMap.circleAverage_comp_comm 2025-08-04 11:25:44 1878598 chore(RingTheory/Localization/AtPrime): add deprecated module (#27796) This is the follow-up PR of #27795 adding the deprecated module after the file was moved. ESTIMATED CHANGES Added Mathlib.RingTheory.Localization.AtPrime.lean 2025-08-04 10:55:30 6dad0cd fix(Data/BitVec): remove a `SMul` instance diamond (#27581) When the `Nat`- and `Int`-action typeclasses and their instances were upstreamed, they changed to a different (and worse) defeq. This removes the mathlib instances and proves the old defeq still holds propositionally. Also move some theorems out of the `BitVec` file that are not about `BitVec` at all, and are about `Fin`. ESTIMATED CHANGES Modified Mathlib/Data/BitVec.lean +/- theorem BitVec.toFin_intCast +/- theorem BitVec.toFin_nsmul +/- theorem BitVec.toFin_zsmul 2025-08-04 10:55:28 2adba24 feat: Submodule.smul_one_eq_span (#27549) ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/Operations.lean + theorem Submodule.smul_one_eq_span 2025-08-04 10:34:22 00fb258 chore(AbstractCompletion): universe polymorphism (#27762) ESTIMATED CHANGES Modified Mathlib/Topology/UniformSpace/AbstractCompletion.lean +/- theorem AbstractCompletion.compare_comp_eq_compare + structure AbstractCompletion.{v, - structure AbstractCompletion 2025-08-04 09:17:12 f7eb4c0 chore(Quot): fix `Quotient.liftOn₂_mk` (#27303) ESTIMATED CHANGES Modified Mathlib/Data/Quot.lean +/- theorem Quotient.liftOn₂_mk 2025-08-04 08:26:11 d19971e chore: correctly indent enumeration items in doc-strings (#27899) Continuation of #24166. Works towards the linter in #27897. ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Hom/CompTypeclasses.lean Modified Mathlib/Algebra/GroupWithZero/Range.lean Modified Mathlib/Algebra/Order/Antidiag/Nat.lean Modified Mathlib/Analysis/Normed/Unbundled/InvariantExtension.lean Modified Mathlib/Analysis/NormedSpace/PiTensorProduct/ProjectiveSeminorm.lean Modified Mathlib/CategoryTheory/Bicategory/NaturalTransformation/Oplax.lean Modified Mathlib/CategoryTheory/Bicategory/NaturalTransformation/Pseudo.lean Modified Mathlib/CategoryTheory/Equivalence.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Pullback/Mono.lean Modified Mathlib/CategoryTheory/Limits/Types/ColimitType.lean Modified Mathlib/CategoryTheory/Monoidal/DayConvolution/Closed.lean Modified Mathlib/CategoryTheory/Sites/SheafCohomology/Basic.lean Modified Mathlib/CategoryTheory/Subobject/NoetherianObject.lean Modified Mathlib/CategoryTheory/Triangulated/Subcategory.lean Modified Mathlib/FieldTheory/AxGrothendieck.lean Modified Mathlib/Geometry/Manifold/IsManifold/ExtChartAt.lean Modified Mathlib/GroupTheory/GroupAction/MultiplePrimitivity.lean Modified Mathlib/GroupTheory/GroupAction/MultipleTransitivity.lean Modified Mathlib/GroupTheory/GroupAction/SubMulAction/OfStabilizer.lean Modified Mathlib/GroupTheory/SpecificGroups/Alternating/KleinFour.lean Modified Mathlib/InformationTheory/Hamming.lean Modified Mathlib/Logic/Relator.lean Modified Mathlib/MeasureTheory/Covering/VitaliFamily.lean Modified Mathlib/NumberTheory/Cyclotomic/Three.lean Modified Mathlib/NumberTheory/EllipticDivisibilitySequence.lean Modified Mathlib/NumberTheory/NumberField/CanonicalEmbedding/Basic.lean Modified Mathlib/NumberTheory/NumberField/CanonicalEmbedding/FundamentalCone.lean Modified Mathlib/NumberTheory/NumberField/FinitePlaces.lean Modified Mathlib/NumberTheory/NumberField/ProductFormula.lean Modified Mathlib/NumberTheory/NumberField/Units/Basic.lean Modified Mathlib/NumberTheory/Padics/PadicVal/Basic.lean Modified Mathlib/Order/SuccPred/Basic.lean Modified Mathlib/RingTheory/DividedPowers/Basic.lean Modified Mathlib/RingTheory/Ideal/IsPrincipal.lean Modified Mathlib/RingTheory/PowerBasis.lean Modified Mathlib/RingTheory/SimpleModule/Basic.lean Modified Mathlib/RingTheory/TensorProduct/DirectLimitFG.lean Modified Mathlib/RingTheory/Valuation/Discrete/Basic.lean Modified Mathlib/RingTheory/Valuation/Extension.lean Modified Mathlib/RingTheory/ZMod/UnitsCyclic.lean Modified Mathlib/Topology/Algebra/RestrictedProduct/TopologicalSpace.lean Modified Mathlib/Topology/Homotopy/HSpaces.lean Modified Mathlib/Topology/VectorBundle/Riemannian.lean 2025-08-04 07:37:41 1f48e1a feat(Probability): lemmas about `Kernel.discard` (#27584) ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Measure/GiryMonad.lean + theorem Measurable.smul_measure Modified Mathlib/Probability/Kernel/Basic.lean + theorem ProbabilityTheory.Kernel.discard_eq_const Modified Mathlib/Probability/Kernel/Composition/Comp.lean + theorem ProbabilityTheory.Kernel.comp_discard' Modified Mathlib/Probability/Kernel/Composition/MeasureComp.lean + theorem MeasureTheory.Measure.discard_comp 2025-08-04 07:19:15 463ee10 feat(LocallyIntegrable): generalise the first half of the file to enorms (#27457) ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Function/LocallyIntegrable.lean +/- theorem MeasureTheory.LocallyIntegrable.aestronglyMeasurable +/- theorem MeasureTheory.LocallyIntegrable.indicator +/- theorem MeasureTheory.LocallyIntegrable.integrableOn_isCompact +/- theorem MeasureTheory.LocallyIntegrable.integrableOn_nhds_isCompact +/- theorem MeasureTheory.LocallyIntegrable.mono + theorem MeasureTheory.LocallyIntegrable.mono_enorm +/- def MeasureTheory.LocallyIntegrable +/- theorem MeasureTheory.LocallyIntegrableOn.aestronglyMeasurable + theorem MeasureTheory.LocallyIntegrableOn.enorm +/- theorem MeasureTheory.LocallyIntegrableOn.integrableOn_compact_subset +/- theorem MeasureTheory.LocallyIntegrableOn.integrableOn_isCompact +/- theorem MeasureTheory.LocallyIntegrableOn.mono + theorem MeasureTheory.LocallyIntegrableOn.mono_enorm +/- theorem MeasureTheory.LocallyIntegrableOn.norm +/- def MeasureTheory.LocallyIntegrableOn +/- theorem MeasureTheory.MemLp.locallyIntegrable +/- theorem MeasureTheory.integrable_iff_integrableAtFilter_atBot_atTop + theorem MeasureTheory.locallyIntegrableOn_const_enorm +/- theorem MeasureTheory.locallyIntegrableOn_iff +/- theorem MeasureTheory.locallyIntegrableOn_zero + theorem MeasureTheory.locallyIntegrable_const_enorm +/- theorem MeasureTheory.locallyIntegrable_finset_sum' +/- theorem MeasureTheory.locallyIntegrable_finset_sum +/- theorem MeasureTheory.locallyIntegrable_iff +/- theorem MeasureTheory.locallyIntegrable_map_homeomorph +/- theorem MeasureTheory.locallyIntegrable_zero Modified Mathlib/MeasureTheory/Integral/IntegrableOn.lean +/- theorem MeasureTheory.IntegrableAtFilter.sup_iff +/- theorem MeasureTheory.integrableAtFilter_top 2025-08-04 04:41:52 1c99940 chore: run `lake update`, and include fixes for batteries#1306 (#27920) ESTIMATED CHANGES Modified Mathlib/Data/Prod/Lex.lean Modified Mathlib/Order/Defs/LinearOrder.lean Modified Mathlib/Order/ULift.lean Modified Mathlib/Tactic/CC/Datatypes.lean Modified lake-manifest.json 2025-08-04 03:44:19 ad58550 chore: golf `NormedSpace.sphere_nonempty` (#27910) This result has nothing to do with pointwise operators on sets, and in finding the right file I also found a lemma which golfs it. The motivation here was wanting this lemma in the file about operator norms. ESTIMATED CHANGES Modified Mathlib/Analysis/NormedSpace/Pointwise.lean - theorem NormedSpace.sphere_nonempty Modified Mathlib/Analysis/NormedSpace/RCLike.lean Modified Mathlib/Analysis/NormedSpace/Real.lean + theorem NormedSpace.sphere_nonempty 2025-08-04 03:44:18 c2f6df0 chore(Algebra/BigOperators): golf entire `sum_ite_self_eq'` using `simp` (#27906) ESTIMATED CHANGES Modified Mathlib/Algebra/BigOperators/Finsupp/Basic.lean 2025-08-04 03:44:16 da23cf5 chore(Algebra/Order): golf `smul_nonneg_iff_pos_imp_nonneg` using `grind` (#27905) ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Module/Defs.lean 2025-08-04 03:44:14 d7c6608 chore: move Fin lemmas out of the BitVec file (#27904) This lemma doesn't belong in a file about BitVec, it's part of the ring structure on Fin. One of the proofs can be greatly golfed. ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Fin/Basic.lean + theorem Fin.intCast_def' Modified Mathlib/Data/BitVec.lean - theorem Fin.intCast_def' - theorem Fin.val_intCast Modified Mathlib/Data/ZMod/Defs.lean + theorem Fin.val_intCast 2025-08-04 03:10:04 d0a5f7b chore(Order/Defs/PartialOrder): remove low priority for `Trans` instances (#27894) These `Trans` instances are good instances and have no reason to be low priority. ESTIMATED CHANGES Modified Mathlib/Order/Defs/PartialOrder.lean 2025-08-04 02:54:35 f39ef1e chore: update create-adaptation-pr to reflect new release cycle (#27921) ESTIMATED CHANGES Modified scripts/create-adaptation-pr.sh 2025-08-04 02:27:11 4f3dfda chore: golf using `grind [Function.*]` (#27891) ESTIMATED CHANGES Modified Mathlib/Analysis/Calculus/FDeriv/Analytic.lean Modified Mathlib/Analysis/Meromorphic/FactorizedRational.lean Modified Mathlib/Analysis/NormedSpace/PiTensorProduct/InjectiveSeminorm.lean Modified Mathlib/LinearAlgebra/Multilinear/Basic.lean Modified Mathlib/MeasureTheory/Function/L1Space/Integrable.lean Modified Mathlib/MeasureTheory/Integral/Marginal.lean 2025-08-04 02:27:10 ba52289 chore(GroupTheory/Coxeter): golf `getElem_alternatingWord` using `grind […]` (#27860) ESTIMATED CHANGES Modified Mathlib/GroupTheory/Coxeter/Basic.lean 2025-08-04 02:07:46 c2a062b feat(LinearAlgebra/AffineSpace): affine combinations and spans of images (#26822) Add two lemmas about affine combinations and the spans of points in a subset of an indexed family. ```lean /-- A point in the `affineSpan` of a subset of an indexed family is an `affineCombination` with sum of weights 1, using only points in the given subset. -/ lemma eq_affineCombination_of_mem_affineSpan_image {p₁ : P} {p : ι → P} {s : Set ι} (h : p₁ ∈ affineSpan k (p '' s)) : ∃ (fs : Finset ι) (w : ι → k), ↑fs ⊆ s ∧ ∑ i ∈ fs, w i = 1 ∧ p₁ = fs.affineCombination k p w := by ``` ```lean /-- If an affine combination of affinely independent points lies in the affine span of a subset of those points, all weights outside that subset are zero. -/ lemma AffineIndependent.eq_zero_of_affineCombination_mem_affineSpan {p : ι → P} (ha : AffineIndependent k p) {fs : Finset ι} {w : ι → k} (hw : ∑ i ∈ fs, w i = 1) {s : Set ι} (hm : fs.affineCombination k p w ∈ affineSpan k (p '' s)) {i : ι} (hifs : i ∈ fs) (his : i ∉ s) : w i = 0 := by ``` ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/AffineSpace/Combination.lean + theorem eq_affineCombination_of_mem_affineSpan_image Modified Mathlib/LinearAlgebra/AffineSpace/Independent.lean + theorem AffineIndependent.eq_zero_of_affineCombination_mem_affineSpan 2025-08-04 00:31:17 14fa623 chore(Algebra/Polynomial): golf entire `natDegree_X_pow_add_C` using `simp` (#27908) ESTIMATED CHANGES Modified Mathlib/Algebra/Polynomial/Degree/Operations.lean 2025-08-03 23:41:51 2b34ec4 feat: start adding `@[grind]` annotations for `Finset` (#27818) Add `@[grind =]` for all the `mem_X` theorems for operations `X` on `Finset`, and golf some proofs. ESTIMATED CHANGES Modified Archive/Imo/Imo1998Q2.lean Modified Archive/Imo/Imo2013Q1.lean Modified Archive/Imo/Imo2021Q1.lean Modified Archive/Imo/Imo2024Q3.lean Modified Counterexamples/ZeroDivisorsInAddMonoidAlgebras.lean Modified Mathlib/Algebra/BigOperators/Associated.lean Modified Mathlib/Algebra/BigOperators/Finprod.lean Modified Mathlib/Algebra/BigOperators/Group/Finset/Basic.lean Modified Mathlib/Algebra/GeomSum.lean Modified Mathlib/Algebra/GradedMonoid.lean Modified Mathlib/Algebra/Lie/Weights/RootSystem.lean Modified Mathlib/Algebra/Module/LinearMap/Polynomial.lean Modified Mathlib/Algebra/MonoidAlgebra/Support.lean Modified Mathlib/Algebra/MvPolynomial/Variables.lean Modified Mathlib/Algebra/Order/Archimedean/Class.lean Modified Mathlib/Combinatorics/Hall/Basic.lean Modified Mathlib/Combinatorics/SetFamily/KruskalKatona.lean Modified Mathlib/Computability/PostTuringMachine.lean Modified Mathlib/Data/FinEnum.lean Modified Mathlib/Data/Finset/Attach.lean Modified Mathlib/Data/Finset/Basic.lean +/- theorem Finset.disjUnion_eq_union +/- theorem Finset.erase_cons +/- theorem Finset.erase_insert +/- theorem Finset.erase_insert_eq_erase +/- theorem Finset.erase_inter +/- theorem Finset.erase_inter_comm +/- theorem Finset.erase_sdiff_comm +/- theorem Finset.erase_singleton +/- theorem Finset.erase_ssubset +/- theorem Finset.filter_and +/- theorem Finset.filter_inter +/- theorem Finset.filter_not +/- theorem Finset.filter_or +/- theorem Finset.filter_singleton +/- theorem Finset.filter_union +/- theorem Finset.filter_union_right +/- theorem Finset.insert_erase +/- theorem Finset.inter_erase +/- theorem Finset.inter_filter +/- theorem Finset.range_filter_eq +/- theorem Finset.sdiff_eq_filter +/- theorem Finset.sdiff_singleton_eq_erase +/- theorem Finset.subset_insert_iff Modified Mathlib/Data/Finset/Defs.lean Modified Mathlib/Data/Finset/Disjoint.lean Modified Mathlib/Data/Finset/Empty.lean +/- theorem Finset.coe_empty +/- theorem Finset.coe_eq_empty +/- theorem Finset.eq_empty_iff_forall_notMem +/- theorem Finset.forall_mem_empty_iff +/- theorem Finset.not_ssubset_empty Modified Mathlib/Data/Finset/Erase.lean +/- theorem Finset.coe_erase +/- theorem Finset.eq_of_mem_of_notMem_erase +/- theorem Finset.subset_erase Modified Mathlib/Data/Finset/Filter.lean +/- theorem Finset.Finset.filter_filter +/- theorem Finset.Finset.filter_ssubset Modified Mathlib/Data/Finset/Image.lean +/- theorem Finset.coe_map +/- theorem Finset.coe_map_subset_range +/- theorem Finset.image_singleton Modified Mathlib/Data/Finset/Insert.lean +/- theorem Finset.coe_eq_singleton +/- theorem Finset.coe_insert +/- theorem Finset.coe_pair +/- theorem Finset.coe_singleton +/- theorem Finset.coe_subset_singleton +/- theorem Finset.insert_comm +/- theorem Finset.insert_idem +/- theorem Finset.insert_subset_iff +/- theorem Finset.insert_subset_insert +/- theorem Finset.singleton_subset_coe +/- theorem Finset.ssubset_singleton_iff Modified Mathlib/Data/Finset/Lattice/Basic.lean +/- theorem Finset.forall_mem_union +/- theorem Finset.inter_assoc +/- theorem Finset.inter_comm +/- theorem Finset.inter_left_comm +/- theorem Finset.inter_right_comm +/- theorem Finset.inter_subset_inter +/- theorem Finset.subset_inter +/- theorem Finset.union_inter_cancel_left +/- theorem Finset.union_inter_cancel_right Modified Mathlib/Data/Finset/Powerset.lean +/- theorem Finset.mem_powersetCard Modified Mathlib/Data/Finset/Prod.lean +/- theorem Finset.diag_insert +/- theorem Finset.diag_inter +/- theorem Finset.diag_singleton +/- theorem Finset.diag_union +/- theorem Finset.inter_product +/- theorem Finset.product_inter +/- theorem Finset.product_sdiff_diag +/- theorem Finset.product_sdiff_offDiag +/- theorem Finset.product_union +/- theorem Finset.union_product Modified Mathlib/Data/Finset/Range.lean Modified Mathlib/Data/Finset/SDiff.lean +/- theorem Finset.cons_sdiff_cons +/- theorem Finset.insert_sdiff_cancel +/- theorem Finset.insert_sdiff_of_mem +/- theorem Finset.inter_sdiff_self +/- theorem Finset.notMem_sdiff_of_mem_right Modified Mathlib/Data/Finset/Union.lean +/- theorem Finset.biUnion_mono +/- theorem Finset.biUnion_singleton +/- theorem Finset.biUnion_singleton_eq_self +/- theorem Finset.biUnion_subset +/- theorem Finset.mem_biUnion +/- theorem Finset.mem_disjiUnion +/- theorem Finset.singleton_biUnion +/- theorem Finset.subset_biUnion_of_mem Modified Mathlib/Data/Fintype/Defs.lean Modified Mathlib/RingTheory/Coprime/Lemmas.lean Modified Mathlib/RingTheory/MvPolynomial/Homogeneous.lean Modified Mathlib/RingTheory/Polynomial/Basic.lean Modified Mathlib/RingTheory/WittVector/Defs.lean Modified Mathlib/RingTheory/WittVector/StructurePolynomial.lean Modified Mathlib/Topology/Category/Profinite/CofilteredLimit.lean Modified Mathlib/Topology/Category/TopCat/Limits/Konig.lean 2025-08-03 23:27:18 702b073 chore: mark Polynomial.differentiable fun_prop (#27807) And remove a superfluous `local fun_prop` tag: Complex.continuous_abs is already marked fun_prop. ESTIMATED CHANGES Modified Mathlib/Analysis/Calculus/Deriv/Polynomial.lean Modified Mathlib/NumberTheory/Transcendental/Lindemann/AnalyticalPart.lean 2025-08-03 21:39:59 ad1449f feat: a finite union of proper submodules is a proper subset (#27598) (provided the coefficients are a sufficiently large field). ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Module/Submodule/Union.lean + theorem Module.Dual.exists_forall_mem_ne_zero_of_forall_exists + theorem Module.Dual.exists_forall_ne_zero_of_forall_exists + theorem Submodule.exists_forall_notMem_of_forall_ne_top + theorem Submodule.iUnion_ssubset_of_forall_ne_top_of_card_lt Modified Mathlib/Data/ENat/Basic.lean + theorem ENat.natCast_lt_succ Modified Mathlib/Data/Finset/Card.lean Modified Mathlib/Data/Set/Card.lean + theorem Function.Injective.encard_range + theorem Set.encard_ne_add_one + theorem Set.exists_ne_map_eq_of_encard_lt_of_maps_to 2025-08-03 20:32:58 5341ca3 chore(Topology/EMetricSpace/BoundedVariation): golf `add_point` using `grind [Finset.*]` (#27561) ESTIMATED CHANGES Modified Mathlib/Topology/EMetricSpace/BoundedVariation.lean 2025-08-03 20:04:06 d0a6ba2 feat(Probability): `posterior_eq_withDensity_of_countable` (#27585) This PR adds a simpler version of `posterior_eq_withDensity` for the case of a countable space. ESTIMATED CHANGES Modified Mathlib/Probability/Kernel/Posterior.lean + theorem ProbabilityTheory.posterior_eq_withDensity_of_countable 2025-08-03 20:04:04 92a8321 feat(Tactic): dependent rewriting ct'd (#26835) Add dependent rewrite tactics `rw!` and `rewrite!`. These operate by inserting casts in front of terms that would otherwise become type-incorrect after the rewrite. In the default mode, only proof terms are casted, so that (by proof irrelevance) no observable complexity is added. In the most liberal mode, the tactics never encounter the 'motive is not type correct' error, but may add casts that make the goal or other term very complex. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Tactic.lean Added Mathlib/Tactic/DepRewrite.lean + def Lean.MVarId.depRewrite + def Mathlib.Tactic.DepRewrite.CastMode.toNat + inductive Mathlib.Tactic.DepRewrite.CastMode + structure Mathlib.Tactic.DepRewrite.Config + structure Mathlib.Tactic.DepRewrite.Context + def Mathlib.Tactic.DepRewrite.Conv.depRewriteTarget + def Mathlib.Tactic.DepRewrite.Conv.depRwLocalDecl + def Mathlib.Tactic.DepRewrite.Conv.depRwTarget + def Mathlib.Tactic.DepRewrite.Conv.evalDepRewriteSeq + def Mathlib.Tactic.DepRewrite.Conv.evalDepRwSeq + def Mathlib.Tactic.DepRewrite.canUseCache + def Mathlib.Tactic.DepRewrite.castBack? + def Mathlib.Tactic.DepRewrite.castFwd + def Mathlib.Tactic.DepRewrite.checkCastAllowed + def Mathlib.Tactic.DepRewrite.dabstract + theorem Mathlib.Tactic.DepRewrite.dcongrArg.{u, + def Mathlib.Tactic.DepRewrite.depRewriteLocalDecl + def Mathlib.Tactic.DepRewrite.depRewriteTarget + def Mathlib.Tactic.DepRewrite.evalDepRewriteSeq + def Mathlib.Tactic.DepRewrite.evalDepRwSeq + theorem Mathlib.Tactic.DepRewrite.heqL.{u} + theorem Mathlib.Tactic.DepRewrite.heqR.{u} + theorem Mathlib.Tactic.DepRewrite.nddcongrArg.{u, + def Mathlib.Tactic.DepRewrite.zetaDelta Added MathlibTest/depRewrite.lean + theorem bool_dep_test + theorem let_defeq_test 2025-08-03 19:53:58 cc4f2b6 feat(RatFunc): theorems algebraMap polynomial (#27822) Two simple lemmas about the `algebraMap` from `F[X]` to `RatFunc F`: - A `monomial n a` is `C a * X ^ n` (here we are using `RatFunc.X` and `RatFunc.C`.) - The algebraMap from `F[X]` to `RatFunc F` is the same as the evaluation of a polynomial `p` at `RatFunc.X`. ESTIMATED CHANGES Modified Mathlib/FieldTheory/RatFunc/AsPolynomial.lean + theorem RatFunc.aeval_X_left_eq_algebraMap + theorem RatFunc.algebraMap_monomial 2025-08-03 18:35:45 807a66a chore(RingTheory/Localization/AtPrime): move file to `RingTheory/Localization/AtPrime/Basic.lean` (#27795) Create the directory `Mathlib/RingTheory/Localization/AtPrime` and move the file `Mathlib/RingTheory/Localization/AtPrime.lean` to `Mathlib/RingTheory/Localization/AtPrime/Basic.lean`. This is needed to make way for the new file `Mathlib/RingTheory/Localization/AtPrime/Extension.lean` in #27706 since the results of this file cannot be added to the file `Mathlib/RingTheory/Localization/AtPrime.lean` because of circular dependencies. The deprecated module is added in the following PR: #27796 ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/AlgebraicGeometry/StructureSheaf.lean Modified Mathlib/RingTheory/GradedAlgebra/HomogeneousLocalization.lean Modified Mathlib/RingTheory/Ideal/AssociatedPrime/Localization.lean Modified Mathlib/RingTheory/Ideal/GoingUp.lean Modified Mathlib/RingTheory/Ideal/MinimalPrime/Localization.lean Modified Mathlib/RingTheory/LocalProperties/Basic.lean Modified Mathlib/RingTheory/LocalProperties/Submodule.lean Modified Mathlib/RingTheory/LocalRing/LocalSubring.lean Modified Mathlib/RingTheory/LocalRing/ResidueField/Ideal.lean Renamed Mathlib/RingTheory/Localization/AtPrime.lean to Mathlib/RingTheory/Localization/AtPrime/Basic.lean Modified Mathlib/RingTheory/Localization/LocalizationLocalization.lean Modified Mathlib/RingTheory/SurjectiveOnStalks.lean 2025-08-03 18:35:44 c593536 feat: random variables are independent iff their joint distribution is the product measure (#26265) Also prove that random variables are independent iff any finite subfamily is independent. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/MeasureTheory/Measure/MeasureSpaceDef.lean Modified Mathlib/Probability/Independence/Basic.lean - theorem ProbabilityTheory.iIndepFun.congr + theorem ProbabilityTheory.iIndepFun_congr + theorem ProbabilityTheory.iIndepFun_iff_finset Added Mathlib/Probability/Independence/InfinitePi.lean + theorem ProbabilityTheory.iIndepFun_iff_map_fun_eq_infinitePi_map + theorem ProbabilityTheory.iIndepFun_iff_map_fun_eq_infinitePi_map₀' + theorem ProbabilityTheory.iIndepFun_iff_map_fun_eq_infinitePi_map₀ Modified Mathlib/Probability/Independence/Kernel.lean + theorem ProbabilityTheory.Kernel.iIndepFun_congr' 2025-08-03 18:11:09 c484c5f chore(Topology/Algebra/Support): misc. clean-ups; rename `HasCompactSupport.inv'` to `inv` (#27788) Companion to #27777. ESTIMATED CHANGES Modified Mathlib/Analysis/Convolution.lean Modified Mathlib/Topology/Algebra/Support.lean +/- theorem HasCompactMulSupport.intro' +/- theorem HasCompactMulSupport.intro +/- theorem HasCompactMulSupport.isCompact +/- theorem HasCompactMulSupport.isCompact_preimage +/- theorem HasCompactMulSupport.mono' +/- theorem HasCompactMulSupport.mono +/- theorem HasCompactMulSupport.of_mulSupport_subset_isCompact Modified Mathlib/Topology/ContinuousMap/BoundedCompactlySupported.lean 2025-08-03 17:30:38 bb17ed7 doc(MeasureTheory/VectorMeasure/Basic): correct docstring (#27902) The old docstring refers to real numbers and a signed measure, while actually the definition is about a general scalar and a vector measure. This PR just corrects it. ESTIMATED CHANGES Modified Mathlib/MeasureTheory/VectorMeasure/Basic.lean 2025-08-03 17:11:31 97ed883 refactor: group matrix norm instance behind scopes (#27855) It's possible that type synonyms are worth exploring here, but this is strictly better than the status quo where it can be easy to forget one of this family of instances. ESTIMATED CHANGES Modified Mathlib/Analysis/CStarAlgebra/CStarMatrix.lean Modified Mathlib/Analysis/CStarAlgebra/Matrix.lean Modified Mathlib/Analysis/Matrix.lean Modified Mathlib/Analysis/Normed/Algebra/MatrixExponential.lean 2025-08-03 17:11:29 504fcfc feat: one implication of portmanteau theorem for countably generated filters (#27681) Also weaken a few assumptions in this file from metric spaces to metrizable spaces. ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Measure/Portmanteau.lean + theorem MeasureTheory.ProbabilityMeasure.tendsto_measure_of_isClopen_of_tendsto +/- theorem MeasureTheory.tendsto_of_forall_isOpen_le_liminf + theorem MeasureTheory.tendsto_of_forall_isOpen_le_liminf_nat 2025-08-03 16:22:25 b32c13f chore(Logic/Equiv/Defs): avoid importing `PartialOrder` (#27888) I noticed that the defitinion of `Equiv` imports `ParitalOrder`, which is suspicious, and easy to fix. ESTIMATED CHANGES Modified Mathlib/Control/Traversable/Equiv.lean Modified Mathlib/Data/Nat/Bitwise.lean Modified Mathlib/Logic/Equiv/Defs.lean Modified scripts/noshake.json 2025-08-03 15:47:39 df4985f chore: fix wrong namespacing of `Tendsto.num` (#27893) Spotted by using the docs. ESTIMATED CHANGES Modified Mathlib/Analysis/Normed/Unbundled/SmoothingSeminorm.lean Modified Mathlib/Analysis/SpecificLimits/Basic.lean + theorem Filter.Tendsto.den + theorem Filter.Tendsto.num + theorem Filter.Tendsto.num_atTop_iff_den_atTop - theorem Tendsto.den - theorem Tendsto.num - theorem Tendsto.num_atTop_iff_den_atTop 2025-08-03 14:43:11 dce8c77 feat(Algebra/AddTorsor/Basic) vadd_vsub_vadd_comm (#27865) Add `vadd_vsub_vadd_comm` ```lean theorem vadd_vsub_vadd_comm (v₁ v₂ : G) (p₁ p₂ : P) : (v₁ +ᵥ p₁) -ᵥ (v₂ +ᵥ p₂) = (v₁ - v₂) + (p₁ -ᵥ p₂) := by rw [vsub_vadd_eq_vsub_sub, vadd_vsub_assoc, add_sub_assoc, ← add_comm_sub] ``` ESTIMATED CHANGES Modified Mathlib/Algebra/AddTorsor/Basic.lean + theorem sub_add_vsub_comm + theorem vadd_vsub_vadd_comm 2025-08-03 13:56:34 9c8cd41 chore: further golf some previously `grind` golfed proofs (#27492) Replaces #27431, #27426, #27408 and #27404. It is probably safer to go with local `grind [t1, t2, …]` for now and leave global `@[grind =, etc.] theorem t1 …` annotations for later. I guess the local `grind [t1, t2, …]` uses can help guide which `t1`, `t2`, etc are worth to annotate "globally". ESTIMATED CHANGES Modified Mathlib/Algebra/BigOperators/Group/Finset/Basic.lean Modified Mathlib/LinearAlgebra/LinearPMap.lean Modified Mathlib/RingTheory/DividedPowers/Basic.lean Modified Mathlib/Topology/EMetricSpace/BoundedVariation.lean 2025-08-03 13:34:42 8391674 chore(Algebra/PresentedMonoid): golf `ext` using `grind [Set.eqOn_range]` (#27811) ESTIMATED CHANGES Modified Mathlib/Algebra/PresentedMonoid/Basic.lean 2025-08-03 13:34:40 0eeed42 chore(Topology/EMetricSpace/BoundedVariation): golf `add_le_union` using `grind [Finset.*]` (#27563) ESTIMATED CHANGES Modified Mathlib/Topology/EMetricSpace/BoundedVariation.lean 2025-08-03 13:11:57 a69a29e chore: golf Computability/ using `grind` (#26693) ESTIMATED CHANGES Modified Mathlib/Computability/Language.lean Modified Mathlib/Computability/Partrec.lean Modified Mathlib/Computability/PostTuringMachine.lean Modified Mathlib/Computability/Primrec.lean Modified Mathlib/Computability/RegularExpressions.lean 2025-08-03 13:11:55 94f078c chore: golf Combinatorics/ using `grind` (#26689) ESTIMATED CHANGES Modified Mathlib/Combinatorics/Enumerative/Composition.lean Modified Mathlib/Combinatorics/Enumerative/DyckWord.lean Modified Mathlib/Combinatorics/Hall/Finite.lean Modified Mathlib/Combinatorics/SimpleGraph/Connectivity/WalkCounting.lean Modified Mathlib/Combinatorics/SimpleGraph/Paths.lean Modified Mathlib/Combinatorics/SimpleGraph/Subgraph.lean Modified Mathlib/Combinatorics/SimpleGraph/Trails.lean Modified Mathlib/Combinatorics/SimpleGraph/Triangle/Counting.lean 2025-08-03 11:15:35 6d381c1 chore: golf Algebra/ using `grind` (#26726) ESTIMATED CHANGES Modified Mathlib/Algebra/BigOperators/Group/Finset/Piecewise.lean Modified Mathlib/Algebra/BigOperators/Group/List/Lemmas.lean Modified Mathlib/Algebra/ContinuedFractions/Computation/CorrectnessTerminating.lean Modified Mathlib/Algebra/ContinuedFractions/ConvergentsEquiv.lean Modified Mathlib/Algebra/ContinuedFractions/Determinant.lean Modified Mathlib/Algebra/Group/UniqueProds/Basic.lean Modified Mathlib/Algebra/Homology/HomotopyCategory/HomComplex.lean Modified Mathlib/Algebra/Homology/TotalComplexShift.lean Modified Mathlib/Algebra/IsPrimePow.lean Modified Mathlib/Algebra/Module/Submodule/Range.lean Modified Mathlib/Algebra/MonoidAlgebra/Defs.lean Modified Mathlib/Algebra/MvPolynomial/CommRing.lean Modified Mathlib/Algebra/Order/Antidiag/Nat.lean Modified Mathlib/Algebra/Order/BigOperators/Group/List.lean Modified Mathlib/Algebra/Order/BigOperators/GroupWithZero/List.lean Modified Mathlib/Algebra/Order/CompleteField.lean Modified Mathlib/Algebra/Polynomial/Coeff.lean Modified Mathlib/Algebra/Polynomial/Div.lean Modified Mathlib/Algebra/Polynomial/HasseDeriv.lean Modified Mathlib/Algebra/Polynomial/Module/Basic.lean Modified Mathlib/Algebra/Polynomial/UnitTrinomial.lean Modified Mathlib/Algebra/QuadraticDiscriminant.lean Modified Mathlib/Algebra/QuaternionBasis.lean Modified Mathlib/Algebra/TrivSqZeroExt.lean Modified Mathlib/AlgebraicTopology/DoldKan/Homotopies.lean 2025-08-03 10:32:37 ba9a3d1 feat: upgrade lflip to a `LinearEquiv` (#27544) This deletes some `aux` definitions without deprecation. This is helpful for building the version of `DFinsupp.lsum` for bilinear maps. A handful of existing users of `lflip` now need to add an explicit `toLinearMap`. ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/BilinearForm/Basic.lean +/- def LinearMap.BilinForm.flipHom - def LinearMap.BilinForm.flipHomAux - theorem LinearMap.BilinForm.flip_flip_aux Modified Mathlib/LinearAlgebra/BilinearMap.lean + theorem LinearMap.lflip_symm Modified Mathlib/LinearAlgebra/TensorPower/Basic.lean Modified Mathlib/LinearAlgebra/TensorProduct/Associator.lean Modified Mathlib/LinearAlgebra/TensorProduct/Graded/External.lean Modified Mathlib/LinearAlgebra/TensorProduct/Tower.lean Modified Mathlib/RingTheory/PiTensorProduct.lean Modified Mathlib/RingTheory/TensorProduct/Basic.lean 2025-08-03 09:01:23 bfd0ab2 chore: remove redundant arguments to `grind` (#27884) This PR cleans up some `grind` uses that have redundant arguments. I observed that on the one hand new lemmas are getting tagged with `@[grind]`, and on the other hand `grind` is already being used to golf proofs using the same lemmas. Hence this PR. ESTIMATED CHANGES Modified Mathlib/Data/List/OfFn.lean +/- theorem List.mem_ofFn' Modified Mathlib/Geometry/Euclidean/Angle/Oriented/Basic.lean Modified Mathlib/LinearAlgebra/LinearPMap.lean Modified Mathlib/LinearAlgebra/RootSystem/GeckConstruction/Lemmas.lean Modified Mathlib/MeasureTheory/Function/AEMeasurableOrder.lean Modified Mathlib/MeasureTheory/Integral/FinMeasAdditive.lean Modified Mathlib/MeasureTheory/PiSystem.lean Modified Mathlib/Order/ConditionallyCompleteLattice/Finset.lean Modified Mathlib/Probability/Independence/Kernel.lean Modified Mathlib/RingTheory/Smooth/StandardSmoothCotangent.lean Modified Mathlib/Topology/Algebra/IsUniformGroup/Basic.lean Modified Mathlib/Topology/MetricSpace/Completion.lean 2025-08-03 09:01:21 a27c0e5 chore(Data/Int/Interval): use `omega` (#27853) ESTIMATED CHANGES Modified Mathlib/Data/Int/Interval.lean 2025-08-03 09:01:20 69f5298 chore(Algebra/Group): golf `range_eq_image_or_of_mulSupport_subset` using `grind` (#27846) ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Support.lean 2025-08-03 09:01:18 d8afc1e chore(Algebra/BigOperators): golf `prod_list_map_count` using `grind [Finset.prod_congr]` (#27810) ESTIMATED CHANGES Modified Mathlib/Algebra/BigOperators/Group/Finset/Basic.lean 2025-08-03 09:01:16 6de8e14 chore(Algebra): golf `surj_of_gcd_domain`, `toCommMonoid_injective`, `f_eq`, `eq_top_of_invtSubmodule_ne_bot` and `dvd_mul_sub_mul_mul_left_of_dvd` using `grind` (#27808) ESTIMATED CHANGES Modified Mathlib/Algebra/GCDMonoid/IntegrallyClosed.lean Modified Mathlib/Algebra/Group/Ext.lean Modified Mathlib/Algebra/Homology/Embedding/HomEquiv.lean Modified Mathlib/Algebra/Lie/Weights/RootSystem.lean Modified Mathlib/Algebra/Ring/Divisibility/Lemmas.lean 2025-08-03 09:01:14 0f9b012 chore(Algebra/Order): golf `mem_piAntidiag` and `trichotomy_of_mul_eq_mul` using `grind` (#27805) ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Antidiag/Pi.lean Modified Mathlib/Algebra/Order/Monoid/Unbundled/Basic.lean 2025-08-03 09:01:13 a4f01cd chore(Algebra/ContinuedFractions): golf `fib_le_of_contsAux_b`, `sub_convs_eq` and `abs_sub_convs_le` using `grind` (#27803) ESTIMATED CHANGES Modified Mathlib/Algebra/ContinuedFractions/Computation/Approximations.lean 2025-08-03 09:01:12 3e4f5fd chore(Algebra): golf using the `have […] := by grind` pattern (#27802) ESTIMATED CHANGES Modified Mathlib/Algebra/CharP/Defs.lean Modified Mathlib/Algebra/Lie/Engel.lean Modified Mathlib/Algebra/Order/BigOperators/Ring/Finset.lean 2025-08-03 09:01:10 a21923e chore(Algebra/Order+Polynomial): golf entire `sub_self_div_two`, `div_two_sub_self`, `add_two_le_iff_lt_of_even_sub` and `natDegree_pos_of_nextCoeff_ne_zero` using `grind` (#27801) ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Field/Basic.lean Modified Mathlib/Algebra/Order/Ring/Int.lean Modified Mathlib/Algebra/Polynomial/Degree/Lemmas.lean 2025-08-03 09:01:09 fb360ae chore(Topology/Algebra): golf `prod_subset` using `grind [Set.*]` (#27781) ESTIMATED CHANGES Modified Mathlib/Topology/Algebra/Nonarchimedean/Basic.lean 2025-08-03 08:44:44 5bb0db8 chore(Data/Complex): golf `norm_exp_sub_sum_le_norm_mul_exp` using `grind [Finset.*]` (#27728) ESTIMATED CHANGES Modified Mathlib/Data/Complex/Exponential.lean 2025-08-03 07:56:15 3d31f1f chore: replace `norm_num` with `simp` where applicable (#24064) Consider replacing a tactic with a (ahem) simpler alternative. Fairly neutral performance implications, just depends on whether we would like to encourage people to use `simp` where applicable. ESTIMATED CHANGES Modified Archive/Examples/MersennePrimes.lean Modified Archive/Imo/Imo1959Q2.lean Modified Archive/Imo/Imo1960Q1.lean Modified Archive/Imo/Imo1962Q1.lean Modified Archive/Imo/Imo1962Q4.lean Modified Archive/Imo/Imo1981Q3.lean Modified Archive/Imo/Imo1982Q1.lean +/- theorem Imo1982Q1.IsGood.superadditive Modified Archive/Imo/Imo2001Q2.lean Modified Archive/Imo/Imo2005Q4.lean Modified Archive/Imo/Imo2006Q3.lean +/- theorem Imo2006Q3.four_pow_four_pos +/- theorem Imo2006Q3.zero_lt_32 Modified Archive/Imo/Imo2008Q4.lean Modified Archive/Imo/Imo2024Q1.lean Modified Archive/Imo/Imo2024Q5.lean Modified Archive/Imo/Imo2024Q6.lean Modified Archive/Wiedijk100Theorems/AbelRuffini.lean Modified Archive/Wiedijk100Theorems/CubingACube.lean Modified Archive/Wiedijk100Theorems/SumOfPrimeReciprocalsDiverges.lean Modified Counterexamples/Cyclotomic105.lean Modified Counterexamples/Phillips.lean Modified Mathlib/Algebra/Field/NegOnePow.lean Modified Mathlib/Algebra/Homology/HomotopyCategory/MappingCone.lean Modified Mathlib/Algebra/Order/CauSeq/BigOperators.lean Modified Mathlib/Algebra/Polynomial/FieldDivision.lean Modified Mathlib/Algebra/Polynomial/Roots.lean Modified Mathlib/Algebra/Polynomial/SpecificDegree.lean Modified Mathlib/Algebra/Ring/BooleanRing.lean Modified Mathlib/Algebra/Star/CHSH.lean Modified Mathlib/AlgebraicGeometry/EllipticCurve/IsomOfJ.lean Modified Mathlib/AlgebraicTopology/DoldKan/Faces.lean Modified Mathlib/Analysis/Analytic/Inverse.lean Modified Mathlib/Analysis/Asymptotics/AsymptoticEquivalent.lean Modified Mathlib/Analysis/BoxIntegral/UnitPartition.lean Modified Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Basic.lean Modified Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Order.lean Modified Mathlib/Analysis/CStarAlgebra/Module/Defs.lean Modified Mathlib/Analysis/Calculus/FDeriv/Measurable.lean Modified Mathlib/Analysis/Calculus/FDeriv/Norm.lean Modified Mathlib/Analysis/Calculus/FDeriv/Symmetric.lean Modified Mathlib/Analysis/Complex/AbelLimit.lean Modified Mathlib/Analysis/Convex/Between.lean Modified Mathlib/Analysis/Convex/Function.lean Modified Mathlib/Analysis/Convolution.lean Modified Mathlib/Analysis/Fourier/AddCircle.lean Modified Mathlib/Analysis/Fourier/AddCircleMulti.lean Modified Mathlib/Analysis/Fourier/Inversion.lean Modified Mathlib/Analysis/Fourier/RiemannLebesgueLemma.lean Modified Mathlib/Analysis/InnerProductSpace/NormPow.lean Modified Mathlib/Analysis/InnerProductSpace/Projection.lean Modified Mathlib/Analysis/InnerProductSpace/l2Space.lean Modified Mathlib/Analysis/MeanInequalities.lean Modified Mathlib/Analysis/MellinInversion.lean Modified Mathlib/Analysis/Normed/Affine/Simplex.lean Modified Mathlib/Analysis/Normed/Algebra/TrivSqZeroExt.lean Modified Mathlib/Analysis/Normed/Group/ControlledClosure.lean Modified Mathlib/Analysis/Normed/Lp/lpSpace.lean Modified Mathlib/Analysis/Normed/Operator/Banach.lean Modified Mathlib/Analysis/Normed/Ring/Units.lean Modified Mathlib/Analysis/NormedSpace/HahnBanach/Separation.lean Modified Mathlib/Analysis/NormedSpace/MStructure.lean Modified Mathlib/Analysis/NormedSpace/RieszLemma.lean Modified Mathlib/Analysis/Oscillation.lean Modified Mathlib/Analysis/SpecialFunctions/BinaryEntropy.lean Modified Mathlib/Analysis/SpecialFunctions/Complex/Log.lean +/- theorem Complex.two_pi_I_ne_zero Modified Mathlib/Analysis/SpecialFunctions/ContinuousFunctionalCalculus/Rpow/Basic.lean Modified Mathlib/Analysis/SpecialFunctions/ContinuousFunctionalCalculus/Rpow/Isometric.lean Modified Mathlib/Analysis/SpecialFunctions/ExpDeriv.lean Modified Mathlib/Analysis/SpecialFunctions/Gamma/Beta.lean Modified Mathlib/Analysis/SpecialFunctions/Gamma/BohrMollerup.lean Modified Mathlib/Analysis/SpecialFunctions/Gamma/Deligne.lean Modified Mathlib/Analysis/SpecialFunctions/Gaussian/GaussianIntegral.lean Modified Mathlib/Analysis/SpecialFunctions/Integrals/Basic.lean Modified Mathlib/Analysis/SpecialFunctions/Log/Monotone.lean Modified Mathlib/Analysis/SpecialFunctions/Pow/Real.lean Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Angle.lean Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Basic.lean Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Complex.lean Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Inverse.lean Modified Mathlib/Combinatorics/Additive/AP/Three/Behrend.lean Modified Mathlib/Combinatorics/Additive/SmallTripling.lean Modified Mathlib/Combinatorics/Extremal/RuzsaSzemeredi.lean Modified Mathlib/Combinatorics/SimpleGraph/Density.lean Modified Mathlib/Combinatorics/SimpleGraph/Regularity/Bound.lean Modified Mathlib/Combinatorics/SimpleGraph/Regularity/Chunk.lean Modified Mathlib/Combinatorics/SimpleGraph/Regularity/Increment.lean Modified Mathlib/Combinatorics/SimpleGraph/Regularity/Lemma.lean Modified Mathlib/Combinatorics/SimpleGraph/Triangle/Basic.lean Modified Mathlib/Combinatorics/SimpleGraph/Triangle/Counting.lean Modified Mathlib/Computability/Ackermann.lean Modified Mathlib/Computability/DFA.lean Modified Mathlib/Data/Complex/Basic.lean +/- theorem Complex.I_pow_four Modified Mathlib/Data/Complex/Trigonometric.lean Modified Mathlib/Data/Nat/Choose/Central.lean Modified Mathlib/Data/Nat/Choose/Sum.lean Modified Mathlib/Data/Nat/Digits/Defs.lean Modified Mathlib/Data/Real/GoldenRatio.lean Modified Mathlib/Data/Real/Pi/Bounds.lean Modified Mathlib/Data/Real/Pi/Irrational.lean Modified Mathlib/Data/Real/Sign.lean Modified Mathlib/FieldTheory/Finite/Basic.lean Modified Mathlib/Geometry/Euclidean/Angle/Unoriented/RightAngle.lean Modified Mathlib/Geometry/Euclidean/Sphere/SecondInter.lean Modified Mathlib/Geometry/Manifold/GroupLieAlgebra.lean Modified Mathlib/Geometry/Manifold/Instances/Real.lean Modified Mathlib/GroupTheory/Coxeter/Basic.lean Modified Mathlib/GroupTheory/Divisible.lean Modified Mathlib/GroupTheory/SpecificGroups/Alternating.lean Modified Mathlib/GroupTheory/SpecificGroups/Alternating/Centralizer.lean Modified Mathlib/GroupTheory/SpecificGroups/KleinFour.lean Modified Mathlib/LinearAlgebra/AffineSpace/Independent.lean Modified Mathlib/LinearAlgebra/Matrix/SpecialLinearGroup.lean Modified Mathlib/LinearAlgebra/Matrix/ToLinearEquiv.lean Modified Mathlib/LinearAlgebra/Reflection.lean Modified Mathlib/MeasureTheory/Function/Egorov.lean Modified Mathlib/MeasureTheory/Function/UniformIntegrable.lean Modified Mathlib/MeasureTheory/Group/GeometryOfNumbers.lean Modified Mathlib/MeasureTheory/Integral/IntervalIntegral/Basic.lean Modified Mathlib/MeasureTheory/Measure/Doubling.lean Modified Mathlib/MeasureTheory/Measure/Lebesgue/EqHaar.lean Modified Mathlib/MeasureTheory/Measure/Lebesgue/VolumeOfBalls.lean Modified Mathlib/MeasureTheory/Measure/MutuallySingular.lean Modified Mathlib/MeasureTheory/Measure/SeparableMeasure.lean Modified Mathlib/NumberTheory/ADEInequality.lean Modified Mathlib/NumberTheory/ArithmeticFunction.lean Modified Mathlib/NumberTheory/Cyclotomic/Embeddings.lean Modified Mathlib/NumberTheory/Cyclotomic/PID.lean Modified Mathlib/NumberTheory/FLT/Basic.lean Modified Mathlib/NumberTheory/FLT/Four.lean Modified Mathlib/NumberTheory/FLT/Three.lean Modified Mathlib/NumberTheory/FermatPsp.lean Modified Mathlib/NumberTheory/Harmonic/Bounds.lean Modified Mathlib/NumberTheory/Harmonic/EulerMascheroni.lean Modified Mathlib/NumberTheory/Harmonic/GammaDeriv.lean Modified Mathlib/NumberTheory/Harmonic/ZetaAsymp.lean Modified Mathlib/NumberTheory/LSeries/HurwitzZetaEven.lean Modified Mathlib/NumberTheory/LSeries/HurwitzZetaOdd.lean Modified Mathlib/NumberTheory/LSeries/HurwitzZetaValues.lean Modified Mathlib/NumberTheory/LegendreSymbol/JacobiSymbol.lean Modified Mathlib/NumberTheory/LegendreSymbol/QuadraticChar/GaussSum.lean Modified Mathlib/NumberTheory/LucasLehmer.lean Modified Mathlib/NumberTheory/Modular.lean Modified Mathlib/NumberTheory/ModularForms/JacobiTheta/Bounds.lean Modified Mathlib/NumberTheory/ModularForms/JacobiTheta/TwoVariable.lean Modified Mathlib/NumberTheory/Multiplicity.lean Modified Mathlib/NumberTheory/NumberField/CanonicalEmbedding/ConvexBody.lean Modified Mathlib/NumberTheory/NumberField/Discriminant/Basic.lean Modified Mathlib/NumberTheory/NumberField/Units/DirichletTheorem.lean Modified Mathlib/NumberTheory/Padics/Hensel.lean Modified Mathlib/NumberTheory/Padics/PadicIntegers.lean Modified Mathlib/NumberTheory/Padics/PadicNumbers.lean Modified Mathlib/NumberTheory/PythagoreanTriples.lean Modified Mathlib/NumberTheory/SumPrimeReciprocals.lean Modified Mathlib/NumberTheory/SumTwoSquares.lean Modified Mathlib/NumberTheory/ZetaValues.lean Modified Mathlib/Probability/Distributions/Exponential.lean Modified Mathlib/Probability/Kernel/IonescuTulcea/Traj.lean Modified Mathlib/RingTheory/Polynomial/Hermite/Gaussian.lean Modified Mathlib/RingTheory/Polynomial/SmallDegreeVieta.lean Modified Mathlib/Tactic/NormNum/Prime.lean Modified Mathlib/Topology/Homotopy/Basic.lean Modified Mathlib/Topology/Instances/CantorSet.lean Modified Mathlib/Topology/MetricSpace/Gluing.lean Modified Mathlib/Topology/MetricSpace/GromovHausdorff.lean Modified Mathlib/Topology/MetricSpace/Perfect.lean Modified Mathlib/Topology/MetricSpace/PiNat.lean Modified Mathlib/Topology/MetricSpace/Polish.lean Modified Mathlib/Topology/Metrizable/CompletelyMetrizable.lean Modified Mathlib/Topology/Order/LeftRightNhds.lean Modified Mathlib/Topology/Path.lean 2025-08-03 06:14:38 c68fed1 feat: `fun y ↦ x / y` as an involutive equivalence in commutative groups (#27747) ESTIMATED CHANGES Modified Mathlib/Algebra/AddTorsor/Basic.lean + theorem Equiv.pointReflection_eq_subLeft Modified Mathlib/Algebra/Group/Basic.lean + theorem const_div_involutive Modified Mathlib/Algebra/Group/Units/Equiv.lean + theorem Equiv.divLeft_involutive + theorem Equiv.symm_divLeft 2025-08-03 05:11:15 8ebd697 fix(Algebra/Polynomial/FieldDivision): add `protected` to `div_eq_zero_iff` (#27879) Previously, when `Polynomial` was open, the constant `div_eq_zero_iff` would resolve to `Polynomial.div_eq_zero_iff`. This made it hard to reference the constant `div_eq_zero_iff`, which has the same unqualified name. This is fixed by marking `Polynomial.div_eq_zero_iff` as `protected`. ESTIMATED CHANGES Modified Mathlib/Algebra/Polynomial/FieldDivision.lean - theorem Polynomial.div_eq_zero_iff 2025-08-03 03:08:27 0011f41 chore: rename doset to doubleCoset (#27004) ESTIMATED CHANGES Modified Mathlib/GroupTheory/DoubleCoset.lean - def Doset.Quotient - theorem Doset.bot_rel_eq_leftRel - theorem Doset.disjoint_out - def Doset.doset - theorem Doset.doset_eq_image2 - theorem Doset.doset_eq_of_mem - theorem Doset.doset_union_leftCoset - theorem Doset.doset_union_rightCoset - theorem Doset.eq - theorem Doset.eq_of_not_disjoint - theorem Doset.left_bot_eq_left_quot - theorem Doset.mem_doset - theorem Doset.mem_doset_of_not_disjoint - theorem Doset.mem_doset_self - theorem Doset.mk_eq_of_doset_eq - theorem Doset.mk_out_eq_mul - theorem Doset.out_eq' - def Doset.quotToDoset - theorem Doset.rel_bot_eq_right_group_rel - theorem Doset.rel_iff - theorem Doset.right_bot_eq_right_quot - def Doset.setoid - theorem Doset.union_quotToDoset + def DoubleCoset.Quotient + theorem DoubleCoset.bot_rel_eq_leftRel + theorem DoubleCoset.disjoint_out + def DoubleCoset.doubleCoset + theorem DoubleCoset.doubleCoset_eq_image2 + theorem DoubleCoset.doubleCoset_eq_of_mem + theorem DoubleCoset.doubleCoset_union_leftCoset + theorem DoubleCoset.doubleCoset_union_rightCoset + theorem DoubleCoset.eq + theorem DoubleCoset.eq_of_not_disjoint + theorem DoubleCoset.left_bot_eq_left_quot + theorem DoubleCoset.mem_doubleCoset + theorem DoubleCoset.mem_doubleCoset_of_not_disjoint + theorem DoubleCoset.mem_doubleCoset_self + theorem DoubleCoset.mk_eq_of_doubleCoset_eq + theorem DoubleCoset.mk_out_eq_mul + theorem DoubleCoset.out_eq' + def DoubleCoset.quotToDoubleCoset + theorem DoubleCoset.rel_bot_eq_right_group_rel + theorem DoubleCoset.rel_iff + theorem DoubleCoset.right_bot_eq_right_quot + def DoubleCoset.setoid + theorem DoubleCoset.union_quotToDoubleCoset 2025-08-02 22:46:20 d0323fb chore(Algebra/Regular): split Defs out of Basic and redefine IsCancelMul (#27791) Redefine Is(Left/Right)CancelMul(Zero) in terms of Is(Left/Right)Regular. Defeq to the original defs except for argument explicitness/order. Part of #22997 ESTIMATED CHANGES Modified Archive/Imo/Imo2015Q6.lean Modified Mathlib.lean Modified Mathlib/Algebra/Group/Defs.lean + theorem IsLeftRegular.all + theorem IsRegular.all + theorem IsRightRegular.all + theorem isCancelMul_iff_forall_isRegular Modified Mathlib/Algebra/Group/Prod.lean Modified Mathlib/Algebra/Group/TypeTags/Basic.lean Modified Mathlib/Algebra/Group/UniqueProds/Basic.lean Modified Mathlib/Algebra/GroupWithZero/Associated.lean Modified Mathlib/Algebra/GroupWithZero/Basic.lean Modified Mathlib/Algebra/GroupWithZero/Defs.lean + theorem isCancelMulZero_iff_forall_isRegular Modified Mathlib/Algebra/GroupWithZero/InjSurj.lean Modified Mathlib/Algebra/GroupWithZero/Nat.lean Modified Mathlib/Algebra/GroupWithZero/Opposite.lean Modified Mathlib/Algebra/GroupWithZero/Regular.lean Modified Mathlib/Algebra/MonoidAlgebra/NoZeroDivisors.lean Modified Mathlib/Algebra/Order/Group/Basic.lean Modified Mathlib/Algebra/Order/Group/Bounds.lean Modified Mathlib/Algebra/Order/Group/Int/Sum.lean Modified Mathlib/Algebra/Order/Interval/Set/Instances.lean Modified Mathlib/Algebra/Order/Monoid/Unbundled/Basic.lean Modified Mathlib/Algebra/Order/Ring/Defs.lean Modified Mathlib/Algebra/Polynomial/Coeff.lean Modified Mathlib/Algebra/Regular/Basic.lean +/- theorem Commute.isRightRegular_iff - structure IsAddRegular - theorem IsLeftRegular.all +/- theorem IsLeftRegular.right_of_commute - def IsLeftRegular - theorem IsRegular.all +/- theorem IsRegular.pow +/- theorem IsRegular.pow_iff - structure IsRegular - theorem IsRightRegular.all +/- theorem IsRightRegular.left_of_commute - def IsRightRegular - theorem isRegular_iff Added Mathlib/Algebra/Regular/Defs.lean + structure IsAddRegular + def IsLeftRegular + structure IsRegular + def IsRightRegular + theorem isRegular_iff Modified Mathlib/Algebra/Regular/Opposite.lean Modified Mathlib/Algebra/Regular/Pi.lean Modified Mathlib/Algebra/Regular/Prod.lean Modified Mathlib/Algebra/Regular/SMul.lean Modified Mathlib/Algebra/Regular/ULift.lean Modified Mathlib/Algebra/Ring/Basic.lean Modified Mathlib/Algebra/Ring/Int/Defs.lean Modified Mathlib/Algebra/Ring/Regular.lean Modified Mathlib/Algebra/Star/Basic.lean Modified Mathlib/Data/Int/Interval.lean Modified Mathlib/Data/Int/Range.lean Modified Mathlib/Data/PNat/Basic.lean Modified Mathlib/GroupTheory/MonoidLocalization/MonoidWithZero.lean Modified Mathlib/Order/Interval/Finset/Box.lean Modified Mathlib/RingTheory/DedekindDomain/Ideal/Basic.lean Modified Mathlib/RingTheory/Localization/Defs.lean Modified Mathlib/SetTheory/Game/Impartial.lean Modified Mathlib/SetTheory/Nimber/Basic.lean Modified Mathlib/SetTheory/Nimber/Field.lean Modified Mathlib/Tactic/Linter/DirectoryDependency.lean Modified scripts/noshake.json 2025-08-02 20:27:50 8dbf1d7 feat(RepresentationTheory/Basic): direct sum of representations (#27755) Define the `DirectSum` of a family of `Representation`s. [Zulip thread](https://leanprover.zulipchat.com/#narrow/channel/116395-maths/topic/Representation.20Theory) ESTIMATED CHANGES Modified Mathlib/RepresentationTheory/Basic.lean 2025-08-02 12:20:12 d5d137a feat: IMO 2001 Q4 (#25786) ESTIMATED CHANGES Modified Archive.lean Added Archive/Imo/Imo2001Q4.lean + def Imo2001Q4.S + theorem Imo2001Q4.result + theorem Imo2001Q4.sum_modEq_zero_of_odd + theorem Imo2001Q4.sum_perm_add_one + theorem Imo2001Q4.sum_range_modEq_sum_of_contra 2025-08-02 11:30:50 359a2a6 chore: various indentation fixes (#27869) Found by the linter in #27525. ESTIMATED CHANGES Modified Mathlib/Algebra/Lie/Weights/RootSystem.lean +/- theorem LieAlgebra.IsKilling.eq_top_of_invtSubmodule_ne_bot Modified Mathlib/Algebra/Order/Monoid/LocallyFiniteOrder.lean Modified Mathlib/AlgebraicGeometry/AffineSpace.lean Modified Mathlib/Analysis/InnerProductSpace/Harmonic/Constructions.lean +/- theorem AnalyticAt.harmonicAt_conj Modified Mathlib/CategoryTheory/Abelian/GrothendieckCategory/EnoughInjectives.lean Modified Mathlib/CategoryTheory/Bicategory/Functor/Oplax.lean Modified Mathlib/CategoryTheory/EffectiveEpi/Basic.lean Modified Mathlib/CategoryTheory/GradedObject/Trifunctor.lean Modified Mathlib/CategoryTheory/Join/Pseudofunctor.lean Modified Mathlib/CategoryTheory/Limits/HasLimits.lean Modified Mathlib/CategoryTheory/Localization/Trifunctor.lean Modified Mathlib/CategoryTheory/Shift/Localization.lean Modified Mathlib/CategoryTheory/Shift/SingleFunctors.lean Modified Mathlib/CategoryTheory/Sites/Coherent/Basic.lean Modified Mathlib/Combinatorics/SimpleGraph/Clique.lean Modified Mathlib/FieldTheory/JacobsonNoether.lean Modified Mathlib/LinearAlgebra/RootSystem/GeckConstruction/Lemmas.lean Modified Mathlib/LinearAlgebra/TensorProduct/Vanishing.lean Modified Mathlib/MeasureTheory/SetSemiring.lean Modified Mathlib/ModelTheory/Basic.lean Modified Mathlib/Order/ConditionallyCompleteLattice/Defs.lean Modified Mathlib/RingTheory/Frobenius.lean Modified Mathlib/RingTheory/Spectrum/Prime/ChevalleyComplexity.lean Modified Mathlib/RingTheory/Unramified/Finite.lean Modified Mathlib/Tactic/ToAdditive/Frontend.lean Modified Mathlib/Tactic/Widget/SelectPanelUtils.lean Modified Mathlib/Topology/Algebra/ProperAction/Basic.lean Modified Mathlib/Topology/GDelta/Basic.lean +/- theorem isMeagre_iUnion 2025-08-02 11:30:49 5c74392 feat: lemmas about betweeness on a linear space (#26555) This PR also adds aliases of the inverse direction of betweeness iff lemmas. ESTIMATED CHANGES Modified Mathlib/Analysis/Convex/Between.lean + theorem sbtw_add_const_iff + theorem sbtw_const_add_iff + theorem sbtw_const_sub_iff + theorem sbtw_neg_iff + theorem sbtw_sub_const_iff + theorem wbtw_add_const_iff + theorem wbtw_const_add_iff + theorem wbtw_const_sub_iff + theorem wbtw_neg_iff + theorem wbtw_sub_const_iff 2025-08-02 11:20:08 4f51227 feat(Combinatorics/SimpleGraph/Walk): add lemma `support_injective` (#27472) This contribution was created as part of the Utrecht Summerschool "Formalizing Mathematics in Lean" in July 2025. ESTIMATED CHANGES Modified Mathlib/Combinatorics/SimpleGraph/Walk.lean + theorem SimpleGraph.Walk.support_injective 2025-08-02 07:11:51 f0b4174 chore: deprecate `Set.image_subset` (#27287) `Set.image_subset` is a duplicate of `Set.image_mono`. It is also a confusing name because it is very different from `Set.preimage_subset`. The difference with `Set.image_mono` is that it has `f` as an explicit argument. However, in 99% of cases this argument can be inferred, so this is not needed. The main change is in Mathlib/Data/Set/Image.lean ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/NonUnitalSubalgebra.lean Modified Mathlib/Algebra/Algebra/Subalgebra/Basic.lean Modified Mathlib/Algebra/Algebra/Subalgebra/Lattice.lean Modified Mathlib/Algebra/BigOperators/Finprod.lean Modified Mathlib/Algebra/Field/Periodic.lean Modified Mathlib/Algebra/Group/Pointwise/Set/Scalar.lean +/- theorem Set.smul_set_mono Modified Mathlib/Algebra/Group/Subgroup/Basic.lean Modified Mathlib/Algebra/Group/Subgroup/Map.lean Modified Mathlib/Algebra/Group/Subgroup/Pointwise.lean Modified Mathlib/Algebra/Group/Submonoid/Pointwise.lean Modified Mathlib/Algebra/Group/Support.lean Modified Mathlib/Algebra/Lie/Ideal.lean Modified Mathlib/Algebra/Lie/Submodule.lean Modified Mathlib/Algebra/Module/Submodule/Map.lean Modified Mathlib/Algebra/MvPolynomial/Supported.lean Modified Mathlib/Algebra/Order/CompleteField.lean +/- theorem LinearOrderedField.cutMap_mono Modified Mathlib/Algebra/Ring/Subring/Pointwise.lean Modified Mathlib/Algebra/Ring/Subsemiring/Pointwise.lean Modified Mathlib/Algebra/Star/NonUnitalSubalgebra.lean Modified Mathlib/Algebra/Star/Subalgebra.lean Modified Mathlib/AlgebraicGeometry/OpenImmersion.lean Modified Mathlib/AlgebraicGeometry/Restrict.lean Modified Mathlib/AlgebraicTopology/SimplicialNerve.lean Modified Mathlib/Analysis/Calculus/Deriv/Slope.lean Modified Mathlib/Analysis/Calculus/InverseFunctionTheorem/ApproximatesLinearOn.lean Modified Mathlib/Analysis/Complex/Hadamard.lean Modified Mathlib/Analysis/Complex/Liouville.lean Modified Mathlib/Analysis/Complex/OpenMapping.lean Modified Mathlib/Analysis/Convex/Deriv.lean Modified Mathlib/Analysis/Convex/Hull.lean Modified Mathlib/Analysis/Convex/Intrinsic.lean Modified Mathlib/Analysis/Convex/Topology.lean Modified Mathlib/Analysis/InnerProductSpace/GramSchmidtOrtho.lean Modified Mathlib/Analysis/Normed/Module/Basic.lean Modified Mathlib/Analysis/NormedSpace/OperatorNorm/NNNorm.lean Modified Mathlib/Data/Analysis/Filter.lean Modified Mathlib/Data/Finset/Image.lean Modified Mathlib/Data/Finset/NAry.lean Modified Mathlib/Data/Matroid/Map.lean Modified Mathlib/Data/Set/Function.lean Modified Mathlib/Data/Set/Image.lean +/- theorem Set.image_subset +/- theorem Set.monotone_image Modified Mathlib/Data/Set/Prod.lean Modified Mathlib/FieldTheory/IntermediateField/Basic.lean Modified Mathlib/Geometry/Manifold/BumpFunction.lean Modified Mathlib/Geometry/Manifold/IsManifold/ExtChartAt.lean Modified Mathlib/GroupTheory/GroupAction/Basic.lean Modified Mathlib/LinearAlgebra/AffineSpace/Independent.lean Modified Mathlib/LinearAlgebra/Basis/Basic.lean Modified Mathlib/LinearAlgebra/Span/Basic.lean Modified Mathlib/MeasureTheory/Constructions/Pi.lean Modified Mathlib/MeasureTheory/Function/Jacobian.lean Modified Mathlib/MeasureTheory/Integral/IntegralEqImproper.lean Modified Mathlib/MeasureTheory/Integral/IntervalIntegral/IntegrationByParts.lean Modified Mathlib/MeasureTheory/Integral/RieszMarkovKakutani/Basic.lean Modified Mathlib/MeasureTheory/MeasurableSpace/Embedding.lean Modified Mathlib/MeasureTheory/Measure/Haar/Basic.lean Modified Mathlib/MeasureTheory/Measure/Hausdorff.lean Modified Mathlib/MeasureTheory/Measure/Map.lean Modified Mathlib/MeasureTheory/OuterMeasure/OfFunction.lean Modified Mathlib/MeasureTheory/OuterMeasure/Operations.lean Modified Mathlib/ModelTheory/Substructures.lean Modified Mathlib/NumberTheory/Transcendental/Lindemann/AnalyticalPart.lean Modified Mathlib/Order/BooleanSubalgebra.lean +/- theorem BooleanSubalgebra.map_mono Modified Mathlib/Order/ConditionallyCompleteLattice/Basic.lean Modified Mathlib/Order/Filter/Bases/Basic.lean Modified Mathlib/Order/Filter/Map.lean Modified Mathlib/Order/Filter/SmallSets.lean Modified Mathlib/Order/Interval/Set/SurjOn.lean Modified Mathlib/Order/Monotone/Extension.lean Modified Mathlib/Order/Sublattice.lean +/- theorem Sublattice.map_mono Modified Mathlib/RingTheory/GradedAlgebra/Homogeneous/Ideal.lean Modified Mathlib/RingTheory/Ideal/Maps.lean Modified Mathlib/RingTheory/RingHom/FiniteType.lean Modified Mathlib/RingTheory/Spectrum/Prime/Topology.lean Modified Mathlib/RingTheory/Valuation/ValuationSubring.lean Modified Mathlib/SetTheory/Cardinal/SchroederBernstein.lean Modified Mathlib/SetTheory/Ordinal/Family.lean Modified Mathlib/Tactic/Monotonicity/Lemmas.lean Modified Mathlib/Topology/Algebra/Group/Basic.lean Modified Mathlib/Topology/Algebra/Support.lean Modified Mathlib/Topology/Bases.lean Modified Mathlib/Topology/Bornology/Basic.lean Modified Mathlib/Topology/Category/Profinite/Nobeling/ZeroLimit.lean Modified Mathlib/Topology/Category/TopCat/Opens.lean Modified Mathlib/Topology/Connected/Basic.lean Modified Mathlib/Topology/Connected/TotallyDisconnected.lean Modified Mathlib/Topology/Continuous.lean Modified Mathlib/Topology/ContinuousOn.lean Modified Mathlib/Topology/DenseEmbedding.lean Modified Mathlib/Topology/ExtremallyDisconnected.lean Modified Mathlib/Topology/Instances/AddCircle/Defs.lean Modified Mathlib/Topology/List.lean Modified Mathlib/Topology/Maps/Basic.lean Modified Mathlib/Topology/NhdsSet.lean Modified Mathlib/Topology/PartialHomeomorph.lean Modified Mathlib/Topology/QuasiSeparated.lean Modified Mathlib/Topology/Separation/Hausdorff.lean Modified Mathlib/Topology/Sheaves/Presheaf.lean Modified Mathlib/Topology/Sober.lean Modified Mathlib/Topology/UniformSpace/UniformEmbedding.lean 2025-08-02 04:16:14 f1ac36d chore(CategoryTheory/EqToHom): golf entire `heq_comp` using `grind` (#27858) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/EqToHom.lean 2025-08-02 00:30:27 5f223b8 chore(Nat.AtLeastTwo): use `2 ≤ n` instead of `n ≥ 2` (#27854) In mathlib it is standard to use `≤` instead of `≥`, and for some reason `Nat.AtLeastTwo` wasn't following this convention. This is just a stylisting change. ESTIMATED CHANGES Modified Mathlib/Data/Nat/Cast/Defs.lean 2025-08-01 23:04:44 211b784 feat(*): add `simp`/`gcongr` attrs and use them (#27718) Also weaken assumptions of `Polynomial.X_pow_sub_one_mul_prod_cyclotomic_eq_X_pow_sub_one_of_dvd`. ESTIMATED CHANGES Modified Mathlib/Algebra/Divisibility/Basic.lean +/- theorem pow_dvd_pow_of_dvd + theorem pow_dvd_pow_of_dvd_of_le Modified Mathlib/Algebra/GCDMonoid/Nat.lean Modified Mathlib/Algebra/Order/Group/Unbundled/Int.lean +/- theorem Int.natCast_natAbs Modified Mathlib/Algebra/Order/Ring/Int.lean Modified Mathlib/Combinatorics/SimpleGraph/Finite.lean Modified Mathlib/Data/Finset/Card.lean Modified Mathlib/Data/Int/Log.lean Modified Mathlib/Data/Int/ModEq.lean Modified Mathlib/Data/Multiset/Defs.lean Modified Mathlib/Data/Nat/Log.lean + theorem Nat.clog_mono + theorem Nat.log_mono Modified Mathlib/Data/Nat/Sqrt.lean Modified Mathlib/Data/Nat/Squarefree.lean Modified Mathlib/Data/Nat/Totient.lean Modified Mathlib/Data/ZMod/Basic.lean + theorem ZMod.intCast_abs_mod_two Modified Mathlib/NumberTheory/Divisors.lean Modified Mathlib/NumberTheory/LegendreSymbol/GaussEisensteinLemmas.lean Modified Mathlib/NumberTheory/PellMatiyasevic.lean Modified Mathlib/NumberTheory/Zsqrtd/Basic.lean + theorem Zsqrtd.abs_norm Modified Mathlib/NumberTheory/Zsqrtd/GaussianInt.lean Modified Mathlib/RingTheory/Coprime/Lemmas.lean Modified Mathlib/RingTheory/Polynomial/Cyclotomic/Basic.lean 2025-08-01 22:09:09 d7257f6 feat: mathlib instance for `Lean.Grind.LinearOrder` (#27848) ESTIMATED CHANGES Modified Mathlib/Order/Defs/LinearOrder.lean 2025-08-01 22:09:07 f348f35 chore: fix `LinearMap.BilinForm.orthogonal` docstring (#26597) fixed documentation for orthogonal (regarding order of inputs to bilinear form) ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/BilinearForm/Orthogonal.lean 2025-08-01 21:30:19 968ea7f chore: tidy various files (#27630) ESTIMATED CHANGES Modified Mathlib/AlgebraicGeometry/AffineSpace.lean +/- theorem AlgebraicGeometry.AffineSpace.spec_le_iff Modified Mathlib/Analysis/Calculus/IteratedDeriv/Defs.lean Modified Mathlib/Analysis/Normed/Unbundled/SpectralNorm.lean Modified Mathlib/Analysis/SpecialFunctions/Log/Base.lean Modified Mathlib/Combinatorics/SimpleGraph/FiveWheelLike.lean Modified Mathlib/Computability/AkraBazzi/AkraBazzi.lean Modified Mathlib/Data/Matrix/Diagonal.lean Modified Mathlib/FieldTheory/PerfectClosure.lean Modified Mathlib/Geometry/Manifold/Riemannian/Basic.lean Modified Mathlib/GroupTheory/Abelianization/Defs.lean Modified Mathlib/GroupTheory/SpecificGroups/Alternating.lean Modified Mathlib/GroupTheory/SpecificGroups/Cyclic.lean Modified Mathlib/MeasureTheory/Function/ConvergenceInMeasure.lean Modified Mathlib/NumberTheory/Cyclotomic/Rat.lean Modified Mathlib/NumberTheory/NumberField/Ideal/Basic.lean Modified Mathlib/Probability/Moments/Covariance.lean +/- theorem ProbabilityTheory.covariance_mul_left +/- theorem ProbabilityTheory.covariance_mul_right Modified Mathlib/RingTheory/Valuation/Discrete/Basic.lean Modified Mathlib/Topology/ContinuousMap/ContinuousMapZero.lean Modified Mathlib/Topology/Order/HullKernel.lean 2025-08-01 21:30:18 ad50e68 feat: HasCompactSupport.sub lemma (multiplicative & additive version) (#27324) Filled missing API, easy consequence from lemma for negation. ESTIMATED CHANGES Modified Mathlib/Topology/Algebra/Support.lean + theorem HasCompactSupport.div 2025-08-01 21:30:16 20fe28a chore(GroupWithZero/WithZero): use `recZeroCoe` for `WithZero.lift'` (#26941) gives better simps apply lemmas ESTIMATED CHANGES Modified Mathlib/Algebra/GroupWithZero/WithZero.lean 2025-08-01 21:30:14 49542b7 feat(ValuativeRel): MulArchimedean (ValueGroupWithZero R) when IsRankLeOne (#26833) The converse (for any compatible valuation) is `ValuativeRel.isRankLeOne_iff_mulArchimedean` which is in a later file since it requires a larger theory of reals. ESTIMATED CHANGES Modified Mathlib/RingTheory/Valuation/ValuativeRel.lean 2025-08-01 21:30:13 25301c9 chore(Algebra/Polynomial/IsMonicOfDegree): do not import compute_degree tactic (#26759) To prepare for an extension of the `monicity` tactic to also work for `IsMonicOfDegree`, avoid importing this and related tactics in the file that defines `IsMonicOfDegree`. This means that some proof that used `compute_degree` or `compute_degree!` need to be spelled out in terms of the API for `Polynomial.natDegree`. Zulip: [#mathlib4 > Gelfand-Mazur theorem @ 💬](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Gelfand-Mazur.20theorem/near/526268507) ESTIMATED CHANGES Modified Mathlib/Algebra/Polynomial/Degree/IsMonicOfDegree.lean 2025-08-01 21:30:11 19d9af4 chore: add missing deprecations (#25262) From #23643, #23804, #24762, #24827, #24833, and #25016. ESTIMATED CHANGES Modified Mathlib/AlgebraicGeometry/IdealSheaf/Basic.lean Modified Mathlib/Analysis/SpecialFunctions/Complex/LogBounds.lean + theorem Real.tendsto_mul_log_one_add_div_atTop Modified Mathlib/Analysis/SpecialFunctions/MulExpNegMulSqIntegral.lean Modified Mathlib/GroupTheory/Perm/Finite.lean Modified Mathlib/GroupTheory/Perm/Support.lean Modified Mathlib/NumberTheory/NumberField/InfinitePlace/TotallyRealComplex.lean Modified Mathlib/RingTheory/Ideal/Operations.lean Modified Mathlib/RingTheory/MvPowerSeries/PiTopology.lean 2025-08-01 20:41:39 1e47c31 feat(Algebra/BigOperators/Finprod): add powerset projection lemmas (#25965) This PR continues the work from #23926. Original PR: https://github.com/leanprover-community/mathlib4/pull/23926 ESTIMATED CHANGES Modified Mathlib/Algebra/BigOperators/Finprod.lean + theorem finprod_mem_powerset_diff_elem + theorem finprod_mem_powerset_insert Modified Mathlib/Data/Set/Image.lean + theorem Set.disjoint_powerset_insert + theorem Set.powerset_insert_injOn 2025-08-01 19:14:26 032df31 chore: remove some unneeded grind arguments (#27800) ESTIMATED CHANGES Modified Mathlib/Analysis/Analytic/Order.lean Modified Mathlib/Analysis/Calculus/BumpFunction/FiniteDimension.lean Modified Mathlib/Analysis/Calculus/LHopital.lean Modified Mathlib/Analysis/InnerProductSpace/Projection.lean Modified Mathlib/Analysis/SpecialFunctions/ContinuousFunctionalCalculus/PosPart/Basic.lean Modified Mathlib/Data/Nat/Hyperoperation.lean Modified Mathlib/Data/QPF/Multivariate/Basic.lean Modified Mathlib/Probability/Process/HittingTime.lean 2025-08-01 18:53:54 955f74e feat(combinatorics): Path decomposition and boundary crossing (#27325) This PR is the second in the series to build API for Quiver.Path in support of formalizing the Perron-Frobenius theorem. https://leanprover.zulipchat.com/#narrow/channel/116395-maths/topic/Formalizing.20Perron-Frobenius/with/529260566 This adds basic path decomposition and theorems about paths crossing set boundaries. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Combinatorics/Quiver/Path.lean + theorem Quiver.Path.comp_toPath_eq_cons + theorem Quiver.Path.length_ne_zero_iff_eq_comp + theorem Quiver.Path.length_ne_zero_iff_eq_cons Added Mathlib/Combinatorics/Quiver/Path/Decomposition.lean + theorem Quiver.Path.exists_mem_notMem_hom_path_path_of_notMem_mem + theorem Quiver.Path.exists_notMem_mem_hom_path_path_of_notMem_mem 2025-08-01 18:07:58 c8c8eb5 chore(RingTheory/Smooth): golf `sectionCotangent_zero_of_notMem_range` using `grind [Set.mem_range]` (#27778) ESTIMATED CHANGES Modified Mathlib/RingTheory/Smooth/StandardSmoothCotangent.lean 2025-08-01 17:07:01 53a859c chore: add `ofId_apply` as simp (#27836) Add `ofId_apply` as a simp lemma. ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/Hom.lean 2025-08-01 17:07:00 b0b1bab chore(to_additive): change `existing : Option Bool` to `Bool` (#27827) This PR changes the `to_additive` configuration option `existing` from `Option Bool` to `Bool`. In the current implementation, it is always a `some`. And I don't think there is a good use case to ever make it `none`. I'm making this change because this confused me when first reading the source code. ESTIMATED CHANGES Modified Mathlib/Tactic/ToAdditive/Frontend.lean 2025-08-01 17:06:58 2036763 chore(Topology/Algebra): golf `extend_Z_bilin` using `grind [Set.*]` (#27780) ESTIMATED CHANGES Modified Mathlib/Topology/Algebra/IsUniformGroup/Basic.lean 2025-08-01 16:45:55 157c81f chore(Topology/Connected): golf `IsPathConnected.exists_path_through_family` using `grind [Set.*]` (#27782) ESTIMATED CHANGES Modified Mathlib/Topology/Connected/PathConnected.lean 2025-08-01 16:25:46 af36a8a ci(update_dependencies.yml): set author to leanprover-community-mathlib4-bot (#27750) Recently these bot commits have been attributed to me (cf. 6fa8bc940f82c0d4e301e015feb3cfa9fa5ecdd6 and 850c004bb0f8045c1866a72c742683e91080710b). According to [the readme of `peter-evans/create-pull-request`](https://github.com/peter-evans/create-pull-request?tab=readme-ov-file#action-inputs), the author is the `github.actor` by default, so this may be because I recently triggered the workflow manually and somehow became the `github.actor` for all future scheduled runs of the workflow. Setting the `author` input will hopefully let the bot take proper credit. ESTIMATED CHANGES Modified .github/workflows/update_dependencies.yml 2025-08-01 15:48:47 8588bb8 chore(SetTheory/ZFC): scope sUnion notation (#27833) it causes elaboration clash with regular Set notation when type is unspecified zulip thread: https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Unscoped.20.60.E2.8B.83.E2.82.80.60.20and.20.60.E2.8B.82.E2.82.80.60 ESTIMATED CHANGES Modified Mathlib/SetTheory/ZFC/Basic.lean Modified Mathlib/SetTheory/ZFC/Class.lean 2025-08-01 14:28:19 29675b2 chore(Topology/Instances): golf `preCantorSet_antitone` using `grind [Set.*]` (#27783) ESTIMATED CHANGES Modified Mathlib/Topology/Instances/CantorSet.lean 2025-08-01 14:10:41 6d279d4 feat(workflows): automatically assign reviewers (#26109) Once per day, automatically assign all proposed reviewers from the automatic assignment algorithm. These are initial suggestions; users are free to manually assign to somebody else (or to un-assign themselves; after a day, the algorithm will randomly choose a user again.) ESTIMATED CHANGES Added .github/workflows/auto_assign_reviewers.yaml Modified scripts/README.md Added scripts/assign_reviewers.py 2025-08-01 13:58:14 8c87ce1 chore: define covariance before variance (#27736) Make the variance file import covariance instead of the other way around. That way we can for instance prove first that the covariance of independent random variables is 0 to then deduce that the variance of a sum of independent random variables is the sum of their variances (done in #27749). ESTIMATED CHANGES Modified Mathlib/Probability/Moments/Covariance.lean - theorem ProbabilityTheory.covariance_self - theorem ProbabilityTheory.variance_fun_sub - theorem ProbabilityTheory.variance_fun_sum' - theorem ProbabilityTheory.variance_fun_sum - theorem ProbabilityTheory.variance_sub - theorem ProbabilityTheory.variance_sum' - theorem ProbabilityTheory.variance_sum Modified Mathlib/Probability/Moments/CovarianceBilin.lean Modified Mathlib/Probability/Moments/Variance.lean + theorem ProbabilityTheory.covariance_self + theorem ProbabilityTheory.variance_fun_sub + theorem ProbabilityTheory.variance_fun_sum' + theorem ProbabilityTheory.variance_fun_sum + theorem ProbabilityTheory.variance_sub + theorem ProbabilityTheory.variance_sum' + theorem ProbabilityTheory.variance_sum 2025-08-01 13:45:09 cf9cfce chore(RingTheory/Localization/AtPrime): rename `AtPrime.Nontrivial` to `AtPrime.nontrivial` (#27798) This is more in line with the naming convention and otherwise defining a nontrivial instance when the namespace `IsLocalization.AtPrime` is open causes an error. ESTIMATED CHANGES Modified Mathlib/RingTheory/Localization/AtPrime.lean - theorem IsLocalization.AtPrime.Nontrivial + theorem IsLocalization.AtPrime.nontrivial 2025-08-01 13:45:07 8cd55b8 feat: considering an iso over `S` as an iso in `Over S` (#27064) From Toric ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Comma/Over/OverClass.lean + def CategoryTheory.Iso.asOver + theorem CategoryTheory.OverClass.asOverHom_comp + theorem CategoryTheory.OverClass.asOverHom_id + theorem CategoryTheory.OverClass.asOverHom_inv 2025-08-01 12:48:31 727bd1c fix(to_additive): let `(reorder := ...)` eta-expand the value if necessary (#27693) This PR fixes a problem in `to_additive (reorder := ...)` by eta-expanding the proof term if necessary. Previously, this case would throw an error. ESTIMATED CHANGES Modified Mathlib/Tactic/ToAdditive/Frontend.lean Modified MathlibTest/toAdditive.lean + def Test.reorderMulThree_alias'' 2025-08-01 08:31:08 c1b4166 chore: deprecate `Module.Free.repr` (#24891) One should instead use `(Module.Free.chooseBasis R M).repr`. ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/Dimension/Free.lean Modified Mathlib/LinearAlgebra/FreeModule/Basic.lean Modified Mathlib/RingTheory/Flat/FaithfullyFlat/Basic.lean 2025-08-01 08:03:49 eb2b047 feat(Topology): {Nat,Int).cast_continuous (#27662) ESTIMATED CHANGES Modified Mathlib/Topology/Order.lean + theorem Int.cast_continuous + theorem Nat.cast_continuous 2025-08-01 05:13:50 fc728c1 chore: update Mathlib dependencies 2025-08-01 (#27797) This PR updates the Mathlib dependencies. ESTIMATED CHANGES Modified lake-manifest.json 2025-08-01 04:47:50 5ec4753 chore(RingTheory/Polynomial): golf `prod_X_add_C_coeff` using `grind` (#27776) ESTIMATED CHANGES Modified Mathlib/RingTheory/Polynomial/Vieta.lean 2025-08-01 04:38:13 2919656 chore(RingTheory/Polynomial): golf `dvd_coeff_zero_of_aeval_eq_prime_smul_of_minpoly_isEisensteinAt` using `grind` (#27775) ESTIMATED CHANGES Modified Mathlib/RingTheory/Polynomial/Eisenstein/IsIntegral.lean 2025-08-01 04:20:12 0af44bd chore(Topology/MetricSpace): golf `mem_uniformity_dist` using `grind` (#27784) ESTIMATED CHANGES Modified Mathlib/Topology/MetricSpace/Completion.lean 2025-08-01 03:26:58 4d40cf5 chore: fix typo in nightly_detect_failure.yml (#27793) ESTIMATED CHANGES Modified .github/workflows/nightly_detect_failure.yml 2025-08-01 03:26:56 eca9a40 chore(RingTheory/MvPolynomial): golf `disjoint_filter_pairs_lt_filter_pairs_eq` using `grind` (#27774) ESTIMATED CHANGES Modified Mathlib/RingTheory/MvPolynomial/Symmetric/NewtonIdentities.lean 2025-08-01 03:26:55 66a5d8a chore(Probability/Independence): golf `iIndepFun.indepFun_finset` using `grind` (#27773) ESTIMATED CHANGES Modified Mathlib/Probability/Independence/Kernel.lean 2025-08-01 03:26:53 ce8a4a4 chore(Order/ConditionallyCompleteLattice): golf `Set.Finite.ciSup_lt_iff` using `grind` (#27772) ESTIMATED CHANGES Modified Mathlib/Order/ConditionallyCompleteLattice/Finset.lean 2025-08-01 03:26:52 e1941e0 chore(NumberTheory/BernoulliPolynomials): golf `sum_bernoulli` using `grind` (#27771) ESTIMATED CHANGES Modified Mathlib/NumberTheory/BernoulliPolynomials.lean 2025-08-01 03:26:50 983783d chore(MeasureTheory/PiSystem): golf `mem_generatePiSystem_iUnion_elim` using `grind` (#27770) ESTIMATED CHANGES Modified Mathlib/MeasureTheory/PiSystem.lean 2025-08-01 03:26:49 768f270 chore(MeasureTheory/Integral): golf `map_setToSimpleFunc` using `grind` (#27769) ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Integral/FinMeasAdditive.lean 2025-08-01 03:26:47 5f87bc9 chore(MeasureTheory/Function): golf `map_lintegral` using `grind` (#27768) ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Function/SimpleFunc.lean 2025-08-01 03:26:46 9b064b3 chore(MeasureTheory/Function): golf `MeasureTheory.aemeasurable_of_exist_almost_disjoint_supersets` using `grind` (#27767) ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Function/AEMeasurableOrder.lean 2025-08-01 03:26:44 f898acb chore(LinearAlgebra/RootSystem): golf `chainBotCoeff_mul_chainTopCoeff` using `grind` (#27766) ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/RootSystem/GeckConstruction/Lemmas.lean 2025-08-01 03:26:43 0e99198 chore(LinearAlgebra/Matrix): golf `det_eq_of_forall_row_eq_smul_add_const_aux` using `grind` (#27765) ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/Matrix/Determinant/Basic.lean 2025-08-01 03:26:41 fcb442b chore(LinearAlgebra/LinearPMap): golf `mem_range_iff` using `grind` (#27764) ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/LinearPMap.lean 2025-08-01 03:26:40 c0f8ce6 chore(Geometry/Euclidean): golf `exists_forall_dist_eq_iff_exists_excenterExists_and_eq_excenter` using `grind` (#27734) ESTIMATED CHANGES Modified Mathlib/Geometry/Euclidean/Incenter.lean 2025-08-01 03:26:38 5bb1c69 chore(Geometry/Euclidean): golf `oangle_sign_smul_add_right` using `grind` (#27733) ESTIMATED CHANGES Modified Mathlib/Geometry/Euclidean/Angle/Oriented/Basic.lean 2025-08-01 03:26:36 2756df6 chore(Data/Set): golf `ncard_le_one_iff_eq` using `grind` (#27731) ESTIMATED CHANGES Modified Mathlib/Data/Set/Card.lean 2025-08-01 03:26:34 b993cab chore(Data/List): golf `mem_ofFn'` using `grind` (#27729) ESTIMATED CHANGES Modified Mathlib/Data/List/OfFn.lean 2025-08-01 02:32:39 6981c4c chore(Algebra/MvPolynomial): golf `vars_sum_of_disjoint` using `grind` (#27671) ESTIMATED CHANGES Modified Mathlib/Algebra/MvPolynomial/Variables.lean 2025-08-01 02:32:37 0adee0d chore(Tactic/Simproc): golf entire `exists_of_imp_eq` using `grind` (#27565) ESTIMATED CHANGES Modified Mathlib/Tactic/Simproc/ExistsAndEq.lean 2025-08-01 02:32:35 bffd6b7 chore(SetTheory/ZFC): golf `mem_pairSep` using `grind` (#27564) ESTIMATED CHANGES Modified Mathlib/SetTheory/ZFC/Basic.lean 2025-08-01 02:32:34 ccc0904 chore(LinearAlgebra/RootSystem/GeckConstruction): golf `lie_e_f_ne` using `grind` (#27560) ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/RootSystem/GeckConstruction/Basic.lean 2025-08-01 02:32:32 ae34129 chore(NumberTheory/FLT): golf `not_minimal` (FLT/Four) using `grind` (#27558) ESTIMATED CHANGES Modified Mathlib/NumberTheory/FLT/Four.lean 2025-08-01 01:40:36 ca2c27d feat: start using `grind` in `Set` API (#27670) This PR starts adding `grind` annotations to theorems about `Set`, and simplifying proofs. Neither effort is exhaustive in any of the files I touch here; it's just a start. ESTIMATED CHANGES Modified Mathlib/Data/Set/Basic.lean Modified Mathlib/Data/Set/Defs.lean Modified Mathlib/Data/Set/Disjoint.lean Modified Mathlib/Data/Set/Function.lean +/- theorem Set.EqOn.image_eq +/- theorem Set.EqOn.image_eq_self +/- theorem Set.EqOn.inter_preimage_eq Modified Mathlib/Data/Set/Image.lean +/- theorem Set.image_comp_eq +/- theorem Set.image_congr' +/- theorem Set.image_empty +/- theorem Set.image_mono +/- theorem Set.image_pair +/- theorem Set.image_preimage_eq_iff +/- theorem Set.image_preimage_eq_range_inter +/- theorem Set.image_singleton +/- theorem Set.image_subset +/- theorem Set.image_union +/- theorem Set.image_union_image_compl_eq_range +/- theorem Set.image_univ +/- theorem Set.range_comp_subset_range Modified Mathlib/Data/Set/Inclusion.lean Modified Mathlib/Data/Set/Insert.lean +/- theorem Set.insert_comm +/- theorem Set.insert_diff_eq_singleton +/- theorem Set.insert_eq_of_mem +/- theorem Set.insert_eq_self +/- theorem Set.insert_idem +/- theorem Set.insert_inter_distrib +/- theorem Set.insert_inter_of_mem +/- theorem Set.insert_inter_of_notMem +/- theorem Set.insert_ne_self +/- theorem Set.insert_subset +/- theorem Set.insert_subset_iff +/- theorem Set.insert_subset_insert +/- theorem Set.insert_subset_insert_iff +/- theorem Set.insert_union +/- theorem Set.insert_union_distrib +/- theorem Set.inter_insert_of_mem +/- theorem Set.inter_insert_of_notMem +/- theorem Set.ne_insert_of_notMem +/- theorem Set.pair_subset_iff +/- theorem Set.powerset_singleton +/- theorem Set.ssubset_iff_insert +/- theorem Set.ssubset_insert +/- theorem Set.subset_insert_iff_of_notMem +/- theorem Set.subset_pair_iff +/- theorem Set.subset_singleton_iff_eq +/- theorem Set.union_insert Modified Mathlib/Data/Set/Operations.lean +/- theorem Set.mem_compl_iff +/- theorem Set.mem_diagonal_iff +/- theorem Set.mem_diff +/- theorem Set.mem_image2 +/- theorem Set.mem_pi +/- theorem Set.mem_range +/- theorem Set.mem_setOf_eq +/- theorem Set.mem_univ Modified Mathlib/Data/Set/Prod.lean +/- theorem Set.empty_pi +/- theorem Set.image_prodMk_subset_prod_left +/- theorem Set.image_prodMk_subset_prod_right +/- theorem Set.mk_preimage_prod_left +/- theorem Set.mk_preimage_prod_left_eq_empty +/- theorem Set.mk_preimage_prod_right +/- theorem Set.mk_preimage_prod_right_eq_empty +/- theorem Set.pi_congr +/- theorem Set.pi_eq_empty +/- theorem Set.pi_inter_compl +/- theorem Set.pi_inter_distrib +/- theorem Set.preimage_swap_prod +/- theorem Set.prod_diff_prod +/- theorem Set.singleton_pi Modified Mathlib/Data/Set/Restrict.lean Modified Mathlib/Data/Set/Sigma.lean +/- theorem Set.empty_sigma +/- theorem Set.insert_sigma +/- theorem Set.mem_sigma_iff +/- theorem Set.mk_preimage_sigma +/- theorem Set.mk_preimage_sigma_eq_empty +/- theorem Set.range_sigmaMk +/- theorem Set.sigma_empty +/- theorem Set.sigma_union +/- theorem Set.sigma_univ +/- theorem Set.singleton_sigma +/- theorem Set.union_sigma +/- theorem Set.univ_sigma_univ Modified Mathlib/Order/SetNotation.lean 2025-08-01 00:52:56 25ad02e chore(Order/ConditionallyCompleteLattice/Basic): `@[gcongr]` (#27291) This PR adds low priority `@[gcongr]` tags about conditional infima/suprema. ESTIMATED CHANGES Modified Mathlib/Order/CompleteLattice/Basic.lean Modified Mathlib/Order/ConditionallyCompleteLattice/Basic.lean Modified Mathlib/Order/ConditionallyCompleteLattice/Indexed.lean 2025-07-31 23:59:21 553449c chore: remove some duplicate instances (#25410) I have a program that finds duplicate instances, as described at [#mathlib4 > duplicate declarations](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/duplicate.20declarations/with/518941841) This PR is a start at fixing these in Mathlib. ESTIMATED CHANGES Modified Mathlib/Algebra/Category/Grp/Adjunctions.lean Modified Mathlib/Algebra/Category/ModuleCat/Basic.lean Modified Mathlib/Algebra/Group/Fin/Basic.lean Modified Mathlib/Algebra/Homology/Embedding/IsSupported.lean Modified Mathlib/Algebra/Order/Hom/Monoid.lean Modified Mathlib/Algebra/Ring/Divisibility/Basic.lean Modified Mathlib/Algebra/Ring/Subsemiring/Basic.lean Modified Mathlib/AlgebraicGeometry/Limits.lean Modified Mathlib/AlgebraicGeometry/OpenImmersion.lean Modified Mathlib/CategoryTheory/Countable.lean Modified Mathlib/CategoryTheory/EffectiveEpi/Preserves.lean Modified Mathlib/CategoryTheory/ObjectProperty/FullSubcategory.lean Modified Mathlib/Computability/TuringDegree.lean Modified Mathlib/Data/ENat/Basic.lean Modified Mathlib/Data/Fintype/EquivFin.lean Modified Mathlib/Data/List/TakeDrop.lean Modified Mathlib/Data/Matroid/Constructions.lean Modified Mathlib/Data/Nat/Basic.lean Modified Mathlib/Data/Option/Defs.lean + theorem Option.merge_isAssociative + theorem Option.merge_isCommutative + theorem Option.merge_isId + theorem Option.merge_isIdempotent Modified Mathlib/Data/Ordering/Basic.lean Modified Mathlib/Data/Sign/Defs.lean Modified Mathlib/GroupTheory/Perm/Sign.lean Modified Mathlib/Logic/Embedding/Basic.lean Modified Mathlib/Logic/Equiv/Fin/Basic.lean + theorem subsingleton_fin_one + theorem subsingleton_fin_zero Modified Mathlib/ModelTheory/Basic.lean Modified Mathlib/Order/Monotone/Basic.lean Modified Mathlib/SetTheory/Cardinal/Basic.lean Modified Mathlib/Tactic/Polyrith.lean Modified Mathlib/Topology/Compactness/Lindelof.lean 2025-07-31 23:29:12 2986ee0 feat(RingTheory/ValuativeRel): IsRankLeOne when there is a compatible Zm0 or NNReal valuation (#27183) and then provide it for Q_[p] ESTIMATED CHANGES Modified Mathlib/NumberTheory/Padics/ValuativeRel.lean Modified Mathlib/RingTheory/Valuation/RankOne.lean + theorem ValuativeRel.IsRankLeOne.of_compatible_mulArchimedean Modified Mathlib/RingTheory/Valuation/ValuativeRel.lean +/- def ValuativeExtension.mapValueGroupWithZero + theorem ValuativeExtension.mapValueGroupWithZero_mk + def ValuativeRel.ValueGroupWithZero.embed + theorem ValuativeRel.ValueGroupWithZero.embed_mk + theorem ValuativeRel.ValueGroupWithZero.embed_strictMono + theorem ValuativeRel.ValueGroupWithZero.embed_valuation + theorem ValuativeRel.ValueGroupWithZero.mk_eq_div + theorem ValuativeRel.val_posSubmonoid_ne_zero + theorem ValuativeRel.valuation_eq_zero_iff + theorem ValuativeRel.valuation_posSubmonoid_ne_zero + theorem ValuativeRel.valuation_posSubmonoid_ne_zero_of_compatible 2025-07-31 22:37:57 f88671b feat(Valued/LocallyCompact): do not require RankOne to show IsDVR (#27412) for `isDiscreteValuationRing_of_compactSpace` for the CFT workshop ESTIMATED CHANGES Modified Mathlib/GroupTheory/ArchimedeanDensely.lean + theorem Units.mulArchimedean_iff Modified Mathlib/Order/Basic.lean +/- theorem Subsingleton.instDenselyOrdered Modified Mathlib/Topology/Algebra/Valued/LocallyCompact.lean +/- theorem Valued.integer.isDiscreteValuationRing_of_compactSpace +/- theorem Valued.integer.isPrincipalIdealRing_of_compactSpace + theorem Valued.integer.locallyFiniteOrder_units_mrange_of_isCompact_integer + theorem Valued.integer.mulArchimedean_mrange_of_isCompact_integer 2025-07-31 19:52:08 c604c95 feat: more RestrictedProduct API (#25715) A constructor, more algebra boilerplate (e.g. `SMul ℕ` on a restricted product of `AddMonoid`s, restricted product of `CommMonoid`s is a `CommMonoid`, restricted product of `R`-modules wrt `R`-submodules is an `R`-module, variant of `map` when the index set doesn't change). From the FLT project. ESTIMATED CHANGES Modified Mathlib/Topology/Algebra/RestrictedProduct/Basic.lean + def RestrictedProduct.coeMonoidHom +/- def RestrictedProduct.map + def RestrictedProduct.mapAlong + def RestrictedProduct.mapAlongMonoidHom + theorem RestrictedProduct.mapAlongMonoidHom_apply + def RestrictedProduct.mapAlongRingHom + theorem RestrictedProduct.mapAlongRingHom_apply + theorem RestrictedProduct.mapAlong_apply - def RestrictedProduct.mapMonoidHom - theorem RestrictedProduct.mapMonoidHom_apply - def RestrictedProduct.mapRingHom - theorem RestrictedProduct.mapRingHom_apply +/- theorem RestrictedProduct.map_apply + theorem RestrictedProduct.mk_apply Modified Mathlib/Topology/Algebra/RestrictedProduct/TopologicalSpace.lean + theorem RestrictedProduct.mapAlong_continuous - theorem RestrictedProduct.map_continuous 2025-07-31 19:24:04 7bb69e9 feat: basic translations between `X →o Y` and `X ⥤ Y` (#26415) Adds basic definitions translating between `X →o Y` and `X ⥤ Y` where `X` and `Y` are regarded as `Preorder` categories. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Category/Preorder.lean +/- theorem CategoryTheory.Functor.monotone + def CategoryTheory.Functor.toOrderHom + def OrderHom.equivFunctor + def OrderHom.equivalenceFunctor 2025-07-31 18:25:29 38a68eb doc: fix some typos in module docstrings (#27761) Fix some typos in module docstrings. ESTIMATED CHANGES Modified Mathlib/AlgebraicGeometry/Morphisms/Basic.lean Modified Mathlib/NumberTheory/KummerDedekind.lean Modified Mathlib/RingTheory/DedekindDomain/Dvr.lean 2025-07-31 18:12:08 6ccf977 chore(RingTheory/Spectrum/Prime/LTSeries): fix author name and golf (#27760) Fix author name and golf. ESTIMATED CHANGES Modified Mathlib/RingTheory/Spectrum/Prime/LTSeries.lean 2025-07-31 17:12:00 0b961c1 feat: mapping the product measure by eval (#27721) The evaluation function at `i` is `QuasiMeasurePreserving` from `Measure.pi μ` to `μ i`. If the `μ i`s are probability measures, then it is `MeasurePreserving`. ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Constructions/Pi.lean + theorem MeasureTheory.Measure.pi_map_eval + theorem MeasureTheory.Measure.quasiMeasurePreserving_eval + theorem MeasureTheory.measurePreserving_eval 2025-07-31 17:11:58 c53189a feat(to_additive): improve (error) message of `(reorder := ...)` (#27692) This PR improves the ease of use of `(reorder := ...)` for the `to_dual` tactic. It also supersedes #27452, by removing the unneeded `List.reverse`. ESTIMATED CHANGES Modified Mathlib/Tactic/ToAdditive/Frontend.lean Modified MathlibTest/toAdditive.lean 2025-07-31 17:11:56 ef7b38b chore: move and golf Subring.mem_closure_image_of (#27652) ESTIMATED CHANGES Modified Mathlib/Algebra/Ring/Subring/Basic.lean + theorem Subring.mem_closure_image_of Modified Mathlib/RingTheory/Jacobson/Ring.lean - theorem Polynomial.Subring.mem_closure_image_of 2025-07-31 17:11:54 a15945e chore: scope or remove some instances (#27592) Per @fpvandoorn's suggestions at [#mathlib4 > type-class inference slow/timing out @ 💬](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/type-class.20inference.20slow.2Ftiming.20out/near/530602780). ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Monoid/LocallyFiniteOrder.lean Modified Mathlib/Algebra/Ring/Basic.lean + theorem Subsingleton.to_noZeroDivisors Modified Mathlib/GroupTheory/Finiteness.lean + theorem Monoid.fg_of_finite Modified Mathlib/LinearAlgebra/FreeModule/Basic.lean + theorem Module.Free.of_subsingleton' Modified Mathlib/Order/Disjoint.lean + theorem Subsingleton.instComplementedLattice Modified Mathlib/Order/WellQuasiOrder.lean + theorem Finite.to_wellQuasiOrderedLE Modified Mathlib/RingTheory/AlgebraicIndependent/TranscendenceBasis.lean Modified Mathlib/RingTheory/Artinian/Module.lean + theorem isArtinian_of_finite 2025-07-31 16:18:51 bfadd55 feat: `f '' s = f ⁻¹' s` for an involution `f` (#27746) ESTIMATED CHANGES Modified Mathlib/Data/Set/Image.lean + theorem Function.Involutive.image_eq_preimage 2025-07-31 15:44:19 f5dca22 chore: split long file `DedekindDomain/Ideal.lean` (#27676) This PR splits `Mathlib/RingTheory/DedekindDomain/Ideal.lean` into three parts: * `FractionalIdeal/Inverse.lean` defines the `Inv` operator on fractional ideals, and proves basic results. * `DedekindDomain/Ideal/Basic.lean` defines `IsDedekindDomainInv`, shows equivalence with `IsDedekindDomain` and provides unique factorization instances. This is sufficient for `ClassGroup.lean`. * `DedekindDomain/Ideal/Lemmas.lean` defines `HeightOneSpectrum` and contains remaining lemmas. Also upstream a lemma that doesn't refer to Dedekind domains. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Module/DedekindDomain.lean Modified Mathlib/NumberTheory/KummerDedekind.lean Modified Mathlib/NumberTheory/RamificationInertia/Basic.lean Modified Mathlib/RingTheory/ClassGroup.lean Modified Mathlib/RingTheory/DedekindDomain/AdicValuation.lean Modified Mathlib/RingTheory/DedekindDomain/Factorization.lean Added Mathlib/RingTheory/DedekindDomain/Ideal/Basic.lean + theorem FractionalIdeal.adjoinIntegral_eq_one_of_isUnit + theorem FractionalIdeal.coe_ideal_mul_inv + theorem FractionalIdeal.mul_inv_cancel_of_le_one + theorem FractionalIdeal.mul_left_le_iff + theorem FractionalIdeal.mul_right_le_iff + theorem FractionalIdeal.mul_right_strictMono + theorem FractionalIdeal.not_inv_le_one_of_ne_bot + theorem Ideal.dvdNotUnit_iff_lt + theorem Ideal.dvd_iff_le + theorem IsDedekindDomainInv.dimensionLEOne + theorem IsDedekindDomainInv.integrallyClosed + theorem IsDedekindDomainInv.inv_mul_eq_one + theorem IsDedekindDomainInv.isDedekindDomain + theorem IsDedekindDomainInv.isNoetherianRing + theorem IsDedekindDomainInv.mul_inv_eq_one + def IsDedekindDomainInv + theorem exists_multiset_prod_cons_le_and_prod_not_le + theorem isDedekindDomainInv_iff + theorem isDedekindDomain_iff_isDedekindDomainInv + theorem one_mem_inv_coe_ideal Renamed Mathlib/RingTheory/DedekindDomain/Ideal.lean to Mathlib/RingTheory/DedekindDomain/Ideal/Lemmas.lean - theorem FractionalIdeal.adjoinIntegral_eq_one_of_isUnit - theorem FractionalIdeal.bot_lt_mul_inv - theorem FractionalIdeal.coe_ideal_le_self_mul_inv - theorem FractionalIdeal.coe_ideal_mul_inv - theorem FractionalIdeal.coe_ideal_span_singleton_div_self - theorem FractionalIdeal.coe_ideal_span_singleton_inv_mul - theorem FractionalIdeal.coe_ideal_span_singleton_mul_inv - theorem FractionalIdeal.coe_inv_of_nonzero - theorem FractionalIdeal.den_mem_inv - theorem FractionalIdeal.inv_anti_mono - theorem FractionalIdeal.inv_eq - theorem FractionalIdeal.inv_nonzero - theorem FractionalIdeal.inv_zero' - theorem FractionalIdeal.invertible_iff_generator_nonzero - theorem FractionalIdeal.invertible_of_principal - theorem FractionalIdeal.isPrincipal_inv - theorem FractionalIdeal.le_self_mul_inv - theorem FractionalIdeal.mem_inv_iff - theorem FractionalIdeal.mul_generator_self_inv - theorem FractionalIdeal.mul_inv_cancel_iff - theorem FractionalIdeal.mul_inv_cancel_iff_isUnit - theorem FractionalIdeal.mul_inv_cancel_of_le_one - theorem FractionalIdeal.mul_left_le_iff - theorem FractionalIdeal.mul_right_le_iff - theorem FractionalIdeal.mul_right_strictMono - theorem FractionalIdeal.not_inv_le_one_of_ne_bot - theorem FractionalIdeal.num_le_mul_inv - theorem FractionalIdeal.right_inverse_eq - theorem FractionalIdeal.spanSingleton_div_self - theorem FractionalIdeal.spanSingleton_div_spanSingleton - theorem FractionalIdeal.spanSingleton_inv - theorem FractionalIdeal.spanSingleton_inv_mul - theorem FractionalIdeal.spanSingleton_mul_inv - theorem Ideal.coprime_of_no_prime_ge - theorem Ideal.dvdNotUnit_iff_lt - theorem Ideal.dvd_iff_le - theorem IsDedekindDomainInv.dimensionLEOne - theorem IsDedekindDomainInv.integrallyClosed - theorem IsDedekindDomainInv.inv_mul_eq_one - theorem IsDedekindDomainInv.isDedekindDomain - theorem IsDedekindDomainInv.isNoetherianRing - theorem IsDedekindDomainInv.mul_inv_eq_one - def IsDedekindDomainInv - theorem exists_multiset_prod_cons_le_and_prod_not_le - theorem isDedekindDomainInv_iff - theorem isDedekindDomain_iff_isDedekindDomainInv - theorem one_mem_inv_coe_ideal Modified Mathlib/RingTheory/DedekindDomain/PID.lean Added Mathlib/RingTheory/FractionalIdeal/Inverse.lean + theorem FractionalIdeal.bot_lt_mul_inv + theorem FractionalIdeal.coe_ideal_le_self_mul_inv + theorem FractionalIdeal.coe_ideal_span_singleton_div_self + theorem FractionalIdeal.coe_ideal_span_singleton_inv_mul + theorem FractionalIdeal.coe_ideal_span_singleton_mul_inv + theorem FractionalIdeal.coe_inv_of_nonzero + theorem FractionalIdeal.den_mem_inv + theorem FractionalIdeal.inv_anti_mono + theorem FractionalIdeal.inv_eq + theorem FractionalIdeal.inv_nonzero + theorem FractionalIdeal.inv_zero' + theorem FractionalIdeal.invertible_iff_generator_nonzero + theorem FractionalIdeal.invertible_of_principal + theorem FractionalIdeal.isPrincipal_inv + theorem FractionalIdeal.le_self_mul_inv + theorem FractionalIdeal.mem_inv_iff + theorem FractionalIdeal.mul_generator_self_inv + theorem FractionalIdeal.mul_inv_cancel_iff + theorem FractionalIdeal.mul_inv_cancel_iff_isUnit + theorem FractionalIdeal.num_le_mul_inv + theorem FractionalIdeal.right_inverse_eq + theorem FractionalIdeal.spanSingleton_div_self + theorem FractionalIdeal.spanSingleton_div_spanSingleton + theorem FractionalIdeal.spanSingleton_inv + theorem FractionalIdeal.spanSingleton_inv_mul + theorem FractionalIdeal.spanSingleton_mul_inv Modified Mathlib/RingTheory/Ideal/Norm/AbsNorm.lean Modified Mathlib/RingTheory/Ideal/Operations.lean + theorem Ideal.coprime_of_no_prime_ge 2025-07-31 15:08:59 53fafe9 feat(Topology/Order/Basic): lower set in well-order is open (#26928) As well as the other analogous theorems. ESTIMATED CHANGES Modified Mathlib/Order/UpperLower/Basic.lean + theorem IsLowerSet.eq_empty_or_Iic + theorem IsLowerSet.eq_univ_or_Iio + theorem IsUpperSet.eq_empty_or_Ici + theorem IsUpperSet.eq_univ_or_Ioi Modified Mathlib/Topology/Order/Basic.lean + theorem IsLowerSet.isClosed + theorem IsLowerSet.isOpen + theorem IsUpperSet.isClosed + theorem IsUpperSet.isOpen 2025-07-31 14:34:30 e75bdf0 feat(Arctan): add more `simp` lemmas (#27719) Also add some `positivity` extensions. ESTIMATED CHANGES Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Arctan.lean + def Mathlib.Meta.Positivity.evalRealArctan + def Mathlib.Meta.Positivity.evalRealCosArctan + def Mathlib.Meta.Positivity.evalRealSinArctan +/- theorem Real.arccos_eq_arctan +/- theorem Real.arcsin_eq_arctan +/- theorem Real.arctan_add +/- theorem Real.arctan_add_arctan_lt_pi_div_two +/- theorem Real.arctan_add_eq_add_pi +/- theorem Real.arctan_add_eq_sub_pi +/- theorem Real.arctan_eq_arccos + theorem Real.arctan_eq_neg_pi_div_four +/- theorem Real.arctan_eq_of_tan_eq + theorem Real.arctan_eq_pi_div_four +/- theorem Real.arctan_eq_zero_iff + theorem Real.arctan_inj +/- theorem Real.arctan_inv_of_neg +/- theorem Real.arctan_inv_of_pos +/- theorem Real.arctan_le_arctan + theorem Real.arctan_le_arctan_iff + theorem Real.arctan_le_zero +/- theorem Real.arctan_lt_arctan + theorem Real.arctan_lt_arctan_iff + theorem Real.arctan_lt_zero + theorem Real.arctan_mono +/- theorem Real.arctan_ne_mul_pi_div_two + theorem Real.arctan_nonneg + theorem Real.arctan_pos +/- theorem Real.arctan_tan +/- theorem Real.continuousAt_arctan + theorem Real.sin_arctan_eq_zero + theorem Real.sin_arctan_le_zero + theorem Real.sin_arctan_lt_zero + theorem Real.sin_arctan_nonneg + theorem Real.sin_arctan_pos + theorem Real.sin_arctan_strictMono +/- theorem Real.tan_add' +/- theorem Real.tan_add +/- theorem Real.tan_two_mul +/- theorem Real.two_mul_arctan +/- theorem Real.two_mul_arctan_add_pi +/- theorem Real.two_mul_arctan_sub_pi Modified MathlibTest/positivity.lean 2025-07-31 14:34:29 40704ea chore: optimize code (#27669) Following suggestions of @YaelDillies, optimize the code in `Analysis/Complex/Conformal.lean`. The optimizations were suggested during the review of #26839 but came in after Bors had already merged the PR. ESTIMATED CHANGES Modified Mathlib/Analysis/Complex/Conformal.lean +/- theorem ContinuousLinearMap.coe_complexOfReal +/- theorem LinearMap.coe_complexOfReal 2025-07-31 14:34:27 dc2191c chore(AlgebraicTopology/SimplexCategory): golf `factor_δ_spec` (#27615) ESTIMATED CHANGES Modified Mathlib/AlgebraicTopology/SimplexCategory/Basic.lean 2025-07-31 13:50:39 3e0fffb feat: lemmas on the volume on `I` applied to intervals (#27513) - `instance : NoAtoms (volume : Measure I)` - `(volume : Measure I) s = volume (Subtype.val '' s)` - `(volume : Measure I) (Icc x y) = ENNReal.ofReal (y - x)` - `(volume : Measure I) (Ico x y) = ENNReal.ofReal (y - x)` - `(volume : Measure I) (Ioc x y) = ENNReal.ofReal (y - x)` - `(volume : Measure I) (Ioo x y) = ENNReal.ofReal (y - x)` - `(volume : Measure I) (Iic x) = ENNReal.ofReal x` - `(volume : Measure I) (Ici x) = ENNReal.ofReal (1 - x)` - `(volume : Measure I) (Iio x) = ENNReal.ofReal x` - `(volume : Measure I) (Ioi x) = ENNReal.ofReal (1 - x)` - `(volume : Measure I) (uIcc x y) = edist y x` - `(volume : Measure I) (uIoc x y) = edist y x` - `(volume : Measure I) (uIoo x y) = edist y x` ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Constructions/UnitInterval.lean + theorem unitInterval.measurableEmbedding_coe + theorem unitInterval.volume_Icc + theorem unitInterval.volume_Ici + theorem unitInterval.volume_Ico + theorem unitInterval.volume_Iic + theorem unitInterval.volume_Iio + theorem unitInterval.volume_Ioc + theorem unitInterval.volume_Ioi + theorem unitInterval.volume_Ioo + theorem unitInterval.volume_apply + theorem unitInterval.volume_uIcc + theorem unitInterval.volume_uIoc + theorem unitInterval.volume_uIoo 2025-07-31 13:50:37 2ca6438 docs(Topology/Perfect): Mention dense-in-itself (#25343) The file `Mathlib/Topology/Perfect` defines a "nonstandard" predicate `Preperfect C` to mean that every point of `C` is an accumulation point of `C`. This property already has a name, it is called [dense-in-itself](https://en.wikipedia.org/wiki/Dense-in-itself). This PR adds this name to the docs. ESTIMATED CHANGES Modified Mathlib/Topology/Perfect.lean 2025-07-31 12:37:44 23df330 chore: incomplete removal of >6 month old deprecations (#27717) We need a better process for this. ESTIMATED CHANGES Modified Mathlib/Algebra/BigOperators/Group/List/Basic.lean Modified Mathlib/Algebra/CharP/Two.lean - theorem CharTwo.sub_eq_add' Modified Mathlib/Algebra/Order/Monoid/Unbundled/WithTop.lean Modified Mathlib/AlgebraicGeometry/Morphisms/ClosedImmersion.lean Modified Mathlib/AlgebraicGeometry/Morphisms/Preimmersion.lean Modified Mathlib/AlgebraicGeometry/Restrict.lean Modified Mathlib/Analysis/Analytic/Basic.lean Modified Mathlib/Analysis/Calculus/ContDiff/Basic.lean Modified Mathlib/Analysis/Calculus/ContDiff/Defs.lean Modified Mathlib/Analysis/Calculus/Deriv/Basic.lean Modified Mathlib/Analysis/Calculus/Deriv/Comp.lean Modified Mathlib/Analysis/Calculus/FDeriv/Basic.lean Modified Mathlib/Analysis/Calculus/FDeriv/Comp.lean Modified Mathlib/Analysis/Calculus/LineDeriv/Basic.lean Modified Mathlib/Analysis/Complex/ReImTopology.lean Modified Mathlib/Analysis/Complex/UpperHalfPlane/Topology.lean Modified Mathlib/Analysis/LocallyConvex/WithSeminorms.lean Modified Mathlib/Analysis/Normed/Operator/Banach.lean Modified Mathlib/Analysis/Normed/Operator/LinearIsometry.lean Modified Mathlib/Analysis/NormedSpace/OperatorNorm/NormedSpace.lean Modified Mathlib/CategoryTheory/Limits/Preserves/Limits.lean Modified Mathlib/CategoryTheory/Sites/Canonical.lean Modified Mathlib/Data/ENNReal/Operations.lean Modified Mathlib/Data/ENat/Basic.lean Modified Mathlib/Data/List/Flatten.lean Modified Mathlib/Data/List/SplitBy.lean Modified Mathlib/Data/Nat/Factorization/Basic.lean Modified Mathlib/Data/Nat/Factorization/Defs.lean Modified Mathlib/Data/Nat/Factorization/PrimePow.lean Modified Mathlib/Data/Set/Subset.lean Modified Mathlib/FieldTheory/IntermediateField/Adjoin/Algebra.lean Modified Mathlib/Geometry/Manifold/ContMDiff/Defs.lean Modified Mathlib/Geometry/Manifold/LocalInvariantProperties.lean Modified Mathlib/MeasureTheory/Constructions/BorelSpace/Basic.lean Modified Mathlib/MeasureTheory/Function/StronglyMeasurable/AEStronglyMeasurable.lean Modified Mathlib/MeasureTheory/Measure/DiracProba.lean Modified Mathlib/MeasureTheory/Measure/FiniteMeasure.lean Modified Mathlib/MeasureTheory/Measure/ProbabilityMeasure.lean Modified Mathlib/Order/WellFounded.lean Modified docs/undergrad.yaml 2025-07-31 12:13:30 b451018 chore: deprecate cc tactic (#27710) This PR deprecates Mathlib's `cc` tactic. (This is a port of Leo's implementation in Lean 3.) While `cc` does support some goals which `grind` doesn't (some by design for performance reasons, others we should catch up soon anyway), Mathlib hasn't ever relied on this additional functionality, and we don't know of downstream libraries using it. If we discover such users, I'd like to first have a change to migrate them to `grind`, and then we can decide whether to cancel the deprecation, or spin out `cc` into a standalone library. ESTIMATED CHANGES Modified Mathlib/Tactic/CC.lean Modified MathlibTest/cc.lean 2025-07-31 12:04:36 4a14c8e chore(autolabel): label algebraic topology PRs separately (#27700) [Zulip discussion](https://leanprover.zulipchat.com/#narrow/channel/345428-mathlib-reviewers/topic/New.20label.20for.20algebraic.20topology.20PRs.3F/with/524724457) in the mathlib-reviewers stream ESTIMATED CHANGES Modified scripts/autolabel.lean 2025-07-31 11:55:35 d676d1b feat(GroupTheory/ArchimedeanDensely): locally finite linearly ordered groups are mul archimedean (#27410) for CFT workshop ESTIMATED CHANGES Modified Mathlib/GroupTheory/ArchimedeanDensely.lean + theorem Archimedean.of_locallyFiniteOrder + theorem MulArchimedean.of_locallyFiniteOrder 2025-07-31 10:55:03 7f8a667 chore: remove old 2024-04 deprecations (#27713) This PR removes some 15 month old deprecations. I forget why they weren't removed in previous cycles, but they seem okay to remove now. ESTIMATED CHANGES Modified Mathlib/Analysis/InnerProductSpace/PiL2.lean - theorem EuclideanSpace.inner_piLp_equiv_symm - theorem Matrix.piLp_equiv_toEuclideanLin - theorem Matrix.piLp_equiv_toEuclideanLin_apply - theorem Matrix.toEuclideanLin_apply_piLp_equiv_symm - theorem Matrix.toEuclideanLin_piLp_equiv_symm - theorem WithLp.equiv_single - theorem WithLp.equiv_symm_single Modified Mathlib/Analysis/Normed/Lp/MeasurableSpace.lean - theorem WithLp.measurable_equiv - theorem WithLp.measurable_equiv_symm Modified Mathlib/Analysis/Normed/Lp/PiLp.lean - theorem PiLp.antilipschitzWith_equiv - theorem PiLp.continuous_equiv - theorem PiLp.continuous_equiv_symm - theorem PiLp.dist_equiv_symm_single_same - theorem PiLp.edist_equiv_symm_single_same - theorem PiLp.infty_equiv_isometry - theorem PiLp.lipschitzWith_equiv - theorem PiLp.nndist_equiv_symm_single_same - theorem PiLp.nnnorm_equiv - theorem PiLp.nnnorm_equiv_symm - theorem PiLp.nnnorm_equiv_symm_const' - theorem PiLp.nnnorm_equiv_symm_const - theorem PiLp.nnnorm_equiv_symm_one - theorem PiLp.nnnorm_equiv_symm_single - theorem PiLp.norm_equiv - theorem PiLp.norm_equiv_symm - theorem PiLp.norm_equiv_symm_const' - theorem PiLp.norm_equiv_symm_const - theorem PiLp.norm_equiv_symm_one - theorem PiLp.norm_equiv_symm_single - theorem PiLp.uniformContinuous_equiv - theorem PiLp.uniformContinuous_equiv_symm - theorem WithLp.equiv_pi_apply - theorem WithLp.equiv_symm_pi_apply Modified Mathlib/Analysis/Normed/Lp/ProdLp.lean - theorem WithLp.dist_equiv_symm_fst - theorem WithLp.dist_equiv_symm_snd - theorem WithLp.edist_equiv_symm_fst - theorem WithLp.edist_equiv_symm_snd - theorem WithLp.equiv_fst - theorem WithLp.equiv_snd - theorem WithLp.equiv_symm_fst - theorem WithLp.equiv_symm_snd - theorem WithLp.nndist_equiv_symm_fst - theorem WithLp.nndist_equiv_symm_snd - theorem WithLp.nnnorm_equiv_symm_fst - theorem WithLp.nnnorm_equiv_symm_snd - theorem WithLp.norm_equiv_symm_fst - theorem WithLp.norm_equiv_symm_snd - theorem WithLp.prod_antilipschitzWith_equiv - theorem WithLp.prod_continuous_equiv - theorem WithLp.prod_continuous_equiv_symm - theorem WithLp.prod_infty_equiv_isometry - theorem WithLp.prod_lipschitzWith_equiv - theorem WithLp.prod_nnnorm_equiv - theorem WithLp.prod_nnnorm_equiv_symm - theorem WithLp.prod_norm_equiv - theorem WithLp.prod_norm_equiv_symm - theorem WithLp.prod_uniformContinuous_equiv - theorem WithLp.prod_uniformContinuous_equiv_symm Modified Mathlib/Analysis/Quaternion.lean - theorem Quaternion.norm_piLp_equiv_symm_equivTuple Modified Mathlib/MeasureTheory/Measure/Haar/InnerProductSpace.lean - theorem PiLp.volume_preserving_equiv - theorem PiLp.volume_preserving_equiv_symm 2025-07-31 10:28:23 968ed34 feat(RatFunc/Degree): intDegree_inv (#27625) Add `intDegree_inv`, a lemma over `RatFunc` that states that the degree of the inverse of `x` is minus the degree of `x`. ESTIMATED CHANGES Modified Mathlib/FieldTheory/RatFunc/Degree.lean + theorem RatFunc.intDegree_inv 2025-07-31 10:13:13 9482ba1 chore(Data/QPF): golf `mem_supp` using `grind` (#27730) ESTIMATED CHANGES Modified Mathlib/Data/QPF/Multivariate/Basic.lean 2025-07-31 10:13:11 da21c24 chore(Combinatorics/SetFamily): golf `familyMeasure_compression_lt_familyMeasure` using `grind` (#27727) ESTIMATED CHANGES Modified Mathlib/Combinatorics/SetFamily/KruskalKatona.lean 2025-07-31 10:13:10 cf035a8 chore(Analysis/SpecialFunctions): golf `posPart_negPart_unique` using `grind` (#27726) ESTIMATED CHANGES Modified Mathlib/Analysis/SpecialFunctions/ContinuousFunctionalCalculus/PosPart/Basic.lean 2025-07-31 10:13:08 58e9d29 chore(Analysis/InnerProductSpace): golf `maximal_orthonormal_iff_orthogonalComplement_eq_bot` using `grind` (#27725) ESTIMATED CHANGES Modified Mathlib/Analysis/InnerProductSpace/Projection.lean 2025-07-31 10:13:06 8fd84a1 chore(Analysis/Calculus): golf `lhopital_zero_right_on_Ioo` using `grind` (#27724) ESTIMATED CHANGES Modified Mathlib/Analysis/Calculus/LHopital.lean 2025-07-31 10:13:05 45cf205 chore(Analysis/Calculus): golf `IsOpen.exists_smooth_support_eq` using `grind` (#27723) ESTIMATED CHANGES Modified Mathlib/Analysis/Calculus/BumpFunction/FiniteDimension.lean 2025-07-31 10:13:03 33cfd1d chore(Analysis/Analytic): golf `isClopen_setOf_analyticOrderAt_eq_top` using `grind` (#27722) ESTIMATED CHANGES Modified Mathlib/Analysis/Analytic/Order.lean 2025-07-31 09:17:06 8495a95 feat(gcongr): also use more general lemmas, closing extra goals with rfl (#26907) This PR fixes an annoyance in tagging `gcongr` lemmas: if your function has `n` arguments in which to use congruence, then you would need to provide `2^n-1` `gcongr` lemmas. Now, it suffices to only tag the most general `gcongr` lemma, and in more specific cases, the extra goals will be closed using `rfl`. While working on this, more issues with `gcongr` came up, and these all needed to be dealt with in the same PR: - When applying a `gcongr` lemma, this should be done in the `reducible` transparency. The transparency was already bumped form `default` to `instances` after a zulip discussion ([#mathlib4 > gcongr unfold DFunLike.coe](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/gcongr.20unfold.20DFunLike.2Ecoe/with/482186693)). But I found that the same issue appears at `instances` transparency instead of `reducible`. MWE: ``` import Mathlib open MeasureTheory variable {α : Type*} (a : Set α) {μ : OuterMeasure α} {μ' : OuterMeasure α} @[gcongr] -- remove this tag to make the last example work lemma mono_outerMeasure (h : μ ≤ μ') : μ a ≤ μ' a := h a example (h : μ ≤ μ') : μ a ≤ μ' a := by gcongr variable [MeasurableSpace α] {ν : Measure α} {ν' : Measure α} @[gcongr] lemma mono_measure (h : ν ≤ ν') : ν a ≤ ν' a := h a example (h : ν ≤ ν') : ν a ≤ ν' a := by with_reducible apply mono_outerMeasure set_option trace.Meta.isDefEq true in with_reducible gcongr ``` This aligns with the `congr!` tactic - Using `reducible` transparency is not compatible with the approach of matching `varyingArgs`, because when comparing instance arguments, we need to use at least `instances` transparency. So, instead of storing the lemmas by `varyingArgs`, we sort them by the number of varying arguments, and simply try applying all the lemmas (which should be cheap in `reducible` transparency). This aligns with `congr`/`congr!`(/`simp`) which also tries all of the lemmas for the given constant. - As a result of sorting the lemmas in the same way as `congr` lemmas, more recently added lemmas are now tried before older ones. This causes an issue which has to be solved by implementing a priority argument for the `gcongr` tag (similar to how `instance` and `simp` work), e.g.`@[gcongr high]`. This aligns with the `@[congr]` tag. ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Pointwise/Finset/Basic.lean Modified Mathlib/Algebra/Group/Pointwise/Set/Basic.lean Modified Mathlib/Algebra/Group/Pointwise/Set/Scalar.lean +/- theorem Set.vsub_subset_vsub_left +/- theorem Set.vsub_subset_vsub_right Modified Mathlib/Algebra/Order/GroupWithZero/Unbundled/Basic.lean Modified Mathlib/Algebra/Order/Monoid/Unbundled/Basic.lean Modified Mathlib/Algebra/Order/Sub/Defs.lean +/- theorem tsub_le_tsub_left +/- theorem tsub_le_tsub_right Modified Mathlib/Algebra/Ring/Submonoid/Pointwise.lean +/- theorem AddSubmonoid.mul_le_mul_left +/- theorem AddSubmonoid.mul_le_mul_right Modified Mathlib/Analysis/Complex/UpperHalfPlane/Topology.lean Modified Mathlib/Analysis/Distribution/SchwartzSpace.lean Modified Mathlib/Analysis/FunctionalSpaces/SobolevInequality.lean Modified Mathlib/Analysis/MellinTransform.lean Modified Mathlib/Combinatorics/SimpleGraph/Subgraph.lean Modified Mathlib/Data/ENNReal/Inv.lean Modified Mathlib/Data/Finset/Lattice/Basic.lean Modified Mathlib/Data/Finset/NAry.lean Modified Mathlib/Data/Finset/Prod.lean Modified Mathlib/Data/Int/ModEq.lean Modified Mathlib/Data/List/Perm/Basic.lean Modified Mathlib/Data/Nat/Basic.lean Modified Mathlib/Data/Nat/ModEq.lean Modified Mathlib/Data/Set/Basic.lean Modified Mathlib/Data/Set/NAry.lean Modified Mathlib/Data/Set/Prod.lean Modified Mathlib/Geometry/Manifold/Riemannian/Basic.lean Modified Mathlib/MeasureTheory/Function/LpSeminorm/Basic.lean Modified Mathlib/MeasureTheory/Function/SimpleFunc.lean Modified Mathlib/MeasureTheory/Integral/Lebesgue/Basic.lean +/- theorem MeasureTheory.lintegral_mono_fn' +/- theorem MeasureTheory.lintegral_mono_fn Modified Mathlib/MeasureTheory/Measure/Lebesgue/EqHaar.lean Modified Mathlib/MeasureTheory/Measure/Restrict.lean Modified Mathlib/NumberTheory/Bertrand.lean Modified Mathlib/Order/Basic.lean - def GCongr.exactLeOfLt - theorem GCongr.gt_imp_gt - theorem GCongr.gt_imp_gt_left - theorem GCongr.gt_imp_gt_right - theorem GCongr.le_imp_le - theorem GCongr.lt_imp_lt + def Mathlib.Tactic.GCongr.exactLeOfLt + theorem Mathlib.Tactic.GCongr.gt_imp_gt + theorem le_imp_le_of_le_of_le - theorem le_implies_le_of_le_of_le + theorem lt_imp_lt_of_le_of_le Modified Mathlib/Order/BooleanAlgebra/Set.lean Modified Mathlib/Order/Disjoint.lean +/- theorem Codisjoint.mono_left +/- theorem Codisjoint.mono_right +/- theorem Disjoint.mono_left +/- theorem Disjoint.mono_right Modified Mathlib/Order/Filter/NAry.lean Modified Mathlib/Order/Filter/Prod.lean Modified Mathlib/Order/Fin/Basic.lean - theorem GCongr.Fin.predAbove_le_predAbove_right - theorem GCongr.predAbove_le_predAbove_left Modified Mathlib/Order/Heyting/Basic.lean Modified Mathlib/Order/Interval/Finset/Basic.lean Modified Mathlib/Order/Interval/Set/Basic.lean Modified Mathlib/Order/Lattice.lean Modified Mathlib/Order/RelClasses.lean - theorem GCongr.ssubset_imp_ssubset_right - theorem GCongr.ssuperset_imp_ssuperset_left - theorem GCongr.ssuperset_imp_ssuperset_right Modified Mathlib/Order/Sublattice.lean Modified Mathlib/RingTheory/Ideal/Prod.lean Modified Mathlib/Tactic/GCongr/Core.lean + def Lean.MVarId.applyWithArity + def Mathlib.Tactic.GCongr.GCongrLemma.prioLE + def Mathlib.Tactic.GCongr.addGCongrLemmaEntry - def Mathlib.Tactic.GCongr.getTransLemma? +/- def Mathlib.Tactic.GCongr.makeGCongrLemma + def Mathlib.Tactic.GCongr.relImpRelLemma - theorem Mathlib.Tactic.GCongr.rel_trans' - theorem Mathlib.Tactic.GCongr.rel_trans Modified Mathlib/Tactic/GCongr/CoreAttrs.lean - theorem GCongr.and_right_mono - theorem GCongr.imp_right_mono - theorem GCongr.imp_trans + theorem Mathlib.Tactic.GCongr.and_right_mono + theorem Mathlib.Tactic.GCongr.imp_right_mono + theorem Mathlib.Tactic.GCongr.imp_trans Modified Mathlib/Tactic/Monotonicity/Lemmas.lean Modified Mathlib/Topology/UniformSpace/Defs.lean - theorem compRel_left_mono - theorem compRel_right_mono Added MathlibTest/GCongr/GCongr.lean + theorem GCongrTests.mono_measure + theorem GCongrTests.mono_outerMeasure Modified MathlibTest/GCongr/implications.lean Modified MathlibTest/GCongr/inequalities.lean Modified MathlibTest/GRewrite.lean 2025-07-31 05:15:18 e5b94b5 feat(Algebra/Ring/Idempotent): subtraction lemmas for idempotents and star projections (#25910) This allows us to use subtraction with idempotents and star projections. For idempotents `p,q`, `q - p` is idempotent when `p * q = p = q * p`. For star projections `p,q`, `q - p` is a star projection when either `p * q = p` or `q * p = p`. In a star-ordered ring, when `p * q = p` or `q * p = p` we get `p ≤ q`. ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Idempotent.lean + theorem IsIdempotentElem.mul_mul_self + theorem IsIdempotentElem.mul_self_mul Modified Mathlib/Algebra/Order/Star/Basic.lean + theorem IsStarProjection.le_of_mul_eq_left + theorem IsStarProjection.le_of_mul_eq_right Modified Mathlib/Algebra/Ring/Idempotent.lean + theorem IsIdempotentElem.add_iff +/- theorem IsIdempotentElem.add_sub_mul_of_commute + theorem IsIdempotentElem.sub + theorem IsIdempotentElem.sub_iff Modified Mathlib/Algebra/Star/StarProjection.lean +/- theorem IsStarProjection.add_sub_mul_of_commute + theorem IsStarProjection.sub_iff_mul_eq_left + theorem IsStarProjection.sub_iff_mul_eq_right + theorem IsStarProjection.sub_of_mul_eq_left + theorem IsStarProjection.sub_of_mul_eq_right 2025-07-31 04:45:36 4907ae4 feat(CategoryTheory/Adjunction): more results on adjoint triples. (#27650) Lemmas about adjoint triples `F ⊣ G ⊣ H` where either `G` is fully faithful or `F` and `H` are. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Adjunction/Triple.lean + theorem CategoryTheory.Adjunction.Triple.adj₁_counit_app_rightToLeft_app + theorem CategoryTheory.Adjunction.Triple.epi_rightToLeft_app_iff + theorem CategoryTheory.Adjunction.Triple.epi_rightToLeft_app_iff_epi_map_adj₁_unit_app + theorem CategoryTheory.Adjunction.Triple.epi_rightToLeft_app_iff_epi_map_adj₂_counit_app + theorem CategoryTheory.Adjunction.Triple.isIso_unit_iff_isIso_counit + theorem CategoryTheory.Adjunction.Triple.leftToRight_app + theorem CategoryTheory.Adjunction.Triple.leftToRight_app_map_adj₁_unit_app + theorem CategoryTheory.Adjunction.Triple.leftToRight_app_obj + theorem CategoryTheory.Adjunction.Triple.leftToRight_eq_counits + theorem CategoryTheory.Adjunction.Triple.map_adj₂_counit_app_leftToRight_app + theorem CategoryTheory.Adjunction.Triple.map_rightToLeft_app + theorem CategoryTheory.Adjunction.Triple.mono_leftToRight_app_iff + theorem CategoryTheory.Adjunction.Triple.mono_leftToRight_app_iff_mono_adj₁_counit_app + theorem CategoryTheory.Adjunction.Triple.mono_leftToRight_app_iff_mono_adj₂_unit_app + theorem CategoryTheory.Adjunction.Triple.rightToLeft_app_adj₂_unit_app + theorem CategoryTheory.Adjunction.Triple.rightToLeft_eq_counits + theorem CategoryTheory.Adjunction.Triple.rightToLeft_eq_units + theorem CategoryTheory.Adjunction.Triple.whiskerLeft_leftToRight + theorem CategoryTheory.Adjunction.Triple.whiskerRight_rightToLeft + structure CategoryTheory.Adjunction.Triple - theorem CategoryTheory.Adjunction.isIso_unit_iff_isIso_counit Modified Mathlib/CategoryTheory/EpiMono.lean + theorem CategoryTheory.epi_comp_iff_of_epi + theorem CategoryTheory.epi_comp_iff_of_isIso + theorem CategoryTheory.mono_comp_iff_of_isIso + theorem CategoryTheory.mono_comp_iff_of_mono 2025-07-31 03:42:16 6fa8bc9 chore: update Mathlib dependencies 2025-07-31 (#27714) This PR updates the Mathlib dependencies. ESTIMATED CHANGES Modified lake-manifest.json 2025-07-31 03:42:14 4e6a216 feat: use grind in Nat/Int parity results (#27661) ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Int/Even.lean +/- theorem Int.ediv_two_mul_two_of_even +/- theorem Int.emod_two_ne_one +/- theorem Int.emod_two_ne_zero +/- theorem Int.even_add +/- theorem Int.even_add_one +/- theorem Int.even_coe_nat +/- theorem Int.even_mul +/- theorem Int.even_pow' +/- theorem Int.even_pow +/- theorem Int.even_sub +/- theorem Int.even_sub_one +/- theorem Int.not_even_iff +/- theorem Int.two_dvd_ne_zero +/- theorem Int.two_mul_ediv_two_of_even +/- theorem Int.two_not_dvd_two_mul_add_one Modified Mathlib/Algebra/Group/Nat/Even.lean +/- theorem Nat.even_add +/- theorem Nat.even_add_one +/- theorem Nat.even_mul +/- theorem Nat.even_mul_pred_self +/- theorem Nat.even_mul_succ_self +/- theorem Nat.even_pow' +/- theorem Nat.even_pow +/- theorem Nat.even_sub +/- theorem Nat.not_even_iff +/- theorem Nat.not_even_one +/- theorem Nat.one_lt_of_ne_zero_of_even +/- theorem Nat.succ_mod_two_eq_one_iff +/- theorem Nat.succ_mod_two_eq_zero_iff +/- theorem Nat.two_dvd_ne_zero +/- theorem Nat.two_not_dvd_two_mul_add_one +/- theorem Nat.two_not_dvd_two_mul_sub_one Modified Mathlib/Algebra/Ring/Int/Parity.lean +/- theorem Int.add_one_ediv_two_mul_two_of_odd +/- theorem Int.ediv_two_mul_two_add_one_of_odd +/- theorem Int.even_add' +/- theorem Int.even_mul_pred_self +/- theorem Int.even_mul_succ_self +/- theorem Int.even_or_odd +/- theorem Int.even_sub' +/- theorem Int.natAbs_even +/- theorem Int.natAbs_odd +/- theorem Int.ne_of_odd_add +/- theorem Int.not_even_iff_odd +/- theorem Int.not_even_two_mul_add_one +/- theorem Int.not_odd_iff +/- theorem Int.not_odd_iff_even +/- theorem Int.not_odd_zero +/- theorem Int.odd_add' +/- theorem Int.odd_add +/- theorem Int.odd_coe_nat +/- theorem Int.odd_pow' +/- theorem Int.odd_pow +/- theorem Int.odd_sign_iff +/- theorem Int.odd_sub' +/- theorem Int.odd_sub +/- theorem Int.two_mul_ediv_two_add_one_of_odd +/- theorem Int.two_mul_ediv_two_of_odd Modified Mathlib/Algebra/Ring/Parity.lean +/- theorem Nat.Even.sub_odd +/- theorem Nat.Odd.sub_even +/- theorem Nat.Odd.sub_odd +/- theorem Nat.div_two_mul_two_add_one_of_odd +/- theorem Nat.even_add' +/- theorem Nat.even_sub' +/- theorem Nat.even_xor_odd +/- theorem Nat.mod_two_add_add_odd_mod_two +/- theorem Nat.mod_two_add_succ_mod_two +/- theorem Nat.ne_of_odd_add +/- theorem Nat.not_even_iff_odd +/- theorem Nat.not_even_two_mul_add_one +/- theorem Nat.not_odd_iff +/- theorem Nat.not_odd_iff_even +/- theorem Nat.not_odd_zero +/- theorem Nat.odd_add' +/- theorem Nat.odd_add +/- theorem Nat.odd_add_one +/- theorem Nat.odd_mul +/- theorem Nat.odd_pow_iff +/- theorem Nat.odd_sub' +/- theorem Nat.odd_sub +/- theorem Nat.one_add_div_two_mul_two_of_odd +/- theorem Nat.succ_mod_two_add_mod_two +/- theorem Nat.two_mul_div_two_add_one_of_odd +/- theorem Odd.not_two_dvd_nat Modified Mathlib/Logic/Basic.lean +/- theorem xor_comm + theorem xor_def +/- theorem xor_false +/- theorem xor_not_left +/- theorem xor_not_not +/- theorem xor_not_right +/- theorem xor_self +/- theorem xor_true 2025-07-31 03:42:13 bf560c4 chore(Algebra/GeomSum): golf `op_geom_sum₂` using `grind` (#27654) ESTIMATED CHANGES Modified Mathlib/Algebra/GeomSum.lean 2025-07-31 03:42:11 ecb4bca chore: Clean up typos using OpenAI's GPT-4.1 mini (verified by human) (#27532) This commit was generated using OpenAI's GPT-4.1 mini and then verified by a human. A human-written script was run (powered by the aforementioned AI model) on the files № 21-100 in the `Mathlib/` folder. ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/Bilinear.lean Modified Mathlib/Algebra/Algebra/Defs.lean Modified Mathlib/Algebra/Algebra/Equiv.lean Modified Mathlib/Algebra/Algebra/Hom.lean Modified Mathlib/Algebra/Algebra/Pi.lean Modified Mathlib/Algebra/Algebra/Shrink.lean Modified Mathlib/Algebra/Algebra/Spectrum/Basic.lean Modified Mathlib/Algebra/Algebra/Subalgebra/Basic.lean Modified Mathlib/Algebra/Algebra/Subalgebra/MulOpposite.lean Modified Mathlib/Algebra/Algebra/Subalgebra/Rank.lean Modified Mathlib/Algebra/Algebra/Subalgebra/Tower.lean Modified Mathlib/Algebra/Algebra/Tower.lean Modified Mathlib/Algebra/Azumaya/Defs.lean Modified Mathlib/Algebra/BigOperators/Expect.lean Modified Mathlib/Algebra/BigOperators/Fin.lean Modified Mathlib/Algebra/BigOperators/Finprod.lean Modified Mathlib/Algebra/BigOperators/Finsupp/Fin.lean Modified Mathlib/Algebra/BigOperators/Group/Finset/Powerset.lean Modified Mathlib/Algebra/BigOperators/Sym.lean Modified Mathlib/Algebra/PEmptyInstances.lean Modified Mathlib/Algebra/Quandle.lean Modified Mathlib/Algebra/QuaternionBasis.lean Modified Mathlib/Algebra/Symmetrized.lean 2025-07-31 02:52:17 192b251 chore: fix many typos (powered by OpenAI's GPT-4.1 mini) (#27545) Co-authored by @Rob23oba. Powered by OpenAI's GPT-4.1 mini. @Rob23oba [wrote a Lean program](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Let's.20catch.20typos!/near/527735131) to find all tokens used in Mathlib's declarations, and [posted a full list](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Let's.20catch.20typos!/near/527737473). Then, I ran OpenAI's aforementioned model on said list, and got a list of about 300 potential typos. Then I replaced them manually using VSCode's editor and used the deprecation script. Since this is done using a frequency analysis algorithm, naturally it will miss "contextual typos", where the typo is still a valid word but used in the wrong context. ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Units/Basic.lean Modified Mathlib/Algebra/Group/Units/Defs.lean Modified Mathlib/Algebra/GroupWithZero/Action/Defs.lean Modified Mathlib/Algebra/GroupWithZero/Defs.lean Modified Mathlib/Algebra/Homology/Embedding/Extend.lean Modified Mathlib/Algebra/Homology/HomologySequence.lean Modified Mathlib/Algebra/Homology/ShortComplex/RightHomology.lean Modified Mathlib/Algebra/Ring/Action/Basic.lean Modified Mathlib/AlgebraicGeometry/ProjectiveSpectrum/Basic.lean Modified Mathlib/AlgebraicGeometry/Properties.lean Modified Mathlib/Analysis/Analytic/Order.lean Modified Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Basic.lean Modified Mathlib/Analysis/CStarAlgebra/Matrix.lean Modified Mathlib/Analysis/Calculus/ContDiff/RestrictScalars.lean Modified Mathlib/Analysis/Calculus/LocalExtr/Basic.lean Modified Mathlib/Analysis/Complex/ValueDistribution/CountingFunction.lean Modified Mathlib/Analysis/Meromorphic/IsolatedZeros.lean Modified Mathlib/Analysis/Meromorphic/NormalForm.lean - theorem MeromorphicAt.eqOn_compl_singleton_toMermomorphicNFAt + theorem MeromorphicAt.eqOn_compl_singleton_toMeromorphicNFAt Modified Mathlib/Analysis/Normed/Field/Basic.lean Modified Mathlib/Analysis/Normed/Field/ProperSpace.lean Modified Mathlib/Analysis/Normed/Unbundled/SpectralNorm.lean Modified Mathlib/Analysis/ODE/Gronwall.lean Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Basic.lean - theorem Real.sin_nonpos_of_nonnpos_of_neg_pi_le + theorem Real.sin_nonpos_of_nonpos_of_neg_pi_le Modified Mathlib/CategoryTheory/Adjunction/Mates.lean Modified Mathlib/CategoryTheory/Bicategory/Functor/Oplax.lean Modified Mathlib/CategoryTheory/CommSq.lean Modified Mathlib/CategoryTheory/Countable.lean Modified Mathlib/CategoryTheory/Distributive/Monoidal.lean Modified Mathlib/CategoryTheory/Enriched/Basic.lean Modified Mathlib/CategoryTheory/Filtered/Final.lean Modified Mathlib/CategoryTheory/Functor/EpiMono.lean + theorem CategoryTheory.Functor.preservesEpimorphisms_of_adjunction - theorem CategoryTheory.Functor.preservesEpimorphsisms_of_adjunction Modified Mathlib/CategoryTheory/Functor/Flat.lean Modified Mathlib/CategoryTheory/Functor/KanExtension/Adjunction.lean - theorem CategoryTheory.Functor.hasColimit_map_comp_ι_comp_grotendieckProj + theorem CategoryTheory.Functor.hasColimit_map_comp_ι_comp_grothendieckProj Modified Mathlib/CategoryTheory/Functor/ReflectsIso/Balanced.lean Modified Mathlib/CategoryTheory/Functor/TwoSquare.lean Modified Mathlib/CategoryTheory/Grothendieck.lean Modified Mathlib/CategoryTheory/Groupoid/Subgroupoid.lean Modified Mathlib/CategoryTheory/Join/Basic.lean Modified Mathlib/CategoryTheory/Limits/Elements.lean Modified Mathlib/CategoryTheory/Limits/Preserves/Presheaf.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Grothendieck.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Multiequalizer.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Pullback/Categorical/Basic.lean Modified Mathlib/CategoryTheory/Limits/Sifted.lean Modified Mathlib/CategoryTheory/Limits/Types/ColimitType.lean Modified Mathlib/CategoryTheory/Localization/LocalizerMorphism.lean Modified Mathlib/CategoryTheory/Monoidal/Internal/Limits.lean Modified Mathlib/CategoryTheory/MorphismProperty/Concrete.lean Modified Mathlib/CategoryTheory/MorphismProperty/Limits.lean Modified Mathlib/CategoryTheory/MorphismProperty/TransfiniteComposition.lean Modified Mathlib/CategoryTheory/Presentable/IsCardinalFiltered.lean Modified Mathlib/CategoryTheory/Sites/Continuous.lean Modified Mathlib/CategoryTheory/Sites/LeftExact.lean Modified Mathlib/CategoryTheory/Sites/Limits.lean Modified Mathlib/CategoryTheory/Sites/Localization.lean - theorem CategoryTheory.GrothendieckTopology.W_sheafToPreheaf_map_iff_isIso + theorem CategoryTheory.GrothendieckTopology.W_sheafToPresheaf_map_iff_isIso Modified Mathlib/CategoryTheory/Sites/OneHypercover.lean Modified Mathlib/CategoryTheory/Sites/PreservesSheafification.lean Modified Mathlib/CategoryTheory/Sites/Sheafification.lean Modified Mathlib/CategoryTheory/SmallObject/WellOrderInductionData.lean Modified Mathlib/Combinatorics/SimpleGraph/Ends/Properties.lean Modified Mathlib/Condensed/Discrete/LocallyConstant.lean Modified Mathlib/Control/Monad/Writer.lean Modified Mathlib/Data/Complex/Basic.lean Modified Mathlib/Data/Finset/Card.lean Modified Mathlib/Data/List/Basic.lean Modified Mathlib/Data/Multiset/DershowitzManna.lean Modified Mathlib/Data/Set/Card/Arithmetic.lean Modified Mathlib/Data/Setoid/Basic.lean Modified Mathlib/FieldTheory/AxGrothendieck.lean Modified Mathlib/FieldTheory/CardinalEmb.lean Modified Mathlib/FieldTheory/Finite/Trace.lean Modified Mathlib/FieldTheory/PerfectClosure.lean Modified Mathlib/FieldTheory/PurelyInseparable/PerfectClosure.lean Modified Mathlib/Geometry/Manifold/Bordism.lean Modified Mathlib/Geometry/Manifold/Instances/Sphere.lean Modified Mathlib/GroupTheory/Coprod/Basic.lean Modified Mathlib/Lean/Meta/RefinedDiscrTree/Lookup.lean Modified Mathlib/LinearAlgebra/Matrix/FixedDetMatrices.lean Modified Mathlib/LinearAlgebra/QuadraticForm/TensorProduct/Isometries.lean Modified Mathlib/LinearAlgebra/TensorProduct/Associator.lean Modified Mathlib/Logic/Equiv/Prod.lean Modified Mathlib/MeasureTheory/Function/Holder.lean Modified Mathlib/MeasureTheory/MeasurableSpace/Constructions.lean Modified Mathlib/MeasureTheory/Measure/FiniteMeasure.lean Modified Mathlib/MeasureTheory/OuterMeasure/OfAddContent.lean Modified Mathlib/NumberTheory/DirichletCharacter/Basic.lean + theorem DirichletCharacter.isPrimitive_one_level_zero - theorem DirichletCharacter.isPritive_one_level_zero Modified Mathlib/NumberTheory/LSeries/DirichletContinuation.lean Modified Mathlib/NumberTheory/LSeries/HurwitzZetaEven.lean Modified Mathlib/NumberTheory/LSeries/Nonvanishing.lean Modified Mathlib/NumberTheory/ModularForms/QExpansion.lean Modified Mathlib/NumberTheory/NumberField/CanonicalEmbedding/NormLeOne.lean + theorem NumberField.mixedEmbedding.fundamentalCone.normLeOne_eq_preimage_image - theorem NumberField.mixedEmbedding.fundamentalCone.normLeOne_eq_primeage_image Modified Mathlib/NumberTheory/Padics/PadicIntegers.lean - theorem PadicInt.p_nonnunit + theorem PadicInt.p_nonunit Modified Mathlib/NumberTheory/Pell.lean Modified Mathlib/NumberTheory/RamificationInertia/Unramified.lean Modified Mathlib/NumberTheory/SelbergSieve.lean + theorem SelbergSieve.siftedSum_eq_sum_support_mul_ite - theorem SelbergSieve.siftedsum_eq_sum_support_mul_ite Modified Mathlib/Probability/Kernel/Composition/MeasureComp.lean Modified Mathlib/Probability/Kernel/Disintegration/CDFToKernel.lean Modified Mathlib/Probability/Kernel/IonescuTulcea/PartialTraj.lean Modified Mathlib/RingTheory/LaurentSeries.lean Modified Mathlib/RingTheory/MvPolynomial/WeightedHomogeneous.lean Modified Mathlib/RingTheory/Valuation/ValuativeRel.lean Modified Mathlib/SetTheory/Cardinal/Basic.lean Modified Mathlib/Tactic/Bound/Attribute.lean Modified Mathlib/Tactic/FunProp/Theorems.lean Modified Mathlib/Tactic/FunProp/Types.lean Modified Mathlib/Tactic/Linter/TextBased.lean Modified Mathlib/Tactic/NormNum/LegendreSymbol.lean Modified Mathlib/Tactic/Polyrith.lean Modified Mathlib/Tactic/ProdAssoc.lean Modified Mathlib/Tactic/Simproc/ExistsAndEq.lean Modified Mathlib/Tactic/Simps/NotationClass.lean Modified Mathlib/Tactic/TermCongr.lean Modified Mathlib/Topology/Algebra/Module/Equiv.lean Modified Mathlib/Topology/Algebra/Module/ModuleTopology.lean Modified Mathlib/Topology/Algebra/OpenSubgroup.lean Modified Mathlib/Topology/Compactification/OnePoint/ProjectiveLine.lean Modified Mathlib/Topology/ContinuousMap/Sigma.lean Modified Mathlib/Topology/Defs/Basic.lean Modified Mathlib/Topology/IsClosedRestrict.lean Modified Mathlib/Topology/Maps/OpenQuotient.lean Modified Mathlib/Topology/MetricSpace/Isometry.lean + theorem PseudoMetricSpace.isometry_induced - theorem PsuedoMetricSpace.isometry_induced Modified Mathlib/Topology/Separation/Regular.lean Modified Mathlib/Topology/Sheaves/CommRingCat.lean Modified Mathlib/Topology/UniformSpace/UniformConvergence.lean Modified MathlibTest/interval_cases.lean 2025-07-31 00:46:02 497b6ef fix: make mathlib4 upstream handling stricter (#27646) As reported at [#mathlib4 > Feedback on scripts/migrate_to_fork.py @ 💬](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Feedback.20on.20scripts.2Fmigrate_to_fork.2Epy/near/531482791). ESTIMATED CHANGES Modified scripts/migrate_to_fork.py 2025-07-31 00:46:00 7b2704e feat: hook up ordered ring instances for grind (#27620) ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Monoid/Unbundled/Defs.lean Modified Mathlib/Algebra/Order/Ring/Defs.lean Modified Mathlib/Order/Defs/PartialOrder.lean Added MathlibTest/grind/ordered_ring.lean 2025-07-31 00:45:59 2907bf7 chore: Clean up typos using OpenAI's GPT-4.1 mini (verified by human) (#27539) This commit was generated using OpenAI's GPT-4.1 mini and then verified by a human. A human-written script was run (powered by the aforementioned AI model) on the files № 201-300 in the `Mathlib/` folder. ESTIMATED CHANGES Modified Mathlib/Algebra/Category/ModuleCat/Sheaf/Abelian.lean Modified Mathlib/Algebra/Category/ModuleCat/Sheaf/Colimits.lean Modified Mathlib/Algebra/Category/ModuleCat/Sheaf/Free.lean Modified Mathlib/Algebra/Category/ModuleCat/Sheaf/Generators.lean Modified Mathlib/Algebra/Category/ModuleCat/Sheaf/Quasicoherent.lean Modified Mathlib/Algebra/Category/ModuleCat/Topology/Basic.lean Modified Mathlib/Algebra/Category/ModuleCat/Topology/Homology.lean Modified Mathlib/Algebra/Category/MonCat/Adjunctions.lean Modified Mathlib/Algebra/Category/MonCat/ForgetCorepresentable.lean Modified Mathlib/Algebra/Category/Ring/Adjunctions.lean Modified Mathlib/Algebra/Category/Ring/Basic.lean Modified Mathlib/Algebra/Category/Ring/Constructions.lean Modified Mathlib/Algebra/Category/Ring/FinitePresentation.lean Modified Mathlib/Algebra/Category/Ring/Instances.lean Modified Mathlib/Algebra/Category/Ring/Topology.lean Modified Mathlib/Algebra/Central/Basic.lean Modified Mathlib/Algebra/Central/Defs.lean Modified Mathlib/Algebra/Central/TensorProduct.lean Modified Mathlib/Algebra/CharP/Frobenius.lean Modified Mathlib/Algebra/CharP/Invertible.lean Modified Mathlib/Algebra/CharP/LinearMaps.lean Modified Mathlib/Algebra/CharP/LocalRing.lean Modified Mathlib/Algebra/CharP/Quotient.lean Modified Mathlib/Algebra/CharZero/Quotient.lean Modified Mathlib/Algebra/Colimit/TensorProduct.lean Modified Mathlib/Algebra/ContinuedFractions/Computation/ApproximationCorollaries.lean Modified Mathlib/Algebra/ContinuedFractions/Computation/TerminatesIffRat.lean Modified Mathlib/Algebra/ContinuedFractions/Computation/Translations.lean Modified Mathlib/Algebra/ContinuedFractions/ConvergentsEquiv.lean Modified Mathlib/Algebra/DirectSum/Algebra.lean Modified Mathlib/Algebra/DirectSum/Idempotents.lean Modified Mathlib/Algebra/DirectSum/Ring.lean Modified Mathlib/Algebra/Divisibility/Finite.lean Modified Mathlib/Algebra/Field/Equiv.lean Modified Mathlib/Algebra/Field/MinimalAxioms.lean 2025-07-30 23:31:09 cdda99e fix(LinearAlgebra/TensorProduct): fix `⊗ₜ[R]` precedence (#27589) This PR makes `⊗ₜ[R]` have the same precedence as the infixl `⊗ₜ` notation. This also affects the pretty printer, making it consistent with `⊗ₜ`. ESTIMATED CHANGES Modified Mathlib/Algebra/Category/ModuleCat/ChangeOfRings.lean Modified Mathlib/LinearAlgebra/Contraction.lean Modified Mathlib/LinearAlgebra/PiTensorProduct.lean Modified Mathlib/LinearAlgebra/TensorProduct/Basic.lean Modified Mathlib/RingTheory/Coalgebra/Basic.lean Modified Mathlib/RingTheory/Flat/Domain.lean Modified Mathlib/RingTheory/TensorProduct/Basic.lean +/- theorem Algebra.TensorProduct.assoc_aux_2 2025-07-30 22:15:29 c8bbf53 feat(Analysis/InnerProductSpace/Adjoint): `v` in star projection range iff `‖T v‖ = ‖v‖` (#27619) ESTIMATED CHANGES Modified Mathlib/Analysis/InnerProductSpace/Adjoint.lean + theorem isStarProjection_iff_eq_starProjection Modified Mathlib/Analysis/InnerProductSpace/Projection.lean + theorem Submodule.mem_iff_norm_starProjection 2025-07-30 21:33:20 6584aff chore(Nat): change argument from `0 < n` to `n ≠ 0` (#27647) Style guide says arguments should be in the weaker form Some proofs got longer because internally they had `0 < n` available or relied on iffs that simplified statements about positive elements ESTIMATED CHANGES Modified Mathlib/Data/Nat/Choose/Basic.lean + theorem Nat.choose_ne_zero + theorem Nat.choose_ne_zero_iff Modified Mathlib/Data/Nat/Choose/Factorization.lean Modified Mathlib/Data/Nat/Factorization/Defs.lean Modified Mathlib/Data/Nat/MaxPowDiv.lean +/- theorem Nat.maxPowDiv.le_of_dvd Modified Mathlib/NumberTheory/Multiplicity.lean Modified Mathlib/NumberTheory/Padics/MahlerBasis.lean Modified Mathlib/NumberTheory/Padics/PadicVal/Basic.lean +/- theorem nat_log_eq_padicValNat_iff +/- theorem one_le_padicValNat_of_dvd +/- theorem padicValNat.maxPowDiv_eq_emultiplicity +/- theorem padicValNat.maxPowDiv_eq_multiplicity Modified Mathlib/NumberTheory/Padics/PadicVal/Defs.lean +/- theorem padicValNat_def' +/- theorem padicValNat_def +/- theorem padicValNat_eq_emultiplicity 2025-07-30 20:22:39 05e1c7a feat(MonoidAlgebra): generalize IsDomain instance (#27241) The instance works over a semiring with cancellative addition. It's then used to generalize the IsDomain instances on Polynomial and MvPolynomial. ESTIMATED CHANGES Modified Mathlib/Algebra/MonoidAlgebra/NoZeroDivisors.lean Modified Mathlib/Algebra/MvPolynomial/Basic.lean Modified Mathlib/Algebra/MvPolynomial/Funext.lean Modified Mathlib/Algebra/Polynomial/Basic.lean Modified Mathlib/Algebra/Polynomial/Degree/Domain.lean Modified Mathlib/FieldTheory/RatFunc/Defs.lean Modified Mathlib/LinearAlgebra/Matrix/Adjugate.lean Modified Mathlib/LinearAlgebra/Vandermonde.lean Modified Mathlib/RingTheory/Polynomial/Basic.lean +/- theorem MvPolynomial.noZeroDivisors_of_finite 2025-07-30 18:12:12 35e1ad0 feat(LinearAlgebra.DirectSum.Finite): a finite direct sum of finite modules is a finite module (#27092) Prove that a finite direct sum of finite modules is a finite module. There are instances both in the `DFinsupp` and `DirectSum` namespaces, to help type class inference find them. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/LinearAlgebra/DirectSum/Finite.lean 2025-07-30 17:41:20 8be247a chore(Analysis): make argument explicit to `CFC.sqrt_nonneg` and `CFC.sqrt_eq_rpow` (#27684) These two lemmas had all arguments implicit, which means we have to add implicit argument hints in a few places: `sqrt_nonneg (a := a) : 0 ≤ sqrt a`. For `Real.sqrt_nonneg` and similar, the a argument is explicit. Making it explicit here avoids a few type ascriptions and implicit argument hints. ESTIMATED CHANGES Modified Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Order.lean Modified Mathlib/Analysis/SpecialFunctions/ContinuousFunctionalCalculus/Rpow/Basic.lean +/- theorem CFC.sqrt_eq_nnrpow +/- theorem CFC.sqrt_nonneg 2025-07-30 17:41:19 e03d39f fix(LinearAlgebra/TensorProduct): fix `⊗[R]` precedence (#27590) This PR makes `⊗[R]` have the same precedence as the infixl `⊗` notation. And it fixes the brackets where necessary. ESTIMATED CHANGES Modified Mathlib/Algebra/Category/CoalgCat/ComonEquivalence.lean Modified Mathlib/LinearAlgebra/TensorProduct/Associator.lean +/- def TensorProduct.leftComm +/- theorem TensorProduct.map_map_assoc +/- def TensorProduct.rightComm +/- def TensorProduct.tensorTensorTensorAssoc +/- def TensorProduct.tensorTensorTensorComm Modified Mathlib/LinearAlgebra/TensorProduct/Basic.lean +/- theorem TensorProduct.ext_fourfold' +/- theorem TensorProduct.ext_fourfold +/- theorem TensorProduct.ext_threefold Modified Mathlib/RingTheory/Coalgebra/TensorProduct.lean Modified Mathlib/RingTheory/IsTensorProduct.lean Modified Mathlib/RingTheory/Spectrum/Prime/FreeLocus.lean Modified Mathlib/RingTheory/TensorProduct/Basic.lean +/- def Algebra.TensorProduct.algEquivOfLinearEquivTripleTensorProduct +/- def Algebra.TensorProduct.leftComm +/- def Algebra.TensorProduct.tensorTensorTensorComm 2025-07-30 17:21:48 1f310e4 refactor(FieldTheory/Galois): Switch from `Fintype` to `Finite` (#25997) This PR switches mathlib's Galois theory from `Fintype` to `Finite` to match the group theory library. ESTIMATED CHANGES Modified Mathlib/FieldTheory/Galois/Basic.lean +/- theorem IntermediateField.finrank_fixedField_eq_card +/- theorem IsGalois.card_fixingSubgroup_eq_finrank Modified Mathlib/FieldTheory/Galois/IsGaloisGroup.lean Modified Mathlib/FieldTheory/IntermediateField/Adjoin/Basic.lean Modified Mathlib/FieldTheory/KrullTopology.lean Modified Mathlib/FieldTheory/KummerExtension.lean Modified Mathlib/FieldTheory/PolynomialGaloisGroup.lean +/- theorem Polynomial.Gal.card_of_separable Modified Mathlib/NumberTheory/NumberField/CMField.lean Modified Mathlib/NumberTheory/NumberField/InfinitePlace/Ramification.lean +/- theorem IsUnramifiedAtInfinitePlaces_of_odd_card_aut +/- theorem NumberField.InfinitePlace.even_card_aut_of_not_isUnramified +/- theorem NumberField.InfinitePlace.even_card_aut_of_not_isUnramifiedIn 2025-07-30 10:33:17 43c857b feat(combinatorics): Add weight function for Quiver.Path (#27315) This is part of work toward proving the Perron-Frobenius theorem. -- This PR introduces a generic weight function for paths in a quiver, where edge weights are elements of a monoid. This is the first in a series of planned contributions to Quiver.Path API, with the ultimate goal of PRing the formalized Perron-Frobenius theorem for primitive and irreducible matrices here . https://leanprover.zulipchat.com/#narrow/channel/116395-maths/topic/Formalizing.20Perron-Frobenius/with/525516636 The Perron-Frobenius theorem relies on analyzing the powers of a matrix, which correspond to the number (or total weight) of paths of a given length in the graph represented by the matrix, so a robust API for path manipulation is a prerequisite. This API is built on Quiver because it is fundamentally concerned with the properties of paths as sequences of specific, identifiable arrows (a ⟶ b). The Digraph structure, which models adjacency as a relation, abstracts away the identity of individual edges and would not support the construction and manipulation of paths in the required manner (not in my attempts at least). Similarly, Graph is designed for undirected graphs. Therefore, I think Quiver is the appropriate foundational layer for this work Main features of this PR are: It defines Quiver.Path.weight as the monoidal product of weights along a path. It adds a convenience wrapper Quiver.Path.weight_of_fn for when weights are determined by a function on the vertices. It proves that weight is a monoid homomorphism (weight_comp). It includes lemmas establishing that positivity (weight_pos) and non-negativity (weight_of_fn_nonneg) of weights are preserved, which will be crucial for the Perron-Frobenius application. Subsequent PRs will (partly) build on this by introducing: - Definitions for the vertices of a path (Path.vertices) and core properties. - Lemmas for path decomposition and splitting. - A formalization of simple paths and cycles, including cycle extraction. - The theorem that a shortest path is always simple. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Combinatorics/Quiver/Path/Weight.lean + def Quiver.Path.addWeight + def Quiver.Path.weight + def Quiver.Path.weightOfEPs + theorem Quiver.Path.weightOfEPs_comp + theorem Quiver.Path.weightOfEPs_cons + theorem Quiver.Path.weightOfEPs_nil + theorem Quiver.Path.weightOfEPs_nonneg + theorem Quiver.Path.weightOfEPs_pos + theorem Quiver.Path.weight_comp + theorem Quiver.Path.weight_cons + theorem Quiver.Path.weight_nil + theorem Quiver.Path.weight_nonneg + theorem Quiver.Path.weight_pos 2025-07-30 09:29:02 36bd1b9 refactor: Rename ContinuousLinearMap.toLinearMap₂ (#27574) Rename `ContinuousLinearMap.toLinearMap₂` to `ContinuousLinearMap.toLinearMap₁₂`. See the discussion here: https://github.com/leanprover-community/mathlib4/pull/26345#pullrequestreview-3059683061 ESTIMATED CHANGES Modified Mathlib/Analysis/Fourier/FourierTransform.lean Modified Mathlib/Analysis/Fourier/FourierTransformDeriv.lean Modified Mathlib/Analysis/InnerProductSpace/Laplacian.lean Modified Mathlib/MeasureTheory/Measure/CharacteristicFunction.lean Modified Mathlib/Topology/Algebra/Module/StrongTopology.lean + def ContinuousLinearMap.toLinearMap₁₂ + theorem ContinuousLinearMap.toLinearMap₁₂_apply - def ContinuousLinearMap.toLinearMap₂ - theorem ContinuousLinearMap.toLinearMap₂_apply 2025-07-30 03:04:40 44b0bba chore(Algebra/BigOperators): golf `prod_congr_of_eq_on_inter` using `grind` (#27653) ESTIMATED CHANGES Modified Mathlib/Algebra/BigOperators/Group/Finset/Basic.lean 2025-07-30 02:14:32 ea18d06 feat: With{Bot,Top}.map_injective (#27651) Using `Option.map_injective` in downstream code would be defeq abuse. ESTIMATED CHANGES Modified Mathlib/Order/Hom/WithTopBot.lean Modified Mathlib/Order/WithBot.lean + theorem WithBot.map_injective + theorem WithTop.map_injective 2025-07-29 19:38:08 0465630 chore: add githelper.py script (#26023) As described in the readme file, this somewhat opinionated script aims to help fix weird git repo setups and restore them to a standardized state that closely matches what `gh repo clone` does. Like `migrate_to_fork.py`, this script requires the user to have `git` and `gh` installed. To use the script, run `scripts/githelper.py fix` in a git repo that is either a clone of mathlib or of a mathlib fork. The script will prompt you before making any changes, so the user retains control over the entire process. The script also prints the commands used. `fix` is a subcommand so other git and github management tasks can be added in the future. Possible examples: Deleting branches of closed PRs, keeping the fork in sync with upstream, removing branches from a fork that was accidentally cloned with all mathlib branches included. ESTIMATED CHANGES Modified scripts/README.md Added scripts/githelper.py 2025-07-29 19:02:08 86f7c47 chore: generalize Subgroup.mem_mk and related lemmas (#27629) ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Subgroup/Defs.lean +/- theorem Subgroup.coe_set_mk +/- theorem Subgroup.mem_mk +/- theorem Subgroup.mk_le_mk Modified Mathlib/Algebra/Group/Subgroup/Ker.lean Modified Mathlib/Analysis/Normed/Group/AddCircle.lean Modified Mathlib/Combinatorics/Additive/VerySmallDoubling.lean Modified Mathlib/GroupTheory/Nilpotent.lean Modified Mathlib/RingTheory/NonUnitalSubring/Defs.lean Modified Mathlib/Topology/Algebra/Valued/ValuationTopology.lean 2025-07-29 14:40:40 3c3f56a chore: move MvPolynomial.algebraMap_apply earlier (#27631) ESTIMATED CHANGES Modified Mathlib/Algebra/MvPolynomial/Basic.lean + theorem MvPolynomial.algebraMap_apply Modified Mathlib/Algebra/MvPolynomial/Eval.lean - theorem MvPolynomial.algebraMap_apply 2025-07-29 14:40:38 60d9fe7 feat(Algebra/Order): `pow_le_pow_iff_right_of_lt_one₀` (#27624) Add `pow_le_pow_iff_right_of_lt_one₀`. (Analogous to `zpow_le_zpow_iff_right_of_lt_one₀`.) ESTIMATED CHANGES Modified Mathlib/Algebra/Order/GroupWithZero/Unbundled/Basic.lean + theorem pow_le_pow_iff_right_of_lt_one₀ 2025-07-29 14:40:37 eabab8a chore: make create-adaptation-pr.sh more idempotent (#27623) ESTIMATED CHANGES Modified scripts/create-adaptation-pr.sh 2025-07-29 14:40:35 c0342eb chore: fix scripts to correctly locate bump/ branches on nightly-testing fork (#27572) See [zulip](https://leanprover.zulipchat.com/#narrow/channel/428973-nightly-testing/topic/Mathlib.20bump.20branch.20reminders/near/531241356)[#nightly-testing > Mathlib bump branch reminders @ 💬](https://leanprover.zulipchat.com/#narrow/channel/428973-nightly-testing/topic/Mathlib.20bump.20branch.20reminders/near/531241356) discussion. ESTIMATED CHANGES Modified .github/workflows/nightly_detect_failure.yml 2025-07-29 13:48:15 e0e3f4b feat: remove (upstreamed) shake (#27632) `shake` has been moved to Batteries. ESTIMATED CHANGES Deleted Shake/Main.lean - structure Args - def Edits.add - def Edits.remove - structure ShakeCfg - structure State - def calcNeeds - def getExplanations - def help - def importId - def isBlacklisted - def main - def parseHeader - def parseHeaderFromString - def toBitset - def visitModule Modified lakefile.lean 2025-07-29 13:14:36 0ccc06d feat (Mathlib/Dynamics/BirkhoffSum/Basic): add lemma `birkhoffSum_of_comp_eq` (#26810) If a function `φ` is invariant under a function `f` (i.e., `φ ∘ f = φ`), then the Birkhoff sum of `φ` over `f` for `n` iterations is equal to `n • φ`. ESTIMATED CHANGES Modified Mathlib/Dynamics/BirkhoffSum/Basic.lean + theorem birkhoffSum_of_comp_eq 2025-07-29 10:38:44 ab18fa8 chore(Probability/Process): golf entire `hitting_of_lt` using `grind` (#27616) ESTIMATED CHANGES Modified Mathlib/Probability/Process/HittingTime.lean 2025-07-29 10:01:05 cd5e6a6 fix(KaehlerDifferential): avoid brackets around `Ω[S⁄R]` notation (#27601) There is no reason to need the brackets around `Ω[S⁄R]`. This PR fixes the notation. ESTIMATED CHANGES Modified Mathlib/Algebra/Module/Presentation/Differentials.lean Modified Mathlib/AlgebraicGeometry/Morphisms/FormallyUnramified.lean Modified Mathlib/RingTheory/Extension/Cotangent/Basic.lean Modified Mathlib/RingTheory/Kaehler/Basic.lean +/- def KaehlerDifferential.D Modified Mathlib/RingTheory/Kaehler/Polynomial.lean Modified Mathlib/RingTheory/Kaehler/TensorProduct.lean Modified Mathlib/RingTheory/Smooth/Kaehler.lean Modified Mathlib/RingTheory/Smooth/Local.lean Modified Mathlib/RingTheory/Smooth/Locus.lean Modified Mathlib/RingTheory/Smooth/StandardSmoothCotangent.lean Modified Mathlib/RingTheory/Unramified/Basic.lean Modified Mathlib/RingTheory/Unramified/Locus.lean 2025-07-29 04:18:30 8ecdbc1 chore: create-adaptation-pr.sh is more careful about remotes (#27621) ESTIMATED CHANGES Modified scripts/create-adaptation-pr.sh 2025-07-29 04:18:28 28a9b72 feat(Composition): tag simp lemmas (#27458) Add two simp lemmas `embedding_comp_inv` and `index_embedding`. ESTIMATED CHANGES Modified Mathlib/Combinatorics/Enumerative/Composition.lean 2025-07-29 04:18:27 9b794ab feat(Algebra/Order): Locally Finite Linearly Ordered Abelian Groups (#27430) We prove that `ℤ` is the only Locally Finite Linearly Ordered Abelian Group. We also move `OrderMonoidIso.toAdditive` and friends from `Mathlib/GroupTheory/ArchimedeanDensely.lean` to a new file. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Order/Hom/TypeTags.lean + def OrderAddMonoidIso.toAdditive_toMultiplicative + def OrderAddMonoidIso.toMultiplicative'' + def OrderAddMonoidIso.toMultiplicative' + def OrderAddMonoidIso.toMultiplicative + def OrderMonoidIso.toAdditive + def OrderMonoidIso.toMultiplicative_toAdditive Added Mathlib/Algebra/Order/Monoid/LocallyFiniteOrder.lean + theorem Finset.card_Ico_mul_right + def LocallyFiniteOrder.addMonoidHom + def LocallyFiniteOrder.orderAddMonoidEquiv + theorem LocallyFiniteOrder.orderAddMonoidEquiv_apply + def LocallyFiniteOrder.orderAddMonoidHom + theorem LocallyFiniteOrder.orderAddMonoidHom_apply + theorem LocallyFiniteOrder.orderAddMonoidHom_bijective + theorem LocallyFiniteOrder.orderAddMonoidHom_strictMono + theorem LocallyFiniteOrder.orderAddMonoidHom_toAddMonoidHom + def LocallyFiniteOrder.orderMonoidEquiv + def LocallyFiniteOrder.orderMonoidHom + theorem LocallyFiniteOrder.orderMonoidHom_strictMono + def LocallyFiniteOrder.orderMonoidWithZeroEquiv + def LocallyFiniteOrder.orderMonoidWithZeroHom + theorem LocallyFiniteOrder.orderMonoidWithZeroHom_strictMono + theorem card_Ico_one_mul Modified Mathlib/GroupTheory/ArchimedeanDensely.lean - def OrderAddMonoidIso.toAdditive_toMultiplicative - def OrderAddMonoidIso.toMultiplicative'' - def OrderAddMonoidIso.toMultiplicative' - def OrderAddMonoidIso.toMultiplicative - def OrderMonoidIso.toAdditive - def OrderMonoidIso.toMultiplicative_toAdditive 2025-07-29 04:18:25 016a711 feat(CategoryTheory/Monoidal: an isomorphism of group objects is an isomorphism of the underlying objects (#27137) From Toric ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Monoidal/CommGrp_.lean Modified Mathlib/CategoryTheory/Monoidal/CommMon_.lean Modified Mathlib/CategoryTheory/Monoidal/Grp_.lean Modified Mathlib/CategoryTheory/Monoidal/Mon_.lean 2025-07-29 03:01:10 34fe4ac chore: add space around `rintro`/`rcases`/`obtain` or-patterns (#27486) The pretty-printer enforces spaces in or-patterns, e.g. `_|_|x` to `_ | _ | x` (which seems clearly good). I'm on the fence about `(_|_)` ESTIMATED CHANGES Modified Mathlib/Algebra/Category/MonCat/Adjunctions.lean Modified Mathlib/Algebra/Group/Commute/Units.lean Modified Mathlib/Algebra/Group/Submonoid/Membership.lean Modified Mathlib/Algebra/Group/UniqueProds/Basic.lean Modified Mathlib/Algebra/Homology/Embedding/Boundary.lean Modified Mathlib/Algebra/Lie/CartanExists.lean Modified Mathlib/Algebra/Lie/LieTheorem.lean Modified Mathlib/Algebra/Order/Archimedean/Class.lean Modified Mathlib/Algebra/Order/Field/Basic.lean Modified Mathlib/Algebra/Order/GroupWithZero/Unbundled/OrderIso.lean Modified Mathlib/Algebra/Polynomial/AlgebraMap.lean Modified Mathlib/Algebra/Polynomial/CoeffList.lean Modified Mathlib/Algebra/Polynomial/Degree/Definitions.lean Modified Mathlib/Algebra/Polynomial/Degree/Support.lean Modified Mathlib/Algebra/Polynomial/FieldDivision.lean Modified Mathlib/AlgebraicTopology/DoldKan/Degeneracies.lean Modified Mathlib/AlgebraicTopology/DoldKan/FunctorGamma.lean Modified Mathlib/AlgebraicTopology/DoldKan/Homotopies.lean Modified Mathlib/AlgebraicTopology/DoldKan/HomotopyEquivalence.lean Modified Mathlib/AlgebraicTopology/DoldKan/NCompGamma.lean Modified Mathlib/AlgebraicTopology/DoldKan/Normalized.lean Modified Mathlib/AlgebraicTopology/DoldKan/Projections.lean Modified Mathlib/AlgebraicTopology/DoldKan/SplitSimplicialObject.lean Modified Mathlib/AlgebraicTopology/SimplicialSet/Horn.lean Modified Mathlib/Analysis/Calculus/LineDeriv/Basic.lean Modified Mathlib/Analysis/Calculus/LineDeriv/IntegrationByParts.lean Modified Mathlib/Analysis/Calculus/MeanValue.lean Modified Mathlib/Analysis/Calculus/Rademacher.lean Modified Mathlib/Analysis/Distribution/SchwartzSpace.lean Modified Mathlib/Analysis/FunctionalSpaces/SobolevInequality.lean Modified Mathlib/Analysis/MellinTransform.lean Modified Mathlib/Analysis/Normed/Field/Basic.lean Modified Mathlib/Analysis/Normed/Field/Lemmas.lean Modified Mathlib/Analysis/Normed/Group/Ultra.lean Modified Mathlib/Analysis/NormedSpace/Connected.lean Modified Mathlib/Analysis/Seminorm.lean Modified Mathlib/Analysis/SpecialFunctions/Pow/Asymptotics.lean Modified Mathlib/Analysis/SpecialFunctions/Pow/NNReal.lean Modified Mathlib/CategoryTheory/ComposableArrows.lean Modified Mathlib/CategoryTheory/Extensive.lean Modified Mathlib/CategoryTheory/Functor/OfSequence.lean Modified Mathlib/CategoryTheory/Limits/Bicones.lean Modified Mathlib/CategoryTheory/Limits/Constructions/Over/Products.lean Modified Mathlib/CategoryTheory/Limits/Final/ParallelPair.lean Modified Mathlib/CategoryTheory/Limits/Preserves/Shapes/Kernels.lean Modified Mathlib/CategoryTheory/Limits/Preserves/Shapes/Pullbacks.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Equalizers.lean Modified Mathlib/CategoryTheory/Limits/Shapes/FiniteLimits.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Multiequalizer.lean Modified Mathlib/CategoryTheory/Limits/Shapes/WideEqualizers.lean Modified Mathlib/CategoryTheory/Limits/Types/Shapes.lean Modified Mathlib/CategoryTheory/Localization/Construction.lean Modified Mathlib/CategoryTheory/Localization/Pi.lean Modified Mathlib/CategoryTheory/Monoidal/Cartesian/FunctorCategory.lean Modified Mathlib/CategoryTheory/Sites/MayerVietorisSquare.lean Modified Mathlib/Data/Fin/Fin2.lean Modified Mathlib/Data/Finsupp/Option.lean Modified Mathlib/Data/Matrix/Basis.lean Modified Mathlib/Data/NNReal/Defs.lean Modified Mathlib/Data/Nat/Bits.lean Modified Mathlib/Data/Nat/Cast/Order/Ring.lean Modified Mathlib/Data/Nat/Fib/Basic.lean Modified Mathlib/FieldTheory/Extension.lean Modified Mathlib/FieldTheory/KummerPolynomial.lean Modified Mathlib/FieldTheory/Normal/Basic.lean Modified Mathlib/Geometry/Manifold/Riemannian/Basic.lean Modified Mathlib/GroupTheory/ArchimedeanDensely.lean Modified Mathlib/GroupTheory/OrderOfElement.lean Modified Mathlib/GroupTheory/SpecificGroups/Cyclic.lean Modified Mathlib/LinearAlgebra/LinearIndependent/Lemmas.lean Modified Mathlib/MeasureTheory/Constructions/BorelSpace/Order.lean Modified Mathlib/MeasureTheory/Function/LpSpace/Complete.lean Modified Mathlib/MeasureTheory/Group/Measure.lean Modified Mathlib/MeasureTheory/Integral/BoundedContinuousFunction.lean Modified Mathlib/MeasureTheory/Integral/IntegralEqImproper.lean Modified Mathlib/MeasureTheory/Integral/MeanInequalities.lean Modified Mathlib/MeasureTheory/Measure/Haar/Unique.lean Modified Mathlib/Order/ConditionallyCompleteLattice/Basic.lean Modified Mathlib/Order/Filter/Subsingleton.lean Modified Mathlib/Probability/Independence/Kernel.lean Modified Mathlib/RingTheory/AlgebraicIndependent/Transcendental.lean Modified Mathlib/RingTheory/DiscreteValuationRing/Basic.lean Modified Mathlib/RingTheory/DualNumber.lean Modified Mathlib/RingTheory/Filtration.lean Modified Mathlib/RingTheory/HahnSeries/Multiplication.lean Modified Mathlib/RingTheory/Ideal/IsPrimary.lean Modified Mathlib/RingTheory/Ideal/Maximal.lean Modified Mathlib/RingTheory/Lasker.lean Modified Mathlib/RingTheory/RootsOfUnity/PrimitiveRoots.lean Modified Mathlib/RingTheory/SimpleModule/Basic.lean Modified Mathlib/RingTheory/Valuation/Integers.lean Modified Mathlib/Tactic/ComputeDegree.lean Modified Mathlib/Tactic/NormNum/Prime.lean Modified Mathlib/Topology/Algebra/InfiniteSum/Group.lean Modified Mathlib/Topology/Algebra/Valued/ValuationTopology.lean Modified Mathlib/Topology/Category/LightProfinite/Sequence.lean Modified Mathlib/Topology/Compactness/HilbertCubeEmbedding.lean Modified Mathlib/Topology/GDelta/Basic.lean Modified Mathlib/Topology/MetricSpace/BundledFun.lean Modified Mathlib/Topology/Separation/Basic.lean Modified Mathlib/Topology/Separation/Hausdorff.lean Modified Mathlib/Topology/Sheaves/SheafCondition/UniqueGluing.lean Modified Mathlib/Topology/ShrinkingLemma.lean 2025-07-29 03:01:07 316eba4 chore: some whitespace fixes (#27485) Found by the linter in #26926. ESTIMATED CHANGES Modified Mathlib/Algebra/Homology/ComplexShape.lean +/- theorem ComplexShape.next_eq_self' +/- theorem ComplexShape.next_eq_self +/- theorem ComplexShape.prev_eq_self' +/- theorem ComplexShape.prev_eq_self Modified Mathlib/Algebra/Notation/Defs.lean +/- theorem dite_div +/- theorem dite_div_dite +/- theorem dite_mul +/- theorem dite_mul_dite +/- theorem div_dite +/- theorem mul_dite Modified Mathlib/Algebra/Notation/Lemmas.lean Modified Mathlib/Algebra/Order/Field/Basic.lean Modified Mathlib/Algebra/Ring/Ext.lean Modified Mathlib/Data/Nat/Find.lean +/- theorem Nat.find_comp_succ +/- theorem Nat.find_eq_iff +/- theorem Nat.le_find_iff +/- theorem Nat.lt_find_iff Modified Mathlib/Data/Subtype.lean Modified Mathlib/Logic/Basic.lean +/- theorem exists_or_forall_not +/- theorem forall_or_exists_not +/- theorem ite_prop_iff_and +/- theorem ite_prop_iff_or +/- theorem xor_iff_not_iff +/- theorem xor_iff_or_and_not_and Modified Mathlib/Logic/Nontrivial/Defs.lean +/- theorem not_subsingleton_iff_nontrivial Modified Mathlib/Logic/UnivLE.lean Modified Mathlib/Order/Minimal.lean +/- theorem Maximal.not_gt +/- theorem Minimal.not_lt 2025-07-29 02:51:25 713ead0 feat(Linter/TextBased): linter against Windows-forbidden filenames (#27588) [Zulip](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Never.20name.20a.20file.20Con.2Elean/with/531323255) ESTIMATED CHANGES Modified Mathlib/Tactic/Linter/TextBased.lean + def Mathlib.Linter.TextBased.modulesForbiddenWindows Added MathlibTest/ForbiddenWindows.lean + def testModulesForbiddenWindows Modified scripts/lint-style.lean 2025-07-29 02:51:23 e814daf chore(LinearAlgebra/PiTensorProduct): remove use of `erw` in `reindex_refl` (#27553) ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/PiTensorProduct.lean 2025-07-29 02:19:06 70c69b8 chore(Topology/Gluing): remove use of `erw` in `eqvGen_of_π_eq` (#27617) ESTIMATED CHANGES Modified Mathlib/Topology/Gluing.lean 2025-07-29 02:19:05 e7bfddf chore(LinearAlgebra/Dimension): remove use of `erw` in `lift_rank_eq_of_equiv_equiv` (#27614) ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/Dimension/Basic.lean 2025-07-29 02:19:04 aa9c189 chore(FieldTheory/IntermediateField): remove use of `erw` in `adjoin_minpoly_coeff_of_exists_primitive_element` (#27613) ESTIMATED CHANGES Modified Mathlib/FieldTheory/IntermediateField/Adjoin/Basic.lean 2025-07-29 02:19:02 489c64b feat(Fin2): equiv with `Fin` (#27595) ESTIMATED CHANGES Modified Mathlib/Data/Fin/Fin2.lean + def Fin2.equivFin + def Fin2.ofFin + theorem Fin2.ofFin_succ + theorem Fin2.ofFin_toFin + theorem Fin2.ofFin_zero + def Fin2.toFin + theorem Fin2.toFin_fs + theorem Fin2.toFin_fz + theorem Fin2.toFin_ofFin 2025-07-29 02:19:01 8805515 chore(Algebra/Quotient): fix deprecated links (#27593) ESTIMATED CHANGES Modified Mathlib/Algebra/Quotient.lean 2025-07-29 02:09:57 6b6c140 fix: reword instructions for adding co-authors in the PR template (#27618) This remedies the issue reported in the associated Zulip topic, namely, that the merge commit squashed by bors includes the co-authors who did not author commits in a way that is not recognized by GitHub. https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/co-authored-by.20bors.20issue/with/531479378 ESTIMATED CHANGES Modified .github/PULL_REQUEST_TEMPLATE.md 2025-07-28 23:36:27 3f4bece feat(LinearAlgebra/Projection): define `Submodule.IsCompl.projection` (#27369) This defines `Submodule.IsCompl.projection`: the linear projection onto a subspace along its complement as a map from the full space to itself, as opposed to `Submodule.linearProjOfIsCompl`, which maps into the subtype. This version is important as it satisfies `IsIdempotentElem`. This is the linear map version of `Submodule.starProjection` when in a complete space where `IsCompl U Uᗮ`. An operator `T` is idempotent iff it equals the projection onto its range along its kernel (i.e., `Submodule.IsCompl.projection` where `IsCompl (range T) (ker T)`). An idempotent operator `T` is symmetric if and only if its range and kernel are pairwise orthogonal (a more general `ContinuousLinearMap.IsIdempotentElem.isSelfAdjoint_iff_orthogonal_range` - so proof of this is golfed). Next pr: deprecate all instances of `p.subtype.comp p.linearProjOfIsCompl q hpq` and `(p.linearProjOfIsCompl q hpq x : E)` to `hpq.projection` and `hpq.projection x` respectively. ESTIMATED CHANGES Modified Mathlib/Analysis/InnerProductSpace/Adjoint.lean - theorem ContinuousLinearMap.IsIdempotentElem.isSelfAdjoint_iff_orthogonal_range + theorem ContinuousLinearMap.IsIdempotentElem.isSymmetric_iff_orthogonal_range Modified Mathlib/Analysis/InnerProductSpace/Positive.lean Modified Mathlib/Analysis/InnerProductSpace/Projection.lean + theorem Submodule.starProjection_coe_eq_isCompl_projection Modified Mathlib/Analysis/InnerProductSpace/Symmetric.lean + theorem LinearMap.IsIdempotentElem.isSymmetric_iff_isOrtho_range_ker + theorem LinearMap.IsIdempotentElem.isSymmetric_iff_orthogonal_range + theorem Submodule.IsCompl.projection_isSymmetric_iff Modified Mathlib/LinearAlgebra/Projection.lean + theorem LinearMap.IsIdempotentElem.eq_isCompl_projection - theorem LinearMap.IsIdempotentElem.subtype_comp_linearProjOfIsCompl_range_eq + theorem LinearMap.isIdempotentElem_iff_eq_isCompl_projection_range_ker + theorem Submodule.IsCompl.projection_apply + theorem Submodule.IsCompl.projection_apply_eq_zero_iff + theorem Submodule.IsCompl.projection_apply_left + theorem Submodule.IsCompl.projection_apply_mem + theorem Submodule.IsCompl.projection_eq_self_iff + theorem Submodule.IsCompl.projection_isIdempotentElem + theorem Submodule.IsCompl.projection_ker + theorem Submodule.IsCompl.projection_range - theorem Submodule.isIdempotentElem_subtype_comp_linearProjOfIsCompl 2025-07-28 23:18:34 27e7ed0 chore(CategoryTheory/Limits): remove use of `erw` in `colimitCoconeOfUnique` (#27612) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Limits/Shapes/Products.lean 2025-07-28 23:00:19 ed39dbe chore(CategoryTheory/Limits): remove use of `erw` in `Cofork.IsColimit.mk` (#27611) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Limits/Shapes/Equalizers.lean 2025-07-28 21:26:32 a002295 chore(Analysis/InnerProductSpace/Adjoint): typo in docstring (#27607) ESTIMATED CHANGES Modified Mathlib/Analysis/InnerProductSpace/Adjoint.lean 2025-07-28 21:16:49 038d952 feat(Analysis/VonNeumannAlgebra/Basic): idempotent in von Neumann algebra iff its range and kernel are invariant under commutant (#26799) This adds that an idempotent operator is in a von Neumann algebra iff its range and kernel are invariant under the commutant. (This is from leanprover-community/mathlib3/pull/18290.) ESTIMATED CHANGES Modified Mathlib/Analysis/VonNeumannAlgebra/Basic.lean + theorem VonNeumannAlgebra.IsIdempotentElem.mem_iff + theorem VonNeumannAlgebra.IsStarProjection.mem_iff 2025-07-28 21:07:10 554c34a feat(Analysis/InnerProductSpace/Positive.): add theorem `LinearMap.IsPositive.of_isStarProjection` (#27246) This two theorems where already added for `ContinuousLinearMap`, and in this pull request I'm adding them for `LinearMap` ESTIMATED CHANGES Modified Mathlib/Analysis/InnerProductSpace/Adjoint.lean + theorem LinearMap.isStarProjection_toContinuousLinearMap_iff Modified Mathlib/Analysis/InnerProductSpace/Positive.lean + theorem LinearMap.IsPositive.of_isStarProjection 2025-07-28 20:02:35 753d3b6 chore: remove useless assumption in measure instances (#27594) ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Constructions/Pi.lean +/- theorem MeasureTheory.Measure.pi'_eq_pi +/- theorem MeasureTheory.Measure.pi_eq +/- theorem MeasureTheory.Measure.pi_pi 2025-07-28 19:01:25 06973bd chore: update Mathlib dependencies 2025-07-28 (#27603) This PR updates the Mathlib dependencies. ESTIMATED CHANGES Modified lake-manifest.json 2025-07-28 17:03:57 7cd7d2c feat: if `F` is fully faithful, then so is `F.mapGrp` (#27580) Follow up to #23874. Also remove the corresponding `noncomputable` as they are now unnecessary. From Toric ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Monoidal/CommGrp_.lean + def CategoryTheory.Functor.mapCommGrp + def CategoryTheory.Functor.mapCommGrpCompIso + def CategoryTheory.Functor.mapCommGrpIdIso + def CategoryTheory.Functor.mapCommGrpNatIso + def CategoryTheory.Functor.mapCommGrpNatTrans Modified Mathlib/CategoryTheory/Monoidal/CommMon_.lean + def CategoryTheory.Adjunction.mapCommMon + def CategoryTheory.Equivalence.mapCommMon + def CategoryTheory.Functor.mapCommMonCompIso + def CategoryTheory.Functor.mapCommMonIdIso + def CategoryTheory.Functor.mapCommMonNatIso + def CategoryTheory.Functor.mapCommMonNatTrans Modified Mathlib/CategoryTheory/Monoidal/Grp_.lean + def CategoryTheory.Adjunction.mapGrp + def CategoryTheory.Equivalence.mapGrp + def CategoryTheory.Functor.mapGrp + def CategoryTheory.Functor.mapGrpCompIso + def CategoryTheory.Functor.mapGrpIdIso + def CategoryTheory.Functor.mapGrpNatIso + def CategoryTheory.Functor.mapGrpNatTrans Modified Mathlib/CategoryTheory/Monoidal/Mon_.lean + def CategoryTheory.Adjunction.mapMon + def CategoryTheory.Equivalence.mapMon + def CategoryTheory.Functor.mapMonCompIso + def CategoryTheory.Functor.mapMonIdIso + def CategoryTheory.Functor.mapMonNatIso + def CategoryTheory.Functor.mapMonNatTrans 2025-07-28 16:54:21 e33f463 chore(to_additive): fix `firstMultiplicativeArg` implementation (#27526) I didn't find any bad behaviour resulting from this. But the implementation seems to be doing the wrong thing in the case of an application `fn args` where `fn` is not a constant. (And `List.foldl` is the more efficient fold) ESTIMATED CHANGES Modified Mathlib/Tactic/ToAdditive/Frontend.lean Modified MathlibTest/toAdditive.lean + def barMul + def fooMul 2025-07-28 16:54:20 f8e7aff feat(AlgebraicGeometry): Any stalk of a locally noetherian scheme is Noetherian (and ditto for integral schemes) (#26850) In this PR we show any stalk of a locally noetherian scheme is Noetherian (and ditto for integral schemes), and we write these results as typeclass instances. ESTIMATED CHANGES Modified Mathlib/AlgebraicGeometry/FunctionField.lean Modified Mathlib/AlgebraicGeometry/Noetherian.lean 2025-07-28 15:22:32 a82d853 fix(to_additive): expand projections more often (#27529) This PR is a follow-up on #27405, since that PR didn't actually fix the original problem with the proof generated by `@[reassoc]`. It turns out that we should always expand projections if they have been explicitly tagged with `@[to_additive]` or `@[to_dual]`. In this case, `CategoryTheory.NatTrans.naturality` is not dual to itself, but its dual is proven separately, and tagged with `@[to_dual existing]`. So, we really need to expand the projection. There is no clear way to tell if a projection has been tagged explicitly, or automatically when tagging the structure. So, projections are sometimes expanded unnecessarily. ESTIMATED CHANGES Modified Mathlib/Tactic/ToAdditive/Frontend.lean Modified MathlibTest/toAdditive.lean 2025-07-28 12:45:25 6003a5e feat: add lemmas for modular exponentiation with the totient function (#26694) This PR adds lemmas around reducing the exponent of a modular exponentiation. These lemmas were found while doing work for [Project Numina](https://projectnumina.ai/). ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Data/Nat/PowModTotient.lean + theorem Nat.pow_add_mul_totient_mod_eq + theorem Nat.pow_add_totient_mod_eq + theorem Nat.pow_totient_mod + theorem Nat.pow_totient_mod_eq_one 2025-07-28 12:17:22 5bfecea chore: scope the instances giving a normed space structure from a Riemannian bundle instance (#27462) These are costly and quite specific. See discussion at [#mathlib4 > type-class inference slow/timing out @ 💬](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/type-class.20inference.20slow.2Ftiming.20out/near/530312318) ESTIMATED CHANGES Modified Mathlib/Analysis/NormedSpace/OperatorNorm/NormedSpace.lean Modified Mathlib/Geometry/Manifold/Riemannian/Basic.lean Modified Mathlib/Geometry/Manifold/VectorBundle/Riemannian.lean Modified Mathlib/Topology/VectorBundle/Riemannian.lean 2025-07-28 12:07:19 f68b0ca chore(LinearAlgebra/QuadraticForm): missing `coe_mk` and `norm_cast` (#27450) Also fixes an over-applied `simps`. ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/QuadraticForm/Basic.lean + theorem QuadraticMap.coe_mk 2025-07-28 10:35:42 485e656 feat(Analysis/Analytic): `HasFPowerSeriesOnBall.compContinuousLinearMap` (#26268) Prove `HasFPowerSeriesOnBall.compContinuousLinearMap` and its variants: if `pf` converges to `f` on the ball `B(u x0, r)` where `u` is continuous linear function, then `pf.compContinuousLinearMap u` converges to `f ∘ u` on `B(x0, r / ‖u‖)`. ESTIMATED CHANGES Modified Mathlib/Analysis/Analytic/Constructions.lean + theorem AnalyticAt.compContinuousLinearMap + theorem AnalyticAtWithin.compContinuousLinearMap + theorem AnalyticOn.compContinuousLinearMap + theorem AnalyticOnNhd.compContinuousLinearMap + theorem HasFPowerSeriesAt.compContinuousLinearMap + theorem HasFPowerSeriesOnBall.compContinuousLinearMap + theorem HasFPowerSeriesWithinAt.compContinuousLinearMap + theorem HasFPowerSeriesWithinOnBall.compContinuousLinearMap 2025-07-28 08:27:43 fe2ed21 feat(Probability): Prove Hoeffding's lemma corollary (#27230) Prove a corollary of Hoeffding's lemma for random variables with non-zero expectation. This simple corollary was suggested by a reviewer based on a recent contribution (#26744). ESTIMATED CHANGES Modified Mathlib/Probability/Moments/SubGaussian.lean + theorem ProbabilityTheory.hasSubgaussianMGF_of_mem_Icc_of_integral_eq_zero 2025-07-28 08:17:49 4c7a21b chore(LinearAlgebra/Matrix/Ideal): deprecate `matricesOver` (#27575) `Ideal.matricesOver` is not an ideal name - one should use `matrix` instead of `matricesOver`, see also #27190 where the analogous `Set.matrix`, `Subring.matrix`, etc are defined. [Zulip thread](https://leanprover.zulipchat.com/#narrow/stream/217875-Is-there-code-for-X.3F/topic/Set.2Ematrix/near/527826651) ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/Matrix/Ideal.lean - def Ideal.matricesOver - theorem Ideal.matricesOver_bot - theorem Ideal.matricesOver_jacobson_le - theorem Ideal.matricesOver_monotone - theorem Ideal.matricesOver_strictMono_of_nonempty - theorem Ideal.matricesOver_top + def Ideal.matrix + theorem Ideal.matrix_bot + theorem Ideal.matrix_jacobson_le + theorem Ideal.matrix_monotone + theorem Ideal.matrix_strictMono_of_nonempty + theorem Ideal.matrix_top - theorem Ideal.mem_matricesOver + theorem Ideal.mem_matrix - theorem Ideal.single_mem_jacobson_matricesOver + theorem Ideal.single_mem_jacobson_matrix - theorem TwoSidedIdeal.asIdeal_matricesOver + theorem TwoSidedIdeal.asIdeal_matrix - theorem TwoSidedIdeal.coe_equivMatricesOver_symm_apply + theorem TwoSidedIdeal.coe_equivMatrix_symm_apply - def TwoSidedIdeal.equivMatricesOver + def TwoSidedIdeal.equivMatrix - theorem TwoSidedIdeal.jacobson_matricesOver + theorem TwoSidedIdeal.jacobson_matrix - def TwoSidedIdeal.matricesOver - theorem TwoSidedIdeal.matricesOver_bot - theorem TwoSidedIdeal.matricesOver_jacobson_bot - theorem TwoSidedIdeal.matricesOver_monotone - theorem TwoSidedIdeal.matricesOver_strictMono_of_nonempty - theorem TwoSidedIdeal.matricesOver_top + def TwoSidedIdeal.matrix + theorem TwoSidedIdeal.matrix_bot + theorem TwoSidedIdeal.matrix_jacobson_bot + theorem TwoSidedIdeal.matrix_monotone + theorem TwoSidedIdeal.matrix_strictMono_of_nonempty + theorem TwoSidedIdeal.matrix_top - theorem TwoSidedIdeal.mem_matricesOver + theorem TwoSidedIdeal.mem_matrix - def TwoSidedIdeal.orderIsoMatricesOver + def TwoSidedIdeal.orderIsoMatrix Modified Mathlib/RingTheory/SimpleRing/Matrix.lean 2025-07-28 07:35:39 737d042 feat(Mathlib/MeasureTheory/MeasurableSpace/Invariants): add `comp_eq_of_measurable_invariants` (#26853) Invariance of `g` follows from `Measurable[invariants f] g`. ESTIMATED CHANGES Modified Mathlib/MeasureTheory/MeasurableSpace/Invariants.lean + theorem MeasurableSpace.comp_eq_of_measurable_invariants 2025-07-28 07:12:29 409dc30 feat(SetTheory/ZFC/VonNeumann): von Neumann hierarchy of sets (#26543) Ported from #17027. For extra discussion on this PR, see [Zulip](https://leanprover.zulipchat.com/#narrow/channel/144837-PR-reviews/topic/.2317027.20.2C.20.2326518.20von.20Neumann.20hierarchy/with/526389347). ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/SetTheory/Ordinal/Basic.lean Modified Mathlib/SetTheory/ZFC/Basic.lean + theorem ZFSet.mem_range_self Modified Mathlib/SetTheory/ZFC/Ordinal.lean Added Mathlib/SetTheory/ZFC/VonNeumann.lean + theorem ZFSet.exists_mem_vonNeumann + theorem ZFSet.iUnion_vonNeumann + theorem ZFSet.isTransitive_vonNeumann + theorem ZFSet.mem_vonNeumann' + theorem ZFSet.mem_vonNeumann + theorem ZFSet.mem_vonNeumann_of_subset + theorem ZFSet.mem_vonNeumann_succ + theorem ZFSet.rank_vonNeumann + theorem ZFSet.subset_vonNeumann + theorem ZFSet.subset_vonNeumann_self + theorem ZFSet.vonNeumann_inj + theorem ZFSet.vonNeumann_injective + theorem ZFSet.vonNeumann_mem_of_lt + theorem ZFSet.vonNeumann_mem_vonNeumann_iff + theorem ZFSet.vonNeumann_of_isSuccPrelimit + theorem ZFSet.vonNeumann_strictMono + theorem ZFSet.vonNeumann_subset_of_le + theorem ZFSet.vonNeumann_subset_vonNeumann_iff + theorem ZFSet.vonNeumann_succ + theorem ZFSet.vonNeumann_zero 2025-07-28 07:02:59 eac896c feat(MeasureTheory/Measure/AddContent): Add lemma `addContent_biUnion_eq` (#27406) This PR adds a lemma `addContent_biUnion_eq` stating than an `AddContent` is additive on a finite pairwise disjoint union. We already have the inequality `addContent_biUnion_le` without the pairwise disjoint assumption. ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Measure/AddContent.lean + theorem MeasureTheory.addContent_biUnion_eq 2025-07-28 06:06:35 29bdc6f chore(CategoryTheory/Monoidal): unify `mkIso` (#27126) Previously, `mkIso` and `mkIso'` meant different things across the various types of objects. Now: * `mkIso'` takes in elements `X`, `Y` of the underlying category `C`, an isomorphism `e : X ≅ Y` and a typeclass assumption `[IsMon_Hom e.hom]` and returns `mk X ≅ mk Y`, * `mkIso` is an `abbrev` for `mkIso'`, taking in elements `X`, `Y` of `Obj C`, an isomorphism `e : X.X ≅ Y.X` and the proof fields of `IsMon_Hom e.hom` and returns `X ≅ Y`. From Toric ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Monoidal/Bimon_.lean Modified Mathlib/CategoryTheory/Monoidal/CommGrp_.lean + def CommGrp_.mkIso' - def CommGrp_.mkIso - theorem CommGrp_.mkIso_hom_hom - theorem CommGrp_.mkIso_inv_hom Modified Mathlib/CategoryTheory/Monoidal/CommMon_.lean + def CommMon_.mkIso' - def CommMon_.mkIso - theorem CommMon_.mkIso_hom_hom - theorem CommMon_.mkIso_inv_hom Modified Mathlib/CategoryTheory/Monoidal/Grp_.lean + def Grp_.mkIso' - def Grp_.mkIso - theorem Grp_.mkIso_hom_hom - theorem Grp_.mkIso_inv_hom Modified Mathlib/CategoryTheory/Monoidal/Mon_.lean +/- def CategoryTheory.Equivalence.Mon_.EquivLaxMonoidalFunctorPUnit.counitIso +/- def CategoryTheory.Equivalence.Mon_.EquivLaxMonoidalFunctorPUnit.laxMonoidalToMon +/- def CategoryTheory.Equivalence.Mon_.EquivLaxMonoidalFunctorPUnit.monToLaxMonoidal +/- def CategoryTheory.Equivalence.Mon_.equivLaxMonoidalFunctorPUnit +/- def Mon_.mkIso' - def Mon_.mkIso 2025-07-28 02:18:35 307188a feat: `⋃ x ∈ s ×ˢ t, f x.1 ×ˢ g x.2 = (⋃ x ∈ s, f x) ×ˢ (⋃ x ∈ t, g x)` etc. (#27016) This lemma is needed to prove that finite product of Alexandrov-discrete spaces is Alexandrov-discrete: #27018 This is the generalization of [Set.iUnion_prod](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Data/Set/Lattice/Image.html#Set.iUnion_prod) to `biUnion`. Also generalize pi version. Also generalize the type of the lemma ```lean `⋃ (i : ι), ⋃ j, ⋃ (i' : ι), ⋃ j', s i j i' j' = ⋃ (i' : ι), ⋃ j', ⋃ (i : ι), ⋃ j, s i j i' j'` ``` to ```lean `⋃ (i : ι), ⋃ j, ⋃ (i' : ι'), ⋃ j', s i j i' j' = ⋃ (i' : ι'), ⋃ j', ⋃ (i : ι), ⋃ j, s i j i' j'` ``` ESTIMATED CHANGES Modified Mathlib/Data/Set/Lattice.lean + theorem Set.biUnion_univ_pi +/- theorem Set.iInter₂_comm +/- theorem Set.iUnion₂_comm Modified Mathlib/Data/Set/Lattice/Image.lean + theorem Set.biUnion_prod' + theorem Set.biUnion_prod 2025-07-28 02:02:16 b43219d chore(RepresentationTheory/Rep): remove use of `erw` in `counitIso` (#27555) ESTIMATED CHANGES Modified Mathlib/RepresentationTheory/Rep.lean 2025-07-28 01:48:47 b061192 chore: specify merge behaviour in create-adaptation-pr.sh (#27571) See previous failure at https://github.com/leanprover-community/mathlib4-nightly-testing/actions/runs/16556890710/job/46819596244#step:17:63 ESTIMATED CHANGES Modified scripts/create-adaptation-pr.sh 2025-07-27 22:47:35 c9e3dfa refactor(Analysis/InnerProductSpace/Positive): changing positivity on linear maps to use `IsSymmetric` instead of `IsSelfAdjoint` and finite-dimensionality (#27089) With this definition, the partial order would be defined on linear maps without needing finite-dimensionality. Also, when continuous linear maps are positive, then so are their coercions into linear maps, again, without needing finite-dimensionality. Moving the definition of positivity for linear maps before the one for continuous linear maps allows us to use results already done in linear maps for continuous linear maps. There's no need to have duplicate proofs. In essenece: - This changes the definition of `LinearMap.IsPositive` to `IsSymmetric T` instead of `IsSelfAdjoint T` and removes the finite-dimensional hypothesis. - This changes the order of the whole file: starting with linear maps and ending with continuous linear maps, instead of the other way around. - Adds `LinearMap.IsSymmetric.natCast`. - Adds `LinearMap.IsIdempotentElem.isPositive_iff_isSymmetric`, which is then used to golf `ContinuousLinearMap.IsIdempotentElem.isPositive_iff_isSelfAdjoint` (note the change of order for `isPositive_iff_isSelfAdjoint` and `IsPositive.of_isStarProjection`). - Final addition: `ContinuousLinearMap.coe_le_coe_iff` which just says `f.toLinearMap ≤ g.toLinearMap` iff `f ≤ g`. - There are two results (`LinearMap.IsPositive.conj_adjoint` and `LinearMap.IsPositive.adjoint_conj`) which are in the middle of the `ContinuousLinearMap` namespace. The reason for this is to utilize the proofs already done for continuous maps instead of having duplicate proofs. ESTIMATED CHANGES Modified Mathlib/Analysis/InnerProductSpace/Positive.lean + theorem ContinuousLinearMap.coe_le_coe_iff +/- theorem ContinuousLinearMap.isPositive_natCast +/- theorem ContinuousLinearMap.isPositive_toLinearMap_iff +/- theorem ContinuousLinearMap.isPositive_zero + theorem LinearMap.IsIdempotentElem.isPositive_iff_isSymmetric +/- theorem LinearMap.IsPositive.adjoint_conj +/- theorem LinearMap.IsPositive.adjoint_eq +/- theorem LinearMap.IsPositive.conj_adjoint +/- theorem LinearMap.IsPositive.isSelfAdjoint +/- theorem LinearMap.IsPositive.nonneg_eigenvalues +/- theorem LinearMap.isPositive_one +/- theorem LinearMap.isPositive_toContinuousLinearMap_iff +/- theorem LinearMap.isPositive_zero Modified Mathlib/Analysis/InnerProductSpace/Symmetric.lean + theorem LinearMap.IsSymmetric.intCast + theorem LinearMap.IsSymmetric.natCast 2025-07-27 22:37:26 c3f51d4 feat(Analysis/InnerProductSpace/Adjoint): a normal idempotent operator is a star projection (#26767) This adds that an idempotent operator is self-adjoint if and only if it is normal. This means that a normal idempotent operator is a star projection. Along with #26631, we get that for idempotent operators, normality, self-adjointedness, and positivity are all equivalent. ESTIMATED CHANGES Modified Mathlib/Analysis/InnerProductSpace/Adjoint.lean + theorem ContinuousLinearMap.IsIdempotentElem.isSelfAdjoint_iff_isStarNormal +/- theorem ContinuousLinearMap.IsStarProjection.ext_iff + theorem ContinuousLinearMap.isStarProjection_iff_isIdempotentElem_and_isStarNormal Modified Mathlib/Analysis/InnerProductSpace/Positive.lean + theorem ContinuousLinearMap.IsIdempotentElem.TFAE 2025-07-27 22:01:03 23376a8 feat(Nat/ModEq): `a - c ≡ b - d` if `a ≡ b` and `c ≡ d` (#27568) ESTIMATED CHANGES Modified Mathlib/Data/Nat/ModEq.lean 2025-07-27 20:07:10 f5ed73d feat: `small_quot` and `small_quotient` (#27546) Adds instances for small quotients. ESTIMATED CHANGES Modified Mathlib/Logic/Small/Basic.lean 2025-07-27 19:24:11 9d7b350 chore(Analysis/InnerProductSpace/Projection): change `_of_completeSpace` to `_of_hasOrthogonalProjection` (#27559) This PR renames the results because they use `Submodule.HasOrthogonalProjection` and not `CompleteSpace`. ESTIMATED CHANGES Modified Mathlib/Analysis/InnerProductSpace/Projection.lean - theorem Submodule.isCompl_orthogonal_of_completeSpace + theorem Submodule.isCompl_orthogonal_of_hasOrthogonalProjection - theorem Submodule.sup_orthogonal_inf_of_completeSpace + theorem Submodule.sup_orthogonal_inf_of_hasOrthogonalProjection - theorem Submodule.sup_orthogonal_of_completeSpace + theorem Submodule.sup_orthogonal_of_hasOrthogonalProjection Modified Mathlib/Analysis/InnerProductSpace/Semisimple.lean Modified Mathlib/Analysis/InnerProductSpace/l2Space.lean Modified Mathlib/Geometry/Euclidean/Inversion/Calculus.lean Modified Mathlib/Geometry/Euclidean/Projection.lean 2025-07-27 17:59:16 98480d6 feat: describe posLog in terms of circle averages (#27160) If `a` is any complex number of norm one, establish by direct computation that the circle average `circleAverage (log ‖· - a‖) 0 1` vanishes. As soon as the mean value theorem for harmonic functions becomes available, this result will be extended to arbitrary complex numbers `a`, showing that the circle average equals the positive part of the logarithm, `circleAverage (log ‖· - a‖) 0 1 = log⁺ ‖a‖`. This result, in turn, is a major ingredient in the proof of Jensen's formula in complex analysis. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/SpecialFunctions/Integrals/PosLogEqCircleAverage.lean + theorem circleAverage_log_norm_sub_const₁ + theorem circleIntegrable_log_norm_sub_const 2025-07-27 16:19:54 48ae0f1 feat(Data/Rat): add lemma for multiplying num or den (#27495) Small lemmas for Rat split off from #26059. These restates `mul_num` and `mul_den` so one doesn't need to deal with integer division. ESTIMATED CHANGES Modified Mathlib/Data/NNRat/Lemmas.lean + theorem NNRat.den_mul_den_eq_den_mul_gcd + theorem NNRat.mul_den + theorem NNRat.mul_num + theorem NNRat.num_mul_num_eq_num_mul_gcd Modified Mathlib/Data/Rat/Lemmas.lean + theorem Rat.den_mul_den_eq_den_mul_gcd + theorem Rat.num_mul_num_eq_num_mul_gcd 2025-07-27 16:19:53 d68f3de chore(Analysis/InnerProductSpace/GramSchmidtOrtho): change definition to use `U.starProjection x` instead of `(U.orthogonalProjection x : E)` (#27334) ESTIMATED CHANGES Modified Mathlib/Analysis/InnerProductSpace/GramSchmidtOrtho.lean +/- theorem InnerProductSpace.gramSchmidt_zero 2025-07-27 16:19:51 56dfd71 style: use simplex notation (`⦋n⦌`) where possible (#25322) `StandardSimplex.mk n` is replaced with `⦋n⦌` where possible (except in notation and macros, which are left untouched). This includes opening `Simplicial` (`scoped`) in two files. Also, outdated and unused `local notation` `[n]` for `StandardSimplex.mk n` is removed. ESTIMATED CHANGES Modified Mathlib/AlgebraicTopology/CechNerve.lean Modified Mathlib/AlgebraicTopology/MooreComplex.lean +/- def AlgebraicTopology.NormalizedMooreComplex.objX Modified Mathlib/AlgebraicTopology/SimplexCategory/Basic.lean +/- theorem SimplexCategory.eq_comp_δ_of_not_surjective' +/- theorem SimplexCategory.eq_comp_δ_of_not_surjective +/- theorem SimplexCategory.eq_δ_of_mono +/- theorem SimplexCategory.eq_σ_comp_of_not_injective' +/- theorem SimplexCategory.eq_σ_comp_of_not_injective +/- theorem SimplexCategory.eq_σ_of_epi Modified Mathlib/AlgebraicTopology/SimplicialObject/Basic.lean Modified Mathlib/AlgebraicTopology/SimplicialSet/Coskeletal.lean Modified Mathlib/AlgebraicTopology/SimplicialSet/NerveAdjunction.lean Modified Mathlib/AlgebraicTopology/SimplicialSet/StdSimplex.lean +/- def SSet.stdSimplex.isoOfRepresentableBy +/- theorem SSet.stdSimplex.objEquiv_symm_apply 2025-07-27 15:47:50 0a739db feat(LinearAlgebra/Projection): lemmas on projections and invariant submodules (#25874) Proving some lemmas on invariant submodules, such as: For idempotent `f` and any operator `T`: - `range f` is invariant under `T` iff `f ∘ T ∘ f = T ∘ f` - `ker f` is invariant under `T` iff `f ∘ T ∘ f = f ∘ T` - `f` and `T` commute iff both `range f` and `ker f` are invariant under `T` Added for both linear maps and continuous linear maps for convenience. Taken from leanprover-community/mathlib3#18289. ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Commute/Units.lean + theorem Units.commute_iff_inv_mul_cancel + theorem Units.commute_iff_inv_mul_cancel_assoc + theorem Units.commute_iff_mul_inv_cancel + theorem Units.commute_iff_mul_inv_cancel_assoc Modified Mathlib/Algebra/Lie/LieTheorem.lean Modified Mathlib/Algebra/Module/Submodule/Invariant.lean + theorem Module.End.mem_invtSubmodule_iff_forall_mem_of_mem + theorem Module.End.mem_invtSubmodule_iff_map_le + theorem Module.End.mem_invtSubmodule_iff_mapsTo + theorem Module.End.mem_invtSubmodule_symm_iff_le_map Modified Mathlib/Algebra/Module/Submodule/Range.lean + theorem LinearMap.range_add_le Modified Mathlib/Analysis/InnerProductSpace/Projection.lean + theorem Submodule.orthogonalProjection_coe_eq_linearProjOfIsCompl - theorem Submodule.orthogonalProjection_coe_linearMap_eq_linearProj + theorem Submodule.orthogonalProjection_eq_linearProjOfIsCompl - theorem Submodule.orthogonalProjection_eq_linear_proj Modified Mathlib/LinearAlgebra/Projection.lean + theorem LinearMap.IsIdempotentElem.commute_iff + theorem LinearMap.IsIdempotentElem.commute_iff_of_isUnit + theorem LinearMap.IsIdempotentElem.comp_eq_left_iff + theorem LinearMap.IsIdempotentElem.isCompl + theorem LinearMap.IsIdempotentElem.ker_mem_invtSubmodule_iff + theorem LinearMap.IsIdempotentElem.range_mem_invtSubmodule_iff + theorem LinearMap.IsIdempotentElem.subtype_comp_linearProjOfIsCompl_range_eq + theorem LinearMap.IsProj.mem_invtSubmodule_iff + theorem LinearMap.ofIsCompl_eq_add + theorem LinearMap.ofIsCompl_subtype_zero_eq + theorem LinearMap.ofIsCompl_symm + theorem LinearMap.range_ofIsCompl + theorem Submodule.isIdempotentElem_subtype_comp_linearProjOfIsCompl + theorem Submodule.linearProjOfIsCompl_add_linearProjOfIsCompl_eq_self + theorem Submodule.linearProjOfIsCompl_eq_self_iff + theorem Submodule.linearProjOfIsCompl_eq_self_sub_linearProjOfIsCompl - theorem Submodule.linear_proj_add_linearProjOfIsCompl_eq_self Modified Mathlib/Topology/Algebra/Module/LinearMap.lean + theorem ContinuousLinearMap.IsIdempotentElem.commute_iff + theorem ContinuousLinearMap.IsIdempotentElem.commute_iff_of_isUnit +/- theorem ContinuousLinearMap.IsIdempotentElem.ker_eq_range + theorem ContinuousLinearMap.IsIdempotentElem.ker_mem_invtSubmodule_iff +/- theorem ContinuousLinearMap.IsIdempotentElem.range_eq_ker + theorem ContinuousLinearMap.IsIdempotentElem.range_mem_invtSubmodule_iff 2025-07-27 15:33:18 d670e00 chore: golf Ideal.span_singleton_mul_left_unit (#27543) ESTIMATED CHANGES Modified Mathlib/RingTheory/Ideal/Span.lean 2025-07-27 15:33:16 6636c97 feat: implement the Cauchy-Riemann Equation (#26839) Describe complex differentiability for functions `f : ℂ → ℂ` using the Cauchy-Riemann equation. This material closes a long-standing open TODO. It is used in [Project VD](https://github.com/kebekus/ProjectVD), which aims to formalize Value Distribution Theory for meromorphic functions on the complex plane. It is one of the ingredients in the proof of Jensen's Formula in complex analysis. ESTIMATED CHANGES Modified Mathlib/Analysis/Complex/Conformal.lean + theorem ContinuousLinearMap.coe_complexOfReal + def ContinuousLinearMap.complexOfReal + theorem LinearMap.coe_complexOfReal + def LinearMap.complexOfReal + theorem complexOfReal_deriv + theorem complexOfReal_derivWithin + theorem complexOfReal_fderiv + theorem complexOfReal_fderivWithin + theorem complexOfReal_hasDerivAt + theorem complexOfReal_hasDerivWithinAt + theorem differentiableAt_complex_iff_differentiableAt_real + theorem differentiableWithinAt_complex_iff_differentiableWithinAt_real + theorem real_linearMap_map_smul_complex 2025-07-27 14:59:53 8ac39d0 chore(Analysis/InnerProductAlgebra/Projection): adding norm and other results for `Submodule.starProjection` (#27317) Analogue results for `Submodule.starProjection`. ESTIMATED CHANGES Modified Mathlib/Analysis/InnerProductSpace/Projection.lean + theorem Submodule.IsOrtho.starProjection_comp_starProjection + theorem Submodule.lipschitzWith_starProjection + theorem Submodule.norm_sq_eq_add_norm_sq_starProjection + theorem Submodule.norm_starProjection + theorem Submodule.norm_starProjection_apply + theorem Submodule.norm_starProjection_apply_le - theorem Submodule.orthogonalProjection_mem_subspace_orthogonal_precomplement_eq_zero + theorem Submodule.orthogonalProjection_orthogonal_apply_eq_zero + theorem Submodule.starProjection_apply_eq_zero_iff + theorem Submodule.starProjection_comp_starProjection_eq_zero_iff + theorem Submodule.starProjection_comp_starProjection_of_le + theorem Submodule.starProjection_mem_subspace_eq_self + theorem Submodule.starProjection_norm_le + theorem Submodule.starProjection_orthogonalComplement_singleton_eq_zero + theorem Submodule.starProjection_orthogonal_apply_eq_zero 2025-07-27 14:04:42 d6726be feat: `small_plift` (#27541) Adds an instance `small_plift`. ESTIMATED CHANGES Modified Mathlib/Logic/Small/Defs.lean 2025-07-27 13:11:46 6ce415c chore: Clean up typos using OpenAI's GPT-4.1 mini (verified by human) (#27535) This commit was generated using OpenAI's GPT-4.1 mini and then verified by a human. A human-written script was run (powered by the aforementioned AI model) on the files № 101-200 in the `Mathlib/` folder. ESTIMATED CHANGES Modified Mathlib/Algebra/BigOperators/Group/List/Lemmas.lean Modified Mathlib/Algebra/BigOperators/Ring/List.lean Modified Mathlib/Algebra/BrauerGroup/Defs.lean Modified Mathlib/Algebra/Category/ContinuousCohomology/Basic.lean Modified Mathlib/Algebra/Category/FGModuleCat/Basic.lean Modified Mathlib/Algebra/Category/FGModuleCat/Limits.lean Modified Mathlib/Algebra/Category/Grp/AB.lean Modified Mathlib/Algebra/Category/Grp/Adjunctions.lean Modified Mathlib/Algebra/Category/Grp/Basic.lean Modified Mathlib/Algebra/Category/Grp/CartesianMonoidal.lean Modified Mathlib/Algebra/Category/Grp/EquivalenceGroupAddGroup.lean Modified Mathlib/Algebra/Category/Grp/FiniteGrp.lean Modified Mathlib/Algebra/Category/Grp/Injective.lean Modified Mathlib/Algebra/Category/Grp/LeftExactFunctor.lean Modified Mathlib/Algebra/Category/Grp/Ulift.lean Modified Mathlib/Algebra/Category/ModuleCat/AB.lean Modified Mathlib/Algebra/Category/ModuleCat/Adjunctions.lean Modified Mathlib/Algebra/Category/ModuleCat/ChangeOfRings.lean Modified Mathlib/Algebra/Category/ModuleCat/Differentials/Presheaf.lean Modified Mathlib/Algebra/Category/ModuleCat/EnoughInjectives.lean Modified Mathlib/Algebra/Category/ModuleCat/ExteriorPower.lean Modified Mathlib/Algebra/Category/ModuleCat/Monoidal/Closed.lean Modified Mathlib/Algebra/Category/ModuleCat/Products.lean Modified Mathlib/Algebra/Category/ModuleCat/Pseudofunctor.lean Modified Mathlib/Algebra/Category/ModuleCat/Sheaf.lean 2025-07-27 12:06:50 2a234c6 chore: update Mathlib dependencies 2025-07-27 (#27530) This PR updates the Mathlib dependencies. ESTIMATED CHANGES Modified Mathlib/Combinatorics/Enumerative/DyckWord.lean Modified Mathlib/Data/List/ModifyLast.lean Modified Mathlib/Data/List/Perm/Subperm.lean Modified Mathlib/Data/List/Scan.lean Modified Mathlib/Data/List/Sort.lean Modified Mathlib/Data/Nat/Factorization/Defs.lean Modified lake-manifest.json 2025-07-27 11:47:50 5bbce26 fix: fetch depth for master to nightly workflow (#27533) Fixes the fetch depth for the "Merge master to nightly" workflow; we need to have the entire commit history or else we'll have weird unwanted side effects. ESTIMATED CHANGES Modified .github/workflows/nightly_merge_master.yml 2025-07-27 11:03:17 6768866 chore(CategoryTheory/Localization): remove use of `erw` in `homMap_map` (#27524) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Localization/HomEquiv.lean 2025-07-27 11:03:15 fe93396 feat: `OrderEmbedding` is a topological embedding (#27512) `OrderEmbedding` is a topological embedding provided that the range of `f` is order-connected. ESTIMATED CHANGES Modified Mathlib/Topology/Order/Basic.lean + theorem OrderEmbedding.isEmbedding_of_ordConnected 2025-07-27 10:52:09 be04c24 feat(CategoryTheory/Monoidal/DayConvolution): braiding and symmetry for Day convolution (#27067) In this PR, we prove that when `C` and `V` are braided monoidal categories, and when relevant Day convolutions exist, the unbundled Day convolution monoidal structure on `C ⥤ V` is also braided: we construct an isomorphism `DayConvolution.braiding`, characterize it with respect to the unit maps that exhibits Day convolutions as left Kan extensions, and prove that the forward and reverse hexagon identities are satisfied. In the case `C` and `V` are symmetric, we show that `braiding F G|>.hom` is inverse to `braiding G F|>.hom` as well. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/CategoryTheory/Monoidal/DayConvolution.lean Added Mathlib/CategoryTheory/Monoidal/DayConvolution/Braided.lean + def CategoryTheory.MonoidalCategory.DayConvolution.braiding + def CategoryTheory.MonoidalCategory.DayConvolution.braidingHomCorepresenting + def CategoryTheory.MonoidalCategory.DayConvolution.braidingInvCorepresenting + theorem CategoryTheory.MonoidalCategory.DayConvolution.braiding_naturality_left + theorem CategoryTheory.MonoidalCategory.DayConvolution.braiding_naturality_right + theorem CategoryTheory.MonoidalCategory.DayConvolution.hexagon_forward + theorem CategoryTheory.MonoidalCategory.DayConvolution.hexagon_reverse + theorem CategoryTheory.MonoidalCategory.DayConvolution.symmetry + theorem CategoryTheory.MonoidalCategory.DayConvolution.unit_app_braiding_hom_app + theorem CategoryTheory.MonoidalCategory.DayConvolution.unit_app_braiding_inv_app 2025-07-27 10:52:07 3e7682b feat(AlgebraicGeometry): Add global preorder instance for schemes (#26204) In this PR we added a default preorder instance for schemes, defined to be the specialization order as discussed here: https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/dimension.20function.20for.20schemes/near/524997376 for discussion ESTIMATED CHANGES Modified Mathlib/AlgebraicGeometry/AffineSpace.lean + theorem AlgebraicGeometry.AffineSpace.spec_le_iff Modified Mathlib/AlgebraicGeometry/Scheme.lean + theorem AlgebraicGeometry.Scheme.le_iff_specializes 2025-07-27 09:45:28 bacb344 chore: replace `Monoid.IsTorsionFree` with `IsMulTorsionFree` (#24311) From Toric ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Torsion.lean Modified Mathlib/Algebra/NoZeroSMulDivisors/Defs.lean Modified Mathlib/Combinatorics/Additive/CauchyDavenport.lean - theorem cauchy_davenport_mul_of_isTorsionFree + theorem cauchy_davenport_of_isMulTorsionFree Modified Mathlib/GroupTheory/Order/Min.lean +/- theorem Monoid.minOrder_eq_top + theorem Monoid.minOrder_eq_top_iff +/- theorem Monoid.minOrder_le_natCard Modified Mathlib/GroupTheory/Torsion.lean Modified Mathlib/Topology/Instances/ZMultiples.lean 2025-07-27 09:27:19 6edce77 feat: establish examples of harmonic functions (#26844) If `f : ℂ → F` is complex-differentiable, then show that `f` is harmonic. If `F = ℂ`, then so is its real part, imaginary part, and complex conjugate. If `f` has no zero, then `log ‖f‖` is harmonic. This material is used in [Project VD](https://github.com/kebekus/ProjectVD), which aims to formalize Value Distribution Theory for meromorphic functions on the complex plane. It is one of the ingredients in the proof of Jensen's Formula in complex analysis. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Analysis/Complex/Basic.lean + theorem Complex.mem_slitPlane_or_neg_mem_slitPlane Added Mathlib/Analysis/InnerProductSpace/Harmonic/Constructions.lean + theorem AnalyticAt.harmonicAt + theorem AnalyticAt.harmonicAt_conj + theorem AnalyticAt.harmonicAt_im + theorem AnalyticAt.harmonicAt_log_norm + theorem AnalyticAt.harmonicAt_re + theorem ContDiffAt.harmonicAt 2025-07-27 04:42:34 7a8536d feat(Algebra/Order): additional lemma about mkRat pos/neg (#27501) There is `mkRat_nonneg` in the same file. This adds iff version for all pos/neg/nonpos/nonneg ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Ring/Unbundled/Rat.lean + theorem Rat.mkRat_neg + theorem Rat.mkRat_neg_iff + theorem Rat.mkRat_nonneg_iff + theorem Rat.mkRat_nonpos + theorem Rat.mkRat_nonpos_iff + theorem Rat.mkRat_pos + theorem Rat.mkRat_pos_iff 2025-07-27 02:54:46 857f782 feat(ZMod): add `to_additive_dont_translate` (#27521) This PR adds the tag `@[to_additive_dont_translate]` to `ZMod`, so that it is treated the same as `ℕ` by `to_additive`. This allows us to use `to_additive` in 2 more places. ESTIMATED CHANGES Modified Mathlib/Data/ZMod/Basic.lean - theorem nsmul_zmod_val_inv_nsmul - theorem zmod_val_inv_nsmul_nsmul Modified Mathlib/Data/ZMod/Defs.lean 2025-07-27 02:54:44 af8b36b chore: remove a few superfluous open's (#27488) Found by the linter in #25362. ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Pi/Basic.lean Modified Mathlib/Algebra/GroupWithZero/Pi.lean Modified Mathlib/Algebra/Order/Ring/InjSurj.lean Modified Mathlib/CategoryTheory/Functor/ReflectsIso/Basic.lean Modified Mathlib/Data/Finite/Defs.lean Modified Mathlib/Data/Ineq.lean Modified Mathlib/Data/List/Lemmas.lean Modified Mathlib/Data/List/NatAntidiagonal.lean Modified Mathlib/Data/Nat/Choose/Basic.lean Modified Mathlib/Data/Nat/Prime/Basic.lean Modified Mathlib/Data/Nat/Prime/Defs.lean Modified Mathlib/Data/Set/Image.lean Modified Mathlib/Data/Set/Insert.lean Modified Mathlib/Logic/Basic.lean Modified Mathlib/Logic/Embedding/Set.lean Modified Mathlib/Logic/Pairwise.lean Modified Mathlib/Order/BoundedOrder/Basic.lean Modified Mathlib/Order/WithBot.lean Modified Mathlib/RingTheory/OreLocalization/Basic.lean Modified Mathlib/Tactic/ApplyFun.lean Modified Mathlib/Tactic/CongrM.lean Modified Mathlib/Tactic/Find.lean Modified Mathlib/Tactic/Lift.lean Modified Mathlib/Tactic/Recover.lean Modified Mathlib/Tactic/Widget/Calc.lean Modified Mathlib/Tactic/Widget/SelectInsertParamsClass.lean Modified Mathlib/Util/CountHeartbeats.lean 2025-07-27 02:05:58 db49903 chore: chore(Order): use new ge/gt - Part 6 (#27528) This PR fixes 2 more order names: `forall_ge_iff_le` now aligns with `le_of_forall_ge`. And I think I made an error when applying the new naming convention for `eq_or_lt_of_not_gt`. ESTIMATED CHANGES Modified Mathlib/Combinatorics/SimpleGraph/Walk.lean Modified Mathlib/Order/Basic.lean + theorem forall_ge_iff_le - theorem forall_le_iff_ge Modified Mathlib/Order/Defs/LinearOrder.lean + theorem eq_or_gt_of_not_lt - theorem eq_or_lt_of_not_gt 2025-07-27 02:05:56 60d62d7 chore(CategoryTheory/Idempotents): remove use of `erw` in `split_iff_of_iso` (#27523) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Idempotents/Basic.lean 2025-07-27 02:05:55 55e09be chore(Algebra/Category/ModuleCat): remove use of `erw` in `coconeMorphism` (#27522) ESTIMATED CHANGES Modified Mathlib/Algebra/Category/ModuleCat/FilteredColimits.lean 2025-07-27 02:05:54 c0a8169 chore: rename Analysis.Meromorphic.Gamma to Analysis.Meromorphic.Complex (#27499) This PR renames Analysis.Meromorphic.Gamma to Analysis.Meromorphic.Complex since additional meromorphicity results will be added in #27500. ESTIMATED CHANGES Modified Mathlib.lean Renamed Mathlib/Analysis/Meromorphic/Gamma.lean to Mathlib/Analysis/Meromorphic/Complex.lean 2025-07-27 01:15:01 377c35f feat: `apply` and `coe` results for `UniformSpace.Completion.mapRingHom` (#24872) ESTIMATED CHANGES Modified Mathlib/Topology/Algebra/UniformRing.lean + theorem UniformSpace.Completion.mapRingHom_apply + theorem UniformSpace.Completion.mapRingHom_coe 2025-07-27 00:27:38 1d078c3 docs: Inherit `Equivalence` docstring on notation (#27487) The prior docstring for the notation `≌` for `Equivalence` read only > We infix the usual notation for an equivalence This PR instead attaches `@[inherit_doc Equivalence]` to the notation, so that information for `Equivalence` is displayed when hovering over `≌`. We also clean up the formatting and grammar of the docstrings for `Equivalence` and its fields, and make them less "context-specific" (and therefore more appropriate for hovers) without changing their content radically. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Equivalence.lean 2025-07-27 00:27:37 f3dcfd7 chore: generalize `sumAddHom` to `sumZeroHom` (#27272) This hopefully will make this usable on quadratic maps, which preserve zero but not addition. For now this does not change the simp-normal form of `sumAddHom` ESTIMATED CHANGES Modified Mathlib/Data/DFinsupp/BigOperators.lean + theorem DFinsupp.sumAddHom_piSingle + def DFinsupp.sumZeroHom + theorem DFinsupp.sumZeroHom_apply + theorem DFinsupp.sumZeroHom_piSingle + theorem DFinsupp.sumZeroHom_single 2025-07-27 00:27:34 fa01680 feat: add mdifferentiable analogues of C^n metric lemmas (#26921) ESTIMATED CHANGES Modified Mathlib/Geometry/Manifold/VectorBundle/Riemannian.lean + theorem MDifferentiable.inner_bundle + theorem MDifferentiableAt.inner_bundle + theorem MDifferentiableOn.inner_bundle + theorem MDifferentiableWithinAt.inner_bundle 2025-07-26 23:35:51 c76219f chore: Clean up typos using OpenAI's GPT-4.1 mini (verified by human) (#27519) This commit was generated using OpenAI's GPT-4.1 mini and then verified by a human. A human-written script was run (powered by the aforementioned AI model) on the first 20 files in the `Mathlib/` folder. ESTIMATED CHANGES Modified Mathlib/Algebra/GradedMonoid.lean Modified Mathlib/Algebra/HierarchyDesign.lean Modified Mathlib/Algebra/LinearRecurrence.lean Modified Mathlib/Init.lean 2025-07-26 23:35:49 8b18857 chore(Algebra/Algebra/Defs): modified `RingHom.toAlgebra'` and `RingHom.toAlgebra` docstrings to reflect the risk of diamonds (#27514) Modified the docstring of `RingHom.toAlgebra'` to include a warning that if `S` already has a `SMul R S` instance, then using this result creates another `SMul R S` instance from the supplied `RingHom` and this will likely create a diamond. Also modified `RingHom.toAlgebra` similarly (a bit shorter, since this result calls the primed version, so the warning here says that the call to the primed version may create a diamond.) ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/Defs.lean 2025-07-26 23:35:48 d421f15 chore: more indentation fixes (#27502) Found by the linter in #27473. ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/NonUnitalHom.lean Modified Mathlib/Algebra/Azumaya/Defs.lean Modified Mathlib/Algebra/Category/FGModuleCat/Basic.lean Modified Mathlib/Algebra/Category/Grp/Basic.lean +/- theorem CommGrp.hom_ofHom Modified Mathlib/Algebra/Category/Grp/Limits.lean Modified Mathlib/Algebra/Category/GrpWithZero.lean +/- theorem GrpWithZero.forget_map Modified Mathlib/Algebra/Category/ModuleCat/Colimits.lean Modified Mathlib/Algebra/Category/ModuleCat/Presheaf.lean Modified Mathlib/Algebra/Category/ModuleCat/Topology/Basic.lean +/- theorem TopModuleCat.hom_id +/- theorem TopModuleCat.hom_smul +/- theorem TopModuleCat.ofHom_hom Modified Mathlib/Algebra/Category/MonCat/FilteredColimits.lean Modified Mathlib/Algebra/Category/Ring/Basic.lean +/- theorem CommRingCat.hom_ofHom Modified Mathlib/Algebra/Category/Ring/Constructions.lean +/- theorem CommRingCat.coproductCocone_inl +/- theorem CommRingCat.coproductCocone_inr Modified Mathlib/Algebra/Group/Subgroup/Map.lean Modified Mathlib/Algebra/Homology/DerivedCategory/Ext/EnoughProjectives.lean +/- theorem CategoryTheory.hasExt_of_enoughProjectives Modified Mathlib/Algebra/Homology/ShortComplex/HomologicalComplex.lean Modified Mathlib/Algebra/Homology/ShortComplex/Homology.lean Modified Mathlib/Algebra/Homology/ShortComplex/LeftHomology.lean Modified Mathlib/Algebra/Homology/ShortComplex/Preadditive.lean Modified Mathlib/Algebra/Homology/ShortComplex/PreservesHomology.lean Modified Mathlib/Algebra/Homology/ShortComplex/RightHomology.lean Modified Mathlib/Algebra/Module/Submodule/Pointwise.lean Modified Mathlib/Algebra/Module/Submodule/Range.lean Modified Mathlib/Algebra/MonoidAlgebra/Defs.lean +/- theorem AddMonoidAlgebra.singleAddHom_apply +/- theorem MonoidAlgebra.singleAddHom_apply Modified Mathlib/Algebra/Polynomial/Basic.lean Modified Mathlib/Algebra/Polynomial/Coeff.lean Modified Mathlib/Algebra/Polynomial/Laurent.lean +/- theorem LaurentPolynomial.eval₂_C_mul_T_neg_n Modified Mathlib/Algebra/RingQuot.lean Modified Mathlib/Analysis/InnerProductSpace/Basic.lean Modified Mathlib/CategoryTheory/Adjunction/Reflective.lean Modified Mathlib/CategoryTheory/GradedObject.lean Modified Mathlib/CategoryTheory/GradedObject/Bifunctor.lean Modified Mathlib/CategoryTheory/GradedObject/Trifunctor.lean Modified Mathlib/CategoryTheory/Limits/Preserves/Basic.lean Modified Mathlib/CategoryTheory/Linear/LinearFunctor.lean Modified Mathlib/CategoryTheory/Monoidal/Comon_.lean Modified Mathlib/CategoryTheory/Monoidal/End.lean Modified Mathlib/CategoryTheory/Monoidal/Functor.lean Modified Mathlib/CategoryTheory/Monoidal/Mon_.lean Modified Mathlib/CategoryTheory/MorphismProperty/Comma.lean +/- theorem CategoryTheory.MorphismProperty.Comma.Hom.hom_mk Modified Mathlib/CategoryTheory/Preadditive/LeftExact.lean Modified Mathlib/CategoryTheory/Shift/Basic.lean Modified Mathlib/CategoryTheory/Subterminal.lean Modified Mathlib/CategoryTheory/WithTerminal/Cone.lean Modified Mathlib/Data/Finsupp/SMulWithZero.lean Modified Mathlib/Data/Fintype/Powerset.lean Modified Mathlib/Data/Matrix/Basic.lean Modified Mathlib/Data/Matrix/Composition.lean Modified Mathlib/Data/Set/Card.lean Modified Mathlib/GroupTheory/OrderOfElement.lean Modified Mathlib/LinearAlgebra/BilinearMap.lean Modified Mathlib/LinearAlgebra/Multilinear/Basic.lean Modified Mathlib/Order/Category/BddDistLat.lean Modified Mathlib/Order/Category/BddOrd.lean Modified Mathlib/Order/Category/BoolAlg.lean Modified Mathlib/Order/Category/DistLat.lean Modified Mathlib/Order/Category/FinPartOrd.lean Modified Mathlib/Order/Category/HeytAlg.lean Modified Mathlib/Order/Category/Lat.lean +/- theorem Lat.hom_ofHom Modified Mathlib/Order/Category/PartOrd.lean Modified Mathlib/Order/RelSeries.lean Modified Mathlib/RingTheory/HahnSeries/Multiplication.lean Modified Mathlib/RingTheory/Ideal/Operations.lean Modified Mathlib/RingTheory/Localization/Basic.lean Modified Mathlib/SetTheory/Cardinal/ENat.lean Modified Mathlib/Topology/Category/TopCat/Basic.lean Modified Mathlib/Topology/Constructions/SumProd.lean Modified Mathlib/Topology/DiscreteSubset.lean Modified Mathlib/Topology/Homeomorph/Defs.lean 2025-07-26 23:35:46 ce6e378 feat(Topology/Instances/Matrix): topology of `Set.matrix` (#27496) Prove topological results (`IsOpen`, `IsCompact`) about `Set.matrix`. - [x] depends on: #27190 [Zulip thread](https://leanprover.zulipchat.com/#narrow/stream/217875-Is-there-code-for-X.3F/topic/Set.2Ematrix/near/527826651) ESTIMATED CHANGES Modified Mathlib/Data/Matrix/Defs.lean + theorem Set.matrix_eq_pi Modified Mathlib/Topology/Instances/Matrix.lean + theorem IsCompact.matrix + theorem IsOpen.matrix 2025-07-26 23:35:45 a84442d docs: typo in `whiskerRight` docstring (#27489) The docstring for `whiskerRight` accidentally duplicated `G`: > If `α : G ⟶ H` then `whiskerRight α F : (G ⋙ F) ⟶ (G ⋙ F)` ... This PR also tweaks the formatting of the docstrings for `whiskerLeft` and `whiskerRight`, which can fit on one line. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Whiskering.lean 2025-07-26 23:35:44 fee05ee feat(MeasureTheory/SimpleFunc): add instances of algebraic structures (#27336) This adds a `Star` instance on simple functions into a type with a star structure, the associated `coe_star` lemma, and the relevant algebraic compatibility instances (e.g., `StarMul`) when the codomain is equipped with these. We also add several missing instances (mostly `Ring`-like and `Algebra`-like). This PR is the first in a series of small PRs aimed at providing a `CStarAlgebra` instance for L^∞ functions. ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Function/SimpleFunc.lean + theorem MeasureTheory.SimpleFunc.coe_algebraMap + theorem MeasureTheory.SimpleFunc.coe_intCast + theorem MeasureTheory.SimpleFunc.coe_natCast + theorem MeasureTheory.SimpleFunc.coe_star + theorem MeasureTheory.SimpleFunc.const_algebraMap + theorem MeasureTheory.SimpleFunc.smul_const 2025-07-26 22:47:51 5ebccb6 fix(to_additive): don't consider extra attributes in `to_additive self` (#27474) When using `to_additive self`, it doesn't make sense to use `(attr := ...)`. Additionally, the `existingAttributeWarning` linter should be disabled. ESTIMATED CHANGES Modified Mathlib/Tactic/ToAdditive/Frontend.lean Modified MathlibTest/toAdditive.lean + theorem test1 + theorem test2 2025-07-26 22:00:27 5de7a0d chore: rename `IsAdjoinRootMonic.Monic` to `IsAdjoinRootMonic.monic` (#27503) It's a proof, not a prop. ESTIMATED CHANGES Modified Mathlib/RingTheory/IsAdjoinRoot.lean 2025-07-26 22:00:25 aaaec45 feat(Order/Interval/Finset/Nat): `(List.range x).toFinset = Finset.range x` (#27480) ESTIMATED CHANGES Modified Mathlib/Order/Interval/Finset/Nat.lean + theorem List.toFinset_range 2025-07-26 22:00:24 7cd224f feat(Data/List): add theorem `List.nodup_concat` (#27459) This contribution was created as part of the Utrecht Summerschool "Formalizing Mathematics in Lean" in July 2025. ESTIMATED CHANGES Modified Mathlib/Data/List/Nodup.lean + theorem List.nodup_concat 2025-07-26 22:00:22 bb3d929 feat(Algebra/Order/Sub): add `map_tsub_of_le` (#27088) An `AddHom` keeps ordered subtraction in canonically ordered monoids. This is a simple corollary of `tsub_add_cancel_of_le`. ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Sub/Unbundled/Hom.lean + theorem map_tsub_of_le 2025-07-26 22:00:21 61ff493 feat(Data/Set): add `sep_subset_setOf` (#27087) which is the counterpart of `sep_subset` for use in term mode. ESTIMATED CHANGES Modified Mathlib/Data/Set/Basic.lean + theorem Set.sep_subset_setOf 2025-07-26 21:38:14 d258dd6 chore: golf `image_support_finSuccEquiv` using `grind` (#27469) ESTIMATED CHANGES Modified Mathlib/Algebra/MvPolynomial/Equiv.lean 2025-07-26 21:20:07 9c800de feat: inner product against basisFun (#26378) Also remove the `simp` attribute off [PiLp.inner_apply](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Analysis/InnerProductSpace/PiL2.html#PiLp.inner_apply). From Brownian Motion ESTIMATED CHANGES Modified Mathlib/Analysis/InnerProductSpace/PiL2.lean + theorem EuclideanSpace.basisFun_inner + theorem EuclideanSpace.inner_basisFun_real Modified Mathlib/Analysis/RCLike/Inner.lean 2025-07-26 21:20:05 bc035ee feat: api for symmetric bilinear forms (#26274) Change the definition of `BilinForm.IsSymm` to make it a structure, in order to extend it to define `ContinuousBilinForm.IsPosSemidef` in #26315. Prove polarization identity. Prove two lemmas about `BilinForm.toMatrix`. ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/BilinearForm/Orthogonal.lean Modified Mathlib/LinearAlgebra/BilinearForm/Properties.lean +/- theorem LinearMap.BilinForm.IsSymm.isRefl + theorem LinearMap.BilinForm.IsSymm.polarization + structure LinearMap.BilinForm.IsSymm - def LinearMap.BilinForm.IsSymm + theorem LinearMap.BilinForm.ext_iff_of_isSymm + theorem LinearMap.BilinForm.ext_of_isSymm + theorem LinearMap.BilinForm.isSymm_def + theorem LinearMap.BilinForm.isSymm_iff + theorem LinearMap.BilinForm.isSymm_iff_basis +/- theorem LinearMap.BilinForm.isSymm_iff_flip +/- theorem LinearMap.BilinForm.isSymm_zero Modified Mathlib/LinearAlgebra/Matrix/BilinearForm.lean + theorem BilinForm.apply_eq_dotProduct_toMatrix_mulVec + theorem BilinForm.dotProduct_toMatrix_mulVec Modified Mathlib/RingTheory/Trace/Defs.lean +/- theorem Algebra.traceForm_isSymm 2025-07-26 20:36:17 a6f05d8 chore(Data/List): remove 9 month old deprecations (#27518) These deprecations were introduced in https://github.com/leanprover-community/mathlib4/commit/a7fc949f1b05c2a01e01c027fd9f480496a1253e, but the year was miswritten as being in the future! ESTIMATED CHANGES Modified Mathlib/Data/List/Forall2.lean Modified Mathlib/Data/List/Nodup.lean 2025-07-26 17:53:02 34120ef feat(Algebra/Star/SelfAdjoint): some API for `IsStarNormal` (#27095) This adds api for adding and subtracting normal elements. ESTIMATED CHANGES Modified Mathlib/Algebra/Star/SelfAdjoint.lean + theorem Commute.isStarNormal_add + theorem Commute.isStarNormal_sub 2025-07-26 16:23:26 6fa21db feat(Analysis/CStarAlgebra/...): an idempotent element in a C*-algebra is self-adjoint iff it is normal (#27475) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Algebra/Unitization.lean + theorem Unitization.isIdempotentElem_inr_iff Added Mathlib/Analysis/CStarAlgebra/Projection.lean + theorem IsIdempotentElem.isSelfAdjoint_iff_isStarNormal + theorem isStarProjection_iff_isIdempotentElem_and_isStarNormal Modified Mathlib/FieldTheory/IsAlgClosed/Spectrum.lean + theorem IsIdempotentElem.quasispectrum_subset + theorem IsIdempotentElem.spectrum_subset 2025-07-26 15:56:59 c238b7e feat(RingTheory/Valuation/Discrete/Basic): relate DVRs and discrete valuations (#26623) We prove that the valuation subring of a discretely-valued field is a DVR. Conversely, given a DVR `A` and a field `K` satisfying `IsFractionRing A K`, we show that the valuation induced on `K` is discrete. We provide the ring isomorphism between a DVR and the valuation subring in its field of fractions endowed with the adic valuation of the maximal ideal. ESTIMATED CHANGES Modified Mathlib/GroupTheory/SpecificGroups/Cyclic.lean Modified Mathlib/RingTheory/Valuation/Discrete/Basic.lean + theorem IsDiscreteValuationRing.exists_lift_of_le_one + theorem IsDiscreteValuationRing.map_algebraMap_eq_valuationSubring + def IsDiscreteValuationRing.maximalIdeal +/- theorem Valuation.IsRankOneDiscrete.generator_zpowers_eq_valueGroup + theorem Valuation.ideal_isPrincipal + theorem Valuation.valuationSubring_isPrincipalIdealRing 2025-07-26 14:42:38 5117917 feat: measure_inter_eq_of_ae (#27247) For a measure `μ` and two sets `s, t`, if `∀ᵐ a ∂μ, a ∈ t` then `μ (t ∩ s) = μ s`. From the Brownian motion project. ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Measure/MeasureSpace.lean + theorem MeasureTheory.Measure.measure_inter_eq_of_ae 2025-07-26 14:42:37 87d82b1 feat(Probability): covariance of sums and maps (#26998) Variance and covariance of sums of random variables. Covariance with respect to the map of a measure. From the Brownian motion project. ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Function/LpSeminorm/Defs.lean + theorem MeasureTheory.MemLp.aemeasurable Modified Mathlib/Probability/Moments/Covariance.lean + theorem ProbabilityTheory.covariance_fun_sum_fun_sum' + theorem ProbabilityTheory.covariance_fun_sum_fun_sum + theorem ProbabilityTheory.covariance_fun_sum_left' + theorem ProbabilityTheory.covariance_fun_sum_left + theorem ProbabilityTheory.covariance_fun_sum_right' + theorem ProbabilityTheory.covariance_fun_sum_right + theorem ProbabilityTheory.covariance_map + theorem ProbabilityTheory.covariance_map_equiv + theorem ProbabilityTheory.covariance_map_fun + theorem ProbabilityTheory.covariance_mul_left + theorem ProbabilityTheory.covariance_mul_right + theorem ProbabilityTheory.covariance_sum_left' + theorem ProbabilityTheory.covariance_sum_left + theorem ProbabilityTheory.covariance_sum_right' + theorem ProbabilityTheory.covariance_sum_right + theorem ProbabilityTheory.covariance_sum_sum' + theorem ProbabilityTheory.covariance_sum_sum + theorem ProbabilityTheory.variance_fun_sub + theorem ProbabilityTheory.variance_fun_sum' + theorem ProbabilityTheory.variance_fun_sum + theorem ProbabilityTheory.variance_sub + theorem ProbabilityTheory.variance_sum' + theorem ProbabilityTheory.variance_sum Modified Mathlib/Probability/Moments/Variance.lean + theorem ProbabilityTheory.variance_map_equiv 2025-07-26 14:25:10 0eeb5f2 feat(Analysis): radius of convergence for `FormalMultilinearSeries.compContinuousLinearMap` (#26255) - Add basic lemmas `compContinuousLinearMap_id` and `compContinuousLinearMap_comp`. - Prove lower and upper bounds for the convergence radius of `f.compContinuousLinearMap`. - Prove `radius_compNeg`: the convergence radii of `f(x)` and `f(-x)` are equal. ESTIMATED CHANGES Modified Mathlib/Analysis/Analytic/Basic.lean + theorem FormalMultilinearSeries.div_le_radius_compContinuousLinearMap + theorem FormalMultilinearSeries.enorm_compContinuousLinearMap_le + theorem FormalMultilinearSeries.le_radius_compContinuousLinearMap + theorem FormalMultilinearSeries.nnnorm_compContinuousLinearMap_le + theorem FormalMultilinearSeries.norm_compContinuousLinearMap_le + theorem FormalMultilinearSeries.radius_compContinuousLinearMap_eq + theorem FormalMultilinearSeries.radius_compContinuousLinearMap_le + theorem FormalMultilinearSeries.radius_compContinuousLinearMap_linearIsometryEquiv_eq + theorem FormalMultilinearSeries.radius_compNeg Modified Mathlib/Analysis/Analytic/CPolynomial.lean Modified Mathlib/Analysis/Analytic/Constructions.lean Modified Mathlib/Analysis/Calculus/FormalMultilinearSeries.lean + theorem FormalMultilinearSeries.compContinuousLinearMap_comp + theorem FormalMultilinearSeries.compContinuousLinearMap_id + theorem compContinuousLinearMap_zero - theorem constFormalMultilinearSeries_apply + theorem constFormalMultilinearSeries_apply_of_nonzero + theorem constFormalMultilinearSeries_apply_succ + theorem constFormalMultilinearSeries_apply_zero Modified Mathlib/Analysis/NormedSpace/OperatorNorm/NormedSpace.lean + theorem LinearIsometry.enorm_toContinuousLinearMap + theorem LinearIsometry.nnnorm_toContinuousLinearMap 2025-07-26 12:55:37 cd9fe44 feat: generalise more lemmas to enorms (#27456) The selection of lemmas may seem eclectic, but follows a clear path: these are necessary for generalising the last section of IntegrableOn.lean to enorms. ESTIMATED CHANGES Modified Mathlib/Analysis/BoxIntegral/Integrability.lean Modified Mathlib/MeasureTheory/Function/L1Space/HasFiniteIntegral.lean + theorem MeasureTheory.HasFiniteIntegral.of_bounded + theorem MeasureTheory.HasFiniteIntegral.of_bounded_enorm + theorem MeasureTheory.HasFiniteIntegral.smul_enorm - theorem MeasureTheory.hasFiniteIntegral_of_bounded - theorem MeasureTheory.hasFiniteIntegral_of_bounded_enorm Modified Mathlib/MeasureTheory/Function/L1Space/Integrable.lean + theorem MeasureTheory.Integrable.fun_smul_enorm + theorem MeasureTheory.Integrable.smul_enorm Modified Mathlib/MeasureTheory/Function/LocallyIntegrable.lean Modified Mathlib/MeasureTheory/Function/LpSeminorm/Basic.lean + theorem MeasureTheory.MemLp.const_mul' + theorem MeasureTheory.MemLp.const_smul' + theorem MeasureTheory.eLpNorm'_const_smul_le' + theorem MeasureTheory.eLpNormEssSup_const_smul_le' + theorem MeasureTheory.eLpNorm_const_smul_le' Modified Mathlib/MeasureTheory/Integral/IntegrableOn.lean + theorem MeasureTheory.HasFiniteIntegral.restrict_of_bounded + theorem MeasureTheory.HasFiniteIntegral.restrict_of_bounded_enorm - theorem MeasureTheory.hasFiniteIntegral_restrict_of_bounded Modified Mathlib/MeasureTheory/Integral/Prod.lean Modified Mathlib/Probability/Martingale/Upcrossing.lean 2025-07-26 11:40:13 d38d235 feat: mark `HasFiniteIntegral` with `fun_prop` (#27506) And use it to golf a few proofs. ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Function/L1Space/HasFiniteIntegral.lean Modified Mathlib/MeasureTheory/Function/L1Space/Integrable.lean +/- theorem MeasureTheory.Integrable.enorm +/- theorem MeasureTheory.Integrable.norm +/- theorem MeasureTheory.integrable_zero_measure 2025-07-26 07:44:27 2cb345f feat(Data/Matrix): matrices with entries in a set (#27190) Define the `Set`/`AddSubmonoid`/`AddSubgroup`/`Subring`/`Submodule`/`Subalgebra` of matrices with entries in a `Set`/`AddSubmonoid`/`AddSubgroup`/`Subring`/`Submodule`/`Subalgebra`. [Zulip thread](https://leanprover.zulipchat.com/#narrow/stream/217875-Is-there-code-for-X.3F/topic/Set.2Ematrix/near/527826651) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Algebra/Subalgebra/Matrix.lean + def Subalgebra.matrix Modified Mathlib/Data/Matrix/Basic.lean + def AddSubgroup.matrix + def AddSubmonoid.matrix + def Submodule.matrix + def Subring.matrix + def Subsemiring.matrix Modified Mathlib/Data/Matrix/Basis.lean + theorem Matrix.single_mem_matrix Modified Mathlib/Data/Matrix/Defs.lean + theorem Matrix.submatrix_mem_matrix + theorem Matrix.submatrix_mem_matrix_iff + theorem Matrix.transpose_mem_matrix_iff + def Set.matrix + theorem Set.mem_matrix Modified Mathlib/Data/Matrix/Diagonal.lean + theorem Matrix.diagonal_mem_matrix_iff Modified Mathlib/LinearAlgebra/Matrix/Ideal.lean 2025-07-26 06:25:28 dda0c98 chore(Analytic/Linear): replace a ContinuousLinearMap with a ContinuousLinearEquiv (#27477) `ContinuousLinearEquiv.analyticWithinAt` and `ContinuousLinearEquiv.analyticOn` took a `ContinuousLinearMap` argument. This PR fixes that. ESTIMATED CHANGES Modified Mathlib/Analysis/Analytic/Linear.lean Modified Mathlib/Analysis/Calculus/ContDiff/Basic.lean 2025-07-26 06:03:08 01fbcb3 fix(Data/NNReal): type-correct `GroupWithZero` instance on `NNReal` (#27483) We can get a `GroupWithZero` instance on `NNReal` via the `Semifield` instance or via the `LinearOrderedCommGroupWithZero` instance. Under reducible-with-instances these are defeq, but in the process we non-reducibly-with-instances unfold `NNReal` to `{x // 0 ≤ x}`. To correct this mismatch, we either need to redefine the instances on `NNReal` to respect this non-reducibility, or we can make sure the unification succeeds without unfolding `NNReal`. The latter seems to give fewer headaches. (In the long run, are we going to unbundle `LinearOrderedCommGroupWithZero` like we did for the other ordered algebra objects?) This issue was spotted because `gcongr` didn't work reliably on `NNReal` anymore; see the fixed adaptation notes. ESTIMATED CHANGES Modified Mathlib/Analysis/FunctionalSpaces/SobolevInequality.lean Modified Mathlib/Data/NNReal/Defs.lean 2025-07-26 04:40:16 3a4270d feat(Analysis/InnerProductSpace/Adjoint): an operator `T` is normal iff `‖T v‖ = ‖(adjoint T) v‖` (#27476) ESTIMATED CHANGES Modified Mathlib/Analysis/InnerProductSpace/Adjoint.lean + theorem ContinuousLinearMap.isStarNormal_iff_norm_eq_adjoint 2025-07-26 00:18:49 d72a963 feat: `norm_num` extensions for Ordinals (#27343) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Tactic.lean Added Mathlib/Tactic/NormNum/Ordinal.lean + def Mathlib.Meta.NormNum.evalOrdinalDiv + def Mathlib.Meta.NormNum.evalOrdinalLE + def Mathlib.Meta.NormNum.evalOrdinalLT + def Mathlib.Meta.NormNum.evalOrdinalMod + def Mathlib.Meta.NormNum.evalOrdinalMul + def Mathlib.Meta.NormNum.evalOrdinalNPow + def Mathlib.Meta.NormNum.evalOrdinalOPow + def Mathlib.Meta.NormNum.evalOrdinalSub + theorem Mathlib.Meta.NormNum.isNat_ordinalDiv.{u} + theorem Mathlib.Meta.NormNum.isNat_ordinalLE_false.{u} + theorem Mathlib.Meta.NormNum.isNat_ordinalLE_true.{u} + theorem Mathlib.Meta.NormNum.isNat_ordinalLT_false.{u} + theorem Mathlib.Meta.NormNum.isNat_ordinalLT_true.{u} + theorem Mathlib.Meta.NormNum.isNat_ordinalMod.{u} + theorem Mathlib.Meta.NormNum.isNat_ordinalMul.{u} + theorem Mathlib.Meta.NormNum.isNat_ordinalNPow.{u} + theorem Mathlib.Meta.NormNum.isNat_ordinalOPow.{u} + theorem Mathlib.Meta.NormNum.isNat_ordinalSub.{u} Added MathlibTest/norm_num_ordinal.lean 2025-07-25 22:49:10 8271ba9 chore: fix more indentation (#27494) Found by the linter in #27473. ESTIMATED CHANGES Modified Mathlib/Algebra/Category/ModuleCat/Presheaf/Generator.lean Modified Mathlib/Algebra/Group/AddChar.lean Modified Mathlib/Algebra/Group/ConjFinite.lean Modified Mathlib/Algebra/Homology/BifunctorAssociator.lean Modified Mathlib/Algebra/Homology/DerivedCategory/Ext/Basic.lean Modified Mathlib/Algebra/Homology/DerivedCategory/Ext/EnoughInjectives.lean +/- theorem CategoryTheory.hasExt_of_enoughInjectives Modified Mathlib/Algebra/Homology/DerivedCategory/ShortExact.lean Modified Mathlib/Algebra/Homology/HomologicalComplexLimits.lean Modified Mathlib/Algebra/Homology/HomotopyCategory/Pretriangulated.lean Modified Mathlib/Algebra/Homology/Linear.lean Modified Mathlib/Algebra/Lie/Submodule.lean Modified Mathlib/Algebra/Order/Antidiag/Nat.lean Modified Mathlib/Algebra/Star/CHSH.lean Modified Mathlib/AlgebraicGeometry/EllipticCurve/Affine/Formula.lean Modified Mathlib/AlgebraicGeometry/Limits.lean Modified Mathlib/AlgebraicGeometry/Modules/Tilde.lean +/- theorem ModuleCat.Tilde.sections_smul_localizations_def Modified Mathlib/AlgebraicGeometry/Morphisms/FiniteType.lean Modified Mathlib/AlgebraicGeometry/ProjectiveSpectrum/Basic.lean Modified Mathlib/AlgebraicGeometry/Restrict.lean Modified Mathlib/AlgebraicGeometry/Sites/Representability.lean Modified Mathlib/AlgebraicTopology/ModelCategory/Cylinder.lean +/- theorem HomotopicalAlgebra.Precylinder.symm_i Modified Mathlib/AlgebraicTopology/Quasicategory/Nerve.lean Modified Mathlib/AlgebraicTopology/SimplicialSet/HomotopyCat.lean Modified Mathlib/Analysis/Analytic/Order.lean Modified Mathlib/Analysis/Calculus/ContDiff/FaaDiBruno.lean Modified Mathlib/Analysis/Calculus/FDeriv/Measurable.lean Modified Mathlib/Analysis/Calculus/LHopital.lean Modified Mathlib/Analysis/Convex/Basic.lean Modified Mathlib/Analysis/InnerProductSpace/Defs.lean Modified Mathlib/Analysis/Normed/Group/Quotient.lean Modified Mathlib/Analysis/Normed/Group/SemiNormedGrp/Completion.lean Modified Mathlib/Analysis/Normed/Unbundled/SpectralNorm.lean Modified Mathlib/Analysis/NormedSpace/Multilinear/Basic.lean Modified Mathlib/Analysis/Oscillation.lean Modified Mathlib/CategoryTheory/Bicategory/CatEnriched.lean Modified Mathlib/CategoryTheory/Category/Quiv.lean Modified Mathlib/CategoryTheory/Category/ReflQuiv.lean Modified Mathlib/CategoryTheory/Distributive/Monoidal.lean Modified Mathlib/CategoryTheory/Functor/KanExtension/Preserves.lean Modified Mathlib/CategoryTheory/GradedObject/Monoidal.lean Modified Mathlib/CategoryTheory/GradedObject/Trifunctor.lean Modified Mathlib/CategoryTheory/Idempotents/KaroubiKaroubi.lean Modified Mathlib/CategoryTheory/Limits/Shapes/SequentialProduct.lean Modified Mathlib/CategoryTheory/Localization/CalculusOfFractions.lean +/- theorem CategoryTheory.MorphismProperty.LeftFraction.Localization.Hom.map_mk Modified Mathlib/CategoryTheory/Localization/SmallShiftedHom.lean Modified Mathlib/CategoryTheory/Localization/Triangulated.lean Modified Mathlib/CategoryTheory/Monad/Comonadicity.lean Modified Mathlib/CategoryTheory/Monad/Monadicity.lean Modified Mathlib/CategoryTheory/Monoidal/Braided/Reflection.lean Modified Mathlib/CategoryTheory/Monoidal/DayConvolution.lean Modified Mathlib/CategoryTheory/Monoidal/ExternalProduct/Basic.lean Modified Mathlib/CategoryTheory/Shift/CommShift.lean Modified Mathlib/CategoryTheory/Sites/CompatiblePlus.lean Modified Mathlib/CategoryTheory/Sites/DenseSubsite/Basic.lean Modified Mathlib/CategoryTheory/Topos/Classifier.lean +/- theorem CategoryTheory.HasClassifier.unique Modified Mathlib/Combinatorics/Extremal/RuzsaSzemeredi.lean Modified Mathlib/Combinatorics/SimpleGraph/ConcreteColorings.lean Modified Mathlib/Combinatorics/SimpleGraph/Copy.lean Modified Mathlib/Combinatorics/SimpleGraph/Extremal/Basic.lean Modified Mathlib/Combinatorics/SimpleGraph/Maps.lean Modified Mathlib/Combinatorics/SimpleGraph/Triangle/Tripartite.lean Modified Mathlib/Computability/TuringMachine.lean Modified Mathlib/Data/Matrix/Bilinear.lean +/- theorem mulLeftLinearMap_zero_eq_zero +/- theorem mulRightLinearMap_zero_eq_zero Modified Mathlib/FieldTheory/AlgebraicClosure.lean +/- theorem algebraicClosure_toSubalgebra Modified Mathlib/FieldTheory/JacobsonNoether.lean Modified Mathlib/FieldTheory/NormalizedTrace.lean Modified Mathlib/Geometry/Euclidean/MongePoint.lean Modified Mathlib/Geometry/RingedSpace/LocallyRingedSpace.lean Modified Mathlib/GroupTheory/ClassEquation.lean Modified Mathlib/GroupTheory/Coxeter/Basic.lean Modified Mathlib/LinearAlgebra/AffineSpace/AffineMap.lean Modified Mathlib/LinearAlgebra/ExteriorPower/Basic.lean Modified Mathlib/LinearAlgebra/FreeModule/PID.lean Modified Mathlib/LinearAlgebra/FreeProduct/Basic.lean Modified Mathlib/LinearAlgebra/Lagrange.lean Modified Mathlib/MeasureTheory/Function/LpSeminorm/Basic.lean Modified Mathlib/MeasureTheory/Measure/Content.lean Modified Mathlib/NumberTheory/LSeries/DirichletContinuation.lean Modified Mathlib/NumberTheory/LSeries/SumCoeff.lean Modified Mathlib/NumberTheory/NumberField/AdeleRing.lean Modified Mathlib/NumberTheory/NumberField/CanonicalEmbedding/NormLeOne.lean +/- theorem NumberField.mixedEmbedding.fundamentalCone.closure_paramSet_ae_interior Modified Mathlib/NumberTheory/NumberField/Ideal/KummerDedekind.lean Modified Mathlib/NumberTheory/NumberField/InfinitePlace/Basic.lean +/- theorem NumberField.InfinitePlace.coe_apply Modified Mathlib/NumberTheory/NumberField/Norm.lean +/- theorem RingOfIntegers.coe_norm Modified Mathlib/Order/Category/FinBddDistLat.lean Modified Mathlib/Order/Category/Frm.lean +/- theorem Frm.hom_ofHom Modified Mathlib/Order/Category/LinOrd.lean +/- theorem LinOrd.hom_ofHom Modified Mathlib/Order/Category/NonemptyFinLinOrd.lean Modified Mathlib/Order/CompleteSublattice.lean Modified Mathlib/RepresentationTheory/Coinvariants.lean Modified Mathlib/RingTheory/ClassGroup.lean Modified Mathlib/RingTheory/DedekindDomain/Different.lean Modified Mathlib/RingTheory/DividedPowers/DPMorphism.lean Modified Mathlib/RingTheory/HahnSeries/Multiplication.lean Modified Mathlib/RingTheory/Jacobson/Ring.lean Modified Mathlib/RingTheory/Kaehler/TensorProduct.lean Modified Mathlib/RingTheory/LittleWedderburn.lean Modified Mathlib/RingTheory/NoetherNormalization.lean Modified Mathlib/RingTheory/PowerSeries/Substitution.lean +/- theorem PowerSeries.HasSubst.comp +/- theorem PowerSeries.HasSubst.smul +/- theorem PowerSeries.substAlgHom_comp_substAlgHom +/- theorem PowerSeries.substAlgHom_comp_substAlgHom_apply +/- theorem PowerSeries.subst_comp_subst_apply Modified Mathlib/RingTheory/Smooth/StandardSmooth.lean Modified Mathlib/RingTheory/Valuation/Basic.lean +/- theorem Valuation.ofAddValuation_toAddValuation Modified Mathlib/RingTheory/Valuation/Extension.lean Modified Mathlib/RingTheory/Valuation/ValuationSubring.lean Modified Mathlib/SetTheory/Descriptive/Tree.lean +/- theorem Descriptive.Tree.mem_pullSub_long +/- theorem Descriptive.Tree.mem_pullSub_short +/- theorem Descriptive.Tree.take_take Modified Mathlib/SetTheory/Ordinal/Veblen.lean Modified Mathlib/SetTheory/ZFC/Class.lean Modified Mathlib/Tactic/Positivity/Finset.lean Modified Mathlib/Topology/Algebra/Algebra.lean +/- theorem Subalgebra.topologicalClosure_coe Modified Mathlib/Topology/Algebra/InfiniteSum/UniformOn.lean Modified Mathlib/Topology/CWComplex/Classical/Basic.lean Modified Mathlib/Topology/Category/LightProfinite/Extend.lean Modified Mathlib/Topology/Category/TopCat/ULift.lean Modified Mathlib/Topology/EMetricSpace/Defs.lean Modified Mathlib/Topology/Order/Category/AlexDisc.lean Modified Mathlib/Topology/Sheaves/Stalks.lean Modified Mathlib/Topology/Specialization.lean 2025-07-25 22:49:09 8ceb018 feat(Logic/Embedding/Basic): simp lemmata for arrowCongrLeft (#27345) This PR adds some basic facts about `arrowCongrLeft`. They seem to be useful when manipulating formal series in multiple variables. ESTIMATED CHANGES Modified Mathlib/Logic/Embedding/Basic.lean + theorem Function.Embedding.arrowCongrLeft_apply + theorem Function.Embedding.arrowCongrLeft_refl + theorem Function.Embedding.coe_refl + theorem Function.Embedding.coe_trans + theorem Function.Embedding.trans_arrowCongrLeft Modified Mathlib/Logic/Equiv/Defs.lean + theorem Equiv.extend_apply Modified Mathlib/Logic/Function/Basic.lean + theorem Function.Injective.extend_comp + theorem Function.extend_id 2025-07-25 21:58:13 208559c chore: fix more indentation (#27491) Found by the linter in #27473. ESTIMATED CHANGES Modified Mathlib/Algebra/BigOperators/Group/Finset/Basic.lean Modified Mathlib/Algebra/Category/MonCat/Basic.lean +/- theorem CommMonCat.hom_ofHom +/- theorem MonCat.hom_ofHom Modified Mathlib/Algebra/Category/Semigrp/Basic.lean +/- theorem MagmaCat.hom_ofHom Modified Mathlib/Algebra/Group/Even.lean Modified Mathlib/Algebra/Group/Pointwise/Set/Basic.lean Modified Mathlib/Algebra/Group/Subgroup/Defs.lean Modified Mathlib/Algebra/GroupWithZero/Action/Pointwise/Set.lean Modified Mathlib/Algebra/Module/Defs.lean Modified Mathlib/Algebra/Module/Equiv/Basic.lean Modified Mathlib/Algebra/Module/Equiv/Defs.lean Modified Mathlib/Algebra/Order/AddTorsor.lean Modified Mathlib/Algebra/Order/SuccPred/TypeTags.lean +/- theorem Order.pred_toMul Modified Mathlib/CategoryTheory/Category/Preorder.lean Modified Mathlib/CategoryTheory/ComposableArrows.lean +/- theorem CategoryTheory.ComposableArrows.map'_self Modified Mathlib/CategoryTheory/Core.lean Modified Mathlib/CategoryTheory/FiberedCategory/Cocartesian.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Preorder/PrincipalSeg.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Pullback/Categorical/CatCospanTransform.lean Modified Mathlib/CategoryTheory/MorphismProperty/Composition.lean Modified Mathlib/CategoryTheory/ObjectProperty/FullSubcategory.lean +/- theorem CategoryTheory.ObjectProperty.FullSubcategory.map_inclusion Modified Mathlib/CategoryTheory/PathCategory/Basic.lean Modified Mathlib/CategoryTheory/Quotient.lean Modified Mathlib/Data/Fin/Basic.lean Modified Mathlib/Data/Set/Image.lean Modified Mathlib/Data/ZMod/IntUnitsPower.lean +/- theorem toMul_uzpow Modified Mathlib/GroupTheory/GroupAction/Hom.lean Modified Mathlib/GroupTheory/GroupAction/SubMulAction.lean +/- theorem SubMulAction.compl_def Modified Mathlib/GroupTheory/OreLocalization/Basic.lean Modified Mathlib/Logic/Basic.lean +/- theorem imp_forall_iff_forall Modified Mathlib/Order/Category/PartOrd.lean +/- theorem PartOrd.hom_ofHom +/- theorem PartOrd.ofHom_hom Modified Mathlib/Order/Category/Preord.lean +/- theorem Preord.hom_ofHom +/- theorem Preord.ofHom_hom Modified Mathlib/Order/Filter/Ultrafilter/Defs.lean Modified Mathlib/Order/Hom/Order.lean Modified Mathlib/RingTheory/PolynomialLaw/Basic.lean Modified Mathlib/Tactic/NormNum/Prime.lean 2025-07-25 19:55:09 cea580e feat(Data/Nat/Digits): mod b^n is equivalent to taking first n digits in base b (#27354) This PR adds `mod` and `take` lemmas analogous to the existing `div` and `drop` lemmas, [ofDigits_div_pow_eq_ofDigits_drop](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Data/Nat/Digits/Defs.html#Nat.ofDigits_div_pow_eq_ofDigits_drop) and [self_div_pow_eq_ofDigits_drop](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Data/Nat/Digits/Defs.html#Nat.self_div_pow_eq_ofDigits_drop). ESTIMATED CHANGES Modified Mathlib/Data/Nat/Digits/Defs.lean + theorem Nat.ofDigits_mod_pow_eq_ofDigits_take + theorem Nat.self_mod_pow_eq_ofDigits_take 2025-07-25 19:55:07 67bb55a feat(CategoryTheory/Monoidal/Opposites): monoid objects internal to the monoidal opposite (#25854) We construct an equivalence between monoid objects internal to a monoidal category `C`, and monoid objects internal to its monoidal opposite `Cᴹᵒᵖ`. This is done by adding `Mon_Class` and `IsMon_Hom` instance to the relevant objects, as well as by recording an explicit equivalence of categories `Mon_ C ≌ Mon_ Cᴹᵒᵖ`. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Monoidal/Opposite/Mon_.lean + def Mon_Class.mopEquiv + def Mon_Class.mopEquivCompForgetIso 2025-07-25 19:00:06 658f961 chore: fix indentation of subsequent declaration lines (#27478) Found by the linter in #27473; not exhaustive. ESTIMATED CHANGES Modified Mathlib/Algebra/FreeMonoid/Basic.lean Modified Mathlib/Algebra/Group/Hom/Basic.lean Modified Mathlib/Algebra/Group/Hom/Defs.lean +/- def OneHom.inverse Modified Mathlib/Algebra/GroupWithZero/Action/Defs.lean Modified Mathlib/Algebra/GroupWithZero/Hom.lean Modified Mathlib/Algebra/Order/GroupWithZero/Unbundled/Defs.lean Modified Mathlib/Control/Basic.lean Modified Mathlib/Data/List/Basic.lean +/- theorem List.left_le_of_mem_range' +/- theorem List.range'_0 Modified Mathlib/Data/List/TakeDrop.lean Modified Mathlib/Data/Nat/Cast/Defs.lean Modified Mathlib/Data/Prod/Basic.lean Modified Mathlib/Data/Seq/Computation.lean +/- theorem Computation.liftRelAux_inl_inl Modified Mathlib/Data/Stream/Init.lean Modified Mathlib/Logic/Function/Basic.lean Modified Mathlib/Order/ULift.lean +/- theorem ULift.down_compare Modified Mathlib/Tactic/MkIffOfInductiveProp.lean Modified Mathlib/Tactic/Sat/FromLRAT.lean Modified Mathlib/Tactic/Simps/Basic.lean 2025-07-25 19:00:04 f2d3893 refactor: lemma expressing `ContinuousAt` using a punctured neighbourhood (#25600) ESTIMATED CHANGES Modified Mathlib/Topology/ContinuousOn.lean + theorem continuousAt_iff_punctured_nhds 2025-07-25 18:35:48 c4b79e9 refactor(SetTheory/Ordinal/Arithmetic): redefine `Ordinal.IsNormal` as `Order.IsNormal` (#26900) This is of course in anticipation to a subsequent PR that will deprecate `Ordinal.IsNormal` entirely. - [x] depends on: #26903 ESTIMATED CHANGES Modified Mathlib/SetTheory/Cardinal/Aleph.lean +/- theorem Cardinal.isNormal_beth +/- theorem Cardinal.isNormal_preBeth Modified Mathlib/SetTheory/Cardinal/Cofinality.lean Modified Mathlib/SetTheory/Ordinal/Arithmetic.lean +/- theorem Ordinal.IsNormal.isSuccLimit +/- theorem Ordinal.IsNormal.strictMono +/- theorem Ordinal.isNormal_add_right +/- theorem Ordinal.isNormal_mul_right Modified Mathlib/SetTheory/Ordinal/Exponential.lean +/- theorem Ordinal.isNormal_opow Modified Mathlib/SetTheory/Ordinal/Family.lean Modified Mathlib/SetTheory/Ordinal/FixedPoint.lean 2025-07-25 15:58:25 7e1a2b8 feat: summability results (#27123) - If a real function is summable, then its sum in ENNReal is finite. - For a real function `f` with `i <= f i` and `c < 0`, `Summable fun i ↦ exp (c * f i)` ESTIMATED CHANGES Modified Mathlib/Analysis/SpecialFunctions/Exp.lean + theorem Real.summable_exp_nat_mul_of_ge Modified Mathlib/Topology/Instances/ENNReal/Lemmas.lean + theorem Summable.tsum_ofReal_lt_top + theorem Summable.tsum_ofReal_ne_top 2025-07-25 13:28:16 291e54a feat(Topology/Constructions): add missing instance `CompactSpace (Multiplicative X)` etc (#27463) ESTIMATED CHANGES Modified Mathlib/Topology/Constructions.lean 2025-07-25 13:28:14 52d0168 feat(Probability): 2 processes have same law iff same finite dimensional laws (#27127) From the Brownian motion project. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Probability/Process/FiniteDimensionalLaws.lean + theorem ProbabilityTheory.identDistrib_iff_forall_finset_identDistrib + theorem ProbabilityTheory.isProjectiveLimit_map + theorem ProbabilityTheory.isProjectiveMeasureFamily_map_restrict + theorem ProbabilityTheory.map_eq_iff_forall_finset_map_restrict_eq + theorem ProbabilityTheory.map_eq_of_forall_ae_eq + theorem ProbabilityTheory.map_restrict_eq_of_forall_ae_eq 2025-07-25 13:19:02 bf64be8 feat: `covarianceBilin` lemmas (#27192) From the Brownian motion project. ESTIMATED CHANGES Modified Mathlib/Probability/Moments/CovarianceBilin.lean + theorem ProbabilityTheory.covarianceBilin_apply' + theorem ProbabilityTheory.covarianceBilin_comm + theorem ProbabilityTheory.covarianceBilin_eq_covariance - theorem ProbabilityTheory.covarianceBilin_same_eq_variance + theorem ProbabilityTheory.covarianceBilin_self_eq_variance + theorem ProbabilityTheory.covarianceBilin_zero + theorem ProbabilityTheory.uncenteredCovarianceBilin_zero 2025-07-25 12:03:48 717ccc6 fix: merge master to nightly workflow (#27466) ESTIMATED CHANGES Modified .github/workflows/nightly_merge_master.yml 2025-07-25 11:41:00 30ef81f feat(RingTheory/SimpleModule): a module over a semisimple ring is both injective and projective (#27154) Prove that a module over a semisimple ring is both injective and projective. For the injectivity, this follows immediately from `IsSemisimpleModule.extension_property`. For the projectivity, we add a dual statement `IsSemisimpleModule.lifting_property` to `RingTheory.SimpleModule.Basic`. The actual `Module.Injective` and `Module.Projective` statements are in a separate file `RingTheory.SimpleModule.InjectiveProjective` to minimize imports in `RingTheory.SimpleModule.Basic`. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/LinearAlgebra/Isomorphisms.lean + theorem LinearMap.quotKerEquivOfSurjective_apply_mk Modified Mathlib/RingTheory/SimpleModule/Basic.lean + theorem IsSemisimpleModule.lifting_property Added Mathlib/RingTheory/SimpleModule/InjectiveProjective.lean + theorem Module.injective_of_semisimple_ring + theorem Module.projective_of_semisimple_ring 2025-07-25 10:25:44 5107432 feat(LinearAlgebra/TensorProduct): `map f₂ g₂ (map f₁ g₁ x) = map (f₂ ∘ₗ f₁) (g₂ ∘ₗ g₁) x` (#27142) From Toric ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/TensorProduct/Basic.lean +/- theorem TensorProduct.map_comp + theorem TensorProduct.map_map + theorem TensorProduct.toLinearMap_congr 2025-07-25 09:27:55 911ad42 feat(Topology/ClusterPt): Swapped version of `ClusterPt.frequently` (#27407) This PR adds the theorem ``` theorem ClusterPt.frequently' {F : Filter X} {p : X → Prop} (hx : ClusterPt x F) (hp : ∀ᶠ y in F, p y) : ∃ᶠ y in nhds x, p y := by ``` which is basically a swapped version of the existing theorem ``` theorem ClusterPt.frequently {F : Filter X} {p : X → Prop} (hx : ClusterPt x F) (hp : ∀ᶠ y in 𝓝 x, p y) : ∃ᶠ y in F, p y := ``` I'm not sure if there's a common generalization. ESTIMATED CHANGES Modified Mathlib/Topology/ClusterPt.lean + theorem ClusterPt.frequently' + theorem Filter.HasBasis.clusterPt_iff_frequently' + theorem clusterPt_iff_frequently' 2025-07-25 08:34:36 3f1258f feat(UniformSpace/Ultra/Constructions): IsUltraUniformity.{bot,top} (#27454) Port of #24412. ESTIMATED CHANGES Modified Mathlib/Order/Filter/Bases/Basic.lean + theorem Filter.hasBasis_top Modified Mathlib/Topology/UniformSpace/Defs.lean + theorem isSymmetricRel_idRel + theorem isSymmetricRel_univ Modified Mathlib/Topology/UniformSpace/Ultra/Basic.lean + theorem isTransitiveRel_idRel Modified Mathlib/Topology/UniformSpace/Ultra/Constructions.lean + theorem IsUltraUniformity.top 2025-07-25 02:45:46 f3c56c2 doc(to_additive): add comment about overwriting `reorder` (#27388) It is possible to tag a declaration with `to_additive (reorder := ..)` even when it had already been tagged `to_additive`. This is required for some structure projections like `HPow.hPow`. ESTIMATED CHANGES Modified Mathlib/Tactic/ToAdditive/Frontend.lean 2025-07-25 01:11:11 edd8f69 chore: remove unnecessary uses of `compile_def%` (#27440) These were a workaround for bugs in the old compiler (https://github.com/leanprover/lean4/issues/2096) and are no longer necessary. ESTIMATED CHANGES Modified Mathlib/Algebra/Star/Basic.lean Modified Mathlib/Data/FunLike/Basic.lean Modified Mathlib/Data/Set/Operations.lean 2025-07-25 00:21:48 37fa528 fix: make `compile_inductive%` work correctly with new compiler (#27401) The implementation of `compile_inductive%` made assumptions about the implementation of the old compiler that are no longer true. In particular, it looked for compiler IR decls in the kernel env, but these now exist in a private environment extension. The main use of this check is to avoid recompiling a `sizeOf` definition multiple times within its originating module, so to fix this we just disable the recursive recompilation of inductives within the module of their definition. This means that they will require explicit `compile_inductive%` directives themselves, which were already being supplied anyways. Fixes #27017. ESTIMATED CHANGES Modified Mathlib/Util/CompileInductive.lean +/- def Mathlib.Util.compileInductiveOnly + def Mathlib.Util.hasCSimpLemma - def Mathlib.Util.isCompiled 2025-07-24 23:59:23 962b246 feat(Analysis): Spectral norm is nontrivial (#27448) *From the 2025 Local Class Field Theory Workshop.* ESTIMATED CHANGES Modified Mathlib/Analysis/Normed/Unbundled/SpectralNorm.lean + def spectralNorm.nontriviallyNormedField 2025-07-24 20:20:28 ce82267 chore: unnecessary explicit arguments (#27438) ESTIMATED CHANGES Modified Mathlib/Data/Fin/Tuple/Basic.lean 2025-07-24 19:33:34 b440801 feat (Algebra/Group/Action/Units): add Units.smul_eq_mul (#27338) The usual `smul_eq_mul` simp lemma runs into a diamond from two `SMul` instances on units of a `CommMonoid`: `Units.mulAction'.toSMul` and `Mul.toSMul`. This PR adds an extra simp lemma to cover this case. ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Action/Units.lean + theorem Units.smul_eq_mul Modified Mathlib/Algebra/Ring/NegOnePow.lean 2025-07-24 19:33:33 69f3dbf feat(Order/DenselyOrderedLocallyFinite): linear locally finite dense orders are trivial (#27172) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Data/Set/Subsingleton.lean + theorem Set.Subsingleton.denselyOrdered Modified Mathlib/GroupTheory/ArchimedeanDensely.lean + theorem Int.not_denselyOrdered + theorem WithZero.denselyOrdered_iff + theorem WithZero.denselyOrdered_set_iff_subsingleton + theorem denselyOrdered_additive_iff + theorem denselyOrdered_multiplicative_iff + theorem not_denselyOrdered_withZero_int Modified Mathlib/Order/Interval/Finset/Basic.lean + theorem not_lt_of_denselyOrdered_of_locallyFinite Added Mathlib/Order/Interval/Finset/DenselyOrdered.lean + theorem LocallyFiniteOrder.denselyOrdered_iff_subsingleton + theorem WithBot.denselyOrdered_set_iff_subsingleton + theorem WithTop.denselyOrdered_set_iff_subsingleton + theorem denselyOrdered_set_iff_subsingleton Modified Mathlib/Order/WithBot.lean + theorem WithBot.denselyOrdered_iff + theorem WithTop.denselyOrdered_iff 2025-07-24 18:45:32 c3bdcd6 fix(to_additive): expand kernel projections to use `reorder` (#27405) This bug in the `reorder` feature was found while developing `to_dual`. To fix it, we modify the `expand` function to not just eta-expand, but also to expand raw projections. ESTIMATED CHANGES Modified Mathlib/Tactic/ToAdditive/Frontend.lean Modified MathlibTest/toAdditive.lean + def myMul + def myPow 2025-07-24 17:52:14 4870fa4 feat(Data/List/DropRight): add reverse and append lemmas (#27360) Adds lemmas for rdropWhile and rtakeWhile. These lemmas were identified while doing work for Project Numina. ESTIMATED CHANGES Modified Mathlib/Data/List/DropRight.lean + theorem List.rdropWhile_append_rtakeWhile + theorem List.rdropWhile_reverse + theorem List.rtakeWhile_reverse 2025-07-24 17:16:44 0420462 feat(RingTheory/Valuation/RankOne): rank one iff value group is mularchimedean (#27436) Thanks to the ongoing effort to get the Hahn Embedding theorem into Mathlib ESTIMATED CHANGES Modified Mathlib/Algebra/Order/GroupWithZero/WithZero.lean + theorem WithZero.withZeroUnitsEquiv_symm_strictMono Modified Mathlib/RingTheory/Valuation/RankOne.lean + theorem Valuation.nonempty_rankOne_iff_mulArchimedean + theorem ValuativeRel.isRankLeOne_iff_mulArchimedean 2025-07-24 16:31:42 66baa85 chore: rename `Basis` to `Module.Basis` (#27381) Many other things can have bases. ESTIMATED CHANGES Modified Mathlib/Algebra/Azumaya/Matrix.lean Modified Mathlib/Algebra/Category/FGModuleCat/Basic.lean Modified Mathlib/Algebra/Category/ModuleCat/Projective.lean Modified Mathlib/Algebra/DirectSum/LinearMap.lean Modified Mathlib/Algebra/DirectSum/Module.lean Modified Mathlib/Algebra/FreeAbelianGroup/Finsupp.lean Modified Mathlib/Algebra/Group/UniqueProds/VectorSpace.lean Modified Mathlib/Algebra/Lie/Rank.lean Modified Mathlib/Algebra/Module/Lattice.lean - theorem Basis.extendOfIsLattice_apply + theorem Module.Basis.extendOfIsLattice_apply Modified Mathlib/Algebra/Module/LinearMap/Polynomial.lean Modified Mathlib/Algebra/Module/Presentation/Differentials.lean Modified Mathlib/Algebra/Module/SpanRank.lean + theorem Module.Basis.mk_eq_spanRank - theorem Submodule.Basis.mk_eq_spanRank +/- theorem Submodule.rank_eq_spanRank_of_free +/- theorem Submodule.rank_le_spanRank Modified Mathlib/Algebra/Module/ZLattice/Basic.lean - def Basis.ofZLatticeBasis - theorem Basis.ofZLatticeBasis_apply - theorem Basis.ofZLatticeBasis_comap - theorem Basis.ofZLatticeBasis_repr_apply - theorem Basis.ofZLatticeBasis_span - def Basis.ofZLatticeComap - theorem Basis.ofZLatticeComap_apply - theorem Basis.ofZLatticeComap_repr_apply + def Module.Basis.ofZLatticeBasis + theorem Module.Basis.ofZLatticeBasis_apply + theorem Module.Basis.ofZLatticeBasis_comap + theorem Module.Basis.ofZLatticeBasis_repr_apply + theorem Module.Basis.ofZLatticeBasis_span + def Module.Basis.ofZLatticeComap + theorem Module.Basis.ofZLatticeComap_apply + theorem Module.Basis.ofZLatticeComap_repr_apply Modified Mathlib/Algebra/Polynomial/Basis.lean Modified Mathlib/Algebra/Polynomial/Sequence.lean Modified Mathlib/Algebra/Quaternion.lean Modified Mathlib/Algebra/SkewMonoidAlgebra/Basic.lean +/- def SkewMonoidAlgebra.basisSingleOne Modified Mathlib/AlgebraicGeometry/EllipticCurve/Affine/Point.lean Modified Mathlib/Analysis/BoundedVariation.lean Modified Mathlib/Analysis/BoxIntegral/UnitPartition.lean Modified Mathlib/Analysis/Complex/Tietze.lean Modified Mathlib/Analysis/Fourier/FiniteAbelian/PontryaginDuality.lean Modified Mathlib/Analysis/InnerProductSpace/Adjoint.lean Modified Mathlib/Analysis/InnerProductSpace/Dual.lean Modified Mathlib/Analysis/InnerProductSpace/Orthonormal.lean Modified Mathlib/Analysis/InnerProductSpace/PiL2.lean - theorem Basis.coe_toOrthonormalBasis - theorem Basis.coe_toOrthonormalBasis_repr - theorem Basis.coe_toOrthonormalBasis_repr_symm - theorem Basis.toBasis_toOrthonormalBasis - def Basis.toOrthonormalBasis + theorem Module.Basis.coe_toOrthonormalBasis + theorem Module.Basis.coe_toOrthonormalBasis_repr + theorem Module.Basis.coe_toOrthonormalBasis_repr_symm + theorem Module.Basis.toBasis_toOrthonormalBasis + def Module.Basis.toOrthonormalBasis Modified Mathlib/Analysis/InnerProductSpace/ProdL2.lean Modified Mathlib/Analysis/InnerProductSpace/Subspace.lean Modified Mathlib/Analysis/Normed/Lp/PiLp.lean Modified Mathlib/Analysis/Normed/Module/FiniteDimension.lean - theorem Basis.exists_opNNNorm_le - theorem Basis.exists_opNorm_le - theorem Basis.opNNNorm_le - theorem Basis.opNorm_le + theorem Module.Basis.exists_opNNNorm_le + theorem Module.Basis.exists_opNorm_le + theorem Module.Basis.opNNNorm_le + theorem Module.Basis.opNorm_le Modified Mathlib/Analysis/Normed/Operator/LinearIsometry.lean - theorem Basis.ext_linearIsometry - theorem Basis.ext_linearIsometryEquiv + theorem Module.Basis.ext_linearIsometry + theorem Module.Basis.ext_linearIsometryEquiv Modified Mathlib/Analysis/Normed/Unbundled/FiniteExtension.lean - def Basis.norm - theorem Basis.norm_extends - theorem Basis.norm_isNonarchimedean - theorem Basis.norm_mul_le_const_mul_norm - theorem Basis.norm_repr_le_norm - theorem Basis.norm_smul + def Module.Basis.norm + theorem Module.Basis.norm_extends + theorem Module.Basis.norm_isNonarchimedean + theorem Module.Basis.norm_mul_le_const_mul_norm + theorem Module.Basis.norm_repr_le_norm + theorem Module.Basis.norm_smul Modified Mathlib/Analysis/SpecialFunctions/PolarCoord.lean Modified Mathlib/Analysis/SpecificLimits/Basic.lean Modified Mathlib/Combinatorics/SimpleGraph/LapMatrix.lean Modified Mathlib/Data/Complex/Module.lean Modified Mathlib/FieldTheory/CardinalEmb.lean Modified Mathlib/FieldTheory/Normal/Basic.lean Modified Mathlib/FieldTheory/PurelyInseparable/PerfectClosure.lean - def Basis.mapPowExpCharPowOfIsSeparable + def Module.Basis.mapPowExpCharPowOfIsSeparable Modified Mathlib/FieldTheory/PurelyInseparable/Tower.lean Modified Mathlib/GroupTheory/FreeGroup/GeneratorEquiv.lean Modified Mathlib/LinearAlgebra/AffineSpace/Basis.lean Modified Mathlib/LinearAlgebra/AffineSpace/Independent.lean Modified Mathlib/LinearAlgebra/Alternating/Basic.lean - theorem Basis.ext_alternating + theorem Module.Basis.ext_alternating Modified Mathlib/LinearAlgebra/Basis/Basic.lean - theorem Basis.basis_singleton_iff - theorem Basis.coe_mk - theorem Basis.index_nonempty - theorem Basis.maximal - theorem Basis.mem_span_image - theorem Basis.mem_span_repr_support - theorem Basis.mk_apply - theorem Basis.mk_coord_apply - theorem Basis.mk_coord_apply_eq - theorem Basis.mk_coord_apply_ne - theorem Basis.mk_repr - theorem Basis.repr_range - theorem Basis.repr_support_subset_of_mem_span - theorem Basis.self_mem_span_image - theorem Basis.singleton_apply - theorem Basis.singleton_repr + theorem Module.Basis.basis_singleton_iff + theorem Module.Basis.coe_mk + theorem Module.Basis.index_nonempty + theorem Module.Basis.maximal + theorem Module.Basis.mem_span_image + theorem Module.Basis.mem_span_repr_support + theorem Module.Basis.mk_apply + theorem Module.Basis.mk_coord_apply + theorem Module.Basis.mk_coord_apply_eq + theorem Module.Basis.mk_coord_apply_ne + theorem Module.Basis.mk_repr + theorem Module.Basis.repr_range + theorem Module.Basis.repr_support_subset_of_mem_span + theorem Module.Basis.self_mem_span_image + theorem Module.Basis.singleton_apply + theorem Module.Basis.singleton_repr Modified Mathlib/LinearAlgebra/Basis/Bilinear.lean Modified Mathlib/LinearAlgebra/Basis/Cardinality.lean Modified Mathlib/LinearAlgebra/Basis/Defs.lean - theorem Basis.apply_eq_iff - theorem Basis.coe_map - theorem Basis.coe_mapCoeffs - theorem Basis.coe_ofEquivFun - theorem Basis.coe_ofRepr - theorem Basis.coe_reindex - theorem Basis.coe_repr_symm - theorem Basis.coe_sumCoords - theorem Basis.coe_sumCoords_eq_finsum - theorem Basis.coe_sumCoords_of_fintype - def Basis.constr - theorem Basis.constr_apply - theorem Basis.constr_apply_fintype - theorem Basis.constr_basis - theorem Basis.constr_comp - theorem Basis.constr_def - theorem Basis.constr_eq - theorem Basis.constr_range - theorem Basis.constr_self - def Basis.coord - theorem Basis.coord_equivFun_symm - theorem Basis.coord_repr_symm - theorem Basis.dvd_coord_smul - theorem Basis.eq_ofRepr_eq_repr - theorem Basis.eq_of_apply_eq - def Basis.equiv' - theorem Basis.equiv'_apply - theorem Basis.equiv'_symm_apply - def Basis.equivFun - theorem Basis.equivFun_apply - theorem Basis.equivFun_ofEquivFun - theorem Basis.equivFun_self - theorem Basis.equivFun_symm_apply - theorem Basis.equiv_apply - theorem Basis.equiv_refl - theorem Basis.equiv_symm - theorem Basis.equiv_trans - theorem Basis.ext' - theorem Basis.ext - theorem Basis.ext_elem_iff - theorem Basis.forall_coord_eq_zero_iff - theorem Basis.linearCombination_repr - def Basis.mapCoeffs - theorem Basis.mapCoeffs_apply - theorem Basis.map_apply - theorem Basis.map_equiv - theorem Basis.map_equivFun - def Basis.ofEquivFun - theorem Basis.ofEquivFun_equivFun - theorem Basis.ofEquivFun_repr_apply - theorem Basis.range_reindex - def Basis.reindex - def Basis.reindexFinsetRange - theorem Basis.reindexFinsetRange_apply - theorem Basis.reindexFinsetRange_repr - theorem Basis.reindexFinsetRange_repr_self - theorem Basis.reindexFinsetRange_self - def Basis.reindexRange - theorem Basis.reindexRange_apply - theorem Basis.reindexRange_repr' - theorem Basis.reindexRange_repr - theorem Basis.reindexRange_repr_self - theorem Basis.reindexRange_self - theorem Basis.reindex_apply - theorem Basis.reindex_refl - theorem Basis.repr_apply_eq - theorem Basis.repr_eq_iff' - theorem Basis.repr_eq_iff - theorem Basis.repr_injective - theorem Basis.repr_linearCombination - theorem Basis.repr_reindex - theorem Basis.repr_reindex_apply - theorem Basis.repr_self - theorem Basis.repr_self_apply - theorem Basis.repr_sum_self - theorem Basis.repr_symm_apply - theorem Basis.repr_symm_single - theorem Basis.repr_symm_single_one - theorem Basis.sumCoords_reindex - theorem Basis.sumCoords_self_apply - theorem Basis.sum_equivFun - theorem Basis.sum_repr - theorem Basis.sum_repr_mul_repr - structure Basis + theorem Module.Basis.apply_eq_iff + theorem Module.Basis.coe_map + theorem Module.Basis.coe_mapCoeffs + theorem Module.Basis.coe_ofEquivFun + theorem Module.Basis.coe_ofRepr + theorem Module.Basis.coe_reindex + theorem Module.Basis.coe_repr_symm + theorem Module.Basis.coe_sumCoords + theorem Module.Basis.coe_sumCoords_eq_finsum + theorem Module.Basis.coe_sumCoords_of_fintype + def Module.Basis.constr + theorem Module.Basis.constr_apply + theorem Module.Basis.constr_apply_fintype + theorem Module.Basis.constr_basis + theorem Module.Basis.constr_comp + theorem Module.Basis.constr_def + theorem Module.Basis.constr_eq + theorem Module.Basis.constr_range + theorem Module.Basis.constr_self + def Module.Basis.coord + theorem Module.Basis.coord_equivFun_symm + theorem Module.Basis.coord_repr_symm + theorem Module.Basis.dvd_coord_smul + theorem Module.Basis.eq_ofRepr_eq_repr + theorem Module.Basis.eq_of_apply_eq + def Module.Basis.equiv' + theorem Module.Basis.equiv'_apply + theorem Module.Basis.equiv'_symm_apply + def Module.Basis.equivFun + theorem Module.Basis.equivFun_apply + theorem Module.Basis.equivFun_ofEquivFun + theorem Module.Basis.equivFun_self + theorem Module.Basis.equivFun_symm_apply + theorem Module.Basis.equiv_apply + theorem Module.Basis.equiv_refl + theorem Module.Basis.equiv_symm + theorem Module.Basis.equiv_trans + theorem Module.Basis.ext' + theorem Module.Basis.ext + theorem Module.Basis.ext_elem_iff + theorem Module.Basis.forall_coord_eq_zero_iff + theorem Module.Basis.linearCombination_repr + def Module.Basis.mapCoeffs + theorem Module.Basis.mapCoeffs_apply + theorem Module.Basis.map_apply + theorem Module.Basis.map_equiv + theorem Module.Basis.map_equivFun + def Module.Basis.ofEquivFun + theorem Module.Basis.ofEquivFun_equivFun + theorem Module.Basis.ofEquivFun_repr_apply + theorem Module.Basis.range_reindex + def Module.Basis.reindex + def Module.Basis.reindexFinsetRange + theorem Module.Basis.reindexFinsetRange_apply + theorem Module.Basis.reindexFinsetRange_repr + theorem Module.Basis.reindexFinsetRange_repr_self + theorem Module.Basis.reindexFinsetRange_self + def Module.Basis.reindexRange + theorem Module.Basis.reindexRange_apply + theorem Module.Basis.reindexRange_repr' + theorem Module.Basis.reindexRange_repr + theorem Module.Basis.reindexRange_repr_self + theorem Module.Basis.reindexRange_self + theorem Module.Basis.reindex_apply + theorem Module.Basis.reindex_refl + theorem Module.Basis.repr_apply_eq + theorem Module.Basis.repr_eq_iff' + theorem Module.Basis.repr_eq_iff + theorem Module.Basis.repr_injective + theorem Module.Basis.repr_linearCombination + theorem Module.Basis.repr_reindex + theorem Module.Basis.repr_reindex_apply + theorem Module.Basis.repr_self + theorem Module.Basis.repr_self_apply + theorem Module.Basis.repr_sum_self + theorem Module.Basis.repr_symm_apply + theorem Module.Basis.repr_symm_single + theorem Module.Basis.repr_symm_single_one + theorem Module.Basis.sumCoords_reindex + theorem Module.Basis.sumCoords_self_apply + theorem Module.Basis.sum_equivFun + theorem Module.Basis.sum_repr + theorem Module.Basis.sum_repr_mul_repr + structure Module.Basis +/- theorem Module.card_fintype +/- def Module.fintypeOfFintype Modified Mathlib/LinearAlgebra/Basis/Exact.lean Modified Mathlib/LinearAlgebra/Basis/Fin.lean - theorem Basis.coe_finTwoProd_repr - theorem Basis.coe_mkFinCons - theorem Basis.coe_mkFinConsOfLE - theorem Basis.finTwoProd_one - theorem Basis.finTwoProd_zero + theorem Module.Basis.coe_finTwoProd_repr + theorem Module.Basis.coe_mkFinCons + theorem Module.Basis.coe_mkFinConsOfLE + theorem Module.Basis.finTwoProd_one + theorem Module.Basis.finTwoProd_zero Modified Mathlib/LinearAlgebra/Basis/Flag.lean - def Basis.flag - theorem Basis.flag_covBy - theorem Basis.flag_last - theorem Basis.flag_le_flag - theorem Basis.flag_le_iff - theorem Basis.flag_le_ker_coord - theorem Basis.flag_le_ker_coord_iff - theorem Basis.flag_le_ker_dual - theorem Basis.flag_lt_flag - theorem Basis.flag_mono - theorem Basis.flag_strictMono - theorem Basis.flag_succ - theorem Basis.flag_wcovBy - theorem Basis.flag_zero - theorem Basis.isChain_range_flag - theorem Basis.isMaxChain_range_flag - theorem Basis.mem_toFlag - theorem Basis.self_mem_flag - theorem Basis.self_mem_flag_iff - def Basis.toFlag + def Module.Basis.flag + theorem Module.Basis.flag_covBy + theorem Module.Basis.flag_last + theorem Module.Basis.flag_le_flag + theorem Module.Basis.flag_le_iff + theorem Module.Basis.flag_le_ker_coord + theorem Module.Basis.flag_le_ker_coord_iff + theorem Module.Basis.flag_le_ker_dual + theorem Module.Basis.flag_lt_flag + theorem Module.Basis.flag_mono + theorem Module.Basis.flag_strictMono + theorem Module.Basis.flag_succ + theorem Module.Basis.flag_wcovBy + theorem Module.Basis.flag_zero + theorem Module.Basis.isChain_range_flag + theorem Module.Basis.isMaxChain_range_flag + theorem Module.Basis.mem_toFlag + theorem Module.Basis.self_mem_flag + theorem Module.Basis.self_mem_flag_iff + def Module.Basis.toFlag Modified Mathlib/LinearAlgebra/Basis/MulOpposite.lean - theorem Basis.mulOpposite_apply - theorem Basis.mulOpposite_repr_eq - theorem Basis.mulOpposite_repr_op - theorem Basis.repr_unop_eq_mulOpposite_repr + theorem Module.Basis.mulOpposite_apply + theorem Module.Basis.mulOpposite_repr_eq + theorem Module.Basis.mulOpposite_repr_op + theorem Module.Basis.repr_unop_eq_mulOpposite_repr Modified Mathlib/LinearAlgebra/Basis/Prod.lean - theorem Basis.prod_apply - theorem Basis.prod_apply_inl_fst - theorem Basis.prod_apply_inl_snd - theorem Basis.prod_apply_inr_fst - theorem Basis.prod_apply_inr_snd - theorem Basis.prod_repr_inl - theorem Basis.prod_repr_inr + theorem Module.Basis.prod_apply + theorem Module.Basis.prod_apply_inl_fst + theorem Module.Basis.prod_apply_inl_snd + theorem Module.Basis.prod_apply_inr_fst + theorem Module.Basis.prod_apply_inr_snd + theorem Module.Basis.prod_repr_inl + theorem Module.Basis.prod_repr_inr Modified Mathlib/LinearAlgebra/Basis/SMul.lean - theorem Basis.coe_smul - theorem Basis.coord_unitsSMul - def Basis.groupSMul - theorem Basis.groupSMul_apply - theorem Basis.groupSMul_span_eq_top - def Basis.isUnitSMul - theorem Basis.isUnitSMul_apply - theorem Basis.repr_isUnitSMul - theorem Basis.repr_smul - theorem Basis.repr_unitsSMul - theorem Basis.smul_apply - theorem Basis.smul_eq_map - def Basis.unitsSMul - theorem Basis.unitsSMul_apply - theorem Basis.units_smul_span_eq_top + theorem Module.Basis.coe_smul + theorem Module.Basis.coord_unitsSMul + def Module.Basis.groupSMul + theorem Module.Basis.groupSMul_apply + theorem Module.Basis.groupSMul_span_eq_top + def Module.Basis.isUnitSMul + theorem Module.Basis.isUnitSMul_apply + theorem Module.Basis.repr_isUnitSMul + theorem Module.Basis.repr_smul + theorem Module.Basis.repr_unitsSMul + theorem Module.Basis.smul_apply + theorem Module.Basis.smul_eq_map + def Module.Basis.unitsSMul + theorem Module.Basis.unitsSMul_apply + theorem Module.Basis.units_smul_span_eq_top Modified Mathlib/LinearAlgebra/Basis/Submodule.lean - theorem Basis.addSubgroupOfClosure_apply - theorem Basis.addSubgroupOfClosure_repr_apply - theorem Basis.eq_bot_of_rank_eq_zero - theorem Basis.mem_center_iff - theorem Basis.mem_span_iff_repr_mem - theorem Basis.mem_submodule_iff' - theorem Basis.mem_submodule_iff - theorem Basis.restrictScalars_apply - theorem Basis.restrictScalars_repr_apply + theorem Module.Basis.Basis.eq_bot_of_rank_eq_zero + theorem Module.Basis.Module.Basis.addSubgroupOfClosure_apply + theorem Module.Basis.Module.Basis.addSubgroupOfClosure_repr_apply + theorem Module.Basis.Module.Basis.mem_center_iff + theorem Module.Basis.Module.Basis.mem_span_iff_repr_mem + theorem Module.Basis.Module.Basis.restrictScalars_apply + theorem Module.Basis.Module.Basis.restrictScalars_repr_apply + def Module.Basis.Submodule.inductionOnRankAux + theorem Module.Basis.mem_submodule_iff' + theorem Module.Basis.mem_submodule_iff - def Submodule.inductionOnRankAux Modified Mathlib/LinearAlgebra/Basis/VectorSpace.lean - theorem Basis.coe_extend - theorem Basis.coe_extendLe - theorem Basis.coe_ofSpan - theorem Basis.coe_ofVectorSpace - theorem Basis.exists_basis - theorem Basis.extendLe_apply_self - theorem Basis.extendLe_subset - theorem Basis.extend_apply_self - theorem Basis.ofSpan_apply_self - theorem Basis.ofSpan_subset - theorem Basis.ofVectorSpaceIndex.linearIndependent - theorem Basis.ofVectorSpace_apply_self - theorem Basis.range_extend - theorem Basis.range_extendLe - theorem Basis.range_ofSpan - theorem Basis.range_ofVectorSpace - theorem Basis.subset_extend - theorem Basis.subset_extendLe - def Basis.sumExtendIndex + theorem Module.Basis.coe_extend + theorem Module.Basis.coe_extendLe + theorem Module.Basis.coe_ofSpan + theorem Module.Basis.coe_ofVectorSpace + theorem Module.Basis.exists_basis + theorem Module.Basis.extendLe_apply_self + theorem Module.Basis.extendLe_subset + theorem Module.Basis.extend_apply_self + theorem Module.Basis.ofSpan_apply_self + theorem Module.Basis.ofSpan_subset + theorem Module.Basis.ofVectorSpaceIndex.linearIndependent + theorem Module.Basis.ofVectorSpace_apply_self + theorem Module.Basis.range_extend + theorem Module.Basis.range_extendLe + theorem Module.Basis.range_ofSpan + theorem Module.Basis.range_ofVectorSpace + theorem Module.Basis.subset_extend + theorem Module.Basis.subset_extendLe + def Module.Basis.sumExtendIndex Modified Mathlib/LinearAlgebra/BilinearForm/DualLattice.lean Modified Mathlib/LinearAlgebra/BilinearForm/Hom.lean Modified Mathlib/LinearAlgebra/BilinearForm/Orthogonal.lean Modified Mathlib/LinearAlgebra/BilinearForm/Properties.lean Modified Mathlib/LinearAlgebra/Charpoly/BaseChange.lean Modified Mathlib/LinearAlgebra/Charpoly/ToMatrix.lean Modified Mathlib/LinearAlgebra/Determinant.lean - theorem Basis.det_apply - theorem Basis.det_basis - theorem Basis.det_comp - theorem Basis.det_comp_basis - theorem Basis.det_inv - theorem Basis.det_isEmpty - theorem Basis.det_isUnitSMul - theorem Basis.det_map' - theorem Basis.det_map - theorem Basis.det_ne_zero - theorem Basis.det_reindex' - theorem Basis.det_reindex - theorem Basis.det_reindex_symm - theorem Basis.det_self - theorem Basis.det_smul_mk_coord_eq_det_update - theorem Basis.det_unitsSMul - theorem Basis.det_unitsSMul_self - theorem Basis.isUnit_det - theorem Basis.smul_det + theorem Module.Basis.det_apply + theorem Module.Basis.det_basis + theorem Module.Basis.det_comp + theorem Module.Basis.det_comp_basis + theorem Module.Basis.det_inv + theorem Module.Basis.det_isEmpty + theorem Module.Basis.det_isUnitSMul + theorem Module.Basis.det_map' + theorem Module.Basis.det_map + theorem Module.Basis.det_ne_zero + theorem Module.Basis.det_reindex' + theorem Module.Basis.det_reindex + theorem Module.Basis.det_reindex_symm + theorem Module.Basis.det_self + theorem Module.Basis.det_smul_mk_coord_eq_det_update + theorem Module.Basis.det_unitsSMul + theorem Module.Basis.det_unitsSMul_self + theorem Module.Basis.isUnit_det + theorem Module.Basis.is_basis_iff_det + theorem Module.Basis.smul_det - theorem is_basis_iff_det Modified Mathlib/LinearAlgebra/Dimension/DivisionRing.lean - theorem Basis.finite_ofVectorSpaceIndex_of_rank_lt_aleph0 + theorem Module.Basis.finite_ofVectorSpaceIndex_of_rank_lt_aleph0 Modified Mathlib/LinearAlgebra/Dimension/Finite.lean - theorem Basis.finite_index_of_rank_lt_aleph0 - theorem Basis.nonempty_fintype_index_of_rank_lt_aleph0 + theorem Module.Basis.finite_index_of_rank_lt_aleph0 + theorem Module.Basis.nonempty_fintype_index_of_rank_lt_aleph0 Modified Mathlib/LinearAlgebra/Dimension/StrongRankCondition.lean - theorem Basis.card_le_card_of_le - theorem Basis.card_le_card_of_linearIndependent - theorem Basis.card_le_card_of_submodule - def Basis.indexEquiv - theorem Basis.le_span - theorem Basis.mk_eq_rank'' - theorem Basis.mk_eq_rank'.{m} - theorem Basis.mk_eq_rank - theorem Basis.mk_range_eq_rank + theorem Module.Basis.card_le_card_of_le + theorem Module.Basis.card_le_card_of_linearIndependent + theorem Module.Basis.card_le_card_of_submodule + def Module.Basis.indexEquiv + theorem Module.Basis.le_span + theorem Module.Basis.mk_eq_rank'' + theorem Module.Basis.mk_eq_rank'.{m} + theorem Module.Basis.mk_eq_rank + theorem Module.Basis.mk_range_eq_rank Modified Mathlib/LinearAlgebra/Dual/Basis.lean - theorem Basis.coe_dualBasis - theorem Basis.coe_toDual_self - theorem Basis.coord_toDualEquiv_symm_apply - def Basis.dualBasis - theorem Basis.dualBasis_apply - theorem Basis.dualBasis_apply_self - theorem Basis.dualBasis_coord_toDualEquiv_apply - theorem Basis.dualBasis_equivFun - theorem Basis.dualBasis_repr - theorem Basis.eval_injective - theorem Basis.eval_ker - theorem Basis.eval_range - theorem Basis.linearCombination_coord - theorem Basis.linearCombination_dualBasis - theorem Basis.sum_dual_apply_smul_coord - def Basis.toDual - def Basis.toDualEquiv - theorem Basis.toDualEquiv_apply - def Basis.toDualFlip - theorem Basis.toDualFlip_apply - theorem Basis.toDual_apply - theorem Basis.toDual_apply_left - theorem Basis.toDual_apply_right - theorem Basis.toDual_eq_equivFun - theorem Basis.toDual_eq_repr - theorem Basis.toDual_inj - theorem Basis.toDual_injective - theorem Basis.toDual_ker - theorem Basis.toDual_linearCombination_left - theorem Basis.toDual_linearCombination_right - theorem Basis.toDual_range - theorem Basis.toDual_toDual + theorem Module.Basis.coe_dualBasis + theorem Module.Basis.coe_toDual_self + theorem Module.Basis.coord_toDualEquiv_symm_apply + def Module.Basis.dualBasis + theorem Module.Basis.dualBasis_apply + theorem Module.Basis.dualBasis_apply_self + theorem Module.Basis.dualBasis_coord_toDualEquiv_apply + theorem Module.Basis.dualBasis_equivFun + theorem Module.Basis.dualBasis_repr + theorem Module.Basis.eval_injective + theorem Module.Basis.eval_ker + theorem Module.Basis.eval_range + theorem Module.Basis.linearCombination_coord + theorem Module.Basis.linearCombination_dualBasis + theorem Module.Basis.sum_dual_apply_smul_coord + def Module.Basis.toDual + def Module.Basis.toDualEquiv + theorem Module.Basis.toDualEquiv_apply + def Module.Basis.toDualFlip + theorem Module.Basis.toDualFlip_apply + theorem Module.Basis.toDual_apply + theorem Module.Basis.toDual_apply_left + theorem Module.Basis.toDual_apply_right + theorem Module.Basis.toDual_eq_equivFun + theorem Module.Basis.toDual_eq_repr + theorem Module.Basis.toDual_inj + theorem Module.Basis.toDual_injective + theorem Module.Basis.toDual_ker + theorem Module.Basis.toDual_linearCombination_left + theorem Module.Basis.toDual_linearCombination_right + theorem Module.Basis.toDual_range + theorem Module.Basis.toDual_toDual Modified Mathlib/LinearAlgebra/Dual/Lemmas.lean - theorem Basis.dual_rank_eq + theorem Module.Basis.dual_rank_eq Modified Mathlib/LinearAlgebra/Eigenspace/Matrix.lean Modified Mathlib/LinearAlgebra/Finsupp/VectorSpace.lean - theorem Basis.repr_smul' + theorem Module.Basis.repr_smul' Modified Mathlib/LinearAlgebra/FreeAlgebra.lean Modified Mathlib/LinearAlgebra/FreeModule/Basic.lean + theorem Module.Basis.repr_algebraMap - theorem Module.Free.Basis.repr_algebraMap Modified Mathlib/LinearAlgebra/FreeModule/Finite/CardQuotient.lean Modified Mathlib/LinearAlgebra/FreeModule/Finite/Quotient.lean Modified Mathlib/LinearAlgebra/FreeModule/IdealQuotient.lean Modified Mathlib/LinearAlgebra/FreeModule/Int.lean - theorem Basis.SmithNormalForm.toAddSubgroup_index_eq_ite - theorem Basis.SmithNormalForm.toAddSubgroup_index_eq_pow_mul_prod - theorem Basis.SmithNormalForm.toAddSubgroup_index_ne_zero_iff + theorem Module.Basis.SmithNormalForm.toAddSubgroup_index_eq_ite + theorem Module.Basis.SmithNormalForm.toAddSubgroup_index_eq_pow_mul_prod + theorem Module.Basis.SmithNormalForm.toAddSubgroup_index_ne_zero_iff Modified Mathlib/LinearAlgebra/FreeModule/ModN.lean Modified Mathlib/LinearAlgebra/FreeModule/Norm.lean Modified Mathlib/LinearAlgebra/FreeModule/PID.lean - theorem Basis.SmithNormalForm.coord_apply_embedding_eq_smul_coord - theorem Basis.SmithNormalForm.le_ker_coord_of_notMem_range - theorem Basis.SmithNormalForm.repr_apply_embedding_eq_repr_smul - theorem Basis.SmithNormalForm.repr_comp_embedding_eq_smul - theorem Basis.SmithNormalForm.repr_eq_zero_of_notMem_range - theorem Basis.SmithNormalForm.toMatrix_restrict_eq_toMatrix - structure Basis.SmithNormalForm + theorem Module.Basis.SmithNormalForm.coord_apply_embedding_eq_smul_coord + theorem Module.Basis.SmithNormalForm.le_ker_coord_of_notMem_range + theorem Module.Basis.SmithNormalForm.repr_apply_embedding_eq_repr_smul + theorem Module.Basis.SmithNormalForm.repr_comp_embedding_eq_smul + theorem Module.Basis.SmithNormalForm.repr_eq_zero_of_notMem_range + theorem Module.Basis.SmithNormalForm.toMatrix_restrict_eq_toMatrix + structure Module.Basis.SmithNormalForm Modified Mathlib/LinearAlgebra/LinearDisjoint.lean Modified Mathlib/LinearAlgebra/Matrix/Basis.lean - theorem Basis.coePiBasisFun.toMatrix_eq_transpose - def Basis.invertibleToMatrix - theorem Basis.restrictScalars_toMatrix - theorem Basis.sum_toMatrix_smul_self - theorem Basis.toLin_toMatrix - def Basis.toMatrix - def Basis.toMatrixEquiv - theorem Basis.toMatrix_apply - theorem Basis.toMatrix_eq_toMatrix_constr - theorem Basis.toMatrix_isUnitSMul - theorem Basis.toMatrix_map - theorem Basis.toMatrix_map_vecMul - theorem Basis.toMatrix_mulVec_repr - theorem Basis.toMatrix_mul_toMatrix - theorem Basis.toMatrix_mul_toMatrix_flip - theorem Basis.toMatrix_reindex' - theorem Basis.toMatrix_reindex - theorem Basis.toMatrix_self - theorem Basis.toMatrix_smul - theorem Basis.toMatrix_smul_left - theorem Basis.toMatrix_transpose_apply - theorem Basis.toMatrix_unitsSMul - theorem Basis.toMatrix_update + theorem Module.Basis.coePiBasisFun.toMatrix_eq_transpose + def Module.Basis.invertibleToMatrix + theorem Module.Basis.restrictScalars_toMatrix + theorem Module.Basis.sum_toMatrix_smul_self + theorem Module.Basis.toLin_toMatrix + def Module.Basis.toMatrix + def Module.Basis.toMatrixEquiv + theorem Module.Basis.toMatrix_apply + theorem Module.Basis.toMatrix_eq_toMatrix_constr + theorem Module.Basis.toMatrix_isUnitSMul + theorem Module.Basis.toMatrix_map + theorem Module.Basis.toMatrix_map_vecMul + theorem Module.Basis.toMatrix_mulVec_repr + theorem Module.Basis.toMatrix_mul_toMatrix + theorem Module.Basis.toMatrix_mul_toMatrix_flip + theorem Module.Basis.toMatrix_reindex' + theorem Module.Basis.toMatrix_reindex + theorem Module.Basis.toMatrix_self + theorem Module.Basis.toMatrix_smul + theorem Module.Basis.toMatrix_smul_left + theorem Module.Basis.toMatrix_transpose_apply + theorem Module.Basis.toMatrix_unitsSMul + theorem Module.Basis.toMatrix_update Modified Mathlib/LinearAlgebra/Matrix/BilinearForm.lean Modified Mathlib/LinearAlgebra/Matrix/Charpoly/Minpoly.lean Modified Mathlib/LinearAlgebra/Matrix/Dual.lean Modified Mathlib/LinearAlgebra/Matrix/GeneralLinearGroup/Card.lean Modified Mathlib/LinearAlgebra/Matrix/LDL.lean Modified Mathlib/LinearAlgebra/Matrix/SesquilinearForm.lean Modified Mathlib/LinearAlgebra/Matrix/Spectrum.lean Modified Mathlib/LinearAlgebra/Matrix/StdBasis.lean - theorem Basis.matrix_apply + theorem Module.Basis.matrix_apply Modified Mathlib/LinearAlgebra/Matrix/ToLin.lean - theorem Basis.end_apply - theorem Basis.end_apply_apply - def Basis.linearMap - theorem Basis.linearMap_apply - theorem Basis.linearMap_apply_apply + theorem Module.Basis.end_apply + theorem Module.Basis.end_apply_apply + def Module.Basis.linearMap + theorem Module.Basis.linearMap_apply + theorem Module.Basis.linearMap_apply_apply Modified Mathlib/LinearAlgebra/Matrix/ToLinearEquiv.lean Modified Mathlib/LinearAlgebra/Multilinear/Basis.lean - theorem Basis.ext_multilinear + theorem Module.Basis.ext_multilinear Modified Mathlib/LinearAlgebra/Orientation.lean - theorem Basis.abs_det_adjustToOrientation - def Basis.adjustToOrientation - theorem Basis.adjustToOrientation_apply_eq_or_eq_neg - theorem Basis.det_adjustToOrientation - theorem Basis.map_orientation_eq_det_inv_smul - theorem Basis.orientation_adjustToOrientation - theorem Basis.orientation_comp_linearEquiv_eq_iff_det_pos - theorem Basis.orientation_comp_linearEquiv_eq_neg_iff_det_neg - theorem Basis.orientation_eq_iff_det_pos - theorem Basis.orientation_eq_or_eq_neg - theorem Basis.orientation_isEmpty - theorem Basis.orientation_map - theorem Basis.orientation_ne_iff_eq_neg - theorem Basis.orientation_neg_single - theorem Basis.orientation_reindex - theorem Basis.orientation_unitsSMul + theorem Module.Basis.abs_det_adjustToOrientation + def Module.Basis.adjustToOrientation + theorem Module.Basis.adjustToOrientation_apply_eq_or_eq_neg + theorem Module.Basis.det_adjustToOrientation + theorem Module.Basis.map_orientation_eq_det_inv_smul + theorem Module.Basis.orientation_adjustToOrientation + theorem Module.Basis.orientation_comp_linearEquiv_eq_iff_det_pos + theorem Module.Basis.orientation_comp_linearEquiv_eq_neg_iff_det_neg + theorem Module.Basis.orientation_eq_iff_det_pos + theorem Module.Basis.orientation_eq_or_eq_neg + theorem Module.Basis.orientation_isEmpty + theorem Module.Basis.orientation_map + theorem Module.Basis.orientation_ne_iff_eq_neg + theorem Module.Basis.orientation_neg_single + theorem Module.Basis.orientation_reindex + theorem Module.Basis.orientation_unitsSMul Modified Mathlib/LinearAlgebra/PID.lean Modified Mathlib/LinearAlgebra/QuadraticForm/Basic.lean Modified Mathlib/LinearAlgebra/QuadraticForm/Basis.lean Modified Mathlib/LinearAlgebra/QuadraticForm/Complex.lean Modified Mathlib/LinearAlgebra/QuadraticForm/IsometryEquiv.lean Modified Mathlib/LinearAlgebra/QuadraticForm/Real.lean Modified Mathlib/LinearAlgebra/RootSystem/Base.lean Modified Mathlib/LinearAlgebra/SesquilinearForm.lean Modified Mathlib/LinearAlgebra/StdBasis.lean Modified Mathlib/LinearAlgebra/SymmetricAlgebra/Basis.lean Modified Mathlib/LinearAlgebra/TensorAlgebra/Basis.lean Modified Mathlib/LinearAlgebra/TensorProduct/Basis.lean - def Basis.baseChange - theorem Basis.baseChange_apply - theorem Basis.baseChange_repr_tmul - def Basis.tensorProduct - theorem Basis.tensorProduct_apply' - theorem Basis.tensorProduct_apply - theorem Basis.tensorProduct_repr_tmul_apply + def Module.Basis.baseChange + theorem Module.Basis.baseChange_apply + theorem Module.Basis.baseChange_repr_tmul + def Module.Basis.tensorProduct + theorem Module.Basis.tensorProduct_apply' + theorem Module.Basis.tensorProduct_apply + theorem Module.Basis.tensorProduct_repr_tmul_apply Modified Mathlib/LinearAlgebra/TensorProduct/Matrix.lean Modified Mathlib/MeasureTheory/Group/Defs.lean Modified Mathlib/MeasureTheory/Integral/Lebesgue/Basic.lean Modified Mathlib/MeasureTheory/Measure/Haar/OfBasis.lean - theorem Basis.addHaar_eq_iff - theorem Basis.addHaar_reindex - theorem Basis.addHaar_self - theorem Basis.coe_parallelepiped - def Basis.parallelepiped - theorem Basis.parallelepiped_map - theorem Basis.parallelepiped_reindex - theorem Basis.prod_addHaar - theorem Basis.prod_parallelepiped + theorem Module.Basis.addHaar_eq_iff + theorem Module.Basis.addHaar_reindex + theorem Module.Basis.addHaar_self + theorem Module.Basis.coe_parallelepiped + def Module.Basis.parallelepiped + theorem Module.Basis.parallelepiped_map + theorem Module.Basis.parallelepiped_reindex + theorem Module.Basis.prod_addHaar + theorem Module.Basis.prod_parallelepiped Modified Mathlib/MeasureTheory/Measure/Lebesgue/Basic.lean Modified Mathlib/MeasureTheory/Measure/Lebesgue/Complex.lean Modified Mathlib/MeasureTheory/Measure/Lebesgue/EqHaar.lean - theorem Basis.map_addHaar - theorem Basis.parallelepiped_basisFun - theorem Basis.parallelepiped_eq_map + theorem Module.Basis.map_addHaar + theorem Module.Basis.parallelepiped_basisFun + theorem Module.Basis.parallelepiped_eq_map Modified Mathlib/MeasureTheory/Measure/MeasureSpaceDef.lean Modified Mathlib/MeasureTheory/OuterMeasure/Defs.lean Modified Mathlib/MeasureTheory/OuterMeasure/OfFunction.lean Modified Mathlib/NumberTheory/ClassNumber/Finite.lean Modified Mathlib/NumberTheory/Cyclotomic/Rat.lean Modified Mathlib/NumberTheory/NumberField/CanonicalEmbedding/Basic.lean Modified Mathlib/NumberTheory/NumberField/CanonicalEmbedding/FundamentalCone.lean Modified Mathlib/NumberTheory/NumberField/CanonicalEmbedding/NormLeOne.lean Modified Mathlib/NumberTheory/NumberField/Discriminant/Defs.lean Modified Mathlib/NumberTheory/NumberField/Discriminant/Different.lean Modified Mathlib/NumberTheory/NumberField/Units/DirichletTheorem.lean Modified Mathlib/RepresentationTheory/Basic.lean Modified Mathlib/RepresentationTheory/Tannaka.lean Modified Mathlib/RingTheory/Adjoin/Basic.lean Modified Mathlib/RingTheory/Adjoin/PowerBasis.lean Modified Mathlib/RingTheory/AdjoinRoot.lean Modified Mathlib/RingTheory/AlgebraTower.lean - theorem Basis.algebraMapCoeffs_apply - theorem Basis.algebraMapCoeffs_repr - theorem Basis.algebraMap_injective - theorem Basis.coe_algebraMapCoeffs - theorem Basis.isScalarTower_finsupp - theorem Basis.isScalarTower_of_nonempty - theorem Basis.smulTower'_apply - theorem Basis.smulTower'_repr - theorem Basis.smulTower'_repr_mk - def Basis.smulTower - theorem Basis.smulTower_apply - theorem Basis.smulTower_repr - theorem Basis.smulTower_repr_mk + theorem Module.Basis.algebraMapCoeffs_apply + theorem Module.Basis.algebraMapCoeffs_repr + theorem Module.Basis.algebraMap_injective + theorem Module.Basis.coe_algebraMapCoeffs + theorem Module.Basis.isScalarTower_finsupp + theorem Module.Basis.isScalarTower_of_nonempty + theorem Module.Basis.smulTower'_apply + theorem Module.Basis.smulTower'_repr + theorem Module.Basis.smulTower'_repr_mk + def Module.Basis.smulTower + theorem Module.Basis.smulTower_apply + theorem Module.Basis.smulTower_repr + theorem Module.Basis.smulTower_repr_mk Modified Mathlib/RingTheory/DedekindDomain/Different.lean Modified Mathlib/RingTheory/DedekindDomain/IntegralClosure.lean Modified Mathlib/RingTheory/Extension/Cotangent/Basic.lean Modified Mathlib/RingTheory/Finiteness/Basic.lean Modified Mathlib/RingTheory/Finiteness/Defs.lean Modified Mathlib/RingTheory/FractionalIdeal/Norm.lean Modified Mathlib/RingTheory/Ideal/Basis.lean Modified Mathlib/RingTheory/Ideal/Maps.lean Modified Mathlib/RingTheory/Ideal/Norm/AbsNorm.lean Modified Mathlib/RingTheory/Ideal/Operations.lean Modified Mathlib/RingTheory/IsAdjoinRoot.lean Modified Mathlib/RingTheory/Kaehler/JacobiZariski.lean Modified Mathlib/RingTheory/Kaehler/Polynomial.lean Modified Mathlib/RingTheory/LinearDisjoint.lean Modified Mathlib/RingTheory/LocalRing/Module.lean Modified Mathlib/RingTheory/Localization/Module.lean - theorem Basis.localizationLocalization_apply - theorem Basis.localizationLocalization_repr_algebraMap - theorem Basis.localizationLocalization_span - theorem Basis.ofIsLocalizedModule_apply - theorem Basis.ofIsLocalizedModule_repr_apply - theorem Basis.ofIsLocalizedModule_span + theorem Module.Basis.localizationLocalization_apply + theorem Module.Basis.localizationLocalization_repr_algebraMap + theorem Module.Basis.localizationLocalization_span + theorem Module.Basis.ofIsLocalizedModule_apply + theorem Module.Basis.ofIsLocalizedModule_repr_apply + theorem Module.Basis.ofIsLocalizedModule_span Modified Mathlib/RingTheory/Localization/NormTrace.lean Modified Mathlib/RingTheory/MvPolynomial/Basic.lean Modified Mathlib/RingTheory/Nilpotent/Lemmas.lean Modified Mathlib/RingTheory/NormTrace.lean Modified Mathlib/RingTheory/Polynomial/DegreeLT.lean Modified Mathlib/RingTheory/PowerBasis.lean Modified Mathlib/RingTheory/Smooth/StandardSmooth.lean Modified Mathlib/RingTheory/Smooth/StandardSmoothCotangent.lean Modified Mathlib/RingTheory/TensorProduct/Free.lean - theorem Basis.baseChange_end - theorem Basis.baseChange_linearMap + theorem Module.Basis.baseChange_end + theorem Module.Basis.baseChange_linearMap Modified Mathlib/RingTheory/Trace/Quotient.lean Modified Mathlib/RingTheory/Unramified/Field.lean Modified Mathlib/RingTheory/Unramified/Finite.lean Modified Mathlib/Topology/Algebra/Algebra.lean Modified Mathlib/Topology/Algebra/MetricSpace/Lipschitz.lean Modified Mathlib/Topology/Algebra/Module/FiniteDimension.lean - theorem Basis.coe_constrL - def Basis.constrL - theorem Basis.constrL_apply - theorem Basis.constrL_basis - def Basis.equivFunL - theorem Basis.equivFunL_symm_apply_repr + theorem Module.Basis.coe_constrL + def Module.Basis.constrL + theorem Module.Basis.constrL_apply + theorem Module.Basis.constrL_basis + def Module.Basis.equivFunL + theorem Module.Basis.equivFunL_symm_apply_repr Modified Mathlib/Topology/Category/Profinite/Nobeling/Induction.lean Modified Mathlib/Topology/MetricSpace/Bounded.lean Modified Mathlib/Topology/MetricSpace/Lipschitz.lean Modified docs/overview.yaml Modified docs/undergrad.yaml 2025-07-24 15:35:32 2cb771d chore(LinearAlgebra/RootSystem): golf `exists_apply_eq_or` and remove note "we should have a tactic to crush this" (#27372) Remove: ``` /- The below proof (due to Mario Carneiro, Johan Commelin, Bhavik Mehta, Jingting Wang) should not really be necessary: we should have a tactic to crush this. -/ ``` We now have such a tactic! 🎉 ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/RootSystem/Finite/Lemmas.lean - theorem RootPairing.InvariantForm.exists_apply_eq_or_aux 2025-07-24 14:37:32 7e13baa feat(Polynomial/Algebra): aeval_sub/neg (#27425) Add lemmas about `sub`/`neg` for `aeval`. These are already available for `eval` and `eval₂`. ESTIMATED CHANGES Modified Mathlib/Algebra/Polynomial/AlgebraMap.lean + theorem Polynomial.aeval_neg + theorem Polynomial.aeval_sub 2025-07-24 14:37:30 c6584f5 docs(Simproc/Divisors): fix module docstring (#27420) Fix the module docstring to reflect the actual names of the dsimprocs ESTIMATED CHANGES Modified Mathlib/Tactic/Simproc/Divisors.lean 2025-07-24 14:37:28 615d661 chore: generalize typeclass assumptions on DFinsupp SMul (#27409) These match the Finsupp instances more closely. ESTIMATED CHANGES Modified Mathlib/Data/DFinsupp/Module.lean +/- theorem DFinsupp.coe_smul +/- theorem DFinsupp.comapDomain'_smul +/- theorem DFinsupp.comapDomain_smul +/- theorem DFinsupp.equivProdDFinsupp_smul +/- theorem DFinsupp.filter_smul +/- theorem DFinsupp.smul_apply +/- theorem DFinsupp.subtypeDomain_smul +/- theorem DFinsupp.support_smul 2025-07-24 14:37:27 d349b44 chore: move `DiscreteUniformity` lower in the import tree (#27384) ESTIMATED CHANGES Modified Mathlib/Topology/Algebra/IsUniformGroup/Defs.lean Modified Mathlib/Topology/UniformSpace/Cauchy.lean + theorem DiscreteUniformity.eq_pure_cauchyConst + theorem DiscreteUniformity.eq_pure_of_cauchy Modified Mathlib/Topology/UniformSpace/DiscreteUniformity.lean - theorem DiscreteUniformity.eq_pure_cauchyConst - theorem DiscreteUniformity.eq_pure_of_cauchy 2025-07-24 14:37:25 d2193d9 feat: a monoid algebra is free (#27141) From Toric ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/Finsupp/VectorSpace.lean 2025-07-24 14:15:41 99f80ee feat(Abelianization): `lift_symm_apply` (#27423) Adds a `@[simp]` theorem `lift_symm_apply` and a regular theorem `coe_lift_symm`. ESTIMATED CHANGES Modified Mathlib/GroupTheory/Abelianization/Defs.lean + theorem Abelianization.coe_lift_symm + theorem Abelianization.lift_symm_apply 2025-07-24 12:57:52 576e5e1 feat(Data/Real): add embedding of archimedean groups into Real (#26114) This is part of https://github.com/leanprover-community/mathlib4/pull/25140, and is the special case of Hahn embedding theorem applied to archimedean group. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Data/Rat/Lemmas.lean + theorem Rat.mkRat_add_mkRat_of_den Added Mathlib/Data/Real/Embedding.lean + def Archimedean.embedReal + theorem Archimedean.embedRealFun_add + theorem Archimedean.embedRealFun_strictMono + theorem Archimedean.embedRealFun_zero + theorem Archimedean.embedReal_apply + theorem Archimedean.embedReal_injective + theorem Archimedean.embedReal_one + theorem Archimedean.exists_orderAddMonoidHom_real_injective + theorem Archimedean.mkRat_mem_ratLt + theorem Archimedean.ratLt'_add + theorem Archimedean.ratLt'_bddAbove + theorem Archimedean.ratLt'_nonempty + theorem Archimedean.ratLt_add + theorem Archimedean.ratLt_bddAbove + theorem Archimedean.ratLt_nonempty + theorem mul_smul_one_lt_iff + theorem num_le_nat_mul_den + theorem num_smul_one_lt_den_smul_add 2025-07-24 12:12:18 a9863d9 fix: make `CompleteLattice` extend `BoundedOrder` (#26626) Currently, `CompleteLattice` extends `Top` and `Bot`, and introduces `le_top` and `bot_le`. Finally, `CompleteLattice` introduces an instance of `BoundedOrder`. This PR makes `CompleteLattice` extend `BoundedOrder` directly instead. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Adjunction/PartialAdjoint.lean Modified Mathlib/CategoryTheory/Sites/Grothendieck.lean Modified Mathlib/Order/CompleteLattice/Defs.lean Modified Mathlib/Order/Hom/CompleteLattice.lean 2025-07-24 10:23:49 d39dd19 feat(CategoryTheory/Limits): removed possibly faulty simp theorem (#27421) As discussed [here](https://leanprover.zulipchat.com/#narrow/channel/113489-new-members/topic/.E2.9C.94.20Maximum.20recursion.20error.20at.20simp.20tactic/with/530502013), I got an infinite simp loop where it repeatedly tried to apply `PullbackCone.π_app_left`. This was the definition from mathlib: ``` /-- The first projection of a pullback cone. -/ abbrev fst (t : PullbackCone f g) : t.pt ⟶ X := t.π.app WalkingCospan.left ... @[simp] theorem π_app_left (c : PullbackCone f g) : c.π.app WalkingCospan.left = c.fst := rfl ``` Seems like it unfolded the abbrev to immedeately apply the theorem again. So I removed the simp tags, let's see if the build runs through. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Limits/Shapes/Pullback/PullbackCone.lean 2025-07-24 08:42:43 47fa216 fix: delete a duplicate instance (#27402) This was copied in #27386 to https://github.com/leanprover-community/mathlib4/blob/d3c295b45d6f0bdb356f99ebe071016f2559eb73/Mathlib/Algebra/GroupWithZero/Action/Hom.lean#L19-L24 but I forgot to delete the original. ESTIMATED CHANGES Modified Mathlib/Algebra/GroupWithZero/Action/Defs.lean Modified Mathlib/GroupTheory/GroupAction/DomAct/Basic.lean 2025-07-24 08:42:41 d3365cb chore(Analysis): remove a few unneccessary assignments in instance declarations (#27389) These were introduced mostly as an adaptation for lean4#7717, but they seem to be unnecessary anymore. Since the changes were applied long ago, I can't see the build errors in the logs to figure out the exact issue. (I assume that they simply were not getting inferred.) In addition to the now-unnecessary `norm_mul_self_le` field for `CStarAlgebra` introduced in those adaptation notes, we can also get rid of quite a few unnecessary `mul_comm` fields. ESTIMATED CHANGES Modified Mathlib/Analysis/CStarAlgebra/CStarMatrix.lean Modified Mathlib/Analysis/CStarAlgebra/Classes.lean Modified Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Basic.lean Modified Mathlib/Analysis/CStarAlgebra/ContinuousLinearMap.lean Modified Mathlib/Analysis/CStarAlgebra/ContinuousMap.lean Modified Mathlib/Analysis/CStarAlgebra/Multiplier.lean Modified Mathlib/Analysis/CStarAlgebra/Unitization.lean Modified Mathlib/Analysis/CStarAlgebra/lpSpace.lean Modified Mathlib/Analysis/LocallyConvex/WeakOperatorTopology.lean 2025-07-24 08:42:39 2fa5fe1 feat(Topology/Algebra/Module/Multilinear/Basic): add simple lemma about `mkPiAlgebra` (#27352) Also swap the order of some lemmas to put the ones with weaker typeclass assumptions first. ESTIMATED CHANGES Modified Mathlib/Topology/Algebra/Module/Multilinear/Basic.lean + theorem ContinuousMultilinearMap.mkPiAlgebra_eq_mkPiAlgebraFin 2025-07-24 08:42:38 29caf88 chore: split `Data.Sign` (#27232) We now have a `Defs` file defining `SignType` and basic instances, as well as a `Basic` file proving results about the sign function on a ring. The files have not been changed beyond updating the module description. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Data/EReal/Inv.lean Modified Mathlib/Data/Sign.lean - theorem Int.sign_eq_sign - theorem Left.sign_neg - theorem Right.sign_neg - def SignType.cast - def SignType.castHom - theorem SignType.coe_mul - theorem SignType.coe_neg - theorem SignType.coe_neg_one - theorem SignType.coe_one - theorem SignType.coe_pow - theorem SignType.coe_zero - theorem SignType.coe_zpow - def SignType.fin3Equiv - theorem SignType.intCast_cast - theorem SignType.le_neg_one_iff - theorem SignType.le_one - theorem SignType.lt_one_iff - theorem SignType.map_cast' - theorem SignType.map_cast - theorem SignType.neg_eq_neg_one - theorem SignType.neg_eq_self_iff - theorem SignType.neg_iff - theorem SignType.neg_one_le - theorem SignType.neg_one_lt_iff - theorem SignType.neg_one_lt_one - theorem SignType.nonneg_iff - theorem SignType.nonneg_iff_ne_neg_one - theorem SignType.nonpos_iff - theorem SignType.nonpos_iff_ne_one - theorem SignType.not_lt_neg_one - theorem SignType.not_one_lt - theorem SignType.one_le_iff - theorem SignType.pos_eq_one - theorem SignType.pos_iff - theorem SignType.pow_even - theorem SignType.pow_odd - theorem SignType.range_eq - theorem SignType.self_eq_neg_iff - def SignType.sign - theorem SignType.univ_eq - theorem SignType.zero_eq_zero - theorem SignType.zpow_even - theorem SignType.zpow_odd - inductive SignType - theorem StrictMono.sign_comp - theorem abs_mul_sign - theorem exists_signed_sum' - theorem exists_signed_sum - theorem self_mul_sign - def signHom - theorem sign_apply - theorem sign_eq_neg_one_iff - theorem sign_eq_one_iff - theorem sign_eq_zero_iff - theorem sign_intCast - theorem sign_mul - theorem sign_mul_abs - theorem sign_mul_self - theorem sign_ne_zero - theorem sign_neg - theorem sign_nonneg_iff - theorem sign_nonpos_iff - theorem sign_one - theorem sign_pos - theorem sign_pow - theorem sign_sum - theorem sign_zero Added Mathlib/Data/Sign/Basic.lean + def SignType.castHom + theorem SignType.coe_mul + theorem SignType.coe_pow + theorem SignType.coe_zpow + theorem SignType.intCast_cast + theorem SignType.pow_even + theorem SignType.pow_odd + theorem SignType.range_eq + theorem SignType.univ_eq + theorem SignType.zpow_even + theorem SignType.zpow_odd + theorem abs_mul_sign + theorem exists_signed_sum' + theorem exists_signed_sum + theorem self_mul_sign + def signHom + theorem sign_intCast + theorem sign_mul + theorem sign_mul_abs + theorem sign_mul_self + theorem sign_pow + theorem sign_sum Added Mathlib/Data/Sign/Defs.lean + theorem Int.sign_eq_sign + theorem Left.sign_neg + theorem Right.sign_neg + def SignType.cast + theorem SignType.coe_neg + theorem SignType.coe_neg_one + theorem SignType.coe_one + theorem SignType.coe_zero + def SignType.fin3Equiv + theorem SignType.le_neg_one_iff + theorem SignType.le_one + theorem SignType.lt_one_iff + theorem SignType.map_cast' + theorem SignType.map_cast + theorem SignType.neg_eq_neg_one + theorem SignType.neg_eq_self_iff + theorem SignType.neg_eq_zero_iff + theorem SignType.neg_iff + theorem SignType.neg_one_le + theorem SignType.neg_one_lt_iff + theorem SignType.neg_one_lt_one + theorem SignType.nonneg_iff + theorem SignType.nonneg_iff_ne_neg_one + theorem SignType.nonpos_iff + theorem SignType.nonpos_iff_ne_one + theorem SignType.not_lt_neg_one + theorem SignType.not_one_lt + theorem SignType.one_le_iff + theorem SignType.pos_eq_one + theorem SignType.pos_iff + theorem SignType.self_eq_neg_iff + def SignType.sign + theorem SignType.zero_eq_zero + inductive SignType + theorem StrictMono.sign_comp + theorem sign_apply + theorem sign_eq_neg_one_iff + theorem sign_eq_one_iff + theorem sign_eq_zero_iff + theorem sign_ne_zero + theorem sign_neg + theorem sign_nonneg_iff + theorem sign_nonpos_iff + theorem sign_one + theorem sign_pos + theorem sign_zero Modified Mathlib/LinearAlgebra/AffineSpace/Independent.lean Modified Mathlib/LinearAlgebra/Matrix/Determinant/TotallyUnimodular.lean Modified Mathlib/LinearAlgebra/QuadraticForm/Real.lean Modified Mathlib/Topology/Instances/Sign.lean 2025-07-24 08:42:36 4dcbe43 feat(RepresentationTheory/Homological/GroupHomology): long exact sequences (#25943) Given a commutative ring `k` and a group `G`, this PR shows that a short exact sequence of `k`-linear `G`-representations `0 ⟶ X₁ ⟶ X₂ ⟶ X₃ ⟶ 0` induces a short exact sequence of complexes `0 ⟶ inhomogeneousChains X₁ ⟶ inhomogeneousChains X₂ ⟶ inhomogeneousChains X₃ ⟶ 0`. Since the homology of `inhomogeneousChains Xᵢ` is the group homology of `Xᵢ`, this allows us to specialize API about long exact sequences to group homology. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/LinearAlgebra/Finsupp/Pi.lean + theorem Finsupp.ker_mapRange + theorem Finsupp.mem_submodule_iff + theorem Finsupp.range_mapRange_linearMap + def Finsupp.submodule Modified Mathlib/RepresentationTheory/Homological/GroupCohomology/LongExactSequence.lean Modified Mathlib/RepresentationTheory/Homological/GroupHomology/Basic.lean + theorem groupHomology.iCycles_mk Added Mathlib/RepresentationTheory/Homological/GroupHomology/LongExactSequence.lean + theorem groupHomology.epi_δ_of_isZero + theorem groupHomology.isIso_δ_of_isZero + theorem groupHomology.mapShortComplex₁_exact + theorem groupHomology.mapShortComplex₂_exact + theorem groupHomology.mapShortComplex₃_exact + theorem groupHomology.map_chainsFunctor_shortExact + theorem groupHomology.mem_cycles₁_of_comp_eq_d₂₁ + theorem groupHomology.mono_δ_of_isZero + theorem groupHomology.δ_apply + theorem groupHomology.δ₀_apply + theorem groupHomology.δ₁_apply Modified Mathlib/RepresentationTheory/Homological/GroupHomology/LowDegree.lean + theorem groupHomology.cyclesMk₀_eq + theorem groupHomology.cyclesMk₁_eq + theorem groupHomology.cyclesMk₂_eq 2025-07-24 07:54:54 05c8b08 chore(*): fix some scattered adaptation notes (#27396) This PR deals with adaptation notes in Mathlib that have become irrelevant or easily fixable. The remainder are going to require actual thinking to fix. ESTIMATED CHANGES Modified Mathlib/AlgebraicGeometry/Morphisms/QuasiCompact.lean Modified Mathlib/Analysis/Complex/TaylorSeries.lean Modified Mathlib/CategoryTheory/GradedObject/Monoidal.lean Modified Mathlib/Data/Nat/Hyperoperation.lean Modified Mathlib/Data/Prod/PProd.lean Modified Mathlib/LinearAlgebra/BilinearForm/Properties.lean Modified Mathlib/LinearAlgebra/PiTensorProduct.lean Modified Mathlib/MeasureTheory/Covering/Vitali.lean Modified Mathlib/NumberTheory/ClassNumber/AdmissibleAbsoluteValue.lean Modified Mathlib/Probability/Kernel/Disintegration/Density.lean Modified Mathlib/Tactic/ModCases.lean 2025-07-24 07:37:58 909b3be feat(AlgebraicGeometry): codescent implies descent (#23547) Let `P` and `P'` be morphism properties of schemes. We show some results to deduce that `P` descends along `P'` from a codescent property of ring homomorphisms. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/AlgebraicGeometry/Morphisms/AffineAnd.lean + theorem AlgebraicGeometry.HasAffineProperty.SpecMap_iff_of_affineAnd Added Mathlib/AlgebraicGeometry/Morphisms/Descent.lean + theorem AlgebraicGeometry.IsLocalAtTarget.descendsAlong + theorem AlgebraicGeometry.IsLocalAtTarget.descendsAlong_inf_quasiCompact + theorem AlgebraicGeometry.IsStableUnderBaseChange.of_pullback_fst_of_isAffine + theorem AlgebraicGeometry.Scheme.exists_hom_isAffine_of_isLocalAtSource + theorem AlgebraicGeometry.of_pullback_fst_Spec_of_codescendsAlong Modified Mathlib/RingTheory/RingHomProperties.lean + theorem RingHom.CodescendsAlong.algebraMap_tensorProduct + theorem RingHom.CodescendsAlong.includeRight + theorem RingHom.CodescendsAlong.mk + def RingHom.CodescendsAlong 2025-07-24 06:35:37 9cd3356 feat(AlgebraicTopology/ModelCategory): a trick by Joyal (#26169) In order to construct a model category, we may sometimes have basically proven all the axioms with the exception of the left lifting property of cofibrations with respect to trivial fibrations. A trick by Joyal allows to obtain this lifting property under suitable assumptions, namely that cofibrations are stable under composition and cobase change. (The dual statement is also formalized.) This will be used in the formalization of the model category structure on topological spaces, simplicial sets, simplicial presheaves, etc. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/AlgebraicTopology/ModelCategory/JoyalTrick.lean + theorem HomotopicalAlgebra.ModelCategory.hasLiftingProperty_of_joyalTrick + theorem HomotopicalAlgebra.ModelCategory.hasLiftingProperty_of_joyalTrickDual Modified docs/references.bib 2025-07-24 04:11:51 928758a chore: bump toolchain to v4.22.0-rc4 (#27415) ESTIMATED CHANGES Modified lake-manifest.json Modified lean-toolchain 2025-07-24 03:11:23 059a5bc chore: make create-adapation-pr.sh robust to running on nightly-testing fork (#27411) cf recent failures at [#nightly-testing > Mathlib bump branch reminders @ 💬](https://leanprover.zulipchat.com/#narrow/channel/428973-nightly-testing/topic/Mathlib.20bump.20branch.20reminders/near/530460702) ESTIMATED CHANGES Modified scripts/create-adaptation-pr.sh 2025-07-24 00:33:07 7b332d3 chore: add defeq test for grind rings (#26806) This PR adds a defeq test for multiple paths that convert rings in Mathlib's algebraic hierarchy to abelian groups in grind's hierarchy. This defeq test used to fail before `leanprover/lean4:v4.22.0-rc3`. ESTIMATED CHANGES Modified MathlibTest/grind/ring.lean 2025-07-23 22:17:21 8b7eb3d feat(MetricSpace): tag `dist_nonneg` with `@[simp]` (#27285) `dist_pos` is already a simp lemma, so `dist_nonneg` should be too. ESTIMATED CHANGES Modified Mathlib/Analysis/Normed/Lp/ProdLp.lean Modified Mathlib/Topology/ContinuousMap/Bounded/Basic.lean Modified Mathlib/Topology/MetricSpace/HausdorffDistance.lean Modified Mathlib/Topology/MetricSpace/PiNat.lean Modified Mathlib/Topology/MetricSpace/Pseudo/Constructions.lean Modified Mathlib/Topology/MetricSpace/Pseudo/Defs.lean 2025-07-23 21:12:34 d180e74 chore(Algebra/Category/MonCat/Basic): fix typos (#27397) ESTIMATED CHANGES Modified Mathlib/Algebra/Category/MonCat/Basic.lean 2025-07-23 21:12:32 0daba2d chore(Algebra/Order/Hom/Monoid): separate MonoidWithZero material into separate file (#27337) This PR moves material that uses `MonoidWithZero` into a separate file. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Order/GroupWithZero/Lex.lean Modified Mathlib/Algebra/Order/Hom/Monoid.lean - def OrderMonoidIso.unitsWithZero - def OrderMonoidIso.withZero - def OrderMonoidIso.withZeroUnits - theorem OrderMonoidWithZeroHom.cancel_left - theorem OrderMonoidWithZeroHom.cancel_right - theorem OrderMonoidWithZeroHom.coe_comp - theorem OrderMonoidWithZeroHom.coe_comp_monoidWithZeroHom - theorem OrderMonoidWithZeroHom.coe_comp_orderMonoidHom - theorem OrderMonoidWithZeroHom.coe_copy - theorem OrderMonoidWithZeroHom.coe_id - theorem OrderMonoidWithZeroHom.coe_mk - theorem OrderMonoidWithZeroHom.coe_monoidWithZeroHom - theorem OrderMonoidWithZeroHom.coe_mul - theorem OrderMonoidWithZeroHom.coe_orderMonoidHom - def OrderMonoidWithZeroHom.comp - theorem OrderMonoidWithZeroHom.comp_apply - theorem OrderMonoidWithZeroHom.comp_assoc - theorem OrderMonoidWithZeroHom.comp_id - theorem OrderMonoidWithZeroHom.comp_mul - theorem OrderMonoidWithZeroHom.copy_eq - theorem OrderMonoidWithZeroHom.ext - theorem OrderMonoidWithZeroHom.id_comp - theorem OrderMonoidWithZeroHom.mk_coe - theorem OrderMonoidWithZeroHom.mul_apply - theorem OrderMonoidWithZeroHom.mul_comp - theorem OrderMonoidWithZeroHom.toFun_eq_coe - theorem OrderMonoidWithZeroHom.toMonoidWithZeroHom_coe - theorem OrderMonoidWithZeroHom.toMonoidWithZeroHom_eq_coe - theorem OrderMonoidWithZeroHom.toMonoidWithZeroHom_injective - theorem OrderMonoidWithZeroHom.toMonoidWithZeroHom_mk - def OrderMonoidWithZeroHom.toOrderMonoidHom - theorem OrderMonoidWithZeroHom.toOrderMonoidHom_comp - theorem OrderMonoidWithZeroHom.toOrderMonoidHom_eq_coe - theorem OrderMonoidWithZeroHom.toOrderMonoidHom_injective - structure OrderMonoidWithZeroHom - def OrderMonoidWithZeroHomClass.toOrderMonoidWithZeroHom Added Mathlib/Algebra/Order/Hom/MonoidWithZero.lean + def OrderMonoidIso.unitsWithZero + def OrderMonoidIso.withZero + def OrderMonoidIso.withZeroUnits + theorem OrderMonoidWithZeroHom.cancel_left + theorem OrderMonoidWithZeroHom.cancel_right + theorem OrderMonoidWithZeroHom.coe_comp + theorem OrderMonoidWithZeroHom.coe_comp_monoidWithZeroHom + theorem OrderMonoidWithZeroHom.coe_comp_orderMonoidHom + theorem OrderMonoidWithZeroHom.coe_copy + theorem OrderMonoidWithZeroHom.coe_id + theorem OrderMonoidWithZeroHom.coe_mk + theorem OrderMonoidWithZeroHom.coe_monoidWithZeroHom + theorem OrderMonoidWithZeroHom.coe_mul + theorem OrderMonoidWithZeroHom.coe_orderMonoidHom + def OrderMonoidWithZeroHom.comp + theorem OrderMonoidWithZeroHom.comp_apply + theorem OrderMonoidWithZeroHom.comp_assoc + theorem OrderMonoidWithZeroHom.comp_id + theorem OrderMonoidWithZeroHom.comp_mul + theorem OrderMonoidWithZeroHom.copy_eq + theorem OrderMonoidWithZeroHom.ext + theorem OrderMonoidWithZeroHom.id_comp + theorem OrderMonoidWithZeroHom.mk_coe + theorem OrderMonoidWithZeroHom.mul_apply + theorem OrderMonoidWithZeroHom.mul_comp + theorem OrderMonoidWithZeroHom.toFun_eq_coe + theorem OrderMonoidWithZeroHom.toMonoidWithZeroHom_coe + theorem OrderMonoidWithZeroHom.toMonoidWithZeroHom_eq_coe + theorem OrderMonoidWithZeroHom.toMonoidWithZeroHom_injective + theorem OrderMonoidWithZeroHom.toMonoidWithZeroHom_mk + def OrderMonoidWithZeroHom.toOrderMonoidHom + theorem OrderMonoidWithZeroHom.toOrderMonoidHom_comp + theorem OrderMonoidWithZeroHom.toOrderMonoidHom_eq_coe + theorem OrderMonoidWithZeroHom.toOrderMonoidHom_injective + structure OrderMonoidWithZeroHom + def OrderMonoidWithZeroHomClass.toOrderMonoidWithZeroHom Modified Mathlib/Algebra/Order/Hom/Ring.lean 2025-07-23 20:45:57 5efaaa7 chore: rename `lift.of` to `lift_apply_of` (#27398) ESTIMATED CHANGES Modified Mathlib/Algebra/Category/Grp/Adjunctions.lean Modified Mathlib/Algebra/FreeAbelianGroup/Finsupp.lean Modified Mathlib/GroupTheory/Abelianization/Defs.lean - theorem Abelianization.lift.of - theorem Abelianization.lift.unique + theorem Abelianization.lift_apply_of + theorem Abelianization.lift_unique Modified Mathlib/GroupTheory/CoprodI.lean Modified Mathlib/GroupTheory/Coxeter/Basic.lean Modified Mathlib/GroupTheory/FreeAbelianGroup.lean +/- theorem FreeAbelianGroup.lift.map_hom + theorem FreeAbelianGroup.lift_apply_of + theorem FreeAbelianGroup.lift_comp_apply + theorem FreeAbelianGroup.lift_ext + theorem FreeAbelianGroup.lift_unique Modified Mathlib/GroupTheory/FreeGroup/Basic.lean - theorem FreeGroup.lift.mk - theorem FreeGroup.lift.of - theorem FreeGroup.lift.of_eq - theorem FreeGroup.lift.range_eq_closure - theorem FreeGroup.lift.range_le - theorem FreeGroup.lift.unique + theorem FreeGroup.lift_apply_of + theorem FreeGroup.lift_mk + theorem FreeGroup.lift_of_apply + theorem FreeGroup.lift_unique + theorem FreeGroup.range_lift_eq_closure + theorem FreeGroup.range_lift_le Modified Mathlib/GroupTheory/FreeGroup/IsFreeGroup.lean Modified Mathlib/GroupTheory/PresentedGroup.lean Modified Mathlib/RingTheory/FreeCommRing.lean 2025-07-23 19:36:15 d3c295b style(RingTheory/IsAdjoinRoot): improve style and golf (#27374) * Factor out repeated hypotheses into `variable` * Golf a bunch of proofs * Remove outdated porting notes ESTIMATED CHANGES Modified Mathlib/RingTheory/IsAdjoinRoot.lean +/- theorem AdjoinRoot.isAdjoinRoot_map_eq_mk +/- def IsAdjoinRoot.aequiv +/- theorem IsAdjoinRoot.aequiv_aequiv +/- theorem IsAdjoinRoot.aequiv_map +/- theorem IsAdjoinRoot.aequiv_ofEquiv +/- theorem IsAdjoinRoot.aequiv_root +/- theorem IsAdjoinRoot.aequiv_self +/- theorem IsAdjoinRoot.aequiv_symm +/- theorem IsAdjoinRoot.aequiv_trans +/- theorem IsAdjoinRoot.aeval_eq +/- theorem IsAdjoinRoot.aeval_root +/- theorem IsAdjoinRoot.algebraMap_apply +/- theorem IsAdjoinRoot.apply_eq_lift +/- theorem IsAdjoinRoot.coe_liftHom +/- theorem IsAdjoinRoot.eq_lift +/- theorem IsAdjoinRoot.eq_liftHom +/- theorem IsAdjoinRoot.eval₂_repr_eq_eval₂_of_map_eq +/- theorem IsAdjoinRoot.ext +/- theorem IsAdjoinRoot.ext_map +/- def IsAdjoinRoot.lift +/- def IsAdjoinRoot.liftHom +/- theorem IsAdjoinRoot.liftHom_aequiv +/- theorem IsAdjoinRoot.liftHom_map +/- theorem IsAdjoinRoot.liftHom_root +/- theorem IsAdjoinRoot.lift_aequiv +/- theorem IsAdjoinRoot.lift_algebraMap +/- theorem IsAdjoinRoot.lift_algebraMap_apply +/- theorem IsAdjoinRoot.lift_map +/- theorem IsAdjoinRoot.lift_root +/- theorem IsAdjoinRoot.lift_self +/- theorem IsAdjoinRoot.lift_self_apply +/- theorem IsAdjoinRoot.map_X +/- theorem IsAdjoinRoot.map_eq_zero_iff +/- theorem IsAdjoinRoot.map_repr +/- theorem IsAdjoinRoot.map_self +/- theorem IsAdjoinRoot.mem_ker_map +/- def IsAdjoinRoot.ofEquiv +/- theorem IsAdjoinRoot.ofEquiv_aequiv +/- theorem IsAdjoinRoot.ofEquiv_root +/- def IsAdjoinRoot.repr +/- theorem IsAdjoinRoot.repr_add_sub_repr_add_repr_mem_span +/- theorem IsAdjoinRoot.repr_zero_mem_span +/- def IsAdjoinRoot.root +/- theorem IsAdjoinRoot.subsingleton +/- def IsAdjoinRootMonic.basis +/- theorem IsAdjoinRootMonic.basis_apply +/- theorem IsAdjoinRootMonic.basis_one +/- theorem IsAdjoinRootMonic.basis_repr +/- def IsAdjoinRootMonic.coeff +/- theorem IsAdjoinRootMonic.coeff_algebraMap +/- theorem IsAdjoinRootMonic.coeff_apply +/- theorem IsAdjoinRootMonic.coeff_apply_coe +/- theorem IsAdjoinRootMonic.coeff_apply_le +/- theorem IsAdjoinRootMonic.coeff_apply_lt +/- theorem IsAdjoinRootMonic.coeff_injective +/- theorem IsAdjoinRootMonic.coeff_one +/- theorem IsAdjoinRootMonic.coeff_root +/- theorem IsAdjoinRootMonic.coeff_root_pow +/- theorem IsAdjoinRootMonic.deg_ne_zero +/- theorem IsAdjoinRootMonic.deg_pos +/- theorem IsAdjoinRootMonic.ext_elem +/- theorem IsAdjoinRootMonic.ext_elem_iff +/- theorem IsAdjoinRootMonic.isIntegral_root +/- def IsAdjoinRootMonic.liftPolyₗ +/- theorem IsAdjoinRootMonic.map_modByMonic +/- theorem IsAdjoinRootMonic.map_modByMonicHom +/- def IsAdjoinRootMonic.modByMonicHom +/- theorem IsAdjoinRootMonic.modByMonicHom_map +/- theorem IsAdjoinRootMonic.modByMonicHom_root +/- theorem IsAdjoinRootMonic.modByMonicHom_root_pow +/- theorem IsAdjoinRootMonic.modByMonic_repr_map +/- def IsAdjoinRootMonic.powerBasis 2025-07-23 19:36:14 ed2c96d feat(Data/Finset): add `Finset.filter_notMem_eq_sdiff`, `Finset.map_sdiff` (#27340) `Finset.filter_notMem_eq_sdiff` is the symmetric correspondence of `Finset.filter_mem_eq_inter`. ESTIMATED CHANGES Modified Mathlib/Data/Finset/Basic.lean + theorem Finset.filter_notMem_eq_sdiff Modified Mathlib/Data/Finset/Image.lean + theorem Finset.map_sdiff 2025-07-23 19:01:07 f62b9ce chore(Algebra/GroupWithZero/Action/Hom): extract from other files (#27386) This matches the Pi and Prod files in the same folder, and moves non-modules instances upstream to the `GroupWithZero` folder. The instances for AddMonoidHom have been generalized, the rest have been moved without changes. This is some cleanup ahead of #27305, which makes it clearer where the new `ZeroHom` instances there should go. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/GroupWithZero/Action/Hom.lean + theorem AddMonoidHom.coe_smul + theorem AddMonoidHom.smul_apply + theorem AddMonoidHom.smul_comp Modified Mathlib/Algebra/GroupWithZero/Action/Pi.lean Modified Mathlib/Algebra/GroupWithZero/Action/Prod.lean Modified Mathlib/Algebra/Module/Hom.lean - theorem AddMonoidHom.coe_smul - theorem AddMonoidHom.smul_apply Modified Mathlib/Algebra/Module/Pi.lean Modified Mathlib/Algebra/Module/Prod.lean Modified Mathlib/Algebra/Order/Module/OrderedSMul.lean 2025-07-23 17:08:30 68bc12a feat(RepresentationTheory/Homological): (co)(res/inf) natural transformations on group (co)homology (#27393) Given a group homomorphism `f : G →* H`, we define - `groupCohomology.resNatTrans k f`: restriction natural transformation between the functors sending `A : Rep k H` to `Hⁿ(H, A)` and to `Hⁿ(G, Res(f)(A))`. - `groupHomology.coresNatTrans k f`: corestriction natural transformation between the functors sending `A : Rep k H` to `Hₙ(G, Res(f)(A))` and to `Hₙ(H, A)`. Given a normal subgroup `S ≤ G`, we define - `groupCohomology.infNatTrans k S`: inflation natural transformation between the functors sending `A : Rep k G` to `Hⁿ(G ⧸ S, A^S)` and to `Hⁿ(G, A)`. - `groupHomology.coinfNatTrans k S`: coinflation natural transformation between the functors sending sending `A : Rep k G` to `Hₙ(G, A)` and to `Hₙ(G ⧸ S, A_S)`. ESTIMATED CHANGES Modified Mathlib/RepresentationTheory/Coinvariants.lean + theorem Representation.toCoinvariants_mk Modified Mathlib/RepresentationTheory/Homological/GroupCohomology/Functoriality.lean Modified Mathlib/RepresentationTheory/Homological/GroupHomology/Functoriality.lean + theorem groupHomology.congr Modified Mathlib/RepresentationTheory/Invariants.lean Modified Mathlib/RepresentationTheory/Rep.lean + theorem Rep.coe_res_obj_ρ +/- theorem Rep.res_obj_ρ 2025-07-23 16:00:31 17d6810 feat(to_additive): `to_additive self` syntax (#27387) In preparation for the `to_dual` attribute, define the `to_additive self` syntax. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Types.lean Modified Mathlib/Tactic/ToAdditive.lean Modified Mathlib/Tactic/ToAdditive/Frontend.lean Modified Mathlib/Topology/Defs/Basic.lean Modified MathlibTest/toAdditive.lean 2025-07-23 16:00:30 1a8b6df feat(CategoryTheory/Action/Basic, RepresentationTheory/FDRep): `Functor.mapAction F G` is fully faithful if `F` is (#27128) Prove that, if a functor `F` is faithful (resp. fully faithful), then `F.mapAction G` is faithful (resp. full). Apply this to the forgetful functor from `FGModuleCat k` to `ModuleCat k` to obtain that the forgetful functor from `FDRep k G` to `Rep k G` is fully faithful. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Action/Basic.lean + def CategoryTheory.Functor.FullyFaithful.mapAction Modified Mathlib/RepresentationTheory/FDRep.lean 2025-07-23 15:29:00 ef9f226 chore(GroupTheory/FreeAbelianGroup): do not import cardinals (#27169) Move the `Fintype` and `Cardinal` material from `GroupTheory.Coset.Basic` to `GroupTheory.Coset.Card`. That was just misplaced. Split `GroupTheory.Abelianization` into: * more material in `GroupTheory.Commutator.Basic` and `GroupTheory.Commutator.Finite` that was just misplaced * `GroupTheory.Abelianization.Defs` for the definition of the abelianisation * `GroupTheory.Abelianization.Finite` for the finiteness of the abelianisation of a finite group ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Category/Grp/Adjunctions.lean Modified Mathlib/Algebra/Colimit/Ring.lean Modified Mathlib/Algebra/FreeAbelianGroup/Finsupp.lean Modified Mathlib/Algebra/FreeAbelianGroup/UniqueSums.lean Deleted Mathlib/GroupTheory/Abelianization.lean - theorem Abelianization.commutator_subset_ker - def Abelianization.equivOfComm - theorem Abelianization.hom_ext - theorem Abelianization.ker_of - theorem Abelianization.lift.of - theorem Abelianization.lift.unique - def Abelianization.lift - theorem Abelianization.lift_of - theorem Abelianization.lift_of_comp - def Abelianization.map - theorem Abelianization.map_comp - theorem Abelianization.map_id - theorem Abelianization.map_map_apply - theorem Abelianization.map_of - theorem Abelianization.mk_eq_of - def Abelianization.of - def Abelianization - def MulEquiv.abelianizationCongr - theorem Subgroup.Normal.commutator_le_of_self_sup_commutative_eq_top - theorem Subgroup.Normal.quotient_commutative_iff_commutator_le - theorem Subgroup.commutator_le_self - theorem Subgroup.map_subtype_commutator - theorem abelianizationCongr_of - theorem abelianizationCongr_refl - theorem abelianizationCongr_symm - theorem abelianizationCongr_trans - theorem card_commutatorSet_closureCommutatorRepresentatives - theorem card_commutator_closureCommutatorRepresentatives - def closureCommutatorRepresentatives - def commutator - def commutatorRepresentatives - theorem commutator_centralizer_commutator_le_center - theorem commutator_def - theorem commutator_eq_bot_iff_center_eq_top - theorem commutator_eq_closure - theorem commutator_eq_normalClosure - theorem image_commutatorSet_closureCommutatorRepresentatives - theorem map_commutator_eq - theorem mem_commutatorSet_of_isConj_sq - theorem rank_closureCommutatorRepresentatives_le - theorem rank_commutator_le_card Added Mathlib/GroupTheory/Abelianization/Defs.lean + theorem Abelianization.commutator_subset_ker + def Abelianization.equivOfComm + theorem Abelianization.hom_ext + theorem Abelianization.ker_of + theorem Abelianization.lift.of + theorem Abelianization.lift.unique + def Abelianization.lift + theorem Abelianization.lift_of + theorem Abelianization.lift_of_comp + def Abelianization.map + theorem Abelianization.map_comp + theorem Abelianization.map_id + theorem Abelianization.map_map_apply + theorem Abelianization.map_of + theorem Abelianization.mk_eq_of + def Abelianization.of + def Abelianization + def MulEquiv.abelianizationCongr + theorem abelianizationCongr_of + theorem abelianizationCongr_refl + theorem abelianizationCongr_symm + theorem abelianizationCongr_trans Added Mathlib/GroupTheory/Abelianization/Finite.lean Modified Mathlib/GroupTheory/Commutator/Basic.lean + theorem Subgroup.Normal.commutator_le_of_self_sup_commutative_eq_top + theorem Subgroup.Normal.quotient_commutative_iff_commutator_le + theorem Subgroup.commutator_le_self + theorem Subgroup.map_subtype_commutator + def closureCommutatorRepresentatives + def commutator + def commutatorRepresentatives + theorem commutator_centralizer_commutator_le_center + theorem commutator_def + theorem commutator_eq_bot_iff_center_eq_top + theorem commutator_eq_closure + theorem commutator_eq_normalClosure + theorem image_commutatorSet_closureCommutatorRepresentatives + theorem map_commutator_eq + theorem mem_commutatorSet_of_isConj_sq Modified Mathlib/GroupTheory/Commutator/Finite.lean + theorem Subgroup.rank_commutator_le_card + theorem card_commutatorSet_closureCommutatorRepresentatives + theorem card_commutator_closureCommutatorRepresentatives + theorem rank_closureCommutatorRepresentatives_le Modified Mathlib/GroupTheory/CommutingProbability.lean Modified Mathlib/GroupTheory/Coset/Basic.lean - theorem QuotientGroup.card_quotient_rightRel Modified Mathlib/GroupTheory/Coset/Card.lean + theorem QuotientGroup.card_quotient_rightRel Modified Mathlib/GroupTheory/FreeAbelianGroup.lean Modified Mathlib/GroupTheory/GroupAction/Iwasawa.lean Modified Mathlib/GroupTheory/GroupAction/Quotient.lean Modified Mathlib/GroupTheory/Schreier.lean Modified Mathlib/GroupTheory/Solvable.lean Modified Mathlib/GroupTheory/SpecificGroups/Alternating/Centralizer.lean Modified Mathlib/GroupTheory/SpecificGroups/ZGroup.lean Modified Mathlib/RepresentationTheory/Homological/GroupHomology/LowDegree.lean Modified Mathlib/RingTheory/FreeCommRing.lean Modified Mathlib/RingTheory/FreeRing.lean Modified Mathlib/RingTheory/MvPolynomial/FreeCommRing.lean Modified Mathlib/SetTheory/Cardinal/Free.lean Modified Mathlib/Topology/Algebra/Group/TopologicalAbelianization.lean 2025-07-23 14:59:38 9617033 chore(*): turn `set_option simprocs false` into `simp [-...]` (#27351) Based on adaptation notes for `nightly-2024-03-11` but applies more generally. Looks like `ComposableArrows.Precomp.obj_succ` and `Fin.reduceFinMk` are the main source of these disabled simprocs (#27382), otherwise they all seem reasonable or have easy fixes. ESTIMATED CHANGES Modified Counterexamples/CharPZeroNeCharZero.lean Modified Mathlib/Algebra/Homology/ExactSequence.lean Modified Mathlib/Algebra/Homology/HomologySequence.lean Modified Mathlib/Algebra/Homology/HomotopyCategory/ShortExact.lean Modified Mathlib/CategoryTheory/ComposableArrows.lean Modified Mathlib/Data/Nat/Choose/Sum.lean Modified Mathlib/Data/Num/Prime.lean Modified Mathlib/Geometry/Euclidean/Circumcenter.lean 2025-07-23 14:23:27 c6a0a4a feat(CategoryTheory/Monoidal/DayConvolution): Internal homs for Day convolution (#26879) In this PR, we introduce a structure `DayConvolutionInternalHom` on triples of functors `F G H: C ⥤ V` and that bundles data necessary to exhibit `H` as the value at `G` of an "internal hom functor for F" for the day convolution monoidal structure. More precisely, under the assumption that `V` is monoidal closed, the required data is that of suitably functorial (in `c` and `G`) ends of the profunctors `c₁ c₂ ↦ ihom (F c₁) (G.obj (c₂ ⊗ c))`. With this data, we construct for every `G` (and for implicit data of relevant day convolutions) transformations `F ⊛ [F, G] ⟶ G` and `G ⟶ [F, (F ⊛ G)]` that one should think of as the components of "evaluations" and "coevaluations" transformations exhibiting `[F, -]` as a right adjoint to `F ⊛ -`. To give body to this claim, we prove that these transformations are natural in `G`, and prove that they satisfy the triangle identities. This will be used in conjuction with #26820 to show that Day convolution structure are closed whenever `V` is closed and has relevant limits. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/CategoryTheory/Monoidal/DayConvolution.lean Added Mathlib/CategoryTheory/Monoidal/DayConvolution/Closed.lean + def CategoryTheory.MonoidalCategory.DayConvolutionInternalHom.coev_app + theorem CategoryTheory.MonoidalCategory.DayConvolutionInternalHom.coev_app_π + theorem CategoryTheory.MonoidalCategory.DayConvolutionInternalHom.coev_naturality_app + def CategoryTheory.MonoidalCategory.DayConvolutionInternalHom.ev_app + theorem CategoryTheory.MonoidalCategory.DayConvolutionInternalHom.ev_naturality_app + theorem CategoryTheory.MonoidalCategory.DayConvolutionInternalHom.left_triangle_components + def CategoryTheory.MonoidalCategory.DayConvolutionInternalHom.map + theorem CategoryTheory.MonoidalCategory.DayConvolutionInternalHom.map_app_comp_π + theorem CategoryTheory.MonoidalCategory.DayConvolutionInternalHom.right_triangle_components + theorem CategoryTheory.MonoidalCategory.DayConvolutionInternalHom.unit_app_ev_app_app + structure CategoryTheory.MonoidalCategory.DayConvolutionInternalHom + def CategoryTheory.MonoidalCategory.dayConvolutionInternalHomDiagramFunctor 2025-07-23 11:19:17 10d61c2 feat: `Spec(R)` notation for `Spec (CommRingCat.of R)` (#27031) This notation was instrumental in understanding the "industrial size" goals that showed up in Toric. Indeed, `Spec (.of R)` is reasonably short, but it currently pretty-prints as `Spec (CommRingCat.of R)`, which is unbearably long. There is a slight potential for ambiguity with `Spec R`, which I have hopefully mitigated with a docstring. If ever someone nonetheless writes a lemma about `Spec(R)` where `R : CommRingCat`, all odds are that it will be innocuous since `.of ↑R = R` definitionally. Alternatively, we could make the `Spec(R)` notation and delaborator automatically detect whether `R : CommRingCat` or not. I would rather postpone this extra complexity until strictly necessary. From Toric ESTIMATED CHANGES Modified Mathlib/AlgebraicGeometry/AffineScheme.lean Modified Mathlib/AlgebraicGeometry/AffineSpace.lean Modified Mathlib/AlgebraicGeometry/Cover/Open.lean Modified Mathlib/AlgebraicGeometry/IdealSheaf/Subscheme.lean Modified Mathlib/AlgebraicGeometry/Limits.lean +/- def AlgebraicGeometry.coprodSpec +/- def AlgebraicGeometry.sigmaSpec Modified Mathlib/AlgebraicGeometry/Modules/Tilde.lean Modified Mathlib/AlgebraicGeometry/Morphisms/ClosedImmersion.lean Modified Mathlib/AlgebraicGeometry/Morphisms/FiniteType.lean Modified Mathlib/AlgebraicGeometry/Morphisms/Proper.lean +/- theorem AlgebraicGeometry.finite_appTop_of_universallyClosed +/- theorem AlgebraicGeometry.isField_of_universallyClosed Modified Mathlib/AlgebraicGeometry/Morphisms/UniversallyClosed.lean Modified Mathlib/AlgebraicGeometry/Noetherian.lean Modified Mathlib/AlgebraicGeometry/OpenImmersion.lean Modified Mathlib/AlgebraicGeometry/PointsPi.lean +/- def AlgebraicGeometry.pointsPi Modified Mathlib/AlgebraicGeometry/ProjectiveSpectrum/Basic.lean +/- def AlgebraicGeometry.Proj.awayι +/- def AlgebraicGeometry.Proj.basicOpenIsoSpec +/- def AlgebraicGeometry.Proj.basicOpenToSpec +/- def AlgebraicGeometry.Proj.toSpecZero Modified Mathlib/AlgebraicGeometry/ProjectiveSpectrum/Proper.lean Modified Mathlib/AlgebraicGeometry/Pullbacks.lean Modified Mathlib/AlgebraicGeometry/ResidueField.lean Modified Mathlib/AlgebraicGeometry/Restrict.lean Modified Mathlib/AlgebraicGeometry/Scheme.lean +/- theorem AlgebraicGeometry.Scheme.default_asIdeal Modified Mathlib/AlgebraicGeometry/Stalk.lean Modified Mathlib/AlgebraicGeometry/ValuativeCriterion.lean 2025-07-23 11:19:16 6d33961 feat(LinearAlgebra/Basis/MulOpposite): basis of an opposite space (#25949) This adds the definition of `Basis.mulOpposite` and shows finite-dimensionality and freeness of `Hᵐᵒᵖ`. For motivation, see #25951. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/LinearAlgebra/Basis/MulOpposite.lean + theorem Basis.mulOpposite_apply + theorem Basis.mulOpposite_repr_eq + theorem Basis.mulOpposite_repr_op + theorem Basis.repr_unop_eq_mulOpposite_repr + theorem MulOpposite.finrank + theorem MulOpposite.rank 2025-07-23 11:06:36 bf0de12 feat: the linear isometry which maps an orthonormal basis to another (#26238) Introduce `OrthonormalBasis.equiv b b' e`, a `LinearIsometryEquiv` which maps the orthonormal basis `b` to the orthonormal basis `b'`, `e` being an equivalence between their index types. This is a convenience wrapper around [Orthonormal.equiv](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Analysis/InnerProductSpace/Orthonormal.html#Orthonormal.equiv). ESTIMATED CHANGES Modified Mathlib/Analysis/InnerProductSpace/PiL2.lean + theorem OrthonormalBasis.coe_equiv_euclideanSpace + theorem OrthonormalBasis.equiv_apply + theorem OrthonormalBasis.equiv_apply_basis + theorem OrthonormalBasis.equiv_apply_euclideanSpace + theorem OrthonormalBasis.equiv_self_rfl + theorem OrthonormalBasis.equiv_symm 2025-07-23 11:06:35 da5d6e7 refactor(CategoryTheory): redefine triangulated subcategories using ObjectProperty (#25931) ESTIMATED CHANGES Modified Mathlib/Algebra/Homology/DerivedCategory/Basic.lean + def HomotopyCategory.subcategoryAcyclic Modified Mathlib/CategoryTheory/ObjectProperty/ContainsZero.lean Modified Mathlib/CategoryTheory/ObjectProperty/Shift.lean + theorem CategoryTheory.ObjectProperty.le_shift + theorem CategoryTheory.ObjectProperty.prop_shift_iff_of_isStableUnderShift Modified Mathlib/CategoryTheory/Triangulated/HomologicalFunctor.lean +/- def CategoryTheory.Functor.homologicalKernel - theorem CategoryTheory.Functor.mem_homologicalKernel_W_iff +/- theorem CategoryTheory.Functor.mem_homologicalKernel_iff + theorem CategoryTheory.Functor.mem_homologicalKernel_trW_iff Modified Mathlib/CategoryTheory/Triangulated/Subcategory.lean + theorem CategoryTheory.ObjectProperty.IsTriangulatedClosed₁.mk' + theorem CategoryTheory.ObjectProperty.IsTriangulatedClosed₂.mk' + theorem CategoryTheory.ObjectProperty.IsTriangulatedClosed₃.mk' + theorem CategoryTheory.ObjectProperty.ext_of_isTriangulatedClosed₁' + theorem CategoryTheory.ObjectProperty.ext_of_isTriangulatedClosed₁ + theorem CategoryTheory.ObjectProperty.ext_of_isTriangulatedClosed₂' + theorem CategoryTheory.ObjectProperty.ext_of_isTriangulatedClosed₂ + theorem CategoryTheory.ObjectProperty.ext_of_isTriangulatedClosed₃' + theorem CategoryTheory.ObjectProperty.ext_of_isTriangulatedClosed₃ + theorem CategoryTheory.ObjectProperty.smul_mem_trW_iff + theorem CategoryTheory.ObjectProperty.trW.mk' + theorem CategoryTheory.ObjectProperty.trW.mk + theorem CategoryTheory.ObjectProperty.trW.shift + theorem CategoryTheory.ObjectProperty.trW.unshift + def CategoryTheory.ObjectProperty.trW + theorem CategoryTheory.ObjectProperty.trW_iff' + theorem CategoryTheory.ObjectProperty.trW_iff + theorem CategoryTheory.ObjectProperty.trW_iff_of_distinguished + theorem CategoryTheory.ObjectProperty.trW_isoClosure + theorem CategoryTheory.ObjectProperty.trW_of_isIso - theorem CategoryTheory.Triangulated.Subcategory.W.mk' - theorem CategoryTheory.Triangulated.Subcategory.W.mk - theorem CategoryTheory.Triangulated.Subcategory.W.shift - theorem CategoryTheory.Triangulated.Subcategory.W.unshift - def CategoryTheory.Triangulated.Subcategory.W - theorem CategoryTheory.Triangulated.Subcategory.W_iff' - theorem CategoryTheory.Triangulated.Subcategory.W_iff - theorem CategoryTheory.Triangulated.Subcategory.W_of_isIso - theorem CategoryTheory.Triangulated.Subcategory.ext₁' - theorem CategoryTheory.Triangulated.Subcategory.ext₁ - theorem CategoryTheory.Triangulated.Subcategory.ext₂ - theorem CategoryTheory.Triangulated.Subcategory.ext₃' - theorem CategoryTheory.Triangulated.Subcategory.ext₃ - def CategoryTheory.Triangulated.Subcategory.isoClosure - theorem CategoryTheory.Triangulated.Subcategory.isoClosure_W - theorem CategoryTheory.Triangulated.Subcategory.mem_W_iff_of_distinguished - def CategoryTheory.Triangulated.Subcategory.mk' - theorem CategoryTheory.Triangulated.Subcategory.smul_mem_W_iff - theorem CategoryTheory.Triangulated.Subcategory.zero - structure CategoryTheory.Triangulated.Subcategory 2025-07-23 10:18:04 9951132 doc: `subtype.mk.injEq` to `Subtype.mk.injEq` (#27377) ESTIMATED CHANGES Modified Mathlib/Data/Subtype.lean 2025-07-23 10:18:03 b40b410 chore: inline `exact` uses into `simp`/`norm_num`/`field_simp` arguments (#27375) ESTIMATED CHANGES Modified Mathlib/Analysis/SpecialFunctions/Integrability/Basic.lean Modified Mathlib/Combinatorics/Additive/AP/Three/Behrend.lean Modified Mathlib/Data/Finsupp/Basic.lean Modified Mathlib/Data/Finsupp/Defs.lean Modified Mathlib/Data/List/Sigma.lean Modified Mathlib/Dynamics/TopologicalEntropy/DynamicalEntourage.lean Modified Mathlib/Geometry/Euclidean/Triangle.lean Modified Mathlib/Geometry/Manifold/Algebra/Monoid.lean Modified Mathlib/LinearAlgebra/Eigenspace/Triangularizable.lean Modified Mathlib/LinearAlgebra/RootSystem/Finite/Lemmas.lean Modified Mathlib/MeasureTheory/Integral/Bochner/Basic.lean Modified Mathlib/MeasureTheory/Measure/GiryMonad.lean Modified Mathlib/MeasureTheory/Measure/LogLikelihoodRatio.lean Modified Mathlib/RingTheory/Ideal/Maps.lean 2025-07-23 10:18:01 917f906 chore(Data/List): golf `Nodup.pairwise_of_forall_ne` (#27371) ESTIMATED CHANGES Modified Mathlib/Data/List/Nodup.lean 2025-07-23 10:17:59 12ba0f1 feat(Order): bicartesian squares in lattices (#26037) This PR introduces the notion of bicartesian square in lattices (and a more general "multicoequalizer" version in complete lattices). In the case of the lattice `Set X`, this will give respectively bicartesian squares (both pushout and pullback) and multicoequalizer diagrams in the category of sets. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Order/CompleteLattice/MulticoequalizerDiagram.lean + def CompleteLattice.MulticoequalizerDiagram.multicofork + def CompleteLattice.MulticoequalizerDiagram.multispanIndex + structure CompleteLattice.MulticoequalizerDiagram + theorem Lattice.BicartSq.commSq + theorem Lattice.BicartSq.le₁₂ + theorem Lattice.BicartSq.le₁₃ + theorem Lattice.BicartSq.le₂₄ + theorem Lattice.BicartSq.le₃₄ + theorem Lattice.BicartSq.multicoequalizerDiagram + structure Lattice.BicartSq 2025-07-23 10:07:10 1711fe0 feat(AlgebraicGeometry): source-local closure of a morphism property (#26723) As a special case, we define local isomorphisms as the source local closure of open immersions. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/AlgebraicGeometry/Morphisms/LocalClosure.lean + theorem AlgebraicGeometry.sourceLocalClosure.iff_forall_exists + theorem AlgebraicGeometry.sourceLocalClosure.le + theorem AlgebraicGeometry.sourceLocalClosure.property_coverMap_comp + def AlgebraicGeometry.sourceLocalClosure Added Mathlib/AlgebraicGeometry/Morphisms/LocalIso.lean + theorem AlgebraicGeometry.IsLocalIso.eq_iInf + theorem AlgebraicGeometry.IsLocalIso.eq_sourceLocalClosure_isOpenImmersion + theorem AlgebraicGeometry.IsLocalIso.le_of_isLocalAtSource 2025-07-23 10:07:09 930ffe6 feat(AlgebraicGeometry): Simple lemma about existence of affine neighbourhoods (#26271) In this PR we make a simple lemma saying there exists an affine open around any point in a scheme. This already exists in the language of open immersions, this just makes the construction of the affine open subset more convenient. ESTIMATED CHANGES Modified Mathlib/AlgebraicGeometry/AffineScheme.lean + theorem AlgebraicGeometry.exists_isAffineOpen_mem_and_subset 2025-07-23 08:49:25 349d104 chore(Algebra/Group/Hom/Instances): tidy and cancellativity (#27318) These can be constructed with less work via the injectivity constructors. This also adds the cancellative instances. ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Hom/Instances.lean +/- theorem MonoidHom.pow_apply + theorem MonoidHom.zpow_apply Modified Mathlib/Algebra/Group/InjSurj.lean 2025-07-23 08:49:24 1e28d51 feat(GroupTheory/SpecificGroups/Alternating/KleinFour): the Klein Four subgroup of alternatingGroup on 4 letters (#27057) Let `α` be a finite type. * `alternatingGroup.center_eq_bot`: when `4 ≤ Nat.card α`, then center of `alternatingGroup α` is trivial. We now assume that `Nat.card α = 4`. * `alternatingGroup.kleinFour` : the subgroup of `alternatingGroup α` generated by permutations of cycle type (2, 2). * `alternatingGroup.kleinFour_isKleinFour`:`alternatingGroup.kleinFour α` satisfies `IsKleinFour`. (When `4 < Nat.card α`, it is equal to `⊤`, when `Nat.card α < 4`, it is trivial.) * `alternatingGroup.two_sylow_eq_kleinFour_of_four`: All `2`-sylow subgroups of `alternatingGroup α` are equal to `kleinFour α`. * `alternatingGroup.characteristic_kleinFour`: the subgroup `alternatingGroup.kleinFour α` is characteristic. * `alternatingGroup.normal_kleinFour`: the subgroup `alternatingGroup.kleinFour α` is normal. * `alternatingGroup.kleinFour_eq_commutator`: the subgroup `alternatingGroup.kleinFour α` is the commutator subgroup of `alternatingGroup α`. (When `4 < Nat.card α`, the commutator subgroup of `alternatingGroup α` is equal to `⊤`; when `Nat.card α < 3`, it is trivial.) ## Remark on implementation We start from `kleinFour α` as given by its definition. We first prove that it is equal to any 2-sylow subgroup: the elements of such a sylow subgroup `S` have order a power of 2, and this implies that their cycle type is () or (2,2). Since there are exactly 4 elements of that cycle type, we conclude that `kleinFour α = S`. Since all 2-sylow subgroups are conjugate, we conclude that there is only one 2-sylow subgroup and that it is normal, and then characteristic. ## TODO : Prove `alternatingGroup.kleinFour α = commutator (alternatingGroup α)` without any assumption on `Nat.card α`. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/GroupTheory/Abelianization.lean + theorem commutator_eq_bot_iff_center_eq_top Modified Mathlib/GroupTheory/SpecificGroups/Alternating.lean + theorem alternatingGroup.center_eq_bot + theorem card_alternatingGroup + theorem nat_card_alternatingGroup + theorem two_mul_nat_card_alternatingGroup Added Mathlib/GroupTheory/SpecificGroups/Alternating/KleinFour.lean + theorem alternatingGroup.card_of_card_eq_four + theorem alternatingGroup.card_two_sylow_of_card_eq_four + theorem alternatingGroup.characteristic_kleinFour + theorem alternatingGroup.coe_kleinFour_of_card_eq_four + theorem alternatingGroup.coe_two_sylow_of_card_eq_four + theorem alternatingGroup.exponent_kleinFour_of_card_eq_four + def alternatingGroup.kleinFour + theorem alternatingGroup.kleinFour_card_of_card_eq_four + theorem alternatingGroup.kleinFour_eq_commutator + theorem alternatingGroup.kleinFour_isKleinFour + theorem alternatingGroup.mem_kleinFour_of_order_two_pow + theorem alternatingGroup.normal_kleinFour + theorem alternatingGroup.subsingleton_two_sylow + theorem alternatingGroup.two_sylow_eq_kleinFour_of_card_eq_four Modified Mathlib/GroupTheory/Sylow.lean + theorem Sylow.normal_of_subsingleton 2025-07-23 08:49:22 134104b feat(CategoryTheory/Abelian/SerreClass): left Bousfield localizations (#26663) If `G : D ⥤ C` is an exact functor between abelian categories, with a fully faithful right adjoint `F`, then `G` identifies `C` to the localization of `D` with respect to the class of morphisms `G.kernel.isoModSerre`, i.e. `D` is the localization of `C` with respect to Serre class `G.kernel` consisting of the objects in `D` that are sent to a zero object by `G`. (We also translate this in terms of a left Bousfield localization.) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Abelian/SerreClass/Bousfield.lean + theorem CategoryTheory.Abelian.isLocalization_isoModSerre_kernel_of_leftAdjoint + theorem CategoryTheory.Abelian.isoModSerre_kernel_eq_inverseImage_isomorphisms + theorem CategoryTheory.Abelian.isoModSerre_kernel_eq_leftBousfield_W_of_rightAdjoint Modified Mathlib/CategoryTheory/Abelian/SerreClass/MorphismProperty.lean + theorem CategoryTheory.ObjectProperty.isoModSerre_isInvertedBy_iff + theorem CategoryTheory.ObjectProperty.le_kernel_of_isoModSerre_isInvertedBy Modified Mathlib/CategoryTheory/ObjectProperty/ContainsZero.lean 2025-07-23 08:37:07 a610975 feat(CategoryTheory): localization of quotient categories (#26972) Under certain circumstances, we show that the localized category of a quotient category identifies to the localization of the original category. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/CategoryTheory/Localization/LocalizerMorphism.lean + def CategoryTheory.LocalizerMorphism.ofEq Modified Mathlib/CategoryTheory/Localization/Predicate.lean + theorem CategoryTheory.AreEqualizedByLocalization.map_eq_of_isInvertedBy Added Mathlib/CategoryTheory/Localization/Quotient.lean + theorem HomRel.FactorsThroughLocalization.isLocalizedEquivalence + def HomRel.FactorsThroughLocalization.strictUniversalPropertyFixedTarget + def HomRel.FactorsThroughLocalization 2025-07-23 08:26:41 4609fd2 feat(NumberTheory/ArithmeticFunction): add `ArithmeticFunction.cardFactors_pow` (#27327) Lemma for counting factors of powers. This was found while doing work for [Project Numina](https://projectnumina.ai/). ESTIMATED CHANGES Modified Mathlib/NumberTheory/ArithmeticFunction.lean + theorem ArithmeticFunction.cardFactors_pow 2025-07-23 07:47:32 98e42c4 feat(Topology/Baire): Second category sets are nonempty (#27347) A set of second category (i.e. non-meagre) is nonempty. ESTIMATED CHANGES Modified Mathlib/Topology/GDelta/Basic.lean + theorem nonempty_of_not_isMeagre 2025-07-23 05:40:40 b0fba2f chore: move some bot output to the 'nightly-testing' stream (#27379) This PR modifies some bots so they post in the public 'nightly-testing` Zulip channel, rather than the private 'mathlib reviewers channel. ESTIMATED CHANGES Modified .github/workflows/daily.yml Modified .github/workflows/update_dependencies_zulip.yml 2025-07-23 04:48:39 3893802 feat(Algebra/Homology): copy left homology data and right homology data (#27344) ESTIMATED CHANGES Modified Mathlib/Algebra/Homology/ShortComplex/LeftHomology.lean + def CategoryTheory.ShortComplex.LeftHomologyData.copy Modified Mathlib/Algebra/Homology/ShortComplex/RightHomology.lean + def CategoryTheory.ShortComplex.RightHomologyData.copy 2025-07-23 02:46:51 dcf402a chore(Algebra): add projection lemmas (#27243) * Add `simp` projections for `Subsemiring.mk` by analogy with the same lemmas for other substructures. * Add `simp` projection for `le` on `PartialOrder.mkOfGroupCone`. Even though `PartialOrder.mkOfGroupCone` is an `abbrev`, the `simp` tactic cannot beta-reduce projections of class instances through `abbrev`s, so this additional `simp` lemma is necessary for the `LE` instance to be unfolded. See the discussion at https://leanprover.zulipchat.com/#narrow/channel/270676-lean4/topic/.60simp.60.20can't.20see.20through.20structure.20abbrevs.3F/with/525227013 ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Group/Cone.lean + theorem PartialOrder.mkOfGroupCone_le_iff Modified Mathlib/Algebra/Order/Ring/Cone.lean + theorem RingCone.coe_set_mk + theorem RingCone.mem_mk Modified Mathlib/Algebra/Ring/Subsemiring/Defs.lean + theorem Subsemiring.coe_set_mk + theorem Subsemiring.mem_mk Modified Mathlib/FieldTheory/Fixed.lean 2025-07-23 01:41:41 2f8dc50 chore: update Cache for compatibility with nightly (#27376) This needs to be merged already on `master`, as our new CI setup uses the `master` branch versions of tools even on `nightly-testing` branches. ESTIMATED CHANGES Modified Cache/IO.lean +/- def Cache.IO.ModuleHashMap.hashes +/- def Cache.IO.cleanCache +/- def Cache.IO.getLocalCacheSet 2025-07-22 23:07:19 4b54a1d feat(NumberTheory/Divisors): add `ne_zero_of_mem_divisors` (#27359) Useful for #27358. This PR adds a direct lemma for the fact that a member of the divisor Finset is nonzero. ESTIMATED CHANGES Modified Mathlib/NumberTheory/Divisors.lean +/- theorem Nat.dvd_of_mem_divisors + theorem Nat.ne_zero_of_mem_divisors 2025-07-22 22:48:52 3e0d705 chore(EllipticCurve): make affine addition computable (#27299) This allows us to compute sums, multiples, and orders of points on an elliptic curve over a field with computable operations. Zulip: https://leanprover.zulipchat.com/#narrow/channel/113488-general/topic/Problems.20with.20elliptic.20curves/near/529910810 ESTIMATED CHANGES Modified Mathlib/AlgebraicGeometry/EllipticCurve/Affine/Formula.lean +/- theorem WeierstrassCurve.Affine.baseChange_slope +/- theorem WeierstrassCurve.Affine.map_slope + def WeierstrassCurve.Affine.slope Modified Mathlib/AlgebraicGeometry/EllipticCurve/Affine/Point.lean +/- theorem WeierstrassCurve.Affine.CoordinateRing.C_addPolynomial_slope +/- theorem WeierstrassCurve.Affine.CoordinateRing.XYIdeal_eq₂ +/- theorem WeierstrassCurve.Affine.CoordinateRing.XYIdeal_mul_XYIdeal +/- theorem WeierstrassCurve.Affine.CoordinateRing.mk_XYIdeal'_mul_mk_XYIdeal' + def WeierstrassCurve.Affine.Point.add +/- theorem WeierstrassCurve.Affine.Point.toClass_injective Modified Mathlib/AlgebraicGeometry/EllipticCurve/Jacobian/Formula.lean +/- theorem WeierstrassCurve.Jacobian.addXYZ_of_Z_ne_zero +/- theorem WeierstrassCurve.Jacobian.addX_of_Z_ne_zero +/- theorem WeierstrassCurve.Jacobian.addY_of_Z_ne_zero +/- theorem WeierstrassCurve.Jacobian.dblXYZ_of_Z_ne_zero +/- theorem WeierstrassCurve.Jacobian.dblX_of_Z_ne_zero +/- theorem WeierstrassCurve.Jacobian.dblY_of_Z_ne_zero +/- theorem WeierstrassCurve.Jacobian.negAddY_of_Z_ne_zero +/- theorem WeierstrassCurve.Jacobian.negDblY_of_Z_ne_zero Modified Mathlib/AlgebraicGeometry/EllipticCurve/Jacobian/Point.lean +/- theorem WeierstrassCurve.Jacobian.Point.toAffineLift_add +/- theorem WeierstrassCurve.Jacobian.Point.toAffine_add +/- theorem WeierstrassCurve.Jacobian.addMap_of_Z_ne_zero +/- theorem WeierstrassCurve.Jacobian.add_of_X_ne +/- theorem WeierstrassCurve.Jacobian.add_of_Y_ne' Modified Mathlib/AlgebraicGeometry/EllipticCurve/Projective/Formula.lean +/- theorem WeierstrassCurve.Projective.addXYZ_of_Z_ne_zero +/- theorem WeierstrassCurve.Projective.addX_of_Z_ne_zero +/- theorem WeierstrassCurve.Projective.addY_of_Z_ne_zero +/- theorem WeierstrassCurve.Projective.dblXYZ_of_Z_ne_zero +/- theorem WeierstrassCurve.Projective.dblX_of_Z_ne_zero +/- theorem WeierstrassCurve.Projective.dblY_of_Z_ne_zero +/- theorem WeierstrassCurve.Projective.negAddY_of_Z_ne_zero +/- theorem WeierstrassCurve.Projective.negDblY_of_Z_ne_zero Modified Mathlib/AlgebraicGeometry/EllipticCurve/Projective/Point.lean +/- theorem WeierstrassCurve.Projective.Point.toAffineLift_add +/- theorem WeierstrassCurve.Projective.Point.toAffine_add +/- theorem WeierstrassCurve.Projective.addMap_of_Z_ne_zero +/- theorem WeierstrassCurve.Projective.add_of_X_ne +/- theorem WeierstrassCurve.Projective.add_of_Y_ne' 2025-07-22 22:48:50 f41e215 feat(MonoidAlgebra): miscellaneous basic lemmas (#27199) From Toric ESTIMATED CHANGES Modified Counterexamples/ZeroDivisorsInAddMonoidAlgebras.lean Modified Mathlib/Algebra/MonoidAlgebra/Defs.lean + theorem AddMonoidAlgebra.coe_add + theorem AddMonoidAlgebra.liftNCRingHom_single + theorem AddMonoidAlgebra.neg_apply + theorem AddMonoidAlgebra.single_neg + theorem AddMonoidAlgebra.smul_apply + theorem MonoidAlgebra.coe_add + theorem MonoidAlgebra.induction_linear + theorem MonoidAlgebra.liftNCRingHom_single + theorem MonoidAlgebra.neg_apply + theorem MonoidAlgebra.single_neg + theorem MonoidAlgebra.smul_apply Modified Mathlib/Algebra/MvPolynomial/Degrees.lean Modified scripts/nolints.json 2025-07-22 22:14:57 8b5f085 chore(Order/Monotone/Basic): rename `Monotone.eq_of_le_of_le` (#27269) `Monotone.eq_of_ge_of_le` follows the new naming convention. Also remove a duplicate of `lt_of_le_of_ne'`. ESTIMATED CHANGES Modified Mathlib/Order/Monotone/Basic.lean + theorem Antitone.eq_of_ge_of_le - theorem Antitone.eq_of_le_of_le + theorem Monotone.eq_of_ge_of_le - theorem Monotone.eq_of_le_of_le Modified Mathlib/SetTheory/Ordinal/FixedPointApproximants.lean Modified Mathlib/Tactic/Linarith/Frontend.lean Modified Mathlib/Tactic/Positivity/Core.lean - theorem Mathlib.Meta.Positivity.lt_of_le_of_ne' 2025-07-22 21:03:07 8a97bd6 feat(Data/SetLike): `@[gcongr]` for `mem_of_le_of_mem` (#27296) ESTIMATED CHANGES Modified Mathlib/Data/SetLike/Basic.lean 2025-07-22 21:03:05 a2ebfe1 chore: use `simp` or `simp_all` instead of `aesop` in Algebra/ (#27266) Motivation: reducing overhead and clarifying intent. ESTIMATED CHANGES Modified Mathlib/Algebra/BigOperators/Finprod.lean Modified Mathlib/Algebra/BigOperators/Group/List/Basic.lean Modified Mathlib/Algebra/DirectSum/Internal.lean Modified Mathlib/Algebra/Group/Pointwise/Finset/Basic.lean +/- theorem Finset.empty_zpow Modified Mathlib/Algebra/GroupWithZero/Associated.lean Modified Mathlib/Algebra/Lie/TraceForm.lean Modified Mathlib/Algebra/Module/CharacterModule.lean Modified Mathlib/Algebra/Module/Submodule/Range.lean Modified Mathlib/Algebra/MvPolynomial/Basic.lean Modified Mathlib/Algebra/Order/Antidiag/Nat.lean Modified Mathlib/Algebra/Order/Antidiag/Pi.lean Modified Mathlib/Algebra/Order/Ring/Star.lean Modified Mathlib/Algebra/Polynomial/Degree/Definitions.lean Modified Mathlib/Algebra/Polynomial/Degree/Lemmas.lean Modified Mathlib/Algebra/Polynomial/Degree/Monomial.lean Modified Mathlib/Algebra/Polynomial/SpecificDegree.lean 2025-07-22 21:03:03 66c10e2 feat: a finite monoid algebra is a finite module (#27194) From Toric ESTIMATED CHANGES Modified Mathlib/RingTheory/Finiteness/Finsupp.lean 2025-07-22 20:14:15 eed082b chore: tidy various files (#27356) ESTIMATED CHANGES Modified Mathlib/Algebra/Category/ModuleCat/FilteredColimits.lean Modified Mathlib/Algebra/Category/MonCat/FilteredColimits.lean Modified Mathlib/Algebra/Exact.lean Modified Mathlib/Algebra/GroupWithZero/Equiv.lean Modified Mathlib/AlgebraicGeometry/ResidueField.lean Modified Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Integral.lean Modified Mathlib/Analysis/Complex/IntegerCompl.lean Modified Mathlib/Analysis/InnerProductSpace/Adjoint.lean Modified Mathlib/Analysis/InnerProductSpace/Laplacian.lean Modified Mathlib/Analysis/InnerProductSpace/Projection.lean Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Cotangent.lean Modified Mathlib/CategoryTheory/Monoidal/Free/Basic.lean Modified Mathlib/Combinatorics/Configuration.lean Modified Mathlib/Combinatorics/SimpleGraph/CompleteMultipartite.lean Modified Mathlib/FieldTheory/Normal/Closure.lean Modified Mathlib/FieldTheory/RatFunc/AsPolynomial.lean +/- theorem Polynomial.valuation_aeval_monomial_eq_valuation_pow Modified Mathlib/Geometry/Euclidean/MongePoint.lean Modified Mathlib/GroupTheory/FreeAbelianGroup.lean Modified Mathlib/LinearAlgebra/Finsupp/LinearCombination.lean Modified Mathlib/LinearAlgebra/Span/Basic.lean Modified Mathlib/Logic/Function/Iterate.lean Modified Mathlib/Order/Fin/Basic.lean Modified Mathlib/RepresentationTheory/Homological/GroupHomology/LowDegree.lean Modified Mathlib/RepresentationTheory/Homological/GroupHomology/Shapiro.lean Modified Mathlib/RepresentationTheory/Induced.lean Modified Mathlib/RingTheory/Filtration.lean 2025-07-22 20:14:13 75b9c0d fix(NonZeroDivisors): swap left and right (#27224) Towards #22997 (see also [zulip](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Issue.3A.20nonZeroDivisors.2C.20regular.20elements.2C.20and.20localization)): + Swap the definitions of `nonZeroDivisorsLeft` and `nonZeroDivisorsRight`, so as to conform to the convention in the literature (see https://en.wikipedia.org/wiki/Zero_divisor) and connects to mathlib's `IsLeftRegular` and `IsRightRegular` respectively without the presence of commutativity hypotheses. + Redefine `nonZeroDivisors` to be the intersection of `nonZeroDivisorsLeft` and `nonZeroDivisorsRight`, in analogy with `IsRegular`. + Swap `Commute.isNilpotent_mul_left/right(_iff)` as the names were also contrary to convention. (If the statements are left unchanged then the proofs need to be changed.) ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Basic.lean Modified Mathlib/Algebra/GroupWithZero/NonZeroDivisors.lean +/- theorem IsUnit.mem_nonZeroDivisors +/- theorem mem_nonZeroDivisorsLeft_iff +/- theorem mem_nonZeroDivisorsRight_iff +/- theorem mem_nonZeroDivisors_iff + theorem mem_nonZeroDivisors_iff_right +/- theorem mem_nonZeroDivisors_of_ne_zero + theorem mul_left_mem_nonZeroDivisorsLeft_eq_zero_iff + theorem mul_right_mem_nonZeroDivisorsRight_eq_zero_iff +/- def nonZeroDivisors +/- theorem nonZeroDivisorsLeft_eq_nonZeroDivisors + theorem nonZeroDivisorsLeft_eq_nonZeroSMulDivisors + theorem nonZeroDivisorsRight_eq_nonZeroDivisors - theorem nonZeroDivisorsRight_eq_nonZeroSMulDivisors - theorem nonZeroSMulDivisors_mulOpposite_eq_op_nonZeroDivisors +/- theorem notMem_nonZeroDivisors_iff + theorem notMem_nonZeroDivisors_iff_right - theorem unop_nonZeroSMulDivisors_mulOpposite_eq_nonZeroDivisors +/- theorem zero_notMem_nonZeroDivisors + theorem zero_notMem_nonZeroDivisorsLeft + theorem zero_notMem_nonZeroDivisorsRight Modified Mathlib/Algebra/Lie/Weights/Killing.lean Modified Mathlib/Algebra/Polynomial/AlgebraMap.lean Modified Mathlib/Algebra/Polynomial/Module/FiniteDimensional.lean Modified Mathlib/Algebra/Ring/NonZeroDivisors.lean + theorem IsLeftRegular.isUnit_of_finite + theorem IsLeftRegular.mem_nonZeroDivisorsLeft + theorem IsRightRegular.isUnit_of_finite + theorem IsRightRegular.mem_nonZeroDivisorsRight + theorem isLeftRegular_iff_mem_nonZeroDivisorsLeft - theorem isLeftRegular_iff_mem_nonZeroDivisorsRight + theorem isRegular_iff_isUnit_of_finite + theorem isRegular_iff_mem_nonZeroDivisors - theorem isRightRegular_iff_mem_nonZeroDivisorsLeft + theorem isRightRegular_iff_mem_nonZeroDivisorsRight + theorem le_nonZeroDivisorsLeft_iff_isLeftRegular + theorem le_nonZeroDivisorsRight_iff_isRightRegular +/- theorem le_nonZeroDivisors_iff_isRegular - theorem le_nonZeroDivisors_iff_isRightRegular + theorem mul_cancel_left_mem_nonZeroDivisorsLeft +/- theorem mul_cancel_right_mem_nonZeroDivisors + theorem mul_cancel_right_mem_nonZeroDivisorsRight Modified Mathlib/Dynamics/Newton.lean Modified Mathlib/FieldTheory/Laurent.lean Modified Mathlib/LinearAlgebra/Dimension/Torsion/Basic.lean Modified Mathlib/LinearAlgebra/Trace.lean Modified Mathlib/NumberTheory/ClassNumber/Finite.lean Modified Mathlib/NumberTheory/LegendreSymbol/AddCharacter.lean Modified Mathlib/RingTheory/Algebraic/Basic.lean Modified Mathlib/RingTheory/ClassGroup.lean Modified Mathlib/RingTheory/Ideal/MinimalPrime/Localization.lean Modified Mathlib/RingTheory/Ideal/Operations.lean Modified Mathlib/RingTheory/Localization/Cardinality.lean Modified Mathlib/RingTheory/Localization/Defs.lean Modified Mathlib/RingTheory/Localization/LocalizationLocalization.lean Modified Mathlib/RingTheory/MvPowerSeries/NoZeroDivisors.lean + theorem MvPowerSeries.mem_nonZeroDivisorsLeft_of_constantCoeff + theorem MvPowerSeries.mem_nonZeroDivisorsRight_of_constantCoeff + theorem MvPowerSeries.monomial_mem_nonzeroDivisorsLeft + theorem MvPowerSeries.monomial_mem_nonzeroDivisorsRight Modified Mathlib/RingTheory/Nilpotent/Basic.lean Modified Mathlib/RingTheory/Nilpotent/Defs.lean +/- theorem Commute.isNilpotent_mul_left +/- theorem Commute.isNilpotent_mul_right Modified Mathlib/RingTheory/Norm/Transitivity.lean Modified Mathlib/RingTheory/OreLocalization/Cardinality.lean +/- theorem OreLocalization.cardinalMk Modified Mathlib/RingTheory/OreLocalization/Ring.lean + theorem OreLocalization.nontrivial_of_nonZeroDivisorsLeft + theorem OreLocalization.nontrivial_of_nonZeroDivisorsRight +/- theorem OreLocalization.numeratorHom_inj Modified Mathlib/RingTheory/Polynomial/Nilpotent.lean Modified Mathlib/RingTheory/Polynomial/ScaleRoots.lean Modified Mathlib/RingTheory/PowerSeries/Substitution.lean Modified Mathlib/Topology/Sheaves/CommRingCat.lean 2025-07-22 18:56:35 0a5645c chore(*): go through adaptation notes for lean4#6024 (#27348) We have some adaptation notes referring to [lean4#6024](https://github.com/leanprover/lean4/pull/6024), which changed elaboration subtly; some tricky unifications no longer get solved. I checked every reference to make sure that these still apply. We don't expect that this change gets reverted, so we can turn the remaining adaptation notes into regular comments. ESTIMATED CHANGES Modified Mathlib/Algebra/Category/Ring/Epi.lean Modified Mathlib/Algebra/Lie/Semisimple/Basic.lean Modified Mathlib/Analysis/Calculus/FDeriv/Bilinear.lean Modified Mathlib/Analysis/Calculus/FDeriv/Mul.lean Modified Mathlib/Analysis/Complex/UpperHalfPlane/Metric.lean Modified Mathlib/Analysis/InnerProductSpace/Calculus.lean Modified Mathlib/Analysis/Normed/Operator/BoundedLinearMaps.lean Modified Mathlib/Analysis/SpecialFunctions/Pow/Deriv.lean Modified Mathlib/Data/DFinsupp/Sigma.lean Modified Mathlib/Geometry/Manifold/MFDeriv/NormedSpace.lean Modified Mathlib/Geometry/Manifold/Sheaf/LocallyRingedSpace.lean Modified Mathlib/MeasureTheory/Group/Measure.lean Modified Mathlib/NumberTheory/LSeries/Nonvanishing.lean Modified Mathlib/NumberTheory/ModularForms/JacobiTheta/TwoVariable.lean Modified Mathlib/RingTheory/Jacobson/Ring.lean 2025-07-22 18:56:33 40e0ba3 feat: `@[gcongr]` for `insert`/`erase` (#27295) Also golf some proofs using these new tags. This also required tagging `adjoin.mono`. ESTIMATED CHANGES Modified Archive/Imo/Imo2019Q2.lean Modified Mathlib/Data/Finset/Basic.lean Modified Mathlib/Data/Finset/Erase.lean Modified Mathlib/Data/Matroid/Circuit.lean Modified Mathlib/Data/Set/Insert.lean Modified Mathlib/FieldTheory/IntermediateField/Adjoin/Defs.lean Modified Mathlib/LinearAlgebra/AffineSpace/FiniteDimensional.lean Modified Mathlib/Topology/Algebra/Support.lean 2025-07-22 18:47:22 f5fe4ed feat(ModelTheory): the language of Presburger Arithmetic (#27099) This PR introduces the first-order language of [Presburger Arithmetic](https://en.wikipedia.org/wiki/Presburger_arithmetic). It has not defined the theory of Presburger Arithmetic yet (left as TODO), but is enough to prove some definability results (#27100). ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/ModelTheory/Arithmetic/Presburger/Basic.lean + theorem FirstOrder.Language.presburger.funMap_add + theorem FirstOrder.Language.presburger.funMap_one + theorem FirstOrder.Language.presburger.funMap_zero + theorem FirstOrder.Language.presburger.natCast_succ + theorem FirstOrder.Language.presburger.natCast_zero + theorem FirstOrder.Language.presburger.realize_add + theorem FirstOrder.Language.presburger.realize_natCast + theorem FirstOrder.Language.presburger.realize_nsmul + theorem FirstOrder.Language.presburger.realize_one + theorem FirstOrder.Language.presburger.realize_sum + theorem FirstOrder.Language.presburger.realize_zero + theorem FirstOrder.Language.presburger.succ_nsmul + theorem FirstOrder.Language.presburger.zero_nsmul + def FirstOrder.Language.presburger + inductive FirstOrder.presburgerFunc 2025-07-22 18:37:43 3bfbd0e feat: sum of a locally finite collection of C^n sections is C^n (#27349) This can be used to golf #26875 (and is nice API anyway). As such, it is necessary to prove the existence of a Riemannian metric (hence of a Levi-Civita connection). One could say it's on the path towards the Levi-Civita connection. ESTIMATED CHANGES Modified Mathlib/Geometry/Manifold/VectorBundle/SmoothSection.lean +/- theorem ContMDiff.sum_section + theorem ContMDiff.sum_section_of_locallyFinite +/- theorem ContMDiffAt.sum_section + theorem ContMDiffAt.sum_section_of_locallyFinite +/- theorem ContMDiffOn.smul_section_of_tsupport +/- theorem ContMDiffOn.sum_section + theorem ContMDiffOn.sum_section_of_locallyFinite +/- theorem ContMDiffWithinAt.sum_section + theorem ContMDiffWithinAt.sum_section_of_locallyFinite 2025-07-22 17:58:38 5fe840b chore(*): review the nolints for `unusedVariables` (#27350) This was initially intended to review adaptation notes for lean4#5338, but it turns out a lot of previous unused variables lints are already silent. So we can remove a lot of them. ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/NonUnitalHom.lean Modified Mathlib/Algebra/DualNumber.lean +/- theorem DualNumber.lift_apply_inl +/- theorem DualNumber.lift_comp_inlHom +/- theorem DualNumber.lift_op_smul +/- theorem DualNumber.lift_smul Modified Mathlib/Algebra/Group/Submonoid/Pointwise.lean Modified Mathlib/Algebra/Module/Equiv/Defs.lean Modified Mathlib/AlgebraicGeometry/StructureSheaf.lean Modified Mathlib/Data/FP/Basic.lean Modified Mathlib/Data/List/Cycle.lean Modified Mathlib/Data/Nat/Log.lean Modified Mathlib/GroupTheory/FreeGroup/NielsenSchreier.lean Modified Mathlib/GroupTheory/GroupAction/Hom.lean Modified Mathlib/NumberTheory/Cyclotomic/Rat.lean Modified Mathlib/Order/Interval/Finset/Basic.lean Modified Mathlib/RingTheory/LocalRing/ResidueField/Basic.lean Modified Mathlib/RingTheory/Regular/RegularSequence.lean Modified Mathlib/SetTheory/Ordinal/Notation.lean Modified Mathlib/Tactic/Explode.lean Modified Mathlib/Tactic/Order/CollectFacts.lean Modified Mathlib/Topology/ApproximateUnit.lean Modified Mathlib/Topology/Compactness/CompactlyGeneratedSpace.lean 2025-07-22 17:27:17 3d51c1a feat(Nat/Factorization): generalize non-zero factorization of minFac (#27329) Generalizes `factorization_minFac_ne_zero` and moves it to a better home. This was found while doing work for [Project Numina](https://projectnumina.ai/). ESTIMATED CHANGES Modified Mathlib/Data/Nat/Factorization/Defs.lean + theorem Nat.factorization_minFac_ne_zero Modified Mathlib/Data/Nat/Factorization/PrimePow.lean 2025-07-22 17:16:16 a38761a feat(MvPolynomial/Funext): generalize (#27328) Instead of requiring the polynomials agree everywhere, it suffices to require them agree on a box with infinite sides. Live coding at Formalizing Class Field Theory, in preparation for the normal basis theorem, where the box consists of all points with coordinates in an infinite subring. ESTIMATED CHANGES Modified Mathlib/Algebra/MvPolynomial/Funext.lean +/- theorem MvPolynomial.funext + theorem MvPolynomial.funext_set + theorem MvPolynomial.funext_set_iff 2025-07-22 10:46:44 ffe8eee feat(RingTheory): principal ideal product rings (#27236) ESTIMATED CHANGES Modified Mathlib/RingTheory/PrincipalIdealDomain.lean + theorem isPrincipalIdealRing_prod_iff 2025-07-22 07:13:10 f1a92a3 Feat(CategoryTheory): terminal categories with an application to hoFunctor (#25781) Some preliminary API around terminal categories is developed with an application for the infinity-cosmos project: proving that the homotopy category functor preserves terminal objects. We also include proofs that `[0]` is terminal in the simplex category and `Δ[0]` is the terminal simplicial set. Co-authored by [Robin Carlier](robin.carlier@ens-lyon.fr), [Jakob von Raumer](https://github.com/javra), [Adam Topaz](topaz@ualberta.ca), and [Zeyi Zhao](zzhao95@jh.edu). ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/AlgebraicTopology/SimplexCategory/Basic.lean + def SimplexCategory.isTerminalZero + theorem SimplexCategory.toCat.obj_eq_Fin Modified Mathlib/AlgebraicTopology/SimplicialSet/HomotopyCat.lean + def SSet.isTerminalHoFunctorDeltaZero Modified Mathlib/AlgebraicTopology/SimplicialSet/Monoidal.lean + theorem SSet.stdSimplex.ext₀ + def SSet.stdSimplex.isTerminalObj₀ Added Mathlib/CategoryTheory/Category/Cat/Terminal.lean + def CategoryTheory.Cat.isTerminalDiscretePUnit + def CategoryTheory.Cat.isTerminalOfUniqueOfIsDiscrete + def CategoryTheory.Cat.isoDiscretePUnitOfIsTerminal Modified Mathlib/CategoryTheory/Category/ReflQuiv.lean + theorem CategoryTheory.Cat.FreeRefl.quotientFunctor_map_id Modified Mathlib/CategoryTheory/EssentiallySmall.lean Modified Mathlib/CategoryTheory/Quotient.lean 2025-07-22 06:11:01 08c479e refactor: move `AddGroupWithOne` instances to the `Ring` subfolder (#27319) There seems to be a convention here that the `Algebra/Group` folder should not contain things about `AddMonoidWithOne`, `AddCommMonoidWithOne`, `AddGroupWithOne`, and `AddCommGroupWithOne`, as these is more `Ring`-like, and cannot be additivized. I renamed the variables to `R` and `S` to match the destination files, but everything else is copied directly. Without this change, we're inconsistent and random `assert_not_exists` tests fail when trying to move content around within `Algebra/Group`. ESTIMATED CHANGES Modified Mathlib/Algebra/CharP/Basic.lean Modified Mathlib/Algebra/CharP/Defs.lean Modified Mathlib/Algebra/Group/InjSurj.lean Modified Mathlib/Algebra/Group/Opposite.lean - theorem MulOpposite.op_intCast - theorem MulOpposite.op_natCast - theorem MulOpposite.op_ofNat - theorem MulOpposite.unop_intCast - theorem MulOpposite.unop_natCast - theorem MulOpposite.unop_ofNat Modified Mathlib/Algebra/Group/Prod.lean Modified Mathlib/Algebra/Group/Subgroup/Defs.lean Modified Mathlib/Algebra/Group/ULift.lean - theorem ULift.down_intCast - theorem ULift.down_natCast - theorem ULift.down_ofNat - theorem ULift.up_intCast - theorem ULift.up_natCast - theorem ULift.up_ofNat Modified Mathlib/Algebra/NoZeroSMulDivisors/Defs.lean Modified Mathlib/Algebra/Order/Interval/Set/Group.lean Modified Mathlib/Algebra/README.md Modified Mathlib/Algebra/Ring/InjSurj.lean Modified Mathlib/Algebra/Ring/Opposite.lean + theorem MulOpposite.op_intCast + theorem MulOpposite.op_natCast + theorem MulOpposite.op_ofNat + theorem MulOpposite.unop_intCast + theorem MulOpposite.unop_natCast + theorem MulOpposite.unop_ofNat Modified Mathlib/Algebra/Ring/ULift.lean + theorem ULift.down_intCast + theorem ULift.down_natCast + theorem ULift.down_ofNat + theorem ULift.up_intCast + theorem ULift.up_natCast + theorem ULift.up_ofNat Modified Mathlib/Combinatorics/SimpleGraph/DeleteEdges.lean Modified Mathlib/Data/DFinsupp/Defs.lean Modified Mathlib/Data/Int/Cast/Prod.lean Modified Mathlib/Data/Matrix/Diagonal.lean Modified Mathlib/Data/Nat/Cast/Prod.lean Modified Mathlib/GroupTheory/Congruence/Defs.lean Modified Mathlib/GroupTheory/OreLocalization/Basic.lean Modified Mathlib/Order/Filter/Germ/Basic.lean Modified Mathlib/SetTheory/PGame/Algebra.lean 2025-07-22 01:30:47 5eb29c4 chore(List/TakeWhile): golf and move `dropWhile_eq_self_iff` (#27326) Adds a lemma about dropWhile length, allowing `dropWhile_eq_self_iff` to be reproved and moved to a more appropriate file. This lemma was found while doing work for [Project Numina](https://projectnumina.ai/). ESTIMATED CHANGES Modified Mathlib/Data/List/DropRight.lean - theorem List.dropWhile_eq_self_iff Modified Mathlib/Data/List/TakeWhile.lean + theorem List.dropWhile_eq_self_iff + theorem List.length_dropWhile_le 2025-07-21 19:41:01 bfeab81 feat(Data/Nat/Digits): add `digits_length_le_iff` (#27322) Adds two lemmas related to the length of the list of digits of a number. These lemmas were found while doing work for [Project Numina](https://projectnumina.ai/). ESTIMATED CHANGES Modified Mathlib/Data/Nat/Digits/Lemmas.lean + theorem Nat.digits_length_le_iff + theorem Nat.lt_digits_length_iff 2025-07-21 19:28:24 8a8c0c1 feat: API for `Minpoly.toAdjoin` and friends (#27278) * Replace `simps!` invocations on `AdjoinRoot.Minpoly.toAdjoin` and `minpoly.equivAdjoin` with principled API * Create API for `AlgEquiv.adjoinSingletonEquivAdjoinRootMinpoly` The auto-generated `simps!` lemmas unfolded the expressions too far for `simp` to be able to continue simplifying them. A good example of the difference is the proof of `Minpoly.toAdjoin.apply_X`. ESTIMATED CHANGES Modified Mathlib/FieldTheory/Minpoly/IsIntegrallyClosed.lean + theorem minpoly.coe_equivAdjoin + theorem minpoly.equivAdjoin_toAlgHom Modified Mathlib/RingTheory/Adjoin/Field.lean + theorem AlgEquiv.adjoinSingletonEquivAdjoinRootMinpoly_symm_toAlgHom + theorem AlgEquiv.coe_adjoinSingletonEquivAdjoinRootMinpoly_symm Modified Mathlib/RingTheory/AdjoinRoot.lean + theorem AdjoinRoot.Minpoly.coe_toAdjoin + theorem AdjoinRoot.Minpoly.coe_toAdjoin_mk_X - theorem AdjoinRoot.Minpoly.toAdjoin.apply_X - theorem AdjoinRoot.Minpoly.toAdjoin_apply' 2025-07-21 14:45:26 8b7e6c1 feat(Topology/Completion): coe_inj and simp lemmas for coe zero and one (#27249) ESTIMATED CHANGES Modified Mathlib/Topology/Algebra/GroupCompletion.lean + theorem UniformSpace.Completion.coe_eq_zero_iff Modified Mathlib/Topology/Algebra/UniformRing.lean + theorem UniformSpace.Completion.coe_eq_one_iff Modified Mathlib/Topology/UniformSpace/Completion.lean + theorem UniformSpace.Completion.coe_inj 2025-07-21 14:23:55 b6e1a5c feat: define Riemannian manifolds (#27250) We introduce typeclasses to deal with Riemannian manifolds: * In a fiber bundle whose fibers are already endowed with an inner product space structure, `[IsContinuousRiemannianBundle F E]` registers the fact the inner product depends continuously on the base point. This is a Prop-valued class, on top of existing data `[∀ x, NormedAddCommGroup (E x)]` `[∀ x, InnerProductSpace ℝ (E x)]`. * We also register `[IsContMDiffRiemannianBundle n IB F E]` similarly. * There is an issue when the fibers already have a topological structure (for instance the tangent spaces), because adding an assumption `[∀ x, NormedAddCommGroup (TangentSpace I x)]` would create a diamond. Instead, we introduce another typeclass `[RiemannianBundle E]` containing the data of an inner product space on the fibers, compatible with the preexisting topology. From this class, we register instances of inner product space structures on the fibers, whose topology is defeq to the original one. * We make sure that registering concrete instances of `[RiemannianBundle E]` registers automatically `[IsContinuousRiemannianBundle F E]` and/or `[IsContMDiffRiemannianBundle n IB F E]` in terms of the regularity of the metric. * Under the assumptions `[RiemannianBundle (fun (b : M) -> TangentSpace I b)]` and `[EMetricSpace M]`, we register a Prop-valued typeclass `[IsRiemannianManifold I M]` registering the fact that the edist coincides with the infimum of the lengths of paths, measured using the normed space structure in the tangent spaces. With this design, one can develop the general theory of Riemannian bundles and Riemannian manifolds, and also define concrete instances. When working with a generic Riemannian manifold, the typeclasses will include (in addition to the usual one for manifolds, replacing the topological space one with an emetric space one) the assumptions `[RiemannianBundle (fun (b : M) -> TangentSpace I b)]` `[IsContinuousRiemannianBundle E (fun (b : M) -> TangentSpace I b)]` `[IsContMDiffRiemannianBundle n I E (fun (b : M) -> TangentSpace I b)]`. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Geometry/Manifold/ContMDiff/NormedSpace.lean Added Mathlib/Geometry/Manifold/Riemannian/Basic.lean + def EmetricSpace.ofRiemannianMetric + def PseudoEmetricSpace.ofRiemannianMetric + theorem enorm_tangentSpace_vectorSpace + theorem eventually_enorm_mfderivWithin_symm_extChartAt_lt + theorem eventually_enorm_mfderiv_extChartAt_lt + theorem eventually_norm_mfderivWithin_symm_extChartAt_comp_lt + theorem eventually_norm_mfderivWithin_symm_extChartAt_lt + theorem eventually_norm_mfderiv_extChartAt_lt + theorem eventually_riemannianEDist_le_edist_extChartAt + theorem eventually_riemmanianEDist_lt + theorem lintegral_fderiv_lineMap_eq_edist + theorem nnnorm_tangentSpace_vectorSpace + theorem norm_tangentSpace_vectorSpace + def normedAddCommGroupTangentSpaceVectorSpace + def normedSpaceTangentSpaceVectorSpace + theorem setOf_riemmanianEDist_lt_subset_nhds' + theorem setOf_riemmanianEDist_lt_subset_nhds Modified Mathlib/Topology/Order/IntermediateValue.lean + theorem IsClosed.Icc_subset_of_forall_mem_nhdsGT_of_Icc_subset 2025-07-21 09:49:53 ded3e1d feat(CategoryTheory/Action/Limits): `F.mapAction G` preserves (co)limits (#27132) Prove that `F.mapAction G : Action V G ⥤ Action W G` preserves (co)limits of some shape/size/etc if `F` preserves the same (co)limits and `V` has these (co)limits. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Action/Limits.lean 2025-07-21 05:17:14 ee554b1 feat(Algebra/AlgHom): `Unique` if target is `Subsingleton` (#24379) ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/Equiv.lean + theorem AlgEquiv.default_apply Modified Mathlib/Algebra/Algebra/Hom.lean + theorem AlgHom.default_apply 2025-07-20 20:20:58 82ecf95 feat(Tactic/Simproc/Divisors): add `simproc`s to compute the divisors of a natural number. (#27101) This PR continues the work from #23026. Original PR: https://github.com/leanprover-community/mathlib4/pull/23026 ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Tactic.lean Added Mathlib/Tactic/Simproc/Divisors.lean Added MathlibTest/Simproc/Divisors.lean 2025-07-20 12:35:53 75d6f9e feat: missing definitional lemmas for the braiding on `Mon_ C` (#27060) From Toric ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Monoidal/Mon_.lean + theorem CategoryTheory.Equivalence.Mon_.braiding_hom_hom + theorem CategoryTheory.Equivalence.Mon_.braiding_inv_hom 2025-07-20 00:32:24 e6edd78 chore: remove 2 `erw` (#27300) ESTIMATED CHANGES Modified Mathlib/Geometry/RingedSpace/PresheafedSpace/Gluing.lean 2025-07-20 00:32:22 55478ce feat(Algebra/Group/Submonoid/Pointwise): relate submonoid supremum to pointwise product (#27276) Add a lemma relating the supremum of two submonoids and their pointwise product ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Submonoid/Pointwise.lean + theorem Submonoid.coe_sup 2025-07-19 23:40:47 db3aaa3 chore(Algebra/Ring/SumsOfSquares): add missing `simp` lemmas (#27281) * Add `simp` lemmas that `0` and `1` are sums of squares ESTIMATED CHANGES Modified Mathlib/Algebra/Ring/SumsOfSquares.lean + theorem IsSumSq.one 2025-07-19 23:40:45 e9b079d chore(Algebra/Ring/Subsemiring/Order): add missing projection (#27275) Add standard `simp` projection `Subsemiring.mem_nonneg` ESTIMATED CHANGES Modified Mathlib/Algebra/Ring/Subsemiring/Order.lean + theorem Subsemiring.mem_nonneg +/- def Subsemiring.nonneg 2025-07-19 23:40:44 79a0992 feat(Logic/Relation): add Trans instances for Relation.ReflTransGen (#27240) This PR adds `Trans` instances for `Relation.ReflTransGen`, with the benefit of allowing switching back and forth between single and multiple applications a relation in a `calc` block. ESTIMATED CHANGES Modified Mathlib/Logic/Relation.lean 2025-07-19 23:40:42 05f5869 refactor(SetTheory/Ordinal/Arithmetic): redefine subtraction (#26889) We redefine ordinal subtraction so as to make `add_sub_cancel_of_le` an immediate corollary. This allows us to give a much simpler proof for `add_le_iff_of_isSuccLimit`. ESTIMATED CHANGES Modified Mathlib/SetTheory/Ordinal/Arithmetic.lean +/- theorem Ordinal.add_le_iff_of_isSuccLimit - theorem Ordinal.add_le_of_forall_add_lt +/- theorem Ordinal.add_sub_cancel +/- theorem Ordinal.le_add_sub + theorem Ordinal.lt_add_iff_of_isSuccLimit +/- theorem Ordinal.sub_le Modified Mathlib/SetTheory/Ordinal/Family.lean - theorem Ordinal.lt_add_of_limit 2025-07-19 23:06:52 6ba5988 feat: remove unnecessary typeclass argument to Finset.prod lemmas for CanonicallyOrderedMul (#27294) ESTIMATED CHANGES Modified Mathlib/Algebra/Order/BigOperators/Group/Finset.lean Modified Mathlib/Data/Finsupp/Weight.lean Modified Mathlib/Topology/Algebra/InfiniteSum/Order.lean +/- theorem hasProd_of_isLUB 2025-07-19 22:57:20 5d382e7 fix(RepresentationTheory/Homological/GroupHomology/*): remove unused `DecidableEq` arguments (#27298) Mirrors #26352. A proof in `groupHomology.inhomogeneousChains` should use `classical` rather than a `DecidableEq` assumption, and this allows us to remove other `DecidableEq`s too. ESTIMATED CHANGES Modified Mathlib/RepresentationTheory/Homological/GroupHomology/Basic.lean +/- def groupHomology.inhomogeneousChainsIso +/- def groupHomologyIso +/- def groupHomologyIsoTor Modified Mathlib/RepresentationTheory/Homological/GroupHomology/Functoriality.lean +/- theorem groupHomology.cyclesMap_comp +/- theorem groupHomology.map_comp Modified Mathlib/RepresentationTheory/Homological/GroupHomology/LowDegree.lean +/- theorem groupHomology.d₂₁_apply_mem_cycles₁ +/- theorem groupHomology.d₃₂_apply_mem_cycles₂ +/- theorem groupHomology.isBoundary₀_of_mem_coinvariantsKer 2025-07-19 20:47:56 947a81b fix(scripts/create-adaption-pr.sh): fetch `master` if necessary (#27293) Makes sure that `master` is available, in particular when the remote has been automatically added. ESTIMATED CHANGES Modified scripts/create-adaptation-pr.sh 2025-07-19 18:49:12 40256ad feat: decomposition into independent atoms (#21871) Prove that any element in a compactly generated modular atomistic lattice (eg the lattice of submodules of a module) can be written as the supremum of independent atoms. We already knew that `⊤` could be decomposed as such, and all this PR is doing is generalising a few intermediate statements. From PersistentDecomp and Xena ESTIMATED CHANGES Modified Mathlib/NumberTheory/NumberField/Ideal/KummerDedekind.lean Modified Mathlib/Order/Atoms.lean +/- theorem IsAtom.disjoint_of_ne +/- theorem IsAtom.inf_eq_bot_iff +/- theorem IsAtom.inf_eq_bot_of_ne + theorem IsAtom.ne_bot + theorem IsAtom.ne_bot_iff_eq + theorem IsAtom.ne_iff_eq_bot + theorem IsAtom.not_disjoint_iff_le + theorem IsAtom.not_le_iff_disjoint +/- theorem IsCoatom.codisjoint_of_ne + theorem IsCoatom.ne_iff_eq_top + theorem IsCoatom.ne_top + theorem IsCoatom.ne_top_iff_eq + theorem IsCoatom.not_codisjoint_iff_le + theorem IsCoatom.not_le_iff_codisjoint +/- theorem IsCoatom.sup_eq_top_iff +/- theorem IsCoatom.sup_eq_top_of_ne - theorem atom_le_iSup - theorem iInf_le_coatom Modified Mathlib/Order/BooleanAlgebra/Set.lean + theorem Set.insert_diff_subset Modified Mathlib/Order/CompactlyGenerated/Basic.lean + theorem exists_sSupIndep_disjoint_sSup_atoms + theorem exists_sSupIndep_of_sSup_atoms +/- theorem exists_sSupIndep_of_sSup_atoms_eq_top 2025-07-19 18:17:50 12c8654 feat(Order/Filter/Map): add `frequently_bind` (#27221) ESTIMATED CHANGES Modified Mathlib/Order/Filter/Map.lean + theorem Filter.frequently_bind 2025-07-19 16:12:35 6d2458e feat: `CanLift` instance from `ConvexCone` to `ProperCone` (#26150) For this, move `ConvexCone.pointed_of_nonempty_of_mem` earlier and rename it to `ConvexCone.Pointed.of_nonempty_of_mem`. From Toric ESTIMATED CHANGES Modified Mathlib/Analysis/Convex/Cone/Basic.lean + theorem ConvexCone.Pointed.of_nonempty_of_isClosed Modified Mathlib/Analysis/Convex/Cone/InnerDual.lean - theorem ConvexCone.pointed_of_nonempty_of_isClosed 2025-07-19 15:53:33 4fba5e6 feat: `Over.map` of an iso is an equivalence (#27139) From Toric ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Comma/Over/Basic.lean +/- def CategoryTheory.Over.mapIso +/- theorem CategoryTheory.Over.mapIso_functor +/- theorem CategoryTheory.Over.mapIso_inverse +/- def CategoryTheory.Under.mapIso +/- theorem CategoryTheory.Under.mapIso_functor +/- theorem CategoryTheory.Under.mapIso_inverse 2025-07-19 09:00:47 5bcec20 feat(Tactic/Algebraize): add warning message when unable to find constant with provided name (#26659) As evidenced by the discussion on #26635 and the follow-up #26657, it is easy to overlook a typo when names cannot be elaborated at the point of writing them, and there is no error or warning message when the elaboration *is* attempted later. This PR remedies the second part of that issue as it pertains to the `algebraize` tactic and attribute, by logging a warning when the `algebraize` tactic is unable to find a constant associated to a name it is provided in its tags (or, when lacking such, that it generates). See the new test for an example of the warning it produces. ESTIMATED CHANGES Modified Mathlib/Tactic/Algebraize.lean Modified MathlibTest/algebraize.lean 2025-07-19 08:49:55 a94e6eb chore(Probability): golf `iIndepFun_iff_measure_inter_preimage_eq_mul` and `crossing_pos_eq` (#27280) ESTIMATED CHANGES Modified Mathlib/Probability/Independence/Kernel.lean Modified Mathlib/Probability/Martingale/Upcrossing.lean 2025-07-19 08:16:32 bbb982a fix(Tactic/Algebraize): adapt application filter to `RingHom.toModule` (#26740) If the result of a lemma tagged with `algebraize` uses `RingHom.toModule`, the tactic didn't detect the relevant ringhom, and was unable to filter irrelevant hypotheses. For example: ```lean-4 import Mathlib.Tactic.Algebraize set_option tactic.hygienic false class Module.TestProperty5 (A M : Type*) [Semiring A] [AddCommMonoid M] [Module A M] : Prop where out : ∀ x : A, ∀ M : M, x • M = 0 @[algebraize Module.TestProperty5] def RingHom.TestProperty5 {A B : Type*} [CommRing A] [CommRing B] (f : A →+* B) : Prop := @Module.TestProperty5 A B _ _ f.toModule example (A B : Type*) [CommRing A] [CommRing B] (f g : A →+* B) (hf : f.TestProperty5) (hg : g.TestProperty5) : True := by algebraize [f] guard_hyp algebraizeInst : @Module.TestProperty5 A B _ _ f.toModule fail_if_success guard_hyp algebraizeInst_1 : @Module.TestProperty5 A B _ _ g.toModule -- this is irrelevant to `f`, so should not be created. trivial ``` ESTIMATED CHANGES Modified Mathlib/Tactic/Algebraize.lean Modified MathlibTest/algebraize.lean + def RingHom.TestProperty5 2025-07-19 05:00:06 ad760a3 fix(Tactic/Algebraize): tactic is unable to see through assigned metavariables (#26736) The `algebraize` tactic had a bug which made it unable to find tagged properties when the type of a local hypothesis is (under the hood) an assigned metavariable. (bug found by @chrisflav and @erdOne) For example: ```lean-4 import Mathlib lemma smooth_def {R S : Type u} [CommRing R] [CommRing S] {f :R →+* S} : f.Smooth ↔ f.FormallySmooth ∧ f.FinitePresentation := by constructor · intro hf algebraize [f] sorry -- no hypothesis `Algebra.Smooth ...`, despite `hf : f.Smooth` being in context. sorry ``` This PR fixes the bug by calling `instantiateMVars` on the type before figuring out the head symbol. ESTIMATED CHANGES Modified Mathlib/Tactic/Algebraize.lean Modified MathlibTest/algebraize.lean 2025-07-19 04:00:32 775b8cc feat(Topology/Algebra/ContinuousAffineMap): define `id` (#27259) This is was some missing API ESTIMATED CHANGES Modified Mathlib/Topology/Algebra/ContinuousAffineMap.lean +/- theorem ContinuousAffineMap.coe_comp +/- theorem ContinuousAffineMap.coe_const + theorem ContinuousAffineMap.coe_id +/- theorem ContinuousAffineMap.comp_apply + theorem ContinuousAffineMap.comp_id + def ContinuousAffineMap.id + theorem ContinuousAffineMap.id_comp 2025-07-19 04:00:30 8cd71be feat: `Inhabited (Fin n ↪o ℕ)` instance (#27211) ESTIMATED CHANGES Modified Mathlib/Order/Fin/Basic.lean 2025-07-19 04:00:29 58a7c6f feat(Analysis/InnerProductSpace/Positive): add theorem `LinearMap.IsPositive.adjoint_eq` (#27195) ESTIMATED CHANGES Modified Mathlib/Analysis/InnerProductSpace/Positive.lean + theorem LinearMap.IsPositive.adjoint_eq 2025-07-19 04:00:27 6f8fe08 feat(Analysis/Convex/Intrinsic): intrinsic closure is convex (#27173) ESTIMATED CHANGES Modified Mathlib/Analysis/Convex/Intrinsic.lean + theorem intrinsicClosure_eq_closure_inter_affineSpan 2025-07-19 04:00:26 31fb86b feat: lexicographic order on intervals (#27147) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Order/Interval/Basic.lean + theorem NonemptyInterval.toDualProd_mono + theorem NonemptyInterval.toDualProd_strictMono Added Mathlib/Order/Interval/Lex.lean + theorem NonemptyInterval.toLex_le_toLex + theorem NonemptyInterval.toLex_lt_toLex + theorem NonemptyInterval.toLex_mono + theorem NonemptyInterval.toLex_strictMono 2025-07-19 04:00:24 6aa7f2e feat(LinearAlgebra): lemmas about LinearPMap.sSup domain (#27054) Two small lemmas so one doesn't need to unfold the definition ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/LinearPMap.lean + theorem LinearPMap.domain_sSup + theorem LinearPMap.mem_domain_sSup_iff 2025-07-19 04:00:23 1a3a906 feat(LinearAlgebra/AffineSpace/Midpoint) add midpoint_vsub_midpoint_same_left (#26779) Add two theorems - `midpoint_vsub_midpoint_same_left` - `midpoint_vsub_midpoint_same_right` ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/AffineSpace/Midpoint.lean + theorem midpoint_vsub_midpoint_same_left + theorem midpoint_vsub_midpoint_same_right 2025-07-19 04:00:21 59d8ae4 feat(Algebra): add Aesop automation around `Even` / `IsSquare` (#26177) * Add `aesop` attributes to enable automation for goals of the form `Even x`, `IsSquare x` and `IsSumSq x` * Add test examples * Replace some existing proofs with `by aesop` The automation follows the principles of #25961 (see the file Mathlib/Tactic/SetLike.lean for documentation). ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Even.lean +/- theorem Even.isSquare_pow +/- theorem IsSquare.mul +/- theorem IsSquare.mul_self +/- theorem IsSquare.pow +/- theorem IsSquare.zpow Modified Mathlib/Algebra/Ring/SumsOfSquares.lean +/- theorem IsSquare.isSumSq + theorem IsSumSq.sum_sq 2025-07-19 04:00:20 261ed06 feat: add new `simp` lemmas (#26175) Split from #25961 so that performance issues can be investigated. ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/NonUnitalSubalgebra.lean Modified Mathlib/Algebra/Algebra/Subalgebra/Basic.lean Modified Mathlib/Algebra/Field/Subfield/Defs.lean Modified Mathlib/Algebra/Group/Subgroup/Basic.lean Modified Mathlib/Algebra/Group/Subgroup/Lattice.lean Modified Mathlib/Algebra/Group/Submonoid/Defs.lean Modified Mathlib/Algebra/Group/Submonoid/Pointwise.lean Modified Mathlib/Algebra/Lie/Subalgebra.lean Modified Mathlib/Algebra/Lie/Submodule.lean Modified Mathlib/Algebra/Module/Bimodule.lean Modified Mathlib/Algebra/Module/Submodule/Defs.lean Modified Mathlib/Algebra/Order/Ring/Cone.lean Modified Mathlib/Algebra/Order/Star/Basic.lean Modified Mathlib/Algebra/Ring/Subring/Basic.lean Modified Mathlib/Algebra/Ring/Subring/Defs.lean Modified Mathlib/Algebra/Ring/Subsemiring/Defs.lean Modified Mathlib/Algebra/Star/NonUnitalSubalgebra.lean Modified Mathlib/Algebra/Star/Subalgebra.lean Modified Mathlib/Analysis/Normed/Group/Quotient.lean Modified Mathlib/FieldTheory/IntermediateField/Basic.lean +/- theorem IntermediateField.natCast_mem Modified Mathlib/GroupTheory/Nilpotent.lean Modified Mathlib/LinearAlgebra/RootSystem/WeylGroup.lean Modified Mathlib/LinearAlgebra/Span/Defs.lean Modified Mathlib/NumberTheory/KummerDedekind.lean Modified Mathlib/RingTheory/DedekindDomain/AdicValuation.lean Modified Mathlib/RingTheory/DedekindDomain/Different.lean Modified Mathlib/RingTheory/EssentialFiniteness.lean Modified Mathlib/RingTheory/GradedAlgebra/HomogeneousLocalization.lean Modified Mathlib/RingTheory/NonUnitalSubring/Basic.lean Modified Mathlib/RingTheory/TwoSidedIdeal/Basic.lean Modified Mathlib/Topology/Algebra/Algebra.lean Modified Mathlib/Topology/Algebra/InfiniteSum/Nonarchimedean.lean Modified Mathlib/Topology/Algebra/NonUnitalAlgebra.lean Modified Mathlib/Topology/Algebra/NonUnitalStarAlgebra.lean Modified Mathlib/Topology/Algebra/StarSubalgebra.lean Modified Mathlib/Topology/Category/Profinite/Nobeling/Basic.lean 2025-07-19 03:45:15 26141f5 feat(Geometry/Euclidean/Congurence): add triangle congruence (#26758) Add triangle congruence theorems. [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Geometry/Euclidean/Congruence.lean + theorem EuclideanGeometry.angle_angle_side + theorem EuclideanGeometry.angle_eq_of_congruent + theorem EuclideanGeometry.angle_side_angle + theorem EuclideanGeometry.side_angle_side + theorem EuclideanGeometry.side_side_side + theorem EuclideanGeometry.triangle_congruent_iff_dist_eq 2025-07-19 01:40:24 17ef218 feat: coercing to an `AlgHom` then `RingHom` (#27205) From Toric ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/Hom.lean + theorem AlgHomClass.toRingHom_toAlgHom Modified Mathlib/Topology/Algebra/Algebra.lean +/- theorem Subalgebra.coe_valA 2025-07-18 23:34:56 0bab082 feat(Algebra): MulOpposite lemmas (#27263) Also add more lemmas towards #27241: + generalize `(Add)MonoidAlgebra.opRingEquiv` to weaker typeclass assumptions. + add `UniqueMul/Add.mono`. + add stability of some typeclasses under `MulEquiv`s. ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Opposite.lean Modified Mathlib/Algebra/Group/UniqueProds/Basic.lean + theorem UniqueMul.mono Modified Mathlib/Algebra/GroupWithZero/Opposite.lean + theorem MulOpposite.isCancelMulZero_iff + theorem MulOpposite.isLeftCancelMulZero_iff + theorem MulOpposite.isRightCancelMulZero_iff Modified Mathlib/Algebra/MonoidAlgebra/Defs.lean +/- theorem AddMonoidAlgebra.opRingEquiv_single +/- theorem AddMonoidAlgebra.opRingEquiv_symm_single +/- theorem MonoidAlgebra.opRingEquiv_single +/- theorem MonoidAlgebra.opRingEquiv_symm_single Modified Mathlib/Algebra/Opposites.lean Modified Mathlib/Algebra/Ring/Equiv.lean + theorem MulEquiv.isCancelMulZero_iff + theorem MulEquiv.isDomain_iff + theorem MulEquiv.isLeftCancelMulZero_iff + theorem MulEquiv.isRightCancelMulZero_iff + theorem MulEquiv.noZeroDivisors_iff 2025-07-18 23:04:23 f1fa812 chore: generalize `tendstoInMeasure_of_ne_top` (#27251) It did not need to assume `PseudoMetricSpace E`. From the Brownian motion project. ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Function/ConvergenceInMeasure.lean +/- theorem MeasureTheory.tendstoInMeasure_of_ne_top 2025-07-18 21:15:41 9bfb3dc feat(Logic/Equiv/Set): `Equiv.monotone_image` etc (#27170) ESTIMATED CHANGES Modified Mathlib/Logic/Equiv/Set.lean + theorem Equiv.image_antitone + theorem Equiv.image_monotone + theorem Equiv.image_strictAnti + theorem Equiv.image_strictMono 2025-07-18 19:34:57 4784b20 doc(Data/Stream/Defs): add docstrings (#27051) Split off of #25917, adds docstrings to this file. Note: this documentation was written by asking Cursor (Claude 3.5 sonnet) to write the docstrings. ESTIMATED CHANGES Modified Mathlib/Data/Stream/Defs.lean 2025-07-18 19:25:52 b0005ac chore(Order/Concept): golf ext(') (#27186) Light golfs on `ext` and `ext'` for Concept. ESTIMATED CHANGES Modified Mathlib/Order/Concept.lean 2025-07-18 19:02:40 482f41b doc (CategoryTheory/Functor/KanExtension/Basic): swap arrow direction in docstring typo (#27256) Fixed the arrow direction in the docstrings for `RightExtension` and `LeftExtension`, which were were not correct. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Functor/KanExtension/Basic.lean 2025-07-18 18:16:03 9b441f8 feat: improve quality of proofs generated by `congr(...)`, add caching, add support for overapplied functions (#25851) This PR makes the following improvements to the `congr(...)` term elaborator: - It now uses `congr`/`congrFun` as much as possible instead of creating giant HEq-based congruence proofs. - It now looks for common prefixes for applications, to skip unnecessary work proving that these parts of an application are equal. - Intermediate results are cached. - Overapplied functions are now supported. An overapplied function is a function with more arguments than the arity of the function itself. For example, in `id id 2` the first `id is overapplied. The return type is conditionally a pi type depending on the values of the arguments. Fixes Jz Pan's issue reported [on Zulip](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Strange.20error.20on.20.60congr.60.20macro/near/523998660). Modifies a couple uses of `congr(...)` in `SimplicialSet.NerveAdjunction` to take more advantage of it. ESTIMATED CHANGES Modified Mathlib/AlgebraicTopology/SimplicialSet/NerveAdjunction.lean Modified Mathlib/Tactic/TermCongr.lean Modified MathlibTest/TermCongr.lean + def Tests.Overapplied.T1 + def Tests.Overapplied.T2 2025-07-18 15:19:10 0a5b3b8 feat: iteratedDerivWithin version of zpow lemmas (#27209) We add some more API for iteratedDerivWithin, specifically for zpow and linear functions. This will be used for q-expansion of Eisenstein series. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Analysis/Calculus/Deriv/ZPow.lean + theorem iter_deriv_inv_linear + theorem iter_deriv_inv_linear_sub Modified Mathlib/Analysis/Calculus/IteratedDeriv/Defs.lean + theorem iteratedDerivWithin_congr_right_of_isOpen + theorem iteratedDerivWithin_of_isOpen + theorem iteratedDerivWithin_of_isOpen_eq_iterate Added Mathlib/Analysis/Calculus/IteratedDeriv/WithinZpow.lean + theorem iteratedDerivWithin_one_div + theorem iteratedDerivWithin_zpow 2025-07-18 14:32:45 b90b8b4 fix(RefinedDiscrTree): remove funny `transparency` handling (#26531) This PR fixes some funny behaviour of `RefinedDiscrTree` discovered at #26484. This PR aligns the behaviour with Lean core's `DiscrTree`. The original reason for this special treatment was to avoid a mathlib breakage. But now it turns out that this special trearment also causes a mathlib breakage (but this one is harder to fix). The breakage that was the original reason for this behaviour is easily fixed using a `dsimp`. #26484 depends on this PR ESTIMATED CHANGES Modified Mathlib/Lean/Meta/RefinedDiscrTree/Basic.lean Modified Mathlib/Lean/Meta/RefinedDiscrTree/Encode.lean Modified Mathlib/Probability/ProductMeasure.lean 2025-07-18 13:22:56 171b569 feat: limits of ENNReal exponentiation (#27239) Prove lemmas about limits in `ENNReal` and use them to prove that `fun x => b ^ x` tends to +infinity when x goes to +infinity if `1 < b`, and similarly for ±infinity and according to whether `1 < b` or `b < 1`. ESTIMATED CHANGES Modified Mathlib/Analysis/SpecialFunctions/Log/ENNRealLogExp.lean + theorem ENNReal.tendsto_rpow_atBot_of_base_lt_one + theorem ENNReal.tendsto_rpow_atBot_of_one_lt_base + theorem ENNReal.tendsto_rpow_atTop_of_base_lt_one + theorem ENNReal.tendsto_rpow_atTop_of_one_lt_base + theorem EReal.ENNReal.rpow_eq_exp_mul_log + theorem EReal.tendsto_exp_nhds_bot_nhds_zero + theorem EReal.tendsto_exp_nhds_top_nhds_top + theorem EReal.tendsto_exp_nhds_zero_nhds_one Modified Mathlib/Topology/Instances/EReal/Lemmas.lean + theorem EReal.tendsto_coe_atBot + theorem EReal.tendsto_coe_atTop + theorem EReal.tendsto_coe_nhds_bot_iff + theorem EReal.tendsto_coe_nhds_top_iff 2025-07-18 11:35:09 26133a6 feat: Finset.sum_pos_iff (#27161) ESTIMATED CHANGES Modified Mathlib/Algebra/Order/BigOperators/Group/Finset.lean + theorem Finset.one_lt_prod_iff + theorem Finset.one_lt_prod_iff_of_one_le + theorem Finset.prod_lt_one_iff_of_le_one 2025-07-18 08:44:07 0a7d163 chore(RingTheory/Valuation/ValuativeRel): add unexpander for relation notation (#27167) ESTIMATED CHANGES Modified Mathlib/RingTheory/Valuation/ValuativeRel.lean 2025-07-18 08:44:05 88b155d feat: fderiv lemmas for `pow` (#24351) This generalizes the lemmas about `fderiv fun x => f x ^ n` to work over arbitrary normed modules and (noncommutative) algebras. Following the convention set by the lemmas about `fderiv` and `*`, we use `'`d names for the non-commutative variants. The naming is still a little confusing around derivatives (see [#mathlib4 > deriv neg lemmas @ 💬](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/deriv.20neg.20lemmas/near/514357126)), but having these results with _some_ names is better than not having them at all. Moves: - `deriv_fun_pow''` -> `deriv_fun_pow` - `deriv_pow''` -> `deriv_pow` - `deriv_pow` -> `deriv_pow_field` - `derivWithin_pow'` -> `derivWithin_pow_field` Deletions: - `deriv_pow'` ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Analysis/Calculus/Deriv/Polynomial.lean Modified Mathlib/Analysis/Calculus/Deriv/Pow.lean + theorem HasDerivAt.fun_pow' +/- theorem HasDerivAt.fun_pow + theorem HasDerivAt.pow' +/- theorem HasDerivAt.pow - theorem HasDerivWithinAt.fun_pow - theorem HasDerivWithinAt.pow +/- theorem derivWithin_fun_pow' + theorem derivWithin_fun_pow +/- theorem derivWithin_pow' +/- theorem derivWithin_pow + theorem derivWithin_pow_field +/- theorem deriv_fun_pow'' + theorem deriv_fun_pow' + theorem deriv_fun_pow +/- theorem deriv_pow'' +/- theorem deriv_pow' +/- theorem deriv_pow + theorem deriv_pow_field - theorem differentiableAt_pow - theorem differentiableOn_pow - theorem differentiableWithinAt_pow - theorem differentiable_pow +/- theorem hasDerivWithinAt_pow +/- theorem hasStrictDerivAt_pow Modified Mathlib/Analysis/Calculus/FDeriv/Mul.lean - theorem Differentiable.fun_pow - theorem Differentiable.pow - theorem DifferentiableAt.fun_pow - theorem DifferentiableAt.pow - theorem DifferentiableOn.fun_pow - theorem DifferentiableOn.pow - theorem DifferentiableWithinAt.fun_pow - theorem DifferentiableWithinAt.pow Added Mathlib/Analysis/Calculus/FDeriv/Pow.lean + theorem Differentiable.fun_pow + theorem Differentiable.pow + theorem DifferentiableAt.fun_pow + theorem DifferentiableAt.pow + theorem DifferentiableOn.fun_pow + theorem DifferentiableOn.pow + theorem DifferentiableWithinAt.fun_pow + theorem DifferentiableWithinAt.pow + theorem HasFDerivAt.fun_pow' + theorem HasFDerivAt.pow' + theorem HasFDerivAt.pow + theorem HasFDerivWithinAt.fun_pow' + theorem HasFDerivWithinAt.pow' + theorem HasFDerivWithinAt.pow + theorem HasStrictFDerivAt.fun_pow' + theorem HasStrictFDerivAt.pow' + theorem HasStrictFDerivAt.pow + theorem differentiableAt_pow + theorem differentiableOn_pow + theorem differentiableWithinAt_pow + theorem differentiable_pow + theorem fderivWithin_fun_pow' + theorem fderivWithin_fun_pow + theorem fderivWithin_pow' + theorem fderivWithin_pow + theorem fderivWithin_pow_ring' + theorem fderivWithin_pow_ring + theorem fderiv_fun_pow' + theorem fderiv_fun_pow + theorem fderiv_pow' + theorem fderiv_pow + theorem fderiv_pow_ring' + theorem fderiv_pow_ring + theorem hasFDerivAt_pow' + theorem hasFDerivAt_pow + theorem hasFDerivWithinAt_pow' + theorem hasFDerivWithinAt_pow + theorem hasStrictFDerivAt_pow' + theorem hasStrictFDerivAt_pow Modified Mathlib/Analysis/Calculus/Taylor.lean Modified Mathlib/Analysis/Convex/SpecificFunctions/Deriv.lean Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Cotangent.lean Modified Mathlib/NumberTheory/ModularForms/JacobiTheta/TwoVariable.lean Modified Mathlib/Probability/Distributions/Gaussian/Real.lean 2025-07-18 08:35:15 b0c2d40 feat(Topology/Order/HullKernel): Add the Hull-Kernel Topology (#26336) Let `α` be a `CompleteLattice` and let `T` be a subset of `α`. The relative `Topology.lower` on `T` takes on a particularly simple form when every element of `T` is `InfPrime` in `α`. In this case, the relative-open sets are exactly the sets of the form `T ↓∩ (Ici a)ᶜ` for some `a` in `α`. The pair of maps `S → ⨅ S` and `a → T ↓∩ Ici a` are often referred to as the kernel and the hull. They form an antitone Galois connection between the subsets of `T` and `α`. When `α` can be generated from `T` by taking infs, this becomes a Galois insertion and the topological closure coincides with the closure arising from the Galois insertion. For this reason the relative lower topology on `T` is often referred to as the "hull-kernel topology". The names "Jacobson topology" and "structure topology" also occur in the literature. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Topology/Order/HullKernel.lean + def PrimitiveSpectrum.OrderGenerates + theorem PrimitiveSpectrum.closedsGC_closureOperator + theorem PrimitiveSpectrum.gc + theorem PrimitiveSpectrum.gc_closureOperator + def PrimitiveSpectrum.gi + theorem PrimitiveSpectrum.hull_finsetInf + theorem PrimitiveSpectrum.hull_iSup + theorem PrimitiveSpectrum.hull_inf + theorem PrimitiveSpectrum.hull_kernel_of_isClosed + theorem PrimitiveSpectrum.hull_sSup + theorem PrimitiveSpectrum.isClosed_iff + theorem PrimitiveSpectrum.isOpen_iff + theorem PrimitiveSpectrum.isTopologicalBasis_relativeLower + theorem PrimitiveSpectrum.kernel_hull + theorem PrimitiveSpectrum.preimage_upperClosure_compl_finset Modified docs/references.bib 2025-07-18 03:46:53 ec6d176 feat(Order/Hom/Basic): `denselyOrdered_iff_of_strictAnti` (#27171) A helper lemma, in the style of `denselyOrdered_iff_of_orderIsoClass` but slightly weaker (needs LinearOrder), but works to transport across order-dual types like WithBot (X^od) to WithBot X ESTIMATED CHANGES Modified Mathlib/Order/Hom/Basic.lean + theorem denselyOrdered_iff_of_strictAnti 2025-07-18 03:25:20 8a9dc18 chore(Algebra): remove noncomputable from liftBaseChangeEquiv (#27158) ESTIMATED CHANGES Modified Mathlib/RingTheory/TensorProduct/Basic.lean 2025-07-17 19:03:18 bc70da8 doc(Order/Filter/Map) (#27227) add some missing namespaces in the docstring of `Filter.kernMap`, and complete a sentence. (I do not understand why `Filter.cocompact` does not work.) ESTIMATED CHANGES Modified Mathlib/Order/Filter/Map.lean 2025-07-17 18:28:50 5e820da feat: add root system induction principle equivalent to connectedness of Dynkin diagram (#26965) The headline result is `RootPairing.Base.induction_on_cartanMatrix`. In order to prove this we add a second induction principle for root system bases `RootPairing.Base.induction_reflect`. This is essentially equivalent to the fact that the Weyl group is generated by simple reflections. This is almost the first time `RootPairing.Base` has been used in a non-trivial way and as a result some further development of its API was necessary. In particular: * We systematically change pattern `∑ j, f j • P.root j` to `∑ j ∈ b.support, f j • P.root j` (removing various issues assocated with `Fintype ι`). * We introduce a new definition `RootPairing.Base.height` and use it to redefine `RootPairing.Base.IsPos` ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/RootSystem/Base.lean + theorem RootPairing.Base.IsPos.add_zsmul +/- theorem RootPairing.Base.IsPos.exists_mem_support_pos_pairingIn - theorem RootPairing.Base.IsPos.induction_on + theorem RootPairing.Base.IsPos.induction_on_add + theorem RootPairing.Base.IsPos.induction_on_reflect + theorem RootPairing.Base.IsPos.neg_iff_not + theorem RootPairing.Base.IsPos.or_neg + theorem RootPairing.Base.IsPos.reflectionPerm +/- theorem RootPairing.Base.IsPos.sub +/- def RootPairing.Base.IsPos +/- theorem RootPairing.Base.eq_one_or_neg_one_of_mem_support_of_smul_mem - theorem RootPairing.Base.exists_coroot_eq_sum_int +/- theorem RootPairing.Base.exists_root_eq_sum_int + theorem RootPairing.Base.forall_mem_support_invtSubmodule_iff + def RootPairing.Base.height + theorem RootPairing.Base.height_add + theorem RootPairing.Base.height_add_zsmul + theorem RootPairing.Base.height_eq_sum + theorem RootPairing.Base.height_ne_zero + theorem RootPairing.Base.height_one_of_mem_support + theorem RootPairing.Base.height_reflectionPerm_self + theorem RootPairing.Base.height_sub + theorem RootPairing.Base.induction_add + theorem RootPairing.Base.induction_reflect + theorem RootPairing.Base.isPos_iff' + theorem RootPairing.Base.isPos_iff + theorem RootPairing.Base.isPos_of_mem_support + theorem RootPairing.Base.not_nonneg_iff_neg_of_sum_mem_range_root + theorem RootPairing.Base.not_nonpos_iff_pos_of_sum_mem_range_root +/- theorem RootPairing.Base.pairingIn_le_zero_of_ne - theorem RootPairing.Base.pos_of_sum_smul_sub_mem_range_root +/- theorem RootPairing.Base.pos_or_neg_of_sum_smul_root_mem +/- theorem RootPairing.Base.sub_notMem_range_coroot +/- theorem RootPairing.Base.sub_notMem_range_root Modified Mathlib/LinearAlgebra/RootSystem/CartanMatrix.lean +/- theorem RootPairing.Base.abs_cartanMatrix_apply +/- theorem RootPairing.Base.cartanMatrix_apply_eq_zero_iff + theorem RootPairing.Base.cartanMatrix_apply_eq_zero_iff_pairing + theorem RootPairing.Base.cartanMatrix_apply_eq_zero_iff_symm +/- theorem RootPairing.Base.cartanMatrix_eq_neg_chainTopCoeff +/- theorem RootPairing.Base.cartanMatrix_le_zero_of_ne +/- theorem RootPairing.Base.cartanMatrix_map_abs +/- theorem RootPairing.Base.cartanMatrix_mem_of_ne +/- theorem RootPairing.Base.cartanMatrix_nondegenerate + theorem RootPairing.Base.induction_on_cartanMatrix Modified Mathlib/LinearAlgebra/RootSystem/Defs.lean + theorem RootPairing.reflection_reflectionPerm Modified Mathlib/LinearAlgebra/RootSystem/IsValuedIn.lean + theorem RootPairing.reflection_apply_root' 2025-07-17 18:20:05 28548ec style(Tactic/CC): space after colon (#27234) ESTIMATED CHANGES Modified Mathlib/Tactic/CC.lean 2025-07-17 17:33:37 ed84d14 feat: length of a path in a manifold (#26778) Consider a manifold in which the tangent spaces have an enormed structure. Then one defines `pathELength γ a b` as the length of the path `γ : ℝ → M` between `a` and `b`, i.e., the integral of the norm of its manifold derivative. We develop a reasonable API around this notion We also define `riemannianEDist x y` as the infimum of the length of paths from `x` to `y`. We show that it is symmetric and satisfies the triangle inequality. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Analysis/Normed/MulAction.lean +/- theorem enorm_smul Modified Mathlib/Dynamics/Ergodic/MeasurePreserving.lean + theorem MeasureTheory.measurePreserving_subtype_coe Modified Mathlib/Geometry/Manifold/ContMDiff/Basic.lean + theorem ContMDiff.piecewise + theorem ContMDiff.piecewise_Iic Added Mathlib/Geometry/Manifold/Riemannian/PathELength.lean + theorem Manifold.exists_lt_locally_constant_of_riemannianEDist_lt + theorem Manifold.exists_lt_of_riemannianEDist_lt + theorem Manifold.lintegral_norm_mfderiv_Icc_eq_pathELength_projIcc + theorem Manifold.pathELength_add + theorem Manifold.pathELength_comp_of_antitoneOn + theorem Manifold.pathELength_comp_of_monotoneOn + theorem Manifold.pathELength_congr + theorem Manifold.pathELength_congr_Ioo + theorem Manifold.pathELength_eq_lintegral_mfderivWithin_Icc + theorem Manifold.pathELength_eq_lintegral_mfderiv_Icc + theorem Manifold.pathELength_eq_lintegral_mfderiv_Ioo + theorem Manifold.pathELength_mono + theorem Manifold.pathELength_self + theorem Manifold.riemannianEDist_comm + theorem Manifold.riemannianEDist_le_pathELength + theorem Manifold.riemannianEDist_self + theorem Manifold.riemannianEDist_triangle 2025-07-17 15:48:22 5bc0c3f chore: golf Geometry/ using `grind` (#26697) ESTIMATED CHANGES Modified Mathlib/Geometry/Euclidean/Sphere/Tangent.lean 2025-07-17 12:48:31 989945a feat: `Algebra.linearMap R R = .id` (#27204) From Toric ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/Defs.lean + theorem Algebra.algebraMap_self + theorem Algebra.algebraMap_self_apply + theorem Algebra.linearMap_self Modified Mathlib/Algebra/Algebra/Hom.lean + theorem Algebra.ofId_self Modified Mathlib/Algebra/Algebra/Spectrum/Basic.lean Modified Mathlib/Algebra/Algebra/Subalgebra/Basic.lean Modified Mathlib/Algebra/Algebra/Subalgebra/Lattice.lean Modified Mathlib/Algebra/FreeAlgebra.lean Modified Mathlib/Algebra/Lie/CartanExists.lean Modified Mathlib/Algebra/Module/LinearMap/Polynomial.lean Modified Mathlib/Algebra/Polynomial/Roots.lean Modified Mathlib/Algebra/Polynomial/Splits.lean Modified Mathlib/Analysis/RCLike/Basic.lean Modified Mathlib/Data/Matrix/DualNumber.lean Modified Mathlib/FieldTheory/AlgebraicClosure.lean Modified Mathlib/FieldTheory/Normal/Defs.lean Modified Mathlib/FieldTheory/SeparableDegree.lean Modified Mathlib/LinearAlgebra/Matrix/ToLin.lean Modified Mathlib/LinearAlgebra/RootSystem/Finite/CanonicalBilinear.lean Modified Mathlib/NumberTheory/Bernoulli.lean Modified Mathlib/RingTheory/Algebraic/LinearIndependent.lean Modified Mathlib/RingTheory/Extension/Generators.lean Modified Mathlib/RingTheory/Extension/Presentation/Basic.lean Modified Mathlib/RingTheory/Kaehler/JacobiZariski.lean Modified Mathlib/RingTheory/Localization/BaseChange.lean Modified Mathlib/RingTheory/MatrixPolynomialAlgebra.lean Modified Mathlib/RingTheory/Norm/Basic.lean Modified Mathlib/RingTheory/PowerSeries/WeierstrassPreparation.lean Modified Mathlib/RingTheory/Smooth/Kaehler.lean Modified Mathlib/RingTheory/Spectrum/Prime/Polynomial.lean Modified Mathlib/RingTheory/SurjectiveOnStalks.lean Modified Mathlib/RingTheory/Trace/Basic.lean Modified Mathlib/RingTheory/Valuation/Extension.lean Modified Mathlib/Topology/Algebra/Module/CharacterSpace.lean Modified Mathlib/Topology/Algebra/Nonarchimedean/AdicTopology.lean Modified Mathlib/Topology/ContinuousMap/Units.lean 2025-07-17 11:36:49 ad4d953 feat(ENNReal/Lemmas): limsup/liminf of `f + g` when either `f` or `g` tends to zero (#27115) ESTIMATED CHANGES Modified Mathlib/Topology/Instances/ENNReal/Lemmas.lean + theorem ENNReal.liminf_add_of_left_tendsto_zero + theorem ENNReal.liminf_add_of_right_tendsto_zero + theorem ENNReal.limsup_add_of_left_tendsto_zero + theorem ENNReal.limsup_add_of_right_tendsto_zero Modified scripts/noshake.json 2025-07-17 10:56:07 8aa325f chore(Tactic/Lift): combine `elab_rules` (#27223) This code can use the `$[ ]?` matcher to avoid having to handle each case separately. The logic here is still pretty bizarre, but fixing it is a task for a future CL. ESTIMATED CHANGES Modified Mathlib/Tactic/Lift.lean 2025-07-17 07:42:34 9a0e50a feat(Finsupp): `single a (m₁ + m₂) b = single a m₁ b + single a m₂ b` (#27191) From Toric ESTIMATED CHANGES Modified Mathlib/Data/Finsupp/Single.lean + theorem Finsupp.single_add_apply 2025-07-16 23:30:45 c728e64 feat(VectorBundle/MDifferentiable): differentiability results for coordChange (#26866) These follow readily from their ContMDiff counterparts. From the path towards geodesics and the Levi-Civita connection. ESTIMATED CHANGES Modified Mathlib/Geometry/Manifold/VectorBundle/MDifferentiable.lean + theorem mdifferentiableAt_coordChangeL + theorem mdifferentiableOn_coordChangeL + theorem mdifferentiableOn_symm_coordChangeL 2025-07-16 22:52:23 3805342 feat(LinearAlgebra/AffineSpace/Independent): interior lies in affine span (#26823) Add lemmas that the `interior` of a simplex lies in the `closedInterior`, which lies in the affine span of its vertices. ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/AffineSpace/Independent.lean + theorem Affine.Simplex.closedInterior_subset_affineSpan + theorem Affine.Simplex.interior_subset_closedInterior 2025-07-16 20:44:23 cc10a0a chore(Bernoulli): remove use of `WellFounded.fix` (#27222) The preferred method is to use well-founded recursion. I'm not sure why there's a bare `WellFounded.fix` there. ESTIMATED CHANGES Modified Mathlib/NumberTheory/Bernoulli.lean +/- def bernoulli' 2025-07-16 20:44:21 f2ef6e5 chore: tidy various files (#27220) ESTIMATED CHANGES Modified Archive/Imo/Imo2024Q3.lean Modified Mathlib/Algebra/CharP/Defs.lean Modified Mathlib/Algebra/Group/Subgroup/Defs.lean Modified Mathlib/Algebra/GroupWithZero/Range.lean +/- theorem MonoidWithZeroHom.coe_one Modified Mathlib/Algebra/Order/BigOperators/Group/Finset.lean Modified Mathlib/AlgebraicGeometry/Morphisms/QuasiCompact.lean Modified Mathlib/AlgebraicGeometry/Morphisms/QuasiSeparated.lean Modified Mathlib/AlgebraicTopology/CechNerve.lean Modified Mathlib/Analysis/Calculus/DerivativeTest.lean Modified Mathlib/Analysis/Calculus/VectorField.lean Modified Mathlib/Analysis/FunctionalSpaces/SobolevInequality.lean Modified Mathlib/Analysis/InnerProductSpace/Laplacian.lean Modified Mathlib/Analysis/InnerProductSpace/PiL2.lean Modified Mathlib/Analysis/RCLike/Basic.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Pullback/Categorical/Basic.lean Modified Mathlib/Data/Finsupp/Option.lean Modified Mathlib/Data/List/Cycle.lean Modified Mathlib/Data/Nat/Digits/Defs.lean Modified Mathlib/Data/Nat/Prime/Defs.lean Modified Mathlib/Data/Rat/Cast/Defs.lean Modified Mathlib/Geometry/Manifold/IsManifold/Basic.lean Modified Mathlib/Geometry/Manifold/VectorBundle/Tangent.lean Modified Mathlib/GroupTheory/GroupAction/MultiplePrimitivity.lean Modified Mathlib/GroupTheory/Perm/Cycle/Factors.lean Modified Mathlib/GroupTheory/Perm/Sign.lean Modified Mathlib/LinearAlgebra/Eigenspace/Pi.lean Modified Mathlib/LinearAlgebra/FiniteDimensional/Lemmas.lean Modified Mathlib/MeasureTheory/Constructions/BorelSpace/Order.lean Modified Mathlib/MeasureTheory/Function/ConditionalExpectation/Unique.lean Modified Mathlib/ModelTheory/ElementaryMaps.lean Modified Mathlib/NumberTheory/Zsqrtd/QuadraticReciprocity.lean Modified Mathlib/Order/KrullDimension.lean Modified Mathlib/Order/OmegaCompletePartialOrder.lean Modified Mathlib/RepresentationTheory/Basic.lean Modified Mathlib/RepresentationTheory/Homological/GroupHomology/LowDegree.lean Modified Mathlib/RingTheory/DividedPowers/SubDPIdeal.lean Modified Mathlib/RingTheory/Valuation/Discrete/Basic.lean +/- theorem Valuation.IsRankOneDiscrete.generator_lt_one +/- theorem Valuation.IsRankOneDiscrete.generator_ne_one Modified Mathlib/RingTheory/Valuation/ValuativeRel.lean Modified Mathlib/RingTheory/ZMod/UnitsCyclic.lean Modified Mathlib/Topology/OmegaCompletePartialOrder.lean Modified Mathlib/Topology/ShrinkingLemma.lean Modified Mathlib/Topology/UniformSpace/UniformConvergence.lean 2025-07-16 20:03:46 71f3666 chore(Aesop): remove aesop `apply` (#26609) * Remove `apply` from Aesop rule tags across the `SetLike` ruleset for consistency * Since the default rule-builder for most statements is `apply`, this change is purely cosmetic Split from #25961 ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/NonUnitalSubalgebra.lean Modified Mathlib/Algebra/Algebra/Subalgebra/Basic.lean Modified Mathlib/Algebra/Algebra/Subalgebra/Lattice.lean Modified Mathlib/Algebra/Field/Subfield/Basic.lean Modified Mathlib/Algebra/Field/Subfield/Defs.lean Modified Mathlib/Algebra/Group/Subgroup/Lattice.lean Modified Mathlib/Algebra/Group/Submonoid/Basic.lean Modified Mathlib/Algebra/Group/Submonoid/Defs.lean Modified Mathlib/Algebra/Group/Subsemigroup/Basic.lean Modified Mathlib/Algebra/Ring/Subring/Basic.lean Modified Mathlib/Algebra/Ring/Subring/Defs.lean Modified Mathlib/Algebra/Ring/Subsemiring/Basic.lean Modified Mathlib/Algebra/Ring/Subsemiring/Defs.lean Modified Mathlib/Algebra/Star/NonUnitalSubalgebra.lean Modified Mathlib/Algebra/Star/Subalgebra.lean Modified Mathlib/Data/SetLike/Basic.lean Modified Mathlib/LinearAlgebra/Span/Defs.lean Modified Mathlib/Order/BooleanSubalgebra.lean Modified Mathlib/RingTheory/NonUnitalSubring/Basic.lean Modified Mathlib/RingTheory/NonUnitalSubsemiring/Basic.lean Modified Mathlib/Topology/Algebra/Algebra.lean Modified Mathlib/Topology/Algebra/NonUnitalAlgebra.lean Modified Mathlib/Topology/Algebra/NonUnitalStarAlgebra.lean Modified Mathlib/Topology/Algebra/StarSubalgebra.lean 2025-07-16 19:17:33 f93cd71 feat(Order): `StrictMono.denselyOrdered_range` (#27208) ESTIMATED CHANGES Modified Mathlib/Order/Hom/Basic.lean + theorem StrictMono.denselyOrdered_range 2025-07-16 18:35:01 16b95a4 feat(CategoryTheory): Formal coproducts (#26402) Co-authored by @joelriou . ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Limits/FormalCoproducts.lean + def CategoryTheory.Limits.FormalCoproduct.Hom.asSigma + def CategoryTheory.Limits.FormalCoproduct.Hom.fromIncl + theorem CategoryTheory.Limits.FormalCoproduct.Hom.fromIncl_asSigma + structure CategoryTheory.Limits.FormalCoproduct.Hom + def CategoryTheory.Limits.FormalCoproduct.cofan + def CategoryTheory.Limits.FormalCoproduct.cofanHomEquiv + def CategoryTheory.Limits.FormalCoproduct.cofanPtIsoSelf + theorem CategoryTheory.Limits.FormalCoproduct.cofan_inj + theorem CategoryTheory.Limits.FormalCoproduct.cofan_inj_f_fst + theorem CategoryTheory.Limits.FormalCoproduct.cofan_inj_f_snd + theorem CategoryTheory.Limits.FormalCoproduct.cofan_inj_φ + def CategoryTheory.Limits.FormalCoproduct.eval + def CategoryTheory.Limits.FormalCoproduct.evalCompInclIsoId + def CategoryTheory.Limits.FormalCoproduct.evalOp + def CategoryTheory.Limits.FormalCoproduct.evalOpCompInlIsoId + theorem CategoryTheory.Limits.FormalCoproduct.fromIncl_comp_cofanPtIsoSelf_inv + theorem CategoryTheory.Limits.FormalCoproduct.fromIncl_comp_coproductIsoSelf_inv + def CategoryTheory.Limits.FormalCoproduct.fullyFaithfulIncl + theorem CategoryTheory.Limits.FormalCoproduct.hasPullback_of_pullbackCone + def CategoryTheory.Limits.FormalCoproduct.homOfPiHom + def CategoryTheory.Limits.FormalCoproduct.homPullbackEquiv + theorem CategoryTheory.Limits.FormalCoproduct.hom_ext + theorem CategoryTheory.Limits.FormalCoproduct.hom_ext_iff' + theorem CategoryTheory.Limits.FormalCoproduct.hom_ext_iff + def CategoryTheory.Limits.FormalCoproduct.incl + def CategoryTheory.Limits.FormalCoproduct.inclHomEquiv + theorem CategoryTheory.Limits.FormalCoproduct.inj_comp_cofanPtIsoSelf_hom + def CategoryTheory.Limits.FormalCoproduct.isColimitCofan + def CategoryTheory.Limits.FormalCoproduct.isColimitEvalMapCoconeCofan + def CategoryTheory.Limits.FormalCoproduct.isLimitEvalMapConeCofanOp + def CategoryTheory.Limits.FormalCoproduct.isLimitPullbackCone + theorem CategoryTheory.Limits.FormalCoproduct.isPullback + def CategoryTheory.Limits.FormalCoproduct.isTerminalIncl + def CategoryTheory.Limits.FormalCoproduct.isoOfComponents + def CategoryTheory.Limits.FormalCoproduct.pullbackCone + theorem CategoryTheory.Limits.FormalCoproduct.pullbackCone_condition + theorem CategoryTheory.Limits.FormalCoproduct.pullbackCone_fst_f + theorem CategoryTheory.Limits.FormalCoproduct.pullbackCone_fst_φ + theorem CategoryTheory.Limits.FormalCoproduct.pullbackCone_snd_f + theorem CategoryTheory.Limits.FormalCoproduct.pullbackCone_snd_φ + def CategoryTheory.Limits.FormalCoproduct.toFun + theorem CategoryTheory.Limits.FormalCoproduct.ι_comp_coproductIsoCofanPt + theorem CategoryTheory.Limits.FormalCoproduct.ι_comp_coproductIsoSelf_hom + structure CategoryTheory.Limits.FormalCoproduct 2025-07-16 17:33:20 7549c63 refactor(docs/references.bib) : Run bibtool (#27219) Normalise `docs/references.bib` using the command [documented](https://leanprover-community.github.io/contribute/doc.html#citing-other-works) ``` bibtool --preserve.key.case=on --preserve.keys=on --print.use.tab=off --pass.comments=on -s -i docs/references.bib -o docs/references.bib ``` This is using the `2.68+ds-1` package on Ubuntu 24.04. ESTIMATED CHANGES Modified docs/references.bib 2025-07-16 17:16:02 e7fe66f feat: add mdifferentiable version of hom bundle smoothness lemmas (#26922) These are necessary to prove that the pairing of bundle sections induced by a smooth Riemannian metric preserves differentiability. From the path towards geodesics and the Levi-Civita connection. ESTIMATED CHANGES Modified Mathlib/Geometry/Manifold/VectorBundle/Hom.lean + theorem MDifferentiable.clm_bundle_apply + theorem MDifferentiable.clm_bundle_apply₂ + theorem MDifferentiableAt.clm_bundle_apply + theorem MDifferentiableAt.clm_bundle_apply₂ + theorem MDifferentiableOn.clm_bundle_apply + theorem MDifferentiableOn.clm_bundle_apply₂ + theorem MDifferentiableWithinAt.clm_bundle_apply + theorem MDifferentiableWithinAt.clm_bundle_apply₂ + theorem mdifferentiableAt_hom_bundle + theorem mdifferentiableOn_continuousLinearMapCoordChange + theorem mdifferentiableWithinAt_hom_bundle 2025-07-16 15:50:54 60d731f feat: define `IsKolmogorovProcess` (#27202) A stochastic process `X : T → Ω → E` on an index space `T` and a measurable space `Ω` with measure `P` is said to satisfy the Kolmogorov condition with exponents `p, q` and constant `M` if for all `s, t : T`, the pair `(X s, X t)` is measurable for the Borel sigma-algebra on `E × E` and the following condition holds: `∫⁻ ω, edist (X s ω) (X t ω) ^ p ∂P ≤ M * edist s t ^ q`. This is the main assumption of the Kolmogorov-Chentsov theorem, which gives the existence of a continuous modification of the process. From the Brownian motion project. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Probability/Process/Kolmogorov.lean + theorem ProbabilityTheory.IsAEKolmogorovProcess.IsKolmogorovProcess_mk + theorem ProbabilityTheory.IsAEKolmogorovProcess.ae_eq_mk + theorem ProbabilityTheory.IsAEKolmogorovProcess.aemeasurable + theorem ProbabilityTheory.IsAEKolmogorovProcess.aemeasurable_edist + theorem ProbabilityTheory.IsAEKolmogorovProcess.aestronglyMeasurable_edist + theorem ProbabilityTheory.IsAEKolmogorovProcess.congr + theorem ProbabilityTheory.IsAEKolmogorovProcess.edist_eq_zero + theorem ProbabilityTheory.IsAEKolmogorovProcess.edist_eq_zero_of_const_eq_zero + theorem ProbabilityTheory.IsAEKolmogorovProcess.kolmogorovCondition + def ProbabilityTheory.IsAEKolmogorovProcess.mk + theorem ProbabilityTheory.IsAEKolmogorovProcess.p_pos + theorem ProbabilityTheory.IsAEKolmogorovProcess.q_pos + def ProbabilityTheory.IsAEKolmogorovProcess + theorem ProbabilityTheory.IsKolmogorovProcess.IsAEKolmogorovProcess + theorem ProbabilityTheory.IsKolmogorovProcess.edist_eq_zero + theorem ProbabilityTheory.IsKolmogorovProcess.edist_eq_zero_of_const_eq_zero + theorem ProbabilityTheory.IsKolmogorovProcess.measurable + theorem ProbabilityTheory.IsKolmogorovProcess.measurable_edist + theorem ProbabilityTheory.IsKolmogorovProcess.mk_of_secondCountableTopology + theorem ProbabilityTheory.IsKolmogorovProcess.stronglyMeasurable_edist + structure ProbabilityTheory.IsKolmogorovProcess 2025-07-16 14:31:46 220be37 feat: two lemmas about Lp functions and product spaces (#27029) If `MemLp f p μ` and `ν` is a finite measure on another space, then `MemLp (fun x ↦ f x.1) p (μ.prod ν)`. Same lemma for `snd` instead of `fst`. That second lemma requires an additional `SFinite` hypothesis, which reflects the difference in hypotheses between `Measure.map_fst_prod` and `Measure.map_snd_prod`. The lemmas are in a new file because other files in the folder don't import product measures. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/MeasureTheory/Function/LpSeminorm/Prod.lean + theorem MeasureTheory.MemLp.comp_fst + theorem MeasureTheory.MemLp.comp_snd 2025-07-16 14:10:21 ea5588a feat(RepresentationTheory/Homological/GroupHomology/Functoriality): low degree functoriality maps (#25939) Given a commutative ring `k`, a group homomorphism `f : G →* H`, a `k`-linear `G`-representation `A`, a `k`-linear `H`-representation `B`, and a representation morphism `A ⟶ Res(f)(B)`, we get a chain map `inhomogeneousChains A ⟶ inhomogeneousChains B` and hence maps on cohomology `Hₙ(G, A) ⟶ Hₙ(H, B)`. This PR provides specialised API for these maps in low degree. A future PR will add support for switching resolution. ESTIMATED CHANGES Modified Mathlib/RepresentationTheory/Homological/GroupCohomology/Functoriality.lean Modified Mathlib/RepresentationTheory/Homological/GroupHomology/Functoriality.lean + theorem groupHomology.H0π_comp_map + theorem groupHomology.H1π_comp_map + theorem groupHomology.H2π_comp_map + theorem groupHomology.chainsMap_f_0_comp_chainsIso₀ + theorem groupHomology.chainsMap_f_1_comp_chainsIso₁ + theorem groupHomology.chainsMap_f_2_comp_chainsIso₂ + theorem groupHomology.chainsMap_f_3_comp_chainsIso₃ + theorem groupHomology.coe_mapCycles₁ + theorem groupHomology.coe_mapCycles₂ + theorem groupHomology.cyclesIso₀_inv_comp_cyclesMap + theorem groupHomology.cyclesMap_comp_cyclesIso₀_hom + theorem groupHomology.cyclesMap_comp_isoCycles₁_hom + theorem groupHomology.cyclesMap_comp_isoCycles₂_hom + theorem groupHomology.mapCycles₁_comp_i + theorem groupHomology.mapCycles₂_comp_i + theorem groupHomology.mapShortComplexH1_comp + theorem groupHomology.mapShortComplexH1_id + theorem groupHomology.mapShortComplexH1_id_comp + theorem groupHomology.mapShortComplexH1_zero + theorem groupHomology.mapShortComplexH2_comp + theorem groupHomology.mapShortComplexH2_id + theorem groupHomology.mapShortComplexH2_id_comp + theorem groupHomology.mapShortComplexH2_zero + theorem groupHomology.map_id_comp_H0Iso_hom Modified Mathlib/RepresentationTheory/Rep.lean 2025-07-16 13:02:08 e109780 feat(RingTheory/TensorProduct/FG) : direct limit properties of tensor products wrt finitely generated submodules (#26717) This PR uses the fact that a module is the directed limit of its finitely generated submodules to establish various existence properties of finitely generated submodules wrt tensor products. For any element `u : M ⊗[R] N`, there exists a finitely generated submodule `P` of `M` and an element `t : P ⊗[R] N` whose image in `M ⊗[R] N` is equal to `u`. For `t : P ⊗[R] N` and `t' : P' ⊗[R] N` as above, there exists a finitely generated submodule `Q` of `M` containing `P ⊔ P'` such that the images of `t` and `t'` in `Q ⊗[R] N` coincide. Similar results for base change, where `M` is replaced by an `R`-algebra `A`, and `P`, `P'`, `Q` by finitely generated subalgebras of `A`. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/LinearAlgebra/TensorProduct/Tower.lean + theorem LinearMap.rTensor_baseChange Modified Mathlib/RingTheory/Adjoin/FG.lean + theorem Subalgebra.FG.sup Modified Mathlib/RingTheory/Finiteness/Basic.lean Added Mathlib/RingTheory/TensorProduct/DirectLimitFG.lean + theorem DirectedSystem.lTensor + theorem DirectedSystem.rTensor + theorem Submodule.FG.lTensor.directLimit_apply' + theorem Submodule.FG.lTensor.directLimit_apply + theorem Submodule.FG.lTensor.directedSystem + theorem Submodule.FG.rTensor.directLimit_apply' + theorem Submodule.FG.rTensor.directLimit_apply + theorem Submodule.FG.rTensor.directedSystem + theorem Submodule.exists_fg_of_baseChange_eq_zero + theorem TensorProduct.Algebra.eq_of_fg_of_subtype_eq' + theorem TensorProduct.Algebra.eq_of_fg_of_subtype_eq + theorem TensorProduct.Algebra.exists_of_fg + theorem TensorProduct.eq_of_fg_of_subtype_eq' + theorem TensorProduct.eq_of_fg_of_subtype_eq + theorem TensorProduct.eq_zero_of_fg_of_subtype_eq_zero + theorem TensorProduct.exists_of_fg 2025-07-16 12:50:21 1e542fa chore(CategoryTheory/Limits/Shapes/Pullback/Categorical): remove useless [local simp] (#27203) `CatCommSq.iso_hom_naturality` and `CatCommSq.iso_inv_naturality` were made global simp during review of #26366 but an artifact of the original code remained. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Limits/Shapes/Pullback/Categorical/Basic.lean 2025-07-16 11:03:40 9c18b42 feat: Nat.log2 <= Real.logb 2 (#27201) From the Brownian motion project. ESTIMATED CHANGES Modified Mathlib/Analysis/SpecialFunctions/Log/Base.lean + theorem Real.log2_le_logb 2025-07-16 10:54:51 6e8affb feat(Probability): Hoeffding's lemma (#26744) Prove Hoeffding's lemma. ESTIMATED CHANGES Modified Mathlib/Analysis/Calculus/Taylor.lean + theorem taylor_mean_remainder_lagrange_iteratedDeriv Modified Mathlib/Probability/Moments/Basic.lean + theorem ProbabilityTheory.integrable_exp_mul_of_mem_Icc Modified Mathlib/Probability/Moments/MGFAnalytic.lean + theorem ProbabilityTheory.exists_cgf_eq_iteratedDeriv_two_cgf_mul Modified Mathlib/Probability/Moments/SubGaussian.lean + theorem ProbabilityTheory.hasSubgaussianMGF_of_mem_Icc 2025-07-16 10:43:26 5726d73 feat: ContinuousLinearMap.flip/bilinearComp of zero (#27193) From the Brownian motion project. ESTIMATED CHANGES Modified Mathlib/Analysis/NormedSpace/OperatorNorm/Bilinear.lean + theorem ContinuousLinearMap.bilinearComp_zero + theorem ContinuousLinearMap.bilinearComp_zero_left + theorem ContinuousLinearMap.bilinearComp_zero_right + theorem ContinuousLinearMap.flip_zero 2025-07-16 10:14:17 83404a6 feat: gramSchmidtNormed_linearIndependent and minor tweaks (#27023) - Add gramSchmidt_zero (about gramSchmidt applied to a set of zero vectors), - rename the previous gramSchmidt_zero to gramSchmidt_bot (which is the correct name anyway). From the path towards geodesics and the Levi-Civita connection. ESTIMATED CHANGES Modified Mathlib/Analysis/InnerProductSpace/GramSchmidtOrtho.lean + theorem InnerProductSpace.gramSchmidtNormed_linearIndependent + theorem InnerProductSpace.gramSchmidt_bot +/- theorem InnerProductSpace.gramSchmidt_of_orthogonal +/- theorem InnerProductSpace.gramSchmidt_zero 2025-07-16 09:17:03 00a8983 chore: use `edist` instead of `dist` in `TendstoInMeasure` (#26954) With this change, we can use `TendstoInMeasure` in an extended metric space. Useful for the Brownian motion project. ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Function/ConvergenceInMeasure.lean +/- theorem MeasureTheory.TendstoInMeasure.comp +/- theorem MeasureTheory.TendstoInMeasure.mono +/- def MeasureTheory.TendstoInMeasure +/- theorem MeasureTheory.tendstoInMeasure_ae_unique + theorem MeasureTheory.tendstoInMeasure_iff_dist + theorem MeasureTheory.tendstoInMeasure_iff_enorm +/- theorem MeasureTheory.tendstoInMeasure_iff_tendsto_toNNReal + theorem MeasureTheory.tendstoInMeasure_of_ne_top 2025-07-16 07:57:08 ed41206 feat: commuting unitors and tensor product (#27189) From Toric ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Monoidal/Category.lean + theorem CategoryTheory.MonoidalCategory.leftUnitor_inv_comp_tensorHom + theorem CategoryTheory.MonoidalCategory.rightUnitor_inv_comp_tensorHom 2025-07-16 01:19:59 488d3b8 chore: fix four `Submonoid` recursors (#27185) Split from #27159. ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Submonoid/Membership.lean +/- theorem Submonoid.closure_induction_left +/- theorem Submonoid.closure_induction_right +/- theorem Submonoid.induction_of_closure_eq_top_left +/- theorem Submonoid.induction_of_closure_eq_top_right Modified Mathlib/GroupTheory/CoprodI.lean Modified Mathlib/GroupTheory/Coxeter/Basic.lean 2025-07-15 22:37:17 3a07408 chore: import `rw??` into `Mathlib.Tactic.Common` (#27164) This PR makes `rw??` available to use in most places inside of mathlib. This also caught the problem that "all" was turned into a token accidentally. ESTIMATED CHANGES Modified Mathlib/Tactic/Common.lean Modified Mathlib/Tactic/Widget/LibraryRewrite.lean 2025-07-15 21:51:32 42632e6 feat(NumberTheory/Padics/ValuativeRel): ValuativeRel ℚ_[p] (#27177) Simplified from #26886. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/NumberTheory/Padics/PadicNumbers.lean Added Mathlib/NumberTheory/Padics/ValuativeRel.lean + theorem Padic.valuation_p_lt_one + theorem Padic.valuation_p_ne_zero 2025-07-15 19:54:42 5bfba47 feat: solution to ODE is Lipschitz with respect to the initial condition (#26392) This PR continues the work from #20733. Original PR: https://github.com/leanprover-community/mathlib4/pull/20733 I formalise a corollary to the Picard-Lindelöf theorem: the local solution to an ODE is Lipschitz continuous with respect to the initial condition. This in particular means that the local flow to the associated vector field is continuous. ESTIMATED CHANGES Modified Mathlib/Analysis/ODE/PicardLindelof.lean + theorem IsPicardLindelof.exists_forall_mem_closedBall_eq_hasDerivWithinAt_continuousOn + theorem IsPicardLindelof.exists_forall_mem_closedBall_eq_hasDerivWithinAt_lipschitzOnWith + theorem ODE.FunSpace.dist_iterate_iterate_next_le_of_lipschitzWith + theorem ODE.FunSpace.dist_iterate_next_le + theorem ODE.FunSpace.dist_next_next + theorem ODE.FunSpace.exists_forall_closedBall_funSpace_dist_le_mul 2025-07-15 19:38:33 54b59e3 chore: generalise `FreeGroup.ext_hom` to monoids (#27140) Also spell `FreeGroup.induction_on` using `of` rather than `pure`. This lets me move it before `ext_hom`, so that I can use it in the proof. From Toric ESTIMATED CHANGES Modified Mathlib/GroupTheory/FreeGroup/Basic.lean +/- theorem FreeGroup.ext_hom 2025-07-15 17:59:56 e2292a3 feat(CategoryTheory/Adjunction): the right partial adjoint (#27168) Given a functor `F : C ⥤ D`, we define a functor `F.partialLeftAdjoint : F.PartialLeftAdjointSource ⥤ C` which is defined on a certain full subcategory of `D`. It satisfies similar properties to the right adjoint of `F` (if this existed). We show that the domain of definition of this partial right adjoint is stable under certain limits. This dualises #17388, I came across this while formalising Proposition 4.3.4 of Emily Riehl's Category Theory in Context. I will also work on formalising Proposition 4.3.6, which is the bifunctor version of this. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Adjunction/PartialAdjoint.lean + theorem CategoryTheory.Functor.isLeftAdjoint_iff_rightAdjointObjIsDefined_eq_top + theorem CategoryTheory.Functor.isLeftAdjoint_of_rightAdjointObjIsDefined_eq_top + theorem CategoryTheory.Functor.partialRightAdjointHomEquiv_comp + theorem CategoryTheory.Functor.partialRightAdjointHomEquiv_map + theorem CategoryTheory.Functor.partialRightAdjointHomEquiv_map_comp + def CategoryTheory.Functor.rightAdjointObjIsDefined + theorem CategoryTheory.Functor.rightAdjointObjIsDefined_iff + theorem CategoryTheory.Functor.rightAdjointObjIsDefined_limit + theorem CategoryTheory.Functor.rightAdjointObjIsDefined_of_adjunction + theorem CategoryTheory.Functor.rightAdjointObjIsDefined_of_isLimit 2025-07-15 17:23:47 845ff2b feat(Data/Matrix): add `Matrix.vecCons_inj` (#26896) `vecCons_inj` is the `vecCons` version of `Fin.cons_inj`. Also use it to simplify some proofs for `vec2` and `vec3`. [Zulip discussion](https://leanprover.zulipchat.com/#narrow/channel/217875-Is-there-code-for-X.3F/topic/.60!.5Ba.5D.20.3D.20!.5Bb.5D.20.E2.86.94.20a.20.3D.20b.60/) ESTIMATED CHANGES Modified Mathlib/Data/Fin/VecNotation.lean + theorem Matrix.vecCons_inj Modified Mathlib/Data/Matrix/Notation.lean 2025-07-15 16:28:20 3e077d8 feat: Finset.max'_eq_iff (#27153) This PR add two lemmas which give characterizations of `Finset.max'/min'`. (This will be used in some future cosimplicial construction.) ESTIMATED CHANGES Modified Mathlib/Data/Finset/Max.lean + theorem Finset.max'_eq_iff + theorem Finset.min'_eq_iff 2025-07-15 16:05:22 ccca472 feat(CategoryTheory/Preadditive/Injective/Basic, CategoryTheory/Preadditive/Projective/Basic): injectivity/projectivity criterion (#27156) Prove that, if `F : C ⥤ D` is a fully faithful functor that preserves monomorphisms (resp. epimorphisms), and if the image by `F` of a map `f` of `C` is injective (resp. projective), then so is `f`. This will be used when `F` is the inclusion of a full abelian subcategory to show that we only need to check injectivity/projectivity of a map in the big category. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Preadditive/Injective/Basic.lean + theorem CategoryTheory.Functor.injective_of_map_injective Modified Mathlib/CategoryTheory/Preadditive/Projective/Basic.lean + theorem CategoryTheory.Functor.projective_of_map_projective 2025-07-15 14:02:05 4940ad6 feat(Algebra/SkewMonoidAlgebra/Basic): multiplication and algebraic instances (#26933) Previously #22078. ESTIMATED CHANGES Modified Mathlib/Algebra/SkewMonoidAlgebra/Basic.lean + theorem SkewMonoidAlgebra.addHom_ext + def SkewMonoidAlgebra.basisSingleOne + def SkewMonoidAlgebra.comapDistribMulActionSelf + def SkewMonoidAlgebra.comapMulAction + def SkewMonoidAlgebra.comapSMul + theorem SkewMonoidAlgebra.comapSMul_def + theorem SkewMonoidAlgebra.comapSMul_single + theorem SkewMonoidAlgebra.eq_liftNC + theorem SkewMonoidAlgebra.induction_on' + theorem SkewMonoidAlgebra.induction_on + theorem SkewMonoidAlgebra.intCast_def + def SkewMonoidAlgebra.liftNC + def SkewMonoidAlgebra.liftNCRingHom + theorem SkewMonoidAlgebra.liftNC_mul + theorem SkewMonoidAlgebra.liftNC_one + theorem SkewMonoidAlgebra.liftNC_single + def SkewMonoidAlgebra.mapDomain + theorem SkewMonoidAlgebra.mapDomain_comp + theorem SkewMonoidAlgebra.mapDomain_id + theorem SkewMonoidAlgebra.mapDomain_single + theorem SkewMonoidAlgebra.mapDomain_smul + theorem SkewMonoidAlgebra.mul_def + theorem SkewMonoidAlgebra.natCast_def +/- theorem SkewMonoidAlgebra.ofFinsupp_eq_zero + theorem SkewMonoidAlgebra.ofFinsupp_neg + theorem SkewMonoidAlgebra.ofFinsupp_sub + theorem SkewMonoidAlgebra.single_nat + theorem SkewMonoidAlgebra.single_neg +/- theorem SkewMonoidAlgebra.single_one_one + theorem SkewMonoidAlgebra.sum_mapDomain_index + theorem SkewMonoidAlgebra.sum_smul_index' + theorem SkewMonoidAlgebra.sum_smul_index + def SkewMonoidAlgebra.toFinsuppLinearEquiv +/- theorem SkewMonoidAlgebra.toFinsupp_eq_zero + theorem SkewMonoidAlgebra.toFinsupp_mapDomain + theorem SkewMonoidAlgebra.toFinsupp_neg + theorem SkewMonoidAlgebra.toFinsupp_sub 2025-07-15 13:39:57 efb6091 feat(Algebra/Polynomial/AlgebraMap): add lemmas (#26666) ESTIMATED CHANGES Modified Mathlib/Algebra/Polynomial/AlgebraMap.lean + theorem Polynomial.coeff_zero_of_isScalarTower + def Polynomial.mapAlg + theorem Polynomial.mapAlg_comp + theorem Polynomial.mapAlg_eq_map Modified Mathlib/Algebra/Polynomial/Lifts.lean - def Polynomial.mapAlg - theorem Polynomial.mapAlg_eq_map 2025-07-15 12:22:18 e87547a chore: golf Algebra/ using `simp`/`simp_all` (#27130) ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/Equiv.lean Modified Mathlib/Algebra/Azumaya/Basic.lean Modified Mathlib/Algebra/BigOperators/Sym.lean Modified Mathlib/Algebra/Group/Pi/Lemmas.lean Modified Mathlib/Algebra/Homology/HomotopyCategory/MappingCone.lean Modified Mathlib/Algebra/Lie/Semisimple/Basic.lean Modified Mathlib/Algebra/Lie/Submodule.lean Modified Mathlib/Algebra/Lie/Weights/Basic.lean Modified Mathlib/Algebra/Module/Presentation/Differentials.lean Modified Mathlib/Algebra/MvPolynomial/Eval.lean Modified Mathlib/Algebra/Order/Antidiag/Nat.lean Modified Mathlib/Algebra/Order/Group/Indicator.lean Modified Mathlib/Algebra/Order/Ring/Unbundled/Rat.lean Modified Mathlib/Algebra/Polynomial/AlgebraMap.lean Modified Mathlib/Algebra/Polynomial/Degree/Operations.lean Modified Mathlib/Algebra/Polynomial/Derivative.lean Modified Mathlib/Algebra/Polynomial/Eval/Coeff.lean Modified Mathlib/Algebra/Polynomial/GroupRingAction.lean Modified Mathlib/Algebra/Polynomial/Monic.lean Modified Mathlib/Algebra/Prime/Lemmas.lean Modified Mathlib/Algebra/Ring/Rat.lean 2025-07-15 11:35:40 f96ef6f feat: add Mathlib.RingTheory.DedekindDomain.Instances (#26070) We add a new file `Mathlib.RingTheory.DedekindDomain.Instances` containing various instances that are useful to work with the localization a prime of an extension of Dedekind domains. As a practical example we golf a tedious proof in `Mathlib.RingTheory.Ideal/Norm.RelNorm`. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/RingTheory/DedekindDomain/Different.lean Added Mathlib/RingTheory/DedekindDomain/Instances.lean + theorem FractionRing.isSeparable_of_isLocalization + theorem algebraMapSubmonoid_le_nonZeroDivisors_of_faithfulSMul Modified Mathlib/RingTheory/DedekindDomain/IntegralClosure.lean Modified Mathlib/RingTheory/Ideal/Norm/RelNorm.lean Modified Mathlib/RingTheory/IntegralClosure/IntegralRestrict.lean Modified Mathlib/RingTheory/Localization/AtPrime.lean Modified Mathlib/RingTheory/Localization/Basic.lean + theorem IsLocalization.algEquiv_comp_algebraMap + theorem IsLocalization.algEquiv_comp_algebraMap_apply Modified Mathlib/RingTheory/Localization/Ideal.lean Modified Mathlib/RingTheory/Localization/LocalizationLocalization.lean Modified Mathlib/RingTheory/RingHom/Finite.lean + theorem Module.Finite.of_isLocalization - theorem Module.Finite_of_isLocalization Modified Mathlib/RingTheory/Trace/Quotient.lean 2025-07-15 10:52:18 b330acf feat: coin problem with two coins and prime ideals in ℕ (#27065) This is the outcome of a course project at Heidelberg University: https://matematiflo.github.io/CompAssistedMath2025/ + If the gcd of two natural numbers `p` and `q` divides a third natural number `n`, and if `n` is at least `(p - 1) * (q - 1)`, then `n` can be represented as an `ℕ`-linear combination of `p` and `q`; in other words, one can pay the amount `n` using coins of value `p` and `q`. + As a consequence, the prime ideals in ℕ are 0, ⟨p⟩, and {1}ᶜ. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Order/Ring/Int.lean + theorem Nat.exists_add_mul_eq_of_gcd_dvd_of_mul_pred_le Modified Mathlib/Data/Nat/Prime/Basic.lean + theorem Nat.not_prime_iff_exists_mul_eq Modified Mathlib/Data/Nat/Prime/Defs.lean + theorem Nat.prime_iff_not_exists_mul_eq Modified Mathlib/RingTheory/Ideal/Maximal.lean + theorem Ideal.isPrime_iff_of_isPrincipalIdealRing + theorem Ideal.isPrime_iff_of_isPrincipalIdealRing_of_noZeroDivisors Added Mathlib/RingTheory/Ideal/NatInt.lean + theorem Ideal.isPrime_int_iff + theorem Ideal.isPrime_nat_iff + theorem Ideal.map_comap_natCastRingHom_int + theorem Nat.coe_maximalIdeal + theorem Nat.maximalIdeal_eq_span_two_three + theorem Nat.mem_maximalIdeal_iff + theorem ringKrullDim_nat Modified Mathlib/RingTheory/KrullDimension/Basic.lean 2025-07-15 10:09:44 a806dee feat: `Finset.mem_filter_univ` (#27148) This lemma, or rather the sequence `simp_rw [mem_filter, mem_univ, true_and]` equivalent to it, is used quite a lot in Carleson, and it is tiring to repeat the sequence which cannot be replaced with plain `rw`. It turns out that the new lemma can golf theorems here too! ESTIMATED CHANGES Modified Archive/Imo/Imo1998Q2.lean Modified Archive/Imo/Imo2001Q3.lean Modified Archive/Wiedijk100Theorems/Partition.lean Modified Mathlib/Algebra/Lie/Weights/RootSystem.lean Modified Mathlib/AlgebraicTopology/AlternatingFaceMapComplex.lean Modified Mathlib/AlgebraicTopology/DoldKan/Decomposition.lean Modified Mathlib/Analysis/Convex/Birkhoff.lean Modified Mathlib/Combinatorics/Enumerative/Composition.lean Modified Mathlib/Combinatorics/SimpleGraph/Copy.lean Modified Mathlib/Combinatorics/SimpleGraph/DegreeSum.lean Modified Mathlib/Combinatorics/SimpleGraph/Extremal/Basic.lean Modified Mathlib/Combinatorics/SimpleGraph/IncMatrix.lean Modified Mathlib/Combinatorics/SimpleGraph/Turan.lean Modified Mathlib/Data/Fin/Tuple/Sort.lean Modified Mathlib/Data/Fintype/Card.lean Modified Mathlib/Data/Fintype/Defs.lean + theorem Finset.mem_filter_univ Modified Mathlib/Data/Fintype/Sets.lean Modified Mathlib/Geometry/Euclidean/Incenter.lean Modified Mathlib/GroupTheory/SpecificGroups/Alternating/Centralizer.lean Modified Mathlib/GroupTheory/SpecificGroups/Cyclic.lean Modified Mathlib/LinearAlgebra/Matrix/Determinant/Basic.lean Modified Mathlib/NumberTheory/LegendreSymbol/QuadraticChar/Basic.lean Modified Mathlib/NumberTheory/MulChar/Basic.lean Modified Mathlib/NumberTheory/NumberField/InfinitePlace/Ramification.lean Modified Mathlib/RingTheory/MvPolynomial/Symmetric/FundamentalTheorem.lean 2025-07-15 10:09:43 a5d4280 feat(CategoryTheory/Limits/Shapes/Pullback/Categorical): bicategory-like lemmas for `CatCospanTransforms` (#26447) We complete the proof that categorical cospan transforms introduced in #26412 form an "unbundled bicategory". ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Limits/Shapes/Pullback/Categorical/CatCospanTransform.lean + theorem CategoryTheory.Limits.CatCospanTransform.comp_whiskerLeft + theorem CategoryTheory.Limits.CatCospanTransform.comp_whiskerRight + theorem CategoryTheory.Limits.CatCospanTransform.id_whiskerLeft + theorem CategoryTheory.Limits.CatCospanTransform.id_whiskerRight + theorem CategoryTheory.Limits.CatCospanTransform.inv_whiskerLeft + theorem CategoryTheory.Limits.CatCospanTransform.inv_whiskerRight + theorem CategoryTheory.Limits.CatCospanTransform.pentagon + theorem CategoryTheory.Limits.CatCospanTransform.triangle + theorem CategoryTheory.Limits.CatCospanTransform.triangle_inv + theorem CategoryTheory.Limits.CatCospanTransform.whiskerLeft_comp + theorem CategoryTheory.Limits.CatCospanTransform.whiskerRight_comp + theorem CategoryTheory.Limits.CatCospanTransform.whiskerRight_id + theorem CategoryTheory.Limits.CatCospanTransform.whisker_exchange + theorem CategoryTheory.Limits.CatCospanTransform.whiskerleft_id 2025-07-15 09:22:23 6c0e852 chore: remove whitespace (#26963) Found by #26926. ESTIMATED CHANGES Modified Mathlib/Algebra/BigOperators/Group/Finset/Defs.lean Modified Mathlib/Algebra/Group/Basic.lean Modified Mathlib/Algebra/Group/Subgroup/Lattice.lean Modified Mathlib/Algebra/MvPolynomial/Basic.lean Modified Mathlib/Algebra/Order/BigOperators/Group/Finset.lean Modified Mathlib/Algebra/Order/Group/Defs.lean Modified Mathlib/Algebra/Order/Monoid/Unbundled/Basic.lean Modified Mathlib/Data/Finset/Prod.lean Modified Mathlib/Data/List/Basic.lean Modified Mathlib/Data/Matrix/Invertible.lean Modified Mathlib/Data/Nat/Factorial/Basic.lean +/- theorem Nat.ascFactorial_le_pow_add +/- theorem Nat.two_pow_mul_factorial_le_factorial_two_mul Modified Mathlib/Data/Ordmap/Ordnode.lean Modified Mathlib/Data/Set/Image.lean +/- theorem Set.range_inl +/- theorem Set.range_inr Modified Mathlib/Data/Set/Prod.lean Modified Mathlib/LinearAlgebra/Basis/VectorSpace.lean +/- theorem Basis.coe_ofVectorSpace Modified Mathlib/LinearAlgebra/Matrix/ToLin.lean Modified Mathlib/Logic/Hydra.lean Modified Mathlib/MeasureTheory/Integral/RieszMarkovKakutani/Real.lean Modified Mathlib/NumberTheory/FLT/Four.lean Modified Mathlib/NumberTheory/ModularForms/EisensteinSeries/UniformConvergence.lean Modified Mathlib/NumberTheory/NumberField/DedekindZeta.lean Modified Mathlib/NumberTheory/NumberField/Discriminant/Basic.lean Modified Mathlib/NumberTheory/NumberField/Ideal/Asymptotics.lean Modified Mathlib/NumberTheory/NumberField/InfinitePlace/Ramification.lean Modified Mathlib/NumberTheory/RamificationInertia/Unramified.lean Modified Mathlib/NumberTheory/SiegelsLemma.lean Modified Mathlib/Order/Atoms.lean Modified Mathlib/Order/CompleteBooleanAlgebra.lean Modified Mathlib/Order/Filter/Lift.lean Modified Mathlib/Order/Interval/Set/UnorderedInterval.lean Modified Mathlib/Probability/Kernel/CondDistrib.lean Modified Mathlib/Probability/Moments/ComplexMGF.lean Modified Mathlib/RingTheory/DedekindDomain/Different.lean Modified Mathlib/RingTheory/DedekindDomain/PID.lean Modified Mathlib/RingTheory/MvPolynomial/Symmetric/FundamentalTheorem.lean Modified Mathlib/RingTheory/MvPowerSeries/Basic.lean Modified Mathlib/RingTheory/MvPowerSeries/Trunc.lean Modified Mathlib/RingTheory/PowerSeries/Trunc.lean Modified Mathlib/RingTheory/PrincipalIdealDomain.lean Modified Mathlib/RingTheory/Valuation/RankOne.lean 2025-07-15 08:53:03 6b9514a feat(Topology/GDelta/Basic): two basic lemmas about unions of meagre sets (#26979) The union of two meagre sets is meagre; generalise countable union lemma to any countable type. ESTIMATED CHANGES Modified Mathlib/Topology/GDelta/Basic.lean + theorem IsMeagre.empty + theorem IsMeagre.union +/- theorem isMeagre_iUnion - theorem meagre_empty 2025-07-15 08:53:01 db44481 chore: golf CategoryTheory/ using `grind` (#26691) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/ConnectedComponents.lean Modified Mathlib/CategoryTheory/Filtered/Basic.lean Modified Mathlib/CategoryTheory/Functor/FullyFaithful.lean Modified Mathlib/CategoryTheory/Limits/Shapes/IsTerminal.lean Modified Mathlib/CategoryTheory/Limits/Shapes/SingleObj.lean 2025-07-15 08:52:57 40b305c feat(CategoryTheory/Topos): subobject classifier without limits (#26556) Adds an alternative API for constructing a subobject classifier without reference to limits. This PR modifies two files: - `Mathlib/CategoryTheory/Limits/Shapes/Pullback/CommSq.lean`: Adds strengthened versions of two existing theorems: - `of_horiz_isIso_mono` (alongside the existing `of_horiz_isIso`) - `of_vert_isIso_mono` (alongside the existing `of_vert_isIso`) - `Mathlib/CategoryTheory/Topos/Classifier.lean`: Addresses the TODO (removed from the file): > Make API for constructing a subobject classifier without reference to limits (replacing `⊤_ C` with an arbitrary `Ω₀ : C` and including the assumption `mono truth`) This implementation accepts a monomorphism `truth : Ω₀ ⟶ Ω` such that for every monomorphism `m : U ⟶ X` there exists a pair `χ₀ : U ⟶ Ω₀` and `χ : X ⟶ Ω` which creates a pullback square and `χ` must be unique in that it admits such a pair. Given these assumptions, we construct an instance of the existing `Classifier` structure, alongside with a proof that `Ω₀` is terminal. Klaus Gy ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Limits/Shapes/Pullback/CommSq.lean +/- theorem CategoryTheory.IsPullback.of_horiz_isIso + theorem CategoryTheory.IsPullback.of_horiz_isIso_mono +/- theorem CategoryTheory.IsPullback.of_vert_isIso + theorem CategoryTheory.IsPullback.of_vert_isIso_mono + theorem CategoryTheory.IsPushout.of_horiz_isIso_epi + theorem CategoryTheory.IsPushout.of_vert_isIso_epi Modified Mathlib/CategoryTheory/Subobject/MonoOver.lean Modified Mathlib/CategoryTheory/Topos/Classifier.lean + theorem CategoryTheory.Classifier.isTerminalFrom_eq_χ₀ + def CategoryTheory.Classifier.isTerminalΩ₀ + def CategoryTheory.Classifier.mkOfTerminalΩ₀ +/- theorem CategoryTheory.HasClassifier.comm +/- theorem CategoryTheory.HasClassifier.isPullback_χ +/- theorem CategoryTheory.HasClassifier.unique 2025-07-15 08:52:55 3d1fc47 fix(Topology/Covering): switch to standard definition (#24983) As discussed in [#mathlib4 > edge cases not covered by `IsCoveringMap` @ 💬](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/edge.20cases.20not.20covered.20by.20.60IsCoveringMap.60/near/518413081), the previous definition doesn't include examples like the inclusion of a one-point space into a two-point discrete space. ESTIMATED CHANGES Modified Mathlib/Topology/Covering.lean + theorem IsCoveringMap.mk' + theorem IsCoveringMap.of_discreteTopology + theorem IsCoveringMap.of_isEmpty + theorem IsCoveringMapOn.mk' +/- theorem IsCoveringMapOn.mk + theorem IsCoveringMapOn.of_isEmpty + theorem IsEvenlyCovered.discreteTopology_fiber +/- theorem IsEvenlyCovered.mem_toTrivialization_baseSet + theorem IsEvenlyCovered.of_fiber_homeomorph + theorem IsEvenlyCovered.of_preimage_eq_empty + theorem IsEvenlyCovered.of_trivialization +/- theorem IsEvenlyCovered.toTrivialization_apply +/- theorem IsEvenlyCovered.to_isEvenlyCovered_preimage Modified Mathlib/Topology/FiberBundle/Trivialization.lean + theorem Trivialization.continuousOn_proj Modified Mathlib/Topology/Homotopy/Lifting.lean 2025-07-15 08:52:53 f68e1d9 chore(Topology.MetricSpace.Lipschitz): stop depending on Topology.Algebra (#23498) Noticed while playing with the new `directoryDependency` linter. Not sure if these could be proved without assuming the continuity of real multiplication. Copyright from https://github.com/leanprover-community/mathlib3/pull/1921 and https://github.com/leanprover-community/mathlib4/pull/11840. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Analysis/Normed/Group/AddTorsor.lean Modified Mathlib/Analysis/NormedSpace/Multilinear/Basic.lean Modified Mathlib/Analysis/SpecialFunctions/Exp.lean Added Mathlib/Topology/Algebra/MetricSpace/Lipschitz.lean + theorem LipschitzOnWith.cauchySeq_comp + theorem LipschitzWith.cauchySeq_comp + theorem continuousAt_of_locally_lipschitz Modified Mathlib/Topology/MetricSpace/Algebra.lean Modified Mathlib/Topology/MetricSpace/IsometricSMul.lean Modified Mathlib/Topology/MetricSpace/Lipschitz.lean - theorem LipschitzOnWith.cauchySeq_comp - theorem LipschitzWith.cauchySeq_comp - theorem continuousAt_of_locally_lipschitz Modified Mathlib/Topology/MetricSpace/PiNat.lean 2025-07-15 08:11:10 341594f feat: characterise membership in `SO(2)` (#27121) Also rename the ring from `β` to `R` because that's a really weird name for a ring. From Toric ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/UnitaryGroup.lean +/- theorem Matrix.mem_orthogonalGroup_iff' +/- theorem Matrix.mem_orthogonalGroup_iff + theorem Matrix.mem_specialOrthogonalGroup_fin_two_iff + theorem Matrix.of_mem_specialOrthogonalGroup_fin_two_iff 2025-07-15 08:11:08 4627273 feat(Algebra/GroupWithZero/Range): MonoidWithZeroHom.(m)range_nontrivial (#27114) for proving that it is not densely ordered for PIR -> DVR for valuations Since this is a nontrivial set, then it can't be densely ordered when the codomain is Zm0, as shown in #27112. Together, it is used in #27117 to show that a Zm0-valued valuation's subring is a DVR. ESTIMATED CHANGES Modified Mathlib/Algebra/GroupWithZero/Range.lean + theorem MonoidWithZeroHom.mrange_nontrivial + theorem MonoidWithZeroHom.range_nontrivial 2025-07-15 08:11:06 1164c0d feat: semilinearize `LinearEquiv.conjRingEquiv` (#27104) ESTIMATED CHANGES Modified Mathlib/Algebra/Lie/OfAssociative.lean +/- theorem LieAlgebra.conj_ad_apply Modified Mathlib/Algebra/Module/Equiv/Basic.lean +/- def LinearEquiv.arrowCongr +/- def LinearEquiv.arrowCongrAddEquiv +/- theorem LinearEquiv.arrowCongr_apply +/- theorem LinearEquiv.arrowCongr_comp +/- theorem LinearEquiv.arrowCongr_symm_apply +/- theorem LinearEquiv.arrowCongr_trans +/- def LinearEquiv.conj +/- def LinearEquiv.conjRingEquiv +/- theorem LinearEquiv.conj_apply +/- theorem LinearEquiv.conj_apply_apply +/- theorem LinearEquiv.conj_comp +/- theorem LinearEquiv.conj_conj_symm +/- theorem LinearEquiv.conj_id +/- theorem LinearEquiv.conj_symm_conj +/- theorem LinearEquiv.conj_trans +/- def LinearEquiv.domMulActCongrRight +/- theorem LinearEquiv.symm_conj_apply Modified Mathlib/LinearAlgebra/Matrix/ToLin.lean 2025-07-15 08:11:05 1138526 refactor(LinearAlgebra/LinearIndependent): generalize some `LinearIndepOn` theorems (#27096) A lot of APIs and theorems for `LinearIndepOn` are stated only for `id`. This PR tries to generalize some of them to be non `id`, keeping the old `id` APIs as special cases. ESTIMATED CHANGES Modified Mathlib/Analysis/Normed/Unbundled/FiniteExtension.lean Modified Mathlib/LinearAlgebra/LinearIndependent/Lemmas.lean +/- theorem LinearIndepOn.extend_subset + theorem LinearIndepOn.image_subset_span_image_extend +/- theorem LinearIndepOn.linearIndepOn_extend +/- theorem LinearIndepOn.span_extend_eq_span + theorem LinearIndepOn.span_image_extend_eq_span_image +/- theorem LinearIndepOn.subset_extend +/- theorem LinearIndepOn.subset_span_extend +/- theorem exists_finite_card_le_of_finite_of_linearIndependent_of_span + theorem exists_linearIndepOn_extension +/- theorem exists_of_linearIndepOn_of_finite_span 2025-07-15 08:11:03 de0a293 doc(Algebra/Homology/Homotopy): add field docstrings to `HomotopyEquiv` (#27048) Split of https://github.com/leanprover-community/mathlib4/pull/25917. Adds docstrings to fields of a structure that did not have them. Note: this documentation was written by asking Cursor (Claude 3.5 sonnet) to write the docstrings. ESTIMATED CHANGES Modified Mathlib/Algebra/Homology/Homotopy.lean 2025-07-15 08:11:02 e7670e5 chore(Analysis/InnerProductSpace/Projection): deprecating `subtypeL ∘ orthogonalProjection` in favor of `starProjection` (#26877) This deprecates all `U.subtypeL ∘L U.orthogonalProjection` and `(U.orthogonalProjection v : E)` in favor of `U.starProjection` and `U.starProjection v` respectively in `Analysis/InnerProductSpace/Projection` and other files. ESTIMATED CHANGES Modified Mathlib/Analysis/InnerProductSpace/Adjoint.lean +/- theorem isStarProjection_starProjection Modified Mathlib/Analysis/InnerProductSpace/GramSchmidtOrtho.lean Modified Mathlib/Analysis/InnerProductSpace/Projection.lean - theorem LinearIsometry.map_orthogonalProjection' - theorem LinearIsometry.map_orthogonalProjection + theorem LinearIsometry.map_starProjection' + theorem LinearIsometry.map_starProjection + theorem Submodule.coe_orthogonalProjection_apply - theorem Submodule.eq_orthogonalProjection_of_eq_submodule - theorem Submodule.eq_orthogonalProjection_of_mem_of_inner_eq_zero - theorem Submodule.eq_orthogonalProjection_of_mem_orthogonal' - theorem Submodule.eq_orthogonalProjection_of_mem_orthogonal + theorem Submodule.eq_starProjection_of_eq_submodule + theorem Submodule.eq_starProjection_of_mem_of_inner_eq_zero + theorem Submodule.eq_starProjection_of_mem_orthogonal' + theorem Submodule.eq_starProjection_of_mem_orthogonal - theorem Submodule.id_eq_sum_orthogonalProjection_self_orthogonalComplement + theorem Submodule.id_eq_sum_starProjection_self_orthogonalComplement - theorem Submodule.inner_orthogonalProjection_left_eq_right + theorem Submodule.inner_starProjection_left_eq_right - theorem Submodule.orthogonalProjection_add_orthogonalProjection_orthogonal - theorem Submodule.orthogonalProjection_eq_self_iff - theorem Submodule.orthogonalProjection_inner_eq_zero - theorem Submodule.orthogonalProjection_isSymmetric - theorem Submodule.orthogonalProjection_map_apply - theorem Submodule.orthogonalProjection_minimal - theorem Submodule.orthogonalProjection_orthogonalProjection_of_le - theorem Submodule.orthogonalProjection_orthogonal_val - theorem Submodule.orthogonalProjection_singleton + theorem Submodule.orthogonalProjection_starProjection_of_le - theorem Submodule.orthogonalProjection_tendsto_closure_iSup - theorem Submodule.orthogonalProjection_tendsto_self - theorem Submodule.orthogonalProjection_unit_singleton - theorem Submodule.re_inner_orthogonalProjection_eq_normSq - theorem Submodule.re_inner_orthogonalProjection_nonneg + theorem Submodule.re_inner_starProjection_eq_normSq + theorem Submodule.re_inner_starProjection_nonneg +/- theorem Submodule.reflection_apply - theorem Submodule.smul_orthogonalProjection_singleton + theorem Submodule.smul_starProjection_singleton + theorem Submodule.starProjection_add_starProjection_orthogonal + theorem Submodule.starProjection_eq_self_iff + theorem Submodule.starProjection_inner_eq_zero + theorem Submodule.starProjection_isSymmetric + theorem Submodule.starProjection_map_apply + theorem Submodule.starProjection_minimal + theorem Submodule.starProjection_orthogonal_val + theorem Submodule.starProjection_singleton + theorem Submodule.starProjection_tendsto_closure_iSup + theorem Submodule.starProjection_tendsto_self + theorem Submodule.starProjection_unit_singleton - theorem Submodule.sub_orthogonalProjection_mem_orthogonal + theorem Submodule.sub_starProjection_mem_orthogonal Modified Mathlib/Geometry/Euclidean/Projection.lean Modified Mathlib/Geometry/Manifold/Instances/Sphere.lean Modified Mathlib/MeasureTheory/Function/ConditionalExpectation/CondexpL2.lean 2025-07-15 08:11:00 78257c2 chore: golf RingTheory/ using `grind` (#26698) ESTIMATED CHANGES Modified Mathlib/RingTheory/DividedPowers/Basic.lean 2025-07-15 08:10:58 d660e92 chore: golf LinearAlgebra/ using `grind` (#26685) ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/AffineSpace/AffineMap.lean Modified Mathlib/LinearAlgebra/AffineSpace/Independent.lean Modified Mathlib/LinearAlgebra/Dimension/DivisionRing.lean Modified Mathlib/LinearAlgebra/LinearPMap.lean Modified Mathlib/LinearAlgebra/Matrix/Determinant/Basic.lean Modified Mathlib/LinearAlgebra/Matrix/Transvection.lean Modified Mathlib/LinearAlgebra/Multilinear/Basic.lean Modified Mathlib/LinearAlgebra/RootSystem/Basic.lean 2025-07-15 08:10:56 09161bd chore: golf GroupTheory/ using `grind` (#26681) ESTIMATED CHANGES Modified Mathlib/GroupTheory/CoprodI.lean Modified Mathlib/GroupTheory/Coxeter/Inversion.lean Modified Mathlib/GroupTheory/Perm/Cycle/PossibleTypes.lean Modified Mathlib/GroupTheory/Perm/Cycle/Type.lean Modified Mathlib/GroupTheory/Perm/Support.lean 2025-07-15 08:10:54 59c80bc feat: equivalent condition for subgroups to be simple (#26552) And simpleness of isomorphic groups are equivalent. Required to prove that A_n is simple iff n = 3 or 5 ≤ n(#26051). ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Subgroup/Ker.lean Modified Mathlib/GroupTheory/Subgroup/Simple.lean + theorem MulEquiv.isSimpleGroup + theorem MulEquiv.isSimpleGroup_congr 2025-07-15 08:10:53 d0f1801 feat(AlgebraicTopology): cylinder objects in model categories (#26171) We introduce a notion of (pre)cylinder for an object `A : C` in a model category. It consists of an object `I`, a weak equivalence `π : I ⟶ A` equipped with two sections `i₀` and `i₁`. This notion shall be important in the definition of "left homotopies" in model categories. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/AlgebraicTopology/ModelCategory/Cylinder.lean + theorem HomotopicalAlgebra.Cylinder.exists_very_good + theorem HomotopicalAlgebra.Cylinder.ofFactorizationData_i + def HomotopicalAlgebra.Cylinder.symm + theorem HomotopicalAlgebra.Cylinder.symm_i + structure HomotopicalAlgebra.Cylinder + theorem HomotopicalAlgebra.Precylinder.inl_i + theorem HomotopicalAlgebra.Precylinder.inr_i + def HomotopicalAlgebra.Precylinder.symm + theorem HomotopicalAlgebra.Precylinder.symm_i + structure HomotopicalAlgebra.Precylinder Modified Mathlib/AlgebraicTopology/ModelCategory/Instances.lean Modified Mathlib/AlgebraicTopology/ModelCategory/IsCofibrant.lean + theorem HomotopicalAlgebra.isCofibrant_of_cofibration + theorem HomotopicalAlgebra.isFibrant_of_fibration Modified Mathlib/CategoryTheory/Limits/Shapes/Pullback/CommSq.lean + theorem CategoryTheory.IsPushout.of_coprod_inl_with_id + theorem CategoryTheory.IsPushout.of_isColimit_binaryCofan_of_isInitial 2025-07-15 08:10:51 42d7516 feat(Aesop): Improve SetLike ruleset (#25961) * Make some Aesop rules in the SetLike ruleset unsafe * Register new rules with the Aesop SetLike ruleset, by analogy with existing ones * Add new rules like `mem_closure_of_mem` by analogy with #26162 to improve performance in proving membership of closures. Before this PR, to prove something like `x ∈ s ⊢ x ∈ closure s`, Aesop would have to try the rule `mem_of_subset`, creating a metavariable that it would then try to fill with `subset_closure` . Obviously this was pretty inefficient, and the new lemma `mem_closure_of_mem` is a much more usable Aesop rule. * Update some Aesop rules' probabilities * Add new library note [SetLike Aesop ruleset] explaining the principles behind the new design The design note stipulates that `safe`-phase Aesop rules are to also be `simp` rules; this change has been split into #26175 ESTIMATED CHANGES Modified Mathlib/Algebra/Field/Subfield/Defs.lean Modified Mathlib/Algebra/Group/Subgroup/Defs.lean Modified Mathlib/Algebra/Group/Submonoid/Defs.lean Modified Mathlib/Algebra/Group/Subsemigroup/Defs.lean Modified Mathlib/Algebra/Polynomial/Module/AEval.lean Modified Mathlib/Algebra/Star/Basic.lean + theorem mem_of_star_mem Modified Mathlib/Algebra/Star/SelfAdjoint.lean Modified Mathlib/Data/SetLike/Basic.lean Modified Mathlib/Geometry/Convex/Cone/Basic.lean Modified Mathlib/GroupTheory/GroupAction/SubMulAction.lean Modified Mathlib/LinearAlgebra/Span/Defs.lean Modified Mathlib/Order/BooleanSubalgebra.lean + theorem BooleanSubalgebra.mem_closure_of_mem Modified Mathlib/RingTheory/NonUnitalSubsemiring/Basic.lean + theorem NonUnitalSubsemiring.mem_closure_of_mem Modified Mathlib/Tactic/SetLike.lean Modified Mathlib/Topology/Algebra/StarSubalgebra.lean 2025-07-15 08:10:47 92dbb75 chore: rename arguments to `Matrix.submatrix` (#24883) I'm suggesting this change for the following reasons: (1) managing expectations — `r_reindex` looks more like a propositional argument at first glance (2) the original naming does not do justice to its motivation — there is nothing called `r` and `c` here — it would need to be `row_reindex` and `col_reindex` or something like that (if we wanted to use the convention for naming constants even tho we are naming a variable here) ESTIMATED CHANGES Modified Mathlib/Data/Matrix/ConjTranspose.lean +/- theorem Matrix.conjTranspose_submatrix Modified Mathlib/Data/Matrix/Defs.lean +/- def Matrix.submatrix +/- theorem Matrix.submatrix_apply +/- theorem Matrix.transpose_submatrix 2025-07-15 07:59:16 3c10489 chore: golf AlgebraicGeometry/ using `grind` (#26695) ESTIMATED CHANGES Modified Mathlib/AlgebraicGeometry/ResidueField.lean Modified Mathlib/AlgebraicGeometry/Scheme.lean Modified Mathlib/AlgebraicGeometry/StructureSheaf.lean 2025-07-14 23:31:13 507dd92 feat: add instance `CanonicallyOrderedAdd` for `Ordinal` (#27145) ESTIMATED CHANGES Modified Mathlib/SetTheory/Ordinal/Arithmetic.lean Modified Mathlib/SetTheory/Ordinal/Basic.lean 2025-07-14 21:16:02 0bf2572 chore(Algebra): replace CoeFun.coe with DFunLike.coe (#27146) ESTIMATED CHANGES Modified Mathlib/Algebra/Module/Equiv/Defs.lean +/- theorem LinearEquiv.coe_injective 2025-07-14 21:16:00 d354aa9 chore: replace `DFunLike` → `FunLike` if possible (#27144) This replacement doesn't change the meaning. It's just shorter. ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/NonUnitalHom.lean Modified Mathlib/AlgebraicTopology/SimplicialSet/StdSimplex.lean Modified Mathlib/GroupTheory/Perm/Centralizer.lean Modified Mathlib/MeasureTheory/Measure/AddContent.lean 2025-07-14 21:15:59 15b4184 chore(RingTheory/ValuationSubring): valuationSubring_integers (#27111) helper lemma to get access to prop-style properties of valuation integer ring ESTIMATED CHANGES Modified Mathlib/RingTheory/Valuation/ValuationSubring.lean + theorem Valuation.valuationSubring.integers 2025-07-14 20:27:06 9aeee99 feat: Subtype.map_{eq,ne} (#27012) ESTIMATED CHANGES Modified Mathlib/Data/Subtype.lean + theorem Subtype.map_eq + theorem Subtype.map_ne 2025-07-14 16:30:10 5338f34 feat(CategoryTheory): `inv (μ F X Y) = δ F X Y` (#27061) and other basic lemmas From Toric ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Monoidal/Braided/Basic.lean + theorem CategoryTheory.MonoidalCategory.tensorμ_comp_μ_tensorHom_μ_comp_μ Modified Mathlib/CategoryTheory/Monoidal/Functor.lean + theorem CategoryTheory.Functor.LaxMonoidal.tensorHom_ε_comp_μ + theorem CategoryTheory.Functor.LaxMonoidal.tensorUnit_whiskerLeft_comp_leftUnitor_hom + theorem CategoryTheory.Functor.LaxMonoidal.whiskerLeft_μ_comp_μ + theorem CategoryTheory.Functor.LaxMonoidal.whiskerRight_tensorUnit_comp_rightUnitor_hom + theorem CategoryTheory.Functor.LaxMonoidal.ε_tensorHom_comp_μ + theorem CategoryTheory.Functor.LaxMonoidal.μ_whiskerRight_comp_μ + theorem CategoryTheory.Functor.Monoidal.inv_δ + theorem CategoryTheory.Functor.Monoidal.inv_ε + theorem CategoryTheory.Functor.Monoidal.inv_η + theorem CategoryTheory.Functor.Monoidal.inv_μ + theorem CategoryTheory.Functor.OplaxMonoidal.δ_comp_tensorHom_η + theorem CategoryTheory.Functor.OplaxMonoidal.δ_comp_whiskerLeft_δ + theorem CategoryTheory.Functor.OplaxMonoidal.δ_comp_δ_whiskerRight + theorem CategoryTheory.Functor.OplaxMonoidal.δ_comp_η_tensorHom 2025-07-14 15:57:53 6f9f6ef feat(LinearAlgebra/Finsupp/LinearCombination): add `Submodule.mem_span_finset'` (#27097) which is an variant of `Submodule.mem_span_finset` using `s` as the index type. ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/Finsupp/LinearCombination.lean + theorem Submodule.mem_span_finset' 2025-07-14 15:13:57 f68fe3b feat: `(vecMulVec _ _).rank ≤ 1` (#27075) We had a copy of this already for `.toLin'.rank`, but we leave deprecating this until we have a better replacement. Discussed in [#new members > Is this a reasonable formalization? @ 💬](https://leanprover.zulipchat.com/#narrow/channel/113489-new-members/topic/Is.20this.20a.20reasonable.20formalization.3F/near/528413552) ESTIMATED CHANGES Modified Mathlib/Analysis/Normed/Module/FiniteDimension.lean Modified Mathlib/Data/Matrix/Rank.lean + theorem Matrix.rank_vecMulVec.{u} + theorem Matrix.rank_vecMulVec_le Modified Mathlib/LinearAlgebra/FreeModule/Finite/Matrix.lean - theorem Matrix.rank_vecMulVec Modified Mathlib/LinearAlgebra/Matrix/FiniteDimensional.lean 2025-07-14 14:29:21 94d81ee refactor: deprecate `sSup_le_sSup_of_forall_exists_le` in `CompleteLattice` in favor of `sSup_le_sSup_of_isCofinalFor` (#27124) The argument `(h : ∀ x ∈ s, ∃ y ∈ t, x ≤ y)` of `sSup_le_sSup_of_forall_exists_le` is essentially `IsCofinalFor s t`, this PR therefore deprecates this theorem in favor of `theorem sSup_le_sSup_of_isCofinalFor (h : IsCofinalFor s t) : sSup s ≤ sSup t`. The same applies to `sInf_le_sInf_of_forall_exists_le` which is deprecated in favor of `sInf_le_sInf_of_isCoinitialFor`. TODO: - [x] When the tests pass, uncomment `sSup_le_sSup_of_forall_exists_le` and `sInf_le_sInf_of_forall_exists_le` and deprecate them. ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Measure/Sub.lean Modified Mathlib/Order/CompleteLattice/Basic.lean + theorem sInf_le_sInf_of_isCoinitialFor + theorem sSup_le_sSup_of_isCofinalFor Modified Mathlib/RingTheory/Filtration.lean Modified Mathlib/RingTheory/GradedAlgebra/Radical.lean 2025-07-14 12:58:53 958ad8b refactor(Analysis/Convex/Mul): generalize the domain of functions (#27002) Previously, all the results in this file assumed that the domain of functions is the base field. This PR changes the domain to a general vector space. ESTIMATED CHANGES Modified Mathlib/Analysis/Convex/Mul.lean 2025-07-14 12:58:51 bca1e1d feat(Mathlib/Order/PartialSups): add `PartialSups` composition lemma (#26848) - `comp_partialSups` ESTIMATED CHANGES Modified Mathlib/Order/PartialSups.lean + theorem comp_partialSups 2025-07-14 12:58:49 da48ff7 feat(Data/ENNReal): Add `sub_lt_iff_lt_left` and similar lemmas (#26815) - `sub_lt_iff_lt_left` - `le_sub_iff_add_le_left` - `le_sub_iff_add_le_right` ESTIMATED CHANGES Modified Mathlib/Data/ENNReal/Operations.lean + theorem ENNReal.le_sub_iff_add_le_left + theorem ENNReal.le_sub_iff_add_le_right 2025-07-14 12:58:47 94a359f fix(Logic/Function/Basic): change precedence of uncurry prefix operator to max (#26742) This reverts the behaviour to what it was in mathlib3 and allows us to write ↿f z instead of (↿f) z. ESTIMATED CHANGES Modified Mathlib/Analysis/Convolution.lean Modified Mathlib/Logic/Function/Basic.lean Modified Mathlib/Order/Filter/Curry.lean Modified Mathlib/Topology/Algebra/GroupWithZero.lean Modified Mathlib/Topology/Order/ProjIcc.lean Modified Mathlib/Topology/Path.lean Modified Mathlib/Topology/UniformSpace/HeineCantor.lean Modified Mathlib/Topology/UniformSpace/UniformConvergence.lean Modified MathlibTest/fun_prop_dev.lean 2025-07-14 12:29:37 3f20efc feat: inequalities for `(P ↓∩ Q).encard` (#27093) Prove `(P ↓∩ Q).encard ≤ P.encard` and `(P ↓∩ Q).encard ≤ Q.encard`. Done for the Carleson project. ESTIMATED CHANGES Modified Mathlib/Data/Set/Card.lean + theorem Set.encard_preimage_val_le_encard_left + theorem Set.encard_preimage_val_le_encard_right 2025-07-14 12:29:35 4a11824 chore(CategoryTheory/Limits/Shapes/End): (iso)ext for (co)wedges (#27091) We provide a thin wrapper around `Cones.ext` in the case of (co)wedges that hides away their nature as multicospans in order to ease work with them. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Limits/Shapes/End.lean + def CategoryTheory.Limits.Cowedge.ext + def CategoryTheory.Limits.Wedge.ext 2025-07-14 12:29:34 5fc653f feat: `ENNReal.pow_le_pow_left_iff`, etc. (#27056) * `ENNReal.pow_le_pow_left_iff` * `ENNReal.pow_lt_pow_left_iff` * `ENNReal.pow_le_pow_left` * `ENNReal.pow_lt_pow_left` From Carleson ESTIMATED CHANGES Modified Mathlib/Data/ENNReal/Operations.lean 2025-07-14 11:05:17 41ed3a3 chore: fix instance name namespacing (#27106) The two instances `LocallyFiniteOrder.toLocallyFiniteOrderTop` and `Finset.LocallyFiniteOrder.toLocallyFiniteOrderBot` are dual to each other, but one of them is namespaced more than the other. ESTIMATED CHANGES Modified Mathlib/Order/Interval/Finset/Defs.lean 2025-07-14 10:55:29 5dc620c feat(CategoryTheory/Limits/Shapes/End): functoriality of (co)ends (#27079) We define basic functoriality properties of the construction `F ↦ end_ F`, and bundle it as a functor whenever all ends exist. The same is done for coends. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Limits/Shapes/End.lean + theorem CategoryTheory.Limits.coend.map_comp + theorem CategoryTheory.Limits.coend.map_id + theorem CategoryTheory.Limits.coend.ι_map + theorem CategoryTheory.Limits.end_.map_comp + theorem CategoryTheory.Limits.end_.map_id + theorem CategoryTheory.Limits.end_.map_π 2025-07-14 10:26:38 8d72c49 chore(CategoryTheory): rename `tensor_id` to `id_tensorHom_id` (#27122) This is simply misnamed. From Toric ESTIMATED CHANGES Modified Mathlib/Algebra/Category/ModuleCat/Monoidal/Basic.lean + theorem ModuleCat.MonoidalCategory.id_tensorHom_id - theorem ModuleCat.MonoidalCategory.tensor_id Modified Mathlib/Algebra/Category/ModuleCat/Presheaf/Monoidal.lean Modified Mathlib/CategoryTheory/Dialectica/Monoidal.lean + theorem CategoryTheory.Dial.id_tensorHom_id - theorem CategoryTheory.Dial.tensor_id Modified Mathlib/CategoryTheory/GradedObject/Monoidal.lean + theorem CategoryTheory.GradedObject.Monoidal.id_tensorHom_id - theorem CategoryTheory.GradedObject.Monoidal.tensor_id Modified Mathlib/CategoryTheory/Localization/Monoidal.lean + theorem CategoryTheory.Localization.Monoidal.id_tensorHom_id - theorem CategoryTheory.Localization.Monoidal.tensor_id Modified Mathlib/CategoryTheory/Monoidal/Cartesian/Basic.lean + theorem CategoryTheory.CartesianMonoidalCategory.ofChosenFiniteProducts.id_tensorHom_id - theorem CategoryTheory.CartesianMonoidalCategory.ofChosenFiniteProducts.tensor_id Modified Mathlib/CategoryTheory/Monoidal/Category.lean Modified Mathlib/CategoryTheory/Monoidal/Free/Basic.lean Modified Mathlib/CategoryTheory/Monoidal/Preadditive.lean Modified Mathlib/CategoryTheory/Monoidal/Transport.lean Modified Mathlib/LinearAlgebra/QuadraticForm/QuadraticModuleCat/Monoidal.lean 2025-07-14 07:48:36 5c2f1dd refactor (Algebra.Category.FGModuleCat.Limits): weakens hypothesis on the ring from "field" to "noetherian ring" (#27077) Prove that `FGModuleCat k` has all finite limits for `k` a noetherian ring. ESTIMATED CHANGES Modified Mathlib/Algebra/Category/FGModuleCat/Limits.lean 2025-07-14 06:20:16 eb278a2 feat(Valued/LocallyCompact): locally compact iff complete and DVR and finite residue field (#26549) generalized from NontriviallyNormedFields to any RankOne Valued field even though one can get a `NontriviallyNormedField` instance when opening a scope it's better to provide the proofs such that they work on Valued directly, like on Zm0 ESTIMATED CHANGES Modified Mathlib/Topology/Algebra/Valued/LocallyCompact.lean +/- theorem Valued.integer.compactSpace_iff_completeSpace_and_isDiscreteValuationRing_and_finite_residueField +/- theorem Valued.integer.isDiscreteValuationRing_of_compactSpace +/- theorem Valued.integer.isPrincipalIdealRing_of_compactSpace +/- theorem Valued.integer.properSpace_iff_compactSpace_integer +/- theorem Valued.integer.properSpace_iff_completeSpace_and_isDiscreteValuationRing_integer_and_finite_residueField +/- theorem Valued.integer.totallyBounded_iff_finite_residueField Modified Mathlib/Topology/Algebra/Valued/NormedValued.lean + theorem Valued.toNormedField.setOf_mem_integer_eq_closedBall 2025-07-14 05:43:38 1b078c8 chore(Algebra/Equiv/TransferInstance): split according to algebraic structures (#26732) Split `Algebra.Equiv.TransferInstance` into * `Algebra.Group.TransferInstance` * `Algebra.GroupWithZero.TransferInstance` * `Algebra.Ring.TransferInstance` * `Algebra.Field.TransferInstance` * `Algebra.Module.TransferInstance` * `Algebra.Algebra.TransferInstance` Restore the `Nontrivial (Shrink α)` instance that was accidentally deleted in #26774. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Algebra/Shrink.lean Added Mathlib/Algebra/Algebra/TransferInstance.lean + def Equiv.algEquiv + theorem Equiv.algEquiv_apply + theorem Equiv.algEquiv_symm_apply + theorem Equiv.algebraMap_def Modified Mathlib/Algebra/Category/Grp/Limits.lean Modified Mathlib/Algebra/Category/MonCat/Limits.lean Modified Mathlib/Algebra/Category/Ring/Limits.lean Deleted Mathlib/Algebra/Equiv/TransferInstance.lean - def Equiv.algEquiv - theorem Equiv.algEquiv_apply - theorem Equiv.algEquiv_symm_apply - theorem Equiv.algebraMap_def - def Equiv.linearEquiv - def Equiv.ringEquiv - theorem Equiv.ringEquiv_apply - theorem Equiv.ringEquiv_symm_apply - theorem LinearEquiv.isScalarTower Modified Mathlib/Algebra/Field/Shrink.lean Added Mathlib/Algebra/Field/TransferInstance.lean Modified Mathlib/Algebra/Group/Shrink.lean Modified Mathlib/Algebra/GroupWithZero/Shrink.lean Added Mathlib/Algebra/GroupWithZero/TransferInstance.lean Modified Mathlib/Algebra/Module/LocalizedModule/Basic.lean Modified Mathlib/Algebra/Module/Shrink.lean Added Mathlib/Algebra/Module/TransferInstance.lean + def Equiv.linearEquiv + theorem LinearEquiv.isScalarTower Modified Mathlib/Algebra/Ring/Shrink.lean Added Mathlib/Algebra/Ring/TransferInstance.lean + def Equiv.ringEquiv + theorem Equiv.ringEquiv_apply + theorem Equiv.ringEquiv_symm_apply Modified Mathlib/CategoryTheory/Monoidal/Cartesian/CommGrp_.lean Modified Mathlib/CategoryTheory/Monoidal/Cartesian/CommMon_.lean Modified Mathlib/CategoryTheory/Monoidal/Cartesian/Grp_.lean Modified Mathlib/CategoryTheory/Monoidal/Internal/Types/CommGrp_.lean Modified Mathlib/CategoryTheory/Monoidal/Internal/Types/Grp_.lean Modified Mathlib/FieldTheory/Cardinality.lean Modified Mathlib/Logic/Small/Defs.lean Modified Mathlib/RingTheory/Localization/BaseChange.lean Modified Mathlib/RingTheory/OrzechProperty.lean Modified Mathlib/RingTheory/Regular/RegularSequence.lean Modified Mathlib/SetTheory/Cardinal/Free.lean Modified Mathlib/Topology/Algebra/UniformRing.lean 2025-07-14 05:34:32 8e7f51e feat(Bialgebra/Equiv): basic lemmas (#27041) From Toric ESTIMATED CHANGES Modified Mathlib/RingTheory/Bialgebra/Equiv.lean + theorem BialgEquiv.apply_symm_apply +/- theorem BialgEquiv.coe_mk + theorem BialgEquiv.comp_symm + theorem BialgEquiv.symm_apply_apply + theorem BialgEquiv.symm_comp + theorem BialgEquiv.toAlgEquiv_toRingHom + theorem BialgEquiv.toRingEquiv_toRingHom Modified Mathlib/RingTheory/Bialgebra/Hom.lean 2025-07-14 03:20:05 1ee1c8e refactor(Algebra/Module): rename `AddCommGroup.toNatModule` to `AddCommMonoid.toNatModule` (#27103) It was named under `AddCommGroup` namespace but takes a `AddCommMonoid`. ESTIMATED CHANGES Modified Mathlib/Algebra/Module/NatInt.lean Modified Mathlib/Tactic/Module.lean Modified MathlibTest/instance_diamonds/FieldTheory/IsAlgClosed/AlgebraicClosure.lean Modified MathlibTest/instance_diamonds/FieldTheory/SplittingField/Construction.lean 2025-07-14 02:22:15 bb2c328 chore: golf Logic/ using `grind` (#26696) ESTIMATED CHANGES Modified Mathlib/Logic/Equiv/Basic.lean Modified Mathlib/Logic/Relation.lean 2025-07-14 01:46:50 182c786 feat(gcongr): let `gcongr` take a depth parameter, analogous to `congr` (#25928) This allows writing `gcongr 2` to limit the depth of `gcongr`. ESTIMATED CHANGES Modified Mathlib/Tactic/GCongr/Core.lean Modified MathlibTest/GCongr/implications.lean Modified MathlibTest/GCongr/inequalities.lean Modified MathlibTest/GCongr/mod.lean 2025-07-14 01:11:24 d7d390d feat(Algebra/Module/LinearMap): add `AddMonoidHom.coe_toNatLinearMap` (#27085) which is similar to `AddMonoidHom.coe_toIntLinearMap`. ESTIMATED CHANGES Modified Mathlib/Algebra/Module/LinearMap/Defs.lean + theorem AddMonoidHom.coe_toNatLinearMap 2025-07-13 21:03:51 fd96d2d doc(LinearAlgebra/AffineSpace/AffineMap): elaborate docstrings (#27052) Split off #25917. Makes some docstrings a bit more specific. Note: this documentation was written by asking Cursor to write the docstrings. ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/AffineSpace/AffineMap.lean 2025-07-13 20:41:08 d82d5c6 refactor: remove superfluous assumption in `iInf_invariant` (#27080) ESTIMATED CHANGES Modified Mathlib/Algebra/Module/Submodule/Map.lean +/- theorem LinearMap.iInf_invariant 2025-07-13 20:41:06 d2064d6 feat: `AddEquiv.finsuppUnique_apply` (#27045) ... and some other easy lemmas From Toric ESTIMATED CHANGES Modified Mathlib/Algebra/FreeAbelianGroup/Finsupp.lean + theorem Finsupp.toFreeAbelianGroup_single +/- theorem FreeAbelianGroup.toFinsupp_of Modified Mathlib/Algebra/Group/Finsupp.lean + theorem AddEquiv.finsuppUnique_apply 2025-07-13 19:58:34 27ba7f0 feat: `FreeAbelianGroup.lift` as an equivalence of groups (#27032) From Toric ESTIMATED CHANGES Modified Mathlib/GroupTheory/FreeAbelianGroup.lean - theorem FreeAbelianGroup.lift.add' + def FreeAbelianGroup.liftAddEquiv + theorem FreeAbelianGroup.lift_add + theorem FreeAbelianGroup.lift_add_apply - theorem FreeAbelianGroup.lift_neg' + theorem FreeAbelianGroup.lift_neg + theorem FreeAbelianGroup.lift_neg_apply +/- def FreeAbelianGroup.seqAddGroupHom Modified scripts/nolints_prime_decls.txt 2025-07-13 19:12:30 484928b chore(Analysis/InnerProductSpace/Adjoint): remove additional hypothesis of completeness when finite (#27068) ESTIMATED CHANGES Modified Mathlib/Analysis/InnerProductSpace/Adjoint.lean +/- theorem ContinuousLinearMap.isSelfAdjoint_toLinearMap_iff +/- theorem LinearMap.isSelfAdjoint_toContinuousLinearMap_iff 2025-07-13 18:42:26 10634f1 feat(LinearAlgebra/Matrix): add `LinearMap.toMatrix'_mulVec` (#27086) There is a `LinearMap.toMatrix_mulVec_repr` but not its `toMatrix'` version, which can be proved as a simple corollary of `Matrix.toLin'_apply`. ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/Matrix/ToLin.lean + theorem LinearMap.toMatrix'_mulVec 2025-07-13 18:42:24 a82afca fix(Cache): missing string interpolation in error message (#27084) ESTIMATED CHANGES Modified Cache/IO.lean 2025-07-13 18:42:23 6ea44f0 chore(Analysis/InnerProductSpace/Positive): typo (#27078) ESTIMATED CHANGES Modified Mathlib/Analysis/InnerProductSpace/Positive.lean - theorem ContinuousLinearMap.IsPositive.of_isStarPojection + theorem ContinuousLinearMap.IsPositive.of_isStarProjection 2025-07-13 18:42:21 8608bbd feat: allow trivial rings in `Matrix.rank_mul_le` (#27074) Now that the instance from `CommRing` to `StrongRankCondition` is imported, we can weaken to `Nontrivial`. `nontriviality` can then eliminate this assumption from some later lemmas. ESTIMATED CHANGES Modified Mathlib/Data/Matrix/Rank.lean +/- theorem Matrix.cRank_one + theorem Matrix.cRank_subsingleton +/- theorem Matrix.eRank_one + theorem Matrix.eRank_subsingleton +/- theorem Matrix.rank_le_card_height +/- theorem Matrix.rank_le_card_width +/- theorem Matrix.rank_le_height +/- theorem Matrix.rank_le_width +/- theorem Matrix.rank_mul_le +/- theorem Matrix.rank_mul_le_left +/- theorem Matrix.rank_mul_le_right +/- theorem Matrix.rank_of_isUnit +/- theorem Matrix.rank_one +/- theorem Matrix.rank_submatrix_le + theorem Matrix.rank_subsingleton +/- theorem Matrix.rank_unit Modified Mathlib/LinearAlgebra/Dimension/Finrank.lean + theorem Module.finrank_subsingleton 2025-07-13 18:07:54 1358fbc feat(Logic/Equiv/Fin): add `finSumFinEquiv_symm_apply_castSucc` (#27081) which is a special case of `finSumFinEquiv_symm_apply_castAdd`, like `finSumFinEquiv_symm_last` to `finSumFinEquiv_symm_apply_natAdd`. ESTIMATED CHANGES Modified Mathlib/Logic/Equiv/Fin/Basic.lean + theorem finSumFinEquiv_symm_apply_castSucc 2025-07-13 17:45:12 96b05d6 doc(Algebra/Algebra/Rat): fix docstring typo in `cast_smul_eq_qsmul` (#27083) `cast_smul_eq_qsmul` is for `qsmul`, not for `nnqsmul`. ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/Rat.lean 2025-07-13 17:35:01 3adb6b6 feat: `Spec.map (Spec.fullyFaithful.preimage f).unop = f` (#27063) This is the simp normal form of `Spec.fullyFaithful.map_preimage f`. From Toric ESTIMATED CHANGES Modified Mathlib/AlgebraicGeometry/GammaSpecAdjunction.lean + theorem AlgebraicGeometry.Spec.map_preimage_unop 2025-07-13 17:16:00 91cdb45 feat(CategoryTheory/Monoidal/Opposite): the equivalence `Cᴹᵒᵖᴹᵒᵖ ≌ C` is monoidal (#25767) It was left as a TODO in #10415 that the equivalence `Cᴹᵒᵖᴹᵒᵖ ≌ C` is monoidal. We clear this todo. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Monoidal/Opposite.lean 2025-07-13 16:13:17 96f881c feat(Data/{Sum,Sigma}/Interval): Iic, Iio, Ici, and Ioi (#27009) This adds some missing `LocallyFiniteOrderBot` and `LocallyFiniteOrderTop` instances. ESTIMATED CHANGES Modified Mathlib/Data/Sigma/Interval.lean + theorem Sigma.Ici_mk + theorem Sigma.Iic_mk + theorem Sigma.Iio_mk + theorem Sigma.Ioi_mk Modified Mathlib/Data/Sum/Interval.lean + theorem Sum.Ici_inl + theorem Sum.Ici_inr + theorem Sum.Iic_inl + theorem Sum.Iic_inr + theorem Sum.Iio_inl + theorem Sum.Iio_inr + theorem Sum.Ioi_inl + theorem Sum.Ioi_inr + theorem Sum.Lex.Ici_inl + theorem Sum.Lex.Ici_inr + theorem Sum.Lex.Iic_inl + theorem Sum.Lex.Iic_inr + theorem Sum.Lex.Iio_inl + theorem Sum.Lex.Iio_inr + theorem Sum.Lex.Ioi_inl + theorem Sum.Lex.Ioi_inr 2025-07-13 16:02:47 c4747b4 feat(CategoryTheory/Monoidal/Cartesian): the tensor product of representable functors is representable (#27044) From Toric ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Monoidal/Cartesian/Basic.lean + def CategoryTheory.CartesianMonoidalCategory.homEquivToProd Modified Mathlib/CategoryTheory/Monoidal/Cartesian/FunctorCategory.lean 2025-07-13 12:29:27 d17cce2 feat: Fin.castPred_ne_zero (#27010) ESTIMATED CHANGES Modified Mathlib/Data/Fin/Basic.lean + theorem Fin.castPred_ne_zero 2025-07-13 09:01:56 a390088 feat: `F.op` is a right adjoint if `F` is a left adjoint (#27033) From Toric ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Adjunction/Opposites.lean 2025-07-13 06:48:06 f2bf11f feat: two lemmas about subtraction of norms (#27027) `‖u * v‖ - ‖u / v‖ ≤ 2 * ‖v‖`, `‖u * v‖ - ‖u / v‖ ≤ 2 * min ‖u‖ ‖v‖` and additive versions. ESTIMATED CHANGES Modified Mathlib/Analysis/Normed/Group/Basic.lean + theorem norm_mul_sub_norm_div_le_two_mul + theorem norm_mul_sub_norm_div_le_two_mul_min 2025-07-13 04:28:31 0704f76 feat(Analysis/InnerProductSpace/Adjoint): idempotent operator `T` is self-adjoint iff `(range T)ᗮ = ker T` (#26855) This adds that an idempotent operator `T` is self-adjoint iff `(range T)ᗮ = ker T`. - [x] depends on: #25958 - [x] depends on: #26792 Together with #26767 and #26631, we get that for an idempotent operator `T`, TFAE: - `T` is normal - `T` is self-adjoint - `T` is positive - `(range T)ᗮ = ker T` This means that there are several equivalences for star projection operators. ESTIMATED CHANGES Modified Mathlib/Algebra/Star/Module.lean + theorem IsIdempotentElem.star_iff Modified Mathlib/Analysis/InnerProductSpace/Adjoint.lean + theorem ContinuousLinearMap.IsIdempotentElem.isSelfAdjoint_iff_orthogonal_range + theorem ContinuousLinearMap.IsStarProjection.ext_iff - theorem IsIdempotentElem.hasOrthogonalProjection_range + theorem LinearMap.IsStarProjection.ext_iff Modified Mathlib/Analysis/InnerProductSpace/Projection.lean + theorem ContinuousLinearMap.IsIdempotentElem.hasOrthogonalProjection_range Modified Mathlib/LinearAlgebra/Projection.lean - theorem LinearMap.IsIdempotentElem.ext + theorem LinearMap.IsIdempotentElem.ext_iff Modified Mathlib/Topology/Algebra/Module/LinearMap.lean + theorem ContinuousLinearMap.IsIdempotentElem.ext_iff 2025-07-12 23:16:43 a4ebcd7 refactor(Probability/ProbabilityMassFunction): Make constructions use NNReal (#26596) This refactor makes the functions for Bernoulli/Binomial random variables take an NNReal parameter, rather than an ENNReal. This is convenient, since we have to prove `p \le 1` anyway, and this can now be done with `field_simp` for explicit p. ESTIMATED CHANGES Modified Mathlib/Probability/ProbabilityMassFunction/Binomial.lean +/- def PMF.binomial +/- theorem PMF.binomial_apply +/- theorem PMF.binomial_apply_last +/- theorem PMF.binomial_apply_self +/- theorem PMF.binomial_apply_zero +/- theorem PMF.binomial_one_eq_bernoulli Modified Mathlib/Probability/ProbabilityMassFunction/Constructions.lean +/- def PMF.bernoulli +/- theorem PMF.bernoulli_apply Modified Mathlib/Probability/ProbabilityMassFunction/Integrals.lean +/- theorem PMF.bernoulli_expectation 2025-07-12 22:24:34 1ceeead feat(CategoryTheory/Monoidal/Mod): `γ[M, M] = μ[M]` (#27046) From Toric ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Monoidal/Mod_.lean + theorem Mod_Class.smul_eq_mul 2025-07-12 17:03:01 ff4b239 chore: generalise syntactically `Over.tensorHom_left_fst` (#27034) Previously, the LHS was `(f ⊗ₘ g).left ≫ pullback.fst S.hom U.hom`. Now it is `f ⊗ₘ g).left ≫ pullback.fst fS fU`, which is syntactically more general. From Toric ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Monoidal/Cartesian/Over.lean +/- theorem CategoryTheory.Over.tensorHom_left_fst +/- theorem CategoryTheory.Over.tensorHom_left_snd 2025-07-12 16:39:02 acbc9c0 chore: rename `braidedCategoryOfFaithful` to `BraidedCategory.ofFaithful` (#27026) ... and make its last argument an `aesop_cat` auto-param. From Toric ESTIMATED CHANGES Modified Mathlib/Algebra/Category/AlgCat/Symmetric.lean Modified Mathlib/CategoryTheory/Action/Monoidal.lean Modified Mathlib/CategoryTheory/Monoidal/Braided/Basic.lean + def CategoryTheory.BraidedCategory.ofFaithful - def CategoryTheory.braidedCategoryOfFaithful Modified Mathlib/CategoryTheory/Monoidal/Skeleton.lean Modified Mathlib/CategoryTheory/Monoidal/Subcategory.lean Modified Mathlib/LinearAlgebra/QuadraticForm/QuadraticModuleCat/Symmetric.lean 2025-07-12 14:51:06 cd11c28 chore(Units): better follow the naming convention (#26251) Moves * `Units.ext` -> `Units.val_injective` * `Units.eq_iff` -> `Units.val_inj` ESTIMATED CHANGES Modified Mathlib/Algebra/GCDMonoid/Basic.lean Modified Mathlib/Algebra/Group/Center.lean Modified Mathlib/Algebra/Group/Units/Defs.lean - theorem Units.eq_iff +/- theorem Units.ext +/- theorem Units.val_eq_one + theorem Units.val_inj + theorem Units.val_injective Modified Mathlib/Algebra/Group/Units/Hom.lean +/- theorem Units.coeHom_injective Modified Mathlib/Algebra/Order/Monoid/Units.lean Modified Mathlib/Algebra/Polynomial/UnitTrinomial.lean Modified Mathlib/Algebra/Ring/Units.lean Modified Mathlib/Analysis/Complex/Isometry.lean Modified Mathlib/Data/Complex/Determinant.lean Modified Mathlib/Data/Fintype/Units.lean Modified Mathlib/Data/ZMod/Units.lean Modified Mathlib/FieldTheory/Finite/Basic.lean Modified Mathlib/GroupTheory/OrderOfElement.lean Modified Mathlib/LinearAlgebra/CliffordAlgebra/SpinGroup.lean Modified Mathlib/LinearAlgebra/Determinant.lean Modified Mathlib/LinearAlgebra/Lagrange.lean Modified Mathlib/LinearAlgebra/Matrix/SpecialLinearGroup.lean Modified Mathlib/NumberTheory/ArithmeticFunction.lean Modified Mathlib/NumberTheory/DirichletCharacter/Basic.lean Modified Mathlib/NumberTheory/DirichletCharacter/GaussSum.lean Modified Mathlib/NumberTheory/LucasPrimality.lean Modified Mathlib/NumberTheory/MulChar/Basic.lean Modified Mathlib/NumberTheory/NumberField/Units/Basic.lean Modified Mathlib/RingTheory/ClassGroup.lean Modified Mathlib/RingTheory/Fintype.lean Modified Mathlib/RingTheory/IntegralDomain.lean Modified Mathlib/RingTheory/RootsOfUnity/Basic.lean Modified Mathlib/RingTheory/RootsOfUnity/EnoughRootsOfUnity.lean Modified Mathlib/RingTheory/Valuation/RankOne.lean Modified Mathlib/Topology/Algebra/Constructions.lean Modified Mathlib/Topology/Algebra/IsOpenUnits.lean Modified MathlibTest/instance_diamonds.lean 2025-07-12 14:42:12 db7a73c feat: `CommGrp`-valued Yoneda embedding (#24778) From Toric ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Category/Grp/Yoneda.lean + def CommGrp.coyoneda + def CommGrp.coyonedaForget + def CommGrp.coyonedaType Added Mathlib/Algebra/Category/MonCat/Yoneda.lean + def CommMonCat.coyoneda + def CommMonCat.coyonedaForget + def CommMonCat.coyonedaType Modified Mathlib/CategoryTheory/Preadditive/Yoneda/Basic.lean + def AddCommGrp.preadditiveCoyonedaIso 2025-07-12 12:51:23 62fb68d feat(Bicategory/CatEnriched): 2-cat from Cat-enriched cat (#25784) A construction of the canonical strict bicategory structure given a `EnrichedCategory Cat C`. From the ∞-cosmos project. Co-Authored-By: Mario Carneiro ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Bicategory/CatEnriched.lean + theorem CategoryTheory.CatEnriched.comp_eq + theorem CategoryTheory.CatEnriched.eqToHom_hComp_eqToHom + def CategoryTheory.CatEnriched.hComp + theorem CategoryTheory.CatEnriched.hComp_assoc + theorem CategoryTheory.CatEnriched.hComp_assoc_heq + theorem CategoryTheory.CatEnriched.hComp_comp + theorem CategoryTheory.CatEnriched.hComp_id + theorem CategoryTheory.CatEnriched.hComp_id_heq + theorem CategoryTheory.CatEnriched.id_eq + theorem CategoryTheory.CatEnriched.id_hComp + theorem CategoryTheory.CatEnriched.id_hComp_heq + theorem CategoryTheory.CatEnriched.id_hComp_id + def CategoryTheory.CatEnriched + def CategoryTheory.CatEnrichedOrdinary.Hom.base + theorem CategoryTheory.CatEnrichedOrdinary.Hom.base_comp + theorem CategoryTheory.CatEnrichedOrdinary.Hom.base_eqToHom + theorem CategoryTheory.CatEnrichedOrdinary.Hom.base_id + theorem CategoryTheory.CatEnrichedOrdinary.Hom.comp_eq + theorem CategoryTheory.CatEnrichedOrdinary.Hom.ext + theorem CategoryTheory.CatEnrichedOrdinary.Hom.id_eq + def CategoryTheory.CatEnrichedOrdinary.Hom.mk + theorem CategoryTheory.CatEnrichedOrdinary.Hom.mk_comp + structure CategoryTheory.CatEnrichedOrdinary.Hom + theorem CategoryTheory.CatEnrichedOrdinary.base_mk + theorem CategoryTheory.CatEnrichedOrdinary.eqToHom_hComp_eqToHom + def CategoryTheory.CatEnrichedOrdinary.hComp + theorem CategoryTheory.CatEnrichedOrdinary.hComp_assoc + theorem CategoryTheory.CatEnrichedOrdinary.hComp_assoc_heq + theorem CategoryTheory.CatEnrichedOrdinary.hComp_comp + theorem CategoryTheory.CatEnrichedOrdinary.hComp_id + theorem CategoryTheory.CatEnrichedOrdinary.hComp_id_heq + def CategoryTheory.CatEnrichedOrdinary.homEquiv + theorem CategoryTheory.CatEnrichedOrdinary.homEquiv_comp + theorem CategoryTheory.CatEnrichedOrdinary.homEquiv_id + theorem CategoryTheory.CatEnrichedOrdinary.id_eq_eqToHom + theorem CategoryTheory.CatEnrichedOrdinary.id_hComp + theorem CategoryTheory.CatEnrichedOrdinary.id_hComp_heq + theorem CategoryTheory.CatEnrichedOrdinary.id_hComp_id + theorem CategoryTheory.CatEnrichedOrdinary.mk_base + def CategoryTheory.CatEnrichedOrdinary.toBase + def CategoryTheory.CatEnrichedOrdinary Modified Mathlib/CategoryTheory/Monoidal/Cartesian/Cat.lean + def CategoryTheory.Cat.fromChosenTerminalEquiv 2025-07-12 10:50:34 720505e feat(Tactic/Order): support `⊤`, `⊥`, and lattice operations (#26354) Support `⊤`, `⊥`, and lattice operations in the `order` tactic. ESTIMATED CHANGES Modified Mathlib/Tactic/Order.lean - def Mathlib.Tactic.Order.updateGraphWithNlt + def Mathlib.Tactic.Order.updateGraphWithNltInfSup Modified Mathlib/Tactic/Order/CollectFacts.lean +/- def Mathlib.Tactic.Order.collectFacts +/- def Mathlib.Tactic.Order.collectFactsImp Modified Mathlib/Tactic/Order/Graph/Basic.lean +/- def Mathlib.Tactic.Order.Graph.constructLeGraph Modified Mathlib/Tactic/Order/Preprocessing.lean +/- def Mathlib.Tactic.Order.preprocessFactsLinear +/- def Mathlib.Tactic.Order.preprocessFactsPartial +/- def Mathlib.Tactic.Order.preprocessFactsPreorder Modified MathlibTest/order.lean Modified scripts/noshake.json 2025-07-12 09:09:58 bf54e8b feat: simple bounds on sqrt(2) (#27022) `1 < √2 < 3 / 2` ESTIMATED CHANGES Modified Mathlib/Data/Real/Sqrt.lean + theorem Real.one_lt_sqrt_two + theorem Real.sqrt_two_lt_three_halves 2025-07-12 07:11:55 f31654b feat: ENNReal rpow lemmas (#26991) 3 lemmas: ```lean lemma rpow_add_of_add_pos {x : ℝ≥0∞} (hx : x ≠ ⊤) (y z : ℝ) (hyz : 0 < y + z) : x ^ (y + z) = x ^ y * x ^ z lemma max_rpow {x y : ℝ≥0∞} {p : ℝ} (hp : 0 ≤ p) : max x y ^ p = max (x ^ p) (y ^ p) lemma add_rpow_le_two_rpow_mul_rpow_add_rpow {p : ℝ} (a b : ℝ≥0∞) (hp : 0 ≤ p) : (a + b) ^ p ≤ 2 ^ p * (a ^ p + b ^ p) ``` From the Brownian motion project. ESTIMATED CHANGES Modified Mathlib/Analysis/SpecialFunctions/Pow/NNReal.lean + theorem ENNReal.add_rpow_le_two_rpow_mul_rpow_add_rpow + theorem ENNReal.max_rpow + theorem ENNReal.rpow_add_of_add_pos 2025-07-12 06:00:20 628f824 chore: remove >6 month old material in `Deprecated` (#25790) ESTIMATED CHANGES Modified Mathlib.lean Deleted Mathlib/Deprecated/Cardinal/Continuum.lean - theorem Cardinal.aleph_toPartENat - theorem Cardinal.continuum_toPartENat Deleted Mathlib/Deprecated/Cardinal/Finite.lean - theorem Cardinal.natCast_eq_toPartENat_iff - theorem Cardinal.natCast_le_toPartENat_iff - theorem Cardinal.natCast_lt_toPartENat_iff - theorem Cardinal.toPartENat_eq_natCast_iff - theorem Cardinal.toPartENat_le_natCast_iff - theorem Cardinal.toPartENat_lt_natCast_iff - def PartENat.card - theorem PartENat.card_congr - theorem PartENat.card_eq_coe_fintype_card - theorem PartENat.card_eq_coe_natCard - theorem PartENat.card_eq_top_of_infinite - theorem PartENat.card_eq_zero_iff_empty - theorem PartENat.card_image_of_injOn - theorem PartENat.card_image_of_injective - theorem PartENat.card_le_one_iff_subsingleton - theorem PartENat.card_plift - theorem PartENat.card_sum - theorem PartENat.card_ulift - theorem PartENat.one_lt_card_iff_nontrivial Deleted Mathlib/Deprecated/Cardinal/PartENat.lean - theorem Cardinal.aleph0_toPartENat - theorem Cardinal.mk_toPartENat_eq_coe_card - theorem Cardinal.mk_toPartENat_of_infinite - theorem Cardinal.partENatOfENat_toENat - theorem Cardinal.toPartENat_apply_of_aleph0_le - theorem Cardinal.toPartENat_apply_of_lt_aleph0 - theorem Cardinal.toPartENat_congr - theorem Cardinal.toPartENat_eq_top - theorem Cardinal.toPartENat_inj_of_le_aleph0 - theorem Cardinal.toPartENat_le_iff_of_le_aleph0 - theorem Cardinal.toPartENat_le_iff_of_lt_aleph0 - theorem Cardinal.toPartENat_lift - theorem Cardinal.toPartENat_mono - theorem Cardinal.toPartENat_natCast - theorem Cardinal.toPartENat_strictMonoOn - theorem Cardinal.toPartENat_surjective Modified Mathlib/Deprecated/Order.lean 2025-07-12 05:15:19 8f6c323 chore: golf Algebra/ using combinations of `grind`, `exact`, `ext`, `simp` and `simp_all` (#26795) ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/Spectrum/Basic.lean Modified Mathlib/Algebra/BigOperators/Group/Finset/Basic.lean Modified Mathlib/Algebra/Group/Subgroup/ZPowers/Basic.lean Modified Mathlib/Algebra/Group/Submonoid/Membership.lean Modified Mathlib/Algebra/Lie/IdealOperations.lean Modified Mathlib/Algebra/Order/Antidiag/Nat.lean Modified Mathlib/Algebra/Polynomial/BigOperators.lean Modified Mathlib/Algebra/Prime/Lemmas.lean 2025-07-12 05:06:17 288ffbb feat: IsComplement.{ncard,encard}_{left,right} (#26984) ESTIMATED CHANGES Modified Mathlib/GroupTheory/Complement.lean + theorem Subgroup.IsComplement.encard_left + theorem Subgroup.IsComplement.encard_right + theorem Subgroup.IsComplement.ncard_left + theorem Subgroup.IsComplement.ncard_right 2025-07-12 04:50:48 82d33c4 chore(SetTheory/Ordinal/Basic): golf `Cardinal.ord` proofs (#27011) ESTIMATED CHANGES Modified Mathlib/SetTheory/Ordinal/Basic.lean +/- theorem Cardinal.card_le_of_le_ord +/- theorem Cardinal.ord_aleph0 +/- theorem Cardinal.ord_le +/- theorem Cardinal.ord_nat 2025-07-12 04:08:00 670617c chore: golf Analysis/ using `grind` (#26639) ESTIMATED CHANGES Modified Mathlib/Analysis/Analytic/Composition.lean Modified Mathlib/Analysis/Convex/BetweenList.lean Modified Mathlib/Analysis/Convex/Combination.lean Modified Mathlib/Analysis/InnerProductSpace/Basic.lean Modified Mathlib/Analysis/InnerProductSpace/PiL2.lean Modified Mathlib/Analysis/LocallyConvex/WithSeminorms.lean Modified Mathlib/Analysis/MeanInequalitiesPow.lean Modified Mathlib/Analysis/ODE/PicardLindelof.lean Modified Mathlib/Analysis/SpecialFunctions/Complex/Log.lean Modified Mathlib/Analysis/SpecialFunctions/Pow/Complex.lean Modified Mathlib/Analysis/SpecificLimits/Normed.lean 2025-07-12 03:26:48 67af318 feat(Topology/ENNReal): Add `ENNReal.tsum_biUnion` (#18379) This adds infinite versions of `Finset.sum_biUnion` to `ENNReal`s. ESTIMATED CHANGES Modified Mathlib/Data/Set/Lattice.lean + theorem Set.coe_snd_unionEqSigmaOfDisjoint + theorem Set.coe_unionEqSigmaOfDisjoint_symm_apply Modified Mathlib/Data/Set/Pairwise/Lattice.lean + theorem Set.coe_biUnionEqSigmaOfDisjoint_symm_apply + theorem Set.coe_snd_biUnionEqSigmaOfDisjoint Modified Mathlib/Topology/Instances/ENNReal/Lemmas.lean 2025-07-12 03:11:11 682c14f feat: add AddRightCancelSemigroup.toGrindAddRightCancel (#27005) This is missing and it makes `grind` smarter. ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Basic.lean Modified MathlibTest/grind/ring.lean 2025-07-12 02:16:00 33c4ca6 feat(LinearMap): Added lemmas relating kernels of linear maps to Submodule.map (#22069) Added the lemma ne_map_or_ne_kernel_inter_of_lt stating that if A < B as submodules, then for any linear map f, `ker f ⊓ A ≠ ker f ⊓ B ∨ Submodule.map f A ≠ Submodule.map f B`. We also prove the corollaries ker_inter_mono_of_map_eq and map_mono_of_ker_inter_eq. ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/Span/Basic.lean + theorem LinearMap.ker_inf_lt_ker_inf_of_map_eq_of_lt + theorem Submodule.map_lt_map_of_le_of_sup_lt_sup + theorem Submodule.map_strict_mono_of_ker_inf_eq + theorem Submodule.map_strict_mono_or_ker_sup_lt_ker_sup 2025-07-12 01:22:37 47f3e63 chore: two trivial Matrix.vecMulVec lemmas (#27013) ESTIMATED CHANGES Modified Mathlib/Data/Matrix/Mul.lean + theorem Matrix.col_vecMulVec + theorem Matrix.row_vecMulVec 2025-07-12 00:17:01 24b283a feat(Topology/Separation/Basic): add easy continuity lemma (#26995) Split from #26992 ESTIMATED CHANGES Modified Mathlib/Topology/Separation/Basic.lean + theorem ContinousWithinAt.eq_const_of_mem_closure + theorem ContinuousWithinAt.eqOn_const_closure 2025-07-11 22:12:36 ba454ce feat(NumberField/CMField): A totally complex abelian extension of ℚ is CM (#26073) This PR continues the work from #25619. Original PR: https://github.com/leanprover-community/mathlib4/pull/25619 - [x] depends on: #25818 ESTIMATED CHANGES Modified Mathlib/FieldTheory/Galois/Basic.lean + def IntermediateField.subgroupEquivAlgEquiv Modified Mathlib/NumberTheory/NumberField/CMField.lean + theorem NumberField.IsCMField.of_forall_isConj Modified Mathlib/NumberTheory/NumberField/InfinitePlace/Embeddings.lean + theorem NumberField.ComplexEmbedding.IsConj.comp + theorem NumberField.ComplexEmbedding.orderOf_isConj_two_of_ne_one 2025-07-11 21:09:57 bf80b15 chore: `n+1` to `n + 1` (#26937) ESTIMATED CHANGES Modified Cache/Lean.lean Modified Mathlib/Algebra/DirectSum/Ring.lean Modified Mathlib/Algebra/GradedMonoid.lean Modified Mathlib/Algebra/Homology/HomotopyCategory/Pretriangulated.lean Modified Mathlib/Algebra/Homology/HomotopyCategory/Triangulated.lean Modified Mathlib/Algebra/Lie/CartanExists.lean Modified Mathlib/Algebra/Lie/EngelSubalgebra.lean Modified Mathlib/Algebra/MvPolynomial/Equiv.lean Modified Mathlib/AlgebraicGeometry/StructureSheaf.lean Modified Mathlib/AlgebraicTopology/ExtraDegeneracy.lean Modified Mathlib/AlgebraicTopology/SimplexCategory/Basic.lean Modified Mathlib/AlgebraicTopology/SimplicialSet/HomotopyCat.lean Modified Mathlib/AlgebraicTopology/SimplicialSet/Horn.lean +/- def SSet.horn.face Modified Mathlib/Analysis/Calculus/ContDiff/Basic.lean Modified Mathlib/Analysis/Complex/Hadamard.lean Modified Mathlib/Analysis/Fourier/FourierTransformDeriv.lean Modified Mathlib/Analysis/Normed/Group/Completeness.lean Modified Mathlib/Analysis/Seminorm.lean Modified Mathlib/Analysis/SpecialFunctions/Log/Base.lean Modified Mathlib/CategoryTheory/Abelian/Injective/Resolution.lean Modified Mathlib/CategoryTheory/Abelian/Projective/Resolution.lean Modified Mathlib/CategoryTheory/Abelian/RightDerived.lean Modified Mathlib/CategoryTheory/ComposableArrows.lean Modified Mathlib/CategoryTheory/Limits/Shapes/SequentialProduct.lean Modified Mathlib/CategoryTheory/Limits/Types/Images.lean Modified Mathlib/CategoryTheory/Sites/Coherent/SequentialLimit.lean Modified Mathlib/Computability/AkraBazzi/GrowsPolynomially.lean Modified Mathlib/Data/Fin/Fin2.lean +/- def Fin2.last Modified Mathlib/Data/Fin/Tuple/Basic.lean Modified Mathlib/Data/List/OfFn.lean Modified Mathlib/Data/List/Sublists.lean Modified Mathlib/Data/Nat/Digits/Defs.lean +/- theorem Nat.digits_zero_succ Modified Mathlib/Data/Vector/Basic.lean Modified Mathlib/Data/Vector/Snoc.lean +/- def List.Vector.snoc Modified Mathlib/Dynamics/PeriodicPts/Defs.lean Modified Mathlib/FieldTheory/JacobsonNoether.lean Modified Mathlib/GroupTheory/Perm/List.lean Modified Mathlib/Lean/Expr/Basic.lean Modified Mathlib/Lean/Meta/RefinedDiscrTree/Lookup.lean Modified Mathlib/Logic/Equiv/Fin/Basic.lean Modified Mathlib/MeasureTheory/Integral/Lebesgue/DominatedConvergence.lean Modified Mathlib/Order/Hom/Order.lean Modified Mathlib/Order/KrullDimension.lean Modified Mathlib/RingTheory/UniqueFactorizationDomain/Basic.lean Modified Mathlib/SetTheory/Cardinal/Basic.lean Modified Mathlib/Tactic/Core.lean Modified Mathlib/Tactic/Linarith/Parsing.lean Modified Mathlib/Tactic/Ring/PNat.lean Modified Mathlib/Tactic/Sat/FromLRAT.lean Modified Mathlib/Topology/Category/LightProfinite/AsLimit.lean Modified Mathlib/Topology/Category/LightProfinite/Sequence.lean Modified Mathlib/Topology/EMetricSpace/Lipschitz.lean Modified Mathlib/Topology/Homotopy/Lifting.lean Modified Mathlib/Topology/MetricSpace/Contracting.lean Modified Mathlib/Topology/MetricSpace/Lipschitz.lean Modified Mathlib/Topology/UnitInterval.lean Modified Mathlib/Util/Export.lean Modified MathlibTest/GCongr/inequalities.lean Modified MathlibTest/LibraryRewrite.lean Modified MathlibTest/fun_prop_dev.lean Modified MathlibTest/irreducibleDef.lean Modified MathlibTest/positivity.lean Modified MathlibTest/ring.lean Modified MathlibTest/solve_by_elim/basic.lean Modified MathlibTest/toAdditive.lean +/- def Test.myFin.foo 2025-07-11 20:55:09 29654d4 feat(RepresentationTheory/Homological/GroupHomology/LowDegree): `H₁(G, A) ≃+ Gᵃᵇ ⊗[ℤ] A` when `A` is trivial (#25929) This PR defines an isomorphism `H₁(G, A) ≃+ Gᵃᵇ ⊗[ℤ] A` when the `G`-representation on `A` is trivial. ESTIMATED CHANGES Modified Mathlib/RepresentationTheory/Homological/GroupHomology/LowDegree.lean + def groupHomology.H1AddEquivOfIsTrivial + theorem groupHomology.H1AddEquivOfIsTrivial_single + theorem groupHomology.H1AddEquivOfIsTrivial_symm_tmul + def groupHomology.H1ToTensorOfIsTrivial + theorem groupHomology.H1ToTensorOfIsTrivial_H1π_single + def groupHomology.cycles₁IsoOfIsTrivial + theorem groupHomology.cycles₁IsoOfIsTrivial_hom_apply + theorem groupHomology.cycles₁IsoOfIsTrivial_inv_apply + def groupHomology.mkH1OfIsTrivial + theorem groupHomology.mkH1OfIsTrivial_apply + theorem groupHomology.π_comp_H1Iso_inv + theorem groupHomology.π_comp_H2Iso_inv 2025-07-11 20:10:51 613e6f1 chore(Analysis/InnerProductSpace/Positive): remove additional hypothesis of completeness when it's finite (#27007) ESTIMATED CHANGES Modified Mathlib/Analysis/InnerProductSpace/Positive.lean +/- theorem ContinuousLinearMap.isPositive_toLinearMap_iff +/- theorem LinearMap.isPositive_toContinuousLinearMap_iff 2025-07-11 19:04:41 73303bb chore(Algebra/Equiv/TransferInstance): delete duplicated `Shrink` material (#26774) Split `Algebra.Small.Group` into * `Algebra.Group.Shrink` * `Algebra.GroupWithZero.Shrink` Split `Algebra.Small.Ring` into * `Algebra.Ring.Shrink` * `Algebra.Field.Shrink` Split `Algebra.Small.Module` into * `Algebra.Module.Shrink` * `Algebra.Algebra.Shrink` Almost all of this duplicated the material in `Algebra.Equiv.TransferInstance`, which we therefore remove. This is the second part of #26732, split off for Eric's convenience. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Algebra/Shrink.lean + def Shrink.algEquiv + def algEquivShrink Modified Mathlib/Algebra/Category/AlgCat/Limits.lean Modified Mathlib/Algebra/Category/Grp/CartesianMonoidal.lean Modified Mathlib/Algebra/Category/Grp/Colimits.lean Modified Mathlib/Algebra/Category/Grp/Limits.lean Modified Mathlib/Algebra/Category/ModuleCat/AB.lean Modified Mathlib/Algebra/Category/ModuleCat/EnoughInjectives.lean Modified Mathlib/Algebra/Category/ModuleCat/Limits.lean Modified Mathlib/Algebra/Category/MonCat/Limits.lean Modified Mathlib/Algebra/Category/Ring/Limits.lean Modified Mathlib/Algebra/Equiv/TransferInstance.lean Added Mathlib/Algebra/Field/Shrink.lean Modified Mathlib/Algebra/Group/Shrink.lean + def Shrink.mulEquiv +/- theorem equivShrink_div +/- theorem equivShrink_inv +/- theorem equivShrink_mul +/- theorem equivShrink_smul +/- theorem equivShrink_symm_div +/- theorem equivShrink_symm_inv +/- theorem equivShrink_symm_mul +/- theorem equivShrink_symm_one +/- theorem equivShrink_symm_smul Added Mathlib/Algebra/GroupWithZero/Shrink.lean Modified Mathlib/Algebra/Module/FinitePresentation.lean Modified Mathlib/Algebra/Module/Injective.lean Modified Mathlib/Algebra/Module/Projective.lean Modified Mathlib/Algebra/Module/Shrink.lean + def Shrink.linearEquiv - def algEquivShrink Modified Mathlib/Algebra/Ring/Shrink.lean + def Shrink.ringEquiv Modified Mathlib/RingTheory/Flat/Basic.lean 2025-07-11 18:12:18 051be89 chore(Topology): rename pi family from π to X (#26828) As discussed in [#mathlib4 > Style for naming a pi type in topology/analysis files](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Style.20for.20naming.20a.20pi.20type.20in.20topology.2Fanalysis.20files/with/503532322) ESTIMATED CHANGES Modified Mathlib/Topology/AlexandrovDiscrete.lean Modified Mathlib/Topology/Algebra/InfiniteSum/Constructions.lean +/- theorem Pi.hasProd +/- theorem Pi.multipliable +/- theorem tprod_apply Modified Mathlib/Topology/Algebra/Module/Equiv.lean Modified Mathlib/Topology/Algebra/Order/LiminfLimsup.lean Modified Mathlib/Topology/Bases.lean +/- theorem isOpenMap_eval Modified Mathlib/Topology/Bornology/Constructions.lean +/- theorem Bornology.IsBounded.image_eval +/- theorem Bornology.cobounded_pi +/- theorem Bornology.forall_isBounded_image_eval_iff Modified Mathlib/Topology/Connected/Basic.lean +/- theorem isConnected_univ_pi +/- theorem isPreconnected_univ_pi Modified Mathlib/Topology/Connected/Clopen.lean +/- theorem Continuous.exists_lift_sigma +/- theorem Sigma.isConnected_iff +/- theorem Sigma.isPreconnected_iff Modified Mathlib/Topology/Connected/LocallyConnected.lean Modified Mathlib/Topology/Connected/TotallyDisconnected.lean Modified Mathlib/Topology/Constructions.lean +/- theorem Continuous.finCons +/- theorem Continuous.finInit +/- theorem Continuous.finSnoc +/- theorem Continuous.finTail +/- theorem Continuous.update +/- theorem ContinuousAt.finCons +/- theorem ContinuousAt.finInit +/- theorem ContinuousAt.finSnoc +/- theorem ContinuousAt.finTail +/- theorem ContinuousAt.update +/- theorem Filter.Tendsto.apply_nhds +/- theorem Filter.Tendsto.finInit +/- theorem Filter.Tendsto.finTail +/- theorem Filter.Tendsto.update +/- theorem Finset.continuous_restrict +/- theorem Pi.continuous_restrict₂ +/- theorem continuousAt_apply +/- theorem continuousAt_pi' +/- theorem continuousAt_pi +/- theorem continuous_apply +/- theorem continuous_mulSingle +/- theorem exists_finset_piecewise_mem_of_mem_nhds +/- theorem induced_to_pi +/- theorem inducing_iInf_to_pi +/- theorem interior_pi_set +/- theorem isClosed_set_pi +/- theorem isOpen_pi_iff' +/- theorem isOpen_pi_iff +/- theorem isOpen_set_pi +/- theorem mem_nhds_of_pi_mem_nhds +/- theorem nhds_pi +/- theorem pi_generateFrom_eq +/- theorem pi_generateFrom_eq_finite +/- theorem set_pi_mem_nhds +/- theorem set_pi_mem_nhds_iff +/- theorem tendsto_pi_nhds Modified Mathlib/Topology/ContinuousOn.lean +/- theorem ContinuousOn.finCons +/- theorem continuousOn_apply +/- theorem continuousOn_pi' +/- theorem continuousOn_pi +/- theorem continuousWithinAt_pi +/- theorem nhdsWithin_pi_eq' +/- theorem nhdsWithin_pi_eq +/- theorem nhdsWithin_pi_eq_bot +/- theorem nhdsWithin_pi_neBot +/- theorem nhdsWithin_pi_univ_eq +/- theorem preimage_nhdsWithin_coinduced' +/- theorem preimage_nhds_within_coinduced Modified Mathlib/Topology/EMetricSpace/Diam.lean +/- theorem EMetric.diam_pi_le_of_le Modified Mathlib/Topology/EMetricSpace/Pi.lean +/- theorem edist_le_pi_edist +/- theorem edist_pi_def +/- theorem edist_pi_le_iff Modified Mathlib/Topology/ExtremallyDisconnected.lean +/- theorem exists_compact_surjective_zorn_subset Modified Mathlib/Topology/Inseparable.lean +/- theorem inseparable_pi +/- theorem specializes_pi Modified Mathlib/Topology/MetricSpace/Basic.lean Modified Mathlib/Topology/MetricSpace/Infsep.lean +/- theorem Set.le_einfsep_pi_of_le Modified Mathlib/Topology/MetricSpace/ProperSpace.lean Modified Mathlib/Topology/MetricSpace/Pseudo/Pi.lean +/- theorem ball_pi' +/- theorem ball_pi +/- theorem closedBall_pi' +/- theorem closedBall_pi +/- theorem dist_le_pi_dist +/- theorem dist_pi_def +/- theorem dist_pi_eq_iff +/- theorem dist_pi_le_iff' +/- theorem dist_pi_le_iff +/- theorem dist_pi_lt_iff +/- theorem nndist_le_pi_nndist +/- theorem nndist_pi_def +/- theorem nndist_pi_eq_iff +/- theorem nndist_pi_le_iff +/- theorem nndist_pi_lt_iff +/- theorem sphere_pi Modified Mathlib/Topology/Metrizable/Basic.lean Modified Mathlib/Topology/Order/Basic.lean Modified Mathlib/Topology/Separation/Hausdorff.lean +/- theorem Pi.isCompact_closure_iff +/- theorem Pi.isCompact_iff Modified Mathlib/Topology/UniformSpace/Ascoli.lean 2025-07-11 17:39:05 d6f4a82 refactor(SetTheory/Ordinal/Arithmetic): `Ordinal.IsLimit` → `Order.IsSuccLimit` (#26643) This is part of a series of ordinal refactors which aim to replace definitions specific to `Ordinal` with more general concepts. See #17033 for more info. ESTIMATED CHANGES Modified Mathlib/MeasureTheory/MeasurableSpace/Card.lean Modified Mathlib/Order/SuccPred/Limit.lean Modified Mathlib/SetTheory/Cardinal/Aleph.lean +/- theorem Cardinal.aleph_limit +/- theorem Cardinal.beth_limit - theorem Cardinal.isLimit_omega + theorem Cardinal.isSuccLimit_omega - theorem Cardinal.preAleph_le_of_isLimit + theorem Cardinal.preAleph_le_of_isSuccPrelimit +/- theorem Cardinal.preAleph_limit Modified Mathlib/SetTheory/Cardinal/Arithmetic.lean Modified Mathlib/SetTheory/Cardinal/Cofinality.lean +/- theorem Ordinal.IsNormal.cof_eq +/- theorem Ordinal.aleph0_le_cof +/- theorem Ordinal.cof_eq' +/- theorem Ordinal.cof_omega Modified Mathlib/SetTheory/Cardinal/Ordinal.lean Modified Mathlib/SetTheory/Cardinal/Regular.lean +/- theorem Cardinal.isRegular_cof Modified Mathlib/SetTheory/Game/Birthday.lean Modified Mathlib/SetTheory/Ordinal/Arithmetic.lean - theorem Cardinal.isLimit_ord + theorem Cardinal.isSuccLimit_ord - theorem Ordinal.IsLimit.iSup_Iio - theorem Ordinal.IsLimit.isSuccPrelimit - theorem Ordinal.IsLimit.nat_lt - theorem Ordinal.IsLimit.one_lt - theorem Ordinal.IsLimit.sSup_Iio - theorem Ordinal.IsLimit.succ_lt - theorem Ordinal.IsNormal.isLimit + theorem Ordinal.IsNormal.isSuccLimit +/- theorem Ordinal.IsNormal.limit_lt + theorem Ordinal.add_le_iff_of_isSuccLimit - theorem Ordinal.add_le_of_limit - theorem Ordinal.add_mul_limit + theorem Ordinal.add_mul_of_isSuccLimit +/- def Ordinal.boundedLimitRecOn +/- theorem Ordinal.boundedLimitRec_limit +/- theorem Ordinal.boundedLimitRec_succ +/- theorem Ordinal.boundedLimitRec_zero +/- theorem Ordinal.bounded_singleton - theorem Ordinal.isLimit_add - theorem Ordinal.isLimit_add_iff - theorem Ordinal.isLimit_iff - theorem Ordinal.isLimit_iff_omega0_dvd - theorem Ordinal.isLimit_mul - theorem Ordinal.isLimit_mul_left - theorem Ordinal.isLimit_omega0 - theorem Ordinal.isLimit_sub + theorem Ordinal.isSuccLimit_add + theorem Ordinal.isSuccLimit_add_iff + theorem Ordinal.isSuccLimit_iff + theorem Ordinal.isSuccLimit_iff_omega0_dvd + theorem Ordinal.isSuccLimit_lift + theorem Ordinal.isSuccLimit_mul + theorem Ordinal.isSuccLimit_mul_left + theorem Ordinal.isSuccLimit_omega0 + theorem Ordinal.isSuccLimit_sub +/- theorem Ordinal.isSuccPrelimit_lift - theorem Ordinal.le_succ_of_isLimit - theorem Ordinal.lift_isLimit - theorem Ordinal.limit_le - theorem Ordinal.lt_limit + theorem Ordinal.lt_mul_iff_of_isSuccLimit - theorem Ordinal.lt_mul_of_limit + theorem Ordinal.mul_le_iff_of_isSuccLimit - theorem Ordinal.mul_le_of_limit + theorem Ordinal.natCast_lt_of_isSuccLimit - theorem Ordinal.nat_lt_limit + theorem Ordinal.not_isSuccLimit_zero - theorem Ordinal.not_succ_isLimit - theorem Ordinal.not_zero_isLimit - theorem Ordinal.omega0_le_of_isLimit + theorem Ordinal.omega0_le_of_isSuccLimit + theorem Ordinal.one_lt_of_isSuccLimit - theorem Ordinal.succ_lt_of_isLimit + theorem Ordinal.zero_or_succ_or_isSuccLimit Modified Mathlib/SetTheory/Ordinal/Enum.lean Modified Mathlib/SetTheory/Ordinal/Exponential.lean - theorem Ordinal.isLimit_opow - theorem Ordinal.isLimit_opow_left + theorem Ordinal.isSuccLimit_opow + theorem Ordinal.isSuccLimit_opow_left + theorem Ordinal.lt_opow_of_isSuccLimit - theorem Ordinal.lt_opow_of_limit + theorem Ordinal.opow_le_of_isSuccLimit - theorem Ordinal.opow_le_of_limit +/- theorem Ordinal.opow_limit Modified Mathlib/SetTheory/Ordinal/Family.lean - theorem Ordinal.IsNormal.apply_of_isLimit + theorem Ordinal.IsNormal.apply_of_isSuccLimit +/- theorem Ordinal.bsup_eq_blsub_of_lt_succ_limit +/- theorem Ordinal.lt_add_of_limit Modified Mathlib/SetTheory/Ordinal/FixedPoint.lean +/- theorem Ordinal.deriv_limit Modified Mathlib/SetTheory/Ordinal/NaturalOps.lean Modified Mathlib/SetTheory/Ordinal/Notation.lean Modified Mathlib/SetTheory/Ordinal/Principal.lean - theorem Ordinal.isLimit_of_principal_add - theorem Ordinal.isLimit_of_principal_mul + theorem Ordinal.isSuccLimit_of_principal_add + theorem Ordinal.isSuccLimit_of_principal_mul Modified Mathlib/SetTheory/Ordinal/Topology.lean - theorem Ordinal.IsAcc.isLimit + theorem Ordinal.IsAcc.isSuccLimit - theorem Ordinal.isLimit_of_mem_frontier +/- theorem Ordinal.isOpen_iff +/- theorem Ordinal.isOpen_singleton_iff + theorem Ordinal.isSuccLimit_of_mem_frontier +/- theorem Ordinal.nhds_eq_pure Modified Mathlib/SetTheory/Ordinal/Veblen.lean Modified Mathlib/Topology/Category/Profinite/Nobeling/Induction.lean +/- theorem Profinite.NobelingProof.GoodProducts.Plimit Modified Mathlib/Topology/Category/Profinite/Nobeling/ZeroLimit.lean 2025-07-11 17:10:10 6625861 feat(RingTheory/Valuation/Extension): add algebra instances (#26538) Provide algebra instances for valuation subrings and residue fields. ESTIMATED CHANGES Modified Mathlib/RingTheory/Valuation/Extension.lean + theorem Valuation.HasExtension.algebraMap_mem_maximalIdeal_iff + theorem Valuation.HasExtension.algebraMap_mem_valuationSubring + theorem Valuation.HasExtension.algebraMap_residue_eq_residue_algebraMap + theorem Valuation.HasExtension.coe_algebraMap_valuationSubring_eq + theorem Valuation.HasExtension.maximalIdeal_comap_algebraMap_eq_maximalIdeal 2025-07-11 15:56:28 fdc695c chore: golf proof of `IsCompact.isClosed` (#27001) Golf the proof of `IsCompact.isClosed`. The new version of the proof works mainly with filters. Personally, I think this argument is easier to follow than the original. ESTIMATED CHANGES Modified Mathlib/Topology/Separation/Hausdorff.lean 2025-07-11 15:56:26 a162410 feat(Analysis/Calculus/TangentCone): add results about uniqueDiff (#26993) Split from #26992 ESTIMATED CHANGES Modified Mathlib/Analysis/Calculus/TangentCone.lean + theorem uniqueDiffWithinAt_Ici + theorem uniqueDiffWithinAt_Iic 2025-07-11 15:56:25 b7f38ac feat: product of tychonoff spaces is tychonoff (#26917) ESTIMATED CHANGES Modified Mathlib/Topology/Separation/CompletelyRegular.lean + theorem CompletelyRegularSpace.completely_regular_isOpen + theorem completelyRegularSpace_iInf + theorem completelyRegularSpace_iff_isOpen + theorem completelyRegularSpace_induced + theorem completelyRegularSpace_inf 2025-07-11 15:56:24 325f789 chore: Add grind tags for `Set.mem_Ixx` (#26571) This adds `grind` tags to the various `Set.mem_Ixx` lemmas, which should let the grind linarith module discharge goals of this form. I went with the convervative option of only including the `grind =` pattern, which only fires on the LHS of these lemmas. One could also consider having patterns going the other way as well (i.e. `grind _=_` for `mem_Ioi` or multi-patterns for `mem_Ioo` and so on). ESTIMATED CHANGES Modified Mathlib/Order/Interval/Set/Defs.lean +/- theorem Set.mem_Icc +/- theorem Set.mem_Ici +/- theorem Set.mem_Ico +/- theorem Set.mem_Iic +/- theorem Set.mem_Iio +/- theorem Set.mem_Ioc +/- theorem Set.mem_Ioi +/- theorem Set.mem_Ioo 2025-07-11 15:56:22 027ce9e feat: Alexandrov discrete implies locally path-connected (#26492) The primary motivation for this theorem is to deduce path-connectedness from connectedness in finite topological spaces: ```lean import Mathlib.Topology.Connected.LocPathConnected example {X : Type*} [TopologicalSpace X] [Finite X] [ConnectedSpace X] : PathConnectedSpace X := by rw [pathConnectedSpace_iff_connectedSpace]; assumption ``` ESTIMATED CHANGES Modified Mathlib/Topology/AlexandrovDiscrete.lean + theorem nhdsSet_basis_nhdsKer + theorem nhds_basis_nhdsKer_singleton + theorem principal_nhdsKer_singleton Modified Mathlib/Topology/Connected/LocPathConnected.lean 2025-07-11 15:12:54 ab35957 chore: remove space after ⅟ (#26997) This will change how the docs and infoview render, and the rules for the upcoming whitespace linter. Zulip thread: [#mathlib4 > Space after `⅟ ` @ 💬](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Space.20after.20.60.E2.85.9F.20.60/near/528309060) ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Action/Basic.lean +/- theorem smul_invOf_smul Modified Mathlib/Algebra/Group/Invertible/Basic.lean +/- theorem commute_invOf +/- theorem invOf_pow +/- theorem invOf_units Modified Mathlib/Algebra/Group/Invertible/Defs.lean +/- theorem invOf_eq_group_inv +/- theorem invOf_eq_left_inv +/- theorem invOf_eq_right_inv +/- theorem invOf_inj +/- theorem invOf_invOf +/- theorem invOf_mul_cancel_left' +/- theorem invOf_mul_cancel_left +/- theorem invOf_mul_cancel_right' +/- theorem invOf_mul_cancel_right +/- theorem invOf_mul_self' +/- theorem invOf_mul_self +/- theorem invOf_one' +/- theorem invOf_one +/- theorem mul_invOf_cancel_left' +/- theorem mul_invOf_cancel_left +/- theorem mul_invOf_cancel_right' +/- theorem mul_invOf_cancel_right +/- theorem mul_invOf_self' +/- theorem mul_invOf_self Modified Mathlib/Algebra/GroupWithZero/Invertible.lean +/- theorem Ring.inverse_invertible +/- theorem invOf_eq_inv Modified Mathlib/Algebra/Lie/Classical.lean +/- theorem LieAlgebra.Orthogonal.pb_inv +/- theorem LieAlgebra.Orthogonal.pd_inv Modified Mathlib/Algebra/Module/Basic.lean Modified Mathlib/Algebra/Order/Invertible.lean +/- theorem invOf_le_one +/- theorem invOf_lt_zero +/- theorem invOf_nonneg +/- theorem invOf_nonpos +/- theorem invOf_pos Modified Mathlib/Algebra/Polynomial/AlgebraMap.lean Modified Mathlib/Algebra/Polynomial/Laurent.lean +/- theorem LaurentPolynomial.invOf_T Modified Mathlib/Algebra/Polynomial/Reverse.lean Modified Mathlib/Algebra/Polynomial/Splits.lean Modified Mathlib/Algebra/Ring/Invertible.lean +/- theorem one_sub_invOf_two Modified Mathlib/Algebra/Star/Basic.lean Modified Mathlib/Algebra/Star/Module.lean Modified Mathlib/Algebra/Symmetrized.lean Modified Mathlib/Algebra/TrivSqZeroExt.lean Modified Mathlib/Analysis/Calculus/FDeriv/Add.lean Modified Mathlib/Analysis/Convex/Segment.lean Modified Mathlib/Analysis/Normed/Algebra/Exponential.lean +/- theorem NormedSpace.invOf_exp Modified Mathlib/Analysis/Normed/Algebra/TrivSqZeroExt.lean Modified Mathlib/CategoryTheory/Linear/Basic.lean Modified Mathlib/Data/Matrix/Invertible.lean Modified Mathlib/LinearAlgebra/AffineSpace/Midpoint.lean +/- theorem left_sub_midpoint +/- theorem left_vsub_midpoint +/- theorem midpoint_eq_smul_add +/- theorem midpoint_sub_left +/- theorem midpoint_sub_right +/- theorem midpoint_vsub_left +/- theorem midpoint_vsub_right +/- theorem right_sub_midpoint +/- theorem right_vsub_midpoint Modified Mathlib/LinearAlgebra/AffineSpace/MidpointZero.lean Modified Mathlib/LinearAlgebra/CliffordAlgebra/Inversion.lean Modified Mathlib/LinearAlgebra/Matrix/Block.lean Modified Mathlib/LinearAlgebra/Matrix/NonsingularInverse.lean +/- theorem Matrix.det_invOf +/- theorem Matrix.invOf_eq +/- theorem Matrix.invOf_eq_nonsing_inv +/- theorem Matrix.inv_smul Modified Mathlib/LinearAlgebra/Matrix/SchurComplement.lean Modified Mathlib/LinearAlgebra/Matrix/ToLinearEquiv.lean Modified Mathlib/LinearAlgebra/QuadraticForm/Basic.lean Modified Mathlib/LinearAlgebra/QuadraticForm/Dual.lean Modified Mathlib/RepresentationTheory/Character.lean Modified Mathlib/RepresentationTheory/Invariants.lean Modified Mathlib/RingTheory/Algebraic/Basic.lean +/- theorem IsAlgebraic.invOf Modified Mathlib/RingTheory/Derivation/Basic.lean +/- theorem Derivation.leibniz_invOf Modified Mathlib/RingTheory/Polynomial/Dickson.lean Modified Mathlib/RingTheory/PowerSeries/Derivative.lean Modified Mathlib/RingTheory/WittVector/Frobenius.lean Modified Mathlib/RingTheory/WittVector/WittPolynomial.lean Modified Mathlib/Tactic/Positivity/Core.lean 2025-07-11 15:12:52 305026f feat(Order): `WithBot.lt_succ` (#26996) ESTIMATED CHANGES Modified Mathlib/Order/SuccPred/WithBot.lean + theorem WithBot.lt_succ 2025-07-11 15:12:50 c9ce0e8 refactor(Order/Concept): rename `intentClosure` → `lowerPolar` (#26976) The former name was being misused; the intent closure of a set `s` is actually `lowerPolar r (upperPolar r s)`. The name "polar" can be found in the reference. Although the two types of polars don't have separate names, we choose lower and upper in analogy to `lowerBounds` and `upperBounds`; in fact, `lowerPolar (· ≤ ·) s` is def-eq to `lowerBounds s`, and likewise for `upperPolar`. While we're at it, we also get rid of the `Concept.toProd` projection, in favor of giving more informative names to its fields. This PR contains no mathematics, it's just renaming. ESTIMATED CHANGES Modified Mathlib/Order/Concept.lean - theorem Concept.bot_fst - theorem Concept.bot_snd +/- theorem Concept.ext' +/- theorem Concept.ext + theorem Concept.extent_bot + theorem Concept.extent_inf + theorem Concept.extent_injective + theorem Concept.extent_sInf + theorem Concept.extent_sSup + theorem Concept.extent_ssubset_extent_iff + theorem Concept.extent_subset_extent_iff + theorem Concept.extent_sup + theorem Concept.extent_top - theorem Concept.fst_injective - theorem Concept.fst_ssubset_fst_iff - theorem Concept.fst_subset_fst_iff - theorem Concept.inf_fst - theorem Concept.inf_snd + theorem Concept.intent_bot + theorem Concept.intent_inf + theorem Concept.intent_injective + theorem Concept.intent_sInf + theorem Concept.intent_sSup + theorem Concept.intent_ssubset_intent_iff + theorem Concept.intent_subset_intent_iff + theorem Concept.intent_sup + theorem Concept.intent_top - theorem Concept.sInf_fst - theorem Concept.sInf_snd - theorem Concept.sSup_fst - theorem Concept.sSup_snd - theorem Concept.snd_injective - theorem Concept.snd_ssubset_snd_iff - theorem Concept.snd_subset_snd_iff + theorem Concept.strictAnti_intent - theorem Concept.strictAnti_snd + theorem Concept.strictMono_extent - theorem Concept.strictMono_fst - theorem Concept.sup_fst - theorem Concept.sup_snd - theorem Concept.top_fst - theorem Concept.top_snd +/- structure Concept - def extentClosure - theorem extentClosure_anti - theorem extentClosure_empty - theorem extentClosure_iUnion - theorem extentClosure_iUnion₂ - theorem extentClosure_intentClosure_extentClosure - theorem extentClosure_swap - theorem extentClosure_union - theorem gc_intentClosure_extentClosure + theorem gc_upperPolar_lowerPolar - def intentClosure - theorem intentClosure_anti - theorem intentClosure_empty - theorem intentClosure_extentClosure_intentClosure - theorem intentClosure_iUnion - theorem intentClosure_iUnion₂ - theorem intentClosure_swap - theorem intentClosure_union + def lowerPolar + theorem lowerPolar_anti + theorem lowerPolar_empty + theorem lowerPolar_iUnion + theorem lowerPolar_iUnion₂ + theorem lowerPolar_swap + theorem lowerPolar_union + theorem lowerPolar_upperPolar_lowerPolar - theorem subset_extentClosure_intentClosure - theorem subset_intentClosure_extentClosure - theorem subset_intentClosure_iff_subset_extentClosure + theorem subset_lowerPolar_upperPolar + theorem subset_upperPolar_iff_subset_lowerPolar + theorem subset_upperPolar_lowerPolar + def upperPolar + theorem upperPolar_anti + theorem upperPolar_empty + theorem upperPolar_iUnion + theorem upperPolar_iUnion₂ + theorem upperPolar_lowerPolar_upperPolar + theorem upperPolar_swap + theorem upperPolar_union Modified docs/references.bib 2025-07-11 14:29:16 3e526e6 feat(Algebra/GroupWithZero): `MulEquiv.toMonoidWithZeroHom` (#26999) Helper projection to utilize `MonoidWithZeroHomClass`. ESTIMATED CHANGES Modified Mathlib/Algebra/GroupWithZero/Equiv.lean + def MulEquiv.toMonoidWithZeroHom + theorem MulEquiv.toMonoidWithZeroHom_apply + theorem MulEquiv.toMonoidWithZeroHom_bijective + theorem MulEquiv.toMonoidWithZeroHom_inj + theorem MulEquiv.toMonoidWithZeroHom_injective + theorem MulEquiv.toMonoidWithZeroHom_surjective 2025-07-11 14:29:15 1030a8d chore(Order/IsNormal): change default constructor (#26903) The default constructor of `Order.IsNormal` currently contains a redundant hypothesis. The idea was that it might often be easier to reason in terms of `IsLUB` rather than unfolding everything down to inequalities. My work on #26900 suggests however that's not the case. I've also added the theorem `isNormal_iff`, which takes care of unfolding the definition. (Note that it matches that given by `Ordinal.isNormal_iff_strictMono_limit`!) ESTIMATED CHANGES Modified Mathlib/Order/IsNormal.lean + theorem Order.IsNormal.isLUB_image_Iio_of_isSuccLimit + theorem Order.isNormal_iff 2025-07-11 14:29:13 e1fe343 feat(ValuativeRel): ValuativeTopology on UniformSpace implies Valued (#26874) as a scoped instance, for usage in refactoring ESTIMATED CHANGES Modified Mathlib/Topology/Algebra/Valued/ValuativeRel.lean 2025-07-11 14:29:12 d55d827 fix(Order): fix simp lemma for with{Top/Bot}{Map/Congr} (#26787) This change includes the following in generated simp lemmas: ```diff -@[simp] theorem OrderEmbedding.withBotMap_apply {α : Type u_1} {β : Type u_2} [Preorder α] [Preorder β] (f : α ↪o β) : - ⇑f.withBotMap = Option.map ⇑f +@[simp] theorem OrderEmbedding.withBotMap_apply {α : Type u_1} {β : Type u_2} [Preorder α] [Preorder β] (f : α ↪o β) : + ⇑f.withBotMap = WithBot.map ⇑f @[simp] theorem OrderEmbedding.withTopMap_apply {α : Type u_1} {β : Type u_2} [Preorder α] [Preorder β] (f : α ↪o β) : ⇑f.withTopMap = WithTop.map ⇑f -- unchanged -@[simp] theorem OrderIso.withBotCongr_apply {α : Type u_1} {β : Type u_2} [PartialOrder α] [PartialOrder β] (e : α ≃o β) (a✝ : Option α) : - e.withBotCongr a✝ = Option.map (⇑e) a✝ +@[simp] theorem OrderIso.withBotCongr_apply {α : Type u_1} {β : Type u_2} [PartialOrder α] [PartialOrder β] (e : α ≃o β) : + ⇑e.withBotCongr = WithBot.map ⇑e -@[simp] theorem OrderIso.withTopCongr_apply {α : Type u_1} {β : Type u_2} [PartialOrder α] [PartialOrder β] (e : α ≃o β) (a✝ : Option α) : - e.withTopCongr a✝ = Option.map (⇑e) a✝ +@[simp] theorem OrderIso.withTopCongr_apply {α : Type u_1} {β : Type u_2} [PartialOrder α] [PartialOrder β] (e : α ≃o β) : + ⇑e.withTopCongr = WithTop.map ⇑e ``` ESTIMATED CHANGES Modified Mathlib/Order/Hom/WithTopBot.lean +/- def OrderIso.withBotCongr +/- def OrderIso.withTopCongr 2025-07-11 14:29:10 75f8149 feat(RingTheory/Valuation/Discrete/Basic): add uniformizer API (#26591) We define uniformizers for discrete valuations. ESTIMATED CHANGES Modified Mathlib/Algebra/GroupWithZero/Range.lean Modified Mathlib/Algebra/Order/Group/Cyclic.lean + theorem LinearOrderedCommGroup.Subgroup.genLTOne_mem Modified Mathlib/RingTheory/Valuation/Discrete/Basic.lean +/- theorem Valuation.IsRankOneDiscrete.exists_generator_lt_one +/- theorem Valuation.IsRankOneDiscrete.generator_lt_one + theorem Valuation.IsRankOneDiscrete.generator_mem_valueGroup +/- theorem Valuation.IsRankOneDiscrete.generator_ne_one +/- theorem Valuation.IsRankOneDiscrete.generator_ne_zero +/- theorem Valuation.IsRankOneDiscrete.generator_zpowers_eq_valueGroup + theorem Valuation.IsRankOneDiscrete.valueGroup_genLTOne_eq_generator + theorem Valuation.IsUniformizer.iff + theorem Valuation.IsUniformizer.is_generator + theorem Valuation.IsUniformizer.ne_zero + theorem Valuation.IsUniformizer.not_isUnit + theorem Valuation.IsUniformizer.of_associated + theorem Valuation.IsUniformizer.val + theorem Valuation.IsUniformizer.val_lt_one + theorem Valuation.IsUniformizer.val_ne_zero + theorem Valuation.IsUniformizer.val_pos + theorem Valuation.IsUniformizer.zpowers_eq_valueGroup + def Valuation.IsUniformizer + theorem Valuation.Uniformizer.is_generator + def Valuation.Uniformizer.mk' + theorem Valuation.Uniformizer.ne_zero + structure Valuation.Uniformizer + theorem Valuation.associated_of_isUniformizer + theorem Valuation.exists_isUniformizer_of_isCyclic_of_nontrivial + theorem Valuation.exists_pow_Uniformizer + theorem Valuation.isUniformizer_of_maximalIdeal_eq_span + theorem Valuation.pow_Uniformizer_is_pow_generator + theorem Valuation.valuationSubring_not_isField Modified docs/references.bib 2025-07-11 14:29:09 2857985 feat(RingTheory/Valuation/IntegrallyClosed): the valuation subring is integrally closed (#26526) as a instance, makes a Valued's `IsIntegrallyClosed 𝒪[K]` work also ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/RingTheory/Valuation/IntegrallyClosed.lean + theorem Valuation.Integers.isIntegral_iff_v_le_one + theorem Valuation.Integers.isIntegrallyClosed 2025-07-11 14:29:07 f91eca7 feat(RepresentationTheory/Homological/GroupHomology/LowDegree): specialized API for `H0, H1, H2` (#25908) Given a `k`-linear `G`-representation `A`, this PR defines and provides API for: - `groupHomology.H0Iso A`: isomorphism between `H₀(G, A)` and the coinvariants `A_G` of the `G`-representation on `A`. - `groupHomology.H1π A`: epimorphism from the 1-cycles (defined as `Ker(d₀ : (G →₀ A) → A))`) to `H₁(G, A)`. - `groupHomology.H2π A`: epimorphism from the 2-cycles (defined as `Ker(d₁ : (G² →₀ A) → (G →₀ A))`) to `H₂(G, A)`. ESTIMATED CHANGES Modified Mathlib/RepresentationTheory/Homological/GroupHomology/LowDegree.lean + def groupHomology.H0Iso + def groupHomology.H0IsoOfIsTrivial + theorem groupHomology.H0IsoOfIsTrivial_inv_eq_π + theorem groupHomology.H0_induction_on + def groupHomology.H0π + theorem groupHomology.H0π_comp_H0Iso_hom + def groupHomology.H1Iso + theorem groupHomology.H1_induction_on + def groupHomology.H1π + theorem groupHomology.H1π_eq_iff + theorem groupHomology.H1π_eq_zero_iff + def groupHomology.H2Iso + theorem groupHomology.H2_induction_on + def groupHomology.H2π + theorem groupHomology.H2π_eq_iff + theorem groupHomology.H2π_eq_zero_iff + theorem groupHomology.coinvariantsMk_comp_H0Iso_inv + theorem groupHomology.cyclesIso₀_comp_H0π + theorem groupHomology.π_comp_H0IsoOfIsTrivial_hom + theorem groupHomology.π_comp_H0Iso_hom + theorem groupHomology.π_comp_H1Iso_hom + theorem groupHomology.π_comp_H2Iso_hom 2025-07-11 14:29:03 d782e32 feat: promote an `AlgEquiv` preserving `counit` and `comul` to a `BialgEquiv` (#25271) From Toric ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/Equiv.lean +/- theorem AlgEquiv.coe_ofBijective +/- theorem AlgEquiv.ofBijective_apply + theorem AlgEquiv.toLinearMap_ofBijective Modified Mathlib/Algebra/Algebra/Hom.lean + theorem AlgHomClass.toLinearMap_toAlgHom Modified Mathlib/RingTheory/Bialgebra/Equiv.lean +/- theorem BialgEquiv.coe_ofBijective + def BialgEquiv.ofAlgEquiv + theorem BialgEquiv.toLinearMap_ofAlgEquiv 2025-07-11 13:40:21 70c4ad5 feat(Topology): lemmas on interior and closure (#26816) In preparation for Kuratowski's closure-complement theorem. ESTIMATED CHANGES Modified Mathlib/Order/BooleanAlgebra/Set.lean + theorem Set.subset_inter_union_compl_left + theorem Set.subset_inter_union_compl_right + theorem Set.union_inter_compl_left_subset + theorem Set.union_inter_compl_right_subset Modified Mathlib/Topology/Closure.lean + theorem closure_inter_of_codisjoint_interior + theorem closure_inter_subset + theorem closure_interior_idem + theorem interior_closure_idem + theorem interior_eq_compl_closure_compl + theorem interior_union_inter_interior_compl_left_subset + theorem interior_union_inter_interior_compl_right_subset + theorem interior_union_of_disjoint_closure + theorem subset_closure_inter_union_closure_compl_left + theorem subset_closure_inter_union_closure_compl_right + theorem subset_interior_union 2025-07-11 13:07:41 eca245c feat(LinearAlgebra/Projection): add lemmas for linear projections (#26792) This pr adds some lemmas for linear projections. ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/Projection.lean + theorem LinearMap.IsIdempotentElem.comp_eq_right_iff + theorem LinearMap.IsIdempotentElem.ext + theorem LinearMap.IsIdempotentElem.mem_range_iff + theorem LinearMap.IsProj.isIdempotentElem + theorem LinearMap.IsProj.mem_iff_map_id + theorem LinearMap.IsProj.submodule_eq_bot_iff + theorem LinearMap.IsProj.submodule_eq_top_iff + theorem LinearMap.IsProj.submodule_unique + theorem LinearMap.IsProj.subtype_comp_codRestrict + theorem LinearMap.isProj_range_iff_isIdempotentElem 2025-07-11 12:56:25 36b5c51 feat(CategoryTheory/Localization): the right derivability structure given by functorial resolutions (#26029) In this PR, we provide a constructor for right derivability structures. We assume that `Φ : LocalizerMorphism W₁ W₂` is given by a fully faithful functor `Φ.functor : C₁ ⥤ C₂` and that we have a resolution functor `ρ : C₂ ⥤ C₁` with a natural transformation `i : 𝟭 C₂ ⟶ ρ ⋙ Φ.functor` such that `W₂ (i.app X₂)` for any `X₂ : C₂`. If we assume that `W₁` is induced by `W₂`, that `W₂` is multiplicative and has the two out of three property, then `Φ` is a right derivability structure. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Localization/DerivabilityStructure/OfFunctorialResolutions.lean + theorem CategoryTheory.LocalizerMorphism.functorialRightResolutions.W₁_ι_app + def CategoryTheory.LocalizerMorphism.functorialRightResolutions.localizerMorphismInv + theorem CategoryTheory.LocalizerMorphism.functorialRightResolutions.Φ_functor_map_ι_app + theorem CategoryTheory.LocalizerMorphism.hasRightResolutions_arrow_of_functorial_resolutions + theorem CategoryTheory.LocalizerMorphism.isConnected_rightResolution_of_functorial_resolutions + theorem CategoryTheory.LocalizerMorphism.isLocalizedEquivalence_of_functorial_right_resolutions + theorem CategoryTheory.LocalizerMorphism.isRightDerivabilityStructure_of_functorial_resolutions Modified Mathlib/CategoryTheory/Localization/LocalizerMorphism.lean + theorem CategoryTheory.LocalizerMorphism.isLocalizedEquivalence_of_unit_of_unit 2025-07-11 11:47:59 a5799a9 feat(RepresentationTheory/Homological/GroupHomology/LowDegree): Identify `cycles A n` with `cyclesₙ A` for `n = 0, 1, 2` (#25888) Given a `k`-linear `G`-representation `A`, this PR provides isomorphisms between: - The abstract 0-cycles of `A` and `A` as a `k`-module - The abstract 0-opcycles of `A` and `A_G` - The abstract 1-cycles of `A` and the `cycles₁ A` defined as a submodule of `G →₀ A` - The abstract 2-cycles of `A` and the `cycles₂ A` defined as a submodule of `G × G →₀ A`. ESTIMATED CHANGES Modified Mathlib/RepresentationTheory/Homological/GroupCohomology/LowDegree.lean + def groupCohomology.isoShortComplexH1 + def groupCohomology.isoShortComplexH2 - def groupCohomology.shortComplexH1Iso - def groupCohomology.shortComplexH2Iso Modified Mathlib/RepresentationTheory/Homological/GroupHomology/LowDegree.lean + theorem groupHomology.coinvariantsMk_comp_opcyclesIso₀_inv + def groupHomology.cyclesIso₀ + theorem groupHomology.cyclesIso₀_inv_comp_iCycles + def groupHomology.d₁₀ArrowIso + def groupHomology.isoCycles₁ + theorem groupHomology.isoCycles₁_hom_comp_i + theorem groupHomology.isoCycles₁_inv_comp_iCycles + def groupHomology.isoCycles₂ + theorem groupHomology.isoCycles₂_hom_comp_i + theorem groupHomology.isoCycles₂_inv_comp_iCycles + def groupHomology.isoShortComplexH1 + def groupHomology.isoShortComplexH2 + def groupHomology.opcyclesIso₀ + theorem groupHomology.pOpcycles_comp_opcyclesIso_hom + def groupHomology.shortComplexH0 + theorem groupHomology.shortComplexH0_exact + def groupHomology.shortComplexH1 + def groupHomology.shortComplexH2 + theorem groupHomology.toCycles_comp_isoCycles₁_hom + theorem groupHomology.toCycles_comp_isoCycles₂_hom 2025-07-11 11:47:54 765fdac feat: `CommAlgCat` is cocartesian-monoidal (#25365) Construct the cocartesian-monoidal category structure on `CommAlgCat R` explicitly from the tensor product. From Toric ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Category/CommAlgCat/Basic.lean - def CategoryTheory.CommAlgCat.Hom.Simps.hom - structure CategoryTheory.CommAlgCat.Hom - theorem CategoryTheory.CommAlgCat.coe_of - theorem CategoryTheory.CommAlgCat.comp_apply - theorem CategoryTheory.CommAlgCat.forget_map - theorem CategoryTheory.CommAlgCat.forget_obj - theorem CategoryTheory.CommAlgCat.forget₂_algCat_map - theorem CategoryTheory.CommAlgCat.forget₂_algCat_obj - theorem CategoryTheory.CommAlgCat.forget₂_commRingCat_map - theorem CategoryTheory.CommAlgCat.forget₂_commRingCat_obj - def CategoryTheory.CommAlgCat.fullyFaithfulUliftFunctor - theorem CategoryTheory.CommAlgCat.hom_comp - theorem CategoryTheory.CommAlgCat.hom_ext - theorem CategoryTheory.CommAlgCat.hom_id - theorem CategoryTheory.CommAlgCat.hom_inv_apply - theorem CategoryTheory.CommAlgCat.hom_ofHom - theorem CategoryTheory.CommAlgCat.id_apply - theorem CategoryTheory.CommAlgCat.inv_hom_apply - def CategoryTheory.CommAlgCat.isoEquivAlgEquiv - def CategoryTheory.CommAlgCat.isoMk - theorem CategoryTheory.CommAlgCat.ofHom_apply - theorem CategoryTheory.CommAlgCat.ofHom_comp - theorem CategoryTheory.CommAlgCat.ofHom_hom - theorem CategoryTheory.CommAlgCat.ofHom_id - def CategoryTheory.CommAlgCat.ofIso - def CategoryTheory.CommAlgCat.uliftFunctor - structure CategoryTheory.CommAlgCat - def CategoryTheory.commAlgCatEquivUnder + def CommAlgCat.Hom.Simps.hom + structure CommAlgCat.Hom + theorem CommAlgCat.coe_of + theorem CommAlgCat.comp_apply + theorem CommAlgCat.forget_map + theorem CommAlgCat.forget_obj + theorem CommAlgCat.forget₂_algCat_map + theorem CommAlgCat.forget₂_algCat_obj + theorem CommAlgCat.forget₂_commRingCat_map + theorem CommAlgCat.forget₂_commRingCat_obj + def CommAlgCat.fullyFaithfulUliftFunctor + theorem CommAlgCat.hom_comp + theorem CommAlgCat.hom_ext + theorem CommAlgCat.hom_id + theorem CommAlgCat.hom_inv_apply + theorem CommAlgCat.hom_ofHom + theorem CommAlgCat.id_apply + theorem CommAlgCat.inv_hom_apply + def CommAlgCat.isoEquivAlgEquiv + def CommAlgCat.isoMk + theorem CommAlgCat.ofHom_apply + theorem CommAlgCat.ofHom_comp + theorem CommAlgCat.ofHom_hom + theorem CommAlgCat.ofHom_id + def CommAlgCat.ofIso + def CommAlgCat.uliftFunctor + structure CommAlgCat + def commAlgCatEquivUnder Added Mathlib/Algebra/Category/CommAlgCat/Monoidal.lean + theorem CommAlgCat.associator_hom_hom + theorem CommAlgCat.associator_inv_hom + def CommAlgCat.binaryCofan + def CommAlgCat.binaryCofanIsColimit + theorem CommAlgCat.binaryCofan_inl + theorem CommAlgCat.binaryCofan_inr + theorem CommAlgCat.binaryCofan_pt + theorem CommAlgCat.braiding_hom_hom + theorem CommAlgCat.braiding_inv_hom + theorem CommAlgCat.coe_tensorObj + theorem CommAlgCat.coe_tensorUnit + theorem CommAlgCat.fst_unop_hom + def CommAlgCat.isInitialSelf + theorem CommAlgCat.lift_unop_hom + theorem CommAlgCat.snd_unop_hom + theorem CommAlgCat.tensorHom_hom + theorem CommAlgCat.toUnit_unop_hom + theorem CommAlgCat.whiskerLeft_hom + theorem CommAlgCat.whiskerRight_hom 2025-07-11 11:10:09 9805e0b feat(Algebra/GroupWithZero/WithZero): add lemma map'_surjective_iff (#26980) ESTIMATED CHANGES Modified Mathlib/Algebra/GroupWithZero/WithZero.lean + theorem WithZero.lift'_surjective + theorem WithZero.map'_surjective_iff 2025-07-11 10:12:10 1c77942 feat(Algebra/Order/Monoid): StrictMono.isOrdered(Cancel)Monoid (#26939) pullback of `IsOrderedMonoid` we have `Function.Injective.isOrderedMonoid` but that assumes that the monoid structure and order structure on the domain is also induced by the pullback ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Monoid/Basic.lean + theorem StrictMono.isOrderedCancelMonoid + theorem StrictMono.isOrderedMonoid 2025-07-11 10:12:07 0bcdefe feat(Order): Quotient lift for ArchimedeanClass (#26789) This adds two features: - ~~A subtype of ArchimedeanClass that removes the top element. It is often useful to treat the top element specially.~~ - Add lift for both ArchimedeanClass and the subtype, analog to Quotient.lift Further more, promote it to a OrderHom given suitable conditions. ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Archimedean/Class.lean + def MulArchimedeanClass.lift + def MulArchimedeanClass.liftOrderHom + theorem MulArchimedeanClass.liftOrderHom_mk + theorem MulArchimedeanClass.lift_mk 2025-07-11 09:29:37 f10105b chore: a batch of whitespace fixes (#26964) Found by #26926. ESTIMATED CHANGES Modified Mathlib/Algebra/BigOperators/Finprod.lean Modified Mathlib/Algebra/FreeMonoid/Basic.lean +/- def FreeMonoid.freeMonoidCongr Modified Mathlib/Algebra/Group/Conj.lean +/- theorem IsConj.pow Modified Mathlib/Algebra/Group/Subgroup/Defs.lean +/- theorem Subgroup.coe_subtype Modified Mathlib/Algebra/GroupWithZero/Units/Basic.lean Modified Mathlib/Algebra/Module/Equiv/Defs.lean +/- theorem LinearEquiv.symm_comp Modified Mathlib/Algebra/Module/Submodule/Lattice.lean +/- def Submodule.botEquivPUnit Modified Mathlib/Algebra/Order/GroupWithZero/Unbundled/Basic.lean Modified Mathlib/Algebra/Order/Nonneg/Basic.lean Modified Mathlib/Algebra/Order/Ring/Unbundled/Basic.lean Modified Mathlib/Algebra/Regular/SMul.lean Modified Mathlib/Algebra/Ring/Center.lean Modified Mathlib/Algebra/Star/SelfAdjoint.lean Modified Mathlib/Data/Matrix/Mul.lean +/- theorem Matrix.mulVec_neg +/- theorem Matrix.neg_mulVec +/- theorem Matrix.neg_vecMul +/- theorem Matrix.vecMul_neg Modified Mathlib/Data/Set/Piecewise.lean Modified Mathlib/Data/Sym/Basic.lean Modified Mathlib/LinearAlgebra/Prod.lean Modified Mathlib/Logic/Denumerable.lean Modified Mathlib/Logic/Encodable/Basic.lean +/- theorem Encodable.decode_option_zero Modified Mathlib/MeasureTheory/Integral/Gamma.lean Modified Mathlib/MeasureTheory/Integral/RieszMarkovKakutani/Basic.lean Modified Mathlib/MeasureTheory/Integral/TorusIntegral.lean Modified Mathlib/MeasureTheory/Measure/FiniteMeasure.lean Modified Mathlib/MeasureTheory/Measure/Lebesgue/VolumeOfBalls.lean Modified Mathlib/MeasureTheory/Measure/LevyProkhorovMetric.lean Modified Mathlib/MeasureTheory/Measure/Portmanteau.lean Modified Mathlib/MeasureTheory/OuterMeasure/OfAddContent.lean Modified Mathlib/ModelTheory/Order.lean Modified Mathlib/ModelTheory/PartialEquiv.lean Modified Mathlib/NumberTheory/Cyclotomic/Rat.lean Modified Mathlib/NumberTheory/Cyclotomic/Three.lean +/- theorem IsCyclotomicExtension.Rat.Three.eta_sq Modified Mathlib/NumberTheory/EulerProduct/Basic.lean Modified Mathlib/NumberTheory/Fermat.lean Modified Mathlib/NumberTheory/Harmonic/Bounds.lean Modified Mathlib/NumberTheory/Harmonic/GammaDeriv.lean Modified Mathlib/NumberTheory/Harmonic/ZetaAsymp.lean Modified Mathlib/NumberTheory/JacobiSum/Basic.lean Modified Mathlib/NumberTheory/LSeries/AbstractFuncEq.lean Modified Mathlib/NumberTheory/LSeries/Basic.lean Modified Mathlib/NumberTheory/LSeries/Convergence.lean Modified Mathlib/NumberTheory/LSeries/Deriv.lean Modified Mathlib/NumberTheory/LSeries/Dirichlet.lean Modified Mathlib/NumberTheory/LSeries/DirichletContinuation.lean Modified Mathlib/NumberTheory/LSeries/HurwitzZetaEven.lean Modified Mathlib/NumberTheory/LSeries/HurwitzZetaOdd.lean Modified Mathlib/NumberTheory/LSeries/Linearity.lean +/- theorem LSeries.term_sum Modified Mathlib/NumberTheory/LSeries/Nonvanishing.lean Modified Mathlib/NumberTheory/LSeries/PrimesInAP.lean Modified Mathlib/NumberTheory/LSeries/SumCoeff.lean Modified Mathlib/NumberTheory/LSeries/ZMod.lean Modified Mathlib/NumberTheory/ModularForms/CongruenceSubgroups.lean Modified Mathlib/NumberTheory/ModularForms/EisensteinSeries/IsBoundedAtImInfty.lean Modified Mathlib/NumberTheory/ModularForms/JacobiTheta/TwoVariable.lean Modified Mathlib/NumberTheory/ModularForms/SlashActions.lean Modified Mathlib/NumberTheory/NumberField/CanonicalEmbedding/Basic.lean Modified Mathlib/NumberTheory/NumberField/CanonicalEmbedding/ConvexBody.lean Modified Mathlib/NumberTheory/NumberField/CanonicalEmbedding/FundamentalCone.lean Modified Mathlib/NumberTheory/NumberField/CanonicalEmbedding/NormLeOne.lean Modified Mathlib/NumberTheory/NumberField/CanonicalEmbedding/PolarCoord.lean Modified Mathlib/NumberTheory/NumberField/EquivReindex.lean Modified Mathlib/NumberTheory/NumberField/FinitePlaces.lean +/- theorem NumberField.RingOfIntegers.HeightOneSpectrum.FinitePlace.mk_apply Modified Mathlib/NumberTheory/NumberField/House.lean Modified Mathlib/NumberTheory/NumberField/Ideal/Basic.lean Modified Mathlib/NumberTheory/NumberField/InfinitePlace/TotallyRealComplex.lean Modified Mathlib/NumberTheory/NumberField/Units/DirichletTheorem.lean Modified Mathlib/NumberTheory/NumberField/Units/Regulator.lean Modified Mathlib/NumberTheory/Ostrowski.lean +/- theorem Rat.AbsoluteValue.eq_on_nat_iff_eq +/- theorem Rat.AbsoluteValue.equiv_on_nat_iff_equiv Modified Mathlib/NumberTheory/Padics/Complex.lean +/- theorem PadicComplex.coe_natCast Modified Mathlib/NumberTheory/Padics/RingHoms.lean Modified Mathlib/NumberTheory/SelbergSieve.lean Modified Mathlib/NumberTheory/WellApproximable.lean Modified Mathlib/Order/CompleteLattice/Chain.lean Modified Mathlib/Order/CompletePartialOrder.lean Modified Mathlib/Order/Cover.lean +/- theorem CovBy.exists_set_sdiff_singleton Modified Mathlib/Order/Interval/Finset/Defs.lean Modified Mathlib/Order/Interval/Set/OrdConnected.lean Modified Mathlib/Order/ScottContinuity.lean Modified Mathlib/Order/SuccPred/Basic.lean +/- theorem Order.Ico_subset_Ioo_pred_left_of_not_isMin Modified Mathlib/Probability/Independence/Basic.lean Modified Mathlib/Probability/Independence/Kernel.lean Modified Mathlib/Probability/Kernel/Disintegration/MeasurableStieltjes.lean Modified Mathlib/Probability/Martingale/Convergence.lean Modified Mathlib/Probability/Martingale/OptionalStopping.lean Modified Mathlib/Probability/Moments/Variance.lean Modified Mathlib/RingTheory/Flat/EquationalCriterion.lean Modified Mathlib/RingTheory/Ideal/Quotient/PowTransition.lean Modified Mathlib/RingTheory/MvPowerSeries/LexOrder.lean Modified Mathlib/RingTheory/MvPowerSeries/NoZeroDivisors.lean Modified Mathlib/RingTheory/PowerSeries/Basic.lean +/- theorem Polynomial.coe_neg Modified Mathlib/Topology/Algebra/Order/Support.lean Modified Mathlib/Topology/Algebra/RestrictedProduct/TopologicalSpace.lean Modified Mathlib/Topology/Algebra/Valued/NormedValued.lean Modified Mathlib/Topology/ContinuousMap/CompactlySupported.lean +/- theorem CompactlySupportedContinuousMap.nnrealPart_neg_toReal_eq 2025-07-11 09:29:36 2c17227 feat(Valued/WithZeroMulInt): generalize to any mul-archimedean Valued (#26887) in preparation for ValuativeRel the statement of `tendsto_zero_pow_of_le_exp_neg_one` is really about MulArchimedean group-with-zeros so, helper lemmas were added in upstream files ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Archimedean/Basic.lean + theorem exists_pow_lt Modified Mathlib/GroupTheory/ArchimedeanDensely.lean + theorem exists_pow_lt₀ Modified Mathlib/Topology/Algebra/Valued/WithZeroMulInt.lean +/- theorem Valued.exists_pow_lt_of_le_exp_neg_one +/- theorem Valued.tendsto_zero_pow_of_le_exp_neg_one + theorem Valued.tendsto_zero_pow_of_v_lt_one 2025-07-11 08:42:13 d79bad3 chore(Valuation/Archimedean): generalize `isPrincipalIdealRing_iff_not_denselyOrdered` to only discuss mrange (#26943) This is stronger, because the codomain could be not mul-archimedean Could help with #26623 ESTIMATED CHANGES Modified Mathlib/RingTheory/Valuation/Archimedean.lean +/- theorem Valuation.Integers.isPrincipalIdealRing_iff_not_denselyOrdered Modified Mathlib/Topology/Algebra/Valued/LocallyCompact.lean +/- theorem Valued.integer.isPrincipalIdealRing_of_compactSpace 2025-07-11 08:42:12 2881907 feat(CategoryTheory/Enriched): category of enriched functors (#26731) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Enriched/Basic.lean + def CategoryTheory.EnrichedNatTrans.comp + def CategoryTheory.EnrichedNatTrans.id + theorem CategoryTheory.EnrichedNatTrans.naturality Modified docs/references.bib 2025-07-11 08:33:02 4b60287 doc(Data/Int/Bitwise): add missing negation in docstring for ldiff (#26915) ESTIMATED CHANGES Modified Mathlib/Data/Int/Bitwise.lean 2025-07-11 07:44:36 57a4601 feat(RepresentationTheory/Homological/GroupHomology): add Shapiro's lemma (#25996) Given a commutative ring `k` and a subgroup `S ≤ G`, the file `RepresentationTheory/Coinduced.lean` proves that the functor `Coind_S^G : Rep k S ⥤ Rep k G` preserves epimorphisms. Since `Res(S) : Rep k G ⥤ Rep k S` is left adjoint to `Coind_S^G`, this means `Res(S)` preserves projective objects. Since `Res(S)` is also exact, given a projective resolution `P` of `k` as a trivial `k`-linear `G`-representation, `Res(S)(P)` is a projective resolution of `k` as a trivial `k`-linear `S`-representation. Given a `G`-representation `X`, we define a natural isomorphism between the functors `Rep k S ⥤ ModuleCat k` sending `A` to `(Ind_S^G A ⊗ X)_G` and to `(A ⊗ Res(S)(X))_S`. Hence a projective resolution `P` of `k` as a trivial `G`-representation induces an isomorphism of complexes `(Ind_S^G A ⊗ P)_G ≅ (A ⊗ Res(S)(P))_S`, and since the homology of these complexes calculate group homology, we conclude Shapiro's lemma: `Hₙ(G, Ind_S^G(A)) ≅ Hₙ(S, A)` for all `n`. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/RepresentationTheory/Coinduced.lean Modified Mathlib/RepresentationTheory/FiniteIndex.lean Modified Mathlib/RepresentationTheory/Homological/GroupCohomology/Shapiro.lean Modified Mathlib/RepresentationTheory/Homological/GroupHomology/Basic.lean + def groupHomologyIso Added Mathlib/RepresentationTheory/Homological/GroupHomology/Shapiro.lean Modified Mathlib/RepresentationTheory/Induced.lean + theorem Rep.coinvariantsTensorIndHom_mk_tmul_indVMk + theorem Rep.coinvariantsTensorIndInv_mk_tmul_indMk 2025-07-11 07:05:55 955ae44 feat(Algebra): two lemmas about IsScalarTower and SMulCommClass on commutative monoids (#26948) Zulip: [#Is there code for X? > SMulCommClass R₁ R R implies IsScalarTower R₁ R R](https://leanprover.zulipchat.com/#narrow/channel/217875-Is-there-code-for-X.3F/topic/SMulCommClass.20R.E2.82.81.20R.20R.20implies.20IsScalarTower.20R.E2.82.81.20R.20R/with/527856495) ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Action/Defs.lean + theorem IsScalarTower.of_commMonoid + theorem isScalarTower_iff_smulCommClass_of_commMonoid 2025-07-11 07:05:53 8624f06 chore(Combinatorics/Additive/Energy): review API (#26832) The primary change in this PR is to use the new finset notation `#` and sep. Additionally rename `le_card_add_mul_mulEnergy` to `le_card_mul_mul_mulEnergy`, since it does not mention `+` anywhere. Finally, add some lemmas for the `s = t` case of energy. ESTIMATED CHANGES Modified Mathlib/Combinatorics/Additive/Energy.lean - theorem Finset.le_card_add_mul_mulEnergy + theorem Finset.le_card_mul_mul_mulEnergy +/- theorem Finset.le_mulEnergy + theorem Finset.le_mulEnergy_self + theorem Finset.mulEnergy_self_eq_zero_iff + theorem Finset.mulEnergy_self_pos + theorem Finset.mulEnergy_self_pos_iff 2025-07-11 06:39:46 80ba0c9 feat(Algebra/Order/Group/Cyclic): add genLTOne_unique (#26846) ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Group/Cyclic.lean + theorem LinearOrderedCommGroup.Subgroup.genLTOne_unique + theorem LinearOrderedCommGroup.Subgroup.genLTOne_unique_of_zpowers_eq + theorem LinearOrderedCommGroup.genLTOne_unique Modified Mathlib/GroupTheory/ArchimedeanDensely.lean - theorem Subgroup.zpowers_eq_zpowers_iff Modified Mathlib/GroupTheory/OrderOfElement.lean + theorem Subgroup.zpowers_eq_zpowers_iff 2025-07-11 06:02:00 cb81b03 feat: induction principle for open sets according to a basis (#26978) This feels like an obvious omission. ESTIMATED CHANGES Modified Mathlib/Topology/Bases.lean + theorem TopologicalSpace.IsTopologicalBasis.isOpen_induction 2025-07-11 02:59:00 f2ee88f feat: the composition of open relations is open (#24173) [Zulip](https://leanprover.zulipchat.com/#narrow/channel/217875-Is-there-code-for-X.3F/topic/.60IsOpen.60.20and.20.60compRel.60) ESTIMATED CHANGES Modified Mathlib/Topology/UniformSpace/Basic.lean + theorem IsOpen.relComp 2025-07-11 02:49:07 af89848 chore(RingTheory/ZMod/UnitsCyclic): Reduce imports (#26982) This PR reduces the imports of `RingTheory/ZMod/UnitsCyclic`. ESTIMATED CHANGES Modified Mathlib/RingTheory/ZMod/UnitsCyclic.lean 2025-07-11 01:56:56 b821f6e feat(Analysis/InnerProductSpace/Projection): define `Submodule.starProjection` (#25958) This defines `Submodule.starProjection`, the orthogonal projection onto a subspace as a map from the full space to itself, as opposed to `Submodule.orthogonalProjection`, which maps into the subtype. This version is important as it satisfies `IsStarProjection`. Lemma: an operator is a star projection iff it is an orthogonal projection (i.e., `IsStarProjection p` iff `p = (LinearMap.range p).starProjection`). ESTIMATED CHANGES Modified Mathlib/Analysis/InnerProductSpace/Adjoint.lean + theorem IsIdempotentElem.hasOrthogonalProjection_range - theorem IsSelfAdjoint.conj_orthogonalProjection + theorem IsSelfAdjoint.conj_starProjection + theorem isSelfAdjoint_starProjection + theorem isStarProjection_iff_eq_starProjection_range + theorem isStarProjection_starProjection - theorem orthogonalProjection_isSelfAdjoint Modified Mathlib/Analysis/InnerProductSpace/Positive.lean - theorem ContinuousLinearMap.IsPositive.conj_orthogonalProjection + theorem ContinuousLinearMap.IsPositive.conj_starProjection Modified Mathlib/Analysis/InnerProductSpace/Projection.lean + theorem Submodule.isIdempotentElem_starProjection + theorem Submodule.ker_starProjection + theorem Submodule.range_starProjection + def Submodule.starProjection + theorem Submodule.starProjection_apply + theorem Submodule.starProjection_apply_mem + theorem Submodule.starProjection_bot + theorem Submodule.starProjection_orthogonal' + theorem Submodule.starProjection_orthogonal + theorem Submodule.starProjection_top' + theorem Submodule.starProjection_top Modified Mathlib/Analysis/InnerProductSpace/Symmetric.lean + theorem LinearMap.IsSymmetric.orthogonal_range Modified Mathlib/LinearAlgebra/Projection.lean + theorem LinearMap.IsIdempotentElem.ker_eq_range + theorem LinearMap.IsIdempotentElem.range_eq_ker Modified Mathlib/Topology/Algebra/Module/LinearMap.lean + theorem ContinuousLinearMap.IsIdempotentElem.isClosed_range + theorem ContinuousLinearMap.IsIdempotentElem.ker_eq_range + theorem ContinuousLinearMap.IsIdempotentElem.range_eq_ker 2025-07-10 20:17:30 d19cd93 feat(Analysis/InnerProductSpace/Positive): a star projection operator is positive (#26631) This shows that a star projection (i.e., a self-adjoint idempotent) operator is positive. ESTIMATED CHANGES Modified Mathlib/Analysis/InnerProductSpace/Positive.lean + theorem ContinuousLinearMap.IsIdempotentElem.isPositive_iff_isSelfAdjoint + theorem ContinuousLinearMap.IsPositive.of_isStarPojection 2025-07-10 19:37:41 3cbe35f chore(Gram-Schmidt): small tweaks (#26894) - improve formatting of the module doc-string - move all declarations to the InnerProductSpace namespace ESTIMATED CHANGES Modified Mathlib/Analysis/InnerProductSpace/GramSchmidtOrtho.lean + theorem InnerProductSpace.coe_gramSchmidtBasis + theorem InnerProductSpace.gramSchmidtNormed_orthonormal' + theorem InnerProductSpace.gramSchmidtNormed_orthonormal + theorem InnerProductSpace.gramSchmidtNormed_unit_length' + theorem InnerProductSpace.gramSchmidtNormed_unit_length + theorem InnerProductSpace.gramSchmidtNormed_unit_length_coe + theorem InnerProductSpace.gramSchmidtOrthonormalBasis_apply + theorem InnerProductSpace.gramSchmidtOrthonormalBasis_apply_of_orthogonal + theorem InnerProductSpace.gramSchmidtOrthonormalBasis_det + theorem InnerProductSpace.gramSchmidtOrthonormalBasis_inv_blockTriangular + theorem InnerProductSpace.gramSchmidtOrthonormalBasis_inv_triangular' + theorem InnerProductSpace.gramSchmidtOrthonormalBasis_inv_triangular + theorem InnerProductSpace.gramSchmidt_def'' + theorem InnerProductSpace.gramSchmidt_def' + theorem InnerProductSpace.gramSchmidt_def + theorem InnerProductSpace.gramSchmidt_inv_triangular + theorem InnerProductSpace.gramSchmidt_linearIndependent + theorem InnerProductSpace.gramSchmidt_mem_span + theorem InnerProductSpace.gramSchmidt_ne_zero + theorem InnerProductSpace.gramSchmidt_ne_zero_coe + theorem InnerProductSpace.gramSchmidt_of_orthogonal + theorem InnerProductSpace.gramSchmidt_orthogonal + theorem InnerProductSpace.gramSchmidt_pairwise_orthogonal + theorem InnerProductSpace.gramSchmidt_triangular + theorem InnerProductSpace.gramSchmidt_zero + theorem InnerProductSpace.inner_gramSchmidtOrthonormalBasis_eq_zero + theorem InnerProductSpace.mem_span_gramSchmidt + theorem InnerProductSpace.span_gramSchmidt + theorem InnerProductSpace.span_gramSchmidtNormed + theorem InnerProductSpace.span_gramSchmidtNormed_range + theorem InnerProductSpace.span_gramSchmidt_Iic + theorem InnerProductSpace.span_gramSchmidt_Iio - theorem coe_gramSchmidtBasis - theorem gramSchmidtNormed_unit_length' - theorem gramSchmidtNormed_unit_length - theorem gramSchmidtNormed_unit_length_coe - theorem gramSchmidtOrthonormalBasis_apply - theorem gramSchmidtOrthonormalBasis_apply_of_orthogonal - theorem gramSchmidtOrthonormalBasis_det - theorem gramSchmidtOrthonormalBasis_inv_blockTriangular - theorem gramSchmidtOrthonormalBasis_inv_triangular' - theorem gramSchmidtOrthonormalBasis_inv_triangular - theorem gramSchmidt_def'' - theorem gramSchmidt_def' - theorem gramSchmidt_def - theorem gramSchmidt_inv_triangular - theorem gramSchmidt_linearIndependent - theorem gramSchmidt_mem_span - theorem gramSchmidt_ne_zero - theorem gramSchmidt_ne_zero_coe - theorem gramSchmidt_of_orthogonal - theorem gramSchmidt_orthogonal - theorem gramSchmidt_orthonormal' - theorem gramSchmidt_orthonormal - theorem gramSchmidt_pairwise_orthogonal - theorem gramSchmidt_triangular - theorem gramSchmidt_zero - theorem inner_gramSchmidtOrthonormalBasis_eq_zero - theorem mem_span_gramSchmidt - theorem span_gramSchmidt - theorem span_gramSchmidtNormed - theorem span_gramSchmidtNormed_range - theorem span_gramSchmidt_Iic - theorem span_gramSchmidt_Iio Modified Mathlib/Analysis/InnerProductSpace/Orientation.lean Modified Mathlib/LinearAlgebra/Matrix/LDL.lean Modified docs/undergrad.yaml 2025-07-10 18:42:13 d61d5bb feat(Topology/MetricSpace/HausdorffDimension): Proves `dimH s < ⊤` in finite-dimensional normed spaces (#26970) Establish that the Hausdorff dimension of any set in a finite-dimensional real normed space is finite. ESTIMATED CHANGES Modified Mathlib/Topology/MetricSpace/HausdorffDimension.lean + theorem Real.dimH_lt_top + theorem Real.dimH_ne_top 2025-07-10 17:44:09 9fd382b perf(Mathlib/Topology/Instances/Nat): Reduce imports (#26905) Reduces -0.08% cumulation. ### `lake exe pole` results: #### Before | file | instructions | cumulative | parallelism | | : ESTIMATED CHANGES Modified Mathlib/Topology/Instances/Nat.lean 2025-07-10 17:35:31 1171f1e fix(scripts/create-adaptation-pr): improve find_remote (#26974) The old one was a syntax error and would've found a `mathlib4-nightly-testing` remote as a `mathlib4` remote (due to substring); this one is a bit more strict and works at least on my machine :-) ESTIMATED CHANGES Modified scripts/create-adaptation-pr.sh 2025-07-10 17:00:28 f858fcc chore(Mathlib/Topology): deprecate renamed modules in #26918 (#26947) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Topology/Compactness/Exterior.lean Added Mathlib/Topology/Exterior.lean 2025-07-10 17:00:26 1baac3c feat: `contMDiff_section_of_tsupport` (#26671) A scalar product `f • s` of a `C^k` function f : M → ℝ with a section `s` is `C^k` once `s` is `C^k` on an open subset containing `tsupport `s`. In particular, this applies to proving the smoothness of a section paired with a smooth bump function. This is more general than `contMDiff_of_tsupport` since the co-domain is the total space of a vector bundle, which does not have a `Zero`. Part of the path towards the geodesics and the Levi-Civita connection. ESTIMATED CHANGES Modified Mathlib/Geometry/Manifold/ContMDiff/Basic.lean Modified Mathlib/Geometry/Manifold/VectorBundle/SmoothSection.lean + theorem ContMDiffOn.smul_section_of_tsupport 2025-07-10 16:28:07 80ef7ee chore(Order/Filter/Basic): rename `EventuallyLE.le_iff_eq` to `EventuallyLE.ge_iff_eq'` (#26969) ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Integral/Bochner/Basic.lean Modified Mathlib/Order/Filter/Basic.lean + theorem Filter.EventuallyLE.ge_iff_eq' - theorem Filter.EventuallyLE.le_iff_eq 2025-07-10 15:23:42 cfc5f69 chore(Order): use new ge/gt naming convention - Part 5 (#25586) This PR renames, moves around, and deprecates theorems about `PartialOrder`s The main changes are in `Mathlib.Order.Defs.PartialOrder` and `Mathlib.Order.Basic`. ESTIMATED CHANGES Modified Mathlib/Algebra/ContinuedFractions/Computation/Approximations.lean Modified Mathlib/Algebra/Exact.lean Modified Mathlib/Algebra/Order/AbsoluteValue/Basic.lean Modified Mathlib/Algebra/Order/BigOperators/Ring/Finset.lean Modified Mathlib/Algebra/Order/Group/PosPart.lean Modified Mathlib/Algebra/Order/Group/Unbundled/Abs.lean Modified Mathlib/Algebra/Order/Monoid/Canonical/Defs.lean Modified Mathlib/Algebra/Order/Monoid/Unbundled/Basic.lean Modified Mathlib/Algebra/Order/Ring/Unbundled/Basic.lean Modified Mathlib/Algebra/Quaternion.lean Modified Mathlib/Analysis/Analytic/Basic.lean Modified Mathlib/Analysis/Calculus/Darboux.lean Modified Mathlib/Analysis/Convex/Gauge.lean Modified Mathlib/Analysis/Convex/Jensen.lean Modified Mathlib/Analysis/Convex/Segment.lean Modified Mathlib/Analysis/InnerProductSpace/Basic.lean Modified Mathlib/Analysis/InnerProductSpace/LinearMap.lean Modified Mathlib/Analysis/MeanInequalities.lean Modified Mathlib/Analysis/Normed/Group/Basic.lean +/- theorem norm_eq_zero' Modified Mathlib/Analysis/Normed/Group/Continuity.lean Modified Mathlib/Analysis/Normed/Group/Quotient.lean Modified Mathlib/Analysis/Normed/Unbundled/RingSeminorm.lean Modified Mathlib/Analysis/Normed/Unbundled/SeminormFromBounded.lean Modified Mathlib/Analysis/NormedSpace/Multilinear/Basic.lean Modified Mathlib/Analysis/NormedSpace/OperatorNorm/Bilinear.lean Modified Mathlib/Analysis/SpecialFunctions/BinaryEntropy.lean Modified Mathlib/Analysis/SpecialFunctions/ContinuousFunctionalCalculus/Rpow/IntegralRepresentation.lean Modified Mathlib/Analysis/SpecialFunctions/Pow/Real.lean Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Inverse.lean Modified Mathlib/Analysis/SpecificLimits/Normed.lean Modified Mathlib/Combinatorics/Additive/CauchyDavenport.lean Modified Mathlib/Combinatorics/Additive/Energy.lean Modified Mathlib/Combinatorics/Configuration.lean Modified Mathlib/Combinatorics/SetFamily/FourFunctions.lean Modified Mathlib/Combinatorics/SimpleGraph/Extremal/Basic.lean Modified Mathlib/Data/EReal/Operations.lean Modified Mathlib/Data/Finset/Card.lean Modified Mathlib/Data/NNReal/Defs.lean Modified Mathlib/Data/Nat/Find.lean Modified Mathlib/Data/Set/Sups.lean Modified Mathlib/FieldTheory/Normal/Closure.lean Modified Mathlib/Geometry/Euclidean/Angle/Unoriented/Basic.lean Modified Mathlib/GroupTheory/SpecificGroups/Alternating.lean Modified Mathlib/LinearAlgebra/Dimension/DivisionRing.lean Modified Mathlib/LinearAlgebra/FreeModule/PID.lean Modified Mathlib/LinearAlgebra/Ray.lean Modified Mathlib/MeasureTheory/Measure/MeasureSpace.lean Modified Mathlib/NumberTheory/NumberField/CanonicalEmbedding/ConvexBody.lean Modified Mathlib/NumberTheory/SumFourSquares.lean Modified Mathlib/Order/Basic.lean + theorem LE.le.ge_iff_eq' - theorem LE.le.gt_iff_ne - theorem LE.le.le_iff_eq + theorem LE.le.lt_iff_ne' - theorem LE.le.not_gt_iff_eq + theorem LE.le.not_lt_iff_eq' +/- theorem eq_iff_le_not_lt +/- theorem eq_iff_not_lt_of_le - theorem eq_of_ge_of_not_gt + theorem eq_of_le_of_not_lt' +/- theorem eq_of_le_of_not_lt - theorem eq_or_gt_of_le + theorem eq_or_lt_of_le' +/- theorem eq_or_lt_of_le - theorem gt_or_eq_of_le + theorem lt_or_eq_of_le' Modified Mathlib/Order/BoundedOrder/Basic.lean Modified Mathlib/Order/Cover.lean Modified Mathlib/Order/Defs/PartialOrder.lean - theorem Decidable.eq_or_lt_of_le - theorem Decidable.le_iff_lt_or_eq - theorem Decidable.lt_or_eq_of_le Modified Mathlib/Order/Fin/Basic.lean Modified Mathlib/Order/Interval/Set/Basic.lean Modified Mathlib/Order/UpperLower/Closure.lean +/- theorem UpperSet.lt_erase Modified Mathlib/RingTheory/ChainOfDivisors.lean Modified Mathlib/RingTheory/Filtration.lean Modified Mathlib/RingTheory/Regular/IsSMulRegular.lean Modified Mathlib/SetTheory/Ordinal/Arithmetic.lean Modified Mathlib/SetTheory/Ordinal/Exponential.lean Modified Mathlib/SetTheory/Ordinal/Family.lean Modified Mathlib/Topology/Compactness/DeltaGeneratedSpace.lean Modified Mathlib/Topology/Instances/ENNReal/Lemmas.lean Modified Mathlib/Topology/Instances/ENat.lean Modified Mathlib/Topology/MetricSpace/HausdorffDistance.lean Modified Mathlib/Topology/MetricSpace/Pseudo/Defs.lean Modified Mathlib/Topology/Neighborhoods.lean Modified Mathlib/Topology/NhdsSet.lean Modified Mathlib/Topology/Order.lean 2025-07-10 15:14:37 c88ccec feat(RepresentationTheory/Homological/GroupHomology/LowDegree): add `IsCycle₁` predicate and friends (#25884) Given an additive abelian group `A` with an appropriate scalar action of `G`, we provide support for turning a finsupp `f : G →₀ A` satisfying the 1-cycle identity into an element of the `cycles₁` of the representation on `A` corresponding to the scalar action. We also do this for 0-boundaries, 1-boundaries, 2-cycles and 2-boundaries. We follow the structure of `RepresentationTheory/Homological/GroupCohomology/LowDegree.lean`. ESTIMATED CHANGES Modified Mathlib/RepresentationTheory/Homological/GroupHomology/LowDegree.lean + def groupHomology.IsBoundary₀ + def groupHomology.IsBoundary₁ + def groupHomology.IsBoundary₂ + def groupHomology.IsCycle₁ + def groupHomology.IsCycle₂ + def groupHomology.boundariesOfIsBoundary₁ + def groupHomology.boundariesOfIsBoundary₂ + def groupHomology.coinvariantsKerOfIsBoundary₀ + def groupHomology.cyclesOfIsCycle₁ + def groupHomology.cyclesOfIsCycle₂ + theorem groupHomology.isBoundary₀_iff + theorem groupHomology.isBoundary₀_of_mem_coinvariantsKer + theorem groupHomology.isBoundary₁_iff + theorem groupHomology.isBoundary₁_of_mem_boundaries₁ + theorem groupHomology.isBoundary₂_iff + theorem groupHomology.isBoundary₂_of_mem_boundaries₂ + theorem groupHomology.isCycle₁_of_mem_cycles₁ + theorem groupHomology.isCycle₂_of_mem_cycles₂ + theorem groupHomology.single_isCycle₁_iff + theorem groupHomology.single_isCycle₁_of_mem_fixedPoints + theorem groupHomology.single_isCycle₂_iff + theorem groupHomology.single_isCycle₂_iff_inv 2025-07-10 14:00:33 1cc889e feat(RingTheory/Valuation/Discrete/Basic.lean): add Nontriviality instances for discrete valuations (#26587) Co-authored by: María Inés de Frutos Fernández @mariainesdff ESTIMATED CHANGES Modified Mathlib/Algebra/GroupWithZero/Range.lean + theorem MonoidWithZeroHom.coe_one + theorem MonoidWithZeroHom.one_mem_valueMonoid Modified Mathlib/RingTheory/Valuation/Discrete/Basic.lean 2025-07-10 09:37:54 bc78062 chore(CategoryTheory): autoparam for pullback.lift (#26953) The commutativity condition in `pullback.lift` is made an autoparam (`by aesop_cat`). Similarly, the `w` field in `CommSq` can be proven automatically `by aesop_cat`. ESTIMATED CHANGES Modified Mathlib/AlgebraicGeometry/Pullbacks.lean Modified Mathlib/AlgebraicGeometry/ValuativeCriterion.lean Modified Mathlib/CategoryTheory/CommSq.lean Modified Mathlib/CategoryTheory/Limits/Constructions/Equalizers.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Pullback/HasPullback.lean 2025-07-10 04:21:09 02c6431 feat: {Set,Finset}.mem_union_of_disjoint (#26946) ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Finsupp.lean Modified Mathlib/Data/Finset/Basic.lean + theorem Finset.mem_union_of_disjoint Modified Mathlib/Data/Set/Disjoint.lean + theorem Set.mem_union_of_disjoint 2025-07-10 04:21:07 55b8498 feat(GroupTheory/GroupAction/MultiplyPretransitive) : Multiple transivity property of the permutation group (#26281) * The permutation group is pretransitive, is multiply pretransitive, and is preprimitive (for its natural action) * `Equiv.Perm.eq_top_if_isMultiplyPretransitive`: a subgroup of `Equiv.Perm α` which is `Nat.card α - 1` pretransitive is equal to `⊤`. This PR continues the work from #24130 Original PR: https://github.com/leanprover-community/mathlib4/pull/24130 - [x] depends on: #26280 - [ ] depends on: #26279 ESTIMATED CHANGES Modified Mathlib/GroupTheory/GroupAction/MultiplePrimitivity.lean + theorem MulAction.isPreprimitive_of_fixingSubgroup_empty_iff Modified Mathlib/GroupTheory/GroupAction/SubMulAction/OfFixingSubgroup.lean +/- theorem SubMulAction.conjMap_ofFixingSubgroup_bijective +/- theorem SubMulAction.ofFixingSubgroup_insert_map_bijective 2025-07-10 03:45:50 c30c25b feat(NumberField): specialized version of Kummer Dedekind for the splitting of prime numbers (part 1) (#26137) First part of the Kummer-Dedekind isomorphism for the splitting of rational prime numbers in number fields. We define the `exponent` of an algebraic integer `θ` and define the isomorphism between `(ℤ / pℤ)[X] / (minpoly θ)` and `𝓞 K / p(𝓞 K)` for primes `p` which doesn't divide the exponent of `θ`. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/NumberTheory/NumberField/Ideal/KummerDedekind.lean + def RingOfIntegers.ZModXQuotSpanEquivQuotSpan + def RingOfIntegers.ZModXQuotSpanEquivQuotSpanPair + theorem RingOfIntegers.ZModXQuotSpanEquivQuotSpan_mk_apply + def RingOfIntegers.exponent + theorem RingOfIntegers.exponent_eq_one_iff + theorem RingOfIntegers.exponent_eq_sInf + theorem RingOfIntegers.not_dvd_exponent_iff Modified Mathlib/Order/Atoms.lean + theorem IsAtom.inf_eq_bot_iff + theorem IsCoatom.sup_eq_top_iff Modified Mathlib/RingTheory/Ideal/Span.lean + theorem Ideal.span_pair_eq_span_left_iff_dvd + theorem Ideal.span_pair_eq_span_right_iff_dvd 2025-07-09 21:00:35 97e6e35 chore(Order/WithZero): `OrderIso.withZeroUnits` (#26940) not bundled because `Algebra/Order/GroupWithZero/WithZero.lean` doesn't import OrderMonoidIso and move `OrderMonoidIso.withZeroUnits` earlier ESTIMATED CHANGES Modified Mathlib/Algebra/Order/GroupWithZero/WithZero.lean + def OrderIso.withZeroUnits + theorem WithZero.withZeroUnitsEquiv_strictMono Modified Mathlib/Algebra/Order/Hom/Monoid.lean + def OrderMonoidIso.withZeroUnits Modified Mathlib/GroupTheory/ArchimedeanDensely.lean - def OrderMonoidIso.withZeroUnits 2025-07-09 18:24:20 5c5a8de style(Mathlib/Topology): rename `exterior` (2/2) (#26919) This came to my attention while working on the proof that Alexandrov discrete spaces are locally path-connected. (#26492) In Mathlib, the intersection of all neighborhoods of a set `s` in a topological space is currently called `exterior`. However, for most mathematicians, the *exterior* of a set `s` refers to the complement of its closure ([see here](https://en.wikipedia.org/wiki/Interior_(topology)#Exterior_of_a_set)). This naming is very misleading, so `exterior` is clearly in need of renaming. The new name has been decided as *neighborhoods kernel* (`nhdsKer`), based on [this Zulip thread](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/.60exterior.60.20is.20clearly.20in.20need.20of.20renaming/with/526312924). ESTIMATED CHANGES Modified Mathlib/Topology/AlexandrovDiscrete.lean - theorem exterior_eq_iff_isOpen - theorem exterior_mem_nhdsSet - theorem exterior_singleton_subset_iff_mem_nhds - theorem exterior_subset_iff - theorem exterior_subset_iff_isOpen - theorem exterior_subset_iff_mem_nhdsSet - theorem gc_exterior_interior + theorem gc_nhdsKer_interior - theorem isOpen_exterior + theorem isOpen_nhdsKer + theorem nhdsKer_eq_iff_isOpen + theorem nhdsKer_mem_nhdsSet + theorem nhdsKer_singleton_subset_iff_mem_nhds + theorem nhdsKer_subset_iff + theorem nhdsKer_subset_iff_isOpen + theorem nhdsKer_subset_iff_mem_nhdsSet - theorem principal_exterior + theorem principal_nhdsKer Modified Mathlib/Topology/Compactness/NhdsKer.lean - theorem IsCompact.exterior_iff + theorem IsCompact.nhdsKer_iff Modified Mathlib/Topology/Defs/Filter.lean - def exterior + def nhdsKer Modified Mathlib/Topology/NhdsKer.lean - theorem IsOpen.exterior_eq - theorem IsOpen.exterior_subset + theorem IsOpen.nhdsKer_eq + theorem IsOpen.nhdsKer_subset - theorem exterior_def - theorem exterior_empty - theorem exterior_eq_empty - theorem exterior_eq_exterior_iff_nhdsSet - theorem exterior_exterior - theorem exterior_iInter_subset - theorem exterior_iUnion - theorem exterior_inter_subset - theorem exterior_minimal - theorem exterior_mono - theorem exterior_sInter_subset - theorem exterior_sUnion - theorem exterior_singleton_eq_ker_nhds - theorem exterior_subset_exterior - theorem exterior_subset_exterior_iff_nhdsSet - theorem exterior_union - theorem exterior_univ - theorem mem_exterior - theorem mem_exterior_iff_specializes - theorem mem_exterior_singleton + theorem mem_nhdsKer + theorem mem_nhdsKer_iff_specializes + theorem mem_nhdsKer_singleton + theorem nhdsKer_def + theorem nhdsKer_empty + theorem nhdsKer_eq_empty + theorem nhdsKer_eq_nhdsKer_iff_nhdsSet + theorem nhdsKer_iInter_subset + theorem nhdsKer_iUnion + theorem nhdsKer_inter_subset + theorem nhdsKer_minimal + theorem nhdsKer_mono + theorem nhdsKer_nhdsKer + theorem nhdsKer_sInter_subset + theorem nhdsKer_sUnion + theorem nhdsKer_singleton_eq_ker_nhds + theorem nhdsKer_subset_nhdsKer + theorem nhdsKer_subset_nhdsKer_iff_nhdsSet + theorem nhdsKer_union + theorem nhdsKer_univ - theorem nhdsSet_exterior + theorem nhdsSet_nhdsKer - theorem specializes_iff_exterior_subset + theorem specializes_iff_nhdsKer_subset - theorem subset_exterior - theorem subset_exterior_iff + theorem subset_nhdsKer + theorem subset_nhdsKer_iff 2025-07-09 17:48:19 db02232 chore(AlgebraicGeometry/Limits): undeprecate `sigmaOpenCover` (#26226) The replacement has the indexing type wrapped in `Discrete` which is inconvenient in practice. ESTIMATED CHANGES Modified Mathlib/AlgebraicGeometry/Limits.lean 2025-07-09 15:40:42 ca163bb style: move `Topology.StoneCech` into `Topology.Compactification` (2/2) (#26898) This PR continues the work from #25583. Original PR: https://github.com/leanprover-community/mathlib4/pull/25583 ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Topology/StoneCech.lean 2025-07-09 14:52:40 a38eeaf chore: space following `Σ` (#26932) Found by #26926. These are just changes to `Σ`/`Σ'` not followed by a space that add a space. ESTIMATED CHANGES Modified Mathlib/Algebra/DirectSum/Module.lean +/- def DirectSum.sigmaLcurry +/- def DirectSum.sigmaLcurryEquiv +/- def DirectSum.sigmaLuncurry Modified Mathlib/Algebra/Group/Action/Sigma.lean Modified Mathlib/Algebra/Group/End.lean +/- def Equiv.Perm.sigmaCongrRightHom Modified Mathlib/Algebra/Group/Pointwise/Set/ListOfFn.lean Modified Mathlib/Algebra/Homology/HomologicalComplex.lean Modified Mathlib/AlgebraicTopology/SimplicialObject/Split.lean Modified Mathlib/Analysis/Analytic/ChangeOrigin.lean Modified Mathlib/Analysis/InnerProductSpace/Subspace.lean Modified Mathlib/CategoryTheory/Abelian/Injective/Resolution.lean Modified Mathlib/CategoryTheory/Abelian/Projective/Resolution.lean Modified Mathlib/CategoryTheory/Comma/StructuredArrow/Small.lean Modified Mathlib/CategoryTheory/ConnectedComponents.lean Modified Mathlib/CategoryTheory/Elements.lean Modified Mathlib/CategoryTheory/Filtered/Basic.lean Modified Mathlib/CategoryTheory/Generator/Basic.lean Modified Mathlib/CategoryTheory/Limits/ConcreteCategory/Basic.lean Modified Mathlib/CategoryTheory/Limits/Cones.lean +/- def CategoryTheory.Limits.Cocone.equiv +/- def CategoryTheory.Limits.Cone.equiv Modified Mathlib/CategoryTheory/Limits/Constructions/LimitsOfProductsAndEqualizers.lean Modified Mathlib/CategoryTheory/Limits/SmallComplete.lean Modified Mathlib/CategoryTheory/Limits/Types/Shapes.lean Modified Mathlib/CategoryTheory/Preadditive/Biproducts.lean Modified Mathlib/CategoryTheory/Sigma/Basic.lean +/- def CategoryTheory.Sigma.map Modified Mathlib/CategoryTheory/Sites/EqualizerSheafCondition.lean Modified Mathlib/CategoryTheory/Sites/Sheaf.lean Modified Mathlib/CategoryTheory/Sites/Sieves.lean Modified Mathlib/Combinatorics/Configuration.lean Modified Mathlib/Combinatorics/Derangements/Basic.lean Modified Mathlib/Combinatorics/Enumerative/Composition.lean +/- def Composition.blocksFinEquiv Modified Mathlib/Control/LawfulFix.lean Modified Mathlib/Data/Analysis/Filter.lean Modified Mathlib/Data/Countable/Basic.lean Modified Mathlib/Data/DFinsupp/Sigma.lean Modified Mathlib/Data/FinEnum.lean Modified Mathlib/Data/Finite/Sigma.lean Modified Mathlib/Data/Finset/Sym.lean +/- def Finset.symInsertEquiv Modified Mathlib/Data/Fintype/Basic.lean Modified Mathlib/Data/List/OfFn.lean +/- def List.equivSigmaTuple Modified Mathlib/Data/Multiset/Bind.lean +/- theorem Multiset.mem_sigma Modified Mathlib/Data/PFun.lean +/- def PFun.equivSubtype Modified Mathlib/Data/Rat/Encodable.lean Modified Mathlib/Data/Set/Lattice.lean +/- theorem Set.Sigma.univ +/- theorem Set.iUnion_eq_range_psigma +/- theorem Set.iUnion_eq_range_sigma Modified Mathlib/Data/Set/Pairwise/Lattice.lean Modified Mathlib/Data/Sigma/Basic.lean +/- def Prod.toSigma +/- theorem Sigma.eta Modified Mathlib/Data/Sigma/Order.lean Modified Mathlib/Data/W/Basic.lean +/- def WType.equivSigma +/- def WType.ofSigma +/- def WType.toSigma +/- theorem WType.toSigma_ofSigma Modified Mathlib/Data/ZMod/QuotientGroup.lean Modified Mathlib/GroupTheory/CoprodI.lean +/- def Monoid.CoprodI.NeWord.toList Modified Mathlib/GroupTheory/Coset/Basic.lean Modified Mathlib/GroupTheory/GroupAction/Defs.lean +/- def MulAction.selfEquivSigmaOrbits' +/- def MulAction.selfEquivSigmaOrbits Modified Mathlib/GroupTheory/GroupAction/Quotient.lean Modified Mathlib/GroupTheory/Nilpotent.lean +/- def upperCentralSeriesAux Modified Mathlib/GroupTheory/OreLocalization/Basic.lean Modified Mathlib/GroupTheory/OreLocalization/OreSet.lean +/- def OreLocalization.oreCondition Modified Mathlib/GroupTheory/PGroup.lean Modified Mathlib/GroupTheory/Perm/Sign.lean +/- def Equiv.Perm.finPairsLT +/- def Equiv.Perm.signBijAux Modified Mathlib/LinearAlgebra/Finsupp/VectorSpace.lean Modified Mathlib/LinearAlgebra/FreeModule/PID.lean Modified Mathlib/Logic/Embedding/Basic.lean +/- def Function.Embedding.sigmaMap +/- def Function.Embedding.sigmaMk Modified Mathlib/Logic/Encodable/Pi.lean Modified Mathlib/Logic/Equiv/Basic.lean Modified Mathlib/Logic/Equiv/Embedding.lean Modified Mathlib/Logic/Equiv/Prod.lean Modified Mathlib/Logic/Equiv/Set.lean +/- def Equiv.sigmaPreimageEquiv Modified Mathlib/Logic/Small/Defs.lean Modified Mathlib/Logic/Small/List.lean Modified Mathlib/MeasureTheory/Constructions/Polish/Basic.lean Modified Mathlib/MeasureTheory/MeasurableSpace/Embedding.lean Modified Mathlib/ModelTheory/Basic.lean Modified Mathlib/ModelTheory/Encoding.lean Modified Mathlib/ModelTheory/Substructures.lean Modified Mathlib/Order/Filter/Bases/Basic.lean Modified Mathlib/Order/Filter/Lift.lean Modified Mathlib/RingTheory/AlgebraTower.lean Modified Mathlib/RingTheory/OreLocalization/Basic.lean Modified Mathlib/SetTheory/Cardinal/Basic.lean Modified Mathlib/SetTheory/ZFC/PSet.lean Modified Mathlib/Topology/Algebra/InfiniteSum/Real.lean Modified Mathlib/Topology/Algebra/InfiniteSum/Ring.lean Modified Mathlib/Topology/Bases.lean Modified Mathlib/Topology/Category/TopCat/Limits/Products.lean +/- def TopCat.sigmaIsoSigma Modified Mathlib/Topology/Compactness/Compact.lean Modified Mathlib/Topology/Compactness/Lindelof.lean Modified Mathlib/Topology/Compactness/Paracompact.lean Modified Mathlib/Topology/Compactness/SigmaCompact.lean Modified Mathlib/Topology/Connected/TotallyDisconnected.lean Modified Mathlib/Topology/MetricSpace/CantorScheme.lean Modified Mathlib/Topology/MetricSpace/Gluing.lean +/- theorem Metric.Sigma.isometry_mk +/- def Metric.inductivePremetric Modified Mathlib/Topology/Separation/Hausdorff.lean Modified Mathlib/Topology/Sheaves/SheafCondition/Sites.lean +/- def TopCat.Presheaf.coveringOfPresieve +/- def TopCat.Presheaf.presieveOfCovering.homOfIndex 2025-07-09 14:52:38 18a0fbd chore: fix whitespaces (#26930) Found by #26926. ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Function/ConditionalExpectation/Basic.lean +/- theorem MeasureTheory.eLpNorm_condExp_le Modified Mathlib/RingTheory/MvPowerSeries/Substitution.lean Modified Mathlib/RingTheory/NoetherNormalization.lean Modified Mathlib/RingTheory/OrderOfVanishing.lean Modified Mathlib/RingTheory/Polynomial/ContentIdeal.lean Modified Mathlib/RingTheory/Polynomial/DegreeLT.lean Modified Mathlib/RingTheory/Polynomial/HilbertPoly.lean Modified Mathlib/RingTheory/Polynomial/ShiftedLegendre.lean Modified Mathlib/RingTheory/PolynomialLaw/Basic.lean Modified Mathlib/RingTheory/PowerSeries/Derivative.lean Modified Mathlib/RingTheory/PowerSeries/Substitution.lean Modified Mathlib/RingTheory/QuotSMulTop.lean +/- def QuotSMulTop.map Modified Mathlib/RingTheory/WittVector/Basic.lean Modified Mathlib/RingTheory/WittVector/Frobenius.lean Modified Mathlib/RingTheory/WittVector/Identities.lean Modified Mathlib/RingTheory/WittVector/WittPolynomial.lean Modified Mathlib/SetTheory/Descriptive/Tree.lean Modified Mathlib/SetTheory/Game/Birthday.lean Modified Mathlib/SetTheory/Game/Ordinal.lean Modified Mathlib/SetTheory/Lists.lean Modified Mathlib/SetTheory/Ordinal/FixedPointApproximants.lean Modified Mathlib/SetTheory/Ordinal/NaturalOps.lean Modified Mathlib/SetTheory/Ordinal/Notation.lean Modified Mathlib/SetTheory/PGame/Basic.lean Modified Mathlib/SetTheory/Surreal/Multiplication.lean Modified Mathlib/SetTheory/ZFC/Class.lean Modified Mathlib/Topology/Algebra/Group/OpenMapping.lean Modified Mathlib/Topology/Baire/BaireMeasurable.lean Modified Mathlib/Topology/CWComplex/Classical/Basic.lean Modified Mathlib/Topology/Category/Compactum.lean Modified Mathlib/Topology/Category/Profinite/Nobeling/Basic.lean Modified Mathlib/Topology/Category/Profinite/Nobeling/Span.lean Modified Mathlib/Topology/Category/Profinite/Nobeling/Successor.lean Modified Mathlib/Topology/Category/Profinite/Nobeling/ZeroLimit.lean Modified Mathlib/Topology/Homotopy/Lifting.lean +/- theorem IsCoveringMap.exists_path_lifts Modified Mathlib/Topology/Instances/CantorSet.lean +/- theorem quarter_mem_cantorSet +/- theorem quarter_mem_preCantorSet +/- theorem quarters_mem_preCantorSet Modified Mathlib/Topology/MetricSpace/BundledFun.lean Modified Mathlib/Topology/MetricSpace/GromovHausdorffRealized.lean Modified Mathlib/Topology/MetricSpace/HolderNorm.lean Modified Mathlib/Topology/Order/LowerUpperTopology.lean Modified Mathlib/Topology/Order/ScottTopology.lean +/- theorem Topology.scottHausdorff_le_scott Modified Mathlib/Topology/Sheaves/MayerVietoris.lean Modified Mathlib/Topology/Sheaves/Skyscraper.lean Modified Mathlib/Topology/UniformSpace/OfCompactT2.lean 2025-07-09 14:52:37 cb64995 chore: tidy various files (#26927) ESTIMATED CHANGES Modified Archive/Imo/Imo1985Q2.lean Modified Archive/Imo/Imo2013Q1.lean Modified Mathlib/Algebra/BigOperators/Pi.lean Modified Mathlib/Algebra/Lie/Subalgebra.lean Modified Mathlib/Algebra/Lie/Weights/Chain.lean Modified Mathlib/Algebra/MvPolynomial/Eval.lean Modified Mathlib/Algebra/Star/NonUnitalSubalgebra.lean Modified Mathlib/Analysis/Calculus/ContDiff/Operations.lean Modified Mathlib/Analysis/Complex/ValueDistribution/ProximityFunction.lean Modified Mathlib/CategoryTheory/Monoidal/DayConvolution.lean Modified Mathlib/CategoryTheory/Products/Basic.lean Modified Mathlib/Combinatorics/SimpleGraph/IncMatrix.lean Modified Mathlib/Data/Fin/Basic.lean Modified Mathlib/Data/Matrix/Diagonal.lean Modified Mathlib/Data/Nat/Digits/Lemmas.lean Modified Mathlib/Geometry/Manifold/MFDeriv/Basic.lean Modified Mathlib/LinearAlgebra/AffineSpace/Independent.lean Modified Mathlib/LinearAlgebra/Prod.lean Modified Mathlib/MeasureTheory/Constructions/Polish/Basic.lean Modified Mathlib/MeasureTheory/Function/Jacobian.lean Modified Mathlib/MeasureTheory/Function/JacobianOneDim.lean Modified Mathlib/MeasureTheory/Integral/IntervalIntegral/IntegrationByParts.lean Modified Mathlib/MeasureTheory/Measure/MeasureSpace.lean Modified Mathlib/NumberTheory/Cyclotomic/Basic.lean Modified Mathlib/RingTheory/Polynomial/Radical.lean +/- theorem degree_radical_le Modified Mathlib/RingTheory/Radical.lean Modified Mathlib/RingTheory/Spectrum/Prime/FreeLocus.lean Modified Mathlib/Tactic/Algebraize.lean Modified Mathlib/Tactic/Positivity/Basic.lean Modified Mathlib/Topology/Algebra/Module/Equiv.lean Modified Mathlib/Topology/ContinuousMap/Basic.lean Modified Mathlib/Topology/FiberBundle/Constructions.lean Modified Mathlib/Topology/Instances/CantorSet.lean Modified Mathlib/Topology/MetricSpace/UniformConvergence.lean 2025-07-09 14:52:35 8866073 style(Mathlib/Topology): rename `exterior` (1/2) (#26918) This PR only renames modules which will be renamed in #26919 to leave good git diffs. This came to my attention while working on the proof that Alexandrov discrete spaces are locally path-connected. (#26492) In Mathlib, the intersection of all neighborhoods of a set `s` in a topological space is currently called `exterior`. However, for most mathematicians, the *exterior* of a set `s` refers to the complement of its closure ([see here](https://en.wikipedia.org/wiki/Interior_(topology)#Exterior_of_a_set)). This naming is very misleading, so `exterior` is clearly in need of renaming. The new name has been decided as *neighborhoods kernel* (`nhdsKer`), based on [this Zulip thread](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/.60exterior.60.20is.20clearly.20in.20need.20of.20renaming/with/526312924). ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Topology/AlexandrovDiscrete.lean Renamed Mathlib/Topology/Compactness/Exterior.lean to Mathlib/Topology/Compactness/NhdsKer.lean Renamed Mathlib/Topology/Exterior.lean to Mathlib/Topology/NhdsKer.lean 2025-07-09 14:52:34 de9c67c doc(Data/Nat/Find): fix variable name in doc comment (#26916) ESTIMATED CHANGES Modified Mathlib/Data/Nat/Find.lean 2025-07-09 14:52:32 dcdc688 chore(Cache): comment out broken code for getting the branch from PR info (#26910) Currently the syntax supplied to `for-each-ref` is not valid -- the interpolater needs quotes. So it should never been reached in any circumstance. We comment it out and leave a TODO because there is still some need to for better logic here. ESTIMATED CHANGES Modified Cache/Requests.lean 2025-07-09 14:01:16 2216b12 chore: a bunch of whitespace fixes (#26925) Found by #26926. ESTIMATED CHANGES Modified Mathlib/Algebra/Group/NatPowAssoc.lean Modified Mathlib/Algebra/Polynomial/Smeval.lean +/- theorem Polynomial.smeval_at_natCast Modified Mathlib/Analysis/Calculus/UniformLimitsDeriv.lean Modified Mathlib/Analysis/Seminorm.lean Modified Mathlib/Combinatorics/SimpleGraph/ConcreteColorings.lean Modified Mathlib/Combinatorics/SimpleGraph/Connectivity/Connected.lean Modified Mathlib/Data/Array/Defs.lean Modified Mathlib/Data/Int/Init.lean Modified Mathlib/Data/Int/Order/Basic.lean Modified Mathlib/Data/List/Defs.lean Modified Mathlib/Data/Num/Basic.lean Modified Mathlib/Data/QPF/Multivariate/Constructions/Cofix.lean Modified Mathlib/Data/Set/Defs.lean Modified Mathlib/LinearAlgebra/Multilinear/Basic.lean Modified Mathlib/Logic/Function/Basic.lean Modified Mathlib/Logic/Function/CompTypeclasses.lean Modified Mathlib/Logic/Nonempty.lean +/- theorem nonempty_sigma Modified Mathlib/Logic/Relator.lean +/- theorem Relator.rel_and +/- theorem Relator.rel_eq +/- theorem Relator.rel_iff +/- theorem Relator.rel_or Modified Mathlib/MeasureTheory/OuterMeasure/Basic.lean Modified Mathlib/MeasureTheory/OuterMeasure/Caratheodory.lean Modified Mathlib/MeasureTheory/OuterMeasure/Induced.lean Modified Mathlib/ModelTheory/Syntax.lean Modified Mathlib/Order/Defs/LinearOrder.lean Modified Mathlib/Tactic/Choose.lean Modified Mathlib/Tactic/ExtendDoc.lean Modified Mathlib/Tactic/MkIffOfInductiveProp.lean Modified MathlibTest/Simps.lean Modified MathlibTest/push_neg.lean 2025-07-09 13:45:34 23af192 feat: valuation on RatFunc which is trivial on constants (#24254) Given a valuation `v` on `RatFunc K` that is trivial on the constants `K`, the valuation on `RatFunc.X` determines to some degree the valuation on any `p : Polynomial K`. These are important in the context of Ostrowski's theorem for `RatFunc K`. Note that the condition that the valuation is trivial on constants is automatically fulfilled when `K` is finite. ESTIMATED CHANGES Modified Mathlib/FieldTheory/RatFunc/AsPolynomial.lean + theorem Polynomial.valuation_aeval_eq_valuation_X_pow_natDegree_of_one_lt_valuation_X + theorem Polynomial.valuation_aeval_monomial_eq_valuation_pow + theorem Polynomial.valuation_eq_valuation_X_pow_natDegree_of_one_lt_valuation_X + theorem Polynomial.valuation_inv_monomial_eq_valuation_X_zpow + theorem Polynomial.valuation_le_one_of_valuation_X_le_one + theorem Polynomial.valuation_monomial_eq_valuation_X_pow 2025-07-09 11:10:32 360e0f4 feat(Geometry/Euclidean/Triangle): add law of sines (#25862) Implement the vector and angle-at-point forms of the law of sines. ESTIMATED CHANGES Modified Mathlib/Geometry/Euclidean/Triangle.lean + theorem EuclideanGeometry.dist_eq_dist_mul_sin_angle_div_sin_angle + theorem EuclideanGeometry.sin_angle_div_dist_eq_sin_angle_div_dist + theorem EuclideanGeometry.sin_angle_mul_dist_eq_sin_angle_mul_dist + theorem InnerProductGeometry.sin_angle_div_norm_eq_sin_angle_div_norm + theorem InnerProductGeometry.sin_angle_mul_norm_eq_sin_angle_mul_norm 2025-07-09 10:47:26 f430bdf feat(CategoryTheory/Functor/KanExtension) : Kan extension along equivalences of categories (#26906) In this PR, we record as instances the somewhat trivial fact that if `L : C ≌ D` is an equivalence of categories and `F₀ ≅ L.functor ⋙ F₁` any natural isomorphism where `F₀` is a functor out of `C` and `F₁` a functor out of `D`, then the corresponding extension is a left Kan extension. The dual fact for right Kan extensions is recorded. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Functor/KanExtension/Basic.lean 2025-07-09 10:15:24 6bc629e feat(CategoryTheory): the derived adjunction between absolute derived functors (#25979) An adjunction between functors induces an adjunction between the corresponding left/right derived functors, when these derived functors are *absolute*, i.e. they remain derived functors after the post-composition with any functor. This theorem is the generalized version by Georges Maltsiniotis (*Le théorème de Quillen, d'adjonction des foncteurs dérivés, revisité*, C. R. Math. Acad. Sci. Paris 344 (2007), no. 9) of a theorem by Quillen for adjunctions between model categories. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Functor/Derived/Adjunction.lean + def CategoryTheory.Adjunction.derived' + theorem CategoryTheory.Adjunction.derivedε_fac_app + theorem CategoryTheory.Adjunction.derivedη_fac_app Modified docs/references.bib 2025-07-09 05:33:31 59726ff feat(CategoryTheory): add dinatural transformations (continuedx2) (#26854) This is a refactor of https://github.com/leanprover-community/mathlib4/pull/26577, which itself was a refactor of https://github.com/leanprover-community/mathlib4/pull/8118, with permission by @iwilare. It contains the definition of a dinatural transformation. There is no current future plans for these but maybe I or @iwilare will use these in the future. I did very little, credits go to the other two authors. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/DinatTrans.lean + def CategoryTheory.DinatTrans.compNatTrans + def CategoryTheory.DinatTrans.precompNatTrans + structure CategoryTheory.DinatTrans Modified Mathlib/CategoryTheory/Functor/Category.lean 2025-07-09 00:31:44 25043da refactor(CategoryTheory/Limits): colimits in Type (#25823) Colimits in `Type` are refactored so as to relate them with the non categorical constructions introduced in #23339. ESTIMATED CHANGES Modified Mathlib/Algebra/Category/Grp/Basic.lean + def CommGrp.fullyFaithfulForget₂ToGrp + def Grp.fullyFaithfulForget₂ToMonCat Modified Mathlib/Algebra/Category/Grp/FilteredColimits.lean + theorem Grp.FilteredColimits.colimit_mul_mk_eq' + theorem Grp.FilteredColimits.colimit_mul_mk_eq + theorem Grp.FilteredColimits.colimit_one_eq Modified Mathlib/Algebra/Category/ModuleCat/FilteredColimits.lean + def ModuleCat.FilteredColimits.M.mk + theorem ModuleCat.FilteredColimits.M.mk_map + theorem ModuleCat.FilteredColimits.M.mk_surjective + def ModuleCat.FilteredColimits.M + theorem ModuleCat.FilteredColimits.colimit_add_mk_eq' + theorem ModuleCat.FilteredColimits.colimit_add_mk_eq + theorem ModuleCat.FilteredColimits.colimit_zero_eq + theorem ModuleCat.FilteredColimits.ι_colimitDesc Modified Mathlib/Algebra/Category/MonCat/Basic.lean + def CommMonCat.fullyFaithfulForgetToMonCat Modified Mathlib/Algebra/Category/MonCat/FilteredColimits.lean + theorem MonCat.FilteredColimits.M.map_mk + theorem MonCat.FilteredColimits.M.mk_surjective + theorem MonCat.FilteredColimits.colimit_mul_mk_eq' Modified Mathlib/Algebra/Category/Ring/Basic.lean + def CommRingCat.fullyFaithfulForget₂ToRingCat + def CommSemiRingCat.fullyFaithfulForget₂ToSemiRingCat + def RingCat.fullyFaithfulForget₂ToSemiRingCat Modified Mathlib/Algebra/Category/Ring/FilteredColimits.lean +/- def CommRingCat.FilteredColimits.colimitCoconeIsColimit +/- def CommSemiRingCat.FilteredColimits.colimitCoconeIsColimit +/- def RingCat.FilteredColimits.colimitCoconeIsColimit + def SemiRingCat.FilteredColimits.colimitCoconeIsColimit.descAddMonoidHom + theorem SemiRingCat.FilteredColimits.colimitCoconeIsColimit.descAddMonoidHom_quotMk + def SemiRingCat.FilteredColimits.colimitCoconeIsColimit.descMonoidHom + theorem SemiRingCat.FilteredColimits.colimitCoconeIsColimit.descMonoidHom_apply_eq + theorem SemiRingCat.FilteredColimits.colimitCoconeIsColimit.descMonoidHom_quotMk Modified Mathlib/CategoryTheory/Limits/Final.lean + theorem CategoryTheory.Functor.Final.zigzag_of_eqvGen_colimitTypeRel - theorem CategoryTheory.Functor.Final.zigzag_of_eqvGen_quot_rel Modified Mathlib/CategoryTheory/Limits/FintypeCat.lean + theorem CategoryTheory.Limits.FintypeCat.finite_of_isColimit Modified Mathlib/CategoryTheory/Limits/IsConnected.lean + theorem CategoryTheory.Limits.Types.zigzag_of_eqvGen_colimitTypeRel - theorem CategoryTheory.Limits.Types.zigzag_of_eqvGen_quot_rel Modified Mathlib/CategoryTheory/Limits/Preserves/Ulift.lean Modified Mathlib/CategoryTheory/Limits/Shapes/SingleObj.lean - theorem CategoryTheory.Limits.SingleObj.Types.Quot.Rel.iff_orbitRel - def CategoryTheory.Limits.SingleObj.Types.Quot.equivOrbitRelQuotient + def CategoryTheory.Limits.SingleObj.colimitTypeRelEquivOrbitRelQuotient + theorem CategoryTheory.Limits.SingleObj.colimitTypeRel_iff_orbitRel Modified Mathlib/CategoryTheory/Limits/Types/ColimitType.lean + theorem CategoryTheory.Functor.CoconeTypes.IsColimit.precompose + def CategoryTheory.Functor.CoconeTypes.IsColimitCore.precompose + theorem CategoryTheory.Functor.CoconeTypes.isColimit_precompose_iff + def CategoryTheory.Functor.CoconeTypes.precompose + theorem CategoryTheory.Functor.ιColimitType_eq_iff Modified Mathlib/CategoryTheory/Limits/Types/Colimits.lean + theorem CategoryTheory.Functor.CoconeTypes.isColimit_iff + def CategoryTheory.Functor.coconeTypesEquiv - def CategoryTheory.Limits.Types.Quot.Rel - def CategoryTheory.Limits.Types.Quot.desc - theorem CategoryTheory.Limits.Types.Quot.desc_colimitCocone - theorem CategoryTheory.Limits.Types.Quot.desc_quotQuotUliftEquiv - theorem CategoryTheory.Limits.Types.Quot.desc_toCocone_desc - theorem CategoryTheory.Limits.Types.Quot.jointly_surjective - theorem CategoryTheory.Limits.Types.Quot.map_ι - def CategoryTheory.Limits.Types.Quot.ι - theorem CategoryTheory.Limits.Types.Quot.ι_desc - def CategoryTheory.Limits.Types.Quot - def CategoryTheory.Limits.Types.TypeMax.colimitCocone - def CategoryTheory.Limits.Types.TypeMax.colimitCoconeIsColimit + theorem CategoryTheory.Limits.Types.colimitEquivColimitType_apply + theorem CategoryTheory.Limits.Types.colimitEquivColimitType_symm_apply - theorem CategoryTheory.Limits.Types.colimitEquivQuot_apply - theorem CategoryTheory.Limits.Types.colimitEquivQuot_symm_apply + theorem CategoryTheory.Limits.Types.hasColimit_iff_small_colimitType - theorem CategoryTheory.Limits.Types.hasColimit_iff_small_quot - theorem CategoryTheory.Limits.Types.isColimit_iff_bijective_desc + theorem CategoryTheory.Limits.Types.isColimit_iff_coconeTypesIsColimit - def CategoryTheory.Limits.Types.quotQuotUliftEquiv - def CategoryTheory.Limits.Types.quotToQuotUlift - theorem CategoryTheory.Limits.Types.quotToQuotUlift_ι - def CategoryTheory.Limits.Types.quotUliftToQuot - theorem CategoryTheory.Limits.Types.quotUliftToQuot_ι + theorem CategoryTheory.Limits.Types.small_colimitType_of_hasColimit - theorem CategoryTheory.Limits.Types.small_quot_of_hasColimit - def CategoryTheory.Limits.Types.toCocone Modified Mathlib/CategoryTheory/Limits/Types/Filtered.lean + theorem CategoryTheory.Limits.Types.FilteredColimit.eqvGen_colimitTypeRel_of_rel - theorem CategoryTheory.Limits.Types.FilteredColimit.eqvGen_quot_rel_of_rel + theorem CategoryTheory.Limits.Types.FilteredColimit.rel_of_colimitTypeRel - theorem CategoryTheory.Limits.Types.FilteredColimit.rel_of_quot_rel Modified Mathlib/CategoryTheory/Types.lean + theorem CategoryTheory.FunctorToTypes.naturality_symm Modified Mathlib/Topology/Category/TopCat/Limits/Basic.lean + theorem TopCat.hasColimit_iff_small_colimitType - theorem TopCat.hasColimit_iff_small_quot 2025-07-08 21:40:03 fb6a587 feat(Valuation/RankOne): equivalence with ValuativeRel.isRankLeOne (#26754) refactor to have Valuation.RankOne extend the new Valuation.IsNontrivial and characterization iffs for ValuativeRel.IsNontrivial relating to units of value group, or Valuation.IsNontrivial ESTIMATED CHANGES Modified Mathlib/NumberTheory/NumberField/FinitePlaces.lean Modified Mathlib/NumberTheory/Padics/Complex.lean Modified Mathlib/RingTheory/Valuation/RankOne.lean +/- theorem Valuation.RankOne.nontrivial + def Valuation.RankOne.ofRankLeOneStruct + def Valuation.RankOne.rankLeOneStruct + theorem ValuativeRel.isNontrivial_of_rankOne + theorem ValuativeRel.isRankLeOne_of_rankOne Modified Mathlib/RingTheory/Valuation/ValuativeRel.lean + theorem ValuativeRel.ValueGroupWithZero.mk_eq_one + theorem ValuativeRel.isNontrivial_iff_isNontrivial + theorem ValuativeRel.isNontrivial_iff_nontrivial_units +/- theorem ValuativeRel.rel_mul + theorem ValuativeRel.rel_trans' Modified Mathlib/Topology/Algebra/Valued/NormedValued.lean 2025-07-08 20:35:16 c4c10f2 chore(NumberTheory/KummerDedekind): fix outdated docstrings (#26891) Some of the docstrings in the file weren't quite up to date (for example, the full theorem was proved over 2 years ago but was still mentioned as a TODO in the file!) ESTIMATED CHANGES Modified Mathlib/NumberTheory/KummerDedekind.lean 2025-07-08 19:42:56 d045ff1 feat(CategoryTheory/Sites): `0`-hypercovers (#26888) We define the type of `0`-hypercovers with respect to a coverage `J` on a category `C` as indexed families of morphisms such that the associated presieve is a covering sieve. The purpose of this definition is to unify workable notions of covers in categories of geometric objects, such as schemes or adic spaces. In particular, in a follow-up PR the notion `AlgebraicGeometry.Scheme.Cover` shall be an `abbrev` for a zero-hypercover for the associated coverage. We define this with respect to a coverage and not to a Grothendieck topology, because this yields more control over the components of the cover: For example, if `J` is the coverage given by jointly surjective families of open immersions of schemes, a `ZeroHypercover J S` is precisely an indexed, jointly surjective family of open immersions, but not only one that contains such a family. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/CategoryTheory/Sites/Continuous.lean Modified Mathlib/CategoryTheory/Sites/Coverage.lean + theorem CategoryTheory.Presieve.FactorsThruAlong.pullbackArrows + def CategoryTheory.Pretopology.toCoverage Modified Mathlib/CategoryTheory/Sites/OneHypercover.lean +/- structure CategoryTheory.PreOneHypercover.Hom + def CategoryTheory.PreOneHypercover.oneToZero +/- structure CategoryTheory.PreOneHypercover Added Mathlib/CategoryTheory/Sites/ZeroHypercover.lean + def CategoryTheory.Coverage.ZeroHypercover.bind + def CategoryTheory.Coverage.ZeroHypercover.pullback₁ + def CategoryTheory.Coverage.ZeroHypercover.pullback₂ + def CategoryTheory.Coverage.ZeroHypercover.singleton + structure CategoryTheory.Coverage.ZeroHypercover + def CategoryTheory.PreZeroHypercover.Hom.comp + def CategoryTheory.PreZeroHypercover.Hom.id + structure CategoryTheory.PreZeroHypercover.Hom + def CategoryTheory.PreZeroHypercover.bind + theorem CategoryTheory.PreZeroHypercover.presieve₀_pullback₁ + def CategoryTheory.PreZeroHypercover.pullback₁ + def CategoryTheory.PreZeroHypercover.pullback₂ + def CategoryTheory.PreZeroHypercover.singleton + structure CategoryTheory.PreZeroHypercover 2025-07-08 19:15:51 e274cd4 chore(SetTheory/Ordinal/Exponential): address porting notes (#26897) ...by golfing the proofs so that they're no longer relevant! ESTIMATED CHANGES Modified Mathlib/SetTheory/Ordinal/Exponential.lean 2025-07-08 17:55:07 7d2270e chore: fix a few typos in lemma names (#26904) Inspired by [#mathlib4 > Let's catch typos! @ 💬](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Let's.20catch.20typos!/near/527682466). ESTIMATED CHANGES Modified Mathlib/Algebra/Module/Submodule/Map.lean - theorem Submodule.map_iSup_comap_of_sujective + theorem Submodule.map_iSup_comap_of_surjective Modified Mathlib/Algebra/Polynomial/FieldDivision.lean - theorem Polynomial.divByMonic_add_X_sub_C_mul_derivate_divByMonic_eq_derivative + theorem Polynomial.divByMonic_add_X_sub_C_mul_derivative_divByMonic_eq_derivative Modified Mathlib/LinearAlgebra/Lagrange.lean + theorem Lagrange.nodalWeight_eq_eval_derivative_nodal - theorem Lagrange.nodalWeight_eq_eval_nodal_derative Modified Mathlib/LinearAlgebra/Span/Basic.lean Modified Mathlib/NumberTheory/NumberField/InfinitePlace/Ramification.lean + theorem NumberField.ComplexEmbedding.IsConj.coe_stabilizer_mk - theorem NumberField.ComplexEmbedding.IsConj.coe_stabilzer_mk Modified Mathlib/NumberTheory/PrimeCounting.lean + theorem Nat.tendsto_primeCounting - theorem Nat.tensto_primeCounting Modified Mathlib/NumberTheory/SmoothNumbers.lean - theorem Nat.smmoothNumbers_eq_factoredNumbers_primesBelow + theorem Nat.smoothNumbers_eq_factoredNumbers_primesBelow Modified Mathlib/RingTheory/Ideal/Pointwise.lean - theorem Ideal.pointwise_smul_toAddSubGroup + theorem Ideal.pointwise_smul_toAddSubgroup 2025-07-08 17:27:55 ed08e41 docs(docs/1000.yaml): Add Łoś' theorem (#26902) This theorem was formalized in leanprover-community/mathlib3#12531. ESTIMATED CHANGES Modified docs/1000.yaml 2025-07-08 16:55:10 a7424e6 chore: add `Con.hom_ext` as alternative of `Con.lift_funext` (#26873) ESTIMATED CHANGES Modified Mathlib/GroupTheory/Congruence/Hom.lean + theorem Con.hom_ext +/- theorem Con.lift_funext 2025-07-08 15:32:35 0ce5741 feat(LinearAlgebra/Span/Defs): replace Submodule.exists_add_eq_of_codisjoint with an iff (#26796) Instead of introducing another theorem to go the other way, I have upgraded this one to an iff. The changed order of terms is preferable in my application (and probably others) because to prove the existential it is enough to provide the two witnesses first and leave everything else to simp. ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/BilinearForm/Orthogonal.lean Modified Mathlib/LinearAlgebra/PerfectPairing/Restrict.lean Modified Mathlib/LinearAlgebra/Span/Defs.lean + theorem Submodule.codisjoint_iff_exists_add_eq - theorem Submodule.exists_add_eq_of_codisjoint 2025-07-08 14:45:36 3551f9d chore(LinearAlgebra): replace `tsmul`, `tuml` → `tmul` in lemma name (#26893) ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/TensorProduct/Basic.lean + theorem TensorProduct.tmul_eq_smul_one_tmul - theorem TensorProduct.tsmul_eq_smul_one_tuml 2025-07-08 14:45:34 94babef feat(IntervalIntegral): integration by parts for scalar multiplication (#26837) ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Function/LocallyIntegrable.lean + theorem MeasureTheory.IntegrableOn.continuousOn_smul_of_subset + theorem MeasureTheory.IntegrableOn.smul_continuousOn_of_subset Modified Mathlib/MeasureTheory/Integral/IntervalIntegral/Basic.lean + theorem IntervalIntegrable.continuousOn_smul + theorem IntervalIntegrable.smul_continuousOn Modified Mathlib/MeasureTheory/Integral/IntervalIntegral/IntegrationByParts.lean + theorem intervalIntegral.integral_deriv_smul_eq_sub_of_hasDeriv_right + theorem intervalIntegral.integral_smul_deriv_eq_deriv_smul + theorem intervalIntegral.integral_smul_deriv_eq_deriv_smul_of_hasDerivAt + theorem intervalIntegral.integral_smul_deriv_eq_deriv_smul_of_hasDerivWithinAt + theorem intervalIntegral.integral_smul_deriv_eq_deriv_smul_of_hasDeriv_right 2025-07-08 14:45:32 f3db3b4 fix: lint also lemmas in `commandStart` (#26706) This was noticed in [this review](https://github.com/leanprover-community/mathlib4/pull/26673/files#r2183594074). ESTIMATED CHANGES Modified Mathlib/AlgebraicGeometry/IdealSheaf/Functorial.lean Modified Mathlib/Tactic/Linter/CommandStart.lean Modified Mathlib/Topology/Instances/Rat.lean Modified MathlibTest/CommandStart.lean + theorem F 2025-07-08 14:14:07 f1001e4 chore(Data/Set/Card): adjust naming and simp set (#26791) Renames: - `Set.ncard_coe_Finset` -> `Set.ncard_coe_finset` - `Set.Nat.card_coe_set_eq` -> `Nat.card_coe_set_eq` Additionally, make the latter simp, so that `Nat.card` of a coerced set to type is no longer simp-normal, and make `ncard_univ` simp so that `Set.ncard univ` is no longer simp-normal. The other simp changes in this PR are all for the simpNF linter, since a good chunk of simp lemmas are now provable. ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Pointwise/Set/Card.lean +/- theorem Set.natCard_inv +/- theorem Set.natCard_smul_set Modified Mathlib/Combinatorics/SimpleGraph/Connectivity/WalkCounting.lean Modified Mathlib/Combinatorics/SimpleGraph/Matching.lean Modified Mathlib/Combinatorics/SimpleGraph/Tutte.lean Modified Mathlib/Data/Set/Card.lean + theorem Nat.card_coe_set_eq - theorem Set.Nat.card_coe_set_eq +/- theorem Set.ncard_coe - theorem Set.ncard_coe_Finset + theorem Set.ncard_coe_finset +/- theorem Set.ncard_univ Modified Mathlib/Data/Setoid/Partition/Card.lean Modified Mathlib/FieldTheory/Finite/GaloisField.lean Modified Mathlib/GroupTheory/GroupAction/MultipleTransitivity.lean Modified Mathlib/GroupTheory/GroupAction/SubMulAction/OfFixingSubgroup.lean Modified Mathlib/GroupTheory/Index.lean Modified Mathlib/GroupTheory/Perm/DomMulAct.lean Modified Mathlib/LinearAlgebra/Matrix/Permutation.lean Modified Mathlib/NumberTheory/RamificationInertia/Galois.lean Modified Mathlib/RingTheory/Spectrum/Prime/ConstructibleSet.lean Modified Mathlib/SetTheory/Cardinal/Finite.lean +/- theorem Nat.card_univ +/- theorem Set.natCard_graphOn 2025-07-08 13:01:31 129a2bf feat(ValuativeRel): add notation of 𝒪[K] (#26834) like what Valued has, but do only notation instead of having an additional reducible def layer ESTIMATED CHANGES Modified Mathlib/Topology/Algebra/Valued/ValuativeRel.lean 2025-07-08 11:58:16 aa6e500 chore: whitespace fixes in lemmas (#26892) Found by #26706. ESTIMATED CHANGES Modified Archive/Imo/Imo2024Q5.lean +/- theorem Imo2024Q5.Path.one_lt_length_cells Modified Mathlib/Algebra/BigOperators/Group/Multiset/Basic.lean Modified Mathlib/Algebra/Category/ModuleCat/ChangeOfRings.lean +/- theorem ModuleCat.extendScalarsId_inv_app_apply Modified Mathlib/Algebra/Category/ModuleCat/Monoidal/Basic.lean +/- theorem ModuleCat.ofHom₂_compr₂ Modified Mathlib/Algebra/Group/Semiconj/Basic.lean +/- theorem SemiconjBy.eq_one_iff Modified Mathlib/Algebra/GroupWithZero/WithZero.lean Modified Mathlib/Algebra/Homology/Bifunctor.lean +/- theorem HomologicalComplex.mapBifunctor.d₁_eq_zero +/- theorem HomologicalComplex.mapBifunctor.d₂_eq_zero Modified Mathlib/Algebra/Homology/ShortComplex/Exact.lean +/- theorem CategoryTheory.ShortComplex.Exact.isIso_toCycles Modified Mathlib/Algebra/Homology/ShortComplex/RightHomology.lean +/- theorem CategoryTheory.ShortComplex.fromOpcycles_op_cyclesOpIso_inv Modified Mathlib/Algebra/Module/Presentation/DirectSum.lean +/- theorem Module.Presentation.directSum_var Modified Mathlib/Algebra/Quaternion.lean +/- theorem QuaternionAlgebra.coe_ofNat Modified Mathlib/AlgebraicGeometry/Stalk.lean +/- theorem AlgebraicGeometry.Scheme.germ_stalkClosedPointTo_Spec Modified Mathlib/AlgebraicTopology/SimplicialSet/CategoryWithFibrations.lean +/- theorem SSet.modelCategoryQuillen.horn_ι_mem_J Modified Mathlib/Analysis/Calculus/ContDiff/Defs.lean Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Cotangent.lean +/- theorem HasProdUniformlyOn_sineTerm_prod_on_compact +/- theorem Summable_cotTerm +/- theorem cot_series_rep' +/- theorem cot_series_rep +/- theorem logDeriv_sin_div_eq_cot +/- theorem logDeriv_sineTerm_eq_cotTerm +/- theorem sin_pi_z_ne_zero +/- theorem tendsto_logDeriv_euler_cot_sub +/- theorem tendsto_logDeriv_euler_sin_div Modified Mathlib/CategoryTheory/Bicategory/Adjunction/Mate.lean Modified Mathlib/CategoryTheory/Bicategory/NaturalTransformation/Pseudo.lean +/- theorem CategoryTheory.Pseudofunctor.StrongTrans.naturality_naturality_hom +/- theorem CategoryTheory.Pseudofunctor.StrongTrans.naturality_naturality_inv Modified Mathlib/CategoryTheory/Closed/Enrichment.lean +/- theorem CategoryTheory.MonoidalClosed.enrichedOrdinaryCategorySelf_homEquiv_symm Modified Mathlib/CategoryTheory/GradedObject/Braiding.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Pullback/Categorical/CatCospanTransform.lean +/- theorem CategoryTheory.Limits.CatCospanTransform.hom_ext Modified Mathlib/CategoryTheory/Limits/Types/ColimitType.lean Modified Mathlib/CategoryTheory/Localization/SmallHom.lean +/- theorem CategoryTheory.Localization.hasSmallLocalizedHom_iff_target Modified Mathlib/CategoryTheory/Monoidal/DayConvolution.lean Modified Mathlib/CategoryTheory/Sites/DenseSubsite/Basic.lean +/- theorem CategoryTheory.Functor.functorPushforward_mem_iff Modified Mathlib/CategoryTheory/Triangulated/Opposite/Functor.lean +/- theorem CategoryTheory.Functor.op_commShiftIso_hom_app +/- theorem CategoryTheory.Functor.op_commShiftIso_inv_app Modified Mathlib/Combinatorics/SimpleGraph/Turan.lean +/- theorem SimpleGraph.exists_isTuranMaximal Modified Mathlib/Data/ENNReal/Operations.lean +/- theorem ENNReal.add_sInf Modified Mathlib/Data/Sym/Sym2.lean +/- theorem Sym2.map_pmap Modified Mathlib/Data/Vector/Defs.lean +/- theorem List.Vector.append_def Modified Mathlib/Geometry/Manifold/ContMDiff/Basic.lean +/- theorem contMDiffOn_iUnion_iff_of_isOpen Modified Mathlib/Geometry/Manifold/Instances/Icc.lean +/- theorem contMDiff_subtype_coe_Icc Modified Mathlib/LinearAlgebra/Dimension/Torsion/Finite.lean - theorem rank_eq_zero_iff_isTorsion: + theorem rank_eq_zero_iff_isTorsion Modified Mathlib/LinearAlgebra/DirectSum/TensorProduct.lean +/- theorem TensorProduct.directSumRight_comp_rTensor Modified Mathlib/LinearAlgebra/Multilinear/Curry.lean +/- theorem MultilinearMap.currySum_smul Modified Mathlib/LinearAlgebra/RootSystem/Base.lean +/- theorem RootPairing.Base.pairingIn_le_zero_of_ne Modified Mathlib/LinearAlgebra/RootSystem/GeckConstruction/Lemmas.lean +/- theorem RootPairing.Base.root_sub_mem_iff_root_add_mem Modified Mathlib/LinearAlgebra/RootSystem/RootPositive.lean +/- theorem RootPairing.InvariantForm.apply_root_root_zero_iff Modified Mathlib/MeasureTheory/Integral/RieszMarkovKakutani/Real.lean Modified Mathlib/NumberTheory/LSeries/Injectivity.lean +/- theorem LSeries.tendsto_atTop Modified Mathlib/Order/Filter/Basic.lean +/- theorem Filter.EventuallyEq.mul_left +/- theorem Filter.EventuallyEq.mul_right Modified Mathlib/Order/KrullDimension.lean +/- theorem Order.coe_lt_coheight_iff Modified Mathlib/Order/Shrink.lean +/- theorem equivShrink_bot Modified Mathlib/Order/TransfiniteIteration.lean +/- theorem transfiniteIterate_succ Modified Mathlib/Probability/Kernel/Composition/Lemmas.lean +/- theorem ProbabilityTheory.Kernel.parallelComp_comm Modified Mathlib/RepresentationTheory/FiniteIndex.lean +/- theorem Rep.coindResAdjunction_counit_app Modified Mathlib/RingTheory/FilteredAlgebra/Basic.lean Modified Mathlib/RingTheory/NoetherNormalization.lean Modified Mathlib/RingTheory/Polynomial/HilbertPoly.lean +/- theorem Polynomial.preHilbertPoly_eq_choose_sub_add Modified Mathlib/RingTheory/Spectrum/Prime/FreeLocus.lean +/- theorem Module.rankAtStalk_eq_finrank_tensorProduct Modified Mathlib/RingTheory/TwoSidedIdeal/Operations.lean +/- theorem TwoSidedIdeal.set_mul_subset +/- theorem TwoSidedIdeal.subset_mul_set Modified Mathlib/Topology/MetricSpace/Congruence.lean Modified Mathlib/Topology/MetricSpace/UniformConvergence.lean +/- theorem UniformOnFun.edist_eval_le 2025-07-08 11:47:15 43a6c4b feat(Data/Sym/Sym2): construct set of unordered pairs (#26649) We currently can make the list of unordered pairs from a list, and similarly for multisets and finsets. This PR adds the analogous definition for sets, and adds compatibility lemmas for each of the three above. ESTIMATED CHANGES Modified Mathlib/Data/Finset/Sym.lean + theorem Finset.coe_sym2 Modified Mathlib/Data/List/Sym.lean + theorem List.setOf_mem_sym2 Modified Mathlib/Data/Multiset/Sym.lean + theorem Multiset.setOf_mem_sym2 Modified Mathlib/Data/Sym/Sym2.lean + theorem Set.mem_sym2_iff_subset + theorem Set.mk'_mem_sym2_iff + theorem Set.mk_mem_sym2_iff + theorem Set.mk_preimage_sym2 + def Set.sym2 + theorem Set.sym2_empty + theorem Set.sym2_eq_mk_image + theorem Set.sym2_iInter + theorem Set.sym2_image + theorem Set.sym2_insert + theorem Set.sym2_inter + theorem Set.sym2_preimage + theorem Set.sym2_singleton + theorem Set.sym2_univ + theorem Sym2.coe_mk + theorem Sym2.map_mk + theorem Sym2.mk_surjective 2025-07-08 08:42:19 1aa6f29 feat: add induction principle for positive roots relative to a base of a root system (#26819) ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/RootSystem/Base.lean + theorem RootPairing.Base.IsPos.add + theorem RootPairing.Base.IsPos.exists_mem_support_pos_pairingIn + theorem RootPairing.Base.IsPos.induction_on + theorem RootPairing.Base.IsPos.sub + def RootPairing.Base.IsPos + theorem RootPairing.Base.exists_eq_sum_and_forall_sum_mem_of_isPos + theorem RootPairing.Base.pos_of_sum_smul_sub_mem_range_root Modified Mathlib/LinearAlgebra/RootSystem/GeckConstruction/Basic.lean +/- def RootPairing.GeckConstruction.cartanSubalgebra +/- def RootPairing.GeckConstruction.lieAlgebra +/- theorem RootPairing.GeckConstruction.lie_e_f_mul_ω +/- theorem RootPairing.GeckConstruction.ω_mul_e +/- theorem RootPairing.GeckConstruction.ω_mul_f +/- theorem RootPairing.GeckConstruction.ω_mul_h +/- theorem RootPairing.GeckConstruction.ω_mul_ω Modified Mathlib/LinearAlgebra/RootSystem/Reduced.lean + theorem RootPairing.nsmul_notMem_range_root - theorem RootPairing.two_smul_notMem_range_root 2025-07-08 08:25:15 b8e6a88 chore: move `Topology.StoneCech` into `Topology.Compactification` (1/2) (#25563) At present, the `Topology.Compactification` directory includes results on one-point compactifications, but results on Stone-Čech compactifications are currently located elsewhere. The removed file `Topology.Compactification` is deprecated in another PR (#25583) to leave a good git diff history. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Combinatorics/Hindman.lean Modified Mathlib/Topology/Category/CompHaus/Basic.lean Modified Mathlib/Topology/Category/CompHaus/Projective.lean Modified Mathlib/Topology/Category/Profinite/Projective.lean Modified Mathlib/Topology/Category/Stonean/Adjunctions.lean Renamed Mathlib/Topology/StoneCech.lean to Mathlib/Topology/Compactification/StoneCech.lean Modified Mathlib/Topology/ExtremallyDisconnected.lean Modified Mathlib/Topology/Maps/Proper/UniversallyClosed.lean Modified Mathlib/Topology/Separation/CompletelyRegular.lean 2025-07-08 08:06:19 ad70aaa feat: restricting `Affine.Simplex` to an affine subspace that contains it (#25172) Also removes a redundant `Nonempty` argument. ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/AffineSpace/AffineSubspace/Basic.lean +/- def AffineSubspace.inclusion + theorem AffineSubspace.map_mono Modified Mathlib/LinearAlgebra/AffineSpace/Independent.lean + theorem Affine.Simplex.map_subtype_restrict + def Affine.Simplex.restrict + theorem Affine.Simplex.restrict_map_inclusion + theorem Affine.Simplex.restrict_map_restrict + theorem Affine.Simplex.restrict_map_subtype 2025-07-08 00:25:28 350e70c feat: add lemma 3.5 from [Geck](https://dx.doi.org/10.1090/proc/13600) (#26592) This is the statement that `[eᵢ, fⱼ] = 0` if `i ≠ j` where `eᵢ`, `fⱼ` are generators of a simple Lie algebra associated to a root system. The immediate next task is to remove the `[P.IsNotG2]` assumption. ESTIMATED CHANGES Modified Mathlib/Analysis/InnerProductSpace/PiL2.lean Modified Mathlib/Data/Matrix/Mul.lean Modified Mathlib/Data/Matrix/Notation.lean + theorem injective_pair_iff_ne Modified Mathlib/LinearAlgebra/RootSystem/Base.lean + theorem RootPairing.Base.chainBotCoeff_eq_zero + theorem RootPairing.Base.chainTopCoeff_eq_of_ne + theorem RootPairing.Base.linearIndependent_pair_of_ne Modified Mathlib/LinearAlgebra/RootSystem/CartanMatrix.lean + theorem RootPairing.Base.cartanMatrix_apply_eq_zero_iff + theorem RootPairing.Base.cartanMatrix_eq_neg_chainTopCoeff Modified Mathlib/LinearAlgebra/RootSystem/Chain.lean + theorem RootPairing.chainTopCoeff_of_add Modified Mathlib/LinearAlgebra/RootSystem/GeckConstruction/Basic.lean +/- theorem RootPairing.GeckConstruction.cartanSubalgebra_le_lieAlgebra +/- theorem RootPairing.GeckConstruction.isSl2Triple + theorem RootPairing.GeckConstruction.lie_e_f_mul_ω + theorem RootPairing.GeckConstruction.lie_e_f_ne +/- theorem RootPairing.GeckConstruction.lie_e_f_same +/- theorem RootPairing.GeckConstruction.lie_h_e +/- theorem RootPairing.GeckConstruction.lie_h_f +/- theorem RootPairing.GeckConstruction.lie_h_h +/- theorem RootPairing.GeckConstruction.ω_mul_e +/- theorem RootPairing.GeckConstruction.ω_mul_f +/- theorem RootPairing.GeckConstruction.ω_mul_h Modified Mathlib/LinearAlgebra/RootSystem/GeckConstruction/Lemmas.lean + theorem RootPairing.Base.root_sub_mem_iff_root_add_mem 2025-07-07 23:23:21 7e05fd8 feat: refactor and expand lemmas about integration and continuous functional calculus (#26041) - [x] depends on: #26040 - [x] depends on: #26045 - [x] depends on: #26050 - [x] depends on: #26079 - [x] depends on: #26058 ESTIMATED CHANGES Modified Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Integral.lean +/- theorem cfcHom_integral + theorem cfcL_integrable +/- theorem cfcL_integral +/- theorem cfc_integral' +/- theorem cfc_integral + theorem cfc_setIntegral' + theorem cfc_setIntegral +/- theorem cfcₙHom_integral + theorem cfcₙL_integrable +/- theorem cfcₙL_integral +/- theorem cfcₙ_integral' +/- theorem cfcₙ_integral + theorem cfcₙ_setIntegral' + theorem cfcₙ_setIntegral + theorem integrableOn_cfc' + theorem integrableOn_cfc + theorem integrableOn_cfcₙ' + theorem integrableOn_cfcₙ + theorem integrable_cfc' + theorem integrable_cfc + theorem integrable_cfcₙ' + theorem integrable_cfcₙ Modified Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/NonUnital.lean + theorem cfcₙ_apply_mkD + theorem cfcₙ_eq_cfcₙL + theorem cfcₙ_eq_cfcₙL_mkD Modified Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Unital.lean + theorem cfc_apply_mkD + theorem cfc_eq_cfcL_mkD 2025-07-07 22:34:34 41615e9 chore: tidy various files (#26883) ESTIMATED CHANGES Modified Archive/Imo/Imo2001Q3.lean Modified Archive/MiuLanguage/DecisionSuf.lean Modified Archive/Sensitivity.lean +/- theorem Sensitivity.f_matrix Modified Mathlib/AlgebraicTopology/DoldKan/NReflectsIso.lean Modified Mathlib/AlgebraicTopology/SimplexCategory/Basic.lean Modified Mathlib/AlgebraicTopology/SimplicialObject/Split.lean Modified Mathlib/Analysis/RCLike/TangentCone.lean Modified Mathlib/CategoryTheory/FiberedCategory/HasFibers.lean Modified Mathlib/CategoryTheory/Iso.lean Modified Mathlib/Combinatorics/Quiver/Path.lean Modified Mathlib/Combinatorics/SimpleGraph/Tutte.lean Modified Mathlib/Data/Countable/Basic.lean Modified Mathlib/Geometry/Euclidean/Altitude.lean Modified Mathlib/Geometry/Euclidean/Incenter.lean Modified Mathlib/Geometry/Euclidean/MongePoint.lean Modified Mathlib/Geometry/Manifold/Diffeomorph.lean Modified Mathlib/GroupTheory/GroupAction/MultipleTransitivity.lean Modified Mathlib/MeasureTheory/Integral/Average.lean Modified Mathlib/MeasureTheory/Integral/RieszMarkovKakutani/Basic.lean Modified Mathlib/MeasureTheory/Integral/RieszMarkovKakutani/NNReal.lean Modified Mathlib/MeasureTheory/Measure/Typeclasses/SFinite.lean Modified Mathlib/ModelTheory/Satisfiability.lean Modified Mathlib/NumberTheory/NumberField/Units/Regulator.lean Modified Mathlib/NumberTheory/RamificationInertia/Basic.lean Modified Mathlib/Order/CompactlyGenerated/Basic.lean Modified Mathlib/Order/Max.lean Modified Mathlib/Order/OrderIsoNat.lean Modified Mathlib/RingTheory/DedekindDomain/Factorization.lean Modified Mathlib/RingTheory/DedekindDomain/Ideal.lean +/- theorem IsDedekindDomain.HeightOneSpectrum.ideal_ne_top_iff_exists Modified Mathlib/RingTheory/Ideal/Operations.lean +/- theorem Submodule.smul_le_span Modified Mathlib/RingTheory/Localization/AtPrime.lean Modified Mathlib/RingTheory/OrderOfVanishing.lean +/- theorem Ring.ordFrac_eq_ord Modified Mathlib/SetTheory/Cardinal/Cofinality.lean Modified Mathlib/Topology/Algebra/RestrictedProduct/Basic.lean Modified Mathlib/Topology/Connected/PathComponentOne.lean Modified Mathlib/Topology/MetricSpace/HolderNorm.lean 2025-07-07 22:18:18 7fbffbb feat(RepresentationTheory/Homological/GroupHomology/LowDegree): API for n-cycles & n-boundaries for n = 1, 2 (#25882) This PR is more API for low degree group homology, adding `cyclesₙ, boundariesₙ` for `n = 1, 2`, following the structure of `RepresentationTheory.Homological.GroupCohomology.LowDegree`. ESTIMATED CHANGES Modified Mathlib/RepresentationTheory/Homological/GroupHomology/LowDegree.lean + theorem groupHomology.boundariesToCycles₁_apply + theorem groupHomology.boundariesToCycles₂_apply + def groupHomology.boundaries₁ + theorem groupHomology.boundaries₁_le_cycles₁ + def groupHomology.boundaries₂ + theorem groupHomology.boundaries₂_le_cycles₂ + def groupHomology.cycles₁ + theorem groupHomology.cycles₁_eq_top_of_isTrivial + def groupHomology.cycles₂ + theorem groupHomology.d₂₁_apply_mem_cycles₁ + theorem groupHomology.d₃₂_apply_mem_cycles₂ + theorem groupHomology.mem_cycles₁_iff + theorem groupHomology.mem_cycles₁_of_mem_boundaries₁ + theorem groupHomology.mem_cycles₂_iff + theorem groupHomology.mem_cycles₂_of_mem_boundaries₂ + theorem groupHomology.single_inv_ρ_self_add_single_mem_boundaries₁ + theorem groupHomology.single_mem_cycles₁_iff + theorem groupHomology.single_mem_cycles₁_of_mem_invariants + theorem groupHomology.single_mem_cycles₂_iff + theorem groupHomology.single_mem_cycles₂_iff_inv + theorem groupHomology.single_one_fst_sub_single_one_fst_mem_boundaries₂ + theorem groupHomology.single_one_fst_sub_single_one_snd_mem_boundaries₂ + theorem groupHomology.single_one_mem_boundaries₁ + theorem groupHomology.single_one_snd_sub_single_one_fst_mem_boundaries₂ + theorem groupHomology.single_one_snd_sub_single_one_snd_mem_boundaries₂ + theorem groupHomology.single_ρ_self_add_single_inv_mem_boundaries₁ 2025-07-07 20:08:48 bacc86c feat(VectorBundle/MDifferentiable): add some basic API (#26865) mirroring the development in VectorBundle/Basic. From the path towards geodesics and the Levi-Civita connection. ESTIMATED CHANGES Modified Mathlib/Geometry/Manifold/VectorBundle/MDifferentiable.lean + theorem Bundle.mdifferentiableAt_proj + theorem Bundle.mdifferentiableAt_zeroSection + theorem Bundle.mdifferentiableOn_proj + theorem Bundle.mdifferentiableOn_zeroSection + theorem Bundle.mdifferentiableWithinAt_proj + theorem Bundle.mdifferentiableWithinAt_zeroSection + theorem Bundle.mdifferentiable_proj + theorem Bundle.mdifferentiable_zeroSection + theorem mdifferentiableAt_section + theorem mdifferentiableWithinAt_section 2025-07-07 18:30:57 f7aa055 feat(MeasureTheory/Measure/Hausdorff): characterise dimH as infimum of vanishing measures (#26876) Adds a characterisation of the Hausdorff dimension dimH s of a set s in a metric space as the infimum over all d : ℝ≥0 such that the d-dimensional Hausdorff measure of s is zero. ESTIMATED CHANGES Modified Mathlib/Topology/MetricSpace/HausdorffDimension.lean + theorem dimH_eq_iInf 2025-07-07 18:08:36 f2f4294 feat(Topology/ValuativeRel): helper instance for Valued from ValuativeTopology (#26713) and lemmas on clopen balls ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Topology/Algebra/Valued/ValuativeRel.lean + theorem ValuativeTopology.hasBasis_nhds_zero + theorem ValuativeTopology.isClopen_ball + theorem ValuativeTopology.isClopen_closedBall + theorem ValuativeTopology.isClopen_sphere + theorem ValuativeTopology.isClosed_ball + theorem ValuativeTopology.isClosed_closedBall + theorem ValuativeTopology.isOpen_ball + theorem ValuativeTopology.isOpen_closedBall + theorem ValuativeTopology.isOpen_sphere + theorem ValuativeTopology.mem_nhds 2025-07-07 18:08:33 ba40838 chore: rename `ZMod.natCast_zmod_eq_zero_iff_dvd` to `ZMod.natCast_eq_zero_iff` (#26541) This matches `CharP.cast_eq_zero_iff` ESTIMATED CHANGES Modified Archive/Imo/Imo2024Q2.lean Modified Archive/Wiedijk100Theorems/FriendshipGraphs.lean Modified Mathlib/Data/ZMod/Basic.lean + theorem ZMod.natCast_eq_zero_iff - theorem ZMod.natCast_zmod_eq_zero_iff_dvd Modified Mathlib/NumberTheory/Fermat.lean Modified Mathlib/NumberTheory/LucasLehmer.lean Modified Mathlib/NumberTheory/Padics/RingHoms.lean Modified Mathlib/NumberTheory/SumFourSquares.lean Modified Mathlib/NumberTheory/Wilson.lean Modified Mathlib/RingTheory/Fintype.lean Modified Mathlib/RingTheory/Polynomial/Cyclotomic/Basic.lean Modified Mathlib/RingTheory/RootsOfUnity/Minpoly.lean 2025-07-07 18:08:31 9a24fe2 chore: remove acceptSuggestionOnEnter option (#25932) Reverts #12749. Discussion on zulip: [#mathlib4 > propose removing module docstring code suggestion @ 💬](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/propose.20removing.20module.20docstring.20code.20suggestion/near/452477171) ESTIMATED CHANGES Modified .vscode/settings.json 2025-07-07 18:08:30 4ef8a6c doc: suggest !bench in `lake exe pole` (#25919) This PR makes an error message on `lake exe pole` give some information which is often relevant. Original PR: https://github.com/leanprover-community/mathlib4/pull/12561 ESTIMATED CHANGES Modified LongestPole/Main.lean 2025-07-07 17:19:32 2d0be37 feat: `(· ^ n)` is strictly monotone on nonnegative inputs for `n : ℤ` (#26762) This is the import-wise non-problematic part of #23177. ESTIMATED CHANGES Modified Mathlib/Algebra/GroupWithZero/WithZero.lean Modified Mathlib/Algebra/Order/Group/Basic.lean - theorem one_lt_zpow Modified Mathlib/Algebra/Order/GroupWithZero/Unbundled/Basic.lean + theorem div_lt_one₀ + theorem one_lt_div₀ + theorem zpow_left_strictMonoOn₀ Modified Mathlib/Algebra/Order/Monoid/Unbundled/Pow.lean + theorem one_lt_zpow 2025-07-07 17:19:30 4486c8b chore: golf Algebra/ using `simp` (#26729) ESTIMATED CHANGES Modified Mathlib/Algebra/Category/Grp/Colimits.lean Modified Mathlib/Algebra/Category/ModuleCat/Differentials/Presheaf.lean Modified Mathlib/Algebra/Field/Subfield/Basic.lean Modified Mathlib/Algebra/Group/Subgroup/Ker.lean Modified Mathlib/Algebra/Group/Submonoid/Pointwise.lean Modified Mathlib/Algebra/Homology/DerivedCategory/Ext/Basic.lean Modified Mathlib/Algebra/Homology/DerivedCategory/Fractions.lean Modified Mathlib/Algebra/Lie/Basic.lean Modified Mathlib/Algebra/Lie/Nilpotent.lean Modified Mathlib/Algebra/Lie/Weights/Cartan.lean Modified Mathlib/Algebra/Lie/Weights/Linear.lean Modified Mathlib/Algebra/Module/ZLattice/Basic.lean Modified Mathlib/Algebra/Polynomial/HasseDeriv.lean Modified Mathlib/Algebra/Polynomial/Laurent.lean Modified Mathlib/Algebra/Polynomial/Module/Basic.lean Modified Mathlib/Algebra/Polynomial/Smeval.lean Modified Mathlib/Algebra/RingQuot.lean 2025-07-07 17:19:29 1259f81 feat: extend the commandStart linter until after `:` (#26718) The commandStart linter used to ignored a missing space between the hypotheses and `:`. This PR extends the linter to check that as well. ESTIMATED CHANGES Modified Mathlib/Tactic/Linter/CommandStart.lean Modified MathlibTest/CommandStart.lean 2025-07-07 17:19:26 9b2bbbf feat(Algebra): `a / n ≤ a` if `n : ℕ` and `0 ≤ a` (#26658) Show that if `n : ℕ` and `0 ≤ a` then `a / n ≤ a`, moreover `a / n < a` if `2 ≤ n`. Also show that `a / c = b / d` if `a / b = c / d`, `c ≠ 0` and `d ≠ 0`. ESTIMATED CHANGES Modified Mathlib/Algebra/GroupWithZero/Units/Basic.lean + theorem div_eq_div_of_div_eq_div Modified Mathlib/Algebra/Order/Field/Basic.lean + theorem div_nat_le_self_of_nonnneg + theorem div_nat_lt_self_of_pos_of_two_le Modified Mathlib/Data/Nat/Cast/Order/Basic.lean + theorem Nat.one_le_cast_iff_ne_zero 2025-07-07 17:19:24 55cdebc chore: golf using `exact` (#26654) ESTIMATED CHANGES Modified Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Instances.lean Modified Mathlib/Analysis/Normed/Group/Quotient.lean +/- theorem quotient_norm_add_le Modified Mathlib/Analysis/SpecialFunctions/Log/Base.lean Modified Mathlib/Data/TypeVec.lean +/- theorem TypeVec.prod_map_id Modified Mathlib/FieldTheory/Separable.lean Modified Mathlib/Geometry/Euclidean/SignedDist.lean Modified Mathlib/NumberTheory/NumberField/InfinitePlace/Ramification.lean Modified Mathlib/RingTheory/EssentialFiniteness.lean 2025-07-07 17:19:22 1ce81f3 chore: golf using `assumption_mod_cast` (#26469) ESTIMATED CHANGES Modified Mathlib/Algebra/Lie/Weights/Killing.lean Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Arctan.lean Modified Mathlib/RingTheory/Norm/Defs.lean Modified Mathlib/Topology/Category/LightProfinite/Sequence.lean 2025-07-07 17:19:19 f7deeff feat(GroupTheory/GroupAction/Jordan) : Primitivity lemmas (#26280) This is a primitivity lemma for actions, in preparation to the proof of of Jordan on primitive subgroups of the permutation group #26282 This PR continues the work from #24120. Original PR: https://github.com/leanprover-community/mathlib4/pull/24120 - [x] depends on: #26279 ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Action/End.lean Modified Mathlib/Algebra/Group/Action/Pretransitive.lean Modified Mathlib/GroupTheory/GroupAction/MultiplePrimitivity.lean Modified Mathlib/GroupTheory/GroupAction/MultipleTransitivity.lean + theorem Equiv.Perm.eq_top_if_isMultiplyPretransitive + theorem Equiv.Perm.isMultiplyPretransitive + theorem MulAction.isMultiplyPretransitive_iff Modified Mathlib/GroupTheory/GroupAction/SubMulAction/OfFixingSubgroup.lean +/- theorem SubMulAction.ofFixingSubgroup_of_eq_apply +/- theorem SubMulAction.ofFixingSubgroup_of_eq_bijective +/- theorem SubMulAction.ofFixingSubgroup_of_inclusion_injective +/- theorem SubMulAction.ofFixingSubgroup_of_singleton_bijective 2025-07-07 16:30:50 cfbc85c feat(Mathlib/Logic/Function/Iterate): add small lemma `iterate_invariant` (#26807) If a function `g` is invariant under composition with a function `f` (i.e., `g ∘ f = g`), then `g` is invariant under composition with any iterate of `f`. Used by: #26810 ESTIMATED CHANGES Modified Mathlib/Logic/Function/Iterate.lean + theorem Function.iterate_invariant 2025-07-07 15:58:55 edc0f5c feat(Mathlib/Order/Filter/Basic): add `EventuallyEq.mul_left` and `...right` (#26852) Add two basic lemmas which are particularly convenient when used with dot notation. ESTIMATED CHANGES Modified Mathlib/Order/Filter/Basic.lean + theorem Filter.EventuallyEq.mul_left + theorem Filter.EventuallyEq.mul_right 2025-07-07 15:24:36 29cc0b6 feat(Algebra/Homology): truncations of ConnectData.cochainComplex (#26520) If `h : ConnectData K L` with `K` a chain complex and `L` a cochain complex, the "restriction" of the cochain complex `h.cochainComplex` in nonnegative degrees identifies to `L` and the restriction in negative degrees identifies to `K`. This allows to compute the homology of `h.cochainComplex` in degrees different from `0` and `-1`. ESTIMATED CHANGES Modified Mathlib/Algebra/Homology/Embedding/Connect.lean + def CochainComplex.ConnectData.restrictionGEIso + def CochainComplex.ConnectData.restrictionLEIso Modified Mathlib/Algebra/Homology/ShortComplex/HomologicalComplex.lean + theorem HomologicalComplex.hasHomology_of_iso 2025-07-07 15:08:54 e295847 chore(VectorBundle/Basic): minor clean-ups and polish (#26864) Found while working on the path towards geodesics and the Levi-Civita connection. ESTIMATED CHANGES Modified Mathlib/Geometry/Manifold/VectorBundle/Basic.lean +/- theorem Bundle.contMDiff_zeroSection Modified Mathlib/Geometry/Manifold/VectorBundle/MDifferentiable.lean 2025-07-07 15:08:52 6d68398 feat(CategoryTheory/Category/Cat): cartesian closed instance on small categories (#25782) The category of small categories is cartesian closed, with exponentials defined by functor categories. Adjoint transposition is defined by currying and uncurrying. [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/CategoryTheory/Category/Cat.lean + def CategoryTheory.Cat.isoOfEquiv Added Mathlib/CategoryTheory/Category/Cat/CartesianClosed.lean + def CategoryTheory.Cat.exp + theorem CategoryTheory.Cat.ihom_map + theorem CategoryTheory.Cat.ihom_obj + def CategoryTheory.curryingIso + def CategoryTheory.flippingIso Modified Mathlib/CategoryTheory/Functor/Currying.lean + def CategoryTheory.Functor.compFlipUncurryIso + theorem CategoryTheory.Functor.comp_flip_uncurry_eq + def CategoryTheory.Functor.curryObjCompIso + theorem CategoryTheory.Functor.curry_obj_comp_flip + def CategoryTheory.Functor.curryingEquiv + def CategoryTheory.Functor.curryingFlipEquiv + def CategoryTheory.Functor.flipping + def CategoryTheory.Functor.flippingEquiv 2025-07-07 15:08:50 695db8d feat: add `Valued.tendsto_zero_pow_of_le_neg_one` (#21162) If `K` is a valued ring taking values in the multiplicative integers wth a zero adjoined, then `Valued.tendsto_zero_pow_of_le_neg_one` is the result that `x ^ n` tends to zero in this ring if `v x` is at most `-1` valued. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Topology/Algebra/Valued/WithZeroMulInt.lean + theorem Valued.exists_pow_lt_of_le_exp_neg_one + theorem Valued.tendsto_zero_pow_of_le_exp_neg_one 2025-07-07 13:51:12 19d3601 feat(NumberTheory/Padics/Complex.lean): add the padic complex numbers (#26675) We define the field of p-adic complex numbers. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/NumberTheory/Padics/Complex.lean + theorem PadicAlgCl.coe_eq + theorem PadicAlgCl.isAlgebraic + theorem PadicAlgCl.isNonarchimedean + theorem PadicAlgCl.norm_extends + theorem PadicAlgCl.spectralNorm_eq + theorem PadicAlgCl.valuation_coe + theorem PadicAlgCl.valuation_def + theorem PadicAlgCl.valuation_p + theorem PadicComplex.coe_eq + theorem PadicComplex.coe_natCast + theorem PadicComplex.coe_zero + theorem PadicComplex.isNonarchimedean + theorem PadicComplex.nnnorm_extends + theorem PadicComplex.norm_def + theorem PadicComplex.norm_extends + theorem PadicComplex.rankOne_hom_eq + theorem PadicComplex.valuation_extends + theorem PadicComplex.valuation_p + theorem PadicComplexInt.integers + def PadicComplexInt 2025-07-07 13:33:33 58ff372 chore: reorganise root system files associated with Geck construction (#26849) There are no changes other than moving things around here. I believe these changes make good sense in their own right but additional motivation is to have `LinearAlgebra.RootSystem.Base` import `LinearAlgebra.RootSystem.Finite.Lemmas` instead of vice-versa. This makes it possible to organise results about bases in one place, and became important when developing further theory of bases. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/LinearAlgebra/RootSystem/Base.lean + theorem RootPairing.Base.pairingIn_le_zero_of_ne Modified Mathlib/LinearAlgebra/RootSystem/Chain.lean - theorem RootPairing.chainBotCoeff_mul_chainTopCoeff.aux_0 - theorem RootPairing.chainBotCoeff_mul_chainTopCoeff Modified Mathlib/LinearAlgebra/RootSystem/Finite/Lemmas.lean - theorem RootPairing.Base.pairingIn_le_zero_of_ne - theorem RootPairing.Base.root_add_root_mem_of_mem_of_mem - theorem RootPairing.Base.root_sub_root_mem_of_mem_of_mem Renamed Mathlib/LinearAlgebra/RootSystem/GeckConstruction.lean to Mathlib/LinearAlgebra/RootSystem/GeckConstruction/Basic.lean Added Mathlib/LinearAlgebra/RootSystem/GeckConstruction/Lemmas.lean + theorem RootPairing.Base.root_add_root_mem_of_mem_of_mem + theorem RootPairing.Base.root_sub_root_mem_of_mem_of_mem + theorem RootPairing.chainBotCoeff_mul_chainTopCoeff 2025-07-07 13:19:26 67db308 feat: finite sum, difference, scalar product of `C^k` sections is `C^k` (#26674) And use this to golf the proofs in `SmoothSection.lean`. A future PR will add the analogous results for differentiability of sections. Part of the path towards the geodesics and the Levi-Civita connection. ESTIMATED CHANGES Modified Mathlib/Geometry/Manifold/VectorBundle/SmoothSection.lean + theorem ContMDiff.add_section + theorem ContMDiff.const_smul_section + theorem ContMDiff.neg_section + theorem ContMDiff.smul_section + theorem ContMDiff.sub_section + theorem ContMDiff.sum_section + theorem ContMDiffAt.add_section + theorem ContMDiffAt.const_smul_section + theorem ContMDiffAt.neg_section + theorem ContMDiffAt.smul_section + theorem ContMDiffAt.sub_section + theorem ContMDiffAt.sum_section + theorem ContMDiffOn.add_section + theorem ContMDiffOn.const_smul_section + theorem ContMDiffOn.neg_section + theorem ContMDiffOn.smul_section + theorem ContMDiffOn.sub_section + theorem ContMDiffOn.sum_section + theorem ContMDiffWithinAt.add_section + theorem ContMDiffWithinAt.const_smul_section + theorem ContMDiffWithinAt.neg_section + theorem ContMDiffWithinAt.smul_section + theorem ContMDiffWithinAt.sub_section + theorem ContMDiffWithinAt.sum_section 2025-07-07 12:10:45 5e4c8bc chore: use typeclass rather than implicit arguments for decidability data (#26662) Additional context available [on Zulip](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Implicit.20decidability.20arguments/with/526974288) Searching with the regex `\{.* : Decidable.*\} ` identifies a handful more such locations but I think they should be dealt with separately (in the first few cases I looked at, the naïve substitution was not sufficient). ESTIMATED CHANGES Modified Archive/Wiedijk100Theorems/Partition.lean +/- theorem Theorems100.coeff_indicator +/- theorem Theorems100.coeff_indicator_neg +/- theorem Theorems100.coeff_indicator_pos +/- theorem Theorems100.constantCoeff_indicator Modified Mathlib/Algebra/BigOperators/Group/Finset/Piecewise.lean +/- theorem Finset.prod_apply_dite +/- theorem Finset.prod_apply_ite +/- theorem Finset.prod_apply_ite_of_false +/- theorem Finset.prod_apply_ite_of_true +/- theorem Finset.prod_dite +/- theorem Finset.prod_dite_of_false +/- theorem Finset.prod_dite_of_true +/- theorem Finset.prod_ite +/- theorem Finset.prod_ite_of_false +/- theorem Finset.prod_ite_of_true 2025-07-07 09:16:05 90643a7 feat(RingTheory): define Grassmannians (#26060) This defines the Grassmannians of a module over a ring. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/RingTheory/Grassmannian.lean + theorem Module.Grassmannian.ext + structure Module.Grassmannian Modified docs/references.bib 2025-07-07 09:02:03 4ae4553 chore(Mathlib/FieldTheory/KummerExtension): remove adaptation note (#26825) ESTIMATED CHANGES Modified Mathlib/FieldTheory/KummerExtension.lean 2025-07-07 08:46:53 6aba87f feat: add version of fderiv_const_smul without differentiability hypotheses (#26700) In return, the scalar must be invertible, or any scalar in a field. Part of the path towards geodesics and the Levi-Civita connection. Co-authored by: @PatrickMassot ESTIMATED CHANGES Modified Mathlib/Analysis/Calculus/FDeriv/Add.lean + theorem differentiableAt_smul_iff + theorem differentiableWithinAt_smul_iff + theorem fderivWithin_const_smul_of_field + theorem fderivWithin_const_smul_of_invertible + theorem fderiv_const_smul_of_field + theorem fderiv_const_smul_of_invertible 2025-07-07 08:34:29 ea0e8d2 feat: Lie bracket with zero is zero (#26734) ESTIMATED CHANGES Modified Mathlib/Analysis/Calculus/VectorField.lean + theorem VectorField.lieBracketWithin_zero_left + theorem VectorField.lieBracketWithin_zero_right + theorem VectorField.lieBracket_zero_left + theorem VectorField.lieBracket_zero_right Modified Mathlib/Geometry/Manifold/VectorField/LieBracket.lean + theorem VectorField.mlieBracketWithin_zero_left + theorem VectorField.mlieBracketWithin_zero_right + theorem VectorField.mlieBracket_zero_left + theorem VectorField.mlieBracket_zero_right Modified Mathlib/Geometry/Manifold/VectorField/Pullback.lean + theorem VectorField.mpullbackWithin_zero + theorem VectorField.mpullback_zero 2025-07-07 08:10:58 0ef8c70 feat(NumberField): Image of torsion modulo an ideal (#26072) Let `I` be an integral ideal of a number field `K`. We define the morphism from the torsion of `K` to `(𝓞 K ⧸ I)ˣ` and prove that it is injective if the norm of `I` is coprime with the order of the torsion of `K`. As a consequence, we prove that for a prime ideal `P` coprime with the order of the torsion of `K`, the norm of `P` is congruent to `1` modulo `torsionOrder K`. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/NumberTheory/Cyclotomic/Basic.lean + theorem IsPrimitiveRoot.intermediateField_adjoin_isCyclotomicExtension Modified Mathlib/NumberTheory/Cyclotomic/Rat.lean + theorem IsPrimitiveRoot.norm_toInteger_sub_one_eq_one + theorem IsPrimitiveRoot.norm_toInteger_sub_one_of_eq_two + theorem IsPrimitiveRoot.norm_toInteger_sub_one_of_eq_two_pow + theorem IsPrimitiveRoot.prime_dvd_of_dvd_norm_sub_one Added Mathlib/NumberTheory/NumberField/Ideal/Basic.lean + def Ideal.torsionMapQuot + theorem Ideal.torsionMapQuot_apply + theorem Ideal.torsionMapQuot_injective + theorem IsPrimitiveRoot.not_coprime_norm_of_mk_eq_one + theorem NumberField.torsionOrder_dvd_absNorm_sub_one Modified Mathlib/RingTheory/RootsOfUnity/PrimitiveRoots.lean + theorem isPrimitiveRoot_of_mem_rootsOfUnity 2025-07-07 08:02:11 0a13a73 feat: implement harmonic functions (#26721) Define harmonic functions on real, finite-dimensional, inner product spaces. This material is used in [Project VD](https://github.com/kebekus/ProjectVD), which aims to formalize Value Distribution Theory for meromorphic functions on the complex plane. It is one of the ingredients in the proof of Jensen's Formula in complex analysis. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/InnerProductSpace/Harmonic/Basic.lean + theorem InnerProductSpace.HarmonicAt.add + theorem InnerProductSpace.HarmonicAt.comp_CLM + theorem InnerProductSpace.HarmonicAt.const_smul + theorem InnerProductSpace.HarmonicAt.eventually + def InnerProductSpace.HarmonicAt + theorem InnerProductSpace.HarmonicOnNhd.add + theorem InnerProductSpace.HarmonicOnNhd.comp_CLM + theorem InnerProductSpace.HarmonicOnNhd.const_smul + theorem InnerProductSpace.HarmonicOnNhd.mono + def InnerProductSpace.HarmonicOnNhd + theorem InnerProductSpace.harmonicAt_comp_CLE_iff + theorem InnerProductSpace.harmonicAt_congr_nhds + theorem InnerProductSpace.harmonicOnNhd_comp_CLE_iff + theorem InnerProductSpace.isOpen_setOf_harmonicAt Modified Mathlib/Analysis/InnerProductSpace/Laplacian.lean + theorem ContDiffAt.laplacian_CLM_comp_left_nhds + theorem ContDiffWithinAt.laplacianWithin_CLM_comp_left_nhds + theorem InnerProductSpace.laplacianWithin_smul_nhds + theorem InnerProductSpace.laplacian_smul_nhds 2025-07-07 07:43:51 eac17e1 chore: golf MeasureTheory/ using `grind` (#26690) ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Constructions/Polish/Basic.lean Modified Mathlib/MeasureTheory/Covering/Besicovitch.lean Modified Mathlib/MeasureTheory/Covering/LiminfLimsup.lean Modified Mathlib/MeasureTheory/Function/ConditionalExpectation/Basic.lean Modified Mathlib/MeasureTheory/MeasurableSpace/MeasurablyGenerated.lean Modified Mathlib/MeasureTheory/PiSystem.lean 2025-07-07 07:35:25 e7aa4d4 chore(CategoryTheory/Localization): fix morphisms in the category of resolutions (#26375) This PR changes the definition of morphisms in the categories `LeftResolution` and `RightResolution` attached to morphisms of localizers. Previously, we assumed that morphisms between resolutions belonged to the given class of morphisms of the localizer, but in downstream applications, it turns out it is more convenient to remove this condition (which would anyway be automatically verified in most situations). (The literature is not very explicit about whether this condition should or should not be part of the definition.) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Localization/DerivabilityStructure/Constructor.lean Modified Mathlib/CategoryTheory/Localization/Resolution.lean +/- def CategoryTheory.LocalizerMorphism.LeftResolution.Hom.id +/- def CategoryTheory.LocalizerMorphism.LeftResolution.opEquivalence +/- def CategoryTheory.LocalizerMorphism.LeftResolution.opFunctor +/- def CategoryTheory.LocalizerMorphism.RightResolution.Hom.id +/- def CategoryTheory.LocalizerMorphism.RightResolution.unopFunctor 2025-07-07 07:07:18 ff93ac2 chore: golf Probability/ using `grind` (#26692) ESTIMATED CHANGES Modified Mathlib/Probability/Independence/Conditional.lean Modified Mathlib/Probability/Independence/Kernel.lean Modified Mathlib/Probability/Kernel/Basic.lean 2025-07-07 04:01:00 ea2e32e chore: fix spelling mistakes (#26808) ESTIMATED CHANGES Modified Mathlib/Algebra/Category/ContinuousCohomology/Basic.lean Modified Mathlib/Algebra/GroupWithZero/Range.lean Modified Mathlib/Algebra/MvPolynomial/Nilpotent.lean Modified Mathlib/AlgebraicGeometry/Gluing.lean Modified Mathlib/Analysis/InnerProductSpace/Laplacian.lean Modified Mathlib/Analysis/NormedSpace/OperatorNorm/NormedSpace.lean Modified Mathlib/Analysis/ODE/PicardLindelof.lean Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Cotangent.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Pullback/Categorical/CatCospanTransform.lean Modified Mathlib/CategoryTheory/Monoidal/Action/Basic.lean Modified Mathlib/CategoryTheory/Monoidal/ExternalProduct/KanExtension.lean Modified Mathlib/GroupTheory/GroupAction/SubMulAction/OfFixingSubgroup.lean Modified Mathlib/Lean/Meta/RefinedDiscrTree.lean Modified Mathlib/Lean/Meta/RefinedDiscrTree/Basic.lean Modified Mathlib/Lean/Meta/RefinedDiscrTree/Initialize.lean Modified Mathlib/MeasureTheory/SpecificCodomains/ContinuousMap.lean Modified Mathlib/RingTheory/DividedPowers/SubDPIdeal.lean Modified Mathlib/RingTheory/Polynomial/ContentIdeal.lean Modified Mathlib/Topology/UniformSpace/UniformConvergenceTopology.lean Modified scripts/user_activity_report.py 2025-07-07 03:50:54 449b24f doc(RingTheory/RingHom/Locally): update names in the module docstring (#26817) Update names in the module docstring. This should fix the broken links [here](https://leanprover-community.github.io/mathlib4_docs/Mathlib/RingTheory/RingHom/Locally.html). ESTIMATED CHANGES Modified Mathlib/RingTheory/RingHom/Locally.lean 2025-07-07 00:36:37 b6a8f16 refactor(SetTheory/Cardinal/Regular): review `IsInaccessible` API (#26606) This PR does the following: - Make the definition of `IsInaccessible` the more lightweight version. - Turn the old definition into a lemma `isInaccessible_def`. - Use dot notation wherever possible. - Add two extra convenience lemmas. ESTIMATED CHANGES Modified Mathlib/SetTheory/Cardinal/Regular.lean + theorem Cardinal.IsInaccessible.aleph0_lt + theorem Cardinal.IsInaccessible.isRegular + theorem Cardinal.IsInaccessible.isStrongLimit + theorem Cardinal.IsInaccessible.nat_lt + theorem Cardinal.IsInaccessible.ne_zero + theorem Cardinal.IsInaccessible.pos + theorem Cardinal.IsInaccessible.univ +/- def Cardinal.IsInaccessible + theorem Cardinal.isInaccesible_def - theorem Cardinal.univ_inaccessible 2025-07-06 23:41:13 d3c315d feat(LinearAlgebra/AffineSpace): lemmas for trivial spaces (#26821) Add two lemmas about affine subspaces and affine spans in a subsingleton affine space. Deduce a variant of `affineCombination_mem_affineSpan` that uses a nonempty index type rather than a nontrivial ring (this allows `Nontrivial k` hypotheses to be avoided for users in cases where the index type of the combination is known to be nonempty, such as for combinations of vertices of a simplex). ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/AffineSpace/AffineSubspace/Defs.lean + theorem affineSpan_eq_top_iff_nonempty_of_subsingleton Modified Mathlib/LinearAlgebra/AffineSpace/Combination.lean + theorem affineCombination_mem_affineSpan_of_nonempty Modified Mathlib/LinearAlgebra/RootSystem/Irreducible.lean Modified Mathlib/Order/Atoms.lean + theorem IsSimpleOrder.bot_lt_iff_eq_top + theorem IsSimpleOrder.lt_top_iff_eq_bot 2025-07-06 23:18:42 7bcdce9 feat(AlgebraicGeometry): building morphisms into Proj (#25101) ESTIMATED CHANGES Modified Mathlib/AlgebraicGeometry/ProjectiveSpectrum/Basic.lean + theorem AlgebraicGeometry.Proj.awayι_preimage_basicOpen + theorem AlgebraicGeometry.Proj.basicOpenIsoSpec_inv_ι + def AlgebraicGeometry.Proj.fromOfGlobalSections + theorem AlgebraicGeometry.Proj.fromOfGlobalSections_morphismRestrict + theorem AlgebraicGeometry.Proj.fromOfGlobalSections_preimage_basicOpen + theorem AlgebraicGeometry.Proj.fromOfGlobalSections_resLE + theorem AlgebraicGeometry.Proj.fromOfGlobalSections_toSpecZero + theorem AlgebraicGeometry.Proj.homOfLE_toBasicOpenOfGlobalSections_ι + def AlgebraicGeometry.Proj.openCoverOfMapIrreleventEqTop + def AlgebraicGeometry.Proj.toBasicOpenOfGlobalSections Modified Mathlib/AlgebraicGeometry/Restrict.lean + theorem AlgebraicGeometry.Scheme.isoOfEq_hom + theorem AlgebraicGeometry.Scheme.isoOfEq_inv + def AlgebraicGeometry.basicOpenIsoSpecAway + theorem AlgebraicGeometry.basicOpenIsoSpecAway_inv_homOfLE Modified Mathlib/AlgebraicGeometry/Scheme.lean + theorem AlgebraicGeometry.Scheme.zeroLocus_iUnion Modified Mathlib/RingTheory/GradedAlgebra/HomogeneousLocalization.lean 2025-07-06 22:46:45 df7b8fa chore(RingTheory/Valuation): generalize IsEquiv iffs to Ring (#26826) before they were aliased out of iffs that showed that these conditions were sufficied to prove IsEquiv but that is only true in a divison ring context while the inequalities remain valid even in Ring ESTIMATED CHANGES Modified Mathlib/RingTheory/Valuation/Basic.lean + theorem Valuation.IsEquiv.eq_one_iff_eq_one + theorem Valuation.IsEquiv.le_one_iff_le_one + theorem Valuation.IsEquiv.lt_iff_lt + theorem Valuation.IsEquiv.lt_one_iff_lt_one 2025-07-06 22:36:12 b368a61 chore(RingTheory/Valuation): generalize lemmas about valuation of irreducibles in subring (#26545) To prepare for generalization of LocallyCompact to Valued from NormedField ESTIMATED CHANGES Modified Mathlib/RingTheory/DiscreteValuationRing/Basic.lean + theorem Irreducible.maximalIdeal_eq_setOf_le_v_coe + theorem Irreducible.maximalIdeal_pow_eq_setOf_le_v_coe_pow + theorem Valuation.Integers.maximalIdeal_eq_setOf_le_v_algebraMap + theorem Valuation.Integers.maximalIdeal_pow_eq_setOf_le_v_algebraMap_pow Modified Mathlib/RingTheory/Valuation/Integers.lean + theorem Valuation.Integers.coe_span_singleton_eq_setOf_le_v_algebraMap + theorem Valuation.Integers.valuation_irreducible_lt_one + theorem Valuation.Integers.valuation_irreducible_pos + theorem Valuation.integer.coe_span_singleton_eq_setOf_le_v_coe + theorem Valuation.integer.v_irreducible_lt_one + theorem Valuation.integer.v_irreducible_pos Modified Mathlib/Topology/Algebra/Valued/LocallyCompact.lean 2025-07-06 21:54:25 a09b59a feat(Data/Sym/Sym2): addition as a function from sym2 (#26830) ESTIMATED CHANGES Modified Mathlib/Data/Sym/Sym2.lean 2025-07-06 21:54:24 52fad23 feat: simple lemmas on `Cardinal.univ` (#26818) ESTIMATED CHANGES Modified Mathlib/SetTheory/Ordinal/Basic.lean + theorem Cardinal.IsStrongLimit.univ + theorem Cardinal.aleph0_lt_univ + theorem Cardinal.nat_lt_univ + theorem Cardinal.univ_ne_zero + theorem Cardinal.univ_pos 2025-07-06 21:31:46 5904661 feat: `Real.sInf_univ` (#26813) We already have the pair `Real.sSup_univ` and `Real.sInf_univ` as well as `Real.sSup_empty`, so this is the missing part. ESTIMATED CHANGES Modified Mathlib/Data/Real/Archimedean.lean + theorem Real.sInf_univ 2025-07-06 14:07:18 00c9085 feat(CategoryTheory/Monoidal/DayConvolution): left and right unitors for Day convolution (#25757) Given a `DayConvolutionUnit U` a functor `F : C ⥤ V` and a Day convolution of `U` and `F`, we construct the left unitor isomorphism. `U ⊛ F ≅ F`. Similarly, given a Day convolution of `F` and `U`, we construct the right unitor. We characterize the isomorphisms, show their naturality, and show that the triangle identity is satisfied. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Monoidal/DayConvolution.lean + theorem CategoryTheory.MonoidalCategory.DayConvolution.triangle + def CategoryTheory.MonoidalCategory.DayConvolutionUnit.corepresentableByLeft + def CategoryTheory.MonoidalCategory.DayConvolutionUnit.corepresentableByRight + def CategoryTheory.MonoidalCategory.DayConvolutionUnit.leftUnitor + def CategoryTheory.MonoidalCategory.DayConvolutionUnit.leftUnitorCorepresentingIso + theorem CategoryTheory.MonoidalCategory.DayConvolutionUnit.leftUnitor_hom_unit_app + theorem CategoryTheory.MonoidalCategory.DayConvolutionUnit.leftUnitor_inv_app + theorem CategoryTheory.MonoidalCategory.DayConvolutionUnit.leftUnitor_naturality + def CategoryTheory.MonoidalCategory.DayConvolutionUnit.rightUnitor + def CategoryTheory.MonoidalCategory.DayConvolutionUnit.rightUnitorCorepresentingIso + theorem CategoryTheory.MonoidalCategory.DayConvolutionUnit.rightUnitor_hom_unit_app + theorem CategoryTheory.MonoidalCategory.DayConvolutionUnit.rightUnitor_inv_app + theorem CategoryTheory.MonoidalCategory.DayConvolutionUnit.rightUnitor_naturality 2025-07-06 13:16:43 59bd63c refactor: make `Rel` less see-through (#25587) There is tension throughout the library between considering relations between `α` and `β` simply as `α → β → Prop`, or as a bundled object `Rel α β` with dedicated operations and API. The former approach is used almost everywhere as it is very lightweight and has arguably native support from core Lean features, but it cracks at the seams whenever one starts talking about operations on relations. For example: * composition of relations `R : α → β → Prop`, `S : β → γ → Prop` is the unwieldy `Relation.Comp R S := fun a c ↦ ∃ b, R a b ∧ S b c` * map of a relation `R : α → β → Prop`, under `f : α → γ`, `g : β → δ` is the monstruous `Relation.map R f g := fun c d ↦ ∃ a b, r a b ∧ f a = c ∧ g b = d`. The latter approach is embodied by the existing type `Rel α β`, with dedicated notation like `○` for composition. It makes it much easier to reason about operations relations, but currently its API suffers from the leakage of its definition as ``` def Rel (α β : Type*) := α → β → Prop ``` The fact that `Rel` isn't an `abbrev` confuses automation. But simply making it an `abbrev` would kill the point of having a separate less see-through type to perform relation operations on. A final point, and the original motivation for this refactor, is that uniform spaces need a theory of relations on a type `α` as elements of `Set (α × α)`. This cannot be worked around, since `Set (α × α)` is the type of elements of a filter on `α × α`. This theory is already developed in `Topology.UniformSpace.Defs`, and duplicates the existing `Rel` material. This PR is a proposal to refactor `Rel` to be less see-through by redefining it as ``` abbrev Rel (α β : Type*) := Set (α × β) ``` This has several advantages: * The use of `α × β` means that one can't abuse the defeq of `Rel α β` with the function type `α → β → Prop`. * Instead, we get to provide an explicit notation `a ~[R] b` that very closely follows the paper convention `a ~R b` of using relations as infixes. This notation is scoped to the `Rel` namespace. * The use of `Set` is an extra layer of indirection to avoid automation confusing `Rel α β` with `α × β → Prop`. * It can directly be used in the theory of uniform spaces because of the syntactic equality between `Rel α α` and `Set (α × α)`. * A relation can still be defined from an explicit function `α → β → Prop`, with nice notation: What was previously `fun a b ↦ R a b` becomes `{(a, b) | R a b}`. * In general, fallout is manageably small and easily fixed by inserting the `{(a, b) | R a b}` and `a ~[R] b` notations. The benefits can be seen in places like `CategoryTheory.Category.RelCat` where automation is significantly improved, or `Combinatorics.Hall.Basic` where defeq abuse is avoided and dot notation becomes available. [Zulip](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Uniform.20spaces.20and.20relations.20as.20sets) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Category/RelCat.lean +/- theorem CategoryTheory.RelCat.Hom.ext +/- theorem CategoryTheory.RelCat.Hom.rel_id_apply₂ Modified Mathlib/Combinatorics/Hall/Basic.lean Modified Mathlib/Combinatorics/SimpleGraph/Basic.lean Modified Mathlib/Combinatorics/SimpleGraph/Connectivity/Connected.lean Modified Mathlib/Combinatorics/SimpleGraph/Subgraph.lean +/- def SimpleGraph.Subgraph.support Modified Mathlib/Data/PFun.lean +/- def PFun.graph' +/- def PFun.preimage Modified Mathlib/Data/Rel.lean +/- def Function.graph +/- theorem Function.graph_comp - theorem Function.graph_def +/- theorem Function.graph_id + theorem Function.mem_graph + def Rel.cod + theorem Rel.cod_empty + theorem Rel.cod_inv + theorem Rel.cod_mono + theorem Rel.cod_univ - def Rel.codom - theorem Rel.codom_inv +/- def Rel.comp +/- theorem Rel.comp_assoc + theorem Rel.comp_empty + theorem Rel.comp_id - theorem Rel.comp_left_bot - theorem Rel.comp_left_id - theorem Rel.comp_left_top - theorem Rel.comp_right_bot - theorem Rel.comp_right_id - theorem Rel.comp_right_top + theorem Rel.comp_univ +/- def Rel.core +/- theorem Rel.core_comp +/- theorem Rel.core_id +/- theorem Rel.core_inter +/- theorem Rel.core_mono - theorem Rel.core_subset + theorem Rel.core_subset_core - theorem Rel.core_union + theorem Rel.core_union_subset +/- theorem Rel.core_univ +/- def Rel.dom + theorem Rel.dom_empty +/- theorem Rel.dom_inv +/- theorem Rel.dom_mono + theorem Rel.dom_univ + theorem Rel.empty_comp + theorem Rel.exists_graph_eq_iff - theorem Rel.ext + theorem Rel.id_comp +/- def Rel.image - theorem Rel.image_bot +/- theorem Rel.image_comp +/- theorem Rel.image_core_gc - theorem Rel.image_empty + theorem Rel.image_empty_left + theorem Rel.image_empty_right + theorem Rel.image_eq_cod_of_dom_subset - theorem Rel.image_eq_dom_of_codomain_subset +/- theorem Rel.image_id - theorem Rel.image_inter + theorem Rel.image_inter_dom - theorem Rel.image_inter_dom_eq + theorem Rel.image_inter_subset + theorem Rel.image_inv +/- theorem Rel.image_mono - theorem Rel.image_preimage_subset_inter_codom - theorem Rel.image_subset +/- theorem Rel.image_subset_iff + theorem Rel.image_subset_image - theorem Rel.image_top +/- theorem Rel.image_union - theorem Rel.image_univ + theorem Rel.image_univ_left + theorem Rel.image_univ_right + theorem Rel.inter_cod_subset_image_preimage +/- theorem Rel.inter_dom_subset_preimage_image +/- def Rel.inv - theorem Rel.inv_bot +/- theorem Rel.inv_comp - theorem Rel.inv_def + theorem Rel.inv_empty +/- theorem Rel.inv_id +/- theorem Rel.inv_inv + theorem Rel.inv_mono - theorem Rel.inv_top + theorem Rel.inv_univ + theorem Rel.mem_cod + theorem Rel.mem_comp +/- theorem Rel.mem_core + theorem Rel.mem_dom + theorem Rel.mem_id +/- theorem Rel.mem_image + theorem Rel.mem_inv +/- theorem Rel.mem_preimage +/- def Rel.preimage - theorem Rel.preimage_bot +/- theorem Rel.preimage_comp - theorem Rel.preimage_def - theorem Rel.preimage_empty + theorem Rel.preimage_empty_left + theorem Rel.preimage_empty_right - theorem Rel.preimage_eq_codom_of_domain_subset + theorem Rel.preimage_eq_dom_of_cod_subset +/- theorem Rel.preimage_id - theorem Rel.preimage_inter + theorem Rel.preimage_inter_cod - theorem Rel.preimage_inter_codom_eq + theorem Rel.preimage_inter_subset +/- theorem Rel.preimage_inv +/- theorem Rel.preimage_mono + theorem Rel.preimage_subset_preimage - theorem Rel.preimage_top +/- theorem Rel.preimage_union - theorem Rel.preimage_univ + theorem Rel.preimage_univ_left + theorem Rel.preimage_univ_right +/- def Rel.restrictDomain + theorem Rel.univ_comp - def Rel - theorem Relation.is_graph_iff Modified Mathlib/Order/Filter/Partial.lean Modified Mathlib/Order/JordanHolder.lean Modified Mathlib/Order/KrullDimension.lean Modified Mathlib/Order/Rel/GaloisConnection.lean +/- def Rel.leftDual +/- def Rel.rightDual Modified Mathlib/Order/RelSeries.lean + theorem Rel.IsWellFounded.inv_of_finiteDimensional + theorem Rel.IsWellFounded.of_finiteDimensional + theorem Rel.finiteDimensional_inv - theorem Rel.finiteDimensional_swap_iff + theorem Rel.infiniteDimensional_inv - theorem Rel.infiniteDimensional_swap_iff - theorem Rel.wellFounded_of_finiteDimensional - theorem Rel.wellFounded_swap_of_finiteDimensional +/- def RelSeries.append +/- theorem RelSeries.append_apply_left +/- theorem RelSeries.append_apply_right +/- theorem RelSeries.append_assoc +/- theorem RelSeries.append_cons +/- theorem RelSeries.append_singleton_left +/- def RelSeries.cons +/- theorem RelSeries.cons_cast_succ +/- def RelSeries.fromListChain' +/- theorem RelSeries.head_append +/- theorem RelSeries.head_cons +/- theorem RelSeries.head_fromListChain' +/- theorem RelSeries.head_map +/- theorem RelSeries.head_snoc +/- theorem RelSeries.last_append +/- theorem RelSeries.last_cons +/- theorem RelSeries.last_map +/- theorem RelSeries.last_snoc' +/- theorem RelSeries.last_snoc +/- theorem RelSeries.length_eq_zero +/- theorem RelSeries.length_ne_zero +/- theorem RelSeries.length_pos +/- def RelSeries.map +/- theorem RelSeries.map_apply +/- theorem RelSeries.mem_snoc +/- theorem RelSeries.rel_of_lt +/- theorem RelSeries.rel_or_eq_of_le +/- def RelSeries.reverse +/- def RelSeries.snoc +/- theorem RelSeries.snoc_castSucc +/- theorem RelSeries.snoc_cast_castSucc +/- theorem RelSeries.tail_cons +/- theorem RelSeries.toList_append +/- theorem RelSeries.toList_chain' +/- theorem RelSeries.toList_cons +/- theorem RelSeries.toList_fromListChain' +/- theorem RelSeries.toList_snoc Modified Mathlib/RingTheory/Ideal/AssociatedPrime/Finiteness.lean Modified Mathlib/RingTheory/Length.lean Modified Mathlib/RingTheory/Spectrum/Prime/LTSeries.lean 2025-07-06 12:48:10 117f640 refactor(Convex/Cone): streamline duality (#24149) Replace the three dual cones definitions we have: * `Set.innerDualCone : Set H → ConvexCone ℝ H` * `PointedCone.dual : PointedCone ℝ H → PointedCone ℝ H` * `ProperCone.dual : ProperCone ℝ H → ProperCone ℝ H` by three new ones: * `PointedCone.dual : Set M → PointedCone R N` for a bilinear pairing `p : M →ₗ[R] N →ₗ[R] R` * `ProperCone.dual : Set M → ProperCone R N` for a continuous perfect pairing `p : M →ₗ[R] N →ₗ[R] R` * `ProperCone.innerDual : Set H → ProperCone ℝ H` for an inner product space `H` Also generalise the cone hyperplane separation theorem from real inner product spaces to locally convex real vector spaces. ## Motivation The current library on cones is very centered around normed and Hilbert spaces. This is inconvenient for us in Toric where we have two spaces $M$, and $N$ that are non-canonically isomorphic to $ℝ^n$ (for the same $n$). Although we could identify $M$ and $N$ with $ℝ^n$ and get an inner product on $M = N = ℝ^n$ this way, we would lose the contravariance (resp. covariance) of $M$ (resp. $N$) in the group scheme that indexes them. We would instead like to have results that apply to perfect pairings $p : M → N → ℝ$ out of the box. Not all the theory can be generalised, of course. So, in terms of file structure, we need to draw the line somewhere. We propose to draw it at the import of `NormedAddCommGroup`, as this is the time where the scalars suddenly get fixed to the reals, instead of an arbitrary ordered ring. This line passes through individual files, which therefore need to be split. We operate this separation by moving the cone content that doesn't require a norm under a new folder `Geometry.Convex.Cone`. The content that does require it stays in `Analysis.Convex.Cone`. A similar operation could be performed for the rest of the `Analysis.Convex`, but it seems wiser to do so simultaneously with the convexity refactor. ## Previous changes performed as part of the refactor * Rename the variable `𝕜` to `R` when it is merely a ring * Split files according to normless normful parts * Complete the existing APIs * Redefine `ProperCone R M` as an `abbrev` for `ClosedSubmodule R≥0 M`, similarly to how `PointedCone R M` is an `abbrev` for `Submodule R≥0 M`. From Toric ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Analysis/Convex/Cone/Basic.lean Added Mathlib/Analysis/Convex/Cone/Dual.lean + theorem PointedCone.isClosed_dual + def ProperCone.dual + theorem ProperCone.dual_dual_flip + theorem ProperCone.dual_empty + theorem ProperCone.dual_flip_dual + theorem ProperCone.dual_iUnion + theorem ProperCone.dual_insert + theorem ProperCone.dual_le_dual + theorem ProperCone.dual_sUnion + theorem ProperCone.dual_singleton + theorem ProperCone.dual_union + theorem ProperCone.dual_univ + theorem ProperCone.dual_zero + theorem ProperCone.hyperplane_separation + theorem ProperCone.hyperplane_separation_point + theorem ProperCone.mem_dual + theorem ProperCone.subset_dual_dual Modified Mathlib/Analysis/Convex/Cone/InnerDual.lean - def PointedCone.dual - theorem PointedCone.mem_dual +/- theorem PointedCone.toConvexCone_dual +/- theorem ProperCone.coe_dual - def ProperCone.dual +/- theorem ProperCone.dual_dual + theorem ProperCone.hyperplane_separation' - theorem ProperCone.hyperplane_separation +/- theorem ProperCone.hyperplane_separation_of_notMem + def ProperCone.innerDual + theorem ProperCone.innerDual_empty + theorem ProperCone.innerDual_iUnion + theorem ProperCone.innerDual_innerDual + theorem ProperCone.innerDual_insert + theorem ProperCone.innerDual_le_innerDual + theorem ProperCone.innerDual_sUnion + theorem ProperCone.innerDual_singleton + theorem ProperCone.innerDual_union + theorem ProperCone.innerDual_univ + theorem ProperCone.innerDual_zero - theorem ProperCone.mem_dual + theorem ProperCone.mem_innerDual + theorem ProperCone.relative_hyperplane_separation Modified Mathlib/Analysis/InnerProductSpace/Dual.lean Added Mathlib/Geometry/Convex/Cone/Dual.lean + def PointedCone.dual + theorem PointedCone.dual_dual_flip_dual + theorem PointedCone.dual_empty + theorem PointedCone.dual_eq_iInter_dual_singleton + theorem PointedCone.dual_flip_dual_dual_flip + theorem PointedCone.dual_iUnion + theorem PointedCone.dual_insert + theorem PointedCone.dual_le_dual + theorem PointedCone.dual_sUnion + theorem PointedCone.dual_singleton + theorem PointedCone.dual_span + theorem PointedCone.dual_union + theorem PointedCone.dual_univ + theorem PointedCone.dual_zero + theorem PointedCone.mem_dual + theorem PointedCone.subset_dual_dual Modified Mathlib/Geometry/Convex/Cone/README.md 2025-07-06 09:09:43 51827e9 feat(GroupTheory/Subgroup/Center): added lemma `center_is_normal` (#26749) ESTIMATED CHANGES Modified Mathlib/GroupTheory/Subgroup/Center.lean 2025-07-06 09:09:42 ba88c3e feat(NumberField/CMField): All CM-extensions come from the real maximal subfield (#25818) Main result: if `K/F` is a CM-extension then `F` is isomorphic to the maximal real subfield of `K` ESTIMATED CHANGES Modified Mathlib/Algebra/Field/Subfield/Basic.lean + theorem RingHom.rangeRestrictFieldEquiv_apply_symm_apply Modified Mathlib/FieldTheory/IntermediateField/Adjoin/Basic.lean + theorem IntermediateField.bot_eq_top_iff_finrank_eq_one + theorem IntermediateField.isSimpleOrder_of_finrank_prime Modified Mathlib/FieldTheory/IntermediateField/Basic.lean + theorem IntermediateField.toSubalgebra_strictMono + theorem Subfield.coe_toIntermediateField + theorem Subfield.toIntermediateField_toSubfield Modified Mathlib/LinearAlgebra/Dimension/Finrank.lean + theorem Algebra.finrank_eq_of_equiv_equiv Modified Mathlib/NumberTheory/NumberField/CMField.lean + theorem NumberField.CMExtension.algebraMap_equivMaximalRealSubfield_symm_apply + theorem NumberField.CMExtension.eq_maximalRealSubfield + theorem NumberField.CMExtension.equivMaximalRealSubfield_apply + theorem NumberField.IsCMField.ofCMExtension 2025-07-06 08:48:28 2c5d23c feat(RingTheory): degree of rational function field extension (#26316) This PR continues the work from #22966. Original PR: https://github.com/leanprover-community/mathlib4/pull/22966 ESTIMATED CHANGES Modified Mathlib/RingTheory/AdjoinRoot.lean - theorem Polynomial.exists_dvd_map_of_isAlgebraic Modified Mathlib/RingTheory/Algebraic/Basic.lean +/- theorem IsAlgebraic.exists_nonzero_dvd +/- theorem IsAlgebraic.exists_nonzero_eq_adjoin_mul +/- theorem Subalgebra.inv_mem_of_algebraic +/- theorem Subalgebra.isAlgebraic_of_isAlgebraic_bot Modified Mathlib/RingTheory/Algebraic/Integral.lean + theorem Algebra.IsAlgebraic.finrank_of_isFractionRing + theorem Algebra.IsAlgebraic.isBaseChange_of_isFractionRing + theorem Algebra.IsAlgebraic.lift_rank_of_isFractionRing + theorem Algebra.IsAlgebraic.rank_fractionRing + theorem Algebra.IsAlgebraic.rank_fractionRing_mvPolynomial + theorem Algebra.IsAlgebraic.rank_fractionRing_polynomial + theorem Algebra.IsAlgebraic.rank_of_isFractionRing + theorem Algebra.IsPushout.isAlgebraic' + theorem Algebra.IsPushout.isAlgebraic + theorem IsAlgebraic.tmul + theorem MvPolynomial.exists_dvd_map_of_isAlgebraic + theorem Polynomial.exists_dvd_map_of_isAlgebraic + theorem rank_mvPolynomial_mvPolynomial + theorem rank_polynomial_polynomial Modified Mathlib/RingTheory/AlgebraicIndependent/AlgebraicClosure.lean Modified Mathlib/RingTheory/IntegralClosure/IsIntegralClosure/Basic.lean + theorem Algebra.IsPushout.isIntegral' + theorem Algebra.IsPushout.isIntegral Modified Mathlib/RingTheory/TensorProduct/Basic.lean + theorem Algebra.TensorProduct.right_algebraMap_apply 2025-07-06 06:00:56 3cc5460 feat: restriction of scalars for iterated Fréchet derivatives (#26353) Establish standard theorems on restriction of scalars for iterated Fréchet derivatives, comparing iterated derivatives with respect to a field `𝕜'` to iterated derivatives with respect to a subfield `𝕜 ⊆ 𝕜'`. The results are analogous to those found in `Mathlib.Analysis.Calculus.FDeriv.RestrictScalars`. This material is used in [Project VD](https://github.com/kebekus/ProjectVD), which aims to formalize Value Distribution Theory for meromorphic functions on the complex plane. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Analysis/Calculus/ContDiff/Defs.lean + theorem ContDiffAt.differentiableAt_iteratedFDeriv Added Mathlib/Analysis/Calculus/ContDiff/RestrictScalars.lean + theorem ContDiffAt.restrictScalars_iteratedFDeriv + theorem ContDiffAt.restrictScalars_iteratedFDeriv_eventuallyEq + theorem ContDiffWithinAt.restrictScalars_iteratedFDerivWithin_eventuallyEq + theorem fderivWithin_restrictScalars_comp Modified Mathlib/Analysis/Calculus/FDeriv/RestrictScalars.lean + theorem DifferentiableWithinAt.restrictScalars_fderivWithin 2025-07-06 01:51:24 0476a6f chore: golf Algebra/ using `congr` and `positivity` (#26800) ESTIMATED CHANGES Modified Mathlib/Algebra/Homology/ShortComplex/Exact.lean Modified Mathlib/Algebra/Order/Archimedean/Basic.lean 2025-07-06 01:51:23 d3c4dca chore: golf Algebra/ using `tauto` (#26797) ESTIMATED CHANGES Modified Mathlib/Algebra/Category/ModuleCat/Sheaf.lean Modified Mathlib/Algebra/Category/ModuleCat/Sheaf/PullbackContinuous.lean Modified Mathlib/Algebra/Group/Indicator.lean Modified Mathlib/Algebra/Homology/HomotopyCategory/Shift.lean Modified Mathlib/Algebra/Lie/TensorProduct.lean Modified Mathlib/Algebra/Lie/Weights/Linear.lean 2025-07-06 01:51:21 79e8f5f feat(Order): simp lemma for applying OrderIso.ofHomInv (#26788) ESTIMATED CHANGES Modified Mathlib/Order/Hom/Basic.lean + theorem OrderIso.ofHomInv_symm_apply 2025-07-06 01:51:20 8f8d0a6 feat(Geometry/Euclidean/MongePoint) add theorems about orthocenter and circumcenter (#26781) ESTIMATED CHANGES Modified Mathlib/Geometry/Euclidean/MongePoint.lean + theorem Affine.Simplex.smul_mongePoint_vsub_circumcenter_eq_sum_vsub + theorem Affine.Triangle.dist_circumcenter_reflection_orthocenter + theorem Affine.Triangle.dist_circumcenter_reflection_orthocenter_finset + theorem Affine.Triangle.orthocenter_vsub_circumcenter_eq_sum_vsub 2025-07-06 01:40:56 95143f7 chore(RingTheory/Valuation): Valution.Integers implies IsFractionRing (#26524) generalize `IsFractionRing v.integer K` to `IsFractionRing O K` when `v.Integers O K`. Since `IsFractionRing` is prop, one should have a prop-relationship between the valuation subring and base ring On the way, remove `IsDomain O` from the necessary TC arguments, since it is implied by `Valuation.Integers` ESTIMATED CHANGES Modified Mathlib/RingTheory/Valuation/ValuationRing.lean + theorem Valuation.Integers.isFractionRing +/- theorem ValuationRing.isFractionRing_iff +/- theorem ValuationRing.of_integers + theorem isFractionRing_of_exists_eq_algebraMap_or_inv_eq_algebraMap_of_injective 2025-07-06 01:28:08 76b39de chore(LinearAlgebra/Contraction): generalize to Commsemiring (#26802) No changes to the proofs are needed. ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/Contraction.lean 2025-07-05 22:44:31 4ed2ceb feat(Tactic/Positivity): extend EReal support for numeric casts (#26080) Extend `pos_of_isNat` and `nonneg_of_isNat` to cover monoids which are not necessarily semirings, like EReal. [Zulip discussion](https://leanprover.zulipchat.com/#narrow/channel/113488-general/topic/.22Missing.20Tactics.22.20list/near/519660424) ESTIMATED CHANGES Modified Mathlib/Tactic/Positivity/Core.lean + theorem Mathlib.Meta.Positivity.nonneg_of_isNat' + theorem Mathlib.Meta.Positivity.pos_of_isNat' Modified MathlibTest/positivity.lean 2025-07-05 22:35:30 3bcc451 chore(LinearAlgebra): remove workarounds for compilation performance issues (#26786) https://github.com/leanprover-community/mathlib4/issues/7103 is resolved by the new compiler, at least for everything in this PR. ESTIMATED CHANGES Modified Mathlib/Algebra/Category/ModuleCat/Monoidal/Basic.lean + def ModuleCat.MonoidalCategory.tensorLift Modified Mathlib/Algebra/Category/ModuleCat/Monoidal/Closed.lean Modified Mathlib/Algebra/Category/ModuleCat/Monoidal/Symmetric.lean Modified Mathlib/LinearAlgebra/CliffordAlgebra/BaseChange.lean + def CliffordAlgebra.equivBaseChange + def CliffordAlgebra.ofBaseChange + def CliffordAlgebra.ofBaseChangeAux + def CliffordAlgebra.toBaseChange Modified Mathlib/LinearAlgebra/QuadraticForm/QuadraticModuleCat/Monoidal.lean Modified Mathlib/LinearAlgebra/QuadraticForm/QuadraticModuleCat/Symmetric.lean Modified Mathlib/LinearAlgebra/QuadraticForm/TensorProduct.lean + def QuadraticForm.tensorDistrib + def QuadraticMap.tensorDistrib 2025-07-05 17:25:26 656089c feat: contMDiffOn_section_of_mem_baseSet (#26678) Smoothness of a section can be determined using any trivialisation, not just the preferred trivialisation at a point. Part of the path towards geodesics and the Levi-Civita connection. Co-authored by: @PatrickMassot ESTIMATED CHANGES Modified Mathlib/Geometry/Manifold/VectorBundle/Basic.lean + theorem Trivialization.contMDiffWithinAt_section + theorem contMDiffAt_section_of_mem_baseSet + theorem contMDiffOn_section_of_mem_baseSet + theorem contMDiffOn_section_of_mem_baseSet₀ 2025-07-05 17:25:24 ba1ca76 chore: clean up and remove FunProp/Differentiable (#26404) - one lemma in that file already exists, hence can be removed (We don't add a deprecation as I presume people will not have used it.) - move the three remaining lemmas in that file to their proper place, and use the now `fun_` naming convention (Omitting deprecations again.) - after this, `FunProp/Differentiable` is empty and need not be imported any more: add a module deprecation ESTIMATED CHANGES Modified Mathlib/Analysis/Calculus/FDeriv/Comp.lean + theorem Differentiable.fun_comp + theorem DifferentiableAt.fun_comp' + theorem DifferentiableOn.fun_comp Modified Mathlib/Tactic/FunProp/ContDiff.lean Modified Mathlib/Tactic/FunProp/Differentiable.lean - theorem Differentiable.comp' - theorem DifferentiableAt.comp' - theorem DifferentiableOn.comp' - theorem differentiableOn_id' Modified MathlibTest/fun_prop2.lean 2025-07-05 16:53:24 93595bf chore: rename continuous_iff_continuousOn_univ to continuousOn_univ (#26733) This matches e.g. contDiffOn_univ, contMDiffOn_univ and (m)differentiableOn_univ. Also flip the lemma and make it `@[simp]`. [Zulip discussion](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Naming.20convention/near/527033793) ESTIMATED CHANGES Modified Mathlib/Analysis/Analytic/Basic.lean Modified Mathlib/Analysis/Analytic/CPolynomialDef.lean Modified Mathlib/Analysis/CStarAlgebra/ApproximateUnit.lean Modified Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Continuity.lean Modified Mathlib/Analysis/Calculus/ContDiff/Defs.lean Modified Mathlib/Analysis/Calculus/ContDiff/FTaylorSeries.lean Modified Mathlib/Analysis/Convolution.lean Modified Mathlib/Analysis/Normed/Algebra/Exponential.lean Modified Mathlib/Analysis/Normed/Module/FiniteDimension.lean Modified Mathlib/Analysis/Normed/Operator/BoundedLinearMaps.lean Modified Mathlib/Analysis/NormedSpace/FunctionSeries.lean Modified Mathlib/Analysis/NormedSpace/HomeomorphBall.lean Modified Mathlib/Geometry/Manifold/ContMDiff/Defs.lean Modified Mathlib/Geometry/Manifold/ContMDiffMFDeriv.lean Modified Mathlib/Geometry/Manifold/MFDeriv/Basic.lean Modified Mathlib/Geometry/Manifold/VectorBundle/Tangent.lean Modified Mathlib/NumberTheory/NumberField/CanonicalEmbedding/NormLeOne.lean Modified Mathlib/Probability/Moments/MGFAnalytic.lean Modified Mathlib/Topology/Connected/Clopen.lean Modified Mathlib/Topology/ContinuousOn.lean + theorem continuousOn_univ - theorem continuous_iff_continuousOn_univ Modified Mathlib/Topology/Covering.lean Modified Mathlib/Topology/EMetricSpace/Lipschitz.lean Modified Mathlib/Topology/ExtendFrom.lean Modified Mathlib/Topology/Homeomorph/Lemmas.lean Modified Mathlib/Topology/Homotopy/Lifting.lean Modified Mathlib/Topology/Inseparable.lean Modified Mathlib/Topology/IsLocalHomeomorph.lean Modified Mathlib/Topology/LocallyFinite.lean Modified Mathlib/Topology/PartialHomeomorph.lean Modified Mathlib/Topology/Piecewise.lean Modified Mathlib/Topology/Semicontinuous.lean Modified Mathlib/Topology/UniformSpace/LocallyUniformConvergence.lean Modified Mathlib/Topology/UniformSpace/UniformApproximation.lean Modified Mathlib/Topology/VectorBundle/Hom.lean 2025-07-05 16:24:57 412d97e feat(Geometry/Euclidean/Projection): projection onto a 0-simplex (#26529) Add lemmas about `orthogonalProjectionSpan` onto a 0-simplex, specified either directly or as `faceOpposite` in a 1-simplex. ESTIMATED CHANGES Modified Mathlib/Geometry/Euclidean/Projection.lean + theorem Affine.Simplex.orthogonalProjectionSpan_eq_point + theorem Affine.Simplex.orthogonalProjectionSpan_faceOpposite_eq_point_rev 2025-07-05 16:16:19 58f56b3 fix: add `whnfR` in the code for the string diagram widget (#26748) Without this, the widget cannot see the expression after `have` line. The following example is reported on [#Infinity-Cosmos > Bicategory of enriched categories @ 💬](https://leanprover.zulipchat.com/#narrow/channel/455414-Infinity-Cosmos/topic/Bicategory.20of.20enriched.20categories/near/527192362) ``` example {C : Type} [Category C] [MonoidalCategory C] {D : Type} [Category D] [MonoidalCategory D] (F G : C ⥤ D) (α : F ⟶ G) {X Y : C} {Z : D} (h : α.app X = α.app X) : α.app X ⊗ₘ 𝟙 Z = α.app X ⊗ₘ 𝟙 Z := by have h' := h with_panel_widgets [Mathlib.Tactic.Widget.StringDiagram] sorry -- "No String Diagram." ``` ESTIMATED CHANGES Modified Mathlib/Tactic/Widget/StringDiagram.lean 2025-07-05 13:07:54 063d2e5 chore(Topology/LiminfLimsup): split out non-algebraic content from Topology/Algebra file (#26560) All the moved content had no algebraic material (in particular required no algebraic imports), so we move it out of Topology/Algebra. This increases discoverability and improves the global organisation of `Topology/`, and gives a net import decrease across mathlib. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Analysis/Asymptotics/Lemmas.lean Modified Mathlib/Analysis/Normed/Group/Ultra.lean Modified Mathlib/Analysis/Normed/Lp/lpSpace.lean Modified Mathlib/Analysis/Normed/Unbundled/SmoothingSeminorm.lean Modified Mathlib/MeasureTheory/Integral/BoundedContinuousFunction.lean Modified Mathlib/Order/Filter/ENNReal.lean Modified Mathlib/Topology/Algebra/Order/LiminfLimsup.lean - theorem Antitone.map_liminf_of_continuousAt - theorem Antitone.map_limsInf_of_continuousAt - theorem Antitone.map_limsSup_of_continuousAt - theorem Antitone.map_limsup_of_continuousAt - theorem Filter.Tendsto.bddAbove_range - theorem Filter.Tendsto.bddAbove_range_of_cofinite - theorem Filter.Tendsto.bddBelow_range - theorem Filter.Tendsto.bddBelow_range_of_cofinite - theorem Filter.Tendsto.isBoundedUnder_ge - theorem Filter.Tendsto.isBoundedUnder_le - theorem Filter.Tendsto.isCoboundedUnder_ge - theorem Filter.Tendsto.isCoboundedUnder_le - theorem Filter.Tendsto.liminf_eq - theorem Filter.Tendsto.limsup_eq - theorem Monotone.map_liminf_of_continuousAt - theorem Monotone.map_limsInf_of_continuousAt - theorem Monotone.map_limsSup_of_continuousAt - theorem Monotone.map_limsup_of_continuousAt - theorem eventually_le_limsup - theorem eventually_liminf_le - theorem isBounded_ge_nhds - theorem isBounded_le_nhds - theorem isCobounded_ge_nhds - theorem isCobounded_le_nhds - theorem le_nhds_of_limsSup_eq_limsInf - theorem liminf_eq_top - theorem limsInf_eq_of_le_nhds - theorem limsInf_nhds - theorem limsSup_eq_of_le_nhds - theorem limsSup_nhds - theorem limsup_eq_bot - theorem tendsto_of_le_liminf_of_limsup_le - theorem tendsto_of_liminf_eq_limsup - theorem tendsto_of_no_upcrossings Modified Mathlib/Topology/Instances/ENNReal/Lemmas.lean Added Mathlib/Topology/Order/LiminfLimsup.lean + theorem Antitone.map_liminf_of_continuousAt + theorem Antitone.map_limsInf_of_continuousAt + theorem Antitone.map_limsSup_of_continuousAt + theorem Antitone.map_limsup_of_continuousAt + theorem Filter.Tendsto.bddAbove_range + theorem Filter.Tendsto.bddAbove_range_of_cofinite + theorem Filter.Tendsto.bddBelow_range + theorem Filter.Tendsto.bddBelow_range_of_cofinite + theorem Filter.Tendsto.isBoundedUnder_ge + theorem Filter.Tendsto.isBoundedUnder_le + theorem Filter.Tendsto.isCoboundedUnder_ge + theorem Filter.Tendsto.isCoboundedUnder_le + theorem Filter.Tendsto.liminf_eq + theorem Filter.Tendsto.limsup_eq + theorem Monotone.map_liminf_of_continuousAt + theorem Monotone.map_limsInf_of_continuousAt + theorem Monotone.map_limsSup_of_continuousAt + theorem Monotone.map_limsup_of_continuousAt + theorem eventually_le_limsup + theorem eventually_liminf_le + theorem isBounded_ge_nhds + theorem isBounded_le_nhds + theorem isCobounded_ge_nhds + theorem isCobounded_le_nhds + theorem le_nhds_of_limsSup_eq_limsInf + theorem liminf_eq_top + theorem limsInf_eq_of_le_nhds + theorem limsInf_nhds + theorem limsSup_eq_of_le_nhds + theorem limsSup_nhds + theorem limsup_eq_bot + theorem tendsto_of_le_liminf_of_limsup_le + theorem tendsto_of_liminf_eq_limsup + theorem tendsto_of_no_upcrossings 2025-07-05 12:52:43 aff540e feat(CategoryTheory/Monoidal/Action): Action of monoidal opposites (#25860) Given a monoidal category `C` and a category `D`, we prove that a left (resp. right) `Cᴹᵒᵖ`-action on `D` gives a right (resp. left) `C`-action on `D`. Conversely, we show that left/right `C`-actions gives right/left `Cᴹᵒᵖ`-actions. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/CategoryTheory/Monoidal/Action/Basic.lean Added Mathlib/CategoryTheory/Monoidal/Action/Opposites.lean + def CategoryTheory.MonoidalCategory.MonoidalLeftAction.leftActionOfMonoidalOppositeRightAction + def CategoryTheory.MonoidalCategory.MonoidalLeftAction.monoidalOppositeLeftAction + theorem CategoryTheory.MonoidalCategory.MonoidalLeftAction.monoidalOppositeLeftAction_actionAssocIso_mop_mop + theorem CategoryTheory.MonoidalCategory.MonoidalLeftAction.monoidalOppositeLeftAction_actionHomLeft_mop + theorem CategoryTheory.MonoidalCategory.MonoidalLeftAction.monoidalOppositeLeftAction_actionHom_mop_mop + theorem CategoryTheory.MonoidalCategory.MonoidalLeftAction.monoidalOppositeLeftAction_actionObj_mop + theorem CategoryTheory.MonoidalCategory.MonoidalLeftAction.monoidalOppositeLeftAction_actionRight_mop + def CategoryTheory.MonoidalCategory.MonoidalRightAction.monoidalOppositeRightAction + theorem CategoryTheory.MonoidalCategory.MonoidalRightAction.monoidalOppositeRightAction_actionAssocIso_mop_mop + theorem CategoryTheory.MonoidalCategory.MonoidalRightAction.monoidalOppositeRightAction_actionHomRight_mop + theorem CategoryTheory.MonoidalCategory.MonoidalRightAction.monoidalOppositeRightAction_actionHom_mop_mop + theorem CategoryTheory.MonoidalCategory.MonoidalRightAction.monoidalOppositeRightAction_actionObj_mop + theorem CategoryTheory.MonoidalCategory.MonoidalRightAction.monoidalOppositeRightAction_actionRight_mop + def CategoryTheory.MonoidalCategory.MonoidalRightAction.rightActionOfMonoidalOppositeLeftAction 2025-07-05 12:52:41 f956f06 feat(CategoryTheory/Monoidal/DayConvolution): Associators and pentagon for Day Convolution (#25756) Under some assumptions on the tensor product of a monoidal category `V`, we show that if three functors `F, G, H` are such that the relevant Day convolutions exist, then there is an associator isomorphism for day convolution. We characterize this isomorphism, and show it is natural. When all relevant Day convolutions exist, we show that the pentagon identity holds for these associators. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Monoidal/DayConvolution.lean + def CategoryTheory.MonoidalCategory.DayConvolution.associator + def CategoryTheory.MonoidalCategory.DayConvolution.associatorCorepresentingIso + theorem CategoryTheory.MonoidalCategory.DayConvolution.associator_hom_unit_unit + theorem CategoryTheory.MonoidalCategory.DayConvolution.associator_inv_unit_unit + theorem CategoryTheory.MonoidalCategory.DayConvolution.associator_naturality + def CategoryTheory.MonoidalCategory.DayConvolution.corepresentableBy₂' + def CategoryTheory.MonoidalCategory.DayConvolution.corepresentableBy₂ + theorem CategoryTheory.MonoidalCategory.DayConvolution.pentagon 2025-07-05 12:03:04 9ed286c style: replace `HEq x y` with `x ≍ y` (#26775) The notation `≍` for `HEq` was introduced in leanprover/lean4#8503 and all instances of `HEq x y` in core and Batteries are replaced with `x ≍ y` in leanprover/lean4#8872 and leanprover-community/batteries#1298. This PR applies the same replacement in Mathlib. ESTIMATED CHANGES Modified Mathlib/AlgebraicTopology/FundamentalGroupoid/InducedMaps.lean Modified Mathlib/AlgebraicTopology/SimplicialSet/NerveAdjunction.lean Modified Mathlib/CategoryTheory/ConcreteCategory/Basic.lean Modified Mathlib/CategoryTheory/EqToHom.lean +/- theorem CategoryTheory.Functor.hcongr_hom +/- theorem CategoryTheory.Functor.precomp_map_heq +/- theorem CategoryTheory.eqToHom_heq_id_cod +/- theorem CategoryTheory.eqToHom_heq_id_dom Modified Mathlib/CategoryTheory/Functor/FullyFaithful.lean Modified Mathlib/CategoryTheory/GlueData.lean Modified Mathlib/Combinatorics/Enumerative/Composition.lean +/- theorem Composition.cast_heq Modified Mathlib/Combinatorics/Quiver/Arborescence.lean Modified Mathlib/Combinatorics/Quiver/Basic.lean Modified Mathlib/Combinatorics/Quiver/Cast.lean Modified Mathlib/Combinatorics/Quiver/Path.lean Modified Mathlib/Combinatorics/Quiver/Push.lean Modified Mathlib/Data/DFinsupp/Defs.lean Modified Mathlib/Data/EReal/Operations.lean Modified Mathlib/Data/Fin/Basic.lean Modified Mathlib/Data/Fin/Tuple/Basic.lean Modified Mathlib/Data/Finset/Image.lean Modified Mathlib/Data/Fintype/Card.lean +/- theorem Fin.val_eq_val_of_heq Modified Mathlib/Data/Fintype/Quotient.lean Modified Mathlib/Data/Holor.lean Modified Mathlib/Data/List/AList.lean Modified Mathlib/Data/Multiset/Bind.lean Modified Mathlib/Data/Multiset/MapFold.lean Modified Mathlib/Data/Multiset/Pi.lean Modified Mathlib/Data/Multiset/ZeroCons.lean Modified Mathlib/Data/PFunctor/Univariate/M.lean Modified Mathlib/Data/Quot.lean Modified Mathlib/Data/Sigma/Basic.lean Modified Mathlib/Data/Subtype.lean Modified Mathlib/Geometry/RingedSpace/Basic.lean Modified Mathlib/Geometry/RingedSpace/PresheafedSpace.lean +/- theorem AlgebraicGeometry.PresheafedSpace.hext Modified Mathlib/GroupTheory/Congruence/Defs.lean Modified Mathlib/Lean/Meta/CongrTheorems.lean Modified Mathlib/Logic/Basic.lean +/- theorem eq_cast_iff_heq +/- theorem heq_of_eq_cast Modified Mathlib/Logic/Equiv/Defs.lean +/- theorem Equiv.cast_eq_iff_heq Modified Mathlib/Logic/Function/Basic.lean Modified Mathlib/Logic/Unique.lean Modified Mathlib/MeasureTheory/MeasurableSpace/Embedding.lean Modified Mathlib/Order/RelIso/Basic.lean Modified Mathlib/Probability/Kernel/IonescuTulcea/Traj.lean Modified Mathlib/SetTheory/Game/Nim.lean - theorem SetTheory.PGame.moveLeft_nim_hEq + theorem SetTheory.PGame.moveLeft_nim_heq - theorem SetTheory.PGame.moveRight_nim_hEq + theorem SetTheory.PGame.moveRight_nim_heq Modified Mathlib/SetTheory/Game/Ordinal.lean Modified Mathlib/SetTheory/PGame/Algebra.lean Modified Mathlib/SetTheory/PGame/Basic.lean Modified Mathlib/Tactic/CC/Addition.lean Modified Mathlib/Tactic/CC/MkProof.lean Modified Mathlib/Tactic/CongrExclamation.lean Modified Mathlib/Tactic/CongrM.lean Modified Mathlib/Tactic/Subsingleton.lean Modified Mathlib/Tactic/TermCongr.lean Modified Mathlib/Topology/ContinuousMap/Sigma.lean Modified Mathlib/Topology/MetricSpace/GromovHausdorff.lean Modified MathlibTest/MkIffOfInductive.lean Modified MathlibTest/Subsingleton.lean Modified MathlibTest/TermCongr.lean Modified MathlibTest/cc.lean +/- def foo Modified MathlibTest/congr.lean +/- theorem ex14 +/- theorem ex8 Modified MathlibTest/congrm.lean Modified MathlibTest/convert.lean 2025-07-05 10:59:55 bfdf54e feat(Order/InitialSeg): `InitialSeg.exists_sum_relIso` (#26772) If `r ≼i s`, there exists some `t` with `Sum.Lex r t ≃r s`. In other words, ordinal subtraction exists. ESTIMATED CHANGES Modified Mathlib/Order/InitialSeg.lean + theorem InitialSeg.exists_sum_relIso - theorem wellFounded_iff_principalSeg.{u} + theorem wellFounded_iff_principalSeg Modified Mathlib/Order/RelIso/Basic.lean + def RelIso.emptySumLex + def RelIso.sumLexEmpty Modified Mathlib/SetTheory/Ordinal/Basic.lean 2025-07-05 10:42:30 cdf3643 feat: `F.obj M` is a commutative monoid object if `M` is (#25327) From Toric ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Monoidal/CommMon_.lean Modified Mathlib/CategoryTheory/Monoidal/Mon_.lean 2025-07-05 10:03:40 de46d23 Add the Mittag-Leffler expansion for cotangent (#26006) This PR continues the work from #25448. Original PR: https://github.com/leanprover-community/mathlib4/pull/25448 ESTIMATED CHANGES Modified Mathlib/Analysis/Complex/IntegerCompl.lean + theorem Complex.integerComplement_pow_two_ne_pow_two Modified Mathlib/Analysis/Complex/LocallyUniformLimit.lean +/- theorem Complex.logDeriv_tendsto Modified Mathlib/Analysis/SpecialFunctions/Log/Summable.lean - theorem Real.multipliable_one_add_of_summable Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Cotangent.lean + theorem HasProdLocallyUniformlyOn_euler_sin_prod + theorem HasProdUniformlyOn_sineTerm_prod_on_compact + theorem Summable_cotTerm + theorem cotTerm_identity + theorem cot_series_rep' + theorem cot_series_rep + theorem euler_sineTerm_tprod + theorem logDeriv_prod_sineTerm_eq_sum_cotTerm + theorem logDeriv_sin_div_eq_cot + theorem logDeriv_sineTerm_eq_cotTerm + theorem multipliableUniformlyOn_euler_sin_prod_on_compact + theorem multipliable_sineTerm + theorem sin_pi_z_ne_zero + theorem sineTerm_ne_zero + theorem tendsto_euler_sin_prod' + theorem tendsto_logDeriv_euler_cot_sub + theorem tendsto_logDeriv_euler_sin_div 2025-07-05 09:28:04 bc2bebd chore(Algebra/Small): move files to respective folders (#26780) Move `Algebra.Small.Group` to `Algebra.Group.Shrink`, `Algebra.Small.Ring` to `Algebra.Ring.Shrink`, `Algebra.Small.Module` to `Algebra.Module.Shrink`. The new names are better because being small is not a property that the algebra library is structured along, while talking about groups vs rings vs modules is. Split off #26732 for Eric's convenience. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Category/ModuleCat/AB.lean Modified Mathlib/Algebra/Category/ModuleCat/Projective.lean Modified Mathlib/Algebra/Category/MonCat/Limits.lean Renamed Mathlib/Algebra/Small/Group.lean to Mathlib/Algebra/Group/Shrink.lean Modified Mathlib/Algebra/Module/FinitePresentation.lean Renamed Mathlib/Algebra/Small/Module.lean to Mathlib/Algebra/Module/Shrink.lean Renamed Mathlib/Algebra/Small/Ring.lean to Mathlib/Algebra/Ring/Shrink.lean 2025-07-05 08:19:37 12bf709 refactor(CategoryTheory/Monoidal/Mod_): refactor `Mod_` using `MonoidalLeftAction` (#25762) Generalize the definition of `CategoryTheory.Monoidal.Mod_Class` and `CategoryTheory.Monoidal.Mod_` to modules in `D` over a monoid object in `C`, where `C` acts monoidally on `D`. At the same time, we refactor `Mod_` in a way similar to the one `Mon_` has been refactored in #24646. i.e we favor `Mod_Class` in the definition and `Mod_`, and introduce a Prop-class `IsMod_Hom` to define morphisms of modules. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Monoidal/Cartesian/Mod_.lean +/- def Mod_.trivialAction +/- def Mod_Class.trivialAction Modified Mathlib/CategoryTheory/Monoidal/Mod_.lean + def Mod_.Hom.mk'' + def Mod_.Hom.mk' +/- structure Mod_.Hom +/- theorem Mod_.assoc_flip +/- def Mod_.comap +/- def Mod_.comp +/- theorem Mod_.comp_hom' +/- def Mod_.forget +/- theorem Mod_.hom_ext +/- def Mod_.id +/- theorem Mod_.id_hom' - def Mod_.mk' +/- def Mod_.regular + def Mod_.scalarRestriction + theorem Mod_.scalarRestriction_hom +/- structure Mod_ +/- theorem Mod_Class.assoc_flip + theorem Mod_Class.ext + theorem Mod_Class.mul_smul + theorem Mod_Class.one_smul 2025-07-05 08:08:04 a112614 feat(CategoryTheory/Limits/Pullback/Categorical): categorical cospan transforms (#26412) This PR adds API for transformations of "categorical cospan transforms", i.e unbundled pseudonatural transformations of cospans of objects in the 2-category of categories. Although we cannot state it this way because we work with unbundled objects, these form a bicategory, and this encodes the data required to properly state bifunctoriality of the categorical pullback defined in #26366. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/CategoryTheory/CatCommSq.lean + def CategoryTheory.CatCommSq.hId + def CategoryTheory.CatCommSq.vId Added Mathlib/CategoryTheory/Limits/Shapes/Pullback/Categorical/CatCospanTransform.lean + def CategoryTheory.Limits.CatCospanTransform.associator + def CategoryTheory.Limits.CatCospanTransform.comp + theorem CategoryTheory.Limits.CatCospanTransform.hom_ext + def CategoryTheory.Limits.CatCospanTransform.id + def CategoryTheory.Limits.CatCospanTransform.leftUnitor + def CategoryTheory.Limits.CatCospanTransform.mkIso + def CategoryTheory.Limits.CatCospanTransform.rightUnitor + structure CategoryTheory.Limits.CatCospanTransform + theorem CategoryTheory.Limits.CatCospanTransformMorphism.left_coherence_app + theorem CategoryTheory.Limits.CatCospanTransformMorphism.right_coherence_app + def CategoryTheory.Limits.CatCospanTransformMorphism.whiskerLeft + def CategoryTheory.Limits.CatCospanTransformMorphism.whiskerRight + structure CategoryTheory.Limits.CatCospanTransformMorphism 2025-07-05 07:48:06 9a3e26e chore(Data/Nat/Factorization/Basic): minimize dependencies (#24330) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Order/Antidiag/Nat.lean Modified Mathlib/Data/Nat/Factorization/Basic.lean - theorem Nat.coprime_factorizationLCMLeft_factorizationLCMRight - theorem Nat.factorizationLCMLeft_dvd_left - theorem Nat.factorizationLCMLeft_mul_factorizationLCMRight - theorem Nat.factorizationLCMLeft_pos - theorem Nat.factorizationLCMLeft_zero_left - theorem Nat.factorizationLCMLeft_zero_right - theorem Nat.factorizationLCMRight_dvd_right - theorem Nat.factorizationLCMRight_pos - theorem Nat.factorizationLCMRight_zero_right - theorem Nat.factorizationLCRight_zero_left - theorem Nat.factorization_one_right - theorem Nat.ordProj_dvd_ordProj_iff_dvd Modified Mathlib/Data/Nat/Factorization/Defs.lean + theorem Nat.factorization_one_right + theorem Nat.ordProj_dvd_ordProj_iff_dvd Added Mathlib/Data/Nat/Factorization/LCM.lean + theorem Nat.coprime_factorizationLCMLeft_factorizationLCMRight + theorem Nat.factorizationLCMLeft_dvd_left + theorem Nat.factorizationLCMLeft_mul_factorizationLCMRight + theorem Nat.factorizationLCMLeft_pos + theorem Nat.factorizationLCMLeft_zero_left + theorem Nat.factorizationLCMLeft_zero_right + theorem Nat.factorizationLCMRight_dvd_right + theorem Nat.factorizationLCMRight_pos + theorem Nat.factorizationLCMRight_zero_right + theorem Nat.factorizationLCRight_zero_left Modified Mathlib/GroupTheory/Exponent.lean Modified Mathlib/NumberTheory/Cyclotomic/PrimitiveRoots.lean Modified Mathlib/RingTheory/RootsOfUnity/PrimitiveRoots.lean 2025-07-05 07:00:36 850f9cb chore(Algebra/Equiv/TransferInstance): split off group results (#26769) Move group results from `Algebra.Equiv.TransferInstance` to a new file `Algebra.Group.TransferInstance`. Additivise a few declarations along the way. This is the first part of #26732, split off for Eric's convenience. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Equiv/TransferInstance.lean - theorem Equiv.div_def - theorem Equiv.inv_def - def Equiv.mulEquiv - theorem Equiv.mulEquiv_apply - theorem Equiv.mulEquiv_symm_apply - theorem Equiv.mul_def - theorem Equiv.one_def - theorem Equiv.pow_def - theorem Equiv.smul_def - theorem Finite.exists_type_univ_nonempty_mulEquiv Modified Mathlib/Algebra/Group/AddChar.lean Added Mathlib/Algebra/Group/TransferInstance.lean + theorem Equiv.div_def + theorem Equiv.inv_def + def Equiv.mulEquiv + theorem Equiv.mulEquiv_apply + theorem Equiv.mulEquiv_symm_apply + theorem Equiv.mul_def + theorem Equiv.one_def + theorem Equiv.pow_def + theorem Equiv.smul_def + theorem Finite.exists_type_univ_nonempty_mulEquiv.{u, Modified Mathlib/Algebra/Homology/HomotopyCategory/HomComplex.lean Modified Mathlib/Algebra/Homology/HomotopyCategory/HomComplexShift.lean Modified Mathlib/CategoryTheory/Galois/Basic.lean Modified Mathlib/CategoryTheory/Galois/GaloisObjects.lean Modified Mathlib/CategoryTheory/Localization/CalculusOfFractions/Preadditive.lean Modified Mathlib/CategoryTheory/Preadditive/Opposite.lean Modified Mathlib/CategoryTheory/Preadditive/Transfer.lean Modified Mathlib/Data/Finsupp/MonomialOrder/DegLex.lean Modified Mathlib/Topology/Homotopy/HomotopyGroup.lean 2025-07-05 06:23:02 b102252 feat(WithZero): more lemmas about `exp` and `log` (#26761) These turned out useful in two separate PRs. ESTIMATED CHANGES Modified Mathlib/Algebra/GroupWithZero/WithZero.lean + theorem WithZero.exp_ne_zero Modified Mathlib/Algebra/Order/GroupWithZero/Canonical.lean + theorem WithZero.exp_lt_exp + theorem WithZero.exp_pos + theorem WithZero.le_exp_of_log_le +/- theorem WithZero.le_log_iff_exp_le + theorem WithZero.le_log_of_exp_le +/- theorem WithZero.log_le_iff_le_exp +/- theorem WithZero.log_le_log +/- theorem WithZero.log_lt_iff_lt_exp + theorem WithZero.log_lt_log + theorem WithZero.lt_exp_of_log_lt +/- theorem WithZero.lt_log_iff_exp_lt + theorem WithZero.lt_log_of_exp_lt + theorem WithZero.lt_mul_exp_iff_le 2025-07-05 05:16:18 84910ed feat(Algebra/Pi): add various `AlgEquiv`s and `RingEquiv`s (#24520) Add - `RingEquiv.sumArrowEquivProdArrow`: ring version of `Equiv.sumArrowEquivProdArrow`. - `AlgEquiv.sumArrowEquivProdArrow`: algebra version of `Equiv.sumArrowEquivProdArrow`. - `AlgEquiv.piCongrLeft'`: algebra version of `Equiv.piCongrLeft`. - `AlgEquiv.piCongrLeft`: algebra version of `Equiv.piCongrLeft`. - `AlgEquiv.funUnique`: algebra version of `Equiv.funUnique`. - `AlgEquiv.prodCongr`: algebra version of `Equiv.prodCongr`. The four last ones already have ring versions. ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/Pi.lean + def AlgEquiv.funUnique + theorem AlgEquiv.funUnique_apply + theorem AlgEquiv.funUnique_symm_apply + def AlgEquiv.piCongrLeft' + theorem AlgEquiv.piCongrLeft'_apply + theorem AlgEquiv.piCongrLeft'_symm_apply + def AlgEquiv.piCongrLeft + theorem AlgEquiv.piCongrLeft_apply + theorem AlgEquiv.piCongrLeft_symm_apply + def AlgEquiv.sumArrowEquivProdArrow + theorem AlgEquiv.sumArrowEquivProdArrow_apply + theorem AlgEquiv.sumArrowEquivProdArrow_symm_apply_inr Modified Mathlib/Algebra/Algebra/Prod.lean + def AlgEquiv.prodCongr + theorem AlgEquiv.prodCongr_apply + theorem AlgEquiv.prodCongr_symm_apply Modified Mathlib/Algebra/Ring/Equiv.lean + def RingEquiv.sumArrowEquivProdArrow + theorem RingEquiv.sumArrowEquivProdArrow_apply + theorem RingEquiv.sumArrowEquivProdArrow_symm_apply 2025-07-05 04:42:31 4a11bc2 chore(Algebra): remove `mid_assoc` from `IsMulCentral` (#24218) as it is a consequence of left and right associativity in the presence of commutativity. Also change the commutativity condition to use `Commute`. ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/NonUnitalSubalgebra.lean Modified Mathlib/Algebra/Group/Center.lean Modified Mathlib/Algebra/GroupWithZero/Center.lean Modified Mathlib/Algebra/Ring/Center.lean Modified Mathlib/Algebra/Ring/CentroidHom.lean Modified Mathlib/Algebra/Star/Center.lean Modified Mathlib/Algebra/Star/CentroidHom.lean Modified Mathlib/GroupTheory/Submonoid/Center.lean Modified Mathlib/LinearAlgebra/Basis/Submodule.lean Modified Mathlib/LinearAlgebra/QuadraticForm/Basic.lean Modified Mathlib/RingTheory/Idempotents.lean Modified Mathlib/RingTheory/NonUnitalSubsemiring/Basic.lean 2025-07-05 03:31:17 0d153f6 feat(Order): orderIso for degenerate Lex prod (#26773) ESTIMATED CHANGES Modified Mathlib/Order/Hom/Lex.lean + def Prod.Lex.prodUnique + theorem Prod.Lex.prodUnique_apply + def Prod.Lex.uniqueProd + theorem Prod.Lex.uniqueProd_apply 2025-07-05 03:31:16 34a6a03 feat(Order): StrictMono of UpperSet/LowerSet.Iic/Iio/Ici/Ioi (#26756) ESTIMATED CHANGES Modified Mathlib/Order/UpperLower/Principal.lean + theorem LowerSet.Iic_strictMono + theorem LowerSet.Iio_strictMono + theorem UpperSet.Ici_strictMono + theorem UpperSet.Ioi_strictMono 2025-07-05 03:31:14 fb02731 chore(Algebra/BigOperators): rename variables away from greek letters (#26521) Uniformise the variables to `ι`, `κ` for the indexing types, `M`, `N` for monoids, `G` for groups, `M₀` for monoids with zero, `R` for (semi)rings. Also delete a duplicated lemma which suddenly became problematic. ESTIMATED CHANGES Modified Mathlib/Algebra/BigOperators/Associated.lean +/- theorem Associates.exists_mem_multiset_le_of_prime +/- theorem Associates.finset_prod_mk +/- theorem Associates.prod_eq_one_iff +/- theorem Associates.prod_le_prod +/- theorem Associates.prod_mk +/- theorem Associates.rel_associated_iff_map_eq_map +/- theorem Finset.prod_primes_dvd +/- theorem Multiset.prod_ne_zero_of_prime +/- theorem Multiset.prod_primes_dvd +/- theorem Prime.dvd_finset_prod_iff +/- theorem Prime.dvd_finsuppProd_iff +/- theorem Prime.exists_mem_finset_dvd +/- theorem Prime.exists_mem_multiset_dvd +/- theorem Prime.exists_mem_multiset_map_dvd +/- theorem Prime.not_dvd_finset_prod +/- theorem Prime.not_dvd_finsuppProd +/- theorem divisor_closure_eq_closure +/- theorem exists_associated_mem_of_dvd_prod Modified Mathlib/Algebra/BigOperators/Fin.lean +/- def Fin.partialProd +/- theorem Fin.partialProd_succ' +/- theorem Fin.partialProd_succ +/- theorem Fin.partialProd_zero +/- theorem Fin.prod_univ_fun_getElem +/- theorem Fin.prod_univ_two' +/- theorem List.prod_ofFn +/- theorem List.prod_take_ofFn Modified Mathlib/Algebra/BigOperators/Finsupp/Basic.lean Modified Mathlib/Algebra/BigOperators/Group/Finset/Defs.lean +/- theorem Equiv.Perm.prod_comp' +/- theorem Equiv.Perm.prod_comp +/- theorem Equiv.prod_comp +/- theorem Finset.ite_one_prod +/- theorem Finset.ite_prod_one +/- theorem Finset.op_sum +/- theorem Finset.prod_attach_univ +/- theorem Finset.prod_coe_sort_eq_attach +/- theorem Finset.prod_const_one +/- theorem Finset.prod_dite_irrel +/- theorem Finset.prod_div_distrib +/- theorem Finset.prod_eq_multiset_prod +/- theorem Finset.prod_erase_attach +/- theorem Finset.prod_hom_rel +/- theorem Finset.prod_induction +/- theorem Finset.prod_induction_nonempty +/- theorem Finset.prod_int_mod +/- theorem Finset.prod_inv_distrib +/- theorem Finset.prod_ite_index +/- theorem Finset.prod_ite_irrel +/- theorem Finset.prod_map +/- theorem Finset.prod_map_toList +/- theorem Finset.prod_map_val +/- theorem Finset.prod_mem_multiset +/- theorem Finset.prod_mk +/- theorem Finset.prod_nat_mod +/- theorem Finset.prod_of_isEmpty +/- theorem Finset.prod_pow +/- theorem Finset.prod_range_zero +/- theorem Finset.prod_toList +/- theorem Finset.prod_val +/- theorem Finset.prod_zpow +/- theorem Finset.sum_filter_count_eq_countP +/- theorem Finset.sum_int_mod +/- theorem Finset.sum_multiset_singleton +/- theorem Finset.sum_nat_mod +/- theorem Finset.unop_sum +/- theorem Fintype.prod_bijective +/- theorem Fintype.prod_empty +/- theorem Fintype.prod_equiv +/- theorem Function.Bijective.prod_comp +/- theorem Multiset.count_sum' +/- theorem Multiset.disjoint_finset_sum_left +/- theorem Multiset.disjoint_finset_sum_right +/- theorem Multiset.toFinset_prod_dvd_prod +/- theorem Units.coe_prod +/- theorem map_prod +/- theorem ofAdd_list_prod +/- theorem ofAdd_multiset_prod +/- theorem ofAdd_sum +/- theorem ofMul_list_prod +/- theorem ofMul_multiset_prod +/- theorem ofMul_prod +/- theorem toAdd_list_sum +/- theorem toAdd_multiset_sum +/- theorem toAdd_prod +/- theorem toMul_list_sum +/- theorem toMul_multiset_sum +/- theorem toMul_sum Modified Mathlib/Algebra/BigOperators/Group/Finset/Lemmas.lean +/- theorem Finset.isSquare_prod +/- theorem Finset.mulSupport_prod +/- theorem MonoidHom.coe_finset_prod +/- theorem MonoidHom.finset_prod_apply Modified Mathlib/Algebra/BigOperators/Group/Finset/Piecewise.lean +/- theorem Finset.dvd_prod_of_mem +/- theorem Finset.prod_apply_dite +/- theorem Finset.prod_apply_ite +/- theorem Finset.prod_apply_ite_of_false +/- theorem Finset.prod_apply_ite_of_true +/- theorem Finset.prod_attach_eq_prod_dite +/- theorem Finset.prod_dite +/- theorem Finset.prod_dite_eq' +/- theorem Finset.prod_dite_eq +/- theorem Finset.prod_dite_of_false +/- theorem Finset.prod_dite_of_true +/- theorem Finset.prod_eq_mul_prod_diff_singleton +/- theorem Finset.prod_eq_prod_diff_singleton_mul +/- theorem Finset.prod_inter_mul_prod_diff +/- theorem Finset.prod_ite +/- theorem Finset.prod_ite_eq' +/- theorem Finset.prod_ite_eq +/- theorem Finset.prod_ite_eq_of_mem' +/- theorem Finset.prod_ite_eq_of_mem +/- theorem Finset.prod_ite_mem +/- theorem Finset.prod_ite_of_false +/- theorem Finset.prod_ite_of_true +/- theorem Finset.prod_ite_one +/- theorem Finset.prod_pi_mulSingle' +/- theorem Finset.prod_pi_mulSingle +/- theorem Finset.prod_piecewise +/- theorem Finset.prod_pow_boole +/- theorem Finset.prod_update_of_mem +/- theorem Finset.prod_update_of_notMem +/- theorem Fintype.prod_dite_eq' +/- theorem Fintype.prod_dite_eq +/- theorem Fintype.prod_eq_mul_prod_compl +/- theorem Fintype.prod_eq_prod_compl_mul +/- theorem Fintype.prod_ite_eq' +/- theorem Fintype.prod_ite_eq +/- theorem Fintype.prod_ite_mem +/- theorem Fintype.prod_pi_mulSingle' +/- theorem Fintype.prod_pi_mulSingle Modified Mathlib/Algebra/BigOperators/Group/List/Basic.lean +/- theorem List.alternatingProd_cons +/- theorem List.alternatingProd_cons_cons' +/- theorem List.alternatingProd_cons_cons +/- theorem List.alternatingProd_nil +/- theorem List.alternatingProd_singleton +/- theorem List.prod_map_mul Modified Mathlib/Algebra/BigOperators/Group/List/Lemmas.lean +/- theorem List.prod_isUnit_iff Modified Mathlib/Algebra/BigOperators/Group/Multiset/Basic.lean +/- theorem Multiset.coe_sumAddMonoidHom +/- theorem Multiset.fst_prod +/- theorem Multiset.prod_add +/- theorem Multiset.prod_dvd_prod_of_dvd +/- theorem Multiset.prod_eq_one +/- theorem Multiset.prod_eq_pow_single +/- theorem Multiset.prod_erase +/- theorem Multiset.prod_hom' +/- theorem Multiset.prod_hom +/- theorem Multiset.prod_hom_ne_zero +/- theorem Multiset.prod_hom₂ +/- theorem Multiset.prod_hom₂_ne_zero +/- theorem Multiset.prod_map_inv' +/- theorem Multiset.prod_map_prod_map +/- theorem Multiset.prod_nsmul +/- theorem Multiset.snd_prod +/- def Multiset.sumAddMonoidHom +/- theorem Multiset.sum_map_singleton +/- theorem Multiset.sum_map_tsub +/- theorem map_multiset_ne_zero_prod +/- theorem map_multiset_prod Modified Mathlib/Algebra/BigOperators/Group/Multiset/Defs.lean +/- theorem Multiset.pow_count +/- def Multiset.prod +/- theorem Multiset.prod_coe +/- theorem Multiset.prod_cons +/- theorem Multiset.prod_eq_foldl +/- theorem Multiset.prod_eq_foldr +/- theorem Multiset.prod_hom_rel +/- theorem Multiset.prod_induction +/- theorem Multiset.prod_induction_nonempty +/- theorem Multiset.prod_map_one +/- theorem Multiset.prod_pair +/- theorem Multiset.prod_replicate +/- theorem Multiset.prod_singleton +/- theorem Multiset.prod_toList +/- theorem Multiset.prod_zero Modified Mathlib/Algebra/BigOperators/GroupWithZero/Action.lean +/- theorem Finset.smul_prod' +/- theorem Finset.smul_prod_perm +/- theorem Finset.smul_sum +/- theorem List.smul_prod' +/- theorem List.smul_prod +/- theorem List.smul_sum +/- theorem Multiset.smul_prod' +/- theorem Multiset.smul_prod +/- theorem Multiset.smul_sum +/- theorem smul_finprod' +/- theorem smul_finprod_perm +/- theorem smul_finsum_mem Modified Mathlib/Algebra/BigOperators/Intervals.lean - theorem Finset.prod_eq_prod_Ico_succ_bot +/- theorem Finset.prod_range_div_prod_range Modified Mathlib/Algebra/BigOperators/Pi.lean +/- theorem Finset.prod_apply +/- theorem Finset.prod_fn +/- theorem Finset.univ_prod_mulSingle +/- theorem Fintype.prod_apply +/- theorem MonoidHom.functions_ext' +/- theorem MonoidHom.functions_ext +/- theorem Pi.list_prod_apply +/- theorem Pi.multiset_prod_apply +/- theorem RingHom.functions_ext +/- theorem prod_indicator +/- theorem prod_indicator_apply +/- theorem prod_indicator_const +/- theorem prod_indicator_const_apply +/- theorem prod_mk_prod Modified Mathlib/Algebra/BigOperators/Ring/Finset.lean +/- theorem Commute.sum_left +/- theorem Commute.sum_right +/- theorem Finset.mul_sum +/- theorem Finset.prod_add +/- theorem Finset.prod_add_one +/- theorem Finset.prod_add_ordered +/- theorem Finset.prod_add_prod_eq +/- theorem Finset.prod_natCast +/- theorem Finset.prod_neg +/- theorem Finset.prod_one_add +/- theorem Finset.prod_one_sub_ordered +/- theorem Finset.prod_sub +/- theorem Finset.prod_sub_ordered +/- theorem Finset.prod_sum +/- theorem Finset.prod_univ_sum +/- theorem Finset.sum_boole_mul +/- theorem Finset.sum_mul +/- theorem Finset.sum_mul_boole +/- theorem Finset.sum_mul_sum +/- theorem Finset.sum_pow' +/- theorem Finset.sum_pow_mul_eq_add_pow +/- theorem Finset.sum_prod_piFinset +/- theorem Finset.sum_range_succ_mul_sum_range_succ +/- theorem Fintype.prod_add +/- theorem Fintype.prod_sum +/- theorem Fintype.sum_mul_sum +/- theorem Fintype.sum_pow +/- theorem Fintype.sum_pow_mul_eq_add_pow +/- theorem Int.cast_list_prod +/- theorem Int.cast_list_sum +/- theorem Int.cast_multiset_sum +/- theorem Int.cast_prod +/- theorem Int.cast_sum +/- theorem Nat.cast_list_prod +/- theorem Nat.cast_list_sum +/- theorem Nat.cast_multiset_prod +/- theorem Nat.cast_multiset_sum +/- theorem Nat.cast_prod +/- theorem Nat.cast_sum Modified Mathlib/Algebra/BigOperators/Ring/Multiset.lean +/- theorem Commute.multiset_sum_left +/- theorem Commute.multiset_sum_right +/- theorem Multiset.prod_eq_zero +/- theorem Multiset.prod_eq_zero_iff +/- theorem Multiset.prod_map_add +/- theorem Multiset.prod_map_neg +/- theorem Multiset.prod_map_sum +/- theorem Multiset.prod_ne_zero Modified Mathlib/Algebra/BigOperators/Sym.lean +/- theorem Finset.sum_sym2_filter_not_isDiag Modified Mathlib/Algebra/BigOperators/WithTop.lean +/- theorem WithBot.bot_lt_prod +/- theorem WithBot.coe_sum +/- theorem WithTop.coe_sum +/- theorem WithTop.prod_lt_top Modified Mathlib/Data/Complex/Exponential.lean Modified Mathlib/FieldTheory/Finite/Polynomial.lean Modified Mathlib/LinearAlgebra/Matrix/Trace.lean Modified Mathlib/NumberTheory/LegendreSymbol/JacobiSymbol.lean Modified Mathlib/NumberTheory/SumPrimeReciprocals.lean 2025-07-05 02:43:34 ab509a4 chore(Data/Set/Image): move `BooleanAlgebra` material to `Order` (#26763) Eventually, all order properties should move out, but this is a good third step that will, among others, unblock #23177. ESTIMATED CHANGES Modified Mathlib/Data/Set/Card.lean Modified Mathlib/Data/Set/Insert.lean - theorem Set.compl_ne_eq_singleton - theorem Set.compl_singleton_eq - theorem Set.diff_insert_of_notMem - theorem Set.diff_singleton_eq_self - theorem Set.diff_singleton_ssubset - theorem Set.diff_singleton_subset_iff - theorem Set.insert_diff_insert - theorem Set.insert_diff_of_mem - theorem Set.insert_diff_of_notMem - theorem Set.insert_diff_self_of_mem - theorem Set.insert_diff_self_of_notMem - theorem Set.insert_diff_singleton - theorem Set.insert_diff_singleton_comm - theorem Set.insert_erase_invOn - theorem Set.mem_compl_singleton_iff - theorem Set.mem_diff_singleton - theorem Set.mem_diff_singleton_empty - theorem Set.nonempty_compl_of_nontrivial - theorem Set.pair_diff_left - theorem Set.pair_diff_right - theorem Set.ssubset_iff_sdiff_singleton - theorem Set.subset_compl_singleton_iff - theorem Set.subset_diff_singleton - theorem Set.subset_insert_diff_singleton - theorem Set.subset_insert_iff +/- theorem Set.subset_pair_iff_eq Modified Mathlib/Data/Set/Subsingleton.lean Modified Mathlib/Order/BooleanAlgebra/Set.lean + theorem Set.compl_ne_eq_singleton + theorem Set.compl_singleton_eq + theorem Set.diff_insert_of_notMem + theorem Set.diff_singleton_eq_self + theorem Set.diff_singleton_ssubset + theorem Set.diff_singleton_subset_iff + theorem Set.insert_diff_insert + theorem Set.insert_diff_of_mem + theorem Set.insert_diff_of_notMem + theorem Set.insert_diff_self_of_mem + theorem Set.insert_diff_self_of_notMem + theorem Set.insert_diff_singleton + theorem Set.insert_diff_singleton_comm + theorem Set.insert_erase_invOn + theorem Set.mem_compl_singleton_iff + theorem Set.mem_diff_singleton + theorem Set.mem_diff_singleton_empty + theorem Set.nonempty_compl_of_nontrivial + theorem Set.pair_diff_left + theorem Set.pair_diff_right + theorem Set.ssubset_iff_sdiff_singleton + theorem Set.subset_compl_singleton_iff + theorem Set.subset_diff_singleton + theorem Set.subset_insert_diff_singleton + theorem Set.subset_insert_iff Modified Mathlib/Order/Filter/Defs.lean Modified Mathlib/Order/Interval/Set/Basic.lean 2025-07-05 02:43:32 ab65d46 doc(Data/Nat/Modeq): fix a couple of doc comment issues (#26750) * `nat` is now spelled `Nat`. * Defining `a ≡ b [MOD n]` to mean "`a - b` is a multiple of `n`" does not make sense for the Lean naturals, which have saturating subtraction. Consider (a,b,n) = (1, 2, 3). (This comment was added in https://github.com/leanprover-community/mathlib3/commit/1dddcf69ecd7edfa3c9ebc4faf0723df8ff128ca) ESTIMATED CHANGES Modified Mathlib/Data/Nat/ModEq.lean 2025-07-05 02:43:31 cca0ea3 fix (Data/Matrix/Rank): extend applicability of rank_submatrix_le (#26536) The current version of `rank_submatrix_le` is restricted to square matrices and doesn't allow for the reduction of lines. Both restrictions can be removed easily without changing the proof. ESTIMATED CHANGES Modified Mathlib/Data/Matrix/Rank.lean +/- theorem Matrix.rank_submatrix_le 2025-07-05 02:33:05 bd41ce3 chore: homology docstring grammar/typos (#26768) ESTIMATED CHANGES Modified Mathlib/Algebra/Homology/Embedding/RestrictionHomology.lean Modified Mathlib/Algebra/Homology/ShortComplex/RightHomology.lean 2025-07-05 01:29:52 0f3d462 feat(LinearAlgebra/AffineSpace/Independent): `faceOpposite` point in 1-simplex (#26527) Add a lemma about the point of `faceOpposite` applied to a 1-simplex. ```lean lemma faceOpposite_point_eq_point_rev (s : Simplex k P 1) (i : Fin 2) (n : Fin 1) : (s.faceOpposite i).points n = s.points i.rev := by ``` ESTIMATED CHANGES Modified Mathlib/Data/Finset/Sort.lean + theorem Finset.orderEmbOfFin_compl_singleton + theorem Finset.orderEmbOfFin_compl_singleton_apply + theorem Finset.orderEmbOfFin_compl_singleton_eq_succAboveOrderEmb Modified Mathlib/LinearAlgebra/AffineSpace/Independent.lean + theorem Affine.Simplex.faceOpposite_point_eq_point_one + theorem Affine.Simplex.faceOpposite_point_eq_point_rev + theorem Affine.Simplex.faceOpposite_point_eq_point_succAbove + theorem Affine.Simplex.faceOpposite_point_eq_point_zero 2025-07-05 00:19:40 e8ef7e1 feat(RingTheory/ValuativeRel): additional API to prepare for refactor (#26712) some helper lemmas that will be used in downstream refactor of Valued PRs ESTIMATED CHANGES Modified Mathlib/RingTheory/Valuation/ValuativeRel.lean + theorem Valuation.Compatible.ofValuation + theorem ValuativeRel.ValueGroupWithZero.lift_mul + theorem ValuativeRel.ValueGroupWithZero.lift_one + theorem ValuativeRel.ValueGroupWithZero.lift_valuation + theorem ValuativeRel.ValueGroupWithZero.lift_zero + theorem ValuativeRel.ValueGroupWithZero.mk_lt_mk 2025-07-04 23:38:07 cdc3f00 chore(Fin): replace `cast_add` → `castAdd`, `nat_add` → `natAdd` in lemma names (#26764) This was mis-ported, the lemma names should match `Fin.castAdd` and `Fin.natAdd`. ESTIMATED CHANGES Modified Mathlib/Data/Fin/Tuple/Basic.lean + theorem Fin.snoc_castAdd - theorem Fin.snoc_cast_add + theorem Fin.snoc_comp_castAdd - theorem Fin.snoc_comp_cast_add + theorem Fin.snoc_comp_natAdd - theorem Fin.snoc_comp_nat_add 2025-07-04 21:33:00 0faf9c7 feat: linear order is isomorphic to lexicographic sum of two intervals (#26613) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Order/Hom/Lex.lean + def OrderIso.sumLexIicIoi + theorem OrderIso.sumLexIicIoi_apply_inl + theorem OrderIso.sumLexIicIoi_apply_inr + theorem OrderIso.sumLexIicIoi_symm_apply_Iic + theorem OrderIso.sumLexIicIoi_symm_apply_Ioi + theorem OrderIso.sumLexIicIoi_symm_apply_of_le + theorem OrderIso.sumLexIicIoi_symm_apply_of_lt + def OrderIso.sumLexIioIci + theorem OrderIso.sumLexIioIci_apply_inl + theorem OrderIso.sumLexIioIci_apply_inr + theorem OrderIso.sumLexIioIci_symm_apply_Ici + theorem OrderIso.sumLexIioIci_symm_apply_Iio + theorem OrderIso.sumLexIioIci_symm_apply_of_ge + theorem OrderIso.sumLexIioIci_symm_apply_of_lt + def RelIso.sumLexComplLeft + theorem RelIso.sumLexComplLeft_apply + theorem RelIso.sumLexComplLeft_symm_apply + def RelIso.sumLexComplRight + theorem RelIso.sumLexComplRight_apply + theorem RelIso.sumLexComplRight_symm_apply Modified Mathlib/Order/Hom/Set.lean 2025-07-04 20:53:06 4dca366 chore: remove `noncomputable` from Set/Finset Monoid instances (#26755) ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Pointwise/Finset/Basic.lean + def Finset.coeMonoidHom Modified Mathlib/Algebra/Group/Pointwise/Set/Basic.lean + def Set.singletonMonoidHom + def Set.singletonMulHom + def Set.singletonOneHom 2025-07-04 20:03:30 2aea8b5 feat: smooth Riemannian bundles (#26506) Given a vector bundle over a manifold whose fibers are all endowed with a scalar product, we say that this bundle is Riemannian if the scalar product depends smoothly on the base point. We introduce a typeclass `[IsContMDiffRiemannianBundle IB n F E]` registering this property. Under this assumption, we show that the scalar product of two smooth maps into the same fibers of the bundle is a smooth function. If the fibers of a bundle `E` have a preexisting topology (like the tangent bundle), one can not assume additionally `[∀ b, InnerProductSpace ℝ (E b)]` as this would create diamonds. Instead, use `[RiemannianBundle E]`, which endows the fibers with a scalar product while ensuring that there is no diamond. We provide a constructor for `[RiemannianBundle E]` from a smooth family of metrics, which registers automatically `[IsContMDiffRiemannianBundle IB n F E]` ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Geometry/Manifold/VectorBundle/Riemannian.lean + def Bundle.ContMDiffRiemannianMetric.toContinuousRiemannianMetric + def Bundle.ContMDiffRiemannianMetric.toRiemannianMetric + structure Bundle.ContMDiffRiemannianMetric + theorem ContMDiff.inner_bundle + theorem ContMDiffAt.inner_bundle + theorem ContMDiffOn.inner_bundle + theorem ContMDiffWithinAt.inner_bundle + theorem IsContMDiffRiemannianBundle.of_le 2025-07-04 19:53:51 b3ea1cc feat: more properties of the manifold structure on `Icc` (#26500) The manifold structure on real intervals is defined in `Mathlib.Geometry.Manifold.Instances.Real`. We relate it to the manifold structure on the real line, by showing that the inclusion and projection are smooth, and showing that a function defined on the interval is smooth iff its composition with the projection is smooth on the interval in `ℝ`. We also define `1 : TangentSpace (𝓡∂ 1) z`, and relate it to `1` in the real line. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Geometry/Manifold/Instances/Icc.lean + theorem contMDiffOn_comp_projIcc_iff + theorem contMDiffOn_projIcc + theorem contMDiffWithinAt_comp_projIcc_iff + theorem contMDiff_subtype_coe_Icc + theorem mdifferentiableWithinAt_comp_projIcc_iff + theorem mfderivWithin_comp_projIcc_one + theorem mfderivWithin_projIcc_one + theorem mfderiv_subtype_coe_Icc_one Modified Mathlib/Topology/Order/ProjIcc.lean 2025-07-04 16:39:17 0a9a9de feat(GroupTheory/ArchimedeanDensely): finset.univ of Int AddEquiv is refl or neg (#26741) Follow-up to #24582 ESTIMATED CHANGES Modified Mathlib/GroupTheory/ArchimedeanDensely.lean + theorem Int.card_fintype_addEquiv + theorem Int.univ_addEquiv 2025-07-04 16:21:40 eb796a2 feat: `contMDiffOn_iUnion_iff_of_isOpen` (#26673) A function is `C^n` on a union of open sets iff it is continuous on each individual set. The `ContinuousOn` analogue of this is proven in #26672. Part of the path towards the geodesics and the Levi-Civita connection. ESTIMATED CHANGES Modified Mathlib/Geometry/Manifold/ContMDiff/Basic.lean + theorem ContMDiffOn.iUnion_of_isOpen + theorem ContMDiffOn.union_of_isOpen + theorem contMDiffOn_iUnion_iff_of_isOpen + theorem contMDiffOn_union_iff_of_isOpen + theorem contMDiff_of_contMDiffOn_iUnion_of_isOpen + theorem contMDiff_of_contMDiffOn_union_of_isOpen 2025-07-04 16:21:39 2cea46d feat: more API on manifolds (#26501) ESTIMATED CHANGES Modified Mathlib/Geometry/Manifold/IsManifold/Basic.lean Modified Mathlib/Geometry/Manifold/IsManifold/ExtChartAt.lean + theorem PartialHomeomorph.extend_preimage_mem_nhds_of_mem_nhdsWithin + theorem extChartAt_preimage_mem_nhds_of_mem_nhdsWithin Modified Mathlib/Geometry/Manifold/MFDeriv/Atlas.lean + theorem TangentBundle.continuousLinearMapAt_trivializationAt + theorem TangentBundle.symmL_trivializationAt Modified Mathlib/Geometry/Manifold/VectorBundle/Tangent.lean + theorem TangentBundle.continuousLinearMapAt_trivializationAt_eq_core + theorem TangentBundle.symmL_trivializationAt_eq_core - theorem TangentBundle.trivializationAt_continuousLinearMapAt - theorem TangentBundle.trivializationAt_symmL 2025-07-04 16:11:18 26ee342 feat: missing congruence lemmas for mdifferentiability (#26709) Each of these lemmas has a ContMDiff analogue, this is how this PR was made. From the path towards geodesics and the Levi-Civita connection. ESTIMATED CHANGES Modified Mathlib/Geometry/Manifold/MFDeriv/Basic.lean + theorem Filter.EventuallyEq.mdifferentiableAt_iff + theorem Filter.EventuallyEq.mdifferentiablefWithinAt_iff + theorem MDifferentiableOn.congr + theorem MDifferentiableWithinAt.congr_of_mem + theorem mdifferentiableOn_congr + theorem mdifferentiableWithinAt_congr + theorem mdifferentiableWithinAt_congr_of_mem 2025-07-04 15:57:16 c6f4e12 chore: remove unnecessary `noncomputable` attribute (#26747) This is no longer necessary after updating to 4.22 with the new compiler. The other remaining `noncomputable` from the same adaptation note on Finset.addMonoid is still required, because that definition applies Injective.addMonoid to the noncomputable Set.addMonoid. ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Action/Pointwise/Finset.lean 2025-07-04 15:43:55 241db1e chore: remove unnecessary `noncomputable` attributes after 4.22.0 rc3 (#26751) These were likely all fixed due to leanprover/lean4#8691. ESTIMATED CHANGES Modified Mathlib/AlgebraicGeometry/IdealSheaf/Basic.lean + def AlgebraicGeometry.Scheme.kerFunctor Modified Mathlib/AlgebraicGeometry/Morphisms/Etale.lean + def AlgebraicGeometry.Scheme.Etale.forget + def AlgebraicGeometry.Scheme.Etale.forgetFullyFaithful Modified Mathlib/NumberTheory/LSeries/Nonvanishing.lean + def DirichletCharacter.zetaMul Modified Mathlib/Probability/ProbabilityMassFunction/Binomial.lean + def PMF.binomial Modified Mathlib/Topology/ContinuousMap/Bounded/Basic.lean 2025-07-04 15:22:26 cd99652 chore: change some `(K : Type)` to `(K : Type*)` (#26745) Change some `(K : Type)` to `(K : Type*)`. ESTIMATED CHANGES Modified Mathlib/Algebra/Polynomial/PartialFractions.lean Modified Mathlib/RingTheory/IntegralDomain.lean 2025-07-04 15:22:25 e47cd9b feat: monotonicity of `lineMap` (#26502) Also remove one assumption in `differentiableOn_integral_of_continuous`, and expand docstrings around this theorem. ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/AffineSpace/AffineMap.lean + theorem AffineMap.lineMap_anti + theorem AffineMap.lineMap_mono Modified Mathlib/MeasureTheory/Integral/IntervalIntegral/FundThmCalculus.lean +/- theorem intervalIntegral.differentiableOn_integral_of_continuous + theorem intervalIntegral.differentiable_integral_of_continuous Modified Mathlib/MeasureTheory/Integral/IntervalIntegral/IntegrationByParts.lean Modified Mathlib/Topology/Algebra/ContinuousAffineMap.lean + theorem ContinuousAffineMap.coe_lineMap_eq 2025-07-04 14:26:55 fe09564 chore(Finset/Card): cleanup section and improve documentation (#26373) - Use the `Set.MapsTo` spelling (and similar) where possible, for consistency throughout mathlib - Improve documentation on some lemmas ("reorder" has little meaning on finsets, which are inherently unordered) - Add documentation to other lemmas ESTIMATED CHANGES Modified Archive/Imo/Imo2024Q3.lean Modified Mathlib/Combinatorics/Additive/Energy.lean Modified Mathlib/Combinatorics/Additive/PluenneckeRuzsa.lean Modified Mathlib/Combinatorics/Additive/VerySmallDoubling.lean Modified Mathlib/Combinatorics/SimpleGraph/Triangle/Counting.lean Modified Mathlib/Data/Finset/Card.lean +/- theorem Finset.card_le_card_of_injOn +/- theorem Finset.card_nbij' +/- theorem Finset.card_nbij +/- theorem Finset.exists_ne_map_eq_of_card_lt_of_maps_to + theorem Set.BijOn.finsetCard_eq Modified Mathlib/Data/Finset/Preimage.lean Modified Mathlib/Data/Setoid/Partition/Card.lean Modified Mathlib/NumberTheory/LegendreSymbol/GaussEisensteinLemmas.lean Modified Mathlib/NumberTheory/MaricaSchoenheim.lean Modified Mathlib/RingTheory/IntegralDomain.lean 2025-07-04 13:59:19 d4e8b3d chore: replace `refine` with `exact` (follow-up to #26622) (#26728) As suggested by @mattrobball in https://github.com/leanprover-community/mathlib4/pull/26622#discussion_r2179808787. ESTIMATED CHANGES Modified Mathlib/Data/List/Permutation.lean 2025-07-04 12:40:27 a03ab30 chore: whitespace fixes (#26737) Found by #26706. ESTIMATED CHANGES Modified Mathlib/Algebra/Notation.lean Modified Mathlib/Analysis/Calculus/VectorField.lean Modified Mathlib/Analysis/Complex/IntegerCompl.lean Modified Mathlib/Probability/CondVar.lean +/- theorem ProbabilityTheory.setIntegral_condVar Modified Mathlib/Topology/ContinuousOn.lean +/- theorem continuousOn_iUnion_iff_of_isOpen 2025-07-04 11:10:51 b14057e feat(CategoryTheory/Monoidal/ExternalProduct): external product of pointwise left Kan extensions of functors (#25754) Given a functor `H' : D' ⥤ V` to a monoidal category that is a pointwise left Kan along `L : D ⥤ D'`, we show that for a functor `K : E ⥤ V` and under suitable preservations of colimits by the tensor product of `V`, the functor `H' ⊠ K : D' × E ⥤ V` is a pointwise left Kan extension along `L.prod (𝟭 E)`. We show a similar statement for the functor `K ⊠ H'`. This property is crucial for proving properties of Day convolutions of functors from a monoidal category to `V`. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/CategoryTheory/Monoidal/DayConvolution.lean Modified Mathlib/CategoryTheory/Monoidal/ExternalProduct.lean - def CategoryTheory.MonoidalCategory.externalProductBifunctor - def CategoryTheory.MonoidalCategory.externalProductBifunctorCurried - def CategoryTheory.MonoidalCategory.externalProductCompDiagIso - def CategoryTheory.MonoidalCategory.externalProductFlip - def CategoryTheory.MonoidalCategory.externalProductSwap - def CategoryTheory.MonoidalCategory.prodCompExternalProduct Added Mathlib/CategoryTheory/Monoidal/ExternalProduct/Basic.lean + def CategoryTheory.MonoidalCategory.externalProductBifunctor + def CategoryTheory.MonoidalCategory.externalProductBifunctorCurried + def CategoryTheory.MonoidalCategory.externalProductCompDiagIso + def CategoryTheory.MonoidalCategory.externalProductFlip + def CategoryTheory.MonoidalCategory.externalProductSwap + def CategoryTheory.MonoidalCategory.prodCompExternalProduct Added Mathlib/CategoryTheory/Monoidal/ExternalProduct/KanExtension.lean + def CategoryTheory.MonoidalCategory.ExternalProduct.isPointwiseLeftKanExtensionAtExtensionUnitLeft + def CategoryTheory.MonoidalCategory.ExternalProduct.isPointwiseLeftKanExtensionAtExtensionUnitRight + def CategoryTheory.MonoidalCategory.ExternalProduct.isPointwiseLeftKanExtensionExtensionUnitLeft + def CategoryTheory.MonoidalCategory.ExternalProduct.isPointwiseLeftKanExtensionExtensionUnitRight 2025-07-04 10:05:34 c14c446 chore: whitespace before `:` (#26727) Found by #26718. ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/Subalgebra/Directed.lean Modified Mathlib/Algebra/BrauerGroup/Defs.lean - def Brauer.CSA_Setoid: + def Brauer.CSA_Setoid Modified Mathlib/Algebra/DirectSum/Idempotents.lean +/- theorem DirectSum.completeOrthogonalIdempotents_idempotent Modified Mathlib/Algebra/Group/Subgroup/Map.lean +/- theorem Subgroup.map_toSubmonoid Modified Mathlib/Algebra/Homology/DerivedCategory/Ext/Basic.lean Modified Mathlib/Algebra/Lie/Nilpotent.lean - theorem LieSubmodule.lowerCentralSeries_eq_bot_iff_lcs_eq_bot: + theorem LieSubmodule.lowerCentralSeries_eq_bot_iff_lcs_eq_bot Modified Mathlib/Algebra/Module/Submodule/Ker.lean Modified Mathlib/Algebra/Module/ZLattice/Covolume.lean Modified Mathlib/Algebra/Order/Ring/Unbundled/Basic.lean Modified Mathlib/Algebra/Ring/Semireal/Defs.lean +/- theorem IsSemireal.not_isSumSq_neg_one Modified Mathlib/Algebra/SkewMonoidAlgebra/Basic.lean Modified Mathlib/AlgebraicGeometry/Modules/Tilde.lean Modified Mathlib/Analysis/Calculus/ContDiff/Defs.lean +/- theorem Filter.EventuallyEq.congr_contDiffWithinAt_of_mem Modified Mathlib/Analysis/Calculus/LogDeriv.lean +/- theorem logDeriv_const_mul +/- theorem logDeriv_mul_const Modified Mathlib/Analysis/Complex/Positivity.lean Modified Mathlib/Analysis/InnerProductSpace/JointEigenspace.lean Modified Mathlib/Analysis/Normed/Lp/WithLp.lean +/- theorem WithLp.equiv_symm_neg Modified Mathlib/Analysis/NormedSpace/HahnBanach/Separation.lean Modified Mathlib/Analysis/SpecialFunctions/ImproperIntegrals.lean +/- theorem integrableOn_Ioi_deriv_norm_ofReal_cpow Modified Mathlib/CategoryTheory/Abelian/GrothendieckCategory/EnoughInjectives.lean Modified Mathlib/CategoryTheory/Join/Basic.lean - def CategoryTheory.Join.inclLeftFullyFaithful: + def CategoryTheory.Join.inclLeftFullyFaithful - def CategoryTheory.Join.inclRightFullyFaithful: + def CategoryTheory.Join.inclRightFullyFaithful Modified Mathlib/CategoryTheory/Monoidal/End.lean +/- theorem CategoryTheory.left_unitality_app +/- theorem CategoryTheory.obj_ε_app +/- theorem CategoryTheory.obj_μ_zero_app +/- theorem CategoryTheory.δ_naturality +/- theorem CategoryTheory.δ_naturalityᵣ +/- theorem CategoryTheory.η_naturality +/- theorem CategoryTheory.μ_naturalityₗ Modified Mathlib/CategoryTheory/MorphismProperty/Descent.lean Modified Mathlib/CategoryTheory/Sites/GlobalSections.lean Modified Mathlib/Data/Matrix/RowCol.lean Modified Mathlib/Data/Quot.lean Modified Mathlib/Data/Vector/MapLemmas.lean +/- theorem List.Vector.map_pmap Modified Mathlib/GroupTheory/FixedPointFree.lean +/- def MonoidHom.FixedPointFree.commGroupOfInvolutive Modified Mathlib/GroupTheory/GroupAction/Basic.lean Modified Mathlib/GroupTheory/OrderOfElement.lean +/- theorem Commute.orderOf_dvd_lcm_mul +/- theorem Commute.orderOf_mul_dvd_mul_orderOf Modified Mathlib/GroupTheory/Perm/DomMulAct.lean - theorem DomMulAct.stabilizer_card': + theorem DomMulAct.stabilizer_card' Modified Mathlib/LinearAlgebra/LinearIndependent/Defs.lean - theorem linearIndepOn_iff_disjoint: + theorem linearIndepOn_iff_disjoint Modified Mathlib/LinearAlgebra/LinearIndependent/Lemmas.lean +/- theorem linearIndepOn_pair_iff Modified Mathlib/LinearAlgebra/Multilinear/Basic.lean Modified Mathlib/MeasureTheory/Function/LpSeminorm/Basic.lean +/- theorem MeasureTheory.eLpNorm_const_smul Modified Mathlib/MeasureTheory/Group/Convolution.lean Modified Mathlib/ModelTheory/ElementarySubstructures.lean +/- theorem FirstOrder.Language.ElementarySubstructure.subtype_injective Modified Mathlib/ModelTheory/Substructures.lean +/- theorem FirstOrder.Language.Substructure.subtype_injective Modified Mathlib/NumberTheory/ModularForms/CongruenceSubgroups.lean +/- theorem SL_reduction_mod_hom_val Modified Mathlib/NumberTheory/NumberField/CanonicalEmbedding/FundamentalCone.lean Modified Mathlib/NumberTheory/NumberField/CanonicalEmbedding/NormLeOne.lean +/- theorem NumberField.mixedEmbedding.fundamentalCone.hasFDerivAt_expMap Modified Mathlib/NumberTheory/RamificationInertia/Galois.lean +/- theorem Ideal.coe_smul_primesOver_eq_map_galRestrict Modified Mathlib/Order/Interval/Finset/Defs.lean +/- theorem Finset.map_subtype_embedding_Icc +/- theorem Finset.map_subtype_embedding_Ico +/- theorem Finset.map_subtype_embedding_Ioc +/- theorem Finset.map_subtype_embedding_Ioo Modified Mathlib/Order/Interval/Set/Pi.lean +/- theorem Set.pi_univ_Ico_subset +/- theorem Set.pi_univ_Iio_subset +/- theorem Set.pi_univ_Ioc_subset +/- theorem Set.pi_univ_Ioi_subset +/- theorem Set.pi_univ_Ioo_subset Modified Mathlib/RepresentationTheory/Homological/GroupCohomology/LowDegree.lean - theorem groupCohomology.H1π_comp_H1IsoOfIsTrivial_hom: + theorem groupCohomology.H1π_comp_H1IsoOfIsTrivial_hom Modified Mathlib/RingTheory/Polynomial/GaussNorm.lean +/- theorem PowerSeries.gaussNorm_monomial Modified Mathlib/RingTheory/PowerSeries/Evaluation.lean Modified Mathlib/RingTheory/Valuation/Minpoly.lean +/- theorem Valuation.pow_coeff_zero_ne_zero_of_unit Modified Mathlib/SetTheory/Ordinal/Family.lean +/- theorem Ordinal.iSup_sum Modified Mathlib/Tactic/Widget/Conv.lean Modified Mathlib/Topology/Algebra/Monoid.lean Modified Mathlib/Topology/Algebra/Valued/NormedValued.lean - def Valued.toNontriviallyNormedField: + def Valued.toNontriviallyNormedField Modified Mathlib/Topology/Category/TopCat/Limits/Basic.lean +/- theorem TopCat.colimit_topology +/- theorem TopCat.limit_topology Modified Mathlib/Topology/ContinuousMap/ContinuousMapZero.lean Modified Mathlib/Topology/ContinuousOn.lean Modified Mathlib/Topology/LocallyFinsupp.lean Modified Mathlib/Topology/Order/IsLUB.lean 2025-07-04 10:05:33 aa10f25 feat(Analysis/Calculus/VectorField): Implement product rule for liebrackets (#26725) This adds lemmas for the product rule (or Leibniz rule) for Lie brackets on vector fields. These new lemmas are called `lieBracket_smul_left` and similar. To accomodate this, rename the existing lemmas `{m}lieBracket{Within}_smul_{left,right}` to `{m}lieBracket{Within}_const_smul_{left,right}`. A future PR will add the analogous lemmas for vector fields on manifolds: this is useful to introduce Lie derivatives or covariant derivatives. This PR continues the work from #24932. ESTIMATED CHANGES Modified Mathlib/Analysis/Calculus/VectorField.lean + theorem VectorField.lieBracketWithin_const_smul_left + theorem VectorField.lieBracketWithin_const_smul_right +/- theorem VectorField.lieBracketWithin_smul_left +/- theorem VectorField.lieBracketWithin_smul_right + theorem VectorField.lieBracket_const_smul_left + theorem VectorField.lieBracket_const_smul_right + theorem VectorField.lieBracket_fmul_left - theorem VectorField.lieBracket_smul_left +/- theorem VectorField.lieBracket_smul_right Modified Mathlib/Geometry/Manifold/GroupLieAlgebra.lean Modified Mathlib/Geometry/Manifold/VectorField/LieBracket.lean + theorem VectorField.mlieBracketWithin_const_smul_left + theorem VectorField.mlieBracketWithin_const_smul_right - theorem VectorField.mlieBracketWithin_smul_left - theorem VectorField.mlieBracketWithin_smul_right + theorem VectorField.mlieBracket_const_smul_left + theorem VectorField.mlieBracket_const_smul_right - theorem VectorField.mlieBracket_smul_left - theorem VectorField.mlieBracket_smul_right 2025-07-04 10:05:31 5d5acbe chore(Data/Set/Disjoint): move `BooleanAlgebra` material to `Order` (#26724) Eventually, all order properties should move out, but this is a good second step that will, among others, unblock #23177. ESTIMATED CHANGES Modified Mathlib/Data/Set/Disjoint.lean - theorem HasSubset.Subset.diff_ssubset_of_nonempty - theorem Set.diff_ssubset_left_iff - theorem Set.disjoint_compl_left_iff_subset - theorem Set.disjoint_compl_right_iff_subset - theorem Set.disjoint_of_subset_iff_left_eq_empty - theorem Set.disjoint_sdiff_inter - theorem Set.disjoint_sdiff_left - theorem Set.disjoint_sdiff_right - theorem Set.subset_compl_iff_disjoint_left - theorem Set.subset_compl_iff_disjoint_right - theorem Set.subset_diff Modified Mathlib/Order/BooleanAlgebra/Set.lean + theorem HasSubset.Subset.diff_ssubset_of_nonempty + theorem Set.diff_ssubset_left_iff + theorem Set.disjoint_compl_left_iff_subset + theorem Set.disjoint_compl_right_iff_subset + theorem Set.disjoint_of_subset_iff_left_eq_empty + theorem Set.disjoint_sdiff_inter + theorem Set.disjoint_sdiff_left + theorem Set.disjoint_sdiff_right + theorem Set.subset_compl_iff_disjoint_left + theorem Set.subset_compl_iff_disjoint_right + theorem Set.subset_diff 2025-07-04 10:05:29 3f9a67b chore: whitespace fixes (#26714) Found by #26706. ESTIMATED CHANGES Modified Mathlib/Algebra/Quaternion.lean +/- theorem QuaternionAlgebra.comm Modified Mathlib/Analysis/Calculus/ContDiff/FaaDiBruno.lean Modified Mathlib/Analysis/Complex/IntegerCompl.lean +/- theorem Complex.integerComplement.ne_one +/- theorem Complex.integerComplement_add_ne_zero 2025-07-04 10:05:28 eca402a chore: split out NatCast/IntCast Complex instances (#26522) This makes it possible to simplify some proofs ESTIMATED CHANGES Modified Mathlib/Data/Complex/Basic.lean +/- theorem Complex.re_ofNat 2025-07-04 10:05:26 779056f feat(Order): complementary under sublattice (#26513) Add an instance stating that `Set.Icc a b` is a complemented lattice (when `a` and `b` belong to a complemented modular lattice), and hence golf existing instances for `Set.Iic` and `Set.Ici`. ESTIMATED CHANGES Modified Mathlib/Order/ModularLattice.lean + theorem IsModularLattice.exists_disjoint_and_sup_eq + theorem IsModularLattice.exists_inf_eq_and_codisjoint + theorem IsModularLattice.exists_inf_eq_and_sup_eq 2025-07-04 09:20:22 6070035 feat(Algebra/Homology/Embedding): the homology of the restriction (#26535) Given an embedding of complex shapes, we provide an API to compute the homology of the "restriction". ESTIMATED CHANGES Modified Mathlib/Algebra/Homology/Embedding/RestrictionHomology.lean + theorem HomologicalComplex.homologyπ_restrictionHomologyIso_hom + theorem HomologicalComplex.homologyπ_restrictionHomologyIso_inv + theorem HomologicalComplex.pOpcycles_restrictionOpcyclesIso_hom + theorem HomologicalComplex.pOpcycles_restrictionOpcyclesIso_inv + theorem HomologicalComplex.restrictionCyclesIso_hom_iCycles + theorem HomologicalComplex.restrictionCyclesIso_inv_iCycles + theorem HomologicalComplex.restrictionHomologyIso_hom_homologyι + theorem HomologicalComplex.restrictionHomologyIso_inv_homologyι Modified Mathlib/Algebra/Homology/ShortComplex/HomologicalComplex.lean 2025-07-04 09:20:20 789b5d3 feat(WithZero): `exp : ℤ → ℤᵐ⁰`, `log : ℤᵐ⁰ → ℤ` (#24977) In valuation theory, valuations have codomain `{0} ∪ {e ^ n | n : ℤ}`, which we can formalise as `ℤₘ₀ := WithZero (Multiplicative ℤ)`. It is important to be able to talk about the maps `n ↦ e ^ n` and `e ^ n ↦ n`. We define these as `exp : ℤ → ℤₘ₀` and `log : ℤₘ₀ → ℤ` with junk value `log 0 = 0`. Junkless versions are defined as `expEquiv : ℤ ≃ ℤₘ₀ˣ` and `logEquiv : ℤₘ₀ˣ ≃ ℤ`. ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Defs.lean +/- theorem one_pow Modified Mathlib/Algebra/Group/Int/Defs.lean Modified Mathlib/Algebra/GroupWithZero/Int.lean +/- theorem WithZero.ofAdd_zpow Modified Mathlib/Algebra/GroupWithZero/WithZero.lean + theorem WithZero.coe_expEquiv_apply + def WithZero.exp + def WithZero.expEquiv + theorem WithZero.expEquiv_symm + theorem WithZero.exp_add + theorem WithZero.exp_log + theorem WithZero.exp_neg + theorem WithZero.exp_nsmul + theorem WithZero.exp_sub + theorem WithZero.exp_zero + theorem WithZero.exp_zsmul + def WithZero.log + def WithZero.logEquiv + theorem WithZero.logEquiv_apply + theorem WithZero.logEquiv_symm + theorem WithZero.logEquiv_unitsMk0 + theorem WithZero.log_div + theorem WithZero.log_exp + theorem WithZero.log_inv + theorem WithZero.log_mul + theorem WithZero.log_one + theorem WithZero.log_pow + theorem WithZero.log_zero + theorem WithZero.log_zpow Modified Mathlib/Algebra/Order/GroupWithZero/Canonical.lean + def WithZero.expOrderIso + theorem WithZero.exp_le_exp + theorem WithZero.le_log_iff_exp_le + def WithZero.logOrderIso + theorem WithZero.log_le_iff_le_exp + theorem WithZero.log_le_log + theorem WithZero.log_lt_iff_lt_exp + theorem WithZero.lt_log_iff_exp_lt Modified Mathlib/Algebra/Order/GroupWithZero/WithZero.lean Modified Mathlib/Algebra/Order/Ring/IsNonarchimedean.lean Modified Mathlib/Algebra/Tropical/Basic.lean Modified Mathlib/Data/Int/WithZero.lean +/- def WithZeroMulInt.toNNReal +/- theorem WithZeroMulInt.toNNReal_eq_one_iff +/- theorem WithZeroMulInt.toNNReal_le_one_iff +/- theorem WithZeroMulInt.toNNReal_lt_one_iff +/- theorem WithZeroMulInt.toNNReal_ne_zero +/- theorem WithZeroMulInt.toNNReal_neg_apply +/- theorem WithZeroMulInt.toNNReal_pos +/- theorem WithZeroMulInt.toNNReal_pos_apply Modified Mathlib/FieldTheory/RatFunc/AsPolynomial.lean Modified Mathlib/GroupTheory/ArchimedeanDensely.lean Modified Mathlib/NumberTheory/FunctionField.lean +/- def FunctionField.inftyValuation +/- def FunctionField.inftyValuationDef +/- def FunctionField.inftyValuedFqt Modified Mathlib/NumberTheory/NumberField/FinitePlaces.lean Modified Mathlib/RingTheory/DedekindDomain/AdicValuation.lean +/- def IsDedekindDomain.HeightOneSpectrum.adicValued +/- def IsDedekindDomain.HeightOneSpectrum.intValuation +/- def IsDedekindDomain.HeightOneSpectrum.intValuationDef +/- def IsDedekindDomain.HeightOneSpectrum.valuation Modified Mathlib/RingTheory/DedekindDomain/SelmerGroup.lean +/- theorem IsDedekindDomain.HeightOneSpectrum.valuationOfNeZero_eq Modified Mathlib/RingTheory/LaurentSeries.lean +/- theorem LaurentSeries.exists_Polynomial_intValuation_lt +/- theorem LaurentSeries.exists_ratFunc_val_lt +/- theorem LaurentSeries.val_le_one_iff_eq_coe +/- theorem LaurentSeries.valuation_def Modified Mathlib/RingTheory/OrderOfVanishing.lean +/- def Ring.ordFrac +/- def Ring.ordMonoidWithZeroHom Modified Mathlib/RingTheory/Valuation/AlgebraInstances.lean Modified Mathlib/RingTheory/Valuation/Archimedean.lean Modified Mathlib/RingTheory/Valuation/Basic.lean Modified Mathlib/RingTheory/Valuation/Discrete/Basic.lean Modified Mathlib/RingTheory/Valuation/Extension.lean 2025-07-04 08:33:03 e5a4143 chore: golf Order/ using `grind` (#26680) ESTIMATED CHANGES Modified Mathlib/Order/Basic.lean Modified Mathlib/Order/CompleteLattice/Basic.lean Modified Mathlib/Order/ConditionallyCompleteLattice/Finset.lean Modified Mathlib/Order/DirectedInverseSystem.lean Modified Mathlib/Order/Estimator.lean Modified Mathlib/Order/JordanHolder.lean 2025-07-04 07:44:37 27a84eb chore: further whitespace fixes (#26708) Found by #26706: likely not exhaustive, but a good first approximation. ESTIMATED CHANGES Modified Mathlib/Algebra/BigOperators/Finsupp/Fin.lean Modified Mathlib/Algebra/BigOperators/Group/Finset/Basic.lean Modified Mathlib/Algebra/Category/ModuleCat/ExteriorPower.lean +/- theorem ModuleCat.AlternatingMap.ext Modified Mathlib/Algebra/Category/ModuleCat/Presheaf/Free.lean Modified Mathlib/Algebra/Category/ModuleCat/Topology/Basic.lean +/- theorem TopModuleCat.hom_ofHom Modified Mathlib/Algebra/Group/Action/TypeTags.lean +/- theorem toAdd_vadd +/- theorem toMul_smul Modified Mathlib/Algebra/Group/Fin/Tuple.lean +/- theorem Fin.insertNth_div Modified Mathlib/Algebra/Group/Pointwise/Set/Basic.lean +/- theorem Set.prod_mul_prod_comm Modified Mathlib/Algebra/Group/Pointwise/Set/Scalar.lean Modified Mathlib/Algebra/GroupWithZero/WithZero.lean +/- theorem WithZero.map'_map' Modified Mathlib/Algebra/Homology/BifunctorAssociator.lean +/- theorem HomologicalComplex.mapBifunctor₁₂.ι_D₃ Modified Mathlib/Algebra/Homology/HasNoLoop.lean +/- theorem ComplexShape.not_rel_of_eq Modified Mathlib/Algebra/Homology/HomotopyCategory/HomComplex.lean Modified Mathlib/Algebra/Homology/HomotopyCofiber.lean +/- theorem HomologicalComplex.homotopyCofiber.inlX_fstX Modified Mathlib/Algebra/Homology/ShortComplex/ShortExact.lean +/- theorem CategoryTheory.ShortComplex.ShortExact.isIso_g_iff Modified Mathlib/Algebra/Homology/SingleHomology.lean +/- theorem HomologicalComplex.singleObjCyclesSelfIso_inv_homologyπ Modified Mathlib/Algebra/Lie/TraceForm.lean Modified Mathlib/Algebra/Lie/Weights/Killing.lean Modified Mathlib/Algebra/Module/Submodule/Pointwise.lean Modified Mathlib/Algebra/Module/Torsion.lean +/- theorem AddSubgroup.torsionBy.mod_self_nsmul Modified Mathlib/Algebra/Order/Disjointed.lean Modified Mathlib/Algebra/Pointwise/Stabilizer.lean Modified Mathlib/Algebra/Polynomial/Degree/IsMonicOfDegree.lean +/- theorem Polynomial.IsMonicOfDegree.of_mul_right Modified Mathlib/Algebra/Polynomial/Sequence.lean +/- theorem Polynomial.Sequence.basis_eq_self Modified Mathlib/AlgebraicGeometry/AffineTransitionLimit.lean Modified Mathlib/AlgebraicGeometry/ProjectiveSpectrum/Basic.lean +/- theorem AlgebraicGeometry.Proj.awayMap_awayToSection Modified Mathlib/AlgebraicGeometry/Sites/Representability.lean +/- theorem AlgebraicGeometry.Scheme.LocalRepresentability.yonedaGluedToSheaf_app_toGlued Modified Mathlib/AlgebraicTopology/ModelCategory/Basic.lean Modified Mathlib/AlgebraicTopology/Quasicategory/Basic.lean +/- theorem SSet.Quasicategory.hornFilling Modified Mathlib/AlgebraicTopology/SimplexCategory/Basic.lean +/- theorem SimplexCategory.factor_δ_spec Modified Mathlib/AlgebraicTopology/SimplexCategory/GeneratorsRelations/Basic.lean Modified Mathlib/AlgebraicTopology/SimplicialSet/HomotopyCat.lean Modified Mathlib/AlgebraicTopology/SimplicialSet/Horn.lean +/- theorem SSet.horn.hom_ext Modified Mathlib/AlgebraicTopology/SimplicialSet/StdSimplex.lean +/- theorem SSet.stdSimplex.coe_edge_down_toOrderHom +/- theorem SSet.stdSimplex.coe_triangle_down_toOrderHom +/- theorem SSet.stdSimplex.const_down_toOrderHom Modified Mathlib/Analysis/Analytic/CPolynomial.lean +/- theorem ContinuousMultilinearMap.cpolynomialAt Modified Mathlib/Analysis/Analytic/Constructions.lean +/- theorem AnalyticAt.fun_zpow +/- theorem AnalyticOn.zpow Modified Mathlib/Analysis/Analytic/Inverse.lean +/- theorem HasFPowerSeriesAt.eventually_hasSum_of_comp Modified Mathlib/Analysis/CStarAlgebra/CStarMatrix.lean +/- theorem CStarMatrix.toCLM_apply_single_apply Modified Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Instances.lean +/- theorem cfc_nnreal_eq_real +/- theorem cfc_real_eq_complex +/- theorem cfcₙ_nnreal_eq_real +/- theorem cfcₙ_real_eq_complex Modified Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/NonUnital.lean +/- theorem cfcₙ_comp_neg Modified Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Unital.lean +/- theorem CFC.inv_nonneg +/- theorem cfc_comp_neg Modified Mathlib/Analysis/Calculus/FDeriv/Analytic.lean Modified Mathlib/Analysis/Calculus/FormalMultilinearSeries.lean +/- theorem constFormalMultilinearSeries_zero Modified Mathlib/Analysis/Calculus/VectorField.lean Modified Mathlib/Analysis/Complex/Hadamard.lean +/- theorem Complex.HadamardThreeLines.interpStrip_scale +/- theorem Complex.HadamardThreeLines.norm_le_interpStrip_of_mem_verticalClosedStrip Modified Mathlib/Analysis/Complex/UpperHalfPlane/Topology.lean +/- theorem UpperHalfPlane.comp_ofComplex_of_im_le_zero Modified Mathlib/Analysis/Convex/Deriv.lean Modified Mathlib/Analysis/Fourier/FourierTransformDeriv.lean Modified Mathlib/Analysis/NormedSpace/MultipliableUniformlyOn.lean +/- theorem Summable.multipliableLocallyUniformlyOn_nat_one_add Modified Mathlib/Analysis/NormedSpace/OperatorNorm/Prod.lean Modified Mathlib/Analysis/SpecialFunctions/Complex/LogBounds.lean +/- theorem Complex.norm_log_one_add_half_le_self Modified Mathlib/CategoryTheory/Abelian/GrothendieckAxioms/Basic.lean Modified Mathlib/CategoryTheory/Adjunction/Lifting/Right.lean Modified Mathlib/CategoryTheory/ComposableArrows.lean +/- theorem CategoryTheory.ComposableArrows.map'_inv_eq_inv_map' Modified Mathlib/CategoryTheory/EffectiveEpi/Preserves.lean Modified Mathlib/CategoryTheory/Enriched/Ordinary/Basic.lean +/- theorem CategoryTheory.eHom_whisker_cancel +/- theorem CategoryTheory.eHom_whisker_cancel_inv Modified Mathlib/CategoryTheory/Equivalence.lean +/- theorem CategoryTheory.Equivalence.comp_asNatTrans +/- theorem CategoryTheory.Equivalence.mkHom_comp Modified Mathlib/CategoryTheory/Equivalence/Symmetry.lean +/- theorem CategoryTheory.Equivalence.inverseFunctorMapIso_symm_eq_isoInverseOfIsoFunctor Modified Mathlib/CategoryTheory/Filtered/Final.lean Modified Mathlib/CategoryTheory/Functor/KanExtension/Pointwise.lean +/- theorem CategoryTheory.Functor.pointwiseLeftKanExtension_desc_app Modified Mathlib/CategoryTheory/Functor/KanExtension/Preserves.lean Modified Mathlib/CategoryTheory/GradedObject.lean +/- theorem CategoryTheory.GradedObject.hasMap_of_iso Modified Mathlib/CategoryTheory/Grothendieck.lean +/- theorem CategoryTheory.Grothendieck.pre_comp_map +/- theorem CategoryTheory.Grothendieck.pre_comp_map_assoc Modified Mathlib/CategoryTheory/Join/Basic.lean +/- theorem CategoryTheory.Join.mapWhiskerLeft_id Modified Mathlib/CategoryTheory/Join/Pseudofunctor.lean +/- theorem CategoryTheory.Join.mapWhiskerLeft_whiskerRight +/- theorem CategoryTheory.Join.mapWhiskerRight_whiskerRight Modified Mathlib/CategoryTheory/Limits/FunctorCategory/Basic.lean Modified Mathlib/CategoryTheory/Localization/HomEquiv.lean +/- theorem CategoryTheory.LocalizerMorphism.homMap_id Modified Mathlib/CategoryTheory/Localization/Monoidal.lean +/- theorem CategoryTheory.Localization.Monoidal.triangle_aux₂ +/- theorem CategoryTheory.Localization.Monoidal.triangle_aux₃ Modified Mathlib/CategoryTheory/Localization/Opposite.lean +/- theorem CategoryTheory.Localization.isoOfHom_unop Modified Mathlib/CategoryTheory/Localization/SmallHom.lean +/- theorem CategoryTheory.Localization.hasSmallLocalizedHom_iff_source +/- theorem CategoryTheory.Localization.hasSmallLocalizedHom_iff_target Modified Mathlib/CategoryTheory/Localization/SmallShiftedHom.lean Modified Mathlib/CategoryTheory/Monoidal/Action/Basic.lean +/- theorem CategoryTheory.MonoidalCategory.MonoidalRightAction.id_actionHom Modified Mathlib/CategoryTheory/Monoidal/Cartesian/Basic.lean +/- theorem CategoryTheory.CartesianMonoidalCategory.prodComparisonIso_id Modified Mathlib/CategoryTheory/Opposites.lean +/- theorem CategoryTheory.NatIso.op_associator +/- theorem CategoryTheory.NatIso.unop_associator Modified Mathlib/CategoryTheory/Sites/Coherent/RegularSheaves.lean +/- theorem CategoryTheory.regularTopology.isSheaf_yoneda_obj Modified Mathlib/CategoryTheory/Sites/Coherent/SequentialLimit.lean +/- theorem CategoryTheory.coherentTopology.isLocallySurjective_π_app_zero_of_isLocallySurjective_map Modified Mathlib/CategoryTheory/Sites/ConstantSheaf.lean +/- theorem CategoryTheory.Sheaf.isConstant_iff_isIso_counit_app' Modified Mathlib/CategoryTheory/Sites/SheafHom.lean +/- theorem CategoryTheory.presheafHom_isSheafFor Modified Mathlib/CategoryTheory/Triangulated/HomologicalFunctor.lean +/- theorem CategoryTheory.Functor.homologySequence_comp Modified Mathlib/Combinatorics/SetFamily/FourFunctions.lean Modified Mathlib/Combinatorics/SimpleGraph/Clique.lean +/- theorem SimpleGraph.isClique_sup_edge_of_ne_sdiff Modified Mathlib/Combinatorics/SimpleGraph/Connectivity/Connected.lean Modified Mathlib/Combinatorics/SimpleGraph/Hamiltonian.lean +/- theorem SimpleGraph.Walk.isHamiltonianCycle_isCycle_and_isHamiltonian_tail Modified Mathlib/Combinatorics/SimpleGraph/Matching.lean +/- theorem SimpleGraph.IsAlternating.spanningCoe Modified Mathlib/Combinatorics/SimpleGraph/Triangle/Removal.lean Modified Mathlib/Condensed/Discrete/Colimit.lean +/- theorem LightCondensed.lanPresheafExt_inv Modified Mathlib/Data/BitVec.lean +/- theorem BitVec.toFin_nsmul +/- theorem BitVec.toFin_pow +/- theorem BitVec.toFin_zsmul Modified Mathlib/Data/Fin/Rev.lean +/- theorem Fin.add_rev_cast +/- theorem Fin.rev_add_cast Modified Mathlib/Data/Fin/SuccPred.lean +/- theorem Fin.orderSucc_last Modified Mathlib/Data/Int/Init.lean +/- theorem Int.div_le_div_iff_of_dvd_of_neg_of_pos Modified Mathlib/Data/List/Basic.lean Modified Mathlib/Data/Matroid/Closure.lean Modified Mathlib/Data/Nat/Init.lean +/- theorem Nat.decreasingInduction_succ_left Modified Mathlib/Data/Set/Insert.lean Modified Mathlib/Dynamics/TopologicalEntropy/Subset.lean +/- theorem Dynamics.IsDynNetIn.monotone_subset Modified Mathlib/FieldTheory/PurelyInseparable/Basic.lean +/- theorem isSeparable_iff_finInsepDegree_eq_one Modified Mathlib/Geometry/Manifold/ContMDiffMFDeriv.lean +/- theorem contMDiff_equivTangentBundleProd Modified Mathlib/GroupTheory/GroupAction/Defs.lean +/- theorem MulAction.stabilizer_mul_eq_left Modified Mathlib/GroupTheory/Index.lean +/- theorem Subgroup.relindex_ne_zero Modified Mathlib/LinearAlgebra/Matrix/FixedDetMatrices.lean +/- theorem FixedDetMatrices.ext Modified Mathlib/LinearAlgebra/Matrix/GeneralLinearGroup/Defs.lean +/- theorem Matrix.SpecialLinearGroup.mapGL_injective Modified Mathlib/LinearAlgebra/Matrix/Integer.lean +/- theorem Matrix.map_mul_intCast Modified Mathlib/LinearAlgebra/Multilinear/Basic.lean +/- theorem MultilinearMap.map_update Modified Mathlib/LinearAlgebra/RootSystem/Finite/G2.lean Modified Mathlib/LinearAlgebra/RootSystem/Finite/Lemmas.lean +/- theorem RootPairing.root_add_root_mem_of_pairingIn_neg Modified Mathlib/LinearAlgebra/RootSystem/Reduced.lean +/- theorem RootPairing.IsReduced.linearIndependent +/- theorem RootPairing.coxeterWeightIn_ne_four Modified Mathlib/LinearAlgebra/SesquilinearForm.lean Modified Mathlib/Logic/Equiv/Basic.lean Modified Mathlib/Logic/Equiv/Fin/Basic.lean +/- theorem Equiv.embeddingFinSucc_fst +/- theorem Equiv.embeddingFinSucc_snd Modified Mathlib/Logic/Function/Basic.lean +/- theorem Function.forall_update_iff +/- theorem Function.hfunext Modified Mathlib/Logic/Function/FiberPartition.lean +/- theorem Function.Fiber.eq_fiber_image Modified Mathlib/MeasureTheory/Function/Holder.lean Modified Mathlib/MeasureTheory/Function/L1Space/Integrable.lean +/- theorem MeasureTheory.Integrable.measure_norm_gt_lt_top_enorm Modified Mathlib/MeasureTheory/OuterMeasure/AE.lean +/- theorem MeasureTheory.ae_eq_top Modified Mathlib/NumberTheory/EulerProduct/ExpLog.lean +/- theorem Summable.clog_one_sub Modified Mathlib/NumberTheory/ModularForms/EisensteinSeries/Summable.lean Modified Mathlib/NumberTheory/RamificationInertia/Basic.lean Modified Mathlib/NumberTheory/WellApproximable.lean Modified Mathlib/Order/BooleanSubalgebra.lean + theorem BooleanSubalgebra.mk_lt_mk - theorem BooleanSubalgebra.mk_lt_mk{L Modified Mathlib/Order/Category/BddDistLat.lean Modified Mathlib/Order/CountableDenseLinearOrder.lean Modified Mathlib/Order/Interval/Finset/Box.lean +/- theorem Finset.eq_zero_iff_eq_zero_of_mem_box Modified Mathlib/Order/RelSeries.lean +/- theorem LTSeries.range_apply Modified Mathlib/Probability/Independence/Conditional.lean Modified Mathlib/Probability/Kernel/Composition/IntegralCompProd.lean Modified Mathlib/Probability/Moments/ComplexMGF.lean Modified Mathlib/Probability/Moments/IntegrableExpMul.lean Modified Mathlib/RepresentationTheory/Homological/GroupCohomology/LowDegree.lean +/- theorem groupCohomology.π_comp_H0Iso_hom +/- theorem groupCohomology.π_comp_H1Iso_hom +/- theorem groupCohomology.π_comp_H2Iso_hom Modified Mathlib/RingTheory/Flat/FaithfullyFlat/Basic.lean +/- theorem Module.FaithfullyFlat.zero_iff_lTensor_zero Modified Mathlib/RingTheory/MvPolynomial/Homogeneous.lean +/- theorem MvPolynomial.IsHomogeneous.finSuccEquiv_coeff_isHomogeneous Modified Mathlib/RingTheory/NoetherNormalization.lean Modified Mathlib/RingTheory/Smooth/StandardSmooth.lean +/- theorem Algebra.PreSubmersivePresentation.card_relations_le_card_vars_of_isFinite Modified Mathlib/RingTheory/TensorProduct/Finite.lean +/- theorem Module.exists_isPrincipal_quotient_of_finite Modified Mathlib/Topology/Algebra/ContinuousMonoidHom.lean +/- theorem ContinuousMulEquiv.coe_mk' Modified Mathlib/Topology/Algebra/InfiniteSum/Module.lean +/- theorem AddAction.automorphize_smul_left Modified Mathlib/Topology/Algebra/InfiniteSum/Real.lean +/- theorem summable_partition Modified Mathlib/Topology/Algebra/InfiniteSum/UniformOn.lean Modified Mathlib/Topology/Algebra/Order/Field.lean +/- theorem Filter.Tendsto.const_div_atBot +/- theorem Filter.Tendsto.const_div_atTop Modified Mathlib/Topology/Algebra/RestrictedProduct/Basic.lean +/- theorem RestrictedProduct.ext Modified Mathlib/Topology/CWComplex/Classical/Finite.lean Modified Mathlib/Topology/EMetricSpace/Lipschitz.lean Modified Mathlib/Topology/Homeomorph/Lemmas.lean +/- theorem isHomeomorph_iff_continuous_isClosedMap_bijective Modified Mathlib/Topology/Homotopy/Lifting.lean +/- theorem IsCoveringMap.eq_liftPath_iff' Modified Mathlib/Topology/LocallyFinsupp.lean Modified Mathlib/Topology/MetricSpace/Ultra/Basic.lean +/- theorem IsUltrametricDist.closedBall_eq_of_mem +/- theorem IsUltrametricDist.mem_closedBall_iff Modified Mathlib/Topology/MetricSpace/UniformConvergence.lean +/- theorem UniformOnFun.lipschitzWith_restrict Modified Mathlib/Topology/UniformSpace/LocallyUniformConvergence.lean +/- theorem tendstoLocallyUniformly_iff_forall_isCompact Modified Mathlib/Topology/UnitInterval.lean 2025-07-04 07:31:42 389ef58 feat: compute trailing coefficients of factorized rational functions (#26141) This PR continues the work from #25523. Original PR: https://github.com/leanprover-community/mathlib4/pull/25523 ESTIMATED CHANGES Modified Mathlib/Analysis/Meromorphic/FactorizedRational.lean + theorem Function.FactorizedRational.log_norm_meromorphicTrailingCoeffAt + theorem Function.FactorizedRational.meromorphicTrailingCoeffAt_factorizedRational + theorem Function.FactorizedRational.meromorphicTrailingCoeffAt_factorizedRational_off_support + theorem MeromorphicOn.log_norm_meromorphicTrailingCoeffAt_extract_zeros_poles + theorem MeromorphicOn.meromorphicTrailingCoeffAt_extract_zeros_poles Modified Mathlib/Analysis/Meromorphic/TrailingCoefficient.lean + theorem meromorphicTrailingCoeffAt_const + theorem meromorphicTrailingCoeffAt_id_sub_const + theorem meromorphicTrailingCoeffAt_prod 2025-07-04 06:01:45 19f4ef2 chore: bump toolchain to v4.22.0-rc3 (#26715) ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Basic.lean Modified Mathlib/Algebra/Ring/Defs.lean + theorem nsmul_eq_mul Modified Mathlib/Algebra/Ring/GrindInstances.lean Modified Mathlib/Data/Nat/Cast/Basic.lean - theorem nsmul_eq_mul Modified Mathlib/Data/Nat/Hyperoperation.lean Modified Mathlib/Logic/Function/Defs.lean Modified MathlibTest/ImplicitUniverses.lean Modified lake-manifest.json Modified lakefile.lean Modified lean-toolchain Modified scripts/lint-style.lean 2025-07-04 05:47:22 ed93091 feat: introduce the Laplace operator (#26302) This PR continues the work from #25441. Original PR: https://github.com/leanprover-community/mathlib4/pull/25441 ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Analysis/Calculus/ContDiff/Basic.lean + theorem ContinuousLinearEquiv.iteratedFDeriv_comp_left Modified Mathlib/Analysis/Calculus/ContDiff/FTaylorSeries.lean + theorem Filter.EventuallyEq.iteratedFDeriv Added Mathlib/Analysis/InnerProductSpace/Laplacian.lean + theorem ContDiffAt.laplacianWithin_add_nhdsWithin + theorem ContDiffAt.laplacian_CLM_comp_left + theorem ContDiffAt.laplacian_add + theorem ContDiffAt.laplacian_add_nhds + theorem ContDiffWithinAt.laplacianWithin_CLM_comp_left + theorem ContDiffWithinAt.laplacianWithin_add + theorem InnerProductSpace.laplacianWithin_CLE_comp_left + theorem InnerProductSpace.laplacianWithin_congr_nhdsWithin + theorem InnerProductSpace.laplacianWithin_eq_iteratedFDerivWithin_complexPlane + theorem InnerProductSpace.laplacianWithin_eq_iteratedFDerivWithin_orthonormalBasis + theorem InnerProductSpace.laplacianWithin_eq_iteratedFDerivWithin_stdOrthonormalBasis + theorem InnerProductSpace.laplacianWithin_smul + theorem InnerProductSpace.laplacianWithin_univ + theorem InnerProductSpace.laplacian_CLE_comp_left + theorem InnerProductSpace.laplacian_congr_nhds + theorem InnerProductSpace.laplacian_eq_iteratedFDeriv_complexPlane + theorem InnerProductSpace.laplacian_eq_iteratedFDeriv_orthonormalBasis + theorem InnerProductSpace.laplacian_eq_iteratedFDeriv_stdOrthonormalBasis + theorem InnerProductSpace.laplacian_smul + theorem bilinearIteratedFDerivTwo_eq_iteratedFDeriv + theorem bilinearIteratedFDerivWithinTwo_eq_iteratedFDeriv + theorem tensorIteratedFDerivTwo_eq_iteratedFDeriv + theorem tensorIteratedFDerivWithinTwo_eq_iteratedFDerivWithin 2025-07-04 05:36:30 0f42479 chore(CategoryTheory/MonoidalCategory): clean up names in simp and rw (#26705) This was made possible by PR #26611. ESTIMATED CHANGES Modified Mathlib/Algebra/Homology/Monoidal.lean Modified Mathlib/CategoryTheory/Bicategory/Coherence.lean Modified Mathlib/CategoryTheory/Bicategory/Functor/Oplax.lean Modified Mathlib/CategoryTheory/Bicategory/NaturalTransformation/Oplax.lean Modified Mathlib/CategoryTheory/Closed/Ideal.lean Modified Mathlib/CategoryTheory/GradedObject/Monoidal.lean Modified Mathlib/CategoryTheory/Monoidal/Bimod.lean Modified Mathlib/CategoryTheory/Monoidal/Braided/Basic.lean Modified Mathlib/CategoryTheory/Monoidal/Cartesian/Basic.lean Modified Mathlib/CategoryTheory/Monoidal/Hopf_.lean Modified Mathlib/CategoryTheory/Monoidal/Limits.lean Modified Mathlib/CategoryTheory/Monoidal/Mod_.lean Modified Mathlib/CategoryTheory/Monoidal/Mon_.lean Modified Mathlib/CategoryTheory/Monoidal/Preadditive.lean Modified Mathlib/CategoryTheory/Monoidal/Transport.lean 2025-07-04 03:07:51 40cb750 fix: remove explicit `FunLike` instance for `Equiv` (#26220) Remove explicit `FunLike` instance for `Equiv`. It can already be inferred from the `EquivLike` instance. ESTIMATED CHANGES Modified Mathlib/Algebra/Category/AlgCat/Limits.lean Modified Mathlib/Algebra/Category/MonCat/Limits.lean Modified Mathlib/Algebra/Category/Ring/Limits.lean Modified Mathlib/Data/FunLike/Equiv.lean +/- theorem EquivLike.apply_inv_apply + theorem EquivLike.coe_apply +/- theorem EquivLike.inv_apply_apply + theorem EquivLike.inv_apply_eq +/- theorem EquivLike.inv_apply_eq_iff_eq_apply Modified Mathlib/Logic/Equiv/Defs.lean + def Equiv.instFunLike Modified Mathlib/Order/Interval/Finset/Defs.lean 2025-07-04 03:07:48 cb83ff5 feat: Add definition of `symmEquiv` (#26170) Add an equivalence version of `Equiv.symm` and similar operations. ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Equiv/Defs.lean + def MulEquiv.symmEquiv Modified Mathlib/Algebra/Module/Equiv/Defs.lean + def LinearEquiv.symmEquiv Modified Mathlib/Logic/Equiv/Defs.lean + def Equiv.symmEquiv 2025-07-04 03:07:47 f064868 feat(CategoryTheory/Limits): certain multicoequalizers are pushouts (#26028) In this file, we show that a multicoequalizer for for I : MultispanIndex (.ofLinearOrder ι) C is also a pushout when ι has exactly two elements. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Limits/Shapes/MultiequalizerPullback.lean + theorem CategoryTheory.Limits.Multicofork.IsColimit.isPushout.multicofork_π_eq_inl + theorem CategoryTheory.Limits.Multicofork.IsColimit.isPushout.multicofork_π_eq_inr + theorem CategoryTheory.Limits.Multicofork.IsColimit.isPushout 2025-07-04 03:07:44 a736586 feat(Order/Fin/CircularOrder): add some basic results about the circular order on Fin (#25369) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Order/Circular.lean + theorem btw_iff + theorem sbtw_iff Added Mathlib/Order/Circular/ZMod.lean + theorem Fin.btw_iff + theorem Fin.sbtw_iff + theorem Int.btw_iff + theorem Int.sbtw_iff 2025-07-04 03:07:43 8b20135 feat(Order/SupClosed): `compl_image_latticeClosure` and `compl_image_latticeClosure_eq_of_compl_image_eq_self` (#25265) The main results in this pull request are: 1. `compl_image_latticeClosure`: given any Boolean algebra `α` and `s : Set α`, `compl '' latticeClosure s` is the same as `latticeClosure (compl '' s)`; 2. `compl_image_latticeClosure_eq_of_compl_image_eq_self`: given any Boolean algebra `α` and `s : Set α` such that `compl '' s = s`, we have `compl '' latticeClosure s = latticeClosure s`. ESTIMATED CHANGES Modified Mathlib/Order/SupClosed.lean + theorem compl_image_latticeClosure + theorem compl_image_latticeClosure_eq_of_compl_image_eq_self + theorem image_latticeClosure' + theorem image_latticeClosure + theorem latticeClosure_sup_inf_induction + theorem ofDual_preimage_latticeClosure 2025-07-04 02:24:30 4dc2c3e refactor: reprove `digits_base_pow_mul` with new `digits_base_mul` (#26684) This PR refactors an existing lemma by factoring out a lemma that captures the inductive step, completing the same proof in fewer non-whitespace lines. This lemma was found while doing work for [Project Numina](https://projectnumina.ai/). ESTIMATED CHANGES Modified Mathlib/Data/Nat/Digits/Defs.lean + theorem Nat.digits_base_mul 2025-07-04 02:24:28 2308f8e feat: add lemmas around `ofDigits` with trailing zero (#26682) Adds simp lemmas around `Nat.ofDigits` on lists with trailing zeros. These lemmas were identified while doing work for [Project Numina](https://projectnumina.ai/). ESTIMATED CHANGES Modified Mathlib/Data/Nat/Digits/Defs.lean + theorem Nat.ofDigits_append_replicate_zero + theorem Nat.ofDigits_append_zero + theorem Nat.ofDigits_replicate_zero + theorem Nat.ofDigits_reverse_cons + theorem Nat.ofDigits_reverse_zero_cons 2025-07-04 02:24:27 7981b08 chore: fix create-adaptation-pr.sh (#26661) ESTIMATED CHANGES Modified scripts/create-adaptation-pr.sh 2025-07-04 02:24:25 b749603 feat(RingTheory/Valuation/Integers): nontrivial_iff (#26512) valuation subring is nontrivial iff ring is nontrivial stated using Integers to be more general ESTIMATED CHANGES Modified Mathlib/RingTheory/Valuation/Integers.lean + theorem Valuation.Integers.nontrivial_iff + theorem Valuation.integers_nontrivial 2025-07-04 02:24:24 f7399dc add some lemmas about `Nat.gcd` (#26488) add some lemmas about `Nat.gcd` $lcm(\frac{k}{m}, \frac{k}{n}) = k / \gcd(m, n)$ ESTIMATED CHANGES Modified Mathlib/Data/Nat/GCD/Basic.lean + theorem Nat.div_dvd_div_left + theorem Nat.div_lcm_eq_div_gcd + theorem Nat.div_mul_div 2025-07-04 02:24:22 dd25708 feat(Order): Add curried versions of `biSup_prod` and `biInf_prod` (#26486) Used in the Brownian Motion project. ESTIMATED CHANGES Modified Mathlib/Order/CompleteLattice/Basic.lean + theorem biInf_prod' + theorem biSup_prod' 2025-07-04 02:24:21 91941ca perf(Topology/Metrizable): lower `IsCompletelyMetrizableSpace.MetrizableSpace` priority (#26247) This PR continues the work from #24967. Original PR: https://github.com/leanprover-community/mathlib4/pull/24967 ESTIMATED CHANGES Modified Mathlib/Topology/Metrizable/CompletelyMetrizable.lean 2025-07-04 02:24:20 f31b095 feat(Data/Nat/Sqrt): Added lemma `Nat.add_one_sqrt_le_of_ne_zero` (#24931) ESTIMATED CHANGES Modified Mathlib/Data/Nat/Sqrt.lean + theorem Nat.add_one_sqrt_le_of_ne_zero 2025-07-04 01:43:58 f510df8 chore(Data/*): remove various `erw` (#26711) This PR addresses tech debt by eliminating some `erw` in the Data directory ESTIMATED CHANGES Modified Mathlib/Data/Int/Cast/Lemmas.lean Modified Mathlib/Data/Nat/Bitwise.lean + theorem Nat.bit_false_apply + theorem Nat.bit_true_apply Modified Mathlib/Data/Num/Lemmas.lean Modified Mathlib/Data/Num/ZNum.lean Modified Mathlib/Data/Vector/Basic.lean 2025-07-04 00:51:16 b8f340b feat(Data/Finset/Card): add eraseInduction (#26703) Adds an induction principle on `Finset` which is weaker but more precise than `strongInduction`. This allows many (most?) applications of `Finset.strongInduction` to be golfed. Zulip discussion here: [#Is there code for X? > Descending induction for Finset @ 💬](https://leanprover.zulipchat.com/#narrow/channel/217875-Is-there-code-for-X.3F/topic/Descending.20induction.20for.20Finset/near/521576706) This lemma was identified while doing work for Project Numina. ESTIMATED CHANGES Modified Mathlib/Combinatorics/Hindman.lean Modified Mathlib/Data/Finset/Card.lean + theorem Finset.eraseInduction Modified Mathlib/Data/Finset/Max.lean Modified Mathlib/LinearAlgebra/Matrix/Block.lean Modified Mathlib/RingTheory/Lasker.lean 2025-07-03 23:10:47 ede29a3 chore(RingTheory/Flat): generalize to non-commutative semirings (#26707) ESTIMATED CHANGES Modified Mathlib/RingTheory/Flat/Basic.lean 2025-07-03 22:40:15 db5c7f7 chore: fix minor docstring mistake LHS → RHS (#26610) ESTIMATED CHANGES Modified Mathlib/Order/IsNormal.lean 2025-07-03 22:17:20 53ab92a feat: MDifferentiableOn.iUnion (#26687) Analogue of #26673 for `MDifferentiableOn`. Transitive mathlib clean-up from the path towards geodesics and the Levi-Civita connection. ESTIMATED CHANGES Modified Mathlib/Geometry/Manifold/MFDeriv/Basic.lean + theorem MDifferentiableOn.iUnion_of_isOpen + theorem MDifferentiableOn.union_of_isOpen + theorem mdifferentiableOn_iUnion_iff_of_isOpen + theorem mdifferentiableOn_union_iff_of_isOpen + theorem mdifferentiable_of_mdifferentiableOn_iUnion_of_isOpen + theorem mdifferentiable_of_mdifferentiableOn_union_of_isOpen 2025-07-03 22:17:18 86718e9 feat: DifferentiableOn.iUnion (#26686) Analogue of #26673 for `DifferentiableOn`. Transitive mathlib clean-up from the path towards geodesics and the Levi-Civita connection. ESTIMATED CHANGES Modified Mathlib/Analysis/Calculus/FDeriv/Basic.lean + theorem DifferentiableOn.iUnion_of_isOpen + theorem DifferentiableOn.union_of_isOpen + theorem differentiableOn_iUnion_iff_of_isOpen + theorem differentiableOn_union_iff_of_isOpen + theorem differentiable_of_differentiableOn_iUnion_of_isOpen + theorem differentiable_of_differentiableOn_union_of_isOpen 2025-07-03 22:04:28 90fee9d feat: ContDiffOn.iUnion (#26688) Analogue of #26673 for `ContDifferentiableOn`. Transitive mathlib clean-up from the path towards geodesics and the Levi-Civita connection. ESTIMATED CHANGES Modified Mathlib/Analysis/Calculus/ContDiff/Basic.lean + theorem ContDiffOn.iUnion_of_isOpen + theorem ContDiffOn.union_of_isOpen + theorem contDiffOn_iUnion_iff_of_isOpen + theorem contDiffOn_union_iff_of_isOpen + theorem contDiff_of_contDiffOn_iUnion_of_isOpen + theorem contDiff_of_contDiffOn_union_of_isOpen 2025-07-03 22:04:25 8e1a281 chore(Geometry/Manifold/VectorBundle/Basic): make some arguments implicit (#26677) All of these are in iff lemmas, which are almost always used for rewriting, and occur on both sides of the equation. Part of the path towards geodesics and the Levi-Civita connection. Co-authored by: @PatrickMassot ESTIMATED CHANGES Modified Mathlib/Geometry/Manifold/ContMDiffMFDeriv.lean Modified Mathlib/Geometry/Manifold/VectorBundle/Basic.lean +/- theorem Bundle.contMDiffAt_section +/- theorem Bundle.contMDiffAt_totalSpace +/- theorem Bundle.contMDiffWithinAt_section +/- theorem Bundle.contMDiffWithinAt_totalSpace Modified Mathlib/Geometry/Manifold/VectorBundle/Hom.lean Modified Mathlib/Geometry/Manifold/VectorBundle/Tangent.lean 2025-07-03 21:54:47 92b730c feat: add missing API for MDifferentiable*.{add,neg} (#26702) Discovered while working towards geodesics and the Levi-Civita connection. Co-authored by: @PatrickMassot ESTIMATED CHANGES Modified Mathlib/Geometry/Manifold/MFDeriv/SpecificFunctions.lean + theorem HasMFDerivWithinAt.add + theorem HasMFDerivWithinAt.neg + theorem MDifferentiableOn.add + theorem MDifferentiableOn.neg + theorem MDifferentiableWithinAt.add + theorem MDifferentiableWithinAt.neg 2025-07-03 21:27:31 4fb1c97 feat: add continuousOn_iUnion (#26672) A function is continuous on a union of open sets iff it is continuous on each individual set. This extends the results in #22684 to arbitrary unions; the `ContMDiffOn` analogue is proven in #26673. ESTIMATED CHANGES Modified Mathlib/Topology/ContinuousOn.lean + theorem ContinuousOn.iUnion_of_isOpen + theorem continuousOn_iUnion_iff_of_isOpen + theorem continuous_of_continuousOn_iUnion_of_isOpen 2025-07-03 21:18:16 8615e63 feat: contMDiffWithinAt_zeroSection (#26676) Part of the path towards geodesics and the Levi-Civita connection ESTIMATED CHANGES Modified Mathlib/Geometry/Manifold/VectorBundle/Basic.lean + theorem Bundle.contMDiffAt_zeroSection + theorem Bundle.contMDiffOn_zeroSection + theorem Bundle.contMDiffWithinAt_zeroSection 2025-07-03 19:53:16 2731c22 chore(CategoryTheory): insert associators and unitors (#26701) Also fixed several wrong associator directions. This PR is extracted from a WIP PR #26601, where the old expressions are type incorrect. ESTIMATED CHANGES Modified Mathlib/AlgebraicTopology/DoldKan/Compatibility.lean Modified Mathlib/CategoryTheory/Adjunction/Mates.lean Modified Mathlib/CategoryTheory/Closed/Functor.lean Modified Mathlib/CategoryTheory/Functor/TwoSquare.lean Modified Mathlib/CategoryTheory/Sums/Associator.lean Modified Mathlib/CategoryTheory/Sums/Basic.lean +/- def CategoryTheory.Sum.swapCompInl +/- def CategoryTheory.Sum.swapCompInr Modified Mathlib/CategoryTheory/Whiskering.lean 2025-07-03 16:59:33 1ec99bd chore(Analysis/InnerProductSpace/Adjoint): generalize orthogonal_ker and orthogonal_range (#26664) This allows us to use `orthogonal_ker` and `orthogonal_range` for `T : E →L[𝕜] F` instead of `T : E →L[𝕜] E`. ESTIMATED CHANGES Modified Mathlib/Analysis/InnerProductSpace/Adjoint.lean +/- theorem ContinuousLinearMap.orthogonal_ker +/- theorem ContinuousLinearMap.orthogonal_range 2025-07-03 15:35:44 2ae2c8e chore: move `BooleanAlgebra` material on `Set` out of `Data` (#26665) Eventually, all order properties should move out, but this is a good first step that will, among others, unblock #23177. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Group/Center.lean Modified Mathlib/Algebra/Group/End.lean Modified Mathlib/Algebra/Order/Ring/Int.lean Modified Mathlib/Algebra/Order/Ring/Nat.lean Modified Mathlib/Data/Set/Basic.lean - theorem Set.compl_def - theorem Set.compl_diff - theorem Set.compl_empty - theorem Set.compl_empty_iff - theorem Set.compl_eq_univ_diff - theorem Set.compl_inter - theorem Set.compl_inter_self - theorem Set.compl_ne_univ - theorem Set.compl_setOf - theorem Set.compl_subset_comm - theorem Set.compl_subset_compl - theorem Set.compl_subset_compl_of_subset - theorem Set.compl_subset_iff_union - theorem Set.compl_union - theorem Set.compl_union_self - theorem Set.compl_univ - theorem Set.compl_univ_iff - theorem Set.diff_compl - theorem Set.diff_diff - theorem Set.diff_diff_cancel_left - theorem Set.diff_diff_comm - theorem Set.diff_diff_eq_sdiff_union - theorem Set.diff_diff_right - theorem Set.diff_diff_right_self - theorem Set.diff_empty - theorem Set.diff_eq_compl_inter - theorem Set.diff_eq_empty - theorem Set.diff_inter - theorem Set.diff_inter_diff - theorem Set.diff_inter_distrib_right - theorem Set.diff_inter_right_comm - theorem Set.diff_inter_self - theorem Set.diff_inter_self_eq_diff - theorem Set.diff_nonempty - theorem Set.diff_self - theorem Set.diff_self_inter - theorem Set.diff_subset - theorem Set.diff_subset_comm - theorem Set.diff_subset_compl - theorem Set.diff_subset_diff - theorem Set.diff_subset_diff_iff_subset - theorem Set.diff_subset_diff_left - theorem Set.diff_subset_diff_right - theorem Set.diff_subset_iff - theorem Set.diff_union_diff_cancel' - theorem Set.diff_union_diff_cancel - theorem Set.diff_union_inter - theorem Set.diff_union_of_subset - theorem Set.diff_union_self - theorem Set.diff_univ - theorem Set.empty_diff - theorem Set.inl_compl_union_inr_compl - theorem Set.inter_compl_nonempty_iff - theorem Set.inter_compl_self - theorem Set.inter_diff_assoc - theorem Set.inter_diff_distrib_left - theorem Set.inter_diff_distrib_right - theorem Set.inter_diff_right_comm - theorem Set.inter_diff_self - theorem Set.inter_eq_compl_compl_union_compl - theorem Set.inter_sdiff_left_comm - theorem Set.inter_subset - theorem Set.inter_subset_ite - theorem Set.inter_union_compl - theorem Set.inter_union_diff - theorem Set.ite_compl - theorem Set.ite_diff_self - theorem Set.ite_empty - theorem Set.ite_empty_left - theorem Set.ite_empty_right - theorem Set.ite_eq_of_subset_left - theorem Set.ite_eq_of_subset_right - theorem Set.ite_inter - theorem Set.ite_inter_compl_self - theorem Set.ite_inter_inter - theorem Set.ite_inter_of_inter_eq - theorem Set.ite_inter_self - theorem Set.ite_left - theorem Set.ite_mono - theorem Set.ite_right - theorem Set.ite_same - theorem Set.ite_subset_union - theorem Set.ite_univ - theorem Set.mem_compl - theorem Set.mem_of_mem_diff - theorem Set.nonempty_compl - theorem Set.notMem_compl_iff - theorem Set.notMem_diff_of_mem - theorem Set.notMem_of_mem_compl - theorem Set.notMem_of_mem_diff - theorem Set.sdiff_inter_right_comm - theorem Set.sdiff_sep_self - theorem Set.subset_compl_comm - theorem Set.subset_diff_union - theorem Set.subset_ite - theorem Set.subset_union_compl_iff_inter_subset - theorem Set.union_compl_self - theorem Set.union_diff_cancel' - theorem Set.union_diff_cancel - theorem Set.union_diff_cancel_left - theorem Set.union_diff_cancel_right - theorem Set.union_diff_distrib - theorem Set.union_diff_left - theorem Set.union_diff_right - theorem Set.union_diff_self - theorem Set.union_eq_compl_compl_inter_compl - theorem Set.union_eq_diff_union_diff_union_inter Modified Mathlib/Data/Set/BoolIndicator.lean Modified Mathlib/Data/Set/Disjoint.lean Modified Mathlib/Data/Set/Insert.lean Modified Mathlib/Data/Set/Subsingleton.lean Modified Mathlib/Data/Set/SymmDiff.lean Added Mathlib/Order/BooleanAlgebra/Set.lean + theorem Set.compl_def + theorem Set.compl_diff + theorem Set.compl_empty + theorem Set.compl_empty_iff + theorem Set.compl_eq_univ_diff + theorem Set.compl_inter + theorem Set.compl_inter_self + theorem Set.compl_ne_univ + theorem Set.compl_setOf + theorem Set.compl_subset_comm + theorem Set.compl_subset_compl + theorem Set.compl_subset_compl_of_subset + theorem Set.compl_subset_iff_union + theorem Set.compl_union + theorem Set.compl_union_self + theorem Set.compl_univ + theorem Set.compl_univ_iff + theorem Set.diff_compl + theorem Set.diff_diff + theorem Set.diff_diff_cancel_left + theorem Set.diff_diff_comm + theorem Set.diff_diff_eq_sdiff_union + theorem Set.diff_diff_right + theorem Set.diff_diff_right_self + theorem Set.diff_empty + theorem Set.diff_eq_compl_inter + theorem Set.diff_eq_empty + theorem Set.diff_inter + theorem Set.diff_inter_diff + theorem Set.diff_inter_distrib_right + theorem Set.diff_inter_right_comm + theorem Set.diff_inter_self + theorem Set.diff_inter_self_eq_diff + theorem Set.diff_nonempty + theorem Set.diff_self + theorem Set.diff_self_inter + theorem Set.diff_subset + theorem Set.diff_subset_comm + theorem Set.diff_subset_compl + theorem Set.diff_subset_diff + theorem Set.diff_subset_diff_iff_subset + theorem Set.diff_subset_diff_left + theorem Set.diff_subset_diff_right + theorem Set.diff_subset_iff + theorem Set.diff_union_diff_cancel' + theorem Set.diff_union_diff_cancel + theorem Set.diff_union_inter + theorem Set.diff_union_of_subset + theorem Set.diff_union_self + theorem Set.diff_univ + theorem Set.empty_diff + theorem Set.inl_compl_union_inr_compl + theorem Set.inter_compl_nonempty_iff + theorem Set.inter_compl_self + theorem Set.inter_diff_assoc + theorem Set.inter_diff_distrib_left + theorem Set.inter_diff_distrib_right + theorem Set.inter_diff_right_comm + theorem Set.inter_diff_self + theorem Set.inter_eq_compl_compl_union_compl + theorem Set.inter_sdiff_left_comm + theorem Set.inter_subset + theorem Set.inter_subset_ite + theorem Set.inter_union_compl + theorem Set.inter_union_diff + theorem Set.ite_compl + theorem Set.ite_diff_self + theorem Set.ite_empty + theorem Set.ite_empty_left + theorem Set.ite_empty_right + theorem Set.ite_eq_of_subset_left + theorem Set.ite_eq_of_subset_right + theorem Set.ite_inter + theorem Set.ite_inter_compl_self + theorem Set.ite_inter_inter + theorem Set.ite_inter_of_inter_eq + theorem Set.ite_inter_self + theorem Set.ite_left + theorem Set.ite_mono + theorem Set.ite_right + theorem Set.ite_same + theorem Set.ite_subset_union + theorem Set.ite_univ + theorem Set.mem_compl + theorem Set.mem_of_mem_diff + theorem Set.nonempty_compl + theorem Set.notMem_compl_iff + theorem Set.notMem_diff_of_mem + theorem Set.notMem_of_mem_compl + theorem Set.notMem_of_mem_diff + theorem Set.sdiff_inter_right_comm + theorem Set.sdiff_sep_self + theorem Set.subset_compl_comm + theorem Set.subset_diff_union + theorem Set.subset_ite + theorem Set.subset_union_compl_iff_inter_subset + theorem Set.union_compl_self + theorem Set.union_diff_cancel' + theorem Set.union_diff_cancel + theorem Set.union_diff_cancel_left + theorem Set.union_diff_cancel_right + theorem Set.union_diff_distrib + theorem Set.union_diff_left + theorem Set.union_diff_right + theorem Set.union_diff_self + theorem Set.union_eq_compl_compl_inter_compl + theorem Set.union_eq_diff_union_diff_union_inter 2025-07-03 14:43:56 7672327 chore(RingTheory/Etale): fix `algebraize` attribute (#26657) A typo in the `algebraize` tag mislead me to believe something was broken. ESTIMATED CHANGES Modified Mathlib/RingTheory/RingHom/Etale.lean 2025-07-03 14:43:54 817d625 chore: register the fact that a topological space that is `T₀` and `R₀` is `T₁` as a typeclass instance (#26550) As [instT2SpaceOfR1SpaceOfT0Space](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Topology/Separation/Hausdorff.html#instT2SpaceOfR1SpaceOfT0Space). I forgot to do this in my PR(#26064). ESTIMATED CHANGES Modified Mathlib/Topology/Separation/Basic.lean - theorem t1Space_of_t0Space_of_r0Space Modified Mathlib/Topology/Separation/GDelta.lean 2025-07-03 14:43:53 407aa6f doc: remove `PartENat.card` in the module doc (#26426) [`PartENat.card`](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Deprecated/Cardinal/Finite.html#PartENat.card) is moved to the `Deprecated` directory and it's not in this file([`Mathlib.SetTheory.Cardinal.Finite`](https://leanprover-community.github.io/mathlib4_docs/Mathlib/SetTheory/Cardinal/Finite.html)) anymore. ESTIMATED CHANGES Modified Mathlib/SetTheory/Cardinal/Finite.lean 2025-07-03 14:43:51 886c199 chore(Algebra/Squarefree/Basic): fix erw (#25915) This PR addresses an instance of the erw linter in Algebra/Squarefree/Basic. Original PR: https://github.com/leanprover-community/mathlib4/pull/25161 ESTIMATED CHANGES Modified Mathlib/Algebra/Squarefree/Basic.lean 2025-07-03 14:11:51 5beabdc feat: Finsupp.supportedEquivFinsupp_symm_single (#26314) ESTIMATED CHANGES Modified Mathlib/Data/Finsupp/Basic.lean +/- def Finsupp.restrictSupportEquiv + theorem Finsupp.restrictSupportEquiv_symm_apply_coe + theorem Finsupp.restrictSupportEquiv_symm_single Modified Mathlib/LinearAlgebra/Finsupp/Supported.lean + theorem Finsupp.supportedEquivFinsupp_symm_single 2025-07-03 13:20:37 64499d3 feat(Analysis.Normed.Unbundled.SpectralNormUnique): prove unique extension theorem (#26537) Let `K` be a field complete with respect to a nontrivial nonarchimedean multiplicative norm and `L/K` be an algebraic extension. We show that the spectral norm on `L` is a nonarchimedean multiplicative norm, and any power-multiplicative `K`-algebra norm on `L` coincides with the spectral norm. More over, if `L/K` is finite, then `L` is a complete space. This result is [S. Bosch, U. Güntzer, R. Remmert,*Non-Archimedean Analysis* (Theorem 3.2.4/2)][bosch-guntzer-remmert]. ESTIMATED CHANGES Modified Mathlib/Analysis/Normed/Unbundled/SpectralNorm.lean + def algNormFromConst + theorem algNormFromConst_def + theorem spectralAlgNorm_mul + def spectralMulAlgNorm + theorem spectralMulAlgNorm_def + def spectralNorm.metricSpace + def spectralNorm.normedAddCommGroup + def spectralNorm.normedField + def spectralNorm.normedSpace + def spectralNorm.seminormedAddCommGroup + def spectralNorm.uniformSpace + theorem spectralNorm_unique + theorem spectralNorm_unique_field_norm_ext 2025-07-03 11:52:40 af84080 feat(CategoryTheory/Localization): generalize results about adjunctions (#26365) In this PR, results about adjunctions, localization of categories and calculus of fractions are slightly generalized. In particular, we show that under certain circumstances, adjoint functors are localization functors. (This shall be used in the proof of the fundamental lemma of homotopical algebra #26303.) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Localization/CalculusOfFractions/OfAdjunction.lean + theorem CategoryTheory.Adjunction.functorCategory_inverseImage_isomorphisms_counit + theorem CategoryTheory.Adjunction.functorCategory_inverseImage_isomorphisms_unit + theorem CategoryTheory.Adjunction.hasLeftCalculusOfFractions' +/- theorem CategoryTheory.Adjunction.hasLeftCalculusOfFractions + theorem CategoryTheory.Adjunction.hasRightCalculusOfFractions' +/- theorem CategoryTheory.Adjunction.hasRightCalculusOfFractions + theorem CategoryTheory.Adjunction.isLocalization_leftAdjoint' + theorem CategoryTheory.Adjunction.isLocalization_leftAdjoint + theorem CategoryTheory.Adjunction.isLocalization_rightAdjoint' + theorem CategoryTheory.Adjunction.isLocalization_rightAdjoint Modified Mathlib/CategoryTheory/Localization/Opposite.lean + theorem CategoryTheory.Functor.op_iff 2025-07-03 11:43:28 4c1fedd feat(CategoryTheory/Monoidal/Action): preservation of left/right actions by functors (#25976) We introduce typeclasses `F.LaxLeftLinear C`, `F.OplaxLeftLinear C` and `F.LeftLinear C` on functors `F : D ⥤ D'` where `D` and `D` have a monoidal left action of `C`. These typeclasses bundle "compatibility" of the actions, and are analogue to `LaxMonoidal` and `OplaxMonoidal` structures on functors. More precisely, `F.LaxLeftLinear C` bundles a"lineator" as a morphism `μₗ : c ⊙ₗ F.obj d ⟶ F.obj (c ⊙ₗ d)`, subject to naturality, associativity and unitality conditions while `F.OplaxLeftLinear C` bundles the "lineator" as a morphism `δₗ : F.obj (c ⊙ₗ d) ⟶ c ⊙ₗ F.obj d ` subject to similar conditions. `F.LeftLinear` bundles both a `LaxLeftLinear` and an `OplaxLeftLinear` structure, as well as the fact that `μₗ` is left and right inverse to `δₗ`. The analogue typeclasses for right actions are also introduced. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/CategoryTheory/Monoidal/Action/Basic.lean Added Mathlib/CategoryTheory/Monoidal/Action/LinearFunctor.lean + theorem CategoryTheory.Functor.LaxLeftLinear.μₗ_associativity_inv + theorem CategoryTheory.Functor.LaxLeftLinear.μₗ_unitality_inv + theorem CategoryTheory.Functor.LaxRightLinear.μᵣ_associativity_inv + theorem CategoryTheory.Functor.LaxRightLinear.μᵣ_unitality_inv + theorem CategoryTheory.Functor.LeftLinear.inv_δₗ + theorem CategoryTheory.Functor.LeftLinear.inv_μₗ + theorem CategoryTheory.Functor.OplaxLeftLinear.δₗ_associativity_inv + theorem CategoryTheory.Functor.OplaxLeftLinear.δₗ_unitality_hom + theorem CategoryTheory.Functor.OplaxRightLinear.δᵣ_associativity_inv + theorem CategoryTheory.Functor.OplaxRightLinear.δᵣ_unitality_hom + theorem CategoryTheory.Functor.RightLinear.inv_δᵣ + theorem CategoryTheory.Functor.RightLinear.inv_μᵣ 2025-07-03 09:08:38 bed8037 feat: more lemmas on lattices within intervals (#26582) We had these already for `Icc`, this adds them for the other intervals. ESTIMATED CHANGES Modified Mathlib/Order/LatticeIntervals.lean - theorem Set.Icc.coe_bot - theorem Set.Icc.coe_top - theorem Set.Ici.coe_bot - theorem Set.Ici.coe_top - theorem Set.Iic.coe_bot - theorem Set.Iic.coe_top 2025-07-03 08:36:38 ec4672a feat(RepresentationTheory/GroupCohomology): add Shapiro's lemma (#25937) Given a commutative ring `k` and a finite index subgroup `S ≤ G`, the file `RepresentationTheory/FiniteIndex.lean` defines a natural isomorphism between the functors `Ind_S^G, Coind_S^G : Rep k S ⥤ Rep k G`. Using this isomorphism, we conclude that the `(Co)ind_S^G` and `Res(S) : Rep k G ⥤ Rep k S` are both left and right adjoint to each other, and thus that `Res(S)` is an exact functor which preserves projective objects. In particular, given a projective resolution `P` of `k` as a trivial `k`-linear `G`-representation, `Res(S)(P)` is a projective resolution of `k` as a trivial `k`-linear `S`-representation. Since `Hom(Res(S)(P), A) ≅ Hom(P, Coind_S^G(A))` for any `S`-representation `A`, we conclude Shapiro's lemma for group cohomology: `Hⁿ(G, Coind_S^G(A)) ≅ Hⁿ(S, A)` for all `n`. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/CategoryTheory/Preadditive/Projective/Resolution.lean Modified Mathlib/RepresentationTheory/Coinduced.lean Modified Mathlib/RepresentationTheory/FiniteIndex.lean Modified Mathlib/RepresentationTheory/Homological/GroupCohomology/Basic.lean + def groupCohomologyIso Added Mathlib/RepresentationTheory/Homological/GroupCohomology/Shapiro.lean Modified Mathlib/RepresentationTheory/Induced.lean 2025-07-03 08:10:33 08b5060 chore: golf NumberTheory/ using `grind` (#26641) ESTIMATED CHANGES Modified Mathlib/NumberTheory/Divisors.lean Modified Mathlib/NumberTheory/LegendreSymbol/JacobiSymbol.lean Modified Mathlib/NumberTheory/LegendreSymbol/QuadraticChar/Basic.lean Modified Mathlib/NumberTheory/Multiplicity.lean Modified Mathlib/NumberTheory/NumberField/InfinitePlace/Ramification.lean Modified Mathlib/NumberTheory/Pell.lean Modified Mathlib/NumberTheory/PellMatiyasevic.lean Modified Mathlib/NumberTheory/PythagoreanTriples.lean Modified Mathlib/NumberTheory/SmoothNumbers.lean 2025-07-03 08:10:31 9162a4a feat(Algebra/Polynomial/Degree/IsMonicOfDegree): new file (#26507) This adds a predicate `Polynomial.IsMonicOfDegree p n` expressing that the polynomial `p` is monic and has `natDegree` equal to `n` and provides some API for it. Bundling the two properties is quite convenient (e.g., showing that the product of two monic polynomials of degrees `m` and `n` is monic of degree `m+n` needs a few lines with the currently available API) and proved very helpful for formalizing a proof of the Gelfand-Mazur theorem over the reals. See also here on Zulip : [#mathlib4 > Gelfand-Mazur theorem @ 💬](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Gelfand-Mazur.20theorem/near/525404185). ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Polynomial/Degree/IsMonicOfDegree.lean + theorem Polynomial.IsMonicOfDegree.add_left + theorem Polynomial.IsMonicOfDegree.add_right + theorem Polynomial.IsMonicOfDegree.aeval_add + theorem Polynomial.IsMonicOfDegree.aeval_sub + theorem Polynomial.IsMonicOfDegree.coeff_eq + theorem Polynomial.IsMonicOfDegree.comp + theorem Polynomial.IsMonicOfDegree.exists_natDegree_lt + theorem Polynomial.IsMonicOfDegree.leadingCoeff_eq + theorem Polynomial.IsMonicOfDegree.mul + theorem Polynomial.IsMonicOfDegree.natDegree_sub_X_pow + theorem Polynomial.IsMonicOfDegree.natDegree_sub_lt + theorem Polynomial.IsMonicOfDegree.ne_zero + theorem Polynomial.IsMonicOfDegree.of_dvd_add + theorem Polynomial.IsMonicOfDegree.of_dvd_sub + theorem Polynomial.IsMonicOfDegree.of_mul_left + theorem Polynomial.IsMonicOfDegree.of_mul_right + theorem Polynomial.IsMonicOfDegree.pow + theorem Polynomial.IsMonicOfDegree.sub + structure Polynomial.IsMonicOfDegree + theorem Polynomial.isMonicOfDegree_X + theorem Polynomial.isMonicOfDegree_X_add_one + theorem Polynomial.isMonicOfDegree_X_pow + theorem Polynomial.isMonicOfDegree_X_sub_one + theorem Polynomial.isMonicOfDegree_add_add_two + theorem Polynomial.isMonicOfDegree_iff + theorem Polynomial.isMonicOfDegree_iff_of_subsingleton + theorem Polynomial.isMonicOfDegree_monomial_one + theorem Polynomial.isMonicOfDegree_one_iff + theorem Polynomial.isMonicOfDegree_sub_add_two + theorem Polynomial.isMonicOfDegree_two_iff' + theorem Polynomial.isMonicOfDegree_two_iff + theorem Polynomial.isMonicOfDegree_zero_iff 2025-07-03 08:00:36 ccc5b6c feat(Tactic/Ring/NamePolyVars): A command for naming variables in polynomial rings (#26652) ESTIMATED CHANGES Modified Counterexamples/CliffordAlgebraNotInjective.lean - theorem Q60596.X0_X1_X2_notMem_kIdeal + theorem Q60596.X_Y_Z_notMem_kIdeal - theorem Q60596.mul_self_mem_kIdeal_of_X0_X1_X2_mul_mem + theorem Q60596.mul_self_mem_kIdeal_of_X_Y_Z_mul_mem Modified Mathlib.lean Modified Mathlib/AlgebraicGeometry/EllipticCurve/Jacobian/Basic.lean +/- theorem WeierstrassCurve.Jacobian.comp_fin3 +/- theorem WeierstrassCurve.Jacobian.equation_some +/- theorem WeierstrassCurve.Jacobian.fin3_def_ext +/- theorem WeierstrassCurve.Jacobian.nonsingularLift_some +/- theorem WeierstrassCurve.Jacobian.nonsingular_some +/- theorem WeierstrassCurve.Jacobian.polynomialY_eq +/- theorem WeierstrassCurve.Jacobian.polynomialZ_eq Modified Mathlib/AlgebraicGeometry/EllipticCurve/Projective/Basic.lean +/- theorem WeierstrassCurve.Projective.comp_fin3 +/- theorem WeierstrassCurve.Projective.equation_some +/- theorem WeierstrassCurve.Projective.fin3_def_ext +/- theorem WeierstrassCurve.Projective.nonsingularLift_some +/- theorem WeierstrassCurve.Projective.nonsingular_some Modified Mathlib/Tactic.lean Added Mathlib/Tactic/Ring/NamePolyVars.lean + def Mathlib.Tactic.elabNameVariablesOver Modified scripts/noshake.json 2025-07-03 07:39:29 dfa4fe7 chore: golf using `omega` (#26405) ESTIMATED CHANGES Modified Mathlib/AlgebraicGeometry/ProjectiveSpectrum/Scheme.lean Modified Mathlib/AlgebraicTopology/SimplexCategory/Basic.lean Modified Mathlib/Combinatorics/Enumerative/Composition.lean Modified Mathlib/Computability/DFA.lean Modified Mathlib/Control/Fix.lean Modified Mathlib/Data/Nat/Choose/Basic.lean Modified Mathlib/FieldTheory/Minpoly/MinpolyDiv.lean Modified Mathlib/Geometry/Euclidean/Circumcenter.lean Modified Mathlib/GroupTheory/Coxeter/Length.lean Modified Mathlib/LinearAlgebra/Matrix/Charpoly/Coeff.lean Modified Mathlib/NumberTheory/Dioph.lean Modified Mathlib/Order/Partition/Equipartition.lean Modified Mathlib/SetTheory/Game/State.lean Modified Mathlib/Topology/EMetricSpace/BoundedVariation.lean 2025-07-03 06:16:01 cac8b14 feat: add `iInf` results on `ENNReal`, matching existing `iSup` ones (#26411) ESTIMATED CHANGES Modified Mathlib/Data/ENNReal/Operations.lean + theorem ENNReal.add_iInf₂ + theorem ENNReal.add_sInf + theorem ENNReal.exists_add_lt_of_add_lt + theorem ENNReal.iInf_add_iInf_of_monotone + theorem ENNReal.iInf_gt_eq_self + theorem ENNReal.iInf₂_add + theorem ENNReal.le_iInf_add_iInf + theorem ENNReal.le_iInf₂_add_iInf₂ 2025-07-03 05:41:55 a2882c0 feat: simple lemmas on circle integrability (#26618) Add very simple but useful lemmas concerning circle integrability of functions on the complex plane. This material is used in [Project VD](https://github.com/kebekus/ProjectVD), which aims to formalize Value Distribution Theory for meromorphic functions on the complex plane. ESTIMATED CHANGES Modified Mathlib/Analysis/SpecialFunctions/Integrability/LogMeromorphic.lean + theorem circleIntegrable_log_norm_factorizedRational Modified Mathlib/MeasureTheory/Integral/CircleIntegral.lean + theorem CircleIntegrable.const_fun_smul + theorem CircleIntegrable.const_smul 2025-07-03 05:28:33 476140d chore: golf using `subsingleton` (#26621) ESTIMATED CHANGES Modified Mathlib/Algebra/GCDMonoid/PUnit.lean Modified Mathlib/Algebra/Lie/Ideal.lean Modified Mathlib/Algebra/Lie/Submodule.lean Modified Mathlib/Algebra/Module/Submodule/Lattice.lean Modified Mathlib/CategoryTheory/Limits/Shapes/IsTerminal.lean Modified Mathlib/Data/FinEnum.lean Modified Mathlib/Data/Nat/Prime/Defs.lean Modified Mathlib/Data/PFunctor/Univariate/M.lean Modified Mathlib/GroupTheory/FiniteAbelian/Basic.lean Modified Mathlib/LinearAlgebra/Matrix/NonsingularInverse.lean Modified Mathlib/MeasureTheory/Measure/LevyProkhorovMetric.lean Modified Mathlib/ModelTheory/PartialEquiv.lean 2025-07-03 05:28:31 98afaf3 chore: `GRewrite` typo (#26604) ESTIMATED CHANGES Modified Mathlib/Tactic/GRewrite/Elab.lean 2025-07-03 05:28:30 7c32a8a feat(CategoryTheory/Abelian): isomorphisms modulo a Serre class (#26033) Let `C` be an abelian category and `P : ObjectProperty C` a Serre class. We define `P.isoModSerre : MorphismProperty C`, which is the class of morphisms `f` such that `kernel f` and `cokernel f` satisfy `P`. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Abelian/SerreClass/MorphismProperty.lean + def CategoryTheory.ObjectProperty.epiModSerre + theorem CategoryTheory.ObjectProperty.epiModSerre_iff + theorem CategoryTheory.ObjectProperty.epiModSerre_of_epi + theorem CategoryTheory.ObjectProperty.epimorphisms_le_epiModSerre + def CategoryTheory.ObjectProperty.isoModSerre + theorem CategoryTheory.ObjectProperty.isoModSerre_iff + theorem CategoryTheory.ObjectProperty.isoModSerre_iff_of_epi + theorem CategoryTheory.ObjectProperty.isoModSerre_iff_of_mono + theorem CategoryTheory.ObjectProperty.isoModSerre_of_epi + theorem CategoryTheory.ObjectProperty.isoModSerre_of_isIso + theorem CategoryTheory.ObjectProperty.isoModSerre_of_mono + theorem CategoryTheory.ObjectProperty.isomorphisms_le_isoModSerre + def CategoryTheory.ObjectProperty.monoModSerre + theorem CategoryTheory.ObjectProperty.monoModSerre_iff + theorem CategoryTheory.ObjectProperty.monoModSerre_of_mono + theorem CategoryTheory.ObjectProperty.monomorphisms_le_monoModSerre Modified Mathlib/CategoryTheory/Limits/Shapes/Equalizers.lean + theorem CategoryTheory.Limits.Cofork.IsColimit.epi + theorem CategoryTheory.Limits.Fork.IsLimit.mono Modified Mathlib/CategoryTheory/Limits/Shapes/Kernels.lean + theorem CategoryTheory.Limits.CokernelCofork.IsColimit.isZero_of_epi + theorem CategoryTheory.Limits.KernelFork.IsLimit.isZero_of_mono + theorem CategoryTheory.Limits.isZero_cokernel_of_epi + theorem CategoryTheory.Limits.isZero_kernel_of_mono Modified Mathlib/CategoryTheory/Preadditive/Basic.lean + theorem CategoryTheory.Preadditive.epi_iff_isZero_cokernel' + theorem CategoryTheory.Preadditive.epi_iff_isZero_cokernel + theorem CategoryTheory.Preadditive.mono_iff_isZero_kernel' + theorem CategoryTheory.Preadditive.mono_iff_isZero_kernel 2025-07-03 05:16:34 a810728 chore(Combinatorics/Additive): generalise the doubling difference inequality (#26637) The proof now works for non-abelian groups too, so we just move the entire lemma into the non-abelian section of the file. ESTIMATED CHANGES Modified Mathlib/Combinatorics/Additive/DoublingConst.lean 2025-07-03 05:16:32 d76db18 refactor(Data/NNRat/BigOperators): generalize `coe` big operator lemmas (#26480) This refactor generalizes the `norm_cast` lemmas for sums and products of coercion of `ℚ≥0` elements. Previously, these lemmas were stated only for coercion to `ℚ`. This change generalizes the target type `β` to any `[DivisionSemiring β]` with `[CharZero β]` for sums, and any `[Semifield β]` with `[CharZero β]` for products. ESTIMATED CHANGES Modified Mathlib/Data/NNRat/BigOperators.lean + theorem NNRat.cast_listProd + theorem NNRat.cast_listSum + theorem NNRat.cast_multisetProd + theorem NNRat.cast_multisetSum + theorem NNRat.cast_prod + theorem NNRat.cast_sum - theorem NNRat.coe_list_prod - theorem NNRat.coe_list_sum - theorem NNRat.coe_multiset_prod - theorem NNRat.coe_multiset_sum - theorem NNRat.coe_prod - theorem NNRat.coe_sum 2025-07-03 04:49:19 fd24e4a feat(Combinatorics/Additive): trivial bounds on doubling constant (#26636) Add trivial upper and lower bounds on the doubling and difference constants. Renames: - `div_card_le` -> `card_div_le` ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Pointwise/Finset/Basic.lean + theorem Finset.card_div_le - theorem Finset.div_card_le Modified Mathlib/Combinatorics/Additive/DoublingConst.lean + theorem Finset.divConst_le_card + theorem Finset.mulConst_le_card + theorem Finset.one_le_divConst + theorem Finset.one_le_divConst_self + theorem Finset.one_le_mulConst + theorem Finset.one_le_mulConst_self 2025-07-03 04:49:18 474a949 feat(Data/Set): add `Set.encard_iUnion` (#23849) ESTIMATED CHANGES Modified Mathlib/Algebra/BigOperators/Finprod.lean + theorem Nat.cast_finprod + theorem Nat.cast_finprod_mem + theorem Nat.cast_finsum + theorem Nat.cast_finsum_mem Modified Mathlib/Data/Set/Card/Arithmetic.lean + theorem Set.Finite.encard_biUnion + theorem Set.Finite.ncard_biUnion + theorem Set.encard_iUnion_of_finite + theorem Set.ncard_iUnion_of_finite + theorem finsum_one Modified Mathlib/Data/Set/Finite/Lattice.lean + theorem Set.Infinite.iUnion₂ 2025-07-03 03:52:15 7c5f1ba feat(RingTheory/Presentation): naive presentations of quotients (#26650) ESTIMATED CHANGES Modified Mathlib/RingTheory/Extension/Generators.lean + theorem Algebra.Generators.ker_naive + def Algebra.Generators.naive + theorem Algebra.Generators.naive_σ Modified Mathlib/RingTheory/Extension/Presentation/Basic.lean + def Algebra.Presentation.naive + theorem Algebra.Presentation.naive_relation + theorem Algebra.Presentation.naive_relation_apply Modified Mathlib/RingTheory/Smooth/StandardSmooth.lean + theorem Algebra.PreSubmersivePresentation.jacobiMatrix_naive + def Algebra.PreSubmersivePresentation.naive 2025-07-03 03:52:14 5e17697 feat(NumberTheory/ModularForms): GL(2, R) action preserves holomorphy (#25894) Show that the slash action of negative-determinant matrices preserves holomorphic functions. ESTIMATED CHANGES Modified Mathlib/Analysis/Complex/UpperHalfPlane/Manifold.lean Modified Mathlib/LinearAlgebra/Matrix/GeneralLinearGroup/Defs.lean Modified Mathlib/NumberTheory/ModularForms/Basic.lean + def UpperHalfPlane.J + theorem UpperHalfPlane.J_smul + theorem UpperHalfPlane.J_sq + theorem UpperHalfPlane.coe_J_smul + theorem UpperHalfPlane.denom_J + theorem UpperHalfPlane.det_J + theorem UpperHalfPlane.sigma_J + theorem UpperHalfPlane.val_J 2025-07-03 02:40:35 48ee96c feat: additional API for `prod_subset_prod` (#26567) I add a few corollaries of `Set.prod_subset_prod_iff` to make it more user friendly. ESTIMATED CHANGES Modified Mathlib/Data/Set/Prod.lean + theorem Set.prod_subset_prod_iff' + theorem Set.prod_subset_prod_iff_left + theorem Set.prod_subset_prod_iff_right 2025-07-03 02:40:34 5cec92f feat(GroupTheory/ArchimedeanDensely): Unique (ℤ ≃+o ℤ) (#24582) ESTIMATED CHANGES Modified Mathlib/Data/Int/Cast/Lemmas.lean + theorem AddEquiv.ext_int Modified Mathlib/GroupTheory/ArchimedeanDensely.lean + theorem Int.addEquiv_eq_refl_or_neg 2025-07-03 01:23:26 44ec04b feat(Algebra/Category): category of f.g. algebras is essentially small (#26634) Co-authored by: Andrew Yang ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Algebra/Equiv.lean + def ULift.algEquiv Modified Mathlib/Algebra/Category/CommAlgCat/Basic.lean + def CategoryTheory.CommAlgCat.fullyFaithfulUliftFunctor + def CategoryTheory.CommAlgCat.uliftFunctor Added Mathlib/Algebra/Category/CommAlgCat/FiniteType.lean + theorem Algebra.FiniteType.exists_fgAlgCatSkeleton + def FGAlgCat.equivUnder + def FGAlgCat.fullyFaithfulUliftFunctor + def FGAlgCat.uliftFunctor + structure FGAlgCatSkeleton + theorem essentiallySmall_of_le Modified Mathlib/CategoryTheory/MorphismProperty/Comma.lean + def CategoryTheory.MorphismProperty.Comma.changeProp + def CategoryTheory.MorphismProperty.Comma.fullyFaithfulChangeProp 2025-07-03 01:14:45 e7c314d refactor: remove `suppress_compilation` from TensorProduct (#26642) This was a workaround introduced in #7281 for extreme performance issues in the old compiler, which is no more! This isn't an exhaustive removal of `suppress_compilation`, but is almost all of the ones related to `TensorProduct`. A handful of `noncomputable`s downstream can now be removed too. Benchmark results seem mostly neutral. Zulip thread: [#mathlib4 > Why is tensor product noncomputable? @ 💬](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Why.20is.20tensor.20product.20noncomputable.3F/near/526882931) ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/Bilinear.lean + def LinearMap.mul' Modified Mathlib/Algebra/Azumaya/Basic.lean Modified Mathlib/Algebra/Azumaya/Defs.lean + def AlgHom.mulLeftRight Modified Mathlib/Algebra/Lie/BaseChange.lean Modified Mathlib/Algebra/Lie/TensorProduct.lean Modified Mathlib/Algebra/Lie/Weights/Cartan.lean Modified Mathlib/Algebra/Module/Bimodule.lean + def Subbimodule.baseChange + def Subbimodule.mk + def Subbimodule.toSubbimoduleInt + def Subbimodule.toSubbimoduleNat Modified Mathlib/Data/Matrix/Kronecker.lean Modified Mathlib/LinearAlgebra/Alternating/DomCoprod.lean Modified Mathlib/LinearAlgebra/BilinearForm/TensorProduct.lean Modified Mathlib/LinearAlgebra/Contraction.lean Modified Mathlib/LinearAlgebra/DirectSum/TensorProduct.lean Modified Mathlib/LinearAlgebra/Multilinear/TensorProduct.lean Modified Mathlib/LinearAlgebra/PiTensorProduct.lean Modified Mathlib/LinearAlgebra/QuadraticForm/TensorProduct/Isometries.lean Modified Mathlib/LinearAlgebra/TensorAlgebra/Grading.lean Modified Mathlib/LinearAlgebra/TensorAlgebra/ToTensorPower.lean Modified Mathlib/LinearAlgebra/TensorPower/Basic.lean Modified Mathlib/LinearAlgebra/TensorProduct/Associator.lean Modified Mathlib/LinearAlgebra/TensorProduct/Basic.lean Modified Mathlib/LinearAlgebra/TensorProduct/Graded/External.lean Modified Mathlib/LinearAlgebra/TensorProduct/Opposite.lean Modified Mathlib/LinearAlgebra/TensorProduct/Pi.lean + def TensorProduct.piRight + def TensorProduct.piRightHom + def TensorProduct.piScalarRight + def TensorProduct.piScalarRightHom Modified Mathlib/LinearAlgebra/TensorProduct/Prod.lean Modified Mathlib/LinearAlgebra/TensorProduct/Tower.lean Modified Mathlib/RingTheory/Bialgebra/Basic.lean Modified Mathlib/RingTheory/Bialgebra/MonoidAlgebra.lean Modified Mathlib/RingTheory/Coalgebra/Basic.lean - def Coalgebra.Repr.arbitrary Modified Mathlib/RingTheory/Coalgebra/MonoidAlgebra.lean Modified Mathlib/RingTheory/HopfAlgebra/Basic.lean Modified Mathlib/RingTheory/HopfAlgebra/MonoidAlgebra.lean Modified Mathlib/RingTheory/MatrixAlgebra.lean Modified Mathlib/RingTheory/TensorProduct/Basic.lean + def Algebra.TensorProduct.cancelBaseChange + def Module.End.lTensorAlgHom + def Module.End.rTensorAlgHom Modified Mathlib/RingTheory/TensorProduct/Free.lean Modified Mathlib/RingTheory/TensorProduct/Pi.lean + def Algebra.TensorProduct.piRight + def Algebra.TensorProduct.piRightHom + def Algebra.TensorProduct.piScalarRight 2025-07-03 00:36:34 3894771 feat(RingTheory/RingHom): etale ring homomorphisms (#26635) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/RingTheory/RingHom/Etale.lean + theorem RingHom.Etale.eq_formallyUnramified_and_smooth + theorem RingHom.Etale.isStableUnderBaseChange + theorem RingHom.Etale.ofLocalizationSpan + theorem RingHom.Etale.ofLocalizationSpanTarget + theorem RingHom.Etale.propertyIsLocal + theorem RingHom.Etale.respectsIso + theorem RingHom.Etale.stableUnderComposition + theorem RingHom.Etale.toAlgebra + def RingHom.Etale + theorem RingHom.etale_algebraMap + theorem RingHom.etale_iff_formallyUnramified_and_smooth 2025-07-03 00:27:22 7e9586b refactor: denote low degree group cohomology API indices with subscripts (#26546) This PR replaces names like `groupCohomology.oneCocycles` with `groupCohomology.cocycles₁`, to bring this API in line with the group homology naming scheme suggested by @jcommelin in #25873. ESTIMATED CHANGES Modified Mathlib/RepresentationTheory/Homological/GroupCohomology/Functoriality.lean + theorem groupCohomology.cochainsMap_f_0_comp_cochainsIso₀ - theorem groupCohomology.cochainsMap_f_0_comp_zeroCochainsIso + theorem groupCohomology.cochainsMap_f_1_comp_cochainsIso₁ - theorem groupCohomology.cochainsMap_f_1_comp_oneCochainsIso + theorem groupCohomology.cochainsMap_f_2_comp_cochainsIso₂ - theorem groupCohomology.cochainsMap_f_2_comp_twoCochainsIso + theorem groupCohomology.cochainsMap_f_3_comp_cochainsIso₃ - theorem groupCohomology.cochainsMap_f_3_comp_threeCochainsIso + theorem groupCohomology.cocyclesMap_cocyclesIso₀_hom_f + theorem groupCohomology.cocyclesMap_comp_isoCocycles₁_hom + theorem groupCohomology.cocyclesMap_comp_isoCocycles₂_hom - theorem groupCohomology.cocyclesMap_comp_isoOneCocycles_hom - theorem groupCohomology.cocyclesMap_comp_isoTwoCocycles_hom - theorem groupCohomology.cocyclesMap_zeroIsoCocycles_hom_f + theorem groupCohomology.coe_mapCocycles₁ + theorem groupCohomology.coe_mapCocycles₂ - theorem groupCohomology.coe_mapOneCocycles - theorem groupCohomology.coe_mapTwoCocycles + theorem groupCohomology.mapCocycles₁_comp_i + theorem groupCohomology.mapCocycles₁_one + theorem groupCohomology.mapCocycles₂_comp_i - theorem groupCohomology.mapOneCocycles_comp_i - theorem groupCohomology.mapOneCocycles_one - theorem groupCohomology.mapTwoCocycles_comp_i Modified Mathlib/RepresentationTheory/Homological/GroupCohomology/Hilbert90.lean + theorem groupCohomology.isMulCoboundary₁_of_isMulCocycle₁_of_aut_to_units - theorem groupCohomology.isMulOneCoboundary_of_isMulOneCocycle_of_aut_to_units Modified Mathlib/RepresentationTheory/Homological/GroupCohomology/LongExactSequence.lean + theorem groupCohomology.mem_cocycles₁_of_comp_eq_d₀₁ + theorem groupCohomology.mem_cocycles₂_of_comp_eq_d₁₂ - theorem groupCohomology.mem_oneCocycles_of_comp_eq_dZero - theorem groupCohomology.mem_twoCocycles_of_comp_eq_dOne Modified Mathlib/RepresentationTheory/Homological/GroupCohomology/LowDegree.lean +/- theorem groupCohomology.H1_induction_on +/- def groupCohomology.H1π +/- theorem groupCohomology.H1π_eq_iff +/- theorem groupCohomology.H1π_eq_zero_iff +/- theorem groupCohomology.H2_induction_on +/- def groupCohomology.H2π +/- theorem groupCohomology.H2π_eq_iff +/- theorem groupCohomology.H2π_eq_zero_iff + def groupCohomology.IsCoboundary₁ + def groupCohomology.IsCoboundary₂ + def groupCohomology.IsCocycle₁ + def groupCohomology.IsCocycle₂ + def groupCohomology.IsMulCoboundary₁ + def groupCohomology.IsMulCoboundary₂ + def groupCohomology.IsMulCocycle₁ + def groupCohomology.IsMulCocycle₂ - def groupCohomology.IsMulOneCoboundary - def groupCohomology.IsMulOneCocycle - def groupCohomology.IsMulTwoCoboundary - def groupCohomology.IsMulTwoCocycle - def groupCohomology.IsOneCoboundary - def groupCohomology.IsOneCocycle - def groupCohomology.IsTwoCoboundary - def groupCohomology.IsTwoCocycle + def groupCohomology.coboundariesOfIsCoboundary₁ + def groupCohomology.coboundariesOfIsCoboundary₂ + def groupCohomology.coboundariesOfIsMulCoboundary₁ + def groupCohomology.coboundariesOfIsMulCoboundary₂ + theorem groupCohomology.coboundariesToCocycles₁_apply + theorem groupCohomology.coboundariesToCocycles₂_apply + theorem groupCohomology.coboundaries₁.coe_mk + theorem groupCohomology.coboundaries₁.val_eq_coe + def groupCohomology.coboundaries₁ + theorem groupCohomology.coboundaries₁_eq_bot_of_isTrivial + theorem groupCohomology.coboundaries₁_ext + theorem groupCohomology.coboundaries₁_le_cocycles₁ + theorem groupCohomology.coboundaries₂.coe_mk + theorem groupCohomology.coboundaries₂.val_eq_coe + def groupCohomology.coboundaries₂ + theorem groupCohomology.coboundaries₂_ext + theorem groupCohomology.coboundaries₂_le_cocycles₂ + def groupCohomology.cochainsIso₀ + def groupCohomology.cochainsIso₁ + def groupCohomology.cochainsIso₂ + def groupCohomology.cochainsIso₃ + def groupCohomology.cocyclesIso₀ + theorem groupCohomology.cocyclesIso₀_hom_comp_f + theorem groupCohomology.cocyclesIso₀_inv_comp_iCocycles - theorem groupCohomology.cocyclesMk_0_eq - theorem groupCohomology.cocyclesMk_1_eq - theorem groupCohomology.cocyclesMk_2_eq + theorem groupCohomology.cocyclesMk₀_eq + theorem groupCohomology.cocyclesMk₁_eq + theorem groupCohomology.cocyclesMk₂_eq + def groupCohomology.cocyclesOfIsCocycle₁ + def groupCohomology.cocyclesOfIsCocycle₂ + def groupCohomology.cocyclesOfIsMulCocycle₁ + def groupCohomology.cocyclesOfIsMulCocycle₂ + theorem groupCohomology.cocycles₁.coe_mk + theorem groupCohomology.cocycles₁.d₁₂_apply + theorem groupCohomology.cocycles₁.val_eq_coe + def groupCohomology.cocycles₁ + def groupCohomology.cocycles₁IsoOfIsTrivial + theorem groupCohomology.cocycles₁_ext + theorem groupCohomology.cocycles₁_map_inv + theorem groupCohomology.cocycles₁_map_mul_of_isTrivial + theorem groupCohomology.cocycles₁_map_one + theorem groupCohomology.cocycles₂.coe_mk + theorem groupCohomology.cocycles₂.d₂₃_apply + theorem groupCohomology.cocycles₂.val_eq_coe + def groupCohomology.cocycles₂ + theorem groupCohomology.cocycles₂_ext + theorem groupCohomology.cocycles₂_map_one_fst + theorem groupCohomology.cocycles₂_map_one_snd + theorem groupCohomology.cocycles₂_ρ_map_inv_sub_map_inv - theorem groupCohomology.comp_dOne_eq - theorem groupCohomology.comp_dTwo_eq - theorem groupCohomology.comp_dZero_eq + theorem groupCohomology.comp_d₀₁_eq + theorem groupCohomology.comp_d₁₂_eq + theorem groupCohomology.comp_d₂₃_eq + def groupCohomology.dArrowIso₀₁ - def groupCohomology.dOne - theorem groupCohomology.dOne_apply_mem_twoCocycles - theorem groupCohomology.dOne_comp_dTwo - def groupCohomology.dTwo - def groupCohomology.dZero - def groupCohomology.dZeroArrowIso - theorem groupCohomology.dZero_apply_mem_oneCocycles - theorem groupCohomology.dZero_comp_dOne - theorem groupCohomology.dZero_eq_zero - theorem groupCohomology.dZero_ker_eq_invariants + def groupCohomology.d₀₁ + theorem groupCohomology.d₀₁_apply_mem_cocycles₁ + theorem groupCohomology.d₀₁_comp_d₁₂ + theorem groupCohomology.d₀₁_eq_zero + theorem groupCohomology.d₀₁_ker_eq_invariants + def groupCohomology.d₁₂ + theorem groupCohomology.d₁₂_apply_mem_cocycles₂ + theorem groupCohomology.d₁₂_comp_d₂₃ + def groupCohomology.d₂₃ - theorem groupCohomology.eq_dOne_comp_inv - theorem groupCohomology.eq_dTwo_comp_inv - theorem groupCohomology.eq_dZero_comp_inv + theorem groupCohomology.eq_d₀₁_comp_inv + theorem groupCohomology.eq_d₁₂_comp_inv + theorem groupCohomology.eq_d₂₃_comp_inv + theorem groupCohomology.isCoboundary₁_of_mem_coboundaries₁ + theorem groupCohomology.isCoboundary₂_of_mem_coboundaries₂ + theorem groupCohomology.isCocycle₁_of_mem_cocycles₁ + theorem groupCohomology.isCocycle₂_of_mem_cocycles₂ + theorem groupCohomology.isMulCoboundary₁_of_mem_coboundaries₁ + theorem groupCohomology.isMulCoboundary₂_of_mem_coboundaries₂ + theorem groupCohomology.isMulCocycle₁_of_mem_cocycles₁ + theorem groupCohomology.isMulCocycle₂_of_mem_cocycles₂ - theorem groupCohomology.isMulOneCoboundary_of_mem_oneCoboundaries - theorem groupCohomology.isMulOneCocycle_of_mem_oneCocycles - theorem groupCohomology.isMulTwoCoboundary_of_mem_twoCoboundaries - theorem groupCohomology.isMulTwoCocycle_of_mem_twoCocycles - theorem groupCohomology.isOneCoboundary_of_mem_oneCoboundaries - theorem groupCohomology.isOneCocycle_of_mem_oneCocycles - theorem groupCohomology.isTwoCoboundary_of_mem_twoCoboundaries - theorem groupCohomology.isTwoCocycle_of_mem_twoCocycles + def groupCohomology.isoCocycles₁ + theorem groupCohomology.isoCocycles₁_hom_comp_i + theorem groupCohomology.isoCocycles₁_inv_comp_iCocycles + def groupCohomology.isoCocycles₂ + theorem groupCohomology.isoCocycles₂_hom_comp_i + theorem groupCohomology.isoCocycles₂_inv_comp_iCocycles - def groupCohomology.isoOneCocycles - theorem groupCohomology.isoOneCocycles_hom_comp_i - theorem groupCohomology.isoOneCocycles_inv_comp_iCocycles - def groupCohomology.isoTwoCocycles - theorem groupCohomology.isoTwoCocycles_hom_comp_i - theorem groupCohomology.isoTwoCocycles_inv_comp_iCocycles + theorem groupCohomology.map_inv_of_isCocycle₁ + theorem groupCohomology.map_inv_of_isMulCocycle₁ - theorem groupCohomology.map_inv_of_isMulOneCocycle - theorem groupCohomology.map_inv_of_isOneCocycle + theorem groupCohomology.map_one_fst_of_isCocycle₂ + theorem groupCohomology.map_one_fst_of_isMulCocycle₂ - theorem groupCohomology.map_one_fst_of_isMulTwoCocycle - theorem groupCohomology.map_one_fst_of_isTwoCocycle + theorem groupCohomology.map_one_of_isCocycle₁ + theorem groupCohomology.map_one_of_isMulCocycle₁ - theorem groupCohomology.map_one_of_isMulOneCocycle - theorem groupCohomology.map_one_of_isOneCocycle + theorem groupCohomology.map_one_snd_of_isCocycle₂ + theorem groupCohomology.map_one_snd_of_isMulCocycle₂ - theorem groupCohomology.map_one_snd_of_isMulTwoCocycle - theorem groupCohomology.map_one_snd_of_isTwoCocycle + theorem groupCohomology.mem_cocycles₁_def + theorem groupCohomology.mem_cocycles₁_iff + theorem groupCohomology.mem_cocycles₁_of_addMonoidHom + theorem groupCohomology.mem_cocycles₂_def + theorem groupCohomology.mem_cocycles₂_iff - theorem groupCohomology.mem_oneCocycles_def - theorem groupCohomology.mem_oneCocycles_iff - theorem groupCohomology.mem_oneCocycles_of_addMonoidHom - theorem groupCohomology.mem_twoCocycles_def - theorem groupCohomology.mem_twoCocycles_iff - theorem groupCohomology.oneCoboundaries.coe_mk - theorem groupCohomology.oneCoboundaries.val_eq_coe - def groupCohomology.oneCoboundaries - def groupCohomology.oneCoboundariesOfIsMulOneCoboundary - def groupCohomology.oneCoboundariesOfIsOneCoboundary - theorem groupCohomology.oneCoboundariesToOneCocycles_apply - theorem groupCohomology.oneCoboundaries_eq_bot_of_isTrivial - theorem groupCohomology.oneCoboundaries_ext - theorem groupCohomology.oneCoboundaries_le_oneCocycles - def groupCohomology.oneCochainsIso - theorem groupCohomology.oneCocycles.coe_mk - theorem groupCohomology.oneCocycles.dOne_apply - theorem groupCohomology.oneCocycles.val_eq_coe - def groupCohomology.oneCocycles - def groupCohomology.oneCocyclesIsoOfIsTrivial - def groupCohomology.oneCocyclesOfIsMulOneCocycle - def groupCohomology.oneCocyclesOfIsOneCocycle - theorem groupCohomology.oneCocycles_ext - theorem groupCohomology.oneCocycles_map_inv - theorem groupCohomology.oneCocycles_map_mul_of_isTrivial - theorem groupCohomology.oneCocycles_map_one + theorem groupCohomology.smul_map_inv_div_map_inv_of_isMulCocycle₂ - theorem groupCohomology.smul_map_inv_div_map_inv_of_isMulTwoCocycle + theorem groupCohomology.smul_map_inv_sub_map_inv_of_isCocycle₂ - theorem groupCohomology.smul_map_inv_sub_map_inv_of_isTwoCocycle - theorem groupCohomology.subtype_comp_dZero + theorem groupCohomology.subtype_comp_d₀₁ - def groupCohomology.threeCochainsIso + theorem groupCohomology.toCocycles_comp_isoCocycles₁_hom + theorem groupCohomology.toCocycles_comp_isoCocycles₂_hom - theorem groupCohomology.toCocycles_comp_isoOneCocycles_hom - theorem groupCohomology.toCocycles_comp_isoTwoCocycles_hom - theorem groupCohomology.twoCoboundaries.coe_mk - theorem groupCohomology.twoCoboundaries.val_eq_coe - def groupCohomology.twoCoboundaries - def groupCohomology.twoCoboundariesOfIsMulTwoCoboundary - def groupCohomology.twoCoboundariesOfIsTwoCoboundary - theorem groupCohomology.twoCoboundariesToTwoCocycles_apply - theorem groupCohomology.twoCoboundaries_ext - theorem groupCohomology.twoCoboundaries_le_twoCocycles - def groupCohomology.twoCochainsIso - theorem groupCohomology.twoCocycles.coe_mk - theorem groupCohomology.twoCocycles.dTwo_apply - theorem groupCohomology.twoCocycles.val_eq_coe - def groupCohomology.twoCocycles - def groupCohomology.twoCocyclesOfIsMulTwoCocycle - def groupCohomology.twoCocyclesOfIsTwoCocycle - theorem groupCohomology.twoCocycles_ext - theorem groupCohomology.twoCocycles_map_one_fst - theorem groupCohomology.twoCocycles_map_one_snd - theorem groupCohomology.twoCocycles_ρ_map_inv_sub_map_inv - def groupCohomology.zeroCochainsIso - def groupCohomology.zeroCocyclesIso - theorem groupCohomology.zeroCocyclesIso_hom_comp_f - theorem groupCohomology.zeroCocyclesIso_inv_comp_iCocycles 2025-07-02 23:52:48 2eda5e7 feat(SimpleGraph): Helper lemmas for Walk.take/drop (#25650) Contributing helper lemmas I needed when formalizing Cayley graphs. ESTIMATED CHANGES Modified Mathlib/Combinatorics/SimpleGraph/Walk.lean + theorem SimpleGraph.Walk.drop_getVert + theorem SimpleGraph.Walk.drop_length + theorem SimpleGraph.Walk.take_getVert + theorem SimpleGraph.Walk.take_length 2025-07-02 22:40:03 71f3251 feat: the image of an interval under a continuous monotone map is an interval (#26504) ESTIMATED CHANGES Modified Mathlib/Order/ConditionallyCompleteLattice/Basic.lean + theorem AntitoneOn.sInf_image_Icc + theorem AntitoneOn.sSup_image_Icc + theorem MonotoneOn.sInf_image_Icc + theorem MonotoneOn.sSup_image_Icc Modified Mathlib/Topology/FiberBundle/Basic.lean Modified Mathlib/Topology/Order/Compact.lean + theorem ContinuousOn.image_Icc_of_antitoneOn + theorem ContinuousOn.image_Icc_of_monotoneOn 2025-07-02 22:26:30 49af9b7 feat: in a continuous Riemannian bundle, the trivialization at a point is locally bounded in norm (#26505) This follows from the continuity of the bilinear form defining the norm, although the reduction requires some care. ESTIMATED CHANGES Modified Mathlib/Topology/VectorBundle/Constructions.lean + theorem Bundle.Trivial.continuousLinearEquivAt_trivialization + theorem Bundle.Trivial.continuousLinearMapAt_trivialization + theorem Bundle.Trivial.linearMapAt_trivialization + theorem Bundle.Trivial.symmL_trivialization + theorem Bundle.Trivial.symmₗ_trivialization Modified Mathlib/Topology/VectorBundle/Hom.lean + theorem hom_trivializationAt + theorem inCoordinates_apply_eq₂ Modified Mathlib/Topology/VectorBundle/Riemannian.lean + theorem eventually_norm_symmL_trivializationAt_comp_self_lt + theorem eventually_norm_symmL_trivializationAt_lt + theorem eventually_norm_symmL_trivializationAt_self_comp_lt + theorem eventually_norm_trivializationAt_lt 2025-07-02 21:19:10 e2952b7 feat(Data/Sum/Order): `Equiv.sumCongr` as an order isomorphism (#26616) We give two versions: one for the disjoint sum, and another for the lexicographic sum. ESTIMATED CHANGES Modified Mathlib/Data/Sum/Order.lean + def OrderIso.sumCongr + theorem OrderIso.sumCongr_refl + theorem OrderIso.sumCongr_symm + theorem OrderIso.sumCongr_trans + def OrderIso.sumLexCongr + theorem OrderIso.sumLexCongr_refl + theorem OrderIso.sumLexCongr_symm + theorem OrderIso.sumLexCongr_trans 2025-07-02 20:54:36 a2a7964 chore: golf Algebra/ using `grind` (#26630) ESTIMATED CHANGES Modified Mathlib/Algebra/Homology/Homotopy.lean Modified Mathlib/Algebra/Order/BigOperators/GroupWithZero/List.lean Modified Mathlib/Algebra/Polynomial/Degree/CardPowDegree.lean Modified Mathlib/Algebra/Polynomial/Module/Basic.lean Modified Mathlib/Algebra/Polynomial/Reverse.lean Modified Mathlib/Algebra/QuadraticDiscriminant.lean 2025-07-02 20:10:55 a31ee26 feat(Algebra/Order/Archimedean): (Mul)Archimedean.comap (#26548) Transferring MulArchimedean across a hom ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Archimedean/Basic.lean + theorem MulArchimedean.comap 2025-07-02 19:17:46 fef25ef feat(Algebra/Category): `CommAlgCat` is (co)complete (#26633) ESTIMATED CHANGES Modified Mathlib/Algebra/Category/CommAlgCat/Basic.lean Modified Mathlib/CategoryTheory/WithTerminal/Cone.lean + theorem CategoryTheory.WithTerminal.Over.hasLimit_of_hasLimit_liftFromOver + theorem CategoryTheory.WithTerminal.WithInitial.Under.hasColimit_of_hasColimit_liftFromUnder 2025-07-02 18:41:10 ff4abc2 refactor(SetTheory/Ordinal/Arithmetic): rework `Ordinal.pred` API (#26612) This PR does the following: - give a simpler definition of `Ordinal.pred` - replace `¬ ∃ a, o = succ a` and `∀ a, o ≠ succ a` by `IsSuccPrelimit o` throughout - improve theorem names ESTIMATED CHANGES Modified Mathlib/SetTheory/Ordinal/Arithmetic.lean + theorem Order.IsSuccLimit.ordinalPred_eq + theorem Ordinal.isSuccPrelimit_lift +/- theorem Ordinal.lift_is_succ - theorem Ordinal.lt_pred + theorem Ordinal.lt_pred_iff_succ_lt + theorem Ordinal.pred_eq_iff_isSuccPrelimit +/- theorem Ordinal.pred_eq_iff_not_succ + theorem Ordinal.pred_eq_of_isSuccPrelimit - theorem Ordinal.pred_le + theorem Ordinal.pred_le_iff_le_succ +/- theorem Ordinal.pred_lt_iff_is_succ + theorem Ordinal.pred_lt_iff_not_isSuccPrelimit +/- theorem Ordinal.pred_succ + def Ordinal.pred_succ_gi + theorem Ordinal.pred_surjective + theorem Ordinal.self_le_succ_pred +/- theorem Ordinal.succ_lt_of_not_succ + theorem Ordinal.succ_pred_eq_iff_not_isSuccPrelimit +/- theorem Ordinal.succ_pred_iff_is_succ Modified Mathlib/SetTheory/Ordinal/Exponential.lean 2025-07-02 18:41:08 4c279eb feat: version of `prod_range_induction` with weaker assumptions (#26570) `prod_range_induction` currently requires ratios of adjacent terms to be checked for the entire sequence, but we only need to check terms up to `n`. I relax this assumption in `prod_range_induction`. ESTIMATED CHANGES Modified Archive/Wiedijk100Theorems/InverseTriangleSum.lean +/- theorem Theorems100.inverse_triangle_sum Modified Mathlib/Algebra/BigOperators/Group/Finset/Basic.lean Modified Mathlib/RingTheory/PowerSeries/Basic.lean 2025-07-02 18:19:30 25b1d23 feat: some `IsUnit` results for `Matrix` (#26602) ESTIMATED CHANGES Modified Mathlib/Data/Matrix/Composition.lean + theorem Matrix.isUnit_comp_iff + theorem Matrix.isUnit_comp_symm_iff Modified Mathlib/LinearAlgebra/Matrix/ToLin.lean + theorem LinearMap.isUnit_toMatrix'_iff + theorem LinearMap.isUnit_toMatrix_iff + theorem Matrix.isUnit_toLin'_iff + theorem Matrix.isUnit_toLin_iff 2025-07-02 16:14:40 a00db62 chore: make create-adaptation-pr robust to missing remotes (#26632) ESTIMATED CHANGES Modified scripts/create-adaptation-pr.sh 2025-07-02 15:47:50 ff1ed48 chore: deprecate `Scott` in favour of `WithScott` (#26619) This type synonym is a duplicate and badly implemented (it is an `abbrev`). Also fix a few misnamed lemmas about the Scott topology. Closes #26494. ESTIMATED CHANGES Modified Mathlib/Topology/OmegaCompletePartialOrder.lean + theorem Topology.IsScott.ωScottContinuous_iff_continuous - theorem Topology.IsScott.ωscottContinuous_iff_continuous +/- def notBelow +/- theorem notBelow_isOpen Modified Mathlib/Topology/Order/LawsonTopology.lean - theorem Topology.IsLawson.singleton_isClosed Modified Mathlib/Topology/Order/ScottTopology.lean - theorem Topology.IsScott.isClosed_Iic + theorem Topology.IsScott.scottContinuousOn_iff_continuous - theorem Topology.IsScott.scottContinuous_iff_continuous 2025-07-02 15:02:15 08fa501 fix(CI): branch on url remotes in `getRepoFromRemote` (#26629) We deploy the logic from #26600 to branch off whether the remote is URL, as can happen with `gh pr checkout`. We also clean up the logic some by factoring out a common function. ESTIMATED CHANGES Modified Cache/Requests.lean 2025-07-02 12:44:34 eeb8835 chore: use `grind` instead of `cc` (#26194) This PR removes uses of `cc` in Mathlib, replacing them with `grind`. It also adds some `grind` test cases derived from the test cases for `cc`. Note that there are `cc` test cases which grind can not (and will not; by design avoiding higher order unification) solve, but there is nothing in the library itself that uses these capabilities. ESTIMATED CHANGES Modified Mathlib/Data/Matrix/Block.lean Modified Mathlib/Logic/Embedding/Basic.lean Modified Mathlib/Logic/Equiv/Basic.lean Added MathlibTest/grind/ac.lean Added MathlibTest/grind/cc.lean + def Rel + def mul' 2025-07-02 12:32:32 50b2876 feat(AlgebraicTopology/SimplexCategory): the inclusion Functor from the truncated to the simplex category is initial (#26490) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/AlgebraicTopology/SimplexCategory/Truncated.lean + theorem SimplexCategory.Truncated.initial_incl Modified Mathlib/CategoryTheory/Limits/Final.lean + theorem CategoryTheory.ObjectProperty.initial_ι 2025-07-02 12:14:18 4449ce7 feat(Data/Finsupp/MonomialOrder): `0 ≤ a` where `a : m.syn` (#24361) `simp` would be able to solve it. ESTIMATED CHANGES Modified Mathlib/Data/Finsupp/MonomialOrder.lean + theorem MonomialOrder.zero_le 2025-07-02 11:49:28 52018ea feat: closure of rationals in real intervals (#26296) Show that any `OrdConnected` set of real numbers has the same closure as the set of rational numbers in it. ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Archimedean/Basic.lean + theorem exists_rat_mem_uIoo Modified Mathlib/Topology/Instances/Real/Lemmas.lean + theorem closure_ordConnected_inter_rat 2025-07-02 10:46:16 8a3fd67 chore: golf using `grind` (#26622) ESTIMATED CHANGES Modified Mathlib/Data/List/Permutation.lean Modified Mathlib/Data/Nat/Digits/Defs.lean Modified Mathlib/GroupTheory/Coxeter/Inversion.lean Modified Mathlib/Order/Circular.lean Modified Mathlib/Topology/EMetricSpace/BoundedVariation.lean 2025-07-02 10:10:17 fb81db9 chore: rename the `MonoidHomWithZero` namespace to `MonoidWithZeroHom` (#26624) This seems to be a typo. ESTIMATED CHANGES Modified Mathlib/Algebra/GroupWithZero/Range.lean - theorem MonoidHomWithZero.inv_mem_valueGroup - theorem MonoidHomWithZero.mem_valueGroup - theorem MonoidHomWithZero.mem_valueGroup_iff_of_comm - theorem MonoidHomWithZero.mem_valueMonoid - theorem MonoidHomWithZero.mem_valueMonoid_iff - def MonoidHomWithZero.valueGroup - theorem MonoidHomWithZero.valueGroup_def - theorem MonoidHomWithZero.valueGroup_eq_range - def MonoidHomWithZero.valueMonoid - theorem MonoidHomWithZero.valueMonoid_eq_closure - theorem MonoidHomWithZero.valueMonoid_eq_valueGroup' - theorem MonoidHomWithZero.valueMonoid_eq_valueGroup + theorem MonoidWithZeroHom.inv_mem_valueGroup + theorem MonoidWithZeroHom.mem_valueGroup + theorem MonoidWithZeroHom.mem_valueGroup_iff_of_comm + theorem MonoidWithZeroHom.mem_valueMonoid + theorem MonoidWithZeroHom.mem_valueMonoid_iff + def MonoidWithZeroHom.valueGroup + theorem MonoidWithZeroHom.valueGroup_def + theorem MonoidWithZeroHom.valueGroup_eq_range + def MonoidWithZeroHom.valueMonoid + theorem MonoidWithZeroHom.valueMonoid_eq_closure + theorem MonoidWithZeroHom.valueMonoid_eq_valueGroup' + theorem MonoidWithZeroHom.valueMonoid_eq_valueGroup Modified Mathlib/RingTheory/Valuation/Discrete/Basic.lean 2025-07-02 10:10:15 41cf91b feat: enable grind's support for fields (#26615) ESTIMATED CHANGES Modified Mathlib/Algebra/Field/Basic.lean Added MathlibTest/grind/field.lean 2025-07-02 09:20:45 c5c25a1 chore(CategoryTheory): rename `whiskerLeft` to `Functor.whiskerLeft` (#26611) In Mathlib, we have many `MonoidalCategory.whiskerLeft_comp` in simp or rw arguments even when we are in the `MonoidalCategory` namespace. This is because we have `whiskerLeft` and related lemmas directly in the `CategoryTheory` namespace. This PR renames these names to `Functor.*` so that we can access `MonoidalCategory.whiskerLeft_comp` just by `whiskerLeft_comp` in the `MonoidalCategory` namespace. ESTIMATED CHANGES Modified Mathlib/Algebra/Category/ContinuousCohomology/Basic.lean Modified Mathlib/Algebra/Category/Grp/LeftExactFunctor.lean Modified Mathlib/Algebra/Category/ModuleCat/ChangeOfRings.lean Modified Mathlib/Algebra/Category/ModuleCat/Presheaf/Colimits.lean Modified Mathlib/Algebra/Category/ModuleCat/Presheaf/Free.lean Modified Mathlib/Algebra/Category/ModuleCat/Presheaf/Limits.lean Modified Mathlib/Algebra/Category/ModuleCat/Presheaf/Pushforward.lean Modified Mathlib/Algebra/Category/ModuleCat/Presheaf/Sheafify.lean Modified Mathlib/Algebra/Category/ModuleCat/Sheaf/Colimits.lean Modified Mathlib/Algebra/Homology/DerivedCategory/Basic.lean Modified Mathlib/Algebra/Homology/DerivedCategory/FullyFaithful.lean Modified Mathlib/Algebra/Homology/GrothendieckAbelian.lean Modified Mathlib/Algebra/Homology/HomotopyCategory.lean Modified Mathlib/Algebra/Homology/HomotopyCategory/ShiftSequence.lean Modified Mathlib/Algebra/Homology/Localization.lean Modified Mathlib/Algebra/Homology/ShortComplex/FunctorEquivalence.lean Modified Mathlib/Algebra/Homology/ShortComplex/HomologicalComplex.lean Modified Mathlib/Algebra/Homology/ShortComplex/Limits.lean Modified Mathlib/AlgebraicGeometry/AffineScheme.lean Modified Mathlib/AlgebraicGeometry/AffineTransitionLimit.lean Modified Mathlib/AlgebraicGeometry/Spec.lean Modified Mathlib/AlgebraicTopology/DoldKan/Compatibility.lean Modified Mathlib/AlgebraicTopology/DoldKan/Equivalence.lean Modified Mathlib/AlgebraicTopology/DoldKan/GammaCompN.lean Modified Mathlib/AlgebraicTopology/DoldKan/NCompGamma.lean Modified Mathlib/AlgebraicTopology/SimplexCategory/Augmented.lean Modified Mathlib/AlgebraicTopology/SimplicialSet/Path.lean Modified Mathlib/AlgebraicTopology/SingularHomology/Basic.lean Modified Mathlib/CategoryTheory/Abelian/GrothendieckAxioms/Basic.lean Modified Mathlib/CategoryTheory/Abelian/LeftDerived.lean Modified Mathlib/CategoryTheory/Abelian/RightDerived.lean Modified Mathlib/CategoryTheory/Adhesive.lean Modified Mathlib/CategoryTheory/Adjunction/Basic.lean Modified Mathlib/CategoryTheory/Adjunction/FullyFaithful.lean Modified Mathlib/CategoryTheory/Adjunction/Lifting/Left.lean Modified Mathlib/CategoryTheory/Adjunction/Lifting/Right.lean Modified Mathlib/CategoryTheory/Adjunction/Mates.lean Modified Mathlib/CategoryTheory/Adjunction/Parametrized.lean Modified Mathlib/CategoryTheory/Adjunction/Unique.lean Modified Mathlib/CategoryTheory/Adjunction/Whiskering.lean Modified Mathlib/CategoryTheory/CatCommSq.lean Modified Mathlib/CategoryTheory/Category/Cat.lean Modified Mathlib/CategoryTheory/Center/Localization.lean Modified Mathlib/CategoryTheory/Closed/Functor.lean Modified Mathlib/CategoryTheory/Closed/Types.lean Modified Mathlib/CategoryTheory/Comma/Presheaf/Basic.lean Modified Mathlib/CategoryTheory/Comma/Presheaf/Colimit.lean Modified Mathlib/CategoryTheory/Comma/StructuredArrow/Basic.lean Modified Mathlib/CategoryTheory/Comma/StructuredArrow/Functor.lean Modified Mathlib/CategoryTheory/ComposableArrows.lean Modified Mathlib/CategoryTheory/Core.lean Modified Mathlib/CategoryTheory/Distributive/Monoidal.lean Modified Mathlib/CategoryTheory/Enriched/FunctorCategory.lean Modified Mathlib/CategoryTheory/Extensive.lean Modified Mathlib/CategoryTheory/FiberedCategory/BasedCategory.lean Modified Mathlib/CategoryTheory/Filtered/Small.lean Modified Mathlib/CategoryTheory/Functor/Currying.lean + def CategoryTheory.Functor.curry + def CategoryTheory.Functor.curryObj + def CategoryTheory.Functor.curryObjProdComp + def CategoryTheory.Functor.currying + def CategoryTheory.Functor.flipIsoCurrySwapUncurry + def CategoryTheory.Functor.fullyFaithfulUncurry + def CategoryTheory.Functor.uncurry + def CategoryTheory.Functor.uncurryObjFlip + def CategoryTheory.Functor.whiskeringRight₂ - def CategoryTheory.curry - def CategoryTheory.curryObj - def CategoryTheory.curryObjProdComp - def CategoryTheory.currying - def CategoryTheory.flipIsoCurrySwapUncurry - def CategoryTheory.fullyFaithfulUncurry - def CategoryTheory.uncurry - def CategoryTheory.uncurryObjFlip - def CategoryTheory.whiskeringRight₂ Modified Mathlib/CategoryTheory/Functor/CurryingThree.lean + def CategoryTheory.Functor.bifunctorComp₁₂Iso + def CategoryTheory.Functor.bifunctorComp₂₃Iso + def CategoryTheory.Functor.currying₃ + theorem CategoryTheory.Functor.currying₃_unitIso_hom_app_app_app_app + theorem CategoryTheory.Functor.currying₃_unitIso_inv_app_app_app_app + def CategoryTheory.Functor.curry₃ObjProdComp + theorem CategoryTheory.Functor.curry₃_map_app_app_app + theorem CategoryTheory.Functor.curry₃_obj_map_app_app + theorem CategoryTheory.Functor.curry₃_obj_obj_map_app + theorem CategoryTheory.Functor.curry₃_obj_obj_obj_map + def CategoryTheory.Functor.fullyFaithfulUncurry₃ - def CategoryTheory.bifunctorComp₁₂Iso - def CategoryTheory.bifunctorComp₂₃Iso - def CategoryTheory.currying₃ - theorem CategoryTheory.currying₃_unitIso_hom_app_app_app_app - theorem CategoryTheory.currying₃_unitIso_inv_app_app_app_app - def CategoryTheory.curry₃ObjProdComp - theorem CategoryTheory.curry₃_map_app_app_app - theorem CategoryTheory.curry₃_obj_map_app_app - theorem CategoryTheory.curry₃_obj_obj_map_app - theorem CategoryTheory.curry₃_obj_obj_obj_map - def CategoryTheory.fullyFaithfulUncurry₃ Modified Mathlib/CategoryTheory/Functor/Flat.lean Modified Mathlib/CategoryTheory/Functor/KanExtension/Basic.lean Modified Mathlib/CategoryTheory/Functor/TwoSquare.lean Modified Mathlib/CategoryTheory/Generator/Preadditive.lean Modified Mathlib/CategoryTheory/Grothendieck.lean Modified Mathlib/CategoryTheory/GuitartExact/VerticalComposition.lean Modified Mathlib/CategoryTheory/Idempotents/FunctorCategories.lean Modified Mathlib/CategoryTheory/Idempotents/FunctorExtension.lean Modified Mathlib/CategoryTheory/IsConnected.lean Modified Mathlib/CategoryTheory/Join/Basic.lean Modified Mathlib/CategoryTheory/Join/Opposites.lean Modified Mathlib/CategoryTheory/Join/Pseudofunctor.lean Modified Mathlib/CategoryTheory/Limits/ColimitLimit.lean Modified Mathlib/CategoryTheory/Limits/Comma.lean Modified Mathlib/CategoryTheory/Limits/Constructions/Filtered.lean Modified Mathlib/CategoryTheory/Limits/Creates.lean Modified Mathlib/CategoryTheory/Limits/ExactFunctor.lean Modified Mathlib/CategoryTheory/Limits/FilteredColimitCommutesFiniteLimit.lean Modified Mathlib/CategoryTheory/Limits/Fubini.lean Modified Mathlib/CategoryTheory/Limits/FunctorCategory/EpiMono.lean Modified Mathlib/CategoryTheory/Limits/IndYoneda.lean Modified Mathlib/CategoryTheory/Limits/Indization/Category.lean Modified Mathlib/CategoryTheory/Limits/Indization/Equalizers.lean Modified Mathlib/CategoryTheory/Limits/Indization/FilteredColimits.lean Modified Mathlib/CategoryTheory/Limits/Indization/ParallelPair.lean Modified Mathlib/CategoryTheory/Limits/Preserves/Basic.lean Modified Mathlib/CategoryTheory/Limits/Preserves/Bifunctor.lean Modified Mathlib/CategoryTheory/Limits/Preserves/FunctorCategory.lean Modified Mathlib/CategoryTheory/Limits/Preserves/Grothendieck.lean Modified Mathlib/CategoryTheory/Limits/Preserves/Limits.lean +/- def CategoryTheory.preservesColimitNatIso +/- def CategoryTheory.preservesLimitNatIso Modified Mathlib/CategoryTheory/Limits/Preserves/Presheaf.lean Modified Mathlib/CategoryTheory/Limits/Preserves/Yoneda.lean Modified Mathlib/CategoryTheory/Limits/Presheaf.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Grothendieck.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Preorder/TransfiniteCompositionOfShape.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Pullback/Categorical/Basic.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Reflexive.lean Modified Mathlib/CategoryTheory/Limits/VanKampen.lean Modified Mathlib/CategoryTheory/Linear/Yoneda.lean Modified Mathlib/CategoryTheory/Localization/Adjunction.lean Modified Mathlib/CategoryTheory/Localization/Bifunctor.lean Modified Mathlib/CategoryTheory/Localization/Construction.lean Modified Mathlib/CategoryTheory/Localization/DerivabilityStructure/Basic.lean Modified Mathlib/CategoryTheory/Localization/FiniteProducts.lean Modified Mathlib/CategoryTheory/Localization/HomEquiv.lean Modified Mathlib/CategoryTheory/Localization/LocalizerMorphism.lean Modified Mathlib/CategoryTheory/Localization/LocallySmall.lean Modified Mathlib/CategoryTheory/Localization/Monoidal.lean Modified Mathlib/CategoryTheory/Localization/Predicate.lean Modified Mathlib/CategoryTheory/Localization/Prod.lean Modified Mathlib/CategoryTheory/Localization/SmallHom.lean Modified Mathlib/CategoryTheory/Localization/Trifunctor.lean Modified Mathlib/CategoryTheory/Monad/Adjunction.lean Modified Mathlib/CategoryTheory/Monad/Limits.lean Modified Mathlib/CategoryTheory/Monoidal/Cartesian/Basic.lean Modified Mathlib/CategoryTheory/Monoidal/Cartesian/Grp_.lean Modified Mathlib/CategoryTheory/Monoidal/Cartesian/Mon_.lean Modified Mathlib/CategoryTheory/Monoidal/DayConvolution.lean Modified Mathlib/CategoryTheory/Monoidal/End.lean Modified Mathlib/CategoryTheory/Monoidal/ExternalProduct.lean Modified Mathlib/CategoryTheory/Monoidal/Free/Coherence.lean Modified Mathlib/CategoryTheory/Monoidal/Internal/FunctorCategory.lean Modified Mathlib/CategoryTheory/MorphismProperty/FunctorCategory.lean Modified Mathlib/CategoryTheory/MorphismProperty/Limits.lean Modified Mathlib/CategoryTheory/Opposites.lean Modified Mathlib/CategoryTheory/Pi/Basic.lean Modified Mathlib/CategoryTheory/Preadditive/Mat.lean Modified Mathlib/CategoryTheory/Preadditive/Yoneda/Basic.lean Modified Mathlib/CategoryTheory/Products/Basic.lean Modified Mathlib/CategoryTheory/Quotient.lean Modified Mathlib/CategoryTheory/Shift/Adjunction.lean Modified Mathlib/CategoryTheory/Shift/Basic.lean Modified Mathlib/CategoryTheory/Shift/CommShift.lean Modified Mathlib/CategoryTheory/Shift/Induced.lean Modified Mathlib/CategoryTheory/Shift/InducedShiftSequence.lean Modified Mathlib/CategoryTheory/Shift/Localization.lean Modified Mathlib/CategoryTheory/Shift/Quotient.lean Modified Mathlib/CategoryTheory/Shift/SingleFunctors.lean Modified Mathlib/CategoryTheory/Sigma/Basic.lean Modified Mathlib/CategoryTheory/Sites/Adjunction.lean Modified Mathlib/CategoryTheory/Sites/Coherent/Equivalence.lean Modified Mathlib/CategoryTheory/Sites/Coherent/LocallySurjective.lean Modified Mathlib/CategoryTheory/Sites/CompatiblePlus.lean Modified Mathlib/CategoryTheory/Sites/CompatibleSheafification.lean Modified Mathlib/CategoryTheory/Sites/ConcreteSheafification.lean Modified Mathlib/CategoryTheory/Sites/EpiMono.lean Modified Mathlib/CategoryTheory/Sites/LeftExact.lean Modified Mathlib/CategoryTheory/Sites/Limits.lean Modified Mathlib/CategoryTheory/Sites/LocallyInjective.lean Modified Mathlib/CategoryTheory/Sites/LocallySurjective.lean Modified Mathlib/CategoryTheory/Sites/MayerVietorisSquare.lean Modified Mathlib/CategoryTheory/Sites/PreservesSheafification.lean Modified Mathlib/CategoryTheory/Sites/Sheaf.lean Modified Mathlib/CategoryTheory/Sites/SheafCohomology/Basic.lean Modified Mathlib/CategoryTheory/Sites/SheafHom.lean Modified Mathlib/CategoryTheory/Sites/Whiskering.lean Modified Mathlib/CategoryTheory/SmallObject/IsCardinalForSmallObjectArgument.lean Modified Mathlib/CategoryTheory/SmallObject/Iteration/Basic.lean Modified Mathlib/CategoryTheory/Subobject/Lattice.lean Modified Mathlib/CategoryTheory/Subobject/MonoOver.lean Modified Mathlib/CategoryTheory/Sums/Associator.lean Modified Mathlib/CategoryTheory/Sums/Products.lean Modified Mathlib/CategoryTheory/Triangulated/Opposite/Basic.lean Modified Mathlib/CategoryTheory/Triangulated/TriangleShift.lean Modified Mathlib/CategoryTheory/Whiskering.lean +/- def CategoryTheory.Functor.FullyFaithful.whiskeringRight + theorem CategoryTheory.Functor.NatTrans.hcomp_eq_whiskerLeft_comp_whiskerRight + theorem CategoryTheory.Functor.hcomp_id + theorem CategoryTheory.Functor.id_hcomp + theorem CategoryTheory.Functor.inv_whiskerLeft + theorem CategoryTheory.Functor.inv_whiskerRight + def CategoryTheory.Functor.isoWhiskerLeft + theorem CategoryTheory.Functor.isoWhiskerLeft_hom + theorem CategoryTheory.Functor.isoWhiskerLeft_inv + theorem CategoryTheory.Functor.isoWhiskerLeft_refl + theorem CategoryTheory.Functor.isoWhiskerLeft_right + theorem CategoryTheory.Functor.isoWhiskerLeft_symm + theorem CategoryTheory.Functor.isoWhiskerLeft_trans + theorem CategoryTheory.Functor.isoWhiskerLeft_trans_isoWhiskerRight + theorem CategoryTheory.Functor.isoWhiskerLeft_twice + def CategoryTheory.Functor.isoWhiskerRight + theorem CategoryTheory.Functor.isoWhiskerRight_hom + theorem CategoryTheory.Functor.isoWhiskerRight_inv + theorem CategoryTheory.Functor.isoWhiskerRight_left + theorem CategoryTheory.Functor.isoWhiskerRight_refl + theorem CategoryTheory.Functor.isoWhiskerRight_symm + theorem CategoryTheory.Functor.isoWhiskerRight_trans + theorem CategoryTheory.Functor.isoWhiskerRight_twice +/- def CategoryTheory.Functor.postcompose₂ +/- def CategoryTheory.Functor.postcompose₃ + def CategoryTheory.Functor.whiskerLeft + theorem CategoryTheory.Functor.whiskerLeft_comp + theorem CategoryTheory.Functor.whiskerLeft_comp_whiskerRight + theorem CategoryTheory.Functor.whiskerLeft_id' + theorem CategoryTheory.Functor.whiskerLeft_id + theorem CategoryTheory.Functor.whiskerLeft_twice + def CategoryTheory.Functor.whiskerRight + theorem CategoryTheory.Functor.whiskerRight_comp + theorem CategoryTheory.Functor.whiskerRight_id' + theorem CategoryTheory.Functor.whiskerRight_id + theorem CategoryTheory.Functor.whiskerRight_left + theorem CategoryTheory.Functor.whiskerRight_twice + def CategoryTheory.Functor.whiskeringLeft + def CategoryTheory.Functor.whiskeringLeftObjCompIso + def CategoryTheory.Functor.whiskeringLeftObjIdIso + theorem CategoryTheory.Functor.whiskeringLeft_obj_comp + theorem CategoryTheory.Functor.whiskeringLeft_obj_id + def CategoryTheory.Functor.whiskeringLeft₂ + def CategoryTheory.Functor.whiskeringLeft₃ + def CategoryTheory.Functor.whiskeringLeft₃Map + def CategoryTheory.Functor.whiskeringLeft₃Obj + def CategoryTheory.Functor.whiskeringLeft₃ObjMap + def CategoryTheory.Functor.whiskeringLeft₃ObjObj + def CategoryTheory.Functor.whiskeringLeft₃ObjObjMap + def CategoryTheory.Functor.whiskeringLeft₃ObjObjObj + def CategoryTheory.Functor.whiskeringRight + def CategoryTheory.Functor.whiskeringRightObjCompIso + def CategoryTheory.Functor.whiskeringRightObjIdIso + theorem CategoryTheory.Functor.whiskeringRight_obj_comp + theorem CategoryTheory.Functor.whiskeringRight_obj_id - theorem CategoryTheory.NatTrans.hcomp_eq_whiskerLeft_comp_whiskerRight - theorem CategoryTheory.NatTrans.hcomp_id - theorem CategoryTheory.NatTrans.id_hcomp - theorem CategoryTheory.inv_whiskerLeft - theorem CategoryTheory.inv_whiskerRight - def CategoryTheory.isoWhiskerLeft - theorem CategoryTheory.isoWhiskerLeft_hom - theorem CategoryTheory.isoWhiskerLeft_inv - theorem CategoryTheory.isoWhiskerLeft_refl - theorem CategoryTheory.isoWhiskerLeft_right - theorem CategoryTheory.isoWhiskerLeft_symm - theorem CategoryTheory.isoWhiskerLeft_trans - theorem CategoryTheory.isoWhiskerLeft_trans_isoWhiskerRight - theorem CategoryTheory.isoWhiskerLeft_twice - def CategoryTheory.isoWhiskerRight - theorem CategoryTheory.isoWhiskerRight_hom - theorem CategoryTheory.isoWhiskerRight_inv - theorem CategoryTheory.isoWhiskerRight_left - theorem CategoryTheory.isoWhiskerRight_refl - theorem CategoryTheory.isoWhiskerRight_symm - theorem CategoryTheory.isoWhiskerRight_trans - theorem CategoryTheory.isoWhiskerRight_twice - def CategoryTheory.whiskerLeft - theorem CategoryTheory.whiskerLeft_comp - theorem CategoryTheory.whiskerLeft_comp_whiskerRight - theorem CategoryTheory.whiskerLeft_id' - theorem CategoryTheory.whiskerLeft_id - theorem CategoryTheory.whiskerLeft_twice - def CategoryTheory.whiskerRight - theorem CategoryTheory.whiskerRight_comp - theorem CategoryTheory.whiskerRight_id' - theorem CategoryTheory.whiskerRight_id - theorem CategoryTheory.whiskerRight_left - theorem CategoryTheory.whiskerRight_twice - def CategoryTheory.whiskeringLeft - def CategoryTheory.whiskeringLeftObjCompIso - def CategoryTheory.whiskeringLeftObjIdIso - theorem CategoryTheory.whiskeringLeft_obj_comp - theorem CategoryTheory.whiskeringLeft_obj_id - def CategoryTheory.whiskeringLeft₂ - def CategoryTheory.whiskeringLeft₃ - def CategoryTheory.whiskeringLeft₃Map - def CategoryTheory.whiskeringLeft₃Obj - def CategoryTheory.whiskeringLeft₃ObjMap - def CategoryTheory.whiskeringLeft₃ObjObj - def CategoryTheory.whiskeringLeft₃ObjObjMap - def CategoryTheory.whiskeringLeft₃ObjObjObj - def CategoryTheory.whiskeringRight - def CategoryTheory.whiskeringRightObjCompIso - def CategoryTheory.whiskeringRightObjIdIso - theorem CategoryTheory.whiskeringRight_obj_comp - theorem CategoryTheory.whiskeringRight_obj_id Modified Mathlib/CategoryTheory/WithTerminal/Basic.lean Modified Mathlib/CategoryTheory/WithTerminal/Cone.lean Modified Mathlib/CategoryTheory/Yoneda.lean Modified Mathlib/Geometry/RingedSpace/OpenImmersion.lean Modified Mathlib/Topology/Category/Compactum.lean Modified Mathlib/Topology/Category/LightProfinite/Basic.lean Modified Mathlib/Topology/Sheaves/Presheaf.lean Modified Mathlib/Topology/Sheaves/Skyscraper.lean Modified Mathlib/Topology/Sheaves/Stalks.lean 2025-07-02 09:20:43 5e98910 chore: fix lakefile.lean dependencies (#26585) Oops, I messed these up in the bump to v4.22.0-rc2. ESTIMATED CHANGES Modified lake-manifest.json Modified lakefile.lean 2025-07-02 08:48:26 5ac5517 feat(RingTheory): lemmas about `TensorProduct` and `IsBaseChange` (#26297) Add lemmas about `TensorProduct` and `IsBaseChange`. These are used to prove that [RingTheory.Sequence.IsWeaklyRegular](https://leanprover-community.github.io/mathlib4_docs/Mathlib/RingTheory/Regular/RegularSequence.html#RingTheory.Sequence.IsWeaklyRegular) is stable under flat base change and [RingTheory.Sequence.IsRegular](https://leanprover-community.github.io/mathlib4_docs/Mathlib/RingTheory/Regular/RegularSequence.html#RingTheory.Sequence.IsRegular) is stable under faithfully flat base change. ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/Quotient/Defs.lean + theorem Submodule.Quotient.mk_out Modified Mathlib/LinearAlgebra/TensorProduct/Basic.lean + theorem LinearMap.smul_lTensor + theorem TensorProduct.tsmul_eq_smul_one_tuml Modified Mathlib/LinearAlgebra/TensorProduct/Quotient.lean Modified Mathlib/RingTheory/Flat/FaithfullyFlat/Basic.lean Modified Mathlib/RingTheory/IsTensorProduct.lean Modified Mathlib/RingTheory/QuotSMulTop.lean 2025-07-02 03:33:48 84a77ee chore(Algebra.Order.Group.Cyclic): generalize Subgroup.genLTOne (#26584) Generalize `Subgroup.genLTOne` so that it assumes that the subgroup itself is cyclic, rather than the ambient group. ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Group/Cyclic.lean +/- theorem LinearOrderedCommGroup.Subgroup.genLTOne_lt_one +/- theorem LinearOrderedCommGroup.Subgroup.genLTOne_zpowers_eq_top 2025-07-02 03:33:46 b5230b4 chore: deprecate Mathlib.Algebra.Ring.Hom.Basic (#26562) It was emptied in #25447. ESTIMATED CHANGES Modified Mathlib/Algebra/Ring/Hom/Basic.lean 2025-07-02 03:33:45 fcc863c feat(RingTheory): resultant of two polynomials (#26285) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/RingTheory/Polynomial/Resultant/Basic.lean + def Polynomial.resultant + theorem Polynomial.resultant_C_right + theorem Polynomial.resultant_C_zero_right + def Polynomial.sylvester + theorem Polynomial.sylvester_C_right 2025-07-02 03:33:44 97ef81e feat(AlgebraicTopology): application of the retract argument to model categories (#26166) Basic consequences of the retract argument are obtained for model categories: cofibrations are exactly the morphisms that have the left lifting property with respect to trivial fibrations, etc. We deduce various properties of cofibrations, fibrations and weak equivalences in model categories (e.g. they are stable by composition). ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/AlgebraicTopology/ModelCategory/Basic.lean + def HomotopicalAlgebra.ModelCategory.mk' Added Mathlib/AlgebraicTopology/ModelCategory/Instances.lean + theorem HomotopicalAlgebra.cofibrations_rlp + theorem HomotopicalAlgebra.fibrations_llp + theorem HomotopicalAlgebra.trivialCofibrations_rlp + theorem HomotopicalAlgebra.trivialFibrations_llp + theorem HomotopicalAlgebra.weakEquivalence_of_postcomp + theorem HomotopicalAlgebra.weakEquivalence_of_postcomp_of_fac + theorem HomotopicalAlgebra.weakEquivalence_of_precomp + theorem HomotopicalAlgebra.weakEquivalence_of_precomp_of_fac + theorem HomotopicalAlgebra.weakEquivalence_postcomp_iff + theorem HomotopicalAlgebra.weakEquivalence_precomp_iff 2025-07-02 03:33:42 b4fc241 feat(Topology): every compact metric space can be embedded into the Hilbert cube (#26027) Prove `exists_closed_embedding_to_hilbert_cube`: every compact metric space can be embedded into the Hilbert cube. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Topology/Compactness/HilbertCubeEmbedding.lean + theorem exists_closed_embedding_to_hilbert_cube Modified Mathlib/Topology/MetricSpace/Bounded.lean + theorem Metric.diam_pos 2025-07-02 03:33:40 30ab8aa feat: `ofNat(n) • a = ofNat(n) * a` (#25897) From Toric ESTIMATED CHANGES Modified Mathlib/Data/Nat/Cast/Basic.lean + theorem Nat.ofNat_nsmul_eq_mul 2025-07-02 03:33:39 fcbb803 feat(RepresentationTheory/GroupCohomology): long exact sequences (#25872) Given a commutative ring `k` and a group `G`, this PR shows that a short exact sequence of `k`-linear `G`-representations `0 ⟶ X₁ ⟶ X₂ ⟶ X₃ ⟶ 0` induces a short exact sequence of complexes `0 ⟶ inhomogeneousCochains X₁ ⟶ inhomogeneousCochains X₂ ⟶ inhomogeneousCochains X₃ ⟶ 0`. Since the cohomology of `inhomogeneousCochains Xᵢ` is the group cohomology of `Xᵢ`, this allows us to specialize API about long exact sequences to group cohomology. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Homology/ConcreteCategory.lean + theorem CategoryTheory.ShortComplex.ShortExact.d_eq_zero_of_f_eq_d_apply Modified Mathlib/Algebra/Homology/HomologySequence.lean + theorem CategoryTheory.ShortComplex.ShortExact.epi_δ + theorem CategoryTheory.ShortComplex.ShortExact.isIso_δ + theorem CategoryTheory.ShortComplex.ShortExact.mono_δ Modified Mathlib/Algebra/Homology/ShortComplex/SnakeLemma.lean + theorem CategoryTheory.ShortComplex.SnakeInput.epi_δ + theorem CategoryTheory.ShortComplex.SnakeInput.isIso_δ + theorem CategoryTheory.ShortComplex.SnakeInput.mono_δ Modified Mathlib/LinearAlgebra/Pi.lean + theorem LinearMap.ker_compLeft + theorem LinearMap.range_compLeft Modified Mathlib/RepresentationTheory/Homological/GroupCohomology/Basic.lean + theorem groupCohomology.iCocycles_mk Added Mathlib/RepresentationTheory/Homological/GroupCohomology/LongExactSequence.lean + theorem groupCohomology.epi_δ_of_isZero + theorem groupCohomology.isIso_δ_of_isZero + theorem groupCohomology.mapShortComplex₁_exact + theorem groupCohomology.mapShortComplex₂_exact + theorem groupCohomology.mapShortComplex₃_exact + theorem groupCohomology.map_cochainsFunctor_shortExact + theorem groupCohomology.mem_oneCocycles_of_comp_eq_dZero + theorem groupCohomology.mem_twoCocycles_of_comp_eq_dOne + theorem groupCohomology.mono_δ_of_isZero + theorem groupCohomology.δ_apply + theorem groupCohomology.δ₀_apply + theorem groupCohomology.δ₁_apply Modified Mathlib/RepresentationTheory/Homological/GroupCohomology/LowDegree.lean + theorem groupCohomology.cocyclesMk_0_eq + theorem groupCohomology.cocyclesMk_1_eq + theorem groupCohomology.cocyclesMk_2_eq 2025-07-02 03:08:38 3675c9a feat(Algebra/Order/Floor): `⌊n * x⌋₊ / n = ⌊x⌋₊` (#26004) Prove that `⌊n * x⌋₊ / n = ⌊x⌋₊` for natural `n`. ESTIMATED CHANGES Modified Archive/Wiedijk100Theorems/SumOfPrimeReciprocalsDiverges.lean Modified Mathlib/Algebra/Order/Floor/Ring.lean + theorem Int.cast_mul_floor_div_cancel_of_pos + theorem Int.floor_div_cast_of_nonneg + theorem Int.floor_div_natCast + theorem Int.mul_cast_floor_div_cancel_of_pos + theorem Int.mul_natCast_floor_div_cancel + theorem Int.natCast_mul_floor_div_cancel Modified Mathlib/Algebra/Order/Floor/Semiring.lean + theorem Nat.cast_mul_floor_div_cancel + theorem Nat.mul_cast_floor_div_cancel Modified Mathlib/Data/EReal/Inv.lean 2025-07-02 01:45:13 ffc1c97 feat(RingTheory/Valuation): le_one_of_subsingleton (#26511) to provide `nontriviality` a helper simp lemma ESTIMATED CHANGES Modified Mathlib/RingTheory/Valuation/Basic.lean + theorem Valuation.le_one_of_subsingleton 2025-07-02 01:45:12 2d07900 feat(RingTheory/Valuation): IsNontrivial.exists_one_lt (#26509) And provide instance of IsNontrivial for RankOne. ESTIMATED CHANGES Modified Mathlib/RingTheory/Valuation/Basic.lean + theorem Valuation.IsNontrivial.exists_lt_one + theorem Valuation.IsNontrivial.exists_one_lt + theorem Valuation.IsNontrivial.nontrivial_codomain +/- theorem Valuation.isNontrivial_iff_exists_unit Modified Mathlib/RingTheory/Valuation/RankOne.lean 2025-07-02 01:29:35 b9f8e71 feature(Algebra/Polynomial/Roots) : nthRoots_two_one (#26224) This PR continues the work from #24828. Original PR: https://github.com/leanprover-community/mathlib4/pull/24828 ESTIMATED CHANGES Modified Mathlib/Algebra/Polynomial/Roots.lean + theorem Polynomial.nthRoots_two_one 2025-07-02 01:10:59 ccfd25c chore: make nightly-testing status bot more robust (#26605) This bot seems to have reported in error at [#nightly-testing > Mathlib status updates @ 💬](https://leanprover.zulipchat.com/#narrow/channel/428973-nightly-testing/topic/Mathlib.20status.20updates/near/526702061), so we make it more robust. ESTIMATED CHANGES Modified .github/workflows/nightly_detect_failure.yml 2025-07-02 00:11:43 3521290 chore: rename contenIdeal_zero (#26599) ESTIMATED CHANGES Modified Mathlib/RingTheory/Polynomial/ContentIdeal.lean - theorem Polynomial.contenIdeal_zero + theorem Polynomial.contentIdeal_zero 2025-07-01 23:25:05 2d1d088 feat(ValuativeRel): Commutative rings endowed with a valuative relation (#26167) WIP -- comments welcome Commutative rings endowed with a valuative preorder (that is, a preorder arising from a valuation). This is equivalent to endowing a commutative ring with an *equivalence class* of a valuation, as opposed to an actual valuation. There is a "canonical" choice of a valuation associated to a valuative preorder obtain similarly to how one constructs a valuation from a valuation subring of a field. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/RingTheory/Valuation/ValuativeRel.lean + def ValuativeExtension.mapPosSubmonoid + def ValuativeExtension.mapValueGroupWithZero + theorem ValuativeExtension.mapValueGroupWithZero_valuation + structure ValuativeRel.RankLeOneStruct + theorem ValuativeRel.ValueGroupWithZero.bot_eq_zero + theorem ValuativeRel.ValueGroupWithZero.exact + theorem ValuativeRel.ValueGroupWithZero.ind + theorem ValuativeRel.ValueGroupWithZero.inv_mk + def ValuativeRel.ValueGroupWithZero.lift + theorem ValuativeRel.ValueGroupWithZero.lift_mk + def ValuativeRel.ValueGroupWithZero.lift₂ + theorem ValuativeRel.ValueGroupWithZero.lift₂_mk + def ValuativeRel.ValueGroupWithZero.mk + theorem ValuativeRel.ValueGroupWithZero.mk_eq_mk + theorem ValuativeRel.ValueGroupWithZero.mk_eq_zero + theorem ValuativeRel.ValueGroupWithZero.mk_le_mk + theorem ValuativeRel.ValueGroupWithZero.mk_mul_mk + theorem ValuativeRel.ValueGroupWithZero.mk_one_one + theorem ValuativeRel.ValueGroupWithZero.mk_self + theorem ValuativeRel.ValueGroupWithZero.mk_zero + theorem ValuativeRel.ValueGroupWithZero.sound + def ValuativeRel.ValueGroupWithZero + def ValuativeRel.WithPreorder + theorem ValuativeRel.isEquiv + theorem ValuativeRel.left_cancel_posSubmonoid + def ValuativeRel.ofValuation + def ValuativeRel.posSubmonoid + theorem ValuativeRel.posSubmonoid_def + theorem ValuativeRel.rel_add_cases + theorem ValuativeRel.rel_mul + theorem ValuativeRel.rel_mul_left + theorem ValuativeRel.rel_refl + theorem ValuativeRel.rel_rfl + theorem ValuativeRel.right_cancel_posSubmonoid + def ValuativeRel.supp + theorem ValuativeRel.supp_def + theorem ValuativeRel.supp_eq_valuation_supp + def ValuativeRel.valuation + theorem ValuativeRel.valuation_surjective + def ValuativeRel.valueSetoid + theorem ValuativeRel.zero_rel Modified Mathlib/Topology/Algebra/Valued/ValuationTopology.lean 2025-07-01 22:27:39 422ef60 chore(CI): print the remote extraction logic for url remote names (#26600) We print the remote name extractions from the remote in the case the remote name is a URL, like with `gh pr checkout`, to compare to the upload steps in CI in advance of deploying the changes. ESTIMATED CHANGES Modified Cache/Requests.lean 2025-07-01 21:58:47 a51c004 chore: disable `--fail` flag in curl (#26367) See Zulip discussion at [#mathlib4 > lake exe cache get very slow @ 💬](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/lake.20exe.20cache.20get.20very.20slow/near/523788423) This is a very big improvement for me on curl 8.13.0 (download goes from 2 hours to 5 seconds!), but I haven't tested if this has bad consequences on other curl versions. ESTIMATED CHANGES Modified Cache/Requests.lean 2025-07-01 21:41:17 3fdfb24 feat: fix definition of `IsIntegralCurveOn` for consistency (#26533) I change the definition of `IsIntegralCurveOn` to use `HasMFDerivWithinAt`, rather than `HasMFDerivAt`, so as to make this definition consistent with `DifferentiableOn` and `ContinuousOn`. While the API around it slightly changes, there is no effect on the statement of any downstream lemmas. ESTIMATED CHANGES Modified Mathlib/Geometry/Manifold/IntegralCurve/Basic.lean - theorem IsIntegralCurveOn.continuousAt + theorem IsIntegralCurveOn.continuousWithinAt - theorem IsIntegralCurveOn.hasDerivAt + theorem IsIntegralCurveOn.hasDerivWithinAt - theorem IsIntegralCurveOn.of_union Modified Mathlib/Geometry/Manifold/IntegralCurve/ExistUnique.lean Modified Mathlib/Geometry/Manifold/IntegralCurve/Transform.lean Modified Mathlib/Geometry/Manifold/IntegralCurve/UniformTime.lean 2025-07-01 20:53:09 d31f194 feat: initial use of `@[grind]` in `Logic/Equiv` (#26569) This PR begins using `grind` in `Logic/Equiv`. ESTIMATED CHANGES Modified Mathlib/Data/Prod/PProd.lean Modified Mathlib/Logic/Equiv/Defs.lean +/- theorem Equiv.apply_symm_apply +/- theorem Equiv.coe_fn_mk +/- theorem Equiv.symm_apply_apply Modified Mathlib/Logic/Equiv/Prod.lean +/- def Equiv.boolArrowEquivProd Modified Mathlib/Logic/Function/Defs.lean Modified scripts/noshake.json 2025-07-01 20:12:16 09f2d3f feat: use grind in Data/Nat/Hyperoperations (#26576) Some nice interactions between `grind`'s ring handling, case splitting, and instantiation. ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Even.lean Modified Mathlib/Data/Nat/Hyperoperation.lean +/- theorem hyperoperation_ge_three_one +/- theorem hyperoperation_one +/- theorem hyperoperation_three +/- theorem hyperoperation_two +/- theorem hyperoperation_zero 2025-07-01 19:28:31 37b8b9e chore(CI): reverts #29593 (#26595) This reverts commit #26593 due to complications with the `--repo` flag in CI. CI gets the name of the user cache from the `repoOwner/branch` but `Cache` internally uses `repoOwner/mathlib4` which causes a mismatch. ESTIMATED CHANGES Modified Cache/Requests.lean 2025-07-01 18:06:56 99042f3 fix(CI): deploy logic from #26551 (#26593) Nothing seems to have broken and the inspected logs have all looked good. We now deploy the logic from #26551. ESTIMATED CHANGES Modified Cache/Requests.lean 2025-07-01 17:58:21 fb9015d chore(CI): remove `check the cache` step from the build workflow (#26590) This step is no longer necessary because there is another check in Post-build CI workflow. Currently, since the cache is not cleared before `get` is called, it is not useful. ESTIMATED CHANGES Modified .github/build.in.yml Modified .github/workflows/bors.yml Modified .github/workflows/build.yml Modified .github/workflows/build_fork.yml 2025-07-01 17:01:35 2edbac0 feat(Tactic/Common): register `grind` as `hint` tactic (#26566) A short PR to register `grind` with the hint tactic. Reviewers, please let me know if something more involved needs to be done for this, I'm happy to work on that too if need be. ESTIMATED CHANGES Modified Mathlib/Tactic/Common.lean 2025-07-01 16:02:26 2928761 feat: use grind in Data/Option/NAry (#26572) This PR shortens some easy proofs in `Data/Option/NAry` using `grind` (and a local `[grind cases Option]` attribute for case bashing). ESTIMATED CHANGES Modified Mathlib/Data/Option/NAry.lean 2025-07-01 16:02:25 8d645f8 feat(CategoryTheory/Limits/Shapes/Pullback): categorical pullbacks (#26366) Given a functor `F : A ⥤ B` and `G : C ⥤ B`, `CategoricalPullback F G` is the category of triples `(a : A, c : C, e : F.obj a ≅ G.obj b)`. This construction is to be thought of as an explicit (unbundled) model of the pseudolimit of the cospan in `Cat` defined by `F` and `G`. To justify this claim, after giving some basic API on `CategoricalPullback`, we construct an equivalence of categories between `X ⥤ CategoricalPullback F G` and `CategoricalPullback (whiskeringRight X A B|>.obj F) (whiskeringRight X C B|>.obj G)`, the latter is by definition the categories of triples `(U : X ⥤ A`, `V : X ⥤ C`, `U ⋙ F ≅ V ⋙ G)`, i.e the category of "categorical commutative squares" with top left corner `X` and lying over the cospan defined by `F` and `G`. This equivalence realizes the universal property of the categorical pullback. This PR is first of a series that aims at bringing API for (2,1)-categorical pullbacks of categories. Further work on the subject includes * Definition of a type-class extending `CatCommSq _ _ F G` that bundles the assumption that a categorical commutative square is a categorical pullback square, by bundling the data of an equivalence with the categorical pullback of `F` and `G` compatible with the 2-isomorphisms. * Full 2-functoriality and equivalence-invariance of this notion. * Horizontal and vertical pasting calculus for categorical pullback squares. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/CategoryTheory/CatCommSq.lean + theorem CategoryTheory.CatCommSq.iso_hom_naturality + theorem CategoryTheory.CatCommSq.iso_inv_naturality Added Mathlib/CategoryTheory/Limits/Shapes/Pullback/Categorical/Basic.lean + theorem CategoryTheory.Limits.CategoricalPullback.CatCommSqOver.iso_hom_naturality + def CategoryTheory.Limits.CategoricalPullback.CatCommSqOver.toFunctorToCategoricalPullback + theorem CategoryTheory.Limits.CategoricalPullback.CatCommSqOver.w_app + theorem CategoryTheory.Limits.CategoricalPullback.Hom.w' + structure CategoryTheory.Limits.CategoricalPullback.Hom + def CategoryTheory.Limits.CategoricalPullback.functorEquiv + theorem CategoryTheory.Limits.CategoricalPullback.hom_ext + theorem CategoryTheory.Limits.CategoricalPullback.inv_fst + theorem CategoryTheory.Limits.CategoricalPullback.inv_snd + theorem CategoryTheory.Limits.CategoricalPullback.isIso_iff + def CategoryTheory.Limits.CategoricalPullback.mkIso + def CategoryTheory.Limits.CategoricalPullback.mkNatIso + theorem CategoryTheory.Limits.CategoricalPullback.mkNatIso_eq + theorem CategoryTheory.Limits.CategoricalPullback.natTrans_ext + def CategoryTheory.Limits.CategoricalPullback.toCatCommSqOver + theorem CategoryTheory.Limits.CategoricalPullback.toCatCommSqOver_mapIso_mkNatIso_eq_mkIso + def CategoryTheory.Limits.CategoricalPullback.π₁ + def CategoryTheory.Limits.CategoricalPullback.π₂ + structure CategoryTheory.Limits.CategoricalPullback 2025-07-01 15:20:50 d385c4b feat: use grind in Data/Nat/Sqrt (#26575) Not super-satisfying. There is still a lot of non-linear arithmetic in this file that we could eventually automate as well. ESTIMATED CHANGES Modified Mathlib/Data/Nat/Sqrt.lean +/- theorem Nat.sqrt_one +/- theorem Nat.sqrt_zero 2025-07-01 14:56:59 7ec0c59 chore: update Mathlib dependencies 2025-07-01 (#26586) This PR updates the Mathlib dependencies. ESTIMATED CHANGES Modified lake-manifest.json 2025-07-01 14:22:34 bc26705 feat(ENNReal): add div_div_cancel (#26557) Two new lemmas, with names matching their group versions. ESTIMATED CHANGES Modified Mathlib/Data/ENNReal/Inv.lean 2025-07-01 13:01:13 56e05c9 chore: update Mathlib dependencies 2025-07-01 (#26583) This PR updates the Mathlib dependencies. ESTIMATED CHANGES Modified lake-manifest.json 2025-07-01 12:15:34 43f5db2 feat(Mathlib/Data/Fin/Pigeonhole): pigeonhole-like results for Fin (#26400) Consider the following settings: ``` import Mathlib example (X Y : Type) [Fintype X] [Fintype Y] (f : X → Y) (hf : f.Injective) : Fintype.card X ≤ Fintype.card Y := by hint example (m n : ℕ) (f : Fin m → Fin n) (hf : f.Injective) : m ≤ n := by hint example (X Y : Type) [Fintype X] [Fintype Y] (f : X ↪ Y) : Fintype.card X ≤ Fintype.card Y := by hint example (m n : ℕ) (f : Fin m ↪ Fin n) : m ≤ n := by hint ``` The 1st and 3rd `hint` succeed, but the 2nd a 4th `hint` fail. The problem is obviously that `exact?` does not see through `Fintype.card (Fin n) = n` when searching for appropriate lemma. It may seem to not be a problem, as it will rarely derail experienced Mathlib users — after all, experienced Leaners usually go directly for the `Finset` or `Fintype` version. However, beginners frequently work with `Fin` and they will expect stuff like ``` theorem le_of_injective (f : Fin m → Fin n) (hf : f.Injective) : m ≤ n ``` to exist; therefore, when `hint` or `exact?` fails, it is a very unpleasant surprise. This PR addressed this issue; not to provide useful content for advanced users, but to make Mathlib more useful for beginners. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Data/Fin/Pigeonhole.lean + theorem Fin.card_range_le + theorem Fin.le_of_embedding + theorem Fin.le_of_injective + theorem Fin.le_of_surjective + theorem Fin.lt_of_injective_of_notMem 2025-07-01 11:28:41 3f03775 chore: reorder arguments in `pathComponentIn` (#26573) `pathComponentIn x F` and `connectedComponentIn F x` have opposite argument orders. I choose to reorder the arguments in `pathComponentIn` for no strong reason. Perhaps one can read, "the path component in F at x". ESTIMATED CHANGES Modified Mathlib/Geometry/Manifold/ChartedSpace.lean Modified Mathlib/Topology/Connected/LocPathConnected.lean +/- theorem pathComponentIn_mem_nhds Modified Mathlib/Topology/Connected/PathConnected.lean +/- theorem isPathConnected_iff_eq +/- theorem isPathConnected_pathComponentIn +/- theorem mem_pathComponentIn_self +/- def pathComponentIn +/- theorem pathComponentIn_congr +/- theorem pathComponentIn_nonempty_iff +/- theorem pathComponentIn_subset +/- theorem pathComponentIn_univ 2025-07-01 11:28:39 1717319 feat: some lemmas about pointwise actions of units on filters and uniformities (#26152) This PR continues the work from #21265. Original PR: https://github.com/leanprover-community/mathlib4/pull/21265 ESTIMATED CHANGES Modified Mathlib/Order/Filter/Pointwise.lean + theorem Filter.smul_tendsto_smul_iff + theorem Filter.smul_tendsto_smul_iff₀ + theorem IsUnit.smul_tendsto_smul_iff Modified Mathlib/Topology/Algebra/UniformMulAction.lean + theorem IsUnit.smul_uniformity + theorem smul_uniformity + theorem smul_uniformity₀ 2025-07-01 11:20:07 b708203 fix/feat(migrate_to_fork.py): filter the automated summary comment as well (#26081) [Zulip discussion](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Feedback.20on.20scripts.2Fmigrate_to_fork.2Epy/near/524149447) ESTIMATED CHANGES Modified scripts/migrate_to_fork.py 2025-07-01 09:54:13 cb87099 feat: the centraliser of a normal subgroup is normal (#26440) This is part of the introductory statements in Matthew Tointon's Approximate Groups. ESTIMATED CHANGES Modified Mathlib/GroupTheory/Subgroup/Centralizer.lean 2025-07-01 09:03:20 5c0c2dc feat: constructor for emetric space with a preexisting topology (#26503) Consider an extended distance on a topological space for which the balls are neighborhoods of points, and such that any neighborhood contains a ball. Then we define the emetric space structure associated to this distance, with a topology defeq to the initial one. ESTIMATED CHANGES Modified Mathlib/Topology/EMetricSpace/Defs.lean +/- def uniformSpaceOfEDist Modified Mathlib/Topology/UniformSpace/OfFun.lean + def UniformSpace.ofFunOfHasBasis 2025-07-01 08:23:58 68f5faa chore(Set/Finite): fix broken link (#26554) ESTIMATED CHANGES Modified Mathlib/Data/Set/Finite/Basic.lean 2025-07-01 07:31:57 81a4b04 chore: spelling (#26568) ESTIMATED CHANGES Modified Mathlib/Analysis/Complex/PhragmenLindelof.lean Modified Mathlib/Analysis/ODE/PicardLindelof.lean Modified Mathlib/Topology/MetricSpace/Contracting.lean 2025-07-01 03:35:39 c8362c2 chore: update Mathlib dependencies 2025-07-01 (#26565) This PR updates the Mathlib dependencies. ESTIMATED CHANGES Modified lake-manifest.json 2025-07-01 00:55:24 1a5c8fe chore: bump toolchain to v4.22.0-rc2 (#26564) This merged the reviewed changes from `bump/v4.22.0`, and updates Mathlib to use the `v4.22.0-rc2` toolchain. ESTIMATED CHANGES Modified Archive/Imo/Imo1987Q1.lean Modified Cache/Lean.lean Modified Counterexamples/DiscreteTopologyNonDiscreteUniformity.lean Modified Mathlib/Algebra/Algebra/NonUnitalSubalgebra.lean Modified Mathlib/Algebra/Algebra/Operations.lean Modified Mathlib/Algebra/Algebra/Subalgebra/Operations.lean Modified Mathlib/Algebra/Algebra/Subalgebra/Pointwise.lean Modified Mathlib/Algebra/Algebra/Unitization.lean Modified Mathlib/Algebra/Algebra/ZMod.lean Modified Mathlib/Algebra/BigOperators/Fin.lean Modified Mathlib/Algebra/BigOperators/Finprod.lean Modified Mathlib/Algebra/BigOperators/Group/List/Basic.lean Modified Mathlib/Algebra/Category/ContinuousCohomology/Basic.lean Modified Mathlib/Algebra/Category/ModuleCat/Topology/Basic.lean Modified Mathlib/Algebra/Category/ModuleCat/Topology/Homology.lean Modified Mathlib/Algebra/Category/MonCat/FilteredColimits.lean Modified Mathlib/Algebra/Category/Ring/Epi.lean Modified Mathlib/Algebra/Category/Ring/FinitePresentation.lean Modified Mathlib/Algebra/Category/Ring/Topology.lean Modified Mathlib/Algebra/CharP/Basic.lean Modified Mathlib/Algebra/CharP/Defs.lean + theorem CharP.cast_eq_iff_mod_eq +/- theorem CharP.cast_eq_mod Modified Mathlib/Algebra/Colimit/Module.lean Modified Mathlib/Algebra/DirectSum/Algebra.lean Modified Mathlib/Algebra/DirectSum/Ring.lean Modified Mathlib/Algebra/DualNumber.lean Modified Mathlib/Algebra/Equiv/TransferInstance.lean Modified Mathlib/Algebra/GCDMonoid/Finset.lean Modified Mathlib/Algebra/Group/Action/Basic.lean Modified Mathlib/Algebra/Group/Basic.lean Modified Mathlib/Algebra/Group/End.lean Modified Mathlib/Algebra/Group/Pointwise/Finset/Basic.lean Modified Mathlib/Algebra/Group/Pointwise/Finset/Scalar.lean +/- theorem Finset.smul_finset_empty Modified Mathlib/Algebra/Group/Pointwise/Set/Basic.lean Modified Mathlib/Algebra/Group/Subgroup/Basic.lean Modified Mathlib/Algebra/GroupWithZero/Action/Defs.lean Modified Mathlib/Algebra/GroupWithZero/NonZeroDivisors.lean Modified Mathlib/Algebra/Lie/CartanExists.lean Modified Mathlib/Algebra/Lie/LieTheorem.lean Modified Mathlib/Algebra/Lie/Weights/Chain.lean Modified Mathlib/Algebra/Lie/Weights/RootSystem.lean Modified Mathlib/Algebra/Module/Equiv/Defs.lean +/- theorem LinearEquiv.coe_addEquiv_apply +/- theorem LinearEquiv.coe_toAddEquiv_symm Modified Mathlib/Algebra/Module/FinitePresentation.lean Modified Mathlib/Algebra/Module/LinearMap/Defs.lean Modified Mathlib/Algebra/Module/Presentation/Basic.lean - def Module.Relations.toQuotient Modified Mathlib/Algebra/MonoidAlgebra/Defs.lean Modified Mathlib/Algebra/MonoidAlgebra/ToDirectSum.lean Modified Mathlib/Algebra/MvPolynomial/Basic.lean Modified Mathlib/Algebra/MvPolynomial/Equiv.lean Modified Mathlib/Algebra/MvPolynomial/Eval.lean Modified Mathlib/Algebra/MvPolynomial/Variables.lean Modified Mathlib/Algebra/NoZeroSMulDivisors/Defs.lean Modified Mathlib/Algebra/Order/Antidiag/Pi.lean Modified Mathlib/Algebra/Order/CauSeq/Completion.lean Modified Mathlib/Algebra/Order/Field/Power.lean Modified Mathlib/Algebra/Order/Ring/Unbundled/Rat.lean Modified Mathlib/Algebra/Polynomial/Bivariate.lean - def AdjoinRoot.evalEval Modified Mathlib/Algebra/Polynomial/Degree/CardPowDegree.lean Modified Mathlib/Algebra/Polynomial/HasseDeriv.lean Modified Mathlib/Algebra/PresentedMonoid/Basic.lean Modified Mathlib/Algebra/Quaternion.lean Modified Mathlib/Algebra/Regular/Pi.lean Modified Mathlib/Algebra/Ring/Basic.lean Modified Mathlib/Algebra/Ring/CentroidHom.lean Modified Mathlib/Algebra/Ring/GrindInstances.lean - theorem CommRing.toGrindCommRing_ofNat + theorem Semiring.toGrindSemiring_ofNat Modified Mathlib/Algebra/Ring/Int/Defs.lean Modified Mathlib/Algebra/RingQuot.lean Modified Mathlib/Algebra/Star/NonUnitalSubalgebra.lean Modified Mathlib/Algebra/Star/NonUnitalSubsemiring.lean Modified Mathlib/AlgebraicGeometry/AffineScheme.lean Modified Mathlib/AlgebraicGeometry/AffineSpace.lean Modified Mathlib/AlgebraicGeometry/AffineTransitionLimit.lean Modified Mathlib/AlgebraicGeometry/GammaSpecAdjunction.lean Modified Mathlib/AlgebraicGeometry/Gluing.lean Modified Mathlib/AlgebraicGeometry/IdealSheaf/Basic.lean - def AlgebraicGeometry.Scheme.kerFunctor Modified Mathlib/AlgebraicGeometry/IdealSheaf/Subscheme.lean Modified Mathlib/AlgebraicGeometry/Limits.lean Modified Mathlib/AlgebraicGeometry/Modules/Tilde.lean Modified Mathlib/AlgebraicGeometry/Morphisms/Affine.lean Modified Mathlib/AlgebraicGeometry/Morphisms/AffineAnd.lean Modified Mathlib/AlgebraicGeometry/Morphisms/Basic.lean Modified Mathlib/AlgebraicGeometry/Morphisms/ClosedImmersion.lean Modified Mathlib/AlgebraicGeometry/Morphisms/Constructors.lean Modified Mathlib/AlgebraicGeometry/Morphisms/Etale.lean - def AlgebraicGeometry.Scheme.Etale.forget - def AlgebraicGeometry.Scheme.Etale.forgetFullyFaithful Modified Mathlib/AlgebraicGeometry/Morphisms/Finite.lean Modified Mathlib/AlgebraicGeometry/Morphisms/FinitePresentation.lean Modified Mathlib/AlgebraicGeometry/Morphisms/Immersion.lean Modified Mathlib/AlgebraicGeometry/Morphisms/Integral.lean Modified Mathlib/AlgebraicGeometry/Morphisms/QuasiCompact.lean Modified Mathlib/AlgebraicGeometry/Morphisms/QuasiSeparated.lean Modified Mathlib/AlgebraicGeometry/Morphisms/RingHomProperties.lean Modified Mathlib/AlgebraicGeometry/Morphisms/Separated.lean Modified Mathlib/AlgebraicGeometry/Morphisms/UniversallyOpen.lean Modified Mathlib/AlgebraicGeometry/OpenImmersion.lean Modified Mathlib/AlgebraicGeometry/PointsPi.lean Modified Mathlib/AlgebraicGeometry/ProjectiveSpectrum/Basic.lean Modified Mathlib/AlgebraicGeometry/ProjectiveSpectrum/Proper.lean Modified Mathlib/AlgebraicGeometry/ProjectiveSpectrum/Scheme.lean Modified Mathlib/AlgebraicGeometry/ProjectiveSpectrum/StructureSheaf.lean Modified Mathlib/AlgebraicGeometry/Properties.lean Modified Mathlib/AlgebraicGeometry/Pullbacks.lean Modified Mathlib/AlgebraicGeometry/RationalMap.lean Modified Mathlib/AlgebraicGeometry/Restrict.lean Modified Mathlib/AlgebraicGeometry/Scheme.lean Modified Mathlib/AlgebraicGeometry/Spec.lean Modified Mathlib/AlgebraicGeometry/SpreadingOut.lean Modified Mathlib/AlgebraicGeometry/ValuativeCriterion.lean Modified Mathlib/AlgebraicTopology/SimplexCategory/Basic.lean Modified Mathlib/AlgebraicTopology/SimplicialSet/Basic.lean Modified Mathlib/AlgebraicTopology/SimplicialSet/HomotopyCat.lean Modified Mathlib/AlgebraicTopology/SimplicialSet/Monoidal.lean Modified Mathlib/AlgebraicTopology/SimplicialSet/NerveAdjunction.lean Modified Mathlib/Analysis/Analytic/Composition.lean Modified Mathlib/Analysis/BoxIntegral/Integrability.lean Modified Mathlib/Analysis/BoxIntegral/Partition/Split.lean Modified Mathlib/Analysis/CStarAlgebra/ApproximateUnit.lean Modified Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Basic.lean Modified Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Continuity.lean Modified Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Isometric.lean Modified Mathlib/Analysis/Calculus/FDeriv/Analytic.lean Modified Mathlib/Analysis/Calculus/FDeriv/Equiv.lean Modified Mathlib/Analysis/Calculus/IteratedDeriv/FaaDiBruno.lean Modified Mathlib/Analysis/Calculus/TangentCone.lean Modified Mathlib/Analysis/Complex/Tietze.lean Modified Mathlib/Analysis/Complex/UpperHalfPlane/MoebiusAction.lean Modified Mathlib/Analysis/Convex/Birkhoff.lean Modified Mathlib/Analysis/Fourier/AddCircle.lean Modified Mathlib/Analysis/Fourier/AddCircleMulti.lean Modified Mathlib/Analysis/InnerProductSpace/Basic.lean Modified Mathlib/Analysis/InnerProductSpace/Projection.lean Modified Mathlib/Analysis/MellinInversion.lean Modified Mathlib/Analysis/MellinTransform.lean Modified Mathlib/Analysis/Normed/Lp/PiLp.lean Modified Mathlib/Analysis/Normed/Lp/lpSpace.lean Modified Mathlib/Analysis/Normed/Operator/Banach.lean Modified Mathlib/Analysis/NormedSpace/MStructure.lean Modified Mathlib/Analysis/SpecialFunctions/Exponential.lean Modified Mathlib/Analysis/SpecialFunctions/Gamma/Beta.lean Modified Mathlib/Analysis/SpecialFunctions/Gamma/BohrMollerup.lean Modified Mathlib/Analysis/SpecificLimits/Normed.lean Modified Mathlib/Analysis/VonNeumannAlgebra/Basic.lean - def VonNeumannAlgebra.commutant Modified Mathlib/CategoryTheory/Action/Concrete.lean Modified Mathlib/CategoryTheory/Action/Continuous.lean Modified Mathlib/CategoryTheory/Action/Limits.lean Modified Mathlib/CategoryTheory/Action/Monoidal.lean Modified Mathlib/CategoryTheory/Bicategory/Adjunction/Mate.lean Modified Mathlib/CategoryTheory/Category/ReflQuiv.lean Modified Mathlib/CategoryTheory/Comma/Arrow.lean Modified Mathlib/CategoryTheory/Comma/Over/Basic.lean Modified Mathlib/CategoryTheory/Comma/StructuredArrow/Final.lean Modified Mathlib/CategoryTheory/ConcreteCategory/Basic.lean +/- theorem CategoryTheory.ConcreteCategory.forget_map_eq_coe +/- theorem CategoryTheory.forget_obj Modified Mathlib/CategoryTheory/Discrete/Basic.lean +/- theorem CategoryTheory.Discrete.mk_as Modified Mathlib/CategoryTheory/Galois/Basic.lean Modified Mathlib/CategoryTheory/Galois/Decomposition.lean Modified Mathlib/CategoryTheory/Galois/Equivalence.lean Modified Mathlib/CategoryTheory/Galois/EssSurj.lean Modified Mathlib/CategoryTheory/Galois/Examples.lean Modified Mathlib/CategoryTheory/Galois/GaloisObjects.lean Modified Mathlib/CategoryTheory/Galois/Prorepresentability.lean Modified Mathlib/CategoryTheory/Galois/Topology.lean Modified Mathlib/CategoryTheory/Grothendieck.lean Modified Mathlib/CategoryTheory/Idempotents/Karoubi.lean +/- theorem CategoryTheory.Idempotents.Karoubi.decompId_i_toKaroubi +/- theorem CategoryTheory.Idempotents.Karoubi.decompId_p_toKaroubi Modified Mathlib/CategoryTheory/Limits/ConcreteCategory/Basic.lean Modified Mathlib/CategoryTheory/Limits/Indization/LocallySmall.lean Modified Mathlib/CategoryTheory/Limits/MonoCoprod.lean Modified Mathlib/CategoryTheory/Limits/MorphismProperty.lean Modified Mathlib/CategoryTheory/Limits/Opposites.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Pullback/Cospan.lean +/- theorem CategoryTheory.Limits.cospanExt_app_left +/- theorem CategoryTheory.Limits.cospanExt_app_one +/- theorem CategoryTheory.Limits.cospanExt_app_right +/- theorem CategoryTheory.Limits.cospanExt_hom_app_one +/- theorem CategoryTheory.Limits.spanExt_app_left +/- theorem CategoryTheory.Limits.spanExt_app_one +/- theorem CategoryTheory.Limits.spanExt_app_right +/- theorem CategoryTheory.Limits.spanExt_hom_app_left +/- theorem CategoryTheory.Limits.spanExt_hom_app_right +/- theorem CategoryTheory.Limits.spanExt_hom_app_zero +/- theorem CategoryTheory.Limits.spanExt_inv_app_left +/- theorem CategoryTheory.Limits.spanExt_inv_app_right +/- theorem CategoryTheory.Limits.spanExt_inv_app_zero Modified Mathlib/CategoryTheory/Limits/Shapes/Reflexive.lean Modified Mathlib/CategoryTheory/Limits/Shapes/SingleObj.lean Modified Mathlib/CategoryTheory/Limits/Types/Colimits.lean Modified Mathlib/CategoryTheory/Limits/Types/Limits.lean Modified Mathlib/CategoryTheory/Localization/StructuredArrow.lean Modified Mathlib/CategoryTheory/Monoidal/Cartesian/Basic.lean +/- theorem CategoryTheory.CartesianMonoidalCategory.prodComparisonIso_hom Modified Mathlib/CategoryTheory/Monoidal/Cartesian/Grp_.lean Modified Mathlib/CategoryTheory/Monoidal/Cartesian/Mon_.lean Modified Mathlib/CategoryTheory/MorphismProperty/Limits.lean Modified Mathlib/CategoryTheory/Shift/Induced.lean Modified Mathlib/CategoryTheory/Shift/ShiftedHomOpposite.lean Modified Mathlib/CategoryTheory/Sites/EffectiveEpimorphic.lean Modified Mathlib/CategoryTheory/Sites/Grothendieck.lean Modified Mathlib/CategoryTheory/Sites/LeftExact.lean Modified Mathlib/CategoryTheory/Sites/Pretopology.lean Modified Mathlib/Combinatorics/Enumerative/DyckWord.lean Modified Mathlib/Combinatorics/Enumerative/Partition.lean Modified Mathlib/Combinatorics/Optimization/ValuedCSP.lean Modified Mathlib/Combinatorics/SimpleGraph/Path.lean Modified Mathlib/Combinatorics/SimpleGraph/Paths.lean Modified Mathlib/Computability/AkraBazzi/AkraBazzi.lean Modified Mathlib/Computability/AkraBazzi/GrowsPolynomially.lean Modified Mathlib/Computability/AkraBazzi/SumTransform.lean Modified Mathlib/Computability/PartrecCode.lean Modified Mathlib/Data/Complex/Basic.lean Modified Mathlib/Data/Complex/Exponential.lean Modified Mathlib/Data/DFinsupp/Defs.lean +/- theorem DFinsupp.coe_piecewise Modified Mathlib/Data/ENNReal/Operations.lean +/- theorem ENNReal.top_sub_coe Modified Mathlib/Data/ENat/Basic.lean Modified Mathlib/Data/Erased.lean Modified Mathlib/Data/Fin/Tuple/Curry.lean Modified Mathlib/Data/FinEnum.lean Modified Mathlib/Data/Finset/Fold.lean Modified Mathlib/Data/Finset/Lattice/Fold.lean Modified Mathlib/Data/Finset/Sym.lean Modified Mathlib/Data/Fintype/Perm.lean Modified Mathlib/Data/Int/Init.lean +/- theorem Int.natCast_mod Modified Mathlib/Data/Int/Lemmas.lean Modified Mathlib/Data/Int/ModEq.lean Modified Mathlib/Data/Int/Order/Basic.lean Modified Mathlib/Data/List/Basic.lean - theorem List.idxOf_le_length - theorem List.idxOf_lt_length_iff Modified Mathlib/Data/List/DropRight.lean Modified Mathlib/Data/List/InsertIdx.lean - theorem List.insertIdx_eraseIdx + theorem List.insertIdx_eraseIdx_self Modified Mathlib/Data/List/Nodup.lean + theorem List.nodup_append' - theorem List.nodup_append Modified Mathlib/Data/List/Perm/Basic.lean Modified Mathlib/Data/List/Permutation.lean Modified Mathlib/Data/List/TakeDrop.lean Modified Mathlib/Data/Matrix/Basic.lean +/- theorem LinearEquiv.entryLinearMap_comp_mapMatrix Modified Mathlib/Data/Matrix/ConjTranspose.lean Modified Mathlib/Data/Multiset/MapFold.lean Modified Mathlib/Data/Multiset/Powerset.lean Modified Mathlib/Data/Multiset/UnionInter.lean Modified Mathlib/Data/Nat/PartENat.lean Modified Mathlib/Data/Num/ZNum.lean Modified Mathlib/Data/PFunctor/Multivariate/W.lean Modified Mathlib/Data/QPF/Multivariate/Constructions/Fix.lean Modified Mathlib/Data/Quot.lean Modified Mathlib/Data/Real/Basic.lean Modified Mathlib/Data/Real/Pi/Irrational.lean Modified Mathlib/Data/Seq/Seq.lean +/- theorem Stream'.Seq.val_eq_get Modified Mathlib/Data/Set/Finite/Basic.lean Modified Mathlib/Data/Setoid/Basic.lean Modified Mathlib/Data/Setoid/Partition.lean Modified Mathlib/Data/Stream/Init.lean +/- theorem Stream'.append_eq_cons Modified Mathlib/Data/Sum/Interval.lean +/- theorem Sum.Ioo_inl_inr +/- theorem Sum.Ioo_inr_inl Modified Mathlib/Data/Vector/Basic.lean - theorem List.Vector.eraseIdx_insertIdx + theorem List.Vector.eraseIdx_insertIdx_self Modified Mathlib/Data/WSeq/Basic.lean Modified Mathlib/Data/WSeq/Relation.lean Modified Mathlib/Data/ZMod/Basic.lean Modified Mathlib/FieldTheory/ChevalleyWarning.lean Modified Mathlib/FieldTheory/Finite/Basic.lean Modified Mathlib/FieldTheory/Fixed.lean Modified Mathlib/FieldTheory/Galois/Basic.lean Modified Mathlib/FieldTheory/Galois/Profinite.lean Modified Mathlib/FieldTheory/IntermediateField/Basic.lean Modified Mathlib/FieldTheory/IsAlgClosed/Basic.lean Modified Mathlib/FieldTheory/JacobsonNoether.lean Modified Mathlib/Geometry/Manifold/Algebra/SmoothFunctions.lean Modified Mathlib/Geometry/Manifold/ContMDiff/Basic.lean Modified Mathlib/Geometry/Manifold/IntegralCurve/ExistUnique.lean Modified Mathlib/Geometry/Manifold/IsManifold/Basic.lean Modified Mathlib/Geometry/Manifold/IsManifold/InteriorBoundary.lean Modified Mathlib/Geometry/Manifold/LocalInvariantProperties.lean Modified Mathlib/Geometry/Manifold/Sheaf/Basic.lean Modified Mathlib/Geometry/Manifold/Sheaf/LocallyRingedSpace.lean Modified Mathlib/Geometry/Manifold/Sheaf/Smooth.lean Modified Mathlib/Geometry/Manifold/VectorBundle/FiberwiseLinear.lean Modified Mathlib/Geometry/Manifold/VectorBundle/Pullback.lean Modified Mathlib/Geometry/RingedSpace/Basic.lean Modified Mathlib/Geometry/RingedSpace/LocallyRingedSpace.lean Modified Mathlib/GroupTheory/CoprodI.lean Modified Mathlib/GroupTheory/Coset/Basic.lean Modified Mathlib/GroupTheory/Coxeter/Inversion.lean Modified Mathlib/GroupTheory/FreeAbelianGroup.lean Modified Mathlib/GroupTheory/FreeGroup/Basic.lean Modified Mathlib/GroupTheory/GroupAction/Quotient.lean Modified Mathlib/GroupTheory/HNNExtension.lean Modified Mathlib/GroupTheory/Index.lean Modified Mathlib/GroupTheory/MonoidLocalization/Basic.lean Modified Mathlib/GroupTheory/OreLocalization/Basic.lean Modified Mathlib/GroupTheory/Perm/List.lean Modified Mathlib/GroupTheory/Perm/Sign.lean Modified Mathlib/GroupTheory/QuotientGroup/Basic.lean Modified Mathlib/GroupTheory/Submonoid/Center.lean Modified Mathlib/GroupTheory/Sylow.lean Modified Mathlib/Init.lean Modified Mathlib/Lean/Meta/RefinedDiscrTree/Encode.lean Modified Mathlib/Lean/Meta/RefinedDiscrTree/Initialize.lean - def Lean.Name.isMetaprogramming Modified Mathlib/Lean/Name.lean Modified Mathlib/LinearAlgebra/Basis/Cardinality.lean Modified Mathlib/LinearAlgebra/Basis/Defs.lean Modified Mathlib/LinearAlgebra/BilinearForm/DualLattice.lean Modified Mathlib/LinearAlgebra/CliffordAlgebra/BaseChange.lean Modified Mathlib/LinearAlgebra/Dual/Defs.lean Modified Mathlib/LinearAlgebra/Eigenspace/Basic.lean Modified Mathlib/LinearAlgebra/Eigenspace/Triangularizable.lean Modified Mathlib/LinearAlgebra/FiniteDimensional/Lemmas.lean Modified Mathlib/LinearAlgebra/Finsupp/Supported.lean Modified Mathlib/LinearAlgebra/Goursat.lean Modified Mathlib/LinearAlgebra/Isomorphisms.lean Modified Mathlib/LinearAlgebra/LinearIndependent/Basic.lean Modified Mathlib/LinearAlgebra/Matrix/Determinant/Basic.lean Modified Mathlib/LinearAlgebra/Matrix/Ideal.lean Modified Mathlib/LinearAlgebra/Matrix/SchurComplement.lean Modified Mathlib/LinearAlgebra/Matrix/ToLin.lean Modified Mathlib/LinearAlgebra/Matrix/ZPow.lean Modified Mathlib/LinearAlgebra/Multilinear/DFinsupp.lean Modified Mathlib/LinearAlgebra/Multilinear/Pi.lean Modified Mathlib/LinearAlgebra/SModEq.lean Modified Mathlib/LinearAlgebra/SymmetricAlgebra/Basic.lean Modified Mathlib/Logic/Equiv/Defs.lean Modified Mathlib/Logic/Equiv/Sum.lean Modified Mathlib/MeasureTheory/Constructions/BorelSpace/Real.lean Modified Mathlib/MeasureTheory/Function/Holder.lean Modified Mathlib/MeasureTheory/Function/LpSpace/ContinuousFunctions.lean - def BoundedContinuousFunction.toLp - def ContinuousMap.toLp Modified Mathlib/MeasureTheory/Group/AddCircle.lean Modified Mathlib/MeasureTheory/Integral/Bochner/ContinuousLinearMap.lean Modified Mathlib/MeasureTheory/Integral/Bochner/L1.lean Modified Mathlib/MeasureTheory/Integral/Prod.lean Modified Mathlib/MeasureTheory/Measure/FiniteMeasure.lean Modified Mathlib/MeasureTheory/Measure/GiryMonad.lean Modified Mathlib/MeasureTheory/Measure/Haar/Basic.lean Modified Mathlib/MeasureTheory/Measure/Haar/Quotient.lean Modified Mathlib/MeasureTheory/Measure/MeasureSpace.lean Modified Mathlib/MeasureTheory/OuterMeasure/OfAddContent.lean Modified Mathlib/ModelTheory/Encoding.lean Modified Mathlib/NumberTheory/ArithmeticFunction.lean Modified Mathlib/NumberTheory/Cyclotomic/CyclotomicCharacter.lean Modified Mathlib/NumberTheory/Cyclotomic/Rat.lean Modified Mathlib/NumberTheory/Harmonic/ZetaAsymp.lean Modified Mathlib/NumberTheory/LSeries/HurwitzZetaEven.lean Modified Mathlib/NumberTheory/LSeries/MellinEqDirichlet.lean Modified Mathlib/NumberTheory/LSeries/Nonvanishing.lean - def DirichletCharacter.zetaMul Modified Mathlib/NumberTheory/LSeries/SumCoeff.lean Modified Mathlib/NumberTheory/Modular.lean Modified Mathlib/NumberTheory/NumberField/FinitePlaces.lean Modified Mathlib/NumberTheory/NumberField/InfinitePlace/Ramification.lean Modified Mathlib/NumberTheory/Padics/AddChar.lean Modified Mathlib/NumberTheory/Padics/PadicNumbers.lean Modified Mathlib/NumberTheory/Padics/RingHoms.lean Modified Mathlib/NumberTheory/PythagoreanTriples.lean Modified Mathlib/NumberTheory/RamificationInertia/Galois.lean Modified Mathlib/NumberTheory/Transcendental/Liouville/Basic.lean Modified Mathlib/Order/Atoms.lean Modified Mathlib/Order/ConditionallyCompleteLattice/Basic.lean Modified Mathlib/Order/InitialSeg.lean Modified Mathlib/Order/KrullDimension.lean Modified Mathlib/Order/Monotone/Basic.lean Modified Mathlib/Order/PartialSups.lean Modified Mathlib/Order/PrimeIdeal.lean Modified Mathlib/Order/RelSeries.lean Modified Mathlib/Order/WellFoundedSet.lean Modified Mathlib/Probability/Independence/ZeroOne.lean Modified Mathlib/Probability/Kernel/Composition/CompProd.lean Modified Mathlib/Probability/Kernel/Composition/IntegralCompProd.lean Modified Mathlib/Probability/Kernel/Disintegration/Basic.lean Modified Mathlib/Probability/Kernel/MeasurableIntegral.lean Modified Mathlib/Probability/Kernel/MeasurableLIntegral.lean Modified Mathlib/Probability/ProbabilityMassFunction/Binomial.lean - def PMF.binomial Modified Mathlib/RepresentationTheory/Basic.lean Modified Mathlib/RepresentationTheory/Homological/GroupCohomology/Functoriality.lean Modified Mathlib/RepresentationTheory/Homological/GroupCohomology/LowDegree.lean Modified Mathlib/RepresentationTheory/Homological/Resolution.lean Modified Mathlib/RepresentationTheory/Invariants.lean Modified Mathlib/RingTheory/AdicCompletion/AsTensorProduct.lean Modified Mathlib/RingTheory/AdicCompletion/Functoriality.lean Modified Mathlib/RingTheory/AlgebraicIndependent/AlgebraicClosure.lean Modified Mathlib/RingTheory/AlgebraicIndependent/Basic.lean Modified Mathlib/RingTheory/AlgebraicIndependent/TranscendenceBasis.lean Modified Mathlib/RingTheory/Coalgebra/Equiv.lean Modified Mathlib/RingTheory/DedekindDomain/Different.lean Modified Mathlib/RingTheory/DedekindDomain/Factorization.lean Modified Mathlib/RingTheory/DedekindDomain/Ideal.lean Modified Mathlib/RingTheory/Derivation/MapCoeffs.lean Modified Mathlib/RingTheory/DiscreteValuationRing/Basic.lean Modified Mathlib/RingTheory/DividedPowers/SubDPIdeal.lean Modified Mathlib/RingTheory/EssentialFiniteness.lean Modified Mathlib/RingTheory/Etale/Field.lean Modified Mathlib/RingTheory/Etale/Kaehler.lean Modified Mathlib/RingTheory/Extension/Basic.lean Modified Mathlib/RingTheory/Extension/Cotangent/Basic.lean Modified Mathlib/RingTheory/Extension/Cotangent/LocalizationAway.lean Modified Mathlib/RingTheory/Extension/Presentation/Basic.lean Modified Mathlib/RingTheory/FiniteStability.lean Modified Mathlib/RingTheory/Finiteness/Basic.lean Modified Mathlib/RingTheory/Flat/Localization.lean Modified Mathlib/RingTheory/Frobenius.lean Modified Mathlib/RingTheory/GradedAlgebra/HomogeneousLocalization.lean Modified Mathlib/RingTheory/HahnSeries/Lex.lean Modified Mathlib/RingTheory/Ideal/KrullsHeightTheorem.lean Modified Mathlib/RingTheory/Ideal/Quotient/Index.lean Modified Mathlib/RingTheory/Ideal/Quotient/Operations.lean Modified Mathlib/RingTheory/Ideal/Span.lean Modified Mathlib/RingTheory/Idempotents.lean Modified Mathlib/RingTheory/IntegralClosure/Algebra/Basic.lean Modified Mathlib/RingTheory/Invariant/Profinite.lean Modified Mathlib/RingTheory/IsTensorProduct.lean Modified Mathlib/RingTheory/Kaehler/Basic.lean Modified Mathlib/RingTheory/Kaehler/JacobiZariski.lean Modified Mathlib/RingTheory/Kaehler/TensorProduct.lean Modified Mathlib/RingTheory/KrullDimension/Zero.lean Modified Mathlib/RingTheory/LocalProperties/Projective.lean Modified Mathlib/RingTheory/LocalRing/ResidueField/Ideal.lean Modified Mathlib/RingTheory/Localization/Defs.lean Modified Mathlib/RingTheory/Localization/Free.lean Modified Mathlib/RingTheory/Localization/Integral.lean Modified Mathlib/RingTheory/MvPowerSeries/LinearTopology.lean Modified Mathlib/RingTheory/OreLocalization/Basic.lean Modified Mathlib/RingTheory/Perfection.lean Modified Mathlib/RingTheory/PiTensorProduct.lean Modified Mathlib/RingTheory/Polynomial/Chebyshev.lean Modified Mathlib/RingTheory/PowerSeries/Inverse.lean Modified Mathlib/RingTheory/Regular/Depth.lean Modified Mathlib/RingTheory/RingHom/Flat.lean Modified Mathlib/RingTheory/RingHom/Integral.lean Modified Mathlib/RingTheory/RingHom/Smooth.lean Modified Mathlib/RingTheory/RingHom/Unramified.lean Modified Mathlib/RingTheory/SimpleModule/Basic.lean Modified Mathlib/RingTheory/Smooth/Kaehler.lean Modified Mathlib/RingTheory/Smooth/Pi.lean Modified Mathlib/RingTheory/Smooth/StandardSmoothCotangent.lean Modified Mathlib/RingTheory/Spectrum/Maximal/Localization.lean Modified Mathlib/RingTheory/Spectrum/Prime/Basic.lean Modified Mathlib/RingTheory/Spectrum/Prime/ChevalleyComplexity.lean Modified Mathlib/RingTheory/Spectrum/Prime/Jacobson.lean Modified Mathlib/RingTheory/Spectrum/Prime/Polynomial.lean Modified Mathlib/RingTheory/Spectrum/Prime/RingHom.lean Modified Mathlib/RingTheory/Trace/Basic.lean Modified Mathlib/RingTheory/UniqueFactorizationDomain/Finite.lean Modified Mathlib/RingTheory/Unramified/Field.lean Modified Mathlib/RingTheory/WittVector/Truncated.lean Modified Mathlib/RingTheory/ZMod/UnitsCyclic.lean Modified Mathlib/SetTheory/Game/Basic.lean Modified Mathlib/SetTheory/PGame/Algebra.lean Modified Mathlib/Tactic/Clean.lean Modified Mathlib/Tactic/CongrExclamation.lean Modified Mathlib/Tactic/Core.lean Modified Mathlib/Tactic/DeclarationNames.lean Modified Mathlib/Tactic/Eqns.lean Modified Mathlib/Tactic/Explode.lean Modified Mathlib/Tactic/FieldSimp.lean Modified Mathlib/Tactic/FunProp/Core.lean Modified Mathlib/Tactic/FunProp/FunctionData.lean Modified Mathlib/Tactic/FunProp/Mor.lean Modified Mathlib/Tactic/FunProp/ToBatteries.lean - def Mathlib.Meta.FunProp.letTelescope Modified Mathlib/Tactic/GeneralizeProofs.lean Modified Mathlib/Tactic/HaveI.lean Modified Mathlib/Tactic/Linter/DeprecatedSyntaxLinter.lean Modified Mathlib/Tactic/Linter/FlexibleLinter.lean Modified Mathlib/Tactic/Linter/HaveLetLinter.lean Modified Mathlib/Tactic/Linter/Style.lean - def Mathlib.Linter.Style.nameCheck.doubleUnderscore: + def Mathlib.Linter.Style.nameCheck.doubleUnderscore + def Mathlib.Linter.Style.show.showLinter Modified Mathlib/Tactic/Linter/UnusedTacticExtension.lean Modified Mathlib/Tactic/NormNum/Core.lean Modified Mathlib/Tactic/NormNum/PowMod.lean Modified Mathlib/Tactic/Positivity/Basic.lean Modified Mathlib/Tactic/SimpIntro.lean Modified Mathlib/Tactic/Simps/Basic.lean Modified Mathlib/Tactic/ToAdditive/Frontend.lean Modified Mathlib/Topology/Algebra/Category/ProfiniteGrp/Limits.lean Modified Mathlib/Topology/Algebra/ConstMulAction.lean Modified Mathlib/Topology/Algebra/GroupWithZero.lean Modified Mathlib/Topology/Algebra/IsUniformGroup/Basic.lean Modified Mathlib/Topology/Algebra/IsUniformGroup/Defs.lean Modified Mathlib/Topology/Algebra/Module/Equiv.lean Modified Mathlib/Topology/Algebra/OpenSubgroup.lean Modified Mathlib/Topology/Baire/CompleteMetrizable.lean Modified Mathlib/Topology/Bornology/Constructions.lean Modified Mathlib/Topology/Category/CompHaus/Basic.lean Modified Mathlib/Topology/Category/CompHaus/EffectiveEpi.lean Modified Mathlib/Topology/Category/Stonean/Basic.lean Modified Mathlib/Topology/CompactOpen.lean Modified Mathlib/Topology/Connected/Clopen.lean Modified Mathlib/Topology/Constructible.lean Modified Mathlib/Topology/ContinuousMap/Bounded/Basic.lean Modified Mathlib/Topology/ContinuousMap/ContinuousMapZero.lean Modified Mathlib/Topology/FiberBundle/Trivialization.lean Modified Mathlib/Topology/Germ.lean Modified Mathlib/Topology/Homotopy/HomotopyGroup.lean Modified Mathlib/Topology/LocalAtTarget.lean Modified Mathlib/Topology/Maps/OpenQuotient.lean Modified Mathlib/Topology/MetricSpace/Completion.lean Modified Mathlib/Topology/MetricSpace/Gluing.lean Modified Mathlib/Topology/MetricSpace/GromovHausdorffRealized.lean Modified Mathlib/Topology/MetricSpace/HausdorffDistance.lean Modified Mathlib/Topology/Partial.lean Modified Mathlib/Topology/PartialHomeomorph.lean Modified Mathlib/Topology/Path.lean Modified Mathlib/Topology/Sets/CompactOpenCovered.lean Modified Mathlib/Topology/Sets/Opens.lean Modified Mathlib/Topology/Spectral/Prespectral.lean Modified Mathlib/Topology/VectorBundle/Constructions.lean Modified Mathlib/Util/AddRelatedDecl.lean Modified Mathlib/Util/MemoFix.lean Modified Mathlib/Util/WhatsNew.lean Modified MathlibTest/CategoryTheory/MonoidalComp.lean Modified MathlibTest/CategoryTheory/Slice.lean Modified MathlibTest/Clean.lean Modified MathlibTest/CommandStart.lean Modified MathlibTest/DeprecatedModuleTest.lean Modified MathlibTest/DeprecatedSyntaxLinter.lean Modified MathlibTest/DeriveToExpr.lean Modified MathlibTest/DirectoryDependencyLinter/Test.lean Modified MathlibTest/DocPrime.lean Modified MathlibTest/DocString.lean Modified MathlibTest/DoubleUnderscore.lean Modified MathlibTest/FindSyntax.lean Modified MathlibTest/FlexibleLinter.lean Modified MathlibTest/GeneralizeProofs.lean Modified MathlibTest/HashCommandLinter.lean Modified MathlibTest/HaveLetLinter.lean Modified MathlibTest/Header.lean Modified MathlibTest/LibraryRewrite.lean Modified MathlibTest/LibrarySearch/observe.lean Modified MathlibTest/Lint.lean Modified MathlibTest/LintStyle.lean Modified MathlibTest/LongFile.lean Modified MathlibTest/MinImports.lean Modified MathlibTest/Multigoal.lean Modified MathlibTest/PPRoundtrip.lean Modified MathlibTest/Simproc/ExistsAndEq.lean Modified MathlibTest/TCSynth.lean Modified MathlibTest/UnusedTactic.lean Modified MathlibTest/Use.lean Modified MathlibTest/Variable.lean Modified MathlibTest/derive_encodable.lean Modified MathlibTest/eval_elab.lean Modified MathlibTest/globalAttributeIn.lean Added MathlibTest/grind/pairwise_disjoint.lean Modified MathlibTest/grind/ring.lean Modified MathlibTest/grind/trig.lean Modified MathlibTest/oldObtain.lean Modified MathlibTest/propose.lean Modified MathlibTest/toAdditive.lean Modified MathlibTest/zmod.lean Modified Shake/Main.lean +/- def importId Modified lake-manifest.json Modified lakefile.lean Modified lean-toolchain Modified scripts/bench/temci-config.run.yml Modified scripts/lint-style.lean Modified scripts/noshake.json 2025-06-30 22:15:48 96db0ce chore: use more modern config syntax (#26442) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Limits/Shapes/Equalizers.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Pullback/Cospan.lean Modified Mathlib/CategoryTheory/Monad/Algebra.lean Modified Mathlib/CategoryTheory/Monad/Basic.lean Modified Mathlib/CategoryTheory/Products/Basic.lean Modified Mathlib/Data/Bundle.lean Modified Mathlib/Data/Matroid/Basic.lean Modified Mathlib/GroupTheory/SemidirectProduct.lean Modified Mathlib/LinearAlgebra/LinearIndependent/Defs.lean Modified Mathlib/LinearAlgebra/Matrix/FixedDetMatrices.lean Modified Mathlib/Logic/Equiv/Defs.lean Modified Mathlib/NumberTheory/SmoothNumbers.lean Modified Mathlib/Order/Interval/Set/LinearOrder.lean Modified Mathlib/RingTheory/LaurentSeries.lean Modified Mathlib/SetTheory/Game/Basic.lean Modified Mathlib/Tactic/CongrExclamation.lean Modified Mathlib/Tactic/FunProp.lean Modified Mathlib/Tactic/FunProp/Types.lean Modified Mathlib/Tactic/Linarith/Frontend.lean Modified Mathlib/Topology/Order/LeftRightNhds.lean Modified MathlibTest/FieldSimp.lean Modified MathlibTest/cc.lean Modified MathlibTest/fun_prop2.lean Modified MathlibTest/fun_prop_dev.lean Modified MathlibTest/linarith.lean Modified MathlibTest/solve_by_elim/basic.lean 2025-06-30 22:06:09 28c819f chore: remove deprecated aliasses for Smooth{,On,At} declarations (#26236) These were removed in November 2024, more than six months ago. ESTIMATED CHANGES Modified Mathlib/Analysis/Complex/UpperHalfPlane/Manifold.lean Modified Mathlib/Geometry/Manifold/Algebra/LieGroup.lean Modified Mathlib/Geometry/Manifold/Algebra/Monoid.lean Modified Mathlib/Geometry/Manifold/BumpFunction.lean Modified Mathlib/Geometry/Manifold/ContMDiff/Basic.lean Modified Mathlib/Geometry/Manifold/ContMDiff/Constructions.lean Modified Mathlib/Geometry/Manifold/ContMDiff/Defs.lean Modified Mathlib/Geometry/Manifold/ContMDiff/NormedSpace.lean Modified Mathlib/Geometry/Manifold/ContMDiffMFDeriv.lean Modified Mathlib/Geometry/Manifold/ContMDiffMap.lean Modified Mathlib/Geometry/Manifold/Diffeomorph.lean Modified Mathlib/Geometry/Manifold/MFDeriv/Basic.lean Modified Mathlib/Geometry/Manifold/PartitionOfUnity.lean Modified Mathlib/Geometry/Manifold/Sheaf/Smooth.lean Modified Mathlib/Geometry/Manifold/VectorBundle/Basic.lean Modified Mathlib/Geometry/Manifold/VectorBundle/Hom.lean Modified Mathlib/Geometry/Manifold/VectorBundle/SmoothSection.lean Modified scripts/nolints_prime_decls.txt 2025-06-30 20:48:40 8d2aa1e feat(MetricSpace/Thickening): characterise when the thickening is nonempty (#26559) The first two are provided as convenience lemmas for the (common) case where we know epsilon is positive already. ESTIMATED CHANGES Modified Mathlib/Topology/MetricSpace/Thickening.lean + theorem Metric.thickening_eq_empty_iff + theorem Metric.thickening_eq_empty_iff_of_pos + theorem Metric.thickening_nonempty_iff + theorem Metric.thickening_nonempty_iff_of_pos 2025-06-30 20:24:10 6eb97ca chore: generalize Egorov's theorem to PseudoEMetricSpace (#26472) It was written for `MetricSpace`, but can be extended to `PseudoEMetricSpace` with minor modifications. From the Brownian motion project. ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Function/Egorov.lean Modified Mathlib/MeasureTheory/Function/StronglyMeasurable/Basic.lean 2025-06-30 20:15:30 eb09c50 debug(Cache): add print statements to test output of current vs quoted argument of git (#26558) It appears [that](https://git-scm.com/docs/git-for-each-ref) the argument `%(ref-name)` needs quotes to be interpreted as a string. This PR compares the outputs with and without the quotes and prints the results. We will check behavior in CI to evaluate the impact of this change. ESTIMATED CHANGES Modified Cache/Requests.lean 2025-06-30 19:51:51 50f4691 chore(Normed/Lp): convenience lemmas for the square of the l2 norm (#26553) We have the lemma `norm_sq_eq_of_L2`, but not the `dist` or `EuclideanSpace` versions, so these are added as convenience rewrite lemmas. These are following the existing `EuclideanSpace.norm_eq` lemmas, etc. ESTIMATED CHANGES Modified Mathlib/Analysis/InnerProductSpace/PiL2.lean + theorem EuclideanSpace.dist_sq_eq + theorem EuclideanSpace.norm_sq_eq Modified Mathlib/Analysis/Normed/Lp/PiLp.lean + theorem PiLp.dist_sq_eq_of_L2 2025-06-30 19:43:11 46f25b0 feat(Analysis/InnerProductSpace/Positive): add theorem `LinearMap.IsPositive.smul_of_zero_le` (#26425) ESTIMATED CHANGES Modified Mathlib/Analysis/InnerProductSpace/Positive.lean + theorem ContinuousLinearMap.IsPositive.smul_of_nonneg + theorem LinearMap.IsPositive.smul_of_nonneg 2025-06-30 18:17:13 c583305 chore(RingTheory/Valuation/Discrete/Basic): refactor the definition of discrete valuation to allow for more general targets (#23727) Co-authored by @mariainesdff The two `ToDo` mentioned in the docstring are WIP by María Inés de Frutos-Fernández and Filippo A. E. Nuccio. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/GroupWithZero/Range.lean + theorem MonoidHomWithZero.inv_mem_valueGroup + theorem MonoidHomWithZero.mem_valueGroup + theorem MonoidHomWithZero.mem_valueGroup_iff_of_comm + theorem MonoidHomWithZero.mem_valueMonoid + theorem MonoidHomWithZero.mem_valueMonoid_iff + def MonoidHomWithZero.valueGroup + theorem MonoidHomWithZero.valueGroup_def + theorem MonoidHomWithZero.valueGroup_eq_range + def MonoidHomWithZero.valueMonoid + theorem MonoidHomWithZero.valueMonoid_eq_closure + theorem MonoidHomWithZero.valueMonoid_eq_valueGroup' + theorem MonoidHomWithZero.valueMonoid_eq_valueGroup Modified Mathlib/RingTheory/Valuation/Discrete/Basic.lean - theorem Valuation.IsDiscrete.surj + theorem Valuation.IsRankOneDiscrete.exists_generator_lt_one + theorem Valuation.IsRankOneDiscrete.generator_lt_one + theorem Valuation.IsRankOneDiscrete.generator_mem_range + theorem Valuation.IsRankOneDiscrete.generator_ne_one + theorem Valuation.IsRankOneDiscrete.generator_ne_zero + theorem Valuation.IsRankOneDiscrete.generator_zpowers_eq_range + theorem Valuation.IsRankOneDiscrete.generator_zpowers_eq_valueGroup - theorem Valuation.isDiscrete_iff_surjective 2025-06-30 17:47:36 a604920 fix(Cache): check for urls in the remote before querying for the url (#26551) It can happen, as with `gh pr checkout`, that the remote is not a regular name but a URL. Currently, `getRepoFromRemote` calls `git remote get-url` which chokes on an actual URL breaking the logic for getting the repo name. Here we provide a basic spot check for whether the remote is already a URL. If so, we return it directly. Otherwise, we continue with the existing logic. Note: we comment out any actually changes to the logic but include a print statement to show what the logic would have been. We do this out of an abundance of caution, as we don't want to break existing CI. This needs to be tested sufficiently and then the commented code can be uncommented. ESTIMATED CHANGES Modified Cache/Requests.lean + def Cache.Requests.isRemoteURL 2025-06-30 16:02:15 bf2d35c feat(RingTheory/DividedPowers/SubPDIdeal): add SubDPIdeal (#24480) Let `A` be a commutative (semi)ring and let `I` be an ideal of `A` with a divided power structure `hI`. A subideal `J` of `I` is a *sub-dp-ideal* of `(I, hI)` if, for all `n ∈ ℕ > 0` and all `x ∈ J`, `hI.dpow n x ∈ J`. The "TODOs" listed on the file docstring have been formalized by the authors and will be added in subsequent PRs. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/RingTheory/DividedPowers/SubDPIdeal.lean + def DividedPowers.DPMorphism.ker + def DividedPowers.IsSubDPIdeal.dividedPowers + theorem DividedPowers.IsSubDPIdeal.dpow_eq + theorem DividedPowers.IsSubDPIdeal.dpow_eq_of_mem + theorem DividedPowers.IsSubDPIdeal.isDPMorphism + theorem DividedPowers.IsSubDPIdeal.self + structure DividedPowers.IsSubDPIdeal + theorem DividedPowers.SubDPIdeal.coe_def + theorem DividedPowers.SubDPIdeal.memCarrier + def DividedPowers.SubDPIdeal.mk' + def DividedPowers.SubDPIdeal.prod + def DividedPowers.SubDPIdeal.toIdeal + theorem DividedPowers.SubDPIdeal.toIsSubDPIdeal + structure DividedPowers.SubDPIdeal + def DividedPowers.dpEqualizer + theorem DividedPowers.dpEqualizer_is_dp_ideal_left + theorem DividedPowers.dpEqualizer_is_dp_ideal_right + theorem DividedPowers.isSubDPIdeal_iInf + theorem DividedPowers.isSubDPIdeal_iSup + theorem DividedPowers.isSubDPIdeal_inf_iff + theorem DividedPowers.isSubDPIdeal_ker + theorem DividedPowers.isSubDPIdeal_map + theorem DividedPowers.isSubDPIdeal_map_of_isSubDPIdeal + theorem DividedPowers.isSubDPIdeal_sup + theorem DividedPowers.le_equalizer_of_isDPMorphism + theorem DividedPowers.mem_dpEqualizer_iff + theorem DividedPowers.span_isSubDPIdeal_iff + def DividedPowers.subDPIdeal_inf_of_quot Modified Mathlib/RingTheory/Ideal/Span.lean + theorem Ideal.iSup_eq_span 2025-06-30 14:31:37 e70dc4e feat(Algebra/Group/Center): centralizer of product of nonempty sets (#25866) Lemma: The centralizer of the product of non-empty sets is equal to taking the product of the centralizers of the sets. I've also added a lemma for the centralizer of an empty set. ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Center.lean + theorem Set.centralizer_empty + theorem Set.centralizer_prod + theorem Set.prod_centralizer_subset_centralizer_prod 2025-06-30 14:03:58 ce0b441 feat(Polynomial): Monic.C_ne_zero (#26508) shortcut lemma ESTIMATED CHANGES Modified Mathlib/Algebra/Polynomial/Degree/Definitions.lean +/- theorem Polynomial.Monic.ne_zero + theorem Polynomial.Monic.ne_zero_of_C 2025-06-30 14:03:56 df074b2 feat(RepresentationTheory/Homological/GroupHomology/LowDegree): simpler expressions for differentials (#25873) The first part of a file giving simpler expressions for group homology in low degree, following the structure of `RepresentationTheory/Homological/GroupCohomology/LowDegree.lean`. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/RepresentationTheory/Homological/GroupHomology/Basic.lean Added Mathlib/RepresentationTheory/Homological/GroupHomology/LowDegree.lean + def groupHomology.chainsIso₀ + def groupHomology.chainsIso₁ + def groupHomology.chainsIso₂ + def groupHomology.chainsIso₃ + def groupHomology.chains₁ToCoinvariantsKer + theorem groupHomology.comp_d₁₀_eq + theorem groupHomology.comp_d₂₁_eq + theorem groupHomology.comp_d₃₂_eq + def groupHomology.d₁₀ + theorem groupHomology.d₁₀_comp_coinvariantsMk + theorem groupHomology.d₁₀_eq_zero_of_isTrivial + theorem groupHomology.d₁₀_single + theorem groupHomology.d₁₀_single_inv + theorem groupHomology.d₁₀_single_one + def groupHomology.d₂₁ + theorem groupHomology.d₂₁_comp_d₁₀ + theorem groupHomology.d₂₁_single + theorem groupHomology.d₂₁_single_inv_mul_ρ_add_single + theorem groupHomology.d₂₁_single_inv_self_ρ_sub_self_inv + theorem groupHomology.d₂₁_single_one_fst + theorem groupHomology.d₂₁_single_one_snd + theorem groupHomology.d₂₁_single_self_inv_ρ_sub_inv_self + theorem groupHomology.d₂₁_single_ρ_add_single_inv_mul + def groupHomology.d₃₂ + theorem groupHomology.d₃₂_comp_d₂₁ + theorem groupHomology.d₃₂_single + theorem groupHomology.d₃₂_single_one_fst + theorem groupHomology.d₃₂_single_one_snd + theorem groupHomology.d₃₂_single_one_thd + theorem groupHomology.eq_d₁₀_comp_inv + theorem groupHomology.eq_d₂₁_comp_inv + theorem groupHomology.eq_d₃₂_comp_inv + theorem groupHomology.range_d₁₀_eq_coinvariantsKer 2025-06-30 14:03:52 991f2b4 feat(Data/Nat/Factorial/NatCast): add natCast_factorial_of_isNilpotent (#24439) ESTIMATED CHANGES Modified Mathlib/Data/Nat/Factorial/NatCast.lean + theorem IsUnit.natCast_factorial_of_isNilpotent + theorem IsUnit.natCast_of_isNilpotent_of_coprime 2025-06-30 13:28:21 ce423c4 feat: miscellaneous parity results (#26496) ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Int/Even.lean + theorem Int.isSquare_sign_iff Modified Mathlib/Algebra/Order/Ring/Basic.lean + theorem not_isSquare_of_neg Modified Mathlib/Algebra/Ring/Int/Parity.lean + theorem Int.even_sign_iff + theorem Int.odd_sign_iff 2025-06-30 12:51:48 6a0a7c7 feat: existence of local flows of vector fields (#26382) I formalise the existence theorem for local flows of time-dependent vector fields (`IsPicardLindelof.exists_forall_mem_closedBall_eq_hasDerivWithinAt`). Currently, if we wish to show the existence of a family of integral curves indexed by their initial conditions, it is necessary to prove the hypotheses of the vector field (Lipschitz continuity within a closed ball, etc.), centred around each of these initial conditions. I have refactored the current proof of the Picard-Lindelöf theorem to allow the initial point to be different from the point about which the hypotheses on the vector field are stated. This way, integral curves and flows are treated on equal footing. Credits going to the original author @urkud, I have completely rewritten the file to accommodate different design choices. Many of the proof steps are nevertheless inspired by Yury's formalisation. * The `PicardLindelof` data structure is removed entirely. It merely bundles the non-Prop arguments into itself. Although it simplifies the assumptions in subsequent proofs, it obscures the (in)dependence on the relevant constants in the type description of theorems. Since `IsPicardLindelof` is already a public facing structure, we should also simply use it internally, without any loss. * In particular, I remove the completely superficial dependence of `FunSpace` on the `PicardLindelof` structure. * `FunSpace` no longer specifies the initial condition. It only needs the initial point to lie in a closed ball (which will be the domain of the local flow). * I avoid defining new non-Prop things that are only used in the proof steps, such as the current `vComp` and `tDist`. The proofs are a little longer as a result, but they are also more readable. * I place all private (i.e. only internally used) theorems under the namespace `FunSpace`, to guide users to the proper theorems in the public API. This is part of my effort to show that the solution to an ODE depends smoothly on the initial condition, or on parameters of the ODE. This is in turn needed for many results about manifolds, such as the fact that $C^1$ vector fields on compact manifolds always have global integral curves (or global flows). I especially welcome any suggestions to rename lemmas or define new structures to simplify the statements. I'm happy to write up the proof in LaTeX as well, if it's going to help reviewers. - [x] depends on: #20696 - [x] depends on: #20731 ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Group/Abs.lean + theorem mabs_div_le_max_div Modified Mathlib/Analysis/Normed/Group/Basic.lean + theorem norm_le_norm_div_add Modified Mathlib/Analysis/ODE/PicardLindelof.lean + theorem ContDiffAt.exists_eventually_eq_hasDerivAt + theorem ContDiffAt.exists_forall_mem_closedBall_exists_eq_forall_mem_Ioo_hasDerivAt + theorem ContDiffAt.exists_forall_mem_closedBall_exists_eq_forall_mem_Ioo_hasDerivAt₀ + theorem IsPicardLindelof.continuousOn_uncurry + theorem IsPicardLindelof.exists_eq_forall_mem_Icc_eq_picard + theorem IsPicardLindelof.exists_eq_forall_mem_Icc_hasDerivWithinAt + theorem IsPicardLindelof.exists_eq_forall_mem_Icc_hasDerivWithinAt₀ - theorem IsPicardLindelof.exists_forall_hasDerivWithinAt_Icc_eq + theorem IsPicardLindelof.exists_forall_mem_closedBall_eq_forall_mem_Icc_hasDerivWithinAt - theorem IsPicardLindelof.norm_le₀ + theorem IsPicardLindelof.of_contDiffAt_one + theorem IsPicardLindelof.of_time_independent +/- structure IsPicardLindelof + theorem ODE.FunSpace.compProj_apply + theorem ODE.FunSpace.compProj_mem_closedBall + theorem ODE.FunSpace.compProj_of_mem + theorem ODE.FunSpace.compProj_val + theorem ODE.FunSpace.continuousOn_comp_compProj + theorem ODE.FunSpace.continuous_compProj + theorem ODE.FunSpace.dist_comp_iterate_next_le + theorem ODE.FunSpace.dist_iterate_next_apply_le + theorem ODE.FunSpace.dist_iterate_next_iterate_next_le + theorem ODE.FunSpace.exists_contractingWith_iterate_next + theorem ODE.FunSpace.exists_isFixedPt_next + theorem ODE.FunSpace.intervalIntegrable_comp_compProj + theorem ODE.FunSpace.isUniformInducing_toContinuousMap + theorem ODE.FunSpace.next_apply + theorem ODE.FunSpace.next_apply₀ + theorem ODE.FunSpace.range_toContinuousMap + def ODE.FunSpace.toContinuousMap + theorem ODE.FunSpace.toContinuousMap_apply_eq_apply + structure ODE.FunSpace + theorem ODE.contDiffOn_comp + theorem ODE.continuousOn_comp + theorem ODE.hasDerivWithinAt_picard_Icc + theorem ODE.picard_apply + theorem ODE.picard_apply₀ - theorem PicardLindelof.FunSpace.continuous_vComp - theorem PicardLindelof.FunSpace.dist_apply_le_dist - theorem PicardLindelof.FunSpace.dist_iterate_next_apply_le - theorem PicardLindelof.FunSpace.dist_iterate_next_le - theorem PicardLindelof.FunSpace.dist_le_of_forall - theorem PicardLindelof.FunSpace.dist_next_apply_le_of_le - theorem PicardLindelof.FunSpace.hasDerivWithinAt_next - theorem PicardLindelof.FunSpace.intervalIntegrable_vComp - theorem PicardLindelof.FunSpace.isUniformInducing_toContinuousMap - theorem PicardLindelof.FunSpace.map_t₀ - def PicardLindelof.FunSpace.next - theorem PicardLindelof.FunSpace.next_apply - theorem PicardLindelof.FunSpace.norm_vComp_le - theorem PicardLindelof.FunSpace.range_toContinuousMap - def PicardLindelof.FunSpace.toContinuousMap - def PicardLindelof.FunSpace.vComp - theorem PicardLindelof.FunSpace.vComp_apply_coe - structure PicardLindelof.FunSpace - theorem PicardLindelof.continuous_proj - theorem PicardLindelof.dist_t₀_le - theorem PicardLindelof.exists_contracting_iterate - theorem PicardLindelof.exists_fixed - theorem PicardLindelof.exists_solution - theorem PicardLindelof.norm_le - def PicardLindelof.proj - theorem PicardLindelof.proj_coe - theorem PicardLindelof.proj_of_mem - def PicardLindelof.tDist - theorem PicardLindelof.tDist_nonneg - theorem PicardLindelof.tMin_le_tMax - structure PicardLindelof - theorem exists_forall_hasDerivAt_Ioo_eq_of_contDiff - theorem exists_forall_hasDerivAt_Ioo_eq_of_contDiffAt - theorem exists_isPicardLindelof_const_of_contDiffAt Modified Mathlib/Geometry/Manifold/IntegralCurve/ExistUnique.lean Modified docs/1000.yaml Modified docs/undergrad.yaml 2025-06-30 11:33:22 9792703 fix: data field in label from comment (#26540) Hopefully, fixes [this issue](https://github.com/leanprover-community/mathlib4/actions/runs/15971345334/job/45043052808). ESTIMATED CHANGES Modified .github/workflows/labels_from_comment.yml 2025-06-30 10:47:42 59de3a7 fix: use correct `curl` for adding a label (#26539) Should fix [this issue](https://github.com/leanprover-community/mathlib4/actions/runs/15970515868/job/45040473366). ESTIMATED CHANGES Modified .github/workflows/labels_from_comment.yml 2025-06-30 10:32:09 f2756fb feat(Geometry/Euclidean/Sphere/Tangent): lemmas about points in subspace (#26528) Add two convenience lemmas about what points can be in the affine subspace involved in a tangency: a point is in both the sphere and the affine subspace if and only if it is the point of tangency, and a point closer to the center of the sphere than its radius cannot lie in the affine subspace. ESTIMATED CHANGES Modified Mathlib/Geometry/Euclidean/Sphere/Tangent.lean + theorem EuclideanGeometry.Sphere.IsTangent.notMem_of_dist_lt + theorem EuclideanGeometry.Sphere.IsTangentAt.eq_of_mem_of_mem + theorem EuclideanGeometry.Sphere.IsTangentAt.mem_and_mem_iff_eq 2025-06-30 10:32:07 b26977f feat: require that the range of a real or complex model with corners is convex (#25824) This is important to ensure that the distance coming from a Riemannian metric generates the same topology as the original one. See Zulip discussion at [#mathlib4 > Fixing the definition of models with corners @ 💬](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Fixing.20the.20definition.20of.20models.20with.20corners/near/522572964) ESTIMATED CHANGES Modified Mathlib/Geometry/Manifold/Diffeomorph.lean Modified Mathlib/Geometry/Manifold/Instances/Real.lean + theorem interior_euclideanQuadrant Modified Mathlib/Geometry/Manifold/IsManifold/Basic.lean + theorem Convex.convex_isRCLikeNormedField + theorem ModelWithCorners.convex_range + theorem ModelWithCorners.nonempty_interior + def ModelWithCorners.of_convex_range + def ModelWithCorners.of_target_univ + theorem ModelWithCorners.range_eq_target + theorem ModelWithCorners.range_eq_univ_of_not_isRCLikeNormedField 2025-06-30 10:16:37 7f78223 chore: don't import `Mathlib.Analysis.Normed.Ring.Lemmas` where unnecessary (#25358) Some instances on `ℤ` are inferred from `Int.instNormedCommRing : NormedCommRing ℤ` once one imports `Mathlib.Analysis.Normed.Ring.Lemmas`, which is why `shake` doesn't catch that these are unecessary. Removing that import makes the instances be derived from `Int.instCommRing : CommRing ℤ` instead. ESTIMATED CHANGES Modified Mathlib/NumberTheory/LegendreSymbol/GaussEisensteinLemmas.lean Modified Mathlib/NumberTheory/Zsqrtd/QuadraticReciprocity.lean 2025-06-30 10:08:13 1925933 feat: make the `labels_from_comment` action more extensible (#26456) The revised version of this script manages the labels `awaiting-author`, `WIP` and `easy` from comments. If a PR comment contains of one of the three mentioned labels, optionally preceded by a single `-` *as a complete line*, then the action will add/remove the corresponding label. If multiple lines match the same label, only the latest mention will be used. The line may contain whitespace, besides the sign and the label, but nothing else. For instance, if the comment is ``` A awaiting-author -easy some WIP text easy -awaiting-author ``` then the script would * *add* the `easy` label; * *remove* the `awaiting-author` label; * do nothing with the `WIP` label, since it does not appear alone on any line. Note: the previous action would automatically remove all remaining labels, since the old set was mutually exclusive. The expectation is that the current set of labels will be increased, so that mutual exclusivity is no longer expected. ESTIMATED CHANGES Modified .github/workflows/labels_from_comment.yml 2025-06-30 09:49:30 f6c783b feat(NumberTheory/Cyclotomic/Basic): any cyclotomic extension is abelian (#26427) Proved `IsCyclotomicExtension.isMulCommutative` that any cyclotomic extension (of rings) is abelian. Deprecated `IsCyclotomicExtension.Aut.commGroup` which is `CommGroup` and only adjoins one root of unity. Now `CommGroup` instance should be inferred automatically if `IsMulCommutative` is provided (the preferred spelling of abelian extension, see https://github.com/leanprover-community/mathlib4/pull/23669#issuecomment-2849132297). ESTIMATED CHANGES Modified Mathlib/NumberTheory/Cyclotomic/Basic.lean + theorem IsCyclotomicExtension.algEquiv_eq_of_apply_eq + theorem IsCyclotomicExtension.isMulCommutative Modified Mathlib/NumberTheory/Cyclotomic/Gal.lean 2025-06-30 09:49:28 d8810ed feat: Ideal.count_associates_eq (#23955) Add variant of `UniqueFactorizationMonoid.count_normalizedFactors_eq` for associated Ideals. This is convenient when you need to talk about an element as `a₀ = x ^ n * a`. Note the file is slightly over the 1500 lines limit, I hope that is ok. ESTIMATED CHANGES Modified Mathlib/RingTheory/DedekindDomain/Ideal.lean + theorem Ideal.count_associates_eq' + theorem Ideal.count_associates_eq 2025-06-30 09:14:11 4d039a4 feat(Mathlib/Algebra/Polynomial/Degree/Domain.lean): generalize `natDegree_smul` from `SMulWithZero` to `SMulZeroClass` (#25257) as suggested by @eric-wieser in https://github.com/leanprover-community/mathlib4/pull/25237#discussion_r2111599865 ESTIMATED CHANGES Modified Mathlib/Algebra/Polynomial/Degree/Domain.lean +/- theorem Polynomial.natDegree_smul 2025-06-30 07:20:19 376925f cache: change working directory when running the post-update hook (#25817) `lake exe cache` expects to run in the root package directory that includes the lakefile and `.lake` folder. The Lake update hook isn't always run from that position (for example if it is run as part of a more complicated Lake command), so change directories when calling into the executable. The assumption that the command is run from the working directory is so pervasive that we'd need to touch a lot of Cache in order to get rid of it. I think it's better to accept this as a design decision. ESTIMATED CHANGES Modified lakefile.lean 2025-06-30 04:32:58 308445d chore: bump toolchain to v4.21.0 (#26532) ESTIMATED CHANGES Modified lake-manifest.json Modified lean-toolchain 2025-06-29 23:22:27 162202c chore: remove unused lemmas from simp calls (#26519) ESTIMATED CHANGES Modified Archive/Arithcc.lean Modified Archive/Examples/Eisenstein.lean Modified Archive/Examples/IfNormalization/WithoutAesop.lean Modified Archive/Imo/Imo1972Q5.lean Modified Archive/Imo/Imo1975Q1.lean Modified Archive/Imo/Imo1987Q1.lean Modified Archive/Imo/Imo1994Q1.lean Modified Archive/Imo/Imo1998Q2.lean Modified Archive/Imo/Imo2006Q5.lean Modified Archive/Imo/Imo2008Q3.lean Modified Archive/Imo/Imo2024Q1.lean Modified Archive/Imo/Imo2024Q3.lean Modified Archive/Imo/Imo2024Q5.lean Modified Archive/MiuLanguage/DecisionNec.lean Modified Archive/MiuLanguage/DecisionSuf.lean Modified Archive/Sensitivity.lean Modified Archive/Wiedijk100Theorems/AbelRuffini.lean Modified Archive/Wiedijk100Theorems/AreaOfACircle.lean Modified Archive/Wiedijk100Theorems/AscendingDescendingSequences.lean Modified Archive/Wiedijk100Theorems/BallotProblem.lean Modified Archive/Wiedijk100Theorems/BuffonsNeedle.lean Modified Archive/Wiedijk100Theorems/CubingACube.lean Modified Archive/Wiedijk100Theorems/FriendshipGraphs.lean Modified Archive/Wiedijk100Theorems/Partition.lean Modified Archive/Wiedijk100Theorems/PerfectNumbers.lean Modified Archive/Wiedijk100Theorems/SumOfPrimeReciprocalsDiverges.lean Modified Archive/ZagierTwoSquares.lean Modified Counterexamples/AharoniKorman.lean Modified Counterexamples/CanonicallyOrderedCommSemiringTwoMul.lean Modified Counterexamples/CliffordAlgebraNotInjective.lean Modified Counterexamples/DiscreteTopologyNonDiscreteUniformity.lean Modified Counterexamples/MapFloor.lean Modified Counterexamples/MonicNonRegular.lean Modified Counterexamples/Phillips.lean Modified Counterexamples/Pseudoelement.lean Modified Counterexamples/ZeroDivisorsInAddMonoidAlgebras.lean Modified Mathlib/Algebra/BigOperators/Group/List/Basic.lean Modified Mathlib/Algebra/Category/Ring/Topology.lean Modified Mathlib/Algebra/CharP/Defs.lean Modified Mathlib/Algebra/MvPolynomial/Basic.lean Modified Mathlib/Analysis/Calculus/LogDeriv.lean Modified Mathlib/Analysis/Complex/UpperHalfPlane/MoebiusAction.lean Modified Mathlib/Analysis/Distribution/SchwartzSpace.lean Modified Mathlib/Analysis/Normed/Lp/PiLp.lean Modified Mathlib/Analysis/SpecialFunctions/Gaussian/FourierTransform.lean Modified Mathlib/Analysis/SpecialFunctions/Log/NegMulLog.lean Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Deriv.lean Modified Mathlib/Combinatorics/SimpleGraph/IncMatrix.lean Modified Mathlib/Data/ENNReal/Operations.lean Modified Mathlib/Data/Finsupp/Option.lean Modified Mathlib/GroupTheory/FreeAbelianGroup.lean Modified Mathlib/GroupTheory/GroupAction/MultiplePrimitivity.lean Modified Mathlib/GroupTheory/GroupAction/SubMulAction/OfFixingSubgroup.lean Modified Mathlib/MeasureTheory/Measure/Lebesgue/VolumeOfBalls.lean Modified Mathlib/NumberTheory/ModularForms/EisensteinSeries/Summable.lean Modified Mathlib/Order/OmegaCompletePartialOrder.lean Modified Mathlib/RingTheory/MatrixPolynomialAlgebra.lean 2025-06-29 21:12:21 d4e3bd8 chore(Complex/Polynomial): golf `Irreducible.degree_le_two` (over reals) (#26525) ESTIMATED CHANGES Modified Mathlib/Analysis/Complex/Polynomial/Basic.lean +/- theorem Irreducible.degree_le_two +/- theorem Irreducible.natDegree_le_two 2025-06-29 17:39:05 07cd79f chore: update Mathlib dependencies 2025-06-29 (#26517) This PR updates the Mathlib dependencies. ESTIMATED CHANGES Modified lake-manifest.json 2025-06-29 08:52:21 f8aa277 feat:(RingTheory/ZMod/CyclicUnits): characterize when `(ZMod n)ˣ` is cyclic (#26020) Prove that the group `(ZMod n)ˣ` is cyclic iff one of the following mutually exclusive cases happens: - `n = 0` (then `ZMod 0 ≃+* ℤ` and the group of units is cyclic of order 2); - `n` = `1`, `2` or `4` - `n` is a power `p ^ e` of an odd prime number, or twice such a power (with `1 ≤ e`). Some individual cases are proved in passing and are also directly provided by (n= 0, 1, 2, 4, 8, prime, prime powers). This is a new PR of #25879 after the migration via fork. See that PR for the preceding discussion. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Group/Subgroup/Ker.lean + theorem MonoidHom.ker_eq_top_iff + theorem MonoidHom.range_eq_bot_iff Modified Mathlib/Algebra/Group/Units/Hom.lean + theorem Units.coeHom_injective Modified Mathlib/Algebra/Ring/Parity.lean + theorem Nat.odd_pow_iff +/- theorem Odd.pow Modified Mathlib/Data/Int/Basic.lean + theorem Int.gcd_emod Modified Mathlib/Data/Int/ModEq.lean Modified Mathlib/Data/Nat/ModEq.lean + theorem Nat.ModEq.self_mul_add Modified Mathlib/Data/Nat/Totient.lean + theorem Nat.odd_totient_iff + theorem Nat.odd_totient_iff_eq_one + theorem Nat.totient_coprime_totient_iff Modified Mathlib/Data/ZMod/Basic.lean + theorem ZMod.castHom_surjective + theorem ZMod.inv_neg_one + theorem ZMod.natCast_pow_eq_zero_of_le Modified Mathlib/Data/ZMod/Coprime.lean + theorem ZMod.coe_int_isUnit_iff_isCoprime Modified Mathlib/Data/ZMod/Units.lean + theorem ZMod.coe_int_inv_mul_eq_one + theorem ZMod.coe_int_mul_inv_eq_one + theorem ZMod.coe_int_mul_val_inv + theorem ZMod.coe_int_val_inv_mul + theorem ZMod.coe_unitOfIsCoprime + theorem ZMod.isUnit_inv + def ZMod.unitOfIsCoprime Modified Mathlib/GroupTheory/Index.lean + theorem MonoidHom.finite_iff_finite_ker_range + theorem Subgroup.finiteIndex_iff_finite_quotient + theorem Subgroup.finite_iff_finite_and_finiteIndex Modified Mathlib/GroupTheory/SpecificGroups/Cyclic.lean + theorem Group.isCyclic_of_coprime_card_ker + theorem Group.isCyclic_of_coprime_card_range_card_ker + theorem Group.isCyclic_prod_iff + theorem MulEquiv.isCyclic + theorem coprime_card_of_isCyclic_prod + theorem isCyclic_left_of_prod + theorem isCyclic_right_of_prod + theorem not_isAddCyclic_prod_of_infinite_nontrivial + theorem not_isCyclic_prod_of_infinite_nontrivial Modified Mathlib/RingTheory/Int/Basic.lean Added Mathlib/RingTheory/ZMod/UnitsCyclic.lean + theorem ZMod.exists_one_add_mul_pow_prime_eq + theorem ZMod.exists_one_add_mul_pow_prime_pow_eq + theorem ZMod.isCyclic_units_four + theorem ZMod.isCyclic_units_four_mul_iff + theorem ZMod.isCyclic_units_iff + theorem ZMod.isCyclic_units_iff_of_odd + theorem ZMod.isCyclic_units_of_prime_pow + theorem ZMod.isCyclic_units_one + theorem ZMod.isCyclic_units_prime + theorem ZMod.isCyclic_units_two + theorem ZMod.isCyclic_units_two_mul_iff_of_odd + theorem ZMod.isCyclic_units_two_pow_iff + theorem ZMod.isCyclic_units_zero + theorem ZMod.not_isCyclic_units_eight + theorem ZMod.not_isCyclic_units_of_mul_coprime + theorem ZMod.orderOf_five + theorem ZMod.orderOf_one_add_four_mul + theorem ZMod.orderOf_one_add_mul_prime + theorem ZMod.orderOf_one_add_mul_prime_pow + theorem ZMod.orderOf_one_add_prime 2025-06-29 01:20:00 a2bfaa6 chore: update Mathlib dependencies 2025-06-29 (#26499) This PR updates the Mathlib dependencies. ESTIMATED CHANGES Modified lake-manifest.json 2025-06-29 00:15:33 86cb194 feat: real numbers are square if non-negative (#26497) Obviously it's pretty useless to talk about `IsSquare` on `Real` on purpose, but these lemmas mean that if done accidentally, lean can help simplify the goal to `False`. Also the complex version for good measure. ESTIMATED CHANGES Modified Mathlib/Analysis/SpecialFunctions/Pow/Complex.lean + theorem Complex.isSquare Modified Mathlib/Data/Real/Sqrt.lean + theorem NNReal.isSquare + theorem Real.isSquare_iff 2025-06-28 23:55:18 c953365 feat(Data/Sign): even and odd powers (#26495) Odd powers are the identity function, even powers on non-zero signs are always `1`. ESTIMATED CHANGES Modified Mathlib/Data/Sign.lean + theorem SignType.pow_even + theorem SignType.pow_odd + theorem SignType.zpow_even + theorem SignType.zpow_odd 2025-06-28 23:20:42 47db34f feat(Algebra/Star/StarProjection): define star projections (#26052) This pr defines star projections, which are self-adjoint idempotents. In star-ordered rings, they are non-negative. (this was discussed in #25958) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Group/Idempotent.lean + theorem IsIdempotentElem.pow_eq Modified Mathlib/Algebra/Order/Star/Basic.lean + theorem IsStarProjection.le_one + theorem IsStarProjection.mem_Icc + theorem IsStarProjection.nonneg + theorem IsStarProjection.one_sub_nonneg Modified Mathlib/Algebra/Ring/Idempotent.lean + theorem IsIdempotentElem.add + theorem IsIdempotentElem.commute_of_anticommute + theorem IsIdempotentElem.mul_eq_zero_of_anticommute + theorem isIdempotentElem_iff_mul_one_sub_self + theorem isIdempotentElem_iff_one_sub_mul_self Modified Mathlib/Algebra/Star/SelfAdjoint.lean +/- theorem IsSelfAdjoint.isStarNormal Added Mathlib/Algebra/Star/StarProjection.lean + theorem IsStarProjection.add + theorem IsStarProjection.add_sub_mul_of_commute + theorem IsStarProjection.isStarNormal + theorem IsStarProjection.mul + theorem IsStarProjection.mul_one_sub_self + theorem IsStarProjection.one_sub + theorem IsStarProjection.one_sub_mul_self + theorem IsStarProjection.pow_eq + theorem IsStarProjection.pow_succ_eq + structure IsStarProjection + theorem isStarProjection_iff' + theorem isStarProjection_one_sub_iff Modified Mathlib/Algebra/Star/Unitary.lean + theorem IsStarProjection.two_mul_sub_one_mem_unitary 2025-06-28 22:01:48 b24dcc8 chore(Data/Fin/Tuple): fix copy-paste documentation typo (#26482) This threw me off for a few minutes ESTIMATED CHANGES Modified Mathlib/Data/Fin/Tuple/Basic.lean 2025-06-28 22:01:47 78a26d5 chore: split `WithLp.equiv` into a new pair `WithLp.toLp`/`WithLp.ofLp` (#26459) `(WithLp.equiv p _).symm v` is very inconvenient as a normal form when working with `WithLp`. This introduces `WithLp.toLp p v` as the simp-normal spelling of this operation, and `v'.ofLp` as the simp-normal spelling of `WithLp.equiv p _ v'`. It then deprecates almost all the lemmas about `WithLp.equiv`, as these are no longer stated in simp-normal form. The motivation for making `toLp` and `ofLp` as plain functions, as opposed to `Equiv`s, is to permit them to be later adapted into a constructor and projection of a one-field structure. Almost nothing in mathlib needs them to be equivs anyway. Zulip thread: [#mathlib4 > defeq abuse in `WithLp` @ 💬](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/defeq.20abuse.20in.20.60WithLp.60/near/516241777) ESTIMATED CHANGES Modified Mathlib/Analysis/CStarAlgebra/Matrix.lean + theorem Matrix.ofLp_toEuclideanCLM + theorem Matrix.toEuclideanCLM_toLp Modified Mathlib/Analysis/Calculus/FDeriv/WithLp.lean +/- theorem PiLp.hasFDerivAt_equiv_symm + theorem PiLp.hasFDerivAt_ofLp + theorem PiLp.hasFDerivAt_toLp +/- theorem PiLp.hasStrictFDerivAt_equiv +/- theorem PiLp.hasStrictFDerivAt_equiv_symm + theorem PiLp.hasStrictFDerivAt_ofLp + theorem PiLp.hasStrictFDerivAt_toLp Modified Mathlib/Analysis/InnerProductSpace/PiL2.lean + theorem EuclideanSpace.inner_toLp_toLp + theorem EuclideanSpace.ofLp_single + theorem EuclideanSpace.toLp_single + theorem Matrix.ofLp_toEuclideanLin_apply + theorem Matrix.piLp_ofLp_toEuclideanLin + theorem Matrix.toEuclideanLin_apply_piLp_toLp + theorem Matrix.toEuclideanLin_toLp Modified Mathlib/Analysis/InnerProductSpace/ProdL2.lean Modified Mathlib/Analysis/Matrix.lean +/- theorem Matrix.frobenius_nnnorm_diagonal +/- theorem Matrix.frobenius_nnnorm_replicateCol +/- theorem Matrix.frobenius_nnnorm_replicateRow +/- theorem Matrix.frobenius_norm_diagonal +/- theorem Matrix.frobenius_norm_replicateCol +/- theorem Matrix.frobenius_norm_replicateRow Modified Mathlib/Analysis/Normed/Algebra/UnitizationL1.lean +/- theorem WithLp.unitization_isometry_inr +/- theorem WithLp.unitization_mul +/- theorem WithLp.unitization_nnnorm_inr +/- theorem WithLp.unitization_norm_inr Modified Mathlib/Analysis/Normed/Lp/MeasurableSpace.lean +/- theorem MeasurableEquiv.coe_toLp +/- theorem MeasurableEquiv.coe_toLp_symm +/- theorem MeasurableEquiv.toLp_apply + theorem WithLp.measurable_ofLp + theorem WithLp.measurable_toLp Modified Mathlib/Analysis/Normed/Lp/PiLp.lean - theorem PiLp.antilipschitzWith_equiv_aux + theorem PiLp.antilipschitzWith_ofLp - theorem PiLp.aux_cobounded_eq - theorem PiLp.aux_uniformity_eq + def PiLp.continuousLinearEquiv + theorem PiLp.continuous_ofLp + theorem PiLp.continuous_toLp + theorem PiLp.dist_toLp_single_same + theorem PiLp.edist_toLp_single_same +/- def PiLp.equivₗᵢ + theorem PiLp.isometry_ofLp_infty - theorem PiLp.lipschitzWith_equiv_aux + theorem PiLp.lipschitzWith_ofLp + theorem PiLp.nndist_toLp_single_same +/- theorem PiLp.nnnorm_equiv +/- theorem PiLp.nnnorm_equiv_symm + theorem PiLp.nnnorm_ofLp + theorem PiLp.nnnorm_toLp + theorem PiLp.nnnorm_toLp_const' + theorem PiLp.nnnorm_toLp_const + theorem PiLp.nnnorm_toLp_one + theorem PiLp.nnnorm_toLp_single +/- theorem PiLp.norm_equiv +/- theorem PiLp.norm_equiv_symm + theorem PiLp.norm_ofLp + theorem PiLp.norm_toLp + theorem PiLp.norm_toLp_const' + theorem PiLp.norm_toLp_const + theorem PiLp.norm_toLp_one + theorem PiLp.norm_toLp_single + theorem PiLp.ofLp_apply + theorem PiLp.toLp_apply + theorem PiLp.uniformContinuous_ofLp + theorem PiLp.uniformContinuous_toLp Modified Mathlib/Analysis/Normed/Lp/ProdLp.lean + theorem WithLp.dist_toLp_fst + theorem WithLp.dist_toLp_snd + theorem WithLp.edist_toLp_fst + theorem WithLp.edist_toLp_snd +/- theorem WithLp.idemFst_apply +/- theorem WithLp.idemSnd_apply + theorem WithLp.nndist_toLp_fst + theorem WithLp.nndist_toLp_snd +/- theorem WithLp.nnnorm_equiv_symm_fst +/- theorem WithLp.nnnorm_equiv_symm_snd + theorem WithLp.nnnorm_toLp_inl + theorem WithLp.nnnorm_toLp_inr + theorem WithLp.norm_toLp_fst + theorem WithLp.norm_toLp_snd + theorem WithLp.ofLp_fst + theorem WithLp.ofLp_snd + def WithLp.prodContinuousLinearEquiv - theorem WithLp.prod_antilipschitzWith_equiv_aux + theorem WithLp.prod_antilipschitzWith_ofLp - theorem WithLp.prod_aux_cobounded_eq - theorem WithLp.prod_aux_uniformity_eq + theorem WithLp.prod_continuous_ofLp + theorem WithLp.prod_continuous_toLp + theorem WithLp.prod_isometry_ofLp_infty - theorem WithLp.prod_lipschitzWith_equiv_aux + theorem WithLp.prod_lipschitzWith_ofLp +/- theorem WithLp.prod_nnnorm_equiv +/- theorem WithLp.prod_nnnorm_equiv_symm + theorem WithLp.prod_nnnorm_ofLp + theorem WithLp.prod_nnnorm_toLp +/- theorem WithLp.prod_norm_equiv +/- theorem WithLp.prod_norm_equiv_symm + theorem WithLp.prod_norm_ofLp + theorem WithLp.prod_norm_toLp + theorem WithLp.prod_uniformContinuous_ofLp + theorem WithLp.prod_uniformContinuous_toLp + theorem WithLp.toLp_fst + theorem WithLp.toLp_snd Modified Mathlib/Analysis/Normed/Lp/WithLp.lean + def WithLp.ofLp + theorem WithLp.ofLp_add + theorem WithLp.ofLp_eq_zero + theorem WithLp.ofLp_neg + theorem WithLp.ofLp_smul + theorem WithLp.ofLp_sub + theorem WithLp.ofLp_surjective + theorem WithLp.ofLp_toLp + theorem WithLp.ofLp_zero + def WithLp.toLp + theorem WithLp.toLp_add + theorem WithLp.toLp_eq_zero + theorem WithLp.toLp_neg + theorem WithLp.toLp_ofLp + theorem WithLp.toLp_smul + theorem WithLp.toLp_sub + theorem WithLp.toLp_surjective + theorem WithLp.toLp_zero Modified Mathlib/Analysis/Quaternion.lean + theorem Quaternion.norm_toLp_equivTuple Modified Mathlib/Analysis/RCLike/Inner.lean Modified Mathlib/Analysis/SpecialFunctions/Gaussian/FourierTransform.lean Modified Mathlib/Combinatorics/Additive/AP/Three/Behrend.lean Modified Mathlib/Geometry/Euclidean/Angle/Unoriented/CrossProduct.lean + theorem InnerProductGeometry.norm_ofLp_crossProduct + theorem InnerProductGeometry.norm_toLp_symm_crossProduct Modified Mathlib/LinearAlgebra/Matrix/Hermitian.lean Modified Mathlib/LinearAlgebra/Matrix/LDL.lean Modified Mathlib/LinearAlgebra/Matrix/Spectrum.lean Modified Mathlib/MeasureTheory/Measure/Haar/InnerProductSpace.lean + theorem PiLp.volume_preserving_ofLp + theorem PiLp.volume_preserving_toLp Modified Mathlib/MeasureTheory/Measure/Haar/OfBasis.lean +/- theorem EuclideanSpace.coe_measurableEquiv Modified MathlibTest/EuclideanSpace.lean 2025-06-28 22:01:46 51b3aad doc: explain the fields of MonadWriter (#25550) ESTIMATED CHANGES Modified Mathlib/Control/Monad/Writer.lean 2025-06-28 21:40:25 80bfa40 chore: use `have` instead of `let` for some propositions (#26493) This PR uses `have` instead of `let` in a number of places, found during the development of https://github.com/leanprover/lean4/pull/8373 Adds one adaptation note. The unused have/suffices linter is interacting poorly with Qq; the `have` is unused in the underlying term, but it's used during elaboration. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Monad/Comonadicity.lean Modified Mathlib/CategoryTheory/Monad/Monadicity.lean Modified Mathlib/Data/PFunctor/Univariate/M.lean Modified Mathlib/FieldTheory/Finite/GaloisField.lean Modified Mathlib/GroupTheory/MonoidLocalization/Basic.lean Modified Mathlib/LinearAlgebra/FiniteDimensional/Basic.lean Modified Mathlib/MeasureTheory/VectorMeasure/Decomposition/Jordan.lean Modified Mathlib/RingTheory/Extension/Presentation/Basic.lean Modified Mathlib/Tactic/ModCases.lean 2025-06-28 20:43:55 8287b8d chore: tidy various files (#26491) ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/Subalgebra/Tower.lean Modified Mathlib/Algebra/Algebra/Subalgebra/Unitization.lean Modified Mathlib/Algebra/Group/Pi/Basic.lean Modified Mathlib/Algebra/Polynomial/Taylor.lean Modified Mathlib/Analysis/Complex/ValueDistribution/CharacteristicFunction.lean Modified Mathlib/Analysis/InnerProductSpace/Adjoint.lean Modified Mathlib/Analysis/InnerProductSpace/Positive.lean Modified Mathlib/Analysis/InnerProductSpace/Projection.lean Modified Mathlib/Analysis/Normed/Group/Continuity.lean Modified Mathlib/Analysis/Normed/Unbundled/SpectralNorm.lean Modified Mathlib/Analysis/NormedSpace/MStructure.lean Modified Mathlib/CategoryTheory/Monoidal/CommMon_.lean Modified Mathlib/CategoryTheory/Monoidal/Comon_.lean Modified Mathlib/CategoryTheory/Preadditive/CommGrp_.lean Modified Mathlib/Computability/Encoding.lean +/- theorem Computability.decode_encodeNat +/- theorem Computability.decode_encodeNum +/- theorem Computability.decode_encodePosNum Modified Mathlib/NumberTheory/Cyclotomic/Basic.lean Modified Mathlib/NumberTheory/Cyclotomic/Discriminant.lean Modified Mathlib/NumberTheory/NumberField/CMField.lean Modified Mathlib/Order/KonigLemma.lean Modified Mathlib/RingTheory/Extension/Presentation/Basic.lean Modified Mathlib/RingTheory/Polynomial/GaussNorm.lean Modified Mathlib/RingTheory/PowerSeries/GaussNorm.lean Modified Mathlib/RingTheory/Smooth/StandardSmooth.lean Modified Mathlib/Topology/Algebra/Module/FiniteDimension.lean Modified Mathlib/Topology/UniformSpace/UniformConvergenceTopology.lean 2025-06-28 19:54:33 f3137f5 chore(CategoryTheory/Whiskering): add inv_whiskerLeft and inv_whiskerRight (#26401) Corresponding lemmas for bicategories exist, but the ones for functors and natural transformations were missing. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Bicategory/Functor/Pseudofunctor.lean Modified Mathlib/CategoryTheory/Whiskering.lean + theorem CategoryTheory.inv_whiskerLeft + theorem CategoryTheory.inv_whiskerRight 2025-06-28 19:37:01 9d09fbc chore: golf using `ext` (#26443) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Limits/Shapes/IsTerminal.lean 2025-06-28 14:42:24 fdf5de2 chore: golf using `simp` (#26477) ESTIMATED CHANGES Modified Mathlib/Algebra/Lie/IdealOperations.lean Modified Mathlib/AlgebraicTopology/CechNerve.lean Modified Mathlib/CategoryTheory/Closed/Functor.lean Modified Mathlib/CategoryTheory/Monoidal/Conv.lean Modified Mathlib/Data/Finset/Fold.lean Modified Mathlib/Data/Set/Prod.lean Modified Mathlib/LinearAlgebra/Dimension/FreeAndStrongRankCondition.lean 2025-06-28 14:04:01 b3569f3 chore: golf using `solve_by_elim` (#26476) ESTIMATED CHANGES Modified Mathlib/Algebra/BigOperators/Fin.lean Modified Mathlib/Algebra/BigOperators/Group/Finset/Basic.lean Modified Mathlib/Algebra/Category/ModuleCat/Monoidal/Closed.lean Modified Mathlib/Algebra/Category/ModuleCat/Sheaf/Limits.lean Modified Mathlib/Algebra/Category/MonCat/Colimits.lean Modified Mathlib/Algebra/Group/AddChar.lean Modified Mathlib/Algebra/Group/Conj.lean Modified Mathlib/Algebra/Group/Subgroup/Ker.lean Modified Mathlib/Algebra/Lie/EngelSubalgebra.lean Modified Mathlib/Algebra/Lie/Weights/Killing.lean Modified Mathlib/Algebra/Polynomial/AlgebraMap.lean 2025-06-28 11:35:54 490148f refactor(RingTheory/RingHom): factor out proofs for `Algebra.FiniteType` (#22931) The current way to use locality of a given property of algebras is to convert everything into the language of `RingHom`s and then for example the `RingHom.OfLocalizationSpanTarget` API. This has two disadvantages: 1. The ring hom property API fixes the universes of source and target to be the same, hence we unnecessarily lose out on some universe generality. 2. The results for `RingHom`s are proven by translating everything in terms of `Algebra`, so we duplicate the translation steps. This PR refactors `RingHom.FiniteType` to do all locality proofs in the language of `Algebra`s and translate it into the corresponding `RingHom.OfLocalizationSpan{Target}` in the last step. We also streamline some of the translation proofs by unifying the API. ESTIMATED CHANGES Modified Mathlib/RingTheory/FiniteType.lean + theorem RingHom.finiteType_algebraMap Modified Mathlib/RingTheory/RingHom/Finite.lean +/- theorem RingHom.localization_away_map_finite Modified Mathlib/RingTheory/RingHom/FiniteType.lean + theorem Algebra.FiniteType.of_span_eq_top_source + theorem Algebra.FiniteType.of_span_eq_top_target + theorem IsLocalization.exists_smul_mem_of_mem_adjoin + theorem IsLocalization.lift_mem_adjoin_finsetIntegerMultiple - theorem RingHom.IsLocalization.exists_smul_mem_of_mem_adjoin - theorem RingHom.IsLocalization.lift_mem_adjoin_finsetIntegerMultiple +/- theorem RingHom.finiteType_localizationPreserves +/- theorem RingHom.finiteType_respectsIso +/- theorem RingHom.localization_away_map_finiteType 2025-06-28 10:39:05 255112e feat(CategoryTheory/Sites): morphisms and homotopies of `1`-hypercovers (#26326) We define refinement morphisms and homotopies between morphisms of (pre-)-`1`-hypercovers. As a sanity check, we show that - homotopic maps induce the same map on the corresponding multiequalizers - the category of `1`-hypercovers is cofiltered up to homotopies, i.e. for any two refinement morphisms there exists a refinement from the left such that both compositions are homotopic. In the next PR, we define the (homotopy) category of `1`-hypercovers with refinement morphisms modulo homotopy. This will be a cofiltered category and taking a colimit over these will give a second approach to sheafification. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Sites/Grothendieck.lean + theorem CategoryTheory.GrothendieckTopology.bindOfArrows Modified Mathlib/CategoryTheory/Sites/OneHypercover.lean + theorem CategoryTheory.GrothendieckTopology.OneHypercover.exists_nonempty_homotopy + def CategoryTheory.PreOneHypercover.Hom.comp + def CategoryTheory.PreOneHypercover.Hom.id + def CategoryTheory.PreOneHypercover.Hom.mapMultiforkOfIsLimit + theorem CategoryTheory.PreOneHypercover.Hom.mapMultiforkOfIsLimit_ι + def CategoryTheory.PreOneHypercover.Hom.s₁' + structure CategoryTheory.PreOneHypercover.Hom + theorem CategoryTheory.PreOneHypercover.Homotopy.mapMultiforkOfIsLimit_eq + structure CategoryTheory.PreOneHypercover.Homotopy + theorem CategoryTheory.PreOneHypercover.exists_nonempty_homotopy + theorem CategoryTheory.PreOneHypercover.sieve₀_cylinder + theorem CategoryTheory.PreOneHypercover.sieve₁'_cylinder + theorem CategoryTheory.PreOneHypercover.toPullback_cylinder Modified Mathlib/CategoryTheory/Sites/Sieves.lean + inductive CategoryTheory.Presieve.bindOfArrows + theorem CategoryTheory.Presieve.bind_ofArrows_le_bindOfArrows 2025-06-28 09:48:41 dda6465 feat(MeasureTheory): LIntegral is zero if the function is ae zero (#26485) Adds a theorem for one of the directions of `lintegral_eq_zero_iff` which doesn't require `AEMeasurable` (unlike the other direction) ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Integral/Lebesgue/Basic.lean + theorem MeasureTheory.lintegral_eq_zero_of_ae_eq_zero 2025-06-28 09:40:11 508c192 chore: rename `covariance_same` to `covariance_self` (#26410) Following the usual convention. ESTIMATED CHANGES Modified Mathlib/Probability/Moments/Covariance.lean - theorem ProbabilityTheory.covariance_same + theorem ProbabilityTheory.covariance_self 2025-06-27 15:46:42 f3731ea chore(CategoryTheory): unprime `CatCommSq.iso'` (#26468) Make it so `CatCommSq` can now directly be defined by its iso, rather than having to define a `iso'` and record manually lemmas. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/CatCommSq.lean Modified Mathlib/CategoryTheory/GuitartExact/VerticalComposition.lean Modified Mathlib/CategoryTheory/Localization/Adjunction.lean Modified Mathlib/CategoryTheory/Localization/FiniteProducts.lean 2025-06-27 14:36:06 3f90fd5 fix: generalize `CommSemiring` to `Semiring` for bilinear map composition (#26458) This file could do with further variable cleanup, but that's left for a later PR. I needed some of these generalizations for some base change results. ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/BilinearMap.lean +/- def LinearMap.compl₁₂ +/- theorem LinearMap.compl₁₂_apply +/- theorem LinearMap.compl₁₂_id_id +/- theorem LinearMap.compl₁₂_inj +/- def LinearMap.compl₂ +/- theorem LinearMap.compl₂_apply +/- theorem LinearMap.compl₂_id +/- def LinearMap.lcomp +/- def LinearMap.lcompₛₗ 2025-06-27 13:04:09 18d4bf6 feat: Interactive Library Rewrite (#11768) This PR defines the `rw??` library rewrite tactic that uses my `RefinedDiscrTree`. This is a point&click tactic, letting the user click on subexpressions in the main goal. The results are sorted by relevance, and are separated into sections based on the matched pattern. It comes with a filter button that allows you to switch between the (default) filtered view, with removed duplicate lemmas and not showing lemma names, and the complete view. There is also a section for definitionally unfolding the selected expression - these rewrites do not correspond to a library lemma. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Lean/GoalsLocation.lean + def Lean.SubExpr.GoalsLocation.fvarId? - def Lean.SubExpr.GoalsLocation.location Modified Mathlib/Lean/Meta/RefinedDiscrTree.lean Modified Mathlib/Lean/Meta/RefinedDiscrTree/Encode.lean Modified Mathlib/Lean/Meta/RefinedDiscrTree/Initialize.lean + def Lean.Meta.RefinedDiscrTree.blacklistInsertion + def Lean.Name.isMetaprogramming Modified Mathlib/Lean/Meta/RefinedDiscrTree/Lookup.lean + def Lean.Meta.RefinedDiscrTree.MatchResult.flatten Modified Mathlib/Tactic.lean Modified Mathlib/Tactic/FunProp/Theorems.lean Modified Mathlib/Tactic/Widget/InteractiveUnfold.lean - def Mathlib.Tactic.InteractiveUnfold.InteractiveUnfold.tacticString + def Mathlib.Tactic.InteractiveUnfold.InteractiveUnfold.tacticSyntax +/- def Mathlib.Tactic.InteractiveUnfold.mkRewrite - def Mathlib.Tactic.InteractiveUnfold.pasteString + def Mathlib.Tactic.InteractiveUnfold.tacticPasteString Added Mathlib/Tactic/Widget/LibraryRewrite.lean + inductive Mathlib.Tactic.LibraryRewrite.Kind + def Mathlib.Tactic.LibraryRewrite.LibraryRewriteComponent + def Mathlib.Tactic.LibraryRewrite.Rewrite.toInterface + def Mathlib.Tactic.LibraryRewrite.Rewrite.toMessageData + structure Mathlib.Tactic.LibraryRewrite.Rewrite + structure Mathlib.Tactic.LibraryRewrite.RewriteInterface + structure Mathlib.Tactic.LibraryRewrite.RewriteLemma + def Mathlib.Tactic.LibraryRewrite.SectionToMessageData + def Mathlib.Tactic.LibraryRewrite.addLocalRewriteEntry + def Mathlib.Tactic.LibraryRewrite.addRewriteEntry + def Mathlib.Tactic.LibraryRewrite.checkAndSortRewriteLemmas + def Mathlib.Tactic.LibraryRewrite.checkRewrite + def Mathlib.Tactic.LibraryRewrite.elabrw??Command + def Mathlib.Tactic.LibraryRewrite.eqOrIff? + def Mathlib.Tactic.LibraryRewrite.filterRewrites + def Mathlib.Tactic.LibraryRewrite.getBinderInfos + def Mathlib.Tactic.LibraryRewrite.getHypotheses + def Mathlib.Tactic.LibraryRewrite.getHypothesisRewrites + def Mathlib.Tactic.LibraryRewrite.getImportCandidates + def Mathlib.Tactic.LibraryRewrite.getImportRewrites + def Mathlib.Tactic.LibraryRewrite.getModuleCandidates + def Mathlib.Tactic.LibraryRewrite.getModuleRewrites + def Mathlib.Tactic.LibraryRewrite.getRewriteInterfaces + def Mathlib.Tactic.LibraryRewrite.isMVarSwap + def Mathlib.Tactic.LibraryRewrite.pattern + def Mathlib.Tactic.LibraryRewrite.renderRewrites + def Mathlib.Tactic.LibraryRewrite.tacticSyntax Added MathlibTest/LibraryRewrite.lean + def atZero + theorem atZero_add + theorem atZero_add_const + theorem atZero_neg + theorem neg_atZero_neg 2025-06-27 12:16:54 cf17ac4 chore: remove unused simp arguments (#26430) This removes unused simp arguments flagged by Lean's new `linter.unusedSimpArgs`. This branch was created on nightly-testing, where we have the linter, and then rebased onto `master`, resolving all merge conflicts to master’s code, so some might be left. I used a python script to remove the reported simp arguments, and then manually fixed the breakage (mostly changing `← foo` to `- foo` instead of removing it when needed). ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/NonUnitalHom.lean Modified Mathlib/Algebra/Algebra/Opposite.lean Modified Mathlib/Algebra/Algebra/Spectrum/Basic.lean Modified Mathlib/Algebra/Algebra/Spectrum/Pi.lean Modified Mathlib/Algebra/Algebra/Spectrum/Quasispectrum.lean Modified Mathlib/Algebra/Algebra/Subalgebra/Centralizer.lean Modified Mathlib/Algebra/Algebra/Subalgebra/Tower.lean Modified Mathlib/Algebra/Algebra/Subalgebra/Unitization.lean Modified Mathlib/Algebra/Algebra/Unitization.lean Modified Mathlib/Algebra/Azumaya/Basic.lean Modified Mathlib/Algebra/Azumaya/Matrix.lean Modified Mathlib/Algebra/BigOperators/Expect.lean Modified Mathlib/Algebra/BigOperators/Fin.lean Modified Mathlib/Algebra/BigOperators/Finprod.lean Modified Mathlib/Algebra/BigOperators/Finsupp/Basic.lean Modified Mathlib/Algebra/BigOperators/Group/Finset/Basic.lean Modified Mathlib/Algebra/BigOperators/Group/Finset/Defs.lean Modified Mathlib/Algebra/BigOperators/Group/List/Basic.lean Modified Mathlib/Algebra/BigOperators/Group/List/Lemmas.lean Modified Mathlib/Algebra/BigOperators/Group/Multiset/Defs.lean Modified Mathlib/Algebra/BigOperators/GroupWithZero/Action.lean Modified Mathlib/Algebra/BigOperators/Intervals.lean Modified Mathlib/Algebra/BigOperators/Module.lean Modified Mathlib/Algebra/BigOperators/Pi.lean Modified Mathlib/Algebra/BigOperators/Ring/Finset.lean Modified Mathlib/Algebra/Category/AlgCat/Basic.lean Modified Mathlib/Algebra/Category/AlgCat/Limits.lean Modified Mathlib/Algebra/Category/CoalgCat/ComonEquivalence.lean Modified Mathlib/Algebra/Category/CommAlgCat/Basic.lean +/- theorem CategoryTheory.CommAlgCat.hom_inv_apply +/- theorem CategoryTheory.CommAlgCat.inv_hom_apply Modified Mathlib/Algebra/Category/Grp/AB.lean Modified Mathlib/Algebra/Category/Grp/Adjunctions.lean Modified Mathlib/Algebra/Category/Grp/Colimits.lean Modified Mathlib/Algebra/Category/Grp/EpiMono.lean Modified Mathlib/Algebra/Category/Grp/Limits.lean Modified Mathlib/Algebra/Category/ModuleCat/Adjunctions.lean Modified Mathlib/Algebra/Category/ModuleCat/Presheaf.lean Modified Mathlib/Algebra/Category/ModuleCat/Tannaka.lean Modified Mathlib/Algebra/Category/ModuleCat/Topology/Basic.lean Modified Mathlib/Algebra/Category/MonCat/Limits.lean Modified Mathlib/Algebra/Category/Ring/Constructions.lean Modified Mathlib/Algebra/Category/Ring/FilteredColimits.lean Modified Mathlib/Algebra/Category/Ring/Under/Limits.lean Modified Mathlib/Algebra/CharP/Defs.lean Modified Mathlib/Algebra/Colimit/Module.lean Modified Mathlib/Algebra/Colimit/Ring.lean Modified Mathlib/Algebra/ContinuedFractions/Computation/Approximations.lean Modified Mathlib/Algebra/ContinuedFractions/Computation/TerminatesIffRat.lean Modified Mathlib/Algebra/ContinuedFractions/Computation/Translations.lean Modified Mathlib/Algebra/ContinuedFractions/ConvergentsEquiv.lean Modified Mathlib/Algebra/ContinuedFractions/TerminatedStable.lean Modified Mathlib/Algebra/CubicDiscriminant.lean Modified Mathlib/Algebra/DirectSum/Ring.lean Modified Mathlib/Algebra/Divisibility/Prod.lean Modified Mathlib/Algebra/Equiv/TransferInstance.lean Modified Mathlib/Algebra/EuclideanDomain/Basic.lean Modified Mathlib/Algebra/Exact.lean Modified Mathlib/Algebra/Field/Subfield/Basic.lean Modified Mathlib/Algebra/Free.lean Modified Mathlib/Algebra/FreeAbelianGroup/Finsupp.lean Modified Mathlib/Algebra/FreeMonoid/Basic.lean Modified Mathlib/Algebra/FreeMonoid/Symbols.lean Modified Mathlib/Algebra/GCDMonoid/Basic.lean Modified Mathlib/Algebra/GCDMonoid/Finset.lean Modified Mathlib/Algebra/GeomSum.lean +/- theorem geom_sum_one Modified Mathlib/Algebra/Group/Action/Pointwise/Finset.lean Modified Mathlib/Algebra/Group/Action/Pointwise/Set/Basic.lean Modified Mathlib/Algebra/Group/Basic.lean +/- theorem mul_left_iterate_apply_one Modified Mathlib/Algebra/Group/Defs.lean Modified Mathlib/Algebra/Group/End.lean Modified Mathlib/Algebra/Group/Fin/Basic.lean Modified Mathlib/Algebra/Group/Finsupp.lean Modified Mathlib/Algebra/Group/Int/Even.lean +/- theorem Int.two_not_dvd_two_mul_add_one Modified Mathlib/Algebra/Group/Nat/Even.lean +/- theorem Nat.two_not_dvd_two_mul_add_one Modified Mathlib/Algebra/Group/Pi/Basic.lean Modified Mathlib/Algebra/Group/Pi/Lemmas.lean Modified Mathlib/Algebra/Group/Pointwise/Finset/Scalar.lean Modified Mathlib/Algebra/Group/Pointwise/Set/Card.lean Modified Mathlib/Algebra/Group/Pointwise/Set/ListOfFn.lean Modified Mathlib/Algebra/Group/Prod.lean Modified Mathlib/Algebra/Group/Subgroup/Basic.lean Modified Mathlib/Algebra/Group/Subgroup/Defs.lean Modified Mathlib/Algebra/Group/Subgroup/Finsupp.lean Modified Mathlib/Algebra/Group/Subgroup/Ker.lean Modified Mathlib/Algebra/Group/Subgroup/Lattice.lean Modified Mathlib/Algebra/Group/Subgroup/MulOpposite.lean Modified Mathlib/Algebra/Group/Submonoid/BigOperators.lean Modified Mathlib/Algebra/Group/Submonoid/Membership.lean Modified Mathlib/Algebra/Group/Submonoid/Operations.lean Modified Mathlib/Algebra/Group/Subsemigroup/Membership.lean Modified Mathlib/Algebra/Group/Subsemigroup/Operations.lean Modified Mathlib/Algebra/GroupWithZero/Action/Pointwise/Set.lean Modified Mathlib/Algebra/GroupWithZero/Associated.lean Modified Mathlib/Algebra/GroupWithZero/Basic.lean Modified Mathlib/Algebra/GroupWithZero/Hom.lean Modified Mathlib/Algebra/GroupWithZero/Int.lean Modified Mathlib/Algebra/GroupWithZero/Prod.lean Modified Mathlib/Algebra/GroupWithZero/WithZero.lean Modified Mathlib/Algebra/Homology/Additive.lean Modified Mathlib/Algebra/Homology/AlternatingConst.lean Modified Mathlib/Algebra/Homology/Double.lean Modified Mathlib/Algebra/Homology/Embedding/Extend.lean Modified Mathlib/Algebra/Homology/HomologicalComplexLimits.lean Modified Mathlib/Algebra/Homology/Homotopy.lean Modified Mathlib/Algebra/Homology/HomotopyCategory/DegreewiseSplit.lean Modified Mathlib/Algebra/Homology/HomotopyCategory/HomComplex.lean Modified Mathlib/Algebra/Homology/HomotopyCategory/HomComplexShift.lean Modified Mathlib/Algebra/Homology/HomotopyCategory/MappingCone.lean Modified Mathlib/Algebra/Homology/HomotopyCategory/Shift.lean Modified Mathlib/Algebra/Homology/HomotopyCofiber.lean Modified Mathlib/Algebra/Homology/Opposite.lean Modified Mathlib/Algebra/Homology/ShortComplex/PreservesHomology.lean Modified Mathlib/Algebra/Homology/ShortComplex/RightHomology.lean Modified Mathlib/Algebra/Jordan/Basic.lean Modified Mathlib/Algebra/Lie/Abelian.lean Modified Mathlib/Algebra/Lie/BaseChange.lean Modified Mathlib/Algebra/Lie/CartanExists.lean Modified Mathlib/Algebra/Lie/Classical.lean Modified Mathlib/Algebra/Lie/Derivation/Basic.lean Modified Mathlib/Algebra/Lie/DirectSum.lean Modified Mathlib/Algebra/Lie/Engel.lean Modified Mathlib/Algebra/Lie/Free.lean Modified Mathlib/Algebra/Lie/Ideal.lean Modified Mathlib/Algebra/Lie/IdealOperations.lean Modified Mathlib/Algebra/Lie/LieTheorem.lean Modified Mathlib/Algebra/Lie/Nilpotent.lean Modified Mathlib/Algebra/Lie/SkewAdjoint.lean Modified Mathlib/Algebra/Lie/Sl2.lean Modified Mathlib/Algebra/Lie/Solvable.lean Modified Mathlib/Algebra/Lie/Subalgebra.lean Modified Mathlib/Algebra/Lie/Submodule.lean Modified Mathlib/Algebra/Lie/TensorProduct.lean Modified Mathlib/Algebra/Lie/TraceForm.lean Modified Mathlib/Algebra/Lie/Weights/Basic.lean Modified Mathlib/Algebra/Lie/Weights/Cartan.lean Modified Mathlib/Algebra/Lie/Weights/Chain.lean Modified Mathlib/Algebra/Lie/Weights/Killing.lean Modified Mathlib/Algebra/Lie/Weights/Linear.lean Modified Mathlib/Algebra/Lie/Weights/RootSystem.lean Modified Mathlib/Algebra/LinearRecurrence.lean Modified Mathlib/Algebra/ModEq.lean Modified Mathlib/Algebra/Module/Equiv/Defs.lean Modified Mathlib/Algebra/Module/FinitePresentation.lean Modified Mathlib/Algebra/Module/GradedModule.lean Modified Mathlib/Algebra/Module/Injective.lean Modified Mathlib/Algebra/Module/LinearMap/Defs.lean Modified Mathlib/Algebra/Module/LinearMap/Polynomial.lean Modified Mathlib/Algebra/Module/LocalizedModule/Basic.lean Modified Mathlib/Algebra/Module/LocalizedModule/Int.lean Modified Mathlib/Algebra/Module/NatInt.lean Modified Mathlib/Algebra/Module/SnakeLemma.lean Modified Mathlib/Algebra/Module/Submodule/LinearMap.lean Modified Mathlib/Algebra/Module/Submodule/Map.lean Modified Mathlib/Algebra/Module/Submodule/Range.lean Modified Mathlib/Algebra/Module/Torsion.lean Modified Mathlib/Algebra/MonoidAlgebra/Basic.lean Modified Mathlib/Algebra/MonoidAlgebra/Defs.lean Modified Mathlib/Algebra/MonoidAlgebra/Grading.lean Modified Mathlib/Algebra/MonoidAlgebra/Support.lean Modified Mathlib/Algebra/MvPolynomial/Basic.lean Modified Mathlib/Algebra/MvPolynomial/Comap.lean Modified Mathlib/Algebra/MvPolynomial/Degrees.lean Modified Mathlib/Algebra/MvPolynomial/Equiv.lean Modified Mathlib/Algebra/MvPolynomial/Eval.lean Modified Mathlib/Algebra/MvPolynomial/Expand.lean Modified Mathlib/Algebra/MvPolynomial/Funext.lean Modified Mathlib/Algebra/MvPolynomial/Nilpotent.lean Modified Mathlib/Algebra/MvPolynomial/PDeriv.lean Modified Mathlib/Algebra/MvPolynomial/Rename.lean Modified Mathlib/Algebra/MvPolynomial/SchwartzZippel.lean Modified Mathlib/Algebra/MvPolynomial/Variables.lean Modified Mathlib/Algebra/Order/Antidiag/Finsupp.lean Modified Mathlib/Algebra/Order/Antidiag/Nat.lean Modified Mathlib/Algebra/Order/Antidiag/Pi.lean Modified Mathlib/Algebra/Order/Archimedean/Submonoid.lean Modified Mathlib/Algebra/Order/BigOperators/Expect.lean Modified Mathlib/Algebra/Order/BigOperators/Group/Finset.lean Modified Mathlib/Algebra/Order/BigOperators/GroupWithZero/Multiset.lean Modified Mathlib/Algebra/Order/CauSeq/Basic.lean Modified Mathlib/Algebra/Order/CauSeq/BigOperators.lean Modified Mathlib/Algebra/Order/CauSeq/Completion.lean Modified Mathlib/Algebra/Order/Field/Basic.lean Modified Mathlib/Algebra/Order/Field/Power.lean Modified Mathlib/Algebra/Order/Group/Indicator.lean Modified Mathlib/Algebra/Order/Group/Multiset.lean Modified Mathlib/Algebra/Order/Group/Unbundled/Abs.lean Modified Mathlib/Algebra/Order/GroupWithZero/Lex.lean Modified Mathlib/Algebra/Order/Interval/Set/Group.lean Modified Mathlib/Algebra/Order/Monoid/Canonical/Defs.lean Modified Mathlib/Algebra/Order/Monoid/Unbundled/WithTop.lean Modified Mathlib/Algebra/Order/Nonneg/Ring.lean Modified Mathlib/Algebra/Order/Pi.lean Modified Mathlib/Algebra/Order/Rearrangement.lean Modified Mathlib/Algebra/Order/Ring/Abs.lean Modified Mathlib/Algebra/Order/Ring/Finset.lean Modified Mathlib/Algebra/Order/Ring/IsNonarchimedean.lean Modified Mathlib/Algebra/Order/Ring/Pow.lean Modified Mathlib/Algebra/Order/Ring/Unbundled/Rat.lean Modified Mathlib/Algebra/Order/Ring/WithTop.lean Modified Mathlib/Algebra/Order/Sub/WithTop.lean Modified Mathlib/Algebra/Pointwise/Stabilizer.lean Modified Mathlib/Algebra/Polynomial/AlgebraMap.lean Modified Mathlib/Algebra/Polynomial/Basic.lean Modified Mathlib/Algebra/Polynomial/BigOperators.lean Modified Mathlib/Algebra/Polynomial/Coeff.lean Modified Mathlib/Algebra/Polynomial/CoeffList.lean Modified Mathlib/Algebra/Polynomial/CoeffMem.lean Modified Mathlib/Algebra/Polynomial/Degree/CardPowDegree.lean Modified Mathlib/Algebra/Polynomial/Degree/Definitions.lean Modified Mathlib/Algebra/Polynomial/Degree/Lemmas.lean Modified Mathlib/Algebra/Polynomial/Degree/Operations.lean Modified Mathlib/Algebra/Polynomial/Degree/SmallDegree.lean Modified Mathlib/Algebra/Polynomial/Degree/Support.lean Modified Mathlib/Algebra/Polynomial/Derivative.lean Modified Mathlib/Algebra/Polynomial/Div.lean Modified Mathlib/Algebra/Polynomial/Eval/Coeff.lean Modified Mathlib/Algebra/Polynomial/Eval/Defs.lean +/- theorem Polynomial.comp_C Modified Mathlib/Algebra/Polynomial/HasseDeriv.lean Modified Mathlib/Algebra/Polynomial/Inductions.lean Modified Mathlib/Algebra/Polynomial/Lifts.lean Modified Mathlib/Algebra/Polynomial/Module/Basic.lean Modified Mathlib/Algebra/Polynomial/Monic.lean Modified Mathlib/Algebra/Polynomial/Monomial.lean Modified Mathlib/Algebra/Polynomial/OfFn.lean Modified Mathlib/Algebra/Polynomial/Roots.lean Modified Mathlib/Algebra/Polynomial/Smeval.lean Modified Mathlib/Algebra/Polynomial/Taylor.lean Modified Mathlib/Algebra/Polynomial/UnitTrinomial.lean Modified Mathlib/Algebra/Quandle.lean Modified Mathlib/Algebra/QuaternionBasis.lean Modified Mathlib/Algebra/Ring/Equiv.lean Modified Mathlib/Algebra/Ring/GrindInstances.lean Modified Mathlib/Algebra/Ring/Int/Parity.lean Modified Mathlib/Algebra/Ring/Parity.lean Modified Mathlib/Algebra/Ring/Periodic.lean Modified Mathlib/Algebra/Ring/Rat.lean Modified Mathlib/Algebra/Ring/Subring/Basic.lean Modified Mathlib/Algebra/Ring/Subsemiring/Basic.lean Modified Mathlib/Algebra/RingQuot.lean Modified Mathlib/Algebra/SkewMonoidAlgebra/Basic.lean Modified Mathlib/Algebra/Star/CHSH.lean Modified Mathlib/Algebra/Star/Module.lean Modified Mathlib/Algebra/Star/NonUnitalSubalgebra.lean Modified Mathlib/Algebra/Star/SelfAdjoint.lean Modified Mathlib/Algebra/Star/StarAlgHom.lean Modified Mathlib/Algebra/Star/StarRingHom.lean Modified Mathlib/Algebra/Star/Unitary.lean Modified Mathlib/Algebra/TrivSqZeroExt.lean Modified Mathlib/Algebra/Tropical/Basic.lean Modified Mathlib/Algebra/Tropical/BigOperators.lean Modified Mathlib/Algebra/Vertex/HVertexOperator.lean Modified Mathlib/AlgebraicGeometry/AffineScheme.lean Modified Mathlib/AlgebraicGeometry/AffineSpace.lean Modified Mathlib/AlgebraicGeometry/AffineTransitionLimit.lean Modified Mathlib/AlgebraicGeometry/Cover/Open.lean Modified Mathlib/AlgebraicGeometry/EllipticCurve/Affine/Point.lean Modified Mathlib/AlgebraicGeometry/EllipticCurve/DivisionPolynomial/Degree.lean Modified Mathlib/AlgebraicGeometry/EllipticCurve/Projective/Basic.lean Modified Mathlib/AlgebraicGeometry/EllipticCurve/Projective/Formula.lean Modified Mathlib/AlgebraicGeometry/EllipticCurve/Projective/Point.lean Modified Mathlib/AlgebraicGeometry/EllipticCurve/VariableChange.lean Modified Mathlib/AlgebraicGeometry/GammaSpecAdjunction.lean Modified Mathlib/AlgebraicGeometry/Gluing.lean Modified Mathlib/AlgebraicGeometry/IdealSheaf/Basic.lean Modified Mathlib/AlgebraicGeometry/IdealSheaf/Subscheme.lean Modified Mathlib/AlgebraicGeometry/Modules/Tilde.lean Modified Mathlib/AlgebraicGeometry/Morphisms/Affine.lean Modified Mathlib/AlgebraicGeometry/Morphisms/AffineAnd.lean Modified Mathlib/AlgebraicGeometry/Morphisms/Constructors.lean Modified Mathlib/AlgebraicGeometry/Morphisms/OpenImmersion.lean Modified Mathlib/AlgebraicGeometry/Morphisms/QuasiSeparated.lean Modified Mathlib/AlgebraicGeometry/Morphisms/RingHomProperties.lean Modified Mathlib/AlgebraicGeometry/Morphisms/SurjectiveOnStalks.lean Modified Mathlib/AlgebraicGeometry/OpenImmersion.lean Modified Mathlib/AlgebraicGeometry/ProjectiveSpectrum/Proper.lean Modified Mathlib/AlgebraicGeometry/ProjectiveSpectrum/Scheme.lean Modified Mathlib/AlgebraicGeometry/ProjectiveSpectrum/StructureSheaf.lean Modified Mathlib/AlgebraicGeometry/PullbackCarrier.lean Modified Mathlib/AlgebraicGeometry/Pullbacks.lean Modified Mathlib/AlgebraicGeometry/RationalMap.lean Modified Mathlib/AlgebraicGeometry/Restrict.lean Modified Mathlib/AlgebraicGeometry/Scheme.lean Modified Mathlib/AlgebraicGeometry/Spec.lean Modified Mathlib/AlgebraicGeometry/SpreadingOut.lean Modified Mathlib/AlgebraicGeometry/Stalk.lean Modified Mathlib/AlgebraicTopology/AlternatingFaceMapComplex.lean Modified Mathlib/AlgebraicTopology/DoldKan/Decomposition.lean Modified Mathlib/AlgebraicTopology/DoldKan/Degeneracies.lean Modified Mathlib/AlgebraicTopology/DoldKan/Faces.lean Modified Mathlib/AlgebraicTopology/DoldKan/FunctorGamma.lean Modified Mathlib/AlgebraicTopology/DoldKan/GammaCompN.lean Modified Mathlib/AlgebraicTopology/DoldKan/HomotopyEquivalence.lean Modified Mathlib/AlgebraicTopology/DoldKan/NCompGamma.lean Modified Mathlib/AlgebraicTopology/DoldKan/NReflectsIso.lean Modified Mathlib/AlgebraicTopology/DoldKan/Projections.lean Modified Mathlib/AlgebraicTopology/DoldKan/SplitSimplicialObject.lean Modified Mathlib/AlgebraicTopology/ExtraDegeneracy.lean Modified Mathlib/AlgebraicTopology/FundamentalGroupoid/Basic.lean Modified Mathlib/AlgebraicTopology/FundamentalGroupoid/InducedMaps.lean Modified Mathlib/AlgebraicTopology/FundamentalGroupoid/Product.lean Modified Mathlib/AlgebraicTopology/ModelCategory/IsCofibrant.lean Modified Mathlib/AlgebraicTopology/Quasicategory/StrictSegal.lean Modified Mathlib/AlgebraicTopology/SimplexCategory/Basic.lean Modified Mathlib/AlgebraicTopology/SimplexCategory/GeneratorsRelations/NormalForms.lean Modified Mathlib/AlgebraicTopology/SimplicialObject/Basic.lean Modified Mathlib/AlgebraicTopology/SimplicialSet/HomotopyCat.lean Modified Mathlib/AlgebraicTopology/SimplicialSet/NerveAdjunction.lean Modified Mathlib/AlgebraicTopology/SimplicialSet/StdSimplex.lean Modified Mathlib/AlgebraicTopology/TopologicalSimplex.lean Modified Mathlib/Analysis/Analytic/Basic.lean Modified Mathlib/Analysis/Analytic/ChangeOrigin.lean Modified Mathlib/Analysis/Analytic/Composition.lean Modified Mathlib/Analysis/Analytic/Inverse.lean Modified Mathlib/Analysis/Analytic/IsolatedZeros.lean Modified Mathlib/Analysis/Analytic/IteratedFDeriv.lean Modified Mathlib/Analysis/Analytic/Linear.lean Modified Mathlib/Analysis/Analytic/OfScalars.lean Modified Mathlib/Analysis/Analytic/Order.lean Modified Mathlib/Analysis/Analytic/Uniqueness.lean Modified Mathlib/Analysis/Asymptotics/Defs.lean Modified Mathlib/Analysis/Asymptotics/Lemmas.lean Modified Mathlib/Analysis/Asymptotics/LinearGrowth.lean Modified Mathlib/Analysis/Asymptotics/SuperpolynomialDecay.lean Modified Mathlib/Analysis/Asymptotics/TVS.lean Modified Mathlib/Analysis/Asymptotics/Theta.lean Modified Mathlib/Analysis/BoxIntegral/Basic.lean Modified Mathlib/Analysis/BoxIntegral/Box/Basic.lean Modified Mathlib/Analysis/BoxIntegral/Box/SubboxInduction.lean Modified Mathlib/Analysis/BoxIntegral/DivergenceTheorem.lean Modified Mathlib/Analysis/BoxIntegral/Integrability.lean Modified Mathlib/Analysis/BoxIntegral/Partition/Basic.lean Modified Mathlib/Analysis/BoxIntegral/Partition/Measure.lean Modified Mathlib/Analysis/BoxIntegral/Partition/Split.lean Modified Mathlib/Analysis/CStarAlgebra/CStarMatrix.lean Modified Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Basic.lean Modified Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Isometric.lean Modified Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/NonUnital.lean Modified Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Restrict.lean Modified Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Unique.lean Modified Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Unital.lean Modified Mathlib/Analysis/CStarAlgebra/Matrix.lean Modified Mathlib/Analysis/CStarAlgebra/Module/Constructions.lean Modified Mathlib/Analysis/CStarAlgebra/Module/Defs.lean Modified Mathlib/Analysis/CStarAlgebra/Multiplier.lean Modified Mathlib/Analysis/CStarAlgebra/PositiveLinearMap.lean Modified Mathlib/Analysis/CStarAlgebra/Unitization.lean Modified Mathlib/Analysis/Calculus/BumpFunction/Convolution.lean Modified Mathlib/Analysis/Calculus/BumpFunction/FiniteDimension.lean Modified Mathlib/Analysis/Calculus/BumpFunction/InnerProduct.lean Modified Mathlib/Analysis/Calculus/ContDiff/Bounds.lean Modified Mathlib/Analysis/Calculus/ContDiff/Defs.lean Modified Mathlib/Analysis/Calculus/ContDiff/FaaDiBruno.lean Modified Mathlib/Analysis/Calculus/ContDiff/Operations.lean Modified Mathlib/Analysis/Calculus/Deriv/Basic.lean Modified Mathlib/Analysis/Calculus/Deriv/MeanValue.lean Modified Mathlib/Analysis/Calculus/Deriv/ZPow.lean Modified Mathlib/Analysis/Calculus/FDeriv/Add.lean Modified Mathlib/Analysis/Calculus/FDeriv/Analytic.lean Modified Mathlib/Analysis/Calculus/FDeriv/Basic.lean Modified Mathlib/Analysis/Calculus/FDeriv/Measurable.lean Modified Mathlib/Analysis/Calculus/FDeriv/Mul.lean Modified Mathlib/Analysis/Calculus/FDeriv/Prod.lean Modified Mathlib/Analysis/Calculus/FDeriv/Symmetric.lean Modified Mathlib/Analysis/Calculus/InverseFunctionTheorem/FDeriv.lean Modified Mathlib/Analysis/Calculus/IteratedDeriv/FaaDiBruno.lean Modified Mathlib/Analysis/Calculus/IteratedDeriv/Lemmas.lean Modified Mathlib/Analysis/Calculus/LogDeriv.lean Modified Mathlib/Analysis/Calculus/Rademacher.lean Modified Mathlib/Analysis/Calculus/TangentCone.lean Modified Mathlib/Analysis/Calculus/Taylor.lean Modified Mathlib/Analysis/Calculus/VectorField.lean Modified Mathlib/Analysis/Complex/AbelLimit.lean Modified Mathlib/Analysis/Complex/CauchyIntegral.lean Modified Mathlib/Analysis/Complex/Circle.lean Modified Mathlib/Analysis/Complex/Conformal.lean Modified Mathlib/Analysis/Complex/Hadamard.lean Modified Mathlib/Analysis/Complex/Isometry.lean Modified Mathlib/Analysis/Complex/PhragmenLindelof.lean Modified Mathlib/Analysis/Complex/Tietze.lean Modified Mathlib/Analysis/Complex/UpperHalfPlane/Metric.lean Modified Mathlib/Analysis/Complex/UpperHalfPlane/MoebiusAction.lean Modified Mathlib/Analysis/Complex/UpperHalfPlane/Topology.lean Modified Mathlib/Analysis/Complex/ValueDistribution/CountingFunction.lean Modified Mathlib/Analysis/Complex/ValueDistribution/FirstMainTheorem.lean Modified Mathlib/Analysis/Convex/AmpleSet.lean Modified Mathlib/Analysis/Convex/Between.lean Modified Mathlib/Analysis/Convex/BetweenList.lean Modified Mathlib/Analysis/Convex/Birkhoff.lean Modified Mathlib/Analysis/Convex/Caratheodory.lean Modified Mathlib/Analysis/Convex/Combination.lean Modified Mathlib/Analysis/Convex/Cone/Extension.lean Modified Mathlib/Analysis/Convex/Continuous.lean Modified Mathlib/Analysis/Convex/EGauge.lean Modified Mathlib/Analysis/Convex/Function.lean Modified Mathlib/Analysis/Convex/Gauge.lean Modified Mathlib/Analysis/Convex/Integral.lean Modified Mathlib/Analysis/Convex/Mul.lean Modified Mathlib/Analysis/Convex/Segment.lean Modified Mathlib/Analysis/Convex/StoneSeparation.lean Modified Mathlib/Analysis/Convolution.lean Modified Mathlib/Analysis/Distribution/SchwartzSpace.lean Modified Mathlib/Analysis/Fourier/BoundedContinuousFunctionChar.lean Modified Mathlib/Analysis/Fourier/FiniteAbelian/PontryaginDuality.lean Modified Mathlib/Analysis/Fourier/PoissonSummation.lean Modified Mathlib/Analysis/Fourier/RiemannLebesgueLemma.lean Modified Mathlib/Analysis/FunctionalSpaces/SobolevInequality.lean Modified Mathlib/Analysis/InnerProductSpace/Adjoint.lean Modified Mathlib/Analysis/InnerProductSpace/Basic.lean Modified Mathlib/Analysis/InnerProductSpace/ConformalLinearMap.lean Modified Mathlib/Analysis/InnerProductSpace/Defs.lean Modified Mathlib/Analysis/InnerProductSpace/Dual.lean Modified Mathlib/Analysis/InnerProductSpace/GramSchmidtOrtho.lean Modified Mathlib/Analysis/InnerProductSpace/JointEigenspace.lean Modified Mathlib/Analysis/InnerProductSpace/LinearMap.lean Modified Mathlib/Analysis/InnerProductSpace/LinearPMap.lean Modified Mathlib/Analysis/InnerProductSpace/OfNorm.lean Modified Mathlib/Analysis/InnerProductSpace/Orientation.lean Modified Mathlib/Analysis/InnerProductSpace/Orthonormal.lean Modified Mathlib/Analysis/InnerProductSpace/PiL2.lean Modified Mathlib/Analysis/InnerProductSpace/ProdL2.lean Modified Mathlib/Analysis/InnerProductSpace/Projection.lean Modified Mathlib/Analysis/InnerProductSpace/Rayleigh.lean Modified Mathlib/Analysis/InnerProductSpace/Subspace.lean Modified Mathlib/Analysis/InnerProductSpace/TwoDim.lean Modified Mathlib/Analysis/LocallyConvex/AbsConvexOpen.lean Modified Mathlib/Analysis/LocallyConvex/ContinuousOfBounded.lean Modified Mathlib/Analysis/LocallyConvex/WithSeminorms.lean Modified Mathlib/Analysis/MeanInequalities.lean Modified Mathlib/Analysis/MeanInequalitiesPow.lean Modified Mathlib/Analysis/MellinTransform.lean Modified Mathlib/Analysis/Meromorphic/Basic.lean Modified Mathlib/Analysis/Meromorphic/Divisor.lean Modified Mathlib/Analysis/Meromorphic/FactorizedRational.lean Modified Mathlib/Analysis/Meromorphic/NormalForm.lean Modified Mathlib/Analysis/Meromorphic/Order.lean Modified Mathlib/Analysis/Meromorphic/TrailingCoefficient.lean Modified Mathlib/Analysis/Normed/Affine/AddTorsor.lean Modified Mathlib/Analysis/Normed/Affine/AddTorsorBases.lean Modified Mathlib/Analysis/Normed/Affine/Convex.lean Modified Mathlib/Analysis/Normed/Affine/MazurUlam.lean Modified Mathlib/Analysis/Normed/Field/Lemmas.lean Modified Mathlib/Analysis/Normed/Group/AddCircle.lean Modified Mathlib/Analysis/Normed/Group/Basic.lean +/- theorem mem_sphere_one_iff_norm Modified Mathlib/Analysis/Normed/Group/Hom.lean Modified Mathlib/Analysis/Normed/Group/Pointwise.lean +/- theorem ball_one_mul_singleton Modified Mathlib/Analysis/Normed/Group/Quotient.lean Modified Mathlib/Analysis/Normed/Lp/PiLp.lean Modified Mathlib/Analysis/Normed/Lp/ProdLp.lean Modified Mathlib/Analysis/Normed/Lp/lpSpace.lean Modified Mathlib/Analysis/Normed/Module/Basic.lean Modified Mathlib/Analysis/Normed/Module/Dual.lean Modified Mathlib/Analysis/Normed/Module/FiniteDimension.lean Modified Mathlib/Analysis/Normed/Order/UpperLower.lean Modified Mathlib/Analysis/Normed/Ring/Basic.lean Modified Mathlib/Analysis/Normed/Ring/InfiniteSum.lean Modified Mathlib/Analysis/Normed/Ring/Units.lean Modified Mathlib/Analysis/Normed/Unbundled/FiniteExtension.lean Modified Mathlib/Analysis/Normed/Unbundled/InvariantExtension.lean Modified Mathlib/Analysis/Normed/Unbundled/SeminormFromBounded.lean Modified Mathlib/Analysis/Normed/Unbundled/SmoothingSeminorm.lean Modified Mathlib/Analysis/Normed/Unbundled/SpectralNorm.lean Modified Mathlib/Analysis/NormedSpace/FunctionSeries.lean Modified Mathlib/Analysis/NormedSpace/HahnBanach/Extension.lean Modified Mathlib/Analysis/NormedSpace/HahnBanach/SeparatingDual.lean Modified Mathlib/Analysis/NormedSpace/HahnBanach/Separation.lean Modified Mathlib/Analysis/NormedSpace/Multilinear/Basic.lean Modified Mathlib/Analysis/NormedSpace/Multilinear/Curry.lean Modified Mathlib/Analysis/NormedSpace/OperatorNorm/NNNorm.lean Modified Mathlib/Analysis/NormedSpace/PiTensorProduct/ProjectiveSeminorm.lean Modified Mathlib/Analysis/NormedSpace/Pointwise.lean Modified Mathlib/Analysis/NormedSpace/Real.lean Modified Mathlib/Analysis/NormedSpace/SphereNormEquiv.lean Modified Mathlib/Analysis/ODE/PicardLindelof.lean Modified Mathlib/Analysis/PSeries.lean Modified Mathlib/Analysis/Polynomial/Basic.lean Modified Mathlib/Analysis/Polynomial/CauchyBound.lean Modified Mathlib/Analysis/RCLike/Basic.lean Modified Mathlib/Analysis/Seminorm.lean Modified Mathlib/Analysis/SpecialFunctions/BinaryEntropy.lean Modified Mathlib/Analysis/SpecialFunctions/Complex/Arg.lean Modified Mathlib/Analysis/SpecialFunctions/Complex/LogBounds.lean Modified Mathlib/Analysis/SpecialFunctions/ContinuousFunctionalCalculus/ExpLog.lean Modified Mathlib/Analysis/SpecialFunctions/ContinuousFunctionalCalculus/PosPart/Basic.lean Modified Mathlib/Analysis/SpecialFunctions/ContinuousFunctionalCalculus/Rpow/Basic.lean Modified Mathlib/Analysis/SpecialFunctions/ContinuousFunctionalCalculus/Rpow/IntegralRepresentation.lean Modified Mathlib/Analysis/SpecialFunctions/Gamma/Beta.lean Modified Mathlib/Analysis/SpecialFunctions/Gamma/Deligne.lean Modified Mathlib/Analysis/SpecialFunctions/Gaussian/FourierTransform.lean Modified Mathlib/Analysis/SpecialFunctions/Gaussian/GaussianIntegral.lean Modified Mathlib/Analysis/SpecialFunctions/Log/Basic.lean Modified Mathlib/Analysis/SpecialFunctions/Log/Deriv.lean Modified Mathlib/Analysis/SpecialFunctions/Log/ENNRealLog.lean Modified Mathlib/Analysis/SpecialFunctions/Log/NegMulLog.lean Modified Mathlib/Analysis/SpecialFunctions/Log/PosLog.lean Modified Mathlib/Analysis/SpecialFunctions/MulExpNegMulSqIntegral.lean Modified Mathlib/Analysis/SpecialFunctions/Pow/Asymptotics.lean Modified Mathlib/Analysis/SpecialFunctions/Pow/Complex.lean Modified Mathlib/Analysis/SpecialFunctions/Pow/Deriv.lean Modified Mathlib/Analysis/SpecialFunctions/Pow/NNReal.lean Modified Mathlib/Analysis/SpecialFunctions/Pow/Real.lean Modified Mathlib/Analysis/SpecialFunctions/SmoothTransition.lean Modified Mathlib/Analysis/SpecialFunctions/Stirling.lean Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Angle.lean Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Chebyshev.lean Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Complex.lean Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Deriv.lean Modified Mathlib/Analysis/SpecificLimits/Basic.lean Modified Mathlib/Analysis/SpecificLimits/FloorPow.lean Modified Mathlib/Analysis/SpecificLimits/Normed.lean Modified Mathlib/Analysis/Subadditive.lean Modified Mathlib/CategoryTheory/Abelian/Basic.lean Modified Mathlib/CategoryTheory/Abelian/Pseudoelements.lean Modified Mathlib/CategoryTheory/Action/Basic.lean Modified Mathlib/CategoryTheory/Action/Concrete.lean Modified Mathlib/CategoryTheory/Action/Monoidal.lean Modified Mathlib/CategoryTheory/Adhesive.lean Modified Mathlib/CategoryTheory/Adjunction/Basic.lean Modified Mathlib/CategoryTheory/Adjunction/Evaluation.lean Modified Mathlib/CategoryTheory/Adjunction/FullyFaithful.lean Modified Mathlib/CategoryTheory/Adjunction/Lifting/Right.lean Modified Mathlib/CategoryTheory/Adjunction/Unique.lean Modified Mathlib/CategoryTheory/Bicategory/Adjunction/Mate.lean Modified Mathlib/CategoryTheory/Bicategory/Functor/Pseudofunctor.lean Modified Mathlib/CategoryTheory/Bicategory/Grothendieck.lean Modified Mathlib/CategoryTheory/Category/Cat.lean Modified Mathlib/CategoryTheory/Category/ReflQuiv.lean Modified Mathlib/CategoryTheory/Category/RelCat.lean Modified Mathlib/CategoryTheory/Closed/Functor.lean Modified Mathlib/CategoryTheory/Closed/Ideal.lean Modified Mathlib/CategoryTheory/Closed/Monoidal.lean Modified Mathlib/CategoryTheory/CofilteredSystem.lean Modified Mathlib/CategoryTheory/Comma/Arrow.lean Modified Mathlib/CategoryTheory/Comma/StructuredArrow/Basic.lean Modified Mathlib/CategoryTheory/Comma/StructuredArrow/CommaMap.lean Modified Mathlib/CategoryTheory/Comma/StructuredArrow/Functor.lean Modified Mathlib/CategoryTheory/ComposableArrows.lean Modified Mathlib/CategoryTheory/EffectiveEpi/Comp.lean Modified Mathlib/CategoryTheory/EffectiveEpi/Preserves.lean Modified Mathlib/CategoryTheory/Enriched/Opposite.lean Modified Mathlib/CategoryTheory/Enriched/Ordinary/Basic.lean Modified Mathlib/CategoryTheory/EqToHom.lean Modified Mathlib/CategoryTheory/FiberedCategory/Fibered.lean Modified Mathlib/CategoryTheory/FiberedCategory/Grothendieck.lean Modified Mathlib/CategoryTheory/Filtered/Final.lean Modified Mathlib/CategoryTheory/Functor/Currying.lean Modified Mathlib/CategoryTheory/Functor/KanExtension/Adjunction.lean Modified Mathlib/CategoryTheory/Functor/KanExtension/Pointwise.lean Modified Mathlib/CategoryTheory/Galois/Basic.lean Modified Mathlib/CategoryTheory/GlueData.lean Modified Mathlib/CategoryTheory/Grothendieck.lean Modified Mathlib/CategoryTheory/Groupoid/FreeGroupoid.lean Modified Mathlib/CategoryTheory/Groupoid/Subgroupoid.lean Modified Mathlib/CategoryTheory/GuitartExact/VerticalComposition.lean Modified Mathlib/CategoryTheory/Idempotents/Basic.lean Modified Mathlib/CategoryTheory/Idempotents/Biproducts.lean Modified Mathlib/CategoryTheory/Idempotents/HomologicalComplex.lean Modified Mathlib/CategoryTheory/IsConnected.lean Modified Mathlib/CategoryTheory/IsomorphismClasses.lean Modified Mathlib/CategoryTheory/Join/Basic.lean Modified Mathlib/CategoryTheory/LiftingProperties/ParametrizedAdjunction.lean Modified Mathlib/CategoryTheory/Limits/Connected.lean Modified Mathlib/CategoryTheory/Limits/Constructions/BinaryProducts.lean Modified Mathlib/CategoryTheory/Limits/Constructions/Equalizers.lean Modified Mathlib/CategoryTheory/Limits/Constructions/Filtered.lean Modified Mathlib/CategoryTheory/Limits/FilteredColimitCommutesFiniteLimit.lean Modified Mathlib/CategoryTheory/Limits/Final.lean Modified Mathlib/CategoryTheory/Limits/Fubini.lean Modified Mathlib/CategoryTheory/Limits/HasLimits.lean Modified Mathlib/CategoryTheory/Limits/IndYoneda.lean Modified Mathlib/CategoryTheory/Limits/IsLimit.lean Modified Mathlib/CategoryTheory/Limits/MorphismProperty.lean Modified Mathlib/CategoryTheory/Limits/Opposites.lean Modified Mathlib/CategoryTheory/Limits/Preserves/Bifunctor.lean Modified Mathlib/CategoryTheory/Limits/Preserves/Limits.lean Modified Mathlib/CategoryTheory/Limits/Preserves/Over.lean Modified Mathlib/CategoryTheory/Limits/Preserves/Yoneda.lean Modified Mathlib/CategoryTheory/Limits/Presheaf.lean Modified Mathlib/CategoryTheory/Limits/Shapes/BinaryBiproducts.lean Modified Mathlib/CategoryTheory/Limits/Shapes/BinaryProducts.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Biproducts.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Countable.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Diagonal.lean Modified Mathlib/CategoryTheory/Limits/Shapes/FiniteMultiequalizer.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Grothendieck.lean Modified Mathlib/CategoryTheory/Limits/Shapes/KernelPair.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Kernels.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Multiequalizer.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Products.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Pullback/Iso.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Pullback/Mono.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Reflexive.lean Modified Mathlib/CategoryTheory/Limits/Shapes/RegularMono.lean Modified Mathlib/CategoryTheory/Limits/Shapes/SequentialProduct.lean Modified Mathlib/CategoryTheory/Limits/Shapes/WidePullbacks.lean Modified Mathlib/CategoryTheory/Limits/Shapes/ZeroMorphisms.lean Modified Mathlib/CategoryTheory/Limits/VanKampen.lean Modified Mathlib/CategoryTheory/Localization/Bifunctor.lean Modified Mathlib/CategoryTheory/Localization/CalculusOfFractions.lean Modified Mathlib/CategoryTheory/Localization/Monoidal.lean Modified Mathlib/CategoryTheory/Monad/Adjunction.lean Modified Mathlib/CategoryTheory/Monad/Basic.lean Modified Mathlib/CategoryTheory/Monad/Comonadicity.lean Modified Mathlib/CategoryTheory/Monad/Kleisli.lean Modified Mathlib/CategoryTheory/Monoidal/Action/Basic.lean Modified Mathlib/CategoryTheory/Monoidal/Bimon_.lean Modified Mathlib/CategoryTheory/Monoidal/Braided/Basic.lean Modified Mathlib/CategoryTheory/Monoidal/Braided/Reflection.lean Modified Mathlib/CategoryTheory/Monoidal/Cartesian/Grp_.lean Modified Mathlib/CategoryTheory/Monoidal/Category.lean Modified Mathlib/CategoryTheory/Monoidal/CommGrp_.lean Modified Mathlib/CategoryTheory/Monoidal/Comon_.lean Modified Mathlib/CategoryTheory/Monoidal/ExternalProduct.lean Modified Mathlib/CategoryTheory/Monoidal/Grp_.lean Modified Mathlib/CategoryTheory/Monoidal/Hopf_.lean Modified Mathlib/CategoryTheory/Monoidal/Internal/Module.lean Modified Mathlib/CategoryTheory/Monoidal/Mon_.lean Modified Mathlib/CategoryTheory/Monoidal/Preadditive.lean Modified Mathlib/CategoryTheory/MorphismProperty/Limits.lean Modified Mathlib/CategoryTheory/MorphismProperty/Representable.lean Modified Mathlib/CategoryTheory/NatIso.lean Modified Mathlib/CategoryTheory/PUnit.lean Modified Mathlib/CategoryTheory/PathCategory/Basic.lean Modified Mathlib/CategoryTheory/Preadditive/Biproducts.lean Modified Mathlib/CategoryTheory/Preadditive/EilenbergMoore.lean Modified Mathlib/CategoryTheory/Preadditive/EndoFunctor.lean Modified Mathlib/CategoryTheory/Preadditive/HomOrthogonal.lean Modified Mathlib/CategoryTheory/Preadditive/Mat.lean Modified Mathlib/CategoryTheory/Preadditive/OfBiproducts.lean Modified Mathlib/CategoryTheory/Presentable/IsCardinalFiltered.lean Modified Mathlib/CategoryTheory/Shift/CommShift.lean Modified Mathlib/CategoryTheory/Shift/Opposite.lean Modified Mathlib/CategoryTheory/Shift/ShiftedHom.lean Modified Mathlib/CategoryTheory/Sites/Adjunction.lean Modified Mathlib/CategoryTheory/Sites/Coherent/RegularTopology.lean Modified Mathlib/CategoryTheory/Sites/CompatiblePlus.lean Modified Mathlib/CategoryTheory/Sites/CompatibleSheafification.lean Modified Mathlib/CategoryTheory/Sites/ConcreteSheafification.lean Modified Mathlib/CategoryTheory/Sites/DenseSubsite/Basic.lean Modified Mathlib/CategoryTheory/Sites/DenseSubsite/SheafEquiv.lean Modified Mathlib/CategoryTheory/Sites/Equivalence.lean Modified Mathlib/CategoryTheory/Sites/LeftExact.lean Modified Mathlib/CategoryTheory/Sites/Plus.lean Modified Mathlib/CategoryTheory/Sites/Sheaf.lean Modified Mathlib/CategoryTheory/Sites/SheafHom.lean Modified Mathlib/CategoryTheory/Sites/Subcanonical.lean Modified Mathlib/CategoryTheory/Subobject/Basic.lean Modified Mathlib/CategoryTheory/Subobject/Comma.lean Modified Mathlib/CategoryTheory/Subobject/Lattice.lean Modified Mathlib/CategoryTheory/Subobject/Limits.lean Modified Mathlib/CategoryTheory/Subpresheaf/Finite.lean Modified Mathlib/CategoryTheory/Triangulated/Adjunction.lean Modified Mathlib/CategoryTheory/Triangulated/Opposite/Basic.lean Modified Mathlib/CategoryTheory/Triangulated/Opposite/Functor.lean Modified Mathlib/CategoryTheory/Triangulated/Subcategory.lean Modified Mathlib/CategoryTheory/Types.lean +/- theorem CategoryTheory.FunctorToTypes.map_id_apply Modified Mathlib/CategoryTheory/WithTerminal/Basic.lean Modified Mathlib/Combinatorics/Additive/AP/Three/Behrend.lean Modified Mathlib/Combinatorics/Additive/ApproximateSubgroup.lean Modified Mathlib/Combinatorics/Additive/CauchyDavenport.lean Modified Mathlib/Combinatorics/Additive/Corner/Roth.lean Modified Mathlib/Combinatorics/Additive/Dissociation.lean Modified Mathlib/Combinatorics/Additive/Energy.lean Modified Mathlib/Combinatorics/Additive/Randomisation.lean Modified Mathlib/Combinatorics/Additive/VerySmallDoubling.lean Modified Mathlib/Combinatorics/Colex.lean Modified Mathlib/Combinatorics/Derangements/Basic.lean Modified Mathlib/Combinatorics/Enumerative/Bell.lean Modified Mathlib/Combinatorics/Enumerative/Composition.lean +/- theorem Composition.boundary_zero Modified Mathlib/Combinatorics/Enumerative/DyckWord.lean Modified Mathlib/Combinatorics/Enumerative/IncidenceAlgebra.lean Modified Mathlib/Combinatorics/Enumerative/InclusionExclusion.lean Modified Mathlib/Combinatorics/Enumerative/Partition.lean Modified Mathlib/Combinatorics/Extremal/RuzsaSzemeredi.lean Modified Mathlib/Combinatorics/Graph/Basic.lean Modified Mathlib/Combinatorics/HalesJewett.lean +/- theorem Combinatorics.Line.apply_some Modified Mathlib/Combinatorics/Hall/Basic.lean Modified Mathlib/Combinatorics/Hall/Finite.lean Modified Mathlib/Combinatorics/Nullstellensatz.lean Modified Mathlib/Combinatorics/Quiver/Covering.lean Modified Mathlib/Combinatorics/Quiver/Push.lean Modified Mathlib/Combinatorics/Schnirelmann.lean Modified Mathlib/Combinatorics/SetFamily/AhlswedeZhang.lean Modified Mathlib/Combinatorics/SetFamily/Compression/Down.lean Modified Mathlib/Combinatorics/SetFamily/Compression/UV.lean Modified Mathlib/Combinatorics/SetFamily/FourFunctions.lean Modified Mathlib/Combinatorics/SetFamily/HarrisKleitman.lean Modified Mathlib/Combinatorics/SetFamily/KruskalKatona.lean Modified Mathlib/Combinatorics/SetFamily/LYM.lean Modified Mathlib/Combinatorics/SetFamily/Shadow.lean Modified Mathlib/Combinatorics/SimpleGraph/Acyclic.lean Modified Mathlib/Combinatorics/SimpleGraph/AdjMatrix.lean Modified Mathlib/Combinatorics/SimpleGraph/Basic.lean Modified Mathlib/Combinatorics/SimpleGraph/Bipartite.lean Modified Mathlib/Combinatorics/SimpleGraph/Clique.lean Modified Mathlib/Combinatorics/SimpleGraph/Coloring.lean Modified Mathlib/Combinatorics/SimpleGraph/Connectivity/Connected.lean Modified Mathlib/Combinatorics/SimpleGraph/Connectivity/Represents.lean Modified Mathlib/Combinatorics/SimpleGraph/Connectivity/Subgraph.lean Modified Mathlib/Combinatorics/SimpleGraph/Connectivity/WalkCounting.lean Modified Mathlib/Combinatorics/SimpleGraph/Connectivity/WalkDecomp.lean Modified Mathlib/Combinatorics/SimpleGraph/Copy.lean Modified Mathlib/Combinatorics/SimpleGraph/DegreeSum.lean Modified Mathlib/Combinatorics/SimpleGraph/Diam.lean Modified Mathlib/Combinatorics/SimpleGraph/Ends/Properties.lean Modified Mathlib/Combinatorics/SimpleGraph/Finite.lean Modified Mathlib/Combinatorics/SimpleGraph/Hamiltonian.lean Modified Mathlib/Combinatorics/SimpleGraph/LapMatrix.lean Modified Mathlib/Combinatorics/SimpleGraph/Maps.lean Modified Mathlib/Combinatorics/SimpleGraph/Matching.lean Modified Mathlib/Combinatorics/SimpleGraph/Operations.lean Modified Mathlib/Combinatorics/SimpleGraph/Paths.lean Modified Mathlib/Combinatorics/SimpleGraph/Prod.lean Modified Mathlib/Combinatorics/SimpleGraph/Regularity/Chunk.lean Modified Mathlib/Combinatorics/SimpleGraph/Regularity/Equitabilise.lean Modified Mathlib/Combinatorics/SimpleGraph/Regularity/Increment.lean Modified Mathlib/Combinatorics/SimpleGraph/Regularity/Uniform.lean Modified Mathlib/Combinatorics/SimpleGraph/Subgraph.lean Modified Mathlib/Combinatorics/SimpleGraph/Trails.lean Modified Mathlib/Combinatorics/SimpleGraph/Triangle/Basic.lean Modified Mathlib/Combinatorics/SimpleGraph/Triangle/Counting.lean Modified Mathlib/Combinatorics/SimpleGraph/Triangle/Tripartite.lean Modified Mathlib/Combinatorics/SimpleGraph/Turan.lean Modified Mathlib/Combinatorics/SimpleGraph/Tutte.lean Modified Mathlib/Combinatorics/SimpleGraph/Walk.lean Modified Mathlib/Combinatorics/Young/YoungDiagram.lean Modified Mathlib/Computability/AkraBazzi/AkraBazzi.lean Modified Mathlib/Computability/AkraBazzi/GrowsPolynomially.lean Modified Mathlib/Computability/AkraBazzi/SumTransform.lean Modified Mathlib/Computability/Halting.lean Modified Mathlib/Computability/Language.lean Modified Mathlib/Computability/NFA.lean Modified Mathlib/Computability/Partrec.lean Modified Mathlib/Computability/PartrecCode.lean Modified Mathlib/Computability/PostTuringMachine.lean Modified Mathlib/Computability/Primrec.lean Modified Mathlib/Computability/RegularExpressions.lean Modified Mathlib/Computability/TMConfig.lean Modified Mathlib/Computability/TMToPartrec.lean Modified Mathlib/Computability/Tape.lean Modified Mathlib/Computability/TuringMachine.lean Modified Mathlib/Condensed/Discrete/Colimit.lean Modified Mathlib/Condensed/Discrete/LocallyConstant.lean Modified Mathlib/Control/Applicative.lean Modified Mathlib/Control/Basic.lean +/- theorem guard_true Modified Mathlib/Control/Bitraversable/Instances.lean Modified Mathlib/Control/Fold.lean Modified Mathlib/Control/Functor.lean Modified Mathlib/Control/LawfulFix.lean Modified Mathlib/Control/Monad/Cont.lean Modified Mathlib/Control/Traversable/Equiv.lean Modified Mathlib/Control/Traversable/Instances.lean Modified Mathlib/Data/Analysis/Filter.lean Modified Mathlib/Data/Bool/Count.lean Modified Mathlib/Data/Complex/Basic.lean Modified Mathlib/Data/Complex/Exponential.lean Modified Mathlib/Data/Complex/Module.lean Modified Mathlib/Data/Complex/Order.lean Modified Mathlib/Data/Complex/Trigonometric.lean +/- theorem Complex.cos_neg +/- theorem Complex.sinh_neg +/- theorem Real.cos_neg +/- theorem Real.sin_neg +/- theorem Real.sinh_neg +/- theorem Real.tan_neg +/- theorem Real.tanh_neg Modified Mathlib/Data/DFinsupp/BigOperators.lean Modified Mathlib/Data/DFinsupp/Defs.lean Modified Mathlib/Data/DFinsupp/Multiset.lean Modified Mathlib/Data/DFinsupp/NeLocus.lean Modified Mathlib/Data/ENNReal/Inv.lean Modified Mathlib/Data/ENNReal/Operations.lean Modified Mathlib/Data/ENat/Basic.lean Modified Mathlib/Data/EReal/Basic.lean Modified Mathlib/Data/EReal/Inv.lean Modified Mathlib/Data/Erased.lean Modified Mathlib/Data/Fin/Basic.lean Modified Mathlib/Data/Fin/Tuple/Basic.lean Modified Mathlib/Data/Fin/Tuple/Embedding.lean Modified Mathlib/Data/Fin/Tuple/NatAntidiagonal.lean Modified Mathlib/Data/Fin/Tuple/Take.lean Modified Mathlib/Data/Fin/VecNotation.lean Modified Mathlib/Data/FinEnum.lean Modified Mathlib/Data/Finmap.lean Modified Mathlib/Data/Finset/Basic.lean Modified Mathlib/Data/Finset/Card.lean Modified Mathlib/Data/Finset/Filter.lean Modified Mathlib/Data/Finset/Fin.lean Modified Mathlib/Data/Finset/Functor.lean Modified Mathlib/Data/Finset/Image.lean Modified Mathlib/Data/Finset/Insert.lean Modified Mathlib/Data/Finset/Lattice/Fold.lean Modified Mathlib/Data/Finset/Max.lean Modified Mathlib/Data/Finset/NoncommProd.lean Modified Mathlib/Data/Finset/Option.lean Modified Mathlib/Data/Finset/Piecewise.lean Modified Mathlib/Data/Finset/Powerset.lean Modified Mathlib/Data/Finset/Preimage.lean Modified Mathlib/Data/Finset/Prod.lean Modified Mathlib/Data/Finset/SDiff.lean Modified Mathlib/Data/Finset/Sigma.lean Modified Mathlib/Data/Finset/Sort.lean Modified Mathlib/Data/Finset/Sups.lean Modified Mathlib/Data/Finset/Sym.lean Modified Mathlib/Data/Finset/Union.lean Modified Mathlib/Data/Finsupp/AList.lean Modified Mathlib/Data/Finsupp/Basic.lean Modified Mathlib/Data/Finsupp/BigOperators.lean Modified Mathlib/Data/Finsupp/Defs.lean Modified Mathlib/Data/Finsupp/Lex.lean Modified Mathlib/Data/Finsupp/MonomialOrder/DegLex.lean Modified Mathlib/Data/Finsupp/Multiset.lean Modified Mathlib/Data/Finsupp/NeLocus.lean Modified Mathlib/Data/Finsupp/Order.lean Modified Mathlib/Data/Finsupp/Single.lean Modified Mathlib/Data/Finsupp/Weight.lean Modified Mathlib/Data/Fintype/BigOperators.lean Modified Mathlib/Data/Fintype/Card.lean Modified Mathlib/Data/Fintype/EquivFin.lean Modified Mathlib/Data/Fintype/List.lean Modified Mathlib/Data/Fintype/Perm.lean Modified Mathlib/Data/Fintype/Pi.lean Modified Mathlib/Data/Fintype/Sets.lean Modified Mathlib/Data/Holor.lean Modified Mathlib/Data/Int/Bitwise.lean Modified Mathlib/Data/Int/CardIntervalMod.lean Modified Mathlib/Data/Int/Cast/Basic.lean Modified Mathlib/Data/Int/Interval.lean Modified Mathlib/Data/Int/Lemmas.lean Modified Mathlib/Data/Int/ModEq.lean Modified Mathlib/Data/List/AList.lean Modified Mathlib/Data/List/Basic.lean Modified Mathlib/Data/List/Cycle.lean Modified Mathlib/Data/List/DropRight.lean +/- theorem List.rdropWhile_nil +/- theorem List.rtakeWhile_nil Modified Mathlib/Data/List/EditDistance/Estimator.lean Modified Mathlib/Data/List/Forall2.lean Modified Mathlib/Data/List/Indexes.lean Modified Mathlib/Data/List/Induction.lean Modified Mathlib/Data/List/Infix.lean Modified Mathlib/Data/List/InsertIdx.lean Modified Mathlib/Data/List/Intervals.lean Modified Mathlib/Data/List/Lattice.lean Modified Mathlib/Data/List/Lemmas.lean Modified Mathlib/Data/List/Lookmap.lean Modified Mathlib/Data/List/MinMax.lean Modified Mathlib/Data/List/ModifyLast.lean Modified Mathlib/Data/List/NatAntidiagonal.lean Modified Mathlib/Data/List/Nodup.lean Modified Mathlib/Data/List/NodupEquivFin.lean Modified Mathlib/Data/List/OfFn.lean Modified Mathlib/Data/List/Perm/Lattice.lean Modified Mathlib/Data/List/Permutation.lean Modified Mathlib/Data/List/ProdSigma.lean Modified Mathlib/Data/List/ReduceOption.lean Modified Mathlib/Data/List/Rotate.lean Modified Mathlib/Data/List/Scan.lean Modified Mathlib/Data/List/Sections.lean Modified Mathlib/Data/List/Shortlex.lean Modified Mathlib/Data/List/Sigma.lean Modified Mathlib/Data/List/Sort.lean Modified Mathlib/Data/List/SplitLengths.lean Modified Mathlib/Data/List/Sublists.lean Modified Mathlib/Data/List/Sym.lean Modified Mathlib/Data/List/TFAE.lean Modified Mathlib/Data/List/TakeDrop.lean Modified Mathlib/Data/List/TakeWhile.lean Modified Mathlib/Data/List/ToFinsupp.lean Modified Mathlib/Data/Matrix/Basic.lean Modified Mathlib/Data/Matrix/Basis.lean Modified Mathlib/Data/Matrix/Block.lean Modified Mathlib/Data/Matrix/ColumnRowPartitioned.lean Modified Mathlib/Data/Matrix/DoublyStochastic.lean Modified Mathlib/Data/Matrix/Notation.lean Modified Mathlib/Data/Matrix/PEquiv.lean Modified Mathlib/Data/Matrix/Rank.lean Modified Mathlib/Data/Matrix/Reflection.lean Modified Mathlib/Data/Matrix/RowCol.lean Modified Mathlib/Data/Matroid/Basic.lean Modified Mathlib/Data/Matroid/Circuit.lean Modified Mathlib/Data/Matroid/Constructions.lean Modified Mathlib/Data/Matroid/IndepAxioms.lean Modified Mathlib/Data/Matroid/Loop.lean Modified Mathlib/Data/Matroid/Map.lean Modified Mathlib/Data/Matroid/Sum.lean Modified Mathlib/Data/Multiset/Bind.lean Modified Mathlib/Data/Multiset/Count.lean Modified Mathlib/Data/Multiset/Dedup.lean Modified Mathlib/Data/Multiset/Filter.lean Modified Mathlib/Data/Multiset/FinsetOps.lean Modified Mathlib/Data/Multiset/Fintype.lean Modified Mathlib/Data/Multiset/Functor.lean Modified Mathlib/Data/Multiset/Pi.lean Modified Mathlib/Data/Multiset/Powerset.lean Modified Mathlib/Data/Multiset/Replicate.lean Modified Mathlib/Data/Multiset/Sections.lean Modified Mathlib/Data/Multiset/UnionInter.lean Modified Mathlib/Data/Multiset/ZeroCons.lean Modified Mathlib/Data/NNRat/Defs.lean Modified Mathlib/Data/NNReal/Defs.lean Modified Mathlib/Data/NNReal/Star.lean Modified Mathlib/Data/Nat/BinaryRec.lean Modified Mathlib/Data/Nat/Bits.lean Modified Mathlib/Data/Nat/Bitwise.lean Modified Mathlib/Data/Nat/Cast/Basic.lean Modified Mathlib/Data/Nat/Cast/Defs.lean Modified Mathlib/Data/Nat/Cast/Order/Ring.lean Modified Mathlib/Data/Nat/Choose/Basic.lean Modified Mathlib/Data/Nat/Choose/Lucas.lean Modified Mathlib/Data/Nat/Choose/Multinomial.lean Modified Mathlib/Data/Nat/Choose/Vandermonde.lean Modified Mathlib/Data/Nat/Digits/Defs.lean Modified Mathlib/Data/Nat/Digits/Lemmas.lean Modified Mathlib/Data/Nat/Factorial/SuperFactorial.lean Modified Mathlib/Data/Nat/Factorization/Basic.lean Modified Mathlib/Data/Nat/Factorization/Defs.lean Modified Mathlib/Data/Nat/Factorization/PrimePow.lean Modified Mathlib/Data/Nat/Factorization/Root.lean Modified Mathlib/Data/Nat/Fib/Basic.lean Modified Mathlib/Data/Nat/Find.lean Modified Mathlib/Data/Nat/Lattice.lean Modified Mathlib/Data/Nat/Log.lean Modified Mathlib/Data/Nat/ModEq.lean Modified Mathlib/Data/Nat/Pairing.lean Modified Mathlib/Data/Nat/PartENat.lean Modified Mathlib/Data/Nat/Periodic.lean Modified Mathlib/Data/Nat/Prime/Basic.lean Modified Mathlib/Data/Nat/Prime/Defs.lean Modified Mathlib/Data/Nat/Prime/Int.lean Modified Mathlib/Data/Nat/PrimeFin.lean Modified Mathlib/Data/Nat/Set.lean Modified Mathlib/Data/Nat/Size.lean Modified Mathlib/Data/Nat/Squarefree.lean Modified Mathlib/Data/Nat/Totient.lean Modified Mathlib/Data/Nat/WithBot.lean Modified Mathlib/Data/Num/Lemmas.lean Modified Mathlib/Data/Num/ZNum.lean Modified Mathlib/Data/Ordmap/Invariants.lean Modified Mathlib/Data/PEquiv.lean Modified Mathlib/Data/PFun.lean Modified Mathlib/Data/PFunctor/Multivariate/Basic.lean Modified Mathlib/Data/PFunctor/Multivariate/M.lean Modified Mathlib/Data/PFunctor/Univariate/Basic.lean Modified Mathlib/Data/PFunctor/Univariate/M.lean Modified Mathlib/Data/PNat/Find.lean Modified Mathlib/Data/Part.lean Modified Mathlib/Data/QPF/Multivariate/Constructions/Fix.lean Modified Mathlib/Data/Quot.lean Modified Mathlib/Data/Rat/Cast/Lemmas.lean Modified Mathlib/Data/Rat/Defs.lean Modified Mathlib/Data/Rat/Lemmas.lean Modified Mathlib/Data/Real/ConjExponents.lean Modified Mathlib/Data/Real/GoldenRatio.lean Modified Mathlib/Data/Real/Irrational.lean Modified Mathlib/Data/Real/Pi/Irrational.lean Modified Mathlib/Data/Real/Pi/Wallis.lean Modified Mathlib/Data/Seq/Parallel.lean Modified Mathlib/Data/Seq/Seq.lean Modified Mathlib/Data/Set/Basic.lean Modified Mathlib/Data/Set/Card.lean Modified Mathlib/Data/Set/Enumerate.lean Modified Mathlib/Data/Set/Image.lean Modified Mathlib/Data/Set/Insert.lean Modified Mathlib/Data/Set/Lattice.lean Modified Mathlib/Data/Set/Lattice/Image.lean Modified Mathlib/Data/Set/MemPartition.lean Modified Mathlib/Data/Set/Pairwise/Basic.lean Modified Mathlib/Data/Set/Prod.lean Modified Mathlib/Data/Set/Sups.lean Modified Mathlib/Data/Setoid/Basic.lean Modified Mathlib/Data/Setoid/Partition.lean Modified Mathlib/Data/Setoid/Partition/Card.lean Modified Mathlib/Data/Sign.lean Modified Mathlib/Data/Stream/Init.lean Modified Mathlib/Data/String/Lemmas.lean Modified Mathlib/Data/Sum/Lattice.lean Modified Mathlib/Data/Sum/Order.lean Modified Mathlib/Data/Sym/Sym2.lean Modified Mathlib/Data/TypeVec.lean Modified Mathlib/Data/Vector/Basic.lean Modified Mathlib/Data/Vector3.lean Modified Mathlib/Data/WSeq/Basic.lean Modified Mathlib/Data/WSeq/Defs.lean Modified Mathlib/Data/WSeq/Relation.lean Modified Mathlib/Data/ZMod/Basic.lean Modified Mathlib/Deprecated/AnalyticManifold.lean Modified Mathlib/Dynamics/Circle/RotationNumber/TranslationNumber.lean Modified Mathlib/Dynamics/Ergodic/AddCircle.lean Modified Mathlib/Dynamics/Ergodic/MeasurePreserving.lean Modified Mathlib/Dynamics/TopologicalEntropy/CoverEntropy.lean Modified Mathlib/Dynamics/TopologicalEntropy/NetEntropy.lean Modified Mathlib/Dynamics/TopologicalEntropy/Subset.lean Modified Mathlib/FieldTheory/AxGrothendieck.lean Modified Mathlib/FieldTheory/Differential/Basic.lean Modified Mathlib/FieldTheory/Differential/Liouville.lean Modified Mathlib/FieldTheory/Finite/GaloisField.lean Modified Mathlib/FieldTheory/Finite/Polynomial.lean Modified Mathlib/FieldTheory/Fixed.lean Modified Mathlib/FieldTheory/Galois/Basic.lean Modified Mathlib/FieldTheory/Galois/GaloisClosure.lean Modified Mathlib/FieldTheory/IntermediateField/Adjoin/Defs.lean Modified Mathlib/FieldTheory/IsAlgClosed/Basic.lean Modified Mathlib/FieldTheory/IsAlgClosed/Spectrum.lean Modified Mathlib/FieldTheory/KummerExtension.lean Modified Mathlib/FieldTheory/Minpoly/MinpolyDiv.lean Modified Mathlib/FieldTheory/PerfectClosure.lean Modified Mathlib/FieldTheory/PolynomialGaloisGroup.lean Modified Mathlib/FieldTheory/PrimitiveElement.lean Modified Mathlib/FieldTheory/PurelyInseparable/Basic.lean Modified Mathlib/FieldTheory/PurelyInseparable/PerfectClosure.lean Modified Mathlib/FieldTheory/RatFunc/Basic.lean Modified Mathlib/FieldTheory/RatFunc/Defs.lean Modified Mathlib/FieldTheory/RatFunc/Degree.lean Modified Mathlib/Geometry/Euclidean/Altitude.lean Modified Mathlib/Geometry/Euclidean/Angle/Oriented/Basic.lean Modified Mathlib/Geometry/Euclidean/Angle/Oriented/Rotation.lean Modified Mathlib/Geometry/Euclidean/Circumcenter.lean Modified Mathlib/Geometry/Euclidean/Incenter.lean Modified Mathlib/Geometry/Euclidean/MongePoint.lean Modified Mathlib/Geometry/Euclidean/Projection.lean Modified Mathlib/Geometry/Euclidean/SignedDist.lean Modified Mathlib/Geometry/Euclidean/Sphere/Power.lean Modified Mathlib/Geometry/Euclidean/Triangle.lean Modified Mathlib/Geometry/Group/Growth/LinearLowerBound.lean Modified Mathlib/Geometry/Manifold/Algebra/LeftInvariantDerivation.lean Modified Mathlib/Geometry/Manifold/ChartedSpace.lean Modified Mathlib/Geometry/Manifold/ContMDiff/Atlas.lean Modified Mathlib/Geometry/Manifold/ContMDiff/Basic.lean Modified Mathlib/Geometry/Manifold/ContMDiff/Constructions.lean Modified Mathlib/Geometry/Manifold/ContMDiff/Defs.lean Modified Mathlib/Geometry/Manifold/ContMDiffMFDeriv.lean Modified Mathlib/Geometry/Manifold/Diffeomorph.lean Modified Mathlib/Geometry/Manifold/Instances/Real.lean Modified Mathlib/Geometry/Manifold/Instances/Sphere.lean Modified Mathlib/Geometry/Manifold/IsManifold/Basic.lean Modified Mathlib/Geometry/Manifold/LocalInvariantProperties.lean Modified Mathlib/Geometry/Manifold/MFDeriv/Tangent.lean Modified Mathlib/Geometry/Manifold/MFDeriv/UniqueDifferential.lean Modified Mathlib/Geometry/Manifold/PartitionOfUnity.lean Modified Mathlib/Geometry/Manifold/VectorBundle/SmoothSection.lean Modified Mathlib/Geometry/Manifold/VectorField/LieBracket.lean Modified Mathlib/Geometry/Manifold/VectorField/Pullback.lean Modified Mathlib/Geometry/RingedSpace/LocallyRingedSpace.lean Modified Mathlib/Geometry/RingedSpace/LocallyRingedSpace/ResidueField.lean Modified Mathlib/Geometry/RingedSpace/OpenImmersion.lean Modified Mathlib/Geometry/RingedSpace/PresheafedSpace.lean Modified Mathlib/Geometry/RingedSpace/PresheafedSpace/Gluing.lean Modified Mathlib/Geometry/RingedSpace/PresheafedSpace/HasColimits.lean Modified Mathlib/Geometry/RingedSpace/Stalks.lean Modified Mathlib/GroupTheory/Abelianization.lean Modified Mathlib/GroupTheory/ArchimedeanDensely.lean Modified Mathlib/GroupTheory/ClassEquation.lean Modified Mathlib/GroupTheory/Commutator/Basic.lean Modified Mathlib/GroupTheory/Complement.lean Modified Mathlib/GroupTheory/Congruence/Defs.lean Modified Mathlib/GroupTheory/Coprod/Basic.lean Modified Mathlib/GroupTheory/CoprodI.lean Modified Mathlib/GroupTheory/Coset/Basic.lean Modified Mathlib/GroupTheory/Coset/Defs.lean Modified Mathlib/GroupTheory/CosetCover.lean Modified Mathlib/GroupTheory/Coxeter/Basic.lean Modified Mathlib/GroupTheory/Coxeter/Inversion.lean Modified Mathlib/GroupTheory/DoubleCoset.lean Modified Mathlib/GroupTheory/EckmannHilton.lean Modified Mathlib/GroupTheory/Exponent.lean Modified Mathlib/GroupTheory/FreeGroup/Basic.lean Modified Mathlib/GroupTheory/Goursat.lean Modified Mathlib/GroupTheory/GroupAction/Basic.lean Modified Mathlib/GroupTheory/GroupAction/Blocks.lean Modified Mathlib/GroupTheory/GroupAction/ConjAct.lean Modified Mathlib/GroupTheory/GroupAction/Defs.lean Modified Mathlib/GroupTheory/GroupAction/Hom.lean Modified Mathlib/GroupTheory/GroupAction/Primitive.lean Modified Mathlib/GroupTheory/GroupAction/Quotient.lean Modified Mathlib/GroupTheory/GroupAction/Ring.lean Modified Mathlib/GroupTheory/GroupAction/SubMulAction.lean Modified Mathlib/GroupTheory/GroupAction/SubMulAction/OfFixingSubgroup.lean Modified Mathlib/GroupTheory/GroupAction/SubMulAction/OfStabilizer.lean Modified Mathlib/GroupTheory/HNNExtension.lean Modified Mathlib/GroupTheory/MonoidLocalization/Basic.lean Modified Mathlib/GroupTheory/MonoidLocalization/MonoidWithZero.lean Modified Mathlib/GroupTheory/Nilpotent.lean Modified Mathlib/GroupTheory/NoncommCoprod.lean Modified Mathlib/GroupTheory/OreLocalization/Basic.lean Modified Mathlib/GroupTheory/Perm/Centralizer.lean Modified Mathlib/GroupTheory/Perm/Closure.lean Modified Mathlib/GroupTheory/Perm/Cycle/Basic.lean +/- theorem Equiv.Perm.isCycleOn_empty Modified Mathlib/GroupTheory/Perm/Cycle/Concrete.lean Modified Mathlib/GroupTheory/Perm/Cycle/Factors.lean Modified Mathlib/GroupTheory/Perm/Cycle/PossibleTypes.lean Modified Mathlib/GroupTheory/Perm/Cycle/Type.lean Modified Mathlib/GroupTheory/Perm/Fin.lean Modified Mathlib/GroupTheory/Perm/Finite.lean Modified Mathlib/GroupTheory/Perm/List.lean Modified Mathlib/GroupTheory/Perm/Option.lean Modified Mathlib/GroupTheory/Perm/Sign.lean Modified Mathlib/GroupTheory/Perm/Support.lean Modified Mathlib/GroupTheory/PushoutI.lean Modified Mathlib/GroupTheory/QuotientGroup/Defs.lean Modified Mathlib/GroupTheory/SchurZassenhaus.lean Modified Mathlib/GroupTheory/SpecificGroups/Alternating.lean Modified Mathlib/GroupTheory/SpecificGroups/Cyclic.lean Modified Mathlib/GroupTheory/SpecificGroups/Quaternion.lean Modified Mathlib/GroupTheory/Sylow.lean Modified Mathlib/GroupTheory/Torsion.lean Modified Mathlib/LinearAlgebra/AffineSpace/AffineMap.lean Modified Mathlib/LinearAlgebra/AffineSpace/AffineSubspace/Basic.lean Modified Mathlib/LinearAlgebra/AffineSpace/Basis.lean Modified Mathlib/LinearAlgebra/AffineSpace/Combination.lean Modified Mathlib/LinearAlgebra/AffineSpace/FiniteDimensional.lean Modified Mathlib/LinearAlgebra/AffineSpace/Independent.lean Modified Mathlib/LinearAlgebra/AffineSpace/Matrix.lean Modified Mathlib/LinearAlgebra/AffineSpace/Midpoint.lean Modified Mathlib/LinearAlgebra/AffineSpace/Ordered.lean Modified Mathlib/LinearAlgebra/AffineSpace/Pointwise.lean Modified Mathlib/LinearAlgebra/AffineSpace/Restrict.lean Modified Mathlib/LinearAlgebra/Alternating/DomCoprod.lean Modified Mathlib/LinearAlgebra/Basis/Basic.lean Modified Mathlib/LinearAlgebra/Basis/Defs.lean Modified Mathlib/LinearAlgebra/Basis/Prod.lean Modified Mathlib/LinearAlgebra/Basis/Submodule.lean Modified Mathlib/LinearAlgebra/BilinearForm/DualLattice.lean Modified Mathlib/LinearAlgebra/BilinearForm/Properties.lean Modified Mathlib/LinearAlgebra/BilinearMap.lean Modified Mathlib/LinearAlgebra/Charpoly/ToMatrix.lean Modified Mathlib/LinearAlgebra/CliffordAlgebra/Equivs.lean Modified Mathlib/LinearAlgebra/CliffordAlgebra/EvenEquiv.lean Modified Mathlib/LinearAlgebra/CliffordAlgebra/Grading.lean Modified Mathlib/LinearAlgebra/CliffordAlgebra/SpinGroup.lean Modified Mathlib/LinearAlgebra/Coevaluation.lean Modified Mathlib/LinearAlgebra/Contraction.lean Modified Mathlib/LinearAlgebra/DFinsupp.lean Modified Mathlib/LinearAlgebra/Determinant.lean Modified Mathlib/LinearAlgebra/Dimension/Basic.lean Modified Mathlib/LinearAlgebra/Dimension/Constructions.lean +/- theorem rank_fin_fun Modified Mathlib/LinearAlgebra/Dimension/DivisionRing.lean Modified Mathlib/LinearAlgebra/Dimension/Free.lean Modified Mathlib/LinearAlgebra/Dimension/Localization.lean Modified Mathlib/LinearAlgebra/Dimension/StrongRankCondition.lean Modified Mathlib/LinearAlgebra/DirectSum/Finsupp.lean Modified Mathlib/LinearAlgebra/Dual/Defs.lean Modified Mathlib/LinearAlgebra/Dual/Lemmas.lean Modified Mathlib/LinearAlgebra/Eigenspace/Basic.lean Modified Mathlib/LinearAlgebra/FiniteSpan.lean Modified Mathlib/LinearAlgebra/Finsupp/LinearCombination.lean Modified Mathlib/LinearAlgebra/Finsupp/Supported.lean Modified Mathlib/LinearAlgebra/FreeModule/Finite/Quotient.lean Modified Mathlib/LinearAlgebra/FreeModule/Int.lean Modified Mathlib/LinearAlgebra/FreeModule/ModN.lean Modified Mathlib/LinearAlgebra/FreeModule/PID.lean Modified Mathlib/LinearAlgebra/InvariantBasisNumber.lean Modified Mathlib/LinearAlgebra/Lagrange.lean Modified Mathlib/LinearAlgebra/LinearIndependent/Defs.lean Modified Mathlib/LinearAlgebra/LinearIndependent/Lemmas.lean Modified Mathlib/LinearAlgebra/LinearPMap.lean Modified Mathlib/LinearAlgebra/Matrix/Adjugate.lean Modified Mathlib/LinearAlgebra/Matrix/Basis.lean Modified Mathlib/LinearAlgebra/Matrix/BilinearForm.lean Modified Mathlib/LinearAlgebra/Matrix/Charpoly/Basic.lean Modified Mathlib/LinearAlgebra/Matrix/Charpoly/Coeff.lean Modified Mathlib/LinearAlgebra/Matrix/Circulant.lean Modified Mathlib/LinearAlgebra/Matrix/Determinant/Basic.lean Modified Mathlib/LinearAlgebra/Matrix/Determinant/TotallyUnimodular.lean Modified Mathlib/LinearAlgebra/Matrix/Diagonal.lean Modified Mathlib/LinearAlgebra/Matrix/FixedDetMatrices.lean Modified Mathlib/LinearAlgebra/Matrix/GeneralLinearGroup/Defs.lean Modified Mathlib/LinearAlgebra/Matrix/Hermitian.lean Modified Mathlib/LinearAlgebra/Matrix/Ideal.lean Modified Mathlib/LinearAlgebra/Matrix/Integer.lean Modified Mathlib/LinearAlgebra/Matrix/NonsingularInverse.lean Modified Mathlib/LinearAlgebra/Matrix/Polynomial.lean Modified Mathlib/LinearAlgebra/Matrix/PosDef.lean Modified Mathlib/LinearAlgebra/Matrix/SchurComplement.lean Modified Mathlib/LinearAlgebra/Matrix/SemiringInverse.lean Modified Mathlib/LinearAlgebra/Matrix/SesquilinearForm.lean Modified Mathlib/LinearAlgebra/Matrix/SpecialLinearGroup.lean Modified Mathlib/LinearAlgebra/Matrix/ToLin.lean Modified Mathlib/LinearAlgebra/Matrix/ToLinearEquiv.lean Modified Mathlib/LinearAlgebra/Matrix/Transvection.lean Modified Mathlib/LinearAlgebra/Matrix/ZPow.lean Modified Mathlib/LinearAlgebra/Multilinear/Basic.lean Modified Mathlib/LinearAlgebra/Orientation.lean Modified Mathlib/LinearAlgebra/Pi.lean Modified Mathlib/LinearAlgebra/PiTensorProduct.lean Modified Mathlib/LinearAlgebra/Prod.lean Modified Mathlib/LinearAlgebra/Projection.lean Modified Mathlib/LinearAlgebra/QuadraticForm/Basic.lean Modified Mathlib/LinearAlgebra/QuadraticForm/Basis.lean Modified Mathlib/LinearAlgebra/QuadraticForm/Complex.lean Modified Mathlib/LinearAlgebra/QuadraticForm/IsometryEquiv.lean Modified Mathlib/LinearAlgebra/QuadraticForm/Prod.lean Modified Mathlib/LinearAlgebra/QuadraticForm/QuadraticModuleCat/Monoidal.lean Modified Mathlib/LinearAlgebra/Reflection.lean Modified Mathlib/LinearAlgebra/RootSystem/Basic.lean Modified Mathlib/LinearAlgebra/RootSystem/Defs.lean Modified Mathlib/LinearAlgebra/RootSystem/Finite/CanonicalBilinear.lean Modified Mathlib/LinearAlgebra/RootSystem/Finite/Lemmas.lean Modified Mathlib/LinearAlgebra/RootSystem/GeckConstruction.lean Modified Mathlib/LinearAlgebra/RootSystem/Hom.lean Modified Mathlib/LinearAlgebra/RootSystem/OfBilinear.lean Modified Mathlib/LinearAlgebra/RootSystem/WeylGroup.lean Modified Mathlib/LinearAlgebra/Span/Defs.lean Modified Mathlib/LinearAlgebra/StdBasis.lean Modified Mathlib/LinearAlgebra/SymplecticGroup.lean Modified Mathlib/LinearAlgebra/TensorAlgebra/ToTensorPower.lean Modified Mathlib/LinearAlgebra/TensorProduct/Basic.lean Modified Mathlib/LinearAlgebra/TensorProduct/Basis.lean Modified Mathlib/LinearAlgebra/TensorProduct/Pi.lean Modified Mathlib/LinearAlgebra/TensorProduct/RightExactness.lean Modified Mathlib/LinearAlgebra/TensorProduct/Tower.lean Modified Mathlib/LinearAlgebra/TensorProduct/Vanishing.lean Modified Mathlib/LinearAlgebra/Trace.lean Modified Mathlib/LinearAlgebra/Vandermonde.lean Modified Mathlib/Logic/Basic.lean +/- theorem xor_comm Modified Mathlib/Logic/Denumerable.lean Modified Mathlib/Logic/Embedding/Set.lean Modified Mathlib/Logic/Encodable/Basic.lean Modified Mathlib/Logic/Encodable/Lattice.lean Modified Mathlib/Logic/Equiv/Basic.lean Modified Mathlib/Logic/Equiv/Defs.lean Modified Mathlib/Logic/Equiv/Embedding.lean Modified Mathlib/Logic/Equiv/Fin/Basic.lean Modified Mathlib/Logic/Equiv/Fin/Rotate.lean Modified Mathlib/Logic/Equiv/Finset.lean Modified Mathlib/Logic/Equiv/Option.lean Modified Mathlib/Logic/Equiv/PartialEquiv.lean Modified Mathlib/Logic/Equiv/Set.lean Modified Mathlib/Logic/Function/Iterate.lean Modified Mathlib/Logic/IsEmpty.lean Modified Mathlib/MeasureTheory/Constructions/BorelSpace/Basic.lean Modified Mathlib/MeasureTheory/Constructions/BorelSpace/Metrizable.lean Modified Mathlib/MeasureTheory/Constructions/BorelSpace/Order.lean Modified Mathlib/MeasureTheory/Constructions/BorelSpace/Real.lean Modified Mathlib/MeasureTheory/Constructions/Cylinders.lean Modified Mathlib/MeasureTheory/Constructions/Pi.lean Modified Mathlib/MeasureTheory/Constructions/Polish/Basic.lean Modified Mathlib/MeasureTheory/Covering/Besicovitch.lean Modified Mathlib/MeasureTheory/Covering/BesicovitchVectorSpace.lean Modified Mathlib/MeasureTheory/Covering/Differentiation.lean Modified Mathlib/MeasureTheory/Covering/LiminfLimsup.lean Modified Mathlib/MeasureTheory/Covering/Vitali.lean Modified Mathlib/MeasureTheory/Function/AEMeasurableOrder.lean Modified Mathlib/MeasureTheory/Function/ConditionalExpectation/Basic.lean Modified Mathlib/MeasureTheory/Function/ConditionalExpectation/CondexpL1.lean Modified Mathlib/MeasureTheory/Function/ConditionalExpectation/Real.lean Modified Mathlib/MeasureTheory/Function/ConditionalExpectation/Unique.lean Modified Mathlib/MeasureTheory/Function/ContinuousMapDense.lean Modified Mathlib/MeasureTheory/Function/ConvergenceInMeasure.lean Modified Mathlib/MeasureTheory/Function/EssSup.lean Modified Mathlib/MeasureTheory/Function/Floor.lean Modified Mathlib/MeasureTheory/Function/Holder.lean Modified Mathlib/MeasureTheory/Function/Intersectivity.lean Modified Mathlib/MeasureTheory/Function/Jacobian.lean Modified Mathlib/MeasureTheory/Function/L1Space/AEEqFun.lean Modified Mathlib/MeasureTheory/Function/L1Space/HasFiniteIntegral.lean Modified Mathlib/MeasureTheory/Function/L1Space/Integrable.lean Modified Mathlib/MeasureTheory/Function/L2Space.lean Modified Mathlib/MeasureTheory/Function/LpSeminorm/Basic.lean Modified Mathlib/MeasureTheory/Function/LpSeminorm/CompareExp.lean Modified Mathlib/MeasureTheory/Function/LpSeminorm/TriangleInequality.lean Modified Mathlib/MeasureTheory/Function/LpSpace/Basic.lean Modified Mathlib/MeasureTheory/Function/LpSpace/Indicator.lean Modified Mathlib/MeasureTheory/Function/SimpleFunc.lean Modified Mathlib/MeasureTheory/Function/SimpleFuncDense.lean Modified Mathlib/MeasureTheory/Function/SimpleFuncDenseLp.lean Modified Mathlib/MeasureTheory/Function/StronglyMeasurable/Basic.lean Modified Mathlib/MeasureTheory/Function/UnifTight.lean Modified Mathlib/MeasureTheory/Function/UniformIntegrable.lean Modified Mathlib/MeasureTheory/Group/FundamentalDomain.lean Modified Mathlib/MeasureTheory/Group/GeometryOfNumbers.lean Modified Mathlib/MeasureTheory/Integral/Average.lean Modified Mathlib/MeasureTheory/Integral/Bochner/Basic.lean Modified Mathlib/MeasureTheory/Integral/Bochner/L1.lean Modified Mathlib/MeasureTheory/Integral/Bochner/Set.lean Modified Mathlib/MeasureTheory/Integral/Bochner/VitaliCaratheodory.lean Modified Mathlib/MeasureTheory/Integral/CircleIntegral.lean Modified Mathlib/MeasureTheory/Integral/DominatedConvergence.lean Modified Mathlib/MeasureTheory/Integral/FinMeasAdditive.lean Modified Mathlib/MeasureTheory/Integral/IntervalIntegral/Basic.lean Modified Mathlib/MeasureTheory/Integral/IntervalIntegral/FundThmCalculus.lean Modified Mathlib/MeasureTheory/Integral/Layercake.lean Modified Mathlib/MeasureTheory/Integral/Lebesgue/Add.lean Modified Mathlib/MeasureTheory/Integral/Lebesgue/Markov.lean Modified Mathlib/MeasureTheory/Integral/MeanInequalities.lean Modified Mathlib/MeasureTheory/Integral/PeakFunction.lean Modified Mathlib/MeasureTheory/Integral/Pi.lean Modified Mathlib/MeasureTheory/Integral/Prod.lean Modified Mathlib/MeasureTheory/Integral/RieszMarkovKakutani/Basic.lean Modified Mathlib/MeasureTheory/Integral/RieszMarkovKakutani/Real.lean Modified Mathlib/MeasureTheory/Integral/SetToL1.lean Modified Mathlib/MeasureTheory/Integral/TorusIntegral.lean Modified Mathlib/MeasureTheory/MeasurableSpace/Constructions.lean Modified Mathlib/MeasureTheory/MeasurableSpace/CountablyGenerated.lean Modified Mathlib/MeasureTheory/Measure/AEMeasurable.lean Modified Mathlib/MeasureTheory/Measure/CharacteristicFunction.lean Modified Mathlib/MeasureTheory/Measure/Content.lean Modified Mathlib/MeasureTheory/Measure/Count.lean Modified Mathlib/MeasureTheory/Measure/Decomposition/Exhaustion.lean Modified Mathlib/MeasureTheory/Measure/Decomposition/Lebesgue.lean Modified Mathlib/MeasureTheory/Measure/Dirac.lean Modified Mathlib/MeasureTheory/Measure/Doubling.lean Modified Mathlib/MeasureTheory/Measure/FiniteMeasure.lean Modified Mathlib/MeasureTheory/Measure/Haar/Basic.lean Modified Mathlib/MeasureTheory/Measure/Haar/OfBasis.lean Modified Mathlib/MeasureTheory/Measure/Haar/Unique.lean Modified Mathlib/MeasureTheory/Measure/Hausdorff.lean Modified Mathlib/MeasureTheory/Measure/IntegralCharFun.lean Modified Mathlib/MeasureTheory/Measure/Lebesgue/Basic.lean +/- theorem Real.volume_singleton Modified Mathlib/MeasureTheory/Measure/Lebesgue/EqHaar.lean Modified Mathlib/MeasureTheory/Measure/Lebesgue/Integral.lean Modified Mathlib/MeasureTheory/Measure/Lebesgue/VolumeOfBalls.lean Modified Mathlib/MeasureTheory/Measure/LevyProkhorovMetric.lean Modified Mathlib/MeasureTheory/Measure/Map.lean Modified Mathlib/MeasureTheory/Measure/MeasureSpace.lean Modified Mathlib/MeasureTheory/Measure/OpenPos.lean Modified Mathlib/MeasureTheory/Measure/Portmanteau.lean Modified Mathlib/MeasureTheory/Measure/ProbabilityMeasure.lean Modified Mathlib/MeasureTheory/Measure/Prod.lean Modified Mathlib/MeasureTheory/Measure/Real.lean Modified Mathlib/MeasureTheory/Measure/Regular.lean Modified Mathlib/MeasureTheory/Measure/RegularityCompacts.lean Modified Mathlib/MeasureTheory/Measure/Restrict.lean Modified Mathlib/MeasureTheory/Measure/Stieltjes.lean Modified Mathlib/MeasureTheory/Measure/TightNormed.lean Modified Mathlib/MeasureTheory/Measure/Tilted.lean Modified Mathlib/MeasureTheory/Measure/WithDensity.lean Modified Mathlib/MeasureTheory/OuterMeasure/AE.lean Modified Mathlib/MeasureTheory/OuterMeasure/Caratheodory.lean +/- theorem MeasureTheory.OuterMeasure.isCaratheodory_empty Modified Mathlib/MeasureTheory/OuterMeasure/Operations.lean Modified Mathlib/MeasureTheory/PiSystem.lean Modified Mathlib/MeasureTheory/SetSemiring.lean Modified Mathlib/MeasureTheory/VectorMeasure/Basic.lean Modified Mathlib/MeasureTheory/VectorMeasure/Decomposition/Jordan.lean Modified Mathlib/ModelTheory/Algebra/Field/CharP.lean Modified Mathlib/ModelTheory/Algebra/Field/IsAlgClosed.lean Modified Mathlib/ModelTheory/Algebra/Ring/Basic.lean Modified Mathlib/ModelTheory/Algebra/Ring/FreeCommRing.lean Modified Mathlib/ModelTheory/Definability.lean Modified Mathlib/ModelTheory/ElementaryMaps.lean Modified Mathlib/ModelTheory/Encoding.lean Modified Mathlib/ModelTheory/Equivalence.lean Modified Mathlib/ModelTheory/FinitelyGenerated.lean Modified Mathlib/ModelTheory/Fraisse.lean Modified Mathlib/ModelTheory/Order.lean Modified Mathlib/ModelTheory/PartialEquiv.lean Modified Mathlib/ModelTheory/Satisfiability.lean Modified Mathlib/ModelTheory/Semantics.lean Modified Mathlib/ModelTheory/Syntax.lean Modified Mathlib/ModelTheory/Ultraproducts.lean Modified Mathlib/NumberTheory/ADEInequality.lean Modified Mathlib/NumberTheory/ArithmeticFunction.lean Modified Mathlib/NumberTheory/Bernoulli.lean Modified Mathlib/NumberTheory/BernoulliPolynomials.lean Modified Mathlib/NumberTheory/Bertrand.lean Modified Mathlib/NumberTheory/ClassNumber/AdmissibleCardPowDegree.lean Modified Mathlib/NumberTheory/ClassNumber/Finite.lean Modified Mathlib/NumberTheory/Cyclotomic/Basic.lean Modified Mathlib/NumberTheory/Cyclotomic/CyclotomicCharacter.lean Modified Mathlib/NumberTheory/Cyclotomic/Discriminant.lean Modified Mathlib/NumberTheory/Cyclotomic/PrimitiveRoots.lean Modified Mathlib/NumberTheory/Cyclotomic/Rat.lean Modified Mathlib/NumberTheory/DiophantineApproximation/Basic.lean Modified Mathlib/NumberTheory/Divisors.lean Modified Mathlib/NumberTheory/FLT/Basic.lean Modified Mathlib/NumberTheory/FLT/Three.lean Modified Mathlib/NumberTheory/FactorisationProperties.lean Modified Mathlib/NumberTheory/GaussSum.lean Modified Mathlib/NumberTheory/Harmonic/Bounds.lean Modified Mathlib/NumberTheory/Harmonic/GammaDeriv.lean Modified Mathlib/NumberTheory/JacobiSum/Basic.lean Modified Mathlib/NumberTheory/LSeries/Basic.lean Modified Mathlib/NumberTheory/LSeries/Convolution.lean Modified Mathlib/NumberTheory/LSeries/Deriv.lean Modified Mathlib/NumberTheory/LSeries/DirichletContinuation.lean Modified Mathlib/NumberTheory/LSeries/HurwitzZetaEven.lean Modified Mathlib/NumberTheory/LSeries/HurwitzZetaOdd.lean Modified Mathlib/NumberTheory/LSeries/MellinEqDirichlet.lean Modified Mathlib/NumberTheory/LSeries/PrimesInAP.lean Modified Mathlib/NumberTheory/LSeries/ZMod.lean Modified Mathlib/NumberTheory/LegendreSymbol/AddCharacter.lean Modified Mathlib/NumberTheory/LegendreSymbol/Basic.lean Modified Mathlib/NumberTheory/LegendreSymbol/GaussEisensteinLemmas.lean Modified Mathlib/NumberTheory/LegendreSymbol/QuadraticChar/Basic.lean Modified Mathlib/NumberTheory/MaricaSchoenheim.lean Modified Mathlib/NumberTheory/Modular.lean Modified Mathlib/NumberTheory/ModularForms/CongruenceSubgroups.lean Modified Mathlib/NumberTheory/ModularForms/EisensteinSeries/MDifferentiable.lean Modified Mathlib/NumberTheory/ModularForms/EisensteinSeries/Summable.lean Modified Mathlib/NumberTheory/ModularForms/Identities.lean Modified Mathlib/NumberTheory/ModularForms/JacobiTheta/TwoVariable.lean Modified Mathlib/NumberTheory/ModularForms/QExpansion.lean Modified Mathlib/NumberTheory/ModularForms/SlashActions.lean Modified Mathlib/NumberTheory/MulChar/Basic.lean Modified Mathlib/NumberTheory/Multiplicity.lean Modified Mathlib/NumberTheory/NumberField/AdeleRing.lean Modified Mathlib/NumberTheory/NumberField/CanonicalEmbedding/Basic.lean Modified Mathlib/NumberTheory/NumberField/EquivReindex.lean Modified Mathlib/NumberTheory/NumberField/House.lean Modified Mathlib/NumberTheory/NumberField/InfinitePlace/Embeddings.lean Modified Mathlib/NumberTheory/NumberField/InfinitePlace/Ramification.lean Modified Mathlib/NumberTheory/NumberField/ProductFormula.lean Modified Mathlib/NumberTheory/Ostrowski.lean Modified Mathlib/NumberTheory/Padics/Hensel.lean Modified Mathlib/NumberTheory/Padics/MahlerBasis.lean Modified Mathlib/NumberTheory/Padics/PadicIntegers.lean Modified Mathlib/NumberTheory/Padics/PadicNorm.lean Modified Mathlib/NumberTheory/Padics/PadicNumbers.lean Modified Mathlib/NumberTheory/Padics/PadicVal/Basic.lean Modified Mathlib/NumberTheory/Padics/RingHoms.lean Modified Mathlib/NumberTheory/Pell.lean Modified Mathlib/NumberTheory/PellMatiyasevic.lean Modified Mathlib/NumberTheory/RamificationInertia/Basic.lean Modified Mathlib/NumberTheory/SiegelsLemma.lean Modified Mathlib/NumberTheory/SmoothNumbers.lean Modified Mathlib/NumberTheory/SumFourSquares.lean Modified Mathlib/NumberTheory/Transcendental/Liouville/LiouvilleWith.lean Modified Mathlib/NumberTheory/Transcendental/Liouville/Measure.lean Modified Mathlib/NumberTheory/Transcendental/Liouville/Residual.lean Modified Mathlib/NumberTheory/VonMangoldt.lean Modified Mathlib/NumberTheory/WellApproximable.lean Modified Mathlib/NumberTheory/ZetaValues.lean Modified Mathlib/NumberTheory/Zsqrtd/Basic.lean Modified Mathlib/NumberTheory/Zsqrtd/GaussianInt.lean Modified Mathlib/NumberTheory/Zsqrtd/QuadraticReciprocity.lean Modified Mathlib/Order/Atoms.lean Modified Mathlib/Order/Booleanisation.lean Modified Mathlib/Order/CompactlyGenerated/Basic.lean Modified Mathlib/Order/Comparable.lean Modified Mathlib/Order/CompleteLattice/Basic.lean Modified Mathlib/Order/CompleteLatticeIntervals.lean Modified Mathlib/Order/ConditionallyCompleteLattice/Finset.lean Modified Mathlib/Order/ConditionallyCompleteLattice/Indexed.lean Modified Mathlib/Order/CountableDenseLinearOrder.lean Modified Mathlib/Order/Defs/LinearOrder.lean Modified Mathlib/Order/Estimator.lean Modified Mathlib/Order/Filter/AtTopBot/Defs.lean Modified Mathlib/Order/Filter/AtTopBot/Finset.lean Modified Mathlib/Order/Filter/AtTopBot/ModEq.lean Modified Mathlib/Order/Filter/Bases/Basic.lean Modified Mathlib/Order/Filter/Bases/Finite.lean Modified Mathlib/Order/Filter/Basic.lean Modified Mathlib/Order/Filter/CardinalInter.lean Modified Mathlib/Order/Filter/CountablyGenerated.lean Modified Mathlib/Order/Filter/ENNReal.lean Modified Mathlib/Order/Filter/Finite.lean Modified Mathlib/Order/Filter/Germ/Basic.lean Modified Mathlib/Order/Filter/Interval.lean Modified Mathlib/Order/Filter/IsBounded.lean +/- theorem Filter.isBounded_top Modified Mathlib/Order/Filter/Lift.lean Modified Mathlib/Order/Filter/Map.lean Modified Mathlib/Order/Filter/Pointwise.lean Modified Mathlib/Order/Filter/Prod.lean Modified Mathlib/Order/Hom/Basic.lean Modified Mathlib/Order/Hom/CompleteLattice.lean Modified Mathlib/Order/Interval/Finset/Basic.lean Modified Mathlib/Order/Interval/Finset/Nat.lean Modified Mathlib/Order/Interval/Set/Basic.lean +/- theorem Set.left_mem_Ioc +/- theorem Set.left_mem_Ioo +/- theorem Set.right_mem_Ico +/- theorem Set.right_mem_Ioo Modified Mathlib/Order/Interval/Set/Fin.lean Modified Mathlib/Order/Interval/Set/Limit.lean Modified Mathlib/Order/Interval/Set/LinearOrder.lean Modified Mathlib/Order/Interval/Set/ProjIcc.lean Modified Mathlib/Order/Interval/Set/SuccPred.lean Modified Mathlib/Order/Interval/Set/UnorderedInterval.lean Modified Mathlib/Order/Irreducible.lean Modified Mathlib/Order/JordanHolder.lean Modified Mathlib/Order/KrullDimension.lean Modified Mathlib/Order/Lattice.lean Modified Mathlib/Order/LiminfLimsup.lean Modified Mathlib/Order/Max.lean Modified Mathlib/Order/Minimal.lean Modified Mathlib/Order/ModularLattice.lean Modified Mathlib/Order/Monotone/MonovaryOrder.lean Modified Mathlib/Order/OmegaCompletePartialOrder.lean Modified Mathlib/Order/Part.lean Modified Mathlib/Order/Partition/Finpartition.lean Modified Mathlib/Order/Preorder/Chain.lean Modified Mathlib/Order/RelClasses.lean Modified Mathlib/Order/RelSeries.lean Modified Mathlib/Order/SuccPred/Basic.lean Modified Mathlib/Order/SuccPred/LinearLocallyFinite.lean Modified Mathlib/Order/SupClosed.lean Modified Mathlib/Order/UpperLower/Relative.lean Modified Mathlib/Order/WellFoundedSet.lean Modified Mathlib/Probability/CondVar.lean Modified Mathlib/Probability/Distributions/Gaussian/Basic.lean Modified Mathlib/Probability/Distributions/Gaussian/Real.lean Modified Mathlib/Probability/Distributions/Uniform.lean Modified Mathlib/Probability/IdentDistrib.lean Modified Mathlib/Probability/Independence/Basic.lean Modified Mathlib/Probability/Independence/Kernel.lean Modified Mathlib/Probability/Integration.lean Modified Mathlib/Probability/Kernel/Basic.lean Modified Mathlib/Probability/Kernel/Composition/CompProd.lean Modified Mathlib/Probability/Kernel/Composition/MapComap.lean Modified Mathlib/Probability/Kernel/Disintegration/Basic.lean Modified Mathlib/Probability/Kernel/Disintegration/CDFToKernel.lean Modified Mathlib/Probability/Kernel/Disintegration/CondCDF.lean Modified Mathlib/Probability/Kernel/Disintegration/StandardBorel.lean Modified Mathlib/Probability/Kernel/Disintegration/Unique.lean Modified Mathlib/Probability/Kernel/IonescuTulcea/PartialTraj.lean Modified Mathlib/Probability/Kernel/IonescuTulcea/Traj.lean Modified Mathlib/Probability/Kernel/Proper.lean Modified Mathlib/Probability/Kernel/RadonNikodym.lean Modified Mathlib/Probability/Martingale/Basic.lean Modified Mathlib/Probability/Martingale/BorelCantelli.lean Modified Mathlib/Probability/Martingale/Centering.lean Modified Mathlib/Probability/Martingale/Convergence.lean Modified Mathlib/Probability/Martingale/OptionalStopping.lean Modified Mathlib/Probability/Martingale/Upcrossing.lean Modified Mathlib/Probability/Moments/Basic.lean Modified Mathlib/Probability/Moments/CovarianceBilin.lean Modified Mathlib/Probability/Moments/IntegrableExpMul.lean Modified Mathlib/Probability/Moments/Tilted.lean Modified Mathlib/Probability/Moments/Variance.lean Modified Mathlib/Probability/ProbabilityMassFunction/Basic.lean Modified Mathlib/Probability/ProbabilityMassFunction/Monad.lean Modified Mathlib/Probability/Process/Filtration.lean Modified Mathlib/Probability/Process/HittingTime.lean Modified Mathlib/Probability/Process/Stopping.lean Modified Mathlib/Probability/ProductMeasure.lean Modified Mathlib/Probability/StrongLaw.lean Modified Mathlib/RepresentationTheory/Basic.lean Modified Mathlib/RepresentationTheory/Homological/GroupCohomology/Functoriality.lean Modified Mathlib/RepresentationTheory/Homological/GroupCohomology/Hilbert90.lean Modified Mathlib/RepresentationTheory/Homological/GroupCohomology/LowDegree.lean Modified Mathlib/RepresentationTheory/Induced.lean Modified Mathlib/RepresentationTheory/Invariants.lean Modified Mathlib/RepresentationTheory/Rep.lean Modified Mathlib/RingTheory/AdicCompletion/Algebra.lean Modified Mathlib/RingTheory/AdicCompletion/Basic.lean Modified Mathlib/RingTheory/AdicCompletion/Exactness.lean Modified Mathlib/RingTheory/Adjoin/Polynomial.lean Modified Mathlib/RingTheory/Adjoin/PowerBasis.lean Modified Mathlib/RingTheory/AdjoinRoot.lean Modified Mathlib/RingTheory/Algebraic/Basic.lean Modified Mathlib/RingTheory/Algebraic/Pi.lean Modified Mathlib/RingTheory/AlgebraicIndependent/TranscendenceBasis.lean Modified Mathlib/RingTheory/Binomial.lean Modified Mathlib/RingTheory/ChainOfDivisors.lean Modified Mathlib/RingTheory/ClassGroup.lean Modified Mathlib/RingTheory/Coalgebra/Hom.lean Modified Mathlib/RingTheory/Complex.lean Modified Mathlib/RingTheory/Congruence/Basic.lean Modified Mathlib/RingTheory/Coprime/Ideal.lean Modified Mathlib/RingTheory/Coprime/Lemmas.lean Modified Mathlib/RingTheory/DedekindDomain/AdicValuation.lean Modified Mathlib/RingTheory/DedekindDomain/Different.lean Modified Mathlib/RingTheory/DedekindDomain/Factorization.lean Modified Mathlib/RingTheory/DedekindDomain/Ideal.lean Modified Mathlib/RingTheory/DedekindDomain/IntegralClosure.lean Modified Mathlib/RingTheory/DedekindDomain/SInteger.lean Modified Mathlib/RingTheory/Derivation/Basic.lean Modified Mathlib/RingTheory/Derivation/Lie.lean Modified Mathlib/RingTheory/Derivation/MapCoeffs.lean Modified Mathlib/RingTheory/Derivation/ToSquareZero.lean Modified Mathlib/RingTheory/DiscreteValuationRing/Basic.lean Modified Mathlib/RingTheory/Discriminant.lean Modified Mathlib/RingTheory/DividedPowers/Basic.lean Modified Mathlib/RingTheory/DividedPowers/DPMorphism.lean Modified Mathlib/RingTheory/DualNumber.lean Modified Mathlib/RingTheory/EssentialFiniteness.lean Modified Mathlib/RingTheory/Etale/Kaehler.lean Modified Mathlib/RingTheory/Extension/Basic.lean Modified Mathlib/RingTheory/Extension/Cotangent/Basic.lean Modified Mathlib/RingTheory/Extension/Cotangent/LocalizationAway.lean Modified Mathlib/RingTheory/Extension/Generators.lean Modified Mathlib/RingTheory/Extension/Presentation/Basic.lean Modified Mathlib/RingTheory/FractionalIdeal/Extended.lean Modified Mathlib/RingTheory/FractionalIdeal/Operations.lean Modified Mathlib/RingTheory/GradedAlgebra/Basic.lean Modified Mathlib/RingTheory/GradedAlgebra/Homogeneous/Ideal.lean Modified Mathlib/RingTheory/GradedAlgebra/HomogeneousLocalization.lean Modified Mathlib/RingTheory/GradedAlgebra/Radical.lean Modified Mathlib/RingTheory/HahnSeries/Addition.lean Modified Mathlib/RingTheory/HahnSeries/Basic.lean Modified Mathlib/RingTheory/HahnSeries/HEval.lean Modified Mathlib/RingTheory/HahnSeries/Multiplication.lean Modified Mathlib/RingTheory/HahnSeries/PowerSeries.lean Modified Mathlib/RingTheory/HahnSeries/Summable.lean Modified Mathlib/RingTheory/Henselian.lean Modified Mathlib/RingTheory/Ideal/AssociatedPrime/Finiteness.lean Modified Mathlib/RingTheory/Ideal/Basis.lean Modified Mathlib/RingTheory/Ideal/Colon.lean Modified Mathlib/RingTheory/Ideal/GoingUp.lean Modified Mathlib/RingTheory/Ideal/Height.lean Modified Mathlib/RingTheory/Ideal/IsPrimary.lean Modified Mathlib/RingTheory/Ideal/IsPrincipalPowQuotient.lean Modified Mathlib/RingTheory/Ideal/Maps.lean Modified Mathlib/RingTheory/Ideal/Maximal.lean Modified Mathlib/RingTheory/Ideal/MinimalPrime/Basic.lean Modified Mathlib/RingTheory/Ideal/Norm/AbsNorm.lean Modified Mathlib/RingTheory/Ideal/Norm/RelNorm.lean Modified Mathlib/RingTheory/Ideal/Operations.lean Modified Mathlib/RingTheory/Ideal/Prod.lean Modified Mathlib/RingTheory/Idempotents.lean Modified Mathlib/RingTheory/IntegralClosure/IntegralRestrict.lean Modified Mathlib/RingTheory/IntegralClosure/IntegrallyClosed.lean Modified Mathlib/RingTheory/IntegralDomain.lean Modified Mathlib/RingTheory/IsAdjoinRoot.lean Modified Mathlib/RingTheory/IsTensorProduct.lean Modified Mathlib/RingTheory/Jacobson/Ring.lean Modified Mathlib/RingTheory/Kaehler/Basic.lean Modified Mathlib/RingTheory/Kaehler/JacobiZariski.lean Modified Mathlib/RingTheory/Kaehler/Polynomial.lean Modified Mathlib/RingTheory/LaurentSeries.lean Modified Mathlib/RingTheory/LittleWedderburn.lean Modified Mathlib/RingTheory/LocalProperties/Projective.lean Modified Mathlib/RingTheory/LocalRing/ResidueField/Ideal.lean Modified Mathlib/RingTheory/Localization/AtPrime.lean Modified Mathlib/RingTheory/Localization/Away/Basic.lean Modified Mathlib/RingTheory/Localization/Away/Lemmas.lean Modified Mathlib/RingTheory/Localization/BaseChange.lean Modified Mathlib/RingTheory/Localization/Ideal.lean Modified Mathlib/RingTheory/Localization/Integral.lean Modified Mathlib/RingTheory/Localization/LocalizationLocalization.lean Modified Mathlib/RingTheory/Localization/NumDen.lean Modified Mathlib/RingTheory/MatrixAlgebra.lean Modified Mathlib/RingTheory/MatrixPolynomialAlgebra.lean Modified Mathlib/RingTheory/Multiplicity.lean Modified Mathlib/RingTheory/MvPolynomial/FreeCommRing.lean Modified Mathlib/RingTheory/MvPolynomial/Localization.lean Modified Mathlib/RingTheory/MvPolynomial/MonomialOrder.lean Modified Mathlib/RingTheory/MvPolynomial/MonomialOrder/DegLex.lean Modified Mathlib/RingTheory/MvPolynomial/Symmetric/Defs.lean Modified Mathlib/RingTheory/MvPolynomial/Symmetric/FundamentalTheorem.lean Modified Mathlib/RingTheory/MvPolynomial/Symmetric/NewtonIdentities.lean Modified Mathlib/RingTheory/MvPolynomial/WeightedHomogeneous.lean Modified Mathlib/RingTheory/MvPowerSeries/Basic.lean Modified Mathlib/RingTheory/MvPowerSeries/Evaluation.lean Modified Mathlib/RingTheory/MvPowerSeries/Inverse.lean Modified Mathlib/RingTheory/MvPowerSeries/LexOrder.lean Modified Mathlib/RingTheory/MvPowerSeries/Order.lean Modified Mathlib/RingTheory/MvPowerSeries/PiTopology.lean Modified Mathlib/RingTheory/MvPowerSeries/Substitution.lean Modified Mathlib/RingTheory/NonUnitalSubring/Basic.lean Modified Mathlib/RingTheory/NonUnitalSubsemiring/Basic.lean Modified Mathlib/RingTheory/Norm/Transitivity.lean Modified Mathlib/RingTheory/OrderOfVanishing.lean Modified Mathlib/RingTheory/OreLocalization/Basic.lean Modified Mathlib/RingTheory/OreLocalization/Ring.lean Modified Mathlib/RingTheory/Polynomial/Basic.lean Modified Mathlib/RingTheory/Polynomial/Bernstein.lean Modified Mathlib/RingTheory/Polynomial/Chebyshev.lean Modified Mathlib/RingTheory/Polynomial/Content.lean Modified Mathlib/RingTheory/Polynomial/Cyclotomic/Basic.lean Modified Mathlib/RingTheory/Polynomial/Cyclotomic/Eval.lean Modified Mathlib/RingTheory/Polynomial/Dickson.lean Modified Mathlib/RingTheory/Polynomial/Eisenstein/Criterion.lean Modified Mathlib/RingTheory/Polynomial/HilbertPoly.lean Modified Mathlib/RingTheory/Polynomial/IntegralNormalization.lean Modified Mathlib/RingTheory/Polynomial/Nilpotent.lean Modified Mathlib/RingTheory/Polynomial/Pochhammer.lean Modified Mathlib/RingTheory/Polynomial/Quotient.lean Modified Mathlib/RingTheory/Polynomial/ScaleRoots.lean Modified Mathlib/RingTheory/Polynomial/Selmer.lean Modified Mathlib/RingTheory/Polynomial/UniqueFactorization.lean Modified Mathlib/RingTheory/Polynomial/Vieta.lean Modified Mathlib/RingTheory/PolynomialLaw/Basic.lean Modified Mathlib/RingTheory/PowerBasis.lean Modified Mathlib/RingTheory/PowerSeries/Basic.lean Modified Mathlib/RingTheory/PowerSeries/Inverse.lean Modified Mathlib/RingTheory/PowerSeries/Order.lean Modified Mathlib/RingTheory/PowerSeries/Trunc.lean Modified Mathlib/RingTheory/PowerSeries/WellKnown.lean Modified Mathlib/RingTheory/Prime.lean Modified Mathlib/RingTheory/Regular/Category.lean Modified Mathlib/RingTheory/RingHom/Finite.lean Modified Mathlib/RingTheory/RingHom/FinitePresentation.lean Modified Mathlib/RingTheory/RingHom/Locally.lean Modified Mathlib/RingTheory/RootsOfUnity/Complex.lean Modified Mathlib/RingTheory/RootsOfUnity/EnoughRootsOfUnity.lean Modified Mathlib/RingTheory/RootsOfUnity/Minpoly.lean Modified Mathlib/RingTheory/RootsOfUnity/PrimitiveRoots.lean Modified Mathlib/RingTheory/Smooth/Kaehler.lean Modified Mathlib/RingTheory/Smooth/StandardSmooth.lean Modified Mathlib/RingTheory/Smooth/StandardSmoothCotangent.lean Modified Mathlib/RingTheory/Spectrum/Maximal/Localization.lean Modified Mathlib/RingTheory/Spectrum/Prime/ChevalleyComplexity.lean Modified Mathlib/RingTheory/Spectrum/Prime/ConstructibleSet.lean Modified Mathlib/RingTheory/Spectrum/Prime/FreeLocus.lean Modified Mathlib/RingTheory/Spectrum/Prime/LTSeries.lean Modified Mathlib/RingTheory/Spectrum/Prime/Polynomial.lean Modified Mathlib/RingTheory/TensorProduct/Basic.lean Modified Mathlib/RingTheory/TensorProduct/Finite.lean Modified Mathlib/RingTheory/TensorProduct/MvPolynomial.lean Modified Mathlib/RingTheory/Trace/Basic.lean Modified Mathlib/RingTheory/Trace/Quotient.lean Modified Mathlib/RingTheory/TwoSidedIdeal/Kernel.lean Modified Mathlib/RingTheory/UniqueFactorizationDomain/FactorSet.lean Modified Mathlib/RingTheory/UniqueFactorizationDomain/Finite.lean Modified Mathlib/RingTheory/Unramified/Pi.lean Modified Mathlib/RingTheory/Valuation/AlgebraInstances.lean Modified Mathlib/RingTheory/Valuation/ValuationRing.lean Modified Mathlib/RingTheory/WittVector/Basic.lean Modified Mathlib/RingTheory/WittVector/Complete.lean Modified Mathlib/RingTheory/WittVector/Defs.lean Modified Mathlib/RingTheory/WittVector/Frobenius.lean Modified Mathlib/RingTheory/WittVector/FrobeniusFractionField.lean Modified Mathlib/RingTheory/WittVector/Identities.lean Modified Mathlib/RingTheory/WittVector/IsPoly.lean Modified Mathlib/RingTheory/WittVector/Isocrystal.lean Modified Mathlib/RingTheory/WittVector/MulCoeff.lean Modified Mathlib/RingTheory/WittVector/MulP.lean Modified Mathlib/RingTheory/WittVector/StructurePolynomial.lean Modified Mathlib/RingTheory/WittVector/Truncated.lean Modified Mathlib/RingTheory/WittVector/Verschiebung.lean Modified Mathlib/RingTheory/WittVector/WittPolynomial.lean Modified Mathlib/SetTheory/Cardinal/Arithmetic.lean Modified Mathlib/SetTheory/Cardinal/Basic.lean Modified Mathlib/SetTheory/Cardinal/Divisibility.lean Modified Mathlib/SetTheory/Cardinal/Finite.lean Modified Mathlib/SetTheory/Cardinal/Order.lean +/- theorem Cardinal.mk_set Modified Mathlib/SetTheory/Game/Domineering.lean Modified Mathlib/SetTheory/Lists.lean Modified Mathlib/SetTheory/Ordinal/Arithmetic.lean Modified Mathlib/SetTheory/Ordinal/Exponential.lean Modified Mathlib/SetTheory/Ordinal/Notation.lean Modified Mathlib/SetTheory/Ordinal/Veblen.lean Modified Mathlib/SetTheory/Surreal/Dyadic.lean Modified Mathlib/Tactic/Abel.lean Modified Mathlib/Tactic/CategoryTheory/Monoidal/Datatypes.lean Modified Mathlib/Tactic/Module.lean Modified Mathlib/Tactic/NormNum/Inv.lean Modified Mathlib/Tactic/NormNum/Pow.lean Modified Mathlib/Tactic/Push.lean Modified Mathlib/Testing/Plausible/Functions.lean Modified Mathlib/Topology/Algebra/Algebra.lean Modified Mathlib/Topology/Algebra/Group/Basic.lean Modified Mathlib/Topology/Algebra/Group/Pointwise.lean Modified Mathlib/Topology/Algebra/InfiniteSum/Basic.lean Modified Mathlib/Topology/Algebra/InfiniteSum/Group.lean Modified Mathlib/Topology/Algebra/InfiniteSum/NatInt.lean Modified Mathlib/Topology/Algebra/InfiniteSum/Order.lean Modified Mathlib/Topology/Algebra/IsUniformGroup/Basic.lean Modified Mathlib/Topology/Algebra/Module/CharacterSpace.lean Modified Mathlib/Topology/Algebra/Module/Compact.lean Modified Mathlib/Topology/Algebra/Module/Equiv.lean Modified Mathlib/Topology/Algebra/Module/LinearMap.lean Modified Mathlib/Topology/Algebra/Module/LinearMapPiProd.lean Modified Mathlib/Topology/Algebra/Module/LocallyConvex.lean Modified Mathlib/Topology/Algebra/Module/Multilinear/Basic.lean Modified Mathlib/Topology/Algebra/Module/Star.lean Modified Mathlib/Topology/Algebra/Nonarchimedean/AdicTopology.lean Modified Mathlib/Topology/Algebra/Order/Field.lean Modified Mathlib/Topology/Algebra/Polynomial.lean Modified Mathlib/Topology/Algebra/UniformField.lean Modified Mathlib/Topology/Algebra/Valued/LocallyCompact.lean Modified Mathlib/Topology/Algebra/Valued/NormedValued.lean Modified Mathlib/Topology/Algebra/Valued/ValuationTopology.lean Modified Mathlib/Topology/Algebra/Valued/ValuedField.lean Modified Mathlib/Topology/Baire/CompleteMetrizable.lean Modified Mathlib/Topology/Category/CompHaus/Basic.lean Modified Mathlib/Topology/Category/CompHausLike/SigmaComparison.lean Modified Mathlib/Topology/Category/Compactum.lean Modified Mathlib/Topology/Category/LightProfinite/AsLimit.lean Modified Mathlib/Topology/Category/Profinite/Extend.lean Modified Mathlib/Topology/Category/Profinite/Nobeling/Basic.lean Modified Mathlib/Topology/Category/Profinite/Nobeling/Span.lean Modified Mathlib/Topology/Category/Profinite/Nobeling/Successor.lean Modified Mathlib/Topology/Category/Profinite/Projective.lean Modified Mathlib/Topology/Category/TopCat/Basic.lean Modified Mathlib/Topology/Category/TopCat/Limits/Basic.lean Modified Mathlib/Topology/Category/TopCat/Limits/Konig.lean Modified Mathlib/Topology/Closure.lean Modified Mathlib/Topology/ClusterPt.lean Modified Mathlib/Topology/CompactOpen.lean Modified Mathlib/Topology/Compactification/OnePoint/Basic.lean Modified Mathlib/Topology/Compactness/Compact.lean Modified Mathlib/Topology/Compactness/Paracompact.lean Modified Mathlib/Topology/Constructions.lean Modified Mathlib/Topology/Constructions/SumProd.lean Modified Mathlib/Topology/ContinuousMap/CompactlySupported.lean Modified Mathlib/Topology/ContinuousMap/ContinuousSqrt.lean Modified Mathlib/Topology/ContinuousMap/Ideals.lean Modified Mathlib/Topology/ContinuousMap/Polynomial.lean Modified Mathlib/Topology/ContinuousMap/StoneWeierstrass.lean Modified Mathlib/Topology/ContinuousMap/Units.lean Modified Mathlib/Topology/ContinuousOn.lean Modified Mathlib/Topology/EMetricSpace/Basic.lean Modified Mathlib/Topology/EMetricSpace/BoundedVariation.lean Modified Mathlib/Topology/EMetricSpace/Defs.lean Modified Mathlib/Topology/EMetricSpace/Diam.lean Modified Mathlib/Topology/EMetricSpace/Lipschitz.lean Modified Mathlib/Topology/FiberBundle/Basic.lean Modified Mathlib/Topology/FiberBundle/Trivialization.lean Modified Mathlib/Topology/Homotopy/HSpaces.lean Modified Mathlib/Topology/Homotopy/Product.lean Modified Mathlib/Topology/IndicatorConstPointwise.lean Modified Mathlib/Topology/Instances/CantorSet.lean Modified Mathlib/Topology/Instances/ENNReal/Lemmas.lean Modified Mathlib/Topology/Instances/EReal/Lemmas.lean Modified Mathlib/Topology/IsClosedRestrict.lean Modified Mathlib/Topology/List.lean Modified Mathlib/Topology/LocallyConstant/Basic.lean Modified Mathlib/Topology/LocallyFinsupp.lean Modified Mathlib/Topology/MetricSpace/Algebra.lean Modified Mathlib/Topology/MetricSpace/BundledFun.lean Modified Mathlib/Topology/MetricSpace/CauSeqFilter.lean Modified Mathlib/Topology/MetricSpace/Closeds.lean Modified Mathlib/Topology/MetricSpace/Completion.lean Modified Mathlib/Topology/MetricSpace/Defs.lean Modified Mathlib/Topology/MetricSpace/Gluing.lean Modified Mathlib/Topology/MetricSpace/GromovHausdorff.lean Modified Mathlib/Topology/MetricSpace/HausdorffDistance.lean Modified Mathlib/Topology/MetricSpace/Isometry.lean Modified Mathlib/Topology/MetricSpace/Kuratowski.lean Modified Mathlib/Topology/MetricSpace/PiNat.lean Modified Mathlib/Topology/MetricSpace/Pseudo/Basic.lean Modified Mathlib/Topology/MetricSpace/Pseudo/Defs.lean Modified Mathlib/Topology/MetricSpace/Pseudo/Pi.lean Modified Mathlib/Topology/MetricSpace/Thickening.lean Modified Mathlib/Topology/MetricSpace/Ultra/Basic.lean Modified Mathlib/Topology/Metrizable/Uniformity.lean Modified Mathlib/Topology/Neighborhoods.lean Modified Mathlib/Topology/NoetherianSpace.lean Modified Mathlib/Topology/OmegaCompletePartialOrder.lean Modified Mathlib/Topology/Order.lean Modified Mathlib/Topology/Order/DenselyOrdered.lean Modified Mathlib/Topology/Order/ExtendFrom.lean Modified Mathlib/Topology/Order/LeftRightLim.lean Modified Mathlib/Topology/Order/LeftRightNhds.lean Modified Mathlib/Topology/PartialHomeomorph.lean Modified Mathlib/Topology/Path.lean Modified Mathlib/Topology/Perfect.lean Modified Mathlib/Topology/Semicontinuous.lean Modified Mathlib/Topology/SeparatedMap.lean Modified Mathlib/Topology/Separation/Basic.lean Modified Mathlib/Topology/Separation/Hausdorff.lean Modified Mathlib/Topology/Separation/Regular.lean Modified Mathlib/Topology/Separation/SeparatedNhds.lean Modified Mathlib/Topology/Sets/CompactOpenCovered.lean Modified Mathlib/Topology/Sheaves/Alexandrov.lean Modified Mathlib/Topology/Sheaves/CommRingCat.lean Modified Mathlib/Topology/Sheaves/Skyscraper.lean Modified Mathlib/Topology/Sober.lean Modified Mathlib/Topology/Spectral/Prespectral.lean Modified Mathlib/Topology/UniformSpace/AbstractCompletion.lean Modified Mathlib/Topology/UniformSpace/Basic.lean Modified Mathlib/Topology/UniformSpace/Cauchy.lean Modified Mathlib/Topology/UniformSpace/Completion.lean Modified Mathlib/Topology/UniformSpace/Defs.lean Modified Mathlib/Topology/UniformSpace/LocallyUniformConvergence.lean Modified Mathlib/Topology/UniformSpace/Real.lean Modified Mathlib/Topology/UniformSpace/Separation.lean Modified Mathlib/Topology/UniformSpace/UniformConvergence.lean Modified Mathlib/Topology/UniformSpace/UniformConvergenceTopology.lean Modified Mathlib/Topology/UrysohnsLemma.lean Modified Mathlib/Topology/VectorBundle/Basic.lean 2025-06-27 11:53:06 c873c5d chore: add reassoc to Pi.lift_π and Sigma.ι_desc (#26470) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Limits/Shapes/Products.lean 2025-06-27 10:00:22 8bb6112 chore(CategoryTheory/Monoidal): fix a few lemma names (#26256) Some were missing a trailing `_hom`, some had the `_inv` misplaced. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Enriched/Opposite.lean Modified Mathlib/CategoryTheory/GradedObject/Braiding.lean Modified Mathlib/CategoryTheory/Monoidal/Braided/Basic.lean - theorem CategoryTheory.BraidedCategory.braiding_inv_tensor_left - theorem CategoryTheory.BraidedCategory.braiding_inv_tensor_right - theorem CategoryTheory.BraidedCategory.braiding_tensor_left + theorem CategoryTheory.BraidedCategory.braiding_tensor_left_hom + theorem CategoryTheory.BraidedCategory.braiding_tensor_left_inv - theorem CategoryTheory.BraidedCategory.braiding_tensor_right + theorem CategoryTheory.BraidedCategory.braiding_tensor_right_hom + theorem CategoryTheory.BraidedCategory.braiding_tensor_right_inv Modified Mathlib/CategoryTheory/Monoidal/Category.lean - theorem CategoryTheory.MonoidalCategory.leftUnitor_tensor + theorem CategoryTheory.MonoidalCategory.leftUnitor_tensor_hom - theorem CategoryTheory.MonoidalCategory.rightUnitor_tensor + theorem CategoryTheory.MonoidalCategory.rightUnitor_tensor_hom Modified Mathlib/CategoryTheory/Monoidal/CoherenceLemmas.lean - theorem CategoryTheory.MonoidalCategory.leftUnitor_tensor'' - theorem CategoryTheory.MonoidalCategory.leftUnitor_tensor' + theorem CategoryTheory.MonoidalCategory.leftUnitor_tensor_hom'' + theorem CategoryTheory.MonoidalCategory.leftUnitor_tensor_hom' Modified Mathlib/CategoryTheory/Monoidal/Mon_.lean Modified Mathlib/CategoryTheory/Monoidal/Rigid/Braided.lean Modified scripts/nolints_prime_decls.txt 2025-06-27 08:57:34 e6886de feat(Data/Nat/Prime): add `minFac_prime_iff` simp lemma (#26452) Adds a simp lemma to simplify the expression `Prime (n.minFac)` ESTIMATED CHANGES Modified Mathlib/Data/Nat/Prime/Defs.lean + theorem Nat.minFac_prime_iff 2025-06-27 07:33:04 860d219 chore: only run pr_summary.yml on the main repo (#26463) ESTIMATED CHANGES Modified .github/workflows/PR_summary.yml 2025-06-27 05:04:52 501992c feat: behavior of unique differentiablity under field extension (#26429) If `s` is a domain of unique differentiability for a field `k`, then it is also a domain of unique differentiability for larger fields. This PR provides material required to implement a reviewer's suggestion in https://github.com/leanprover-community/mathlib4/pull/26353 ESTIMATED CHANGES Modified Mathlib/Analysis/Calculus/TangentCone.lean + theorem UniqueDiffOn.mono_field + theorem UniqueDiffWithinAt.mono_field + theorem tangentConeAt_mono_field Modified Mathlib/Analysis/Normed/Module/Basic.lean + theorem algebraMap_cobounded_le_cobounded Modified Mathlib/Analysis/RCLike/TangentCone.lean 2025-06-27 03:35:24 4198e49 feat: Multiple Primitivity of group actions (#26279) An action of a group G on a type X is n-primitive if it is n-transitive and if, for every subset s of cardinality n of X, the action of `fixingSubgroup G s` on the complement of `s` is primitive. This PR develops the basics of this notion. This PR continues the work from #23979. Original PR: https://github.com/leanprover-community/mathlib4/pull/23979 ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/GroupTheory/GroupAction/MultiplePrimitivity.lean + theorem MulAction.IsMultiplyPreprimitive.of_bijective_map + theorem MulAction.isMultiplyPreprimitive_congr + theorem MulAction.isMultiplyPreprimitive_ofStabilizer + theorem MulAction.isMultiplyPreprimitive_of_isMultiplyPretransitive_succ + theorem MulAction.isMultiplyPreprimitive_of_le + theorem MulAction.isMultiplyPreprimitive_succ_iff_ofStabilizer + theorem MulAction.isPreprimitive_fixingSubgroup_insert_iff + theorem MulAction.isPreprimitive_ofFixingSubgroup_conj_iff + theorem MulAction.is_one_preprimitive_iff + theorem MulAction.is_zero_preprimitive + theorem MulAction.ofFixingSubgroup.isMultiplyPreprimitive Modified Mathlib/GroupTheory/GroupAction/Primitive.lean Modified Mathlib/GroupTheory/GroupAction/SubMulAction/OfFixingSubgroup.lean + theorem SubMulAction.disjoint_val_image + def SubMulAction.fixingSubgroup_union_to_fixingSubgroup_of_fixingSubgroup +/- def SubMulAction.map_ofFixingSubgroupUnion +/- theorem SubMulAction.map_ofFixingSubgroupUnion_bijective +/- theorem SubMulAction.map_ofFixingSubgroupUnion_def + theorem SubMulAction.mem_fixingSubgroup_union_iff +/- theorem SubMulAction.ofFixingSubgroup.append_left +/- theorem SubMulAction.ofFixingSubgroup.append_right +/- def SubMulAction.ofFixingSubgroup_of_eq +/- theorem SubMulAction.ofFixingSubgroup_of_eq_apply +/- theorem SubMulAction.ofFixingSubgroup_of_eq_bijective +/- def SubMulAction.ofFixingSubgroup_of_inclusion +/- theorem SubMulAction.ofFixingSubgroup_of_inclusion_injective Modified Mathlib/GroupTheory/GroupAction/SubMulAction/OfStabilizer.lean + theorem SubMulAction.notMem_val_image 2025-06-27 02:42:59 6214905 chore: during nightly-testing CI, use nightly-testing instead of master (#26461) ESTIMATED CHANGES Modified .github/build.in.yml Modified .github/workflows/bors.yml Modified .github/workflows/build.yml Modified .github/workflows/build_fork.yml 2025-06-27 02:34:32 ba4fc7a chore: fix scripts/create-adaptation-pr.sh (#26460) ESTIMATED CHANGES Modified scripts/create-adaptation-pr.sh 2025-06-27 01:14:30 c1cb433 chore(Data/Finsupp/Option): golf (#26416) Also moves the golfed proof next to the def it is morally part of. ESTIMATED CHANGES Modified Mathlib/Data/Finsupp/Option.lean 2025-06-27 00:26:27 f2ef672 chore: golf using `constructor` (#26433) ESTIMATED CHANGES Modified Mathlib/Algebra/CharP/Basic.lean Modified Mathlib/Algebra/Field/ZMod.lean Modified Mathlib/Algebra/Polynomial/Basic.lean +/- theorem Polynomial.eta Modified Mathlib/Analysis/Normed/Unbundled/RingSeminorm.lean Modified Mathlib/CategoryTheory/Limits/Shapes/KernelPair.lean Modified Mathlib/CategoryTheory/Limits/Types/Shapes.lean Modified Mathlib/Data/Bool/Basic.lean +/- theorem Bool.bne_eq_xor Modified Mathlib/Data/Int/GCD.lean Modified Mathlib/Data/Sym/Sym2.lean Modified Mathlib/FieldTheory/Galois/Infinite.lean Modified Mathlib/RingTheory/MatrixPolynomialAlgebra.lean 2025-06-27 00:26:26 c84a0df chore: golf using `assumption` (#26431) ESTIMATED CHANGES Modified Mathlib/AlgebraicGeometry/Noetherian.lean Modified Mathlib/AlgebraicTopology/DoldKan/NCompGamma.lean Modified Mathlib/Analysis/Analytic/Composition.lean Modified Mathlib/Analysis/FunctionalSpaces/SobolevInequality.lean Modified Mathlib/CategoryTheory/Abelian/EpiWithInjectiveKernel.lean Modified Mathlib/Data/List/Cycle.lean Modified Mathlib/Data/Rat/Cast/Defs.lean Modified Mathlib/Data/Seq/Parallel.lean Modified Mathlib/GroupTheory/Perm/Cycle/Factors.lean Modified Mathlib/GroupTheory/Perm/Sign.lean Modified Mathlib/LinearAlgebra/Eigenspace/Pi.lean Modified Mathlib/MeasureTheory/Constructions/BorelSpace/Order.lean Modified Mathlib/MeasureTheory/Function/ConditionalExpectation/Unique.lean Modified Mathlib/MeasureTheory/Integral/IntegralEqImproper.lean Modified Mathlib/ModelTheory/ElementaryMaps.lean Modified Mathlib/NumberTheory/Zsqrtd/QuadraticReciprocity.lean Modified Mathlib/Order/ConditionallyCompleteLattice/Finset.lean Modified Mathlib/Order/OmegaCompletePartialOrder.lean Modified Mathlib/Topology/ShrinkingLemma.lean Modified Mathlib/Topology/UniformSpace/UniformConvergence.lean 2025-06-27 00:26:25 748372c feat(Geometry/Euclidean/Incenter): touchpoints and tangency (#25935) Define touchpoints for an exsphere / insphere and set up basic lemmas about exspheres / inspheres being tangent to the faces at the touchpoints (previously only present in a form talking about distance, not in a form directly using definitions about tangency). There's more to be done in followups, in particular showing the signs of the barycentric coordinates of touchpoints (so that e.g. the touchpoints for the insphere are in the interiors of the faces), but I think setting up the definition here is a reasonable start. ESTIMATED CHANGES Modified Mathlib/Geometry/Euclidean/Incenter.lean + theorem Affine.Simplex.ExcenterExists.isTangentAt_exsphere_iff_eq_touchpoint + theorem Affine.Simplex.ExcenterExists.isTangentAt_touchpoint + theorem Affine.Simplex.eq_touchpoint_of_isTangentAt_exsphere + theorem Affine.Simplex.isTangentAt_insphere_iff_eq_touchpoint + theorem Affine.Simplex.isTangentAt_insphere_touchpoint + def Affine.Simplex.touchpoint + theorem Affine.Simplex.touchpoint_mem_affineSpan 2025-06-26 23:40:07 ac6f822 chore: golf using `exact` (#26397) ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/Operations.lean +/- theorem Submodule.mul_smul_mul_eq_smul_mul_smul Modified Mathlib/AlgebraicGeometry/Restrict.lean Modified Mathlib/Combinatorics/SimpleGraph/Connectivity/Subgraph.lean Modified Mathlib/Computability/Ackermann.lean Modified Mathlib/Data/Nat/Bitwise.lean Modified Mathlib/FieldTheory/Cardinality.lean +/- theorem Fintype.isPrimePow_card_of_field Modified Mathlib/Geometry/Manifold/VectorField/LieBracket.lean Modified Mathlib/InformationTheory/Hamming.lean Modified Mathlib/LinearAlgebra/Prod.lean Modified Mathlib/Logic/Equiv/Basic.lean Modified Mathlib/MeasureTheory/Constructions/BorelSpace/Basic.lean Modified Mathlib/ModelTheory/Complexity.lean Modified Mathlib/Order/Atoms/Finite.lean Modified Mathlib/Probability/Kernel/Composition/MeasureCompProd.lean Modified Mathlib/RingTheory/Valuation/AlgebraInstances.lean Modified Mathlib/Tactic/ReduceModChar.lean Modified Mathlib/Topology/Category/Stonean/Basic.lean 2025-06-26 22:03:14 dfa7ff8 feat: topology on Hom(R, S) in `CommRingCat` (#21283) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Category/Ring/Constructions.lean + theorem CommRingCat.closure_range_union_range_eq_top_of_isPushout Added Mathlib/Algebra/Category/Ring/Topology.lean + theorem CommRingCat.HomTopology.continuous_precomp + theorem CommRingCat.HomTopology.isClosedEmbedding_hom + theorem CommRingCat.HomTopology.isClosedEmbedding_precomp_of_surjective + theorem CommRingCat.HomTopology.isEmbedding_hom + theorem CommRingCat.HomTopology.isEmbedding_precomp_of_surjective + theorem CommRingCat.HomTopology.isEmbedding_pushout + theorem CommRingCat.HomTopology.isHomeomorph_precomp + def CommRingCat.HomTopology.mvPolynomialHomeomorph + def CommRingCat.HomTopology.precompHomeomorph Modified Mathlib/RingTheory/TensorProduct/Basic.lean + theorem Algebra.TensorProduct.closure_range_union_range_eq_top Modified Mathlib/Topology/Constructions.lean + theorem Function.Surjective.isEmbedding_comp Modified Mathlib/Topology/Homeomorph/Lemmas.lean + theorem Homeomorph.coe_prodUnique + theorem Homeomorph.coe_uniqueProd + def Homeomorph.prodUnique + def Homeomorph.uniqueProd Modified scripts/noshake.json 2025-06-26 21:49:51 6cd63ee feat(RingTheory/Localization/Pi): localization of a finite direct product where each semiring in product has maximal nilradical is a projection (#26372) For noncomputable def `surjectivePiNilradicalIsMaximal` : Let `M` be a submonoid of a direct product of commutative rings `R i`. If each `R i` has maximal nilradical then the direct product `∏ R i` surjects onto the localization of `∏ R i` at `M`. ESTIMATED CHANGES Modified Mathlib/RingTheory/Localization/Pi.lean + theorem IsLocalization.algebraMap_pi_surjective_of_isLocalization + theorem IsLocalization.surjective_piRingHom_algebraMap_comp_piEvalRingHom 2025-06-26 20:41:41 9858d11 chore(Lean/CoreM): minimize import (#26450) ESTIMATED CHANGES Modified Mathlib/Lean/CoreM.lean 2025-06-26 20:11:41 e3af725 feat: Add `Matrix.liftLinear` (#25845) This behaves similarly to `LinearMap.lsum`, and slightly golfs an existing definition. ESTIMATED CHANGES Modified Mathlib/Data/Matrix/Basis.lean + def Matrix.liftLinear + theorem Matrix.liftLinear_comp_singleLinearMap + theorem Matrix.liftLinear_piSingle + theorem Matrix.liftLinear_singleLinearMap Modified Mathlib/LinearAlgebra/Pi.lean +/- theorem LinearMap.lsum_single Modified Mathlib/RingTheory/MatrixAlgebra.lean 2025-06-26 15:59:49 7260822 feat(Logic/Equiv/Fin): add `finSumNatEquiv` (#26408) Adds an equivalence between `Fin n ⊕ ℕ` and `ℕ`. ESTIMATED CHANGES Modified Mathlib/Logic/Equiv/Fin/Basic.lean + def finSumNatEquiv + theorem finSumNatEquiv_apply_left + theorem finSumNatEquiv_apply_right + theorem finSumNatEquiv_symm_apply_add_left + theorem finSumNatEquiv_symm_apply_add_right + theorem finSumNatEquiv_symm_apply_fin + theorem finSumNatEquiv_symm_apply_of_ge + theorem finSumNatEquiv_symm_apply_of_lt + theorem isLeft_finSumNatEquiv_symm_apply + theorem isRight_finSumNatEquiv_symm_apply 2025-06-26 14:48:54 82b6d24 chore: use cache --repo for robustness until we solve CI problems (#26444) ESTIMATED CHANGES Modified .github/build.in.yml Modified .github/workflows/bors.yml Modified .github/workflows/build.yml Modified .github/workflows/build_fork.yml 2025-06-26 13:35:08 f541cd9 feat: Add more Summability results needed for Eisenstein series. (#26005) This PR continues the work from #25393. Original PR: https://github.com/leanprover-community/mathlib4/pull/25393 ESTIMATED CHANGES Modified Mathlib/Analysis/Asymptotics/Defs.lean + theorem Asymptotics.IsBigO.comp_neg_int Modified Mathlib/Analysis/Complex/Asymptotics.lean + theorem Int.cast_complex_isTheta_cast_real Modified Mathlib/Analysis/Normed/Group/Bounded.lean + theorem tendsto_norm_comp_cofinite_atTop_of_isClosedEmbedding' Modified Mathlib/NumberTheory/ModularForms/EisensteinSeries/Summable.lean + theorem EisensteinSeries.abs_le_left_of_norm + theorem EisensteinSeries.abs_le_right_of_norm + theorem EisensteinSeries.linear_inv_isBigO_left + theorem EisensteinSeries.linear_inv_isBigO_right + theorem EisensteinSeries.linear_isTheta_left + theorem EisensteinSeries.linear_isTheta_right + theorem EisensteinSeries.linear_left_summable + theorem EisensteinSeries.linear_right_summable + theorem EisensteinSeries.norm_symm + theorem EisensteinSeries.summable_inv_of_isBigO_rpow_inv + theorem EisensteinSeries.summable_linear_sub_mul_linear_add Modified scripts/migrate_to_fork.py 2025-06-26 13:18:40 44315fb chore: restore 'cache get' logic from before #24607 (#26439) ESTIMATED CHANGES Modified Cache/Requests.lean + def Cache.Requests.extractPRNumber 2025-06-26 13:10:14 4860a3b chore: revert "chore: try a different checkout during CI (#26434)" (#26438) This reverts commit 3d6e7388a0b64a808c8c0ea3daf51924f00e6070. ESTIMATED CHANGES 2025-06-26 23:03:37+10:00 23a77d5 chore: revert "chore: try a different checkout during CI (#26434)" (#26438) Revert "chore: try a different checkout during CI (#26434)" This reverts commit 3d6e7388a0b64a808c8c0ea3daf51924f00e6070. ESTIMATED CHANGES Modified .github/build.in.yml Modified .github/workflows/bors.yml Modified .github/workflows/build.yml Modified .github/workflows/build_fork.yml 2025-06-26 12:38:27 ea7af1e chore: add some `fun_prop` attributes (#26406) See [#mathlib4 > missing @fun_prop? @ 💬](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/missing.20.40fun_prop.3F/near/525714985) ESTIMATED CHANGES Modified Mathlib/Topology/Algebra/Constructions.lean 2025-06-26 11:36:47 3d6e738 chore: try a different checkout during CI (#26434) Per discussion on [zulip](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Failing.20CI/near/525845046)[#mathlib4 > Failing CI @ 💬](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Failing.20CI/near/525845046). ESTIMATED CHANGES Modified .github/build.in.yml Modified .github/workflows/bors.yml Modified .github/workflows/build.yml Modified .github/workflows/build_fork.yml 2025-06-26 10:20:45 853b1aa refactor(Algebra/ModEq): more symmetric lemma statements (#26414) This keeps the variables in the same order on both sides. Also adds a trivial lemma about `0`. ESTIMATED CHANGES Modified Mathlib/Algebra/ModEq.lean +/- theorem AddCommGroup.modEq_iff_eq_mod_zmultiples + theorem AddCommGroup.modEq_zero_iff_eq_zsmul Modified Mathlib/Algebra/Order/ToIntervalMod.lean +/- theorem toIcoMod_inj Modified Mathlib/Topology/Instances/AddCircle/Defs.lean 2025-06-26 10:05:11 428b9ef feat(Pow/Real): add rpow_ofNat (#26364) A special case of `rpow_natCast` to make it fire on numerals ESTIMATED CHANGES Modified Mathlib/Analysis/SpecialFunctions/Pow/Real.lean + theorem Real.rpow_neg_natCast + theorem Real.rpow_neg_ofNat + theorem Real.rpow_ofNat 2025-06-26 09:21:51 9783303 doc(LinearAlgebra/Projection): fix docstrings (#26423) Move part of the docstring of `Submodule.prodEquivOfIsCompl` to that of `Submodule.linearProjOfIsCompl`, where it belongs. ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/Projection.lean 2025-06-26 05:44:45 8a6f6f7 chore: more diagnostics from cache put (#26424) ESTIMATED CHANGES Modified .github/build.in.yml Modified .github/workflows/bors.yml Modified .github/workflows/build.yml Modified .github/workflows/build_fork.yml Modified Cache/Requests.lean 2025-06-26 03:39:31 407d718 chore: temporarily disable cache testing on nightly-testing (#26422) ESTIMATED CHANGES Modified .github/build.in.yml Modified .github/workflows/bors.yml Modified .github/workflows/build.yml Modified .github/workflows/build_fork.yml 2025-06-26 03:11:59 2924dce chore: revert #26417 after new logic in #26419 (#26421) This morning's emergency fix in #26417 should no longer be necessary after #26419. ESTIMATED CHANGES Modified .github/build.in.yml Modified .github/workflows/bors.yml Modified .github/workflows/build.yml Modified .github/workflows/build_fork.yml 2025-06-26 02:57:13 2e9119a chore: build cleanup step retries (#26420) We've been seeing recent failures here. I don't really understand how this is possible, but lets at least retry. https://github.com/leanprover-community/mathlib4-nightly-testing/actions/runs/15890988918/job/44813516178#step:2:15 See also: https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/CI.20error ESTIMATED CHANGES Modified .github/build.in.yml Modified .github/workflows/bors.yml Modified .github/workflows/build.yml Modified .github/workflows/build_fork.yml 2025-06-26 02:09:31 81adbc6 chore: cache get uses tracking remote (#26419) ESTIMATED CHANGES Modified Cache/Requests.lean 2025-06-26 00:24:51 45acf2e feat(Geometry/Euclidean/Sphere/Tangent): distances and projections (#25934) Add lemmas relating tangency to the `infDist` between the center of the sphere and the affine subspace, and to the orthogonal projection onto that subspace. ESTIMATED CHANGES Modified Mathlib/Geometry/Euclidean/Sphere/Tangent.lean + theorem EuclideanGeometry.Sphere.IsTangent.infDist_eq_radius + theorem EuclideanGeometry.Sphere.IsTangentAt.dist_sq_eq_of_mem + theorem EuclideanGeometry.Sphere.IsTangentAt.eq_orthogonalProjection + theorem EuclideanGeometry.Sphere.dist_orthogonalProjection_eq_radius_iff_isTangent + theorem EuclideanGeometry.Sphere.dist_orthogonalProjection_eq_radius_iff_isTangentAt + theorem EuclideanGeometry.Sphere.infDist_eq_radius_iff_isTangent + theorem EuclideanGeometry.Sphere.isTangent_iff_isTangentAt_orthogonalProjection 2025-06-25 23:57:15 6e08340 fix: workflow merging master into nightly-testing (#26418) The workflow was broken. Coauthored by Thomas Murrills. ESTIMATED CHANGES Modified .github/workflows/nightly_merge_master.yml 2025-06-25 23:44:49 755587e chore: temporary fix retrieving the cache in CI (#26417) This is a hacky fix for the problems in CI reported in [#mathlib4 > Failing CI @ 💬](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Failing.20CI/near/525708108) ESTIMATED CHANGES Modified .github/build.in.yml Modified .github/workflows/bors.yml Modified .github/workflows/build.yml Modified .github/workflows/build_fork.yml 2025-06-25 22:37:58 f66260b feat: remove `[DecidableEq α]` from `Finset.Nontrivial.instDecidablePred` (#26409) Change the instance `Finset.Nontrivial.instDecidablePred` to not require `[DecidableEq α]`. I noticed this when I tried to show that a finset given as a multiset with nodup proof is nontrivial, and it failed because the reals don't have decidable equality. ESTIMATED CHANGES Modified Mathlib/Data/Finset/Insert.lean 2025-06-25 21:36:41 25f0904 chore(Data/Finsupp/Basic): split file (#26309) This PR splits off a new file `Option.lean` from `Data/Finsupp/Basic.lean`. These definitions relate to finitely-supported functions on an `Option` type. This split anticipates #25920 adding more definitions on this subject to this new file. This also eliminates a too-long file linter, reducing tech debt. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/MvPolynomial/Equiv.lean Modified Mathlib/Data/Finsupp/Basic.lean - theorem Finsupp.embDomain_some_none - theorem Finsupp.embDomain_some_some - theorem Finsupp.eq_option_embedding_update_none_iff - def Finsupp.optionEquiv - theorem Finsupp.prod_option_index - def Finsupp.some - theorem Finsupp.some_add - theorem Finsupp.some_apply - theorem Finsupp.some_embDomain_some - theorem Finsupp.some_single_none - theorem Finsupp.some_single_some - theorem Finsupp.some_update_none - theorem Finsupp.some_zero - theorem Finsupp.sum_option_index_smul Added Mathlib/Data/Finsupp/Option.lean + theorem Finsupp.embDomain_some_none + theorem Finsupp.embDomain_some_some + theorem Finsupp.eq_option_embedding_update_none_iff + def Finsupp.optionEquiv + theorem Finsupp.prod_option_index + def Finsupp.some + theorem Finsupp.some_add + theorem Finsupp.some_apply + theorem Finsupp.some_embDomain_some + theorem Finsupp.some_single_none + theorem Finsupp.some_single_some + theorem Finsupp.some_update_none + theorem Finsupp.some_zero + theorem Finsupp.sum_option_index_smul Modified Mathlib/LinearAlgebra/Finsupp/LinearCombination.lean 2025-06-25 20:48:55 53a2c07 fix(grewrite): `grw` not working on goals with `syntheticOpaque` mvars (#25942) The `gcongr` tactic looks for syntheticOpaque metavariables in the template and interprets them as holes. If the target of `grewrite` already contains syntheticOpaque metavariables, then the produced template is 'corrupted' by these metavariables. This PR fixes this by letting `grewrite` tell `gcongr` exactly which metavariable is the hole. ESTIMATED CHANGES Modified Mathlib/Tactic/GCongr/Core.lean Modified Mathlib/Tactic/GRewrite/Core.lean Modified MathlibTest/GRewrite.lean 2025-06-25 16:54:05 325f8d7 chore(Cache): make cache attempt resoluion of the repo using pr info first (#26407) Previous the line ```lean let trackingInfo ← IO.Process.output {cmd := "git", args := #["rev-parse", "--symbolic-full-name", "@{upstream}"], cwd := mathlibDepPath} ``` would fail when a PR was checked out via `gh pr checkout`. Instead, we use `gh pr view --json` first to detect the PR number, the repo owner, and the repo name while still special casing the common branches like `master` and `nightly-testing`. This is sensible as currently a PR is required to generate a cache from a fork. ESTIMATED CHANGES Modified Cache/Requests.lean 2025-06-25 16:22:44 4c0eddc feat(Data/Finsupp/MonomialOrder): add two trivial lemmas (#26062) ESTIMATED CHANGES Modified Mathlib/Data/Finsupp/MonomialOrder.lean + theorem MonomialOrder.toSyn_eq_zero_iff + theorem MonomialOrder.toSyn_lt_iff_ne_zero 2025-06-25 16:13:48 6116fda refactor: make `SimpleGraph.incMatrix` computable (#25659) This came up in a project at "Autoformalization for the Working Mathematician" at ICERM. There are no downstream uses of this file, nor is there any implementation note explaining why `noncomputable` is used here; so let's make `#eval` work: ```lean -- now works #eval (⊤ : SimpleGraph (Fin 3)).incMatrix ℕ * ((⊤ : SimpleGraph (Fin 3)).incMatrix ℕ)ᵀ ``` This also adds some missing `Matrix.of`s. ESTIMATED CHANGES Modified Mathlib/Combinatorics/SimpleGraph/IncMatrix.lean + def SimpleGraph.incMatrix +/- theorem SimpleGraph.incMatrix_apply +/- theorem SimpleGraph.incMatrix_mul_transpose 2025-06-25 15:59:15 7375fb3 feat: the function `smoothTransition` is monotone (#26361) ESTIMATED CHANGES Modified Mathlib/Analysis/SpecialFunctions/SmoothTransition.lean + theorem Real.smoothTransition.eq_one_iff_one_le 2025-06-25 15:59:13 2545ec6 chore: add `fun_` versions in the files on one-dimensional derivatives (#26355) Also dispatch `fun_prop` attributes from the dedicated file to the right places in the library. ESTIMATED CHANGES Modified Archive/Wiedijk100Theorems/AreaOfACircle.lean Modified Mathlib/Analysis/Calculus/DSlope.lean Modified Mathlib/Analysis/Calculus/Deriv/Add.lean + theorem HasDerivAt.fun_sum + theorem HasDerivAtFilter.fun_sub + theorem HasDerivAtFilter.fun_sum + theorem HasDerivWithinAt.fun_sum + theorem HasStrictDerivAt.fun_sub + theorem HasStrictDerivAt.fun_sum + theorem deriv.fun_neg' + theorem deriv.fun_neg +/- theorem deriv.neg' +/- theorem deriv.neg + theorem derivWithin.fun_neg +/- theorem derivWithin.neg + theorem derivWithin_fun_add + theorem derivWithin_fun_sub + theorem derivWithin_fun_sum +/- theorem deriv_add_const' +/- theorem deriv_add_const +/- theorem deriv_const_sub + theorem deriv_fun_add + theorem deriv_fun_sub + theorem deriv_fun_sum +/- theorem deriv_neg'' +/- theorem deriv_neg' +/- theorem deriv_sub_const +/- theorem hasDerivAt_neg' Modified Mathlib/Analysis/Calculus/Deriv/Inv.lean + theorem Differentiable.fun_div + theorem DifferentiableAt.fun_div + theorem DifferentiableOn.fun_div + theorem DifferentiableWithinAt.fun_div + theorem HasDerivAt.fun_div + theorem HasDerivAt.fun_inv + theorem HasDerivWithinAt.fun_div + theorem HasDerivWithinAt.fun_inv + theorem HasStrictDerivAt.fun_div + theorem derivWithin_fun_div + theorem derivWithin_fun_inv' + theorem deriv_fun_div + theorem deriv_fun_inv'' Modified Mathlib/Analysis/Calculus/Deriv/MeanValue.lean Modified Mathlib/Analysis/Calculus/Deriv/Mul.lean + theorem Differentiable.fun_finset_prod + theorem DifferentiableAt.fun_finset_prod + theorem DifferentiableOn.fun_finset_prod + theorem DifferentiableWithinAt.fun_finset_prod + theorem HasDerivAt.fun_finset_prod + theorem HasDerivAt.fun_mul + theorem HasDerivAt.fun_smul + theorem HasDerivWithinAt.fun_finset_prod + theorem HasDerivWithinAt.fun_mul + theorem HasDerivWithinAt.fun_smul + theorem HasStrictDerivAt.fun_finset_prod + theorem HasStrictDerivAt.fun_mul +/- theorem derivWithin_finset_prod + theorem derivWithin_fun_const_smul' + theorem derivWithin_fun_const_smul + theorem derivWithin_fun_finset_prod + theorem derivWithin_fun_mul + theorem derivWithin_fun_smul +/- theorem deriv_const_smul' + theorem deriv_fun_const_smul' + theorem deriv_fun_const_smul + theorem deriv_fun_finset_prod + theorem deriv_fun_mul + theorem deriv_fun_smul Modified Mathlib/Analysis/Calculus/Deriv/Pow.lean + theorem HasDerivAt.fun_pow + theorem HasDerivWithinAt.fun_pow + theorem derivWithin_fun_pow' + theorem deriv_fun_pow'' Modified Mathlib/Analysis/Calculus/Deriv/Slope.lean Modified Mathlib/Analysis/Calculus/FDeriv/Basic.lean + theorem differentiableAt_fun_id - theorem differentiableAt_id' + theorem differentiable_fun_id - theorem differentiable_id' Modified Mathlib/Analysis/Calculus/FDeriv/Mul.lean + theorem Differentiable.fun_inv + theorem Differentiable.fun_mul + theorem Differentiable.fun_pow + theorem Differentiable.fun_smul +/- theorem Differentiable.pow + theorem DifferentiableAt.fun_inv + theorem DifferentiableAt.fun_mul + theorem DifferentiableAt.fun_pow + theorem DifferentiableAt.fun_smul + theorem DifferentiableOn.fun_inv + theorem DifferentiableOn.fun_mul + theorem DifferentiableOn.fun_pow + theorem DifferentiableOn.fun_smul + theorem DifferentiableWithinAt.fun_inv + theorem DifferentiableWithinAt.fun_mul + theorem DifferentiableWithinAt.fun_pow + theorem DifferentiableWithinAt.fun_smul + theorem HasFDerivAt.fun_mul' + theorem HasFDerivAt.fun_mul + theorem HasFDerivAt.fun_smul + theorem HasFDerivWithinAt.fun_mul' + theorem HasFDerivWithinAt.fun_mul + theorem HasFDerivWithinAt.fun_smul + theorem HasStrictFDerivAt.fun_mul' + theorem HasStrictFDerivAt.fun_mul + theorem HasStrictFDerivAt.fun_smul + theorem fderivWithin_fun_mul' + theorem fderivWithin_fun_mul + theorem fderivWithin_fun_smul + theorem fderiv_fun_mul' + theorem fderiv_fun_mul + theorem fderiv_fun_smul Modified Mathlib/Analysis/Calculus/IteratedDeriv/Lemmas.lean + theorem iteratedDerivWithin_fun_neg - theorem iteratedDerivWithin_neg' + theorem iteratedDeriv_fun_neg Modified Mathlib/Analysis/Calculus/LogDeriv.lean Modified Mathlib/Analysis/Calculus/Taylor.lean Modified Mathlib/Analysis/Complex/Hadamard.lean Modified Mathlib/Analysis/Complex/LocallyUniformLimit.lean Modified Mathlib/Analysis/Convex/Deriv.lean Modified Mathlib/Analysis/SpecialFunctions/BinaryEntropy.lean Modified Mathlib/Analysis/SpecialFunctions/ExpDeriv.lean Modified Mathlib/Analysis/SpecialFunctions/Gamma/Beta.lean Modified Mathlib/Analysis/SpecialFunctions/Log/Deriv.lean Modified Mathlib/Analysis/SpecialFunctions/Log/NegMulLog.lean Modified Mathlib/Analysis/SpecialFunctions/MulExpNegMulSq.lean Modified Mathlib/Analysis/SpecialFunctions/Pochhammer.lean Modified Mathlib/Analysis/SpecialFunctions/Pow/Deriv.lean Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Deriv.lean Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/EulerSineProd.lean Modified Mathlib/Computability/AkraBazzi/AkraBazzi.lean Modified Mathlib/Computability/AkraBazzi/SumTransform.lean Modified Mathlib/Data/Real/Pi/Irrational.lean Modified Mathlib/Geometry/Manifold/ContMDiffMFDeriv.lean Modified Mathlib/MeasureTheory/Integral/IntervalIntegral/FundThmCalculus.lean Modified Mathlib/NumberTheory/Harmonic/GammaDeriv.lean Modified Mathlib/NumberTheory/LSeries/DirichletContinuation.lean Modified Mathlib/NumberTheory/LSeries/HurwitzZetaEven.lean Modified Mathlib/NumberTheory/ModularForms/JacobiTheta/TwoVariable.lean Modified Mathlib/NumberTheory/Transcendental/Lindemann/AnalyticalPart.lean Modified Mathlib/Probability/Distributions/Gaussian/Real.lean Modified Mathlib/Probability/Moments/MGFAnalytic.lean Modified Mathlib/RingTheory/Polynomial/Hermite/Gaussian.lean Modified Mathlib/Tactic/FunProp/Differentiable.lean 2025-06-25 15:49:32 6004176 feat: weaken assumption to `NullMeasurableSet` in some results on change of variables in integrals (#26362) ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Function/Jacobian.lean + theorem MeasureTheory.lintegral_abs_det_fderiv_eq_addHaar_image₀ +/- theorem MeasureTheory.map_withDensity_abs_det_fderiv_eq_addHaar + theorem MeasureTheory.nullMeasurable_image_of_fderivWithin 2025-06-25 13:48:14 df64e78 feat: `(q⁻¹).num` and `(q⁻¹).den` for `q : ℚ` (#26381) `NNRat.num_inv_of_ne_zero` already existed, this adds the `Rat` version. ESTIMATED CHANGES Modified Mathlib/Data/Rat/Lemmas.lean + theorem Rat.den_inv_of_ne_zero + theorem Rat.num_inv 2025-06-25 13:48:12 591c6bd feat(SimpleGraph): `ext` for walks based on `getVert` and `support` (#26380) Two walks are the same if they agree under `getVert` or `support`. ESTIMATED CHANGES Modified Mathlib/Combinatorics/SimpleGraph/Walk.lean + theorem SimpleGraph.Walk.ext_getVert + theorem SimpleGraph.Walk.ext_getVert_le_length + theorem SimpleGraph.Walk.ext_support 2025-06-25 13:13:28 870d7cd chore: improve Aesop automation for membership of substructure closures (#26162) * Add new Aesop lemmas `mem_closure_of_mem` to improve Aesop performance * Ensure all `subset_closure` lemmas are `simp` This PR applies the performance improvement in #26127 to all substructure closure operators, making it feasible to use Aesop to prove membership of substructure closures. It also marks the lemmas `mem_adjoin_of_mem` added in #26127 with `simp`, in line with the previously-existing `mem_closure_of_mem` lemmas. ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/NonUnitalSubalgebra.lean Modified Mathlib/Algebra/Algebra/Subalgebra/Lattice.lean Modified Mathlib/Algebra/Field/Subfield/Basic.lean + theorem Subfield.mem_closure_of_mem Modified Mathlib/Algebra/Group/Subgroup/Lattice.lean + theorem Subgroup.mem_closure_of_mem Modified Mathlib/Algebra/Group/Submonoid/Basic.lean + theorem Submonoid.mem_closure_of_mem Modified Mathlib/Algebra/Group/Subsemigroup/Basic.lean + theorem Subsemigroup.mem_closure_of_mem Modified Mathlib/Algebra/Ring/Subring/Basic.lean + theorem Subring.mem_closure_of_mem Modified Mathlib/Algebra/Ring/Subsemiring/Basic.lean + theorem Subsemiring.mem_closure_of_mem Modified Mathlib/Algebra/Star/NonUnitalSubalgebra.lean Modified Mathlib/Algebra/Star/Subalgebra.lean Modified Mathlib/LinearAlgebra/Span/Defs.lean + theorem Submodule.mem_span_of_mem Modified Mathlib/RingTheory/NonUnitalSubring/Basic.lean + theorem NonUnitalSubring.mem_closure_of_mem 2025-06-25 11:27:38 47c8523 chore: weaken hypotheses for a Gaussian measure to be a probability measure (#26320) Any Gaussian measure is a probability measure, there is no need to be on a normed space - the old proof only needed it due to the use of `NormedSpace.Dual`. From Brownian motion ESTIMATED CHANGES Modified Mathlib/Probability/Distributions/Gaussian/Basic.lean 2025-06-25 10:56:11 22cd4a1 refactor: move stuff on addition of `iInf` and `iSup` in `ENNReal` to a common place (#26356) Currently, they follow very similar API but the stuff on `iInf` is in `ENNReal.Real` and the stuff on `iSup` is in `ENNReal.Inv`. In this PR, I move them both to the end of the (intermediate) file `ENNReal.Operations` (as a lemma on subtraction is needed to prove some property of `iSup`). The end goal is to expand the APIs to make them even closer, but for now this PR is just a pure moving step. ESTIMATED CHANGES Modified Mathlib/Data/ENNReal/Inv.lean - theorem ENNReal.add_biSup' - theorem ENNReal.add_biSup - theorem ENNReal.add_iSup - theorem ENNReal.add_sSup - theorem ENNReal.biSup_add' - theorem ENNReal.biSup_add - theorem ENNReal.biSup_add_biSup_le' - theorem ENNReal.biSup_add_biSup_le - theorem ENNReal.exists_lt_add_of_lt_add - theorem ENNReal.iSup_add - theorem ENNReal.iSup_add_iSup - theorem ENNReal.iSup_add_iSup_le - theorem ENNReal.iSup_add_iSup_of_monotone - theorem ENNReal.iSup_eq_zero - theorem ENNReal.iSup_lt_eq_self - theorem ENNReal.iSup_natCast - theorem ENNReal.iSup_zero - theorem ENNReal.sSup_add - theorem ENNReal.sub_iSup Modified Mathlib/Data/ENNReal/Operations.lean + theorem ENNReal.add_biSup' + theorem ENNReal.add_biSup + theorem ENNReal.add_iInf + theorem ENNReal.add_iSup + theorem ENNReal.add_sSup + theorem ENNReal.biSup_add' + theorem ENNReal.biSup_add + theorem ENNReal.biSup_add_biSup_le' + theorem ENNReal.biSup_add_biSup_le + theorem ENNReal.exists_lt_add_of_lt_add + theorem ENNReal.iInf_add + theorem ENNReal.iInf_add_iInf + theorem ENNReal.iSup_add + theorem ENNReal.iSup_add_iSup + theorem ENNReal.iSup_add_iSup_le + theorem ENNReal.iSup_add_iSup_of_monotone + theorem ENNReal.iSup_eq_zero + theorem ENNReal.iSup_lt_eq_self + theorem ENNReal.iSup_natCast + theorem ENNReal.iSup_sub + theorem ENNReal.iSup_zero + theorem ENNReal.ofReal_iInf + theorem ENNReal.sInf_add + theorem ENNReal.sSup_add + theorem ENNReal.sub_iInf + theorem ENNReal.sub_iSup + theorem ENNReal.toNNReal_iInf + theorem ENNReal.toNNReal_iSup + theorem ENNReal.toNNReal_sInf + theorem ENNReal.toNNReal_sSup + theorem ENNReal.toReal_iInf + theorem ENNReal.toReal_iSup + theorem ENNReal.toReal_sInf + theorem ENNReal.toReal_sSup Modified Mathlib/Data/ENNReal/Real.lean - theorem ENNReal.add_iInf - theorem ENNReal.iInf_add - theorem ENNReal.iInf_add_iInf - theorem ENNReal.iSup_sub - theorem ENNReal.ofReal_iInf - theorem ENNReal.sInf_add - theorem ENNReal.sub_iInf - theorem ENNReal.toNNReal_iInf - theorem ENNReal.toNNReal_iSup - theorem ENNReal.toNNReal_sInf - theorem ENNReal.toNNReal_sSup - theorem ENNReal.toReal_iInf - theorem ENNReal.toReal_iSup - theorem ENNReal.toReal_sInf - theorem ENNReal.toReal_sSup 2025-06-25 10:56:10 a2d0a66 feat(Topology/Instances): lemmas about Cantor set (#26001) Prove a few lemmas about the Cantor set. ESTIMATED CHANGES Modified Mathlib/Topology/Instances/CantorSet.lean + theorem cantorSet_eq_union_halves + theorem preCantorSet_antitone + theorem preCantorSet_subset_unitInterval 2025-06-25 10:16:00 17fbb00 feat(Set/Monotone): convenience special cases for monotonicity on insert (#26369) Add four special case lemmas to describe monotonicity on `insert` in the case where the new element is above or below all existing ones. Also make better use of `variable`. ESTIMATED CHANGES Modified Mathlib/Data/Set/Monotone.lean +/- theorem StrictMono.codRestrict +/- theorem strictAntiOn_insert_iff + theorem strictAntiOn_insert_iff_of_forall_ge + theorem strictAntiOn_insert_iff_of_forall_le +/- theorem strictMonoOn_insert_iff + theorem strictMonoOn_insert_iff_of_forall_ge + theorem strictMonoOn_insert_iff_of_forall_le +/- theorem strictMono_restrict 2025-06-25 10:15:59 586a9a0 chore: tidy the positivity test (#26328) A bunch of commented out tests now pass, and some tests were exact duplicates. This also tries to group some tests together into sections. The only new lines in this PR are `section`s and associated comments, everything else is just moved / ported from lean 3. The motivation here is to cut this file into pieces in a follow-up PR. ESTIMATED CHANGES Modified MathlibTest/positivity.lean 2025-06-25 10:15:57 8558b50 refactor: restate `(T35|T6)Space` using `T0Space` (#26065) Currently, T3.5 and T6 spaces are defined as completely regular and perfectly normal T1 spaces, respectively. However, in both cases, the assumption of T1 can be weakened to T0. Note: T4 and T5 spaces are also defined as normal and completely normal T1 spaces, respectively, but in these cases, the T1 assumption cannot be weakened to T0. This is because the Sierpiński space (`Prop`) is a completely regular T0 space, but it is not an R0 space, and therefore not a T1 space. ESTIMATED CHANGES Modified Mathlib/Topology/Separation/CompletelyRegular.lean Modified Mathlib/Topology/Separation/GDelta.lean 2025-06-25 10:15:56 ab494ff feat: the bicategory of adjunctions in a bicategory (#25977) Given a bicategory `B`, we construct a bicategory `Adj B` that has the same objects but whose `1`-morphisms are adjunctions (in the same direction as the left adjoints), and `2`-morphisms are tuples of mate maps between the left and right adjoints (where the map between right adjoints is in the opposite direction). ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Bicategory/Adjunction/Adj.lean + def CategoryTheory.Bicategory.Adj.Bicategory.associator + def CategoryTheory.Bicategory.Adj.Bicategory.leftUnitor + def CategoryTheory.Bicategory.Adj.Bicategory.rightUnitor + def CategoryTheory.Bicategory.Adj.Bicategory.whiskerLeft + def CategoryTheory.Bicategory.Adj.Bicategory.whiskerRight + structure CategoryTheory.Bicategory.Adj.Hom + theorem CategoryTheory.Bicategory.Adj.Hom₂.conjugateEquiv_symm_τr + structure CategoryTheory.Bicategory.Adj.Hom₂ + def CategoryTheory.Bicategory.Adj.forget₁ + theorem CategoryTheory.Bicategory.Adj.hom₂_ext + def CategoryTheory.Bicategory.Adj.iso₂Mk + def CategoryTheory.Bicategory.Adj.lIso + theorem CategoryTheory.Bicategory.Adj.mk_obj + def CategoryTheory.Bicategory.Adj.rIso + structure CategoryTheory.Bicategory.Adj 2025-06-25 09:23:08 eefa54b chore(Data/Fin/Basic): split off Embedding definitions for Fin (#26260) This PR addresses Tech debt by splitting of embedding-related definitions from Fin.Basic ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Data/Fin/Basic.lean - def Fin.addNatEmb - def Fin.castAddEmb - theorem Fin.castAddEmb_apply - def Fin.castLEEmb - def Fin.castSuccEmb - theorem Fin.castSuccEmb_apply - theorem Fin.coe_castAddEmb - theorem Fin.coe_castLEEmb - theorem Fin.coe_castSuccEmb - theorem Fin.coe_succAboveEmb - theorem Fin.coe_succEmb - theorem Fin.equivSubtype_symm_trans_valEmbedding - theorem Fin.equiv_iff_eq - def Fin.natAddEmb - theorem Fin.nonempty_embedding_iff - def Fin.succAboveEmb - def Fin.succEmb - def Fin.valEmbedding Added Mathlib/Data/Fin/Embedding.lean + def Fin.addNatEmb + def Fin.castAddEmb + theorem Fin.castAddEmb_apply + def Fin.castLEEmb + def Fin.castSuccEmb + theorem Fin.castSuccEmb_apply + theorem Fin.coe_castAddEmb + theorem Fin.coe_castLEEmb + theorem Fin.coe_castSuccEmb + theorem Fin.coe_succAboveEmb + theorem Fin.coe_succEmb + theorem Fin.equivSubtype_symm_trans_valEmbedding + theorem Fin.equiv_iff_eq + def Fin.natAddEmb + theorem Fin.nonempty_embedding_iff + def Fin.succAboveEmb + def Fin.succEmb + def Fin.valEmbedding Modified Mathlib/Data/Finset/Fin.lean Modified Mathlib/Order/Fin/Basic.lean 2025-06-25 09:13:53 04af571 feat: Finsupp.degree_eq_sum (#26312) ESTIMATED CHANGES Modified Mathlib/Data/Finsupp/Weight.lean + theorem Finsupp.degree_eq_sum 2025-06-25 01:28:40 c5b9dbc fix: make one defeq check in `fun_prop` at reducible transparency (#26244) `fun_prop` was running one defeq check at default transparency which led to defeq abuse. ESTIMATED CHANGES Modified Mathlib/Tactic/FunProp/FunctionData.lean Modified MathlibTest/fun_prop_dev.lean + def fst + def snd 2025-06-25 01:16:11 e2c0db0 Revert "chore(CI): test building tools when their source code changes… (#26379) … (#26294)" This reverts commit e38c43e8578287afab637615abdb82f54376d49c. This is currently causing build errors and blocking bors on some PRs: cf. https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/CI.20errors.20in.20.22build.20pr-branch.20tools.22.20step ESTIMATED CHANGES Modified .github/build.in.yml Modified .github/workflows/bors.yml Modified .github/workflows/build.yml Modified .github/workflows/build_fork.yml 2025-06-24 23:05:19 1b03e7b feat(Algebra/Order): more general version of `abs_qsmul` (#26179) This generalize `abs_qsmul` to any module with linearly ordered coefficient ring & `PosSMulMono`. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Order/Module/Basic.lean + theorem abs_smul Modified Mathlib/Algebra/Order/Module/Rat.lean +/- theorem abs_qsmul 2025-06-24 19:51:30 97a13d0 feat(Analysis/Complex): lemmas involving complex numbers and `IsSelfAdjoint` (#26034) This PR adds several lemmas related to `Complex` and `RCLike`, mostly involving self-adjoint elements and the order on complex numbers. This brings the API a bit closer to the style of the CFC API. See #25636 for the original PR. ESTIMATED CHANGES Modified Mathlib/Analysis/Complex/Basic.lean + theorem Complex.im_eq_zero_iff_isSelfAdjoint + theorem Complex.norm_of_nonneg' + theorem Complex.ofReal_eq_re_of_isSelfAdjoint + theorem Complex.re_eq_ofReal_of_isSelfAdjoint + theorem Complex.re_le_re + theorem Complex.re_nonneg_iff_nonneg + theorem RCLike.ofReal_eq_complex_ofReal Modified Mathlib/Analysis/RCLike/Basic.lean + theorem RCLike.im_eq_zero_iff_isSelfAdjoint + theorem RCLike.im_le_neg_norm_iff_eq_neg_I_mul_norm +/- theorem RCLike.is_real_TFAE + theorem RCLike.norm_le_im_iff_eq_I_mul_norm + theorem RCLike.norm_le_re_iff_eq_norm + theorem RCLike.norm_of_nonneg' + theorem RCLike.ofReal_eq_re_of_isSelfAdjoint + theorem RCLike.re_eq_ofReal_of_isSelfAdjoint + theorem RCLike.re_le_neg_norm_iff_eq_neg_norm + theorem RCLike.re_le_re + theorem RCLike.re_monotone + theorem RCLike.re_nonneg_of_nonneg 2025-06-24 17:48:57 ef66ab5 feat(Algebra/Lie/Ideal): add `comap_incl_eq_top` and `comap_incl_eq_bot` (#26126) This provides analogues of the theorem `LieSubmodule.comap_incl_eq_top` and `LieSubmodule.comap_incl_eq_bot` for Lie ideals. Co-authored by: Viviana del Barco, Gustavo Infanti, Exequiel Rivas ESTIMATED CHANGES Modified Mathlib/Algebra/Lie/Ideal.lean + theorem LieIdeal.comap_incl_eq_bot + theorem LieIdeal.comap_incl_eq_top 2025-06-24 15:28:47 1dd7c68 chore: add ContinuousLinearEquiv.prodAssoc (#26082) This PR continues the work from #25522. Original PR: https://github.com/leanprover-community/mathlib4/pull/25522 ESTIMATED CHANGES Modified Mathlib/Topology/Algebra/Module/Equiv.lean + theorem ContinuousLinearEquiv.coe_prodAssoc + def ContinuousLinearEquiv.prodAssoc + theorem ContinuousLinearEquiv.prodAssoc_apply + theorem ContinuousLinearEquiv.prodAssoc_symm_apply + theorem ContinuousLinearEquiv.prodAssoc_toLinearEquiv 2025-06-24 15:20:23 e2f31a0 fix: update link for nightly-testing update message to point to the fork (#26363) Updates the github actions for nightly testing to use `[nightly-testing branch](https://github.com/leanprover-community/mathlib4-nightly-testing/tree/nightly-testing)` ([nightly-testing branch](https://github.com/leanprover-community/mathlib4-nightly-testing/tree/nightly-testing)) instead of [branch#nighly-testing](https://github.com/leanprover-community/mathlib4/tree/nighly-testing) which is a dead link. ESTIMATED CHANGES Modified .github/workflows/nightly_detect_failure.yml 2025-06-24 15:10:43 4b92dd8 feat: add lemma `mdifferentiableAt_totalSpace` (#26360) ESTIMATED CHANGES Modified Mathlib/Geometry/Manifold/VectorBundle/MDifferentiable.lean + theorem mdifferentiableAt_totalSpace 2025-06-24 15:10:41 bd0178c fix: remove unused `DecidableEq` arguments (#26352) One proof needed this, but should have used `classical` instead. This propagated to huge swathes of API. ESTIMATED CHANGES Modified Mathlib/RepresentationTheory/Homological/GroupCohomology/Basic.lean +/- def groupCohomology.inhomogeneousCochainsIso +/- def groupCohomology +/- theorem groupCohomology_induction_on Modified Mathlib/RepresentationTheory/Homological/GroupCohomology/Functoriality.lean +/- theorem groupCohomology.cochainsMap_comp +/- theorem groupCohomology.cocyclesMap_comp +/- theorem groupCohomology.map_comp Modified Mathlib/RepresentationTheory/Homological/GroupCohomology/Hilbert90.lean Modified Mathlib/RepresentationTheory/Homological/GroupCohomology/LowDegree.lean 2025-06-24 14:33:29 cbb65ee docs(Algebra/Groups/Subgroups/Defs): changed N to H (#26359) Improved doc ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Subgroup/Defs.lean 2025-06-24 13:20:42 e268a25 feat: continuous Riemannian vector bundles (#26197) Given a vector bundle over a manifold whose fibers are all endowed with a scalar product, we say that this bundle is Riemannian if the scalar product depends continuously on the base point. We introduce a typeclass `[IsContinuousRiemannianBundle F E]` registering this property. Under this assumption, we show that the scalar product of two continuous maps into the same fibers of the bundle is a continuous function. If one wants to endow an existing vector bundle with a Riemannian metric, there is a subtlety: the inner product space structure on the fibers should give rise to a topology on the fibers which is defeq to the original one, to avoid diamonds. To do this, we introduce a class `[RiemannianBundle E]` containing the data of a scalar product on the fibers defining the same topology as the original one. Given this class, we can construct `NormedAddCommGroup` and `InnerProductSpace` instances on the fibers, compatible in a defeq way with the initial topology. If the data used to register the instance `RiemannianBundle E` depends continuously on the base point, we register automatically an instance of `[IsContinuousRiemannianBundle F E]` (and similarly if the data is smooth). The general theory should be built assuming `[IsContinuousRiemannianBundle F E]`, while the `[RiemannianBundle E]` mechanism is only to build data in specific situations. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Analysis/InnerProductSpace/Defs.lean +/- def InnerProductSpace.Core.toNormedAddCommGroupOfTopology +/- def InnerProductSpace.Core.toNormedSpaceOfTopology Modified Mathlib/Analysis/NormedSpace/OperatorNorm/NormedSpace.lean Added Mathlib/Topology/VectorBundle/Riemannian.lean + def Bundle.ContinuousRiemannianMetric.toRiemannianMetric + structure Bundle.ContinuousRiemannianMetric + structure Bundle.RiemannianMetric + theorem Continuous.inner_bundle + theorem ContinuousAt.inner_bundle + theorem ContinuousOn.inner_bundle + theorem ContinuousWithinAt.inner_bundle 2025-06-24 11:51:17 87e776f feat: define `continuousCohomology` (#25020) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Category/ContinuousCohomology/Basic.lean + def ContinuousCohomology.I + theorem ContinuousCohomology.Iobj_ρ_apply + def ContinuousCohomology.MultiInd.complex + def ContinuousCohomology.MultiInd.d + theorem ContinuousCohomology.MultiInd.d_comp_d + theorem ContinuousCohomology.MultiInd.d_succ + theorem ContinuousCohomology.MultiInd.d_zero + def ContinuousCohomology.MultiInd.functor + def ContinuousCohomology.const + def ContinuousCohomology.continuousCohomologyZeroIso + def ContinuousCohomology.homogeneousCochains + def ContinuousCohomology.invariants + def ContinuousCohomology.kerHomogeneousCochainsZeroEquiv + def continuousCohomology Modified Mathlib/Algebra/Homology/Embedding/Basic.lean + def ComplexShape.embeddingDown'Add + def ComplexShape.embeddingUp'Add Modified Mathlib/Algebra/Homology/Embedding/Restriction.lean + def ComplexShape.Embedding.restrictionFunctor Modified Mathlib/CategoryTheory/Limits/Preserves/Shapes/Zero.lean + theorem CategoryTheory.Functor.whiskerRight_zero 2025-06-24 10:56:32 367d0c6 refactor: move the definition of `IsRegular` earlier (#26321) The motivation here is to be able to define things like `IsCancelMulZero` in terms of `IsRegular`, which would allow API for the latter to be used to provide instances for the former. As a first step, this moves the `MulZeroClass` lemmas abut `IsRegular` into the `GroupWithZero` folder, which is consistent with the ring lemmas living inside the `Ring` folder. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/GroupWithZero/Regular.lean + theorem IsLeftRegular.mul_left_eq_zero_iff + theorem IsLeftRegular.ne_zero + theorem IsLeftRegular.subsingleton + theorem IsRegular.ne_zero + theorem IsRegular.subsingleton + theorem IsRightRegular.mul_right_eq_zero_iff + theorem IsRightRegular.ne_zero + theorem IsRightRegular.subsingleton + theorem isLeftRegular_zero_iff_subsingleton + theorem isRegular_iff_ne_zero + theorem isRegular_iff_subsingleton + theorem isRegular_of_ne_zero + theorem isRightRegular_zero_iff_subsingleton + theorem not_isLeftRegular_zero + theorem not_isLeftRegular_zero_iff + theorem not_isRegular_zero + theorem not_isRightRegular_zero + theorem not_isRightRegular_zero_iff Modified Mathlib/Algebra/Order/AbsoluteValue/Basic.lean Modified Mathlib/Algebra/Order/Monoid/Unbundled/Basic.lean Modified Mathlib/Algebra/Order/Star/Basic.lean Modified Mathlib/Algebra/Polynomial/Degree/Operations.lean Modified Mathlib/Algebra/Regular/Basic.lean - theorem IsLeftRegular.mul_left_eq_zero_iff - theorem IsLeftRegular.ne_zero - theorem IsLeftRegular.subsingleton - theorem IsRegular.ne_zero - theorem IsRegular.subsingleton - theorem IsRightRegular.mul_right_eq_zero_iff - theorem IsRightRegular.ne_zero - theorem IsRightRegular.subsingleton - theorem isLeftRegular_zero_iff_subsingleton - theorem isRegular_iff_ne_zero - theorem isRegular_iff_subsingleton - theorem isRegular_of_ne_zero - theorem isRightRegular_zero_iff_subsingleton - theorem not_isLeftRegular_zero - theorem not_isLeftRegular_zero_iff - theorem not_isRegular_zero - theorem not_isRightRegular_zero - theorem not_isRightRegular_zero_iff Modified Mathlib/Algebra/Ring/Regular.lean Modified Mathlib/RingTheory/HahnSeries/Multiplication.lean 2025-06-24 07:54:23 edf2cbe feat: change of variables formula in integrals for monotone functions (#26198) The good change of variables formula in integrals we have is for injective functions (in any dimension). In this PR, we show that the same formula holds for monotone functions (which are not necessarily injective) by reducing to the previous theorem. ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Function/JacobianOneDim.lean + theorem MeasureTheory.exists_decomposition_of_monotoneOn_hasDerivWithinAt + theorem MeasureTheory.integrableOn_image_iff_integrableOn_deriv_smul_of_antitoneOn + theorem MeasureTheory.integrableOn_image_iff_integrableOn_deriv_smul_of_monotoneOn + theorem MeasureTheory.integral_image_eq_integral_deriv_smul_of_antitone + theorem MeasureTheory.integral_image_eq_integral_deriv_smul_of_monotoneOn + theorem MeasureTheory.lintegral_deriv_eq_volume_image_of_antitoneOn + theorem MeasureTheory.lintegral_deriv_eq_volume_image_of_monotoneOn + theorem MeasureTheory.lintegral_image_eq_lintegral_deriv_mul_of_antitoneOn + theorem MeasureTheory.lintegral_image_eq_lintegral_deriv_mul_of_monotoneOn 2025-06-24 06:33:31 e38c43e chore(CI): test building tools when their source code changes (#26294) Add conditional build step that detects changes to tool source files (Cache/, scripts/*.lean, Shake/, LongestPole/, MathlibTest/) and builds only the affected tools from the PR branch to catch compilation errors early. Uses dorny/paths-filter for efficient change detection and builds tools individually for clearer error messages. ESTIMATED CHANGES Modified .github/build.in.yml Modified .github/workflows/bors.yml Modified .github/workflows/build.yml Modified .github/workflows/build_fork.yml 2025-06-24 06:21:05 b3e5f69 chore: upload archive and counterexample caches correctly (#26335) This was missed in #26233. ESTIMATED CHANGES Modified .github/build.in.yml Modified .github/workflows/bors.yml Modified .github/workflows/build.yml Modified .github/workflows/build_fork.yml 2025-06-24 05:03:16 017bebe chore: update Mathlib dependencies 2025-06-24 (#26333) This PR updates the Mathlib dependencies. ESTIMATED CHANGES Modified lake-manifest.json 2025-06-24 04:54:53 9099e67 feat: cache uses the nightly-testing cache when relevant (#26334) This PR change the behaviour of `cache` so that it will look for oleans from the `mathlib4-nightly-testing` fork when working on `nightly-testing` and related branches. Moreover, it checks this cache ahead of the central one, as usually there is no overlap. ESTIMATED CHANGES Modified Cache/Requests.lean + structure Cache.Requests.RepoInfo + def Cache.Requests.extractRepoFromUrl +/- def Cache.Requests.getRemoteRepo + def Cache.Requests.getRepoFromRemote 2025-06-24 02:26:39 a119fcb feat: small API lemma about ContinuousMap[Zero].mkD (#26250) ESTIMATED CHANGES Modified Mathlib/Topology/ContinuousMap/Basic.lean + theorem ContinuousMap.mkD_eq_self Modified Mathlib/Topology/ContinuousMap/ContinuousMapZero.lean + theorem ContinuousMapZero.mkD_eq_self 2025-06-24 02:04:55 20584e8 feat: `norm_num` plugin for `Nat.clog` (#26317) ESTIMATED CHANGES Modified Mathlib/Tactic/NormNum/NatLog.lean + def Mathlib.Meta.NormNum.evalNatClog + theorem Mathlib.Meta.NormNum.nat_clog_helper + def Mathlib.Meta.NormNum.proveNatClog Modified MathlibTest/norm_num_ext.lean 2025-06-23 21:11:28 108ee02 fix(maintainer_merge_wf_run.yml): add missing AUTHOR env var (#26324) Follow-up to #26288 and #26323. ESTIMATED CHANGES Modified .github/workflows/maintainer_merge_wf_run.yml 2025-06-23 20:37:12 f2e9b91 fix(maintainer_*_wf_run.yml): correct syntax for multiline strings (#26323) Follow-up to #26288. ESTIMATED CHANGES Modified .github/workflows/maintainer_bors_wf_run.yml Modified .github/workflows/maintainer_merge_wf_run.yml 2025-06-23 20:05:59 8eb1f2f chore: rewrite maintainer_*.yml to work from forks (#26288) In #25675, the `maintainer_merge.yml` and `maintainer_bors.yml` workflows were partially disabled for PRs from forks because workflows triggered by `pull_request_review` and `pull_request_review_comment` for PRs from forks do not get access to secrets. Here we add back that functionality as follows: - If the workflow does not have access to secrets, we upload the necessary data to a workflow artifact, and then skip the rest of the steps - (If the workflow does have access to secrets, the behavior should be unchanged.) - We add new downstream workflow `maintainer_[merge/bors]_wf_run.yml` which triggers on completion of the original workflow via `workflow_run` (inspired by #25649) - If the artifact exists, we download and extract the data from it - then use the data to carry out the steps we were unable to before. - This is possible because `workflow_run` workflows have access to secrets. It might be cleaner to have all paths go through the second workflow, however I decided to try to leave as much of the original code alone as possible. Also, changing to always do the main steps in another workflow run would also slow down the labeling in the cases that already work. ESTIMATED CHANGES Modified .github/workflows/maintainer_bors.yml Added .github/workflows/maintainer_bors_wf_run.yml Modified .github/workflows/maintainer_merge.yml Added .github/workflows/maintainer_merge_wf_run.yml 2025-06-23 17:18:19 c9a1569 refactor(MeasureTheory/PMF): Removing `MasurableSet` hypotheses (#26230) This commit introduces the following generalizations: - `toMeasure_mono` no longer requires the target set `t` to be measurable. - `toMeasure_apply_inter_support` no longer requires `p.support` to be measurable. - `restrict_toMeasure_support` no longer requires a `[MeasurableSingletonClass α]` instance. In the `[MeasurableSingletonClass α]` context, a new lemma `toMeasure_apply_eq_toOuterMeasure` is added. It shows that `p.toMeasure s = p.toOuterMeasure s` for *any* set `s`. This lemma is then used to shorten the proofs for: - `toMeasure_apply_finset` - `toMeasure_apply_fintype` A new lemma `toMeasure_apply_eq_tsum` replaces `toMeasure_apply_of_finite`, since the finite assumption is no longer required. Additionally, as suggested during review, the argument `s : Set α` is now implicit in several lemmas, as it is inferable from the `hs : MeasurableSet s` hypothesis. ESTIMATED CHANGES Modified Mathlib/Probability/Distributions/Uniform.lean Modified Mathlib/Probability/ProbabilityMassFunction/Basic.lean +/- theorem PMF.restrict_toMeasure_support +/- theorem PMF.toMeasure_apply_eq_of_inter_support_eq + theorem PMF.toMeasure_apply_eq_toOuterMeasure + theorem PMF.toMeasure_apply_eq_tsum +/- theorem PMF.toMeasure_apply_fintype +/- theorem PMF.toMeasure_apply_inter_support - theorem PMF.toMeasure_apply_of_finite +/- theorem PMF.toMeasure_mono +/- theorem PMF.toOuterMeasure_apply_le_toMeasure_apply Modified Mathlib/Probability/ProbabilityMassFunction/Constructions.lean Modified Mathlib/Probability/ProbabilityMassFunction/Monad.lean 2025-06-23 17:18:17 c31e1e1 refactor(RingTheory/Ideal/Colon): generalize `Ideal.mem_colon_singleton` (#25850) This PR generalizes a bit the assumptions of `Ideal.mem_colon_singleton`, changing `CommRing R` and `AddCommGroup M` to `CommSemiring R` and `AddCommMonoid R`. It also removes some unused variables from `Mathlib/RingTheory/Ideal/Colon.lean`. ESTIMATED CHANGES Modified Mathlib/RingTheory/Ideal/Colon.lean +/- theorem Submodule.annihilator_quotient +/- theorem Submodule.mem_colon_singleton 2025-06-23 16:55:25 285bbd0 chore: update Mathlib dependencies 2025-06-23 (#26311) This PR updates the Mathlib dependencies. ESTIMATED CHANGES Modified lake-manifest.json 2025-06-23 16:43:29 338ea15 feat: `lake exe cache` correctly detects fork from PR source (#25895) This attempts to use the correct repository specific cache when we have checked out someone else's branch. ESTIMATED CHANGES Modified Cache/Requests.lean + def Cache.Requests.findMathlibRemote 2025-06-23 15:53:41 464bf24 feat: unit space of a (locally) compact T1 monoid is (locally) compact (#26153) This PR continues the work from #25235. Original PR: https://github.com/leanprover-community/mathlib4/pull/25235 ESTIMATED CHANGES Modified Mathlib/Topology/Algebra/Constructions.lean Modified Mathlib/Topology/Algebra/Group/Basic.lean + theorem Submonoid.units_isCompact + theorem Units.isClosedEmbedding_embedProduct + theorem Units.range_embedProduct 2025-06-23 14:57:03 f0f62b7 feat(NumberTheory/Cyclotomic/Basic): generalize some results for cyclotomic field (#26266) - generalize `IsCyclotomicExtension.neZero[']` to `IsCyclotomicExtension.neZero_of_mem[']` which states that any non-zero element in `S` is non-zero in the ring - generalize `IsCyclotomicExtension.integral` to any ring, without Noetherian and finiteness of `S` - add `IsCyclotomicExtension.isSeparable` that any cyclotomic extension is separable - add `IsCyclotomicExtension.nonempty_algEquiv_adjoin_of_(isSepClosed|exists_isPrimitiveRoot)` that any cyclotomic extension is isomorphic to a field extension adjoin roots of unity - add `(Algebra|IntermediateField).isCyclotomicExtension_adjoin_of_exists_isPrimitiveRoot` that an algebra or field extension adjoin roots of unity is cyclotomic - generalize `IsCyclotomicExtension.isGalois` to any cyclotomic extension - generalize `IsCyclotomicExtension.algEquiv` to any cyclotomic extension - remove duplicated instance `CyclotomicField.algebra'` (was different in mathlib3, but becomes the same in mathlib4) - generalize some results from `IsAlgClosed` to `IsSepClosed` - add a missing instance `SeparableClosure.isSepClosed` - add some more instances for `HasEnoughRootsOfUnity` ESTIMATED CHANGES Modified Mathlib/FieldTheory/SeparableClosure.lean Modified Mathlib/NumberTheory/Cyclotomic/Basic.lean + theorem Algebra.isCyclotomicExtension_adjoin_of_exists_isPrimitiveRoot + theorem IntermediateField.isCyclotomicExtension_adjoin_of_exists_isPrimitiveRoot - theorem IsAlgClosed.isCyclotomicExtension - def IsCyclotomicExtension.algEquiv +/- theorem IsCyclotomicExtension.integral +/- theorem IsCyclotomicExtension.isGalois + theorem IsCyclotomicExtension.isSeparable +/- theorem IsCyclotomicExtension.neZero' +/- theorem IsCyclotomicExtension.neZero + theorem IsCyclotomicExtension.neZero_of_mem' + theorem IsCyclotomicExtension.neZero_of_mem + theorem IsCyclotomicExtension.nonempty_algEquiv_adjoin_of_exists_isPrimitiveRoot + theorem IsCyclotomicExtension.nonempty_algEquiv_adjoin_of_isSepClosed + theorem IsSepClosed.isCyclotomicExtension + theorem Polynomial.separable_cyclotomic Modified Mathlib/NumberTheory/Cyclotomic/Discriminant.lean Modified Mathlib/NumberTheory/Cyclotomic/PrimitiveRoots.lean Modified Mathlib/NumberTheory/LegendreSymbol/AddCharacter.lean Modified Mathlib/RingTheory/RootsOfUnity/AlgebraicallyClosed.lean 2025-06-23 14:42:28 f355283 feat: a measurable space structure on `WithLp` (#26249) Put a measurable space structure on a general `WithLp`. Define a `MeasurableEquiv` version of `WithLp.equiv`. The direction is reversed in prevision of the `WithLp` refactor in #24261. Define a `BorelSpace` instance. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/Normed/Lp/MeasurableSpace.lean + theorem MeasurableEquiv.coe_toLp + theorem MeasurableEquiv.coe_toLp_symm + theorem MeasurableEquiv.toLp_apply + theorem MeasurableEquiv.toLp_symm_apply + theorem WithLp.measurable_equiv + theorem WithLp.measurable_equiv_symm 2025-06-23 14:05:09 1280816 feat: IMO 1985 Q2 (#25783) ESTIMATED CHANGES Modified Archive.lean Added Archive/Imo/Imo1985Q2.lean + theorem Imo1985Q2.C_mul_mod + def Imo1985Q2.Condition + theorem Imo1985Q2.result Modified Mathlib.lean Modified Mathlib/Data/Int/AbsoluteValue.lean - def Int.natAbsHom Added Mathlib/Data/Int/NatAbs.lean + def Int.natAbsHom + theorem Int.natAbs_natCast_sub_natCast_of_ge + theorem Int.natAbs_natCast_sub_natCast_of_le Modified Mathlib/Data/Nat/ModEq.lean + theorem Nat.mod_sub_of_le Modified Mathlib/LinearAlgebra/FreeModule/Finite/CardQuotient.lean 2025-06-23 13:31:10 ddf91f1 feat: topology on `PiLp` (#26261) Add a topology on `PiLp`, along with a `CompleteSpace` instance. ESTIMATED CHANGES Modified Mathlib/Analysis/Normed/Lp/PiLp.lean +/- theorem PiLp.continuous_equiv +/- theorem PiLp.continuous_equiv_symm Modified Mathlib/Analysis/Normed/Lp/ProdLp.lean 2025-06-23 13:22:40 8af5157 chore: move all nightly-testing infrastructure to a fork (#26286) This PR moves all of our nightly-testing infrastructure to the fork at https://github.com/leanprover-community/mathlib4-nightly-testing. I have migrated all the relevant branches (nightly-testing, nightly-testing-YYYY-MM-DD, lean-pr-testing-NNNN, batteries-pr-testing-NNNN, bump/v4.X.0, bump/nightly-YYYY-MM-DD) across to the fork, but not yet deleted them from the main repository. I've installed what I think are the necessary secrets (discussed in the CI admins channel). This is presumably going to be horribly broken... Some parts are generated with some AI assistance, but I've tried to read carefully! In any case, skeptical review appreciated, but we're probably going to have to do a certain amount of testing in production as usual. ESTIMATED CHANGES Modified .github/build.in.yml Modified .github/workflows/bors.yml Modified .github/workflows/build.yml Modified .github/workflows/build_fork.yml Modified .github/workflows/daily.yml Modified .github/workflows/discover-lean-pr-testing.yml Modified .github/workflows/mk_build_yml.sh Modified .github/workflows/nightly_bump_toolchain.yml Modified .github/workflows/nightly_detect_failure.yml Modified .github/workflows/nightly_merge_master.yml Modified scripts/create-adaptation-pr.sh Modified scripts/lean-pr-testing-comments.sh 2025-06-23 13:09:54 9cc0d15 feat: lemmas about orthonormal bases (#26276) Write the inner product of two elements of an orthonormal basis as an if-then-else. Write the formula for the square norm in a real inner product space with an orthonormal basis to drop the norm around the inner product. ESTIMATED CHANGES Modified Mathlib/Analysis/InnerProductSpace/PiL2.lean + theorem OrthonormalBasis.inner_eq_ite + theorem OrthonormalBasis.inner_eq_one + theorem OrthonormalBasis.sum_sq_inner_left + theorem OrthonormalBasis.sum_sq_inner_right - theorem OrthonormalBasis.sum_sq_norm_inner + theorem OrthonormalBasis.sum_sq_norm_inner_left + theorem OrthonormalBasis.sum_sq_norm_inner_right 2025-06-23 11:31:31 f609d63 feat(Probability): sum of sub-Gaussian random variables is sub-Gaussian (#26164) This PR continues the work from #25620. Original PR: https://github.com/leanprover-community/mathlib4/pull/25620 ESTIMATED CHANGES Modified Mathlib/Probability/Kernel/Composition/MeasureComp.lean + theorem MeasureTheory.Measure.ae_comp_iff + theorem MeasureTheory.Measure.ae_comp_of_ae_ae Modified Mathlib/Probability/Moments/SubGaussian.lean + theorem ProbabilityTheory.HasSubgaussianMGF.add + theorem ProbabilityTheory.HasSubgaussianMGF.ae_eq_zero_of_hasSubgaussianMGF_zero + theorem ProbabilityTheory.HasSubgaussianMGF.neg + theorem ProbabilityTheory.Kernel.HasSubgaussianMGF.add + theorem ProbabilityTheory.Kernel.HasSubgaussianMGF.ae_eq_zero_of_hasSubgaussianMGF_zero' + theorem ProbabilityTheory.Kernel.HasSubgaussianMGF.ae_eq_zero_of_hasSubgaussianMGF_zero + theorem ProbabilityTheory.Kernel.HasSubgaussianMGF.ae_eq_zero_of_hasSubgaussianMGF_zero_of_measurable + theorem ProbabilityTheory.Kernel.HasSubgaussianMGF.ae_forall_memLp_exp_mul + theorem ProbabilityTheory.Kernel.HasSubgaussianMGF.measure_pos_eq_zero_of_hasSubGaussianMGF_zero + theorem ProbabilityTheory.Kernel.HasSubgaussianMGF.neg 2025-06-23 10:32:25 ee5b18c chore(Tactic/ToAdditive): remove deprecated `to_additive_reorder` syntax (#26017) The current syntax is `to_additive (reorder := ...)` ESTIMATED CHANGES Modified Mathlib/Tactic/ToAdditive/Frontend.lean 2025-06-23 09:10:00 8425daf feat: first main theorem of value distribution theory (#26093) The First Main Theorem of Value Distribution Theory is a two-part statement, establishing invariance of the characteristic function `characteristic f ⊤` under modifications of `f`. This PR implements the second half of the first main theorem. The first half, which is the more substantial part of the statement, will come in a later PR. This material is used in [Project VD](https://github.com/kebekus/ProjectVD), which aims to formalize Value Distribution Theory for meromorphic functions on the complex plane. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/Complex/ValueDistribution/FirstMainTheorem.lean + theorem ValueDistribution.abs_characteristic_sub_characteristic_shift_eqO + theorem ValueDistribution.abs_characteristic_sub_characteristic_shift_le Modified Mathlib/Analysis/Complex/ValueDistribution/ProximityFunction.lean + theorem ValueDistribution.proximity_sub_proximity_inv_eq_circleAverage Modified Mathlib/Analysis/SpecialFunctions/Log/PosLog.lean + theorem Real.posLog_norm_add_le Modified Mathlib/MeasureTheory/Integral/CircleAverage.lean + theorem Real.abs_circleAverage_le_circleAverage_abs + theorem Real.circleAverage_const + theorem Real.circleAverage_const_on_circle + theorem Real.circleAverage_mono_on_of_le_circle + theorem Real.circleAverage_sub Modified Mathlib/MeasureTheory/Integral/CircleIntegral.lean + theorem CircleIntegrable.abs 2025-06-23 08:19:40 df94cc8 feat(Analysis/Normed/Operator): continuity of forming ContinuousLinearMap coproducts pointwise (#26273) `Continuous(|On).clm_coprod` shows that the pointwise coproduct of two continuous functions valued in a `ContinuousLinearMap` is itself continuous. ESTIMATED CHANGES Modified Mathlib/Analysis/Normed/Operator/BoundedLinearMaps.lean + theorem Continuous.continuousLinearMapCoprod + theorem ContinuousOn.continuousLinearMapCoprod 2025-06-23 08:19:38 1ad3b0e chore(Topology/Algebra/Semigroup): reduce import (#26257) This was found by shake in the testing branch #26253 ESTIMATED CHANGES Modified Mathlib/Topology/Algebra/Semigroup.lean 2025-06-23 08:19:37 b38e0af chore: fix WithLp defeq abuse (#26248) The lemma [WithLp.prod_inner_apply](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Analysis/InnerProductSpace/ProdL2.html#WithLp.prod_inner_apply) contained `x.1` with `x : WithLp 2 (E × F)`. Replace it with `(WithLp.equiv 2 (E × F) x).fst`. ESTIMATED CHANGES Modified Mathlib/Analysis/InnerProductSpace/ProdL2.lean 2025-06-23 08:19:36 ee285be feat(RingTheory): IsPrime.one_notMem (#26203) ESTIMATED CHANGES Modified Mathlib/RingTheory/Ideal/Prime.lean + theorem Ideal.IsPrime.one_notMem + theorem Ideal.one_notMem 2025-06-23 08:19:34 21f16b8 feat(FieldTheory/IntermediateField/Algebraic): Containment of intermediate fields implies divisibility of `finrank` (#26191) This PR proves divisibility and inequality of `finrank` from containment of intermediate fields. ESTIMATED CHANGES Modified Mathlib/FieldTheory/IntermediateField/Algebraic.lean + theorem IntermediateField.finrank_dvd_of_le_left + theorem IntermediateField.finrank_dvd_of_le_right + theorem IntermediateField.finrank_le_of_le_left + theorem IntermediateField.finrank_le_of_le_right 2025-06-23 08:19:33 5fbc6e5 feat(FieldTheory/Galois/IsGaloisGroup): Remove finiteness assumption from `card_eq_finrank` (#26187) This PR removes the finiteness assumption from `IsGaloisGroup.card_eq_finrank`. ESTIMATED CHANGES Modified Mathlib/FieldTheory/Galois/IsGaloisGroup.lean +/- theorem IsGaloisGroup.card_eq_finrank 2025-06-23 08:19:31 a7e0760 feat: T₁ iff T₀ and R₀ (#26064) ESTIMATED CHANGES Modified Mathlib/Topology/Separation/Basic.lean + theorem t1Space_iff_t0Space_and_r0Space + theorem t1Space_of_t0Space_of_r0Space 2025-06-23 08:19:30 761f9b5 feat(MeasureTheory/Decomposition): link the clipped sub of positive measures to Jordan decomposition (#23500) This introduces a new file `Mathlib/MeasureTheory/Decomposition/JordanSub.lean` which develops the Jordan decomposition of the signed measure `μ.toSignedMeasure - ν.toSignedMeasure` for finite measures `μ` and `ν`, expressing it as the pair `(μ - ν, ν - μ)` of mutually singular finite measures. The key tool is the Hahn decomposition theorem, which yields a measurable partition of the space where `μ ≥ ν` and `ν ≥ μ`. Some basic results of `VectorMeasure` are also provided such as `restrict_neg`, `restrict_sub` `restrict_add_restrict_compl` and `Measure.toSignedMeasure_le_iff` within the `JordanSub.lean` file. They could be moved to another more central place (I guess `VectorMeasure/Basic.lean`). Similarly, `Measure.sub_zero` could go to `Sub.lean`. [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/MeasureTheory/Measure/Decomposition/Hahn.lean + theorem MeasureTheory.IsHahnDecomposition.compl + structure MeasureTheory.IsHahnDecomposition + theorem MeasureTheory.exists_isHahnDecomposition Modified Mathlib/MeasureTheory/Measure/Sub.lean Modified Mathlib/MeasureTheory/VectorMeasure/Basic.lean + theorem MeasureTheory.Measure.toSignedMeasure_le_toSignedMeasure_iff + theorem MeasureTheory.Measure.toSignedMeasure_restrict_eq_restrict_toSignedMeasure + theorem MeasureTheory.VectorMeasure.restrict_add_restrict_compl + theorem MeasureTheory.VectorMeasure.restrict_neg + theorem MeasureTheory.VectorMeasure.restrict_sub Added Mathlib/MeasureTheory/VectorMeasure/Decomposition/JordanSub.lean + def MeasureTheory.Measure.jordanDecompositionOfToSignedMeasureSub + theorem MeasureTheory.Measure.jordanDecompositionOfToSignedMeasureSub_negPart + theorem MeasureTheory.Measure.jordanDecompositionOfToSignedMeasureSub_posPart + theorem MeasureTheory.Measure.jordanDecompositionOfToSignedMeasureSub_toSignedMeasure + theorem MeasureTheory.Measure.mutually_singular_measure_sub + theorem MeasureTheory.Measure.sub_apply_eq_zero_of_isHahnDecomposition + theorem MeasureTheory.Measure.sub_toSignedMeasure_eq_toSignedMeasure_sub + theorem MeasureTheory.Measure.toJordanDecomposition_toSignedMeasure_sub + theorem MeasureTheory.Measure.toSignedMeasure_restrict_sub 2025-06-23 07:20:47 f5e444c chore(Algebra): replace messy `simps!` with Aesop lemmas, add a test (#26127) * Replace messy `simps!` auto-generated lemma unfolding `.coe StarAlgebra.adjoin` with an Aesop lemma * Add analogous Aesop lemmas for the other `*Algebra.adjoin` operations * Add analogous Aesop test for `Algebra.adjoin` The `simps!` lemma I have removed was necessary for an Aesop test in `MathlibTest/set_like.lean` to pass. With these changes, the test passes 7x faster. I have added an analogous test for `Algebra.adjoin` - before this PR Aesop was unable to prove membership of `Algebra.adjoin`, even though it could prove membership of `StarAlgebra.adjoin` (thanks to the `simps!` lemma). I intend to add analogous Aesop lemmas for the other substructure closure operators in a subsequent PR (edit: #26162) PR split from #25961 ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/NonUnitalSubalgebra.lean + theorem NonUnitalAlgebra.mem_adjoin_of_mem Modified Mathlib/Algebra/Algebra/Subalgebra/Lattice.lean + theorem Algebra.mem_adjoin_of_mem Modified Mathlib/Algebra/Star/NonUnitalSubalgebra.lean + theorem NonUnitalStarAlgebra.mem_adjoin_of_mem Modified Mathlib/Algebra/Star/Subalgebra.lean + theorem StarAlgebra.mem_adjoin_of_mem Modified MathlibTest/set_like.lean 2025-06-23 00:07:15 7585da8 chore: correct link (#26278) ESTIMATED CHANGES Modified Mathlib/Data/Complex/Basic.lean 2025-06-22 22:27:32 dfe27eb style: rename `EventuallyMeasurableSpace` to `eventuallyMeasurableSpace` (#26232) `EventuallyMeasurableSpace` isn't a type name, so should be renamed to `eventuallyMeasurableSpace`. ESTIMATED CHANGES Modified Mathlib/MeasureTheory/MeasurableSpace/EventuallyMeasurable.lean +/- def EventuallyMeasurable - theorem EventuallyMeasurableSpace.measurable_le - def EventuallyMeasurableSpace + def eventuallyMeasurableSpace + theorem le_eventuallyMeasurableSpace Modified Mathlib/MeasureTheory/Measure/NullMeasurable.lean Modified Mathlib/Topology/Baire/BaireMeasurable.lean 2025-06-22 20:25:08 4f1603b feat(CategoryTheory/Monoidal/Action): monoidal right actions (#25840) We introduce the notion of a right action of a monoidal category `C` on a category `D`. This notion is formally conjugate to that of a left action introduced in #25761, and so are every results in this PR. Please refer to #25761 for a more detailed overview of the notion. The notion comes with its set of notations. We show basic simp lemmas for these objects, and we show that any monoidal category acts on the right on itself. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Monoidal/Action/Basic.lean + theorem CategoryTheory.MonoidalCategory.MonoidalRightAction.actionAssocIso_inv_naturality + def CategoryTheory.MonoidalCategory.MonoidalRightAction.actionAssocNatIso + theorem CategoryTheory.MonoidalCategory.MonoidalRightAction.actionHomLeft_tensor + theorem CategoryTheory.MonoidalCategory.MonoidalRightAction.actionHomRight_comp + theorem CategoryTheory.MonoidalCategory.MonoidalRightAction.actionHomRight_hom_inv' + theorem CategoryTheory.MonoidalCategory.MonoidalRightAction.actionHomRight_hom_inv + theorem CategoryTheory.MonoidalCategory.MonoidalRightAction.actionHomRight_inv_hom' + theorem CategoryTheory.MonoidalCategory.MonoidalRightAction.actionHomRight_inv_hom + theorem CategoryTheory.MonoidalCategory.MonoidalRightAction.actionHom_def' + theorem CategoryTheory.MonoidalCategory.MonoidalRightAction.actionHom_id + theorem CategoryTheory.MonoidalCategory.MonoidalRightAction.actionUnitIso_inv_naturality + def CategoryTheory.MonoidalCategory.MonoidalRightAction.actionUnitNatIso + theorem CategoryTheory.MonoidalCategory.MonoidalRightAction.action_actionHomRight + theorem CategoryTheory.MonoidalCategory.MonoidalRightAction.action_exchange + theorem CategoryTheory.MonoidalCategory.MonoidalRightAction.comp_actionHomLeft + def CategoryTheory.MonoidalCategory.MonoidalRightAction.curriedAction + theorem CategoryTheory.MonoidalCategory.MonoidalRightAction.hom_inv_actionHomLeft' + theorem CategoryTheory.MonoidalCategory.MonoidalRightAction.hom_inv_actionHomLeft + theorem CategoryTheory.MonoidalCategory.MonoidalRightAction.id_actionHom + theorem CategoryTheory.MonoidalCategory.MonoidalRightAction.inv_actionHom + theorem CategoryTheory.MonoidalCategory.MonoidalRightAction.inv_actionHomLeft + theorem CategoryTheory.MonoidalCategory.MonoidalRightAction.inv_actionHomRight + theorem CategoryTheory.MonoidalCategory.MonoidalRightAction.inv_hom_actionHomLeft' + theorem CategoryTheory.MonoidalCategory.MonoidalRightAction.inv_hom_actionHomLeft + theorem CategoryTheory.MonoidalCategory.MonoidalRightAction.unit_actionHomRight 2025-06-22 20:09:37 f29580d refactor: deprecate module `BooleanAlgebra.lean` (#26275) Add back `BooleanAlgebra.lean` that imports both `BooleanAlgebra/Defs.lean` and `BooleanAlgebra/Basic.lean` and deprecates the module. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Order/BooleanAlgebra.lean 2025-06-22 16:54:05 ffbf9db feat(CategoryTheory/Functor/KanExtension): preservations of Kan extensions (#25753) Introduce a typeclass `G.PreservesLeftKanExtension F L` that asserts that a functor `G` preserves the left Kan extension of `F` along a functor `L`. Introduce a pointwise variant, and relate it to the non-pointwise version when pointwise extensions exist. Show that a functor that preserves the relevant colimits preserve pointwise left Kan extensions. Construct isomorphisms `L.leftKanExtension F ⋙ G ≅ L.leftKanExtension (F ⋙ G)` when `G.PreservesLeftKanExtension F L` holds. Also construct a functorial version, as an isomorphism `L.lan ⋙ (whiskeringRight _ _ _).obj G ≅ (whiskeringRight _ _ _).obj G ⋙ L.lan`. All results are dualised to right Kan extensions. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/CategoryTheory/Functor/KanExtension/Basic.lean + def CategoryTheory.Functor.LeftExtension.postcompose₂ + def CategoryTheory.Functor.LeftExtension.postcompose₂ObjMkIso + def CategoryTheory.Functor.RightExtension.postcompose₂ + def CategoryTheory.Functor.RightExtension.postcompose₂ObjMkIso Added Mathlib/CategoryTheory/Functor/KanExtension/Preserves.lean + def CategoryTheory.Functor.LeftExtension.IsPointwiseLeftKanExtension.postcompose + def CategoryTheory.Functor.LeftExtension.IsPointwiseLeftKanExtensionAt.postcompose + def CategoryTheory.Functor.LeftExtension.coconeAtWhiskerRightIso + theorem CategoryTheory.Functor.PreservesLeftKanExtension.mk' + theorem CategoryTheory.Functor.PreservesLeftKanExtension.mk_of_preserves_isLeftKanExtension + theorem CategoryTheory.Functor.PreservesLeftKanExtension.mk_of_preserves_isUniversal + theorem CategoryTheory.Functor.PreservesPointwiseLeftKanExtensionAt.mk' + theorem CategoryTheory.Functor.PreservesPointwiseRightKanExtensionAt.mk' + theorem CategoryTheory.Functor.PreservesRightKanExtension.mk' + theorem CategoryTheory.Functor.PreservesRightKanExtension.mk_of_preserves_isRightKanExtension + theorem CategoryTheory.Functor.PreservesRightKanExtension.mk_of_preserves_isUniversal + def CategoryTheory.Functor.RightExtension.IsPointwiseRightKanExtension.postcompose + def CategoryTheory.Functor.RightExtension.IsPointwiseRightKanExtensionAt.postcompose + def CategoryTheory.Functor.RightExtension.coneAtWhiskerRightIso + def CategoryTheory.Functor.lanCompIsoOfPreserves + def CategoryTheory.Functor.leftKanExtensionCompIsoOfPreserves + theorem CategoryTheory.Functor.leftKanExtensionCompIsoOfPreserves_hom_fac + theorem CategoryTheory.Functor.leftKanExtensionCompIsoOfPreserves_hom_fac_app + theorem CategoryTheory.Functor.leftKanExtensionCompIsoOfPreserves_inv_fac + theorem CategoryTheory.Functor.leftKanExtensionCompIsoOfPreserves_inv_fac_app + def CategoryTheory.Functor.pointwiseLeftKanExtensionCompIsoOfPreserves + theorem CategoryTheory.Functor.pointwiseLeftKanExtensionCompIsoOfPreserves_fac_app + theorem CategoryTheory.Functor.pointwiseLeftKanExtensionCompIsoOfPreserves_hom_fac + theorem CategoryTheory.Functor.pointwiseLeftKanExtensionCompIsoOfPreserves_hom_fac_app + theorem CategoryTheory.Functor.pointwiseLeftKanExtensionCompIsoOfPreserves_inv_fac + def CategoryTheory.Functor.pointwiseRightKanExtensionCompIsoOfPreserves + theorem CategoryTheory.Functor.pointwiseRightKanExtensionCompIsoOfPreserves_hom_fac + theorem CategoryTheory.Functor.pointwiseRightKanExtensionCompIsoOfPreserves_hom_fac_app + theorem CategoryTheory.Functor.pointwiseRightKanExtensionCompIsoOfPreserves_inv_fac + theorem CategoryTheory.Functor.pointwiseRightKanExtensionCompIsoOfPreserves_inv_fac_app + def CategoryTheory.Functor.ranCompIsoOfPreserves + def CategoryTheory.Functor.rightKanExtensionCompIsoOfPreserves + theorem CategoryTheory.Functor.rightKanExtensionCompIsoOfPreserves_hom_fac + theorem CategoryTheory.Functor.rightKanExtensionCompIsoOfPreserves_hom_fac_app + theorem CategoryTheory.Functor.rightKanExtensionCompIsoOfPreserves_inv_fac + theorem CategoryTheory.Functor.rightKanExtensionCompIsoOfPreserves_inv_fac_app 2025-06-22 15:35:19 50a12a2 refactor: split `BooleanAlgebra` into `Basic` and `Defs` (#26173) To avoid import loops, splits `BooleanAlgebra` into `BooleanAlgebra.Defs` and `BooleanAlgebra.Basic`. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Order/Ring/Idempotent.lean Modified Mathlib/Data/Set/Basic.lean Modified Mathlib/Data/Set/SymmDiff.lean Renamed Mathlib/Order/BooleanAlgebra.lean to Mathlib/Order/BooleanAlgebra/Basic.lean - theorem Bool.compl_eq_bnot - theorem Bool.inf_eq_band - theorem Bool.sup_eq_bor - def DistribLattice.booleanAlgebraOfComplemented Added Mathlib/Order/BooleanAlgebra/Defs.lean + theorem Bool.compl_eq_bnot + theorem Bool.inf_eq_band + theorem Bool.sup_eq_bor + def DistribLattice.booleanAlgebraOfComplemented Modified Mathlib/Order/Booleanisation.lean Modified Mathlib/Order/Heyting/Boundary.lean Modified Mathlib/Order/SymmDiff.lean 2025-06-22 14:18:08 27dacf7 chore: verify statements listed in 1000.yaml and similar actually exist (#26183) `yaml_check.py` was not adding entries in `1000.yaml` with only a `statement` field to its `1000.json` output, so they were not being checked by `check-yaml.lean`. This caused an error in the Artin–Wedderburn theorem entry to be missed, which is currently breaking the 1000+ theorems page on the website. This PR fixes the error in `1000.yaml` and fixes `yaml_check.py`. ESTIMATED CHANGES Modified docs/1000.yaml Modified scripts/yaml_check.py 2025-06-22 12:57:06 5780733 chore(SimpleGraph): split `Combinatorics.SimpleGraph.Path` (#25844) Split the long file `SimpleGraph.Path.lean` into two roughly equal parts. 1. Material on Paths, Cycles, Circuits and Trails is in `Paths.lean` 2. Material on Reachable/Preconnected/Connected/ConnectedComponents is in `Connectivity.Connected` ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Combinatorics/SimpleGraph/Acyclic.lean Modified Mathlib/Combinatorics/SimpleGraph/Clique.lean Added Mathlib/Combinatorics/SimpleGraph/Connectivity/Connected.lean + theorem SimpleGraph.Connected.connected_delete_edge_of_not_isBridge + theorem SimpleGraph.Connected.exists_isPath + theorem SimpleGraph.Connected.map + theorem SimpleGraph.Connected.set_univ_walk_nonempty + structure SimpleGraph.Connected + theorem SimpleGraph.ConnectedComponent.adj_spanningCoe_toSimpleGraph + theorem SimpleGraph.ConnectedComponent.biUnion_supp_eq_supp + theorem SimpleGraph.ConnectedComponent.connectedComponentMk_eq_of_adj + theorem SimpleGraph.ConnectedComponent.connectedComponentMk_mem + theorem SimpleGraph.ConnectedComponent.connectedComponentMk_supp_subset_supp + theorem SimpleGraph.ConnectedComponent.connected_toSimpleGraph + theorem SimpleGraph.ConnectedComponent.eq_of_common_vertex + def SimpleGraph.ConnectedComponent.isoEquivSupp + theorem SimpleGraph.ConnectedComponent.iso_image_comp_eq_map_iff_eq_comp + theorem SimpleGraph.ConnectedComponent.iso_inv_image_comp_eq_iff_eq_map + def SimpleGraph.ConnectedComponent.map + theorem SimpleGraph.ConnectedComponent.map_comp + theorem SimpleGraph.ConnectedComponent.map_id + theorem SimpleGraph.ConnectedComponent.map_mk + theorem SimpleGraph.ConnectedComponent.mem_coe_supp_of_adj + theorem SimpleGraph.ConnectedComponent.mem_supp_congr_adj + theorem SimpleGraph.ConnectedComponent.mem_supp_iff + theorem SimpleGraph.ConnectedComponent.mem_supp_of_adj_mem_supp + theorem SimpleGraph.ConnectedComponent.nonempty_supp + theorem SimpleGraph.ConnectedComponent.reachable_of_mem_supp + theorem SimpleGraph.ConnectedComponent.reachable_toSimpleGraph + def SimpleGraph.ConnectedComponent.recOn + def SimpleGraph.ConnectedComponent.supp + theorem SimpleGraph.ConnectedComponent.supp_inj + theorem SimpleGraph.ConnectedComponent.supp_injective + def SimpleGraph.ConnectedComponent.toSimpleGraph + theorem SimpleGraph.ConnectedComponent.toSimpleGraph_adj + def SimpleGraph.ConnectedComponent.toSimpleGraph_hom + theorem SimpleGraph.ConnectedComponent.toSimpleGraph_hom_apply + theorem SimpleGraph.ConnectedComponent.top_supp_eq_univ + def SimpleGraph.ConnectedComponent + def SimpleGraph.IsBridge + def SimpleGraph.Iso.connectedComponentEquiv + theorem SimpleGraph.Iso.connectedComponentEquiv_refl + theorem SimpleGraph.Iso.connectedComponentEquiv_symm + theorem SimpleGraph.Iso.connectedComponentEquiv_trans + theorem SimpleGraph.Iso.connected_iff + theorem SimpleGraph.Iso.preconnected_iff + theorem SimpleGraph.Iso.reachable_iff + theorem SimpleGraph.Iso.symm_apply_reachable + theorem SimpleGraph.Preconnected.exists_isPath + theorem SimpleGraph.Preconnected.map + theorem SimpleGraph.Preconnected.set_univ_walk_nonempty + theorem SimpleGraph.Preconnected.subsingleton_connectedComponent + theorem SimpleGraph.Preconnected.support_eq_univ + def SimpleGraph.Preconnected + theorem SimpleGraph.Reachable.exists_isPath + theorem SimpleGraph.Reachable.mem_subgraphVerts + def SimpleGraph.Reachable + theorem SimpleGraph.adj_and_reachable_delete_edges_iff_exists_cycle + theorem SimpleGraph.adj_of_mem_walk_support + theorem SimpleGraph.bot_not_connected + theorem SimpleGraph.bot_not_preconnected + theorem SimpleGraph.bot_preconnected + theorem SimpleGraph.bot_preconnected_iff_subsingleton + def SimpleGraph.connectedComponentMk + theorem SimpleGraph.connected_iff_exists_forall_reachable + theorem SimpleGraph.iUnion_connectedComponentSupp + theorem SimpleGraph.isBridge_iff + theorem SimpleGraph.isBridge_iff_adj_and_forall_cycle_notMem + theorem SimpleGraph.isBridge_iff_adj_and_forall_walk_mem_edges + theorem SimpleGraph.isBridge_iff_mem_and_forall_cycle_notMem + theorem SimpleGraph.mem_support_of_mem_walk_support + theorem SimpleGraph.mem_support_of_reachable + theorem SimpleGraph.not_reachable_iff_isEmpty_walk + theorem SimpleGraph.pairwise_disjoint_supp_connectedComponent + def SimpleGraph.reachableSetoid + theorem SimpleGraph.reachable_bot + theorem SimpleGraph.reachable_comm + theorem SimpleGraph.reachable_deleteEdges_iff_exists_cycle.aux + theorem SimpleGraph.reachable_delete_edges_iff_exists_walk + theorem SimpleGraph.reachable_iff_nonempty_univ + theorem SimpleGraph.reachable_iff_reflTransGen + theorem SimpleGraph.reachable_is_equivalence + theorem SimpleGraph.top_connected + theorem SimpleGraph.top_preconnected Modified Mathlib/Combinatorics/SimpleGraph/Connectivity/Subgraph.lean Modified Mathlib/Combinatorics/SimpleGraph/Connectivity/WalkCounting.lean Modified Mathlib/Combinatorics/SimpleGraph/Ends/Defs.lean Modified Mathlib/Combinatorics/SimpleGraph/Hamiltonian.lean Modified Mathlib/Combinatorics/SimpleGraph/Metric.lean Modified Mathlib/Combinatorics/SimpleGraph/Path.lean - theorem SimpleGraph.Connected.connected_delete_edge_of_not_isBridge - theorem SimpleGraph.Connected.exists_isPath - theorem SimpleGraph.Connected.map - theorem SimpleGraph.Connected.set_univ_walk_nonempty - structure SimpleGraph.Connected - theorem SimpleGraph.ConnectedComponent.adj_spanningCoe_toSimpleGraph - theorem SimpleGraph.ConnectedComponent.biUnion_supp_eq_supp - theorem SimpleGraph.ConnectedComponent.connectedComponentMk_eq_of_adj - theorem SimpleGraph.ConnectedComponent.connectedComponentMk_mem - theorem SimpleGraph.ConnectedComponent.connectedComponentMk_supp_subset_supp - theorem SimpleGraph.ConnectedComponent.connected_toSimpleGraph - theorem SimpleGraph.ConnectedComponent.eq_of_common_vertex - def SimpleGraph.ConnectedComponent.isoEquivSupp - theorem SimpleGraph.ConnectedComponent.iso_image_comp_eq_map_iff_eq_comp - theorem SimpleGraph.ConnectedComponent.iso_inv_image_comp_eq_iff_eq_map - def SimpleGraph.ConnectedComponent.map - theorem SimpleGraph.ConnectedComponent.map_comp - theorem SimpleGraph.ConnectedComponent.map_id - theorem SimpleGraph.ConnectedComponent.map_mk - theorem SimpleGraph.ConnectedComponent.mem_coe_supp_of_adj - theorem SimpleGraph.ConnectedComponent.mem_supp_congr_adj - theorem SimpleGraph.ConnectedComponent.mem_supp_iff - theorem SimpleGraph.ConnectedComponent.mem_supp_of_adj_mem_supp - theorem SimpleGraph.ConnectedComponent.nonempty_supp - theorem SimpleGraph.ConnectedComponent.reachable_of_mem_supp - theorem SimpleGraph.ConnectedComponent.reachable_toSimpleGraph - def SimpleGraph.ConnectedComponent.recOn - def SimpleGraph.ConnectedComponent.supp - theorem SimpleGraph.ConnectedComponent.supp_inj - theorem SimpleGraph.ConnectedComponent.supp_injective - def SimpleGraph.ConnectedComponent.toSimpleGraph - theorem SimpleGraph.ConnectedComponent.toSimpleGraph_adj - def SimpleGraph.ConnectedComponent.toSimpleGraph_hom - theorem SimpleGraph.ConnectedComponent.toSimpleGraph_hom_apply - theorem SimpleGraph.ConnectedComponent.top_supp_eq_univ - def SimpleGraph.ConnectedComponent - def SimpleGraph.IsBridge - def SimpleGraph.Iso.connectedComponentEquiv - theorem SimpleGraph.Iso.connectedComponentEquiv_refl - theorem SimpleGraph.Iso.connectedComponentEquiv_symm - theorem SimpleGraph.Iso.connectedComponentEquiv_trans - theorem SimpleGraph.Iso.connected_iff - theorem SimpleGraph.Iso.preconnected_iff - theorem SimpleGraph.Iso.reachable_iff - theorem SimpleGraph.Iso.symm_apply_reachable - theorem SimpleGraph.Path.cons_isCycle - theorem SimpleGraph.Path.count_edges_eq_one - theorem SimpleGraph.Path.count_support_eq_one - theorem SimpleGraph.Path.loop_eq - theorem SimpleGraph.Path.mapEmbedding_injective - theorem SimpleGraph.Path.map_injective - theorem SimpleGraph.Path.mk'_mem_edges_singleton - theorem SimpleGraph.Path.nodup_support - theorem SimpleGraph.Path.notMem_edges_of_loop - def SimpleGraph.Path.reverse - def SimpleGraph.Path.singleton - theorem SimpleGraph.Preconnected.exists_isPath - theorem SimpleGraph.Preconnected.map - theorem SimpleGraph.Preconnected.set_univ_walk_nonempty - theorem SimpleGraph.Preconnected.subsingleton_connectedComponent - theorem SimpleGraph.Preconnected.support_eq_univ - def SimpleGraph.Preconnected - theorem SimpleGraph.Reachable.exists_isPath - theorem SimpleGraph.Reachable.mem_subgraphVerts - def SimpleGraph.Reachable - theorem SimpleGraph.Walk.IsCircuit.not_nil - structure SimpleGraph.Walk.IsCircuit - theorem SimpleGraph.Walk.IsCycle.getVert_endpoint_iff - theorem SimpleGraph.Walk.IsCycle.getVert_injOn' - theorem SimpleGraph.Walk.IsCycle.getVert_injOn - theorem SimpleGraph.Walk.IsCycle.getVert_sub_one_ne_getVert_add_one - theorem SimpleGraph.Walk.IsCycle.isPath_of_append_left - theorem SimpleGraph.Walk.IsCycle.isPath_of_append_right - theorem SimpleGraph.Walk.IsCycle.isPath_takeUntil - theorem SimpleGraph.Walk.IsCycle.ne_bot - theorem SimpleGraph.Walk.IsCycle.not_nil - theorem SimpleGraph.Walk.IsCycle.not_of_nil - theorem SimpleGraph.Walk.IsCycle.snd_ne_penultimate - theorem SimpleGraph.Walk.IsCycle.three_le_length - structure SimpleGraph.Walk.IsCycle - theorem SimpleGraph.Walk.IsPath.getVert_eq_end_iff - theorem SimpleGraph.Walk.IsPath.getVert_eq_start_iff - theorem SimpleGraph.Walk.IsPath.getVert_injOn - theorem SimpleGraph.Walk.IsPath.getVert_injOn_iff - theorem SimpleGraph.Walk.IsPath.length_lt - theorem SimpleGraph.Walk.IsPath.mk' - theorem SimpleGraph.Walk.IsPath.nil - theorem SimpleGraph.Walk.IsPath.of_adj - theorem SimpleGraph.Walk.IsPath.of_append_left - theorem SimpleGraph.Walk.IsPath.of_append_right - theorem SimpleGraph.Walk.IsPath.of_cons - theorem SimpleGraph.Walk.IsPath.reverse - theorem SimpleGraph.Walk.IsPath.tail - structure SimpleGraph.Walk.IsPath - theorem SimpleGraph.Walk.IsTrail.count_edges_eq_one - theorem SimpleGraph.Walk.IsTrail.count_edges_le_one - theorem SimpleGraph.Walk.IsTrail.length_le_card_edgeFinset - theorem SimpleGraph.Walk.IsTrail.nil - theorem SimpleGraph.Walk.IsTrail.of_append_left - theorem SimpleGraph.Walk.IsTrail.of_append_right - theorem SimpleGraph.Walk.IsTrail.of_cons - theorem SimpleGraph.Walk.IsTrail.reverse - structure SimpleGraph.Walk.IsTrail - def SimpleGraph.Walk.bypass - theorem SimpleGraph.Walk.bypass_copy - theorem SimpleGraph.Walk.bypass_eq_self_of_length_le - theorem SimpleGraph.Walk.bypass_isPath - theorem SimpleGraph.Walk.cons_isCycle_iff - theorem SimpleGraph.Walk.cons_isPath_iff - theorem SimpleGraph.Walk.cons_isTrail_iff - theorem SimpleGraph.Walk.darts_bypass_subset - theorem SimpleGraph.Walk.darts_toPath_subset - theorem SimpleGraph.Walk.edges_bypass_subset - theorem SimpleGraph.Walk.edges_toPath_subset - theorem SimpleGraph.Walk.endpoint_notMem_support_takeUntil - theorem SimpleGraph.Walk.isCircuit_copy - theorem SimpleGraph.Walk.isCycle_copy - theorem SimpleGraph.Walk.isCycle_def - theorem SimpleGraph.Walk.isCycle_reverse - theorem SimpleGraph.Walk.isPath_copy - theorem SimpleGraph.Walk.isPath_def - theorem SimpleGraph.Walk.isPath_iff_eq_nil - theorem SimpleGraph.Walk.isPath_reverse_iff - theorem SimpleGraph.Walk.isTrail_copy - theorem SimpleGraph.Walk.length_bypass_le - theorem SimpleGraph.Walk.mapLe_isCycle - theorem SimpleGraph.Walk.mapLe_isPath - theorem SimpleGraph.Walk.mapLe_isTrail - theorem SimpleGraph.Walk.map_isCycle_iff_of_injective - theorem SimpleGraph.Walk.map_isPath_iff_of_injective - theorem SimpleGraph.Walk.map_isPath_of_injective - theorem SimpleGraph.Walk.map_isTrail_iff_of_injective - theorem SimpleGraph.Walk.not_nil_of_isCycle_cons - theorem SimpleGraph.Walk.reverse_isTrail_iff - theorem SimpleGraph.Walk.support_bypass_subset - theorem SimpleGraph.Walk.support_toPath_subset - theorem SimpleGraph.Walk.toDeleteEdges_copy - def SimpleGraph.Walk.toPath - theorem SimpleGraph.adj_and_reachable_delete_edges_iff_exists_cycle - theorem SimpleGraph.adj_of_mem_walk_support - theorem SimpleGraph.bot_not_connected - theorem SimpleGraph.bot_not_preconnected - theorem SimpleGraph.bot_preconnected - theorem SimpleGraph.bot_preconnected_iff_subsingleton - def SimpleGraph.connectedComponentMk - theorem SimpleGraph.connected_iff_exists_forall_reachable - theorem SimpleGraph.iUnion_connectedComponentSupp - theorem SimpleGraph.isBridge_iff - theorem SimpleGraph.isBridge_iff_adj_and_forall_cycle_notMem - theorem SimpleGraph.isBridge_iff_adj_and_forall_walk_mem_edges - theorem SimpleGraph.isBridge_iff_mem_and_forall_cycle_notMem - theorem SimpleGraph.mem_support_of_mem_walk_support - theorem SimpleGraph.mem_support_of_reachable - theorem SimpleGraph.not_reachable_iff_isEmpty_walk - theorem SimpleGraph.pairwise_disjoint_supp_connectedComponent - def SimpleGraph.reachableSetoid - theorem SimpleGraph.reachable_bot - theorem SimpleGraph.reachable_comm - theorem SimpleGraph.reachable_deleteEdges_iff_exists_cycle.aux - theorem SimpleGraph.reachable_delete_edges_iff_exists_walk - theorem SimpleGraph.reachable_iff_nonempty_univ - theorem SimpleGraph.reachable_iff_reflTransGen - theorem SimpleGraph.reachable_is_equivalence - theorem SimpleGraph.top_connected - theorem SimpleGraph.top_preconnected Added Mathlib/Combinatorics/SimpleGraph/Paths.lean + theorem SimpleGraph.Path.cons_isCycle + theorem SimpleGraph.Path.count_edges_eq_one + theorem SimpleGraph.Path.count_support_eq_one + theorem SimpleGraph.Path.loop_eq + theorem SimpleGraph.Path.mapEmbedding_injective + theorem SimpleGraph.Path.map_injective + theorem SimpleGraph.Path.mk'_mem_edges_singleton + theorem SimpleGraph.Path.nodup_support + theorem SimpleGraph.Path.notMem_edges_of_loop + def SimpleGraph.Path.reverse + def SimpleGraph.Path.singleton + theorem SimpleGraph.Walk.IsCircuit.not_nil + structure SimpleGraph.Walk.IsCircuit + theorem SimpleGraph.Walk.IsCycle.getVert_endpoint_iff + theorem SimpleGraph.Walk.IsCycle.getVert_injOn' + theorem SimpleGraph.Walk.IsCycle.getVert_injOn + theorem SimpleGraph.Walk.IsCycle.getVert_sub_one_ne_getVert_add_one + theorem SimpleGraph.Walk.IsCycle.isPath_of_append_left + theorem SimpleGraph.Walk.IsCycle.isPath_of_append_right + theorem SimpleGraph.Walk.IsCycle.isPath_takeUntil + theorem SimpleGraph.Walk.IsCycle.ne_bot + theorem SimpleGraph.Walk.IsCycle.not_nil + theorem SimpleGraph.Walk.IsCycle.not_of_nil + theorem SimpleGraph.Walk.IsCycle.snd_ne_penultimate + theorem SimpleGraph.Walk.IsCycle.three_le_length + structure SimpleGraph.Walk.IsCycle + theorem SimpleGraph.Walk.IsPath.getVert_eq_end_iff + theorem SimpleGraph.Walk.IsPath.getVert_eq_start_iff + theorem SimpleGraph.Walk.IsPath.getVert_injOn + theorem SimpleGraph.Walk.IsPath.getVert_injOn_iff + theorem SimpleGraph.Walk.IsPath.length_lt + theorem SimpleGraph.Walk.IsPath.mk' + theorem SimpleGraph.Walk.IsPath.nil + theorem SimpleGraph.Walk.IsPath.of_adj + theorem SimpleGraph.Walk.IsPath.of_append_left + theorem SimpleGraph.Walk.IsPath.of_append_right + theorem SimpleGraph.Walk.IsPath.of_cons + theorem SimpleGraph.Walk.IsPath.reverse + theorem SimpleGraph.Walk.IsPath.tail + structure SimpleGraph.Walk.IsPath + theorem SimpleGraph.Walk.IsTrail.count_edges_eq_one + theorem SimpleGraph.Walk.IsTrail.count_edges_le_one + theorem SimpleGraph.Walk.IsTrail.length_le_card_edgeFinset + theorem SimpleGraph.Walk.IsTrail.nil + theorem SimpleGraph.Walk.IsTrail.of_append_left + theorem SimpleGraph.Walk.IsTrail.of_append_right + theorem SimpleGraph.Walk.IsTrail.of_cons + theorem SimpleGraph.Walk.IsTrail.reverse + structure SimpleGraph.Walk.IsTrail + def SimpleGraph.Walk.bypass + theorem SimpleGraph.Walk.bypass_copy + theorem SimpleGraph.Walk.bypass_eq_self_of_length_le + theorem SimpleGraph.Walk.bypass_isPath + theorem SimpleGraph.Walk.cons_isCycle_iff + theorem SimpleGraph.Walk.cons_isPath_iff + theorem SimpleGraph.Walk.cons_isTrail_iff + theorem SimpleGraph.Walk.darts_bypass_subset + theorem SimpleGraph.Walk.darts_toPath_subset + theorem SimpleGraph.Walk.edges_bypass_subset + theorem SimpleGraph.Walk.edges_toPath_subset + theorem SimpleGraph.Walk.endpoint_notMem_support_takeUntil + theorem SimpleGraph.Walk.isCircuit_copy + theorem SimpleGraph.Walk.isCycle_copy + theorem SimpleGraph.Walk.isCycle_def + theorem SimpleGraph.Walk.isCycle_reverse + theorem SimpleGraph.Walk.isPath_copy + theorem SimpleGraph.Walk.isPath_def + theorem SimpleGraph.Walk.isPath_iff_eq_nil + theorem SimpleGraph.Walk.isPath_reverse_iff + theorem SimpleGraph.Walk.isTrail_copy + theorem SimpleGraph.Walk.length_bypass_le + theorem SimpleGraph.Walk.mapLe_isCycle + theorem SimpleGraph.Walk.mapLe_isPath + theorem SimpleGraph.Walk.mapLe_isTrail + theorem SimpleGraph.Walk.map_isCycle_iff_of_injective + theorem SimpleGraph.Walk.map_isPath_iff_of_injective + theorem SimpleGraph.Walk.map_isPath_of_injective + theorem SimpleGraph.Walk.map_isTrail_iff_of_injective + theorem SimpleGraph.Walk.not_nil_of_isCycle_cons + theorem SimpleGraph.Walk.reverse_isTrail_iff + theorem SimpleGraph.Walk.support_bypass_subset + theorem SimpleGraph.Walk.support_toPath_subset + theorem SimpleGraph.Walk.toDeleteEdges_copy + def SimpleGraph.Walk.toPath Modified Mathlib/Combinatorics/SimpleGraph/Prod.lean Modified Mathlib/Combinatorics/SimpleGraph/Trails.lean 2025-06-22 09:40:08 e004dbe chore(CategoryTheory/MorphismProperty): the trivial property is stable under (co)base change (#26228) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/MorphismProperty/Limits.lean 2025-06-22 09:40:07 872fd69 feat(CategoryTheory/Extensive): pullbacks distribute over finite coproducts (#26186) More generally, we show that this holds whenever the coproduct is a universal colimit. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/EffectiveEpi/Extensive.lean Modified Mathlib/CategoryTheory/Extensive.lean + theorem CategoryTheory.FinitaryPreExtensive.isIso_sigmaDesc_fst + theorem CategoryTheory.FinitaryPreExtensive.isPullback_sigmaDesc - theorem CategoryTheory.FinitaryPreExtensive.sigma_desc_iso Modified Mathlib/CategoryTheory/Limits/Shapes/Products.lean + def CategoryTheory.Limits.Cofan.IsColimit.prod + def CategoryTheory.Limits.Fan.IsLimit.prod Modified Mathlib/CategoryTheory/Limits/VanKampen.lean + theorem CategoryTheory.IsUniversalColimit.isPullback_of_isColimit_left + theorem CategoryTheory.IsUniversalColimit.isPullback_of_isColimit_right + theorem CategoryTheory.IsUniversalColimit.isPullback_prod_of_isColimit + theorem CategoryTheory.IsUniversalColimit.nonempty_isColimit_of_isPullback_left + theorem CategoryTheory.IsUniversalColimit.nonempty_isColimit_of_isPullback_right + theorem CategoryTheory.IsUniversalColimit.nonempty_isColimit_of_pullbackCone_left + theorem CategoryTheory.IsUniversalColimit.nonempty_isColimit_of_pullbackCone_right + theorem CategoryTheory.IsUniversalColimit.nonempty_isColimit_prod_of_isPullback + theorem CategoryTheory.IsUniversalColimit.nonempty_isColimit_prod_of_pullbackCone Modified Mathlib/CategoryTheory/Sites/Coherent/Basic.lean Modified Mathlib/CategoryTheory/Sites/Coherent/Comparison.lean 2025-06-22 09:31:28 36f34a4 chore: unprime the Prop-valued fields of `Grp_Class` (#26252) Follow up to #26102 From Toric ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Monoidal/Cartesian/Grp_.lean Modified Mathlib/CategoryTheory/Monoidal/Grp_.lean - theorem Grp_Class.left_inv - theorem Grp_Class.right_inv Modified Mathlib/CategoryTheory/Monoidal/Internal/Types/Grp_.lean 2025-06-22 09:17:51 98757f7 doc: Fix swapped doc strings for mabs_div_lt_of_one_le_of_lt (#26262) Fix the swapped doc strings for `mabs_div_lt_of_one_le_of_lt` and its additive version ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Group/Abs.lean 2025-06-22 08:32:23 69f66e4 feat(CategoryTheory/Join): Pseudofunctoriality of joins of categories (#25744) Promote the constructions `C ↦ C ⋆ D` and `D ↦ C ⋆ D` to pseudofunctors from `Cat` to `Cat`. The construction is carried in a new file `CategoryTheory/Join/Pseudofunctor.lean` to reduce imports. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/CategoryTheory/Join/Basic.lean + theorem CategoryTheory.Join.mapWhiskerLeft_id + theorem CategoryTheory.Join.mapWhiskerRight_id Added Mathlib/CategoryTheory/Join/Pseudofunctor.lean + def CategoryTheory.Join.mapCompLeft + def CategoryTheory.Join.mapCompRight + theorem CategoryTheory.Join.mapWhiskerLeft_associator_hom + theorem CategoryTheory.Join.mapWhiskerLeft_leftUnitor_hom + theorem CategoryTheory.Join.mapWhiskerLeft_rightUnitor_hom + theorem CategoryTheory.Join.mapWhiskerLeft_whiskerLeft + theorem CategoryTheory.Join.mapWhiskerLeft_whiskerRight + theorem CategoryTheory.Join.mapWhiskerRight_associator_hom + theorem CategoryTheory.Join.mapWhiskerRight_leftUnitor_hom + theorem CategoryTheory.Join.mapWhiskerRight_rightUnitor_hom + theorem CategoryTheory.Join.mapWhiskerRight_whiskerLeft + theorem CategoryTheory.Join.mapWhiskerRight_whiskerRight + def CategoryTheory.Join.pseudofunctorLeft + def CategoryTheory.Join.pseudofunctorRight 2025-06-22 06:18:13 087a0dc feat(Combinatorics/SimpleGraph): edgeSet of Eulerian walk equal to edgeSet of graph (#26263) This PR continues the work from #25224. Original PR: https://github.com/leanprover-community/mathlib4/pull/25224 ESTIMATED CHANGES Modified Mathlib/Combinatorics/SimpleGraph/Trails.lean + theorem SimpleGraph.Walk.IsEulerian.edgeSet_eq + theorem SimpleGraph.Walk.IsTrail.isEulerian_iff 2025-06-22 05:59:33 6155497 feat(CategoryTheory/Products/Basic): alternative constructor for morphisms in products (#26206) In many instances, constructing morphisms is painful and requires extra type annotations to get lean to accept `(f, g)` as a valid morphism in a product category. This is an attempt to provide a constructor that works better. See [#mathlib4 > product of morphisms in product category](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/product.20of.20morphisms.20in.20product.20category/with/465083415) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Limits/ColimitLimit.lean Modified Mathlib/CategoryTheory/Limits/FilteredColimitCommutesFiniteLimit.lean Modified Mathlib/CategoryTheory/Limits/Fubini.lean Modified Mathlib/CategoryTheory/Monoidal/DayConvolution.lean Modified Mathlib/CategoryTheory/Products/Basic.lean +/- theorem CategoryTheory.Prod.fac' +/- theorem CategoryTheory.Prod.fac Modified Mathlib/CategoryTheory/Products/Bifunctor.lean 2025-06-21 12:16:50 e2f8bf7 feat: specific lemmas about integrability of ContinuousMap[Zero]-valued functions (#26058)

... (truncated)

Commits

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) ESTIMATED CHANGES Modified .github/workflows/add_label_from_diff.yaml Modified .github/workflows/bench_summary_comment.yml Modified .github/workflows/bors.yml Modified .github/workflows/bot_fix_style.yaml Modified .github/workflows/build.yml Modified .github/workflows/build_fork.yml Modified .github/workflows/daily.yml Modified .github/workflows/discover-lean-pr-testing.yml Modified .github/workflows/latest_import.yml Modified .github/workflows/lint_and_suggest_pr.yml Modified .github/workflows/nightly_merge_master.yml Modified .github/workflows/nolints.yml Modified .github/workflows/update_dependencies.yml 2025-05-01 14:26:22 640e70f chore(deps): bump actions/setup-python from 5.5.0 to 5.6.0 in /.github/workflows (#24509) Bumps [actions/setup-python](https://github.com/actions/setup-python) from 5.5.0 to 5.6.0.
Release notes

Sourced from actions/setup-python's releases.

v5.6.0

What's Changed

Full Changelog: https://github.com/actions/setup-python/compare/v5...v5.6.0

Commits

[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=actions/setup-python&package-manager=github_actions&previous-version=5.5.0&new-version=5.6.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) ESTIMATED CHANGES Modified .github/workflows/PR_summary.yml Modified .github/workflows/bors.yml Modified .github/workflows/bot_fix_style.yaml Modified .github/workflows/build.yml Modified .github/workflows/build_fork.yml Modified .github/workflows/lint_and_suggest_pr.yml Modified .github/workflows/maintainer_bors.yml Modified .github/workflows/update_dependencies_zulip.yml Modified .github/workflows/zulip_emoji_awaiting_author.yaml Modified .github/workflows/zulip_emoji_closed_pr.yaml Modified .github/workflows/zulip_emoji_merge_delegate.yaml 2025-05-01 14:26:21 5c459c6 chore(deps): bump actions/setup-python from 5.5.0 to 5.6.0 in /.github (#24508) Bumps [actions/setup-python](https://github.com/actions/setup-python) from 5.5.0 to 5.6.0.
Release notes

Sourced from actions/setup-python's releases.

v5.6.0

What's Changed

Full Changelog: https://github.com/actions/setup-python/compare/v5...v5.6.0

Commits

[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=actions/setup-python&package-manager=github_actions&previous-version=5.5.0&new-version=5.6.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) ESTIMATED CHANGES Modified .github/build.in.yml 2025-05-01 14:26:20 f3c9455 chore(deps): bump leanprover/lean-action from e18f2df7f0d4f30d11a4b963bff9b1140999480c to f807b338d95de7813c5c50d018f1c23c9b93b4ec in /.github (#24507) Bumps [leanprover/lean-action](https://github.com/leanprover/lean-action) from e18f2df7f0d4f30d11a4b963bff9b1140999480c to f807b338d95de7813c5c50d018f1c23c9b93b4ec.
Changelog

Sourced from leanprover/lean-action's changelog.

Changelog

All notable changes to lean-action will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

Unreleased

Added

  • add option to always reinstall lean4-pr-releases toolchains, ensuring CI runs with the latest version

v1.1.2 - 2025-03-28

Fixed

  • include runner architecture in cache key to avoid reusing .lake across different runner architectures

v1.1.1 - 2024-11-23

Fixed

  • fix bug with passing multiple arguments to lake build via build-args input
  • fix false feature flag logic when using auto-config: true

v1.1.0 - 2024-9-16

Added

  • Windows GitHub runner support

Fixed

  • replace actions/cache with actions/cache/restore to prevent redundant cache saving previously caused by the combination of actions/cache and actions/cache/save

v1.0.2 - 2024-8-26

Changed

  • use empty string as default value for status outputs instead of "NOT_RUN" to avoid set-output-parameters final step breaking log group expansion

Fixed

  • correct typo of in configuration step: "lake check-test failed" -> "lake check-lint failed"
  • fix log group expansion in failing steps due to set-output-parameters step and removing the end log group command when a step fails

... (truncated)

Commits

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) ESTIMATED CHANGES Modified .github/build.in.yml 2025-05-01 14:19:43 223f70f chore: make dependabot group updates into a single PR (#23549) cf. docs at https://docs.github.com/en/code-security/dependabot/dependabot-version-updates/optimizing-pr-creation-version-updates ESTIMATED CHANGES Modified .github/dependabot.yml 2025-05-01 14:04:24 22a178a refactor(Geometry/Euclidean): split out altitudes (#24504) Move the definition of `Affine.Simplex.altitude` and associated API from `MongePoint.lean` to a separate file, in preparation for setting up other associated definitions (as discussed in #23752) that are of use without involving the Monge point / orthocenter. There are no changes to definitions, statements or proofs; this is just moving content from one file to another. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Geometry/Euclidean/Altitude.lean + theorem Affine.Simplex.affineSpan_pair_eq_altitude_iff + def Affine.Simplex.altitude + theorem Affine.Simplex.altitude_def + theorem Affine.Simplex.direction_altitude + theorem Affine.Simplex.finrank_direction_altitude + theorem Affine.Simplex.mem_altitude + theorem Affine.Simplex.vectorSpan_isOrtho_altitude_direction Modified Mathlib/Geometry/Euclidean/MongePoint.lean - theorem Affine.Simplex.affineSpan_pair_eq_altitude_iff - def Affine.Simplex.altitude - theorem Affine.Simplex.altitude_def - theorem Affine.Simplex.direction_altitude - theorem Affine.Simplex.finrank_direction_altitude - theorem Affine.Simplex.mem_altitude - theorem Affine.Simplex.vectorSpan_isOrtho_altitude_direction 2025-05-01 13:57:26 0aba093 refactor(Geometry/Euclidean): use `orthogonalProjectionSpan` more (#24503) Make more use of `orthogonalProjectionSpan` in `Mathlib.Geometry.Euclidean.Projection` and `Mathlib.Geometry.Euclidean.SignedDist`. Split out from #23752. ESTIMATED CHANGES Modified Mathlib/Geometry/Euclidean/Projection.lean Modified Mathlib/Geometry/Euclidean/SignedDist.lean 2025-05-01 12:28:33 f4adaa2 chore: whitespace still (#24501) Mostly whitespace changes found by the linter at #24465. ESTIMATED CHANGES Modified Archive/Imo/Imo2019Q4.lean Modified Mathlib/GroupTheory/CoprodI.lean +/- inductive Monoid.CoprodI.Rel Modified Mathlib/GroupTheory/PushoutI.lean Modified Mathlib/LinearAlgebra/TensorProduct/Graded/Internal.lean Modified Mathlib/ModelTheory/Order.lean Modified Mathlib/NumberTheory/FactorisationProperties.lean +/- theorem Nat.Prime.deficient_pow Modified Mathlib/NumberTheory/NumberField/CanonicalEmbedding/NormLeOne.lean +/- theorem NumberField.mixedEmbedding.fundamentalCone.realSpaceToLogSpace_apply Modified Mathlib/RingTheory/Binomial.lean +/- theorem Ring.descPochhammer_smeval_add Modified Mathlib/RingTheory/Ideal/IsPrincipalPowQuotient.lean +/- def Ideal.quotEquivPowQuotPowSucc Modified Mathlib/RingTheory/LocalRing/Subring.lean +/- theorem IsLocalRing.of_subring Modified Mathlib/RingTheory/Regular/RegularSequence.lean Modified Mathlib/RingTheory/TwoSidedIdeal/Operations.lean +/- def TwoSidedIdeal.orderIsoIsTwoSided Modified Mathlib/SetTheory/Surreal/Multiplication.lean +/- inductive Surreal.Multiplication.Args Modified Mathlib/Tactic/FunProp/ContDiff.lean Modified Mathlib/Topology/CWComplex/Classical/Basic.lean 2025-05-01 12:20:41 4ba0443 chore: use more modern config options (#24502) ESTIMATED CHANGES Modified Mathlib/Algebra/GCDMonoid/Basic.lean Modified Mathlib/Algebra/Group/Equiv/Opposite.lean Modified Mathlib/Analysis/Fourier/AddCircle.lean Modified Mathlib/Analysis/FunctionalSpaces/SobolevInequality.lean Modified Mathlib/CategoryTheory/Comma/Over/Pullback.lean Modified Mathlib/Combinatorics/SimpleGraph/Connectivity/Subgraph.lean Modified Mathlib/Data/List/Chain.lean Modified Mathlib/Data/List/SplitLengths.lean Modified Mathlib/Data/Multiset/Fintype.lean Modified Mathlib/Geometry/Euclidean/Circumcenter.lean Modified Mathlib/Geometry/Manifold/IsManifold/Basic.lean Modified Mathlib/LinearAlgebra/Pi.lean Modified Mathlib/LinearAlgebra/QuadraticForm/Complex.lean Modified Mathlib/Logic/Embedding/Basic.lean Modified Mathlib/MeasureTheory/Covering/Differentiation.lean Modified Mathlib/MeasureTheory/Function/Jacobian.lean Modified Mathlib/MeasureTheory/Function/SimpleFuncDense.lean Modified Mathlib/MeasureTheory/PiSystem.lean Modified Mathlib/NumberTheory/NumberField/CanonicalEmbedding/Basic.lean Modified Mathlib/Order/Interval/Set/Image.lean Modified Mathlib/RingTheory/LittleWedderburn.lean Modified Mathlib/Tactic/CategoryTheory/Coherence.lean Modified Mathlib/Tactic/Lift.lean Modified Mathlib/Topology/Algebra/Field.lean Modified MathlibTest/SimpRw.lean 2025-05-01 10:40:22 09a9022 docs(Topology/Sets/Closeds): fix docs (#24491) Fix docs for `TopologicalSpace.Closeds.gi`. ESTIMATED CHANGES Modified Mathlib/Topology/Sets/Closeds.lean 2025-05-01 10:33:45 e6d28fe chore(MathlibTest/norm_num): don't indent sections (#24500) This matches mathlib style elsewhere. Found by the linter in #24465. ESTIMATED CHANGES Modified MathlibTest/norm_num.lean 2025-05-01 09:22:05 429a671 chore: clear Data.Fin.basic doc (#24446) chore: clear Fin.basic doc These declarations are not in this file. ESTIMATED CHANGES Modified Mathlib/Data/Fin/Basic.lean 2025-05-01 09:09:21 9e67d11 feat(Algebra/Exact): add `Function.Exact.[iff_]rangeFactorization` etc (#23446) Two maps `f : M → N` and `g : N → P` are exact if and only if the induced maps `Set.range f → N → Set.range g` are exact. Same for `AddMonoidHom` and `LinearMap`. ESTIMATED CHANGES Modified Mathlib/Algebra/Exact.lean + theorem Function.Exact.iff_addMonoidHom_rangeRestrict + theorem Function.Exact.iff_linearMap_rangeRestrict +/- theorem Function.Exact.iff_of_ladder_linearEquiv + theorem Function.Exact.iff_rangeFactorization +/- theorem Function.Exact.of_ladder_linearEquiv_of_exact + theorem Function.Exact.rangeFactorization 2025-05-01 09:00:22 32308cd feat: congruence lemmas for divisors of meromorphic functions (#23363) Deliver on open TODO and state elementary congruence lemmas for divisors of meromorphic functions. This material is used in [Project VD](https://github.com/kebekus/ProjectVD), which aims to formalize Value Distribution Theory for meromorphic functions on the complex plane. ESTIMATED CHANGES Modified Mathlib/Analysis/Meromorphic/Basic.lean + theorem MeromorphicOn.congr_codiscreteWithin + theorem MeromorphicOn.congr_codiscreteWithin_of_eqOn_compl Modified Mathlib/Analysis/Meromorphic/Divisor.lean + theorem MeromorphicOn.divisor_congr_codiscreteWithin + theorem MeromorphicOn.divisor_congr_codiscreteWithin_of_eqOn_compl 2025-05-01 08:53:42 ce77935 feat: add logarithmic counting function of Value Distribution Theory (#23627) Implement the logarithmic counting function of Value Distribution Theory and provide supporting API. This material is used in [Project VD](https://github.com/kebekus/ProjectVD), which aims to formalize Value Distribution Theory for meromorphic functions on the complex plane. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/Complex/ValueDistribution/CountingFunction.lean + theorem Function.locallyFinsuppWithin.logCounting_eval_zero + theorem ValueDistribution.logCounting_add_analyticOn + theorem ValueDistribution.logCounting_add_const + theorem ValueDistribution.logCounting_coe + theorem ValueDistribution.logCounting_coe_eq_logCounting_sub_const_zero + theorem ValueDistribution.logCounting_eval_zero + theorem ValueDistribution.logCounting_inv + theorem ValueDistribution.logCounting_sub_const + theorem ValueDistribution.logCounting_top + theorem ValueDistribution.logCounting_zero + theorem ValueDistribution.log_counting_zero_sub_logCounting_top 2025-05-01 08:12:39 0f6b664 feat(RingTheory/Ideal/AssociatedPrime/Basic): associated primes and exact sequence (#24453) Added properties of associated primes with respect to exact sequence. Also added another equivalent characterization of being an associated prime. ESTIMATED CHANGES Modified Mathlib/RingTheory/Ideal/AssociatedPrime/Basic.lean + theorem associatedPrimes.prod +/- theorem associatedPrimes.subset_of_injective + theorem associatedPrimes.subset_union_of_exact + theorem isAssociatedPrime_iff_exists_injective_linearMap 2025-05-01 08:12:38 9cfa3ae feat(Algebra/Module/Submodule/Map): add `LinearMap.submoduleComap` (#24451) For a linear map `f`, we define the map `LinearMap.submoduleComap` for convenience (similar to the existing `MonoidHom.submonoidComap` and `MonoidHom.subgroupComap`), from `Submodule.comap q f` to `q` obtained from restricting `f` using `LinearMap.restrict`. It has a particular property that if `f` is surjective, then itself is also surjective. This property also added to existing ones. ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Subgroup/Map.lean + theorem MonoidHom.subgroupComap_surjective_of_surjective Modified Mathlib/Algebra/Group/Submonoid/Operations.lean + theorem MonoidHom.submonoidComap_surjective_of_surjective Modified Mathlib/Algebra/Module/Submodule/Map.lean + def LinearMap.submoduleComap + theorem LinearMap.submoduleComap_surjective_of_surjective 2025-05-01 08:12:36 a8f8e75 refactor(Order/Heyting): convert toBiheytingHomClass from lemma to instance (#24437) Previously toBiheytingHomClass was a lemma due to concerns about typeclass loops. These concerns are no longer relevant in Lean 4, so we can now make it a proper instance. Remove the outdated porting note as well. ESTIMATED CHANGES Modified Mathlib/Order/Heyting/Hom.lean - theorem BoundedLatticeHomClass.toBiheytingHomClass 2025-05-01 06:42:35 95eff17 chore(Data/Finset/Insert): make `cons` branch explicit in `Finset.induction` (#24487) Changes ```lean @[elab_as_elim] protected theorem induction {α : Type*} {motive : Finset α → Prop} [DecidableEq α] (empty : motive ∅) (insert : ∀ ⦃a : α⦄ {s : Finset α}, a ∉ s → motive s → motive (insert a s)) : ∀ s, motive s := ``` to ```lean @[elab_as_elim] protected theorem induction {α : Type*} {motive : Finset α → Prop} [DecidableEq α] (empty : motive ∅) (insert : ∀ (a : α) (s : Finset α), a ∉ s → motive s → motive (insert a s)) : ∀ s, motive s := ``` and the same for `Finset.cons_induction_on`, `Finset.induction_on`, and `Finset.induction_on'`. ESTIMATED CHANGES Modified Mathlib/Algebra/BigOperators/Associated.lean Modified Mathlib/Algebra/BigOperators/Finsupp/Basic.lean Modified Mathlib/Algebra/BigOperators/GroupWithZero/Action.lean Modified Mathlib/Algebra/BigOperators/GroupWithZero/Finset.lean Modified Mathlib/Algebra/BigOperators/Ring/Finset.lean Modified Mathlib/Algebra/Group/Subgroup/Finite.lean Modified Mathlib/Algebra/Lie/Submodule.lean Modified Mathlib/Algebra/MvPolynomial/Variables.lean Modified Mathlib/Algebra/Polynomial/PartialFractions.lean Modified Mathlib/Analysis/Asymptotics/ExpGrowth.lean Modified Mathlib/Analysis/Calculus/ContDiff/Bounds.lean Modified Mathlib/Analysis/Convex/Exposed.lean Modified Mathlib/Analysis/Normed/Group/Ultra.lean Modified Mathlib/Analysis/SpecialFunctions/Log/PosLog.lean Modified Mathlib/Analysis/SpecialFunctions/Log/Summable.lean Modified Mathlib/Analysis/SpecialFunctions/Pow/NNReal.lean Modified Mathlib/CategoryTheory/Subobject/Lattice.lean Modified Mathlib/Combinatorics/Additive/PluenneckeRuzsa.lean Modified Mathlib/Combinatorics/SetFamily/Compression/Down.lean Modified Mathlib/Combinatorics/SetFamily/FourFunctions.lean Modified Mathlib/Combinatorics/SetFamily/HarrisKleitman.lean Modified Mathlib/Data/Finset/Insert.lean Modified Mathlib/Data/Finset/Lattice/Fold.lean Modified Mathlib/FieldTheory/IntermediateField/Adjoin/Defs.lean Modified Mathlib/GroupTheory/Perm/Cycle/Type.lean Modified Mathlib/GroupTheory/Perm/Support.lean Modified Mathlib/LinearAlgebra/Eigenspace/Basic.lean Modified Mathlib/LinearAlgebra/Eigenspace/Pi.lean Modified Mathlib/LinearAlgebra/FiniteDimensional/Basic.lean Modified Mathlib/LinearAlgebra/LinearIndependent/Basic.lean Modified Mathlib/LinearAlgebra/LinearIndependent/Lemmas.lean Modified Mathlib/LinearAlgebra/Matrix/Determinant/Basic.lean Modified Mathlib/LinearAlgebra/Multilinear/Basic.lean Modified Mathlib/LinearAlgebra/TensorProduct/Basic.lean Modified Mathlib/MeasureTheory/Function/ConditionalExpectation/Basic.lean Modified Mathlib/MeasureTheory/Function/SimpleFunc.lean Modified Mathlib/MeasureTheory/Integral/Bochner/Basic.lean Modified Mathlib/MeasureTheory/Integral/Bochner/Set.lean Modified Mathlib/MeasureTheory/Integral/Marginal.lean Modified Mathlib/MeasureTheory/Integral/MeanInequalities.lean Modified Mathlib/MeasureTheory/Measure/AddContent.lean Modified Mathlib/MeasureTheory/Measure/Hausdorff.lean Modified Mathlib/MeasureTheory/Measure/Real.lean Modified Mathlib/MeasureTheory/OuterMeasure/Caratheodory.lean Modified Mathlib/MeasureTheory/SetSemiring.lean Modified Mathlib/NumberTheory/ArithmeticFunction.lean Modified Mathlib/NumberTheory/EulerProduct/Basic.lean Modified Mathlib/Order/Disjointed.lean Modified Mathlib/Order/Filter/Finite.lean Modified Mathlib/Probability/Moments/SubGaussian.lean Modified Mathlib/RingTheory/DividedPowers/Basic.lean Modified Mathlib/RingTheory/Finiteness/Basic.lean Modified Mathlib/RingTheory/Ideal/IsPrimary.lean Modified Mathlib/RingTheory/Ideal/Operations.lean Modified Mathlib/RingTheory/Ideal/Quotient/Index.lean Modified Mathlib/RingTheory/MvPolynomial/MonomialOrder.lean Modified Mathlib/RingTheory/MvPowerSeries/Basic.lean Modified Mathlib/RingTheory/MvPowerSeries/Order.lean Modified Mathlib/RingTheory/Nilpotent/Basic.lean Modified Mathlib/Topology/Category/TopCat/Limits/Cofiltered.lean Modified Mathlib/Topology/Connected/Basic.lean Modified Mathlib/Topology/Connected/Clopen.lean Modified Mathlib/Topology/Instances/ENNReal/Lemmas.lean Modified Mathlib/Topology/Irreducible.lean Modified Mathlib/Topology/Semicontinuous.lean Modified Mathlib/Topology/Separation/Basic.lean Modified Mathlib/Topology/Sets/Closeds.lean 2025-05-01 06:42:34 14fb067 chore(BigOperators/Fin): sections, type variables (#24197) General cleanup: - use `M` instead of Greek letters for the codomain of lemmas about products and sums; - move `[CommMonoid M]` to `variable`; - rename `Fin.prod_univ_get` to `Fin.prod_univ_getElem`, similarly for the additive version; - rename `Fin.prod_univ_get'` to `Fin.prod_univ_fun_getElem`, similarly for the additive version; - add a missing `to_additive` for `Fin.prod_const`; ESTIMATED CHANGES Modified Mathlib/Algebra/BigOperators/Fin.lean +/- theorem Fin.prod_Ioi_succ +/- theorem Fin.prod_Ioi_zero +/- theorem Fin.prod_congr' +/- theorem Fin.prod_cons +/- theorem Fin.prod_const +/- theorem Fin.prod_ofFn +/- theorem Fin.prod_snoc +/- theorem Fin.prod_trunc +/- theorem Fin.prod_univ_add +/- theorem Fin.prod_univ_castSucc +/- theorem Fin.prod_univ_def +/- theorem Fin.prod_univ_eight +/- theorem Fin.prod_univ_five +/- theorem Fin.prod_univ_four + theorem Fin.prod_univ_fun_getElem - theorem Fin.prod_univ_get' - theorem Fin.prod_univ_get + theorem Fin.prod_univ_getElem +/- theorem Fin.prod_univ_one +/- theorem Fin.prod_univ_seven +/- theorem Fin.prod_univ_six +/- theorem Fin.prod_univ_succ +/- theorem Fin.prod_univ_succAbove +/- theorem Fin.prod_univ_three +/- theorem Fin.prod_univ_two' +/- theorem Fin.prod_univ_two +/- theorem Fin.prod_univ_zero - theorem Fin.sum_const +/- theorem Finset.prod_range Modified Mathlib/NumberTheory/Ostrowski.lean 2025-05-01 06:42:33 3c29632 feat: preliminaries for Wedderburn–Artin (#24119) ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/Opposite.lean + def AlgEquiv.moduleEndSelf + def AlgEquiv.moduleEndSelfOp Modified Mathlib/Algebra/Azumaya/Basic.lean Modified Mathlib/Algebra/Equiv/TransferInstance.lean Modified Mathlib/Algebra/Lie/Semisimple/Basic.lean +/- theorem LieAlgebra.IsSimple.eq_top_of_isAtom - theorem LieAlgebra.IsSimple.isAtom_iff_eq_top - theorem LieAlgebra.IsSimple.isAtom_top Modified Mathlib/Algebra/Module/Equiv/Basic.lean +/- def LinearEquiv.arrowCongrAddEquiv +/- def LinearEquiv.conjRingEquiv + def LinearEquiv.domMulActCongrRight Modified Mathlib/Algebra/Module/LinearMap/Defs.lean + theorem LinearMap.ne_zero_of_injective + theorem LinearMap.ne_zero_of_surjective Modified Mathlib/Algebra/Module/LinearMap/End.lean +/- theorem Module.End.intCast_def +/- theorem Module.End.natCast_def - def Module.moduleEndSelf - def Module.moduleEndSelfOp +/- def Module.toModuleEnd + def RingEquiv.moduleEndSelf + def RingEquiv.moduleEndSelfOp Modified Mathlib/Algebra/Module/Submodule/Ker.lean + theorem LinearMap.exists_ne_zero_of_sSup_eq_top + theorem LinearMap.le_ker_iff_comp_subtype_eq_zero Modified Mathlib/Data/Matrix/Basic.lean + def AlgEquiv.mopMatrix Modified Mathlib/FieldTheory/IsAlgClosed/Basic.lean + theorem IsAlgClosed.algebraMap_bijective_of_isIntegral - theorem IsAlgClosed.algebraMap_surjective_of_isIntegral + theorem IsAlgClosed.ringHom_bijective_of_isIntegral Modified Mathlib/LinearAlgebra/Matrix/ToLin.lean +/- def LinearEquiv.algConj Modified Mathlib/LinearAlgebra/Projection.lean + theorem Submodule.linearProjOfIsCompl_surjective Modified Mathlib/LinearAlgebra/Span/Basic.lean + theorem LinearMap.exists_ne_zero_of_sSup_eq Modified Mathlib/Logic/Equiv/Defs.lean + theorem Equiv.nontrivial_congr Modified Mathlib/Order/Atoms.lean + theorem isAtom_iff_eq_top + theorem isCoatom_iff_eq_bot +/- theorem «Prop».isAtom_iff +/- theorem «Prop».isCoatom_iff Modified Mathlib/RingTheory/Congruence/Basic.lean + theorem RingCon.nontrivial_iff + theorem RingCon.subsingleton_iff Modified Mathlib/RingTheory/Ideal/Defs.lean Modified Mathlib/RingTheory/Jacobson/Ideal.lean - theorem Ideal.jacobson_mul_mem_right Modified Mathlib/RingTheory/LocalRing/RingHom/Basic.lean Modified Mathlib/RingTheory/Nullstellensatz.lean Modified Mathlib/RingTheory/SimpleRing/Congr.lean + theorem isSimpleRing_iff_isTwoSided_imp Modified Mathlib/RingTheory/SimpleRing/Defs.lean Modified Mathlib/RingTheory/TwoSidedIdeal/Operations.lean +/- theorem Ideal.asIdeal_toTwoSided +/- theorem Ideal.coe_toTwoSided +/- theorem Ideal.mem_toTwoSided +/- def Ideal.toTwoSided +/- theorem Ideal.toTwoSided_asIdeal + theorem TwoSidedIdeal.bot_asIdeal + def TwoSidedIdeal.orderIsoIsTwoSided + theorem TwoSidedIdeal.top_asIdeal Modified Mathlib/RingTheory/Unramified/Field.lean 2025-05-01 06:42:31 d831fbe doc(Topology/CWComplex): cross-reference abstract and classical approaches (#24069) * Add implementation notes to both Abstract/Basic.lean and Classical/Basic.lean explaining the relationship between the two approaches to CW complexes * Add TODO noting the missing connection between the approaches * Clarify that Abstract/Basic.lean uses a categorical approach while Classical/Basic.lean uses Whitehead's classical approach ESTIMATED CHANGES Modified Mathlib/Topology/CWComplex/Abstract/Basic.lean Modified Mathlib/Topology/CWComplex/Classical/Basic.lean 2025-05-01 06:20:33 9895d54 chore: reorganize and rename the Embedding --> Homeomorph constructions (#24113) This is the updated version of #12994 - rename [Homeomorph.ofIsEmbedding](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Topology/Homeomorph/Lemmas.html#Homeomorph.ofIsEmbedding) to `IsEmbedding.toHomeomorph` - move [Topology.IsEmbedding.toHomeomorph_of_surjective](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Topology/IsLocalHomeomorph.html#Topology.IsEmbedding.toHomeomorph_of_surjective) earlier (and PascalCase it) - rename [Homeomorph.homeomorphOfContinuousOpen](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Topology/Homeomorph/Defs.html#Homeomorph.homeomorphOfContinuousOpen) to `Equiv.toHomeomorphOfContinuousOpen`, and similarly for the closed version. ESTIMATED CHANGES Modified Mathlib/AlgebraicGeometry/Fiber.lean Modified Mathlib/AlgebraicGeometry/Morphisms/FiniteType.lean Modified Mathlib/AlgebraicGeometry/Morphisms/IsIso.lean Modified Mathlib/AlgebraicGeometry/Morphisms/QuasiSeparated.lean Modified Mathlib/AlgebraicGeometry/OpenImmersion.lean Modified Mathlib/AlgebraicGeometry/Properties.lean Modified Mathlib/Geometry/RingedSpace/OpenImmersion.lean Modified Mathlib/MeasureTheory/Constructions/BorelSpace/Basic.lean Modified Mathlib/Topology/Category/Profinite/Nobeling/Induction.lean Modified Mathlib/Topology/Category/TopCat/Basic.lean Modified Mathlib/Topology/Category/TopCat/Limits/Products.lean Modified Mathlib/Topology/Category/TopCat/Limits/Pullbacks.lean Modified Mathlib/Topology/Constructions/SumProd.lean Modified Mathlib/Topology/Gluing.lean Modified Mathlib/Topology/Homeomorph/Defs.lean + def Equiv.toHomeomorphOfContinuousClosed + theorem Equiv.toHomeomorphOfContinuousClosed_apply + theorem Equiv.toHomeomorphOfContinuousClosed_symm_apply + def Equiv.toHomeomorphOfContinuousOpen + theorem Equiv.toHomeomorphOfContinuousOpen_apply + theorem Equiv.toHomeomorphOfContinuousOpen_symm_apply - def Homeomorph.homeomorphOfContinuousClosed - def Homeomorph.homeomorphOfContinuousOpen - theorem Homeomorph.homeomorphOfContinuousOpen_apply - theorem Homeomorph.homeomorphOfContinuousOpen_symm_apply Modified Mathlib/Topology/Homeomorph/Lemmas.lean Modified Mathlib/Topology/IsLocalHomeomorph.lean Modified Mathlib/Topology/LocalAtTarget.lean Modified Mathlib/Topology/TietzeExtension.lean 2025-05-01 02:40:55 9bd9792 chore(Tactic/Linter): use logLint instead of logWarning (#24479) Also adds `logLint0Disable` for those linters which use nat-valued options. Linters should never use `logWarning` to report linter warnings; `logLint` ensures a consistent style for all linter warnings which includes in particular the name of the linter which is firing. ESTIMATED CHANGES Modified Mathlib/Tactic/CategoryTheory/Bicategory/PureCoherence.lean Modified Mathlib/Tactic/CategoryTheory/Coherence/Datatypes.lean Modified Mathlib/Tactic/DeclarationNames.lean + def Mathlib.Linter.logLint0Disable Modified Mathlib/Tactic/Linter/HaveLetLinter.lean Modified Mathlib/Tactic/Linter/Style.lean Modified MathlibTest/HaveLetLinter.lean Modified MathlibTest/LintStyle.lean Modified MathlibTest/LongFile.lean 2025-05-01 02:12:32 203067e chore: whitespace adaptations (#24488) Found by #24465. ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Pointwise/Finset/Basic.lean Modified Mathlib/Algebra/Group/UniqueProds/Basic.lean Modified Mathlib/Algebra/Order/Floor/Defs.lean Modified Mathlib/Analysis/Calculus/FDeriv/Basic.lean +/- theorem HasFDerivWithinAt.of_nhdsWithin_eq_bot Modified Mathlib/Analysis/FunctionalSpaces/SobolevInequality.lean +/- theorem MeasureTheory.eLpNorm_le_eLpNorm_fderiv_of_eq_inner +/- theorem MeasureTheory.eLpNorm_le_eLpNorm_fderiv_one Modified Mathlib/CategoryTheory/Monoidal/Subcategory.lean Modified Mathlib/Computability/Language.lean Modified Mathlib/Condensed/TopCatAdjunction.lean +/- def CondensedSet.condensedSetToCompactlyGenerated +/- def CondensedSet.topCatAdjunctionCounit +/- def CondensedSet.topCatAdjunctionCounitEquiv +/- theorem CondensedSet.topCatAdjunctionCounit_bijective +/- def condensedSetToTopCat Modified Mathlib/RingTheory/Ideal/IsPrincipalPowQuotient.lean +/- def Ideal.quotEquivPowQuotPowSuccEquiv 2025-05-01 01:14:12 e052dad feat(Fin/Basic): add 2 simp attrs and a simp lemma (#24196) ESTIMATED CHANGES Modified Mathlib/Analysis/Calculus/ContDiff/FaaDiBruno.lean Modified Mathlib/Data/Fin/Basic.lean + theorem Fin.castSucc_ne_last +/- theorem Fin.predAbove_last_castSucc +/- theorem Fin.predAbove_zero_succ +/- theorem Fin.succ_succAbove_zero Modified Mathlib/Data/Fin/Tuple/Basic.lean Modified Mathlib/GroupTheory/Perm/Fin.lean Modified Mathlib/LinearAlgebra/Basis/Flag.lean Modified Mathlib/LinearAlgebra/InvariantBasisNumber.lean Modified Mathlib/Order/JordanHolder.lean Modified Mathlib/RingTheory/Idempotents.lean Modified Mathlib/RingTheory/NoetherNormalization.lean Modified MathlibTest/matrix.lean 2025-04-30 22:27:22 ffa0da4 chore(LpSeminorm/CompareExp): generalise to enormed spaces, part 1 (#24481) ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Function/LpSeminorm/Basic.lean Modified Mathlib/MeasureTheory/Function/LpSeminorm/CompareExp.lean +/- theorem MeasureTheory.MemLp.mono_exponent +/- theorem MeasureTheory.MemLp.mono_exponent_of_measure_support_ne_top 2025-04-30 20:56:49 3f501c8 feat(AlgebraicGeometry): section of a k-scheme is a closed immersion (#23470) ESTIMATED CHANGES Modified Mathlib/AlgebraicGeometry/Limits.lean Modified Mathlib/AlgebraicGeometry/Morphisms/ClosedImmersion.lean Modified Mathlib/AlgebraicGeometry/OpenImmersion.lean + theorem AlgebraicGeometry.IsOpenImmersion.isPullback_lift_id Modified Mathlib/AlgebraicGeometry/PullbackCarrier.lean + theorem AlgebraicGeometry.Scheme.isEmpty_pullback_iff Modified Mathlib/AlgebraicGeometry/Pullbacks.lean + theorem AlgebraicGeometry.Scheme.isEmpty_pullback Modified Mathlib/AlgebraicGeometry/Scheme.lean + theorem AlgebraicGeometry.Scheme.isEmpty_of_commSq 2025-04-30 18:37:04 2c6431a chore: add deprecation module message for recently deleted files (#24484) From #23654 ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/MeasureTheory/Integral/BochnerL1.lean Added Mathlib/MeasureTheory/Integral/FundThmCalculus.lean Added Mathlib/MeasureTheory/Integral/IntegrationByParts.lean Added Mathlib/MeasureTheory/Integral/VitaliCaratheodory.lean 2025-04-30 16:43:55 bcc1a2a feat(Algebra/Order/BigOperator): add lemmas (#23266) ESTIMATED CHANGES Modified Mathlib/Algebra/Order/BigOperators/Ring/Finset.lean + theorem Finset.le_prod_of_submultiplicative_of_nonneg + theorem Finset.le_prod_of_submultiplicative_on_pred_of_nonneg Modified Mathlib/Algebra/Order/BigOperators/Ring/Multiset.lean + theorem Multiset.le_prod_of_submultiplicative_of_nonneg + theorem Multiset.le_prod_of_submultiplicative_on_pred_of_nonneg Modified Mathlib/Data/Finset/Max.lean + theorem Multiset.exists_max_image + theorem Multiset.exists_min_image 2025-04-30 15:39:58 53c38dd fix: write `≃ᴬ[k]` (instead of `≃ᵃL[k]`) for `ContinuousAffineEquiv` (#24357) This PR changes the notation for `ContinuousAffineEquiv` from `≃ᵃL[k]` to `≃ᴬ[k]`. This is consistent with the notation for `ContinuousAffineMap`, namely `→ᴬ[k]`. I would like to change the notation for continuous bundled functions in the future (see [#mathlib4 > RFC: notation for continuous maps in algebra](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/RFC.3A.20notation.20for.20continuous.20maps.20in.20algebra)), but before that we should at least have the `Map` and `Equiv` versions be consistent. ESTIMATED CHANGES Modified Mathlib/Analysis/Convex/AmpleSet.lean +/- theorem AmpleSet.image +/- theorem AmpleSet.image_iff +/- theorem AmpleSet.preimage +/- theorem AmpleSet.preimage_iff Modified Mathlib/LinearAlgebra/AffineSpace/ContinuousAffineEquiv.lean +/- def ContinuousAffineEquiv.Simps.apply +/- def ContinuousAffineEquiv.Simps.symm_apply +/- theorem ContinuousAffineEquiv.apply_eq_iff_eq +/- theorem ContinuousAffineEquiv.apply_eq_iff_eq_symm_apply +/- theorem ContinuousAffineEquiv.apply_symm_apply +/- theorem ContinuousAffineEquiv.coe_coe +/- theorem ContinuousAffineEquiv.coe_injective +/- theorem ContinuousAffineEquiv.coe_toContinuousAffineMap +/- theorem ContinuousAffineEquiv.coe_toEquiv +/- theorem ContinuousAffineEquiv.coe_trans +/- def ContinuousAffineEquiv.constVAdd +/- theorem ContinuousAffineEquiv.eq_symm_apply +/- theorem ContinuousAffineEquiv.ext +/- theorem ContinuousAffineEquiv.image_preimage +/- theorem ContinuousAffineEquiv.image_symm +/- theorem ContinuousAffineEquiv.image_symm_image +/- theorem ContinuousAffineEquiv.preimage_image +/- theorem ContinuousAffineEquiv.preimage_symm +/- def ContinuousAffineEquiv.refl +/- theorem ContinuousAffineEquiv.refl_trans +/- theorem ContinuousAffineEquiv.self_trans_symm +/- def ContinuousAffineEquiv.symm +/- theorem ContinuousAffineEquiv.symm_apply_apply +/- theorem ContinuousAffineEquiv.symm_apply_eq +/- theorem ContinuousAffineEquiv.symm_bijective +/- theorem ContinuousAffineEquiv.symm_image_image +/- theorem ContinuousAffineEquiv.symm_symm +/- theorem ContinuousAffineEquiv.symm_symm_apply +/- theorem ContinuousAffineEquiv.symm_toAffineEquiv +/- theorem ContinuousAffineEquiv.symm_toEquiv +/- theorem ContinuousAffineEquiv.symm_trans_self +/- theorem ContinuousAffineEquiv.toAffineEquiv_injective +/- def ContinuousAffineEquiv.toContinuousAffineMap +/- theorem ContinuousAffineEquiv.toContinuousAffineMap_toAffineMap +/- theorem ContinuousAffineEquiv.toContinuousAffineMap_toContinuousMap +/- def ContinuousAffineEquiv.toHomeomorph +/- def ContinuousAffineEquiv.trans +/- theorem ContinuousAffineEquiv.trans_apply +/- theorem ContinuousAffineEquiv.trans_assoc +/- theorem ContinuousAffineEquiv.trans_refl +/- theorem ContinuousAffineEquiv.trans_toContinuousAffineMap +/- def ContinuousLinearEquiv.toContinuousAffineEquiv 2025-04-30 15:39:56 6a8f791 feat: generalise nondegeneracy of root pairing forms to allow coefficients in subring (#23329) This PR adds generalized versions of existing results, where the original base ring is no longer necessarily linearly ordered, but is an algebra over a LinearOrderedCommRing. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/LinearAlgebra/RootSystem/Base.lean Modified Mathlib/LinearAlgebra/RootSystem/BaseChange.lean Modified Mathlib/LinearAlgebra/RootSystem/Defs.lean - theorem RootPairing.IsValuedIn.trans - theorem RootPairing.algebraMap_coxeterWeightIn - theorem RootPairing.algebraMap_pairingIn - theorem RootPairing.coroot'_apply_apply_mem_of_mem_span - theorem RootPairing.corootSpan_dualAnnihilator_map_eq - theorem RootPairing.corootSpan_dualAnnihilator_map_eq_iInf_ker_coroot' - theorem RootPairing.corootSpan_map_toDualRight - theorem RootPairing.corootSpan_mem_invtSubmodule_coreflection - theorem RootPairing.corootSpan_ne_bot - def RootPairing.coxeterWeightIn - theorem RootPairing.iInf_ker_coroot'_eq - theorem RootPairing.iInf_ker_root'_eq - theorem RootPairing.isValuedIn_iff_mem_range - def RootPairing.pairingIn - theorem RootPairing.pairingIn_reflection_perm_self_left - theorem RootPairing.pairingIn_reflection_perm_self_right - theorem RootPairing.pairingIn_same - theorem RootPairing.root'_apply_apply_mem_of_mem_span - theorem RootPairing.rootSpan_dualAnnihilator_map_eq - theorem RootPairing.rootSpan_dualAnnihilator_map_eq_iInf_ker_root' - theorem RootPairing.rootSpan_map_toDualLeft - theorem RootPairing.rootSpan_mem_invtSubmodule_reflection - theorem RootPairing.rootSpan_ne_bot - theorem RootPairing.span_coroot'_eq_top - theorem RootPairing.span_root'_eq_top Modified Mathlib/LinearAlgebra/RootSystem/Finite/CanonicalBilinear.lean + def RootPairing.CoPolarizationIn + theorem RootPairing.CoPolarizationIn_apply + theorem RootPairing.CoPolarizationIn_eq + def RootPairing.PolarizationIn + theorem RootPairing.PolarizationIn_apply + theorem RootPairing.PolarizationIn_eq + def RootPairing.RootFormIn + theorem RootPairing.algebraMap_posRootForm_posForm + theorem RootPairing.algebraMap_rootFormIn +/- theorem RootPairing.exists_ge_zero_eq_rootForm +/- def RootPairing.posRootForm + theorem RootPairing.posRootForm_eq + theorem RootPairing.posRootForm_posForm_apply_apply + theorem RootPairing.prod_rootFormIn_smul_coroot_mem_range_PolarizationIn + theorem RootPairing.range_polarizationIn + theorem RootPairing.range_polarizationIn_le_span_coroot + theorem RootPairing.rootFormIn_self_smul_coroot + theorem RootPairing.toPerfectPairing_apply_PolarizationIn + theorem RootPairing.zero_le_posForm Modified Mathlib/LinearAlgebra/RootSystem/Finite/Lemmas.lean Modified Mathlib/LinearAlgebra/RootSystem/Finite/Nondegenerate.lean + theorem RootPairing.exists_coroot_ne + theorem RootPairing.finrank_corootSpan_eq' +/- theorem RootPairing.finrank_corootSpan_eq + theorem RootPairing.finrank_range_polarization_eq_finrank_span_coroot + theorem RootPairing.polarizationIn_Injective + theorem RootPairing.posRootForm_posForm_anisotropic + theorem RootPairing.posRootForm_posForm_nondegenerate + theorem RootPairing.posRootForm_posForm_pos_of_ne_zero +/- theorem RootPairing.rootForm_pos_of_ne_zero Modified Mathlib/LinearAlgebra/RootSystem/Irreducible.lean Added Mathlib/LinearAlgebra/RootSystem/IsValuedIn.lean + theorem RootPairing.IsValuedIn.trans + theorem RootPairing.algebraMap_coroot'In_apply + theorem RootPairing.algebraMap_coxeterWeightIn + theorem RootPairing.algebraMap_pairingIn + theorem RootPairing.algebraMap_root'In_apply + def RootPairing.coroot'In + theorem RootPairing.coroot'In_rootSpanMem_eq_pairingIn + theorem RootPairing.coroot'_apply_apply_mem_of_mem_span + theorem RootPairing.corootSpan_dualAnnihilator_map_eq + theorem RootPairing.corootSpan_dualAnnihilator_map_eq_iInf_ker_coroot' + theorem RootPairing.corootSpan_map_toDualRight + theorem RootPairing.corootSpan_mem_invtSubmodule_coreflection + theorem RootPairing.corootSpan_ne_bot + def RootPairing.coxeterWeightIn + theorem RootPairing.iInf_ker_coroot'_eq + theorem RootPairing.iInf_ker_root'_eq + theorem RootPairing.isValuedIn_iff_mem_range + def RootPairing.pairingIn + theorem RootPairing.pairingIn_reflection_perm + theorem RootPairing.pairingIn_reflection_perm_self_left + theorem RootPairing.pairingIn_reflection_perm_self_right + theorem RootPairing.pairingIn_same + def RootPairing.root'In + theorem RootPairing.root'In_corootSpanMem_eq_pairingIn + theorem RootPairing.root'_apply_apply_mem_of_mem_span + theorem RootPairing.rootSpan_dualAnnihilator_map_eq + theorem RootPairing.rootSpan_dualAnnihilator_map_eq_iInf_ker_root' + theorem RootPairing.rootSpan_map_toDualLeft + theorem RootPairing.rootSpan_mem_invtSubmodule_reflection + theorem RootPairing.rootSpan_ne_bot + theorem RootPairing.span_coroot'_eq_top + theorem RootPairing.span_root'_eq_top Modified Mathlib/LinearAlgebra/RootSystem/Reduced.lean Modified Mathlib/LinearAlgebra/RootSystem/RootPositive.lean 2025-04-30 14:55:24 c8dd625 chore: use modern config syntax (#24469) For example, `simp +contextual` is much more readable than `simp (config := { contextual := true })`. This PR replaces about 150 occurrences; mathlib has another 200 occurrences remaining. (Two dozen of those are from the "apply with" tactic, which doesn't support modern syntax yet.) Helps with auto-formatting: the spacing was not quite uniform in mathlib. ESTIMATED CHANGES Modified Mathlib/Algebra/AddConstMap/Equiv.lean Modified Mathlib/Algebra/BigOperators/Fin.lean Modified Mathlib/Algebra/BigOperators/Group/Finset/Piecewise.lean Modified Mathlib/Algebra/Category/Grp/AB.lean Modified Mathlib/Algebra/CharZero/Quotient.lean Modified Mathlib/Algebra/Group/Action/End.lean Modified Mathlib/Algebra/Group/Submonoid/Operations.lean Modified Mathlib/Algebra/Group/Subsemigroup/Operations.lean Modified Mathlib/Algebra/GroupWithZero/Action/Basic.lean Modified Mathlib/Algebra/GroupWithZero/Units/Equiv.lean Modified Mathlib/Algebra/Homology/LocalCohomology.lean Modified Mathlib/Algebra/Module/Submodule/RestrictScalars.lean Modified Mathlib/Algebra/MonoidAlgebra/Defs.lean Modified Mathlib/Algebra/Order/Group/OrderIso.lean Modified Mathlib/Algebra/Order/GroupWithZero/Canonical.lean Modified Mathlib/Algebra/Order/GroupWithZero/Unbundled/OrderIso.lean Modified Mathlib/Algebra/Order/Interval/Set/Group.lean Modified Mathlib/Algebra/Ring/AddAut.lean Modified Mathlib/Analysis/Analytic/ChangeOrigin.lean Modified Mathlib/Analysis/Analytic/Composition.lean Modified Mathlib/Analysis/Asymptotics/AsymptoticEquivalent.lean Modified Mathlib/Analysis/BoxIntegral/Box/Basic.lean Modified Mathlib/Analysis/BoxIntegral/Partition/Split.lean Modified Mathlib/Analysis/Complex/Basic.lean Modified Mathlib/Analysis/Convolution.lean Modified Mathlib/Analysis/Normed/Field/Lemmas.lean Modified Mathlib/Analysis/SpecialFunctions/Log/Basic.lean Modified Mathlib/CategoryTheory/Category/KleisliCat.lean Modified Mathlib/CategoryTheory/GlueData.lean Modified Mathlib/CategoryTheory/Limits/Shapes/SequentialProduct.lean Modified Mathlib/CategoryTheory/Preadditive/Mat.lean Modified Mathlib/CategoryTheory/Sites/Coherent/ExtensiveColimits.lean Modified Mathlib/Combinatorics/Quiver/Covering.lean Modified Mathlib/Combinatorics/SimpleGraph/Regularity/Increment.lean Modified Mathlib/Control/Basic.lean Modified Mathlib/Control/Functor/Multivariate.lean Modified Mathlib/Data/Complex/Basic.lean Modified Mathlib/Data/Complex/Module.lean Modified Mathlib/Data/Fin/Tuple/Basic.lean Modified Mathlib/Data/Fintype/Pi.lean Modified Mathlib/Data/Holor.lean Modified Mathlib/Data/List/Chain.lean Modified Mathlib/Data/List/EditDistance/Defs.lean Modified Mathlib/Data/List/Indexes.lean Modified Mathlib/Data/List/Nodup.lean Modified Mathlib/Data/List/Permutation.lean Modified Mathlib/Data/Matroid/Closure.lean Modified Mathlib/Data/Matroid/Constructions.lean Modified Mathlib/Data/QPF/Multivariate/Constructions/Comp.lean Modified Mathlib/Data/QPF/Univariate/Basic.lean Modified Mathlib/Data/Rel.lean +/- theorem Function.graph_id Modified Mathlib/Data/Set/Piecewise.lean Modified Mathlib/Data/Stream/Init.lean Modified Mathlib/Data/Sym/Sym2.lean Modified Mathlib/Data/WSeq/Relation.lean Modified Mathlib/Geometry/Manifold/ContMDiffMFDeriv.lean Modified Mathlib/Geometry/Manifold/VectorBundle/Basic.lean Modified Mathlib/Geometry/Manifold/VectorBundle/MDifferentiable.lean Modified Mathlib/Geometry/Manifold/VectorBundle/Tangent.lean Modified Mathlib/GroupTheory/CoprodI.lean Modified Mathlib/LinearAlgebra/Basis/Defs.lean Modified Mathlib/LinearAlgebra/Multilinear/Basic.lean Modified Mathlib/LinearAlgebra/Pi.lean Modified Mathlib/LinearAlgebra/QuadraticForm/Basic.lean Modified Mathlib/LinearAlgebra/QuadraticForm/IsometryEquiv.lean Modified Mathlib/Logic/Basic.lean Modified Mathlib/Logic/Embedding/Basic.lean Modified Mathlib/MeasureTheory/Function/SimpleFunc.lean Modified Mathlib/MeasureTheory/Integral/CircleIntegral.lean Modified Mathlib/MeasureTheory/Integral/TorusIntegral.lean Modified Mathlib/MeasureTheory/OuterMeasure/Induced.lean Modified Mathlib/NumberTheory/NumberField/House.lean Modified Mathlib/NumberTheory/Padics/RingHoms.lean Modified Mathlib/Order/Closure.lean Modified Mathlib/Order/Hom/Basic.lean Modified Mathlib/Order/Interval/Set/OrdConnectedComponent.lean Modified Mathlib/Order/Minimal.lean Modified Mathlib/Order/SuccPred/Archimedean.lean Modified Mathlib/Probability/Kernel/Composition/CompProd.lean Modified Mathlib/Probability/Martingale/BorelCantelli.lean Modified Mathlib/Probability/Martingale/Upcrossing.lean Modified Mathlib/Probability/StrongLaw.lean Modified Mathlib/RepresentationTheory/GroupCohomology/Resolution.lean Modified Mathlib/RingTheory/Unramified/Finite.lean Modified Mathlib/RingTheory/Valuation/Basic.lean Modified Mathlib/RingTheory/WittVector/Basic.lean Modified Mathlib/RingTheory/WittVector/IsPoly.lean Modified Mathlib/SetTheory/Ordinal/Family.lean Modified Mathlib/Topology/Algebra/Group/Basic.lean Modified Mathlib/Topology/Algebra/Module/Alternating/Basic.lean Modified Mathlib/Topology/Algebra/Module/Multilinear/Basic.lean Modified Mathlib/Topology/Algebra/Monoid.lean Modified Mathlib/Topology/Category/Profinite/Nobeling/Basic.lean Modified Mathlib/Topology/Category/Profinite/Nobeling/Induction.lean Modified Mathlib/Topology/Category/Profinite/Nobeling/Successor.lean Modified Mathlib/Topology/Category/Profinite/Nobeling/ZeroLimit.lean Modified Mathlib/Topology/Constructions.lean Modified Mathlib/Topology/ContinuousMap/Basic.lean Modified Mathlib/Topology/Exterior.lean Modified Mathlib/Topology/MetricSpace/GromovHausdorff.lean Modified Mathlib/Topology/MetricSpace/Isometry.lean Modified Mathlib/Topology/MetricSpace/ThickenedIndicator.lean Modified Mathlib/Topology/UniformSpace/Pi.lean 2025-04-30 14:55:23 0f346fa fix: warn if to_additive helper functions try to reorder lists that are too small (#24329) Currently, code like the following, which attempts to permute arguments out of the range of the argument list, causes a panic in the helper functions `reorderForall` and `reorderLambda`: ```lean @[to_additive (reorder := 3 4 51)] def reorderMulThree' {α : Type _} [Mul α] (x y z : α) : α := x * y * z ``` We change from using `forallTelescope` and `lambdaTelescope` to their bounded versions `forallBoundedTelescope` and `lambdaBoundedTelescope` with an explicit bound which ensures that we always expand as much as possible, and also add a warning if the bound does not match the size of the argument list. Extracted from #21719 ESTIMATED CHANGES Modified Mathlib/Tactic/ToAdditive/Frontend.lean Modified MathlibTest/toAdditive.lean + def Test.reorderMulThree' 2025-04-30 14:12:58 4505602 chore: update Mathlib dependencies 2025-04-30 (#24475) This PR updates the Mathlib dependencies. ESTIMATED CHANGES Modified lake-manifest.json 2025-04-30 13:43:47 4a5bed5 feat: a continuous meromorphic function is analytic (#24370) We also characterize the order of a meromorphic function being `< 0`, or `= 0`, or `> 0`, as the convergence of the function to infinity, resp. a nonzero constant, resp. zero. This is used to generalize `analyticAt_mem_codiscreteWithin`, and from there remove completeness assumptions throughout the meromorphic functions theory. ESTIMATED CHANGES Modified Mathlib/Analysis/Analytic/Basic.lean Modified Mathlib/Analysis/Meromorphic/Basic.lean + theorem MeromorphicAt.eventually_continuousAt - theorem MeromorphicOn.analyticAt_mem_codiscreteWithin Modified Mathlib/Analysis/Meromorphic/Divisor.lean +/- theorem MeromorphicOn.divisor_inv +/- theorem MeromorphicOn.divisor_mul +/- theorem MeromorphicOn.divisor_smul Modified Mathlib/Analysis/Meromorphic/NormalForm.lean +/- theorem MeromorphicNFOn.divisor_nonneg_iff_analyticOnNhd +/- theorem MeromorphicNFOn.zero_set_eq_divisor_support +/- theorem MeromorphicOn.divisor_of_toMeromorphicNFOn +/- theorem MeromorphicOn.meromorphicNFAt_mem_codiscreteWithin +/- theorem MeromorphicOn.toMeromorphicNFOn_eq_self_on_nhdNE +/- theorem meromorphicNFOn_toMeromorphicNFOn +/- theorem order_toMeromorphicNFOn +/- theorem toMeromorphicNFOn_eqOn_codiscrete +/- theorem toMeromorphicNFOn_eq_self +/- theorem toMeromorphicNFOn_eq_toMeromorphicNFAt +/- theorem toMeromorphicNFOn_eq_toMeromorphicNFAt_on_nhd Modified Mathlib/Analysis/Meromorphic/Order.lean + theorem MeromorphicAt.tendsto_cobounded_iff_order_neg + theorem MeromorphicAt.tendsto_cobounded_of_order_neg + theorem MeromorphicAt.tendsto_ne_zero_iff_order_eq_zero + theorem MeromorphicAt.tendsto_ne_zero_of_order_eq_zero + theorem MeromorphicAt.tendsto_nhds_iff_order_nonneg + theorem MeromorphicAt.tendsto_nhds_of_order_nonneg + theorem MeromorphicAt.tendsto_zero_iff_order_pos + theorem MeromorphicAt.tendsto_zero_of_order_pos + theorem MeromorphicOn.analyticAt_mem_codiscreteWithin +/- theorem MeromorphicOn.codiscrete_setOf_order_eq_zero_or_top + theorem MeromorphicOn.eventually_analyticAt + theorem MeromorphicOn.eventually_analyticAt_or_mem_compl 2025-04-30 13:43:45 fafe840 chore: use Std.TreeMap in `linarith` (#24367) This PR avoids use of `Batteries.RBMap` in the implementation of `linarith`, where the new `Std.TreeMap` suffices. ESTIMATED CHANGES Modified Mathlib/Tactic/Linarith/Oracle/FourierMotzkin.lean + def Std.TreeSet.sdiff + def Std.TreeSet.union Modified Mathlib/Tactic/Linarith/Parsing.lean +/- def Linarith.Monom.one +/- def Linarith.Sum.one +/- def Linarith.one + def Std.TreeMap.beq 2025-04-30 12:59:49 78ec36c chore: more whitespace fixes (#24472) Found by the upcoming linter in #24465. ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/Subalgebra/Lattice.lean +/- theorem AlgHom.eqOn_adjoin_iff Modified Mathlib/Algebra/BigOperators/Finsupp/Basic.lean Modified Mathlib/Algebra/Category/ModuleCat/Sheaf.lean Modified Mathlib/Algebra/Category/MonCat/Limits.lean Modified Mathlib/Algebra/Group/Pointwise/Finset/Basic.lean Modified Mathlib/Algebra/Group/UniqueProds/Basic.lean Modified Mathlib/Algebra/Homology/BifunctorAssociator.lean Modified Mathlib/Algebra/Homology/HomotopyCategory/MappingCone.lean Modified Mathlib/Algebra/Homology/LocalCohomology.lean +/- def localCohomology.isoSelfLERadical Modified Mathlib/Algebra/Homology/Localization.lean Modified Mathlib/Algebra/Homology/Square.lean Modified Mathlib/Algebra/Module/LocalizedModule/AtPrime.lean Modified Mathlib/Algebra/Module/LocalizedModule/Away.lean Modified Mathlib/Algebra/Order/Hom/Basic.lean Modified Mathlib/Algebra/Quaternion.lean +/- def QuaternionAlgebra.equivProd +/- def QuaternionAlgebra.equivTuple Modified Mathlib/Algebra/Ring/Subring/Basic.lean Modified Mathlib/Algebra/Ring/Subsemiring/Basic.lean Modified Mathlib/AlgebraicTopology/SimplexCategory/Basic.lean +/- def SimplexCategory.factor_δ +/- def SimplexCategory.mkOfLe Modified Mathlib/AlgebraicTopology/SimplicialSet/StdSimplex.lean +/- def SSet.stdSimplex.const +/- def SSet.stdSimplex.edge +/- def SSet.stdSimplex.triangle Modified Mathlib/CategoryTheory/Bicategory/Functor/Lax.lean +/- structure CategoryTheory.LaxFunctor Modified Mathlib/CategoryTheory/Comma/Over/Pullback.lean Modified Mathlib/CategoryTheory/Grothendieck.lean +/- def CategoryTheory.Grothendieck.functor Modified Mathlib/CategoryTheory/Limits/Preserves/Shapes/Pullbacks.lean Modified Mathlib/CategoryTheory/Monoidal/Subcategory.lean +/- theorem CategoryTheory.ObjectProperty.ihom_map Modified Mathlib/CategoryTheory/ObjectProperty/FullSubcategory.lean +/- theorem CategoryTheory.ObjectProperty.FullSubcategory.lift_comp_inclusion_eq Modified Mathlib/CategoryTheory/Shift/Opposite.lean Modified Mathlib/Combinatorics/Enumerative/Composition.lean +/- theorem Composition.sigma_eq_iff_blocks_eq Modified Mathlib/Condensed/TopCatAdjunction.lean +/- def CondensedSet.compactlyGeneratedAdjunctionCounitHomeo Modified Mathlib/Condensed/TopComparison.lean Modified Mathlib/Data/ENNReal/Inv.lean +/- def ENNReal.mulLeftOrderIso +/- def ENNReal.mulRightOrderIso Modified Mathlib/Data/Finset/Lattice/Fold.lean Modified Mathlib/Data/Finsupp/Basic.lean +/- def Finsupp.splitSupport Modified Mathlib/Data/Matrix/Basis.lean Modified Mathlib/Data/Matrix/Invertible.lean +/- theorem Matrix.invOf_add_mul_mul +/- def Matrix.invertibleAddMulMul Modified Mathlib/Data/Real/Sqrt.lean Modified Mathlib/Data/W/Basic.lean +/- def WType.elim Modified Mathlib/FieldTheory/Minpoly/IsConjRoot.lean +/- theorem IsConjRoot.trans Modified Mathlib/GroupTheory/NoncommPiCoprod.lean Modified Mathlib/GroupTheory/Perm/Sign.lean +/- def Equiv.Perm.signBijAux Modified Mathlib/LinearAlgebra/BilinearForm/TensorProduct.lean Modified Mathlib/LinearAlgebra/Finsupp/VectorSpace.lean +/- theorem Basis.repr_smul' Modified Mathlib/LinearAlgebra/FreeModule/Basic.lean +/- theorem Module.free_def Modified Mathlib/Order/WellFoundedSet.lean Modified Mathlib/RingTheory/Derivation/ToSquareZero.lean +/- def derivationToSquareZeroOfLift +/- def liftOfDerivationToSquareZero Modified Mathlib/RingTheory/NonUnitalSubring/Basic.lean Modified Mathlib/RingTheory/NonUnitalSubsemiring/Basic.lean Modified Mathlib/RingTheory/Polynomial/Eisenstein/Criterion.lean Modified Mathlib/Tactic/Linarith/Lemmas.lean +/- theorem Linarith.sub_neg_of_lt Modified Mathlib/Topology/Category/CompHausLike/Limits.lean +/- def CompHausLike.isTerminalPUnit Modified Mathlib/Topology/Category/TopCat/Limits/Basic.lean +/- def TopCat.coconeOfCoconeForget Modified Mathlib/Topology/Constructions/SumProd.lean Modified Mathlib/Topology/Sheaves/SheafCondition/Sites.lean +/- theorem TopCat.Presheaf.coveringOfPresieve_apply 2025-04-30 12:59:47 c80f685 fix(Tactic/Polyrith): correct `Quote ℤ` instance (#24470) Fixes the `Quote ℤ` instance to make it return the correct value on negatives. This doesn't actually break anything yet, but could become problematic in the future. ESTIMATED CHANGES Modified Mathlib/Tactic/Polyrith.lean 2025-04-30 12:59:46 dbb2b01 fix: formatting of discover-lean-pr-testing.yml messages (#24468) ESTIMATED CHANGES Modified .github/workflows/discover-lean-pr-testing.yml 2025-04-30 12:59:44 ad93d6e style: further whitespace fixes (#24467) Found by the upcoming linter in #24465. ESTIMATED CHANGES Modified Mathlib/Algebra/Module/ZLattice/Covolume.lean Modified Mathlib/Algebra/Star/Subsemiring.lean +/- def StarSubsemiring.center Modified Mathlib/Algebra/Vertex/HVertexOperator.lean Modified Mathlib/AlgebraicTopology/SimplicialSet/Horn.lean +/- def SSet.horn.edge +/- def SSet.horn.edge₃ +/- def SSet.horn.face +/- def SSet.horn.primitiveEdge +/- def SSet.horn.primitiveTriangle Modified Mathlib/Analysis/Analytic/Linear.lean +/- theorem analyticAt_fst Modified Mathlib/Analysis/Calculus/ContDiff/FaaDiBruno.lean Modified Mathlib/Analysis/Convex/Body.lean +/- theorem ConvexBody.zero_mem_of_symmetric Modified Mathlib/Analysis/Fourier/FourierTransformDeriv.lean Modified Mathlib/Analysis/MellinTransform.lean Modified Mathlib/Analysis/Normed/Field/WithAbs.lean +/- theorem AbsoluteValue.Completion.locallyCompactSpace Modified Mathlib/Analysis/SpecialFunctions/ContinuousFunctionalCalculus/Rpow/Basic.lean Modified Mathlib/CategoryTheory/Category/ReflQuiv.lean +/- def CategoryTheory.ReflQuiv.isoOfEquiv Modified Mathlib/CategoryTheory/ChosenFiniteProducts/Cat.lean +/- def CategoryTheory.Cat.prodCone Modified Mathlib/CategoryTheory/ConnectedComponents.lean +/- def CategoryTheory.ConnectedComponents.functorToDiscrete +/- def CategoryTheory.ConnectedComponents.liftFunctor Modified Mathlib/CategoryTheory/FiberedCategory/Fibered.lean Modified Mathlib/CategoryTheory/Localization/Pi.lean Modified Mathlib/CategoryTheory/WithTerminal/Basic.lean +/- def CategoryTheory.WithInitial.mkCommaMorphism +/- def CategoryTheory.WithInitial.ofCommaMorphism +/- def CategoryTheory.WithTerminal.mkCommaMorphism +/- def CategoryTheory.WithTerminal.ofCommaMorphism Modified Mathlib/Combinatorics/SimpleGraph/Clique.lean +/- theorem SimpleGraph.isIndepSet_neighborSet_of_triangleFree Modified Mathlib/Data/MLList/BestFirst.lean Modified Mathlib/Data/Matroid/IndepAxioms.lean Modified Mathlib/FieldTheory/Minpoly/IsConjRoot.lean +/- theorem IsConjRoot.exists_algEquiv Modified Mathlib/FieldTheory/Normal/Basic.lean +/- theorem minpoly.exists_algEquiv_of_root' Modified Mathlib/Geometry/Manifold/Algebra/Structures.lean +/- theorem topologicalSemiring_of_contMDiffRing Modified Mathlib/Geometry/Manifold/ChartedSpace.lean Modified Mathlib/Geometry/Manifold/VectorBundle/Basic.lean Modified Mathlib/GroupTheory/GroupExtension/Basic.lean Modified Mathlib/GroupTheory/GroupExtension/Defs.lean Modified Mathlib/GroupTheory/SemidirectProduct.lean Modified Mathlib/LinearAlgebra/FreeProduct/Basic.lean +/- theorem DirectSum.induction_lon Modified Mathlib/LinearAlgebra/Matrix/Spectrum.lean Modified Mathlib/MeasureTheory/Function/LpSeminorm/Basic.lean Modified Mathlib/MeasureTheory/Group/MeasurableEquiv.lean Modified Mathlib/MeasureTheory/Integral/Asymptotics.lean Modified Mathlib/MeasureTheory/Integral/MeanInequalities.lean Modified Mathlib/MeasureTheory/MeasurableSpace/Constructions.lean +/- theorem measurable_update' Modified Mathlib/MeasureTheory/MeasurableSpace/EventuallyMeasurable.lean +/- def EventuallyMeasurableSet Modified Mathlib/MeasureTheory/Measure/Lebesgue/EqHaar.lean +/- theorem Basis.parallelepiped_eq_map Modified Mathlib/MeasureTheory/Measure/Regular.lean Modified Mathlib/Order/LiminfLimsup.lean Modified Mathlib/Topology/Algebra/Category/ProfiniteGrp/Basic.lean +/- def ProfiniteGrp.ofClosedSubgroup Modified Mathlib/Topology/Algebra/OpenSubgroup.lean +/- theorem Subgroup.isOpen_of_one_mem_interior Modified Mathlib/Topology/Algebra/Valued/WithVal.lean Modified Mathlib/Topology/ContinuousMap/Algebra.lean Modified Mathlib/Topology/ContinuousMap/Bounded/Normed.lean Modified Mathlib/Topology/LocallyConstant/Algebra.lean +/- def LocallyConstant.comapMonoidHom Modified Mathlib/Topology/MetricSpace/Dilation.lean Modified Mathlib/Topology/MetricSpace/Gluing.lean +/- def Metric.inductiveLimitDist +/- theorem Metric.inductiveLimitDist_eq_dist Modified Mathlib/Topology/Sheaves/SheafCondition/Sites.lean +/- def TopCat.Presheaf.presieveOfCovering.indexOfHom +/- theorem TopCat.Presheaf.presieveOfCovering.indexOfHom_spec 2025-04-30 12:59:43 952f77f perf(aesop_cat): use `apply_rfl` in `rfl_cat` (#24458) `rfl` is a macro that calls both `eq_rfl` and `apply_rfl` (for backwards compatability reasons). When `rfl` succeeds this is no problem. But if `rfl` fails, it takes twice as long to fail. Since `rfl_cat` is intended to fail often, I let it call `apply_rfl` directly instead of `rfl`. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Category/Basic.lean 2025-04-30 12:12:16 5b76dec feat(Combinatorics/SimpleGraph): part of Tutte's theorem (#22119) Adds three key parts of the proof of Tutte's theorem, with some supporting lemma's: - necessity of the Tutte condition (`not_isTutteViolator`) - the fact that the empty set violates the Tutte condition if the number of vertices is odd (`IsTutteViolator.empty`) - the construction of a perfect matching in a graph that decomposes into cliques (`Subgraph.IsPerfectMatching.exists_of_isClique_supp`) Definitions added: `IsTutteViolator`. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Combinatorics/SimpleGraph/Connectivity/Represents.lean + theorem SimpleGraph.ConnectedComponent.Represents.ConnectedComponent.even_ncard_supp_sdiff_rep + theorem SimpleGraph.ConnectedComponent.Represents.ncard_eq Modified Mathlib/Combinatorics/SimpleGraph/Matching.lean + theorem SimpleGraph.IsClique.even_iff_exists_isMatching + theorem SimpleGraph.Subgraph.IsMatching.eq_of_adj_left + theorem SimpleGraph.Subgraph.IsMatching.eq_of_adj_right +/- theorem SimpleGraph.Subgraph.IsMatching.not_adj_left_of_ne +/- theorem SimpleGraph.Subgraph.IsMatching.not_adj_right_of_ne Added Mathlib/Combinatorics/SimpleGraph/Tutte.lean + theorem SimpleGraph.IsTutteViolator.empty + def SimpleGraph.IsTutteViolator + theorem SimpleGraph.Subgraph.IsPerfectMatching.exists_of_isClique_supp + theorem SimpleGraph.not_isTutteViolator_of_isPerfectMatching Modified Mathlib/Combinatorics/SimpleGraph/UniversalVerts.lean + theorem SimpleGraph.disjoint_image_val_universalVerts + theorem SimpleGraph.even_ncard_image_val_supp_sdiff_image_val_rep_union Modified Mathlib/Data/Set/Card.lean + theorem Set.even_ncard_compl_iff + theorem Set.odd_ncard_compl_iff 2025-04-30 12:12:15 d8c00d3 feat(LinearAlgebra/PiTensorProduct): dependent version of tmulEquiv (#18534) Given a family of `R`-modules `N` indexed by `ι ⊕ ι'`, we obtain a linear equivalence `tmulEquivDep : (⨂[R] i₁, N (.inl i₁)) ⊗[R] (⨂[R] i₂, N (.inr i₂)) ≃ₗ[R] ⨂[R] i, N i`, which generalizes `tmulEquiv` (which is the case all `N i` are the same module). ESTIMATED CHANGES Modified Mathlib/Data/Sum/Basic.lean + theorem Sum.update_inl_apply_inl' + theorem Sum.update_inr_apply_inr' Modified Mathlib/LinearAlgebra/Multilinear/Basic.lean Modified Mathlib/LinearAlgebra/Multilinear/Curry.lean +/- theorem MultilinearMap.coe_currySumEquiv +/- theorem MultilinearMap.coe_currySumEquiv_symm +/- def MultilinearMap.currySum +/- def MultilinearMap.currySumEquiv + theorem MultilinearMap.currySum_add + theorem MultilinearMap.currySum_apply' +/- theorem MultilinearMap.currySum_apply + theorem MultilinearMap.currySum_smul + theorem MultilinearMap.currySum_uncurrySum +/- def MultilinearMap.uncurrySum + theorem MultilinearMap.uncurrySum_add + theorem MultilinearMap.uncurrySum_apply - theorem MultilinearMap.uncurrySum_aux_apply + theorem MultilinearMap.uncurrySum_currySum + theorem MultilinearMap.uncurrySum_smul Modified Mathlib/LinearAlgebra/Multilinear/TensorProduct.lean + def MultilinearMap.domCoprodDep' + theorem MultilinearMap.domCoprodDep'_apply + def MultilinearMap.domCoprodDep Modified Mathlib/LinearAlgebra/PiTensorProduct.lean +/- def PiTensorProduct.tmulEquiv + def PiTensorProduct.tmulEquivDep + theorem PiTensorProduct.tmulEquivDep_apply + theorem PiTensorProduct.tmulEquivDep_symm_apply Modified Mathlib/Logic/Function/Basic.lean + theorem Function.update_apply_of_injective 2025-04-30 10:47:23 d31099d feat(QuotientGroup): surjectivity and kernel of `QuotientGroup.map` (#23205) Prove formulas for the kernel of `QuotientGroup.lift` and `QuotientGroup.map` and that these maps are surjective if the corresponding functions are surjective. ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Subgroup/Ker.lean +/- theorem MonoidHom.comap_ker + theorem MonoidHom.ker_toSubmonoid Modified Mathlib/Algebra/Group/Subgroup/Map.lean + theorem Subgroup.map_toSubmonoid Modified Mathlib/Algebra/Group/Submonoid/Operations.lean + theorem Submonoid.map_comap_eq_self_of_surjective Modified Mathlib/Data/Quot.lean + theorem Quotient.lift_surjective + theorem Quotient.lift_surjective_iff Modified Mathlib/GroupTheory/QuotientGroup/Defs.lean + theorem QuotientGroup.ker_lift + theorem QuotientGroup.ker_map + theorem QuotientGroup.lift_comp_mk' + theorem QuotientGroup.lift_surjective_of_surjective + theorem QuotientGroup.map_surjective_of_surjective 2025-04-30 09:03:52 819ba93 feat(FDeriv/Basic): add `HasFDerivWithinAt.of_finite` (#24466) ... and some corollaries ESTIMATED CHANGES Modified Mathlib/Analysis/Calculus/FDeriv/Basic.lean + theorem DifferentiableWithinAt.of_finite + theorem DifferentiableWithinAt.of_subsingleton + theorem HasFDerivWithinAt.of_finite + theorem HasFDerivWithinAt.of_subsingleton 2025-04-30 09:03:50 9525089 chore: `erw` in `Topology/Order/` (#23336) ESTIMATED CHANGES Modified Mathlib/Topology/Order/LawsonTopology.lean Modified Mathlib/Topology/Order/LowerUpperTopology.lean Modified Mathlib/Topology/Order/ScottTopology.lean Modified Mathlib/Topology/Order/UpperLowerSetTopology.lean 2025-04-30 08:14:09 d801031 chore: prepare for the next lean version bump (#24449) ESTIMATED CHANGES Modified Archive/Imo/Imo1998Q2.lean Modified Archive/Imo/Imo2008Q3.lean Modified Mathlib/Algebra/ContinuedFractions/Computation/TerminatesIffRat.lean Modified Mathlib/Algebra/GCDMonoid/Nat.lean Modified Mathlib/Algebra/Group/Basic.lean Modified Mathlib/Algebra/Group/Int/Defs.lean Modified Mathlib/Algebra/Group/WithOne/Defs.lean Modified Mathlib/Algebra/GroupWithZero/Basic.lean Modified Mathlib/Algebra/Homology/Embedding/Connect.lean Modified Mathlib/Algebra/Polynomial/Laurent.lean Modified Mathlib/Analysis/Calculus/Deriv/ZPow.lean Modified Mathlib/Analysis/SpecialFunctions/Integrals.lean Modified Mathlib/CategoryTheory/Localization/Construction.lean Modified Mathlib/Combinatorics/Derangements/Finite.lean Modified Mathlib/Computability/Tape.lean Modified Mathlib/Data/ENNReal/Inv.lean Modified Mathlib/Data/Fin/Basic.lean Modified Mathlib/Data/Int/Basic.lean Modified Mathlib/Data/Int/Bitwise.lean Modified Mathlib/Data/Int/Cast/Basic.lean Modified Mathlib/Data/Int/DivMod.lean + theorem Int.add_emod_left + theorem Int.add_emod_right + theorem Int.natCast_emod + theorem Int.sub_emod_right Modified Mathlib/Data/Int/GCD.lean Modified Mathlib/Data/Int/Init.lean +/- theorem Int.natCast_div +/- theorem Int.natCast_ediv Modified Mathlib/Data/Int/Interval.lean Modified Mathlib/Data/Int/Sqrt.lean Modified Mathlib/Data/List/Perm/Lattice.lean Modified Mathlib/Data/NNRat/Floor.lean Modified Mathlib/Data/Nat/Init.lean + theorem Nat.not_dvd_iff_lt_mul_succ Modified Mathlib/Data/Nat/ModEq.lean Modified Mathlib/Data/Nat/Multiplicity.lean Modified Mathlib/Data/Nat/Prime/Int.lean Modified Mathlib/Data/Option/Defs.lean Modified Mathlib/Data/PFun.lean Modified Mathlib/Data/ZMod/Basic.lean Modified Mathlib/Dynamics/PeriodicPts/Defs.lean Modified Mathlib/GroupTheory/Coxeter/Basic.lean Modified Mathlib/LinearAlgebra/Matrix/ZPow.lean Modified Mathlib/Logic/Basic.lean - theorem beq_eq_decide Modified Mathlib/MeasureTheory/Integral/CircleIntegral.lean Modified Mathlib/NumberTheory/LegendreSymbol/JacobiSymbol.lean Modified Mathlib/NumberTheory/LegendreSymbol/QuadraticChar/Basic.lean Modified Mathlib/NumberTheory/LucasLehmer.lean Modified Mathlib/NumberTheory/Multiplicity.lean Modified Mathlib/NumberTheory/Padics/PadicIntegers.lean Modified Mathlib/NumberTheory/PellMatiyasevic.lean Modified Mathlib/NumberTheory/PythagoreanTriples.lean Modified Mathlib/NumberTheory/Transcendental/Liouville/Measure.lean Modified Mathlib/NumberTheory/Zsqrtd/Basic.lean Modified Mathlib/Order/Monotone/Basic.lean Modified Mathlib/Order/WithBot.lean Modified Mathlib/RingTheory/DedekindDomain/Factorization.lean Modified Mathlib/RingTheory/MvPowerSeries/Substitution.lean Modified Mathlib/RingTheory/WittVector/StructurePolynomial.lean Modified Mathlib/Tactic/Group.lean Modified Mathlib/Tactic/NormNum/LegendreSymbol.lean 2025-04-30 08:01:47 7c8e0d5 feat: `CyclotomicField`s are `NumberField`s (#24461) This can't be inferred automatically due to the extra set argument. ESTIMATED CHANGES Modified Mathlib/NumberTheory/Cyclotomic/Basic.lean 2025-04-30 07:12:17 0bdb916 chore: whitespace adaptations (#24459) Found by a newer version of a whitespace linter, with a prototype at #24465. ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Subgroup/ZPowers/Basic.lean Modified Mathlib/Algebra/Star/StarRingHom.lean +/- def StarRingEquiv.trans Modified Mathlib/CategoryTheory/Abelian/GrothendieckAxioms/Basic.lean Modified Mathlib/CategoryTheory/Monoidal/Category.lean +/- def CategoryTheory.MonoidalCategory.Pentagon Modified Mathlib/Data/Fin/Tuple/Basic.lean +/- theorem Fin.sigma_eq_iff_eq_comp_cast Modified Mathlib/Data/Int/LeastGreatest.lean Modified Mathlib/Data/Vector/Basic.lean +/- def List.Vector.casesOn₂ +/- def List.Vector.casesOn₃ Modified Mathlib/GroupTheory/Coset/Defs.lean Modified Mathlib/GroupTheory/GroupAction/SubMulAction.lean Modified Mathlib/MeasureTheory/Function/ConditionalExpectation/Basic.lean Modified Mathlib/Order/Fin/Finset.lean Modified Mathlib/Probability/ConditionalProbability.lean +/- theorem ProbabilityTheory.inter_pos_of_cond_ne_zero Modified Mathlib/Tactic/Abel.lean Modified Mathlib/Tactic/FieldSimp.lean Modified Mathlib/Tactic/Positivity/Basic.lean 2025-04-30 06:48:01 b3d0c08 doc(RingTheory/Valuation/Basic): fix docstring at `Valuation` (#24457) ESTIMATED CHANGES Modified Mathlib/RingTheory/Valuation/Basic.lean 2025-04-30 06:41:14 43baf3e feat: generalize `MemHolder.smul` (#24464) ESTIMATED CHANGES Modified Mathlib/Topology/MetricSpace/Holder.lean +/- theorem HolderWith.smul Modified Mathlib/Topology/MetricSpace/HolderNorm.lean +/- theorem MemHolder.smul 2025-04-30 06:34:05 f509796 feat(RingTheory/DedekindDomain): lemmas on S-integers (#24279) Identify S-integers where S = univ and S = empty. Part of a mini-project at "Swiss-French Workshops in Arithmetic Geometry", Charmey, January 2025. ESTIMATED CHANGES Modified Mathlib/RingTheory/DedekindDomain/SInteger.lean + theorem IsDedekindDomain.integer_empty + theorem IsDedekindDomain.integer_univ 2025-04-29 22:53:44 9c6a148 chore: update Mathlib dependencies 2025-04-29 (#24456) This PR updates the Mathlib dependencies. ESTIMATED CHANGES Modified lake-manifest.json 2025-04-29 16:50:14 7e75795 chore: make the argument of CharP as semiOutParam (#24216) Without this on v4.20.0 we will need `set_option synthInstance.checkSynthOrder false` when connecting `CharP` to `Lean.Grind.IsCharP` (which uses an `outParam`). ESTIMATED CHANGES Modified Mathlib/Algebra/CharP/Defs.lean 2025-04-29 16:34:52 587458d chore(L1Space/HasFiniteIntegral): generalise a few lemmas to enorm (#24343) These are necessary to speak about `IntegrableOn` well. Similarly to previous PRs, when a statement needs more than trivial changes, this PR just adds enorm analogues (without deprecating existing lemmas) and tries to golf the existing version in terms of the enorm result. (In this PR, I chose to not always golf one-line proofs. For multi-line proofs, this PR shows that work can really be re-used.) ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Function/L1Space/HasFiniteIntegral.lean +/- theorem MeasureTheory.HasFiniteIntegral.add_measure + theorem MeasureTheory.HasFiniteIntegral.congr'_enorm +/- theorem MeasureTheory.HasFiniteIntegral.congr + theorem MeasureTheory.HasFiniteIntegral.enorm +/- theorem MeasureTheory.HasFiniteIntegral.left_of_add_measure + theorem MeasureTheory.HasFiniteIntegral.mono'_enorm + theorem MeasureTheory.HasFiniteIntegral.mono_enorm +/- theorem MeasureTheory.HasFiniteIntegral.mono_measure +/- theorem MeasureTheory.HasFiniteIntegral.right_of_add_measure +/- theorem MeasureTheory.HasFiniteIntegral.smul_measure + theorem MeasureTheory.ae_enorm_le_bound + theorem MeasureTheory.ae_tendsto_enorm +/- theorem MeasureTheory.hasFiniteIntegral_add_measure + theorem MeasureTheory.hasFiniteIntegral_congr'_enorm +/- theorem MeasureTheory.hasFiniteIntegral_congr + theorem MeasureTheory.hasFiniteIntegral_const_enorm + theorem MeasureTheory.hasFiniteIntegral_const_iff_enorm + theorem MeasureTheory.hasFiniteIntegral_const_iff_isFiniteMeasure_enorm + theorem MeasureTheory.hasFiniteIntegral_enorm_iff +/- theorem MeasureTheory.hasFiniteIntegral_iff_enorm + theorem MeasureTheory.hasFiniteIntegral_of_bounded_enorm +/- theorem MeasureTheory.hasFiniteIntegral_of_dominated_convergence + theorem MeasureTheory.hasFiniteIntegral_of_dominated_convergence_enorm +/- theorem MeasureTheory.hasFiniteIntegral_zero +/- theorem MeasureTheory.hasFiniteIntegral_zero_measure +/- theorem MeasureTheory.tendsto_lintegral_norm_of_dominated_convergence 2025-04-29 15:12:39 6943d23 feat(LpSeminorm/Basic): generalise a few more lemmas to enorms (#24355) - For some lemmas, this was as easy as changing the co-domain. - Weaken a few enorm typeclasses: make shadowing explicit by using named sections. - For other lemmas, the enorm version requires a new explicit hypothesis (typically, around some constant being non-zero). For those, we add a new enorm version, and golf the existing result in terms of that. For the Carleson project. ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Function/LpSeminorm/Basic.lean +/- theorem MeasureTheory.MemLp.of_measure_le_smul +/- theorem MeasureTheory.MemLp.smul_measure + theorem MeasureTheory.eLpNorm_const_lt_top_iff_enorm +/- theorem MeasureTheory.eLpNorm_indicator_eq_eLpNorm_restrict +/- theorem MeasureTheory.eLpNorm_one_smul_measure +/- theorem MeasureTheory.eLpNorm_restrict_le +/- theorem MeasureTheory.memLp_const + theorem MeasureTheory.memLp_const_enorm + theorem MeasureTheory.memLp_const_iff_enorm + theorem MeasureTheory.memLp_top_const_enorm 2025-04-29 11:49:27 61ea3c0 feat(LinearAlgebra/Span/Defs): span (s \ {0}) is equal to span s (#24360) `simp` would be able to solve `Submodule.span (s \ {0}) = Submodule.span s`. ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/Span/Defs.lean + theorem Submodule.span_sdiff_singleton_zero 2025-04-29 10:02:52 3f25563 feat(Algebra/MvPolynomial): total degrees of some constructions (#24346) ESTIMATED CHANGES Modified Mathlib/Algebra/MvPolynomial/Degrees.lean + theorem MvPolynomial.totalDegree_renameEquiv Modified Mathlib/Algebra/MvPolynomial/Equiv.lean + theorem MvPolynomial.natDegree_optionEquivLeft + theorem MvPolynomial.totalDegree_coeff_optionEquivLeft_add_le + theorem MvPolynomial.totalDegree_coeff_optionEquivLeft_le Modified Mathlib/Data/Finsupp/Basic.lean + theorem Finsupp.embDomain_some_none + theorem Finsupp.some_embDomain_some Modified Mathlib/RingTheory/Algebraic/MvPolynomial.lean 2025-04-29 09:29:39 c00c2f8 chore(LapMatrix): fix a name (#24443) Rename `card_ConnectedComponent_eq_rank_ker_lapMatrix` to `card_connectedComponent_eq_finrank_ker_toLin'_lapMatrix`: - fix `c` to lowercase; - change `rank` to `finrank`; - mention `toLin'`. ESTIMATED CHANGES Modified Mathlib/Combinatorics/SimpleGraph/LapMatrix.lean - theorem SimpleGraph.card_ConnectedComponent_eq_rank_ker_lapMatrix + theorem SimpleGraph.card_connectedComponent_eq_finrank_ker_toLin'_lapMatrix 2025-04-29 08:58:16 072b045 feat(NumberField): add `ComplexEmbedding.lift` (#24137) A (random) lift of a complex embedding `φ : k →+* ℂ` to an extension `K` of `k`. ESTIMATED CHANGES Modified Mathlib/NumberTheory/NumberField/Embeddings.lean + theorem NumberField.ComplexEmbedding.lift_algebraMap_apply + theorem NumberField.ComplexEmbedding.lift_comp_algebraMap + theorem NumberField.InfinitePlace.comap_mk_lift 2025-04-29 06:40:50 6824591 feat(CategoryTheory/Center): linear structures and ring morphisms (#23815) If `C` is a category and `R` a ring, we relate `R`-linear structures on `C` and ring morphisms `R →+* CatCenter C`. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Center/Linear.lean + def CategoryTheory.Linear.homModuleOfRingMorphism + def CategoryTheory.Linear.ofRingMorphism + def CategoryTheory.Linear.smulOfRingMorphism + theorem CategoryTheory.Linear.smulOfRingMorphism_smul_eq' + theorem CategoryTheory.Linear.smulOfRingMorphism_smul_eq + def CategoryTheory.Linear.toCatCenter 2025-04-29 05:56:08 f9f11e7 feat(Algebra): add Submodule.submoduleOf (#23903) In this PR we added the definition `Submodule.submoduleOf` and `Submodule.submoduleOfEquivOfLe` as the corrsponding version for `Subgroup.subgroupOf` ESTIMATED CHANGES Modified Mathlib/Algebra/Module/Submodule/Map.lean + def Submodule.submoduleOf + def Submodule.submoduleOfEquivOfLe 2025-04-28 20:03:37 ab000e4 chore: tidy various files (#24420) ESTIMATED CHANGES Modified Mathlib/Algebra/Homology/GrothendieckAbelian.lean Modified Mathlib/Algebra/Module/End.lean Modified Mathlib/Algebra/Order/Floor/Ring.lean Modified Mathlib/Algebra/Order/Monoid/Prod.lean Modified Mathlib/Algebra/Order/Ring/Unbundled/Basic.lean Modified Mathlib/AlgebraicGeometry/EllipticCurve/Jacobian/Formula.lean Modified Mathlib/Analysis/Distribution/SchwartzSpace.lean Modified Mathlib/CategoryTheory/Adjunction/Mates.lean Modified Mathlib/CategoryTheory/ConcreteCategory/BundledHom.lean Modified Mathlib/CategoryTheory/Limits/Shapes/BinaryProducts.lean Modified Mathlib/Combinatorics/SimpleGraph/IncMatrix.lean Modified Mathlib/Combinatorics/SimpleGraph/Prod.lean Modified Mathlib/Data/Finsupp/AList.lean Modified Mathlib/Data/List/Cycle.lean +/- theorem Cycle.not_mem_nil Modified Mathlib/Data/Matroid/Basic.lean +/- def Matroid.ExchangeProperty +/- def Matroid.ExistsMaximalSubsetProperty +/- structure Matroid Modified Mathlib/Data/Nat/Fib/Basic.lean Modified Mathlib/Data/Nat/Init.lean Modified Mathlib/Data/Nat/MaxPowDiv.lean Modified Mathlib/GroupTheory/GroupAction/Quotient.lean Modified Mathlib/LinearAlgebra/Matrix/SpecialLinearGroup.lean Modified Mathlib/MeasureTheory/MeasurableSpace/MeasurablyGenerated.lean Modified Mathlib/MeasureTheory/Measure/ProbabilityMeasure.lean Modified Mathlib/NumberTheory/Ostrowski.lean Modified Mathlib/RingTheory/DedekindDomain/FiniteAdeleRing.lean Modified Mathlib/RingTheory/Ideal/Operations.lean Modified Mathlib/RingTheory/PowerSeries/NoZeroDivisors.lean Modified Mathlib/RingTheory/RootsOfUnity/Basic.lean Modified Mathlib/RingTheory/RootsOfUnity/PrimitiveRoots.lean Modified Mathlib/Topology/Category/Profinite/Nobeling/Basic.lean Modified Mathlib/Topology/Category/Profinite/Nobeling/Induction.lean Modified Mathlib/Topology/Category/Profinite/Nobeling/Span.lean Modified Mathlib/Topology/Category/Profinite/Nobeling/Successor.lean 2025-04-28 19:52:26 734b51c feat(Combinatorics/SimpleGraph): define extremalNumber (#19865) Define the extremal number `extremalNumber n H` of a natural number `n` and a simple graph `H`: `extremalNumber n H` is the maximum number of edges in a `H`-free simple graph on `n` vertices, if `H` is contained in all simple graphs on `n` vertices, then this is `0`. Also define the predicate that a simple graph is an extremal graph `IsExtremal` satisfying some predicate. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Combinatorics/SimpleGraph/Copy.lean +/- theorem SimpleGraph.free_congr + theorem SimpleGraph.free_congr_left + theorem SimpleGraph.free_congr_right +/- theorem SimpleGraph.isContained_congr + theorem SimpleGraph.isContained_congr_left + theorem SimpleGraph.isContained_congr_right Added Mathlib/Combinatorics/SimpleGraph/Extremal/Basic.lean + theorem SimpleGraph.IsContained.extremalNumber_le + theorem SimpleGraph.IsContained.of_extremalNumber_lt_card_edgeFinset + theorem SimpleGraph.IsExtremal.prop + def SimpleGraph.IsExtremal + theorem SimpleGraph.card_edgeFinset_le_extremalNumber + theorem SimpleGraph.card_edgeFinset_of_isExtremal_free + theorem SimpleGraph.exists_isExtremal_free + theorem SimpleGraph.exists_isExtremal_iff_exists + theorem SimpleGraph.extremalNumber_congr + theorem SimpleGraph.extremalNumber_congr_right + theorem SimpleGraph.extremalNumber_le_iff + theorem SimpleGraph.extremalNumber_le_iff_of_nonneg + theorem SimpleGraph.extremalNumber_of_fintypeCard_eq + theorem SimpleGraph.isExtremal_free_iff + theorem SimpleGraph.lt_extremalNumber_iff + theorem SimpleGraph.lt_extremalNumber_iff_of_nonneg 2025-04-28 17:47:31 12e7ef9 chore(CategoryTheory.Preadditive): add stacks project tag attribute to `Preadditive` and `Functor.Additive` (#24398) Both `Preadditive` and `Functor.Additive` are covered in the Stacks Project tag [00ZY](https://stacks.math.columbia.edu/tag/00ZY). Part of the [ICERM Workshop on Autoformalization](https://icerm.brown.edu/program/hot_topics_workshop/htw-25-aftwm). ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Preadditive/AdditiveFunctor.lean Modified Mathlib/CategoryTheory/Preadditive/Basic.lean 2025-04-28 17:33:04 3640ff5 chore(CategoryTheory): fix some Fintype/Finite assumptions (#24423) Found by the linter in #10235 Assume `[Finite J]` instead of `[Fintype J]` here and there. IMHO, the right way to fix this is to use `Fin n` in the typeclass definition, then use `{J : Type*} [Finite J]` in the instance, cf. [CategoryTheory.Limits.PreservesFiniteCoproducts](https://leanprover-community.github.io/mathlib4_docs/Mathlib/CategoryTheory/Limits/Preserves/Finite.html#CategoryTheory.Limits.PreservesFiniteCoproducts) I didn't take that path, because I never used this part of the library, so - I failed to quickly prove equivalence between `PreservesFiniteCoproducts` given `Equiv` between domains; - my opinion about design choices has higher chances of being wrong. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Limits/Preserves/Shapes/Biproducts.lean Modified Mathlib/CategoryTheory/Monoidal/Preadditive.lean +/- theorem CategoryTheory.biproduct_ι_comp_leftDistributor_hom +/- theorem CategoryTheory.biproduct_ι_comp_leftDistributor_inv +/- theorem CategoryTheory.biproduct_ι_comp_rightDistributor_hom +/- theorem CategoryTheory.biproduct_ι_comp_rightDistributor_inv +/- def CategoryTheory.leftDistributor +/- theorem CategoryTheory.leftDistributor_assoc +/- theorem CategoryTheory.leftDistributor_ext_left +/- theorem CategoryTheory.leftDistributor_ext_right +/- theorem CategoryTheory.leftDistributor_ext₂_left +/- theorem CategoryTheory.leftDistributor_ext₂_right +/- theorem CategoryTheory.leftDistributor_hom_comp_biproduct_π +/- theorem CategoryTheory.leftDistributor_inv_comp_biproduct_π +/- theorem CategoryTheory.leftDistributor_rightDistributor_assoc +/- def CategoryTheory.rightDistributor +/- theorem CategoryTheory.rightDistributor_assoc +/- theorem CategoryTheory.rightDistributor_ext_left +/- theorem CategoryTheory.rightDistributor_ext_right +/- theorem CategoryTheory.rightDistributor_ext₂_left +/- theorem CategoryTheory.rightDistributor_ext₂_right +/- theorem CategoryTheory.rightDistributor_hom_comp_biproduct_π +/- theorem CategoryTheory.rightDistributor_inv_comp_biproduct_π Modified Mathlib/CategoryTheory/Preadditive/AdditiveFunctor.lean Modified Mathlib/CategoryTheory/Preadditive/Biproducts.lean 2025-04-28 16:25:46 f74ebec chore(Algebra/Module/PID): fix universe level (#24403) Originally the structure theorem of finitely generated torsion modules `N` over PID `R : Type u` required that `N : Type max u v`. This PR fixes it to `M : Type v`. Now that `lequivProdOfRightSplitExact` is universe polymorphic, we can also drop the use of `ULift.moduleEquiv` in the proofs. ESTIMATED CHANGES Modified Mathlib/Algebra/Module/PID.lean +/- theorem Module.equiv_directSum_of_isTorsion +/- theorem Module.equiv_free_prod_directSum +/- theorem Module.torsion_by_prime_power_decomposition 2025-04-28 15:18:03 812fedb feat(Algebra/Polynomial): add lemmas (#23252) ESTIMATED CHANGES Modified Mathlib/Algebra/Polynomial/BigOperators.lean + theorem Polynomial.natDegree_finset_prod_X_sub_C_eq_card Modified Mathlib/Algebra/Polynomial/Lifts.lean + theorem Polynomial.monic_of_monic_mapAlg Modified Mathlib/Algebra/Polynomial/Monic.lean + theorem Polynomial.monic_finprod_of_monic Modified Mathlib/Algebra/Polynomial/RingDivision.lean + theorem Polynomial.natDegree_pos_of_monic_of_aeval_eq_zero Modified Mathlib/Algebra/Polynomial/Roots.lean + theorem Polynomial.monic_finprod_X_sub_C + theorem Polynomial.monic_multisetProd_X_sub_C + theorem Polynomial.monic_prod_X_sub_C - theorem Polynomial.monic_prod_multiset_X_sub_C Modified Mathlib/Algebra/Polynomial/Splits.lean + theorem Polynomial.aeval_root_of_mapAlg_eq_multiset_prod_X_sub_C 2025-04-28 14:59:32 c768c54 chore(Analysis/Convex): drop unused arguments (#24392) Also weaken typeclass assumptions here and there. ESTIMATED CHANGES Modified Mathlib/Analysis/Convex/Basic.lean +/- theorem Convex.starConvex_iff +/- theorem Set.OrdConnected.convex +/- theorem Set.OrdConnected.convex_of_chain +/- theorem convex_iff_openSegment_subset +/- theorem convex_segment +/- theorem convex_stdSimplex +/- theorem stdSimplex_unique Modified Mathlib/Analysis/Convex/Between.lean +/- def affineSegment Modified Mathlib/Analysis/Convex/BetweenList.lean +/- theorem List.sbtw_cons +/- theorem List.sbtw_four +/- theorem List.sbtw_iff_triplewise_and_ne_pair +/- theorem List.sbtw_triple Modified Mathlib/Analysis/Convex/Function.lean +/- theorem ConcaveOn.convex_strict_hypograph +/- theorem ConvexOn.convex_strict_epigraph Modified Mathlib/Analysis/Convex/Hull.lean +/- theorem convexHull_pair Modified Mathlib/Analysis/Convex/Independent.lean Modified Mathlib/Analysis/Convex/Join.lean Modified Mathlib/Analysis/Convex/Piecewise.lean Modified Mathlib/Analysis/Convex/Quasiconvex.lean Modified Mathlib/Analysis/Convex/Segment.lean +/- theorem segment_inter_eq_endpoint_of_linearIndependent_sub + theorem segment_inter_subset_endpoint_of_linearIndependent_sub Modified Mathlib/Analysis/Convex/SimplicialComplex/Basic.lean Modified Mathlib/Analysis/Convex/Star.lean +/- theorem Set.OrdConnected.starConvex +/- theorem StarConvex.mem +/- def StarConvex +/- theorem starConvex_iff_openSegment_subset Modified Mathlib/Analysis/Convex/Strict.lean +/- theorem StrictConvex.add_smul_mem +/- theorem StrictConvex.add_smul_sub_mem +/- theorem StrictConvex.eq_of_openSegment_subset_frontier +/- theorem StrictConvex.smul_mem_of_zero_mem +/- def StrictConvex Modified Mathlib/Analysis/Convex/StrictConvexSpace.lean Modified Mathlib/Analysis/Convex/Topology.lean Modified Mathlib/Analysis/Convex/Visible.lean +/- theorem IsVisible.rfl +/- theorem isVisible_comm 2025-04-28 14:19:10 111f5c1 chore(*): fix some Fintype/Finite assumptions (#24424) Found by the linter in #10235 Also drop a `DecidableEq` assumption and fix `_inj` vs `_injective` name. ESTIMATED CHANGES Modified Mathlib/Combinatorics/Nullstellensatz.lean Modified Mathlib/Combinatorics/SimpleGraph/Diam.lean +/- theorem SimpleGraph.connected_iff_diam_ne_zero Modified Mathlib/Data/DFinsupp/Defs.lean Modified Mathlib/Data/Finset/Card.lean Modified Mathlib/RepresentationTheory/Tannaka.lean - theorem TannakaDuality.FiniteGroup.equivHom_inj + theorem TannakaDuality.FiniteGroup.equivHom_injective Modified Mathlib/RingTheory/LocalRing/NonLocalRing.lean +/- theorem IsLocalRing.not_isLocalRing_of_nontrivial_pi Modified Mathlib/RingTheory/MvPolynomial/Homogeneous.lean +/- theorem MvPolynomial.weightedTotalDegree_rename_of_injective 2025-04-28 14:11:30 24c69d5 chore(NumberTheory/Harmonic/EulerMascheroni): shorten proof of tendsto_eulerMascheroniSeq' (#24438) Replaces 6 lines of the proof of `tendsto_eulerMascheroniSeq'` with an invocation of [`tendsto_log_comp_add_sub_log`](https://github.com/leanprover-community/mathlib4/blob/be41d01fc2b49f941ba389a98c13fcfb5721dea8/Mathlib/Analysis/SpecialFunctions/Log/Basic.lean#L462-L469). Found by [`tryAtEachStep`](https://github.com/dwrensha/tryAtEachStep). ESTIMATED CHANGES Modified Mathlib/NumberTheory/Harmonic/EulerMascheroni.lean 2025-04-28 13:45:53 bff59ee chore(PeriodicPts): review API, fix (#24422) - fix some lemma names introduced in #23086; - fix some `Fintype`/`Finite` assumptions (found by the linter in #10235); - golf some proofs. ESTIMATED CHANGES Modified Mathlib/Dynamics/PeriodicPts/Defs.lean - theorem Function.iUnion_pNat_ptsOfPeriod + theorem Function.iUnion_pnat_ptsOfPeriod - theorem Function.periodicPts_subset_image + theorem Function.periodicPts_subset_range Modified Mathlib/Dynamics/PeriodicPts/Lemmas.lean + theorem Function.Injective.mem_periodicPts - theorem Function.directed_ptsOfPeriod_pNat + theorem Function.directed_ptsOfPeriod_pnat - theorem Function.injective_iff_forall_mem_periodicPts +/- theorem Function.injective_iff_iterate_factorial_card_eq_id + theorem Function.injective_iff_periodicPts_eq_univ +/- theorem Function.isPeriodicPt_factorial_card_of_mem_periodicPts +/- theorem Function.mem_periodicPts_iff_isPeriodicPt_factorial_card - theorem Function.mem_periodicPts_of_injective +/- theorem Function.minimalPeriod_le_card 2025-04-28 13:10:46 0550cf4 chore(Cardinal): rename `mk_pNat` -> `mk_pnat` (#24429) ESTIMATED CHANGES Modified Mathlib/SetTheory/Cardinal/Basic.lean - theorem Cardinal.mk_pNat + theorem Cardinal.mk_pnat 2025-04-28 13:10:44 8a1d355 chore(TangentCone): fix names (#24426) Use `tangentConeAt`, not `tangentCone` in lemma names. ESTIMATED CHANGES Modified Mathlib/Analysis/Calculus/TangentCone.lean + theorem mapsTo_tangentConeAt_pi - theorem mapsTo_tangentCone_pi + theorem mem_tangentConeAt_of_openSegment_subset + theorem mem_tangentConeAt_of_segment_subset - theorem mem_tangentCone_of_openSegment_subset - theorem mem_tangentCone_of_segment_subset + theorem subset_tangentConeAt_prod_left + theorem subset_tangentConeAt_prod_right - theorem subset_tangentCone_prod_left - theorem subset_tangentCone_prod_right + theorem tangentConeAt_congr + theorem tangentConeAt_eq_univ + theorem tangentConeAt_inter_nhds + theorem tangentConeAt_mono + theorem tangentConeAt_mono_nhds + theorem tangentConeAt_nonempty_of_properSpace + theorem tangentConeAt_univ - theorem tangentCone_congr - theorem tangentCone_eq_univ - theorem tangentCone_inter_nhds - theorem tangentCone_mono - theorem tangentCone_mono_nhds - theorem tangentCone_nonempty_of_properSpace - theorem tangentCone_univ 2025-04-28 13:10:43 203cf53 refactor: generalize `unbounded_of_tendsto_atTop` (#23531) ESTIMATED CHANGES Modified Mathlib/Order/Filter/AtTopBot/Basic.lean + theorem Filter.not_bddAbove_of_tendsto_atTop + theorem Filter.not_bddBelow_of_tendsto_atBot - theorem Filter.unbounded_of_tendsto_atBot' - theorem Filter.unbounded_of_tendsto_atBot - theorem Filter.unbounded_of_tendsto_atTop' - theorem Filter.unbounded_of_tendsto_atTop Modified Mathlib/Probability/Martingale/BorelCantelli.lean 2025-04-28 12:33:50 40300dd chore: scope Interval notation (#24433) ESTIMATED CHANGES Modified Mathlib/Analysis/Calculus/ParametricIntegral.lean Modified Mathlib/Analysis/SpecialFunctions/Complex/CircleMap.lean Modified Mathlib/MeasureTheory/Function/LocallyIntegrable.lean Modified Mathlib/MeasureTheory/Integral/DominatedConvergence.lean Modified Mathlib/MeasureTheory/Measure/AEMeasurable.lean Modified Mathlib/MeasureTheory/Measure/Restrict.lean Modified Mathlib/MeasureTheory/Measure/Typeclasses/NoAtoms.lean Modified Mathlib/NumberTheory/AbelSummation.lean Modified Mathlib/Order/Interval/Set/OrdConnected.lean Modified Mathlib/Order/Interval/Set/UnorderedInterval.lean 2025-04-28 11:54:05 be41d01 chore(Algebra/Polynomial/BigOperators): shorten proof of coeff_list_prod_of_natDegree_le (#24436) Replaces 7 lines of proof with an invocation of [`coeff_mul_add_eq_of_natDegree_le`](https://github.com/leanprover-community/mathlib4/blob/d60509c1f95a860ce33563b93bc82a3856f67fb2/Mathlib/Algebra/Polynomial/Degree/Operations.lean#L439-L451) Found by [`tryAtEachStep`](https://github.com/dwrensha/tryAtEachStep). ESTIMATED CHANGES Modified Mathlib/Algebra/Polynomial/BigOperators.lean 2025-04-28 10:53:23 91299a5 feat(RingTheory): tensor product of l.i. families over domains (#24224) There are also different conditions where the result is true. But I have yet to find a more general statement that encompasses all these results. See #24219 or https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Tensor.20product.20of.20linearly.20independent.20families/near/513258021 ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/RingTheory/Flat/Basic.lean + theorem LinearIndependent.tmul_of_flat_left + theorem LinearIndependent.tmul_of_flat_right +/- theorem Module.Flat.tensorProduct_mapIncl_injective_of_left +/- theorem Module.Flat.tensorProduct_mapIncl_injective_of_right + theorem TensorProduct.map_injective_of_flat_flat' + theorem TensorProduct.map_injective_of_flat_flat Added Mathlib/RingTheory/Flat/Domain.lean + theorem LinearIndependent.tmul_of_isDomain + theorem TensorProduct.map_injective_of_flat_flat_of_isDomain 2025-04-28 09:04:17 d60509c chore: move `Module.End`-related decls to the `Module.End` namespace (#23705) No deprecations, since they would clash across namespaces. From Toric ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/Basic.lean + theorem Module.End.algebraMap_isUnit_inv_apply_eq_iff' + theorem Module.End.algebraMap_isUnit_inv_apply_eq_iff - theorem Module.End_algebraMap_isUnit_inv_apply_eq_iff' - theorem Module.End_algebraMap_isUnit_inv_apply_eq_iff Modified Mathlib/Algebra/Algebra/Bilinear.lean Modified Mathlib/Algebra/Group/ForwardDiff.lean +/- theorem fwdDiff_aux.shiftₗ_apply Modified Mathlib/Algebra/Lie/CartanExists.lean Modified Mathlib/Algebra/Lie/Derivation/Basic.lean Modified Mathlib/Algebra/Lie/Engel.lean Modified Mathlib/Algebra/Lie/EngelSubalgebra.lean Modified Mathlib/Algebra/Lie/LieTheorem.lean Modified Mathlib/Algebra/Lie/Nilpotent.lean Modified Mathlib/Algebra/Lie/OfAssociative.lean Modified Mathlib/Algebra/Lie/Sl2.lean Modified Mathlib/Algebra/Lie/TraceForm.lean Modified Mathlib/Algebra/Lie/Weights/Basic.lean Modified Mathlib/Algebra/Lie/Weights/Cartan.lean Modified Mathlib/Algebra/Lie/Weights/Chain.lean Modified Mathlib/Algebra/Lie/Weights/Killing.lean Modified Mathlib/Algebra/Module/Equiv/Basic.lean + theorem Module.End.isUnit_iff - theorem Module.End_isUnit_iff Modified Mathlib/Algebra/Module/FinitePresentation.lean Modified Mathlib/Algebra/Module/LinearMap/End.lean - theorem LinearMap.coe_mul - theorem LinearMap.coe_one - theorem LinearMap.coe_pow - theorem LinearMap.commute_pow_left_of_commute - theorem LinearMap.id_pow - theorem LinearMap.injective_of_iterate_injective - theorem LinearMap.iterate_bijective - theorem LinearMap.iterate_injective - theorem LinearMap.iterate_succ - theorem LinearMap.iterate_surjective - theorem LinearMap.mul_apply - theorem LinearMap.mul_eq_comp - theorem LinearMap.one_apply - theorem LinearMap.one_eq_id - theorem LinearMap.pow_apply - theorem LinearMap.pow_map_zero_of_le - theorem LinearMap.surjective_of_iterate_surjective + theorem Module.End.coe_mul + theorem Module.End.coe_one + theorem Module.End.coe_pow + theorem Module.End.commute_pow_left_of_commute + theorem Module.End.id_pow + theorem Module.End.injective_of_iterate_injective +/- theorem Module.End.intCast_apply + theorem Module.End.isUnit_apply_inv_apply_of_isUnit + theorem Module.End.isUnit_inv_apply_apply_of_isUnit + theorem Module.End.iterate_bijective + theorem Module.End.iterate_injective + theorem Module.End.iterate_succ + theorem Module.End.iterate_surjective + theorem Module.End.mul_apply + theorem Module.End.mul_eq_comp +/- theorem Module.End.natCast_apply +/- theorem Module.End.ofNat_apply + theorem Module.End.one_apply + theorem Module.End.one_eq_id + theorem Module.End.pow_apply + theorem Module.End.pow_map_zero_of_le + theorem Module.End.surjective_of_iterate_surjective - theorem Module.End_isUnit_apply_inv_apply_of_isUnit - theorem Module.End_isUnit_inv_apply_apply_of_isUnit Modified Mathlib/Algebra/Module/LocalizedModule/Basic.lean Modified Mathlib/Algebra/Module/LocalizedModule/Submodule.lean Modified Mathlib/Algebra/Module/Submodule/Ker.lean Modified Mathlib/Algebra/Module/Submodule/LinearMap.lean - theorem LinearMap.pow_apply_mem_of_forall_mem - theorem LinearMap.pow_restrict - theorem LinearMap.submodule_pow_eq_zero_of_pow_eq_zero + theorem Module.End.pow_apply_mem_of_forall_mem + theorem Module.End.pow_restrict + theorem Module.End.submodule_pow_eq_zero_of_pow_eq_zero Modified Mathlib/Algebra/Module/Submodule/Map.lean +/- theorem Submodule.le_comap_pow_of_le_comap Modified Mathlib/Algebra/Module/Submodule/Range.lean Modified Mathlib/Algebra/Polynomial/Derivative.lean Modified Mathlib/Algebra/Polynomial/Module/Basic.lean Modified Mathlib/AlgebraicGeometry/Modules/Tilde.lean Modified Mathlib/Analysis/Calculus/LagrangeMultipliers.lean Modified Mathlib/Analysis/InnerProductSpace/Adjoint.lean Modified Mathlib/Analysis/InnerProductSpace/Symmetric.lean Modified Mathlib/Data/Matrix/Bilinear.lean Modified Mathlib/FieldTheory/JacobsonNoether.lean Modified Mathlib/LinearAlgebra/Charpoly/Basic.lean Modified Mathlib/LinearAlgebra/Eigenspace/Basic.lean Modified Mathlib/LinearAlgebra/Eigenspace/Minpoly.lean Modified Mathlib/LinearAlgebra/Eigenspace/Pi.lean Modified Mathlib/LinearAlgebra/Eigenspace/Triangularizable.lean Modified Mathlib/LinearAlgebra/Eigenspace/Zero.lean Modified Mathlib/LinearAlgebra/FiniteDimensional/Basic.lean Modified Mathlib/LinearAlgebra/Matrix/InvariantBasisNumber.lean Modified Mathlib/LinearAlgebra/Matrix/ToLin.lean Modified Mathlib/LinearAlgebra/Projection.lean Modified Mathlib/LinearAlgebra/QuadraticForm/Basic.lean Modified Mathlib/LinearAlgebra/QuadraticForm/Dual.lean Modified Mathlib/LinearAlgebra/Quotient/Basic.lean Modified Mathlib/LinearAlgebra/Reflection.lean Modified Mathlib/LinearAlgebra/RootSystem/Defs.lean Modified Mathlib/LinearAlgebra/RootSystem/Hom.lean Modified Mathlib/LinearAlgebra/Semisimple.lean Modified Mathlib/LinearAlgebra/Span/Basic.lean Modified Mathlib/LinearAlgebra/TensorProduct/Basic.lean Modified Mathlib/LinearAlgebra/Trace.lean +/- theorem LinearMap.trace_id Modified Mathlib/RepresentationTheory/Basic.lean Modified Mathlib/RepresentationTheory/FDRep.lean Modified Mathlib/RepresentationTheory/GroupCohomology/LowDegree.lean Modified Mathlib/RepresentationTheory/GroupCohomology/Resolution.lean Modified Mathlib/RepresentationTheory/Invariants.lean Modified Mathlib/RepresentationTheory/Rep.lean Modified Mathlib/RingTheory/Artinian/Module.lean +/- theorem LinearMap.eventually_codisjoint_ker_pow_range_pow +/- theorem LinearMap.eventually_isCompl_ker_pow_range_pow Modified Mathlib/RingTheory/CotangentLocalizationAway.lean Modified Mathlib/RingTheory/Derivation/Lie.lean Modified Mathlib/RingTheory/Finiteness/Nilpotent.lean + theorem Module.End.isNilpotent_iff_of_finite - theorem Module.Finite.Module.End.isNilpotent_iff_of_finite Modified Mathlib/RingTheory/IsTensorProduct.lean Modified Mathlib/RingTheory/Kaehler/TensorProduct.lean Modified Mathlib/RingTheory/LocalProperties/Projective.lean Modified Mathlib/RingTheory/Localization/Algebra.lean Modified Mathlib/RingTheory/Nilpotent/Exp.lean Modified Mathlib/RingTheory/Nilpotent/Lemmas.lean Modified Mathlib/RingTheory/Noetherian/Defs.lean - theorem LinearMap.eventually_disjoint_ker_pow_range_pow + theorem Module.End.eventually_disjoint_ker_pow_range_pow Modified Mathlib/RingTheory/Polynomial/Basic.lean Modified Mathlib/RingTheory/Polynomial/Bernstein.lean Modified Mathlib/RingTheory/SimpleModule/Basic.lean Modified Mathlib/RingTheory/Spectrum/Prime/FreeLocus.lean Modified Mathlib/RingTheory/TensorProduct/Basic.lean 2025-04-28 07:37:29 c7cf6b6 refactor(Topology/UniformSpace): clarify def of TendstoLocallyUniformly (#24342) Split `Mathlib.Topology.UniformSpace.UniformConvergence` into 3 files, and add a detailed explanation of how our definition of `TendstoLocallyUniformly` differs from the one usually found in the literature. See discussion on Zulip: https://leanprover.zulipchat.com/#narrow/channel/116395-maths/topic/Locally.20uniform.20convergence/with/514097469 ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Topology/EMetricSpace/Basic.lean Added Mathlib/Topology/UniformSpace/LocallyUniformConvergence.lean + theorem TendstoLocallyUniformly.comp + def TendstoLocallyUniformly + theorem TendstoLocallyUniformlyOn.comp + theorem TendstoLocallyUniformlyOn.congr + theorem TendstoLocallyUniformlyOn.congr_right + theorem TendstoLocallyUniformlyOn.mono + theorem TendstoLocallyUniformlyOn.tendsto_at + theorem TendstoLocallyUniformlyOn.union + theorem TendstoLocallyUniformlyOn.unique + def TendstoLocallyUniformlyOn + theorem tendstoLocallyUniformlyOn_TFAE + theorem tendstoLocallyUniformlyOn_biUnion + theorem tendstoLocallyUniformlyOn_iUnion + theorem tendstoLocallyUniformlyOn_iff_filter + theorem tendstoLocallyUniformlyOn_iff_forall_isCompact + theorem tendstoLocallyUniformlyOn_iff_forall_tendsto + theorem tendstoLocallyUniformlyOn_iff_tendstoLocallyUniformly_comp_coe + theorem tendstoLocallyUniformlyOn_iff_tendstoUniformlyOn_of_compact + theorem tendstoLocallyUniformlyOn_sUnion + theorem tendstoLocallyUniformlyOn_univ + theorem tendstoLocallyUniformly_iff_filter + theorem tendstoLocallyUniformly_iff_forall_isCompact + theorem tendstoLocallyUniformly_iff_forall_tendsto + theorem tendstoLocallyUniformly_iff_tendstoUniformly_of_compactSpace Added Mathlib/Topology/UniformSpace/UniformApproximation.lean + theorem TendstoLocallyUniformly.tendsto_comp + theorem TendstoLocallyUniformlyOn.tendsto_comp + theorem TendstoUniformly.tendsto_comp + theorem TendstoUniformlyOn.tendsto_comp + theorem continuousAt_of_locally_uniform_approx_of_continuousAt + theorem continuousOn_of_locally_uniform_approx_of_continuousWithinAt + theorem continuousOn_of_uniform_approx_of_continuousOn + theorem continuousWithinAt_of_locally_uniform_approx_of_continuousWithinAt + theorem continuous_of_locally_uniform_approx_of_continuousAt + theorem continuous_of_uniform_approx_of_continuous + theorem tendsto_comp_of_locally_uniform_limit + theorem tendsto_comp_of_locally_uniform_limit_within Modified Mathlib/Topology/UniformSpace/UniformConvergence.lean - theorem TendstoLocallyUniformly.comp - theorem TendstoLocallyUniformly.tendsto_comp - def TendstoLocallyUniformly - theorem TendstoLocallyUniformlyOn.comp - theorem TendstoLocallyUniformlyOn.congr - theorem TendstoLocallyUniformlyOn.congr_right - theorem TendstoLocallyUniformlyOn.mono - theorem TendstoLocallyUniformlyOn.tendsto_at - theorem TendstoLocallyUniformlyOn.tendsto_comp - theorem TendstoLocallyUniformlyOn.union - theorem TendstoLocallyUniformlyOn.unique - def TendstoLocallyUniformlyOn - theorem TendstoUniformly.tendsto_comp +/- theorem TendstoUniformlyOn.mono +/- theorem TendstoUniformlyOn.tendsto_at - theorem TendstoUniformlyOn.tendsto_comp +/- theorem UniformCauchySeqOn.mono +/- theorem UniformContinuousOn.tendstoUniformly +/- theorem UniformContinuousOn.tendstoUniformlyOn - theorem continuousAt_of_locally_uniform_approx_of_continuousAt - theorem continuousOn_of_locally_uniform_approx_of_continuousWithinAt - theorem continuousOn_of_uniform_approx_of_continuousOn - theorem continuousWithinAt_of_locally_uniform_approx_of_continuousWithinAt - theorem continuous_of_locally_uniform_approx_of_continuousAt - theorem continuous_of_uniform_approx_of_continuous - theorem tendstoLocallyUniformlyOn_TFAE - theorem tendstoLocallyUniformlyOn_biUnion - theorem tendstoLocallyUniformlyOn_iUnion - theorem tendstoLocallyUniformlyOn_iff_filter - theorem tendstoLocallyUniformlyOn_iff_forall_isCompact - theorem tendstoLocallyUniformlyOn_iff_forall_tendsto - theorem tendstoLocallyUniformlyOn_iff_tendstoLocallyUniformly_comp_coe - theorem tendstoLocallyUniformlyOn_iff_tendstoUniformlyOn_of_compact - theorem tendstoLocallyUniformlyOn_sUnion - theorem tendstoLocallyUniformlyOn_univ - theorem tendstoLocallyUniformly_iff_filter - theorem tendstoLocallyUniformly_iff_forall_isCompact - theorem tendstoLocallyUniformly_iff_forall_tendsto - theorem tendstoLocallyUniformly_iff_tendstoUniformly_of_compactSpace +/- theorem tendstoUniformlyOn_iff_tendsto +/- theorem tendstoUniformly_congr +/- theorem tendstoUniformly_iff_tendsto - theorem tendsto_comp_of_locally_uniform_limit - theorem tendsto_comp_of_locally_uniform_limit_within Modified Mathlib/Topology/UniformSpace/UniformConvergenceTopology.lean 2025-04-28 07:13:22 c7a52c0 feat: sliced adjoint functors (#24388) This is Proposition 3.8 in https://ncatlab.org/nlab/show/adjoint+functor. From Toric ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Comma/Over/Basic.lean + def CategoryTheory.Over.postAdjunctionRight + def CategoryTheory.Under.postAdjunctionLeft Modified Mathlib/CategoryTheory/Comma/Over/Pullback.lean + def CategoryTheory.Over.postAdjunctionLeft + def CategoryTheory.Under.postAdjunctionRight 2025-04-28 07:13:20 3ae008e feat(Algebra/Homology/Embedding): the cokernel sequence of a truncation (#24276) Given an embedding `e` of complex shapes which satisfies `e.IsTruncLE` and an homological complex `K`, we study the cokernel sequence `0 ⟶ K.truncLE e ⟶ K ⟶ cokernel (K.ιTruncLE e) ⟶ 0`. ESTIMATED CHANGES Modified Mathlib/Algebra/Homology/Embedding/TruncLEHomology.lean + theorem HomologicalComplex.isIso_homologyMap_shortComplexTruncLE_g + theorem HomologicalComplex.mono_homologyMap_shortComplexTruncLE_g + theorem HomologicalComplex.quasiIsoAt_shortComplexTruncLE_g + theorem HomologicalComplex.shortComplexTruncLE_X₃_isSupportedOutside + theorem HomologicalComplex.shortComplexTruncLE_shortExact + theorem HomologicalComplex.shortComplexTruncLE_shortExact_δ_eq_zero 2025-04-28 07:13:19 82734e7 feat(CategoryTheory): left derivability structures (#22450) Using the duality result from #22447, we dualise the notion of right derivability structure introduced in #12633 in order to formalize left derivability structures. This shall be used in order to construct left derived functors. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/GuitartExact/Opposite.lean Modified Mathlib/CategoryTheory/Localization/DerivabilityStructure/Basic.lean + theorem CategoryTheory.LocalizerMorphism.guitartExact_of_isLeftDerivabilityStructure' + theorem CategoryTheory.LocalizerMorphism.guitartExact_of_isLeftDerivabilityStructure + theorem CategoryTheory.LocalizerMorphism.isLeftDerivabilityStructure_iff + theorem CategoryTheory.LocalizerMorphism.isLeftDerivabilityStructure_iff_op Modified Mathlib/CategoryTheory/Localization/Resolution.lean 2025-04-28 06:56:21 f77211d feat: drop completeness assumption in two integral lemmas (#24428) ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Integral/Bochner/ContinuousLinearMap.lean +/- theorem integral_const_mul_of_integrable +/- theorem integral_mul_const_of_integrable 2025-04-28 06:56:19 e187052 chore(Geometry): reinstate some not-slow `field_simp`s (#24253) A while ago I made `field_simp` a bit faster. So now, some of the `field_simp` calls tracked in #15486 now aren't slow anymore. ESTIMATED CHANGES Modified Mathlib/Geometry/Euclidean/Angle/Oriented/Basic.lean Modified Mathlib/Geometry/Euclidean/MongePoint.lean Modified Mathlib/Geometry/Manifold/Instances/Sphere.lean 2025-04-28 06:56:18 795cc06 feat(CategoryTheory/Abelian): Ext when there are enough injectives (#23797) In this PR, it is shown that `Ext`-groups of positive degree to an injective object vanish. It follows that if `C` is a `w`-small abelian category with enough injectives, then `Ext`-groups are `w`-small (i.e. `HasExt.{w}` holds). This PR dualizes the results in #19591. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Homology/DerivedCategory/Ext/Basic.lean Added Mathlib/Algebra/Homology/DerivedCategory/Ext/EnoughInjectives.lean + theorem CategoryTheory.Abelian.Ext.eq_zero_of_injective + theorem CategoryTheory.hasExt_of_enoughInjectives + theorem CochainComplex.isSplitMono_from_singleFunctor_obj_of_injective + theorem DerivedCategory.to_singleFunctor_obj_eq_zero_of_injective Modified Mathlib/Algebra/Homology/DerivedCategory/Ext/EnoughProjectives.lean + theorem DerivedCategory.from_singleFunctor_obj_eq_zero_of_projective - theorem DerivedCategory.from_singleFunctor_obj_projective_eq_zero Modified Mathlib/Algebra/Homology/SingleHomology.lean + theorem HomologicalComplex.pOpcycles_singleObjOpcyclesSelfIso_inv Modified Mathlib/CategoryTheory/Abelian/Projective/Dimension.lean Modified Mathlib/CategoryTheory/Preadditive/Injective/Basic.lean 2025-04-28 06:37:57 f660ba7 feat: make `lequivProdOfRightSplitExact` universe polymorphic (#24419) When transferring a result from category theory, the theorem at the boundary should be responsible for immediately generalizing the universes if possible. Downstream cleanup from this change is left to a future PR. Arguably we should avoid going through category theory at all here, as the current construction fails to characterize the resulting isomorphism. ESTIMATED CHANGES Modified Mathlib/Algebra/Category/ModuleCat/Biproducts.lean 2025-04-28 06:28:31 5d6aefe feat: behavior of AnalyticAt.order under addition (#22680) Deliver on one of the open TODOs and establish the behavior of `AnalyticAt.order` under addition. Add missing `fun_prop` lemma on the stability of analytic functions under `HPow.hPow`. Generalize the statement on the behavior of `AnalyticAt.order` under multiplication to scalar multiplication. This material is used in [Project VD](https://github.com/kebekus/ProjectVD), which aims to formalize Value Distribution Theory for meromorphic functions on the complex plane. ESTIMATED CHANGES Modified Mathlib/Analysis/Analytic/Order.lean + theorem AnalyticAt.analyticAt_centeredMonomial + theorem AnalyticAt.analyticAt_order_centeredMonomial + theorem AnalyticAt.order_add + theorem AnalyticAt.order_add_of_order_lt_order + theorem AnalyticAt.order_add_of_order_ne_order + theorem AnalyticAt.order_congr - theorem AnalyticAt.order_mul_of_order_eq_top + theorem AnalyticAt.order_smul 2025-04-28 05:53:52 6895497 feat(GroupTheory/GroupAction/FixingSubgroup): additivize (#24117) Additivize what wasn't. ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Subgroup/Actions.lean Modified Mathlib/Algebra/Group/Submonoid/MulAction.lean Modified Mathlib/GroupTheory/GroupAction/FixedPoints.lean Modified Mathlib/GroupTheory/GroupAction/FixingSubgroup.lean 2025-04-28 05:18:44 e875e2b chore: deprecate stub files left over from #20676 (#23936) As I noted [on Zulip](https://leanprover.zulipchat.com/#narrow/channel/144837-PR-reviews/topic/.2320676.20unbundling.20ordered.20algebra/near/511192094): * `Mathlib/Algebra/Order/Field/InjSurj.lean` (deprecated stuff only) * `Mathlib/Algebra/Order/Group/InjSurj.lean` (ditto) * `Mathlib/Algebra/Order/Group/Instances.lean` (no declarations) * `Mathlib/Algebra/Order/Group/Prod.lean` (ditto) * `Mathlib/Algebra/Order/Group/TypeTags.lean` (ditto) ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Field/InjSurj.lean Modified Mathlib/Algebra/Order/Group/InjSurj.lean Modified Mathlib/Algebra/Order/Group/Instances.lean Modified Mathlib/Algebra/Order/Group/Prod.lean Modified Mathlib/Algebra/Order/Group/TypeTags.lean Modified Mathlib/Algebra/Order/Monoid/Basic.lean Modified Mathlib/Algebra/Order/Ring/InjSurj.lean 2025-04-28 04:18:25 ac984cc chore(LinearAlgebra): golf two proofs and remove porting notes (#24078) ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/Dimension/DivisionRing.lean Modified Mathlib/LinearAlgebra/LinearIndependent/Basic.lean 2025-04-28 03:42:49 ff8f787 chore(RingTheory/Polynomial/Eisenstein/Distinguished): fix namespace (#24404) From `IsDistinguishedAt.XXX` to `Polynomial.IsDistinguishedAt.XXX` which enables dot notation. Also changed some variables into implicit. ESTIMATED CHANGES Modified Mathlib/RingTheory/Polynomial/Eisenstein/Distinguished.lean - theorem IsDistinguishedAt.degree_eq_order_map - theorem IsDistinguishedAt.map_eq_X_pow + theorem Polynomial.IsDistinguishedAt.degree_eq_order_map + theorem Polynomial.IsDistinguishedAt.map_eq_X_pow 2025-04-28 03:19:43 70fb092 chore(Asymptotics/TVS): add a whitespace to notation (#24425) I think that we should put whitespaces after punctuation. ESTIMATED CHANGES Modified Mathlib/Analysis/Asymptotics/TVS.lean +/- theorem Asymptotics.IsLittleOTVS.bot +/- theorem Asymptotics.IsLittleOTVS.congr' +/- theorem Asymptotics.IsLittleOTVS.congr +/- theorem Asymptotics.IsLittleOTVS.congr_left +/- theorem Asymptotics.IsLittleOTVS.congr_right +/- theorem Asymptotics.IsLittleOTVS.mono +/- theorem Asymptotics.IsLittleOTVS.tendsto_inv_smul +/- theorem Asymptotics.IsLittleOTVS.trans +/- theorem Asymptotics.IsLittleOTVS.zero +/- theorem Asymptotics.isLittleOTVS_one Modified Mathlib/Analysis/Calculus/FDeriv/Basic.lean 2025-04-28 02:20:04 9120e17 chore(*): use the preferred spelling for `ne` (#24408) ESTIMATED CHANGES Modified Mathlib/Analysis/Meromorphic/Order.lean + theorem MeromorphicAt.order_add_of_order_ne - theorem MeromorphicAt.order_add_of_unequal_order Modified Mathlib/Combinatorics/SimpleGraph/Connectivity/Subgraph.lean Modified Mathlib/Combinatorics/SimpleGraph/Path.lean + theorem SimpleGraph.Walk.IsCycle.getVert_sub_one_ne_getVert_add_one - theorem SimpleGraph.Walk.IsCycle.getVert_sub_one_neq_getVert_add_one Modified Mathlib/Data/Fin/Basic.lean + theorem Fin.eq_one_of_ne_zero - theorem Fin.eq_one_of_neq_zero Modified Mathlib/Data/List/Sigma.lean + theorem List.ne_key - theorem List.not_eq_key Modified Mathlib/LinearAlgebra/Projectivization/Independence.lean + theorem Projectivization.independent_pair_iff_ne - theorem Projectivization.independent_pair_iff_neq 2025-04-28 01:46:29 efd09be feat(CategoryTheory/Localization): the calculus of fractions that is deduced from an adjunction (#22748) If `G ⊣ F` is an adjunction, and `F` is fully faithful, then there is a left calculus of fractions for the inverse image by `G` of the class of isomorphisms. (The dual statement is also obtained.) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Localization/CalculusOfFractions/OfAdjunction.lean + theorem CategoryTheory.Adjunction.hasLeftCalculusOfFractions + theorem CategoryTheory.Adjunction.hasRightCalculusOfFractions Modified Mathlib/CategoryTheory/MorphismProperty/Basic.lean + theorem CategoryTheory.MorphismProperty.isomorphisms_op 2025-04-28 01:17:58 0668daa feat(FieldTheory/Finitness): add `Module.natCard_eq_pow` (#24407) Unblocks #22994 ESTIMATED CHANGES Modified Mathlib/FieldTheory/Finiteness.lean + theorem Module.natCard_eq_pow_finrank 2025-04-28 00:02:49 b8e91f6 feat(MeasureTheory): multiplication by a constant can be pulled out of an integral (#24397) This PR shows that `∫ x, f x * c ∂μ = (∫ x, f x ∂μ) * c` and `∫ x, c * f x ∂μ = c * ∫ x, f x ∂μ` when `c` is a constant, and where `f` takes values in a Banach algebra. ESTIMATED CHANGES Modified Archive/Hairer.lean Modified Mathlib/Analysis/Calculus/BumpFunction/FiniteDimension.lean Modified Mathlib/Analysis/Calculus/Rademacher.lean Modified Mathlib/Analysis/Convolution.lean Modified Mathlib/Analysis/Distribution/SchwartzSpace.lean Modified Mathlib/Analysis/Fourier/AddCircle.lean Modified Mathlib/Analysis/Fourier/FourierTransformDeriv.lean Modified Mathlib/Analysis/Fourier/Inversion.lean Modified Mathlib/Analysis/ODE/PicardLindelof.lean Modified Mathlib/Analysis/SpecialFunctions/Gamma/Basic.lean Modified Mathlib/Analysis/SpecialFunctions/Gamma/Beta.lean Modified Mathlib/Analysis/SpecialFunctions/Gaussian/FourierTransform.lean Modified Mathlib/Analysis/SpecialFunctions/Gaussian/GaussianIntegral.lean Modified Mathlib/MeasureTheory/Integral/Average.lean Modified Mathlib/MeasureTheory/Integral/Bochner/Basic.lean + theorem MeasureTheory.integral_const_mul + theorem MeasureTheory.integral_mul_const - theorem MeasureTheory.integral_mul_left - theorem MeasureTheory.integral_mul_right Modified Mathlib/MeasureTheory/Integral/Bochner/ContinuousLinearMap.lean + theorem integral_const_mul_of_integrable + theorem integral_mul_const_of_integrable Modified Mathlib/MeasureTheory/Integral/Bochner/Set.lean Modified Mathlib/MeasureTheory/Integral/Gamma.lean Modified Mathlib/MeasureTheory/Integral/PeakFunction.lean Modified Mathlib/MeasureTheory/Measure/CharacteristicFunction.lean Modified Mathlib/MeasureTheory/Measure/Haar/Unique.lean Modified Mathlib/MeasureTheory/Measure/Tilted.lean Modified Mathlib/NumberTheory/AbelSummation.lean Modified Mathlib/NumberTheory/LSeries/MellinEqDirichlet.lean Modified Mathlib/NumberTheory/LSeries/SumCoeff.lean Modified Mathlib/Probability/Distributions/Gamma.lean Modified Mathlib/Probability/Distributions/Gaussian.lean Modified Mathlib/Probability/Distributions/Pareto.lean Modified Mathlib/Probability/Martingale/Upcrossing.lean Modified Mathlib/Probability/Moments/Basic.lean Modified Mathlib/Probability/Moments/MGFAnalytic.lean Modified Mathlib/Probability/Moments/SubGaussian.lean Modified Mathlib/Probability/StrongLaw.lean Modified Mathlib/Probability/Variance.lean 2025-04-27 19:30:33 fed914b chore: prepare for the next lean version bump (#24417) Mostly lemmas that were renamed in core and syntax changes related to dot notation that should not have worked before. ESTIMATED CHANGES Modified Archive/Imo/Imo2024Q5.lean Modified Archive/MiuLanguage/DecisionSuf.lean Modified Mathlib/Algebra/Algebra/Basic.lean Modified Mathlib/Algebra/Algebra/NonUnitalSubalgebra.lean Modified Mathlib/Algebra/Category/ModuleCat/Abelian.lean Modified Mathlib/Algebra/Category/ModuleCat/Images.lean Modified Mathlib/Algebra/Category/ModuleCat/Kernels.lean Modified Mathlib/Algebra/ContinuedFractions/Computation/Translations.lean Modified Mathlib/Algebra/Field/Rat.lean Modified Mathlib/Algebra/GCDMonoid/Nat.lean Modified Mathlib/Algebra/Group/Submonoid/Membership.lean Modified Mathlib/Algebra/Group/Submonoid/Operations.lean +/- theorem MonoidHom.comap_mker +/- theorem MonoidHom.map_mrange +/- theorem MonoidHom.restrict_mker Modified Mathlib/Algebra/Module/FinitePresentation.lean Modified Mathlib/Algebra/Module/Submodule/Ker.lean +/- theorem LinearMap.comp_ker_subtype +/- theorem LinearMap.ker_toAddSubmonoid Modified Mathlib/Algebra/Module/Submodule/Range.lean Modified Mathlib/Algebra/Order/Floor/Ring.lean Modified Mathlib/Algebra/Order/Group/Int/Sum.lean Modified Mathlib/Algebra/Order/Group/Unbundled/Int.lean Modified Mathlib/Algebra/Polynomial/Degree/SmallDegree.lean Modified Mathlib/Algebra/Squarefree/Basic.lean Modified Mathlib/Algebra/Star/NonUnitalSubalgebra.lean Modified Mathlib/Analysis/Calculus/ContDiff/Bounds.lean Modified Mathlib/Analysis/Normed/Unbundled/RingSeminorm.lean Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Angle.lean Modified Mathlib/Combinatorics/SimpleGraph/Matching.lean Modified Mathlib/Combinatorics/SimpleGraph/Subgraph.lean Modified Mathlib/Computability/Partrec.lean Modified Mathlib/Computability/PartrecCode.lean Modified Mathlib/Computability/PostTuringMachine.lean Modified Mathlib/Data/BitVec.lean Modified Mathlib/Data/ENNReal/Basic.lean Modified Mathlib/Data/Fin/Tuple/NatAntidiagonal.lean Modified Mathlib/Data/Finset/Powerset.lean Modified Mathlib/Data/Int/Basic.lean +/- theorem Int.natAbs_surjective Modified Mathlib/Data/Int/GCD.lean + theorem Int.coe_lcm_dvd + theorem Int.dvd_coe_gcd - theorem Int.dvd_gcd - theorem Int.lcm_dvd Modified Mathlib/Data/Int/Init.lean Modified Mathlib/Data/Int/ModEq.lean Modified Mathlib/Data/Int/Sqrt.lean +/- theorem Int.sqrt_natCast Modified Mathlib/Data/List/Basic.lean Modified Mathlib/Data/List/Cycle.lean Modified Mathlib/Data/List/Lemmas.lean Modified Mathlib/Data/List/Permutation.lean Modified Mathlib/Data/List/Zip.lean Modified Mathlib/Data/Nat/ModEq.lean Modified Mathlib/Data/Nat/Prime/Int.lean Modified Mathlib/Data/Option/Defs.lean Modified Mathlib/Data/Ordmap/Ordset.lean Modified Mathlib/Data/PEquiv.lean Modified Mathlib/Data/Rat/Lemmas.lean Modified Mathlib/Data/ZMod/Basic.lean Modified Mathlib/Data/ZMod/ValMinAbs.lean Modified Mathlib/FieldTheory/PurelyInseparable/PerfectClosure.lean Modified Mathlib/GroupTheory/CoprodI.lean Modified Mathlib/GroupTheory/HNNExtension.lean Modified Mathlib/GroupTheory/SpecificGroups/Alternating.lean Modified Mathlib/LinearAlgebra/BilinearForm/Orthogonal.lean Modified Mathlib/LinearAlgebra/CliffordAlgebra/Basic.lean Modified Mathlib/LinearAlgebra/CliffordAlgebra/Conjugation.lean Modified Mathlib/LinearAlgebra/Dimension/LinearMap.lean Modified Mathlib/LinearAlgebra/Dual/Defs.lean Modified Mathlib/LinearAlgebra/Dual/Lemmas.lean Modified Mathlib/LinearAlgebra/FreeModule/PID.lean Modified Mathlib/LinearAlgebra/Goursat.lean Modified Mathlib/LinearAlgebra/Isomorphisms.lean Modified Mathlib/LinearAlgebra/Quotient/Basic.lean +/- theorem LinearMap.range_mkQ_comp Modified Mathlib/Logic/Encodable/Basic.lean Modified Mathlib/Logic/Equiv/Fin/Basic.lean Modified Mathlib/ModelTheory/Encoding.lean Modified Mathlib/NumberTheory/ArithmeticFunction.lean Modified Mathlib/NumberTheory/DiophantineApproximation/Basic.lean Modified Mathlib/NumberTheory/FLT/Four.lean Modified Mathlib/NumberTheory/LegendreSymbol/GaussEisensteinLemmas.lean Modified Mathlib/NumberTheory/LegendreSymbol/JacobiSymbol.lean Modified Mathlib/NumberTheory/Multiplicity.lean Modified Mathlib/NumberTheory/Padics/RingHoms.lean Modified Mathlib/NumberTheory/PythagoreanTriples.lean Modified Mathlib/NumberTheory/SiegelsLemma.lean Modified Mathlib/NumberTheory/ZetaValues.lean Modified Mathlib/Order/JordanHolder.lean Modified Mathlib/Order/WithBot.lean Modified Mathlib/RingTheory/Artinian/Module.lean Modified Mathlib/RingTheory/Etale/Kaehler.lean Modified Mathlib/RingTheory/FinitePresentation.lean +/- theorem AlgHom.FinitePresentation.of_surjective +/- theorem Algebra.FinitePresentation.of_surjective +/- theorem RingHom.FinitePresentation.of_surjective Modified Mathlib/RingTheory/Finiteness/Finsupp.lean Modified Mathlib/RingTheory/Finiteness/Ideal.lean Modified Mathlib/RingTheory/Ideal/Cotangent.lean +/- theorem Ideal.map_toCotangent_ker Modified Mathlib/RingTheory/Ideal/GoingUp.lean Modified Mathlib/RingTheory/Ideal/Maps.lean +/- theorem RingHom.comap_ker Modified Mathlib/RingTheory/Ideal/Quotient/Operations.lean Modified Mathlib/RingTheory/Int/Basic.lean Modified Mathlib/RingTheory/Jacobson/Ideal.lean Modified Mathlib/RingTheory/Jacobson/Ring.lean Modified Mathlib/RingTheory/LaurentSeries.lean Modified Mathlib/RingTheory/Noetherian/Basic.lean Modified Mathlib/RingTheory/Polynomial/Basic.lean Modified Mathlib/RingTheory/Polynomial/Cyclotomic/Eval.lean Modified Mathlib/RingTheory/UniqueFactorizationDomain/Basic.lean Modified Mathlib/Tactic/NormNum/DivMod.lean Modified Mathlib/Tactic/NormNum/GCD.lean Modified Mathlib/Tactic/NormNum/Result.lean Modified Mathlib/Topology/Algebra/Module/FiniteDimension.lean Modified Mathlib/Topology/Algebra/Module/Simple.lean Modified Mathlib/Topology/Instances/AddCircle.lean Modified Mathlib/Topology/Instances/ENat.lean 2025-04-27 19:30:32 95930a2 chore(RingTheory): add Stacks project tags attribute to `RingHom.Finite`, `RingHom.Finite.to_isIntegral`, `RingHom.IsIntegral` (#24413) `RingHom.Finite`, covered in the Stacks Project tag [0563](https://stacks.math.columbia.edu/tag/0563). `RingHom.Finite.to_isIntegral`, covered in the Stacks Project tag [00GK](https://stacks.math.columbia.edu/tag/00GK). `RingHom.IsIntegral`, covered in the Stacks Project tag [00GI](https://stacks.math.columbia.edu/tag/00GI). Part of the [ICERM Workshop on Autoformalization](https://icerm.brown.edu/program/hot_topics_workshop/htw-25-aftwm). ESTIMATED CHANGES Modified Mathlib/RingTheory/Finiteness/Defs.lean Modified Mathlib/RingTheory/IntegralClosure/Algebra/Basic.lean Modified Mathlib/RingTheory/IntegralClosure/IsIntegral/Defs.lean 2025-04-27 19:30:31 61570b5 feat(Analysis/Asymptotics): add `IsEquivalent.pow/zpow` (#24410) ESTIMATED CHANGES Modified Mathlib/Analysis/Asymptotics/AsymptoticEquivalent.lean 2025-04-27 18:32:01 04fc112 feat(CategoryTheory): the center of a category (#23777) This PR introduces an abbrevation `CatCenter C` for the center of a category `C`, i.e. the type of endomorphisms of the identity functor of `C`. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Center/Basic.lean + theorem CategoryTheory.CatCenter.ext + theorem CategoryTheory.CatCenter.mul_app' + theorem CategoryTheory.CatCenter.mul_app 2025-04-27 17:20:51 7b2ce89 feat: ‖x i‖ ≤ ‖x‖ for ProdLp (#24415) This is a followup to #24402. ESTIMATED CHANGES Modified Mathlib/Analysis/Normed/Lp/ProdLp.lean + theorem WithLp.dist_fst_le + theorem WithLp.dist_snd_le + theorem WithLp.edist_fst_le + theorem WithLp.edist_snd_le + theorem WithLp.enorm_fst_le + theorem WithLp.enorm_snd_le + theorem WithLp.nndist_fst_le + theorem WithLp.nndist_snd_le + theorem WithLp.nnnorm_fst_le + theorem WithLp.nnnorm_snd_le + theorem WithLp.norm_fst_le + theorem WithLp.norm_snd_le 2025-04-27 14:08:15 a569d48 feat: pull `Function.update` through recursors (#24318) This adds a quite technical lemma that can be used to generalize some existing lemmas for `Sum` The general version would in principle work for any enumerative inductive type, though only after currying the constructor arguments first. These are `simp` (in the direction pulling `update` to the outside) since that seemed to be useful for #18534, though I could see it either way. ESTIMATED CHANGES Modified Mathlib/Data/Option/Basic.lean + theorem Option.elim'_update Modified Mathlib/Data/Sum/Basic.lean +/- theorem Sum.elim_update_left +/- theorem Sum.elim_update_right + theorem Sum.rec_update_left + theorem Sum.rec_update_right Modified Mathlib/Data/ULift.lean + theorem ULift.rec_update Modified Mathlib/Logic/Function/Basic.lean + theorem Function.rec_update + theorem Option.rec_update 2025-04-27 13:12:32 a801654 chore(*): fix some `Decidable*`/`Fintype` assumptions (#24400) Cherry-picked from #10235 ESTIMATED CHANGES Modified Mathlib/Algebra/Module/ZLattice/Covolume.lean +/- theorem ZLattice.covolume_eq_det_inv +/- theorem ZLattice.volume_image_eq_volume_div_covolume Modified Mathlib/Combinatorics/SimpleGraph/Clique.lean +/- theorem SimpleGraph.IsClique.card_le_cliqueNum +/- theorem SimpleGraph.exists_isNClique_cliqueNum +/- theorem SimpleGraph.exists_isNIndepSet_indepNum +/- theorem SimpleGraph.isIndepSet_neighborSet_of_triangleFree Modified Mathlib/Data/DFinsupp/Defs.lean Modified Mathlib/Data/Matrix/Bilinear.lean 2025-04-27 05:05:27 44f760b feat: `‖x i‖ ≤ ‖x‖` for PiLp (#24402) ESTIMATED CHANGES Modified Mathlib/Analysis/Normed/Lp/PiLp.lean + theorem PiLp.dist_apply_le + theorem PiLp.edist_apply_le + theorem PiLp.enorm_apply_le +/- theorem PiLp.lipschitzWith_equiv_aux + theorem PiLp.nndist_apply_le + theorem PiLp.nnnorm_apply_le + theorem PiLp.norm_apply_le 2025-04-26 23:10:12 99dfc6c feat(Algebra/BigOperators): simprocify `prod_univ_one/two/three/...` (#23425) Add a simproc `prod_univ_many` that rewrites `∏ (i : Fin n), f i` as `f 0 * f 1 * ... * f (n - 1)`, generalizing `prod_univ_one`, `prod_univ_two`, ..., `prod_univ_eight`. ESTIMATED CHANGES Modified Mathlib/Data/Fin/Tuple/Reflection.lean + def FinVec.mkProdEqQ + def FinVec.mkSumEqQ Added MathlibTest/Simproc/ProdUnivMany.lean + theorem prod_test 2025-04-26 22:41:19 a7411a8 refactor(TangentCone): use `AccPt` (#24227) - weaken assumptions in `zero_mem_tangentCone` from `(𝓝[s \ {x}] x).NeBot` to `x ∈ closure s`; - change assumptions here and there from `(𝓝[s \ {x}] x).NeBot` to `AccPt x (𝓟 s)`; - prove `uniqueDiffWithinAt_iff_accPt`. ESTIMATED CHANGES Modified Mathlib/Analysis/Calculus/Deriv/Add.lean Modified Mathlib/Analysis/Calculus/Deriv/Basic.lean + theorem derivWithin_zero_of_not_accPt + theorem derivWithin_zero_of_not_uniqueDiffWithinAt Modified Mathlib/Analysis/Calculus/Deriv/Comp.lean Modified Mathlib/Analysis/Calculus/Deriv/Inv.lean Modified Mathlib/Analysis/Calculus/Deriv/Mul.lean Modified Mathlib/Analysis/Calculus/Deriv/Pow.lean Modified Mathlib/Analysis/Calculus/Deriv/Prod.lean Modified Mathlib/Analysis/Calculus/Deriv/Slope.lean Modified Mathlib/Analysis/Calculus/Deriv/Star.lean Modified Mathlib/Analysis/Calculus/FDeriv/Basic.lean +/- theorem HasFDerivWithinAt.of_nhdsWithin_eq_bot + theorem HasFDerivWithinAt.of_not_accPt + theorem HasFDerivWithinAt.of_not_mem_closure +/- theorem fderivWithin_zero_of_nmem_closure + theorem fderivWithin_zero_of_not_accPt - theorem hasFDerivWithinAt_of_nmem_closure Modified Mathlib/Analysis/Calculus/FDeriv/Extend.lean Modified Mathlib/Analysis/Calculus/IteratedDeriv/Defs.lean Modified Mathlib/Analysis/Calculus/IteratedDeriv/Lemmas.lean Modified Mathlib/Analysis/Calculus/TangentCone.lean + theorem UniqueDiffWithinAt.accPt + theorem tangentConeAt_subset_zero +/- theorem tangentCone_eq_univ + theorem uniqueDiffWithinAt_iff_accPt +/- theorem zero_mem_tangentCone 2025-04-26 15:45:39 cb0f568 refactor(Geometry/Euclidean/Projection): split out orthogonal projections (#24389) Split the definitions and lemmas about orthogonal projections from `Mathlib.Geometry.Euclidean.Basic` (plus some pieces in `Mathlib.Geometry.Euclidean.Circumcenter`) into a separate file `Mathlib.Geometry.Euclidean.Projection`. No definitions, statements or proofs are changed, just moved from one place to another (plus `shake`, plus fixing up the results of `shake` including import removals that worked but weren't pointed out by `shake`). ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Geometry/Euclidean/Basic.lean - theorem Affine.Simplex.dist_orthogonalProjection_faceOpposite_pos - theorem Affine.Simplex.ne_orthogonalProjection_faceOpposite - theorem EuclideanGeometry.dist_orthogonalProjection_eq_infDist - theorem EuclideanGeometry.dist_orthogonalProjection_eq_infNndist - theorem EuclideanGeometry.dist_orthogonalProjection_eq_zero_iff - theorem EuclideanGeometry.dist_orthogonalProjection_ne_zero_of_not_mem - theorem EuclideanGeometry.dist_reflection - theorem EuclideanGeometry.dist_reflection_eq_of_mem - theorem EuclideanGeometry.dist_sq_eq_dist_orthogonalProjection_sq_add_dist_orthogonalProjection_sq - theorem EuclideanGeometry.dist_sq_smul_orthogonal_vadd_smul_orthogonal_vadd - theorem EuclideanGeometry.eq_orthogonalProjection_of_eq_subspace - theorem EuclideanGeometry.eq_reflection_of_eq_subspace - theorem EuclideanGeometry.inter_eq_singleton_orthogonalProjection - theorem EuclideanGeometry.inter_eq_singleton_orthogonalProjectionFn - def EuclideanGeometry.orthogonalProjectionFn - theorem EuclideanGeometry.orthogonalProjectionFn_eq - theorem EuclideanGeometry.orthogonalProjectionFn_mem - theorem EuclideanGeometry.orthogonalProjectionFn_mem_orthogonal - theorem EuclideanGeometry.orthogonalProjectionFn_vsub_mem_direction_orthogonal - theorem EuclideanGeometry.orthogonalProjection_affineSpan_singleton - theorem EuclideanGeometry.orthogonalProjection_contLinear - theorem EuclideanGeometry.orthogonalProjection_eq_self_iff - theorem EuclideanGeometry.orthogonalProjection_linear - theorem EuclideanGeometry.orthogonalProjection_mem - theorem EuclideanGeometry.orthogonalProjection_mem_orthogonal - theorem EuclideanGeometry.orthogonalProjection_mem_subspace_eq_self - theorem EuclideanGeometry.orthogonalProjection_orthogonalProjection - theorem EuclideanGeometry.orthogonalProjection_vadd_eq_self - theorem EuclideanGeometry.orthogonalProjection_vadd_smul_vsub_orthogonalProjection - theorem EuclideanGeometry.orthogonalProjection_vsub_mem_direction - theorem EuclideanGeometry.orthogonalProjection_vsub_mem_direction_orthogonal - theorem EuclideanGeometry.orthogonalProjection_vsub_orthogonalProjection - def EuclideanGeometry.reflection - theorem EuclideanGeometry.reflection_apply - theorem EuclideanGeometry.reflection_eq_iff_orthogonalProjection_eq - theorem EuclideanGeometry.reflection_eq_self_iff - theorem EuclideanGeometry.reflection_involutive - theorem EuclideanGeometry.reflection_mem_of_le_of_mem - theorem EuclideanGeometry.reflection_orthogonal_vadd - theorem EuclideanGeometry.reflection_reflection - theorem EuclideanGeometry.reflection_symm - theorem EuclideanGeometry.reflection_vadd_smul_vsub_orthogonalProjection - theorem EuclideanGeometry.vsub_orthogonalProjection_mem_direction - theorem EuclideanGeometry.vsub_orthogonalProjection_mem_direction_orthogonal Modified Mathlib/Geometry/Euclidean/Circumcenter.lean - theorem Affine.Simplex.coe_orthogonalProjection_vadd_smul_vsub_orthogonalProjection - theorem Affine.Simplex.dist_sq_eq_dist_orthogonalProjection_sq_add_dist_orthogonalProjection_sq - def Affine.Simplex.orthogonalProjectionSpan - theorem Affine.Simplex.orthogonalProjection_vadd_smul_vsub_orthogonalProjection - theorem EuclideanGeometry.dist_eq_iff_dist_orthogonalProjection_eq - theorem EuclideanGeometry.dist_set_eq_iff_dist_orthogonalProjection_eq - theorem EuclideanGeometry.exists_dist_eq_iff_exists_dist_orthogonalProjection_eq Added Mathlib/Geometry/Euclidean/Projection.lean + theorem Affine.Simplex.coe_orthogonalProjection_vadd_smul_vsub_orthogonalProjection + theorem Affine.Simplex.dist_orthogonalProjection_faceOpposite_pos + theorem Affine.Simplex.dist_sq_eq_dist_orthogonalProjection_sq_add_dist_orthogonalProjection_sq + theorem Affine.Simplex.ne_orthogonalProjection_faceOpposite + def Affine.Simplex.orthogonalProjectionSpan + theorem Affine.Simplex.orthogonalProjection_vadd_smul_vsub_orthogonalProjection + theorem EuclideanGeometry.dist_eq_iff_dist_orthogonalProjection_eq + theorem EuclideanGeometry.dist_orthogonalProjection_eq_infDist + theorem EuclideanGeometry.dist_orthogonalProjection_eq_infNndist + theorem EuclideanGeometry.dist_orthogonalProjection_eq_zero_iff + theorem EuclideanGeometry.dist_orthogonalProjection_ne_zero_of_not_mem + theorem EuclideanGeometry.dist_reflection + theorem EuclideanGeometry.dist_reflection_eq_of_mem + theorem EuclideanGeometry.dist_set_eq_iff_dist_orthogonalProjection_eq + theorem EuclideanGeometry.dist_sq_eq_dist_orthogonalProjection_sq_add_dist_orthogonalProjection_sq + theorem EuclideanGeometry.dist_sq_smul_orthogonal_vadd_smul_orthogonal_vadd + theorem EuclideanGeometry.eq_orthogonalProjection_of_eq_subspace + theorem EuclideanGeometry.eq_reflection_of_eq_subspace + theorem EuclideanGeometry.exists_dist_eq_iff_exists_dist_orthogonalProjection_eq + theorem EuclideanGeometry.inter_eq_singleton_orthogonalProjection + theorem EuclideanGeometry.inter_eq_singleton_orthogonalProjectionFn + def EuclideanGeometry.orthogonalProjectionFn + theorem EuclideanGeometry.orthogonalProjectionFn_eq + theorem EuclideanGeometry.orthogonalProjectionFn_mem + theorem EuclideanGeometry.orthogonalProjectionFn_mem_orthogonal + theorem EuclideanGeometry.orthogonalProjectionFn_vsub_mem_direction_orthogonal + theorem EuclideanGeometry.orthogonalProjection_affineSpan_singleton + theorem EuclideanGeometry.orthogonalProjection_contLinear + theorem EuclideanGeometry.orthogonalProjection_eq_self_iff + theorem EuclideanGeometry.orthogonalProjection_linear + theorem EuclideanGeometry.orthogonalProjection_mem + theorem EuclideanGeometry.orthogonalProjection_mem_orthogonal + theorem EuclideanGeometry.orthogonalProjection_mem_subspace_eq_self + theorem EuclideanGeometry.orthogonalProjection_orthogonalProjection + theorem EuclideanGeometry.orthogonalProjection_vadd_eq_self + theorem EuclideanGeometry.orthogonalProjection_vadd_smul_vsub_orthogonalProjection + theorem EuclideanGeometry.orthogonalProjection_vsub_mem_direction + theorem EuclideanGeometry.orthogonalProjection_vsub_mem_direction_orthogonal + theorem EuclideanGeometry.orthogonalProjection_vsub_orthogonalProjection + def EuclideanGeometry.reflection + theorem EuclideanGeometry.reflection_apply + theorem EuclideanGeometry.reflection_eq_iff_orthogonalProjection_eq + theorem EuclideanGeometry.reflection_eq_self_iff + theorem EuclideanGeometry.reflection_involutive + theorem EuclideanGeometry.reflection_mem_of_le_of_mem + theorem EuclideanGeometry.reflection_orthogonal_vadd + theorem EuclideanGeometry.reflection_reflection + theorem EuclideanGeometry.reflection_symm + theorem EuclideanGeometry.reflection_vadd_smul_vsub_orthogonalProjection + theorem EuclideanGeometry.vsub_orthogonalProjection_mem_direction + theorem EuclideanGeometry.vsub_orthogonalProjection_mem_direction_orthogonal Modified Mathlib/Geometry/Euclidean/SignedDist.lean Modified Mathlib/Geometry/Euclidean/Sphere/Tangent.lean 2025-04-26 15:06:52 48c5b81 feat(RingTheory/Polynomial): irreducible polynomials are primitive (#24348) ESTIMATED CHANGES Modified Mathlib/RingTheory/Polynomial/Content.lean + theorem Irreducible.isPrimitive 2025-04-26 09:48:02 a0dbca2 chore(Order): process some porting notes (#24362) ESTIMATED CHANGES Modified Mathlib/Order/ConditionallyCompleteLattice/Basic.lean Modified Mathlib/Order/ConditionallyCompleteLattice/Indexed.lean Modified Mathlib/Order/Filter/Tendsto.lean Modified Mathlib/Order/Fin/Basic.lean Modified Mathlib/Order/Hom/Basic.lean + theorem OrderIso.lt_symm_apply + theorem OrderIso.symm_apply_lt 2025-04-26 03:37:40 a91fc5c feat(Algebra/Order/Field/Defs): generalize lemmas (#24377) ... from linear ordered semifields to (commutative) groups with zero. ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Field/Defs.lean - theorem inv_mul_le_one - theorem inv_mul_left_le - theorem inv_mul_right_le - theorem le_inv_mul_left - theorem le_inv_mul_right - theorem le_mul_div_mul_left - theorem le_mul_div_mul_right - theorem le_mul_inv_left - theorem le_mul_inv_right - theorem mul_div_mul_left_le - theorem mul_div_mul_right_le - theorem mul_inv_le_one - theorem mul_inv_left_le - theorem mul_inv_right_le Modified Mathlib/Algebra/Order/GroupWithZero/Unbundled/Basic.lean + theorem inv_mul_le_one + theorem inv_mul_left_le + theorem inv_mul_right_le + theorem le_inv_mul_left + theorem le_inv_mul_right + theorem le_mul_div_mul_left + theorem le_mul_div_mul_right + theorem le_mul_inv_left + theorem le_mul_inv_right + theorem mul_div_mul_left_le + theorem mul_div_mul_right_le + theorem mul_inv_le_one + theorem mul_inv_left_le + theorem mul_inv_right_le 2025-04-26 03:11:58 cb4d0ad chore(Data): remove erw (#24332) Removes three instances of `erw` in `Data` ESTIMATED CHANGES Modified Mathlib/Data/Multiset/Fintype.lean + theorem Multiset.map_univ_comp_coe Modified Mathlib/Data/TypeVec.lean 2025-04-25 13:55:56 5fd096b chore: use TreeMap in to_additive (#24366) This PR avoids use of `Lean.RBMap` in the implementation of `to_additive`, where the new `Std.TreeMap` suffices. ESTIMATED CHANGES Modified Mathlib/Tactic/ToAdditive/Frontend.lean +/- def ToAdditive.endCapitalNames 2025-04-25 13:55:54 ce2c549 chore: use Std.TreeMap in itauto (#24365) This PR avoids use of `Lean.RBMap` in the implementation of `itauto`, where the new `Std.TreeMap` suffices. ESTIMATED CHANGES Modified Mathlib/Tactic/ITauto.lean - def Mathlib.Tactic.ITauto.Context 2025-04-25 13:36:44 fb36f5e feat: add ENormedAddCommMonoid ENNReal instance (#24368) ESTIMATED CHANGES Modified Mathlib/Analysis/Normed/Group/Basic.lean 2025-04-25 13:11:27 c4fc2e6 feat: add iSup lemmas (#23178) ESTIMATED CHANGES Modified Mathlib/Topology/Instances/NNReal/Lemmas.lean + theorem ENNReal.iSup_pow + theorem ENNReal.iSup_pow_of_ne_zero + def ENNReal.powOrderIso + theorem NNReal.iSup_pow + theorem NNReal.iSup_pow_of_ne_zero + theorem Real.iSup_pow + theorem Real.iSup_pow_of_ne_zero 2025-04-25 10:48:06 aaf7807 doc: better example in Module.finrank docstring (#24363) Q has finrank 1 over Z but isn't finitely-generated as a Z-module. ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/Dimension/Finrank.lean 2025-04-25 07:22:49 11cedf3 chore(AlgebraicGeometry/EllipticCurve/*): refactor VariableChange (#23217) Drop certain definitions in `VariableChange` in favor of mathlib's built-in notation: - `VariableChange.id` -> `(1 : VariableChange R)` - `VariableChange.comp C C'` -> `C * C'` - `VariableChange.inv C` -> `C⁻¹` - `W.variableChange C` -> `C • W` ESTIMATED CHANGES Modified Mathlib/AlgebraicGeometry/EllipticCurve/Affine.lean Modified Mathlib/AlgebraicGeometry/EllipticCurve/IsomOfJ.lean +/- theorem WeierstrassCurve.exists_variableChange_of_j_eq Modified Mathlib/AlgebraicGeometry/EllipticCurve/NormalForms.lean +/- theorem WeierstrassCurve.exists_variableChange_isCharNeTwoNF +/- theorem WeierstrassCurve.exists_variableChange_isCharThreeNF +/- theorem WeierstrassCurve.exists_variableChange_isCharTwoNF +/- theorem WeierstrassCurve.exists_variableChange_isShortNF +/- theorem WeierstrassCurve.toCharThreeNF_spec_of_b₂_eq_zero +/- theorem WeierstrassCurve.toShortNFOfCharThree_a₂ +/- theorem WeierstrassCurve.toShortNFOfCharThree_spec Modified Mathlib/AlgebraicGeometry/EllipticCurve/VariableChange.lean - def WeierstrassCurve.VariableChange.comp - theorem WeierstrassCurve.VariableChange.comp_assoc - theorem WeierstrassCurve.VariableChange.comp_id - theorem WeierstrassCurve.VariableChange.comp_left_inv - def WeierstrassCurve.VariableChange.id - theorem WeierstrassCurve.VariableChange.id_comp - def WeierstrassCurve.VariableChange.inv + theorem WeierstrassCurve.VariableChange.inv_def + theorem WeierstrassCurve.VariableChange.mul_def + theorem WeierstrassCurve.VariableChange.one_def +/- theorem WeierstrassCurve.coe_inv_variableChange_Δ' +/- theorem WeierstrassCurve.coe_variableChange_Δ' +/- theorem WeierstrassCurve.inv_variableChange_Δ' +/- theorem WeierstrassCurve.map_variableChange - def WeierstrassCurve.variableChange + theorem WeierstrassCurve.variableChange_a₁ + theorem WeierstrassCurve.variableChange_a₂ + theorem WeierstrassCurve.variableChange_a₃ + theorem WeierstrassCurve.variableChange_a₄ + theorem WeierstrassCurve.variableChange_a₆ +/- theorem WeierstrassCurve.variableChange_b₂ +/- theorem WeierstrassCurve.variableChange_b₄ +/- theorem WeierstrassCurve.variableChange_b₆ +/- theorem WeierstrassCurve.variableChange_b₈ - theorem WeierstrassCurve.variableChange_comp +/- theorem WeierstrassCurve.variableChange_c₄ +/- theorem WeierstrassCurve.variableChange_c₆ + theorem WeierstrassCurve.variableChange_def - theorem WeierstrassCurve.variableChange_id +/- theorem WeierstrassCurve.variableChange_j +/- theorem WeierstrassCurve.variableChange_Δ' +/- theorem WeierstrassCurve.variableChange_Δ 2025-04-25 07:04:21 7d8506d feat(FieldTheory): add the class `IsQuadraticExtension` (#24114) ESTIMATED CHANGES Modified Mathlib/FieldTheory/Fixed.lean + theorem AlgEquiv.card_le + theorem AlgHom.card_le Modified Mathlib/FieldTheory/Galois/Basic.lean Modified Mathlib/FieldTheory/KummerExtension.lean Modified Mathlib/FieldTheory/Normal/Basic.lean - theorem normal_of_finrank_eq_two Modified Mathlib/LinearAlgebra/Dimension/Finrank.lean Modified Mathlib/LinearAlgebra/FiniteDimensional/Basic.lean 2025-04-25 06:33:09 8cb295b feat(Algebra/BigOperators/Finprod): add `mul_finsum_mem` / `finsum_mem_mul` (#24336) This PR adds the analogues of `mul_finsum` and `finsum_mul` for `finsum_mem`. ESTIMATED CHANGES Modified Mathlib/Algebra/BigOperators/Finprod.lean + theorem finsum_mem_mul + theorem mul_finsum_mem 2025-04-25 04:02:43 50ab41a feat(Bicategory/Oplax): Fix simp lemmas and renaming (#18252) This PR renames `OplaxNatTrans` to `OplaxTrans` and puts it in the `Oplax` namespace (as there should also be oplax natural transformations between lax functors, so this is more fitting). It also removes `@[simp]` from `OplaxTrans.id` and `OplaxTrans.vcomp`, and instead adds `@[simp!]` to the `CategoryStruct` instance. This is needed as for example, right now, in order to prove that `(η ≫ θ).app a = η.app a ≫ θ.app a` simp needs to first convert this to `(OplaxTrans.vcomp η θ).app a` which is not ideal (in particular it converts `(η ≫ θ)` to `OplaxTrans.vcomp η θ`). This is part of some of the restructuring that I want to do before constructing the bicategory of pseudofunctors. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Bicategory/Modification/Oplax.lean Modified Mathlib/CategoryTheory/Bicategory/NaturalTransformation/Oplax.lean + def CategoryTheory.Oplax.OplaxTrans.id + def CategoryTheory.Oplax.OplaxTrans.vcomp + theorem CategoryTheory.Oplax.OplaxTrans.whiskerLeft_naturality_comp + theorem CategoryTheory.Oplax.OplaxTrans.whiskerLeft_naturality_id + theorem CategoryTheory.Oplax.OplaxTrans.whiskerLeft_naturality_naturality + theorem CategoryTheory.Oplax.OplaxTrans.whiskerRight_naturality_comp + theorem CategoryTheory.Oplax.OplaxTrans.whiskerRight_naturality_id + theorem CategoryTheory.Oplax.OplaxTrans.whiskerRight_naturality_naturality + structure CategoryTheory.Oplax.OplaxTrans - structure CategoryTheory.OplaxNatTrans.StrongCore - def CategoryTheory.OplaxNatTrans.id - def CategoryTheory.OplaxNatTrans.vcomp - theorem CategoryTheory.OplaxNatTrans.whiskerLeft_naturality_comp - theorem CategoryTheory.OplaxNatTrans.whiskerLeft_naturality_id - theorem CategoryTheory.OplaxNatTrans.whiskerLeft_naturality_naturality - theorem CategoryTheory.OplaxNatTrans.whiskerRight_naturality_comp - theorem CategoryTheory.OplaxNatTrans.whiskerRight_naturality_id - theorem CategoryTheory.OplaxNatTrans.whiskerRight_naturality_naturality - structure CategoryTheory.OplaxNatTrans Modified Mathlib/CategoryTheory/Bicategory/NaturalTransformation/Strong.lean + structure CategoryTheory.OplaxTrans.StrongCore - theorem CategoryTheory.StrongOplaxNatTrans.id.toOplax - def CategoryTheory.StrongOplaxNatTrans.id - def CategoryTheory.StrongOplaxNatTrans.mkOfOplax - def CategoryTheory.StrongOplaxNatTrans.toOplax - def CategoryTheory.StrongOplaxNatTrans.vcomp - theorem CategoryTheory.StrongOplaxNatTrans.whiskerLeft_naturality_comp - theorem CategoryTheory.StrongOplaxNatTrans.whiskerLeft_naturality_id - theorem CategoryTheory.StrongOplaxNatTrans.whiskerLeft_naturality_naturality - theorem CategoryTheory.StrongOplaxNatTrans.whiskerRight_naturality_comp - theorem CategoryTheory.StrongOplaxNatTrans.whiskerRight_naturality_id - theorem CategoryTheory.StrongOplaxNatTrans.whiskerRight_naturality_naturality - structure CategoryTheory.StrongOplaxNatTrans + theorem CategoryTheory.StrongOplaxTrans.id.toOplax + def CategoryTheory.StrongOplaxTrans.id + def CategoryTheory.StrongOplaxTrans.mkOfOplax + def CategoryTheory.StrongOplaxTrans.toOplax + def CategoryTheory.StrongOplaxTrans.vcomp + theorem CategoryTheory.StrongOplaxTrans.whiskerLeft_naturality_comp + theorem CategoryTheory.StrongOplaxTrans.whiskerLeft_naturality_id + theorem CategoryTheory.StrongOplaxTrans.whiskerLeft_naturality_naturality + theorem CategoryTheory.StrongOplaxTrans.whiskerRight_naturality_comp + theorem CategoryTheory.StrongOplaxTrans.whiskerRight_naturality_id + theorem CategoryTheory.StrongOplaxTrans.whiskerRight_naturality_naturality + structure CategoryTheory.StrongOplaxTrans 2025-04-25 00:52:14 c2e3118 feat(LinearAlgebra/AffineSpace/ContinuousAffineEquiv): `toContinuousAffineMap` (#23732) Add the conversion from `ContinuousAffineEquiv` to `ContinuousAffineMap`, which seems to be missing from mathlib. I'm not sure exactly what API such conversions are meant to have - `toHomeomorph` doesn't have any - but I added `rfl` lemmas about converting to a function either directly or via `toContinuousAffineMap`, and about different pairs of conversion paths involving `toContinuousAffineMap` producing the same result, as well as injectivity of `toContinuousAffineMap`. ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/AffineSpace/ContinuousAffineEquiv.lean + theorem ContinuousAffineEquiv.coe_toContinuousAffineMap + def ContinuousAffineEquiv.toContinuousAffineMap + theorem ContinuousAffineEquiv.toContinuousAffineMap_injective + theorem ContinuousAffineEquiv.toContinuousAffineMap_toAffineMap + theorem ContinuousAffineEquiv.toContinuousAffineMap_toContinuousMap + theorem ContinuousAffineEquiv.trans_toContinuousAffineMap + theorem ContinuousLinearEquiv.toContinuousAffineEquiv_toContinuousAffineMap 2025-04-24 23:11:28 0d05f2a feat (LinearAlgebra/BilinearMap): restrict scalars and range of a linear map (#24345) This PR introduces `restrictScalarsRange`, which is a linear map that restricts the scalars and range of a linear map. The function previously named `restrictScalarsRange` is about bilinear maps, and is renamed `restrictScalarsRange₂`. ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/BilinearMap.lean +/- theorem LinearMap.eq_restrictScalarsRange_iff + theorem LinearMap.eq_restrictScalarsRange₂_iff +/- theorem LinearMap.restrictScalarsRange_apply +/- theorem LinearMap.restrictScalarsRange_apply_eq_zero_iff + theorem LinearMap.restrictScalarsRange₂_apply + theorem LinearMap.restrictScalarsRange₂_apply_eq_zero_iff Modified Mathlib/LinearAlgebra/PerfectPairing/Restrict.lean Modified Mathlib/LinearAlgebra/RootSystem/RootPositive.lean 2025-04-24 23:11:27 2b50f1c feat: restrict `to_additive existing` syntax (#24280) Previously, you could write `to_additive (attr := simp) existing`, and `existing` could even be written multiple times, which doesn't make sense. This PR only allows one occurrence of `existing`, and it must come before `(attr := ..)` and `(reorder := ..)`. ESTIMATED CHANGES Modified Mathlib/Algebra/BigOperators/Pi.lean Modified Mathlib/Analysis/Normed/Group/Seminorm.lean Modified Mathlib/Combinatorics/Additive/DoublingConst.lean Modified Mathlib/Data/ZMod/Basic.lean Modified Mathlib/Tactic/ToAdditive/Frontend.lean Modified Mathlib/Topology/Algebra/Category/ProfiniteGrp/Basic.lean 2025-04-24 23:11:26 f962d8d chore: remove @[trans] annotations on orders (#24277) `trans` can use the `Trans` and `IsTrans` typeclasses to determine the transitivity of `≤` and `<`. So all these general `@[trans]` tags on these lemmas are redundant (or even bad). There is also a bug in `trans` that causes the tactic to not work with lemmas about `≤` and `<` that are tagged with `@[trans]`, so these tags weren't doing anything anyways. ESTIMATED CHANGES Modified Mathlib/Order/Antisymmetrization.lean Modified Mathlib/Order/Defs/PartialOrder.lean +/- theorem ge_trans +/- theorem gt_of_ge_of_gt +/- theorem gt_of_gt_of_ge +/- theorem gt_trans +/- theorem le_trans +/- theorem lt_of_le_of_lt +/- theorem lt_of_lt_of_le +/- theorem lt_trans 2025-04-24 23:04:43 24e9a8f chore(RingTheory/DedekindDomain): fix doc (#24319) ESTIMATED CHANGES Modified Mathlib/RingTheory/DedekindDomain/FiniteAdeleRing.lean 2025-04-24 21:27:34 3804f24 feat: distributive Haar characters (#23603) The name is made up in analogy with modular characters. From FLT ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/MeasureTheory/Measure/Haar/DistribChar.lean + theorem MeasureTheory.addHaarScalarFactor_smul_eq_distribHaarChar + theorem MeasureTheory.addHaarScalarFactor_smul_eq_distribHaarChar_inv + theorem MeasureTheory.addHaarScalarFactor_smul_inv_eq_distribHaarChar + theorem MeasureTheory.distribHaarChar_eq_div + theorem MeasureTheory.distribHaarChar_eq_of_measure_smul_eq_mul + theorem MeasureTheory.distribHaarChar_mul + theorem MeasureTheory.distribHaarChar_pos 2025-04-24 21:17:17 feaee44 feat(CategoryTheory): categories of homological complexes are Grothendieck abelian (#20230) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Homology/GrothendieckAbelian.lean 2025-04-24 20:38:33 fd19b25 chore(Ring/Basic): merge `inv_neg` and `inv_neg'` (#24335) The non-primed version was strictly more general. Also rename `instHasDistribNeg` to `MulOpposite.instHasDistribNeg`. ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Field/Power.lean Modified Mathlib/Algebra/Ring/Basic.lean - theorem inv_neg' Modified Mathlib/Analysis/Complex/UpperHalfPlane/Basic.lean Modified Mathlib/LinearAlgebra/Orientation.lean 2025-04-24 20:38:32 67bb601 feat(Topology/Module): `ContinuousNeg.of_continuousConstSMul` (#24334) This lemma is useful if we already assume `[ContinuousConstSMul R M]` but don't assume `[IsTopologicalAddGroup M]`. ESTIMATED CHANGES Modified Mathlib/Topology/Algebra/Module/Basic.lean + theorem ContinuousNeg.of_continuousConstSMul 2025-04-24 20:38:31 bd9c5bb chore(CStarAlgebra): remove `PositiveLinearMapClass` (#24300) This PR removes the typeclass `PositiveLinearMapClass`, meant as the morphism class corresponding to `PositiveLinearMap`. This class is equivalent to a combination of `LinearMapClass` and `OrderHomClass`, and it is probably best to remove it as it mixes algebra and order; in fact, it caused performance problems while I was experimenting with completely positive maps. ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Module/PositiveLinearMap.lean Modified Mathlib/Analysis/CStarAlgebra/PositiveLinearMap.lean 2025-04-24 20:04:38 8ca285c chore(Algebra/Order/GroupWithZero): review (#24301) Reorder lemmas, unify assumptions, generalize from `LinearOrder` to `PartialOrder`. Lemmas in this file used to have many different sets of typeclass assumptions, so they were sorted according to the assumptions. Recently, I've reduced the number of sets of assumptions, but didn't reorder the lemmas. In this PR, I further unify assumptions and reorder theorems. ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Group/Pointwise/Interval.lean +/- theorem Set.image_affine_Icc' +/- theorem Set.image_affine_Ico +/- theorem Set.image_affine_Ioc +/- theorem Set.image_affine_Ioo Modified Mathlib/Algebra/Order/GroupWithZero/Unbundled/Basic.lean + theorem MulPosReflectLE.of_posMulReflectLT_of_mulPosMono + theorem Right.inv_nonneg +/- theorem div_le_div_iff_of_pos_left +/- theorem div_le_div_iff_of_pos_right +/- theorem div_lt_div_iff_of_pos_left +/- theorem div_lt_div_iff_of_pos_right +/- theorem div_lt_div_of_pos_left +/- theorem div_nonpos_of_nonpos_of_nonneg +/- theorem inv_le_one_of_one_le₀ +/- theorem inv_mul_le_iff₀ +/- theorem inv_mul_lt_iff₀ +/- theorem le_inv_mul_iff₀ +/- theorem le_mul_inv_iff₀ +/- theorem lt_inv_mul_iff₀ +/- theorem lt_mul_inv_iff₀ +/- theorem mul_inv_le_iff₀ +/- theorem mul_inv_lt_iff₀ +/- theorem one_le_inv_iff₀ +/- theorem zpow_nonneg +/- theorem zpow_pos 2025-04-24 19:56:05 a23b5d5 refactor(ChosenFiniteProducts): don't make finite-product-preserving functors monoidal (#24049) Instead, reprove all the theorems about finite-product-preserving functors under the appropriate `LaxMonoidal`/ `OplaxMonoidal`/`Monoidal` assumptions. Also take the opportunity to sort the file slightly, correct docstrings and a few names. From Toric ESTIMATED CHANGES Modified Mathlib/Algebra/Category/Grp/ChosenFiniteProducts.lean Modified Mathlib/Algebra/Category/Grp/LeftExactFunctor.lean Modified Mathlib/CategoryTheory/ChosenFiniteProducts.lean + theorem CategoryTheory.ChosenFiniteProducts.leftUnitor_hom + theorem CategoryTheory.ChosenFiniteProducts.rightUnitor_hom + theorem CategoryTheory.ChosenFiniteProducts.whiskerLeft_toUnit_comp_rightUnitor_hom + theorem CategoryTheory.ChosenFiniteProducts.whiskerRight_toUnit_comp_leftUnitor_hom - theorem CategoryTheory.Functor.EssImageSubcategory.associator_hom_def - theorem CategoryTheory.Functor.EssImageSubcategory.associator_inv_def - theorem CategoryTheory.Functor.EssImageSubcategory.fst_def - theorem CategoryTheory.Functor.EssImageSubcategory.lift_def - theorem CategoryTheory.Functor.EssImageSubcategory.snd_def - theorem CategoryTheory.Functor.EssImageSubcategory.tensor_obj - theorem CategoryTheory.Functor.EssImageSubcategory.toUnit_def - theorem CategoryTheory.Functor.EssImageSubcategory.whiskerLeft_def - theorem CategoryTheory.Functor.EssImageSubcategory.whiskerRight_def - theorem CategoryTheory.Functor.Monoidal.lift_δ - theorem CategoryTheory.Functor.Monoidal.lift_μ - theorem CategoryTheory.Functor.Monoidal.toUnit_ε - theorem CategoryTheory.Functor.Monoidal.δ_fst - theorem CategoryTheory.Functor.Monoidal.δ_snd - theorem CategoryTheory.Functor.Monoidal.ε_of_chosenFiniteProducts - theorem CategoryTheory.Functor.Monoidal.μ_comp - theorem CategoryTheory.Functor.Monoidal.μ_fst - theorem CategoryTheory.Functor.Monoidal.μ_of_chosenFiniteProducts - theorem CategoryTheory.Functor.Monoidal.μ_snd + theorem CategoryTheory.Functor.OplaxMonoidal.EssImageSubcategory.associator_hom_def + theorem CategoryTheory.Functor.OplaxMonoidal.EssImageSubcategory.associator_inv_def + theorem CategoryTheory.Functor.OplaxMonoidal.EssImageSubcategory.fst_def + theorem CategoryTheory.Functor.OplaxMonoidal.EssImageSubcategory.lift_def + theorem CategoryTheory.Functor.OplaxMonoidal.EssImageSubcategory.snd_def + theorem CategoryTheory.Functor.OplaxMonoidal.EssImageSubcategory.tensor_obj + theorem CategoryTheory.Functor.OplaxMonoidal.EssImageSubcategory.toUnit_def + theorem CategoryTheory.Functor.OplaxMonoidal.EssImageSubcategory.whiskerLeft_def + theorem CategoryTheory.Functor.OplaxMonoidal.EssImageSubcategory.whiskerRight_def + theorem CategoryTheory.Functor.OplaxMonoidal.Monoidal.lift_δ + theorem CategoryTheory.Functor.OplaxMonoidal.Monoidal.lift_μ + theorem CategoryTheory.Functor.OplaxMonoidal.Monoidal.nonempty_monoidal_iff_preservesFiniteProducts + theorem CategoryTheory.Functor.OplaxMonoidal.Monoidal.toUnit_ε + theorem CategoryTheory.Functor.OplaxMonoidal.Monoidal.δ_fst + theorem CategoryTheory.Functor.OplaxMonoidal.Monoidal.δ_snd + theorem CategoryTheory.Functor.OplaxMonoidal.Monoidal.ε_of_chosenFiniteProducts + theorem CategoryTheory.Functor.OplaxMonoidal.Monoidal.μ_comp + theorem CategoryTheory.Functor.OplaxMonoidal.Monoidal.μ_fst + theorem CategoryTheory.Functor.OplaxMonoidal.Monoidal.μ_of_chosenFiniteProducts + theorem CategoryTheory.Functor.OplaxMonoidal.Monoidal.μ_snd + def CategoryTheory.Functor.OplaxMonoidal.ofChosenFiniteProducts + theorem CategoryTheory.Functor.OplaxMonoidal.δ_of_chosenFiniteProducts + theorem CategoryTheory.Functor.OplaxMonoidal.η_of_chosenFiniteProducts - def CategoryTheory.Functor.oplaxMonoidalOfChosenFiniteProducts - theorem CategoryTheory.Functor.δ_of_chosenFiniteProducts - theorem CategoryTheory.Functor.η_of_chosenFiniteProducts Modified Mathlib/CategoryTheory/Closed/Cartesian.lean Modified Mathlib/CategoryTheory/Monoidal/CommGrp_.lean Modified Mathlib/CategoryTheory/Monoidal/Grp_.lean 2025-04-24 18:18:14 156e745 feat(Algebra/Polynomial): add `mapAlgEquiv_toAlgHom` (#24349) ESTIMATED CHANGES Modified Mathlib/Algebra/Polynomial/AlgebraMap.lean +/- theorem Polynomial.mapAlgEquiv_comp + theorem Polynomial.mapAlgEquiv_toAlgHom 2025-04-24 17:34:46 d9004fd feat(Dynamics/TopologicalEntropy): Topological entropy and subsets (#24262) This file implements basic facts about the topological entropy of subsets of a dynamical system: monotonicity, closure, unions. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Dynamics/TopologicalEntropy/DynamicalEntourage.lean + theorem Dynamics.ball_dynEntourage_mem_nhds Added Mathlib/Dynamics/TopologicalEntropy/Subset.lean + theorem Dynamics.IsDynCoverOf.closure + theorem Dynamics.IsDynCoverOf.monotone_subset + theorem Dynamics.IsDynCoverOf.union + theorem Dynamics.IsDynNetIn.monotone_subset + theorem Dynamics.coverEntropyEntourage_closure + theorem Dynamics.coverEntropyEntourage_monotone + theorem Dynamics.coverEntropyEntourage_union + theorem Dynamics.coverEntropyInfEntourage_closure + theorem Dynamics.coverEntropyInfEntourage_monotone + theorem Dynamics.coverEntropyInf_biUnion_le + theorem Dynamics.coverEntropyInf_closure + theorem Dynamics.coverEntropyInf_iUnion_le + theorem Dynamics.coverEntropyInf_monotone + theorem Dynamics.coverEntropy_biUnion_finset + theorem Dynamics.coverEntropy_biUnion_le + theorem Dynamics.coverEntropy_closure + theorem Dynamics.coverEntropy_iUnion_le + theorem Dynamics.coverEntropy_iUnion_of_finite + theorem Dynamics.coverEntropy_monotone + theorem Dynamics.coverEntropy_union + theorem Dynamics.coverMincard_closure_le + theorem Dynamics.coverMincard_monotone_subset + theorem Dynamics.coverMincard_union_le + theorem Dynamics.netEntropyEntourage_monotone + theorem Dynamics.netEntropyInfEntourage_monotone + theorem Dynamics.netMaxcard_monotone_subset Modified Mathlib/Topology/UniformSpace/Defs.lean + theorem UniformSpace.ball_iInter 2025-04-24 17:05:54 81a25d1 chore: fix recently introduced name (#24340) This was added yesterday. As such, I don't think this warrants a deprecation at all. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Closed/Ideal.lean - theorem CategoryTheory.Limits.PreservesFiniteProducts._of_exponentialIdeal + theorem CategoryTheory.Limits.PreservesFiniteProducts.of_exponentialIdeal 2025-04-24 17:05:52 e8eb83f chore: generalise results about `x ^ n = ⊤` to `WithTop` (#24339) And mark them simp ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Ring/WithTop.lean + theorem WithTop.eq_top_of_pow + theorem WithTop.pow_eq_top_iff + theorem WithTop.pow_lt_top + theorem WithTop.pow_lt_top_iff + theorem WithTop.pow_ne_top + theorem WithTop.pow_ne_top_iff +/- theorem WithTop.top_pow Modified Mathlib/Analysis/SpecialFunctions/Log/ENNRealLog.lean Modified Mathlib/Analysis/SpecialFunctions/Pow/NNReal.lean Modified Mathlib/Data/ENNReal/Inv.lean Modified Mathlib/Data/ENNReal/Operations.lean + theorem ENNReal.eq_top_of_pow - theorem ENNReal.pow_eq_top +/- theorem ENNReal.pow_eq_top_iff +/- theorem ENNReal.pow_lt_top + theorem ENNReal.pow_lt_top_iff +/- theorem ENNReal.pow_ne_top + theorem ENNReal.pow_ne_top_iff +/- theorem ENNReal.top_pow Modified Mathlib/Data/ENat/Basic.lean + theorem ENat.eq_top_of_pow + theorem ENat.pow_eq_top_iff + theorem ENat.pow_lt_top_iff + theorem ENat.pow_ne_top_iff +/- theorem ENat.top_pow Modified Mathlib/Dynamics/TopologicalEntropy/CoverEntropy.lean Modified Mathlib/MeasureTheory/Measure/Hausdorff.lean Modified Mathlib/NumberTheory/NumberField/CanonicalEmbedding/ConvexBody.lean Modified Mathlib/Probability/Variance.lean 2025-04-24 16:21:49 dffc587 feat(Prod/Lex): prove `Prod.Lex.covBy_iff` (#24185) Also - move the definitions of `CovBy` and `WCovBy` to `Defs/PartialOrder`; - rename instances to use `inst*`; - golf a proof using `aesop`. ESTIMATED CHANGES Modified Mathlib/Algebra/Module/LinearMap/Defs.lean Modified Mathlib/Algebra/Module/Submodule/Map.lean Modified Mathlib/Data/Fin/FlagRange.lean Modified Mathlib/Data/Prod/Lex.lean + theorem Prod.Lex.covBy_iff + theorem Prod.Lex.monotone_fst_ofLex + theorem Prod.Lex.toLex_covBy_toLex_iff Modified Mathlib/Order/Cover.lean - def CovBy - def WCovBy Modified Mathlib/Order/Defs/PartialOrder.lean + def CovBy + def WCovBy 2025-04-24 15:36:41 acfb1af refactor: generalise `Finset.isLUB_sup` to an arbitrary function (#24325) ESTIMATED CHANGES Modified Mathlib/Data/Finset/Lattice/Fold.lean +/- theorem Finset.isGLB_inf + theorem Finset.isGLB_inf_id +/- theorem Finset.isLUB_sup + theorem Finset.isLUB_sup_id 2025-04-24 15:29:57 9062fa8 feat: `insert (b + 1) (Ioc a b) = Ioc a (b + 1)` (#24037) And shorten recently introduced names for consistency ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Interval/Finset/SuccPred.lean - theorem Finset.insert_Icc_eq_Icc_add_one_right - theorem Finset.insert_Icc_eq_Icc_sub_one_left + theorem Finset.insert_Icc_left_eq_Icc_sub_one + theorem Finset.insert_Icc_right_eq_Icc_add_one + theorem Finset.insert_Ico_left_eq_Ico_sub_one + theorem Finset.insert_Ico_left_eq_Ico_sub_one_of_not_isMin + theorem Finset.insert_Ico_right_eq_Ico_add_one + theorem Finset.insert_Ico_right_eq_Ico_add_one_of_not_isMax - theorem Finset.insert_Ico_right_eq_Ico_add_one_right - theorem Finset.insert_Ico_right_eq_Ico_add_one_right_of_not_isMax + theorem Finset.insert_Ico_sub_one_right_eq_Ico + theorem Finset.insert_Ioc_add_one_left_eq_Ioc + theorem Finset.insert_Ioc_left_eq_Ioc_sub_one - theorem Finset.insert_Ioc_left_eq_Ioc_sub_one_left - theorem Finset.insert_Ioc_left_eq_Ioc_sub_one_left_of_not_isMin + theorem Finset.insert_Ioc_left_eq_Ioc_sub_one_of_not_isMin + theorem Finset.insert_Ioc_right_eq_Ioc_add_one + theorem Finset.insert_Ioc_right_eq_Ioc_add_one_of_not_isMax Modified Mathlib/Algebra/Order/Interval/Set/SuccPred.lean - theorem Set.insert_Icc_eq_Icc_add_one_right - theorem Set.insert_Icc_eq_Icc_sub_one_left + theorem Set.insert_Icc_left_eq_Icc_sub_one + theorem Set.insert_Icc_right_eq_Icc_add_one + theorem Set.insert_Ico_left_eq_Ico_sub_one + theorem Set.insert_Ico_left_eq_Ico_sub_one_of_not_isMin + theorem Set.insert_Ico_right_eq_Ico_add_one + theorem Set.insert_Ico_right_eq_Ico_add_one_of_not_isMax - theorem Set.insert_Ico_right_eq_Ico_add_one_right - theorem Set.insert_Ico_right_eq_Ico_add_one_right_of_not_isMax + theorem Set.insert_Ico_sub_one_right_eq_Ico + theorem Set.insert_Ioc_add_one_left_eq_Ioc + theorem Set.insert_Ioc_left_eq_Ioc_sub_one - theorem Set.insert_Ioc_left_eq_Ioc_sub_one_left - theorem Set.insert_Ioc_left_eq_Ioc_sub_one_left_of_not_isMin + theorem Set.insert_Ioc_left_eq_Ioc_sub_one_of_not_isMin + theorem Set.insert_Ioc_right_eq_Ioc_add_one + theorem Set.insert_Ioc_right_eq_Ioc_add_one_of_not_isMax Modified Mathlib/Order/Interval/Finset/SuccPred.lean - theorem Finset.insert_Icc_eq_Icc_pred_left - theorem Finset.insert_Icc_eq_Icc_succ_right + theorem Finset.insert_Icc_left_eq_Icc_pred + theorem Finset.insert_Icc_right_eq_Icc_succ + theorem Finset.insert_Ico_left_eq_Ico_pred + theorem Finset.insert_Ico_left_eq_Ico_pred_of_not_isMin + theorem Finset.insert_Ico_pred_right_eq_Ico + theorem Finset.insert_Ico_right_eq_Ico_succ + theorem Finset.insert_Ico_right_eq_Ico_succ_of_not_isMax - theorem Finset.insert_Ico_right_eq_Ico_succ_right - theorem Finset.insert_Ico_right_eq_Ico_succ_right_of_not_isMax + theorem Finset.insert_Ioc_left_eq_Ioc_pred - theorem Finset.insert_Ioc_left_eq_Ioc_pred_left - theorem Finset.insert_Ioc_left_eq_Ioc_pred_left_of_not_isMin + theorem Finset.insert_Ioc_left_eq_Ioc_pred_of_not_isMin + theorem Finset.insert_Ioc_right_eq_Ioc_succ + theorem Finset.insert_Ioc_right_eq_Ioc_succ_of_not_isMax + theorem Finset.insert_Ioc_succ_left_eq_Ioc Modified Mathlib/Order/Interval/Set/SuccPred.lean - theorem Set.insert_Icc_eq_Icc_pred_left - theorem Set.insert_Icc_eq_Icc_succ_right + theorem Set.insert_Icc_left_eq_Icc_pred + theorem Set.insert_Icc_right_eq_Icc_succ + theorem Set.insert_Ico_left_eq_Ico_pred + theorem Set.insert_Ico_left_eq_Ico_pred_of_not_isMin + theorem Set.insert_Ico_pred_right_eq_Ico + theorem Set.insert_Ico_right_eq_Ico_succ + theorem Set.insert_Ico_right_eq_Ico_succ_of_not_isMax - theorem Set.insert_Ico_right_eq_Ico_succ_right - theorem Set.insert_Ico_right_eq_Ico_succ_right_of_not_isMax + theorem Set.insert_Ioc_left_eq_Ioc_pred - theorem Set.insert_Ioc_left_eq_Ioc_pred_left - theorem Set.insert_Ioc_left_eq_Ioc_pred_left_of_not_isMin + theorem Set.insert_Ioc_left_eq_Ioc_pred_of_not_isMin + theorem Set.insert_Ioc_right_eq_Ioc_succ + theorem Set.insert_Ioc_right_eq_Ioc_succ_of_not_isMax + theorem Set.insert_Ioc_succ_left_eq_Ioc 2025-04-24 13:51:59 3a0bc63 feat(NumberField/CanonicalEmbedding/NormLeOne): prove that the frontier of `normLeOne` has zero-volume (#22779) This is the last PR about `normLeOne K`. We prove that it is a bounded set and that its frontier has volume zero. This PR is part of the proof of the Analytic Class Number Formula. ESTIMATED CHANGES Modified Mathlib/NumberTheory/NumberField/CanonicalEmbedding/Basic.lean + theorem NumberField.mixedEmbedding.continuous_normAtAllPlaces Modified Mathlib/NumberTheory/NumberField/CanonicalEmbedding/NormLeOne.lean + theorem NumberField.mixedEmbedding.fundamentalCone.closure_normLeOne_subset + theorem NumberField.mixedEmbedding.fundamentalCone.closure_paramSet + theorem NumberField.mixedEmbedding.fundamentalCone.closure_paramSet_ae_interior + theorem NumberField.mixedEmbedding.fundamentalCone.compactSet_ae + theorem NumberField.mixedEmbedding.fundamentalCone.compactSet_eq_union + theorem NumberField.mixedEmbedding.fundamentalCone.compactSet_eq_union_aux₁ + theorem NumberField.mixedEmbedding.fundamentalCone.compactSet_eq_union_aux₂ + theorem NumberField.mixedEmbedding.fundamentalCone.expMapBasis_closure_subset_compactSet + theorem NumberField.mixedEmbedding.fundamentalCone.interior_paramSet + theorem NumberField.mixedEmbedding.fundamentalCone.isBounded_normLeOne + theorem NumberField.mixedEmbedding.fundamentalCone.isCompact_compactSet + theorem NumberField.mixedEmbedding.fundamentalCone.measurableSet_interior_paramSet + theorem NumberField.mixedEmbedding.fundamentalCone.nonneg_of_mem_compactSet + theorem NumberField.mixedEmbedding.fundamentalCone.subset_interior_normLeOne + theorem NumberField.mixedEmbedding.fundamentalCone.volume_frontier_normLeOne + theorem NumberField.mixedEmbedding.fundamentalCone.volume_interior_eq_volume_closure + theorem NumberField.mixedEmbedding.fundamentalCone.zero_mem_compactSet 2025-04-24 13:19:47 788d3e0 feat (Algebra/Module/Submodule/LinearMap): Lift a linear map that takes values in the range of an injective linear map. (#24306) Given a linear map `f : M → N` whose values lie in the image of an injective linear map `p : P → N`, one has a unique lift to a linear map `M → P` that makes the triangle commute. ESTIMATED CHANGES Modified Mathlib/Algebra/Module/Submodule/LinearMap.lean + theorem LinearMap.codLift_apply + theorem LinearMap.comp_codLift 2025-04-24 12:56:46 c3c5337 feature(Algebra/Order/Ring/Basic): Add Odd.pow_eq_pow (#24308) Use the injectivity of strict monotonic functions to show that `a^n = b^n ↔ a = b` for `n` odd in a strict linear ordered semiring. ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Ring/Basic.lean + theorem Odd.pow_inj + theorem Odd.pow_injective + theorem Odd.pow_le_pow + theorem Odd.pow_lt_pow 2025-04-24 11:48:38 2e9484d feat: add the strict triangle inequality for non-Wbtw points, a related AffineIndependent lemma (#24104) Adds `dist_lt_dist_add_dist_iff` and `AffineIndependent.not_wbtw_of_injective`. These can be composed to prove that the strict triangle inequality holds for the points of an `Affine.Triangle`. See [this zulip thread](https://leanprover.zulipchat.com/#narrow/channel/217875-Is-there-code-for-X.3F/topic/strict.20triangle.20inequality.20in.20Euclidean.20space/near/512427539). ESTIMATED CHANGES Modified Mathlib/Analysis/Convex/Between.lean + theorem AffineIndependent.not_wbtw_of_injective Modified Mathlib/Analysis/Convex/StrictConvexBetween.lean + theorem dist_lt_dist_add_dist_iff 2025-04-24 11:24:14 1afbc43 fix(CI): use Lean error message in problem-matcher-wrap (#24316) This PR fixes the missing build error message annotations in GitHub. Lean switched to a different syntax for error messages, and the action we used to annotate the commit/PR with those errors did not have support for that format. I made a fork of the action that does know how to parse Lean error messages, and use that to wrap the builds. For example, see the output of [this build](https://github.com/leanprover-community/mathlib4/actions/runs/14617507898/job/41009027153): Screenshot 2025-04-23 at 13 26 32 Screenshot 2025-04-23 at 14 07 16 I also opened [a PR to the original repo](https://github.com/liskin/gh-problem-matcher-wrap/pull/21). If that gets merged, we can switch back to the upstream repo for this action. We do not need to change the format for linter/shake steps: those still fit the previous GCC-compatible syntax. Zulip discussion: https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/gh-problem-matcher-wrap Fixes: #12946 ESTIMATED CHANGES Modified .github/build.in.yml Modified .github/workflows/bors.yml Modified .github/workflows/build.yml Modified .github/workflows/build_fork.yml Modified .github/workflows/latest_import.yml Modified .github/workflows/nolints.yml 2025-04-24 09:43:35 5e62daf chore(BigOperators/Fin): change RHS of `Fin.prod_trunc` (#24195) This kind of `Fin.castLE` is called `Fin.castAdd`. Also golf away the only usage of this lemma in the library. ESTIMATED CHANGES Modified Mathlib/Algebra/BigOperators/Fin.lean Modified Mathlib/AlgebraicTopology/DoldKan/Faces.lean 2025-04-24 08:21:56 44efe04 chore(GroupTheory/Finiteness): move `Group.rank` to a new file (#24326) That reduces imports by quite a lot: We don't even import `MonoidWithZero` anymore! See https://github.com/leanprover-community/mathlib3/pull/12765 for the new copyright header. From Toric ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/GroupTheory/Abelianization.lean Modified Mathlib/GroupTheory/Commutator/Finite.lean Modified Mathlib/GroupTheory/Finiteness.lean - theorem Group.rank_congr - theorem Group.rank_le - theorem Group.rank_le_of_surjective - theorem Group.rank_range_le - theorem Group.rank_spec - theorem Subgroup.nat_card_centralizer_nat_card_stabilizer - theorem Subgroup.rank_closure_finite_le_nat_card - theorem Subgroup.rank_closure_finset_le_card - theorem Subgroup.rank_congr Modified Mathlib/GroupTheory/Perm/Centralizer.lean Added Mathlib/GroupTheory/Rank.lean + theorem Group.rank_congr + theorem Group.rank_le + theorem Group.rank_le_of_surjective + theorem Group.rank_range_le + theorem Group.rank_spec + theorem Subgroup.nat_card_centralizer_nat_card_stabilizer + theorem Subgroup.rank_closure_finite_le_nat_card + theorem Subgroup.rank_closure_finset_le_card + theorem Subgroup.rank_congr Modified Mathlib/GroupTheory/Schreier.lean Modified Mathlib/NumberTheory/PellMatiyasevic.lean 2025-04-24 06:28:31 6225383 feat: generalize `NoMaxOrder` to `NoTopOrder` (#24203) Generalizes `NoMaxOrder` to `NoTopOrder` and `NoMinOrder` to `NoBotOrder` in some lemmas. ESTIMATED CHANGES Modified Mathlib/Order/Bounds/Basic.lean +/- theorem IsGLB.nonempty +/- theorem IsLUB.nonempty + theorem NoBotOrder.lowerBounds_univ - theorem NoMaxOrder.upperBounds_univ - theorem NoMinOrder.lowerBounds_univ + theorem NoTopOrder.upperBounds_univ +/- theorem not_bddAbove_univ +/- theorem not_bddBelow_univ Modified Mathlib/Order/Filter/AtTopBot/Defs.lean +/- theorem Filter.Iio_mem_atBot +/- theorem Filter.Ioi_mem_atTop +/- theorem Filter.eventually_gt_atTop +/- theorem Filter.eventually_lt_atBot +/- theorem Filter.eventually_ne_atBot +/- theorem Filter.eventually_ne_atTop Modified Mathlib/Order/Filter/AtTopBot/Disjoint.lean +/- theorem Filter.disjoint_atBot_principal_Ici +/- theorem Filter.disjoint_atTop_principal_Iic +/- theorem Filter.disjoint_pure_atBot +/- theorem Filter.disjoint_pure_atTop Modified Mathlib/Order/Filter/AtTopBot/Tendsto.lean +/- theorem Filter.not_tendsto_const_atBot +/- theorem Filter.not_tendsto_const_atTop Modified Mathlib/Order/Filter/Cofinite.lean + theorem Filter.atBot_le_cofinite +/- theorem Filter.atTop_le_cofinite Modified Mathlib/Order/WithBot.lean +/- theorem WithBot.eq_bot_iff_forall_le +/- theorem WithBot.eq_top_iff_forall_ge +/- theorem WithBot.forall_le_coe_iff_le +/- theorem WithTop.eq_top_iff_forall_ge +/- theorem WithTop.forall_coe_le_iff_le 2025-04-24 05:39:03 a6a1efc chore: tidy various files (#24331) ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/Operations.lean Modified Mathlib/Algebra/Polynomial/Laurent.lean +/- theorem LaurentPolynomial.mk'_eq +/- theorem LaurentPolynomial.mk'_one_X +/- theorem LaurentPolynomial.mk'_one_X_pow Modified Mathlib/AlgebraicGeometry/Cover/MorphismProperty.lean Modified Mathlib/AlgebraicTopology/SimplexCategory/GeneratorsRelations/NormalForms.lean Modified Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Pi.lean Modified Mathlib/Analysis/Complex/Periodic.lean Modified Mathlib/Analysis/Fourier/BoundedContinuousFunctionChar.lean Modified Mathlib/Analysis/SpecialFunctions/ContinuousFunctionalCalculus/Rpow/Basic.lean Modified Mathlib/Combinatorics/Enumerative/IncidenceAlgebra.lean Modified Mathlib/Combinatorics/SimpleGraph/Diam.lean Modified Mathlib/Data/Matroid/Minor/Order.lean Modified Mathlib/Data/Nat/Init.lean Modified Mathlib/Data/PNat/Factors.lean Modified Mathlib/Geometry/Manifold/MFDeriv/Tangent.lean Modified Mathlib/LinearAlgebra/Matrix/Ideal.lean Modified Mathlib/LinearAlgebra/TensorProduct/Quotient.lean Modified Mathlib/MeasureTheory/Integral/Bochner/L1.lean Modified Mathlib/NumberTheory/Divisors.lean Modified Mathlib/NumberTheory/NumberField/Completion.lean Modified Mathlib/RingTheory/LaurentSeries.lean +/- theorem RatFunc.single_one_eq_pow 2025-04-24 05:18:34 62878e8 feat(Topology/Order): add `Dense.exists_seq_strict{Mono/Anti}_tendsto` (#23648) Add `Dense.exists_seq_strict{Mono/Anti}_tendsto{'}` that restricts the sequence to a dense subset. This is useful for e.g. finding a monotone rational sequence approaching a real number. ESTIMATED CHANGES Modified Mathlib/Topology/Instances/Real/Lemmas.lean + theorem Real.exists_seq_rat_strictAnti_tendsto + theorem Real.exists_seq_rat_strictMono_tendsto Modified Mathlib/Topology/Order/IsLUB.lean + theorem Dense.exists_seq_strictAnti_tendsto + theorem Dense.exists_seq_strictAnti_tendsto_of_lt + theorem Dense.exists_seq_strictMono_tendsto + theorem Dense.exists_seq_strictMono_tendsto_of_lt + theorem Dense.isGLB_inter_iff + theorem Dense.isLUB_inter_iff + theorem DenseRange.exists_seq_strictAnti_tendsto + theorem DenseRange.exists_seq_strictAnti_tendsto_of_lt + theorem DenseRange.exists_seq_strictMono_tendsto + theorem DenseRange.exists_seq_strictMono_tendsto_of_lt + theorem isGLB_iff_of_subset_of_subset_closure + theorem isLUB_iff_of_subset_of_subset_closure 2025-04-24 04:08:43 dadd3da chore(RingTheory): equivalence between algebraicity over `IntermediateField.adjoin` and `Algebra.adjoin` (#24004) ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/Subalgebra/Basic.lean +/- theorem Subalgebra.coe_inclusion +/- theorem Subalgebra.inclusion_inclusion +/- theorem Subalgebra.inclusion_injective +/- theorem Subalgebra.inclusion_mk +/- theorem Subalgebra.inclusion_right +/- theorem Subalgebra.inclusion_self Modified Mathlib/FieldTheory/IntermediateField/Adjoin/Algebra.lean Modified Mathlib/FieldTheory/IntermediateField/Adjoin/Basic.lean Modified Mathlib/FieldTheory/IntermediateField/Adjoin/Defs.lean + theorem IntermediateField.mem_adjoin_iff_div Modified Mathlib/GroupTheory/GroupAction/SubMulAction.lean Modified Mathlib/RingTheory/Algebraic/Integral.lean + theorem Algebra.IsAlgebraic.isAlgebraic_iff_bot + theorem Algebra.IsAlgebraic.isAlgebraic_iff_top + theorem Algebra.IsIntegral.isAlgebraic_iff_top +/- theorem Transcendental.extendScalars +/- theorem Transcendental.extendScalars_of_isIntegral +/- theorem Transcendental.subalgebraAlgebraicClosure Modified Mathlib/RingTheory/AlgebraicIndependent/AlgebraicClosure.lean + theorem IntermediateField.algebraicIndependent_adjoin_iff + theorem IntermediateField.isAlgebraic_adjoin_iff + theorem IntermediateField.isAlgebraic_adjoin_iff_bot + theorem IntermediateField.isAlgebraic_adjoin_iff_top + theorem IntermediateField.isTranscendenceBasis_adjoin_iff + theorem IntermediateField.transcendental_adjoin_iff Modified Mathlib/RingTheory/Localization/FractionRing.lean + theorem IsFractionRing.of_field 2025-04-24 03:07:24 0b45b3c feat(Set): add `singleton_ne_univ` (#24225) This PR adds lemmas `Set.singleton_ne_univ` and `Set.singleton_ssubset_univ`. ESTIMATED CHANGES Modified Mathlib/Data/Set/Subsingleton.lean + theorem Set.singleton_ne_univ + theorem Set.singleton_ssubset_univ 2025-04-23 20:46:48 b000f0c feat: `MeasurableConstSMul` (#24317) This typeclass will be useful in #23603. ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Constructions/BorelSpace/Basic.lean Modified Mathlib/MeasureTheory/Constructions/BorelSpace/Real.lean Modified Mathlib/MeasureTheory/Group/Arithmetic.lean - theorem AEMeasurable.const_smul' +/- theorem AEMeasurable.const_smul + theorem AEMeasurable.fun_const_smul - theorem Measurable.const_smul' +/- theorem Measurable.const_smul + theorem Measurable.fun_const_smul Modified Mathlib/MeasureTheory/Group/MeasurableEquiv.lean Modified Mathlib/MeasureTheory/Group/Measure.lean Modified Mathlib/MeasureTheory/Integral/Bochner/Basic.lean Modified Mathlib/MeasureTheory/Measure/Haar/Unique.lean Modified Mathlib/MeasureTheory/Measure/Regular.lean 2025-04-23 20:46:46 55b9074 chore(InnerProductSpace): follow the naming convention (#24250) A lot of mentions to `re` were ommitted, but not all, which makes it extra confusing. ESTIMATED CHANGES Modified Mathlib/Analysis/CStarAlgebra/Module/Constructions.lean Modified Mathlib/Analysis/Fourier/AddCircle.lean Modified Mathlib/Analysis/InnerProductSpace/Basic.lean - theorem inner_self_nonpos - theorem inner_self_pos - theorem norm_eq_sqrt_inner + theorem norm_eq_sqrt_re_inner + theorem re_inner_self_nonpos + theorem re_inner_self_pos +/- theorem real_inner_self_nonpos +/- theorem real_inner_self_pos Modified Mathlib/Analysis/InnerProductSpace/Completion.lean Modified Mathlib/Analysis/InnerProductSpace/Defs.lean - theorem InnerProductSpace.Core.norm_eq_sqrt_inner + theorem InnerProductSpace.Core.norm_eq_sqrt_re_inner Modified Mathlib/Analysis/InnerProductSpace/LinearMap.lean Modified Mathlib/Analysis/InnerProductSpace/MeanErgodic.lean Modified Mathlib/Analysis/InnerProductSpace/OfNorm.lean Modified Mathlib/Analysis/InnerProductSpace/Orthonormal.lean Modified Mathlib/Analysis/InnerProductSpace/PiL2.lean Modified Mathlib/Analysis/InnerProductSpace/ProdL2.lean Modified Mathlib/Analysis/InnerProductSpace/Subspace.lean Modified Mathlib/Analysis/InnerProductSpace/l2Space.lean Modified Mathlib/Analysis/Quaternion.lean Modified Mathlib/Geometry/Euclidean/Angle/Unoriented/CrossProduct.lean Modified Mathlib/LinearAlgebra/Matrix/PosDef.lean Modified Mathlib/MeasureTheory/Function/L2Space.lean Modified scripts/nolints_prime_decls.txt 2025-04-23 20:10:53 f685e3a feat: under `ConditionallyCompleteLinearOrderBot`, an order iso preserves suprema unconditionally (#24324) ... thanks to the junk values ESTIMATED CHANGES Modified Mathlib/Order/ConditionallyCompleteLattice/Basic.lean + theorem ciInf_eq_univ_of_not_bddBelow + theorem ciInf_of_not_bddBelow + theorem ciSup_eq_univ_of_not_bddAbove + theorem ciSup_of_not_bddAbove +/- theorem csInf_eq_univ_of_not_bddBelow +/- theorem csInf_of_not_bddBelow +/- theorem csSup_eq_univ_of_not_bddAbove +/- theorem csSup_of_not_bddAbove Modified Mathlib/Order/ConditionallyCompleteLattice/Indexed.lean + theorem OrderIso.map_ciSup' 2025-04-23 20:10:52 6b8fb6c feat(Data/ENat/Lattice): fill in `proof_wanted` (#24201) Fills in two `proof_wanted`s (`ENat.smul_iSup` and `ENat.smul_sSup`). ESTIMATED CHANGES Modified Mathlib/Data/ENat/Lattice.lean + theorem ENat.smul_iSup + theorem ENat.smul_sSup Modified scripts/noshake.json 2025-04-23 20:10:50 5759c85 feat: generalize Mathlib.Algebra.BigOperators + CharP + Star + misc others (#23195) This is one of a series of PRs that generalizes type classes across Mathlib. These are generated using a new linter that tries to re-elaborate theorem definitions with more general type classes to see if it succeeds. It will accept the generalization if deleting the entire type class causes the theorem to fail to compile, and the old type class can not simply be re-synthesized with the new declaration. Otherwise, the generalization is rejected as the type class is not being generalized, but can simply be replaced by implicit type class synthesis or an implicit type class in a variable block being pulled in. The linter currently output debug statements indicating source file positions where type classes should be generalized, and a script then makes those edits. This file contains a subset of those generalizations. The linter and the script performing re-writes is available in commit 5e2b7040be0f73821c1dcb360ffecd61235d87af. Also see discussion on Zulip here: https://leanprover.zulipchat.com/#narrow/channel/270676-lean4/topic/Elab.20to.20generalize.20type.20classes.20for.20theorems/near/498862988 https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Elab.20to.20generalize.20type.20classes.20for.20theorems/near/501288855 ESTIMATED CHANGES Modified Mathlib/Algebra/AddConstMap/Basic.lean +/- theorem AddConstMapClass.map_const_add Modified Mathlib/Algebra/AlgebraicCard.lean +/- theorem Algebraic.aleph0_le_cardinalMk_of_charZero +/- theorem Algebraic.cardinalMk_of_countable_of_charZero +/- theorem Algebraic.infinite_of_charZero Modified Mathlib/Algebra/BigOperators/Fin.lean +/- theorem List.alternatingProd_eq_finset_prod Modified Mathlib/Algebra/BigOperators/Finprod.lean +/- theorem finsum_mul +/- theorem mul_finsum +/- theorem smul_finsum Modified Mathlib/Algebra/BigOperators/GroupWithZero/Action.lean +/- theorem List.smul_prod Modified Mathlib/Algebra/BigOperators/Pi.lean +/- theorem pi_eq_sum_univ Modified Mathlib/Algebra/BigOperators/Ring/List.lean +/- theorem List.sum_zipWith_distrib_left Modified Mathlib/Algebra/BigOperators/RingEquiv.lean Modified Mathlib/Algebra/CharP/Algebra.lean +/- theorem CharP.of_ringHom_of_ne_zero +/- theorem RingHom.charP_iff_charP +/- theorem RingHom.expChar +/- theorem RingHom.expChar_iff Modified Mathlib/Algebra/CharP/Defs.lean +/- theorem CharP.neg_one_ne_one Modified Mathlib/Algebra/DirectSum/Basic.lean +/- theorem DirectSum.addHom_ext' +/- theorem DirectSum.addHom_ext Modified Mathlib/Algebra/GeomSum.lean +/- theorem geom_sum_alternating_of_le_neg_one Modified Mathlib/Algebra/RingQuot.lean +/- theorem RingQuot.ringQuot_ext Modified Mathlib/Algebra/Star/Basic.lean +/- theorem star_id_of_comm +/- theorem star_intCast +/- theorem star_mul' Modified Mathlib/Algebra/Star/NonUnitalSubalgebra.lean +/- theorem NonUnitalStarSubalgebra.coe_smul +/- theorem NonUnitalStarSubalgebra.toSubring_subtype Modified Mathlib/Algebra/Star/Pointwise.lean Modified Mathlib/Algebra/Star/SelfAdjoint.lean +/- theorem IsSelfAdjoint.smul +/- theorem IsSelfAdjoint.smul_iff 2025-04-23 19:30:22 ad232f9 feat: `RelIso.copy` (#24323) Should I introduce `Equiv.copy` too? ESTIMATED CHANGES Modified Mathlib/Order/RelIso/Basic.lean + theorem RelIso.coe_copy + def RelIso.copy + theorem RelIso.copy_eq 2025-04-23 18:50:41 2ca4d81 feat(CI): use `lean-action`'s "reinstall transient toolchain" step (#24305) We had a hand-coded "reinstall transient toolchain" step in a few workflows. I added this to `lean-action` so we can call it directly from that action. We can also skip the "print lean and lake versions" step since `lean-action` does that too. This PR also upgrades the `lean-action` version to the latest `main` branch. ESTIMATED CHANGES Modified .github/build.in.yml Modified .github/workflows/add_label_from_diff.yaml Modified .github/workflows/bench_summary_comment.yml Modified .github/workflows/bors.yml Modified .github/workflows/bot_fix_style.yaml Modified .github/workflows/build.yml Modified .github/workflows/build_fork.yml Modified .github/workflows/daily.yml Modified .github/workflows/discover-lean-pr-testing.yml Modified .github/workflows/latest_import.yml Modified .github/workflows/lint_and_suggest_pr.yml Modified .github/workflows/nightly_merge_master.yml Modified .github/workflows/nolints.yml Modified .github/workflows/update_dependencies.yml 2025-04-23 17:10:21 5eed989 chore: fix typo `intIsManifoldModelSpace` (#24297) Rename `intIsManifoldModelSpace` to `instIsManifoldModelSpace`. ESTIMATED CHANGES Modified Mathlib/Geometry/Manifold/IsManifold/Basic.lean 2025-04-23 16:32:51 085aa9e feat(Topology): R1 separation (#24098) Adds a new lemma `r1_separation`. ESTIMATED CHANGES Modified Mathlib/Topology/Separation/Basic.lean + theorem r1_separation 2025-04-23 16:32:50 2156fa0 feat(Data/List/Sort): ext lemma for strictly sorted lists (#24023) Add a theorem stating that two strictly sorted lists are equal if they have the same set of elements. ESTIMATED CHANGES Modified Mathlib/Data/List/Sort.lean + theorem List.Sorted.eq_of_mem_iff 2025-04-23 16:26:00 7b91fb0 feat (Topology/Algebra/RestrictedProduct): add API (#24200) In this PR we add `ext`, `eval` and `map` API for `RestrictedProduct`. ESTIMATED CHANGES Modified Mathlib/Topology/Algebra/RestrictedProduct.lean + def RestrictedProduct.evalMonoidHom + theorem RestrictedProduct.evalMonoidHom_apply + def RestrictedProduct.evalRingHom + theorem RestrictedProduct.evalRingHom_apply + theorem RestrictedProduct.ext + def RestrictedProduct.map + def RestrictedProduct.mapMonoidHom + theorem RestrictedProduct.mapMonoidHom_apply + def RestrictedProduct.mapRingHom + theorem RestrictedProduct.mapRingHom_apply + theorem RestrictedProduct.map_apply +/- theorem RestrictedProduct.range_coe_principal 2025-04-23 16:05:14 2ae1841 refactor: generalise `ContinuousLinearMap.restrictScalars` to semirings (#24232) The motivation here is to restrict scalars from `R` to `R≥0`, which happens when considering pointed cones as submodules. Also rename the pair `M`, `M₂` to `M₁`, `M₂` for consistency. From Toric ESTIMATED CHANGES Modified Mathlib/Topology/Algebra/Module/LinearMap.lean +/- theorem ContinuousLinearMap.coe_restrictScalars' +/- theorem ContinuousLinearMap.coe_restrictScalars +/- theorem ContinuousLinearMap.coe_restrictScalarsₗ +/- def ContinuousLinearMap.restrictScalars +/- theorem ContinuousLinearMap.restrictScalars_add +/- theorem ContinuousLinearMap.restrictScalars_neg +/- theorem ContinuousLinearMap.restrictScalars_smul + theorem ContinuousLinearMap.restrictScalars_sub +/- theorem ContinuousLinearMap.restrictScalars_zero +/- def ContinuousLinearMap.restrictScalarsₗ +/- theorem ContinuousLinearMap.toContinuousAddMonoidHom_restrictScalars 2025-04-23 14:28:24 deb75d6 feat(Asymptotics/Completion): new file (#24158) This PR adds lemmas relating `f = O(g)` etc for composition of functions with coercion of a seminormed group to its completion. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/Asymptotics/Completion.lean + theorem Asymptotics.isBigO_completion_left + theorem Asymptotics.isBigO_completion_right + theorem Asymptotics.isLittleO_completion_left + theorem Asymptotics.isLittleO_completion_right + theorem Asymptotics.isTheta_completion_left + theorem Asymptotics.isTheta_completion_right 2025-04-23 14:19:09 c4b2fc1 refactor(Deriv/ZPow): change RHS of `iter_deriv_inv` (#24150) ESTIMATED CHANGES Modified Mathlib/Analysis/Calculus/Deriv/ZPow.lean 2025-04-23 14:04:22 667f4a2 chore(NumberTheory/*, RingTheory/*): Fröhlich, not Frölich (#24315) Albrecht Fröhlich, FRS, 1916–2001. ESTIMATED CHANGES Modified Mathlib/NumberTheory/FunctionField.lean Modified Mathlib/NumberTheory/NumberField/AdeleRing.lean Modified Mathlib/NumberTheory/NumberField/Basic.lean Modified Mathlib/RingTheory/DedekindDomain/AdicValuation.lean Modified Mathlib/RingTheory/DedekindDomain/Basic.lean Modified Mathlib/RingTheory/DedekindDomain/Dvr.lean Modified Mathlib/RingTheory/DedekindDomain/FiniteAdeleRing.lean Modified Mathlib/RingTheory/DedekindDomain/Ideal.lean Modified Mathlib/RingTheory/DedekindDomain/IntegralClosure.lean Modified Mathlib/RingTheory/DedekindDomain/SInteger.lean 2025-04-23 13:25:47 a6d9f97 chore(AlgebraicTopology/ExtraDegeneracy): use `Matrix.vecCons` (#24199) Cherry-picked from #24196 ESTIMATED CHANGES Modified Mathlib/AlgebraicTopology/ExtraDegeneracy.lean - theorem SSet.Augmented.StandardSimplex.shiftFun_0 + theorem SSet.Augmented.StandardSimplex.shiftFun_zero 2025-04-23 13:25:46 4b31930 chore(Topology/Algebra/Module/Alternating): rename some equivs (#24159) ESTIMATED CHANGES Modified Mathlib/Analysis/Calculus/ContDiff/Basic.lean Modified Mathlib/Analysis/NormedSpace/Multilinear/Basic.lean - def ContinuousLinearEquiv.compContinuousMultilinearMapL - theorem ContinuousLinearEquiv.compContinuousMultilinearMapL_apply - theorem ContinuousLinearEquiv.compContinuousMultilinearMapL_symm + def ContinuousLinearEquiv.continuousMultilinearMapCongrLeft + theorem ContinuousLinearEquiv.continuousMultilinearMapCongrLeft_apply + theorem ContinuousLinearEquiv.continuousMultilinearMapCongrLeft_symm + def ContinuousLinearEquiv.continuousMultilinearMapCongrRight + theorem ContinuousLinearEquiv.continuousMultilinearMapCongrRight_apply + theorem ContinuousLinearEquiv.continuousMultilinearMapCongrRight_symm - def ContinuousMultilinearMap.compContinuousLinearMapEquivL - theorem ContinuousMultilinearMap.compContinuousLinearMapEquivL_apply - theorem ContinuousMultilinearMap.compContinuousLinearMapEquivL_symm Modified Mathlib/Topology/Algebra/Module/Alternating/Basic.lean - def ContinuousLinearEquiv.compContinuousAlternatingMap - def ContinuousLinearEquiv.continuousAlternatingMapComp - def ContinuousLinearEquiv.continuousAlternatingMapCongr + def ContinuousLinearEquiv.continuousAlternatingMapCongrEquiv + def ContinuousLinearEquiv.continuousAlternatingMapCongrLeftEquiv + def ContinuousLinearEquiv.continuousAlternatingMapCongrRightEquiv 2025-04-23 13:18:50 d3f3c9e feat(Ergodic/Conservative): add `Conservative.congr_ae` (#24198) ESTIMATED CHANGES Modified Mathlib/Dynamics/Ergodic/Conservative.lean + theorem MeasureTheory.Conservative.congr_ae + theorem MeasureTheory.conservative_congr 2025-04-23 12:17:21 e218a97 chore(RingTheory/DedekindDomain): fix namespace inconsistency (#24313) We have some lemmas in the namespace `IsDedekindDomain` and others in `DedekindDomain`. Standardize on the `Is` version (and remove some redundant variable re-declarations). ESTIMATED CHANGES Modified Mathlib/NumberTheory/NumberField/AdeleRing.lean Modified Mathlib/RingTheory/DedekindDomain/FiniteAdeleRing.lean - theorem DedekindDomain.FiniteAdeleRing.ext + theorem IsDedekindDomain.FiniteAdeleRing.ext 2025-04-23 11:55:11 5fe2287 feat(MeasureTheory/Measure/WithDensity): density of product of measures (#24127) Add a lemma which states that the density of the product of measures is given by the product of the densities. ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Group/Convolution.lean Modified Mathlib/MeasureTheory/Measure/Prod.lean + theorem AEMeasurable.lintegral_prod_left' + theorem AEMeasurable.lintegral_prod_left + theorem AEMeasurable.lintegral_prod_right' + theorem AEMeasurable.lintegral_prod_right Modified Mathlib/MeasureTheory/Measure/WithDensity.lean + theorem MeasureTheory.prod_withDensity + theorem MeasureTheory.prod_withDensity_left + theorem MeasureTheory.prod_withDensity_left₀ + theorem MeasureTheory.prod_withDensity_right + theorem MeasureTheory.prod_withDensity_right₀ + theorem MeasureTheory.prod_withDensity₀ 2025-04-23 11:46:59 e899d4c feat(NumberTheory/Padics): leftovers from PR 24141 (#24310) Rename some lemmas, add a TODO note ESTIMATED CHANGES Modified Mathlib/NumberTheory/Padics/AddChar.lean - theorem AddChar.tendsto_apply_one_sub_pow + theorem AddChar.tendsto_eval_one_sub_pow Modified Mathlib/Topology/Algebra/Monoid/AddChar.lean - theorem DenseRange.addChar_eq_of_apply_one_eq + theorem DenseRange.addChar_eq_of_eval_one_eq 2025-04-23 11:46:58 1470b02 feat(RingTheory/Valuation/Basic): defined Nontrivial valuations (#23726) Co-authored with @mariainesdff ESTIMATED CHANGES Modified Mathlib/RingTheory/Valuation/Basic.lean + theorem Valuation.isNontrivial_iff_exists_unit 2025-04-23 11:03:11 8514782 chore: delete >6 month old deprecations (2024-10 11-21) (#24271) The first commit was done automatically using #21271's method, with the regex ``` @\[deprecated.*\(since := "2024-10-([01].|2[01])"\)\][\s\n]?(protected )?alias [_a-zA-Zα-ωΑ-Ωϊ-ϻἀ-῾℀-⅏𝒜-𝖟'.₀₁₂₃₄₅₆₇₈₉]* :=[\s\n]+[_a-zA-Zα-ωΑ-Ωϊ-ϻἀ-῾℀-⅏𝒜-𝖟'.₀₁₂₃₄₅₆₇₈₉]*\n\n? ``` The remaining commits are manual removals of empty sections and missed deprecations (`2024-10-([01].|2[01])`). ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/Defs.lean Modified Mathlib/Algebra/Algebra/NonUnitalSubalgebra.lean - theorem NonUnitalAlgebra.adjoin_induction_subtype Modified Mathlib/Algebra/Algebra/Subalgebra/Lattice.lean - theorem Algebra.adjoin_induction' Modified Mathlib/Algebra/BigOperators/Group/List/Basic.lean Modified Mathlib/Algebra/BigOperators/Group/List/Lemmas.lean Modified Mathlib/Algebra/CharP/Lemmas.lean Modified Mathlib/Algebra/Field/NegOnePow.lean Modified Mathlib/Algebra/FreeMonoid/Basic.lean Modified Mathlib/Algebra/Group/Action/Pointwise/Set/Basic.lean Modified Mathlib/Algebra/Group/Hom/Defs.lean Modified Mathlib/Algebra/Group/Pointwise/Finset/Basic.lean Modified Mathlib/Algebra/Group/Pointwise/Set/Basic.lean Modified Mathlib/Algebra/Order/Module/Defs.lean Modified Mathlib/Algebra/Polynomial/Eval/Coeff.lean Modified Mathlib/Algebra/Polynomial/FieldDivision.lean Modified Mathlib/Algebra/Ring/Parity.lean Modified Mathlib/AlgebraicGeometry/Gluing.lean Modified Mathlib/AlgebraicGeometry/Morphisms/ClosedImmersion.lean Modified Mathlib/AlgebraicGeometry/OpenImmersion.lean Modified Mathlib/AlgebraicGeometry/Restrict.lean Modified Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Instances.lean Modified Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/NonUnital.lean Modified Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Restrict.lean Modified Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Unital.lean Modified Mathlib/Analysis/Calculus/ContDiff/Basic.lean Modified Mathlib/Analysis/Calculus/ContDiff/Defs.lean Modified Mathlib/Analysis/Calculus/FDeriv/Comp.lean Modified Mathlib/Analysis/Complex/UpperHalfPlane/Topology.lean Modified Mathlib/Analysis/Normed/Ring/Units.lean Modified Mathlib/Analysis/SpecialFunctions/Exp.lean Modified Mathlib/CategoryTheory/Galois/Topology.lean Modified Mathlib/CategoryTheory/GradedObject.lean Modified Mathlib/CategoryTheory/Sites/EpiMono.lean Modified Mathlib/Combinatorics/Enumerative/Composition.lean Modified Mathlib/Computability/Primrec.lean Modified Mathlib/Computability/Tape.lean Modified Mathlib/Data/Complex/Basic.lean Modified Mathlib/Data/ENNReal/Operations.lean Modified Mathlib/Data/Fin/Basic.lean - def Fin.ofNat'' Modified Mathlib/Data/List/Basic.lean Modified Mathlib/Data/List/Chain.lean Modified Mathlib/Data/List/Flatten.lean - theorem List.countP_flatMap' - theorem List.countP_flatten' - theorem List.count_flatMap' - theorem List.count_flatten' - theorem List.drop_sum_flatten' - theorem List.drop_take_succ_flatten_eq_getElem' - theorem List.flatten_drop_length_sub_one - theorem List.length_flatMap' - theorem List.length_flatten' - theorem List.take_sum_flatten' Modified Mathlib/Data/List/Indexes.lean Modified Mathlib/Data/List/InsertIdx.lean Modified Mathlib/Data/List/Lemmas.lean - theorem List.Nat.sum_eq_listSum Modified Mathlib/Data/List/Perm/Basic.lean Modified Mathlib/Data/List/ProdSigma.lean - theorem List.length_sigma' Modified Mathlib/Data/List/Range.lean - theorem List.mem_mem_ranges_iff_lt_natSum - theorem List.ranges_flatten' Modified Mathlib/Data/List/Sigma.lean Modified Mathlib/Data/List/SplitBy.lean Modified Mathlib/Data/List/Sublists.lean Modified Mathlib/Data/NNReal/Defs.lean Modified Mathlib/Data/Nat/BinaryRec.lean Modified Mathlib/Data/Nat/Bitwise.lean Modified Mathlib/Data/Prod/Basic.lean Modified Mathlib/Data/Quot.lean Modified Mathlib/Data/Setoid/Basic.lean - theorem Setoid.ker_apply_mk_out' Modified Mathlib/Data/Setoid/Partition.lean Modified Mathlib/Data/Sum/Basic.lean Modified Mathlib/Data/Vector/Basic.lean Modified Mathlib/Geometry/Manifold/ContMDiff/Basic.lean Modified Mathlib/Geometry/Manifold/IsManifold/Basic.lean Modified Mathlib/Geometry/RingedSpace/OpenImmersion.lean Modified Mathlib/Geometry/RingedSpace/PresheafedSpace/Gluing.lean Modified Mathlib/GroupTheory/Coset/Basic.lean Modified Mathlib/GroupTheory/Coset/Defs.lean Modified Mathlib/GroupTheory/DoubleCoset.lean Modified Mathlib/GroupTheory/GroupAction/Defs.lean Modified Mathlib/GroupTheory/GroupAction/Quotient.lean Modified Mathlib/GroupTheory/OrderOfElement.lean Modified Mathlib/LinearAlgebra/Eigenspace/Triangularizable.lean - theorem Module.End.exists_hasEigenvalue_of_iSup_genEigenspace_eq_top - theorem Module.End.iSup_genEigenspace_eq_top - theorem Module.End.iSup_genEigenspace_restrict_eq_top Modified Mathlib/LinearAlgebra/Matrix/HermitianFunctionalCalculus.lean Modified Mathlib/LinearAlgebra/QuadraticForm/Basic.lean Modified Mathlib/LinearAlgebra/TensorProduct/Basic.lean Modified Mathlib/MeasureTheory/Constructions/BorelSpace/Basic.lean Modified Mathlib/MeasureTheory/Constructions/BorelSpace/Order.lean Modified Mathlib/MeasureTheory/Integral/Bochner/Basic.lean Modified Mathlib/MeasureTheory/Integral/Bochner/Set.lean Modified Mathlib/MeasureTheory/Measure/Typeclasses/SFinite.lean Modified Mathlib/MeasureTheory/Measure/WithDensityFinite.lean Modified Mathlib/NumberTheory/LSeries/RiemannZeta.lean Modified Mathlib/Order/ConditionallyCompleteLattice/Defs.lean Modified Mathlib/Order/InitialSeg.lean - theorem InitialSeg.leLT_apply - theorem PrincipalSeg.equivLT_apply - theorem PrincipalSeg.equivLT_top - theorem PrincipalSeg.lt_le_apply - theorem PrincipalSeg.lt_le_top Modified Mathlib/Order/JordanHolder.lean Modified Mathlib/Order/RelIso/Basic.lean Modified Mathlib/RingTheory/Finiteness/Cardinality.lean Modified Mathlib/RingTheory/NonUnitalSubring/Basic.lean - theorem NonUnitalSubring.closure_induction' Modified Mathlib/RingTheory/Spectrum/Prime/Topology.lean Modified Mathlib/SetTheory/Cardinal/Aleph.lean - theorem Cardinal.aleph'_isNormal - theorem Cardinal.aleph'_le - theorem Cardinal.aleph'_le_of_limit - theorem Cardinal.aleph'_limit - theorem Cardinal.aleph'_lt - theorem Cardinal.aleph'_max - theorem Cardinal.aleph'_nat - theorem Cardinal.aleph'_omega0 - theorem Cardinal.aleph'_pos - theorem Cardinal.aleph'_succ - theorem Cardinal.aleph'_zero - theorem Cardinal.aleph0_le_aleph' - theorem Cardinal.aleph_eq_aleph' - theorem Cardinal.aleph_isNormal - theorem Cardinal.beth_normal - theorem Cardinal.exists_aleph - theorem Cardinal.lift_aleph' - theorem Cardinal.ord_aleph_isLimit - theorem Cardinal.preAleph_isNormal Modified Mathlib/SetTheory/Cardinal/Basic.lean - theorem Cardinal.natCast_inj - theorem Cardinal.natCast_injective - theorem Cardinal.natCast_le - theorem Cardinal.natCast_lt - theorem Cardinal.natCast_pow Modified Mathlib/SetTheory/Cardinal/Cofinality.lean - theorem Ordinal.aleph'_cof - theorem Ordinal.aleph_cof - theorem Ordinal.nfpBFamily_lt_ord - theorem Ordinal.nfpBFamily_lt_ord_lift - theorem Ordinal.preAleph_cof - theorem RelIso.cof_le - def StrictOrder.cof - theorem StrictOrder.cof_nonempty Modified Mathlib/SetTheory/Cardinal/Defs.lean - theorem Cardinal.lift_umax' - theorem Cardinal.mk'_def Modified Mathlib/SetTheory/Cardinal/Order.lean Modified Mathlib/SetTheory/Cardinal/Regular.lean - theorem Cardinal.derivBFamily_lt_ord - theorem Cardinal.derivBFamily_lt_ord_lift - theorem Cardinal.isRegular_aleph'_succ - theorem Cardinal.nfpBFamily_lt_ord_lift_of_isRegular - theorem Cardinal.nfpBFamily_lt_ord_of_isRegular Modified Mathlib/SetTheory/Ordinal/Arithmetic.lean - theorem Ordinal.natCast_eq_zero - theorem Ordinal.natCast_inj - theorem Ordinal.natCast_le - theorem Ordinal.natCast_lt - theorem Ordinal.natCast_ne_zero - theorem Ordinal.natCast_pos Modified Mathlib/SetTheory/Ordinal/Basic.lean - theorem Ordinal.lift_umax' - theorem Ordinal.type_def' - theorem Ordinal.type_def - theorem Ordinal.type_lift_preimage_aux - theorem Ordinal.type_lt - theorem WellOrder.eta Modified Mathlib/SetTheory/Ordinal/Exponential.lean Modified Mathlib/SetTheory/Ordinal/Family.lean - def Ordinal.blsub₂ - theorem Ordinal.lt_blsub₂ Modified Mathlib/SetTheory/Ordinal/FixedPoint.lean - theorem Ordinal.apply_le_nfpBFamily - theorem Ordinal.apply_lt_nfpBFamily - theorem Ordinal.apply_lt_nfpBFamily_iff - def Ordinal.derivBFamily - theorem Ordinal.derivBFamily_eq_derivFamily - theorem Ordinal.derivBFamily_eq_enumOrd - theorem Ordinal.derivBFamily_fp - theorem Ordinal.foldr_le_nfpBFamily - theorem Ordinal.fp_iff_derivBFamily - theorem Ordinal.isNormal_derivBFamily - theorem Ordinal.le_iff_derivBFamily - theorem Ordinal.le_nfpBFamily - theorem Ordinal.lt_nfpBFamily - def Ordinal.nfpBFamily - theorem Ordinal.nfpBFamily_eq_nfpFamily - theorem Ordinal.nfpBFamily_eq_self - theorem Ordinal.nfpBFamily_fp - theorem Ordinal.nfpBFamily_le - theorem Ordinal.nfpBFamily_le_apply - theorem Ordinal.nfpBFamily_le_fp - theorem Ordinal.nfpBFamily_le_iff - theorem Ordinal.nfpBFamily_monotone - theorem Ordinal.nfpFamily_eq_sup - theorem Ordinal.not_bddAbove_fp_bfamily Modified Mathlib/SetTheory/Ordinal/Principal.lean - theorem Ordinal.principal_nfp_blsub₂ - theorem Ordinal.unbounded_principal Modified Mathlib/Topology/Algebra/Constructions/DomMulAct.lean Modified Mathlib/Topology/Algebra/Group/CompactOpen.lean Modified Mathlib/Topology/Algebra/Module/Alternating/Topology.lean Modified Mathlib/Topology/Algebra/Module/FiniteDimension.lean Modified Mathlib/Topology/Algebra/ProperAction/Basic.lean Modified Mathlib/Topology/Algebra/StarSubalgebra.lean Modified Mathlib/Topology/Algebra/Support.lean Modified Mathlib/Topology/Category/CompHausLike/Limits.lean Modified Mathlib/Topology/Category/LightProfinite/Sequence.lean Modified Mathlib/Topology/Category/TopCat/Basic.lean Modified Mathlib/Topology/Category/TopCat/Limits/Pullbacks.lean Modified Mathlib/Topology/Category/TopCat/OpenNhds.lean Modified Mathlib/Topology/Category/TopCat/Opens.lean Modified Mathlib/Topology/CompactOpen.lean - def ContinuousMap.compRightHomeomorph Modified Mathlib/Topology/Compactification/OnePoint.lean Modified Mathlib/Topology/Compactness/Compact.lean Modified Mathlib/Topology/Compactness/Lindelof.lean Modified Mathlib/Topology/Compactness/LocallyCompact.lean Modified Mathlib/Topology/Compactness/Paracompact.lean Modified Mathlib/Topology/Compactness/SigmaCompact.lean Modified Mathlib/Topology/Connected/LocPathConnected.lean Modified Mathlib/Topology/Connected/LocallyConnected.lean Modified Mathlib/Topology/Constructions.lean Modified Mathlib/Topology/Constructions/SumProd.lean Modified Mathlib/Topology/ContinuousMap/Basic.lean Modified Mathlib/Topology/ContinuousMap/ContinuousMapZero.lean Modified Mathlib/Topology/ContinuousOn.lean Modified Mathlib/Topology/Defs/Induced.lean Modified Mathlib/Topology/FiberBundle/Basic.lean Modified Mathlib/Topology/Gluing.lean Modified Mathlib/Topology/Homeomorph/Defs.lean Modified Mathlib/Topology/Homeomorph/Lemmas.lean Modified Mathlib/Topology/Inseparable.lean Modified Mathlib/Topology/Instances/ENNReal/Lemmas.lean Modified Mathlib/Topology/Instances/ENat.lean Modified Mathlib/Topology/Instances/EReal/Lemmas.lean Modified Mathlib/Topology/Instances/Int.lean Modified Mathlib/Topology/Instances/Nat.lean Modified Mathlib/Topology/Instances/Rat.lean Modified Mathlib/Topology/IsLocalHomeomorph.lean Modified Mathlib/Topology/KrullDimension.lean Modified Mathlib/Topology/List.lean Modified Mathlib/Topology/LocalAtTarget.lean Modified Mathlib/Topology/LocallyClosed.lean Modified Mathlib/Topology/Maps/Basic.lean Modified Mathlib/Topology/Maps/Proper/Basic.lean Modified Mathlib/Topology/MetricSpace/Antilipschitz.lean Modified Mathlib/Topology/MetricSpace/Basic.lean Modified Mathlib/Topology/MetricSpace/Dilation.lean Modified Mathlib/Topology/MetricSpace/Isometry.lean Modified Mathlib/Topology/MetricSpace/Polish.lean Modified Mathlib/Topology/PartialHomeomorph.lean Modified Mathlib/Topology/QuasiSeparated.lean Modified Mathlib/Topology/SeparatedMap.lean Modified Mathlib/Topology/Separation/Basic.lean Modified Mathlib/Topology/Separation/Hausdorff.lean Modified Mathlib/Topology/Separation/Regular.lean Modified Mathlib/Topology/Sets/Opens.lean Modified Mathlib/Topology/Sheaves/SheafCondition/Sites.lean Modified Mathlib/Topology/Sheaves/Stalks.lean Modified Mathlib/Topology/Sober.lean Modified Mathlib/Topology/TietzeExtension.lean Modified Mathlib/Topology/UniformSpace/Ascoli.lean Modified Mathlib/Topology/UniformSpace/CompleteSeparated.lean Modified Mathlib/Topology/UniformSpace/UniformEmbedding.lean Modified scripts/noshake.json 2025-04-23 10:55:49 b3692fd feat(RingTheory/Bialgebra/Basic): injectivity of `algebraMap` and nontriviality of bialgebras (#24138) If `A` is a bialgebra over a commutative semiring `R`, prove that `algebraMap R A` is injective. Deduce that `A` is nontrivial if `R` is nontrivial. ESTIMATED CHANGES Modified Mathlib/RingTheory/Bialgebra/Basic.lean + theorem Bialgebra.algebraMap_injective + theorem Bialgebra.counit_surjective + theorem Bialgebra.nontrivial 2025-04-23 10:36:17 0d61790 refactor(CategoryTheory): redefine full subcategories using `ObjectProperty` (#22574) The type `ObjectProperty` was recently introduced #22286 for predicates on the objects of a category. We redefine `FullSubcategory` as `ObjectProperty.FullSubcategory`. This refactor PR mostly does only minimal changes to take into account that some definitions were renamed. The only significant exception is for the definition of the category of finitely generated modules in `Algebra.Category.FGModuleCat.Basic`, which should become the better practice for defining full subcategories, especially when we want to infer certain type classes: define a property of objects (here `ModuleCat.isFG`) and define the category as an abbreviation (here `abbrev FGModuleCat := (ModuleCat.isFG R).FullSubcategory`). Following this approach, significantly many of the typeclasses on the category `FGModuleCat R` can be inferred automatically. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Category/FGModuleCat/Basic.lean - def FGModuleCat + def ModuleCat.isFG + theorem ModuleCat.isFG_iff Modified Mathlib/Algebra/Category/FGModuleCat/Limits.lean Modified Mathlib/Algebra/Category/Grp/LeftExactFunctor.lean Modified Mathlib/Algebra/Category/ModuleCat/Presheaf/Pullback.lean Modified Mathlib/Algebra/Homology/LocalCohomology.lean Modified Mathlib/AlgebraicGeometry/AffineScheme.lean Modified Mathlib/AlgebraicTopology/SimplexCategory/Defs.lean Modified Mathlib/AlgebraicTopology/SimplicialSet/HomotopyCat.lean Modified Mathlib/AlgebraicTopology/SimplicialSet/NerveAdjunction.lean Modified Mathlib/CategoryTheory/Action/Continuous.lean +/- def ContAction +/- def DiscreteContAction Modified Mathlib/CategoryTheory/Adjunction/PartialAdjoint.lean - def CategoryTheory.Functor.LeftAdjointObjIsDefined + def CategoryTheory.Functor.leftAdjointObjIsDefined Modified Mathlib/CategoryTheory/Adjunction/Reflective.lean Modified Mathlib/CategoryTheory/ChosenFiniteProducts.lean Modified Mathlib/CategoryTheory/ConcreteCategory/Basic.lean Modified Mathlib/CategoryTheory/ConnectedComponents.lean - def CategoryTheory.Component.ι - def CategoryTheory.Component + def CategoryTheory.ConnectedComponents.objectProperty Modified Mathlib/CategoryTheory/Equivalence.lean - def CategoryTheory.Equivalence.ofFullSubcategory + def CategoryTheory.ObjectProperty.fullSubcategoryCongr Modified Mathlib/CategoryTheory/EssentialImage.lean - def CategoryTheory.Functor.EssImageSubcategory - def CategoryTheory.Functor.toEssImageCompEssentialImageInclusion + def CategoryTheory.Functor.toEssImageCompι Modified Mathlib/CategoryTheory/EssentiallySmall.lean Modified Mathlib/CategoryTheory/Filtered/Small.lean - inductive CategoryTheory.IsCofiltered.CofilteredClosure + inductive CategoryTheory.IsCofiltered.cofilteredClosure - inductive CategoryTheory.IsFiltered.FilteredClosure + inductive CategoryTheory.IsFiltered.filteredClosure Deleted Mathlib/CategoryTheory/FullSubcategory.lean - theorem CategoryTheory.FullSubcategory.comp_def - theorem CategoryTheory.FullSubcategory.id_def - def CategoryTheory.FullSubcategory.lift - def CategoryTheory.FullSubcategory.lift_comp_inclusion - theorem CategoryTheory.FullSubcategory.lift_comp_inclusion_eq - theorem CategoryTheory.FullSubcategory.lift_comp_map - def CategoryTheory.FullSubcategory.map - theorem CategoryTheory.FullSubcategory.map_inclusion - structure CategoryTheory.FullSubcategory - def CategoryTheory.InducedCategory.isoMk - def CategoryTheory.InducedCategory - theorem CategoryTheory.fullSubcategoryInclusion.map - theorem CategoryTheory.fullSubcategoryInclusion.obj - def CategoryTheory.fullSubcategoryInclusion - theorem CategoryTheory.fullSubcategoryInclusion_map_lift_map - theorem CategoryTheory.fullSubcategoryInclusion_obj_lift_obj - def CategoryTheory.fullyFaithfulInducedFunctor - def CategoryTheory.inducedFunctor Modified Mathlib/CategoryTheory/Groupoid.lean Added Mathlib/CategoryTheory/InducedCategory.lean + def CategoryTheory.InducedCategory.isoMk + def CategoryTheory.InducedCategory + def CategoryTheory.fullyFaithfulInducedFunctor + def CategoryTheory.inducedFunctor Modified Mathlib/CategoryTheory/Limits/ExactFunctor.lean Modified Mathlib/CategoryTheory/Limits/FinallySmall.lean Modified Mathlib/CategoryTheory/Limits/FullSubcategory.lean +/- def CategoryTheory.Limits.createsColimitFullSubcategoryInclusion' +/- def CategoryTheory.Limits.createsColimitFullSubcategoryInclusion +/- def CategoryTheory.Limits.createsLimitFullSubcategoryInclusion' +/- def CategoryTheory.Limits.createsLimitFullSubcategoryInclusion Modified Mathlib/CategoryTheory/Limits/Indization/Category.lean Modified Mathlib/CategoryTheory/Limits/Indization/LocallySmall.lean Modified Mathlib/CategoryTheory/Linear/Basic.lean Modified Mathlib/CategoryTheory/Linear/LinearFunctor.lean Modified Mathlib/CategoryTheory/Localization/Construction.lean Modified Mathlib/CategoryTheory/Localization/Predicate.lean Modified Mathlib/CategoryTheory/Monoidal/NaturalTransformation.lean Modified Mathlib/CategoryTheory/Monoidal/Subcategory.lean - theorem CategoryTheory.MonoidalCategory.fullMonoidalClosedSubcategory_ihom_map - theorem CategoryTheory.MonoidalCategory.fullMonoidalClosedSubcategory_ihom_obj - theorem CategoryTheory.MonoidalCategory.fullSubcategoryInclusion_δ - theorem CategoryTheory.MonoidalCategory.fullSubcategoryInclusion_ε - theorem CategoryTheory.MonoidalCategory.fullSubcategoryInclusion_η - theorem CategoryTheory.MonoidalCategory.fullSubcategoryInclusion_μ - theorem CategoryTheory.MonoidalCategory.fullSubcategory_map_δ - theorem CategoryTheory.MonoidalCategory.fullSubcategory_map_ε - theorem CategoryTheory.MonoidalCategory.fullSubcategory_map_η - theorem CategoryTheory.MonoidalCategory.fullSubcategory_map_μ + theorem CategoryTheory.ObjectProperty.ihom_map + theorem CategoryTheory.ObjectProperty.ihom_obj + theorem CategoryTheory.ObjectProperty.prop_ihom + theorem CategoryTheory.ObjectProperty.prop_tensor + theorem CategoryTheory.ObjectProperty.prop_unit + theorem CategoryTheory.ObjectProperty.ιOfLE_δ + theorem CategoryTheory.ObjectProperty.ιOfLE_ε + theorem CategoryTheory.ObjectProperty.ιOfLE_η + theorem CategoryTheory.ObjectProperty.ιOfLE_μ + theorem CategoryTheory.ObjectProperty.ι_δ + theorem CategoryTheory.ObjectProperty.ι_ε + theorem CategoryTheory.ObjectProperty.ι_η + theorem CategoryTheory.ObjectProperty.ι_μ Modified Mathlib/CategoryTheory/MorphismProperty/IsInvertedBy.lean Modified Mathlib/CategoryTheory/ObjectProperty/Basic.lean + theorem CategoryTheory.ObjectProperty.le_def Added Mathlib/CategoryTheory/ObjectProperty/FullSubcategory.lean + theorem CategoryTheory.ObjectProperty.FullSubcategory.comp_def + theorem CategoryTheory.ObjectProperty.FullSubcategory.id_def + theorem CategoryTheory.ObjectProperty.FullSubcategory.lift_comp_inclusion_eq + theorem CategoryTheory.ObjectProperty.FullSubcategory.lift_comp_map + theorem CategoryTheory.ObjectProperty.FullSubcategory.map_inclusion + structure CategoryTheory.ObjectProperty.FullSubcategory + def CategoryTheory.ObjectProperty.fullyFaithfulιOfLE + def CategoryTheory.ObjectProperty.isoMk + def CategoryTheory.ObjectProperty.lift + def CategoryTheory.ObjectProperty.liftCompιIso + def CategoryTheory.ObjectProperty.liftCompιOfLEIso + def CategoryTheory.ObjectProperty.ι + def CategoryTheory.ObjectProperty.ιOfLE + def CategoryTheory.ObjectProperty.ιOfLECompιIso + theorem CategoryTheory.ObjectProperty.ι_map + theorem CategoryTheory.ObjectProperty.ι_obj + theorem CategoryTheory.ObjectProperty.ι_obj_lift_map + theorem CategoryTheory.ObjectProperty.ι_obj_lift_obj Modified Mathlib/CategoryTheory/Preadditive/AdditiveFunctor.lean Modified Mathlib/CategoryTheory/Preadditive/Basic.lean Modified Mathlib/CategoryTheory/Preadditive/Indization.lean Modified Mathlib/CategoryTheory/Sites/EffectiveEpimorphic.lean Modified Mathlib/CategoryTheory/Sites/SheafOfTypes.lean Modified Mathlib/CategoryTheory/Sites/Sieves.lean Modified Mathlib/CategoryTheory/Subobject/MonoOver.lean Modified Mathlib/CategoryTheory/Subterminal.lean Modified Mathlib/Topology/Category/TopCat/OpenNhds.lean Modified Mathlib/Topology/Sheaves/Alexandrov.lean Modified Mathlib/Topology/Sheaves/SheafCondition/OpensLeCover.lean +/- def TopCat.Presheaf.SheafCondition.opensLeCoverCocone Modified Mathlib/Topology/Sheaves/SheafCondition/PairwiseIntersections.lean 2025-04-23 09:49:43 4790a8f chore(RingTheory/Ideal): move associated prime (#23876) Move associated prime into a folder for further developments. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/RingTheory/Ideal/AssociatedPrime.lean - theorem AssociatePrimes.mem_iff - theorem IsAssociatedPrime.annihilator_le - theorem IsAssociatedPrime.eq_radical - theorem IsAssociatedPrime.isPrime - theorem IsAssociatedPrime.map_of_injective - def IsAssociatedPrime - theorem LinearEquiv.AssociatedPrimes.eq - theorem LinearEquiv.isAssociatedPrime_iff - theorem associatedPrimes.eq_empty_of_subsingleton - theorem associatedPrimes.eq_singleton_of_isPrimary - theorem associatedPrimes.nonempty - theorem associatedPrimes.subset_of_injective - def associatedPrimes - theorem biUnion_associatedPrimes_eq_zero_divisors - theorem exists_le_isAssociatedPrime_of_isNoetherianRing - theorem not_isAssociatedPrime_of_subsingleton Added Mathlib/RingTheory/Ideal/AssociatedPrime/Basic.lean + theorem AssociatePrimes.mem_iff + theorem IsAssociatedPrime.annihilator_le + theorem IsAssociatedPrime.eq_radical + theorem IsAssociatedPrime.isPrime + theorem IsAssociatedPrime.map_of_injective + def IsAssociatedPrime + theorem LinearEquiv.AssociatedPrimes.eq + theorem LinearEquiv.isAssociatedPrime_iff + theorem associatedPrimes.eq_empty_of_subsingleton + theorem associatedPrimes.eq_singleton_of_isPrimary + theorem associatedPrimes.nonempty + theorem associatedPrimes.subset_of_injective + def associatedPrimes + theorem biUnion_associatedPrimes_eq_zero_divisors + theorem exists_le_isAssociatedPrime_of_isNoetherianRing + theorem not_isAssociatedPrime_of_subsingleton Modified Mathlib/RingTheory/Regular/IsSMulRegular.lean 2025-04-23 09:49:42 e9feb08 feat(Bialgebra/MonoidAlgebra): `mapDomain` as a `BialgHom` (#23722) From Toric ESTIMATED CHANGES Modified Mathlib/RingTheory/Bialgebra/Hom.lean + def BialgHom.ofAlgHom Modified Mathlib/RingTheory/Bialgebra/MonoidAlgebra.lean + theorem AddMonoidAlgebra.mapDomainBialgHom_comp + theorem AddMonoidAlgebra.mapDomainBialgHom_id + theorem AddMonoidAlgebra.mapDomainBialgHom_mapDomainBialgHom + theorem MonoidAlgebra.mapDomainBialgHom_comp + theorem MonoidAlgebra.mapDomainBialgHom_id + theorem MonoidAlgebra.mapDomainBialgHom_mapDomainBialgHom 2025-04-23 09:49:40 1db9933 chore(RingTheory/DedekindDomain/FiniteAdeleRing): refactor finite adeles (#23542) Now we have a general theory of restricted products, we can refactor mathlib's finite adele file, removing the auxiliary results which are unused outside this file and replacing everything with much slicker proofs. Crucially, we also have a far more conceptual definition of the topology on the finite adele ring -- this is the big win. The motivation for this refactor is that the FLT project needs many more results about finite adeles (for example local compactness in the number field case) and this will be very easy to prove with this new definition (using `RestrictedProduct.locallyCompactSpace_of_addGroup`), whereas it took an entire project https://github.com/smmercuri/adele-ring_locally-compact with our current approach. ESTIMATED CHANGES Modified Mathlib/RingTheory/DedekindDomain/FiniteAdeleRing.lean - theorem DedekindDomain.FiniteAdeleRing.coe_add - theorem DedekindDomain.FiniteAdeleRing.coe_algebraMap' - theorem DedekindDomain.FiniteAdeleRing.coe_algebraMap - theorem DedekindDomain.FiniteAdeleRing.coe_mul - theorem DedekindDomain.FiniteAdeleRing.coe_one - theorem DedekindDomain.FiniteAdeleRing.coe_zero - theorem DedekindDomain.FiniteAdeleRing.exists_finiteIntegralAdele_iff +/- theorem DedekindDomain.FiniteAdeleRing.ext - theorem DedekindDomain.FiniteAdeleRing.mul_nonZeroDivisor_mem_finiteIntegralAdeles - def DedekindDomain.FiniteAdeleRing.subalgebra - theorem DedekindDomain.FiniteAdeleRing.submodulesRingBasis - def DedekindDomain.FiniteAdeleRing - def DedekindDomain.FiniteIntegralAdeles.Coe.addMonoidHom - def DedekindDomain.FiniteIntegralAdeles.Coe.algHom - theorem DedekindDomain.FiniteIntegralAdeles.Coe.algHom_apply - def DedekindDomain.FiniteIntegralAdeles.Coe.ringHom - theorem DedekindDomain.FiniteIntegralAdeles.coe_apply - def DedekindDomain.FiniteIntegralAdeles - theorem DedekindDomain.ProdAdicCompletions.IsFiniteAdele.add - theorem DedekindDomain.ProdAdicCompletions.IsFiniteAdele.algebraMap' - theorem DedekindDomain.ProdAdicCompletions.IsFiniteAdele.mul - theorem DedekindDomain.ProdAdicCompletions.IsFiniteAdele.neg - theorem DedekindDomain.ProdAdicCompletions.IsFiniteAdele.one - theorem DedekindDomain.ProdAdicCompletions.IsFiniteAdele.zero - def DedekindDomain.ProdAdicCompletions.IsFiniteAdele - theorem DedekindDomain.ProdAdicCompletions.algebraMap_apply' - theorem DedekindDomain.ProdAdicCompletions.algebraMap_apply - theorem DedekindDomain.ProdAdicCompletions.isFiniteAdele_iff - def DedekindDomain.ProdAdicCompletions + theorem IsDedekindDomain.HeightOneSpectrum.Support.finite + def IsDedekindDomain.HeightOneSpectrum.Support Modified Mathlib/Topology/Algebra/RestrictedProduct.lean 2025-04-23 09:35:02 c8ed587 feat(Analysis/Analytic): characterization of order (#24256) Alternative characterization of the order of vanishing of analytic functions which avoids case splits on `ENat`. Also golf a proof using `filter_upwards`. ESTIMATED CHANGES Modified Mathlib/Analysis/Analytic/Order.lean + theorem AnalyticAt.natCast_le_order_iff 2025-04-23 09:35:01 ee48509 feat(NumberTheory/Padics): parametrization of cts add chars of Z_[p] (#24141) Another step towards defining the Mahler / Amice transform for p-adic measures. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Group/ForwardDiff.lean + theorem fwdDiff_addChar_eq Modified Mathlib/Analysis/SpecificLimits/Normed.lean + theorem tendsto_pow_atTop_nhds_zero_iff_norm_lt_one +/- theorem tendsto_pow_atTop_nhds_zero_of_norm_lt_one Added Mathlib/NumberTheory/Padics/AddChar.lean + theorem AddChar.tendsto_apply_one_sub_pow + theorem PadicInt.addChar_of_value_at_one_def + theorem PadicInt.coe_addChar_of_value_at_one + theorem PadicInt.continuousAddCharEquiv_apply + theorem PadicInt.continuousAddCharEquiv_of_norm_mul_apply + theorem PadicInt.continuousAddCharEquiv_of_norm_mul_symm_apply + theorem PadicInt.continuousAddCharEquiv_symm_apply + theorem PadicInt.continuous_addChar_of_value_at_one + theorem PadicInt.eq_addChar_of_value_at_one Added Mathlib/Topology/Algebra/Monoid/AddChar.lean + theorem DenseRange.addChar_eq_of_apply_one_eq 2025-04-23 09:23:43 9ecb36a feat: taking the divisor of a meromorphic function commutes with restriction (#23370) Deliver on a very simple TODO, show that taking the divisor of a meromorphic function commutes with restriction. This material is used in [Project VD](https://github.com/kebekus/ProjectVD), which aims to formalize Value Distribution Theory for meromorphic functions on the complex plane. ESTIMATED CHANGES Modified Mathlib/Analysis/Meromorphic/Divisor.lean + theorem MeromorphicOn.divisor_restrict 2025-04-23 09:07:51 435a821 feat(TangentCone): add `tangentConeAt_closure` (#24272) Also add `gcongr` to `tangentCone_mono`. ESTIMATED CHANGES Modified Mathlib/Analysis/Calculus/TangentCone.lean + theorem UniqueDiffWithinAt.mono_closure + theorem tangentConeAt_closure + theorem uniqueDiffWithinAt_closure 2025-04-23 09:00:14 942869b feat(Probability): characteristic function of a Gaussian distribution (#24289) Characteristic function and complex moment generating function of Gaussian distributions. ESTIMATED CHANGES Modified Mathlib/Probability/Distributions/Gaussian.lean + theorem ProbabilityTheory.charFun_gaussianReal + theorem ProbabilityTheory.complexMGF_gaussianReal + theorem ProbabilityTheory.complexMGF_id_gaussianReal + theorem ProbabilityTheory.gaussianPDF_lt_top + theorem ProbabilityTheory.gaussianPDF_ne_top +/- theorem ProbabilityTheory.gaussianPDF_zero_var + theorem ProbabilityTheory.integral_gaussianReal_eq_integral_smul + theorem ProbabilityTheory.toReal_gaussianPDF Modified Mathlib/Probability/Moments/ComplexMGF.lean + theorem ProbabilityTheory.complexMGF_id_mul_I + theorem ProbabilityTheory.complexMGF_mul_I 2025-04-23 08:49:18 c4ac15d feat(IteratedDeriv): `(g ∘ f)''` and `(g ∘ f)'''` (#24211) This PR specializes Faà di Bruno's formula for `iteratedDerivWithin` and orders 2 and 3. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Analysis/Calculus/ContDiff/FaaDiBruno.lean +/- def OrderedFinpartition.atomic + theorem OrderedFinpartition.default_eq + theorem OrderedFinpartition.extend_none + theorem OrderedFinpartition.extend_some Added Mathlib/Analysis/Calculus/IteratedDeriv/FaaDiBruno.lean + theorem iteratedDerivWithin_comp_eq_sum_orderedFinpartition + theorem iteratedDerivWithin_comp_three + theorem iteratedDerivWithin_comp_two + theorem iteratedDerivWithin_scomp_eq_sum_orderedFinpartition + theorem iteratedDerivWithin_scomp_three + theorem iteratedDerivWithin_scomp_two + theorem iteratedDerivWithin_vcomp_eq_sum_orderedFinpartition + theorem iteratedDerivWithin_vcomp_three + theorem iteratedDerivWithin_vcomp_two + theorem iteratedDeriv_comp_eq_sum_orderedFinpartition + theorem iteratedDeriv_comp_three + theorem iteratedDeriv_comp_two + theorem iteratedDeriv_scomp_eq_sum_orderedFinpartition + theorem iteratedDeriv_scomp_three + theorem iteratedDeriv_scomp_two + theorem iteratedDeriv_vcomp_eq_sum_orderedFinpartition + theorem iteratedDeriv_vcomp_three + theorem iteratedDeriv_vcomp_two 2025-04-23 08:10:23 1652977 chore: replace `ring_inverse` by `ringInverse` in lemma names (#24292) ... to follow the naming convention. From Toric ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/Spectrum/Basic.lean Modified Mathlib/Algebra/GroupWithZero/Commute.lean + theorem Commute.ringInverse_ringInverse - theorem Commute.ring_inverse_ring_inverse Modified Mathlib/Algebra/GroupWithZero/Units/Basic.lean + theorem IsUnit.ringInverse - theorem IsUnit.ring_inverse - theorem Ring.IsUnit.ringInverse + theorem isUnit_ringInverse - theorem isUnit_ring_inverse Modified Mathlib/Analysis/Calculus/ContDiff/Operations.lean + theorem contDiffAt_ringInverse - theorem contDiffAt_ring_inverse Modified Mathlib/Analysis/Calculus/FDeriv/Mul.lean + theorem hasFDerivAt_ringInverse - theorem hasFDerivAt_ring_inverse + theorem hasStrictFDerivAt_ringInverse - theorem hasStrictFDerivAt_ring_inverse Modified Mathlib/Analysis/Normed/Algebra/MatrixExponential.lean Modified Mathlib/Analysis/Normed/Algebra/Spectrum.lean Modified Mathlib/Geometry/Manifold/Instances/UnitsOfNormedAlgebra.lean Modified Mathlib/LinearAlgebra/Matrix/NonsingularInverse.lean + theorem Matrix.nonsing_inv_eq_ringInverse - theorem Matrix.nonsing_inv_eq_ring_inverse Modified Mathlib/LinearAlgebra/Matrix/SchurComplement.lean Modified Mathlib/Topology/Algebra/Module/Equiv.lean + theorem ContinuousLinearMap.inverse_eq_ringInverse + theorem ContinuousLinearMap.ringInverse_eq_inverse + theorem ContinuousLinearMap.ringInverse_equiv - theorem ContinuousLinearMap.ring_inverse_eq_map_inverse - theorem ContinuousLinearMap.ring_inverse_equiv - theorem ContinuousLinearMap.to_ring_inverse 2025-04-23 07:25:04 0e302d3 feat(Analysis): add `mlconvolution` and `lconvolution`, Convolution with the Lebesgue integral (#23299) Create LConvolution.lean which defines convolution using the Lebesgue integral. I plan to add more API but wanted to make sure the definition/notation are satisfactory. The main intended application of this is to prove that the pdf of a product (sum) of independent random variables is given by the convolution of their pdfs. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/LConvolution.lean + theorem MeasureTheory.measurable_mlconvolution + theorem MeasureTheory.mlconvolution_def + theorem MeasureTheory.mlconvolution_zero + theorem MeasureTheory.zero_mlconvolution Modified Mathlib/MeasureTheory/Group/Convolution.lean Modified Mathlib/Tactic/ToAdditive/Frontend.lean 2025-04-23 07:13:03 4b8d884 feat: generalize order properties of the Bochner integral to real ordered Banach spaces (#24177) Currently, Mathlib only has order properties of the Bochner integral for `ℝ`-valued functions. This generalizes the fundamental results to real ordered Banach spaces. The motivation is to allow for: ```lean variable {A : Type*} [NonUnitalCStarAlgebra A] [PartialOrder A] [StarOrderedRing A] example {f : ℝ → A} (hf : 0 ≤ᵐ[volume] f) : 0 ≤ ∫ x, f x ∂(volume) := integral_nonneg_of_ae hf ``` ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Function/ConditionalExpectation/Basic.lean Modified Mathlib/MeasureTheory/Function/ConditionalExpectation/CondexpL1.lean +/- theorem MeasureTheory.condExpInd_nonneg Modified Mathlib/MeasureTheory/Function/ConditionalExpectation/CondexpL2.lean Modified Mathlib/MeasureTheory/Function/LpOrder.lean Modified Mathlib/MeasureTheory/Function/SimpleFuncDenseLp.lean +/- theorem MeasureTheory.Lp.simpleFunc.coeFn_le Modified Mathlib/MeasureTheory/Integral/Bochner/Basic.lean +/- theorem MeasureTheory.integral_mono +/- theorem MeasureTheory.integral_mono_ae +/- theorem MeasureTheory.integral_mono_measure +/- theorem MeasureTheory.integral_mono_of_nonneg +/- theorem MeasureTheory.integral_nonneg +/- theorem MeasureTheory.integral_nonneg_of_ae +/- theorem MeasureTheory.integral_nonpos +/- theorem MeasureTheory.integral_nonpos_of_ae Modified Mathlib/MeasureTheory/Integral/Bochner/L1.lean +/- theorem MeasureTheory.weightedSMul_nonneg Modified Mathlib/MeasureTheory/Integral/FinMeasAdditive.lean Modified Mathlib/MeasureTheory/Integral/SetToL1.lean 2025-04-23 05:43:52 80bf3ea feat: any lax-monoidal structure on a functor comes from at most one monoidal structure (#24294) From Toric ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Monoidal/Braided/Basic.lean + theorem CategoryTheory.Functor.Braided.toMonoidal_injective Modified Mathlib/CategoryTheory/Monoidal/Functor.lean + theorem CategoryTheory.Functor.Monoidal.toLaxMonoidal_injective + theorem CategoryTheory.Functor.Monoidal.toOplaxMonoidal_injective 2025-04-23 05:31:48 4b04f43 chore: spell results using `PreservesFiniteProducts` (#24293) I believe these were written before `PreservesFiniteProducts` was a thing. Take the opportunity to make anonymous dot notation available. From Toric ESTIMATED CHANGES Modified Mathlib/Algebra/Category/Ring/Under/Limits.lean Modified Mathlib/CategoryTheory/Closed/Cartesian.lean Modified Mathlib/CategoryTheory/Closed/Ideal.lean + theorem CategoryTheory.Limits.PreservesFiniteProducts._of_exponentialIdeal - theorem CategoryTheory.preservesFiniteProducts_of_exponentialIdeal Modified Mathlib/CategoryTheory/Limits/Constructions/FiniteProductsOfBinaryProducts.lean + theorem CategoryTheory.Limits.PreservesFiniteProducts.of_preserves_binary_and_terminal - theorem CategoryTheory.preservesFiniteProducts_of_preserves_binary_and_terminal Modified Mathlib/CategoryTheory/Limits/Constructions/LimitsOfProductsAndEqualizers.lean Modified Mathlib/CategoryTheory/Preadditive/LeftExact.lean 2025-04-23 04:28:52 3d26669 feat: `0 < re ⟪x, x⟫ ↔ x ≠ 0` (#24235) From Toric ESTIMATED CHANGES Modified Mathlib/Analysis/InnerProductSpace/Basic.lean + theorem inner_self_pos +/- theorem real_inner_self_nonpos + theorem real_inner_self_pos 2025-04-23 04:28:51 9f2b5fe refactor(PerfectPairing): rename the structure fields (#24231) That way, they match the naming convention. From Toric ESTIMATED CHANGES Modified Mathlib/Algebra/Lie/Weights/RootSystem.lean Modified Mathlib/LinearAlgebra/PerfectPairing/Basic.lean - theorem PerfectPairing.toLin_apply + theorem PerfectPairing.toLinearMap_apply +/- structure PerfectPairing Modified Mathlib/LinearAlgebra/PerfectPairing/Restrict.lean +/- def PerfectPairing.restrict Modified Mathlib/LinearAlgebra/RootSystem/BaseChange.lean Modified Mathlib/LinearAlgebra/RootSystem/Basic.lean Modified Mathlib/LinearAlgebra/RootSystem/Defs.lean +/- theorem RootPairing.coroot_root_eq_pairing - theorem RootPairing.toLin_toPerfectPairing + theorem RootPairing.toLinearMap_eq_toPerfectPairing Modified Mathlib/LinearAlgebra/RootSystem/Finite/CanonicalBilinear.lean Modified Mathlib/LinearAlgebra/RootSystem/Hom.lean Modified Mathlib/LinearAlgebra/RootSystem/OfBilinear.lean 2025-04-23 04:28:50 ae4a5e8 doc(Topology/ContinuousMap): improve doc-string of `C(X, Y)` (#24221) The old doc-string is confusing if for example you write `C(Y, X)` ESTIMATED CHANGES Modified Mathlib/Topology/ContinuousMap/Defs.lean 2025-04-23 04:28:49 e6a707c chore(Topology/Path): golf `Path.symm` (#24220) Here `fun_prop` is more efficient than `continuity` ESTIMATED CHANGES Modified Mathlib/Topology/Path.lean 2025-04-23 04:28:47 b5a7ec8 chore (Order/Monotone/Basic): move/rename subsequence existence lemma (#24207) I'd like to use this lemma without importing filters. ESTIMATED CHANGES Modified Mathlib/Order/Filter/AtTopBot/Basic.lean - theorem Filter.extraction_of_frequently_atTop' Modified Mathlib/Order/Monotone/Basic.lean + theorem Nat.exists_strictMono_subsequence Modified scripts/nolints_prime_decls.txt 2025-04-23 03:56:19 089945f chore: `Lintegral -> LIntegral`, `Laverage -> LAverage` (#24282) Found during my split of `MeasureTheory.Integral.Lebesgue.Basic`. ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Function/AEEqOfLIntegral.lean Modified Mathlib/MeasureTheory/Function/LpSeminorm/Basic.lean Modified Mathlib/MeasureTheory/Integral/Average.lean + theorem MeasureTheory.exists_le_setLAverage - theorem MeasureTheory.exists_le_setLaverage + theorem MeasureTheory.exists_setLAverage_le - theorem MeasureTheory.exists_setLaverage_le + theorem MeasureTheory.measure_le_setLAverage_pos - theorem MeasureTheory.measure_le_setLaverage_pos + theorem MeasureTheory.measure_mul_setLAverage - theorem MeasureTheory.measure_mul_setLaverage + theorem MeasureTheory.measure_setLAverage_le_pos - theorem MeasureTheory.measure_setLaverage_le_pos + theorem MeasureTheory.setLAverage_congr + theorem MeasureTheory.setLAverage_congr_fun + theorem MeasureTheory.setLAverage_const + theorem MeasureTheory.setLAverage_eq' + theorem MeasureTheory.setLAverage_eq + theorem MeasureTheory.setLAverage_lt_top + theorem MeasureTheory.setLAverage_one + theorem MeasureTheory.setLIntegral_setLAverage - theorem MeasureTheory.setLaverage_congr - theorem MeasureTheory.setLaverage_congr_fun - theorem MeasureTheory.setLaverage_const - theorem MeasureTheory.setLaverage_eq' - theorem MeasureTheory.setLaverage_eq - theorem MeasureTheory.setLaverage_lt_top - theorem MeasureTheory.setLaverage_one - theorem MeasureTheory.setLintegral_setLaverage + theorem MeasureTheory.toReal_setLAverage - theorem MeasureTheory.toReal_setLaverage Modified Mathlib/MeasureTheory/Integral/Lebesgue/Basic.lean + theorem MeasureTheory.setLIntegral_compl + theorem MeasureTheory.setLIntegral_pos_iff - theorem MeasureTheory.setLintegral_compl - theorem MeasureTheory.setLintegral_pos_iff Modified Mathlib/MeasureTheory/Integral/Lebesgue/Markov.lean + theorem MeasureTheory.measure_eq_top_of_setLIntegral_ne_top - theorem MeasureTheory.measure_eq_top_of_setLintegral_ne_top + theorem MeasureTheory.setLIntegral_eq_top_of_measure_eq_top_ne_zero - theorem MeasureTheory.setLintegral_eq_top_of_measure_eq_top_ne_zero Modified Mathlib/MeasureTheory/Integral/Lebesgue/Sub.lean + theorem MeasureTheory.exists_measurable_le_setLIntegral_eq_of_integrable - theorem MeasureTheory.exists_measurable_le_setLintegral_eq_of_integrable + theorem MeasureTheory.exists_setLIntegral_compl_lt - theorem MeasureTheory.exists_setLintegral_compl_lt 2025-04-23 03:56:18 12c274f feat(Submodule): `s.carrier = ↑s` (#24230) From Toric ESTIMATED CHANGES Modified Mathlib/Algebra/Lie/Semisimple/Basic.lean Modified Mathlib/Algebra/Module/Submodule/Defs.lean + theorem Submodule.carrier_eq_coe Modified Mathlib/LinearAlgebra/TensorProduct/RightExactness.lean 2025-04-23 03:56:17 b9ed235 feat: `ContinuousConstSMul {r : R // 0 ≤ r} α` (#24229) From Toric ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Topology/Algebra/ConstMulAction.lean Added Mathlib/Topology/Algebra/Order/Module.lean 2025-04-23 03:41:13 5e32622 refactor(Algebra/Polynomial/Roots): nthRoots as a Finset (#23293) If `nthRoots n a` is defined as the roots of `(X : R[X]) ^ n - C a` as a multiset then surely `nthRootsFinset n a` should be the roots of `(X : R[X]) ^ n - C a` as a Finset? ESTIMATED CHANGES Modified Mathlib/Algebra/Polynomial/Roots.lean + theorem Polynomial.map_mem_nthRootsFinset_one +/- theorem Polynomial.mem_nthRootsFinset +/- theorem Polynomial.ne_zero_of_mem_nthRootsFinset +/- def Polynomial.nthRootsFinset +/- theorem Polynomial.nthRootsFinset_def +/- theorem Polynomial.nthRootsFinset_zero +/- theorem Polynomial.one_mem_nthRootsFinset Modified Mathlib/RingTheory/Polynomial/Cyclotomic/Basic.lean Modified Mathlib/RingTheory/RootsOfUnity/PrimitiveRoots.lean 2025-04-22 23:49:24 a5abec9 fix: `FreeAddMonoid.length_eq_one` (#24299) Adds `FreeAddMonoid.length_eq_one`, which `to_additive` misnamed as `FreeAddMonoid.length_eq_zero`. ESTIMATED CHANGES Modified Mathlib/Algebra/FreeMonoid/Basic.lean 2025-04-22 21:17:47 04c82c1 chore: make `convex_singleton` a simp lemma (#24258) This showed up while writing #24149 (although it ended up being unnecessary). ESTIMATED CHANGES Modified Mathlib/Analysis/Convex/Basic.lean +/- theorem convex_singleton 2025-04-22 18:54:16 673d2de feat: `(1 : M ≃ₗ[R] M) = refl R M` (#24291) For discoverability and rewriting purposes From Toric ESTIMATED CHANGES Modified Mathlib/Algebra/Module/Equiv/Basic.lean + theorem LinearEquiv.mul_eq_trans + theorem LinearEquiv.one_eq_refl 2025-04-22 18:08:40 a29b84d refactor(AlgebraicGeometry): add `supportSet` field to `IdealSheafData` (#23890) ESTIMATED CHANGES Modified Mathlib/AlgebraicGeometry/IdealSheaf.lean + theorem AlgebraicGeometry.Scheme.IdealSheafData.Scheme.zeroLocus_radical + def AlgebraicGeometry.Scheme.IdealSheafData.Simps.coe_support + theorem AlgebraicGeometry.Scheme.IdealSheafData.coe_support_eq_eq_iInter_zeroLocus + theorem AlgebraicGeometry.Scheme.IdealSheafData.coe_support_inter +/- def AlgebraicGeometry.Scheme.IdealSheafData.equivOfIsAffine +/- theorem AlgebraicGeometry.Scheme.IdealSheafData.gc +/- theorem AlgebraicGeometry.Scheme.IdealSheafData.ideal_inf +/- theorem AlgebraicGeometry.Scheme.IdealSheafData.ideal_top - theorem AlgebraicGeometry.Scheme.IdealSheafData.isClosed_support + theorem AlgebraicGeometry.Scheme.IdealSheafData.isClosed_supportSet + theorem AlgebraicGeometry.Scheme.IdealSheafData.mem_supportSet_iff + theorem AlgebraicGeometry.Scheme.IdealSheafData.mem_supportSet_iff_of_mem +/- theorem AlgebraicGeometry.Scheme.IdealSheafData.mem_support_iff_of_mem + def AlgebraicGeometry.Scheme.IdealSheafData.mkOfMemSupportIff +/- def AlgebraicGeometry.Scheme.IdealSheafData.ofIdealTop +/- def AlgebraicGeometry.Scheme.IdealSheafData.radical +/- theorem AlgebraicGeometry.Scheme.IdealSheafData.subset_support_iff_le_vanishingIdeal +/- def AlgebraicGeometry.Scheme.IdealSheafData.support + theorem AlgebraicGeometry.Scheme.IdealSheafData.supportSet_inter + theorem AlgebraicGeometry.Scheme.IdealSheafData.supportSet_subset_zeroLocus +/- theorem AlgebraicGeometry.Scheme.IdealSheafData.support_antitone +/- theorem AlgebraicGeometry.Scheme.IdealSheafData.support_bot + theorem AlgebraicGeometry.Scheme.IdealSheafData.support_eq_bot_iff - theorem AlgebraicGeometry.Scheme.IdealSheafData.support_eq_empty_iff - theorem AlgebraicGeometry.Scheme.IdealSheafData.support_inter - theorem AlgebraicGeometry.Scheme.IdealSheafData.support_ofIdealTop + theorem AlgebraicGeometry.Scheme.IdealSheafData.support_radical - theorem AlgebraicGeometry.Scheme.IdealSheafData.support_subset_zeroLocus +/- theorem AlgebraicGeometry.Scheme.IdealSheafData.support_top - theorem AlgebraicGeometry.Scheme.IdealSheafData.support_vanishingIdeal +/- theorem AlgebraicGeometry.Scheme.IdealSheafData.vanishingIdeal_antimono - theorem AlgebraicGeometry.Scheme.IdealSheafData.zeroLocus_inter_subset_support + theorem AlgebraicGeometry.Scheme.IdealSheafData.zeroLocus_inter_subset_supportSet + theorem AlgebraicGeometry.Scheme.support_nilradical Modified Mathlib/AlgebraicGeometry/Scheme.lean + theorem AlgebraicGeometry.Scheme.zeroLocus_radical 2025-04-22 15:18:15 c6fb6f0 feat(Order/Group/Cyclic): provide basic properties of cyclic linearly ordered commutative groups (#23725) Co-authored with @mariainesdff ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Order/Group/Cyclic.lean + theorem LinearOrderedCommGroup.Subgroup.exists_generator_lt_one + theorem LinearOrderedCommGroup.Subgroup.genLTOne_lt_one + theorem LinearOrderedCommGroup.Subgroup.genLTOne_zpowers_eq_top + theorem LinearOrderedCommGroup.genLTOne_eq_of_top 2025-04-22 15:07:49 f06bda9 chore(Topology/Algebra/ClosedSubgroup): deprecate module (#24251) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Topology/Algebra/ClosedSubgroup.lean 2025-04-22 14:35:02 b912202 feat(to_additive (reorder := ..)): reorder arguments in `Prod.pow_mk` (#24283) In #3632, to_additive gained the ability to reorder cycles of arguments. Thus `Prod.pow_mk` can now have the desired ordering of its arguments. Actually, the `(reorder := 6 7)` that was there previously was incorrect. We should employ a check that `to_additive existing` does the correct thing, such as in #21719. ESTIMATED CHANGES Modified Mathlib/Algebra/Notation/Prod.lean +/- theorem Prod.pow_mk 2025-04-22 14:20:17 be7e73e feat(Calculus/BumpFunction/SmoothApprox): new file (#24162) Reformulate theorems about density of smooth functions without measures. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/Calculus/BumpFunction/SmoothApprox.lean + theorem Continuous.exists_contDiff_dist_le_of_forall_mem_ball_dist_le + theorem ContinuousMap.dense_setOf_contDiff + theorem MeasureTheory.LocallyIntegrable.exists_contDiff_dist_le_of_forall_mem_ball_dist_le + theorem UniformContinuous.exists_contDiff_dist_le 2025-04-22 14:20:15 1eaa010 feat(Algebra): transcendence degree is well-defined (#23539) In **AlgebraicIndependent/TranscendenceBasis.lean**, we show: + The AlgebraicIndependent sets in a domain form a Matroid, which is used to show all transcendence bases have the same cardinality. Provide algebraic characterizations of the matroid notions `Indep`, `Base`, `cRank`, `Basis`, `closure`, `Flat`, and `Spanning`. + Transcendence bases are exactly algebraic independent families that are spanning (i.e. the whole algebra is algebraic over the algebra generated by the family). On the other hand, a spanning set in a domain contains a transcendence basis. + There always exists an transcendence basis between an arbitrary AlgebraicIndependent set and a spanning set in a domain. + `trdeg R S + trdeg S A = trdeg R A` in a domain, which depends on `AlgebraicIndependent/IsTranscendenceBasis.sumElim_comp`. + A finite AlgebraicIndependent family or spanning family in a domain that has the same cardinality as `trdeg` must be a transcendence basis. ESTIMATED CHANGES Modified Mathlib/FieldTheory/IsAlgClosed/Classification.lean Modified Mathlib/FieldTheory/SeparableDegree.lean Modified Mathlib/RingTheory/AlgebraicIndependent/RankAndCardinality.lean Modified Mathlib/RingTheory/AlgebraicIndependent/TranscendenceBasis.lean + theorem Algebra.IsAlgebraic.isDomain_of_adjoin_range + theorem Algebra.IsAlgebraic.isTranscendenceBasis_of_le_trdeg + theorem Algebra.IsAlgebraic.isTranscendenceBasis_of_le_trdeg_of_finite + theorem Algebra.IsAlgebraic.isTranscendenceBasis_of_lift_le_trdeg + theorem Algebra.IsAlgebraic.isTranscendenceBasis_of_lift_le_trdeg_of_finite + theorem Algebra.IsAlgebraic.trdeg_le_cardinalMk + theorem AlgebraicIndependent.isAlgebraic_adjoin_iff_of_matroid_isBasis +/- theorem AlgebraicIndependent.isTranscendenceBasis_iff + theorem AlgebraicIndependent.isTranscendenceBasis_iff_isAlgebraic + theorem AlgebraicIndependent.isTranscendenceBasis_of_lift_trdeg_le + theorem AlgebraicIndependent.isTranscendenceBasis_of_lift_trdeg_le_of_finite + theorem AlgebraicIndependent.isTranscendenceBasis_of_trdeg_le + theorem AlgebraicIndependent.isTranscendenceBasis_of_trdeg_le_of_finite + def AlgebraicIndependent.matroid + theorem AlgebraicIndependent.matroid_cRank_eq + theorem AlgebraicIndependent.matroid_closure_eq + theorem AlgebraicIndependent.matroid_closure_of_subsingleton + theorem AlgebraicIndependent.matroid_e + theorem AlgebraicIndependent.matroid_indep_iff + theorem AlgebraicIndependent.matroid_isBase_iff + theorem AlgebraicIndependent.matroid_isBasis_iff + theorem AlgebraicIndependent.matroid_isBasis_iff_of_subsingleton + theorem AlgebraicIndependent.matroid_isFlat_iff + theorem AlgebraicIndependent.matroid_isFlat_of_subsingleton + theorem AlgebraicIndependent.matroid_spanning_iff + theorem AlgebraicIndependent.matroid_spanning_iff_of_subsingleton + theorem IsTranscendenceBasis.cardinalMk_eq + theorem IsTranscendenceBasis.cardinalMk_eq_trdeg + theorem IsTranscendenceBasis.lift_cardinalMk_eq + theorem IsTranscendenceBasis.lift_cardinalMk_eq_trdeg + theorem IsTranscendenceBasis.mvPolynomial' + theorem IsTranscendenceBasis.mvPolynomial + theorem IsTranscendenceBasis.polynomial + theorem IsTranscendenceBasis.sumElim_comp + theorem MvPolynomial.trdeg_of_isDomain + theorem Polynomial.trdeg_of_isDomain +/- theorem exists_isTranscendenceBasis' +/- theorem exists_isTranscendenceBasis + theorem exists_isTranscendenceBasis_between + theorem exists_isTranscendenceBasis_subset + theorem exists_isTranscendenceBasis_superset + theorem isAlgebraic_iff_exists_isTranscendenceBasis_subset + theorem isTranscendenceBasis_iff_algebraicIndependent_isAlgebraic + theorem lift_trdeg_add_eq + theorem trdeg_add_eq + theorem trdeg_eq_iSup_cardinalMk_isTranscendenceBasis + theorem trdeg_lt_aleph0 2025-04-22 13:56:56 863a552 chore(ClusterPt): review API&names about `AccPt` (#24226) - use `accPt` instead of `acc` in lemma names; - use implicit arguments in `Iff` and dot notation lemmas; - add a few convenience lemmas. ESTIMATED CHANGES Modified Mathlib/Topology/ClusterPt.lean +/- theorem AccPt.clusterPt + theorem accPt_iff_clusterPt +/- theorem accPt_iff_frequently +/- theorem accPt_iff_nhds + theorem accPt_principal_iff_clusterPt + theorem accPt_principal_iff_nhdsWithin +/- theorem accPt_sup - theorem acc_iff_cluster - theorem acc_principal_iff_cluster + theorem clusterPt_sup Modified Mathlib/Topology/Compactness/Compact.lean Modified Mathlib/Topology/DerivedSet.lean Modified Mathlib/Topology/Perfect.lean 2025-04-22 13:17:19 3e8a665 feat(Geometry/Euclidean/Basic): make `orthogonalProjection` a continuous affine map (#23715) Change `EuclideanGeometry.orthogonalProjection` from a bundled `AffineMap` to a bundled `ContinuousAffineMap` (I think I'll end up wanting continuity for some things related to `incenter`). Note 1: I think the new import is reasonable in the context for anything much doing Euclidean geometry / using orthogonal projections, but we'll see from CI how many imports it adds. Note 2: this now means the previous `orthogonalProjection` is a `private` definition `orthogonalProjectionAux`, in order for the continuity proof using `AffineMap.continuous_linear_iff` to work. Is there a better way to refer directly to a structure projection to a parent within the `where` definition without having such an extra definition of the parent structure? I couldn't get it to work without the extra definition. Note 3: the actual motivation is to make `signedDist` a bundled continuous affine map. I've left that change to be done separately (a) to avoid conflicts with #23646 and (b) because I think it will need a few other definitions elsewhere in mathlib to be set up (not everything in the definition of `signedDist` has analogues for `ContinuousAffineMap` at present). Note 4: I think it would be a good idea to refactor orthogonal projections further so there is only *one* definition, `orthogonalProjection` set up directly as a composition of continuous affine maps (move to vector space via an arbitrary choice of base point, apply the orthogonal projection there, move back to affine space), without needing either `orthogonalProjectionFn` or `orthogonalProjectionAux` (and then `orthogonalProjectionFn` would be deprecated with a view to removal). But that composition also requires a few new definitions not currently in mathlib (including but not limited to `ContinuousAffineEquiv.vaddConst` from #22583). Since we've had `orthogonalProjectionFn` for a long time, I don't think that cleanup is particularly urgent. ESTIMATED CHANGES Modified Mathlib/Geometry/Euclidean/Basic.lean + theorem EuclideanGeometry.orthogonalProjection_contLinear Modified Mathlib/Geometry/Euclidean/Circumcenter.lean 2025-04-22 13:02:04 6c55190 feat(Deriv/Inverse): add `derivWithin_zero_of_frequently_const` (#24228) Also add versions of `HasFDerivWithinAt.eventually_ne` etc with any constant in the RHS. I'm going to use the new lemma to drop `UniqueDiffOn` assumptions in some `iteratedDerivWithin` lemmas. ESTIMATED CHANGES Modified Mathlib/Analysis/Calculus/Deriv/Inverse.lean + theorem HasDerivWithinAt.eventually_ne + theorem derivWithin_zero_of_frequently_const + theorem deriv_zero_of_frequently_const Modified Mathlib/Analysis/Calculus/FDeriv/Equiv.lean 2025-04-22 12:27:59 0205af1 feat(IntegrableOn): add 2 lemmas (#24240) ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Integral/IntegrableOn.lean + theorem MeasurableEmbedding.integrableOn_range_iff_comap + theorem MeasureTheory.integrableOn_iff_comap_subtypeVal 2025-04-22 11:54:28 7cf4690 feat: torsion-free *monoids* (#22962) Behind this click-baity title, there is the fact that `Monoid.IsTorsionFree` is incorrect for torsion-free monoids. Indeed, if `n ≠ 0` then `∀ a : α, n • a = 0 → a = 0` is equivalent to `∀ a b : α, n • a = n • b → a = b` only if `α` is a group. If `α` is a monoid (possibly even cancellative!), then the `∀ a : α, n • a = 0 → a = 0` condition is quite weak. This PR introduces this new definition under the names `IsAddTorsionFree`/`IsMulTorsionFree`. Several things to note: * It is a class, while `Monoid.IsTorsionFree` is not. * It is outside of the `Monoid`/`AddMonoid` namespace. My thought is that people who care about torsion-free groups will prefer writing `IsAddTorsionFree G` over `Monoid.IsTorsionFree`. * I am making a new file. This is because the existing definitions talk about order of an element, which is a much more advanced notion than the new one I am offering. * I am not changing the existing definition in this PR. This will be done in a later PR. The new imports just come from making `#min_imports` and `mk_iff` available earlier. From Toric ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Group/Torsion.lean + theorem pow_left_inj + theorem pow_left_injective + theorem zpow_eq_zpow_iff' + theorem zpow_left_inj + theorem zpow_left_injective Modified Mathlib/Algebra/Order/Group/Basic.lean - theorem zpow_eq_zpow_iff' - theorem zpow_left_inj - theorem zpow_left_injective Modified Mathlib/Algebra/Order/Ring/Basic.lean - theorem pow_left_inj Modified Mathlib/GroupTheory/Torsion.lean Modified Mathlib/NumberTheory/Padics/MahlerBasis.lean Modified Mathlib/RingTheory/Binomial.lean - theorem Ring.nsmul_right_inj - theorem Ring.nsmul_right_injective 2025-04-22 11:17:24 8c44a56 feat(Algebra/Homology): connecting a chain complex and a cochain complex (#22404) Given a chain complex `K`: `... ⟶ K.X 2 ⟶ K.X 1 ⟶ K.X 0`, a cochain complex `L`: `L.X 0 ⟶ L.X 1 ⟶ L.X 2 ⟶ ...`, a morphism `d₀: K.X 0 ⟶ L.X 0` satisfying the identifies `K.d 1 0 ≫ d₀ = 0` and `d₀ ≫ L.d 0 1 = 0`, we construct a cochain complex indexed by `ℤ` of the form `... ⟶ K.X 2 ⟶ K.X 1 ⟶ K.X 0 ⟶ L.X 0 ⟶ L.X 1 ⟶ L.X 2 ⟶ ...`, where `K.X 0` lies in degree `-1` and `K.X 0` in degree `0`. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Homology/Embedding/Connect.lean + def CochainComplex.ConnectData.X + theorem CochainComplex.ConnectData.X_negOne + theorem CochainComplex.ConnectData.X_negSucc + theorem CochainComplex.ConnectData.X_ofNat + theorem CochainComplex.ConnectData.X_zero + def CochainComplex.ConnectData.cochainComplex + def CochainComplex.ConnectData.d + theorem CochainComplex.ConnectData.d_comp_d + theorem CochainComplex.ConnectData.d_negSucc + theorem CochainComplex.ConnectData.d_ofNat + theorem CochainComplex.ConnectData.d_sub_one_zero + theorem CochainComplex.ConnectData.d_sub_two_sub_one + theorem CochainComplex.ConnectData.d_zero_one + theorem CochainComplex.ConnectData.shape + structure CochainComplex.ConnectData 2025-04-22 10:51:37 9b8d0f1 chore: generalize universes for (pre)sheaves of types (#22824) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Category/Pairwise.lean Modified Mathlib/Topology/Sheaves/LocalPredicate.lean + def TopCat.LocalPredicate.and + def TopCat.PrelocalPredicate.and +/- def TopCat.PrelocalPredicate.sheafify +/- theorem TopCat.PrelocalPredicate.sheafifyOf +/- def TopCat.continuousLocal +/- def TopCat.continuousPrelocal + def TopCat.isSection +/- def TopCat.sheafToTop +/- def TopCat.subpresheafContinuousPrelocalIsoPresheafToTop +/- def TopCat.subpresheafToTypes +/- def TopCat.subsheafToTypes Modified Mathlib/Topology/Sheaves/PresheafOfFunctions.lean +/- def TopCat.presheafToTop +/- theorem TopCat.presheafToTop_obj +/- def TopCat.presheafToType +/- theorem TopCat.presheafToType_map +/- theorem TopCat.presheafToType_obj +/- def TopCat.presheafToTypes +/- theorem TopCat.presheafToTypes_map +/- theorem TopCat.presheafToTypes_obj Modified Mathlib/Topology/Sheaves/SheafCondition/OpensLeCover.lean + theorem TopCat.Presheaf.IsSheaf.isSheafOpensLeCover Modified Mathlib/Topology/Sheaves/SheafCondition/PairwiseIntersections.lean + theorem TopCat.Presheaf.IsSheaf.isSheafPairwiseIntersections + theorem TopCat.Presheaf.IsSheaf.isSheafPreservesLimitPairwiseIntersections + def TopCat.Presheaf.isLimitOpensLeCoverEquivPairwise Modified Mathlib/Topology/Sheaves/SheafCondition/UniqueGluing.lean + theorem TopCat.Presheaf.IsSheaf.isSheafUniqueGluing + theorem TopCat.Presheaf.IsSheaf.isSheafUniqueGluing_types Modified Mathlib/Topology/Sheaves/SheafOfFunctions.lean +/- theorem TopCat.Presheaf.toType_isSheaf +/- theorem TopCat.Presheaf.toTypes_isSheaf +/- def TopCat.sheafToType +/- def TopCat.sheafToTypes 2025-04-22 10:34:38 e7be896 chore: use `trichotomy_of_add_eq_add` to prove `MvPowerSeries.lexOrder_mul` (#24164) ESTIMATED CHANGES Modified Mathlib/RingTheory/MvPowerSeries/LexOrder.lean Modified Mathlib/RingTheory/MvPowerSeries/NoZeroDivisors.lean 2025-04-22 10:22:03 bfbbb3d chore(Algebra): the five lemma for modules (#23496) We reprove the five lemma for modules for universe generality, avoiding the import of `Mathlib.CategoryTheory.Abelian.DiagramLemmas.Four` in otherwise non-category-theoretic files and for ease of application. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/FiveLemma.lean + theorem AddMonoidHom.bijective_of_surjective_of_bijective_of_bijective_of_injective + theorem AddMonoidHom.injective_of_surjective_of_injective_of_injective + theorem AddMonoidHom.surjective_of_surjective_of_surjective_of_injective + theorem LinearMap.bijective_of_surjective_of_bijective_of_bijective_of_injective + theorem LinearMap.injective_of_surjective_of_injective_of_injective + theorem LinearMap.surjective_of_surjective_of_surjective_of_injective 2025-04-22 09:41:25 ca01ab2 feat(CategoryTheory/Bicategory): add lemmas about mates in bicategories (#20897) Continued from #20891. This PR completes the bicategorical proofs for the lemmas whose Cat versions are provided in `Mathlib/CategoryTheory/Adjunction/Mates.lean`. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Bicategory/Adjunction/Mate.lean + def CategoryTheory.Bicategory.conjugateEquiv + theorem CategoryTheory.Bicategory.conjugateEquiv_adjunction_id + theorem CategoryTheory.Bicategory.conjugateEquiv_adjunction_id_symm + theorem CategoryTheory.Bicategory.conjugateEquiv_apply' + theorem CategoryTheory.Bicategory.conjugateEquiv_apply + theorem CategoryTheory.Bicategory.conjugateEquiv_comm + theorem CategoryTheory.Bicategory.conjugateEquiv_comp + theorem CategoryTheory.Bicategory.conjugateEquiv_id + theorem CategoryTheory.Bicategory.conjugateEquiv_mateEquiv_vcomp + theorem CategoryTheory.Bicategory.conjugateEquiv_of_iso + theorem CategoryTheory.Bicategory.conjugateEquiv_symm_apply' + theorem CategoryTheory.Bicategory.conjugateEquiv_symm_apply + theorem CategoryTheory.Bicategory.conjugateEquiv_symm_comm + theorem CategoryTheory.Bicategory.conjugateEquiv_symm_comp + theorem CategoryTheory.Bicategory.conjugateEquiv_symm_id + theorem CategoryTheory.Bicategory.conjugateEquiv_symm_of_iso + def CategoryTheory.Bicategory.conjugateIsoEquiv + theorem CategoryTheory.Bicategory.iterated_mateEquiv_conjugateEquiv + theorem CategoryTheory.Bicategory.iterated_mateEquiv_conjugateEquiv_symm + def CategoryTheory.Bicategory.leftAdjointConjugateSquare.vcomp + def CategoryTheory.Bicategory.leftAdjointSquare.comp + theorem CategoryTheory.Bicategory.leftAdjointSquare.comp_hvcomp + theorem CategoryTheory.Bicategory.leftAdjointSquare.comp_vhcomp + def CategoryTheory.Bicategory.leftAdjointSquareConjugate.vcomp + theorem CategoryTheory.Bicategory.mateEquiv_conjugateEquiv_vcomp + theorem CategoryTheory.Bicategory.mateEquiv_square + def CategoryTheory.Bicategory.rightAdjointConjugateSquare.vcomp + def CategoryTheory.Bicategory.rightAdjointSquare.comp + theorem CategoryTheory.Bicategory.rightAdjointSquare.comp_hvcomp + theorem CategoryTheory.Bicategory.rightAdjointSquare.comp_vhcomp + def CategoryTheory.Bicategory.rightAdjointSquareConjugate.vcomp 2025-04-22 08:56:59 9b43830 feat(Topology/LocalExtr): add `isLocalMinOn_univ_iff` etc (#24267) ESTIMATED CHANGES Modified Mathlib/Topology/Order/LocalExtr.lean + theorem isLocalExtrOn_univ_iff + theorem isLocalMaxOn_univ_iff + theorem isLocalMinOn_univ_iff 2025-04-22 08:56:57 4d71f1a feat: `ι →₀ R` is a finite `R`-module iff `ι` is finite (#23997) ESTIMATED CHANGES Modified Mathlib/Data/Finsupp/Single.lean + theorem Finsupp.apply_surjective Modified Mathlib/Data/Matrix/Rank.lean Modified Mathlib/LinearAlgebra/Basis/Cardinality.lean +/- theorem basis_finite_of_finite_spans + theorem finite_of_span_finite_eq_top_finsupp Modified Mathlib/LinearAlgebra/Dimension/Finite.lean + theorem Module.finite_finsupp_iff + theorem Module.finite_finsupp_self_iff Modified Mathlib/LinearAlgebra/Dimension/FreeAndStrongRankCondition.lean Modified Mathlib/LinearAlgebra/Dimension/StrongRankCondition.lean Modified Mathlib/LinearAlgebra/Finsupp/Supported.lean + theorem Finsupp.span_le_supported_biUnion_support Modified Mathlib/LinearAlgebra/Finsupp/VectorSpace.lean +/- theorem Finsupp.linearIndependent_single + theorem Finsupp.linearIndependent_single_iff + theorem Finsupp.linearIndependent_single_of_ne_zero + theorem Finsupp.linearIndependent_single_one Modified Mathlib/LinearAlgebra/StdBasis.lean + theorem Pi.linearIndependent_single_of_ne_zero Modified Mathlib/RingTheory/Finiteness/Cardinality.lean 2025-04-22 08:56:56 ef91d94 chore(Group/Pointwise/Interval): generalize some lemmas (#23857) .. from a linear ordered field to a linear ordered semifield or a group with zero. ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Group/Pointwise/Interval.lean +/- theorem Set.image_const_mul_Ioi_zero +/- theorem Set.image_mul_left_Icc' +/- theorem Set.image_mul_left_Icc + theorem Set.image_mul_left_Ici +/- theorem Set.image_mul_left_Ico + theorem Set.image_mul_left_Iic + theorem Set.image_mul_left_Iio +/- theorem Set.image_mul_left_Ioc + theorem Set.image_mul_left_Ioi +/- theorem Set.image_mul_left_Ioo +/- theorem Set.image_mul_right_Icc' +/- theorem Set.image_mul_right_Icc +/- theorem Set.image_mul_right_Ico +/- theorem Set.image_mul_right_Ioc +/- theorem Set.image_mul_right_Ioo +/- theorem Set.inv_Ioi₀ +/- theorem Set.inv_Ioo_0_left +/- theorem Set.preimage_const_mul_Icc +/- theorem Set.preimage_const_mul_Ici +/- theorem Set.preimage_const_mul_Ico +/- theorem Set.preimage_const_mul_Iic +/- theorem Set.preimage_const_mul_Iio +/- theorem Set.preimage_const_mul_Ioc +/- theorem Set.preimage_const_mul_Ioi +/- theorem Set.preimage_const_mul_Ioo +/- theorem Set.preimage_mul_const_Icc +/- theorem Set.preimage_mul_const_Ici +/- theorem Set.preimage_mul_const_Ico +/- theorem Set.preimage_mul_const_Iic +/- theorem Set.preimage_mul_const_Iio +/- theorem Set.preimage_mul_const_Ioc +/- theorem Set.preimage_mul_const_Ioi +/- theorem Set.preimage_mul_const_Ioo 2025-04-22 08:56:54 7108261 refactor(Algebra/Category/ModuleCat): generalize the universe of `ModuleCat.enoughProjectives` (#23690) Generalize the universe in the statement of `ModuleCat.enoughProjectives` and `ModuleCat.enoughInjectives`. ESTIMATED CHANGES Modified Mathlib/Algebra/Category/ModuleCat/EnoughInjectives.lean Modified Mathlib/Algebra/Category/ModuleCat/Projective.lean +/- theorem ModuleCat.projective_of_free Modified Mathlib/Algebra/Homology/LocalCohomology.lean Modified Mathlib/RepresentationTheory/GroupCohomology/Resolution.lean Modified scripts/nolints_prime_decls.txt 2025-04-22 08:35:30 a6df961 feat(Compact): add `IsCompact.exists_clusterPt_of_frequently` (#24269) ESTIMATED CHANGES Modified Mathlib/Topology/Compactness/Compact.lean + theorem IsCompact.exists_clusterPt_of_frequently + theorem IsCompact.exists_mapClusterPt_of_frequently 2025-04-22 08:04:37 15c5f50 feat(OuterMeasure.Induced): add `OuterMeasure.null_of_trim_null` (#24270) ESTIMATED CHANGES Modified Mathlib/MeasureTheory/OuterMeasure/Induced.lean + theorem MeasureTheory.OuterMeasure.null_of_trim_null 2025-04-22 08:04:36 60b8d5d feat(MeasureTheory): `tendsto_iff_forall_integral_rclike_tendsto` (#23988) Add variants of `tendsto_iff_forall_integral_tendsto` for finite measures and probability measures, where the integral is over functions with value in an RCLike type instead of Real. ESTIMATED CHANGES Modified Mathlib/Analysis/Complex/Basic.lean + theorem Filter.tendsto_ofReal_iff' + theorem RCLike.isUniformEmbedding_ofReal Modified Mathlib/Analysis/RCLike/Basic.lean + theorem RCLike.lipschitzWith_im + theorem RCLike.lipschitzWith_re Modified Mathlib/MeasureTheory/Measure/FiniteMeasure.lean + theorem MeasureTheory.FiniteMeasure.tendsto_iff_forall_integral_rclike_tendsto Modified Mathlib/MeasureTheory/Measure/ProbabilityMeasure.lean + theorem MeasureTheory.ProbabilityMeasure.tendsto_iff_forall_integral_rclike_tendsto 2025-04-22 08:04:34 12d3579 feat: Peano form of Taylor's theorem (#23918) ESTIMATED CHANGES Modified Mathlib/Analysis/Calculus/MeanValue.lean + theorem Convex.isLittleO_pow_succ + theorem Convex.isLittleO_pow_succ_real Modified Mathlib/Analysis/Calculus/Taylor.lean + theorem Real.taylor_tendsto + theorem hasDerivAt_taylorWithinEval_succ + theorem taylor_isLittleO + theorem taylor_tendsto Modified Mathlib/Analysis/Convex/Topology.lean + theorem Convex.nontrivial_iff_nonempty_interior Modified Mathlib/Analysis/Normed/Module/Convex.lean + theorem norm_sub_le_of_mem_segment Modified Mathlib/Topology/Algebra/Module/LocallyConvex.lean + theorem Convex.eventually_nhdsWithin_segment 2025-04-22 08:04:33 df8d984 feat(CategoryTheory/Abelian): Ext^0 and Ext-groups when there are enough projectives (#19591) Let `C : Type u` be an abelian category (`Category.{v} C`). We deduce from #19585 that `Ext X Y 0` identifies to the type of morphisms from `X` to `Y`. Moreover, assuming that `C` has enough projectives and is locally `w`-small, i.e. the type of morphisms in `C` are `Small.{w}`, we show that the condition `HasExt.{w}` holds, which means that for `X` and `Y` in `C`, and `n : ℕ`, we may define `Ext X Y n : Type w`. In particular, this holds for `w = v`. This is an important step in order to get a reasonably usable API for Ext-groups. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Homology/DerivedCategory/Basic.lean Modified Mathlib/Algebra/Homology/DerivedCategory/Ext/Basic.lean + theorem CategoryTheory.Abelian.Ext.mk₀_add + theorem CategoryTheory.Abelian.Ext.mk₀_addEquiv₀_apply + theorem CategoryTheory.Abelian.Ext.mk₀_bijective + theorem CategoryTheory.Abelian.Ext.mk₀_homEquiv₀_apply + theorem CategoryTheory.hasExt_iff_small_ext Added Mathlib/Algebra/Homology/DerivedCategory/Ext/EnoughProjectives.lean + theorem CategoryTheory.Abelian.Ext.eq_zero_of_projective + theorem CategoryTheory.hasExt_of_enoughProjectives + theorem CochainComplex.isSplitEpi_to_singleFunctor_obj_of_projective + theorem DerivedCategory.from_singleFunctor_obj_projective_eq_zero Modified Mathlib/Algebra/Homology/DerivedCategory/Fractions.lean + theorem DerivedCategory.subsingleton_hom_of_isStrictlyLE_of_isStrictlyGE Modified Mathlib/Algebra/Homology/Embedding/CochainComplex.lean Modified Mathlib/CategoryTheory/Abelian/Projective/Dimension.lean +/- theorem CategoryTheory.ShortComplex.ShortExact.hasProjectiveDimensionLT_X₃_iff 2025-04-22 07:47:12 e2097b8 feat(Analysis/Convex): add `Convex.midpoint_mem` (#24268) Also generalize TC assumptions in a lemma ESTIMATED CHANGES Modified Mathlib/Analysis/Convex/Basic.lean + theorem Convex.midpoint_mem 2025-04-22 07:47:11 1ab4cd0 chore(Measure): drop some assumptions (#23714) Add `prod_apply_le`/`prod_prod_le` and use them to drop `SFinite _` assumptions here and there. ESTIMATED CHANGES Modified Mathlib/Analysis/Convolution.lean Modified Mathlib/Analysis/Fourier/FourierTransform.lean Modified Mathlib/MeasureTheory/Integral/Pi.lean +/- theorem MeasureTheory.Integrable.fin_nat_prod +/- theorem MeasureTheory.Integrable.fintype_prod +/- theorem MeasureTheory.Integrable.fintype_prod_dep Modified Mathlib/MeasureTheory/Integral/Prod.lean +/- theorem MeasureTheory.AEStronglyMeasurable.fst +/- theorem MeasureTheory.AEStronglyMeasurable.snd + theorem MeasureTheory.Integrable.mul_prod + theorem MeasureTheory.Integrable.op_fst_snd - theorem MeasureTheory.Integrable.prod_mul - theorem MeasureTheory.Integrable.prod_smul + theorem MeasureTheory.Integrable.smul_prod Modified Mathlib/MeasureTheory/Measure/Prod.lean +/- theorem AEMeasurable.fst +/- theorem AEMeasurable.snd + theorem MeasureTheory.Measure.measure_prod_null_of_ae_null + theorem MeasureTheory.Measure.prod_apply_le + theorem MeasureTheory.Measure.prod_prod_le + theorem MeasureTheory.NullMeasurable.comp_fst + theorem MeasureTheory.NullMeasurable.comp_snd + theorem MeasureTheory.lintegral_prod_le Modified Mathlib/MeasureTheory/Measure/QuasiMeasurePreserving.lean + theorem MeasureTheory.NullMeasurable.comp_quasiMeasurePreserving 2025-04-22 07:21:31 c6bd635 chore: rename `orthogonalProjection` to `Submodule.orthogonalProjection` (#24247) This PR puts `orthogonalProjection`, `HasOrthogonalProjection` and `reflection` in the `Submodule` namespace. This allows us to use dot-notation with these definitions. It also removes the name ambiguity with `EuclideanGeometry.orthogonalProjection` and `EuclideanGeometry.reflection`. Those can be moved to the `AffineSubspace` namespace in a future PR. As discussed here: [#lean4 > overloaded names can slow down elaboration](https://leanprover.zulipchat.com/#narrow/channel/270676-lean4/topic/overloaded.20names.20can.20slow.20down.20elaboration) Moves: - orthogonalProjection -> Submodule.orthogonalProjection - HasOrthogonalProjection -> Submodule.HasOrthogonalProjection - reflection -> Submodule.reflection The definitions and many lemmas related to these have also been moved into the `Submodule` namespace. ESTIMATED CHANGES Modified Mathlib/Analysis/InnerProductSpace/Adjoint.lean Modified Mathlib/Analysis/InnerProductSpace/GramSchmidtOrtho.lean Modified Mathlib/Analysis/InnerProductSpace/MeanErgodic.lean Modified Mathlib/Analysis/InnerProductSpace/PiL2.lean Modified Mathlib/Analysis/InnerProductSpace/Positive.lean Modified Mathlib/Analysis/InnerProductSpace/Projection.lean +/- theorem LinearIsometry.map_orthogonalProjection' +/- theorem LinearIsometry.map_orthogonalProjection +/- theorem Submodule.IsOrtho.orthogonalProjection_comp_subtypeL + theorem Submodule.det_reflection + theorem Submodule.eq_orthogonalProjectionFn_of_mem_of_inner_eq_zero + theorem Submodule.eq_orthogonalProjection_of_eq_submodule + theorem Submodule.eq_orthogonalProjection_of_mem_of_inner_eq_zero + theorem Submodule.eq_orthogonalProjection_of_mem_orthogonal' + theorem Submodule.eq_orthogonalProjection_of_mem_orthogonal +/- theorem Submodule.exists_add_mem_mem_orthogonal + theorem Submodule.exists_norm_eq_iInf_of_complete_subspace +/- theorem Submodule.finrank_add_finrank_orthogonal' +/- theorem Submodule.finrank_add_finrank_orthogonal +/- theorem Submodule.finrank_add_inf_finrank_orthogonal' +/- theorem Submodule.finrank_add_inf_finrank_orthogonal + theorem Submodule.finrank_orthogonal_span_singleton + theorem Submodule.id_eq_sum_orthogonalProjection_self_orthogonalComplement + theorem Submodule.inner_orthogonalProjection_eq_of_mem_left + theorem Submodule.inner_orthogonalProjection_eq_of_mem_right + theorem Submodule.inner_orthogonalProjection_left_eq_right +/- theorem Submodule.isCompl_orthogonal_of_completeSpace + theorem Submodule.ker_orthogonalProjection + theorem Submodule.linearEquiv_det_reflection + theorem Submodule.norm_eq_iInf_iff_inner_eq_zero + theorem Submodule.norm_eq_iInf_iff_real_inner_eq_zero + theorem Submodule.norm_sq_eq_add_norm_sq_projection + theorem Submodule.orthogonalComplement_eq_orthogonalComplement + def Submodule.orthogonalProjection + def Submodule.orthogonalProjectionFn + theorem Submodule.orthogonalProjectionFn_eq + theorem Submodule.orthogonalProjectionFn_inner_eq_zero + theorem Submodule.orthogonalProjectionFn_mem + theorem Submodule.orthogonalProjectionFn_norm_sq + theorem Submodule.orthogonalProjection_add_orthogonalProjection_orthogonal + theorem Submodule.orthogonalProjection_bot + theorem Submodule.orthogonalProjection_coe_linearMap_eq_linearProj + theorem Submodule.orthogonalProjection_comp_subtypeL_eq_zero_iff + theorem Submodule.orthogonalProjection_eq_linear_proj + theorem Submodule.orthogonalProjection_eq_self_iff + theorem Submodule.orthogonalProjection_eq_zero_iff + theorem Submodule.orthogonalProjection_inner_eq_zero + theorem Submodule.orthogonalProjection_isSymmetric + theorem Submodule.orthogonalProjection_map_apply + theorem Submodule.orthogonalProjection_mem_subspace_eq_self + theorem Submodule.orthogonalProjection_mem_subspace_orthogonalComplement_eq_zero + theorem Submodule.orthogonalProjection_mem_subspace_orthogonal_precomplement_eq_zero + theorem Submodule.orthogonalProjection_minimal + theorem Submodule.orthogonalProjection_norm_le + theorem Submodule.orthogonalProjection_orthogonal + theorem Submodule.orthogonalProjection_orthogonalComplement_singleton_eq_zero + theorem Submodule.orthogonalProjection_orthogonalProjection_of_le + theorem Submodule.orthogonalProjection_orthogonal_val + theorem Submodule.orthogonalProjection_singleton + theorem Submodule.orthogonalProjection_tendsto_closure_iSup + theorem Submodule.orthogonalProjection_tendsto_self + theorem Submodule.orthogonalProjection_unit_singleton +/- theorem Submodule.orthogonal_eq_bot_iff +/- theorem Submodule.orthogonal_orthogonal +/- theorem Submodule.orthogonal_orthogonal_eq_closure + def Submodule.reflection + def Submodule.reflectionLinearEquiv + theorem Submodule.reflection_apply + theorem Submodule.reflection_bot + theorem Submodule.reflection_eq_self_iff + theorem Submodule.reflection_inv + theorem Submodule.reflection_involutive + theorem Submodule.reflection_map + theorem Submodule.reflection_map_apply + theorem Submodule.reflection_mem_subspace_eq_self + theorem Submodule.reflection_mem_subspace_orthogonalComplement_eq_neg + theorem Submodule.reflection_mem_subspace_orthogonal_precomplement_eq_neg + theorem Submodule.reflection_mul_reflection + theorem Submodule.reflection_orthogonal + theorem Submodule.reflection_orthogonalComplement_singleton_eq_neg + theorem Submodule.reflection_orthogonal_apply + theorem Submodule.reflection_reflection + theorem Submodule.reflection_singleton_apply + theorem Submodule.reflection_sub + theorem Submodule.reflection_symm + theorem Submodule.reflection_trans_reflection + theorem Submodule.smul_orthogonalProjection_singleton + theorem Submodule.sub_orthogonalProjection_mem_orthogonal +/- theorem Submodule.sup_orthogonal_inf_of_completeSpace +/- theorem Submodule.sup_orthogonal_of_completeSpace +/- theorem Submodule.topologicalClosure_eq_top_iff +/- theorem Submodule.triorthogonal_eq_orthogonal - theorem det_reflection - theorem eq_orthogonalProjectionFn_of_mem_of_inner_eq_zero - theorem eq_orthogonalProjection_of_eq_submodule - theorem eq_orthogonalProjection_of_mem_of_inner_eq_zero - theorem eq_orthogonalProjection_of_mem_orthogonal' - theorem eq_orthogonalProjection_of_mem_orthogonal - theorem exists_norm_eq_iInf_of_complete_subspace - theorem finrank_orthogonal_span_singleton - theorem id_eq_sum_orthogonalProjection_self_orthogonalComplement - theorem inner_orthogonalProjection_eq_of_mem_left - theorem inner_orthogonalProjection_eq_of_mem_right - theorem inner_orthogonalProjection_left_eq_right - theorem ker_orthogonalProjection - theorem linearEquiv_det_reflection - theorem norm_eq_iInf_iff_inner_eq_zero - theorem norm_eq_iInf_iff_real_inner_eq_zero - theorem norm_sq_eq_add_norm_sq_projection - theorem orthogonalComplement_eq_orthogonalComplement - def orthogonalProjection - def orthogonalProjectionFn - theorem orthogonalProjectionFn_eq - theorem orthogonalProjectionFn_inner_eq_zero - theorem orthogonalProjectionFn_mem - theorem orthogonalProjectionFn_norm_sq - theorem orthogonalProjection_add_orthogonalProjection_orthogonal - theorem orthogonalProjection_bot - theorem orthogonalProjection_coe_linearMap_eq_linearProj - theorem orthogonalProjection_comp_subtypeL_eq_zero_iff - theorem orthogonalProjection_eq_linear_proj - theorem orthogonalProjection_eq_self_iff - theorem orthogonalProjection_eq_zero_iff - theorem orthogonalProjection_inner_eq_zero - theorem orthogonalProjection_isSymmetric - theorem orthogonalProjection_map_apply - theorem orthogonalProjection_mem_subspace_eq_self - theorem orthogonalProjection_mem_subspace_orthogonalComplement_eq_zero - theorem orthogonalProjection_mem_subspace_orthogonal_precomplement_eq_zero - theorem orthogonalProjection_minimal - theorem orthogonalProjection_norm_le - theorem orthogonalProjection_orthogonal - theorem orthogonalProjection_orthogonalComplement_singleton_eq_zero - theorem orthogonalProjection_orthogonalProjection_of_le - theorem orthogonalProjection_orthogonal_val - theorem orthogonalProjection_singleton - theorem orthogonalProjection_tendsto_closure_iSup - theorem orthogonalProjection_tendsto_self - theorem orthogonalProjection_unit_singleton - def reflection - def reflectionLinearEquiv - theorem reflection_apply - theorem reflection_bot - theorem reflection_eq_self_iff - theorem reflection_inv - theorem reflection_involutive - theorem reflection_map - theorem reflection_map_apply - theorem reflection_mem_subspace_eq_self - theorem reflection_mem_subspace_orthogonalComplement_eq_neg - theorem reflection_mem_subspace_orthogonal_precomplement_eq_neg - theorem reflection_mul_reflection - theorem reflection_orthogonal - theorem reflection_orthogonalComplement_singleton_eq_neg - theorem reflection_orthogonal_apply - theorem reflection_reflection - theorem reflection_singleton_apply - theorem reflection_sub - theorem reflection_symm - theorem reflection_trans_reflection - theorem smul_orthogonalProjection_singleton - theorem sub_orthogonalProjection_mem_orthogonal Modified Mathlib/Analysis/InnerProductSpace/Spectrum.lean Modified Mathlib/Analysis/InnerProductSpace/l2Space.lean Modified Mathlib/Geometry/Euclidean/Basic.lean +/- theorem EuclideanGeometry.dist_reflection +/- def EuclideanGeometry.reflection +/- theorem EuclideanGeometry.reflection_apply Modified Mathlib/Geometry/Euclidean/Circumcenter.lean Modified Mathlib/Geometry/Euclidean/Inversion/Calculus.lean Modified Mathlib/Geometry/Euclidean/SignedDist.lean Modified Mathlib/Geometry/Manifold/Instances/Sphere.lean Modified Mathlib/MeasureTheory/Function/ConditionalExpectation/CondexpL2.lean Modified docs/overview.yaml Modified docs/undergrad.yaml 2025-04-22 05:41:57 4724f11 feat(Analysis/SpecialFunctions): multipliability lemmas (#23768) Prove that in any complete normed ring, a product `∏' i, (1 + f i)` is convergent if the sum of real numbers `∑' i, ‖f i‖` is convergent. As part of this, move some lemmas about summability of logs out of `SpecialFunctions.Log` to `Log.Summable` and rework results in the latter file to minimize non-vanishing / positivity conditions. ESTIMATED CHANGES Modified Mathlib/Analysis/SpecialFunctions/Complex/Log.lean - theorem Complex.cexp_tsum_eq_tprod - theorem Complex.hasProd_of_hasSum_log - theorem Complex.multipliable_of_summable_log - theorem Real.hasProd_of_hasSum_log - theorem Real.multipliable_of_summable_log - theorem Real.rexp_tsum_eq_tprod Modified Mathlib/Analysis/SpecialFunctions/Log/Summable.lean + theorem Complex.cexp_tsum_eq_tprod + theorem Complex.hasProd_of_hasSum_log + theorem Complex.multipliable_of_summable_log +/- theorem Complex.multipliable_one_add_of_summable +/- theorem Complex.summable_log_one_add_of_summable + theorem Finset.norm_prod_one_add_sub_one_le + theorem Multipliable.eventually_bounded_finset_prod + theorem Real.hasProd_of_hasSum_log + theorem Real.multipliable_of_summable_log' + theorem Real.multipliable_of_summable_log +/- theorem Real.multipliable_one_add_of_summable + theorem Real.rexp_tsum_eq_tprod +/- theorem Real.summable_log_one_add_of_summable + theorem multipliable_norm_one_add_of_summable_norm + theorem multipliable_one_add_of_summable + theorem prod_vanishing_of_summable_norm 2025-04-21 23:31:04 2697960 feat: add versions of the Lebesgue number lemma (#22890) Add versions of the Lebesgue number lemma, for coverings by neighborhoods rather than by open subsets (in `Topology/UniformSpace/Compact.lean`). Add specializations of the Lebesgue number lemma for extended metric spaces (in `Topology/EMetricSpace/Basic.lean`). ESTIMATED CHANGES Modified Mathlib/Topology/EMetricSpace/Basic.lean + theorem lebesgue_number_lemma_of_emetric + theorem lebesgue_number_lemma_of_emetric_nhds' + theorem lebesgue_number_lemma_of_emetric_nhds + theorem lebesgue_number_lemma_of_emetric_nhdsWithin' + theorem lebesgue_number_lemma_of_emetric_nhdsWithin + theorem lebesgue_number_lemma_of_emetric_sUnion Modified Mathlib/Topology/UniformSpace/Compact.lean + theorem lebesgue_number_lemma_nhds' + theorem lebesgue_number_lemma_nhds + theorem lebesgue_number_lemma_nhdsWithin' + theorem lebesgue_number_lemma_nhdsWithin 2025-04-21 22:11:29 b983065 chore(Closeds): rename the structure field (#24234) That way, it matches the naming convention. From Toric ESTIMATED CHANGES Modified Mathlib/Topology/MetricSpace/Closeds.lean Modified Mathlib/Topology/Sets/Closeds.lean - theorem TopologicalSpace.Closeds.closed + theorem TopologicalSpace.Closeds.isClosed 2025-04-21 21:51:55 56e3756 chore: move `ClosedSubgroup` under `Topology.Algebra.Group` (#24233) And add a TODO From Toric ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/FieldTheory/Galois/Infinite.lean Modified Mathlib/Topology/Algebra/Category/ProfiniteGrp/Basic.lean Modified Mathlib/Topology/Algebra/ClopenNhdofOne.lean Renamed Mathlib/Topology/Algebra/ClosedSubgroup.lean to Mathlib/Topology/Algebra/Group/ClosedSubgroup.lean Modified Mathlib/Topology/Algebra/Ring/Compact.lean 2025-04-21 19:32:57 e5d2bf8 feat(AlgebraicGeometry): `ChosenFiniteProduct` over a general base (#24194) From Toric ESTIMATED CHANGES Modified Mathlib/AlgebraicGeometry/Pullbacks.lean 2025-04-21 18:16:34 3299810 chore(CategoryTheory/Whiskering): more lemmas about `isoWhisker` (#24252) Duplicate some of the `whiskerLeft`/`whiskerRight` lemmas for `isoWhiskerLeft`/`isoWhiskerRight`. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Whiskering.lean + theorem CategoryTheory.Functor.pentagonIso + theorem CategoryTheory.Functor.triangleIso + theorem CategoryTheory.isoWhiskerLeft_refl + theorem CategoryTheory.isoWhiskerLeft_right + theorem CategoryTheory.isoWhiskerLeft_symm + theorem CategoryTheory.isoWhiskerLeft_trans + theorem CategoryTheory.isoWhiskerLeft_trans_isoWhiskerRight + theorem CategoryTheory.isoWhiskerLeft_twice + theorem CategoryTheory.isoWhiskerRight_left + theorem CategoryTheory.isoWhiskerRight_refl + theorem CategoryTheory.isoWhiskerRight_symm + theorem CategoryTheory.isoWhiskerRight_trans + theorem CategoryTheory.isoWhiskerRight_twice 2025-04-21 16:29:37 f88a1f1 feat(Combinatorics/SimpleGraph/Prod): add edist lemmas about graph box product (#23385) This PR adds some basic lemmas about metric aspects of box products. In particular, it adds: a lemma stating that `(G □ H).edist x y = G.edist x.1 y.1 + H.edist x.2 y.2`, and a couple of auxiliary facts to prove it. ESTIMATED CHANGES Modified Mathlib/Combinatorics/SimpleGraph/Prod.lean + theorem SimpleGraph.Walk.length_boxProd + theorem SimpleGraph.boxProd_edist + theorem SimpleGraph.boxProd_reachable 2025-04-21 15:04:22 0c3e3bc feat(Shake): autodetect the module(s) to shake (#24255) There were still a few references to Mathlib in shake, in particular it had Mathlib hardcoded as the default module to shake. Instead ask Lake what the default targets are. This is a back(?)port of https://github.com/leanprover-community/batteries/pull/1205. These changes themselves should probably be merged anyway, and do not depend on which repository shake ends up in. (Also remove a reference to Mathlib from the help text. We still have Mathlib as an example usage, which I think is innocent enough and can stay.) ESTIMATED CHANGES Modified Shake/Main.lean +/- def help 2025-04-21 14:54:22 d61e6da feat(AlgebraicTopology/SimplexCategory/GeneratorsRelations/NormalForms): admissible lists and simplicial insertion (#21744) We introduce the notion of an `m`-admissible list of natural number: a list `[i₀,…,iₙ]` is said to be `m`-admissible if `iₖ ≤ m + k` for all valid index `k`. These lists are intended to uniquely represents either `P_σ` or `P_δ` morphisms in `SimplexCategoryGenRel`. We prove basic stability of such lists under some lists operation such as the tail. We also introduce the notion of simplicial insertion, which is intended to be the algorithm on such normal forms representing composition on the right (for `P_σ` morphisms) or on the left (for `P_δ` morphisms) by a single morphism, and we prove that this preserves admissibility. Part of a series of PR formalising that `SimplexCategoryGenRel` is equivalent to `SimplexCategory`. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/AlgebraicTopology/SimplexCategory/GeneratorsRelations/NormalForms.lean + theorem SimplexCategoryGenRel.IsAdmissible.cons + def SimplexCategoryGenRel.IsAdmissible.getElemAsFin + def SimplexCategoryGenRel.IsAdmissible.head + theorem SimplexCategoryGenRel.IsAdmissible.head_lt + theorem SimplexCategoryGenRel.IsAdmissible.le + theorem SimplexCategoryGenRel.IsAdmissible.nil + theorem SimplexCategoryGenRel.IsAdmissible.sorted + theorem SimplexCategoryGenRel.IsAdmissible.tail + def SimplexCategoryGenRel.IsAdmissible + def SimplexCategoryGenRel.simplicialInsert + theorem SimplexCategoryGenRel.simplicialInsert_isAdmissible + theorem SimplexCategoryGenRel.simplicialInsert_length 2025-04-21 14:18:38 e27cc89 feat(CategoryTheory/Join): finality/initiality of the inclusions (#23414) We prove that whenever `C` is connected, the inclusion `C ⥤ C ⋆ D` is `Initial`. Dually, when `D` is connected, the inclusion `inclRight C D` is `Final`. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Join/Final.lean + def CategoryTheory.Join.costructuredArrowEquiv + def CategoryTheory.Join.structuredArrowEquiv 2025-04-21 11:55:39 9da3d90 feat(LinearAlgebra/RootSystem): Characterize root system invariant submodules in terms of roots (#23945) Characterize root system invariant submodules in terms of roots ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/Dual/Lemmas.lean + theorem Submodule.dualCoannihilator_top - theorem Subspace.dualCoannihilator_top Modified Mathlib/LinearAlgebra/Reflection.lean + theorem Submodule.mem_invtSubmodule_reflection_iff Modified Mathlib/LinearAlgebra/RootSystem/Defs.lean - theorem RootPairing.coe_corootSpan_dualAnnihilator_map - theorem RootPairing.coe_rootSpan_dualAnnihilator_map + theorem RootPairing.corootSpan_dualAnnihilator_map_eq_iInf_ker_coroot' + theorem RootPairing.corootSpan_map_toDualRight + theorem RootPairing.iInf_ker_coroot'_eq + theorem RootPairing.iInf_ker_root'_eq + theorem RootPairing.rootSpan_dualAnnihilator_map_eq_iInf_ker_root' + theorem RootPairing.rootSpan_map_toDualLeft + theorem RootPairing.span_coroot'_eq_top + theorem RootPairing.span_root'_eq_top + theorem RootPairing.toDualLeft_comp_root + theorem RootPairing.toDualRight_comp_root Modified Mathlib/LinearAlgebra/RootSystem/Finite/CanonicalBilinear.lean Modified Mathlib/LinearAlgebra/RootSystem/Irreducible.lean + theorem RootPairing.exist_set_root_not_disjoint_and_le_ker_coroot'_of_invtSubmodule + theorem RootSystem.eq_top_of_mem_invtSubmodule_of_forall_eq_univ 2025-04-21 11:48:51 a76a6a3 chore(Probability/Distributions): remove `open Classical ...` from `toMeasure_uniformOfFintype_apply` (#24074) Remove `open scoped Classical in` in front of the `toOuterMeasure_uniformOfFintype_apply` and `toMeasure_uniformOfFintype_apply` theorems ESTIMATED CHANGES Modified Mathlib/Probability/Distributions/Uniform.lean +/- theorem PMF.toMeasure_uniformOfFintype_apply +/- theorem PMF.toOuterMeasure_uniformOfFintype_apply 2025-04-21 11:07:59 71121dc feat: modify Urysohn's lemma to let `P` depend on `U` (#24179) Modifies Urysohn's lemma to let `P`, the additional property satisfied by the closed set, to also depend on the open set. This is needed for #24096, where it is used to prove that uniform spaces are completely regular, and `P` says that some entourage in the uniformity, when composed with the closed set on both sides, is smaller than the open set. ESTIMATED CHANGES Modified Mathlib/Topology/UrysohnsLemma.lean +/- structure Urysohns.CU 2025-04-21 10:48:19 6f8a347 refactor(FieldTheory/IntermediateField): remove instance `IntermediateField.instCoeOutSubtypeMem` (#24182) Zulip discussion: [Working with intermediate fields of intermediate fields](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/.E2.9C.94.20Working.20with.20intermediate.20fields.20of.20intermediate.20fields) ESTIMATED CHANGES Modified Mathlib/FieldTheory/Galois/Infinite.lean Modified Mathlib/FieldTheory/Galois/Profinite.lean Modified Mathlib/FieldTheory/IntermediateField/Basic.lean 2025-04-21 06:29:41 2002920 feat: don't delaborate to `⊔` or `⊓` if we have a `LinearOrder` (#23558) This PR changes the `⊔` and `⊓` notations to only be used by the delaborator if the type in question is not a linear order. This was suggested here [#mathlib4 > max and min delaborators @ 💬](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/max.20and.20min.20delaborators/near/500701449) ESTIMATED CHANGES Modified Mathlib/Lean/PrettyPrinter/Delaborator.lean + def Lean.PrettyPrinter.Delaborator.annotateGoToDef + def Lean.PrettyPrinter.Delaborator.annotateGoToSyntaxDef Modified Mathlib/Order/Notation.lean + def Mathlib.Meta.delabInf + def Mathlib.Meta.delabSup Added MathlibTest/Delab/SupInf.lean 2025-04-21 05:40:07 72dd74b feat(Data/Set/Card): add powerset cardinality formula (#23811) ESTIMATED CHANGES Modified Mathlib/Data/Set/Card.lean + theorem Set.ncard_powerset 2025-04-20 13:51:57 dc4f49f feat(ContinuousFunctionalCalculus): `cfc` applied to products and pi types (#24013) This PR shows that `cfc f ⟨a, b⟩ = ⟨cfc f a, cfc f b⟩` and `cfc f (x : ∀ i, A i) = fun i => cfc f (x i)` and likewise for the non-unital case. Specialized version for `nnrpow`, `rpow` and `sqrt` are also given. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Star/StarAlgHom.lean + def Pi.evalNonUnitalStarAlgHom + def Pi.evalStarAlgHom Added Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Pi.lean + theorem cfc_map_pi + theorem cfc_map_prod + theorem cfcₙ_map_pi + theorem cfcₙ_map_prod Modified Mathlib/Analysis/SpecialFunctions/ContinuousFunctionalCalculus/Rpow/Basic.lean + theorem CFC.nnrpow_eq_nnrpow_pi + theorem CFC.nnrpow_eq_nnrpow_prod + theorem CFC.nnrpow_map_pi + theorem CFC.nnrpow_map_prod + theorem CFC.rpow_eq_rpow_pi + theorem CFC.rpow_eq_rpow_rpod + theorem CFC.rpow_map_pi + theorem CFC.rpow_map_prod + theorem CFC.sqrt_map_pi + theorem CFC.sqrt_map_prod 2025-04-20 13:17:21 f32ecca feat: canonical tensors in inner product spaces (#22163) Given an `InnerProductSpace ℝ E`, this file defines two canonical tensors. * `InnerProductSpace.canonicalContravariantTensor E : E ⊗[ℝ] E →ₗ[ℝ] ℝ`. This is the element corresponding to the inner product. * If `E` is finite-dimensional, then `E ⊗[ℝ] E` is canonically isomorphic to its dual. Accordingly, there exists an element `InnerProductSpace.canonicalCovariantTensor E : E ⊗[ℝ] E` corresponding to `InnerProductSpace.canonicalContravariantTensor E` under this identification. This material is used in [Project VD](https://github.com/kebekus/ProjectVD), which aims to formalize Value Distribution Theory for meromorphic functions on the complex plane. The canonical tensors are useful for defining the Laplace operator on inner product spaces in a coordinate-free way. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/InnerProductSpace/CanonicalTensor.lean + theorem InnerProductSpace.canonicalCovariantTensor_eq_sum 2025-04-20 11:58:52 51b4a8d chore: replace `(mu s).toReal` with `mu.real s`, when `mu` is a measure, throughout the library (#24204) Also * add a minimal additional API to `Measure.real` when it helps streamline proofs * rename (and deprecate) a few lemmas when the change impacts their name * Move the definition of `Measure.real` to `MeasureSpaceDefs` to make sure that imports remain reasonable ESTIMATED CHANGES Modified Archive/Wiedijk100Theorems/BuffonsNeedle.lean Modified Counterexamples/Phillips.lean Modified Mathlib/Algebra/Module/ZLattice/Basic.lean + theorem ZSpan.measureReal_fundamentalDomain + theorem ZSpan.volume_real_fundamentalDomain Modified Mathlib/Algebra/Module/ZLattice/Covolume.lean - theorem ZLattice.covolume_eq_det_mul_measure + theorem ZLattice.covolume_eq_det_mul_measureReal Modified Mathlib/Analysis/BoxIntegral/Basic.lean Modified Mathlib/Analysis/BoxIntegral/DivergenceTheorem.lean Modified Mathlib/Analysis/BoxIntegral/Integrability.lean Modified Mathlib/Analysis/BoxIntegral/Partition/Measure.lean Modified Mathlib/Analysis/BoxIntegral/UnitPartition.lean Modified Mathlib/Analysis/Calculus/BumpFunction/Convolution.lean Modified Mathlib/Analysis/Calculus/BumpFunction/Normed.lean +/- theorem ContDiffBump.integral_le_measure_closedBall +/- theorem ContDiffBump.measure_closedBall_le_integral Modified Mathlib/Analysis/Convex/Integral.lean Modified Mathlib/Analysis/Fourier/AddCircle.lean Modified Mathlib/Analysis/Fourier/AddCircleMulti.lean Modified Mathlib/Analysis/Fourier/ZMod.lean Modified Mathlib/Analysis/ODE/PicardLindelof.lean Modified Mathlib/Analysis/SpecialFunctions/Gaussian/GaussianIntegral.lean Modified Mathlib/Analysis/SpecialFunctions/MulExpNegMulSqIntegral.lean Modified Mathlib/Analysis/SpecialFunctions/NonIntegrable.lean Modified Mathlib/Dynamics/Ergodic/MeasurePreserving.lean + theorem MeasureTheory.MeasurePreserving.measureReal_preimage Modified Mathlib/InformationTheory/KullbackLeibler/Basic.lean Modified Mathlib/InformationTheory/KullbackLeibler/KLFun.lean Modified Mathlib/MeasureTheory/Constructions/HaarToSphere.lean + theorem MeasureTheory.Measure.toSphere_real_apply_univ Modified Mathlib/MeasureTheory/Covering/Differentiation.lean Modified Mathlib/MeasureTheory/Function/AEEqOfIntegral.lean Modified Mathlib/MeasureTheory/Function/ConditionalExpectation/Basic.lean Modified Mathlib/MeasureTheory/Function/ConditionalExpectation/CondexpL1.lean +/- theorem MeasureTheory.norm_condExpIndL1_le +/- theorem MeasureTheory.norm_condExpInd_apply_le +/- theorem MeasureTheory.norm_condExpInd_le Modified Mathlib/MeasureTheory/Function/ConditionalExpectation/CondexpL2.lean Modified Mathlib/MeasureTheory/Function/ConditionalExpectation/Real.lean Modified Mathlib/MeasureTheory/Function/LpSpace/Indicator.lean +/- theorem MeasureTheory.Lp.norm_const_le Modified Mathlib/MeasureTheory/Integral/Asymptotics.lean Modified Mathlib/MeasureTheory/Integral/Average.lean +/- theorem MeasureTheory.average_eq Modified Mathlib/MeasureTheory/Integral/Bochner/Basic.lean +/- theorem MeasureTheory.integral_const +/- theorem MeasureTheory.integral_unique Modified Mathlib/MeasureTheory/Integral/Bochner/ContinuousLinearMap.lean Modified Mathlib/MeasureTheory/Integral/Bochner/FundThmCalculus.lean Modified Mathlib/MeasureTheory/Integral/Bochner/L1.lean +/- theorem MeasureTheory.norm_weightedSMul_le Modified Mathlib/MeasureTheory/Integral/Bochner/Set.lean +/- theorem MeasureTheory.setIntegral_const Modified Mathlib/MeasureTheory/Integral/BoundedContinuousFunction.lean Modified Mathlib/MeasureTheory/Integral/DominatedConvergence.lean Modified Mathlib/MeasureTheory/Integral/FinMeasAdditive.lean Modified Mathlib/MeasureTheory/Integral/Gamma.lean Modified Mathlib/MeasureTheory/Integral/IntervalAverage.lean Modified Mathlib/MeasureTheory/Integral/IntervalIntegral/Basic.lean - theorem intervalIntegral.norm_integral_eq_norm_integral_Ioc + theorem intervalIntegral.norm_integral_eq_norm_integral_uIoc - theorem intervalIntegral.norm_integral_le_integral_norm_Ioc + theorem intervalIntegral.norm_integral_le_integral_norm_uIoc Modified Mathlib/MeasureTheory/Integral/IntervalIntegral/FundThmCalculus.lean Modified Mathlib/MeasureTheory/Integral/Layercake.lean Modified Mathlib/MeasureTheory/Integral/PeakFunction.lean Modified Mathlib/MeasureTheory/Integral/Pi.lean Modified Mathlib/MeasureTheory/Integral/Prod.lean +/- theorem MeasureTheory.integral_fun_fst +/- theorem MeasureTheory.integral_fun_snd Modified Mathlib/MeasureTheory/Integral/RieszMarkovKakutani/Real.lean Modified Mathlib/MeasureTheory/Integral/SetToL1.lean Modified Mathlib/MeasureTheory/Measure/CharacteristicFunction.lean +/- theorem MeasureTheory.charFun_zero +/- theorem MeasureTheory.norm_charFun_le Modified Mathlib/MeasureTheory/Measure/Count.lean + theorem MeasureTheory.count_real_singleton' + theorem MeasureTheory.count_real_singleton Modified Mathlib/MeasureTheory/Measure/Decomposition/IntegralRNDeriv.lean Modified Mathlib/MeasureTheory/Measure/Decomposition/RadonNikodym.lean Modified Mathlib/MeasureTheory/Measure/Dirac.lean + theorem MeasureTheory.ext_iff_measureReal_singleton Modified Mathlib/MeasureTheory/Measure/Haar/NormedSpace.lean Modified Mathlib/MeasureTheory/Measure/Haar/Unique.lean Modified Mathlib/MeasureTheory/Measure/Lebesgue/Basic.lean + theorem Real.volume_real_Icc + theorem Real.volume_real_Icc_of_le + theorem Real.volume_real_Ico + theorem Real.volume_real_Ico_of_le + theorem Real.volume_real_Ioc + theorem Real.volume_real_Ioc_of_le + theorem Real.volume_real_Ioo + theorem Real.volume_real_Ioo_of_le + theorem Real.volume_real_ball + theorem Real.volume_real_closedBall + theorem Real.volume_real_interval Modified Mathlib/MeasureTheory/Measure/Lebesgue/EqHaar.lean + theorem MeasureTheory.Measure.addHaar_real_ball_center + theorem MeasureTheory.Measure.addHaar_real_closedBall' + theorem MeasureTheory.Measure.addHaar_real_closedBall + theorem MeasureTheory.Measure.addHaar_real_closedBall_center + theorem MeasureTheory.Measure.addHaar_real_closedBall_eq_addHaar_real_ball Modified Mathlib/MeasureTheory/Measure/Lebesgue/Integral.lean Modified Mathlib/MeasureTheory/Measure/Lebesgue/VolumeOfBalls.lean Modified Mathlib/MeasureTheory/Measure/LevyProkhorovMetric.lean Modified Mathlib/MeasureTheory/Measure/LogLikelihoodRatio.lean Modified Mathlib/MeasureTheory/Measure/MeasureSpaceDef.lean + theorem MeasureTheory.measureReal_def Modified Mathlib/MeasureTheory/Measure/Prod.lean + theorem MeasureTheory.measureReal_prod_prod Modified Mathlib/MeasureTheory/Measure/Real.lean - theorem MeasureTheory.Finset.sum_realMeasure_singleton - theorem MeasureTheory.ext_iff_measureReal_singleton + theorem MeasureTheory.measureReal_add_apply +/- theorem MeasureTheory.measureReal_add_diff - theorem MeasureTheory.measureReal_def +/- theorem MeasureTheory.measureReal_diff' +/- theorem MeasureTheory.measureReal_diff_add_inter + theorem MeasureTheory.measureReal_eq_measureReal_iff +/- theorem MeasureTheory.measureReal_inter_add_diff +/- theorem MeasureTheory.measureReal_inter_add_diff₀ + theorem MeasureTheory.measureReal_ne_zero_iff - theorem MeasureTheory.measureReal_prod_prod + theorem MeasureTheory.measureReal_restrict_apply' + theorem MeasureTheory.measureReal_restrict_apply + theorem MeasureTheory.measureReal_restrict_apply_self + theorem MeasureTheory.measureReal_restrict_apply_univ + theorem MeasureTheory.measureReal_restrict_apply₀' + theorem MeasureTheory.measureReal_restrict_apply₀ +/- theorem MeasureTheory.measureReal_symmDiff_le +/- theorem MeasureTheory.measureReal_union_add_inter' +/- theorem MeasureTheory.measureReal_union_add_inter +/- theorem MeasureTheory.measureReal_union_add_inter₀' +/- theorem MeasureTheory.measureReal_union_add_inter₀ + theorem MeasureTheory.ofReal_measureReal + theorem MeasureTheory.sum_measureReal_singleton Modified Mathlib/MeasureTheory/Measure/SeparableMeasure.lean Modified Mathlib/MeasureTheory/Measure/Tilted.lean Modified Mathlib/MeasureTheory/Measure/Typeclasses/Finite.lean + theorem MeasureTheory.abs_measureReal_sub_le_measureReal_symmDiff' + theorem MeasureTheory.abs_measureReal_sub_le_measureReal_symmDiff - theorem MeasureTheory.abs_toReal_measure_sub_le_measure_symmDiff' - theorem MeasureTheory.abs_toReal_measure_sub_le_measure_symmDiff Modified Mathlib/MeasureTheory/Measure/Typeclasses/Probability.lean + theorem MeasureTheory.measureReal_le_one - theorem MeasureTheory.toReal_prob_le_one Modified Mathlib/MeasureTheory/VectorMeasure/Basic.lean + theorem MeasureTheory.SignedMeasure.toMeasureOfLEZero_real_apply + theorem MeasureTheory.SignedMeasure.toMeasureOfZeroLE_real_apply Modified Mathlib/MeasureTheory/VectorMeasure/Decomposition/Jordan.lean Modified Mathlib/MeasureTheory/VectorMeasure/Decomposition/Lebesgue.lean Modified Mathlib/MeasureTheory/VectorMeasure/Decomposition/RadonNikodym.lean Modified Mathlib/MeasureTheory/VectorMeasure/WithDensity.lean Modified Mathlib/NumberTheory/NumberField/Discriminant/Basic.lean Modified Mathlib/NumberTheory/Transcendental/Lindemann/AnalyticalPart.lean Modified Mathlib/Probability/BorelCantelli.lean Modified Mathlib/Probability/CDF.lean + theorem ProbabilityTheory.cdf_eq_real - theorem ProbabilityTheory.cdf_eq_toReal Modified Mathlib/Probability/CondVar.lean Modified Mathlib/Probability/ConditionalExpectation.lean Modified Mathlib/Probability/Distributions/Gamma.lean Modified Mathlib/Probability/Distributions/Pareto.lean Modified Mathlib/Probability/Independence/ZeroOne.lean Modified Mathlib/Probability/Integration.lean Modified Mathlib/Probability/Kernel/Composition/IntegralCompProd.lean Modified Mathlib/Probability/Kernel/Composition/MapComap.lean + theorem ProbabilityTheory.Kernel.fst_real_apply Modified Mathlib/Probability/Kernel/CondDistrib.lean Modified Mathlib/Probability/Kernel/Condexp.lean Modified Mathlib/Probability/Kernel/Disintegration/CDFToKernel.lean Modified Mathlib/Probability/Kernel/Disintegration/CondCDF.lean Modified Mathlib/Probability/Kernel/Disintegration/Density.lean Modified Mathlib/Probability/Kernel/Disintegration/StandardBorel.lean Modified Mathlib/Probability/Kernel/Integral.lean Modified Mathlib/Probability/Moments/Basic.lean +/- theorem ProbabilityTheory.cgf_zero' +/- theorem ProbabilityTheory.cgf_zero_fun +/- theorem ProbabilityTheory.mgf_const' +/- theorem ProbabilityTheory.mgf_zero' +/- theorem ProbabilityTheory.mgf_zero_fun Modified Mathlib/Probability/Moments/MGFAnalytic.lean Modified Mathlib/Probability/Moments/SubGaussian.lean Modified Mathlib/Probability/ProbabilityMassFunction/Integrals.lean Modified Mathlib/Probability/StrongLaw.lean Modified Mathlib/Probability/Variance.lean 2025-04-20 08:56:06 c9e9699 chore: remove erw for Sym.replicate (#24214) This PR defines a new lemma about the `val` of a `Sym.replicate` in order to remove an `erw`. ESTIMATED CHANGES Modified Mathlib/Data/Sym/Basic.lean + theorem Sym.val_replicate 2025-04-19 18:45:54 a97f34f chore: drop commutativity from Irreducible/IsSquare lemmas (#24193) ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Irreducible/Lemmas.lean 2025-04-19 15:55:01 6a858d8 feat: `(-1) ^ m = (-1) ^ n` (#24160) - add `neg_one_pow_congr`; - prove a lemma about parity of `Fin.succAbove i j + Fin.predAbove j i`. Backported (with adjusted API) from https://github.com/urkud/DeRhamCohomology ESTIMATED CHANGES Modified Mathlib/Algebra/Ring/Parity.lean + theorem neg_one_pow_congr +/- theorem neg_one_pow_eq_ite + theorem neg_one_pow_eq_neg_one_iff_odd +/- theorem neg_one_pow_eq_one_iff_even Modified Mathlib/Data/Fin/Parity.lean + theorem Fin.even_succAbove_add_predAbove 2025-04-19 15:05:28 0d9eafd chore: rename LinearEquiv.prod to prodCongr (#24145) Zulip discussion: [#mathlib4 > Naming convention @ 💬](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Naming.20convention/near/512683092) As a bonus, replace some outdated `prod.map` in module doc-strings by `Prod.map`. ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Prod.lean Modified Mathlib/Algebra/Module/PID.lean Modified Mathlib/Analysis/Calculus/LagrangeMultipliers.lean Modified Mathlib/Analysis/Normed/Lp/PiLp.lean Modified Mathlib/LinearAlgebra/Basis/Prod.lean Modified Mathlib/LinearAlgebra/Basis/VectorSpace.lean Modified Mathlib/LinearAlgebra/Dimension/Constructions.lean Modified Mathlib/LinearAlgebra/Prod.lean - theorem LinearEquiv.coe_prod + theorem LinearEquiv.coe_prodCongr + theorem LinearEquiv.prodCongr_apply + theorem LinearEquiv.prodCongr_symm - theorem LinearEquiv.prod_apply - theorem LinearEquiv.prod_symm Modified Mathlib/LinearAlgebra/QuadraticForm/Dual.lean Modified Mathlib/LinearAlgebra/QuadraticForm/Prod.lean Modified Mathlib/LinearAlgebra/TensorProduct/Prod.lean Modified Mathlib/LinearAlgebra/Trace.lean Modified Mathlib/Order/Hom/Basic.lean Modified Mathlib/RingTheory/TensorProduct/IsBaseChangePi.lean Modified Mathlib/Topology/Algebra/Module/Equiv.lean 2025-04-19 15:05:27 90fd7ea feat: drop measurability assumption in `norm_setIntegral_le_of_norm_le_const_ae'` (#24134) ESTIMATED CHANGES Modified Mathlib/Analysis/Fourier/RiemannLebesgueLemma.lean Modified Mathlib/Analysis/SpecialFunctions/MulExpNegMulSqIntegral.lean Modified Mathlib/MeasureTheory/Integral/Bochner/FundThmCalculus.lean Modified Mathlib/MeasureTheory/Integral/Bochner/Set.lean - theorem MeasureTheory.norm_setIntegral_le_of_norm_le_const' +/- theorem MeasureTheory.norm_setIntegral_le_of_norm_le_const - theorem MeasureTheory.norm_setIntegral_le_of_norm_le_const_ae'' Modified Mathlib/MeasureTheory/Integral/DivergenceTheorem.lean Modified Mathlib/MeasureTheory/Integral/IntervalIntegral/Basic.lean Modified Mathlib/MeasureTheory/Integral/TorusIntegral.lean Modified Mathlib/NumberTheory/Transcendental/Lindemann/AnalyticalPart.lean 2025-04-19 14:42:21 06feae0 refactor(Calculus/MeanValue): move some theorems to `Deriv/` (#24190) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/Calculus/Deriv/MeanValue.lean + theorem Convex.image_sub_le_mul_sub_of_deriv_le + theorem Convex.image_sub_lt_mul_sub_of_deriv_lt + theorem Convex.mul_sub_le_image_sub_of_le_deriv + theorem Convex.mul_sub_lt_image_sub_of_lt_deriv + theorem antitoneOn_of_deriv_nonpos + theorem antitoneOn_of_hasDerivWithinAt_nonpos + theorem antitone_of_deriv_nonpos + theorem antitone_of_hasDerivAt_nonpos + theorem domain_mvt + theorem exists_deriv_eq_slope' + theorem exists_deriv_eq_slope + theorem exists_hasDerivAt_eq_slope + theorem exists_ratio_deriv_eq_ratio_slope' + theorem exists_ratio_deriv_eq_ratio_slope + theorem exists_ratio_hasDerivAt_eq_ratio_slope' + theorem exists_ratio_hasDerivAt_eq_ratio_slope + theorem image_sub_le_mul_sub_of_deriv_le + theorem image_sub_lt_mul_sub_of_deriv_lt + theorem monotoneOn_of_deriv_nonneg + theorem monotoneOn_of_hasDerivWithinAt_nonneg + theorem monotone_of_deriv_nonneg + theorem monotone_of_hasDerivAt_nonneg + theorem mul_sub_le_image_sub_of_le_deriv + theorem mul_sub_lt_image_sub_of_lt_deriv + theorem not_differentiableWithinAt_of_deriv_tendsto_atBot_Iio + theorem not_differentiableWithinAt_of_deriv_tendsto_atBot_Ioi + theorem not_differentiableWithinAt_of_deriv_tendsto_atTop_Iio + theorem not_differentiableWithinAt_of_deriv_tendsto_atTop_Ioi + theorem strictAntiOn_of_deriv_neg + theorem strictAntiOn_of_hasDerivWithinAt_neg + theorem strictAnti_of_deriv_neg + theorem strictAnti_of_hasDerivAt_neg + theorem strictMonoOn_of_deriv_pos + theorem strictMonoOn_of_hasDerivWithinAt_pos + theorem strictMono_of_deriv_pos + theorem strictMono_of_hasDerivAt_pos Modified Mathlib/Analysis/Calculus/FirstDerivativeTest.lean Modified Mathlib/Analysis/Calculus/LHopital.lean Modified Mathlib/Analysis/Calculus/MeanValue.lean - theorem Convex.image_sub_le_mul_sub_of_deriv_le - theorem Convex.image_sub_lt_mul_sub_of_deriv_lt - theorem Convex.mul_sub_le_image_sub_of_le_deriv - theorem Convex.mul_sub_lt_image_sub_of_lt_deriv - theorem antitoneOn_of_deriv_nonpos - theorem antitoneOn_of_hasDerivWithinAt_nonpos - theorem antitone_of_deriv_nonpos - theorem antitone_of_hasDerivAt_nonpos - theorem domain_mvt - theorem exists_deriv_eq_slope' - theorem exists_deriv_eq_slope - theorem exists_hasDerivAt_eq_slope - theorem exists_ratio_deriv_eq_ratio_slope' - theorem exists_ratio_deriv_eq_ratio_slope - theorem exists_ratio_hasDerivAt_eq_ratio_slope' - theorem exists_ratio_hasDerivAt_eq_ratio_slope - theorem image_sub_le_mul_sub_of_deriv_le - theorem image_sub_lt_mul_sub_of_deriv_lt - theorem monotoneOn_of_deriv_nonneg - theorem monotoneOn_of_hasDerivWithinAt_nonneg - theorem monotone_of_deriv_nonneg - theorem monotone_of_hasDerivAt_nonneg - theorem mul_sub_le_image_sub_of_le_deriv - theorem mul_sub_lt_image_sub_of_lt_deriv - theorem not_differentiableWithinAt_of_deriv_tendsto_atBot_Iio - theorem not_differentiableWithinAt_of_deriv_tendsto_atBot_Ioi - theorem not_differentiableWithinAt_of_deriv_tendsto_atTop_Iio - theorem not_differentiableWithinAt_of_deriv_tendsto_atTop_Ioi - theorem strictAntiOn_of_deriv_neg - theorem strictAntiOn_of_hasDerivWithinAt_neg - theorem strictAnti_of_deriv_neg - theorem strictAnti_of_hasDerivAt_neg - theorem strictMonoOn_of_deriv_pos - theorem strictMonoOn_of_hasDerivWithinAt_pos - theorem strictMono_of_deriv_pos - theorem strictMono_of_hasDerivAt_pos Modified Mathlib/Analysis/Calculus/Taylor.lean Modified Mathlib/Analysis/Convex/Deriv.lean Modified Mathlib/Analysis/SpecialFunctions/Pochhammer.lean Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Deriv.lean 2025-04-19 14:42:20 6d1db9d feat: criterion for cofinite filter tends to cofinite. (#24147) ESTIMATED CHANGES Modified Mathlib/Order/Filter/Cofinite.lean + theorem Filter.Tendsto.cofinite_of_finite_preimage_singleton 2025-04-19 14:06:25 9bc7ea2 chore(Algebra/BigOperators/Group/Finset/Basic): use meaningful letter names (#24123) All monoids are `M`, all groups are `G`, all indexing types are `ι` or `κ`. Also order according to typeclass assumptions ESTIMATED CHANGES Modified Archive/Imo/Imo1994Q1.lean Modified Counterexamples/Cyclotomic105.lean Modified Mathlib/Algebra/BigOperators/Group/Finset/Basic.lean +/- theorem Finset.card_biUnion +/- theorem Finset.card_biUnion_le +/- theorem Finset.card_disjiUnion +/- theorem Finset.card_eq_sum_card_fiberwise +/- theorem Finset.card_eq_sum_card_image +/- theorem Finset.card_eq_sum_ones +/- theorem Finset.eq_of_card_le_one_of_prod_eq +/- theorem Finset.eq_one_of_prod_eq_one +/- theorem Finset.eq_prod_range_div' +/- theorem Finset.eq_prod_range_div +/- theorem Finset.eventually_constant_prod +/- theorem Finset.mem_sum +/- theorem Finset.mul_prod_erase +/- theorem Finset.pow_card_mul_prod +/- theorem Finset.pow_eq_prod_const +/- theorem Finset.prod_attach +/- theorem Finset.prod_biUnion +/- theorem Finset.prod_bij_ne_one +/- theorem Finset.prod_cancels_of_partition_cancels +/- theorem Finset.prod_comp +/- theorem Finset.prod_compl_mul_prod +/- theorem Finset.prod_congr_of_eq_on_inter +/- theorem Finset.prod_congr_set +/- theorem Finset.prod_const +/- theorem Finset.prod_diag +/- theorem Finset.prod_disj_sum +/- theorem Finset.prod_disjiUnion +/- theorem Finset.prod_dvd_prod_of_dvd +/- theorem Finset.prod_eq_fold +/- theorem Finset.prod_eq_mul +/- theorem Finset.prod_eq_mul_of_mem +/- theorem Finset.prod_eq_one +/- theorem Finset.prod_eq_one_iff +/- theorem Finset.prod_eq_pow_card +/- theorem Finset.prod_eq_prod_extend +/- theorem Finset.prod_eq_single +/- theorem Finset.prod_eq_single_of_mem +/- theorem Finset.prod_erase +/- theorem Finset.prod_erase_eq_div +/- theorem Finset.prod_erase_lt_of_one_lt +/- theorem Finset.prod_erase_mul +/- theorem Finset.prod_extend_by_one +/- theorem Finset.prod_fiberwise' +/- theorem Finset.prod_fiberwise +/- theorem Finset.prod_fiberwise_eq_prod_filter' +/- theorem Finset.prod_fiberwise_eq_prod_filter +/- theorem Finset.prod_fiberwise_of_maps_to' +/- theorem Finset.prod_fiberwise_of_maps_to +/- theorem Finset.prod_filter +/- theorem Finset.prod_filter_ne_one +/- theorem Finset.prod_filter_not_mul_prod_filter +/- theorem Finset.prod_filter_of_ne +/- theorem Finset.prod_filter_of_pairwise_eq_one +/- theorem Finset.prod_filter_xor +/- theorem Finset.prod_finset_coe +/- theorem Finset.prod_flip +/- theorem Finset.prod_image' +/- theorem Finset.prod_image +/- theorem Finset.prod_image_of_disjoint +/- theorem Finset.prod_image_of_pairwise_eq_one +/- theorem Finset.prod_insert +/- theorem Finset.prod_insert_div +/- theorem Finset.prod_insert_of_eq_one_if_not_mem +/- theorem Finset.prod_insert_one +/- theorem Finset.prod_involution +/- theorem Finset.prod_list_count +/- theorem Finset.prod_list_count_of_subset +/- theorem Finset.prod_list_map_count +/- theorem Finset.prod_mul_eq_prod_mul_of_exists +/- theorem Finset.prod_mul_pow_card +/- theorem Finset.prod_mul_prod_comm +/- theorem Finset.prod_mul_prod_compl +/- theorem Finset.prod_multiset_count +/- theorem Finset.prod_multiset_count_of_subset +/- theorem Finset.prod_multiset_map_count +/- theorem Finset.prod_ninvolution +/- theorem Finset.prod_pair +/- theorem Finset.prod_partition +/- theorem Finset.prod_pow_eq_pow_sum +/- theorem Finset.prod_range_add +/- theorem Finset.prod_range_add_div_prod_range +/- theorem Finset.prod_range_div' +/- theorem Finset.prod_range_div +/- theorem Finset.prod_range_induction +/- theorem Finset.prod_range_one +/- theorem Finset.prod_range_succ' +/- theorem Finset.prod_range_succ +/- theorem Finset.prod_range_succ_comm +/- theorem Finset.prod_sdiff +/- theorem Finset.prod_sdiff_eq_div +/- theorem Finset.prod_set_coe +/- theorem Finset.prod_singleton +/- theorem Finset.prod_subset_one_on_sdiff +/- theorem Finset.prod_subtype +/- theorem Finset.prod_subtype_eq_prod_filter +/- theorem Finset.prod_subtype_map_embedding +/- theorem Finset.prod_subtype_of_mem +/- theorem Finset.prod_sumElim +/- theorem Finset.prod_sum_eq_prod_toLeft_mul_prod_toRight +/- theorem Finset.prod_union +/- theorem Finset.prod_union_eq_left +/- theorem Finset.prod_union_eq_right +/- theorem Finset.prod_union_inter +/- theorem Finset.prod_unique_nonempty +/- theorem Finset.sum_const_nat +/- theorem Finset.sum_range_tsub +/- theorem Finset.sum_tsub_distrib +/- theorem Fintype.prod_Prop +/- theorem Fintype.prod_fiberwise' +/- theorem Fintype.prod_fiberwise +/- theorem Fintype.prod_of_injective +/- theorem Fintype.prod_subset +/- theorem Fintype.prod_subsingleton +/- theorem Fintype.prod_subtype_mul_prod_subtype +/- theorem Fintype.prod_unique +/- theorem IsCompl.prod_mul_prod +/- theorem IsUnit.prod_iff +/- theorem IsUnit.prod_univ_iff +/- theorem List.prod_toFinset +/- theorem List.sum_toFinset_count_eq_length +/- theorem Multiset.exists_smul_of_dvd_count +/- theorem Multiset.mem_sum +/- theorem Multiset.prod_sum +/- theorem Multiset.sum_count_eq_card +/- theorem Multiset.toFinset_sum_count_eq +/- theorem Multiset.toFinset_sum_count_nsmul_eq +/- theorem nat_abs_sum_le Modified Mathlib/Algebra/Order/Antidiag/Pi.lean Modified Mathlib/Analysis/InnerProductSpace/Basic.lean Modified Mathlib/Combinatorics/SimpleGraph/DegreeSum.lean Modified Mathlib/LinearAlgebra/FreeModule/Int.lean Modified Mathlib/LinearAlgebra/Matrix/Determinant/Basic.lean 2025-04-19 08:21:33 f8ab294 chore: semilinearize ContinuousLinearMap.toLinearMap₂ (#24174) ESTIMATED CHANGES Modified Mathlib/Topology/Algebra/Module/StrongTopology.lean +/- def ContinuousLinearMap.toLinearMap₂ +/- theorem ContinuousLinearMap.toLinearMap₂_apply 2025-04-19 07:34:55 2d6e743 chore(*): rename `Prod.map` lemmas (#24189) Also rename some `Prod.fst` and `Prod.snd` lemmas and add 2 dot notation lemmas. ESTIMATED CHANGES Modified Mathlib/Analysis/Normed/Ring/Lemmas.lean Modified Mathlib/Data/Set/Function.lean + theorem Set.mapsTo_prodMap_diagonal - theorem Set.mapsTo_prod_map_diagonal Modified Mathlib/Dynamics/PeriodicPts/Defs.lean + theorem Function.IsFixedPt.prodMap + theorem Function.IsPeriodicPt.prodMap + theorem Function.isFixedPt_prodMap - theorem Function.isFixedPt_prod_map + theorem Function.isPeriodicPt_prodMap - theorem Function.isPeriodicPt_prod_map Modified Mathlib/Dynamics/PeriodicPts/Lemmas.lean + theorem Function.minimalPeriod_prodMap - theorem Function.minimalPeriod_prod_map Modified Mathlib/Geometry/Manifold/ContMDiffMFDeriv.lean Modified Mathlib/Geometry/Manifold/MFDeriv/SpecificFunctions.lean + theorem MDifferentiable.prodMap - theorem MDifferentiable.prod_map + theorem MDifferentiableAt.prodMap' + theorem MDifferentiableAt.prodMap - theorem MDifferentiableAt.prod_map' - theorem MDifferentiableAt.prod_map + theorem MDifferentiableOn.prodMap - theorem MDifferentiableOn.prod_map + theorem MDifferentiableWithinAt.prodMap' + theorem MDifferentiableWithinAt.prodMap - theorem MDifferentiableWithinAt.prod_map' - theorem MDifferentiableWithinAt.prod_map + theorem tangentMapWithin_prodFst + theorem tangentMapWithin_prodSnd - theorem tangentMapWithin_prod_fst - theorem tangentMapWithin_prod_snd + theorem tangentMap_prodFst + theorem tangentMap_prodSnd - theorem tangentMap_prod_fst - theorem tangentMap_prod_snd Modified Mathlib/GroupTheory/OrderOfElement.lean Modified Mathlib/Order/Monotone/Defs.lean + theorem Antitone.prodMap - theorem Antitone.prod_map + theorem Monotone.prodMap - theorem Monotone.prod_map + theorem StrictAnti.prodMap - theorem StrictAnti.prod_map + theorem StrictMono.prodMap - theorem StrictMono.prod_map Modified Mathlib/Topology/MetricSpace/IsometricSMul.lean Modified Mathlib/Topology/MetricSpace/Isometry.lean + theorem Isometry.prodMap - theorem Isometry.prod_map Modified Mathlib/Topology/UniformSpace/HeineCantor.lean 2025-04-19 07:34:54 975550a feat(Topology/CompactOpen): basis of the neighborhoods of `f : C(X, Y)` (#24180) ESTIMATED CHANGES Modified Mathlib/Order/CompleteLattice/Basic.lean Modified Mathlib/Order/Filter/Finite.lean +/- theorem Filter.exists_iInter_of_mem_iInf + theorem Filter.mem_biInf_principal +/- theorem Filter.mem_iInf_of_finite Modified Mathlib/Topology/CompactOpen.lean 2025-04-19 07:26:37 121243a chore(Normed/Field/UnitBall): review instances (#24188) ESTIMATED CHANGES Modified Mathlib/Analysis/Complex/Circle.lean Modified Mathlib/Analysis/Complex/UnitDisc/Basic.lean + theorem Complex.UnitDisc.coe_inj + theorem Complex.UnitDisc.mk_eq_zero + theorem Complex.UnitDisc.mk_zero Modified Mathlib/Analysis/Fourier/AddCircle.lean Modified Mathlib/Analysis/Fourier/BoundedContinuousFunctionChar.lean Modified Mathlib/Analysis/Normed/Field/UnitBall.lean + theorem Metric.unitSphere.coe_inv + theorem Metric.unitSphere.coe_mul + theorem Metric.unitSphere.coe_pow + theorem Metric.unitSphere.coe_zpow - theorem coe_div_unitSphere - theorem coe_inv_unitSphere - theorem coe_mul_unitBall - theorem coe_mul_unitClosedBall - theorem coe_mul_unitSphere - theorem coe_one_unitClosedBall - theorem coe_one_unitSphere - theorem coe_pow_unitClosedBall - theorem coe_pow_unitSphere - theorem coe_zpow_unitSphere 2025-04-19 06:49:16 4ecf18c feat: background material for order properties of the Bochner integral (#24176) ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Function/SimpleFunc.lean Modified Mathlib/MeasureTheory/Function/SimpleFuncDense.lean + theorem MeasureTheory.SimpleFunc.approxOn_range_nonneg Modified Mathlib/MeasureTheory/Function/StronglyMeasurable/AEStronglyMeasurable.lean + theorem MeasureTheory.AEStronglyMeasurable.exists_stronglyMeasurable_range_subset Modified Mathlib/MeasureTheory/Integral/Bochner/L1.lean + theorem MeasureTheory.SimpleFunc.integral_mono + theorem MeasureTheory.SimpleFunc.integral_mono_measure + theorem MeasureTheory.SimpleFunc.integral_nonneg 2025-04-19 03:18:26 323f781 feat(SimpleGraph): eccentricity, radius, and center (#23932) This PR defines the eccentricity of a vertex, the radius, and the center of a simple graph, and provides an API for them. They are placed in the `Diam.lean` file because they are closely related and have a similar API. Also this PR redefines `SimpleGraph.ediam` in terms of eccentricity, which shortens some of its proofs. ESTIMATED CHANGES Modified Mathlib/Combinatorics/SimpleGraph/Diam.lean + def SimpleGraph.center + theorem SimpleGraph.center_bot + theorem SimpleGraph.center_eq_univ_iff_radius_eq_ediam + theorem SimpleGraph.center_eq_univ_of_subsingleton + theorem SimpleGraph.center_nonempty + theorem SimpleGraph.center_top +/- theorem SimpleGraph.diam_eq_zero_of_not_connected + theorem SimpleGraph.eccent_bot + theorem SimpleGraph.eccent_def + theorem SimpleGraph.eccent_eq_top_of_not_connected + theorem SimpleGraph.eccent_eq_zero_iff + theorem SimpleGraph.eccent_eq_zero_of_subsingleton + theorem SimpleGraph.eccent_le_ediam + theorem SimpleGraph.eccent_ne_zero + theorem SimpleGraph.eccent_pos_iff + theorem SimpleGraph.eccent_top + theorem SimpleGraph.ediam_eq_iSup_iSup_edist +/- theorem SimpleGraph.ediam_eq_top_of_not_connected +/- theorem SimpleGraph.ediam_eq_top_of_not_preconnected +/- theorem SimpleGraph.ediam_le_of_edist_le + theorem SimpleGraph.ediam_le_two_mul_radius + theorem SimpleGraph.edist_le_eccent + theorem SimpleGraph.eq_top_iff_forall_eccent_eq_one + theorem SimpleGraph.exists_eccent_eq_ediam_of_finite + theorem SimpleGraph.exists_eccent_eq_ediam_of_ne_top + theorem SimpleGraph.exists_eccent_eq_radius + theorem SimpleGraph.exists_edist_eq_eccent_of_finite + theorem SimpleGraph.exists_edist_eq_radius_of_finite + theorem SimpleGraph.mem_center_iff + theorem SimpleGraph.radius_bot + theorem SimpleGraph.radius_eq_ediam_iff + theorem SimpleGraph.radius_eq_iInf_iSup_edist + theorem SimpleGraph.radius_eq_top_of_isEmpty + theorem SimpleGraph.radius_eq_top_of_not_connected + theorem SimpleGraph.radius_eq_zero_iff + theorem SimpleGraph.radius_le_eccent + theorem SimpleGraph.radius_le_ediam + theorem SimpleGraph.radius_ne_top_iff + theorem SimpleGraph.radius_ne_zero_of_nontrivial + theorem SimpleGraph.radius_top Modified Mathlib/Combinatorics/SimpleGraph/Girth.lean 2025-04-18 23:58:16 5724abf docs(Matroid): remove incomplete line (#24187) ESTIMATED CHANGES Modified Mathlib/Data/Matroid/Basic.lean 2025-04-18 22:03:41 14de15a chore(MeasureTheory/Integral/Bochner/Basic): reorganize lemmas (#24175) ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Integral/Bochner/Basic.lean 2025-04-18 21:28:20 fc7ec70 feat(Order/Cover): add lemmas about `Bool` (#24183) ESTIMATED CHANGES Modified Mathlib/Order/Cover.lean + theorem Bool.covBy_iff + theorem Bool.wcovBy_iff 2025-04-18 20:13:52 802f790 chore(Algebra/GCDMonoid): generalize gcd_ne_zero_of_ lemmas (#24181) Generalize the two lemmas `gcd_ne_zero_of_left` and `gcd_ne_zero_of_right` to not mention `EuclideanDomain + GCDMonoid`; they now hold for any GCD monoid. The variable names are changed for consistency with the new surrounding lemmas. The proofs are golfed. ESTIMATED CHANGES Modified Mathlib/Algebra/GCDMonoid/Basic.lean + theorem gcd_ne_zero_of_left + theorem gcd_ne_zero_of_right Modified Mathlib/RingTheory/EuclideanDomain.lean - theorem gcd_ne_zero_of_left - theorem gcd_ne_zero_of_right 2025-04-18 20:06:45 1e71a02 feat(CategoryTheory): joins of categories (#23412) Define the join of two categories `C`, `D` as the category `C ⋆ D` characterized by the existence of fully faithful functors `Join.inclLeft C D : C ⥤ C ⋆ D` and `Join.inclRight C D: D ⥤ C ⋆ D` that are jointly surjective on objects, and such that there is a unique map `edge c d : (inclLeft C D).obj c ⟶ (inclRight C D).obj d` for every `c : C` and `d : D`. We also provide constructors for functors out of joins, and natural transforms between such functors. The main reference is [Kerodon: section 1.4.3.2](https://kerodon.net/tag/0160). ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Join/Basic.lean + def CategoryTheory.Join.Hom + def CategoryTheory.Join.comp + def CategoryTheory.Join.edge + def CategoryTheory.Join.edgeTransform + theorem CategoryTheory.Join.eq_mkNatTrans + theorem CategoryTheory.Join.false_of_right_to_left + def CategoryTheory.Join.homInduction + theorem CategoryTheory.Join.homInduction_edge + theorem CategoryTheory.Join.homInduction_left + theorem CategoryTheory.Join.homInduction_right + def CategoryTheory.Join.id + theorem CategoryTheory.Join.id_left + theorem CategoryTheory.Join.id_right + def CategoryTheory.Join.inclLeft + def CategoryTheory.Join.inclLeftFullyFaithful: + def CategoryTheory.Join.inclRight + def CategoryTheory.Join.inclRightFullyFaithful: + def CategoryTheory.Join.isoMkFunctor + def CategoryTheory.Join.mapIsoWhiskerLeft + theorem CategoryTheory.Join.mapIsoWhiskerLeft_hom + theorem CategoryTheory.Join.mapIsoWhiskerLeft_inv + def CategoryTheory.Join.mapIsoWhiskerRight + theorem CategoryTheory.Join.mapIsoWhiskerRight_hom + theorem CategoryTheory.Join.mapIsoWhiskerRight_inv + def CategoryTheory.Join.mapPair + def CategoryTheory.Join.mapPairComp + theorem CategoryTheory.Join.mapPairComp_hom_app_left + theorem CategoryTheory.Join.mapPairComp_hom_app_right + theorem CategoryTheory.Join.mapPairComp_inv_app_left + theorem CategoryTheory.Join.mapPairComp_inv_app_right + def CategoryTheory.Join.mapPairId + def CategoryTheory.Join.mapPairLeft + def CategoryTheory.Join.mapPairRight + theorem CategoryTheory.Join.mapPair_map_inclLeft + theorem CategoryTheory.Join.mapPair_map_inclRight + theorem CategoryTheory.Join.mapPair_obj_left + theorem CategoryTheory.Join.mapPair_obj_right + def CategoryTheory.Join.mapWhiskerLeft + theorem CategoryTheory.Join.mapWhiskerLeft_comp + def CategoryTheory.Join.mapWhiskerRight + theorem CategoryTheory.Join.mapWhiskerRight_comp + theorem CategoryTheory.Join.mapWhisker_exchange + def CategoryTheory.Join.mkFunctor + def CategoryTheory.Join.mkFunctorLeft + def CategoryTheory.Join.mkFunctorRight + theorem CategoryTheory.Join.mkFunctor_edgeTransform + theorem CategoryTheory.Join.mkFunctor_map_edge + theorem CategoryTheory.Join.mkFunctor_map_inclLeft + theorem CategoryTheory.Join.mkFunctor_map_inclRight + theorem CategoryTheory.Join.mkFunctor_obj_left + theorem CategoryTheory.Join.mkFunctor_obj_right + def CategoryTheory.Join.mkNatIso + def CategoryTheory.Join.mkNatTrans + theorem CategoryTheory.Join.mkNatTransComp + theorem CategoryTheory.Join.mkNatTrans_app_left + theorem CategoryTheory.Join.mkNatTrans_app_right + theorem CategoryTheory.Join.natTrans_ext + theorem CategoryTheory.Join.whiskerLeft_inclLeft_mkNatTrans + theorem CategoryTheory.Join.whiskerLeft_inclRight_mkNatTrans + inductive CategoryTheory.Join 2025-04-18 19:45:01 b11001d chore(overview.yaml): mention more differential geometry items (#19920) ESTIMATED CHANGES Modified docs/overview.yaml 2025-04-18 18:57:56 46ea5ea feat(Topology/DerivedSet): closure_eq_self_union_derivedSet (#24132) ESTIMATED CHANGES Modified Mathlib/Topology/DerivedSet.lean + theorem closure_eq_self_union_derivedSet 2025-04-18 18:34:44 b829fcc refactor: split out edge deletion definitions for simple graphs (#23808) Move `deleteEdges` and `deleteFar` definitions to a separate file. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Combinatorics/SimpleGraph/Basic.lean - def SimpleGraph.deleteEdges - theorem SimpleGraph.deleteEdges_adj - theorem SimpleGraph.deleteEdges_anti - theorem SimpleGraph.deleteEdges_deleteEdges - theorem SimpleGraph.deleteEdges_edgeSet - theorem SimpleGraph.deleteEdges_empty - theorem SimpleGraph.deleteEdges_eq_inter_edgeSet - theorem SimpleGraph.deleteEdges_eq_self - theorem SimpleGraph.deleteEdges_le - theorem SimpleGraph.deleteEdges_mono - theorem SimpleGraph.deleteEdges_sdiff_eq_of_le - theorem SimpleGraph.deleteEdges_univ - theorem SimpleGraph.edgeSet_deleteEdges Added Mathlib/Combinatorics/SimpleGraph/DeleteEdges.lean + theorem SimpleGraph.DeleteFar.mono + def SimpleGraph.DeleteFar + def SimpleGraph.deleteEdges + theorem SimpleGraph.deleteEdges_adj + theorem SimpleGraph.deleteEdges_anti + theorem SimpleGraph.deleteEdges_deleteEdges + theorem SimpleGraph.deleteEdges_edgeSet + theorem SimpleGraph.deleteEdges_empty + theorem SimpleGraph.deleteEdges_eq_inter_edgeSet + theorem SimpleGraph.deleteEdges_eq_self + theorem SimpleGraph.deleteEdges_le + theorem SimpleGraph.deleteEdges_mono + theorem SimpleGraph.deleteEdges_sdiff_eq_of_le + theorem SimpleGraph.deleteEdges_univ + theorem SimpleGraph.deleteFar_iff + theorem SimpleGraph.edgeFinset_deleteEdges + theorem SimpleGraph.edgeSet_deleteEdges Modified Mathlib/Combinatorics/SimpleGraph/Finite.lean - theorem SimpleGraph.DeleteFar.mono - def SimpleGraph.DeleteFar - theorem SimpleGraph.deleteFar_iff - theorem SimpleGraph.edgeFinset_deleteEdges Modified Mathlib/Combinatorics/SimpleGraph/Subgraph.lean Modified Mathlib/Combinatorics/SimpleGraph/Walk.lean 2025-04-18 17:47:24 8a21e31 chore: fix indentation of multi-line items in doc-strings (#24166) Markdown syntax requires that subsequent lines of multi-line items in a list should be indented: for example, one should write ``` * show that `K.πTruncGE e : K ⟶ K.truncGE e` induces an isomorphism in homology in degrees in the image of `e.f`. ``` instead of ``` * show that `K.πTruncGE e : K ⟶ K.truncGE e` induces an isomorphism in homology in degrees in the image of `e.f`. ``` If the bullet point contains several paragraphs, this leads to actual mis-renderings, such as [this one](https://leanprover-community.github.io/mathlib4_docs/Mathlib/CategoryTheory/Limits/Preserves/FunctorCategory.html): "The idea of the proof" should be part of the bullet point, but isn't. [Here](https://leanprover-community.github.io/mathlib4_docs/Mathlib/CategoryTheory/NatIso.html) is another example. [Zulip discussion](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Style.20.3Abicycle.3A.20.3A.20indenting.20second.20lines.20in.20doc-strings/near/500682936) This fixes about 100 doc-strings violating this. There are several hundred further doc-strings with the same issue. This indicates that a linter catching this issue may be worthwhile. ESTIMATED CHANGES Modified Archive/Imo/Imo1988Q6.lean Modified Cache/Hashing.lean Modified Mathlib/Algebra/Category/Grp/Basic.lean Modified Mathlib/Algebra/Category/ModuleCat/Sheaf/Free.lean Modified Mathlib/Algebra/Category/MonCat/Basic.lean Modified Mathlib/Algebra/Category/Ring/Basic.lean Modified Mathlib/Algebra/Category/Semigrp/Basic.lean Modified Mathlib/Algebra/Colimit/Finiteness.lean Modified Mathlib/Algebra/Divisibility/Units.lean Modified Mathlib/Algebra/GCDMonoid/Basic.lean Modified Mathlib/Algebra/Homology/DerivedCategory/SingleTriangle.lean Modified Mathlib/Algebra/Homology/Embedding/TruncGE.lean Modified Mathlib/Algebra/Homology/Factorizations/Basic.lean Modified Mathlib/Algebra/Homology/TotalComplexShift.lean Modified Mathlib/Algebra/Module/Presentation/Basic.lean Modified Mathlib/Algebra/Module/Presentation/RestrictScalars.lean Modified Mathlib/Algebra/Module/ZLattice/Basic.lean Modified Mathlib/Algebra/Order/Star/Basic.lean Modified Mathlib/Algebra/Polynomial/Lifts.lean Modified Mathlib/Algebra/Ring/Submonoid/Pointwise.lean Modified Mathlib/AlgebraicGeometry/Modules/Tilde.lean Modified Mathlib/AlgebraicGeometry/Sites/BigZariski.lean Modified Mathlib/AlgebraicTopology/SimplicialCategory/Basic.lean Modified Mathlib/AlgebraicTopology/SimplicialSet/Degenerate.lean Modified Mathlib/Analysis/BoxIntegral/UnitPartition.lean Modified Mathlib/Analysis/Seminorm.lean Modified Mathlib/CategoryTheory/Abelian/Exact.lean Modified Mathlib/CategoryTheory/Abelian/FreydMitchell.lean Modified Mathlib/CategoryTheory/Abelian/GrothendieckCategory/EnoughInjectives.lean Modified Mathlib/CategoryTheory/Abelian/LeftDerived.lean Modified Mathlib/CategoryTheory/Abelian/Refinements.lean Modified Mathlib/CategoryTheory/Abelian/RightDerived.lean Modified Mathlib/CategoryTheory/Adjunction/Additive.lean Modified Mathlib/CategoryTheory/Bicategory/NaturalTransformation/Strong.lean Modified Mathlib/CategoryTheory/ComposableArrows.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Pullback/HasPullback.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Pullback/Mono.lean Modified Mathlib/CategoryTheory/Limits/Shapes/RegularMono.lean Modified Mathlib/CategoryTheory/Localization/DerivabilityStructure/Basic.lean Modified Mathlib/CategoryTheory/MorphismProperty/Representable.lean Modified Mathlib/CategoryTheory/Sites/Grothendieck.lean Modified Mathlib/CategoryTheory/Subobject/Basic.lean Modified Mathlib/CategoryTheory/Subobject/MonoOver.lean Modified docs/Conv/Guide.lean 2025-04-18 17:47:22 e71ab26 chore(Fin/Basic): add 2 `@[simp]` attrs (#24116) ESTIMATED CHANGES Modified Mathlib/Data/Fin/Basic.lean Modified Mathlib/Order/Fin/SuccAboveOrderIso.lean 2025-04-18 17:47:21 3acfa39 feat: typeclass for subgroups of finite relative index (#23596) This is useful to state the following: https://github.com/ImperialCollegeLondon/FLT/blob/c51f2573c22ded973f354f56f598507b0f349f51/FLT/Mathlib/MeasureTheory/Group/Action.lean#L57-L59 namely that the Haar measure of a subgroup `H` of finite index inside a subgroup `K` is the Haar measure of `K` divided by the index. A possible alternative would be to have some `ENat`-valued index. From FLT ESTIMATED CHANGES Modified Mathlib/GroupTheory/Complement.lean Modified Mathlib/GroupTheory/CosetCover.lean Modified Mathlib/GroupTheory/Index.lean + theorem Subgroup.relindex_ne_zero 2025-04-18 17:03:06 d4bd0b3 refactor(AffineEquiv): reorder type class parameters to enable refl attribute (#24156) See https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/refl.20attribute/near/512372541 for details ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/AffineSpace/AffineEquiv.lean +/- structure AffineEquiv 2025-04-18 17:03:05 af881a9 feat: minimality with respect to a function (#23706) Introduce `MinimalFor`/`MaximalFor`, which generalise `Minimal` and `Maximal` to the case where the predicate `P : ι → Prop` doesn't have an ordered domain, but where instead we have a function `f : ι → α` to an order. Typical examples include extremal properties of graphs, such as `Simple.IsTuran.Maximal`, where we don't just care about having a maximal clique-free graph, but we also want it to have the maximal number of edges. ESTIMATED CHANGES Modified Mathlib/Order/Defs/Unbundled.lean + theorem MaximalFor.le_of_le + theorem MaximalFor.prop + def MaximalFor + theorem MinimalFor.le_of_le + theorem MinimalFor.prop + def MinimalFor Modified Mathlib/Order/Minimal.lean 2025-04-18 17:03:04 e08d896 feat: order isomorphisms act on flags (#23581) This is crucial to the study of abstract polytopes. For example, a regular abstract polytope is one whose automorphism group is transitive on its flags. From MiscYD ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Order/Group/Action/Flag.lean + theorem Flag.coe_smul 2025-04-18 17:03:02 eb29fce feat: grading a flag (#23122) A flag inherits the grading of its ambient order. From MiscYD ESTIMATED CHANGES Modified Mathlib/Order/Grade.lean + theorem Flag.coe_covBy_coe + theorem Flag.coe_wcovBy_coe + theorem Flag.grade_coe + theorem Flag.isMax_coe + theorem Flag.isMin_coe 2025-04-18 16:28:14 76a9f01 feat(Order/WithTop): criterion for equality in WithTop (#24165) ESTIMATED CHANGES Modified Mathlib/Data/ENat/Basic.lean + theorem ENat.eq_of_forall_natCast_le_iff Modified Mathlib/Order/WithBot.lean + theorem WithBot.eq_of_forall_le_coe_iff + theorem WithBot.forall_le_coe_iff_le + theorem WithTop.eq_of_forall_coe_le_iff +/- theorem WithTop.forall_coe_le_iff_le 2025-04-18 13:26:19 06187a4 chore(PNat/Factors): get rid of `Coe.coe` (#24169) ESTIMATED CHANGES Modified Mathlib/Data/PNat/Factors.lean +/- theorem PrimeMultiset.coeNat_injective +/- theorem PrimeMultiset.coePNat_injective +/- theorem PrimeMultiset.coe_coeNatMonoidHom +/- theorem PrimeMultiset.coe_coePNatMonoidHom +/- def PrimeMultiset.toNatMultiset +/- def PrimeMultiset.toPNatMultiset 2025-04-18 12:50:53 aa3e762 chore: rename {Irreducible,Prime}.not_square (#24136) ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Irreducible/Lemmas.lean + theorem Irreducible.not_isSquare - theorem Irreducible.not_square +/- theorem IsSquare.not_irreducible Modified Mathlib/Algebra/Prime/Lemmas.lean +/- theorem IsSquare.not_prime + theorem Prime.not_isSquare - theorem Prime.not_square Modified Mathlib/Data/Real/Irrational.lean 2025-04-18 12:50:52 9390c91 feat(Cache): root hash generation counter (#23387) This should provide a better canonical way to invalidate the cache rather than changing whitespace in inconspicuous places in one of the three root hash files or in `Mathlib.Init`. ESTIMATED CHANGES 2025-04-18 12:43:16 ec24b5f chore: use order of power series to prove NoZeroDivisors (#24152) This is the approach used in the multivariate case, and the current proof is essentially a hand-made version of the order argument. This means moving all the results depending on this in a new file depending on `PowerSeries.Order`, which I call `PowerSeries.NoZeroDivisors` (analogous to the existing `MvPowerSeries.NoZeroDivisors`). Also do a little bit of cleanup in the proof of `order_mul` using the cleanup from #24072. This is a followup to #23993 and #24072. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/RingTheory/DividedPowers/Basic.lean Modified Mathlib/RingTheory/PowerSeries/Basic.lean - theorem PowerSeries.X_irreducible - theorem PowerSeries.X_prime - theorem PowerSeries.rescale_injective - theorem PowerSeries.span_X_isPrime Modified Mathlib/RingTheory/PowerSeries/Inverse.lean Added Mathlib/RingTheory/PowerSeries/NoZeroDivisors.lean + theorem PowerSeries.X_irreducible + theorem PowerSeries.X_prime + theorem PowerSeries.rescale_injective + theorem PowerSeries.span_X_isPrime Modified Mathlib/RingTheory/PowerSeries/Order.lean 2025-04-18 12:08:10 7c17fa6 refactor: generalise the Plünnecke-Petridis inequality to non-abelian groups (#24148) Kudos to Thomas Bloom for spotting that I wrote an overspecialised result. ESTIMATED CHANGES Modified Mathlib/Combinatorics/Additive/PluenneckeRuzsa.lean 2025-04-18 09:59:59 3dc1d31 feat(Filter/Pi): add lemmas about `principal` and `pure` (#24154) ... over a not-necessary-finite index type. ESTIMATED CHANGES Modified Mathlib/Order/Filter/Pi.lean + theorem Filter.hasBasis_pi_principal + theorem Filter.hasBasis_pi_pure + theorem Filter.mem_pi_principal + theorem Filter.mem_pi_pure 2025-04-18 09:15:58 c7e8bc7 refactor(Dynamics/TopologicalEntropy): use expGrowth (#23554) The notions of `coverEntropyEntourage`, `coverEntropyInfEntourage`, `netEntropyEntourage` and `netEntropyInfEntourage` are now defined using `expGrowth`. Some technical intermediate lemmas are no longer needed and are removed. Some minor golfing around those three files. ESTIMATED CHANGES Modified Mathlib/Dynamics/TopologicalEntropy/CoverEntropy.lean - theorem Dynamics.log_coverMincard_iterate_le - theorem Dynamics.log_coverMincard_le_add - theorem Dynamics.log_coverMincard_nonneg Modified Mathlib/Dynamics/TopologicalEntropy/NetEntropy.lean - theorem Dynamics.log_netMaxcard_nonneg +/- theorem Dynamics.netEntropyEntourage_empty Modified Mathlib/Dynamics/TopologicalEntropy/Semiconj.lean 2025-04-18 08:22:17 535376f chore: import the flexible linter in Mathlib.Init (#21794) This enables projects downstream of mathlib to enable it project-wide: previously, a file not importing this linter (as it e.g. imported only a single mathlib file not importing this linter) would fail to build because the linter option was not recognised. Document why the remaining linters in `Mathlib.Tactic.Linter` are not enabled in `Mathlib.Init`. Either, they are informational (like the `minImports` linter), or not ready to be used project-wide. The `ppRoundtrip` linter arguably covers a middle ground; while it currently has too many false positives to be usable, one could conceivably also add it to Mathlib.Init. This can happen in a future PR, if there are reasons for doing so. See [zulip discussion](https://leanprover.zulipchat.com/#narrow/channel/270676-lean4/topic/lake.20doesn't.20find.20option/near/499315240). ESTIMATED CHANGES Modified Mathlib/Init.lean Modified Mathlib/Tactic/Linter.lean Modified Mathlib/Tactic/Linter/FlexibleLinter.lean 2025-04-18 08:12:30 113f360 chore: turn `LieSubmodule.disjoint_iff_toSubmodule` around (#23625) ... mark it simp and make its arguments implicit. Same for its friends. ESTIMATED CHANGES Modified Mathlib/Algebra/Lie/InvariantForm.lean Modified Mathlib/Algebra/Lie/Submodule.lean + theorem LieSubmodule.codisjoint_toSubmodule + theorem LieSubmodule.disjoint_toSubmodule + theorem LieSubmodule.iSupIndep_toSubmodule + theorem LieSubmodule.iSup_toSubmodule_eq_top + theorem LieSubmodule.isCompl_toSubmodule Modified Mathlib/Algebra/Lie/TraceForm.lean Modified Mathlib/Algebra/Lie/Weights/Basic.lean Modified Mathlib/Algebra/Lie/Weights/Chain.lean Modified Mathlib/Algebra/Lie/Weights/Killing.lean 2025-04-18 07:38:42 bab034f feat: the index of the scaling of a subgroup (#24025) From FLT ESTIMATED CHANGES Modified Mathlib/GroupTheory/Index.lean + theorem AddSubgroup.index_smul +/- theorem Subgroup.index_map_eq + theorem Subgroup.index_map_of_bijective 2025-04-18 07:31:34 f8ca9db chore(Fin/Parity): move `{n : ℕ} {k : Fin n}` to `variable` (#24153) ESTIMATED CHANGES Modified Mathlib/Data/Fin/Parity.lean +/- theorem Fin.even_add_one_iff_odd +/- theorem Fin.even_iff +/- theorem Fin.even_iff_imp +/- theorem Fin.even_iff_mod_of_even +/- theorem Fin.even_iff_of_even +/- theorem Fin.even_of_odd +/- theorem Fin.even_of_val +/- theorem Fin.not_even_iff_odd_of_even +/- theorem Fin.not_odd_iff_even_of_even +/- theorem Fin.odd_add_one_iff_even +/- theorem Fin.odd_iff +/- theorem Fin.odd_iff_imp +/- theorem Fin.odd_iff_mod_of_even +/- theorem Fin.odd_iff_of_even +/- theorem Fin.odd_of_odd +/- theorem Fin.odd_of_val 2025-04-18 00:22:48 5cffd16 feat: generalize `TwoSidedIdeal.matricesOver` to `RingCon` (#23641) This generalizes the result to non-associative rings, and most of results to non-unital rings. ESTIMATED CHANGES Modified Mathlib/Data/Matrix/Basis.lean + theorem Matrix.StdBasisMatrix.stdBasisMatrix_mul_mul_stdBasisMatrix Modified Mathlib/LinearAlgebra/Matrix/Ideal.lean + theorem RingCon.coe_ofMatrix_eq_relationMap + def RingCon.matrix + theorem RingCon.matrix_apply + theorem RingCon.matrix_apply_stdBasisMatrix + theorem RingCon.matrix_bot + theorem RingCon.matrix_injective + theorem RingCon.matrix_monotone + theorem RingCon.matrix_ofMatrix + theorem RingCon.matrix_strictMono_of_nonempty + theorem RingCon.matrix_top + def RingCon.ofMatrix + theorem RingCon.ofMatrix_matrix + theorem RingCon.ofMatrix_rel' + theorem RingCon.ofMatrix_rel + theorem TwoSidedIdeal.coe_equivMatricesOver_symm_apply +/- def TwoSidedIdeal.equivMatricesOver +/- def TwoSidedIdeal.matricesOver +/- theorem TwoSidedIdeal.matricesOver_bot +/- theorem TwoSidedIdeal.matricesOver_top +/- def TwoSidedIdeal.orderIsoMatricesOver Modified Mathlib/RingTheory/Congruence/Defs.lean + theorem RingCon.coe_mk Modified Mathlib/RingTheory/SimpleRing/Matrix.lean Modified Mathlib/RingTheory/TwoSidedIdeal/Basic.lean + theorem TwoSidedIdeal.coe_mk + theorem TwoSidedIdeal.mem_mk 2025-04-17 23:56:18 dad08fa feat: `PiFin.mkLiteralQ` and `Matrix.mkLiteralQ` (#24101) This defines some new functions to match the `Qq.mkSetLiteralQ` from #23025. The commented `pexpr` function is really just the syntax quotation `` `(![$xs,*]) ``, so it is no longer worth keeping around. This deliberately uses `Fin n → Q($α)` instead of `Vector Q($α) n` as the former saves needing to allocate an auxiliary array, and the latter still can be used by passing in `v.get : Fin n → Q($α)`. This also cleans up and adds some related tests. ESTIMATED CHANGES Modified Mathlib/Data/Fin/VecNotation.lean + def PiFin.mkLiteralQ Modified Mathlib/Data/Matrix/Notation.lean + def Matrix.mkLiteralQ Modified MathlibTest/matrix.lean Modified MathlibTest/vec_notation.lean 2025-04-17 22:12:29 3553305 feat(BigOperators/Ring): add `Finset.prod_neg` (#24146) ESTIMATED CHANGES Modified Mathlib/Algebra/BigOperators/Ring/Finset.lean + theorem Finset.prod_neg 2025-04-17 18:29:30 579c35b feat(Combinatorics/SimpleGraph): miscellaneous walk lemmas (#22242) Adds some miscellaneous lemmas on walks, in preparation for Tutte's theorem. ESTIMATED CHANGES Modified Mathlib/Combinatorics/SimpleGraph/Connectivity/Subgraph.lean + theorem SimpleGraph.Walk.exists_mem_support_forall_mem_support_imp_eq + theorem SimpleGraph.Walk.exists_mem_support_mem_erase_mem_support_takeUntil_eq_empty Modified Mathlib/Combinatorics/SimpleGraph/Connectivity/WalkDecomp.lean + theorem SimpleGraph.Walk.not_mem_support_takeUntil_support_takeUntil_subset - theorem SimpleGraph.Walk.not_mem_support_takeUntil_takeUntil Modified Mathlib/Combinatorics/SimpleGraph/Metric.lean + theorem SimpleGraph.Walk.exists_adj_adj_not_adj_ne Modified Mathlib/Combinatorics/SimpleGraph/Path.lean + theorem SimpleGraph.ConnectedComponent.connected_induce_supp + theorem SimpleGraph.ConnectedComponent.reachable_induce_supp Modified Mathlib/Combinatorics/SimpleGraph/Walk.lean + theorem SimpleGraph.Walk.exists_length_eq_one_iff 2025-04-17 16:41:49 9ec5b5d feat: Nat.toDigits_length (#24126) Also generalize Nat.toDigitsCore_length. ESTIMATED CHANGES Modified Mathlib/Data/Nat/Digits.lean +/- theorem Nat.repr_length +/- theorem Nat.toDigitsCore_length + theorem Nat.toDigits_length 2025-04-17 15:55:31 4a76948 fix(ByContra hover): hover over by_contra! gets its doc-string back (#24087) Before this change, hovering over `by_contra!` showed `this : ¬?m.45`, i.e., the hover information coming from the implicit `this`. With this change, the hover information over `by_contra!` is the `by_contra!` doc-string string. The `by_contra` tactic from `Batteries` still suffers from a similar problem: the hover shows information about a `hole`, rather than the content of the `by_contra` doc-string. [#mathlib4 > Hover on by_contra! is not helpful @ 💬](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Hover.20on.20by_contra!.20is.20not.20helpful/near/512334655) ESTIMATED CHANGES Modified Mathlib/Tactic/ByContra.lean 2025-04-17 14:45:00 446b459 chore: replace mono by gcongr (#23968) gcongr is more maintained, and slightly faster here. ESTIMATED CHANGES Modified Mathlib/Dynamics/OmegaLimit.lean 2025-04-17 13:52:32 1f4ab9d feat: add lemma `Submodule.length_lt` (#24133) This lemma is useful for reasoning inductively based on module length (in combination with a natural-number-valued length function for finite-length modules). ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/Eigenspace/Pi.lean Modified Mathlib/LinearAlgebra/FiniteDimensional/Lemmas.lean +/- theorem Submodule.finrank_lt Modified Mathlib/RingTheory/Length.lean + theorem Submodule.height_lt_top + theorem Submodule.height_strictMono + theorem Submodule.length_lt 2025-04-17 13:24:29 9ebc666 feat(Interval/Finset/Fin): add lemmas about `Finset.image` (#23420) ... and `Finset.map`. Also deprecate 2 lemmas that `@[simp]`lified in the other direction. ESTIMATED CHANGES Modified Mathlib/Algebra/BigOperators/Fin.lean Modified Mathlib/Data/Finset/Fin.lean +/- theorem Finset.card_attachFin +/- theorem Finset.mem_attachFin Modified Mathlib/Data/Fintype/Fin.lean +/- theorem Fin.Iio_castSucc +/- theorem Fin.Ioi_succ Modified Mathlib/Order/Interval/Finset/Fin.lean + theorem Fin.finsetImage_addNat_Icc + theorem Fin.finsetImage_addNat_Ici + theorem Fin.finsetImage_addNat_Ico + theorem Fin.finsetImage_addNat_Ioc + theorem Fin.finsetImage_addNat_Ioi + theorem Fin.finsetImage_addNat_Ioo + theorem Fin.finsetImage_addNat_uIcc + theorem Fin.finsetImage_castAdd_Icc + theorem Fin.finsetImage_castAdd_Ici + theorem Fin.finsetImage_castAdd_Ico + theorem Fin.finsetImage_castAdd_Iic + theorem Fin.finsetImage_castAdd_Iio + theorem Fin.finsetImage_castAdd_Ioc + theorem Fin.finsetImage_castAdd_Ioi + theorem Fin.finsetImage_castAdd_Ioo + theorem Fin.finsetImage_castAdd_uIcc + theorem Fin.finsetImage_castLE_Icc + theorem Fin.finsetImage_castLE_Ico + theorem Fin.finsetImage_castLE_Iic + theorem Fin.finsetImage_castLE_Iio + theorem Fin.finsetImage_castLE_Ioc + theorem Fin.finsetImage_castLE_Ioo + theorem Fin.finsetImage_castLE_uIcc + theorem Fin.finsetImage_castSucc_Icc + theorem Fin.finsetImage_castSucc_Ici + theorem Fin.finsetImage_castSucc_Ico + theorem Fin.finsetImage_castSucc_Iic + theorem Fin.finsetImage_castSucc_Iio + theorem Fin.finsetImage_castSucc_Ioc + theorem Fin.finsetImage_castSucc_Ioi + theorem Fin.finsetImage_castSucc_Ioo + theorem Fin.finsetImage_castSucc_uIcc + theorem Fin.finsetImage_cast_Icc + theorem Fin.finsetImage_cast_Ici + theorem Fin.finsetImage_cast_Ico + theorem Fin.finsetImage_cast_Iic + theorem Fin.finsetImage_cast_Iio + theorem Fin.finsetImage_cast_Ioc + theorem Fin.finsetImage_cast_Ioi + theorem Fin.finsetImage_cast_Ioo + theorem Fin.finsetImage_cast_uIcc + theorem Fin.finsetImage_natAdd_Icc + theorem Fin.finsetImage_natAdd_Ici + theorem Fin.finsetImage_natAdd_Ico + theorem Fin.finsetImage_natAdd_Ioc + theorem Fin.finsetImage_natAdd_Ioi + theorem Fin.finsetImage_natAdd_Ioo + theorem Fin.finsetImage_natAdd_uIcc + theorem Fin.finsetImage_rev_Icc + theorem Fin.finsetImage_rev_Ici + theorem Fin.finsetImage_rev_Ico + theorem Fin.finsetImage_rev_Iic + theorem Fin.finsetImage_rev_Iio + theorem Fin.finsetImage_rev_Ioc + theorem Fin.finsetImage_rev_Ioi + theorem Fin.finsetImage_rev_Ioo + theorem Fin.finsetImage_rev_uIcc + theorem Fin.finsetImage_succ_Icc + theorem Fin.finsetImage_succ_Ici + theorem Fin.finsetImage_succ_Ico + theorem Fin.finsetImage_succ_Iic + theorem Fin.finsetImage_succ_Iio + theorem Fin.finsetImage_succ_Ioc + theorem Fin.finsetImage_succ_Ioi + theorem Fin.finsetImage_succ_Ioo + theorem Fin.finsetImage_succ_uIcc + theorem Fin.finsetImage_val_Icc + theorem Fin.finsetImage_val_Ici + theorem Fin.finsetImage_val_Ico + theorem Fin.finsetImage_val_Iic + theorem Fin.finsetImage_val_Iio + theorem Fin.finsetImage_val_Ioc + theorem Fin.finsetImage_val_Ioi + theorem Fin.finsetImage_val_Ioo + theorem Fin.finsetImage_val_uIcc + theorem Fin.map_addNatEmb_Icc + theorem Fin.map_addNatEmb_Ici + theorem Fin.map_addNatEmb_Ico + theorem Fin.map_addNatEmb_Ioc + theorem Fin.map_addNatEmb_Ioi + theorem Fin.map_addNatEmb_Ioo + theorem Fin.map_addNatEmb_uIcc + theorem Fin.map_castAddEmb_Icc + theorem Fin.map_castAddEmb_Ici + theorem Fin.map_castAddEmb_Ico + theorem Fin.map_castAddEmb_Iic + theorem Fin.map_castAddEmb_Iio + theorem Fin.map_castAddEmb_Ioc + theorem Fin.map_castAddEmb_Ioi + theorem Fin.map_castAddEmb_Ioo + theorem Fin.map_castAddEmb_uIcc + theorem Fin.map_castLEEmb_Icc + theorem Fin.map_castLEEmb_Ico + theorem Fin.map_castLEEmb_Iic + theorem Fin.map_castLEEmb_Iio + theorem Fin.map_castLEEmb_Ioc + theorem Fin.map_castLEEmb_Ioo + theorem Fin.map_castLEEmb_uIcc + theorem Fin.map_castSuccEmb_Icc + theorem Fin.map_castSuccEmb_Ici + theorem Fin.map_castSuccEmb_Ico + theorem Fin.map_castSuccEmb_Iic + theorem Fin.map_castSuccEmb_Iio + theorem Fin.map_castSuccEmb_Ioc + theorem Fin.map_castSuccEmb_Ioi + theorem Fin.map_castSuccEmb_Ioo + theorem Fin.map_castSuccEmb_uIcc + theorem Fin.map_finCongr_Icc + theorem Fin.map_finCongr_Ici + theorem Fin.map_finCongr_Ico + theorem Fin.map_finCongr_Iic + theorem Fin.map_finCongr_Iio + theorem Fin.map_finCongr_Ioc + theorem Fin.map_finCongr_Ioi + theorem Fin.map_finCongr_Ioo + theorem Fin.map_finCongr_uIcc + theorem Fin.map_natAddEmb_Icc + theorem Fin.map_natAddEmb_Ici + theorem Fin.map_natAddEmb_Ico + theorem Fin.map_natAddEmb_Ioc + theorem Fin.map_natAddEmb_Ioi + theorem Fin.map_natAddEmb_Ioo + theorem Fin.map_natAddEmb_uIcc + theorem Fin.map_revPerm_Icc + theorem Fin.map_revPerm_Ici + theorem Fin.map_revPerm_Ico + theorem Fin.map_revPerm_Iic + theorem Fin.map_revPerm_Iio + theorem Fin.map_revPerm_Ioc + theorem Fin.map_revPerm_Ioi + theorem Fin.map_revPerm_Ioo + theorem Fin.map_revPerm_uIcc + theorem Fin.map_succEmb_Icc + theorem Fin.map_succEmb_Ici + theorem Fin.map_succEmb_Ico + theorem Fin.map_succEmb_Iic + theorem Fin.map_succEmb_Iio + theorem Fin.map_succEmb_Ioc + theorem Fin.map_succEmb_Ioi + theorem Fin.map_succEmb_Ioo + theorem Fin.map_succEmb_uIcc +/- theorem Fin.map_valEmbedding_Icc +/- theorem Fin.map_valEmbedding_Ici +/- theorem Fin.map_valEmbedding_Ico +/- theorem Fin.map_valEmbedding_Iic +/- theorem Fin.map_valEmbedding_Iio +/- theorem Fin.map_valEmbedding_Ioc +/- theorem Fin.map_valEmbedding_Ioi +/- theorem Fin.map_valEmbedding_Ioo +/- theorem Fin.map_valEmbedding_uIcc 2025-04-17 11:01:39 6fb295c feat: `x.swap < (b, a) ↔ x < (a, b)` (#24124) ESTIMATED CHANGES Modified Mathlib/Order/Basic.lean +/- theorem Prod.le_def +/- theorem Prod.mk_le_mk + theorem Prod.mk_le_swap + theorem Prod.mk_lt_swap + theorem Prod.swap_le_mk +/- theorem Prod.swap_le_swap + theorem Prod.swap_lt_mk 2025-04-17 08:00:13 d4fc037 chore: deprecate the file `AnalyticManifold` (#20979) It's now superseded by the generic `IsManifold`. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Deprecated/AnalyticManifold.lean + def analyticGroupoid + theorem analyticGroupoid_prod + def analyticPregroupoid + theorem mem_analyticGroupoid + theorem mem_analyticGroupoid_of_boundaryless + theorem ofSet_mem_analyticGroupoid + theorem symm_trans_mem_analyticGroupoid Modified Mathlib/Geometry/Manifold/AnalyticManifold.lean - def analyticGroupoid - theorem analyticGroupoid_prod - def analyticPregroupoid - theorem mem_analyticGroupoid - theorem mem_analyticGroupoid_of_boundaryless - theorem ofSet_mem_analyticGroupoid - theorem symm_trans_mem_analyticGroupoid 2025-04-17 01:59:06 5d914f0 feat: add a `ToExpr` instance for `Multiset` (#24014) This makes `#eval` produce inspectable terms on Multisets, for which `#eval Multiset.powerset {1, 2, 3}` is probably a good example. ESTIMATED CHANGES Modified Mathlib/Data/Multiset/Sort.lean Modified MathlibTest/eval_elab.lean 2025-04-17 01:13:16 e3601d1 chore: automatically additivize IsScalarTower (#24115) ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Action/Defs.lean Modified Mathlib/Algebra/Group/Action/Pi.lean Modified Mathlib/Algebra/Group/Action/Pointwise/Finset.lean Modified Mathlib/Algebra/Group/Action/Pointwise/Set/Basic.lean Modified Mathlib/Algebra/Group/Action/Prod.lean Modified Mathlib/Algebra/Order/Group/Action/Synonym.lean Modified Mathlib/Analysis/Normed/Lp/WithLp.lean Modified Mathlib/GroupTheory/GroupAction/SubMulAction.lean +/- theorem SMulMemClass.ofIsScalarTower Modified Mathlib/Order/Filter/Pointwise.lean Modified Mathlib/Tactic/ToAdditive/Frontend.lean Modified Mathlib/Topology/Algebra/SeparationQuotient/Basic.lean Modified Mathlib/Topology/Algebra/UniformMulAction.lean 2025-04-17 00:27:07 5fcae8b feat: additivise `Irreducible` (#22904) In the Toric project, we need to talk about (additive) irreducible elements of a lattice cone (they generate the cone). There is no definition of additive irreducible elements in mathlib, but luckily the existing definition of multiplicative irreducible elements talks about general monoids (instead of merely monoids with zero). This PR additivises all the API, except for the parts about divisibility and monoids with zero, and moves it to a new file under `Algebra.Group`. From Toric ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Group/Irreducible/Defs.lean + structure AddIrreducible + theorem Irreducible.ne_one + structure Irreducible + theorem irreducible_iff + theorem irreducible_or_factor + theorem not_irreducible_one + theorem of_irreducible_mul Added Mathlib/Algebra/Group/Irreducible/Lemmas.lean + theorem Irreducible.not_square + theorem Irreducible.of_map + theorem IsSquare.not_irreducible + theorem MulEquiv.irreducible_iff + theorem irreducible_isUnit_mul + theorem irreducible_mul_iff + theorem irreducible_mul_isUnit + theorem irreducible_mul_units + theorem irreducible_units_mul + theorem not_irreducible_pow Modified Mathlib/Algebra/Group/Units/Equiv.lean + theorem MulEquiv.isUnit_map +/- theorem isLocalHom_equiv Modified Mathlib/Algebra/Prime/Defs.lean - theorem Irreducible.ne_one +/- theorem Irreducible.not_dvd_one - structure Irreducible - theorem irreducible_iff - theorem irreducible_or_factor - theorem not_irreducible_one - theorem of_irreducible_mul Modified Mathlib/Algebra/Prime/Lemmas.lean - theorem Irreducible.map - theorem Irreducible.not_square - theorem Irreducible.of_map - theorem IsSquare.not_irreducible - theorem MulEquiv.irreducible_iff - theorem irreducible_isUnit_mul - theorem irreducible_mul_iff - theorem irreducible_mul_isUnit - theorem irreducible_mul_units - theorem irreducible_units_mul - theorem not_irreducible_pow Modified Mathlib/Tactic/ToAdditive/Frontend.lean 2025-04-16 22:42:49 3821c1d chore(Topology.Algebra.Valued.WithVal): clean up typeclass assumptions (#24125) Currently `WithVal.instCommRing` has `Ring R` and `CommRing R` both in the context resulting in `Valuation` using the `Ring R` instance the statement and the `CommRing R` instance for the body after unwrapping `WithVal`. Other wrapper instances are fixed similarly. ESTIMATED CHANGES Modified Mathlib/Topology/Algebra/Valued/WithVal.lean +/- def WithVal 2025-04-16 20:00:48 422961d chore: cleanup API around order of univariate power series (#24072) The main changes are: - avoid [ENat.lift](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Data/ENat/Basic.html#ENat.lift) in favor of [ENat.toNat](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Data/ENat/Basic.html#ENat.toNat) to avoid dependent types - change a bunch of `order φ < ⊤` assumptions to `φ ≠ 0` - rename `divided_by_X_pow_order` to `divXPowOrder`, and define it concretely for any power series by translating the coefficients (meaning we send 0 to 0) - some golfs in the proofs ESTIMATED CHANGES Modified Mathlib/RingTheory/MvPowerSeries/Basic.lean + theorem MvPowerSeries.X_mul + theorem MvPowerSeries.X_pow_mul + theorem MvPowerSeries.commute_X_pow Modified Mathlib/RingTheory/PowerSeries/Basic.lean + theorem PowerSeries.X_mul + theorem PowerSeries.X_mul_injective - theorem PowerSeries.X_mul_pow_inj + theorem PowerSeries.X_pow_mul + theorem PowerSeries.X_pow_mul_inj + theorem PowerSeries.X_pow_mul_injective +/- theorem PowerSeries.commute_X_pow + theorem PowerSeries.mul_X_injective + theorem PowerSeries.mul_X_pow_injective Modified Mathlib/RingTheory/PowerSeries/Inverse.lean Modified Mathlib/RingTheory/PowerSeries/Order.lean +/- theorem PowerSeries.X_pow_order_dvd + theorem PowerSeries.X_pow_order_mul_divXPowOrder + theorem PowerSeries.coe_toNat_order + theorem PowerSeries.coeff_divXPowOrder + theorem PowerSeries.coeff_of_lt_order_toNat +/- theorem PowerSeries.coeff_order + theorem PowerSeries.constantCoeff_divXPowOrder + theorem PowerSeries.constantCoeff_divXPowOrder_eq_zero_iff + def PowerSeries.divXPowOrder + theorem PowerSeries.divXPowOrder_X + theorem PowerSeries.divXPowOrder_mul_divXPowOrder + theorem PowerSeries.divXPowOrder_zero - def PowerSeries.divided_by_X_pow_order - theorem PowerSeries.divided_by_X_pow_orderMul - theorem PowerSeries.divided_by_X_pow_order_of_X_eq_one +/- theorem PowerSeries.order_zero_of_unit - theorem PowerSeries.self_eq_X_pow_order_mul_divided_by_X_pow_order 2025-04-16 15:35:57 583dd35 feat (RingTheory/PowerSeries/Order) : compute order of power and generalize (#23993) * compute order of power of power series * generalize `order_mul` * generalize lemmas at the end to `[Semiring R] [NoZeroDivisors R]` by proving (`PowerSeries.X_pow_mul_cancel`) that one can divide out by powers on `X` on both sides of an equality. ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Monoid/Unbundled/Basic.lean + theorem trichotomy_of_mul_eq_mul Modified Mathlib/RingTheory/PowerSeries/Basic.lean + theorem PowerSeries.X_mul_cancel + theorem PowerSeries.X_mul_inj + theorem PowerSeries.X_mul_pow_inj + theorem PowerSeries.X_pow_mul_cancel + theorem PowerSeries.commute_X_pow - theorem PowerSeries.eq_zero_or_eq_zero_of_mul_eq_zero + theorem PowerSeries.mul_X_cancel + theorem PowerSeries.mul_X_inj + theorem PowerSeries.mul_X_pow_cancel + theorem PowerSeries.mul_X_pow_inj Modified Mathlib/RingTheory/PowerSeries/Order.lean +/- theorem PowerSeries.divided_by_X_pow_order_of_X_eq_one + theorem PowerSeries.le_order_pow + theorem PowerSeries.order_pow 2025-04-16 13:50:26 da9d909 chore: remove TODO from docstring (#24111) A docstring is surely not the place for a technical TODO involving an implementation issue. ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/Operations.lean 2025-04-16 12:10:49 143cf10 fix: homeomorphisms->homomorphisms (#24097) ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/Hom.lean 2025-04-16 11:45:42 df25981 fix(nolints.yml): continue gracefully if no changes were found (#24110) Fixes #23241. ESTIMATED CHANGES Modified scripts/update_nolints_CI.sh 2025-04-16 09:34:32 79e9db7 feat(Lean/ToExpr): add helper functions to create `Expr` for finsets/sets/multisets (#23025) This PR adds some helper functions for building `Expr` terms for finsets/sets/multisets. One application of this is the creation of certain `simproc`s (see e.g. #23026). ESTIMATED CHANGES Modified Mathlib/Util/Qq.lean + def Qq.mkSetLiteralQ Added MathlibTest/Util/Qq.lean Modified MathlibTest/eval_elab.lean 2025-04-16 09:34:31 9c97e7a feat(NumberField/CanonicalEmbedding/NormLeOne): compute the volume of `NormLeOne` (#22777) We compute the volume of `normLeOne K`. This PR is part of the proof of the Analytic Class Number Formula. ESTIMATED CHANGES Modified Mathlib/Analysis/SpecialFunctions/ImproperIntegrals.lean + theorem integrableOn_exp_mul_Iic + theorem integrableOn_exp_mul_Ioi + theorem integral_exp_mul_Iic + theorem integral_exp_mul_Ioi Modified Mathlib/Data/ENNReal/Real.lean + theorem ENNReal.ofReal_ne_zero_iff Modified Mathlib/MeasureTheory/Constructions/Pi.lean + theorem MeasureTheory.Measure.restrict_pi_pi Modified Mathlib/NumberTheory/NumberField/CanonicalEmbedding/Basic.lean + theorem NumberField.mixedEmbedding.continuous_normAtPlace + theorem NumberField.mixedEmbedding.normAtAllPlaces_image_preimage_of_nonneg Modified Mathlib/NumberTheory/NumberField/CanonicalEmbedding/FundamentalCone.lean + theorem NumberField.mixedEmbedding.measurableSet_fundamentalCone Modified Mathlib/NumberTheory/NumberField/CanonicalEmbedding/NormLeOne.lean + theorem NumberField.mixedEmbedding.fundamentalCone.expMapBasis_apply'' + theorem NumberField.mixedEmbedding.fundamentalCone.logMap_expMapBasis + theorem NumberField.mixedEmbedding.fundamentalCone.measurableSet_normLeOne + theorem NumberField.mixedEmbedding.fundamentalCone.measurableSet_paramSet + theorem NumberField.mixedEmbedding.fundamentalCone.normAtAllPlaces_image_preimage_expMapBasis + theorem NumberField.mixedEmbedding.fundamentalCone.normAtAllPlaces_normLeOne_eq_image + theorem NumberField.mixedEmbedding.fundamentalCone.normLeOne_eq_preimage + theorem NumberField.mixedEmbedding.fundamentalCone.norm_expMapBasis + theorem NumberField.mixedEmbedding.fundamentalCone.norm_expMapBasis_ne_zero + theorem NumberField.mixedEmbedding.fundamentalCone.setLIntegral_paramSet_exp + theorem NumberField.mixedEmbedding.fundamentalCone.volume_normLeOne 2025-04-16 08:54:12 1a64c90 feat(NumberField/Discriminant): better lower bound for totally complex number fields (#24076) ESTIMATED CHANGES Modified Mathlib/NumberTheory/NumberField/Discriminant/Basic.lean + theorem NumberField.abs_discr_ge' + theorem NumberField.abs_discr_ge_of_isTotallyComplex + theorem NumberField.abs_discr_rpow_ge_of_isTotallyComplex Modified Mathlib/NumberTheory/NumberField/Embeddings.lean + theorem NumberField.IsTotallyComplex.nrRealPlaces_eq_zero + theorem NumberField.IsTotallyReal.nrComplexPlaces_eq_zero + theorem NumberField.nrComplexPlaces_eq_zero_iff + theorem NumberField.nrRealPlaces_eq_zero_iff 2025-04-15 18:40:21 2f52b38 chore(RingTheory): fix variable in FilteredAlgebra.Basic (#24071) Fix variable in `FilteredAlgebra.Basic`, removing commutative condition for index set. ESTIMATED CHANGES Modified Mathlib/RingTheory/FilteredAlgebra/Basic.lean 2025-04-15 17:56:22 53b9fb3 chore(Fin): fix some `@[simp]` lemmas (#23967) Some `@[simps]`-generated lemmas use wrong RHS. Also, one lemma was incorrectly named. ESTIMATED CHANGES Modified Mathlib/Algebra/BigOperators/Fin.lean Modified Mathlib/Data/Fin/Basic.lean + theorem Fin.castAddEmb_apply + theorem Fin.castSuccEmb_apply + theorem Fin.coe_castAddEmb + theorem Fin.coe_succEmb - theorem Fin.val_succEmb Modified Mathlib/RingTheory/Idempotents.lean 2025-04-15 16:58:24 595daf8 feat: definition + basic results for chains / strings in root pairings (#24077) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Lie/Weights/Chain.lean Modified Mathlib/Analysis/Convex/Segment.lean Modified Mathlib/LinearAlgebra/LinearIndependent/Lemmas.lean - theorem LinearIndependent.linear_combination_pair_of_det_ne_zero + theorem LinearIndependent.pair_add_smul_add_smul_iff + theorem LinearIndependent.pair_add_smul_left_iff + theorem LinearIndependent.pair_add_smul_right_iff +/- theorem LinearIndependent.pair_iff + theorem LinearIndependent.pair_neg_left_iff + theorem LinearIndependent.pair_neg_right_iff + theorem LinearIndependent.pair_smul_iff +/- theorem LinearIndependent.pair_symm_iff Modified Mathlib/LinearAlgebra/RootSystem/CartanMatrix.lean +/- theorem RootPairing.Base.cartanMatrix_mem_of_ne Added Mathlib/LinearAlgebra/RootSystem/Chain.lean + def RootPairing.chainBotCoeff + theorem RootPairing.chainBotCoeff_add_chainTopCoeff_le + theorem RootPairing.chainBotCoeff_chainTopIdx + theorem RootPairing.chainBotCoeff_of_not_linInd + theorem RootPairing.chainBotCoeff_relfection_perm + theorem RootPairing.chainBotCoeff_sub_chainTopCoeff + def RootPairing.chainBotIdx + theorem RootPairing.chainCoeff_chainTopIdx_aux + def RootPairing.chainTopCoeff + theorem RootPairing.chainTopCoeff_chainTopIdx + theorem RootPairing.chainTopCoeff_of_not_linInd + theorem RootPairing.chainTopCoeff_relfection_perm + theorem RootPairing.chainTopCoeff_sub_chainBotCoeff + def RootPairing.chainTopIdx + theorem RootPairing.root_add_nsmul_mem_range_iff_le_chainTopCoeff + theorem RootPairing.root_add_zsmul_mem_range_iff + theorem RootPairing.root_chainBotIdx + theorem RootPairing.root_chainTopIdx + theorem RootPairing.root_sub_nsmul_mem_range_iff_le_chainBotCoeff + theorem RootPairing.root_sub_zsmul_mem_range_iff + theorem RootPairing.setOf_root_add_zsmul_eq_Icc_of_linInd Modified Mathlib/LinearAlgebra/RootSystem/Finite/Lemmas.lean Modified Mathlib/Order/Interval/Set/Basic.lean + theorem Set.Icc_eq_Icc_iff 2025-04-15 16:43:10 ce5e0f6 fix(nolints.yml): move `print Lean version` step after the installation of Lean (#24088) Fixes an oversight from #23868, which [made the workflow fail](https://github.com/leanprover-community/mathlib4/actions/runs/14424502470/job/40451294006). ESTIMATED CHANGES Modified .github/workflows/nolints.yml 2025-04-15 16:43:09 fad8b5d feat(CategoryTheory/Limits): preservation of multicoequalizers (#22205) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Limits/Preserves/Shapes/Multiequalizer.lean + def CategoryTheory.Limits.Multicofork.isColimitMapEquiv + def CategoryTheory.Limits.Multicofork.map + def CategoryTheory.Limits.MultispanIndex.map + def CategoryTheory.Limits.MultispanIndex.multispanMapIso Modified Mathlib/CategoryTheory/Limits/Shapes/Multiequalizer.lean + def CategoryTheory.Limits.Multicofork.ext 2025-04-15 16:43:08 b533ec6 feat(CategoryTheory/Limits): multicoequalizers attached to linear orders (#22203) Certain multicoequalizers are defined by coequalizing maps `V ⟨i, j⟩ ⟶ U i` and `V ⟨i, j⟩ ⟶ U j` for `i` and `j` in a type `ι`. When `ι` is linearly ordered and if the objects `V` satisfy a certain symmetry, we show that it suffices to consider the "relations" given by tuples `⟨i, j⟩` such that `i < j`. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Limits/Shapes/Multiequalizer.lean + theorem CategoryTheory.Limits.Multicofork.IsColimit.hom_ext + def CategoryTheory.Limits.Multicofork.isColimitToLinearOrder + def CategoryTheory.Limits.Multicofork.ofLinearOrder + def CategoryTheory.Limits.Multicofork.toLinearOrder + structure CategoryTheory.Limits.MultispanIndex.SymmStruct + def CategoryTheory.Limits.MultispanIndex.toLinearOrder + def CategoryTheory.Limits.MultispanIndex.toLinearOrderMultispanIso + def CategoryTheory.Limits.MultispanShape.ofLinearOrder + def CategoryTheory.Limits.WalkingMultispan.inclusionOfLinearOrder 2025-04-15 16:20:33 bc0f16d chore(Archimedean/Basic): minor cleanup (#23854) ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Archimedean/Basic.lean +/- theorem exists_lt_pow +/- theorem exists_nat_ge 2025-04-15 15:31:38 fb24ff1 chore(CategoryTheory/Over): fix name of `Under.pullbackComp` (#24084) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Comma/Over/Pullback.lean - def CategoryTheory.Under.pullbackComp + def CategoryTheory.Under.pushoutComp 2025-04-15 15:08:48 f6d7b21 doc: correct scope name (#24085) ESTIMATED CHANGES Modified Mathlib/Algebra/Polynomial/Bivariate.lean 2025-04-15 14:18:06 cd81a4d chore: exchange `Nat.sub_lt_iff_lt_add` and `Nat.sub_lt_iff_lt_add'` (#24080) This PR swaps `Nat.sub_lt_iff_lt_add` and `Nat.sub_lt_iff_lt_add'` to align them with the top-level `sub_lt_iff_lt_add` and `sub_lt_iff_lt_add'` lemmas. leanprover/lean4#7971 will upstream these lemmas with this swapped meaning. ESTIMATED CHANGES Modified Archive/Imo/Imo2024Q3.lean Modified Mathlib/Data/List/Rotate.lean Modified Mathlib/Data/Nat/Init.lean Modified Mathlib/Order/WellFoundedSet.lean 2025-04-15 13:58:25 14e3303 feat(CategoryTheory): `ChosenFiniteProducts (Over X)` (#21399) From Toric ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/ChosenFiniteProducts/Over.lean + theorem CategoryTheory.Over.associator_hom_left_fst + theorem CategoryTheory.Over.associator_hom_left_snd_fst + theorem CategoryTheory.Over.associator_hom_left_snd_snd + theorem CategoryTheory.Over.associator_inv_left_fst_fst + theorem CategoryTheory.Over.associator_inv_left_fst_snd + theorem CategoryTheory.Over.associator_inv_left_snd + theorem CategoryTheory.Over.braiding_hom_left + theorem CategoryTheory.Over.braiding_inv_left + def CategoryTheory.Over.chosenFiniteProducts + theorem CategoryTheory.Over.leftUnitor_hom_left + theorem CategoryTheory.Over.leftUnitor_inv_left_fst + theorem CategoryTheory.Over.leftUnitor_inv_left_snd + theorem CategoryTheory.Over.lift_left + theorem CategoryTheory.Over.rightUnitor_hom_left + theorem CategoryTheory.Over.rightUnitor_inv_left_fst + theorem CategoryTheory.Over.rightUnitor_inv_left_snd + theorem CategoryTheory.Over.tensorHom_left + theorem CategoryTheory.Over.tensorHom_left_fst + theorem CategoryTheory.Over.tensorHom_left_snd + theorem CategoryTheory.Over.tensorObj_ext + theorem CategoryTheory.Over.tensorObj_hom + theorem CategoryTheory.Over.tensorObj_left + theorem CategoryTheory.Over.tensorUnit_hom + theorem CategoryTheory.Over.tensorUnit_left + theorem CategoryTheory.Over.toUnit_left + theorem CategoryTheory.Over.whiskerLeft_left + theorem CategoryTheory.Over.whiskerLeft_left_fst + theorem CategoryTheory.Over.whiskerLeft_left_snd + theorem CategoryTheory.Over.whiskerRight_left + theorem CategoryTheory.Over.whiskerRight_left_fst + theorem CategoryTheory.Over.whiskerRight_left_snd 2025-04-15 12:42:59 bbccb92 chore(BumpFunction/Convolution): drop an assumption (#24063) It comes with a price of importing an extra file. Let's see how much it increases the import closure. ESTIMATED CHANGES Modified Mathlib/Analysis/Calculus/BumpFunction/Convolution.lean +/- theorem ContDiffBump.convolution_eq_right +/- theorem ContDiffBump.normed_convolution_eq_right 2025-04-15 12:02:39 091be7a feat(LpSeminorm/Basic): generalise monotonicity section to enorm (#23707) For every lemma about normed spaces, we add an enorm variant. These have virtually identical proofs, sometimes even slightly shorter. Since the new lemmas have slightly different hypotheses (involving enorms, not (nn)norms), I have left the original lemmas untouched for now. I'm happy to investigate their removal, but would like such a conversation to not delay merging this PR. Prepared for the Carleson project: these lemmas are necessary for generalising basic lemmas about operators of weak/strong type to ENorm. In passing, this PR corrects a few related shortcomings which were noticed during development: - weaken a hypothesis of a lemma tweaked in #22798: the hypothesis was already unnecessarily strong; this PR changes it to ContinuousENorm, which suffices. - document that `eLpNorm'` is a purely auxiliary quantity - mention a counterexample why `lintegral_eq_zero_iff'` requires measurability hypotheses ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Function/LpSeminorm/Basic.lean + theorem MeasureTheory.MemLp.of_enorm_le_mul + theorem MeasureTheory.MemLp.of_le_mul' + theorem MeasureTheory.eLpNorm'_eq_zero_of_ae_eq_zero + theorem MeasureTheory.eLpNorm'_le_mul_eLpNorm'_of_ae_le_mul + theorem MeasureTheory.eLpNorm'_le_nnreal_smul_eLpNorm'_of_ae_le_mul' + theorem MeasureTheory.eLpNormEssSup_le_nnreal_smul_eLpNormEssSup_of_ae_le_mul' + theorem MeasureTheory.eLpNorm_le_mul_eLpNorm_of_ae_le_mul'' + theorem MeasureTheory.eLpNorm_le_mul_eLpNorm_of_ae_le_mul' + theorem MeasureTheory.eLpNorm_le_nnreal_smul_eLpNorm_of_ae_le_mul' Modified Mathlib/MeasureTheory/Function/LpSeminorm/Defs.lean Modified Mathlib/MeasureTheory/Function/StronglyMeasurable/AEStronglyMeasurable.lean Modified Mathlib/MeasureTheory/Integral/Lebesgue/Basic.lean 2025-04-15 10:53:35 07e3420 feat (Yoneda): (co)representing objects are unique up to iso (#24059) * Add isomorphisms that witness the uniqueness of (co)representing objects of a given functor * Add isomorphisms that witness the isomorphism of any given (co)representing object to `(co)reprX` * Add `Coyoneda.ext` to match `Yoneda.ext` (used in the constructions above). ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Yoneda.lean + def CategoryTheory.Coyoneda.ext + def CategoryTheory.Functor.CorepresentableBy.uniqueUpToIso + def CategoryTheory.Functor.RepresentableBy.uniqueUpToIso 2025-04-15 10:53:34 aa17f77 chore(Finsupp/Interval): remove `open scoped Classical` (#24055) Removing it from the definitions is easier than adding it to all the theorems and adding `convert`s as appropriate. This has a knock-on effect on `MvPowerSeries`, but "you must be able to tell which variable is which" is hardly demanding\! ESTIMATED CHANGES Modified Mathlib/Data/Finsupp/Interval.lean Modified Mathlib/RingTheory/MvPowerSeries/Evaluation.lean Modified Mathlib/RingTheory/MvPowerSeries/LinearTopology.lean Modified Mathlib/RingTheory/MvPowerSeries/Trunc.lean 2025-04-15 10:53:32 a9eda3d feat: add characterisation of closed interval for locally-finite conditionally complete linear orders (#23910) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Order/Interval/Set/OrdConnectedLinear.lean + theorem Set.Nonempty.eq_Icc_iff_int + theorem Set.Nonempty.eq_Icc_iff_nat + theorem Set.Nonempty.ordConnected_iff_of_bdd' + theorem Set.Nonempty.ordConnected_iff_of_bdd + theorem Set.ordConnected_iff_disjoint_Ioo_empty Modified Mathlib/Order/SuccPred/Basic.lean + theorem Order.Ioo_eq_empty_iff_le_succ + theorem Order.Ioo_eq_empty_iff_pred_le 2025-04-15 10:46:54 bec8403 chore: split `MeasureTheory.Integral.SetToL1` (#24075) Move `(Dominated)FinMeasAdditive` and the lemmas about them to `.FinMeasAdditive`. This is the last long file to be split. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/MeasureTheory/Integral/FinMeasAdditive.lean + theorem MeasureTheory.DominatedFinMeasAdditive.add + theorem MeasureTheory.DominatedFinMeasAdditive.add_measure_left + theorem MeasureTheory.DominatedFinMeasAdditive.add_measure_right + theorem MeasureTheory.DominatedFinMeasAdditive.eq_zero + theorem MeasureTheory.DominatedFinMeasAdditive.eq_zero_of_measure_zero + theorem MeasureTheory.DominatedFinMeasAdditive.of_measure_le + theorem MeasureTheory.DominatedFinMeasAdditive.of_measure_le_smul + theorem MeasureTheory.DominatedFinMeasAdditive.of_smul_measure + theorem MeasureTheory.DominatedFinMeasAdditive.smul + theorem MeasureTheory.DominatedFinMeasAdditive.zero + def MeasureTheory.DominatedFinMeasAdditive + theorem MeasureTheory.FinMeasAdditive.add + theorem MeasureTheory.FinMeasAdditive.map_empty_eq_zero + theorem MeasureTheory.FinMeasAdditive.map_iUnion_fin_meas_set_eq_sum + theorem MeasureTheory.FinMeasAdditive.of_eq_top_imp_eq_top + theorem MeasureTheory.FinMeasAdditive.of_smul_measure + theorem MeasureTheory.FinMeasAdditive.smul + theorem MeasureTheory.FinMeasAdditive.smul_measure + theorem MeasureTheory.FinMeasAdditive.smul_measure_iff + theorem MeasureTheory.FinMeasAdditive.zero + def MeasureTheory.FinMeasAdditive + theorem MeasureTheory.SimpleFunc.map_setToSimpleFunc + theorem MeasureTheory.SimpleFunc.norm_setToSimpleFunc_le_sum_mul_norm + theorem MeasureTheory.SimpleFunc.norm_setToSimpleFunc_le_sum_mul_norm_of_integrable + theorem MeasureTheory.SimpleFunc.norm_setToSimpleFunc_le_sum_opNorm + def MeasureTheory.SimpleFunc.setToSimpleFunc + theorem MeasureTheory.SimpleFunc.setToSimpleFunc_add + theorem MeasureTheory.SimpleFunc.setToSimpleFunc_add_left' + theorem MeasureTheory.SimpleFunc.setToSimpleFunc_add_left + theorem MeasureTheory.SimpleFunc.setToSimpleFunc_congr' + theorem MeasureTheory.SimpleFunc.setToSimpleFunc_congr + theorem MeasureTheory.SimpleFunc.setToSimpleFunc_congr_left + theorem MeasureTheory.SimpleFunc.setToSimpleFunc_const' + theorem MeasureTheory.SimpleFunc.setToSimpleFunc_const + theorem MeasureTheory.SimpleFunc.setToSimpleFunc_eq_sum_filter + theorem MeasureTheory.SimpleFunc.setToSimpleFunc_indicator + theorem MeasureTheory.SimpleFunc.setToSimpleFunc_mono + theorem MeasureTheory.SimpleFunc.setToSimpleFunc_mono_left' + theorem MeasureTheory.SimpleFunc.setToSimpleFunc_mono_left + theorem MeasureTheory.SimpleFunc.setToSimpleFunc_neg + theorem MeasureTheory.SimpleFunc.setToSimpleFunc_nonneg' + theorem MeasureTheory.SimpleFunc.setToSimpleFunc_nonneg + theorem MeasureTheory.SimpleFunc.setToSimpleFunc_smul + theorem MeasureTheory.SimpleFunc.setToSimpleFunc_smul_left' + theorem MeasureTheory.SimpleFunc.setToSimpleFunc_smul_left + theorem MeasureTheory.SimpleFunc.setToSimpleFunc_smul_real + theorem MeasureTheory.SimpleFunc.setToSimpleFunc_sub + theorem MeasureTheory.SimpleFunc.setToSimpleFunc_zero' + theorem MeasureTheory.SimpleFunc.setToSimpleFunc_zero + theorem MeasureTheory.SimpleFunc.setToSimpleFunc_zero_apply Modified Mathlib/MeasureTheory/Integral/SetToL1.lean - theorem MeasureTheory.DominatedFinMeasAdditive.add - theorem MeasureTheory.DominatedFinMeasAdditive.add_measure_left - theorem MeasureTheory.DominatedFinMeasAdditive.add_measure_right - theorem MeasureTheory.DominatedFinMeasAdditive.eq_zero - theorem MeasureTheory.DominatedFinMeasAdditive.eq_zero_of_measure_zero - theorem MeasureTheory.DominatedFinMeasAdditive.of_measure_le - theorem MeasureTheory.DominatedFinMeasAdditive.of_measure_le_smul - theorem MeasureTheory.DominatedFinMeasAdditive.of_smul_measure - theorem MeasureTheory.DominatedFinMeasAdditive.smul - theorem MeasureTheory.DominatedFinMeasAdditive.zero - def MeasureTheory.DominatedFinMeasAdditive - theorem MeasureTheory.FinMeasAdditive.add - theorem MeasureTheory.FinMeasAdditive.map_empty_eq_zero - theorem MeasureTheory.FinMeasAdditive.map_iUnion_fin_meas_set_eq_sum - theorem MeasureTheory.FinMeasAdditive.of_eq_top_imp_eq_top - theorem MeasureTheory.FinMeasAdditive.of_smul_measure - theorem MeasureTheory.FinMeasAdditive.smul - theorem MeasureTheory.FinMeasAdditive.smul_measure - theorem MeasureTheory.FinMeasAdditive.smul_measure_iff - theorem MeasureTheory.FinMeasAdditive.zero - def MeasureTheory.FinMeasAdditive - theorem MeasureTheory.SimpleFunc.map_setToSimpleFunc - theorem MeasureTheory.SimpleFunc.norm_setToSimpleFunc_le_sum_mul_norm - theorem MeasureTheory.SimpleFunc.norm_setToSimpleFunc_le_sum_mul_norm_of_integrable - theorem MeasureTheory.SimpleFunc.norm_setToSimpleFunc_le_sum_opNorm - def MeasureTheory.SimpleFunc.setToSimpleFunc - theorem MeasureTheory.SimpleFunc.setToSimpleFunc_add - theorem MeasureTheory.SimpleFunc.setToSimpleFunc_add_left' - theorem MeasureTheory.SimpleFunc.setToSimpleFunc_add_left - theorem MeasureTheory.SimpleFunc.setToSimpleFunc_congr' - theorem MeasureTheory.SimpleFunc.setToSimpleFunc_congr - theorem MeasureTheory.SimpleFunc.setToSimpleFunc_congr_left - theorem MeasureTheory.SimpleFunc.setToSimpleFunc_const' - theorem MeasureTheory.SimpleFunc.setToSimpleFunc_const - theorem MeasureTheory.SimpleFunc.setToSimpleFunc_eq_sum_filter - theorem MeasureTheory.SimpleFunc.setToSimpleFunc_indicator - theorem MeasureTheory.SimpleFunc.setToSimpleFunc_mono - theorem MeasureTheory.SimpleFunc.setToSimpleFunc_mono_left' - theorem MeasureTheory.SimpleFunc.setToSimpleFunc_mono_left - theorem MeasureTheory.SimpleFunc.setToSimpleFunc_neg - theorem MeasureTheory.SimpleFunc.setToSimpleFunc_nonneg' - theorem MeasureTheory.SimpleFunc.setToSimpleFunc_nonneg - theorem MeasureTheory.SimpleFunc.setToSimpleFunc_smul - theorem MeasureTheory.SimpleFunc.setToSimpleFunc_smul_left' - theorem MeasureTheory.SimpleFunc.setToSimpleFunc_smul_left - theorem MeasureTheory.SimpleFunc.setToSimpleFunc_smul_real - theorem MeasureTheory.SimpleFunc.setToSimpleFunc_sub - theorem MeasureTheory.SimpleFunc.setToSimpleFunc_zero' - theorem MeasureTheory.SimpleFunc.setToSimpleFunc_zero - theorem MeasureTheory.SimpleFunc.setToSimpleFunc_zero_apply 2025-04-15 09:57:23 6939380 feat: a binary fan in `Over X` is the same thing as a pullback cone to `X` (#23723) From Toric ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Limits/Constructions/Over/Products.lean + def CategoryTheory.Limits.IsColimit.pushoutCoconeEquivBinaryCofanFunctor + def CategoryTheory.Limits.IsColimit.pushoutCoconeEquivBinaryCofanInverse + def CategoryTheory.Limits.IsLimit.pullbackConeEquivBinaryFanFunctor + def CategoryTheory.Limits.IsLimit.pullbackConeEquivBinaryFanInverse + def CategoryTheory.Limits.Over.ConstructProducts.conesEquiv + def CategoryTheory.Limits.Over.ConstructProducts.conesEquivCounitIso + def CategoryTheory.Limits.Over.ConstructProducts.conesEquivFunctor + def CategoryTheory.Limits.Over.ConstructProducts.conesEquivInverse + def CategoryTheory.Limits.Over.ConstructProducts.conesEquivInverseObj + def CategoryTheory.Limits.Over.ConstructProducts.conesEquivUnitIso + theorem CategoryTheory.Limits.Over.ConstructProducts.has_over_limit_discrete_of_widePullback_limit + theorem CategoryTheory.Limits.Over.ConstructProducts.over_binaryProduct_of_pullback + theorem CategoryTheory.Limits.Over.ConstructProducts.over_finiteProducts_of_finiteWidePullbacks + theorem CategoryTheory.Limits.Over.ConstructProducts.over_product_of_widePullback + theorem CategoryTheory.Limits.Over.ConstructProducts.over_products_of_widePullbacks + theorem CategoryTheory.Limits.Over.isPullback_of_binaryFan_isLimit + theorem CategoryTheory.Limits.Over.over_hasTerminal + def CategoryTheory.Limits.Over.prodLeftIsoPullback + theorem CategoryTheory.Limits.Over.prodLeftIsoPullback_hom_fst + theorem CategoryTheory.Limits.Over.prodLeftIsoPullback_hom_snd + theorem CategoryTheory.Limits.Over.prodLeftIsoPullback_inv_fst + theorem CategoryTheory.Limits.Over.prodLeftIsoPullback_inv_snd + def CategoryTheory.Limits.pullbackConeEquivBinaryFan + def CategoryTheory.Limits.pushoutCoconeEquivBinaryCofan - def CategoryTheory.Over.ConstructProducts.conesEquiv - def CategoryTheory.Over.ConstructProducts.conesEquivCounitIso - def CategoryTheory.Over.ConstructProducts.conesEquivFunctor - def CategoryTheory.Over.ConstructProducts.conesEquivInverse - def CategoryTheory.Over.ConstructProducts.conesEquivInverseObj - def CategoryTheory.Over.ConstructProducts.conesEquivUnitIso - theorem CategoryTheory.Over.ConstructProducts.has_over_limit_discrete_of_widePullback_limit - theorem CategoryTheory.Over.ConstructProducts.over_binaryProduct_of_pullback - theorem CategoryTheory.Over.ConstructProducts.over_finiteProducts_of_finiteWidePullbacks - theorem CategoryTheory.Over.ConstructProducts.over_product_of_widePullback - theorem CategoryTheory.Over.ConstructProducts.over_products_of_widePullbacks - theorem CategoryTheory.Over.isPullback_of_binaryFan_isLimit - theorem CategoryTheory.Over.over_hasTerminal - def CategoryTheory.Over.prodLeftIsoPullback - theorem CategoryTheory.Over.prodLeftIsoPullback_hom_fst - theorem CategoryTheory.Over.prodLeftIsoPullback_hom_snd - theorem CategoryTheory.Over.prodLeftIsoPullback_inv_fst - theorem CategoryTheory.Over.prodLeftIsoPullback_inv_snd Modified Mathlib/CategoryTheory/Limits/Shapes/BinaryProducts.lean + theorem CategoryTheory.Limits.BinaryCofan.ext_hom_hom + theorem CategoryTheory.Limits.BinaryFan.ext_hom_hom 2025-04-15 09:16:30 9608176 feat(RingTheory/LocalRing): results for non-local rings (#24043) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/RingTheory/LocalRing/NonLocalRing.lean + theorem IsLocalRing.exists_surjective_of_not_isLocalRing.{u} + theorem IsLocalRing.not_isLocalRing_def + theorem IsLocalRing.not_isLocalRing_of_nontrivial_pi + theorem IsLocalRing.not_isLocalRing_of_prod_of_nontrivial + theorem IsLocalRing.not_isLocalRing_tfae 2025-04-15 08:42:04 6b8c3cc chore: split `MeasureTheory.Integral.SetIntegral` (#24070) Split off * `MeasureTheory.Integral.Bochner.ContinuousLinearMap` for the commuting of continuous linear maps with the Bochner integral * `MeasureTheory.Integral.Bochner.FundThmCalculus` for the fundamental theorem of calculus on set integrals The file itself is also renamed to `MeasureTheory.Integral.Bochner.Set`. ESTIMATED CHANGES Modified Counterexamples/Phillips.lean Modified Mathlib.lean Modified Mathlib/Analysis/BoxIntegral/Integrability.lean Modified Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Integral.lean Modified Mathlib/Analysis/Calculus/BumpFunction/Normed.lean Modified Mathlib/Analysis/Calculus/ParametricIntegral.lean Modified Mathlib/Analysis/Fourier/FourierTransform.lean Modified Mathlib/Analysis/Fourier/RiemannLebesgueLemma.lean Modified Mathlib/MeasureTheory/Function/AEEqOfIntegral.lean Modified Mathlib/MeasureTheory/Function/L2Space.lean Modified Mathlib/MeasureTheory/Group/FundamentalDomain.lean Modified Mathlib/MeasureTheory/Integral/Asymptotics.lean Modified Mathlib/MeasureTheory/Integral/Average.lean Added Mathlib/MeasureTheory/Integral/Bochner/ContinuousLinearMap.lean + theorem ContinuousLinearEquiv.integral_comp_comm + theorem ContinuousLinearMap.continuous_integral_comp_L1 + theorem ContinuousLinearMap.integral_apply + theorem ContinuousLinearMap.integral_compLp + theorem ContinuousLinearMap.integral_comp_L1_comm + theorem ContinuousLinearMap.integral_comp_comm' + theorem ContinuousLinearMap.integral_comp_comm + theorem ContinuousLinearMap.setIntegral_compLp + theorem ContinuousMap.integral_apply + theorem ContinuousMapZero.integral_apply + theorem ContinuousMultilinearMap.integral_apply + theorem LinearIsometry.integral_comp_comm + theorem fst_integral + theorem integral_coe_re_add_coe_im + theorem integral_complex_ofReal + theorem integral_conj + theorem integral_im + theorem integral_ofReal + theorem integral_pair + theorem integral_re + theorem integral_re_add_im + theorem integral_smul_const + theorem integral_withDensity_eq_integral_smul + theorem integral_withDensity_eq_integral_smul₀ + theorem integral_withDensity_eq_integral_toReal_smul + theorem integral_withDensity_eq_integral_toReal_smul₀ + theorem setIntegral_re_add_im + theorem setIntegral_withDensity_eq_setIntegral_smul + theorem setIntegral_withDensity_eq_setIntegral_smul₀' + theorem setIntegral_withDensity_eq_setIntegral_smul₀ + theorem setIntegral_withDensity_eq_setIntegral_toReal_smul' + theorem setIntegral_withDensity_eq_setIntegral_toReal_smul + theorem setIntegral_withDensity_eq_setIntegral_toReal_smul₀' + theorem setIntegral_withDensity_eq_setIntegral_toReal_smul₀ + theorem snd_integral + theorem swap_integral Added Mathlib/MeasureTheory/Integral/Bochner/FundThmCalculus.lean + theorem ContinuousAt.integral_sub_linear_isLittleO_ae + theorem ContinuousOn.integral_sub_linear_isLittleO_ae + theorem ContinuousWithinAt.integral_sub_linear_isLittleO_ae + theorem Filter.Tendsto.integral_sub_linear_isLittleO_ae Added Mathlib/MeasureTheory/Integral/Bochner/Set.lean + theorem Continuous.integral_pos_of_hasCompactSupport_nonneg_nonzero + theorem MeasurableEmbedding.setIntegral_map + theorem MeasureTheory.Integrable.measure_le_integral + theorem MeasureTheory.Integrable.simpleFunc_mul' + theorem MeasureTheory.Integrable.simpleFunc_mul + theorem MeasureTheory.LpToLpRestrictCLM_coeFn + theorem MeasureTheory.Lp_toLp_restrict_add + theorem MeasureTheory.Lp_toLp_restrict_smul + theorem MeasureTheory.MeasurePreserving.setIntegral_image_emb + theorem MeasureTheory.MeasurePreserving.setIntegral_preimage_emb + theorem MeasureTheory.continuous_setIntegral + theorem MeasureTheory.hasSum_integral_iUnion + theorem MeasureTheory.hasSum_integral_iUnion_ae + theorem MeasureTheory.integrableOn_iUnion_of_summable_integral_norm + theorem MeasureTheory.integrableOn_iUnion_of_summable_norm_restrict + theorem MeasureTheory.integrable_of_summable_norm_restrict + theorem MeasureTheory.integral_Icc_eq_integral_Ico' + theorem MeasureTheory.integral_Icc_eq_integral_Ico + theorem MeasureTheory.integral_Icc_eq_integral_Ioc' + theorem MeasureTheory.integral_Icc_eq_integral_Ioc + theorem MeasureTheory.integral_Icc_eq_integral_Ioo' + theorem MeasureTheory.integral_Icc_eq_integral_Ioo + theorem MeasureTheory.integral_Ici_eq_integral_Ioi' + theorem MeasureTheory.integral_Ici_eq_integral_Ioi + theorem MeasureTheory.integral_Ico_eq_integral_Ioo' + theorem MeasureTheory.integral_Ico_eq_integral_Ioo + theorem MeasureTheory.integral_Iic_eq_integral_Iio' + theorem MeasureTheory.integral_Iic_eq_integral_Iio + theorem MeasureTheory.integral_Ioc_eq_integral_Ioo' + theorem MeasureTheory.integral_Ioc_eq_integral_Ioo + theorem MeasureTheory.integral_add_compl + theorem MeasureTheory.integral_add_compl₀ + theorem MeasureTheory.integral_diff + theorem MeasureTheory.integral_finset_biUnion + theorem MeasureTheory.integral_fintype_iUnion + theorem MeasureTheory.integral_iUnion + theorem MeasureTheory.integral_iUnion_ae + theorem MeasureTheory.integral_indicator + theorem MeasureTheory.integral_indicatorConstLp + theorem MeasureTheory.integral_indicator_const + theorem MeasureTheory.integral_indicator_one + theorem MeasureTheory.integral_integral_indicator + theorem MeasureTheory.integral_inter_add_diff + theorem MeasureTheory.integral_inter_add_diff₀ + theorem MeasureTheory.integral_le_measure + theorem MeasureTheory.integral_norm_eq_pos_sub_neg + theorem MeasureTheory.integral_piecewise + theorem MeasureTheory.integral_union_ae + theorem MeasureTheory.integral_union_eq_left_of_ae + theorem MeasureTheory.integral_union_eq_left_of_ae_aux + theorem MeasureTheory.integral_union_eq_left_of_forall + theorem MeasureTheory.integral_union_eq_left_of_forall₀ + theorem MeasureTheory.norm_Lp_toLp_restrict_le + theorem MeasureTheory.norm_integral_sub_setIntegral_le + theorem MeasureTheory.norm_setIntegral_le_of_norm_le_const' + theorem MeasureTheory.norm_setIntegral_le_of_norm_le_const + theorem MeasureTheory.norm_setIntegral_le_of_norm_le_const_ae'' + theorem MeasureTheory.norm_setIntegral_le_of_norm_le_const_ae' + theorem MeasureTheory.norm_setIntegral_le_of_norm_le_const_ae + theorem MeasureTheory.ofReal_setIntegral_one + theorem MeasureTheory.ofReal_setIntegral_one_of_measure_ne_top + theorem MeasureTheory.setIntegral_compl + theorem MeasureTheory.setIntegral_congr_ae + theorem MeasureTheory.setIntegral_congr_ae₀ + theorem MeasureTheory.setIntegral_congr_fun + theorem MeasureTheory.setIntegral_congr_fun₀ + theorem MeasureTheory.setIntegral_congr_set + theorem MeasureTheory.setIntegral_const + theorem MeasureTheory.setIntegral_empty + theorem MeasureTheory.setIntegral_eq_integral_of_ae_compl_eq_zero + theorem MeasureTheory.setIntegral_eq_integral_of_forall_compl_eq_zero + theorem MeasureTheory.setIntegral_eq_of_subset_of_ae_diff_eq_zero + theorem MeasureTheory.setIntegral_eq_of_subset_of_ae_diff_eq_zero_aux + theorem MeasureTheory.setIntegral_eq_of_subset_of_forall_diff_eq_zero + theorem MeasureTheory.setIntegral_eq_zero_iff_of_nonneg_ae + theorem MeasureTheory.setIntegral_eq_zero_of_ae_eq_zero + theorem MeasureTheory.setIntegral_eq_zero_of_forall_eq_zero + theorem MeasureTheory.setIntegral_ge_of_const_le + theorem MeasureTheory.setIntegral_gt_gt + theorem MeasureTheory.setIntegral_indicator + theorem MeasureTheory.setIntegral_indicatorConstLp + theorem MeasureTheory.setIntegral_le_integral + theorem MeasureTheory.setIntegral_le_nonneg + theorem MeasureTheory.setIntegral_map + theorem MeasureTheory.setIntegral_map_equiv + theorem MeasureTheory.setIntegral_mono + theorem MeasureTheory.setIntegral_mono_ae + theorem MeasureTheory.setIntegral_mono_ae_restrict + theorem MeasureTheory.setIntegral_mono_on + theorem MeasureTheory.setIntegral_mono_on_ae + theorem MeasureTheory.setIntegral_mono_set + theorem MeasureTheory.setIntegral_neg_eq_setIntegral_nonpos + theorem MeasureTheory.setIntegral_nonneg + theorem MeasureTheory.setIntegral_nonneg_ae + theorem MeasureTheory.setIntegral_nonneg_of_ae + theorem MeasureTheory.setIntegral_nonneg_of_ae_restrict + theorem MeasureTheory.setIntegral_nonpos + theorem MeasureTheory.setIntegral_nonpos_ae + theorem MeasureTheory.setIntegral_nonpos_le + theorem MeasureTheory.setIntegral_nonpos_of_ae + theorem MeasureTheory.setIntegral_nonpos_of_ae_restrict + theorem MeasureTheory.setIntegral_pos_iff_support_of_nonneg_ae + theorem MeasureTheory.setIntegral_support + theorem MeasureTheory.setIntegral_trim + theorem MeasureTheory.setIntegral_tsupport + theorem MeasureTheory.setIntegral_union + theorem MeasureTheory.setIntegral_univ + theorem MeasureTheory.tendsto_setIntegral_of_antitone + theorem MeasureTheory.tendsto_setIntegral_of_monotone + theorem Topology.IsClosedEmbedding.setIntegral_map + theorem continuousOn_integral_bilinear_of_locally_integrable_of_compact_support + theorem continuousOn_integral_of_compact_support + theorem continuous_parametric_integral_of_continuous + theorem measure_le_lintegral_thickenedIndicator + theorem measure_le_lintegral_thickenedIndicatorAux Modified Mathlib/MeasureTheory/Integral/IntervalIntegral/Basic.lean Modified Mathlib/MeasureTheory/Integral/IntervalIntegral/FundThmCalculus.lean Modified Mathlib/MeasureTheory/Integral/Prod.lean Modified Mathlib/MeasureTheory/Integral/RieszMarkovKakutani/Real.lean Modified Mathlib/MeasureTheory/Integral/SetIntegral.lean - theorem Continuous.integral_pos_of_hasCompactSupport_nonneg_nonzero - theorem ContinuousAt.integral_sub_linear_isLittleO_ae - theorem ContinuousLinearEquiv.integral_comp_comm - theorem ContinuousLinearMap.continuous_integral_comp_L1 - theorem ContinuousLinearMap.integral_apply - theorem ContinuousLinearMap.integral_compLp - theorem ContinuousLinearMap.integral_comp_L1_comm - theorem ContinuousLinearMap.integral_comp_comm' - theorem ContinuousLinearMap.integral_comp_comm - theorem ContinuousLinearMap.setIntegral_compLp - theorem ContinuousMap.integral_apply - theorem ContinuousMapZero.integral_apply - theorem ContinuousMultilinearMap.integral_apply - theorem ContinuousOn.integral_sub_linear_isLittleO_ae - theorem ContinuousWithinAt.integral_sub_linear_isLittleO_ae - theorem Filter.Tendsto.integral_sub_linear_isLittleO_ae - theorem LinearIsometry.integral_comp_comm - theorem MeasurableEmbedding.setIntegral_map - theorem MeasureTheory.Integrable.measure_le_integral - theorem MeasureTheory.Integrable.simpleFunc_mul' - theorem MeasureTheory.Integrable.simpleFunc_mul - def MeasureTheory.LpToLpRestrictCLM - theorem MeasureTheory.LpToLpRestrictCLM_coeFn - theorem MeasureTheory.Lp_toLp_restrict_add - theorem MeasureTheory.Lp_toLp_restrict_smul - theorem MeasureTheory.MeasurePreserving.setIntegral_image_emb - theorem MeasureTheory.MeasurePreserving.setIntegral_preimage_emb - theorem MeasureTheory.continuous_setIntegral - theorem MeasureTheory.hasSum_integral_iUnion - theorem MeasureTheory.hasSum_integral_iUnion_ae - theorem MeasureTheory.integrableOn_iUnion_of_summable_integral_norm - theorem MeasureTheory.integrableOn_iUnion_of_summable_norm_restrict - theorem MeasureTheory.integrable_of_summable_norm_restrict - theorem MeasureTheory.integral_Icc_eq_integral_Ico' - theorem MeasureTheory.integral_Icc_eq_integral_Ico - theorem MeasureTheory.integral_Icc_eq_integral_Ioc' - theorem MeasureTheory.integral_Icc_eq_integral_Ioc - theorem MeasureTheory.integral_Icc_eq_integral_Ioo' - theorem MeasureTheory.integral_Icc_eq_integral_Ioo - theorem MeasureTheory.integral_Ici_eq_integral_Ioi' - theorem MeasureTheory.integral_Ici_eq_integral_Ioi - theorem MeasureTheory.integral_Ico_eq_integral_Ioo' - theorem MeasureTheory.integral_Ico_eq_integral_Ioo - theorem MeasureTheory.integral_Iic_eq_integral_Iio' - theorem MeasureTheory.integral_Iic_eq_integral_Iio - theorem MeasureTheory.integral_Ioc_eq_integral_Ioo' - theorem MeasureTheory.integral_Ioc_eq_integral_Ioo - theorem MeasureTheory.integral_add_compl - theorem MeasureTheory.integral_add_compl₀ - theorem MeasureTheory.integral_diff - theorem MeasureTheory.integral_finset_biUnion - theorem MeasureTheory.integral_fintype_iUnion - theorem MeasureTheory.integral_iUnion - theorem MeasureTheory.integral_iUnion_ae - theorem MeasureTheory.integral_indicator - theorem MeasureTheory.integral_indicatorConstLp - theorem MeasureTheory.integral_indicator_const - theorem MeasureTheory.integral_indicator_one - theorem MeasureTheory.integral_integral_indicator - theorem MeasureTheory.integral_inter_add_diff - theorem MeasureTheory.integral_inter_add_diff₀ - theorem MeasureTheory.integral_le_measure - theorem MeasureTheory.integral_norm_eq_pos_sub_neg - theorem MeasureTheory.integral_piecewise - theorem MeasureTheory.integral_union_ae - theorem MeasureTheory.integral_union_eq_left_of_ae - theorem MeasureTheory.integral_union_eq_left_of_ae_aux - theorem MeasureTheory.integral_union_eq_left_of_forall - theorem MeasureTheory.integral_union_eq_left_of_forall₀ - theorem MeasureTheory.norm_Lp_toLp_restrict_le - theorem MeasureTheory.norm_integral_sub_setIntegral_le - theorem MeasureTheory.norm_setIntegral_le_of_norm_le_const' - theorem MeasureTheory.norm_setIntegral_le_of_norm_le_const - theorem MeasureTheory.norm_setIntegral_le_of_norm_le_const_ae'' - theorem MeasureTheory.norm_setIntegral_le_of_norm_le_const_ae' - theorem MeasureTheory.norm_setIntegral_le_of_norm_le_const_ae - theorem MeasureTheory.ofReal_setIntegral_one - theorem MeasureTheory.ofReal_setIntegral_one_of_measure_ne_top - theorem MeasureTheory.setIntegral_compl - theorem MeasureTheory.setIntegral_congr_ae - theorem MeasureTheory.setIntegral_congr_ae₀ - theorem MeasureTheory.setIntegral_congr_fun - theorem MeasureTheory.setIntegral_congr_fun₀ - theorem MeasureTheory.setIntegral_congr_set - theorem MeasureTheory.setIntegral_const - theorem MeasureTheory.setIntegral_empty - theorem MeasureTheory.setIntegral_eq_integral_of_ae_compl_eq_zero - theorem MeasureTheory.setIntegral_eq_integral_of_forall_compl_eq_zero - theorem MeasureTheory.setIntegral_eq_of_subset_of_ae_diff_eq_zero - theorem MeasureTheory.setIntegral_eq_of_subset_of_ae_diff_eq_zero_aux - theorem MeasureTheory.setIntegral_eq_of_subset_of_forall_diff_eq_zero - theorem MeasureTheory.setIntegral_eq_zero_iff_of_nonneg_ae - theorem MeasureTheory.setIntegral_eq_zero_of_ae_eq_zero - theorem MeasureTheory.setIntegral_eq_zero_of_forall_eq_zero - theorem MeasureTheory.setIntegral_ge_of_const_le - theorem MeasureTheory.setIntegral_gt_gt - theorem MeasureTheory.setIntegral_indicator - theorem MeasureTheory.setIntegral_indicatorConstLp - theorem MeasureTheory.setIntegral_le_integral - theorem MeasureTheory.setIntegral_le_nonneg - theorem MeasureTheory.setIntegral_map - theorem MeasureTheory.setIntegral_map_equiv - theorem MeasureTheory.setIntegral_mono - theorem MeasureTheory.setIntegral_mono_ae - theorem MeasureTheory.setIntegral_mono_ae_restrict - theorem MeasureTheory.setIntegral_mono_on - theorem MeasureTheory.setIntegral_mono_on_ae - theorem MeasureTheory.setIntegral_mono_set - theorem MeasureTheory.setIntegral_neg_eq_setIntegral_nonpos - theorem MeasureTheory.setIntegral_nonneg - theorem MeasureTheory.setIntegral_nonneg_ae - theorem MeasureTheory.setIntegral_nonneg_of_ae - theorem MeasureTheory.setIntegral_nonneg_of_ae_restrict - theorem MeasureTheory.setIntegral_nonpos - theorem MeasureTheory.setIntegral_nonpos_ae - theorem MeasureTheory.setIntegral_nonpos_le - theorem MeasureTheory.setIntegral_nonpos_of_ae - theorem MeasureTheory.setIntegral_nonpos_of_ae_restrict - theorem MeasureTheory.setIntegral_pos_iff_support_of_nonneg_ae - theorem MeasureTheory.setIntegral_support - theorem MeasureTheory.setIntegral_trim - theorem MeasureTheory.setIntegral_tsupport - theorem MeasureTheory.setIntegral_union - theorem MeasureTheory.setIntegral_univ - theorem MeasureTheory.tendsto_setIntegral_of_antitone - theorem MeasureTheory.tendsto_setIntegral_of_monotone - theorem Topology.IsClosedEmbedding.setIntegral_map - theorem continuousOn_integral_bilinear_of_locally_integrable_of_compact_support - theorem continuousOn_integral_of_compact_support - theorem continuous_parametric_integral_of_continuous - theorem fst_integral - theorem integral_coe_re_add_coe_im - theorem integral_complex_ofReal - theorem integral_conj - theorem integral_im - theorem integral_ofReal - theorem integral_pair - theorem integral_re - theorem integral_re_add_im - theorem integral_smul_const - theorem integral_withDensity_eq_integral_smul - theorem integral_withDensity_eq_integral_smul₀ - theorem integral_withDensity_eq_integral_toReal_smul - theorem integral_withDensity_eq_integral_toReal_smul₀ - theorem measure_le_lintegral_thickenedIndicator - theorem measure_le_lintegral_thickenedIndicatorAux - theorem setIntegral_re_add_im - theorem setIntegral_withDensity_eq_setIntegral_smul - theorem setIntegral_withDensity_eq_setIntegral_smul₀' - theorem setIntegral_withDensity_eq_setIntegral_smul₀ - theorem setIntegral_withDensity_eq_setIntegral_toReal_smul' - theorem setIntegral_withDensity_eq_setIntegral_toReal_smul - theorem setIntegral_withDensity_eq_setIntegral_toReal_smul₀' - theorem setIntegral_withDensity_eq_setIntegral_toReal_smul₀ - theorem snd_integral - theorem swap_integral Modified Mathlib/MeasureTheory/Measure/Decomposition/RadonNikodym.lean Modified Mathlib/MeasureTheory/Measure/Haar/NormedSpace.lean Modified Mathlib/MeasureTheory/Measure/Haar/Unique.lean Modified Mathlib/MeasureTheory/Measure/Lebesgue/Integral.lean Modified Mathlib/Probability/Integration.lean Modified Mathlib/Probability/Kernel/SetIntegral.lean Modified Mathlib/Probability/Kernel/WithDensity.lean 2025-04-15 08:18:47 679ed8e chore: move and rename `eval_of_algHom` (#23952) Also generalize slightly and turn `[Fintype] [DecidableEq]` to `[Finite]`. I think the correct condition on `k` is that it's nontrivial and not a direct product of two nontrivial semirings, i.e. its PrimeSpectrum is connected. If this is violated, we get counterexamples like `(R₁ × R₂) × (R₁ × R₂) → R₁ × R₂` given by `(r₁₁, r₁₂), (r₂₁, r₂₂)) ↦ (r₁₁, r₂₂)`. ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/StdBasis.lean + theorem AlgHom.eq_piEvalAlgHom Modified Mathlib/RepresentationTheory/Tannaka.lean - theorem eval_of_algHom 2025-04-15 07:29:27 d730d22 chore(Analysis/Convex/Combination): remove `open scoped Classical` from theorems (#24057) These statements are more general with `DecidableEq`. ESTIMATED CHANGES Modified Mathlib/Analysis/Convex/Combination.lean +/- theorem AffineIndependent.convexHull_inter' +/- theorem Finset.centerMass_insert +/- theorem Finset.centerMass_ite_eq +/- theorem Finset.centerMass_pair +/- theorem convexHull_basis_eq_stdSimplex 2025-04-15 07:29:26 dabe44e chore(*): rename more type vars for *rings (#24022) ESTIMATED CHANGES Modified Mathlib/Algebra/LinearRecurrence.lean +/- def LinearRecurrence.IsSolution +/- def LinearRecurrence.charPoly +/- theorem LinearRecurrence.eq_mk_of_is_sol_of_eq_init' +/- theorem LinearRecurrence.eq_mk_of_is_sol_of_eq_init +/- theorem LinearRecurrence.geom_sol_iff_root_charPoly +/- theorem LinearRecurrence.is_sol_iff_mem_solSpace +/- theorem LinearRecurrence.is_sol_mkSol +/- def LinearRecurrence.mkSol +/- theorem LinearRecurrence.mkSol_eq_init +/- def LinearRecurrence.solSpace +/- theorem LinearRecurrence.solSpace_rank +/- theorem LinearRecurrence.sol_eq_of_eq_init +/- def LinearRecurrence.toInit +/- def LinearRecurrence.tupleSucc +/- structure LinearRecurrence Modified Mathlib/Algebra/Ring/InjSurj.lean +/- theorem Function.Injective.leftDistribClass +/- theorem Function.Injective.rightDistribClass +/- theorem Function.Surjective.leftDistribClass +/- theorem Function.Surjective.rightDistribClass Modified Mathlib/NumberTheory/FLT/Basic.lean +/- theorem FermatLastTheoremWith'.fermatLastTheoremWith +/- def FermatLastTheoremWith' +/- theorem FermatLastTheoremWith.fermatLastTheoremWith' +/- theorem FermatLastTheoremWith.mono +/- def FermatLastTheoremWith +/- theorem fermatLastTheoremWith'_iff_fermatLastTheoremWith +/- theorem fermatLastTheoremWith'_of_semifield 2025-04-15 07:29:24 f1c60d3 feat(Set): restricting the identity function (#23995) ESTIMATED CHANGES Modified Mathlib/Data/Set/Restrict.lean + theorem Set.restrict_id 2025-04-15 07:00:35 e7b8f4e feat(Topology): closure of subsingleton is self (#24062) Proves `Set.Subsingleton.closure_eq` ESTIMATED CHANGES Modified Mathlib/Topology/Separation/Basic.lean + theorem Set.Subsingleton.closure_eq +/- theorem Set.Subsingleton.isClosed 2025-04-15 07:00:34 f4ae6b8 chore: golf copy of Pi.single (#24061) ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/AffineSpace/Combination.lean 2025-04-15 07:00:33 fa14299 feat(Algebra/Algebra/Subalgebra): `Algebra.adjoin_singleton_le` (#24048) Special case of `Algebra.adjoin_le` for a singleton. ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/Subalgebra/Lattice.lean + theorem Algebra.adjoin_singleton_le 2025-04-15 07:00:31 9ea2e6f fix(GroupTheory/GroupAction/Blocks): generalize one hypothesis (#24038) This relaxes one hypothesis in a lemma about blocks, from `->*` to `->`. Nothing else is changed. ESTIMATED CHANGES Modified Mathlib/GroupTheory/GroupAction/Blocks.lean +/- theorem MulAction.IsBlock.image 2025-04-15 07:00:30 88bd148 chore(RingTheory/Etale/Field): shorten proof of iff_exists_algEquiv_prod (#24035) Shortens the proof of `iff_exists_algEquiv_prod` via [`of_isSeparable`](https://github.com/leanprover-community/mathlib4/blob/9c2b8e16b7f76e608ef6c265fbc6f814b3f0230a/Mathlib/RingTheory/Etale/Field.lean#L91), avoiding an unneeded detour through `EssFiniteType K (Ai i)`. Found by [`tryAtEachStep`](https://github.com/dwrensha/tryAtEachStep). ESTIMATED CHANGES Modified Mathlib/RingTheory/Etale/Field.lean 2025-04-15 06:53:18 05e06d9 chore(PellMatiyasevic): remove duplicate lemma (#24068) ESTIMATED CHANGES Modified Mathlib/NumberTheory/PellMatiyasevic.lean - theorem Pell.n_lt_a_pow 2025-04-15 05:27:51 593c38c chore: rename fields of `LinearOrder` (#23976) Renames `LinearOrder.decidable**` -> `LinearOrder.toDecidable**`, and same for `ConditionallyCompleteLinearOrder` and `CompleteLinearOrder` See zulip message [#mathlib4 > extending `RCLike` and `LinearOrder` @ 💬](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/extending.20.60RCLike.60.20and.20.60LinearOrder.60/near/511047785) Also fixes lots of potential diamonds caused by not specifying the `decidableEq` or `decidableLT` fields when creating an instance. ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Group/Cone.lean Modified Mathlib/Algebra/Order/Ring/Unbundled/Rat.lean Modified Mathlib/Algebra/Tropical/Basic.lean Modified Mathlib/Combinatorics/Colex.lean Modified Mathlib/Data/Bool/Basic.lean Modified Mathlib/Data/Char.lean Modified Mathlib/Data/DFinsupp/Lex.lean Modified Mathlib/Data/Int/Order/Basic.lean Modified Mathlib/Data/Nat/Basic.lean Modified Mathlib/Data/Nat/PartENat.lean Modified Mathlib/Data/Num/Lemmas.lean Modified Mathlib/Data/Num/ZNum.lean Modified Mathlib/Data/PSigma/Order.lean Modified Mathlib/Data/Prod/Lex.lean Modified Mathlib/Data/Sigma/Order.lean Modified Mathlib/Data/Sign.lean Modified Mathlib/Data/String/Basic.lean Modified Mathlib/Data/Sum/Order.lean Modified Mathlib/GroupTheory/MonoidLocalization/Order.lean Modified Mathlib/LinearAlgebra/AffineSpace/Independent.lean Modified Mathlib/ModelTheory/Order.lean Modified Mathlib/NumberTheory/Zsqrtd/Basic.lean Modified Mathlib/Order/Antisymmetrization.lean Modified Mathlib/Order/Atoms.lean Modified Mathlib/Order/Basic.lean Modified Mathlib/Order/Comparable.lean +/- def linearOrderOfComprel Modified Mathlib/Order/Compare.lean Modified Mathlib/Order/CompleteLattice/Defs.lean Modified Mathlib/Order/ConditionallyCompleteLattice/Defs.lean Modified Mathlib/Order/Defs/LinearOrder.lean Modified Mathlib/Order/Extension/Linear.lean Modified Mathlib/Order/Lattice.lean Modified Mathlib/Order/Preorder/Chain.lean Modified Mathlib/Order/RelClasses.lean Modified Mathlib/Order/Shrink.lean Modified Mathlib/Order/SuccPred/Archimedean.lean Modified Mathlib/RingTheory/Valuation/ValuationRing.lean Modified Mathlib/RingTheory/Valuation/ValuationSubring.lean Modified Mathlib/SetTheory/Cardinal/Order.lean Modified Mathlib/SetTheory/Ordinal/Basic.lean Modified Mathlib/SetTheory/Surreal/Basic.lean 2025-04-15 05:27:50 67b4128 chore: split `MeasureTheory.Integral.Lebesgue.Basic` (#23860) * `.Add` contains some versions of the monotone convergence theorem, Fatou's lemma and addition and constant multiplication of integrals. * `.Sub` contains subtraction of integrals and more versions of monotone convergence (in particular those versions operating on _antitone_ sequences of functions). * `.Markov` contains Markov's inequality and lemmas that depend on it. * `.DominatedConvergence` contains the dominated convergence theorem. * Results on maps of measures have been moved to `.MeasurePreserving`, which already deals with measure-preserving _maps_. Since the scope has broadened, the file has been renamed to `.Map`. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/MeasureTheory/Function/AEEqFun.lean Modified Mathlib/MeasureTheory/Function/L1Space/HasFiniteIntegral.lean Modified Mathlib/MeasureTheory/Function/LpSeminorm/Basic.lean Modified Mathlib/MeasureTheory/Function/StronglyMeasurable/ENNReal.lean Modified Mathlib/MeasureTheory/Group/FundamentalDomain.lean Modified Mathlib/MeasureTheory/Integral/Indicator.lean Added Mathlib/MeasureTheory/Integral/Lebesgue/Add.lean + theorem MeasureTheory.le_lintegral_add + theorem MeasureTheory.lintegral_add_aux + theorem MeasureTheory.lintegral_add_left' + theorem MeasureTheory.lintegral_add_left + theorem MeasureTheory.lintegral_add_right' + theorem MeasureTheory.lintegral_add_right + theorem MeasureTheory.lintegral_const_mul'' + theorem MeasureTheory.lintegral_const_mul' + theorem MeasureTheory.lintegral_const_mul + theorem MeasureTheory.lintegral_const_mul_le + theorem MeasureTheory.lintegral_eapprox_le_lintegral + theorem MeasureTheory.lintegral_eq_iSup_eapprox_lintegral + theorem MeasureTheory.lintegral_finset_sum' + theorem MeasureTheory.lintegral_finset_sum + theorem MeasureTheory.lintegral_iSup' + theorem MeasureTheory.lintegral_iSup + theorem MeasureTheory.lintegral_iSup_ae + theorem MeasureTheory.lintegral_iSup_directed + theorem MeasureTheory.lintegral_iSup_directed_of_measurable + theorem MeasureTheory.lintegral_liminf_le' + theorem MeasureTheory.lintegral_liminf_le + theorem MeasureTheory.lintegral_lintegral_mul + theorem MeasureTheory.lintegral_mul_const'' + theorem MeasureTheory.lintegral_mul_const' + theorem MeasureTheory.lintegral_mul_const + theorem MeasureTheory.lintegral_mul_const_le + theorem MeasureTheory.lintegral_tendsto_of_tendsto_of_monotone + theorem MeasureTheory.lintegral_trim + theorem MeasureTheory.lintegral_trim_ae + theorem MeasureTheory.lintegral_tsum + theorem MeasureTheory.measure_support_eapprox_lt_top Modified Mathlib/MeasureTheory/Integral/Lebesgue/Basic.lean - theorem MeasurableEmbedding.lintegral_map - theorem MeasureTheory.ae_eq_of_ae_le_of_lintegral_le - theorem MeasureTheory.ae_lt_top' - theorem MeasureTheory.ae_lt_top - theorem MeasureTheory.exists_measurable_le_setLintegral_eq_of_integrable - theorem MeasureTheory.exists_setLintegral_compl_lt - theorem MeasureTheory.le_lintegral_add - theorem MeasureTheory.limsup_lintegral_le - theorem MeasureTheory.lintegral_add_aux - theorem MeasureTheory.lintegral_add_left' - theorem MeasureTheory.lintegral_add_left - theorem MeasureTheory.lintegral_add_mul_meas_add_le_le_lintegral - theorem MeasureTheory.lintegral_add_right' - theorem MeasureTheory.lintegral_add_right - theorem MeasureTheory.lintegral_comp - theorem MeasureTheory.lintegral_const_mul'' - theorem MeasureTheory.lintegral_const_mul' - theorem MeasureTheory.lintegral_const_mul - theorem MeasureTheory.lintegral_const_mul_le - theorem MeasureTheory.lintegral_eapprox_le_lintegral - theorem MeasureTheory.lintegral_eq_iSup_eapprox_lintegral - theorem MeasureTheory.lintegral_eq_top_of_measure_eq_top_ne_zero - theorem MeasureTheory.lintegral_finset_sum' - theorem MeasureTheory.lintegral_finset_sum - theorem MeasureTheory.lintegral_iInf' - theorem MeasureTheory.lintegral_iInf - theorem MeasureTheory.lintegral_iInf_ae - theorem MeasureTheory.lintegral_iInf_directed_of_measurable - theorem MeasureTheory.lintegral_iSup' - theorem MeasureTheory.lintegral_iSup - theorem MeasureTheory.lintegral_iSup_ae - theorem MeasureTheory.lintegral_iSup_directed - theorem MeasureTheory.lintegral_iSup_directed_of_measurable - theorem MeasureTheory.lintegral_indicator_const_comp - theorem MeasureTheory.lintegral_le_meas - theorem MeasureTheory.lintegral_liminf_le' - theorem MeasureTheory.lintegral_liminf_le - theorem MeasureTheory.lintegral_lintegral_mul - theorem MeasureTheory.lintegral_map' - theorem MeasureTheory.lintegral_map - theorem MeasureTheory.lintegral_map_equiv - theorem MeasureTheory.lintegral_map_le - theorem MeasureTheory.lintegral_mul_const'' - theorem MeasureTheory.lintegral_mul_const' - theorem MeasureTheory.lintegral_mul_const - theorem MeasureTheory.lintegral_mul_const_le - theorem MeasureTheory.lintegral_strict_mono - theorem MeasureTheory.lintegral_strict_mono_of_ae_le_of_ae_lt_on - theorem MeasureTheory.lintegral_strict_mono_of_ae_le_of_frequently_ae_lt - theorem MeasureTheory.lintegral_sub' - theorem MeasureTheory.lintegral_sub - theorem MeasureTheory.lintegral_sub_le' - theorem MeasureTheory.lintegral_sub_le - theorem MeasureTheory.lintegral_subtype_comap - theorem MeasureTheory.lintegral_tendsto_of_tendsto_of_antitone - theorem MeasureTheory.lintegral_tendsto_of_tendsto_of_monotone - theorem MeasureTheory.lintegral_trim - theorem MeasureTheory.lintegral_trim_ae - theorem MeasureTheory.lintegral_tsum - theorem MeasureTheory.meas_ge_le_lintegral_div - theorem MeasureTheory.meas_le_lintegral₀ - theorem MeasureTheory.measure_eq_top_of_lintegral_ne_top - theorem MeasureTheory.measure_eq_top_of_setLintegral_ne_top - theorem MeasureTheory.measure_support_eapprox_lt_top - theorem MeasureTheory.mul_meas_ge_le_lintegral - theorem MeasureTheory.mul_meas_ge_le_lintegral₀ - theorem MeasureTheory.setLIntegral_le_meas - theorem MeasureTheory.setLIntegral_map - theorem MeasureTheory.setLIntegral_strict_mono - theorem MeasureTheory.setLIntegral_subtype - theorem MeasureTheory.setLintegral_eq_top_of_measure_eq_top_ne_zero - theorem MeasureTheory.tendsto_lintegral_filter_of_dominated_convergence - theorem MeasureTheory.tendsto_lintegral_of_dominated_convergence' - theorem MeasureTheory.tendsto_lintegral_of_dominated_convergence - theorem MeasureTheory.tendsto_of_lintegral_tendsto_of_antitone - theorem MeasureTheory.tendsto_of_lintegral_tendsto_of_monotone - theorem MeasureTheory.tendsto_of_lintegral_tendsto_of_monotone_aux Modified Mathlib/MeasureTheory/Integral/Lebesgue/Countable.lean Added Mathlib/MeasureTheory/Integral/Lebesgue/DominatedConvergence.lean + theorem MeasureTheory.limsup_lintegral_le + theorem MeasureTheory.tendsto_lintegral_filter_of_dominated_convergence + theorem MeasureTheory.tendsto_lintegral_of_dominated_convergence' + theorem MeasureTheory.tendsto_lintegral_of_dominated_convergence + theorem MeasureTheory.tendsto_of_lintegral_tendsto_of_antitone + theorem MeasureTheory.tendsto_of_lintegral_tendsto_of_monotone + theorem MeasureTheory.tendsto_of_lintegral_tendsto_of_monotone_aux Added Mathlib/MeasureTheory/Integral/Lebesgue/Map.lean + theorem MeasurableEmbedding.lintegral_map + theorem MeasureTheory.MeasurePreserving.lintegral_comp + theorem MeasureTheory.MeasurePreserving.lintegral_comp_emb + theorem MeasureTheory.MeasurePreserving.setLIntegral_comp_emb + theorem MeasureTheory.MeasurePreserving.setLIntegral_comp_preimage + theorem MeasureTheory.MeasurePreserving.setLIntegral_comp_preimage_emb + theorem MeasureTheory.lintegral_comp + theorem MeasureTheory.lintegral_indicator_const_comp + theorem MeasureTheory.lintegral_map' + theorem MeasureTheory.lintegral_map + theorem MeasureTheory.lintegral_map_equiv + theorem MeasureTheory.lintegral_map_le + theorem MeasureTheory.lintegral_subtype_comap + theorem MeasureTheory.setLIntegral_map + theorem MeasureTheory.setLIntegral_subtype Added Mathlib/MeasureTheory/Integral/Lebesgue/Markov.lean + theorem MeasureTheory.ae_eq_of_ae_le_of_lintegral_le + theorem MeasureTheory.ae_lt_top' + theorem MeasureTheory.ae_lt_top + theorem MeasureTheory.lintegral_add_mul_meas_add_le_le_lintegral + theorem MeasureTheory.lintegral_eq_top_of_measure_eq_top_ne_zero + theorem MeasureTheory.lintegral_le_meas + theorem MeasureTheory.lintegral_strict_mono + theorem MeasureTheory.lintegral_strict_mono_of_ae_le_of_ae_lt_on + theorem MeasureTheory.lintegral_strict_mono_of_ae_le_of_frequently_ae_lt + theorem MeasureTheory.meas_ge_le_lintegral_div + theorem MeasureTheory.meas_le_lintegral₀ + theorem MeasureTheory.measure_eq_top_of_lintegral_ne_top + theorem MeasureTheory.measure_eq_top_of_setLintegral_ne_top + theorem MeasureTheory.mul_meas_ge_le_lintegral + theorem MeasureTheory.mul_meas_ge_le_lintegral₀ + theorem MeasureTheory.setLIntegral_le_meas + theorem MeasureTheory.setLIntegral_strict_mono + theorem MeasureTheory.setLintegral_eq_top_of_measure_eq_top_ne_zero Modified Mathlib/MeasureTheory/Integral/Lebesgue/MeasurePreserving.lean - theorem MeasureTheory.MeasurePreserving.lintegral_comp - theorem MeasureTheory.MeasurePreserving.lintegral_comp_emb - theorem MeasureTheory.MeasurePreserving.setLIntegral_comp_emb - theorem MeasureTheory.MeasurePreserving.setLIntegral_comp_preimage - theorem MeasureTheory.MeasurePreserving.setLIntegral_comp_preimage_emb Added Mathlib/MeasureTheory/Integral/Lebesgue/Sub.lean + theorem MeasureTheory.exists_measurable_le_setLintegral_eq_of_integrable + theorem MeasureTheory.exists_setLintegral_compl_lt + theorem MeasureTheory.lintegral_iInf' + theorem MeasureTheory.lintegral_iInf + theorem MeasureTheory.lintegral_iInf_ae + theorem MeasureTheory.lintegral_iInf_directed_of_measurable + theorem MeasureTheory.lintegral_sub' + theorem MeasureTheory.lintegral_sub + theorem MeasureTheory.lintegral_sub_le' + theorem MeasureTheory.lintegral_sub_le + theorem MeasureTheory.lintegral_tendsto_of_tendsto_of_antitone Modified Mathlib/MeasureTheory/Integral/MeanInequalities.lean Modified Mathlib/MeasureTheory/Measure/Prod.lean 2025-04-15 04:56:02 7daf90f chore: tidy various files (#24052) ESTIMATED CHANGES Modified Archive/Imo/Imo2024Q5.lean Modified Archive/Wiedijk100Theorems/BallotProblem.lean Modified Counterexamples/AharoniKorman.lean Modified Mathlib/Algebra/Algebra/NonUnitalHom.lean Modified Mathlib/Algebra/Group/Hom/CompTypeclasses.lean Modified Mathlib/Algebra/Module/LinearMap/Defs.lean Modified Mathlib/Algebra/PresentedMonoid/Basic.lean Modified Mathlib/Analysis/NormedSpace/Multilinear/Basic.lean Modified Mathlib/Data/Nat/Dist.lean +/- theorem Nat.dist_pos_of_ne Modified Mathlib/Data/Real/Cardinality.lean Modified Mathlib/GroupTheory/GroupAction/Hom.lean Modified Mathlib/MeasureTheory/Integral/RieszMarkovKakutani/Real.lean Modified Mathlib/MeasureTheory/Measure/MeasureSpace.lean Modified Mathlib/MeasureTheory/Measure/Real.lean Modified Mathlib/Order/Filter/Bases/Basic.lean Modified Mathlib/Order/Interval/Set/Union.lean Modified Mathlib/Probability/Kernel/Disintegration/Basic.lean Modified Mathlib/Probability/Kernel/Disintegration/Unique.lean Modified Mathlib/RingTheory/Extension.lean Modified Mathlib/RingTheory/Kaehler/CotangentComplex.lean Modified Mathlib/RingTheory/MvPowerSeries/Order.lean Modified Mathlib/RingTheory/Smooth/Kaehler.lean Modified Mathlib/Tactic/FunProp/Decl.lean Modified Mathlib/Topology/Algebra/Module/Equiv.lean Modified Mathlib/Topology/UniformSpace/Ascoli.lean 2025-04-15 00:31:06 d8e8ad3 feat(Analysis): add improper integral of complex exp (#23209) These are the infinite version of integral_exp_mul_complex. ESTIMATED CHANGES Modified Mathlib/Analysis/SpecialFunctions/ImproperIntegrals.lean + theorem integrableOn_exp_mul_complex_Iic + theorem integrableOn_exp_mul_complex_Ioi + theorem integrableOn_exp_neg_Ioi + theorem integral_exp_mul_complex_Iic + theorem integral_exp_mul_complex_Ioi Modified Mathlib/MeasureTheory/Group/Integral.lean + theorem MeasureTheory.IntegrableOn.comp_inv + theorem MeasureTheory.IntegrableOn.comp_inv_Ici + theorem MeasureTheory.IntegrableOn.comp_inv_Iic + theorem MeasureTheory.IntegrableOn.comp_inv_Iio + theorem MeasureTheory.IntegrableOn.comp_inv_Ioi 2025-04-14 23:37:43 888ae69 fix(Group/Pointwise/Finset): don't use `CoeTC.coe` (#24051) ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Pointwise/Finset/Basic.lean +/- theorem Finset.coe_coeMonoidHom 2025-04-14 22:38:21 c0b7567 feat(Data/Part): Part.mem_right_unique (#24006) Add the lemmas `Part.mem_right_unique` and `Part.Mem.right_unique`. ESTIMATED CHANGES Modified Mathlib/Data/Part.lean + theorem Part.Mem.right_unique + theorem Part.mem_right_unique 2025-04-14 22:08:00 18ce4d8 chore(GroupTheory/Congruence): deduplicate `ker` and `mulKer` (#23244) This deprecates `Con.mulKer` and defines it in terms of `ker` (instead of vice versa). It's not entirely clear to me that `MulHomClass` is the way to go due to a lack of a coherent simp-normal form, but we can always switch to `MulHom` later. The signature of `Con.mapOfSurjective` has changed as a result. Zulip thread: [#mathlib4 > Con.ker vs Con.mulKer @ 💬](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Con.2Eker.20vs.20Con.2EmulKer/near/505847217) ESTIMATED CHANGES Modified Mathlib/GroupTheory/Congruence/Defs.lean - def Con.correspondence - def Con.mapGen - def Con.mapOfSurjective - theorem Con.mapOfSurjective_eq_mapGen - def Con.mulKer - theorem Con.mul_ker_mk_eq Modified Mathlib/GroupTheory/Congruence/Hom.lean + def Con.correspondence +/- def Con.ker + theorem Con.ker_coeMulHom + theorem Con.ker_mkMulHom_eq +/- theorem Con.ker_rel + def Con.mapGen + def Con.mapOfSurjective + theorem Con.mapOfSurjective_eq_mapGen +/- def Con.mk' + def Con.mkMulHom + theorem Con.mul_ker_mk_eq 2025-04-14 20:57:22 791b0c0 style(Topology/Order/MonotoneConvergence): Don't use `CoeTC.coe` (#24047) Replaces `CoeTC.coe` by `(↑)` in `Topology/Order/MonotoneConvergence` ESTIMATED CHANGES Modified Mathlib/Topology/Order/MonotoneConvergence.lean 2025-04-14 20:38:03 2d00056 chore(Data/Finsupp/MonomialOrder/DegLex): dedup instance (#24046) Split from #23976 The remaining instance is at https://github.com/leanprover-community/mathlib4/blob/03e9f15f2acafae1d9d3b7e0674ba87ae3cd499c/Mathlib/Data/Finsupp/MonomialOrder/DegLex.lean#L125-L129 ESTIMATED CHANGES Modified Mathlib/Data/Finsupp/MonomialOrder/DegLex.lean 2025-04-14 19:01:27 a1fe861 refactor: rename `FiniteIndex.finiteIndex` to `index_ne_zero` (#24044) ESTIMATED CHANGES Modified Mathlib/GroupTheory/CosetCover.lean Modified Mathlib/GroupTheory/Index.lean Modified Mathlib/GroupTheory/Schreier.lean Modified Mathlib/RingTheory/Ideal/Norm/AbsNorm.lean 2025-04-14 18:04:49 7860ff0 chore: tidy various files (#23975) ESTIMATED CHANGES Modified Mathlib/Algebra/ContinuedFractions/Computation/Basic.lean Modified Mathlib/Algebra/ContinuedFractions/Computation/Translations.lean Modified Mathlib/Algebra/Order/BigOperators/Group/List.lean Modified Mathlib/Algebra/Order/Monoid/WithTop.lean Modified Mathlib/Algebra/Ring/Subsemiring/Basic.lean Modified Mathlib/Analysis/Normed/Unbundled/SeminormFromConst.lean Modified Mathlib/Combinatorics/SimpleGraph/Path.lean Modified Mathlib/Computability/ContextFreeGrammar.lean +/- theorem ContextFreeGrammar.derives_nonterminal Modified Mathlib/Computability/Primrec.lean Modified Mathlib/Data/Finsupp/Weight.lean Modified Mathlib/Data/Matroid/Loop.lean +/- theorem Matroid.eq_loopyOn_iff_loops Modified Mathlib/Data/Nat/Factorization/Defs.lean Modified Mathlib/GroupTheory/FreeGroup/Basic.lean Modified Mathlib/GroupTheory/FreeGroup/Reduce.lean Modified Mathlib/GroupTheory/Transfer.lean Modified Mathlib/LinearAlgebra/BilinearForm/Properties.lean Modified Mathlib/LinearAlgebra/RootSystem/Finite/g2.lean Modified Mathlib/MeasureTheory/Function/Jacobian.lean Modified Mathlib/MeasureTheory/Function/UnifTight.lean Modified Mathlib/NumberTheory/LegendreSymbol/Basic.lean Modified Mathlib/Order/LiminfLimsup.lean Modified Mathlib/Order/Partition/Finpartition.lean Modified Mathlib/RingTheory/KrullDimension/NonZeroDivisors.lean Modified Mathlib/RingTheory/MvPowerSeries/PiTopology.lean Modified Mathlib/Topology/Algebra/Ring/Compact.lean Modified Mathlib/Topology/Separation/Basic.lean 2025-04-14 17:58:17 149ef95 feat(zulip): add emoji reaction to first message when PR mentioned in subject (#22031) Discussed in [Zulip](https://leanprover.zulipchat.com/#narrow/channel/144837-PR-reviews/topic/.2321995.20deprecate.20.60Complex.2Eabs.60/near/500322749). ESTIMATED CHANGES Modified scripts/zulip_emoji_merge_delegate.py 2025-04-14 15:57:53 5cc5bd9 feat(Analysis/Normed/Unbundled/RingSeminorm): turn a ring norm into a normed ring (#23268) ESTIMATED CHANGES Modified Mathlib/Analysis/Normed/Unbundled/RingSeminorm.lean 2025-04-14 15:20:23 212d493 fix(CompletelyRegularSpace): fix lemmas (#24017) Fix some oddities caused by a rogue section variable. For example, `separatesPoints_continuous_of_completelyRegularSpace` assumes `[CompletelyRegularSpace X] [T1Space X]`, which is just equivalent to `[T35Space X]`. ESTIMATED CHANGES Modified Mathlib/Topology/Separation/CompletelyRegular.lean - theorem injective_stoneCechUnit_of_completelyRegularSpace + theorem injective_stoneCechUnit_of_t35Space - theorem separatesPoints_continuous_of_completelyRegularSpace - theorem separatesPoints_continuous_of_completelyRegularSpace_Icc + theorem separatesPoints_continuous_of_t35Space + theorem separatesPoints_continuous_of_t35Space_Icc 2025-04-14 15:20:21 6369e44 feat(IntervalIntegral): add `IntervalIntegrable.trans_iff` etc (#24009) ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Integral/IntervalIntegral/Basic.lean + theorem IntervalIntegrable.comp_sub_left_iff + theorem IntervalIntegrable.symm_iff + theorem IntervalIntegrable.trans_iff Modified Mathlib/Order/Interval/Set/UnorderedInterval.lean + theorem Set.uIoc_union_uIoc 2025-04-14 15:20:20 22da988 feat(Sym2/Order): `s.inf = t.inf ∧ s.sup = t.sup ↔ s = t` (#24005) Characterize equality of two symmetric squares. In a linear order, two symmetric squares are equal if and only if they have the same infimum and supremum. ESTIMATED CHANGES Modified Mathlib/Data/Sym/Sym2/Order.lean + theorem Sym2.inf_eq_inf_and_sup_eq_sup 2025-04-14 15:20:19 c9486a6 feat(RingTheory/LocalRing): `IsLocalRing.of_singleton_maximalSpectrum` (#23994) Add the fact that a ring with `MaximalSpectrum` that is a singleton is local. ESTIMATED CHANGES Modified Mathlib/RingTheory/LocalRing/MaximalIdeal/Basic.lean + theorem IsLocalRing.of_singleton_maximalSpectrum 2025-04-14 15:20:17 692dd55 feat(Order/Nucleus): The image of a nucleus is a frame (#23802) The image of a nucleus is a frame (which is the sublocale corresponding to this nucleus). If we restrict the codomain of a nucleus to its image, it is a FrameHom. ESTIMATED CHANGES Modified Mathlib/Order/Nucleus.lean + def Nucleus.giRestrict + theorem Nucleus.mem_range + def Nucleus.restrict 2025-04-14 15:20:16 ceade53 feat(RingTheory/Valuation): add two lemmas about non-units in valuation subrings (#23408) co-authored with María Inés de Frutos Fernández @mariainesdff ESTIMATED CHANGES Modified Mathlib/RingTheory/Valuation/Integers.lean + theorem Valuation.Integer.not_isUnit_iff_valuation_lt_one Modified Mathlib/RingTheory/Valuation/ValuationSubring.lean + theorem Valuation.mem_maximalIdeal_iff 2025-04-14 14:36:11 9ae5810 fix(Linter/DeprecatedModule): tweak `deprecated_module` syntax (#24032) I forgot the `:=` part of the `deprecated` syntax: the new syntax `deprecated_module "Optional string here with further details" (since := "yyyy-mm-dd")` matches the syntax of the `deprecated` attribute. ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Floor.lean Modified Mathlib/Algebra/Order/GroupWithZero/Unbundled.lean Modified Mathlib/Algebra/Order/GroupWithZero/Unbundled/Lemmas.lean Modified Mathlib/Data/ENNReal/Order.lean Modified Mathlib/Data/Real/EReal.lean Modified Mathlib/Data/Seq/WSeq.lean Modified Mathlib/MeasureTheory/Integral/Bochner.lean Modified Mathlib/MeasureTheory/Integral/IntervalIntegral.lean Modified Mathlib/MeasureTheory/Integral/Lebesgue.lean Modified Mathlib/MeasureTheory/Integral/Periodic.lean Modified Mathlib/MeasureTheory/Measure/Typeclasses.lean Modified Mathlib/Order/Chain.lean Modified Mathlib/Tactic/Linter/DeprecatedModule.lean Modified Mathlib/Topology/Category/Profinite/Nobeling.lean Modified MathlibTest/DeprecatedModule.lean 2025-04-14 14:20:46 6e623a8 doc(overview): expand overview of Computability (#23801) ESTIMATED CHANGES Modified docs/overview.yaml Modified scripts/yaml_check.py 2025-04-14 13:54:29 d85717c chore(DivergenceTheorem): drop some CompleteSpace assumptions (#24021) ESTIMATED CHANGES Modified Mathlib/Analysis/Complex/CauchyIntegral.lean Modified Mathlib/MeasureTheory/Integral/DivergenceTheorem.lean +/- theorem MeasureTheory.integral_eq_of_hasDerivWithinAt_off_countable +/- theorem MeasureTheory.integral_eq_of_hasDerivWithinAt_off_countable_of_le 2025-04-14 13:03:01 abfb567 chore: add `to_additive` translation for `Measure.mconv` (#24034) Fix `to_additive` translation to convert [MeasureTheory.Measure.mconv](https://leanprover-community.github.io/mathlib4_docs/Mathlib/MeasureTheory/Group/Convolution.html#MeasureTheory.Measure.mconv) to [MeasureTheory.Measure.conv](https://leanprover-community.github.io/mathlib4_docs/Mathlib/MeasureTheory/Group/Convolution.html#MeasureTheory.Measure.conv). Also add docstrings for the additive versions. ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Group/Convolution.lean Modified Mathlib/Tactic/ToAdditive/Frontend.lean 2025-04-14 12:29:51 ece17b3 feat: add a `dsimproc` for vector notation (#13578) [Zulip](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/simp.20and.20vector.20notation/near/443026067) ESTIMATED CHANGES Modified Archive/Imo/Imo2024Q5.lean Modified Mathlib/Algebra/Order/Antidiag/Nat.lean Modified Mathlib/Analysis/InnerProductSpace/TwoDim.lean Modified Mathlib/Data/Fin/VecNotation.lean +/- theorem Matrix.cons_val_one +/- theorem Matrix.cons_val_two Modified Mathlib/Data/Nat/Choose/Multinomial.lean Modified Mathlib/LinearAlgebra/CrossProduct.lean Modified Mathlib/LinearAlgebra/Projectivization/Independence.lean Modified Mathlib/LinearAlgebra/Ray.lean Modified Mathlib/RingTheory/Complex.lean Modified MathlibTest/matrix.lean Modified MathlibTest/vec_notation.lean 2025-04-14 11:53:04 54dbb13 doc: how to add a translation for `to_additive` (#24033) ESTIMATED CHANGES Modified Mathlib/Tactic/ToAdditive/Frontend.lean 2025-04-14 11:42:19 9c2b8e1 chore(RingTheory/Idempotents): fix names (#24030) ESTIMATED CHANGES Modified Mathlib/RingTheory/Idempotents.lean - def CompleteOrthogonalIdempotents.mulEquivOfComm - def CompleteOrthogonalIdempotents.mulEquivOfIsMulCentral + def CompleteOrthogonalIdempotents.ringEquivOfComm + def CompleteOrthogonalIdempotents.ringEquivOfIsMulCentral 2025-04-14 11:08:06 a6c0d68 chore: remove now-superfluous disabling of the header linter (#24028) PR https://github.com/leanprover-community/mathlib4/pull/24027 removes the need to disable the header linter before module deprecations. ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Floor.lean Modified Mathlib/Algebra/Order/GroupWithZero/Unbundled.lean Modified Mathlib/Algebra/Order/GroupWithZero/Unbundled/Lemmas.lean Modified Mathlib/Data/ENNReal/Order.lean Modified Mathlib/Data/Real/EReal.lean Modified Mathlib/Data/Seq/WSeq.lean Modified Mathlib/MeasureTheory/Integral/Bochner.lean Modified Mathlib/MeasureTheory/Integral/IntervalIntegral.lean Modified Mathlib/MeasureTheory/Integral/Lebesgue.lean Modified Mathlib/MeasureTheory/Integral/Periodic.lean Modified Mathlib/MeasureTheory/Measure/Typeclasses.lean Modified Mathlib/Order/Chain.lean Modified Mathlib/Topology/Category/Profinite/Nobeling.lean Modified MathlibTest/CountHeartbeats.lean 2025-04-14 10:02:18 dcefb86 ci(technical-debt-metrics): look two lines ahead for deprecated declarations (#24031) Check two lines after linter.deprecated false since the deprecated declaration might not be immediately adjacent ESTIMATED CHANGES Modified scripts/technical-debt-metrics.sh 2025-04-14 10:02:17 3cf9ec1 ci(discover-lean-pr-testing): fix multiline output syntax (#24029) Use standard GitHub Actions output syntax for multiline messages ESTIMATED CHANGES Modified .github/workflows/discover-lean-pr-testing.yml 2025-04-14 09:20:36 7e89760 fix(deprecated module): automatically disable the header linter (#24027) This PR makes the `header` linter silent if the first non-import command of a file is `deprecated_module`. [Zulip#mathlib4 > `Deprecated` folder @ 💬](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/.60Deprecated.60.20folder/near/511986519) ESTIMATED CHANGES Modified Mathlib/Tactic/Linter/DeprecatedModule.lean 2025-04-14 09:00:09 b247dc2 chore: add deprecation module message for recently deleted files (#24024) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Order/Floor.lean Added Mathlib/Algebra/Order/GroupWithZero/Unbundled.lean Added Mathlib/Algebra/Order/GroupWithZero/Unbundled/Lemmas.lean Added Mathlib/Data/ENNReal/Order.lean Added Mathlib/Data/Real/EReal.lean Added Mathlib/Data/Seq/WSeq.lean Added Mathlib/MeasureTheory/Integral/Bochner.lean Added Mathlib/MeasureTheory/Integral/IntervalIntegral.lean Added Mathlib/MeasureTheory/Integral/Lebesgue.lean Added Mathlib/MeasureTheory/Integral/Periodic.lean Added Mathlib/MeasureTheory/Measure/Typeclasses.lean Added Mathlib/Order/Chain.lean Added Mathlib/Topology/Category/Profinite/Nobeling.lean 2025-04-14 07:16:20 360bf0d feat (RingTheory/HahnSeries/Multiplication): IsScalarTower and SMulCommClass instances (#24018) This PR adds instances that show that the scalar multiplication of `R` on `HahnSeries Γ R` is compatible with the scalar multiplication of `HahnSeries Γ R` on `HahnModule Γ' R V`. Also, module docstrings are updated. ESTIMATED CHANGES Modified Mathlib/RingTheory/HahnSeries/Multiplication.lean 2025-04-14 07:09:35 c8d31de feat(CategoryTheory): stability properties of morphisms properties in functor categories (#23298) Given `W : MorphismProperty C` and a category `J`, we study the stability properties of `W.functorCategory J : MorphismProperty (J ⥤ C)`. Under suitable assumptions, we also show that if monomorphisms in `C` are stable under transfinite compositions, then the same holds in the category `J ⥤ C`. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/MorphismProperty/FunctorCategory.lean + theorem CategoryTheory.MorphismProperty.IsStableUnderColimitsOfShape.functorCategory + theorem CategoryTheory.MorphismProperty.IsStableUnderLimitsOfShape.functorCategory + theorem CategoryTheory.MorphismProperty.functorCategory_epimorphisms + theorem CategoryTheory.MorphismProperty.functorCategory_isomorphisms + theorem CategoryTheory.MorphismProperty.functorCategory_monomorphisms 2025-04-14 06:29:55 190e685 feat(MeasureTheory): characteristic function in an inner product space (#23973) Add a definition of a characteristic function, which is equal to the integral of `BoundedContinuousFunction.char` for the inner product bilinear map and the additive character `e = Real.probChar`. ESTIMATED CHANGES Modified Mathlib/Analysis/Complex/Circle.lean Modified Mathlib/Analysis/Fourier/FourierTransform.lean + theorem VectorFourier.fourierIntegral_probChar Modified Mathlib/MeasureTheory/Measure/CharacteristicFunction.lean + def BoundedContinuousFunction.innerProbChar + theorem BoundedContinuousFunction.innerProbChar_apply + theorem BoundedContinuousFunction.innerProbChar_zero + theorem MeasureTheory.Measure.ext_of_charFun + theorem MeasureTheory.charFun_apply + theorem MeasureTheory.charFun_apply_real + theorem MeasureTheory.charFun_eq_fourierIntegral' + theorem MeasureTheory.charFun_eq_fourierIntegral + theorem MeasureTheory.charFun_eq_integral_innerProbChar + theorem MeasureTheory.charFun_eq_integral_probChar + theorem MeasureTheory.charFun_map_mul + theorem MeasureTheory.charFun_map_smul + theorem MeasureTheory.charFun_neg + theorem MeasureTheory.charFun_zero + theorem MeasureTheory.charFun_zero_measure + theorem MeasureTheory.intervalIntegrable_charFun + theorem MeasureTheory.measurable_charFun + theorem MeasureTheory.norm_charFun_le + theorem MeasureTheory.norm_charFun_le_one + theorem MeasureTheory.norm_one_sub_charFun_le_two + theorem MeasureTheory.stronglyMeasurable_charFun 2025-04-14 06:10:17 71d3df6 chore(LinearIndependent): rename `linearCombination` lemmas (#23045) Follow the naming convention around unnamespacing and appending `_injective` better. From Toric ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/LinearIndependent/Basic.lean Modified Mathlib/LinearAlgebra/LinearIndependent/Defs.lean - theorem Fintype.linearIndependent_iff_injective + theorem linearIndependent_iff_injective_finsuppLinearCombination + theorem linearIndependent_iff_injective_fintypeLinearCombination - theorem linearIndependent_iff_injective_linearCombination Modified Mathlib/LinearAlgebra/RootSystem/Finite/g2.lean Modified Mathlib/RingTheory/AlgebraicIndependent/Basic.lean 2025-04-14 03:47:45 15b14b2 feat(CategoryTheory): the dual of a Guitart exact `2`-square is Guitart exact (#22447) This shall be used in order to formalize left derivability structures (dual to right derivability structures), and to construct left derived functors. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/CategoryTheory/Functor/TwoSquare.lean + theorem CategoryTheory.TwoSquare.natTrans_op + def CategoryTheory.TwoSquare.op Added Mathlib/CategoryTheory/GuitartExact/Opposite.lean + theorem CategoryTheory.TwoSquare.guitartExact_op_iff + def CategoryTheory.TwoSquare.structuredArrowRightwardsOpEquivalence.functor + def CategoryTheory.TwoSquare.structuredArrowRightwardsOpEquivalence.inverse + def CategoryTheory.TwoSquare.structuredArrowRightwardsOpEquivalence Modified Mathlib/CategoryTheory/Opposites.lean 2025-04-13 22:36:55 2ccecc0 feat(Topology/Path): prove `Path.extend_symm` (#23980) ESTIMATED CHANGES Modified Mathlib/Order/Interval/Set/ProjIcc.lean Modified Mathlib/Topology/Path.lean + theorem Path.extend_symm + theorem Path.extend_symm_apply + theorem Path.ofLine_extend +/- theorem Path.symm_range Modified Mathlib/Topology/UnitInterval.lean + theorem unitInterval.symm_projIcc 2025-04-13 21:48:36 b748741 chore(Data/Matroid): fix some docstrings (#24007) We fix typos and add small clarifying tweaks to matroid-related docstrings in twelve files. We make two small changes outside docstrings in `Matroid.contract`: scoping the `Matroid.contract` notation to match `Matroid.delete` as originally intended, and removing a redundant `variable` in the preamble. ESTIMATED CHANGES Modified Mathlib/Data/Matroid/Basic.lean Modified Mathlib/Data/Matroid/Circuit.lean Modified Mathlib/Data/Matroid/Closure.lean Modified Mathlib/Data/Matroid/Dual.lean Modified Mathlib/Data/Matroid/Loop.lean Modified Mathlib/Data/Matroid/Map.lean Modified Mathlib/Data/Matroid/Minor/Contract.lean Modified Mathlib/Data/Matroid/Minor/Delete.lean Modified Mathlib/Data/Matroid/Minor/Order.lean Modified Mathlib/Data/Matroid/Minor/Restrict.lean Modified Mathlib/Data/Matroid/Rank/Cardinal.lean Modified Mathlib/Data/Matroid/Rank/ENat.lean 2025-04-13 21:24:36 699b96b chore(Surreal): dedup instance (#23985) Deduplicates the instance `LinearOrder Surreal`, which was defined in both `Surreal/Basic` and `Surreal/Multiplication`. The duplicate originated in #14044. The surviving instance is at https://github.com/leanprover-community/mathlib4/blob/461b2e79dd4c923f26e435f770faeaf87208d0d9/Mathlib/SetTheory/Surreal/Basic.lean#L368-L373 ESTIMATED CHANGES Modified Mathlib/SetTheory/Surreal/Multiplication.lean 2025-04-13 20:41:44 bde6f55 feat: generalize Mathlib.LinearAlgebra (#23179) This is one of a series of PRs that generalizes type classes across Mathlib. These are generated using a new linter that tries to re-elaborate theorem definitions with more general type classes to see if it succeeds. It will accept the generalization if deleting the entire type class causes the theorem to fail to compile, and the old type class can not simply be re-synthesized with the new declaration. Otherwise, the generalization is rejected as the type class is not being generalized, but can simply be replaced by implicit type class synthesis or an implicit type class in a variable block being pulled in. The linter currently output debug statements indicating source file positions where type classes should be generalized, and a script then makes those edits. This file contains a subset of those generalizations. The linter and the script performing re-writes is available in commit 5e2b7040be0f73821c1dcb360ffecd61235d87af. Also see discussion on Zulip here: https://leanprover.zulipchat.com/#narrow/channel/270676-lean4/topic/Elab.20to.20generalize.20type.20classes.20for.20theorems/near/498862988 https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Elab.20to.20generalize.20type.20classes.20for.20theorems/near/501288855 ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/AffineSpace/MidpointZero.lean +/- theorem pi_midpoint_apply Modified Mathlib/LinearAlgebra/Basis/SMul.lean +/- theorem Basis.groupSMul_span_eq_top Modified Mathlib/LinearAlgebra/BilinearForm/Properties.lean Modified Mathlib/LinearAlgebra/Dimension/Free.lean +/- theorem Module.finite_iff_of_rank_eq_nsmul +/- theorem rank_mul_rank Modified Mathlib/LinearAlgebra/Dimension/StrongRankCondition.lean +/- theorem Basis.card_le_card_of_linearIndependent_aux Modified Mathlib/LinearAlgebra/Dual/Defs.lean +/- theorem LinearEquiv.dualMap_trans +/- theorem LinearMap.dualMap_comp_dualMap Modified Mathlib/LinearAlgebra/FiniteSpan.lean Modified Mathlib/LinearAlgebra/LinearIndependent/Basic.lean +/- theorem LinearIndependent.group_smul +/- theorem LinearIndependent.group_smul_iff +/- theorem linearIndependent_monoidHom Modified Mathlib/LinearAlgebra/Matrix/Reindex.lean +/- theorem Matrix.det_reindexAlgEquiv Modified Mathlib/LinearAlgebra/Multilinear/Basic.lean +/- theorem LinearMap.compMultilinearMap_smul Modified Mathlib/LinearAlgebra/Prod.lean +/- theorem LinearMap.prodMap_smul Modified Mathlib/LinearAlgebra/Projectivization/Basic.lean +/- theorem Projectivization.map_comp Modified Mathlib/LinearAlgebra/QuadraticForm/Basic.lean +/- theorem QuadraticMap.PosDef.smul +/- theorem QuadraticMap.linMulLinSelfPosDef +/- theorem QuadraticMap.map_smul_of_tower +/- theorem QuadraticMap.polar_comp Modified Mathlib/LinearAlgebra/RootSystem/OfBilinear.lean +/- theorem LinearMap.IsReflective.of_dvd_two Modified Mathlib/LinearAlgebra/Span/Basic.lean Modified Mathlib/LinearAlgebra/Span/Defs.lean +/- theorem Submodule.span_singleton_smul_le Modified Mathlib/LinearAlgebra/TensorProduct/Graded/External.lean +/- theorem TensorProduct.gradedComm_algebraMap +/- theorem TensorProduct.gradedComm_algebraMap_tmul +/- theorem TensorProduct.gradedComm_one +/- theorem TensorProduct.gradedComm_one_tmul +/- theorem TensorProduct.gradedComm_tmul_algebraMap +/- theorem TensorProduct.gradedComm_tmul_one 2025-04-13 18:41:36 9f26568 feat: a linter to deprecate imported modules (#20987) Writing ```lean import Bar1 import Bar2 deprecated_module since yyyy-mm-dd ``` in file `A.lean` means that any file that imports `A` will have `import A` flagged with a suggestion to import `Bar1` and `Bar2` instead. [Zulip discussion](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/.60Deprecated.60.20folder) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Tactic.lean Modified Mathlib/Tactic/Linter.lean Added Mathlib/Tactic/Linter/DeprecatedModule.lean + def Mathlib.Linter.DeprecatedModule.deprecated.moduleLinter + def Mathlib.Linter.addModuleDeprecation Added MathlibTest/DeprecatedModule.lean Added MathlibTest/DeprecatedModuleTest.lean 2025-04-13 17:25:21 b796a62 fix: remove notation hacks in monoidal categories (#24002) Now that we can adjust argument explicitness in fields, we no longer need a custom delaborator. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Monoidal/Category.lean - def CategoryTheory.MonoidalCategory.delabTensorUnit Modified Mathlib/Tactic/CategoryTheory/Monoidal/Datatypes.lean Modified Mathlib/Tactic/CategoryTheory/Monoidal/PureCoherence.lean 2025-04-13 16:12:29 e8a574a chore(tprod): move tprod lemmas to protected namespace (#23959) As per [zulip discussion](https://leanprover.zulipchat.com/#narrow/channel/144837-PR-reviews/topic/.2323503.20ENat.20and.20tsum), this PR renames lemmas of the form `theorem tprod_foo {f : a -> b} (Multipliable f) : _` to `protected theorem Multipliable.tprod_foo {f : a -> b} (Multipliable f) : _`, and similar for `tsum`/`Summable`, usually via `to_additive`. This is so the name `tprod_foo` (and by extension `tsum_foo`) is freed up for planned versions of the lemmas in settings where multipliabilty/summability automatically holds (such as `ENat` and `ENNReal` for summability). We also deprecate all the old names. ESTIMATED CHANGES Modified Mathlib/Analysis/Analytic/Basic.lean Modified Mathlib/Analysis/CStarAlgebra/PositiveLinearMap.lean Modified Mathlib/Analysis/Calculus/BumpFunction/FiniteDimension.lean Modified Mathlib/Analysis/Calculus/SmoothSeries.lean Modified Mathlib/Analysis/Complex/AbelLimit.lean Modified Mathlib/Analysis/InnerProductSpace/l2Space.lean Modified Mathlib/Analysis/MeanInequalities.lean Modified Mathlib/Analysis/Normed/Algebra/Spectrum.lean Modified Mathlib/Analysis/Normed/Group/Tannery.lean Modified Mathlib/Analysis/Normed/Lp/lpSpace.lean Modified Mathlib/Analysis/Normed/Operator/Banach.lean Modified Mathlib/Analysis/Normed/Ring/InfiniteSum.lean Modified Mathlib/Analysis/Normed/Ring/Units.lean Modified Mathlib/Analysis/NormedSpace/FunctionSeries.lean Modified Mathlib/Analysis/SpecialFunctions/Stirling.lean Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Series.lean Modified Mathlib/Analysis/SpecificLimits/Basic.lean Modified Mathlib/Analysis/SpecificLimits/Normed.lean Modified Mathlib/Analysis/SumOverResidueClass.lean Modified Mathlib/Data/Real/Cardinality.lean Modified Mathlib/MeasureTheory/Function/LpSpace/Complete.lean Modified Mathlib/MeasureTheory/Integral/DominatedConvergence.lean Modified Mathlib/MeasureTheory/Measure/AddContent.lean Modified Mathlib/MeasureTheory/Measure/MeasureSpace.lean Modified Mathlib/MeasureTheory/Measure/MutuallySingular.lean Modified Mathlib/MeasureTheory/OuterMeasure/OfAddContent.lean Modified Mathlib/MeasureTheory/OuterMeasure/OfFunction.lean Modified Mathlib/MeasureTheory/VectorMeasure/Basic.lean Modified Mathlib/NumberTheory/EulerProduct/Basic.lean Modified Mathlib/NumberTheory/EulerProduct/DirichletLSeries.lean Modified Mathlib/NumberTheory/LSeries/Basic.lean Modified Mathlib/NumberTheory/LSeries/Injectivity.lean Modified Mathlib/NumberTheory/LSeries/Linearity.lean Modified Mathlib/NumberTheory/LSeries/Nonvanishing.lean Modified Mathlib/NumberTheory/LSeries/Positivity.lean Modified Mathlib/NumberTheory/LSeries/PrimesInAP.lean Modified Mathlib/NumberTheory/LSeries/RiemannZeta.lean Modified Mathlib/NumberTheory/ModularForms/EisensteinSeries/IsBoundedAtImInfty.lean Modified Mathlib/NumberTheory/ModularForms/JacobiTheta/Bounds.lean Modified Mathlib/NumberTheory/ModularForms/JacobiTheta/OneVariable.lean Modified Mathlib/NumberTheory/ModularForms/JacobiTheta/TwoVariable.lean Modified Mathlib/NumberTheory/Padics/MahlerBasis.lean Modified Mathlib/NumberTheory/SumPrimeReciprocals.lean Modified Mathlib/NumberTheory/Transcendental/Liouville/LiouvilleNumber.lean Modified Mathlib/Probability/Kernel/Defs.lean Modified Mathlib/Probability/ProbabilityMassFunction/Basic.lean Modified Mathlib/Probability/ProbabilityMassFunction/Monad.lean Modified Mathlib/Topology/Algebra/InfiniteSum/Basic.lean - theorem tprod_eq_mul_tprod_ite' - theorem tprod_finsetProd - theorem tprod_finset_bUnion_disjoint - theorem tprod_mul - theorem tprod_mul_tprod_compl - theorem tprod_union_disjoint Modified Mathlib/Topology/Algebra/InfiniteSum/Constructions.lean - theorem tprod_comm' - theorem tprod_comm - theorem tprod_prod' - theorem tprod_prod - theorem tprod_prod_uncurry - theorem tprod_sigma' - theorem tprod_sigma - theorem tprod_sum Modified Mathlib/Topology/Algebra/InfiniteSum/Field.lean - theorem norm_tprod Modified Mathlib/Topology/Algebra/InfiniteSum/Group.lean - theorem prod_mul_tprod_compl - theorem prod_mul_tprod_subtype_compl - theorem tprod_div - theorem tprod_eq_mul_tprod_ite - theorem tprod_subtype_mul_tprod_subtype_compl - theorem tsum_congr_cofinite₀ Modified Mathlib/Topology/Algebra/InfiniteSum/Module.lean - theorem tsum_const_smul - theorem tsum_smul_const Modified Mathlib/Topology/Algebra/InfiniteSum/NatInt.lean - theorem prod_mul_tprod_nat_add - theorem prod_mul_tprod_nat_mul' - theorem tprod_eq_zero_mul - theorem tprod_of_nat_of_neg Modified Mathlib/Topology/Algebra/InfiniteSum/Order.lean - theorem abs_tprod - theorem le_tprod' - theorem le_tprod - theorem one_lt_tprod - theorem prod_le_tprod - theorem tprod_eq_one_iff - theorem tprod_le_of_prod_le - theorem tprod_le_of_prod_range_le - theorem tprod_le_tprod - theorem tprod_le_tprod_of_inj - theorem tprod_lt_tprod - theorem tprod_mono - theorem tprod_ne_one_iff - theorem tprod_strict_mono - theorem tprod_subtype_le Modified Mathlib/Topology/Algebra/InfiniteSum/Real.lean - theorem tsum_lt_tsum_of_nonneg Modified Mathlib/Topology/Algebra/InfiniteSum/Ring.lean - theorem Summable.tsum_mul_left - theorem Summable.tsum_mul_right - theorem tsum_mul_tsum - theorem tsum_mul_tsum_eq_tsum_sum_antidiagonal - theorem tsum_mul_tsum_eq_tsum_sum_range Modified Mathlib/Topology/Instances/ENNReal/Lemmas.lean Modified Mathlib/Topology/Instances/NNReal/Lemmas.lean Modified Mathlib/Topology/MetricSpace/PiNat.lean Modified Mathlib/Topology/UrysohnsLemma.lean 2025-04-13 15:56:16 888e200 chore: don't disable deprecation warnings (#24001) ESTIMATED CHANGES Modified Mathlib/Analysis/NormedSpace/ENormedSpace.lean 2025-04-13 13:07:29 0f2df1b chore(FreeModule): clean up (#23996) Make `R` and `M` explicit in `Free.exists_basis`. Open the `Module` namespace. Add `Free.exists_set` as a convenience lemma. ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/FreeModule/Basic.lean - theorem Basis.repr_algebraMap + theorem Module.Free.Basis.repr_algebraMap + theorem Module.Free.exists_set +/- theorem Module.Free.of_basis +/- theorem Module.free_def +/- theorem Module.free_iff_set 2025-04-13 11:28:09 ff99cda feat(SimpleGraph/Walk): edge sets of walks (#23946) We introduce a definition `SimpleGraph.Walk.edgeSet (p : SimpleGraph.Walk G u v) : Set (Sym2 V)` for the edge set of a walk, and give a few very basic API lemmas. This allows us to avoid both decidability and the ugly `p.edges.toFinset.toSet` when talking about the set of edges of a walk. ESTIMATED CHANGES Modified Mathlib/Combinatorics/SimpleGraph/Walk.lean + theorem SimpleGraph.Walk.coe_edges_toFinset + def SimpleGraph.Walk.edgeSet + theorem SimpleGraph.Walk.edgeSet_append + theorem SimpleGraph.Walk.edgeSet_concat + theorem SimpleGraph.Walk.edgeSet_cons + theorem SimpleGraph.Walk.edgeSet_copy + theorem SimpleGraph.Walk.edgeSet_map + theorem SimpleGraph.Walk.edgeSet_nil + theorem SimpleGraph.Walk.edgeSet_reverse + theorem SimpleGraph.Walk.edgeSet_transfer + theorem SimpleGraph.Walk.mem_edgeSet 2025-04-13 09:12:38 f4c39d0 feat(setOption linter): warn on bare options containing maxHeartbeats (#23902) Instead, they should be scoped as `set_option in` (or removed if superfluous). Complements #23816. ESTIMATED CHANGES Modified Mathlib/Tactic/Linter/Style.lean Modified Mathlib/Util/CountHeartbeats.lean Modified MathlibTest/LintStyle.lean 2025-04-13 08:52:02 19b2d88 feat(RingTheory): base change commutes with finite products (#22339) and in particular with localizations of modules. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Module/LocalizedModule/Basic.lean + theorem IsLocalizedModule.isScalarTower_module Added Mathlib/RingTheory/TensorProduct/IsBaseChangePi.lean + theorem IsBaseChange.pi + theorem IsBaseChange.prodMap 2025-04-13 06:33:43 a05b659 chore: bump toolchain to v4.19.0-rc3 (#23987) Note that we are *not* bumping everything upstream, for this release candidate (which should not behave differently except for fewer crashes!) ESTIMATED CHANGES Modified lean-toolchain 2025-04-13 03:02:02 ba2dc5b feat(Topology/Order): generalize lemmas (#23984) Generalizes `OrderIso.continuous`, `OrderIso.toHomeomorph` to assume only `Preorder` instead of `PartialOrder` ESTIMATED CHANGES Modified Mathlib/Topology/Order/MonotoneContinuity.lean 2025-04-13 02:25:30 7256113 chore(*): rename ring type variables (#23939) ... in some files. Also change some `NeZero (α := _) 1` to `NeZero (1 : _)`. ESTIMATED CHANGES Modified Counterexamples/ZeroDivisorsInAddMonoidAlgebras.lean Modified Mathlib/Algebra/Category/Ring/Constructions.lean Modified Mathlib/Algebra/GeomSum.lean +/- theorem Commute.mul_geom_sum₂ +/- theorem Commute.mul_neg_geom_sum₂ +/- theorem Commute.sub_dvd_pow_sub_pow +/- theorem Odd.add_dvd_pow_add_pow +/- theorem Odd.geom_sum_pos +/- theorem RingHom.map_geom_sum +/- theorem RingHom.map_geom_sum₂ +/- theorem geom_sum_Ico' +/- theorem geom_sum_Ico +/- theorem geom_sum_Ico_le_of_lt_one +/- theorem geom_sum_Ico_mul +/- theorem geom_sum_Ico_mul_neg +/- theorem geom_sum_alternating_of_le_neg_one +/- theorem geom_sum_alternating_of_lt_neg_one +/- theorem geom_sum_eq +/- theorem geom_sum_eq_zero_iff_neg_one +/- theorem geom_sum_inv +/- theorem geom_sum_lt +/- theorem geom_sum_mul +/- theorem geom_sum_mul_add +/- theorem geom_sum_mul_neg +/- theorem geom_sum_mul_of_le_one +/- theorem geom_sum_mul_of_one_le +/- theorem geom_sum_ne_zero +/- theorem geom_sum_neg_iff +/- theorem geom_sum_of_lt_one +/- theorem geom_sum_of_one_lt +/- theorem geom_sum_one +/- theorem geom_sum_pos' +/- theorem geom_sum_pos +/- theorem geom_sum_pos_and_lt_one +/- theorem geom_sum_pos_iff +/- theorem geom_sum_succ' +/- theorem geom_sum_succ +/- theorem geom_sum_two +/- theorem geom_sum_zero +/- theorem geom_sum₂_Ico +/- theorem geom_sum₂_comm +/- theorem geom_sum₂_mul +/- theorem geom_sum₂_mul_add +/- theorem geom_sum₂_mul_of_ge +/- theorem geom_sum₂_mul_of_le +/- theorem geom_sum₂_self +/- theorem geom_sum₂_succ_eq +/- theorem geom_sum₂_with_one +/- theorem geom₂_sum +/- theorem geom₂_sum_of_gt +/- theorem geom₂_sum_of_lt +/- theorem mul_geom_sum +/- theorem mul_geom_sum₂_Ico +/- theorem mul_neg_geom_sum +/- theorem neg_one_geom_sum +/- theorem one_geom_sum +/- theorem one_sub_dvd_one_sub_pow +/- theorem op_geom_sum +/- theorem op_geom_sum₂ +/- theorem pow_one_sub_dvd_pow_mul_sub_one +/- theorem sub_dvd_pow_sub_pow +/- theorem sub_one_dvd_pow_sub_one +/- theorem zero_geom_sum Modified Mathlib/Algebra/Order/Field/Defs.lean +/- structure LinearOrderedField +/- structure LinearOrderedSemifield +/- theorem inv_mul_le_one +/- theorem mul_inv_le_one Modified Mathlib/Algebra/Order/Floor/Ring.lean +/- theorem Int.abs_sub_lt_one_of_floor_eq_floor +/- theorem Int.add_one_le_ceil_iff +/- theorem Int.ceil_add_ceil_le +/- theorem Int.ceil_add_intCast +/- theorem Int.ceil_add_le +/- theorem Int.ceil_add_natCast +/- theorem Int.ceil_add_ofNat +/- theorem Int.ceil_add_one +/- theorem Int.ceil_eq_add_one_sub_fract +/- theorem Int.ceil_eq_floor_add_one_iff_not_mem +/- theorem Int.ceil_eq_on_Ioc' +/- theorem Int.ceil_eq_on_Ioc +/- theorem Int.ceil_eq_self_iff_mem +/- theorem Int.ceil_eq_zero_iff +/- theorem Int.ceil_intCast +/- theorem Int.ceil_le_floor_add_one +/- theorem Int.ceil_lt_add_one +/- theorem Int.ceil_mono +/- theorem Int.ceil_natCast +/- theorem Int.ceil_ofNat +/- theorem Int.ceil_one +/- theorem Int.ceil_sub_intCast +/- theorem Int.ceil_sub_natCast +/- theorem Int.ceil_sub_ofNat +/- theorem Int.ceil_sub_one +/- theorem Int.ceil_sub_self_eq +/- theorem Int.ceil_zero +/- theorem Int.floor_add_fract +/- theorem Int.floor_add_intCast +/- theorem Int.floor_add_natCast +/- theorem Int.floor_add_ofNat +/- theorem Int.floor_add_one +/- theorem Int.floor_congr +/- theorem Int.floor_eq_on_Ico' +/- theorem Int.floor_eq_on_Ico +/- theorem Int.floor_eq_self_iff_mem +/- theorem Int.floor_eq_zero_iff +/- theorem Int.floor_fract +/- theorem Int.floor_intCast +/- theorem Int.floor_intCast_add +/- theorem Int.floor_le_ceil +/- theorem Int.floor_lt_ceil_of_lt +/- theorem Int.floor_mono +/- theorem Int.floor_natCast +/- theorem Int.floor_natCast_add +/- theorem Int.floor_ofNat +/- theorem Int.floor_ofNat_add +/- theorem Int.floor_one +/- theorem Int.floor_sub_intCast +/- theorem Int.floor_sub_natCast +/- theorem Int.floor_sub_ofNat +/- theorem Int.floor_sub_one +/- theorem Int.floor_zero +/- theorem Int.fract_add +/- theorem Int.fract_add_floor +/- theorem Int.fract_add_fract_le +/- theorem Int.fract_add_intCast +/- theorem Int.fract_add_le +/- theorem Int.fract_add_natCast +/- theorem Int.fract_add_ofNat +/- theorem Int.fract_add_one +/- theorem Int.fract_eq_fract +/- theorem Int.fract_eq_iff +/- theorem Int.fract_eq_self +/- theorem Int.fract_eq_zero_or_add_one_sub_ceil +/- theorem Int.fract_floor +/- theorem Int.fract_fract +/- theorem Int.fract_intCast +/- theorem Int.fract_intCast_add +/- theorem Int.fract_lt_one +/- theorem Int.fract_mul_natCast +/- theorem Int.fract_natCast +/- theorem Int.fract_natCast_add +/- theorem Int.fract_neg +/- theorem Int.fract_neg_eq_zero +/- theorem Int.fract_nonneg +/- theorem Int.fract_ofNat_add +/- theorem Int.fract_one +/- theorem Int.fract_one_add +/- theorem Int.fract_sub_intCast +/- theorem Int.fract_sub_natCast +/- theorem Int.fract_sub_ofNat +/- theorem Int.fract_sub_one +/- theorem Int.fract_sub_self +/- theorem Int.fract_zero +/- theorem Int.image_fract +/- theorem Int.le_floor_add +/- theorem Int.le_floor_add_floor +/- theorem Int.lt_floor_add_one +/- theorem Int.lt_succ_floor +/- theorem Int.map_ceil +/- theorem Int.map_floor +/- theorem Int.map_fract +/- theorem Int.preimage_Icc +/- theorem Int.preimage_Ici +/- theorem Int.preimage_Ico +/- theorem Int.preimage_Iic +/- theorem Int.preimage_Iio +/- theorem Int.preimage_Ioc +/- theorem Int.preimage_Ioi +/- theorem Int.preimage_Ioo +/- theorem Int.preimage_ceil_singleton +/- theorem Int.preimage_floor_singleton +/- theorem Int.preimage_fract +/- theorem Int.self_sub_floor +/- theorem Int.self_sub_fract +/- theorem Int.sub_one_lt_floor +/- theorem natCast_ceil_eq_intCast_ceil +/- theorem natCast_ceil_eq_intCast_ceil_of_neg_one_lt +/- theorem natCast_floor_eq_intCast_floor +/- theorem subsingleton_floorRing Modified Mathlib/Algebra/Order/Floor/Semiring.lean +/- theorem Nat.add_one_le_ceil_iff +/- theorem Nat.ceil_add_le +/- theorem Nat.ceil_intCast +/- theorem Nat.ceil_le_floor_add_one +/- theorem Nat.ceil_lt_add_one +/- theorem Nat.ceil_mono +/- theorem Nat.ceil_natCast +/- theorem Nat.ceil_ofNat +/- theorem Nat.ceil_one +/- theorem Nat.ceil_zero +/- theorem Nat.floor_add_natCast +/- theorem Nat.floor_congr +/- theorem Nat.floor_div_eq_div +/- theorem Nat.floor_div_natCast +/- theorem Nat.floor_div_ofNat +/- theorem Nat.floor_eq_on_Ico +/- theorem Nat.floor_le +/- theorem Nat.floor_le_ceil +/- theorem Nat.floor_lt_ceil_of_lt_of_pos +/- theorem Nat.floor_mono +/- theorem Nat.floor_natCast +/- theorem Nat.floor_ofNat +/- theorem Nat.floor_one +/- theorem Nat.floor_sub_natCast +/- theorem Nat.floor_sub_ofNat +/- theorem Nat.floor_sub_one +/- theorem Nat.floor_zero +/- theorem Nat.le_ceil +/- theorem Nat.le_floor_iff' +/- theorem Nat.lt_floor_add_one +/- theorem Nat.lt_succ_floor +/- theorem Nat.map_ceil +/- theorem Nat.map_floor +/- theorem Nat.one_le_floor_iff +/- theorem Nat.preimage_Icc +/- theorem Nat.preimage_Ici +/- theorem Nat.preimage_Ico +/- theorem Nat.preimage_Iic +/- theorem Nat.preimage_Iio +/- theorem Nat.preimage_Ioc +/- theorem Nat.preimage_Ioi +/- theorem Nat.preimage_Ioo +/- theorem Nat.preimage_ceil_of_ne_zero +/- theorem Nat.preimage_ceil_zero +/- theorem Nat.preimage_floor_zero +/- theorem Nat.sub_one_lt_floor +/- theorem subsingleton_floorSemiring Modified Mathlib/Algebra/Order/Interval/Set/Instances.lean +/- theorem Set.Icc.coe_eq_one +/- theorem Set.Icc.coe_eq_zero +/- theorem Set.Icc.coe_le_one +/- theorem Set.Icc.coe_mul +/- theorem Set.Icc.coe_ne_one +/- theorem Set.Icc.coe_ne_zero +/- theorem Set.Icc.coe_nonneg +/- theorem Set.Icc.coe_one +/- theorem Set.Icc.coe_pow +/- theorem Set.Icc.coe_zero +/- theorem Set.Icc.le_one +/- theorem Set.Icc.mk_one +/- theorem Set.Icc.mk_zero +/- theorem Set.Icc.mul_le_left +/- theorem Set.Icc.mul_le_right +/- theorem Set.Icc.nonneg +/- theorem Set.Ico.coe_eq_zero +/- theorem Set.Ico.coe_lt_one +/- theorem Set.Ico.coe_mul +/- theorem Set.Ico.coe_ne_zero +/- theorem Set.Ico.coe_nonneg +/- theorem Set.Ico.coe_zero +/- theorem Set.Ico.mk_zero +/- theorem Set.Ico.nonneg +/- theorem Set.Ioc.coe_eq_one +/- theorem Set.Ioc.coe_le_one +/- theorem Set.Ioc.coe_mul +/- theorem Set.Ioc.coe_ne_one +/- theorem Set.Ioc.coe_one +/- theorem Set.Ioc.coe_pos +/- theorem Set.Ioc.coe_pow +/- theorem Set.Ioc.le_one +/- theorem Set.Ioc.mk_one +/- theorem Set.Ioo.coe_mul +/- theorem Set.Ioo.lt_one +/- theorem Set.Ioo.pos Modified Mathlib/Algebra/Order/Invertible.lean +/- theorem pos_invOf_of_invertible_cast Modified Mathlib/Algebra/Order/Ring/Basic.lean Modified Mathlib/Algebra/Order/Ring/Canonical.lean +/- theorem CanonicallyOrderedAdd.pow_pos +/- theorem CanonicallyOrderedAdd.toIsOrderedMonoid +/- theorem CanonicallyOrderedAdd.toIsOrderedRing +/- structure CanonicallyOrderedCommSemiring +/- theorem Odd.pos +/- theorem mul_self_tsub_mul_self +/- theorem mul_self_tsub_one +/- theorem mul_tsub +/- theorem mul_tsub_one +/- theorem sq_tsub_sq +/- theorem tsub_mul +/- theorem tsub_one_mul Modified Mathlib/Algebra/Order/Ring/Defs.lean +/- theorem IsOrderedRing.of_mul_nonneg +/- theorem IsOrderedRing.toIsStrictOrderedRing +/- theorem IsStrictOrderedRing.of_mul_pos +/- structure LinearOrderedCommRing +/- structure LinearOrderedCommSemiring +/- structure LinearOrderedRing +/- structure LinearOrderedSemiring +/- structure OrderedCommRing +/- structure OrderedCommSemiring +/- structure OrderedRing +/- structure OrderedSemiring +/- structure StrictOrderedCommRing +/- structure StrictOrderedCommSemiring +/- structure StrictOrderedRing +/- structure StrictOrderedSemiring Modified Mathlib/Algebra/Order/Ring/Idempotent.lean +/- theorem eq_of_mul_eq_add_eq_one Modified Mathlib/Algebra/Order/Ring/InjSurj.lean Modified Mathlib/Algebra/Order/Ring/Opposite.lean Modified Mathlib/Algebra/Order/Ring/Synonym.lean Modified Mathlib/Algebra/Order/Ring/Unbundled/Basic.lean +/- theorem Antitone.const_mul_of_nonpos +/- theorem Antitone.mul +/- theorem Antitone.mul_const_of_nonpos +/- theorem Antitone.mul_monotone +/- theorem Monotone.const_mul_of_nonpos +/- theorem Monotone.mul_antitone +/- theorem Monotone.mul_const_of_nonpos +/- theorem StrictAnti.const_mul_of_neg +/- theorem StrictAnti.mul_const_of_neg +/- theorem StrictMono.const_mul_of_neg +/- theorem StrictMono.mul_const_of_neg +/- theorem add_le_mul' +/- theorem add_le_mul +/- theorem add_le_mul_of_left_le_right +/- theorem add_le_mul_of_right_le_left +/- theorem add_le_mul_two_add +/- theorem add_one_le_two_mul +/- theorem antitone_mul_left +/- theorem antitone_mul_right +/- theorem cmp_mul_neg_left +/- theorem cmp_mul_neg_right +/- theorem cmp_mul_pos_left +/- theorem cmp_mul_pos_right +/- theorem eq_zero_of_mul_self_add_mul_self_eq_zero +/- theorem four_mul_le_sq_add +/- theorem le_mul_of_le_one_left +/- theorem le_mul_of_le_one_right +/- theorem lt_mul_of_lt_one_left +/- theorem lt_mul_of_lt_one_right +/- theorem lt_of_mul_lt_mul_of_nonpos_left +/- theorem lt_of_mul_lt_mul_of_nonpos_right +/- theorem lt_two_mul_self +/- theorem max_mul_mul_le_max_mul_max +/- theorem max_mul_of_nonneg +/- theorem min_mul_of_nonneg +/- theorem mul_add_mul_le_mul_add_mul' +/- theorem mul_add_mul_le_mul_add_mul +/- theorem mul_add_mul_lt_mul_add_mul' +/- theorem mul_add_mul_lt_mul_add_mul +/- theorem mul_le_mul_left_of_neg +/- theorem mul_le_mul_of_nonneg_of_nonpos' +/- theorem mul_le_mul_of_nonneg_of_nonpos +/- theorem mul_le_mul_of_nonpos_left +/- theorem mul_le_mul_of_nonpos_of_nonneg' +/- theorem mul_le_mul_of_nonpos_of_nonneg +/- theorem mul_le_mul_of_nonpos_of_nonpos' +/- theorem mul_le_mul_of_nonpos_of_nonpos +/- theorem mul_le_mul_of_nonpos_right +/- theorem mul_le_mul_right_of_neg +/- theorem mul_le_of_one_le_left +/- theorem mul_le_of_one_le_right +/- theorem mul_lt_mul_left_of_neg +/- theorem mul_lt_mul_of_neg_left +/- theorem mul_lt_mul_of_neg_right +/- theorem mul_lt_mul_right_of_neg +/- theorem mul_lt_of_one_lt_left +/- theorem mul_lt_of_one_lt_right +/- theorem mul_max_of_nonneg +/- theorem mul_min_of_nonneg +/- theorem mul_neg_iff +/- theorem mul_nonneg_iff +/- theorem mul_nonneg_iff_left_nonneg_of_pos +/- theorem mul_nonneg_iff_neg_imp_nonpos +/- theorem mul_nonneg_iff_of_pos_left +/- theorem mul_nonneg_iff_of_pos_right +/- theorem mul_nonneg_iff_pos_imp_nonneg +/- theorem mul_nonneg_iff_right_nonneg_of_pos +/- theorem mul_nonneg_of_nonpos_of_nonpos +/- theorem mul_nonneg_of_three +/- theorem mul_nonpos_iff +/- theorem mul_nonpos_iff_neg_imp_nonneg +/- theorem mul_nonpos_iff_pos_imp_nonpos +/- theorem mul_pos_iff +/- theorem mul_pos_of_neg_of_neg +/- theorem mul_self_add_mul_self_eq_zero +/- theorem mul_self_inj +/- theorem mul_self_le_mul_self_iff +/- theorem mul_self_lt_mul_self_iff +/- theorem mul_self_nonneg +/- theorem mul_self_pos +/- theorem neg_iff_pos_of_mul_neg +/- theorem nonneg_le_nonneg_of_sq_le_sq +/- theorem nonneg_of_mul_nonneg_left +/- theorem nonneg_of_mul_nonneg_right +/- theorem nonneg_of_mul_nonpos_left +/- theorem nonneg_of_mul_nonpos_right +/- theorem nonpos_of_mul_nonneg_left +/- theorem nonpos_of_mul_nonneg_right +/- theorem nonpos_of_mul_nonpos_left +/- theorem nonpos_of_mul_nonpos_right +/- theorem pos_iff_neg_of_mul_neg +/- theorem pos_of_mul_neg_left +/- theorem pos_of_mul_neg_right +/- theorem sign_cases_of_C_mul_pow_nonneg +/- theorem sq_nonneg +/- theorem sq_nonpos_iff +/- theorem strictAnti_mul_left +/- theorem strictAnti_mul_right +/- theorem sub_one_lt +/- theorem two_mul_le_add_of_sq_eq_mul +/- theorem two_mul_le_add_sq Modified Mathlib/Algebra/Polynomial/AlgebraMap.lean Modified Mathlib/Algebra/Ring/Invertible.lean +/- theorem Ring.inverse_add_inverse +/- theorem Ring.inverse_sub_inverse +/- theorem invOf_add_invOf +/- theorem invOf_neg +/- theorem invOf_sub_invOf +/- theorem invOf_two_add_invOf_two +/- def invertibleNeg +/- theorem one_sub_invOf_two +/- theorem pos_of_invertible_cast Modified Mathlib/Algebra/Ring/Opposite.lean +/- def NonUnitalRingHom.op +/- def NonUnitalRingHom.unop +/- def RingHom.op +/- def RingHom.unop Modified Mathlib/Algebra/Ring/ULift.lean +/- def ULift.ringEquiv Modified Mathlib/Data/NNRat/Floor.lean Modified Mathlib/GroupTheory/GroupAction/Ring.lean Modified Mathlib/NumberTheory/AbelSummation.lean Modified Mathlib/Topology/Algebra/Ring/Basic.lean +/- theorem IsTopologicalSemiring.continuousNeg_of_mul +/- theorem IsTopologicalSemiring.toIsTopologicalRing +/- theorem NonUnitalSubring.isClosed_topologicalClosure +/- theorem NonUnitalSubring.le_topologicalClosure +/- def NonUnitalSubring.topologicalClosure +/- theorem NonUnitalSubring.topologicalClosure_minimal +/- theorem NonUnitalSubsemiring.isClosed_topologicalClosure +/- theorem NonUnitalSubsemiring.le_topologicalClosure +/- def NonUnitalSubsemiring.topologicalClosure +/- theorem NonUnitalSubsemiring.topologicalClosure_coe +/- theorem NonUnitalSubsemiring.topologicalClosure_minimal +/- def RingTopology.coinduced +/- theorem RingTopology.coinduced_continuous +/- theorem RingTopology.ext +/- def RingTopology.toAddGroupTopology.orderEmbedding +/- def RingTopology.toAddGroupTopology +/- structure RingTopology +/- theorem Subring.isClosed_topologicalClosure +/- theorem Subring.le_topologicalClosure +/- def Subring.topologicalClosure +/- theorem Subring.topologicalClosure_minimal +/- theorem Subsemiring.isClosed_topologicalClosure +/- theorem Subsemiring.le_topologicalClosure +/- def Subsemiring.topologicalClosure +/- theorem Subsemiring.topologicalClosure_coe +/- theorem Subsemiring.topologicalClosure_minimal +/- theorem mulLeft_continuous +/- theorem mulRight_continuous 2025-04-13 01:17:25 0453a63 chore: make RingHom.toAlgebra reducible (#23977) ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/Defs.lean - def RingHom.toAlgebra' - def RingHom.toAlgebra Modified Mathlib/Algebra/Module/RingHom.lean - def RingHom.toModule Modified Mathlib/RingTheory/Etale/Kaehler.lean 2025-04-12 23:52:55 b39e9ff fix: remove undercover `open Classical`s (#23750) `attribute [local instance] Classical.propDecidable` is much worse than `open scoped Classical`, as it introduces the instance with a default priority that overrides other better decidable instances. ESTIMATED CHANGES Modified Archive/Imo/Imo1988Q6.lean Modified Mathlib/Analysis/NormedSpace/ENormedSpace.lean Modified Mathlib/Data/PFunctor/Univariate/M.lean +/- theorem PFunctor.M.ext +/- theorem PFunctor.M.nth_of_bisim Modified Mathlib/Data/Set/Function.lean Modified Mathlib/Logic/Basic.lean +/- theorem Not.imp_symm +/- theorem and_iff_not_or_not +/- theorem and_or_imp +/- theorem beq_eq_decide +/- theorem by_contradiction +/- theorem iff_not_comm +/- theorem imp_iff_not_or +/- theorem imp_iff_or_not +/- theorem imp_iff_right_iff +/- theorem imp_or' +/- theorem imp_or +/- theorem not_and_not_right +/- theorem not_and_or +/- theorem not_forall_not +/- theorem not_forall₂ +/- theorem not_iff +/- theorem not_iff_comm +/- theorem not_iff_not +/- theorem not_imp +/- theorem not_imp_comm +/- theorem not_imp_not +/- theorem not_imp_self +/- theorem not_or_of_imp +/- theorem of_not_imp +/- theorem or_congr_right' +/- theorem or_iff_not_and_not +/- theorem or_not_of_imp +/- theorem peirce Modified Mathlib/Logic/Function/Basic.lean Modified Mathlib/Order/Defs/PartialOrder.lean +/- theorem le_iff_lt_or_eq +/- theorem lt_or_eq_of_le Modified Mathlib/RingTheory/FractionalIdeal/Operations.lean Modified Mathlib/RingTheory/Localization/AtPrime.lean Modified Mathlib/Topology/UniformSpace/AbstractCompletion.lean 2025-04-12 23:32:02 dafc764 feat(LinearAlgebra/Matrix/PosDef): results about conjTranspose (#23895) ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/Matrix/PosDef.lean + theorem Matrix.PosDef.conjTranspose + theorem Matrix.PosDef.conjTranspose_mul_mul_same + theorem Matrix.PosDef.mul_mul_conjTranspose_same + theorem Matrix.PosDef.transpose_iff + theorem Matrix.posDef_conjTranspose_iff + theorem Matrix.posSemidef_conjTranspose_iff + theorem Matrix.posSemidef_transpose_iff 2025-04-12 23:25:30 6d096cc fix(Algebra/Group/End): add toMul in AddAut.conj_apply (#23978) Correct the definition of `AddAut.conj_apply` by inserting the adequate `.toMul`. ESTIMATED CHANGES Modified Mathlib/Algebra/Group/End.lean +/- theorem Equiv.Perm.AddAut.conj_apply +/- theorem Equiv.Perm.AddAut.conj_symm_apply +/- theorem Equiv.Perm.AddAut.neg_conj_apply Modified Mathlib/GroupTheory/GroupAction/Basic.lean 2025-04-12 18:45:25 4a15f08 feat(CategoryTheory/Sums/Associator): compatibility of products and sums associators (#22289) We show that the associators for sums and category translate into the associator for products through the equivalence `Sum.functorEquiv : (C ⊕ D ⥤ T) ≌ (C ⥤ T) × (D ⥤ T)`. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Sums/Products.lean + def CategoryTheory.Sum.associativityFunctorEquivNaturalityFunctorIso 2025-04-12 18:06:30 e78b57a chore(RingTheory/SimpleRing): golf and cleanup (#23891) This fixes a typo in a docstring, removes an `instance` that can be replaced with `attribute [instance]`, and golfs some proofs. ESTIMATED CHANGES Modified Mathlib/RingTheory/SimpleRing/Basic.lean Modified Mathlib/RingTheory/SimpleRing/Defs.lean 2025-04-12 17:22:07 f493c19 feat: Add SampleableExt PNat (#22260) Allow sampling from `PNat` ESTIMATED CHANGES Modified Mathlib/Testing/Plausible/Sampleable.lean Modified MathlibTest/slim_check.lean 2025-04-12 16:30:03 53c7c8f chore(Archimedean/Basic): rename type variables (#23834) ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Archimedean/Basic.lean +/- theorem add_one_pow_unbounded_of_pos +/- theorem archimedean_iff_int_le +/- theorem archimedean_iff_int_lt +/- theorem archimedean_iff_nat_le +/- theorem archimedean_iff_nat_lt +/- theorem archimedean_iff_rat_le +/- theorem archimedean_iff_rat_lt +/- theorem eq_of_forall_rat_lt_iff_lt +/- theorem existsUnique_add_zpow_mem_Ioc +/- theorem existsUnique_div_zpow_mem_Ico +/- theorem existsUnique_mul_zpow_mem_Ico +/- theorem existsUnique_sub_zpow_mem_Ioc +/- theorem existsUnique_zpow_near_of_one_lt' +/- theorem existsUnique_zpow_near_of_one_lt +/- theorem exists_floor +/- theorem exists_int_gt +/- theorem exists_int_lt +/- theorem exists_nat_ge +/- theorem exists_nat_gt +/- theorem exists_nat_one_div_lt +/- theorem exists_pos_rat_lt +/- theorem exists_pow_btwn +/- theorem exists_pow_btwn_of_lt_mul +/- theorem exists_rat_btwn +/- theorem exists_rat_gt +/- theorem exists_rat_lt +/- theorem exists_rat_near +/- theorem exists_rat_pow_btwn +/- theorem exists_zpow_btwn_of_lt_mul +/- theorem le_iff_forall_rat_lt_imp_le +/- theorem le_of_forall_rat_lt_imp_le +/- theorem pow_unbounded_of_one_lt Modified Mathlib/Data/NNReal/Defs.lean 2025-04-12 15:38:52 39b008d feat(NumberTheory/Divisors): Define `Nat.divisorsAntidiagonalList` (#22977) This PR defines `Nat.divisorsAntidiagonalList` and proves a couple of basic results. This will be used in #21915 (adds a simproc to compute `Nat.divisorsAntidiagonal` and `Int.divisorsAntidiagonal`) ESTIMATED CHANGES Modified Mathlib/Data/Finset/Image.lean + theorem List.toFinset_filterMap Modified Mathlib/Data/List/Basic.lean + theorem List.left_le_of_mem_range' + theorem List.perm_reverse + theorem List.range'_0 + theorem List.reverse_perm' Modified Mathlib/Data/List/Pairwise.lean Modified Mathlib/Data/List/Sort.lean + theorem List.Sorted.filterMap + theorem List.sorted_le_range' + theorem List.sorted_le_replicate + theorem List.sorted_lt_range' + theorem List.sorted_replicate Modified Mathlib/Data/Nat/Init.lean Modified Mathlib/NumberTheory/Divisors.lean + def Nat.divisorsAntidiagonalList + theorem Nat.divisorsAntidiagonalList_one + theorem Nat.divisorsAntidiagonalList_zero + theorem Nat.mem_divisorsAntidiagonalList + theorem Nat.nodup_divisorsAntidiagonalList + theorem Nat.reverse_divisorsAntidiagonalList + theorem Nat.sorted_divisorsAntidiagonalList_fst + theorem Nat.sorted_divisorsAntidiagonalList_snd + theorem Nat.swap_mem_divisorsAntidiagonalList + theorem Nat.toFinset_divisorsAntidiagonalList + theorem Nat.val_divisorsAntidiagonal Modified Mathlib/Order/Interval/Finset/Nat.lean + theorem List.toFinset_range'_1 + theorem List.toFinset_range'_1_1 2025-04-12 12:48:20 b3f6625 refactor: prove `lintegral_eq_zero_iff'` without monotone convergence (#23947) Currently `lintegral_eq_zero_iff'` is proved using a two-function variant of Markov's inequality, which in turn requires the additive property of Lebesgue integrals (`lintegral_add_left`), which in turn requires the monotone convergence theorem. This was causing some oddities in #23860, where a number of imports in other files had to be bumped because they used `lintegral_eq_zero_iff`. It is however possible to prove `lintegral_eq_zero_iff'` with just the classical Markov's inequality, without additionally relying on monotone convergence. This PR does this and moves the six affected lemmas _before_ monotone convergence. ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Integral/Lebesgue/Basic.lean 2025-04-12 12:26:45 b69ab55 feat(Util/Simp): Implement `Simp.Methods.dischargeQ?` (#23510) This PR implements a `Qq` version of `Simp.Methods.discharge?`. This is useful in the context of using `Qq` to write simprocs involving goal discharging. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Util/Simp.lean + def Lean.Meta.Simp.Methods.dischargeQ? 2025-04-12 12:10:02 8d5baf4 chore(MeasureTheory/Measure): shorten proof of withDensity_rnDeriv_eq (#23954) Replaces 7 lines of proof with an invocation of [`singularPart_eq_zero`](https://github.com/leanprover-community/mathlib4/blob/28daac21cdf24d42249214b8e9abe0a5ffcc6bda/Mathlib/MeasureTheory/Measure/Decomposition/Lebesgue.lean#L262), which was recently added, in #11561. Found by [`tryAtEachStep`](https://github.com/dwrensha/tryAtEachStep). ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Measure/Decomposition/RadonNikodym.lean 2025-04-12 08:23:04 0c2287c feat(MeasureTheory/Integral): the Riesz-Markov-Kakutani theorem for `Real`-linear functionals (#12290) Prove that `rieszContent` gives a measure `rieszMeasure` such that, under `Λ : C(X, ℝ) →ₗ[ℝ] ℝ) (hΛ : ∀ (f : C(X, ℝ)), 0 ≤ f → 0 ≤ Λ f)`, it holds that `∀ (f : C_c(X, ℝ≥0)), ∫ (x : X), f x ∂ (rieszMeasure Λ hΛ) = Λ f`. The measure is defined through `rieszContent` for `toNNRealLinear`-version of `Λ`. The result is first proved for `Real`-linear `Λ` because in a standard proof one has to prove the inequalities by considering `Λ f` and `Λ (-f)` for all functions `f`, yet on `C_c(X, ℝ≥0)` there is no negation. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/MeasureTheory/Integral/RieszMarkovKakutani/Basic.lean + theorem CompactlySupportedContinuousMap.monotone_of_nonneg + theorem NNRealRMK.le_rieszMeasure_of_isCompact_tsupport_subset + theorem NNRealRMK.le_rieszMeasure_of_tsupport_subset + def NNRealRMK.rieszMeasure - theorem le_rieszMeasure_of_isCompact_tsupport_subset - theorem le_rieszMeasure_of_tsupport_subset - def rieszMeasure Added Mathlib/MeasureTheory/Integral/RieszMarkovKakutani/Real.lean + theorem RealRMK.exists_open_approx + theorem RealRMK.integral_rieszMeasure + theorem RealRMK.le_rieszMeasure_tsupport_subset + theorem RealRMK.range_cut_partition + theorem RealRMK.rieszMeasure_le_of_eq_one Added Mathlib/Order/Interval/Set/Union.lean + theorem Ico_subset_biUnion_Ico + theorem Ioc_subset_biUnion_Ioc 2025-04-12 05:54:14 35c37b6 chore: update Mathlib dependencies 2025-04-12 (#23965) This PR updates the Mathlib dependencies. ESTIMATED CHANGES Modified lake-manifest.json 2025-04-12 05:43:44 14afd0d feature(Analysis/LocallyConvex/AbsConvex): Add zero_mem_absConvexHull (#23845) The origin is a member of the absolute convex hull of a non-empty set (under appropriate hypothesis). ESTIMATED CHANGES Modified Mathlib/Analysis/LocallyConvex/AbsConvex.lean + theorem zero_mem_absConvexHull Modified Mathlib/Analysis/LocallyConvex/BalancedCoreHull.lean + theorem Balanced.balancedCore_eq + theorem Balanced.zero_mem 2025-04-11 21:03:31 e2bc6a0 chore: fix yet more induction branch names (#23686) Follow-up to #23448. This includes the entire stack of inductors in `Order.SuccPred.Limit`. ESTIMATED CHANGES Modified Mathlib/AlgebraicTopology/RelativeCellComplex/Basic.lean Modified Mathlib/CategoryTheory/Abelian/GrothendieckCategory/Monomorphisms.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Preorder/HasIterationOfShape.lean Modified Mathlib/CategoryTheory/MorphismProperty/TransfiniteComposition.lean Modified Mathlib/CategoryTheory/SmallObject/Iteration/Basic.lean Modified Mathlib/CategoryTheory/SmallObject/Iteration/Nonempty.lean Modified Mathlib/CategoryTheory/SmallObject/WellOrderInductionData.lean Modified Mathlib/Computability/TuringMachine.lean +/- def Turing.TM2to1.stmtStRec.{l} Modified Mathlib/Order/DirectedInverseSystem.lean Modified Mathlib/Order/IsNormal.lean Modified Mathlib/Order/SuccPred/Limit.lean +/- theorem Order.isPredLimitRecOn_of_isMax +/- theorem Order.isPredLimitRecOn_pred_of_not_isMin +/- theorem Order.isPredPrelimitRecOn_pred_of_not_isMin +/- theorem Order.isSuccLimitRecOn_of_isMin +/- theorem Order.isSuccLimitRecOn_succ_of_not_isMax +/- theorem Order.isSuccPrelimitRecOn_succ_of_not_isMax +/- theorem PredOrder.limitRecOn_isMax +/- theorem PredOrder.limitRecOn_pred_of_not_isMin +/- theorem PredOrder.prelimitRecOn_pred_of_not_isMin +/- theorem SuccOrder.limitRecOn_isMin +/- theorem SuccOrder.limitRecOn_succ_of_not_isMax +/- theorem SuccOrder.prelimitRecOn_succ_of_not_isMax Modified Mathlib/Order/TransfiniteIteration.lean Modified Mathlib/RingTheory/IsTensorProduct.lean +/- theorem IsTensorProduct.inductionOn Modified Mathlib/RingTheory/Kaehler/TensorProduct.lean Modified Mathlib/SetTheory/Cardinal/Regular.lean Modified Mathlib/SetTheory/Ordinal/Arithmetic.lean +/- def Ordinal.boundedLimitRecOn +/- theorem Ordinal.boundedLimitRec_limit +/- theorem Ordinal.boundedLimitRec_succ +/- theorem Ordinal.boundedLimitRec_zero +/- def Ordinal.limitRecOn +/- theorem Ordinal.limitRecOn_limit +/- theorem Ordinal.limitRecOn_succ +/- theorem Ordinal.limitRecOn_zero Modified Mathlib/SetTheory/Ordinal/Exponential.lean Modified Mathlib/SetTheory/Ordinal/Family.lean Modified Mathlib/SetTheory/Ordinal/NaturalOps.lean 2025-04-11 20:56:44 6010d6b chore: tag `innerDualCone_le_innerDualCone` with `gcongr` (#23956) Also make arguments implicit. From Toric ESTIMATED CHANGES Modified Mathlib/Analysis/Convex/Cone/InnerDual.lean 2025-04-11 20:23:59 e9dc71c feat(Analysis/RCLike): RCLike.StarModule ℝ (#23960) Add `StarModule ℝ 𝕜` for `RCLike 𝕜`. Upstreamed from [QuantumInfo](https://github.com/Timeroot/Lean-QuantumInfo). ESTIMATED CHANGES Modified Mathlib/Analysis/RCLike/Basic.lean 2025-04-11 19:15:55 95542e0 feat: `μ.real` as the real-valued version of a measure (#23943) We port some API of measures to their real-valued versions. Upstreamed from PFR and Carleson ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/MeasureTheory/Measure/MeasureSpace.lean + theorem MeasureTheory.measure_diff_eq_top + theorem MeasureTheory.measure_symmDiff_eq_top + theorem MeasureTheory.sum_measure_singleton Modified Mathlib/MeasureTheory/Measure/MeasureSpaceDef.lean + theorem MeasureTheory.measure_ne_top_of_subset Added Mathlib/MeasureTheory/Measure/Real.lean + def Mathlib.Meta.Positivity.evalMeasureReal + theorem MeasureTheory.Finset.sum_realMeasure_singleton + theorem MeasureTheory.exists_nonempty_inter_of_measureReal_univ_lt_sum_measureReal + theorem MeasureTheory.ext_iff_measureReal_singleton + theorem MeasureTheory.le_measureReal_diff + theorem MeasureTheory.map_measureReal_apply + theorem MeasureTheory.measureReal_add_diff + theorem MeasureTheory.measureReal_add_measureReal_compl + theorem MeasureTheory.measureReal_add_measureReal_compl₀ + theorem MeasureTheory.measureReal_biUnion_finset + theorem MeasureTheory.measureReal_biUnion_finset_le + theorem MeasureTheory.measureReal_biUnion_finset₀ + theorem MeasureTheory.measureReal_compl + theorem MeasureTheory.measureReal_congr + theorem MeasureTheory.measureReal_def + theorem MeasureTheory.measureReal_diff' + theorem MeasureTheory.measureReal_diff + theorem MeasureTheory.measureReal_diff_add_inter + theorem MeasureTheory.measureReal_diff_le_iff_le_add + theorem MeasureTheory.measureReal_diff_lt_of_lt_add + theorem MeasureTheory.measureReal_diff_null' + theorem MeasureTheory.measureReal_diff_null + theorem MeasureTheory.measureReal_empty + theorem MeasureTheory.measureReal_ennreal_smul_apply + theorem MeasureTheory.measureReal_eq_measureReal_larger_of_between_null_diff + theorem MeasureTheory.measureReal_eq_measureReal_of_between_null_diff + theorem MeasureTheory.measureReal_eq_measureReal_of_null_diff + theorem MeasureTheory.measureReal_eq_measureReal_smaller_of_between_null_diff + theorem MeasureTheory.measureReal_eq_zero_iff + theorem MeasureTheory.measureReal_iUnion_fintype + theorem MeasureTheory.measureReal_iUnion_fintype_le + theorem MeasureTheory.measureReal_inter_add_diff + theorem MeasureTheory.measureReal_inter_add_diff₀ + theorem MeasureTheory.measureReal_le_measureReal_union_left + theorem MeasureTheory.measureReal_le_measureReal_union_right + theorem MeasureTheory.measureReal_mono + theorem MeasureTheory.measureReal_mono_null + theorem MeasureTheory.measureReal_nnreal_smul_apply + theorem MeasureTheory.measureReal_nonneg + theorem MeasureTheory.measureReal_prod_prod + theorem MeasureTheory.measureReal_symmDiff_eq + theorem MeasureTheory.measureReal_symmDiff_le + theorem MeasureTheory.measureReal_union' + theorem MeasureTheory.measureReal_union + theorem MeasureTheory.measureReal_union_add_inter' + theorem MeasureTheory.measureReal_union_add_inter + theorem MeasureTheory.measureReal_union_add_inter₀' + theorem MeasureTheory.measureReal_union_add_inter₀ + theorem MeasureTheory.measureReal_union_congr_of_subset + theorem MeasureTheory.measureReal_union_le + theorem MeasureTheory.measureReal_union_null + theorem MeasureTheory.measureReal_union_null_iff + theorem MeasureTheory.measureReal_union₀' + theorem MeasureTheory.measureReal_union₀ + theorem MeasureTheory.measureReal_univ_eq_one + theorem MeasureTheory.measureReal_univ_ne_zero + theorem MeasureTheory.measureReal_univ_pos + theorem MeasureTheory.measureReal_zero + theorem MeasureTheory.measureReal_zero_apply + theorem MeasureTheory.nonempty_inter_of_measureReal_lt_add' + theorem MeasureTheory.nonempty_inter_of_measureReal_lt_add + theorem MeasureTheory.nonempty_of_measureReal_ne_zero + theorem MeasureTheory.sum_measureReal_le_measureReal_univ + theorem MeasureTheory.sum_measureReal_preimage_singleton Modified scripts/noshake.json 2025-04-11 17:23:30 1d2227e feat: generalize rest of Mathlib.RingTheory (#23194) This is one of a series of PRs that generalizes type classes across Mathlib. These are generated using a new linter that tries to re-elaborate theorem definitions with more general type classes to see if it succeeds. It will accept the generalization if deleting the entire type class causes the theorem to fail to compile, and the old type class can not simply be re-synthesized with the new declaration. Otherwise, the generalization is rejected as the type class is not being generalized, but can simply be replaced by implicit type class synthesis or an implicit type class in a variable block being pulled in. The linter currently output debug statements indicating source file positions where type classes should be generalized, and a script then makes those edits. This file contains a subset of those generalizations. The linter and the script performing re-writes is available in commit 5e2b7040be0f73821c1dcb360ffecd61235d87af. Also see discussion on Zulip here: https://leanprover.zulipchat.com/#narrow/channel/270676-lean4/topic/Elab.20to.20generalize.20type.20classes.20for.20theorems/near/498862988 https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Elab.20to.20generalize.20type.20classes.20for.20theorems/near/501288855 ESTIMATED CHANGES Modified Mathlib/RingTheory/Adjoin/Field.lean Modified Mathlib/RingTheory/Adjoin/PowerBasis.lean +/- theorem PowerBasis.repr_gen_pow_isIntegral +/- theorem PowerBasis.repr_mul_isIntegral +/- theorem PowerBasis.repr_pow_isIntegral Modified Mathlib/RingTheory/Binomial.lean +/- theorem Ring.smeval_ascPochhammer_nat_cast Modified Mathlib/RingTheory/Congruence/Defs.lean Modified Mathlib/RingTheory/DedekindDomain/Basic.lean +/- theorem isDedekindDomain_iff Modified Mathlib/RingTheory/HahnSeries/Basic.lean +/- theorem HahnSeries.order_le_of_coeff_ne_zero Modified Mathlib/RingTheory/IntegralClosure/Algebra/Basic.lean Modified Mathlib/RingTheory/IntegralClosure/IsIntegral/Basic.lean +/- theorem RingEquiv.isIntegral_iff Modified Mathlib/RingTheory/IntegralClosure/IsIntegralClosure/Basic.lean +/- theorem IsIntegralClosure.noZeroSMulDivisors +/- theorem IsIntegralClosure.tower_top Modified Mathlib/RingTheory/Jacobson/Ring.lean Modified Mathlib/RingTheory/LaurentSeries.lean +/- theorem RatFunc.single_one_eq_pow Modified Mathlib/RingTheory/LocalRing/MaximalIdeal/Basic.lean +/- theorem IsLocalRing.ker_eq_maximalIdeal Modified Mathlib/RingTheory/LocalRing/RingHom/Basic.lean +/- theorem IsLocalRing.of_surjective +/- theorem RingHom.domain_isLocalRing Modified Mathlib/RingTheory/Localization/Algebra.lean +/- theorem Polynomial.isLocalization Modified Mathlib/RingTheory/Localization/Away/Basic.lean +/- theorem Localization.awayLift_mk Modified Mathlib/RingTheory/Localization/Integral.lean +/- theorem IsFractionRing.isAlgebraic_iff' +/- theorem RingHom.isIntegralElem_localization_at_leadingCoeff Modified Mathlib/RingTheory/OreLocalization/OreSet.lean +/- theorem OreLocalization.nonempty_oreSet_iff Modified Mathlib/RingTheory/Regular/RegularSequence.lean +/- theorem Submodule.smul_top_le_comap_smul_top Modified Mathlib/RingTheory/TensorProduct/Basic.lean +/- theorem Algebra.TensorProduct.mk_one_injective_of_isScalarTower Modified Mathlib/RingTheory/TensorProduct/Finite.lean Modified Mathlib/RingTheory/Unramified/Basic.lean +/- theorem Algebra.FormallyUnramified.ext' +/- theorem Algebra.FormallyUnramified.lift_unique' 2025-04-11 16:35:06 fb73bfc refactor(RingTheory/Polynomial/Eisenstein/Criterion): refactor using the generalized criterion (#23948) This PR refactors the proof of the classic Eisenstein criterion using its generalized form. It also moves the classic criterion from `RingTheory.EisensteinCriterion` to `RingTheory.Polynomial.Eisenstein.Criterion`. ESTIMATED CHANGES Modified Archive/Examples/Eisenstein.lean Modified Archive/Wiedijk100Theorems/AbelRuffini.lean Modified Mathlib.lean Modified Mathlib/NumberTheory/Cyclotomic/Rat.lean Deleted Mathlib/RingTheory/EisensteinCriterion.lean - theorem Polynomial.EisensteinCriterionAux.eval_zero_mem_ideal_of_eq_mul_X_pow - theorem Polynomial.EisensteinCriterionAux.isUnit_of_natDegree_eq_zero_of_isPrimitive - theorem Polynomial.EisensteinCriterionAux.le_natDegree_of_map_eq_mul_X_pow - theorem Polynomial.EisensteinCriterionAux.map_eq_C_mul_X_pow_of_forall_coeff_mem - theorem Polynomial.irreducible_of_eisenstein_criterion Modified Mathlib/RingTheory/Polynomial/Eisenstein/Basic.lean Renamed Mathlib/RingTheory/Polynomial/Eisenstein/Generalized.lean to Mathlib/RingTheory/Polynomial/Eisenstein/Criterion.lean + theorem Polynomial.irreducible_of_eisenstein_criterion 2025-04-11 13:45:18 28daac2 feat: the Lie algebra of a Lie group over a general field (#18396) We construct the Lie algebra of a Lie group, where the bracket is given by the vector field bracket of invariant vector fields associated to an element of the Lie algebra, i.e., the tangent space at the identity. The Jacobi identity follows from the fact that it is satisfied generally by the Lie bracket of vector fields. Our construction of the Lie algebra of a Lie group makes sense when the Lie group is `C^n` for `n = minSmoothness 𝕜 3`, i.e., `C^3` over the reals or the complexes, analytic otherwise. This ensures symmetry of second derivatives, which is needed for the Jacobi identity. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Geometry/Manifold/Algebra/LeftInvariantDerivation.lean Modified Mathlib/Geometry/Manifold/DerivationBundle.lean Added Mathlib/Geometry/Manifold/GroupLieAlgebra.lean + theorem GroupLieAlgebra.bracket_def + theorem addInvariantVectorField_smul + theorem contMDiffAt_mulInvariantVectorField + theorem contMDiff_mulInvariantVectorField + theorem inverse_mfderiv_mul_left + theorem mdifferentiableAt_mulInvariantVectorField + theorem mdifferentiable_mulInvariantVectorField + theorem mpullback_mulInvariantVectorField + theorem mulInvariantVectorField_add + theorem mulInvariantVectorField_eq_mpullback + theorem mulInvariantVectorField_smul + theorem mulInvariantVector_mlieBracket Modified Mathlib/Geometry/Manifold/IsManifold/Basic.lean 2025-04-11 13:00:39 0ac690b feat(RingTheory/Polynomial/Eisenstein/Generalized): a generalized version of the Eisenstein criterion (#23710) A generalized form of the Eisenstein criterion Let `R` be an integral domain, `P` a prime ideal of `R` and let `K` be the field of fractions o f `R ⧸ P`. Let `q : R[X]` be a monic polynomial which is irreducible in `K[X]`. Let `f : R[X]` be a monic polynomial of strictly positive degree whose image in `K[X]` is a power of `q`. Assume moreover that `f.modByMonic q` is not zero in `(R ⧸ (P ^ 2))[X]`. Then `f` is irreducible. The Eisenstein criterion is the particular case where `q := X`. The case of a polynomial `q := X - a` is interesting, then the mod `P ^ 2` hypothesis can rephrased as saying that `f.derivative.eval a ∉ P ^ 2`. (TODO) The case of cyclotomic polynomials of prime index can be proved directly using that, with `a = 1`. We give a (possibly non convincing) application to the irreducibility of the polynomial `X ^ 4 - 10 * X + 1` in `ℤ[X]`. One argues modulo 3, with `q := X ^ 2 + 1`. ## Remark The result can also be generalized to the case where the leading coefficients of `f` and `q` do not belong to `P`. (By localization at `P`, make these coefficients invertible.) There are two obstructions, though : * Usually, one will only obtain irreducibility in `F[X]`, where `F` is the field of fractions of `R`. (If `R` is a UFD, this will be close to what is wanted, but not in general.) * The mod `P ^ 2` hypothesis will have to be rephrased to a condition in the second symbolic power of `P`. When `P` is a maximal ideal, that symbolic power coincides with `P ^ 2`, but not in general. ESTIMATED CHANGES Modified Archive.lean Added Archive/Examples/Eisenstein.lean Modified Mathlib.lean Modified Mathlib/Algebra/CharP/Defs.lean + theorem CharP.ofNat_eq_zero' Modified Mathlib/Algebra/CharP/Quotient.lean + theorem CharP.ker_intAlgebraMap_eq_span Modified Mathlib/Algebra/Polynomial/Coeff.lean Modified Mathlib/Algebra/Polynomial/SpecificDegree.lean + theorem Polynomial.irreducible_of_degree_le_three_of_not_isRoot Modified Mathlib/RingTheory/Ideal/Prime.lean + theorem Ideal.IsPrime.mul_not_mem Added Mathlib/RingTheory/Polynomial/Eisenstein/Generalized.lean + theorem Polynomial.generalizedEisenstein 2025-04-11 12:31:20 1a3c740 feat(Matroid): definition of minor (#23873) This PR shows that matroid deletion and contraction commute subject to various disjointness assumptions, and defines the partial order `IsMinor` on the type `Matroid α`. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Data/Matroid/Constructions.lean Renamed Mathlib/Data/Matroid/Minor/Basic.lean to Mathlib/Data/Matroid/Minor/Contract.lean - theorem Matroid.Coindep.delete_isBase_iff - theorem Matroid.Coindep.delete_rankPos - theorem Matroid.Coindep.delete_spanning_iff - theorem Matroid.Indep.indep_delete_of_disjoint - theorem Matroid.Indep.of_delete - theorem Matroid.IsBasis.delete - theorem Matroid.IsBasis.of_delete - theorem Matroid.IsCircuit.of_delete - theorem Matroid.IsNonloop.of_delete - theorem Matroid.IsRestriction.exists_eq_delete - theorem Matroid.IsRestriction.isRestriction_deleteElem - theorem Matroid.IsRestriction.restrict_delete_of_disjoint - theorem Matroid.circuit_iff_delete_of_disjoint + theorem Matroid.contract_delete_comm' + theorem Matroid.contract_delete_comm + theorem Matroid.contract_delete_contract' + theorem Matroid.contract_delete_contract + theorem Matroid.contract_delete_contract_delete' + theorem Matroid.contract_delete_contract_delete + theorem Matroid.contract_delete_diff + theorem Matroid.contract_restrict_eq_restrict_contract - def Matroid.delete - theorem Matroid.deleteElem_eq_self - theorem Matroid.deleteElem_indep_iff - theorem Matroid.delete_closure_eq - theorem Matroid.delete_closure_eq_of_disjoint - theorem Matroid.delete_comm - theorem Matroid.delete_compl + theorem Matroid.delete_contract_comm' + theorem Matroid.delete_contract_delete' + theorem Matroid.delete_contract_delete + theorem Matroid.delete_contract_eq_diff - theorem Matroid.delete_delete - theorem Matroid.delete_delete_eq_delete_diff - theorem Matroid.delete_dep_iff - theorem Matroid.delete_empty - theorem Matroid.delete_eq_delete_iff - theorem Matroid.delete_eq_restrict - theorem Matroid.delete_eq_self_iff - theorem Matroid.delete_ground - theorem Matroid.delete_indep_iff - theorem Matroid.delete_inter_ground_eq - theorem Matroid.delete_isBase_iff - theorem Matroid.delete_isBasis'_iff - theorem Matroid.delete_isBasis_iff - theorem Matroid.delete_isCircuit_iff - theorem Matroid.delete_isColoop_iff - theorem Matroid.delete_isLoop_iff - theorem Matroid.delete_isNonloop_iff - theorem Matroid.delete_isRestriction - theorem Matroid.delete_loops_eq - theorem Matroid.delete_loops_eq_removeLoops - theorem Matroid.delete_subset_ground - theorem Matroid.indep_iff_delete_of_disjoint - theorem Matroid.isNonloop_iff_delete_of_not_mem - theorem Matroid.isRestriction_iff_exists_eq_delete - theorem Matroid.restrict_compl + theorem Matroid.restrict_contract_eq_contract_restrict Added Mathlib/Data/Matroid/Minor/Delete.lean + theorem Matroid.Coindep.delete_isBase_iff + theorem Matroid.Coindep.delete_rankPos + theorem Matroid.Coindep.delete_spanning_iff + theorem Matroid.Indep.indep_delete_of_disjoint + theorem Matroid.Indep.of_delete + theorem Matroid.IsBasis.delete + theorem Matroid.IsBasis.of_delete + theorem Matroid.IsCircuit.of_delete + theorem Matroid.IsNonloop.of_delete + theorem Matroid.IsRestriction.exists_eq_delete + theorem Matroid.IsRestriction.isRestriction_deleteElem + theorem Matroid.IsRestriction.restrict_delete_of_disjoint + theorem Matroid.circuit_iff_delete_of_disjoint + def Matroid.delete + theorem Matroid.deleteElem_eq_self + theorem Matroid.deleteElem_indep_iff + theorem Matroid.delete_closure_eq + theorem Matroid.delete_closure_eq_of_disjoint + theorem Matroid.delete_comm + theorem Matroid.delete_compl + theorem Matroid.delete_delete + theorem Matroid.delete_delete_eq_delete_diff + theorem Matroid.delete_dep_iff + theorem Matroid.delete_empty + theorem Matroid.delete_eq_delete_iff + theorem Matroid.delete_eq_restrict + theorem Matroid.delete_eq_self_iff + theorem Matroid.delete_ground + theorem Matroid.delete_indep_iff + theorem Matroid.delete_inter_ground_eq + theorem Matroid.delete_isBase_iff + theorem Matroid.delete_isBasis'_iff + theorem Matroid.delete_isBasis_iff + theorem Matroid.delete_isCircuit_iff + theorem Matroid.delete_isColoop_iff + theorem Matroid.delete_isLoop_iff + theorem Matroid.delete_isNonloop_iff + theorem Matroid.delete_isRestriction + theorem Matroid.delete_loops_eq + theorem Matroid.delete_loops_eq_removeLoops + theorem Matroid.delete_subset_ground + theorem Matroid.indep_iff_delete_of_disjoint + theorem Matroid.isNonloop_iff_delete_of_not_mem + theorem Matroid.isRestriction_iff_exists_eq_delete + theorem Matroid.restrict_compl Added Mathlib/Data/Matroid/Minor/Order.lean + theorem Matroid.Dep.of_isMinor + theorem Matroid.Indep.of_isMinor + theorem Matroid.IsLoop.of_isMinor + theorem Matroid.IsMinor.antisymm + theorem Matroid.IsMinor.eq_of_ground_subset + theorem Matroid.IsMinor.exists_eq_contract_delete_disjoint + theorem Matroid.IsMinor.le + theorem Matroid.IsMinor.refl + theorem Matroid.IsMinor.subset + theorem Matroid.IsMinor.trans + theorem Matroid.IsMinor.trans_isStrictMinor + def Matroid.IsMinor + theorem Matroid.IsNonloop.of_isMinor + theorem Matroid.IsStrictMinor.isMinor + theorem Matroid.IsStrictMinor.lt + theorem Matroid.IsStrictMinor.ne + theorem Matroid.IsStrictMinor.not_isMinor + theorem Matroid.IsStrictMinor.ssubset + theorem Matroid.IsStrictMinor.trans + theorem Matroid.IsStrictMinor.trans_isMinor + def Matroid.IsStrictMinor + theorem Matroid.contract_delete_isMinor + theorem Matroid.isStrictMinor_iff_isMinor_ne + theorem Matroid.isStrictMinor_iff_isMinor_ssubset + theorem Matroid.isStrictMinor_irrefl + theorem Matroid.le_eq_isMinor + theorem Matroid.lt_eq_isStrictMinor Renamed Mathlib/Data/Matroid/Restrict.lean to Mathlib/Data/Matroid/Minor/Restrict.lean Modified scripts/noshake.json 2025-04-11 09:39:43 c3f2f2d feat(Algebra/Polynomial/Laurent): Lifting maps to ring of Laurent polynomials (#19573) This PR defines `LaurentPolynomial.eval₂` and provides basic API for it. This was mentioned unter "future work" in the comments. ESTIMATED CHANGES Modified Mathlib/Algebra/Polynomial/Laurent.lean + def LaurentPolynomial.eval₂ + theorem LaurentPolynomial.eval₂_C + theorem LaurentPolynomial.eval₂_C_mul_T + theorem LaurentPolynomial.eval₂_C_mul_T_n + theorem LaurentPolynomial.eval₂_C_mul_T_neg_n + theorem LaurentPolynomial.eval₂_T + theorem LaurentPolynomial.eval₂_T_n + theorem LaurentPolynomial.eval₂_T_neg_n + theorem LaurentPolynomial.eval₂_toLaurent - theorem LaurentPolynomial.isLocalization + theorem LaurentPolynomial.mk'_eq + theorem LaurentPolynomial.mk'_mul_T + theorem LaurentPolynomial.mk'_one_X + theorem LaurentPolynomial.mk'_one_X_pow 2025-04-11 08:18:12 5dfc3a9 feat(Order/GroupWithZero): drop more TC assumptions (#23922) Prove `PosMulReflectLT.toPosMulStrictMono` and use it as a `local instance` to drop even more TC assumptions. This is a follow-up to #23892 and #23901. ESTIMATED CHANGES Modified Mathlib/Algebra/Order/GroupWithZero/Finset.lean +/- theorem Finset.mul₀_sup' +/- theorem Finset.sup'_div₀ +/- theorem Finset.sup'_mul₀ Modified Mathlib/Algebra/Order/GroupWithZero/Unbundled/Basic.lean + theorem MulPosReflectLT.toMulPosStrictMono + theorem PosMulReflectLT.toPosMulStrictMono + theorem Right.inv_pos +/- theorem div_nonneg +/- theorem div_pos +/- theorem zpow_nonneg +/- theorem zpow_pos Modified Mathlib/Algebra/Order/GroupWithZero/Unbundled/Defs.lean + theorem PosMulMono.toMulPosMono + theorem PosMulReflectLE.toMulPosReflectLE + theorem PosMulReflectLT.toMulPosReflectLT + theorem PosMulStrictMono.toMulPosStrictMono Modified Mathlib/Algebra/Order/GroupWithZero/Unbundled/OrderIso.lean +/- def OrderIso.divRight₀ 2025-04-11 07:53:29 6f62fbd feat: bialgebra structure from algebra homs (#23695) From Toric ESTIMATED CHANGES Modified Mathlib/RingTheory/Bialgebra/Basic.lean 2025-04-11 06:06:14 706ce8d chore(Data/List/Basic): deprecate duplicate lemma `erase_diff_erase_sublist_of_sublist` (#23917) Marks `erase_diff_erase_sublist_of_sublist` as a deprecated alias of [`Sublist.erase_diff_erase_sublist`]( https://github.com/leanprover-community/batteries/blob/f523fcb75db2b472cda7d94d6caa5d745b1a0c26/Batteries/Data/List/Lemmas.lean#L329-L337). This duplication was found by [`tryAtEachStep`](https://github.com/dwrensha/tryAtEachStep). ESTIMATED CHANGES Modified Mathlib/Data/List/Basic.lean - theorem List.erase_diff_erase_sublist_of_sublist 2025-04-11 02:53:17 e6de4ea chore: rename Set.range_prod_map -> Set.range_prodMap (#23925) ESTIMATED CHANGES Modified Mathlib/Data/Set/Prod.lean + theorem Set.range_prodMap - theorem Set.range_prod_map Modified Mathlib/Geometry/Manifold/ContMDiffMFDeriv.lean Modified Mathlib/Geometry/Manifold/IsManifold/InteriorBoundary.lean Modified Mathlib/MeasureTheory/MeasurableSpace/Prod.lean Modified Mathlib/NumberTheory/LSeries/PrimesInAP.lean Modified Mathlib/Topology/UniformSpace/Basic.lean Modified Mathlib/Topology/UniformSpace/Equicontinuity.lean 2025-04-11 01:58:21 25569eb chore(Data/ENat): golf `exists_eq_iInf` (#23931) This allows us to remove an unnecessary import. Also we move the lemma directly below its corresponding `iSup` lemma for consistency. ESTIMATED CHANGES Modified Mathlib/Data/ENat/Lattice.lean +/- theorem ENat.exists_eq_iInf 2025-04-11 00:24:48 fba98fa chore: delete >6 month old deprecations (2024-10 01-10) (#23928) Deprecations were found with the regex `2024-10-(0[1-9]|10)`. ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/NonUnitalSubalgebra.lean Modified Mathlib/Algebra/Algebra/Subalgebra/Lattice.lean Modified Mathlib/Algebra/Category/ModuleCat/Basic.lean Modified Mathlib/Algebra/Category/Ring/Constructions.lean Modified Mathlib/Algebra/Category/Ring/Instances.lean Modified Mathlib/Algebra/Group/Subgroup/Lattice.lean Modified Mathlib/Algebra/Group/Submonoid/Basic.lean Modified Mathlib/Algebra/Group/Subsemigroup/Basic.lean Modified Mathlib/Algebra/Group/Units/Equiv.lean Modified Mathlib/Algebra/Group/Units/Hom.lean Modified Mathlib/Algebra/GroupWithZero/Units/Lemmas.lean Modified Mathlib/Algebra/Order/Field/Basic.lean - theorem div_le_of_nonneg_of_le_mul - theorem div_le_one_of_le - theorem div_lt_iff' - theorem div_lt_iff - theorem inv_le - theorem inv_le_inv - theorem inv_le_inv_of_le - theorem inv_le_of_inv_le - theorem inv_le_one - theorem inv_le_one_iff - theorem inv_lt - theorem inv_lt_inv - theorem inv_lt_inv_of_lt - theorem inv_lt_of_inv_lt - theorem inv_lt_one - theorem inv_lt_one_iff - theorem inv_lt_one_iff_of_pos - theorem inv_mul_le_iff' - theorem inv_mul_le_iff - theorem inv_mul_le_one_of_le - theorem inv_mul_lt_iff' - theorem inv_mul_lt_iff - theorem inv_pos_le_iff_one_le_mul' - theorem inv_pos_le_iff_one_le_mul - theorem inv_pos_lt_iff_one_lt_mul' - theorem inv_pos_lt_iff_one_lt_mul - theorem le_inv - theorem lt_div_iff' - theorem lt_div_iff - theorem lt_inv - theorem mul_inv_le_iff' - theorem mul_inv_le_iff - theorem mul_inv_le_one_of_le - theorem mul_inv_lt_iff' - theorem mul_inv_lt_iff - theorem mul_le_of_nonneg_of_le_div - theorem one_le_inv - theorem one_le_inv_iff - theorem one_lt_inv - theorem one_lt_inv_iff Modified Mathlib/Algebra/Order/Field/Power.lean - theorem Nat.zpow_ne_zero_of_pos - theorem div_pow_le - theorem one_le_zpow_of_nonneg - theorem zpow_inj - theorem zpow_injective - theorem zpow_le_iff_le - theorem zpow_le_max_iff_min_le - theorem zpow_le_max_of_min_le - theorem zpow_le_of_le - theorem zpow_le_one_of_nonpos - theorem zpow_lt_iff_lt - theorem zpow_strictAnti - theorem zpow_strictMono Modified Mathlib/Algebra/Order/GroupWithZero/Unbundled/Basic.lean Modified Mathlib/Algebra/Order/Ring/Basic.lean Modified Mathlib/Algebra/Polynomial/Expand.lean Modified Mathlib/Algebra/Polynomial/Splits.lean Modified Mathlib/Algebra/Ring/Subring/Basic.lean Modified Mathlib/Algebra/Ring/Subsemiring/Basic.lean Modified Mathlib/Algebra/Star/NonUnitalSubalgebra.lean Modified Mathlib/Analysis/CStarAlgebra/Multiplier.lean Modified Mathlib/Analysis/Calculus/ContDiff/Basic.lean Modified Mathlib/Analysis/Calculus/ContDiff/Defs.lean Modified Mathlib/Analysis/Complex/Basic.lean Modified Mathlib/Analysis/Normed/Algebra/Unitization.lean Modified Mathlib/Analysis/Normed/Operator/ContinuousLinearMap.lean Modified Mathlib/Analysis/NormedSpace/Multilinear/Basic.lean Modified Mathlib/Analysis/ODE/PicardLindelof.lean Modified Mathlib/Analysis/SpecificLimits/Normed.lean - theorem Real.tendsto_pow_div_factorial_atTop Modified Mathlib/CategoryTheory/Adjunction/Unique.lean Modified Mathlib/CategoryTheory/Yoneda.lean Modified Mathlib/Combinatorics/SimpleGraph/Subgraph.lean Modified Mathlib/Data/Finset/Basic.lean - theorem Finset.sdiff_singleton_eq_self Modified Mathlib/Data/Finset/SDiff.lean Modified Mathlib/Data/NNReal/Defs.lean - theorem NNReal.div_lt_iff' - theorem NNReal.div_lt_iff - theorem NNReal.le_div_iff' - theorem NNReal.lt_div_iff' - theorem NNReal.lt_div_iff Modified Mathlib/Data/Real/Archimedean.lean Modified Mathlib/Data/Set/Piecewise.lean Modified Mathlib/Data/Set/Prod.lean Modified Mathlib/Data/Setoid/Basic.lean - theorem Quotient.eq_rel - def Setoid.Rel - theorem Setoid.ext' - theorem Setoid.ext'_iff Modified Mathlib/Geometry/Manifold/ContMDiffMFDeriv.lean Modified Mathlib/Geometry/Manifold/MFDeriv/Defs.lean Modified Mathlib/Geometry/RingedSpace/LocallyRingedSpace.lean Modified Mathlib/Geometry/RingedSpace/LocallyRingedSpace/HasColimits.lean Modified Mathlib/LinearAlgebra/AffineSpace/Combination.lean Modified Mathlib/LinearAlgebra/Dimension/Basic.lean Modified Mathlib/LinearAlgebra/Dimension/Finrank.lean Modified Mathlib/LinearAlgebra/ExteriorAlgebra/Basic.lean Modified Mathlib/LinearAlgebra/QuadraticForm/Basic.lean Modified Mathlib/LinearAlgebra/Span/Defs.lean Modified Mathlib/Logic/Function/Basic.lean Modified Mathlib/MeasureTheory/Function/L1Space/Integrable.lean Modified Mathlib/MeasureTheory/Function/SimpleFuncDenseLp.lean Modified Mathlib/MeasureTheory/Measure/WithDensityFinite.lean - theorem MeasureTheory.densityToFinite_ae_lt_top - theorem MeasureTheory.densityToFinite_ae_ne_top - theorem MeasureTheory.densityToFinite_def - theorem MeasureTheory.measurable_densityToFinite - theorem MeasureTheory.withDensity_densitytoFinite Modified Mathlib/Order/CompactlyGenerated/Basic.lean Modified Mathlib/Order/InitialSeg.lean - theorem PrincipalSeg.down Modified Mathlib/Probability/UniformOn.lean Modified Mathlib/RingTheory/Henselian.lean Modified Mathlib/RingTheory/Ideal/Operations.lean Modified Mathlib/RingTheory/LocalRing/ResidueField/Basic.lean Modified Mathlib/RingTheory/LocalRing/RingHom/Basic.lean Modified Mathlib/RingTheory/Localization/AtPrime.lean Modified Mathlib/RingTheory/MvPowerSeries/Inverse.lean Modified Mathlib/RingTheory/PowerSeries/Inverse.lean Modified Mathlib/RingTheory/Spectrum/Prime/Topology.lean Modified Mathlib/RingTheory/SurjectiveOnStalks.lean Modified Mathlib/RingTheory/Valuation/ValExtension.lean Modified Mathlib/SetTheory/Cardinal/Order.lean - def Cardinal.liftOrderEmbedding - theorem Cardinal.lift_down Modified Mathlib/SetTheory/Ordinal/Basic.lean - theorem Ordinal.lift_down' - theorem Ordinal.lift_down - theorem Ordinal.typein.principalSeg_coe Modified Mathlib/SetTheory/Ordinal/Exponential.lean - theorem Ordinal.log_of_not_one_lt_left Modified Mathlib/Topology/Algebra/ContinuousMonoidHom.lean - structure ContinuousAddMonoidHomClass - structure ContinuousMonoidHomClass Modified Mathlib/Topology/Algebra/Group/Quotient.lean - theorem QuotientGroup.continuous_smul₁ Modified Mathlib/Topology/Algebra/IsUniformGroup/Basic.lean Modified Mathlib/Topology/Algebra/Module/Alternating/Topology.lean Modified Mathlib/Topology/Algebra/Module/Equiv.lean Modified Mathlib/Topology/Algebra/Module/Multilinear/Topology.lean Modified Mathlib/Topology/Algebra/Module/StrongTopology.lean Modified Mathlib/Topology/Algebra/SeparationQuotient/Section.lean Modified Mathlib/Topology/Algebra/UniformMulAction.lean Modified Mathlib/Topology/CompactOpen.lean - theorem ContinuousMap.continuous_coe Modified Mathlib/Topology/Constructions/SumProd.lean Modified Mathlib/Topology/ContinuousMap/Compact.lean Modified Mathlib/Topology/ContinuousMap/ContinuousMapZero.lean Modified Mathlib/Topology/ContinuousOn.lean Modified Mathlib/Topology/DenseEmbedding.lean Modified Mathlib/Topology/EMetricSpace/Basic.lean Modified Mathlib/Topology/Instances/Int.lean Modified Mathlib/Topology/Instances/Nat.lean Modified Mathlib/Topology/Instances/PNat.lean Modified Mathlib/Topology/Instances/Rat.lean Modified Mathlib/Topology/Maps/Proper/Basic.lean Modified Mathlib/Topology/MetricSpace/Antilipschitz.lean Modified Mathlib/Topology/MetricSpace/Basic.lean Modified Mathlib/Topology/MetricSpace/Closeds.lean Modified Mathlib/Topology/MetricSpace/Dilation.lean Modified Mathlib/Topology/MetricSpace/Isometry.lean Modified Mathlib/Topology/MetricSpace/Pseudo/Basic.lean Modified Mathlib/Topology/MetricSpace/Pseudo/Constructions.lean Modified Mathlib/Topology/Neighborhoods.lean Modified Mathlib/Topology/NoetherianSpace.lean - theorem TopologicalSpace.NoetherianSpace.wellFounded_closeds Modified Mathlib/Topology/Order/UpperLowerSetTopology.lean Modified Mathlib/Topology/Path.lean - theorem Continuous.path_eval Modified Mathlib/Topology/Sober.lean Modified Mathlib/Topology/UniformSpace/AbstractCompletion.lean Modified Mathlib/Topology/UniformSpace/Ascoli.lean Modified Mathlib/Topology/UniformSpace/Basic.lean Modified Mathlib/Topology/UniformSpace/CompactConvergence.lean Modified Mathlib/Topology/UniformSpace/CompleteSeparated.lean Modified Mathlib/Topology/UniformSpace/Completion.lean Modified Mathlib/Topology/UniformSpace/Equicontinuity.lean Modified Mathlib/Topology/UniformSpace/Equiv.lean Modified Mathlib/Topology/UniformSpace/UniformConvergenceTopology.lean Modified Mathlib/Topology/UniformSpace/UniformEmbedding.lean 2025-04-10 23:50:41 4d1bfc4 feat(WithTerminal): `FinCategory` instance (#23887) Showing that `WithTerminal C` and `WithInitial C` are finite whenever the starting category `C` is. From Toric ESTIMATED CHANGES Modified Mathlib.lean Renamed Mathlib/CategoryTheory/WithTerminal.lean to Mathlib/CategoryTheory/WithTerminal/Basic.lean Added Mathlib/CategoryTheory/WithTerminal/FinCategory.lean + def CategoryTheory.WithInitial.optionEquiv + def CategoryTheory.WithTerminal.optionEquiv 2025-04-10 22:03:19 684599a feat: if `F` is fully faithful, then so is `F.mapMon` (#23874) Also make more arguments to `isMon_Hom.one_hom`/`IsMon_Hom.mul_hom` explicit, for rewriting. From Toric ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Monoidal/Grp_.lean Modified Mathlib/CategoryTheory/Monoidal/Mon_.lean + theorem CategoryTheory.Functor.obj.η_def + theorem CategoryTheory.Functor.obj.μ_def 2025-04-10 20:47:05 89ff66b feat: lemma `eval_of_algHom` (#23065) Let `k` be an integral domain and `G` an arbitrary finite set. Then any algebra morphism `φ : (G → k) →ₐ[k] k` is an evaluation map. ESTIMATED CHANGES Modified Mathlib/RepresentationTheory/Tannaka.lean + theorem eval_of_algHom 2025-04-10 20:30:52 f37d3bd chore: drop prime from Irreducible.isUnit_or_isUnit' and use implicit arguments (#23924) ESTIMATED CHANGES Modified Mathlib/Algebra/CharP/Algebra.lean Modified Mathlib/Algebra/GroupWithZero/Associated.lean Modified Mathlib/Algebra/Polynomial/Monic.lean Modified Mathlib/Algebra/Prime/Defs.lean - theorem Irreducible.isUnit_or_isUnit Modified Mathlib/Algebra/Prime/Lemmas.lean Modified Mathlib/Data/Nat/Prime/Defs.lean Modified Mathlib/FieldTheory/KummerPolynomial.lean Modified Mathlib/RingTheory/Polynomial/IrreducibleRing.lean Modified Mathlib/SetTheory/Cardinal/Divisibility.lean 2025-04-10 17:59:06 af8d282 chore(LinearAlgebra): process misc porting notes (#23908) ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/CliffordAlgebra/Basic.lean Modified Mathlib/LinearAlgebra/CliffordAlgebra/Contraction.lean Modified Mathlib/LinearAlgebra/DFinsupp.lean Modified Mathlib/LinearAlgebra/Dimension/StrongRankCondition.lean Modified Mathlib/LinearAlgebra/Matrix/GeneralLinearGroup/Defs.lean +/- theorem Matrix.GeneralLinearGroup.coe_toLin +/- theorem Matrix.GeneralLinearGroup.toLin_apply Modified Mathlib/LinearAlgebra/Projectivization/Basic.lean Modified Mathlib/LinearAlgebra/TensorAlgebra/Basic.lean 2025-04-10 17:59:05 f7fae50 feat(CategoryTheory/Sites): global sections functor on sheaves (#22816) This PR defines `Sheaf.Γ : Sheaf J A ⥤ A` as the functor taking each sheaf to the limit of its underlying presheaf whenever possible, i.e. whenever `A` has sufficiently large limits, and shows that this agrees with several other common definitions when they are defined, like evaluation of sheaves on a terminal object. See [Zulip](https://leanprover.zulipchat.com/#narrow/channel/116395-maths/topic/global.20sections.20functor) for the discussion that lead to this approach. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/CategoryTheory/Limits/Types/Limits.lean Added Mathlib/CategoryTheory/Sites/GlobalSections.lean + theorem CategoryTheory.Sheaf.coneΓ_π_app + theorem CategoryTheory.Sheaf.ΓHomEquiv_naturality_left + theorem CategoryTheory.Sheaf.ΓHomEquiv_naturality_left_symm + theorem CategoryTheory.Sheaf.ΓHomEquiv_naturality_right + theorem CategoryTheory.Sheaf.ΓHomEquiv_naturality_right_symm + theorem CategoryTheory.Sheaf.ΓObjEquivHom_naturality + theorem CategoryTheory.Sheaf.ΓObjEquivHom_naturality_symm + theorem CategoryTheory.Sheaf.ΓObjEquivSections_naturality + theorem CategoryTheory.Sheaf.ΓObjEquivSections_naturality_symm + theorem CategoryTheory.Sheaf.ΓRes_map + theorem CategoryTheory.Sheaf.ΓRes_naturality Modified Mathlib/CategoryTheory/Sites/Sheaf.lean + def CategoryTheory.sheafSectionsNatIsoEvaluation Modified Mathlib/CategoryTheory/Yoneda.lean + def CategoryTheory.Functor.sectionsEquivHom + theorem CategoryTheory.Functor.sectionsEquivHom_naturality + theorem CategoryTheory.Functor.sectionsEquivHom_naturality_symm 2025-04-10 16:38:19 c555785 chore: deprecate semibundled ordered algebraic typeclasses (#20676) This PR deprecates 32 legacy semibundled `Ordered*` typeclasses and migrates to new mixin typeclasses `IsOrdered(Cancel)(Add)Monoid` and `Is(Strict)OrderedRing`. |Old|New| | ESTIMATED CHANGES Modified Archive/Imo/Imo2011Q5.lean Modified Counterexamples/CanonicallyOrderedCommSemiringTwoMul.lean Modified Counterexamples/HomogeneousPrimeNotPrime.lean Modified Counterexamples/MapFloor.lean Modified Counterexamples/SorgenfreyLine.lean Modified Mathlib/Algebra/Algebra/Subalgebra/Order.lean Modified Mathlib/Algebra/CharP/Defs.lean Modified Mathlib/Algebra/Group/Basic.lean Modified Mathlib/Algebra/Group/Subgroup/Order.lean Modified Mathlib/Algebra/Lie/Subalgebra.lean Modified Mathlib/Algebra/Module/Rat.lean Modified Mathlib/Algebra/Module/Submodule/Order.lean Modified Mathlib/Algebra/Module/Submodule/Pointwise.lean Modified Mathlib/Algebra/Order/AbsoluteValue/Basic.lean Modified Mathlib/Algebra/Order/AddGroupWithTop.lean Modified Mathlib/Algebra/Order/Archimedean/Basic.lean Modified Mathlib/Algebra/Order/Archimedean/Submonoid.lean Modified Mathlib/Algebra/Order/CompleteField.lean Modified Mathlib/Algebra/Order/Field/Defs.lean + structure LinearOrderedField + structure LinearOrderedSemifield Modified Mathlib/Algebra/Order/Field/InjSurj.lean Modified Mathlib/Algebra/Order/Field/Rat.lean Modified Mathlib/Algebra/Order/Field/Subfield.lean Modified Mathlib/Algebra/Order/Floor/Ring.lean +/- theorem Int.abs_sub_lt_one_of_floor_eq_floor Modified Mathlib/Algebra/Order/Group/Cone.lean + theorem IsOrderedMonoid.mkOfCone - def LinearOrderedCommGroup.mkOfCone - def OrderedCommGroup.mkOfCone Modified Mathlib/Algebra/Order/Group/Defs.lean + structure LinearOrderedAddCommGroup + structure LinearOrderedCommGroup + structure OrderedAddCommGroup - theorem OrderedCommGroup.toMulLeftReflectLE - theorem OrderedCommGroup.toMulRightReflectLE + structure OrderedCommGroup Modified Mathlib/Algebra/Order/Group/InjSurj.lean Modified Mathlib/Algebra/Order/Group/Instances.lean Modified Mathlib/Algebra/Order/Group/Int.lean Modified Mathlib/Algebra/Order/Group/Nat.lean Modified Mathlib/Algebra/Order/Group/Opposite.lean Modified Mathlib/Algebra/Order/Group/PiLex.lean Modified Mathlib/Algebra/Order/Group/Prod.lean Modified Mathlib/Algebra/Order/Group/TypeTags.lean Modified Mathlib/Algebra/Order/Group/Units.lean Modified Mathlib/Algebra/Order/GroupWithZero/Canonical.lean Modified Mathlib/Algebra/Order/Hom/Monoid.lean Modified Mathlib/Algebra/Order/Interval/Basic.lean Modified Mathlib/Algebra/Order/Kleene.lean Modified Mathlib/Algebra/Order/Module/PositiveLinearMap.lean +/- def PositiveLinearMap.mk₀ +/- structure PositiveLinearMap Modified Mathlib/Algebra/Order/Monoid/Associated.lean Modified Mathlib/Algebra/Order/Monoid/Basic.lean Modified Mathlib/Algebra/Order/Monoid/Canonical/Defs.lean Modified Mathlib/Algebra/Order/Monoid/Defs.lean + structure LinearOrderedAddCommMonoid + structure LinearOrderedCancelAddCommMonoid + structure LinearOrderedCancelCommMonoid + structure LinearOrderedCommMonoid + structure OrderedAddCommMonoid + structure OrderedCancelAddCommMonoid + structure OrderedCancelCommMonoid + structure OrderedCommMonoid Modified Mathlib/Algebra/Order/Monoid/OrderDual.lean Modified Mathlib/Algebra/Order/Monoid/Prod.lean Modified Mathlib/Algebra/Order/Monoid/Submonoid.lean Modified Mathlib/Algebra/Order/Monoid/TypeTags.lean Modified Mathlib/Algebra/Order/Monoid/WithTop.lean Modified Mathlib/Algebra/Order/Nonneg/Field.lean Modified Mathlib/Algebra/Order/Nonneg/Ring.lean Modified Mathlib/Algebra/Order/PUnit.lean Modified Mathlib/Algebra/Order/Pi.lean Modified Mathlib/Algebra/Order/Positive/Field.lean Modified Mathlib/Algebra/Order/Positive/Ring.lean Modified Mathlib/Algebra/Order/Ring/Basic.lean Modified Mathlib/Algebra/Order/Ring/Canonical.lean Modified Mathlib/Algebra/Order/Ring/Cone.lean + theorem IsOrderedRing.mkOfCone - def LinearOrderedRing.mkOfCone - def OrderedRing.mkOfCone Modified Mathlib/Algebra/Order/Ring/Defs.lean + structure LinearOrderedCommRing + structure LinearOrderedCommSemiring + structure LinearOrderedRing + structure LinearOrderedSemiring + structure OrderedCommRing + structure OrderedCommSemiring + structure OrderedRing + structure OrderedSemiring + structure StrictOrderedCommRing + structure StrictOrderedCommSemiring + structure StrictOrderedRing + structure StrictOrderedSemiring Modified Mathlib/Algebra/Order/Ring/InjSurj.lean Modified Mathlib/Algebra/Order/Ring/Int.lean Modified Mathlib/Algebra/Order/Ring/IsNonarchimedean.lean +/- theorem IsNonarchimedean.add_le +/- theorem IsNonarchimedean.apply_intCast_le_one_of_isNonarchimedean +/- theorem IsNonarchimedean.finset_powerset_image_add +/- theorem IsNonarchimedean.multiset_powerset_image_add Modified Mathlib/Algebra/Order/Ring/Nat.lean Modified Mathlib/Algebra/Order/Ring/Opposite.lean Modified Mathlib/Algebra/Order/Ring/Prod.lean Modified Mathlib/Algebra/Order/Ring/Rat.lean Modified Mathlib/Algebra/Order/Ring/Star.lean Modified Mathlib/Algebra/Order/Ring/WithTop.lean Modified Mathlib/Algebra/Order/Star/Basic.lean Modified Mathlib/Algebra/Order/WithTop/Untop0.lean +/- theorem WithTop.untop₀_neg +/- theorem WithTop.untop₀_nonneg Modified Mathlib/Algebra/Ring/Subring/Order.lean +/- def Subring.orderedSubtype Modified Mathlib/Algebra/Ring/Subsemiring/Order.lean +/- def Subsemiring.nonneg Modified Mathlib/Analysis/CStarAlgebra/PositiveLinearMap.lean +/- theorem PositiveLinearMap.norm_apply_le_of_nonneg Modified Mathlib/Analysis/Convex/BetweenList.lean Modified Mathlib/Analysis/Convex/Cone/Basic.lean + theorem ConvexCone.toIsOrderedAddMonoid - def ConvexCone.toOrderedAddCommGroup Modified Mathlib/Analysis/Convex/Piecewise.lean Modified Mathlib/Analysis/Normed/Field/WithAbs.lean Modified Mathlib/Analysis/Normed/Order/Basic.lean + structure NormedLinearOrderedAddGroup + structure NormedLinearOrderedField + structure NormedLinearOrderedGroup + structure NormedOrderedAddGroup + structure NormedOrderedGroup Modified Mathlib/Analysis/Normed/Order/Lattice.lean + structure NormedLatticeAddCommGroup Modified Mathlib/Analysis/RCLike/Basic.lean + theorem RCLike.toIsOrderedAddMonoid + theorem RCLike.toIsStrictOrderedRing - def RCLike.toStrictOrderedCommRing + theorem RCLike.toZeroLEOneClass Modified Mathlib/Analysis/Seminorm.lean Modified Mathlib/Analysis/SpecialFunctions/ContinuousFunctionalCalculus/PosPart/Basic.lean Modified Mathlib/Combinatorics/Additive/FreimanHom.lean Modified Mathlib/Combinatorics/SetFamily/LYM.lean Modified Mathlib/Combinatorics/SimpleGraph/Hamiltonian.lean Modified Mathlib/Data/Complex/Basic.lean Modified Mathlib/Data/DFinsupp/Lex.lean Modified Mathlib/Data/DFinsupp/Order.lean Modified Mathlib/Data/ENNReal/Basic.lean Modified Mathlib/Data/ENat/Basic.lean Modified Mathlib/Data/EReal/Basic.lean Modified Mathlib/Data/Finsupp/Lex.lean Modified Mathlib/Data/Finsupp/MonomialOrder.lean Modified Mathlib/Data/Finsupp/MonomialOrder/DegLex.lean Modified Mathlib/Data/Finsupp/Order.lean Modified Mathlib/Data/Finsupp/Weight.lean +/- theorem Finsupp.degree_eq_zero_iff +/- theorem Finsupp.le_degree Modified Mathlib/Data/Int/LeastGreatest.lean Modified Mathlib/Data/List/Iterate.lean Modified Mathlib/Data/LocallyFinsupp.lean Modified Mathlib/Data/Multiset/OrderedMonoid.lean Modified Mathlib/Data/NNRat/Order.lean Modified Mathlib/Data/NNReal/Defs.lean Modified Mathlib/Data/Nat/BitIndices.lean Modified Mathlib/Data/Nat/Dist.lean Modified Mathlib/Data/Nat/PartENat.lean Modified Mathlib/Data/Nat/Upto.lean Modified Mathlib/Data/Num/Lemmas.lean +/- theorem Num.cast_inj +/- theorem Num.cast_le +/- theorem Num.cast_lt +/- theorem PosNum.cast_le +/- theorem PosNum.cast_lt +/- theorem PosNum.cast_pos +/- theorem PosNum.one_le_cast Modified Mathlib/Data/Num/ZNum.lean +/- theorem ZNum.cast_inj +/- theorem ZNum.cast_le +/- theorem ZNum.cast_lt Modified Mathlib/Data/Ordmap/Invariants.lean Modified Mathlib/Data/PNat/Basic.lean Modified Mathlib/Data/PNat/Factors.lean Modified Mathlib/Data/Rat/Denumerable.lean Modified Mathlib/Data/Rat/Sqrt.lean Modified Mathlib/Data/Rat/Star.lean Modified Mathlib/Data/Real/Basic.lean Modified Mathlib/Data/Real/CompleteField.lean Modified Mathlib/Data/Real/Hyperreal.lean Modified Mathlib/Data/Set/Semiring.lean Modified Mathlib/Geometry/RingedSpace/Basic.lean Modified Mathlib/GroupTheory/ArchimedeanDensely.lean +/- theorem OrderMonoidIso.mulArchimedean +/- theorem WithZero.mulArchimedean_iff Modified Mathlib/GroupTheory/MonoidLocalization/Order.lean Modified Mathlib/LinearAlgebra/AffineSpace/Independent.lean Modified Mathlib/LinearAlgebra/Matrix/Determinant/Basic.lean +/- theorem Matrix.abs_det_reindex Modified Mathlib/LinearAlgebra/Multilinear/Basic.lean Modified Mathlib/LinearAlgebra/RootSystem/Finite/Lemmas.lean +/- theorem RootPairing.coxeterWeightIn_le_four Modified Mathlib/LinearAlgebra/RootSystem/Reduced.lean Modified Mathlib/MeasureTheory/Function/LpOrder.lean Modified Mathlib/ModelTheory/Syntax.lean Modified Mathlib/NumberTheory/FunctionField.lean Modified Mathlib/NumberTheory/Padics/PadicNumbers.lean Modified Mathlib/NumberTheory/Zsqrtd/Basic.lean Modified Mathlib/Order/Filter/AtTopBot/ModEq.lean Modified Mathlib/Order/Filter/FilterProduct.lean +/- theorem Filter.Germ.abs_def +/- theorem Filter.Germ.const_abs Modified Mathlib/Order/Filter/Germ/OrderedMonoid.lean Modified Mathlib/Order/Filter/Ring.lean +/- theorem Filter.EventuallyLE.mul_nonneg +/- theorem Filter.eventually_sub_nonneg Modified Mathlib/Order/SuccPred/LinearLocallyFinite.lean Modified Mathlib/RingTheory/Binomial.lean Modified Mathlib/RingTheory/DedekindDomain/AdicValuation.lean Modified Mathlib/RingTheory/FilteredAlgebra/Basic.lean Modified Mathlib/RingTheory/HahnSeries/HEval.lean Modified Mathlib/RingTheory/HahnSeries/Multiplication.lean +/- theorem HahnSeries.orderTop_nsmul_le_orderTop_pow Modified Mathlib/RingTheory/HahnSeries/Summable.lean Modified Mathlib/RingTheory/Localization/FractionRing.lean Modified Mathlib/RingTheory/Polynomial/Pochhammer.lean Modified Mathlib/RingTheory/UniqueFactorizationDomain/Basic.lean Modified Mathlib/RingTheory/UniqueFactorizationDomain/NormalizedFactors.lean Modified Mathlib/RingTheory/Valuation/AlgebraInstances.lean Modified Mathlib/RingTheory/Valuation/ValuationRing.lean Modified Mathlib/SetTheory/Cardinal/Order.lean Modified Mathlib/SetTheory/Game/Basic.lean Modified Mathlib/SetTheory/Game/Impartial.lean Modified Mathlib/SetTheory/Ordinal/NaturalOps.lean Modified Mathlib/SetTheory/Surreal/Basic.lean Modified Mathlib/SetTheory/Surreal/Multiplication.lean Modified Mathlib/Tactic/Bound.lean +/- theorem Mathlib.Tactic.Bound.Nat.cast_pos_of_pos Modified Mathlib/Tactic/CancelDenoms/Core.lean +/- theorem CancelDenoms.cancel_factors_le +/- theorem CancelDenoms.cancel_factors_lt Modified Mathlib/Tactic/Qify.lean Modified Mathlib/Testing/Plausible/Sampleable.lean Modified Mathlib/Topology/Algebra/Module/LocallyConvex.lean Modified Mathlib/Topology/ContinuousMap/Bounded/Normed.lean Modified Mathlib/Topology/Instances/EReal/Lemmas.lean Modified Mathlib/Topology/Instances/Rat.lean Modified MathlibTest/cancel_denoms.lean Modified MathlibTest/instance_diamonds.lean Modified MathlibTest/linarith.lean Modified MathlibTest/norm_num.lean Modified MathlibTest/positivity.lean Modified MathlibTest/ring.lean Modified MathlibTest/ring_compare.lean Modified scripts/noshake.json 2025-04-10 16:17:08 ddb4ebe feat(Matroid): loopless matroids (#23884) We define and give API for a `Loopless` typeclass for matroids and a `removeLoops` operation that deletes the loops of a matroid `M`. ESTIMATED CHANGES Modified Mathlib/Data/Matroid/Loop.lean + theorem Matroid.IsNonloop.removeLoops_isNonloop + theorem Matroid.IsRestriction.isRestriction_removeLoops + theorem Matroid.IsRestriction.loopless + theorem Matroid.Loopless.ground_eq + theorem Matroid.compl_loops_eq + theorem Matroid.eq_loopyOn_iff_loops + theorem Matroid.eq_restrict_removeLoops + theorem Matroid.isNonloop_of_loopless + theorem Matroid.loopless_iff_forall_isCircuit + theorem Matroid.loopless_iff_forall_isNonloop + theorem Matroid.loopless_iff_forall_not_isLoop + theorem Matroid.loops_eq_empty + theorem Matroid.loopyOn_isLoopless_iff + theorem Matroid.not_isLoop + def Matroid.removeLoops + theorem Matroid.removeLoops_eq_restrict + theorem Matroid.removeLoops_eq_self + theorem Matroid.removeLoops_eq_self_iff + theorem Matroid.removeLoops_ground_eq + theorem Matroid.removeLoops_idem + theorem Matroid.removeLoops_indep_eq + theorem Matroid.removeLoops_isBase_eq + theorem Matroid.removeLoops_isBasis'_eq + theorem Matroid.removeLoops_isNonloop_eq + theorem Matroid.removeLoops_isRestriction + theorem Matroid.removeLoops_mono_isRestriction + theorem Matroid.removeLoops_restrict_eq_restrict + theorem Matroid.restrict_subset_loops_eq + theorem Matroid.restrict_univ_removeLoops_eq + theorem Matroid.subsingleton_indep Modified Mathlib/Data/Matroid/Minor/Basic.lean + theorem Matroid.delete_loops_eq_removeLoops 2025-04-10 14:21:42 0d8963c chore: update Mathlib dependencies 2025-04-10 (#23919) This PR updates the Mathlib dependencies. ESTIMATED CHANGES Modified lake-manifest.json 2025-04-10 13:59:27 03bea7c ci: some more `lean-action` usage (#23914) One workflow was had an `elan-init` added, use `lean-action` there instead. Also, use `lean-action` to get the Mathlib cache in the nolints workflow. This seems to be the most we can easily do without adding features to `lean-action` (work in progress there!) ESTIMATED CHANGES Modified .github/workflows/discover-lean-pr-testing.yml Modified .github/workflows/nolints.yml 2025-04-10 13:59:26 18138f8 feat(RingTheory/Spectrum/Prime): purely inseparable extensions induce universal homeomorphisms (#23491) Co-authored by: Junyan Xu ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/FieldTheory/PurelyInseparable/Basic.lean + theorem IsPurelyInseparable.exists_pow_mem_range_tensorProduct + theorem IsPurelyInseparable.exists_pow_pow_mem_range_tensorProduct_of_expChar + theorem Subalgebra.mem_perfectClosure_iff + def Subalgebra.perfectClosure Modified Mathlib/FieldTheory/PurelyInseparable/PerfectClosure.lean Modified Mathlib/LinearAlgebra/TensorProduct/RightExactness.lean - theorem TensorProduct.mk_surjective Modified Mathlib/RingTheory/Spectrum/Prime/Basic.lean + theorem PrimeSpectrum.zeroLocus_nilradical Added Mathlib/RingTheory/Spectrum/Prime/Homeomorph.lean + theorem PrimeSpectrum.isHomeomorph_comap + theorem PrimeSpectrum.isHomeomorph_comap_of_isPurelyInseparable + theorem PrimeSpectrum.isHomeomorph_comap_tensorProductMap_of_isPurelyInseparable Modified Mathlib/RingTheory/Spectrum/Prime/Topology.lean + theorem PrimeSpectrum.comap_quotientMk_bijective_of_le_nilradical + def PrimeSpectrum.homeomorphOfRingEquiv + theorem PrimeSpectrum.isHomeomorph_comap_of_bijective + theorem RingHom.IsIntegral.specComap_surjective Modified Mathlib/RingTheory/TensorProduct/Basic.lean + theorem Algebra.TensorProduct.cancelBaseChange_symm_tmul + theorem Algebra.TensorProduct.cancelBaseChange_tmul + theorem Algebra.TensorProduct.includeLeft_surjective + theorem Algebra.TensorProduct.includeRight_surjective + theorem Algebra.TensorProduct.tmul_one_eq_one_tmul + theorem LinearMap.map_mul_of_map_mul_tmul + theorem TensorProduct.flip_mk_surjective + theorem TensorProduct.mk_surjective 2025-04-10 13:15:19 a1359d0 feat: generalize Mathlib.Algebra.Order + Polynomial (#23153) This is one of a series of PRs that generalizes type classes across Mathlib. These are generated using a new linter that tries to re-elaborate theorem definitions with more general type classes to see if it succeeds. It will accept the generalization if deleting the entire type class causes the theorem to fail to compile, and the old type class can not simply be re-synthesized with the new declaration. Otherwise, the generalization is rejected as the type class is not being generalized, but can simply be replaced by implicit type class synthesis or an implicit type class in a variable block being pulled in. The linter currently output debug statements indicating source file positions where type classes should be generalized, and a script then makes those edits. This file contains a subset of those generalizations. The linter and the script performing re-writes is available in commit 5e2b7040be0f73821c1dcb360ffecd61235d87af. Also see discussion on Zulip here: https://leanprover.zulipchat.com/#narrow/channel/270676-lean4/topic/Elab.20to.20generalize.20type.20classes.20for.20theorems/near/498862988 https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Elab.20to.20generalize.20type.20classes.20for.20theorems/near/501288855 ESTIMATED CHANGES Modified Mathlib/Algebra/Order/AddTorsor.lean +/- theorem IsOrderedSMul.smul_le_smul Modified Mathlib/Algebra/Order/BigOperators/Group/List.lean +/- theorem List.sum_le_foldr_max Modified Mathlib/Algebra/Order/Hom/Basic.lean +/- theorem le_map_add_map_div +/- theorem le_map_div_add_map_div +/- theorem le_map_div_mul_map_div +/- theorem le_map_mul_map_div Modified Mathlib/Algebra/Order/Monoid/Unbundled/Basic.lean +/- theorem mulLECancellable_one Modified Mathlib/Algebra/Order/Ring/Idempotent.lean +/- theorem eq_of_mul_eq_add_eq_one Modified Mathlib/Algebra/Order/Ring/Star.lean Modified Mathlib/Algebra/Order/Ring/Unbundled/Basic.lean +/- theorem add_one_le_two_mul Modified Mathlib/Algebra/Order/Sub/Unbundled/Hom.lean +/- theorem AddMonoidHom.le_map_tsub +/- theorem le_tsub_mul Modified Mathlib/Algebra/Order/WithTop/Untop0.lean +/- theorem WithTop.untopD_add +/- theorem WithTop.untop₀_add Modified Mathlib/Algebra/Polynomial/Basic.lean +/- theorem IsSMulRegular.polynomial +/- theorem Polynomial.addHom_ext' +/- theorem Polynomial.addHom_ext Modified Mathlib/Algebra/Polynomial/Bivariate.lean +/- theorem Polynomial.evalEval_smul Modified Mathlib/Algebra/Polynomial/Derivative.lean +/- theorem Polynomial.derivative_smul +/- theorem Polynomial.iterate_derivative_smul Modified Mathlib/Algebra/Polynomial/Div.lean +/- theorem Polynomial.eq_leadingCoeff_mul_of_monic_of_dvd_of_natDegree_le +/- theorem Polynomial.eq_of_monic_of_dvd_of_natDegree_le Modified Mathlib/Algebra/Polynomial/Eval/Defs.lean +/- theorem Polynomial.isRoot_prod Modified Mathlib/Algebra/Polynomial/Eval/SMul.lean +/- theorem Polynomial.eval_smul +/- theorem Polynomial.smul_comp Modified Mathlib/Algebra/Polynomial/FieldDivision.lean +/- theorem Irreducible.natDegree_pos +/- theorem Polynomial.X_sub_C_mul_divByMonic_eq_sub_modByMonic Modified Mathlib/Algebra/Polynomial/Monic.lean +/- theorem Polynomial.degree_smul_of_smul_regular +/- theorem Polynomial.leadingCoeff_smul_of_smul_regular +/- theorem Polynomial.natDegree_smul_of_smul_regular Modified Mathlib/Algebra/Polynomial/Reverse.lean +/- theorem Polynomial.reverse_mul_of_domain +/- theorem Polynomial.trailingCoeff_mul Modified Mathlib/Algebra/Polynomial/Roots.lean Modified Mathlib/Algebra/Polynomial/Sequence.lean 2025-04-10 12:30:52 7618879 feat(Order/GroupWithZero): drop more TC assumptions (#23901) ESTIMATED CHANGES Modified Mathlib/Algebra/Order/GroupWithZero/Unbundled/Basic.lean +/- theorem Bound.le_self_pow_of_pos +/- theorem Bound.pow_le_pow_right_of_le_one_or_one_le +/- theorem le_self_pow₀ +/- theorem mul_le_one₀ +/- theorem one_le_pow₀ +/- theorem one_lt_pow₀ +/- theorem pow_le_of_le_one +/- theorem pow_le_one₀ +/- theorem pow_le_pow_iff_left₀ +/- theorem pow_le_pow_left₀ +/- theorem pow_le_pow_of_le_one +/- theorem pow_le_pow_right₀ +/- theorem pow_left_inj₀ +/- theorem pow_left_monotoneOn +/- theorem pow_left_strictMonoOn₀ +/- theorem pow_lt_one₀ +/- theorem pow_lt_pow_iff_left₀ +/- theorem pow_lt_pow_left₀ + theorem pow_right_anti₀ +/- theorem pow_right_mono₀ +/- theorem sq_eq_sq₀ +/- theorem sq_le +/- theorem sq_pos_of_pos 2025-04-10 12:30:51 6cb7300 chore(Order): process misc porting notes (#23825) ESTIMATED CHANGES Modified Mathlib/Order/GaloisConnection/Basic.lean Modified Mathlib/Order/Hom/BoundedLattice.lean Modified Mathlib/Order/Hom/CompleteLattice.lean Modified Mathlib/Order/Hom/Lattice.lean Modified Mathlib/Order/LiminfLimsup.lean Modified Mathlib/Order/Monotone/Monovary.lean Modified Mathlib/Order/OrdContinuous.lean 2025-04-10 12:30:49 690c9f4 feat(AlgebraicGeometry): Chevalley's theorem (#23623) ESTIMATED CHANGES Modified Mathlib/AlgebraicGeometry/Morphisms/FinitePresentation.lean + theorem AlgebraicGeometry.Scheme.Hom.isConstructible_image + theorem AlgebraicGeometry.Scheme.Hom.isConstructible_preimage Modified Mathlib/AlgebraicGeometry/Properties.lean Modified Mathlib/AlgebraicGeometry/Restrict.lean + def AlgebraicGeometry.Scheme.Hom.isoOpensRange + theorem AlgebraicGeometry.Scheme.Hom.isoOpensRange_hom_ι + theorem AlgebraicGeometry.Scheme.Hom.isoOpensRange_inv_comp 2025-04-10 12:00:22 4444a4a feat(Algebra/Module): a finite product of finitely presented modules is finitely presented (#22918) ESTIMATED CHANGES Modified Mathlib/Algebra/Module/FinitePresentation.lean + theorem LinearEquiv.finitePresentation_iff + theorem Module.FinitePresentation.of_equiv + theorem Module.FinitePresentation.trans Modified Mathlib/LinearAlgebra/Pi.lean + theorem Module.pi_induction' + theorem Module.pi_induction 2025-04-10 11:43:21 9b20cb5 chore(RingTheory/StandardSmooth): fix `SubmersivePresentation.basisCotangent` (#23776) The current basis is not what the docstring claims to be: It is the basis given by pre-images of the standard basis of `P.rels → S`, which don't agree with the images of `P.relation i` in `P.toExtension.Cotangent`. ESTIMATED CHANGES Modified Mathlib/RingTheory/Smooth/StandardSmoothCotangent.lean + theorem Algebra.SubmersivePresentation.basisCotangent_apply 2025-04-10 11:14:13 9c79c01 fix(PR summary): modify regex for `maxHeartbeats` (#23911) The old regex matches also the *linter* option `set_option linter.style.maxHeartbeats false in`, introduced in #23816. The proposed change matches lines that contain `set_option`, `maxHeartbeats` *and* a number. ESTIMATED CHANGES Modified scripts/technical-debt-metrics.sh 2025-04-10 10:51:28 8c16e6e feat(Matrix): row and column functions (#22957) For `A : Matrix m n R` and `i : m`, `j : n`, we define `A.row i` to refer to the `i`th row of `A` as a vector in `n -> R`, and `A.col j` to refer to the `j`th column of `A` as a vector in `m -> R`. `A.row` and `A.col` are defeq to `A` and `A.transpose` respectively, but are helpful to refer to these objects explicitly, avoiding noisy eta-expansions and the simplifier manipulating transposes, such as in expressions like `Injective A.col`. The current version has `Matrix.row` and `Matrix.col` as `def`s rather than `abbrev`s - this allows the simplifier to make the reasonable changes `A.row i j` -> `A i j` and `A.col i j` -> `A j i`, but requires some fixes to a few `rw`s in proofs that exploit the defeq between a matrix and a function. A less aggressive version could have both as `abbrev`s. We also change some spellings to use the new notation (eg `Set.range (fun i => A.transpose i)` -> `Set.range A.col`). [Zulip discussion](https://leanprover.zulipchat.com/#narrow/channel/144837-PR-reviews/topic/.2322957.20row.20and.20column.20functions.20of.20matrices) ESTIMATED CHANGES Modified Mathlib/Combinatorics/Configuration.lean Modified Mathlib/Data/Matrix/Defs.lean + def Matrix.col + theorem Matrix.col_apply' + theorem Matrix.col_apply + theorem Matrix.col_def + theorem Matrix.col_eq_transpose + theorem Matrix.col_map + theorem Matrix.col_submatrix + theorem Matrix.col_submatrix_eq_comp + theorem Matrix.col_transpose + theorem Matrix.of_col + theorem Matrix.of_row + def Matrix.row + theorem Matrix.row_apply' + theorem Matrix.row_apply + theorem Matrix.row_def + theorem Matrix.row_eq_self + theorem Matrix.row_map + theorem Matrix.row_submatrix + theorem Matrix.row_submatrix_eq_comp + theorem Matrix.row_transpose Modified Mathlib/Data/Matrix/Rank.lean Modified Mathlib/Data/Matrix/RowCol.lean Modified Mathlib/LinearAlgebra/Matrix/Determinant/Basic.lean Modified Mathlib/LinearAlgebra/Matrix/GeneralLinearGroup/Card.lean Modified Mathlib/LinearAlgebra/Matrix/NonsingularInverse.lean Modified Mathlib/LinearAlgebra/Matrix/ToLin.lean Modified Mathlib/Topology/Instances/Matrix.lean - theorem Continuous.matrix_col + theorem Continuous.matrix_replicateCol + theorem Continuous.matrix_replicateRow - theorem Continuous.matrix_row 2025-04-10 10:21:19 2028893 chore: improve doc string for `RootDatum` (#23823) ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/RootSystem/Defs.lean 2025-04-10 09:25:20 6cd6e91 chore: update Batteries dependency (#23906) ESTIMATED CHANGES Modified Mathlib/Order/Lattice.lean Modified Mathlib/Tactic/FunProp/Core.lean Modified Mathlib/Tactic/GCongr/Core.lean Modified Mathlib/Tactic/ITauto.lean Modified Mathlib/Tactic/Peel.lean Modified Mathlib/Util/DischargerAsTactic.lean Modified lake-manifest.json 2025-04-10 08:39:57 f87b823 feat: definition and properties of characteristic functions (#19783) define characteristic functions. Show that characteristic functions separate finite measures. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Analysis/Complex/Circle.lean + theorem Circle.exp_pi_ne_one + theorem Circle.starRingEnd_addChar + theorem Circle.star_addChar + theorem Real.continuous_fourierChar + theorem Real.continuous_probChar + def Real.fourierChar + theorem Real.fourierChar_apply' + theorem Real.fourierChar_apply + theorem Real.fourierChar_ne_one + def Real.probChar + theorem Real.probChar_apply' + theorem Real.probChar_apply + theorem Real.probChar_ne_one Added Mathlib/Analysis/Fourier/BoundedContinuousFunctionChar.lean + def BoundedContinuousFunction.char + def BoundedContinuousFunction.charAlgHom + theorem BoundedContinuousFunction.charAlgHom_apply + def BoundedContinuousFunction.charMonoidHom + theorem BoundedContinuousFunction.charMonoidHom_apply + def BoundedContinuousFunction.charPoly + theorem BoundedContinuousFunction.char_add_eq_mul + theorem BoundedContinuousFunction.char_apply + theorem BoundedContinuousFunction.char_mem_charPoly + theorem BoundedContinuousFunction.char_neg + theorem BoundedContinuousFunction.char_zero_eq_one + theorem BoundedContinuousFunction.ext_of_char_eq + theorem BoundedContinuousFunction.mem_charPoly + theorem BoundedContinuousFunction.separatesPoints_charPoly + theorem BoundedContinuousFunction.star_mem_range_charAlgHom Modified Mathlib/Analysis/Fourier/FourierTransform.lean - theorem Real.continuous_fourierChar - def Real.fourierChar - theorem Real.fourierChar_apply Added Mathlib/MeasureTheory/Measure/CharacteristicFunction.lean + theorem MeasureTheory.ext_of_integral_char_eq Modified Mathlib/MeasureTheory/Measure/FiniteMeasureExt.lean Modified Mathlib/Probability/Moments/ComplexMGF.lean + theorem MeasureTheory.Measure.ext_of_complexMGF_eq + theorem MeasureTheory.Measure.ext_of_complexMGF_id_eq 2025-04-10 07:25:24 b759d20 feat: any function from a countable discrete domain is strongly measurable (#23862) Also deprecate `StronglyMeasurable.of_finite`, which has become a corollary, and rename `Subsingleton.stronglyMeasurable`/`Subsingleton.stronglyMeasurable'` to `StronglyMeasurable.of_subsingleton_cod`/`StronglyMeasurable.of_subsingleton_dom` for clarity. From LeanAPAP ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Function/L1Space/Integrable.lean Modified Mathlib/MeasureTheory/Function/LpSeminorm/Basic.lean Modified Mathlib/MeasureTheory/Function/StronglyMeasurable/AEStronglyMeasurable.lean + theorem MeasureTheory.AEStronglyMeasurable.of_discrete +/- theorem MeasureTheory.AEStronglyMeasurable.of_finite Modified Mathlib/MeasureTheory/Function/StronglyMeasurable/Basic.lean + theorem MeasureTheory.StronglyMeasurable.of_discrete +/- theorem MeasureTheory.StronglyMeasurable.of_finite + theorem MeasureTheory.StronglyMeasurable.of_subsingleton_cod + theorem MeasureTheory.StronglyMeasurable.of_subsingleton_dom +/- theorem MeasureTheory.Subsingleton.stronglyMeasurable' +/- theorem MeasureTheory.Subsingleton.stronglyMeasurable 2025-04-10 07:25:22 8a90888 chore(GroupTheory): Add the class `IsMulCommutative` (#23773) This PR adds the class `IsMulCommutative α` extending `Mul α` and stating that the multiplication is a commutative operation, and the instances that promote a `Monoid` or a `Group` to a `CommMonoid` or a `CommGroup` if it satisfies `IsMulCommutative` (and also the additive version). This allows to delete the class `Subgroup.IsCommutative`. There is no attempt to add instances to promote `Monoid`, `GroupWithZero`, `MonoidWithZero`, etc. to their `Comm` counterparts using `IsMulCommutative` since these come with a price and there is no use for those at the moment whereas the group version will be useful to work with Abelian Galois extensions, for example. ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Defs.lean Modified Mathlib/Algebra/Group/Subgroup/Defs.lean - structure AddSubgroup.IsCommutative - structure Subgroup.IsCommutative - theorem Subgroup.mul_comm_of_mem_isCommutative + theorem Subgroup.mul_comm_of_mem_isMulCommutative Modified Mathlib/Algebra/Group/Subgroup/Ker.lean Modified Mathlib/Algebra/Group/Subgroup/Map.lean - theorem Subgroup.comap_injective_isCommutative + theorem Subgroup.comap_injective_isMulCommutative Modified Mathlib/Algebra/Group/Subgroup/ZPowers/Basic.lean Modified Mathlib/GroupTheory/Abelianization.lean Modified Mathlib/GroupTheory/GroupAction/Iwasawa.lean Modified Mathlib/GroupTheory/SchurZassenhaus.lean +/- theorem Subgroup.SchurZassenhausInduction.step7 Modified Mathlib/GroupTheory/SpecificGroups/Cyclic.lean Modified Mathlib/GroupTheory/Subgroup/Center.lean Modified Mathlib/GroupTheory/Subgroup/Centralizer.lean +/- theorem Subgroup.le_centralizer - theorem Subgroup.le_centralizer_iff_isCommutative + theorem Subgroup.le_centralizer_iff_isMulCommutative Modified Mathlib/GroupTheory/Sylow.lean Modified Mathlib/GroupTheory/Transfer.lean 2025-04-10 06:47:38 1a43393 feat: add `Finset.prod_toList` and rename existing `Finset.prod_to_list` (#23883) I was disappointed to find that `(s : Finset α).toList.prod` didn't simplify, so I added the `simp` lemma. There was already an existing `simp` lemma for `(s.toList.map f).prod` which was misnamed `Finset.prod_to_list`. This updated the latter to `Finset.prod_map_toList` and deprecates the old name. ESTIMATED CHANGES Modified Mathlib/Algebra/BigOperators/Group/Finset/Defs.lean + theorem Finset.prod_map_toList + theorem Finset.prod_toList - theorem Finset.prod_to_list Modified Mathlib/Algebra/Ring/Periodic.lean Modified Mathlib/GroupTheory/Transfer.lean 2025-04-10 06:34:28 89ce544 feat: `p / r` and `q / r` are Hölder conjugate if `p, q, r` is a Hölder triple (#23882) Also rename the `inv_add_inv'` field to `inv_add_inv_eq_inv` since we can let it have the correct explicit arguments since v4.19.0-rc1 From LeanAPAP ESTIMATED CHANGES Modified Mathlib/Data/ENNReal/Holder.lean + theorem ENNReal.HolderTriple.holderConjugate_div_div - theorem ENNReal.HolderTriple.inv_add_inv_eq_inv +/- theorem ENNReal.HolderTriple.inv_eq +/- theorem ENNReal.HolderTriple.one_div_add_one_div Modified Mathlib/Data/Real/ConjExponents.lean + theorem NNReal.HolderTriple.holderConjugate_div_div - theorem NNReal.HolderTriple.inv_add_inv_eq_inv + theorem Real.HolderTriple.holderConjugate_div_div - theorem Real.HolderTriple.inv_add_inv_eq_inv 2025-04-10 06:23:21 08f27d0 feat: Bochner integral against the counting measure (#23864) From LeanAPAP ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Integral/Bochner/Basic.lean + theorem MeasureTheory.integral_count 2025-04-10 05:14:42 7f3fb79 feat: `def ofClass` and `CanLift` instances for algebraic subobjects (#23708) For each algebraic subobject, this creates an `ofClass` definition which takes an element of a `SetLike` with the appropriate hypotheses and turns it into a subobject of this type. This is *not* marked as a coercion (unlike for morphisms). In addition, we provide `CanLift` instances from `Set` to the various subobjects for use in proofs. We already have these declarations for `Submonoid` and `Subgroup`. In addition, there are two very minor housekeeping items that we fix which arose during the creation of this PR. 1. renaming an instance 2. protecting `StarSubalgebra.algebraMap_mem` ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/NonUnitalSubalgebra.lean + def NonUnitalSubalgebra.ofClass Modified Mathlib/Algebra/Algebra/Subalgebra/Basic.lean + def Subalgebra.ofClass Modified Mathlib/Algebra/Group/Subgroup/Defs.lean Modified Mathlib/Algebra/Group/Submonoid/Defs.lean Modified Mathlib/Algebra/Group/Subsemigroup/Defs.lean + def Subsemigroup.ofClass Modified Mathlib/Algebra/Module/Submodule/Defs.lean + def Submodule.ofClass Modified Mathlib/Algebra/Ring/Subring/Defs.lean + def Subring.ofClass Modified Mathlib/Algebra/Ring/Subsemiring/Defs.lean + def Subsemiring.ofClass Modified Mathlib/Algebra/Star/NonUnitalSubalgebra.lean + def NonUnitalStarSubalgebra.ofClass Modified Mathlib/Algebra/Star/NonUnitalSubsemiring.lean + def NonUnitalStarSubsemiring.ofClass Modified Mathlib/Algebra/Star/Subalgebra.lean - theorem StarSubalgebra.algebraMap_mem + def StarSubalgebra.ofClass Modified Mathlib/Algebra/Star/Subsemiring.lean + def StarSubsemiring.ofClass Modified Mathlib/RingTheory/NonUnitalSubring/Defs.lean + def NonUnitalSubring.ofClass Modified Mathlib/RingTheory/NonUnitalSubsemiring/Defs.lean + def NonUnitalSubsemiring.ofClass 2025-04-10 05:07:59 8db69c0 ci: fix zuliprc file format (#23899) Use proper INI format with [api] section for zuliprc file and update Python client to use config file ESTIMATED CHANGES Modified .github/workflows/nightly_detect_failure.yml 2025-04-10 05:07:58 778fc9f chore: split `Topology.Category.Profinite.Nobeling` (#23898) The base file is now called `Topology.Category.Profinite.Nobeling.Basic`, which is separately imported by three new files: * `.Span` for the good products span * `.ZeroLimit` for the zero and limit cases of the ordinal induction * `.Successor` for the successor case of the ordinal induction Then `.Induction` ties up these files to prove Nöbeling's theorem proper. ESTIMATED CHANGES Modified Mathlib.lean Deleted Mathlib/Topology/Category/Profinite/Nobeling.lean - theorem Profinite.Nobeling.isClosedEmbedding - def Profinite.Nobeling.ι - def Profinite.NobelingProof.C' - def Profinite.NobelingProof.C0 - theorem Profinite.NobelingProof.C0_projOrd - def Profinite.NobelingProof.C1 - theorem Profinite.NobelingProof.C1_projOrd - def Profinite.NobelingProof.CC'₀ - def Profinite.NobelingProof.CC'₁ - theorem Profinite.NobelingProof.CC_comp_zero - theorem Profinite.NobelingProof.CC_exact - def Profinite.NobelingProof.GoodProducts.Basis - def Profinite.NobelingProof.GoodProducts.MaxProducts - def Profinite.NobelingProof.GoodProducts.MaxToGood - theorem Profinite.NobelingProof.GoodProducts.P0 - theorem Profinite.NobelingProof.GoodProducts.Plimit - def Profinite.NobelingProof.GoodProducts.SumEval - theorem Profinite.NobelingProof.GoodProducts.chain'_cons_of_lt - def Profinite.NobelingProof.GoodProducts.equiv_range - theorem Profinite.NobelingProof.GoodProducts.equiv_toFun_eq_eval - def Profinite.NobelingProof.GoodProducts.eval - theorem Profinite.NobelingProof.GoodProducts.finsuppSum_mem_span_eval - theorem Profinite.NobelingProof.GoodProducts.good_lt_maxProducts - theorem Profinite.NobelingProof.GoodProducts.head!_eq_o_of_maxProducts - theorem Profinite.NobelingProof.GoodProducts.injective - theorem Profinite.NobelingProof.GoodProducts.injective_sum_to - theorem Profinite.NobelingProof.GoodProducts.linearIndependent - theorem Profinite.NobelingProof.GoodProducts.linearIndependentAux - theorem Profinite.NobelingProof.GoodProducts.linearIndependentEmpty - theorem Profinite.NobelingProof.GoodProducts.linearIndependentSingleton - theorem Profinite.NobelingProof.GoodProducts.linearIndependent_comp_of_eval - theorem Profinite.NobelingProof.GoodProducts.linearIndependent_iff_range - theorem Profinite.NobelingProof.GoodProducts.linearIndependent_iff_smaller - theorem Profinite.NobelingProof.GoodProducts.linearIndependent_iff_sum - theorem Profinite.NobelingProof.GoodProducts.linearIndependent_iff_union_smaller - theorem Profinite.NobelingProof.GoodProducts.maxTail_isGood - theorem Profinite.NobelingProof.GoodProducts.maxToGood_injective - theorem Profinite.NobelingProof.GoodProducts.max_eq_eval - theorem Profinite.NobelingProof.GoodProducts.max_eq_eval_unapply - theorem Profinite.NobelingProof.GoodProducts.max_eq_o_cons_tail - def Profinite.NobelingProof.GoodProducts.range - def Profinite.NobelingProof.GoodProducts.range_equiv - theorem Profinite.NobelingProof.GoodProducts.range_equiv_factorization - def Profinite.NobelingProof.GoodProducts.range_equiv_smaller - def Profinite.NobelingProof.GoodProducts.range_equiv_smaller_toFun - theorem Profinite.NobelingProof.GoodProducts.range_equiv_smaller_toFun_bijective - def Profinite.NobelingProof.GoodProducts.smaller - theorem Profinite.NobelingProof.GoodProducts.smaller_factorization - theorem Profinite.NobelingProof.GoodProducts.smaller_mono - theorem Profinite.NobelingProof.GoodProducts.span - theorem Profinite.NobelingProof.GoodProducts.spanFin - theorem Profinite.NobelingProof.GoodProducts.span_iff_products - theorem Profinite.NobelingProof.GoodProducts.span_sum - theorem Profinite.NobelingProof.GoodProducts.square_commutes - def Profinite.NobelingProof.GoodProducts.sum_equiv - theorem Profinite.NobelingProof.GoodProducts.sum_equiv_comp_eval_eq_elim - def Profinite.NobelingProof.GoodProducts.sum_to - theorem Profinite.NobelingProof.GoodProducts.sum_to_range - theorem Profinite.NobelingProof.GoodProducts.union - theorem Profinite.NobelingProof.GoodProducts.union_succ - def Profinite.NobelingProof.GoodProducts - def Profinite.NobelingProof.Linear_CC' - def Profinite.NobelingProof.Linear_CC'₀ - def Profinite.NobelingProof.Linear_CC'₁ - theorem Profinite.NobelingProof.Nobeling_aux - def Profinite.NobelingProof.P - def Profinite.NobelingProof.Products.Tail - def Profinite.NobelingProof.Products.eval - theorem Profinite.NobelingProof.Products.evalCons - theorem Profinite.NobelingProof.Products.evalFacProp - theorem Profinite.NobelingProof.Products.evalFacProps - theorem Profinite.NobelingProof.Products.eval_eq - theorem Profinite.NobelingProof.Products.eval_πs' - theorem Profinite.NobelingProof.Products.eval_πs - theorem Profinite.NobelingProof.Products.eval_πs_image' - theorem Profinite.NobelingProof.Products.eval_πs_image - theorem Profinite.NobelingProof.Products.head!_le_of_lt - theorem Profinite.NobelingProof.Products.head_lt_ord_of_isGood - def Profinite.NobelingProof.Products.isGood - theorem Profinite.NobelingProof.Products.isGood_mono - theorem Profinite.NobelingProof.Products.isGood_nil - theorem Profinite.NobelingProof.Products.limitOrdinal - theorem Profinite.NobelingProof.Products.lt_iff_lex_lt - theorem Profinite.NobelingProof.Products.lt_nil_empty - theorem Profinite.NobelingProof.Products.lt_ord_of_lt - theorem Profinite.NobelingProof.Products.max_eq_eval - theorem Profinite.NobelingProof.Products.max_eq_o_cons_tail' - theorem Profinite.NobelingProof.Products.max_eq_o_cons_tail - def Profinite.NobelingProof.Products.nil - theorem Profinite.NobelingProof.Products.prop_of_isGood - theorem Profinite.NobelingProof.Products.prop_of_isGood_of_contained - theorem Profinite.NobelingProof.Products.rel_head!_of_mem - theorem Profinite.NobelingProof.Products.span_nil_eq_top - def Profinite.NobelingProof.Products - def Profinite.NobelingProof.Proj - def Profinite.NobelingProof.ProjRestrict - def Profinite.NobelingProof.ProjRestricts - def Profinite.NobelingProof.SwapTrue - theorem Profinite.NobelingProof.coe_πs' - theorem Profinite.NobelingProof.coe_πs - def Profinite.NobelingProof.contained - theorem Profinite.NobelingProof.contained_C' - theorem Profinite.NobelingProof.contained_C1 - theorem Profinite.NobelingProof.contained_eq_proj - theorem Profinite.NobelingProof.contained_proj - theorem Profinite.NobelingProof.continuous_CC'₀ - theorem Profinite.NobelingProof.continuous_CC'₁ - theorem Profinite.NobelingProof.continuous_proj - theorem Profinite.NobelingProof.continuous_projRestrict - theorem Profinite.NobelingProof.continuous_projRestricts - theorem Profinite.NobelingProof.continuous_swapTrue - def Profinite.NobelingProof.e - theorem Profinite.NobelingProof.e_mem_of_eq_true - theorem Profinite.NobelingProof.eval_eq_πJ - def Profinite.NobelingProof.factors - theorem Profinite.NobelingProof.factors_prod_eq_basis - theorem Profinite.NobelingProof.factors_prod_eq_basis_of_eq - theorem Profinite.NobelingProof.factors_prod_eq_basis_of_ne - theorem Profinite.NobelingProof.fin_comap_jointlySurjective - theorem Profinite.NobelingProof.injective_πs' - theorem Profinite.NobelingProof.injective_πs - theorem Profinite.NobelingProof.isClosed_C' - theorem Profinite.NobelingProof.isClosed_C0 - theorem Profinite.NobelingProof.isClosed_C1 - theorem Profinite.NobelingProof.isClosed_proj - def Profinite.NobelingProof.iso_map - theorem Profinite.NobelingProof.iso_map_bijective - theorem Profinite.NobelingProof.list_prod_apply - theorem Profinite.NobelingProof.mem_C'_eq_false - theorem Profinite.NobelingProof.one_sub_e_mem_of_false - def Profinite.NobelingProof.ord - theorem Profinite.NobelingProof.ord_term - theorem Profinite.NobelingProof.ord_term_aux - theorem Profinite.NobelingProof.projRestricts_comp_projRestrict - theorem Profinite.NobelingProof.projRestricts_eq_comp - theorem Profinite.NobelingProof.projRestricts_eq_id - theorem Profinite.NobelingProof.proj_comp_of_subset - theorem Profinite.NobelingProof.proj_eq_of_subset - theorem Profinite.NobelingProof.proj_eq_self - theorem Profinite.NobelingProof.proj_prop_eq_self - def Profinite.NobelingProof.spanCone - def Profinite.NobelingProof.spanCone_isLimit - theorem Profinite.NobelingProof.spanFinBasis.span - def Profinite.NobelingProof.spanFinBasis - def Profinite.NobelingProof.spanFunctor - theorem Profinite.NobelingProof.succ_exact - theorem Profinite.NobelingProof.succ_mono - theorem Profinite.NobelingProof.surjective_projRestricts - theorem Profinite.NobelingProof.swapTrue_eq_true - theorem Profinite.NobelingProof.swapTrue_mem_C1 - def Profinite.NobelingProof.term - theorem Profinite.NobelingProof.term_ord_aux - theorem Profinite.NobelingProof.union_C0C1_eq - def Profinite.NobelingProof.π - def Profinite.NobelingProof.πJ - def Profinite.NobelingProof.πs' - def Profinite.NobelingProof.πs Added Mathlib/Topology/Category/Profinite/Nobeling/Basic.lean + def Profinite.NobelingProof.GoodProducts.equiv_range + theorem Profinite.NobelingProof.GoodProducts.equiv_toFun_eq_eval + def Profinite.NobelingProof.GoodProducts.eval + theorem Profinite.NobelingProof.GoodProducts.injective + theorem Profinite.NobelingProof.GoodProducts.linearIndependent_iff_range + def Profinite.NobelingProof.GoodProducts.range + theorem Profinite.NobelingProof.GoodProducts.span_iff_products + def Profinite.NobelingProof.GoodProducts + def Profinite.NobelingProof.P + def Profinite.NobelingProof.Products.eval + theorem Profinite.NobelingProof.Products.evalFacProp + theorem Profinite.NobelingProof.Products.evalFacProps + theorem Profinite.NobelingProof.Products.eval_eq + theorem Profinite.NobelingProof.Products.eval_πs' + theorem Profinite.NobelingProof.Products.eval_πs + theorem Profinite.NobelingProof.Products.eval_πs_image' + theorem Profinite.NobelingProof.Products.eval_πs_image + theorem Profinite.NobelingProof.Products.head!_le_of_lt + theorem Profinite.NobelingProof.Products.head_lt_ord_of_isGood + def Profinite.NobelingProof.Products.isGood + theorem Profinite.NobelingProof.Products.isGood_mono + theorem Profinite.NobelingProof.Products.lt_iff_lex_lt + theorem Profinite.NobelingProof.Products.lt_ord_of_lt + theorem Profinite.NobelingProof.Products.prop_of_isGood + theorem Profinite.NobelingProof.Products.prop_of_isGood_of_contained + theorem Profinite.NobelingProof.Products.rel_head!_of_mem + def Profinite.NobelingProof.Products + def Profinite.NobelingProof.Proj + def Profinite.NobelingProof.ProjRestrict + def Profinite.NobelingProof.ProjRestricts + theorem Profinite.NobelingProof.coe_πs' + theorem Profinite.NobelingProof.coe_πs + def Profinite.NobelingProof.contained + theorem Profinite.NobelingProof.contained_eq_proj + theorem Profinite.NobelingProof.contained_proj + theorem Profinite.NobelingProof.continuous_proj + theorem Profinite.NobelingProof.continuous_projRestrict + theorem Profinite.NobelingProof.continuous_projRestricts + def Profinite.NobelingProof.e + theorem Profinite.NobelingProof.injective_πs' + theorem Profinite.NobelingProof.injective_πs + theorem Profinite.NobelingProof.isClosed_proj + def Profinite.NobelingProof.iso_map + theorem Profinite.NobelingProof.iso_map_bijective + def Profinite.NobelingProof.ord + theorem Profinite.NobelingProof.ord_term + theorem Profinite.NobelingProof.ord_term_aux + theorem Profinite.NobelingProof.projRestricts_comp_projRestrict + theorem Profinite.NobelingProof.projRestricts_eq_comp + theorem Profinite.NobelingProof.projRestricts_eq_id + theorem Profinite.NobelingProof.proj_comp_of_subset + theorem Profinite.NobelingProof.proj_eq_of_subset + theorem Profinite.NobelingProof.proj_eq_self + theorem Profinite.NobelingProof.proj_prop_eq_self + def Profinite.NobelingProof.spanCone + def Profinite.NobelingProof.spanCone_isLimit + def Profinite.NobelingProof.spanFunctor + theorem Profinite.NobelingProof.surjective_projRestricts + def Profinite.NobelingProof.term + theorem Profinite.NobelingProof.term_ord_aux + def Profinite.NobelingProof.π + def Profinite.NobelingProof.πs' + def Profinite.NobelingProof.πs Added Mathlib/Topology/Category/Profinite/Nobeling/Induction.lean + theorem Profinite.Nobeling.isClosedEmbedding + def Profinite.Nobeling.ι + def Profinite.NobelingProof.GoodProducts.Basis + theorem Profinite.NobelingProof.GoodProducts.P0 + theorem Profinite.NobelingProof.GoodProducts.Plimit + theorem Profinite.NobelingProof.GoodProducts.linearIndependent + theorem Profinite.NobelingProof.GoodProducts.linearIndependentAux + theorem Profinite.NobelingProof.Nobeling_aux Added Mathlib/Topology/Category/Profinite/Nobeling/Span.lean + theorem Profinite.NobelingProof.GoodProducts.finsuppSum_mem_span_eval + theorem Profinite.NobelingProof.GoodProducts.span + theorem Profinite.NobelingProof.GoodProducts.spanFin + theorem Profinite.NobelingProof.e_mem_of_eq_true + theorem Profinite.NobelingProof.eval_eq_πJ + def Profinite.NobelingProof.factors + theorem Profinite.NobelingProof.factors_prod_eq_basis + theorem Profinite.NobelingProof.factors_prod_eq_basis_of_eq + theorem Profinite.NobelingProof.factors_prod_eq_basis_of_ne + theorem Profinite.NobelingProof.fin_comap_jointlySurjective + theorem Profinite.NobelingProof.list_prod_apply + theorem Profinite.NobelingProof.one_sub_e_mem_of_false + theorem Profinite.NobelingProof.spanFinBasis.span + def Profinite.NobelingProof.spanFinBasis + def Profinite.NobelingProof.πJ Added Mathlib/Topology/Category/Profinite/Nobeling/Successor.lean + def Profinite.NobelingProof.C' + def Profinite.NobelingProof.C0 + theorem Profinite.NobelingProof.C0_projOrd + def Profinite.NobelingProof.C1 + theorem Profinite.NobelingProof.C1_projOrd + def Profinite.NobelingProof.CC'₀ + def Profinite.NobelingProof.CC'₁ + theorem Profinite.NobelingProof.CC_comp_zero + theorem Profinite.NobelingProof.CC_exact + def Profinite.NobelingProof.GoodProducts.MaxProducts + def Profinite.NobelingProof.GoodProducts.MaxToGood + def Profinite.NobelingProof.GoodProducts.SumEval + theorem Profinite.NobelingProof.GoodProducts.chain'_cons_of_lt + theorem Profinite.NobelingProof.GoodProducts.good_lt_maxProducts + theorem Profinite.NobelingProof.GoodProducts.head!_eq_o_of_maxProducts + theorem Profinite.NobelingProof.GoodProducts.injective_sum_to + theorem Profinite.NobelingProof.GoodProducts.linearIndependent_comp_of_eval + theorem Profinite.NobelingProof.GoodProducts.linearIndependent_iff_sum + theorem Profinite.NobelingProof.GoodProducts.maxTail_isGood + theorem Profinite.NobelingProof.GoodProducts.maxToGood_injective + theorem Profinite.NobelingProof.GoodProducts.max_eq_eval + theorem Profinite.NobelingProof.GoodProducts.max_eq_eval_unapply + theorem Profinite.NobelingProof.GoodProducts.max_eq_o_cons_tail + theorem Profinite.NobelingProof.GoodProducts.span_sum + theorem Profinite.NobelingProof.GoodProducts.square_commutes + def Profinite.NobelingProof.GoodProducts.sum_equiv + theorem Profinite.NobelingProof.GoodProducts.sum_equiv_comp_eval_eq_elim + def Profinite.NobelingProof.GoodProducts.sum_to + theorem Profinite.NobelingProof.GoodProducts.sum_to_range + theorem Profinite.NobelingProof.GoodProducts.union_succ + def Profinite.NobelingProof.Linear_CC' + def Profinite.NobelingProof.Linear_CC'₀ + def Profinite.NobelingProof.Linear_CC'₁ + def Profinite.NobelingProof.Products.Tail + theorem Profinite.NobelingProof.Products.evalCons + theorem Profinite.NobelingProof.Products.max_eq_eval + theorem Profinite.NobelingProof.Products.max_eq_o_cons_tail' + theorem Profinite.NobelingProof.Products.max_eq_o_cons_tail + def Profinite.NobelingProof.SwapTrue + theorem Profinite.NobelingProof.contained_C' + theorem Profinite.NobelingProof.contained_C1 + theorem Profinite.NobelingProof.continuous_CC'₀ + theorem Profinite.NobelingProof.continuous_CC'₁ + theorem Profinite.NobelingProof.continuous_swapTrue + theorem Profinite.NobelingProof.isClosed_C' + theorem Profinite.NobelingProof.isClosed_C0 + theorem Profinite.NobelingProof.isClosed_C1 + theorem Profinite.NobelingProof.mem_C'_eq_false + theorem Profinite.NobelingProof.succ_exact + theorem Profinite.NobelingProof.succ_mono + theorem Profinite.NobelingProof.swapTrue_eq_true + theorem Profinite.NobelingProof.swapTrue_mem_C1 + theorem Profinite.NobelingProof.union_C0C1_eq Added Mathlib/Topology/Category/Profinite/Nobeling/ZeroLimit.lean + theorem Profinite.NobelingProof.GoodProducts.linearIndependentEmpty + theorem Profinite.NobelingProof.GoodProducts.linearIndependentSingleton + theorem Profinite.NobelingProof.GoodProducts.linearIndependent_iff_smaller + theorem Profinite.NobelingProof.GoodProducts.linearIndependent_iff_union_smaller + def Profinite.NobelingProof.GoodProducts.range_equiv + theorem Profinite.NobelingProof.GoodProducts.range_equiv_factorization + def Profinite.NobelingProof.GoodProducts.range_equiv_smaller + def Profinite.NobelingProof.GoodProducts.range_equiv_smaller_toFun + theorem Profinite.NobelingProof.GoodProducts.range_equiv_smaller_toFun_bijective + def Profinite.NobelingProof.GoodProducts.smaller + theorem Profinite.NobelingProof.GoodProducts.smaller_factorization + theorem Profinite.NobelingProof.GoodProducts.smaller_mono + theorem Profinite.NobelingProof.GoodProducts.union + theorem Profinite.NobelingProof.Products.isGood_nil + theorem Profinite.NobelingProof.Products.limitOrdinal + theorem Profinite.NobelingProof.Products.lt_nil_empty + def Profinite.NobelingProof.Products.nil + theorem Profinite.NobelingProof.Products.span_nil_eq_top 2025-04-10 14:57:57+10:00 1b7e7e7 ci: add elan installation step (#23900) * ci: add elan installation step Add elan installation to provide Lake for the merge script * ci: use official elan installation URL * wip ESTIMATED CHANGES Modified .github/workflows/discover-lean-pr-testing.yml 2025-04-10 03:41:18 443f79b chore: split `Algebra.BigOperators.Group.Finset.Basic` (#23897) Split off * `.Piecewise` for the interaction of big operators with `ite`, `dite` and `Finset.piecewise` * `.Indicator` for the interaction of big operators with `(mul)indicator` * `.Lemmas` for four miscellaneous lemmas that were the only use of three imports in `.Basic` ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/BigOperators/Group/Finset/Basic.lean - theorem Finset.card_filter - theorem Finset.dvd_prod_of_mem - theorem Finset.isSquare_prod - theorem Finset.mulIndicator_biUnion - theorem Finset.mulIndicator_biUnion_apply - theorem Finset.mulIndicator_prod - theorem Finset.mulSupport_prod - theorem Finset.prod_apply_dite - theorem Finset.prod_apply_ite - theorem Finset.prod_apply_ite_of_false - theorem Finset.prod_apply_ite_of_true - theorem Finset.prod_attach_eq_prod_dite - theorem Finset.prod_dite - theorem Finset.prod_dite_eq' - theorem Finset.prod_dite_eq - theorem Finset.prod_dite_of_false - theorem Finset.prod_dite_of_true +/- theorem Finset.prod_eq_fold - theorem Finset.prod_eq_mul_prod_diff_singleton - theorem Finset.prod_eq_prod_diff_singleton_mul - theorem Finset.prod_inter_mul_prod_diff - theorem Finset.prod_ite - theorem Finset.prod_ite_eq' - theorem Finset.prod_ite_eq - theorem Finset.prod_ite_eq_of_mem' - theorem Finset.prod_ite_eq_of_mem - theorem Finset.prod_ite_mem - theorem Finset.prod_ite_of_false - theorem Finset.prod_ite_of_true - theorem Finset.prod_ite_one - theorem Finset.prod_mulIndicator_eq_prod_filter - theorem Finset.prod_mulIndicator_eq_prod_inter - theorem Finset.prod_mulIndicator_subset - theorem Finset.prod_mulIndicator_subset_of_eq_one - theorem Finset.prod_pi_mulSingle' - theorem Finset.prod_pi_mulSingle - theorem Finset.prod_piecewise - theorem Finset.prod_pow_boole - theorem Finset.prod_update_of_mem - theorem Finset.prod_update_of_not_mem - theorem Fintype.prod_dite_eq' - theorem Fintype.prod_dite_eq - theorem Fintype.prod_eq_mul_prod_compl - theorem Fintype.prod_eq_prod_compl_mul - theorem Fintype.prod_ite_eq' - theorem Fintype.prod_ite_eq - theorem Fintype.prod_ite_eq_ite_exists - theorem Fintype.prod_ite_mem +/- theorem Fintype.prod_of_injective - theorem Fintype.prod_pi_mulSingle' - theorem Fintype.prod_pi_mulSingle +/- theorem IsCompl.prod_mul_prod - theorem MonoidHom.coe_finset_prod - theorem MonoidHom.finset_prod_apply Added Mathlib/Algebra/BigOperators/Group/Finset/Indicator.lean + theorem Finset.mulIndicator_biUnion + theorem Finset.mulIndicator_biUnion_apply + theorem Finset.mulIndicator_prod + theorem Finset.prod_mulIndicator_eq_prod_filter + theorem Finset.prod_mulIndicator_eq_prod_inter + theorem Finset.prod_mulIndicator_subset + theorem Finset.prod_mulIndicator_subset_of_eq_one Added Mathlib/Algebra/BigOperators/Group/Finset/Lemmas.lean + theorem Finset.isSquare_prod + theorem Finset.mulSupport_prod + theorem MonoidHom.coe_finset_prod + theorem MonoidHom.finset_prod_apply Added Mathlib/Algebra/BigOperators/Group/Finset/Piecewise.lean + theorem Finset.card_filter + theorem Finset.dvd_prod_of_mem + theorem Finset.prod_apply_dite + theorem Finset.prod_apply_ite + theorem Finset.prod_apply_ite_of_false + theorem Finset.prod_apply_ite_of_true + theorem Finset.prod_attach_eq_prod_dite + theorem Finset.prod_dite + theorem Finset.prod_dite_eq' + theorem Finset.prod_dite_eq + theorem Finset.prod_dite_of_false + theorem Finset.prod_dite_of_true + theorem Finset.prod_eq_mul_prod_diff_singleton + theorem Finset.prod_eq_prod_diff_singleton_mul + theorem Finset.prod_inter_mul_prod_diff + theorem Finset.prod_ite + theorem Finset.prod_ite_eq' + theorem Finset.prod_ite_eq + theorem Finset.prod_ite_eq_of_mem' + theorem Finset.prod_ite_eq_of_mem + theorem Finset.prod_ite_mem + theorem Finset.prod_ite_of_false + theorem Finset.prod_ite_of_true + theorem Finset.prod_ite_one + theorem Finset.prod_pi_mulSingle' + theorem Finset.prod_pi_mulSingle + theorem Finset.prod_piecewise + theorem Finset.prod_pow_boole + theorem Finset.prod_update_of_mem + theorem Finset.prod_update_of_not_mem + theorem Fintype.prod_dite_eq' + theorem Fintype.prod_dite_eq + theorem Fintype.prod_eq_mul_prod_compl + theorem Fintype.prod_eq_prod_compl_mul + theorem Fintype.prod_ite_eq' + theorem Fintype.prod_ite_eq + theorem Fintype.prod_ite_eq_ite_exists + theorem Fintype.prod_ite_mem + theorem Fintype.prod_pi_mulSingle' + theorem Fintype.prod_pi_mulSingle Modified Mathlib/Algebra/BigOperators/GroupWithZero/Finset.lean Modified Mathlib/Algebra/BigOperators/Pi.lean Modified Mathlib/Algebra/BigOperators/Ring/Finset.lean Modified Mathlib/Algebra/BigOperators/Ring/Nat.lean Modified Mathlib/Algebra/Group/Pointwise/Set/BigOperators.lean Modified Mathlib/Algebra/Group/Submonoid/BigOperators.lean Modified Mathlib/Algebra/Order/Archimedean/IndicatorCard.lean Modified Mathlib/Algebra/Order/Group/Int/Sum.lean Modified Mathlib/CategoryTheory/Preadditive/Biproducts.lean Modified Mathlib/Combinatorics/Additive/Dissociation.lean Modified Mathlib/Combinatorics/SetFamily/FourFunctions.lean Modified Mathlib/Data/Finset/NoncommProd.lean Modified Mathlib/Data/Fintype/BigOperators.lean Modified Mathlib/LinearAlgebra/AffineSpace/Combination.lean Modified Mathlib/Topology/Algebra/InfiniteSum/Basic.lean Modified Mathlib/Topology/Separation/DisjointCover.lean 2025-04-10 03:41:17 7c46a1c chore: rename Irreducible.not_unit to not_isUnit (#23889) ESTIMATED CHANGES Modified Mathlib/Algebra/GroupWithZero/Associated.lean Modified Mathlib/Algebra/Polynomial/Eval/Irreducible.lean Modified Mathlib/Algebra/Polynomial/FieldDivision.lean Modified Mathlib/Algebra/Prime/Defs.lean Modified Mathlib/Algebra/Prime/Lemmas.lean Modified Mathlib/Algebra/Squarefree/Basic.lean Modified Mathlib/Data/Nat/Prime/Defs.lean Modified Mathlib/Data/Nat/Squarefree.lean Modified Mathlib/FieldTheory/Separable.lean Modified Mathlib/NumberTheory/FactorisationProperties.lean Modified Mathlib/NumberTheory/SumTwoSquares.lean Modified Mathlib/RingTheory/DedekindDomain/Ideal.lean Modified Mathlib/RingTheory/DiscreteValuationRing/Basic.lean Modified Mathlib/RingTheory/Ideal/Norm/AbsNorm.lean Modified Mathlib/RingTheory/Polynomial/GaussLemma.lean Modified Mathlib/RingTheory/UniqueFactorizationDomain/Basic.lean Modified Mathlib/RingTheory/UniqueFactorizationDomain/Defs.lean Modified Mathlib/RingTheory/UniqueFactorizationDomain/Multiplicity.lean Modified Mathlib/Topology/Algebra/Valued/LocallyCompact.lean 2025-04-10 03:41:15 8755cbe feat: generalize continued fractions to DivisionRings (#23870) Didn't get all that far, but fixes the note. ESTIMATED CHANGES Modified Mathlib/Algebra/ContinuedFractions/Computation/Basic.lean Modified Mathlib/Algebra/ContinuedFractions/Computation/CorrectnessTerminating.lean Modified Mathlib/Algebra/ContinuedFractions/Computation/Translations.lean 2025-04-10 03:41:14 6a90bb4 chore: move some results out of Topology.Homeomorph.Lemmas (#23861) `Mathlib.Topology.Homeomorph.Lemmas` is a grab-bag of results involving homeomorphisms, but some of them can move earlier at no cost. ESTIMATED CHANGES Modified Mathlib/Topology/Algebra/ConstMulAction.lean Modified Mathlib/Topology/Algebra/Constructions.lean Modified Mathlib/Topology/Algebra/Group/Basic.lean Modified Mathlib/Topology/Algebra/GroupWithZero.lean Modified Mathlib/Topology/Algebra/MulAction.lean Modified Mathlib/Topology/Algebra/WithZeroTopology.lean Modified Mathlib/Topology/Homeomorph/Defs.lean + theorem Homeomorph.comap_nhds_eq + theorem Homeomorph.map_nhds_eq + theorem Homeomorph.nhds_eq_comap + theorem Homeomorph.symm_map_nhds_eq + theorem IsHomeomorph.comp + structure IsHomeomorph Modified Mathlib/Topology/Homeomorph/Lemmas.lean - theorem Homeomorph.comap_nhds_eq - theorem Homeomorph.map_nhds_eq - theorem Homeomorph.nhds_eq_comap - theorem Homeomorph.symm_map_nhds_eq - theorem IsHomeomorph.comp - structure IsHomeomorph Modified Mathlib/Topology/MetricSpace/Isometry.lean Modified Mathlib/Topology/MetricSpace/Ultra/TotallySeparated.lean Modified Mathlib/Topology/Separation/Basic.lean Modified Mathlib/Topology/Separation/Hausdorff.lean Modified Mathlib/Topology/Separation/Regular.lean Modified Mathlib/Topology/UniformSpace/Equiv.lean 2025-04-10 03:41:13 84eedd2 feat(maxHeartbeats linter): `maxHeartbeats` require a comment (#23816) The option `linter.style.maxHeartbeats` of the deprecated syntax linter flags usages of ```lean set_option maxHeartbeats n in -- comment whose absence is picked up by the linter cmd ``` that do not add a comment explaining the reason for the modification of the `maxHeartbeats`. The linter also also flags `synthInstance.maxHeartbeats`. [Zulip](https://github.com/leanprover-community/mathlib4/pull/new/adomani/maxHeartbeats_comment) ESTIMATED CHANGES Modified Mathlib/Algebra/Category/BialgebraCat/Monoidal.lean Modified Mathlib/Algebra/Category/Ring/Adjunctions.lean Modified Mathlib/Algebra/Homology/HomotopyCategory/Triangulated.lean Modified Mathlib/Analysis/InnerProductSpace/LinearMap.lean Modified Mathlib/Geometry/RingedSpace/PresheafedSpace/Gluing.lean Modified Mathlib/GroupTheory/Coxeter/Matrix.lean Modified Mathlib/RingTheory/Spectrum/Prime/ChevalleyComplexity.lean Modified Mathlib/Tactic/Linter/DeprecatedSyntaxLinter.lean +/- def Mathlib.Linter.Style.deprecatedSyntaxLinter + def Mathlib.Linter.Style.getSetOptionMaxHeartbeatsComment Modified Mathlib/Util/CountHeartbeats.lean Modified MathlibTest/DeprecatedSyntaxLinter.lean Modified MathlibTest/TCSynth.lean Modified lakefile.lean 2025-04-10 03:41:11 77ba7a8 feat(Algebra/Algebra/Spectrum): The spectrum of a product is the union of the spectra (#23734) This PR shows that `spectrum R a = ⋃ i, spectrum R (a i)` and `spectrum R ⟨a, b⟩ = spectrum R a ∪ spectrum R b` (and likewise for the quasispectrum). These results have been placed in the new file `Algebra/Algebra/Spectrum/Pi`. This is a new folder to which I have moved basic material about the spectrum and the quasispectrum. ESTIMATED CHANGES Modified Mathlib.lean Renamed Mathlib/Algebra/Algebra/Spectrum.lean to Mathlib/Algebra/Algebra/Spectrum/Basic.lean Added Mathlib/Algebra/Algebra/Spectrum/Pi.lean + theorem Pi.quasispectrum_eq + theorem Pi.spectrum_eq + def PreQuasiregular.toPi + def PreQuasiregular.toProd + theorem Prod.quasispectrum_eq + theorem Prod.spectrum_eq + theorem isQuasiregular_pi_iff + theorem isQuasiregular_prod_iff + theorem quasispectrum.mem_iff_of_isUnit Renamed Mathlib/Algebra/Algebra/Quasispectrum.lean to Mathlib/Algebra/Algebra/Spectrum/Quasispectrum.lean + theorem isQuasiregular_iff' Modified Mathlib/Algebra/Star/Unitary.lean Modified Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/NonUnital.lean Modified Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Unital.lean Modified Mathlib/Analysis/Normed/Algebra/Spectrum.lean Modified Mathlib/FieldTheory/IsAlgClosed/Spectrum.lean Modified Mathlib/LinearAlgebra/Eigenspace/Basic.lean Modified Mathlib/Topology/Algebra/Module/CharacterSpace.lean Modified Mathlib/Topology/ContinuousMap/Units.lean 2025-04-10 03:06:27 21a7037 feat: add `Finset.prod_congr_of_eq_on_inter` (#23886) ESTIMATED CHANGES Modified Mathlib/Algebra/BigOperators/Group/Finset/Basic.lean + theorem Finset.prod_congr_of_eq_on_inter 2025-04-10 02:58:35 4c17d27 feat(Order/GroupWithZero): drop some `0 ≤ 1` assumptions (#23892) In these lemmas, the assumptions imply `0 < 1`, so we don't need to assume that. ESTIMATED CHANGES Modified Mathlib/Algebra/Order/GroupWithZero/Finset.lean +/- theorem Finset.sup'_div₀ Modified Mathlib/Algebra/Order/GroupWithZero/Unbundled/Basic.lean +/- theorem div_le_one_of_le₀ +/- theorem inv_le_one_of_one_le₀ +/- theorem inv_pos +/- theorem mul_inv_le_one_of_le₀ +/- theorem one_le_inv_iff₀ +/- theorem zpow_nonneg +/- theorem zpow_pos Modified Mathlib/Algebra/Order/GroupWithZero/Unbundled/OrderIso.lean +/- def OrderIso.divRight₀ Modified Mathlib/Analysis/SpecialFunctions/ContinuousFunctionalCalculus/Rpow/Basic.lean Modified Mathlib/Combinatorics/Additive/PluenneckeRuzsa.lean 2025-04-09 21:31:07 25ffff6 feat(ChosenFiniteProducts): functoriality of `prodComparisonIso` (#23871) Also make `NatTrans.monoidal_of_preservesFiniteProducts` an instance since it's not data-carrying. From Toric ESTIMATED CHANGES Modified Mathlib/CategoryTheory/ChosenFiniteProducts.lean - theorem CategoryTheory.ChosenFiniteProducts.map_toUnit_comp_terminalCompariso + theorem CategoryTheory.ChosenFiniteProducts.map_toUnit_comp_terminalComparison + theorem CategoryTheory.ChosenFiniteProducts.preservesTerminalIso_comp + theorem CategoryTheory.ChosenFiniteProducts.preservesTerminalIso_id + theorem CategoryTheory.ChosenFiniteProducts.prodComparisonIso_comp + theorem CategoryTheory.ChosenFiniteProducts.prodComparisonIso_id - theorem CategoryTheory.Functor.EssImageSubcategory.NatTrans.monoidal_of_preservesFiniteProducts + theorem CategoryTheory.Functor.Monoidal.ε_of_chosenFiniteProducts +/- theorem CategoryTheory.Functor.Monoidal.μ_fst + theorem CategoryTheory.Functor.Monoidal.μ_of_chosenFiniteProducts +/- theorem CategoryTheory.Functor.Monoidal.μ_snd Modified Mathlib/CategoryTheory/Monoidal/CommGrp_.lean Modified Mathlib/CategoryTheory/Monoidal/Grp_.lean 2025-04-09 21:09:38 012336b chore(QPF/Multivariate/Basic): use strict implicit binder in `liftR_iff` (#23880) This matches mathlib3 and fixes a comment in the file (which was made before Lean 4 got strict implicit binders). The analogous lemma `liftP_iff` uses a strict implicit binder. The stray comment was pointed out by the linter in #22760. ESTIMATED CHANGES Modified Mathlib/Control/Functor/Multivariate.lean +/- def MvFunctor.LiftR Modified Mathlib/Data/QPF/Multivariate/Basic.lean +/- theorem MvQPF.liftR_iff Modified Mathlib/Data/QPF/Multivariate/Constructions/Cofix.lean 2025-04-09 18:40:18 b672298 chore(LinearAlgebra): remove porting notes on default_instance (#23818) These were introduced in #2286, which said > 6\. There are some instances I feel like we may want to be `default_instance`s, but I'm not sure. Edit: this can always be added later if necessary, so it's not urgent here. ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/Quotient/Defs.lean 2025-04-09 17:52:54 8382f0c doc(CategoryTheory/Comma/Basic): fix description of CategoryTheory.Comma.preRight (#23885) The docstring for `CategoryTheory.Comma.preRight` was copied and pasted from `CategoryTheory.Comma.preLeft`. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Comma/Basic.lean 2025-04-09 17:03:36 c2827f1 chore: make some comments doc comments (#23879) Noticed by the linter in #22760: these seem useful as doc comments. ESTIMATED CHANGES Modified Mathlib/Probability/StrongLaw.lean Modified Mathlib/RingTheory/AdicCompletion/Exactness.lean 2025-04-09 17:03:35 e54e0c6 chore(Algebra/Group/Ext): use hMul rather than mul for group extensionality (#23875) Each of the other extensionality principles use hMul rather than mul in this way, as described and explained in the module docstring. However, Group and CommGroup were omitted from this pattern, which is corrected here. ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Ext.lean +/- theorem CommGroup.ext +/- theorem Group.ext 2025-04-09 16:53:16 0897683 chore: miscellaneous style fixes (#23878) Prompted by the linter in #22760. ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Pointwise/Finset/BigOperators.lean +/- theorem Finset.coe_prod Modified Mathlib/Algebra/Polynomial/ofFn.lean +/- theorem Polynomial.ofFn_comp_toFn_eq_id_of_natDegree_lt Modified Mathlib/AlgebraicTopology/SimplicialSet/Horn.lean Modified Mathlib/Analysis/Calculus/FDeriv/Basic.lean +/- theorem hasFDerivAtFilter_intCast +/- theorem hasFDerivAtFilter_natCast +/- theorem hasFDerivAtFilter_ofNat +/- theorem hasFDerivAtFilter_one +/- theorem hasFDerivWithinAt_intCast +/- theorem hasFDerivWithinAt_natCast +/- theorem hasFDerivWithinAt_ofNat +/- theorem hasFDerivWithinAt_one Modified Mathlib/CategoryTheory/Core.lean Modified Mathlib/CategoryTheory/Discrete/SumsProducts.lean Modified Mathlib/CategoryTheory/Sums/Basic.lean Modified Mathlib/Data/LocallyFinsupp.lean Modified Mathlib/NumberTheory/NumberField/CanonicalEmbedding/Basic.lean Modified Mathlib/NumberTheory/NumberField/CanonicalEmbedding/PolarCoord.lean +/- theorem NumberField.mixedEmbedding.normAtComplexPlaces_polarSpaceCoord_symm Modified Mathlib/RingTheory/PolynomialLaw/Basic.lean Modified Mathlib/Topology/Algebra/UniformField.lean Modified Mathlib/Topology/Homotopy/Lifting.lean 2025-04-09 16:26:51 59b04ae feat: the counting measure on a countable discrete space is sigma-finite (#23863) From LeanAPAP ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Measure/Count.lean Modified Mathlib/MeasureTheory/Measure/Typeclasses/SFinite.lean + theorem MeasureTheory.Measure.sigmaFinite_iff_measure_singleton_lt_top + theorem MeasureTheory.measure_singleton_lt_top Modified Mathlib/MeasureTheory/OuterMeasure/Basic.lean + theorem MeasureTheory.measure_eq_top_mono + theorem MeasureTheory.measure_lt_top_mono 2025-04-09 15:42:55 548ae36 chore(CategoryTheory/Equivalence): simp lemmas for co/unit naturality (#23724) Add simp lemmas for naturality of the co/units of an equivalence, and use them to remove some `erw's`. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Equivalence.lean + theorem CategoryTheory.Equivalence.counitInv_naturality + theorem CategoryTheory.Equivalence.counit_naturality + theorem CategoryTheory.Equivalence.unitInv_naturality + theorem CategoryTheory.Equivalence.unit_naturality 2025-04-09 15:25:25 e3c93ad refactor: don't expose the functor `(Over X)ᵒᵖ ⥤ Under (op X)` (#23839) Instead only expose the equivalence. From Toric ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Comma/Over/Basic.lean +/- def CategoryTheory.Over.opToOpUnder +/- def CategoryTheory.Over.opToUnderOp +/- def CategoryTheory.Under.opToOpOver +/- def CategoryTheory.Under.opToOverOp 2025-04-09 14:21:21 8466b91 ci: install Elan and configure Lean via `lean-action` (#23868) The [`lean-action`](https://github.com/leanprover/lean-action) is supposed to handle common Lean CI workflows. If we disable every other option, that action installs Elan and checks the Lean setup makes sense. We do exactly that step via a custom command in a lot of workflows, so let's replace all the copy-pasted Elan setup with a call to this action. Of course, `lean-action` can do a lot more like getting the cache, building the project, running linters and tests, etc. In follow-up work I want to outsource more build steps to `lean-action` and/or `lean-update`. ESTIMATED CHANGES Modified .github/build.in.yml Modified .github/workflows/add_label_from_diff.yaml Modified .github/workflows/bench_summary_comment.yml Modified .github/workflows/bors.yml Modified .github/workflows/bot_fix_style.yaml Modified .github/workflows/build.yml Modified .github/workflows/build_fork.yml Modified .github/workflows/daily.yml Modified .github/workflows/latest_import.yml Modified .github/workflows/lint_and_suggest_pr.yml Modified .github/workflows/nightly_merge_master.yml Modified .github/workflows/nolints.yml Modified .github/workflows/update_dependencies.yml 2025-04-09 14:08:55 6cf1efc chore: update Mathlib dependencies 2025-04-09 (#23869) This PR updates the Mathlib dependencies. ESTIMATED CHANGES Modified lake-manifest.json 2025-04-09 12:22:34 961ae2f feat(Monoidal/Functor): extra lemmas for simp (#23843) From Toric ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Monoidal/Functor.lean + theorem CategoryTheory.Adjunction.map_η_comp_η + theorem CategoryTheory.Adjunction.ε_comp_map_ε + theorem CategoryTheory.Equivalence.counitInv_app_comp_functor_map_η_inverse + theorem CategoryTheory.Equivalence.counitInv_app_tensor_comp_functor_map_δ_inverse + theorem CategoryTheory.Equivalence.functor_map_ε_inverse_comp_counit_app + theorem CategoryTheory.Equivalence.functor_map_μ_inverse_comp_counit_app_tensor + theorem CategoryTheory.Equivalence.map_η_comp_η + theorem CategoryTheory.Equivalence.unit_app_comp_inverse_map_η_functor + theorem CategoryTheory.Equivalence.unit_app_tensor_comp_inverse_map_δ_functor + theorem CategoryTheory.Equivalence.ε_comp_map_ε 2025-04-09 12:22:33 27e272c feat: the category over a terminal object (#23702) From Toric ESTIMATED CHANGES Modified Mathlib/Algebra/Category/Ring/Adjunctions.lean Modified Mathlib/CategoryTheory/Comma/Over/Basic.lean + def CategoryTheory.Over.equivalenceOfIsTerminal + def CategoryTheory.Under.equivalenceOfIsInitial Modified Mathlib/CategoryTheory/Comma/Over/Pullback.lean +/- def CategoryTheory.Over.forgetAdjStar +/- def CategoryTheory.Over.star + def CategoryTheory.Under.costar + def CategoryTheory.Under.costarAdjForget - def CategoryTheory.Under.equivalenceOfIsInitial 2025-04-09 11:53:45 eeacfe2 feat: generalize Mathlib.GroupTheory (#23192) This is one of a series of PRs that generalizes type classes across Mathlib. These are generated using a new linter that tries to re-elaborate theorem definitions with more general type classes to see if it succeeds. It will accept the generalization if deleting the entire type class causes the theorem to fail to compile, and the old type class can not simply be re-synthesized with the new declaration. Otherwise, the generalization is rejected as the type class is not being generalized, but can simply be replaced by implicit type class synthesis or an implicit type class in a variable block being pulled in. The linter currently output debug statements indicating source file positions where type classes should be generalized, and a script then makes those edits. This file contains a subset of those generalizations. The linter and the script performing re-writes is available in commit 5e2b7040be0f73821c1dcb360ffecd61235d87af. Also see discussion on Zulip here: https://leanprover.zulipchat.com/#narrow/channel/270676-lean4/topic/Elab.20to.20generalize.20type.20classes.20for.20theorems/near/498862988 https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Elab.20to.20generalize.20type.20classes.20for.20theorems/near/501288855 ESTIMATED CHANGES Modified Mathlib/GroupTheory/Congruence/BigOperators.lean Modified Mathlib/GroupTheory/Coxeter/Basic.lean +/- theorem CoxeterSystem.ext_simple Modified Mathlib/GroupTheory/FiniteAbelian/Duality.lean +/- theorem CommGroup.dvd_exponent Modified Mathlib/GroupTheory/GroupAction/Basic.lean +/- theorem smul_cancel_of_non_zero_divisor Modified Mathlib/GroupTheory/GroupAction/Blocks.lean +/- theorem MulAction.IsBlock.image Modified Mathlib/GroupTheory/OrderOfElement.lean +/- theorem isOfFinOrder_iff_zpow_eq_one Modified Mathlib/GroupTheory/QuotientGroup/Defs.lean +/- theorem QuotientGroup.ker_le_range_iff Modified Mathlib/GroupTheory/SpecificGroups/Cyclic.lean +/- theorem isAddCyclic_additive_iff +/- theorem isCyclic_multiplicative_iff Modified Mathlib/GroupTheory/Subgroup/Saturated.lean +/- theorem AddSubgroup.ker_saturated Modified Mathlib/GroupTheory/Torsion.lean +/- theorem AddMonoid.isTorsionFree_iff_noZeroSMulDivisors_int 2025-04-09 11:26:21 a2015ac chore: move past maintainers in README (#23865) ESTIMATED CHANGES Modified README.md 2025-04-09 10:57:53 29ff042 chore: add `nnnorm` and `enorm` versions of `NontriviallyNormedField` lemmas (#23740) ESTIMATED CHANGES Modified Mathlib/Analysis/Normed/Field/Basic.lean + theorem NormedField.exists_enorm_lt + theorem NormedField.exists_enorm_lt_one + theorem NormedField.exists_lt_enorm + theorem NormedField.exists_lt_nnnorm + theorem NormedField.exists_nnnorm_lt + theorem NormedField.exists_nnnorm_lt_one + theorem NormedField.exists_one_lt_enorm + theorem NormedField.exists_one_lt_nnnorm 2025-04-09 10:22:33 d7d140e chore: use mixin ordered algebraic typeclasses (part 2) (#20595) ESTIMATED CHANGES Modified Counterexamples/OrderedCancelAddCommMonoidWithBounds.lean Modified Mathlib/Algebra/AddConstMap/Basic.lean +/- theorem AddConstMapClass.antitone_iff_Icc +/- theorem AddConstMapClass.map_fract +/- theorem AddConstMapClass.monotone_iff_Icc +/- theorem AddConstMapClass.strictAnti_iff_Icc +/- theorem AddConstMapClass.strictMono_iff_Icc Modified Mathlib/Algebra/Algebra/Quasispectrum.lean +/- theorem NonnegSpectrumClass.iff_spectrum_nonneg +/- theorem spectrum_nonneg_of_nonneg Modified Mathlib/Algebra/ContinuedFractions/Computation/ApproximationCorollaries.lean Modified Mathlib/Algebra/ContinuedFractions/Computation/Approximations.lean Modified Mathlib/Algebra/ContinuedFractions/Computation/Basic.lean Modified Mathlib/Algebra/ContinuedFractions/Computation/CorrectnessTerminating.lean Modified Mathlib/Algebra/ContinuedFractions/Computation/TerminatesIffRat.lean Modified Mathlib/Algebra/ContinuedFractions/Computation/Translations.lean +/- theorem GenContFract.IntFractPair.stream_succ_of_int Modified Mathlib/Algebra/Field/Periodic.lean +/- theorem Function.Periodic.exists_mem_Ico +/- theorem Function.Periodic.exists_mem_Ico₀ +/- theorem Function.Periodic.exists_mem_Ioc +/- theorem Function.Periodic.image_Icc +/- theorem Function.Periodic.image_Ioc +/- theorem Function.Periodic.image_uIcc +/- theorem Int.fract_periodic Modified Mathlib/Algebra/GeomSum.lean +/- theorem Odd.geom_sum_pos +/- theorem geom_sum_Ico_le_of_lt_one +/- theorem geom_sum_alternating_of_le_neg_one +/- theorem geom_sum_alternating_of_lt_neg_one +/- theorem geom_sum_eq_zero_iff_neg_one +/- theorem geom_sum_lt +/- theorem geom_sum_ne_zero +/- theorem geom_sum_neg_iff +/- theorem geom_sum_of_lt_one +/- theorem geom_sum_of_one_lt +/- theorem geom_sum_pos' +/- theorem geom_sum_pos +/- theorem geom_sum_pos_and_lt_one +/- theorem geom_sum_pos_iff +/- theorem geom₂_sum_of_gt +/- theorem geom₂_sum_of_lt Modified Mathlib/Algebra/Group/Subgroup/Order.lean +/- theorem MulEquiv.strictMono_subsemigroupCongr +/- theorem MulEquiv.strictMono_symm +/- theorem Subsemigroup.strictMono_topEquiv Modified Mathlib/Algebra/Module/ZLattice/Basic.lean Modified Mathlib/Algebra/Order/AbsoluteValue/Basic.lean Modified Mathlib/Algebra/Order/AbsoluteValue/Euclidean.lean Modified Mathlib/Algebra/Order/AddGroupWithTop.lean Modified Mathlib/Algebra/Order/Archimedean/Basic.lean +/- theorem exists_lt_pow +/- theorem exists_nat_ge Modified Mathlib/Algebra/Order/Archimedean/Hom.lean Modified Mathlib/Algebra/Order/Archimedean/IndicatorCard.lean +/- theorem Set.infinite_iff_tendsto_sum_indicator_atTop +/- theorem Set.limsup_eq_tendsto_sum_indicator_atTop Modified Mathlib/Algebra/Order/Archimedean/Submonoid.lean Modified Mathlib/Algebra/Order/BigOperators/Expect.lean Modified Mathlib/Algebra/Order/BigOperators/Ring/Finset.lean +/- theorem AbsoluteValue.sum_le +/- theorem Finset.abs_prod +/- theorem Finset.sq_sum_div_le_sum_sq_div +/- theorem Finset.sum_mul_self_eq_zero_iff +/- theorem Finset.sum_mul_sq_le_sq_mul_sq +/- theorem Finset.sum_sq_le_sum_mul_sum_of_sq_eq_mul +/- theorem IsAbsoluteValue.abv_sum +/- theorem IsAbsoluteValue.map_prod Modified Mathlib/Algebra/Order/CauSeq/Basic.lean +/- def CauSeq +/- def IsCauSeq Modified Mathlib/Algebra/Order/CauSeq/BigOperators.lean Modified Mathlib/Algebra/Order/CauSeq/Completion.lean Modified Mathlib/Algebra/Order/Chebyshev.lean Modified Mathlib/Algebra/Order/Floor/Defs.lean +/- def FloorRing.ofCeil +/- def FloorRing.ofFloor +/- theorem Int.ceil_nonneg +/- theorem Int.floor_nonpos +/- theorem Nat.le_floor Modified Mathlib/Algebra/Order/Floor/Ring.lean +/- theorem subsingleton_floorRing Modified Mathlib/Algebra/Order/Floor/Semiring.lean +/- theorem Nat.ceil_intCast +/- theorem Nat.floor_add_natCast +/- theorem Nat.floor_congr +/- theorem Nat.map_floor +/- theorem subsingleton_floorSemiring Modified Mathlib/Algebra/Order/Monoid/Basic.lean + theorem Function.Injective.isOrderedCancelMonoid + theorem Function.Injective.isOrderedMonoid Modified Mathlib/Algebra/Order/Monoid/Canonical/Defs.lean + theorem CanonicallyOrderedMul.toIsOrderedMonoid Modified Mathlib/Algebra/Order/Monoid/TypeTags.lean Modified Mathlib/Algebra/Order/Monoid/WithTop.lean Modified Mathlib/Algebra/Order/Nonneg/Floor.lean +/- theorem Nonneg.nat_ceil_coe +/- theorem Nonneg.nat_floor_coe Modified Mathlib/Algebra/Order/Nonneg/Ring.lean Modified Mathlib/Algebra/Order/Ring/Canonical.lean + theorem CanonicallyOrderedAdd.toIsOrderedMonoid + theorem CanonicallyOrderedAdd.toIsOrderedRing Modified Mathlib/Algebra/Order/Ring/InjSurj.lean Modified Mathlib/Algebra/Order/Round.lean Modified Mathlib/Algebra/Order/ToIntervalMod.lean Modified Mathlib/Algebra/Polynomial/DenomsClearable.lean +/- theorem one_le_pow_mul_abs_eval_div Modified Mathlib/Algebra/QuadraticDiscriminant.lean Modified Mathlib/Algebra/Quaternion.lean Modified Mathlib/Algebra/Star/CHSH.lean +/- theorem CHSH_inequality_of_comm +/- theorem tsirelson_inequality Modified Mathlib/Analysis/Asymptotics/AsymptoticEquivalent.lean Modified Mathlib/Analysis/Asymptotics/Lemmas.lean +/- theorem Asymptotics.IsBigO.natCast_atTop +/- theorem Asymptotics.IsLittleO.natCast_atTop Modified Mathlib/Analysis/Asymptotics/SpecificAsymptotics.lean +/- theorem Asymptotics.isLittleO_pow_pow_atTop_of_lt Modified Mathlib/Analysis/Asymptotics/SuperpolynomialDecay.lean Modified Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/NonUnital.lean Modified Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Unital.lean Modified Mathlib/Analysis/Convex/Basic.lean +/- theorem Set.OrdConnected.convex +/- theorem Set.OrdConnected.convex_of_chain +/- theorem convex_iff_ordConnected Modified Mathlib/Analysis/Convex/Between.lean +/- def affineSegment Modified Mathlib/Analysis/Convex/Birkhoff.lean Modified Mathlib/Analysis/Convex/Caratheodory.lean Modified Mathlib/Analysis/Convex/Combination.lean +/- theorem Finset.centerMass_filter_ne_zero Modified Mathlib/Analysis/Convex/Cone/Basic.lean +/- theorem ConvexCone.coe_mk +/- theorem ConvexCone.mem_mk +/- structure ConvexCone Modified Mathlib/Analysis/Convex/Cone/Closure.lean Modified Mathlib/Analysis/Convex/Cone/Pointed.lean Modified Mathlib/Analysis/Convex/Cone/Proper.lean +/- structure ProperCone Modified Mathlib/Analysis/Convex/Deriv.lean Modified Mathlib/Analysis/Convex/Exposed.lean +/- theorem IsExposed.eq_inter_halfSpace +/- theorem IsExposed.sInter Modified Mathlib/Analysis/Convex/Extrema.lean Modified Mathlib/Analysis/Convex/Extreme.lean +/- theorem IsExtreme.convex_diff Modified Mathlib/Analysis/Convex/Function.lean +/- theorem ConcaveOn.add_const +/- theorem ConvexOn.add_const +/- theorem StrictConcaveOn.add_const +/- theorem StrictConvexOn.add_const Modified Mathlib/Analysis/Convex/Gauge.lean Modified Mathlib/Analysis/Convex/Hull.lean Modified Mathlib/Analysis/Convex/Independent.lean Modified Mathlib/Analysis/Convex/Jensen.lean Modified Mathlib/Analysis/Convex/Join.lean Modified Mathlib/Analysis/Convex/Mul.lean Modified Mathlib/Analysis/Convex/Quasiconvex.lean +/- theorem quasilinearOn_iff_monotoneOn_or_antitoneOn Modified Mathlib/Analysis/Convex/Radon.lean Modified Mathlib/Analysis/Convex/Segment.lean +/- theorem sameRay_of_mem_segment +/- theorem segment_inter_eq_endpoint_of_linearIndependent_of_ne Modified Mathlib/Analysis/Convex/Side.lean Modified Mathlib/Analysis/Convex/SimplicialComplex/Basic.lean Modified Mathlib/Analysis/Convex/Slope.lean Modified Mathlib/Analysis/Convex/SpecificFunctions/Deriv.lean +/- theorem Finset.prod_nonneg_of_card_nonpos_even Modified Mathlib/Analysis/Convex/Star.lean +/- theorem Set.OrdConnected.starConvex +/- def StarConvex +/- theorem starConvex_iff_ordConnected Modified Mathlib/Analysis/Convex/StoneSeparation.lean Modified Mathlib/Analysis/Convex/Strict.lean +/- def StrictConvex Modified Mathlib/Analysis/Convex/StrictConvexSpace.lean Modified Mathlib/Analysis/Convex/Topology.lean Modified Mathlib/Analysis/Convex/Visible.lean Modified Mathlib/Analysis/LocallyConvex/StrongTopology.lean Modified Mathlib/Analysis/Normed/Order/Lattice.lean +/- theorem isClosed_le_of_isClosed_nonneg Modified Mathlib/Analysis/Normed/Order/UpperLower.lean Modified Mathlib/Analysis/Normed/Ring/WithAbs.lean Modified Mathlib/Analysis/PSeries.lean Modified Mathlib/Analysis/Polynomial/Basic.lean Modified Mathlib/Analysis/SpecificLimits/Basic.lean +/- theorem Filter.EventuallyEq.div_mul_cancel_atTop +/- theorem Tendsto.den +/- theorem Tendsto.num +/- theorem Tendsto.num_atTop_iff_den_atTop +/- theorem tendsto_add_one_pow_atTop_atTop_of_pos +/- theorem tendsto_nat_ceil_atTop +/- theorem tendsto_nat_floor_atTop +/- theorem tendsto_nat_floor_mul_atTop +/- theorem tendsto_pow_atTop_atTop_of_one_lt +/- theorem tendsto_pow_atTop_nhdsWithin_zero_of_lt_one +/- theorem tendsto_pow_atTop_nhds_zero_iff +/- theorem tendsto_pow_atTop_nhds_zero_of_lt_one Modified Mathlib/Analysis/SpecificLimits/Normed.lean Modified Mathlib/Combinatorics/Additive/AP/Three/Behrend.lean +/- theorem threeAPFree_frontier Modified Mathlib/Combinatorics/SimpleGraph/LapMatrix.lean +/- theorem SimpleGraph.lapMatrix_toLinearMap₂'_apply'_eq_zero_iff_forall_adj +/- theorem SimpleGraph.posSemidef_lapMatrix Modified Mathlib/Combinatorics/SimpleGraph/Regularity/Bound.lean Modified Mathlib/Combinatorics/SimpleGraph/Regularity/Energy.lean +/- theorem Finpartition.coe_energy Modified Mathlib/Combinatorics/SimpleGraph/Regularity/Uniform.lean Modified Mathlib/Data/Complex/Exponential.lean +/- theorem Complex.sum_div_factorial_le Modified Mathlib/Data/Int/AbsoluteValue.lean Modified Mathlib/Data/Int/Log.lean Modified Mathlib/Data/Matrix/DoublyStochastic.lean +/- def doublyStochastic Modified Mathlib/Data/Matrix/Rank.lean +/- theorem Matrix.rank_self_mul_transpose Modified Mathlib/Data/NNRat/Floor.lean Modified Mathlib/Data/Rat/Floor.lean +/- theorem Rat.isInt_intCeil +/- theorem Rat.isInt_intFloor +/- theorem Rat.isNat_intCeil +/- theorem Rat.isNat_intFloor Modified Mathlib/Data/Real/Pointwise.lean Modified Mathlib/GroupTheory/Archimedean.lean Modified Mathlib/GroupTheory/ArchimedeanDensely.lean Modified Mathlib/LinearAlgebra/AffineSpace/Independent.lean Modified Mathlib/LinearAlgebra/AffineSpace/Ordered.lean Modified Mathlib/LinearAlgebra/FiniteDimensional/Basic.lean Modified Mathlib/LinearAlgebra/Matrix/AbsoluteValue.lean Modified Mathlib/LinearAlgebra/Matrix/Determinant/Basic.lean +/- theorem Matrix.abs_det_submatrix_equiv_equiv Modified Mathlib/LinearAlgebra/Matrix/DotProduct.lean +/- theorem dotProduct_self_eq_zero Modified Mathlib/LinearAlgebra/Matrix/GeneralLinearGroup/Defs.lean Modified Mathlib/LinearAlgebra/Matrix/ToLinearEquiv.lean +/- theorem Matrix.det_ne_zero_of_sum_col_pos +/- theorem Matrix.det_ne_zero_of_sum_row_pos Modified Mathlib/LinearAlgebra/Orientation.lean Modified Mathlib/LinearAlgebra/QuadraticForm/Basic.lean +/- theorem QuadraticMap.PosDef.smul +/- theorem QuadraticMap.linMulLinSelfPosDef Modified Mathlib/LinearAlgebra/QuadraticForm/Prod.lean +/- theorem QuadraticMap.nonneg_pi_iff +/- theorem QuadraticMap.posDef_pi_iff Modified Mathlib/LinearAlgebra/Ray.lean +/- def SameRay Modified Mathlib/LinearAlgebra/RootSystem/Finite/CanonicalBilinear.lean Modified Mathlib/LinearAlgebra/RootSystem/Finite/Nondegenerate.lean Modified Mathlib/LinearAlgebra/RootSystem/RootPositive.lean Modified Mathlib/LinearAlgebra/SesquilinearForm.lean Modified Mathlib/MeasureTheory/Function/ConditionalExpectation/Basic.lean Modified Mathlib/MeasureTheory/Function/ConditionalExpectation/CondexpL1.lean +/- theorem MeasureTheory.condExpInd_nonneg +/- theorem MeasureTheory.condExpL1_mono Modified Mathlib/MeasureTheory/Function/ConditionalExpectation/CondexpL2.lean +/- theorem MeasureTheory.condExpIndSMul_nonneg Modified Mathlib/MeasureTheory/Function/Floor.lean +/- theorem Measurable.fract +/- theorem Measurable.nat_floor +/- theorem MeasurableSet.image_fract +/- theorem Nat.measurable_floor +/- theorem measurable_fract Modified Mathlib/MeasureTheory/Function/L1Space/Integrable.lean +/- theorem MeasureTheory.Integrable.abs +/- theorem MeasureTheory.Integrable.inf +/- theorem MeasureTheory.Integrable.sup Modified Mathlib/MeasureTheory/Function/LpOrder.lean Modified Mathlib/MeasureTheory/Function/LpSeminorm/Basic.lean Modified Mathlib/MeasureTheory/Function/SimpleFuncDenseLp.lean Modified Mathlib/MeasureTheory/Integral/Asymptotics.lean Modified Mathlib/MeasureTheory/Integral/SetToL1.lean +/- theorem MeasureTheory.L1.setToL1_mono +/- theorem MeasureTheory.SimpleFunc.setToSimpleFunc_mono +/- theorem MeasureTheory.setToFun_mono Modified Mathlib/MeasureTheory/VectorMeasure/Basic.lean +/- theorem MeasureTheory.VectorMeasure.of_iUnion_nonneg +/- theorem MeasureTheory.VectorMeasure.of_iUnion_nonpos Modified Mathlib/MeasureTheory/VectorMeasure/Decomposition/Hahn.lean Modified Mathlib/NumberTheory/ClassNumber/Finite.lean +/- theorem ClassGroup.norm_lt Modified Mathlib/NumberTheory/Cyclotomic/PrimitiveRoots.lean +/- theorem IsPrimitiveRoot.norm_eq_one_of_linearly_ordered Modified Mathlib/NumberTheory/Padics/PadicNumbers.lean Modified Mathlib/Order/Filter/AtTopBot/Archimedean.lean +/- theorem Filter.Eventually.intCast_atBot +/- theorem Filter.Eventually.intCast_atTop +/- theorem Filter.Eventually.natCast_atTop +/- theorem Filter.Eventually.ratCast_atBot +/- theorem Filter.Eventually.ratCast_atTop +/- theorem Int.comap_cast_atBot +/- theorem Int.comap_cast_atTop +/- theorem Nat.comap_cast_atTop +/- theorem Rat.comap_cast_atBot +/- theorem Rat.comap_cast_atTop +/- theorem atBot_hasCountableBasis_of_archimedean +/- theorem atTop_hasAntitoneBasis_of_archimedean +/- theorem atTop_hasCountableBasis_of_archimedean +/- theorem tendsto_intCast_atBot_iff +/- theorem tendsto_intCast_atTop_atTop +/- theorem tendsto_intCast_atTop_iff +/- theorem tendsto_natCast_atTop_atTop +/- theorem tendsto_natCast_atTop_iff +/- theorem tendsto_ratCast_atBot_iff +/- theorem tendsto_ratCast_atTop_iff Modified Mathlib/Order/Filter/AtTopBot/Floor.lean Modified Mathlib/Probability/Martingale/Basic.lean +/- theorem MeasureTheory.Supermartingale.smul_nonpos Modified Mathlib/RingTheory/GradedAlgebra/Noetherian.lean Modified Mathlib/RingTheory/GradedAlgebra/Radical.lean Modified Mathlib/RingTheory/HahnSeries/PowerSeries.lean Modified Mathlib/RingTheory/HahnSeries/Valuation.lean Modified Mathlib/RingTheory/MvPolynomial/WeightedHomogeneous.lean Modified Mathlib/RingTheory/Polynomial/Cyclotomic/Eval.lean +/- theorem Polynomial.cyclotomic_nonneg +/- theorem Polynomial.cyclotomic_pos' +/- theorem Polynomial.cyclotomic_pos +/- theorem Polynomial.cyclotomic_pos_and_nonneg Modified Mathlib/RingTheory/Polynomial/Pochhammer.lean Modified Mathlib/RingTheory/Valuation/Archimedean.lean Modified Mathlib/Tactic/Linarith/Lemmas.lean +/- theorem Linarith.add_lt_of_le_of_neg +/- theorem Linarith.add_lt_of_neg_of_le +/- theorem Linarith.add_neg +/- theorem Linarith.add_nonpos +/- theorem Linarith.eq_of_eq_of_eq +/- theorem Linarith.le_of_eq_of_le +/- theorem Linarith.le_of_le_of_eq +/- theorem Linarith.lt_of_eq_of_lt +/- theorem Linarith.lt_of_lt_of_eq +/- theorem Linarith.mul_eq +/- theorem Linarith.mul_neg +/- theorem Linarith.mul_nonpos +/- theorem Linarith.natCast_nonneg +/- theorem Linarith.sub_neg_of_lt +/- theorem Linarith.sub_nonpos_of_le +/- theorem Linarith.zero_lt_one Modified Mathlib/Tactic/Linarith/Verification.lean Modified Mathlib/Tactic/NormNum/Ineq.lean +/- def Mathlib.Meta.NormNum.inferLinearOrderedField +/- def Mathlib.Meta.NormNum.inferOrderedRing +/- def Mathlib.Meta.NormNum.inferOrderedSemiring +/- theorem Mathlib.Meta.NormNum.isInt_le_false +/- theorem Mathlib.Meta.NormNum.isInt_le_true +/- theorem Mathlib.Meta.NormNum.isInt_lt_false +/- theorem Mathlib.Meta.NormNum.isInt_lt_true +/- theorem Mathlib.Meta.NormNum.isNat_le_false +/- theorem Mathlib.Meta.NormNum.isNat_le_true +/- theorem Mathlib.Meta.NormNum.isNat_lt_false +/- theorem Mathlib.Meta.NormNum.isNat_lt_true +/- theorem Mathlib.Meta.NormNum.isRat_le_false +/- theorem Mathlib.Meta.NormNum.isRat_le_true +/- theorem Mathlib.Meta.NormNum.isRat_lt_false +/- theorem Mathlib.Meta.NormNum.isRat_lt_true Modified Mathlib/Tactic/Ring/Compare.lean +/- theorem Mathlib.Tactic.Ring.add_le_add_right +/- theorem Mathlib.Tactic.Ring.add_le_of_nonpos_left +/- theorem Mathlib.Tactic.Ring.add_lt_add_right +/- theorem Mathlib.Tactic.Ring.add_lt_of_neg_left +/- def Mathlib.Tactic.Ring.evalLE +/- def Mathlib.Tactic.Ring.evalLT +/- theorem Mathlib.Tactic.Ring.le_add_of_nonneg_left +/- theorem Mathlib.Tactic.Ring.lt_add_of_pos_left Modified Mathlib/Topology/Algebra/Field.lean +/- theorem affineHomeomorph_image_Icc +/- theorem affineHomeomorph_image_Ico +/- theorem affineHomeomorph_image_Ioc +/- theorem affineHomeomorph_image_Ioo Modified Mathlib/Topology/Algebra/Group/Basic.lean Modified Mathlib/Topology/Algebra/InfiniteSum/Order.lean +/- theorem Finite.of_summable_const +/- theorem Set.Finite.of_summable_const +/- theorem Summable.tendsto_atTop_of_pos +/- theorem hasProd_of_isLUB +/- theorem hasProd_of_isLUB_of_one_le +/- theorem multipliable_mabs_iff +/- theorem tprod_subtype_le Modified Mathlib/Topology/Algebra/Module/LocallyConvex.lean +/- theorem locallyConvexSpace_inf Modified Mathlib/Topology/Algebra/Order/Archimedean.lean +/- theorem Rat.denseRange_cast Modified Mathlib/Topology/Algebra/Order/Field.lean +/- theorem IsTopologicalRing.of_norm Modified Mathlib/Topology/Algebra/Order/Floor.lean +/- theorem continuousOn_ceil Modified Mathlib/Topology/Algebra/Order/Group.lean Modified Mathlib/Topology/Algebra/Order/UpperLower.lean Modified Mathlib/Topology/Algebra/Polynomial.lean +/- theorem Polynomial.tendsto_abv_atTop +/- theorem Polynomial.tendsto_abv_eval₂_atTop Modified Mathlib/Topology/Algebra/Ring/Basic.lean +/- def AbsoluteValue.comp Modified Mathlib/Topology/Algebra/Valued/ValuationTopology.lean Modified Mathlib/Topology/ContinuousMap/Bounded/Normed.lean Modified Mathlib/Topology/ContinuousMap/StarOrdered.lean Modified Mathlib/Topology/Germ.lean +/- def Filter.Germ.valueOrderRingHom Modified Mathlib/Topology/Instances/AddCircle.lean Modified Mathlib/Topology/Instances/EReal/Lemmas.lean Modified Mathlib/Topology/Semicontinuous.lean Modified Mathlib/Topology/UniformSpace/AbsoluteValue.lean Modified Mathlib/Topology/UniformSpace/Dini.lean Modified Mathlib/Topology/UnitInterval.lean Modified MathlibTest/GCongr/inequalities.lean Modified MathlibTest/InstanceTransparency.lean Modified MathlibTest/ValuedCSP.lean +/- def ValuedCSP.binaryTerm +/- def ValuedCSP.unaryTerm Modified MathlibTest/linear_combination'.lean Modified MathlibTest/linear_combination.lean Modified MathlibTest/module.lean Modified MathlibTest/nontriviality.lean Modified MathlibTest/norm_num_ext.lean Modified MathlibTest/positivity.lean Modified MathlibTest/ring_compare.lean 2025-04-09 10:11:58 6c7393e feat(LinearAlgebra/RootSystem): Generalize RootPairing.pairing_zero_iff (#23833) Generalize RootPairing.pairing_zero_iff ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/RootSystem/CartanMatrix.lean +/- theorem RootPairing.Base.cartanMatrix_le_zero_of_ne +/- theorem RootPairing.Base.cartanMatrix_mem_of_ne Modified Mathlib/LinearAlgebra/RootSystem/Defs.lean + theorem RootPairing.coxeterWeight_zero_iff_isOrthogonal + theorem RootPairing.isFixedPt_reflection_perm_iff + theorem RootPairing.isOrthogonal_iff_pairing_eq_zero + theorem RootPairing.pairing_zero_iff' + theorem RootPairing.pairing_zero_iff + theorem RootPairing.reflection_perm_eq_iff_smul_coroot + theorem RootPairing.reflection_perm_eq_iff_smul_root + theorem RootPairing.reflection_perm_eq_of_pairing_eq_zero' + theorem RootPairing.reflection_perm_eq_of_pairing_eq_zero Modified Mathlib/LinearAlgebra/RootSystem/Finite/Lemmas.lean Modified Mathlib/LinearAlgebra/RootSystem/Finite/Nondegenerate.lean Modified Mathlib/LinearAlgebra/RootSystem/Finite/g2.lean Modified Mathlib/LinearAlgebra/RootSystem/Reduced.lean +/- theorem RootPairing.pairingIn_neg_one_neg_four_iff +/- theorem RootPairing.pairingIn_one_four_iff +/- theorem RootPairing.pairing_neg_one_neg_four_iff +/- theorem RootPairing.pairing_one_four_iff Modified Mathlib/LinearAlgebra/RootSystem/RootPositive.lean +/- theorem RootPairing.InvariantForm.apply_root_root_zero_iff - theorem RootPairing.InvariantForm.coxeterWeight_zero_iff_isOrthogonal - theorem RootPairing.InvariantForm.isOrthogonal_iff_pairing_eq_zero - theorem RootPairing.InvariantForm.pairing_zero_iff 2025-04-09 09:39:35 899a550 chore(Algebra/Group/Subgroup/Pointwise): don't import `GroupWithZero` (#23832) Instead, move the `GroupWithZero` and `Ring` content of `Algebra.Group.Submonoid.Pointwise` and `Algebra.Group.Subgroup.Pointwise` to: * `Algebra.GroupWithZero.Submonoid.Pointwise`. See https://github.com/leanprover-community/mathlib3/pull/9359 for the copyright. * `Algebra.GroupWithZero.Subgroup`. See https://github.com/leanprover-community/mathlib3/pull/9359 for the copyright. * `Algebra.Ring.Submonoid.Pointwise`. See https://github.com/leanprover-community/mathlib3/pull/9359 for the copyright. * `Algebra.Ring.Subgroup`. See #18096 for the copyright ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Algebra/Operations.lean Modified Mathlib/Algebra/Algebra/Subalgebra/Basic.lean Modified Mathlib/Algebra/Group/Subgroup/Pointwise.lean - theorem AddSubgroup.coe_pointwise_smul - theorem AddSubgroup.le_pointwise_smul_iff - theorem AddSubgroup.le_pointwise_smul_iff₀ - theorem AddSubgroup.mem_inv_pointwise_smul_iff - theorem AddSubgroup.mem_inv_pointwise_smul_iff₀ - theorem AddSubgroup.mem_pointwise_smul_iff_inv_smul_mem - theorem AddSubgroup.mem_pointwise_smul_iff_inv_smul_mem₀ - theorem AddSubgroup.mem_smul_pointwise_iff_exists - theorem AddSubgroup.mul_toAddSubmonoid - theorem AddSubgroup.pointwise_smul_def - theorem AddSubgroup.pointwise_smul_le_iff - theorem AddSubgroup.pointwise_smul_le_iff₀ - theorem AddSubgroup.pointwise_smul_le_pointwise_smul_iff - theorem AddSubgroup.pointwise_smul_le_pointwise_smul_iff₀ - theorem AddSubgroup.pointwise_smul_toAddSubmonoid - theorem AddSubgroup.smul_mem_pointwise_smul - theorem AddSubgroup.smul_mem_pointwise_smul_iff - theorem AddSubgroup.smul_mem_pointwise_smul_iff₀ - theorem Subgroup.le_pointwise_smul_iff₀ - theorem Subgroup.mem_inv_pointwise_smul_iff₀ - theorem Subgroup.mem_pointwise_smul_iff_inv_smul_mem₀ - theorem Subgroup.pointwise_smul_le_iff₀ - theorem Subgroup.pointwise_smul_le_pointwise_smul_iff₀ - theorem Subgroup.smul_mem_pointwise_smul_iff₀ Modified Mathlib/Algebra/Group/Submonoid/Pointwise.lean - theorem AddSubmonoid.addSubmonoid_smul_bot - theorem AddSubmonoid.addSubmonoid_smul_sup - theorem AddSubmonoid.bot_mul - theorem AddSubmonoid.closure_mul_closure - theorem AddSubmonoid.closure_pow - theorem AddSubmonoid.coe_pointwise_smul - theorem AddSubmonoid.iSup_mul - theorem AddSubmonoid.le_pointwise_smul_iff - theorem AddSubmonoid.le_pointwise_smul_iff₀ - theorem AddSubmonoid.mem_inv_pointwise_smul_iff - theorem AddSubmonoid.mem_inv_pointwise_smul_iff₀ - theorem AddSubmonoid.mem_one - theorem AddSubmonoid.mem_pointwise_smul_iff_inv_smul_mem - theorem AddSubmonoid.mem_pointwise_smul_iff_inv_smul_mem₀ - theorem AddSubmonoid.mem_smul_pointwise_iff_exists - theorem AddSubmonoid.mul_bot - theorem AddSubmonoid.mul_comm_of_commute - theorem AddSubmonoid.mul_eq_closure_mul_set - theorem AddSubmonoid.mul_iSup - theorem AddSubmonoid.mul_le - theorem AddSubmonoid.mul_le_mul - theorem AddSubmonoid.mul_le_mul_left - theorem AddSubmonoid.mul_le_mul_right - theorem AddSubmonoid.mul_mem_mul - theorem AddSubmonoid.mul_subset_mul - theorem AddSubmonoid.mul_sup - theorem AddSubmonoid.natCast_mem_one - theorem AddSubmonoid.one_eq_closure - theorem AddSubmonoid.one_eq_closure_one_set - theorem AddSubmonoid.one_eq_mrange - theorem AddSubmonoid.pointwise_isCentralScalar - theorem AddSubmonoid.pointwise_smul_le_iff - theorem AddSubmonoid.pointwise_smul_le_iff₀ - theorem AddSubmonoid.pointwise_smul_le_pointwise_smul_iff - theorem AddSubmonoid.pointwise_smul_le_pointwise_smul_iff₀ - theorem AddSubmonoid.pow_eq_closure_pow_set - theorem AddSubmonoid.pow_subset_pow - theorem AddSubmonoid.smul_bot - theorem AddSubmonoid.smul_closure - theorem AddSubmonoid.smul_iSup - theorem AddSubmonoid.smul_le - theorem AddSubmonoid.smul_le_smul - theorem AddSubmonoid.smul_le_smul_left - theorem AddSubmonoid.smul_le_smul_right - theorem AddSubmonoid.smul_mem_pointwise_smul - theorem AddSubmonoid.smul_mem_pointwise_smul_iff - theorem AddSubmonoid.smul_mem_pointwise_smul_iff₀ - theorem AddSubmonoid.smul_mem_smul - theorem AddSubmonoid.smul_subset_smul - theorem AddSubmonoid.smul_sup - theorem AddSubmonoid.sup_mul - theorem Submonoid.le_pointwise_smul_iff₀ +/- theorem Submonoid.mem_closure_inv - theorem Submonoid.mem_inv_pointwise_smul_iff₀ - theorem Submonoid.mem_pointwise_smul_iff_inv_smul_mem₀ - theorem Submonoid.pointwise_smul_le_iff₀ - theorem Submonoid.pointwise_smul_le_pointwise_smul_iff₀ - theorem Submonoid.smul_mem_pointwise_smul_iff₀ Added Mathlib/Algebra/GroupWithZero/Subgroup.lean + theorem AddSubgroup.coe_pointwise_smul + theorem AddSubgroup.le_pointwise_smul_iff + theorem AddSubgroup.le_pointwise_smul_iff₀ + theorem AddSubgroup.mem_inv_pointwise_smul_iff + theorem AddSubgroup.mem_inv_pointwise_smul_iff₀ + theorem AddSubgroup.mem_pointwise_smul_iff_inv_smul_mem + theorem AddSubgroup.mem_pointwise_smul_iff_inv_smul_mem₀ + theorem AddSubgroup.mem_smul_pointwise_iff_exists + theorem AddSubgroup.pointwise_smul_def + theorem AddSubgroup.pointwise_smul_le_iff + theorem AddSubgroup.pointwise_smul_le_iff₀ + theorem AddSubgroup.pointwise_smul_le_pointwise_smul_iff + theorem AddSubgroup.pointwise_smul_le_pointwise_smul_iff₀ + theorem AddSubgroup.pointwise_smul_toAddSubmonoid + theorem AddSubgroup.smul_mem_pointwise_smul + theorem AddSubgroup.smul_mem_pointwise_smul_iff + theorem AddSubgroup.smul_mem_pointwise_smul_iff₀ + theorem Subgroup.le_pointwise_smul_iff₀ + theorem Subgroup.mem_inv_pointwise_smul_iff₀ + theorem Subgroup.mem_pointwise_smul_iff_inv_smul_mem₀ + theorem Subgroup.pointwise_smul_le_iff₀ + theorem Subgroup.pointwise_smul_le_pointwise_smul_iff₀ + theorem Subgroup.smul_mem_pointwise_smul_iff₀ Added Mathlib/Algebra/GroupWithZero/Submonoid/Pointwise.lean + theorem AddSubmonoid.coe_pointwise_smul + theorem AddSubmonoid.le_pointwise_smul_iff + theorem AddSubmonoid.le_pointwise_smul_iff₀ + theorem AddSubmonoid.mem_inv_pointwise_smul_iff + theorem AddSubmonoid.mem_inv_pointwise_smul_iff₀ + theorem AddSubmonoid.mem_pointwise_smul_iff_inv_smul_mem + theorem AddSubmonoid.mem_pointwise_smul_iff_inv_smul_mem₀ + theorem AddSubmonoid.mem_smul_pointwise_iff_exists + theorem AddSubmonoid.pointwise_isCentralScalar + theorem AddSubmonoid.pointwise_smul_le_iff + theorem AddSubmonoid.pointwise_smul_le_iff₀ + theorem AddSubmonoid.pointwise_smul_le_pointwise_smul_iff + theorem AddSubmonoid.pointwise_smul_le_pointwise_smul_iff₀ + theorem AddSubmonoid.smul_bot + theorem AddSubmonoid.smul_closure + theorem AddSubmonoid.smul_mem_pointwise_smul + theorem AddSubmonoid.smul_mem_pointwise_smul_iff + theorem AddSubmonoid.smul_mem_pointwise_smul_iff₀ + theorem AddSubmonoid.smul_sup + theorem Submonoid.le_pointwise_smul_iff₀ + theorem Submonoid.mem_inv_pointwise_smul_iff₀ + theorem Submonoid.mem_pointwise_smul_iff_inv_smul_mem₀ + theorem Submonoid.pointwise_smul_le_iff₀ + theorem Submonoid.pointwise_smul_le_pointwise_smul_iff₀ + theorem Submonoid.smul_mem_pointwise_smul_iff₀ Renamed Mathlib/Algebra/GroupWithZero/Submonoid.lean to Mathlib/Algebra/GroupWithZero/Submonoid/Primal.lean Modified Mathlib/Algebra/Module/Submodule/Pointwise.lean Added Mathlib/Algebra/Ring/Subgroup.lean + theorem AddSubgroup.mul_toAddSubmonoid Renamed Mathlib/Algebra/Ring/Submonoid.lean to Mathlib/Algebra/Ring/Submonoid/Basic.lean Added Mathlib/Algebra/Ring/Submonoid/Pointwise.lean + theorem AddSubmonoid.addSubmonoid_smul_bot + theorem AddSubmonoid.addSubmonoid_smul_sup + theorem AddSubmonoid.bot_mul + theorem AddSubmonoid.closure_mul_closure + theorem AddSubmonoid.closure_pow + theorem AddSubmonoid.iSup_mul + theorem AddSubmonoid.mem_one + theorem AddSubmonoid.mul_bot + theorem AddSubmonoid.mul_comm_of_commute + theorem AddSubmonoid.mul_eq_closure_mul_set + theorem AddSubmonoid.mul_iSup + theorem AddSubmonoid.mul_le + theorem AddSubmonoid.mul_le_mul + theorem AddSubmonoid.mul_le_mul_left + theorem AddSubmonoid.mul_le_mul_right + theorem AddSubmonoid.mul_mem_mul + theorem AddSubmonoid.mul_subset_mul + theorem AddSubmonoid.mul_sup + theorem AddSubmonoid.natCast_mem_one + theorem AddSubmonoid.one_eq_closure + theorem AddSubmonoid.one_eq_closure_one_set + theorem AddSubmonoid.one_eq_mrange + theorem AddSubmonoid.pow_eq_closure_pow_set + theorem AddSubmonoid.pow_subset_pow + theorem AddSubmonoid.smul_iSup + theorem AddSubmonoid.smul_le + theorem AddSubmonoid.smul_le_smul + theorem AddSubmonoid.smul_le_smul_left + theorem AddSubmonoid.smul_le_smul_right + theorem AddSubmonoid.smul_mem_smul + theorem AddSubmonoid.smul_subset_smul + theorem AddSubmonoid.sup_mul Modified Mathlib/Algebra/Ring/Subring/Pointwise.lean Modified Mathlib/Algebra/Ring/Subsemiring/Pointwise.lean Modified Mathlib/GroupTheory/Divisible.lean Modified Mathlib/GroupTheory/DoubleCoset.lean Modified Mathlib/RingTheory/NonUnitalSubsemiring/Basic.lean Modified Mathlib/RingTheory/UniqueFactorizationDomain/Defs.lean 2025-04-09 09:39:34 9ee0416 feat: generalize Mathlib.MeasureTheory (#23147) This is one of a series of PRs that generalizes type classes across Mathlib. These are generated using a new linter that tries to re-elaborate theorem definitions with more general type classes to see if it succeeds. It will accept the generalization if deleting the entire type class causes the theorem to fail to compile, and the old type class can not simply be re-synthesized with the new declaration. Otherwise, the generalization is rejected as the type class is not being generalized, but can simply be replaced by implicit type class synthesis or an implicit type class in a variable block being pulled in. The linter currently output debug statements indicating source file positions where type classes should be generalized, and a script then makes those edits. This file contains a subset of those generalizations. The linter and the script performing re-writes is available in commit 5e2b7040be0f73821c1dcb360ffecd61235d87af. Also see discussion on Zulip here: https://leanprover.zulipchat.com/#narrow/channel/270676-lean4/topic/Elab.20to.20generalize.20type.20classes.20for.20theorems/near/498862988 https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Elab.20to.20generalize.20type.20classes.20for.20theorems/near/501288855 ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Constructions/BorelSpace/Basic.lean +/- theorem measurableSet_of_continuousAt Modified Mathlib/MeasureTheory/Function/AEMeasurableSequence.lean +/- theorem aeSeq.iInf +/- theorem aeSeq.iSup Modified Mathlib/MeasureTheory/Function/ConditionalExpectation/AEMeasurable.lean +/- theorem MeasureTheory.AEStronglyMeasurable'.neg Modified Mathlib/MeasureTheory/Function/L1Space/Integrable.lean +/- theorem IsUnit.integrable_smul_iff +/- theorem MeasureTheory.Integrable.smul_essSup +/- theorem MeasureTheory.integrable_fun_smul_iff +/- theorem MeasureTheory.integrable_smul_iff Modified Mathlib/MeasureTheory/Function/LpSeminorm/Basic.lean +/- theorem MeasureTheory.eLpNorm_mono_ae' Modified Mathlib/MeasureTheory/Function/SimpleFunc.lean Modified Mathlib/MeasureTheory/Function/StronglyMeasurable/AEStronglyMeasurable.lean +/- theorem MeasureTheory.AEStronglyMeasurable.smul_measure Modified Mathlib/MeasureTheory/Function/StronglyMeasurable/Basic.lean Modified Mathlib/MeasureTheory/Group/Arithmetic.lean +/- theorem aemeasurable_inv_iff - theorem aemeasurable_inv_iff₀ +/- theorem measurable_inv_iff - theorem measurable_inv_iff₀ Modified Mathlib/MeasureTheory/Group/GeometryOfNumbers.lean +/- theorem MeasureTheory.exists_pair_mem_lattice_not_disjoint_vadd Modified Mathlib/MeasureTheory/Group/Measure.lean +/- theorem MeasureTheory.Measure.haar_singleton +/- theorem MeasureTheory.Measure.isHaarMeasure_map Modified Mathlib/MeasureTheory/Integral/Bochner/L1.lean +/- theorem MeasureTheory.weightedSMul_smul Modified Mathlib/MeasureTheory/Integral/Prod.lean +/- theorem MeasureTheory.Integrable.prod_mul +/- theorem MeasureTheory.Integrable.prod_smul Modified Mathlib/MeasureTheory/Integral/SetToL1.lean +/- theorem MeasureTheory.FinMeasAdditive.smul +/- theorem MeasureTheory.SimpleFunc.setToSimpleFunc_smul Modified Mathlib/MeasureTheory/Measure/AEMeasurable.lean +/- theorem AEMeasurable.smul_measure Modified Mathlib/MeasureTheory/Measure/Content.lean +/- theorem MeasureTheory.Content.is_mul_left_invariant_innerContent +/- theorem MeasureTheory.Content.is_mul_left_invariant_outerMeasure 2025-04-09 09:12:01 3295033 chore(Submodule/Pointwise): rename `Submodule.closure_neg` (#23853) ... to `Submodule.span_neg_eq_neg` ESTIMATED CHANGES Modified Mathlib/Algebra/Module/Submodule/Pointwise.lean - theorem Submodule.closure_neg +/- theorem Submodule.neg_inf + theorem Submodule.span_neg_eq_neg 2025-04-09 08:52:46 736af37 feat: `yoneda ⋙ (whiskeringLeft _ _ _).obj (opOp C) ≅ coyoneda` (#23842) From Toric ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Yoneda.lean + def CategoryTheory.Coyoneda.opIso 2025-04-09 08:09:16 79096ed refactor: correct names for `(D)Finsupp.sum` lemmas (#23741) The naming guide advocates `finsuppSum` not `finsupp_sum` as we wrote in Lean 3. ESTIMATED CHANGES Modified Mathlib/Algebra/BigOperators/Associated.lean + theorem Prime.dvd_finsuppProd_iff - theorem Prime.dvd_finsupp_prod_iff + theorem Prime.not_dvd_finsuppProd - theorem Prime.not_dvd_finsupp_prod Modified Mathlib/Algebra/BigOperators/Finsupp/Basic.lean + theorem MonoidHom.coe_finsuppProd - theorem MonoidHom.coe_finsupp_prod + theorem MonoidHom.finsuppProd_apply - theorem MonoidHom.finsupp_prod_apply + theorem SubmonoidClass.finsuppProd_mem - theorem SubmonoidClass.finsupp_prod_mem + theorem map_finsuppProd - theorem map_finsupp_prod Modified Mathlib/Algebra/Category/ModuleCat/Free.lean Modified Mathlib/Algebra/DirectSum/Basic.lean + theorem DirectSum.coeAddMonoidHom_eq_dfinsuppSum - theorem DirectSum.coeAddMonoidHom_eq_dfinsupp_sum Modified Mathlib/Algebra/DirectSum/Internal.lean + theorem DirectSum.coe_mul_apply_eq_dfinsuppSum - theorem DirectSum.coe_mul_apply_eq_dfinsupp_sum Modified Mathlib/Algebra/DirectSum/Module.lean + theorem DirectSum.coeLinearMap_eq_dfinsuppSum - theorem DirectSum.coeLinearMap_eq_dfinsupp_sum Modified Mathlib/Algebra/DirectSum/Ring.lean + theorem DirectSum.mul_eq_dfinsuppSum - theorem DirectSum.mul_eq_dfinsupp_sum Modified Mathlib/Algebra/Module/Projective.lean Modified Mathlib/Algebra/MonoidAlgebra/Defs.lean Modified Mathlib/Algebra/MvPolynomial/Equiv.lean Modified Mathlib/Algebra/Order/Antidiag/Finsupp.lean Modified Mathlib/Analysis/InnerProductSpace/l2Space.lean Modified Mathlib/Analysis/RCLike/Basic.lean + theorem RCLike.ofReal_finsuppProd - theorem RCLike.ofReal_finsupp_prod Modified Mathlib/Analysis/SpecialFunctions/Log/Basic.lean Modified Mathlib/Combinatorics/Nullstellensatz.lean Modified Mathlib/Data/DFinsupp/BigOperators.lean + theorem AddEquiv.map_dfinsuppSumAddHom - theorem AddEquiv.map_dfinsupp_sumAddHom + theorem AddMonoidHom.coe_dfinsuppSumAddHom - theorem AddMonoidHom.coe_dfinsupp_sumAddHom + theorem AddMonoidHom.dfinsuppSumAddHom_apply - theorem AddMonoidHom.dfinsupp_sumAddHom_apply + theorem AddMonoidHom.map_dfinsuppSumAddHom - theorem AddMonoidHom.map_dfinsupp_sumAddHom + theorem MonoidHom.coe_dfinsuppProd - theorem MonoidHom.coe_dfinsupp_prod + theorem MonoidHom.dfinsuppProd_apply - theorem MonoidHom.dfinsupp_prod_apply + theorem RingHom.map_dfinsuppSumAddHom - theorem RingHom.map_dfinsupp_sumAddHom + theorem map_dfinsuppProd - theorem map_dfinsupp_prod Modified Mathlib/Data/DFinsupp/Submonoid.lean + theorem AddSubmonoid.bsupr_eq_mrange_dfinsuppSumAddHom - theorem AddSubmonoid.bsupr_eq_mrange_dfinsupp_sumAddHom + theorem AddSubmonoid.iSup_eq_mrange_dfinsuppSumAddHom - theorem AddSubmonoid.iSup_eq_mrange_dfinsupp_sumAddHom + theorem dfinsuppProd_mem + theorem dfinsuppSumAddHom_mem - theorem dfinsupp_prod_mem - theorem dfinsupp_sumAddHom_mem Modified Mathlib/Data/Finsupp/Basic.lean + theorem Int.cast_finsuppProd - theorem Int.cast_finsupp_prod + theorem Nat.cast_finsuppProd - theorem Nat.cast_finsupp_prod + theorem Rat.cast_finsuppProd - theorem Rat.cast_finsupp_prod Modified Mathlib/Data/Finsupp/Multiset.lean Modified Mathlib/LinearAlgebra/Basis/Defs.lean Modified Mathlib/LinearAlgebra/DFinsupp.lean + theorem LinearEquiv.map_dfinsuppSumAddHom - theorem LinearEquiv.map_dfinsupp_sumAddHom + theorem LinearMap.coe_dfinsuppSum - theorem LinearMap.coe_dfinsupp_sum + theorem LinearMap.dfinsuppSum_apply - theorem LinearMap.dfinsupp_sum_apply + theorem LinearMap.map_dfinsuppSumAddHom - theorem LinearMap.map_dfinsupp_sumAddHom + theorem Submodule.dfinsuppSumAddHom_mem + theorem Submodule.dfinsuppSum_mem - theorem Submodule.dfinsupp_sumAddHom_mem - theorem Submodule.dfinsupp_sum_mem + theorem iSupIndep.dfinsuppSumAddHom_injective - theorem iSupIndep.dfinsupp_sumAddHom_injective + theorem iSupIndep_iff_dfinsuppSumAddHom_injective - theorem iSupIndep_iff_dfinsupp_sumAddHom_injective + theorem iSupIndep_of_dfinsuppSumAddHom_injective' + theorem iSupIndep_of_dfinsuppSumAddHom_injective - theorem iSupIndep_of_dfinsupp_sumAddHom_injective' - theorem iSupIndep_of_dfinsupp_sumAddHom_injective Modified Mathlib/LinearAlgebra/Dimension/Constructions.lean Modified Mathlib/LinearAlgebra/Dual/Basis.lean Modified Mathlib/LinearAlgebra/Eigenspace/Triangularizable.lean Modified Mathlib/LinearAlgebra/Finsupp/LSum.lean Modified Mathlib/LinearAlgebra/FreeModule/PID.lean Modified Mathlib/RingTheory/DedekindDomain/Factorization.lean + theorem FractionalIdeal.count_finsuppProd - theorem FractionalIdeal.count_finsupp_prod Modified Mathlib/RingTheory/Generators.lean Modified Mathlib/RingTheory/MvPolynomial/WeightedHomogeneous.lean + theorem MvPolynomial.DirectSum.coeLinearMap_eq_dfinsuppSum - theorem MvPolynomial.DirectSum.coeLinearMap_eq_dfinsupp_sum Modified Mathlib/RingTheory/MvPowerSeries/Basic.lean Modified Mathlib/RingTheory/Presentation.lean Modified Mathlib/RingTheory/Unramified/Finite.lean Modified Mathlib/Topology/Category/Profinite/Nobeling.lean + theorem Profinite.NobelingProof.GoodProducts.finsuppSum_mem_span_eval - theorem Profinite.NobelingProof.GoodProducts.finsupp_sum_mem_span_eval Modified scripts/nolints_prime_decls.txt 2025-04-09 06:49:49 b8b5d19 chore(Topology/Separation): split connectedness out of basic file (#23827) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Topology/Algebra/Category/ProfiniteGrp/Basic.lean Modified Mathlib/Topology/Algebra/ClopenNhdofOne.lean Modified Mathlib/Topology/Connected/Separation.lean Modified Mathlib/Topology/DiscreteQuotient.lean Modified Mathlib/Topology/DiscreteSubset.lean Modified Mathlib/Topology/Homeomorph/Lemmas.lean Modified Mathlib/Topology/Order/IntermediateValue.lean Modified Mathlib/Topology/Order/Priestley.lean Modified Mathlib/Topology/SeparatedMap.lean Modified Mathlib/Topology/Separation/Basic.lean - theorem IsPreconnected.infinite_of_nontrivial - theorem PreconnectedSpace.infinite - theorem PreconnectedSpace.trivial_of_discrete Added Mathlib/Topology/Separation/Connected.lean + theorem IsPreconnected.infinite_of_nontrivial + theorem PreconnectedSpace.infinite + theorem PreconnectedSpace.trivial_of_discrete Modified Mathlib/Topology/Separation/Hausdorff.lean Modified Mathlib/Topology/Separation/Profinite.lean Modified Mathlib/Topology/Separation/Regular.lean Modified Mathlib/Topology/Sets/Closeds.lean Modified Mathlib/Topology/StoneCech.lean Modified scripts/noshake.json 2025-04-09 06:03:07 0a57be7 chore: rename `RestrictGenTopology` to `Topology.IsCoherentWith` (#18397) Rename `Topology.RestrictGenTopology` to `Topology.IsCoherentWith` since * the `Topology` part is understood * the name should be prefixed with `Is` to show it's Prop-valued * "coherent topology" is the informal name for this notion: https://en.wikipedia.org/wiki/Coherent_topology ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Topology/Algebra/Module/Alternating/Topology.lean +/- theorem ContinuousAlternatingMap.completeSpace Modified Mathlib/Topology/Algebra/Module/Multilinear/Topology.lean +/- theorem ContinuousMultilinearMap.completeSpace Modified Mathlib/Topology/Algebra/Module/StrongTopology.lean Renamed Mathlib/Topology/RestrictGen.lean to Mathlib/Topology/Coherent.lean + theorem Topology.IsCoherentWith.isCompact_of_seq + theorem Topology.IsCoherentWith.isCompact_of_weaklyLocallyCompact + theorem Topology.IsCoherentWith.of_continuous_prop + theorem Topology.IsCoherentWith.of_isClosed + theorem Topology.IsCoherentWith.of_nhds + theorem Topology.IsCoherentWith.of_seq - theorem Topology.RestrictGenTopology.isCompact_of_seq - theorem Topology.RestrictGenTopology.isCompact_of_weaklyLocallyCompact - theorem Topology.RestrictGenTopology.of_continuous_prop - theorem Topology.RestrictGenTopology.of_isClosed - theorem Topology.RestrictGenTopology.of_nhds - theorem Topology.RestrictGenTopology.of_seq Modified Mathlib/Topology/Defs/Induced.lean + structure Topology.IsCoherentWith - structure Topology.RestrictGenTopology Modified Mathlib/Topology/UniformSpace/CompactConvergence.lean + theorem ContinuousMap.completeSpace_of_isCoherentWith - theorem ContinuousMap.completeSpace_of_restrictGenTopology Modified Mathlib/Topology/UniformSpace/UniformConvergenceTopology.lean +/- theorem UniformOnFun.isClosed_setOf_continuous 2025-04-09 05:26:28 342f271 feat(Matrix/Determinant): add `Int.cast_det` and `Rat.cast_det` (#23759) ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/Matrix/Determinant/Basic.lean + theorem Int.cast_det + theorem Rat.cast_det 2025-04-09 04:49:04 85f3734 ci: fix zulip CLI installation in workflow (#23856) Install zulip package instead of non-existent zulip-send package ESTIMATED CHANGES Modified .github/workflows/nightly_detect_failure.yml 2025-04-09 03:56:47 a13f45f chore(AlgebraicGeometry): rename `mem_Spec_image` to `essImage_Spec` (#23841) This matches the naming convention. Also tag simp and make the `Scheme` argument implicit. From Toric ESTIMATED CHANGES Modified Mathlib/AlgebraicGeometry/AffineScheme.lean + theorem AlgebraicGeometry.essImage_Spec - theorem AlgebraicGeometry.mem_Spec_essImage 2025-04-09 03:56:46 15bc18a feat: generalize Mathlib.FieldTheory (#23191) This is one of a series of PRs that generalizes type classes across Mathlib. These are generated using a new linter that tries to re-elaborate theorem definitions with more general type classes to see if it succeeds. It will accept the generalization if deleting the entire type class causes the theorem to fail to compile, and the old type class can not simply be re-synthesized with the new declaration. Otherwise, the generalization is rejected as the type class is not being generalized, but can simply be replaced by implicit type class synthesis or an implicit type class in a variable block being pulled in. The linter currently output debug statements indicating source file positions where type classes should be generalized, and a script then makes those edits. This file contains a subset of those generalizations. The linter and the script performing re-writes is available in commit 5e2b7040be0f73821c1dcb360ffecd61235d87af. Also see discussion on Zulip here: https://leanprover.zulipchat.com/#narrow/channel/270676-lean4/topic/Elab.20to.20generalize.20type.20classes.20for.20theorems/near/498862988 https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Elab.20to.20generalize.20type.20classes.20for.20theorems/near/501288855 ESTIMATED CHANGES Modified Mathlib/FieldTheory/Finite/GaloisField.lean +/- theorem galois_poly_separable Modified Mathlib/FieldTheory/Fixed.lean +/- theorem cardinalMk_algHom Modified Mathlib/FieldTheory/IntermediateField/Basic.lean +/- theorem IntermediateField.aeval_coe +/- theorem IntermediateField.coe_smul Modified Mathlib/FieldTheory/IsAlgClosed/Basic.lean +/- theorem IsAlgClosed.exists_aeval_eq_zero_of_injective +/- theorem IsAlgClosed.exists_eval₂_eq_zero +/- theorem IsAlgClosed.exists_eval₂_eq_zero_of_injective +/- theorem IsAlgClosed.splits_codomain Modified Mathlib/FieldTheory/IsPerfectClosure.lean +/- theorem PerfectRing.pNilradical_eq_bot +/- theorem pNilradical_eq_bot_of_frobenius_inj Modified Mathlib/FieldTheory/Minpoly/Field.lean 2025-04-09 03:56:45 b632aab feat: IMO 2015 Q6 (#23038) ESTIMATED CHANGES Modified Archive.lean Added Archive/Imo/Imo2015Q6.lean + def Imo2015Q6.Condition + theorem Imo2015Q6.b_pos + theorem Imo2015Q6.card_pool_succ + theorem Imo2015Q6.exists_add_eq_of_mem_pool + theorem Imo2015Q6.exists_max_card_pool + theorem Imo2015Q6.le_sum_pool + theorem Imo2015Q6.monotone_card_pool + theorem Imo2015Q6.not_mem_pool_self + def Imo2015Q6.pool + theorem Imo2015Q6.pool_subset_Icc + theorem Imo2015Q6.result + theorem Imo2015Q6.sum_pool_le + theorem Imo2015Q6.sum_sub_sum_eq_sub + theorem Imo2015Q6.sum_telescope + theorem Imo2015Q6.zero_mem_pool Modified Mathlib.lean Modified Mathlib/Algebra/BigOperators/Intervals.lean + theorem Finset.prod_Ico_div Added Mathlib/Algebra/Order/Group/Int/Sum.lean + theorem Finset.sum_Ico_le_sum + theorem Finset.sum_le_sum_Ioc + theorem Finset.sum_le_sum_range + theorem Finset.sum_range_le_sum Modified Mathlib/Order/Monotone/Basic.lean + theorem converges_of_monotone_of_bounded 2025-04-09 03:14:14 13df8d6 chore: split `Algebra.Order.GroupWithZero.Unbundled` (#23828) * `.Defs` contains the definitions of the eight typeclasses and everything that does not require `MulZeroClass/MulOneClass`. * `.Basic` contains everything else. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Order/GroupWithZero/Unbundled/Basic.lean - theorem MulPosMono.toMulPosReflectLT - theorem MulPosReflectLE.toMulPosStrictMono - theorem MulPosReflectLT.toMulPosMono - theorem PosMulMono.toPosMulReflectLT - theorem PosMulReflectLE.toPosMulStrictMono - theorem PosMulReflectLT.toPosMulMono - theorem le_mul_of_le_mul_of_nonneg_left - theorem le_mul_of_le_mul_of_nonneg_right - theorem le_of_mul_le_mul_left - theorem le_of_mul_le_mul_right - theorem lt_mul_of_lt_mul_of_nonneg_left - theorem lt_mul_of_lt_mul_of_nonneg_right - theorem lt_of_mul_lt_mul_left - theorem lt_of_mul_lt_mul_right - theorem mulPosMono_iff_mulPosReflectLT - theorem mulPosStrictMono_iff_mulPosReflectLE - theorem mul_le_mul_left - theorem mul_le_mul_of_nonneg' - theorem mul_le_mul_of_nonneg - theorem mul_le_mul_of_nonneg_left - theorem mul_le_mul_of_nonneg_right - theorem mul_le_mul_right - theorem mul_le_of_mul_le_of_nonneg_left - theorem mul_le_of_mul_le_of_nonneg_right - theorem mul_lt_mul_left - theorem mul_lt_mul_of_le_of_lt_of_nonneg_of_pos - theorem mul_lt_mul_of_le_of_lt_of_pos_of_nonneg - theorem mul_lt_mul_of_lt_of_le_of_nonneg_of_pos - theorem mul_lt_mul_of_lt_of_le_of_pos_of_nonneg - theorem mul_lt_mul_of_pos' - theorem mul_lt_mul_of_pos - theorem mul_lt_mul_of_pos_left - theorem mul_lt_mul_of_pos_right - theorem mul_lt_mul_right - theorem mul_lt_of_mul_lt_of_nonneg_left - theorem mul_lt_of_mul_lt_of_nonneg_right - theorem posMulMono_iff_mulPosMono - theorem posMulMono_iff_posMulReflectLT - theorem posMulReflectLE_iff_mulPosReflectLE - theorem posMulReflectLT_iff_mulPosReflectLT - theorem posMulStrictMono_iff_mulPosStrictMono - theorem posMulStrictMono_iff_posMulReflectLE Added Mathlib/Algebra/Order/GroupWithZero/Unbundled/Defs.lean + theorem MulPosMono.toMulPosReflectLT + theorem MulPosReflectLE.toMulPosStrictMono + theorem MulPosReflectLT.toMulPosMono + theorem PosMulMono.toPosMulReflectLT + theorem PosMulReflectLE.toPosMulStrictMono + theorem PosMulReflectLT.toPosMulMono + theorem le_mul_of_le_mul_of_nonneg_left + theorem le_mul_of_le_mul_of_nonneg_right + theorem le_of_mul_le_mul_left + theorem le_of_mul_le_mul_right + theorem lt_mul_of_lt_mul_of_nonneg_left + theorem lt_mul_of_lt_mul_of_nonneg_right + theorem lt_of_mul_lt_mul_left + theorem lt_of_mul_lt_mul_right + theorem mulPosMono_iff_mulPosReflectLT + theorem mulPosStrictMono_iff_mulPosReflectLE + theorem mul_le_mul_left + theorem mul_le_mul_of_nonneg' + theorem mul_le_mul_of_nonneg + theorem mul_le_mul_of_nonneg_left + theorem mul_le_mul_of_nonneg_right + theorem mul_le_mul_right + theorem mul_le_of_mul_le_of_nonneg_left + theorem mul_le_of_mul_le_of_nonneg_right + theorem mul_lt_mul_left + theorem mul_lt_mul_of_le_of_lt_of_nonneg_of_pos + theorem mul_lt_mul_of_le_of_lt_of_pos_of_nonneg + theorem mul_lt_mul_of_lt_of_le_of_nonneg_of_pos + theorem mul_lt_mul_of_lt_of_le_of_pos_of_nonneg + theorem mul_lt_mul_of_pos' + theorem mul_lt_mul_of_pos + theorem mul_lt_mul_of_pos_left + theorem mul_lt_mul_of_pos_right + theorem mul_lt_mul_right + theorem mul_lt_of_mul_lt_of_nonneg_left + theorem mul_lt_of_mul_lt_of_nonneg_right + theorem posMulMono_iff_mulPosMono + theorem posMulMono_iff_posMulReflectLT + theorem posMulReflectLE_iff_mulPosReflectLE + theorem posMulReflectLT_iff_mulPosReflectLT + theorem posMulStrictMono_iff_mulPosStrictMono + theorem posMulStrictMono_iff_posMulReflectLE Modified Mathlib/Order/Filter/IsBounded.lean 2025-04-09 02:33:26 e584e66 chore: standardise on `AES` or `aes` in `AEStronglyMeasurable` (#23852) In other words, `AES` is treated as one letter in declaration names. The oddly-cased instances were found using the regex `(AEs|AeS|Aes|aES|aEs|aeS)trongly`. ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Function/ConditionalExpectation/AEMeasurable.lean - theorem MeasureTheory.ae_eq_trim_iff_of_aeStronglyMeasurable' + theorem MeasureTheory.ae_eq_trim_iff_of_aestronglyMeasurable - theorem MeasureTheory.isClosed_aeStronglyMeasurable' + theorem MeasureTheory.isClosed_aestronglyMeasurable - theorem MeasureTheory.isComplete_aeStronglyMeasurable' + theorem MeasureTheory.isComplete_aestronglyMeasurable - theorem MeasureTheory.lpMeas.aeStronglyMeasurable + theorem MeasureTheory.lpMeas.aestronglyMeasurable - theorem MeasureTheory.mem_lpMeasSubgroup_iff_aeStronglyMeasurable + theorem MeasureTheory.mem_lpMeasSubgroup_iff_aestronglyMeasurable - theorem MeasureTheory.mem_lpMeas_iff_aeStronglyMeasurable + theorem MeasureTheory.mem_lpMeas_iff_aestronglyMeasurable Modified Mathlib/MeasureTheory/Function/ConditionalExpectation/CondexpL1.lean Modified Mathlib/MeasureTheory/Function/ConditionalExpectation/CondexpL2.lean Modified Mathlib/MeasureTheory/Function/ConditionalExpectation/Unique.lean Modified Mathlib/MeasureTheory/Function/UniformIntegrable.lean Modified Mathlib/MeasureTheory/Group/FundamentalDomain.lean Modified Mathlib/MeasureTheory/Integral/SetToL1.lean - theorem MeasureTheory.setToFun_non_aEStronglyMeasurable + theorem MeasureTheory.setToFun_non_aestronglyMeasurable 2025-04-09 02:33:24 141c401 doc(Computability): expand docs for Language (#23851) This is mostly motivated by wanting to highlight the non-trivial Arden's lemma in the file. ESTIMATED CHANGES Modified Mathlib/Computability/Language.lean 2025-04-09 02:09:00 f80121b chore(Topology/Constructions): tweak and move `Prod.instNeBotNhdsWithinIoi` (#22844) This does not actually require the order dual, hence can also go into Constructions.SumProd. Follow-up to #22827. ESTIMATED CHANGES Modified Mathlib/Topology/Constructions.lean Modified Mathlib/Topology/Constructions/SumProd.lean 2025-04-09 02:01:03 0b4af42 feat(Finpartition): ofSetSetoid (#22527) Allows for `Finpartition` to act on a specific set, and makes the `ofSetoid` definition the universal case of `ofSetSetoid`. Motivation: Partitioning a domineering board into continuous components while preserving `Repr`. ESTIMATED CHANGES Modified Mathlib/Order/Partition/Finpartition.lean + theorem Finpartition.mem_part_ofSetSetoid_iff_rel + def Finpartition.ofSetSetoid +/- def Finpartition.ofSetoid 2025-04-09 00:37:03 8c18307 chore(LongestPole): fix some deprecations and a shebang line (#23824) ESTIMATED CHANGES Modified LongestPole/Unused.lean Modified scripts/unused_in_pole.sh 2025-04-09 00:37:02 96ac060 doc: expand `Module.finrank` docstring (#23799) ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/Dimension/Basic.lean Modified Mathlib/LinearAlgebra/Dimension/Finrank.lean 2025-04-09 00:37:01 02f8c07 chore: deprecate `Opposite.rec'` (#23671) Deprecate `Opposite.rec'` as a duplicate of `Opposite.rec`. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Limits/Cones.lean Modified Mathlib/Data/Opposite.lean Modified Mathlib/Geometry/RingedSpace/OpenImmersion.lean Modified Mathlib/Geometry/RingedSpace/PresheafedSpace/Gluing.lean Modified Mathlib/Geometry/RingedSpace/PresheafedSpace/HasColimits.lean Modified Mathlib/Geometry/RingedSpace/Stalks.lean Modified Mathlib/Topology/Sheaves/SheafCondition/EqualizerProducts.lean Modified Mathlib/Topology/Sheaves/Stalks.lean 2025-04-09 00:36:59 68e993d feat: generalize Mathlib.Topology (#23193) This is one of a series of PRs that generalizes type classes across Mathlib. These are generated using a new linter that tries to re-elaborate theorem definitions with more general type classes to see if it succeeds. It will accept the generalization if deleting the entire type class causes the theorem to fail to compile, and the old type class can not simply be re-synthesized with the new declaration. Otherwise, the generalization is rejected as the type class is not being generalized, but can simply be replaced by implicit type class synthesis or an implicit type class in a variable block being pulled in. The linter currently output debug statements indicating source file positions where type classes should be generalized, and a script then makes those edits. This file contains a subset of those generalizations. The linter and the script performing re-writes is available in commit 5e2b7040be0f73821c1dcb360ffecd61235d87af. Also see discussion on Zulip here: https://leanprover.zulipchat.com/#narrow/channel/270676-lean4/topic/Elab.20to.20generalize.20type.20classes.20for.20theorems/near/498862988 https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Elab.20to.20generalize.20type.20classes.20for.20theorems/near/501288855 ESTIMATED CHANGES Modified Mathlib/Topology/Algebra/Algebra.lean +/- theorem continuousSMul_of_algebraMap +/- theorem continuous_algebraMap_iff_smul Modified Mathlib/Topology/Algebra/Group/Basic.lean +/- theorem inv_mem_connectedComponent_one Modified Mathlib/Topology/Algebra/InfiniteSum/Module.lean +/- theorem tsum_const_smul'' Modified Mathlib/Topology/Algebra/Module/Cardinality.lean Modified Mathlib/Topology/Algebra/Module/Star.lean +/- theorem continuous_decomposeProdAdjoint_symm Modified Mathlib/Topology/Algebra/Module/StrongTopology.lean Modified Mathlib/Topology/Algebra/Monoid.lean +/- theorem ContinuousMul.induced +/- theorem LocallyFinite.exists_finset_mulSupport Modified Mathlib/Topology/Algebra/ProperAction/Basic.lean + theorem t2Space_of_properSMul_of_t1Group - theorem t2Space_of_properSMul_of_t2Group Modified Mathlib/Topology/Algebra/Support.lean +/- theorem locallyFinite_mulSupport_iff +/- theorem mulTSupport_mul Modified Mathlib/Topology/Algebra/UniformMulAction.lean +/- theorem uniformContinuousConstSMul_of_continuousConstSMul Modified Mathlib/Topology/ContinuousMap/Periodic.lean +/- theorem ContinuousMap.periodic_tsum_comp_add_zsmul Modified Mathlib/Topology/ContinuousMap/StoneWeierstrass.lean +/- theorem ContinuousMap.algHom_ext_map_X Modified Mathlib/Topology/DenseEmbedding.lean Modified Mathlib/Topology/EMetricSpace/Basic.lean +/- theorem EMetric.isUniformEmbedding_iff' Modified Mathlib/Topology/List.lean +/- theorem List.continuous_prod +/- theorem List.tendsto_prod Modified Mathlib/Topology/MetricSpace/Basic.lean +/- theorem Metric.isUniformEmbedding_iff' +/- theorem Metric.secondCountable_of_countable_discretization Modified Mathlib/Topology/PartitionOfUnity.lean +/- theorem PartitionOfUnity.sum_finsupport_smul_eq_finsum Modified Mathlib/Topology/Separation/Basic.lean - theorem ConnectedSpace.infinite + theorem PreconnectedSpace.infinite Modified Mathlib/Topology/Separation/CompletelyRegular.lean + theorem injective_stoneCechUnit_of_completelyRegularSpace - theorem injective_stoneCechUnit_of_t35Space + theorem separatesPoints_continuous_of_completelyRegularSpace + theorem separatesPoints_continuous_of_completelyRegularSpace_Icc - theorem separatesPoints_continuous_of_t35Space - theorem separatesPoints_continuous_of_t35Space_Icc Modified Mathlib/Topology/UniformSpace/Cauchy.lean +/- theorem CauchySeq.eventually_eventually 2025-04-09 00:36:58 8ef8fde feat: generalize Mathlib.NumberTheory (#23187) This is one of a series of PRs that generalizes type classes across Mathlib. These are generated using a new linter that tries to re-elaborate theorem definitions with more general type classes to see if it succeeds. It will accept the generalization if deleting the entire type class causes the theorem to fail to compile, and the old type class can not simply be re-synthesized with the new declaration. Otherwise, the generalization is rejected as the type class is not being generalized, but can simply be replaced by implicit type class synthesis or an implicit type class in a variable block being pulled in. The linter currently output debug statements indicating source file positions where type classes should be generalized, and a script then makes those edits. This file contains a subset of those generalizations. The linter and the script performing re-writes is available in commit 5e2b7040be0f73821c1dcb360ffecd61235d87af. Also see discussion on Zulip here: https://leanprover.zulipchat.com/#narrow/channel/270676-lean4/topic/Elab.20to.20generalize.20type.20classes.20for.20theorems/near/498862988 https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Elab.20to.20generalize.20type.20classes.20for.20theorems/near/501288855 ESTIMATED CHANGES Modified Mathlib/NumberTheory/ArithmeticFunction.lean +/- theorem ArithmeticFunction.IsMultiplicative.eq_zero_of_squarefree_of_dvd_eq_zero +/- theorem ArithmeticFunction.IsMultiplicative.map_div_of_coprime +/- theorem ArithmeticFunction.IsMultiplicative.map_prod_of_prime +/- theorem ArithmeticFunction.IsMultiplicative.map_prod_of_subset_primeFactors +/- theorem ArithmeticFunction.coe_zeta_smul_apply +/- theorem ArithmeticFunction.pmul_assoc +/- theorem ArithmeticFunction.sum_eq_iff_sum_mul_moebius_eq +/- theorem ArithmeticFunction.sum_eq_iff_sum_mul_moebius_eq_on Modified Mathlib/NumberTheory/EulerProduct/Basic.lean +/- theorem Summable.norm_lt_one Modified Mathlib/NumberTheory/FLT/Basic.lean - theorem fermatLastTheoremWith'_of_field + theorem fermatLastTheoremWith'_of_semifield Modified Mathlib/NumberTheory/LSeries/Dirichlet.lean +/- theorem ArithmeticFunction.const_one_eq_zeta +/- theorem DirichletCharacter.modOne_eq_one Modified Mathlib/NumberTheory/LegendreSymbol/JacobiSymbol.lean +/- theorem jacobiSym.value_at Modified Mathlib/NumberTheory/ModularForms/SlashActions.lean +/- theorem SlashAction.smul_slash_of_tower Modified Mathlib/NumberTheory/MulChar/Basic.lean +/- theorem MulChar.inv_apply' +/- theorem MulChar.inv_apply_eq_inv' +/- theorem MulChar.map_ringChar +/- theorem MulChar.ringHomComp_inv Modified Mathlib/NumberTheory/Ostrowski.lean Modified Mathlib/NumberTheory/SmoothNumbers.lean +/- theorem Nat.factoredNumbers.map_prime_pow_mul +/- theorem Nat.map_prime_pow_mul Modified Mathlib/NumberTheory/WellApproximable.lean Modified Mathlib/NumberTheory/Zsqrtd/Basic.lean +/- theorem Zsqrtd.hom_ext Modified Mathlib/NumberTheory/Zsqrtd/GaussianInt.lean +/- theorem GaussianInt.natCast_natAbs_norm 2025-04-08 23:50:43 ca643a5 chore(RingTheory/TwoSidedIdeal/Operations): Add span_induction (#23850) splitted from #23320 following @eric-wieser advice ESTIMATED CHANGES Modified Mathlib/RingTheory/TwoSidedIdeal/Operations.lean + theorem TwoSidedIdeal.span_induction 2025-04-08 23:50:42 80dc311 chore: clean up more Qq usage (#23846) Either all these annotations were needed in an earlier version, or they were left from debugging and have been cargo-culted since. In most cases this removes a type ascription with no replacement. When this doesn't work, replacing `x` with `q($x)` usually does, as this allows Qq to participate in unification. ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Field/Basic.lean Modified Mathlib/Algebra/Order/Field/Power.lean Modified Mathlib/Algebra/Order/Floor/Defs.lean Modified Mathlib/Algebra/Order/Module/Algebra.lean Modified Mathlib/Tactic/FieldSimp.lean Modified Mathlib/Tactic/ITauto.lean Modified Mathlib/Tactic/IntervalCases.lean Modified Mathlib/Tactic/NormNum/Basic.lean Modified Mathlib/Tactic/NormNum/Core.lean Modified Mathlib/Tactic/NormNum/Ineq.lean Modified Mathlib/Tactic/NormNum/Inv.lean Modified Mathlib/Tactic/NormNum/Result.lean Modified Mathlib/Tactic/Polyrith.lean Modified Mathlib/Tactic/Positivity/Basic.lean +/- def Mathlib.Meta.Positivity.evalAbs Modified Mathlib/Tactic/Positivity/Core.lean Modified Mathlib/Tactic/Ring/RingNF.lean Modified Mathlib/Tactic/Tauto.lean 2025-04-08 23:50:41 419f0fe doc(Computability): expand explanations (#23820) I have found some parts of the Computability development hard to follow without referencing the linked paper. This is my attempt at expanding the documentation to make the development easier to follow on its own. ESTIMATED CHANGES Modified Mathlib/Computability/DFA.lean Modified Mathlib/Computability/Partrec.lean Modified Mathlib/Computability/Primrec.lean 2025-04-08 23:50:40 f7e5e9a feat: the equiv between the tangent space of the product and the product of the tangent spaces is smooth (#22786) ESTIMATED CHANGES Modified Mathlib/Geometry/Manifold/ContMDiffMFDeriv.lean + theorem contMDiff_equivTangentBundleProd + theorem contMDiff_equivTangentBundleProd_symm + def equivTangentBundleProd + theorem equivTangentBundleProd_eq_tangentMap_prod_tangentMap 2025-04-08 23:05:15 dd8b737 chore: deprecate `leftMul` and `rightMul` (#23847) These are used only once each, and have shorter and less ambiguous spellings. These originated in https://github.com/leanprover-community/mathlib3/pull/3529. Zulip thread: [#mathlib4 > mulLeft vs leftMul vs mul_left @ 💬](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/mulLeft.20vs.20leftMul.20vs.20mul_left/near/469231838) ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Defs.lean Modified Mathlib/Geometry/Manifold/Algebra/Monoid.lean 2025-04-08 22:40:52 e24aa95 chore(Order/Circular): golf (#23447) ESTIMATED CHANGES Modified Mathlib/Order/Circular.lean Modified scripts/noshake.json 2025-04-08 22:12:15 6e06d85 feat: generalize Mathlib.Algebra.Algebra + Module (#23190) This is one of a series of PRs that generalizes type classes across Mathlib. These are generated using a new linter that tries to re-elaborate theorem definitions with more general type classes to see if it succeeds. It will accept the generalization if deleting the entire type class causes the theorem to fail to compile, and the old type class can not simply be re-synthesized with the new declaration. Otherwise, the generalization is rejected as the type class is not being generalized, but can simply be replaced by implicit type class synthesis or an implicit type class in a variable block being pulled in. The linter currently output debug statements indicating source file positions where type classes should be generalized, and a script then makes those edits. This file contains a subset of those generalizations. The linter and the script performing re-writes is available in commit 5e2b7040be0f73821c1dcb360ffecd61235d87af. Also see discussion on Zulip here: https://leanprover.zulipchat.com/#narrow/channel/270676-lean4/topic/Elab.20to.20generalize.20type.20classes.20for.20theorems/near/498862988 https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Elab.20to.20generalize.20type.20classes.20for.20theorems/near/501288855 ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/Basic.lean +/- theorem Module.ker_algebraMap_end +/- theorem NoZeroSMulDivisors.trans_faithfulSMul Modified Mathlib/Algebra/Algebra/NonUnitalSubalgebra.lean +/- theorem NonUnitalSubalgebra.center_toNonUnitalSubring +/- theorem NonUnitalSubalgebra.coe_smul Modified Mathlib/Algebra/Algebra/Operations.lean +/- theorem Submodule.mem_smul_iff_inv_mul_mem Modified Mathlib/Algebra/Algebra/Subalgebra/Basic.lean +/- theorem Subalgebra.coe_smul Modified Mathlib/Algebra/Algebra/Unitization.lean +/- theorem Unitization.inl_mul +/- theorem Unitization.inl_mul_inl +/- theorem Unitization.inl_mul_inr +/- theorem Unitization.inl_neg +/- theorem Unitization.inl_smul +/- theorem Unitization.inr_mul +/- theorem Unitization.inr_mul_inl +/- theorem Unitization.inr_neg +/- theorem Unitization.inr_smul Modified Mathlib/Algebra/Module/BigOperators.lean +/- theorem Finset.cast_card Modified Mathlib/Algebra/Module/Defs.lean Modified Mathlib/Algebra/Module/LinearMap/Defs.lean +/- theorem LinearMap.restrictScalars_neg +/- theorem LinearMap.restrictScalars_trans Modified Mathlib/Algebra/Module/LocalizedModule/Basic.lean +/- theorem IsLocalizedModule.mk'_mul_mk'_of_map_mul +/- theorem IsLocalizedModule.mk'_neg +/- theorem IsLocalizedModule.mk'_sub +/- theorem IsLocalizedModule.mk'_sub_mk' +/- theorem IsLocalizedModule.mkOfAlgebra +/- theorem IsLocalizedModule.of_exists_mul_mem Modified Mathlib/Algebra/Module/Submodule/Pointwise.lean +/- theorem Submodule.smul_le_self_of_tower Modified Mathlib/Algebra/Module/Submodule/Range.lean +/- theorem LinearMap.submoduleImage_apply_of_le Modified Mathlib/Algebra/Module/ZLattice/Basic.lean +/- theorem ZSpan.map 2025-04-08 22:12:14 69c3e67 chore(SimpleGraph): remove redundant import and improve style for `StronglyRegular.lean` (#22216) ESTIMATED CHANGES Modified Mathlib/Combinatorics/SimpleGraph/StronglyRegular.lean 2025-04-08 21:08:04 2a55f2f feat: generalize half of Mathlib.RingTheory (#23173) This is one of a series of PRs that generalizes type classes across Mathlib. These are generated using a new linter that tries to re-elaborate theorem definitions with more general type classes to see if it succeeds. It will accept the generalization if deleting the entire type class causes the theorem to fail to compile, and the old type class can not simply be re-synthesized with the new declaration. Otherwise, the generalization is rejected as the type class is not being generalized, but can simply be replaced by implicit type class synthesis or an implicit type class in a variable block being pulled in. The linter currently output debug statements indicating source file positions where type classes should be generalized, and a script then makes those edits. This file contains a subset of those generalizations. The linter and the script performing re-writes is available in commit 5e2b7040be0f73821c1dcb360ffecd61235d87af. Also see discussion on Zulip here: https://leanprover.zulipchat.com/#narrow/channel/270676-lean4/topic/Elab.20to.20generalize.20type.20classes.20for.20theorems/near/498862988 https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Elab.20to.20generalize.20type.20classes.20for.20theorems/near/501288855 ESTIMATED CHANGES Modified Mathlib/RingTheory/Algebraic/Basic.lean +/- theorem Algebra.IsAlgebraic.algHom_bijective₂ +/- theorem isAlgebraic_of_mem_rootSet Modified Mathlib/RingTheory/DiscreteValuationRing/Basic.lean +/- theorem IsDiscreteValuationRing.irreducible_of_span_eq_maximalIdeal Modified Mathlib/RingTheory/FiniteType.lean +/- theorem AddMonoidAlgebra.finiteType_iff_group_fg Modified Mathlib/RingTheory/Finiteness/Basic.lean +/- theorem Module.Finite.of_equiv_equiv +/- theorem Module.Finite.of_restrictScalars_finite +/- theorem Submodule.FG.of_restrictScalars Modified Mathlib/RingTheory/Ideal/Basis.lean +/- theorem Basis.mem_ideal_iff' +/- theorem Basis.mem_ideal_iff Modified Mathlib/RingTheory/Ideal/Maps.lean +/- theorem AlgHom.ker_coe_equiv Modified Mathlib/RingTheory/Ideal/Nonunits.lean +/- theorem zero_mem_nonunits Modified Mathlib/RingTheory/Ideal/Norm/RelNorm.lean +/- theorem Ideal.map_relNorm Modified Mathlib/RingTheory/Ideal/Operations.lean +/- theorem Ideal.multiset_prod_eq_bot Modified Mathlib/RingTheory/Ideal/Span.lean +/- theorem Ideal.span_singleton_eq_span_singleton Modified Mathlib/RingTheory/MvPolynomial/MonomialOrder.lean +/- theorem MonomialOrder.degree_mul +/- theorem MonomialOrder.degree_prod +/- theorem MonomialOrder.leadingCoeff_mul Modified Mathlib/RingTheory/Nilpotent/Defs.lean +/- theorem isRadical_iff_pow_one_lt Modified Mathlib/RingTheory/Polynomial/Basic.lean +/- theorem MvPolynomial.map_mvPolynomial_eq_eval₂ Modified Mathlib/RingTheory/Polynomial/Content.lean +/- theorem Polynomial.eval₂_primPart_eq_zero Modified Mathlib/RingTheory/Polynomial/Cyclotomic/Eval.lean Modified Mathlib/RingTheory/Polynomial/Eisenstein/Basic.lean +/- theorem Polynomial.IsWeaklyEisensteinAt.map Modified Mathlib/RingTheory/Polynomial/Ideal.lean +/- theorem Algebra.mem_ideal_map_adjoin Modified Mathlib/RingTheory/PrincipalIdealDomain.lean +/- theorem PrincipalIdealRing.isMaximal_of_irreducible Modified Mathlib/RingTheory/RingHom/Finite.lean +/- theorem Module.Finite_of_isLocalization Modified Mathlib/RingTheory/RootsOfUnity/Basic.lean +/- theorem map_rootsOfUnity_eq_pow_self Modified Mathlib/RingTheory/RootsOfUnity/PrimitiveRoots.lean +/- theorem IsCyclic.exists_apply_ne_one Modified Mathlib/RingTheory/UniqueFactorizationDomain/Basic.lean +/- theorem prime_factors_irreducible Modified Mathlib/RingTheory/Valuation/Basic.lean +/- theorem Valuation.isEquiv_iff_val_lt_val Modified Mathlib/RingTheory/Valuation/ValuationRing.lean +/- theorem Function.Surjective.valuationRing +/- theorem PreValuationRing.iff_dvd_total +/- theorem ValuationRing.cond +/- theorem ValuationRing.dvd_total +/- theorem ValuationRing.unique_irreducible 2025-04-08 20:46:58 f07b6a3 chore: split out small chunks from `MeasureTheory.Integral.Lebesgue.Basic` (#23819) Each small chunk requires one import that the rest of `MeasureTheory.Integral.Lebesgue.Basic` does not need. * `.Norm` imports `Analysis.Normed.Group.Basic` * `.MeasurePreserving` imports `Dynamics.Ergodic.MeasurePreserving` * `.Countable` imports `MeasureTheory.Measure.Count` (and takes a few more lemmas, to preserve the theme) * `Topology.IndicatorConstPointwise` is handled by moving the two declarations requiring it to the only file that uses them (`MeasureTheory.Integral.Indicator`) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/MeasureTheory/Function/AEEqFun.lean Modified Mathlib/MeasureTheory/Function/L1Space/HasFiniteIntegral.lean Modified Mathlib/MeasureTheory/Function/LpSeminorm/Basic.lean Modified Mathlib/MeasureTheory/Function/StronglyMeasurable/Lemmas.lean Modified Mathlib/MeasureTheory/Group/FundamentalDomain.lean Modified Mathlib/MeasureTheory/Integral/Indicator.lean + theorem MeasureTheory.tendsto_measure_of_ae_tendsto_indicator + theorem MeasureTheory.tendsto_measure_of_ae_tendsto_indicator_of_isFiniteMeasure Modified Mathlib/MeasureTheory/Integral/Lebesgue/Basic.lean - theorem ENNReal.count_const_le_le_of_tsum_le - theorem ENNReal.tsum_const_eq - theorem IsFiniteMeasure.lintegral_lt_top_of_bounded_to_ennreal - theorem MeasureTheory.MeasurePreserving.lintegral_comp - theorem MeasureTheory.MeasurePreserving.lintegral_comp_emb - theorem MeasureTheory.MeasurePreserving.setLIntegral_comp_emb - theorem MeasureTheory.MeasurePreserving.setLIntegral_comp_preimage - theorem MeasureTheory.MeasurePreserving.setLIntegral_comp_preimage_emb - theorem MeasureTheory.SimpleFunc.exists_lt_lintegral_simpleFunc_of_lt_lintegral - theorem MeasureTheory.exists_lt_lintegral_simpleFunc_of_lt_lintegral - theorem MeasureTheory.exists_measurable_le_forall_setLIntegral_eq - theorem MeasureTheory.exists_pos_lintegral_lt_of_sigmaFinite - theorem MeasureTheory.lintegral_const_lt_top - theorem MeasureTheory.lintegral_count' - theorem MeasureTheory.lintegral_count - theorem MeasureTheory.lintegral_countable' - theorem MeasureTheory.lintegral_countable - theorem MeasureTheory.lintegral_dirac' - theorem MeasureTheory.lintegral_dirac - theorem MeasureTheory.lintegral_enorm_of_ae_nonneg - theorem MeasureTheory.lintegral_enorm_of_nonneg - theorem MeasureTheory.lintegral_eq_const - theorem MeasureTheory.lintegral_finset - theorem MeasureTheory.lintegral_fintype - theorem MeasureTheory.lintegral_insert - theorem MeasureTheory.lintegral_le_const - theorem MeasureTheory.lintegral_le_of_forall_fin_meas_le - theorem MeasureTheory.lintegral_le_of_forall_fin_meas_trim_le - theorem MeasureTheory.lintegral_ofReal_le_lintegral_enorm - theorem MeasureTheory.lintegral_singleton' - theorem MeasureTheory.lintegral_singleton - theorem MeasureTheory.lintegral_unique - theorem MeasureTheory.setLIntegral_const_lt_top - theorem MeasureTheory.setLIntegral_dirac' - theorem MeasureTheory.setLIntegral_dirac - theorem MeasureTheory.tendsto_measure_of_ae_tendsto_indicator - theorem MeasureTheory.tendsto_measure_of_ae_tendsto_indicator_of_isFiniteMeasure - theorem MeasureTheory.univ_le_of_forall_fin_meas_le - theorem NNReal.count_const_le_le_of_tsum_le Added Mathlib/MeasureTheory/Integral/Lebesgue/Countable.lean + theorem ENNReal.count_const_le_le_of_tsum_le + theorem ENNReal.tsum_const_eq + theorem IsFiniteMeasure.lintegral_lt_top_of_bounded_to_ennreal + theorem MeasureTheory.SimpleFunc.exists_lt_lintegral_simpleFunc_of_lt_lintegral + theorem MeasureTheory.exists_lt_lintegral_simpleFunc_of_lt_lintegral + theorem MeasureTheory.exists_measurable_le_forall_setLIntegral_eq + theorem MeasureTheory.exists_pos_lintegral_lt_of_sigmaFinite + theorem MeasureTheory.lintegral_const_lt_top + theorem MeasureTheory.lintegral_count' + theorem MeasureTheory.lintegral_count + theorem MeasureTheory.lintegral_countable' + theorem MeasureTheory.lintegral_countable + theorem MeasureTheory.lintegral_dirac' + theorem MeasureTheory.lintegral_dirac + theorem MeasureTheory.lintegral_eq_const + theorem MeasureTheory.lintegral_finset + theorem MeasureTheory.lintegral_fintype + theorem MeasureTheory.lintegral_insert + theorem MeasureTheory.lintegral_le_const + theorem MeasureTheory.lintegral_le_of_forall_fin_meas_le + theorem MeasureTheory.lintegral_le_of_forall_fin_meas_trim_le + theorem MeasureTheory.lintegral_singleton' + theorem MeasureTheory.lintegral_singleton + theorem MeasureTheory.lintegral_unique + theorem MeasureTheory.setLIntegral_const_lt_top + theorem MeasureTheory.setLIntegral_dirac' + theorem MeasureTheory.setLIntegral_dirac + theorem MeasureTheory.univ_le_of_forall_fin_meas_le + theorem NNReal.count_const_le_le_of_tsum_le Added Mathlib/MeasureTheory/Integral/Lebesgue/MeasurePreserving.lean + theorem MeasureTheory.MeasurePreserving.lintegral_comp + theorem MeasureTheory.MeasurePreserving.lintegral_comp_emb + theorem MeasureTheory.MeasurePreserving.setLIntegral_comp_emb + theorem MeasureTheory.MeasurePreserving.setLIntegral_comp_preimage + theorem MeasureTheory.MeasurePreserving.setLIntegral_comp_preimage_emb Added Mathlib/MeasureTheory/Integral/Lebesgue/Norm.lean + theorem MeasureTheory.lintegral_enorm_of_ae_nonneg + theorem MeasureTheory.lintegral_enorm_of_nonneg + theorem MeasureTheory.lintegral_ofReal_le_lintegral_enorm Modified Mathlib/MeasureTheory/Measure/GiryMonad.lean Modified Mathlib/MeasureTheory/Measure/Prod.lean Modified Mathlib/MeasureTheory/Measure/WithDensity.lean 2025-04-08 20:46:57 d527147 feat(Analysis/InnerProductSpace): Add `HilbertSpace` variable alias (#23817) See [Zulip discussion](https://leanprover.zulipchat.com/#narrow/channel/217875-Is-there-code-for-X.3F/topic/Is.20there.20code.20for.20Hilbert.20Spaces.3F/with/510364826). ESTIMATED CHANGES Modified Mathlib/Analysis/InnerProductSpace/Defs.lean + structure HilbertSpace 2025-04-08 20:01:35 f63a9a6 chore: tidy various files (#23821) ESTIMATED CHANGES Modified Archive/Imo/Imo1998Q2.lean Modified Mathlib/Algebra/BigOperators/Group/Finset/Basic.lean Modified Mathlib/Algebra/Category/Ring/Limits.lean Modified Mathlib/Algebra/Exact.lean Modified Mathlib/Algebra/Group/ForwardDiff.lean +/- def fwdDiff_aux.fwdDiffₗ Modified Mathlib/Algebra/Group/Idempotent.lean +/- theorem IsIdempotentElem.iff_eq_one_of_isUnit Modified Mathlib/Algebra/Module/SnakeLemma.lean Modified Mathlib/Algebra/Order/Floor/Defs.lean Modified Mathlib/Algebra/Polynomial/CoeffList.lean Modified Mathlib/Analysis/CStarAlgebra/CStarMatrix.lean Modified Mathlib/Analysis/CStarAlgebra/PositiveLinearMap.lean Modified Mathlib/Analysis/Convex/EGauge.lean Modified Mathlib/Analysis/SpecialFunctions/Complex/CircleMap.lean +/- theorem periodic_circleMap Modified Mathlib/CategoryTheory/MorphismProperty/WeakFactorizationSystem.lean Modified Mathlib/Combinatorics/Nullstellensatz.lean Modified Mathlib/Data/Finsupp/Defs.lean Modified Mathlib/Data/Finsupp/Single.lean Modified Mathlib/Data/Int/WithZero.lean Modified Mathlib/Data/Matroid/Minor/Basic.lean Modified Mathlib/Data/SetLike/Basic.lean Modified Mathlib/FieldTheory/JacobsonNoether.lean Modified Mathlib/Geometry/Euclidean/Sphere/Tangent.lean Modified Mathlib/GroupTheory/FreeGroup/Basic.lean Modified Mathlib/NumberTheory/LSeries/Linearity.lean Modified Mathlib/NumberTheory/LSeries/PrimesInAP.lean Modified Mathlib/NumberTheory/Padics/RingHoms.lean Modified Mathlib/Order/IsNormal.lean Modified Mathlib/Order/KrullDimension.lean Modified Mathlib/RingTheory/AlgebraicIndependent/Basic.lean Modified Mathlib/RingTheory/Length.lean Modified Mathlib/RingTheory/LocalProperties/Projective.lean Modified Mathlib/RingTheory/MvPowerSeries/Basic.lean Modified Mathlib/RingTheory/Nilpotent/Exp.lean Modified Mathlib/RingTheory/PolynomialLaw/Basic.lean Modified Mathlib/RingTheory/Spectrum/Prime/Topology.lean Modified Mathlib/RingTheory/Valuation/LocalSubring.lean Modified Mathlib/Topology/Compactness/DeltaGeneratedSpace.lean Modified Mathlib/Topology/Constructible.lean 2025-04-08 20:01:34 2d56903 feat: generalize Mathlib.Data (#23146) This is one of a series of PRs that generalizes type classes across Mathlib. These are generated using a new linter that tries to re-elaborate theorem definitions with more general type classes to see if it succeeds. It will accept the generalization if deleting the entire type class causes the theorem to fail to compile, and the old type class can not simply be re-synthesized with the new declaration. Otherwise, the generalization is rejected as the type class is not being generalized, but can simply be replaced by implicit type class synthesis or an implicit type class in a variable block being pulled in. The linter currently output debug statements indicating source file positions where type classes should be generalized, and a script then makes those edits. This file contains a subset of those generalizations. The linter and the script performing re-writes is available in commit 5e2b7040be0f73821c1dcb360ffecd61235d87af. Also see discussions on Zulip here: * https://leanprover.zulipchat.com/#narrow/channel/270676-lean4/topic/Elab.20to.20generalize.20type.20classes.20for.20theorems/near/498862988 * https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Elab.20to.20generalize.20type.20classes.20for.20theorems/near/501288855 ESTIMATED CHANGES Modified Mathlib/Data/Complex/Module.lean +/- theorem star_mul_self_add_self_mul_star Modified Mathlib/Data/Finset/NoncommProd.lean Modified Mathlib/Data/Finset/Pairwise.lean +/- theorem List.pairwiseDisjoint_iff_coe_toFinset_pairwise_disjoint +/- theorem List.pairwise_disjoint_of_coe_toFinset_pairwiseDisjoint Modified Mathlib/Data/Finset/SMulAntidiagonal.lean +/- theorem Set.IsPWO.smul +/- theorem Set.IsWF.min_smul +/- theorem Set.IsWF.smul Modified Mathlib/Data/Holor.lean +/- theorem Holor.cprankMax_1 +/- theorem Holor.cprankMax_add +/- theorem Holor.cprankMax_mul +/- theorem Holor.cprankMax_nil +/- theorem Holor.cprankMax_sum +/- theorem Holor.cprankMax_upper_bound +/- theorem Holor.mul_scalar_mul +/- theorem Holor.slice_unitVec_mul +/- theorem Holor.sum_unitVec_mul_slice Modified Mathlib/Data/Int/Cast/Lemmas.lean +/- theorem Int.cast_ite Modified Mathlib/Data/Matrix/Block.lean +/- theorem Matrix.blockDiagonal_smul Modified Mathlib/Data/Matrix/Mul.lean +/- theorem Matrix.mulVec_smul +/- theorem Matrix.vecMul_smul Modified Mathlib/Data/Nat/Cast/Basic.lean +/- theorem NeZero.nat_of_neZero +/- theorem ext_nat'' Modified Mathlib/Data/Nat/Cast/Defs.lean +/- theorem Nat.cast_four +/- theorem Nat.cast_three +/- theorem Nat.cast_two Modified Mathlib/Data/Set/MulAntidiagonal.lean +/- theorem Set.swap_mem_mulAntidiagonal +/- theorem Set.swap_mem_mulAntidiagonal_aux Modified Mathlib/Data/ZMod/Basic.lean +/- theorem RingHom.ext_zmod +/- theorem ZMod.ringHom_map_cast +/- theorem ZMod.ringHom_rightInverse +/- theorem ZMod.ringHom_surjective 2025-04-08 19:26:46 68c6e4e chore(WithOne): review (#23837) - Drop a duplicate `Repr` instance for `WithZero`. - Rename instances from `myclass` to `instMyclass`. - Use better names for the recursor arguments. ESTIMATED CHANGES Modified Mathlib/Algebra/Group/WithOne/Basic.lean Modified Mathlib/Algebra/Group/WithOne/Defs.lean +/- def WithOne.recOneCoe +/- theorem WithOne.recOneCoe_coe +/- theorem WithOne.recOneCoe_one + def WithZero.recZeroCoe Modified Mathlib/Algebra/GroupWithZero/WithZero.lean Modified Mathlib/Algebra/Order/Archimedean/Basic.lean Modified Mathlib/Algebra/Order/GroupWithZero/Canonical.lean Modified Mathlib/Algebra/Ring/WithZero.lean 2025-04-08 18:12:05 703f009 feat: essential image of a sliced functor (#23836) From Toric ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Comma/Over/Basic.lean + theorem CategoryTheory.Functor.essImage.of_overPost + theorem CategoryTheory.Functor.essImage.of_underPost + theorem CategoryTheory.Functor.essImage_overPost + theorem CategoryTheory.Functor.essImage_underPost 2025-04-08 18:04:56 e1bd3f3 chore(CategoryTheory/Endofunctor/Algebra): `simps` and `erw` (#23775) Add `simps` attribute to some constructions so that automation can fill in the proofs. This removes the `erw` in the now-automated proofs. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Endofunctor/Algebra.lean 2025-04-08 17:37:05 afe5ac9 feat: pre-composing by an essentially surjective functor doesn't change the essential image (#23840) From Toric ESTIMATED CHANGES Modified Mathlib/CategoryTheory/EssentialImage.lean + theorem CategoryTheory.Functor.essImage_comp_apply_of_essSurj + theorem CategoryTheory.Functor.essImage_comp_of_essSurj 2025-04-08 16:19:58 89ec70c chore(Data/Finset): deprecate Finset.fin (#23830) ESTIMATED CHANGES Modified Mathlib/Data/Finset/Fin.lean +/- theorem Finset.fin_map +/- theorem Finset.fin_mono +/- theorem Finset.mem_fin Modified Mathlib/Order/Interval/Finset/Fin.lean 2025-04-08 16:19:56 49351b9 feat(Data/Matroid/Minor): contraction API (#23557) We give API for the interaction of matroid contraction with circuits, loops/coloops, closure and finiteness. ESTIMATED CHANGES Modified Mathlib/Data/Matroid/Loop.lean + theorem Matroid.eq_loopyOn_iff_loops_eq + theorem Matroid.isColoop_iff_mem_coloops - theorem Matroid.isColoop_iff_mem_loops Modified Mathlib/Data/Matroid/Minor/Basic.lean + theorem Matroid.IsBasis.diff_subset_loops_contract + theorem Matroid.IsCircuit.contractElem_isCircuit + theorem Matroid.IsCircuit.contract_dep + theorem Matroid.IsCircuit.contract_dep_of_not_subset + theorem Matroid.IsCircuit.contract_diff_isCircuit + theorem Matroid.IsCircuit.contract_isCircuit + theorem Matroid.IsCircuit.exists_subset_isCircuit_of_contract + theorem Matroid.IsCocircuit.delete_diff_isCocircuit + theorem Matroid.IsCocircuit.delete_isCocircuit + theorem Matroid.IsCocircuit.of_contract + theorem Matroid.IsNonloop.of_contract + theorem Matroid.Spanning.contract + theorem Matroid.Spanning.contract_eq_loopyOn + theorem Matroid.contract_closure_eq + theorem Matroid.contract_closure_eq_contract_delete + theorem Matroid.contract_coloops_eq + theorem Matroid.contract_eq_delete_of_subset_coloops + theorem Matroid.contract_eq_delete_of_subset_loops + theorem Matroid.contract_isColoop_iff + theorem Matroid.contract_isLoop_iff_mem_closure + theorem Matroid.contract_isNonloop_iff + theorem Matroid.contract_loops_eq + theorem Matroid.contract_spanning_iff' + theorem Matroid.contract_spanning_iff 2025-04-08 16:10:27 0050e79 feat: the essential image of a finite product-preserving functor is cartesian-monoidal (#23562) From Toric ESTIMATED CHANGES Modified Mathlib/CategoryTheory/ChosenFiniteProducts.lean - theorem CategoryTheory.ChosenFiniteProducts.associator_inv_fst + theorem CategoryTheory.ChosenFiniteProducts.associator_inv_fst_fst + theorem CategoryTheory.Functor.EssImageSubcategory.NatTrans.monoidal_of_preservesFiniteProducts + theorem CategoryTheory.Functor.EssImageSubcategory.associator_hom_def + theorem CategoryTheory.Functor.EssImageSubcategory.associator_inv_def + theorem CategoryTheory.Functor.EssImageSubcategory.fst_def + theorem CategoryTheory.Functor.EssImageSubcategory.lift_def + theorem CategoryTheory.Functor.EssImageSubcategory.snd_def + theorem CategoryTheory.Functor.EssImageSubcategory.tensor_obj + theorem CategoryTheory.Functor.EssImageSubcategory.toUnit_def + theorem CategoryTheory.Functor.EssImageSubcategory.whiskerLeft_def + theorem CategoryTheory.Functor.EssImageSubcategory.whiskerRight_def - theorem CategoryTheory.NatTrans.monoidal_of_preservesFiniteProducts 2025-04-08 15:48:43 e1fdf0d feat(Topology/Algebra/InfiniteSum): lemmas about tprods in a GroupWithZero (#23803) Show that a sequence with a zero term is always multipliable, and a congruence lemma for `Multipliable` for eventually-equal sequences. (We have [Multipliable.congr_cofinite](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Topology/Algebra/InfiniteSum/Group.html#Multipliable.congr_cofinite) but that requires the target to be a group under multiplication, which is never satisfied for the underlying multiplicative monoid of a ring; so this new lemma is useful for manipulating products valued in rings / fields.) ESTIMATED CHANGES Modified Mathlib/Topology/Algebra/InfiniteSum/Basic.lean + theorem hasProd_zero_of_exists_eq_zero + theorem multipliable_of_exists_eq_zero + theorem tprod_of_exists_eq_zero Modified Mathlib/Topology/Algebra/InfiniteSum/Group.lean + theorem HasProd.congr_cofinite₀ + theorem Multipliable.congr_cofinite₀ + theorem tsum_congr_cofinite₀ 2025-04-08 14:38:59 6549a57 chore(Interval/Finset/Fin): reorder (#23829) Move all `card` lemmas together. Also rename `map_subtype_embedding_uIcc` to `map_valEmbedding_uIcc`. ESTIMATED CHANGES Modified Mathlib/Order/Interval/Finset/Fin.lean - theorem Fin.map_subtype_embedding_uIcc + theorem Fin.map_valEmbedding_uIcc 2025-04-08 13:50:59 3724074 fix: delete CategoryTheory.pi' (#23812) `CategoryTheory.pi'` looks a bit like a hack. It came from the mathlib3 port, and the justification of its existence in its docstring seems to refer to a mathlib3 declaration, which is presumably now [hasLimit_of_hasLimit_comp_eval](https://leanprover-community.github.io/mathlib4_docs/Mathlib/CategoryTheory/Limits/Pi.html#CategoryTheory.pi.hasLimit_of_hasLimit_comp_eval). In Lean 4 this latter declaration compiles just fine if `pi'` is deleted (with the same number of heartbeats). Furthermore, on current mathlib master this code causes a stack overflow: ``` import Mathlib.CategoryTheory.Endomorphism #check CategoryTheory.End CategoryTheory.Functor.id ``` (which people might want to independently investigate) but deleting `CategoryTheory.pi'` fixes this problem (for reasons I don't understand). ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Pi/Basic.lean 2025-04-08 13:38:06 4f399da feat(GiryMonad): use `AEMeasurable` (#23754) Also deduce `lintegral_prod` from `lintegral_bind`. ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Category/MeasCat.lean Modified Mathlib/MeasureTheory/Integral/Prod.lean Modified Mathlib/MeasureTheory/Measure/Dirac.lean Modified Mathlib/MeasureTheory/Measure/GiryMonad.lean + theorem AEMeasurable.ae_of_bind + theorem AEMeasurable.ae_of_join + theorem MeasureTheory.Measure.ae_ae_of_ae_bind + theorem MeasureTheory.Measure.ae_ae_of_ae_join + theorem MeasureTheory.Measure.aemeasurable_bind + theorem MeasureTheory.Measure.aemeasurable_lintegral + theorem MeasureTheory.Measure.bind_congr_right +/- theorem MeasureTheory.Measure.bind_zero_right' +/- theorem MeasureTheory.Measure.bind_zero_right +/- theorem MeasureTheory.Measure.join_dirac + theorem MeasureTheory.Measure.join_smul + theorem MeasureTheory.Measure.le_ae_join +/- theorem MeasureTheory.Measure.lintegral_bind +/- theorem MeasureTheory.Measure.lintegral_join Modified Mathlib/MeasureTheory/Measure/Prod.lean +/- theorem MeasureTheory.lintegral_prod_of_measurable Modified Mathlib/Probability/Kernel/Composition/Comp.lean Modified Mathlib/Probability/Kernel/Composition/CompNotation.lean Modified Mathlib/Probability/Kernel/Composition/Lemmas.lean Modified Mathlib/Probability/Kernel/Composition/MeasureComp.lean Modified Mathlib/Probability/Kernel/Defs.lean + theorem ProbabilityTheory.Kernel.aemeasurable Modified Mathlib/Probability/Kernel/Invariance.lean Modified Mathlib/Probability/Kernel/Proper.lean 2025-04-08 12:42:10 04bc065 feat(Order/Interval): add strict inclusion lemmas for unbounded intervals (#23798) This PR adds several lemmas relating the strict containment of one-sided intervals to the strict inequality of their boundary. ESTIMATED CHANGES Modified Mathlib/Order/Interval/Finset/Basic.lean + theorem Finset.Ici_ssubset_Ici + theorem Finset.Iic_ssubset_Iic + theorem Finset.Iio_ssubset_Iio + theorem Finset.Ioi_ssubset_Ioi Modified Mathlib/Order/Interval/Set/Basic.lean + theorem Set.Ici_ssubset_Ici + theorem Set.Iic_ssubset_Iic + theorem Set.Iio_ssubset_Iio + theorem Set.Ioi_ssubset_Ioi Modified Mathlib/Order/Interval/Set/LinearOrder.lean + theorem Set.Iio_ssubset_Iio_iff + theorem Set.Ioi_ssubset_Ioi_iff 2025-04-08 12:11:59 12069db chore(LinearAlgebra): process misc porting notes (#23795) ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/Basis/Defs.lean Modified Mathlib/LinearAlgebra/FiniteDimensional/Basic.lean Modified Mathlib/LinearAlgebra/Finsupp/Span.lean Modified Mathlib/LinearAlgebra/LinearIndependent/Basic.lean Modified Mathlib/LinearAlgebra/Span/Defs.lean - theorem Submodule.IsPrincipal.principal Modified Mathlib/RingTheory/FractionalIdeal/Operations.lean Modified Mathlib/RingTheory/Ideal/IsPrincipalPowQuotient.lean Modified Mathlib/RingTheory/SimpleModule/Basic.lean 2025-04-08 11:56:50 ddfe6b0 chore: split `Data.Num.Lemmas` (#23655) I have taken out a large block of statements (and a few tactics) that use `ZNum` or rely on statements that use `ZNum` and put them into `Data.Num.ZNum`. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Data/Num/Lemmas.lean - theorem Num.cast_ofZNum - theorem Num.cast_sub' - theorem Num.div_to_nat - theorem Num.dvd_iff_mod_eq_zero - theorem Num.gcd_to_nat - theorem Num.gcd_to_nat_aux - theorem Num.mem_ofZNum' - theorem Num.mod_to_nat - theorem Num.ofInt'_toZNum - theorem Num.ofZNum'_toNat - theorem Num.ofZNum_toNat - theorem Num.pred_succ - theorem Num.sub_to_nat - theorem Num.succ_ofInt' +/- theorem Num.toNat_injective - theorem Num.toZNumNeg_succ - theorem Num.toZNum_succ - theorem PosNum.cast_sub' - theorem PosNum.cast_to_znum - theorem PosNum.div'_to_nat - theorem PosNum.divMod_to_nat - theorem PosNum.divMod_to_nat_aux - theorem PosNum.mod'_to_nat - theorem PosNum.to_int_eq_succ_pred - theorem PosNum.to_nat_eq_succ_pred - theorem ZNum.abs_toZNum - theorem ZNum.abs_to_nat - theorem ZNum.add_one - theorem ZNum.add_zero - theorem ZNum.bit0_of_bit0 - theorem ZNum.bit1_of_bit1 - theorem ZNum.cast_add - theorem ZNum.cast_bit0 - theorem ZNum.cast_bit1 - theorem ZNum.cast_bitm1 - theorem ZNum.cast_inj - theorem ZNum.cast_le - theorem ZNum.cast_lt - theorem ZNum.cast_mul - theorem ZNum.cast_neg - theorem ZNum.cast_one - theorem ZNum.cast_pos - theorem ZNum.cast_sub - theorem ZNum.cast_succ - theorem ZNum.cast_to_int - theorem ZNum.cast_zero' - theorem ZNum.cast_zero - theorem ZNum.cast_zneg - theorem ZNum.cmp_to_int - theorem ZNum.div_to_int - theorem ZNum.dvd_iff_mod_eq_zero - theorem ZNum.dvd_to_int - theorem ZNum.gcd_to_nat - theorem ZNum.le_to_int - theorem ZNum.lt_to_int - theorem ZNum.mod_to_int - theorem ZNum.mul_to_int - theorem ZNum.neg_of_int - theorem ZNum.neg_zero - theorem ZNum.ofInt'_eq - theorem ZNum.ofInt'_neg - theorem ZNum.of_intCast - theorem ZNum.of_natCast - theorem ZNum.of_nat_toZNum - theorem ZNum.of_nat_toZNumNeg - theorem ZNum.of_to_int' - theorem ZNum.of_to_int - theorem ZNum.to_int_inj - theorem ZNum.to_of_int - theorem ZNum.zero_add - theorem ZNum.zneg_bit1 - theorem ZNum.zneg_bitm1 - theorem ZNum.zneg_neg - theorem ZNum.zneg_pos - theorem ZNum.zneg_pred - theorem ZNum.zneg_succ - theorem ZNum.zneg_zneg Modified Mathlib/Data/Num/Prime.lean Added Mathlib/Data/Num/ZNum.lean + theorem Num.cast_ofZNum + theorem Num.cast_sub' + theorem Num.div_to_nat + theorem Num.dvd_iff_mod_eq_zero + theorem Num.gcd_to_nat + theorem Num.gcd_to_nat_aux + theorem Num.mem_ofZNum' + theorem Num.mod_to_nat + theorem Num.ofInt'_toZNum + theorem Num.ofZNum'_toNat + theorem Num.ofZNum_toNat + theorem Num.pred_succ + theorem Num.sub_to_nat + theorem Num.succ_ofInt' + theorem Num.toZNumNeg_succ + theorem Num.toZNum_succ + theorem PosNum.cast_sub' + theorem PosNum.cast_to_znum + theorem PosNum.div'_to_nat + theorem PosNum.divMod_to_nat + theorem PosNum.divMod_to_nat_aux + theorem PosNum.mod'_to_nat + theorem PosNum.to_int_eq_succ_pred + theorem PosNum.to_nat_eq_succ_pred + theorem ZNum.abs_toZNum + theorem ZNum.abs_to_nat + theorem ZNum.add_one + theorem ZNum.add_zero + theorem ZNum.bit0_of_bit0 + theorem ZNum.bit1_of_bit1 + theorem ZNum.cast_add + theorem ZNum.cast_bit0 + theorem ZNum.cast_bit1 + theorem ZNum.cast_bitm1 + theorem ZNum.cast_inj + theorem ZNum.cast_le + theorem ZNum.cast_lt + theorem ZNum.cast_mul + theorem ZNum.cast_neg + theorem ZNum.cast_one + theorem ZNum.cast_pos + theorem ZNum.cast_sub + theorem ZNum.cast_succ + theorem ZNum.cast_to_int + theorem ZNum.cast_zero' + theorem ZNum.cast_zero + theorem ZNum.cast_zneg + theorem ZNum.cmp_to_int + theorem ZNum.div_to_int + theorem ZNum.dvd_iff_mod_eq_zero + theorem ZNum.dvd_to_int + theorem ZNum.gcd_to_nat + theorem ZNum.le_to_int + theorem ZNum.lt_to_int + theorem ZNum.mod_to_int + theorem ZNum.mul_to_int + theorem ZNum.neg_of_int + theorem ZNum.neg_zero + theorem ZNum.ofInt'_eq + theorem ZNum.ofInt'_neg + theorem ZNum.of_intCast + theorem ZNum.of_natCast + theorem ZNum.of_nat_toZNum + theorem ZNum.of_nat_toZNumNeg + theorem ZNum.of_to_int' + theorem ZNum.of_to_int + theorem ZNum.to_int_inj + theorem ZNum.to_of_int + theorem ZNum.zero_add + theorem ZNum.zneg_bit1 + theorem ZNum.zneg_bitm1 + theorem ZNum.zneg_neg + theorem ZNum.zneg_pos + theorem ZNum.zneg_pred + theorem ZNum.zneg_succ + theorem ZNum.zneg_zneg 2025-04-08 10:56:03 386dd10 chore(LinearAlgebra): process misc porting notes (#23809) ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/CliffordAlgebra/Grading.lean Modified Mathlib/LinearAlgebra/DirectSum/TensorProduct.lean Modified Mathlib/LinearAlgebra/Dual/Defs.lean +/- def Submodule.dualAnnihilator Modified Mathlib/LinearAlgebra/Dual/Lemmas.lean Modified Mathlib/LinearAlgebra/ExteriorAlgebra/Basic.lean Modified Mathlib/LinearAlgebra/ExteriorAlgebra/OfAlternating.lean Modified Mathlib/LinearAlgebra/FiniteDimensional/Lemmas.lean Modified Mathlib/LinearAlgebra/Finsupp/Defs.lean Modified Mathlib/LinearAlgebra/Finsupp/Supported.lean Modified Mathlib/LinearAlgebra/Finsupp/VectorSpace.lean Modified Mathlib/LinearAlgebra/InvariantBasisNumber.lean Modified Mathlib/LinearAlgebra/Matrix/ToLin.lean Modified Mathlib/LinearAlgebra/Multilinear/Curry.lean Modified Mathlib/LinearAlgebra/Projectivization/Subspace.lean Modified Mathlib/LinearAlgebra/QuadraticForm/Basic.lean Modified Mathlib/LinearAlgebra/QuadraticForm/IsometryEquiv.lean 2025-04-08 10:56:01 74d0310 chore: move `Algebra.Order.GroupWithZero.Unbundled.*` (#23755) * `Algebra.Order.GroupWithZero.Unbundled -> Algebra.Order.GroupWithZero.Unbundled.Basic` * `Algebra.Order.GroupWithZero.Unbundled.Lemmas -> Algebra.Order.GroupWithZero.Unbundled.OrderIso` The first file will be split into `.Defs` and `.Basic` in another PR. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Order/BigOperators/GroupWithZero/List.lean Modified Mathlib/Algebra/Order/Field/Pointwise.lean Modified Mathlib/Algebra/Order/GroupWithZero/Bounds.lean Modified Mathlib/Algebra/Order/GroupWithZero/Canonical.lean Modified Mathlib/Algebra/Order/GroupWithZero/Finset.lean Modified Mathlib/Algebra/Order/GroupWithZero/Submonoid.lean Renamed Mathlib/Algebra/Order/GroupWithZero/Unbundled.lean to Mathlib/Algebra/Order/GroupWithZero/Unbundled/Basic.lean Renamed Mathlib/Algebra/Order/GroupWithZero/Unbundled/Lemmas.lean to Mathlib/Algebra/Order/GroupWithZero/Unbundled/OrderIso.lean Modified Mathlib/Algebra/Order/GroupWithZero/WithZero.lean Modified Mathlib/Algebra/Order/Nonneg/Basic.lean Modified Mathlib/Algebra/Order/Ring/Defs.lean Modified Mathlib/Algebra/Order/Ring/Unbundled/Basic.lean Modified Mathlib/Deprecated/Order.lean Modified Mathlib/Order/Filter/IsBounded.lean 2025-04-08 10:17:51 4e10c41 docs(Algebra/Module/Equiv/Defs): remove illegal space (#23814) ESTIMATED CHANGES Modified Mathlib/Algebra/Module/Equiv/Defs.lean 2025-04-08 09:40:48 3e968a5 chore(Interval/Fin): change RHS of 2 lemmas (#23792) IMHO, `I*o _ n` is more natural than `I*c _ (n - 1)` in this context. ESTIMATED CHANGES Modified Mathlib/Order/Interval/Finset/Fin.lean +/- theorem Fin.card_Ioi +/- theorem Fin.map_valEmbedding_Ici +/- theorem Fin.map_valEmbedding_Ioi 2025-04-08 08:43:58 eaac223 feat: add rewriting lemmas for integers (#23275) This PR includes some equalities and equivalences about expressions with integer numbers. They can be useful as rewriting lemmas to simplify expressions. (See #8102 for motivation) ESTIMATED CHANGES Modified Mathlib/Data/Int/Init.lean + theorem Int.div_le_div_iff_of_dvd_of_neg_of_neg + theorem Int.div_le_div_iff_of_dvd_of_neg_of_pos + theorem Int.div_le_div_iff_of_dvd_of_pos_of_neg + theorem Int.div_le_div_iff_of_dvd_of_pos_of_pos + theorem Int.div_le_iff_of_dvd_of_neg + theorem Int.div_le_iff_of_dvd_of_pos + theorem Int.div_lt_div_iff_of_dvd_of_neg_of_neg + theorem Int.div_lt_div_iff_of_dvd_of_neg_of_pos + theorem Int.div_lt_div_iff_of_dvd_of_pos + theorem Int.div_lt_div_iff_of_dvd_of_pos_of_neg + theorem Int.div_lt_iff_of_dvd_of_neg + theorem Int.div_lt_iff_of_dvd_of_pos + theorem Int.le_div_iff_of_dvd_of_neg + theorem Int.le_div_iff_of_dvd_of_pos + theorem Int.lt_div_iff_of_dvd_of_neg + theorem Int.lt_div_iff_of_dvd_of_pos 2025-04-08 07:48:08 0eaf9c0 fix: autolabel Control as t-data (#23783) Modifying files in `Control` will get the `t-data` autolabel, instead of `t-meta`. ESTIMATED CHANGES Modified scripts/autolabel.lean 2025-04-08 07:28:54 73a79c0 doc: clarify that a normal field extension is by definition algebraic. (#23800) ESTIMATED CHANGES Modified Mathlib/FieldTheory/Normal/Defs.lean 2025-04-08 07:22:24 1bb37a5 fix(undergrad.yml): reference to `orderOf` (#23805) ESTIMATED CHANGES Modified docs/undergrad.yaml 2025-04-08 07:05:33 8249256 feat: the completion of a separable measure is separable (#23796) ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Measure/SeparableMeasure.lean + theorem MeasureTheory.Measure.MeasureDense.completion Modified Mathlib/MeasureTheory/OuterMeasure/AE.lean + theorem MeasureTheory.ae_eq_set_diff + theorem MeasureTheory.ae_eq_set_symmDiff 2025-04-08 06:41:10 16ab892 chore: `MeasureTheory.Integral.Lebesgue -> ...Lebesgue.Basic` (#23807) And also squeeze imports. This is to prepare for the split of this file. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/MeasureTheory/Covering/Besicovitch.lean Modified Mathlib/MeasureTheory/Covering/Differentiation.lean Modified Mathlib/MeasureTheory/Function/AEEqFun.lean Modified Mathlib/MeasureTheory/Function/LpSeminorm/Defs.lean Modified Mathlib/MeasureTheory/Function/StronglyMeasurable/ENNReal.lean Modified Mathlib/MeasureTheory/Integral/Indicator.lean Renamed Mathlib/MeasureTheory/Integral/Lebesgue.lean to Mathlib/MeasureTheory/Integral/Lebesgue/Basic.lean Modified Mathlib/MeasureTheory/Integral/Marginal.lean Modified Mathlib/MeasureTheory/Integral/MeanInequalities.lean Modified Mathlib/MeasureTheory/Measure/GiryMonad.lean Modified Mathlib/MeasureTheory/Measure/Prod.lean Modified Mathlib/MeasureTheory/Measure/WithDensity.lean 2025-04-08 06:12:18 ddb2655 ci: automate nightly adaptation PR creation (#23793) The workflow now attempts to automatically create adaptation PRs when needed, falling back to manual instructions if the automatic creation fails. * Add automatic PR creation using create-adaptation-pr.sh --auto=yes * Set up necessary git and zulip credentials for the script * Update Zulip message to indicate when automatic creation fails ESTIMATED CHANGES Modified .github/workflows/nightly_detect_failure.yml 2025-04-08 05:07:06 2bbe764 chore: fix spelling mistakes (#23739) ESTIMATED CHANGES Modified Mathlib/Algebra/Homology/DerivedCategory/Fractions.lean Modified Mathlib/Algebra/README.md Modified Mathlib/CategoryTheory/Monoidal/CommMon_.lean Modified Mathlib/CategoryTheory/Sums/Basic.lean Modified Mathlib/Combinatorics/SimpleGraph/Copy.lean Modified Mathlib/Geometry/Manifold/VectorField/LieBracket.lean Modified Mathlib/NumberTheory/NumberField/CanonicalEmbedding/PolarCoord.lean Modified Mathlib/Probability/Kernel/IonescuTulcea/PartialTraj.lean Modified Mathlib/Probability/Kernel/IonescuTulcea/Traj.lean Modified Mathlib/RingTheory/MvPowerSeries/PiTopology.lean Modified Mathlib/RingTheory/Polynomial/Eisenstein/Distinguished.lean Modified Mathlib/RingTheory/PolynomialLaw/Basic.lean Modified Mathlib/Tactic/DeclarationNames.lean 2025-04-08 03:56:06 1dc5442 feat(Data/Int): `m/n/k=m/(n*k)` (#23228) Add a lemma that `m/n/k=m/(n*k)` under `ediv` and `fdiv` for positive divisors. ESTIMATED CHANGES Modified Mathlib/Data/Int/DivMod.lean + theorem Int.ediv_ediv_eq_ediv_mul + theorem Int.fdiv_fdiv_eq_fdiv_mul + theorem Int.mul_ediv_le_mul_ediv_assoc 2025-04-08 03:56:05 a4ad2aa feature(Analysis/LocallyConvex/Polar): Show that the polar is weak*-closed and absolutely convex (#21002) Show that the absolute polar is weak*-closed and absolutely convex. Via `closedAbsConvexHull_min` this establishes the easy direction of the Bipolar Theorem #20843 ESTIMATED CHANGES Modified Mathlib/Analysis/Convex/Basic.lean +/- theorem Convex.is_linear_preimage +/- theorem Convex.linear_preimage Modified Mathlib/Analysis/LocallyConvex/AbsConvex.lean + theorem AbsConvex.iInter₂ Modified Mathlib/Analysis/LocallyConvex/Basic.lean + theorem Balanced.mulActionHom_preimage Modified Mathlib/Analysis/Normed/Module/Dual.lean + theorem LinearMap.polar_AbsConvex 2025-04-08 03:23:51 10eec8a feat(Mathlib/RingTheory/TwoSidedIdeal/Opposite): R and opposite R has same twosidedideal structure (#23636) co-authored by : @jjaassoonn ESTIMATED CHANGES Modified Mathlib/RingTheory/SimpleRing/Basic.lean Modified Mathlib/RingTheory/TwoSidedIdeal/Basic.lean + theorem TwoSidedIdeal.coe_op + theorem TwoSidedIdeal.coe_unop + theorem TwoSidedIdeal.mem_op_iff + theorem TwoSidedIdeal.mem_unop_iff + def TwoSidedIdeal.op + def TwoSidedIdeal.opOrderIso + def TwoSidedIdeal.unop 2025-04-08 02:10:42 657df10 feat(Topology/Basic): add `Filter.HasBasis.clusterPt_iff_forall_mem_closure` (#23782) Also golf 2 lemmas ESTIMATED CHANGES Modified Mathlib/Topology/ClusterPt.lean Modified Mathlib/Topology/Neighborhoods.lean 2025-04-08 01:47:18 860ec72 chore: mergeable lean-pr-testing-NNNN bot runs script, rather than just suggesting (#23746) ESTIMATED CHANGES Modified .github/workflows/discover-lean-pr-testing.yml 2025-04-08 01:10:16 54601c4 chore: split `Topology.Basic` (#23717) * `Topology.Basic` is now focused on the `IsOpen/IsClosed` predicates. * `Topology.Closure` contains lemmas about the functions `interior/closure/frontier`. * `Topology.Neighborhoods` contains lemmas about neighborhoods in a topology. * `Topology.ClusterPt` contains lemmas about cluster and accumulation points. * `Topology.Continuous` deals with continuity and continuous functions. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/NumberTheory/Padics/Hensel.lean Modified Mathlib/Topology/Algebra/Algebra.lean Modified Mathlib/Topology/Algebra/Order/LiminfLimsup.lean Modified Mathlib/Topology/Basic.lean - theorem AccPt.clusterPt - theorem AccPt.mono - theorem ClusterPt.frequently - theorem ClusterPt.map - theorem ClusterPt.mono - theorem ClusterPt.neBot - theorem ClusterPt.of_inf_left - theorem ClusterPt.of_inf_right - theorem ClusterPt.of_le_nhds' - theorem ClusterPt.of_le_nhds - theorem ClusterPt.of_nhds_le - theorem Continuous.closure_preimage_subset - theorem Continuous.comp' - theorem Continuous.comp - theorem Continuous.congr - theorem Continuous.continuousAt - theorem Continuous.frontier_preimage_subset - theorem Continuous.iterate - theorem Continuous.range_subset_closure_image_dense - theorem Continuous.tendsto' - theorem Continuous.tendsto - theorem ContinuousAt.comp' - theorem ContinuousAt.comp_of_eq - theorem ContinuousAt.congr - theorem ContinuousAt.eventually_mem - theorem ContinuousAt.iterate - theorem ContinuousAt.preimage_mem_nhds - theorem ContinuousAt.tendsto - theorem Dense.denseRange_val - theorem Dense.exists_mem_open - theorem Dense.induction - theorem Dense.inter_nhds_nonempty - theorem Dense.inter_of_isOpen_left - theorem Dense.inter_of_isOpen_right - theorem Dense.interior_compl - theorem Dense.mono - theorem Dense.nonempty - theorem Dense.nonempty_iff - theorem Dense.open_subset_closure_inter - theorem DenseRange.closure_range - theorem DenseRange.comp - theorem DenseRange.dense_image - theorem DenseRange.dense_of_mapsTo - theorem DenseRange.mem_nhds - theorem DenseRange.nonempty - def DenseRange.some - theorem DenseRange.subset_closure_image_preimage_of_isOpen - theorem Disjoint.closure_left - theorem Disjoint.closure_right - theorem Disjoint.frontier_left - theorem Disjoint.frontier_right - theorem Equiv.continuous_symm_iff - theorem Equiv.isOpenMap_symm_iff - theorem Filter.Eventually.eventually_nhds - theorem Filter.Eventually.self_of_nhds - theorem Filter.EventuallyEq.continuousAt - theorem Filter.EventuallyEq.eq_of_nhds - theorem Filter.EventuallyEq.eventuallyEq_nhds - theorem Filter.EventuallyEq.mapClusterPt_iff - theorem Filter.EventuallyEq.tendsto - theorem Filter.EventuallyLE.eventuallyLE_nhds - theorem Filter.Frequently.mem_of_closed - theorem Filter.HasBasis.clusterPt_iff - theorem Filter.HasBasis.clusterPt_iff_frequently - theorem Filter.HasBasis.lift'_closure - theorem Filter.HasBasis.lift'_closure_eq_self - theorem Filter.HasBasis.lift'_interior - theorem Filter.HasBasis.lift'_interior_eq_self - theorem Filter.HasBasis.mapClusterPt_iff_frequently - theorem Filter.HasBasis.nhds_interior - theorem Filter.Tendsto.lift'_closure - theorem Filter.Tendsto.mapClusterPt - theorem Filter.le_lift'_closure - theorem Filter.lift'_closure_eq_bot - theorem Filter.lift'_interior_le - theorem Finset.closure_biUnion - theorem Finset.interior_iInter - theorem Function.Surjective.denseRange - theorem IsClosed.closure_eq - theorem IsClosed.closure_interior_subset - theorem IsClosed.closure_subset - theorem IsClosed.closure_subset_iff - theorem IsClosed.compl_mem_nhds - theorem IsClosed.frontier_eq - theorem IsClosed.interior_union_left - theorem IsClosed.interior_union_right - theorem IsClosed.mem_iff_closure_subset - theorem IsClosed.mem_of_frequently_of_tendsto - theorem IsClosed.mem_of_tendsto - theorem IsClosed.preimage - theorem IsOpen.closure_inter - theorem IsOpen.eventually_mem - theorem IsOpen.frontier_eq - theorem IsOpen.inter_closure - theorem IsOpen.inter_frontier_eq - theorem IsOpen.interior_eq - theorem IsOpen.mem_nhds - theorem IsOpen.preimage - theorem IsOpen.subset_interior_closure - theorem IsOpen.subset_interior_iff - theorem MapClusterPt.continuousAt_comp - theorem MapClusterPt.frequently - theorem MapClusterPt.mono - theorem MapClusterPt.of_comp - theorem MapClusterPt.tendsto_comp' - theorem MapClusterPt.tendsto_comp - theorem OrderTop.tendsto_atTop_nhds - theorem Set.Finite.closure_biUnion - theorem Set.Finite.closure_sUnion - theorem Set.Finite.interior_biInter - theorem Set.Finite.interior_sInter - theorem Set.MapsTo.closure_left - theorem TopologicalSpace.ext_iff_nhds - theorem accPt_iff_frequently - theorem accPt_iff_nhds - theorem accPt_sup - theorem acc_iff_cluster - theorem acc_principal_iff_cluster - theorem all_mem_nhds - theorem all_mem_nhds_filter - theorem closure_closure - theorem closure_compl - theorem closure_compl_singleton - theorem closure_diff - theorem closure_diff_frontier - theorem closure_diff_interior - theorem closure_empty - theorem closure_empty_iff - theorem closure_eq_cluster_pts - theorem closure_eq_compl_interior_compl - theorem closure_eq_iff_isClosed - theorem closure_eq_interior_union_frontier - theorem closure_eq_self_union_frontier - theorem closure_iUnion_of_finite - theorem closure_iUnion₂_le_nat - theorem closure_iUnion₂_lt_nat - theorem closure_image_closure - theorem closure_inter_open_nonempty_iff - theorem closure_inter_subset_inter_closure - theorem closure_minimal - theorem closure_mono - theorem closure_nonempty_iff - theorem closure_subset_iff_isClosed - theorem closure_subset_preimage_closure_image - theorem closure_union - theorem closure_univ - theorem clusterPt_iff_forall_mem_closure - theorem clusterPt_iff_frequently - theorem clusterPt_iff_lift'_closure' - theorem clusterPt_iff_lift'_closure - theorem clusterPt_iff_nonempty - theorem clusterPt_iff_not_disjoint - theorem clusterPt_lift'_closure_iff - theorem clusterPt_principal - theorem clusterPt_principal_iff - theorem clusterPt_principal_iff_frequently - theorem compl_frontier_eq_union_interior - theorem continuousAt_congr - theorem continuousAt_const - theorem continuousAt_def - theorem continuousAt_id' - theorem continuousAt_id - theorem continuous_congr - theorem continuous_const - theorem continuous_def - theorem continuous_id' - theorem continuous_id - theorem continuous_iff_continuousAt - theorem continuous_iff_isClosed - theorem continuous_of_const - theorem denseRange_id - theorem denseRange_iff_closure_range - theorem denseRange_subtype_val - theorem dense_closure - theorem dense_compl_singleton - theorem dense_compl_singleton_iff_not_open - theorem dense_iff_closure_eq - theorem dense_iff_inter_open - theorem dense_univ - theorem diff_subset_closure_iff - theorem disjoint_frontier_iff_isOpen - theorem disjoint_interior_frontier - theorem eventually_eventuallyEq_nhds - theorem eventually_eventuallyLE_nhds - theorem eventually_eventually_nhds - theorem eventually_mem_nhds_iff - theorem eventually_nhds_iff - theorem exists_open_set_nhds' - theorem exists_open_set_nhds - theorem frequently_frequently_nhds - theorem frequently_nhds_iff - theorem frontier_closure_subset - theorem frontier_compl - theorem frontier_empty - theorem frontier_eq_closure_inter_closure - theorem frontier_eq_inter_compl_interior - theorem frontier_inter_subset - theorem frontier_interior_subset - theorem frontier_subset_closure - theorem frontier_subset_iff_isClosed - theorem frontier_union_subset - theorem frontier_univ - theorem image_closure_subset_closure_image - theorem interior_compl - theorem interior_empty - theorem interior_eq_empty_iff_dense_compl - theorem interior_eq_iff_isOpen - theorem interior_eq_nhds' - theorem interior_eq_nhds - theorem interior_eq_univ - theorem interior_frontier - theorem interior_iInter_of_finite - theorem interior_iInter_subset - theorem interior_iInter₂_le_nat - theorem interior_iInter₂_lt_nat - theorem interior_iInter₂_subset - theorem interior_inter - theorem interior_interior - theorem interior_maximal - theorem interior_mem_nhds - theorem interior_mono - theorem interior_sInter_subset - theorem interior_setOf_eq - theorem interior_singleton - theorem interior_subset - theorem interior_subset_closure - theorem interior_subset_iff - theorem interior_union_isClosed_of_interior_empty - theorem interior_univ - theorem isClosed_closure - theorem isClosed_frontier - theorem isClosed_iff_clusterPt - theorem isClosed_iff_forall_filter - theorem isClosed_iff_frequently - theorem isClosed_iff_nhds - theorem isClosed_of_closure_subset - theorem isClosed_setOf_clusterPt - theorem isOpen_iff_eventually - theorem isOpen_iff_forall_mem_open - theorem isOpen_iff_mem_nhds - theorem isOpen_iff_nhds - theorem isOpen_interior - theorem isOpen_setOf_eventually_nhds - theorem isOpen_singleton_iff_nhds_eq_pure - theorem isOpen_singleton_iff_punctured_nhds - theorem le_nhds_iff - theorem lift'_nhds_interior - theorem mapClusterPt_comp - theorem mapClusterPt_def - theorem mapClusterPt_iff_frequently - theorem map_mem_closure - theorem map_nhds - theorem mem_closure_iff - theorem mem_closure_iff_clusterPt - theorem mem_closure_iff_comap_neBot - theorem mem_closure_iff_frequently - theorem mem_closure_iff_nhds' - theorem mem_closure_iff_nhds - theorem mem_closure_iff_nhdsWithin_neBot - theorem mem_closure_iff_nhds_basis' - theorem mem_closure_iff_nhds_basis - theorem mem_closure_iff_nhds_ne_bot - theorem mem_closure_image - theorem mem_closure_of_frequently_of_tendsto - theorem mem_closure_of_mem_closure_union - theorem mem_closure_of_tendsto - theorem mem_interior - theorem mem_interior_iff_mem_nhds - theorem mem_nhds_iff - theorem mem_of_mem_nhds - theorem monotone_closure - theorem nhdsWithin_mono - theorem nhdsWithin_neBot - theorem nhds_basis_closeds - theorem nhds_basis_opens' - theorem nhds_basis_opens - theorem nhds_bind_nhds - theorem nhds_def' - theorem nhds_le_of_le - theorem not_continuousAt_of_tendsto - theorem not_isOpen_singleton - theorem not_mem_closure_iff_nhdsWithin_eq_bot - theorem not_mem_of_not_mem_closure - theorem preimage_interior_subset_interior_preimage - theorem pure_le_nhds - theorem self_diff_frontier - theorem subset_closure - theorem subset_interior_iff - theorem subset_interior_iff_isOpen - theorem subset_interior_iff_nhds - theorem tendsto_atBot_of_eventually_const - theorem tendsto_atTop_nhds - theorem tendsto_atTop_of_eventually_const - theorem tendsto_const_nhds - theorem tendsto_inf_principal_nhds_iff_of_forall_eq - theorem tendsto_lift'_closure_nhds - theorem tendsto_nhds - theorem tendsto_nhds_of_eventually_eq - theorem tendsto_pure_nhds Added Mathlib/Topology/Closure.lean + theorem Dense.exists_mem_open + theorem Dense.induction + theorem Dense.interior_compl + theorem Dense.mono + theorem Dense.nonempty + theorem Dense.nonempty_iff + theorem Disjoint.closure_left + theorem Disjoint.closure_right + theorem Disjoint.frontier_left + theorem Disjoint.frontier_right + theorem Filter.HasBasis.lift'_closure + theorem Filter.HasBasis.lift'_closure_eq_self + theorem Filter.HasBasis.lift'_interior + theorem Filter.HasBasis.lift'_interior_eq_self + theorem Filter.le_lift'_closure + theorem Filter.lift'_closure_eq_bot + theorem Filter.lift'_interior_le + theorem Finset.closure_biUnion + theorem Finset.interior_iInter + theorem IsClosed.closure_eq + theorem IsClosed.closure_interior_subset + theorem IsClosed.closure_subset + theorem IsClosed.closure_subset_iff + theorem IsClosed.frontier_eq + theorem IsClosed.mem_iff_closure_subset + theorem IsOpen.frontier_eq + theorem IsOpen.inter_frontier_eq + theorem IsOpen.interior_eq + theorem IsOpen.subset_interior_closure + theorem IsOpen.subset_interior_iff + theorem Set.Finite.closure_biUnion + theorem Set.Finite.closure_sUnion + theorem Set.Finite.interior_biInter + theorem Set.Finite.interior_sInter + theorem closure_closure + theorem closure_compl + theorem closure_diff_frontier + theorem closure_diff_interior + theorem closure_empty + theorem closure_empty_iff + theorem closure_eq_compl_interior_compl + theorem closure_eq_iff_isClosed + theorem closure_eq_interior_union_frontier + theorem closure_eq_self_union_frontier + theorem closure_iUnion_of_finite + theorem closure_iUnion₂_le_nat + theorem closure_iUnion₂_lt_nat + theorem closure_inter_open_nonempty_iff + theorem closure_inter_subset_inter_closure + theorem closure_minimal + theorem closure_mono + theorem closure_nonempty_iff + theorem closure_subset_iff_isClosed + theorem closure_union + theorem closure_univ + theorem compl_frontier_eq_union_interior + theorem dense_closure + theorem dense_compl_singleton_iff_not_open + theorem dense_iff_closure_eq + theorem dense_iff_inter_open + theorem dense_univ + theorem diff_subset_closure_iff + theorem disjoint_frontier_iff_isOpen + theorem disjoint_interior_frontier + theorem frontier_closure_subset + theorem frontier_compl + theorem frontier_empty + theorem frontier_eq_closure_inter_closure + theorem frontier_eq_inter_compl_interior + theorem frontier_inter_subset + theorem frontier_interior_subset + theorem frontier_subset_closure + theorem frontier_subset_iff_isClosed + theorem frontier_union_subset + theorem frontier_univ + theorem interior_compl + theorem interior_empty + theorem interior_eq_empty_iff_dense_compl + theorem interior_eq_iff_isOpen + theorem interior_eq_univ + theorem interior_frontier + theorem interior_iInter_of_finite + theorem interior_iInter_subset + theorem interior_iInter₂_le_nat + theorem interior_iInter₂_lt_nat + theorem interior_iInter₂_subset + theorem interior_inter + theorem interior_interior + theorem interior_maximal + theorem interior_mono + theorem interior_sInter_subset + theorem interior_subset + theorem interior_subset_closure + theorem interior_subset_iff + theorem interior_union_isClosed_of_interior_empty + theorem interior_univ + theorem isClosed_closure + theorem isClosed_frontier + theorem isClosed_of_closure_subset + theorem isOpen_iff_forall_mem_open + theorem isOpen_interior + theorem mem_closure_iff + theorem mem_interior + theorem monotone_closure + theorem not_mem_of_not_mem_closure + theorem self_diff_frontier + theorem subset_closure + theorem subset_interior_iff + theorem subset_interior_iff_isOpen Added Mathlib/Topology/ClusterPt.lean + theorem AccPt.clusterPt + theorem AccPt.mono + theorem ClusterPt.frequently + theorem ClusterPt.mono + theorem ClusterPt.neBot + theorem ClusterPt.of_inf_left + theorem ClusterPt.of_inf_right + theorem ClusterPt.of_le_nhds' + theorem ClusterPt.of_le_nhds + theorem ClusterPt.of_nhds_le + theorem Filter.EventuallyEq.mapClusterPt_iff + theorem Filter.HasBasis.clusterPt_iff + theorem Filter.HasBasis.clusterPt_iff_frequently + theorem Filter.HasBasis.mapClusterPt_iff_frequently + theorem Filter.Tendsto.mapClusterPt + theorem MapClusterPt.continuousAt_comp + theorem MapClusterPt.frequently + theorem MapClusterPt.mono + theorem MapClusterPt.of_comp + theorem MapClusterPt.tendsto_comp' + theorem MapClusterPt.tendsto_comp + theorem accPt_iff_frequently + theorem accPt_iff_nhds + theorem accPt_sup + theorem acc_iff_cluster + theorem acc_principal_iff_cluster + theorem closure_compl_singleton + theorem closure_eq_cluster_pts + theorem clusterPt_iff_forall_mem_closure + theorem clusterPt_iff_frequently + theorem clusterPt_iff_lift'_closure' + theorem clusterPt_iff_lift'_closure + theorem clusterPt_iff_nonempty + theorem clusterPt_iff_not_disjoint + theorem clusterPt_lift'_closure_iff + theorem clusterPt_principal + theorem clusterPt_principal_iff + theorem clusterPt_principal_iff_frequently + theorem dense_compl_singleton + theorem interior_singleton + theorem isClosed_iff_clusterPt + theorem isClosed_iff_forall_filter + theorem isClosed_iff_nhds + theorem isClosed_setOf_clusterPt + theorem mapClusterPt_comp + theorem mapClusterPt_def + theorem mapClusterPt_iff_frequently + theorem mem_closure_iff_clusterPt + theorem mem_closure_iff_comap_neBot + theorem mem_closure_iff_nhds' + theorem mem_closure_iff_nhds + theorem mem_closure_iff_nhdsWithin_neBot + theorem mem_closure_iff_nhds_basis' + theorem mem_closure_iff_nhds_basis + theorem mem_closure_iff_nhds_ne_bot + theorem mem_closure_of_mem_closure_union + theorem not_isOpen_singleton + theorem not_mem_closure_iff_nhdsWithin_eq_bot Added Mathlib/Topology/Continuous.lean + theorem ClusterPt.map + theorem Continuous.closure_preimage_subset + theorem Continuous.comp' + theorem Continuous.comp + theorem Continuous.congr + theorem Continuous.continuousAt + theorem Continuous.frontier_preimage_subset + theorem Continuous.iterate + theorem Continuous.range_subset_closure_image_dense + theorem Continuous.tendsto' + theorem Continuous.tendsto + theorem ContinuousAt.comp' + theorem ContinuousAt.comp_of_eq + theorem ContinuousAt.congr + theorem ContinuousAt.eventually_mem + theorem ContinuousAt.iterate + theorem ContinuousAt.preimage_mem_nhds + theorem ContinuousAt.tendsto + theorem Dense.denseRange_val + theorem DenseRange.closure_range + theorem DenseRange.comp + theorem DenseRange.dense_image + theorem DenseRange.dense_of_mapsTo + theorem DenseRange.mem_nhds + theorem DenseRange.nonempty + theorem DenseRange.subset_closure_image_preimage_of_isOpen + theorem Equiv.continuous_symm_iff + theorem Equiv.isOpenMap_symm_iff + theorem Filter.EventuallyEq.continuousAt + theorem Filter.Tendsto.lift'_closure + theorem Function.Surjective.denseRange + theorem IsClosed.preimage + theorem IsOpen.preimage + theorem Set.MapsTo.closure_left + theorem closure_image_closure + theorem closure_subset_preimage_closure_image + theorem continuousAt_congr + theorem continuousAt_const + theorem continuousAt_def + theorem continuousAt_id' + theorem continuousAt_id + theorem continuous_congr + theorem continuous_const + theorem continuous_def + theorem continuous_id' + theorem continuous_id + theorem continuous_iff_continuousAt + theorem continuous_iff_isClosed + theorem continuous_of_const + theorem denseRange_id + theorem denseRange_iff_closure_range + theorem denseRange_subtype_val + theorem image_closure_subset_closure_image + theorem map_mem_closure + theorem mem_closure_image + theorem not_continuousAt_of_tendsto + theorem preimage_interior_subset_interior_preimage + theorem tendsto_lift'_closure_nhds Modified Mathlib/Topology/Defs/Induced.lean Modified Mathlib/Topology/GDelta/Basic.lean Modified Mathlib/Topology/MetricSpace/Thickening.lean Modified Mathlib/Topology/Metrizable/CompletelyMetrizable.lean Added Mathlib/Topology/Neighborhoods.lean + theorem Dense.inter_nhds_nonempty + theorem Dense.inter_of_isOpen_left + theorem Dense.inter_of_isOpen_right + theorem Dense.open_subset_closure_inter + theorem Filter.Eventually.eventually_nhds + theorem Filter.Eventually.self_of_nhds + theorem Filter.EventuallyEq.eq_of_nhds + theorem Filter.EventuallyEq.eventuallyEq_nhds + theorem Filter.EventuallyEq.tendsto + theorem Filter.EventuallyLE.eventuallyLE_nhds + theorem Filter.Frequently.mem_of_closed + theorem Filter.HasBasis.nhds_interior + theorem IsClosed.compl_mem_nhds + theorem IsClosed.interior_union_left + theorem IsClosed.interior_union_right + theorem IsClosed.mem_of_frequently_of_tendsto + theorem IsClosed.mem_of_tendsto + theorem IsOpen.closure_inter + theorem IsOpen.eventually_mem + theorem IsOpen.inter_closure + theorem IsOpen.mem_nhds + theorem OrderTop.tendsto_atTop_nhds + theorem TopologicalSpace.ext_iff_nhds + theorem all_mem_nhds + theorem all_mem_nhds_filter + theorem closure_diff + theorem eventually_eventuallyEq_nhds + theorem eventually_eventuallyLE_nhds + theorem eventually_eventually_nhds + theorem eventually_mem_nhds_iff + theorem eventually_nhds_iff + theorem exists_open_set_nhds' + theorem exists_open_set_nhds + theorem frequently_frequently_nhds + theorem frequently_nhds_iff + theorem interior_eq_nhds' + theorem interior_eq_nhds + theorem interior_mem_nhds + theorem interior_setOf_eq + theorem isClosed_iff_frequently + theorem isOpen_iff_eventually + theorem isOpen_iff_mem_nhds + theorem isOpen_iff_nhds + theorem isOpen_setOf_eventually_nhds + theorem isOpen_singleton_iff_nhds_eq_pure + theorem isOpen_singleton_iff_punctured_nhds + theorem le_nhds_iff + theorem lift'_nhds_interior + theorem map_nhds + theorem mem_closure_iff_frequently + theorem mem_closure_of_frequently_of_tendsto + theorem mem_closure_of_tendsto + theorem mem_interior_iff_mem_nhds + theorem mem_nhds_iff + theorem mem_of_mem_nhds + theorem nhdsWithin_mono + theorem nhdsWithin_neBot + theorem nhds_basis_closeds + theorem nhds_basis_opens' + theorem nhds_basis_opens + theorem nhds_bind_nhds + theorem nhds_def' + theorem nhds_le_of_le + theorem pure_le_nhds + theorem subset_interior_iff_nhds + theorem tendsto_atBot_of_eventually_const + theorem tendsto_atTop_nhds + theorem tendsto_atTop_of_eventually_const + theorem tendsto_const_nhds + theorem tendsto_inf_principal_nhds_iff_of_forall_eq + theorem tendsto_nhds + theorem tendsto_nhds_of_eventually_eq + theorem tendsto_pure_nhds Modified Mathlib/Topology/NhdsSet.lean Modified Mathlib/Topology/Order.lean Modified Mathlib/Topology/Order/Hom/Basic.lean Modified Mathlib/Topology/Partial.lean Modified Mathlib/Topology/Separation/SeparatedNhds.lean Modified Mathlib/Topology/Ultrafilter.lean 2025-04-08 01:10:15 62beece feat(BigOperators/Finset): prod_comm_cycle (#21524) A cyclically permuting version of `Finset.prod_comm`. Sort of like `LinearMap.trace_mul_cycle`. Think you could debate if it's "necessary" but we were using it enough that we wanted to have its own lemma; the alternative would be writing `prod_comm` with implicit arguments a bunch of times. ESTIMATED CHANGES Modified Mathlib/Algebra/BigOperators/Group/Finset/Sigma.lean + theorem Finset.prod_comm_cycle 2025-04-08 00:33:17 c1798e6 chore: tidy some `(q(`s (#23744) `: Expr` is usually throwing away some checking that Qq would otherwise perform. ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Field/Basic.lean Modified Mathlib/Tactic/ModCases.lean Modified Mathlib/Tactic/NormNum/Result.lean Modified Mathlib/Tactic/Ring/Basic.lean 2025-04-07 21:54:21 d2f6311 feat: golf, generalize and review API for topological nilpotency of power series (#23683) - Restate [MvPowerSeries.WithPiTopology.tendsto_pow_of_constantCoeff_nilpotent_iff](https://leanprover-community.github.io/mathlib4_docs/Mathlib/RingTheory/MvPowerSeries/PiTopology.html#MvPowerSeries.WithPiTopology.tendsto_pow_of_constantCoeff_nilpotent_iff) in terms of [IsTopologicallyNilpotent](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Topology/Algebra/TopologicallyNilpotent.html#IsTopologicallyNilpotent), golf its proof, and change its name to `MvPowerSeries.WithPiTopology.isTopologicallyNilpotent_iff_of_constantCoeff_isNilpotent` - do the same for some related lemmas, as well as the univariate version - generalize in the setting of a linearly topologized base ring: in that case, a power series is topologically nilpotent iff its constant coefficient is topologically nilpotent. Notes: - I could deduce the discrete case from the linear one, but I'm not sure it's worth rethinking the import tree (and in any case we want both statements) - I didn't add the univariate version of the generalized statement, as the corresponding file doesn't exist in the `PowerSeries` world, so I'm leaving this as future work if needed. absolute value. ESTIMATED CHANGES Modified Mathlib/Analysis/Normed/Ring/WithAbs.lean + def WithAbs.algEquiv +/- theorem WithAbs.equiv_neg +/- theorem WithAbs.equiv_sub +/- theorem WithAbs.equiv_symm_add +/- theorem WithAbs.equiv_symm_mul +/- theorem WithAbs.equiv_symm_neg +/- theorem WithAbs.equiv_symm_sub + theorem WithAbs.norm_eq_abv +/- def WithAbs 2025-02-10 20:18:57 5ba6c80 feat(RingTheory): Hausdorff-ness of Noetherian rings (#20425) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/RingTheory/AdicCompletion/Noetherian.lean + theorem IsHausdorff.of_isDomain + theorem IsHausdorff.of_isLocalRing + theorem IsHausdorff.of_le_jacobson + theorem IsHausdorff.of_noZeroSMulDivisors Modified Mathlib/RingTheory/Filtration.lean + theorem Ideal.iInf_pow_smul_eq_bot_of_le_jacobson + theorem Ideal.iInf_pow_smul_eq_bot_of_noZeroSMulDivisors 2025-02-10 19:51:42 01e4458 chore(Topology/UniformSpace): split into `Defs` and `Basic` (#21664) Split `Defs.lean` off of `Basic.lean`, including the definition of `UniformSpace` and `UniformContinuous`, and all lemmas that can be moved over without increasing imports in `Defs.lean`. This is motivated by reducing imports for metric spaces, although it seems that `EMetricSpace/Defs.lean` still needs some results that ended up in `Basic.lean`. I think the conclusion is that `EMetricSpace/Defs.lean` should be split further. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Dynamics/TopologicalEntropy/DynamicalEntourage.lean Modified Mathlib/Topology/EMetricSpace/Defs.lean Modified Mathlib/Topology/UniformSpace/Basic.lean - theorem Filter.HasBasis.biInter_biUnion_ball - theorem Filter.HasBasis.uniformContinuousOn_iff - theorem Filter.HasBasis.uniformContinuous_iff - theorem Filter.Tendsto.uniformity_symm - theorem Filter.Tendsto.uniformity_trans - theorem Monotone.compRel - theorem SymmetricRel.eq - theorem SymmetricRel.inter - theorem SymmetricRel.mk_mem_comm - def SymmetricRel - theorem UniformContinuous.iterate - def UniformContinuous - def UniformContinuousOn - theorem UniformSpace.Core.ext - def UniformSpace.Core.mk' - def UniformSpace.Core.mkOfBasis - theorem UniformSpace.Core.nhds_toTopologicalSpace - def UniformSpace.Core.toTopologicalSpace - structure UniformSpace.Core - def UniformSpace.ball - theorem UniformSpace.ball_eq_of_symmetry - theorem UniformSpace.ball_inter - theorem UniformSpace.ball_inter_left - theorem UniformSpace.ball_inter_right - theorem UniformSpace.ball_mem_nhds - theorem UniformSpace.ball_mem_nhdsWithin - theorem UniformSpace.ball_mono - theorem UniformSpace.ball_subset_of_comp_subset - theorem UniformSpace.hasBasis_nhds +/- theorem UniformSpace.hasBasis_nhds_prod - theorem UniformSpace.hasBasis_symmetric - theorem UniformSpace.mem_ball_comp - theorem UniformSpace.mem_ball_self - theorem UniformSpace.mem_ball_symmetry - theorem UniformSpace.mem_closure_iff_ball - theorem UniformSpace.mem_closure_iff_symm_ball - theorem UniformSpace.mem_comp_comp - theorem UniformSpace.mem_comp_of_mem_ball - theorem UniformSpace.mem_nhds_iff - theorem UniformSpace.mem_nhds_iff_symm - theorem UniformSpace.ofCoreEq_toCore - theorem UniformSpace.replaceTopology_eq - theorem UniformSpace.toCore_toTopologicalSpace - theorem comap_swap_uniformity - theorem comp3_mem_uniformity - def compRel - theorem compRel_assoc - theorem compRel_mono - theorem comp_comp_symm_mem_uniformity_sets - theorem comp_le_uniformity3 - theorem comp_le_uniformity - theorem comp_mem_uniformity_sets - theorem comp_symm_mem_uniformity_sets - theorem comp_symm_of_uniformity - theorem eq_singleton_left_of_prod_subset_idRel - theorem eq_singleton_prod_subset_idRel - theorem eq_singleton_right_prod_subset_idRel - theorem exists_mem_nhds_ball_subset_of_mem_nhds - def idRel - theorem idRel_subset - theorem id_compRel - theorem isOpen_iff_ball_subset - theorem isOpen_uniformity - theorem left_subset_compRel - theorem lift'_comp_uniformity - theorem lift_nhds_left - theorem lift_nhds_right - theorem mem_compRel - theorem mem_idRel - theorem mem_nhds_left - theorem mem_nhds_right - theorem mem_nhds_uniformity_iff_left - theorem mem_nhds_uniformity_iff_right - theorem mem_uniformity_of_eq - theorem nhdsWithin_eq_comap_uniformity - theorem nhdsWithin_eq_comap_uniformity_of_mem - theorem nhds_basis_uniformity' - theorem nhds_basis_uniformity - theorem nhds_eq_comap_uniformity' - theorem nhds_eq_comap_uniformity - theorem nhds_eq_uniformity' - theorem nhds_eq_uniformity - theorem nhds_nhds_eq_uniformity_uniformity_prod - theorem prod_mk_mem_compRel - theorem refl_le_uniformity - theorem refl_mem_uniformity - theorem right_subset_compRel - theorem subset_comp_self - theorem subset_comp_self_of_mem_uniformity - theorem subset_iterate_compRel - theorem swap_idRel - theorem symm_le_uniformity - theorem symm_of_uniformity - theorem symmetric_symmetrizeRel - def symmetrizeRel - theorem symmetrizeRel_subset_self - theorem symmetrize_mem_uniformity - theorem symmetrize_mono - theorem tendsto_const_uniformity - theorem tendsto_diag_uniformity - theorem tendsto_left_nhds_uniformity - theorem tendsto_right_nhds_uniformity - theorem tendsto_swap_uniformity - theorem uniformContinuousOn_univ - theorem uniformContinuous_const - theorem uniformContinuous_def - theorem uniformContinuous_id - theorem uniformContinuous_iff_eventually - theorem uniformContinuous_of_const - def uniformity - theorem uniformity_eq_symm - theorem uniformity_le_symm - theorem uniformity_lift_le_comp - theorem uniformity_lift_le_swap Added Mathlib/Topology/UniformSpace/Defs.lean + theorem Filter.HasBasis.biInter_biUnion_ball + theorem Filter.HasBasis.uniformContinuousOn_iff + theorem Filter.HasBasis.uniformContinuous_iff + theorem Filter.Tendsto.uniformity_symm + theorem Filter.Tendsto.uniformity_trans + theorem Monotone.compRel + theorem SymmetricRel.eq + theorem SymmetricRel.inter + theorem SymmetricRel.mk_mem_comm + def SymmetricRel + theorem UniformContinuous.iterate + def UniformContinuous + def UniformContinuousOn + theorem UniformSpace.Core.ext + def UniformSpace.Core.mk' + def UniformSpace.Core.mkOfBasis + theorem UniformSpace.Core.nhds_toTopologicalSpace + def UniformSpace.Core.toTopologicalSpace + structure UniformSpace.Core + def UniformSpace.ball + theorem UniformSpace.ball_eq_of_symmetry + theorem UniformSpace.ball_inter + theorem UniformSpace.ball_inter_left + theorem UniformSpace.ball_inter_right + theorem UniformSpace.ball_mem_nhds + theorem UniformSpace.ball_mem_nhdsWithin + theorem UniformSpace.ball_mono + theorem UniformSpace.ball_subset_of_comp_subset + theorem UniformSpace.hasBasis_nhds + theorem UniformSpace.hasBasis_symmetric + theorem UniformSpace.mem_ball_comp + theorem UniformSpace.mem_ball_self + theorem UniformSpace.mem_ball_symmetry + theorem UniformSpace.mem_closure_iff_ball + theorem UniformSpace.mem_closure_iff_symm_ball + theorem UniformSpace.mem_comp_comp + theorem UniformSpace.mem_comp_of_mem_ball + theorem UniformSpace.mem_nhds_iff + theorem UniformSpace.mem_nhds_iff_symm + theorem UniformSpace.ofCoreEq_toCore + theorem UniformSpace.replaceTopology_eq + theorem UniformSpace.toCore_toTopologicalSpace + theorem comap_swap_uniformity + theorem comp3_mem_uniformity + def compRel + theorem compRel_assoc + theorem compRel_mono + theorem comp_comp_symm_mem_uniformity_sets + theorem comp_le_uniformity3 + theorem comp_le_uniformity + theorem comp_mem_uniformity_sets + theorem comp_symm_mem_uniformity_sets + theorem comp_symm_of_uniformity + theorem eq_singleton_left_of_prod_subset_idRel + theorem eq_singleton_prod_subset_idRel + theorem eq_singleton_right_prod_subset_idRel + theorem exists_mem_nhds_ball_subset_of_mem_nhds + def idRel + theorem idRel_subset + theorem id_compRel + theorem isOpen_iff_ball_subset + theorem isOpen_uniformity + theorem left_subset_compRel + theorem lift'_comp_uniformity + theorem lift_nhds_left + theorem lift_nhds_right + theorem mem_compRel + theorem mem_idRel + theorem mem_nhds_left + theorem mem_nhds_right + theorem mem_nhds_uniformity_iff_left + theorem mem_nhds_uniformity_iff_right + theorem mem_uniformity_of_eq + theorem nhdsWithin_eq_comap_uniformity + theorem nhdsWithin_eq_comap_uniformity_of_mem + theorem nhds_basis_uniformity' + theorem nhds_basis_uniformity + theorem nhds_eq_comap_uniformity' + theorem nhds_eq_comap_uniformity + theorem nhds_eq_uniformity' + theorem nhds_eq_uniformity + theorem nhds_nhds_eq_uniformity_uniformity_prod + theorem prod_mk_mem_compRel + theorem refl_le_uniformity + theorem refl_mem_uniformity + theorem right_subset_compRel + theorem subset_comp_self + theorem subset_comp_self_of_mem_uniformity + theorem subset_iterate_compRel + theorem swap_idRel + theorem symm_le_uniformity + theorem symm_of_uniformity + theorem symmetric_symmetrizeRel + def symmetrizeRel + theorem symmetrizeRel_subset_self + theorem symmetrize_mem_uniformity + theorem symmetrize_mono + theorem tendsto_const_uniformity + theorem tendsto_diag_uniformity + theorem tendsto_left_nhds_uniformity + theorem tendsto_right_nhds_uniformity + theorem tendsto_swap_uniformity + theorem uniformContinuousOn_univ + theorem uniformContinuous_const + theorem uniformContinuous_def + theorem uniformContinuous_id + theorem uniformContinuous_iff_eventually + theorem uniformContinuous_of_const + def uniformity + theorem uniformity_eq_symm + theorem uniformity_le_symm + theorem uniformity_lift_le_comp + theorem uniformity_lift_le_swap Modified Mathlib/Topology/UniformSpace/OfCompactT2.lean Modified Mathlib/Topology/UniformSpace/OfFun.lean Modified scripts/noshake.json 2025-02-10 19:23:35 e790abc chore(Order/Filter): split `AtTopBot.lean` (#21672) This PR splits `Order/Filter/AtTopBot.lean` into the following files: * `Order/Filter/AtTopBot/Defs.lean`: definition and elementary properties * `Order/Filter/AtTopBot/Disjoint.lean`: showing `AtTop` and `AtBot` are disjoint * `Order/Filter/AtTopBot/Tendsto.lean`: basic limits of `AtTop` and `AtBot` * `Order/Filter/AtTopBot/CompleteLattice.lean`: results in a (conditionally) complete lattice * `Order/Filter/AtTopBot/Finset.lean`: results involving finite sets * `Order/Filter/AtTopBot/Map.lean`: results involving map/comap * `Order/Filter/AtTopBot/Prod.lean`: results involving product of filters * `Order/Filter/AtTopBot/Basic.lean`: remaining results (those depending on `Order.Filter.Bases`) The goal is to reduce the dependencies for `Topology.Basic`. The results are not too exciting for the file itself, but we do get some nice cleanups down the line. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/ContinuedFractions/Computation/CorrectnessTerminating.lean Modified Mathlib/Algebra/Lie/Nilpotent.lean Modified Mathlib/MeasureTheory/Integral/IntegralEqImproper.lean Modified Mathlib/MeasureTheory/MeasurableSpace/Basic.lean Modified Mathlib/ModelTheory/Satisfiability.lean Modified Mathlib/NumberTheory/PrimeCounting.lean Deleted Mathlib/Order/Filter/AtTopBot.lean - theorem Antitone.ciInf_comp_tendsto_atTop - theorem Antitone.ciInf_comp_tendsto_atTop_of_linearOrder - theorem Antitone.ciSup_comp_tendsto_atBot - theorem Antitone.ciSup_comp_tendsto_atBot_of_linearOrder - theorem Antitone.iInf_comp_tendsto_atTop - theorem Antitone.iInter_comp_tendsto_atTop - theorem Antitone.iSup_comp_tendsto_atBot - theorem Antitone.iUnion_comp_tendsto_atBot - theorem Antitone.lowerBounds_range_comp_tendsto_atTop - theorem Antitone.piecewise_eventually_eq_iInter - theorem Antitone.upperBounds_range_comp_tendsto_atBot - theorem Filter.Eventually.atTop_of_arithmetic - theorem Filter.Frequently.forall_exists_of_atBot - theorem Filter.Frequently.forall_exists_of_atTop - theorem Filter.HasAntitoneBasis.comp_mono - theorem Filter.HasAntitoneBasis.comp_strictMono - theorem Filter.HasAntitoneBasis.eventually_subset - theorem Filter.HasAntitoneBasis.subbasis_with_rel - theorem Filter.Ici_mem_atTop - theorem Filter.Iic_mem_atBot - theorem Filter.Iio_mem_atBot - theorem Filter.Ioi_mem_atTop - theorem Filter.OrderBot.atBot_eq - theorem Filter.OrderTop.atTop_eq - theorem Filter.Subsingleton.atBot_eq - theorem Filter.Subsingleton.atTop_eq - theorem Filter.Tendsto.eventually_forall_ge_atTop - theorem Filter.Tendsto.eventually_forall_le_atBot - theorem Filter.Tendsto.prod_atBot - theorem Filter.Tendsto.prod_atTop - theorem Filter.Tendsto.prod_map_prod_atBot - theorem Filter.Tendsto.prod_map_prod_atTop - theorem Filter.Tendsto.subseq_mem - def Filter.atBot - theorem Filter.atBot_Iic_eq - theorem Filter.atBot_Iio_eq - theorem Filter.atBot_basis' - theorem Filter.atBot_basis - theorem Filter.atBot_basis_Iio' - theorem Filter.atBot_basis_Iio - theorem Filter.atBot_neBot - theorem Filter.atBot_neBot_iff - def Filter.atTop - theorem Filter.atTop_Ici_eq - theorem Filter.atTop_Ioi_eq - theorem Filter.atTop_basis' - theorem Filter.atTop_basis - theorem Filter.atTop_basis_Ioi' - theorem Filter.atTop_basis_Ioi - theorem Filter.atTop_eq_generate_Ici - theorem Filter.atTop_eq_generate_of_forall_exists_le - theorem Filter.atTop_eq_generate_of_not_bddAbove - theorem Filter.atTop_finset_eq_iInf - theorem Filter.atTop_neBot - theorem Filter.atTop_neBot_iff - theorem Filter.comap_embedding_atBot - theorem Filter.comap_embedding_atTop - theorem Filter.disjoint_atBot_atTop - theorem Filter.disjoint_atBot_principal_Ici - theorem Filter.disjoint_atBot_principal_Ioi - theorem Filter.disjoint_atTop_atBot - theorem Filter.disjoint_atTop_principal_Iic - theorem Filter.disjoint_atTop_principal_Iio - theorem Filter.disjoint_pure_atBot - theorem Filter.disjoint_pure_atTop - theorem Filter.eventually_atBot - theorem Filter.eventually_atBot_curry - theorem Filter.eventually_atBot_prod_self' - theorem Filter.eventually_atBot_prod_self - theorem Filter.eventually_atTop - theorem Filter.eventually_atTop_curry - theorem Filter.eventually_atTop_prod_self' - theorem Filter.eventually_atTop_prod_self - theorem Filter.eventually_forall_ge_atTop - theorem Filter.eventually_forall_le_atBot - theorem Filter.eventually_ge_atTop - theorem Filter.eventually_gt_atTop - theorem Filter.eventually_le_atBot - theorem Filter.eventually_lt_atBot - theorem Filter.eventually_ne_atBot - theorem Filter.eventually_ne_atTop - theorem Filter.exists_eventually_atBot - theorem Filter.exists_eventually_atTop - theorem Filter.exists_le_of_tendsto_atBot - theorem Filter.exists_le_of_tendsto_atTop - theorem Filter.exists_lt_of_tendsto_atBot - theorem Filter.exists_lt_of_tendsto_atTop - theorem Filter.extraction_forall_of_eventually' - theorem Filter.extraction_forall_of_eventually - theorem Filter.extraction_forall_of_frequently - theorem Filter.extraction_of_eventually_atTop - theorem Filter.extraction_of_frequently_atTop' - theorem Filter.extraction_of_frequently_atTop - theorem Filter.frequently_atBot' - theorem Filter.frequently_atBot - theorem Filter.frequently_atTop' - theorem Filter.frequently_atTop - theorem Filter.frequently_high_scores - theorem Filter.frequently_low_scores - theorem Filter.hasAntitoneBasis_atTop - theorem Filter.high_scores - theorem Filter.inf_map_atBot_neBot_iff - theorem Filter.inf_map_atTop_neBot_iff - theorem Filter.low_scores - theorem Filter.map_add_atTop_eq_nat - theorem Filter.map_atBot_eq - theorem Filter.map_atBot_eq_of_gc - theorem Filter.map_atBot_eq_of_gc_preorder - theorem Filter.map_atTop_eq - theorem Filter.map_atTop_eq_of_gc - theorem Filter.map_atTop_eq_of_gc_preorder - theorem Filter.map_div_atTop_eq_nat - theorem Filter.map_sub_atTop_eq_nat - theorem Filter.map_val_Ici_atTop - theorem Filter.map_val_Iic_atBot - theorem Filter.map_val_Iio_atBot - theorem Filter.map_val_Ioi_atTop - theorem Filter.map_val_atTop_of_Ici_subset - theorem Filter.mem_atBot - theorem Filter.mem_atBot_sets - theorem Filter.mem_atTop - theorem Filter.mem_atTop_sets - theorem Filter.not_tendsto_const_atBot - theorem Filter.not_tendsto_const_atTop - theorem Filter.prod_atBot_atBot_eq - theorem Filter.prod_atTop_atTop_eq - theorem Filter.prod_map_atBot_eq - theorem Filter.prod_map_atTop_eq - theorem Filter.strictMono_subseq_of_id_le - theorem Filter.strictMono_subseq_of_tendsto_atTop - theorem Filter.subseq_forall_of_frequently - theorem Filter.tendsto_Ici_atTop - theorem Filter.tendsto_Iic_atBot - theorem Filter.tendsto_Iio_atBot - theorem Filter.tendsto_Ioi_atTop - theorem Filter.tendsto_add_atTop_iff_nat - theorem Filter.tendsto_add_atTop_nat - theorem Filter.tendsto_atBot' - theorem Filter.tendsto_atBot - theorem Filter.tendsto_atBot_atBot - theorem Filter.tendsto_atBot_atBot_iff_of_monotone - theorem Filter.tendsto_atBot_atBot_of_monotone' - theorem Filter.tendsto_atBot_atBot_of_monotone - theorem Filter.tendsto_atBot_atTop - theorem Filter.tendsto_atBot_atTop_iff_of_antitone - theorem Filter.tendsto_atBot_atTop_of_antitone - theorem Filter.tendsto_atBot_diagonal - theorem Filter.tendsto_atBot_embedding - theorem Filter.tendsto_atBot_mono' - theorem Filter.tendsto_atBot_mono - theorem Filter.tendsto_atBot_of_monotone_of_filter - theorem Filter.tendsto_atBot_of_monotone_of_subseq - theorem Filter.tendsto_atBot_principal - theorem Filter.tendsto_atBot_pure - theorem Filter.tendsto_atTop' - theorem Filter.tendsto_atTop - theorem Filter.tendsto_atTop_atBot - theorem Filter.tendsto_atTop_atBot_iff_of_antitone - theorem Filter.tendsto_atTop_atBot_of_antitone - theorem Filter.tendsto_atTop_atTop - theorem Filter.tendsto_atTop_atTop_iff_of_monotone - theorem Filter.tendsto_atTop_atTop_of_monotone' - theorem Filter.tendsto_atTop_atTop_of_monotone - theorem Filter.tendsto_atTop_diagonal - theorem Filter.tendsto_atTop_embedding - theorem Filter.tendsto_atTop_finset_of_monotone - theorem Filter.tendsto_atTop_mono' - theorem Filter.tendsto_atTop_mono - theorem Filter.tendsto_atTop_of_monotone_of_filter - theorem Filter.tendsto_atTop_of_monotone_of_subseq - theorem Filter.tendsto_atTop_principal - theorem Filter.tendsto_atTop_pure - theorem Filter.tendsto_comp_val_Ici_atTop - theorem Filter.tendsto_comp_val_Iic_atBot - theorem Filter.tendsto_comp_val_Iio_atBot - theorem Filter.tendsto_comp_val_Ioi_atTop - theorem Filter.tendsto_finset_image_atTop_atTop - theorem Filter.tendsto_finset_preimage_atTop_atTop - theorem Filter.tendsto_finset_prod_atTop - theorem Filter.tendsto_finset_range - theorem Filter.tendsto_sub_atTop_nat - theorem Filter.unbounded_of_tendsto_atBot' - theorem Filter.unbounded_of_tendsto_atBot - theorem Filter.unbounded_of_tendsto_atTop' - theorem Filter.unbounded_of_tendsto_atTop - theorem IsBot.atBot_eq - theorem IsTop.atTop_eq - theorem Monotone.ciInf_comp_tendsto_atBot - theorem Monotone.ciInf_comp_tendsto_atBot_of_linearOrder - theorem Monotone.ciSup_comp_tendsto_atTop - theorem Monotone.ciSup_comp_tendsto_atTop_of_linearOrder - theorem Monotone.iInf_comp_tendsto_atBot - theorem Monotone.iInter_comp_tendsto_atBot - theorem Monotone.iSup_comp_tendsto_atTop - theorem Monotone.iUnion_comp_tendsto_atTop - theorem Monotone.lowerBounds_range_comp_tendsto_atBot - theorem Monotone.piecewise_eventually_eq_iUnion - theorem Monotone.upperBounds_range_comp_tendsto_atTop - theorem Nat.eventually_mul_pow_lt_factorial_sub - theorem Nat.eventually_pow_lt_factorial_sub - theorem Nat.exists_mul_pow_lt_factorial - theorem Nat.exists_pow_lt_factorial - theorem Nat.map_cast_int_atTop - theorem OrderIso.comap_atBot - theorem OrderIso.comap_atTop - theorem OrderIso.map_atBot - theorem OrderIso.map_atTop - theorem OrderIso.tendsto_atBot - theorem OrderIso.tendsto_atBot_iff - theorem OrderIso.tendsto_atTop - theorem OrderIso.tendsto_atTop_iff - theorem StrictMono.tendsto_atTop Added Mathlib/Order/Filter/AtTopBot/Basic.lean + theorem Filter.Eventually.atTop_of_arithmetic + theorem Filter.HasAntitoneBasis.comp_mono + theorem Filter.HasAntitoneBasis.comp_strictMono + theorem Filter.HasAntitoneBasis.eventually_subset + theorem Filter.HasAntitoneBasis.subbasis_with_rel + theorem Filter.Tendsto.eventually_forall_ge_atTop + theorem Filter.Tendsto.eventually_forall_le_atBot + theorem Filter.Tendsto.subseq_mem + theorem Filter.atBot_Iic_eq + theorem Filter.atBot_Iio_eq + theorem Filter.atBot_basis' + theorem Filter.atBot_basis + theorem Filter.atBot_basis_Iio' + theorem Filter.atBot_basis_Iio + theorem Filter.atBot_neBot + theorem Filter.atBot_neBot_iff + theorem Filter.atTop_Ici_eq + theorem Filter.atTop_Ioi_eq + theorem Filter.atTop_basis' + theorem Filter.atTop_basis + theorem Filter.atTop_basis_Ioi' + theorem Filter.atTop_basis_Ioi + theorem Filter.atTop_neBot + theorem Filter.atTop_neBot_iff + theorem Filter.eventually_atBot + theorem Filter.eventually_atBot_curry + theorem Filter.eventually_atBot_prod_self' + theorem Filter.eventually_atBot_prod_self + theorem Filter.eventually_atTop + theorem Filter.eventually_atTop_curry + theorem Filter.eventually_atTop_prod_self' + theorem Filter.eventually_atTop_prod_self + theorem Filter.eventually_forall_ge_atTop + theorem Filter.eventually_forall_le_atBot + theorem Filter.exists_eventually_atBot + theorem Filter.exists_eventually_atTop + theorem Filter.exists_le_of_tendsto_atBot + theorem Filter.exists_le_of_tendsto_atTop + theorem Filter.exists_lt_of_tendsto_atBot + theorem Filter.exists_lt_of_tendsto_atTop + theorem Filter.extraction_forall_of_eventually' + theorem Filter.extraction_forall_of_eventually + theorem Filter.extraction_forall_of_frequently + theorem Filter.extraction_of_eventually_atTop + theorem Filter.extraction_of_frequently_atTop' + theorem Filter.extraction_of_frequently_atTop + theorem Filter.frequently_atBot' + theorem Filter.frequently_atBot + theorem Filter.frequently_atTop' + theorem Filter.frequently_atTop + theorem Filter.frequently_high_scores + theorem Filter.frequently_low_scores + theorem Filter.hasAntitoneBasis_atTop + theorem Filter.high_scores + theorem Filter.inf_map_atBot_neBot_iff + theorem Filter.inf_map_atTop_neBot_iff + theorem Filter.low_scores + theorem Filter.map_add_atTop_eq_nat + theorem Filter.map_atBot_eq + theorem Filter.map_atBot_eq_of_gc + theorem Filter.map_atBot_eq_of_gc_preorder + theorem Filter.map_atTop_eq + theorem Filter.map_atTop_eq_of_gc + theorem Filter.map_atTop_eq_of_gc_preorder + theorem Filter.map_div_atTop_eq_nat + theorem Filter.map_sub_atTop_eq_nat + theorem Filter.map_val_Ici_atTop + theorem Filter.map_val_Iic_atBot + theorem Filter.map_val_Iio_atBot + theorem Filter.map_val_Ioi_atTop + theorem Filter.map_val_atTop_of_Ici_subset + theorem Filter.mem_atBot_sets + theorem Filter.mem_atTop_sets + theorem Filter.strictMono_subseq_of_id_le + theorem Filter.strictMono_subseq_of_tendsto_atTop + theorem Filter.subseq_forall_of_frequently + theorem Filter.tendsto_Ici_atTop + theorem Filter.tendsto_Iic_atBot + theorem Filter.tendsto_Iio_atBot + theorem Filter.tendsto_Ioi_atTop + theorem Filter.tendsto_add_atTop_iff_nat + theorem Filter.tendsto_add_atTop_nat + theorem Filter.tendsto_atBot' + theorem Filter.tendsto_atBot_atBot + theorem Filter.tendsto_atBot_atBot_iff_of_monotone + theorem Filter.tendsto_atBot_atTop + theorem Filter.tendsto_atBot_atTop_iff_of_antitone + theorem Filter.tendsto_atBot_principal + theorem Filter.tendsto_atTop' + theorem Filter.tendsto_atTop_atBot + theorem Filter.tendsto_atTop_atBot_iff_of_antitone + theorem Filter.tendsto_atTop_atTop + theorem Filter.tendsto_atTop_atTop_iff_of_monotone + theorem Filter.tendsto_atTop_principal + theorem Filter.tendsto_comp_val_Ici_atTop + theorem Filter.tendsto_comp_val_Iic_atBot + theorem Filter.tendsto_comp_val_Iio_atBot + theorem Filter.tendsto_comp_val_Ioi_atTop + theorem Filter.tendsto_sub_atTop_nat + theorem Filter.unbounded_of_tendsto_atBot' + theorem Filter.unbounded_of_tendsto_atBot + theorem Filter.unbounded_of_tendsto_atTop' + theorem Filter.unbounded_of_tendsto_atTop + theorem Nat.eventually_mul_pow_lt_factorial_sub + theorem Nat.eventually_pow_lt_factorial_sub + theorem Nat.exists_mul_pow_lt_factorial + theorem Nat.exists_pow_lt_factorial + theorem Nat.map_cast_int_atTop Modified Mathlib/Order/Filter/AtTopBot/BigOperators.lean Added Mathlib/Order/Filter/AtTopBot/CompleteLattice.lean + theorem Antitone.ciInf_comp_tendsto_atTop + theorem Antitone.ciInf_comp_tendsto_atTop_of_linearOrder + theorem Antitone.ciSup_comp_tendsto_atBot + theorem Antitone.ciSup_comp_tendsto_atBot_of_linearOrder + theorem Antitone.iInf_comp_tendsto_atTop + theorem Antitone.iInter_comp_tendsto_atTop + theorem Antitone.iSup_comp_tendsto_atBot + theorem Antitone.iUnion_comp_tendsto_atBot + theorem Filter.Subsingleton.atBot_eq + theorem Filter.Subsingleton.atTop_eq + theorem Monotone.ciInf_comp_tendsto_atBot + theorem Monotone.ciInf_comp_tendsto_atBot_of_linearOrder + theorem Monotone.ciSup_comp_tendsto_atTop + theorem Monotone.ciSup_comp_tendsto_atTop_of_linearOrder + theorem Monotone.iInf_comp_tendsto_atBot + theorem Monotone.iInter_comp_tendsto_atBot + theorem Monotone.iSup_comp_tendsto_atTop + theorem Monotone.iUnion_comp_tendsto_atTop Modified Mathlib/Order/Filter/AtTopBot/CountablyGenerated.lean Added Mathlib/Order/Filter/AtTopBot/Defs.lean + theorem Antitone.piecewise_eventually_eq_iInter + theorem Filter.Frequently.forall_exists_of_atBot + theorem Filter.Frequently.forall_exists_of_atTop + theorem Filter.Ici_mem_atTop + theorem Filter.Iic_mem_atBot + theorem Filter.Iio_mem_atBot + theorem Filter.Ioi_mem_atTop + def Filter.atBot + def Filter.atTop + theorem Filter.atTop_eq_generate_Ici + theorem Filter.atTop_eq_generate_of_forall_exists_le + theorem Filter.atTop_eq_generate_of_not_bddAbove + theorem Filter.eventually_ge_atTop + theorem Filter.eventually_gt_atTop + theorem Filter.eventually_le_atBot + theorem Filter.eventually_lt_atBot + theorem Filter.eventually_ne_atBot + theorem Filter.eventually_ne_atTop + theorem Filter.mem_atBot + theorem Filter.mem_atTop + theorem IsBot.atBot_eq + theorem IsTop.atTop_eq + theorem Monotone.piecewise_eventually_eq_iUnion Added Mathlib/Order/Filter/AtTopBot/Disjoint.lean + theorem Filter.disjoint_atBot_atTop + theorem Filter.disjoint_atBot_principal_Ici + theorem Filter.disjoint_atBot_principal_Ioi + theorem Filter.disjoint_atTop_atBot + theorem Filter.disjoint_atTop_principal_Iic + theorem Filter.disjoint_atTop_principal_Iio + theorem Filter.disjoint_pure_atBot + theorem Filter.disjoint_pure_atTop Added Mathlib/Order/Filter/AtTopBot/Finset.lean + theorem Filter.atTop_finset_eq_iInf + theorem Filter.tendsto_atTop_finset_of_monotone + theorem Filter.tendsto_finset_image_atTop_atTop + theorem Filter.tendsto_finset_preimage_atTop_atTop + theorem Filter.tendsto_finset_range Modified Mathlib/Order/Filter/AtTopBot/Floor.lean Modified Mathlib/Order/Filter/AtTopBot/Group.lean Added Mathlib/Order/Filter/AtTopBot/Map.lean + theorem OrderIso.comap_atBot + theorem OrderIso.comap_atTop + theorem OrderIso.map_atBot + theorem OrderIso.map_atTop + theorem OrderIso.tendsto_atBot + theorem OrderIso.tendsto_atBot_iff + theorem OrderIso.tendsto_atTop + theorem OrderIso.tendsto_atTop_iff Modified Mathlib/Order/Filter/AtTopBot/ModEq.lean Modified Mathlib/Order/Filter/AtTopBot/Monoid.lean Added Mathlib/Order/Filter/AtTopBot/Prod.lean + theorem Filter.Tendsto.prod_atBot + theorem Filter.Tendsto.prod_atTop + theorem Filter.Tendsto.prod_map_prod_atBot + theorem Filter.Tendsto.prod_map_prod_atTop + theorem Filter.prod_atBot_atBot_eq + theorem Filter.prod_atTop_atTop_eq + theorem Filter.prod_map_atBot_eq + theorem Filter.prod_map_atTop_eq + theorem Filter.tendsto_atBot_diagonal + theorem Filter.tendsto_atTop_diagonal + theorem Filter.tendsto_finset_prod_atTop Added Mathlib/Order/Filter/AtTopBot/Tendsto.lean + theorem Antitone.lowerBounds_range_comp_tendsto_atTop + theorem Antitone.upperBounds_range_comp_tendsto_atBot + theorem Filter.OrderBot.atBot_eq + theorem Filter.OrderTop.atTop_eq + theorem Filter.comap_embedding_atBot + theorem Filter.comap_embedding_atTop + theorem Filter.not_tendsto_const_atBot + theorem Filter.not_tendsto_const_atTop + theorem Filter.tendsto_atBot + theorem Filter.tendsto_atBot_atBot_of_monotone' + theorem Filter.tendsto_atBot_atBot_of_monotone + theorem Filter.tendsto_atBot_atTop_of_antitone + theorem Filter.tendsto_atBot_embedding + theorem Filter.tendsto_atBot_mono' + theorem Filter.tendsto_atBot_mono + theorem Filter.tendsto_atBot_of_monotone_of_filter + theorem Filter.tendsto_atBot_of_monotone_of_subseq + theorem Filter.tendsto_atBot_pure + theorem Filter.tendsto_atTop + theorem Filter.tendsto_atTop_atBot_of_antitone + theorem Filter.tendsto_atTop_atTop_of_monotone' + theorem Filter.tendsto_atTop_atTop_of_monotone + theorem Filter.tendsto_atTop_embedding + theorem Filter.tendsto_atTop_mono' + theorem Filter.tendsto_atTop_mono + theorem Filter.tendsto_atTop_of_monotone_of_filter + theorem Filter.tendsto_atTop_of_monotone_of_subseq + theorem Filter.tendsto_atTop_pure + theorem Monotone.lowerBounds_range_comp_tendsto_atBot + theorem Monotone.upperBounds_range_comp_tendsto_atTop + theorem StrictMono.tendsto_atTop Modified Mathlib/Order/Filter/Cofinite.lean Modified Mathlib/Order/Filter/EventuallyConst.lean Modified Mathlib/Order/Filter/IndicatorFunction.lean Modified Mathlib/Order/Filter/Interval.lean Modified Mathlib/Order/Filter/Pointwise.lean Modified Mathlib/Order/Filter/SmallSets.lean Modified Mathlib/Order/LiminfLimsup.lean Modified Mathlib/RingTheory/GradedAlgebra/HomogeneousLocalization.lean Modified Mathlib/RingTheory/Noetherian/Defs.lean Modified Mathlib/RingTheory/Noetherian/Orzech.lean Modified Mathlib/Topology/Algebra/InfiniteSum/Constructions.lean Modified Mathlib/Topology/Algebra/InfiniteSum/NatInt.lean Modified Mathlib/Topology/Basic.lean Modified Mathlib/Topology/Defs/Sequences.lean Modified Mathlib/Topology/Order/LeftRightNhds.lean 2025-02-10 19:23:34 6b1508f chore(FieldTheory/Relrank): restore two docstrings (#21669) These docstrings were accidentally removed in #21627. ESTIMATED CHANGES Modified Mathlib/FieldTheory/Relrank.lean 2025-02-10 18:44:26 f64765b chore(Topology/MetricSpace/Pseudo): move lemmas downstream (#21644) I am looking at the import graph of `Topology/MetricSpace/Defs.lean` and noticing two clusters of gray imports: one via `UniformSpace/Compact.lean` and another via `Data/ENNReal/Inv.lean`. This PR attempts to address the first. In `MetricSpace/Pseudo/Defs.lean` we import `UniformSpace/Compact.lean` to prove `finite_cover_balls_of_compact` and `lebesgue_number_lemma_of_metric`. It seems these are only usedin files that already import `Pseudo/Lemmas.lean`, so we can move them downstream to shake that import. * `finite_cover_balls_of_compact` only needs imports that are already available in `Pseudo/Basic.lean`, so we can move it there. * `lebesgue_number_lemma_of_metric` really needs `UniformSpace/Compact.lean`, so we move it to `Pseudo/Lemmas.lean` and readd the import of `UniformSpace/Compact.lean`. ESTIMATED CHANGES Modified Mathlib/Topology/MetricSpace/Pseudo/Basic.lean + theorem finite_cover_balls_of_compact Modified Mathlib/Topology/MetricSpace/Pseudo/Defs.lean - theorem finite_cover_balls_of_compact - theorem lebesgue_number_lemma_of_metric - theorem lebesgue_number_lemma_of_metric_sUnion Modified Mathlib/Topology/MetricSpace/Pseudo/Lemmas.lean + theorem lebesgue_number_lemma_of_metric + theorem lebesgue_number_lemma_of_metric_sUnion 2025-02-10 17:54:28 ac7f439 chore(Algebra/BigOperators/Ring): don't import `Field` (#21656) Split the file into the part talking about rings and the part talking about fields. See https://github.com/leanprover-community/mathlib3/pull/2152 and https://github.com/leanprover-community/mathlib4/pull/19630 for the new copyright header. ESTIMATED CHANGES Modified Archive/Imo/Imo1975Q1.lean Modified Archive/Imo/Imo2024Q1.lean Modified Archive/OxfordInvariants/Summer2021/Week3P1.lean Modified Mathlib.lean Modified Mathlib/Algebra/BigOperators/Associated.lean Modified Mathlib/Algebra/BigOperators/Expect.lean Added Mathlib/Algebra/BigOperators/Field.lean + theorem Finset.sum_div + theorem Multiset.sum_map_div Modified Mathlib/Algebra/BigOperators/Fin.lean Modified Mathlib/Algebra/BigOperators/Finsupp.lean Renamed Mathlib/Algebra/BigOperators/Ring.lean to Mathlib/Algebra/BigOperators/Ring/Finset.lean - theorem Finset.sum_div - theorem Multiset.sum_map_div Modified Mathlib/Algebra/GeomSum.lean Modified Mathlib/Algebra/Group/AddChar.lean Modified Mathlib/Algebra/Group/Subgroup/Finsupp.lean Modified Mathlib/Algebra/Group/Submonoid/Finsupp.lean Modified Mathlib/Algebra/MvPolynomial/SchwartzZippel.lean Modified Mathlib/Algebra/Order/BigOperators/Ring/Finset.lean Modified Mathlib/Analysis/Convex/Visible.lean Modified Mathlib/Analysis/InnerProductSpace/Basic.lean Modified Mathlib/Analysis/MeanInequalities.lean Modified Mathlib/Analysis/SpecialFunctions/Log/Base.lean Modified Mathlib/Combinatorics/Additive/AP/Three/Defs.lean Modified Mathlib/Combinatorics/Additive/Corner/Defs.lean Modified Mathlib/Combinatorics/Additive/ErdosGinzburgZiv.lean Modified Mathlib/Combinatorics/Additive/FreimanHom.lean Modified Mathlib/Combinatorics/Additive/VerySmallDoubling.lean Modified Mathlib/Combinatorics/Derangements/Exponential.lean Modified Mathlib/Combinatorics/Derangements/Finite.lean Modified Mathlib/Combinatorics/Enumerative/Composition.lean Modified Mathlib/Combinatorics/Enumerative/DoubleCounting.lean Modified Mathlib/Combinatorics/Enumerative/IncidenceAlgebra.lean Modified Mathlib/Combinatorics/Enumerative/InclusionExclusion.lean Modified Mathlib/Combinatorics/Enumerative/Partition.lean Modified Mathlib/Combinatorics/SetFamily/AhlswedeZhang.lean Modified Mathlib/Combinatorics/SetFamily/LYM.lean Modified Mathlib/Combinatorics/SimpleGraph/DegreeSum.lean Modified Mathlib/Combinatorics/SimpleGraph/IncMatrix.lean Modified Mathlib/Combinatorics/SimpleGraph/Regularity/Bound.lean Modified Mathlib/Combinatorics/SimpleGraph/Regularity/Uniform.lean Modified Mathlib/Data/Fin/Tuple/Reflection.lean Modified Mathlib/Data/Finset/NatAntidiagonal.lean Modified Mathlib/Data/Matrix/ConjTranspose.lean Modified Mathlib/Data/Matrix/Mul.lean Modified Mathlib/Data/Matrix/PEquiv.lean Modified Mathlib/Data/Nat/Choose/Sum.lean Modified Mathlib/FieldTheory/Differential/Liouville.lean Modified Mathlib/LinearAlgebra/Matrix/Orthogonal.lean Modified Mathlib/NumberTheory/ArithmeticFunction.lean Modified Mathlib/NumberTheory/Bernoulli.lean Modified Mathlib/NumberTheory/LSeries/Linearity.lean Modified Mathlib/RingTheory/ChainOfDivisors.lean Modified Mathlib/RingTheory/Coprime/Lemmas.lean Modified Mathlib/RingTheory/UniqueFactorizationDomain/Basic.lean Modified Mathlib/RingTheory/UniqueFactorizationDomain/Finite.lean Modified Mathlib/RingTheory/UniqueFactorizationDomain/Multiplicative.lean Modified Mathlib/RingTheory/UniqueFactorizationDomain/Multiplicity.lean Modified Mathlib/RingTheory/UniqueFactorizationDomain/Nat.lean Modified Mathlib/RingTheory/UniqueFactorizationDomain/NormalizedFactors.lean 2025-02-10 17:54:27 2889e7b doc(NumberTheory/LSeries/PrimesInAP): fix typo "infintely" (#21647) ESTIMATED CHANGES Modified Mathlib/NumberTheory/LSeries/PrimesInAP.lean 2025-02-10 17:54:26 5f9d5ac fix(CI): remove labels on `bors merge-` (#21645) Reported on #21636 This makes the older regex be more restrictive, since it now should distinguish between `bors d+`/`bors delegate` on one hand and `bors d-` on the other. Also fixes a bug in the previous PR: I had forgotten to "close" the `sed` call. ESTIMATED CHANGES Modified .github/workflows/maintainer_bors.yml 2025-02-10 17:54:24 5b5cbab chore(Algebra/Module): process porting notes (#21634) ESTIMATED CHANGES Modified Mathlib/Algebra/Module/Defs.lean Modified Mathlib/Algebra/Module/End.lean Modified Mathlib/Algebra/Module/Equiv/Defs.lean +/- theorem LinearEquiv.toFun_eq_coe Modified Mathlib/Algebra/Module/Equiv/Opposite.lean Modified Mathlib/Algebra/Module/GradedModule.lean Modified Mathlib/Algebra/Module/Injective.lean Modified Mathlib/Algebra/Module/LinearMap/Defs.lean Modified Mathlib/Algebra/Module/LocalizedModule/Basic.lean Modified Mathlib/Algebra/Module/PID.lean Modified Mathlib/Algebra/Module/Pi.lean Modified Mathlib/Algebra/Module/PointwisePi.lean Modified Mathlib/Algebra/Module/RingHom.lean Modified Mathlib/Algebra/Module/Submodule/Defs.lean Modified Mathlib/Algebra/Module/Submodule/Equiv.lean Modified Mathlib/Algebra/Module/Submodule/Ker.lean Modified Mathlib/Algebra/Module/Submodule/Lattice.lean Modified Mathlib/Algebra/Module/Submodule/LinearMap.lean Modified Mathlib/Algebra/Module/Submodule/Map.lean Modified Mathlib/Algebra/Module/Torsion.lean - def Submodule.torsion'AddSubMonoid Modified Mathlib/Algebra/Module/ULift.lean 2025-02-10 17:54:23 de7480d chore: namespace IntermediateField.normalClosure (#21621) This was conflicting Subgroup.normalClosure ESTIMATED CHANGES Modified Mathlib/FieldTheory/Galois/Basic.lean Modified Mathlib/FieldTheory/Galois/GaloisClosure.lean Modified Mathlib/FieldTheory/Galois/Infinite.lean Modified Mathlib/FieldTheory/Normal/Closure.lean Modified Mathlib/NumberTheory/NumberField/Norm.lean 2025-02-10 17:54:21 5060a30 chore(Data/Complex): declare the Complex norm instance sooner (#21494) Create the file `Data/Complex/Norm` with the minimal imports so that `Complex.norm` could be defined and related to `Complex.abs`. Move to `Data/Complex/Norm` all the results from `Analysis/Complex/Basic.lean`, where `Complex.norm` was defined, that depends only on the imports of `Data/Complex/Norm`. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Analysis/Complex/Basic.lean - theorem Complex.dist_conj_self - theorem Complex.dist_eq - theorem Complex.dist_eq_re_im - theorem Complex.dist_mk - theorem Complex.dist_of_im_eq - theorem Complex.dist_of_re_eq - theorem Complex.dist_self_conj - theorem Complex.edist_of_im_eq - theorem Complex.edist_of_re_eq - theorem Complex.nndist_conj_self - theorem Complex.nndist_of_im_eq - theorem Complex.nndist_of_re_eq - theorem Complex.nndist_self_conj - theorem Complex.nnnorm_I - theorem Complex.nnnorm_natCast - theorem Complex.nnnorm_nnratCast - theorem Complex.nnnorm_ofNat - theorem Complex.nnnorm_ratCast - theorem Complex.nnnorm_real - theorem Complex.normSq_eq_norm_sq - theorem Complex.norm_I - theorem Complex.norm_eq_abs - theorem Complex.norm_intCast - theorem Complex.norm_int_of_nonneg - theorem Complex.norm_natCast - theorem Complex.norm_nnratCast - theorem Complex.norm_ofNat - theorem Complex.norm_ratCast - theorem Complex.norm_real Modified Mathlib/Data/Complex/Exponential.lean Added Mathlib/Data/Complex/Norm.lean + theorem Complex.dist_conj_self + theorem Complex.dist_eq + theorem Complex.dist_eq_re_im + theorem Complex.dist_mk + theorem Complex.dist_of_im_eq + theorem Complex.dist_of_re_eq + theorem Complex.dist_self_conj + theorem Complex.edist_of_im_eq + theorem Complex.edist_of_re_eq + theorem Complex.nndist_conj_self + theorem Complex.nndist_of_im_eq + theorem Complex.nndist_of_re_eq + theorem Complex.nndist_self_conj + theorem Complex.nnnorm_I + theorem Complex.nnnorm_natCast + theorem Complex.nnnorm_nnratCast + theorem Complex.nnnorm_ofNat + theorem Complex.nnnorm_ratCast + theorem Complex.nnnorm_real + theorem Complex.normSq_eq_norm_sq + theorem Complex.norm_I + theorem Complex.norm_eq_abs + theorem Complex.norm_intCast + theorem Complex.norm_int_of_nonneg + theorem Complex.norm_natCast + theorem Complex.norm_nnratCast + theorem Complex.norm_ofNat + theorem Complex.norm_ratCast + theorem Complex.norm_real 2025-02-10 17:54:19 228f5b6 feat(Topology): the ULift functor (#20345) In this PR, we define the functor `uliftFunctor.{v} : TopCat.{u} ⥤ TopCat.{max u v}` which sends a topological space in `Type u` to a homeomorphic space in `Type (max u v)`. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/AlgebraicTopology/FundamentalGroupoid/InducedMaps.lean Modified Mathlib/Topology/Algebra/Group/Basic.lean Modified Mathlib/Topology/Algebra/Module/Equiv.lean Modified Mathlib/Topology/Algebra/Monoid.lean Modified Mathlib/Topology/Algebra/MulAction.lean Modified Mathlib/Topology/Category/CompHaus/Basic.lean Added Mathlib/Topology/Category/TopCat/ULift.lean + def TopCat.uliftFunctor + def TopCat.uliftFunctorCompForgetIso + def TopCat.uliftFunctorFullyFaithful + def TopCat.uliftFunctorObjHomeo + theorem TopCat.uliftFunctorObjHomeo_naturality_apply + theorem TopCat.uliftFunctorObjHomeo_symm_naturality_apply Modified Mathlib/Topology/Compactness/CompactlyGeneratedSpace.lean Modified Mathlib/Topology/Constructions.lean - theorem continuous_uLift_down - theorem continuous_uLift_up + theorem continuous_uliftDown + theorem continuous_uliftMap + theorem continuous_uliftUp Modified Mathlib/Topology/Homeomorph.lean 2025-02-10 17:54:18 bec437b feat(RingTheory/GradedAlgebra): define homogeneous submodule (#18728) and redefine homogeneous ideal as a homogeneous submodule rename `SetLike.Homogeneous` to `SetLike.IsHomogeneousElem` introduced `DirectSum.SetLike.Homogeneous` to mean a set $S$ is homogeneous iff for all $s \in S$, all of its projection $s_i \in S$ as well. ESTIMATED CHANGES Modified Counterexamples/HomogeneousPrimeNotPrime.lean Modified Mathlib.lean Modified Mathlib/Algebra/DirectSum/Decomposition.lean + theorem DirectSum.AddSubmonoidClass.IsHomogeneous.mem_iff + def DirectSum.SetLike.IsHomogeneous Modified Mathlib/Algebra/DirectSum/Internal.lean Modified Mathlib/Algebra/GradedMonoid.lean - def SetLike.Homogeneous + theorem SetLike.IsHomogeneousElem.mul + def SetLike.IsHomogeneousElem - theorem SetLike.homogeneous_coe - theorem SetLike.homogeneous_mul - theorem SetLike.homogeneous_one + theorem SetLike.isHomogeneousElem_coe + theorem SetLike.isHomogeneousElem_one Modified Mathlib/Algebra/GradedMulAction.lean - theorem SetLike.Homogeneous.graded_smul + theorem SetLike.IsHomogeneousElem.graded_smul Modified Mathlib/AlgebraicGeometry/ProjectiveSpectrum/Topology.lean Renamed Mathlib/RingTheory/GradedAlgebra/HomogeneousIdeal.lean to Mathlib/RingTheory/GradedAlgebra/Homogeneous/Ideal.lean +/- theorem HomogeneousIdeal.isHomogeneous - def HomogeneousIdeal.toIdeal - structure HomogeneousIdeal - def Ideal.IsHomogeneous +/- theorem Ideal.homogeneous_span +/- theorem Ideal.mem_homogeneousCore_of_homogeneous_of_mem +/- theorem Ideal.mul_homogeneous_element_mem_of_mem Added Mathlib/RingTheory/GradedAlgebra/Homogeneous/Submodule.lean + theorem HomogeneousSubmodule.ext' + theorem HomogeneousSubmodule.ext + theorem HomogeneousSubmodule.isHomogeneous + theorem HomogeneousSubmodule.mem_toSubmodule_iff + theorem HomogeneousSubmodule.toSubmodule_injective + structure HomogeneousSubmodule + theorem Submodule.IsHomogeneous.mem_iff + def Submodule.IsHomogeneous Modified Mathlib/RingTheory/GradedAlgebra/Radical.lean 2025-02-10 16:57:06 049e824 chore(Algebra/Algebra): process porting notes (#21658) ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/Basic.lean Modified Mathlib/Algebra/Algebra/Bilinear.lean Modified Mathlib/Algebra/Algebra/Defs.lean Modified Mathlib/Algebra/Algebra/Hom.lean Modified Mathlib/Algebra/Algebra/Operations.lean Modified Mathlib/Algebra/Algebra/Rat.lean Modified Mathlib/Algebra/Algebra/Subalgebra/Basic.lean Modified Mathlib/Algebra/Algebra/Subalgebra/Operations.lean Modified Mathlib/Algebra/Algebra/Unitization.lean 2025-02-10 16:06:08 7f4a2b1 feat: easy utility lemmas for presented groups (#21620) Those lemmas are useful to work with actual examples of presented groups. ESTIMATED CHANGES Modified Mathlib/GroupTheory/PresentedGroup.lean + theorem PresentedGroup.mk_eq_mk_of_inv_mul_mem + theorem PresentedGroup.mk_eq_mk_of_mul_inv_mem + theorem PresentedGroup.mk_eq_one_iff + theorem PresentedGroup.one_of_mem 2025-02-10 14:34:55 82702ec chore: update Mathlib dependencies 2025-02-10 (#21646) This PR updates the Mathlib dependencies. ESTIMATED CHANGES Modified lake-manifest.json 2025-02-10 14:34:54 48d0e0e chore: split Data.List.Basic (#21530) ``` + getLast_append_of_right_ne_nil -- better name + map_filter -- previously primed and can be renamed + modifyLast_append_of_right_ne_nil -- better name + modifyLast_concat -- better name + span_eq_takeWhile_dropWhile -- better name - decidableSublist -- instance exists upstream - lookmap.go_append -- made private - modifyLast.go_append_one -- made private - span.loop_eq_take_drop -- made private ``` ESTIMATED CHANGES Modified Archive/Imo/Imo2024Q5.lean Modified Mathlib.lean Modified Mathlib/Data/Finset/Defs.lean Modified Mathlib/Data/List/Basic.lean - def List.bidirectionalRec - theorem List.bidirectionalRec_cons_append - theorem List.bidirectionalRec_nil - theorem List.bidirectionalRec_singleton - theorem List.dropWhile_eq_nil_iff - theorem List.dropWhile_get_zero_not - theorem List.find?_eq_head?_dropWhile_not - theorem List.find?_eq_head_dropWhile_not - theorem List.find?_not_eq_head?_dropWhile - theorem List.find?_not_eq_head_dropWhile - theorem List.get?_succ_scanl - theorem List.getElem?_scanl_zero - theorem List.getElem_scanl_zero - theorem List.getElem_succ_scanl - theorem List.getLast_append' + theorem List.getLast_append_of_right_ne_nil - theorem List.getLast_filter' - theorem List.get_succ_scanl - theorem List.intercalate_splitOn - theorem List.intersperse_cons_cons - theorem List.intersperse_singleton - theorem List.length_lookmap - theorem List.length_scanl - theorem List.lookmap.go_append - theorem List.lookmap_congr - theorem List.lookmap_cons_none - theorem List.lookmap_cons_some - theorem List.lookmap_id' - theorem List.lookmap_map_eq - theorem List.lookmap_nil - theorem List.lookmap_none - theorem List.lookmap_of_forall_not - theorem List.lookmap_some - theorem List.map_filter' + theorem List.map_filter - theorem List.mem_takeWhile_imp - theorem List.modifyLast.go_append_one - theorem List.modifyLast_append - theorem List.modifyLast_append_one - theorem List.monotone_filter_left - def List.reverseRecOn - theorem List.reverseRecOn_concat - theorem List.reverseRecOn_nil - theorem List.scanl_cons - theorem List.scanl_nil - theorem List.scanr_cons - theorem List.scanr_nil - theorem List.span.loop_eq_take_drop + theorem List.span_eq_takeWhile_dropWhile - theorem List.span_eq_take_drop - theorem List.splitOnP.go_acc - theorem List.splitOnP.go_ne_nil - theorem List.splitOnP_cons - theorem List.splitOnP_eq_single - theorem List.splitOnP_first - theorem List.splitOnP_ne_nil - theorem List.splitOnP_nil - theorem List.splitOnP_spec - theorem List.splitOn_intercalate - theorem List.splitOn_nil - theorem List.takeWhile_eq_nil_iff - theorem List.takeWhile_eq_self_iff - theorem List.takeWhile_idem - theorem List.takeWhile_takeWhile Modified Mathlib/Data/List/DropRight.lean Modified Mathlib/Data/List/Flatten.lean Modified Mathlib/Data/List/Indexes.lean Added Mathlib/Data/List/Induction.lean + def List.bidirectionalRec + theorem List.bidirectionalRec_cons_append + theorem List.bidirectionalRec_nil + theorem List.bidirectionalRec_singleton + def List.reverseRecOn + theorem List.reverseRecOn_concat + theorem List.reverseRecOn_nil Modified Mathlib/Data/List/Infix.lean Added Mathlib/Data/List/Lookmap.lean + theorem List.length_lookmap + theorem List.lookmap_congr + theorem List.lookmap_cons_none + theorem List.lookmap_cons_some + theorem List.lookmap_id' + theorem List.lookmap_map_eq + theorem List.lookmap_nil + theorem List.lookmap_none + theorem List.lookmap_of_forall_not + theorem List.lookmap_some + theorem List.perm_lookmap Modified Mathlib/Data/List/MinMax.lean Added Mathlib/Data/List/ModifyLast.lean + theorem List.modifyLast_append_of_right_ne_nil + theorem List.modifyLast_concat Modified Mathlib/Data/List/Palindrome.lean Modified Mathlib/Data/List/Perm/Basic.lean - theorem List.perm_lookmap Modified Mathlib/Data/List/Permutation.lean Added Mathlib/Data/List/Scan.lean + theorem List.get?_succ_scanl + theorem List.getElem?_scanl_zero + theorem List.getElem_scanl_zero + theorem List.getElem_succ_scanl + theorem List.get_succ_scanl + theorem List.length_scanl + theorem List.scanl_cons + theorem List.scanl_nil + theorem List.scanr_cons + theorem List.scanr_nil Modified Mathlib/Data/List/Sigma.lean Modified Mathlib/Data/List/Sort.lean Added Mathlib/Data/List/SplitOn.lean + theorem List.intercalate_splitOn + theorem List.splitOnP.go_acc + theorem List.splitOnP.go_ne_nil + theorem List.splitOnP_cons + theorem List.splitOnP_eq_single + theorem List.splitOnP_first + theorem List.splitOnP_ne_nil + theorem List.splitOnP_nil + theorem List.splitOnP_spec + theorem List.splitOn_intercalate + theorem List.splitOn_nil Modified Mathlib/Data/List/Sublists.lean Added Mathlib/Data/List/TakeWhile.lean + theorem List.dropWhile_eq_nil_iff + theorem List.dropWhile_get_zero_not + theorem List.find?_eq_head?_dropWhile_not + theorem List.find?_eq_head_dropWhile_not + theorem List.find?_not_eq_head?_dropWhile + theorem List.find?_not_eq_head_dropWhile + theorem List.mem_takeWhile_imp + theorem List.takeWhile_eq_nil_iff + theorem List.takeWhile_eq_self_iff + theorem List.takeWhile_idem + theorem List.takeWhile_takeWhile Modified Mathlib/Data/Multiset/Basic.lean Modified Mathlib/Data/Nat/Digits.lean Modified Mathlib/Data/Seq/Seq.lean Modified Mathlib/Data/Stream/Init.lean Modified Mathlib/Data/Vector/Basic.lean 2025-02-10 14:34:52 c38165c feat: basic properties of `MulExpNegMulSq` (#20604) Define `MulExpNegMulSq` and show basic properties. The function is an important tool in the proof of separation of finite measures by subalgebras of functions ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Analysis/SpecialFunctions/Log/Basic.lean + theorem Real.exp_one_mul_le_exp + theorem Real.two_mul_le_exp Added Mathlib/Analysis/SpecialFunctions/MulExpNegMulSq.lean + theorem Continuous.mulExpNegMulSq + theorem Real.abs_mulExpNegMulSq_comp_le_norm + theorem Real.abs_mulExpNegMulSq_le + theorem Real.abs_mulExpNegMulSq_one_le_one + theorem Real.continuous_mulExpNegMulSq + theorem Real.deriv_mulExpNegMulSq + theorem Real.differentiableAt_mulExpNegMulSq + theorem Real.differentiable_mulExpNegMulSq + theorem Real.dist_mulExpNegMulSq_le_dist + theorem Real.dist_mulExpNegMulSq_le_two_mul_sqrt + theorem Real.hasDerivAt_mulExpNegMulSq + theorem Real.lipschitzWith_one_mulExpNegMulSq + def Real.mulExpNegMulSq + theorem Real.mulExpNegMulSq_eq_sqrt_mul_mulExpNegMulSq_one + theorem Real.mulExpNegMulSq_one_le_one + theorem Real.mulExpNegSq_apply + theorem Real.neg_mulExpNegMulSq_neg + theorem Real.neg_one_le_mulExpNegMulSq_one + theorem Real.nnnorm_deriv_mulExpNegMulSq_le_one + theorem Real.norm_deriv_mulExpNegMulSq_le_one + theorem Real.tendsto_mulExpNegMulSq 2025-02-10 13:06:08 97c3e00 chore: add some defensive 'assert_not_exists Subgroup' (#21639) ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/Rat.lean Modified Mathlib/Algebra/Category/Grp/Preadditive.lean Modified Mathlib/RingTheory/OreLocalization/Ring.lean 2025-02-10 13:06:06 a5c2791 fix(Cache): error on import loop (#21632) In case of an import loop, throw an error instead of stack overflow due to max recursion depth. ESTIMATED CHANGES Modified Cache/Hashing.lean 2025-02-10 13:06:04 e439a5f chore(GroupTheory/Index): don't import `Field` (#21304) ESTIMATED CHANGES Modified Mathlib/GroupTheory/Commutator/Finite.lean + theorem Subgroup.index_center_le_pow Modified Mathlib/GroupTheory/Index.lean - theorem Subgroup.index_center_le_pow Modified Mathlib/GroupTheory/OrderOfElement.lean Modified Mathlib/GroupTheory/Perm/Centralizer.lean Modified Mathlib/GroupTheory/Schreier.lean 2025-02-10 11:41:13 4b69de2 feat(CI): On `bors r/d-`, remove `ready-to-merge` and `delegated` labels (#21636) This removes the labels also on `bors d-`, even though this is not a `bors` command. [Zulip discussion](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/queueboard/near/498700175) ESTIMATED CHANGES Modified .github/workflows/maintainer_bors.yml 2025-02-10 11:41:11 8a3627b chore: update Mathlib dependencies 2025-02-10 (#21633) This PR updates the Mathlib dependencies. ESTIMATED CHANGES Modified lake-manifest.json 2025-02-10 11:41:09 88b0d63 Chore: split TuringMachine.lean into smaller files (#21623) A rather minimal change, just splitting the files and mentioning that in the introductions. Since TuringMachine imports PostTuringMachine, any file that imported TuringMachine before can still do so. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Computability/PostTuringMachine.lean + def Turing.FRespects + theorem Turing.Reaches.to₀ + def Turing.Reaches + theorem Turing.Reaches₀.head + theorem Turing.Reaches₀.refl + theorem Turing.Reaches₀.single + theorem Turing.Reaches₀.tail' + theorem Turing.Reaches₀.tail + theorem Turing.Reaches₀.trans + def Turing.Reaches₀ + theorem Turing.Reaches₁.to₀ + def Turing.Reaches₁ + def Turing.Respects + def Turing.TM0.Cfg.map + structure Turing.TM0.Cfg + def Turing.TM0.Machine.map + theorem Turing.TM0.Machine.map_respects + theorem Turing.TM0.Machine.map_step + def Turing.TM0.Machine + def Turing.TM0.Reaches + def Turing.TM0.Stmt.map + inductive Turing.TM0.Stmt + def Turing.TM0.Supports + def Turing.TM0.eval + def Turing.TM0.init + theorem Turing.TM0.map_init + def Turing.TM0.step + theorem Turing.TM0.step_supports + theorem Turing.TM0.univ_supports + def Turing.TM0to1.tr + def Turing.TM0to1.trCfg + theorem Turing.TM0to1.tr_respects + inductive Turing.TM0to1.Λ' + structure Turing.TM1.Cfg + inductive Turing.TM1.Stmt + def Turing.TM1.Supports + def Turing.TM1.SupportsStmt + def Turing.TM1.eval + def Turing.TM1.init + def Turing.TM1.step + def Turing.TM1.stepAux + theorem Turing.TM1.step_supports + theorem Turing.TM1.stmts_supportsStmt + theorem Turing.TM1.stmts_trans + theorem Turing.TM1.stmts₁_self + theorem Turing.TM1.stmts₁_supportsStmt_mono + theorem Turing.TM1.stmts₁_trans + def Turing.TM1to0.tr + def Turing.TM1to0.trAux + def Turing.TM1to0.trCfg + theorem Turing.TM1to0.tr_eval + theorem Turing.TM1to0.tr_respects + theorem Turing.TM1to0.tr_supports + def Turing.TM1to0.Λ' + theorem Turing.TM1to1.exists_enc_dec + def Turing.TM1to1.move + def Turing.TM1to1.read + def Turing.TM1to1.readAux + theorem Turing.TM1to1.stepAux_move + theorem Turing.TM1to1.stepAux_read + theorem Turing.TM1to1.stepAux_write + theorem Turing.TM1to1.supportsStmt_move + theorem Turing.TM1to1.supportsStmt_read + theorem Turing.TM1to1.supportsStmt_write + def Turing.TM1to1.tr + def Turing.TM1to1.trCfg + def Turing.TM1to1.trNormal + def Turing.TM1to1.trTape' + theorem Turing.TM1to1.trTape'_move_left + theorem Turing.TM1to1.trTape'_move_right + def Turing.TM1to1.trTape + theorem Turing.TM1to1.trTape_mk' + theorem Turing.TM1to1.tr_respects + theorem Turing.TM1to1.tr_supports + def Turing.TM1to1.write + inductive Turing.TM1to1.Λ' + def Turing.eval + def Turing.evalInduction + theorem Turing.eval_maximal + theorem Turing.eval_maximal₁ + theorem Turing.frespects_eq + theorem Turing.fun_respects + theorem Turing.mem_eval + theorem Turing.reaches_eval + theorem Turing.reaches_total + theorem Turing.reaches₀_eq + theorem Turing.reaches₁_eq + theorem Turing.reaches₁_fwd + theorem Turing.tr_eval' + theorem Turing.tr_eval + theorem Turing.tr_eval_dom + theorem Turing.tr_eval_rev + theorem Turing.tr_reaches + theorem Turing.tr_reaches_rev + theorem Turing.tr_reaches₁ Modified Mathlib/Computability/TuringMachine.lean - def Turing.FRespects - theorem Turing.Reaches.to₀ - def Turing.Reaches - theorem Turing.Reaches₀.head - theorem Turing.Reaches₀.refl - theorem Turing.Reaches₀.single - theorem Turing.Reaches₀.tail' - theorem Turing.Reaches₀.tail - theorem Turing.Reaches₀.trans - def Turing.Reaches₀ - theorem Turing.Reaches₁.to₀ - def Turing.Reaches₁ - def Turing.Respects - def Turing.TM0.Cfg.map - structure Turing.TM0.Cfg - def Turing.TM0.Machine.map - theorem Turing.TM0.Machine.map_respects - theorem Turing.TM0.Machine.map_step - def Turing.TM0.Machine - def Turing.TM0.Reaches - def Turing.TM0.Stmt.map - inductive Turing.TM0.Stmt - def Turing.TM0.Supports - def Turing.TM0.eval - def Turing.TM0.init - theorem Turing.TM0.map_init - def Turing.TM0.step - theorem Turing.TM0.step_supports - theorem Turing.TM0.univ_supports - def Turing.TM0to1.tr - def Turing.TM0to1.trCfg - theorem Turing.TM0to1.tr_respects - inductive Turing.TM0to1.Λ' - structure Turing.TM1.Cfg - inductive Turing.TM1.Stmt - def Turing.TM1.Supports - def Turing.TM1.SupportsStmt - def Turing.TM1.eval - def Turing.TM1.init - def Turing.TM1.step - def Turing.TM1.stepAux - theorem Turing.TM1.step_supports - theorem Turing.TM1.stmts_supportsStmt - theorem Turing.TM1.stmts_trans - theorem Turing.TM1.stmts₁_self - theorem Turing.TM1.stmts₁_supportsStmt_mono - theorem Turing.TM1.stmts₁_trans - def Turing.TM1to0.tr - def Turing.TM1to0.trAux - def Turing.TM1to0.trCfg - theorem Turing.TM1to0.tr_eval - theorem Turing.TM1to0.tr_respects - theorem Turing.TM1to0.tr_supports - def Turing.TM1to0.Λ' - theorem Turing.TM1to1.exists_enc_dec - def Turing.TM1to1.move - def Turing.TM1to1.read - def Turing.TM1to1.readAux - theorem Turing.TM1to1.stepAux_move - theorem Turing.TM1to1.stepAux_read - theorem Turing.TM1to1.stepAux_write - theorem Turing.TM1to1.supportsStmt_move - theorem Turing.TM1to1.supportsStmt_read - theorem Turing.TM1to1.supportsStmt_write - def Turing.TM1to1.tr - def Turing.TM1to1.trCfg - def Turing.TM1to1.trNormal - def Turing.TM1to1.trTape' - theorem Turing.TM1to1.trTape'_move_left - theorem Turing.TM1to1.trTape'_move_right - def Turing.TM1to1.trTape - theorem Turing.TM1to1.trTape_mk' - theorem Turing.TM1to1.tr_respects - theorem Turing.TM1to1.tr_supports - def Turing.TM1to1.write - inductive Turing.TM1to1.Λ' - def Turing.eval - def Turing.evalInduction - theorem Turing.eval_maximal - theorem Turing.eval_maximal₁ - theorem Turing.frespects_eq - theorem Turing.fun_respects - theorem Turing.mem_eval - theorem Turing.reaches_eval - theorem Turing.reaches_total - theorem Turing.reaches₀_eq - theorem Turing.reaches₁_eq - theorem Turing.reaches₁_fwd - theorem Turing.tr_eval' - theorem Turing.tr_eval - theorem Turing.tr_eval_dom - theorem Turing.tr_eval_rev - theorem Turing.tr_reaches - theorem Turing.tr_reaches_rev - theorem Turing.tr_reaches₁ 2025-02-10 11:41:08 218aa7e feat: Add lemma mul_pow_mul (#21619) In a monoid (a * b) ^ n * a = a * (b * a) ^ n ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Defs.lean + theorem mul_pow_mul 2025-02-10 11:41:07 78364f8 chore(Computability/ContextFreeGrammar): remove unnecessary universe polymorphism (#21545) It is useless for nonterminals to be universe-polymorphic. The removal of `uN` will make context-free grammars nicer and easier to use. ESTIMATED CHANGES Modified Mathlib/Computability/ContextFreeGrammar.lean +/- def ContextFreeGrammar.Generates +/- def ContextFreeGrammar.Produces +/- def ContextFreeGrammar.language +/- theorem ContextFreeGrammar.mem_language_iff - structure ContextFreeGrammar.{uN,uT} + structure ContextFreeGrammar +/- structure ContextFreeRule 2025-02-10 11:41:05 3d1c97d feat: persistent `#allow_unused_tactic` (#20438) Adds `#allow_unused_tactic!`, the persistent version of `#allow_unused_tactic`. For instance, writing ```lean #allow_unused_tactic! Lean.Parser.Tactic.done Lean.Parser.Tactic.skip ``` makes the tactics `done` and `skip` invisible to the unused tactic linter from where the command is issued onwards, also in files that transitively import the file where the command appears. The PR also includes a utility function `#show_kind tac` to help find the `SyntaxNodeKind` of the tactic `tac`. For instance, using ```lean #show_kind exact _ ``` reports that the `SyntaxNodeKind` is `'Lean.Parser.Tactic.exact'.`. [Zulip](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Persistent.20.23allow_unused_tactic) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Init.lean Modified Mathlib/Tactic.lean Modified Mathlib/Tactic/Linter/UnusedTactic.lean Added Mathlib/Tactic/Linter/UnusedTacticExtension.lean + def Mathlib.Linter.UnusedTactic.addAllowedUnusedTactic Modified MathlibTest/UnusedTactic.lean 2025-02-10 11:41:04 724a95c feat(Analysis.Normed.Ring.Seminorm): add SmoothingSeminorm (#15373) We prove Proposition 1.3.2/1 from S. Bosch, U. Güntzer, R. Remmert, *Non-Archimedean Analysis*: if `f` is a nonarchimedean seminorm on `R`, then `iInf (fun n : PNat => (f (x ^ (n : ℕ))) ^ (1 / (n : ℝ)))` is a power-multiplicative nonarchimedean seminorm on `R`. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/GroupWithZero/Defs.lean + theorem pow_mul_apply_eq_pow_mul Modified Mathlib/Analysis/Normed/Ring/SeminormFromBounded.lean Added Mathlib/Analysis/Normed/Ring/SmoothingSeminorm.lean + theorem isNonarchimedean_smoothingFun + theorem isPowMul_smoothingFun + theorem smoothingFun_apply_of_map_mul_eq_mul + theorem smoothingFun_le + theorem smoothingFun_le_self + theorem smoothingFun_nonneg + theorem smoothingFun_of_map_mul_eq_mul + theorem smoothingFun_of_powMul + theorem smoothingFun_one_le + def smoothingSeminorm + theorem smoothingSeminormSeq_bddBelow + theorem smoothingSeminorm_apply_of_map_mul_eq_mul + theorem smoothingSeminorm_map_one_le_one + theorem smoothingSeminorm_of_mul + theorem tendsto_smoothingFun_comp + theorem tendsto_smoothingFun_of_eq_zero + theorem tendsto_smoothingFun_of_map_one_le_one + theorem tendsto_smoothingFun_of_ne_zero + theorem zero_mem_lowerBounds_smoothingSeminormSeq_range 2025-02-10 10:42:37 6ad6b20 feat: a finite-dimensional Lie algebra with a irreducible faithful finite-dimensional trace-free representation is semisimple (#21614) Over a field of characteristic zero. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Lie/Abelian.lean + theorem LieAlgebra.center_eq_bot + theorem LieAlgebra.isFaithful_self_iff + theorem LieModule.isFaithful_iff_ker_eq_bot + theorem LieModule.ker_eq_bot Modified Mathlib/Algebra/Lie/Derivation/Killing.lean Modified Mathlib/Algebra/Lie/OfAssociative.lean + theorem LieModule.ext_of_isFaithful + theorem LieModule.isFaithful_iff' + theorem LieModule.toEnd_eq_iff + theorem LieModule.toEnd_eq_zero_iff Modified Mathlib/Algebra/Lie/Semisimple/Basic.lean - theorem LieAlgebra.HasTrivialRadical.center_eq_bot Modified Mathlib/Algebra/Lie/Semisimple/Defs.lean + theorem LieAlgebra.hasCentralRadical_of_radical_le + theorem LieSubmodule.eq_top_of_isIrreducible Added Mathlib/Algebra/Lie/Semisimple/Lemmas.lean + theorem LieAlgebra.hasCentralRadical_and_of_isIrreducible_of_isFaithful + theorem LieAlgebra.hasTrivialRadical_and_of_isIrreducible_of_isFaithful Modified Mathlib/Algebra/Module/LinearMap/End.lean + theorem Module.End.commute_id_left + theorem Module.End.commute_id_right 2025-02-10 10:42:36 db32519 feat(Combinatorics/SimpleGraph/Path): representatives of connected components (#20024) Add the concept of a set of representatives of a connected component along with some basic lemma's on it. In preparation for a proof of Tutte's theorem. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Combinatorics/SimpleGraph/Connectivity/Represents.lean + theorem SimpleGraph.ConnectedComponent.Represents.disjoint_supp_of_not_mem + theorem SimpleGraph.ConnectedComponent.Represents.existsUnique_rep + theorem SimpleGraph.ConnectedComponent.Represents.image_out + theorem SimpleGraph.ConnectedComponent.Represents.ncard_inter + theorem SimpleGraph.ConnectedComponent.Represents.ncard_sdiff_of_mem + theorem SimpleGraph.ConnectedComponent.Represents.ncard_sdiff_of_not_mem + def SimpleGraph.ConnectedComponent.Represents 2025-02-10 10:42:34 887c81f feat: lint declarations which contain a double underscore (#17580) ESTIMATED CHANGES Modified Mathlib/ModelTheory/PartialEquiv.lean - theorem FirstOrder.Language.PartialEquiv.toEmbeddingOfEqTop__apply + theorem FirstOrder.Language.PartialEquiv.toEmbeddingOfEqTop_apply Modified Mathlib/Tactic/Linter/Style.lean + def Mathlib.Linter.Style.nameCheck.doubleUnderscore: Added MathlibTest/DoubleUnderscore.lean + def double__underscore Modified MathlibTest/Lint.lean + theorem double__underscore 2025-02-10 10:14:45 c335a81 feat(SkewMonoidAlgebra): `coeff`, `single`, `one` and `sum` (#19084) ## feat : add definition of `coeff`, `single`, `one` and `sum` In this PR, we introduce the notions of `coeff`, `single`, `one` and `sum` for skew monoid algebras. ## Context This is the second part of a planned series of PRs aiming to formalise skew monoid algebras. The PRs are split to ease the review process. The moral sum of these planned PRs is #10541 and the first part was #15878. After this PR, the goal will then be to finally define a skewed convolution product on `SkewMonoidAlgebra k G`. Here, the product of two elements `f g : SkewMonoidAlgebra k G` is the finitely supported function whose value at `a` is the sum of `f x * (x • g y)` over all pairs `x, y` such that `x * y = a`. (See #10541 at line 558 for an implementation.) ESTIMATED CHANGES Modified Mathlib/Algebra/SkewMonoidAlgebra/Basic.lean + theorem IsSMulRegular.skewMonoidAlgebra_iff + def SkewMonoidAlgebra.coeff + theorem SkewMonoidAlgebra.coeff_add + theorem SkewMonoidAlgebra.coeff_inj + theorem SkewMonoidAlgebra.coeff_injective + theorem SkewMonoidAlgebra.coeff_ofFinsupp + theorem SkewMonoidAlgebra.coeff_one + theorem SkewMonoidAlgebra.coeff_one_one + theorem SkewMonoidAlgebra.coeff_single + theorem SkewMonoidAlgebra.coeff_single_apply + theorem SkewMonoidAlgebra.coeff_smul + theorem SkewMonoidAlgebra.coeff_sum + theorem SkewMonoidAlgebra.coeff_zero + theorem SkewMonoidAlgebra.ext + theorem SkewMonoidAlgebra.ext_iff + theorem SkewMonoidAlgebra.map_sum + theorem SkewMonoidAlgebra.mem_support_iff + theorem SkewMonoidAlgebra.mul_sum + theorem SkewMonoidAlgebra.not_mem_support_iff + theorem SkewMonoidAlgebra.ofFinsupp_eq_one + theorem SkewMonoidAlgebra.ofFinsupp_one + theorem SkewMonoidAlgebra.ofFinsupp_single + theorem SkewMonoidAlgebra.ofFinsupp_sum + theorem SkewMonoidAlgebra.one_def + def SkewMonoidAlgebra.single + theorem SkewMonoidAlgebra.single_add + theorem SkewMonoidAlgebra.single_eq_zero + theorem SkewMonoidAlgebra.single_injective + theorem SkewMonoidAlgebra.single_one_one + theorem SkewMonoidAlgebra.single_zero + theorem SkewMonoidAlgebra.single_zero_right + theorem SkewMonoidAlgebra.smul_single + theorem SkewMonoidAlgebra.smul_sum + def SkewMonoidAlgebra.sum + theorem SkewMonoidAlgebra.sum_add + theorem SkewMonoidAlgebra.sum_add_index' + theorem SkewMonoidAlgebra.sum_add_index + theorem SkewMonoidAlgebra.sum_congr + theorem SkewMonoidAlgebra.sum_def' + theorem SkewMonoidAlgebra.sum_def + theorem SkewMonoidAlgebra.sum_ite_eq' + theorem SkewMonoidAlgebra.sum_mul + theorem SkewMonoidAlgebra.sum_single + theorem SkewMonoidAlgebra.sum_single_index + theorem SkewMonoidAlgebra.sum_sum_index + theorem SkewMonoidAlgebra.sum_zero + theorem SkewMonoidAlgebra.sum_zero_index + def SkewMonoidAlgebra.toFinsuppAddEquiv + theorem SkewMonoidAlgebra.toFinsupp_apply + theorem SkewMonoidAlgebra.toFinsupp_eq_single_one_one_iff + theorem SkewMonoidAlgebra.toFinsupp_one + theorem SkewMonoidAlgebra.toFinsupp_single + theorem SkewMonoidAlgebra.toFinsupp_sum' 2025-02-10 09:35:15 69b0864 refactor(CategoryTheory/Limits): split `MultispanIndex` into two structures (#20988) Before this PR, multiequalizers were defined for a structure `MulticospanIndex C` which contained information about the shape of the diagram, and the diagram itself (objects and maps in a category `C`). In this PR, we introduce the shape `MulticospanShape` which consists of two types and two maps between these types. If `J : MulticospanShape` and `C` is a category, we now have `MultispanIndex J C` which contains the information about the multiequalizer diagram. If `I : MulticospanIndex J C`, we now have a functor `I.multicospan : WalkingMulticospan J ⥤ C`. This refactor will ease the study of multiequalizers. For example, if `I` and `I'` are two terms in `MulticospanIndex J C`, it makes sense to show that the associated functors `WalkingMulticospan J ⥤ C` are isomorphic, etc. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/GlueData.lean +/- def CategoryTheory.GlueData.diagram - theorem CategoryTheory.GlueData.diagram_fstFrom - theorem CategoryTheory.GlueData.diagram_l - theorem CategoryTheory.GlueData.diagram_r - theorem CategoryTheory.GlueData.diagram_sndFrom Modified Mathlib/CategoryTheory/Limits/Shapes/ConcreteCategory.lean +/- def CategoryTheory.Limits.Concrete.multiequalizerEquivAux +/- theorem CategoryTheory.Limits.Concrete.multiequalizerEquiv_apply +/- theorem CategoryTheory.Limits.Concrete.multiequalizer_ext Modified Mathlib/CategoryTheory/Limits/Shapes/End.lean +/- def CategoryTheory.Limits.multicospanIndexEnd + def CategoryTheory.Limits.multicospanShapeEnd Modified Mathlib/CategoryTheory/Limits/Shapes/Multiequalizer.lean +/- theorem CategoryTheory.Limits.Multicofork.condition +/- def CategoryTheory.Limits.Multicofork.ofπ +/- def CategoryTheory.Limits.Multicofork.π +/- theorem CategoryTheory.Limits.Multicofork.π_comp_hom +/- def CategoryTheory.Limits.MulticospanIndex.multicospan +/- structure CategoryTheory.Limits.MulticospanIndex + def CategoryTheory.Limits.MulticospanShape.prod + structure CategoryTheory.Limits.MulticospanShape +/- theorem CategoryTheory.Limits.Multifork.condition +/- theorem CategoryTheory.Limits.Multifork.hom_comp_ι +/- def CategoryTheory.Limits.Multifork.ofι +/- def CategoryTheory.Limits.Multifork.ι +/- def CategoryTheory.Limits.MultispanIndex.multispan +/- structure CategoryTheory.Limits.MultispanIndex + def CategoryTheory.Limits.MultispanShape.prod + structure CategoryTheory.Limits.MultispanShape +/- def CategoryTheory.Limits.WalkingMulticospan.Hom.comp +/- theorem CategoryTheory.Limits.WalkingMulticospan.Hom.comp_eq_comp +/- theorem CategoryTheory.Limits.WalkingMulticospan.Hom.id_eq_id +/- inductive CategoryTheory.Limits.WalkingMulticospan.Hom +/- inductive CategoryTheory.Limits.WalkingMulticospan +/- def CategoryTheory.Limits.WalkingMultispan.Hom.comp +/- theorem CategoryTheory.Limits.WalkingMultispan.Hom.comp_eq_comp +/- theorem CategoryTheory.Limits.WalkingMultispan.Hom.id_eq_id +/- inductive CategoryTheory.Limits.WalkingMultispan.Hom +/- inductive CategoryTheory.Limits.WalkingMultispan Modified Mathlib/CategoryTheory/Limits/Shapes/Types.lean +/- theorem CategoryTheory.Limits.Types.Multifork.IsLimit.sectionsEquiv_apply_val +/- theorem CategoryTheory.Limits.Types.Multifork.IsLimit.sectionsEquiv_symm_apply_val Modified Mathlib/CategoryTheory/Sites/CompatiblePlus.lean Modified Mathlib/CategoryTheory/Sites/CompatibleSheafification.lean Modified Mathlib/CategoryTheory/Sites/ConcreteSheafification.lean Modified Mathlib/CategoryTheory/Sites/Grothendieck.lean + def CategoryTheory.GrothendieckTopology.Cover.shape Modified Mathlib/CategoryTheory/Sites/OneHypercover.lean +/- def CategoryTheory.PreOneHypercover.multicospanIndex + def CategoryTheory.PreOneHypercover.multicospanShape Modified Mathlib/CategoryTheory/Sites/PreservesSheafification.lean Modified Mathlib/Geometry/RingedSpace/PresheafedSpace/Gluing.lean Modified Mathlib/Topology/Gluing.lean 2025-02-10 09:15:32 6084680 feat(Analysis/SpecialFunctions): prove asymptotic results for binomial coefficents and factorial variants (#20837) Prove `n.choose k ~ n^k / k!` and `n.choose k = Θ(n^k)` as `n → ∞`. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/SpecialFunctions/Choose.lean + theorem isEquivalent_choose + theorem isEquivalent_descFactorial + theorem isTheta_choose 2025-02-10 08:46:27 63edd59 refactor(Order/Category): concrete category refactor for basic orders (#21409) This PR implements `Hom` classes and `ConcreteCategory` instances for the following categories of orders: * `Preord` * `PartOrd`, `FinPartOrd` * `Lat` * `DistLat` * `LinOrd`, `NonemptyFinLinOrd` * `BddOrd` * `Frm` * `BddLat` * `BddDistLat`, `FinBddDistLat` * `BoolAlg`, `FinBoolAlg` * `HeytAlg` It also replaces `HasForget` instances with `ConcreteCategory` instances for the following categories of orders: * `SemilatSupCat`, `SemilatInfCat` * `SimplexCategory` The following order categories still need to be refactored: * `CompleteLat` * `ωCPO` Zulip thread: https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Concrete.20category.20class.20redesign ESTIMATED CHANGES Modified Mathlib/Algebra/Category/BoolRing.lean Modified Mathlib/AlgebraicTopology/SimplexCategory.lean + theorem SimplexCategory.toType_apply Modified Mathlib/AlgebraicTopology/SimplicialSet/Nerve.lean Modified Mathlib/AlgebraicTopology/TopologicalSimplex.lean +/- theorem SimplexCategory.coe_toTopMap +/- theorem SimplexCategory.toTopObj.ext +/- def SimplexCategory.toTopObj Modified Mathlib/Order/Category/BddDistLat.lean + def BddDistLat.Hom.Simps.hom + structure BddDistLat.Hom + theorem BddDistLat.coe_comp + theorem BddDistLat.coe_id + theorem BddDistLat.comp_apply + theorem BddDistLat.ext + theorem BddDistLat.forget_map + theorem BddDistLat.hom_comp + theorem BddDistLat.hom_ext + theorem BddDistLat.hom_id + theorem BddDistLat.hom_inv_apply + theorem BddDistLat.hom_ofHom + theorem BddDistLat.id_apply + theorem BddDistLat.inv_hom_apply - def BddDistLat.of + theorem BddDistLat.ofHom_apply + theorem BddDistLat.ofHom_comp + theorem BddDistLat.ofHom_hom + theorem BddDistLat.ofHom_id +/- structure BddDistLat Modified Mathlib/Order/Category/BddLat.lean + def BddLat.Hom.Simps.hom + structure BddLat.Hom + theorem BddLat.comp_apply + theorem BddLat.ext + theorem BddLat.hom_comp + theorem BddLat.hom_ext + theorem BddLat.hom_id + theorem BddLat.id_apply - def BddLat.of +/- structure BddLat Modified Mathlib/Order/Category/BddOrd.lean + def BddOrd.Hom.Simps.hom + structure BddOrd.Hom + theorem BddOrd.coe_comp + theorem BddOrd.coe_id +/- theorem BddOrd.coe_of + theorem BddOrd.comp_apply + theorem BddOrd.ext + theorem BddOrd.forget_map + theorem BddOrd.hom_comp + theorem BddOrd.hom_ext + theorem BddOrd.hom_id + theorem BddOrd.hom_inv_apply + theorem BddOrd.hom_ofHom + theorem BddOrd.id_apply + theorem BddOrd.inv_hom_apply - def BddOrd.of + theorem BddOrd.ofHom_apply + theorem BddOrd.ofHom_comp + theorem BddOrd.ofHom_hom + theorem BddOrd.ofHom_id +/- structure BddOrd Modified Mathlib/Order/Category/BoolAlg.lean + def BoolAlg.Hom.Simps.hom + structure BoolAlg.Hom + theorem BoolAlg.coe_comp + theorem BoolAlg.coe_id +/- theorem BoolAlg.coe_of + theorem BoolAlg.comp_apply + theorem BoolAlg.ext + theorem BoolAlg.forget_map + theorem BoolAlg.hom_comp + theorem BoolAlg.hom_ext + theorem BoolAlg.hom_id + theorem BoolAlg.hom_inv_apply + theorem BoolAlg.hom_ofHom + theorem BoolAlg.id_apply + theorem BoolAlg.inv_hom_apply - def BoolAlg.of + theorem BoolAlg.ofHom_apply + theorem BoolAlg.ofHom_comp + theorem BoolAlg.ofHom_hom + theorem BoolAlg.ofHom_id + structure BoolAlg - def BoolAlg Modified Mathlib/Order/Category/CompleteLat.lean Modified Mathlib/Order/Category/DistLat.lean + def DistLat.Hom.Simps.hom + structure DistLat.Hom + theorem DistLat.coe_comp + theorem DistLat.coe_id +/- theorem DistLat.coe_of + theorem DistLat.comp_apply + theorem DistLat.ext + theorem DistLat.forget_map + theorem DistLat.hom_comp + theorem DistLat.hom_ext + theorem DistLat.hom_id + theorem DistLat.hom_inv_apply + theorem DistLat.hom_ofHom + theorem DistLat.id_apply + theorem DistLat.inv_hom_apply - def DistLat.of + theorem DistLat.ofHom_apply + theorem DistLat.ofHom_comp + theorem DistLat.ofHom_hom + theorem DistLat.ofHom_id + structure DistLat - def DistLat Modified Mathlib/Order/Category/FinBddDistLat.lean + def FinBddDistLat.Hom.Simps.hom + structure FinBddDistLat.Hom +/- def FinBddDistLat.Iso.mk + theorem FinBddDistLat.coe_comp + theorem FinBddDistLat.coe_id + theorem FinBddDistLat.comp_apply + theorem FinBddDistLat.ext + theorem FinBddDistLat.forget_map + theorem FinBddDistLat.hom_comp + theorem FinBddDistLat.hom_ext + theorem FinBddDistLat.hom_id + theorem FinBddDistLat.hom_inv_apply + theorem FinBddDistLat.hom_ofHom + theorem FinBddDistLat.id_apply + theorem FinBddDistLat.inv_hom_apply - def FinBddDistLat.of' - def FinBddDistLat.of + theorem FinBddDistLat.ofHom_apply + theorem FinBddDistLat.ofHom_comp + theorem FinBddDistLat.ofHom_hom + theorem FinBddDistLat.ofHom_id +/- structure FinBddDistLat Modified Mathlib/Order/Category/FinBoolAlg.lean - def FinBoolAlg.of +/- structure FinBoolAlg Modified Mathlib/Order/Category/FinPartOrd.lean + def FinPartOrd.Hom.Simps.hom - theorem FinPartOrd.coe_of + theorem FinPartOrd.comp_apply + theorem FinPartOrd.hom_comp + theorem FinPartOrd.hom_ext + theorem FinPartOrd.hom_id + theorem FinPartOrd.hom_ofHom + theorem FinPartOrd.id_apply - def FinPartOrd.of + theorem FinPartOrd.ofHom_hom +/- structure FinPartOrd Modified Mathlib/Order/Category/Frm.lean + def Frm.Hom.Simps.hom + structure Frm.Hom + theorem Frm.coe_comp + theorem Frm.coe_id +/- theorem Frm.coe_of + theorem Frm.comp_apply + theorem Frm.ext + theorem Frm.forget_map + theorem Frm.hom_comp + theorem Frm.hom_ext + theorem Frm.hom_id + theorem Frm.hom_inv_apply + theorem Frm.hom_ofHom + theorem Frm.id_apply + theorem Frm.inv_hom_apply - def Frm.of + theorem Frm.ofHom_apply + theorem Frm.ofHom_comp + theorem Frm.ofHom_hom + theorem Frm.ofHom_id + structure Frm - def Frm Modified Mathlib/Order/Category/HeytAlg.lean + def HeytAlg.Hom.Simps.hom + structure HeytAlg.Hom + theorem HeytAlg.coe_comp + theorem HeytAlg.coe_id +/- theorem HeytAlg.coe_of + theorem HeytAlg.comp_apply + theorem HeytAlg.ext + theorem HeytAlg.forget_map + theorem HeytAlg.hom_comp + theorem HeytAlg.hom_ext + theorem HeytAlg.hom_id + theorem HeytAlg.hom_inv_apply + theorem HeytAlg.hom_ofHom + theorem HeytAlg.id_apply + theorem HeytAlg.inv_hom_apply - def HeytAlg.of + theorem HeytAlg.ofHom_apply + theorem HeytAlg.ofHom_comp + theorem HeytAlg.ofHom_hom + theorem HeytAlg.ofHom_id + structure HeytAlg - def HeytAlg Modified Mathlib/Order/Category/Lat.lean + def Lat.Hom.Simps.hom + structure Lat.Hom + theorem Lat.coe_comp + theorem Lat.coe_id +/- theorem Lat.coe_of + theorem Lat.comp_apply + theorem Lat.ext + theorem Lat.forget_map + theorem Lat.hom_comp + theorem Lat.hom_ext + theorem Lat.hom_id + theorem Lat.hom_inv_apply + theorem Lat.hom_ofHom + theorem Lat.id_apply + theorem Lat.inv_hom_apply - def Lat.of + theorem Lat.ofHom_apply + theorem Lat.ofHom_comp + theorem Lat.ofHom_hom + theorem Lat.ofHom_id + structure Lat - def Lat Modified Mathlib/Order/Category/LinOrd.lean + def LinOrd.Hom.Simps.hom + structure LinOrd.Hom + theorem LinOrd.coe_comp + theorem LinOrd.coe_id +/- theorem LinOrd.coe_of + theorem LinOrd.comp_apply + theorem LinOrd.ext + theorem LinOrd.forget_map + theorem LinOrd.hom_comp + theorem LinOrd.hom_ext + theorem LinOrd.hom_id + theorem LinOrd.hom_inv_apply + theorem LinOrd.hom_ofHom + theorem LinOrd.id_apply + theorem LinOrd.inv_hom_apply - def LinOrd.of + theorem LinOrd.ofHom_apply + theorem LinOrd.ofHom_comp + theorem LinOrd.ofHom_hom + theorem LinOrd.ofHom_id + structure LinOrd - def LinOrd Modified Mathlib/Order/Category/NonemptyFinLinOrd.lean + def NonemptyFinLinOrd.Hom.Simps.hom +/- theorem NonemptyFinLinOrd.coe_of + theorem NonemptyFinLinOrd.comp_apply - theorem NonemptyFinLinOrd.forget_map_apply + theorem NonemptyFinLinOrd.hom_comp + theorem NonemptyFinLinOrd.hom_ext + theorem NonemptyFinLinOrd.hom_id + theorem NonemptyFinLinOrd.hom_ofHom + theorem NonemptyFinLinOrd.id_apply - def NonemptyFinLinOrd.of + theorem NonemptyFinLinOrd.ofHom_hom + structure NonemptyFinLinOrd - def NonemptyFinLinOrd Modified Mathlib/Order/Category/PartOrd.lean + def PartOrd.Hom.Simps.hom + structure PartOrd.Hom + theorem PartOrd.coe_comp + theorem PartOrd.coe_id +/- theorem PartOrd.coe_of + theorem PartOrd.comp_apply + theorem PartOrd.ext + theorem PartOrd.forget_map + theorem PartOrd.hom_comp + theorem PartOrd.hom_ext + theorem PartOrd.hom_id + theorem PartOrd.hom_inv_apply + theorem PartOrd.hom_ofHom + theorem PartOrd.id_apply + theorem PartOrd.inv_hom_apply - def PartOrd.of + theorem PartOrd.ofHom_apply + theorem PartOrd.ofHom_comp + theorem PartOrd.ofHom_hom + theorem PartOrd.ofHom_id + structure PartOrd - def PartOrd Modified Mathlib/Order/Category/Preord.lean + def Preord.Hom.Simps.hom + structure Preord.Hom + theorem Preord.coe_comp + theorem Preord.coe_id +/- theorem Preord.coe_of + theorem Preord.comp_apply + theorem Preord.ext + theorem Preord.forget_map + theorem Preord.hom_comp + theorem Preord.hom_ext + theorem Preord.hom_id + theorem Preord.hom_inv_apply + theorem Preord.hom_ofHom + theorem Preord.id_apply + theorem Preord.inv_hom_apply - def Preord.of + theorem Preord.ofHom_apply + theorem Preord.ofHom_comp + theorem Preord.ofHom_hom + theorem Preord.ofHom_id + structure Preord - def Preord Modified Mathlib/Order/Category/Semilat.lean - def SemilatInfCat.of - def SemilatSupCat.of Modified Mathlib/Topology/Category/CompHaus/Frm.lean Modified Mathlib/Topology/Category/Locale.lean Modified Mathlib/Topology/Order/Category/AlexDisc.lean Modified Mathlib/Topology/Order/Category/FrameAdjunction.lean Modified Mathlib/Topology/Specialization.lean 2025-02-10 08:08:16 5499530 chore: normalize comments for issue #10675 (#21628) ESTIMATED CHANGES Modified Mathlib/Algebra/Category/Ring/Adjunctions.lean Modified Mathlib/Algebra/Lie/Submodule.lean +/- theorem LieModuleEquiv.ofTop_apply Modified Mathlib/Algebra/Ring/Subring/Defs.lean Modified Mathlib/Data/Fin/Basic.lean Modified Mathlib/Topology/Specialization.lean +/- theorem Specialization.ofEquiv_inj +/- theorem Specialization.toEquiv_inj 2025-02-10 08:08:15 df5790e feat(LinearAlgebra/AffineSpace/Midpoint): affine variants of `midpoint_pointReflection_left` and `midpoint_pointReflection_right` (#21618) Add varients of `midpoint_pointReflection_left` and `midpoint_pointReflection_right` stated for `AffineEquiv.pointReflection` rather than `Equiv.pointReflection`, so that both versions can be handled by `simp`. ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/AffineSpace/Midpoint.lean 2025-02-10 08:08:14 422990c refactor(Geometry/Euclidean/Basic,Analysis/Normed/Affine/AddTorsor): generalize `dist_left_midpoint_eq_dist_right_midpoint` (#21617) The lemma `dist_left_midpoint_eq_dist_right_midpoint` has an unnecessary restriction to inner product spaces, when the two lemmas `dist_left_midpoint` and `dist_right_midpoint` it uses are stated and proved more generally. Move it to `Mathlib.Analysis.Normed.Affine.AddTorsor` and thus make the statement more general. ESTIMATED CHANGES Modified Mathlib/Analysis/Normed/Affine/AddTorsor.lean + theorem dist_left_midpoint_eq_dist_right_midpoint Modified Mathlib/Geometry/Euclidean/Basic.lean - theorem EuclideanGeometry.dist_left_midpoint_eq_dist_right_midpoint 2025-02-10 08:08:12 350f382 feat(LinearAlgebra/AffineSpace/AffineSubspace): instances for coercion to sort (#21588) Add two straightforward instances for working with the coercion of `AffineSubspace` to a `Sort`. ```lean instance unique_affineSpan_singleton (p : P) : Unique (affineSpan k {p}) where ``` ```lean instance isEmpty_bot : IsEmpty (⊥ : AffineSubspace k P) := ``` ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/AffineSpace/AffineSubspace.lean 2025-02-10 08:08:11 f467ec1 chore(Algebra/Polynomial): process porting notes (#21552) ESTIMATED CHANGES Modified Mathlib/Algebra/Polynomial/Basic.lean Modified Mathlib/Algebra/Polynomial/Coeff.lean Modified Mathlib/Algebra/Polynomial/Degree/Definitions.lean Modified Mathlib/Algebra/Polynomial/Degree/SmallDegree.lean Modified Mathlib/Algebra/Polynomial/Degree/TrailingDegree.lean Modified Mathlib/Algebra/Polynomial/Eval/Degree.lean Modified Mathlib/Algebra/Polynomial/Expand.lean Modified Mathlib/Algebra/Polynomial/FieldDivision.lean Modified Mathlib/Algebra/Polynomial/GroupRingAction.lean Modified Mathlib/Algebra/Polynomial/Laurent.lean Modified Mathlib/Algebra/Polynomial/Monomial.lean Modified Mathlib/Algebra/Polynomial/PartialFractions.lean Modified Mathlib/Algebra/Polynomial/Roots.lean Modified Mathlib/Algebra/Polynomial/UnitTrinomial.lean 2025-02-10 07:27:03 3d7c3c8 feat(Topology/EMetricSpace/Lipschitz): add lemmas with swapped arguments (#20696) The existing series of lemmas on the continuity of `f : α × β → γ` requires Lipschitz continuity in `α` and continuity in `β`. I add a series of mirror lemmas with the argument positions swapped, i.e. continuity in `α` and Lipschitz continuity in `β`. This improves usability, for example, in the Picard-Lindelöf theorem, where the time-dependent vector field is typically assumed to be continuous in time (the first component) and Lipschitz continuous in space (the second component). ESTIMATED CHANGES Modified Mathlib/Data/Set/Prod.lean + theorem Set.mapsTo_swap_prod Modified Mathlib/Topology/EMetricSpace/Lipschitz.lean + theorem continuousOn_prod_of_continuousOn_lipschitzOnWith' + theorem continuousOn_prod_of_subset_closure_continuousOn_lipschitzOnWith' + theorem continuous_prod_of_continuous_lipschitzWith' + theorem continuous_prod_of_dense_continuous_lipschitzWith' 2025-02-10 06:54:40 e553eab chore: remove/improve several set_option maxHeartbeats (#21627) ESTIMATED CHANGES Modified Mathlib/Algebra/Category/ModuleCat/Presheaf/Pushforward.lean + def PresheafOfModules.pushforward₀_obj Modified Mathlib/Algebra/Homology/HomotopyCategory/Triangulated.lean Modified Mathlib/CategoryTheory/Monoidal/Internal/Module.lean Modified Mathlib/CategoryTheory/Triangulated/Functor.lean Modified Mathlib/FieldTheory/Relrank.lean Modified Mathlib/Geometry/RingedSpace/OpenImmersion.lean 2025-02-10 05:59:32 942265a feat(CategoryTheory/MorphismProperty/LiftingProperty): more API for llp and rlp (#21597) We show that `rlp` and `llp` form a Galois connection, and we deduce some consequences. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/MorphismProperty/LiftingProperty.lean + theorem CategoryTheory.MorphismProperty.antitone_llp + theorem CategoryTheory.MorphismProperty.antitone_rlp + theorem CategoryTheory.MorphismProperty.colimitsOfShape_discrete_le_llp_rlp + theorem CategoryTheory.MorphismProperty.coproducts_le_llp_rlp + theorem CategoryTheory.MorphismProperty.gc_llp_rlp + theorem CategoryTheory.MorphismProperty.le_llp_iff_le_rlp + theorem CategoryTheory.MorphismProperty.le_llp_rlp - theorem CategoryTheory.MorphismProperty.llp_IsStableUnderCoproductsOfShape + theorem CategoryTheory.MorphismProperty.llp_isStableUnderCoproductsOfShape - theorem CategoryTheory.MorphismProperty.llp_isStableUnderRetracts + theorem CategoryTheory.MorphismProperty.llp_rlp_llp + theorem CategoryTheory.MorphismProperty.pushouts_le_llp_rlp + theorem CategoryTheory.MorphismProperty.retracts_le_llp_rlp - theorem CategoryTheory.MorphismProperty.rlp_IsStableUnderProductsOfShape + theorem CategoryTheory.MorphismProperty.rlp_coproducts + theorem CategoryTheory.MorphismProperty.rlp_isStableUnderProductsOfShape - theorem CategoryTheory.MorphismProperty.rlp_isStableUnderRetracts + theorem CategoryTheory.MorphismProperty.rlp_llp_rlp + theorem CategoryTheory.MorphismProperty.rlp_pushouts + theorem CategoryTheory.MorphismProperty.rlp_retracts 2025-02-10 05:14:59 1267df2 refactor: restate lemmas about `∑' _, c` using `ENat.card`/`Set.encard` (#21503) Previously, someone trying to simplify away `∑' _, c` would stumble upon `ENNReal.tsum_const_eq`, turning the expression into `c * count univ`, and the only available rewrite from here would be `count_apply` turning the expression into `c * ∑' _, 1`! Also remove `_eq` from the relevant lemma names. From LeanAPAP ESTIMATED CHANGES Modified Mathlib/Data/Real/ENatENNReal.lean + theorem ENat.toENNReal_eq_top + theorem ENat.toENNReal_lt_top + theorem ENat.toENNReal_ne_top Modified Mathlib/MeasureTheory/Function/EssSup.lean Modified Mathlib/MeasureTheory/Integral/Lebesgue.lean +/- theorem ENNReal.tsum_const_eq Modified Mathlib/MeasureTheory/Measure/Count.lean +/- theorem MeasureTheory.Measure.count_apply +/- theorem MeasureTheory.Measure.count_apply_finset' +/- theorem MeasureTheory.Measure.count_empty +/- theorem MeasureTheory.Measure.count_univ Modified Mathlib/Probability/UniformOn.lean Modified Mathlib/SetTheory/Cardinal/Basic.lean + theorem Cardinal.mk_lt_aleph0 Modified Mathlib/SetTheory/Cardinal/ENat.lean + theorem Cardinal.toENat_lt_top + theorem Cardinal.toENat_ne_top Modified Mathlib/SetTheory/Cardinal/Finite.lean + theorem ENat.card_eq_top + theorem ENat.card_lt_top_of_finite Modified Mathlib/Topology/Algebra/InfiniteSum/ENNReal.lean + theorem ENNReal.tsum_const + theorem ENNReal.tsum_one + theorem ENNReal.tsum_set_const - theorem ENNReal.tsum_set_const_eq + theorem ENNReal.tsum_set_one - theorem ENNReal.tsum_set_one_eq 2025-02-10 05:14:58 63fc01a feat: more `symm_bijective`s (#21435) This extends an established pattern. ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Action/Equidecomp.lean + theorem Equidecomp.symm_bijective + theorem Equidecomp.symm_involutive Modified Mathlib/Algebra/Order/Hom/Ring.lean Modified Mathlib/Analysis/Normed/Affine/Isometry.lean + theorem AffineIsometryEquiv.symm_bijective Modified Mathlib/Analysis/Normed/Operator/LinearIsometry.lean + theorem LinearIsometryEquiv.symm_bijective Modified Mathlib/CategoryTheory/Iso.lean + theorem CategoryTheory.Iso.symm_bijective Modified Mathlib/LinearAlgebra/AffineSpace/ContinuousAffineEquiv.lean + theorem ContinuousAffineEquiv.symm_bijective Modified Mathlib/ModelTheory/Basic.lean + theorem FirstOrder.Language.Equiv.symm_bijective Modified Mathlib/ModelTheory/PartialEquiv.lean + theorem FirstOrder.Language.PartialEquiv.symm_bijective Modified Mathlib/Topology/Algebra/Algebra/Equiv.lean + theorem ContinuousAlgEquiv.symm_bijective Modified Mathlib/Topology/Algebra/ContinuousMonoidHom.lean + theorem ContinuousMulEquiv.symm_bijective Modified Mathlib/Topology/Algebra/Module/Equiv.lean + theorem ContinuousLinearEquiv.symm_bijective 2025-02-10 05:14:57 a3369eb feat(Equiv/Fin): add lemmas (#21404) ESTIMATED CHANGES Modified Mathlib/Logic/Equiv/Fin.lean + theorem finSuccEquiv'_eq_none + theorem finSuccEquiv'_eq_some + theorem finSuccEquiv_eq_none + theorem finSuccEquiv_eq_some Modified Mathlib/Order/Fin/Tuple.lean 2025-02-10 05:14:56 4572b18 chore(Data/Matroid/IndepAxioms): improved docstring for `IndepMatroid` (#21180) This PR changes the docstring of `IndepMatroid` to more explicitly lay out the intended design pattern for using `IndepMatroid` to define a matroid. This felt like it might be helpful, because two people who spoke to me after using the definition were experiencing difficulties due to going against the pattern, so it wasn't so obvious what to do from the existing docstring. @alreadydone @madvorak ESTIMATED CHANGES Modified Mathlib/Data/Matroid/IndepAxioms.lean 2025-02-10 05:06:55 770d057 chore: remove backticks from create-adaptation-pr.sh (#21528) ESTIMATED CHANGES Modified scripts/create-adaptation-pr.sh 2025-02-10 03:14:06 ec3a82f chore(FieldTheory): process porting notes (#21538) ESTIMATED CHANGES Modified Mathlib/FieldTheory/AbelRuffini.lean Modified Mathlib/FieldTheory/ChevalleyWarning.lean Modified Mathlib/FieldTheory/Finite/Basic.lean Modified Mathlib/FieldTheory/Finite/GaloisField.lean Modified Mathlib/FieldTheory/Finite/Polynomial.lean Modified Mathlib/FieldTheory/Galois/Basic.lean Modified Mathlib/FieldTheory/IntermediateField/Adjoin/Basic.lean Modified Mathlib/FieldTheory/IntermediateField/Adjoin/Defs.lean Modified Mathlib/FieldTheory/IntermediateField/Basic.lean Modified Mathlib/FieldTheory/IsAlgClosed/Basic.lean Modified Mathlib/FieldTheory/IsAlgClosed/Spectrum.lean Modified Mathlib/FieldTheory/IsSepClosed.lean Modified Mathlib/FieldTheory/PerfectClosure.lean Modified Mathlib/FieldTheory/PolynomialGaloisGroup.lean Modified Mathlib/FieldTheory/PrimitiveElement.lean Modified Mathlib/FieldTheory/SplittingField/Construction.lean Modified Mathlib/FieldTheory/SplittingField/IsSplittingField.lean 2025-02-10 00:54:18 418896c chore(Analysis/Normed/Group): split file (#21554) Split `Analysis.Group.Normed.Basic` into three files: - `Analysis.Group.Normed.Basic` contains the definitions and the basic results that just use the metric space structure - `Analysis.Group.Normed.Continuity` contains the more advanced results especially the ones that uses the continuity of the norm - `Analysis.Group.Normed.Subgroup` contains the results about subgroups of normed groups. Question. Is there a better name than `Analysis.Group.Normed.Continuity`? ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Analysis/LocallyConvex/Polar.lean Modified Mathlib/Analysis/Normed/Field/Basic.lean Modified Mathlib/Analysis/Normed/Group/AddTorsor.lean Modified Mathlib/Analysis/Normed/Group/Basic.lean - theorem Continuous.enorm' - theorem Continuous.nnnorm' - theorem Continuous.norm' - theorem ContinuousAt.enorm' - theorem ContinuousAt.nnnorm' - theorem ContinuousAt.norm' - theorem ContinuousOn.enorm' - theorem ContinuousOn.nnnorm' - theorem ContinuousOn.norm' - theorem ContinuousWithinAt.enorm' - theorem ContinuousWithinAt.nnnorm' - theorem ContinuousWithinAt.norm' - theorem Filter.Tendsto.enorm' - theorem Filter.Tendsto.nnnorm' - theorem Filter.Tendsto.norm' - theorem Inseparable.nnnorm_eq_nnnorm' - theorem Inseparable.norm_eq_norm' - theorem SeminormedCommGroup.mem_closure_iff - theorem SeminormedGroup.tendstoUniformlyOn_one - theorem SeminormedGroup.uniformCauchySeqOnFilter_iff_tendstoUniformlyOnFilter_one - theorem SeminormedGroup.uniformCauchySeqOn_iff_tendstoUniformlyOn_one - theorem Subgroup.coe_norm - theorem Subgroup.norm_coe - theorem SubgroupClass.coe_norm - theorem closure_one_eq - theorem comap_norm_nhdsGT_zero' - theorem comap_norm_nhds_one - theorem continuous_enorm' - theorem continuous_nnnorm' - theorem continuous_norm' - theorem controlled_prod_of_mem_closure - theorem controlled_prod_of_mem_closure_range - theorem eventually_ne_of_tendsto_norm_atTop' - theorem mem_closure_one_iff_norm - theorem squeeze_one_norm' - theorem squeeze_one_norm - theorem tendsto_iff_norm_div_tendsto_zero - theorem tendsto_norm' - theorem tendsto_norm_div_self - theorem tendsto_norm_div_self_nhdsGE - theorem tendsto_norm_div_self_nhdsNE - theorem tendsto_norm_nhdsNE_one - theorem tendsto_norm_one - theorem tendsto_one_iff_norm_tendsto_zero Modified Mathlib/Analysis/Normed/Group/Bounded.lean Added Mathlib/Analysis/Normed/Group/Continuity.lean + theorem Continuous.enorm' + theorem Continuous.nnnorm' + theorem Continuous.norm' + theorem ContinuousAt.enorm' + theorem ContinuousAt.nnnorm' + theorem ContinuousAt.norm' + theorem ContinuousOn.enorm' + theorem ContinuousOn.nnnorm' + theorem ContinuousOn.norm' + theorem ContinuousWithinAt.enorm' + theorem ContinuousWithinAt.nnnorm' + theorem ContinuousWithinAt.norm' + theorem Filter.Tendsto.enorm' + theorem Filter.Tendsto.nnnorm' + theorem Filter.Tendsto.norm' + theorem Inseparable.nnnorm_eq_nnnorm' + theorem Inseparable.norm_eq_norm' + theorem SeminormedCommGroup.mem_closure_iff + theorem SeminormedGroup.tendstoUniformlyOn_one + theorem SeminormedGroup.uniformCauchySeqOnFilter_iff_tendstoUniformlyOnFilter_one + theorem SeminormedGroup.uniformCauchySeqOn_iff_tendstoUniformlyOn_one + theorem closure_one_eq + theorem comap_norm_nhdsGT_zero' + theorem comap_norm_nhds_one + theorem continuous_enorm' + theorem continuous_nnnorm' + theorem continuous_norm' + theorem controlled_prod_of_mem_closure + theorem controlled_prod_of_mem_closure_range + theorem eventually_ne_of_tendsto_norm_atTop' + theorem mem_closure_one_iff_norm + theorem squeeze_one_norm' + theorem squeeze_one_norm + theorem tendsto_iff_norm_div_tendsto_zero + theorem tendsto_norm' + theorem tendsto_norm_div_self + theorem tendsto_norm_div_self_nhdsGE + theorem tendsto_norm_div_self_nhdsNE + theorem tendsto_norm_nhdsNE_one + theorem tendsto_norm_one + theorem tendsto_one_iff_norm_tendsto_zero Modified Mathlib/Analysis/Normed/Group/Hom.lean Modified Mathlib/Analysis/Normed/Group/NullSubmodule.lean Added Mathlib/Analysis/Normed/Group/Subgroup.lean + theorem Subgroup.coe_norm + theorem Subgroup.norm_coe + theorem SubgroupClass.coe_norm Modified Mathlib/Analysis/Normed/Group/Uniform.lean Modified Mathlib/MeasureTheory/Constructions/BorelSpace/Metric.lean Modified Mathlib/Topology/Algebra/InfiniteSum/Field.lean 2025-02-09 23:04:54 58238a7 feat: Carathéodory's Extension Theorem (#21353) Show that an AddContent on a SetSemiring gives rise to an inducedOuterMeasure. All sets in the measurable structure generated by the SetSemiring are Carathéodory measurable. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/MeasureTheory/Measure/AddContent.lean + def MeasureTheory.AddContent.IsSigmaSubadditive + theorem MeasureTheory.addContent_iUnion_eq_tsum_of_disjoint_of_IsSigmaSubadditive Added Mathlib/MeasureTheory/OuterMeasure/OfAddContent.lean + theorem MeasureTheory.AddContent.inducedOuterMeasure_eq + theorem MeasureTheory.AddContent.isCaratheodory_inducedOuterMeasure + theorem MeasureTheory.AddContent.isCaratheodory_inducedOuterMeasure_of_mem + theorem MeasureTheory.AddContent.isCaratheodory_ofFunction_of_mem + theorem MeasureTheory.AddContent.measureCaratheodory_eq + theorem MeasureTheory.AddContent.measureCaratheodory_eq_inducedOuterMeasure + theorem MeasureTheory.AddContent.measure_eq + theorem MeasureTheory.AddContent.ofFunction_eq 2025-02-09 22:27:56 1598685 chore(Topology/Connected): split `PathConnected.lean` (#21591) Splits `Mathlib.Topology.Connected.PathConnected` into three files: - `Mathlib.Topology.Path`, which now contains the basic API for paths, - `Mathlib.Topology.Connected.PathConnected`, which retains the work on path components and path-connected sets and spaces, - `Mathlib.Topology.Connected.LocPathConnected`, which now contains everything relating to locally path-connected spaces. While splitting this file I have also taken the liberty to insert my name into the authors list of `Mathlib.Topology.Connected.LocPathConnected`, as about half the contents of that file are from an earlier PR of mine. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Geometry/Manifold/ChartedSpace.lean Modified Mathlib/Topology/Algebra/Module/LocallyConvex.lean Added Mathlib/Topology/Connected/LocPathConnected.lean + theorem IsOpen.isConnected_iff_isPathConnected + theorem IsOpen.locPathConnectedSpace + theorem LocPathConnectedSpace.coinduced + theorem LocPathConnectedSpace.of_bases + theorem Topology.IsOpenEmbedding.locPathConnectedSpace + theorem Topology.IsQuotientMap.locPathConnectedSpace + theorem isOpen_isPathConnected_basis + theorem locPathConnectedSpace_iff_isOpen_pathComponentIn + theorem locPathConnectedSpace_iff_pathComponentIn_mem_nhds + theorem pathComponentIn_mem_nhds + theorem pathComponent_eq_connectedComponent + theorem pathConnectedSpace_iff_connectedSpace + theorem pathConnected_subset_basis Modified Mathlib/Topology/Connected/PathConnected.lean - theorem Continuous.path_eval - theorem Continuous.path_extend - theorem Continuous.path_trans - theorem ContinuousAt.path_extend - theorem Filter.Tendsto.path_extend - theorem IsOpen.isConnected_iff_isPathConnected - theorem IsOpen.locPathConnectedSpace - theorem LocPathConnectedSpace.coinduced - theorem LocPathConnectedSpace.of_bases - def Path.cast - theorem Path.cast_coe - theorem Path.coe_mk - theorem Path.coe_mk_mk - theorem Path.coe_reparam - theorem Path.coe_toContinuousMap - theorem Path.continuous_extend - theorem Path.continuous_symm - theorem Path.continuous_trans - theorem Path.continuous_uncurry_extend_of_continuous_family - theorem Path.continuous_uncurry_iff - def Path.extend - theorem Path.extend_extends' - theorem Path.extend_extends - theorem Path.extend_of_le_zero - theorem Path.extend_of_one_le - theorem Path.extend_one - theorem Path.extend_range - theorem Path.extend_zero - def Path.map' - def Path.map - theorem Path.map_coe - theorem Path.map_id - theorem Path.map_map - theorem Path.map_symm - theorem Path.map_trans - def Path.ofLine - theorem Path.ofLine_mem - theorem Path.pi_coe - theorem Path.prod_coe - theorem Path.range_reparam - def Path.refl - theorem Path.refl_extend - theorem Path.refl_range - theorem Path.refl_reparam - theorem Path.refl_symm - theorem Path.refl_trans_refl - def Path.reparam - theorem Path.reparam_id - def Path.simps.apply - def Path.symm - theorem Path.symm_bijective - theorem Path.symm_cast - theorem Path.symm_continuous_family - theorem Path.symm_range - theorem Path.symm_symm - def Path.trans - theorem Path.trans_apply - theorem Path.trans_cast - theorem Path.trans_continuous_family - theorem Path.trans_pi_eq_pi_trans - theorem Path.trans_prod_eq_prod_trans - theorem Path.trans_range - theorem Path.trans_symm - def Path.truncate - def Path.truncateOfLE - theorem Path.truncate_const_continuous_family - theorem Path.truncate_continuous_family - theorem Path.truncate_one_one - theorem Path.truncate_range - theorem Path.truncate_self - theorem Path.truncate_zero_one - theorem Path.truncate_zero_zero - structure Path - theorem Topology.IsOpenEmbedding.locPathConnectedSpace - theorem Topology.IsQuotientMap.locPathConnectedSpace - theorem isOpen_isPathConnected_basis - theorem locPathConnectedSpace_iff_isOpen_pathComponentIn - theorem locPathConnectedSpace_iff_pathComponentIn_mem_nhds - theorem pathComponentIn_mem_nhds - theorem pathComponent_eq_connectedComponent - theorem pathConnectedSpace_iff_connectedSpace - theorem pathConnected_subset_basis Modified Mathlib/Topology/Homotopy/HSpaces.lean Added Mathlib/Topology/Path.lean + theorem Continuous.path_eval + theorem Continuous.path_extend + theorem Continuous.path_trans + theorem ContinuousAt.path_extend + theorem Filter.Tendsto.path_extend + def Path.cast + theorem Path.cast_coe + theorem Path.coe_mk + theorem Path.coe_mk_mk + theorem Path.coe_reparam + theorem Path.coe_toContinuousMap + theorem Path.continuous_extend + theorem Path.continuous_symm + theorem Path.continuous_trans + theorem Path.continuous_uncurry_extend_of_continuous_family + theorem Path.continuous_uncurry_iff + def Path.extend + theorem Path.extend_extends' + theorem Path.extend_extends + theorem Path.extend_of_le_zero + theorem Path.extend_of_one_le + theorem Path.extend_one + theorem Path.extend_range + theorem Path.extend_zero + def Path.map' + def Path.map + theorem Path.map_coe + theorem Path.map_id + theorem Path.map_map + theorem Path.map_symm + theorem Path.map_trans + def Path.ofLine + theorem Path.ofLine_mem + theorem Path.pi_coe + theorem Path.prod_coe + theorem Path.range_reparam + def Path.refl + theorem Path.refl_extend + theorem Path.refl_range + theorem Path.refl_reparam + theorem Path.refl_symm + theorem Path.refl_trans_refl + def Path.reparam + theorem Path.reparam_id + def Path.simps.apply + def Path.symm + theorem Path.symm_bijective + theorem Path.symm_cast + theorem Path.symm_continuous_family + theorem Path.symm_range + theorem Path.symm_symm + def Path.trans + theorem Path.trans_apply + theorem Path.trans_cast + theorem Path.trans_continuous_family + theorem Path.trans_pi_eq_pi_trans + theorem Path.trans_prod_eq_prod_trans + theorem Path.trans_range + theorem Path.trans_symm + def Path.truncate + def Path.truncateOfLE + theorem Path.truncate_const_continuous_family + theorem Path.truncate_continuous_family + theorem Path.truncate_one_one + theorem Path.truncate_range + theorem Path.truncate_self + theorem Path.truncate_zero_one + theorem Path.truncate_zero_zero + structure Path 2025-02-09 22:17:29 a443ebb chore(Matroid): rename `Rk` -> `Rank` in typeclass names (#21605) as per the (weak) consensus [on zulip](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Matroid.20rank.20-.20naming.20poll) and the convention established in `Data.Matroid.Rank.Cardinal`, the rank of a matroid is referred to as 'rank' in lemma names, and the rank of a set is referred to as `rk`. Accordingly (and for internal consistency), we rename the typeclasses `RkPos` -> `RankPos`, `FiniteRk` -> `RankFinite` and `InfiniteRk` -> `RankInfinite`. ESTIMATED CHANGES Modified Mathlib/Data/Matroid/Basic.lean +/- theorem Matroid.Base.finite - theorem Matroid.Base.finiteRk_of_finite +/- theorem Matroid.Base.infinite - theorem Matroid.Base.infiniteRk_of_infinite +/- theorem Matroid.Base.nonempty + theorem Matroid.Base.rankFinite_of_finite + theorem Matroid.Base.rankInfinite_of_infinite + theorem Matroid.Base.rankPos_of_nonempty - theorem Matroid.Base.rkPos_of_nonempty +/- theorem Matroid.Basis.Finite +/- theorem Matroid.Indep.finite + theorem Matroid.Indep.rankPos_of_nonempty - theorem Matroid.Indep.rkPos_of_nonempty +/- theorem Matroid.empty_not_base - theorem Matroid.finite_or_infiniteRk + theorem Matroid.finite_or_rankInfinite - theorem Matroid.not_finiteRk - theorem Matroid.not_infiniteRk + theorem Matroid.not_rankFinite + theorem Matroid.not_rankInfinite Modified Mathlib/Data/Matroid/Constructions.lean + theorem Matroid.eq_loopyOn_or_rankPos - theorem Matroid.eq_loopyOn_or_rkPos + theorem Matroid.freeOn_rankPos - theorem Matroid.freeOn_rkPos + theorem Matroid.not_rankPos_iff - theorem Matroid.not_rkPos_iff - theorem Matroid.uniqueBaseOn_finiteRk + theorem Matroid.uniqueBaseOn_rankFinite + theorem Matroid.uniqueBaseOn_rankPos - theorem Matroid.uniqueBaseOn_rkPos Modified Mathlib/Data/Matroid/Dual.lean +/- theorem Matroid.Base.ssubset_ground +/- theorem Matroid.Indep.ssubset_ground +/- theorem Matroid.ground_not_base Modified Mathlib/Data/Matroid/IndepAxioms.lean Modified Mathlib/Data/Matroid/Map.lean Modified Mathlib/Data/Matroid/Restrict.lean - theorem Matroid.Restriction.finiteRk + theorem Matroid.Restriction.rankFinite 2025-02-09 19:36:51 3d193da feat(CategoryTheory/MorphismProperty): more API for limits and retracts (#21596) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/MorphismProperty/Limits.lean + theorem CategoryTheory.MorphismProperty.IsStableUnderColimitsOfShape.isomorphisms + theorem CategoryTheory.MorphismProperty.colimitsOfShape_eq_of_equivalence + theorem CategoryTheory.MorphismProperty.colimitsOfShape_le_of_final + theorem CategoryTheory.MorphismProperty.colimitsOfShape_monotone + theorem CategoryTheory.MorphismProperty.coproducts_of_small + theorem CategoryTheory.MorphismProperty.le_colimitsOfShape_punit + theorem CategoryTheory.MorphismProperty.le_coproducts + theorem CategoryTheory.MorphismProperty.pullbacks_monotone + theorem CategoryTheory.MorphismProperty.pushouts_monotone Modified Mathlib/CategoryTheory/MorphismProperty/Retract.lean + theorem CategoryTheory.MorphismProperty.isStableUnderRetracts_iff_retracts_le + theorem CategoryTheory.MorphismProperty.le_retracts + def CategoryTheory.MorphismProperty.retracts + theorem CategoryTheory.MorphismProperty.retracts_le + theorem CategoryTheory.MorphismProperty.retracts_monotone 2025-02-09 19:36:50 734b6b1 chore(Algebra/Lie): process porting notes (#21550) ESTIMATED CHANGES Modified Mathlib/Algebra/Lie/Abelian.lean Modified Mathlib/Algebra/Lie/BaseChange.lean Modified Mathlib/Algebra/Lie/Character.lean Modified Mathlib/Algebra/Lie/Classical.lean Modified Mathlib/Algebra/Lie/Engel.lean Modified Mathlib/Algebra/Lie/Nilpotent.lean Modified Mathlib/Algebra/Lie/OfAssociative.lean Modified Mathlib/Algebra/Lie/Quotient.lean Modified Mathlib/Algebra/Lie/SkewAdjoint.lean Modified Mathlib/Algebra/Lie/Solvable.lean Modified Mathlib/Algebra/Lie/Submodule.lean Modified Mathlib/Algebra/Lie/UniversalEnveloping.lean 2025-02-09 19:36:49 f0b6312 feat(CategoryTheory/Sites): categories of sheaves are monoidal (#19915) Assuming `A` is a closed monoidal category and has suitable limits, we show that the internal hom from `F` to `G` in `Cᵒᵖ ⥤ A` is a sheaf for a Grothendieck topology `J` if `G` is a sheaf for `J`. When `A` is braided, we deduce that the category of sheaves with values in `A` can be equipped with a monoidal category structure. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/CategoryTheory/Localization/Bousfield.lean Added Mathlib/CategoryTheory/Sites/Monoidal.lean + theorem CategoryTheory.GrothendieckTopology.W.whiskerLeft + theorem CategoryTheory.GrothendieckTopology.W.whiskerRight + theorem CategoryTheory.Presheaf.functorEnrichedHomCoyonedaObjEquiv_naturality + theorem CategoryTheory.Presheaf.isSheaf_functorEnrichedHom 2025-02-09 19:16:47 00672d3 feat(NumberTheory/LSeries): results involving partial sums of coefficients (part 2) (#20660) We prove the following result : if `f : ℕ → ℂ` is such that `(∑ k ∈ Icc 1 n, f k) / n` tends to some complex number `l` when `n → ∞` and that the L-series `LSeries f` converges for all `s : ℝ` such that `1 < s`, then `(s - 1) * LSeries f s` tends to `l` when `s → 1` with `1 < s`. ESTIMATED CHANGES Modified Mathlib/Analysis/SpecialFunctions/ImproperIntegrals.lean + theorem integrableOn_Ioi_norm_cpow_iff + theorem integrableOn_Ioi_norm_cpow_of_lt Modified Mathlib/Analysis/SpecialFunctions/Pow/Asymptotics.lean + theorem Asymptotics.IsBigO.mul_atTop_rpow_natCast_of_isBigO_rpow + theorem Asymptotics.IsBigO.mul_atTop_rpow_of_isBigO_rpow + theorem Asymptotics.isBigO_atTop_natCast_rpow_of_tendsto_div_rpow Modified Mathlib/Analysis/SpecialFunctions/Pow/Real.lean - theorem Asymptotics.IsBigO.mul_atTop_rpow_natCast_of_isBigO_rpow - theorem Asymptotics.IsBigO.mul_atTop_rpow_of_isBigO_rpow Modified Mathlib/NumberTheory/LSeries/SumCoeff.lean + theorem LSeries_tendsto_sub_mul_nhds_one_of_tendsto_sum_div + theorem LSeries_tendsto_sub_mul_nhds_one_of_tendsto_sum_div_and_nonneg 2025-02-09 18:41:41 442b8e7 feat(CategoryTheory): preservation of well order continuous functors (#21595) Given a well ordered type `J` and a functor `G : C ⥤ D`, we define a type class `PreservesWellOrderContinuousOfShape J G` saying that `G` preserves colimits of shape `Set.Iio j` for any limit element `j : J`. It follows that if `F : J ⥤ C` is well order continuous, then so is `F ⋙ G`. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/CategoryTheory/Limits/Comma.lean Added Mathlib/CategoryTheory/Limits/Preserves/Shapes/Preorder.lean + theorem CategoryTheory.Limits.preservesColimitsOfShape_of_preservesWellOrderContinuousOfShape 2025-02-09 17:02:15 c1d4716 feat(AlgebraicTopology): singular homology (#21559) The definition is provided by Oliver Nash, Adam Topaz, and Kevin Buzzard on Zulip. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Homology/AlternatingConst.lean + theorem ChainComplex.alternatingConst_exactAt - theorem ChainComplex.isZero_alternatingConst_homology Added Mathlib/AlgebraicTopology/SingularHomology/Basic.lean + def AlgebraicTopology.SSet.singularChainComplexFunctor + theorem AlgebraicTopology.isZero_singularHomologyFunctor_of_totallyDisconnectedSpace + def AlgebraicTopology.singularChainComplexFunctor + def AlgebraicTopology.singularChainComplexFunctorIsoOfTotallyDisconnectedSpace + theorem AlgebraicTopology.singularChainComplexFunctor_exactAt_of_totallyDisconnectedSpace + def AlgebraicTopology.singularHomologyFunctor + def AlgebraicTopology.singularHomologyFunctorZeroOfTotallyDisconnectedSpace Modified Mathlib/CategoryTheory/Limits/Shapes/Products.lean + def CategoryTheory.Limits.piConst + def CategoryTheory.Limits.piConstAdj + def CategoryTheory.Limits.sigmaConst + def CategoryTheory.Limits.sigmaConstAdj 2025-02-09 16:53:04 651f76b feat(CategoryTheory): group objects (#21347) Define group objects in cartesian monoidal categories. Show that the associativity diagram of a group object is always cartesian and deduce that morphisms of group objects commute with taking inverses. Show that a finite-product-preserving functor takes group objects to group objects. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Monoidal/Cartesian/Mon_.lean + theorem Mon_.lift_comp_one_left + theorem Mon_.lift_comp_one_right + theorem Mon_.lift_lift_assoc Added Mathlib/CategoryTheory/Monoidal/Grp_.lean + theorem Grp_.comp' + theorem Grp_.comp_hom + theorem Grp_.eq_lift_inv_left + theorem Grp_.eq_lift_inv_right + def Grp_.forget + def Grp_.forget₂Mon_ + theorem Grp_.forget₂Mon_comp_forget + theorem Grp_.forget₂Mon_map_hom + theorem Grp_.forget₂Mon_obj_mul + theorem Grp_.forget₂Mon_obj_one + def Grp_.fullyFaithfulForget₂Mon_ + theorem Grp_.hom_ext + theorem Grp_.id' + theorem Grp_.id_hom + theorem Grp_.inv_hom + theorem Grp_.isPullback + theorem Grp_.lift_comp_inv_left + theorem Grp_.lift_comp_inv_right + theorem Grp_.lift_inv_comp_left + theorem Grp_.lift_inv_comp_right + theorem Grp_.lift_inv_left_eq + theorem Grp_.lift_inv_right_eq + def Grp_.mkIso + theorem Grp_.mkIso_hom_hom + theorem Grp_.mkIso_inv_hom + def Grp_.trivial + structure Grp_ 2025-02-09 15:10:25 a04abe9 refactor(CategoryTheory/Sites,Topology/Sheaves): upgrade `HasForget` to `ConcreteCategory` (#21575) This PR goes through all the files in `CategoryTheory/Sites` and `Topology/Sheaves` and replaces `HasForget` with `ConcreteCategory` so that we don't need to worry about `HasForget.instFunLike` or `HasForget.hasCoeToSort` mismatching with the actual coercions to functions/types. Some sources of friction remain: `Type` is not (globally) a `ConcreteCategory`, since to make it so needs to break the assumption that `forget Type` is reducibly defeq to the identity functor. The solution of this PR is to copy instances such as `PreservesLimits (forget Type)` over from the identity functor, and enabling the `ConcreteCategory` instance locally (see `CategoryTheory/Limits/ConcreteCategory/Basic.lean`). In the longer term I think we can enable that instance globally, but it would require quite some more downstream fixes. Limits are still based on `HasForget`, so we have to insert some `show` and `rfl` to change the goal from one spelling to another. Similarly for `elementwise`-generated lemmas. This should go away once we update the rest of the files to the same standards. Despite those uglifications mentioned above, I think the overall result is a clear improvement. ESTIMATED CHANGES Modified Mathlib/Algebra/Category/ModuleCat/Presheaf/Sheafify.lean Modified Mathlib/Algebra/Category/ModuleCat/Sheaf/ChangeOfRings.lean Modified Mathlib/AlgebraicGeometry/FunctionField.lean Modified Mathlib/AlgebraicGeometry/Modules/Sheaf.lean Modified Mathlib/AlgebraicGeometry/ProjectiveSpectrum/StructureSheaf.lean Modified Mathlib/AlgebraicGeometry/Properties.lean Modified Mathlib/AlgebraicGeometry/SpreadingOut.lean Modified Mathlib/AlgebraicGeometry/StructureSheaf.lean Modified Mathlib/CategoryTheory/Limits/ConcreteCategory/Basic.lean Modified Mathlib/CategoryTheory/Sites/Coherent/LocallySurjective.lean Modified Mathlib/CategoryTheory/Sites/Coherent/SequentialLimit.lean Modified Mathlib/CategoryTheory/Sites/CompatibleSheafification.lean Modified Mathlib/CategoryTheory/Sites/ConcreteSheafification.lean +/- theorem CategoryTheory.GrothendieckTopology.Plus.exists_rep +/- def CategoryTheory.GrothendieckTopology.Plus.mk +/- theorem CategoryTheory.GrothendieckTopology.Plus.sep +/- theorem CategoryTheory.GrothendieckTopology.Plus.toPlus_eq_mk +/- theorem CategoryTheory.GrothendieckTopology.Plus.toPlus_mk +/- def CategoryTheory.Meq.mk +/- theorem CategoryTheory.Meq.mk_apply Modified Mathlib/CategoryTheory/Sites/EpiMono.lean Modified Mathlib/CategoryTheory/Sites/Equivalence.lean Modified Mathlib/CategoryTheory/Sites/LeftExact.lean Modified Mathlib/CategoryTheory/Sites/LocallyBijective.lean Modified Mathlib/CategoryTheory/Sites/LocallyFullyFaithful.lean Modified Mathlib/CategoryTheory/Sites/LocallyInjective.lean +/- def CategoryTheory.Presheaf.equalizerSieve +/- theorem CategoryTheory.Presheaf.equalizerSieve_eq_top_iff +/- theorem CategoryTheory.Presheaf.equalizerSieve_self_eq_top Modified Mathlib/CategoryTheory/Sites/LocallySurjective.lean +/- theorem CategoryTheory.Presheaf.app_localPreimage +/- def CategoryTheory.Presheaf.imageSieve +/- theorem CategoryTheory.Presheaf.imageSieve_app +/- theorem CategoryTheory.Presheaf.imageSieve_eq_sieveOfSection +/- theorem CategoryTheory.Presheaf.imageSieve_whisker_forget Modified Mathlib/CategoryTheory/Sites/PreservesLocallyBijective.lean Modified Mathlib/CategoryTheory/Sites/PreservesSheafification.lean Modified Mathlib/CategoryTheory/Sites/Pullback.lean Modified Mathlib/CategoryTheory/Sites/Sheaf.lean +/- def CategoryTheory.Presheaf.IsSeparated Modified Mathlib/CategoryTheory/Sites/Subsheaf.lean Modified Mathlib/CategoryTheory/Sites/Whiskering.lean +/- theorem CategoryTheory.Presheaf.IsSheaf.isSeparated +/- theorem CategoryTheory.Sheaf.isSeparated Modified Mathlib/Condensed/CartesianClosed.lean Modified Mathlib/Condensed/Discrete/Basic.lean Modified Mathlib/Condensed/Discrete/Characterization.lean Modified Mathlib/Condensed/Discrete/LocallyConstant.lean Modified Mathlib/Condensed/Discrete/Module.lean Modified Mathlib/Condensed/Epi.lean Modified Mathlib/Condensed/Light/CartesianClosed.lean Modified Mathlib/Condensed/Light/Epi.lean Modified Mathlib/Geometry/RingedSpace/Basic.lean - theorem CommRingCat.germ_res_apply' - theorem CommRingCat.germ_res_apply Modified Mathlib/Geometry/RingedSpace/LocallyRingedSpace/HasColimits.lean Modified Mathlib/Geometry/RingedSpace/OpenImmersion.lean Modified Mathlib/Geometry/RingedSpace/SheafedSpace.lean Modified Mathlib/Topology/Sheaves/CommRingCat.lean Modified Mathlib/Topology/Sheaves/Functors.lean Modified Mathlib/Topology/Sheaves/LocalPredicate.lean Modified Mathlib/Topology/Sheaves/LocallySurjective.lean Modified Mathlib/Topology/Sheaves/MayerVietoris.lean Modified Mathlib/Topology/Sheaves/Presheaf.lean +/- theorem TopCat.Presheaf.map_restrict +/- def TopCat.Presheaf.restrict +/- theorem TopCat.Presheaf.restrict_restrict Modified Mathlib/Topology/Sheaves/SheafCondition/UniqueGluing.lean +/- def TopCat.Presheaf.IsCompatible +/- def TopCat.Presheaf.IsGluing +/- theorem TopCat.Sheaf.eq_of_locally_eq +/- theorem TopCat.Sheaf.existsUnique_gluing Modified Mathlib/Topology/Sheaves/Sheafify.lean Modified Mathlib/Topology/Sheaves/Stalks.lean +/- theorem TopCat.Presheaf.app_isIso_of_stalkFunctor_map_iso +/- theorem TopCat.Presheaf.germ_exist +/- theorem TopCat.Presheaf.section_ext +/- theorem TopCat.Presheaf.stalkFunctor_map_germ_apply' +/- theorem TopCat.Presheaf.stalkFunctor_map_germ_apply Modified MathlibTest/CategoryTheory/Sites/ConcreteSheafification.lean Modified MathlibTest/CategoryTheory/Sites/PreservesSheafification.lean 2025-02-09 14:24:44 1846d99 doc(Algebra/Group/Defs): fix lemma name (#21589) ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Defs.lean 2025-02-09 11:09:26 50c9a9b chore(CategoryTheory): adjust `simps` attribute for `LeftExactFunctor.whiskeringLeft` etc. (#21592) The previous generated `simp` lemmas were too specific. This PR instructs `simps` to generate the same lemmas as for the usual `CategoryTheory.whiskeringLeft`, which works better. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Limits/ExactFunctor.lean 2025-02-09 10:12:27 02b434a fix(Mathlib/Tactic): `minImports` now correctly handles namespaced declarations (#21505) The `minImports` linter/tactic is passed a piece of syntax and needs to figure out the dependencies of the declaration. Apart from looking at the syntax itself, it also looks at the elaborated term. This goes via determining the `Name` associated to that piece of syntax. The previous algorithm would get confused if there's a name `_root_.foo` and we're looking at `namespace Foo; def foo`. By replicating the logic of the builtin `Lean.Elab.mkDeclName` (that function unfortunately mixes name parsing/mangling and environment updating, so we can't call into it directly). Apart from the extra test case, I have made sure that `MeasureTheory.Measure.le_add_left` now reports a sensible set of minimal imports. I have not added it as a test case since it is so far in the import hierarchy. This PR also updates `upstreamableDecl` to use the same syntax -> name resolution. ESTIMATED CHANGES Modified Mathlib/Tactic/Linter/UpstreamableDecl.lean Modified Mathlib/Tactic/MinImports.lean + def Mathlib.Command.MinImports.getDeclName Modified MathlibTest/MinImports.lean + def confusableName 2025-02-09 07:10:59 e05e225 chore: tidy various files (#21568) ESTIMATED CHANGES Modified Archive/Imo/Imo1982Q1.lean Modified Mathlib/Algebra/Algebra/Operations.lean Modified Mathlib/Algebra/BrauerGroup/Defs.lean Modified Mathlib/Algebra/MonoidAlgebra/Defs.lean +/- theorem MonoidAlgebra.lsingle_apply Modified Mathlib/Algebra/Polynomial/AlgebraMap.lean +/- theorem Polynomial.eq_zero_of_mul_eq_zero_of_smul Modified Mathlib/AlgebraicGeometry/RationalMap.lean Modified Mathlib/Analysis/Analytic/Composition.lean Modified Mathlib/Analysis/Calculus/ContDiff/Defs.lean Modified Mathlib/Analysis/SpecialFunctions/Log/Basic.lean Modified Mathlib/CategoryTheory/Monoidal/Braided/Reflection.lean Modified Mathlib/Combinatorics/SimpleGraph/Sum.lean Modified Mathlib/FieldTheory/Minpoly/IsConjRoot.lean Modified Mathlib/LinearAlgebra/ExteriorPower/Basic.lean Modified Mathlib/ModelTheory/Semantics.lean Modified Mathlib/NumberTheory/LSeries/Positivity.lean Modified Mathlib/NumberTheory/NumberField/CanonicalEmbedding/Basic.lean +/- theorem NumberField.mixedEmbedding.disjoint_negAt_plusPart +/- theorem NumberField.mixedEmbedding.negAt_preimage +/- theorem NumberField.mixedEmbedding.pos_of_not_mem_negAt_plusPart Modified Mathlib/NumberTheory/Ostrowski.lean Modified Mathlib/Order/Nucleus.lean Modified Mathlib/Order/TransfiniteIteration.lean Modified Mathlib/RingTheory/HahnSeries/Summable.lean +/- def HahnSeries.SummableFamily.smul Modified Mathlib/RingTheory/LaurentSeries.lean Modified Mathlib/RingTheory/Spectrum/Prime/Polynomial.lean 2025-02-09 06:38:40 0868356 chore(Data/Set/Basic): split `insert` / `singleton` / `pair` to new file (#21567) This PR splits `insert` `singleton` and `pair` lemmas off of `Data.Set.Basic`, mitigating an instance of a long file, and bringing the directory structure more in line with `Finset` ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Group/Submonoid/Defs.lean Modified Mathlib/Algebra/Ring/Hom/Basic.lean Modified Mathlib/Data/Set/Basic.lean - theorem Prop.compl_singleton - theorem Set.Nonempty.eq_one - theorem Set.Nonempty.eq_zero - theorem Set.Nonempty.subset_pair_iff_eq - theorem Set.Nonempty.subset_singleton_iff - theorem Set.compl_ne_eq_singleton - theorem Set.compl_singleton_eq - theorem Set.default_coe_singleton - theorem Set.diff_insert_of_not_mem - theorem Set.diff_singleton_eq_self - theorem Set.diff_singleton_sSubset - theorem Set.diff_singleton_subset_iff - theorem Set.disjoint_singleton - theorem Set.disjoint_singleton_left - theorem Set.disjoint_singleton_right - theorem Set.empty_ssubset_singleton - theorem Set.eq_empty_of_ssubset_singleton - theorem Set.eq_of_mem_singleton - theorem Set.eq_of_nonempty_of_subsingleton' - theorem Set.eq_of_nonempty_of_subsingleton - theorem Set.eq_of_not_mem_of_mem_insert - theorem Set.eq_or_mem_of_mem_insert - theorem Set.eq_singleton_iff_nonempty_unique_mem - theorem Set.eq_singleton_iff_unique_mem - theorem Set.exists_mem_insert - theorem Set.forall_insert_of_forall - theorem Set.forall_mem_insert - theorem Set.forall_of_forall_insert - theorem Set.insert_comm - theorem Set.insert_def - theorem Set.insert_diff_eq_singleton - theorem Set.insert_diff_of_mem - theorem Set.insert_diff_of_not_mem - theorem Set.insert_diff_self_of_mem - theorem Set.insert_diff_self_of_not_mem - theorem Set.insert_diff_singleton - theorem Set.insert_diff_singleton_comm - theorem Set.insert_eq - theorem Set.insert_eq_of_mem - theorem Set.insert_eq_self - theorem Set.insert_erase_invOn - theorem Set.insert_idem - theorem Set.insert_inj - theorem Set.insert_inter_distrib - theorem Set.insert_inter_of_mem - theorem Set.insert_inter_of_not_mem - theorem Set.insert_ne_self - theorem Set.insert_nonempty - theorem Set.insert_subset - theorem Set.insert_subset_iff - theorem Set.insert_subset_insert - theorem Set.insert_subset_insert_iff - theorem Set.insert_union - theorem Set.insert_union_distrib - theorem Set.inter_insert_of_mem - theorem Set.inter_insert_of_not_mem - theorem Set.inter_singleton_eq_empty - theorem Set.inter_singleton_nonempty - theorem Set.mem_compl_singleton_iff - theorem Set.mem_diff_singleton - theorem Set.mem_diff_singleton_empty - theorem Set.mem_insert - theorem Set.mem_insert_iff - theorem Set.mem_insert_of_mem - theorem Set.mem_of_mem_insert_of_ne - theorem Set.mem_singleton - theorem Set.mem_singleton_iff - theorem Set.mem_singleton_of_eq - theorem Set.ne_insert_of_not_mem - theorem Set.nmem_singleton_empty - theorem Set.nonempty_compl_of_nontrivial - theorem Set.not_mem_singleton_iff - theorem Set.pair_comm - theorem Set.pair_diff_left - theorem Set.pair_diff_right - theorem Set.pair_eq_pair_iff - theorem Set.pair_eq_singleton - theorem Set.pair_subset - theorem Set.pair_subset_iff - theorem Set.powerset_singleton - theorem Set.preimage_fst_singleton_eq_range - theorem Set.preimage_snd_singleton_eq_range - theorem Set.setOf_eq_eq_singleton' - theorem Set.setOf_eq_eq_singleton - theorem Set.set_compr_eq_eq_singleton - theorem Set.singleton_def - theorem Set.singleton_eq_singleton_iff - theorem Set.singleton_injective - theorem Set.singleton_inter_eq_empty - theorem Set.singleton_inter_nonempty - theorem Set.singleton_ne_empty - theorem Set.singleton_nonempty - theorem Set.singleton_subset_iff - theorem Set.singleton_subset_singleton - theorem Set.singleton_union - theorem Set.ssubset_iff_insert - theorem Set.ssubset_iff_sdiff_singleton - theorem Set.ssubset_insert - theorem Set.ssubset_singleton_iff - theorem Set.subset_compl_singleton_iff - theorem Set.subset_diff_singleton - theorem Set.subset_insert - theorem Set.subset_insert_diff_singleton - theorem Set.subset_insert_iff - theorem Set.subset_insert_iff_of_not_mem - theorem Set.subset_pair_iff - theorem Set.subset_pair_iff_eq - theorem Set.subset_singleton_iff - theorem Set.subset_singleton_iff_eq - def Set.subtypeInsertEquivOption - theorem Set.union_insert - theorem Set.union_singleton Modified Mathlib/Data/Set/Enumerate.lean Added Mathlib/Data/Set/Insert.lean + theorem Prop.compl_singleton + theorem Set.Nonempty.eq_one + theorem Set.Nonempty.eq_zero + theorem Set.Nonempty.subset_pair_iff_eq + theorem Set.Nonempty.subset_singleton_iff + theorem Set.compl_ne_eq_singleton + theorem Set.compl_singleton_eq + theorem Set.default_coe_singleton + theorem Set.diff_insert_of_not_mem + theorem Set.diff_singleton_eq_self + theorem Set.diff_singleton_sSubset + theorem Set.diff_singleton_subset_iff + theorem Set.disjoint_singleton + theorem Set.disjoint_singleton_left + theorem Set.disjoint_singleton_right + theorem Set.empty_ssubset_singleton + theorem Set.eq_empty_of_ssubset_singleton + theorem Set.eq_of_mem_singleton + theorem Set.eq_of_nonempty_of_subsingleton' + theorem Set.eq_of_nonempty_of_subsingleton + theorem Set.eq_of_not_mem_of_mem_insert + theorem Set.eq_or_mem_of_mem_insert + theorem Set.eq_singleton_iff_nonempty_unique_mem + theorem Set.eq_singleton_iff_unique_mem + theorem Set.exists_mem_insert + theorem Set.forall_insert_of_forall + theorem Set.forall_mem_insert + theorem Set.forall_of_forall_insert + theorem Set.insert_comm + theorem Set.insert_def + theorem Set.insert_diff_eq_singleton + theorem Set.insert_diff_of_mem + theorem Set.insert_diff_of_not_mem + theorem Set.insert_diff_self_of_mem + theorem Set.insert_diff_self_of_not_mem + theorem Set.insert_diff_singleton + theorem Set.insert_diff_singleton_comm + theorem Set.insert_eq + theorem Set.insert_eq_of_mem + theorem Set.insert_eq_self + theorem Set.insert_erase_invOn + theorem Set.insert_idem + theorem Set.insert_inj + theorem Set.insert_inter_distrib + theorem Set.insert_inter_of_mem + theorem Set.insert_inter_of_not_mem + theorem Set.insert_ne_self + theorem Set.insert_nonempty + theorem Set.insert_subset + theorem Set.insert_subset_iff + theorem Set.insert_subset_insert + theorem Set.insert_subset_insert_iff + theorem Set.insert_union + theorem Set.insert_union_distrib + theorem Set.inter_insert_of_mem + theorem Set.inter_insert_of_not_mem + theorem Set.inter_singleton_eq_empty + theorem Set.inter_singleton_nonempty + theorem Set.mem_compl_singleton_iff + theorem Set.mem_diff_singleton + theorem Set.mem_diff_singleton_empty + theorem Set.mem_insert + theorem Set.mem_insert_iff + theorem Set.mem_insert_of_mem + theorem Set.mem_of_mem_insert_of_ne + theorem Set.mem_singleton + theorem Set.mem_singleton_iff + theorem Set.mem_singleton_of_eq + theorem Set.ne_insert_of_not_mem + theorem Set.nmem_singleton_empty + theorem Set.nonempty_compl_of_nontrivial + theorem Set.not_mem_singleton_iff + theorem Set.pair_comm + theorem Set.pair_diff_left + theorem Set.pair_diff_right + theorem Set.pair_eq_pair_iff + theorem Set.pair_eq_singleton + theorem Set.pair_subset + theorem Set.pair_subset_iff + theorem Set.powerset_singleton + theorem Set.preimage_fst_singleton_eq_range + theorem Set.preimage_snd_singleton_eq_range + theorem Set.setOf_eq_eq_singleton' + theorem Set.setOf_eq_eq_singleton + theorem Set.set_compr_eq_eq_singleton + theorem Set.singleton_def + theorem Set.singleton_eq_singleton_iff + theorem Set.singleton_injective + theorem Set.singleton_inter_eq_empty + theorem Set.singleton_inter_nonempty + theorem Set.singleton_ne_empty + theorem Set.singleton_nonempty + theorem Set.singleton_subset_iff + theorem Set.singleton_subset_singleton + theorem Set.singleton_union + theorem Set.ssubset_iff_insert + theorem Set.ssubset_iff_sdiff_singleton + theorem Set.ssubset_insert + theorem Set.ssubset_singleton_iff + theorem Set.subset_compl_singleton_iff + theorem Set.subset_diff_singleton + theorem Set.subset_insert + theorem Set.subset_insert_diff_singleton + theorem Set.subset_insert_iff + theorem Set.subset_insert_iff_of_not_mem + theorem Set.subset_pair_iff + theorem Set.subset_pair_iff_eq + theorem Set.subset_singleton_iff + theorem Set.subset_singleton_iff_eq + def Set.subtypeInsertEquivOption + theorem Set.union_insert + theorem Set.union_singleton Modified Mathlib/Data/Set/Subsingleton.lean Modified Mathlib/Data/Set/SymmDiff.lean Modified Mathlib/Logic/Function/FiberPartition.lean Modified Mathlib/Order/Filter/Defs.lean Modified MathlibTest/cc.lean 2025-02-09 05:54:18 57e69ed chore(MeasureTheory/Integral/Bochner): split Bochner into BochnerL1 and Bochner (#21580) Split the too long file `Bochner` into `BochnerL1` which defines the Bochner integral for L1 functions only, and `Bochner` which defines the Bochner integral for functions and provides the API. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/MeasureTheory/Integral/Bochner.lean - theorem MeasureTheory.L1.SimpleFunc.coe_negPart - theorem MeasureTheory.L1.SimpleFunc.coe_posPart - def MeasureTheory.L1.SimpleFunc.integral - def MeasureTheory.L1.SimpleFunc.integralCLM' - def MeasureTheory.L1.SimpleFunc.integralCLM - theorem MeasureTheory.L1.SimpleFunc.integral_L1_eq_integral - theorem MeasureTheory.L1.SimpleFunc.integral_add - theorem MeasureTheory.L1.SimpleFunc.integral_eq_integral - theorem MeasureTheory.L1.SimpleFunc.integral_eq_norm_posPart_sub - theorem MeasureTheory.L1.SimpleFunc.integral_eq_setToL1S - theorem MeasureTheory.L1.SimpleFunc.integral_smul - def MeasureTheory.L1.SimpleFunc.negPart - theorem MeasureTheory.L1.SimpleFunc.negPart_toSimpleFunc - theorem MeasureTheory.L1.SimpleFunc.norm_Integral_le_one - theorem MeasureTheory.L1.SimpleFunc.norm_eq_integral - theorem MeasureTheory.L1.SimpleFunc.norm_integral_le_norm - theorem MeasureTheory.L1.SimpleFunc.posPart_toSimpleFunc - theorem MeasureTheory.L1.continuous_integral - def MeasureTheory.L1.integralCLM - theorem MeasureTheory.L1.integral_add - theorem MeasureTheory.L1.integral_eq - theorem MeasureTheory.L1.integral_eq_norm_posPart_sub - theorem MeasureTheory.L1.integral_eq_setToL1 - theorem MeasureTheory.L1.integral_neg - theorem MeasureTheory.L1.integral_smul - theorem MeasureTheory.L1.integral_sub - theorem MeasureTheory.L1.integral_zero - theorem MeasureTheory.L1.nnnorm_Integral_le_one - theorem MeasureTheory.L1.nnnorm_integral_le - theorem MeasureTheory.L1.norm_Integral_le_one - theorem MeasureTheory.L1.norm_integral_le - def MeasureTheory.SimpleFunc.integral - theorem MeasureTheory.SimpleFunc.integral_add - theorem MeasureTheory.SimpleFunc.integral_add_measure - theorem MeasureTheory.SimpleFunc.integral_congr - theorem MeasureTheory.SimpleFunc.integral_const - theorem MeasureTheory.SimpleFunc.integral_def - theorem MeasureTheory.SimpleFunc.integral_eq - theorem MeasureTheory.SimpleFunc.integral_eq_lintegral' - theorem MeasureTheory.SimpleFunc.integral_eq_lintegral - theorem MeasureTheory.SimpleFunc.integral_eq_sum_filter - theorem MeasureTheory.SimpleFunc.integral_eq_sum_of_subset - theorem MeasureTheory.SimpleFunc.integral_neg - theorem MeasureTheory.SimpleFunc.integral_piecewise_zero - theorem MeasureTheory.SimpleFunc.integral_smul - theorem MeasureTheory.SimpleFunc.integral_sub - theorem MeasureTheory.SimpleFunc.map_integral - def MeasureTheory.SimpleFunc.negPart - theorem MeasureTheory.SimpleFunc.negPart_map_norm - theorem MeasureTheory.SimpleFunc.norm_integral_le_integral_norm - theorem MeasureTheory.SimpleFunc.norm_setToSimpleFunc_le_integral_norm - def MeasureTheory.SimpleFunc.posPart - theorem MeasureTheory.SimpleFunc.posPart_map_norm - theorem MeasureTheory.SimpleFunc.posPart_sub_negPart - theorem MeasureTheory.dominatedFinMeasAdditive_weightedSMul - theorem MeasureTheory.norm_weightedSMul_le - def MeasureTheory.weightedSMul - theorem MeasureTheory.weightedSMul_add_measure - theorem MeasureTheory.weightedSMul_apply - theorem MeasureTheory.weightedSMul_congr - theorem MeasureTheory.weightedSMul_empty - theorem MeasureTheory.weightedSMul_nonneg - theorem MeasureTheory.weightedSMul_null - theorem MeasureTheory.weightedSMul_smul - theorem MeasureTheory.weightedSMul_smul_measure - theorem MeasureTheory.weightedSMul_union' - theorem MeasureTheory.weightedSMul_union - theorem MeasureTheory.weightedSMul_zero_measure Added Mathlib/MeasureTheory/Integral/BochnerL1.lean + theorem MeasureTheory.L1.SimpleFunc.coe_negPart + theorem MeasureTheory.L1.SimpleFunc.coe_posPart + def MeasureTheory.L1.SimpleFunc.integral + def MeasureTheory.L1.SimpleFunc.integralCLM' + def MeasureTheory.L1.SimpleFunc.integralCLM + theorem MeasureTheory.L1.SimpleFunc.integral_L1_eq_integral + theorem MeasureTheory.L1.SimpleFunc.integral_add + theorem MeasureTheory.L1.SimpleFunc.integral_eq_integral + theorem MeasureTheory.L1.SimpleFunc.integral_eq_norm_posPart_sub + theorem MeasureTheory.L1.SimpleFunc.integral_eq_setToL1S + theorem MeasureTheory.L1.SimpleFunc.integral_smul + def MeasureTheory.L1.SimpleFunc.negPart + theorem MeasureTheory.L1.SimpleFunc.negPart_toSimpleFunc + theorem MeasureTheory.L1.SimpleFunc.norm_Integral_le_one + theorem MeasureTheory.L1.SimpleFunc.norm_eq_integral + theorem MeasureTheory.L1.SimpleFunc.norm_integral_le_norm + theorem MeasureTheory.L1.SimpleFunc.posPart_toSimpleFunc + theorem MeasureTheory.L1.continuous_integral + def MeasureTheory.L1.integralCLM + theorem MeasureTheory.L1.integral_add + theorem MeasureTheory.L1.integral_eq + theorem MeasureTheory.L1.integral_eq_norm_posPart_sub + theorem MeasureTheory.L1.integral_eq_setToL1 + theorem MeasureTheory.L1.integral_neg + theorem MeasureTheory.L1.integral_smul + theorem MeasureTheory.L1.integral_sub + theorem MeasureTheory.L1.integral_zero + theorem MeasureTheory.L1.nnnorm_Integral_le_one + theorem MeasureTheory.L1.nnnorm_integral_le + theorem MeasureTheory.L1.norm_Integral_le_one + theorem MeasureTheory.L1.norm_integral_le + def MeasureTheory.SimpleFunc.integral + theorem MeasureTheory.SimpleFunc.integral_add + theorem MeasureTheory.SimpleFunc.integral_add_measure + theorem MeasureTheory.SimpleFunc.integral_congr + theorem MeasureTheory.SimpleFunc.integral_const + theorem MeasureTheory.SimpleFunc.integral_def + theorem MeasureTheory.SimpleFunc.integral_eq + theorem MeasureTheory.SimpleFunc.integral_eq_lintegral' + theorem MeasureTheory.SimpleFunc.integral_eq_lintegral + theorem MeasureTheory.SimpleFunc.integral_eq_sum_filter + theorem MeasureTheory.SimpleFunc.integral_eq_sum_of_subset + theorem MeasureTheory.SimpleFunc.integral_neg + theorem MeasureTheory.SimpleFunc.integral_piecewise_zero + theorem MeasureTheory.SimpleFunc.integral_smul + theorem MeasureTheory.SimpleFunc.integral_sub + theorem MeasureTheory.SimpleFunc.map_integral + def MeasureTheory.SimpleFunc.negPart + theorem MeasureTheory.SimpleFunc.negPart_map_norm + theorem MeasureTheory.SimpleFunc.norm_integral_le_integral_norm + theorem MeasureTheory.SimpleFunc.norm_setToSimpleFunc_le_integral_norm + def MeasureTheory.SimpleFunc.posPart + theorem MeasureTheory.SimpleFunc.posPart_map_norm + theorem MeasureTheory.SimpleFunc.posPart_sub_negPart + theorem MeasureTheory.dominatedFinMeasAdditive_weightedSMul + theorem MeasureTheory.norm_weightedSMul_le + def MeasureTheory.weightedSMul + theorem MeasureTheory.weightedSMul_add_measure + theorem MeasureTheory.weightedSMul_apply + theorem MeasureTheory.weightedSMul_congr + theorem MeasureTheory.weightedSMul_empty + theorem MeasureTheory.weightedSMul_nonneg + theorem MeasureTheory.weightedSMul_null + theorem MeasureTheory.weightedSMul_smul + theorem MeasureTheory.weightedSMul_smul_measure + theorem MeasureTheory.weightedSMul_union' + theorem MeasureTheory.weightedSMul_union + theorem MeasureTheory.weightedSMul_zero_measure 2025-02-09 00:31:47 4ba7257 chore(scripts): update nolints.json (#21587) I am happy to remove some nolints for you! ESTIMATED CHANGES Modified scripts/nolints.json 2025-02-08 23:59:59 46ac758 refactor(Order/OrderIsoNat): use `WellFoundedGT` in monotone chain condition (#20782) Instead of `WellFounded (· > ·)`, we write `WellFoundedGT α`. We also add some docstrings, and one-sided versions of the theorem which take in `WellFoundedGT α` as a typeclass argument. ESTIMATED CHANGES Modified Mathlib/Algebra/Lie/Nilpotent.lean Modified Mathlib/LinearAlgebra/Eigenspace/Basic.lean +/- theorem Module.End.genEigenspace_top_eq_maxUnifEigenspaceIndex Modified Mathlib/Order/OrderIsoNat.lean + theorem WellFoundedGT.iSup_eq_monotonicSequenceLimit + theorem WellFoundedGT.monotone_chain_condition' + theorem WellFoundedGT.monotone_chain_condition + theorem wellFoundedGT_iff_monotone_chain_condition' + theorem wellFoundedGT_iff_monotone_chain_condition Modified Mathlib/RingTheory/Artinian/Module.lean Modified Mathlib/RingTheory/Noetherian/Defs.lean 2025-02-08 23:25:06 ecbdf17 feat(Algebra/Order/Monoid/Canonical/Defs): dot notation aliases (#21197) ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Monoid/Canonical/Defs.lean + theorem one_lt_of_ne_one 2025-02-08 22:25:49 ebbd72b feat(AlgebraicGeometry): lift `X ⟶ Spec A` to `X ⟶ Spec (A ⧸ I)` (#21439) ESTIMATED CHANGES Modified Mathlib/AlgebraicGeometry/AffineScheme.lean + def AlgebraicGeometry.Scheme.Hom.liftQuotient + theorem AlgebraicGeometry.Scheme.Hom.liftQuotient_comp Modified Mathlib/RingTheory/Ideal/Quotient/Defs.lean + theorem Ideal.Quotient.lift_comp_mk 2025-02-08 21:46:43 3dd32fd chore: `antisymm_refl` → `Antisymm.refl` (#21202) This allows us to use anonymous dot notation. Along the way, we also fix the argument implicitness of `AntisymmRel.rfl`. ESTIMATED CHANGES Modified Mathlib/Order/Antisymmetrization.lean + theorem AntisymmRel.refl +/- theorem AntisymmRel.rfl - theorem antisymmRel_refl 2025-02-08 20:24:05 1c66710 refactor(CategoryTheory): a structure describing transfinite compositions (#21417) This PR introduces a structure `CategoryTheory.TransfiniteCompositionOfShape J f` which contains the data to express that a morphism `f` in a category `C` is a certain transfinite composition of morphisms indexed by a well ordered type `J`. This structure is extended in order to redefine `MorphismProperty.transfiniteCompositionsOfShape`. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Limits/Shapes/Preorder/TransfiniteCompositionOfShape.lean + def CategoryTheory.TransfiniteCompositionOfShape.ofArrowIso + def CategoryTheory.TransfiniteCompositionOfShape.ofComposableArrows + def CategoryTheory.TransfiniteCompositionOfShape.ofOrderIso + structure CategoryTheory.TransfiniteCompositionOfShape Modified Mathlib/CategoryTheory/Limits/Shapes/Preorder/WellOrderContinuous.lean Modified Mathlib/CategoryTheory/MorphismProperty/TransfiniteComposition.lean + theorem CategoryTheory.MorphismProperty.IsStableUnderTransfiniteComposition.shrink + theorem CategoryTheory.MorphismProperty.IsStableUnderTransfiniteComposition.shrink₀ + def CategoryTheory.MorphismProperty.TransfiniteCompositionOfShape.id + theorem CategoryTheory.MorphismProperty.TransfiniteCompositionOfShape.mem + def CategoryTheory.MorphismProperty.TransfiniteCompositionOfShape.ofArrowIso + def CategoryTheory.MorphismProperty.TransfiniteCompositionOfShape.ofComp + def CategoryTheory.MorphismProperty.TransfiniteCompositionOfShape.ofComposableArrows + def CategoryTheory.MorphismProperty.TransfiniteCompositionOfShape.ofLE + def CategoryTheory.MorphismProperty.TransfiniteCompositionOfShape.ofMem + def CategoryTheory.MorphismProperty.TransfiniteCompositionOfShape.ofOrderIso + structure CategoryTheory.MorphismProperty.TransfiniteCompositionOfShape + theorem CategoryTheory.MorphismProperty.isStableUnderTransfiniteCompositionOfShape_iff_of_orderIso - theorem CategoryTheory.MorphismProperty.mem_of_transfinite_composition + def CategoryTheory.MorphismProperty.transfiniteCompositionsOfShape - inductive CategoryTheory.MorphismProperty.transfiniteCompositionsOfShape + theorem CategoryTheory.MorphismProperty.transfiniteCompositionsOfShape_eq_of_orderIso +/- theorem CategoryTheory.MorphismProperty.transfiniteCompositionsOfShape_le 2025-02-08 20:13:32 573d586 feat(AlgebraicTopology): notations X _⦋n⦌ and X ^⦋n⦌ for (co)simplicial objects (#21581) We change the notation for the `n`-th term of a simplicial object `X` from `X _[n]` to `X _⦋n⦌`. We also change the notation for the `n`-th term of a cosimplicial object `X` from `X ^[n]` to `X ^⦋n⦌`. This change makes the notations for (co)simplicial objects consistent with the notation for objects of the simplex category, which was updated in #21565. ESTIMATED CHANGES Modified Mathlib/AlgebraicTopology/AlternatingFaceMapComplex.lean +/- def AlgebraicTopology.AlternatingFaceMapComplex.objD +/- theorem AlgebraicTopology.AlternatingFaceMapComplex.obj_X Modified Mathlib/AlgebraicTopology/DoldKan/Decomposition.lean +/- def AlgebraicTopology.DoldKan.MorphComponents.id +/- def AlgebraicTopology.DoldKan.MorphComponents.φ Modified Mathlib/AlgebraicTopology/DoldKan/Degeneracies.lean +/- theorem AlgebraicTopology.DoldKan.HigherFacesVanish.comp_σ Modified Mathlib/AlgebraicTopology/DoldKan/Equivalence.lean Modified Mathlib/AlgebraicTopology/DoldKan/Faces.lean +/- theorem AlgebraicTopology.DoldKan.HigherFacesVanish.comp_Hσ_eq +/- theorem AlgebraicTopology.DoldKan.HigherFacesVanish.comp_Hσ_eq_zero +/- theorem AlgebraicTopology.DoldKan.HigherFacesVanish.comp_δ_eq_zero +/- theorem AlgebraicTopology.DoldKan.HigherFacesVanish.induction +/- theorem AlgebraicTopology.DoldKan.HigherFacesVanish.of_comp +/- theorem AlgebraicTopology.DoldKan.HigherFacesVanish.of_succ +/- def AlgebraicTopology.DoldKan.HigherFacesVanish Modified Mathlib/AlgebraicTopology/DoldKan/Homotopies.lean +/- def AlgebraicTopology.DoldKan.hσ Modified Mathlib/AlgebraicTopology/DoldKan/HomotopyEquivalence.lean Modified Mathlib/AlgebraicTopology/DoldKan/PInfty.lean +/- theorem AlgebraicTopology.DoldKan.PInfty_f +/- theorem AlgebraicTopology.DoldKan.PInfty_f_0 +/- theorem AlgebraicTopology.DoldKan.PInfty_f_add_QInfty_f +/- theorem AlgebraicTopology.DoldKan.PInfty_f_comp_QInfty_f +/- theorem AlgebraicTopology.DoldKan.PInfty_f_idem +/- theorem AlgebraicTopology.DoldKan.QInfty_f +/- theorem AlgebraicTopology.DoldKan.QInfty_f_0 +/- theorem AlgebraicTopology.DoldKan.QInfty_f_comp_PInfty_f +/- theorem AlgebraicTopology.DoldKan.QInfty_f_idem Modified Mathlib/AlgebraicTopology/DoldKan/Projections.lean +/- theorem AlgebraicTopology.DoldKan.HigherFacesVanish.comp_P_eq_self +/- theorem AlgebraicTopology.DoldKan.HigherFacesVanish.of_P +/- theorem AlgebraicTopology.DoldKan.P_add_Q_f +/- theorem AlgebraicTopology.DoldKan.P_f_0_eq +/- theorem AlgebraicTopology.DoldKan.P_f_idem +/- theorem AlgebraicTopology.DoldKan.Q_f_0_eq +/- theorem AlgebraicTopology.DoldKan.Q_f_idem +/- theorem AlgebraicTopology.DoldKan.comp_P_eq_self_iff Modified Mathlib/AlgebraicTopology/DoldKan/SplitSimplicialObject.lean +/- theorem SimplicialObject.Splitting.comp_PInfty_eq_zero_iff Modified Mathlib/AlgebraicTopology/ExtraDegeneracy.lean Modified Mathlib/AlgebraicTopology/Quasicategory/Basic.lean Modified Mathlib/AlgebraicTopology/Quasicategory/StrictSegal.lean Modified Mathlib/AlgebraicTopology/SimplicialCategory/Basic.lean +/- def CategoryTheory.SimplicialCategory.homEquiv' Modified Mathlib/AlgebraicTopology/SimplicialNerve.lean Modified Mathlib/AlgebraicTopology/SimplicialObject/Basic.lean +/- def CategoryTheory.CosimplicialObject.eqToIso +/- def CategoryTheory.CosimplicialObject.δ +/- def CategoryTheory.CosimplicialObject.σ +/- def CategoryTheory.SimplicialObject.augment +/- theorem CategoryTheory.SimplicialObject.augment_hom_zero +/- def CategoryTheory.SimplicialObject.diagonal +/- def CategoryTheory.SimplicialObject.eqToIso +/- def CategoryTheory.SimplicialObject.δ +/- def CategoryTheory.SimplicialObject.σ Modified Mathlib/AlgebraicTopology/SimplicialObject/Split.lean +/- def SimplicialObject.Splitting.φ Modified Mathlib/AlgebraicTopology/SimplicialSet/Basic.lean +/- theorem SSet.δ_comp_δ_apply +/- theorem SSet.δ_comp_δ_self_apply +/- theorem SSet.δ_comp_σ_self_apply +/- theorem SSet.δ_comp_σ_succ'_apply +/- theorem SSet.δ_comp_σ_succ_apply +/- theorem SSet.δ_naturality_apply +/- theorem SSet.σ_comp_σ_apply +/- theorem SSet.σ_naturality_apply Modified Mathlib/AlgebraicTopology/SimplicialSet/Coskeletal.lean Modified Mathlib/AlgebraicTopology/SimplicialSet/HomotopyCat.lean +/- def SSet.OneTruncation₂ +/- theorem SSet.Truncated.HoRel₂.mk' +/- def SSet.Truncated.ev01₂ +/- def SSet.Truncated.ev02₂ +/- def SSet.Truncated.ev0₂ +/- def SSet.Truncated.ev12₂ +/- def SSet.Truncated.ev1₂ +/- def SSet.Truncated.ev2₂ Modified Mathlib/AlgebraicTopology/SimplicialSet/Horn.lean +/- def SSet.horn.edge +/- def SSet.horn.face Modified Mathlib/AlgebraicTopology/SimplicialSet/Monoidal.lean +/- def SSet.unitHomEquiv Modified Mathlib/AlgebraicTopology/SimplicialSet/Nerve.lean +/- theorem CategoryTheory.Nerve.δ₀_eq +/- def CategoryTheory.nerveEquiv Modified Mathlib/AlgebraicTopology/SimplicialSet/Path.lean +/- def SSet.spine +/- theorem SSet.spine_map_subinterval +/- theorem SSet.spine_map_vertex Modified Mathlib/AlgebraicTopology/SimplicialSet/StdSimplex.lean +/- def SSet.stdSimplex.edge +/- def SSet.stdSimplex.id +/- def SSet.stdSimplex.triangle Modified Mathlib/AlgebraicTopology/SimplicialSet/StrictSegal.lean +/- def SSet.StrictSegal.spineEquiv +/- def SSet.StrictSegal.spineToDiagonal 2025-02-08 18:35:57 caef037 chore(MeasureTheory/Integral): rename and move `RieszMarkovKakutani` (#21572) rename and move `RieszMarkovKakutani` to `RieszMarkovKakutani.Basic`, in order to host other files. requested in #12290 ESTIMATED CHANGES Modified Mathlib.lean Renamed Mathlib/MeasureTheory/Integral/RieszMarkovKakutani.lean to Mathlib/MeasureTheory/Integral/RieszMarkovKakutani/Basic.lean 2025-02-08 18:21:53 2477cf9 feat(Algebra/Category): adjunctions in CommRingCat (#21427) ESTIMATED CHANGES Modified Mathlib/Algebra/Category/MonCat/Adjunctions.lean + def AddCommMonCat.adj + def AddCommMonCat.free Modified Mathlib/Algebra/Category/MonCat/Basic.lean + def AddCommMonCat.equivalence + def AddMonCat.equivalence Modified Mathlib/Algebra/Category/Ring/Adjunctions.lean + def CommRingCat.coyoneda + def CommRingCat.coyonedaAdj + def CommRingCat.coyonedaUnique + def CommRingCat.forget₂Adj + def CommRingCat.monoidAlgebra + def CommRingCat.monoidAlgebraAdj Modified Mathlib/Algebra/Category/Ring/Basic.lean Modified Mathlib/CategoryTheory/Adjunction/Over.lean + def CategoryTheory.Under.equivalenceOfIsInitial 2025-02-08 16:42:54 605ae57 feat(CategoryTheory/Limits): initial and terminal objects in Fin (#21561) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Limits/Shapes/Preorder/Fin.lean + def Fin.isInitialZero + def Fin.isTerminalLast 2025-02-08 16:01:55 6c3546e feat: missing basic API lemmas for `Nat.card`, `Fintype.card` (#20131) `card_sigma` existed for `Fintype.card` and I've added it for `Nat.card`. This version uses `Finite` instead of `Fintype` for the dependent type, for generality. `card_univ` existed for `Nat.card` and I've added it for `Fintype.card`. I've added `card_subtype_true` for both `Nat.card` and `Fintype.card`. I've renamed `empty_card` -> `card_empty` With `Fintype.card` rewrite lemmas, one has to be careful about the instance to avoid unifying with a non-defeq instance. This can be solved by taking the instance as a (normal) implicit parameter. However, it is not clear that this is really necessary. ESTIMATED CHANGES Modified Mathlib/Algebra/BigOperators/Expect.lean Modified Mathlib/Algebra/Group/AddChar.lean Modified Mathlib/Analysis/FunctionalSpaces/SobolevInequality.lean Modified Mathlib/Combinatorics/SetFamily/AhlswedeZhang.lean Modified Mathlib/Data/Fintype/Card.lean + theorem Fintype.card_setUniv + theorem Fintype.card_subtype_true Modified Mathlib/Data/Set/Finite/Basic.lean + theorem Set.card_empty - theorem Set.empty_card' - theorem Set.empty_card Modified Mathlib/LinearAlgebra/Matrix/Determinant/Basic.lean Modified Mathlib/ModelTheory/Basic.lean + theorem FirstOrder.Language.card_empty - theorem FirstOrder.Language.empty_card Modified Mathlib/NumberTheory/NumberField/Units/DirichletTheorem.lean Modified Mathlib/SetTheory/Cardinal/Finite.lean + theorem Nat.card_sigma + theorem Nat.card_subtype_true Modified Mathlib/Topology/MetricSpace/GromovHausdorff.lean 2025-02-08 15:33:40 6041623 feat: definition and basic lemmas about CW-complexes (#19760) This PR defines (relative) CW-complexes in the original way Whitehead defined them: As a collection of cells that is closure finite and has weak topology. It additionally proves basic properties about them. See [this discussion on Zulip](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/two.20definitions.20of.20CW-complexes) about the two possible definitions. Co-authered-by: Floris van Doorn ESTIMATED CHANGES Modified Mathlib.lean Renamed Mathlib/Topology/CWComplex.lean to Mathlib/Topology/CWComplex/Abstract/Basic.lean - structure CWComplex + structure CategoryTheory.CWComplex + def CategoryTheory.RelativeCWComplex.AttachCells + def CategoryTheory.RelativeCWComplex.AttachGeneralizedCells.inclusion + structure CategoryTheory.RelativeCWComplex.AttachGeneralizedCells + def CategoryTheory.RelativeCWComplex.skInclusion + def CategoryTheory.RelativeCWComplex.sphereInclusion + def CategoryTheory.RelativeCWComplex.toTopCat + structure CategoryTheory.RelativeCWComplex - def RelativeCWComplex.AttachCells - def RelativeCWComplex.AttachGeneralizedCells.inclusion - structure RelativeCWComplex.AttachGeneralizedCells - def RelativeCWComplex.skInclusion - def RelativeCWComplex.sphereInclusion - def RelativeCWComplex.toTopCat - structure RelativeCWComplex Added Mathlib/Topology/CWComplex/Classical/Basic.lean + theorem Topology.CWComplex.cellFrontier_subset_finite_closedCell + theorem Topology.CWComplex.closed + theorem Topology.CWComplex.mapsto + def Topology.CWComplex.mk.{u} + theorem Topology.CWComplex.skeletonLT_zero_eq_empty + theorem Topology.CWComplex.union + theorem Topology.RelCWComplex.base_subset_complex + theorem Topology.RelCWComplex.base_subset_skeleton + theorem Topology.RelCWComplex.base_subset_skeletonLT + def Topology.RelCWComplex.cellFrontier + theorem Topology.RelCWComplex.cellFrontier_subset_base_union_finite_closedCell + theorem Topology.RelCWComplex.cellFrontier_subset_closedCell + theorem Topology.RelCWComplex.cellFrontier_subset_skeleton + theorem Topology.RelCWComplex.cellFrontier_subset_skeletonLT + theorem Topology.RelCWComplex.cellFrontier_union_openCell_eq_closedCell + theorem Topology.RelCWComplex.cellFrontier_zero_eq_empty + theorem Topology.RelCWComplex.closed + def Topology.RelCWComplex.closedCell + theorem Topology.RelCWComplex.closedCell_subset_complex + theorem Topology.RelCWComplex.closedCell_subset_skeleton + theorem Topology.RelCWComplex.closedCell_subset_skeletonLT + theorem Topology.RelCWComplex.closedCell_zero_eq_singleton + theorem Topology.RelCWComplex.closure_openCell_eq_closedCell + theorem Topology.RelCWComplex.disjointBase + theorem Topology.RelCWComplex.disjoint_openCell_of_ne + theorem Topology.RelCWComplex.iUnion_cellFrontier_subset_skeleton + theorem Topology.RelCWComplex.iUnion_cellFrontier_subset_skeletonLT + theorem Topology.RelCWComplex.isClosed_cellFrontier + theorem Topology.RelCWComplex.isClosed_closedCell + theorem Topology.RelCWComplex.isCompact_cellFrontier + theorem Topology.RelCWComplex.isCompact_closedCell + theorem Topology.RelCWComplex.map_zero_mem_closedCell + theorem Topology.RelCWComplex.map_zero_mem_openCell + def Topology.RelCWComplex.openCell + theorem Topology.RelCWComplex.openCell_subset_closedCell + theorem Topology.RelCWComplex.openCell_subset_complex + theorem Topology.RelCWComplex.openCell_subset_skeleton + theorem Topology.RelCWComplex.openCell_subset_skeletonLT + theorem Topology.RelCWComplex.openCell_zero_eq_singleton + theorem Topology.RelCWComplex.pairwiseDisjoint + def Topology.RelCWComplex.skeleton + def Topology.RelCWComplex.skeletonLT + theorem Topology.RelCWComplex.skeletonLT_mono + theorem Topology.RelCWComplex.skeletonLT_subset_complex + theorem Topology.RelCWComplex.skeletonLT_top + theorem Topology.RelCWComplex.skeletonLT_zero_eq_base + theorem Topology.RelCWComplex.skeleton_mono + theorem Topology.RelCWComplex.skeleton_subset_complex + theorem Topology.RelCWComplex.skeleton_top + theorem Topology.RelCWComplex.union Modified docs/references.bib 2025-02-08 10:17:55 5b94d7f chore(Geometry): use numeric subscripts for indices (#21548) ESTIMATED CHANGES Modified Archive/Wiedijk100Theorems/HeronsFormula.lean +/- theorem Theorems100.heron Modified Mathlib/Geometry/Euclidean/Angle/Unoriented/Affine.lean +/- theorem EuclideanGeometry.angle_eq_angle_of_angle_eq_pi +/- theorem EuclideanGeometry.angle_eq_angle_of_angle_eq_pi_of_angle_eq_pi +/- theorem EuclideanGeometry.angle_eq_zero_of_angle_eq_pi_left +/- theorem EuclideanGeometry.angle_eq_zero_of_angle_eq_pi_right +/- theorem EuclideanGeometry.angle_left_midpoint_eq_pi_div_two_of_dist_eq +/- theorem EuclideanGeometry.angle_midpoint_eq_pi +/- theorem EuclideanGeometry.angle_right_midpoint_eq_pi_div_two_of_dist_eq +/- theorem EuclideanGeometry.dist_eq_abs_sub_dist_iff_angle_eq_zero +/- theorem EuclideanGeometry.dist_eq_abs_sub_dist_of_angle_eq_zero +/- theorem EuclideanGeometry.dist_eq_add_dist_iff_angle_eq_pi +/- theorem EuclideanGeometry.dist_eq_add_dist_of_angle_eq_pi +/- theorem EuclideanGeometry.left_dist_ne_zero_of_angle_eq_pi +/- theorem EuclideanGeometry.right_dist_ne_zero_of_angle_eq_pi Modified Mathlib/Geometry/Euclidean/Angle/Unoriented/RightAngle.lean +/- theorem EuclideanGeometry.dist_sq_eq_dist_sq_add_dist_sq_iff_angle_eq_pi_div_two Modified Mathlib/Geometry/Euclidean/Basic.lean +/- theorem EuclideanGeometry.dist_left_midpoint_eq_dist_right_midpoint +/- theorem EuclideanGeometry.dist_sq_smul_orthogonal_vadd_smul_orthogonal_vadd Modified Mathlib/Geometry/Euclidean/Circumcenter.lean Modified Mathlib/Geometry/Euclidean/Triangle.lean +/- theorem EuclideanGeometry.angle_add_angle_add_angle_eq_pi +/- theorem EuclideanGeometry.angle_eq_angle_of_dist_eq +/- theorem EuclideanGeometry.dist_eq_of_angle_eq_angle_of_angle_ne_pi +/- theorem EuclideanGeometry.dist_sq_eq_dist_sq_add_dist_sq_sub_two_mul_dist_mul_dist_mul_cos_angle Modified Mathlib/LinearAlgebra/AffineSpace/AffineSubspace.lean +/- theorem AffineSubspace.direction_affineSpan_insert +/- theorem AffineSubspace.direction_inf +/- theorem AffineSubspace.direction_le +/- theorem AffineSubspace.direction_lt_of_nonempty +/- theorem AffineSubspace.direction_sup +/- theorem AffineSubspace.exists_of_lt +/- theorem AffineSubspace.ext_of_direction_eq +/- theorem AffineSubspace.inf_coe +/- theorem AffineSubspace.inter_eq_singleton_of_nonempty_of_isCompl +/- theorem AffineSubspace.inter_nonempty_of_nonempty_of_sup_direction_eq_top +/- theorem AffineSubspace.le_def' +/- theorem AffineSubspace.le_def +/- theorem AffineSubspace.lt_def +/- theorem AffineSubspace.lt_iff_le_and_exists +/- theorem AffineSubspace.mem_affineSpan_insert_iff +/- theorem AffineSubspace.mem_inf_iff +/- theorem AffineSubspace.not_le_iff_exists +/- theorem AffineSubspace.spanPoints_subset_coe_of_subset_coe +/- theorem AffineSubspace.sup_direction_le +/- theorem AffineSubspace.sup_direction_lt_of_nonempty_of_inter_empty +/- theorem AffineSubspace.vsub_left_mem_direction_iff_mem +/- theorem AffineSubspace.vsub_mem_direction +/- theorem AffineSubspace.vsub_right_mem_direction_iff_mem +/- theorem vsub_mem_vectorSpan +/- theorem vsub_mem_vectorSpan_of_mem_spanPoints_of_mem_spanPoints 2025-02-08 08:03:34 82c447b feat(CategoryTheory): more API for ChosenFiniteProducts (#21509) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/ChosenFiniteProducts.lean + theorem CategoryTheory.ChosenFiniteProducts.braiding_eq_braiding + theorem CategoryTheory.ChosenFiniteProducts.braiding_hom_fst + theorem CategoryTheory.ChosenFiniteProducts.braiding_hom_snd + theorem CategoryTheory.ChosenFiniteProducts.braiding_inv_fst + theorem CategoryTheory.ChosenFiniteProducts.braiding_inv_snd + theorem CategoryTheory.ChosenFiniteProducts.lift_comp_fst_snd + theorem CategoryTheory.ChosenFiniteProducts.lift_leftUnitor_hom + theorem CategoryTheory.ChosenFiniteProducts.lift_lift_associator_hom + theorem CategoryTheory.ChosenFiniteProducts.lift_lift_associator_inv + theorem CategoryTheory.ChosenFiniteProducts.lift_rightUnitor_hom + theorem CategoryTheory.ChosenFiniteProducts.lift_whiskerLeft + theorem CategoryTheory.ChosenFiniteProducts.lift_whiskerRight + theorem CategoryTheory.Functor.Monoidal.lift_δ + theorem CategoryTheory.Functor.Monoidal.lift_μ + theorem CategoryTheory.Functor.Monoidal.toUnit_ε + theorem CategoryTheory.Functor.Monoidal.δ_fst + theorem CategoryTheory.Functor.Monoidal.δ_snd + theorem CategoryTheory.Functor.Monoidal.μ_fst + theorem CategoryTheory.Functor.Monoidal.μ_snd + theorem CategoryTheory.NatTrans.monoidal_of_preservesFiniteProducts Modified Mathlib/CategoryTheory/Monoidal/OfChosenFiniteProducts/Basic.lean + theorem CategoryTheory.Limits.BinaryFan.braiding_hom_fst + theorem CategoryTheory.Limits.BinaryFan.braiding_hom_snd + theorem CategoryTheory.Limits.BinaryFan.braiding_inv_fst + theorem CategoryTheory.Limits.BinaryFan.braiding_inv_snd 2025-02-08 01:36:39 440c3d5 feat: `Encodable` deriving handler (#18564) Example: ```lean inductive Tree (α : Type _) where | leaf (x : α) | node (left right : Tree α) deriving Encodable, Repr #eval Encodable.encode <| Tree.node (Tree.leaf 3) (Tree.node (Tree.leaf 7) (Tree.leaf 2)) /- 10437032233523097799499788232983267677170721881484 73517988986353410160044811898677552739268788500004 06270188013410746632624159595593095352124521885673 82941794919440887137607406767764688460275582824709 0518921337578787046 -/ #eval let n := 104370322335230977994997882329832676771… (Encodable.decode n : Option (Tree Nat)) /- some (Tree.node (Tree.leaf 3) (Tree.node (Tree.leaf 7) (Tree.leaf 2))) -/ ``` This supports all non-reflexive non-nested inductive types with no indices. It can handle mutual inductive types. Indexed inductive types are left for future work. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Tactic.lean Added Mathlib/Tactic/DeriveEncodable.lean + def Mathlib.Deriving.Encodable.mkEncodableInstance Added MathlibTest/derive_encodable.lean + inductive Idx + inductive Nested + inductive Reflex + structure Struct + inductive T1 + inductive T2 + inductive T 2025-02-08 01:21:49 e4d256c feat: add option `pp.mathlib.binderPredicates` (#19040) The option `pp.mathlib.binderPredicates` controls whether notations such as `∀ (x : α) (x < 2), p x` pretty print as `∀ x < 2, p x`. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Util/Delaborators.lean +/- def PiNotation.delabPi Added Mathlib/Util/PPOptions.lean + def Mathlib.getPPBinderPredicates Modified MathlibTest/delaborators.lean 2025-02-07 22:35:29 53d1998 feat(AlgebraicTopology): notation ⦋n⦌ for SimplexCategory.mk n (#21565) We change the notation for `SimplexCategory.mk n` from `[n]` (which conflicts with the `List` notation) to `⦋n⦌`. This also allows removing many type annotations of the form `(⦋n⦌ : SimplexCategory)`. This was done in commit [`ceb03e9`](https://github.com/leanprover-community/mathlib4/pull/21565/commits/ceb03e9d3e95d06daf25489a29819d3e6cb5cd51). [Zulip poll](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/simplex.20category.20notations/near/497502272) ESTIMATED CHANGES Modified Mathlib/AlgebraicTopology/AlternatingFaceMapComplex.lean +/- def AlgebraicTopology.AlternatingCofaceMapComplex.objD +/- theorem AlgebraicTopology.AlternatingFaceMapComplex.map_f Modified Mathlib/AlgebraicTopology/CechNerve.lean Modified Mathlib/AlgebraicTopology/DoldKan/Decomposition.lean +/- theorem AlgebraicTopology.DoldKan.MorphComponents.preComp_φ Modified Mathlib/AlgebraicTopology/DoldKan/Degeneracies.lean Modified Mathlib/AlgebraicTopology/DoldKan/FunctorGamma.lean +/- theorem AlgebraicTopology.DoldKan.Isδ₀.eq_δ₀ Modified Mathlib/AlgebraicTopology/DoldKan/GammaCompN.lean Modified Mathlib/AlgebraicTopology/DoldKan/Homotopies.lean Modified Mathlib/AlgebraicTopology/DoldKan/NCompGamma.lean Modified Mathlib/AlgebraicTopology/DoldKan/NReflectsIso.lean Modified Mathlib/AlgebraicTopology/DoldKan/PInfty.lean Modified Mathlib/AlgebraicTopology/DoldKan/Projections.lean Modified Mathlib/AlgebraicTopology/DoldKan/SplitSimplicialObject.lean +/- theorem SimplicialObject.Splitting.ιSummand_comp_d_comp_πSummand_eq_zero Modified Mathlib/AlgebraicTopology/ExtraDegeneracy.lean +/- def SSet.Augmented.StandardSimplex.shift Modified Mathlib/AlgebraicTopology/SimplexCategory.lean +/- theorem SimplexCategory.Hom.ext_one_left +/- theorem SimplexCategory.Hom.ext_zero_left +/- theorem SimplexCategory.const_eq_id +/- def SimplexCategory.diag +/- theorem SimplexCategory.eq_const_of_zero +/- theorem SimplexCategory.eq_const_to_zero +/- theorem SimplexCategory.eq_of_one_to_one +/- theorem SimplexCategory.eq_of_one_to_two +/- theorem SimplexCategory.exists_eq_const_of_zero +/- def SimplexCategory.factor_δ +/- theorem SimplexCategory.factor_δ_spec +/- theorem SimplexCategory.hom_zero_zero +/- def SimplexCategory.intervalEdge +/- theorem SimplexCategory.le_of_epi +/- theorem SimplexCategory.le_of_mono +/- theorem SimplexCategory.len_mk +/- def SimplexCategory.mkHom +/- def SimplexCategory.mkOfLe +/- def SimplexCategory.mkOfSucc +/- theorem SimplexCategory.mk_len +/- def SimplexCategory.δ +/- theorem SimplexCategory.δ_comp_σ_succ +/- def SimplexCategory.σ Modified Mathlib/AlgebraicTopology/SimplicialObject/Basic.lean +/- def CategoryTheory.CosimplicialObject.augment +/- theorem CategoryTheory.CosimplicialObject.augment_hom_zero Modified Mathlib/AlgebraicTopology/SimplicialObject/Split.lean +/- theorem SimplicialObject.Splitting.cofan_inj_id Modified Mathlib/AlgebraicTopology/SimplicialSet/Basic.lean Modified Mathlib/AlgebraicTopology/SimplicialSet/Coskeletal.lean Modified Mathlib/AlgebraicTopology/SimplicialSet/HomotopyCat.lean +/- def SSet.Truncated.δ0₂ +/- def SSet.Truncated.δ1₂ +/- def SSet.Truncated.δ2₂ +/- def SSet.Truncated.ι0₂ +/- def SSet.Truncated.ι1₂ +/- def SSet.Truncated.ι2₂ Modified Mathlib/AlgebraicTopology/SimplicialSet/Monoidal.lean Modified Mathlib/AlgebraicTopology/SimplicialSet/Path.lean +/- theorem SSet.spine_map_vertex Modified Mathlib/AlgebraicTopology/SimplicialSet/StdSimplex.lean +/- def SSet.stdSimplex.id Modified Mathlib/AlgebraicTopology/SimplicialSet/StrictSegal.lean Modified Mathlib/AlgebraicTopology/SingularSet.lean Modified Mathlib/AlgebraicTopology/TopologicalSimplex.lean +/- def SimplexCategory.toTopObjOneHomeo +/- theorem SimplexCategory.toTopObj_one_add_eq_one +/- theorem SimplexCategory.toTopObj_one_coe_add_coe_eq_one +/- theorem SimplexCategory.toTopObj_zero_apply_zero 2025-02-07 21:51:49 c935b3d chore(AlgebraicGeometry): more API for local at source (#21390) In particular `P.diagonal` is local at the source if `P` is and `P` is sufficiently compatible with open immersions. ESTIMATED CHANGES Modified Mathlib/AlgebraicGeometry/Morphisms/Basic.lean + theorem AlgebraicGeometry.hasOfPostcompProperty_isOpenImmersion_of_morphismRestrict Modified Mathlib/AlgebraicGeometry/Morphisms/Constructors.lean Modified Mathlib/AlgebraicGeometry/OpenImmersion.lean + theorem AlgebraicGeometry.Scheme.Hom.preimage_opensRange Modified Mathlib/CategoryTheory/Limits/Shapes/Diagonal.lean + theorem CategoryTheory.Limits.pullback.comp_diagonal +/- theorem CategoryTheory.Limits.pullback.diagonal_comp Modified Mathlib/CategoryTheory/MorphismProperty/Composition.lean + theorem CategoryTheory.MorphismProperty.HasOfPostcompProperty.of_le + theorem CategoryTheory.MorphismProperty.HasOfPrecompProperty.of_le Modified Mathlib/CategoryTheory/MorphismProperty/Limits.lean 2025-02-07 21:32:55 a71c1ce chore: delete `CategoryTheory.Monoidal.Types.Symmetric` (#21556) The file just redefined data that already followed from the `ChosenFiniteProducts` instance in `Types.Basic`, so we might as well delete the file and move the two lemmas into `Types.Basic`. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/CategoryTheory/Enriched/Basic.lean Modified Mathlib/CategoryTheory/Monoidal/Internal/Types.lean Modified Mathlib/CategoryTheory/Monoidal/Types/Basic.lean + theorem CategoryTheory.braiding_hom_apply + theorem CategoryTheory.braiding_inv_apply Deleted Mathlib/CategoryTheory/Monoidal/Types/Symmetric.lean - theorem CategoryTheory.braiding_hom_apply - theorem CategoryTheory.braiding_inv_apply 2025-02-07 21:32:54 1aa7ca0 feat(CategoryTheory): the forgetful functor from `CommMon_ C` to `C` (#21553) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Monoidal/CommMon_.lean + def CommMon_.forget + theorem CommMon_.forget₂Mon_comp_forget + theorem CommMon_.forget₂Mon_map_hom + theorem CommMon_.forget₂Mon_obj_mul + theorem CommMon_.forget₂Mon_obj_one - theorem CommMon_.forget₂_Mon_map_hom - theorem CommMon_.forget₂_Mon_obj_mul - theorem CommMon_.forget₂_Mon_obj_one 2025-02-07 21:32:53 f27c10f chore(CategoryTheory): add reassoc tag to `terminal.comp_from` (#21527) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Limits/Shapes/Terminal.lean 2025-02-07 20:57:03 7711b91 feat(Mathlib/Algebra/Azumaya/Basic): More on azumaya (#21446) I prove that tensor product of Azumaya algebra is still Azumaya, this PR is a prerequisite. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Azumaya/Basic.lean + theorem IsAzumaya.AlgHom.mulLeftRight_bij + theorem IsAzumaya.coe_tensorEquivEnd: + theorem IsAzumaya.mulLeftRight_comp_congr + theorem IsAzumaya.of_AlgEquiv Added Mathlib/Algebra/Azumaya/Matrix.lean + theorem AlgHom.mulLeftRightMatrix.comp_inv: + theorem AlgHom.mulLeftRightMatrix.inv_comp: + theorem IsAzumaya.matrix Modified Mathlib/GroupTheory/GroupAction/Hom.lean + theorem FaithfulSMul.of_injective Modified Mathlib/LinearAlgebra/Finsupp/Defs.lean Modified Mathlib/LinearAlgebra/FreeModule/Basic.lean 2025-02-07 20:34:02 231bfa3 chore(AlgebraicTopology): autoParam for strArrowMk₂ (#21562) We make the proof in `SSet.StrictSegal.isPointwiseRightKanExtensionAt.strArrowMk₂` an autoParam and remove the explicit proof term from most uses of `strArrowMk₂`. Additionally, we replace one instance of `erw` in the same file (`Mathlib/AlgebraicTopology/SimplicialSet/Coskeletal.lean`). ESTIMATED CHANGES Modified Mathlib/AlgebraicTopology/SimplicialSet/Coskeletal.lean 2025-02-07 20:17:46 24064c0 feat: measurability and fun_prop tags for update functions (#21482) Add the tags `measurability` and `fun_prop` to `measurable_updateFinset` and similar. This makes the line number exceed 1500. ESTIMATED CHANGES Modified Mathlib/MeasureTheory/MeasurableSpace/Basic.lean 2025-02-07 18:54:25 2e4bea3 feat: Prerequisites for Hopkins–Levitzki theorem (#21544) **RingTheory/HopkinsLevitzki.lean** requires: + **Order/Atoms.lean**, **RingTheory/Ideal/Operations.lean**: show two distinct maximal ideals are coprime (comaximal). + **RingTheory/Ideal/Maps.lean**: add two lemmas about annihilators. + **Algebra/Module/Torsion.lean**: add a lemma about being a semisimple module over a quotient ring. + **RingTheory/KrullDimension/Basic.lean**: add lemmas about zero-dimensional rings. + **RingTheory/Spectrum/Prime/Topology.lean**: switch to `Ring.KrullDimLE`. **RingTheory/Jacobson/Radical.lean** requires: + **Algebra/Module/Submodule/Map.lean** and **LinearAlgebra/Span/Basic.lean**: Lemmas used to show functoriality of Jacobson radical of modules (`le_comap_jacobson`). **RingTheory/SimpleModule.lean**: split out a single lemma that requires `Module.finrank` to reduce imports: **SimpleModule.lean** is renamed **SimpleModule/Basic.lean**, and the lemma is moved into **SimpleModule/Rank.lean**. + **LinearAlgebra/DFinsupp.lean**: add lemmas to show a direct sum of semisimple modules is semisimple. **RingTheory/Artinian/Module.lean** requires: + **RingTheory/Artinian/Instances.lean**: move an instance to Artinian/Module, which now imports SimpleModule. + **Data/Finset/Lattice/Fold.lean**: add lemmas used to golf [IsArtinianRing.setOf_isMaximal_finite](https://leanprover-community.github.io/mathlib4_docs/Mathlib/RingTheory/Artinian/Module.html#IsArtinianRing.setOf_isMaximal_finite) and in the proof of that an Artinian ring is semiprimary. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Category/ModuleCat/Simple.lean Modified Mathlib/Algebra/Module/PID.lean Modified Mathlib/Algebra/Module/Submodule/Map.lean + theorem Submodule.le_map_of_comap_le_of_surjective + theorem Submodule.lt_map_of_comap_lt_of_surjective Modified Mathlib/Algebra/Module/Torsion.lean + theorem Module.IsTorsionBySet.isSemisimpleModule_iff Modified Mathlib/Data/Finset/Lattice/Fold.lean + theorem Finset.exists_inf_eq_iInf + theorem Finset.exists_inf_le + theorem Finset.exists_sup_eq_iSup + theorem Finset.exists_sup_ge Modified Mathlib/LinearAlgebra/DFinsupp.lean + theorem DFinsupp.iSup_range_lsingle + theorem DFinsupp.injective_pi_lapply + theorem DFinsupp.lsum_lsingle Modified Mathlib/LinearAlgebra/Pi.lean + theorem LinearMap.proj_surjective +/- theorem Submodule.pi_top + theorem Submodule.pi_univ_bot Modified Mathlib/LinearAlgebra/Semisimple.lean Modified Mathlib/LinearAlgebra/Span/Basic.lean + theorem Submodule.comap_map_sup_of_comap_le + theorem Submodule.isCoatom_comap_iff + theorem Submodule.isCoatom_comap_or_eq_top + theorem Submodule.isCoatom_map_of_ker_le + theorem Submodule.map_iInf_of_ker_le Modified Mathlib/Order/Atoms.lean + theorem IsCoatom.codisjoint_of_ne Modified Mathlib/RepresentationTheory/Maschke.lean Modified Mathlib/RingTheory/Artinian/Instances.lean Modified Mathlib/RingTheory/FiniteLength.lean Modified Mathlib/RingTheory/Finiteness/Basic.lean Modified Mathlib/RingTheory/Finiteness/Nakayama.lean Modified Mathlib/RingTheory/Ideal/Maps.lean + theorem Ideal.Module.annihilator_eq_top_iff +/- theorem Ideal.Submodule.annihilator_eq_top_iff + theorem Ideal.Submodule.le_annihilator_iff Modified Mathlib/RingTheory/Ideal/Operations.lean + theorem Ideal.isCoprime_of_isMaximal Modified Mathlib/RingTheory/Ideal/Prime.lean +/- theorem Ideal.bot_prime Modified Mathlib/RingTheory/Jacobson/Ring.lean Modified Mathlib/RingTheory/KrullDimension/Basic.lean + theorem Ideal.isMaximal_iff_isPrime + theorem Ideal.isMaximal_of_isPrime + theorem Ideal.mem_minimalPrimes_iff_isPrime + theorem Ideal.mem_minimalPrimes_of_krullDimLE_zero - theorem Ring.krullDimLE_one_iff_of_isDomain + theorem Ring.krullDimLE_one_iff_of_noZeroDivisors Modified Mathlib/RingTheory/Noetherian/Basic.lean + theorem IsNoetherianRing.of_finite + theorem LinearMap.isNoetherian_iff_of_bijective Renamed Mathlib/RingTheory/SimpleModule.lean to Mathlib/RingTheory/SimpleModule/Basic.lean + theorem IsSemisimpleModule.of_injective + theorem IsSemisimpleModule.of_surjective + theorem RingEquiv.isSemisimpleRing_iff + theorem isSemisimpleModule_iff_exists_linearEquiv_dfinsupp - theorem isSimpleModule_iff_finrank_eq_one Added Mathlib/RingTheory/SimpleModule/Rank.lean + theorem isSimpleModule_iff_finrank_eq_one Modified Mathlib/RingTheory/Spectrum/Prime/Noetherian.lean Modified Mathlib/RingTheory/Spectrum/Prime/Topology.lean +/- theorem PrimeSpectrum.discreteTopology_iff_finite_and_isPrime_imp_isMaximal + theorem PrimeSpectrum.discreteTopology_iff_finite_and_krullDimLE_zero Modified Mathlib/Topology/Algebra/Module/FiniteDimension.lean Modified Mathlib/Topology/Algebra/Module/Simple.lean Modified docs/references.bib Modified scripts/noshake.json 2025-02-07 18:46:03 1d666be chore: clean up Counterexamples/HomogeneousPrimeNotPrime (#21531) ESTIMATED CHANGES Modified Counterexamples/HomogeneousPrimeNotPrime.lean - theorem Counterexample.CounterexampleNotPrimeButHomogeneousPrime.grading.left_inv +/- theorem Counterexample.CounterexampleNotPrimeButHomogeneousPrime.grading.right_inv +/- theorem Counterexample.CounterexampleNotPrimeButHomogeneousPrime.homogeneous_mem_or_mem Modified Mathlib.lean Added Mathlib/Algebra/Divisibility/Finite.lean 2025-02-07 17:49:26 0a9e4e4 feat(AlgebraicTopology): instances on the topological simplices (#21555) which allows us to calculate the singular simplicial set of a totally disconnected space. ESTIMATED CHANGES Modified Mathlib/AlgebraicTopology/SimplexCategory.lean Modified Mathlib/AlgebraicTopology/SingularSet.lean + def TopCat.toSSetIsoConst Modified Mathlib/AlgebraicTopology/TopologicalSimplex.lean + def SimplexCategory.toTopObjOneHomeo + theorem SimplexCategory.toTopObj_one_add_eq_one + theorem SimplexCategory.toTopObj_one_coe_add_coe_eq_one + theorem SimplexCategory.toTopObj_zero_apply_zero Modified Mathlib/Topology/Connected/TotallyDisconnected.lean + theorem TotallyDisconnectedSpace.eq_of_continuous Modified Mathlib/Topology/UnitInterval.lean + theorem unitInterval.coe_toNNReal + def unitInterval.toNNReal + theorem unitInterval.toNNReal_continuous 2025-02-07 17:49:25 4fd2831 chore(ModelTheory): process some porting notes (#21536) ESTIMATED CHANGES Modified Mathlib/ModelTheory/Basic.lean Modified Mathlib/ModelTheory/Complexity.lean Modified Mathlib/ModelTheory/DirectLimit.lean Modified Mathlib/ModelTheory/ElementaryMaps.lean Modified Mathlib/ModelTheory/Fraisse.lean Modified Mathlib/ModelTheory/LanguageMap.lean Modified Mathlib/ModelTheory/Satisfiability.lean Modified Mathlib/ModelTheory/Semantics.lean Modified Mathlib/ModelTheory/Syntax.lean Modified Mathlib/ModelTheory/Types.lean 2025-02-07 17:49:24 2106ab5 chore(GroupExtension/Basic): add lemmas about extensions by (non-abelian) groups (#20998) As the second part of #19582, this PR mostly contains the changes to the `Basic` file. It mainly: - redefines `GroupExtension.Equiv` with `MulEquiv` rather than `MonoidHom`; - adds lemmas that do not require a commutative group, as a preparation for the main PR; - defines `GroupExtension.Splitting.semidirectProductMulEquiv`, an isomorphism between the group associated to a split extension and a semidirect product; and - defines `GroupExtension.ConjClasses`, the conjugacy classes of splittings. It also contains some definitions and lemmas unused in the main PR, such as: - `GroupExtension.quotientRangeInlEquivRight`, provided as a shorthand for end-users; and - `GroupExtension.Section.section_inv_mul_mem_range`, provided as a symmetric counterpart of a required lemma. They may be dropped if this PR would introduce a too large diff. Moves: - GroupExtension.Equiv.mk -> GroupExtension.Equiv.ofMonoidHom ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/GroupTheory/GroupExtension/Basic.lean + def GroupExtension.ConjClasses + theorem GroupExtension.IsConj.refl + def GroupExtension.IsConj.setoid + theorem GroupExtension.IsConj.symm + theorem GroupExtension.IsConj.trans + def GroupExtension.Section.equivComp + theorem GroupExtension.Section.exists_eq_inl_mul + theorem GroupExtension.Section.exists_eq_mul_inl + theorem GroupExtension.Section.exists_mul_eq_inl_mul_mul + theorem GroupExtension.Section.exists_mul_eq_mul_mul_inl + theorem GroupExtension.Section.inv_mul_mem_range_inl + theorem GroupExtension.Section.mul_inv_mem_range_inl + theorem GroupExtension.Section.mul_inv_mul_mul_mem_range_inl + theorem GroupExtension.Section.mul_mul_mul_inv_mem_range_inl + theorem SemidirectProduct.right_splitting Modified Mathlib/GroupTheory/GroupExtension/Defs.lean +/- structure AddGroupExtension.Equiv + def GroupExtension.Equiv.Simps.symm_apply + theorem GroupExtension.Equiv.coe_symm + theorem GroupExtension.Equiv.coe_toMulEquiv + theorem GroupExtension.Equiv.map_inl + def GroupExtension.Equiv.refl + theorem GroupExtension.Equiv.rightHom_map + def GroupExtension.Equiv.symm + theorem GroupExtension.Equiv.toMulEquiv_eq_coe + def GroupExtension.Equiv.trans +/- structure GroupExtension.Equiv 2025-02-07 17:17:29 dbf8ce9 feat(Algebra/Homology): the alternating constant complex (#21558) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/BigOperators/Fin.lean + theorem Fin.sum_neg_one_pow Added Mathlib/Algebra/Homology/AlternatingConst.lean + def ChainComplex.alternatingConst + def ChainComplex.alternatingConstHomologyDataEvenNEZero + def ChainComplex.alternatingConstHomologyDataOdd + def ChainComplex.alternatingConstHomologyDataZero + def ChainComplex.alternatingConstHomologyZero + theorem ChainComplex.isZero_alternatingConst_homology Modified Mathlib/AlgebraicTopology/AlternatingFaceMapComplex.lean + def AlgebraicTopology.alternatingFaceMapComplexConst 2025-02-07 16:33:42 97ed5e0 chore(RingTheory/Ideal/Over): factor going-up results out (#21497) Also move `Ideal.comap_map_eq_self_iff_of_isPrime` to `Mathlib.RingTheory.Localization.AtPrime`. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/RingTheory/DedekindDomain/Basic.lean Added Mathlib/RingTheory/Ideal/GoingUp.lean + theorem Ideal.IntegralClosure.comap_lt_comap + theorem Ideal.IntegralClosure.comap_ne_bot + theorem Ideal.IntegralClosure.eq_bot_of_comap_eq_bot + theorem Ideal.IntegralClosure.isMaximal_of_isMaximal_comap + theorem Ideal.IsIntegralClosure.comap_lt_comap + theorem Ideal.IsIntegralClosure.comap_ne_bot + theorem Ideal.IsIntegralClosure.eq_bot_of_comap_eq_bot + theorem Ideal.IsIntegralClosure.isMaximal_of_isMaximal_comap + theorem Ideal.IsMaximal.of_isMaximal_liesOver + theorem Ideal.IsMaximal.of_liesOver_isMaximal + theorem Ideal.coeff_zero_mem_comap_of_root_mem + theorem Ideal.coeff_zero_mem_comap_of_root_mem_of_eval_mem + theorem Ideal.comap_lt_comap_of_integral_mem_sdiff + theorem Ideal.comap_lt_comap_of_root_mem_sdiff + theorem Ideal.comap_ne_bot_of_algebraic_mem + theorem Ideal.comap_ne_bot_of_integral_mem + theorem Ideal.comap_ne_bot_of_root_mem + theorem Ideal.eq_bot_of_comap_eq_bot + theorem Ideal.exists_coeff_mem_comap_sdiff_comap_of_root_mem_sdiff + theorem Ideal.exists_coeff_ne_zero_mem_comap_of_non_zero_divisor_root_mem + theorem Ideal.exists_coeff_ne_zero_mem_comap_of_root_mem + theorem Ideal.exists_ideal_comap_le_prime + theorem Ideal.exists_ideal_liesOver_maximal_of_isIntegral + theorem Ideal.exists_ideal_over_maximal_of_isIntegral + theorem Ideal.exists_ideal_over_prime_of_isIntegral + theorem Ideal.exists_ideal_over_prime_of_isIntegral_of_isDomain + theorem Ideal.exists_ideal_over_prime_of_isIntegral_of_isPrime + theorem Ideal.exists_nonzero_mem_of_ne_bot + theorem Ideal.injective_quotient_le_comap_map + theorem Ideal.isMaximal_comap_of_isIntegral_of_isMaximal' + theorem Ideal.isMaximal_comap_of_isIntegral_of_isMaximal + theorem Ideal.isMaximal_of_isIntegral_of_isMaximal_comap' + theorem Ideal.isMaximal_of_isIntegral_of_isMaximal_comap + theorem Ideal.map_eq_top_iff + theorem Ideal.map_eq_top_iff_of_ker_le + theorem Ideal.mem_of_one_mem + theorem Ideal.primesOver_bot + theorem Ideal.quotient_mk_maps_eq Modified Mathlib/RingTheory/Ideal/Maps.lean + theorem Ideal.comap_map_eq_self_iff_of_isPrime + theorem Ideal.disjoint_map_primeCompl_iff_comap_le Modified Mathlib/RingTheory/Ideal/Operations.lean + theorem Ideal.primeCompl_le_nonZeroDivisors Modified Mathlib/RingTheory/Ideal/Over.lean - theorem Ideal.IntegralClosure.comap_lt_comap - theorem Ideal.IntegralClosure.comap_ne_bot - theorem Ideal.IntegralClosure.eq_bot_of_comap_eq_bot - theorem Ideal.IntegralClosure.isMaximal_of_isMaximal_comap - theorem Ideal.IsIntegralClosure.comap_lt_comap - theorem Ideal.IsIntegralClosure.comap_ne_bot - theorem Ideal.IsIntegralClosure.eq_bot_of_comap_eq_bot - theorem Ideal.IsIntegralClosure.isMaximal_of_isMaximal_comap - theorem Ideal.IsMaximal.of_isMaximal_liesOver - theorem Ideal.IsMaximal.of_liesOver_isMaximal - theorem Ideal.coeff_zero_mem_comap_of_root_mem - theorem Ideal.coeff_zero_mem_comap_of_root_mem_of_eval_mem - theorem Ideal.comap_lt_comap_of_integral_mem_sdiff - theorem Ideal.comap_lt_comap_of_root_mem_sdiff - theorem Ideal.comap_map_eq_self_iff_of_isPrime - theorem Ideal.comap_ne_bot_of_algebraic_mem - theorem Ideal.comap_ne_bot_of_integral_mem - theorem Ideal.comap_ne_bot_of_root_mem - theorem Ideal.eq_bot_of_comap_eq_bot - theorem Ideal.exists_coeff_mem_comap_sdiff_comap_of_root_mem_sdiff - theorem Ideal.exists_coeff_ne_zero_mem_comap_of_non_zero_divisor_root_mem - theorem Ideal.exists_coeff_ne_zero_mem_comap_of_root_mem - theorem Ideal.exists_ideal_comap_le_prime - theorem Ideal.exists_ideal_liesOver_maximal_of_isIntegral - theorem Ideal.exists_ideal_over_maximal_of_isIntegral - theorem Ideal.exists_ideal_over_prime_of_isIntegral - theorem Ideal.exists_ideal_over_prime_of_isIntegral_of_isDomain - theorem Ideal.exists_ideal_over_prime_of_isIntegral_of_isPrime - theorem Ideal.exists_nonzero_mem_of_ne_bot - theorem Ideal.injective_quotient_le_comap_map - theorem Ideal.isMaximal_comap_of_isIntegral_of_isMaximal' - theorem Ideal.isMaximal_comap_of_isIntegral_of_isMaximal - theorem Ideal.isMaximal_of_isIntegral_of_isMaximal_comap' - theorem Ideal.isMaximal_of_isIntegral_of_isMaximal_comap - theorem Ideal.map_eq_top_iff - theorem Ideal.map_eq_top_iff_of_ker_le - theorem Ideal.mem_of_one_mem + def Ideal.primesOver - theorem Ideal.quotient_mk_maps_eq - def primesOver - theorem primesOver_bot Modified Mathlib/RingTheory/Ideal/Prime.lean + def Ideal.primeCompl Modified Mathlib/RingTheory/Jacobson/Ring.lean Modified Mathlib/RingTheory/LocalRing/Quotient.lean Modified Mathlib/RingTheory/Localization/AtPrime.lean - theorem Ideal.disjoint_map_primeCompl_iff_comap_le - def Ideal.primeCompl - theorem Ideal.primeCompl_le_nonZeroDivisors Modified Mathlib/RingTheory/Spectrum/Prime/Topology.lean Modified Mathlib/RingTheory/Support.lean Modified Mathlib/RingTheory/Valuation/ExtendToLocalization.lean Modified Mathlib/RingTheory/Valuation/LocalSubring.lean 2025-02-07 16:18:25 a1c621b chore: process some porting notes in MathlibTest/ and Counterexamples/ (#21534) ESTIMATED CHANGES Modified Counterexamples/Pseudoelement.lean Modified MathlibTest/NthRewrite.lean Modified MathlibTest/interval_cases.lean Modified MathlibTest/toAdditive.lean 2025-02-07 15:47:00 feff2b7 chore(Archive): clean up porting notes (#21535) ESTIMATED CHANGES Modified Archive/Arithcc.lean Modified Archive/Examples/PropEncodable.lean Modified Archive/Imo/Imo1998Q2.lean Modified Archive/Imo/Imo2013Q1.lean Modified Archive/MiuLanguage/Basic.lean Modified Archive/MiuLanguage/DecisionNec.lean +/- theorem Miu.goodm_of_rule1 +/- theorem Miu.goodm_of_rule3 +/- theorem Miu.goodm_of_rule4 Modified Archive/Wiedijk100Theorems/AscendingDescendingSequences.lean 2025-02-07 15:46:59 6871b81 feat(GroupTheory/SpecificGroups/Cyclic): add Subgroup.isCyclic_iff_exists_zpowers_eq_top (#21361) We add a subgroup version of the lemma `isCyclic_iff_exists_zpowers_eq_top`. ESTIMATED CHANGES Modified Mathlib/GroupTheory/SpecificGroups/Cyclic.lean 2025-02-07 15:17:38 4429112 chore(CategoryTheory/Sites): fix names (#21540) `imagePresheaf` was renamed `Subpresheaf.range` in #21047. This PR fixes the names of the lemmas referring to the old name. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Sites/LocallySurjective.lean - theorem CategoryTheory.Presheaf.isLocallySurjective_iff_imagePresheaf_sheafify_eq_top' - theorem CategoryTheory.Presheaf.isLocallySurjective_iff_imagePresheaf_sheafify_eq_top + theorem CategoryTheory.Presheaf.isLocallySurjective_iff_range_sheafify_eq_top' + theorem CategoryTheory.Presheaf.isLocallySurjective_iff_range_sheafify_eq_top 2025-02-07 15:17:37 bd47360 feat(Order): instances on Shrink (#21429) If `α : Type v` is `u`-small, we transport various order related instances on `α` to `Shrink.{u} α`. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Order/Shrink.lean + theorem equivShrink_bot + theorem equivShrink_symm_bot + theorem equivShrink_symm_top + theorem equivShrink_top + theorem orderIsoShrink_apply + theorem orderIsoShrink_symm_apply 2025-02-07 14:22:02 d03b769 chore(Convolution): fix lemma names (#21504) From LeanAPAP ESTIMATED CHANGES Modified Mathlib/Analysis/Calculus/BumpFunction/FiniteDimension.lean Modified Mathlib/Analysis/Convolution.lean - theorem HasCompactSupport.convolutionExistsLeft - theorem HasCompactSupport.convolutionExistsRightOfContinuousLeft + theorem HasCompactSupport.convolutionExists_left + theorem HasCompactSupport.convolutionExists_right_of_continuous_left - theorem MeasureTheory.ConvolutionExistsAt.ofNorm' - theorem MeasureTheory.ConvolutionExistsAt.ofNorm + theorem MeasureTheory.ConvolutionExistsAt.of_norm' + theorem MeasureTheory.ConvolutionExistsAt.of_norm 2025-02-07 14:22:01 8164b50 chore: tidy various files (#21475) ESTIMATED CHANGES Modified Mathlib/Algebra/BigOperators/Fin.lean Modified Mathlib/Algebra/FreeMonoid/Basic.lean Modified Mathlib/Algebra/Homology/Embedding/Basic.lean Modified Mathlib/Algebra/Homology/QuasiIso.lean +/- theorem HomologicalComplex.mem_quasiIso_iff Modified Mathlib/Algebra/MonoidAlgebra/Division.lean Modified Mathlib/AlgebraicGeometry/AffineScheme.lean +/- theorem AlgebraicGeometry.IsAffineOpen.isoSpec_inv_toSpecΓ Modified Mathlib/Analysis/Analytic/Basic.lean +/- theorem FormalMultilinearSeries.radius_smul_eq Modified Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Basic.lean Modified Mathlib/Data/Finset/Filter.lean Modified Mathlib/Data/Finset/Lattice/Fold.lean Modified Mathlib/Data/Finsupp/Lex.lean Modified Mathlib/Data/Multiset/Range.lean Modified Mathlib/Data/Quot.lean Modified Mathlib/GroupTheory/Coxeter/Basic.lean Modified Mathlib/GroupTheory/Coxeter/Inversion.lean Modified Mathlib/GroupTheory/GroupAction/Blocks.lean Modified Mathlib/LinearAlgebra/TensorProduct/Graded/Internal.lean Modified Mathlib/MeasureTheory/Measure/RegularityCompacts.lean Modified Mathlib/NumberTheory/FLT/Polynomial.lean Modified Mathlib/RingTheory/MvPolynomial/Groebner.lean Modified Mathlib/RingTheory/MvPolynomial/MonomialOrder.lean Modified Mathlib/RingTheory/MvPowerSeries/PiTopology.lean Modified Mathlib/RingTheory/Polynomial/HilbertPoly.lean Modified Mathlib/RingTheory/RootsOfUnity/Complex.lean Modified Mathlib/RingTheory/Smooth/Local.lean 2025-02-07 14:21:59 67a9de9 feat(GroupTheory/GroupAction/Iwasawa): the Iwasawa criterion for simplicity (#12048) # The Iwasawa criterion for simplicity - `IwasawaStructure` : the structure underlying the Iwasawa criterion For a group `G`, this consists of an action of `G` on a type `α` and, for every `a : α`, of a subgroup `T a`, such that the following properties hold: - for all `a`, `T a` is commutative - for all `g : G` and `a : α`, `T (g • a) = MulAut.conj g • T a` - the subgroups `T a` generate `G` We then prove two versions of the Iwasawa criterion when there is an Iwasawa structure. - `IwasawaStructure.commutator_le` asserts that if the action of `G` on `α` is quasiprimitive, then every normal subgroup that acts nontrivially contains `commutator G` - `IwasawaStructure.isSimpleGroup` : the Iwasawa criterion for simplicity If the action of `G` on `α` is quasiprimitive and faithful, and `G` is nontrivial and perfect, then `G` is simple. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Group/Hom/Defs.lean + theorem Function.Surjective.mul_comm Modified Mathlib/Data/Set/Card.lean + theorem Set.eq_univ_iff_ncard + theorem Set.ncard_coe Added Mathlib/Data/Setoid/Partition/Card.lean + theorem Setoid.IsPartition.ncard_eq_finsum Modified Mathlib/GroupTheory/Abelianization.lean + theorem Subgroup.Normal.commutator_le_of_self_sup_commutative_eq_top + theorem Subgroup.Normal.quotient_commutative_iff_commutator_le + theorem map_commutator_eq + theorem mem_commutatorSet_of_isConj_sq Added Mathlib/GroupTheory/GroupAction/Iwasawa.lean + theorem MulAction.IwasawaStructure.commutator_le + theorem MulAction.IwasawaStructure.isSimpleGroup + structure MulAction.IwasawaStructure Modified Mathlib/GroupTheory/GroupAction/Primitive.lean 2025-02-07 13:37:19 8616108 feat(Order/Nucleus): nuclei form a complete lattice (#21515) Arbitrary meets of nuclei can be defined pointwise. Joins are harder to describe explicitely, so `completeLatticeOfCompleteSemilatticeInf` is used to create the `CompleteLattice` instance. ESTIMATED CHANGES Modified Mathlib/Order/Nucleus.lean + theorem Nucleus.iInf_apply + theorem Nucleus.monotone + theorem Nucleus.sInf_apply 2025-02-07 10:03:27 c3492e1 chore(Analysis/InnerProductSpace): split off continuity, convexity of inner product (#21516) Looking at [the longest pole](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/The.20long.20pole.20in.20mathlib/near/498144514) I saw that `InnerProductSpace.Basic` imports quite a lot that isn't used in downstream files such as `Mathlib.Analysis.CStarAlgebra.ContinuousFunctionalCalculus.Instances`. By splitting off two little files I managed to clean up the import hierarchy a bit. This PR adds two new files: * `InnerProductSpace/Continuous.lean`: shows that the inner product is continuous. * `InnerProductSpace/Convex.lean`: shows that inner product spaces are uniformly convex spaces. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Analysis/Complex/AbsMax.lean Modified Mathlib/Analysis/Complex/Arg.lean Modified Mathlib/Analysis/Convex/Measure.lean Modified Mathlib/Analysis/Convex/Strong.lean Modified Mathlib/Analysis/InnerProductSpace/Basic.lean - theorem Continuous.inner - theorem ContinuousAt.inner - theorem ContinuousOn.inner - theorem ContinuousWithinAt.inner - theorem Filter.Tendsto.inner - theorem continuous_inner - theorem isBoundedBilinearMap_inner Added Mathlib/Analysis/InnerProductSpace/Continuous.lean + theorem Continuous.inner + theorem ContinuousAt.inner + theorem ContinuousOn.inner + theorem ContinuousWithinAt.inner + theorem Filter.Tendsto.inner + theorem continuous_inner + theorem isBoundedBilinearMap_inner Added Mathlib/Analysis/InnerProductSpace/Convex.lean Modified Mathlib/Analysis/InnerProductSpace/LinearMap.lean Modified Mathlib/Analysis/InnerProductSpace/OfNorm.lean Modified Mathlib/Analysis/InnerProductSpace/Orthonormal.lean Modified Mathlib/Analysis/Quaternion.lean Modified Mathlib/Analysis/SpecialFunctions/ContinuousFunctionalCalculus/PosPart.lean Modified Mathlib/Combinatorics/Additive/AP/Three/Behrend.lean Modified Mathlib/Geometry/Euclidean/Inversion/Basic.lean Modified Mathlib/Geometry/Euclidean/Sphere/Basic.lean Modified Mathlib/MeasureTheory/Function/AEEqOfIntegral.lean Modified Mathlib/MeasureTheory/Function/SpecialFunctions/Inner.lean Modified Mathlib/MeasureTheory/Function/StronglyMeasurable/Inner.lean 2025-02-07 08:12:30 bbbf03a chore(Analysis/NormedSpace/OperatorNorm/Mul): don't use `𝕜'` for a ring (#21506) I am finding it particularly confusing to use `𝕜something` for a ring when `𝕜` is already used for a type playing a completely different role. From LeanAPAP ESTIMATED CHANGES Modified Mathlib/Analysis/NormedSpace/OperatorNorm/Mul.lean +/- theorem ContinuousLinearMap.coe_mulₗᵢ +/- theorem ContinuousLinearMap.isometry_mul +/- def ContinuousLinearMap.lsmul +/- theorem ContinuousLinearMap.lsmul_apply +/- def ContinuousLinearMap.mul +/- def ContinuousLinearMap.mulLeftRight +/- theorem ContinuousLinearMap.mulLeftRight_apply +/- theorem ContinuousLinearMap.mul_apply' +/- def ContinuousLinearMap.mulₗᵢ +/- theorem ContinuousLinearMap.opNNNorm_mul +/- theorem ContinuousLinearMap.opNNNorm_mul_apply +/- theorem ContinuousLinearMap.opNorm_lsmul +/- theorem ContinuousLinearMap.opNorm_lsmul_apply_le +/- theorem ContinuousLinearMap.opNorm_lsmul_le +/- theorem ContinuousLinearMap.opNorm_mul +/- theorem ContinuousLinearMap.opNorm_mulLeftRight_apply_apply_le +/- theorem ContinuousLinearMap.opNorm_mulLeftRight_apply_le +/- theorem ContinuousLinearMap.opNorm_mul_apply +/- theorem ContinuousLinearMap.opNorm_mul_apply_le +/- theorem ContinuousLinearMap.opNorm_mul_le +/- def NonUnitalAlgHom.Lmul +/- theorem NonUnitalAlgHom.coe_Lmul 2025-02-07 08:12:28 b532ac9 feat(NumberTheory/NumberField/FinitePlaces): the `v`-adic absolute value induces an ultrametric distance (#21243) We prove that the `v`adic absolute value satisfies the ultrametric inequality and that the `v`adic absolute value of an integer is at most 1. ESTIMATED CHANGES Modified Mathlib/NumberTheory/NumberField/FinitePlaces.lean + theorem NumberField.vadicAbv_add_le_max + theorem NumberField.vadicAbv_intCast_le_one + theorem NumberField.vadicAbv_natCast_le_one 2025-02-07 07:08:35 387749e chore(AlgebraicTopology/AlternatingFaceMapComplex): remove shouting in docstring (#21517) ESTIMATED CHANGES Modified Mathlib/AlgebraicTopology/AlternatingFaceMapComplex.lean 2025-02-07 07:08:34 1221f1e feat(Algebra/Homology): homological complexes lying in two degrees (#20233) Given two consecutive degrees, we construct a homological complex lying in these two degrees, with a prescribed differential. This is used in #20229 to obtain a generator of the category of homological complexes in `C` from a generator of `C`. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Homology/Double.lean + theorem HomologicalComplex.double_d + theorem HomologicalComplex.double_d_eq_zero₀ + theorem HomologicalComplex.double_d_eq_zero₁ + theorem HomologicalComplex.from_double_hom_ext + theorem HomologicalComplex.isZero_double_X + theorem HomologicalComplex.mkHomFromDouble_f₀ + theorem HomologicalComplex.mkHomFromDouble_f₁ + theorem HomologicalComplex.to_double_hom_ext Modified Mathlib/CategoryTheory/Yoneda.lean + theorem CategoryTheory.Functor.CorepresentableBy.homEquiv_symm_comp + theorem CategoryTheory.Functor.RepresentableBy.comp_homEquiv_symm 2025-02-07 07:08:32 295724a feat(CategoryTheory/Closed): functor categories are monoidal closed (#19103) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Closed/FunctorCategory/Basic.lean + theorem CategoryTheory.MonoidalClosed.FunctorCategory.homEquiv_naturality_three + theorem CategoryTheory.MonoidalClosed.FunctorCategory.homEquiv_naturality_two_symm 2025-02-07 06:58:37 a998e2a feat(Mathlib/Analysis/InnerProductSpace/Adjoint): lemmas regarding LinearMap.toMatrixOrthonormal (#21167) * lemma LinearMap.toMatrixOrthonormal_apply_apply * lemma LinearMap.toMatrixOrthonormal_reindex ESTIMATED CHANGES Modified Mathlib/Analysis/InnerProductSpace/Adjoint.lean + theorem LinearMap.toMatrixOrthonormal_apply_apply + theorem LinearMap.toMatrixOrthonormal_reindex 2025-02-07 04:56:22 8265c2a chore: update Mathlib dependencies 2025-02-07 (#21529) This PR updates the Mathlib dependencies. ESTIMATED CHANGES Modified lake-manifest.json 2025-02-06 21:52:29 c7a2a04 chore: update Mathlib dependencies 2025-02-06 (#21523) This PR updates the Mathlib dependencies. ESTIMATED CHANGES Modified lake-manifest.json 2025-02-06 21:17:32 039604a fix(MathlibTest/TransImports): stop inspecting the `Lean` package (#21492) This makes it more robust to changes to lean internals. [Zulip](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/MathlibTest.2ETransImports) ESTIMATED CHANGES Modified MathlibTest/TransImports.lean 2025-02-06 21:04:22 2954870 style(Mathlib/Computability/Halting): `RePred` to `REPred` (#21216) `RePred` is an acronym of "Recursive enumerable predicate". According to the [naming conventions](https://github.com/leanprover-community/mathlib4/wiki/Porting-wiki#naming-convention), acronyms should be written uupper-/lowercase as a group. This is reasonable because the complexity class of recursive enumerable functions are written as $\mathrm{RE}$. ESTIMATED CHANGES Modified Mathlib/Computability/Halting.lean +/- theorem ComputablePred.halting_problem_not_re +/- theorem ComputablePred.halting_problem_re +/- theorem ComputablePred.to_re + theorem REPred.of_eq + def REPred - theorem RePred.of_eq - def RePred 2025-02-06 20:37:58 f250f0c feat(Data/Set/Card): add `ncard_le_encard` (#21467) ESTIMATED CHANGES Modified Mathlib/Data/Set/Card.lean + theorem Set.ncard_le_encard 2025-02-06 18:18:24 bd4e8e3 feat(Order): lemmas for `Order.succ` and `Order.pred` in `Fin` (#21437) The `SuccOrder` and `PredOrder` instances are redefined on `Fin n`, and equational lemmas are provided. The lemma `Fin.exists_castSucc_eq_of_ne_last` is renamed `Fin.eq_castSucc_of_ne_last` (for consistency with `Fin.eq_succ_of_ne_zero`). ESTIMATED CHANGES Modified Mathlib/Combinatorics/SimpleGraph/Circulant.lean Modified Mathlib/Data/Fin/Basic.lean + theorem Fin.eq_castSucc_of_ne_last - theorem Fin.exists_castSucc_eq_of_ne_last Modified Mathlib/Data/Fin/SuccPred.lean + theorem Fin.orderPred_apply + theorem Fin.orderPred_eq + theorem Fin.orderPred_succ + theorem Fin.orderPred_zero + theorem Fin.orderSucc_apply + theorem Fin.orderSucc_castSucc + theorem Fin.orderSucc_eq + theorem Fin.orderSucc_last - theorem Fin.pred_apply - theorem Fin.pred_eq - theorem Fin.succ_apply - theorem Fin.succ_eq 2025-02-06 17:09:29 a109295 feat(LinearAlgebra/LinearIndependent): linear independence + subsingletons (#21511) We add simp lemmas for linear independence in the trivial cases where either the domain or codomain is a `Subsingleton`, or the function is zero. ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/LinearIndependent.lean + theorem linearIndependent_subsingleton_iff + theorem linearIndependent_subsingleton_index_iff + theorem linearIndependent_zero_iff 2025-02-06 17:09:28 aaf3248 feat: for continuous linear maps in a normed ring, `flip mul = mul` (#21507) From LeanAPAP ESTIMATED CHANGES Modified Mathlib/Analysis/NormedSpace/OperatorNorm/Mul.lean + theorem ContinuousLinearMap.flip_mul 2025-02-06 17:09:27 d75602f chore(GroupTheory/Commutator): don't import `Ring` (#21296) Change `group` calls to `simp [mul_assoc]` or similar: * when low in the import hierarchy * and add a comment at each such site to this effect. [Zulip](https://leanprover.zulipchat.com/#narrow/channel/144837-PR-reviews/topic/.2321296.20don't.20import.20Ring.20in.20GroupTheory.2ECommutator.2EBasic) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Action/Concrete.lean Modified Mathlib/GroupTheory/Abelianization.lean Modified Mathlib/GroupTheory/Commutator/Basic.lean Modified Mathlib/GroupTheory/Coxeter/Inversion.lean Modified Mathlib/GroupTheory/Exponent.lean Modified Mathlib/GroupTheory/Perm/ConjAct.lean Modified Mathlib/GroupTheory/Perm/Cycle/Factors.lean Modified Mathlib/GroupTheory/SpecificGroups/Cyclic.lean Modified Mathlib/MeasureTheory/Measure/EverywherePos.lean Modified Mathlib/NumberTheory/LucasLehmer.lean Modified Mathlib/Topology/Algebra/Group/TopologicalAbelianization.lean 2025-02-06 16:52:12 1c4196c chore(Data/Complex/Abs): add `protected` to results that already exists in root namespace (#21454) The names of several results about `Complex.abs` collide with results in the root namespace when the namespace `Complex` is opened. To avoid this inconvenience, this PR protects the name of these results. ESTIMATED CHANGES Modified Mathlib/Analysis/Complex/AbelLimit.lean Modified Mathlib/Analysis/Complex/Angle.lean Modified Mathlib/Analysis/Complex/Basic.lean +/- theorem Complex.norm_nnratCast Modified Mathlib/Analysis/Complex/LocallyUniformLimit.lean Modified Mathlib/Analysis/Complex/PhragmenLindelof.lean Modified Mathlib/Analysis/Fourier/FourierTransformDeriv.lean Modified Mathlib/Analysis/Fourier/Inversion.lean Modified Mathlib/Analysis/InnerProductSpace/Projection.lean Modified Mathlib/Analysis/SpecialFunctions/CompareExp.lean Modified Mathlib/Analysis/SpecialFunctions/Complex/Arg.lean Modified Mathlib/Analysis/SpecialFunctions/Complex/Log.lean Modified Mathlib/Analysis/SpecialFunctions/Complex/LogBounds.lean Modified Mathlib/Analysis/SpecialFunctions/Gamma/Basic.lean Modified Mathlib/Analysis/SpecialFunctions/Pow/Real.lean Modified Mathlib/Data/Complex/Abs.lean - theorem Complex.abs_abs +/- theorem Complex.abs_add_mul_I +/- theorem Complex.abs_eq_sqrt_sq_add_sq +/- theorem Complex.abs_im_eq_abs +/- theorem Complex.abs_intCast - theorem Complex.abs_pow +/- theorem Complex.abs_re_eq_abs - theorem Complex.abs_two - theorem Complex.sq_abs Modified Mathlib/Data/Complex/Exponential.lean Modified Mathlib/Data/Complex/Order.lean Modified Mathlib/Data/Complex/Trigonometric.lean Modified Mathlib/Geometry/Euclidean/Angle/Oriented/Basic.lean Modified Mathlib/Geometry/Euclidean/Angle/Sphere.lean Modified Mathlib/MeasureTheory/Integral/CircleIntegral.lean Modified Mathlib/NumberTheory/LSeries/Basic.lean Modified Mathlib/NumberTheory/LSeries/Dirichlet.lean Modified Mathlib/NumberTheory/LSeries/HurwitzZetaEven.lean Modified Mathlib/NumberTheory/LSeries/MellinEqDirichlet.lean Modified Mathlib/NumberTheory/LSeries/Nonvanishing.lean Modified Mathlib/NumberTheory/LSeries/SumCoeff.lean Modified Mathlib/NumberTheory/ModularForms/EisensteinSeries/UniformConvergence.lean Modified Mathlib/NumberTheory/ModularForms/JacobiTheta/TwoVariable.lean Modified Mathlib/NumberTheory/Transcendental/Lindemann/Init/AnalyticalPart.lean Modified Mathlib/Probability/Moments/IntegrableExpMul.lean 2025-02-06 16:06:33 cec65e6 chore(*): `erw`s that can now become `rw`s (#21510) I ran a script that found a few `erw`s that can become `rw` for free. Profit! ESTIMATED CHANGES Modified Mathlib/Algebra/Category/MonCat/FilteredColimits.lean Modified Mathlib/AlgebraicGeometry/GammaSpecAdjunction.lean Modified Mathlib/Geometry/RingedSpace/OpenImmersion.lean Modified Mathlib/Topology/Category/TopCat/Limits/Pullbacks.lean Modified Mathlib/Topology/Gluing.lean 2025-02-06 15:46:39 1021444 chore: allow create-adaptation-pr.sh to continue when bump branch already exists (#21486) I found this useful when setting up the Batteries equivalent, so backporting to Mathlib. ESTIMATED CHANGES Modified scripts/create-adaptation-pr.sh 2025-02-06 15:22:49 e471211 feat(CategoryTheory): equivalence between `Ind C` and left exact functors from `C` to `Type` (#21430) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Equivalence.lean + def CategoryTheory.Equivalence.ofFullSubcategory Modified Mathlib/CategoryTheory/Limits/Indization/Category.lean Modified Mathlib/CategoryTheory/Limits/Indization/IndObject.lean + theorem CategoryTheory.Limits.isIndObject_iff_preservesFiniteLimits Modified Mathlib/CategoryTheory/Limits/Preserves/Presheaf.lean 2025-02-06 12:54:48 4a69dc8 chore: add test to TCSynth.lean (#21499) As requested on [Zulip](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Re-order.20typeclass.20hypotheses.20for.20performance/near/498010542), I added a test to go along with the fix in #21449. ESTIMATED CHANGES Modified MathlibTest/TCSynth.lean 2025-02-06 11:52:21 51f1240 feat: the category of ind-objects satisfies the AB5 axiom (#21350) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Abelian/GrothendieckAxioms/Indization.lean Added Mathlib/CategoryTheory/Abelian/GrothendieckAxioms/Types.lean Modified Mathlib/CategoryTheory/Limits/Indization/Category.lean Modified Mathlib/CategoryTheory/Limits/Preserves/Creates/Finite.lean + theorem CategoryTheory.Limits.hasFiniteColimits_of_hasColimits_of_createsFiniteColimits + theorem CategoryTheory.Limits.hasFiniteLimits_of_hasLimitsLimits_of_createsFiniteLimits 2025-02-06 10:13:33 d0f3f20 refactor(RepresentationTheory): `ConcreteCategory` instances for `Rep` (#21465) This PR promotes the existing `HasForget` instances for `Rep` and `FDRep` to `ConcreteCategory`. A little bit of cleanup was possible! ESTIMATED CHANGES Modified Mathlib/RepresentationTheory/FDRep.lean - def FDRep.of Modified Mathlib/RepresentationTheory/Rep.lean - def Rep.of 2025-02-06 07:37:19 0504e9a chore: split Mathlib.Order.Filter.Basic (#21403) Split out all material about map/comap and monadic operations to a new file `Filter.Map`. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Order/Filter/Bases.lean Modified Mathlib/Order/Filter/Basic.lean - theorem Filter.Eventually.comap - theorem Filter.NeBot.comap_of_image_mem - theorem Filter.NeBot.comap_of_range_mem - theorem Filter.NeBot.comap_of_surj - theorem Filter.NeBot.map - theorem Filter.NeBot.of_map - theorem Filter.bind_def - theorem Filter.bind_inf_principal - theorem Filter.bind_le - theorem Filter.bind_map - theorem Filter.bind_mono - theorem Filter.comap_bot - theorem Filter.comap_coe_neBot_of_le_principal - theorem Filter.comap_comap - theorem Filter.comap_comm - theorem Filter.comap_const_of_mem - theorem Filter.comap_const_of_not_mem - theorem Filter.comap_eq_bot_iff_compl_range - theorem Filter.comap_equiv_symm - theorem Filter.comap_eval_neBot - theorem Filter.comap_eval_neBot_iff' - theorem Filter.comap_eval_neBot_iff - theorem Filter.comap_fst_neBot - theorem Filter.comap_fst_neBot_iff - theorem Filter.comap_iInf - theorem Filter.comap_iSup - theorem Filter.comap_id' - theorem Filter.comap_id - theorem Filter.comap_inf - theorem Filter.comap_inf_principal_neBot_of_image_mem - theorem Filter.comap_inf_principal_range - theorem Filter.comap_injective - theorem Filter.comap_le_comap_iff - theorem Filter.comap_le_iff_le_kernMap - theorem Filter.comap_map - theorem Filter.comap_mono - theorem Filter.comap_neBot - theorem Filter.comap_neBot_iff - theorem Filter.comap_neBot_iff_compl_range - theorem Filter.comap_neBot_iff_frequently - theorem Filter.comap_principal - theorem Filter.comap_pure - theorem Filter.comap_sSup - theorem Filter.comap_snd_neBot - theorem Filter.comap_snd_neBot_iff - theorem Filter.comap_sup - theorem Filter.comap_surjective_eq_bot - theorem Filter.comap_top - theorem Filter.compl_mem_comap - theorem Filter.compl_mem_kernMap - theorem Filter.disjoint_comap - theorem Filter.disjoint_comap_iff - theorem Filter.disjoint_comap_iff_map' - theorem Filter.disjoint_comap_iff_map - theorem Filter.disjoint_map - theorem Filter.disjoint_of_map - theorem Filter.eventuallyEq_bind - theorem Filter.eventuallyLE_bind - theorem Filter.eventually_bind - theorem Filter.eventually_comap - theorem Filter.eventually_map - theorem Filter.eventually_pure - theorem Filter.filter_injOn_Iic_iff_injOn - theorem Filter.frequently_comap - theorem Filter.frequently_map - theorem Filter.gc_comap_kernMap - theorem Filter.gc_map_comap - theorem Filter.image_coe_mem_of_mem_comap - theorem Filter.image_mem_map - theorem Filter.image_mem_map_iff - theorem Filter.image_mem_of_mem_comap - theorem Filter.inf_principal_eq_bot_iff_comap - theorem Filter.join_pure - def Filter.kernMap - theorem Filter.kernMap_principal - theorem Filter.le_comap_map - theorem Filter.le_comap_top - theorem Filter.le_map - theorem Filter.le_map_iff - theorem Filter.le_pure_iff - theorem Filter.le_seq - theorem Filter.map_biInf_eq - theorem Filter.map_bind - theorem Filter.map_bot - theorem Filter.map_comap - theorem Filter.map_comap_le - theorem Filter.map_comap_of_mem - theorem Filter.map_comap_of_surjective - theorem Filter.map_comap_setCoe_val - theorem Filter.map_comm - theorem Filter.map_compose - theorem Filter.map_congr - theorem Filter.map_const - theorem Filter.map_def - theorem Filter.map_eq_bot_iff - theorem Filter.map_eq_comap_of_inverse - theorem Filter.map_eq_map_iff_of_injOn - theorem Filter.map_equiv_symm - theorem Filter.map_iInf_eq - theorem Filter.map_iInf_le - theorem Filter.map_iSup - theorem Filter.map_id' - theorem Filter.map_id - theorem Filter.map_inf' - theorem Filter.map_inf - theorem Filter.map_inf_le - theorem Filter.map_inj - theorem Filter.map_injective - theorem Filter.map_le_iff_le_comap - theorem Filter.map_le_map_iff - theorem Filter.map_le_map_iff_of_injOn - theorem Filter.map_map - theorem Filter.map_mono - theorem Filter.map_neBot_iff - theorem Filter.map_principal - theorem Filter.map_pure - theorem Filter.map_sup - theorem Filter.map_surjOn_Iic_iff_le_map - theorem Filter.map_surjOn_Iic_iff_surjOn - theorem Filter.map_swap4_eq_comap - theorem Filter.map_swap_eq_comap_swap - theorem Filter.map_top - theorem Filter.mem_bind' - theorem Filter.mem_bind - theorem Filter.mem_comap'' - theorem Filter.mem_comap' - theorem Filter.mem_comap - theorem Filter.mem_comap_iff - theorem Filter.mem_comap_iff_compl - theorem Filter.mem_comap_prod_mk - theorem Filter.mem_kernMap - theorem Filter.mem_kernMap_iff_compl - theorem Filter.mem_map' - theorem Filter.mem_map - theorem Filter.mem_map_iff_exists_image - theorem Filter.mem_map_seq_iff - theorem Filter.mem_seq_def - theorem Filter.mem_seq_iff - theorem Filter.neBot_inf_comap_iff_map' - theorem Filter.neBot_inf_comap_iff_map - theorem Filter.neBot_of_comap - theorem Filter.preimage_mem_comap - theorem Filter.principal_bind - theorem Filter.principal_eq_map_coe_top - theorem Filter.principal_singleton - theorem Filter.principal_subtype - theorem Filter.prod_map_seq_comm - theorem Filter.pure_bind - theorem Filter.pure_injective - theorem Filter.pure_le_principal - theorem Filter.pure_seq_eq_map - theorem Filter.pure_sets - theorem Filter.range_mem_map - theorem Filter.sInter_comap_sets - theorem Filter.seq_assoc - theorem Filter.seq_eq_filter_seq - theorem Filter.seq_mem_seq - theorem Filter.seq_mono - theorem Filter.seq_pure - theorem Filter.singleton_mem_pure - theorem Filter.subtype_coe_map_comap - theorem Filter.sup_bind - theorem Function.Commute.filter_comap - theorem Function.Commute.filter_map - theorem Function.LeftInverse.filter_comap - theorem Function.LeftInverse.filter_map - theorem Function.Semiconj.filter_comap - theorem Function.Semiconj.filter_map - theorem Function.Surjective.filter_map_top - theorem GCongr.Filter.comap_le_comap - theorem GCongr.Filter.map_le_map - theorem Set.LeftInvOn.filter_map_Iic Modified Mathlib/Order/Filter/Ker.lean Modified Mathlib/Order/Filter/ListTraverse.lean Added Mathlib/Order/Filter/Map.lean + theorem Filter.Eventually.comap + theorem Filter.NeBot.comap_of_image_mem + theorem Filter.NeBot.comap_of_range_mem + theorem Filter.NeBot.comap_of_surj + theorem Filter.NeBot.map + theorem Filter.NeBot.of_map + theorem Filter.bind_def + theorem Filter.bind_inf_principal + theorem Filter.bind_le + theorem Filter.bind_map + theorem Filter.bind_mono + theorem Filter.comap_bot + theorem Filter.comap_coe_neBot_of_le_principal + theorem Filter.comap_comap + theorem Filter.comap_comm + theorem Filter.comap_const_of_mem + theorem Filter.comap_const_of_not_mem + theorem Filter.comap_eq_bot_iff_compl_range + theorem Filter.comap_equiv_symm + theorem Filter.comap_eval_neBot + theorem Filter.comap_eval_neBot_iff' + theorem Filter.comap_eval_neBot_iff + theorem Filter.comap_fst_neBot + theorem Filter.comap_fst_neBot_iff + theorem Filter.comap_iInf + theorem Filter.comap_iSup + theorem Filter.comap_id' + theorem Filter.comap_id + theorem Filter.comap_inf + theorem Filter.comap_inf_principal_neBot_of_image_mem + theorem Filter.comap_inf_principal_range + theorem Filter.comap_injective + theorem Filter.comap_le_comap_iff + theorem Filter.comap_le_iff_le_kernMap + theorem Filter.comap_map + theorem Filter.comap_mono + theorem Filter.comap_neBot + theorem Filter.comap_neBot_iff + theorem Filter.comap_neBot_iff_compl_range + theorem Filter.comap_neBot_iff_frequently + theorem Filter.comap_principal + theorem Filter.comap_pure + theorem Filter.comap_sSup + theorem Filter.comap_snd_neBot + theorem Filter.comap_snd_neBot_iff + theorem Filter.comap_sup + theorem Filter.comap_surjective_eq_bot + theorem Filter.comap_top + theorem Filter.compl_mem_comap + theorem Filter.compl_mem_kernMap + theorem Filter.disjoint_comap + theorem Filter.disjoint_comap_iff + theorem Filter.disjoint_comap_iff_map' + theorem Filter.disjoint_comap_iff_map + theorem Filter.disjoint_map + theorem Filter.disjoint_of_map + theorem Filter.eventuallyEq_bind + theorem Filter.eventuallyLE_bind + theorem Filter.eventually_bind + theorem Filter.eventually_comap + theorem Filter.eventually_map + theorem Filter.eventually_pure + theorem Filter.filter_injOn_Iic_iff_injOn + theorem Filter.frequently_comap + theorem Filter.frequently_map + theorem Filter.gc_comap_kernMap + theorem Filter.gc_map_comap + theorem Filter.image_coe_mem_of_mem_comap + theorem Filter.image_mem_map + theorem Filter.image_mem_map_iff + theorem Filter.image_mem_of_mem_comap + theorem Filter.inf_principal_eq_bot_iff_comap + theorem Filter.join_pure + def Filter.kernMap + theorem Filter.kernMap_principal + theorem Filter.le_comap_map + theorem Filter.le_comap_top + theorem Filter.le_map + theorem Filter.le_map_iff + theorem Filter.le_pure_iff + theorem Filter.le_seq + theorem Filter.map_biInf_eq + theorem Filter.map_bind + theorem Filter.map_bot + theorem Filter.map_comap + theorem Filter.map_comap_le + theorem Filter.map_comap_of_mem + theorem Filter.map_comap_of_surjective + theorem Filter.map_comap_setCoe_val + theorem Filter.map_comm + theorem Filter.map_compose + theorem Filter.map_congr + theorem Filter.map_const + theorem Filter.map_def + theorem Filter.map_eq_bot_iff + theorem Filter.map_eq_comap_of_inverse + theorem Filter.map_eq_map_iff_of_injOn + theorem Filter.map_equiv_symm + theorem Filter.map_iInf_eq + theorem Filter.map_iInf_le + theorem Filter.map_iSup + theorem Filter.map_id' + theorem Filter.map_id + theorem Filter.map_inf' + theorem Filter.map_inf + theorem Filter.map_inf_le + theorem Filter.map_inj + theorem Filter.map_injective + theorem Filter.map_le_iff_le_comap + theorem Filter.map_le_map_iff + theorem Filter.map_le_map_iff_of_injOn + theorem Filter.map_map + theorem Filter.map_mono + theorem Filter.map_neBot_iff + theorem Filter.map_principal + theorem Filter.map_pure + theorem Filter.map_sup + theorem Filter.map_surjOn_Iic_iff_le_map + theorem Filter.map_surjOn_Iic_iff_surjOn + theorem Filter.map_swap4_eq_comap + theorem Filter.map_swap_eq_comap_swap + theorem Filter.map_top + theorem Filter.mem_bind' + theorem Filter.mem_bind + theorem Filter.mem_comap'' + theorem Filter.mem_comap' + theorem Filter.mem_comap + theorem Filter.mem_comap_iff + theorem Filter.mem_comap_iff_compl + theorem Filter.mem_comap_prod_mk + theorem Filter.mem_kernMap + theorem Filter.mem_kernMap_iff_compl + theorem Filter.mem_map' + theorem Filter.mem_map + theorem Filter.mem_map_iff_exists_image + theorem Filter.mem_map_seq_iff + theorem Filter.mem_seq_def + theorem Filter.mem_seq_iff + theorem Filter.neBot_inf_comap_iff_map' + theorem Filter.neBot_inf_comap_iff_map + theorem Filter.neBot_of_comap + theorem Filter.preimage_mem_comap + theorem Filter.principal_bind + theorem Filter.principal_eq_map_coe_top + theorem Filter.principal_singleton + theorem Filter.principal_subtype + theorem Filter.prod_map_seq_comm + theorem Filter.pure_bind + theorem Filter.pure_injective + theorem Filter.pure_le_principal + theorem Filter.pure_seq_eq_map + theorem Filter.pure_sets + theorem Filter.range_mem_map + theorem Filter.sInter_comap_sets + theorem Filter.seq_assoc + theorem Filter.seq_eq_filter_seq + theorem Filter.seq_mem_seq + theorem Filter.seq_mono + theorem Filter.seq_pure + theorem Filter.singleton_mem_pure + theorem Filter.subtype_coe_map_comap + theorem Filter.sup_bind + theorem Function.Commute.filter_comap + theorem Function.Commute.filter_map + theorem Function.LeftInverse.filter_comap + theorem Function.LeftInverse.filter_map + theorem Function.Semiconj.filter_comap + theorem Function.Semiconj.filter_map + theorem Function.Surjective.filter_map_top + theorem GCongr.Filter.comap_le_comap + theorem GCongr.Filter.map_le_map + theorem Set.LeftInvOn.filter_map_Iic Modified Mathlib/Order/Filter/Tendsto.lean Modified Mathlib/Order/Filter/Ultrafilter/Defs.lean Modified Mathlib/SetTheory/Cardinal/CountableCover.lean Modified Mathlib/Tactic/Peel.lean 2025-02-06 02:17:42 8618f3e chore: update Mathlib dependencies 2025-02-06 (#21487) This PR updates the Mathlib dependencies. ESTIMATED CHANGES Modified lake-manifest.json 2025-02-06 01:27:48 b31e317 chore(Cache): Add support for $MATHLIB_CACHE_DIR (#21480) This allows someone to explicitly put just Mathlib's own cache in some specific location without needing to entirely affect any program using XDG_CACHE_HOME. When unset we fallback to the same logic as before. ESTIMATED CHANGES Modified Cache/IO.lean 2025-02-06 01:05:21 7e090dc feat(CategoryTheory): a closed monoidal category is an ordinary enriched category over itself (#21436) Let `C` be a closed monoidal category. It was previously shown (#17326) that `C` is enriched over itself. In this PR, we show that the category structure on `C` is determined by this enriched category structure, i.e. `EnrichedOrdinaryCategory C C` holds. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Closed/Enrichment.lean + theorem CategoryTheory.MonoidalClosed.enrichedCategorySelf_comp + theorem CategoryTheory.MonoidalClosed.enrichedCategorySelf_hom + theorem CategoryTheory.MonoidalClosed.enrichedCategorySelf_id + theorem CategoryTheory.MonoidalClosed.enrichedOrdinaryCategorySelf_eHomWhiskerLeft + theorem CategoryTheory.MonoidalClosed.enrichedOrdinaryCategorySelf_eHomWhiskerRight + theorem CategoryTheory.MonoidalClosed.enrichedOrdinaryCategorySelf_homEquiv + theorem CategoryTheory.MonoidalClosed.enrichedOrdinaryCategorySelf_homEquiv_symm Modified Mathlib/CategoryTheory/Closed/Monoidal.lean + def CategoryTheory.MonoidalClosed.curry' + theorem CategoryTheory.MonoidalClosed.curry'_comp + theorem CategoryTheory.MonoidalClosed.curry'_id + theorem CategoryTheory.MonoidalClosed.curry'_ihom_map + theorem CategoryTheory.MonoidalClosed.curry'_injective + theorem CategoryTheory.MonoidalClosed.curry'_uncurry' + theorem CategoryTheory.MonoidalClosed.curry'_whiskerRight_comp + def CategoryTheory.MonoidalClosed.curryHomEquiv' + theorem CategoryTheory.MonoidalClosed.curry_pre_app + def CategoryTheory.MonoidalClosed.uncurry' + theorem CategoryTheory.MonoidalClosed.uncurry'_curry' + theorem CategoryTheory.MonoidalClosed.uncurry'_injective + theorem CategoryTheory.MonoidalClosed.uncurry_ihom_map + theorem CategoryTheory.MonoidalClosed.uncurry_pre_app + theorem CategoryTheory.MonoidalClosed.whiskerLeft_curry'_comp + theorem CategoryTheory.MonoidalClosed.whiskerLeft_curry'_ihom_ev_app + theorem CategoryTheory.MonoidalClosed.whiskerLeft_curry_ihom_ev_app 2025-02-06 00:44:26 47fe501 feat(AlgebraicTopology): notation X ^[n] for cosimplicial objects (#21485) We change the notation for the `n`-th term of a cosimplicial object `X`, introducing the new notation `X ^[n]`. The previous notation `X _[n]` is also the notation used when `X` is a simplicial object. This change prevents any confusion between the two and is more in line with the established notation `Xⁿ` for cosimplicial objects (with simplicial objects denoted `Xₙ`). ESTIMATED CHANGES Modified Mathlib/AlgebraicTopology/SimplicialObject/Basic.lean +/- def CategoryTheory.CosimplicialObject.eqToIso +/- def CategoryTheory.CosimplicialObject.δ +/- def CategoryTheory.CosimplicialObject.σ 2025-02-06 00:23:27 f6ebe88 chore: upgrade dependencies manually (#21484) Replaces #21420 ESTIMATED CHANGES Modified lake-manifest.json Modified lakefile.lean 2025-02-05 23:58:48 f6895b2 refactor(Analysis/Normed): `ConcreteCategory` refactor for `SemiNormedGrp` (#21477) This PR adds a `Hom` structure and `ConcreteCategory` instance for `SemiNormedGrp` and `SemiNormedGrp_1`. Zulip thread: https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Concrete.20category.20class.20redesign ESTIMATED CHANGES Modified Mathlib/Analysis/Normed/Group/SemiNormedGrp.lean + def SemiNormedGrp.Hom.Simps.hom + structure SemiNormedGrp.Hom + theorem SemiNormedGrp.comp_apply + theorem SemiNormedGrp.hom_add + theorem SemiNormedGrp.hom_comp + theorem SemiNormedGrp.hom_ext + theorem SemiNormedGrp.hom_id + theorem SemiNormedGrp.hom_inv_apply + theorem SemiNormedGrp.hom_neg + theorem SemiNormedGrp.hom_nsum + theorem SemiNormedGrp.hom_ofHom + theorem SemiNormedGrp.hom_sub + theorem SemiNormedGrp.hom_zero + theorem SemiNormedGrp.hom_zsum + theorem SemiNormedGrp.id_apply + theorem SemiNormedGrp.inv_hom_apply +/- theorem SemiNormedGrp.iso_isometry_of_normNoninc - def SemiNormedGrp.of + theorem SemiNormedGrp.ofHom_apply + theorem SemiNormedGrp.ofHom_comp + theorem SemiNormedGrp.ofHom_hom + theorem SemiNormedGrp.ofHom_id + structure SemiNormedGrp - def SemiNormedGrp + def SemiNormedGrp₁.Hom.Simps.hom + structure SemiNormedGrp₁.Hom + theorem SemiNormedGrp₁.comp_apply + theorem SemiNormedGrp₁.ext + theorem SemiNormedGrp₁.hom_comp +/- theorem SemiNormedGrp₁.hom_ext + theorem SemiNormedGrp₁.hom_id + theorem SemiNormedGrp₁.hom_inv_apply + theorem SemiNormedGrp₁.hom_mkHom + theorem SemiNormedGrp₁.id_apply + theorem SemiNormedGrp₁.inv_hom_apply - def SemiNormedGrp₁.mkHom +/- theorem SemiNormedGrp₁.mkHom_apply + theorem SemiNormedGrp₁.mkHom_comp + theorem SemiNormedGrp₁.mkHom_hom + theorem SemiNormedGrp₁.mkHom_id +/- def SemiNormedGrp₁.mkIso - def SemiNormedGrp₁.of + structure SemiNormedGrp₁ - def SemiNormedGrp₁ Modified Mathlib/Analysis/Normed/Group/SemiNormedGrp/Completion.lean +/- def SemiNormedGrp.completion.incl +/- theorem SemiNormedGrp.completion.map_normNoninc Modified Mathlib/Analysis/Normed/Group/SemiNormedGrp/Kernels.lean 2025-02-05 23:58:46 9824ca3 refactor(LinearAlgebra): `ConcreteCategory` instance for `QuadraticModuleCat` (#21471) Upgrade the `HasForget` instance on `QuadraticModuleCat` to `ConcreteCategory`. Also fix a type error in `ofHom`, where it would typecheck only on forms on the same module. ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/QuadraticForm/QuadraticModuleCat.lean - def QuadraticModuleCat.of 2025-02-05 23:58:45 c63d242 refactor(MeasureTheory): `ConcreteCategory` instance for `MeasCat` (#21468) Upgrade the `HasForget` instance on `MeasCat` to a `ConcreteCategory`. ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Category/MeasCat.lean - def MeasCat.of + structure MeasCat - def MeasCat 2025-02-05 23:58:44 191c189 refactor(Topology/Category): clean up remaining uses of `HasForget` (#21458) This PR upgrades the remaining usage of `HasForget` in the folder `Mathlib/Topology/Category`, upgrading to `ConcreteCategory`. I made a `Hom` structure for `UniformSpaceCat` but not for the other concrete categories, since it was the only category to actually need some disambiguating between categorical homs and uniformly continuous maps. ESTIMATED CHANGES Modified Mathlib/Topology/Category/Born.lean - def Born.of + structure Born - def Born Modified Mathlib/Topology/Category/CompactlyGenerated.lean Modified Mathlib/Topology/Category/Compactum.lean Modified Mathlib/Topology/Category/LightProfinite/Extend.lean Modified Mathlib/Topology/Category/Profinite/Basic.lean Modified Mathlib/Topology/Category/TopCommRingCat.lean - def TopCommRingCat.of Modified Mathlib/Topology/Category/UniformSpace.lean + theorem CpltSepUniformSpace.hom_comp + theorem CpltSepUniformSpace.hom_id + theorem CpltSepUniformSpace.hom_ofHom + structure UniformSpaceCat.Hom + theorem UniformSpaceCat.hom_comp +/- theorem UniformSpaceCat.hom_ext + theorem UniformSpaceCat.hom_id + theorem UniformSpaceCat.hom_ofHom - def UniformSpaceCat.of + structure UniformSpaceCat - def UniformSpaceCat 2025-02-05 23:48:58 7b92cf7 refactor(CategoryTheory): `ConcreteCategory` instances for pointed types (#21470) Upgrade the `HasForget` instances on `Pointed`, `Bipointed` and `TwoP` to `ConcreteCategory`. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Category/Bipointed.lean - def Bipointed.of Modified Mathlib/CategoryTheory/Category/Pointed.lean - def Pointed.of Modified Mathlib/CategoryTheory/Category/TwoP.lean - def TwoP.of 2025-02-05 23:48:57 5db3312 feat(CategoryTheory/Action): `ConcreteCategory` instances for `Action` (#21462) Alongside the existing `HasForget` instances, allow deriving `ConcreteCategory (Action V G)` if `V` is a concrete category. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Action/Basic.lean Modified Mathlib/CategoryTheory/Action/Continuous.lean 2025-02-05 23:29:12 8b5db9f feat(CategoryTheory): `ConcreteCategory` instance for `DifferentialObject` (#21464) Closely following the procedure of #21462 to promote the `HasForget` instance into a `ConcreteCategory` instance. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/DifferentialObject.lean 2025-02-05 23:29:11 9d6e2ee feat(Analysis/Normed/Group/SeparationQuotient): add normed lifts and `mk` (#18178) Define the `mk` and lifts of normed spaces and normed groups by the inseparable setoid as `NormedAddGroupHom`, `CLM`, etc. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Analysis/Normed/Group/Hom.lean Added Mathlib/Analysis/Normed/Group/SeparationQuotient.lean + theorem SeparationQuotient.apply_eq_apply_of_inseparable + theorem SeparationQuotient.liftNormedAddGroupHom_normNoninc + theorem SeparationQuotient.liftNormedAddGroupHom_norm_le + theorem SeparationQuotient.norm_liftNormedAddGroupHom_apply_le + theorem SeparationQuotient.norm_liftNormedAddGroupHom_le + theorem SeparationQuotient.norm_normedMk_eq_one + theorem SeparationQuotient.norm_normedMk_le + theorem SeparationQuotient.normedMk_eq_zero_iff Modified Mathlib/Topology/Algebra/ContinuousMonoidHom.lean + def ContinuousMonoidHom.ofClass Modified Mathlib/Topology/Algebra/SeparationQuotient/Basic.lean + theorem SeparationQuotient.liftCLM_mk + theorem SeparationQuotient.nhds_mk Added Mathlib/Topology/Algebra/SeparationQuotient/Hom.lean + theorem SeparationQuotient.liftContinuousCommMonoidHom_mk 2025-02-05 23:02:58 2ae8cf3 chore: rename `encard_le_card` to `encard_le_encard` (#21426) ESTIMATED CHANGES Modified Mathlib/Data/Matroid/IndepAxioms.lean Modified Mathlib/Data/Set/Card.lean - theorem Set.encard_le_card + theorem Set.encard_le_encard 2025-02-05 22:11:46 395bedc feat: add theorem about the norm of cross products (#20920) Add and prove the equality between the norm of a cross-product of two vectors and the product of the norms of the individual vectors and the sine of the angle between them. See `crossProduct_norm_eq_norm_mul_norm_mul_sin`. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Geometry/Euclidean/Angle/Unoriented/Basic.lean + theorem InnerProductGeometry.sin_angle_nonneg Added Mathlib/Geometry/Euclidean/Angle/Unoriented/CrossProduct.lean + theorem InnerProductGeometry.norm_withLpEquiv_crossProduct + theorem InnerProductGeometry.norm_withLpEquiv_symm_crossProduct 2025-02-05 21:25:38 3ebd28c feat(Data/Matroid/Circuit): circuit elimination and finitary matroids (#21172) We add various version of the circuit elimination axiom, and some lemmas about finitary matroids. ESTIMATED CHANGES Modified Mathlib/Data/Matroid/Circuit.lean + theorem Matroid.Circuit.elimination +/- theorem Matroid.Circuit.eq_fundCircuit_of_subset + theorem Matroid.Circuit.finite + theorem Matroid.Circuit.strong_elimination + theorem Matroid.Circuit.strong_multi_elimination + theorem Matroid.Circuit.strong_multi_elimination_insert + theorem Matroid.Circuit.strong_multi_elimination_set + theorem Matroid.exists_circuit_of_mem_closure + theorem Matroid.exists_mem_finite_closure_of_mem_closure + theorem Matroid.exists_subset_finite_closure_of_subset_closure + theorem Matroid.finitary_iff_forall_circuit_finite + theorem Matroid.mem_closure_iff_exists_circuit 2025-02-05 20:58:30 a68f922 feat(LinearAlgebra/ExteriorPower): add iMulti_family definition for product of a family of vectors (#21397) This splits the definition of `ιMulti_family` from PR #10654 along with a few basic lemmas that do not rely on other parts of the PR. The `ιMulti_family` definition allows taking the product of a subset of a family of vectors, which is useful when the number of vectors is different from the degree of the exterior power. In particular, this is useful for working with a collection of basis or spanning vectors. ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/ExteriorPower/Basic.lean + theorem exteriorPower.map_apply_ιMulti_family + theorem exteriorPower.map_comp_ιMulti_family + theorem exteriorPower.ιMulti_family_apply_coe 2025-02-05 17:40:12 24c5975 chore(PresheafedSpace): remove `mk_coe` and some comments from porting (#21382) My experience with `SimpVarHead` is that declarations flagged are something that Lean can handle with eta-reduction/expansion. Either way, this declaration is not used in mathlib and the commented out code doesn't seem to be missed. ESTIMATED CHANGES Modified Mathlib/Geometry/RingedSpace/PresheafedSpace.lean - theorem AlgebraicGeometry.PresheafedSpace.mk_coe 2025-02-05 17:15:11 6aadd7f refactor(CategoryTheory): `ConcreteCategory` instance for `FintypeCat` (#21466) Upgrade the `HasForget` instance on `FintypeCat` to a `ConcreteCategory`. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/FintypeCat.lean - def FintypeCat.of + structure FintypeCat - def FintypeCat Modified Mathlib/CategoryTheory/Preadditive/Mat.lean Modified Mathlib/Order/Category/FinPartOrd.lean 2025-02-05 17:02:51 d7a81bf refactor(Algebra/Category): clean up remaining uses of `HasForget` (#21460) This removes the remaining references to `HasForget` in the folder `Mathlib/Algebra/Category`, upgrading all instances to `ConcreteCategory`. ESTIMATED CHANGES Modified Mathlib/Algebra/Category/BialgebraCat/Basic.lean Modified Mathlib/Algebra/Category/BoolRing.lean Modified Mathlib/Algebra/Category/CoalgebraCat/Basic.lean - def CoalgebraCat.of Modified Mathlib/Algebra/Category/CoalgebraCat/ComonEquivalence.lean Modified Mathlib/Algebra/Category/FGModuleCat/Basic.lean Modified Mathlib/Algebra/Category/GrpWithZero.lean + theorem GrpWithZero.hom_comp + theorem GrpWithZero.hom_id - def GrpWithZero.of + structure GrpWithZero - def GrpWithZero Modified Mathlib/Algebra/Category/HopfAlgebraCat/Basic.lean - def HopfAlgebraCat.of 2025-02-05 15:13:18 3eb0ff7 chore(Algebra/Field/Basic): make some arguments implicit (#21453) Make the first three arguments of `sub_div'` and `div_sub'` implicit. Note that these arguments were (almost) never explicitly provided whenever these functions were used. ESTIMATED CHANGES Modified Mathlib/Algebra/Field/Basic.lean +/- theorem div_sub' +/- theorem sub_div' Modified Mathlib/Analysis/SpecialFunctions/Gamma/BohrMollerup.lean Modified Mathlib/Combinatorics/SimpleGraph/Regularity/Bound.lean Modified Mathlib/Data/Real/Pi/Wallis.lean Modified Mathlib/Dynamics/Circle/RotationNumber/TranslationNumber.lean Modified Mathlib/NumberTheory/DiophantineApproximation/Basic.lean Modified Mathlib/NumberTheory/Harmonic/ZetaAsymp.lean Modified Mathlib/NumberTheory/Transcendental/Liouville/LiouvilleWith.lean Modified Mathlib/NumberTheory/Transcendental/Liouville/Measure.lean 2025-02-05 15:13:17 6b45fb5 chore(LinearAlgebra/TensorProduct): upgrade `TensorProduct.prodRight` (#21432) ... to a linear map over an `R`-algebra `S`. ESTIMATED CHANGES Modified Mathlib/Algebra/Module/Equiv/Defs.lean + theorem LinearEquiv.coe_addEquiv_apply Modified Mathlib/LinearAlgebra/TensorProduct/Prod.lean +/- def TensorProduct.prodLeft +/- def TensorProduct.prodRight +/- theorem TensorProduct.prodRight_tmul 2025-02-05 14:36:50 fd7df66 docs(Logic/Function/Defs): missing backticks (#21459) ESTIMATED CHANGES Modified Mathlib/Logic/Function/Defs.lean 2025-02-05 14:36:49 d6eaa9a style(Logic/Embedding/Set): unindent (#21457) ESTIMATED CHANGES Modified Mathlib/Logic/Embedding/Set.lean 2025-02-05 14:21:27 6cfdcb3 doc: document design choice of (AE)StronglyMeasurable.enorm and `edist` (#21423) It intentionally only proves (a.e.) measurability, not (a.e.) strong measurability. Discovered while generalising lemmas to enormed spaces, for the Carleson project. ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Function/StronglyMeasurable/AEStronglyMeasurable.lean Modified Mathlib/MeasureTheory/Function/StronglyMeasurable/Basic.lean 2025-02-05 12:55:14 0ab7780 perf(RingTheory/Artinian): reorder arguments in `IsArtinianRing.isMaximal_of_isPrime` (#21449) Reordering the arguments flips the type class synthesis order, so that it fails more quickly when there is no instance. https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Strange.20simpNF.20error.20.22at.20a.20distance.22/near/497687170 ESTIMATED CHANGES Modified Mathlib/RingTheory/Artinian/Module.lean 2025-02-05 11:40:10 ad7930c feat(Probability): first two derivatives of `cgf` (#21223) ESTIMATED CHANGES Modified Mathlib/Analysis/SpecialFunctions/Complex/Analytic.lean + theorem AnalyticAt.log + theorem AnalyticOn.log + theorem AnalyticOnNhd.log + theorem AnalyticWithinAt.log + theorem analyticAt_log + theorem analyticOnNhd_log + theorem analyticOn_log Modified Mathlib/Probability/Moments/Basic.lean +/- theorem ProbabilityTheory.cgf_zero_measure +/- theorem ProbabilityTheory.mgf_zero_measure Modified Mathlib/Probability/Moments/MGFAnalytic.lean + theorem ProbabilityTheory.analyticAt_cgf + theorem ProbabilityTheory.analyticAt_iteratedDeriv_mgf + theorem ProbabilityTheory.analyticOnNhd_cgf + theorem ProbabilityTheory.analyticOnNhd_iteratedDeriv_mgf + theorem ProbabilityTheory.analyticOn_cgf + theorem ProbabilityTheory.analyticOn_iteratedDeriv_mgf + theorem ProbabilityTheory.deriv_cgf + theorem ProbabilityTheory.deriv_cgf_zero + theorem ProbabilityTheory.differentiableAt_iteratedDeriv_mgf + theorem ProbabilityTheory.differentiableAt_mgf + theorem ProbabilityTheory.iteratedDeriv_two_cgf + theorem ProbabilityTheory.iteratedDeriv_two_cgf_eq_integral 2025-02-05 10:58:18 76560a8 feat(RingTheory): `Ring.KrullDimLE` type class (#21452) Also split `RingTheory/Ideal/MinimalPrimes.lean` into `RingTheory/Ideal/MinimalPrimes/Basic.lean` and `RingTheory/Ideal/MinimalPrimes/Localization.lean`. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Order/KrullDimension.lean + theorem Order.KrullDimLE.mono Modified Mathlib/RingTheory/Ideal/Height.lean Added Mathlib/RingTheory/Ideal/MinimalPrime/Basic.lean + theorem Ideal.eq_bot_of_minimalPrimes_eq_empty + theorem Ideal.exists_minimalPrimes_le + theorem Ideal.minimalPrimes_eq_empty_iff + theorem Ideal.minimalPrimes_eq_subsingleton + theorem Ideal.minimalPrimes_eq_subsingleton_self + theorem Ideal.minimalPrimes_isPrime + theorem Ideal.minimalPrimes_top + theorem Ideal.nonempty_minimalPrimes + theorem Ideal.radical_minimalPrimes + theorem Ideal.sInf_minimalPrimes + def minimalPrimes + theorem minimalPrimes_eq_minimals Renamed Mathlib/RingTheory/Ideal/MinimalPrime.lean to Mathlib/RingTheory/Ideal/MinimalPrime/Localization.lean - theorem Ideal.eq_bot_of_minimalPrimes_eq_empty - theorem Ideal.exists_minimalPrimes_le - theorem Ideal.minimalPrimes_eq_empty_iff - theorem Ideal.minimalPrimes_eq_subsingleton - theorem Ideal.minimalPrimes_eq_subsingleton_self - theorem Ideal.minimalPrimes_isPrime - theorem Ideal.minimalPrimes_top - theorem Ideal.nonempty_minimalPrimes - theorem Ideal.radical_minimalPrimes - theorem Ideal.sInf_minimalPrimes - def minimalPrimes - theorem minimalPrimes_eq_minimals Modified Mathlib/RingTheory/KrullDimension/Basic.lean + theorem Ring.KrullDimLE.mk₀ + theorem Ring.KrullDimLE.mk₁' + theorem Ring.KrullDimLE.mk₁ + theorem Ring.krullDimLE_one_iff + theorem Ring.krullDimLE_one_iff_of_isDomain + theorem Ring.krullDimLE_one_iff_of_isPrime_bot + theorem Ring.krullDimLE_zero_iff +/- theorem ringKrullDim_quotient_le Modified Mathlib/RingTheory/Spectrum/Prime/Basic.lean + theorem PrimeSpectrum.isMax_iff + theorem PrimeSpectrum.isMin_iff Modified Mathlib/RingTheory/Spectrum/Prime/Topology.lean - theorem PrimeSpectrum.isMax_iff - theorem PrimeSpectrum.isMin_iff 2025-02-05 10:31:35 25a796f chore(Probability/ProbabilityMassFunction/Binomial): typo "bernoulli" (#21455) ESTIMATED CHANGES Modified Mathlib/Probability/ProbabilityMassFunction/Binomial.lean 2025-02-05 09:36:38 4353835 chore: remove unused argument (#21393) This was found by the linter in a different PR. ESTIMATED CHANGES Modified Mathlib/Topology/Sheaves/SheafCondition/OpensLeCover.lean +/- def TopCat.Presheaf.generateEquivalenceOpensLe_functor' 2025-02-05 09:36:37 6449d92 feat(MeasureTheory/Integral/RieszMarkovKakutani) prove that the Riesz content is regular and define the Riesz measure (#20040) Prove regularity of `RieszContent`, define the Riesz measure `μ Λ` and prove basic properties. Motivation: these definitions and lemmas will be used to prove the Riesz-Markov-Kakutani theorem, characterizing `μ Λ`. In this PR, it is assumed to be NNReal-linear. In this way, the proof of the RMK theorem will be twice as long as a proof for `Real`-linear `Λ` because one cannot define `-f`. #12290 proves the RMK theorem for real linear `Λ`, using the Riesz measure defined in this PR through `toNNRealLinear`. ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Integral/RieszMarkovKakutani.lean + theorem CompactlySupportedContinuousMap.monotone_of_nnreal + theorem contentRegular_rieszContent + theorem le_rieszMeasure_of_isCompact_tsupport_subset + theorem le_rieszMeasure_of_tsupport_subset + theorem rieszContent_ne_top + def rieszMeasure Modified Mathlib/Topology/ContinuousMap/CompactlySupported.lean 2025-02-05 09:23:29 0636ded chore(Topology/Algebra/ContinuousMonoidHom): do not depend on `ContinuousLinearMap` (#21443) The dependency should go in the other direction. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Topology/Algebra/ContinuousMonoidHom.lean - def ContinuousMonoidHom.compLeft - def ContinuousMonoidHom.compRight - theorem ContinuousMonoidHom.continuous_comp - theorem ContinuousMonoidHom.continuous_comp_left - theorem ContinuousMonoidHom.continuous_comp_right - theorem ContinuousMonoidHom.continuous_of_continuous_uncurry - theorem ContinuousMonoidHom.isClosedEmbedding_toContinuousMap - theorem ContinuousMonoidHom.isEmbedding_toContinuousMap - theorem ContinuousMonoidHom.isInducing_toContinuousMap - theorem ContinuousMonoidHom.locallyCompactSpace_of_equicontinuousAt - theorem ContinuousMonoidHom.locallyCompactSpace_of_hasBasis - theorem ContinuousMonoidHom.range_toContinuousMap Added Mathlib/Topology/Algebra/Group/CompactOpen.lean + def ContinuousMonoidHom.compLeft + def ContinuousMonoidHom.compRight + theorem ContinuousMonoidHom.continuous_comp + theorem ContinuousMonoidHom.continuous_comp_left + theorem ContinuousMonoidHom.continuous_comp_right + theorem ContinuousMonoidHom.continuous_of_continuous_uncurry + theorem ContinuousMonoidHom.isClosedEmbedding_toContinuousMap + theorem ContinuousMonoidHom.isEmbedding_toContinuousMap + theorem ContinuousMonoidHom.isInducing_toContinuousMap + theorem ContinuousMonoidHom.locallyCompactSpace_of_equicontinuousAt + theorem ContinuousMonoidHom.locallyCompactSpace_of_hasBasis + theorem ContinuousMonoidHom.range_toContinuousMap Modified Mathlib/Topology/Algebra/PontryaginDual.lean 2025-02-05 07:04:39 0642034 doc(CategoryTheory/Monoidal/Category): fix expression in docs (#21445) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Monoidal/Category.lean 2025-02-05 05:32:08 803e276 refactor(Order/CompleteBooleanAlgebra): a complete lattice which is a Heyting algebra is automatically a frame (#21391) Every complete lattice that is a heyting algebra is also a frame. This is because the Heyting implication is the right adjoint to `⊓`, which means that `⊓` now preserves infinite suprema (because it is a left adjoint). ESTIMATED CHANGES Modified Mathlib/Data/Fintype/Order.lean Modified Mathlib/Order/CompleteBooleanAlgebra.lean - theorem Order.Frame.MinimalAxioms.Order.Coframe.MinimalAxioms.CompleteDistribLattice.MinimalAxioms.CompletelyDistribLattice.MinimalAxioms.inf_sSup_eq - theorem Order.Frame.MinimalAxioms.Order.Coframe.MinimalAxioms.CompleteDistribLattice.MinimalAxioms.CompletelyDistribLattice.MinimalAxioms.sup_sInf_eq +/- def Order.Frame.MinimalAxioms.Order.Coframe.MinimalAxioms.CompleteDistribLattice.MinimalAxioms.of +/- def Order.Frame.MinimalAxioms.Order.Coframe.MinimalAxioms.of +/- def Order.Frame.MinimalAxioms.of + theorem inf_sSup_eq + theorem sup_sInf_eq Modified Mathlib/Order/Copy.lean Modified Mathlib/Order/Heyting/Basic.lean + theorem gc_inf_himp + theorem gc_sdiff_sup 2025-02-05 05:32:07 61e4089 chore: cleanup porting notes in TuringMachine (#20821) Many `local notation`s were added during porting. To my eye, they don't improve readability at all, but if others disagree we can do something else. However, if you don't like this PR, please either resolve the porting notes alternately, or at least let me know how you would like it done (possibly just deleting them). ESTIMATED CHANGES Modified Mathlib/Computability/TuringMachine.lean +/- def Turing.TM0.Reaches +/- def Turing.TM0.Supports +/- def Turing.TM0.eval +/- def Turing.TM0.init +/- def Turing.TM0.step +/- theorem Turing.TM0.step_supports +/- theorem Turing.TM0.univ_supports +/- def Turing.TM0to1.tr +/- def Turing.TM0to1.trCfg +/- def Turing.TM1.Supports +/- def Turing.TM1.SupportsStmt +/- def Turing.TM1.eval +/- def Turing.TM1.init +/- def Turing.TM1.step +/- def Turing.TM1.stepAux +/- theorem Turing.TM1.step_supports +/- theorem Turing.TM1.stmts_supportsStmt +/- theorem Turing.TM1.stmts_trans +/- theorem Turing.TM1.stmts₁_self +/- theorem Turing.TM1.stmts₁_supportsStmt_mono +/- theorem Turing.TM1.stmts₁_trans +/- def Turing.TM1to0.tr +/- def Turing.TM1to0.trAux +/- def Turing.TM1to0.trCfg +/- def Turing.TM1to1.move +/- def Turing.TM1to1.read +/- def Turing.TM1to1.readAux +/- theorem Turing.TM1to1.stepAux_move +/- theorem Turing.TM1to1.stepAux_read +/- theorem Turing.TM1to1.stepAux_write +/- theorem Turing.TM1to1.supportsStmt_move +/- theorem Turing.TM1to1.supportsStmt_read +/- theorem Turing.TM1to1.supportsStmt_write +/- def Turing.TM1to1.tr +/- def Turing.TM1to1.trCfg +/- def Turing.TM1to1.trNormal +/- def Turing.TM1to1.write +/- def Turing.TM2.Reaches +/- def Turing.TM2.Supports +/- def Turing.TM2.SupportsStmt +/- def Turing.TM2.eval +/- def Turing.TM2.init +/- def Turing.TM2.step +/- def Turing.TM2.stepAux +/- theorem Turing.TM2.step_supports +/- theorem Turing.TM2.stmts_supportsStmt +/- theorem Turing.TM2.stmts_trans +/- theorem Turing.TM2.stmts₁_self +/- theorem Turing.TM2.stmts₁_supportsStmt_mono +/- theorem Turing.TM2.stmts₁_trans +/- inductive Turing.TM2to1.TrCfg +/- def Turing.TM2to1.addBottom +/- def Turing.TM2to1.stRun +/- def Turing.TM2to1.stVar +/- def Turing.TM2to1.stWrite +/- theorem Turing.TM2to1.step_run +/- def Turing.TM2to1.stmtStRec.{l} +/- theorem Turing.TM2to1.supports_run +/- def Turing.TM2to1.tr +/- theorem Turing.TM2to1.trCfg_init +/- def Turing.TM2to1.trInit +/- def Turing.TM2to1.trNormal +/- theorem Turing.TM2to1.trNormal_run +/- def Turing.TM2to1.trStAct +/- theorem Turing.TM2to1.trStmts₁_run +/- theorem Turing.TM2to1.tr_respects_aux₂ 2025-02-05 04:55:41 79b481d chore: remove @[simp] when the discr_key is a lambda (#21395) This PR removes `@[simp]` from all the lemma with a lambda as the #discr_tree_simp_key. These @[simp] annotations were not used anywhere in Mathlib, and are potentially expensive as they will fire anytime the simp target is a lambda. See [zulip](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/bad.20simp.20discrimination.20tree.20keys/near/497258784), and thanks for @JovanGerb and @kbuzzard for diagnosing. ESTIMATED CHANGES Modified Mathlib/Data/Fin/VecNotation.lean Modified MathlibTest/matrix.lean 2025-02-05 04:27:41 460a8b0 feat/doc: split files, add documentation (#21421) Move the material on orders of analytic functions out of the file `Mathlib/Analysis/Analytic/IsolatedZeros.lean`. Create a directory `Mathlib/Analysis/Meromorphic`. Move the file `Mathlib/Analysis/Analytic/Meromorphic.lean` to `Mathlib/Analysis/Meromorphic/Basic.lean`. Move the material on orders of meromorphic functions to the file `Mathlib/Analysis/Meromorphic/Order.lean`. Add documentation. This PR does not add new theorems or change existing ones. As discussed with @TwoFX (and others) during the Lean Meeting at Freiburg, I would like to move material on orders of analytic/meromorphic functions to independent files. Reasons: - The material on order in `Mathlib/Analysis/Analytic/IsolatedZeros.lean` was never referenced from anywhere else in this file. This is now seen by the fact that `Mathlib/Analysis/Analytic/IsolatedZeros.lean` does not reference the new file `Mathlib/Analysis/Analytic/Order.lean`. Similarly in the meromorphic setting. - The material on orders is bound to grow quite a bit, as I plan to add the missing material on the behavior of orders under addition and composition, both in the analytic and meromorphic settings. I will also need to say more about the topology of the level sets. - I intend to add more material on meromorphic functions, including a discussion of (and API for) continuous extension, and extraction of zeros/poles. The amount of material justifies that meromorphic functions get their own directory. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Analysis/Analytic/IsolatedZeros.lean - theorem AnalyticAt.apply_eq_zero_of_order_toNat_ne_zero - theorem AnalyticAt.order_eq_nat_iff - theorem AnalyticAt.order_eq_top_iff - theorem AnalyticAt.order_eq_zero_iff - theorem AnalyticAt.order_mul - theorem AnalyticAt.order_mul_of_order_eq_top - theorem AnalyticAt.order_ne_top_iff - theorem AnalyticAt.order_pow - theorem AnalyticOnNhd.isClopen_setOf_order_eq_top Added Mathlib/Analysis/Analytic/Order.lean + theorem AnalyticAt.apply_eq_zero_of_order_toNat_ne_zero + theorem AnalyticAt.order_eq_nat_iff + theorem AnalyticAt.order_eq_top_iff + theorem AnalyticAt.order_eq_zero_iff + theorem AnalyticAt.order_mul + theorem AnalyticAt.order_mul_of_order_eq_top + theorem AnalyticAt.order_ne_top_iff + theorem AnalyticAt.order_pow + theorem AnalyticOnNhd.isClopen_setOf_order_eq_top Renamed Mathlib/Analysis/Analytic/Meromorphic.lean to Mathlib/Analysis/Meromorphic/Basic.lean - theorem AnalyticAt.meromorphicAt_order - theorem MeromorphicAt.order_eq_int_iff - theorem MeromorphicAt.order_eq_top_iff - theorem MeromorphicAt.order_mul - theorem MeromorphicAt.order_smul - theorem MeromorphicOn.exists_order_ne_top_iff_forall - theorem MeromorphicOn.isClopen_setOf_order_eq_top - theorem MeromorphicOn.order_ne_top_of_isPreconnected Added Mathlib/Analysis/Meromorphic/Order.lean + theorem AnalyticAt.meromorphicAt_order + theorem MeromorphicAt.order_eq_int_iff + theorem MeromorphicAt.order_eq_top_iff + theorem MeromorphicAt.order_mul + theorem MeromorphicAt.order_smul + theorem MeromorphicOn.exists_order_ne_top_iff_forall + theorem MeromorphicOn.isClopen_setOf_order_eq_top + theorem MeromorphicOn.order_ne_top_of_isPreconnected 2025-02-05 02:03:37 8827be0 feat(Data/Set/Lattice): iUnion + insertion (#21322) Another distributivity lemma with iUnion and insertions, needed for #21172. This could maybe be `@[simp]` ESTIMATED CHANGES Modified Mathlib/Data/Set/Lattice.lean + theorem Set.iUnion_insert_eq_range_union_iUnion +/- theorem Set.iUnion_singleton_eq_range 2025-02-05 00:24:45 8c7a687 feat(Factorial): k! divides the product of any k successive integers (#21332) ESTIMATED CHANGES Modified Mathlib/Data/Nat/Factorial/BigOperators.lean + theorem Nat.factorial_coe_dvd_prod 2025-02-04 22:10:34 de715a3 feat(CI): bench-after-CI (#21414) Adds a CI step that checks if the `bench-after-CI` label is present. If so, it adds a comment `!bench` once CI passes, triggering a benchmarking run. The management is as follow: * the label `bench-after-CI` is applied manually while CI is running; * once CI passes the lint phase, if the label is present, a bot comments `!bench`, starting the bench process; * when the bench process terminates, it posts the report; * this triggers the bench-summary bot to post the summary *and* to remove the label. Meanwhile, the label `bench-after-CI` is in the list of labels that `bors` rejects. [Zulip](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/.60bench-after-CI.60.3F) I added the label to this PR, ~~but I am not sure whether the workflow will act on it, since the code is not in `master`~~ and the automation worked. ESTIMATED CHANGES Modified .github/build.in.yml Modified .github/workflows/bench_summary_comment.yml Modified .github/workflows/bors.yml Modified .github/workflows/build.yml Modified .github/workflows/build_fork.yml Modified bors.toml 2025-02-04 20:48:46 3f98c55 feat: primitive group actions (#12052) This PR defines the notion of a primitive action. This concept is used to state the Iwasawa criterion for simplicity of #12048 ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/GroupTheory/GroupAction/Basic.lean + theorem MulAction.fixedPoints_of_subsingleton + theorem MulAction.nontrivial_of_fixedPoints_ne_univ + theorem MulAction.subsingleton_orbit_iff_mem_fixedPoints Modified Mathlib/GroupTheory/GroupAction/Blocks.lean Added Mathlib/GroupTheory/GroupAction/Primitive.lean + theorem MulAction.IsBlock.subsingleton_or_eq_univ + theorem MulAction.IsPreprimitive.isCoatom_stabilizer_of_isPreprimitive + theorem MulAction.IsPreprimitive.of_isTrivialBlock_base + theorem MulAction.IsPreprimitive.of_isTrivialBlock_of_not_mem_fixedPoints + theorem MulAction.IsPreprimitive.of_subsingleton + theorem MulAction.IsPreprimitive.of_surjective + theorem MulAction.isCoatom_stabilizer_iff_preprimitive + theorem MulAction.isPreprimitive_congr + theorem MulAction.isSimpleOrder_blockMem_iff_isPreprimitive + theorem MulAction.mk' Modified Mathlib/GroupTheory/GroupAction/Transitive.lean - theorem MulAction.isPretransitive_iff_orbit_eq_top + theorem MulAction.isPretransitive_iff_orbit_eq_univ 2025-02-04 18:27:56 f70851e feat(Algebra/GroupWithZero/Int): add lemmas about Zm0 (#21370) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Group/Basic.lean + theorem zpow_comm Added Mathlib/Algebra/GroupWithZero/Int.lean + theorem WithZero.ofAdd_neg_one_pow_comm + theorem WithZero.ofAdd_zpow 2025-02-04 17:11:26 ee457ab feat(CategoryTheory): small classes of morphisms (#21411) This PR introduces a typeclass `IsSmall.{w} W` for `W : MorphismProperty C`. It means that the morphisms in `C` can be parametrized by a `w`-small type. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/MorphismProperty/IsSmall.lean + theorem CategoryTheory.MorphismProperty.isSmall_iff_eq_ofHoms 2025-02-04 16:47:21 f6c7ab8 feat(CategoryTheory): (co)limits of constant functors (#21412) Constant functors from connected categories have a limit and a colimit. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Limits/Connected.lean + def CategoryTheory.Limits.constCocone + def CategoryTheory.Limits.constCone + def CategoryTheory.Limits.isColimitConstCocone + def CategoryTheory.Limits.isLimitConstCone 2025-02-04 15:53:31 bb2bafa chore: rename isUnit_ofPowEqOne (#21407) Units.ofPowEqOne is not present in the signature. ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Commute/Units.lean + theorem IsUnit.of_pow_eq_one - theorem isUnit_ofPowEqOne Modified Mathlib/Algebra/Polynomial/UnitTrinomial.lean Modified Mathlib/Data/Int/GCD.lean Modified Mathlib/RingTheory/RootsOfUnity/PrimitiveRoots.lean 2025-02-04 15:53:30 abba725 chore: split mapDomain out of MonoidAlgebra.Defs (#21398) This is not the most inspired split, but it gets MonoidAlgebra.Defs below the longFile limit. If this provokes someone into working out how to do a better split, that's wonderful. :-) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/MonoidAlgebra/Basic.lean Modified Mathlib/Algebra/MonoidAlgebra/Defs.lean - def AddMonoidAlgebra.mapDomainRingHom - theorem AddMonoidAlgebra.mapDomain_mul - theorem AddMonoidAlgebra.mapDomain_one - theorem AddMonoidAlgebra.mapDomain_single - theorem AddMonoidAlgebra.mapDomain_sum - def MonoidAlgebra.mapDomainRingHom - theorem MonoidAlgebra.mapDomain_mul - theorem MonoidAlgebra.mapDomain_one - theorem MonoidAlgebra.mapDomain_sum Modified Mathlib/Algebra/MonoidAlgebra/Ideal.lean Added Mathlib/Algebra/MonoidAlgebra/MapDomain.lean + def AddMonoidAlgebra.mapDomainRingHom + theorem AddMonoidAlgebra.mapDomain_mul + theorem AddMonoidAlgebra.mapDomain_one + theorem AddMonoidAlgebra.mapDomain_single + theorem AddMonoidAlgebra.mapDomain_sum + def MonoidAlgebra.mapDomainRingHom + theorem MonoidAlgebra.mapDomain_mul + theorem MonoidAlgebra.mapDomain_one + theorem MonoidAlgebra.mapDomain_sum Modified Mathlib/Algebra/MonoidAlgebra/Support.lean Modified Mathlib/Algebra/Polynomial/Basic.lean 2025-02-04 15:53:29 70cd82c chore: generalise lemmas to `ENorm` spaces, part 1 (#21380) Extracted from #21375: these lemmas only change the assumption on the co-domain, but not any hypothesis. This continues the work started in #20121, #20122 and #21306: those PRs generalised the definitions resp. made lemma statements use the enorm. This PR starts generalising the lemmas using those definitions. This work is part of (and a necessary pre-requisite for) the Carleson project. ESTIMATED CHANGES Modified Mathlib/Analysis/NormedSpace/IndicatorFunction.lean + theorem enorm_indicator_le_enorm_self + theorem enorm_indicator_le_of_subset + theorem indicator_enorm_le_enorm_self Modified Mathlib/MeasureTheory/Function/L2Space.lean Modified Mathlib/MeasureTheory/Function/LpSeminorm/Basic.lean +/- theorem MeasureTheory.Memℒp.aestronglyMeasurable +/- theorem MeasureTheory.Memℒp.eLpNorm_lt_top +/- theorem MeasureTheory.Memℒp.eLpNorm_ne_top +/- theorem MeasureTheory.Memℒp.mono_measure +/- theorem MeasureTheory.Memℒp.restrict +/- theorem MeasureTheory.ae_le_eLpNormEssSup +/- theorem MeasureTheory.coe_nnnorm_ae_le_eLpNormEssSup +/- theorem MeasureTheory.eLpNorm'_const +/- theorem MeasureTheory.eLpNorm'_const_of_isProbabilityMeasure +/- theorem MeasureTheory.eLpNorm'_eq_lintegral_enorm +/- theorem MeasureTheory.eLpNorm'_exponent_zero +/- theorem MeasureTheory.eLpNorm'_measure_zero_of_exponent_zero +/- theorem MeasureTheory.eLpNorm'_measure_zero_of_neg +/- theorem MeasureTheory.eLpNorm'_measure_zero_of_pos +/- theorem MeasureTheory.eLpNorm'_mono_measure +/- theorem MeasureTheory.eLpNorm'_smul_measure +/- theorem MeasureTheory.eLpNormEssSup_const +/- theorem MeasureTheory.eLpNormEssSup_eq_essSup_enorm +/- theorem MeasureTheory.eLpNormEssSup_measure_zero +/- theorem MeasureTheory.eLpNormEssSup_mono_measure +/- theorem MeasureTheory.eLpNormEssSup_piecewise +/- theorem MeasureTheory.eLpNorm_const' +/- theorem MeasureTheory.eLpNorm_const +/- theorem MeasureTheory.eLpNorm_eq_eLpNorm' +/- theorem MeasureTheory.eLpNorm_eq_lintegral_rpow_enorm +/- theorem MeasureTheory.eLpNorm_exponent_top +/- theorem MeasureTheory.eLpNorm_exponent_zero +/- theorem MeasureTheory.eLpNorm_lt_top_iff_lintegral_rpow_nnnorm_lt_top +/- theorem MeasureTheory.eLpNorm_measure_zero +/- theorem MeasureTheory.eLpNorm_mono_measure +/- theorem MeasureTheory.eLpNorm_nnreal_eq_eLpNorm' +/- theorem MeasureTheory.eLpNorm_nnreal_eq_lintegral +/- theorem MeasureTheory.eLpNorm_nnreal_pow_eq_lintegral +/- theorem MeasureTheory.eLpNorm_one_eq_lintegral_enorm +/- theorem MeasureTheory.eLpNorm_top_piecewise +/- theorem MeasureTheory.lintegral_rpow_enorm_eq_rpow_eLpNorm' +/- theorem MeasureTheory.lintegral_rpow_enorm_lt_top_of_eLpNorm'_lt_top +/- theorem MeasureTheory.lintegral_rpow_enorm_lt_top_of_eLpNorm_lt_top +/- theorem MeasureTheory.meas_eLpNormEssSup_lt +/- theorem MeasureTheory.memℒp_measure_zero +/- theorem MeasureTheory.memℒp_zero_iff_aestronglyMeasurable 2025-02-04 15:53:27 4c7f669 chore: add `simp` to `Setoid.refl` (#21107) This is needed for #21086. ESTIMATED CHANGES Modified Mathlib/Data/Setoid/Basic.lean Modified Mathlib/NumberTheory/Padics/PadicNumbers.lean +/- theorem PadicSeq.norm_const Modified Mathlib/SetTheory/Game/PGame.lean 2025-02-04 15:13:06 9931616 chore: tidy various files (#21406) ESTIMATED CHANGES Modified Mathlib/Algebra/Lie/Engel.lean Modified Mathlib/Algebra/Lie/Nilpotent.lean Modified Mathlib/Algebra/Lie/Solvable.lean Modified Mathlib/Algebra/Order/Floor.lean Modified Mathlib/Algebra/Order/Round.lean Modified Mathlib/Algebra/Polynomial/Degree/Lemmas.lean Modified Mathlib/Algebra/Polynomial/Degree/Operations.lean Modified Mathlib/Algebra/Polynomial/Laurent.lean Modified Mathlib/AlgebraicGeometry/Morphisms/RingHomProperties.lean Modified Mathlib/Analysis/Calculus/Deriv/Prod.lean Modified Mathlib/Analysis/Calculus/FDeriv/Bilinear.lean Modified Mathlib/Analysis/Calculus/IteratedDeriv/Defs.lean Modified Mathlib/Analysis/SpecialFunctions/Integrals.lean Modified Mathlib/CategoryTheory/Comma/Final.lean Modified Mathlib/CategoryTheory/Filtered/CostructuredArrow.lean Modified Mathlib/Data/Complex/Exponential.lean Modified Mathlib/Data/Matroid/Basic.lean Modified Mathlib/Data/Matroid/Restrict.lean Modified Mathlib/FieldTheory/Galois/Infinite.lean Modified Mathlib/LinearAlgebra/Matrix/SchurComplement.lean Modified Mathlib/LinearAlgebra/PerfectPairing/Restrict.lean Modified Mathlib/MeasureTheory/Function/L2Space.lean Modified Mathlib/MeasureTheory/Integral/Bochner.lean Modified Mathlib/MeasureTheory/Integral/IntervalIntegral.lean Modified Mathlib/NumberTheory/Zsqrtd/QuadraticReciprocity.lean Modified Mathlib/Probability/Moments/IntegrableExpMul.lean Modified Mathlib/RingTheory/Binomial.lean Modified Mathlib/RingTheory/Ideal/Height.lean Modified Mathlib/RingTheory/Ideal/MinimalPrime.lean Modified Mathlib/SetTheory/Game/PGame.lean Modified Mathlib/Topology/Algebra/Module/ModuleTopology.lean 2025-02-04 15:13:05 b4c61c0 chore(Geometry/Manifold/IsManifold): split out material on extended charts (#21219) Fixes a `longFile` linter warning. A few lemmas about topological manifolds also used extended charts, hence were moved to the new file also. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Geometry/Manifold/ContMDiff/Defs.lean Modified Mathlib/Geometry/Manifold/IsManifold/Basic.lean - theorem ContinuousWithinAt.extChartAt_symm_preimage_inter_range_eventuallyEq - theorem ContinuousWithinAt.nhdsWithin_extChartAt_symm_preimage_inter_range - theorem FiniteDimensional.of_locallyCompact_manifold - theorem LocallyCompactSpace.of_locallyCompact_manifold - theorem Manifold.locallyCompact_of_finiteDimensional - theorem PartialHomeomorph.contDiffOn_extend_coord_change - theorem PartialHomeomorph.contDiffWithinAt_extend_coord_change' - theorem PartialHomeomorph.contDiffWithinAt_extend_coord_change - theorem PartialHomeomorph.continuousAt_extend - theorem PartialHomeomorph.continuousAt_extend_symm' - theorem PartialHomeomorph.continuousAt_extend_symm - theorem PartialHomeomorph.continuousOn_extend - theorem PartialHomeomorph.continuousOn_extend_symm - theorem PartialHomeomorph.continuousOn_writtenInExtend_iff - theorem PartialHomeomorph.continuousWithinAt_writtenInExtend_iff - def PartialHomeomorph.extend - theorem PartialHomeomorph.extend_coe - theorem PartialHomeomorph.extend_coe_symm - theorem PartialHomeomorph.extend_coord_change_source - theorem PartialHomeomorph.extend_coord_change_source_mem_nhdsWithin' - theorem PartialHomeomorph.extend_coord_change_source_mem_nhdsWithin - theorem PartialHomeomorph.extend_image_nhd_mem_nhds_of_boundaryless - theorem PartialHomeomorph.extend_image_nhd_mem_nhds_of_mem_interior_range - theorem PartialHomeomorph.extend_image_source_inter - theorem PartialHomeomorph.extend_left_inv' - theorem PartialHomeomorph.extend_left_inv - theorem PartialHomeomorph.extend_preimage_inter_eq - theorem PartialHomeomorph.extend_preimage_mem_nhds - theorem PartialHomeomorph.extend_preimage_mem_nhdsWithin - theorem PartialHomeomorph.extend_source - theorem PartialHomeomorph.extend_source_mem_nhds - theorem PartialHomeomorph.extend_source_mem_nhdsWithin - theorem PartialHomeomorph.extend_symm_continuousWithinAt_comp_right_iff - theorem PartialHomeomorph.extend_symm_preimage_inter_range_eventuallyEq - theorem PartialHomeomorph.extend_symm_preimage_inter_range_eventuallyEq_aux - theorem PartialHomeomorph.extend_target' - theorem PartialHomeomorph.extend_target - theorem PartialHomeomorph.extend_target_eventuallyEq - theorem PartialHomeomorph.extend_target_mem_nhdsWithin - theorem PartialHomeomorph.extend_target_subset_range - theorem PartialHomeomorph.interior_extend_target_subset_interior_range - theorem PartialHomeomorph.isOpen_extend_preimage' - theorem PartialHomeomorph.isOpen_extend_preimage - theorem PartialHomeomorph.isOpen_extend_source - theorem PartialHomeomorph.isOpen_extend_target - theorem PartialHomeomorph.map_extend_nhds - theorem PartialHomeomorph.map_extend_nhdsWithin - theorem PartialHomeomorph.map_extend_nhdsWithin_eq_image - theorem PartialHomeomorph.map_extend_nhdsWithin_eq_image_of_subset - theorem PartialHomeomorph.map_extend_nhds_of_boundaryless - theorem PartialHomeomorph.map_extend_nhds_of_mem_interior_range - theorem PartialHomeomorph.map_extend_symm_nhdsWithin - theorem PartialHomeomorph.map_extend_symm_nhdsWithin_range - theorem PartialHomeomorph.mapsTo_extend - theorem PartialHomeomorph.mem_interior_extend_target - theorem PartialHomeomorph.nhdsWithin_extend_target_eq - theorem PartialHomeomorph.tendsto_extend_comp_iff - theorem contDiffOn_ext_coord_change - theorem contDiffWithinAt_ext_coord_change - theorem continuousAt_extChartAt' - theorem continuousAt_extChartAt - theorem continuousAt_extChartAt_symm'' - theorem continuousAt_extChartAt_symm' - theorem continuousAt_extChartAt_symm - theorem continuousOn_extChartAt - theorem continuousOn_extChartAt_symm - def extChartAt - theorem extChartAt_coe - theorem extChartAt_coe_symm - theorem extChartAt_comp - theorem extChartAt_image_nhd_mem_nhds_of_boundaryless - theorem extChartAt_image_nhd_mem_nhds_of_mem_interior_range - theorem extChartAt_mem_closure_interior - theorem extChartAt_model_space_eq_id - theorem extChartAt_preimage_inter_eq - theorem extChartAt_preimage_mem_nhds' - theorem extChartAt_preimage_mem_nhds - theorem extChartAt_preimage_mem_nhdsWithin' - theorem extChartAt_preimage_mem_nhdsWithin - theorem extChartAt_prod - theorem extChartAt_self_apply - theorem extChartAt_self_eq - theorem extChartAt_source - theorem extChartAt_source_mem_nhds' - theorem extChartAt_source_mem_nhds - theorem extChartAt_source_mem_nhdsWithin' - theorem extChartAt_source_mem_nhdsWithin - theorem extChartAt_target - theorem extChartAt_target_eventuallyEq' - theorem extChartAt_target_eventuallyEq - theorem extChartAt_target_eventuallyEq_of_mem - theorem extChartAt_target_mem_nhds' - theorem extChartAt_target_mem_nhds - theorem extChartAt_target_mem_nhdsWithin' - theorem extChartAt_target_mem_nhdsWithin - theorem extChartAt_target_mem_nhdsWithin_of_mem - theorem extChartAt_target_subset_closure_interior - theorem extChartAt_target_subset_range - theorem extChartAt_target_union_compl_range_mem_nhds_of_mem - theorem extChartAt_to_inv - theorem ext_chart_model_space_apply - theorem ext_coord_change_source - theorem interior_extChartAt_target_nonempty - theorem isOpen_extChartAt_preimage' - theorem isOpen_extChartAt_preimage - theorem isOpen_extChartAt_source - theorem isOpen_extChartAt_target - theorem map_extChartAt_nhds' - theorem map_extChartAt_nhds - theorem map_extChartAt_nhdsWithin' - theorem map_extChartAt_nhdsWithin - theorem map_extChartAt_nhdsWithin_eq_image' - theorem map_extChartAt_nhdsWithin_eq_image - theorem map_extChartAt_nhds_of_boundaryless - theorem map_extChartAt_symm_nhdsWithin' - theorem map_extChartAt_symm_nhdsWithin - theorem map_extChartAt_symm_nhdsWithin_range' - theorem map_extChartAt_symm_nhdsWithin_range - theorem mapsTo_extChartAt - theorem mem_extChartAt_source - theorem mem_extChartAt_target - theorem nhdsWithin_extChartAt_target_eq' - theorem nhdsWithin_extChartAt_target_eq - theorem nhdsWithin_extChartAt_target_eq_of_mem - theorem uniqueDiffOn_extChartAt_target - theorem uniqueDiffWithinAt_extChartAt_target - def writtenInExtChartAt - theorem writtenInExtChartAt_chartAt - theorem writtenInExtChartAt_chartAt_comp - theorem writtenInExtChartAt_chartAt_symm - theorem writtenInExtChartAt_chartAt_symm_comp - theorem writtenInExtChartAt_extChartAt - theorem writtenInExtChartAt_extChartAt_symm Added Mathlib/Geometry/Manifold/IsManifold/ExtChartAt.lean + theorem ContinuousWithinAt.extChartAt_symm_preimage_inter_range_eventuallyEq + theorem ContinuousWithinAt.nhdsWithin_extChartAt_symm_preimage_inter_range + theorem FiniteDimensional.of_locallyCompact_manifold + theorem LocallyCompactSpace.of_locallyCompact_manifold + theorem Manifold.locallyCompact_of_finiteDimensional + theorem PartialHomeomorph.contDiffOn_extend_coord_change + theorem PartialHomeomorph.contDiffWithinAt_extend_coord_change' + theorem PartialHomeomorph.contDiffWithinAt_extend_coord_change + theorem PartialHomeomorph.continuousAt_extend + theorem PartialHomeomorph.continuousAt_extend_symm' + theorem PartialHomeomorph.continuousAt_extend_symm + theorem PartialHomeomorph.continuousOn_extend + theorem PartialHomeomorph.continuousOn_extend_symm + theorem PartialHomeomorph.continuousOn_writtenInExtend_iff + theorem PartialHomeomorph.continuousWithinAt_writtenInExtend_iff + def PartialHomeomorph.extend + theorem PartialHomeomorph.extend_coe + theorem PartialHomeomorph.extend_coe_symm + theorem PartialHomeomorph.extend_coord_change_source + theorem PartialHomeomorph.extend_coord_change_source_mem_nhdsWithin' + theorem PartialHomeomorph.extend_coord_change_source_mem_nhdsWithin + theorem PartialHomeomorph.extend_image_nhd_mem_nhds_of_boundaryless + theorem PartialHomeomorph.extend_image_nhd_mem_nhds_of_mem_interior_range + theorem PartialHomeomorph.extend_image_source_inter + theorem PartialHomeomorph.extend_left_inv' + theorem PartialHomeomorph.extend_left_inv + theorem PartialHomeomorph.extend_preimage_inter_eq + theorem PartialHomeomorph.extend_preimage_mem_nhds + theorem PartialHomeomorph.extend_preimage_mem_nhdsWithin + theorem PartialHomeomorph.extend_source + theorem PartialHomeomorph.extend_source_mem_nhds + theorem PartialHomeomorph.extend_source_mem_nhdsWithin + theorem PartialHomeomorph.extend_symm_continuousWithinAt_comp_right_iff + theorem PartialHomeomorph.extend_symm_preimage_inter_range_eventuallyEq + theorem PartialHomeomorph.extend_symm_preimage_inter_range_eventuallyEq_aux + theorem PartialHomeomorph.extend_target' + theorem PartialHomeomorph.extend_target + theorem PartialHomeomorph.extend_target_eventuallyEq + theorem PartialHomeomorph.extend_target_mem_nhdsWithin + theorem PartialHomeomorph.extend_target_subset_range + theorem PartialHomeomorph.interior_extend_target_subset_interior_range + theorem PartialHomeomorph.isOpen_extend_preimage' + theorem PartialHomeomorph.isOpen_extend_preimage + theorem PartialHomeomorph.isOpen_extend_source + theorem PartialHomeomorph.isOpen_extend_target + theorem PartialHomeomorph.map_extend_nhds + theorem PartialHomeomorph.map_extend_nhdsWithin + theorem PartialHomeomorph.map_extend_nhdsWithin_eq_image + theorem PartialHomeomorph.map_extend_nhdsWithin_eq_image_of_subset + theorem PartialHomeomorph.map_extend_nhds_of_boundaryless + theorem PartialHomeomorph.map_extend_nhds_of_mem_interior_range + theorem PartialHomeomorph.map_extend_symm_nhdsWithin + theorem PartialHomeomorph.map_extend_symm_nhdsWithin_range + theorem PartialHomeomorph.mapsTo_extend + theorem PartialHomeomorph.mem_interior_extend_target + theorem PartialHomeomorph.nhdsWithin_extend_target_eq + theorem PartialHomeomorph.tendsto_extend_comp_iff + theorem contDiffOn_ext_coord_change + theorem contDiffWithinAt_ext_coord_change + theorem continuousAt_extChartAt' + theorem continuousAt_extChartAt + theorem continuousAt_extChartAt_symm'' + theorem continuousAt_extChartAt_symm' + theorem continuousAt_extChartAt_symm + theorem continuousOn_extChartAt + theorem continuousOn_extChartAt_symm + def extChartAt + theorem extChartAt_coe + theorem extChartAt_coe_symm + theorem extChartAt_comp + theorem extChartAt_image_nhd_mem_nhds_of_boundaryless + theorem extChartAt_image_nhd_mem_nhds_of_mem_interior_range + theorem extChartAt_mem_closure_interior + theorem extChartAt_model_space_eq_id + theorem extChartAt_preimage_inter_eq + theorem extChartAt_preimage_mem_nhds' + theorem extChartAt_preimage_mem_nhds + theorem extChartAt_preimage_mem_nhdsWithin' + theorem extChartAt_preimage_mem_nhdsWithin + theorem extChartAt_prod + theorem extChartAt_self_apply + theorem extChartAt_self_eq + theorem extChartAt_source + theorem extChartAt_source_mem_nhds' + theorem extChartAt_source_mem_nhds + theorem extChartAt_source_mem_nhdsWithin' + theorem extChartAt_source_mem_nhdsWithin + theorem extChartAt_target + theorem extChartAt_target_eventuallyEq' + theorem extChartAt_target_eventuallyEq + theorem extChartAt_target_eventuallyEq_of_mem + theorem extChartAt_target_mem_nhds' + theorem extChartAt_target_mem_nhds + theorem extChartAt_target_mem_nhdsWithin' + theorem extChartAt_target_mem_nhdsWithin + theorem extChartAt_target_mem_nhdsWithin_of_mem + theorem extChartAt_target_subset_closure_interior + theorem extChartAt_target_subset_range + theorem extChartAt_target_union_compl_range_mem_nhds_of_mem + theorem extChartAt_to_inv + theorem ext_chart_model_space_apply + theorem ext_coord_change_source + theorem interior_extChartAt_target_nonempty + theorem isOpen_extChartAt_preimage' + theorem isOpen_extChartAt_preimage + theorem isOpen_extChartAt_source + theorem isOpen_extChartAt_target + theorem map_extChartAt_nhds' + theorem map_extChartAt_nhds + theorem map_extChartAt_nhdsWithin' + theorem map_extChartAt_nhdsWithin + theorem map_extChartAt_nhdsWithin_eq_image' + theorem map_extChartAt_nhdsWithin_eq_image + theorem map_extChartAt_nhds_of_boundaryless + theorem map_extChartAt_symm_nhdsWithin' + theorem map_extChartAt_symm_nhdsWithin + theorem map_extChartAt_symm_nhdsWithin_range' + theorem map_extChartAt_symm_nhdsWithin_range + theorem mapsTo_extChartAt + theorem mem_extChartAt_source + theorem mem_extChartAt_target + theorem nhdsWithin_extChartAt_target_eq' + theorem nhdsWithin_extChartAt_target_eq + theorem nhdsWithin_extChartAt_target_eq_of_mem + theorem uniqueDiffOn_extChartAt_target + theorem uniqueDiffWithinAt_extChartAt_target + def writtenInExtChartAt + theorem writtenInExtChartAt_chartAt + theorem writtenInExtChartAt_chartAt_comp + theorem writtenInExtChartAt_chartAt_symm + theorem writtenInExtChartAt_chartAt_symm_comp + theorem writtenInExtChartAt_extChartAt + theorem writtenInExtChartAt_extChartAt_symm Modified Mathlib/Geometry/Manifold/IsManifold/InteriorBoundary.lean Modified Mathlib/Geometry/Manifold/MFDeriv/Defs.lean 2025-02-04 15:13:04 1cca6b8 refactor: introduce `Ideal.IsTwoSided` class for quotients of noncommutative rings (#17930) ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/Operations.lean Modified Mathlib/Algebra/GroupWithZero/Basic.lean + theorem exists_right_inv_of_exists_left_inv Modified Mathlib/Algebra/Module/LinearMap/Defs.lean + theorem RingHom.coe_toSemilinearMap Modified Mathlib/Algebra/Module/Torsion.lean +/- theorem Module.IsTorsionBy.mk_smul +/- theorem Module.IsTorsionBySet.mk_smul +/- def Module.IsTorsionBySet.module + def Module.IsTorsionBySet.semilinearMap +/- theorem Module.Quotient.mk_smul_mk +/- theorem Module.isTorsionBySet_annihilator + theorem Module.isTorsionBySet_iff_subset_annihilator + theorem Module.isTorsionBySet_of_subset + theorem Module.isTorsionBy_iff_mem_annihilator Modified Mathlib/Algebra/RingQuot.lean Modified Mathlib/AlgebraicGeometry/PointsPi.lean Modified Mathlib/FieldTheory/LinearDisjoint.lean Modified Mathlib/LinearAlgebra/Quotient/Defs.lean + theorem Submodule.Quotient.subsingleton_iff Modified Mathlib/NumberTheory/Padics/RingHoms.lean +/- def PadicInt.residueField Modified Mathlib/RingTheory/AdicCompletion/Algebra.lean Modified Mathlib/RingTheory/Ideal/Basic.lean Modified Mathlib/RingTheory/Ideal/Colon.lean +/- theorem Ideal.annihilator_quotient +/- theorem Submodule.colon_top Modified Mathlib/RingTheory/Ideal/Defs.lean +/- theorem Ideal.mul_mem_right +/- theorem Ideal.mul_sub_mul_mem Modified Mathlib/RingTheory/Ideal/Lattice.lean Modified Mathlib/RingTheory/Ideal/Maps.lean Modified Mathlib/RingTheory/Ideal/Maximal.lean Modified Mathlib/RingTheory/Ideal/Operations.lean +/- theorem Ideal.mul_le_right +/- theorem Ideal.mul_right_self_sup +/- theorem Ideal.sup_mul_right_self Modified Mathlib/RingTheory/Ideal/Quotient/Basic.lean +/- theorem Finite.of_finite_quot_finite_ideal +/- theorem Ideal.Quotient.eq_zero_iff_dvd +/- theorem Ideal.Quotient.exists_inv +/- theorem Ideal.Quotient.isDomain_iff_prime +/- theorem Ideal.Quotient.maximal_ideal_iff_isField_quotient +/- theorem Ideal.Quotient.maximal_of_isField +/- theorem Ideal.Quotient.mk_singleton_self +/- theorem Ideal.Quotient.subsingleton_iff +/- theorem Ideal.Quotient.zero_eq_one_iff +/- theorem Ideal.Quotient.zero_ne_one_iff +/- theorem Ideal.map_pi +/- theorem Ideal.univ_eq_iUnion_image_add Modified Mathlib/RingTheory/Ideal/Quotient/Defs.lean +/- theorem Ideal.Quotient.eq_zero_iff_mem +/- def Ideal.Quotient.factor +/- theorem Ideal.Quotient.factor_comp_mk +/- theorem Ideal.Quotient.factor_mk +/- def Ideal.Quotient.lift +/- theorem Ideal.Quotient.lift_mk +/- theorem Ideal.Quotient.lift_surjective_of_surjective +/- def Ideal.Quotient.mk +/- theorem Ideal.Quotient.quotient_ring_saturate +/- def Ideal.quotEquivOfEq +/- theorem Ideal.quotEquivOfEq_mk +/- theorem Ideal.quotEquivOfEq_symm Modified Mathlib/RingTheory/Ideal/Quotient/Nilpotent.lean Modified Mathlib/RingTheory/Ideal/Quotient/Operations.lean +/- theorem Ideal.Quotient.algHom_ext +/- theorem Ideal.Quotient.alg_map_eq +/- theorem Ideal.Quotient.algebraMap_eq +/- def Ideal.Quotient.liftₐ +/- theorem Ideal.Quotient.liftₐ_apply +/- theorem Ideal.Quotient.liftₐ_comp +/- theorem Ideal.Quotient.mk_algebraMap +/- theorem Ideal.Quotient.mk_comp_algebraMap +/- def Ideal.Quotient.mkₐ +/- theorem Ideal.Quotient.mkₐ_eq_mk +/- theorem Ideal.Quotient.mkₐ_ker +/- theorem Ideal.Quotient.mkₐ_surjective +/- theorem Ideal.Quotient.mkₐ_toRingHom +/- theorem Ideal.algebraMap_quotient_injective +/- theorem Ideal.bot_quotient_isMaximal_iff +/- theorem Ideal.comap_map_mk +/- theorem Ideal.comp_quotientMap_eq_of_comp_eq +/- theorem Ideal.exists_forall_sub_mem_ideal +/- theorem Ideal.injective_lift_iff +/- theorem Ideal.ker_Pi_Quotient_mk +/- theorem Ideal.ker_quotientMap_mk +/- theorem Ideal.ker_quotient_lift +/- theorem Ideal.map_mk_eq_bot_of_le +/- theorem Ideal.map_quotient_self +/- theorem Ideal.mem_quotient_iff_mem +/- theorem Ideal.mem_quotient_iff_mem_sup +/- theorem Ideal.mk_ker +/- theorem Ideal.pi_quotient_surjective +/- def Ideal.quotientEquiv +/- def Ideal.quotientEquivAlg +/- def Ideal.quotientEquivAlgOfEq +/- theorem Ideal.quotientEquivAlgOfEq_mk +/- theorem Ideal.quotientEquivAlgOfEq_symm +/- theorem Ideal.quotientEquiv_mk +/- theorem Ideal.quotientEquiv_symm_mk +/- def Ideal.quotientInfToPiQuotient +/- theorem Ideal.quotientInfToPiQuotient_inj +/- theorem Ideal.quotientInfToPiQuotient_mk' +/- theorem Ideal.quotientInfToPiQuotient_mk +/- theorem Ideal.quotientInfToPiQuotient_surj +/- def Ideal.quotientMap +/- theorem Ideal.quotientMap_algebraMap +/- theorem Ideal.quotientMap_comp_mk +/- theorem Ideal.quotientMap_injective' +/- theorem Ideal.quotientMap_injective +/- theorem Ideal.quotientMap_mk +/- theorem Ideal.quotientMap_surjective +/- def Ideal.quotientMapₐ +/- theorem Ideal.quotient_map_comp_mkₐ +/- theorem Ideal.quotient_map_mkₐ +/- theorem RingHom.lift_injective_of_ker_le_ideal Modified Mathlib/RingTheory/Jacobson/Ring.lean Modified Mathlib/RingTheory/Polynomial/Quotient.lean Modified docs/overview.yaml Modified docs/undergrad.yaml 2025-02-04 15:00:04 86986e5 chore(Algebra/Category/ModuleCat): delete `ModuleCat.hasForgetModuleCat` (#21425) I was looking through the remaining `HasForget` instances and noticed we forgot to delete this one when switching to `ConcreteCategory`. We can simply delete it. ESTIMATED CHANGES Modified Mathlib/Algebra/Category/ModuleCat/Basic.lean 2025-02-04 14:13:48 cf27f6e feat(RingTheory): unramified iff `κ(q)/κ(p)` is separable and `pS_q = qS_q` (#20690) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/RingTheory/Artinian/Ring.lean + theorem IsArtinianRing.isNilpotent_nilradical + theorem IsArtinianRing.jacobson_eq_radical Modified Mathlib/RingTheory/EssentialFiniteness.lean Modified Mathlib/RingTheory/LocalRing/ResidueField/Basic.lean +/- theorem IsLocalRing.ResidueField.finite_of_finite Modified Mathlib/RingTheory/Unramified/Basic.lean Modified Mathlib/RingTheory/Unramified/Field.lean Added Mathlib/RingTheory/Unramified/LocalRing.lean + theorem Algebra.FormallyUnramified.iff_map_maximalIdeal_eq + theorem Algebra.FormallyUnramified.isField_quotient_map_maximalIdeal + theorem Algebra.FormallyUnramified.map_maximalIdeal + theorem Algebra.FormallyUnramified.of_map_maximalIdeal + theorem Algebra.isUnramifiedAt_iff_map_eq Modified Mathlib/RingTheory/Unramified/Locus.lean 2025-02-04 13:07:49 fc56720 doc(Order/Heyting/Basic): Coheyting difference is not right adjoint but left adjoint (#21418) The difference operation of a coheyting algebra is left adjoint to `(· ⊔ a)` (not right adjoint). Source: [nlab](https://ncatlab.org/nlab/show/co-Heyting+algebra) in section 5. ESTIMATED CHANGES Modified Mathlib/Order/Heyting/Basic.lean 2025-02-04 12:18:33 759db60 chore: move ProofWidgets to v0.0.51 (#21416) If ProofWidgets is not pinned to a release tag, we will probably get `npm` errors when its `main` branch moves on. ESTIMATED CHANGES Modified lakefile.lean 2025-02-04 10:52:01 415af18 chore: rename mem_nonZeroDivisor_of_injective and comap_nonZeroDivisor_le_of_injective (#21408) ESTIMATED CHANGES Modified Mathlib/Algebra/GroupWithZero/NonZeroDivisors.lean - theorem comap_nonZeroDivisor_le_of_injective + theorem comap_nonZeroDivisors_le_of_injective - theorem mem_nonZeroDivisor_of_injective + theorem mem_nonZeroDivisors_of_injective Modified Mathlib/RingTheory/Artinian/Algebra.lean Modified Mathlib/RingTheory/LocalRing/Subring.lean 2025-02-04 09:36:11 79ad6ef feat: drop ordering assumption in `RootPairing.coxeterWeight_mem_set_of_isCrystallographic` (#21122) Some of the required changes also allow us to unify (and generalise) the `RootPairing.IsAnisotropic` instances. The means of obtaining these generalisations is to work with a root pairing with coefficients in `R` taking values in an ordered subring `S` (in the sense of `RootPairing.IsValuedIn`). This allows us to avoid assuming `R` is ordered, and includes the important case of a crystallographic pairing in characteristic zero. The cost of this is that various definitions and lemmas need to be generalised to allow room for the subring `S` (implemented using an injective `algebra S R` structure). In particular the definition `RootPairing.IsRootPositive` becomes `RootPairing.RootPositiveForm` and has its API substantially reworked. An alternative approach to the headline result (taken in the informal literature) is to invoke `RootPairing.restrictScalarsRat` but this only works with field coefficients and does not provide the same unifications. We also repair some doc strings (which did not have fully-qualified names, or had names which had drifted from the code). ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/BilinearMap.lean + theorem LinearMap.eq_restrictScalarsRange_iff Modified Mathlib/LinearAlgebra/RootSystem/CartanMatrix.lean Modified Mathlib/LinearAlgebra/RootSystem/Defs.lean + theorem RootPairing.coroot'_apply_apply_mem_of_mem_span + theorem RootPairing.pairingIn_same + theorem RootPairing.root'_apply_apply_mem_of_mem_span Modified Mathlib/LinearAlgebra/RootSystem/Finite/CanonicalBilinear.lean + theorem RootPairing.coxeterWeightIn_le_four + theorem RootPairing.coxeterWeightIn_mem_set_of_isCrystallographic - theorem RootPairing.coxeterWeight_le_four +/- theorem RootPairing.coxeterWeight_mem_set_of_isCrystallographic + theorem RootPairing.exists_ge_zero_eq_rootForm + theorem RootPairing.four_nsmul_coPolarization_compl_polarization_apply_root + def RootPairing.posRootForm - theorem RootPairing.rootForm_root_self_pos - theorem RootPairing.rootForm_self_eq_zero_iff - theorem RootPairing.rootForm_self_non_neg Modified Mathlib/LinearAlgebra/RootSystem/Finite/Nondegenerate.lean + theorem RootPairing.isAnisotropic_of_isValuedIn + theorem RootPairing.rootForm_self_eq_zero_iff + theorem RootPairing.zero_le_rootForm Modified Mathlib/LinearAlgebra/RootSystem/RootPositive.lean + theorem RootPairing.RootPositiveForm.algebraMap_apply_eq_form_iff + theorem RootPairing.RootPositiveForm.algebraMap_posForm + theorem RootPairing.RootPositiveForm.form_apply_root_ne_zero + theorem RootPairing.RootPositiveForm.isSymm_posForm + def RootPairing.RootPositiveForm.posForm + theorem RootPairing.RootPositiveForm.two_mul_apply_root_root + theorem RootPairing.RootPositiveForm.zero_lt_apply_root_root_iff + theorem RootPairing.RootPositiveForm.zero_lt_posForm_apply_root + theorem RootPairing.RootPositiveForm.zero_lt_posForm_iff + structure RootPairing.RootPositiveForm +/- theorem RootPairing.apply_root_root_zero_iff - theorem RootPairing.coxeterWeight_non_neg + theorem RootPairing.coxeterWeight_nonneg +/- theorem RootPairing.coxeterWeight_zero_iff_isOrthogonal +/- theorem RootPairing.pairing_zero_iff - theorem RootPairing.two_mul_apply_root_root + theorem RootPairing.two_mul_apply_root_root_of_isOrthogonal - theorem RootPairing.zero_lt_apply_root_root_iff + theorem RootPairing.zero_lt_pairingIn_iff - theorem RootPairing.zero_lt_pairing_iff 2025-02-04 09:16:25 2dd5bb2 feat(AlgebraicGeometry): the diagonal of an unramified morphism is an open immersion (#21386) ESTIMATED CHANGES Modified Mathlib/AlgebraicGeometry/Morphisms/Basic.lean + theorem AlgebraicGeometry.IsLocalAtTarget.of_range_subset_iSup Modified Mathlib/AlgebraicGeometry/Morphisms/FormallyUnramified.lean + theorem AlgebraicGeometry.FormallyUnramified.AlgebraicGeometry.FormallyUnramified.isOpenImmersion_diagonal Modified Mathlib/AlgebraicGeometry/Restrict.lean + theorem AlgebraicGeometry.Scheme.Opens.isoOfLE_hom_ι + theorem AlgebraicGeometry.Scheme.Opens.isoOfLE_inv_ι 2025-02-04 08:33:47 644048a feat(Data/LinearIndependent): iff versions of smul action on independent sets (#21383) We add iff versions of `LinearIndependent.group_smul` and `LinearIndependent.units_smul`, which can be simp. ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/LinearIndependent.lean + theorem LinearIndependent.group_smul_iff + theorem LinearIndependent.units_smul_iff 2025-02-04 08:24:45 b08254c chore(Combinatorics/SimpleGraph): Fix `hadj` naming (#21389) ESTIMATED CHANGES Modified Mathlib/Combinatorics/SimpleGraph/Circulant.lean Modified Mathlib/Combinatorics/SimpleGraph/ConcreteColorings.lean +/- theorem SimpleGraph.two_le_chromaticNumber_of_adj 2025-02-04 07:19:26 e13a712 chore: rename AnalyticAt.order_neq_top_iff (#21388) Per the naming convention, the symbol `≠` should be transcribed as "ne", not "neq". ESTIMATED CHANGES Modified Mathlib/Analysis/Analytic/IsolatedZeros.lean + theorem AnalyticAt.order_ne_top_iff - theorem AnalyticAt.order_neq_top_iff 2025-02-04 06:24:02 a42d40c fix: bug in daily.yml (#21401) The daily.yml workflow, which is responsible for running `lean4checker` on nightly and master, was broken. ESTIMATED CHANGES Modified .github/workflows/daily.yml 2025-02-04 06:24:00 7fb58b4 chore: remove `@[simp]` from `CategoryTheory.Discrete.functor_map` (#21392) the simpNF complained about this in my other PR. indeed, the same simplification can be done with ``` simp only [Discrete.functor_obj_eq_as, Discrete.functor_map_id] ``` ESTIMATED CHANGES Modified Mathlib/CategoryTheory/DiscreteCategory.lean 2025-02-04 06:23:59 e8a5fb3 chore(Algebra/PUnitInstances): generalise universes (#21381) Generalise these shortcut instances to arbitrary universes rather than restricting them to `PUnit.{1}`. As a consequence, the following 8 lemmas are also universe generalised. ESTIMATED CHANGES Modified Mathlib/Algebra/PUnitInstances/Algebra.lean 2025-02-04 06:23:58 517102f feat(RingTheory/PowerSeries): describe when power series map is zero (#21379) Add two simple lemmas to describe when the `map` of a (mv) power series is zero. ESTIMATED CHANGES Modified Mathlib/RingTheory/MvPowerSeries/Basic.lean + theorem MvPowerSeries.map_eq_zero Modified Mathlib/RingTheory/PowerSeries/Basic.lean + theorem PowerSeries.map_eq_zero 2025-02-04 06:23:57 02696de feat(Tactic/Linter): options to in/exclude definitions and private decls (#21374) Zulip thread: https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/late.20imports Two new options: * `linter.upstreamableDecl.defs` (default: `false`): warn if a definition can be upstreamed * `linter.upstreamableDecl.private` (default: `false`): warn if a private declaration can be upstreamed ESTIMATED CHANGES Modified Mathlib/Tactic/Linter/UpstreamableDecl.lean Modified MathlibTest/MinImports.lean + inductive DontProposeToMoveThisInductive + structure DontProposeToMoveThisStructure - def def_with_multiple_dependencies + def dont_propose_to_move_this_def + theorem theorem_with_multiple_dependencies 2025-02-04 06:23:56 cfa0cb2 feat: the prime spectrum is quasi-separated (#21362) Also golf the `QuasiSeparatedSpace` instance for affine schemes (the common proof was abstracted out in #21325) and prove that open sets are retrocompact iff they are compact (this should eventually become a lemma about spectral spaces). ESTIMATED CHANGES Modified Mathlib/AlgebraicGeometry/Morphisms/QuasiSeparated.lean Modified Mathlib/RingTheory/Spectrum/Prime/Topology.lean + theorem PrimeSpectrum.isRetrocompact_iff Modified Mathlib/Topology/QuasiSeparated.lean + theorem quasiSeparatedSpace_congr 2025-02-04 06:23:54 62d4aef feat(AlgebraicGeometry): ideal sheaf data on a scheme (#21052) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/AlgebraicGeometry/AffineScheme.lean + theorem AlgebraicGeometry.IsAffineOpen.ideal_ext_iff + theorem AlgebraicGeometry.IsAffineOpen.ideal_le_iff + theorem AlgebraicGeometry.IsAffineOpen.mem_ideal_iff + theorem AlgebraicGeometry.Scheme.affineBasicOpen_le Added Mathlib/AlgebraicGeometry/IdealSheaf.lean + def AlgebraicGeometry.Scheme.IdealSheafData.equivOfIsAffine + theorem AlgebraicGeometry.Scheme.IdealSheafData.ext_of_isAffine + theorem AlgebraicGeometry.Scheme.IdealSheafData.ideal_biInf + theorem AlgebraicGeometry.Scheme.IdealSheafData.ideal_bot + theorem AlgebraicGeometry.Scheme.IdealSheafData.ideal_iInf + theorem AlgebraicGeometry.Scheme.IdealSheafData.ideal_iSup + theorem AlgebraicGeometry.Scheme.IdealSheafData.ideal_inf + theorem AlgebraicGeometry.Scheme.IdealSheafData.ideal_le_comap_ideal + theorem AlgebraicGeometry.Scheme.IdealSheafData.ideal_mono + theorem AlgebraicGeometry.Scheme.IdealSheafData.ideal_ofIdeals_le + theorem AlgebraicGeometry.Scheme.IdealSheafData.ideal_sSup + theorem AlgebraicGeometry.Scheme.IdealSheafData.ideal_sup + theorem AlgebraicGeometry.Scheme.IdealSheafData.ideal_top + theorem AlgebraicGeometry.Scheme.IdealSheafData.isClosed_support + theorem AlgebraicGeometry.Scheme.IdealSheafData.le_def + theorem AlgebraicGeometry.Scheme.IdealSheafData.le_ofIdeals_iff + theorem AlgebraicGeometry.Scheme.IdealSheafData.le_of_isAffine + theorem AlgebraicGeometry.Scheme.IdealSheafData.map_ideal' + theorem AlgebraicGeometry.Scheme.IdealSheafData.map_ideal + theorem AlgebraicGeometry.Scheme.IdealSheafData.mem_support_iff + theorem AlgebraicGeometry.Scheme.IdealSheafData.mem_support_iff_of_mem + def AlgebraicGeometry.Scheme.IdealSheafData.ofIdealTop + def AlgebraicGeometry.Scheme.IdealSheafData.ofIdeals + theorem AlgebraicGeometry.Scheme.IdealSheafData.ofIdeals_ideal + theorem AlgebraicGeometry.Scheme.IdealSheafData.ofIdeals_mono + theorem AlgebraicGeometry.Scheme.IdealSheafData.strictMono_ideal + def AlgebraicGeometry.Scheme.IdealSheafData.support + theorem AlgebraicGeometry.Scheme.IdealSheafData.support_antitone + theorem AlgebraicGeometry.Scheme.IdealSheafData.support_bot + theorem AlgebraicGeometry.Scheme.IdealSheafData.support_eq_empty_iff + theorem AlgebraicGeometry.Scheme.IdealSheafData.support_inter + theorem AlgebraicGeometry.Scheme.IdealSheafData.support_ofIdealTop + theorem AlgebraicGeometry.Scheme.IdealSheafData.support_subset_zeroLocus + theorem AlgebraicGeometry.Scheme.IdealSheafData.support_top + theorem AlgebraicGeometry.Scheme.IdealSheafData.zeroLocus_inter_subset_support + structure AlgebraicGeometry.Scheme.IdealSheafData Modified Mathlib/RingTheory/Localization/Ideal.lean + theorem IsLocalization.map_radical 2025-02-04 06:23:53 7e37e86 feat(CategoryTheory/Enriched): enrichement of functor categories over a functor category (#18976) Let `C` be a category that is enriched over a monoidal category `V` in such a way that the category structure and the enriched category structure are compatible. If `J` is a category and that `V` has certain limits, then the functor category `J ⥤ C` is enriched over `J ⥤ V`. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Enriched/FunctorCategory.lean + theorem CategoryTheory.Enriched.FunctorCategory.enrichedHom_condition' + theorem CategoryTheory.Enriched.FunctorCategory.functorEnriched_assoc + theorem CategoryTheory.Enriched.FunctorCategory.functorEnriched_comp_id + theorem CategoryTheory.Enriched.FunctorCategory.functorEnriched_id_comp + theorem CategoryTheory.Enriched.FunctorCategory.functorHomEquiv_comp + theorem CategoryTheory.Enriched.FunctorCategory.functorHomEquiv_id Modified Mathlib/CategoryTheory/Limits/IsLimit.lean + def CategoryTheory.Limits.IsLimit.homEquiv +/- def CategoryTheory.Limits.IsLimit.homIso 2025-02-04 06:00:23 d367533 feat(AlgebraicGeometry): integral = universally closed + affine (#19419) as a corollary, finite = proper + affine ESTIMATED CHANGES Modified Mathlib/Algebra/Category/Ring/Constructions.lean + theorem CommRingCat.isPushout_of_isPushout Modified Mathlib/Algebra/Polynomial/Eval/Defs.lean +/- theorem Polynomial.mapRingHom_comp_C Modified Mathlib/AlgebraicGeometry/Morphisms/Integral.lean + theorem AlgebraicGeometry.IsIntegralHom.SpecMap_iff + theorem AlgebraicGeometry.IsIntegralHom.eq_universallyClosed_inf_isAffineHom + theorem AlgebraicGeometry.IsIntegralHom.iff_universallyClosed_and_isAffineHom Modified Mathlib/AlgebraicGeometry/Morphisms/Proper.lean + theorem AlgebraicGeometry.IsFinite.eq_isProper_inf_isAffineHom + theorem AlgebraicGeometry.IsFinite.iff_isProper_and_isAffineHom Modified Mathlib/RingTheory/IsTensorProduct.lean + def Algebra.IsPushout.equiv + theorem Algebra.IsPushout.equiv_symm_algebraMap_left + theorem Algebra.IsPushout.equiv_symm_algebraMap_right + theorem Algebra.IsPushout.equiv_tmul Modified Mathlib/RingTheory/PolynomialAlgebra.lean + def Polynomial.algebra 2025-02-04 05:49:50 ea8848a chore: update Mathlib dependencies 2025-02-04 (#21400) This PR updates the Mathlib dependencies. ESTIMATED CHANGES Modified lake-manifest.json 2025-02-03 20:04:14 96a5ba5 refactor(CategoryTheory/SmallObject): generalization of the definitions (#20256) The ongoing definition of the iteration of a natural transformation `ε : 𝟭 C ⟶ F` (with `F : C ⥤ C`) is generalized to "successor structures" (which shall become a mathlibism), i.e. in a category `D`, this consists of a zeroth object `X₀`, a successor application `succ : D → D` and, for all `X : D`, a map `toSucc X : X → succ X` (which does not have to be natural: it is not always so in some applications). For such a `Φ : SuccStruct D`, if `J` is a well-ordered type, we define the `J`-th iteration of `Φ`. (In the case `J := ℕ`, this is the colimit of `succ (succ (succ (succ ... X₀)))`.) The iteration of a functor is a particular case of this constructor with `D := C ⥤ C`. As `toSucc` does not have to be natural in `X`, the caveat is that the proofs make extensive use of equalities of objects in `C` and `Arrow C`, while my previous construction used comparison isomorphisms. Nevertheless, the proofs look much more clean now. One of the reasons is that in the inductive construction (file `Iteration.Nonempty`), in the terms of data, we only need to provide a functor, and then all the fields are in `Prop`. (In the downstream API, we shall obviously use isomorphisms instead of equalities...) This PR supersedes #19264. The results are used in #20245 in order to get functorial factorizations in the small object argument. After refactoring my code, I found that this approach had already been used in 2018 by Reid Barton in his pioneering formalization work in Lean 3 towards the model category structure on topological spaces. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/CategoryTheory/SmallObject/Iteration/Basic.lean - def CategoryTheory.Functor.Iteration.Hom.comp - theorem CategoryTheory.Functor.Iteration.Hom.congr_app - theorem CategoryTheory.Functor.Iteration.Hom.ext' - def CategoryTheory.Functor.Iteration.Hom.id - structure CategoryTheory.Functor.Iteration.Hom - def CategoryTheory.Functor.Iteration.coconeOfLE - def CategoryTheory.Functor.Iteration.eval - theorem CategoryTheory.Functor.Iteration.mapSucc_eq - theorem CategoryTheory.Functor.Iteration.natTrans_comp - theorem CategoryTheory.Functor.Iteration.natTrans_id - theorem CategoryTheory.Functor.Iteration.natTrans_naturality - def CategoryTheory.Functor.Iteration.restrictionLE - theorem CategoryTheory.Functor.Iteration.restrictionLE_map - theorem CategoryTheory.Functor.Iteration.restrictionLE_obj - def CategoryTheory.Functor.Iteration.restrictionLT - theorem CategoryTheory.Functor.Iteration.restrictionLT_map - theorem CategoryTheory.Functor.Iteration.restrictionLT_obj - def CategoryTheory.Functor.Iteration.trunc - def CategoryTheory.Functor.Iteration.truncFunctor - theorem CategoryTheory.Functor.Iteration.truncFunctor_map_natTrans_app - structure CategoryTheory.Functor.Iteration + theorem CategoryTheory.SmallObject.SuccStruct.Iteration.arrow_mk_mapObj + theorem CategoryTheory.SmallObject.SuccStruct.Iteration.congr_arrowMap + theorem CategoryTheory.SmallObject.SuccStruct.Iteration.congr_map + theorem CategoryTheory.SmallObject.SuccStruct.Iteration.congr_obj + def CategoryTheory.SmallObject.SuccStruct.Iteration.mapObj + theorem CategoryTheory.SmallObject.SuccStruct.Iteration.mapObj_refl + theorem CategoryTheory.SmallObject.SuccStruct.Iteration.mapObj_trans + theorem CategoryTheory.SmallObject.SuccStruct.Iteration.obj_limit + theorem CategoryTheory.SmallObject.SuccStruct.Iteration.obj_succ + theorem CategoryTheory.SmallObject.SuccStruct.Iteration.prop_map_succ + theorem CategoryTheory.SmallObject.SuccStruct.Iteration.subsingleton.MapEq.src + theorem CategoryTheory.SmallObject.SuccStruct.Iteration.subsingleton.MapEq.tgt + theorem CategoryTheory.SmallObject.SuccStruct.Iteration.subsingleton.MapEq.w + def CategoryTheory.SmallObject.SuccStruct.Iteration.subsingleton.MapEq + theorem CategoryTheory.SmallObject.SuccStruct.Iteration.subsingleton.ext + theorem CategoryTheory.SmallObject.SuccStruct.Iteration.subsingleton.mapEq_refl + theorem CategoryTheory.SmallObject.SuccStruct.Iteration.subsingleton.mapEq_trans + def CategoryTheory.SmallObject.SuccStruct.Iteration.trunc + structure CategoryTheory.SmallObject.SuccStruct.Iteration + def CategoryTheory.SmallObject.SuccStruct.arrowMap + theorem CategoryTheory.SmallObject.SuccStruct.arrowMap_refl + theorem CategoryTheory.SmallObject.SuccStruct.arrowMap_restrictionLE + def CategoryTheory.SmallObject.SuccStruct.arrowSucc + theorem CategoryTheory.SmallObject.SuccStruct.arrowSucc_def + theorem CategoryTheory.SmallObject.SuccStruct.arrowι_def + def CategoryTheory.SmallObject.SuccStruct.ofNatTrans + def CategoryTheory.SmallObject.SuccStruct.prop + theorem CategoryTheory.SmallObject.SuccStruct.prop_iff + theorem CategoryTheory.SmallObject.SuccStruct.prop_toSucc + def CategoryTheory.SmallObject.SuccStruct.toSuccArrow + structure CategoryTheory.SmallObject.SuccStruct + def CategoryTheory.SmallObject.coconeOfLE + def CategoryTheory.SmallObject.restrictionLE + theorem CategoryTheory.SmallObject.restrictionLE_map + theorem CategoryTheory.SmallObject.restrictionLE_obj + def CategoryTheory.SmallObject.restrictionLT + theorem CategoryTheory.SmallObject.restrictionLT_map + theorem CategoryTheory.SmallObject.restrictionLT_obj Modified Mathlib/CategoryTheory/SmallObject/Iteration/ExtendToSucc.lean - def CategoryTheory.Functor.extendToSucc.map - theorem CategoryTheory.Functor.extendToSucc.map_comp - theorem CategoryTheory.Functor.extendToSucc.map_eq - theorem CategoryTheory.Functor.extendToSucc.map_id - theorem CategoryTheory.Functor.extendToSucc.map_self_succ - def CategoryTheory.Functor.extendToSucc.obj - def CategoryTheory.Functor.extendToSucc.objIso - def CategoryTheory.Functor.extendToSucc.objSuccIso - def CategoryTheory.Functor.extendToSucc - def CategoryTheory.Functor.extendToSuccObjIso - theorem CategoryTheory.Functor.extendToSuccObjIso_hom_naturality - def CategoryTheory.Functor.extendToSuccObjSuccIso - def CategoryTheory.Functor.extendToSuccRestrictionLEIso - theorem CategoryTheory.Functor.extendToSucc_map_le_succ - theorem CategoryTheory.Functor.extentToSucc_map + theorem CategoryTheory.SmallObject.SuccStruct.arrowMap_extendToSucc + theorem CategoryTheory.SmallObject.SuccStruct.arrowSucc_extendToSucc + def CategoryTheory.SmallObject.SuccStruct.extendToSucc.map + theorem CategoryTheory.SmallObject.SuccStruct.extendToSucc.map_comp + theorem CategoryTheory.SmallObject.SuccStruct.extendToSucc.map_eq + theorem CategoryTheory.SmallObject.SuccStruct.extendToSucc.map_id + theorem CategoryTheory.SmallObject.SuccStruct.extendToSucc.map_self_succ + def CategoryTheory.SmallObject.SuccStruct.extendToSucc.obj + def CategoryTheory.SmallObject.SuccStruct.extendToSucc.objIso + def CategoryTheory.SmallObject.SuccStruct.extendToSucc.objSuccIso + theorem CategoryTheory.SmallObject.SuccStruct.extendToSucc.obj_eq + theorem CategoryTheory.SmallObject.SuccStruct.extendToSucc.obj_succ_eq + def CategoryTheory.SmallObject.SuccStruct.extendToSucc + def CategoryTheory.SmallObject.SuccStruct.extendToSuccObjIso + theorem CategoryTheory.SmallObject.SuccStruct.extendToSuccObjIso_hom_naturality + def CategoryTheory.SmallObject.SuccStruct.extendToSuccObjSuccIso + def CategoryTheory.SmallObject.SuccStruct.extendToSuccRestrictionLEIso + theorem CategoryTheory.SmallObject.SuccStruct.extendToSucc_map + theorem CategoryTheory.SmallObject.SuccStruct.extendToSucc_map_le_succ + theorem CategoryTheory.SmallObject.SuccStruct.extendToSucc_obj_eq + theorem CategoryTheory.SmallObject.SuccStruct.extendToSucc_obj_succ_eq Modified Mathlib/CategoryTheory/SmallObject/Iteration/FunctorOfCocone.lean - def CategoryTheory.Functor.isColimitCoconeOfLEOfCocone - def CategoryTheory.Functor.ofCocone.map - theorem CategoryTheory.Functor.ofCocone.map_comp - theorem CategoryTheory.Functor.ofCocone.map_id - def CategoryTheory.Functor.ofCocone.obj - def CategoryTheory.Functor.ofCocone.objIso - def CategoryTheory.Functor.ofCocone.objIsoPt - def CategoryTheory.Functor.ofCocone - def CategoryTheory.Functor.ofCoconeObjIso - def CategoryTheory.Functor.ofCoconeObjIsoPt - theorem CategoryTheory.Functor.ofCoconeObjIso_hom_naturality - theorem CategoryTheory.Functor.ofCocone_map - theorem CategoryTheory.Functor.ofCocone_map_to_top - def CategoryTheory.Functor.restrictionLTOfCoconeIso + theorem CategoryTheory.SmallObject.SuccStruct.arrowMap_ofCocone + theorem CategoryTheory.SmallObject.SuccStruct.arrowMap_ofCocone_to_top + def CategoryTheory.SmallObject.SuccStruct.isColimitCoconeOfLEOfCocone + def CategoryTheory.SmallObject.SuccStruct.ofCocone.map + theorem CategoryTheory.SmallObject.SuccStruct.ofCocone.map_comp + theorem CategoryTheory.SmallObject.SuccStruct.ofCocone.map_id + def CategoryTheory.SmallObject.SuccStruct.ofCocone.obj + def CategoryTheory.SmallObject.SuccStruct.ofCocone.objIso + def CategoryTheory.SmallObject.SuccStruct.ofCocone.objIsoPt + def CategoryTheory.SmallObject.SuccStruct.ofCocone + def CategoryTheory.SmallObject.SuccStruct.ofCoconeObjIso + def CategoryTheory.SmallObject.SuccStruct.ofCoconeObjIsoPt + theorem CategoryTheory.SmallObject.SuccStruct.ofCoconeObjIso_hom_naturality + theorem CategoryTheory.SmallObject.SuccStruct.ofCocone_map + theorem CategoryTheory.SmallObject.SuccStruct.ofCocone_map_to_top + theorem CategoryTheory.SmallObject.SuccStruct.ofCocone_obj_eq + theorem CategoryTheory.SmallObject.SuccStruct.ofCocone_obj_eq_pt + def CategoryTheory.SmallObject.SuccStruct.restrictionLTOfCoconeIso Modified Mathlib/CategoryTheory/SmallObject/Iteration/Nonempty.lean - def CategoryTheory.Functor.Iteration.mkOfBot + def CategoryTheory.SmallObject.SuccStruct.Iteration.mkOfBot + theorem CategoryTheory.SmallObject.SuccStruct.Iteration.mkOfLimit.arrowMap_functor + theorem CategoryTheory.SmallObject.SuccStruct.Iteration.mkOfLimit.arrowMap_functor_to_top + theorem CategoryTheory.SmallObject.SuccStruct.Iteration.mkOfLimit.functor_obj Deleted Mathlib/CategoryTheory/SmallObject/Iteration/UniqueHom.lean - def CategoryTheory.Functor.Iteration.Hom.mkOfBot - def CategoryTheory.Functor.Iteration.Hom.mkOfLimit - def CategoryTheory.Functor.Iteration.Hom.mkOfLimitNatTrans - def CategoryTheory.Functor.Iteration.Hom.mkOfLimitNatTransApp - theorem CategoryTheory.Functor.Iteration.Hom.mkOfLimitNatTransApp_eq_of_lt - theorem CategoryTheory.Functor.Iteration.Hom.mkOfLimitNatTransApp_naturality_top - theorem CategoryTheory.Functor.Iteration.Hom.mkOfSuccNatTransApp_eq_of_le - theorem CategoryTheory.Functor.Iteration.Hom.mkOfSuccNatTransApp_succ_eq - theorem CategoryTheory.Functor.Iteration.iso_refl - theorem CategoryTheory.Functor.Iteration.iso_trans Modified Mathlib/Order/Monotone/Basic.lean - theorem monotone_inclusion_le_le_of_le - theorem monotone_inclusion_lt_le_of_le - theorem monotone_inclusion_lt_lt_of_le 2025-02-03 19:15:25 740a837 feat(CategoryTheory/SmallObject): promote a construction from `Over` to `Arrow` (#20260) With this change, in the proof of the small object arguments (#20245), we shall get a functorial factorization instance `HasFunctorialFactorization` instead of `HasFactorization`. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/SmallObject/Construction.lean +/- theorem CategoryTheory.SmallObject.functorMap_id +/- theorem CategoryTheory.SmallObject.functorMap_π 2025-02-03 17:43:24 3685941 chore: bump toolchain to v4.17.0-rc1 (#21377) ESTIMATED CHANGES Modified Mathlib/Algebra/Free.lean Modified Mathlib/Algebra/LinearRecurrence.lean Modified Mathlib/Algebra/TrivSqZeroExt.lean Modified Mathlib/Analysis/Analytic/Composition.lean Modified Mathlib/Combinatorics/Enumerative/Composition.lean Modified Mathlib/Computability/Primrec.lean + theorem Primrec.list_idxOf + theorem Primrec.list_idxOf₁ - theorem Primrec.list_indexOf - theorem Primrec.list_indexOf₁ Modified Mathlib/Computability/RegularExpressions.lean Modified Mathlib/Data/Fin/Basic.lean - theorem Fin.cast_zero Modified Mathlib/Data/FinEnum.lean Modified Mathlib/Data/Finset/Sort.lean Modified Mathlib/Data/List/Basic.lean + theorem List.getElem?_idxOf - theorem List.getElem?_indexOf + theorem List.getElem_idxOf - theorem List.getElem_indexOf + theorem List.idxOf_append_of_mem + theorem List.idxOf_append_of_not_mem + theorem List.idxOf_cons_eq + theorem List.idxOf_cons_ne + theorem List.idxOf_eq_length_iff + theorem List.idxOf_get + theorem List.idxOf_get? + theorem List.idxOf_inj + theorem List.idxOf_le_length + theorem List.idxOf_lt_length_iff + theorem List.idxOf_of_not_mem - theorem List.indexOf_append_of_mem - theorem List.indexOf_append_of_not_mem - theorem List.indexOf_cons_eq - theorem List.indexOf_cons_ne - theorem List.indexOf_cons_self - theorem List.indexOf_eq_length_iff - theorem List.indexOf_get - theorem List.indexOf_get? - theorem List.indexOf_inj - theorem List.indexOf_le_length - theorem List.indexOf_lt_length_iff - theorem List.indexOf_of_not_mem Modified Mathlib/Data/List/Count.lean Modified Mathlib/Data/List/Enum.lean - theorem List.exists_mem_enum - theorem List.exists_mem_enumFrom + theorem List.exists_mem_zipIdx' + theorem List.exists_mem_zipIdx - theorem List.forall_mem_enum - theorem List.forall_mem_enumFrom + theorem List.forall_mem_zipIdx' + theorem List.forall_mem_zipIdx - theorem List.get?_enum - theorem List.get?_enumFrom - theorem List.get_enum - theorem List.get_enumFrom - theorem List.mem_enum_iff_get? - theorem List.mk_add_mem_enumFrom_iff_get? - theorem List.mk_mem_enumFrom_iff_le_and_get?_sub - theorem List.mk_mem_enum_iff_get? Modified Mathlib/Data/List/FinRange.lean + theorem List.idxOf_finRange - theorem List.indexOf_finRange Modified Mathlib/Data/List/Forall2.lean +/- theorem List.rel_flatMap Modified Mathlib/Data/List/Indexes.lean Modified Mathlib/Data/List/Intervals.lean Modified Mathlib/Data/List/MinMax.lean Modified Mathlib/Data/List/Nodup.lean + theorem List.get_idxOf - theorem List.get_indexOf + theorem List.idxOf_getElem - theorem List.indexOf_getElem Modified Mathlib/Data/List/NodupEquivFin.lean +/- theorem List.Sorted.coe_getIso_symm_apply Modified Mathlib/Data/List/OfFn.lean + theorem List.mem_ofFn' - theorem List.mem_ofFn Modified Mathlib/Data/List/ProdSigma.lean Modified Mathlib/Data/List/Sigma.lean - theorem List.nodup_enum_map_fst + theorem List.nodup_zipIdx_map_snd Modified Mathlib/Data/List/Sublists.lean Modified Mathlib/Data/List/ToFinsupp.lean + theorem List.toFinsupp_eq_sum_mapIdx_single - theorem List.toFinsupp_eq_sum_map_enum_single Modified Mathlib/Data/Nat/Defs.lean - theorem Nat.div_le_div_left Modified Mathlib/Data/Nat/Digits.lean + theorem Nat.ofDigits_eq_sum_mapIdx_aux - theorem Nat.ofDigits_eq_sum_map_with_index_aux Modified Mathlib/Data/Option/Basic.lean - theorem Option.map_pmap - theorem Option.pmap_eq_map Modified Mathlib/Data/Sigma/Basic.lean Modified Mathlib/Data/ULift.lean +/- theorem PLift.up_inj +/- theorem ULift.up_inj Modified Mathlib/GroupTheory/Perm/Cycle/Basic.lean Modified Mathlib/Lean/Meta/KAbstractPositions.lean Modified Mathlib/LinearAlgebra/Multilinear/Basic.lean Modified Mathlib/Logic/Equiv/List.lean Modified Mathlib/NumberTheory/LegendreSymbol/JacobiSymbol.lean Modified Mathlib/NumberTheory/Ostrowski.lean Modified Mathlib/Order/RelSeries.lean Modified Mathlib/Tactic/DeriveTraversable.lean Modified Mathlib/Tactic/Linarith/Oracle/FourierMotzkin.lean Modified Mathlib/Tactic/Linarith/Oracle/SimplexAlgorithm.lean Modified Mathlib/Tactic/Linarith/Oracle/SimplexAlgorithm/Datatypes.lean Modified Mathlib/Tactic/Linarith/Verification.lean Modified Mathlib/Tactic/Linter/TextBased.lean Modified Mathlib/Tactic/Linter/UnusedTactic.lean Modified Mathlib/Tactic/MinImports.lean Modified Mathlib/Tactic/MkIffOfInductiveProp.lean Modified Mathlib/Tactic/MoveAdd.lean Modified Mathlib/Tactic/Widget/StringDiagram.lean Modified MathlibTest/fun_prop_dev.lean Modified lake-manifest.json Modified lean-toolchain Modified scripts/noshake.json 2025-02-03 17:32:51 d9a9fc0 docs(AlgebraicGeometry): fix local at the source vs. at the target (#21373) ESTIMATED CHANGES Modified Mathlib/AlgebraicGeometry/Morphisms/Basic.lean 2025-02-03 17:10:55 2549057 feat(Topology/ContinuousMap/CompactlySupported): turn a positive `Real`-linear functional into a `NNReal`-linear functional (#20257) Define `toNNRealLinear` that maps positive `Real`-linear functionals to `NNReal`-linear functionals and prove that it is injective. ESTIMATED CHANGES Modified Mathlib/Topology/ContinuousMap/CompactlySupported.lean + theorem CompactlySupportedContinuousMap.coe_toRealLinearMap + theorem CompactlySupportedContinuousMap.nnrealPart_sub_nnrealPart_neg + theorem CompactlySupportedContinuousMap.toNNRealLinear_apply + theorem CompactlySupportedContinuousMap.toNNRealLinear_inj + theorem CompactlySupportedContinuousMap.toRealLinearMap_apply + theorem CompactlySupportedContinuousMap.toRealLinearMap_apply_apply + theorem CompactlySupportedContinuousMap.toReal_add + theorem CompactlySupportedContinuousMap.toReal_apply + theorem CompactlySupportedContinuousMap.toReal_nonneg + theorem CompactlySupportedContinuousMap.toReal_smul Modified Mathlib/Topology/Instances/NNReal/Defs.lean + theorem NNReal.coeNNRealReal_zero 2025-02-03 16:47:41 fc39d3b feat(Algebra/Category): `ConcreteCategory` instance for `Semigrp` (#21368) Very straightforward, essentially copypasting the design of `MonCat` back onto `MagmaCat` and `Semigrp`. We can probably do without this amount of `dsimp` lemmas, they should all be pretty easy to prove from generic `ConcreteCategory` results, but it doesn't hurt to have them in any case. ESTIMATED CHANGES Modified Mathlib/Algebra/Category/MonCat/Adjunctions.lean Modified Mathlib/Algebra/Category/Semigrp/Basic.lean + structure AddMagmaCat.Hom + structure AddMagmaCat + structure AddSemigrp.Hom + structure AddSemigrp + def MagmaCat.Hom.Simps.hom + structure MagmaCat.Hom + theorem MagmaCat.coe_comp + theorem MagmaCat.coe_id +/- theorem MagmaCat.coe_of + theorem MagmaCat.comp_apply + theorem MagmaCat.ext + theorem MagmaCat.forget_map + theorem MagmaCat.hom_comp + theorem MagmaCat.hom_ext + theorem MagmaCat.hom_id + theorem MagmaCat.hom_inv_apply + theorem MagmaCat.hom_ofHom + theorem MagmaCat.id_apply + theorem MagmaCat.inv_hom_apply - def MagmaCat.of - def MagmaCat.ofHom +/- theorem MagmaCat.ofHom_apply + theorem MagmaCat.ofHom_comp + theorem MagmaCat.ofHom_hom + theorem MagmaCat.ofHom_id + structure MagmaCat - def MagmaCat + def Semigrp.Hom.Simps.hom + structure Semigrp.Hom + theorem Semigrp.coe_comp + theorem Semigrp.coe_id +/- theorem Semigrp.coe_of + theorem Semigrp.comp_apply + theorem Semigrp.comp_def + theorem Semigrp.ext + theorem Semigrp.forget_map + theorem Semigrp.hom_comp + theorem Semigrp.hom_ext + theorem Semigrp.hom_id + theorem Semigrp.hom_inv_apply + theorem Semigrp.hom_ofHom + theorem Semigrp.id_apply + theorem Semigrp.inv_hom_apply - def Semigrp.of - def Semigrp.ofHom +/- theorem Semigrp.ofHom_apply + theorem Semigrp.ofHom_comp + theorem Semigrp.ofHom_hom + theorem Semigrp.ofHom_id + structure Semigrp - def Semigrp Added MathlibTest/CategoryTheory/ConcreteCategory/Semigrp.lean 2025-02-03 16:47:39 7bb9660 feat(Analysis/RCLike/Basic): PosMulReflectLE (#21351) Adds ``` @[simp] theorem RCLike.inv_nonneg {x : 𝕜} : 0 ≤ x⁻¹ ↔ 0 ≤ x ``` to match [inv_nonneg](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Algebra/Order/GroupWithZero/Unbundled.html#inv_nonneg) and [Rat.inv_nonneg](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Algebra/Field/Rat.html#Rat.inv_nonneg). Upstreamed from [QuantumInfo](https://github.com/Timeroot/Lean-QuantumInfo) ESTIMATED CHANGES Modified Mathlib/Analysis/RCLike/Basic.lean + theorem RCLike.instPosMulReflectLE 2025-02-03 16:47:38 89c8ee9 chore(InfiniteSum/NatInt): put `Multipliable.tendsto_prod_tprod_nat` in the right namespace (#21337) Before, it was: ``` HasProd.Multipliable.tendsto_prod_tprod_nat ``` which made the additive version ``` HasSum.Multipliable.tendsto_sum_tsum_nat ``` By lifting into the root namespace, Multipliable properly additivizes ESTIMATED CHANGES Modified Mathlib/Topology/Algebra/InfiniteSum/NatInt.lean - theorem HasProd.Multipliable.tendsto_prod_tprod_nat +/- theorem HasProd.tendsto_prod_nat + theorem Multipliable.tendsto_prod_tprod_nat 2025-02-03 16:47:37 71f7503 feat(Topology/Category): concrete category refactor for topological spaces (#21302) This is a step towards a concrete category redesign, as outlined in this Zulip post: https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Concrete.20category.20class.20redesign/near/493903980 This PR updates the category definitions of `TopCat` and some of its descendants to match the new `ConcreteCategory` style: * Package objects and homs into structures. * Replace `HasForget` with `ConcreteCategory`. * Set up a good @[simp] set. * Ensure constructors and projections are reducible. I found many places where proofs could be cleaned up, even without looking particularly hard. 🎉 Once all the concrete category instances are in we can get rid of even more workarounds. ESTIMATED CHANGES Modified Mathlib/Algebra/Category/ModuleCat/Presheaf/Sheafify.lean Modified Mathlib/AlgebraicGeometry/AffineScheme.lean Modified Mathlib/AlgebraicGeometry/Cover/MorphismProperty.lean Modified Mathlib/AlgebraicGeometry/Cover/Open.lean Modified Mathlib/AlgebraicGeometry/GammaSpecAdjunction.lean +/- def AlgebraicGeometry.LocallyRingedSpace.toΓSpecBase Modified Mathlib/AlgebraicGeometry/Gluing.lean Modified Mathlib/AlgebraicGeometry/Limits.lean Modified Mathlib/AlgebraicGeometry/Morphisms/Constructors.lean Modified Mathlib/AlgebraicGeometry/Morphisms/Immersion.lean Modified Mathlib/AlgebraicGeometry/Morphisms/QuasiCompact.lean Modified Mathlib/AlgebraicGeometry/Morphisms/Separated.lean Modified Mathlib/AlgebraicGeometry/Morphisms/SurjectiveOnStalks.lean Modified Mathlib/AlgebraicGeometry/Morphisms/UnderlyingMap.lean Modified Mathlib/AlgebraicGeometry/PointsPi.lean Modified Mathlib/AlgebraicGeometry/ProjectiveSpectrum/Scheme.lean +/- def AlgebraicGeometry.ProjIsoSpecTopComponent.toSpec Modified Mathlib/AlgebraicGeometry/Restrict.lean Modified Mathlib/AlgebraicGeometry/Scheme.lean +/- theorem AlgebraicGeometry.Scheme.Hom.continuous +/- theorem AlgebraicGeometry.Spec.map_base Modified Mathlib/AlgebraicGeometry/Spec.lean Modified Mathlib/AlgebraicGeometry/Stalk.lean Modified Mathlib/AlgebraicGeometry/ValuativeCriterion.lean Modified Mathlib/AlgebraicTopology/FundamentalGroupoid/Basic.lean Modified Mathlib/AlgebraicTopology/FundamentalGroupoid/InducedMaps.lean +/- theorem ContinuousMap.Homotopy.apply_one_path +/- theorem ContinuousMap.Homotopy.apply_zero_path +/- theorem ContinuousMap.Homotopy.eq_diag_path +/- theorem ContinuousMap.Homotopy.heq_path_of_eq_image +/- def FundamentalGroupoidFunctor.homotopicMapsNatIso Modified Mathlib/AlgebraicTopology/FundamentalGroupoid/Product.lean Modified Mathlib/AlgebraicTopology/TopologicalSimplex.lean Modified Mathlib/CategoryTheory/Extensive.lean Modified Mathlib/Condensed/Discrete/Characterization.lean Modified Mathlib/Condensed/Discrete/Colimit.lean Modified Mathlib/Condensed/Discrete/LocallyConstant.lean +/- def CompHausLike.LocallyConstant.componentHom +/- def CompHausLike.LocallyConstant.sigmaIncl Modified Mathlib/Condensed/Discrete/Module.lean Modified Mathlib/Condensed/Light/Epi.lean Modified Mathlib/Condensed/Light/TopCatAdjunction.lean - def LightCondSet.toTopCat +/- def LightCondSet.toTopCatMap +/- def LightCondSet.topCatAdjunctionCounit Modified Mathlib/Condensed/TopCatAdjunction.lean - def CondensedSet.toTopCat +/- def CondensedSet.toTopCatMap +/- def CondensedSet.topCatAdjunctionCounit + theorem CondensedSet.topCatAdjunctionCounit_hom_apply Modified Mathlib/Condensed/TopComparison.lean Modified Mathlib/Geometry/Manifold/Sheaf/Basic.lean Modified Mathlib/Geometry/RingedSpace/LocallyRingedSpace.lean Modified Mathlib/Geometry/RingedSpace/LocallyRingedSpace/HasColimits.lean Modified Mathlib/Geometry/RingedSpace/OpenImmersion.lean Modified Mathlib/Geometry/RingedSpace/PresheafedSpace.lean Modified Mathlib/Geometry/RingedSpace/PresheafedSpace/Gluing.lean Modified Mathlib/Geometry/RingedSpace/PresheafedSpace/HasColimits.lean Modified Mathlib/Geometry/RingedSpace/Stalks.lean Modified Mathlib/MeasureTheory/Category/MeasCat.lean Modified Mathlib/Topology/Algebra/Category/ProfiniteGrp/Basic.lean +/- theorem ProfiniteGrp.coe_id - def ProfiniteGrp.of Modified Mathlib/Topology/Algebra/Category/ProfiniteGrp/Limits.lean Modified Mathlib/Topology/CWComplex.lean +/- def RelativeCWComplex.sphereInclusion Modified Mathlib/Topology/Category/CompHaus/Basic.lean Modified Mathlib/Topology/Category/CompHaus/EffectiveEpi.lean Modified Mathlib/Topology/Category/CompHaus/Frm.lean Modified Mathlib/Topology/Category/CompHaus/Projective.lean Modified Mathlib/Topology/Category/CompHausLike/Basic.lean +/- theorem CompHausLike.coe_id +/- theorem CompHausLike.coe_of + theorem CompHausLike.hom_ofHom - def CompHausLike.of + theorem CompHausLike.ofHom_comp + theorem CompHausLike.ofHom_id Modified Mathlib/Topology/Category/CompHausLike/EffectiveEpi.lean Modified Mathlib/Topology/Category/CompHausLike/Limits.lean +/- def CompHausLike.finiteCoproduct.ι +/- def CompHausLike.pullback.fst +/- def CompHausLike.pullback.snd Modified Mathlib/Topology/Category/CompHausLike/SigmaComparison.lean Modified Mathlib/Topology/Category/CompactlyGenerated.lean - def CompactlyGenerated.of Modified Mathlib/Topology/Category/Compactum.lean Modified Mathlib/Topology/Category/DeltaGenerated.lean - def DeltaGenerated.of Modified Mathlib/Topology/Category/FinTopCat.lean Modified Mathlib/Topology/Category/LightProfinite/AsLimit.lean Modified Mathlib/Topology/Category/LightProfinite/Basic.lean Modified Mathlib/Topology/Category/LightProfinite/EffectiveEpi.lean Modified Mathlib/Topology/Category/Locale.lean Modified Mathlib/Topology/Category/Profinite/AsLimit.lean Modified Mathlib/Topology/Category/Profinite/Basic.lean Modified Mathlib/Topology/Category/Profinite/CofilteredLimit.lean Modified Mathlib/Topology/Category/Profinite/EffectiveEpi.lean Modified Mathlib/Topology/Category/Profinite/Extend.lean Modified Mathlib/Topology/Category/Profinite/Nobeling.lean Modified Mathlib/Topology/Category/Profinite/Product.lean Modified Mathlib/Topology/Category/Profinite/Projective.lean Modified Mathlib/Topology/Category/Sequential.lean - def Sequential.of Modified Mathlib/Topology/Category/Stonean/Basic.lean Modified Mathlib/Topology/Category/Stonean/EffectiveEpi.lean Modified Mathlib/Topology/Category/Stonean/Limits.lean Modified Mathlib/Topology/Category/TopCat/Adjunctions.lean Modified Mathlib/Topology/Category/TopCat/Basic.lean + def TopCat.Hom.Simps.hom + structure TopCat.Hom +/- theorem TopCat.coe_of + theorem TopCat.ext +/- theorem TopCat.hom_apply + theorem TopCat.hom_comp + theorem TopCat.hom_ext + theorem TopCat.hom_id + theorem TopCat.hom_ofHom - def TopCat.of + theorem TopCat.ofHom_apply + theorem TopCat.ofHom_comp + theorem TopCat.ofHom_hom + theorem TopCat.ofHom_id + theorem TopCat.of_carrier + structure TopCat - def TopCat Modified Mathlib/Topology/Category/TopCat/EffectiveEpi.lean Modified Mathlib/Topology/Category/TopCat/Limits/Basic.lean Modified Mathlib/Topology/Category/TopCat/Limits/Konig.lean Modified Mathlib/Topology/Category/TopCat/Limits/Products.lean +/- theorem TopCat.prodIsoProd_hom_apply Modified Mathlib/Topology/Category/TopCat/Limits/Pullbacks.lean Modified Mathlib/Topology/Category/TopCat/Opens.lean +/- def TopologicalSpace.Opens.inclusion' +/- theorem TopologicalSpace.Opens.map_obj Modified Mathlib/Topology/Category/TopCat/Yoneda.lean Modified Mathlib/Topology/Category/TopCommRingCat.lean Modified Mathlib/Topology/Category/UniformSpace.lean Modified Mathlib/Topology/Gluing.lean Modified Mathlib/Topology/Order/Category/AlexDisc.lean +/- theorem AlexDisc.coe_of - def AlexDisc.of + structure AlexDisc - def AlexDisc Modified Mathlib/Topology/Order/Category/FrameAdjunction.lean Modified Mathlib/Topology/Sheaves/CommRingCat.lean Modified Mathlib/Topology/Sheaves/LocalPredicate.lean Modified Mathlib/Topology/Sheaves/SheafCondition/UniqueGluing.lean Modified Mathlib/Topology/Sheaves/Skyscraper.lean Modified Mathlib/Topology/Sheaves/Stalks.lean Modified Mathlib/Topology/Specialization.lean Modified MathlibTest/slow_simp.lean 2025-02-03 16:00:42 8a75bbf chore: add example for `check_compositions` (#21378) ESTIMATED CHANGES Modified Mathlib/Tactic/CategoryTheory/CheckCompositions.lean Added MathlibTest/CategoryTheory/CheckCompositions.lean 2025-02-03 16:00:41 7305307 chore: tidy various files (#21367) ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/Basic.lean Modified Mathlib/Algebra/CharP/LinearMaps.lean Modified Mathlib/Algebra/Group/Subgroup/Basic.lean Modified Mathlib/Algebra/Module/CharacterModule.lean Modified Mathlib/Algebra/Order/AbsoluteValue/Basic.lean Modified Mathlib/Algebra/Order/GroupWithZero/Bounds.lean Modified Mathlib/Algebra/Order/GroupWithZero/Unbundled.lean +/- theorem MonotoneOn.mul Modified Mathlib/Algebra/Polynomial/Div.lean Modified Mathlib/Algebra/Ring/Parity.lean Modified Mathlib/Algebra/Ring/Subsemiring/Basic.lean Modified Mathlib/Analysis/MeanInequalities.lean Modified Mathlib/Analysis/SpecialFunctions/Pow/Asymptotics.lean Modified Mathlib/CategoryTheory/Shift/Opposite.lean Modified Mathlib/CategoryTheory/Shift/Pullback.lean Modified Mathlib/Combinatorics/SimpleGraph/Clique.lean Modified Mathlib/Combinatorics/SimpleGraph/Path.lean Modified Mathlib/Data/DFinsupp/Small.lean Modified Mathlib/Data/ENNReal/Operations.lean Modified Mathlib/Data/List/ReduceOption.lean Modified Mathlib/Data/Multiset/Basic.lean Modified Mathlib/FieldTheory/IntermediateField/Adjoin/Basic.lean Modified Mathlib/LinearAlgebra/Basis/Exact.lean Modified Mathlib/MeasureTheory/Function/LpSeminorm/Basic.lean Modified Mathlib/NumberTheory/Cyclotomic/Basic.lean Modified Mathlib/RingTheory/DedekindDomain/FiniteAdeleRing.lean +/- theorem DedekindDomain.FiniteAdeleRing.coe_add +/- theorem DedekindDomain.FiniteAdeleRing.coe_algebraMap +/- theorem DedekindDomain.FiniteAdeleRing.coe_mul - theorem DedekindDomain.FiniteAdeleRing.coe_zero: + theorem DedekindDomain.FiniteAdeleRing.coe_zero Modified Mathlib/Topology/Algebra/Category/ProfiniteGrp/Limits.lean +/- def ProfiniteGrp.toFiniteQuotientFunctor Modified Mathlib/Topology/Algebra/LinearTopology.lean Modified Mathlib/Topology/Algebra/Module/ModuleTopology.lean Modified Mathlib/Topology/PartialHomeomorph.lean 2025-02-03 16:00:40 c4f3a47 chore(Logic): process a batch of porting notes (#21226) ESTIMATED CHANGES Modified Mathlib/Logic/Denumerable.lean Modified Mathlib/Logic/Embedding/Basic.lean Modified Mathlib/Logic/Encodable/Basic.lean Modified Mathlib/Logic/Equiv/Basic.lean Modified Mathlib/Logic/Equiv/Defs.lean Modified Mathlib/Logic/Equiv/Fin.lean Modified Mathlib/Logic/Equiv/Option.lean Modified Mathlib/Logic/Equiv/PartialEquiv.lean + theorem PartialEquiv.coe_mk Modified Mathlib/Logic/Function/Basic.lean Modified Mathlib/Logic/Function/Defs.lean 2025-02-03 15:02:23 04dabcf chore: bump toolchain to v4.16.0 (#21365) ESTIMATED CHANGES Modified lake-manifest.json Modified lakefile.lean 2025-02-03 14:49:26 3e6a2f1 feat: generalise `algebraMap_injective` by weakening its typeclass assumptions (#21287) As shown in the new lemma `faithfulSMul_iff_algebraMap_injective`, injectivity of `algebraMap R A` is equivalent to the typeclass hypothesis `[FaithfulSMul R A]`. We thus generalise (and rename) the existing lemma `NoZeroSMulDivisors.algebraMap_injective` to `FaithfulSMul.algebraMap_injective`. The rename is responsible for much of the diff. By weakening the assumptions `[Nontrivial A] [NoZeroSMulDivisors R A]` to just `[FaithfulSMul R A]`, results which need to use `algebraMap_injective` can be applied in the case that we have `[Ring A] [CharZero A]` but fail to have `[NoZeroSMulDivisors ℤ A]`. This is the motivation for these changes. There are quite a few places in the library where a lemma consumes an explicit argument of the form `Injective (algebraMap R A)`. Most / all of these should probably be restated to accept the typeclass argument `[FaithfulSMul R A]` but we do not attempt such a refactor here. ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/Basic.lean + theorem Algebra.charZero_of_charZero + theorem FaithfulSMul.algebraMap_eq_one_iff + theorem FaithfulSMul.algebraMap_eq_zero_iff + theorem FaithfulSMul.algebraMap_injective +/- def LinearEquiv.extendScalarsOfSurjective +/- def LinearMap.extendScalarsOfSurjectiveEquiv + theorem NeZero.of_faithfulSMul - theorem NeZero.of_noZeroSMulDivisors - theorem NoZeroSMulDivisors.algebraMap_eq_one_iff - theorem NoZeroSMulDivisors.algebraMap_eq_zero_iff - theorem NoZeroSMulDivisors.algebraMap_injective +/- theorem NoZeroSMulDivisors.iff_algebraMap_injective + theorem NoZeroSMulDivisors.iff_faithfulSMul - theorem NoZeroSMulDivisors.of_algebraMap_injective' - theorem NoZeroSMulDivisors.of_algebraMap_injective - theorem NoZeroSMulDivisors.trans + theorem NoZeroSMulDivisors.trans_faithfulSMul + theorem algebraMap_comp_intCast + theorem algebraMap_comp_natCast +/- theorem bijective_algebraMap_of_linearMap + theorem faithfulSMul_iff_algebraMap_injective + theorem faithfulSMul_iff_injective_smul_one +/- theorem injective_algebraMap_of_linearMap +/- theorem surjective_algebraMap_of_linearMap Modified Mathlib/Algebra/AlgebraicCard.lean Modified Mathlib/Algebra/Central/Basic.lean Modified Mathlib/Algebra/Central/TensorProduct.lean Modified Mathlib/Algebra/Lie/TraceForm.lean Modified Mathlib/Algebra/Module/Lattice.lean Modified Mathlib/Algebra/Polynomial/Roots.lean Modified Mathlib/AlgebraicGeometry/ValuativeCriterion.lean Modified Mathlib/FieldTheory/Differential/Liouville.lean Modified Mathlib/FieldTheory/IsAlgClosed/Basic.lean Modified Mathlib/FieldTheory/KummerExtension.lean Modified Mathlib/FieldTheory/Normal/Defs.lean Modified Mathlib/FieldTheory/PurelyInseparable/Basic.lean Modified Mathlib/FieldTheory/RatFunc/Basic.lean Modified Mathlib/LinearAlgebra/BilinearForm/DualLattice.lean Modified Mathlib/LinearAlgebra/Dual.lean Modified Mathlib/LinearAlgebra/Eigenspace/Basic.lean Modified Mathlib/LinearAlgebra/LinearIndependent.lean Modified Mathlib/LinearAlgebra/Matrix/HermitianFunctionalCalculus.lean Modified Mathlib/LinearAlgebra/PerfectPairing/Restrict.lean Modified Mathlib/LinearAlgebra/RootSystem/BaseChange.lean Modified Mathlib/LinearAlgebra/RootSystem/CartanMatrix.lean Modified Mathlib/NumberTheory/Cyclotomic/Basic.lean Modified Mathlib/NumberTheory/Cyclotomic/Discriminant.lean Modified Mathlib/NumberTheory/Cyclotomic/PrimitiveRoots.lean Modified Mathlib/NumberTheory/FunctionField.lean Modified Mathlib/NumberTheory/KummerDedekind.lean Modified Mathlib/NumberTheory/NumberField/Basic.lean Modified Mathlib/NumberTheory/NumberField/FinitePlaces.lean Modified Mathlib/NumberTheory/RamificationInertia/Basic.lean Modified Mathlib/RingTheory/AlgebraTower.lean Modified Mathlib/RingTheory/Algebraic/Cardinality.lean Modified Mathlib/RingTheory/Algebraic/Integral.lean Modified Mathlib/RingTheory/DedekindDomain/Different.lean Modified Mathlib/RingTheory/DedekindDomain/Ideal.lean Modified Mathlib/RingTheory/DedekindDomain/IntegralClosure.lean Modified Mathlib/RingTheory/DedekindDomain/PID.lean Modified Mathlib/RingTheory/DedekindDomain/SelmerGroup.lean Modified Mathlib/RingTheory/FractionalIdeal/Basic.lean Modified Mathlib/RingTheory/Ideal/Maps.lean + theorem Ideal.FaithfulSMul.ker_algebraMap_eq_bot - theorem Ideal.NoZeroSMulDivisors.iff_ker_algebraMap_eq_bot - theorem Ideal.NoZeroSMulDivisors.ker_algebraMap_eq_bot - theorem Ideal.NoZeroSMulDivisors.of_ker_algebraMap_eq_bot Modified Mathlib/RingTheory/Ideal/Norm/RelNorm.lean Modified Mathlib/RingTheory/Ideal/Over.lean - theorem Ideal.Quotient.algebraMap_injective_of_liesOver Modified Mathlib/RingTheory/IntegralClosure/IntegralRestrict.lean Modified Mathlib/RingTheory/IntegralClosure/IntegrallyClosed.lean Modified Mathlib/RingTheory/IntegralClosure/IsIntegralClosure/Basic.lean Modified Mathlib/RingTheory/Invariant.lean Modified Mathlib/RingTheory/LocalProperties/IntegrallyClosed.lean Modified Mathlib/RingTheory/Localization/FractionRing.lean + theorem FaithfulSMul.of_field_isFractionRing - theorem NoZeroSMulDivisors.of_field_isFractionRing Modified Mathlib/RingTheory/Localization/Ideal.lean Modified Mathlib/RingTheory/Localization/Integral.lean Modified Mathlib/RingTheory/Localization/NumDen.lean Modified Mathlib/RingTheory/Norm/Basic.lean Modified Mathlib/RingTheory/Polynomial/Content.lean Modified Mathlib/RingTheory/Polynomial/Cyclotomic/Basic.lean Modified Mathlib/RingTheory/Polynomial/Cyclotomic/Roots.lean Modified Mathlib/RingTheory/Polynomial/Eisenstein/Basic.lean Modified Mathlib/RingTheory/Polynomial/Eisenstein/IsIntegral.lean Modified Mathlib/RingTheory/Trace/Basic.lean Modified Mathlib/RingTheory/Trace/Quotient.lean Modified Mathlib/RingTheory/Valuation/AlgebraInstances.lean Modified Mathlib/RingTheory/Valuation/LocalSubring.lean Modified Mathlib/Topology/Algebra/Module/FiniteDimension.lean 2025-02-03 13:40:49 a6276f4 feat(RingTheory): index of power of ideal (#20290) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/RingTheory/Ideal/Quotient/Index.lean + theorem Ideal.finite_quotient_pow + theorem Ideal.index_pow_le + theorem Submodule.finite_quotient_smul + theorem Submodule.index_smul_le 2025-02-03 13:31:43 0770956 feat(Order/Nucleus): coe_mk simp lemma (#21346) Add `Nucleus.coe_mk`. ESTIMATED CHANGES Modified Mathlib/Order/Nucleus.lean + theorem Nucleus.coe_mk 2025-02-03 12:26:47 e1f1958 chore: update Mathlib dependencies 2025-02-03 (#21369) This PR updates the Mathlib dependencies. ESTIMATED CHANGES Modified lake-manifest.json 2025-02-03 11:50:40 2215329 feat(Algebra/Order): `{WithTop,ENat}.addLECancellable_coe` (#21358) ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Monoid/Unbundled/WithTop.lean + theorem WithTop.addLECancellable_coe Modified Mathlib/Data/ENat/Basic.lean + theorem ENat.addLECancellable_coe 2025-02-03 11:50:39 e8eea56 feat(Topology/Group): Forgetful functor of ProfiniteGrp reflects isomorphism (#20764) Proved that the forgetful functor of profinite grp reflects isomorphism. Be able to fix `ContinuousMulEquiv` -> `Category.Iso` in `ProfiniteGrp` ESTIMATED CHANGES Modified Mathlib/Topology/Algebra/Category/ProfiniteGrp/Basic.lean + def ProfiniteGrp.ContinuousMulEquiv.toProfiniteGrpIso Modified Mathlib/Topology/Algebra/Category/ProfiniteGrp/Limits.lean 2025-02-03 11:03:19 35279e8 feature(Order/Monotone/Basic): Separately monotone iff jointly monotone (#20254) A function on a product space is separately monotone if and only if it is jointly monotone. Similarly for antitone functions. Inspired by #15412 ESTIMATED CHANGES Modified Mathlib/Order/Monotone/Basic.lean + theorem antitone_prod_iff + theorem monotone_prod_iff 2025-02-03 10:21:43 5fe5b35 chore: update Mathlib dependencies 2025-02-03 (#21363) This PR updates the Mathlib dependencies. ESTIMATED CHANGES Modified lake-manifest.json Modified lean-toolchain 2025-02-03 10:21:42 65da8aa feat: generalize `Ideal.spanNorm` to allow non free extensions (#19244) We generalize [Ideal.spanNorm](https://leanprover-community.github.io/mathlib4_docs/Mathlib/RingTheory/Ideal/Norm/RelNorm.html#Ideal.spanNorm) to allow non-free extensions. Currently, `spanNorm`, is defined as ```lean def spanNorm (R : Type*) [CommRing R] {S : Type*} [CommRing S] [Algebra R S] (I : Ideal S) : Ideal R := Ideal.span (Algebra.norm R '' (I : Set S)) ``` but the definition is mathematically meaningless unless `[Module.Finite R S]` and `[Module.Free R S]`. We change this to ```lean def spanNorm (R : Type*) [CommRing R] [IsDomain R] {S : Type*} [CommRing S] [IsDomain S] [IsIntegrallyClosed R] [IsIntegrallyClosed S] [Algebra R S] [Module.Finite R S] [NoZeroSMulDivisors R S] [Algebra.IsSeparable (FractionRing R) (FractionRing S)] (I : Ideal S) : Ideal R := Ideal.span (Algebra.intNorm R S '' (I : Set S)) ``` that is the mathematically correct definition, notably in the case `R` and `S` are the rings of integers in an extension of number fields. From flt-regular ESTIMATED CHANGES Modified Mathlib/RingTheory/DedekindDomain/IntegralClosure.lean Modified Mathlib/RingTheory/DedekindDomain/PID.lean Modified Mathlib/RingTheory/Ideal/Norm/RelNorm.lean + theorem Ideal.intNorm_mem_spanNorm + theorem Ideal.map_spanIntNorm - theorem Ideal.map_spanNorm +/- theorem Ideal.norm_mem_relNorm +/- theorem Ideal.norm_mem_spanNorm +/- theorem Ideal.relNorm_apply +/- theorem Ideal.relNorm_singleton + theorem Ideal.spanIntNorm_localization +/- theorem Ideal.spanNorm_bot +/- theorem Ideal.spanNorm_eq_bot_iff - theorem Ideal.spanNorm_localization +/- theorem Ideal.spanNorm_mul_of_bot_or_top - theorem Ideal.spanNorm_mul_of_field +/- theorem Ideal.spanNorm_singleton Modified Mathlib/RingTheory/Localization/Ideal.lean + theorem NoZeroSMulDivisors_of_isLocalization 2025-02-03 09:44:57 4eafc86 (sub-)additivity of an addContent on a (semi-)ring of sets (#21036) (sub-)additivity of an addContent on a (semi-)ring of sets 2nd PR on the way to Caratheodorys extension theorem. Show monotonicity, additivity, and sub-additivity ↔ additivity (where mpr requires the content to be defined on a ring). - depends on: - #20931 - #15294 --> [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) ESTIMATED CHANGES Modified Mathlib/Algebra/Order/BigOperators/Group/Finset.lean + theorem Finset.prod_image_le_of_one_le Modified Mathlib/Data/Set/Accumulate.lean + theorem Set.accumulate_bot Modified Mathlib/MeasureTheory/Measure/AddContent.lean + def MeasureTheory.AddContent.extend + theorem MeasureTheory.addContent_iUnion_eq_tsum_of_disjoint_of_addContent_iUnion_le + theorem MeasureTheory.addContent_le_sum_of_subset_sUnion + theorem MeasureTheory.addContent_sUnion_le_sum + theorem MeasureTheory.eq_add_disjointOfDiff_of_subset Modified Mathlib/MeasureTheory/SetSemiring.lean 2025-02-03 08:48:03 347a323 refactor(FieldTheory): split `Mathlib.FieldTheory.Purelyinseparable` (#21343) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/FieldTheory/CardinalEmb.lean Modified Mathlib/FieldTheory/IsPerfectClosure.lean Modified Mathlib/FieldTheory/JacobsonNoether.lean Deleted Mathlib/FieldTheory/PurelyInseparable.lean - theorem AlgEquiv.isPurelyInseparable - theorem AlgEquiv.isPurelyInseparable_iff - theorem Algebra.IsAlgebraic.isSepClosed - def Basis.mapPowExpCharPowOfIsSeparable - theorem Field.Emb.cardinal_separableClosure - theorem Field.finSepDegree_eq - theorem Field.finSepDegree_mul_finInsepDegree - theorem Field.lift_rank_mul_lift_sepDegree_of_isSeparable - theorem Field.lift_sepDegree_mul_lift_sepDegree_of_isAlgebraic - theorem Field.rank_mul_sepDegree_of_isSeparable - theorem Field.sepDegree_eq_of_isPurelyInseparable - theorem Field.sepDegree_eq_of_isPurelyInseparable_of_isSeparable - theorem Field.sepDegree_mul_sepDegree_of_isAlgebraic - theorem Field.span_map_pow_expChar_pow_eq_top_of_isSeparable - theorem IntermediateField.adjoin_eq_adjoin_pow_expChar_of_isSeparable' - theorem IntermediateField.adjoin_eq_adjoin_pow_expChar_of_isSeparable - theorem IntermediateField.adjoin_eq_adjoin_pow_expChar_pow_of_isSeparable' - theorem IntermediateField.adjoin_eq_adjoin_pow_expChar_pow_of_isSeparable - theorem IntermediateField.adjoin_simple_eq_adjoin_pow_expChar_of_isSeparable' - theorem IntermediateField.adjoin_simple_eq_adjoin_pow_expChar_of_isSeparable - theorem IntermediateField.adjoin_simple_eq_adjoin_pow_expChar_pow_of_isSeparable' - theorem IntermediateField.adjoin_simple_eq_adjoin_pow_expChar_pow_of_isSeparable - theorem IntermediateField.eq_bot_of_isPurelyInseparable_of_isSeparable - theorem IntermediateField.isPurelyInseparable_adjoin_iff_pow_mem - theorem IntermediateField.isPurelyInseparable_adjoin_simple_iff_natSepDegree_eq_one - theorem IntermediateField.isPurelyInseparable_adjoin_simple_iff_pow_mem - theorem IntermediateField.sepDegree_adjoin_eq_of_isAlgebraic_of_isPurelyInseparable' - theorem IntermediateField.sepDegree_adjoin_eq_of_isAlgebraic_of_isPurelyInseparable - theorem IsPurelyInseparable.bijective_algebraMap_of_isSeparable - theorem IsPurelyInseparable.bijective_comp_algebraMap - theorem IsPurelyInseparable.bijective_restrictDomain - theorem IsPurelyInseparable.finInsepDegree_eq - theorem IsPurelyInseparable.finSepDegree_eq_one - theorem IsPurelyInseparable.injective_comp_algebraMap - theorem IsPurelyInseparable.injective_restrictDomain - theorem IsPurelyInseparable.insepDegree_eq - theorem IsPurelyInseparable.inseparable - theorem IsPurelyInseparable.isAlgebraic - theorem IsPurelyInseparable.isIntegral' - theorem IsPurelyInseparable.minpoly_eq_X_pow_sub_C - theorem IsPurelyInseparable.minpoly_eq_X_sub_C_pow - theorem IsPurelyInseparable.natSepDegree_eq_one - theorem IsPurelyInseparable.of_injective_comp_algebraMap - theorem IsPurelyInseparable.pow_mem - theorem IsPurelyInseparable.sepDegree_eq_one - theorem IsPurelyInseparable.surjective_algebraMap_of_isSeparable - theorem IsPurelyInseparable.tower_bot - theorem IsPurelyInseparable.tower_top - theorem IsPurelyInseparable.trans - theorem LinearIndependent.map_of_isPurelyInseparable_of_isSeparable - theorem LinearIndependent.map_pow_expChar_pow_of_isSeparable' - theorem LinearIndependent.map_pow_expChar_pow_of_isSeparable - theorem Polynomial.Separable.map_irreducible_of_isPurelyInseparable - theorem Subalgebra.eq_bot_of_isPurelyInseparable_of_isSeparable - theorem eq_separableClosure - theorem eq_separableClosure_iff - theorem isPurelyInseparable_iff - theorem isPurelyInseparable_iff_fd_isPurelyInseparable - theorem isPurelyInseparable_iff_finSepDegree_eq_one - theorem isPurelyInseparable_iff_minpoly_eq_X_pow_sub_C - theorem isPurelyInseparable_iff_minpoly_eq_X_sub_C_pow - theorem isPurelyInseparable_iff_natSepDegree_eq_one - theorem isPurelyInseparable_iff_perfectClosure_eq_top - theorem isPurelyInseparable_iff_pow_mem - theorem isPurelyInseparable_of_finSepDegree_eq_one - theorem isSepClosed_iff_isPurelyInseparable_algebraicClosure - theorem le_perfectClosure - theorem le_perfectClosure_iff - theorem map_mem_perfectClosure_iff - theorem mem_perfectClosure_iff - theorem mem_perfectClosure_iff_natSepDegree_eq_one - theorem mem_perfectClosure_iff_pow_mem - theorem minpoly.map_eq_of_isSeparable_of_isPurelyInseparable - def perfectClosure.algEquivOfAlgEquiv - theorem perfectClosure.comap_eq_of_algHom - theorem perfectClosure.eq_bot_of_isSeparable - theorem perfectClosure.map_eq_of_algEquiv - theorem perfectClosure.map_le_of_algHom - def perfectClosure - theorem perfectField_iff_isSeparable_algebraicClosure - theorem perfectField_of_isSeparable_of_perfectField_top - theorem perfectField_of_perfectClosure_eq_bot - theorem separableClosure.adjoin_eq_of_isAlgebraic - theorem separableClosure.adjoin_eq_of_isAlgebraic_of_isSeparable - theorem separableClosure.eq_bot_iff - theorem separableClosure.eq_bot_of_isPurelyInseparable - theorem separableClosure_inf_perfectClosure - theorem separableClosure_le - theorem separableClosure_le_iff Added Mathlib/FieldTheory/PurelyInseparable/Basic.lean + theorem AlgEquiv.isPurelyInseparable + theorem AlgEquiv.isPurelyInseparable_iff + theorem Algebra.IsAlgebraic.isSepClosed + theorem Field.Emb.cardinal_separableClosure + theorem Field.finSepDegree_eq + theorem Field.finSepDegree_mul_finInsepDegree + theorem IntermediateField.eq_bot_of_isPurelyInseparable_of_isSeparable + theorem IsPurelyInseparable.bijective_algebraMap_of_isSeparable + theorem IsPurelyInseparable.bijective_comp_algebraMap + theorem IsPurelyInseparable.bijective_restrictDomain + theorem IsPurelyInseparable.finInsepDegree_eq + theorem IsPurelyInseparable.finSepDegree_eq_one + theorem IsPurelyInseparable.injective_comp_algebraMap + theorem IsPurelyInseparable.injective_restrictDomain + theorem IsPurelyInseparable.insepDegree_eq + theorem IsPurelyInseparable.inseparable + theorem IsPurelyInseparable.isAlgebraic + theorem IsPurelyInseparable.isIntegral' + theorem IsPurelyInseparable.minpoly_eq_X_pow_sub_C + theorem IsPurelyInseparable.minpoly_eq_X_sub_C_pow + theorem IsPurelyInseparable.natSepDegree_eq_one + theorem IsPurelyInseparable.of_injective_comp_algebraMap + theorem IsPurelyInseparable.pow_mem + theorem IsPurelyInseparable.sepDegree_eq_one + theorem IsPurelyInseparable.surjective_algebraMap_of_isSeparable + theorem IsPurelyInseparable.tower_bot + theorem IsPurelyInseparable.tower_top + theorem IsPurelyInseparable.trans + theorem Subalgebra.eq_bot_of_isPurelyInseparable_of_isSeparable + theorem eq_separableClosure + theorem eq_separableClosure_iff + theorem isPurelyInseparable_iff + theorem isPurelyInseparable_iff_fd_isPurelyInseparable + theorem isPurelyInseparable_iff_finSepDegree_eq_one + theorem isPurelyInseparable_iff_minpoly_eq_X_pow_sub_C + theorem isPurelyInseparable_iff_minpoly_eq_X_sub_C_pow + theorem isPurelyInseparable_iff_natSepDegree_eq_one + theorem isPurelyInseparable_iff_pow_mem + theorem isPurelyInseparable_of_finSepDegree_eq_one + theorem isSepClosed_iff_isPurelyInseparable_algebraicClosure + theorem separableClosure.adjoin_eq_of_isAlgebraic + theorem separableClosure.adjoin_eq_of_isAlgebraic_of_isSeparable + theorem separableClosure.eq_bot_iff + theorem separableClosure.eq_bot_of_isPurelyInseparable + theorem separableClosure_le + theorem separableClosure_le_iff Added Mathlib/FieldTheory/PurelyInseparable/PerfectClosure.lean + def Basis.mapPowExpCharPowOfIsSeparable + theorem Field.span_map_pow_expChar_pow_eq_top_of_isSeparable + theorem IntermediateField.adjoin_eq_adjoin_pow_expChar_of_isSeparable' + theorem IntermediateField.adjoin_eq_adjoin_pow_expChar_of_isSeparable + theorem IntermediateField.adjoin_eq_adjoin_pow_expChar_pow_of_isSeparable' + theorem IntermediateField.adjoin_eq_adjoin_pow_expChar_pow_of_isSeparable + theorem IntermediateField.adjoin_simple_eq_adjoin_pow_expChar_of_isSeparable' + theorem IntermediateField.adjoin_simple_eq_adjoin_pow_expChar_of_isSeparable + theorem IntermediateField.adjoin_simple_eq_adjoin_pow_expChar_pow_of_isSeparable' + theorem IntermediateField.adjoin_simple_eq_adjoin_pow_expChar_pow_of_isSeparable + theorem IntermediateField.isPurelyInseparable_adjoin_iff_pow_mem + theorem IntermediateField.isPurelyInseparable_adjoin_simple_iff_natSepDegree_eq_one + theorem IntermediateField.isPurelyInseparable_adjoin_simple_iff_pow_mem + theorem LinearIndependent.map_pow_expChar_pow_of_isSeparable' + theorem LinearIndependent.map_pow_expChar_pow_of_isSeparable + theorem isPurelyInseparable_iff_perfectClosure_eq_top + theorem le_perfectClosure + theorem le_perfectClosure_iff + theorem map_mem_perfectClosure_iff + theorem mem_perfectClosure_iff + theorem mem_perfectClosure_iff_natSepDegree_eq_one + theorem mem_perfectClosure_iff_pow_mem + def perfectClosure.algEquivOfAlgEquiv + theorem perfectClosure.comap_eq_of_algHom + theorem perfectClosure.eq_bot_of_isSeparable + theorem perfectClosure.map_eq_of_algEquiv + theorem perfectClosure.map_le_of_algHom + def perfectClosure + theorem perfectField_iff_isSeparable_algebraicClosure + theorem perfectField_of_isSeparable_of_perfectField_top + theorem perfectField_of_perfectClosure_eq_bot + theorem separableClosure_inf_perfectClosure Added Mathlib/FieldTheory/PurelyInseparable/Tower.lean + theorem Field.lift_rank_mul_lift_sepDegree_of_isSeparable + theorem Field.lift_sepDegree_mul_lift_sepDegree_of_isAlgebraic + theorem Field.rank_mul_sepDegree_of_isSeparable + theorem Field.sepDegree_eq_of_isPurelyInseparable + theorem Field.sepDegree_eq_of_isPurelyInseparable_of_isSeparable + theorem Field.sepDegree_mul_sepDegree_of_isAlgebraic + theorem IntermediateField.sepDegree_adjoin_eq_of_isAlgebraic_of_isPurelyInseparable' + theorem IntermediateField.sepDegree_adjoin_eq_of_isAlgebraic_of_isPurelyInseparable + theorem LinearIndependent.map_of_isPurelyInseparable_of_isSeparable + theorem Polynomial.Separable.map_irreducible_of_isPurelyInseparable + theorem minpoly.map_eq_of_isSeparable_of_isPurelyInseparable Modified Mathlib/RingTheory/Unramified/Field.lean 2025-02-03 08:31:19 e6775ea feat: principle of isolated zeros for meromorphic functions (#21083) Establish a principle of isolated zeros and show that the set where a meromorphic function has infinite order is clopen in the domain of meromorphy. These theorems are used in [Project VD](https://github.com/kebekus/ProjectVD), which aims to formalize Value Distribution Theory for meromorphic functions on the complex plane. ESTIMATED CHANGES Modified Mathlib/Analysis/Analytic/IsolatedZeros.lean + theorem AnalyticOnNhd.isClopen_setOf_order_eq_top Modified Mathlib/Analysis/Analytic/Meromorphic.lean + theorem MeromorphicAt.eventually_eq_zero_or_eventually_ne_zero + theorem MeromorphicOn.exists_order_ne_top_iff_forall + theorem MeromorphicOn.isClopen_setOf_order_eq_top + theorem MeromorphicOn.order_ne_top_of_isPreconnected 2025-02-03 07:17:39 da0385c chore(Logic/Equiv): change type of `sumEquivSigmaBool` to simp normal form (#21338) `simp` eagerly rewrites `Bool.casesOn` to `Bool.rec`, so using the former in the type signature prevents related `simp` lemmas from firing. See [Zulip discussion](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/.60.40.5Bsimp.5D.60.20lemmas.20about.20Equiv.2EsumEquivSigmaBool.20don't.20fire). ESTIMATED CHANGES Modified Mathlib/Logic/Equiv/Basic.lean +/- def Equiv.sumEquivSigmaBool 2025-02-03 07:17:38 ec5b379 refactor(Topology/Constructible): use `QuasiSeparatedSpace` (#21325) A few lemmas took assumptions of the form`IsTopologicalBasis (range b)` + `∀ i j, IsCompact (b i ∩ b j)`. But this is equivalent to the more natural set of assumptions `IsTopologicalBasis (range b)` + `∀ i, IsCompact (b i)` + `QuasiSeparatedSpace X`. Also link to [Stacks 0069](https://stacks.math.columbia.edu/tag/0069). ESTIMATED CHANGES Modified Mathlib/Topology/Constructible.lean Modified Mathlib/Topology/QuasiSeparated.lean + theorem IsCompact.inter_of_isOpen +/- theorem IsQuasiSeparated.of_quasiSeparatedSpace +/- theorem QuasiSeparatedSpace.of_isOpenEmbedding + theorem QuasiSeparatedSpace.of_isTopologicalBasis 2025-02-03 07:17:36 600654a feat(Order): Fin.succAboveOrderIso (#21303) This PR introduces the order isomorphism `Fin.succAboveOrderIso i : Fin (n + 1) ≃o ({i}ᶜ : Finset (Fin (n + 2)))` for `i : Fin (n + 2)`. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Data/Fin/Basic.lean + theorem Fin.succ_succAbove_predAbove Added Mathlib/Order/Fin/SuccAboveOrderIso.lean 2025-02-03 07:17:35 9d5ba20 feat(SimpleGraph/Operations): add edge_comm and lt_sup_edge (#21261) ESTIMATED CHANGES Modified Mathlib/Combinatorics/SimpleGraph/Operations.lean + theorem SimpleGraph.edge_comm + theorem SimpleGraph.lt_sup_edge 2025-02-03 07:17:34 5968bbe doc(docs/1000.yaml): remove incorrect description (#21248) In my previous PR, I added incorrect description to Smn theorem. `Nat.Partrec'` is different from the definition of usual partial recursive functions, because it does't allow recursion on partial recursive functions. ESTIMATED CHANGES Modified docs/1000.yaml 2025-02-03 07:17:33 d2ce923 feat(Topology/ContinuousMap/CompactlySupported): add `partialOrder` (#21206) Add `instance : PartialOrder C_c(α, β)` using pointwise `PartialOrder β`, following [ContinuousMap.partialOrder](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Topology/ContinuousMap/Ordered.html#ContinuousMap.partialOrder) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Topology/Algebra/Order/Support.lean + theorem HasCompactMulSupport.inf + theorem HasCompactMulSupport.sup Modified Mathlib/Topology/ContinuousMap/CompactlySupported.lean + theorem CompactlySupportedContinuousMap.coe_finsetInf' + theorem CompactlySupportedContinuousMap.coe_finsetSup' + theorem CompactlySupportedContinuousMap.coe_inf + theorem CompactlySupportedContinuousMap.coe_sup + theorem CompactlySupportedContinuousMap.finsetInf'_apply + theorem CompactlySupportedContinuousMap.finsetSup'_apply + theorem CompactlySupportedContinuousMap.inf_apply + theorem CompactlySupportedContinuousMap.le_def + theorem CompactlySupportedContinuousMap.lt_def + theorem CompactlySupportedContinuousMap.sup_apply 2025-02-03 07:17:32 fd5d857 feat(Topology/ContinuousMap/CompactlySupported): left-composition with a continuous map (#21205) Add `compLeft` which gives `g ∘ f : C_c(α, γ)` from `g : C(β, γ)`, `f : C_c(α, β))`. ESTIMATED CHANGES Modified Mathlib/Topology/ContinuousMap/CompactlySupported.lean + theorem CompactlySupportedContinuousMap.coe_compLeft + theorem CompactlySupportedContinuousMap.compLeft_apply + theorem CompactlySupportedContinuousMap.toContinuousMap_compLeft 2025-02-03 06:56:31 cd5fbfb chore: replace the lemma that `dist 1 = norm` by `dist 1 a = ‖a‖` (#21340) This is much easier to use in `rw` as one can specify which occurrence to target. ESTIMATED CHANGES Modified Mathlib/Analysis/Convex/StrictConvexBetween.lean Modified Mathlib/Analysis/Normed/Group/Basic.lean + theorem dist_one +/- theorem dist_one_left Modified Mathlib/Analysis/Normed/Group/Uniform.lean 2025-02-03 06:30:34 13a1900 feat: `check_compositions`, a tactic for diagnosing defeq problems in category theory (#21357) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/CategoryTheory/Functor/Basic.lean Modified Mathlib/Tactic.lean Added Mathlib/Tactic/CategoryTheory/CheckCompositions.lean + def Mathlib.Tactic.CheckCompositions.checkComposition + def Mathlib.Tactic.CheckCompositions.checkCompositions + def Mathlib.Tactic.CheckCompositions.checkCompositionsTac + def Mathlib.Tactic.CheckCompositions.forEachComposition Modified scripts/noshake.json 2025-02-03 05:29:21 b76b14c feat(CategoryTheory): the class of morphisms given by a family of maps (#21354) Given a family of morphisms `f i : X i ⟶ Y i` in a category `C`, this PR introduces that the class of morphisms `ofHoms f : MorphismProperty C` consisting of these morphisms `f i`. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Comma/Arrow.lean + theorem CategoryTheory.Arrow.arrow_mk_comp_eqToHom + theorem CategoryTheory.Arrow.arrow_mk_eqToHom_comp +/- theorem CategoryTheory.Arrow.ext + theorem CategoryTheory.Arrow.functor_ext +/- def CategoryTheory.Arrow.isoOfNatIso + theorem CategoryTheory.Arrow.mk_eq_mk_iff Modified Mathlib/CategoryTheory/Comma/CardinalArrow.lean Modified Mathlib/CategoryTheory/Localization/Triangulated.lean Modified Mathlib/CategoryTheory/MorphismProperty/Basic.lean + theorem CategoryTheory.MorphismProperty.arrow_mk_mem_toSet_iff + def CategoryTheory.MorphismProperty.homFamily + theorem CategoryTheory.MorphismProperty.homFamily_apply + theorem CategoryTheory.MorphismProperty.homFamily_arrow_mk + inductive CategoryTheory.MorphismProperty.ofHoms + theorem CategoryTheory.MorphismProperty.ofHoms_homFamily + theorem CategoryTheory.MorphismProperty.ofHoms_iff +/- theorem CategoryTheory.MorphismProperty.of_eq + def CategoryTheory.MorphismProperty.toSet 2025-02-02 22:26:17 8926633 chore: tidy various files (#20225) ESTIMATED CHANGES Modified Mathlib/Algebra/BigOperators/Associated.lean Modified Mathlib/Algebra/Divisibility/Units.lean Modified Mathlib/Algebra/Group/WithOne/Basic.lean Modified Mathlib/Algebra/GroupWithZero/Basic.lean +/- theorem pow_eq_zero_of_le Modified Mathlib/Algebra/Homology/DerivedCategory/Ext/Basic.lean Modified Mathlib/Algebra/Module/LocalizedModule/Basic.lean Modified Mathlib/AlgebraicGeometry/OpenImmersion.lean Modified Mathlib/Analysis/Analytic/Composition.lean Modified Mathlib/Analysis/Calculus/FDeriv/Prod.lean Modified Mathlib/Analysis/SpecialFunctions/Log/Deriv.lean Modified Mathlib/CategoryTheory/Abelian/Refinements.lean Modified Mathlib/Combinatorics/SimpleGraph/Connectivity/Subgraph.lean Modified Mathlib/Combinatorics/SimpleGraph/Walk.lean Modified Mathlib/Data/Nat/Choose/Lucas.lean Modified Mathlib/Data/Set/Image.lean Modified Mathlib/Data/Setoid/Basic.lean Modified Mathlib/Geometry/Manifold/ChartedSpace.lean Modified Mathlib/Geometry/Manifold/MFDeriv/UniqueDifferential.lean Modified Mathlib/LinearAlgebra/Projectivization/Cardinality.lean Modified Mathlib/MeasureTheory/Decomposition/RadonNikodym.lean Modified Mathlib/MeasureTheory/Function/SimpleFunc.lean Modified Mathlib/MeasureTheory/Measure/Haar/Unique.lean Modified Mathlib/MeasureTheory/Measure/Hausdorff.lean Modified Mathlib/MeasureTheory/VectorMeasure/WithDensity.lean Modified Mathlib/NumberTheory/NumberField/EquivReindex.lean Modified Mathlib/NumberTheory/NumberField/House.lean Modified Mathlib/Probability/Density.lean Modified Mathlib/Probability/Distributions/Gaussian.lean Modified Mathlib/RingTheory/FiniteLength.lean Modified Mathlib/RingTheory/Ideal/Quotient/Operations.lean Modified Mathlib/RingTheory/LaurentSeries.lean Modified Mathlib/RingTheory/Nilpotent/Defs.lean +/- theorem IsNilpotent.of_pow +/- theorem IsNilpotent.pow_iff_pos Modified Mathlib/RingTheory/RingHom/FinitePresentation.lean Modified Mathlib/RingTheory/Spectrum/Prime/Module.lean Modified Mathlib/RingTheory/Support.lean Modified Mathlib/Topology/MetricSpace/HolderNorm.lean Modified Mathlib/Topology/Order/UpperLowerSetTopology.lean +/- def Topology.lowerSet +/- def Topology.upperSet 2025-02-02 21:08:38 229276c feat: `vectorSpan k (v +ᵥ s) = vectorSpan k s` (#21305) From PFR ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/AffineSpace/AffineSubspace.lean + theorem vectorSpan_vadd 2025-02-02 20:52:02 5c57f97 feat(CategoryTheory/Limits/Shapes/Preorder): principal segments (#21055) In the study of well order continuous functors, we now use the initial/principal segment API from order theory. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Preorder/HasIterationOfShape.lean + theorem CategoryTheory.Limits.hasColimitsOfShape_of_initialSeg + theorem CategoryTheory.Limits.hasColimitsOfShape_of_isSuccLimit' + theorem CategoryTheory.Limits.hasIterationOfShape_of_initialSeg Added Mathlib/CategoryTheory/Limits/Shapes/Preorder/PrincipalSeg.lean + def PrincipalSeg.cocone Modified Mathlib/CategoryTheory/Limits/Shapes/Preorder/WellOrderContinuous.lean - def CategoryTheory.Functor.coconeLT - def CategoryTheory.Functor.restrictionLT Added Mathlib/Order/Interval/Set/InitialSeg.lean + def Set.initialSegIic + def Set.initialSegIicIicOfLE + def Set.principalSegIio + def Set.principalSegIioIicOfLE + theorem Set.principalSegIioIicOfLE_toRelEmbedding + theorem Set.principalSegIio_toRelEmbedding 2025-02-02 19:39:31 83b6fa7 feat(CategoryTheory): preservation of coimage-image comparisons (#21348) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/CategoryTheory/Abelian/Images.lean Modified Mathlib/CategoryTheory/Abelian/Transfer.lean - def CategoryTheory.AbelianOfAdjunction.coimageIsoImage - def CategoryTheory.AbelianOfAdjunction.coimageIsoImageAux - theorem CategoryTheory.AbelianOfAdjunction.coimageIsoImage_hom - def CategoryTheory.AbelianOfAdjunction.cokernelIso Added Mathlib/CategoryTheory/Limits/Preserves/Shapes/AbelianImages.lean + theorem CategoryTheory.Abelian.PreservesCoimage.factorThruCoimage_iso_hom + theorem CategoryTheory.Abelian.PreservesCoimage.factorThruCoimage_iso_inv + theorem CategoryTheory.Abelian.PreservesCoimage.hom_coimageImageComparison + def CategoryTheory.Abelian.PreservesCoimage.iso + theorem CategoryTheory.Abelian.PreservesCoimage.iso_hom_π + theorem CategoryTheory.Abelian.PreservesCoimage.iso_inv_π + def CategoryTheory.Abelian.PreservesCoimageImageComparison.iso + theorem CategoryTheory.Abelian.PreservesImage.factorThruImage_iso_hom + theorem CategoryTheory.Abelian.PreservesImage.factorThruImage_iso_inv + def CategoryTheory.Abelian.PreservesImage.iso + theorem CategoryTheory.Abelian.PreservesImage.iso_hom_ι + theorem CategoryTheory.Abelian.PreservesImage.iso_inv_ι Modified Mathlib/CategoryTheory/Limits/Preserves/Shapes/Kernels.lean + theorem CategoryTheory.Limits.PreservesCokernel.π_iso_hom + theorem CategoryTheory.Limits.PreservesKernel.iso_inv_ι 2025-02-02 18:08:31 3c77579 fix(Linter/OldObtain): typos (#21335) typos I noticed while reading. ESTIMATED CHANGES Modified Mathlib/Tactic/Linter/OldObtain.lean Modified MathlibTest/oldObtain.lean 2025-02-02 17:46:16 be693c2 feat(CategoryTheory/Grothendieck): transport; pre preserves equivalences of categories (#19484) This change proves that `Grothendieck.pre F G` is an equivalence if `G` is an equivalence. An essential ingredient in the proof is the `transport` construction: Given a morphism in the base category, `transport` yields a map between fibers of the Grothendieck construction. This PR is part of the effort to prove the Freyd-Mitchell embedding theorem. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/EqToHom.lean Modified Mathlib/CategoryTheory/Grothendieck.lean + theorem CategoryTheory.Grothendieck.base_eqToHom + theorem CategoryTheory.Grothendieck.fiber_eqToHom + def CategoryTheory.Grothendieck.isoMk + def CategoryTheory.Grothendieck.mapWhiskerLeftIsoConjPreMap + def CategoryTheory.Grothendieck.preEquivalence + def CategoryTheory.Grothendieck.preInv + def CategoryTheory.Grothendieck.preNatIso + theorem CategoryTheory.Grothendieck.pre_comp + theorem CategoryTheory.Grothendieck.pre_comp_map + theorem CategoryTheory.Grothendieck.pre_comp_map_assoc + theorem CategoryTheory.Grothendieck.pre_id + def CategoryTheory.Grothendieck.toTransport + def CategoryTheory.Grothendieck.transport + def CategoryTheory.Grothendieck.transportIso 2025-02-02 14:25:33 edfa348 chore: remove references to `_root_.Embedding` (#21345) This was renamed to `Topology.IsEmbedding` in #15993 and #18133 and those docstrings should have been fixed. ESTIMATED CHANGES Modified Mathlib/Topology/Algebra/StarSubalgebra.lean Modified Mathlib/Topology/Algebra/Support.lean Modified Mathlib/Topology/Compactness/Compact.lean Modified Mathlib/Topology/Compactness/Lindelof.lean Modified Mathlib/Topology/Compactness/SigmaCompact.lean Modified Mathlib/Topology/Defs/Induced.lean 2025-02-02 14:16:41 72fe8e2 perf(Algebra.Quaternion): reorder instances in spread (#21030) As @JovanGerb reminded me, we still have some places where supplied instance ordering can result in an unnecessarily unfolded term. `Quaternion.instDivisionRing` is one such. ESTIMATED CHANGES Modified Mathlib/Algebra/Quaternion.lean 2025-02-02 13:52:14 794c8dd perf: fix some slow declarations (#21323) This PR fixes some slow declarations, by - changing the proof slightly so that unification is happier - giving more arguments in a `rw` theorem - replacing a slow `set` with `let`. - explicitly supplying an autoparam proof, or adding the result to the context to help the autoparam. - fixing a type so that a slow `erw` can become a less slow `rw`. - replacing `‹Ring R›` with `(‹Ring R›:)`, which forces the expression to be fully elaborated immediately, instead of temporarily turning into a synthetic metavariable. - reordering the instances in a spread construction of an instance (so that the ancestor that is represented as a subobject field comes first). See also #21030 for another example of this. To find most of these, I took a look at the declarations that use at least 100000 heartbeats (i.e. at least half of the default maximum). ESTIMATED CHANGES Modified Mathlib/Algebra/Category/ModuleCat/Monoidal/Closed.lean Modified Mathlib/Algebra/Field/IsField.lean Modified Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Order.lean Modified Mathlib/Analysis/Calculus/ContDiff/Bounds.lean Modified Mathlib/FieldTheory/IsAlgClosed/Basic.lean Modified Mathlib/MeasureTheory/Function/Jacobian.lean Modified Mathlib/Probability/Kernel/Disintegration/Density.lean Modified Mathlib/RepresentationTheory/GroupCohomology/Resolution.lean +/- theorem Rep.diagonalHomEquiv_apply Modified Mathlib/RingTheory/DedekindDomain/Ideal.lean Modified Mathlib/RingTheory/IntegralDomain.lean Modified Mathlib/RingTheory/PowerSeries/Order.lean 2025-02-02 12:28:04 7eeba0a feat: creation of products and equalizers implies creation of limits (#21321) ESTIMATED CHANGES Modified Mathlib/Algebra/Category/Grp/Ulift.lean Modified Mathlib/CategoryTheory/Limits/Constructions/LimitsOfProductsAndEqualizers.lean Modified Mathlib/CategoryTheory/Limits/Creates.lean - def CategoryTheory.createsColimitOfFullyFaithfulOfPreserves + def CategoryTheory.createsColimitOfReflectsIsomorphismsOfPreserves + def CategoryTheory.createsLimitOfReflectsIsomorphismsOfPreserves Modified Mathlib/CategoryTheory/Limits/Preserves/Finite.lean Modified Mathlib/CategoryTheory/Limits/Preserves/Ulift.lean 2025-02-02 12:17:37 67a5732 perf(CategoryTheory/Shift/Induced): remove `@[simp]` from `shiftFunctor_of_induced` (#21329) This PR removes the `simp` tag from `shiftFunctor_of_induced`. This lemma isn't used, and it has a very unfavourable discrimination tree key, meaning that it is tried every time the constant `shiftFunctor` appears. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Shift/Induced.lean 2025-02-02 10:50:25 8f1b057 chore: make `‖x‖ₑ.toReal = ‖x‖` simp (#21327) From LeanAPAP ESTIMATED CHANGES Modified Mathlib/Analysis/Normed/Group/Basic.lean 2025-02-02 08:19:32 702f356 chore(GroupTheory/SpecificGroups/Cyclic): isCyclic_of_card_le_orderOf (#21297) ESTIMATED CHANGES Modified Mathlib/GroupTheory/OrderOfElement.lean + theorem orderOf_le_card Modified Mathlib/GroupTheory/SpecificGroups/Cyclic.lean + theorem isCyclic_iff_exists_natCard_le_orderOf + theorem isCyclic_of_card_le_orderOf 2025-02-02 00:16:49 5608064 chore(scripts): update nolints.json (#21334) I am happy to remove some nolints for you! ESTIMATED CHANGES Modified scripts/nolints.json 2025-02-01 21:35:25 388ed47 feat(CategoryTheory): creation of finite limits (#21320) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/CategoryTheory/Limits/Creates.lean + def CategoryTheory.createsColimitsOfShapeOfEquiv + def CategoryTheory.createsLimitsOfShapeOfEquiv Added Mathlib/CategoryTheory/Limits/Preserves/Creates/Finite.lean + def CategoryTheory.Limits.CreatesColimitsOfSize.createsFiniteColimits + def CategoryTheory.Limits.CreatesLimitsOfSize.createsFiniteLimits + def CategoryTheory.Limits.createsFiniteColimitsOfCreatesFiniteColimitsOfSize + def CategoryTheory.Limits.createsFiniteColimitsOfNatIso + def CategoryTheory.Limits.createsFiniteCoproductsOfNatIso + def CategoryTheory.Limits.createsFiniteLimitsOfCreatesFiniteLimitsOfSize + def CategoryTheory.Limits.createsFiniteLimitsOfNatIso + def CategoryTheory.Limits.createsFiniteProductsOfNatIso 2025-02-01 19:49:56 6dfb5dc chore: update Mathlib dependencies 2025-02-01 (#21328) This PR updates the Mathlib dependencies. ESTIMATED CHANGES Modified lake-manifest.json 2025-02-01 17:04:04 313efeb chore(GroupTheory/SpecificGroups/Alternating.lean): follow last minute review of JX (#21314) This PR makes 3 modifications suggested by @alreadydone when he delegated the merge yesterday night. suggestions that I hadn't detected in my email. ESTIMATED CHANGES Modified Mathlib/GroupTheory/SpecificGroups/Alternating.lean + theorem alternatingGroup.index_eq_one - theorem index_eq_one 2025-02-01 15:38:45 3d94db3 feat: `‖x‖ₑ.toNNReal = ‖x‖₊` (#21306) From LeanAPAP ESTIMATED CHANGES Modified Mathlib/Analysis/Normed/Group/Basic.lean + theorem toNNReal_enorm 2025-02-01 13:19:29 213a36c chore: cleanup imports in Archive/IfNormalization (#21318) ESTIMATED CHANGES Modified Archive/Examples/IfNormalization/Result.lean Modified Archive/Examples/IfNormalization/WithoutAesop.lean 2025-02-01 12:30:25 81a72b9 doc: fix several typos (#21315) Fix several typos in the documentation that I myself introduced yesterday :-( I apologize for causing this extra work. ESTIMATED CHANGES Modified Mathlib/Analysis/SpecialFunctions/Log/PosLog.lean 2025-02-01 11:21:25 19755f8 feat(CategoryTheory): transfer being iso along an iso in the arrow category (#21310) This is probably the minmal set of necessary lemmas ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Comma/Arrow.lean + theorem CategoryTheory.Arrow.isIso_hom_iff_isIso_hom_of_isIso + theorem CategoryTheory.Arrow.isIso_hom_iff_isIso_of_isIso + theorem CategoryTheory.Arrow.isIso_iff_isIso_of_isIso + theorem CategoryTheory.Arrow.isIso_of_isIso 2025-02-01 09:03:36 fb51fb6 chore: delete declarations deprecated between 2024-01 and 2024-07 (#21271) The first commit was done by replacing all matches of `@\[deprecated.*\(since := "2024-0[1-7]-.."\)\][\s\n]?(protected )?alias [_a-zA-Zα-ωΑ-Ωϊ-ϻἀ-῾℀-⅏𝒜-𝖟'.₀₁₂₃₄₅₆₇₈₉]* :=[\s\n]+[_a-zA-Zα-ωΑ-Ωϊ-ϻἀ-῾℀-⅏𝒜-𝖟'.₀₁₂₃₄₅₆₇₈₉]*\n\n?` with nothing. The second commit was done manually. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Algebra/Equiv.lean Modified Mathlib/Algebra/Algebra/Hom.lean Modified Mathlib/Algebra/Algebra/Quasispectrum.lean Modified Mathlib/Algebra/Algebra/Rat.lean - theorem algebraMap_rat_rat Modified Mathlib/Algebra/Algebra/Spectrum.lean - theorem spectrum.subset_starSubalgebra Modified Mathlib/Algebra/Algebra/Subalgebra/Basic.lean Modified Mathlib/Algebra/BigOperators/Group/Finset/Basic.lean - theorem Multiset.sum_count_eq Modified Mathlib/Algebra/BigOperators/Group/Finset/Defs.lean Modified Mathlib/Algebra/BigOperators/Group/List/Basic.lean Modified Mathlib/Algebra/BigOperators/Group/List/Lemmas.lean - theorem List.drop_take_succ_join_eq_get Modified Mathlib/Algebra/BigOperators/Ring.lean Modified Mathlib/Algebra/CharP/ExpChar.lean Modified Mathlib/Algebra/CharZero/Lemmas.lean Modified Mathlib/Algebra/DirectSum/Internal.lean Modified Mathlib/Algebra/Field/Defs.lean Modified Mathlib/Algebra/Field/Subfield/Defs.lean Modified Mathlib/Algebra/Group/AddChar.lean - def AddChar.IsNontrivial - theorem AddChar.isNontrivial_iff_ne_trivial Modified Mathlib/Algebra/Group/Basic.lean Modified Mathlib/Algebra/Group/Even.lean Modified Mathlib/Algebra/Group/Hom/Instances.lean Modified Mathlib/Algebra/Group/Subgroup/ZPowers/Lemmas.lean Modified Mathlib/Algebra/Group/Units/Basic.lean Modified Mathlib/Algebra/GroupWithZero/Associated.lean Modified Mathlib/Algebra/GroupWithZero/Center.lean - theorem Set.div_mem_center₀ - theorem Set.inv_mem_center₀ Modified Mathlib/Algebra/GroupWithZero/Units/Basic.lean Modified Mathlib/Algebra/Homology/ShortComplex/Exact.lean Modified Mathlib/Algebra/Lie/Weights/Linear.lean Modified Mathlib/Algebra/Module/Basic.lean Modified Mathlib/Algebra/Module/End.lean - theorem zsmul_eq_smul_cast Modified Mathlib/Algebra/Module/NatInt.lean - theorem nsmul_eq_smul_cast Modified Mathlib/Algebra/Module/Rat.lean Modified Mathlib/Algebra/MonoidAlgebra/Defs.lean Modified Mathlib/Algebra/Order/AddTorsor.lean Modified Mathlib/Algebra/Order/Floor.lean Modified Mathlib/Algebra/Order/Group/Unbundled/Int.lean Modified Mathlib/Algebra/Order/GroupWithZero/Unbundled.lean Modified Mathlib/Algebra/Order/Interval/Set/Group.lean Modified Mathlib/Algebra/Order/Monoid/Canonical/Defs.lean Modified Mathlib/Algebra/Order/Monoid/Unbundled/Basic.lean Modified Mathlib/Algebra/Order/Monoid/Unbundled/WithTop.lean Modified Mathlib/Algebra/Order/Nonneg/Basic.lean Modified Mathlib/Algebra/Order/Rearrangement.lean Modified Mathlib/Algebra/Order/ToIntervalMod.lean Modified Mathlib/Algebra/Polynomial/AlgebraMap.lean Modified Mathlib/Algebra/Polynomial/Basic.lean Modified Mathlib/Algebra/Polynomial/Coeff.lean Modified Mathlib/Algebra/Polynomial/Degree/Definitions.lean Modified Mathlib/Algebra/Polynomial/Degree/TrailingDegree.lean Modified Mathlib/Algebra/Polynomial/Derivative.lean Modified Mathlib/Algebra/Polynomial/Div.lean Modified Mathlib/Algebra/Polynomial/Eval/Coeff.lean Modified Mathlib/Algebra/Polynomial/Eval/Defs.lean Modified Mathlib/Algebra/Polynomial/Smeval.lean Modified Mathlib/Algebra/Quaternion.lean Modified Mathlib/Algebra/Ring/CentroidHom.lean Modified Mathlib/Algebra/Ring/Parity.lean Modified Mathlib/Algebra/Ring/Rat.lean Modified Mathlib/Algebra/Ring/Subring/Defs.lean Modified Mathlib/Algebra/Ring/Subsemiring/Defs.lean Modified Mathlib/Algebra/Squarefree/Basic.lean Modified Mathlib/Algebra/Star/Module.lean Modified Mathlib/Algebra/TrivSqZeroExt.lean Modified Mathlib/Algebra/Vertex/HVertexOperator.lean Modified Mathlib/AlgebraicGeometry/AffineScheme.lean Modified Mathlib/AlgebraicGeometry/Cover/Open.lean Modified Mathlib/AlgebraicGeometry/EllipticCurve/Affine.lean Modified Mathlib/AlgebraicGeometry/GammaSpecAdjunction.lean Modified Mathlib/AlgebraicGeometry/Morphisms/Basic.lean Modified Mathlib/AlgebraicGeometry/Morphisms/Constructors.lean Modified Mathlib/AlgebraicGeometry/ProjectiveSpectrum/StructureSheaf.lean Modified Mathlib/AlgebraicGeometry/Restrict.lean Modified Mathlib/AlgebraicGeometry/Scheme.lean Modified Mathlib/AlgebraicGeometry/StructureSheaf.lean Modified Mathlib/Analysis/Asymptotics/Lemmas.lean Modified Mathlib/Analysis/CStarAlgebra/Multiplier.lean Modified Mathlib/Analysis/Calculus/FDeriv/Add.lean - theorem differentiableAt_const_sub_iff - theorem differentiableAt_sub_const_iff - theorem differentiableOn_const_sub_iff - theorem differentiableOn_sub_const_iff - theorem differentiable_const_sub_iff - theorem differentiable_sub_const_iff Modified Mathlib/Analysis/Calculus/FDeriv/Extend.lean Modified Mathlib/Analysis/Calculus/LocalExtr/Basic.lean Modified Mathlib/Analysis/Complex/Basic.lean Modified Mathlib/Analysis/Complex/Circle.lean - def circle - theorem mem_circle_iff_abs - theorem mem_circle_iff_normSq Modified Mathlib/Analysis/Convex/Integral.lean Modified Mathlib/Analysis/FunctionalSpaces/SobolevInequality.lean Modified Mathlib/Analysis/Normed/Group/AddCircle.lean Modified Mathlib/Analysis/Normed/Group/Basic.lean Modified Mathlib/Analysis/Normed/Group/Int.lean Modified Mathlib/Analysis/Normed/Lp/lpSpace.lean Modified Mathlib/Analysis/NormedSpace/Int.lean Modified Mathlib/Analysis/PSeries.lean Modified Mathlib/Analysis/SpecialFunctions/Complex/Circle.lean Modified Mathlib/Analysis/SpecialFunctions/Exp.lean Modified Mathlib/Analysis/SpecialFunctions/Log/Base.lean Modified Mathlib/Analysis/SpecialFunctions/Log/Basic.lean Modified Mathlib/Analysis/SpecialFunctions/PolarCoord.lean Modified Mathlib/Analysis/SpecialFunctions/Pow/Complex.lean Modified Mathlib/Analysis/SpecialFunctions/Pow/NNReal.lean - theorem ENNReal.le_rpow_one_div_iff - theorem ENNReal.lt_rpow_one_div_iff - theorem ENNReal.rpow_one_div_le_iff - theorem NNReal.eq_rpow_one_div_iff - theorem NNReal.le_rpow_one_div_iff - theorem NNReal.rpow_one_div_eq_iff - theorem NNReal.rpow_one_div_le_iff Modified Mathlib/Analysis/SpecialFunctions/Pow/Real.lean Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Angle.lean Modified Mathlib/Analysis/SpecificLimits/Normed.lean Modified Mathlib/CategoryTheory/Abelian/Exact.lean Modified Mathlib/CategoryTheory/Adjunction/FullyFaithful.lean Modified Mathlib/CategoryTheory/Adjunction/Mates.lean Modified Mathlib/CategoryTheory/Adjunction/Over.lean Modified Mathlib/CategoryTheory/DiscreteCategory.lean Modified Mathlib/CategoryTheory/Equivalence.lean Modified Mathlib/CategoryTheory/EssentialImage.lean Modified Mathlib/CategoryTheory/Functor/Category.lean Modified Mathlib/CategoryTheory/Functor/FullyFaithful.lean Modified Mathlib/CategoryTheory/Functor/ReflectsIso.lean Modified Mathlib/CategoryTheory/Idempotents/Karoubi.lean - theorem CategoryTheory.Idempotents.Karoubi.id_eq Modified Mathlib/CategoryTheory/Iso.lean Modified Mathlib/CategoryTheory/MorphismProperty/Basic.lean Modified Mathlib/CategoryTheory/Sites/DenseSubsite/InducedTopology.lean Modified Mathlib/CategoryTheory/Sites/DenseSubsite/SheafEquiv.lean Modified Mathlib/CategoryTheory/Sites/Sieves.lean Modified Mathlib/Combinatorics/Enumerative/Composition.lean - theorem List.get_splitWrtComposition' - theorem List.get_splitWrtComposition - theorem List.get_splitWrtCompositionAux Modified Mathlib/Control/LawfulFix.lean - theorem Part.fix_eq - theorem Part.to_unit_cont - theorem Pi.continuous_curry - theorem Pi.continuous_uncurry - theorem Pi.uncurry_curry_continuous Modified Mathlib/Data/Bool/Basic.lean Modified Mathlib/Data/Complex/Basic.lean Modified Mathlib/Data/ENNReal/Basic.lean Modified Mathlib/Data/ENNReal/Inv.lean Modified Mathlib/Data/ENNReal/Operations.lean Modified Mathlib/Data/ENNReal/Real.lean Modified Mathlib/Data/Fin/Basic.lean - theorem Fin.succAbove_lt_ge Modified Mathlib/Data/Fin/Tuple/Basic.lean - def Fin.extractNth Modified Mathlib/Data/Finset/Card.lean - theorem Finset.exists_intermediate_set - theorem Finset.exists_smaller_set Modified Mathlib/Data/Finset/NoncommProd.lean Modified Mathlib/Data/Finset/SDiff.lean - theorem Finset.inter_sdiff Modified Mathlib/Data/Finsupp/Weight.lean Modified Mathlib/Data/Int/AbsoluteValue.lean Modified Mathlib/Data/Int/Cast/Lemmas.lean Modified Mathlib/Data/Int/Cast/Pi.lean Modified Mathlib/Data/Int/CharZero.lean Modified Mathlib/Data/Int/Defs.lean Modified Mathlib/Data/Int/GCD.lean Modified Mathlib/Data/Int/Lemmas.lean Modified Mathlib/Data/Int/ModEq.lean Modified Mathlib/Data/Int/Order/Basic.lean Modified Mathlib/Data/Int/SuccPred.lean Modified Mathlib/Data/List/Basic.lean - theorem List.get?_length - theorem List.get?_zero_scanl - theorem List.get_map_rev - theorem List.get_reverse - theorem List.get_set_of_ne - theorem List.get_zero_scanl - theorem List.le_eq_not_gt - theorem List.sizeOf_dropSlice_lt - theorem List.sublist_of_cons_sublist_cons Modified Mathlib/Data/List/Defs.lean Modified Mathlib/Data/List/Enum.lean Modified Mathlib/Data/List/Flatten.lean - theorem List.drop_take_succ_eq_cons_get - theorem List.drop_take_succ_join_eq_get' Modified Mathlib/Data/List/GetD.lean Modified Mathlib/Data/List/InsertIdx.lean Modified Mathlib/Data/List/Lex.lean Modified Mathlib/Data/List/MinMax.lean - theorem List.maximum_eq_none - theorem List.minimum_eq_none Modified Mathlib/Data/List/OfFn.lean - theorem List.ofFn_get_eq_map Modified Mathlib/Data/List/Permutation.lean - theorem List.permutations'Aux_get_zero Modified Mathlib/Data/List/ToFinsupp.lean - theorem List.toFinsupp_cons_apply_succ - theorem List.toFinsupp_cons_apply_zero Modified Mathlib/Data/List/Zip.lean - theorem List.get_zip - theorem List.get_zipWith Modified Mathlib/Data/Multiset/Basic.lean Modified Mathlib/Data/NNRat/Defs.lean Modified Mathlib/Data/NNReal/Defs.lean Modified Mathlib/Data/Nat/Cast/Basic.lean Modified Mathlib/Data/Nat/Cast/Commute.lean Modified Mathlib/Data/Nat/Choose/Multinomial.lean Modified Mathlib/Data/Nat/Defs.lean - theorem Nat.div_mod_eq_mod_mul_div - def Nat.leRecOn' Modified Mathlib/Data/Nat/Factorization/Defs.lean Modified Mathlib/Data/Nat/Factors.lean Modified Mathlib/Data/Nat/PrimeFin.lean Modified Mathlib/Data/Nat/Squarefree.lean Modified Mathlib/Data/Num/Lemmas.lean Modified Mathlib/Data/Part.lean Modified Mathlib/Data/Prod/Basic.lean Modified Mathlib/Data/Rat/Cast/CharZero.lean Modified Mathlib/Data/Rat/Defs.lean Modified Mathlib/Data/Rat/Floor.lean Modified Mathlib/Data/Rat/Lemmas.lean Modified Mathlib/Data/Real/Irrational.lean - theorem irrational_sqrt_rat_iff Modified Mathlib/Data/Real/Sign.lean Modified Mathlib/Data/Seq/Seq.lean Modified Mathlib/Data/Set/Card.lean - theorem Set.exists_intermediate_Set - theorem Set.exists_intermediate_set' - theorem Set.exists_smaller_set Modified Mathlib/Data/Set/Image.lean - theorem Set.exists_subset_range_iff Modified Mathlib/Data/Set/Lattice.lean Modified Mathlib/Data/Set/List.lean Modified Mathlib/Data/Sigma/Basic.lean Modified Mathlib/Data/String/Basic.lean Modified Mathlib/Data/Subtype.lean Modified Mathlib/Data/UInt.lean Modified Mathlib/Data/Vector/Basic.lean Modified Mathlib/Data/Vector/Defs.lean Modified Mathlib/Data/ZMod/Basic.lean Modified Mathlib/Data/ZMod/ValMinAbs.lean Modified Mathlib/Deprecated/AlgebraClasses.lean - def StrictWeakOrder.Equiv - theorem StrictWeakOrder.erefl - theorem StrictWeakOrder.esymm - theorem StrictWeakOrder.etrans - theorem StrictWeakOrder.not_lt_of_equiv' - theorem StrictWeakOrder.not_lt_of_equiv - theorem eq_of_eqv_lt - theorem eq_of_incomp - theorem eqv_lt_iff_eq - theorem incomp_iff_eq - theorem incomp_trans - theorem incomp_trans_of - theorem isStrictWeakOrder_of_isTotalPreorder - theorem lt_of_incomp_of_lt - theorem lt_of_lt_of_incomp Modified Mathlib/Deprecated/Aliases.lean Modified Mathlib/Deprecated/Cardinal/Finite.lean Deleted Mathlib/Deprecated/Combinator.lean - def Combinator.I - def Combinator.K - def Combinator.S Deleted Mathlib/Deprecated/HashMap.lean - def Batteries.HashMap.consVal - def Batteries.HashMap.keys - def Batteries.HashMap.values - def Batteries.RBSet.insertList Deleted Mathlib/Deprecated/LazyList.lean - theorem LazyList.bind_singleton - def LazyList.listEquivLazyList Modified Mathlib/Deprecated/Logic.lean Modified Mathlib/Deprecated/NatLemmas.lean - theorem Nat.cond_decide_mod_two - theorem Nat.one_eq_succ_zero - def Nat.subInduction Deleted Mathlib/Deprecated/RelClasses.lean - theorem IsTotalPreorder.swap Modified Mathlib/Dynamics/Ergodic/Ergodic.lean Modified Mathlib/FieldTheory/IntermediateField/Adjoin/Defs.lean Modified Mathlib/FieldTheory/IntermediateField/Basic.lean Modified Mathlib/FieldTheory/IsAlgClosed/Basic.lean - theorem IsAlgClosed.algebraMap_surjective_of_isAlgebraic Modified Mathlib/FieldTheory/PerfectClosure.lean Modified Mathlib/Geometry/Manifold/Instances/Real.lean Modified Mathlib/Geometry/Manifold/Instances/Sphere.lean Modified Mathlib/Geometry/Manifold/MFDeriv/Defs.lean Modified Mathlib/Geometry/RingedSpace/Stalks.lean Modified Mathlib/GroupTheory/Exponent.lean - theorem Group.one_lt_exponent - def instCommGroupOfExponentTwo Modified Mathlib/GroupTheory/Index.lean Modified Mathlib/GroupTheory/Nilpotent.lean Modified Mathlib/GroupTheory/OrderOfElement.lean Modified Mathlib/GroupTheory/Perm/Cycle/Factors.lean - theorem Equiv.Perm.card_support_cycleOf_pos_iff Modified Mathlib/Lean/Expr/Basic.lean Modified Mathlib/LinearAlgebra/BilinearForm/Basic.lean - theorem LinearMap.BilinForm.coeFn_congr - theorem LinearMap.BilinForm.coe_add - theorem LinearMap.BilinForm.coe_neg - theorem LinearMap.BilinForm.coe_sub - theorem LinearMap.BilinForm.coe_zero Modified Mathlib/LinearAlgebra/BilinearForm/Hom.lean - theorem BilinForm.toLin_apply - theorem BilinForm.toLin_symm - theorem LinearMap.BilinForm.toLin'_apply - def LinearMap.BilinForm.toLin - def LinearMap.BilinForm.toLinHom - def LinearMap.BilinForm.toLinHomAux₂ - def LinearMap.toBilin - def LinearMap.toBilinAux - theorem LinearMap.toBilinAux_eq - theorem LinearMap.toBilin_apply - theorem LinearMap.toBilin_symm Modified Mathlib/LinearAlgebra/BilinearForm/Orthogonal.lean Modified Mathlib/LinearAlgebra/FiniteDimensional/Defs.lean - theorem Subalgebra.finiteDimensional_bot Modified Mathlib/LinearAlgebra/Matrix/ZPow.lean Modified Mathlib/LinearAlgebra/Prod.lean - def LinearMap.tailing - def LinearMap.tailingLinearEquiv - theorem LinearMap.tailing_disjoint_tunnel_succ - theorem LinearMap.tailing_le_tunnel - theorem LinearMap.tailing_sup_tunnel_succ_le_tunnel - def LinearMap.tailings - theorem LinearMap.tailings_disjoint_tailing - theorem LinearMap.tailings_disjoint_tunnel - theorem LinearMap.tailings_succ - theorem LinearMap.tailings_zero - def LinearMap.tunnel' - def LinearMap.tunnel - def LinearMap.tunnelAux - theorem LinearMap.tunnelAux_injective Modified Mathlib/Logic/Basic.lean - theorem Classical.cases - theorem Classical.cases_on - theorem Classical.cases_true_false - theorem Classical.eq_false_or_eq_true - theorem bex_eq_left Modified Mathlib/Logic/Equiv/Defs.lean Modified Mathlib/Logic/Equiv/Fin.lean - def Equiv.piFinCastSucc - def Equiv.piFinSucc - def Equiv.piFinSuccAbove Modified Mathlib/MeasureTheory/Decomposition/RadonNikodym.lean Modified Mathlib/MeasureTheory/Function/AEEqOfIntegral.lean Modified Mathlib/MeasureTheory/Function/AEEqOfLIntegral.lean Modified Mathlib/MeasureTheory/Function/ConditionalExpectation/Basic.lean Modified Mathlib/MeasureTheory/Function/ConditionalExpectation/CondexpL1.lean Modified Mathlib/MeasureTheory/Function/ConditionalExpectation/CondexpL2.lean Modified Mathlib/MeasureTheory/Function/ConditionalExpectation/Real.lean Modified Mathlib/MeasureTheory/Function/ConditionalExpectation/Unique.lean Modified Mathlib/MeasureTheory/Function/ContinuousMapDense.lean Modified Mathlib/MeasureTheory/Function/ConvergenceInMeasure.lean Modified Mathlib/MeasureTheory/Function/L2Space.lean Modified Mathlib/MeasureTheory/Function/LpSeminorm/Basic.lean Modified Mathlib/MeasureTheory/Function/LpSeminorm/ChebyshevMarkov.lean Modified Mathlib/MeasureTheory/Function/LpSeminorm/CompareExp.lean Modified Mathlib/MeasureTheory/Function/LpSeminorm/TriangleInequality.lean Modified Mathlib/MeasureTheory/Function/LpSeminorm/Trim.lean Modified Mathlib/MeasureTheory/Function/LpSpace.lean Modified Mathlib/MeasureTheory/Function/SimpleFuncDenseLp.lean Modified Mathlib/MeasureTheory/Function/UniformIntegrable.lean Modified Mathlib/MeasureTheory/Group/FundamentalDomain.lean Modified Mathlib/MeasureTheory/Integral/Bochner.lean Modified Mathlib/MeasureTheory/Integral/DominatedConvergence.lean Modified Mathlib/MeasureTheory/Integral/IntegrableOn.lean Modified Mathlib/MeasureTheory/Integral/IntegralEqImproper.lean Modified Mathlib/MeasureTheory/Integral/IntervalIntegral.lean Modified Mathlib/MeasureTheory/Integral/Lebesgue.lean Modified Mathlib/MeasureTheory/Integral/MeanInequalities.lean Modified Mathlib/MeasureTheory/Integral/Prod.lean Modified Mathlib/MeasureTheory/Integral/SetIntegral.lean Modified Mathlib/MeasureTheory/Measure/Haar/NormedSpace.lean Modified Mathlib/MeasureTheory/Measure/Lebesgue/VolumeOfBalls.lean Modified Mathlib/MeasureTheory/Measure/MeasureSpace.lean Modified Mathlib/MeasureTheory/Measure/Tilted.lean Modified Mathlib/MeasureTheory/Measure/Typeclasses.lean Modified Mathlib/MeasureTheory/Measure/WithDensity.lean - theorem MeasureTheory.sFinite_withDensity_of_measurable - theorem MeasureTheory.sFinite_withDensity_of_sigmaFinite_of_measurable Modified Mathlib/MeasureTheory/OuterMeasure/Basic.lean - theorem MeasureTheory.OuterMeasure.biUnion_null_iff - theorem MeasureTheory.OuterMeasure.diff_null - theorem MeasureTheory.OuterMeasure.empty' - theorem MeasureTheory.OuterMeasure.exists_mem_forall_mem_nhds_within_pos - theorem MeasureTheory.OuterMeasure.iUnion_null_iff - theorem MeasureTheory.OuterMeasure.le_inter_add_diff - theorem MeasureTheory.OuterMeasure.mono' - theorem MeasureTheory.OuterMeasure.mono_null - theorem MeasureTheory.OuterMeasure.null_of_locally_null - theorem MeasureTheory.OuterMeasure.pos_of_subset_ne_zero - theorem MeasureTheory.OuterMeasure.sUnion_null_iff - theorem MeasureTheory.OuterMeasure.union_null Modified Mathlib/MeasureTheory/OuterMeasure/Caratheodory.lean Modified Mathlib/NumberTheory/ArithmeticFunction.lean - theorem ArithmeticFunction.card_divisors Modified Mathlib/NumberTheory/Cyclotomic/PrimitiveRoots.lean Modified Mathlib/NumberTheory/DirichletCharacter/Basic.lean Modified Mathlib/NumberTheory/Divisors.lean Modified Mathlib/NumberTheory/LSeries/RiemannZeta.lean Modified Mathlib/NumberTheory/LegendreSymbol/AddCharacter.lean Modified Mathlib/NumberTheory/LegendreSymbol/QuadraticChar/Basic.lean - theorem quadraticChar_isNontrivial Modified Mathlib/NumberTheory/LucasLehmer.lean Modified Mathlib/NumberTheory/MulChar/Basic.lean - theorem MulChar.IsNontrivial.comp - theorem MulChar.IsNontrivial.sum_eq_zero - def MulChar.IsNontrivial - theorem MulChar.isNontrivial_iff Modified Mathlib/NumberTheory/Padics/PadicIntegers.lean Modified Mathlib/NumberTheory/Padics/PadicVal/Defs.lean Modified Mathlib/NumberTheory/Padics/RingHoms.lean Modified Mathlib/NumberTheory/Zsqrtd/Basic.lean Modified Mathlib/NumberTheory/Zsqrtd/GaussianInt.lean Modified Mathlib/Order/Atoms.lean Modified Mathlib/Order/CompleteLattice.lean Modified Mathlib/Order/ConditionallyCompleteLattice/Basic.lean Modified Mathlib/Order/Cover.lean Modified Mathlib/Order/Defs/PartialOrder.lean - theorem le_not_le_of_lt Modified Mathlib/Order/Filter/AtTopBot/Archimedean.lean Modified Mathlib/Order/Filter/AtTopBot/Field.lean Modified Mathlib/Order/Filter/Germ/Basic.lean Modified Mathlib/Order/Fin/Basic.lean Modified Mathlib/Order/Fin/Tuple.lean - def OrderIso.piFinSuccAboveIso Modified Mathlib/Order/Lattice.lean Modified Mathlib/Order/LiminfLimsup.lean Modified Mathlib/Order/OmegaCompletePartialOrder.lean - theorem CompleteLattice.bot_continuous - theorem CompleteLattice.iSup_continuous - theorem CompleteLattice.inf_continuous' - theorem CompleteLattice.inf_continuous - theorem CompleteLattice.sSup_continuous' - theorem CompleteLattice.sSup_continuous - theorem CompleteLattice.sup_continuous - theorem CompleteLattice.top_continuous - theorem OmegaCompletePartialOrder.Continuous'.to_bundled - theorem OmegaCompletePartialOrder.Continuous'.to_monotone - def OmegaCompletePartialOrder.Continuous' - theorem OmegaCompletePartialOrder.Continuous.of_bundled' - theorem OmegaCompletePartialOrder.Continuous.of_bundled - def OmegaCompletePartialOrder.Continuous - theorem OmegaCompletePartialOrder.ContinuousHom.bind_continuous' - theorem OmegaCompletePartialOrder.ContinuousHom.ite_continuous' - theorem OmegaCompletePartialOrder.ContinuousHom.map_continuous' - theorem OmegaCompletePartialOrder.ContinuousHom.seq_continuous' - theorem OmegaCompletePartialOrder.ScottContinuous.continuous' - theorem OmegaCompletePartialOrder.const_continuous' - theorem OmegaCompletePartialOrder.continuous'_coe - theorem OmegaCompletePartialOrder.continuous_comp - theorem OmegaCompletePartialOrder.continuous_const - theorem OmegaCompletePartialOrder.continuous_id - theorem OmegaCompletePartialOrder.flip₁_continuous' - theorem OmegaCompletePartialOrder.flip₂_continuous' - theorem OmegaCompletePartialOrder.id_continuous' - theorem OmegaCompletePartialOrder.isLUB_of_scottContinuous Modified Mathlib/Order/Part.lean Modified Mathlib/Order/RelClasses.lean - theorem IsLinearOrder.swap Modified Mathlib/Order/WithBot.lean Modified Mathlib/Probability/Density.lean Modified Mathlib/Probability/IdentDistrib.lean Modified Mathlib/Probability/Kernel/Basic.lean Modified Mathlib/Probability/Kernel/Composition/Basic.lean Modified Mathlib/Probability/Kernel/Composition/IntegralCompProd.lean Modified Mathlib/Probability/Kernel/Composition/MeasureCompProd.lean Modified Mathlib/Probability/Kernel/CondDistrib.lean Modified Mathlib/Probability/Kernel/Defs.lean Modified Mathlib/Probability/Kernel/Disintegration/CDFToKernel.lean Modified Mathlib/Probability/Kernel/Disintegration/CondCDF.lean Modified Mathlib/Probability/Kernel/Disintegration/Density.lean Modified Mathlib/Probability/Kernel/Disintegration/Integral.lean Modified Mathlib/Probability/Kernel/Disintegration/StandardBorel.lean - theorem MeasureTheory.Measure.compProd_fst_condKernel - theorem MeasureTheory.Measure.condKernel_apply_of_ne_zero_of_measurableSet - theorem ProbabilityTheory.Kernel.compProd_fst_condKernel - theorem ProbabilityTheory.Kernel.compProd_fst_condKernelBorel - theorem ProbabilityTheory.Kernel.compProd_fst_condKernelCountable - theorem ProbabilityTheory.Kernel.compProd_fst_condKernelUnitBorel - theorem ProbabilityTheory.Kernel.compProd_fst_condKernelUnitReal Modified Mathlib/Probability/Kernel/Integral.lean Modified Mathlib/Probability/Kernel/MeasurableLIntegral.lean Modified Mathlib/Probability/Kernel/RadonNikodym.lean Modified Mathlib/Probability/Martingale/Basic.lean Modified Mathlib/Probability/Martingale/BorelCantelli.lean Modified Mathlib/Probability/Martingale/Convergence.lean Modified Mathlib/Probability/Process/Filtration.lean Modified Mathlib/RepresentationTheory/FDRep.lean Modified Mathlib/RingTheory/Binomial.lean Modified Mathlib/RingTheory/Congruence/Defs.lean Modified Mathlib/RingTheory/DedekindDomain/AdicValuation.lean Modified Mathlib/RingTheory/Derivation/Basic.lean Modified Mathlib/RingTheory/FiniteType.lean - theorem Module.Finite.injective_of_surjective_endomorphism Modified Mathlib/RingTheory/FractionalIdeal/Basic.lean Modified Mathlib/RingTheory/Ideal/Operations.lean Modified Mathlib/RingTheory/Int/Basic.lean Modified Mathlib/RingTheory/IntegralDomain.lean Modified Mathlib/RingTheory/Localization/Away/Basic.lean Modified Mathlib/RingTheory/Localization/Basic.lean Modified Mathlib/RingTheory/Localization/NumDen.lean - theorem IsFractionRing.isUnit_den_of_num_eq_zero Modified Mathlib/RingTheory/Multiplicity.lean Modified Mathlib/RingTheory/Noetherian/Basic.lean Modified Mathlib/RingTheory/Polynomial/Basic.lean Modified Mathlib/RingTheory/Spectrum/Prime/Defs.lean Modified Mathlib/RingTheory/UniqueFactorizationDomain/FactorSet.lean Modified Mathlib/RingTheory/WittVector/Basic.lean Modified Mathlib/RingTheory/WittVector/Truncated.lean Modified Mathlib/SetTheory/Cardinal/UnivLE.lean Modified Mathlib/SetTheory/Ordinal/Arithmetic.lean - theorem Ordinal.sup_natCast Modified Mathlib/SetTheory/Ordinal/Basic.lean Modified Mathlib/Tactic/ComputeDegree.lean Modified Mathlib/Tactic/Linarith/Lemmas.lean Modified Mathlib/Tactic/NormNum/Basic.lean Modified Mathlib/Tactic/Qify.lean Modified Mathlib/Tactic/Rify.lean Modified Mathlib/Tactic/Zify.lean Modified Mathlib/Topology/Algebra/Module/Multilinear/Topology.lean Modified Mathlib/Topology/Algebra/Support.lean Modified Mathlib/Topology/Compactness/Compact.lean - theorem Nat.cocompact_eq Modified Mathlib/Topology/ContinuousMap/Algebra.lean Modified Mathlib/Topology/Defs/Sequences.lean Modified Mathlib/Topology/EMetricSpace/Lipschitz.lean Modified Mathlib/Topology/ExtremallyDisconnected.lean Modified Mathlib/Topology/List.lean Modified Mathlib/Topology/LocalAtTarget.lean - theorem Set.restrictPreimage_isClosedMap - theorem Set.restrictPreimage_isOpenMap Modified Mathlib/Topology/Maps/Proper/Basic.lean Deleted Mathlib/Topology/Order/Bounded.lean - theorem Filter.isBounded_ge_map_of_bounded_range - theorem Filter.isBounded_le_map_of_bounded_range Modified Mathlib/Topology/Sheaves/Stalks.lean Modified Mathlib/Topology/UniformSpace/Basic.lean Modified Mathlib/Topology/UniformSpace/Cauchy.lean Modified Mathlib/Topology/UniformSpace/UniformConvergenceTopology.lean - theorem UniformOnFun.isClosed_setOf_continuous_of_le 2025-02-01 08:46:20 e736b5a feat(Analysis/Normed/Module/Dual): polar in a normed space as a submodule (#20084) Definition of the polar of a subspace closed under scalar multiplication as a submodule. - Follows on from #14458 - Motivation #14369 ESTIMATED CHANGES Modified Mathlib/Analysis/Normed/Module/Dual.lean + theorem NormedSpace.mem_polarSubmodule + def NormedSpace.polarSubmodule + theorem NormedSpace.polarSubmodule_eq_polar + theorem NormedSpace.polarSubmodule_eq_setOf 2025-02-01 07:23:28 74bf56f chore(Data/ZMod/Basic): split `ZMod.valMinAbs` off (#21308) ESTIMATED CHANGES Modified Archive/Wiedijk100Theorems/FriendshipGraphs.lean Modified Counterexamples/CanonicallyOrderedCommSemiringTwoMul.lean Modified Counterexamples/CliffordAlgebraNotInjective.lean Modified Counterexamples/HomogeneousPrimeNotPrime.lean Modified Counterexamples/QuadraticForm.lean Modified Mathlib.lean Modified Mathlib/Algebra/Module/ZMod.lean Modified Mathlib/Data/Nat/Defs.lean + theorem Nat.le_div_two_iff_mul_two_le Modified Mathlib/Data/Nat/Totient.lean Modified Mathlib/Data/ZMod/Basic.lean - theorem Nat.le_div_two_iff_mul_two_le - theorem ZMod.coe_valMinAbs - theorem ZMod.injective_valMinAbs - theorem ZMod.natAbs_valMinAbs_add_le - theorem ZMod.natAbs_valMinAbs_le - theorem ZMod.natAbs_valMinAbs_neg - theorem ZMod.natCast_natAbs_valMinAbs - theorem ZMod.prime_ne_zero - def ZMod.valMinAbs - theorem ZMod.valMinAbs_def_pos - theorem ZMod.valMinAbs_def_zero - theorem ZMod.valMinAbs_eq_zero - theorem ZMod.valMinAbs_mem_Ioc - theorem ZMod.valMinAbs_mul_two_eq_iff - theorem ZMod.valMinAbs_natAbs_eq_min - theorem ZMod.valMinAbs_natCast_eq_self - theorem ZMod.valMinAbs_natCast_of_half_lt - theorem ZMod.valMinAbs_natCast_of_le_half - theorem ZMod.valMinAbs_neg_of_ne_half - theorem ZMod.valMinAbs_nonneg_iff - theorem ZMod.valMinAbs_spec - theorem ZMod.valMinAbs_zero - theorem ZMod.val_eq_ite_valMinAbs Modified Mathlib/Data/ZMod/Units.lean Added Mathlib/Data/ZMod/ValMinAbs.lean + theorem ZMod.coe_valMinAbs + theorem ZMod.injective_valMinAbs + theorem ZMod.natAbs_valMinAbs_add_le + theorem ZMod.natAbs_valMinAbs_le + theorem ZMod.natAbs_valMinAbs_neg + theorem ZMod.natCast_natAbs_valMinAbs + theorem ZMod.prime_ne_zero + def ZMod.valMinAbs + theorem ZMod.valMinAbs_def_pos + theorem ZMod.valMinAbs_def_zero + theorem ZMod.valMinAbs_eq_zero + theorem ZMod.valMinAbs_mem_Ioc + theorem ZMod.valMinAbs_mul_two_eq_iff + theorem ZMod.valMinAbs_natAbs_eq_min + theorem ZMod.valMinAbs_natCast_eq_self + theorem ZMod.valMinAbs_natCast_of_half_lt + theorem ZMod.valMinAbs_natCast_of_le_half + theorem ZMod.valMinAbs_neg_of_ne_half + theorem ZMod.valMinAbs_nonneg_iff + theorem ZMod.valMinAbs_spec + theorem ZMod.valMinAbs_zero + theorem ZMod.val_eq_ite_valMinAbs Modified Mathlib/FieldTheory/Finite/Basic.lean Modified Mathlib/GroupTheory/Coxeter/Length.lean Modified Mathlib/GroupTheory/SpecificGroups/Cyclic.lean Modified Mathlib/GroupTheory/SpecificGroups/Quaternion.lean Modified Mathlib/LinearAlgebra/CliffordAlgebra/Grading.lean Modified Mathlib/NumberTheory/LucasLehmer.lean Modified Mathlib/NumberTheory/ModularForms/CongruenceSubgroups.lean Modified Mathlib/NumberTheory/Pell.lean Modified Mathlib/NumberTheory/PythagoreanTriples.lean Modified Mathlib/NumberTheory/SumFourSquares.lean Modified Mathlib/RingTheory/Fintype.lean 2025-02-01 07:23:26 05f71fa feat(GroupTheory/Perm/Centralizer): study the centralizer of a permutation (#17522) This is the core of the work on the centralizer of a permutation. It is the sequel of several PR which lay out basic useful results. Let `α : Type` with `Fintype α` (and `DecidableEq α`). The main goal of this file is to compute the cardinality of conjugacy classes in `Equiv.Perm α`. Every `g : Equiv.Perm α` has a `cycleType α : Multiset ℕ`. By `Equiv.Perm.isConj_iff_cycleType_eq`, two permutations are conjugate in `Equiv.Perm α` iff their cycle types are equal. To compute the cardinality of the conjugacy classes, we could use a purely combinatorial approach and compute the number of permutations with given cycle type but we resorted to a more algebraic approach. A subsequent PR #17047 treats the case of the alternating group. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Group/Subgroup/Finite.lean + theorem Fintype.card_coeSort_mrange + theorem Fintype.card_coeSort_range + theorem Subgroup.card_map_of_injective + theorem Subgroup.card_subtype Modified Mathlib/GroupTheory/NoncommCoprod.lean + theorem MonoidHom.noncommCoprod_injective + theorem MonoidHom.noncommCoprod_range Modified Mathlib/GroupTheory/Perm/Basic.lean + theorem Equiv.Perm.ofSubtype_injective Added Mathlib/GroupTheory/Perm/Centralizer.lean + theorem Equiv.Perm.Basis.cycleOf_eq + theorem Equiv.Perm.Basis.injective + theorem Equiv.Perm.Basis.mem_fixedPoints_or_exists_zpow_eq + theorem Equiv.Perm.Basis.mem_support_self + theorem Equiv.Perm.Basis.nonempty + def Equiv.Perm.Basis.ofPermHomFun + theorem Equiv.Perm.Basis.ofPermHomFun_apply_mem_support_cycle_iff + theorem Equiv.Perm.Basis.ofPermHomFun_apply_of_cycleOf_mem + theorem Equiv.Perm.Basis.ofPermHomFun_apply_of_mem_fixedPoints + theorem Equiv.Perm.Basis.ofPermHomFun_commute_zpow_apply + theorem Equiv.Perm.Basis.ofPermHomFun_mul + theorem Equiv.Perm.Basis.ofPermHomFun_one + theorem Equiv.Perm.Basis.ofPermHom_mem_centralizer + theorem Equiv.Perm.Basis.sameCycle + theorem Equiv.Perm.Basis.toCentralizer_apply + theorem Equiv.Perm.Basis.toCentralizer_equivariant + theorem Equiv.Perm.Basis.toPermHom_apply_toCentralizer + structure Equiv.Perm.Basis + def Equiv.Perm.OnCycleFactors.Subgroup.Centralizer.cycleFactorsFinset_mulAction + theorem Equiv.Perm.OnCycleFactors.Subgroup.Centralizer.toConjAct_smul_mem_cycleFactorsFinset + theorem Equiv.Perm.OnCycleFactors.centralizer_smul_def + theorem Equiv.Perm.OnCycleFactors.coe_toPermHom + def Equiv.Perm.OnCycleFactors.kerParam + theorem Equiv.Perm.OnCycleFactors.kerParam_apply + theorem Equiv.Perm.OnCycleFactors.kerParam_injective + theorem Equiv.Perm.OnCycleFactors.kerParam_range_card + theorem Equiv.Perm.OnCycleFactors.kerParam_range_eq + theorem Equiv.Perm.OnCycleFactors.mem_ker_toPermHom_iff + theorem Equiv.Perm.OnCycleFactors.mem_range_toPermHom'_iff + theorem Equiv.Perm.OnCycleFactors.mem_range_toPermHom_iff' + theorem Equiv.Perm.OnCycleFactors.mem_range_toPermHom_iff + theorem Equiv.Perm.OnCycleFactors.nat_card_range_toPermHom + def Equiv.Perm.OnCycleFactors.range_toPermHom' + theorem Equiv.Perm.OnCycleFactors.range_toPermHom_eq_range_toPermHom' + def Equiv.Perm.OnCycleFactors.toPermHom + theorem Equiv.Perm.OnCycleFactors.toPermHom_apply + theorem Equiv.Perm.OnCycleFactors.val_centralizer_smul + theorem Equiv.Perm.card_isConj_eq + theorem Equiv.Perm.card_isConj_mul_eq + theorem Equiv.Perm.card_of_cycleType + theorem Equiv.Perm.card_of_cycleType_eq_zero_iff + theorem Equiv.Perm.card_of_cycleType_mul_eq + theorem Equiv.Perm.nat_card_centralizer Modified Mathlib/GroupTheory/Perm/Cycle/Basic.lean + theorem Equiv.Perm.SameCycle.exists_fin_pow_eq + theorem Equiv.Perm.SameCycle.exists_nat_pow_eq Modified Mathlib/GroupTheory/Perm/Cycle/Factors.lean + theorem Equiv.Perm.commute_ofSubtype_noncommPiCoprod + theorem Equiv.Perm.cycleFactorsFinset_mem_commute' + theorem Equiv.Perm.disjoint_ofSubtype_noncommPiCoprod + theorem Equiv.Perm.pairwise_commute_of_mem_zpowers + theorem Equiv.Perm.pairwise_disjoint_of_mem_zpowers + theorem Equiv.Perm.zpow_apply_mem_support_of_mem_cycleFactorsFinset_iff Modified Mathlib/GroupTheory/Perm/Finite.lean + theorem Equiv.Perm.disjoint_closure_of_disjoint_support + theorem Equiv.Perm.disjoint_of_disjoint_support + theorem Equiv.Perm.disjoint_support_closure_of_disjoint_support + theorem Equiv.Perm.ofSubtype_support_disjoint + theorem Equiv.Perm.support_closure_subset_union Modified Mathlib/GroupTheory/Perm/Support.lean + theorem Equiv.Perm.mem_support_of_mem_noncommProd_support 2025-02-01 06:30:14 a8021cc feat(RingTheory/LocalRing): `IsLocalRing` for subrings (#21168) Results with some sufficient conditions for subrings of local rings to be local. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Ring/Subsemiring/Basic.lean + theorem Subsemiring.inclusion_injective Modified Mathlib/Algebra/Ring/Subsemiring/Defs.lean + theorem Subsemiring.subtype_injective Added Mathlib/RingTheory/LocalRing/LocalSubring.lean + theorem LocalSubring.le_def + theorem LocalSubring.le_ofPrime + def LocalSubring.map + def LocalSubring.ofPrime + def LocalSubring.ofPrimeEquiv + def LocalSubring.range + theorem LocalSubring.toSubring_injective + theorem LocalSubring.toSubring_mono + structure LocalSubring Modified Mathlib/RingTheory/LocalRing/Subring.lean + theorem IsLocalRing.of_injective + theorem IsLocalRing.of_subring' + theorem IsLocalRing.of_subring - theorem LocalSubring.le_def - theorem LocalSubring.le_ofPrime - def LocalSubring.map - def LocalSubring.ofPrime - def LocalSubring.ofPrimeEquiv - def LocalSubring.range - theorem LocalSubring.toSubring_injective - theorem LocalSubring.toSubring_mono - structure LocalSubring Modified Mathlib/RingTheory/Valuation/LocalSubring.lean 2025-02-01 01:10:56 527bc1e chore: update Mathlib dependencies 2025-02-01 (#21312) This PR updates the Mathlib dependencies. ESTIMATED CHANGES Modified lake-manifest.json 2025-01-31 23:51:53 3e80406 chore: update Mathlib dependencies 2025-01-31 (#21311) This PR updates the Mathlib dependencies. ESTIMATED CHANGES Modified lake-manifest.json 2025-01-31 21:28:02 41fd5d1 feat: generalize `mem_dite` to `Membership α β` (#21262) ESTIMATED CHANGES Modified Mathlib/Data/Set/Basic.lean - theorem Set.mem_dite Modified Mathlib/Logic/Basic.lean + theorem dite_mem + theorem ite_mem + theorem mem_dite + theorem mem_ite 2025-01-31 20:52:44 b8068ea feat: Lemmas for some monomial orders (#16177) This is a PR of technical lemmas relative to monomial orders and polynomials that were taken out of the formalization of Alon's Combinatorial Nullstellensatz which now belongs to #20495 * degree of a product for the deglex monomial order, multiplicativity of the leading coefficients * degree (for a monomial order) of monomials * the leading coefficient (for a monomial order) of a nonzero polynomial is nonzero. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Data/Finsupp/MonomialOrder.lean Modified Mathlib/Data/Finsupp/MonomialOrder/DegLex.lean Modified Mathlib/RingTheory/MvPolynomial/MonomialOrder.lean + theorem MonomialOrder.coeff_mul_of_add_of_degree_le + theorem MonomialOrder.coeff_prod_sum_degree + theorem MonomialOrder.degree_X + theorem MonomialOrder.degree_X_le_single + theorem MonomialOrder.degree_prod + theorem MonomialOrder.degree_prod_le + theorem MonomialOrder.degree_prod_of_regular + theorem MonomialOrder.leadingCoeff_prod_of_regular Added Mathlib/RingTheory/MvPolynomial/MonomialOrder/DegLex.lean + theorem MvPolynomial.degLex_totalDegree_monotone + theorem MvPolynomial.degree_degLexDegree 2025-01-31 20:22:54 4565f9f feat(CategoryTheory): the localized category is monoidal (#12728) In this PR, we shall show that if `C` is a monoidal category and `W` is a class of morphism that is preserved by the tensor product, then the localized category is also monoidal. (This shall be used in order to define a monoidal structure on the category of sheaves of abelian groups, and on categories of sheaves of modules.) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Localization/Monoidal.lean + theorem CategoryTheory.Localization.Monoidal.leftUnitor_naturality + theorem CategoryTheory.Localization.Monoidal.pentagon + theorem CategoryTheory.Localization.Monoidal.pentagon_aux₁ + theorem CategoryTheory.Localization.Monoidal.pentagon_aux₂ + theorem CategoryTheory.Localization.Monoidal.pentagon_aux₃ + theorem CategoryTheory.Localization.Monoidal.rightUnitor_naturality + theorem CategoryTheory.Localization.Monoidal.triangle + theorem CategoryTheory.Localization.Monoidal.triangle_aux₁ + theorem CategoryTheory.Localization.Monoidal.triangle_aux₂ + theorem CategoryTheory.Localization.Monoidal.triangle_aux₃ Modified Mathlib/CategoryTheory/Monoidal/Category.lean + def CategoryTheory.MonoidalCategory.Pentagon 2025-01-31 20:04:08 96ae298 feat: add function log⁺ (=positive part of the logarithm) and prove standard estimates (#21289) Introduce the function `log⁺`, the positive part of the logarithm, as used in (Complex|Functional|Harmonic) Analysis and Probability Theory. Provide standard estimates for `log⁺` of sums and products, as discussed on p.168 of [Introduction of Complex Hyperbolic Spaces](https://link.springer.com/book/10.1007/978-1-4757-1945-1) or p.4 of [Nevanlinna Theory in Several Complex Variables and Diophantine Approximation](https://link.springer.com/book/10.1007/978-4-431-54571-2). This material is used in [Project VD](https://github.com/kebekus/ProjectVD), which aims to formalize Value Distribution Theory for meromorphic functions on the complex plane. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/SpecialFunctions/Log/PosLog.lean + theorem Real.half_mul_log_add_log_abs + theorem Real.log_of_nat_eq_posLog + theorem Real.monotoneOn_posLog + theorem Real.posLog_abs + theorem Real.posLog_add + theorem Real.posLog_def + theorem Real.posLog_eq_log + theorem Real.posLog_eq_zero_iff + theorem Real.posLog_mul + theorem Real.posLog_nat_mul + theorem Real.posLog_neg + theorem Real.posLog_nonneg + theorem Real.posLog_prod + theorem Real.posLog_sub_posLog_inv + theorem Real.posLog_sum 2025-01-31 19:29:36 f46ed69 feat(RingTheory/WittVector): ring of Witt vectors is p-adically complete (#21295) In this PR, we show that if k is a perfect ring of char p, then the ring of Witt vectors is p-adically complete and p-torsion free. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Ring/Equiv.lean + theorem RingEquiv.coe_refl_id Added Mathlib/RingTheory/WittVector/Complete.lean + theorem WittVector.eq_zero_of_p_mul_eq_zero + theorem WittVector.le_coeff_eq_iff_le_sub_coeff_eq_zero + theorem WittVector.mem_span_p_iff_coeff_zero_eq_zero + theorem WittVector.mem_span_p_pow_iff_le_coeff_eq_zero Modified Mathlib/RingTheory/WittVector/Identities.lean + theorem WittVector.iterate_verschiebung_coeff_eq_zero + theorem WittVector.iterate_verschiebung_iterate_frobenius + theorem WittVector.mul_pow_charP_coeff_succ + theorem WittVector.mul_pow_charP_coeff_zero Modified Mathlib/RingTheory/WittVector/Verschiebung.lean + theorem WittVector.verschiebung_injective 2025-01-31 19:29:34 bf60e81 feat(GroupTheory/GroupAction/Blocks): more on blocks (#21284) - Some basic results on invariant blocks. - The set of blocks containing a given element is a bounded order ESTIMATED CHANGES Modified Mathlib/GroupTheory/GroupAction/Blocks.lean + theorem MulAction.BlockMem.coe_bot + theorem MulAction.BlockMem.coe_top + theorem MulAction.IsTrivialBlock.image + theorem MulAction.IsTrivialBlock.preimage + theorem MulAction.IsTrivialBlock.smul + theorem MulAction.IsTrivialBlock.smul_iff 2025-01-31 19:10:51 b066280 fix(FieldTheory/KrullTopology): make `krullTopology_discreteTopology_of_finiteDimensional` universe polymorphic (#21299) ESTIMATED CHANGES Modified Mathlib/FieldTheory/KrullTopology.lean 2025-01-31 19:10:49 7aafb14 feat(RingTheory/Artinian): integral non-zero-divisors are units over artinian rings (#21199) In an algebra over an artinian ring, integral elements are either units or zero divisors. As units are never zero divisors, the fact follows from implication that integral non-zero-divisors are units. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/RingTheory/Artinian/Algebra.lean + theorem IsArtinianRing.isUnit_iff_nonZeroDivisor_of_isIntegral' + theorem IsArtinianRing.isUnit_iff_nonZeroDivisor_of_isIntegral + theorem IsArtinianRing.isUnit_of_isIntegral_of_nonZeroDivisor + theorem IsArtinianRing.isUnit_of_nonZeroDivisor_of_isIntegral' + theorem IsArtinianRing.isUnit_submonoid_eq_of_isIntegral 2025-01-31 19:10:48 d867362 refactor(Topology/Gluing): simplify definition of `TopCat.GlueData.Rel` (#20653) ESTIMATED CHANGES Modified Mathlib/AlgebraicGeometry/Gluing.lean Modified Mathlib/AlgebraicGeometry/Limits.lean Modified Mathlib/Topology/Gluing.lean 2025-01-31 19:10:47 86e05cc feat(RingTheory/PowerSeries): binomial series (#20192) This PR defines formal power series of the form `(1 + X) ^ r` for `r` an element of a binomial ring. By Chu-Vandermonde, addition of exponents yields multiplication of series. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/RingTheory/Binomial.lean + theorem Ring.choose_neg Added Mathlib/RingTheory/PowerSeries/Binomial.lean + def PowerSeries.binomialSeries + theorem PowerSeries.binomialSeries_add + theorem PowerSeries.binomialSeries_coeff + theorem PowerSeries.binomialSeries_nat + theorem PowerSeries.rescale_neg_one_invOneSubPow 2025-01-31 18:21:41 03ee383 chore(Mathlib/RingTheory/MvPolynomial): rename MonomiaOrder.lCoeff to MonomialOrder.leadingCoeff (#21290) For coherence with other names in mathlib, we rename `MonomialOrder.lCoeff` to `MonomialOrder.leadingCoeff`. ESTIMATED CHANGES Modified Mathlib/RingTheory/MvPolynomial/Groebner.lean +/- theorem MonomialOrder.degree_reduce_lt + def MonomialOrder.reduce Modified Mathlib/RingTheory/MvPolynomial/MonomialOrder.lean + theorem MonomialOrder.isUnit_leadingCoeff - def MonomialOrder.lCoeff - theorem MonomialOrder.lCoeff_add_of_lt - theorem MonomialOrder.lCoeff_eq_zero_iff - theorem MonomialOrder.lCoeff_is_unit_iff - theorem MonomialOrder.lCoeff_monomial - theorem MonomialOrder.lCoeff_mul - theorem MonomialOrder.lCoeff_mul_of_isRegular_left - theorem MonomialOrder.lCoeff_mul_of_isRegular_right - theorem MonomialOrder.lCoeff_ne_zero_iff - theorem MonomialOrder.lCoeff_sub_of_lt - theorem MonomialOrder.lCoeff_zero + def MonomialOrder.leadingCoeff + theorem MonomialOrder.leadingCoeff_add_of_lt + theorem MonomialOrder.leadingCoeff_eq_zero_iff + theorem MonomialOrder.leadingCoeff_monomial + theorem MonomialOrder.leadingCoeff_mul + theorem MonomialOrder.leadingCoeff_mul_of_isRegular_left + theorem MonomialOrder.leadingCoeff_mul_of_isRegular_right + theorem MonomialOrder.leadingCoeff_ne_zero_iff + theorem MonomialOrder.leadingCoeff_sub_of_lt + theorem MonomialOrder.leadingCoeff_zero 2025-01-31 18:21:40 3ebdb30 chore (RingTheory/HahnSeries): fix names that use coeff (#21279) Basic pattern: `(n • x).coeff = n • x.coeff` was named `nsmul_coeff` but it should be `coeff_nsmul`. ESTIMATED CHANGES Modified Mathlib/Algebra/Vertex/HVertexOperator.lean - theorem HVertexOperator.add_coeff + theorem HVertexOperator.coeff_add + theorem HVertexOperator.coeff_comp + theorem HVertexOperator.coeff_smul - theorem HVertexOperator.comp_coeff - theorem HVertexOperator.smul_coeff Modified Mathlib/Algebra/Vertex/VertexOperator.lean Modified Mathlib/RingTheory/HahnSeries/Addition.lean - theorem HahnSeries.add_coeff' - theorem HahnSeries.add_coeff + theorem HahnSeries.coeff_add' + theorem HahnSeries.coeff_add + theorem HahnSeries.coeff_neg' + theorem HahnSeries.coeff_neg + theorem HahnSeries.coeff_nsmul + theorem HahnSeries.coeff_smul + theorem HahnSeries.coeff_sub' + theorem HahnSeries.coeff_sub - theorem HahnSeries.neg_coeff' - theorem HahnSeries.neg_coeff - theorem HahnSeries.nsmul_coeff - theorem HahnSeries.smul_coeff - theorem HahnSeries.sub_coeff' - theorem HahnSeries.sub_coeff Modified Mathlib/RingTheory/HahnSeries/Basic.lean + theorem HahnSeries.coeff_single + theorem HahnSeries.coeff_single_of_ne + theorem HahnSeries.coeff_single_same + theorem HahnSeries.coeff_zero - theorem HahnSeries.single_coeff - theorem HahnSeries.single_coeff_of_ne - theorem HahnSeries.single_coeff_same - theorem HahnSeries.zero_coeff Modified Mathlib/RingTheory/HahnSeries/HEval.lean Modified Mathlib/RingTheory/HahnSeries/Multiplication.lean + theorem HahnModule.coeff_single_smul_vadd + theorem HahnModule.coeff_single_zero_smul + theorem HahnModule.coeff_smul + theorem HahnModule.coeff_smul_left + theorem HahnModule.coeff_smul_order_add_order + theorem HahnModule.coeff_smul_right - theorem HahnModule.single_smul_coeff_add - theorem HahnModule.single_zero_smul_coeff - theorem HahnModule.smul_coeff - theorem HahnModule.smul_coeff_left - theorem HahnModule.smul_coeff_order_add_order - theorem HahnModule.smul_coeff_right + theorem HahnSeries.coeff_mul + theorem HahnSeries.coeff_mul_left' + theorem HahnSeries.coeff_mul_order_add_order + theorem HahnSeries.coeff_mul_right' + theorem HahnSeries.coeff_mul_single_add + theorem HahnSeries.coeff_mul_single_zero + theorem HahnSeries.coeff_one + theorem HahnSeries.coeff_single_mul_add + theorem HahnSeries.coeff_single_zero_mul - theorem HahnSeries.mul_coeff - theorem HahnSeries.mul_coeff_left' - theorem HahnSeries.mul_coeff_order_add_order - theorem HahnSeries.mul_coeff_right' - theorem HahnSeries.mul_single_coeff_add - theorem HahnSeries.mul_single_zero_coeff - theorem HahnSeries.one_coeff - theorem HahnSeries.single_mul_coeff_add - theorem HahnSeries.single_zero_mul_coeff Modified Mathlib/RingTheory/HahnSeries/PowerSeries.lean Modified Mathlib/RingTheory/HahnSeries/Summable.lean + theorem HahnSeries.SummableFamily.coeff_hsum + theorem HahnSeries.SummableFamily.coeff_hsum_eq_sum + theorem HahnSeries.SummableFamily.coeff_hsum_eq_sum_of_subset + theorem HahnSeries.SummableFamily.coeff_hsum_mul + theorem HahnSeries.SummableFamily.coeff_smul - theorem HahnSeries.SummableFamily.hsum_coeff - theorem HahnSeries.SummableFamily.hsum_coeff_eq_sum - theorem HahnSeries.SummableFamily.hsum_coeff_eq_sum_of_subset - theorem HahnSeries.SummableFamily.mul_coeff - theorem HahnSeries.SummableFamily.smul_coeff Modified Mathlib/RingTheory/LaurentSeries.lean 2025-01-31 18:21:38 031c0e0 feat: let `notation3` distinguish `Prop` vs `Type _ ` vs `Sort _` (#21233) This PR fixes an oversight where `notation3` doesn't distinguish between different type universes. It still isn't completely precise, but it at least distinguishes `Prop` / `Type` / general `Type _` / general `Sort _`. ESTIMATED CHANGES Modified Mathlib/Util/Notation3.lean + def Mathlib.Notation3.isType' Modified MathlibTest/notation3.lean 2025-01-31 17:41:28 ea8f1b0 chore(MeasureTheory/Function/StronglyMeasurable): split Basic into Basic and AEStronglyMeasurable (#21273) Separate MeasureTheory/Function/StronglyMeasurable/Basic into a file Basic which contains everything about `StronglyMeasurable` and `FinStronglyMeasurable` and a file AEStronglyMeasurable which is about `AEStronglyMeasurable` and `FinAEStronglyMeasurable`. I am not sure about the split of the doc. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Analysis/Calculus/FDeriv/Measurable.lean Modified Mathlib/MeasureTheory/Function/AEEqFun.lean Modified Mathlib/MeasureTheory/Function/L1Space/HasFiniteIntegral.lean Added Mathlib/MeasureTheory/Function/StronglyMeasurable/AEStronglyMeasurable.lean + theorem AEMeasurable.aestronglyMeasurable + theorem Continuous.aestronglyMeasurable + theorem Continuous.comp_aestronglyMeasurable + theorem Continuous.comp_aestronglyMeasurable₂ + theorem Finset.aestronglyMeasurable_prod' + theorem Finset.aestronglyMeasurable_prod + theorem List.aestronglyMeasurable_prod' + theorem List.aestronglyMeasurable_prod + theorem Measurable.aestronglyMeasurable + theorem MeasurableEmbedding.aestronglyMeasurable_map_iff + theorem MeasureTheory.AEFinStronglyMeasurable.ae_eq_mk + theorem MeasureTheory.AEFinStronglyMeasurable.ae_eq_zero_compl + theorem MeasureTheory.AEFinStronglyMeasurable.exists_set_sigmaFinite + theorem MeasureTheory.AEFinStronglyMeasurable.finStronglyMeasurable_mk + def MeasureTheory.AEFinStronglyMeasurable.sigmaFiniteSet + def MeasureTheory.AEFinStronglyMeasurable + theorem MeasureTheory.AEStronglyMeasurable.add_measure + theorem MeasureTheory.AEStronglyMeasurable.ae_eq_mk + theorem MeasureTheory.AEStronglyMeasurable.ae_mem_imp_eq_mk + theorem MeasureTheory.AEStronglyMeasurable.aestronglyMeasurable_uIoc_iff + theorem MeasureTheory.AEStronglyMeasurable.comp_aemeasurable + theorem MeasureTheory.AEStronglyMeasurable.comp_measurable + theorem MeasureTheory.AEStronglyMeasurable.comp_quasiMeasurePreserving + theorem MeasureTheory.AEStronglyMeasurable.congr + theorem MeasureTheory.AEStronglyMeasurable.isSeparable_ae_range + theorem MeasureTheory.AEStronglyMeasurable.measurable_mk + theorem MeasureTheory.AEStronglyMeasurable.mono + theorem MeasureTheory.AEStronglyMeasurable.mono_measure + theorem MeasureTheory.AEStronglyMeasurable.mono_set + theorem MeasureTheory.AEStronglyMeasurable.mul_iff_left + theorem MeasureTheory.AEStronglyMeasurable.mul_iff_right + theorem MeasureTheory.AEStronglyMeasurable.nullMeasurableSet_eq_fun + theorem MeasureTheory.AEStronglyMeasurable.nullMeasurableSet_le + theorem MeasureTheory.AEStronglyMeasurable.nullMeasurableSet_lt + theorem MeasureTheory.AEStronglyMeasurable.nullMeasurableSet_mulSupport + theorem MeasureTheory.AEStronglyMeasurable.of_finite + theorem MeasureTheory.AEStronglyMeasurable.of_measurableSpace_le_on + theorem MeasureTheory.AEStronglyMeasurable.of_subsingleton_cod + theorem MeasureTheory.AEStronglyMeasurable.of_subsingleton_dom + theorem MeasureTheory.AEStronglyMeasurable.of_trim + theorem MeasureTheory.AEStronglyMeasurable.piecewise + theorem MeasureTheory.AEStronglyMeasurable.smul_measure + theorem MeasureTheory.AEStronglyMeasurable.stronglyMeasurable_mk + theorem MeasureTheory.AEStronglyMeasurable.sum_measure + def MeasureTheory.AEStronglyMeasurable + theorem MeasureTheory.FinStronglyMeasurable.aefinStronglyMeasurable + theorem MeasureTheory.SimpleFunc.aestronglyMeasurable + theorem MeasureTheory.Subsingleton.aestronglyMeasurable' + theorem MeasureTheory.Subsingleton.aestronglyMeasurable + theorem MeasureTheory.aefinStronglyMeasurable_iff_aemeasurable + theorem MeasureTheory.aefinStronglyMeasurable_of_aemeasurable + theorem MeasureTheory.aefinStronglyMeasurable_zero + theorem MeasureTheory.aestronglyMeasurable_const + theorem MeasureTheory.aestronglyMeasurable_one + theorem MeasureTheory.aestronglyMeasurable_zero_measure + theorem Multiset.aestronglyMeasurable_prod' + theorem Multiset.aestronglyMeasurable_prod + theorem Topology.IsEmbedding.aestronglyMeasurable_comp_iff + theorem aestronglyMeasurable_add_measure_iff + theorem aestronglyMeasurable_congr + theorem aestronglyMeasurable_const_smul_iff + theorem aestronglyMeasurable_const_smul_iff₀ + theorem aestronglyMeasurable_iUnion_iff + theorem aestronglyMeasurable_id + theorem aestronglyMeasurable_iff_aemeasurable + theorem aestronglyMeasurable_iff_aemeasurable_separable + theorem aestronglyMeasurable_iff_nullMeasurable_separable + theorem aestronglyMeasurable_indicator_iff + theorem aestronglyMeasurable_of_aestronglyMeasurable_trim + theorem aestronglyMeasurable_of_tendsto_ae + theorem aestronglyMeasurable_sum_measure_iff + theorem aestronglyMeasurable_union_iff + theorem exists_stronglyMeasurable_limit_of_tendsto_ae Modified Mathlib/MeasureTheory/Function/StronglyMeasurable/Basic.lean - theorem AEMeasurable.aestronglyMeasurable - theorem Continuous.aestronglyMeasurable - theorem Continuous.comp_aestronglyMeasurable - theorem Continuous.comp_aestronglyMeasurable₂ - theorem Finset.aestronglyMeasurable_prod' - theorem Finset.aestronglyMeasurable_prod - theorem List.aestronglyMeasurable_prod' - theorem List.aestronglyMeasurable_prod - theorem Measurable.aestronglyMeasurable - theorem MeasurableEmbedding.aestronglyMeasurable_map_iff - theorem MeasureTheory.AEFinStronglyMeasurable.ae_eq_mk - theorem MeasureTheory.AEFinStronglyMeasurable.ae_eq_zero_compl - theorem MeasureTheory.AEFinStronglyMeasurable.exists_set_sigmaFinite - theorem MeasureTheory.AEFinStronglyMeasurable.finStronglyMeasurable_mk - def MeasureTheory.AEFinStronglyMeasurable.sigmaFiniteSet - def MeasureTheory.AEFinStronglyMeasurable - theorem MeasureTheory.AEStronglyMeasurable.add_measure - theorem MeasureTheory.AEStronglyMeasurable.ae_eq_mk - theorem MeasureTheory.AEStronglyMeasurable.ae_mem_imp_eq_mk - theorem MeasureTheory.AEStronglyMeasurable.aestronglyMeasurable_uIoc_iff - theorem MeasureTheory.AEStronglyMeasurable.comp_aemeasurable - theorem MeasureTheory.AEStronglyMeasurable.comp_measurable - theorem MeasureTheory.AEStronglyMeasurable.comp_quasiMeasurePreserving - theorem MeasureTheory.AEStronglyMeasurable.congr - theorem MeasureTheory.AEStronglyMeasurable.isSeparable_ae_range - theorem MeasureTheory.AEStronglyMeasurable.measurable_mk - theorem MeasureTheory.AEStronglyMeasurable.mono - theorem MeasureTheory.AEStronglyMeasurable.mono_measure - theorem MeasureTheory.AEStronglyMeasurable.mono_set - theorem MeasureTheory.AEStronglyMeasurable.mul_iff_left - theorem MeasureTheory.AEStronglyMeasurable.mul_iff_right - theorem MeasureTheory.AEStronglyMeasurable.nullMeasurableSet_eq_fun - theorem MeasureTheory.AEStronglyMeasurable.nullMeasurableSet_le - theorem MeasureTheory.AEStronglyMeasurable.nullMeasurableSet_lt - theorem MeasureTheory.AEStronglyMeasurable.nullMeasurableSet_mulSupport - theorem MeasureTheory.AEStronglyMeasurable.of_finite - theorem MeasureTheory.AEStronglyMeasurable.of_measurableSpace_le_on - theorem MeasureTheory.AEStronglyMeasurable.of_subsingleton_cod - theorem MeasureTheory.AEStronglyMeasurable.of_subsingleton_dom - theorem MeasureTheory.AEStronglyMeasurable.of_trim - theorem MeasureTheory.AEStronglyMeasurable.piecewise - theorem MeasureTheory.AEStronglyMeasurable.smul_measure - theorem MeasureTheory.AEStronglyMeasurable.stronglyMeasurable_mk - theorem MeasureTheory.AEStronglyMeasurable.sum_measure - def MeasureTheory.AEStronglyMeasurable - theorem MeasureTheory.FinStronglyMeasurable.aefinStronglyMeasurable - theorem MeasureTheory.SimpleFunc.aestronglyMeasurable - theorem MeasureTheory.Subsingleton.aestronglyMeasurable' - theorem MeasureTheory.Subsingleton.aestronglyMeasurable - theorem MeasureTheory.aefinStronglyMeasurable_iff_aemeasurable - theorem MeasureTheory.aefinStronglyMeasurable_of_aemeasurable - theorem MeasureTheory.aefinStronglyMeasurable_zero - theorem MeasureTheory.aestronglyMeasurable_const - theorem MeasureTheory.aestronglyMeasurable_one - theorem MeasureTheory.aestronglyMeasurable_zero_measure - theorem Multiset.aestronglyMeasurable_prod' - theorem Multiset.aestronglyMeasurable_prod - theorem Topology.IsEmbedding.aestronglyMeasurable_comp_iff - theorem aestronglyMeasurable_add_measure_iff - theorem aestronglyMeasurable_congr - theorem aestronglyMeasurable_const_smul_iff - theorem aestronglyMeasurable_const_smul_iff₀ - theorem aestronglyMeasurable_iUnion_iff - theorem aestronglyMeasurable_id - theorem aestronglyMeasurable_iff_aemeasurable - theorem aestronglyMeasurable_iff_aemeasurable_separable - theorem aestronglyMeasurable_iff_nullMeasurable_separable - theorem aestronglyMeasurable_indicator_iff - theorem aestronglyMeasurable_of_aestronglyMeasurable_trim - theorem aestronglyMeasurable_of_tendsto_ae - theorem aestronglyMeasurable_sum_measure_iff - theorem aestronglyMeasurable_union_iff - theorem exists_stronglyMeasurable_limit_of_tendsto_ae Modified Mathlib/MeasureTheory/Function/StronglyMeasurable/ENNReal.lean Modified Mathlib/MeasureTheory/Function/StronglyMeasurable/Inner.lean Modified Mathlib/MeasureTheory/Function/StronglyMeasurable/Lemmas.lean 2025-01-31 17:41:27 47acb74 feat(CategoryTheory): the monoidal category structure on a localization (#20951) In #12728, we shall show that if `C` is a monoidal category and `W` is a class of morphism that is preserved by the tensor product, then the localized category is also monoidal. In this PR, we only define the `MonoidalCategoryStruct` instance and check the easy compatibilities. The pentagon and the triangle identities will be done in the separate PR #12728. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Localization/Monoidal.lean + theorem CategoryTheory.Localization.Monoidal.associator_hom_app + theorem CategoryTheory.Localization.Monoidal.associator_naturality + theorem CategoryTheory.Localization.Monoidal.associator_naturality₁ + theorem CategoryTheory.Localization.Monoidal.associator_naturality₂ + theorem CategoryTheory.Localization.Monoidal.associator_naturality₃ + theorem CategoryTheory.Localization.Monoidal.id_tensorHom + theorem CategoryTheory.Localization.Monoidal.isInvertedBy₂ + theorem CategoryTheory.Localization.Monoidal.leftUnitor_hom_app + theorem CategoryTheory.Localization.Monoidal.rightUnitor_hom_app + theorem CategoryTheory.Localization.Monoidal.tensorHom_id + theorem CategoryTheory.Localization.Monoidal.tensor_comp + theorem CategoryTheory.Localization.Monoidal.tensor_id + def CategoryTheory.Localization.Monoidal.toMonoidalCategory + theorem CategoryTheory.Localization.Monoidal.whiskerLeft_comp + theorem CategoryTheory.Localization.Monoidal.whiskerLeft_id + theorem CategoryTheory.Localization.Monoidal.whiskerRight_comp + theorem CategoryTheory.Localization.Monoidal.whiskerRight_id + theorem CategoryTheory.Localization.Monoidal.whisker_exchange + theorem CategoryTheory.Localization.Monoidal.μ_inv_natural_left + theorem CategoryTheory.Localization.Monoidal.μ_inv_natural_right + theorem CategoryTheory.Localization.Monoidal.μ_natural_left + theorem CategoryTheory.Localization.Monoidal.μ_natural_right + def CategoryTheory.LocalizedMonoidal + theorem CategoryTheory.MorphismProperty.tensorHom_mem + theorem CategoryTheory.MorphismProperty.whiskerLeft_mem + theorem CategoryTheory.MorphismProperty.whiskerRight_mem Modified Mathlib/CategoryTheory/Whiskering.lean + def CategoryTheory.Functor.postcompose₂ 2025-01-31 17:41:26 ac2479c feat(Analysis/Complex/Hadamard): generalize Hadamard's three lines theorem (#15009) Make Hadamard's three lines theorem work on any vertical strip of the complex plane (i.e., the set of complex numbers of real part between `l` and `u`, provided l is less than u). Previously, the theorem would only work for `l=0` and `u=1`. Moves: - norm_le_interp_of_mem_verticalClosedStrip -> norm_le_interp_of_mem_verticalClosedStrip₀₁ - norm_le_interp_of_mem_verticalClosedStrip' -> norm_le_interp_of_mem_verticalClosedStrip₀₁' ESTIMATED CHANGES Modified Mathlib/Analysis/Complex/Hadamard.lean +/- theorem Complex.HadamardThreeLines.eventuallyle + theorem Complex.HadamardThreeLines.interpStrip_scale + theorem Complex.HadamardThreeLines.mem_verticalClosedStrip_of_scale_id_mem_verticalClosedStrip +/- theorem Complex.HadamardThreeLines.norm_le_interpStrip_of_mem_verticalClosedStrip + theorem Complex.HadamardThreeLines.norm_le_interpStrip_of_mem_verticalClosedStrip₀₁ +/- theorem Complex.HadamardThreeLines.norm_le_interp_of_mem_verticalClosedStrip' + theorem Complex.HadamardThreeLines.norm_le_interp_of_mem_verticalClosedStrip₀₁' + theorem Complex.HadamardThreeLines.sSupNormIm_scale_left + theorem Complex.HadamardThreeLines.sSupNormIm_scale_right + def Complex.HadamardThreeLines.scale + theorem Complex.HadamardThreeLines.scale_bddAbove + theorem Complex.HadamardThreeLines.scale_bound_left + theorem Complex.HadamardThreeLines.scale_bound_right + theorem Complex.HadamardThreeLines.scale_diffContOnCl + theorem Complex.HadamardThreeLines.scale_id_mem_verticalClosedStrip_of_mem_verticalClosedStrip + theorem Complex.HadamardThreeLines.scale_id_mem_verticalStrip_of_mem_verticalStrip 2025-01-31 16:21:23 c02933f feat(Order/CompleteBooleanAlgebra): Himp in terms of sSup (#20328) ESTIMATED CHANGES Modified Mathlib/Order/Bounds/Basic.lean + theorem isGreatest_compl + theorem isGreatest_himp + theorem isLeast_hnot + theorem isLeast_sdiff Modified Mathlib/Order/CompleteBooleanAlgebra.lean + theorem Order.Frame.MinimalAxioms.Order.Coframe.MinimalAxioms.CompleteDistribLattice.MinimalAxioms.CompletelyDistribLattice.MinimalAxioms.compl_eq_sSup_disjoint + theorem Order.Frame.MinimalAxioms.Order.Coframe.MinimalAxioms.CompleteDistribLattice.MinimalAxioms.CompletelyDistribLattice.MinimalAxioms.himp_eq_sSup + theorem Order.Frame.MinimalAxioms.Order.Coframe.MinimalAxioms.CompleteDistribLattice.MinimalAxioms.CompletelyDistribLattice.MinimalAxioms.hnot_eq_sInf_codisjoint + theorem Order.Frame.MinimalAxioms.Order.Coframe.MinimalAxioms.CompleteDistribLattice.MinimalAxioms.CompletelyDistribLattice.MinimalAxioms.sdiff_eq_sInf 2025-01-31 16:21:21 2993934 feat(ENNReal/Basic): add `ofNat_ne_top` and `top_ne_ofNat` (#14486) Also deprecate `two_ne_top` and `two_lt_top`. ESTIMATED CHANGES Modified Mathlib/Analysis/InnerProductSpace/l2Space.lean Modified Mathlib/Analysis/Matrix.lean Modified Mathlib/Analysis/MeanInequalitiesPow.lean Modified Mathlib/Data/ENNReal/Basic.lean + theorem ENNReal.top_ne_ofNat +/- theorem ENNReal.two_lt_top +/- theorem ENNReal.two_ne_top Modified Mathlib/Data/ENNReal/Inv.lean +/- theorem ENNReal.inv_three_add_inv_three Modified Mathlib/MeasureTheory/Covering/Besicovitch.lean Modified Mathlib/MeasureTheory/Function/ConvergenceInMeasure.lean Modified Mathlib/MeasureTheory/Function/L2Space.lean Modified Mathlib/MeasureTheory/Function/LpSeminorm/TriangleInequality.lean Modified Mathlib/MeasureTheory/Group/GeometryOfNumbers.lean Modified Mathlib/MeasureTheory/Integral/Bochner.lean Modified Mathlib/MeasureTheory/Integral/MeanInequalities.lean Modified Mathlib/MeasureTheory/Measure/LevyProkhorovMetric.lean Modified Mathlib/NumberTheory/NumberField/CanonicalEmbedding/ConvexBody.lean Modified Mathlib/Probability/Variance.lean Modified Mathlib/Topology/EMetricSpace/Defs.lean Modified Mathlib/Topology/EMetricSpace/Paracompact.lean Modified Mathlib/Topology/Instances/ENNReal/Lemmas.lean 2025-01-31 14:57:45 9aaa799 feat: Function.const as a PartialEquiv (#21137) ESTIMATED CHANGES Modified Mathlib/Logic/Equiv/PartialEquiv.lean + def PartialEquiv.single 2025-01-31 14:57:44 d7d3fa6 chore(NonZeroDivisors): don't import rings (#20871) See https://github.com/leanprover-community/mathlib3/pull/11211 for the copyright header of the new file ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Algebra/Operations.lean Modified Mathlib/Algebra/GroupWithZero/NonZeroDivisors.lean - theorem dvd_cancel_left_coe_nonZeroDivisors - theorem dvd_cancel_left_mem_nonZeroDivisors - theorem dvd_cancel_right_coe_nonZeroDivisors - theorem dvd_cancel_right_mem_nonZeroDivisors - theorem isUnit_iff_mem_nonZeroDivisors_of_finite - theorem mul_cancel_left_coe_nonZeroDivisors - theorem mul_cancel_left_mem_nonZeroDivisors - theorem mul_cancel_right_coe_nonZeroDivisors - theorem mul_cancel_right_mem_nonZeroDivisors Added Mathlib/Algebra/Ring/NonZeroDivisors.lean + theorem dvd_cancel_left_coe_nonZeroDivisors + theorem dvd_cancel_left_mem_nonZeroDivisors + theorem dvd_cancel_right_coe_nonZeroDivisors + theorem dvd_cancel_right_mem_nonZeroDivisors + theorem isUnit_iff_mem_nonZeroDivisors_of_finite + theorem mul_cancel_left_coe_nonZeroDivisors + theorem mul_cancel_left_mem_nonZeroDivisors + theorem mul_cancel_right_coe_nonZeroDivisors + theorem mul_cancel_right_mem_nonZeroDivisors Modified Mathlib/FieldTheory/RatFunc/Defs.lean 2025-01-31 14:18:11 2c45190 feat(Data/Set/Lattice): insert distributivity with iUnion/iInter (#21267) From discussion in #21172 ESTIMATED CHANGES Modified Mathlib/Data/Set/Lattice.lean + theorem Set.insert_iInter + theorem Set.insert_iUnion 2025-01-31 14:09:17 bd8a0b9 feat(GroupTheory/SpecificGroups/AlternatingGroup): subgroups of index 2 of Equiv.Perm (#21190) A subgroup of index 2 of `Equiv.Perm α`is equal to `alternatingGroup α`, a subgroup of index at most 2 contains it. ESTIMATED CHANGES Modified Mathlib/GroupTheory/IndexNormal.lean Modified Mathlib/GroupTheory/SpecificGroups/Alternating.lean + theorem Equiv.Perm.alternatingGroup_le_of_index_le_two + theorem Equiv.Perm.eq_alternatingGroup_of_index_eq_two + theorem alternatingGroup.eq_bot_of_card_le_two + theorem alternatingGroup.index_eq_two + theorem index_eq_one 2025-01-31 12:56:57 e58d6d7 feat(GroupTheory/GroupAction/Transitive): basic results on transitive actions (#21285) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/GroupTheory/GroupAction/Transitive.lean + theorem MulAction.IsPretransitive.of_surjective_map + theorem MulAction.isPretransitive_congr + theorem MulAction.isPretransitive_iff_base + theorem MulAction.isPretransitive_iff_orbit_eq_top 2025-01-31 12:56:56 a9d767f perf(MeasureTheory/Function/LpSpace.lean): speed up (#21179) Squeeze a few particularly slow simps, and add a comment about them. Remove two slightly slow convert's; simpa resp. exact also works and is in fact faster. ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Function/LpSpace.lean +/- theorem MeasureTheory.Lp.norm_exponent_zero 2025-01-31 12:11:32 1bcccad feat(Order): order isomorphisms from `Fin n` for small `n` (#21120) We define order isomorphisms like `Fin.orderIsoTriple` from `Fin 3` to the finset `{a, b, c}` when `a < b` and `b < c`. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Order/Fin/Finset.lean + theorem Fin.orderIsoPair_one + theorem Fin.orderIsoPair_zero + theorem Fin.orderIsoSingleton_apply + theorem Fin.orderIsoTriple_one + theorem Fin.orderIsoTriple_two + theorem Fin.orderIsoTriple_zero Modified Mathlib/Order/Hom/Basic.lean 2025-01-31 11:58:01 5c261c9 refactor(Topology/Group): turn morphisms in ProfiniteGrp into one field structures (#20740) Refactor morphisms in ProfiniteGrp into one-field structure. ESTIMATED CHANGES Modified Mathlib/Topology/Algebra/Category/ProfiniteGrp/Basic.lean + structure ProfiniteAddGrp.Hom + structure ProfiniteGrp.Hom +/- theorem ProfiniteGrp.coe_of + theorem ProfiniteGrp.comp_apply + theorem ProfiniteGrp.hom_comp + theorem ProfiniteGrp.hom_ext + theorem ProfiniteGrp.hom_id + theorem ProfiniteGrp.hom_inv_apply + theorem ProfiniteGrp.hom_ofHom + theorem ProfiniteGrp.id_apply + theorem ProfiniteGrp.inv_hom_apply +/- def ProfiniteGrp.of + theorem ProfiniteGrp.ofHom_apply + theorem ProfiniteGrp.ofHom_comp + theorem ProfiniteGrp.ofHom_hom + theorem ProfiniteGrp.ofHom_id - def ProfiniteGrp.profiniteGrpToProfinite Modified Mathlib/Topology/Algebra/Category/ProfiniteGrp/Limits.lean Modified Mathlib/Topology/Algebra/ContinuousMonoidHom.lean + theorem ContinuousMonoidHom.coe_comp + theorem ContinuousMonoidHom.coe_id Added MathlibTest/CategoryTheory/ConcreteCategory/ProfiniteGrp.lean 2025-01-31 10:08:07 e754b42 feat: Sylow's first theorem for elementary `p`-groups (#21072) From PFR ESTIMATED CHANGES Modified Mathlib/Algebra/Module/ZMod.lean + theorem ZModModule.exists_submodule_subset_card_le 2025-01-31 09:33:12 c7a5e3b chore(Submonoid/Membership): don't import `MonoidWithZero` (#20748) See #10327 for the new copyright header ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Group/Submonoid/Membership.lean - theorem MulMemClass.mul_left_mem_add_closure - theorem MulMemClass.mul_mem_add_closure - theorem MulMemClass.mul_right_mem_add_closure - def Submonoid.isPrimal Modified Mathlib/Algebra/Group/Submonoid/Pointwise.lean Modified Mathlib/Algebra/GroupWithZero/NonZeroDivisors.lean Added Mathlib/Algebra/GroupWithZero/Submonoid.lean + def Submonoid.isPrimal Added Mathlib/Algebra/Ring/Submonoid.lean + theorem MulMemClass.mul_left_mem_add_closure + theorem MulMemClass.mul_mem_add_closure + theorem MulMemClass.mul_right_mem_add_closure Modified Mathlib/GroupTheory/MonoidLocalization/Away.lean Modified Mathlib/RingTheory/NonUnitalSubsemiring/Basic.lean Modified Mathlib/RingTheory/UniqueFactorizationDomain/Defs.lean 2025-01-31 09:06:23 4e87722 refactor(Algebra/Algebra/Pi): cleanup and renaming (#21213) Renaming and cleanup in `Algebra.Algebra.Pi` following discussion. ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/Pi.lean +/- def AlgEquiv.piCongrRight +/- theorem AlgEquiv.piCongrRight_refl +/- theorem AlgEquiv.piCongrRight_symm +/- theorem AlgEquiv.piCongrRight_trans +/- def Pi.algHom +/- theorem Pi.algHom_comp +/- theorem Pi.algHom_evalAlgHom +/- theorem Pi.algebraMap_apply +/- theorem Pi.algebraMap_def +/- def Pi.evalAlgHom 2025-01-31 08:23:18 01a1707 feat(GroupTheory/IndexNormal): subgroups of small index are normal (#21186) * `Subgroup.normal_of_index_eq_smallest_prime_factor`: in a finite group `G`, a subgroup of index equal to the smallest prime factor of `Nat.card G` is normal. * `Subgroup.normal_of_index_two`: in a group `G`, a subgroup of index 2 is normal (This does not require `G` to be finite.) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Data/Finite/Perm.lean + theorem Nat.card_perm Modified Mathlib/Data/Nat/Prime/Factorial.lean + theorem Nat.coprime_factorial_iff Added Mathlib/GroupTheory/IndexNormal.lean + theorem Subgroup.normal_of_index_eq_minFac_card + theorem Subgroup.normal_of_index_eq_one + theorem Subgroup.normal_of_index_eq_two Modified Mathlib/GroupTheory/Perm/Finite.lean 2025-01-31 07:17:25 fa4f54a feat(Algebra/Group/Action): add definition of equidecomposition (#16936) Define equidecomposition and provide some basic theory and operations. [Zulip](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Banach.20Tarski.20Paradox.20in.20Lean) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Group/Action/Equidecomp.lean + theorem Equidecomp.IsDecompOn.comp' + theorem Equidecomp.IsDecompOn.comp + theorem Equidecomp.IsDecompOn.mono + theorem Equidecomp.IsDecompOn.of_leftInvOn + def Equidecomp.IsDecompOn + theorem Equidecomp.apply_mem_target + theorem Equidecomp.isDecompOn + theorem Equidecomp.left_inv + theorem Equidecomp.map_target + def Equidecomp.refl + theorem Equidecomp.refl_symm + def Equidecomp.restr + theorem Equidecomp.restr_of_source_subset + theorem Equidecomp.restr_refl_symm + theorem Equidecomp.restr_univ + theorem Equidecomp.right_inv + theorem Equidecomp.source_restr + theorem Equidecomp.symm_symm + theorem Equidecomp.toPartialEquiv_injective + theorem Equidecomp.toPartialEquiv_restr + def Equidecomp.witness + structure Equidecomp Modified Mathlib/Logic/Equiv/PartialEquiv.lean + theorem PartialEquiv.source_restr_subset_source 2025-01-31 07:04:49 53f8caf feat(CategoryTheory/Subpresheaf): equalizer (#21096) If `F₁` and `F₂` are presheaves of types, `A : Subpresheaf F₁`, and `f` and `g` are two morphisms `A.toPresheaf ⟶ F₂`, we introduce `Subcomplex.equalizer f g`, which is the subpresheaf of `F₁` contained in `A` where `f` and `g` coincide. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Subpresheaf/Equalizer.lean + theorem CategoryTheory.Subpresheaf.equalizer.condition + def CategoryTheory.Subpresheaf.equalizer.fork + def CategoryTheory.Subpresheaf.equalizer.forkIsLimit + theorem CategoryTheory.Subpresheaf.equalizer.fork_ι + def CategoryTheory.Subpresheaf.equalizer.lift + theorem CategoryTheory.Subpresheaf.equalizer.lift_ι' + theorem CategoryTheory.Subpresheaf.equalizer.lift_ι + def CategoryTheory.Subpresheaf.equalizer.ι + theorem CategoryTheory.Subpresheaf.equalizer.ι_ι + theorem CategoryTheory.Subpresheaf.equalizer_eq_iff + theorem CategoryTheory.Subpresheaf.equalizer_le + theorem CategoryTheory.Subpresheaf.equalizer_self + theorem CategoryTheory.Subpresheaf.mem_equalizer_iff + theorem CategoryTheory.Subpresheaf.range_le_equalizer_iff 2025-01-31 05:43:33 b4a286e feat: add lemmas about products of `Matrix.stdBasisMatrix` (#21204) ESTIMATED CHANGES Modified Mathlib/Data/Matrix/Hadamard.lean + theorem Matrix.stdBasisMatrix_hadamard_stdBasisMatrix_eq + theorem Matrix.stdBasisMatrix_hadamard_stdBasisMatrix_of_ne Modified Mathlib/Data/Matrix/Kronecker.lean + theorem Matrix.kroneckerMap_stdBasisMatrix_stdBasisMatrix + theorem Matrix.kroneckerTMulBilinear_apply + theorem Matrix.stdBasisMatrix_kroneckerTMul_stdBasisMatrix + theorem Matrix.stdBasisMatrix_kronecker_stdBasisMatrix 2025-01-31 03:14:58 4c900bf chore: update Mathlib dependencies 2025-01-31 (#21282) This PR updates the Mathlib dependencies. ESTIMATED CHANGES Modified lake-manifest.json 2025-01-31 00:20:45 b9c7233 feat(Analysis/Distribution): Add memLp, toLp, toLpCLM, continuous_toLp for SchwartzMap (#20423) ESTIMATED CHANGES Modified Mathlib/Analysis/Distribution/SchwartzSpace.lean + theorem MeasureTheory.Measure.HasTemperateGrowth.exists_eLpNorm_lt_top + theorem SchwartzMap.coeFn_toLp + theorem SchwartzMap.continuous_toLp + theorem SchwartzMap.eLpNorm_le_seminorm + theorem SchwartzMap.eLpNorm_lt_top + theorem SchwartzMap.injective_toLp + theorem SchwartzMap.memℒp + theorem SchwartzMap.memℒp_top + theorem SchwartzMap.norm_toLp + theorem SchwartzMap.norm_toLp_le_seminorm + def SchwartzMap.toLp + def SchwartzMap.toLpCLM + theorem SchwartzMap.toLpCLM_apply 2025-01-30 23:30:56 05b5d11 fix(#count_heartbeats): add `approximately` flag to stabilise tests (#21251) Writing `#count_hearts approximately in cmd` will report the heartbeat count, rounded down to the nearest 1000. This can be used by the `#count_heartbeats` command: writing `#count_heartbeats approximately` only reports heartbeat counts that are rounded down to the nearest 1000. This functionality is mostly intended to stabilise tests, so that small variations in heartbeat counts will still pass the tests. Reported on [Zulip](https://leanprover.zulipchat.com/#narrow/channel/341532-lean4-dev/topic/mathlib.20test.20build.20fails.20.288.20instead.20of.207.20heartbeats.29) ESTIMATED CHANGES Modified Mathlib/Util/CountHeartbeats.lean Modified MathlibTest/CountHeartbeats.lean 2025-01-30 22:16:26 fbd1225 refactor(Data/Finsupp/Weight): generalize and add lemmas (#20635) This consists on easy generalizations and lemmas relative to the weight of finsupp functions, that will be used in the formalization of Alon's combinatorial Nullstellensatz #20495 ESTIMATED CHANGES Modified Mathlib/Data/Finsupp/Weight.lean +/- theorem Finsupp.NonTorsionWeight.ne_zero +/- def Finsupp.degree +/- theorem Finsupp.degree_add +/- theorem Finsupp.degree_eq_weight_one +/- theorem Finsupp.degree_eq_zero_iff +/- theorem Finsupp.degree_single +/- theorem Finsupp.degree_zero +/- theorem Finsupp.le_degree +/- theorem Finsupp.nonTorsionWeight_of +/- theorem Finsupp.weight_apply + theorem Finsupp.weight_single + theorem Finsupp.weight_single_index + theorem Finsupp.weight_single_one_apply Modified Mathlib/LinearAlgebra/Finsupp/LinearCombination.lean + theorem Finsupp.linearCombination_single_index Modified Mathlib/RingTheory/MvPolynomial/WeightedHomogeneous.lean Modified Mathlib/RingTheory/MvPowerSeries/Order.lean 2025-01-30 22:16:24 088495e chore(AlgebraicGeometry/EllipticCurve/Jacobian): mirror changes in projective coordinates (#20037) ESTIMATED CHANGES Modified Mathlib/AlgebraicGeometry/EllipticCurve/Jacobian.lean + theorem WeierstrassCurve.Jacobian.Equation.map +/- theorem WeierstrassCurve.Jacobian.Point.toAffine_of_Z_eq_zero +/- theorem WeierstrassCurve.Jacobian.Y_eq_of_Y_ne' +/- theorem WeierstrassCurve.Jacobian.Y_eq_of_Y_ne +/- theorem WeierstrassCurve.Jacobian.Y_sub_Y_add_Y_sub_negY + theorem WeierstrassCurve.Jacobian.addXYZ_X + theorem WeierstrassCurve.Jacobian.addXYZ_Y + theorem WeierstrassCurve.Jacobian.addXYZ_Z +/- theorem WeierstrassCurve.Jacobian.addZ_neg +/- theorem WeierstrassCurve.Jacobian.addZ_self + theorem WeierstrassCurve.Jacobian.baseChange_add + theorem WeierstrassCurve.Jacobian.baseChange_addX + theorem WeierstrassCurve.Jacobian.baseChange_addXYZ + theorem WeierstrassCurve.Jacobian.baseChange_addY + theorem WeierstrassCurve.Jacobian.baseChange_dblU + theorem WeierstrassCurve.Jacobian.baseChange_dblX + theorem WeierstrassCurve.Jacobian.baseChange_dblXYZ + theorem WeierstrassCurve.Jacobian.baseChange_dblY + theorem WeierstrassCurve.Jacobian.baseChange_dblZ + theorem WeierstrassCurve.Jacobian.baseChange_equation + theorem WeierstrassCurve.Jacobian.baseChange_neg + theorem WeierstrassCurve.Jacobian.baseChange_negAddY + theorem WeierstrassCurve.Jacobian.baseChange_negDblY + theorem WeierstrassCurve.Jacobian.baseChange_negY + theorem WeierstrassCurve.Jacobian.baseChange_nonsingular + theorem WeierstrassCurve.Jacobian.baseChange_polynomial + theorem WeierstrassCurve.Jacobian.baseChange_polynomialX + theorem WeierstrassCurve.Jacobian.baseChange_polynomialY + theorem WeierstrassCurve.Jacobian.baseChange_polynomialZ + theorem WeierstrassCurve.Jacobian.comp_equiv_comp +/- theorem WeierstrassCurve.Jacobian.comp_fin3 + theorem WeierstrassCurve.Jacobian.comp_smul + theorem WeierstrassCurve.Jacobian.dblXYZ_X + theorem WeierstrassCurve.Jacobian.dblXYZ_Y + theorem WeierstrassCurve.Jacobian.dblXYZ_Z +/- theorem WeierstrassCurve.Jacobian.dblXYZ_smul + theorem WeierstrassCurve.Jacobian.map_addU +/- theorem WeierstrassCurve.Jacobian.map_addX +/- theorem WeierstrassCurve.Jacobian.map_addXYZ +/- theorem WeierstrassCurve.Jacobian.map_addY +/- theorem WeierstrassCurve.Jacobian.map_addZ +/- theorem WeierstrassCurve.Jacobian.map_dblU +/- theorem WeierstrassCurve.Jacobian.map_dblX +/- theorem WeierstrassCurve.Jacobian.map_dblXYZ +/- theorem WeierstrassCurve.Jacobian.map_dblY +/- theorem WeierstrassCurve.Jacobian.map_dblZ + theorem WeierstrassCurve.Jacobian.map_equation +/- theorem WeierstrassCurve.Jacobian.map_negAddY +/- theorem WeierstrassCurve.Jacobian.map_negDblY +/- theorem WeierstrassCurve.Jacobian.map_negY + theorem WeierstrassCurve.Jacobian.map_nonsingular +/- theorem WeierstrassCurve.Jacobian.negAddY_eq' +/- theorem WeierstrassCurve.Jacobian.negAddY_self +/- theorem WeierstrassCurve.Jacobian.negMap_eq + theorem WeierstrassCurve.Jacobian.negY_eq +/- theorem WeierstrassCurve.Jacobian.negY_smul + theorem WeierstrassCurve.Jacobian.neg_X + theorem WeierstrassCurve.Jacobian.neg_Y + theorem WeierstrassCurve.Jacobian.neg_Z + theorem WeierstrassCurve.Jacobian.smul_equiv_smul Modified Mathlib/AlgebraicGeometry/EllipticCurve/Projective.lean + theorem WeierstrassCurve.Projective.baseChange_neg 2025-01-30 22:07:28 ac0e252 fix: get author of pull request for PR review / PR review comment (#21278) [Zulip thread (in reviewers stream)](https://leanprover.zulipchat.com/#narrow/channel/345428-mathlib-reviewers/topic/add.20author.20to.20.60maintainer-merge.60.20Zulip.20message) ESTIMATED CHANGES Modified .github/workflows/maintainer_merge.yml 2025-01-30 19:51:25 e4f90bc chore: deprecate the `∑ x in s, f x` notation (#21253) Make the `∑ x in s, f x` and `∑ x : ty in s, f x` syntaxes print a code action suggesting to replace to `∑ x ∈ s, f x`. This makes the old syntaxes noisy and therefore unusable in mathlib. Therefore, we must also replace the last few uses of the old syntaxes by the new one. ESTIMATED CHANGES Modified Mathlib/Algebra/BigOperators/Group/Finset/Basic.lean +/- theorem Multiset.toFinset_sum_count_eq Modified Mathlib/Algebra/BigOperators/Group/Finset/Defs.lean +/- theorem Finset.sum_multiset_singleton Modified Mathlib/Algebra/BigOperators/GroupWithZero/Action.lean Modified Mathlib/Algebra/BigOperators/Intervals.lean Modified Mathlib/Algebra/Category/ModuleCat/Basic.lean Modified Mathlib/Algebra/Group/AddChar.lean +/- theorem AddChar.coe_prod +/- theorem AddChar.coe_sum +/- theorem AddChar.prod_eq_sum Modified Mathlib/Algebra/Group/ForwardDiff.lean Modified Mathlib/Algebra/Group/Translate.lean Modified Mathlib/Algebra/Lie/Derivation/Basic.lean Modified Mathlib/Algebra/Lie/TraceForm.lean Modified Mathlib/Algebra/Lie/Weights/Killing.lean Modified Mathlib/Analysis/BoxIntegral/Basic.lean Modified Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/NonUnital.lean Modified Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Unital.lean Modified Mathlib/Analysis/Distribution/FourierSchwartz.lean Modified Mathlib/Analysis/Fourier/FourierTransformDeriv.lean Modified Mathlib/Analysis/FunctionalSpaces/SobolevInequality.lean Modified Mathlib/Analysis/MeanInequalities.lean Modified Mathlib/Analysis/Normed/Group/Ultra.lean Modified Mathlib/Analysis/SpecialFunctions/Log/Summable.lean Modified Mathlib/Combinatorics/Additive/Dissociation.lean +/- def MulDissociated Modified Mathlib/Combinatorics/Colex.lean +/- theorem Finset.lt_geomSum_of_mem Modified Mathlib/Combinatorics/Enumerative/Bell.lean Modified Mathlib/Combinatorics/Enumerative/DoubleCounting.lean Modified Mathlib/Combinatorics/Enumerative/IncidenceAlgebra.lean Modified Mathlib/Combinatorics/SetFamily/KruskalKatona.lean Modified Mathlib/Data/Nat/BitIndices.lean Modified Mathlib/Data/Nat/Choose/Lucas.lean Modified Mathlib/Data/Nat/Choose/Multinomial.lean Modified Mathlib/Data/Real/Pi/Irrational.lean Modified Mathlib/FieldTheory/ChevalleyWarning.lean Modified Mathlib/GroupTheory/Perm/DomMulAct.lean Modified Mathlib/LinearAlgebra/QuadraticForm/Basic.lean Modified Mathlib/MeasureTheory/Function/Intersectivity.lean Modified Mathlib/MeasureTheory/Measure/AddContent.lean Modified Mathlib/MeasureTheory/Measure/SeparableMeasure.lean Modified Mathlib/NumberTheory/ArithmeticFunction.lean Modified Mathlib/NumberTheory/FactorisationProperties.lean Modified Mathlib/NumberTheory/ModularForms/EisensteinSeries/UniformConvergence.lean Modified Mathlib/NumberTheory/Padics/MahlerBasis.lean Modified Mathlib/RingTheory/Coalgebra/Basic.lean Modified Mathlib/RingTheory/HahnSeries/Multiplication.lean Modified Mathlib/RingTheory/Ideal/Operations.lean Modified Mathlib/RingTheory/Idempotents.lean Modified Mathlib/RingTheory/MvPolynomial/Symmetric/FundamentalTheorem.lean Modified Mathlib/RingTheory/MvPowerSeries/Basic.lean Modified Mathlib/RingTheory/MvPowerSeries/Order.lean Modified Mathlib/RingTheory/Polynomial/HilbertPoly.lean Modified Mathlib/RingTheory/Polynomial/Ideal.lean Modified Mathlib/Topology/Algebra/Algebra.lean Modified Mathlib/Topology/Algebra/InfiniteSum/GroupCompletion.lean Modified Mathlib/Topology/ContinuousMap/CompactlySupported.lean 2025-01-30 19:40:57 e9e7b89 feat(FieldTheory): `F⟮a⟯ = F⟮a ^ q ^ n⟯` in `ExpChar q` for separable `a` (#21249) Add special cases of existing results for simple adjoin. ESTIMATED CHANGES Modified Mathlib/FieldTheory/PurelyInseparable.lean + theorem IntermediateField.adjoin_simple_eq_adjoin_pow_expChar_of_isSeparable' + theorem IntermediateField.adjoin_simple_eq_adjoin_pow_expChar_of_isSeparable + theorem IntermediateField.adjoin_simple_eq_adjoin_pow_expChar_pow_of_isSeparable' + theorem IntermediateField.adjoin_simple_eq_adjoin_pow_expChar_pow_of_isSeparable 2025-01-30 18:56:45 3d895fb feat: iff version of `le_of_forall_le` (#21264) Also rename `le_of_forall_le'` to `le_of_forall_ge`. ESTIMATED CHANGES Modified Mathlib/Order/Basic.lean + theorem forall_le_iff_ge + theorem forall_le_iff_le + theorem le_of_forall_ge - theorem le_of_forall_le' 2025-01-30 16:52:20 3da619b feat(Mathlib/Algebra/Central/TensorProduct): More on Central Algebras (#20991) Co-authored by: @jjaassoonn ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Central/Basic.lean + theorem Algebra.IsCentral.of_algEquiv Added Mathlib/Algebra/Central/TensorProduct.lean + theorem Algebra.IsCentral.left_of_tensor + theorem Algebra.IsCentral.left_of_tensor_of_field + theorem Algebra.IsCentral.right_of_tensor + theorem Algebra.IsCentral.right_of_tensor_of_field + theorem Algebra.TensorProduct.includeLeft_map_center_le + theorem Algebra.TensorProduct.includeRight_map_center_le 2025-01-30 16:37:35 e547f5c feat: the right Kan extension of a functor on a preorder is a sheaf (#21263) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Topology/Order/UpperLowerSetTopology.lean + theorem Topology.IsUpperSet.specializes_iff_le Added Mathlib/Topology/Sheaves/Alexandrov.lean + theorem Alexandrov.exists_le_of_le_sup + def Alexandrov.isLimit + theorem Alexandrov.isSheaf_principalsKanExtension + def Alexandrov.lowerCone + def Alexandrov.principalOpen + theorem Alexandrov.principalOpen_le + theorem Alexandrov.principalOpen_le_iff + def Alexandrov.principals + def Alexandrov.projSup + theorem Alexandrov.self_mem_principalOpen + theorem Topology.IsUpperSet.isSheaf_of_isRightKanExtension 2025-01-30 16:37:34 4f099bd feat(Algebra/Category): concrete category refactor for `MonCat` (#21222) This is a step towards a concrete category redesign, as outlined in this Zulip post: https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Concrete.20category.20class.20redesign/near/493903980 This PR updates the concrete category definitions of (Add)(Comm)MonCat to match the standard set by AlgebraCat, ModuleCat and RingCat: * Package objects and homs into structures. * Replace HasForget with ConcreteCategory. * Set up a good @[simp] set. * Ensure constructors and projections are reducible. See MathlibTest/CategoryTheory/ConcreteCategory/MonCat.lean for the specification of all the new functionality. Currently there are still a couple issues around actions and tensor products, where `simp [the_lemma]` doesn't work even though `simp [(the_lemma)]` does. Not sure why this is happening, the discrimination tree keys look perfectly normal and `trace.Meta.Tactic.simp` doesn't say anything useful. I have not tried to look for code that can be cleaned up now, only at what broke. I want to get started on cleanup when the other concrete category instances are in. ESTIMATED CHANGES Modified Mathlib/Algebra/Category/Grp/Adjunctions.lean Modified Mathlib/Algebra/Category/Grp/FilteredColimits.lean Modified Mathlib/Algebra/Category/Grp/Limits.lean Modified Mathlib/Algebra/Category/GrpWithZero.lean Modified Mathlib/Algebra/Category/MonCat/Adjunctions.lean Modified Mathlib/Algebra/Category/MonCat/Basic.lean + structure AddCommMonCat.Hom + structure AddCommMonCat + structure AddMonCat.Hom + structure AddMonCat + def CommMonCat.Hom.Simps.hom + structure CommMonCat.Hom + theorem CommMonCat.coe_forget₂_obj + theorem CommMonCat.comp_apply + theorem CommMonCat.forget₂_map_ofHom + theorem CommMonCat.hom_comp + theorem CommMonCat.hom_ext + theorem CommMonCat.hom_forget₂_map + theorem CommMonCat.hom_id + theorem CommMonCat.hom_inv_apply + theorem CommMonCat.hom_ofHom + theorem CommMonCat.id_apply + theorem CommMonCat.inv_hom_apply - def CommMonCat.of - def CommMonCat.ofHom + theorem CommMonCat.ofHom_comp + theorem CommMonCat.ofHom_hom + theorem CommMonCat.ofHom_id + structure CommMonCat - def CommMonCat + def MonCat.Hom.Simps.hom + structure MonCat.Hom +/- theorem MonCat.coe_of + theorem MonCat.comp_apply +/- theorem MonCat.forget_map + theorem MonCat.hom_comp + theorem MonCat.hom_ext + theorem MonCat.hom_id + theorem MonCat.hom_inv_apply + theorem MonCat.hom_ofHom + theorem MonCat.hom_one + theorem MonCat.id_apply + theorem MonCat.inv_hom_apply - def MonCat.of - def MonCat.ofHom + theorem MonCat.ofHom_comp + theorem MonCat.ofHom_hom + theorem MonCat.ofHom_id +/- theorem MonCat.oneHom_apply + structure MonCat - def MonCat +/- theorem MonoidHom.comp_id_commMonCat +/- theorem MonoidHom.comp_id_monCat +/- theorem MonoidHom.id_commMonCat_comp +/- theorem MonoidHom.id_monCat_comp Modified Mathlib/Algebra/Category/MonCat/Colimits.lean +/- def MonCat.Colimits.coconeMorphism +/- def MonCat.Colimits.descMorphism Modified Mathlib/Algebra/Category/MonCat/FilteredColimits.lean +/- def MonCat.FilteredColimits.coconeMorphism +/- def MonCat.FilteredColimits.colimitDesc Modified Mathlib/Algebra/Category/MonCat/ForgetCorepresentable.lean Modified Mathlib/Algebra/Category/MonCat/Limits.lean Modified Mathlib/Algebra/Category/Ring/Basic.lean Modified Mathlib/Algebra/Category/Ring/FilteredColimits.lean Modified Mathlib/CategoryTheory/Abelian/Pseudoelements.lean Modified Mathlib/CategoryTheory/Action/Basic.lean +/- theorem Action.ρ_one Modified Mathlib/CategoryTheory/Action/Concrete.lean Modified Mathlib/CategoryTheory/Action/Monoidal.lean +/- theorem Action.tensorUnit_ρ +/- theorem Action.tensor_ρ Modified Mathlib/CategoryTheory/Galois/Examples.lean Modified Mathlib/CategoryTheory/Monoidal/Internal/Types.lean Modified Mathlib/CategoryTheory/SingleObj.lean Modified Mathlib/RepresentationTheory/FDRep.lean Modified Mathlib/RepresentationTheory/GroupCohomology/Resolution.lean Modified Mathlib/RepresentationTheory/Rep.lean Added MathlibTest/CategoryTheory/ConcreteCategory/MonCat.lean Modified MathlibTest/MonCat.lean 2025-01-30 16:06:18 91155b5 chore(Data/Finsupp/Basic): split SMul from file (#21230) This PR splits part of Data/Finsupp/Basic.lean related to SMul into a new SMul.lean file, addressing an instance of a long file linter trigger. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Category/ModuleCat/Projective.lean Modified Mathlib/Algebra/MonoidAlgebra/Basic.lean Modified Mathlib/Algebra/MonoidAlgebra/Defs.lean Modified Mathlib/Algebra/SkewMonoidAlgebra/Basic.lean Modified Mathlib/Data/Finsupp/Basic.lean - def Finsupp.DistribMulActionHom.single - def Finsupp.comapDistribMulAction - theorem Finsupp.comapDomain_smul - theorem Finsupp.comapDomain_smul_of_injective - def Finsupp.comapMulAction - def Finsupp.comapSMul - theorem Finsupp.comapSMul_apply - theorem Finsupp.comapSMul_def - theorem Finsupp.comapSMul_single - theorem Finsupp.distribMulActionHom_ext' - theorem Finsupp.distribMulActionHom_ext - theorem Finsupp.filter_smul - theorem Finsupp.mapDomain_smul - theorem Finsupp.single_smul - theorem Finsupp.smul_single' - theorem Finsupp.smul_single_one - theorem Finsupp.sum_smul_index' - theorem Finsupp.sum_smul_index - theorem Finsupp.sum_smul_index_addMonoidHom - theorem Finsupp.support_smul_eq - theorem IsSMulRegular.finsupp Modified Mathlib/Data/Finsupp/Multiset.lean Modified Mathlib/Data/Finsupp/Order.lean Added Mathlib/Data/Finsupp/SMul.lean + def Finsupp.DistribMulActionHom.single + def Finsupp.comapDistribMulAction + theorem Finsupp.comapDomain_smul + theorem Finsupp.comapDomain_smul_of_injective + def Finsupp.comapMulAction + def Finsupp.comapSMul + theorem Finsupp.comapSMul_apply + theorem Finsupp.comapSMul_def + theorem Finsupp.comapSMul_single + theorem Finsupp.distribMulActionHom_ext' + theorem Finsupp.distribMulActionHom_ext + theorem Finsupp.filter_smul + theorem Finsupp.mapDomain_smul + theorem Finsupp.single_smul + theorem Finsupp.smul_single' + theorem Finsupp.smul_single_one + theorem Finsupp.sum_smul_index' + theorem Finsupp.sum_smul_index + theorem Finsupp.sum_smul_index_addMonoidHom + theorem Finsupp.support_smul_eq + theorem IsSMulRegular.finsupp Modified Mathlib/Data/Finsupp/ToDFinsupp.lean Modified Mathlib/LinearAlgebra/Finsupp/Defs.lean Modified Mathlib/LinearAlgebra/Finsupp/SumProd.lean 2025-01-30 15:54:57 344e1cf feat(AlgebraicGeometry): `Π Rᵢ`-points of schemes (#20494) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/AlgebraicGeometry/GammaSpecAdjunction.lean + theorem AlgebraicGeometry.Spec.preimage_comp + theorem AlgebraicGeometry.Spec.preimage_id Modified Mathlib/AlgebraicGeometry/Limits.lean + theorem AlgebraicGeometry.isOpenImmersion_sigmaDesc Modified Mathlib/AlgebraicGeometry/Morphisms/ClosedImmersion.lean + theorem AlgebraicGeometry.IsClosedImmersion.Spec_iff Modified Mathlib/AlgebraicGeometry/Morphisms/Immersion.lean Modified Mathlib/AlgebraicGeometry/Morphisms/QuasiSeparated.lean + theorem AlgebraicGeometry.quasiSeparatedSpace_iff_quasiCompact_prod_lift Added Mathlib/AlgebraicGeometry/PointsPi.lean + theorem AlgebraicGeometry.Ideal.span_eq_top_of_span_image_evalRingHom + theorem AlgebraicGeometry.eq_bot_of_comp_quotientMk_eq_sigmaSpec + theorem AlgebraicGeometry.eq_top_of_sigmaSpec_subset_of_isCompact + theorem AlgebraicGeometry.isIso_of_comp_eq_sigmaSpec + def AlgebraicGeometry.pointsPi + theorem AlgebraicGeometry.pointsPi_injective + theorem AlgebraicGeometry.pointsPi_surjective + theorem AlgebraicGeometry.pointsPi_surjective_of_isAffine 2025-01-30 15:46:03 dc2c587 feat: conditional variance (#21051) From my PhD (LeanCamCombi) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/MeasureTheory/Function/ConditionalExpectation/Basic.lean Modified Mathlib/MeasureTheory/Function/LpSeminorm/CompareExp.lean Added Mathlib/Probability/CondVar.lean + theorem ProbabilityTheory.condVar_ae_eq_condExp_sq_sub_sq_condExp + theorem ProbabilityTheory.condVar_ae_le_condExp_sq + theorem ProbabilityTheory.condVar_bot' + theorem ProbabilityTheory.condVar_bot + theorem ProbabilityTheory.condVar_bot_ae_eq + theorem ProbabilityTheory.condVar_congr_ae + theorem ProbabilityTheory.condVar_const + theorem ProbabilityTheory.condVar_neg + theorem ProbabilityTheory.condVar_of_aestronglyMeasurable + theorem ProbabilityTheory.condVar_of_not_integrable + theorem ProbabilityTheory.condVar_of_not_le + theorem ProbabilityTheory.condVar_of_not_sigmaFinite + theorem ProbabilityTheory.condVar_of_sigmaFinite + theorem ProbabilityTheory.condVar_of_stronglyMeasurable + theorem ProbabilityTheory.condVar_smul + theorem ProbabilityTheory.condVar_zero + theorem ProbabilityTheory.integrable_condVar + theorem ProbabilityTheory.integral_condVar_add_variance_condExp + theorem ProbabilityTheory.setIntegral_condVar + theorem ProbabilityTheory.stronglyMeasurable_condVar 2025-01-30 15:01:41 5b3fe12 chore(NumberTheory/LSeries): unsqueeze lots of terminal simps (#21133) ESTIMATED CHANGES Modified Mathlib/NumberTheory/LSeries/AbstractFuncEq.lean Modified Mathlib/NumberTheory/LSeries/Basic.lean Modified Mathlib/NumberTheory/LSeries/Convergence.lean +/- theorem LSeries.abscissaOfAbsConv_le_one_of_isBigO_one Modified Mathlib/NumberTheory/LSeries/Convolution.lean Modified Mathlib/NumberTheory/LSeries/Deriv.lean Modified Mathlib/NumberTheory/LSeries/Dirichlet.lean Modified Mathlib/NumberTheory/LSeries/DirichletContinuation.lean Modified Mathlib/NumberTheory/LSeries/HurwitzZeta.lean Modified Mathlib/NumberTheory/LSeries/HurwitzZetaEven.lean Modified Mathlib/NumberTheory/LSeries/HurwitzZetaOdd.lean +/- theorem HurwitzZeta.oddKernel_zero +/- theorem HurwitzZeta.sinKernel_zero Modified Mathlib/NumberTheory/LSeries/HurwitzZetaValues.lean Modified Mathlib/NumberTheory/LSeries/Linearity.lean Modified Mathlib/NumberTheory/LSeries/MellinEqDirichlet.lean Modified Mathlib/NumberTheory/ModularForms/JacobiTheta/TwoVariable.lean 2025-01-30 13:06:10 410dd1f doc(Order/WellFounded): minor docstring improvements (#20776) We fix two typos and add two missing deprecation messages. ESTIMATED CHANGES Modified Mathlib/Order/WellFounded.lean 2025-01-30 13:06:09 6f5142e feat(RingTheory/StandardSmooth): naive cotangent complex of a submersive presentation (#19748) We show that `H¹(L_{S/R})` is trivial if `S` is `R`-standard smooth and that `Ω[S⁄R]` is free of rank `n` if `S` is `R`-standard smooth of relative dimension `n`. In particular this shows that standard smooth implies smooth and that standard smooth of relative dimension zero implies smooth and unramified. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/RingTheory/Smooth/StandardSmoothCotangent.lean + theorem Algebra.IsStandardSmoothOfRelativeDimension.rank_kaehlerDifferential + theorem Algebra.PreSubmersivePresentation.cotangentComplexAux_apply + theorem Algebra.PreSubmersivePresentation.cotangentComplexAux_zero_iff + theorem Algebra.SubmersivePresentation.cotangentComplexAux_injective + theorem Algebra.SubmersivePresentation.cotangentComplexAux_surjective + theorem Algebra.SubmersivePresentation.cotangentComplex_injective + theorem Algebra.SubmersivePresentation.free_kaehlerDifferential + theorem Algebra.SubmersivePresentation.rank_kaehlerDifferential + theorem Algebra.SubmersivePresentation.sectionCotangent_comp + theorem Algebra.SubmersivePresentation.sectionCotangent_eq_iff + theorem Algebra.SubmersivePresentation.sectionCotangent_zero_of_not_mem_range 2025-01-30 12:44:40 f17018b feat(Data/Finsupp/MonomialOrder) : lexicographic order on `Unique` (#20699) Two lemmas for lexicographic order on a`Unique` type are added. ESTIMATED CHANGES Modified Mathlib/Data/Finsupp/Lex.lean + theorem Finsupp.lex_le_iff_of_unique + theorem Finsupp.lex_lt_iff + theorem Finsupp.lex_lt_iff_of_unique Modified Mathlib/Data/Finsupp/MonomialOrder.lean - theorem Finsupp.lex_le_iff - theorem Finsupp.lex_lt_iff + theorem MonomialOrder.lex_le_iff_of_unique + theorem MonomialOrder.lex_lt_iff_of_unique 2025-01-30 12:07:08 b848c8d chore(Variance): golf API (#20814) ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Function/L1Space/Integrable.lean + theorem MeasureTheory.Memℒp.integrable_norm_pow' + theorem MeasureTheory.Memℒp.integrable_norm_pow Modified Mathlib/Probability/Moments/Basic.lean +/- theorem ProbabilityTheory.centralMoment_two_eq_variance Modified Mathlib/Probability/Variance.lean - theorem MeasureTheory.Memℒp.evariance_lt_top - theorem MeasureTheory.Memℒp.ofReal_variance_eq - theorem MeasureTheory.Memℒp.variance_eq - theorem MeasureTheory.Memℒp.variance_eq_of_integral_eq_zero +/- def ProbabilityTheory.evariance +/- theorem ProbabilityTheory.evariance_eq_lintegral_ofReal + theorem ProbabilityTheory.evariance_eq_top_iff + theorem ProbabilityTheory.evariance_lt_top + theorem ProbabilityTheory.evariance_ne_top + theorem ProbabilityTheory.ofReal_variance +/- def ProbabilityTheory.variance + theorem ProbabilityTheory.variance_eq_integral + theorem ProbabilityTheory.variance_of_integral_eq_zero 2025-01-30 11:04:55 e61a8cf feat: add author to maintainer merge message (#21254) ESTIMATED CHANGES Modified .github/workflows/maintainer_merge.yml Modified scripts/maintainer_merge_message.sh 2025-01-30 09:06:19 9571e4a feat: let `notation3` pretty print "overapplied" notations (#21239) This PR makes `notation3`s delaborators be able to handle "overapplied" functions — these are notations that expand to functions that might then be applied to arguments. The fundamental issue is that we need to know the arity of a function to be able to keep track of how many arguments are supposed to be matched for the notation and how many are supposed to be put toward normal app delaboration. With some changes to core in the last year, we now have a `withOverApp` combinator we can take advantage of. To make use of it, the `notation3` delaborator generator has been modified to compute arities while creating matchers. The effect is that we now observe ```lean import Mathlib.Algebra.BigOperators.Finprod variable (ι R : Type) (f : ι → R) [DecidableEq ι] [CommRing R] example : (∑ᶠ (i : ι), Pi.single i (f i)) = f := by -- ⊢ ∑ᶠ (i : ι), Pi.single i (f i) = f ext j -- ⊢ (∑ᶠ (i : ι), Pi.single i (f i)) j = f j sorry ``` where before this PR the state after `ext j` was `⊢ finsum (fun i => Pi.single i (f i)) j = f j`. Implementation note: matchers can be associated to multiple delaboration keys. Previously we would define a single delaborator and then give it multiple `delab` attributes per key. This is very rare to have more than one key. For simplicity, we now define a separate delaborator per key, since each can have its own arity processing. ESTIMATED CHANGES Modified Mathlib/Util/Notation3.lean +/- def Mathlib.Notation3.$(Lean.mkIdent + def Mathlib.Notation3.DelabKey.key + inductive Mathlib.Notation3.DelabKey Modified MathlibTest/notation3.lean 2025-01-30 07:11:46 132efc7 feat(Algebra/Category): concrete category refactor for `Grp` (#21192) This is a step towards a concrete category redesign, as outlined in this Zulip post: https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Concrete.20category.20class.20redesign/near/493903980 This PR updates the concrete category definitions of `Grp`, `AddGrp`, `CommGrp` and `AddCommGrp` to match the standard set by `AlgebraCat`, `ModuleCat` and `RingCat`: * Package objects and homs into structures. * Replace `HasForget` with `ConcreteCategory`. * Set up a good `@[simp]` set. * Ensure constructors and projections are reducible. See `MathlibTest/CategoryTheory/ConcreteCategory/Grp.lean` for the specification of all the new functionality. In particular, we can drop `coe_of` from the `@[simp]` set, which means we can re-enable some `@[simps]` attributes downstream. (I did the ones I came across, but we'd need to go through the library more carefully to get them all.) Overall I think we get a good cleanup, even if there are a handful of places where we have to fight more against the `HasForget`/`ConcreteCategory` non-reducible defeq. Those should go away as `HasForget` is obsoleted further. I have not tried to look for code that can be cleaned up now, only at what broke. I want to get started on cleanup when the other concrete category instances are in. ESTIMATED CHANGES Modified Mathlib/Algebra/Category/Grp/AB.lean Modified Mathlib/Algebra/Category/Grp/Adjunctions.lean Modified Mathlib/Algebra/Category/Grp/Basic.lean + structure AddCommGrp.Hom - theorem AddCommGrp.asHom_apply + structure AddCommGrp + structure AddGrp.Hom + structure AddGrp + def CommGrp.Hom.Simps.hom + structure CommGrp.Hom - theorem CommGrp.coe_comp' - theorem CommGrp.coe_id' +/- theorem CommGrp.coe_of + theorem CommGrp.comp_apply +/- theorem CommGrp.comp_def + theorem CommGrp.forget₂_commMonCat_map_ofHom + theorem CommGrp.forget₂_grp_map_ofHom + theorem CommGrp.hom_comp + theorem CommGrp.hom_ext + theorem CommGrp.hom_id + theorem CommGrp.hom_inv_apply + theorem CommGrp.hom_ofHom + theorem CommGrp.id_apply + theorem CommGrp.inv_hom_apply - def CommGrp.of - def CommGrp.ofHom +/- theorem CommGrp.ofHom_apply + theorem CommGrp.ofHom_comp + theorem CommGrp.ofHom_hom + theorem CommGrp.ofHom_id + structure CommGrp - def CommGrp + def Grp.Hom.Simps.hom + structure Grp.Hom - theorem Grp.coe_comp' - theorem Grp.coe_id' + theorem Grp.comp_apply +/- theorem Grp.comp_def + theorem Grp.forget₂_map_ofHom + theorem Grp.hom_comp + theorem Grp.hom_ext + theorem Grp.hom_id + theorem Grp.hom_inv_apply + theorem Grp.hom_ofHom + theorem Grp.id_apply + theorem Grp.inv_hom_apply - def Grp.of - def Grp.ofHom +/- theorem Grp.ofHom_apply + theorem Grp.ofHom_comp + theorem Grp.ofHom_hom + theorem Grp.ofHom_id + structure Grp - def Grp +/- theorem MonoidHom.comp_id_commGrp +/- theorem MonoidHom.comp_id_grp +/- theorem MonoidHom.id_commGrp_comp +/- theorem MonoidHom.id_grp_comp Modified Mathlib/Algebra/Category/Grp/Biproducts.lean +/- def AddCommGrp.HasLimit.lift Modified Mathlib/Algebra/Category/Grp/Colimits.lean Modified Mathlib/Algebra/Category/Grp/EnoughInjectives.lean Modified Mathlib/Algebra/Category/Grp/EpiMono.lean +/- theorem AddGrp.epi_iff_range_eq_top +/- theorem CommGrp.epi_iff_range_eq_top +/- theorem CommGrp.ker_eq_bot_of_mono +/- theorem CommGrp.mono_iff_ker_eq_bot +/- theorem CommGrp.range_eq_top_of_epi +/- theorem Grp.SurjectiveOfEpiAuxs.agree +/- theorem Grp.SurjectiveOfEpiAuxs.comp_eq +/- theorem Grp.SurjectiveOfEpiAuxs.fromCoset_eq_of_mem_range +/- theorem Grp.SurjectiveOfEpiAuxs.fromCoset_ne_of_nin_range +/- theorem Grp.SurjectiveOfEpiAuxs.g_ne_h +/- theorem Grp.SurjectiveOfEpiAuxs.h_apply_fromCoset' +/- theorem Grp.SurjectiveOfEpiAuxs.h_apply_fromCoset_nin_range +/- theorem Grp.SurjectiveOfEpiAuxs.h_apply_infinity +/- theorem Grp.SurjectiveOfEpiAuxs.τ_apply_fromCoset' +/- theorem Grp.SurjectiveOfEpiAuxs.τ_apply_fromCoset +/- theorem Grp.SurjectiveOfEpiAuxs.τ_apply_infinity +/- theorem Grp.SurjectiveOfEpiAuxs.τ_symm_apply_fromCoset +/- theorem Grp.epi_iff_range_eq_top +/- theorem Grp.ker_eq_bot_of_mono +/- theorem Grp.mono_iff_ker_eq_bot Modified Mathlib/Algebra/Category/Grp/EquivalenceGroupAddGroup.lean Modified Mathlib/Algebra/Category/Grp/FilteredColimits.lean Modified Mathlib/Algebra/Category/Grp/FiniteGrp.lean Modified Mathlib/Algebra/Category/Grp/ForgetCorepresentable.lean Modified Mathlib/Algebra/Category/Grp/Images.lean Modified Mathlib/Algebra/Category/Grp/Injective.lean Modified Mathlib/Algebra/Category/Grp/Kernels.lean Modified Mathlib/Algebra/Category/Grp/LargeColimits.lean Modified Mathlib/Algebra/Category/Grp/Limits.lean Modified Mathlib/Algebra/Category/Grp/Preadditive.lean + def AddCommGrp.homAddEquiv + theorem AddCommGrp.hom_add + theorem AddCommGrp.hom_neg + theorem AddCommGrp.hom_nsmul + theorem AddCommGrp.hom_sub + theorem AddCommGrp.hom_zero + theorem AddCommGrp.hom_zsmul Modified Mathlib/Algebra/Category/Grp/Ulift.lean Modified Mathlib/Algebra/Category/Grp/ZModuleEquivalence.lean Modified Mathlib/Algebra/Category/ModuleCat/Basic.lean Modified Mathlib/Algebra/Category/ModuleCat/FilteredColimits.lean Modified Mathlib/Algebra/Category/ModuleCat/Presheaf.lean Modified Mathlib/Algebra/Category/ModuleCat/Presheaf/Sheafify.lean Modified Mathlib/Algebra/Category/ModuleCat/Tannaka.lean Modified Mathlib/Algebra/Category/Ring/Basic.lean Modified Mathlib/Algebra/Category/Semigrp/Basic.lean Modified Mathlib/Algebra/Homology/ConcreteCategory.lean Modified Mathlib/Algebra/Homology/DerivedCategory/Ext/ExactSequences.lean Modified Mathlib/Algebra/Homology/HomotopyCategory/HomComplex.lean Modified Mathlib/Algebra/Homology/ImageToKernel.lean Modified Mathlib/Algebra/Homology/ShortComplex/Ab.lean +/- theorem CategoryTheory.ShortComplex.abCyclesIso_inv_apply_iCycles +/- theorem CategoryTheory.ShortComplex.abLeftHomologyData_f' +/- def CategoryTheory.ShortComplex.abToCycles +/- theorem CategoryTheory.ShortComplex.ab_exact_iff_ker_le_range +/- theorem CategoryTheory.ShortComplex.ab_exact_iff_range_eq_ker Modified Mathlib/Algebra/Homology/ShortComplex/ConcreteCategory.lean Modified Mathlib/AlgebraicTopology/TopologicalSimplex.lean Modified Mathlib/Analysis/Normed/Group/SemiNormedGrp/Kernels.lean Modified Mathlib/CategoryTheory/Action/Basic.lean +/- def Action.ρAut Modified Mathlib/CategoryTheory/ConcreteCategory/Basic.lean Modified Mathlib/CategoryTheory/Galois/Prorepresentability.lean Modified Mathlib/CategoryTheory/Limits/Shapes/ConcreteCategory.lean Modified Mathlib/CategoryTheory/Preadditive/Yoneda/Basic.lean Modified Mathlib/CategoryTheory/Sites/ConcreteSheafification.lean Modified Mathlib/CategoryTheory/Sites/LocallySurjective.lean Modified Mathlib/FieldTheory/Galois/Profinite.lean Modified Mathlib/Order/Category/NonemptyFinLinOrd.lean Modified Mathlib/RepresentationTheory/Invariants.lean Modified Mathlib/Topology/Algebra/Category/ProfiniteGrp/Basic.lean Modified Mathlib/Topology/Algebra/Category/ProfiniteGrp/Limits.lean Modified Mathlib/Topology/Category/CompHaus/Basic.lean Modified Mathlib/Topology/Category/Profinite/Basic.lean Modified Mathlib/Topology/Category/TopCat/Limits/Products.lean Modified Mathlib/Topology/Category/TopCat/Limits/Pullbacks.lean Modified Mathlib/Topology/Gluing.lean Modified Mathlib/Topology/Sheaves/LocallySurjective.lean Modified Mathlib/Topology/Sheaves/Presheaf.lean Modified Mathlib/Topology/Sheaves/SheafCondition/UniqueGluing.lean Modified Mathlib/Topology/Sheaves/Stalks.lean Added MathlibTest/CategoryTheory/ConcreteCategory/Grp.lean 2025-01-30 06:18:03 969f14d feat: `ext` lemmas for `stdBasisMatrix` (#21200) Additive and linear maps from matrices agree if they agree on `stdBasisMatrix`. ESTIMATED CHANGES Modified Mathlib/Data/Matrix/Basis.lean + theorem Matrix.ext_addMonoidHom + theorem Matrix.ext_linearMap + def Matrix.stdBasisMatrixAddMonoidHom + def Matrix.stdBasisMatrixLinearMap 2025-01-30 06:18:02 1db0a08 feat: lemmas about `Matrix.comp` for `diagonal` and `stdBasis` (#21181) ESTIMATED CHANGES Modified Mathlib/Data/Matrix/Composition.lean + theorem Matrix.compAlgEquiv_apply + theorem Matrix.compAlgEquiv_symm_apply + theorem Matrix.comp_diagonal_diagonal + theorem Matrix.comp_map_map + theorem Matrix.comp_map_transpose + theorem Matrix.comp_stdBasisMatrix_stdBasisMatrix + theorem Matrix.comp_symm_diagonal + theorem Matrix.comp_symm_stdBasisMatrix + theorem Matrix.comp_symm_transpose + theorem Matrix.comp_transpose 2025-01-30 06:09:24 d9b81fa chore: fix escaping in create-adaptation-pr.sh (#21246) ESTIMATED CHANGES Modified scripts/create-adaptation-pr.sh 2025-01-30 06:00:14 e6b6302 feat(RingTheory/HahnSeries): define powerSeriesFamily (#20205) This PR defines a summable family of power series whose elements are non-negative powers of a fixed Hahn series times the coefficients of a formal power series. We will use it to define algebra homomorphisms from rings of formal power series to Hahn series. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/RingTheory/HahnSeries/Addition.lean + theorem HahnSeries.coeff_sum Added Mathlib/RingTheory/HahnSeries/HEval.lean + theorem HahnSeries.SummableFamily.hsum_powerSeriesFamily_mul + theorem HahnSeries.SummableFamily.powerSeriesFamily_add + theorem HahnSeries.SummableFamily.powerSeriesFamily_apply + theorem HahnSeries.SummableFamily.powerSeriesFamily_smul + theorem HahnSeries.SummableFamily.support_powerSeriesFamily_subset 2025-01-30 03:59:40 14589bd chore: update Mathlib dependencies 2025-01-30 (#21247) This PR updates the Mathlib dependencies. ESTIMATED CHANGES Modified Mathlib/Data/Int/Bitwise.lean - def Int.testBit Modified lake-manifest.json 2025-01-30 03:33:25 16e417e chore: process a few porting notes (#21227) ESTIMATED CHANGES Modified Mathlib/Dynamics/PeriodicPts/Defs.lean Modified Mathlib/InformationTheory/Hamming.lean Modified Mathlib/Testing/Plausible/Functions.lean 2025-01-30 02:02:06 956d514 fix(tech debt): allow multiple paths for adaptation notes (#21241) Reported on [Zulip](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Technical.20Debt.20Counters/near/496481255). ESTIMATED CHANGES Modified scripts/technical-debt-metrics.sh 2025-01-30 00:58:35 0cd9763 feat(Data/Matroid/Circuit): better junk values for `fundCircuit` (#21240) The definition of fundamental circuits in #21145 was suboptimal, in that its junk values were unstable. We slightly modify the definition so that the fundamental circuit of a non-element `e` of the ground set is a singleton `{e}`. This removes assumptions from a couple of existing lemmas, and crucially makes the useful lemma `Matroid.fundCircuit_restrict_univ` true, where it wasn't before. ESTIMATED CHANGES Modified Mathlib/Data/Matroid/Circuit.lean + theorem Matroid.fundCircuit_diff_eq_inter - theorem Matroid.fundCircuit_eq_of_mem' +/- theorem Matroid.fundCircuit_eq_of_mem + theorem Matroid.fundCircuit_eq_of_not_mem_ground + theorem Matroid.fundCircuit_restrict + theorem Matroid.fundCircuit_restrict_univ 2025-01-30 00:35:50 8ec167c chore(SetTheory/Ordinal/Exponential): redefine ordinal exponential without `bsup` (#19145) `Ordinal.bsup` is planned to be deprecated. ESTIMATED CHANGES Modified Mathlib/SetTheory/Ordinal/Exponential.lean - theorem Ordinal.opow_def +/- theorem Ordinal.opow_limit +/- theorem Ordinal.opow_succ +/- theorem Ordinal.zero_opow' + theorem Ordinal.zero_opow_le Modified Mathlib/SetTheory/Ordinal/Notation.lean 2025-01-29 23:58:53 2ae8c98 feat(CStarAlgebra): matrices with entries in a C⋆-algebra (#15277) This PR creates the type `CstarMatrix m n A` as a copy of `Matrix m n A` meant for the case where `A` is a C⋆-algebra. Most notably, we show that square matrices with entries in a C⋆-algebra form a C⋆-algebra. - [x] depends on: #15244 - [x] depends on: #15274 ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/CStarAlgebra/CStarMatrix.lean + theorem CStarMatrix.add_apply + def CStarMatrix.conjTranspose + theorem CStarMatrix.ext + theorem CStarMatrix.ext_iff + theorem CStarMatrix.inner_toCLM_conjTranspose_left + theorem CStarMatrix.inner_toCLM_conjTranspose_right + def CStarMatrix.map + theorem CStarMatrix.map_apply + theorem CStarMatrix.map_id' + theorem CStarMatrix.map_id + theorem CStarMatrix.map_injective + theorem CStarMatrix.map_map + theorem CStarMatrix.mul_apply' + theorem CStarMatrix.mul_apply + theorem CStarMatrix.mul_entry_mul_eq_inner_toCLM + theorem CStarMatrix.mul_smul + theorem CStarMatrix.neg_apply + theorem CStarMatrix.neg_of + theorem CStarMatrix.norm_def' + theorem CStarMatrix.norm_def + theorem CStarMatrix.norm_entry_le_norm + theorem CStarMatrix.norm_le_of_forall_inner_le + theorem CStarMatrix.normedSpaceCore + def CStarMatrix.ofMatrix + def CStarMatrix.ofMatrixL + def CStarMatrix.ofMatrixRingEquiv + def CStarMatrix.ofMatrixStarAlgEquiv + theorem CStarMatrix.ofMatrix_apply + theorem CStarMatrix.ofMatrix_eq_ofMatrixL + theorem CStarMatrix.ofMatrix_eq_ofMatrixStarAlgEquiv + theorem CStarMatrix.ofMatrix_symm_apply + def CStarMatrix.ofMatrixₗ + theorem CStarMatrix.of_add_of + theorem CStarMatrix.of_sub_of + theorem CStarMatrix.of_zero + theorem CStarMatrix.one_apply + theorem CStarMatrix.one_apply_eq + theorem CStarMatrix.one_apply_ne' + theorem CStarMatrix.one_apply_ne + theorem CStarMatrix.smul_apply + theorem CStarMatrix.smul_mul + theorem CStarMatrix.smul_of + theorem CStarMatrix.sub_apply + def CStarMatrix.toCLM + def CStarMatrix.toCLMNonUnitalAlgHom + theorem CStarMatrix.toCLMNonUnitalAlgHom_eq_toCLM + theorem CStarMatrix.toCLM_apply + theorem CStarMatrix.toCLM_apply_eq_sum + theorem CStarMatrix.toCLM_apply_single + theorem CStarMatrix.toCLM_apply_single_apply + theorem CStarMatrix.toCLM_injective + def CStarMatrix.transpose + theorem CStarMatrix.transpose_apply + theorem CStarMatrix.uniformEmbedding_ofMatrix + theorem CStarMatrix.zero_apply + def CStarMatrix Modified Mathlib/Analysis/CStarAlgebra/Module/Constructions.lean Modified Mathlib/Analysis/CStarAlgebra/Module/Synonym.lean + def WithCStarModule.addEquiv + def WithCStarModule.equivL + theorem WithCStarModule.map_top_submodule Modified Mathlib/Data/Finset/Lattice/Fold.lean + theorem Finset.sup_eq_bot_of_isEmpty Modified Mathlib/Topology/Instances/Matrix.lean 2025-01-29 23:20:58 34763b0 chore(Order/SupIndep): review API (#21235) ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/Eigenspace/Triangularizable.lean Modified Mathlib/Order/SupIndep.lean + theorem Finset.SupIndep.antitone_fun - theorem Finset.SupIndep.attach - theorem Finset.SupIndep.biUnion - theorem Finset.SupIndep.image - theorem Finset.SupIndep.product - theorem Finset.SupIndep.sigma - theorem Finset.SupIndep.sup - theorem Finset.supIndep_antimono_fun 2025-01-29 23:20:57 789550e feat(NumberTheory/NumberField/FinitePlaces): change one lemma (#21187) `lemma one_lt_norm: 1 < (absNorm v.asIdeal : NNReal)` becomes ` lemma one_lt_norm_nnreal : 1 < (absNorm v.asIdeal : NNReal)` and we add `lemma one_lt_norm : 1 < absNorm v.asIdeal ` ESTIMATED CHANGES Modified Mathlib/NumberTheory/NumberField/FinitePlaces.lean + theorem NumberField.norm_ne_zero +/- theorem NumberField.one_lt_norm + theorem NumberField.one_lt_norm_nnreal 2025-01-29 23:20:56 69a0a85 feat(SimpleGraph/Coloring): a graph is 0-colorable iff it has no vertices (#21185) ESTIMATED CHANGES Modified Mathlib/Combinatorics/SimpleGraph/Coloring.lean + theorem SimpleGraph.colorable_zero_iff 2025-01-29 23:20:55 d932152 feat: `HasFDerivAt` for `Fin.cons` (#20407) I'm too lazy to add these for `Fin.snoc` as well, and I suspect people care much less about that. Strictly we need to repeat all these for `Matrix.vecCons` as well... ESTIMATED CHANGES Modified Mathlib/Analysis/Calculus/Deriv/Prod.lean + theorem HasDerivAt.finCons + theorem HasDerivAtFilter.finCons + theorem HasDerivWithinAt.finCons + theorem HasStrictDerivAt.finCons + theorem hasDerivAtFilter_finCons' + theorem hasDerivAtFilter_finCons + theorem hasDerivAt_finCons' + theorem hasDerivAt_finCons + theorem hasDerivWithinAt_finCons' + theorem hasDerivWithinAt_finCons + theorem hasStrictDerivAt_finCons' + theorem hasStrictDerivAt_finCons Modified Mathlib/Analysis/Calculus/FDeriv/Prod.lean + theorem Differentiable.finCons + theorem DifferentiableAt.finCons + theorem DifferentiableOn.finCons + theorem DifferentiableWithinAt.finCons + theorem HasFDerivAt.finCons + theorem HasFDerivAtFilter.finCons + theorem HasFDerivWithinAt.finCons + theorem HasStrictFDerivAt.finCons + theorem differentiableAt_finCons' + theorem differentiableAt_finCons + theorem differentiableOn_finCons' + theorem differentiableOn_finCons + theorem differentiableWithinAt_finCons' + theorem differentiableWithinAt_finCons + theorem differentiable_finCons' + theorem differentiable_finCons + theorem hasFDerivAtFilter_finCons' + theorem hasFDerivAtFilter_finCons + theorem hasFDerivAt_finCons' + theorem hasFDerivAt_finCons + theorem hasFDerivWithinAt_finCons' + theorem hasFDerivWithinAt_finCons + theorem hasStrictFDerivAt_finCons' + theorem hasStrictFDerivAt_finCons Modified Mathlib/LinearAlgebra/Pi.lean + def Fin.consLinearEquiv +/- def LinearMap.vecCons Modified Mathlib/Topology/Algebra/Module/Equiv.lean + def Fin.consEquivL 2025-01-29 23:20:53 e6cdd0d feat(Analysis/Convex): extreme points of doubly stochastic matrices (#17514) ESTIMATED CHANGES Modified Mathlib/Analysis/Convex/Birkhoff.lean + theorem extremePoints_doublyStochastic 2025-01-29 22:41:56 b0e2db2 feat(*/Fin/*): add 2 lemmas (#21229) This is a version of #21112 that doesn't use inline `NeZero` instances, thus doesn't break `simp` normal forms all over the place. ESTIMATED CHANGES Modified Mathlib/Data/Fin/Basic.lean + theorem Fin.mk_zero' Modified Mathlib/Order/Fin/Basic.lean + theorem Fin.cast_top 2025-01-29 22:18:35 323ed6b feat: add new iteratedDeriv_const_smul/mul (#20288) These are consistent with the iteratedDerivWithin versions and replace the older deprecated and misnamed theorems. ESTIMATED CHANGES Modified Mathlib/Analysis/Calculus/IteratedDeriv/Lemmas.lean + theorem iteratedDeriv_const_mul + theorem iteratedDeriv_const_smul 2025-01-29 21:38:11 3ba0a02 feat(MeasureTheory/SetSemiring.lean, Order/CompleteLattice.lean): change SetSemiring allow writing unions as disjoint unions (#20931) We show that a union of sets in a semiring can be written as the disjoint unions of sets in the semiring, and add several lemmas. First PR in a work towards the Caratheodory extension theorem, when starting with a `SetSemiring`. ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Measure/AddContent.lean - theorem MeasureTheory.addContent_eq_add_diffFinset₀_of_subset + theorem MeasureTheory.addContent_eq_add_disjointOfDiffUnion_of_subset Modified Mathlib/MeasureTheory/SetSemiring.lean - theorem MeasureTheory.IsSetSemiring.diffFinset_subset - theorem MeasureTheory.IsSetSemiring.diffFinset₀_subset - theorem MeasureTheory.IsSetSemiring.diff_sUnion_eq_sUnion_diffFinset₀ + theorem MeasureTheory.IsSetSemiring.diff_sUnion_eq_sUnion_disjointOfDiffUnion + theorem MeasureTheory.IsSetSemiring.disjointOfDiffUnion_subset + theorem MeasureTheory.IsSetSemiring.disjointOfUnion_props + theorem MeasureTheory.IsSetSemiring.disjointOfUnion_subset + theorem MeasureTheory.IsSetSemiring.disjointOfUnion_subset_of_mem - theorem MeasureTheory.IsSetSemiring.disjoint_diffFinset₀ + theorem MeasureTheory.IsSetSemiring.disjoint_disjointOfDiffUnion - theorem MeasureTheory.IsSetSemiring.disjoint_sUnion_diffFinset - theorem MeasureTheory.IsSetSemiring.disjoint_sUnion_diffFinset₀ + theorem MeasureTheory.IsSetSemiring.disjoint_sUnion_disjointOfDiff + theorem MeasureTheory.IsSetSemiring.disjoint_sUnion_disjointOfDiffUnion + theorem MeasureTheory.IsSetSemiring.empty_nmem_disjointOfDiff + theorem MeasureTheory.IsSetSemiring.empty_nmem_disjointOfDiffUnion + theorem MeasureTheory.IsSetSemiring.empty_nmem_disjointOfUnion - theorem MeasureTheory.IsSetSemiring.empty_not_mem_diffFinset - theorem MeasureTheory.IsSetSemiring.empty_not_mem_diffFinset₀ + theorem MeasureTheory.IsSetSemiring.nmem_disjointOfDiff - theorem MeasureTheory.IsSetSemiring.not_mem_diffFinset + theorem MeasureTheory.IsSetSemiring.pairwiseDisjoint_biUnion_disjointOfUnion - theorem MeasureTheory.IsSetSemiring.pairwiseDisjoint_diffFinset - theorem MeasureTheory.IsSetSemiring.pairwiseDisjoint_diffFinset₀ + theorem MeasureTheory.IsSetSemiring.pairwiseDisjoint_disjointOfDiff + theorem MeasureTheory.IsSetSemiring.pairwiseDisjoint_disjointOfDiffUnion + theorem MeasureTheory.IsSetSemiring.pairwiseDisjoint_disjointOfUnion + theorem MeasureTheory.IsSetSemiring.pairwiseDisjoint_disjointOfUnion_of_mem - theorem MeasureTheory.IsSetSemiring.pairwiseDisjoint_insert_diffFinset + theorem MeasureTheory.IsSetSemiring.pairwiseDisjoint_insert_disjointOfDiff - theorem MeasureTheory.IsSetSemiring.pairwiseDisjoint_union_diffFinset₀ + theorem MeasureTheory.IsSetSemiring.pairwiseDisjoint_union_disjointOfDiffUnion - theorem MeasureTheory.IsSetSemiring.sUnion_diffFinset - theorem MeasureTheory.IsSetSemiring.sUnion_diffFinset₀_subset + theorem MeasureTheory.IsSetSemiring.sUnion_disjointOfDiff + theorem MeasureTheory.IsSetSemiring.sUnion_disjointOfDiffUnion_subset + theorem MeasureTheory.IsSetSemiring.sUnion_disjointOfUnion - theorem MeasureTheory.IsSetSemiring.sUnion_insert_diffFinset + theorem MeasureTheory.IsSetSemiring.sUnion_insert_disjointOfDiff - theorem MeasureTheory.IsSetSemiring.sUnion_union_diffFinset₀_of_subset + theorem MeasureTheory.IsSetSemiring.sUnion_union_disjointOfDiffUnion_of_subset - theorem MeasureTheory.IsSetSemiring.sUnion_union_sUnion_diffFinset₀_of_subset + theorem MeasureTheory.IsSetSemiring.sUnion_union_sUnion_disjointOfDiffUnion_of_subset + theorem MeasureTheory.IsSetSemiring.subset_disjointOfDiff + theorem MeasureTheory.IsSetSemiring.subset_of_diffUnion_disjointOfDiffUnion + theorem MeasureTheory.IsSetSemiring.subset_of_mem_disjointOfDiffUnion + theorem MeasureTheory.IsSetSemiring.subset_of_mem_disjointOfUnion Modified Mathlib/Order/CompleteLattice.lean + theorem disjoint_of_sSup_disjoint + theorem disjoint_of_sSup_disjoint_of_le_of_le 2025-01-29 21:01:32 2b40940 feat(SimpleGraph/Clique): graphs without one cliques (#21183) A simple graph is cliqueFree one iff it has no vertices. ESTIMATED CHANGES Modified Mathlib/Combinatorics/SimpleGraph/Clique.lean + theorem SimpleGraph.cliqueFree_one 2025-01-29 19:56:36 feedd82 chore: update Mathlib dependencies 2025-01-29 (#21236) This PR updates the Mathlib dependencies. ESTIMATED CHANGES Modified lake-manifest.json 2025-01-29 19:39:44 87eb996 chore(scripts/technical-debt-metrics.sh): fix counters, so that 0 is 0 (#21221) ESTIMATED CHANGES Modified Mathlib/Tactic/Linter/TextBased.lean Modified scripts/technical-debt-metrics.sh 2025-01-29 19:02:02 ec45ea1 chore: remove some adaptation notes about unused variable linter (#21212) ESTIMATED CHANGES Modified Mathlib/Algebra/GroupWithZero/Hom.lean Modified Mathlib/Algebra/Polynomial/RingDivision.lean Modified Mathlib/AlgebraicTopology/SimplicialSet/Boundary.lean Modified Mathlib/AlgebraicTopology/SimplicialSet/Horn.lean Modified Mathlib/Analysis/SpecialFunctions/Pow/Real.lean Modified Mathlib/CategoryTheory/Adjunction/Lifting/Left.lean Modified Mathlib/CategoryTheory/Monad/Monadicity.lean Modified Mathlib/Data/Nat/Log.lean Modified Mathlib/Tactic/NormNum/Basic.lean Modified Mathlib/Tactic/NormNum/DivMod.lean Modified Mathlib/Tactic/NormNum/Eq.lean Modified Mathlib/Tactic/NormNum/GCD.lean Modified Mathlib/Tactic/NormNum/Ineq.lean Modified Mathlib/Tactic/NormNum/Inv.lean Modified Mathlib/Tactic/NormNum/LegendreSymbol.lean Modified Mathlib/Tactic/NormNum/Pow.lean Modified Mathlib/Topology/SeparatedMap.lean 2025-01-29 18:25:29 b7ce26a chore: replace `open scoped Classical`with `open scoped Classical in` or `classical` in a tactic proof (#21228) reduces some technical debt by replacing `open scoped classical` with `open scoped classical in` or adding a `classical tactic` to a tactic proof. Used explicit `Classical.arbitrary` in two spots in Mathlib/Order/DirectedInverseSystem.lean ESTIMATED CHANGES Modified Mathlib/Analysis/SpecialFunctions/Log/Summable.lean Modified Mathlib/MeasureTheory/Constructions/Pi.lean Modified Mathlib/MeasureTheory/Function/ConditionalExpectation/Basic.lean Modified Mathlib/Order/DirectedInverseSystem.lean 2025-01-29 18:12:01 f6cd292 chore(MeasureTheory/Function/L1Space): split L1Space into HasFiniteIntegral, Integrable and AEEqFun (#21231) Split the too long file `L1Space` into three files: - `HasFiniteIntegral` contains the corresponding predicate and associated lemmas. - `Integrable` contains the corresponding predicate and associated lemmas. - `AEEqFun` links the `Integrable` predicate with the L1 space `α →₁[μ] β`. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/MeasureTheory/Decomposition/Lebesgue.lean Added Mathlib/MeasureTheory/Function/L1Space/AEEqFun.lean + theorem MeasureTheory.AEEqFun.Integrable.add + theorem MeasureTheory.AEEqFun.Integrable.neg + theorem MeasureTheory.AEEqFun.Integrable.smul + theorem MeasureTheory.AEEqFun.Integrable.sub + def MeasureTheory.AEEqFun.Integrable + theorem MeasureTheory.AEEqFun.integrable_coeFn + theorem MeasureTheory.AEEqFun.integrable_iff_mem_L1 + theorem MeasureTheory.AEEqFun.integrable_mk + theorem MeasureTheory.AEEqFun.integrable_zero + theorem MeasureTheory.Integrable.coeFn_toL1 + theorem MeasureTheory.Integrable.edist_toL1_toL1 + theorem MeasureTheory.Integrable.edist_toL1_zero + theorem MeasureTheory.Integrable.enorm_toL1 + theorem MeasureTheory.Integrable.norm_toL1 + theorem MeasureTheory.Integrable.norm_toL1_eq_lintegral_norm + def MeasureTheory.Integrable.toL1 + theorem MeasureTheory.Integrable.toL1_add + theorem MeasureTheory.Integrable.toL1_coeFn + theorem MeasureTheory.Integrable.toL1_eq_mk + theorem MeasureTheory.Integrable.toL1_eq_toL1_iff + theorem MeasureTheory.Integrable.toL1_neg + theorem MeasureTheory.Integrable.toL1_smul' + theorem MeasureTheory.Integrable.toL1_smul + theorem MeasureTheory.Integrable.toL1_sub + theorem MeasureTheory.Integrable.toL1_zero + theorem MeasureTheory.L1.aemeasurable_coeFn + theorem MeasureTheory.L1.aestronglyMeasurable_coeFn + theorem MeasureTheory.L1.dist_def + theorem MeasureTheory.L1.edist_def + theorem MeasureTheory.L1.hasFiniteIntegral_coeFn + theorem MeasureTheory.L1.integrable_coeFn + theorem MeasureTheory.L1.measurable_coeFn + theorem MeasureTheory.L1.norm_def + theorem MeasureTheory.L1.norm_sub_eq_lintegral + theorem MeasureTheory.L1.ofReal_norm_eq_lintegral + theorem MeasureTheory.L1.ofReal_norm_sub_eq_lintegral + theorem MeasureTheory.L1.stronglyMeasurable_coeFn Added Mathlib/MeasureTheory/Function/L1Space/HasFiniteIntegral.lean + theorem MeasureTheory.HasFiniteIntegral.add_measure + theorem MeasureTheory.HasFiniteIntegral.congr' + theorem MeasureTheory.HasFiniteIntegral.congr + theorem MeasureTheory.HasFiniteIntegral.const_mul + theorem MeasureTheory.HasFiniteIntegral.left_of_add_measure + theorem MeasureTheory.HasFiniteIntegral.max_zero + theorem MeasureTheory.HasFiniteIntegral.min_zero + theorem MeasureTheory.HasFiniteIntegral.mono' + theorem MeasureTheory.HasFiniteIntegral.mono + theorem MeasureTheory.HasFiniteIntegral.mono_measure + theorem MeasureTheory.HasFiniteIntegral.mul_const + theorem MeasureTheory.HasFiniteIntegral.neg + theorem MeasureTheory.HasFiniteIntegral.norm + theorem MeasureTheory.HasFiniteIntegral.of_finite + theorem MeasureTheory.HasFiniteIntegral.of_mem_Icc + theorem MeasureTheory.HasFiniteIntegral.restrict + theorem MeasureTheory.HasFiniteIntegral.right_of_add_measure + theorem MeasureTheory.HasFiniteIntegral.smul + theorem MeasureTheory.HasFiniteIntegral.smul_measure + def MeasureTheory.HasFiniteIntegral + theorem MeasureTheory.all_ae_ofReal_F_le_bound + theorem MeasureTheory.all_ae_ofReal_f_le_bound + theorem MeasureTheory.all_ae_tendsto_ofReal_norm + theorem MeasureTheory.hasFiniteIntegral_add_measure + theorem MeasureTheory.hasFiniteIntegral_congr' + theorem MeasureTheory.hasFiniteIntegral_congr + theorem MeasureTheory.hasFiniteIntegral_const + theorem MeasureTheory.hasFiniteIntegral_const_iff + theorem MeasureTheory.hasFiniteIntegral_const_iff_isFiniteMeasure + theorem MeasureTheory.hasFiniteIntegral_count_iff + theorem MeasureTheory.hasFiniteIntegral_def + theorem MeasureTheory.hasFiniteIntegral_iff_edist + theorem MeasureTheory.hasFiniteIntegral_iff_enorm + theorem MeasureTheory.hasFiniteIntegral_iff_norm + theorem MeasureTheory.hasFiniteIntegral_iff_ofNNReal + theorem MeasureTheory.hasFiniteIntegral_iff_ofReal + theorem MeasureTheory.hasFiniteIntegral_neg_iff + theorem MeasureTheory.hasFiniteIntegral_norm_iff + theorem MeasureTheory.hasFiniteIntegral_of_bounded + theorem MeasureTheory.hasFiniteIntegral_of_dominated_convergence + theorem MeasureTheory.hasFiniteIntegral_smul_iff + theorem MeasureTheory.hasFiniteIntegral_toReal_iff + theorem MeasureTheory.hasFiniteIntegral_toReal_of_lintegral_ne_top + theorem MeasureTheory.hasFiniteIntegral_zero + theorem MeasureTheory.hasFiniteIntegral_zero_measure + theorem MeasureTheory.isFiniteMeasure_withDensity_ofReal + theorem MeasureTheory.lintegral_edist_triangle + theorem MeasureTheory.lintegral_enorm_add_left + theorem MeasureTheory.lintegral_enorm_add_right + theorem MeasureTheory.lintegral_enorm_eq_lintegral_edist + theorem MeasureTheory.lintegral_enorm_neg + theorem MeasureTheory.lintegral_enorm_zero + theorem MeasureTheory.lintegral_norm_eq_lintegral_edist + theorem MeasureTheory.tendsto_lintegral_norm_of_dominated_convergence Renamed Mathlib/MeasureTheory/Function/L1Space.lean to Mathlib/MeasureTheory/Function/L1Space/Integrable.lean - theorem MeasureTheory.AEEqFun.Integrable.add - theorem MeasureTheory.AEEqFun.Integrable.neg - theorem MeasureTheory.AEEqFun.Integrable.smul - theorem MeasureTheory.AEEqFun.Integrable.sub - def MeasureTheory.AEEqFun.Integrable - theorem MeasureTheory.AEEqFun.integrable_coeFn - theorem MeasureTheory.AEEqFun.integrable_iff_mem_L1 - theorem MeasureTheory.AEEqFun.integrable_mk - theorem MeasureTheory.AEEqFun.integrable_zero - theorem MeasureTheory.HasFiniteIntegral.add_measure - theorem MeasureTheory.HasFiniteIntegral.congr' - theorem MeasureTheory.HasFiniteIntegral.congr - theorem MeasureTheory.HasFiniteIntegral.const_mul - theorem MeasureTheory.HasFiniteIntegral.left_of_add_measure - theorem MeasureTheory.HasFiniteIntegral.max_zero - theorem MeasureTheory.HasFiniteIntegral.min_zero - theorem MeasureTheory.HasFiniteIntegral.mono' - theorem MeasureTheory.HasFiniteIntegral.mono - theorem MeasureTheory.HasFiniteIntegral.mono_measure - theorem MeasureTheory.HasFiniteIntegral.mul_const - theorem MeasureTheory.HasFiniteIntegral.neg - theorem MeasureTheory.HasFiniteIntegral.norm - theorem MeasureTheory.HasFiniteIntegral.of_finite - theorem MeasureTheory.HasFiniteIntegral.of_mem_Icc - theorem MeasureTheory.HasFiniteIntegral.restrict - theorem MeasureTheory.HasFiniteIntegral.right_of_add_measure - theorem MeasureTheory.HasFiniteIntegral.smul - theorem MeasureTheory.HasFiniteIntegral.smul_measure - def MeasureTheory.HasFiniteIntegral - theorem MeasureTheory.Integrable.coeFn_toL1 - theorem MeasureTheory.Integrable.edist_toL1_toL1 - theorem MeasureTheory.Integrable.edist_toL1_zero - theorem MeasureTheory.Integrable.enorm_toL1 - theorem MeasureTheory.Integrable.norm_toL1 - theorem MeasureTheory.Integrable.norm_toL1_eq_lintegral_norm - def MeasureTheory.Integrable.toL1 - theorem MeasureTheory.Integrable.toL1_add - theorem MeasureTheory.Integrable.toL1_coeFn - theorem MeasureTheory.Integrable.toL1_eq_mk - theorem MeasureTheory.Integrable.toL1_eq_toL1_iff - theorem MeasureTheory.Integrable.toL1_neg - theorem MeasureTheory.Integrable.toL1_smul' - theorem MeasureTheory.Integrable.toL1_smul - theorem MeasureTheory.Integrable.toL1_sub - theorem MeasureTheory.Integrable.toL1_zero - theorem MeasureTheory.L1.aemeasurable_coeFn - theorem MeasureTheory.L1.aestronglyMeasurable_coeFn - theorem MeasureTheory.L1.dist_def - theorem MeasureTheory.L1.edist_def - theorem MeasureTheory.L1.hasFiniteIntegral_coeFn - theorem MeasureTheory.L1.integrable_coeFn - theorem MeasureTheory.L1.measurable_coeFn - theorem MeasureTheory.L1.norm_def - theorem MeasureTheory.L1.norm_sub_eq_lintegral - theorem MeasureTheory.L1.ofReal_norm_eq_lintegral - theorem MeasureTheory.L1.ofReal_norm_sub_eq_lintegral - theorem MeasureTheory.L1.stronglyMeasurable_coeFn - theorem MeasureTheory.all_ae_ofReal_F_le_bound - theorem MeasureTheory.all_ae_ofReal_f_le_bound - theorem MeasureTheory.all_ae_tendsto_ofReal_norm - theorem MeasureTheory.hasFiniteIntegral_add_measure - theorem MeasureTheory.hasFiniteIntegral_congr' - theorem MeasureTheory.hasFiniteIntegral_congr - theorem MeasureTheory.hasFiniteIntegral_const - theorem MeasureTheory.hasFiniteIntegral_const_iff - theorem MeasureTheory.hasFiniteIntegral_const_iff_isFiniteMeasure - theorem MeasureTheory.hasFiniteIntegral_count_iff - theorem MeasureTheory.hasFiniteIntegral_def - theorem MeasureTheory.hasFiniteIntegral_iff_edist - theorem MeasureTheory.hasFiniteIntegral_iff_enorm - theorem MeasureTheory.hasFiniteIntegral_iff_norm - theorem MeasureTheory.hasFiniteIntegral_iff_ofNNReal - theorem MeasureTheory.hasFiniteIntegral_iff_ofReal - theorem MeasureTheory.hasFiniteIntegral_neg_iff - theorem MeasureTheory.hasFiniteIntegral_norm_iff - theorem MeasureTheory.hasFiniteIntegral_of_bounded - theorem MeasureTheory.hasFiniteIntegral_of_dominated_convergence - theorem MeasureTheory.hasFiniteIntegral_smul_iff - theorem MeasureTheory.hasFiniteIntegral_toReal_iff - theorem MeasureTheory.hasFiniteIntegral_toReal_of_lintegral_ne_top - theorem MeasureTheory.hasFiniteIntegral_zero - theorem MeasureTheory.hasFiniteIntegral_zero_measure - theorem MeasureTheory.isFiniteMeasure_withDensity_ofReal - theorem MeasureTheory.lintegral_edist_triangle - theorem MeasureTheory.lintegral_enorm_add_left - theorem MeasureTheory.lintegral_enorm_add_right - theorem MeasureTheory.lintegral_enorm_eq_lintegral_edist - theorem MeasureTheory.lintegral_enorm_neg - theorem MeasureTheory.lintegral_enorm_zero - theorem MeasureTheory.lintegral_norm_eq_lintegral_edist - theorem MeasureTheory.tendsto_lintegral_norm_of_dominated_convergence Modified Mathlib/MeasureTheory/Function/SimpleFuncDenseLp.lean Modified Mathlib/MeasureTheory/Function/UnifTight.lean Modified Mathlib/MeasureTheory/Function/UniformIntegrable.lean Modified Mathlib/MeasureTheory/Integral/IntegrableOn.lean Modified Mathlib/Probability/Independence/Integrable.lean Modified Mathlib/Probability/Moments/IntegrableExpMul.lean 2025-01-29 15:56:16 fb2efae chore: replace `open scoped Classical` with `open scoped Classical in` or `classical` in a tactic proof (#21220) reduces some technical debt by replacing `open scoped classical` with `open scoped classical in` or adding a `classical` tactic to a tactic proof. ESTIMATED CHANGES Modified Mathlib/NumberTheory/ClassNumber/FunctionField.lean Modified Mathlib/NumberTheory/LSeries/DirichletContinuation.lean Modified Mathlib/NumberTheory/LSeries/HurwitzZetaEven.lean Modified Mathlib/NumberTheory/LSeries/ZMod.lean Modified Mathlib/NumberTheory/ModularForms/JacobiTheta/Bounds.lean Modified Mathlib/NumberTheory/NumberField/AdeleRing.lean Modified Mathlib/NumberTheory/NumberField/CanonicalEmbedding/Basic.lean Modified Mathlib/NumberTheory/NumberField/CanonicalEmbedding/ConvexBody.lean Modified Mathlib/NumberTheory/NumberField/Embeddings.lean Modified Mathlib/NumberTheory/NumberField/Units/Regulator.lean Modified Mathlib/NumberTheory/Padics/RingHoms.lean Modified Mathlib/NumberTheory/RamificationInertia/Basic.lean Modified Mathlib/Probability/Distributions/Uniform.lean Modified Mathlib/Probability/Kernel/Composition/Basic.lean Modified Mathlib/Probability/Process/Filtration.lean Modified Mathlib/RingTheory/Spectrum/Maximal/Localization.lean 2025-01-29 15:23:11 3cbf001 feat(Data/Nat/Choose) : An upper bound on the binomial coefficient (#20735) Add a theorem bounding `(n+1).choose k` from above by `2^n`. ESTIMATED CHANGES Modified Mathlib/Data/Nat/Choose/Bounds.lean + theorem Nat.choose_le_two_pow + theorem Nat.choose_succ_le_two_pow 2025-01-29 14:41:01 5818e47 feat(CategoryTheory) : pull back preadditivity along fully faithful functors (#21170) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/CategoryTheory/Abelian/Transfer.lean Added Mathlib/CategoryTheory/Preadditive/Transfer.lean + theorem CategoryTheory.Equivalence.additive_inverse_of_FullyFaithful + theorem CategoryTheory.Functor.FullyFaithful.additive_ofFullyFaithful + def CategoryTheory.Preadditive.ofFullyFaithful 2025-01-29 14:31:06 05fd3e9 refactor(LinearAlgebra/QuadraticForm/TensorProduct): baseChange_ext for Quadratic Maps (#21198) `baseChange_ext` works just as well for quadratic maps as quadratic forms. ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/QuadraticForm/TensorProduct.lean +/- theorem baseChange_ext 2025-01-29 14:04:40 079bdfd chore:(MeasureTheory) replace `open scoped Classical` with `open scoped Classical in` or `classical` in a tactic proof. (#21217) reduces some technical debt by replacing `open scoped Classical` with `open scoped classical in` or adding `classical` tactic to a tactic proof. ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Covering/Besicovitch.lean Modified Mathlib/MeasureTheory/Decomposition/Jordan.lean Modified Mathlib/MeasureTheory/Decomposition/RadonNikodym.lean Modified Mathlib/MeasureTheory/Decomposition/SignedHahn.lean Modified Mathlib/MeasureTheory/Decomposition/SignedLebesgue.lean Modified Mathlib/MeasureTheory/Function/AEMeasurableOrder.lean Modified Mathlib/MeasureTheory/Function/ConditionalExpectation/CondexpL1.lean Modified Mathlib/MeasureTheory/Function/Egorov.lean Modified Mathlib/MeasureTheory/Function/L1Space.lean Modified Mathlib/MeasureTheory/Function/SimpleFunc.lean Modified Mathlib/MeasureTheory/Function/SimpleFuncDense.lean Modified Mathlib/MeasureTheory/Function/SimpleFuncDenseLp.lean Modified Mathlib/MeasureTheory/Function/UniformIntegrable.lean Modified Mathlib/MeasureTheory/Integral/DivergenceTheorem.lean Modified Mathlib/MeasureTheory/Integral/FundThmCalculus.lean Modified Mathlib/MeasureTheory/Integral/IntervalIntegral.lean Modified Mathlib/MeasureTheory/Integral/Prod.lean Modified Mathlib/MeasureTheory/Integral/SetIntegral.lean Modified Mathlib/MeasureTheory/MeasurableSpace/Pi.lean 2025-01-29 13:57:05 9940916 chore(Geometry/Manifold): create IsManifold directory (#21218) Rename IsManifold.lean to IsManifold/Basic.lean, in preparating for a future commit splitting this file into several. Move InteriorBoundary.lean to this new directory. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Geometry/Manifold/AnalyticManifold.lean Modified Mathlib/Geometry/Manifold/ContMDiff/Defs.lean Modified Mathlib/Geometry/Manifold/Instances/Real.lean Modified Mathlib/Geometry/Manifold/IntegralCurve/ExistUnique.lean Renamed Mathlib/Geometry/Manifold/IsManifold.lean to Mathlib/Geometry/Manifold/IsManifold/Basic.lean Renamed Mathlib/Geometry/Manifold/InteriorBoundary.lean to Mathlib/Geometry/Manifold/IsManifold/InteriorBoundary.lean Modified Mathlib/Geometry/Manifold/MFDeriv/Defs.lean Modified Mathlib/Geometry/Manifold/Metrizable.lean 2025-01-29 11:58:51 23e223e feat(NumberTheory/AbelSummation): relax some hypothesis (#21214) Replace `IntegrableOn` by the weaker `LocallyIntegrableOn` at several places. ESTIMATED CHANGES Modified Mathlib/NumberTheory/AbelSummation.lean Modified Mathlib/NumberTheory/LSeries/SumCoeff.lean 2025-01-29 11:17:57 668ab19 chore: clean up adaptation note (#21210) ESTIMATED CHANGES Modified Mathlib/Data/List/Defs.lean 2025-01-29 11:17:56 c6e9ee3 feat(Algebra/Homology/Embedding): the homology of truncLE (#19574) Given an embedding `e` of complex shapes that satisfies `IsTruncLE`, we show that the morphism `K.ιTruncLE e : K.truncLE e ⟶ K` induces a quasi-isomorphism in degree `e.f i` for all `i`. This is the dual result of #19572. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Homology/Embedding/TruncGEHomology.lean + theorem HomologicalComplex.truncGE'.quasiIsoAt_restrictionToTruncGE' - theorem HomologicalComplex.truncGE'.quasiIsoAt_restrictionToTruncGE'_f Added Mathlib/Algebra/Homology/Embedding/TruncLEHomology.lean + theorem HomologicalComplex.acyclic_truncLE_iff_isSupportedOutside + theorem HomologicalComplex.quasiIsoAt_ιTruncLE + theorem HomologicalComplex.quasiIso_truncLEMap_iff + theorem HomologicalComplex.quasiIso_ιTruncLE_iff_isSupported + theorem HomologicalComplex.truncLE'.quasiIsoAt_truncLE'ToRestriction Modified Mathlib/Algebra/Homology/Opposite.lean + theorem HomologicalComplex.Acyclic.op + theorem HomologicalComplex.Acyclic.unop + theorem HomologicalComplex.ExactAt.op + theorem HomologicalComplex.ExactAt.unop + theorem HomologicalComplex.acyclic_op_iff + theorem HomologicalComplex.exactAt_op_iff + theorem HomologicalComplex.quasiIsoAt_opFunctor_map_iff + theorem HomologicalComplex.quasiIsoAt_unopFunctor_map_iff + theorem HomologicalComplex.quasiIso_opFunctor_map_iff + theorem HomologicalComplex.quasiIso_unopFunctor_map_iff 2025-01-29 10:50:05 5ff0a47 chore: reformat adaptation notes (#21208) almost all adaptation notes are now of the form #adaptation_note /-- some-identifier text explaining the adaptation -/ where `some-identifier` is a github url, or a nightly. ESTIMATED CHANGES Modified Mathlib/Algebra/Category/Ring/Epi.lean Modified Mathlib/Algebra/DualNumber.lean Modified Mathlib/Algebra/Free.lean Modified Mathlib/Algebra/Homology/Single.lean Modified Mathlib/Algebra/Lie/Semisimple/Basic.lean Modified Mathlib/Algebra/Module/LinearMap/Polynomial.lean Modified Mathlib/Algebra/Polynomial/RingDivision.lean Modified Mathlib/AlgebraicGeometry/Morphisms/QuasiCompact.lean Modified Mathlib/Analysis/Analytic/CPolynomial.lean Modified Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Order.lean Modified Mathlib/Analysis/Calculus/ContDiff/FTaylorSeries.lean Modified Mathlib/Analysis/Calculus/FormalMultilinearSeries.lean Modified Mathlib/Analysis/Complex/TaylorSeries.lean Modified Mathlib/Analysis/Complex/UpperHalfPlane/Metric.lean Modified Mathlib/Analysis/Convex/Basic.lean Modified Mathlib/Analysis/FunctionalSpaces/SobolevInequality.lean Modified Mathlib/Analysis/Normed/Lp/PiLp.lean Modified Mathlib/Analysis/Normed/Operator/BoundedLinearMaps.lean Modified Mathlib/Analysis/NormedSpace/HahnBanach/Extension.lean Modified Mathlib/Analysis/NormedSpace/OperatorNorm/Bilinear.lean Modified Mathlib/CategoryTheory/GradedObject.lean Modified Mathlib/CategoryTheory/GradedObject/Monoidal.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Kernels.lean Modified Mathlib/CategoryTheory/Monoidal/Mod_.lean Modified Mathlib/CategoryTheory/Monoidal/Mon_.lean Modified Mathlib/CategoryTheory/Monoidal/Rigid/Basic.lean Modified Mathlib/CategoryTheory/Sites/NonabelianCohomology/H1.lean Modified Mathlib/Combinatorics/Additive/PluenneckeRuzsa.lean Modified Mathlib/Combinatorics/SimpleGraph/Matching.lean Modified Mathlib/Computability/RegularExpressions.lean Modified Mathlib/Data/Bool/Basic.lean Modified Mathlib/Data/DFinsupp/Sigma.lean Modified Mathlib/Data/Finsupp/Basic.lean Modified Mathlib/Data/List/Basic.lean Modified Mathlib/Data/Sign.lean Modified Mathlib/FieldTheory/KummerExtension.lean Modified Mathlib/FieldTheory/Relrank.lean Modified Mathlib/Geometry/Manifold/MFDeriv/NormedSpace.lean Modified Mathlib/GroupTheory/FreeGroup/NielsenSchreier.lean Modified Mathlib/LinearAlgebra/BilinearForm/Properties.lean Modified Mathlib/LinearAlgebra/Dual.lean Modified Mathlib/LinearAlgebra/Orientation.lean Modified Mathlib/LinearAlgebra/Semisimple.lean Modified Mathlib/MeasureTheory/Group/Measure.lean Modified Mathlib/MeasureTheory/MeasurableSpace/Embedding.lean Modified Mathlib/ModelTheory/PartialEquiv.lean Modified Mathlib/NumberTheory/ClassNumber/AdmissibleAbsoluteValue.lean Modified Mathlib/NumberTheory/Cyclotomic/Rat.lean Modified Mathlib/NumberTheory/LSeries/Nonvanishing.lean Modified Mathlib/NumberTheory/NumberField/Units/DirichletTheorem.lean Modified Mathlib/NumberTheory/NumberField/Units/Regulator.lean Modified Mathlib/RingTheory/Ideal/Operations.lean Modified Mathlib/RingTheory/Jacobson/Ring.lean Modified Mathlib/RingTheory/TensorProduct/Basic.lean Modified Mathlib/Tactic/NormNum/Pow.lean Modified Mathlib/Topology/Algebra/Ring/Basic.lean Modified Mathlib/Topology/Compactness/CompactlyGeneratedSpace.lean 2025-01-29 10:27:24 9219f8a feat(RingTheory/IntegralClosure): product of integral algebras is integral (#21191) Pair of integral elements is an integral element of the product algebra. Product of integral algebras is an integral algebra. ESTIMATED CHANGES Modified Mathlib/RingTheory/IntegralClosure/Algebra/Basic.lean +/- theorem mem_integralClosure_iff Modified Mathlib/RingTheory/IntegralClosure/IsIntegral/Basic.lean + theorem IsIntegral.pair + theorem IsIntegral.pair_iff 2025-01-29 09:37:08 5e04c48 feat(CategoryTheory): the subpresheaf of types generated by a section (#21174) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Subpresheaf/OfSection.lean + theorem CategoryTheory.Subpresheaf.mem_ofSection_obj + def CategoryTheory.Subpresheaf.ofSection + theorem CategoryTheory.Subpresheaf.ofSection_eq_range' + theorem CategoryTheory.Subpresheaf.ofSection_eq_range + theorem CategoryTheory.Subpresheaf.ofSection_image + theorem CategoryTheory.Subpresheaf.ofSection_le_iff + theorem CategoryTheory.Subpresheaf.range_eq_ofSection' + theorem CategoryTheory.Subpresheaf.range_eq_ofSection 2025-01-29 09:37:07 cc1af22 chore: cleanup simp priorities in CategoryTheory/ (#21164) ESTIMATED CHANGES Modified Mathlib/AlgebraicTopology/SimplicialObject/Split.lean Modified Mathlib/CategoryTheory/Action/Basic.lean Modified Mathlib/CategoryTheory/Limits/Cones.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Types.lean Modified Mathlib/CategoryTheory/Limits/Shapes/WideEqualizers.lean Modified Mathlib/CategoryTheory/Shift/ShiftSequence.lean Modified Mathlib/CategoryTheory/Shift/ShiftedHom.lean Modified Mathlib/Topology/Category/TopCat/Opens.lean +/- theorem TopologicalSpace.Opens.map_id_obj_unop 2025-01-29 09:23:51 6dc054c feat(CategoryTheory): Subpresheaf is a complete lattice (#20840) The type of subpresheaves of a given presheaf of sets is a complete lattice. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Sites/LocallySurjective.lean Modified Mathlib/CategoryTheory/Subpresheaf/Basic.lean + theorem CategoryTheory.Subpresheaf.bot_obj +/- theorem CategoryTheory.Subpresheaf.eq_top_iff_isIso +/- def CategoryTheory.Subpresheaf.homOfLe +/- theorem CategoryTheory.Subpresheaf.homOfLe_ι + theorem CategoryTheory.Subpresheaf.iInf_obj + theorem CategoryTheory.Subpresheaf.iSup_min + theorem CategoryTheory.Subpresheaf.iSup_obj +/- theorem CategoryTheory.Subpresheaf.le_def + theorem CategoryTheory.Subpresheaf.max_min + theorem CategoryTheory.Subpresheaf.max_obj + theorem CategoryTheory.Subpresheaf.min_obj +/- theorem CategoryTheory.Subpresheaf.nat_trans_naturality + theorem CategoryTheory.Subpresheaf.sInf_obj + theorem CategoryTheory.Subpresheaf.sSup_obj +/- def CategoryTheory.Subpresheaf.toPresheaf + theorem CategoryTheory.Subpresheaf.top_obj +/- def CategoryTheory.Subpresheaf.ι - theorem CategoryTheory.top_subpresheaf_obj 2025-01-29 08:16:57 b69a633 fix(CI): remove also maintainer-merge label on `bors ` (#21211) If a PR is `delegated` or `ready-to-merge`, the `maintainer-merge` label is no longer needed and removing the label helps with #queueboard filtering. ESTIMATED CHANGES Modified .github/workflows/maintainer_bors.yml 2025-01-29 08:03:56 4e771ba chore: deprecate unused material about `List.mapIdx` (#21201) As of 2025-01-29, these specification lemmas for `List.mapIdx`, `List.mapIdxM`, `List.foldlIdx` and `List.foldrIdx` are not used anywhere in Mathlib. Moreover, with `List.enum` and `List.enumFrom` being replaced by `List.zipIdx` in Lean's `nightly-2025-01-29` release, they now use deprecated functions and theorems. Rather than updating this unused material, we are deprecating it. Anyone wanting to restore this material is welcome to do so, but will need to update uses of `List.enum` and `List.enumFrom` to use `List.zipIdx` instead. However, note that this material will later be implemented in the Lean standard library. ESTIMATED CHANGES Modified Mathlib/Data/List/Indexes.lean 2025-01-29 07:42:24 ae5c229 chore: process some adaptation notes (#21209) ESTIMATED CHANGES Modified Mathlib/Algebra/Lie/CartanExists.lean Modified Mathlib/CategoryTheory/Sites/Coherent/SheafComparison.lean Modified Mathlib/CategoryTheory/Sites/Grothendieck.lean Modified Mathlib/Data/DFinsupp/Order.lean 2025-01-29 07:05:48 49af109 chore: replace open scoped Classical with open scoped Classical in or classical (#20898) reduces some technical debt by replacing "open scoped classical" with (open scoped classical in) for theorem declarations and/or adding a "classical' tactic to a tactic proof. I followed the example in PR https://github.com/leanprover-community/mathlib4/pull/20325. I made the PR smaller than before and concentrated on FieldTheory and GroupTheory files. ESTIMATED CHANGES Modified Mathlib/FieldTheory/Minpoly/Basic.lean Modified Mathlib/FieldTheory/Minpoly/Field.lean Modified Mathlib/FieldTheory/RatFunc/AsPolynomial.lean Modified Mathlib/FieldTheory/RatFunc/Basic.lean Modified Mathlib/FieldTheory/RatFunc/Defs.lean Modified Mathlib/GroupTheory/CommutingProbability.lean Modified Mathlib/GroupTheory/Coxeter/Length.lean Modified Mathlib/GroupTheory/Exponent.lean Modified Mathlib/GroupTheory/FreeAbelianGroup.lean Modified Mathlib/GroupTheory/FreeAbelianGroupFinsupp.lean Modified Mathlib/GroupTheory/FreeGroup/NielsenSchreier.lean Modified Mathlib/GroupTheory/Nilpotent.lean Modified Mathlib/GroupTheory/Perm/ViaEmbedding.lean Modified Mathlib/GroupTheory/QuotientGroup/Finite.lean Modified Mathlib/GroupTheory/Schreier.lean Modified Mathlib/GroupTheory/SchurZassenhaus.lean 2025-01-29 06:49:04 e090c4e feat: the moment generating function is analytic (#20151) Define a complex-valued moment generating function and prove that it is holomorphic. As a consequence, the moment generating function is analytic on the interior of the interval on which it is finite. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Analysis/Analytic/OfScalars.lean + theorem FormalMultilinearSeries.coeff_ofScalars Modified Mathlib/Analysis/Calculus/IteratedDeriv/Defs.lean + theorem AnalyticAt.hasFPowerSeriesAt Modified Mathlib/Analysis/Complex/Basic.lean Modified Mathlib/Analysis/SpecialFunctions/Complex/Analytic.lean + theorem AnalyticAt.im_ofReal + theorem AnalyticAt.re_ofReal + theorem AnalyticOn.im_ofReal + theorem AnalyticOn.re_ofReal + theorem AnalyticOnNhd.im_ofReal + theorem AnalyticOnNhd.re_ofReal + theorem AnalyticWithinAt.im_ofReal + theorem AnalyticWithinAt.re_ofReal Modified Mathlib/MeasureTheory/Integral/SetIntegral.lean + theorem integral_complex_ofReal Modified Mathlib/Probability/Moments/Basic.lean + theorem ProbabilityTheory.mgf_congr_identDistrib + theorem ProbabilityTheory.mgf_pos_iff Added Mathlib/Probability/Moments/ComplexMGF.lean + theorem ProbabilityTheory.abs_complexMGF_le_mgf + theorem ProbabilityTheory.analyticAt_complexMGF + theorem ProbabilityTheory.analyticOnNhd_complexMGF + theorem ProbabilityTheory.analyticOn_complexMGF + def ProbabilityTheory.complexMGF + theorem ProbabilityTheory.complexMGF_congr_identDistrib + theorem ProbabilityTheory.complexMGF_id_map + theorem ProbabilityTheory.complexMGF_ofReal + theorem ProbabilityTheory.complexMGF_undef + theorem ProbabilityTheory.differentiableOn_complexMGF + theorem ProbabilityTheory.eqOn_complexMGF_of_mgf' + theorem ProbabilityTheory.eqOn_complexMGF_of_mgf + theorem ProbabilityTheory.hasDerivAt_complexMGF + theorem ProbabilityTheory.hasDerivAt_integral_pow_mul_exp + theorem ProbabilityTheory.hasDerivAt_iteratedDeriv_complexMGF + theorem ProbabilityTheory.integrableExpSet_eq_of_mgf' + theorem ProbabilityTheory.integrableExpSet_eq_of_mgf + theorem ProbabilityTheory.iteratedDeriv_complexMGF + theorem ProbabilityTheory.re_complexMGF_ofReal' + theorem ProbabilityTheory.re_complexMGF_ofReal Modified Mathlib/Probability/Moments/IntegrableExpMul.lean + theorem ProbabilityTheory.integrable_cexp_mul_of_re_mem_integrableExpSet + theorem ProbabilityTheory.integrable_cexp_mul_of_re_mem_interior_integrableExpSet + theorem ProbabilityTheory.integrable_pow_abs_mul_cexp_of_re_mem_interior_integrableExpSet + theorem ProbabilityTheory.integrable_pow_mul_cexp_of_re_mem_interior_integrableExpSet + theorem ProbabilityTheory.integrable_rpow_abs_mul_cexp_of_re_mem_interior_integrableExpSet + theorem ProbabilityTheory.integrable_rpow_mul_cexp_of_re_mem_interior_integrableExpSet Added Mathlib/Probability/Moments/MGFAnalytic.lean + theorem ProbabilityTheory.analyticAt_mgf + theorem ProbabilityTheory.analyticOnNhd_mgf + theorem ProbabilityTheory.analyticOn_mgf + theorem ProbabilityTheory.deriv_mgf + theorem ProbabilityTheory.deriv_mgf_zero + theorem ProbabilityTheory.hasDerivAt_integral_pow_mul_exp_real + theorem ProbabilityTheory.hasDerivAt_iteratedDeriv_mgf + theorem ProbabilityTheory.hasDerivAt_mgf + theorem ProbabilityTheory.hasFPowerSeriesAt_mgf + theorem ProbabilityTheory.iteratedDeriv_mgf + theorem ProbabilityTheory.iteratedDeriv_mgf_zero 2025-01-29 05:39:15 35d9e5d feat(Nonarchimedean): cauchySeq_of_tendsto_div_nhds_one (#21153) Convergence of a sequence in nonarchimedean spaces only requires differences to go to zero ESTIMATED CHANGES Modified Mathlib/Topology/Algebra/InfiniteSum/Nonarchimedean.lean + theorem NonarchimedeanGroup.cauchySeq_of_tendsto_div_nhds_one 2025-01-29 05:39:13 93b9df3 feat(Order): Fin.orderHom_injective_iff (#21119) This PR adds a lemma `Fin.orderHom_injective_iff` which says that a monotone map `f : Fin (n + 1) →o α` is injective iff `f i.castSucc ≠ f i.succ` for all `i`. ESTIMATED CHANGES Modified Mathlib/Order/Fin/Basic.lean + theorem Fin.orderHom_injective_iff 2025-01-29 05:19:33 40e0165 chore(Perm/Fin): generalize from `Fin n.succ` to `Fin n` (#21193) ... adding `[NeZero n]` as needed. Cherry-picked from #21112 ESTIMATED CHANGES Modified Mathlib/GroupTheory/Perm/Fin.lean +/- theorem Fin.coe_cycleRange_of_le +/- theorem Fin.coe_cycleRange_of_lt +/- theorem Fin.cycleRange_apply + theorem Fin.cycleRange_mk_zero +/- theorem Fin.cycleRange_of_eq +/- theorem Fin.cycleRange_of_gt +/- theorem Fin.cycleRange_of_le +/- theorem Fin.cycleRange_of_lt +/- theorem Fin.cycleRange_self +/- theorem Fin.cycleRange_symm_zero - theorem Fin.cycleRange_zero' +/- theorem Fin.cycleRange_zero +/- theorem Fin.cycleType_cycleRange +/- theorem Fin.isCycle_cycleRange 2025-01-29 05:05:14 5ec765e chore: cleanup simp priorities in Algebra/Homology/ (#21157) ESTIMATED CHANGES Modified Mathlib/Algebra/Homology/Additive.lean Modified Mathlib/Algebra/Homology/DerivedCategory/Ext/Basic.lean Modified Mathlib/Algebra/Homology/HomologicalComplex.lean Modified Mathlib/Algebra/Homology/Homotopy.lean Modified Mathlib/Algebra/Homology/HomotopyCategory.lean Modified Mathlib/Algebra/Homology/HomotopyCategory/MappingCone.lean Modified Mathlib/Algebra/Homology/ShortComplex/Abelian.lean 2025-01-29 04:14:22 b53998a doc(Mathlib/NumberTheory/Dioph): fix a misported name (#21207) ESTIMATED CHANGES Modified Mathlib/NumberTheory/Dioph.lean 2025-01-29 00:09:19 de76150 feat(Algebra): add `MonoidHom.coe_id` (#21189) We have this as a `@[simp]` lemma for most algebraic structures: `RingHom`, `LinearMap`, ... I need this for the concrete category refactor, since we will get a lot of `@[simp]` lemmas about unapplied / partially applied functions, including `id`. ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Hom/Defs.lean + theorem MonoidHom.coe_id + theorem MulHom.coe_id + theorem OneHom.coe_id 2025-01-28 22:24:10 f3eaa80 feat (CategoryTheory): constructing chosen finite products for the preorder category of a meet-semilattice with a top element (#21094) The preorder category of a meet-semilattice `C` with a top element has chosen finite products. Motivation: I plan to use the induced monoidal structure to show that the preorder category of a distributive lattice is distributive. See this PR on Monoidal and cartesian distributive categories: #20182 ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/ChosenFiniteProducts/InfSemilattice.lean + theorem CategoryTheory.SemilatticeInf.tensorObj + theorem CategoryTheory.SemilatticeInf.tensorUnit Added Mathlib/CategoryTheory/Limits/Preorder.lean + def Preorder.isColimitBinaryCofan + def Preorder.isInitialBot + def Preorder.isLimitBinaryFan + def Preorder.isTerminalTop Modified Mathlib/CategoryTheory/Limits/Shapes/Preorder/Basic.lean - def Preorder.isInitialBot - def Preorder.isTerminalBot 2025-01-28 22:03:07 62e4742 chore: remove non-emptiness hypotheses in the disjoint union of manifolds (#21066) The previous code assumed both manifolds were non-empty: this is in fact not necessary. (When doing bordism theory, such unions are meaningful: a cobordism between a manifold M and "the empty set" is supposed to have boundary M union the empty set, so we need to speak about this.) Besides, the code only gets marginally longer, so this change might be worth it independently. From my bordism theory project. ESTIMATED CHANGES Modified Mathlib/Geometry/Manifold/ChartedSpace.lean Modified Mathlib/Geometry/Manifold/InteriorBoundary.lean Modified Mathlib/Geometry/Manifold/IsManifold.lean Modified Mathlib/Topology/PartialHomeomorph.lean 2025-01-28 21:14:11 090d323 chore: review adaptation notes (#21176) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Abelian/DiagramLemmas/Four.lean Modified Mathlib/CategoryTheory/Abelian/InjectiveResolution.lean Modified Mathlib/CategoryTheory/CofilteredSystem.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Pullback/Mono.lean Modified Mathlib/Control/Fold.lean Modified Mathlib/Data/DFinsupp/WellFounded.lean Modified Mathlib/Data/Rel.lean Modified Mathlib/Data/Subtype.lean Modified Mathlib/Geometry/Euclidean/Inversion/Basic.lean Modified Mathlib/Geometry/Euclidean/Inversion/Calculus.lean Modified Mathlib/Logic/Function/Defs.lean Modified Mathlib/Probability/Process/HittingTime.lean Modified Mathlib/Topology/List.lean Modified MathlibTest/MoveAdd.lean 2025-01-28 19:06:41 edd636f feat: establish additivity of MeromorphicAt.order under multiplication of meromorphic functions (#21015) These theorems are used in [Project VD](https://github.com/kebekus/ProjectVD), which aims to formalize Value Distribution Theory for meromorphic functions on the complex plane. ESTIMATED CHANGES Modified Mathlib/Analysis/Analytic/Meromorphic.lean + theorem MeromorphicAt.order_mul + theorem MeromorphicAt.order_smul 2025-01-28 17:39:55 2fc44e9 chore: prepare for lean version bump (#21184) ESTIMATED CHANGES Modified Mathlib/Algebra/FreeMonoid/Basic.lean Modified Mathlib/Algebra/Group/Pi/Lemmas.lean +/- theorem Commute.pi Modified Mathlib/Algebra/Group/Prod.lean Modified Mathlib/Algebra/LinearRecurrence.lean Modified Mathlib/Combinatorics/Enumerative/DyckWord.lean Modified Mathlib/Computability/Primrec.lean Modified Mathlib/Computability/RegularExpressions.lean Modified Mathlib/Computability/Tape.lean Modified Mathlib/Data/List/Basic.lean +/- theorem List.indexOf_cons_self - theorem List.indexOf_eq_length + theorem List.indexOf_eq_length_iff Modified Mathlib/Data/List/MinMax.lean Modified Mathlib/Data/List/Monad.lean Modified Mathlib/Data/List/Permutation.lean Modified Mathlib/GroupTheory/Perm/Cycle/Type.lean Modified Mathlib/NumberTheory/LegendreSymbol/JacobiSymbol.lean Modified Mathlib/RingTheory/GradedAlgebra/HomogeneousLocalization.lean 2025-01-28 17:39:54 1f4b396 doc(Mathlib/Data/PFunctor/M): fix typo & style (#21150) ESTIMATED CHANGES Modified Mathlib/Data/PFunctor/Univariate/M.lean 2025-01-28 16:54:06 e710222 perf(Mathlib/Tactic/CC/*): faster `cc` by using `FastSubsingleton` (#20723) `cc` spends much times on synthesizing `Subsingleton` instances. This PR makes `cc` faster by using `FastSubsingleton` instead of `Subsingleton`. [Zulip thread](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/cc.20performance.20issue.20and.20mysterious.20Subsingleton) ESTIMATED CHANGES Modified Mathlib/Lean/Meta/CongrTheorems.lean Modified Mathlib/Tactic/CC/Addition.lean Modified Mathlib/Tactic/CC/Datatypes.lean Modified Mathlib/Tactic/CC/MkProof.lean Modified Mathlib/Tactic/CongrExclamation.lean Modified MathlibTest/cc.lean Modified scripts/noshake.json 2025-01-28 16:40:43 c0caeec chore(1000.yaml): less ambiguous titles (#21177) Re-generate the theorem titles from upstream, using a slightly better algorithm. This fixes a TODO (also remarked by Michael Stoll), and makes editing the file easier since it is clearer which result is meant. This catches one declaration name which did not refer to the right theorem (it referred to a different version of Tonelli's theorem). While at it, remove one further outdated TODO, and mention the PNT+ repository in a comment. ESTIMATED CHANGES Modified docs/1000.yaml 2025-01-28 16:40:42 22d2235 feat(Probability): notation and lemmas for the composition of a measure and a kernel (Measure.bind) (#19639) From the TestingLowerBounds project. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/MeasureTheory/Measure/Prod.lean Added Mathlib/Probability/Kernel/Composition/CompNotation.lean + theorem MeasureTheory.Measure.comp_apply_univ + theorem MeasureTheory.Measure.const_comp + theorem MeasureTheory.Measure.deterministic_comp_eq_map + theorem MeasureTheory.Measure.id_comp + theorem MeasureTheory.Measure.swap_comp Added Mathlib/Probability/Kernel/Composition/Lemmas.lean + theorem MeasureTheory.Measure.compProd_eq_parallelComp_comp_copy_comp + theorem MeasureTheory.Measure.parallelComp_comp_compProd + theorem MeasureTheory.Measure.prod_comp_left + theorem MeasureTheory.Measure.prod_comp_right + theorem ProbabilityTheory.Kernel.parallelComp_comm + theorem ProbabilityTheory.Kernel.parallelComp_comp_parallelComp + theorem ProbabilityTheory.Kernel.parallelComp_comp_prod + theorem ProbabilityTheory.Kernel.parallelComp_id_left_comp_parallelComp + theorem ProbabilityTheory.Kernel.parallelComp_id_right_comp_parallelComp Added Mathlib/Probability/Kernel/Composition/MeasureComp.lean + theorem MeasureTheory.Measure.AbsolutelyContinuous.comp + theorem MeasureTheory.Measure.AbsolutelyContinuous.comp_left + theorem MeasureTheory.Measure.AbsolutelyContinuous.comp_right + theorem MeasureTheory.Measure.add_comp' + theorem MeasureTheory.Measure.add_comp + theorem MeasureTheory.Measure.compProd_eq_comp_prod + theorem MeasureTheory.Measure.compProd_id_eq_copy_comp + theorem MeasureTheory.Measure.comp_add + theorem MeasureTheory.Measure.comp_assoc + theorem MeasureTheory.Measure.comp_smul + theorem MeasureTheory.Measure.map_comp + theorem MeasureTheory.Measure.snd_compProd Modified Mathlib/Probability/Kernel/Composition/MeasureCompProd.lean + theorem MeasureTheory.Measure.compProd_id Modified Mathlib/Probability/Kernel/Proper.lean - theorem ProbabilityTheory.Kernel.IsProper.setLIntegral_eq_bind + theorem ProbabilityTheory.Kernel.IsProper.setLIntegral_eq_comp Modified scripts/noshake.json 2025-01-28 16:01:11 3d93b8d feat(*/Fin/*): add lemmas (#21175) Cherry-picked parts of #21112 that don't rely on a decision about inline `haveI : NeZero n := _` ESTIMATED CHANGES Modified Mathlib/Data/Fin/Basic.lean + theorem Fin.cast_inj Modified Mathlib/Order/Fin/Basic.lean +/- theorem Fin.bot_eq_zero + theorem Fin.succOrderEmb_toEmbedding + theorem Fin.succ_top + theorem Fin.top_eq_zero + theorem Fin.val_top + theorem Fin.zero_eq_top 2025-01-28 16:01:10 cefd405 feat(Combinatorics/SimpleGraph/Matching): Interactions between `spanningCoe`, `IsAlternating` and `IsCycles` (#20800) Add basic results in preparation for Tutte's theorem. ESTIMATED CHANGES Modified Mathlib/Combinatorics/SimpleGraph/Matching.lean + theorem SimpleGraph.IsAlternating.mono + theorem SimpleGraph.IsCycles.induce_supp + theorem SimpleGraph.IsPerfectMatching.isAlternating_symmDiff_left + theorem SimpleGraph.IsPerfectMatching.isAlternating_symmDiff_right + theorem SimpleGraph.IsPerfectMatching.symmDiff_of_isAlternating - theorem SimpleGraph.IsPerfectMatching.symmDiff_spanningCoe_of_isAlternating + theorem SimpleGraph.Subgraph.IsPerfectMatching.symmDiff_isCycles - theorem SimpleGraph.Subgraph.IsPerfectMatching.symmDiff_spanningCoe_IsCycles + theorem SimpleGraph.Subgraph.IsPerfectMatching.toSubgraph_iff - theorem SimpleGraph.Subgraph.IsPerfectMatching.toSubgraph_spanningCoe_iff Modified Mathlib/Combinatorics/SimpleGraph/Path.lean + theorem SimpleGraph.ConnectedComponent.adj_spanningCoe_induce_supp + theorem SimpleGraph.ConnectedComponent.mem_supp_congr_adj 2025-01-28 15:49:59 7fb23e3 chore(RingTheory/Valuation): `map_neg` etc over Monoid (#21151) makes it and friends like `map_add_of_distinct_val` work in ENat ESTIMATED CHANGES Modified Mathlib/RingTheory/Valuation/Basic.lean 2025-01-28 14:00:41 46e8915 feat: add `WithZero.units_val_eq_coe_unitsWithZeroEquiv` (#21160) Taking `Units.val` of a unit in `WithZero α` corresponds to coercing `unitsWithZeroEquiv` from `α` to `WithZero α` ESTIMATED CHANGES Modified Mathlib/Algebra/GroupWithZero/WithZero.lean + theorem WithZero.coe_unitsWithZeroEquiv_eq_units_val 2025-01-28 13:12:41 3228d1d doc(docs/1000.yaml): add eight theorems (#21152) * Beck's monadicity theorem * Basel problem * Banach open mapping theorem * Dini's theorem * Hilbert's basis theorem * Kleene's recursion theorem * Smn theorem * Well-ordering theorem ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Monad/Monadicity.lean Modified Mathlib/Computability/PartrecCode.lean Modified Mathlib/RingTheory/Polynomial/Basic.lean Modified Mathlib/Topology/UniformSpace/Dini.lean Modified docs/1000.yaml 2025-01-28 12:51:18 d6bfd18 chore: cleanup simp priorities in Algebra/GCDMonoid (#21156) ESTIMATED CHANGES Modified Mathlib/Algebra/GCDMonoid/Finset.lean Modified Mathlib/Algebra/GCDMonoid/Multiset.lean 2025-01-28 12:17:49 2705ba7 chore: deprecate list_reverse_induction (#21166) ESTIMATED CHANGES Modified Mathlib/Computability/DFA.lean Modified Mathlib/Computability/MyhillNerode.lean Modified Mathlib/Data/List/Indexes.lean 2025-01-28 11:39:12 b0565ae feat: generalise `TopologicalGroup.isInducing_if_nhds_one` to `MonoidHomClass` (#21159) This allows direct application of `TopologicalAddGroup.isInducing_iff_nhds_zero` to `TopologicalRing` and ring homs. ESTIMATED CHANGES Modified Mathlib/Topology/Algebra/Group/Basic.lean 2025-01-28 11:07:43 2f62308 chore(Data/Matroid/Rank/Cardinal): docstring typo (#21149) Fixes a wrong lemma reference in a docstring. ESTIMATED CHANGES Modified Mathlib/Data/Matroid/Rank/Cardinal.lean 2025-01-28 11:07:42 fb4aed5 chore: delete deprecated algebraic structure files (#16836) Based on a comparison with 32de3f675e28bc8b32de22cba2660940d0a5fc10 these six files have not been substantially changed for over a year. ESTIMATED CHANGES Modified Mathlib.lean Deleted Mathlib/Deprecated/Group.lean - theorem Additive.isAddGroupHom - theorem Additive.isAddHom - theorem Additive.isAddMonoidHom - theorem Inv.isGroupHom - theorem IsAddGroupHom.sub - structure IsAddGroupHom - structure IsAddHom - theorem IsAddMonoidHom.isAddMonoidHom_mul_left - theorem IsAddMonoidHom.isAddMonoidHom_mul_right - structure IsAddMonoidHom - theorem IsGroupHom.comp - theorem IsGroupHom.id - theorem IsGroupHom.injective_iff - theorem IsGroupHom.inv - theorem IsGroupHom.map_div - theorem IsGroupHom.map_inv - theorem IsGroupHom.map_mul' - theorem IsGroupHom.map_one - theorem IsGroupHom.mk' - theorem IsGroupHom.mul - theorem IsGroupHom.to_isMonoidHom - structure IsGroupHom - theorem IsMonoidHom.comp - theorem IsMonoidHom.id - theorem IsMonoidHom.inv - theorem IsMonoidHom.map_mul' - structure IsMonoidHom - theorem IsMulHom.comp - theorem IsMulHom.id - theorem IsMulHom.inv - theorem IsMulHom.mul - theorem IsMulHom.to_isMonoidHom - structure IsMulHom - theorem IsUnit.map' - theorem MonoidHom.coe_of - theorem MonoidHom.isGroupHom - theorem MonoidHom.isMonoidHom_coe - def MonoidHom.of - theorem MulEquiv.isGroupHom - theorem MulEquiv.isMonoidHom - theorem MulEquiv.isMulHom - theorem Multiplicative.isGroupHom - theorem Multiplicative.isMonoidHom - theorem Multiplicative.isMulHom - theorem RingHom.to_isAddGroupHom - theorem RingHom.to_isAddMonoidHom - theorem RingHom.to_isMonoidHom - theorem Units.coe_isMonoidHom - theorem Units.coe_map' Deleted Mathlib/Deprecated/Ring.lean - theorem IsRingHom.comp - theorem IsRingHom.id - theorem IsRingHom.map_neg - theorem IsRingHom.map_sub - theorem IsRingHom.map_zero - theorem IsRingHom.of_semiring - theorem IsRingHom.to_isAddGroupHom - theorem IsRingHom.to_isSemiringHom - structure IsRingHom - theorem IsSemiringHom.comp - theorem IsSemiringHom.id - theorem IsSemiringHom.to_isAddMonoidHom - theorem IsSemiringHom.to_isMonoidHom - structure IsSemiringHom - theorem RingHom.coe_of - def RingHom.of - theorem RingHom.to_isRingHom - theorem RingHom.to_isSemiringHom Deleted Mathlib/Deprecated/Subfield.lean - theorem Field.closure.isSubfield - theorem Field.closure.isSubmonoid - def Field.closure - theorem Field.closure_mono - theorem Field.closure_subset - theorem Field.closure_subset_iff - theorem Field.mem_closure - theorem Field.ring_closure_subset - theorem Field.subset_closure - theorem Image.isSubfield - theorem IsSubfield.div_mem - theorem IsSubfield.iInter - theorem IsSubfield.inter - theorem IsSubfield.pow_mem - structure IsSubfield - theorem Preimage.isSubfield - theorem Range.isSubfield - theorem Univ.isSubfield - theorem isSubfield_iUnion_of_directed Deleted Mathlib/Deprecated/Subgroup.lean - inductive AddGroup.InClosure - theorem Additive.isAddSubgroup - theorem Additive.isAddSubgroup_iff - theorem Additive.isNormalAddSubgroup - theorem Additive.isNormalAddSubgroup_iff - inductive Group.InClosure - theorem Group.closure.isSubgroup - def Group.closure - theorem Group.closure_eq_mclosure - theorem Group.closure_mono - theorem Group.closure_subgroup - theorem Group.closure_subset - theorem Group.closure_subset_iff - theorem Group.conjugatesOfSet_subset' - theorem Group.conjugatesOfSet_subset_normalClosure - theorem Group.conjugatesOf_subset - theorem Group.exists_list_of_mem_closure - theorem Group.image_closure - theorem Group.mclosure_inv_subset - theorem Group.mclosure_subset - theorem Group.mem_closure - theorem Group.mem_closure_union_iff - theorem Group.normalClosure.isSubgroup - theorem Group.normalClosure.is_normal - def Group.normalClosure - theorem Group.normalClosure_mono - theorem Group.normalClosure_subset - theorem Group.normalClosure_subset_iff - theorem Group.subset_closure - theorem Group.subset_normalClosure - theorem IsAddSubgroup.of_sub - structure IsAddSubgroup - theorem IsGroupHom.image_subgroup - theorem IsGroupHom.injective_iff_trivial_ker - theorem IsGroupHom.injective_of_trivial_ker - theorem IsGroupHom.inv_iff_ker' - theorem IsGroupHom.inv_iff_ker - theorem IsGroupHom.inv_ker_one' - theorem IsGroupHom.inv_ker_one - theorem IsGroupHom.isNormalSubgroup_ker - def IsGroupHom.ker - theorem IsGroupHom.mem_ker - theorem IsGroupHom.one_iff_ker_inv' - theorem IsGroupHom.one_iff_ker_inv - theorem IsGroupHom.one_ker_inv' - theorem IsGroupHom.one_ker_inv - theorem IsGroupHom.preimage - theorem IsGroupHom.preimage_normal - theorem IsGroupHom.range_subgroup - theorem IsGroupHom.trivial_ker_iff_eq_one - theorem IsGroupHom.trivial_ker_of_injective - structure IsNormalAddSubgroup - structure IsNormalSubgroup - def IsSubgroup.center - theorem IsSubgroup.center_normal - theorem IsSubgroup.div_mem - theorem IsSubgroup.eq_trivial_iff - theorem IsSubgroup.iInter - theorem IsSubgroup.inter - theorem IsSubgroup.inv_mem_iff - theorem IsSubgroup.mem_center - theorem IsSubgroup.mem_norm_comm - theorem IsSubgroup.mem_norm_comm_iff - theorem IsSubgroup.mem_trivial - theorem IsSubgroup.mul_mem_cancel_left - theorem IsSubgroup.mul_mem_cancel_right - def IsSubgroup.normalizer - theorem IsSubgroup.normalizer_isSubgroup - theorem IsSubgroup.of_div - theorem IsSubgroup.subset_normalizer - def IsSubgroup.trivial - theorem IsSubgroup.trivial_eq_closure - theorem IsSubgroup.trivial_normal - theorem IsSubgroup.univ_subgroup - structure IsSubgroup - theorem Multiplicative.isNormalSubgroup - theorem Multiplicative.isNormalSubgroup_iff - theorem Multiplicative.isSubgroup - theorem Multiplicative.isSubgroup_iff - theorem Subgroup.isSubgroup - def Subgroup.of - theorem Subgroup.of_normal - theorem isNormalSubgroup_of_commGroup - theorem isSubgroup_iUnion_of_directed Deleted Mathlib/Deprecated/Submonoid.lean - inductive AddMonoid.InClosure - theorem Additive.isAddSubmonoid - theorem Additive.isAddSubmonoid_iff - structure IsAddSubmonoid - theorem IsSubmonoid.finset_prod_mem - theorem IsSubmonoid.iInter - theorem IsSubmonoid.image - theorem IsSubmonoid.inter - theorem IsSubmonoid.list_prod_mem - theorem IsSubmonoid.multiset_prod_mem - theorem IsSubmonoid.pow_mem - theorem IsSubmonoid.powers_subset - theorem IsSubmonoid.preimage - structure IsSubmonoid - def Monoid.Closure - inductive Monoid.InClosure - theorem Monoid.closure.isSubmonoid - theorem Monoid.closure_mono - theorem Monoid.closure_singleton - theorem Monoid.closure_subset - theorem Monoid.exists_list_of_mem_closure - theorem Monoid.image_closure - theorem Monoid.mem_closure_union_iff - theorem Monoid.subset_closure - theorem Multiplicative.isSubmonoid - theorem Multiplicative.isSubmonoid_iff - theorem Range.isSubmonoid - theorem Submonoid.isSubmonoid - def Submonoid.of - theorem Univ.isSubmonoid - theorem isSubmonoid_iUnion_of_directed - theorem powers.isSubmonoid - theorem powers.mul_mem - theorem powers.one_mem - theorem powers.self_mem - def powers Deleted Mathlib/Deprecated/Subring.lean - theorem IsSubring.iInter - theorem IsSubring.inter - def IsSubring.subring - structure IsSubring - theorem Ring.closure.isSubring - def Ring.closure - theorem Ring.closure_mono - theorem Ring.closure_subset - theorem Ring.closure_subset_iff - theorem Ring.exists_list_of_mem_closure - theorem Ring.image_closure - theorem Ring.mem_closure - theorem Ring.subset_closure - theorem RingHom.isSubring_image - theorem RingHom.isSubring_preimage - theorem RingHom.isSubring_set_range - theorem isSubring_iUnion_of_directed Modified MathlibTest/Header.lean 2025-01-28 11:07:41 f7efa03 perf: improve the performance of the `Repr (Equiv.Perm α)` instance (4/4) (#12611) Currently, `#eval` for `Equiv.Perm α` outputs their disjoint cycles in the format of `Multiset` like: ```lean #eval (1 : Perm (Fin 4)) -- 0 #eval (c[0, 1] : Perm (Fin 4)) -- {c[0, 1]} #eval (c[0, 1] * c[2, 3] : Perm (Fin 4)) -- {c[0, 1], c[2, 3]} ``` However, outputting the original format is preferred: ```lean #eval (1 : Perm (Fin 4)) -- 1 #eval (c[0, 1] : Perm (Fin 4)) -- c[0, 1] #eval (c[0, 1] * c[2, 3] : Perm (Fin 4)) -- c[0, 1] * c[2, 3] ``` This PR change the format and add tests for this. ESTIMATED CHANGES Modified Mathlib/GroupTheory/Perm/Cycle/Concrete.lean Added MathlibTest/Perm.lean 2025-01-28 10:57:16 b26f274 doc: punctuation typos (#21161) ESTIMATED CHANGES Modified Mathlib/RingTheory/Nakayama.lean 2025-01-28 10:27:21 20c785e chore: use `‖x‖ₑ` instead of `↑‖x‖₊` (#20806) Rename lemmas from `_nnnorm_`/`_ennnorm_` to `_enorm_` where applicable. Rewrite/golf proofs where necessary. ESTIMATED CHANGES Modified Mathlib/Analysis/Analytic/Basic.lean Modified Mathlib/Analysis/Analytic/CPolynomial.lean Modified Mathlib/Analysis/Analytic/ChangeOrigin.lean Modified Mathlib/Analysis/Analytic/Composition.lean Modified Mathlib/Analysis/Analytic/Inverse.lean Modified Mathlib/Analysis/Analytic/Uniqueness.lean Modified Mathlib/Analysis/Analytic/Within.lean Modified Mathlib/Analysis/BoxIntegral/Integrability.lean Modified Mathlib/Analysis/Calculus/FDeriv/Analytic.lean Modified Mathlib/Analysis/Complex/CauchyIntegral.lean Modified Mathlib/Analysis/Convex/EGauge.lean +/- theorem div_le_egauge_ball +/- theorem div_le_egauge_closedBall +/- theorem egauge_le_of_mem_smul +/- theorem egauge_le_of_smul_mem +/- theorem egauge_le_of_smul_mem_of_ne +/- theorem egauge_lt_iff +/- theorem le_egauge_ball_one +/- theorem le_egauge_closedBall_one +/- theorem le_egauge_iff Modified Mathlib/Analysis/FunctionalSpaces/SobolevInequality.lean Modified Mathlib/Analysis/Normed/Algebra/Spectrum.lean Modified Mathlib/Analysis/Normed/Group/Basic.lean - theorem Real.ennnorm_eq_ofReal - theorem Real.ennnorm_eq_ofReal_abs + theorem Real.enorm_eq_ofReal + theorem Real.enorm_eq_ofReal_abs - theorem Real.ofReal_le_ennnorm + theorem Real.ofReal_le_enorm - theorem edist_eq_coe_nnnorm' - theorem edist_eq_coe_nnnorm_div + theorem edist_eq_enorm_div + theorem edist_one_eq_enorm +/- theorem edist_one_right +/- theorem mem_emetric_ball_one_iff - theorem ofReal_norm_eq_coe_nnnorm' + theorem ofReal_norm_eq_enorm' Modified Mathlib/Analysis/SpecialFunctions/JapaneseBracket.lean Modified Mathlib/MeasureTheory/Constructions/BorelSpace/Metric.lean - theorem AEMeasurable.ennnorm - theorem AEMeasurable.nnnorm - theorem Measurable.ennnorm - theorem Measurable.nnnorm - theorem measurable_ennnorm + theorem measurable_enorm Modified Mathlib/MeasureTheory/Covering/Differentiation.lean + theorem VitaliFamily.ae_tendsto_lintegral_enorm_sub_div'_of_integrable + theorem VitaliFamily.ae_tendsto_lintegral_enorm_sub_div + theorem VitaliFamily.ae_tendsto_lintegral_enorm_sub_div_of_integrable - theorem VitaliFamily.ae_tendsto_lintegral_nnnorm_sub_div'_of_integrable - theorem VitaliFamily.ae_tendsto_lintegral_nnnorm_sub_div - theorem VitaliFamily.ae_tendsto_lintegral_nnnorm_sub_div_of_integrable Modified Mathlib/MeasureTheory/Function/ConditionalExpectation/CondexpL1.lean Modified Mathlib/MeasureTheory/Function/ConditionalExpectation/CondexpL2.lean Modified Mathlib/MeasureTheory/Function/ConditionalExpectation/Real.lean Modified Mathlib/MeasureTheory/Function/ConditionalExpectation/Unique.lean + theorem MeasureTheory.lintegral_enorm_le_of_forall_fin_meas_integral_eq - theorem MeasureTheory.lintegral_nnnorm_le_of_forall_fin_meas_integral_eq Modified Mathlib/MeasureTheory/Function/ContinuousMapDense.lean Modified Mathlib/MeasureTheory/Function/ConvergenceInMeasure.lean Modified Mathlib/MeasureTheory/Function/L1Space.lean + theorem MeasureTheory.Integrable.enorm_toL1 - theorem MeasureTheory.Integrable.nnnorm_toL1 +/- theorem MeasureTheory.L1.norm_def +/- theorem MeasureTheory.L1.norm_sub_eq_lintegral +/- theorem MeasureTheory.L1.ofReal_norm_eq_lintegral + theorem MeasureTheory.hasFiniteIntegral_iff_enorm - theorem MeasureTheory.hasFiniteIntegral_iff_nnnorm +/- theorem MeasureTheory.hasFiniteIntegral_toReal_iff + theorem MeasureTheory.lintegral_enorm_add_left + theorem MeasureTheory.lintegral_enorm_add_right + theorem MeasureTheory.lintegral_enorm_eq_lintegral_edist + theorem MeasureTheory.lintegral_enorm_neg + theorem MeasureTheory.lintegral_enorm_zero - theorem MeasureTheory.lintegral_nnnorm_add_left - theorem MeasureTheory.lintegral_nnnorm_add_right - theorem MeasureTheory.lintegral_nnnorm_eq_lintegral_edist - theorem MeasureTheory.lintegral_nnnorm_neg - theorem MeasureTheory.lintegral_nnnorm_zero Modified Mathlib/MeasureTheory/Function/L2Space.lean Modified Mathlib/MeasureTheory/Function/LpSeminorm/Basic.lean +/- theorem MeasureTheory.ae_le_eLpNormEssSup +/- theorem MeasureTheory.eLpNorm'_const_smul_le + theorem MeasureTheory.eLpNorm'_eq_lintegral_enorm - theorem MeasureTheory.eLpNorm'_eq_lintegral_nnnorm +/- theorem MeasureTheory.eLpNormEssSup_const +/- theorem MeasureTheory.eLpNormEssSup_const_smul_le + theorem MeasureTheory.eLpNormEssSup_eq_essSup_enorm - theorem MeasureTheory.eLpNormEssSup_eq_essSup_nnnorm +/- theorem MeasureTheory.eLpNormEssSup_eq_iSup +/- theorem MeasureTheory.eLpNorm_const_smul_le + theorem MeasureTheory.eLpNorm_eq_lintegral_rpow_enorm - theorem MeasureTheory.eLpNorm_eq_lintegral_rpow_nnnorm + theorem MeasureTheory.eLpNorm_one_eq_lintegral_enorm - theorem MeasureTheory.eLpNorm_one_eq_lintegral_nnnorm + theorem MeasureTheory.lintegral_rpow_enorm_eq_rpow_eLpNorm' + theorem MeasureTheory.lintegral_rpow_enorm_lt_top_of_eLpNorm'_lt_top + theorem MeasureTheory.lintegral_rpow_enorm_lt_top_of_eLpNorm_lt_top - theorem MeasureTheory.lintegral_rpow_nnnorm_eq_rpow_eLpNorm' - theorem MeasureTheory.lintegral_rpow_nnnorm_lt_top_of_eLpNorm'_lt_top - theorem MeasureTheory.lintegral_rpow_nnnorm_lt_top_of_eLpNorm_lt_top +/- theorem MeasureTheory.meas_eLpNormEssSup_lt +/- theorem MeasureTheory.memℒp_top_const Modified Mathlib/MeasureTheory/Function/LpSeminorm/ChebyshevMarkov.lean Modified Mathlib/MeasureTheory/Function/LpSeminorm/CompareExp.lean Modified Mathlib/MeasureTheory/Function/LpSeminorm/TriangleInequality.lean Modified Mathlib/MeasureTheory/Function/LpSeminorm/Trim.lean Modified Mathlib/MeasureTheory/Function/LpSpace.lean - theorem MeasureTheory.Lp.coe_nnnorm_toLp + theorem MeasureTheory.Lp.enorm_def + theorem MeasureTheory.Lp.enorm_toLp + theorem MeasureTheory.Lp.meas_ge_le_mul_pow_enorm - theorem MeasureTheory.Lp.meas_ge_le_mul_pow_norm + theorem MeasureTheory.Lp.mul_meas_ge_le_pow_enorm' + theorem MeasureTheory.Lp.mul_meas_ge_le_pow_enorm - theorem MeasureTheory.Lp.mul_meas_ge_le_pow_norm' - theorem MeasureTheory.Lp.mul_meas_ge_le_pow_norm - theorem MeasureTheory.Lp.nnnorm_coe_ennreal + theorem MeasureTheory.Lp.pow_mul_meas_ge_le_enorm - theorem MeasureTheory.Lp.pow_mul_meas_ge_le_norm + theorem MeasureTheory.edist_indicatorConstLp_eq_enorm - theorem MeasureTheory.edist_indicatorConstLp_eq_nnnorm - theorem MeasureTheory.ennnorm_indicatorConstLp_le + theorem MeasureTheory.enorm_indicatorConstLp_le Modified Mathlib/MeasureTheory/Function/SimpleFuncDenseLp.lean + theorem MeasureTheory.SimpleFunc.tendsto_approxOn_L1_enorm - theorem MeasureTheory.SimpleFunc.tendsto_approxOn_L1_nnnorm + theorem MeasureTheory.SimpleFunc.tendsto_approxOn_range_L1_enorm - theorem MeasureTheory.SimpleFunc.tendsto_approxOn_range_L1_nnnorm Modified Mathlib/MeasureTheory/Function/StronglyMeasurable/Basic.lean Modified Mathlib/MeasureTheory/Function/UniformIntegrable.lean Modified Mathlib/MeasureTheory/Integral/Bochner.lean - theorem MeasureTheory.ennnorm_integral_le_lintegral_ennnorm + theorem MeasureTheory.enorm_integral_le_lintegral_enorm + theorem MeasureTheory.integral_norm_eq_lintegral_enorm - theorem MeasureTheory.integral_norm_eq_lintegral_nnnorm + theorem MeasureTheory.ofReal_integral_norm_eq_lintegral_enorm - theorem MeasureTheory.ofReal_integral_norm_eq_lintegral_nnnorm Modified Mathlib/MeasureTheory/Integral/BoundedContinuousFunction.lean Modified Mathlib/MeasureTheory/Integral/DominatedConvergence.lean Modified Mathlib/MeasureTheory/Integral/FundThmCalculus.lean Modified Mathlib/MeasureTheory/Integral/IntegrableOn.lean Modified Mathlib/MeasureTheory/Integral/IntegralEqImproper.lean - theorem HasCompactSupport.ennnorm_le_lintegral_Ici_deriv + theorem HasCompactSupport.enorm_le_lintegral_Ici_deriv + theorem MeasureTheory.AECover.integrable_of_lintegral_enorm_bounded' + theorem MeasureTheory.AECover.integrable_of_lintegral_enorm_bounded + theorem MeasureTheory.AECover.integrable_of_lintegral_enorm_tendsto' + theorem MeasureTheory.AECover.integrable_of_lintegral_enorm_tendsto - theorem MeasureTheory.AECover.integrable_of_lintegral_nnnorm_bounded' - theorem MeasureTheory.AECover.integrable_of_lintegral_nnnorm_bounded - theorem MeasureTheory.AECover.integrable_of_lintegral_nnnorm_tendsto' - theorem MeasureTheory.AECover.integrable_of_lintegral_nnnorm_tendsto Modified Mathlib/MeasureTheory/Integral/Lebesgue.lean + theorem MeasureTheory.lintegral_enorm_of_ae_nonneg + theorem MeasureTheory.lintegral_enorm_of_nonneg - theorem MeasureTheory.lintegral_nnnorm_eq_of_ae_nonneg - theorem MeasureTheory.lintegral_nnnorm_eq_of_nonneg + theorem MeasureTheory.lintegral_ofReal_le_lintegral_enorm - theorem MeasureTheory.lintegral_ofReal_le_lintegral_nnnorm Modified Mathlib/MeasureTheory/Integral/Prod.lean Modified Mathlib/MeasureTheory/Integral/SetIntegral.lean Modified Mathlib/MeasureTheory/Integral/SetToL1.lean Modified Mathlib/MeasureTheory/Measure/Haar/Quotient.lean Modified Mathlib/MeasureTheory/Measure/Lebesgue/EqHaar.lean Modified Mathlib/NumberTheory/ModularForms/QExpansion.lean Modified Mathlib/Probability/Density.lean Modified Mathlib/Probability/Distributions/Uniform.lean Modified Mathlib/Probability/Integration.lean Modified Mathlib/Probability/Kernel/Composition/IntegralCompProd.lean Modified Mathlib/Probability/Kernel/CondDistrib.lean Modified Mathlib/Probability/Kernel/Disintegration/CondCDF.lean Modified Mathlib/Probability/Kernel/MeasurableIntegral.lean Modified Mathlib/Probability/Martingale/Convergence.lean Modified Mathlib/Probability/Variance.lean Modified scripts/nolints_prime_decls.txt 2025-01-28 09:37:27 afd713f feat: equalizers and coequalizers in the category of ind-objects (#21139) We study parallel pairs of morphisms in `Ind C`, discover that they are always induced by natural transformations in a suitable indexing category, and deduce that ind-objects are closed under equalizers and the category of ind-objects has coequalizers. Huge thanks to @javra and @datokrat. If they had not spent countless hours tirelessly PRing properties of comma categories and the Grothendieck construction to mathlib this PR would not have been possible, even though you can't see any of their results used in the PR (since they are applied by instance synthesis). ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/CategoryTheory/Limits/Indization/Category.lean + theorem CategoryTheory.Ind.exists_nonempty_arrow_mk_iso_ind_lim Modified Mathlib/CategoryTheory/Limits/Indization/Equalizers.lean + theorem CategoryTheory.Limits.closedUnderLimitsOfShape_walkingParallelPair_isIndObject Added Mathlib/CategoryTheory/Limits/Indization/ParallelPair.lean + structure CategoryTheory.IndParallelPairPresentation + theorem CategoryTheory.NonemptyParallelPairPresentationAux.hf + theorem CategoryTheory.NonemptyParallelPairPresentationAux.hg + def CategoryTheory.NonemptyParallelPairPresentationAux.ψ + def CategoryTheory.NonemptyParallelPairPresentationAux.ϕ + theorem CategoryTheory.nonempty_indParallelPairPresentation 2025-01-28 08:00:52 abcae08 doc: turn more links to Stacks into `@[stacks]` tags (#21135) This was made quite manually. ESTIMATED CHANGES Modified Mathlib/AlgebraicGeometry/Noetherian.lean Modified Mathlib/CategoryTheory/Galois/Topology.lean Modified Mathlib/CategoryTheory/Limits/Final.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Countable.lean Modified Mathlib/CategoryTheory/Sites/Canonical.lean Modified Mathlib/CategoryTheory/Sites/CoverLifting.lean Modified Mathlib/CategoryTheory/Sites/CoverPreserving.lean Modified Mathlib/CategoryTheory/Sites/EqualizerSheafCondition.lean +/- def CategoryTheory.Equalizer.Presieve.SecondObj Modified Mathlib/CategoryTheory/Sites/IsSheafFor.lean Modified Mathlib/CategoryTheory/Sites/Pretopology.lean Modified Mathlib/CategoryTheory/Sites/Sheaf.lean Modified Mathlib/RingTheory/Adjoin/Tower.lean Modified Mathlib/RingTheory/Etale/Basic.lean Modified Mathlib/RingTheory/FinitePresentation.lean Modified Mathlib/RingTheory/Finiteness/Nakayama.lean Modified Mathlib/RingTheory/Ideal/Operations.lean Modified Mathlib/RingTheory/LocalRing/RingHom/Basic.lean Modified Mathlib/RingTheory/Smooth/Basic.lean Modified Mathlib/RingTheory/Spectrum/Prime/IsOpenComapC.lean Modified Mathlib/RingTheory/Spectrum/Prime/Topology.lean Modified Mathlib/RingTheory/Unramified/Basic.lean Modified Mathlib/Topology/NoetherianSpace.lean Modified Mathlib/Topology/Separation/Regular.lean 2025-01-28 07:32:00 eff2ae8 feat(Asymptotics): prove `IsLittleOTVS.add` (#20578) ESTIMATED CHANGES Modified Mathlib/Analysis/Asymptotics/TVS.lean + theorem Asymptotics.IsLittleOTVS.add Modified Mathlib/Analysis/Convex/EGauge.lean + theorem egauge_add_add_le Modified Mathlib/Order/Filter/SmallSets.lean + theorem Filter.Eventually.exists_mem_basis_of_smallSets + theorem Filter.Eventually.exists_mem_of_smallSets + theorem Filter.Frequently.smallSets_of_forall_mem_basis Modified Mathlib/Topology/Algebra/Monoid.lean + theorem Filter.HasBasis.mul_self 2025-01-28 07:05:13 8be3c37 feat(Algebra/Polynomial): `Polynomial.aeval` for product algebras (#21062) Results about evaluating polynomials on elements from (generalized) product algebras. Add necessary (and basic) facts for `Pi` algebras. ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/Pi.lean + theorem Pi.algHom_comp + theorem Pi.algHom_evalAlgHom Modified Mathlib/Algebra/Polynomial/AlgebraMap.lean + theorem Polynomial.aeval_pi + theorem Polynomial.aeval_pi_apply + theorem Polynomial.aeval_pi_apply₂ + theorem Polynomial.aeval_prod + theorem Polynomial.aeval_prod_apply 2025-01-28 06:01:13 d86d6c3 chore: import Std in Mathlib.lean (#21126) This will allow Loogle to find pieces of the standard library which mathlib currently does not use, like the date and time API. ESTIMATED CHANGES Modified Mathlib.lean Modified scripts/lint-style.lean + def eraseExplicitImports + def explicitImports Modified scripts/mk_all.lean 2025-01-28 03:55:35 6ac6869 feat(Data/Matroid/Circuit): fundamental circuits and extensionality (#21145) We define the fundamental circuit in a matroid for a set `I` and an element `e`, then use it to show that dependent sets all contain circuits, and a circuit-based extensionality lemma. ESTIMATED CHANGES Modified Mathlib/Data/Matroid/Circuit.lean + theorem Matroid.Base.fundCircuit_circuit +/- theorem Matroid.Circuit.circuit_restrict_of_subset + theorem Matroid.Circuit.eq_fundCircuit_of_subset + theorem Matroid.Circuit.eq_of_superset_circuit + theorem Matroid.Dep.exists_circuit_subset + theorem Matroid.Indep.fundCircuit_circuit + theorem Matroid.Indep.mem_fundCircuit_iff + theorem Matroid.dep_iff_superset_circuit' + theorem Matroid.dep_iff_superset_circuit + theorem Matroid.ext_circuit + theorem Matroid.ext_circuit_not_indep + theorem Matroid.ext_iff_circuit + def Matroid.fundCircuit + theorem Matroid.fundCircuit_eq_of_mem' + theorem Matroid.fundCircuit_eq_of_mem + theorem Matroid.fundCircuit_eq_sInter + theorem Matroid.fundCircuit_subset_ground + theorem Matroid.fundCircuit_subset_insert + theorem Matroid.indep_iff_forall_subset_not_circuit' + theorem Matroid.indep_iff_forall_subset_not_circuit + theorem Matroid.mem_fundCircuit 2025-01-28 02:20:59 7bf93b8 feat(CategoryTheory/Endofunctor): prove the dual form of Lambek's Lemma on terminal coalgebra (#21140) Implement the proof of the coalgebra form of Lambek's lemma, stating that if the category of coalgebra on endofunctors has a terminal coalgebra T, then the structure map of the terminal coalgebra is an isomorphism. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Endofunctor/Algebra.lean + theorem CategoryTheory.Endofunctor.Coalgebra.Terminal.left_inv + theorem CategoryTheory.Endofunctor.Coalgebra.Terminal.right_inv' + theorem CategoryTheory.Endofunctor.Coalgebra.Terminal.right_inv + def CategoryTheory.Endofunctor.Coalgebra.Terminal.strInv + theorem CategoryTheory.Endofunctor.Coalgebra.Terminal.str_isIso 2025-01-28 02:20:58 022b2bf feat(SetTheory/Game/PGame): rewrite left moves of `-x` as right moves of `x` under binders (#21109) These lemmas strengthen our simp set considerably, and allow us to now prove various other theorems by `simp` on the negative game. See [Zulip](https://leanprover.zulipchat.com/#narrow/channel/116395-maths/topic/Poset.20games/near/496019881) for some discussion on this. ESTIMATED CHANGES Modified Mathlib/SetTheory/Game/PGame.lean + theorem SetTheory.PGame.exists_leftMoves_neg + theorem SetTheory.PGame.exists_rightMoves_neg + theorem SetTheory.PGame.forall_leftMoves_neg + theorem SetTheory.PGame.forall_rightMoves_neg 2025-01-28 01:27:09 ddd2cd2 feat(RingTheory/Localization/Pi): localization of a finite direct product is a product of localizations (#19042) For lemma ` isUnit_piRingHom_algebraMap_comp_piEvalRingHom` : Let `M` be a submonoid of a direct product of commutative rings `R i`, and let `M' i` denote the projection of `M` onto each corresponding factor. Given a ring homomorphism from the direct product `Π i, R i` to the product of the localizations of each `R i` at `M' i`, every `y : M` maps to a unit under this homomorphism. For theorem `bijective_lift_piRingHom_algebraMap_comp_piEvalRingHom` : Let `M` be a submonoid of a direct product of commutative rings `R i`, and let `M' i` denote the projection of `M` onto each factor. Then the canonical map from the localization of the direct product `Π i, R i` at `M` to the direct product of the localizations of each `R i` at `M' i` is bijective. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Algebra/Pi.lean Modified Mathlib/RingTheory/Localization/Basic.lean + theorem IsLocalization.iff_of_le_of_exists_dvd Added Mathlib/RingTheory/Localization/Pi.lean + theorem IsLocalization.bijective_lift_piRingHom_algebraMap_comp_piEvalRingHom + theorem IsLocalization.iff_map_piEvalRingHom + theorem IsLocalization.isUnit_piRingHom_algebraMap_comp_piEvalRingHom 2025-01-28 01:12:04 2d4a407 doc: fixed notation error in customizing category composition (#21132) Fixed the notation error on defining customised composition following conventions, which is incorrectly ported from Lean 3. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Category/Basic.lean 2025-01-28 00:34:40 8959d57 feat(Matrix): more lemmas for `PEquiv.toMatrix` (#21143) Also - add `Matrix.transpose_stdBasisMatrix` and `conjTranspose` version - add `Matrix.ext_ofMulVec` - tag `Matrix.GeneralLinearGroup.map` with `@[simps]` From "Formalizing the Bruhat-Tits tree" Co-authored by: Judith Ludwig ESTIMATED CHANGES Modified Mathlib/Data/Matrix/Basis.lean + theorem Matrix.map_stdBasisMatrix + theorem Matrix.transpose_stdBasisMatrix Modified Mathlib/Data/Matrix/ConjTranspose.lean + theorem Matrix.conjTranspose_stdBasisMatrix Modified Mathlib/Data/Matrix/Mul.lean + theorem Matrix.ext_of_mulVec_single + theorem Matrix.ext_of_single_vecMul Modified Mathlib/Data/Matrix/PEquiv.lean + theorem PEquiv.map_toMatrix +/- theorem PEquiv.mul_toMatrix_toPEquiv +/- theorem PEquiv.toMatrix_toPEquiv_mul + theorem PEquiv.toMatrix_toPEquiv_mulVec + theorem PEquiv.vecMul_toMatrix_toPEquiv Modified Mathlib/LinearAlgebra/Matrix/GeneralLinearGroup/Defs.lean 2025-01-28 00:03:54 9c435f8 chore(SupIndep): speedup the `Decidable` instance (#21114) The new instance runs in polynomial time instead of exponential. ESTIMATED CHANGES Modified Mathlib/Order/SupIndep.lean 2025-01-27 23:55:31 ffa9869 fix(CI): use `Elab.async=false` for late importers workflow (#21147) Spotted in [this Zulip message](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Late.20importers.20report/near/496179935). ESTIMATED CHANGES Modified .github/workflows/latest_import.yml 2025-01-27 23:24:32 59594e2 feat(Topology/Algebra/Indicator): indicator of a clopen is continuous (#20687) Indicator functions of clopen subsets are continuous. ESTIMATED CHANGES Modified Mathlib/Topology/Algebra/Indicator.lean + theorem IsClopen.continuous_mulIndicator 2025-01-27 23:15:21 d66fa49 feat(Data/Matroid/Rank/Cardinal): Cardinality-valued rank function (#20921) We abstract out the matroid property of 'having a well-defined `Cardinality`-valued rank function' as a typeclass `Matroid.CardinalRank`, and use it to define a rank function `Matroid.cardRk` and prove basic properties. The fact that `Finitary` matroids have such a rank function is now provided as an instance. ESTIMATED CHANGES Modified Mathlib/Data/Matroid/Basic.lean Modified Mathlib/Data/Matroid/Rank/Cardinal.lean + theorem Matroid.Base.cardinalMk_diff_comm - theorem Matroid.Base.cardinalMk_diff_comm_of_finitary + theorem Matroid.Base.cardinalMk_eq + theorem Matroid.Base.cardinalMk_eq_cRank - theorem Matroid.Base.cardinalMk_eq_of_finitary + theorem Matroid.Base.cardinalMk_le_cRank + theorem Matroid.Basis'.cardinalMk_diff_comm - theorem Matroid.Basis'.cardinalMk_diff_comm_of_finitary + theorem Matroid.Basis'.cardinalMk_eq + theorem Matroid.Basis'.cardinalMk_eq_cRk - theorem Matroid.Basis'.cardinalMk_eq_of_finitary + theorem Matroid.Basis'.cardinalMk_le_cRk + theorem Matroid.Basis.cardinalMk_diff_comm - theorem Matroid.Basis.cardinalMk_diff_comm_of_finitary + theorem Matroid.Basis.cardinalMk_eq + theorem Matroid.Basis.cardinalMk_eq_cRk - theorem Matroid.Basis.cardinalMk_eq_of_finitary + theorem Matroid.Basis.cardinalMk_le_cRk + theorem Matroid.Indep.cRk_eq_cardinalMk + theorem Matroid.Indep.cardinalMk_le_base - theorem Matroid.Indep.cardinalMk_le_base_of_finitary + theorem Matroid.Indep.cardinalMk_le_basis' - theorem Matroid.Indep.cardinalMk_le_basis'_of_finitary + theorem Matroid.Indep.cardinalMk_le_basis - theorem Matroid.Indep.cardinalMk_le_basis_of_finitary + theorem Matroid.Indep.cardinalMk_le_cRk_of_subset + theorem Matroid.cRank_le_iff + theorem Matroid.cRank_restrict + theorem Matroid.cRk_closure + theorem Matroid.cRk_closure_congr + theorem Matroid.cRk_comap + theorem Matroid.cRk_comap_lift + theorem Matroid.cRk_ground + theorem Matroid.cRk_insert_closure_eq + theorem Matroid.cRk_inter_add_cRk_union_le + theorem Matroid.cRk_inter_ground + theorem Matroid.cRk_le_cardinalMk + theorem Matroid.cRk_le_iff + theorem Matroid.cRk_le_of_subset + theorem Matroid.cRk_map_eq + theorem Matroid.cRk_map_image + theorem Matroid.cRk_map_image_lift + theorem Matroid.cRk_mono + theorem Matroid.cRk_restrict + theorem Matroid.cRk_restrict_subset + theorem Matroid.cRk_union_closure_eq + theorem Matroid.cRk_union_closure_left_eq + theorem Matroid.cRk_union_closure_right_eq 2025-01-27 22:45:27 31612cb feat(Algebra): `Pi.single_induction` (#21141) From "Formalizing the Bruhat-Tits tree" ESTIMATED CHANGES Modified Mathlib/Algebra/BigOperators/Pi.lean + theorem Pi.mulSingle_induction + theorem Pi.single_induction 2025-01-27 20:28:11 994a62c chore(BigOperators/Fin): golf a proof (#21131) Cherry-picked from #21112 ESTIMATED CHANGES Modified Mathlib/Algebra/BigOperators/Fin.lean 2025-01-27 19:34:51 8a5a88e feat: generalize tangent cone lemmas to TVS (#20859) Without any changes to the proofs, these lemmas do not need a normed space. ESTIMATED CHANGES Modified Mathlib/Analysis/Calculus/TangentCone.lean 2025-01-27 18:22:27 b4e8a66 feat(CategoryTheory): `Comma.snd L R` is final if `R` is final and domains are filtered (#21136) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Comma/Final.lean - theorem CategoryTheory.Comma.isFiltered_of_final 2025-01-27 17:00:00 0a8db06 refactor: unapply matrix lemmas (#21091) These are slightly more convenient expressed in terms of vector operations. `ext; simp` can always be used to restore them to the applied versions. ESTIMATED CHANGES Modified Mathlib/Data/Matrix/Mul.lean +/- theorem Matrix.mulVec_one + theorem Matrix.one_vecMul - theorem Matrix.vec_one_mul Modified Mathlib/LinearAlgebra/Matrix/Charpoly/LinearMap.lean Modified Mathlib/LinearAlgebra/Matrix/Hermitian.lean Modified Mathlib/LinearAlgebra/Matrix/PosDef.lean Modified Mathlib/LinearAlgebra/Matrix/Spectrum.lean + theorem Matrix.IsHermitian.eigenvectorUnitary_transpose_apply Modified Mathlib/LinearAlgebra/Matrix/ToLin.lean 2025-01-27 16:24:07 d7b266a chore(Algebra/Category): `erw` -> `rw` (#21130) My script found one `erw` call that could become a `rw`. (This can remain `rw` on #21125 too.) ESTIMATED CHANGES Modified Mathlib/Algebra/Category/ModuleCat/ChangeOfRings.lean 2025-01-27 16:24:05 02552f9 feat(CategoryTheory): filteredness of Comma catgories given finality of one of the functors (#21128) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Comma/Final.lean + theorem CategoryTheory.Comma.isCofiltered_of_initial + theorem CategoryTheory.Comma.isFiltered_of_final +/- theorem CategoryTheory.Comma.map_final Modified Mathlib/CategoryTheory/Comma/StructuredArrow/CommaMap.lean 2025-01-27 16:24:04 c6ea3e1 feat(Algebra/Category): `ConcreteCategory` instance for `ModuleCat` (#21125) This is a step towards a concrete category redesign, as outlined in this Zulip post: https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Concrete.20category.20class.20redesign/near/493903980 This PR adds a `ConcreteCategory` instance for `ModuleCat`. It also replaces the `Hom.hom` structure projection with an alias for `ConcreteCategory.hom`. Sadly `ModuleCat.restrictScalars` and `PresheafOfModules` do not appreciate subtle changes in elaboration/defeq, and quite a few declarations need subtle fixes. Maybe a more structural fix exists? I have not tried to look for code that can be cleaned up now, only at what broke. I want to get started on cleanup when the other concrete category instances are in. ESTIMATED CHANGES Modified Mathlib/Algebra/Category/Grp/AB.lean Modified Mathlib/Algebra/Category/Grp/LargeColimits.lean Modified Mathlib/Algebra/Category/ModuleCat/Basic.lean + def ModuleCat.Hom.Simps.hom Modified Mathlib/Algebra/Category/ModuleCat/Biproducts.lean Modified Mathlib/Algebra/Category/ModuleCat/ChangeOfRings.lean Modified Mathlib/Algebra/Category/ModuleCat/Differentials/Presheaf.lean Modified Mathlib/Algebra/Category/ModuleCat/Limits.lean Modified Mathlib/Algebra/Category/ModuleCat/Monoidal/Basic.lean +/- theorem ModuleCat.MonoidalCategory.tensor_ext Modified Mathlib/Algebra/Category/ModuleCat/Presheaf/Monoidal.lean Modified Mathlib/Algebra/Category/ModuleCat/Presheaf/Pushforward.lean Modified Mathlib/Algebra/Category/ModuleCat/Products.lean Modified Mathlib/Algebra/Category/ModuleCat/Subobject.lean Modified Mathlib/Algebra/Homology/ConcreteCategory.lean Modified Mathlib/Algebra/Homology/ShortComplex/Ab.lean Modified Mathlib/Algebra/Homology/ShortComplex/ConcreteCategory.lean Modified Mathlib/CategoryTheory/Limits/ConcreteCategory/WithAlgebraicStructures.lean Modified Mathlib/RepresentationTheory/GroupCohomology/Basic.lean Modified Mathlib/RepresentationTheory/GroupCohomology/LowDegree.lean Modified Mathlib/RepresentationTheory/GroupCohomology/Resolution.lean Modified Mathlib/RepresentationTheory/Rep.lean Modified Mathlib/RingTheory/Coalgebra/TensorProduct.lean 2025-01-27 15:35:51 02a6cbc feat: PSum of finite sorts is finite (#20285) ESTIMATED CHANGES Modified Mathlib/Data/Finite/Sum.lean + theorem Finite.psum_left + theorem Finite.psum_right Modified Mathlib/Data/Sum/Basic.lean + theorem PSum.inl_injective + theorem PSum.inr_injective 2025-01-27 14:51:21 c190220 feat: inequality on the integral of a convex function of a RN derivative (#21093) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/MeasureTheory/Decomposition/IntegralRNDeriv.lean + theorem MeasureTheory.le_integral_rnDeriv_of_ac + theorem MeasureTheory.mul_le_integral_rnDeriv_of_ac 2025-01-27 14:51:20 cb7d162 feat: `(v +ᵥ s) -ᵥ (v +ᵥ t) = s -ᵥ t` (#21058) From PFR ESTIMATED CHANGES Modified Mathlib/Algebra/AddTorsor.lean + theorem Set.vadd_set_vsub_vadd_set 2025-01-27 14:51:19 ace1a06 chore: rename the fact that `(∀ a < a₁, a ≤ a₂) ↔ a₁ ≤ a₂` in a dense order (#20317) I found those lemma names hard to find, especially because they didn't contain `_of_dense` or didn't contain `lt`. Moves: * `le_of_forall_le_of_dense` → `le_of_forall_gt_imp_ge_of_dense` * `le_of_forall_ge_of_dense` → `le_of_forall_lt_imp_le_of_dense` * `forall_lt_le_iff` → `forall_lt_imp_le_iff_le_of_dense` * `forall_gt_ge_iff` → `forall_gt_imp_ge_iff_le_of_dense` * `eq_of_le_of_forall_le_of_dense` → `eq_of_le_of_forall_lt_imp_le_of_dense` * `eq_of_le_of_forall_ge_of_dense` → `eq_of_le_of_forall_gt_imp_ge_of_dense` ESTIMATED CHANGES Modified Mathlib/Algebra/Order/CauSeq/Basic.lean Modified Mathlib/Algebra/Order/Field/Basic.lean Modified Mathlib/Algebra/Order/Group/DenselyOrdered.lean Modified Mathlib/Algebra/Order/Monoid/Unbundled/ExistsOfLE.lean Modified Mathlib/Analysis/Complex/CauchyIntegral.lean Modified Mathlib/Analysis/Complex/Liouville.lean Modified Mathlib/Analysis/Complex/PhragmenLindelof.lean Modified Mathlib/Analysis/LocallyConvex/Polar.lean Modified Mathlib/Analysis/Normed/Field/Ultra.lean Modified Mathlib/Analysis/Normed/Module/Dual.lean Modified Mathlib/Data/ENNReal/Inv.lean Modified Mathlib/Data/NNReal/Defs.lean Modified Mathlib/Data/Real/Archimedean.lean Modified Mathlib/Data/Real/EReal.lean Modified Mathlib/MeasureTheory/Covering/Vitali.lean Modified Mathlib/MeasureTheory/Measure/Hausdorff.lean Modified Mathlib/NumberTheory/ModularForms/QExpansion.lean Modified Mathlib/Order/Basic.lean - theorem eq_of_le_of_forall_ge_of_dense + theorem eq_of_le_of_forall_gt_imp_ge_of_dense - theorem eq_of_le_of_forall_le_of_dense + theorem eq_of_le_of_forall_lt_imp_le_of_dense - theorem forall_gt_ge_iff + theorem forall_gt_imp_ge_iff_le_of_dense + theorem forall_lt_imp_le_iff_le_of_dense - theorem forall_lt_le_iff - theorem le_of_forall_ge_of_dense + theorem le_of_forall_gt_imp_ge_of_dense - theorem le_of_forall_le_of_dense + theorem le_of_forall_lt_imp_le_of_dense Modified Mathlib/Order/Bounds/Basic.lean Modified Mathlib/Order/WithBot.lean Modified Mathlib/Topology/EMetricSpace/Defs.lean Modified Mathlib/Topology/MetricSpace/Defs.lean Modified Mathlib/Topology/MetricSpace/GromovHausdorff.lean Modified Mathlib/Topology/MetricSpace/GromovHausdorffRealized.lean Modified Mathlib/Topology/MetricSpace/HausdorffDimension.lean Modified Mathlib/Topology/MetricSpace/Pseudo/Lemmas.lean 2025-01-27 14:51:17 6fd88b1 feat: a `RelHom` preserves directedness (#20080) If $a : \iota \to \alpha$ is directed with respect to $r$, and $f$ is a `RelHom r s` then $f \circ a$ is directed with respect to $s$. Add a `DirectedOn` version. ESTIMATED CHANGES Modified Mathlib/Order/RelIso/Set.lean + theorem RelHomClass.directed + theorem RelHomClass.directedOn 2025-01-27 14:51:16 da67df3 feat(Combinatorics/SimpleGraph): add definitions and theorems about the coloring of sum graphs (#18677) ESTIMATED CHANGES Modified Mathlib/Combinatorics/SimpleGraph/Sum.lean + theorem SimpleGraph.Colorable.of_sum_left + theorem SimpleGraph.Colorable.of_sum_right + theorem SimpleGraph.Colorable.sum_max + def SimpleGraph.Coloring.sum + def SimpleGraph.Coloring.sumEquiv + def SimpleGraph.Coloring.sumFin + def SimpleGraph.Coloring.sumLeft + theorem SimpleGraph.Coloring.sumLeft_sum + def SimpleGraph.Coloring.sumRight + theorem SimpleGraph.Coloring.sumRight_sum + theorem SimpleGraph.Coloring.sum_sumLeft_sumRight + theorem SimpleGraph.chromaticNumber_le_sum_left + theorem SimpleGraph.chromaticNumber_le_sum_right + theorem SimpleGraph.chromaticNumber_sum + theorem SimpleGraph.colorable_sum 2025-01-27 14:13:37 12422ef chore(Data/Matrix/PEquiv): clean up names (#21108) This renames and deprecates: * `PEquiv.mul_matrix_apply` -> `PEquiv.toMatrix_mul_apply` * `PEquiv.matrix_mul_apply` -> `PEquiv.mul_toMatrix_apply` * `PEquiv.toPEquiv_mul_matrix` -> `PEquiv.toMatrix_toPEquiv_mul` * `PEquiv.mul_toPEquiv_toMatrix` -> `PEquiv.mul_toMatrix_toPEquiv` * `PEquiv.equiv_toPEquiv_toMatrix` -> `PEquiv.toMatrix_toPEquiv_eq` Also adds two more convenience lemmas, and removes an unused `classical` tactic. ESTIMATED CHANGES Modified Mathlib/Data/Matrix/PEquiv.lean - theorem PEquiv.equiv_toPEquiv_toMatrix - theorem PEquiv.matrix_mul_apply - theorem PEquiv.mul_matrix_apply + theorem PEquiv.mul_toMatrix_apply + theorem PEquiv.mul_toMatrix_toPEquiv - theorem PEquiv.mul_toPEquiv_toMatrix + theorem PEquiv.toMatrix_mul_apply + theorem PEquiv.toMatrix_toPEquiv_apply + theorem PEquiv.toMatrix_toPEquiv_eq + theorem PEquiv.toMatrix_toPEquiv_mul - theorem PEquiv.toPEquiv_mul_matrix + theorem PEquiv.transpose_toMatrix_toPEquiv_apply Modified Mathlib/Data/PEquiv.lean Modified Mathlib/LinearAlgebra/Matrix/Permutation.lean 2025-01-27 14:13:36 ed60c9d feat(Algebra/Category): `ConcreteCategory` instances for rings (#20815) This is a step towards a concrete category redesign, as outlined in this Zulip post: https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Concrete.20category.20class.20redesign/near/493903980 This PR adds a `ConcreteCategory` instance for the categories of rings: `SemiRingCat`, `RingCat`, `CommSemiRingCat` and `CommRingCat`. It also replaces the `Hom.hom` structure projection with an alias for `ConcreteCategory.hom`. The latter requires a few fixes downstream where things get mistakenly unfolded (especially involving `ModuleCat.restrictScalars`) or where `rw` doesn't see through the definitional equality `ConcreteCategory.hom (ConcreteCategory.ofHom f) = f`. Finally, a few places where the proof works around the old `forget` <-> `FunLike` mismatch, and needs updating. I have not tried to look for code that can be cleaned up now, only at what broke. I want to get started on cleanup when the other concrete category instances are in. ESTIMATED CHANGES Modified Mathlib/Algebra/Category/ModuleCat/Differentials/Presheaf.lean Modified Mathlib/Algebra/Category/ModuleCat/Presheaf.lean Modified Mathlib/Algebra/Category/ModuleCat/Presheaf/Sheafify.lean Modified Mathlib/Algebra/Category/Ring/Basic.lean + def CommRingCat.Hom.Simps.hom +/- structure CommRingCat.Hom + def CommSemiRingCat.Hom.Simps.hom +/- structure CommSemiRingCat.Hom + def RingCat.Hom.Simps.hom +/- structure RingCat.Hom + def SemiRingCat.Hom.Simps.hom +/- structure SemiRingCat.Hom Modified Mathlib/AlgebraicGeometry/AffineScheme.lean Modified Mathlib/AlgebraicGeometry/AffineSpace.lean Modified Mathlib/AlgebraicGeometry/Cover/MorphismProperty.lean Modified Mathlib/AlgebraicGeometry/GammaSpecAdjunction.lean Modified Mathlib/AlgebraicGeometry/Gluing.lean Modified Mathlib/AlgebraicGeometry/Morphisms/RingHomProperties.lean Modified Mathlib/AlgebraicGeometry/ProjectiveSpectrum/Basic.lean Modified Mathlib/AlgebraicGeometry/Spec.lean Modified Mathlib/AlgebraicGeometry/StructureSheaf.lean Modified Mathlib/Geometry/RingedSpace/LocallyRingedSpace/HasColimits.lean Modified Mathlib/Geometry/RingedSpace/LocallyRingedSpace/ResidueField.lean Modified Mathlib/Geometry/RingedSpace/PresheafedSpace/Gluing.lean Modified Mathlib/RingTheory/RingHomProperties.lean 2025-01-27 14:13:35 b849359 feat: define Descriptive.Tree (#18763) 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 ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Data/SetLike/Basic.lean Added Mathlib/Order/CompleteLattice/SetLike.lean + theorem CompleteSublattice.ext + theorem CompleteSublattice.mem_iInf + theorem CompleteSublattice.mem_iSup + theorem CompleteSublattice.mem_inf + theorem CompleteSublattice.mem_mk + theorem CompleteSublattice.mem_sInf + theorem CompleteSublattice.mem_sSup + theorem CompleteSublattice.mem_subtype + theorem CompleteSublattice.mem_sup + theorem CompleteSublattice.mem_top + theorem CompleteSublattice.not_mem_bot + theorem Sublattice.ext_mem + theorem Sublattice.mem_subtype + theorem Sublattice.setLike_mem_coe + theorem Sublattice.setLike_mem_inf + theorem Sublattice.setLike_mem_mk + theorem Sublattice.setLike_mem_sup Added Mathlib/SetTheory/Descriptive/Tree.lean + theorem Descriptive.mem_of_append + theorem Descriptive.mem_of_prefix + def Descriptive.tree + theorem Descriptive.tree_eq_bot 2025-01-27 13:29:48 e779c77 chore(Data/Complex/Exponential): split trig functions to new file (#21075) This PR splits Data/Complex/Exponential.lean into a new Trigonometric.lean file, addressing an instance of a long file linter trigger. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Analysis/Complex/Basic.lean Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Chebyshev.lean Modified Mathlib/Data/Complex/Exponential.lean - theorem Complex.abs_cos_add_sin_mul_I - theorem Complex.abs_exp - theorem Complex.abs_exp_eq_iff_re_eq - theorem Complex.abs_exp_ofReal_mul_I - def Complex.cos - theorem Complex.cos_add - theorem Complex.cos_add_cos - theorem Complex.cos_add_mul_I - theorem Complex.cos_add_sin_I - theorem Complex.cos_add_sin_mul_I_pow - theorem Complex.cos_conj - theorem Complex.cos_eq - theorem Complex.cos_mul_I - theorem Complex.cos_neg - theorem Complex.cos_ofReal_im - theorem Complex.cos_ofReal_re - theorem Complex.cos_sq' - theorem Complex.cos_sq - theorem Complex.cos_sq_add_sin_sq - theorem Complex.cos_sub - theorem Complex.cos_sub_cos - theorem Complex.cos_sub_sin_I - theorem Complex.cos_three_mul - theorem Complex.cos_two_mul' - theorem Complex.cos_two_mul - theorem Complex.cos_zero - def Complex.cosh - theorem Complex.cosh_add - theorem Complex.cosh_add_sinh - theorem Complex.cosh_conj - theorem Complex.cosh_mul_I - theorem Complex.cosh_neg - theorem Complex.cosh_ofReal_im - theorem Complex.cosh_ofReal_re - theorem Complex.cosh_sq - theorem Complex.cosh_sq_sub_sinh_sq - theorem Complex.cosh_sub - theorem Complex.cosh_sub_sinh - theorem Complex.cosh_three_mul - theorem Complex.cosh_two_mul - theorem Complex.cosh_zero - def Complex.cot - theorem Complex.cot_conj - theorem Complex.cot_eq_cos_div_sin - theorem Complex.exp_add_mul_I - theorem Complex.exp_eq_exp_re_mul_sin_add_cos - theorem Complex.exp_im - theorem Complex.exp_mul_I - theorem Complex.exp_ofReal_mul_I_im - theorem Complex.exp_ofReal_mul_I_re - theorem Complex.exp_re - theorem Complex.exp_sub_cosh - theorem Complex.exp_sub_sinh - theorem Complex.inv_one_add_tan_sq - theorem Complex.ofReal_cos - theorem Complex.ofReal_cos_ofReal_re - theorem Complex.ofReal_cosh - theorem Complex.ofReal_cosh_ofReal_re - theorem Complex.ofReal_cot - theorem Complex.ofReal_cot_ofReal_re - theorem Complex.ofReal_sin - theorem Complex.ofReal_sin_ofReal_re - theorem Complex.ofReal_sinh - theorem Complex.ofReal_sinh_ofReal_re - theorem Complex.ofReal_tan - theorem Complex.ofReal_tan_ofReal_re - theorem Complex.ofReal_tanh - theorem Complex.ofReal_tanh_ofReal_re - def Complex.sin - theorem Complex.sin_add - theorem Complex.sin_add_mul_I - theorem Complex.sin_add_sin - theorem Complex.sin_conj - theorem Complex.sin_eq - theorem Complex.sin_mul_I - theorem Complex.sin_neg - theorem Complex.sin_ofReal_im - theorem Complex.sin_ofReal_re - theorem Complex.sin_sq - theorem Complex.sin_sq_add_cos_sq - theorem Complex.sin_sub - theorem Complex.sin_sub_sin - theorem Complex.sin_three_mul - theorem Complex.sin_two_mul - theorem Complex.sin_zero - def Complex.sinh - theorem Complex.sinh_add - theorem Complex.sinh_add_cosh - theorem Complex.sinh_conj - theorem Complex.sinh_mul_I - theorem Complex.sinh_neg - theorem Complex.sinh_ofReal_im - theorem Complex.sinh_ofReal_re - theorem Complex.sinh_sq - theorem Complex.sinh_sub - theorem Complex.sinh_sub_cosh - theorem Complex.sinh_three_mul - theorem Complex.sinh_two_mul - theorem Complex.sinh_zero - def Complex.tan - theorem Complex.tan_conj - theorem Complex.tan_eq_sin_div_cos - theorem Complex.tan_mul_I - theorem Complex.tan_mul_cos - theorem Complex.tan_neg - theorem Complex.tan_ofReal_im - theorem Complex.tan_ofReal_re - theorem Complex.tan_sq_div_one_add_tan_sq - theorem Complex.tan_zero - def Complex.tanh - theorem Complex.tanh_conj - theorem Complex.tanh_eq_sinh_div_cosh - theorem Complex.tanh_mul_I - theorem Complex.tanh_neg - theorem Complex.tanh_ofReal_im - theorem Complex.tanh_ofReal_re - theorem Complex.tanh_zero - theorem Complex.two_cos - theorem Complex.two_cosh - theorem Complex.two_sin - theorem Complex.two_sinh - def Mathlib.Meta.Positivity.evalCosh - theorem Real.abs_cos_eq_sqrt_one_sub_sin_sq - theorem Real.abs_cos_le_one - theorem Real.abs_sin_eq_sqrt_one_sub_cos_sq - theorem Real.abs_sin_le_one - theorem Real.cos_abs - theorem Real.cos_bound - theorem Real.cos_le_one - theorem Real.cos_neg - theorem Real.cos_one_le - theorem Real.cos_one_pos - theorem Real.cos_pos_of_le_one - theorem Real.cos_sq' - theorem Real.cos_sq_add_sin_sq - theorem Real.cos_sq_le_one - theorem Real.cos_sub - theorem Real.cos_two_neg - theorem Real.cos_zero - theorem Real.cosh_abs - theorem Real.cosh_add_sinh - theorem Real.cosh_eq - theorem Real.cosh_neg - theorem Real.cosh_pos - theorem Real.cosh_sq' - theorem Real.cosh_sq_sub_sinh_sq - theorem Real.cosh_sub - theorem Real.cosh_sub_sinh - theorem Real.cosh_zero - theorem Real.exp_sub_cosh - theorem Real.exp_sub_sinh - theorem Real.inv_one_add_tan_sq - theorem Real.inv_sqrt_one_add_tan_sq - theorem Real.neg_one_le_cos - theorem Real.neg_one_le_sin - theorem Real.sin_bound - theorem Real.sin_le_one - theorem Real.sin_neg - theorem Real.sin_pos_of_pos_of_le_one - theorem Real.sin_pos_of_pos_of_le_two - theorem Real.sin_sq - theorem Real.sin_sq_eq_half_sub - theorem Real.sin_sq_le_one - theorem Real.sin_sub - theorem Real.sin_zero - theorem Real.sinh_add_cosh - theorem Real.sinh_lt_cosh - theorem Real.sinh_neg - theorem Real.sinh_sub - theorem Real.sinh_sub_cosh - theorem Real.sinh_zero - theorem Real.tan_div_sqrt_one_add_tan_sq - theorem Real.tan_mul_cos - theorem Real.tan_neg - theorem Real.tan_sq_div_one_add_tan_sq - theorem Real.tan_zero - theorem Real.tanh_neg - theorem Real.tanh_zero - theorem Real.two_mul_cos_mul_cos - theorem Real.two_mul_sin_mul_cos - theorem Real.two_mul_sin_mul_sin Added Mathlib/Data/Complex/Trigonometric.lean + theorem Complex.abs_cos_add_sin_mul_I + theorem Complex.abs_exp + theorem Complex.abs_exp_eq_iff_re_eq + theorem Complex.abs_exp_ofReal_mul_I + def Complex.cos + theorem Complex.cos_add + theorem Complex.cos_add_cos + theorem Complex.cos_add_mul_I + theorem Complex.cos_add_sin_I + theorem Complex.cos_add_sin_mul_I_pow + theorem Complex.cos_conj + theorem Complex.cos_eq + theorem Complex.cos_mul_I + theorem Complex.cos_neg + theorem Complex.cos_ofReal_im + theorem Complex.cos_ofReal_re + theorem Complex.cos_sq' + theorem Complex.cos_sq + theorem Complex.cos_sq_add_sin_sq + theorem Complex.cos_sub + theorem Complex.cos_sub_cos + theorem Complex.cos_sub_sin_I + theorem Complex.cos_three_mul + theorem Complex.cos_two_mul' + theorem Complex.cos_two_mul + theorem Complex.cos_zero + def Complex.cosh + theorem Complex.cosh_add + theorem Complex.cosh_add_sinh + theorem Complex.cosh_conj + theorem Complex.cosh_mul_I + theorem Complex.cosh_neg + theorem Complex.cosh_ofReal_im + theorem Complex.cosh_ofReal_re + theorem Complex.cosh_sq + theorem Complex.cosh_sq_sub_sinh_sq + theorem Complex.cosh_sub + theorem Complex.cosh_sub_sinh + theorem Complex.cosh_three_mul + theorem Complex.cosh_two_mul + theorem Complex.cosh_zero + def Complex.cot + theorem Complex.cot_conj + theorem Complex.cot_eq_cos_div_sin + theorem Complex.exp_add_mul_I + theorem Complex.exp_eq_exp_re_mul_sin_add_cos + theorem Complex.exp_im + theorem Complex.exp_mul_I + theorem Complex.exp_ofReal_mul_I_im + theorem Complex.exp_ofReal_mul_I_re + theorem Complex.exp_re + theorem Complex.exp_sub_cosh + theorem Complex.exp_sub_sinh + theorem Complex.inv_one_add_tan_sq + theorem Complex.ofReal_cos + theorem Complex.ofReal_cos_ofReal_re + theorem Complex.ofReal_cosh + theorem Complex.ofReal_cosh_ofReal_re + theorem Complex.ofReal_cot + theorem Complex.ofReal_cot_ofReal_re + theorem Complex.ofReal_sin + theorem Complex.ofReal_sin_ofReal_re + theorem Complex.ofReal_sinh + theorem Complex.ofReal_sinh_ofReal_re + theorem Complex.ofReal_tan + theorem Complex.ofReal_tan_ofReal_re + theorem Complex.ofReal_tanh + theorem Complex.ofReal_tanh_ofReal_re + def Complex.sin + theorem Complex.sin_add + theorem Complex.sin_add_mul_I + theorem Complex.sin_add_sin + theorem Complex.sin_conj + theorem Complex.sin_eq + theorem Complex.sin_mul_I + theorem Complex.sin_neg + theorem Complex.sin_ofReal_im + theorem Complex.sin_ofReal_re + theorem Complex.sin_sq + theorem Complex.sin_sq_add_cos_sq + theorem Complex.sin_sub + theorem Complex.sin_sub_sin + theorem Complex.sin_three_mul + theorem Complex.sin_two_mul + theorem Complex.sin_zero + def Complex.sinh + theorem Complex.sinh_add + theorem Complex.sinh_add_cosh + theorem Complex.sinh_conj + theorem Complex.sinh_mul_I + theorem Complex.sinh_neg + theorem Complex.sinh_ofReal_im + theorem Complex.sinh_ofReal_re + theorem Complex.sinh_sq + theorem Complex.sinh_sub + theorem Complex.sinh_sub_cosh + theorem Complex.sinh_three_mul + theorem Complex.sinh_two_mul + theorem Complex.sinh_zero + def Complex.tan + theorem Complex.tan_conj + theorem Complex.tan_eq_sin_div_cos + theorem Complex.tan_mul_I + theorem Complex.tan_mul_cos + theorem Complex.tan_neg + theorem Complex.tan_ofReal_im + theorem Complex.tan_ofReal_re + theorem Complex.tan_sq_div_one_add_tan_sq + theorem Complex.tan_zero + def Complex.tanh + theorem Complex.tanh_conj + theorem Complex.tanh_eq_sinh_div_cosh + theorem Complex.tanh_mul_I + theorem Complex.tanh_neg + theorem Complex.tanh_ofReal_im + theorem Complex.tanh_ofReal_re + theorem Complex.tanh_zero + theorem Complex.two_cos + theorem Complex.two_cosh + theorem Complex.two_sin + theorem Complex.two_sinh + def Mathlib.Meta.Positivity.evalCosh + theorem Real.abs_cos_eq_sqrt_one_sub_sin_sq + theorem Real.abs_cos_le_one + theorem Real.abs_sin_eq_sqrt_one_sub_cos_sq + theorem Real.abs_sin_le_one + theorem Real.cos_abs + theorem Real.cos_bound + theorem Real.cos_le_one + theorem Real.cos_neg + theorem Real.cos_one_le + theorem Real.cos_one_pos + theorem Real.cos_pos_of_le_one + theorem Real.cos_sq' + theorem Real.cos_sq_add_sin_sq + theorem Real.cos_sq_le_one + theorem Real.cos_sub + theorem Real.cos_two_neg + theorem Real.cos_zero + theorem Real.cosh_abs + theorem Real.cosh_add_sinh + theorem Real.cosh_eq + theorem Real.cosh_neg + theorem Real.cosh_pos + theorem Real.cosh_sq' + theorem Real.cosh_sq_sub_sinh_sq + theorem Real.cosh_sub + theorem Real.cosh_sub_sinh + theorem Real.cosh_zero + theorem Real.exp_sub_cosh + theorem Real.exp_sub_sinh + theorem Real.inv_one_add_tan_sq + theorem Real.inv_sqrt_one_add_tan_sq + theorem Real.neg_one_le_cos + theorem Real.neg_one_le_sin + theorem Real.sin_bound + theorem Real.sin_le_one + theorem Real.sin_neg + theorem Real.sin_pos_of_pos_of_le_one + theorem Real.sin_pos_of_pos_of_le_two + theorem Real.sin_sq + theorem Real.sin_sq_eq_half_sub + theorem Real.sin_sq_le_one + theorem Real.sin_sub + theorem Real.sin_zero + theorem Real.sinh_add_cosh + theorem Real.sinh_lt_cosh + theorem Real.sinh_neg + theorem Real.sinh_sub + theorem Real.sinh_sub_cosh + theorem Real.sinh_zero + theorem Real.tan_div_sqrt_one_add_tan_sq + theorem Real.tan_mul_cos + theorem Real.tan_neg + theorem Real.tan_sq_div_one_add_tan_sq + theorem Real.tan_zero + theorem Real.tanh_neg + theorem Real.tanh_zero + theorem Real.two_mul_cos_mul_cos + theorem Real.two_mul_sin_mul_cos + theorem Real.two_mul_sin_mul_sin Modified Mathlib/Tactic/FunProp.lean Modified MathlibTest/Recall.lean Modified MathlibTest/positivity.lean 2025-01-27 13:29:47 de46196 feat(Logic/IsEmpty/Relator): empty on sides (#20319) various proofs of Left/Right/BiTotal guaranteeing emptiness when certain types are empty. ESTIMATED CHANGES Modified Mathlib/Logic/IsEmpty.lean + theorem biTotal_iff_isEmpty_left + theorem biTotal_iff_isEmpty_right + theorem leftTotal_iff_isEmpty_left + theorem rightTotal_iff_isEmpty_right 2025-01-27 12:48:50 41fd695 feat(Algebra/Category): `ConcreteCategory` instance for `AlgebraCat` (#21121) This is a step towards a concrete category redesign, as outlined in this Zulip post: https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Concrete.20category.20class.20redesign/near/493903980 This PR adds a `ConcreteCategory` instance for `AlgebraCat`. It also replaces the `Hom.hom` structure projection with an alias for `ConcreteCategory.hom`. Apparently this went perfectly well and everything stays working nicely. :) I have not tried to look for code that can be cleaned up now, only at what broke. I want to get started on cleanup when the other concrete category instances are in. ESTIMATED CHANGES Modified Mathlib/Algebra/Category/AlgebraCat/Basic.lean + def AlgebraCat.Hom.Simps.hom 2025-01-27 10:18:21 c33fe04 feat(NumberTheory/LSeries): results involving partial sums of coefficients (part 1) (#20661) We prove several results involving partial sums of coefficients (or norm of coefficients) of L-series. The two main results of this PR are: - `LSeriesSummable_of_sum_norm_bigO`: for `f : ℕ → ℂ`, if the partial sums `∑ k ∈ Icc 1 n, ‖f k‖` are `O(n ^ r)` for some real `0 ≤ r`, then the L-series `Lseries f` converges at `s : ℂ` for all `s` such that `r < s.re`. - `LSeries_eq_mul_integral` : for `f : ℕ → ℂ`, if the partial sums `∑ k ∈ Icc 1 n, f k` are `O(n ^ r)` for some real `0 ≤ r` and the L-series `LSeries f` converges at `s : ℂ` with `r < s.re`, then `LSeries f s = s * ∫ t in Set.Ioi 1, (∑ k ∈ Icc 1 ⌊t⌋₊, f k) * t ^ (- (s + 1))`. More results will be proved in #20660 ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Analysis/Asymptotics/SpecificAsymptotics.lean + theorem Asymptotics.isEquivalent_nat_ceil + theorem Asymptotics.isEquivalent_nat_floor Modified Mathlib/Analysis/SpecialFunctions/ImproperIntegrals.lean + theorem integrableAtFilter_rpow_atTop_iff + theorem integrableOn_Ioi_deriv_norm_ofReal_cpow + theorem integrableOn_Ioi_deriv_ofReal_cpow Modified Mathlib/Analysis/SpecialFunctions/Pow/Complex.lean + theorem Complex.cpow_ne_zero_iff + theorem Complex.cpow_ne_zero_iff_of_exponent_ne_zero Modified Mathlib/Analysis/SpecialFunctions/Pow/Deriv.lean + theorem deriv_norm_ofReal_cpow Modified Mathlib/Analysis/SpecialFunctions/Pow/Real.lean + theorem Asymptotics.IsBigO.mul_atTop_rpow_natCast_of_isBigO_rpow + theorem Asymptotics.IsBigO.mul_atTop_rpow_of_isBigO_rpow + theorem Complex.norm_ofReal_cpow_eventually_eq_atTop Modified Mathlib/Data/Complex/Abs.lean + theorem Complex.ne_zero_of_re_pos + theorem Complex.re_neg_ne_zero_of_re_pos Modified Mathlib/NumberTheory/AbelSummation.lean + theorem integrableOn_mul_sum_Icc + theorem locallyIntegrableOn_mul_sum_Icc Modified Mathlib/NumberTheory/LSeries/Basic.lean + theorem LSeries.term_def₀ Added Mathlib/NumberTheory/LSeries/SumCoeff.lean + theorem LSeriesSummable_of_sum_norm_bigO + theorem LSeriesSummable_of_sum_norm_bigO_and_nonneg + theorem LSeries_eq_mul_integral' + theorem LSeries_eq_mul_integral + theorem LSeries_eq_mul_integral_of_nonneg Modified Mathlib/Order/Interval/Finset/Nat.lean + theorem Nat.range_succ_eq_Icc_zero 2025-01-27 10:06:23 2bce15b feat(RingTheory/LaurentSeries): add algebraEquiv (#21004) Define an `Algebra K RatFuncAdicCompl K` instance on `RatFuncAdicCompl K` and promote the already defined ring equivalences to algebra equivalences `LaurentSeriesAlgEquiv : K⸨X⸩ ≃ₐ[K] RatFuncAdicCompl K` and `K⟦X⟧ ≃ₐ[K] (idealX K).adicCompletionIntegers (RatFunc K)`. TODO : update docstring (on top of file) ESTIMATED CHANGES Modified Mathlib/RingTheory/DedekindDomain/AdicValuation.lean Modified Mathlib/RingTheory/LaurentSeries.lean + def LaurentSeries.LaurentSeriesAlgEquiv + theorem LaurentSeries.LaurentSeriesRingEquiv_def + theorem LaurentSeries.LaurentSeriesRingEquiv_mem_valuationSubring + theorem LaurentSeries.algebraMap_C_mem_adicCompletionIntegers + theorem LaurentSeries.algebraMap_apply + def LaurentSeries.powerSeriesAlgEquiv + theorem LaurentSeries.powerSeriesEquivSubring_apply + theorem LaurentSeries.powerSeriesEquivSubring_coe_apply + theorem LaurentSeries.powerSeriesRingEquiv_coe_apply 2025-01-27 09:49:18 d93a176 chore(SetTheory/Game/Impartial): golf two proofs (#21074) ESTIMATED CHANGES Modified Mathlib/SetTheory/Game/Impartial.lean 2025-01-27 09:49:16 d17e5f6 feat(CategoryTheory/Subpresheaf): preimage/image/range of subpresheaves (#21047) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Sites/LocallyInjective.lean Modified Mathlib/CategoryTheory/Sites/LocallySurjective.lean Modified Mathlib/CategoryTheory/Sites/Subsheaf.lean + def CategoryTheory.Sheaf.image + def CategoryTheory.Sheaf.imageι + def CategoryTheory.Sheaf.toImage + theorem CategoryTheory.Sheaf.toImage_ι + def CategoryTheory.Subpresheaf.toRangeSheafify - def CategoryTheory.imageSheaf - def CategoryTheory.imageSheafι - def CategoryTheory.toImagePresheafSheafify - def CategoryTheory.toImageSheaf - theorem CategoryTheory.toImageSheaf_ι Modified Mathlib/CategoryTheory/Subpresheaf/Basic.lean + theorem CategoryTheory.Subpresheaf.le_def Modified Mathlib/CategoryTheory/Subpresheaf/Image.lean + theorem CategoryTheory.Subpresheaf.epi_iff_range_eq_top + def CategoryTheory.Subpresheaf.fromPreimage + theorem CategoryTheory.Subpresheaf.fromPreimage_ι + def CategoryTheory.Subpresheaf.image + theorem CategoryTheory.Subpresheaf.image_comp + theorem CategoryTheory.Subpresheaf.image_le_iff + theorem CategoryTheory.Subpresheaf.image_top +/- def CategoryTheory.Subpresheaf.lift +/- theorem CategoryTheory.Subpresheaf.lift_ι + def CategoryTheory.Subpresheaf.preimage + theorem CategoryTheory.Subpresheaf.preimage_comp + theorem CategoryTheory.Subpresheaf.preimage_eq_top_iff + theorem CategoryTheory.Subpresheaf.preimage_id + theorem CategoryTheory.Subpresheaf.preimage_image_of_epi + def CategoryTheory.Subpresheaf.range + theorem CategoryTheory.Subpresheaf.range_comp + theorem CategoryTheory.Subpresheaf.range_comp_le + theorem CategoryTheory.Subpresheaf.range_id + theorem CategoryTheory.Subpresheaf.range_toRange + theorem CategoryTheory.Subpresheaf.range_ι + def CategoryTheory.Subpresheaf.toRange + theorem CategoryTheory.Subpresheaf.toRange_app_val + theorem CategoryTheory.Subpresheaf.toRange_ι - def CategoryTheory.imagePresheaf - theorem CategoryTheory.imagePresheaf_comp_le - theorem CategoryTheory.imagePresheaf_id - def CategoryTheory.toImagePresheaf - theorem CategoryTheory.toImagePresheaf_ι Modified Mathlib/CategoryTheory/Subpresheaf/Sieves.lean 2025-01-27 09:49:15 f24bf08 feat(RingTheory/IntegralClosure): `Algebra.IsIntegral` transfers via surjective homomorphisms (#21023) For a surjective `f : A →ₐ[R] B`, if `Algebra.IsIntegral R A` then `Algebra.IsIntegral R B`. ESTIMATED CHANGES Modified Mathlib/RingTheory/IntegralClosure/Algebra/Basic.lean + theorem Algebra.IsIntegral.of_surjective 2025-01-27 09:49:14 0d0f87b feat(`InformationTheory/Hamming`): Add AddGroup instances (#20994) Add missing AddGroup and NormedAddGroup instances to Hamming. ESTIMATED CHANGES Modified Mathlib/InformationTheory/Hamming.lean +/- theorem Hamming.nnnorm_eq_hammingNorm 2025-01-27 09:35:20 36e9a27 feat(RingTheory/IntegralClosure): prove `Module.Finite R (adjoin R S)` for finite set `S` of integral elements (#20970) Prove that `Algebra.adjoin R S` has finite rank over `R` when `S` is finite with elements that are all integral over `R`. Special case for singleton included. ESTIMATED CHANGES Modified Mathlib/RingTheory/IntegralClosure/IsIntegral/Basic.lean + theorem Algebra.finite_adjoin_of_finite_of_isIntegral + theorem Algebra.finite_adjoin_simple_of_isIntegral Modified Mathlib/RingTheory/IntegralClosure/IsIntegralClosure/Basic.lean 2025-01-27 06:18:48 413249c feat(RingTheory/Artinian): `IsUnit a` iff `a ∈ R⁰` for an artinian ring `R` (#21084) ESTIMATED CHANGES Modified Mathlib/RingTheory/Artinian/Ring.lean + theorem IsArtinianRing.isUnit_iff_mem_nonZeroDivisors + theorem IsArtinianRing.isUnit_of_mem_nonZeroDivisors + theorem IsArtinianRing.isUnit_submonoid_eq 2025-01-27 06:10:28 3f5ccd4 feat: separating set in the category of ind-objects (#21082) Under sufficient conditions (for example if `C` is small, preadditive and has finite coproducts) we will be able to assemble this into a separating object. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Generator/Indization.lean + theorem CategoryTheory.Ind.isSeparating_range_yoneda 2025-01-27 05:02:08 55b933a feat: derivWithin lemmas (#21092) New lemmas: `derivWithin_zero`, `derivWithin_mul_const_field`, `derivWithin_const_mul_field`. ESTIMATED CHANGES Modified Mathlib/Analysis/Calculus/Deriv/Basic.lean + theorem derivWithin_zero Modified Mathlib/Analysis/Calculus/Deriv/Mul.lean + theorem derivWithin_const_mul_field + theorem derivWithin_mul_const_field 2025-01-27 04:24:54 ff6124c chore(Fintype): golf a proof (#21113) ... by reusing an existing lemma. ESTIMATED CHANGES Modified Mathlib/Data/Fintype/Basic.lean 2025-01-27 02:33:03 a02b532 chore: golf using `funext₂` (#21106) ESTIMATED CHANGES Modified Mathlib/Order/Antisymmetrization.lean 2025-01-27 01:57:05 77d9317 chore(Algebra/Group/Submonoid/Operations): move instances to new file (#21067) Move declarations such as `Submonoid.smul` and `Submonoid.mulAction` into a new file, and shake some imports. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Group/Submonoid/MulAction.lean + theorem Submonoid.mk_smul + theorem Submonoid.smul_def Modified Mathlib/Algebra/Group/Submonoid/Operations.lean - theorem Submonoid.mk_smul - theorem Submonoid.smul_def Modified Mathlib/Algebra/Module/Submodule/Defs.lean Modified Mathlib/Algebra/Polynomial/Basic.lean Modified Mathlib/GroupTheory/GroupAction/Defs.lean Modified Mathlib/GroupTheory/MonoidLocalization/Basic.lean Modified Mathlib/GroupTheory/OreLocalization/Basic.lean Modified Mathlib/Topology/Algebra/Monoid.lean 2025-01-26 23:58:51 eec3117 doc(Algebra/BigOperators/Fin): change 'product' to 'sum' in doc-string of additivised declarations (#21101) The additivised declarations speak about sums: probably, this was a copy-paste error. ESTIMATED CHANGES Modified Mathlib/Algebra/BigOperators/Fin.lean 2025-01-26 23:20:12 7564134 doc(ComputeDegree): typos (#21095) ESTIMATED CHANGES Modified Mathlib/Tactic/ComputeDegree.lean 2025-01-26 21:04:08 1a2855b chore(GroupTheory/OrderOfElement): Use Nat.divisors (#21077) ESTIMATED CHANGES Modified Mathlib/GroupTheory/OrderOfElement.lean Modified Mathlib/GroupTheory/SpecificGroups/Cyclic.lean 2025-01-26 20:04:56 0b484e1 chore: deduplicate proof that coproduct of separating set is separator (#21081) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/CategoryTheory/Generator/Basic.lean + theorem CategoryTheory.IsSeparating.isSeparator_coproduct + theorem CategoryTheory.isSeparator_of_isColimit_cofan Deleted Mathlib/CategoryTheory/Generator/Coproduct.lean - theorem CategoryTheory.IsSeparating.isSeparator_coproduct - theorem CategoryTheory.IsSeparating.isSeparator_of_isColimit_cofan Modified Mathlib/CategoryTheory/Generator/Presheaf.lean 2025-01-26 18:51:20 d45ceb4 chore: update Mathlib dependencies 2025-01-26 (#21100) This PR updates the Mathlib dependencies. ESTIMATED CHANGES Modified lake-manifest.json 2025-01-26 18:41:40 fdcb7c6 feat: state `PEquiv.equiv_toPEquiv_toMatrix` in terms of `submatrix` (#21089) This matches the prose more closely, and also means lemmas about `submatrix` can be used. ESTIMATED CHANGES Modified Mathlib/Data/Matrix/PEquiv.lean +/- theorem PEquiv.equiv_toPEquiv_toMatrix 2025-01-26 18:07:00 e767899 feat(Algebra): `Mul/RingEquiv`s between `center` and `Module.End` (#20721) ESTIMATED CHANGES Modified Mathlib/Algebra/Category/ModuleCat/Basic.lean - def ModuleCat.endMulEquiv + def ModuleCat.endRingEquiv Modified Mathlib/Algebra/Module/Equiv/Basic.lean + def LinearEquiv.arrowCongrAddEquiv + def LinearEquiv.conjRingEquiv Modified Mathlib/Algebra/Ring/Subring/Basic.lean + def Subring.centerCongr + def Subring.centerToMulOpposite Modified Mathlib/Algebra/Ring/Subsemiring/Basic.lean + def Subsemiring.centerCongr + def Subsemiring.centerToMulOpposite Modified Mathlib/GroupTheory/Subgroup/Center.lean + def Subgroup.centerCongr + def Subgroup.centerToMulOpposite Modified Mathlib/GroupTheory/Submonoid/Center.lean + theorem MulEquivClass.apply_mem_center + theorem MulEquivClass.apply_mem_center_iff + theorem MulOpposite.op_mem_center_iff + theorem MulOpposite.unop_mem_center_iff + def Submonoid.centerCongr + def Submonoid.centerToMulOpposite + def Subsemigroup.centerCongr + def Subsemigroup.centerToMulOpposite Modified Mathlib/RepresentationTheory/Character.lean Modified Mathlib/RepresentationTheory/FDRep.lean - theorem FDRep.endMulEquiv_comp_ρ - theorem FDRep.endMulEquiv_symm_comp_ρ + theorem FDRep.endRingEquiv_comp_ρ + theorem FDRep.endRingEquiv_symm_comp_ρ Modified Mathlib/RepresentationTheory/Rep.lean Modified Mathlib/RingTheory/NonUnitalSubring/Basic.lean + def NonUnitalSubring.centerCongr + def NonUnitalSubring.centerToMulOpposite Modified Mathlib/RingTheory/NonUnitalSubsemiring/Basic.lean + def NonUnitalSubsemiring.centerCongr + def NonUnitalSubsemiring.centerToMulOpposite 2025-01-26 17:26:17 4e9e311 feat: `μ[ofNat n * f|m] =ᵐ[μ] ofNat n * μ[f|m]` (#21001) Also: * make `condExp_const` a simp lemma * rename `condExp_undef` to `condExp_of_not_integrable` (there are many ways in which `condExp` is undefined other than the function not being integrable) * specialise `eLpNorm_condExp_le` and `Memℒp.condExp` to real inner product spaces as otherwise `𝕜` is unconstrained by the return type * add a TODO From my PhD (LeanCamCombi) ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Function/ConditionalExpectation/Basic.lean + theorem MeasureTheory.condExp_ofNat + theorem MeasureTheory.condExp_of_not_integrable - theorem MeasureTheory.condExp_undef Modified Mathlib/MeasureTheory/Function/ConditionalExpectation/Indicator.lean Modified Mathlib/MeasureTheory/Function/ConditionalExpectation/Real.lean Modified Mathlib/Probability/ConditionalExpectation.lean 2025-01-26 16:12:40 a103782 chore(Tactic/Polyrith): remove polyrith dependency on Python (#17626) * Removed dependency on Python to make requests to SageMath, using curl instead * Moved API calling logic from `scripts/polyrith_sage.py` to `Tactic/Polyrith.lean` * Moved `scripts/polyrith_sage_helper.py` inline ESTIMATED CHANGES Modified Mathlib/Tactic/Polyrith.lean - def Mathlib.Tactic.Polyrith.createSageArgs +/- def Mathlib.Tactic.Polyrith.parseContext + def Mathlib.Tactic.Polyrith.runSage + def Mathlib.Tactic.Polyrith.sageCreateQuery + def Mathlib.Tactic.Polyrith.sageHelperFunctions - def Mathlib.Tactic.Polyrith.sageOutput + def Mathlib.Tactic.Polyrith.sageTypeStr Modified MathlibTest/polyrith.lean Deleted scripts/polyrith_sage.py Modified scripts/polyrith_sage_helper.py 2025-01-26 15:57:42 bf91ae4 feat: boundary of a product `M \times [x,y]` (#15893) - [x] depends on: #14972 - [x] depends on: #15892 ESTIMATED CHANGES Modified Mathlib/Geometry/Manifold/Instances/Real.lean + theorem boundary_product 2025-01-26 15:45:28 0d39cc6 feat(LinearAlgebra/ExteriorPower): the exterior powers, as functors (#18596) We define the `n`th exterior power functor, from `ModuleCat R` to itself. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Category/ModuleCat/ExteriorPower.lean + theorem ModuleCat.AlternatingMap.ext + def ModuleCat.AlternatingMap.postcomp + theorem ModuleCat.AlternatingMap.postcomp_apply + def ModuleCat.AlternatingMap + theorem ModuleCat.exteriorPower.desc_mk + theorem ModuleCat.exteriorPower.hom_ext + theorem ModuleCat.exteriorPower.map_mk + def ModuleCat.exteriorPower.mk + def ModuleCat.exteriorPower Modified Mathlib/LinearAlgebra/ExteriorPower/Basic.lean + theorem exteriorPower.alternatingMapLinearEquiv_symm_map + theorem exteriorPower.map_apply_ιMulti + theorem exteriorPower.map_comp + theorem exteriorPower.map_comp_ιMulti + theorem exteriorPower.map_id 2025-01-26 13:15:56 bc0287e feat(Order/Antisymmetrization): `AntisymmRel` lemmas (#19571) These are mostly ported from [`SetTheory.PGame.Equiv`](https://leanprover-community.github.io/mathlib4_docs/Mathlib/SetTheory/Game/PGame.html#SetTheory.PGame.Equiv). ESTIMATED CHANGES Modified Mathlib/Order/Antisymmetrization.lean + theorem AntisymmRel.antisymmRel_congr + theorem AntisymmRel.antisymmRel_congr_left + theorem AntisymmRel.antisymmRel_congr_right + theorem AntisymmRel.ge +/- theorem AntisymmRel.image + theorem AntisymmRel.le + theorem AntisymmRel.le_congr + theorem AntisymmRel.le_congr_left + theorem AntisymmRel.le_congr_right + theorem AntisymmRel.lt_congr + theorem AntisymmRel.lt_congr_left + theorem AntisymmRel.lt_congr_right + theorem AntisymmRel.rfl +/- theorem AntisymmRel.symm +/- theorem AntisymmRel.trans + theorem antisymmRel_comm +/- theorem antisymmRel_iff_eq + theorem le_iff_lt_or_antisymmRel + theorem le_of_antisymmRel_of_le + theorem le_of_le_of_antisymmRel + theorem lt_of_antisymmRel_of_lt + theorem lt_of_lt_of_antisymmRel Modified Mathlib/Order/RelClasses.lean + theorem rel_congr + theorem rel_congr_left + theorem rel_congr_right 2025-01-26 10:39:59 150682c refactor(Order/WellFounded): use `WellFoundedLT` for `argmin` (#20777) Instead of taking an explicit `WellFounded (· < ·)` argument, we can take a typeclass `WellFoundedLT` argument instead. ESTIMATED CHANGES Modified Mathlib/Analysis/Convex/Caratheodory.lean Modified Mathlib/CategoryTheory/CofilteredSystem.lean Modified Mathlib/Order/ConditionallyCompleteLattice/Basic.lean +/- theorem sInf_eq_argmin_on Modified Mathlib/Order/WellFounded.lean +/- theorem Function.argminOn_mem +/- theorem Function.argmin_le +/- theorem Function.not_lt_argmin 2025-01-26 10:01:07 feb6a5d chore: replace `right_deriv` by `rightDeriv` in lemma names (#21076) And similarly for `left_deriv`. There is no `leftDeriv` or `rightDeriv` definition (they refer to a `derivWithin` in an interval) but they have a similar role in lemma names so should be written in the same way as definitions. ESTIMATED CHANGES Modified Mathlib/Analysis/Convex/Deriv.lean + theorem ConcaveOn.leftDeriv_le_slope - theorem ConcaveOn.left_deriv_le_slope + theorem ConcaveOn.slope_le_rightDeriv - theorem ConcaveOn.slope_le_right_deriv + theorem ConvexOn.rightDeriv_le_slope - theorem ConvexOn.right_deriv_le_slope + theorem ConvexOn.slope_le_leftDeriv - theorem ConvexOn.slope_le_left_deriv + theorem StrictConcaveOn.leftDeriv_lt_slope - theorem StrictConcaveOn.left_deriv_lt_slope + theorem StrictConcaveOn.slope_lt_rightDeriv - theorem StrictConcaveOn.slope_lt_right_deriv + theorem StrictConvexOn.rightDeriv_lt_slope - theorem StrictConvexOn.right_deriv_lt_slope + theorem StrictConvexOn.slope_lt_leftDeriv - theorem StrictConvexOn.slope_lt_left_deriv 2025-01-26 07:36:53 af8c17b feat: `∀ᵐ x ∂μ[|s], x ∈ s` (#21059) From PFR ESTIMATED CHANGES Modified Mathlib/Probability/ConditionalProbability.lean + theorem ProbabilityTheory.ae_cond_mem + theorem ProbabilityTheory.ae_cond_mem₀ 2025-01-26 07:04:56 24e055f feat: mark AnalyticAt / MeromorphicAt for use with fun_prop (#21057) Mark theorems pertaining to `AnalyticAt` / `MeromorphicAt` for use with `fun_prop`. As discussed yesterday in the FLUG meeting with @TwoFX and others, I duplicated a several theorems because tactics such as `fun_prop` and `rw` cannot see that `f + g` and `fun x => f x + g x` are the same thing. I made the formulations a little more consistent, in that there is now always one theorem `AnalyticAt.add` that speaks about `f + g` and one version `AnalyticAt.add'` that speaks about `fun x => f x + g x`. This new functionality is used in [Project VD](https://github.com/kebekus/ProjectVD), which aims to formalize Value Distribution Theory for meromorphic functions on the complex plane. ESTIMATED CHANGES Modified Mathlib/Analysis/Analytic/Basic.lean Modified Mathlib/Analysis/Analytic/Composition.lean + theorem AnalyticAt.comp' + theorem AnalyticAt.comp_of_eq' Modified Mathlib/Analysis/Analytic/Constructions.lean + theorem AnalyticAt.add' + theorem AnalyticAt.const_smul' + theorem AnalyticAt.div' + theorem AnalyticAt.inv' + theorem AnalyticAt.mul' + theorem AnalyticAt.neg' + theorem AnalyticAt.smul' + theorem AnalyticAt.sub' Modified Mathlib/Analysis/Analytic/IsolatedZeros.lean + theorem AnalyticAt.order_mul + theorem AnalyticAt.order_mul_of_order_eq_top + theorem AnalyticAt.order_pow Modified Mathlib/Analysis/Analytic/Linear.lean Modified Mathlib/Analysis/Analytic/Meromorphic.lean + theorem MeromorphicAt.add' + theorem MeromorphicAt.div' + theorem MeromorphicAt.inv' + theorem MeromorphicAt.mul' + theorem MeromorphicAt.neg' + theorem MeromorphicAt.pow' + theorem MeromorphicAt.smul' + theorem MeromorphicAt.sub' + theorem MeromorphicAt.zpow' Modified Mathlib/Analysis/Calculus/FDeriv/Analytic.lean Modified Mathlib/Analysis/SpecialFunctions/Complex/Analytic.lean Modified Mathlib/Analysis/SpecialFunctions/ExpDeriv.lean + theorem AnalyticAt.cexp' +/- theorem AnalyticAt.cexp + theorem AnalyticAt.rexp' +/- theorem AnalyticAt.rexp 2025-01-26 06:03:10 c774a9c feat(SetTheory/Cardinal/Arithmetic): omega ordinals are additively/multiplicatively principal (#18778) ESTIMATED CHANGES Modified Mathlib/SetTheory/Cardinal/Arithmetic.lean +/- theorem Cardinal.principal_add_aleph - theorem Cardinal.principal_add_ord + theorem Ordinal.IsInitial.principal_add + theorem Ordinal.IsInitial.principal_mul + theorem Ordinal.principal_add_omega + theorem Ordinal.principal_add_ord + theorem Ordinal.principal_mul_omega + theorem Ordinal.principal_mul_ord Modified Mathlib/SetTheory/Ordinal/Principal.lean 2025-01-26 04:59:02 771b149 feat: `log (x / x) = 0` (#21056) From PFR ESTIMATED CHANGES Modified Mathlib/Analysis/SpecialFunctions/Complex/Arg.lean + theorem Complex.arg_div_self +/- theorem Complex.arg_one Modified Mathlib/Analysis/SpecialFunctions/Complex/Log.lean + theorem Complex.log_div_self Modified Mathlib/Analysis/SpecialFunctions/Log/Basic.lean + theorem Real.log_div_self 2025-01-26 04:42:47 1844f02 feat: `a ^ b ≤ ℵ₀` if `a ≤ ℵ₀` and `b < ℵ₀` (#21060) From PFR The corresponding `Cardinal.power_lt_aleph0` already exists. ESTIMATED CHANGES Modified Mathlib/SetTheory/Cardinal/Arithmetic.lean + theorem Cardinal.power_le_aleph0 2025-01-26 00:57:35 e1a3d4c feat: do not allocate heap cells for Erased (#21068) The memory representation of `Erased` used to be a heap cell, because `Erased` is defined in terms of `PSigma`. If we define `Erased` as a subtype of a predicate instead, then the compiler will erase values of type `Erased`. Unfortunately, this does not work for ghost fields in structures (yet). The structure will still contain a field for the ghost value, but at least it will be the scalar zero now. But I suspect it would be fairly small diff to fix this in core. ```lean structure Demo where a : Erased Nat b : Erased Nat set_option trace.compiler.ir.result true in def foo : Demo where a := .mk 42; b := .mk 8 ``` Before: ``` [result] def foo._closed_1 : obj := let x_1 : obj := ctor_0[PSigma.mk] ◾ ◾; inc x_1; let x_2 : obj := ctor_0[Demo.mk] x_1 x_1; ret x_2 def foo : obj := let x_1 : obj := foo._closed_1; ret x_1 ``` After: ``` [result] def foo : obj := let x_1 : obj := ctor_0[Demo.mk] ◾ ◾; ret x_1 ``` @digama0 This is what I was suggesting earlier this week. ESTIMATED CHANGES Modified Mathlib/Data/Erased.lean 2025-01-26 00:16:15 dd4bdae chore(scripts): update nolints.json (#21070) I am happy to remove some nolints for you! ESTIMATED CHANGES Modified scripts/nolints.json 2025-01-25 23:10:10 e137b58 feat: add `QuadraticMap.associated_tmul` and thus golf `QuadraticForm.associated_tmul` (#20177) ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/BilinearForm/TensorProduct.lean + theorem LinearMap.BilinMap.baseChange_isSymm + theorem LinearMap.BilinMap.tmul_isSymm Modified Mathlib/LinearAlgebra/QuadraticForm/Basic.lean + theorem QuadraticForm.associated_isSymm +/- theorem QuadraticMap.associated_isSymm +/- theorem QuadraticMap.associated_left_inverse +/- theorem QuadraticMap.isSymm_toMatrix' Modified Mathlib/LinearAlgebra/QuadraticForm/TensorProduct.lean + theorem QuadraticMap.associated_tmul Modified Mathlib/LinearAlgebra/SesquilinearForm.lean + theorem LinearMap.BilinMap.isSymm_iff_eq_flip +/- theorem LinearMap.isSymm_iff_eq_flip 2025-01-25 21:57:52 4b33aed feat(CategoryTheory): accessible functors and presentable objects (#19937) This PR introduces the notions of accessible functors and of presentable objects. An object `X` in a category is `κ`-presentable (for `κ` a regular cardinal) if the functor `Hom(X, -)` commutes with colimits indexed by `κ`-filtered categories. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Presentable/Basic.lean + theorem CategoryTheory.Functor.isCardinalAccessible_of_le + theorem CategoryTheory.Functor.isCardinalAccessible_of_natIso + theorem CategoryTheory.Functor.preservesColimitsOfShape_of_isCardinalAccessible + theorem CategoryTheory.Functor.preservesColimitsOfShape_of_isCardinalAccessible_of_essentiallySmall + theorem CategoryTheory.isCardinalPresentable_of_iso + theorem CategoryTheory.isCardinalPresentable_of_le + theorem CategoryTheory.preservesColimitsOfShape_of_isCardinalPresentable + theorem CategoryTheory.preservesColimitsOfShape_of_isCardinalPresentable_of_essentiallySmall Modified Mathlib/CategoryTheory/Presentable/IsCardinalFiltered.lean + theorem CategoryTheory.IsCardinalFiltered.of_equivalence Modified docs/references.bib 2025-01-25 18:48:35 4591fe1 chore: namespace `comap_swap` (#21061) From PFR ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Measure/Comap.lean + theorem MeasureTheory.Measure.comap_swap - theorem comap_swap 2025-01-25 18:15:47 3f9f891 chore: add Kerodon tags (#21048) ESTIMATED CHANGES Modified Mathlib/AlgebraicTopology/Quasicategory/Basic.lean 2025-01-25 17:33:45 ae9766f feat(Data/Matroid/Closure): matroid closure lemmas (#20885) This PR adds a few lemmas about matroid closure, and its interaction with restrictions, independence and bases. ESTIMATED CHANGES Modified Mathlib/Data/Matroid/Closure.lean + theorem Matroid.Basis.base_of_spanning + theorem Matroid.Basis.closure_inter_basis_closure + theorem Matroid.Basis.insert_basis_insert_of_not_mem_closure + theorem Matroid.Basis.spanning_iff_spanning + theorem Matroid.Indep.eq_of_spanning_subset + theorem Matroid.Indep.exists_base_subset_spanning + theorem Matroid.Indep.inter_Basis_biInter + theorem Matroid.Indep.inter_Basis_iInter + theorem Matroid.Indep.inter_Basis_sInter + theorem Matroid.Indep.inter_basis_closure_iff_subset_closure_inter + theorem Matroid.Indep.union_indep_iff_forall_not_mem_closure_left + theorem Matroid.Indep.union_indep_iff_forall_not_mem_closure_right + theorem Matroid.Restriction.base_iff_of_spanning + theorem Matroid.Spanning.base_restrict_iff + theorem Matroid.Spanning.compl_coindep + theorem Matroid.closure_empty_eq_ground_iff + theorem Matroid.closure_insert_congr_right + theorem Matroid.closure_union_congr_left + theorem Matroid.closure_union_congr_right + theorem Matroid.comap_closure_eq + theorem Matroid.emptyOn_closure_eq + theorem Matroid.freeOn_closure_eq + theorem Matroid.loopyOn_closure_eq + theorem Matroid.loopyOn_spanning_iff + theorem Matroid.map_closure_eq + theorem Matroid.restrict_closure_eq' + theorem Matroid.restrict_closure_eq + theorem Matroid.restrict_spanning_iff' + theorem Matroid.restrict_spanning_iff + theorem Matroid.uniqueBaseOn_closure_eq 2025-01-25 16:37:25 773fd70 feat(RingTheory): the smooth locus of an algebra (#20953) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Module/FinitePresentation.lean + theorem Module.finitePresentation_of_projective_of_exact + theorem Module.finitePresentation_of_split_exact Modified Mathlib/RingTheory/Extension.lean + theorem Algebra.Extension.Cotangent.finite Modified Mathlib/RingTheory/Kaehler/CotangentComplex.lean + def Algebra.H1Cotangent.mapEquiv Modified Mathlib/RingTheory/Presentation.lean + def Algebra.Presentation.ofFinitePresentation Added Mathlib/RingTheory/Smooth/Locus.lean + theorem Algebra.basicOpen_subset_smoothLocus_iff + theorem Algebra.basicOpen_subset_smoothLocus_iff_smooth + theorem Algebra.isOpen_smoothLocus + def Algebra.smoothLocus + theorem Algebra.smoothLocus_comap_of_isLocalization + theorem Algebra.smoothLocus_eq_compl_support_inter + theorem Algebra.smoothLocus_eq_univ_iff 2025-01-25 16:37:23 38f76ef doc(overview): combinatorics overview (#18884) Expand the graph theory section and write new sections for enumerative, set family and additive combinatorics as well Ramsey theory ESTIMATED CHANGES Modified Mathlib/Combinatorics/Additive/ApproximateSubgroup.lean Modified Mathlib/Combinatorics/Additive/SmallTripling.lean - theorem Finset.small_alternating_pow_of_small_tripling' + theorem Finset.small_alternating_pow_of_small_tripling - theorem Finset.small_pow_of_small_tripling' + theorem Finset.small_pow_of_small_tripling Modified docs/overview.yaml 2025-01-25 16:29:28 01b1302 feat(Data/Matroid/Circuit): Matroid circuits (#20995) We define and give basis API for circuits (minimal dependent sets) in matroids. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Data/Matroid/Circuit.lean + theorem Matroid.Circuit.basis_iff_eq_diff_singleton + theorem Matroid.Circuit.basis_iff_insert_eq + theorem Matroid.Circuit.circuit_restrict_of_subset + theorem Matroid.Circuit.closure_diff_singleton_eq + theorem Matroid.Circuit.dep + theorem Matroid.Circuit.diff_singleton_basis + theorem Matroid.Circuit.diff_singleton_indep + theorem Matroid.Circuit.eq_of_dep_subset + theorem Matroid.Circuit.eq_of_not_indep_subset + theorem Matroid.Circuit.eq_of_subset_circuit + theorem Matroid.Circuit.mem_closure_diff_singleton_of_mem + theorem Matroid.Circuit.minimal + theorem Matroid.Circuit.minimal_not_indep + theorem Matroid.Circuit.nonempty + theorem Matroid.Circuit.not_indep + theorem Matroid.Circuit.not_ssubset + theorem Matroid.Circuit.ssubset_indep + theorem Matroid.Circuit.subset_closure_diff_singleton + theorem Matroid.Circuit.subset_ground + def Matroid.Circuit + theorem Matroid.Indep.insert_circuit_of_forall + theorem Matroid.Indep.insert_circuit_of_forall_of_nontrivial + theorem Matroid.circuit_antichain + theorem Matroid.circuit_def + theorem Matroid.circuit_iff + theorem Matroid.circuit_iff_dep_forall_diff_singleton_indep + theorem Matroid.circuit_iff_forall_ssubset + theorem Matroid.circuit_iff_minimal_not_indep + theorem Matroid.empty_not_circuit + theorem Matroid.restrict_circuit_iff 2025-01-25 16:00:51 b89b720 feat: the real manifold [x,y] has boundary {x,y} (#15892) Also rename one lemma added in #15891, which I forgot to rename there. ESTIMATED CHANGES Modified Mathlib/Geometry/Manifold/Instances/Real.lean - theorem IccRightChart_extend_right_mem_frontier + theorem IccRightChart_extend_top_mem_frontier + theorem Icc_chartedSpaceChartAt + theorem Icc_chartedSpaceChartAt_of_le_top + theorem Icc_chartedSpaceChartAt_of_top_le + theorem Icc_isBoundaryPoint_bot + theorem Icc_isBoundaryPoint_top + theorem Icc_isInteriorPoint_interior + theorem boundary_Icc 2025-01-25 15:53:00 b3dcc0f feat(LinearAlgebra): add `Submodule.span_eq_top_of_restrictScalars` (#21054) ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/Span/Basic.lean + theorem Submodule.span_eq_top_of_span_eq_top 2025-01-25 11:53:55 efeadfb feat(Data/Matroid/Constructions): Instances for basic matroids (#20886) We add some instances for the matroids in `Data/Matroid/Constructions`, and also a `RkPos -> Nonempty` instance in `Matroid.Basic`. ESTIMATED CHANGES Modified Mathlib/Data/Matroid/Basic.lean Modified Mathlib/Data/Matroid/Constructions.lean + theorem Matroid.freeOn_rkPos + theorem Matroid.uniqueBaseOn_finiteRk + theorem Matroid.uniqueBaseOn_rkPos 2025-01-25 11:16:19 5ef6d7d chore: fix typo (#21043) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Limits/Shapes/Images.lean Modified Mathlib/CategoryTheory/Monoidal/Functor.lean 2025-01-25 09:47:38 b23a78e doc: turn links to Stacks into `stacks` attributes (#21046) I did not touch the links that are in module docs. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Abelian/Basic.lean Modified Mathlib/CategoryTheory/Abelian/Images.lean Modified Mathlib/CategoryTheory/Abelian/Transfer.lean Modified Mathlib/CategoryTheory/Adjunction/Basic.lean Modified Mathlib/CategoryTheory/Adjunction/Limits.lean Modified Mathlib/CategoryTheory/Category/Basic.lean Modified Mathlib/CategoryTheory/Category/Preorder.lean Modified Mathlib/CategoryTheory/Comma/Over.lean Modified Mathlib/CategoryTheory/DiscreteCategory.lean Modified Mathlib/CategoryTheory/Equivalence.lean Modified Mathlib/CategoryTheory/EssentialImage.lean Modified Mathlib/CategoryTheory/FiberedCategory/Cartesian.lean Modified Mathlib/CategoryTheory/FiberedCategory/Cocartesian.lean Modified Mathlib/CategoryTheory/Filtered/Basic.lean Modified Mathlib/CategoryTheory/FullSubcategory.lean Modified Mathlib/CategoryTheory/Functor/Basic.lean Modified Mathlib/CategoryTheory/Functor/FullyFaithful.lean Modified Mathlib/CategoryTheory/IsConnected.lean Modified Mathlib/CategoryTheory/Iso.lean Modified Mathlib/CategoryTheory/Limits/Constructions/LimitsOfProductsAndEqualizers.lean Modified Mathlib/CategoryTheory/Limits/Final.lean Modified Mathlib/CategoryTheory/Limits/IsLimit.lean Modified Mathlib/CategoryTheory/Limits/Shapes/BinaryProducts.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Pullback/HasPullback.lean Modified Mathlib/CategoryTheory/Limits/Types.lean Modified Mathlib/CategoryTheory/Monoidal/Braided/Basic.lean Modified Mathlib/CategoryTheory/Monoidal/Category.lean Modified Mathlib/CategoryTheory/Noetherian.lean Modified Mathlib/CategoryTheory/Opposites.lean Modified Mathlib/CategoryTheory/Products/Basic.lean Modified Mathlib/CategoryTheory/SingleObj.lean Modified Mathlib/CategoryTheory/Sites/Canonical.lean Modified Mathlib/CategoryTheory/Sites/EqualizerSheafCondition.lean Modified Mathlib/CategoryTheory/Sites/Grothendieck.lean Modified Mathlib/CategoryTheory/Sites/Pretopology.lean Modified Mathlib/CategoryTheory/Triangulated/Basic.lean Modified Mathlib/CategoryTheory/Triangulated/Pretriangulated.lean Modified Mathlib/CategoryTheory/Triangulated/Triangulated.lean Modified Mathlib/CategoryTheory/Types.lean Modified Mathlib/CategoryTheory/Yoneda.lean Modified Mathlib/RingTheory/Etale/Basic.lean Modified Mathlib/RingTheory/Smooth/Basic.lean Modified Mathlib/RingTheory/Unramified/Basic.lean Modified Mathlib/Topology/Category/Profinite/Basic.lean Modified Mathlib/Topology/Sheaves/Forget.lean 2025-01-25 09:47:37 974ebe9 feat(MeasureTheory/IntegrableOn): add `integrableAtFilter_atBot_iff` (#21016) Add the following statement ```lean theorem integrableAtFilter_atBot_iff : IntegrableAtFilter f atBot μ ↔ ∃ a, IntegrableOn f (Iic a) μ ``` and a similar statement for `atTop`. ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Integral/IntegrableOn.lean + theorem MeasureTheory.integrableAtFilter_atBot_iff + theorem MeasureTheory.integrableAtFilter_atTop_iff 2025-01-25 09:32:19 319694c refactor: merge `AEStronglyMeasurable` and `AEStronglyMeasurable'` (#20932) `AEStronglyMeasurable` is a convenient special case of `AEStronglyMeasurable'`, but we can tweak the argument implicitness so that `AEStronglyMeasurable f μ` means the same thing as before while `AEStronglyMeasurable[m] f μ` means the same thing as the current `AEStronglyMeasurable' m f μ`. ESTIMATED CHANGES Modified Mathlib/Analysis/Fourier/FourierTransformDeriv.lean Modified Mathlib/MeasureTheory/Function/ConditionalExpectation/AEMeasurable.lean +/- theorem MeasureTheory.AEStronglyMeasurable'.add +/- theorem MeasureTheory.AEStronglyMeasurable'.ae_eq_mk +/- theorem MeasureTheory.AEStronglyMeasurable'.congr +/- theorem MeasureTheory.AEStronglyMeasurable'.const_smul +/- theorem MeasureTheory.AEStronglyMeasurable'.mono +/- theorem MeasureTheory.AEStronglyMeasurable'.neg +/- theorem MeasureTheory.AEStronglyMeasurable'.of_subsingleton' +/- theorem MeasureTheory.AEStronglyMeasurable'.of_subsingleton +/- theorem MeasureTheory.AEStronglyMeasurable'.stronglyMeasurable_mk +/- theorem MeasureTheory.AEStronglyMeasurable'.sub - theorem MeasureTheory.lpMeas.aeStronglyMeasurable' + theorem MeasureTheory.lpMeas.aeStronglyMeasurable - theorem MeasureTheory.mem_lpMeasSubgroup_iff_aeStronglyMeasurable' + theorem MeasureTheory.mem_lpMeasSubgroup_iff_aeStronglyMeasurable - theorem MeasureTheory.mem_lpMeas_iff_aeStronglyMeasurable' + theorem MeasureTheory.mem_lpMeas_iff_aeStronglyMeasurable Modified Mathlib/MeasureTheory/Function/ConditionalExpectation/Basic.lean Modified Mathlib/MeasureTheory/Function/ConditionalExpectation/CondexpL1.lean - theorem MeasureTheory.aestronglyMeasurable'_condExpInd - theorem MeasureTheory.aestronglyMeasurable'_condExpL1 - theorem MeasureTheory.aestronglyMeasurable'_condExpL1CLM + theorem MeasureTheory.aestronglyMeasurable_condExpInd + theorem MeasureTheory.aestronglyMeasurable_condExpL1 + theorem MeasureTheory.aestronglyMeasurable_condExpL1CLM +/- theorem MeasureTheory.condExpL1CLM_of_aestronglyMeasurable' +/- theorem MeasureTheory.condExpL1_of_aestronglyMeasurable' Modified Mathlib/MeasureTheory/Function/ConditionalExpectation/CondexpL2.lean - theorem MeasureTheory.aeStronglyMeasurable'_condExpIndSMul - theorem MeasureTheory.aeStronglyMeasurable'_condExpL2 + theorem MeasureTheory.aestronglyMeasurable_condExpIndSMul + theorem MeasureTheory.aestronglyMeasurable_condExpL2 Modified Mathlib/MeasureTheory/Function/ConditionalExpectation/Indicator.lean Modified Mathlib/MeasureTheory/Function/ConditionalExpectation/Real.lean +/- theorem MeasureTheory.condExp_mul_of_aestronglyMeasurable_left +/- theorem MeasureTheory.condExp_mul_of_aestronglyMeasurable_right Modified Mathlib/MeasureTheory/Function/ConditionalExpectation/Unique.lean Modified Mathlib/MeasureTheory/Function/L1Space.lean Modified Mathlib/MeasureTheory/Function/LpSeminorm/Trim.lean +/- theorem MeasureTheory.eLpNorm_trim_ae Modified Mathlib/MeasureTheory/Function/StronglyMeasurable/Basic.lean +/- theorem Measurable.aestronglyMeasurable +/- theorem MeasureTheory.AEStronglyMeasurable.ae_eq_mk +/- theorem MeasureTheory.AEStronglyMeasurable.ae_mem_imp_eq_mk +/- theorem MeasureTheory.AEStronglyMeasurable.congr + theorem MeasureTheory.AEStronglyMeasurable.mono +/- theorem MeasureTheory.AEStronglyMeasurable.mono_measure +/- theorem MeasureTheory.AEStronglyMeasurable.mono_set +/- theorem MeasureTheory.AEStronglyMeasurable.mul_iff_left +/- theorem MeasureTheory.AEStronglyMeasurable.mul_iff_right + theorem MeasureTheory.AEStronglyMeasurable.of_measurableSpace_le_on + theorem MeasureTheory.AEStronglyMeasurable.of_subsingleton_cod + theorem MeasureTheory.AEStronglyMeasurable.of_subsingleton_dom + theorem MeasureTheory.AEStronglyMeasurable.of_trim +/- theorem MeasureTheory.AEStronglyMeasurable.stronglyMeasurable_mk +/- def MeasureTheory.AEStronglyMeasurable +/- theorem MeasureTheory.SimpleFunc.aestronglyMeasurable +/- theorem MeasureTheory.SimpleFunc.stronglyMeasurable + theorem MeasureTheory.StronglyMeasurable.ae_eq_trim_iff + theorem MeasureTheory.StronglyMeasurable.ae_eq_trim_of_stronglyMeasurable + theorem MeasureTheory.StronglyMeasurable.ae_le_trim_iff + theorem MeasureTheory.StronglyMeasurable.ae_le_trim_of_stronglyMeasurable +/- theorem MeasureTheory.StronglyMeasurable.measurableSet_eq_fun +/- theorem MeasureTheory.StronglyMeasurable.measurableSet_le +/- theorem MeasureTheory.StronglyMeasurable.measurableSet_lt +/- theorem MeasureTheory.StronglyMeasurable.of_finite +/- theorem MeasureTheory.Subsingleton.aestronglyMeasurable' +/- theorem MeasureTheory.Subsingleton.aestronglyMeasurable +/- theorem MeasureTheory.Subsingleton.stronglyMeasurable' +/- theorem MeasureTheory.Subsingleton.stronglyMeasurable +/- theorem MeasureTheory.aestronglyMeasurable_const +/- theorem MeasureTheory.aestronglyMeasurable_one +/- theorem MeasureTheory.aestronglyMeasurable_zero_measure +/- theorem MeasureTheory.stronglyMeasurable_const' +/- theorem MeasureTheory.stronglyMeasurable_const +/- theorem MeasureTheory.stronglyMeasurable_one Modified Mathlib/MeasureTheory/Function/StronglyMeasurable/Inner.lean + theorem MeasureTheory.AEStronglyMeasurable.const_inner + theorem MeasureTheory.AEStronglyMeasurable.inner_const Modified Mathlib/MeasureTheory/Integral/Bochner.lean - theorem MeasureTheory.ae_eq_trim_iff - theorem MeasureTheory.ae_eq_trim_of_stronglyMeasurable - theorem MeasureTheory.ae_le_trim_iff - theorem MeasureTheory.ae_le_trim_of_stronglyMeasurable +/- theorem MeasureTheory.integral_trim_ae Modified Mathlib/Probability/ConditionalExpectation.lean Modified Mathlib/Probability/Independence/Conditional.lean Modified Mathlib/Probability/Kernel/CondDistrib.lean - theorem ProbabilityTheory.aestronglyMeasurable'_integral_condDistrib + theorem ProbabilityTheory.aestronglyMeasurable_integral_condDistrib Modified Mathlib/Probability/Kernel/Condexp.lean - theorem ProbabilityTheory.aestronglyMeasurable'_integral_condExpKernel + theorem ProbabilityTheory.aestronglyMeasurable_integral_condExpKernel Modified Mathlib/Probability/Kernel/Disintegration/Density.lean Modified Mathlib/Probability/Martingale/Convergence.lean Modified Mathlib/Probability/Martingale/OptionalSampling.lean Modified scripts/nolints_prime_decls.txt 2025-01-25 08:30:45 070b12d fix: remove a nonsensical to_additive (#21040) There's nothing to additivize here. ESTIMATED CHANGES Modified Mathlib/Algebra/Equiv/TransferInstance.lean 2025-01-25 08:15:06 a1c3eb5 feat: functoriality of coimage-image comparison (#21044) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Abelian/Images.lean + def CategoryTheory.Abelian.coimageImageComparisonFunctor 2025-01-25 07:03:48 f7d835a feat: the product of L^p functions is L^p' (#21033) ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Function/LpSeminorm/CompareExp.lean 2025-01-25 07:03:47 b8b62d3 feat(Mathlib/Algebra/BrauerGroup/Defs): define Brauer Equivalence and Brauer Group (#20968) co-authored by: @jjaassoonn ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/BrauerGroup/Defs.lean + def Brauer.CSA_Setoid: + structure CSA + theorem IsBrauerEquivalent.is_eqv + theorem IsBrauerEquivalent.refl + theorem IsBrauerEquivalent.symm + theorem IsBrauerEquivalent.trans 2025-01-25 06:17:50 98e5955 feat(Algebra/Algebra/Prod): simple theorems about `fst`, `snd` and `prod` (#21020) Very basic theorems about `AlgHom.fst`, `AlgHom.snd` and `AlgHom.prod`. Counterparts for `LinearMap` already exist. ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/Prod.lean + theorem AlgHom.fst_apply + theorem AlgHom.prod_comp +/- theorem AlgHom.prod_fst_snd + theorem AlgHom.snd_apply 2025-01-25 06:17:49 d394d2f feat(RingTheory/Artinian): an artinian local reduced ring is a field (#21019) Prove that an artinian local reduced ring is a field. ESTIMATED CHANGES Modified Mathlib/RingTheory/Artinian/Ring.lean + theorem IsArtinianRing.isField_of_isReduced_of_isLocalRing 2025-01-25 06:17:48 a9be65e feat: submodule of multivariate polynomials of bounded degrees (#20984) From GrowthInGroups (LeanCamCombi) ESTIMATED CHANGES Modified Mathlib/Algebra/MvPolynomial/Degrees.lean + def MvPolynomial.degreesLE + theorem MvPolynomial.degreesLE_add + theorem MvPolynomial.degreesLE_nsmul + theorem MvPolynomial.degreesLE_zero + theorem MvPolynomial.mem_degreesLE 2025-01-25 06:17:46 698c109 chore: deprecate `gcd_eq_one_iff_coprime` (#20976) https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/.60gcd_eq_one_iff_coprime.60.20and.20.60isCoprime_iff_gcd_eq_one.60 ESTIMATED CHANGES Modified Mathlib/Data/ZMod/Coprime.lean Modified Mathlib/NumberTheory/FLT/Four.lean Modified Mathlib/NumberTheory/PellMatiyasevic.lean Modified Mathlib/NumberTheory/Zsqrtd/Basic.lean Modified Mathlib/NumberTheory/Zsqrtd/GaussianInt.lean Modified Mathlib/RingTheory/Coprime/Lemmas.lean Modified Mathlib/RingTheory/Int/Basic.lean +/- theorem Int.gcd_eq_one_iff_coprime 2025-01-25 06:17:45 2522433 chore(Data/Nat/Cast): don't import `MonoidWithZero` for results about `MonoidHom` (#20745) For this, move the results from `Data.Nat.Cast.Basic` not mentioning `Nat.cast` (!) to a new file `Algebra.Group.Nat.Hom`. See https://github.com/leanprover-community/mathlib3/pull/2957 for the copyright attribution. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Category/MonCat/ForgetCorepresentable.lean Added Mathlib/Algebra/Group/Nat/Hom.lean + theorem AddMonoidHom.apply_nat + theorem AddMonoidHom.ext_nat + theorem MonoidHom.apply_mnat + theorem MonoidHom.ext_mnat + theorem ext_nat' + def multiplesAddHom + theorem multiplesAddHom_apply + theorem multiplesAddHom_symm_apply + def multiplesHom + theorem multiplesHom_apply + theorem multiplesHom_symm_apply + def powersHom + theorem powersHom_apply + theorem powersHom_symm_apply + def powersMulHom + theorem powersMulHom_apply + theorem powersMulHom_symm_apply Modified Mathlib/Algebra/Group/Submonoid/Membership.lean Modified Mathlib/Algebra/Polynomial/Eval/Defs.lean Modified Mathlib/Algebra/Polynomial/Monomial.lean Modified Mathlib/Data/Int/Cast/Lemmas.lean Modified Mathlib/Data/Nat/Cast/Basic.lean - theorem AddMonoidHom.apply_nat - theorem AddMonoidHom.ext_nat - theorem MonoidHom.apply_mnat - theorem MonoidHom.ext_mnat - theorem ext_nat' - def multiplesAddHom - theorem multiplesAddHom_apply - theorem multiplesAddHom_symm_apply - def multiplesHom - theorem multiplesHom_apply - theorem multiplesHom_symm_apply - def powersHom - theorem powersHom_apply - theorem powersHom_symm_apply - def powersMulHom - theorem powersMulHom_apply - theorem powersMulHom_symm_apply 2025-01-25 06:17:44 9d2da63 feat(Order/Nucleus): Nucleus (#19440) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Order/Nucleus.lean + theorem Nucleus.bot_apply + theorem Nucleus.coe_bot + theorem Nucleus.coe_le_coe + theorem Nucleus.coe_lt_coe + theorem Nucleus.coe_toInfHom + theorem Nucleus.coe_top + theorem Nucleus.ext + theorem Nucleus.idempotent + theorem Nucleus.le_apply + theorem Nucleus.map_inf + def Nucleus.toClosureOperator + theorem Nucleus.toFun_eq_coe + theorem Nucleus.top_apply + structure Nucleus 2025-01-25 06:17:42 7e84e12 feat(Algebra/Subalgebra): some lemmas about centralizers (#18764) Let `R` be a commutative ring and `A` and `B` two `R`-algebras. - `Subalgebra.centralizer_sup`: if `S` and `T` are subalgebras of `A`, then the centralizer of `S ⊔ T` is the intersection of the centralizer of `S` and the centralizer of `T`. - `Subalgebra.centralizer_range_includeLeft_eq_center_tensorProduct`: if `B` is free as a module, then the centralizer of `A` in `A ⊗ B` is `C(A) ⊗ B` where `C(A)` is the center of `A`. - `Subalgebra.centralizer_range_includeRight_eq_center_tensorProduct`: if `A` is free as a module, then the centralizer of `B` in `A ⊗ B` is `A ⊗ C(B)` where `C(B)` is the center of `B`. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Algebra/Hom.lean + theorem Algebra.comp_ofId Modified Mathlib/Algebra/Algebra/Subalgebra/Basic.lean + theorem Algebra.iSup_induction' + theorem Algebra.iSup_induction + theorem Algebra.mem_iSup_of_mem + theorem Algebra.range_ofId Added Mathlib/Algebra/Algebra/Subalgebra/Centralizer.lean + theorem Subalgebra.centralizer_coe_iSup + theorem Subalgebra.centralizer_coe_image_includeLeft_eq_center_tensorProduct + theorem Subalgebra.centralizer_coe_image_includeRight_eq_center_tensorProduct + theorem Subalgebra.centralizer_coe_map_includeLeft_eq_center_tensorProduct + theorem Subalgebra.centralizer_coe_map_includeRight_eq_center_tensorProduct + theorem Subalgebra.centralizer_coe_range_includeLeft_eq_center_tensorProduct + theorem Subalgebra.centralizer_coe_sup + theorem Subalgebra.centralizer_range_includeRight_eq_center_tensorProduct + theorem Subalgebra.centralizer_tensorProduct_eq_center_tensorProduct_left + theorem Subalgebra.centralizer_tensorProduct_eq_center_tensorProduct_right + theorem Subalgebra.le_centralizer_iff Modified Mathlib/RingTheory/TensorProduct/Basic.lean + theorem Algebra.TensorProduct.comm_comp_includeLeft + theorem Algebra.TensorProduct.comm_comp_includeRight + theorem Algebra.TensorProduct.comm_comp_map + theorem Algebra.TensorProduct.comm_comp_map_apply 2025-01-25 06:17:41 62560ab feat: two Finset lemmas (#15294) Add `prod_image_of_disjoint` (and the `to_additive` version `sum_image_of_disjoint`) and `sUnion_disjiUnion` ESTIMATED CHANGES Modified Mathlib/Algebra/BigOperators/Group/Finset/Basic.lean + theorem Finset.prod_filter_of_pairwise_eq_one + theorem Finset.prod_image_of_disjoint + theorem Finset.prod_image_of_pairwise_eq_one Modified Mathlib/Data/Finset/Union.lean + theorem Finset.sUnion_disjiUnion 2025-01-25 05:58:09 3a62ce8 feat(Data.Real.EReal): add lemmas about division (#20293) A few more lemmas about division and order/distributivity in EReal. ESTIMATED CHANGES Modified Mathlib/Data/Real/EReal.lean + theorem EReal.add_div_of_nonneg_right + theorem EReal.bot_lt_inv + theorem EReal.div_eq_iff + theorem EReal.div_lt_iff + theorem EReal.inv_lt_top + theorem EReal.lt_div_iff 2025-01-25 05:26:10 3b7a6cf feat(Topology/Algebra/Field): `ContinuousSMul` for intermediate fields (#18142) If `M` is an intermediate field between field extension `L/K`, then `M` acts continuously on `L` and bot act continuously on `M`. The `M` acts continuously on `L` part is proved in a more general setup. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Topology/Algebra/Algebra.lean Modified Mathlib/Topology/Algebra/Field.lean Added Mathlib/Topology/Algebra/IntermediateField.lean Modified Mathlib/Topology/Algebra/Ring/Basic.lean 2025-01-25 05:06:19 1409d1f perf: improves the performance of the `Repr (Equiv.Perm α)` instance (3/4) (#12610) `instance [Fintype α] [Repr α] : Repr (Equiv.Perm α)` uses functions depends on `[DecidableRel (SameCycle (f : Equiv.Perm α))]`. If `α` is `Fintype` where `Fintype.card α = n`, it is sufficient for deciding `SameCycle f x y` to apply `f` to `x` for `n` times and check if `y` appears in them. However, currently, `f` is applied for `Fintype.card (Equiv.Perm α) = n!` times! 😃 < You know, factorial is written as "!" 🥶 😰 🫥 🙉 This is because, some of lemmas required to prove that it is sufficient for deciding `SameCycle f x y` to apply `f` to `x` for `n` times, uses the formula `(cycleOf (f : Equiv.Perm α) x).support : Finset α`. `(g : Equiv.Perm α).support` depends on `[Fintype α] [DecidableEq α]`, and `cycleOf (f : Equiv.Perm α) x` depends on `[DecidableRel (SameCycle (f : Equiv.Perm α))]`, so these lemmas depends on `[Fintype α] [DecidableEq α] [DecidableRel (SameCycle (f : Equiv.Perm α))]`. If we could prove that fact without these lemmas and define before these lemmas, the imstance argument `[DecidableRel (SameCycle (f : Equiv.Perm α))]` in these lemmas are not required anymore. And, if we use `n!` instead of `n`, these lemmas are not required anymore! 😃 < You know, factorial is written as "!" 👹 👹 👹 👹 So the current Mathlib apply `f` to `x` for `n!` times, but this is clearly a performance problem. To solve this problem, we copy these lemmas as private lemmas before `instance [Fintype α] [DecidableEq α] : DecidableRel (SameCycle (f : Equiv.Perm α))`. These lemmas depends on `[Fintype α] [DecidableEq α] [DecidableRel (SameCycle (f : Equiv.Perm α))]`. In `instance [Fintype α] [DecidableEq α] : DecidableRel (SameCycle (f : Equiv.Perm α))`, we prove that it is sufficient for deciding `SameCycle f x y` to apply `f` to `x` for `n` times, using these lemmas with `classical`. We're proving a lemma so the computable instance is not necessary. After define the instance, we restate the previous private lemma as global lemmas, these lemmas doesn't depend on `[DecidableRel (SameCycle (f : Equiv.Perm α))]` anymore. And we don't have to apply `f` for `n!` times anymore! 🕳 < You know, factorial is written a- 🔘👈😉 😄 😇 🤣 ESTIMATED CHANGES Modified Mathlib/GroupTheory/Perm/Cycle/Basic.lean Modified Mathlib/GroupTheory/Perm/Cycle/Factors.lean 2025-01-25 00:59:55 3726d94 chore: ensure `inherit_doc`-ed notation is mentioned in the underlying doc-string (#20684) This is not exhaustive. Add some `inherit_doc` when appropriate. ESTIMATED CHANGES Modified Counterexamples/SorgenfreyLine.lean Modified Mathlib/Algebra/AddConstMap/Basic.lean Modified Mathlib/Algebra/AddConstMap/Equiv.lean Modified Mathlib/Algebra/Algebra/Equiv.lean Modified Mathlib/Algebra/Algebra/Hom.lean Modified Mathlib/Algebra/Algebra/NonUnitalHom.lean Modified Mathlib/Algebra/Group/Operations.lean Modified Mathlib/Algebra/Group/Units/Defs.lean Modified Mathlib/Algebra/Lie/Basic.lean Modified Mathlib/Algebra/Module/Equiv/Defs.lean Modified Mathlib/Algebra/Module/Torsion.lean Modified Mathlib/Algebra/MonoidAlgebra/Defs.lean Modified Mathlib/Algebra/Order/Floor.lean Modified Mathlib/Algebra/Order/Group/Unbundled/Abs.lean +/- def mabs Modified Mathlib/Algebra/Order/Hom/Ring.lean Modified Mathlib/Algebra/Polynomial/Basic.lean Modified Mathlib/Algebra/Polynomial/Div.lean Modified Mathlib/Algebra/Quaternion.lean Modified Mathlib/Algebra/Quotient.lean Modified Mathlib/Algebra/Symmetrized.lean Modified Mathlib/Analysis/Asymptotics/AsymptoticEquivalent.lean Modified Mathlib/Analysis/CStarAlgebra/Module/Synonym.lean Modified Mathlib/Analysis/Calculus/Gradient/Basic.lean Modified Mathlib/Analysis/Complex/UnitDisc/Basic.lean Modified Mathlib/Analysis/Complex/UpperHalfPlane/Basic.lean Modified Mathlib/Analysis/Convex/Segment.lean Modified Mathlib/Analysis/Fourier/FourierTransform.lean Modified Mathlib/Analysis/Fourier/ZMod.lean Modified Mathlib/Analysis/InnerProductSpace/Adjoint.lean Modified Mathlib/Analysis/InnerProductSpace/Defs.lean Modified Mathlib/Analysis/InnerProductSpace/LinearPMap.lean Modified Mathlib/Analysis/InnerProductSpace/Orthogonal.lean Modified Mathlib/Analysis/Normed/Affine/Isometry.lean Modified Mathlib/Analysis/Normed/Lp/lpSpace.lean Modified Mathlib/Analysis/Normed/Operator/LinearIsometry.lean Modified Mathlib/Analysis/RCLike/Inner.lean Modified Mathlib/Analysis/SpecialFunctions/OrdinaryHypergeometric.lean Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Basic.lean Modified Mathlib/Data/Matrix/Hadamard.lean Modified Mathlib/Data/Matrix/Kronecker.lean Modified Mathlib/Data/NNReal/Defs.lean Modified Mathlib/Geometry/Manifold/ChartedSpace.lean Modified Mathlib/Geometry/Manifold/ContMDiffMap.lean Modified Mathlib/Geometry/Manifold/DerivationBundle.lean Modified Mathlib/Geometry/Manifold/Diffeomorph.lean Modified Mathlib/Geometry/Manifold/IsManifold.lean Modified Mathlib/Geometry/Manifold/VectorBundle/SmoothSection.lean Modified Mathlib/LinearAlgebra/Matrix/SchurComplement.lean Modified Mathlib/Logic/Equiv/PartialEquiv.lean Modified Mathlib/MeasureTheory/Integral/CircleIntegral.lean Modified Mathlib/MeasureTheory/Integral/IntervalAverage.lean Modified Mathlib/Topology/Homotopy/HomotopyGroup.lean Modified Mathlib/Topology/PartialHomeomorph.lean Modified scripts/nolints.json 2025-01-24 22:55:39 8f355f5 chore(SetTheory/Cardinal/Arithmetic): remove unneeded import (#21013) ESTIMATED CHANGES Modified Mathlib/Order/Filter/CardinalInter.lean Modified Mathlib/SetTheory/Cardinal/Arithmetic.lean 2025-01-24 22:55:38 afdba6f refactor: make `LinearOrderedCommMonoidWithZero` extend `OrderBot` (#19193) Currently, the following fails: ```lean import Mathlib variable {α : Type*} [LinearOrderedCommGroupWithZero α] #synth OrderBot α /- failed to synthesize OrderBot α Additional diagnostic information may be available using the `set_option diagnostics true` command. -/ ``` ESTIMATED CHANGES Modified Counterexamples/LinearOrderWithPosMulPosEqZero.lean Modified Mathlib/Algebra/Order/Field/Canonical.lean Modified Mathlib/Algebra/Order/GroupWithZero/Canonical.lean + theorem bot_eq_zero'' Modified Mathlib/RingTheory/Valuation/Archimedean.lean Modified Mathlib/RingTheory/Valuation/Basic.lean + def Valuation.congr Modified Mathlib/RingTheory/Valuation/ValuationRing.lean 2025-01-24 22:23:21 fb8b7ee chore(noshake): ignoreImport `FastInstance` (#21034) This should be a way to get `shake` to ignore `FastInstance` imports programmatically. ESTIMATED CHANGES Modified scripts/noshake.json 2025-01-24 22:23:20 a7b7802 chore(Pointwise): rename `Set.set_smul_subset_set_smul_iff` to `Set.smul_set_subset_smul_set_iff` (#20300) Moves: * `set_smul_subset_set_smul_iff` → `smul_set_subset_smul_set_iff` * `set_smul_subset_iff` → `smul_set_subset_iff_subset_inv_smul_set` * `subset_set_smul_iff` → `subset_smul_set_iff` * `set_smul_subset_set_smul_iff₀` → `smul_set_subset_smul_set_iff₀` * `set_smul_subset_iff₀` → `smul_set_subset_iff₀` * `subset_set_smul_iff₀` → `subset_smul_set_iff₀` From LeanCamCombi ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Pointwise/Finset/Basic.lean Modified Mathlib/Algebra/Group/Subgroup/Pointwise.lean Modified Mathlib/Algebra/Group/Submonoid/Pointwise.lean Modified Mathlib/Algebra/Ring/Subring/Pointwise.lean Modified Mathlib/Algebra/Ring/Subsemiring/Pointwise.lean Modified Mathlib/Analysis/Convex/Normed.lean Modified Mathlib/Analysis/LocallyConvex/BalancedCoreHull.lean Modified Mathlib/Analysis/Normed/Operator/Compact.lean Modified Mathlib/Combinatorics/Additive/ApproximateSubgroup.lean Modified Mathlib/Data/Set/Pointwise/Iterate.lean Modified Mathlib/Data/Set/Pointwise/SMul.lean - theorem Set.set_smul_subset_iff - theorem Set.set_smul_subset_iff₀ - theorem Set.set_smul_subset_set_smul_iff - theorem Set.set_smul_subset_set_smul_iff₀ + theorem Set.smul_set_subset_iff_subset_inv_smul_set + theorem Set.smul_set_subset_iff₀ + theorem Set.smul_set_subset_smul_set_iff + theorem Set.smul_set_subset_smul_set_iff₀ - theorem Set.subset_set_smul_iff - theorem Set.subset_set_smul_iff₀ + theorem Set.subset_smul_set_iff + theorem Set.subset_smul_set_iff₀ Modified Mathlib/GroupTheory/CoprodI.lean Modified Mathlib/GroupTheory/GroupAction/Blocks.lean Modified Mathlib/GroupTheory/GroupAction/FixedPoints.lean Modified Mathlib/RingTheory/Valuation/ValuationSubring.lean 2025-01-24 21:41:24 2b9299e feat(AlgebraicGeometry): API for zero locus (#20812) ESTIMATED CHANGES Modified Mathlib/AlgebraicGeometry/AffineScheme.lean + theorem AlgebraicGeometry.IsAffineOpen.fromSpec_image_zeroLocus + theorem AlgebraicGeometry.IsAffineOpen.fromSpec_preimage_zeroLocus +/- theorem AlgebraicGeometry.IsAffineOpen.isoSpec_hom + theorem AlgebraicGeometry.IsAffineOpen.isoSpec_inv_toSpecΓ + theorem AlgebraicGeometry.IsAffineOpen.toSpecΓ_fromSpec + theorem AlgebraicGeometry.IsAffineOpen.toSpecΓ_isoSpec_inv + theorem AlgebraicGeometry.Scheme.Opens.toSpecΓ_appTop + theorem AlgebraicGeometry.Scheme.Opens.toSpecΓ_preimage_zeroLocus +/- theorem AlgebraicGeometry.Scheme.eq_zeroLocus_of_isClosed_of_isAffine + theorem AlgebraicGeometry.Scheme.isoSpec_image_zeroLocus + theorem AlgebraicGeometry.Scheme.isoSpec_inv_image_zeroLocus + theorem AlgebraicGeometry.Scheme.isoSpec_inv_preimage_zeroLocus + theorem AlgebraicGeometry.Scheme.isoSpec_inv_toSpecΓ + theorem AlgebraicGeometry.Scheme.toSpecΓ_image_zeroLocus + theorem AlgebraicGeometry.Scheme.toSpecΓ_isoSpec_inv + theorem AlgebraicGeometry.Scheme.toSpecΓ_preimage_zeroLocus - theorem AlgebraicGeometry.Scheme.toΓSpec_image_zeroLocus_eq_of_isAffine - theorem AlgebraicGeometry.Scheme.toΓSpec_preimage_zeroLocus_eq + theorem AlgebraicGeometry.Scheme.zeroLocus_biInf + theorem AlgebraicGeometry.Scheme.zeroLocus_biInf_of_nonempty + theorem AlgebraicGeometry.Scheme.zeroLocus_iInf + theorem AlgebraicGeometry.Scheme.zeroLocus_iInf_of_nonempty + theorem AlgebraicGeometry.Scheme.zeroLocus_inf Modified Mathlib/AlgebraicGeometry/GammaSpecAdjunction.lean Modified Mathlib/AlgebraicGeometry/OpenImmersion.lean + theorem AlgebraicGeometry.Scheme.Hom.map_mem_image_iff +/- theorem AlgebraicGeometry.Scheme.image_basicOpen + theorem AlgebraicGeometry.Scheme.image_zeroLocus Modified Mathlib/AlgebraicGeometry/Scheme.lean + theorem AlgebraicGeometry.Scheme.basicOpen_add_le + theorem AlgebraicGeometry.Scheme.basicOpen_one + theorem AlgebraicGeometry.Scheme.codisjoint_zeroLocus + theorem AlgebraicGeometry.Scheme.preimage_zeroLocus + theorem AlgebraicGeometry.Scheme.zeroLocus_map + theorem AlgebraicGeometry.Scheme.zeroLocus_map_of_eq + theorem AlgebraicGeometry.Scheme.zeroLocus_mono + theorem AlgebraicGeometry.Scheme.zeroLocus_span + theorem AlgebraicGeometry.Scheme.zeroLocus_univ + theorem AlgebraicGeometry.Spec_zeroLocus + theorem AlgebraicGeometry.Spec_zeroLocus_eq_zeroLocus Modified Mathlib/Order/BooleanAlgebra.lean + theorem codisjoint_iff_compl_le_left + theorem codisjoint_iff_compl_le_right Modified Mathlib/Topology/Sets/Opens.lean + theorem TopologicalSpace.Opens.mem_bot + theorem TopologicalSpace.Opens.mem_inf 2025-01-24 20:24:57 6d3806f feat(Order/WellFounded): a relation is well-founded iff there's no infinite decreasing sequence (#21010) ESTIMATED CHANGES Modified Mathlib/Order/OrderIsoNat.lean Modified Mathlib/Order/WellFounded.lean + theorem WellFounded.not_rel_apply_succ + theorem WellFounded.wellFounded_iff_no_descending_seq 2025-01-24 20:24:56 a02db21 chore: simplify some proofs with `rfl` and `tauto` (#20985) Those simplifications were found by [`tryAtEachStep`](https://github.com/dwrensha/tryAtEachStep). ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/Quasispectrum.lean Modified Mathlib/Analysis/NormedSpace/PiTensorProduct/ProjectiveSeminorm.lean Modified Mathlib/CategoryTheory/Triangulated/Opposite/Basic.lean Modified Mathlib/Combinatorics/SimpleGraph/Walk.lean +/- theorem SimpleGraph.Walk.getVert_copy Modified Mathlib/LinearAlgebra/SesquilinearForm.lean Modified Mathlib/NumberTheory/ModularForms/CongruenceSubgroups.lean +/- theorem CongruenceSubgroup.Gamma_zero_bot Modified Mathlib/Topology/Gluing.lean 2025-01-24 19:52:35 a7e69b0 chore(AlgebraicTopology): split SimplicialSet.Basic (#21025) This PR only splits the file `AlgebraicTopology.SimplicialSet.Basic` by creating three new files `StdSimplex`, `Boundary`, `Horn`. This prepares for a refactor and future developments of API for these simplicial sets. For example, the boundary and the horn should be redefined (keeping the defeq) as subcomplexes of the standard simplex using the `Subpresheaf` API, see #20840. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/AlgebraicTopology/ExtraDegeneracy.lean Modified Mathlib/AlgebraicTopology/SimplicialSet/Basic.lean - def SSet.asOrderHom - def SSet.boundary - def SSet.boundaryInclusion - def SSet.horn.const - def SSet.horn.edge - def SSet.horn.edge₃ - def SSet.horn.face - theorem SSet.horn.hom_ext - def SSet.horn.primitiveEdge - def SSet.horn.primitiveTriangle - def SSet.horn - def SSet.hornInclusion - theorem SSet.stdSimplex.coe_edge_down_toOrderHom - theorem SSet.stdSimplex.coe_triangle_down_toOrderHom - def SSet.stdSimplex.const - theorem SSet.stdSimplex.const_down_toOrderHom - def SSet.stdSimplex.edge - def SSet.stdSimplex.id - theorem SSet.stdSimplex.id_eq_objEquiv_symm - theorem SSet.stdSimplex.map_apply - theorem SSet.stdSimplex.map_id - def SSet.stdSimplex.objEquiv - theorem SSet.stdSimplex.objEquiv_id - def SSet.stdSimplex.triangle - def SSet.stdSimplex - def SSet.yonedaEquiv Added Mathlib/AlgebraicTopology/SimplicialSet/Boundary.lean + def SSet.boundary + def SSet.boundaryInclusion Added Mathlib/AlgebraicTopology/SimplicialSet/Horn.lean + def SSet.horn.const + def SSet.horn.edge + def SSet.horn.edge₃ + def SSet.horn.face + theorem SSet.horn.hom_ext + def SSet.horn.primitiveEdge + def SSet.horn.primitiveTriangle + def SSet.horn + def SSet.hornInclusion Modified Mathlib/AlgebraicTopology/SimplicialSet/KanComplex.lean Modified Mathlib/AlgebraicTopology/SimplicialSet/Path.lean Added Mathlib/AlgebraicTopology/SimplicialSet/StdSimplex.lean + def SSet.asOrderHom + theorem SSet.stdSimplex.coe_edge_down_toOrderHom + theorem SSet.stdSimplex.coe_triangle_down_toOrderHom + def SSet.stdSimplex.const + theorem SSet.stdSimplex.const_down_toOrderHom + def SSet.stdSimplex.edge + def SSet.stdSimplex.id + theorem SSet.stdSimplex.id_eq_objEquiv_symm + theorem SSet.stdSimplex.map_apply + theorem SSet.stdSimplex.map_id + def SSet.stdSimplex.objEquiv + theorem SSet.stdSimplex.objEquiv_id + def SSet.stdSimplex.triangle + def SSet.stdSimplex + def SSet.yonedaEquiv 2025-01-24 19:52:34 f8b7f16 perf: use `fast_instance%` for instances constructed via non-canonical constructors (#20993) Most the applications have `Function.Injective/Surjective.class` at the head of their expressions except for `Submodule.addCommMonoid/addCommGroup/module'/module`. The latter probably have the former deeper inside. ESTIMATED CHANGES Modified Mathlib/Algebra/Field/Subfield/Defs.lean Modified Mathlib/Algebra/Group/Subgroup/Defs.lean Modified Mathlib/Algebra/Group/Submonoid/Defs.lean Modified Mathlib/Algebra/Group/Subsemigroup/Defs.lean Modified Mathlib/Algebra/Module/Submodule/Defs.lean Modified Mathlib/Algebra/Module/Submodule/Order.lean Modified Mathlib/Algebra/Order/CauSeq/Completion.lean Modified Mathlib/Algebra/Order/Field/Subfield.lean Modified Mathlib/Algebra/Order/Interval/Set/Instances.lean Modified Mathlib/Algebra/Order/Monoid/Submonoid.lean Modified Mathlib/Algebra/Order/Nonneg/Field.lean Modified Mathlib/Algebra/Order/Nonneg/Ring.lean Modified Mathlib/Algebra/Order/Positive/Ring.lean Modified Mathlib/Algebra/Polynomial/Basic.lean Modified Mathlib/Algebra/Ring/Subring/Defs.lean Modified Mathlib/Algebra/Ring/Subring/Order.lean Modified Mathlib/Algebra/Ring/Subsemiring/Defs.lean Modified Mathlib/Algebra/Ring/Subsemiring/Order.lean Modified Mathlib/AlgebraicGeometry/Modules/Tilde.lean Modified Mathlib/Data/Finsupp/Defs.lean Modified Mathlib/GroupTheory/Congruence/Defs.lean Modified Mathlib/LinearAlgebra/AffineSpace/AffineSubspace.lean +/- theorem AffineEquiv.ofEq_symm Modified Mathlib/LinearAlgebra/Quotient/Defs.lean Modified Mathlib/RingTheory/Congruence/Defs.lean Modified Mathlib/RingTheory/NonUnitalSubring/Defs.lean Modified Mathlib/RingTheory/NonUnitalSubsemiring/Defs.lean Modified Mathlib/Tactic/FastInstance.lean Modified scripts/noshake.json 2025-01-24 19:43:18 395adf2 feat: define the Cartan matrix of a root pairing relative to a base (#20999) Also adding `RootPairing.IsValuedIn` (together with some API) since this enables us to define an integer-valued Cartan matrix for crystallographic pairings. More importantly, `RootPairing.IsValuedIn` is also the missing piece to generalise (and unify) some results which currently require ordered scalars such as [RootPairing.coxeterWeight_mem_set_of_isCrystallographic](https://leanprover-community.github.io/mathlib4_docs/Mathlib/LinearAlgebra/RootSystem/Finite/CanonicalBilinear.html#RootPairing.coxeterWeight_mem_set_of_isCrystallographic) but this work is left for a future PR (mostly to simplify review). ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Lie/Weights/RootSystem.lean Modified Mathlib/LinearAlgebra/RootSystem/BaseChange.lean Added Mathlib/LinearAlgebra/RootSystem/CartanMatrix.lean + def RootPairing.Base.cartanMatrixIn + theorem RootPairing.Base.cartanMatrixIn_apply_same + theorem RootPairing.Base.cartanMatrixIn_def Modified Mathlib/LinearAlgebra/RootSystem/Defs.lean - theorem RootPairing.IsCrystallographic.mem_range_algebraMap + theorem RootPairing.IsValuedIn.trans + theorem RootPairing.algebraMap_coxeterWeightIn + theorem RootPairing.algebraMap_pairingIn + def RootPairing.coxeterWeightIn - theorem RootPairing.exists_int_eq_coxeterWeight - theorem RootPairing.isCrystallographic_iff + theorem RootPairing.isValuedIn_iff_mem_range + def RootPairing.pairingIn Modified Mathlib/LinearAlgebra/RootSystem/Finite/CanonicalBilinear.lean Modified Mathlib/LinearAlgebra/RootSystem/Finite/Nondegenerate.lean 2025-01-24 18:38:07 59eed68 chore: fix docstring (#21027) ESTIMATED CHANGES Modified Mathlib/Analysis/Distribution/AEEqOfIntegralContDiff.lean 2025-01-24 16:46:28 725eddc feat: submodule of mv polynomials whose coeffs lie in a fixed submodule (#20989) From GrowthInGroups (LeanCamCombi) ESTIMATED CHANGES Modified Mathlib/Algebra/MvPolynomial/Basic.lean + theorem MvPolynomial.C_mem_coeffsIn + theorem MvPolynomial.X_mul_mem_coeffsIn + def MvPolynomial.coeffsIn + theorem MvPolynomial.coeffsIn_eq_span_monomial + theorem MvPolynomial.coeffsIn_le + theorem MvPolynomial.coeffsIn_mul + theorem MvPolynomial.coeffsIn_pow + theorem MvPolynomial.le_coeffsIn_pow + theorem MvPolynomial.mem_coeffsIn + theorem MvPolynomial.monomial_mem_coeffsIn + theorem MvPolynomial.monomial_mul_mem_coeffsIn + theorem MvPolynomial.mul_X_mem_coeffsIn + theorem MvPolynomial.mul_monomial_mem_coeffsIn + theorem MvPolynomial.one_coeffsIn 2025-01-24 15:20:08 4c0603b chore(Data/Nat/Choose/Sum): refined the statement of `Finset.sum_antidiagonal_choose_add`. (#21022) ESTIMATED CHANGES Modified Mathlib/Data/Nat/Choose/Sum.lean Modified Mathlib/RingTheory/PowerSeries/WellKnown.lean 2025-01-24 14:39:43 8527b66 feat(Order/RelIso): missing `Subrel` instances (#21011) ESTIMATED CHANGES Modified Mathlib/Order/RelIso/Set.lean 2025-01-24 14:15:59 33cc4f3 feat(Topology/Algebra/TopologicallyNilpotent): top nilpotent in linear topologies (#20971) In a monoid with zero and a topology, an element is topologically nilpotent if its powers converge to zero. In a ring with a linear topology, sum and product of (commuting) topologically nilpotent elements are topologically nilpotent. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/RingTheory/Ideal/Basic.lean + theorem Ideal.add_pow_add_pred_mem_of_pow_mem_of_commute + theorem Ideal.add_pow_mem_of_pow_mem_of_le_of_commute Modified Mathlib/RingTheory/Ideal/Defs.lean Added Mathlib/Topology/Algebra/TopologicallyNilpotent.lean + theorem IsTopologicallyNilpotent.add + theorem IsTopologicallyNilpotent.add_of_commute + theorem IsTopologicallyNilpotent.exists_pow_mem_of_mem_nhds + theorem IsTopologicallyNilpotent.map + theorem IsTopologicallyNilpotent.mul_left + theorem IsTopologicallyNilpotent.mul_left_of_commute + theorem IsTopologicallyNilpotent.mul_right + theorem IsTopologicallyNilpotent.mul_right_of_commute + theorem IsTopologicallyNilpotent.zero + def IsTopologicallyNilpotent 2025-01-24 11:21:05 e1f9f04 feat(Algebra/Azumaya/Defs): Define Azumaya algebras (#20489) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Azumaya/Defs.lean + theorem AlgHom.mulLeftRight_apply Modified docs/references.bib 2025-01-24 10:39:58 5718270 style(Computability/ContextFreeGrammar/reverse): injective and surjec… (#19325) …tive from bijective ESTIMATED CHANGES Modified Mathlib/Computability/ContextFreeGrammar.lean 2025-01-24 10:30:33 0b8fbb6 feat(Analysis/Analytic/IsolatedZeros): vanishing of products (#20996) If a product of analytic functions (on a preconnected set) is zero, then one of the factors is zero. ESTIMATED CHANGES Modified Mathlib/Analysis/Analytic/IsolatedZeros.lean + theorem AnalyticOnNhd.eq_zero_or_eq_zero_of_mul_eq_zero + theorem AnalyticOnNhd.eq_zero_or_eq_zero_of_smul_eq_zero 2025-01-24 10:30:32 f088ec9 chore(AlgebraicTopology): make stdSimplex a cosimplicial object (#20954) The functor `stdSimplex : SimplexCategory ⥤ SSet.{u}` is redefined to the defeq type of cosimplicial objects in `SSet`. This allows the use of the notation `stdSimplex.δ i` instead of `stdSimplex.map (SimplexCategory.δ i)`. ESTIMATED CHANGES Modified Mathlib/AlgebraicTopology/SimplicialSet/Basic.lean +/- def SSet.stdSimplex 2025-01-24 09:44:51 1cbfe61 feat: constructible sets (#20054) Define constructible sets, which are morally sets in a topological space which we can make out of finite unions and intersections of open and closed sets. From GrowthInGroups (LeanCamCombi) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Topology/Constructible.lean + theorem IsRetrocompact.biInter + theorem IsRetrocompact.biUnion + theorem IsRetrocompact.empty + theorem IsRetrocompact.finsetInf' + theorem IsRetrocompact.finsetInf + theorem IsRetrocompact.finsetSup' + theorem IsRetrocompact.finsetSup + theorem IsRetrocompact.iInter + theorem IsRetrocompact.iUnion + theorem IsRetrocompact.image_of_isEmbedding + theorem IsRetrocompact.inter + theorem IsRetrocompact.inter_isOpen + theorem IsRetrocompact.isCompact + theorem IsRetrocompact.isConstructible + theorem IsRetrocompact.isLocallyConstructible + theorem IsRetrocompact.isOpen_inter + theorem IsRetrocompact.preimage_of_isClosedEmbedding + theorem IsRetrocompact.preimage_of_isOpenEmbedding + theorem IsRetrocompact.sInter + theorem IsRetrocompact.sUnion + theorem IsRetrocompact.singleton + theorem IsRetrocompact.union + theorem IsRetrocompact.univ + def IsRetrocompact + theorem IsRetrocompact_iff_isSpectralMap_subtypeVal + theorem TopologicalSpace.IsTopologicalBasis.isConstructible' + theorem TopologicalSpace.IsTopologicalBasis.isConstructible + theorem TopologicalSpace.IsTopologicalBasis.isRetrocompact' + theorem TopologicalSpace.IsTopologicalBasis.isRetrocompact + theorem TopologicalSpace.IsTopologicalBasis.isRetrocompact_iff_isCompact' + theorem TopologicalSpace.IsTopologicalBasis.isRetrocompact_iff_isCompact + theorem Topology.IsConstructible.biInter + theorem Topology.IsConstructible.biUnion + theorem Topology.IsConstructible.empty_union_induction + theorem Topology.IsConstructible.himp + theorem Topology.IsConstructible.iInter + theorem Topology.IsConstructible.iUnion + theorem Topology.IsConstructible.image_of_isClosedEmbedding + theorem Topology.IsConstructible.image_of_isOpenEmbedding + theorem Topology.IsConstructible.induction_of_isTopologicalBasis + theorem Topology.IsConstructible.inter + theorem Topology.IsConstructible.isLocallyConstructible + theorem Topology.IsConstructible.preimage + theorem Topology.IsConstructible.preimage_of_isClosedEmbedding + theorem Topology.IsConstructible.preimage_of_isOpenEmbedding + theorem Topology.IsConstructible.sInter + theorem Topology.IsConstructible.sUnion + theorem Topology.IsConstructible.sdiff + theorem Topology.IsConstructible.union + def Topology.IsConstructible + theorem Topology.IsLocallyConstructible.finsetInf' + theorem Topology.IsLocallyConstructible.finsetInf + theorem Topology.IsLocallyConstructible.iInter + theorem Topology.IsLocallyConstructible.inter + theorem Topology.IsLocallyConstructible.sInter + def Topology.IsLocallyConstructible + theorem Topology.isConstructible_compl + theorem Topology.isConstructible_preimage_iff_of_isOpenEmbedding Modified Mathlib/Topology/Constructions.lean 2025-01-24 09:23:27 a5519b0 doc(Algebra/Category/Ring/Basic): Fix some docstrings (#21014) Fix a few docstrings for `RingCat`, `CommSemiRingCat`, and `CommRingCat` that were incorrectly copied from `SemiRingCat`. ESTIMATED CHANGES Modified Mathlib/Algebra/Category/Ring/Basic.lean 2025-01-24 08:47:59 ffaf975 perf: improves the performance of the `Repr (Equiv.Perm α)` instance (2/4) (#20538) The instance of `Repr (Equiv.Perm α)` uses the following `truncCycleFactors` function: ```lean def cycleFactorsAux [DecidableEq α] [Fintype α] (l : List α) (f : Perm α) (h : ∀ {x}, f x ≠ x → x ∈ l) : { l : List (Perm α) // l.prod = f ∧ (∀ g ∈ l, IsCycle g) ∧ l.Pairwise Disjoint } := match l with | [] => ⟨[], ⋯⟩ | x :: l => if hx : f x = x then cycleFactorsAux l f ⋯ else let ⟨m, hm⟩ := cycleFactorsAux l ((cycleOf f x)⁻¹ * f) ⋯ ⟨cycleOf f x :: m, ⋯⟩ def truncCycleFactors [DecidableEq α] [Fintype α] (f : Perm α) : Trunc { l : List (Perm α) // l.prod = f ∧ (∀ g ∈ l, IsCycle g) ∧ l.Pairwise Disjoint } := Quotient.recOnSubsingleton (motive := fun m => (∀ x, f x ≠ x → x ∈ m) → Trunc { l // l.prod = f ∧ (∀ g ∈ l, g.IsCycle) ∧ List.Pairwise Disjoint l }) (Finset.univ : Finset α).val (fun l h => Trunc.mk (cycleFactorsAux l f ⋯)) ⋯ ``` However, for a permutation consisted of many disjoint cycles, like `(c[0, 1] * c[2, 3] * c[4, 5] * c[6, 7] : Equiv.Perm (Fin 10))`, evaluating returned permutations takes too long. This is because the argument `f` in `cycleFactorsAux` gets more complex per step; `f` to `(cycleOf f x)⁻¹ * f`. To solve this problem, we memorize the first permutation: ```lean def cycleFactorsAux [DecidableEq α] [Fintype α] (l : List α) (f : Perm α) (h : ∀ {x}, f x ≠ x → x ∈ l) : { pl : List (Perm α) // pl.prod = f ∧ (∀ g ∈ pl, IsCycle g) ∧ pl.Pairwise Disjoint } := go l f ⋯ ⋯ where go (l : List α) (g : Perm α) (hg : ∀ {x}, g x ≠ x → x ∈ l) (hfg : ∀ {x}, g x ≠ x → cycleOf f x = cycleOf g x) : { pl : List (Perm α) // pl.prod = g ∧ (∀ g' ∈ pl, IsCycle g') ∧ pl.Pairwise Disjoint } := match l with | [] => ⟨[], ⋯⟩ | x :: l => if hx : g x = x then go l g ⋯ ⋯ else let ⟨m, hm₁, hm₂, hm₃⟩ := go l ((cycleOf f x)⁻¹ * g) ⋯ ⋯ ⟨cycleOf f x :: m, ⋯⟩ ``` ESTIMATED CHANGES Modified Mathlib/GroupTheory/Perm/Cycle/Factors.lean +/- def Equiv.Perm.cycleFactorsAux 2025-01-24 08:30:29 175a60f chore: Golf de Moivre's formula (#21012) Golfs the proof of de Moivre's formula to a single line of rewrites, using a preexisting theorem. ESTIMATED CHANGES Modified Mathlib/Data/Complex/Exponential.lean 2025-01-24 08:30:28 21e96d4 feat(CategoryTheory): (co)limits indexed by preorders (#20335) In this PR, we show very basic results about (co)limits indexed by a preordered type J. `OrderBot J` implies the existence of all limits indexed by `J` (and similarly when `J` has a greatest element). We also introduce the typeclass `HasIterationOfShape C J` which contains the assumptions in order to do constructions by transfinite induction (see #20245 for the application to the small object argument). ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Limits/Shapes/Preorder/Basic.lean + def Preorder.isInitialBot + def Preorder.isTerminalBot Added Mathlib/CategoryTheory/Limits/Shapes/Preorder/HasIterationOfShape.lean + theorem CategoryTheory.Limits.hasColimitsOfShape_of_isSuccLimit 2025-01-24 07:58:30 8a9bd06 feat(MeasureTheory): additive contents on rings of sets (#20977) Two main results: - a function on a ring of sets which is additive on pairs of disjoint sets defines an additive content - if an additive content is continuous at `∅`, then its value on a countable disjoint union is the sum of the values Part of the formalization of Kolmogorov's extension theorem. ESTIMATED CHANGES Modified Mathlib/Data/Nat/Lattice.lean + theorem Set.accumulate_succ Modified Mathlib/Data/Set/Accumulate.lean + theorem Set.accumulate_zero_nat + theorem Set.disjoint_accumulate Modified Mathlib/MeasureTheory/Measure/AddContent.lean + def MeasureTheory.IsSetRing.addContent_of_union + theorem MeasureTheory.addContent_accumulate + theorem MeasureTheory.addContent_diff_of_ne_top + theorem MeasureTheory.addContent_iUnion_eq_sum_of_tendsto_zero Modified Mathlib/MeasureTheory/SetSemiring.lean + theorem MeasureTheory.IsSetRing.accumulate_mem + theorem MeasureTheory.IsSetRing.iInter_le_mem + theorem MeasureTheory.IsSetRing.iUnion_le_mem Modified Mathlib/Topology/Instances/ENNReal/Lemmas.lean + theorem ENNReal.tendsto_const_sub_nhds_zero_iff 2025-01-24 06:06:32 5fb85e0 feat: constructible sets in the prime spectrum (#20274) Provide tooling for manipulating constructible sets in the prime spectrum of a ring. From GrowthInGroups (LeanCamCombi) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/RingTheory/Spectrum/Prime/ConstructibleSet.lean + def PrimeSpectrum.ConstructibleSetData.degBound + def PrimeSpectrum.ConstructibleSetData.map + theorem PrimeSpectrum.ConstructibleSetData.map_comp + theorem PrimeSpectrum.ConstructibleSetData.map_id + def PrimeSpectrum.ConstructibleSetData.toSet + theorem PrimeSpectrum.ConstructibleSetData.toSet_map 2025-01-24 05:43:16 130893c feat: split a set in the prime spectrum of `R[X]` into its localization away from `c : R` and quotient by `c` parts (#20303) From GrowthInGroups (LeanCamCombi) ESTIMATED CHANGES Modified Mathlib/Data/Set/Image.lean + theorem Set.image_of_range_union_range_eq_univ Modified Mathlib/RingTheory/Spectrum/Prime/Topology.lean + theorem PrimeSpectrum.coe_comap + theorem PrimeSpectrum.comap_apply + theorem PrimeSpectrum.range_comap_algebraMap_localization_compl_eq_range_comap_quotientMk 2025-01-24 00:30:42 08dea19 chore(Mathlib/Algebra/Quaternion): Generalize Quaternion Algebra (#20657) ESTIMATED CHANGES Modified Mathlib/Algebra/Quaternion.lean +/- theorem Cardinal.mk_quaternionAlgebra +/- theorem Cardinal.mk_quaternionAlgebra_of_infinite +/- theorem Cardinal.mk_univ_quaternionAlgebra +/- def Quaternion.equivProd +/- def Quaternion.equivTuple +/- theorem Quaternion.equivTuple_apply +/- theorem Quaternion.im_star +/- theorem Quaternion.star_re +/- def Quaternion +/- theorem QuaternionAlgebra.algebraMap_eq +/- theorem QuaternionAlgebra.algebraMap_injective +/- def QuaternionAlgebra.coe +/- theorem QuaternionAlgebra.coe_add +/- theorem QuaternionAlgebra.coe_algebraMap +/- theorem QuaternionAlgebra.coe_basisOneIJK_repr +/- theorem QuaternionAlgebra.coe_im +/- theorem QuaternionAlgebra.coe_imI +/- theorem QuaternionAlgebra.coe_imJ +/- theorem QuaternionAlgebra.coe_imK +/- theorem QuaternionAlgebra.coe_inj +/- theorem QuaternionAlgebra.coe_injective +/- theorem QuaternionAlgebra.coe_intCast +/- theorem QuaternionAlgebra.coe_linearEquivTuple +/- theorem QuaternionAlgebra.coe_linearEquivTuple_symm +/- theorem QuaternionAlgebra.coe_mul +/- theorem QuaternionAlgebra.coe_natCast +/- theorem QuaternionAlgebra.coe_neg + theorem QuaternionAlgebra.coe_ofNat +/- theorem QuaternionAlgebra.coe_one +/- theorem QuaternionAlgebra.coe_pow +/- theorem QuaternionAlgebra.coe_re +/- theorem QuaternionAlgebra.coe_starAe +/- theorem QuaternionAlgebra.coe_sub +/- theorem QuaternionAlgebra.coe_zero + theorem QuaternionAlgebra.comm +/- theorem QuaternionAlgebra.eq_re_iff_mem_range_coe +/- theorem QuaternionAlgebra.eq_re_of_eq_coe +/- def QuaternionAlgebra.equivProd +/- def QuaternionAlgebra.equivTuple +/- theorem QuaternionAlgebra.equivTuple_apply +/- theorem QuaternionAlgebra.finrank_eq_four +/- def QuaternionAlgebra.im +/- def QuaternionAlgebra.imIₗ +/- def QuaternionAlgebra.imJₗ +/- def QuaternionAlgebra.imKₗ +/- theorem QuaternionAlgebra.intCast_im +/- theorem QuaternionAlgebra.intCast_imI +/- theorem QuaternionAlgebra.intCast_imJ +/- theorem QuaternionAlgebra.intCast_imK +/- theorem QuaternionAlgebra.intCast_re +/- def QuaternionAlgebra.linearEquivTuple +/- theorem QuaternionAlgebra.mk.eta +/- theorem QuaternionAlgebra.mul_imI +/- theorem QuaternionAlgebra.mul_imJ +/- theorem QuaternionAlgebra.mul_imK +/- theorem QuaternionAlgebra.mul_re +/- theorem QuaternionAlgebra.natCast_im +/- theorem QuaternionAlgebra.natCast_imI +/- theorem QuaternionAlgebra.natCast_imJ +/- theorem QuaternionAlgebra.natCast_imK +/- theorem QuaternionAlgebra.natCast_re +/- theorem QuaternionAlgebra.neg_mk + theorem QuaternionAlgebra.ofNat_im + theorem QuaternionAlgebra.ofNat_imI + theorem QuaternionAlgebra.ofNat_imJ + theorem QuaternionAlgebra.ofNat_imK + theorem QuaternionAlgebra.ofNat_re +/- theorem QuaternionAlgebra.one_im +/- theorem QuaternionAlgebra.one_imI +/- theorem QuaternionAlgebra.one_imJ +/- theorem QuaternionAlgebra.one_imK +/- theorem QuaternionAlgebra.one_re +/- theorem QuaternionAlgebra.rank_eq_four +/- theorem QuaternionAlgebra.re_star +/- def QuaternionAlgebra.reₗ +/- theorem QuaternionAlgebra.self_add_star' +/- theorem QuaternionAlgebra.self_add_star +/- theorem QuaternionAlgebra.smul_coe +/- def QuaternionAlgebra.starAe +/- theorem QuaternionAlgebra.star_add_self' +/- theorem QuaternionAlgebra.star_add_self +/- theorem QuaternionAlgebra.star_coe +/- theorem QuaternionAlgebra.star_eq_neg +/- theorem QuaternionAlgebra.star_eq_self +/- theorem QuaternionAlgebra.star_eq_two_re_sub +/- theorem QuaternionAlgebra.star_im +/- theorem QuaternionAlgebra.star_mk + theorem QuaternionAlgebra.star_smul' +/- theorem QuaternionAlgebra.star_smul +/- def QuaternionAlgebra.swapEquiv +/- theorem QuaternionAlgebra.zero_im +/- theorem QuaternionAlgebra.zero_imI +/- theorem QuaternionAlgebra.zero_imJ +/- theorem QuaternionAlgebra.zero_imK +/- theorem QuaternionAlgebra.zero_re +/- structure QuaternionAlgebra Modified Mathlib/Algebra/QuaternionBasis.lean +/- def QuaternionAlgebra.Basis.compHom +/- theorem QuaternionAlgebra.Basis.i_mul_k +/- theorem QuaternionAlgebra.Basis.j_mul_k +/- theorem QuaternionAlgebra.Basis.k_mul_j +/- theorem QuaternionAlgebra.Basis.k_mul_k +/- def QuaternionAlgebra.Basis.lift +/- def QuaternionAlgebra.Basis.liftHom +/- theorem QuaternionAlgebra.Basis.lift_add +/- theorem QuaternionAlgebra.Basis.lift_mul +/- theorem QuaternionAlgebra.Basis.lift_one +/- theorem QuaternionAlgebra.Basis.lift_smul +/- theorem QuaternionAlgebra.Basis.lift_zero +/- structure QuaternionAlgebra.Basis +/- theorem QuaternionAlgebra.hom_ext +/- def QuaternionAlgebra.lift Modified Mathlib/Analysis/Quaternion.lean Modified Mathlib/LinearAlgebra/CliffordAlgebra/Equivs.lean +/- def CliffordAlgebraQuaternion.ofQuaternion +/- theorem CliffordAlgebraQuaternion.ofQuaternion_star +/- def CliffordAlgebraQuaternion.quaternionBasis +/- def CliffordAlgebraQuaternion.toQuaternion +/- theorem CliffordAlgebraQuaternion.toQuaternion_ofQuaternion 2025-01-24 00:21:23 75d8e21 feat: IsLocalHom for MonoidAlgebra (#20934) ESTIMATED CHANGES Modified Mathlib/Algebra/MonoidAlgebra/Basic.lean Modified Mathlib/Algebra/MonoidAlgebra/Defs.lean 2025-01-23 21:56:58 2a71f56 fix: add missing `MonoidAlgebra.smul_single` (#20933) This eliminates some `erw`s. Also fixes bad generated simp lemmas about `singleOneRingHom` and `singleZeroRingHom`, which previously included unwanted `toFun` terms. ESTIMATED CHANGES Modified Counterexamples/ZeroDivisorsInAddMonoidAlgebras.lean Modified Mathlib/Algebra/MonoidAlgebra/Defs.lean + theorem AddMonoidAlgebra.smul_single + theorem MonoidAlgebra.smul_single Modified Mathlib/Algebra/Polynomial/Basic.lean 2025-01-23 21:13:41 764d7e7 feat: add `fast_instance%` elaborator (#11521) Quoting the docstring: `fast_instance% inst` takes an expression for a typeclass instance `inst`, and unfolds it into constructor applications that leverage existing instances. For instance, when used as ```lean instance instSemiring : Semiring X := sorry instance instRing : Ring X := fast_instance% Function.Injective.ring .. ``` this will define `instRing` as a nested constructor application that refers to `instSemiring`. The advantage is then that `instRing.toSemiring` unifies almost immediately with `instSemiring`, rather than having to break it down into smaller pieces. Related to #7432 ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Tactic.lean Added Mathlib/Tactic/FastInstance.lean + def Mathlib.Elab.FastInstance.elabFastInstance Added MathlibTest/fast_instance.lean + def testing.Function.Injective.commMagma + def testing.Function.Injective.commSemigroup + def testing.Function.Injective.semigroup + structure testing.Wrapped + def testing.dec2 + theorem testing.val_injective 2025-01-23 19:32:27 ab9317e feat(RingTheory/Artinian): rewrite results using spectra types instead of sets (#20828) Rewrite results about artinian rings using `MaximalSpectrum` and `PrimeSpectrum` instead of sets `{I | I.IsMaximal}` and `{I | I.IsPrime}`. ESTIMATED CHANGES Modified Mathlib/RingTheory/Artinian/Instances.lean Modified Mathlib/RingTheory/Artinian/Module.lean - theorem IsArtinianRing.maximal_ideals_finite + def IsArtinianRing.primeSpectrumEquivMaximalSpectrum + theorem IsArtinianRing.primeSpectrumEquivMaximalSpectrum_comp_asIdeal + theorem IsArtinianRing.primeSpectrumEquivMaximalSpectrum_symm_comp_asIdeal + theorem IsArtinianRing.primeSpectrum_asIdeal_range_eq - theorem IsArtinianRing.primeSpectrum_finite + theorem IsArtinianRing.setOf_isMaximal_finite + theorem IsArtinianRing.setOf_isPrime_finite - theorem IsArtinianRing.subtype_isMaximal_finite Modified Mathlib/RingTheory/Etale/Field.lean Modified Mathlib/RingTheory/Spectrum/Maximal/Basic.lean + def MaximalSpectrum.equivSubtype + theorem MaximalSpectrum.range_asIdeal Modified Mathlib/RingTheory/Spectrum/Prime/Basic.lean + theorem PrimeSpectrum.nilradical_eq_iInf + theorem PrimeSpectrum.range_asIdeal Modified Mathlib/RingTheory/Spectrum/Prime/Noetherian.lean 2025-01-23 19:32:25 d82bc8c feat(Algebra/Homology): quasi-isomorphisms are stable under retracts and have the 2/3 property (#20221) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Homology/QuasiIso.lean +/- theorem HomologicalComplex.mem_quasiIso_iff + theorem quasiIsoAt_of_retract + theorem quasiIso_of_retractArrow Added Mathlib/Algebra/Homology/ShortComplex/Retract.lean + theorem CategoryTheory.ShortComplex.quasiIso_of_retract 2025-01-23 19:32:24 f4e2c6d feat(CategoryTheory/Abelian): projective dimension (#19604) We introduce a typeclass `HasProjectiveDimensionLT X n` expressing that `Ext X Y i` all vanish when `n ≤ i`. We study how it behaves with respect to short exact sequences. When #19591 will be merged, it will possible to show `HasProjectiveDimensionLT X 1 ↔ Projective X`. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Homology/DerivedCategory/Ext/Basic.lean + theorem CategoryTheory.HasExt.standard Added Mathlib/CategoryTheory/Abelian/ProjectiveDimension.lean + theorem CategoryTheory.Abelian.Ext.eq_zero_of_hasProjectiveDimensionLT + theorem CategoryTheory.HasProjectiveDimensionLT.mk + theorem CategoryTheory.HasProjectiveDimensionLT.subsingleton + theorem CategoryTheory.Limits.IsZero.hasProjectiveDimensionLT_zero + theorem CategoryTheory.Retract.hasProjectiveDimensionLT + theorem CategoryTheory.ShortComplex.ShortExact.hasProjectiveDimensionLT_X₁ + theorem CategoryTheory.ShortComplex.ShortExact.hasProjectiveDimensionLT_X₂ + theorem CategoryTheory.ShortComplex.ShortExact.hasProjectiveDimensionLT_X₃ + theorem CategoryTheory.ShortComplex.ShortExact.hasProjectiveDimensionLT_X₃_iff + theorem CategoryTheory.hasProjectiveDimensionLT_iff + theorem CategoryTheory.hasProjectiveDimensionLT_of_ge + theorem CategoryTheory.hasProjectiveDimensionLT_of_iso Modified Mathlib/CategoryTheory/Retract.lean + def CategoryTheory.Iso.retract + def CategoryTheory.Retract.refl + def CategoryTheory.Retract.trans 2025-01-23 18:56:36 3330420 feat(Algebra/FreeMonoid): free monoids over isomorphic types are isomorphic (#18563) Free monoids over isomorphic types are isomorphic. Also, converting a relation on free monoid α to free monoids over β, when α and β are isomorphic ESTIMATED CHANGES Modified Mathlib/Algebra/FreeMonoid/Basic.lean + def FreeMonoid.freeMonoidCongr + theorem FreeMonoid.freeMonoidCongr_of + theorem FreeMonoid.freeMonoidCongr_symm_of + theorem FreeMonoid.map_apply_map_symm_eq + theorem FreeMonoid.map_symm_apply_map_eq 2025-01-23 18:20:52 27deb23 refactor(FieldTheory/Normal): Split file (#20724) This PR splits `FieldTheory/Normal`. In particular, the proof of normal iff splitting field is now in `FieldTheory/Normal/Basic`. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/FieldTheory/AlgebraicClosure.lean Modified Mathlib/FieldTheory/Fixed.lean Modified Mathlib/FieldTheory/Galois/Basic.lean Modified Mathlib/FieldTheory/Galois/GaloisClosure.lean Modified Mathlib/FieldTheory/IsAlgClosed/Basic.lean Modified Mathlib/FieldTheory/Isaacs.lean Modified Mathlib/FieldTheory/Minpoly/IsConjRoot.lean Renamed Mathlib/FieldTheory/Normal.lean to Mathlib/FieldTheory/Normal/Basic.lean - def AlgEquiv.restrictNormal - def AlgEquiv.restrictNormalHom - theorem AlgEquiv.restrictNormalHom_apply - theorem AlgEquiv.restrictNormalHom_id - theorem AlgEquiv.restrictNormal_commutes - theorem AlgEquiv.restrictNormal_trans - theorem AlgEquiv.transfer_normal - theorem AlgHom.normal_bijective - def AlgHom.restrictNormal' - def AlgHom.restrictNormal - def AlgHom.restrictNormalAux - theorem AlgHom.restrictNormal_commutes - theorem AlgHom.restrictNormal_comp - theorem IntermediateField.restrictScalars_normal - theorem IsScalarTower.AlgEquiv.restrictNormalHom_comp - theorem IsScalarTower.AlgEquiv.restrictNormalHom_comp_apply - def Normal.algHomEquivAut - theorem Normal.isIntegral - theorem Normal.of_algEquiv - theorem Normal.out - theorem Normal.splits - theorem Normal.tower_top_of_normal - theorem normal_iff Renamed Mathlib/FieldTheory/NormalClosure.lean to Mathlib/FieldTheory/Normal/Closure.lean Added Mathlib/FieldTheory/Normal/Defs.lean + def AlgEquiv.restrictNormal + def AlgEquiv.restrictNormalHom + theorem AlgEquiv.restrictNormalHom_apply + theorem AlgEquiv.restrictNormalHom_id + theorem AlgEquiv.restrictNormal_commutes + theorem AlgEquiv.restrictNormal_trans + theorem AlgEquiv.transfer_normal + theorem AlgHom.normal_bijective + def AlgHom.restrictNormal' + def AlgHom.restrictNormal + def AlgHom.restrictNormalAux + theorem AlgHom.restrictNormal_commutes + theorem AlgHom.restrictNormal_comp + theorem IntermediateField.restrictScalars_normal + theorem IsScalarTower.AlgEquiv.restrictNormalHom_comp + theorem IsScalarTower.AlgEquiv.restrictNormalHom_comp_apply + def Normal.algHomEquivAut + theorem Normal.isIntegral + theorem Normal.of_algEquiv + theorem Normal.out + theorem Normal.splits + theorem Normal.tower_top_of_normal + theorem normal_iff Modified Mathlib/FieldTheory/PrimitiveElement.lean Modified Mathlib/FieldTheory/SeparableDegree.lean 2025-01-23 17:58:07 eb87fb4 feat: the functor `Ind.lim I : (I ⥤ C) ⥤ Ind C` (#20992) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Limits/Indization/Category.lean 2025-01-23 17:46:20 6c6a89a doc(RingTheory/LaurentSeries): correct docstring (#20990) Remove a superfluous backtick and remove `.symm` in a lemma of the docstring so that it can be made clickable. ESTIMATED CHANGES Modified Mathlib/RingTheory/LaurentSeries.lean 2025-01-23 17:36:57 d6544fe feat(AlgebraicTopology): rename standardSimplex to stdSimplex (#20974) Moves: - SSet.standardSimplex -> SSet.stdSimplex - SSet.standardSimplex.* -> SSet.stdSimplex.* ESTIMATED CHANGES Modified Mathlib/AlgebraicTopology/ExtraDegeneracy.lean Modified Mathlib/AlgebraicTopology/Quasicategory/StrictSegal.lean Modified Mathlib/AlgebraicTopology/SimplicialSet/Basic.lean - theorem SSet.standardSimplex.coe_edge_down_toOrderHom - theorem SSet.standardSimplex.coe_triangle_down_toOrderHom - def SSet.standardSimplex.const - theorem SSet.standardSimplex.const_down_toOrderHom - def SSet.standardSimplex.edge - def SSet.standardSimplex.id - theorem SSet.standardSimplex.id_eq_objEquiv_symm - theorem SSet.standardSimplex.map_apply - theorem SSet.standardSimplex.map_id - def SSet.standardSimplex.objEquiv - theorem SSet.standardSimplex.objEquiv_id - def SSet.standardSimplex.triangle - def SSet.standardSimplex + theorem SSet.stdSimplex.coe_edge_down_toOrderHom + theorem SSet.stdSimplex.coe_triangle_down_toOrderHom + def SSet.stdSimplex.const + theorem SSet.stdSimplex.const_down_toOrderHom + def SSet.stdSimplex.edge + def SSet.stdSimplex.id + theorem SSet.stdSimplex.id_eq_objEquiv_symm + theorem SSet.stdSimplex.map_apply + theorem SSet.stdSimplex.map_id + def SSet.stdSimplex.objEquiv + theorem SSet.stdSimplex.objEquiv_id + def SSet.stdSimplex.triangle + def SSet.stdSimplex Modified Mathlib/AlgebraicTopology/SimplicialSet/Path.lean - def SSet.standardSimplex.spineId + def SSet.stdSimplex.spineId 2025-01-23 16:30:10 fe0ee9b feat(Data/Control/Traversable/Instances): Add (Lawful)Traversable instance for Tree (#18818) This PR completes a TODO; this PR closes #13572. It was suggested at the issue that this could also be done with the `derive` handler for `(Lawful)Traversable`, but as mentioned there, that generates `map` and `traverse` functions that are not as universe-polymorphic. For writing the `Lawful` proof i took inspiration from the same instance for `FreeMagma` ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Data/Tree/Basic.lean + theorem Tree.comp_map + theorem Tree.id_map + def Tree.traverse + theorem Tree.traverse_pure Added Mathlib/Data/Tree/Traversable.lean + theorem Tree.comp_traverse + theorem Tree.naturality + theorem Tree.traverse_eq_map_id 2025-01-23 15:49:28 86b1020 feat: inj/cancel from mono (#20973) Prove injectivity/cancellability of mul/add assuming some monotonicity. These results were rescued from #6627. ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Monoid/Unbundled/Basic.lean + theorem MulLeftStrictMono.toIsLeftCancelMul + theorem MulRightStrictMono.toIsRightCancelMul + theorem mul_left_inj_of_comparable +/- theorem mul_left_mono + theorem mul_left_strictMono + theorem mul_right_inj_of_comparable +/- theorem mul_right_mono + theorem mul_right_strictMono 2025-01-23 15:33:18 e36d9d7 feat: interval integrability of periodic functions (#20938) Add a theorem showing that a periodic function is interval integrable over every interval if it is interval integrable over one period. Add docstrings with section headings to improve readability. The theorem is used in [Project VD](https://github.com/kebekus/ProjectVD), which aims to formalize Value Distribution Theory for meromorphic functions on the complex plane. ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Integral/Periodic.lean +/- theorem Function.Periodic.integral_le_sSup_add_zsmul_of_pos + theorem Function.Periodic.intervalIntegrable + theorem Function.Periodic.intervalIntegrable₀ +/- theorem Function.Periodic.sInf_add_zsmul_le_integral_of_pos +/- theorem Function.Periodic.tendsto_atBot_intervalIntegral_of_pos' +/- theorem Function.Periodic.tendsto_atTop_intervalIntegral_of_pos' 2025-01-23 15:00:24 6462409 feat(Analysis/SpecialFunctions): generalise away from nat (#20986) Generalise the first four lemmas in this file to have an arbitrary indexing type rather than nat. Despite the diff looking strange, the only user-facing change here is that the lemmas are strictly more general. ESTIMATED CHANGES Modified Mathlib/Analysis/SpecialFunctions/Log/Summable.lean +/- theorem Complex.multipliable_one_add_of_summable +/- theorem Complex.summable_log_one_add_of_summable +/- theorem Real.multipliable_one_add_of_summable +/- theorem Real.summable_log_one_add_of_summable 2025-01-23 13:08:27 b632e4b chore(Algebra/FreeMonoid/Count): remove defeq abuse around `FreeMonoid.countP` (#20156) as requested on [zulip](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Mathlib.2FAlgebra.2FFreeMonoid.2FCount.2Elean) ESTIMATED CHANGES Modified Mathlib/Algebra/FreeMonoid/Basic.lean +/- def FreeMonoid.length Modified Mathlib/Algebra/FreeMonoid/Count.lean +/- theorem FreeAddMonoid.countP_apply +/- theorem FreeAddMonoid.countP_of +/- theorem FreeAddMonoid.count_apply +/- theorem FreeAddMonoid.count_of + def FreeMonoid.countP' + theorem FreeMonoid.countP'_mul + theorem FreeMonoid.countP'_one +/- def FreeMonoid.countP +/- theorem FreeMonoid.countP_apply - theorem FreeMonoid.countP_of' +/- theorem FreeMonoid.countP_of 2025-01-23 12:20:02 da8db71 chore: fix some declarations using `coprime` (#20982) Overwhelmingly `isCoprime` is used in names when it is also used in the theorem statement. Here we fix the last instances where `coprime` was used instead. Follow up to #20976. ESTIMATED CHANGES Modified Mathlib/FieldTheory/SeparableDegree.lean Modified Mathlib/NumberTheory/DiophantineApproximation/Basic.lean Modified Mathlib/NumberTheory/FLT/Four.lean - theorem Int.coprime_of_sq_sum' - theorem Int.coprime_of_sq_sum + theorem Int.isCoprime_of_sq_sum' + theorem Int.isCoprime_of_sq_sum Modified Mathlib/NumberTheory/Zsqrtd/Basic.lean - theorem Zsqrtd.coprime_of_dvd_coprime + theorem Zsqrtd.isCoprime_of_dvd_isCoprime Modified Mathlib/RingTheory/EuclideanDomain.lean Modified Mathlib/RingTheory/Int/Basic.lean - theorem Int.coprime_iff_nat_coprime + theorem Int.isCoprime_iff_nat_coprime - theorem Int.sq_of_coprime + theorem Int.sq_of_isCoprime Modified Mathlib/RingTheory/Polynomial/Basic.lean - theorem Polynomial.disjoint_ker_aeval_of_coprime + theorem Polynomial.disjoint_ker_aeval_of_isCoprime - theorem Polynomial.sup_aeval_range_eq_top_of_coprime + theorem Polynomial.sup_aeval_range_eq_top_of_isCoprime Modified Mathlib/RingTheory/PrincipalIdealDomain.lean - theorem Irreducible.coprime_or_dvd - theorem Irreducible.dvd_iff_not_coprime + theorem Irreducible.dvd_iff_not_isCoprime + theorem Irreducible.isCoprime_or_dvd - theorem dvd_or_coprime + theorem dvd_or_isCoprime Modified Mathlib/RingTheory/RootsOfUnity/Minpoly.lean 2025-01-23 12:20:01 5eb97b6 chore(CondExp): golf (#20981) * Remove useless `@` * Remove useless `haveI`/`letI` * Make `m` explicit in `condExp_add`, `condExp_sub`, etc... for use inside `filter_upwards`. Currently, using one of those lemmas in `filter_upwards` results in metavariables. * Reorder the file according to typeclass assumptions * Rename the base σ-algebra to `m₀` and the normed space to `E` From my PhD (LeanCamCombi) ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Function/ConditionalExpectation/Basic.lean +/- theorem MeasureTheory.Memℒp.condExpL2_ae_eq_condExp' +/- theorem MeasureTheory.Memℒp.condExpL2_ae_eq_condExp +/- theorem MeasureTheory.ae_eq_condExp_of_forall_setIntegral_eq +/- theorem MeasureTheory.condExp_add +/- theorem MeasureTheory.condExp_ae_eq_condExpL1 +/- theorem MeasureTheory.condExp_ae_eq_condExpL1CLM +/- theorem MeasureTheory.condExp_bot' +/- theorem MeasureTheory.condExp_bot +/- theorem MeasureTheory.condExp_bot_ae_eq +/- theorem MeasureTheory.condExp_condExp_of_le +/- theorem MeasureTheory.condExp_const +/- theorem MeasureTheory.condExp_finset_sum +/- theorem MeasureTheory.condExp_mono +/- theorem MeasureTheory.condExp_neg +/- theorem MeasureTheory.condExp_nonneg +/- theorem MeasureTheory.condExp_nonpos +/- theorem MeasureTheory.condExp_of_aestronglyMeasurable' +/- theorem MeasureTheory.condExp_of_not_le +/- theorem MeasureTheory.condExp_of_not_sigmaFinite +/- theorem MeasureTheory.condExp_of_sigmaFinite +/- theorem MeasureTheory.condExp_of_stronglyMeasurable +/- theorem MeasureTheory.condExp_smul +/- theorem MeasureTheory.condExp_sub +/- theorem MeasureTheory.condExp_zero +/- theorem MeasureTheory.eLpNorm_condExp_le +/- theorem MeasureTheory.integral_condExp +/- theorem MeasureTheory.integral_condExp_indicator +/- theorem MeasureTheory.setIntegral_condExp +/- theorem MeasureTheory.tendsto_condExpL1_of_dominated_convergence +/- theorem MeasureTheory.tendsto_condExp_unique Modified Mathlib/MeasureTheory/Function/ConditionalExpectation/Indicator.lean Modified Mathlib/MeasureTheory/Function/ConditionalExpectation/Real.lean Modified Mathlib/Probability/Martingale/Basic.lean Modified Mathlib/Probability/Martingale/Centering.lean Modified Mathlib/Probability/Martingale/Convergence.lean 2025-01-23 12:19:59 cae01b3 feat(MvPolynomial): commuting the variables of mv-polynomials of mv-polynomials (#20447) From GrowthInGroups (LeanCamCombi) ESTIMATED CHANGES Modified Mathlib/Algebra/MvPolynomial/Equiv.lean +/- theorem MvPolynomial.aeval_injective_iff_of_isEmpty + def MvPolynomial.commAlgEquiv + theorem MvPolynomial.commAlgEquiv_C + theorem MvPolynomial.commAlgEquiv_C_X + theorem MvPolynomial.commAlgEquiv_X +/- def MvPolynomial.isEmptyAlgEquiv +/- def MvPolynomial.isEmptyRingEquiv + theorem MvPolynomial.isEmptyRingEquiv_eq_coeff_zero + theorem MvPolynomial.isEmptyRingEquiv_symm_apply + theorem MvPolynomial.isEmptyRingEquiv_symm_toRingHom 2025-01-23 11:42:49 e73fda6 chore(Algebra/Group/Even): Clean up file (#20558) * Rename some theorems to remove primed variants * Move `simp` attribute from `IsSquare.sq` to `Even.isSquare_pow` for consistency * Remove unhelpful alias * Golf some proofs * Make notation consistent throughout proofs Moves: `Even.nsmul` -> `Even.nsmul_right` `Even.nsmul'` -> `Even.nsmul_left` `Even.zsmul` -> `Even.zsmul_right` `Even.zsmul'` -> `Even.zsmul_left` `isSquare_zero` -> `IsSquare.zero` Deletions: `isSquare_of_exists_sq` (prefer `IsSquare.sq`) ESTIMATED CHANGES Modified Mathlib/Algebra/Field/Power.lean Modified Mathlib/Algebra/GeomSum.lean Modified Mathlib/Algebra/Group/Even.lean +/- theorem Even.isSquare_pow +/- theorem IsSquare.map +/- theorem IsSquare.mul_self +/- theorem IsSquare.pow +/- theorem IsSquare.sq +/- theorem IsSquare.zpow +/- theorem isSquare_iff_exists_sq Modified Mathlib/Algebra/Group/Nat/Even.lean Modified Mathlib/Algebra/Order/Field/Power.lean Modified Mathlib/Algebra/Ring/Parity.lean + theorem IsSquare.zero - theorem isSquare_zero Modified Mathlib/AlgebraicGeometry/EllipticCurve/DivisionPolynomial/Basic.lean Modified Mathlib/Data/Bool/Count.lean Modified Mathlib/Data/Nat/Hyperoperation.lean Modified Mathlib/GroupTheory/Coxeter/Basic.lean Modified Mathlib/NumberTheory/LegendreSymbol/QuadraticChar/Basic.lean Modified Mathlib/NumberTheory/LegendreSymbol/QuadraticChar/GaussSum.lean Modified Mathlib/NumberTheory/NumberField/Embeddings.lean Modified Mathlib/NumberTheory/SumTwoSquares.lean 2025-01-23 09:23:36 8fac96b chore(CategoryTheory/Subpresheaf): split files (#20978) This PR only moves definitions and lemmas into two new files `Subpresheaf.Sieves` and `Subpresheaf.Image` in order to prepare for the development of new API. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/CategoryTheory/Sites/Subsheaf.lean Modified Mathlib/CategoryTheory/Subpresheaf/Basic.lean - def CategoryTheory.Subpresheaf.familyOfElementsOfSection - theorem CategoryTheory.Subpresheaf.family_of_elements_compatible - def CategoryTheory.Subpresheaf.lift - theorem CategoryTheory.Subpresheaf.lift_ι - def CategoryTheory.Subpresheaf.sieveOfSection - def CategoryTheory.imagePresheaf - theorem CategoryTheory.imagePresheaf_comp_le - theorem CategoryTheory.imagePresheaf_id - def CategoryTheory.toImagePresheaf - theorem CategoryTheory.toImagePresheaf_ι Added Mathlib/CategoryTheory/Subpresheaf/Image.lean + def CategoryTheory.Subpresheaf.lift + theorem CategoryTheory.Subpresheaf.lift_ι + def CategoryTheory.imagePresheaf + theorem CategoryTheory.imagePresheaf_comp_le + theorem CategoryTheory.imagePresheaf_id + def CategoryTheory.toImagePresheaf + theorem CategoryTheory.toImagePresheaf_ι Added Mathlib/CategoryTheory/Subpresheaf/Sieves.lean + def CategoryTheory.Subpresheaf.familyOfElementsOfSection + theorem CategoryTheory.Subpresheaf.family_of_elements_compatible + def CategoryTheory.Subpresheaf.sieveOfSection 2025-01-23 09:23:35 94f2926 chore: remove a few porting notes (#20969) ESTIMATED CHANGES Modified Mathlib/Algebra/ContinuedFractions/Computation/TerminatesIffRat.lean Modified Mathlib/Data/Finsupp/Fin.lean Modified Mathlib/Data/Nat/Factorization/Basic.lean Modified Mathlib/Geometry/Euclidean/MongePoint.lean Modified Mathlib/Geometry/RingedSpace/PresheafedSpace/Gluing.lean Modified Mathlib/LinearAlgebra/Matrix/NonsingularInverse.lean 2025-01-23 09:23:34 403e2d8 chore(MvPolynomial/Degrees): append `_le` in lemma names (#20294) The current names are incorrect. ESTIMATED CHANGES Modified Mathlib/Algebra/MvPolynomial/CommRing.lean - theorem MvPolynomial.degrees_sub + theorem MvPolynomial.degrees_sub_le Modified Mathlib/Algebra/MvPolynomial/Degrees.lean - theorem MvPolynomial.degrees_add + theorem MvPolynomial.degrees_add_le +/- theorem MvPolynomial.degrees_add_of_disjoint - theorem MvPolynomial.degrees_map + theorem MvPolynomial.degrees_map_le - theorem MvPolynomial.degrees_mul + theorem MvPolynomial.degrees_mul_le - theorem MvPolynomial.degrees_pow + theorem MvPolynomial.degrees_pow_le - theorem MvPolynomial.degrees_prod + theorem MvPolynomial.degrees_prod_le - theorem MvPolynomial.degrees_sum + theorem MvPolynomial.degrees_sum_le - theorem MvPolynomial.le_degrees_add + theorem MvPolynomial.le_degrees_add_left + theorem MvPolynomial.le_degrees_add_right Modified Mathlib/Algebra/MvPolynomial/Variables.lean +/- theorem MvPolynomial.vars_map Modified Mathlib/FieldTheory/Finite/Polynomial.lean 2025-01-23 08:42:05 3abd04b chore(Algebra/GroupWithZero/Units/Basic): drop unnecessary porting note (#20975) rfl after simp_rw applied to the regular lean codebase in https://github.com/leanprover-community/mathlib4/pull/1096; the porting note is now outdated. ESTIMATED CHANGES Modified Mathlib/Algebra/GroupWithZero/Units/Basic.lean 2025-01-23 07:42:06 a6e1dfd feat: more lemmas for `enorm` (#20966) These follow the existing `norm` and `nnnorm`. The large import comes from the fact that we need to import `Topology.Instances.ENNReal` to state `continuous_enorm : Continuous (‖·‖ₑ)`. ESTIMATED CHANGES Modified Mathlib/Analysis/InnerProductSpace/NormPow.lean + theorem enorm_fderiv_norm_rpow_le Modified Mathlib/Analysis/Normed/Field/Basic.lean + theorem NNReal.enorm_eq +/- theorem NNReal.nnnorm_eq +/- theorem NormOneClass.nontrivial + theorem enorm_inv + theorem enorm_mul + theorem enorm_one + theorem enorm_pow +/- theorem nnnorm_mul - theorem nnnorm_norm +/- theorem nnnorm_one - theorem norm_norm Modified Mathlib/Analysis/Normed/Group/Basic.lean + theorem Continuous.enorm' + theorem ContinuousAt.enorm' + theorem ContinuousOn.enorm' + theorem ContinuousWithinAt.enorm' + theorem Filter.Tendsto.enorm' + theorem Real.enorm_abs + theorem Real.enorm_natCast + theorem Real.enorm_of_nonneg +/- theorem Real.nnnorm_abs + theorem coe_le_enorm + theorem coe_lt_enorm + theorem continuous_enorm' + theorem enorm_div_le +/- theorem enorm_eq_nnnorm + theorem enorm_eq_zero' + theorem enorm_inv' + theorem enorm_le_coe + theorem enorm_lt_coe + theorem enorm_lt_top + theorem enorm_mul_le' + theorem enorm_ne_top + theorem enorm_ne_zero' + theorem enorm_norm' + theorem enorm_one' + theorem enorm_pos' + theorem nnnorm_norm' + theorem norm_norm' + theorem ofReal_norm' + theorem toReal_enorm' Modified Mathlib/Analysis/Normed/Group/Completion.lean + theorem UniformSpace.Completion.enorm_coe Modified Mathlib/Analysis/Normed/Group/Constructions.lean + theorem Pi.enorm_single Modified Mathlib/Analysis/Normed/MulAction.lean + theorem enorm_smul + theorem enorm_smul_le Modified Mathlib/Analysis/NormedSpace/IndicatorFunction.lean + theorem enorm_indicator_eq_indicator_enorm Modified Mathlib/Analysis/NormedSpace/Int.lean + theorem Int.enorm_natCast Modified Mathlib/Analysis/NormedSpace/OperatorNorm/NNNorm.lean + theorem ContinuousLinearMap.le_opENorm + theorem ContinuousLinearMap.opENorm_comp_le Modified Mathlib/Analysis/SpecialFunctions/Pow/NNReal.lean + theorem Real.enorm_rpow_of_nonneg 2025-01-23 07:42:05 8eba7f6 chore(shake): shake reports an invalid config file (#20927) If the file `scripts/noshake.json` is invalid, `lake exe shake` may report various "fixes". This PR makes it report that `scripts/noshake.json` is invalid. [Reported on Zulip](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/bizarre.20lake.20shake.20errors) ESTIMATED CHANGES Modified Shake/Main.lean 2025-01-23 07:01:36 8bec620 feat(Order): relate chains to antichains (#20756) A set which is a chain and an antichain is subsingleton. As a result, the intersection of a chain and antichain is subsingleton. Useful from the disproof of the Aharoni–Korman conjecture, https://github.com/leanprover-community/mathlib4/pull/20082. I believe the large import here is acceptable, as `IsChain` and `IsAntichain` need to be related to each other somewhere, but there is not much to say about both (as this PR shows). As such, making a third file specifically for these seems unnecessary, and putting these in `Order.Chain` results in a larger import change. ESTIMATED CHANGES Modified Mathlib/Order/Antichain.lean + theorem inter_subsingleton_of_isAntichain_of_isChain + theorem inter_subsingleton_of_isChain_of_isAntichain + theorem isChain_and_isAntichain_iff_subsingleton + theorem subsingleton_of_isChain_of_isAntichain 2025-01-23 07:01:35 f28d136 feat(Archive/Imo): IMO 2024 Q3 (#19671) Add a formalization of IMO 2024 problem 3. ESTIMATED CHANGES Modified Archive.lean Added Archive/Imo/Imo2024Q3.lean + def Imo2024Q3.Condition.Big + def Imo2024Q3.Condition.Medium + theorem Imo2024Q3.Condition.N_add_one_lt_apply_of_apply_big_of_N'_le + theorem Imo2024Q3.Condition.N_add_one_lt_card_filter_eq_of_small_of_N'_le + theorem Imo2024Q3.Condition.N_add_one_lt_card_filter_eq_of_small_of_N'aux_le + theorem Imo2024Q3.Condition.N_lt_N' + theorem Imo2024Q3.Condition.N_lt_N'aux + theorem Imo2024Q3.Condition.N_lt_of_apply_eq_of_apply_big_of_N'_le + def Imo2024Q3.Condition.Small + theorem Imo2024Q3.Condition.apply_add_one_big_of_apply_small_of_N'_le + theorem Imo2024Q3.Condition.apply_add_one_big_of_apply_small_of_N'aux_le + theorem Imo2024Q3.Condition.apply_add_one_eq_card + theorem Imo2024Q3.Condition.apply_add_one_eq_card_small_le_card_eq + theorem Imo2024Q3.Condition.apply_add_one_lt_of_apply_eq + theorem Imo2024Q3.Condition.apply_add_one_ne_of_apply_eq + theorem Imo2024Q3.Condition.apply_add_one_small_of_apply_big_of_N'_le + theorem Imo2024Q3.Condition.apply_add_one_small_of_apply_big_of_N'aux_le + theorem Imo2024Q3.Condition.apply_add_p_eq + theorem Imo2024Q3.Condition.apply_add_two_small_of_apply_small_of_N'_le + theorem Imo2024Q3.Condition.apply_eq_card + theorem Imo2024Q3.Condition.apply_eq_card_small_le_card_eq_of_small + theorem Imo2024Q3.Condition.apply_ne_zero + theorem Imo2024Q3.Condition.apply_nth_add_one_eq + theorem Imo2024Q3.Condition.apply_nth_add_one_eq_of_infinite + theorem Imo2024Q3.Condition.apply_nth_add_one_eq_of_lt + theorem Imo2024Q3.Condition.apply_sub_one_big_of_apply_small_of_N'_lt + theorem Imo2024Q3.Condition.apply_sub_one_small_of_apply_big_of_N'_le + theorem Imo2024Q3.Condition.apply_sub_two_small_of_apply_small_of_N'_lt + theorem Imo2024Q3.Condition.bddAbove_setOf_infinite_setOf_apply_eq + theorem Imo2024Q3.Condition.bddAbove_setOf_k_lt_card + theorem Imo2024Q3.Condition.card_filter_apply_eq_Ico_add_p_le_one + theorem Imo2024Q3.Condition.card_lt_M_of_M_le + theorem Imo2024Q3.Condition.empty_consecutive_apply_ge_M + theorem Imo2024Q3.Condition.even_p + theorem Imo2024Q3.Condition.exists_a_apply_add_eq + theorem Imo2024Q3.Condition.exists_apply_sub_two_eq_of_apply_eq + theorem Imo2024Q3.Condition.exists_card_le_of_big + theorem Imo2024Q3.Condition.exists_infinite_setOf_apply_eq + theorem Imo2024Q3.Condition.exists_mem_Ico_small_and_apply_add_p_eq + theorem Imo2024Q3.Condition.exists_p_eq + theorem Imo2024Q3.Condition.finite_setOf_apply_eq_iff_not_small + theorem Imo2024Q3.Condition.finite_setOf_apply_eq_k_add_one + theorem Imo2024Q3.Condition.finite_setOf_k_lt_card + theorem Imo2024Q3.Condition.infinite_setOf_apply_eq_anti + theorem Imo2024Q3.Condition.infinite_setOf_apply_eq_iff_small + theorem Imo2024Q3.Condition.infinite_setOf_apply_eq_k + theorem Imo2024Q3.Condition.infinite_setOf_apply_eq_one + theorem Imo2024Q3.Condition.injOn_setOf_apply_add_one_eq_of_M_le + theorem Imo2024Q3.Condition.k_le_l + theorem Imo2024Q3.Condition.k_lt_card_filter_eq_of_small_of_N'aux_le + theorem Imo2024Q3.Condition.k_lt_of_big + theorem Imo2024Q3.Condition.k_pos + theorem Imo2024Q3.Condition.lt_card_filter_eq_of_small_nth_lt + theorem Imo2024Q3.Condition.lt_toFinset_card + theorem Imo2024Q3.Condition.nonempty_pSet + theorem Imo2024Q3.Condition.nonempty_setOf_infinite_setOf_apply_eq + theorem Imo2024Q3.Condition.not_medium_of_N'aux_lt + theorem Imo2024Q3.Condition.not_small_of_big + theorem Imo2024Q3.Condition.nth_apply_add_one_eq + theorem Imo2024Q3.Condition.nth_apply_eq_zero + theorem Imo2024Q3.Condition.nth_ne_zero_of_M_le_of_lt + theorem Imo2024Q3.Condition.nth_sup_N_add_one_le_N'aux_of_small + theorem Imo2024Q3.Condition.nth_sup_k_N_add_one_le_N'aux_of_small + theorem Imo2024Q3.Condition.nth_sup_k_le_N'aux_of_small + theorem Imo2024Q3.Condition.one_le_apply + def Imo2024Q3.Condition.pSet + theorem Imo2024Q3.Condition.p_apply_le_p_apply_add_two + theorem Imo2024Q3.Condition.p_apply_sub_two_le_p_apply + theorem Imo2024Q3.Condition.p_le_two_mul_k + theorem Imo2024Q3.Condition.p_pos + theorem Imo2024Q3.Condition.pos_of_big + theorem Imo2024Q3.Condition.setOf_apply_eq_of_apply_big_of_N'_le + theorem Imo2024Q3.Condition.small_apply_N' + theorem Imo2024Q3.Condition.small_apply_N'_add_iff_even + theorem Imo2024Q3.Condition.small_apply_add_two_mul_iff_small + theorem Imo2024Q3.Condition.small_apply_sub_one_of_apply_eq_of_apply_big_of_N'_le + theorem Imo2024Q3.Condition.small_one + theorem Imo2024Q3.Condition.small_or_big_of_N'_le + theorem Imo2024Q3.Condition.small_or_big_of_N'aux_lt + def Imo2024Q3.Condition + def Imo2024Q3.EventuallyPeriodic + def Imo2024Q3.M + theorem Imo2024Q3.M_pos + theorem Imo2024Q3.N_lt_of_M_le_apply + theorem Imo2024Q3.apply_lt_M_of_le_N + theorem Imo2024Q3.apply_lt_of_M_le_apply + theorem Imo2024Q3.apply_ne_of_M_le_apply + theorem Imo2024Q3.apply_nth_zero + theorem Imo2024Q3.map_add_one_range + theorem Imo2024Q3.ne_zero_of_M_le_apply + theorem Imo2024Q3.one_le_M + theorem Imo2024Q3.result + theorem Imo2024Q3.toFinset_card_pos 2025-01-23 06:28:47 866657b fix: add `#import_bumps` to set the correct options for the minImports linter (#20755) This fixes an issue [reported on Zulip](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/.60set_option.20linter.2EminImports.60.20completely.20broken.3F): asynchronous parsing of files derails completely the mechanism that the `minImports` linter uses to track import bumps. This PR introduces an `#import_bumps` command that is a simple macro to set both the `minImports` linter option to `true` and the `Elab.sync` option to `false`. As further housekeeping, simply using ```lean set_option linter.minImports true ``` triggers a message informing to use `#import_bumps` instead (but the option still gets set), and using ```lean #import_bumps ``` also emits a message, so that the `#`-command linter will not flag it, but the command will still get picked up by CI, in case it stays in final code. ESTIMATED CHANGES Modified Mathlib/Tactic/Linter/MinImports.lean Modified MathlibTest/MinImports.lean 2025-01-23 06:28:46 9c2a4e8 feat(CategoryTheory): `κ`-filtered categories (#20005) If `κ` is a regular cardinal, we introduce the notion of `κ`-filtered category `J`: it means that any functor `A ⥤ J` from a small category such that `Arrow A` is of cardinality `< κ` admits a cocone. This generalizes the notion of filtered category. Indeed, we obtain the equivalence `IsCardinalFiltered J ℵ₀ ↔ IsFiltered J`. The API is mostly parallel to that of filtered categories. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/CategoryTheory/EssentiallySmall.lean Modified Mathlib/CategoryTheory/Limits/Shapes/WideEqualizers.lean + def CategoryTheory.Limits.WalkingParallelFamily.arrowEquiv Added Mathlib/CategoryTheory/Presentable/IsCardinalFiltered.lean + theorem CategoryTheory.IsCardinalFiltered.coeq_condition + theorem CategoryTheory.IsCardinalFiltered.of_le + theorem CategoryTheory.hasCardinalLT_arrow_walkingParallelFamily + theorem CategoryTheory.isCardinalFiltered_aleph0_iff + theorem CategoryTheory.isCardinalFiltered_preorder + theorem CategoryTheory.isFiltered_of_isCardinalDirected Modified Mathlib/SetTheory/Cardinal/Cofinality.lean + theorem Cardinal.fact_isRegular_aleph0 Modified Mathlib/SetTheory/Cardinal/HasCardinalLT.lean + theorem hasCardinalLT_option_iff 2025-01-23 05:40:12 ce9c3fe feat(Algebra/Homology/Embedding): canonical truncations on `CochainComplex` (#19578) We apply the basic `Algebra.Homology.Embedding` definitions to the particular case of cochain complexes indexed by the integers. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Homology/Embedding/Basic.lean + theorem ComplexShape.not_mem_range_embeddingUpIntGE_iff + theorem ComplexShape.not_mem_range_embeddingUpIntLE_iff Added Mathlib/Algebra/Homology/Embedding/CochainComplex.lean + theorem CochainComplex.exactAt_of_isGE + theorem CochainComplex.exactAt_of_isLE + theorem CochainComplex.exists_iso_single + theorem CochainComplex.isGE_iff + theorem CochainComplex.isGE_of_ge + theorem CochainComplex.isGE_of_iso + theorem CochainComplex.isLE_iff + theorem CochainComplex.isLE_of_iso + theorem CochainComplex.isLE_of_le + theorem CochainComplex.isStrictlyGE_iff + theorem CochainComplex.isStrictlyGE_of_ge + theorem CochainComplex.isStrictlyGE_of_iso + theorem CochainComplex.isStrictlyLE_iff + theorem CochainComplex.isStrictlyLE_of_iso + theorem CochainComplex.isStrictlyLE_of_le + theorem CochainComplex.isZero_of_isGE + theorem CochainComplex.isZero_of_isLE + theorem CochainComplex.isZero_of_isStrictlyGE + theorem CochainComplex.isZero_of_isStrictlyLE + theorem CochainComplex.ιTruncLE_naturality + theorem CochainComplex.πTruncGE_naturality Modified Mathlib/Algebra/Homology/ShortComplex/HomologicalComplex.lean + theorem HomologicalComplex.ExactAt.isZero_homology 2025-01-23 05:32:13 404e214 feat(Algebra/Homology/Embedding): homology of truncGE (#19572) Given an embedding `e` of complex shapes that satisfies `IsTruncGE`, we show that the morphism `K.πTruncGE e : K ⟶ K.truncGE e` induces a quasi-isomorphism in degree `e.f i` for all `i`. ESTIMATED CHANGES Modified Mathlib/Algebra/Homology/Embedding/ExtendHomology.lean + theorem HomologicalComplex.extend.rightHomologyData_g' Modified Mathlib/Algebra/Homology/Embedding/TruncGEHomology.lean + theorem HomologicalComplex.acyclic_truncGE_iff_isSupportedOutside + theorem HomologicalComplex.quasiIsoAt_πTruncGE + theorem HomologicalComplex.quasiIso_truncGEMap_iff + theorem HomologicalComplex.quasiIso_πTruncGE_iff_isSupported 2025-01-22 23:41:27 3dc2bef feat(Data/Nat): faster computation of Nat.log (#17325) Give an alternate definition `Nat.logC` for `Nat.log` which computes more efficiently (roughly speaking, this should have logarithmic time in the output, while `Nat.log` has linear time in its output). Prove that these two give the same output, and use `csimp` to ensure evaluation of `Nat.log` uses `Nat.logC` instead. ESTIMATED CHANGES Modified Mathlib/Data/Nat/Log.lean + def Nat.logC + theorem Nat.log_eq_logC Added MathlibTest/Nat/log.lean 2025-01-22 21:30:31 3e2f75f feat(Algebra/MonoidAlgebra): strengthen lemmas about coefficients of products (#20944) The degrees need only be cancellative on the support. ESTIMATED CHANGES Modified Mathlib/Algebra/MonoidAlgebra/Defs.lean Modified Mathlib/Algebra/MonoidAlgebra/Division.lean Modified Mathlib/Algebra/MvPolynomial/Basic.lean 2025-01-22 21:07:05 3226828 feat(Data/Matrix/Mul): vecMul and mulVec are sums (#20950) We add lemmas expressing `vecMul` and `mulVec` as summations. ESTIMATED CHANGES Modified Mathlib/Data/Matrix/Mul.lean + theorem Matrix.mulVec_eq_sum + theorem Matrix.vecMul_eq_sum 2025-01-22 20:27:51 568cf04 feat(CI): manage `merge-conflict` label on push (#20961) Add a step to the PR summary workflow that adds or removes the `merge-conflict` label, as appropriate. We place the action in the PR summary workflow, since that workflow already checks out the whole repository, so the "cost" of the step is simply to verify whether there are merge conflicts and add/remove the label. See #19464 for a PR whose `merge-conflict` label was removed by this workflow. ESTIMATED CHANGES Modified .github/workflows/PR_summary.yml 2025-01-22 19:43:00 be72b7b feat(Order/Bounds/Lattice): bounds over collections of sets (#19150) Some results about upper and lower bounds over collections of sets. Inspired by #15412, but possibly of greater interest? ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Order/Bounds/Basic.lean + theorem isGLB_congr + theorem isLUB_congr Added Mathlib/Order/Bounds/Lattice.lean + theorem gc_upperBounds_lowerBounds + theorem isGLB_iUnion_iff_of_isLUB + theorem isLUB_iUnion_iff_of_isLUB + theorem lowerBounds_iUnion + theorem upperBounds_iUnion 2025-01-22 18:42:27 2cb1216 chore(Order/WellFoundedSet): flip `isWF_iff_isPWO` (#20937) Iff lemmas are generally of the form `complicated thing ↔ simpler thing`, and being a PWO is more complicated than being a well-founded set (in the sense that PWOs are well-founded sets with extra conditions). ESTIMATED CHANGES Modified Mathlib/Order/WellFoundedSet.lean + theorem BddBelow.isWF + theorem Set.isPWO_iff_isWF Modified Mathlib/RingTheory/HahnSeries/Basic.lean +/- theorem HahnSeries.suppBddBelow_supp_PWO 2025-01-22 16:48:05 bd502a4 chore(NumberTheory/FermatPsp): use gcongr to shorten proof of psp_from_prime_gt_p (#20948) Replaces 3 lines of proof (including an `nlinarith` class) with a single call to `gcongr`. According to `set_option trace.profiler true`, this speeds up elebatoration of the theorem from 1.68 seconds to 1.50 seconds. Found via [`tryAtEachStep`](https://github.com/dwrensha/tryAtEachStep). ESTIMATED CHANGES Modified Mathlib/NumberTheory/FermatPsp.lean 2025-01-22 16:48:03 d9e9d6e feat: `condExpL2` equals `condExp` for L2 functions (#20945) ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Function/ConditionalExpectation/Basic.lean + theorem MeasureTheory.Memℒp.condExpL2_ae_eq_condExp' + theorem MeasureTheory.Memℒp.condExpL2_ae_eq_condExp + theorem MeasureTheory.eLpNorm_condExp_le 2025-01-22 16:34:16 4ccc2ce feat: make `Integrable` provable by `fun_prop` (#20952) ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Function/ConditionalExpectation/Basic.lean Modified Mathlib/MeasureTheory/Function/ConditionalExpectation/Real.lean Modified Mathlib/MeasureTheory/Function/L1Space.lean + theorem MeasureTheory.Integrable.add'' + theorem MeasureTheory.Integrable.sub' Modified Mathlib/MeasureTheory/Function/L2Space.lean Modified Mathlib/MeasureTheory/Function/SimpleFuncDenseLp.lean Modified Mathlib/MeasureTheory/Integral/IntegrableOn.lean Modified Mathlib/Probability/Distributions/Gaussian.lean Modified Mathlib/Probability/Martingale/Centering.lean Modified Mathlib/Probability/Moments/Basic.lean Modified Mathlib/Probability/Moments/IntegrableExpMul.lean Modified Mathlib/Probability/Variance.lean 2025-01-22 16:20:28 184a325 feat(Algebra/GroupWithZero): `N⁰.comap f ≤ M⁰` for an injective `f : M →*₀ N` (#20955) Proofs of two facts about non-zero-divisors. ESTIMATED CHANGES Modified Mathlib/Algebra/GroupWithZero/NonZeroDivisors.lean + theorem comap_nonZeroDivisor_le_of_injective + theorem mem_nonZeroDivisor_of_injective 2025-01-22 15:44:32 6c0f299 chore(MeasureTheory/Function): remove unneeded rw in condexp_restrict_ae_eq_restrict (#20949) Removes an unnecessary rewrite. Found by [`tryAtEachStep`](https://github.com/dwrensha/tryAtEachStep). ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Function/ConditionalExpectation/Indicator.lean 2025-01-22 15:30:40 40cb27c chore(MeasureTheory/Function): shorten proof of instAddLeftMono (#20947) Replace 6 lines of proof with a single application of `add_le_add_left`. According to `set_option trace.profiler true`, this decreasing the elaboration time from 0.29 seconds to 0.09 seconds. Found via [`tryAtEachstep`](https://github.com/dwrensha/tryAtEachStep). ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Function/SimpleFuncDenseLp.lean 2025-01-22 14:26:41 72bf52f feat(CategoryTheory): pullbacks/pushouts/limits/colimits of a class of morphisms (#20157) Given `P : MorphismProperty C` and `J` a category, we introduce morphisms properties `P.pullbacks`, `P.pushouts`, `P.limitsOfShape J` and `P.colimitsOfShape J` which are obtained from `P` by taking these type of (co)limits. We obtain results like `P.isStableUnderBaseChange_iff_pullbacks_le : P.IsStableUnderBaseChange ↔ P.pullbacks ≤ P`. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Localization/FiniteProducts.lean Modified Mathlib/CategoryTheory/MorphismProperty/Basic.lean + theorem CategoryTheory.MorphismProperty.iSup_iff + theorem CategoryTheory.MorphismProperty.sSup_iff Modified Mathlib/CategoryTheory/MorphismProperty/Limits.lean +/- theorem CategoryTheory.MorphismProperty.IsStableUnderBaseChange.mk' +/- theorem CategoryTheory.MorphismProperty.IsStableUnderCobaseChange.mk' + theorem CategoryTheory.MorphismProperty.IsStableUnderColimitsOfShape.colimMap - theorem CategoryTheory.MorphismProperty.IsStableUnderColimitsOfShape.colim_map + theorem CategoryTheory.MorphismProperty.IsStableUnderColimitsOfShape.colimitsOfShape_le +/- def CategoryTheory.MorphismProperty.IsStableUnderColimitsOfShape + theorem CategoryTheory.MorphismProperty.IsStableUnderLimitsOfShape.limMap - theorem CategoryTheory.MorphismProperty.IsStableUnderLimitsOfShape.lim_map + theorem CategoryTheory.MorphismProperty.IsStableUnderLimitsOfShape.limitsOfShape_le +/- def CategoryTheory.MorphismProperty.IsStableUnderLimitsOfShape +/- theorem CategoryTheory.MorphismProperty.baseChange_map +/- theorem CategoryTheory.MorphismProperty.baseChange_obj + inductive CategoryTheory.MorphismProperty.colimitsOfShape + theorem CategoryTheory.MorphismProperty.colimitsOfShape_colimMap + theorem CategoryTheory.MorphismProperty.colimitsOfShape_le_coproducts + def CategoryTheory.MorphismProperty.coproducts + theorem CategoryTheory.MorphismProperty.coproducts_iff + theorem CategoryTheory.MorphismProperty.isStableUnderBaseChange_iff_pullbacks_le + theorem CategoryTheory.MorphismProperty.isStableUnderCobaseChange_iff_pushouts_le + theorem CategoryTheory.MorphismProperty.isStableUnderColimitsOfShape_iff_colimitsOfShape_le + theorem CategoryTheory.MorphismProperty.isStableUnderLimitsOfShape_iff_limitsOfShape_le + theorem CategoryTheory.MorphismProperty.le_pullbacks + theorem CategoryTheory.MorphismProperty.le_pushouts + inductive CategoryTheory.MorphismProperty.limitsOfShape + theorem CategoryTheory.MorphismProperty.limitsOfShape_limMap +/- theorem CategoryTheory.MorphismProperty.of_isPullback +/- theorem CategoryTheory.MorphismProperty.of_isPushout +/- theorem CategoryTheory.MorphismProperty.pullback_fst +/- theorem CategoryTheory.MorphismProperty.pullback_map +/- theorem CategoryTheory.MorphismProperty.pullback_snd + def CategoryTheory.MorphismProperty.pullbacks + theorem CategoryTheory.MorphismProperty.pullbacks_mk +/- theorem CategoryTheory.MorphismProperty.pushout_inl +/- theorem CategoryTheory.MorphismProperty.pushout_inr + def CategoryTheory.MorphismProperty.pushouts + theorem CategoryTheory.MorphismProperty.pushouts_mk 2025-01-22 13:49:28 fc30cf7 chore: rename `condexp` to `condExp` (#20930) The current name is vestigial. From my PhD (LeanCamCombi) ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Function/ConditionalExpectation/Basic.lean + theorem MeasureTheory.ae_eq_condExp_of_forall_setIntegral_eq - theorem MeasureTheory.ae_eq_condexp_of_forall_setIntegral_eq + theorem MeasureTheory.condExp_add + theorem MeasureTheory.condExp_ae_eq_condExpL1 + theorem MeasureTheory.condExp_ae_eq_condExpL1CLM + theorem MeasureTheory.condExp_bot' + theorem MeasureTheory.condExp_bot + theorem MeasureTheory.condExp_bot_ae_eq + theorem MeasureTheory.condExp_condExp_of_le + theorem MeasureTheory.condExp_congr_ae + theorem MeasureTheory.condExp_const + theorem MeasureTheory.condExp_finset_sum + theorem MeasureTheory.condExp_mono + theorem MeasureTheory.condExp_neg + theorem MeasureTheory.condExp_nonneg + theorem MeasureTheory.condExp_nonpos + theorem MeasureTheory.condExp_of_aestronglyMeasurable' + theorem MeasureTheory.condExp_of_not_le + theorem MeasureTheory.condExp_of_not_sigmaFinite + theorem MeasureTheory.condExp_of_sigmaFinite + theorem MeasureTheory.condExp_of_stronglyMeasurable + theorem MeasureTheory.condExp_smul + theorem MeasureTheory.condExp_sub + theorem MeasureTheory.condExp_undef + theorem MeasureTheory.condExp_zero - theorem MeasureTheory.condexp_add - theorem MeasureTheory.condexp_ae_eq_condexpL1 - theorem MeasureTheory.condexp_ae_eq_condexpL1CLM - theorem MeasureTheory.condexp_bot' - theorem MeasureTheory.condexp_bot - theorem MeasureTheory.condexp_bot_ae_eq - theorem MeasureTheory.condexp_condexp_of_le - theorem MeasureTheory.condexp_congr_ae - theorem MeasureTheory.condexp_const - theorem MeasureTheory.condexp_finset_sum - theorem MeasureTheory.condexp_mono - theorem MeasureTheory.condexp_neg - theorem MeasureTheory.condexp_nonneg - theorem MeasureTheory.condexp_nonpos - theorem MeasureTheory.condexp_of_aestronglyMeasurable' - theorem MeasureTheory.condexp_of_not_le - theorem MeasureTheory.condexp_of_not_sigmaFinite - theorem MeasureTheory.condexp_of_sigmaFinite - theorem MeasureTheory.condexp_of_stronglyMeasurable - theorem MeasureTheory.condexp_smul - theorem MeasureTheory.condexp_sub - theorem MeasureTheory.condexp_undef - theorem MeasureTheory.condexp_zero + theorem MeasureTheory.integrable_condExp - theorem MeasureTheory.integrable_condexp + theorem MeasureTheory.integral_condExp + theorem MeasureTheory.integral_condExp_indicator - theorem MeasureTheory.integral_condexp - theorem MeasureTheory.integral_condexp_indicator + theorem MeasureTheory.setIntegral_condExp - theorem MeasureTheory.setIntegral_condexp + theorem MeasureTheory.stronglyMeasurable_condExp - theorem MeasureTheory.stronglyMeasurable_condexp + theorem MeasureTheory.tendsto_condExpL1_of_dominated_convergence + theorem MeasureTheory.tendsto_condExp_unique - theorem MeasureTheory.tendsto_condexpL1_of_dominated_convergence - theorem MeasureTheory.tendsto_condexp_unique Modified Mathlib/MeasureTheory/Function/ConditionalExpectation/CondexpL1.lean + theorem MeasureTheory.aestronglyMeasurable'_condExpInd + theorem MeasureTheory.aestronglyMeasurable'_condExpL1 + theorem MeasureTheory.aestronglyMeasurable'_condExpL1CLM - theorem MeasureTheory.aestronglyMeasurable'_condexpInd - theorem MeasureTheory.aestronglyMeasurable'_condexpL1 - theorem MeasureTheory.aestronglyMeasurable'_condexpL1CLM + def MeasureTheory.condExpInd + def MeasureTheory.condExpIndL1 + def MeasureTheory.condExpIndL1Fin + theorem MeasureTheory.condExpIndL1Fin_add + theorem MeasureTheory.condExpIndL1Fin_ae_eq_condExpIndSMul + theorem MeasureTheory.condExpIndL1Fin_disjoint_union + theorem MeasureTheory.condExpIndL1Fin_smul' + theorem MeasureTheory.condExpIndL1Fin_smul + theorem MeasureTheory.condExpIndL1_add + theorem MeasureTheory.condExpIndL1_disjoint_union + theorem MeasureTheory.condExpIndL1_of_measurableSet_of_measure_ne_top + theorem MeasureTheory.condExpIndL1_of_measure_eq_top + theorem MeasureTheory.condExpIndL1_of_not_measurableSet + theorem MeasureTheory.condExpIndL1_smul' + theorem MeasureTheory.condExpIndL1_smul + theorem MeasureTheory.condExpInd_ae_eq_condExpIndSMul + theorem MeasureTheory.condExpInd_disjoint_union + theorem MeasureTheory.condExpInd_disjoint_union_apply + theorem MeasureTheory.condExpInd_empty + theorem MeasureTheory.condExpInd_nonneg + theorem MeasureTheory.condExpInd_of_measurable + theorem MeasureTheory.condExpInd_smul' + def MeasureTheory.condExpL1 + def MeasureTheory.condExpL1CLM + theorem MeasureTheory.condExpL1CLM_indicatorConst + theorem MeasureTheory.condExpL1CLM_indicatorConstLp + theorem MeasureTheory.condExpL1CLM_lpMeas + theorem MeasureTheory.condExpL1CLM_of_aestronglyMeasurable' + theorem MeasureTheory.condExpL1CLM_smul + theorem MeasureTheory.condExpL1_add + theorem MeasureTheory.condExpL1_congr_ae + theorem MeasureTheory.condExpL1_eq + theorem MeasureTheory.condExpL1_measure_zero + theorem MeasureTheory.condExpL1_mono + theorem MeasureTheory.condExpL1_neg + theorem MeasureTheory.condExpL1_of_aestronglyMeasurable' + theorem MeasureTheory.condExpL1_smul + theorem MeasureTheory.condExpL1_sub + theorem MeasureTheory.condExpL1_undef + theorem MeasureTheory.condExpL1_zero - def MeasureTheory.condexpInd - def MeasureTheory.condexpIndL1 - def MeasureTheory.condexpIndL1Fin - theorem MeasureTheory.condexpIndL1Fin_add - theorem MeasureTheory.condexpIndL1Fin_ae_eq_condexpIndSMul - theorem MeasureTheory.condexpIndL1Fin_disjoint_union - theorem MeasureTheory.condexpIndL1Fin_smul' - theorem MeasureTheory.condexpIndL1Fin_smul - theorem MeasureTheory.condexpIndL1_add - theorem MeasureTheory.condexpIndL1_disjoint_union - theorem MeasureTheory.condexpIndL1_of_measurableSet_of_measure_ne_top - theorem MeasureTheory.condexpIndL1_of_measure_eq_top - theorem MeasureTheory.condexpIndL1_of_not_measurableSet - theorem MeasureTheory.condexpIndL1_smul' - theorem MeasureTheory.condexpIndL1_smul - theorem MeasureTheory.condexpInd_ae_eq_condexpIndSMul - theorem MeasureTheory.condexpInd_disjoint_union - theorem MeasureTheory.condexpInd_disjoint_union_apply - theorem MeasureTheory.condexpInd_empty - theorem MeasureTheory.condexpInd_nonneg - theorem MeasureTheory.condexpInd_of_measurable - theorem MeasureTheory.condexpInd_smul' - def MeasureTheory.condexpL1 - def MeasureTheory.condexpL1CLM - theorem MeasureTheory.condexpL1CLM_indicatorConst - theorem MeasureTheory.condexpL1CLM_indicatorConstLp - theorem MeasureTheory.condexpL1CLM_lpMeas - theorem MeasureTheory.condexpL1CLM_of_aestronglyMeasurable' - theorem MeasureTheory.condexpL1CLM_smul - theorem MeasureTheory.condexpL1_add - theorem MeasureTheory.condexpL1_congr_ae - theorem MeasureTheory.condexpL1_eq - theorem MeasureTheory.condexpL1_measure_zero - theorem MeasureTheory.condexpL1_mono - theorem MeasureTheory.condexpL1_neg - theorem MeasureTheory.condexpL1_of_aestronglyMeasurable' - theorem MeasureTheory.condexpL1_smul - theorem MeasureTheory.condexpL1_sub - theorem MeasureTheory.condexpL1_undef - theorem MeasureTheory.condexpL1_zero + theorem MeasureTheory.continuous_condExpIndL1 - theorem MeasureTheory.continuous_condexpIndL1 + theorem MeasureTheory.dominatedFinMeasAdditive_condExpInd - theorem MeasureTheory.dominatedFinMeasAdditive_condexpInd + theorem MeasureTheory.integrable_condExpL1 - theorem MeasureTheory.integrable_condexpL1 + theorem MeasureTheory.norm_condExpIndL1Fin_le + theorem MeasureTheory.norm_condExpIndL1_le + theorem MeasureTheory.norm_condExpInd_apply_le + theorem MeasureTheory.norm_condExpInd_le - theorem MeasureTheory.norm_condexpIndL1Fin_le - theorem MeasureTheory.norm_condexpIndL1_le - theorem MeasureTheory.norm_condexpInd_apply_le - theorem MeasureTheory.norm_condexpInd_le + theorem MeasureTheory.setIntegral_condExpInd + theorem MeasureTheory.setIntegral_condExpL1 + theorem MeasureTheory.setIntegral_condExpL1CLM + theorem MeasureTheory.setIntegral_condExpL1CLM_of_measure_ne_top - theorem MeasureTheory.setIntegral_condexpInd - theorem MeasureTheory.setIntegral_condexpL1 - theorem MeasureTheory.setIntegral_condexpL1CLM - theorem MeasureTheory.setIntegral_condexpL1CLM_of_measure_ne_top Modified Mathlib/MeasureTheory/Function/ConditionalExpectation/CondexpL2.lean + theorem MeasureTheory.aeStronglyMeasurable'_condExpIndSMul + theorem MeasureTheory.aeStronglyMeasurable'_condExpL2 - theorem MeasureTheory.aeStronglyMeasurable'_condexpIndSMul - theorem MeasureTheory.aeStronglyMeasurable'_condexpL2 + theorem MeasureTheory.condExpIndSMul_add + theorem MeasureTheory.condExpIndSMul_ae_eq_smul + theorem MeasureTheory.condExpIndSMul_empty + theorem MeasureTheory.condExpIndSMul_nonneg + theorem MeasureTheory.condExpIndSMul_smul' + theorem MeasureTheory.condExpIndSMul_smul + theorem MeasureTheory.condExpL2_ae_eq_zero_of_ae_eq_zero + theorem MeasureTheory.condExpL2_comp_continuousLinearMap + theorem MeasureTheory.condExpL2_const_inner + theorem MeasureTheory.condExpL2_indicator_ae_eq_smul + theorem MeasureTheory.condExpL2_indicator_eq_toSpanSingleton_comp + theorem MeasureTheory.condExpL2_indicator_nonneg + theorem MeasureTheory.condExpL2_indicator_of_measurable - theorem MeasureTheory.condexpIndSMul_add - theorem MeasureTheory.condexpIndSMul_ae_eq_smul - theorem MeasureTheory.condexpIndSMul_empty - theorem MeasureTheory.condexpIndSMul_nonneg - theorem MeasureTheory.condexpIndSMul_smul' - theorem MeasureTheory.condexpIndSMul_smul - theorem MeasureTheory.condexpL2_ae_eq_zero_of_ae_eq_zero - theorem MeasureTheory.condexpL2_comp_continuousLinearMap - theorem MeasureTheory.condexpL2_const_inner - theorem MeasureTheory.condexpL2_indicator_ae_eq_smul - theorem MeasureTheory.condexpL2_indicator_eq_toSpanSingleton_comp - theorem MeasureTheory.condexpL2_indicator_nonneg - theorem MeasureTheory.condexpL2_indicator_of_measurable + theorem MeasureTheory.eLpNorm_condExpL2_le - theorem MeasureTheory.eLpNorm_condexpL2_le + theorem MeasureTheory.inner_condExpL2_eq_inner_fun + theorem MeasureTheory.inner_condExpL2_left_eq_right - theorem MeasureTheory.inner_condexpL2_eq_inner_fun - theorem MeasureTheory.inner_condexpL2_left_eq_right + theorem MeasureTheory.integrableOn_condExpL2_of_measure_ne_top - theorem MeasureTheory.integrableOn_condexpL2_of_measure_ne_top + theorem MeasureTheory.integrable_condExpIndSMul + theorem MeasureTheory.integrable_condExpL2_indicator + theorem MeasureTheory.integrable_condExpL2_of_isFiniteMeasure - theorem MeasureTheory.integrable_condexpIndSMul - theorem MeasureTheory.integrable_condexpL2_indicator - theorem MeasureTheory.integrable_condexpL2_of_isFiniteMeasure + theorem MeasureTheory.integral_condExpL2_eq + theorem MeasureTheory.integral_condExpL2_eq_of_fin_meas_real - theorem MeasureTheory.integral_condexpL2_eq - theorem MeasureTheory.integral_condexpL2_eq_of_fin_meas_real + theorem MeasureTheory.lintegral_nnnorm_condExpIndSMul_le + theorem MeasureTheory.lintegral_nnnorm_condExpL2_indicator_le + theorem MeasureTheory.lintegral_nnnorm_condExpL2_indicator_le_real + theorem MeasureTheory.lintegral_nnnorm_condExpL2_le - theorem MeasureTheory.lintegral_nnnorm_condexpIndSMul_le - theorem MeasureTheory.lintegral_nnnorm_condexpL2_indicator_le - theorem MeasureTheory.lintegral_nnnorm_condexpL2_indicator_le_real - theorem MeasureTheory.lintegral_nnnorm_condexpL2_le + theorem MeasureTheory.norm_condExpL2_coe_le + theorem MeasureTheory.norm_condExpL2_le + theorem MeasureTheory.norm_condExpL2_le_one - theorem MeasureTheory.norm_condexpL2_coe_le - theorem MeasureTheory.norm_condexpL2_le - theorem MeasureTheory.norm_condexpL2_le_one + theorem MeasureTheory.setIntegral_condExpIndSMul + theorem MeasureTheory.setIntegral_condExpL2_indicator - theorem MeasureTheory.setIntegral_condexpIndSMul - theorem MeasureTheory.setIntegral_condexpL2_indicator + theorem MeasureTheory.setLIntegral_nnnorm_condExpIndSMul_le + theorem MeasureTheory.setLIntegral_nnnorm_condExpL2_indicator_le - theorem MeasureTheory.setLIntegral_nnnorm_condexpIndSMul_le - theorem MeasureTheory.setLIntegral_nnnorm_condexpL2_indicator_le Modified Mathlib/MeasureTheory/Function/ConditionalExpectation/Indicator.lean + theorem MeasureTheory.condExp_ae_eq_restrict_of_measurableSpace_eq_on + theorem MeasureTheory.condExp_ae_eq_restrict_zero + theorem MeasureTheory.condExp_indicator + theorem MeasureTheory.condExp_indicator_aux + theorem MeasureTheory.condExp_restrict_ae_eq_restrict - theorem MeasureTheory.condexp_ae_eq_restrict_of_measurableSpace_eq_on - theorem MeasureTheory.condexp_ae_eq_restrict_zero - theorem MeasureTheory.condexp_indicator - theorem MeasureTheory.condexp_indicator_aux - theorem MeasureTheory.condexp_restrict_ae_eq_restrict Modified Mathlib/MeasureTheory/Function/ConditionalExpectation/Real.lean + theorem MeasureTheory.Integrable.uniformIntegrable_condExp - theorem MeasureTheory.Integrable.uniformIntegrable_condexp + theorem MeasureTheory.ae_bdd_condExp_of_ae_bdd - theorem MeasureTheory.ae_bdd_condexp_of_ae_bdd + theorem MeasureTheory.condExp_mul_of_aestronglyMeasurable_left + theorem MeasureTheory.condExp_mul_of_aestronglyMeasurable_right + theorem MeasureTheory.condExp_mul_of_stronglyMeasurable_left + theorem MeasureTheory.condExp_mul_of_stronglyMeasurable_right + theorem MeasureTheory.condExp_stronglyMeasurable_mul_of_bound + theorem MeasureTheory.condExp_stronglyMeasurable_mul_of_bound₀ + theorem MeasureTheory.condExp_stronglyMeasurable_simpleFunc_mul - theorem MeasureTheory.condexp_mul_of_aestronglyMeasurable_left - theorem MeasureTheory.condexp_mul_of_aestronglyMeasurable_right - theorem MeasureTheory.condexp_mul_of_stronglyMeasurable_left - theorem MeasureTheory.condexp_mul_of_stronglyMeasurable_right - theorem MeasureTheory.condexp_stronglyMeasurable_mul_of_bound - theorem MeasureTheory.condexp_stronglyMeasurable_mul_of_bound₀ - theorem MeasureTheory.condexp_stronglyMeasurable_simpleFunc_mul + theorem MeasureTheory.eLpNorm_one_condExp_le_eLpNorm - theorem MeasureTheory.eLpNorm_one_condexp_le_eLpNorm + theorem MeasureTheory.integral_abs_condExp_le - theorem MeasureTheory.integral_abs_condexp_le + theorem MeasureTheory.rnDeriv_ae_eq_condExp - theorem MeasureTheory.rnDeriv_ae_eq_condexp + theorem MeasureTheory.setIntegral_abs_condExp_le - theorem MeasureTheory.setIntegral_abs_condexp_le Modified Mathlib/Probability/BorelCantelli.lean + theorem ProbabilityTheory.iIndepFun.condExp_natural_ae_eq_of_lt - theorem ProbabilityTheory.iIndepFun.condexp_natural_ae_eq_of_lt + theorem ProbabilityTheory.iIndepSet.condExp_indicator_filtrationOfSet_ae_eq - theorem ProbabilityTheory.iIndepSet.condexp_indicator_filtrationOfSet_ae_eq Modified Mathlib/Probability/ConditionalExpectation.lean + theorem MeasureTheory.condExp_indep_eq - theorem MeasureTheory.condexp_indep_eq Modified Mathlib/Probability/Independence/Conditional.lean + theorem ProbabilityTheory.condIndepFun_iff_condExp_inter_preimage_eq_mul - theorem ProbabilityTheory.condIndepFun_iff_condexp_inter_preimage_eq_mul + theorem ProbabilityTheory.iCondIndepFun_iff_condExp_inter_preimage_eq_mul - theorem ProbabilityTheory.iCondIndepFun_iff_condexp_inter_preimage_eq_mul Modified Mathlib/Probability/Independence/Kernel.lean Modified Mathlib/Probability/Independence/ZeroOne.lean + theorem ProbabilityTheory.condExp_eq_zero_or_one_of_condIndepSet_self + theorem ProbabilityTheory.condExp_zero_or_one_of_measurableSet_limsup + theorem ProbabilityTheory.condExp_zero_or_one_of_measurableSet_limsup_atBot + theorem ProbabilityTheory.condExp_zero_or_one_of_measurableSet_limsup_atTop - theorem ProbabilityTheory.condexp_eq_zero_or_one_of_condIndepSet_self - theorem ProbabilityTheory.condexp_zero_or_one_of_measurableSet_limsup - theorem ProbabilityTheory.condexp_zero_or_one_of_measurableSet_limsup_atBot - theorem ProbabilityTheory.condexp_zero_or_one_of_measurableSet_limsup_atTop Modified Mathlib/Probability/Kernel/CondDistrib.lean + theorem ProbabilityTheory.condDistrib_ae_eq_condExp - theorem ProbabilityTheory.condDistrib_ae_eq_condexp + theorem ProbabilityTheory.condExp_ae_eq_integral_condDistrib' + theorem ProbabilityTheory.condExp_ae_eq_integral_condDistrib + theorem ProbabilityTheory.condExp_ae_eq_integral_condDistrib_id + theorem ProbabilityTheory.condExp_prod_ae_eq_integral_condDistrib' + theorem ProbabilityTheory.condExp_prod_ae_eq_integral_condDistrib + theorem ProbabilityTheory.condExp_prod_ae_eq_integral_condDistrib₀ - theorem ProbabilityTheory.condexp_ae_eq_integral_condDistrib' - theorem ProbabilityTheory.condexp_ae_eq_integral_condDistrib - theorem ProbabilityTheory.condexp_ae_eq_integral_condDistrib_id - theorem ProbabilityTheory.condexp_prod_ae_eq_integral_condDistrib' - theorem ProbabilityTheory.condexp_prod_ae_eq_integral_condDistrib - theorem ProbabilityTheory.condexp_prod_ae_eq_integral_condDistrib₀ Modified Mathlib/Probability/Kernel/Condexp.lean + theorem MeasureTheory.AEStronglyMeasurable.integral_condExpKernel - theorem MeasureTheory.AEStronglyMeasurable.integral_condexpKernel + theorem MeasureTheory.Integrable.condExpKernel_ae - theorem MeasureTheory.Integrable.condexpKernel_ae + theorem MeasureTheory.Integrable.integral_condExpKernel - theorem MeasureTheory.Integrable.integral_condexpKernel + theorem MeasureTheory.Integrable.integral_norm_condExpKernel - theorem MeasureTheory.Integrable.integral_norm_condexpKernel + theorem MeasureTheory.Integrable.norm_integral_condExpKernel - theorem MeasureTheory.Integrable.norm_integral_condexpKernel + theorem ProbabilityTheory.aestronglyMeasurable'_integral_condExpKernel - theorem ProbabilityTheory.aestronglyMeasurable'_integral_condexpKernel + theorem ProbabilityTheory.condExpKernel_ae_eq_condExp' + theorem ProbabilityTheory.condExpKernel_ae_eq_condExp + theorem ProbabilityTheory.condExpKernel_ae_eq_trim_condExp + theorem ProbabilityTheory.condExpKernel_apply_eq_condDistrib + theorem ProbabilityTheory.condExpKernel_eq + theorem ProbabilityTheory.condExpKernel_singleton_ae_eq_cond + theorem ProbabilityTheory.condExp_ae_eq_integral_condExpKernel' + theorem ProbabilityTheory.condExp_ae_eq_integral_condExpKernel + theorem ProbabilityTheory.condExp_generateFrom_singleton + theorem ProbabilityTheory.condExp_set_generateFrom_singleton - theorem ProbabilityTheory.condexpKernel_ae_eq_condexp' - theorem ProbabilityTheory.condexpKernel_ae_eq_condexp - theorem ProbabilityTheory.condexpKernel_ae_eq_trim_condexp - theorem ProbabilityTheory.condexpKernel_apply_eq_condDistrib - theorem ProbabilityTheory.condexpKernel_eq - theorem ProbabilityTheory.condexpKernel_singleton_ae_eq_cond - theorem ProbabilityTheory.condexp_ae_eq_integral_condexpKernel' - theorem ProbabilityTheory.condexp_ae_eq_integral_condexpKernel - theorem ProbabilityTheory.condexp_generateFrom_singleton - theorem ProbabilityTheory.condexp_set_generateFrom_singleton + theorem ProbabilityTheory.integrable_toReal_condExpKernel - theorem ProbabilityTheory.integrable_toReal_condexpKernel + theorem ProbabilityTheory.measurable_condExpKernel - theorem ProbabilityTheory.measurable_condexpKernel + theorem ProbabilityTheory.stronglyMeasurable_condExpKernel - theorem ProbabilityTheory.stronglyMeasurable_condexpKernel Modified Mathlib/Probability/Kernel/Disintegration/Density.lean + theorem ProbabilityTheory.Kernel.condExp_densityProcess - theorem ProbabilityTheory.Kernel.condexp_densityProcess Modified Mathlib/Probability/Martingale/Basic.lean + theorem MeasureTheory.Martingale.condExp_ae_eq - theorem MeasureTheory.Martingale.condexp_ae_eq + theorem MeasureTheory.Submartingale.ae_le_condExp - theorem MeasureTheory.Submartingale.ae_le_condexp + theorem MeasureTheory.Submartingale.condExp_sub_nonneg - theorem MeasureTheory.Submartingale.condexp_sub_nonneg + theorem MeasureTheory.Supermartingale.condExp_ae_le - theorem MeasureTheory.Supermartingale.condexp_ae_le + theorem MeasureTheory.martingale_condExp - theorem MeasureTheory.martingale_condexp + theorem MeasureTheory.martingale_of_condExp_sub_eq_zero_nat - theorem MeasureTheory.martingale_of_condexp_sub_eq_zero_nat + theorem MeasureTheory.submartingale_iff_condExp_sub_nonneg - theorem MeasureTheory.submartingale_iff_condexp_sub_nonneg + theorem MeasureTheory.submartingale_of_condExp_sub_nonneg + theorem MeasureTheory.submartingale_of_condExp_sub_nonneg_nat - theorem MeasureTheory.submartingale_of_condexp_sub_nonneg - theorem MeasureTheory.submartingale_of_condexp_sub_nonneg_nat + theorem MeasureTheory.supermartingale_of_condExp_sub_nonneg_nat - theorem MeasureTheory.supermartingale_of_condexp_sub_nonneg_nat Modified Mathlib/Probability/Martingale/BorelCantelli.lean Modified Mathlib/Probability/Martingale/Centering.lean Modified Mathlib/Probability/Martingale/Convergence.lean + theorem MeasureTheory.Integrable.tendsto_ae_condExp - theorem MeasureTheory.Integrable.tendsto_ae_condexp + theorem MeasureTheory.Integrable.tendsto_eLpNorm_condExp - theorem MeasureTheory.Integrable.tendsto_eLpNorm_condexp + theorem MeasureTheory.Martingale.ae_eq_condExp_limitProcess - theorem MeasureTheory.Martingale.ae_eq_condexp_limitProcess + theorem MeasureTheory.Martingale.eq_condExp_of_tendsto_eLpNorm - theorem MeasureTheory.Martingale.eq_condexp_of_tendsto_eLpNorm + theorem MeasureTheory.tendsto_ae_condExp - theorem MeasureTheory.tendsto_ae_condexp + theorem MeasureTheory.tendsto_eLpNorm_condExp - theorem MeasureTheory.tendsto_eLpNorm_condexp Modified Mathlib/Probability/Martingale/OptionalSampling.lean + theorem MeasureTheory.Martingale.condExp_stoppedValue_stopping_time_ae_eq_restrict_le + theorem MeasureTheory.Martingale.condExp_stopping_time_ae_eq_restrict_eq_const + theorem MeasureTheory.Martingale.condExp_stopping_time_ae_eq_restrict_eq_const_of_le_const - theorem MeasureTheory.Martingale.condexp_stoppedValue_stopping_time_ae_eq_restrict_le - theorem MeasureTheory.Martingale.condexp_stopping_time_ae_eq_restrict_eq_const - theorem MeasureTheory.Martingale.condexp_stopping_time_ae_eq_restrict_eq_const_of_le_const + theorem MeasureTheory.Martingale.stoppedValue_ae_eq_condExp_of_le + theorem MeasureTheory.Martingale.stoppedValue_ae_eq_condExp_of_le_const + theorem MeasureTheory.Martingale.stoppedValue_ae_eq_condExp_of_le_const_of_countable_range + theorem MeasureTheory.Martingale.stoppedValue_ae_eq_condExp_of_le_of_countable_range - theorem MeasureTheory.Martingale.stoppedValue_ae_eq_condexp_of_le - theorem MeasureTheory.Martingale.stoppedValue_ae_eq_condexp_of_le_const - theorem MeasureTheory.Martingale.stoppedValue_ae_eq_condexp_of_le_const_of_countable_range - theorem MeasureTheory.Martingale.stoppedValue_ae_eq_condexp_of_le_of_countable_range + theorem MeasureTheory.Martingale.stoppedValue_min_ae_eq_condExp - theorem MeasureTheory.Martingale.stoppedValue_min_ae_eq_condexp Modified Mathlib/Probability/Notation.lean Modified Mathlib/Probability/Process/Filtration.lean + theorem MeasureTheory.Integrable.uniformIntegrable_condExp_filtration - theorem MeasureTheory.Integrable.uniformIntegrable_condexp_filtration Modified Mathlib/Probability/Process/Stopping.lean + theorem MeasureTheory.condExp_min_stopping_time_ae_eq_restrict_le + theorem MeasureTheory.condExp_min_stopping_time_ae_eq_restrict_le_const + theorem MeasureTheory.condExp_stopping_time_ae_eq_restrict_eq + theorem MeasureTheory.condExp_stopping_time_ae_eq_restrict_eq_of_countable + theorem MeasureTheory.condExp_stopping_time_ae_eq_restrict_eq_of_countable_range - theorem MeasureTheory.condexp_min_stopping_time_ae_eq_restrict_le - theorem MeasureTheory.condexp_min_stopping_time_ae_eq_restrict_le_const - theorem MeasureTheory.condexp_stopping_time_ae_eq_restrict_eq - theorem MeasureTheory.condexp_stopping_time_ae_eq_restrict_eq_of_countable - theorem MeasureTheory.condexp_stopping_time_ae_eq_restrict_eq_of_countable_range Modified docs/overview.yaml Modified scripts/nolints_prime_decls.txt 2025-01-22 13:36:44 fe4e3ab Feat(Topology/Group): add coercion toContinuousMonoidHom (#20628) Add coercion toContinuousMonoidHom when `[MonoidHomClass F A B] [ContinuousMapClass F A B]` ESTIMATED CHANGES Modified Mathlib/Topology/Algebra/ContinuousMonoidHom.lean + theorem ContinuousMonoidHom.coe_coe + theorem ContinuousMonoidHom.coe_toContinuousMap + theorem ContinuousMonoidHom.coe_toMonoidHom + theorem ContinuousMonoidHom.toContinuousMap_toContinuousMonoidHom + def ContinuousMonoidHom.toContinuousMonoidHom + theorem ContinuousMonoidHom.toMonoidHom_toContinuousMonoidHom 2025-01-22 13:15:35 720fe96 feat(GroupTheory/SemidirectProduct): add two lemmas (#20634) add lemma on cardinality of semidirect product of finite groups add def establishing an isomorphism between a semidirect product and a direct product ESTIMATED CHANGES Modified Mathlib/GroupTheory/SemidirectProduct.lean + theorem SemidirectProduct.card +/- def SemidirectProduct.equivProd + def SemidirectProduct.mulEquivProd 2025-01-22 12:32:28 97bce08 feat: action of `DomMulAct` on measures (#20204) From FLT ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Group/MeasurableEquiv.lean + theorem MeasureTheory.Measure.dmaSMul_apply 2025-01-22 11:38:31 eb96c83 feat: definition of `<` on `α ×ₗ β` in partial orders (#20067) From GrowthInGroups (LeanCamCombi) ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Monoid/Prod.lean Modified Mathlib/Algebra/Order/Rearrangement.lean Modified Mathlib/Data/Fin/Tuple/Sort.lean Modified Mathlib/Data/Finsupp/MonomialOrder/DegLex.lean Modified Mathlib/Data/Prod/Lex.lean + theorem Prod.Lex.le_iff' +/- theorem Prod.Lex.le_iff + theorem Prod.Lex.lt_iff' +/- theorem Prod.Lex.lt_iff + theorem Prod.Lex.toLex_le_toLex' + theorem Prod.Lex.toLex_le_toLex + theorem Prod.Lex.toLex_lt_toLex' + theorem Prod.Lex.toLex_lt_toLex +/- theorem Prod.Lex.toLex_mono Modified Mathlib/Order/RelClasses.lean Modified Mathlib/Order/WellFoundedSet.lean 2025-01-22 10:59:14 03251ae feat: `μ[f * g | m] =ᵐ[μ] μ[f | m] * g` if `g` is strongly `m`-measurable (#20928) This is a corollary of the lemma with opposite multiplication. Also rename the existing variant to better follow the naming convention and be more discoverable. From my PhD (LeanCamCombi) ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Function/ConditionalExpectation/Real.lean + theorem MeasureTheory.condexp_mul_of_aestronglyMeasurable_left + theorem MeasureTheory.condexp_mul_of_aestronglyMeasurable_right + theorem MeasureTheory.condexp_mul_of_stronglyMeasurable_left + theorem MeasureTheory.condexp_mul_of_stronglyMeasurable_right - theorem MeasureTheory.condexp_stronglyMeasurable_mul - theorem MeasureTheory.condexp_stronglyMeasurable_mul₀ Modified Mathlib/Probability/Martingale/Basic.lean 2025-01-22 10:59:12 94c06bb doc(Order/Hom/Lattice): warn against `toFun` (#20918) ESTIMATED CHANGES Modified Mathlib/Order/Hom/Lattice.lean 2025-01-22 10:59:11 d728fa2 feat: Borel-measurable group homs from locally compact normed groups to real normed spaces are continuous (#20910) From LeanCamCombi ESTIMATED CHANGES Modified Mathlib/Analysis/Normed/Module/Basic.lean + theorem AddMonoidHom.continuous_of_isBounded_nhds_zero Modified Mathlib/MeasureTheory/Measure/Haar/NormedSpace.lean + theorem MeasureTheory.Measure.AddMonoidHom.continuous_of_measurable 2025-01-22 10:59:09 e949544 chore(AssociatedPrime): use `ker toSpanSingleton` instead of `annihilator span singleton` (#20155) Maybe better in terms of defeq, not sure if this is really an improvement. ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/Span/Basic.lean + theorem LinearMap.toSpanSingleton_eq_zero_iff + theorem LinearMap.toSpanSingleton_injective Modified Mathlib/RingTheory/Ideal/AssociatedPrime.lean Modified Mathlib/RingTheory/Ideal/Maps.lean + theorem Ideal.Submodule.annihilator_span + theorem Ideal.Submodule.annihilator_span_singleton 2025-01-22 10:18:04 887629e chore: rename List.indexOf_lt_length to List.indexOf_lt_length_iff (#20939) ESTIMATED CHANGES Modified Mathlib/Data/FinEnum.lean Modified Mathlib/Data/List/Basic.lean - theorem List.indexOf_lt_length + theorem List.indexOf_lt_length_iff Modified Mathlib/Data/List/FinRange.lean Modified Mathlib/Data/List/Nodup.lean Modified Mathlib/Data/List/NodupEquivFin.lean Modified Mathlib/GroupTheory/Perm/Cycle/Basic.lean Modified Mathlib/LinearAlgebra/Multilinear/Basic.lean Modified scripts/add_deprecations.sh 2025-01-22 10:18:03 95dba76 feat(Combinatorics/SimpleGraph): chromatic number of cycle graph (#20117) ESTIMATED CHANGES Modified Mathlib/Combinatorics/SimpleGraph/Circulant.lean + def SimpleGraph.cycleGraph_EulerianCircuit + theorem SimpleGraph.cycleGraph_EulerianCircuit_length Modified Mathlib/Combinatorics/SimpleGraph/ConcreteColorings.lean + theorem SimpleGraph.chromaticNumber_cycleGraph_of_even + theorem SimpleGraph.chromaticNumber_cycleGraph_of_odd + def SimpleGraph.cycleGraph.bicoloring_of_even + def SimpleGraph.cycleGraph.tricoloring 2025-01-22 10:18:01 f912b7e feat: specialize `IsDenseInducing.extend` to the case of a subset (#20064) Introduce a shortcut for `hs.isDenseInducing_val.extend f`. It is useful because if `s : Set α` is dense then the coercion `(↑) : s → α` automatically satisfies `IsUniformInducing` and `IsDenseInducing` so this gives access to the theorems satisfied by a uniform extension by simply mentioning the density hypothesis. ESTIMATED CHANGES Modified Mathlib/Topology/DenseEmbedding.lean + theorem Dense.continuousAt_extend + theorem Dense.continuous_extend + theorem Dense.extend_eq + theorem Dense.extend_eq_at + theorem Dense.extend_eq_of_tendsto + theorem Dense.extend_unique + theorem Dense.extend_unique_at + theorem Dense.isDenseInducing_val Modified Mathlib/Topology/UniformSpace/UniformEmbedding.lean + theorem Dense.extend_exists + theorem Dense.extend_of_ind + theorem Dense.extend_spec + theorem Dense.uniformContinuous_extend + theorem isUniformInducing_val 2025-01-22 10:17:59 b7187aa feat: one more pidgeonhole version (#20056) ESTIMATED CHANGES Modified Mathlib/Data/Finset/Card.lean + theorem Finset.card_le_card_of_injective 2025-01-22 10:17:58 5bb2882 feat: the growth of a group is at least linear (#20018) This result belongs in a folder about growth of groups, which itself belongs in a folder about geometric group theory. Such folders do not exist yet, so I am creating them (calling them `Geometry.Group.Growth` and `Geometry.Group` respectively) and documenting them as such. From GrowthInGroups (LeanCamCombi) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Data/Finset/Insert.lean + theorem Finset.Nontrivial.not_subset_singleton + theorem Finset.nontrivial_coe Added Mathlib/Geometry/Group/Growth/LinearLowerBound.lean + theorem Finset.add_one_le_card_pow + theorem Finset.pow_right_strictMono + theorem Finset.pow_right_strictMonoOn + theorem Finset.pow_ssubset_pow_succ_of_pow_ne_closure Modified Mathlib/Geometry/Group/Growth/README.md 2025-01-22 10:17:56 25190fa refactor(Data/Seq): mark `Seq.recOn` with `cases_eliminator` (#19829) Mark `Seq.recOn` with `cases_eliminator` to enable using `cases` tactic with sequences. ESTIMATED CHANGES Modified Mathlib/Data/Seq/Parallel.lean Modified Mathlib/Data/Seq/Seq.lean +/- def Stream'.Seq.recOn 2025-01-22 09:34:09 aaf3fad feat(Logic/Equiv/Basic): sumSigmaDistrib, finSigmaFinEquiv (#19618) Upstreamed from the [EquationalTheories](https://github.com/teorth/equational_theories) project. [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) ESTIMATED CHANGES Modified Mathlib/Algebra/BigOperators/Fin.lean + def finSigmaFinEquiv + theorem finSigmaFinEquiv_apply + theorem finSigmaFinEquiv_one Modified Mathlib/Logic/Equiv/Basic.lean + def Equiv.sumSigmaDistrib + def Equiv.uniqueSigma + theorem Equiv.uniqueSigma_apply + theorem Equiv.uniqueSigma_symm_apply 2025-01-22 09:20:03 dc940b9 feat(CategoryTheory): Pull back filteredness along representably flat functors (#20864) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/CategoryTheory/Filtered/CostructuredArrow.lean Added Mathlib/CategoryTheory/Filtered/Flat.lean + theorem CategoryTheory.isCofiltered_of_representablyFlat + theorem CategoryTheory.isFiltered_of_representablyCoflat Modified Mathlib/CategoryTheory/Functor/Flat.lean + theorem CategoryTheory.final_of_representablyFlat + theorem CategoryTheory.initial_of_representablyCoflat 2025-01-22 09:20:01 ca7a3cd feat(Multiset/Fintype): `Multiset.ToType` equivalence between `v ::ₘ m` and `Option m` (#19508) Also add an arbitrary equivalence `s ≃ s.map f` ESTIMATED CHANGES Modified Mathlib/Data/Multiset/Fintype.lean +/- def Multiset.ToType +/- theorem Multiset.card_coe +/- theorem Multiset.card_toEnumFinset + def Multiset.cast +/- def Multiset.coeEmbedding +/- def Multiset.coeEquiv + theorem Multiset.coe_consEquiv_of_eq_of_eq + theorem Multiset.coe_consEquiv_of_eq_of_lt + theorem Multiset.coe_consEquiv_of_ne +/- theorem Multiset.coe_mem +/- theorem Multiset.coe_mk + def Multiset.consEquiv + theorem Multiset.consEquiv_symm_none + theorem Multiset.consEquiv_symm_some + theorem Multiset.mapEquiv_apply + def Multiset.mapEquiv_aux +/- theorem Multiset.map_univ +/- theorem Multiset.map_univ_coe +/- theorem Multiset.map_univ_coeEmbedding +/- theorem Multiset.mem_of_mem_toEnumFinset +/- theorem Multiset.mem_toEnumFinset +/- def Multiset.mkToType +/- theorem Multiset.prod_eq_prod_coe +/- theorem Multiset.prod_eq_prod_toEnumFinset +/- theorem Multiset.prod_toEnumFinset +/- theorem Multiset.toEmbedding_coeEquiv_trans +/- def Multiset.toEnumFinset +/- theorem Multiset.toEnumFinset_mono +/- theorem Multiset.toEnumFinset_subset_iff 2025-01-22 09:03:51 c971e4f feat: a non-zero constant function is integrable iff the measure is finite (#20914) The situation here is that I want to case on `IsFiniteMeasure μ`, and in the negative branch I want to get `¬ Integrable (fun _ ↦ c) μ`. The current lemma `integrable_const_iff` is not very useful for that. From my PhD (LeanCamCombi) ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Function/L1Space.lean + theorem MeasureTheory.hasFiniteIntegral_const_iff_isFiniteMeasure +/- theorem MeasureTheory.integrable_const_iff + theorem MeasureTheory.integrable_const_iff_isFiniteMeasure Modified Mathlib/MeasureTheory/Integral/Bochner.lean Modified Mathlib/MeasureTheory/Integral/IntegrableOn.lean Modified Mathlib/MeasureTheory/Integral/Pi.lean Modified Mathlib/MeasureTheory/Measure/Typeclasses.lean + theorem MeasureTheory.isFiniteMeasure_restrict +/- theorem MeasureTheory.not_isFiniteMeasure_iff 2025-01-22 08:55:03 2c7ec21 fix(Zulip closed pr): use emoji code for newer version of `:closed-pr:` (#20942) When the emoji changed, its `emoji_code` also changed. This PR uses the current code. ESTIMATED CHANGES Modified scripts/zulip_emoji_merge_delegate.py 2025-01-22 08:02:35 3982e7c fix(Zulip reaction): add emoji_code and realm_emoji for `:closed-pr:` (#20941) I forgot that for custom emoji, the Zulip API to remove reactions requires also the code and realm_emoji, possibly not both, but certainly at least one! ESTIMATED CHANGES Modified scripts/zulip_emoji_merge_delegate.py 2025-01-22 08:02:34 e0e8605 chore(CategoryTheory): move Functor.IsWellOrderContinuous (#20366) The definition of `Functor.IsWellOrderContinuous` is moved to a better place `Limits.Shapes.Preorder.WellOrderContinuous` (see also #20335). ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Limits/Shapes/Preorder/WellOrderContinuous.lean + def CategoryTheory.Functor.coconeLT + theorem CategoryTheory.Functor.isWellOrderContinuous_of_iso + def CategoryTheory.Functor.restrictionLT Modified Mathlib/CategoryTheory/MorphismProperty/TransfiniteComposition.lean - def CategoryTheory.Functor.coconeLT - theorem CategoryTheory.Functor.isWellOrderContinuous_of_iso - def CategoryTheory.Functor.restrictionLT Modified Mathlib/CategoryTheory/SmallObject/TransfiniteCompositionLifting.lean 2025-01-22 07:51:38 fb39772 feat(Algebra/Category/Grp/Ulift): the universe lifting functor for commutative additive groups preserves colimits (#20417) Prove that the functor `AddCommGrp.ulift` preserves all colimits, hence creates small colimits. (This also finished the proof that it is an exact functor.) Method: Suppose that we have a functor `K : J ⥤ AddCommGrp.{u}` (with `J` any category), a colimit cocone `c` of `K` and a cocone `lc` of `K ⋙ uliftFunctor.{u v}`. We want to construct a morphism of cocones `uliftFunctor.mapCocone c → lc` witnessing the fact that `uliftFunctor.mapCocone c` is also a colimit cocone, but we have no direct way to do this. The idea is to use that `AddCommGrp.{max v u}` has a small cogenerator, which is just the additive (rational) circle `ℚ / ℤ`, so any abelian group of any size can be recovered from its morphisms into `ℚ / ℤ`. More precisely, the functor sending an abelian group `A` to its dual `A →+ ℚ / ℤ` is fully faithful, *if* we consider the dual as a (right) module over the endomorphism ring of `ℚ / ℤ`. So an abelian group `C` is totally determined by the restriction of the coyoneda functor `A ↦ (C →+ A)` to the category of abelian groups at a smaller universe level. We do not develop this totally here but do a direct construction. Every time we have a morphism from `lc.pt` into `ℚ / ℤ`, or more generally into any small abelian group `A`, we can construct a cocone of `K ⋙ uliftFunctor` by sticking `ULift A` at the cocone point (this is `CategoryTheory.Limits.Cocone.extensions`), and this cocone is actually made up of `u`-small abelian groups, hence gives a cocone of `K`. Using the universal property of `c`, we get a morphism `c.pt →+ A`. So we have constructed a map `(lc.pt →+ A) → (c.pt →+ A)`, and it is easy to prove that it is compatible with postcomposition of morphisms of small abelian groups. To actually get the morphism `c.pt →+ lc.pt`, we apply this to the canonical embedding of `lc.pt` into `Π (_ : lc.pt →+ ℚ / ℤ), ℚ / ℤ` (this group is not small but is a product of small groups, so our construction extends). To show that the image of `c.pt` in this product is contained in that of `lc.pt`, we use the compatibility with postcomposition and the fact that we can detect elements of the image just by applying morphisms from `Π (_ : lc.pt →+ ℚ / ℤ), ℚ / ℤ` to `ℚ / ℤ`. - [x] depends on: #20416 - [x] depends on: #20512 - [x] depends on: #20522 ESTIMATED CHANGES Modified Mathlib/Algebra/Category/Grp/Colimits.lean + theorem AddCommGrp.Colimits.Quot.desc_quotQuotUliftAddEquiv + def AddCommGrp.Colimits.quotQuotUliftAddEquiv + def AddCommGrp.Colimits.quotToQuotUlift + theorem AddCommGrp.Colimits.quotToQuotUlift_ι + def AddCommGrp.Colimits.quotUliftToQuot + theorem AddCommGrp.Colimits.quotUliftToQuot_ι Modified Mathlib/Algebra/Category/Grp/Ulift.lean 2025-01-22 07:21:05 3197a5f feat(RingTheory/Trace): `trace K x` in terms of `minpoly K x` (#20906) Two facts expressing `trace K x` in terms of `(minpoly K x).nextCoeff`. ESTIMATED CHANGES Modified Mathlib/RingTheory/Trace/Basic.lean + theorem trace_adjoinSimpleGen + theorem trace_eq_finrank_mul_minpoly_nextCoeff 2025-01-22 06:58:11 d57d054 feat(CI): remove `:closed-pr:` reaction, if PR is reopened (#20926) This PR follow up on #20902: the action is now also triggered by `reopened` PRs and the bot removes the `:closed-pr:` Zulip reaction in this case. ESTIMATED CHANGES Modified .github/workflows/zulip_emoji_closed_pr.yaml 2025-01-22 02:43:50 8d5e2c1 feat(ContinuousFunctionalCalculus): `‖sqrt a‖ = sqrt ‖a‖` and `‖a ^ r‖ = ‖a‖^r` for an isometric CFC (#20819) This PR shows that `‖sqrt a‖ = sqrt ‖a‖` and `‖a ^ r‖ = ‖a‖ ^ r` when `a` is an element of an algebra that admits an isometric continuous functional calculus. We also rename the file `Analysis.SpecialFunctions.ContinuousFunctionalCalculus.Rpow` to `Analysis.SpecialFunctions.ContinuousFunctionalCalculus.Rpow.Basic`, in order to put the new results in a new file with heavier imports. I think the new folder makes sense, especially since we'll need to do something like that anyway soon for the operator monotonicity and convexity/concavity results that depend on integral representations. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Analysis/CStarAlgebra/ApproximateUnit.lean Modified Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Order.lean Renamed Mathlib/Analysis/SpecialFunctions/ContinuousFunctionalCalculus/Rpow.lean to Mathlib/Analysis/SpecialFunctions/ContinuousFunctionalCalculus/Rpow/Basic.lean + theorem NNReal.monotone_nnrpow_const Added Mathlib/Analysis/SpecialFunctions/ContinuousFunctionalCalculus/Rpow/Isometric.lean + theorem CFC.nnnorm_nnrpow + theorem CFC.nnnorm_rpow + theorem CFC.nnnorm_sqrt + theorem CFC.norm_nnrpow + theorem CFC.norm_rpow + theorem CFC.norm_sqrt 2025-01-22 02:01:06 338b4da chore(Data/Fin/Basic): split off `rev` lemmas (#20833) This PR splits out lemmas about the `Fin.rev` function from `Data.Fin.Basic`. This addresses an instance of a long file linter trigger. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Group/Fin/Basic.lean Modified Mathlib/Data/Fin/Basic.lean - theorem Fin.cast_rev - theorem Fin.le_rev_iff - theorem Fin.lt_rev_iff - theorem Fin.predAbove_rev_left - theorem Fin.predAbove_rev_right - def Fin.revPerm - theorem Fin.revPerm_symm - theorem Fin.rev_bijective - theorem Fin.rev_castPred - theorem Fin.rev_eq_iff - theorem Fin.rev_injective - theorem Fin.rev_involutive - theorem Fin.rev_le_iff - theorem Fin.rev_lt_iff - theorem Fin.rev_ne_iff - theorem Fin.rev_pred - theorem Fin.rev_predAbove - theorem Fin.rev_succAbove - theorem Fin.rev_surjective - theorem Fin.succAbove_rev_left - theorem Fin.succAbove_rev_right - theorem Fin.val_rev_zero Added Mathlib/Data/Fin/Rev.lean + theorem Fin.cast_rev + theorem Fin.le_rev_iff + theorem Fin.lt_rev_iff + theorem Fin.predAbove_rev_left + theorem Fin.predAbove_rev_right + def Fin.revPerm + theorem Fin.revPerm_symm + theorem Fin.rev_bijective + theorem Fin.rev_castPred + theorem Fin.rev_eq_iff + theorem Fin.rev_injective + theorem Fin.rev_involutive + theorem Fin.rev_le_iff + theorem Fin.rev_lt_iff + theorem Fin.rev_ne_iff + theorem Fin.rev_pred + theorem Fin.rev_predAbove + theorem Fin.rev_succAbove + theorem Fin.rev_surjective + theorem Fin.succAbove_rev_left + theorem Fin.succAbove_rev_right + theorem Fin.val_rev_zero Modified Mathlib/Data/Fin/Tuple/Basic.lean Modified Mathlib/Order/Fin/Basic.lean 2025-01-22 01:51:20 efc500d chore(CI): remove `issue_number` from `:closed-pr:` action (#20925) This cleanup was planned [here](https://github.com/leanprover-community/mathlib4/pull/20902#discussion_r1923761803). I wanted to make sure that `pull_request.number` was the correct github name for the... PR number! It is, so `issue.number` can be removed. ESTIMATED CHANGES Modified .github/workflows/zulip_emoji_closed_pr.yaml 2025-01-21 21:33:29 e3ce54e feat(Analysis): relate summable and multipliable sequences using log (#16546) Add some results about transforming summable sequences `f n` indexed by natural numbers , into multipliable sequeces of the form `1 + f n` using complex and real logs. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Analysis/NormedSpace/FunctionSeries.lean + theorem tendstoUniformlyOn_tsum_nat_eventually Modified Mathlib/Analysis/SpecialFunctions/Complex/Log.lean - theorem Complex.HasSum_cexp_HasProd +/- theorem Complex.cexp_tsum_eq_tprod + theorem Complex.hasProd_of_hasSum_log + theorem Complex.multipliable_of_summable_log - theorem Complex.summable_cexp_multipliable - theorem Real.HasSum_rexp_HasProd + theorem Real.hasProd_of_hasSum_log + theorem Real.multipliable_of_summable_log +/- theorem Real.rexp_tsum_eq_tprod - theorem Real.summable_cexp_multipliable Added Mathlib/Analysis/SpecialFunctions/Log/Summable.lean + theorem Complex.multipliable_one_add_of_summable + theorem Complex.summable_log_one_add_of_summable + theorem Complex.tendstoUniformlyOn_tsum_nat_log_one_add + theorem Real.multipliable_one_add_of_summable + theorem Real.summable_log_one_add_of_summable 2025-01-21 21:03:22 ec5d1d8 feat(CategoryTheory): Functor.prod and Functor.prod' are final (#20841) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Filtered/Final.lean + theorem CategoryTheory.IsFiltered.isSifted + theorem CategoryTheory.IsFilteredOrEmpty.isSiftedOrEmpty Modified Mathlib/CategoryTheory/Limits/Final.lean Modified Mathlib/CategoryTheory/Limits/Sifted.lean 2025-01-21 20:44:01 46d1f44 feat(Topology/Algebra/Algebra/Equiv): continuous algebra equivs (#20609) From FLT. Written by Salvatore Mercuri. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Topology/Algebra/Algebra/Equiv.lean + theorem AlgEquiv.isUniformEmbedding + theorem ContinuousAlgEquiv.apply_symm_apply + theorem ContinuousAlgEquiv.coe_apply + theorem ContinuousAlgEquiv.coe_coe + theorem ContinuousAlgEquiv.coe_comp_coe_symm + theorem ContinuousAlgEquiv.coe_inj + theorem ContinuousAlgEquiv.coe_injective + theorem ContinuousAlgEquiv.coe_refl' + theorem ContinuousAlgEquiv.coe_refl + theorem ContinuousAlgEquiv.coe_symm_comp_coe + theorem ContinuousAlgEquiv.coe_toAlgEquiv + theorem ContinuousAlgEquiv.comp_coe + theorem ContinuousAlgEquiv.comp_continuous_iff' + theorem ContinuousAlgEquiv.comp_continuous_iff + theorem ContinuousAlgEquiv.continuous + theorem ContinuousAlgEquiv.continuousAt + theorem ContinuousAlgEquiv.continuousOn + theorem ContinuousAlgEquiv.continuousWithinAt + theorem ContinuousAlgEquiv.eq_symm_apply + theorem ContinuousAlgEquiv.ext + theorem ContinuousAlgEquiv.image_closure + theorem ContinuousAlgEquiv.image_eq_preimage + theorem ContinuousAlgEquiv.image_symm_eq_preimage + theorem ContinuousAlgEquiv.image_symm_image + theorem ContinuousAlgEquiv.isClosed_image + theorem ContinuousAlgEquiv.isOpenMap + theorem ContinuousAlgEquiv.isUniformEmbedding + theorem ContinuousAlgEquiv.map_eq_zero_iff + theorem ContinuousAlgEquiv.map_nhds_eq + theorem ContinuousAlgEquiv.preimage_closure + theorem ContinuousAlgEquiv.preimage_symm_preimage + def ContinuousAlgEquiv.refl + theorem ContinuousAlgEquiv.refl_apply + theorem ContinuousAlgEquiv.refl_symm + theorem ContinuousAlgEquiv.self_comp_symm + def ContinuousAlgEquiv.symm + theorem ContinuousAlgEquiv.symm_apply_apply + theorem ContinuousAlgEquiv.symm_apply_eq + theorem ContinuousAlgEquiv.symm_comp_self + theorem ContinuousAlgEquiv.symm_image_image + theorem ContinuousAlgEquiv.symm_map_nhds_eq + theorem ContinuousAlgEquiv.symm_preimage_preimage + theorem ContinuousAlgEquiv.symm_symm + theorem ContinuousAlgEquiv.symm_symm_apply + theorem ContinuousAlgEquiv.symm_toAlgEquiv + theorem ContinuousAlgEquiv.symm_toHomeomorph + theorem ContinuousAlgEquiv.symm_trans_apply + theorem ContinuousAlgEquiv.toAlgEquiv_injective + def ContinuousAlgEquiv.toContinuousAlgHom + def ContinuousAlgEquiv.trans + theorem ContinuousAlgEquiv.trans_apply + theorem ContinuousAlgEquiv.trans_toAlgEquiv + structure ContinuousAlgEquiv 2025-01-21 20:44:00 1d24f3c refactor(Order/Disjointed): allow arbitrary partial orders as domain (#20545) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Order/Disjointed.lean + def Nat.disjointedRec + theorem disjointedRec_zero + theorem disjointed_add_one Modified Mathlib/MeasureTheory/OuterMeasure/Caratheodory.lean + theorem MeasureTheory.OuterMeasure.IsCaratheodory.biUnion_of_finite +/- theorem MeasureTheory.OuterMeasure.isCaratheodory_disjointed +/- theorem MeasureTheory.OuterMeasure.isCaratheodory_partialSups Modified Mathlib/MeasureTheory/SetSemiring.lean +/- theorem MeasureTheory.IsSetRing.disjointed_mem + theorem MeasureTheory.IsSetRing.finsetSup_mem +/- theorem MeasureTheory.IsSetRing.partialSups_mem Modified Mathlib/Order/Disjointed.lean + theorem Fintype.exists_disjointed_le + theorem Fintype.sup_disjointed + theorem Monotone.disjointed_succ_sup +/- theorem disjoint_disjointed + theorem disjoint_disjointed_of_lt +/- def disjointed + theorem disjointedRec - def disjointedRec - theorem disjointedRec_zero + theorem disjointed_apply + theorem disjointed_bot +/- theorem disjointed_eq_inf_compl +/- theorem disjointed_eq_inter_compl + theorem disjointed_eq_self +/- theorem disjointed_le +/- theorem disjointed_le_id + theorem disjointed_of_isMin + theorem disjointed_partialSups +/- theorem disjointed_subset +/- theorem disjointed_succ + theorem disjointed_unique' +/- theorem disjointed_unique +/- theorem iSup_disjointed +/- theorem iUnion_disjointed +/- theorem partialSups_disjointed Modified Mathlib/Order/Interval/Finset/Box.lean 2025-01-21 20:43:58 114805c feat: induction principle for finitely presented ring homs (#20069) For a property to hold for all finitely presented ring homs, it suffices for it to hold for `Polynomial.C : R → R[X]`, surjective ring homs with finitely generated kernels, and to be closed under composition. From GrowthInGroups (LeanCamCombi) ESTIMATED CHANGES Modified Mathlib/RingTheory/FinitePresentation.lean + theorem RingHom.FinitePresentation.polynomial_induction 2025-01-21 20:35:35 02f1d57 feat(CI): Zulip `:closed-pr:` emoji reaction (#20902) Add a workflow that is triggered by closing a PR. If the PR does title not start with `[Merged by Bors]`, then the script adds the `:closed-pr:` emoji reaction to messages on Zulip that link to the PR number. ESTIMATED CHANGES Added .github/workflows/zulip_emoji_closed_pr.yaml Modified scripts/zulip_emoji_merge_delegate.py 2025-01-21 18:51:08 c01816f chore: simplify some proofs with `omega` (#20919) Those simplifications were found by [`tryAtEachStep`](https://github.com/dwrensha/tryAtEachStep). ESTIMATED CHANGES Modified Mathlib/Algebra/Polynomial/FieldDivision.lean Modified Mathlib/Algebra/Ring/Int/Parity.lean Modified Mathlib/AlgebraicTopology/SimplexCategory.lean Modified Mathlib/Analysis/Complex/Polynomial/Basic.lean Modified Mathlib/Combinatorics/Enumerative/Composition.lean Modified Mathlib/Computability/PartrecCode.lean Modified Mathlib/Data/Int/Defs.lean Modified Mathlib/Data/List/Intervals.lean Modified Mathlib/Data/Nat/Choose/Sum.lean Modified Mathlib/Data/Nat/Defs.lean Modified Mathlib/RingTheory/Ideal/Basic.lean Modified Mathlib/RingTheory/Polynomial/Basic.lean Modified Mathlib/RingTheory/RootsOfUnity/Complex.lean Modified Mathlib/Topology/Algebra/InfiniteSum/NatInt.lean 2025-01-21 18:51:06 590c3a6 chore: review of `nolint simpNF` (#20867) Closes #18942. ESTIMATED CHANGES Modified Mathlib/Algebra/Category/Semigrp/Basic.lean Modified Mathlib/Algebra/Free.lean Modified Mathlib/Algebra/Homology/DifferentialObject.lean Modified Mathlib/Algebra/Order/CompleteField.lean Modified Mathlib/Algebra/Ring/Commute.lean Modified Mathlib/Algebra/Ring/Subring/Basic.lean Modified Mathlib/AlgebraicGeometry/GammaSpecAdjunction.lean Modified Mathlib/AlgebraicGeometry/ProjectiveSpectrum/StructureSheaf.lean Modified Mathlib/AlgebraicGeometry/Spec.lean Modified Mathlib/AlgebraicGeometry/StructureSheaf.lean Modified Mathlib/AlgebraicTopology/FundamentalGroupoid/InducedMaps.lean Modified Mathlib/Analysis/CStarAlgebra/Basic.lean Modified Mathlib/Analysis/Normed/Group/Hom.lean Modified Mathlib/Analysis/Normed/Group/SemiNormedGrp/Completion.lean Modified Mathlib/Analysis/Normed/Group/Seminorm.lean Modified Mathlib/Analysis/VonNeumannAlgebra/Basic.lean Modified Mathlib/CategoryTheory/Action/Monoidal.lean Modified Mathlib/CategoryTheory/Closed/Cartesian.lean Modified Mathlib/CategoryTheory/Closed/FunctorCategory/Groupoid.lean Modified Mathlib/CategoryTheory/Comma/Over.lean Modified Mathlib/CategoryTheory/Comma/StructuredArrow/Basic.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Equalizers.lean - theorem CategoryTheory.Limits.WalkingParallelPairHom.id.sizeOf_spec' Modified Mathlib/CategoryTheory/Limits/Shapes/Images.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Multiequalizer.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Reflexive.lean Modified Mathlib/CategoryTheory/Limits/Shapes/WideEqualizers.lean Modified Mathlib/CategoryTheory/Limits/Shapes/WidePullbacks.lean Modified Mathlib/CategoryTheory/Limits/Shapes/ZeroMorphisms.lean Modified Mathlib/CategoryTheory/Monoidal/Free/Basic.lean Modified Mathlib/CategoryTheory/Preadditive/Yoneda/Basic.lean Modified Mathlib/CategoryTheory/Sites/Sheaf.lean Modified Mathlib/CategoryTheory/Subobject/Comma.lean Modified Mathlib/Data/DFinsupp/BigOperators.lean Modified Mathlib/Data/DFinsupp/Defs.lean Modified Mathlib/Data/Fin/Tuple/Basic.lean Modified Mathlib/Data/Finset/Lattice/Fold.lean Modified Mathlib/Data/Finset/Sups.lean Modified Mathlib/Data/Finset/Sym.lean Modified Mathlib/Data/Finset/Union.lean +/- theorem Finset.disjiUnion_filter_eq Modified Mathlib/Data/Finsupp/Basic.lean Modified Mathlib/Data/Finsupp/ToDFinsupp.lean Modified Mathlib/Data/List/Basic.lean Modified Mathlib/Data/Matrix/DMatrix.lean Modified Mathlib/Data/Matrix/Defs.lean Modified Mathlib/Data/Matrix/Diagonal.lean Modified Mathlib/Data/Matrix/Mul.lean Modified Mathlib/Data/NNRat/Defs.lean Modified Mathlib/Data/Set/Function.lean Modified Mathlib/Data/Set/MulAntidiagonal.lean Modified Mathlib/Data/SetLike/Basic.lean Modified Mathlib/Data/Setoid/Partition.lean Modified Mathlib/Data/Sigma/Basic.lean Modified Mathlib/Data/Sign.lean Modified Mathlib/Data/Subtype.lean Modified Mathlib/FieldTheory/IntermediateField/Basic.lean Modified Mathlib/Geometry/Manifold/ChartedSpace.lean Modified Mathlib/GroupTheory/Complement.lean Modified Mathlib/GroupTheory/OrderOfElement.lean Modified Mathlib/GroupTheory/SemidirectProduct.lean Modified Mathlib/LinearAlgebra/Isomorphisms.lean Modified Mathlib/LinearAlgebra/Matrix/ToLin.lean Modified Mathlib/LinearAlgebra/Multilinear/Basic.lean Modified Mathlib/LinearAlgebra/QuadraticForm/Prod.lean Modified Mathlib/Logic/Unique.lean Modified Mathlib/MeasureTheory/Measure/FiniteMeasure.lean Modified Mathlib/NumberTheory/Divisors.lean Modified Mathlib/Order/Category/BddLat.lean Modified Mathlib/Order/Interval/Basic.lean Modified Mathlib/Topology/Algebra/Module/Star.lean Modified Mathlib/Topology/Category/LightProfinite/Basic.lean Modified Mathlib/Topology/Category/Profinite/Basic.lean Modified Mathlib/Topology/ContinuousMap/Units.lean 2025-01-21 18:51:05 8e7550d refactor(Probability.Martingale.BorelCantelli): move and simplify lemmas about indicators (#19039) Two lemmas about indicators ([limsup_eq_tendsto_sum_indicator_nat_atTop](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Topology/Algebra/Order/LiminfLimsup.html#limsup_eq_tendsto_sum_indicator_nat_atTop), [limsup_eq_tendsto_sum_indicator_atTop](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Topology/Algebra/Order/LiminfLimsup.html#limsup_eq_tendsto_sum_indicator_atTop)) are moved from `Mathlib.Topology.Algebra.Order.LiminfLimsup` to a new file `Mathlib.Topology.Algebra.IndicatorCard` . ~~`Mathlib.Probability.Martingale.BorelCantelli`. I'm not completely sure this is the right place for them, but it simplifies significantly the imports and these lemmas weren't used anywhere else, so...~~ Their proofs are also significantly simplified. There are two new lemma `Set.sum_indicator_eventually_eq_card` and `Set.infinite_iff_tendsto_sum_indicator_atTop` which seem more versatile and concentrate most of the difficulty, `limsup_eq_tendsto_sum_indicator_nat_atTop` is removed (it is less general than the last result), and `limsup_eq_tendsto_sum_indicator_atTop` is deduced very quickly from `Set.infinite_iff_tendsto_sum_indicator_atTop`. The statement of `Set.infinite_iff_tendsto_sum_indicator_atTop` is also slightly generalized. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Order/Archimedean/IndicatorCard.lean + theorem Set.infinite_iff_tendsto_sum_indicator_atTop + theorem Set.limsup_eq_tendsto_sum_indicator_atTop + theorem Set.sum_indicator_eventually_eq_card Modified Mathlib/MeasureTheory/OuterMeasure/Operations.lean Modified Mathlib/NumberTheory/SumPrimeReciprocals.lean Modified Mathlib/Probability/Martingale/BorelCantelli.lean Modified Mathlib/Topology/Algebra/Order/LiminfLimsup.lean - theorem limsup_eq_tendsto_sum_indicator_atTop - theorem limsup_eq_tendsto_sum_indicator_nat_atTop Modified Mathlib/Topology/Instances/ENNReal/Lemmas.lean Modified Mathlib/Topology/UrysohnsLemma.lean 2025-01-21 18:15:12 9db6595 feat(CategoryTheory): `Arrow A` is finite iff `A` is a finite category (#19945) We obtain various results about the cardinality of `Arrow`. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/CategoryTheory/Comma/Arrow.lean + def CategoryTheory.Arrow.discreteEquiv + def CategoryTheory.Arrow.equivSigma + theorem CategoryTheory.Arrow.ext Added Mathlib/CategoryTheory/Comma/CardinalArrow.lean + theorem CategoryTheory.Arrow.finite_iff + def CategoryTheory.Arrow.opEquiv + theorem CategoryTheory.hasCardinalLT_arrow_discrete_iff + theorem CategoryTheory.hasCardinalLT_arrow_op_iff + theorem CategoryTheory.hasCardinalLT_arrow_shrinkHoms_iff + theorem CategoryTheory.hasCardinalLT_arrow_shrink_iff + theorem CategoryTheory.hasCardinalLT_of_hasCardinalLT_arrow + theorem CategoryTheory.locallySmall_of_small_arrow + theorem CategoryTheory.small_of_small_arrow Modified Mathlib/CategoryTheory/EssentiallySmall.lean 2025-01-21 17:30:58 3a0c1d4 feat(RingTheory/TensorProduct): tensor product commutes with quotients by ideals (#20715) If `B` is an `A`-algebra and `I` an ideal of `A`, then `B ⊗[A] (A ⧸ I)` is isomorphic to `B ⧸ (I.map <| algebraMap A B)`. Co-authored by: Sihan Su Co-authored by: Yi Song ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/RingTheory/TensorProduct/Quotient.lean + theorem Algebra.TensorProduct.quotIdealMapEquivTensorQuot_mk + theorem Algebra.TensorProduct.quotIdealMapEquivTensorQuot_symm_tmul 2025-01-21 17:14:37 69e7baf feat(Integral/Pi): a version of `polarCoord` for `pi` integrals (#18400) This PR is part of the proof of the Analytic Class Number Formula. ESTIMATED CHANGES Modified Mathlib/Analysis/SpecialFunctions/PolarCoord.lean + theorem abs_fst_of_mem_pi_polarCoord_target + theorem det_fderivPiPolarCoordSymm + theorem det_fderivPolarCoordSymm - theorem det_fderiv_polarCoord_symm + def fderivPolarCoordSymm + theorem hasFDerivAt_pi_polarCoord_symm + theorem injOn_pi_polarCoord_symm + theorem integral_comp_pi_polarCoord_symm + theorem lintegral_comp_pi_polarCoord_symm + theorem measurableSet_pi_polarCoord_target + theorem pi_polarCoord_symm_target_ae_eq_univ Modified Mathlib/LinearAlgebra/Determinant.lean + theorem LinearMap.det_pi Modified Mathlib/Topology/Algebra/Module/Determinant.lean + theorem ContinuousLinearMap.det_pi 2025-01-21 15:48:52 ed19477 feat(IncidenceAlgebra): Euler characteristic of a partial order (#20299) From LeanCamCombi ESTIMATED CHANGES Modified Mathlib/Combinatorics/Enumerative/IncidenceAlgebra.lean + def IncidenceAlgebra.eulerChar + theorem IncidenceAlgebra.eulerChar_orderDual + theorem IncidenceAlgebra.eulerChar_prod Modified Mathlib/Order/BoundedOrder/Basic.lean +/- theorem Prod.fst_bot +/- theorem Prod.fst_top +/- theorem Prod.snd_bot +/- theorem Prod.snd_top 2025-01-21 15:18:19 ee78f4e feat: an isometric continuous functional calculus gives rise to a non-unital one (#20917) ESTIMATED CHANGES Modified Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Isometric.lean 2025-01-21 15:01:42 be0cb54 chore(CategoryTheory/Enriched/Ordinary): create folder to allow API development (#20903) Moving `CategoryTheory/Enriched/Ordinary.lean` to `CategoryTheory/Enriched/Ordinary/Basic.lean` to allow addition of `CategoryTheory/Enriched/Ordinary/Limits.lean` in a follow-up PR. File content has not been touched. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/AlgebraicTopology/SimplicialCategory/Basic.lean Modified Mathlib/CategoryTheory/Enriched/FunctorCategory.lean Modified Mathlib/CategoryTheory/Enriched/HomCongr.lean Modified Mathlib/CategoryTheory/Enriched/Opposite.lean Renamed Mathlib/CategoryTheory/Enriched/Ordinary.lean to Mathlib/CategoryTheory/Enriched/Ordinary/Basic.lean 2025-01-21 14:47:25 5ffb97f feat: add (AE)Measurable.complex_ofReal and fun_prop attributes (#20842) ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Function/SpecialFunctions/Basic.lean 2025-01-21 14:21:12 c55e500 feat: notation for variance according to a measure (#20901) The convention of using `X ; μ` to denote that `X` is sampled with measure `μ` comes from PFR. [Zulip](https://leanprover.zulipchat.com/#narrow/channel/116395-maths/topic/.60MeasureSpace.60.20vs.20.60Measure.60.20in.20.60ProbabilityTheory.2F.60/near/476702131) From my PhD (LeanCamCombi) ESTIMATED CHANGES Modified Mathlib/Probability/Variance.lean 2025-01-21 14:10:03 22d5b96 chore: rename `zero_memℒp` to `Memℒp.zero` (#20915) This better matches the naming convention and unlocks anonymous dot notation. Also make both lemmas simp. From my PhD (LeanCamCombi) ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Function/LpSeminorm/Basic.lean + theorem MeasureTheory.Memℒp.zero' + theorem MeasureTheory.Memℒp.zero - theorem MeasureTheory.zero_mem_ℒp' - theorem MeasureTheory.zero_memℒp Modified Mathlib/MeasureTheory/Function/LpSeminorm/TriangleInequality.lean Modified Mathlib/MeasureTheory/Function/LpSpace.lean Modified Mathlib/MeasureTheory/Function/SimpleFuncDenseLp.lean +/- theorem MeasureTheory.Lp.simpleFunc.toLp_zero Modified Mathlib/Probability/Process/Filtration.lean Modified scripts/nolints_prime_decls.txt 2025-01-21 12:39:44 3a74c6c chore: split Mathlib.Order.Filter.Ultrafilter (#20848) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/ModelTheory/Satisfiability.lean Modified Mathlib/ModelTheory/Ultraproducts.lean Modified Mathlib/Order/Filter/FilterProduct.lean Modified Mathlib/Order/Filter/Pointwise.lean Modified Mathlib/Order/Filter/Subsingleton.lean Added Mathlib/Order/Filter/Ultrafilter/Basic.lean + theorem Filter.atBot_eq_pure_of_isBot + theorem Filter.atTop_eq_pure_of_isTop + theorem Filter.bot_ne_hyperfilter + theorem Filter.compl_mem_hyperfilter_of_finite + theorem Filter.hyperfilter_le_cofinite + theorem Filter.mem_hyperfilter_of_finite_compl + theorem Filter.nmem_hyperfilter_of_finite + theorem Filter.tendsto_iff_ultrafilter + theorem Nat.hyperfilter_le_atTop + theorem Ultrafilter.eq_pure_of_finite + theorem Ultrafilter.eq_pure_of_finite_mem + theorem Ultrafilter.eventually_exists_iff + theorem Ultrafilter.eventually_exists_mem_iff + theorem Ultrafilter.exists_ultrafilter_of_finite_inter_nonempty + theorem Ultrafilter.finite_biUnion_mem_iff + theorem Ultrafilter.finite_sUnion_mem_iff + theorem Ultrafilter.le_cofinite_or_eq_pure Renamed Mathlib/Order/Filter/Ultrafilter.lean to Mathlib/Order/Filter/Ultrafilter/Defs.lean - theorem Filter.atBot_eq_pure_of_isBot - theorem Filter.atTop_eq_pure_of_isTop - theorem Filter.bot_ne_hyperfilter - theorem Filter.compl_mem_hyperfilter_of_finite - theorem Filter.hyperfilter_le_cofinite - theorem Filter.mem_hyperfilter_of_finite_compl - theorem Filter.nmem_hyperfilter_of_finite - theorem Filter.tendsto_iff_ultrafilter - theorem Nat.hyperfilter_le_atTop - theorem Ultrafilter.eq_pure_of_finite - theorem Ultrafilter.eq_pure_of_finite_mem - theorem Ultrafilter.eventually_exists_iff - theorem Ultrafilter.eventually_exists_mem_iff - theorem Ultrafilter.exists_ultrafilter_of_finite_inter_nonempty - theorem Ultrafilter.finite_biUnion_mem_iff - theorem Ultrafilter.finite_sUnion_mem_iff - theorem Ultrafilter.le_cofinite_or_eq_pure Modified Mathlib/Topology/Defs/Ultrafilter.lean Modified Mathlib/Topology/Ultrafilter.lean 2025-01-21 11:45:12 c499ecf feat(Matroid): all bases of a finitary matroid have the same cardinality (#20888) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Data/Matroid/Rank/Cardinal.lean + theorem Matroid.Base.cardinalMk_diff_comm_of_finitary + theorem Matroid.Base.cardinalMk_eq_of_finitary + theorem Matroid.Basis'.cardinalMk_diff_comm_of_finitary + theorem Matroid.Basis'.cardinalMk_eq_of_finitary + theorem Matroid.Basis.cardinalMk_diff_comm_of_finitary + theorem Matroid.Basis.cardinalMk_eq_of_finitary + theorem Matroid.Indep.cardinalMk_le_base_of_finitary + theorem Matroid.Indep.cardinalMk_le_basis'_of_finitary + theorem Matroid.Indep.cardinalMk_le_basis_of_finitary 2025-01-21 11:30:30 45c7be4 fix(CI): use `gawk` instead of `awk` (#20909) This probably makes running the import diff script locally friendlier for MacOS users that have `gawk` installed. [Zulip discussion](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/import.20diff.20bot) ESTIMATED CHANGES Modified scripts/import_trans_difference.sh 2025-01-21 07:16:52 1264ce9 feat(CategoryTheory): the equivalence of categories induced by a bijection (#20881) When `f : T → D` is a map and `D` is a category, then `InducedCategory D f` is a category with objects `T` with a fully faithful functor to `D`. In this PR, we show that in the case of a bijection `T ≃ D`, the induced category is equivalent to `D`. The code would be nicer (see #19945) if the type of morphisms in the induced category was defined as a 1-field structure. This would be a very welcomed refactor. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/EqToHom.lean + def CategoryTheory.Equivalence.induced Modified Mathlib/CategoryTheory/EssentiallySmall.lean 2025-01-21 06:54:47 a52aa03 chore(Topology/Instances/Real): reduce imports (#20548) ESTIMATED CHANGES Modified Mathlib/Analysis/Normed/Group/Quotient.lean Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Basic.lean Modified Mathlib/Analysis/SpecificLimits/Normed.lean Modified Mathlib/Topology/Instances/Real/Defs.lean + theorem Real.uniformContinuous_const_mul Modified Mathlib/Topology/Instances/Real/Lemmas.lean - theorem Real.uniformContinuous_const_mul 2025-01-21 06:28:47 6882ea7 refactor(Data/ZMod/Quotient): Split file (#20894) This PR splits `Mathlib/Data/ZMod/Quotient.lean` into a group-theory file and a ring-theory file. This makes sure that the file on cyclic groups doesn't import ideals. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Module/Torsion.lean Renamed Mathlib/Data/ZMod/Quotient.lean to Mathlib/Data/ZMod/QuotientGroup.lean - def Int.quotientSpanEquivZMod - def Int.quotientSpanNatEquivZMod - def ZMod.prodEquivPi Added Mathlib/Data/ZMod/QuotientRing.lean + def Int.quotientSpanEquivZMod + def Int.quotientSpanNatEquivZMod + def ZMod.prodEquivPi Modified Mathlib/GroupTheory/FiniteAbelian/Basic.lean Modified Mathlib/GroupTheory/SpecificGroups/Cyclic.lean Modified Mathlib/LinearAlgebra/FreeModule/IdealQuotient.lean Modified Mathlib/LinearAlgebra/FreeModule/Int.lean Modified Mathlib/LinearAlgebra/Matrix/SpecialLinearGroup.lean Modified Mathlib/MeasureTheory/Group/AddCircle.lean Modified Mathlib/NumberTheory/Cyclotomic/CyclotomicCharacter.lean Modified Mathlib/RingTheory/AdicCompletion/Algebra.lean Modified Mathlib/RingTheory/DedekindDomain/SelmerGroup.lean 2025-01-21 04:54:14 77dfbec feat(CategoryTheory/Bicategory): define mates in bicategories (#20891) A challenge from 2-category theory in [Lean Together 2025: The ∞-cosmos project: formalizing 1-, 2-, V-, and ∞-category theory](https://youtu.be/pV6BIImkToU?si=kYGLb0-C-d5olGoR&t=1266) by @emilyriehl. There is also a [Zulip thred](https://leanprover.zulipchat.com/#narrow/channel/474713-Lean-Together-2025/topic/Emily.20Riehl.3A.20The.20infty-cosmos.20project) about this talk. ESTIMATED CHANGES Modified Mathlib.lean Renamed Mathlib/CategoryTheory/Bicategory/Adjunction.lean to Mathlib/CategoryTheory/Bicategory/Adjunction/Basic.lean Added Mathlib/CategoryTheory/Bicategory/Adjunction/Mate.lean + def CategoryTheory.Bicategory.leftAdjointSquare.hcomp + def CategoryTheory.Bicategory.leftAdjointSquare.vcomp + def CategoryTheory.Bicategory.mateEquiv + theorem CategoryTheory.Bicategory.mateEquiv_hcomp + theorem CategoryTheory.Bicategory.mateEquiv_vcomp + def CategoryTheory.Bicategory.rightAdjointSquare.hcomp + def CategoryTheory.Bicategory.rightAdjointSquare.vcomp Modified Mathlib/CategoryTheory/Bicategory/Kan/Adjunction.lean Modified scripts/noshake.json 2025-01-21 04:54:13 70557fd feat: add congruences of subtypes and sets/finsets. (#19514) A congruence about subtypes and sets/finsets. Related [zulip thread](https://leanprover.zulipchat.com/#narrow/channel/113489-new-members/topic/Mapping.20from.20subtype.20of.20finsets.20to.20finset.20of.20subtypes/near/484518824) ESTIMATED CHANGES Modified Mathlib/Data/Finset/Image.lean Modified Mathlib/Data/Set/Basic.lean 2025-01-21 04:10:30 7c3079e chore: address some porting notes in Mathlib/Computability (#20822) ESTIMATED CHANGES Modified Mathlib/Computability/Ackermann.lean Modified Mathlib/Computability/Encoding.lean +/- theorem Computability.decode_encodeBool +/- theorem Computability.decode_encodeNat +/- theorem Computability.decode_encodeNum +/- theorem Computability.decode_encodePosNum + theorem Computability.sectionΓ'Bool_inclusionBoolΓ' +/- theorem Computability.unary_decode_encode_nat Modified Mathlib/Computability/Language.lean Modified Mathlib/Computability/Partrec.lean Modified Mathlib/Computability/PartrecCode.lean Modified Mathlib/Computability/Primrec.lean Modified Mathlib/Computability/RegularExpressions.lean Modified Mathlib/Computability/TMComputable.lean +/- def Turing.EvalsTo.refl +/- def Turing.EvalsToInTime.refl Modified Mathlib/Computability/TMToPartrec.lean Modified Mathlib/Computability/Tape.lean Modified Mathlib/Computability/TuringMachine.lean Modified Mathlib/Data/Part.lean +/- theorem Part.bind_some_eq_map 2025-01-21 04:10:28 6fdfd80 feat(Data/Fin/Tuple/Basic): `snoc` & `insertNth` are injective (#20771) This PR adds injectivity lemmas for `Fin.snoc` and `Fin.insertNth`, similar to those for `Fin.cons`. This is part of #19315 that is split off. ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Antidiag/Pi.lean Modified Mathlib/Data/Fin/Tuple/Basic.lean - theorem Fin.cons_eq_cons + theorem Fin.cons_inj + theorem Fin.eq_self_or_eq_succAbove + theorem Fin.insertNth_inj + theorem Fin.insertNth_injective2 + theorem Fin.insertNth_left_injective + theorem Fin.insertNth_right_injective + theorem Fin.snoc_inj + theorem Fin.snoc_injective2 + theorem Fin.snoc_left_injective + theorem Fin.snoc_right_injective Modified Mathlib/Data/Fin/Tuple/NatAntidiagonal.lean 2025-01-21 04:10:27 f380e8d chore(ConjAct): don't import fields (#20718) `ConjAct` is imported in basic algebra files about groups, and therefore should not import `MonoidWithZero`. The latter is currently quite deeply embedded within the import graph, so we start by removing `Field`. The copyright headers come from https://github.com/leanprover-community/mathlib3/pull/8627 and https://github.com/leanprover-community/mathlib3/pull/13439. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Field/Action/ConjAct.lean Added Mathlib/Algebra/GroupWithZero/Action/ConjAct.lean + theorem ConjAct.ofConjAct_zero + theorem ConjAct.toConjAct_zero Added Mathlib/Algebra/Ring/Action/ConjAct.lean Modified Mathlib/Analysis/Normed/Algebra/Exponential.lean Modified Mathlib/GroupTheory/GroupAction/ConjAct.lean - theorem ConjAct.ofConjAct_zero - theorem ConjAct.toConjAct_zero Modified Mathlib/LinearAlgebra/CliffordAlgebra/SpinGroup.lean 2025-01-21 04:10:26 33d9a86 feat: the disjoint union of smooth manifolds (#20659) - the disjoint union of smooth manifolds is a smooth manifold - the interior and boundary are the disjoint union of the interior and boundary; the disjoint union of boundaryless manifolds is boundaryless A future PR will prove that `Sum.inl` and `Sum.inr` between `C^n` manifolds are C^n. From my bordism theory branch. ESTIMATED CHANGES Modified Mathlib/Data/Set/Basic.lean + theorem Set.inl_compl_union_inr_compl Modified Mathlib/Data/Sum/Basic.lean + theorem not_isLeft_and_isRight Modified Mathlib/Geometry/Manifold/InteriorBoundary.lean + theorem ModelWithCorners.boundaryPoint_inl + theorem ModelWithCorners.boundaryPoint_inr + theorem ModelWithCorners.boundary_disjointUnion + theorem ModelWithCorners.interiorPoint_inl + theorem ModelWithCorners.interiorPoint_inr + theorem ModelWithCorners.interior_disjointUnion + theorem ModelWithCorners.isInteriorPoint_disjointUnion_left + theorem ModelWithCorners.isInteriorPoint_disjointUnion_right + theorem ModelWithCorners.isInteriorPoint_iff_not_isBoundaryPoint Modified Mathlib/Geometry/Manifold/IsManifold.lean + theorem ContDiffGroupoid.mem_of_source_eq_empty + theorem ContinuousGroupoid.mem_of_source_eq_empty Modified Mathlib/Topology/PartialHomeomorph.lean + theorem PartialHomeomorph.lift_openEmbedding_symm_source + theorem PartialHomeomorph.lift_openEmbedding_symm_target + theorem PartialHomeomorph.lift_openEmbedding_trans + theorem PartialHomeomorph.lift_openEmbedding_trans_apply 2025-01-21 03:27:05 f8fdf24 doc(Algebra): mention counterexamples, add links to MathOverflow (#20889) Also slightly golf two proofs. ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/Dimension/Basic.lean Modified Mathlib/RingTheory/Algebraic/Integral.lean Modified Mathlib/RingTheory/IntegralClosure/IsIntegralClosure/Basic.lean 2025-01-21 03:27:03 6e42827 chore(Data/List/Basic): split off Map2 lemmas (#20832) This PR splits off a number of lemmas related maps that zip pairs of lists from `Data.List.Basic` to a new file, including: * `map₂Left'` * `map₂Right'` * `zipWith` * `zipLeft'` * `zipRight'` Doing so reduces the size of this long file by ~250 lines. Also note that the new file doesn't need to import `Basic`, so this should parallelize the compilation too. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Data/List/Basic.lean - theorem List.map₂Left'_nil_right - theorem List.map₂Left_eq_map₂Left' - theorem List.map₂Left_eq_zipWith - theorem List.map₂Left_nil_right - theorem List.map₂Right'_cons_cons - theorem List.map₂Right'_nil_cons - theorem List.map₂Right'_nil_left - theorem List.map₂Right'_nil_right - theorem List.map₂Right_cons_cons - theorem List.map₂Right_eq_map₂Right' - theorem List.map₂Right_eq_zipWith - theorem List.map₂Right_nil_cons - theorem List.map₂Right_nil_left - theorem List.map₂Right_nil_right - theorem List.nil_zipWith - theorem List.zipLeft'_cons_cons - theorem List.zipLeft'_cons_nil - theorem List.zipLeft'_nil_left - theorem List.zipLeft'_nil_right - theorem List.zipLeft_cons_cons - theorem List.zipLeft_cons_nil - theorem List.zipLeft_eq_zipLeft' - theorem List.zipLeft_nil_left - theorem List.zipLeft_nil_right - theorem List.zipRight'_cons_cons - theorem List.zipRight'_nil_cons - theorem List.zipRight'_nil_left - theorem List.zipRight'_nil_right - theorem List.zipRight_cons_cons - theorem List.zipRight_eq_zipRight' - theorem List.zipRight_nil_cons - theorem List.zipRight_nil_left - theorem List.zipRight_nil_right - theorem List.zipWith_flip - theorem List.zipWith_nil Added Mathlib/Data/List/Map2.lean + theorem List.map₂Left'_nil_right + theorem List.map₂Left_eq_map₂Left' + theorem List.map₂Left_eq_zipWith + theorem List.map₂Left_nil_right + theorem List.map₂Right'_cons_cons + theorem List.map₂Right'_nil_cons + theorem List.map₂Right'_nil_left + theorem List.map₂Right'_nil_right + theorem List.map₂Right_cons_cons + theorem List.map₂Right_eq_map₂Right' + theorem List.map₂Right_eq_zipWith + theorem List.map₂Right_nil_cons + theorem List.map₂Right_nil_left + theorem List.map₂Right_nil_right + theorem List.nil_zipWith + theorem List.zipLeft'_cons_cons + theorem List.zipLeft'_cons_nil + theorem List.zipLeft'_nil_left + theorem List.zipLeft'_nil_right + theorem List.zipLeft_cons_cons + theorem List.zipLeft_cons_nil + theorem List.zipLeft_eq_zipLeft' + theorem List.zipLeft_nil_left + theorem List.zipLeft_nil_right + theorem List.zipRight'_cons_cons + theorem List.zipRight'_nil_cons + theorem List.zipRight'_nil_left + theorem List.zipRight'_nil_right + theorem List.zipRight_cons_cons + theorem List.zipRight_eq_zipRight' + theorem List.zipRight_nil_cons + theorem List.zipRight_nil_left + theorem List.zipRight_nil_right + theorem List.zipWith_flip + theorem List.zipWith_nil 2025-01-21 03:27:02 af1c22a chore: remove porting notes about the nonempty instance linter (#20824) [Zulip thread](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/nonempty.20instance.20linter.20.235171) ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/Defs.lean Modified Mathlib/Algebra/Algebra/Hom.lean Modified Mathlib/Algebra/Category/ModuleCat/Adjunctions.lean Modified Mathlib/Algebra/Homology/Homotopy.lean Modified Mathlib/Algebra/Module/LocalizedModule/Basic.lean Modified Mathlib/Algebra/Star/CHSH.lean Modified Mathlib/AlgebraicGeometry/AffineScheme.lean Modified Mathlib/AlgebraicGeometry/Gluing.lean Modified Mathlib/AlgebraicGeometry/ProjectiveSpectrum/Topology.lean Modified Mathlib/AlgebraicTopology/DoldKan/Decomposition.lean Modified Mathlib/AlgebraicTopology/SimplexCategory.lean Modified Mathlib/AlgebraicTopology/SimplicialObject/Basic.lean Modified Mathlib/AlgebraicTopology/SimplicialObject/Split.lean Modified Mathlib/Analysis/Calculus/BumpFunction/Basic.lean Modified Mathlib/Analysis/Calculus/Implicit.lean Modified Mathlib/CategoryTheory/Adjunction/Basic.lean Modified Mathlib/CategoryTheory/Bicategory/Free.lean Modified Mathlib/CategoryTheory/Bicategory/Functor/Oplax.lean Modified Mathlib/CategoryTheory/Category/PartialFun.lean Modified Mathlib/CategoryTheory/CommSq.lean Modified Mathlib/CategoryTheory/Comma/StructuredArrow/Basic.lean Modified Mathlib/CategoryTheory/Core.lean Modified Mathlib/CategoryTheory/DifferentialObject.lean Modified Mathlib/CategoryTheory/Enriched/Basic.lean Modified Mathlib/CategoryTheory/EpiMono.lean Modified Mathlib/CategoryTheory/EssentiallySmall.lean Modified Mathlib/CategoryTheory/FullSubcategory.lean Modified Mathlib/CategoryTheory/GlueData.lean Modified Mathlib/CategoryTheory/Grothendieck.lean Modified Mathlib/CategoryTheory/Idempotents/Karoubi.lean Modified Mathlib/CategoryTheory/Limits/ExactFunctor.lean Modified Mathlib/CategoryTheory/Limits/HasLimits.lean Modified Mathlib/CategoryTheory/Limits/IsLimit.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Biproducts.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Multiequalizer.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Types.lean Modified Mathlib/CategoryTheory/Limits/Types.lean Modified Mathlib/CategoryTheory/Localization/Construction.lean Modified Mathlib/CategoryTheory/Monad/Algebra.lean Modified Mathlib/CategoryTheory/Monoidal/Center.lean Modified Mathlib/CategoryTheory/Monoidal/Free/Basic.lean Modified Mathlib/CategoryTheory/Monoidal/Free/Coherence.lean Modified Mathlib/CategoryTheory/Monoidal/OfChosenFiniteProducts/Basic.lean Modified Mathlib/CategoryTheory/Monoidal/Opposite.lean Modified Mathlib/CategoryTheory/MorphismProperty/IsInvertedBy.lean Modified Mathlib/CategoryTheory/Preadditive/AdditiveFunctor.lean Modified Mathlib/CategoryTheory/Preadditive/InjectiveResolution.lean Modified Mathlib/CategoryTheory/Preadditive/Mat.lean Modified Mathlib/CategoryTheory/Preadditive/Projective.lean Modified Mathlib/CategoryTheory/Preadditive/ProjectiveResolution.lean Modified Mathlib/CategoryTheory/Shift/Basic.lean Modified Mathlib/CategoryTheory/Sites/ConcreteSheafification.lean Modified Mathlib/CategoryTheory/Sites/CoverLifting.lean Modified Mathlib/CategoryTheory/Sites/CoverPreserving.lean Modified Mathlib/CategoryTheory/Sites/DenseSubsite/Basic.lean Modified Mathlib/CategoryTheory/Sites/Grothendieck.lean Modified Mathlib/CategoryTheory/Widesubcategory.lean Modified Mathlib/CategoryTheory/WithTerminal.lean Modified Mathlib/Combinatorics/Quiver/Basic.lean Modified Mathlib/Combinatorics/Quiver/Subquiver.lean Modified Mathlib/Combinatorics/Quiver/Symmetric.lean Modified Mathlib/Data/PFunctor/Multivariate/W.lean Modified Mathlib/Data/PFunctor/Univariate/Basic.lean Modified Mathlib/Data/QPF/Univariate/Basic.lean Modified Mathlib/Dynamics/Ergodic/Ergodic.lean Modified Mathlib/Geometry/Manifold/ChartedSpace.lean Modified Mathlib/Geometry/Manifold/Diffeomorph.lean Modified Mathlib/Geometry/Manifold/IsManifold.lean Modified Mathlib/Geometry/Manifold/PartitionOfUnity.lean Modified Mathlib/Geometry/RingedSpace/PresheafedSpace/Gluing.lean Modified Mathlib/GroupTheory/CoprodI.lean Modified Mathlib/GroupTheory/FreeGroup/NielsenSchreier.lean Modified Mathlib/GroupTheory/GroupAction/Hom.lean Modified Mathlib/GroupTheory/MonoidLocalization/Basic.lean Modified Mathlib/GroupTheory/MonoidLocalization/MonoidWithZero.lean Modified Mathlib/LinearAlgebra/AffineSpace/AffineEquiv.lean Modified Mathlib/LinearAlgebra/Dual.lean Modified Mathlib/LinearAlgebra/FreeModule/PID.lean Modified Mathlib/LinearAlgebra/Matrix/Transvection.lean Modified Mathlib/LinearAlgebra/QuadraticForm/IsometryEquiv.lean Modified Mathlib/LinearAlgebra/Ray.lean Modified Mathlib/Logic/Embedding/Basic.lean Modified Mathlib/MeasureTheory/Covering/VitaliFamily.lean Modified Mathlib/MeasureTheory/Measure/Typeclasses.lean Modified Mathlib/ModelTheory/Basic.lean Modified Mathlib/NumberTheory/LegendreSymbol/AddCharacter.lean Modified Mathlib/Order/PrimeIdeal.lean Modified Mathlib/RingTheory/DedekindDomain/Ideal.lean Modified Mathlib/RingTheory/GradedAlgebra/HomogeneousLocalization.lean Modified Mathlib/RingTheory/IsAdjoinRoot.lean Modified Mathlib/RingTheory/Perfection.lean Modified Mathlib/RingTheory/PowerBasis.lean Modified Mathlib/RingTheory/Valuation/Basic.lean Modified Mathlib/RingTheory/WittVector/Isocrystal.lean Modified Mathlib/Topology/Algebra/Module/Equiv.lean Modified Mathlib/Topology/Connected/PathConnected.lean Modified Mathlib/Topology/FiberBundle/Basic.lean Modified Mathlib/Topology/FiberBundle/Trivialization.lean Modified Mathlib/Topology/Gluing.lean Modified Mathlib/Topology/MetricSpace/GromovHausdorff.lean Modified Mathlib/Topology/MetricSpace/GromovHausdorffRealized.lean Modified Mathlib/Topology/MetricSpace/Isometry.lean Modified Mathlib/Topology/MetricSpace/Polish.lean Modified Mathlib/Topology/PartialHomeomorph.lean Modified Mathlib/Topology/Sheaves/Presheaf.lean Modified Mathlib/Topology/ShrinkingLemma.lean Modified Mathlib/Topology/UniformSpace/Equiv.lean Modified Mathlib/Topology/VectorBundle/Basic.lean 2025-01-21 14:01:58+11:00 6e13e01 feat: `casesm` tactic reuses hypothesis name if only one new hypothesis (#20763) * feat: casesm tactic reuses hypothesis name if only one new hypothesis * doc-string * refactor * only if an fvar * golf ESTIMATED CHANGES Modified Mathlib/Tactic/CasesM.lean + def Mathlib.Tactic.elabCasesM Modified MathlibTest/casesm.lean 2025-01-21 01:50:04 0885c93 fix: make `NNRatCast` computable for `NNReal` and `ENNReal` (#20884) This lets us write `0.5 : NNReal` and `0.5 : ENNReal` without issue; previously the former was noncomputable, and there was no instance for the latter. This also adds some mostly-useless `Repr` instances, which are useful for testing this. ESTIMATED CHANGES Modified Mathlib/Data/ENNReal/Basic.lean + theorem ENNReal.coe_nnratCast Modified Mathlib/Data/NNReal/Defs.lean Modified Mathlib/Data/Real/Basic.lean 2025-01-21 01:50:03 94352f5 feat: show `IsGreatest (spectrum ℝ≥0 a) ‖a‖₊` for `IsometricContinuousFunctionalCalculus` (#20882) This also contains other similar results, and uses it to prove `‖cfc f a‖₊ = f ‖a‖₊` for `0 ≤ a`, and monotone `f : ℝ≥0 → ℝ≥0`. ESTIMATED CHANGES Modified Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Isometric.lean + theorem IsometricContinuousFunctionalCalculus.isGreatest_nnnorm_spectrum + theorem IsometricContinuousFunctionalCalculus.isGreatest_norm_spectrum + theorem IsometricContinuousFunctionalCalculus.isGreatest_spectrum + theorem IsometricContinuousFunctionalCalculus.nnnorm_spectrum_le + theorem IsometricContinuousFunctionalCalculus.norm_spectrum_le + theorem IsometricContinuousFunctionalCalculus.spectrum_le + theorem MonotoneOn.nnnorm_cfc + theorem MonotoneOn.nnnorm_cfcₙ + theorem NonUnitalIsometricContinuousFunctionalCalculus.isGreatest_nnnorm_quasispectrum + theorem NonUnitalIsometricContinuousFunctionalCalculus.isGreatest_norm_quasispectrum + theorem NonUnitalIsometricContinuousFunctionalCalculus.isGreatest_quasispectrum + theorem NonUnitalIsometricContinuousFunctionalCalculus.nnnorm_quasispectrum_le + theorem NonUnitalIsometricContinuousFunctionalCalculus.norm_quasispectrum_le + theorem NonUnitalIsometricContinuousFunctionalCalculus.quasispectrum_le 2025-01-21 01:06:03 cb16158 feat: tag `csInf_insert` and `csSup_insert` `@[simp]` (#20883) This makes the `@[simp]` attributes for complete and conditionally complete lattices consistent, so that `sSup {a,b,c,d,...}` is simplified to to `a ⊔ b ⊔ c ⊔ d ⊔ ...` in all cases (and similarly for `sInf`). ESTIMATED CHANGES Modified Mathlib/Order/CompleteLattice.lean Modified Mathlib/Order/ConditionallyCompleteLattice/Basic.lean 2025-01-21 01:06:02 ba4ffc0 refactor(LinearAlgebra/Projection): Use IsIdempotentElem (#20665) Use `IsIdempotentElem` in a number of locations instead of `? * ? = ?`. - Algebra/Algebra/Subalgebra/Pointwise - Algebra/Ring/BooleanRing - LinearAlgebra/Projection - RingTheory/DedekindDomain/Ideal Other uses of `? * ? = ?` are not rings or have `to_additive`, which our current definition of `IsIdempotentElem` does not support. My interest in opening this PR is `LinearAlgebra/Projection`. The others are perhaps more tenuous. I have made them individual commits so any not required can easily be reverted. ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/Subalgebra/Pointwise.lean + theorem Subalgebra.isIdempotentElem_toSubmodule - theorem Subalgebra.mul_self Modified Mathlib/Algebra/Ring/BooleanRing.lean + theorem BooleanRing.mul_self Modified Mathlib/LinearAlgebra/Projection.lean - theorem LinearMap.isProj_iff_idempotent + theorem LinearMap.isProj_iff_isIdempotentElem Modified Mathlib/RingTheory/DedekindDomain/Ideal.lean 2025-01-21 01:06:00 0d80c6d chore: replace open scoped Classical with `open scoped Classical in` or `classical` (#20501) reduces some technical debt by replacing "open scoped classical" with (open scoped classical in) for theorem declarations and/or adding a "classical' tactic to a tactic proof. I followed the example in PR #20325. ESTIMATED CHANGES Modified Archive/Imo/Imo1998Q2.lean Modified Archive/Wiedijk100Theorems/FriendshipGraphs.lean Modified Archive/Wiedijk100Theorems/Partition.lean Modified Counterexamples/IrrationalPowerOfIrrational.lean Modified Mathlib/CategoryTheory/Preadditive/Mat.lean Modified Mathlib/Computability/TuringMachine.lean Modified Mathlib/Control/LawfulFix.lean Modified Mathlib/Data/Int/ConditionallyCompleteOrder.lean Modified Mathlib/Data/Nat/Lattice.lean Modified Mathlib/Data/Nat/PartENat.lean Modified Mathlib/Data/Option/Basic.lean Modified Mathlib/GroupTheory/SpecificGroups/Cyclic.lean Modified Mathlib/Probability/Density.lean Modified Mathlib/Probability/Distributions/Uniform.lean Modified Mathlib/Probability/ProbabilityMassFunction/Basic.lean Modified Mathlib/Probability/ProbabilityMassFunction/Constructions.lean Modified Mathlib/Probability/ProbabilityMassFunction/Monad.lean Modified Mathlib/Probability/Process/Adapted.lean Modified Mathlib/Probability/Process/HittingTime.lean Modified Mathlib/Probability/Process/Stopping.lean Modified Mathlib/RepresentationTheory/Character.lean Modified Mathlib/RepresentationTheory/FDRep.lean Modified Mathlib/RingTheory/Adjoin/FG.lean +/- theorem Subalgebra.FG.map Modified Mathlib/RingTheory/Adjoin/Tower.lean Modified Mathlib/RingTheory/AdjoinRoot.lean Modified Mathlib/RingTheory/AlgebraTower.lean Modified Mathlib/RingTheory/AlgebraicIndependent/Adjoin.lean Modified Mathlib/RingTheory/AlgebraicIndependent/Basic.lean Modified Mathlib/RingTheory/AlgebraicIndependent/Defs.lean Modified Mathlib/RingTheory/FiniteType.lean Modified Mathlib/RingTheory/Fintype.lean Modified Mathlib/RingTheory/FreeCommRing.lean Modified Mathlib/RingTheory/LaurentSeries.lean Modified Mathlib/RingTheory/Perfection.lean Modified Mathlib/RingTheory/PrincipalIdealDomain.lean Modified Mathlib/RingTheory/Radical.lean Modified Mathlib/RingTheory/Spectrum/Maximal/Basic.lean Modified Mathlib/RingTheory/Spectrum/Prime/Basic.lean Modified Mathlib/RingTheory/Valuation/Basic.lean 2025-01-21 00:20:39 0371e09 feat(Logic/Basic): `HEq (cast h a) b ↔ HEq a b` (#20847) This makes `simp` a bit more capable when dealing with the ever-present DTT hell. ESTIMATED CHANGES Modified Mathlib/Logic/Basic.lean + theorem cast_heq_iff_heq + theorem heq_cast_iff_heq 2025-01-20 19:50:48 3c2c504 feat(Data/Matroid/Basic): matroid congruence definitions (#20876) Added three definitions that produce copies of matroids with superior definitional properties, in response to [this comment](https://leanprover.zulipchat.com/#narrow/channel/217875-Is-there-code-for-X.3F/topic/Transcendence.20degree.3F/near/494675777) on zulip. ESTIMATED CHANGES Modified Mathlib/Data/Matroid/Basic.lean + def Matroid.copy + def Matroid.copyBase + def Matroid.copyIndep 2025-01-20 18:16:24 ec0f40d feat: `notation3`-defined pretty printers now make tokens that are clickable in documentation (#20861) Modifies the `notation3` delaborator generator so that when `pp.tagAppFns` is true, and when the expression being delaborated is the application of a constant, all the tokens of the notation are annotated with that constant. The consequence is that in docgen documentation, the tokens will be links to that constant. This heuristic might give unexpected results. For example, in ```lean notation3 "Nat≥0" => { x : Nat // 0 ≤ x } ``` the documentation will have appearances of `Nat≥0` link to `Subtype`. In complicated notations this heuristic may have mixed results. For example, it's possible to use `notation3` to define notations that have different head constants in different expansions, and so the tokens can link to different constants in different appearances. There are no such cases of this in mathlib however. [Zulip discussion](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Filter.2EEventually.20.28.60.E2.88.80.E1.B6.A0.60.29.20notation.20is.20not.20clickable.20in.20docs/near/494590979) ESTIMATED CHANGES Modified Mathlib/Util/Notation3.lean + def Mathlib.Notation3.withHeadRefIfTagAppFns Modified MathlibTest/notation3.lean + def Test.findWithTag + def Test.testTagAppFns 2025-01-20 17:23:57 535a874 feat(GroupTheory/SpecificGroups): dihedral groups are not cyclic (with one exception) (#20817) ESTIMATED CHANGES Modified Mathlib/Data/ZMod/Basic.lean + theorem ZMod.val_two_eq_two_mod Modified Mathlib/GroupTheory/SpecificGroups/Cyclic.lean + theorem DihedralGroup.isCyclic_iff + theorem DihedralGroup.not_isCyclic Modified Mathlib/GroupTheory/SpecificGroups/Dihedral.lean + theorem DihedralGroup.commutative_iff + theorem DihedralGroup.not_commutative Modified Mathlib/GroupTheory/SpecificGroups/KleinFour.lean +/- theorem IsKleinFour.not_isCyclic Modified Mathlib/GroupTheory/Transfer.lean 2025-01-20 16:38:04 2a250b5 fix(Linter/Style.lean): fix some outdated comments (#20879) ESTIMATED CHANGES Modified Mathlib/Tactic/Linter/Style.lean 2025-01-20 16:38:03 0fecf8f chore(100,1000.yaml): name the authors field 'authors' (#20875) Currently, there is some annoying inconsistency - the 1000 theorems project calls the field 'authors' - the 1000.yaml file calls it 'author', deviating from this - the 100.yaml file calls it 'author'. Change them all to 'authors' for consistency. Since formalisations are usually work of multiple people, this seems more appropriate, and matches the 1000+ theorem. ESTIMATED CHANGES Modified docs/100.yaml Modified docs/1000.yaml Modified scripts/yaml_check.py 2025-01-20 16:38:02 88adf8a doc(Order/KrullDimension): clarify docstring of height, coheight (#20868) ESTIMATED CHANGES Modified Mathlib/Order/KrullDimension.lean 2025-01-20 16:09:50 8f68dc4 chore: rename ENNReal lemmas to mul_{left,right}_inj for consistency (#20880) ESTIMATED CHANGES Modified Mathlib/Data/ENNReal/Operations.lean - theorem ENNReal.mul_eq_mul_left - theorem ENNReal.mul_eq_mul_right Modified Mathlib/MeasureTheory/Measure/Haar/Unique.lean Modified Mathlib/Probability/Independence/ZeroOne.lean Modified Mathlib/Topology/MetricSpace/Dilation.lean 2025-01-20 16:09:49 82838c6 feat(Data/Matroid/IndepAxioms): Another constructor for finitary matroids (#20877) This PR adds a new constructor for a finitary matroid, via `IndepMatroid`. The constructor uses the infinite independence augmentation axiom, together with a compactness assumption for independence. We name it `IndepMatroid.ofFinitary`, and rename the already existing variant with that name `IndepMatroid.ofFinitaryCardAugment`, since the former is really more canonical. This was motivated by the application of algebraic matroids to transcendence degrees, as discussed on [zulip](https://leanprover.zulipchat.com/#narrow/channel/217875-Is-there-code-for-X.3F/topic/Transcendence.20degree.3F) ESTIMATED CHANGES Modified Mathlib/Data/Matroid/IndepAxioms.lean + theorem IndepMatroid.ofFinitaryCardAugment_indep 2025-01-20 16:09:47 9f8c595 style: replace `field x y := match x, y with` with `field` (#20866) This is valid and shorter syntax. ESTIMATED CHANGES Modified Mathlib/Algebra/Group/WithOne/Defs.lean Modified Mathlib/Algebra/GroupWithZero/WithZero.lean Modified Mathlib/Algebra/Module/Presentation/Cokernel.lean Modified Mathlib/Algebra/Module/Presentation/Tautological.lean Modified Mathlib/Algebra/Module/Presentation/Tensor.lean Modified Mathlib/Algebra/Order/Ring/WithTop.lean Modified Mathlib/CategoryTheory/Limits/Shapes/BinaryProducts.lean Modified Mathlib/Combinatorics/Quiver/Symmetric.lean Modified Mathlib/Combinatorics/SimpleGraph/Sum.lean Modified Mathlib/Data/Sum/Lattice.lean Modified Mathlib/GroupTheory/SpecificGroups/Dihedral.lean Modified Mathlib/LinearAlgebra/ExteriorPower/Basic.lean Modified Mathlib/Logic/Equiv/Basic.lean Modified Mathlib/Order/Booleanisation.lean Modified Mathlib/Order/OmegaCompletePartialOrder.lean Modified Mathlib/RingTheory/AdicCompletion/AsTensorProduct.lean 2025-01-20 16:09:45 dfa76e7 feat(Order/Chain): adapt linear order lemmas to chains (#20757) Add a series of lemmas for chains in a preorder. Each of these are true in a linear order, but remain true under the weaker assumption that both elements are in a chain. Used in the disproof of the Aharoni–Korman conjecture, https://github.com/leanprover-community/mathlib4/pull/20082. ESTIMATED CHANGES Modified Mathlib/Order/Chain.lean + theorem IsChain.le_of_not_lt + theorem IsChain.lt_of_not_le + theorem IsChain.not_le + theorem IsChain.not_lt 2025-01-20 16:09:44 4e3f39f feat(CategoryTheory/Localization): HasLocalization holds iff the localized category is locally small (#20670) In this file, given `W : MorphismProperty C` and a universe `w`, we show that there exists a term in `HasLocaliaation.{w} W` if and only if there exists (or for all) localization functors `L : C ⥤ D` for `W`, the category `D` is locally `w`-small. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Localization/LocallySmall.lean + theorem CategoryTheory.MorphismProperty.locallySmall_of_hasLocalization 2025-01-20 16:09:43 8048594 feat(AlgebraicGeometry): Formally unramified morphisms (#20603) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/AlgebraicGeometry/Morphisms/AffineAnd.lean +/- theorem AlgebraicGeometry.affineAnd_isLocal + theorem AlgebraicGeometry.affineAnd_isLocal_of_propertyIsLocal Modified Mathlib/AlgebraicGeometry/Morphisms/Finite.lean Added Mathlib/AlgebraicGeometry/Morphisms/FormallyUnramified.lean + theorem AlgebraicGeometry.FormallyUnramified.of_comp Modified Mathlib/AlgebraicGeometry/Morphisms/Integral.lean Modified Mathlib/AlgebraicGeometry/Morphisms/OpenImmersion.lean + theorem AlgebraicGeometry.isOpenImmersion_SpecMap_iff_of_surjective 2025-01-20 16:09:41 8b8fcb5 feat(AlgebraicGeometry): Instances regarding affine spaces (#20314) ESTIMATED CHANGES Modified Mathlib/AlgebraicGeometry/AffineSpace.lean + theorem AlgebraicGeometry.AffineSpace.isIntegralHom_over_iff_isEmpty + theorem AlgebraicGeometry.AffineSpace.isOpenMap_over + theorem AlgebraicGeometry.AffineSpace.isPullback_map + theorem AlgebraicGeometry.AffineSpace.map_toSpecMvPoly + theorem AlgebraicGeometry.AffineSpace.not_isIntegralHom +/- def AlgebraicGeometry.AffineSpace.toSpecMvPoly Modified Mathlib/AlgebraicGeometry/Limits.lean Modified Mathlib/AlgebraicGeometry/Morphisms/FinitePresentation.lean - theorem AlgebraicGeometry.locallyOfFinitePresentation_isStableUnderBaseChange Modified Mathlib/RingTheory/Spectrum/Prime/Polynomial.lean + theorem MvPolynomial.comap_C_surjective + theorem Polynomial.comap_C_surjective 2025-01-20 16:09:40 0066414 feat(Analysis/Pow/Deriv): add some results about differentiability of cpow (#19944) * Add several results that exists for `rpow` but not for `cpow`: - * `DifferentiableAt.cpow_const`, `DifferentiableWithinAt.cpow_const` and `DifferentiableOn.cpow_const` about the differentiability of `z ↦ (f z) ^ c` - * `Complex.deriv_cpow_const` and `deriv_cpow_const` for computing `deriv` * Add also an alternate version of `hasDerivAt_ofReal_cpow` on the differentiability of `fun y : ℝ => (y : ℂ) ^ c` and the corresponding `DifferentiableAt` and `deriv` results that follow. * Add the equivalent for `fun y : ℝ => (y : ℂ) ^ c` of `isTheta_deriv_rpow_const_atTop` and `isBigO_deriv_rpow_const_atTop` This PR doesn't add new maths since all the results proved are direct consequences of existing results. ESTIMATED CHANGES Modified Mathlib/Analysis/SpecialFunctions/Integrals.lean Modified Mathlib/Analysis/SpecialFunctions/Pow/Deriv.lean + theorem Complex.deriv_cpow_const + theorem Complex.deriv_ofReal_cpow_const + theorem DifferentiableAt.cpow_const + theorem DifferentiableAt.ofReal_cpow_const + theorem DifferentiableOn.cpow_const + theorem DifferentiableWithinAt.cpow_const + theorem deriv_cpow_const - theorem hasDerivAt_ofReal_cpow + theorem hasDerivAt_ofReal_cpow_const' + theorem hasDerivAt_ofReal_cpow_const + theorem isBigO_deriv_ofReal_cpow_const_atTop + theorem isTheta_deriv_ofReal_cpow_const_atTop 2025-01-20 16:09:38 9ebb5ca feat(Data/Matroid/Restrict): added a few matroid restriction lemmas (#19838) We add a few qol lemmas to `Matroid.Restrict`, specifically - a lemma about `Basis'` and `Basis` in the restriction to `univ`. - iff versions of lemmas about independence/bases with a `Matroid.Restriction` assumption. - a `Finset` version of the independence augmentation lemma. ESTIMATED CHANGES Modified Mathlib/Data/Matroid/Restrict.lean + theorem Matroid.Indep.augment_finset + theorem Matroid.Restriction.base_iff + theorem Matroid.Restriction.basis_iff + theorem Matroid.Restriction.dep_iff + theorem Matroid.Restriction.indep_iff + theorem Matroid.basis'_iff_basis_restrict_univ 2025-01-20 16:09:37 b823988 feat: use to_additive for Monoid.End (#19687) * Rename `Monoid.coe_one` and `Monoid.coe_mul` to `Monoid.End.coe_one` and `Monoid.End.coe_mul`, which is already the name for `AddMonoid.End`. I made the deprecations `protected` in order to not cause overloading issues. * Change some instance names to increase consistency in names (no deprecations added) ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Hom/Defs.lean - theorem AddMonoid.End.coe_mul - theorem AddMonoid.End.coe_one - theorem AddMonoid.End.coe_pow + theorem Monoid.End.coe_mul + theorem Monoid.End.coe_one +/- theorem Monoid.End.coe_pow - theorem Monoid.coe_mul - theorem Monoid.coe_one Modified Mathlib/Algebra/Group/Hom/End.lean Modified Mathlib/Algebra/Group/Hom/Instances.lean 2025-01-20 15:19:46 5426682 feat(RingTheory/Trace): the trace from a ring `R` to itself is the identity (#20865) Proof that `Algebra.trace R R a = a`. ESTIMATED CHANGES Modified Mathlib/RingTheory/Trace/Defs.lean + theorem Algebra.trace_self + theorem Algebra.trace_self_apply 2025-01-20 15:19:45 fb0f8fa chore(Algebra/CharP): `prime_ringChar` and `isPrimePow_card` (#20860) small helper lemmas that didn't exist for finite fields ESTIMATED CHANGES Modified Mathlib/Algebra/CharP/Lemmas.lean + theorem CharP.prime_ringChar Modified Mathlib/FieldTheory/Finite/Basic.lean + theorem FiniteField.isPrimePow_card 2025-01-20 15:19:44 981f44b feat(RingTheory/Invariant): Galois extensions satisfy `Algebra.IsInvariant` (#20106) This PR shows that Galois extensions satisfy `Algebra.IsInvariant`. This enables the theory of Frobenius elements to be applied to Galois extensions. ESTIMATED CHANGES Modified Mathlib/RingTheory/Invariant.lean + theorem Algebra.isInvariant_of_isGalois 2025-01-20 15:19:43 914ded2 feat: the pairs `{t, insert a t}` are pairwise disjoint (#20062) This will be used to prove the existence of symmetric chain decompositions. From LeanCamCombi ESTIMATED CHANGES Modified Mathlib/Data/Finset/Basic.lean + theorem Finset.pairwiseDisjoint_iff Modified Mathlib/Data/Finset/Defs.lean Modified Mathlib/Data/Finset/Powerset.lean + theorem Finset.pairwiseDisjoint_pair_insert Modified Mathlib/Data/Set/Basic.lean + theorem Set.insert_diff_self_of_mem + theorem Set.insert_erase_invOn Modified Mathlib/Data/Set/Pairwise/Lattice.lean + theorem Set.pairwiseDisjoint_iff + theorem Set.pairwiseDisjoint_pair_insert 2025-01-20 15:19:41 3f57df8 feat: Myhill–Nerode theorem (#11311) I take a different approach to the [`lean-automata` version](https://github.com/atarnoam/lean-automata/blob/main/src/regular_languages.lean) by @atarnoam. Rather than taking a `Quotient` by the Nerode relation, I instead talk about the the function `leftQuotient := fun x => { y | x ++ y ∈ L }`. This is more direct as it avoids going through the `Quotient` API. The Nerode relation can be defined later (not in this PR) as the [kernel](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Data/Setoid/Basic.html#Setoid.ker) of this function. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Computability/MyhillNerode.lean + theorem Language.IsRegular.finite_range_leftQuotient + theorem Language.IsRegular.of_finite_range_leftQuotient + theorem Language.accepts_toDFA + theorem Language.isRegular_iff_finite_range_leftQuotient + def Language.leftQuotient + theorem Language.leftQuotient_accepts + theorem Language.leftQuotient_accepts_apply + theorem Language.leftQuotient_append + theorem Language.leftQuotient_nil + theorem Language.mem_accept_toDFA + theorem Language.mem_leftQuotient + theorem Language.start_toDFA + theorem Language.step_toDFA + def Language.toDFA Modified docs/1000.yaml 2025-01-20 15:06:09 f033341 feat(RingTheory): minimal primes are contained in zero divisors (#20306) ESTIMATED CHANGES Modified Mathlib/RingTheory/Ideal/MinimalPrime.lean + theorem Ideal.disjoint_nonZeroDivisors_of_mem_minimalPrimes + theorem Ideal.exists_mul_mem_of_mem_minimalPrimes + theorem Ideal.iUnion_minimalPrimes 2025-01-20 15:06:08 3081121 chore(Data/Matroid/Basic): a few tweaks to `Matroid.Basic` (#19836) We make a few small QOL changes to `Matroid.Basic`: - added `@[mk_iff]` to a few typeclass defs, in one case replacing the manually defined lemma with the automatic one in the places it's later used. - added a lemma about base exchanges - added a lemma proving that a `Nonempty` matroid lives in a `Nonempty` type. ESTIMATED CHANGES Modified Mathlib/Data/Matroid/Basic.lean + theorem Matroid.insert_base_of_insert_indep + theorem Matroid.nonempty_type - theorem Matroid.rkPos_iff_empty_not_base Modified Mathlib/Data/Matroid/Constructions.lean Modified Mathlib/Data/Matroid/Dual.lean 2025-01-20 13:22:26 3368abb chore(LinearAlgebra): generalize results on ranks to semirings (#20774) ESTIMATED CHANGES Modified Mathlib/FieldTheory/CardinalEmb.lean Modified Mathlib/FieldTheory/Relrank.lean Modified Mathlib/LinearAlgebra/Basis/Basic.lean Modified Mathlib/LinearAlgebra/Basis/Cardinality.lean Modified Mathlib/LinearAlgebra/Dimension/Basic.lean +/- theorem lift_rank_eq_of_equiv_equiv +/- theorem lift_rank_le_of_injective_injective + theorem lift_rank_le_of_injective_injectiveₛ +/- theorem lift_rank_le_of_surjective_injective +/- theorem rank_eq_of_equiv_equiv +/- theorem rank_le_of_injective_injective + theorem rank_le_of_injective_injectiveₛ +/- theorem rank_le_of_surjective_injective Modified Mathlib/LinearAlgebra/Dimension/Constructions.lean +/- theorem LinearIndependent.union_of_quotient +/- theorem Module.finrank_directSum +/- theorem Submodule.finrank_quotient_le +/- theorem rank_directSum +/- theorem rank_fun Modified Mathlib/LinearAlgebra/Dimension/Finrank.lean Modified Mathlib/LinearAlgebra/Dimension/Free.lean Modified Mathlib/LinearAlgebra/Dimension/RankNullity.lean Modified Mathlib/LinearAlgebra/Dimension/StrongRankCondition.lean +/- def Submodule.inductionOnRank Modified Mathlib/LinearAlgebra/LinearIndependent.lean +/- theorem LinearIndependent.map_of_surjective_injective + theorem LinearIndependent.map_of_surjective_injectiveₛ 2025-01-20 13:12:26 b733452 feat(CategoryTheory): localization of trifunctors (#20788) In this PR, we study the localization of functors in three variables (similarly as #19894 was the case of functors in two variables). This shall be used in #12728 in order to obtain a monoidal structure on certain localized categories. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Localization/Trifunctor.lean + theorem CategoryTheory.Localization.associator_hom_app_app_app + theorem CategoryTheory.Localization.lift₃NatTrans_app_app_app + theorem CategoryTheory.Localization.natTrans₃_ext + def CategoryTheory.MorphismProperty.IsInvertedBy₃ 2025-01-20 12:14:24 6313738 feat(RingTheory/Idempotents): generalize to Semiring, add Corner and direct product decomposition (#20531) + Add `CompleteOrthogonalIdempotents.iff_ortho_complete`: if a family is complete orthogonal, it consists of idempotents. + Add `CompleteOrthogonalIdempotents.pair_iff'ₛ`: x and y form a complete orthogonal family iff `x * y = y * x = 0` and `x + y = 1`. Golf `pair_iff`. + Given an element `e` in a semigroup R, define `Subsemigroup.corner` = eRe. If R is a non-unital semiring and `e` is an idempotent, then eRe is a semiring. Define `IsIdempotentElem.Corner` as the Type version of `corner`, and provide unital (commutative) (semi)ring instances on it. + `CompleteOrthogonalIdempotents.mulEquivOfIsMulCentral`: A complete orthogonal family of central idempotents in a semiring give rise to a direct product decomposition. There exists `CompleteOrthogonalIdempotents.bijective_pi` but it uses subtraction and quotient so it's not suitable for semirings. ESTIMATED CHANGES Modified Mathlib/Algebra/DirectSum/Idempotents.lean +/- theorem DirectSum.decompose_eq_mul_idempotent Modified Mathlib/RingTheory/Idempotents.lean + theorem CompleteOrthogonalIdempotents.iff_ortho_complete + def CompleteOrthogonalIdempotents.mulEquivOfComm + def CompleteOrthogonalIdempotents.mulEquivOfIsMulCentral + theorem CompleteOrthogonalIdempotents.pair_iff'ₛ + theorem CompleteOrthogonalIdempotents.pair_iffₛ + def IsIdempotentElem.Corner + def NonUnitalRing.corner + def NonUnitalSubsemiring.corner + def Subsemigroup.corner + theorem Subsemigroup.mem_corner_iff + theorem Subsemigroup.mem_corner_iff_mem_range_mul_left + theorem Subsemigroup.mem_corner_iff_mem_range_mul_right + theorem Subsemigroup.mem_corner_iff_mul_left + theorem Subsemigroup.mem_corner_iff_mul_right 2025-01-20 12:00:54 edaed4a refactor(RingTheory): split off heavy results from `Mathlib/RingTheory/Spectrum/*/Basic.lean` (#20845) Split off heavy results from `Mathlib/RingTheory/Spectrum/Prime/Basic.lean` and `Mathlib/RingTheory/Spectrum/Maximal/Basic.lean` to be able to import these files where only definitions and basic results are needed. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/RingTheory/DedekindDomain/Ideal.lean Modified Mathlib/RingTheory/KrullDimension/Basic.lean Modified Mathlib/RingTheory/Spectrum/Maximal/Basic.lean - theorem MaximalSpectrum.finite_of_toPiLocalization_pi_surjective - theorem MaximalSpectrum.finite_of_toPiLocalization_surjective - theorem MaximalSpectrum.iInf_localization_eq_bot - theorem MaximalSpectrum.mapPiLocalization_bijective - theorem MaximalSpectrum.mapPiLocalization_comp - theorem MaximalSpectrum.mapPiLocalization_id - theorem MaximalSpectrum.mapPiLocalization_naturality - def MaximalSpectrum.toPiLocalization - theorem MaximalSpectrum.toPiLocalization_apply_apply - theorem MaximalSpectrum.toPiLocalization_injective - theorem MaximalSpectrum.toPiLocalization_not_surjective_of_infinite - theorem PrimeSpectrum.finite_of_toPiLocalization_pi_surjective - theorem PrimeSpectrum.finite_of_toPiLocalization_surjective - theorem PrimeSpectrum.iInf_localization_eq_bot - theorem PrimeSpectrum.isMaximal_of_toPiLocalization_surjective - theorem PrimeSpectrum.mapPiLocalization_bijective - theorem PrimeSpectrum.mapPiLocalization_comp - theorem PrimeSpectrum.mapPiLocalization_id - theorem PrimeSpectrum.mapPiLocalization_naturality - def PrimeSpectrum.piLocalizationToMaximal - def PrimeSpectrum.piLocalizationToMaximalEquiv - theorem PrimeSpectrum.piLocalizationToMaximal_bijective - theorem PrimeSpectrum.piLocalizationToMaximal_comp_toPiLocalization - theorem PrimeSpectrum.piLocalizationToMaximal_surjective - def PrimeSpectrum.toPiLocalization - theorem PrimeSpectrum.toPiLocalization_injective - theorem PrimeSpectrum.toPiLocalization_not_surjective_of_infinite Modified Mathlib/RingTheory/Spectrum/Maximal/Defs.lean Added Mathlib/RingTheory/Spectrum/Maximal/Localization.lean + theorem MaximalSpectrum.finite_of_toPiLocalization_pi_surjective + theorem MaximalSpectrum.finite_of_toPiLocalization_surjective + theorem MaximalSpectrum.iInf_localization_eq_bot + theorem MaximalSpectrum.mapPiLocalization_bijective + theorem MaximalSpectrum.mapPiLocalization_comp + theorem MaximalSpectrum.mapPiLocalization_id + theorem MaximalSpectrum.mapPiLocalization_naturality + def MaximalSpectrum.toPiLocalization + theorem MaximalSpectrum.toPiLocalization_apply_apply + theorem MaximalSpectrum.toPiLocalization_injective + theorem MaximalSpectrum.toPiLocalization_not_surjective_of_infinite + theorem PrimeSpectrum.finite_of_toPiLocalization_pi_surjective + theorem PrimeSpectrum.finite_of_toPiLocalization_surjective + theorem PrimeSpectrum.iInf_localization_eq_bot + theorem PrimeSpectrum.isMaximal_of_toPiLocalization_surjective + theorem PrimeSpectrum.mapPiLocalization_bijective + theorem PrimeSpectrum.mapPiLocalization_comp + theorem PrimeSpectrum.mapPiLocalization_id + theorem PrimeSpectrum.mapPiLocalization_naturality + def PrimeSpectrum.piLocalizationToMaximal + def PrimeSpectrum.piLocalizationToMaximalEquiv + theorem PrimeSpectrum.piLocalizationToMaximal_bijective + theorem PrimeSpectrum.piLocalizationToMaximal_comp_toPiLocalization + theorem PrimeSpectrum.piLocalizationToMaximal_surjective + def PrimeSpectrum.toPiLocalization + theorem PrimeSpectrum.toPiLocalization_injective + theorem PrimeSpectrum.toPiLocalization_not_surjective_of_infinite Modified Mathlib/RingTheory/Spectrum/Prime/Basic.lean - theorem PrimeSpectrum.localization_specComap_injective - theorem PrimeSpectrum.localization_specComap_range Modified Mathlib/RingTheory/Spectrum/Prime/Topology.lean + theorem PrimeSpectrum.localization_specComap_injective + theorem PrimeSpectrum.localization_specComap_range 2025-01-20 11:48:38 049c0a2 feat: add lemmas for working with orders of analytic functions (#20813) Add three simple lemmas to the AnalyticAt namespace, to simplify working with orders of analytic functions. These lemmas are used in [Project VD](https://github.com/kebekus/ProjectVD), which aims to formalize Value Distribution Theory for meromorphic functions on the complex plane. ESTIMATED CHANGES Modified Mathlib/Analysis/Analytic/IsolatedZeros.lean + theorem AnalyticAt.apply_eq_zero_of_order_toNat_ne_zero + theorem AnalyticAt.order_eq_zero_iff + theorem AnalyticAt.order_neq_top_iff 2025-01-20 11:48:37 30e9b28 feat(RingTheory): `H¹(L)` under localization (#20591) ESTIMATED CHANGES Modified Mathlib/RingTheory/Etale/Basic.lean + def RingHom.FormallyEtale + theorem RingHom.formallyEtale_algebraMap Modified Mathlib/RingTheory/Etale/Kaehler.lean + def Algebra.Extension.tensorCotangent + def Algebra.Extension.tensorCotangentInvFun + theorem Algebra.Extension.tensorCotangentInvFun_smul_mk + def Algebra.Extension.tensorCotangentSpace + def Algebra.Extension.tensorH1Cotangent + def Algebra.Extension.tensorH1CotangentOfIsLocalization + theorem Algebra.Extension.tensorH1CotangentOfIsLocalization_toLinearMap + theorem KaehlerDifferential.tensorKaehlerEquivOfFormallyEtale_symm_D_algebraMap Modified Mathlib/RingTheory/Extension.lean + def Algebra.Extension.Hom.mapKer Modified Mathlib/RingTheory/Smooth/Kaehler.lean + theorem Algebra.Extension.H1Cotangent.equivOfFormallySmooth_apply + theorem Algebra.Extension.H1Cotangent.equivOfFormallySmooth_symm + theorem Algebra.Extension.H1Cotangent.equivOfFormallySmooth_toLinearMap 2025-01-20 11:09:05 3bf4857 chore(Order): split `GaloisConnection` into `Defs.lean` and `Basic.lean` (#20798) The main reason for this PR is noticing that `NNRat` brings in a lot of order theory: [Mathlib.Data.NNRat.Defs.pdf](https://github.com/user-attachments/files/18442420/Mathlib.Data.NNRat.Defs.pdf). We don't actually need to know what a boolean algebra is, or even a complete lattice, to define `NNRat`. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Order/Floor.lean Modified Mathlib/Algebra/Order/Floor/Div.lean Modified Mathlib/CategoryTheory/Category/GaloisConnection.lean Modified Mathlib/CategoryTheory/Groupoid/Subgroupoid.lean Modified Mathlib/Data/NNRat/Defs.lean Modified Mathlib/Data/Rel.lean Modified Mathlib/Data/Set/Lattice.lean Modified Mathlib/Data/Setoid/Basic.lean Modified Mathlib/Order/Closure.lean Modified Mathlib/Order/Cofinal.lean Renamed Mathlib/Order/GaloisConnection.lean to Mathlib/Order/GaloisConnection/Basic.lean - def GaloisCoinsertion.dual - theorem GaloisCoinsertion.l_injective - theorem GaloisCoinsertion.l_le_l_iff - def GaloisCoinsertion.monotoneIntro - def GaloisCoinsertion.ofDual - theorem GaloisCoinsertion.strictMono_l - theorem GaloisCoinsertion.u_bot - theorem GaloisCoinsertion.u_l_eq - theorem GaloisCoinsertion.u_l_leftInverse - theorem GaloisCoinsertion.u_surjective - structure GaloisCoinsertion - theorem GaloisConnection.exists_eq_l - theorem GaloisConnection.exists_eq_u - theorem GaloisConnection.l_bot - theorem GaloisConnection.l_comm_iff_u_comm - theorem GaloisConnection.l_comm_of_u_comm - theorem GaloisConnection.l_eq - theorem GaloisConnection.l_eq_bot - theorem GaloisConnection.l_le - theorem GaloisConnection.l_u_bot - theorem GaloisConnection.l_u_l_eq_l' - theorem GaloisConnection.l_u_l_eq_l - theorem GaloisConnection.l_u_le - theorem GaloisConnection.l_u_le_trans - theorem GaloisConnection.l_unique - theorem GaloisConnection.le_iff_le - theorem GaloisConnection.le_u - theorem GaloisConnection.le_u_l - theorem GaloisConnection.le_u_l_trans - def GaloisConnection.liftOrderBot - def GaloisConnection.liftOrderTop - theorem GaloisConnection.lt_iff_lt - theorem GaloisConnection.monotone_intro - theorem GaloisConnection.monotone_l - theorem GaloisConnection.monotone_u - def GaloisConnection.toGaloisCoinsertion - def GaloisConnection.toGaloisInsertion - theorem GaloisConnection.u_comm_of_l_comm - theorem GaloisConnection.u_eq - theorem GaloisConnection.u_eq_top - theorem GaloisConnection.u_l_top - theorem GaloisConnection.u_l_u_eq_u' - theorem GaloisConnection.u_l_u_eq_u - theorem GaloisConnection.u_top - theorem GaloisConnection.u_unique - def GaloisConnection - def GaloisInsertion.dual - theorem GaloisInsertion.l_surjective - theorem GaloisInsertion.l_top - theorem GaloisInsertion.l_u_eq - theorem GaloisInsertion.leftInverse_l_u - def GaloisInsertion.monotoneIntro - def GaloisInsertion.ofDual - theorem GaloisInsertion.strictMono_u - theorem GaloisInsertion.u_injective - theorem GaloisInsertion.u_le_u_iff - structure GaloisInsertion - theorem OrderIso.to_galoisConnection Added Mathlib/Order/GaloisConnection/Defs.lean + def GaloisCoinsertion.dual + theorem GaloisCoinsertion.l_injective + theorem GaloisCoinsertion.l_le_l_iff + def GaloisCoinsertion.monotoneIntro + def GaloisCoinsertion.ofDual + theorem GaloisCoinsertion.strictMono_l + theorem GaloisCoinsertion.u_bot + theorem GaloisCoinsertion.u_l_eq + theorem GaloisCoinsertion.u_l_leftInverse + theorem GaloisCoinsertion.u_surjective + structure GaloisCoinsertion + theorem GaloisConnection.exists_eq_l + theorem GaloisConnection.exists_eq_u + theorem GaloisConnection.l_bot + theorem GaloisConnection.l_comm_iff_u_comm + theorem GaloisConnection.l_comm_of_u_comm + theorem GaloisConnection.l_eq + theorem GaloisConnection.l_eq_bot + theorem GaloisConnection.l_le + theorem GaloisConnection.l_u_bot + theorem GaloisConnection.l_u_l_eq_l' + theorem GaloisConnection.l_u_l_eq_l + theorem GaloisConnection.l_u_le + theorem GaloisConnection.l_u_le_trans + theorem GaloisConnection.l_unique + theorem GaloisConnection.le_iff_le + theorem GaloisConnection.le_u + theorem GaloisConnection.le_u_l + theorem GaloisConnection.le_u_l_trans + def GaloisConnection.liftOrderBot + def GaloisConnection.liftOrderTop + theorem GaloisConnection.lt_iff_lt + theorem GaloisConnection.monotone_intro + theorem GaloisConnection.monotone_l + theorem GaloisConnection.monotone_u + def GaloisConnection.toGaloisCoinsertion + def GaloisConnection.toGaloisInsertion + theorem GaloisConnection.u_comm_of_l_comm + theorem GaloisConnection.u_eq + theorem GaloisConnection.u_eq_top + theorem GaloisConnection.u_l_top + theorem GaloisConnection.u_l_u_eq_u' + theorem GaloisConnection.u_l_u_eq_u + theorem GaloisConnection.u_top + theorem GaloisConnection.u_unique + def GaloisConnection + def GaloisInsertion.dual + theorem GaloisInsertion.l_surjective + theorem GaloisInsertion.l_top + theorem GaloisInsertion.l_u_eq + theorem GaloisInsertion.leftInverse_l_u + def GaloisInsertion.monotoneIntro + def GaloisInsertion.ofDual + theorem GaloisInsertion.strictMono_u + theorem GaloisInsertion.u_injective + theorem GaloisInsertion.u_le_u_iff + structure GaloisInsertion + theorem OrderIso.to_galoisConnection Modified Mathlib/Order/Heyting/Regular.lean Modified Mathlib/Order/Hom/Order.lean Modified Mathlib/Order/ModularLattice.lean Modified Mathlib/Order/Rel/GaloisConnection.lean 2025-01-20 11:09:04 43e08d2 feat(BigOperators): ite_prod_one / ite_sum_zero (#20779) These lemmas were useful for manipulating nested sums while working on the Selberg sieve. They can be used to push a condition from the outer sum into an inner sum. ESTIMATED CHANGES Modified Mathlib/Algebra/BigOperators/Group/Finset/Defs.lean + theorem Finset.ite_one_prod + theorem Finset.ite_prod_one 2025-01-20 11:09:02 f09056e feat(RingTheory): prime is restriction of a prime iff it is the restriction of its extension (#20700) Co-authored by: Sihan Su Co-authored by: Yi Song ESTIMATED CHANGES Modified Mathlib/RingTheory/Ideal/Over.lean + theorem Ideal.comap_map_eq_self_iff_of_isPrime Modified Mathlib/RingTheory/Localization/AtPrime.lean + theorem Ideal.disjoint_map_primeCompl_iff_comap_le Modified Mathlib/RingTheory/Localization/Ideal.lean + theorem IsLocalization.algebraMap_mem_map_algebraMap_iff + theorem IsLocalization.map_algebraMap_ne_top_iff_disjoint 2025-01-20 10:56:11 1b34e3c feat(RingTheory/Ideal): the height of an ideal (#20741) In this PR, we ported a part of Andrew Yang's lean3 repository at [this repository](https://github.com/erdOne/lean-AG-morphisms), which is appoved by @erdOne after his discussion with @chrisflav . Andrew defined `Ideal.primeHeight` and `Ideal.height` in this repository (it's at /dimension_theory/height), we ported this, changed the definition of `Ideal.primeHeight` to `Order.height (⟨I, hI⟩ : PrimeSpectrum R)` and ported some basic lemmas about it. @erdOne @Xuchun-Li @jjdishere @Blackfeather007 <2100017455@stu.pku.edu.cn> ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Order/KrullDimension.lean + theorem Order.coheight_add_one_le + theorem Order.height_add_one_le Added Mathlib/RingTheory/Ideal/Height.lean + theorem Ideal.finiteHeight_iff_lt + theorem Ideal.height_eq_primeHeight + theorem Ideal.height_lt_top + theorem Ideal.height_mono + theorem Ideal.height_ne_top + theorem Ideal.height_strict_mono_of_is_prime + theorem Ideal.height_top + theorem Ideal.primeHeight_add_one_le_of_lt + theorem Ideal.primeHeight_lt_top + theorem Ideal.primeHeight_mono + theorem Ideal.primeHeight_ne_top + theorem Ideal.primeHeight_strict_mono Modified Mathlib/RingTheory/Ideal/MinimalPrime.lean + theorem Ideal.eq_bot_of_minimalPrimes_eq_empty + theorem Ideal.minimalPrimes_eq_empty_iff + theorem Ideal.minimalPrimes_isPrime + theorem Ideal.minimalPrimes_top + theorem Ideal.nonempty_minimalPrimes Modified Mathlib/RingTheory/KrullDimension/Basic.lean 2025-01-20 10:42:39 e43c773 feat(Algebra/Category/Grp/LargeColimits): large colimits in the category of commutative additive groups (#20522) If `F : J ⥤ AddCommGrp.{w}` is a functor, we show that `F` admits a colimit if and only if `Colimits.Quot F` (the quotient of the direct sum of the commutative groups `F.obj j` by the relations given by the morphisms in the diagram) is `w`-small. - [x] depends on: #20416 - [x] depends on: #20512 ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Category/Grp/Basic.lean + theorem CommGrp.ofHom_injective + theorem Grp.ofHom_injective Modified Mathlib/Algebra/Category/Grp/Colimits.lean Added Mathlib/Algebra/Category/Grp/LargeColimits.lean + theorem AddCommGrp.hasColimit_iff_small_quot + theorem AddCommGrp.isColimit_iff_bijective_desc 2025-01-20 10:01:34 f68a59e feat: more `PGame.identical` `PGame.memₗ` `PGame.memᵣ` APIs (#5901) This PR is the first step to remove `PGame.Relabelling` (which is only for implementing things in lean and not real identity) and define games with identity as `Eq`. [Zulip](https://leanprover.zulipchat.com/#narrow/stream/116395-maths/topic/Well-founded.20recursion.20for.20pgames/near/338664567) ESTIMATED CHANGES Modified Mathlib/SetTheory/Game/Basic.lean + theorem SetTheory.PGame.inv'_one + theorem SetTheory.PGame.inv_one + theorem SetTheory.PGame.mul_neg + theorem SetTheory.PGame.neg_mul Modified Mathlib/SetTheory/Game/PGame.lean + theorem SetTheory.PGame.Identical.add + theorem SetTheory.PGame.Identical.add_left + theorem SetTheory.PGame.Identical.add_right +/- theorem SetTheory.PGame.Identical.neg + theorem SetTheory.PGame.Identical.of_neg + theorem SetTheory.PGame.Identical.sub + theorem SetTheory.PGame.ext + theorem SetTheory.PGame.identical_zero + theorem SetTheory.PGame.identical_zero_iff + theorem SetTheory.PGame.leftMoves_neg_cases + theorem SetTheory.PGame.memᵣ_add_iff + theorem SetTheory.PGame.memᵣ_neg_iff + theorem SetTheory.PGame.memₗ_add_iff + theorem SetTheory.PGame.memₗ_neg_iff + theorem SetTheory.PGame.mk_add_moveLeft + theorem SetTheory.PGame.mk_add_moveRight +/- theorem SetTheory.PGame.neg_def +/- theorem SetTheory.PGame.neg_equiv_neg_iff + theorem SetTheory.PGame.neg_identical_neg - theorem SetTheory.PGame.neg_identical_neg_iff + theorem SetTheory.PGame.rightMoves_neg_cases 2025-01-20 08:54:15 c4510a0 feat: make `Sub ℝ≥0` and `Sub ℝ≥0∞` computable (#20856) This comes for free by relaxing some unnecessarily-strong typeclass requirements. (as a reminder, `LinearOrder NNReal` is noncomputable as it contains noncomputable `Decidable` instances) ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Nonneg/Basic.lean Modified Mathlib/Data/ENNReal/Basic.lean Modified Mathlib/Data/NNReal/Defs.lean + def NNReal.gi + def Real.toNNReal 2025-01-20 04:58:27 0f52dbc feat: restriction of scalars for root pairings with coefficients in a field (#20384) The headline result is `RootPairing.restrictScalars`. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/LinearAlgebra/PerfectPairing/Basic.lean + theorem PerfectPairing.IsPerfectCompl.left_top_iff + theorem PerfectPairing.IsPerfectCompl.right_top_iff Added Mathlib/LinearAlgebra/RootSystem/BaseChange.lean + def RootPairing.restrictScalars' + theorem RootPairing.restrictScalars_coe_coroot + theorem RootPairing.restrictScalars_coe_root + theorem RootPairing.restrictScalars_pairing + theorem RootPairing.restrictScalars_toPerfectPairing_apply_apply Modified Mathlib/LinearAlgebra/RootSystem/Defs.lean + theorem RootPairing.IsCrystallographic.mem_range_algebraMap Modified Mathlib/LinearAlgebra/RootSystem/Finite/Nondegenerate.lean + theorem RootPairing.ker_corootForm_eq_dualAnnihilator + theorem RootPairing.ker_rootForm_eq_dualAnnihilator 2025-01-20 04:11:09 510fdca feat(SetTheory/Order/Basic): not_lt_iff_not_le_or_ge (#19973) Adds `not_lt_iff_not_le_or_ge` to produce `not_lt` in complement of `not_lf` and `not_le`. ESTIMATED CHANGES Modified Mathlib/Order/Basic.lean + theorem not_lt_iff_not_le_or_ge Modified Mathlib/SetTheory/Game/PGame.lean 2025-01-20 03:19:41 14f0a13 doc(MeasurableSpace/CountablyGenerated): fix declaration names in module doc (#20863) Two docstrings had the wrong theorem name. ESTIMATED CHANGES Modified Mathlib/MeasureTheory/MeasurableSpace/CountablyGenerated.lean 2025-01-20 01:43:49 f09f967 feat: inequalities on complex exponentials (#20844) Two inequalities on complex exponentials: ```lean abs (cexp x - ∑ m ∈ range n, x ^ m / m.factorial) ≤ Real.exp (abs x) - ∑ m ∈ range n, (abs x) ^ m / m.factorial abs (cexp x - ∑ m ∈ range n, x ^ m / m.factorial) ≤ abs x ^ n * Real.exp (abs x) ``` ESTIMATED CHANGES Modified Mathlib/Data/Complex/Exponential.lean + theorem Complex.abs_exp_le_exp_abs + theorem Complex.abs_exp_sub_sum_le_abs_mul_exp + theorem Complex.abs_exp_sub_sum_le_exp_abs_sub_sum 2025-01-19 23:29:52 68ea7d2 chore(Algebra/Order/Floor): Split off `round` section (#20831) This PR splits the `Algebra/Order/Floor.lean` file, addressing an instance of a long-file tech debt issue. It does this by moving `round` and related lemmas to a new file. ESTIMATED CHANGES Modified Counterexamples/MapFloor.lean Modified Mathlib.lean Modified Mathlib/Algebra/ContinuedFractions/Computation/Approximations.lean Modified Mathlib/Algebra/Order/Floor.lean - theorem Int.map_round - theorem abs_sub_round - theorem abs_sub_round_div_natCast_eq - theorem abs_sub_round_eq_min - def round - theorem round_add_int - theorem round_add_nat - theorem round_add_ofNat - theorem round_add_one - theorem round_eq - theorem round_eq_zero_iff - theorem round_intCast - theorem round_int_add - theorem round_le - theorem round_le_add_half - theorem round_natCast - theorem round_nat_add - theorem round_neg_two_inv - theorem round_ofNat - theorem round_ofNat_add - theorem round_one - theorem round_sub_int - theorem round_sub_nat - theorem round_sub_ofNat - theorem round_sub_one - theorem round_two_inv - theorem round_zero - theorem sub_half_lt_round Added Mathlib/Algebra/Order/Round.lean + theorem Int.map_round + theorem abs_sub_round + theorem abs_sub_round_div_natCast_eq + theorem abs_sub_round_eq_min + def round + theorem round_add_int + theorem round_add_nat + theorem round_add_ofNat + theorem round_add_one + theorem round_eq + theorem round_eq_zero_iff + theorem round_intCast + theorem round_int_add + theorem round_le + theorem round_le_add_half + theorem round_natCast + theorem round_nat_add + theorem round_neg_two_inv + theorem round_ofNat + theorem round_ofNat_add + theorem round_one + theorem round_sub_int + theorem round_sub_nat + theorem round_sub_ofNat + theorem round_sub_one + theorem round_two_inv + theorem round_zero + theorem sub_half_lt_round Modified Mathlib/Data/Rat/Floor.lean 2025-01-19 22:57:39 b13cefd feat: `Pi.ofNat_def` (#20857) ESTIMATED CHANGES Modified Mathlib/Data/Nat/Cast/Basic.lean + theorem Pi.ofNat_def 2025-01-19 21:48:34 260650d feat(Order/OrderIsoNat): sequence in well-founded order is not `StrictAnti` (#20851) ESTIMATED CHANGES Modified Mathlib/Order/OrderIsoNat.lean + theorem not_strictAnti_of_wellFoundedLT + theorem not_strictMono_of_wellFoundedGT 2025-01-19 20:50:59 a1ad6eb feat: StructuredArrow of product of functors (#20854) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Comma/StructuredArrow/Basic.lean + def CategoryTheory.CostructuredArrow.prodEquivalence + def CategoryTheory.CostructuredArrow.prodFunctor + def CategoryTheory.CostructuredArrow.prodInverse + theorem CategoryTheory.CostructuredArrow.w_prod_fst + theorem CategoryTheory.CostructuredArrow.w_prod_snd + def CategoryTheory.StructuredArrow.prodEquivalence + def CategoryTheory.StructuredArrow.prodFunctor + def CategoryTheory.StructuredArrow.prodInverse + theorem CategoryTheory.StructuredArrow.w_prod_fst + theorem CategoryTheory.StructuredArrow.w_prod_snd 2025-01-19 20:50:58 39e7123 chore: generalize universes for final functors between filtered categories (#20852) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Filtered/Final.lean + theorem CategoryTheory.Functor.Final.exists_coeq_of_locally_small 2025-01-19 20:42:55 d8c5782 feat: product of connected categories is connected (#20855) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/IsConnected.lean 2025-01-19 14:13:17 1657318 feat: start building an API for vector fields on manifolds (#20639) Notably, define the pullback of vector fields, and show that the pullback of a differentiable vector field under a C^2 map is differentiable. More API to come in further PRs. Once all the API is there, it will be easy to define the Lie algebra of a Lie group using left-invariant vector fields, in #18396. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Analysis/Calculus/ContDiff/Basic.lean + theorem ContinuousLinearMap.IsInvertible.contDiffAt_map_inverse Modified Mathlib/Analysis/Calculus/FDeriv/Symmetric.lean + theorem minSmoothness_add + theorem minSmoothness_eq_infty + theorem minSmoothness_monotone Added Mathlib/Geometry/Manifold/VectorField.lean + theorem MDifferentiableWithinAt.mpullbackWithin_vectorField_inter_of_eq + def VectorField.mpullback + def VectorField.mpullbackWithin + theorem VectorField.mpullbackWithin_add + theorem VectorField.mpullbackWithin_add_apply + theorem VectorField.mpullbackWithin_apply + theorem VectorField.mpullbackWithin_eq_pullbackWithin + theorem VectorField.mpullbackWithin_id + theorem VectorField.mpullbackWithin_neg + theorem VectorField.mpullbackWithin_neg_apply + theorem VectorField.mpullbackWithin_smul + theorem VectorField.mpullbackWithin_smul_apply + theorem VectorField.mpullbackWithin_univ + theorem VectorField.mpullback_add + theorem VectorField.mpullback_add_apply + theorem VectorField.mpullback_apply + theorem VectorField.mpullback_eq_pullback + theorem VectorField.mpullback_id + theorem VectorField.mpullback_neg + theorem VectorField.mpullback_neg_apply + theorem VectorField.mpullback_smul + theorem VectorField.mpullback_smul_apply 2025-01-19 13:20:41 0da1e28 feat(Algebra/Homology): acyclic complexes (#20834) ... and various additions to the homology API for #19572. ESTIMATED CHANGES Modified Mathlib/Algebra/Homology/QuasiIso.lean + theorem exactAt_iff_of_quasiIsoAt Modified Mathlib/Algebra/Homology/ShortComplex/HomologicalComplex.lean + def HomologicalComplex.Acyclic + theorem HomologicalComplex.acyclic_iff + theorem HomologicalComplex.acyclic_of_isZero Modified Mathlib/Algebra/Homology/ShortComplex/Homology.lean + theorem CategoryTheory.ShortComplex.LeftHomologyData.canonical_f' + theorem CategoryTheory.ShortComplex.RightHomologyData.canonical_g' 2025-01-19 12:43:32 e54baa9 feat(Algebra/Ring): add `@[simps]` attribute to `RingEquiv.piUnique` (#20805) Add missing `@[simps]` attribute to `RingEquiv.piUnique`. ESTIMATED CHANGES Modified Mathlib/Algebra/Ring/Equiv.lean 2025-01-19 11:52:11 2374210 feat: remove `UniqueDiffWithinAt` assumptions for one-dimensional derivative (#20816) A point in a subset of a field is either a point of unique differentials, or isolated. In both cases, there is a definite value for the derivative of a map (its unique derivative in the former case, zero in the latter case). This means there is no choice involved, contrary to what happens in higher dimension. This remark means we can remove many `UniqueDiffWithinAt` assumptions in one-dimensional settings. ESTIMATED CHANGES Modified Mathlib/Analysis/Calculus/Deriv/Add.lean +/- theorem derivWithin.neg +/- theorem derivWithin_add +/- theorem derivWithin_add_const +/- theorem derivWithin_const_add +/- theorem derivWithin_const_sub +/- theorem derivWithin_sub +/- theorem derivWithin_sub_const +/- theorem derivWithin_sum Modified Mathlib/Analysis/Calculus/Deriv/Comp.lean Modified Mathlib/Analysis/Calculus/Deriv/Inv.lean +/- theorem derivWithin_inv' Modified Mathlib/Analysis/Calculus/Deriv/Mul.lean +/- theorem ContinuousLinearMap.derivWithin_of_bilinear +/- theorem derivWithin_clm_apply +/- theorem derivWithin_const_mul +/- theorem derivWithin_const_smul +/- theorem derivWithin_div_const +/- theorem derivWithin_finset_prod +/- theorem derivWithin_mul +/- theorem derivWithin_mul_const +/- theorem derivWithin_smul +/- theorem derivWithin_smul_const Modified Mathlib/Analysis/Calculus/Deriv/Pow.lean +/- theorem derivWithin_pow' Modified Mathlib/Analysis/Calculus/Deriv/Prod.lean +/- theorem derivWithin_pi Modified Mathlib/Analysis/Calculus/Deriv/Star.lean Modified Mathlib/Analysis/Calculus/IteratedDeriv/Defs.lean +/- theorem iteratedDerivWithin_eq_iterate +/- theorem iteratedDerivWithin_one +/- theorem iteratedDerivWithin_succ' +/- theorem iteratedDerivWithin_succ Modified Mathlib/Analysis/Calculus/IteratedDeriv/Lemmas.lean Modified Mathlib/Analysis/Calculus/Taylor.lean 2025-01-19 10:33:03 456abfe feat(CategoryTheory): infer filteredness from filteredness of costructured arrow categories (#19684) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Filtered/CostructuredArrow.lean + theorem CategoryTheory.isFiltered_of_isFiltered_costructuredArrow Modified Mathlib/CategoryTheory/Filtered/OfColimitCommutesFiniteLimit.lean Added Mathlib/CategoryTheory/Limits/Preserves/Grothendieck.lean + def CategoryTheory.Limits.fiberwiseColimitLimitIso Modified Mathlib/CategoryTheory/Limits/Shapes/Grothendieck.lean + def CategoryTheory.Limits.fiberwiseColim + def CategoryTheory.Limits.fiberwiseColimCompColimIso + def CategoryTheory.Limits.fiberwiseColimCompEvaluationIso 2025-01-19 09:13:31 a58a89a feat: describe the interval of reals `t` where `exp (t * X)` is integrable (#20418) The set of reals `t` where `exp (t * X)` is integrable is an interval containing 0. Also prove integrability of other function for a parameter in that interval. Rename Probability/Moments to Probability/Moments/Basic ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Analysis/SpecialFunctions/Pow/Real.lean + theorem Real.rpow_max Modified Mathlib/Data/Complex/Exponential.lean + theorem Real.le_inv_mul_exp Modified Mathlib/MeasureTheory/Function/L1Space.lean + theorem MeasureTheory.integrable_norm_rpow_iff Modified Mathlib/Probability/Distributions/Gaussian.lean Renamed Mathlib/Probability/Moments.lean to Mathlib/Probability/Moments/Basic.lean + theorem ProbabilityTheory.mgf_anti_of_nonpos + theorem ProbabilityTheory.mgf_mono_of_nonneg Added Mathlib/Probability/Moments/IntegrableExpMul.lean + theorem ProbabilityTheory.add_half_inf_sub_mem_Ioo + theorem ProbabilityTheory.aemeasurable_of_integrable_exp_mul + theorem ProbabilityTheory.aemeasurable_of_mem_interior_integrableExpSet + theorem ProbabilityTheory.convex_integrableExpSet + def ProbabilityTheory.integrableExpSet + theorem ProbabilityTheory.integrable_exp_abs_mul_abs + theorem ProbabilityTheory.integrable_exp_abs_mul_abs_add + theorem ProbabilityTheory.integrable_exp_mul_abs + theorem ProbabilityTheory.integrable_exp_mul_abs_add + theorem ProbabilityTheory.integrable_exp_mul_of_abs_le + theorem ProbabilityTheory.integrable_exp_mul_of_le_of_le + theorem ProbabilityTheory.integrable_exp_mul_of_nonneg_of_le + theorem ProbabilityTheory.integrable_exp_mul_of_nonpos_of_ge + theorem ProbabilityTheory.integrable_of_mem_integrableExpSet + theorem ProbabilityTheory.integrable_pow_abs_mul_exp_add_of_integrable_exp_mul + theorem ProbabilityTheory.integrable_pow_abs_mul_exp_of_integrable_exp_mul + theorem ProbabilityTheory.integrable_pow_abs_mul_exp_of_mem_interior_integrableExpSet + theorem ProbabilityTheory.integrable_pow_abs_of_integrable_exp_mul + theorem ProbabilityTheory.integrable_pow_abs_of_mem_interior_integrableExpSet + theorem ProbabilityTheory.integrable_pow_mul_exp_of_integrable_exp_mul + theorem ProbabilityTheory.integrable_pow_mul_exp_of_mem_interior_integrableExpSet + theorem ProbabilityTheory.integrable_pow_of_integrable_exp_mul + theorem ProbabilityTheory.integrable_pow_of_mem_interior_integrableExpSet + theorem ProbabilityTheory.integrable_rpow_abs_mul_exp_add_of_integrable_exp_mul + theorem ProbabilityTheory.integrable_rpow_abs_mul_exp_of_integrable_exp_mul + theorem ProbabilityTheory.integrable_rpow_abs_mul_exp_of_mem_interior_integrableExpSet + theorem ProbabilityTheory.integrable_rpow_abs_of_integrable_exp_mul + theorem ProbabilityTheory.integrable_rpow_abs_of_mem_interior_integrableExpSet + theorem ProbabilityTheory.integrable_rpow_mul_exp_of_integrable_exp_mul + theorem ProbabilityTheory.integrable_rpow_mul_exp_of_mem_interior_integrableExpSet + theorem ProbabilityTheory.integrable_rpow_of_integrable_exp_mul + theorem ProbabilityTheory.integrable_rpow_of_mem_interior_integrableExpSet + theorem ProbabilityTheory.memℒp_of_mem_interior_integrableExpSet + theorem ProbabilityTheory.rpow_abs_le_mul_exp_abs + theorem ProbabilityTheory.rpow_abs_le_mul_max_exp + theorem ProbabilityTheory.rpow_abs_le_mul_max_exp_of_pos + theorem ProbabilityTheory.sub_half_inf_sub_mem_Ioo 2025-01-19 08:58:10 9b6fa8d feat: in one dimension, a point is either isolated or a point of unique differentiability (#20827) A point in a subset of a field is either a point of unique differentials, or isolated. In both cases, there is a definite value for the derivative of a map (its unique derivative in the former case, zero in the latter case). This means there is no choice involved, contrary to what happens in higher dimension. This remark means we can remove many `UniqueDiffWithinAt` assumptions in one-dimensional settings. This PR proves the new lemma that a point is either isolated or a point of unique differentiability. The application to cleanup the library will be in a further PR (#20816) ESTIMATED CHANGES Modified Mathlib/Analysis/Calculus/TangentCone.lean + theorem tangentCone_eq_univ + theorem tangentCone_nonempty_of_properSpace + theorem uniqueDiffWithinAt_or_nhdsWithin_eq_bot + theorem zero_mem_tangentCone 2025-01-18 22:00:34 bdee03d chore(Dynamics/PeriodicPts): don't import `MonoidWithZero` (#20765) For this, split the file into `.Defs` and `.Lemmas`. ESTIMATED CHANGES Modified Archive/Imo/Imo2006Q5.lean Modified Mathlib.lean Renamed Mathlib/Dynamics/PeriodicPts.lean to Mathlib/Dynamics/PeriodicPts/Defs.lean - theorem Function.Commute.minimalPeriod_of_comp_dvd_mul - theorem Function.Commute.minimalPeriod_of_comp_eq_mul_of_coprime - theorem Function.bijOn_periodicPts - theorem Function.directed_ptsOfPeriod_pNat - theorem Function.minimalPeriod_eq_prime - theorem Function.minimalPeriod_eq_prime_pow - theorem Function.minimalPeriod_fst_dvd - theorem Function.minimalPeriod_prod_map - theorem Function.minimalPeriod_snd_dvd Added Mathlib/Dynamics/PeriodicPts/Lemmas.lean + theorem Function.Commute.minimalPeriod_of_comp_dvd_mul + theorem Function.Commute.minimalPeriod_of_comp_eq_mul_of_coprime + theorem Function.bijOn_periodicPts + theorem Function.directed_ptsOfPeriod_pNat + theorem Function.minimalPeriod_eq_prime + theorem Function.minimalPeriod_eq_prime_pow + theorem Function.minimalPeriod_fst_dvd + theorem Function.minimalPeriod_prod_map + theorem Function.minimalPeriod_snd_dvd Modified Mathlib/GroupTheory/GroupAction/FixedPoints.lean Modified Mathlib/GroupTheory/GroupAction/Period.lean Modified Mathlib/GroupTheory/GroupAction/Quotient.lean Modified Mathlib/GroupTheory/OrderOfElement.lean 2025-01-18 21:34:46 b10900e chore(Associated): split out `Ring` results (#20737) ESTIMATED CHANGES Modified Archive/Imo/Imo2001Q6.lean Modified Mathlib.lean Modified Mathlib/Algebra/BigOperators/Associated.lean Modified Mathlib/Algebra/GCDMonoid/Basic.lean Renamed Mathlib/Algebra/Associated/Basic.lean to Mathlib/Algebra/GroupWithZero/Associated.lean - theorem Associated.neg_left - theorem Associated.neg_neg - theorem Associated.neg_right Modified Mathlib/Algebra/GroupWithZero/NonZeroDivisors.lean Modified Mathlib/Algebra/IsPrimePow.lean Renamed Mathlib/Algebra/Associated/OrderedCommMonoid.lean to Mathlib/Algebra/Order/Monoid/Associated.lean Modified Mathlib/Algebra/Polynomial/Monic.lean Added Mathlib/Algebra/Ring/Associated.lean + theorem Associated.neg_left + theorem Associated.neg_neg + theorem Associated.neg_right Modified Mathlib/Data/Int/Associated.lean Modified Mathlib/Data/List/Prime.lean Modified Mathlib/Data/Nat/Prime/Basic.lean Modified Mathlib/NumberTheory/Zsqrtd/Basic.lean Modified Mathlib/RingTheory/Ideal/Basic.lean Modified Mathlib/RingTheory/Ideal/Span.lean Modified Mathlib/RingTheory/Multiplicity.lean Modified Mathlib/RingTheory/Nilpotent/Basic.lean Modified Mathlib/RingTheory/UniqueFactorizationDomain/Defs.lean Modified MathlibTest/propose.lean 2025-01-18 20:53:44 da939cc feat(AlgebraicGeometry): flat morphisms of schemes (#19790) ... and show that `Flat` can be checked on stalks. The latter is shown more generally for any morphism property of schemes associated to a property of ring maps satisfying `RingHom.OfLocalizationPrime`. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/AlgebraicGeometry/GammaSpecAdjunction.lean + theorem AlgebraicGeometry.Spec.map_surjective Added Mathlib/AlgebraicGeometry/Morphisms/Flat.lean + theorem AlgebraicGeometry.Flat.iff_flat_stalkMap + theorem AlgebraicGeometry.Flat.of_stalkMap + theorem AlgebraicGeometry.Flat.stalkMap Modified Mathlib/AlgebraicGeometry/Morphisms/RingHomProperties.lean + theorem AlgebraicGeometry.HasRingHomProperty.of_stalkMap + theorem AlgebraicGeometry.HasRingHomProperty.stalkMap Modified Mathlib/AlgebraicGeometry/Restrict.lean + theorem AlgebraicGeometry.Scheme.Hom.coe_resLE_base + def AlgebraicGeometry.Scheme.Hom.resLEStalkMap + theorem AlgebraicGeometry.Scheme.Opens.stalkIso_inv + theorem AlgebraicGeometry.Scheme.Opens.ι_base_apply Modified Mathlib/AlgebraicGeometry/Scheme.lean Modified Mathlib/RingTheory/RingHom/Flat.lean + theorem RingHom.Flat.localRingHom + theorem RingHom.Flat.ofLocalizationPrime Modified Mathlib/RingTheory/RingHomProperties.lean + theorem RingHom.RespectsIso.arrow_mk_iso_iff 2025-01-18 20:44:55 0ccda7e feat(AlgebraicGeometry): scheme-theoretic fibre (#19427) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/AlgebraicGeometry/Fiber.lean + theorem AlgebraicGeometry.IsFinite.finite_preimage_singleton + theorem AlgebraicGeometry.QuasiCompact.isCompact_preimage_singleton + def AlgebraicGeometry.Scheme.Hom.asFiber + def AlgebraicGeometry.Scheme.Hom.fiber + def AlgebraicGeometry.Scheme.Hom.fiberHomeo + theorem AlgebraicGeometry.Scheme.Hom.fiberHomeo_apply + def AlgebraicGeometry.Scheme.Hom.fiberOverSpecResidueField + def AlgebraicGeometry.Scheme.Hom.fiberToSpecResidueField + theorem AlgebraicGeometry.Scheme.Hom.fiberToSpecResidueField_apply + def AlgebraicGeometry.Scheme.Hom.fiberι + theorem AlgebraicGeometry.Scheme.Hom.fiberι_asFiber + theorem AlgebraicGeometry.Scheme.Hom.fiberι_fiberHomeo_symm + theorem AlgebraicGeometry.Scheme.Hom.finite_preimage + theorem AlgebraicGeometry.Scheme.Hom.range_fiberι Modified Mathlib/AlgebraicGeometry/Morphisms/Affine.lean - theorem AlgebraicGeometry.isAffineHom_isStableUnderBaseChange Modified Mathlib/AlgebraicGeometry/Morphisms/ClosedImmersion.lean Modified Mathlib/AlgebraicGeometry/Morphisms/FiniteType.lean Modified Mathlib/AlgebraicGeometry/Morphisms/Preimmersion.lean Modified Mathlib/RingTheory/Spectrum/Prime/Noetherian.lean 2025-01-18 20:11:12 95878d0 chore: split Mathlib.Analysis.Asymptotics.Asymptotics (#20785) This was a long file. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Analysis/Asymptotics/AsymptoticEquivalent.lean Renamed Mathlib/Analysis/Asymptotics/Asymptotics.lean to Mathlib/Analysis/Asymptotics/Defs.lean - theorem Asymptotics.IsBigO.comp_summable_norm - theorem Asymptotics.IsBigO.const_smul_left - theorem Asymptotics.IsBigO.const_smul_self - theorem Asymptotics.IsBigO.eq_zero_of_norm_pow - theorem Asymptotics.IsBigO.eq_zero_of_norm_pow_within - theorem Asymptotics.IsBigO.finsetProd - theorem Asymptotics.IsBigO.isBoundedUnder_le - theorem Asymptotics.IsBigO.listProd - theorem Asymptotics.IsBigO.multisetProd - theorem Asymptotics.IsBigO.natCast_atTop - theorem Asymptotics.IsBigO.of_pow - theorem Asymptotics.IsBigO.smul - theorem Asymptotics.IsBigO.smul_isLittleO - theorem Asymptotics.IsBigO.trans_tendsto - theorem Asymptotics.IsBigO.trans_tendsto_nhds - theorem Asymptotics.IsBigOWith.const_smul_left - theorem Asymptotics.IsBigOWith.const_smul_self - theorem Asymptotics.IsBigOWith.exists_eq_mul - theorem Asymptotics.IsBigOWith.right_le_add_of_lt_one - theorem Asymptotics.IsBigOWith.right_le_sub_of_lt_one - theorem Asymptotics.IsBigOWith.smul - theorem Asymptotics.IsLittleO.const_smul_left - theorem Asymptotics.IsLittleO.finsetProd - theorem Asymptotics.IsLittleO.listProd - theorem Asymptotics.IsLittleO.multisetProd - theorem Asymptotics.IsLittleO.natCast_atTop - theorem Asymptotics.IsLittleO.right_isBigO_add' - theorem Asymptotics.IsLittleO.right_isBigO_add - theorem Asymptotics.IsLittleO.right_isBigO_sub - theorem Asymptotics.IsLittleO.smul - theorem Asymptotics.IsLittleO.smul_isBigO - theorem Asymptotics.IsLittleO.tendsto_div_nhds_zero - theorem Asymptotics.IsLittleO.tendsto_inv_smul_nhds_zero - theorem Asymptotics.IsLittleO.tendsto_zero_of_tendsto - theorem Asymptotics.IsLittleO.trans_tendsto - theorem Asymptotics.bound_of_isBigO_cofinite - theorem Asymptotics.bound_of_isBigO_nat_atTop - theorem Asymptotics.continuousAt_iff_isLittleO - theorem Asymptotics.div_isBoundedUnder_of_isBigO - theorem Asymptotics.isBigOWith_const_one - theorem Asymptotics.isBigOWith_iff_exists_eq_mul - theorem Asymptotics.isBigOWith_of_eq_mul - theorem Asymptotics.isBigOWith_pi - theorem Asymptotics.isBigOWith_principal - theorem Asymptotics.isBigOWith_top - theorem Asymptotics.isBigO_atTop_iff_eventually_exists - theorem Asymptotics.isBigO_atTop_iff_eventually_exists_pos - theorem Asymptotics.isBigO_cofinite_iff - theorem Asymptotics.isBigO_const_iff - theorem Asymptotics.isBigO_const_left_iff_pos_le_norm - theorem Asymptotics.isBigO_const_of_ne - theorem Asymptotics.isBigO_const_of_tendsto - theorem Asymptotics.isBigO_const_one - theorem Asymptotics.isBigO_const_smul_left - theorem Asymptotics.isBigO_const_smul_right - theorem Asymptotics.isBigO_iff_div_isBoundedUnder - theorem Asymptotics.isBigO_iff_exists_eq_mul - theorem Asymptotics.isBigO_iff_isBoundedUnder_le_div - theorem Asymptotics.isBigO_mul_iff_isBigO_div - theorem Asymptotics.isBigO_nat_atTop_iff - theorem Asymptotics.isBigO_of_div_tendsto_nhds - theorem Asymptotics.isBigO_one_iff - theorem Asymptotics.isBigO_one_nat_atTop_iff - theorem Asymptotics.isBigO_one_nhds_ne_iff - theorem Asymptotics.isBigO_pi - theorem Asymptotics.isBigO_principal - theorem Asymptotics.isBigO_top - theorem Asymptotics.isLittleO_const_const_iff - theorem Asymptotics.isLittleO_const_id_atBot - theorem Asymptotics.isLittleO_const_id_atTop - theorem Asymptotics.isLittleO_const_id_cobounded - theorem Asymptotics.isLittleO_const_iff - theorem Asymptotics.isLittleO_const_iff_isLittleO_one - theorem Asymptotics.isLittleO_const_left - theorem Asymptotics.isLittleO_const_left_of_ne - theorem Asymptotics.isLittleO_const_smul_left - theorem Asymptotics.isLittleO_const_smul_right - theorem Asymptotics.isLittleO_id_const - theorem Asymptotics.isLittleO_id_one - theorem Asymptotics.isLittleO_iff_exists_eq_mul - theorem Asymptotics.isLittleO_iff_tendsto' - theorem Asymptotics.isLittleO_iff_tendsto - theorem Asymptotics.isLittleO_norm_pow_id - theorem Asymptotics.isLittleO_norm_pow_norm_pow - theorem Asymptotics.isLittleO_one_iff - theorem Asymptotics.isLittleO_one_left_iff - theorem Asymptotics.isLittleO_pi - theorem Asymptotics.isLittleO_pow_id - theorem Asymptotics.isLittleO_pow_pow - theorem Asymptotics.isLittleO_pow_sub_pow_sub - theorem Asymptotics.isLittleO_pow_sub_sub - theorem Asymptotics.isLittleO_principal - theorem Asymptotics.isLittleO_pure - theorem Asymptotics.isLittleO_top - theorem Filter.IsBoundedUnder.isBigO_const - theorem Filter.Tendsto.isBigO_one - theorem Homeomorph.isBigOWith_congr - theorem Homeomorph.isBigO_congr - theorem Homeomorph.isLittleO_congr - theorem NormedField.tendsto_zero_smul_of_tendsto_zero_of_bounded - theorem PartialHomeomorph.isBigOWith_congr - theorem PartialHomeomorph.isBigO_congr - theorem PartialHomeomorph.isLittleO_congr - theorem summable_of_isBigO - theorem summable_of_isBigO_nat Added Mathlib/Analysis/Asymptotics/Lemmas.lean + theorem Asymptotics.IsBigO.comp_summable_norm + theorem Asymptotics.IsBigO.const_smul_left + theorem Asymptotics.IsBigO.const_smul_self + theorem Asymptotics.IsBigO.eq_zero_of_norm_pow + theorem Asymptotics.IsBigO.eq_zero_of_norm_pow_within + theorem Asymptotics.IsBigO.finsetProd + theorem Asymptotics.IsBigO.isBoundedUnder_le + theorem Asymptotics.IsBigO.listProd + theorem Asymptotics.IsBigO.multisetProd + theorem Asymptotics.IsBigO.natCast_atTop + theorem Asymptotics.IsBigO.of_pow + theorem Asymptotics.IsBigO.smul + theorem Asymptotics.IsBigO.smul_isLittleO + theorem Asymptotics.IsBigO.trans_tendsto + theorem Asymptotics.IsBigO.trans_tendsto_nhds + theorem Asymptotics.IsBigOWith.const_smul_left + theorem Asymptotics.IsBigOWith.const_smul_self + theorem Asymptotics.IsBigOWith.exists_eq_mul + theorem Asymptotics.IsBigOWith.right_le_add_of_lt_one + theorem Asymptotics.IsBigOWith.right_le_sub_of_lt_one + theorem Asymptotics.IsBigOWith.smul + theorem Asymptotics.IsLittleO.const_smul_left + theorem Asymptotics.IsLittleO.finsetProd + theorem Asymptotics.IsLittleO.listProd + theorem Asymptotics.IsLittleO.multisetProd + theorem Asymptotics.IsLittleO.natCast_atTop + theorem Asymptotics.IsLittleO.right_isBigO_add' + theorem Asymptotics.IsLittleO.right_isBigO_add + theorem Asymptotics.IsLittleO.right_isBigO_sub + theorem Asymptotics.IsLittleO.smul + theorem Asymptotics.IsLittleO.smul_isBigO + theorem Asymptotics.IsLittleO.tendsto_div_nhds_zero + theorem Asymptotics.IsLittleO.tendsto_inv_smul_nhds_zero + theorem Asymptotics.IsLittleO.tendsto_zero_of_tendsto + theorem Asymptotics.IsLittleO.trans_tendsto + theorem Asymptotics.bound_of_isBigO_cofinite + theorem Asymptotics.bound_of_isBigO_nat_atTop + theorem Asymptotics.continuousAt_iff_isLittleO + theorem Asymptotics.div_isBoundedUnder_of_isBigO + theorem Asymptotics.isBigOWith_const_one + theorem Asymptotics.isBigOWith_iff_exists_eq_mul + theorem Asymptotics.isBigOWith_of_eq_mul + theorem Asymptotics.isBigOWith_pi + theorem Asymptotics.isBigOWith_principal + theorem Asymptotics.isBigOWith_top + theorem Asymptotics.isBigO_atTop_iff_eventually_exists + theorem Asymptotics.isBigO_atTop_iff_eventually_exists_pos + theorem Asymptotics.isBigO_cofinite_iff + theorem Asymptotics.isBigO_const_iff + theorem Asymptotics.isBigO_const_left_iff_pos_le_norm + theorem Asymptotics.isBigO_const_of_ne + theorem Asymptotics.isBigO_const_of_tendsto + theorem Asymptotics.isBigO_const_one + theorem Asymptotics.isBigO_const_smul_left + theorem Asymptotics.isBigO_const_smul_right + theorem Asymptotics.isBigO_iff_div_isBoundedUnder + theorem Asymptotics.isBigO_iff_exists_eq_mul + theorem Asymptotics.isBigO_iff_isBoundedUnder_le_div + theorem Asymptotics.isBigO_mul_iff_isBigO_div + theorem Asymptotics.isBigO_nat_atTop_iff + theorem Asymptotics.isBigO_of_div_tendsto_nhds + theorem Asymptotics.isBigO_one_iff + theorem Asymptotics.isBigO_one_nat_atTop_iff + theorem Asymptotics.isBigO_one_nhds_ne_iff + theorem Asymptotics.isBigO_pi + theorem Asymptotics.isBigO_principal + theorem Asymptotics.isBigO_top + theorem Asymptotics.isLittleO_const_const_iff + theorem Asymptotics.isLittleO_const_id_atBot + theorem Asymptotics.isLittleO_const_id_atTop + theorem Asymptotics.isLittleO_const_id_cobounded + theorem Asymptotics.isLittleO_const_iff + theorem Asymptotics.isLittleO_const_iff_isLittleO_one + theorem Asymptotics.isLittleO_const_left + theorem Asymptotics.isLittleO_const_left_of_ne + theorem Asymptotics.isLittleO_const_smul_left + theorem Asymptotics.isLittleO_const_smul_right + theorem Asymptotics.isLittleO_id_const + theorem Asymptotics.isLittleO_id_one + theorem Asymptotics.isLittleO_iff_exists_eq_mul + theorem Asymptotics.isLittleO_iff_tendsto' + theorem Asymptotics.isLittleO_iff_tendsto + theorem Asymptotics.isLittleO_norm_pow_id + theorem Asymptotics.isLittleO_norm_pow_norm_pow + theorem Asymptotics.isLittleO_one_iff + theorem Asymptotics.isLittleO_one_left_iff + theorem Asymptotics.isLittleO_pi + theorem Asymptotics.isLittleO_pow_id + theorem Asymptotics.isLittleO_pow_pow + theorem Asymptotics.isLittleO_pow_sub_pow_sub + theorem Asymptotics.isLittleO_pow_sub_sub + theorem Asymptotics.isLittleO_principal + theorem Asymptotics.isLittleO_pure + theorem Asymptotics.isLittleO_top + theorem Filter.IsBoundedUnder.isBigO_const + theorem Filter.Tendsto.isBigO_one + theorem Homeomorph.isBigOWith_congr + theorem Homeomorph.isBigO_congr + theorem Homeomorph.isLittleO_congr + theorem NormedField.tendsto_zero_smul_of_tendsto_zero_of_bounded + theorem PartialHomeomorph.isBigOWith_congr + theorem PartialHomeomorph.isBigO_congr + theorem PartialHomeomorph.isLittleO_congr + theorem summable_of_isBigO + theorem summable_of_isBigO_nat Modified Mathlib/Analysis/Asymptotics/SpecificAsymptotics.lean Modified Mathlib/Analysis/Asymptotics/SuperpolynomialDecay.lean Modified Mathlib/Analysis/Asymptotics/TVS.lean Modified Mathlib/Analysis/Asymptotics/Theta.lean Modified Mathlib/Analysis/Calculus/FDeriv/Basic.lean Modified Mathlib/Analysis/Normed/Group/InfiniteSum.lean Modified Mathlib/Analysis/NormedSpace/OperatorNorm/Asymptotics.lean Modified Mathlib/Analysis/SpecificLimits/Normed.lean Modified Mathlib/Order/Filter/ZeroAndBoundedAtFilter.lean 2025-01-18 19:15:26 af5ebc2 doc: typo (#20829) ESTIMATED CHANGES Modified Mathlib/Order/Restriction.lean 2025-01-18 19:15:24 6cb9a2a feat(CategoryTheory): condition for an induced functor between comma categories to be final (#20139) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/CategoryTheory/Comma/Final.lean + theorem CategoryTheory.Comma.map_final Modified Mathlib/CategoryTheory/Comma/StructuredArrow/Basic.lean + def CategoryTheory.StructuredArrow.mapIsoMap₂ + def CategoryTheory.StructuredArrow.map₂CompMap₂Iso +/- def CategoryTheory.StructuredArrow.map₂IsoPreEquivalenceInverseCompProj + def CategoryTheory.StructuredArrow.preIsoMap₂ Added Mathlib/CategoryTheory/Comma/StructuredArrow/CommaMap.lean + def CategoryTheory.StructuredArrow.commaMapEquivalence + def CategoryTheory.StructuredArrow.commaMapEquivalenceCounitIso + def CategoryTheory.StructuredArrow.commaMapEquivalenceFunctor + def CategoryTheory.StructuredArrow.commaMapEquivalenceInverse + def CategoryTheory.StructuredArrow.commaMapEquivalenceUnitIso Modified Mathlib/CategoryTheory/Filtered/Final.lean 2025-01-18 18:58:59 3c8e631 feat(1000.yaml): allow statements of theorems also (#20637) There are three prominent examples of such statements in mathlib: FLT, the Riemann hypothesis and the Poincaré conjecture. Only the last is currently in the 1000+ theorems list. Add some statements of theorems. While at it, also comment on some more, and add a few more entries. ESTIMATED CHANGES Modified Mathlib/MeasureTheory/OuterMeasure/Caratheodory.lean Modified Mathlib/RingTheory/Polynomial/RationalRoot.lean Modified docs/100.yaml Modified docs/1000.yaml Modified scripts/yaml_check.py 2025-01-18 15:45:07 ece4a15 feat(Algebra/Homology/Embedding): homology of truncGE' (#19570) Given an embedding of complex shapes `e : Embedding c c'`, and `K : HomologicalComplex C c'`, we study the homology of `K.truncGE' e`. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Homology/Embedding/Boundary.lean + theorem ComplexShape.Embedding.next_f + theorem ComplexShape.Embedding.prev_f Added Mathlib/Algebra/Homology/Embedding/RestrictionHomology.lean + theorem HomologicalComplex.restriction.hasHomology + def HomologicalComplex.restriction.sc'Iso Added Mathlib/Algebra/Homology/Embedding/TruncGEHomology.lean + theorem HomologicalComplex.truncGE'.hasHomology_of_not_mem_boundary + theorem HomologicalComplex.truncGE'.hasHomology_sc'_of_not_mem_boundary + theorem HomologicalComplex.truncGE'.homologyData_right_g' + theorem HomologicalComplex.truncGE'.homologyι_truncGE'XIsoOpcycles_inv_d + theorem HomologicalComplex.truncGE'.quasiIsoAt_restrictionToTruncGE'_f 2025-01-18 14:49:41 48a296c chore: cleanup many porting notes in Combinatorics (#20823) ESTIMATED CHANGES Modified Mathlib/Combinatorics/Additive/Energy.lean Modified Mathlib/Combinatorics/Configuration.lean Modified Mathlib/Combinatorics/Derangements/Basic.lean Modified Mathlib/Combinatorics/Enumerative/Catalan.lean Modified Mathlib/Combinatorics/Enumerative/Composition.lean Modified Mathlib/Combinatorics/HalesJewett.lean Modified Mathlib/Combinatorics/Hindman.lean Modified Mathlib/Combinatorics/Quiver/Covering.lean Modified Mathlib/Combinatorics/Quiver/Prefunctor.lean Modified Mathlib/Combinatorics/Quiver/Subquiver.lean Modified Mathlib/Combinatorics/Quiver/Symmetric.lean Modified Mathlib/Combinatorics/SetFamily/Compression/Down.lean Modified Mathlib/Combinatorics/SetFamily/LYM.lean Modified Mathlib/Combinatorics/SetFamily/Shadow.lean Modified Mathlib/Combinatorics/SimpleGraph/Basic.lean Modified Mathlib/Combinatorics/SimpleGraph/Coloring.lean Modified Mathlib/Combinatorics/SimpleGraph/Dart.lean Modified Mathlib/Combinatorics/SimpleGraph/Density.lean Modified Mathlib/Combinatorics/SimpleGraph/Ends/Defs.lean Modified Mathlib/Combinatorics/SimpleGraph/Finite.lean Modified Mathlib/Combinatorics/SimpleGraph/IncMatrix.lean Modified Mathlib/Combinatorics/SimpleGraph/Path.lean Modified Mathlib/Combinatorics/SimpleGraph/Prod.lean Modified Mathlib/Combinatorics/SimpleGraph/Regularity/Bound.lean Modified Mathlib/Combinatorics/SimpleGraph/Regularity/Equitabilise.lean Modified Mathlib/Combinatorics/SimpleGraph/StronglyRegular.lean Modified Mathlib/Combinatorics/SimpleGraph/Walk.lean Modified Mathlib/Combinatorics/Young/YoungDiagram.lean 2025-01-18 05:22:14 7365868 chore: eliminate porting notes about `deriving Fintype` (#20820) ESTIMATED CHANGES Modified Mathlib/Computability/Encoding.lean Modified Mathlib/Data/Sign.lean 2025-01-17 19:10:14 a4c5ecf feat(Algebra/Lie): a Lie algebra is solvable iff it is solvable after faithfully flat base change (#20808) ESTIMATED CHANGES Modified Mathlib/Algebra/Lie/Nilpotent.lean Modified Mathlib/Algebra/Lie/Solvable.lean + theorem LieAlgebra.derivedSeriesOfIdeal_baseChange + theorem LieAlgebra.derivedSeries_baseChange + theorem LieAlgebra.isSolvable_tensorProduct_iff Modified Mathlib/RingTheory/Flat/FaithfullyFlat/Basic.lean + theorem Module.FaithfullyFlat.one_tmul_eq_zero_iff 2025-01-17 18:44:04 80283e8 feat: define bases of root pairings (#20667) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/LinearAlgebra/RootSystem/Base.lean + theorem RootPairing.Base.coroot_mem_span_int + theorem RootPairing.Base.eq_one_or_neg_one_of_mem_support_of_smul_mem + theorem RootPairing.Base.eq_one_or_neg_one_of_mem_support_of_smul_mem_aux + theorem RootPairing.Base.exists_coroot_eq_sum_int + theorem RootPairing.Base.exists_root_eq_sum_int + theorem RootPairing.Base.exists_root_eq_sum_nat_or_neg + theorem RootPairing.Base.root_mem_span_int + theorem RootPairing.Base.span_coroot_support + theorem RootPairing.Base.span_int_coroot_support + theorem RootPairing.Base.span_int_root_support + theorem RootPairing.Base.span_root_support + def RootPairing.Base.toCoweightBasis + def RootPairing.Base.toWeightBasis + structure RootPairing.Base Modified Mathlib/LinearAlgebra/RootSystem/Defs.lean + theorem RootPairing.coroot_eq_smul_coroot_iff + def RootPairing.flipEquiv + theorem RootPairing.smul_coroot_eq_of_root_eq_smul + def RootSystem.flipEquiv 2025-01-17 18:04:09 383fdb6 feat(Tactic): basic ConcreteCategory support for elementwise (#20811) This is a step towards a concrete category redesign, as outlined in this Zulip post: https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Concrete.20category.20class.20redesign/near/493903980 This PR adds basic support for `ConcreteCategory` to the `elementwise` attribute and elaborator: it still uses `HasForget` when a fresh instance is needed, but now will replace the `forget`-based operations with `ConcreteCategory`-based ones. So as long as there is only a `HasForget` instance, or no instance at all, in scope, `elementwise` will behave the same. But when there is a `ConcreteCategory` instance, all the `(forget C).obj X`es turn into `ToType X` and `(forget C).map f`s turn into `hom f`. In the future, when we have replaced enough `HasForget` instances with `ConcreteCategory`, we can apply the changes from the branch `redesign-ConcreteCategory` to make `elementwise` use `ConcreteCategory` when it creates fresh instances. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/ConcreteCategory/Basic.lean + theorem CategoryTheory.coe_toHasForget_instFunLike Modified Mathlib/Tactic/CategoryTheory/Elementwise.lean Modified MathlibTest/CategoryTheory/Elementwise.lean + theorem ElementwiseTest.ConcreteCategory.bar''' + theorem ElementwiseTest.ConcreteCategory.bar'' + theorem ElementwiseTest.ConcreteCategory.bar' + theorem ElementwiseTest.ConcreteCategory.bar + theorem ElementwiseTest.ConcreteCategory.ex1 + theorem ElementwiseTest.ConcreteCategory.foo' + theorem ElementwiseTest.ConcreteCategory.foo + theorem ElementwiseTest.HasForget.bar''' + theorem ElementwiseTest.HasForget.bar'' + theorem ElementwiseTest.HasForget.bar' + theorem ElementwiseTest.HasForget.bar + theorem ElementwiseTest.HasForget.ex1 + theorem ElementwiseTest.HasForget.ex2 + theorem ElementwiseTest.HasForget.ex3 + def ElementwiseTest.HasForget.f + theorem ElementwiseTest.HasForget.fh + theorem ElementwiseTest.HasForget.foo' + theorem ElementwiseTest.HasForget.foo + def ElementwiseTest.HasForget.g + theorem ElementwiseTest.HasForget.gh + def ElementwiseTest.HasForget.h - theorem ElementwiseTest.bar''' - theorem ElementwiseTest.bar'' - theorem ElementwiseTest.bar' - theorem ElementwiseTest.bar - theorem ElementwiseTest.ex1 - theorem ElementwiseTest.ex2 - theorem ElementwiseTest.ex3 - def ElementwiseTest.f - theorem ElementwiseTest.fh - theorem ElementwiseTest.foo' - theorem ElementwiseTest.foo - def ElementwiseTest.g - theorem ElementwiseTest.gh - def ElementwiseTest.h 2025-01-17 15:43:37 9ca037a feat(CategoryTheory): define unbundled `ConcreteCategory` class (#20810) This is a step towards a concrete category redesign, as outlined in this Zulip post: https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Concrete.20category.20class.20redesign/near/493903980 This PR defines a new class `ConcreteCategory` that unbundles the coercion of morphisms to functions and objects to types, in order to allow `ConcreteCategory` to coexist alongisde existing coercions to functions/sorts. No instances are included yet, since those can be declared in parallel. See e.g. `CommRingCat` on the `redesign-ConcreteCategory` branch for examples of what a concrete category instance will end up looking like. ESTIMATED CHANGES Modified Mathlib/Analysis/Normed/Group/SemiNormedGrp/Kernels.lean Modified Mathlib/CategoryTheory/ConcreteCategory/Basic.lean + theorem CategoryTheory.ConcreteCategory.coe_ext + theorem CategoryTheory.ConcreteCategory.ext + theorem CategoryTheory.ConcreteCategory.ext_apply + theorem CategoryTheory.ConcreteCategory.forget_map_eq_coe + def CategoryTheory.ConcreteCategory.homEquiv + theorem CategoryTheory.ConcreteCategory.hom_bijective + theorem CategoryTheory.ConcreteCategory.hom_injective + theorem CategoryTheory.forget_eq_ConcreteCategory_hom + theorem CategoryTheory.forget_obj + theorem CategoryTheory.hom_comp + theorem CategoryTheory.hom_id 2025-01-17 14:00:28 4335474 chore(CategoryTheory): rename `ConcreteCategory` to `HasForget` (#20809) This is the first step towards a concrete category redesign, as outlined in this Zulip post: https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Concrete.20category.20class.20redesign/near/493903980 This commit was generated by find-and-replacing `ConcreteCategory` and `concreteCategory` with `HasForget` and `hasForget` respectively, making sure not to touch imports. I did not look too closely at the changes, since we should be going over everything during the redesign anyway. `ConcreteCategory` is now temporarily an alias for `HasForget`, with a deprecation warning. The `ConcreteCategory` namespace itself was not renamed, since we'll eventually be redoing those results for the new `ConcreteCategory` class. ESTIMATED CHANGES Modified Mathlib/Algebra/Category/AlgebraCat/Basic.lean Modified Mathlib/Algebra/Category/BialgebraCat/Basic.lean Modified Mathlib/Algebra/Category/BoolRing.lean Modified Mathlib/Algebra/Category/CoalgebraCat/Basic.lean Modified Mathlib/Algebra/Category/FGModuleCat/Basic.lean Modified Mathlib/Algebra/Category/Grp/Basic.lean Modified Mathlib/Algebra/Category/Grp/FiniteGrp.lean Modified Mathlib/Algebra/Category/GrpWithZero.lean Modified Mathlib/Algebra/Category/HopfAlgebraCat/Basic.lean Modified Mathlib/Algebra/Category/ModuleCat/Basic.lean Modified Mathlib/Algebra/Category/ModuleCat/Presheaf/Sheafify.lean Modified Mathlib/Algebra/Category/ModuleCat/Sheaf/ChangeOfRings.lean Modified Mathlib/Algebra/Category/MonCat/Basic.lean Modified Mathlib/Algebra/Category/Ring/Basic.lean Modified Mathlib/Algebra/Category/Semigrp/Basic.lean Modified Mathlib/Algebra/Homology/ConcreteCategory.lean Modified Mathlib/Algebra/Homology/ImageToKernel.lean +/- theorem imageToKernel_arrow_apply Modified Mathlib/Algebra/Homology/ShortComplex/ConcreteCategory.lean - theorem CategoryTheory.ShortComplex.exact_iff_of_concreteCategory + theorem CategoryTheory.ShortComplex.exact_iff_of_hasForget Modified Mathlib/Algebra/Homology/ShortComplex/ModuleCat.lean Modified Mathlib/AlgebraicGeometry/OpenImmersion.lean Modified Mathlib/AlgebraicGeometry/ProjectiveSpectrum/StructureSheaf.lean Modified Mathlib/AlgebraicGeometry/StructureSheaf.lean Modified Mathlib/AlgebraicTopology/SimplexCategory.lean Modified Mathlib/AlgebraicTopology/TopologicalSimplex.lean Modified Mathlib/Analysis/Normed/Group/SemiNormedGrp.lean Modified Mathlib/CategoryTheory/Action/Basic.lean Modified Mathlib/CategoryTheory/Action/Concrete.lean Modified Mathlib/CategoryTheory/Action/Continuous.lean Modified Mathlib/CategoryTheory/Action/Limits.lean Modified Mathlib/CategoryTheory/Category/Bipointed.lean Modified Mathlib/CategoryTheory/Category/Pointed.lean Modified Mathlib/CategoryTheory/Category/TwoP.lean Modified Mathlib/CategoryTheory/ConcreteCategory/Basic.lean - def CategoryTheory.ConcreteCategory.hasCoeToSort + def CategoryTheory.HasForget.hasCoeToSort +/- def CategoryTheory.HasForget₂.mk' +/- def CategoryTheory.HasForget₂.trans +/- theorem CategoryTheory.NatTrans.naturality_apply +/- theorem CategoryTheory.forget₂_comp_apply +/- def CategoryTheory.hasForgetToType Modified Mathlib/CategoryTheory/ConcreteCategory/Bundled.lean Modified Mathlib/CategoryTheory/ConcreteCategory/BundledHom.lean Modified Mathlib/CategoryTheory/ConcreteCategory/EpiMono.lean Modified Mathlib/CategoryTheory/ConcreteCategory/ReflectsIso.lean Modified Mathlib/CategoryTheory/DifferentialObject.lean Modified Mathlib/CategoryTheory/FintypeCat.lean Modified Mathlib/CategoryTheory/Functor/Flat.lean Modified Mathlib/CategoryTheory/GradedObject.lean Modified Mathlib/CategoryTheory/Limits/ConcreteCategory/Basic.lean +/- theorem CategoryTheory.Limits.Concrete.surjective_π_app_zero_of_surjective_map Modified Mathlib/CategoryTheory/Limits/ConcreteCategory/WithAlgebraicStructures.lean Modified Mathlib/CategoryTheory/Limits/FilteredColimitCommutesFiniteLimit.lean Modified Mathlib/CategoryTheory/Limits/MonoCoprod.lean Modified Mathlib/CategoryTheory/Limits/Shapes/ConcreteCategory.lean +/- theorem CategoryTheory.Limits.Concrete.cokernel_funext Modified Mathlib/CategoryTheory/MorphismProperty/Concrete.lean Modified Mathlib/CategoryTheory/Sites/Adjunction.lean Modified Mathlib/CategoryTheory/Sites/Coherent/LocallySurjective.lean Modified Mathlib/CategoryTheory/Sites/CompatibleSheafification.lean Modified Mathlib/CategoryTheory/Sites/ConcreteSheafification.lean Modified Mathlib/CategoryTheory/Sites/EpiMono.lean Modified Mathlib/CategoryTheory/Sites/Equivalence.lean Modified Mathlib/CategoryTheory/Sites/LeftExact.lean Modified Mathlib/CategoryTheory/Sites/LocallyBijective.lean Modified Mathlib/CategoryTheory/Sites/LocallyInjective.lean Modified Mathlib/CategoryTheory/Sites/LocallySurjective.lean Modified Mathlib/CategoryTheory/Sites/PreservesLocallyBijective.lean Modified Mathlib/CategoryTheory/Sites/PreservesSheafification.lean Modified Mathlib/CategoryTheory/Sites/Pullback.lean Modified Mathlib/CategoryTheory/Sites/Sheaf.lean +/- def CategoryTheory.Presheaf.IsSeparated Modified Mathlib/CategoryTheory/Sites/Whiskering.lean +/- theorem CategoryTheory.Presheaf.IsSheaf.isSeparated +/- theorem CategoryTheory.Sheaf.isSeparated Modified Mathlib/Condensed/Discrete/Characterization.lean Modified Mathlib/Condensed/Discrete/Colimit.lean Modified Mathlib/Condensed/Discrete/LocallyConstant.lean Modified Mathlib/Condensed/Discrete/Module.lean Modified Mathlib/Condensed/Epi.lean Modified Mathlib/Condensed/Explicit.lean Modified Mathlib/Condensed/Light/Epi.lean Modified Mathlib/Condensed/Light/Explicit.lean Modified Mathlib/Condensed/Light/TopCatAdjunction.lean Modified Mathlib/Condensed/TopCatAdjunction.lean Modified Mathlib/Condensed/TopComparison.lean Modified Mathlib/Geometry/RingedSpace/Basic.lean Modified Mathlib/Geometry/RingedSpace/OpenImmersion.lean Modified Mathlib/Geometry/RingedSpace/SheafedSpace.lean Modified Mathlib/LinearAlgebra/QuadraticForm/QuadraticModuleCat.lean Modified Mathlib/MeasureTheory/Category/MeasCat.lean Modified Mathlib/Order/Category/BddDistLat.lean Modified Mathlib/Order/Category/BddLat.lean Modified Mathlib/Order/Category/BddOrd.lean Modified Mathlib/Order/Category/BoolAlg.lean Modified Mathlib/Order/Category/CompleteLat.lean Modified Mathlib/Order/Category/DistLat.lean Modified Mathlib/Order/Category/FinBddDistLat.lean Modified Mathlib/Order/Category/FinBoolAlg.lean Modified Mathlib/Order/Category/FinPartOrd.lean Modified Mathlib/Order/Category/Frm.lean Modified Mathlib/Order/Category/HeytAlg.lean Modified Mathlib/Order/Category/Lat.lean Modified Mathlib/Order/Category/LinOrd.lean Modified Mathlib/Order/Category/NonemptyFinLinOrd.lean Modified Mathlib/Order/Category/OmegaCompletePartialOrder.lean Modified Mathlib/Order/Category/PartOrd.lean Modified Mathlib/Order/Category/Preord.lean Modified Mathlib/Order/Category/Semilat.lean Modified Mathlib/RepresentationTheory/FDRep.lean Modified Mathlib/RepresentationTheory/Rep.lean Modified Mathlib/Tactic/CategoryTheory/Elementwise.lean +/- theorem Tactic.Elementwise.hom_elementwise Modified Mathlib/Tactic/Linter/GlobalAttributeIn.lean Modified Mathlib/Topology/Algebra/Category/ProfiniteGrp/Basic.lean Modified Mathlib/Topology/Category/Born.lean Modified Mathlib/Topology/Category/CompHaus/Basic.lean Modified Mathlib/Topology/Category/CompHaus/EffectiveEpi.lean Modified Mathlib/Topology/Category/CompHaus/Projective.lean Modified Mathlib/Topology/Category/CompHausLike/Basic.lean Modified Mathlib/Topology/Category/CompHausLike/EffectiveEpi.lean Modified Mathlib/Topology/Category/CompHausLike/Limits.lean Modified Mathlib/Topology/Category/CompactlyGenerated.lean Modified Mathlib/Topology/Category/Compactum.lean Modified Mathlib/Topology/Category/DeltaGenerated.lean Modified Mathlib/Topology/Category/FinTopCat.lean Modified Mathlib/Topology/Category/LightProfinite/AsLimit.lean Modified Mathlib/Topology/Category/LightProfinite/Basic.lean Modified Mathlib/Topology/Category/LightProfinite/EffectiveEpi.lean Modified Mathlib/Topology/Category/LightProfinite/Extend.lean Modified Mathlib/Topology/Category/Profinite/Basic.lean Modified Mathlib/Topology/Category/Profinite/CofilteredLimit.lean Modified Mathlib/Topology/Category/Profinite/EffectiveEpi.lean Modified Mathlib/Topology/Category/Profinite/Extend.lean Modified Mathlib/Topology/Category/Profinite/Projective.lean Modified Mathlib/Topology/Category/Sequential.lean Modified Mathlib/Topology/Category/Stonean/Basic.lean Modified Mathlib/Topology/Category/Stonean/EffectiveEpi.lean Modified Mathlib/Topology/Category/Stonean/Limits.lean Modified Mathlib/Topology/Category/TopCat/Basic.lean Modified Mathlib/Topology/Category/TopCat/Limits/Pullbacks.lean Modified Mathlib/Topology/Category/TopCommRingCat.lean Modified Mathlib/Topology/Category/UniformSpace.lean Modified Mathlib/Topology/Order/Category/AlexDisc.lean Modified Mathlib/Topology/Order/Category/FrameAdjunction.lean Modified Mathlib/Topology/Sheaves/CommRingCat.lean Modified Mathlib/Topology/Sheaves/Functors.lean Modified Mathlib/Topology/Sheaves/LocallySurjective.lean Modified Mathlib/Topology/Sheaves/Presheaf.lean +/- theorem TopCat.Presheaf.map_restrict +/- def TopCat.Presheaf.restrict +/- theorem TopCat.Presheaf.restrict_restrict Modified Mathlib/Topology/Sheaves/SheafCondition/UniqueGluing.lean Modified Mathlib/Topology/Sheaves/Stalks.lean +/- theorem TopCat.Presheaf.stalkFunctor_map_germ_apply' +/- theorem TopCat.Presheaf.stalkFunctor_map_germ_apply Modified MathlibTest/CategoryTheory/Elementwise.lean +/- theorem ElementwiseTest.bar +/- theorem ElementwiseTest.ex1 Modified MathlibTest/slow_simp.lean 2025-01-17 12:40:56 3830035 feat: `CommSemiring (NonemptyInterval ℚ≥0)` (#20783) For rings with negation we need a total rewrite of `Mul`, which is a problem for a later PR. ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Interval/Basic.lean + theorem NonemptyInterval.fst_natCast + theorem NonemptyInterval.pure_natCast + theorem NonemptyInterval.snd_natCast 2025-01-17 12:24:22 1912962 chore(yaml_check.py): re-format (#20807) In particular, make the file using four-space indentation. Auto-generated using ruff format (which is virtually equivalent to black), with a line-length set to 100 chars. Both tools are the de facto standard. ESTIMATED CHANGES Modified scripts/yaml_check.py 2025-01-17 12:14:21 bad84cb feat: elementary estimate for Real.log (#20766) Generalize the theorem `log_pos_iff'`, weakening the hypothesis `hx : 0 < x` to the (perhaps more natural) hypothesis `hx : 0 ≤ x`. Do the same for `log_nonpos_iff` and depreciate `log_nonpos_iff'`. Fix one trivial typo in a docstring of `Mathlib/NumberTheory/Bertrand.lean`. ESTIMATED CHANGES Modified Mathlib/Analysis/SpecialFunctions/Integrals.lean Modified Mathlib/Analysis/SpecialFunctions/Log/Basic.lean - theorem Real.log_nonpos_iff' +/- theorem Real.log_nonpos_iff +/- theorem Real.log_pos_iff Modified Mathlib/Analysis/SpecialFunctions/Pow/Real.lean Modified Mathlib/NumberTheory/Bertrand.lean 2025-01-17 10:17:57 e5ab45e feat: definition of linear topologies (#14990) A topology on a module is linear if it is invariant by translation and if there is a basis of neighborhoods consisting of submodules. We are most interested in the case of rings: a topology on a ring is linear if it is linear for both the left- and right-module structures on R over itself. This is equivalent to being invariant by translation and admitting a basis of neighborhoods consisting of two-sided ideals. This will be used in a subsequent PR to evaluate multivariate power series. We will also show that the natural topology on `MvPowerSeries S R` is a linear topology when `S` has a linear topology (e.g the discrete topology). ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Topology/Algebra/LinearTopology.lean + theorem IsCentralScalar.isLinearTopology_iff + theorem IsLinearTopology.hasBasis_ideal + theorem IsLinearTopology.hasBasis_open_ideal + theorem IsLinearTopology.hasBasis_open_subbimodule + theorem IsLinearTopology.hasBasis_open_submodule + theorem IsLinearTopology.hasBasis_open_twoSidedIdeal + theorem IsLinearTopology.hasBasis_subbimodule + theorem IsLinearTopology.hasBasis_submodule + theorem IsLinearTopology.hasBasis_twoSidedIdeal + theorem IsLinearTopology.mk_of_hasBasis' + theorem IsLinearTopology.mk_of_hasBasis + theorem IsLinearTopology.tendsto_mul_zero_of_left + theorem IsLinearTopology.tendsto_mul_zero_of_right + theorem IsLinearTopology.tendsto_smul_zero + theorem isLinearTopology_iff_hasBasis_ideal + theorem isLinearTopology_iff_hasBasis_open_ideal + theorem isLinearTopology_iff_hasBasis_open_submodule + theorem isLinearTopology_iff_hasBasis_open_twoSidedIdeal + theorem isLinearTopology_iff_hasBasis_submodule + theorem isLinearTopology_iff_hasBasis_twoSidedIdeal Modified docs/references.bib 2025-01-17 07:37:39 66e1419 feat(RingTheory): flatness over a semiring (#19115) A module over a ring is said to be flat if tensoring with it preserves injective linear maps. The same definition remains reasonable over a semiring, because (1) injective linear maps still coincides with monomorphisms over a semiring*; (2) projective modules (in particular, free modules) and localizations are still examples of flat modules over a semiring; (3) we recently fixed the definition of linear independence over semirings (#18426), and flatness of S/R means `(1:S) ⊗[R] ·` preserves linear independence. In fact (2) is the main motivation for this PR: it allows us to unify results about free modules (e.g. polynomial algebras) and localizations over a semiring. There is a caveat in the definition: injective linear maps need to come from a particular universe, as we can't quantify over all universes. Over a ring, using Baer's criterion and character modules, we may restrict to inclusion maps of (f.g.) ideals, and that was the definition adopted in Mathlib. However, the proof doesn't work over a semiring due to three difficulties: (1) Baer's criterion for injective modules doesn't work over a semiring; (2) Q/Z isn't an injective object in the category of AddCommMonoids, in fact this category [doesn't have enough injectives](https://mathoverflow.net/questions/277284/which-semirings-have-enough-injectives-in-their-category-of-modules); (3) homs into Q/Z does not distinguish points in an AddCommMonoid. However, we can still show that it suffices to consider injective linear maps between modules in the same universe as the semiring, using the fact that every module is the direct limit of its f.g. submodules, and that taking tensor products commutes with taking direct limits: of course, f.g. modules fit in the same universe as the semiring. We therefore change the definition of flatness to state preservation of injectivity of inclusion of f.g. submodules into f.g. modules in the same universe as the semiring. As we reorder the lemmas in Flat/Basic.lean, We also change all the iff lemmas to use implicit arguments; several other files need to be fixed for this reason, and as we fix them, we also generalize them to CommSemirings and in some cases golf the proofs. (*) There are more epimorphisms than surjective homs, e.g. the inclusion of N in Z. ESTIMATED CHANGES Modified Mathlib/RingTheory/AdicCompletion/AsTensorProduct.lean Modified Mathlib/RingTheory/Flat/Basic.lean + theorem LinearMap.rTensor_injective_iff_subtype + theorem LinearMap.rTensor_injective_of_fg + theorem Module.Flat.dfinsupp_iff + theorem Module.Flat.directSum_iff +/- theorem Module.Flat.iff_characterModule_baer +/- theorem Module.Flat.iff_lTensor_exact' + theorem Module.Flat.iff_lTensor_injectiveₛ +/- theorem Module.Flat.iff_lTensor_preserves_injective_linearMap' + theorem Module.Flat.iff_lTensor_preserves_injective_linearMapₛ + theorem Module.Flat.iff_lift_lsmul_comp_subtype_injective +/- theorem Module.Flat.iff_rTensor_exact' + theorem Module.Flat.iff_rTensor_injectiveₛ +/- theorem Module.Flat.iff_rTensor_preserves_injective_linearMap' + theorem Module.Flat.iff_rTensor_preserves_injective_linearMapₛ +/- theorem Module.Flat.lTensor_preserves_injective_linearMap +/- theorem Module.Flat.linearIndependent_one_tmul +/- theorem Module.Flat.of_linearEquiv - theorem Module.Flat.of_projective_surjective +/- theorem Module.Flat.of_shrink +/- theorem Module.Flat.of_ulift +/- theorem Module.Flat.rTensor_preserves_injective_linearMap Modified Mathlib/RingTheory/Flat/EquationalCriterion.lean Modified Mathlib/RingTheory/Flat/FaithfullyFlat/Basic.lean Modified Mathlib/RingTheory/Flat/Localization.lean +/- theorem IsLocalization.flat Modified Mathlib/RingTheory/Flat/Stability.lean +/- theorem Module.Flat.isBaseChange Modified Mathlib/RingTheory/LinearDisjoint.lean Modified Mathlib/RingTheory/LocalRing/Module.lean Modified Mathlib/RingTheory/RingHom/Flat.lean Modified Mathlib/RingTheory/Unramified/Finite.lean Modified docs/references.bib 2025-01-17 07:28:07 1af2507 feat(Algebra/Homology/Embedding): the canonical truncation truncLE (#19550) We dualize for `truncLE` the definitions and lemmas obtained for `truncGE` in PR #14734, #19543 and #19544. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Homology/Embedding/Basic.lean Modified Mathlib/Algebra/Homology/Embedding/Boundary.lean + theorem ComplexShape.Embedding.op_boundaryGE_iff + theorem ComplexShape.Embedding.op_boundaryLE_iff Modified Mathlib/Algebra/Homology/Embedding/IsSupported.lean + theorem HomologicalComplex.isStrictlySupportedOutside_op_iff + theorem HomologicalComplex.isStrictlySupported_op_iff + theorem HomologicalComplex.isSupportedOutside_op_iff + theorem HomologicalComplex.isSupported_op_iff Added Mathlib/Algebra/Homology/Embedding/TruncLE.lean + theorem HomologicalComplex.isIso_truncLE'ToRestriction + theorem HomologicalComplex.truncLE'Map_comp + theorem HomologicalComplex.truncLE'Map_f_eq + theorem HomologicalComplex.truncLE'Map_f_eq_cyclesMap + theorem HomologicalComplex.truncLE'Map_id + theorem HomologicalComplex.truncLE'ToRestriction_naturality + theorem HomologicalComplex.truncLE'_d_eq + theorem HomologicalComplex.truncLE'_d_eq_toCycles + theorem HomologicalComplex.truncLEMap_comp + theorem HomologicalComplex.truncLEMap_id + theorem HomologicalComplex.ιTruncLE_naturality 2025-01-17 07:19:44 b07a551 feat(Algebra/Homology/Embedding): API for the homology of an extension of homological complex (#19203) Given an embedding `e : c.Embedding c'` of complex shapes, we provide definitions and lemmas in order to study the homology of the extension by `e` of a homological complex. ESTIMATED CHANGES Modified Mathlib/Algebra/Homology/Embedding/ExtendHomology.lean + theorem HomologicalComplex.extendCyclesIso_hom_iCycles + theorem HomologicalComplex.extendCyclesIso_hom_naturality + theorem HomologicalComplex.extendCyclesIso_inv_iCycles + theorem HomologicalComplex.extendHomologyIso_hom_homologyι + theorem HomologicalComplex.extendHomologyIso_hom_naturality + theorem HomologicalComplex.extendHomologyIso_inv_homologyι + theorem HomologicalComplex.extend_exactAt + theorem HomologicalComplex.extend_exactAt_iff + theorem HomologicalComplex.homologyπ_extendHomologyIso_hom + theorem HomologicalComplex.homologyπ_extendHomologyIso_inv + theorem HomologicalComplex.pOpcycles_extendOpcyclesIso_hom + theorem HomologicalComplex.pOpcycles_extendOpcyclesIso_inv + theorem HomologicalComplex.quasiIsoAt_extendMap_iff + theorem HomologicalComplex.quasiIso_extendMap_iff 2025-01-17 06:53:30 e2d098c feat(Algebra/Ring): `RingEquiv.piUnique` (#20794) Implement the ring-theoretic counterpart of `LinearEquiv.piUnique` and `Equiv.piUnique`. ESTIMATED CHANGES Modified Mathlib/Algebra/Ring/Equiv.lean + def RingEquiv.piUnique 2025-01-17 06:30:55 767b250 feat(RingTheory/LocalRing): add instance `Unique (MaximalSpectrum R)` for a local ring `R` (#20801) Introduce the instance `Unique (MaximalSpectrum R)` for a local ring `R`. I need this for simpler proofs, for example that a local reduced artinian ring is a field (using `RingEquiv.piUnique` introduced in #20794). I think it's generally useful. ESTIMATED CHANGES Modified Mathlib/RingTheory/LocalRing/MaximalIdeal/Basic.lean 2025-01-17 06:22:20 a1e497d chore(GroupExtension/Defs): define `Section` and redefine `Splitting` (#20802) This PR: - defines `structure (Add)?GroupExtension.Section` as a right inverse to `rightHom` - redefines `structure (Add)?GroupExtension.Splitting` using `Section` - rewrites the definition of `structure (Add)?GroupExtension.Equiv` with `extends` As the first part of #19582, this PR contains only the changes to the `Defs` file. Moves: - GroupExtension.Splitting.sectionHom -> GroupExtension.Splitting.toMonoidHom - GroupExtension.Splitting.rightHom_comp_sectionHom -> GroupExtension.Splitting.rightInverse_rightHom ESTIMATED CHANGES Modified Mathlib/GroupTheory/GroupExtension/Defs.lean +/- structure AddGroupExtension.Equiv + structure AddGroupExtension.Section +/- structure AddGroupExtension.Splitting +/- structure GroupExtension.Equiv +/- def GroupExtension.IsConj + theorem GroupExtension.Section.coe_mk + theorem GroupExtension.Section.rightHom_comp_section + theorem GroupExtension.Section.rightHom_section + structure GroupExtension.Section + theorem GroupExtension.Splitting.coe_mk + theorem GroupExtension.Splitting.coe_monoidHom_mk + theorem GroupExtension.Splitting.rightHom_comp_splitting + theorem GroupExtension.Splitting.rightHom_splitting +/- structure GroupExtension.Splitting 2025-01-17 05:44:52 7f65e5d chore: restore `def` to `adicCompletion` (#20796) #13020 turned this into an `abbrev`. The definition is kinda scary so I would argue we try to keep it behind the veil and only expose it when necessary. As a bonus, this fixes a crashing instance synthesis [Zulip](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/adic.20completion.20is.20commutative). ESTIMATED CHANGES Modified Mathlib/NumberTheory/NumberField/FinitePlaces.lean Modified Mathlib/RingTheory/DedekindDomain/AdicValuation.lean + def IsDedekindDomain.HeightOneSpectrum.adicCompletion + theorem IsDedekindDomain.HeightOneSpectrum.coe_algebraMap_mem Modified Mathlib/RingTheory/DedekindDomain/FiniteAdeleRing.lean 2025-01-17 03:48:42 a76d7c9 refactor: rename `UniqueContinuousFunctionalCalculus` to `ContinuousMap.UniqueHom` (#20643) Given that `UniqueContinuousFunctionalCalculus` no longer mentions `spectrum`, it really has very little to tie it to the ContinuousFunctionalCalculus. In some sense, it's just a property of `C(s, R)`, but because we want to allow `R := ℝ≥0`, the algebra `A` also matters. Because of this, we put the class within the `ContinuousMap` namespace. We also rename `UniqueNonUnitalContinuousFunctionalCalculus` to `ContinuousMapZero.UniqueHom`. ESTIMATED CHANGES Modified Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Basic.lean Modified Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Isometric.lean Modified Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/NonUnital.lean +/- theorem NonUnitalStarAlgHom.ext_continuousMap +/- theorem cfcₙHom_comp +/- theorem cfcₙHom_eq_cfcₙHom_of_cfcHom +/- theorem cfcₙHom_eq_of_continuous_of_map_id +/- theorem cfcₙ_eq_cfc Modified Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Restrict.lean Modified Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Unique.lean Modified Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Unital.lean +/- theorem StarAlgHom.ext_continuousMap +/- theorem cfcHom_comp +/- theorem cfcHom_eq_of_continuous_of_map_id Modified Mathlib/Analysis/SpecialFunctions/ContinuousFunctionalCalculus/PosPart.lean 2025-01-16 22:07:20 e6c7f46 feat(Algebra/Homology/Embedding): the morphism from a complex to its `truncGE` truncation (#19544) Given an embedding `e` of complex shapes which satisfies `e.IsTruncGE`, we define the canonical (natural) epimorphism `K.πTruncGE e : K ⟶ K.truncGE e` from a complex to its canonical truncation. ESTIMATED CHANGES Modified Mathlib/Algebra/Homology/Embedding/HomEquiv.lean + theorem ComplexShape.Embedding.homRestrict_comp_extendMap Modified Mathlib/Algebra/Homology/Embedding/TruncGE.lean + theorem HomologicalComplex.isIso_restrictionToTruncGE' + theorem HomologicalComplex.restrictionToTruncGE'.comm + theorem HomologicalComplex.restrictionToTruncGE'.f_eq_iso_hom_iso_inv + theorem HomologicalComplex.restrictionToTruncGE'.f_eq_iso_hom_pOpcycles_iso_inv + theorem HomologicalComplex.restrictionToTruncGE'_f_eq_iso_hom_iso_inv + theorem HomologicalComplex.restrictionToTruncGE'_f_eq_iso_hom_pOpcycles_iso_inv + theorem HomologicalComplex.restrictionToTruncGE'_hasLift + theorem HomologicalComplex.restrictionToTruncGE'_naturality + theorem HomologicalComplex.πTruncGE_naturality Modified Mathlib/CategoryTheory/Limits/Shapes/ZeroObjects.lean + theorem CategoryTheory.Limits.IsZero.epi + theorem CategoryTheory.Limits.IsZero.mono 2025-01-16 21:58:53 fc139dd chore(Mathlib/Computability/TuringMachine): split file (#20790) This PR splits `Mathlib/Computability/TuringMachine` by moving to a new file the initial 600 or so lines, which deal with the definition of the tape data structure that a Turing machine uses. This reduces the size of this large file to less than 2100 lines. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Computability/Tape.lean + def Turing.BlankExtends.above + theorem Turing.BlankExtends.above_of_le + theorem Turing.BlankExtends.below_of_le + theorem Turing.BlankExtends.refl + theorem Turing.BlankExtends.trans + def Turing.BlankExtends + def Turing.BlankRel.above + def Turing.BlankRel.below + theorem Turing.BlankRel.equivalence + theorem Turing.BlankRel.refl + def Turing.BlankRel.setoid + theorem Turing.BlankRel.symm + theorem Turing.BlankRel.trans + def Turing.BlankRel + inductive Turing.Dir + def Turing.ListBlank.append + theorem Turing.ListBlank.append_assoc + theorem Turing.ListBlank.append_mk + def Turing.ListBlank.cons + theorem Turing.ListBlank.cons_flatMap + theorem Turing.ListBlank.cons_head_tail + theorem Turing.ListBlank.cons_mk + theorem Turing.ListBlank.exists_cons + theorem Turing.ListBlank.ext + def Turing.ListBlank.flatMap + theorem Turing.ListBlank.flatMap_mk + def Turing.ListBlank.head + theorem Turing.ListBlank.head_cons + theorem Turing.ListBlank.head_map + theorem Turing.ListBlank.head_mk + def Turing.ListBlank.map + theorem Turing.ListBlank.map_cons + theorem Turing.ListBlank.map_mk + theorem Turing.ListBlank.map_modifyNth + def Turing.ListBlank.mk + def Turing.ListBlank.modifyNth + def Turing.ListBlank.nth + theorem Turing.ListBlank.nth_map + theorem Turing.ListBlank.nth_mk + theorem Turing.ListBlank.nth_modifyNth + theorem Turing.ListBlank.nth_succ + theorem Turing.ListBlank.nth_zero + def Turing.ListBlank.tail + theorem Turing.ListBlank.tail_cons + theorem Turing.ListBlank.tail_map + theorem Turing.ListBlank.tail_mk + def Turing.ListBlank + theorem Turing.PointedMap.headI_map + theorem Turing.PointedMap.map_pt + theorem Turing.PointedMap.mk_val + structure Turing.PointedMap.{u, + theorem Turing.Tape.exists_mk' + def Turing.Tape.left₀ + def Turing.Tape.map + theorem Turing.Tape.map_fst + theorem Turing.Tape.map_mk' + theorem Turing.Tape.map_mk₁ + theorem Turing.Tape.map_mk₂ + theorem Turing.Tape.map_move + theorem Turing.Tape.map_write + def Turing.Tape.mk' + theorem Turing.Tape.mk'_head + theorem Turing.Tape.mk'_left + theorem Turing.Tape.mk'_left_right₀ + theorem Turing.Tape.mk'_nth_nat + theorem Turing.Tape.mk'_right + theorem Turing.Tape.mk'_right₀ + def Turing.Tape.mk₁ + def Turing.Tape.mk₂ + def Turing.Tape.move + theorem Turing.Tape.move_left_mk' + theorem Turing.Tape.move_left_nth + theorem Turing.Tape.move_left_right + theorem Turing.Tape.move_right_left + theorem Turing.Tape.move_right_mk' + theorem Turing.Tape.move_right_n_head + theorem Turing.Tape.move_right_nth + def Turing.Tape.nth + theorem Turing.Tape.nth_zero + def Turing.Tape.right₀ + theorem Turing.Tape.right₀_nth + def Turing.Tape.write + theorem Turing.Tape.write_mk' + theorem Turing.Tape.write_move_right_n + theorem Turing.Tape.write_nth + theorem Turing.Tape.write_self + structure Turing.Tape + def Turing.proj + theorem Turing.proj_map_nth Modified Mathlib/Computability/TuringMachine.lean - def Turing.BlankExtends.above - theorem Turing.BlankExtends.above_of_le - theorem Turing.BlankExtends.below_of_le - theorem Turing.BlankExtends.refl - theorem Turing.BlankExtends.trans - def Turing.BlankExtends - def Turing.BlankRel.above - def Turing.BlankRel.below - theorem Turing.BlankRel.equivalence - theorem Turing.BlankRel.refl - def Turing.BlankRel.setoid - theorem Turing.BlankRel.symm - theorem Turing.BlankRel.trans - def Turing.BlankRel - inductive Turing.Dir - def Turing.ListBlank.append - theorem Turing.ListBlank.append_assoc - theorem Turing.ListBlank.append_mk - def Turing.ListBlank.cons - theorem Turing.ListBlank.cons_flatMap - theorem Turing.ListBlank.cons_head_tail - theorem Turing.ListBlank.cons_mk - theorem Turing.ListBlank.exists_cons - theorem Turing.ListBlank.ext - def Turing.ListBlank.flatMap - theorem Turing.ListBlank.flatMap_mk - def Turing.ListBlank.head - theorem Turing.ListBlank.head_cons - theorem Turing.ListBlank.head_map - theorem Turing.ListBlank.head_mk - def Turing.ListBlank.map - theorem Turing.ListBlank.map_cons - theorem Turing.ListBlank.map_mk - theorem Turing.ListBlank.map_modifyNth - def Turing.ListBlank.mk - def Turing.ListBlank.modifyNth - def Turing.ListBlank.nth - theorem Turing.ListBlank.nth_map - theorem Turing.ListBlank.nth_mk - theorem Turing.ListBlank.nth_modifyNth - theorem Turing.ListBlank.nth_succ - theorem Turing.ListBlank.nth_zero - def Turing.ListBlank.tail - theorem Turing.ListBlank.tail_cons - theorem Turing.ListBlank.tail_map - theorem Turing.ListBlank.tail_mk - def Turing.ListBlank - theorem Turing.PointedMap.headI_map - theorem Turing.PointedMap.map_pt - theorem Turing.PointedMap.mk_val - structure Turing.PointedMap.{u, - theorem Turing.Tape.exists_mk' - def Turing.Tape.left₀ - def Turing.Tape.map - theorem Turing.Tape.map_fst - theorem Turing.Tape.map_mk' - theorem Turing.Tape.map_mk₁ - theorem Turing.Tape.map_mk₂ - theorem Turing.Tape.map_move - theorem Turing.Tape.map_write - def Turing.Tape.mk' - theorem Turing.Tape.mk'_head - theorem Turing.Tape.mk'_left - theorem Turing.Tape.mk'_left_right₀ - theorem Turing.Tape.mk'_nth_nat - theorem Turing.Tape.mk'_right - theorem Turing.Tape.mk'_right₀ - def Turing.Tape.mk₁ - def Turing.Tape.mk₂ - def Turing.Tape.move - theorem Turing.Tape.move_left_mk' - theorem Turing.Tape.move_left_nth - theorem Turing.Tape.move_left_right - theorem Turing.Tape.move_right_left - theorem Turing.Tape.move_right_mk' - theorem Turing.Tape.move_right_n_head - theorem Turing.Tape.move_right_nth - def Turing.Tape.nth - theorem Turing.Tape.nth_zero - def Turing.Tape.right₀ - theorem Turing.Tape.right₀_nth - def Turing.Tape.write - theorem Turing.Tape.write_mk' - theorem Turing.Tape.write_move_right_n - theorem Turing.Tape.write_nth - theorem Turing.Tape.write_self - structure Turing.Tape - def Turing.proj - theorem Turing.proj_map_nth 2025-01-16 16:08:09 0d37846 feat(Data/Finset/Card): add `InjOn` and `SurjOn` versions of finset cardinality lemmas (#20753) These lemmas are useful for dot notation, and help the interface between Set predicates and Finset cardinality. In this PR we: - Add two new lemmas for non-dependent functions, spelled with Set predicates - Use them to golf the dependent versions and improve readability Useful from the disproof of the Aharoni–Korman conjecture, https://github.com/leanprover-community/mathlib4/pull/20082. ESTIMATED CHANGES Modified Mathlib/Data/Finset/Card.lean + theorem Finset.injOn_of_surjOn_of_card_le + theorem Finset.surjOn_of_injOn_of_card_le 2025-01-16 16:08:08 78512f5 feat(Order/WellFoundedSet): add convenience constructors for IsWF and IsPWO for WellFoundedLT types (#20752) A useful lemma from the disproof of the Aharoni–Korman conjecture, https://github.com/leanprover-community/mathlib4/pull/20082. While these are easy to inline, they are hard to discover for an end user, since `WellFoundedLT` is never mentioned in this file. As such, this change improves discoverability, especially with `exact?`. ESTIMATED CHANGES Modified Mathlib/Order/WellFoundedSet.lean + theorem Set.IsPWO.of_linearOrder + theorem Set.IsWF.of_wellFoundedLT 2025-01-16 15:33:23 1e69b5a feat(Set/Finite): a set is finite if its image and fibers are finite (#20751) A useful lemma from the disproof of the Aharoni–Korman conjecture, #20082. Note this does not seem to follow from any of the existing preimage finiteness lemmas. ESTIMATED CHANGES Modified Mathlib/Data/Set/Finite/Lattice.lean + theorem Set.Finite.of_finite_fibers 2025-01-16 12:40:25 94099b4 chore: cleanup .gitignore files (#20795) ESTIMATED CHANGES Modified .gitignore Modified DownstreamTest/.gitignore 2025-01-16 12:40:23 84b31f6 feat(Topology/Group/Profinite): Profinite group is limit of finite group (#16992) Prove that any profinite group is limit of finite groups. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Group/Subgroup/Basic.lean + theorem Subgroup.normal_iInf_normal Modified Mathlib/Topology/Algebra/Category/ProfiniteGrp/Basic.lean Added Mathlib/Topology/Algebra/Category/ProfiniteGrp/Limits.lean + theorem ProfiniteGrp.denseRange_toLimit + def ProfiniteGrp.toFiniteQuotientFunctor + def ProfiniteGrp.toLimit + def ProfiniteGrp.toLimit_fun + theorem ProfiniteGrp.toLimit_fun_continuous + theorem ProfiniteGrp.toLimit_injective + theorem ProfiniteGrp.toLimit_surjective Modified Mathlib/Topology/Algebra/ClopenNhdofOne.lean + theorem ProfiniteGrp.exist_openNormalSubgroup_sub_open_nhd_of_one Modified Mathlib/Topology/Algebra/OpenSubgroup.lean 2025-01-16 12:28:53 71e670b feat(Combinatorics/SimpleGraph): vertices in cycles (#20602) This adds various lemmas on vertices in cycles: Non-equality, and the exact neighbors and size of the neighborSet, along with some smaller supporting lemmas for walks. In preparation for Tutte's theorem. ESTIMATED CHANGES Modified Mathlib/Combinatorics/SimpleGraph/Connectivity/Subgraph.lean + theorem SimpleGraph.Walk.IsCycle.ncard_neighborSet_toSubgraph_eq_two + theorem SimpleGraph.Walk.IsCycle.neighborSet_toSubgraph_endpoint + theorem SimpleGraph.Walk.IsCycle.neighborSet_toSubgraph_internal + theorem SimpleGraph.Walk.toSubgraph_adj_penultimate + theorem SimpleGraph.Walk.toSubgraph_adj_snd Modified Mathlib/Combinatorics/SimpleGraph/Path.lean + theorem SimpleGraph.Walk.IsCycle.getVert_endpoint_iff + theorem SimpleGraph.Walk.IsCycle.getVert_injOn' + theorem SimpleGraph.Walk.IsCycle.getVert_injOn + theorem SimpleGraph.Walk.IsCycle.getVert_sub_one_neq_getVert_add_one + theorem SimpleGraph.Walk.IsCycle.snd_ne_penultimate + theorem SimpleGraph.Walk.not_nil_of_isCycle_cons Modified Mathlib/Combinatorics/SimpleGraph/Walk.lean + theorem SimpleGraph.Walk.not_nil_of_tail_not_nil 2025-01-16 12:02:06 a735a04 CI: merge `bot_fix_style` actions (#20789) This PR continues the series of merging CI actions that are triggered by `comment`s, `review`s and `review_comment`s. Specifically, we merge here the 3 `bot fix style` actions into a single one. #20791 tests that the new action works as intended. ESTIMATED CHANGES Added .github/workflows/bot_fix_style.yaml Deleted .github/workflows/bot_fix_style_comment.yaml Deleted .github/workflows/bot_fix_style_review.yaml Deleted .github/workflows/bot_fix_style_review_comment.yaml Modified .github/workflows/lint_and_suggest_pr.yml 2025-01-16 11:16:49 50b66b2 chore: survey of simp porting notes (#20787) I've removed many porting notes that had resulted from the `simpNF` linter. I've left in place all porting notes about removing `@[simp]` but where the proof is `rfl` or `Iff.rfl`. ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/Equiv.lean Modified Mathlib/Algebra/Algebra/Hom.lean Modified Mathlib/Algebra/Algebra/Operations.lean Modified Mathlib/Algebra/Algebra/Subalgebra/Basic.lean Modified Mathlib/Algebra/Category/Grp/Preadditive.lean Modified Mathlib/Algebra/Category/ModuleCat/Adjunctions.lean Modified Mathlib/Algebra/Group/Subgroup/Finite.lean +/- theorem Subgroup.card_bot Modified Mathlib/Algebra/MonoidAlgebra/Defs.lean Modified Mathlib/Algebra/Order/Interval/Basic.lean Modified Mathlib/Algebra/Polynomial/AlgebraMap.lean Modified Mathlib/Algebra/Quaternion.lean Modified Mathlib/Algebra/Star/Subalgebra.lean Modified Mathlib/Analysis/InnerProductSpace/Basic.lean Modified Mathlib/CategoryTheory/Limits/Shapes/BinaryProducts.lean - theorem CategoryTheory.Limits.coprod.desc_comp_assoc Modified Mathlib/CategoryTheory/Preadditive/Basic.lean Modified Mathlib/Data/Complex/Exponential.lean Modified Mathlib/Data/DFinsupp/BigOperators.lean Modified Mathlib/Data/ENat/Basic.lean Modified Mathlib/Data/Finset/MulAntidiagonal.lean Modified Mathlib/Data/Finset/Powerset.lean +/- theorem Finset.empty_mem_powerset +/- theorem Finset.mem_powerset_self Modified Mathlib/Data/Finsupp/Basic.lean Modified Mathlib/Data/Finsupp/Single.lean Modified Mathlib/Data/Fintype/Basic.lean +/- theorem Finset.mem_univ_val Modified Mathlib/Data/Int/Interval.lean Modified Mathlib/Data/List/Rotate.lean +/- theorem List.rotate'_nil +/- theorem List.rotate_cons_succ Modified Mathlib/Data/Multiset/FinsetOps.lean +/- theorem Multiset.mem_ndinsert_self Modified Mathlib/Data/Multiset/Pi.lean Modified Mathlib/Data/Nat/Defs.lean Modified Mathlib/Data/PNat/Interval.lean Modified Mathlib/Data/Seq/Seq.lean Modified Mathlib/Geometry/Manifold/Algebra/LeftInvariantDerivation.lean Modified Mathlib/GroupTheory/Congruence/Defs.lean +/- theorem Con.conGen_idem Modified Mathlib/GroupTheory/GroupAction/Quotient.lean +/- theorem MulAction.Quotient.coe_smul_out Modified Mathlib/LinearAlgebra/Dimension/Constructions.lean Modified Mathlib/Logic/Denumerable.lean Modified Mathlib/Logic/Equiv/PartialEquiv.lean Modified Mathlib/Order/BoundedOrder/Lattice.lean Modified Mathlib/RingTheory/Polynomial/Basic.lean +/- theorem Polynomial.coeff_restriction' +/- theorem Polynomial.coeff_toSubring' Modified Mathlib/SetTheory/Cardinal/Basic.lean Modified Mathlib/SetTheory/Game/Basic.lean Modified Mathlib/SetTheory/Game/Birthday.lean Modified Mathlib/SetTheory/Surreal/Dyadic.lean Modified Mathlib/Tactic/NormNum/GCD.lean Modified Mathlib/Topology/Algebra/InfiniteSum/Basic.lean Modified Mathlib/Topology/Algebra/Module/Equiv.lean Modified Mathlib/Topology/Category/TopCat/Basic.lean Modified Mathlib/Topology/Category/UniformSpace.lean Modified Mathlib/Topology/Compactification/OnePoint.lean Modified Mathlib/Topology/Constructions.lean Modified Mathlib/Topology/FiberBundle/Basic.lean Modified Mathlib/Topology/Gluing.lean Modified Mathlib/Topology/LocalAtTarget.lean Modified Mathlib/Topology/MetricSpace/Dilation.lean Modified Mathlib/Topology/MetricSpace/GromovHausdorff.lean Modified Mathlib/Topology/Sets/Compacts.lean Modified Mathlib/Topology/Sets/Opens.lean Modified Mathlib/Topology/Sheaves/LocalPredicate.lean Modified Mathlib/Topology/Sheaves/Presheaf.lean Modified Mathlib/Topology/Sheaves/Skyscraper.lean Modified Mathlib/Topology/UniformSpace/Equiv.lean Modified Mathlib/Topology/UniformSpace/OfCompactT2.lean 2025-01-16 10:39:42 3aacbc8 style: correct `MaximalSpectrum.IsMaximal` for style conformance. (#20792) Rename `MaximalSpectrum.IsMaximal` to `MaximalSpectrum.isMaximal` and add deprecation note. ESTIMATED CHANGES Modified Mathlib/RingTheory/DedekindDomain/Ideal.lean Modified Mathlib/RingTheory/Spectrum/Maximal/Basic.lean Modified Mathlib/RingTheory/Spectrum/Maximal/Defs.lean Modified Mathlib/RingTheory/Spectrum/Maximal/Topology.lean 2025-01-16 10:39:41 b73051c feat: split Mathlib/Algebra/Order/Ring/Unbundled/Nonneg (#20703) Motivated by the [longest pole](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/The.20long.20pole.20in.20mathlib/near/493326062). ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Order/GroupWithZero/Bounds.lean + theorem BddAbove.range_comp_of_nonneg + theorem bddAbove_range_mul Renamed Mathlib/Algebra/Order/Ring/Unbundled/Nonneg.lean to Mathlib/Algebra/Order/Nonneg/Basic.lean - theorem BddAbove.range_comp_of_nonneg - theorem Nonneg.bot_eq - theorem bddAbove_range_mul Modified Mathlib/Algebra/Order/Nonneg/Floor.lean Added Mathlib/Algebra/Order/Nonneg/Lattice.lean + theorem Nonneg.bot_eq Modified Mathlib/Algebra/Order/Nonneg/Ring.lean Modified Mathlib/Data/NNRat/Defs.lean Modified Mathlib/GroupTheory/Commutator/Basic.lean 2025-01-16 10:00:34 e9450cd refactor: make `CanonicallyOrdered...` mixin (#17444) This PR is the first step to migrate from semibundled ordered algebraic typeclasses to mixin typeclasses. This will significantly reduce the number of typeclasses and improve performance. See #20676. This PR introduces 2 typeclasses `CanonicallyOrderedAdd` `CanonicallyOrderedMul` and deprecates legacy semibundled `CanonicallyOrdered*` typeclasses. ESTIMATED CHANGES Modified Archive/OxfordInvariants/Summer2021/Week3P1.lean Modified Counterexamples/CanonicallyOrderedCommSemiringTwoMul.lean Modified Mathlib.lean Modified Mathlib/Algebra/Associated/OrderedCommMonoid.lean Modified Mathlib/Algebra/DirectSum/Internal.lean Modified Mathlib/Algebra/GeomSum.lean +/- theorem geom_sum_lt +/- theorem geom_sum_of_lt_one +/- theorem geom_sum_of_one_lt +/- theorem geom₂_sum_of_gt +/- theorem geom₂_sum_of_lt Modified Mathlib/Algebra/Lie/Subalgebra.lean Modified Mathlib/Algebra/Module/Submodule/Pointwise.lean Modified Mathlib/Algebra/Order/Antidiag/Finsupp.lean Modified Mathlib/Algebra/Order/Antidiag/Pi.lean Modified Mathlib/Algebra/Order/Antidiag/Prod.lean Modified Mathlib/Algebra/Order/BigOperators/Group/Finset.lean Modified Mathlib/Algebra/Order/BigOperators/Group/List.lean Modified Mathlib/Algebra/Order/BigOperators/Group/Multiset.lean Modified Mathlib/Algebra/Order/BigOperators/Ring/Finset.lean + theorem CanonicallyOrderedAdd.prod_pos - theorem CanonicallyOrderedCommSemiring.prod_pos Modified Mathlib/Algebra/Order/BigOperators/Ring/List.lean + theorem CanonicallyOrderedAdd.list_prod_pos - theorem CanonicallyOrderedCommSemiring.list_prod_pos Modified Mathlib/Algebra/Order/BigOperators/Ring/Multiset.lean + theorem CanonicallyOrderedAdd.multiset_prod_pos - theorem CanonicallyOrderedCommSemiring.multiset_prod_pos Added Mathlib/Algebra/Order/Field/Canonical.lean + structure CanonicallyLinearOrderedSemifield + theorem tsub_div Deleted Mathlib/Algebra/Order/Field/Canonical/Basic.lean - theorem tsub_div Deleted Mathlib/Algebra/Order/Field/Canonical/Defs.lean Modified Mathlib/Algebra/Order/Field/Rat.lean Modified Mathlib/Algebra/Order/Group/Finset.lean Modified Mathlib/Algebra/Order/Group/Indicator.lean Modified Mathlib/Algebra/Order/Group/Nat.lean Modified Mathlib/Algebra/Order/GroupWithZero/Canonical.lean Modified Mathlib/Algebra/Order/Kleene.lean Modified Mathlib/Algebra/Order/Monoid/Canonical/Basic.lean Modified Mathlib/Algebra/Order/Monoid/Canonical/Defs.lean + structure CanonicallyLinearOrderedAddCommMonoid + structure CanonicallyLinearOrderedCommMonoid + structure CanonicallyOrderedAddCommMonoid + structure CanonicallyOrderedCommMonoid +/- theorem NeZero.of_gt +/- theorem NeZero.pos - theorem le_mul_left - theorem le_mul_right +/- theorem le_self_mul + theorem one_lt_of_gt - theorem pos_of_gt Modified Mathlib/Algebra/Order/Monoid/Prod.lean Modified Mathlib/Algebra/Order/Monoid/TypeTags.lean Modified Mathlib/Algebra/Order/Monoid/WithTop.lean Modified Mathlib/Algebra/Order/Nonneg/Field.lean Modified Mathlib/Algebra/Order/Nonneg/Ring.lean Modified Mathlib/Algebra/Order/Pi.lean Modified Mathlib/Algebra/Order/Ring/Canonical.lean + theorem CanonicallyOrderedAdd.pow_pos - theorem CanonicallyOrderedCommSemiring.pow_pos + structure CanonicallyOrderedCommSemiring +/- theorem Odd.pos +/- theorem mul_self_tsub_mul_self +/- theorem mul_tsub_one +/- theorem tsub_mul +/- theorem tsub_one_mul Modified Mathlib/Algebra/Order/Ring/Defs.lean Modified Mathlib/Algebra/Order/Ring/Finset.lean +/- theorem Nat.cast_finsetSup Modified Mathlib/Algebra/Order/Ring/Nat.lean Modified Mathlib/Algebra/Order/Ring/WithTop.lean Modified Mathlib/Algebra/Order/Sub/Basic.lean Modified Mathlib/Algebra/Order/Sub/Defs.lean Modified Mathlib/Algebra/Order/Sub/WithTop.lean Modified Mathlib/Algebra/PUnitInstances/Order.lean Modified Mathlib/Analysis/Analytic/Basic.lean Modified Mathlib/Analysis/Calculus/LocalExtr/Polynomial.lean Modified Mathlib/Analysis/SumOverResidueClass.lean Modified Mathlib/Combinatorics/Additive/AP/Three/Defs.lean Modified Mathlib/Combinatorics/Enumerative/Bell.lean Modified Mathlib/Combinatorics/SetFamily/HarrisKleitman.lean Modified Mathlib/Combinatorics/SimpleGraph/Regularity/Equitabilise.lean Modified Mathlib/Computability/Halting.lean Modified Mathlib/Computability/Primrec.lean Modified Mathlib/Data/DFinsupp/Interval.lean Modified Mathlib/Data/DFinsupp/Lex.lean Modified Mathlib/Data/DFinsupp/Order.lean +/- theorem DFinsupp.single_le_iff Modified Mathlib/Data/DFinsupp/WellFounded.lean Modified Mathlib/Data/ENNReal/Basic.lean Modified Mathlib/Data/ENNReal/Operations.lean Modified Mathlib/Data/ENat/Basic.lean Modified Mathlib/Data/Finite/Card.lean Modified Mathlib/Data/Finsupp/Interval.lean Modified Mathlib/Data/Finsupp/Lex.lean Modified Mathlib/Data/Finsupp/Order.lean Modified Mathlib/Data/Finsupp/Weight.lean Modified Mathlib/Data/Finsupp/WellFounded.lean Modified Mathlib/Data/List/EditDistance/Bounds.lean Modified Mathlib/Data/List/EditDistance/Estimator.lean Modified Mathlib/Data/Multiset/OrderedMonoid.lean Modified Mathlib/Data/NNRat/Floor.lean Modified Mathlib/Data/NNRat/Order.lean Modified Mathlib/Data/NNReal/Basic.lean Modified Mathlib/Data/NNReal/Defs.lean Modified Mathlib/Data/Nat/BitIndices.lean Modified Mathlib/Data/Nat/Cast/Order/Ring.lean +/- theorem Nat.cast_tsub Modified Mathlib/Data/Nat/Cast/SetInterval.lean Modified Mathlib/Data/Nat/Dist.lean Modified Mathlib/Data/Nat/PartENat.lean Modified Mathlib/Data/Nat/Squarefree.lean Modified Mathlib/Data/Nat/SuccPred.lean Modified Mathlib/Data/Nat/Upto.lean Modified Mathlib/Data/Nat/WithBot.lean Modified Mathlib/Data/PNat/Basic.lean Modified Mathlib/Data/PNat/Factors.lean Modified Mathlib/Data/Rat/Floor.lean Modified Mathlib/Data/Rat/Star.lean Modified Mathlib/Data/Set/Card.lean Modified Mathlib/Data/Set/Semiring.lean Modified Mathlib/Dynamics/Flow.lean +/- theorem IsFwInvariant.isInvariant +/- theorem isFwInvariant_iff_isInvariant Modified Mathlib/MeasureTheory/Constructions/Pi.lean Modified Mathlib/MeasureTheory/Group/Arithmetic.lean +/- theorem measurableSet_eq_fun' Modified Mathlib/MeasureTheory/Measure/Prod.lean Modified Mathlib/Order/Filter/Germ/OrderedMonoid.lean Modified Mathlib/Order/Interval/Finset/Nat.lean Modified Mathlib/Order/JordanHolder.lean Modified Mathlib/Order/RelSeries.lean Modified Mathlib/Probability/StrongLaw.lean Modified Mathlib/RingTheory/GradedAlgebra/Basic.lean Modified Mathlib/RingTheory/GradedAlgebra/HomogeneousIdeal.lean Modified Mathlib/RingTheory/GradedAlgebra/Noetherian.lean Modified Mathlib/RingTheory/Multiplicity.lean Modified Mathlib/RingTheory/MvPolynomial/WeightedHomogeneous.lean +/- theorem MvPolynomial.weightedDegree_eq_zero_iff +/- theorem MvPolynomial.weightedHomogeneousComponent_zero Modified Mathlib/SetTheory/Cardinal/Basic.lean Modified Mathlib/Tactic/Positivity/Core.lean Modified Mathlib/Topology/Algebra/InfiniteSum/Order.lean +/- theorem hasProd_of_isLUB Modified Mathlib/Topology/MetricSpace/ThickenedIndicator.lean Modified scripts/noshake.json 2025-01-16 07:44:09 0ec82d5 feat: generalise `PerfectPairing.restrictScalarsField` (#20442) Also introduce the new definition `PerfectPairing.IsPerfectCompl` to simplify statements. ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/PerfectPairing/Basic.lean + structure PerfectPairing.IsPerfectCompl + theorem PerfectPairing.mk_apply_apply Modified Mathlib/LinearAlgebra/PerfectPairing/Restrict.lean +/- def PerfectPairing.restrict +/- def PerfectPairing.restrictScalarsField + theorem PerfectPairing.restrictScalarsField_apply_apply + theorem PerfectPairing.restrict_apply_apply Modified Mathlib/LinearAlgebra/Span/Basic.lean + theorem LinearMap.BilinMap.apply_apply_mem_of_mem_span + def Submodule.inclusionSpan + theorem Submodule.injective_inclusionSpan +/- theorem Submodule.span_le_restrictScalars + theorem Submodule.span_range_inclusionSpan + theorem Submodule.span_range_inclusion_eq_top + theorem Submodule.span_range_inclusion_restrictScalars_eq_top +/- theorem Submodule.span_span_of_tower +/- theorem Submodule.span_subset_span Modified Mathlib/LinearAlgebra/Span/Defs.lean +/- theorem Submodule.span_induction₂ 2025-01-16 07:31:27 ad0b883 feat: replace statement that specific functions are C^ω by the fact that they are C^n for all n (#20769) This is equivalent mathematically, but in applications the latter form is often more convenient. For instance, when proving that the composition is C^n, it's better to have right away the fact that the function is C^n. ESTIMATED CHANGES Modified Mathlib/Analysis/Calculus/ContDiff/Basic.lean +/- theorem contDiff_prodAssoc +/- theorem contDiff_prodAssoc_symm Modified Mathlib/Analysis/Complex/UpperHalfPlane/Manifold.lean +/- theorem UpperHalfPlane.contMDiffAt_ofComplex +/- theorem UpperHalfPlane.contMDiff_coe Modified Mathlib/Geometry/Manifold/Instances/Sphere.lean +/- theorem contDiffOn_stereoToFun +/- theorem contDiff_stereoInvFunAux +/- theorem contMDiff_circleExp +/- theorem contMDiff_coe_sphere +/- theorem contMDiff_neg_sphere Modified Mathlib/Geometry/Manifold/VectorBundle/Basic.lean 2025-01-16 05:31:27 eec581e feat(Algebra/Ring): generalise and extend material about sums of squares and semireal rings (#16094) * Generalise definition of a semireal ring, as discussed at https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/Formally.20real.20fields * Add facts about multiplicative structure of sums of squares -- preserved under multiplication, form a semiring, set of sums of squares is the semiring generated by the squares. * Add some lemmas to simpset * Update documentation Deletions: * `mem_sumSq_of_isSquare` (statement changed to `IsSquare.isSumSq`) ESTIMATED CHANGES Modified Mathlib/Algebra/Ring/Semireal/Defs.lean + theorem IsSemireal.not_isSumSq_neg_one Modified Mathlib/Algebra/Ring/SumsOfSquares.lean + theorem IsSquare.isSumSq + theorem IsSumSq.mul + theorem IsSumSq.mul_self + theorem IsSumSq.prod + theorem IsSumSq.rec' + theorem IsSumSq.sum + theorem IsSumSq.sum_isSquare + theorem NonUnitalSubsemiring.closure_isSquare + theorem NonUnitalSubsemiring.coe_sumSq + theorem NonUnitalSubsemiring.mem_sumSq + def NonUnitalSubsemiring.sumSq + theorem NonUnitalSubsemiring.sumSq_toAddSubmonoid + theorem Subsemiring.closure_isSquare + theorem Subsemiring.coe_sumSq + theorem Subsemiring.mem_sumSq + def Subsemiring.sumSq + theorem Subsemiring.sumSq_toNonUnitalSubsemiring - theorem mem_sumSq_of_isSquare 2025-01-16 01:18:50 918ca88 fix(PR summary): use a file to store possibly long messages (#20761) May be a fix for the [issue reported on Zulip](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Strange.20error.20in.20CI). See #20767 for a successful run, where #20621 had problems. ESTIMATED CHANGES Modified .github/workflows/PR_summary.yml Modified scripts/update_PR_comment.sh 2025-01-16 00:33:41 806f257 chore: move Algebra/Group/ZeroOne/ to Data/ (#20622) Minor cleanup on the path to reducing dependencies from Data/ on other top-level directories. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Expr.lean Modified Mathlib/Algebra/Group/Defs.lean Modified Mathlib/Algebra/NeZero.lean Modified Mathlib/Algebra/Order/Pi.lean Modified Mathlib/Algebra/Order/ZeroLEOne.lean Added Mathlib/Algebra/ZeroOne/Lemmas.lean + theorem dite_le_one + theorem dite_lt_one + theorem ite_le_one + theorem ite_lt_one + theorem one_le_dite + theorem one_le_ite + theorem one_lt_dite + theorem one_lt_ite Modified Mathlib/Data/Num/Basic.lean Renamed Mathlib/Algebra/Group/ZeroOne.lean to Mathlib/Data/One/Defs.lean Modified Mathlib/Data/PNat/Defs.lean Modified Mathlib/Data/Set/Basic.lean Modified Mathlib/Data/Set/SymmDiff.lean Modified Mathlib/Order/Basic.lean - theorem dite_le_one - theorem dite_lt_one - theorem ite_le_one - theorem ite_lt_one - theorem one_le_dite - theorem one_le_ite - theorem one_lt_dite - theorem one_lt_ite Modified Mathlib/Tactic/Bound/Attribute.lean +/- def Mathlib.Tactic.Bound.declPriority +/- def Mathlib.Tactic.Bound.ineqPriority +/- def Mathlib.Tactic.Bound.scoreToConfig +/- def Mathlib.Tactic.Bound.typePriority Modified MathlibTest/byContra.lean Modified scripts/noshake.json 2025-01-15 23:14:29 0c82aa8 refactor: move files from `AlgebraicGeometry/PrimeSpectrum` to `RingTheory/Spectrum/Prime` (#20778) Move files from `AlgebraicGeometry/PrimeSpectrum` to `RingTheory/Spectrum/Prime` with renaming `Basic.lean` to `Topology.lean` as discussed [here](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Maximal.20spectrum.20of.20a.20ring). Move `RingTheory/Spectrum/Prime/Maximal.lean` to `RingTheory/Spectrum/Maximal/Topology.lean` for consistency. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/AlgebraicGeometry/Morphisms/SurjectiveOnStalks.lean Modified Mathlib/AlgebraicGeometry/Noetherian.lean Modified Mathlib/AlgebraicGeometry/StructureSheaf.lean Modified Mathlib/RingTheory/Spectrum/Maximal/Basic.lean Renamed Mathlib/AlgebraicGeometry/PrimeSpectrum/Maximal.lean to Mathlib/RingTheory/Spectrum/Maximal/Topology.lean Modified Mathlib/RingTheory/Spectrum/Prime/Basic.lean Modified Mathlib/RingTheory/Spectrum/Prime/Defs.lean Renamed Mathlib/AlgebraicGeometry/PrimeSpectrum/FreeLocus.lean to Mathlib/RingTheory/Spectrum/Prime/FreeLocus.lean Renamed Mathlib/AlgebraicGeometry/PrimeSpectrum/IsOpenComapC.lean to Mathlib/RingTheory/Spectrum/Prime/IsOpenComapC.lean Renamed Mathlib/AlgebraicGeometry/PrimeSpectrum/Jacobson.lean to Mathlib/RingTheory/Spectrum/Prime/Jacobson.lean Renamed Mathlib/AlgebraicGeometry/PrimeSpectrum/Module.lean to Mathlib/RingTheory/Spectrum/Prime/Module.lean Renamed Mathlib/AlgebraicGeometry/PrimeSpectrum/Noetherian.lean to Mathlib/RingTheory/Spectrum/Prime/Noetherian.lean Renamed Mathlib/AlgebraicGeometry/PrimeSpectrum/Polynomial.lean to Mathlib/RingTheory/Spectrum/Prime/Polynomial.lean Renamed Mathlib/AlgebraicGeometry/PrimeSpectrum/TensorProduct.lean to Mathlib/RingTheory/Spectrum/Prime/TensorProduct.lean Renamed Mathlib/AlgebraicGeometry/PrimeSpectrum/Basic.lean to Mathlib/RingTheory/Spectrum/Prime/Topology.lean Modified Mathlib/RingTheory/Support.lean Modified Mathlib/RingTheory/Unramified/Locus.lean 2025-01-15 22:33:22 79a5bf8 chore: split file `LinearAlgebra.PerfectPairing` (#20780) In preparation for some new material about restrictions of perfect pairings, it is useful first to split this file. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/LinearAlgebra/PerfectPairing/Basic.lean + def IsReflexive.toPerfectPairingDual + theorem IsReflexive.toPerfectPairingDual_apply + theorem LinearEquiv.coe_toLinearMap_flip + def LinearEquiv.flip + theorem LinearEquiv.flip_apply + theorem LinearEquiv.flip_flip + theorem LinearEquiv.isReflexive_of_equiv_dual_of_isReflexive + theorem LinearEquiv.symm_flip + def LinearEquiv.toPerfectPairing + theorem LinearEquiv.trans_dualMap_symm_flip + theorem PerfectPairing.apply_apply_toDualRight_symm + theorem PerfectPairing.apply_toDualLeft_symm_apply + theorem PerfectPairing.bijective_toDualRight_symm_toDualLeft + def PerfectPairing.dual + theorem PerfectPairing.finrank_eq + theorem PerfectPairing.flip_apply_apply + theorem PerfectPairing.flip_flip + def PerfectPairing.mkOfInjective' + def PerfectPairing.mkOfInjective + theorem PerfectPairing.reflexive_left + theorem PerfectPairing.reflexive_right + def PerfectPairing.toDualLeft + theorem PerfectPairing.toDualLeft_apply + theorem PerfectPairing.toDualLeft_of_toDualRight_symm + def PerfectPairing.toDualRight + theorem PerfectPairing.toDualRight_apply + theorem PerfectPairing.toDualRight_symm_comp_toDualLeft + theorem PerfectPairing.toDualRight_symm_toDualLeft + theorem PerfectPairing.toLin_apply + structure PerfectPairing + theorem Submodule.dualAnnihilator_map_linearEquiv_flip_symm + theorem Submodule.dualCoannihilator_map_linearEquiv_flip + theorem Submodule.map_dualAnnihilator_linearEquiv_flip_symm + theorem Submodule.map_dualCoannihilator_linearEquiv_flip Renamed Mathlib/LinearAlgebra/PerfectPairing.lean to Mathlib/LinearAlgebra/PerfectPairing/Restrict.lean - def IsReflexive.toPerfectPairingDual - theorem IsReflexive.toPerfectPairingDual_apply - theorem LinearEquiv.coe_toLinearMap_flip - def LinearEquiv.flip - theorem LinearEquiv.flip_apply - theorem LinearEquiv.flip_flip - theorem LinearEquiv.isReflexive_of_equiv_dual_of_isReflexive - theorem LinearEquiv.symm_flip - def LinearEquiv.toPerfectPairing - theorem LinearEquiv.trans_dualMap_symm_flip - theorem PerfectPairing.apply_apply_toDualRight_symm - theorem PerfectPairing.apply_toDualLeft_symm_apply - theorem PerfectPairing.bijective_toDualRight_symm_toDualLeft - def PerfectPairing.dual - theorem PerfectPairing.finrank_eq - theorem PerfectPairing.flip_apply_apply - theorem PerfectPairing.flip_flip - def PerfectPairing.mkOfInjective' - def PerfectPairing.mkOfInjective - theorem PerfectPairing.reflexive_left - theorem PerfectPairing.reflexive_right - def PerfectPairing.toDualLeft - theorem PerfectPairing.toDualLeft_apply - theorem PerfectPairing.toDualLeft_of_toDualRight_symm - def PerfectPairing.toDualRight - theorem PerfectPairing.toDualRight_apply - theorem PerfectPairing.toDualRight_symm_comp_toDualLeft - theorem PerfectPairing.toDualRight_symm_toDualLeft - theorem PerfectPairing.toLin_apply - structure PerfectPairing - theorem Submodule.dualAnnihilator_map_linearEquiv_flip_symm - theorem Submodule.dualCoannihilator_map_linearEquiv_flip - theorem Submodule.map_dualAnnihilator_linearEquiv_flip_symm - theorem Submodule.map_dualCoannihilator_linearEquiv_flip Modified Mathlib/LinearAlgebra/RootSystem/Defs.lean 2025-01-15 22:33:20 34b0940 chore: typos in Fderiv instead of FDeriv (#20775) ESTIMATED CHANGES Modified Mathlib/Analysis/Calculus/ContDiff/Basic.lean + theorem ContDiffWithinAt.iteratedFDerivWithin_right - theorem ContDiffWithinAt.iteratedFderivWithin_right Modified Mathlib/Analysis/Calculus/FDeriv/Bilinear.lean Modified Mathlib/Analysis/Calculus/Rademacher.lean + theorem LipschitzWith.hasFDerivAt_of_hasLineDerivAt_of_closure - theorem LipschitzWith.hasFderivAt_of_hasLineDerivAt_of_closure Modified Mathlib/Geometry/Manifold/MFDeriv/FDeriv.lean 2025-01-15 21:51:10 42d20c7 chore(Algebra/Group/Equiv): split into `Defs` and `Basic` (#20712) While looking at the import graph for `Mathlib.Data.NNRat.Defs`, I noticed that there isn't a `Defs` file for group equivs, while there is one for linear equivs. With this PR, the design of `Algebra/Group/Equiv` matches `Algebra/Module/Equiv` better. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Category/Semigrp/Basic.lean Modified Mathlib/Algebra/Free.lean Modified Mathlib/Algebra/Group/Equiv/Basic.lean - structure AddEquiv - theorem EmbeddingLike.map_eq_one_iff - theorem EmbeddingLike.map_ne_one_iff - def MonoidHom.toMulEquiv - def MulEquiv.Simps.symm_apply - theorem MulEquiv.apply_eq_iff_eq - theorem MulEquiv.apply_eq_iff_symm_apply - theorem MulEquiv.apply_symm_apply - theorem MulEquiv.coe_mk - theorem MulEquiv.coe_monoidHom_comp_coe_monoidHom_symm - theorem MulEquiv.coe_monoidHom_refl - theorem MulEquiv.coe_monoidHom_symm_comp_coe_monoidHom - theorem MulEquiv.coe_monoidHom_trans - theorem MulEquiv.coe_refl - theorem MulEquiv.coe_toEquiv - theorem MulEquiv.coe_toEquiv_symm - theorem MulEquiv.coe_toMonoidHom - theorem MulEquiv.coe_toMulHom - theorem MulEquiv.coe_trans - theorem MulEquiv.comp_left_injective - theorem MulEquiv.comp_right_injective - theorem MulEquiv.comp_symm_eq - theorem MulEquiv.eq_comp_symm - theorem MulEquiv.eq_symm_apply - theorem MulEquiv.eq_symm_comp - theorem MulEquiv.equivLike_inv_eq_symm - theorem MulEquiv.ext - theorem MulEquiv.invFun_eq_symm - theorem MulEquiv.map_ne_one_iff - def MulEquiv.mk' - theorem MulEquiv.mk_coe' - theorem MulEquiv.mk_coe - theorem MulEquiv.ofBijective_apply_symm_apply - def MulEquiv.refl - theorem MulEquiv.refl_apply - theorem MulEquiv.refl_symm - theorem MulEquiv.self_comp_symm - theorem MulEquiv.self_trans_symm - def MulEquiv.symm - theorem MulEquiv.symm_apply_apply - theorem MulEquiv.symm_apply_eq - theorem MulEquiv.symm_bijective - theorem MulEquiv.symm_comp_eq - theorem MulEquiv.symm_comp_self - theorem MulEquiv.symm_map_mul - theorem MulEquiv.symm_mk - theorem MulEquiv.symm_symm - theorem MulEquiv.symm_trans_apply - theorem MulEquiv.symm_trans_self - theorem MulEquiv.toEquiv_eq_coe - theorem MulEquiv.toEquiv_injective - theorem MulEquiv.toEquiv_symm - theorem MulEquiv.toFun_eq_coe - def MulEquiv.toMonoidHom - theorem MulEquiv.toMonoidHom_eq_coe - theorem MulEquiv.toMonoidHom_injective - theorem MulEquiv.toMulHom_eq_coe - def MulEquiv.trans - theorem MulEquiv.trans_apply - structure MulEquiv - theorem MulEquivClass.apply_coe_symm_apply - theorem MulEquivClass.coe_symm_apply_apply - def MulEquivClass.toMulEquiv - def MulHom.toMulEquiv Added Mathlib/Algebra/Group/Equiv/Defs.lean + structure AddEquiv + theorem EmbeddingLike.map_eq_one_iff + theorem EmbeddingLike.map_ne_one_iff + def MonoidHom.toMulEquiv + def MulEquiv.Simps.symm_apply + theorem MulEquiv.apply_eq_iff_eq + theorem MulEquiv.apply_eq_iff_symm_apply + theorem MulEquiv.apply_symm_apply + theorem MulEquiv.coe_mk + theorem MulEquiv.coe_monoidHom_comp_coe_monoidHom_symm + theorem MulEquiv.coe_monoidHom_refl + theorem MulEquiv.coe_monoidHom_symm_comp_coe_monoidHom + theorem MulEquiv.coe_monoidHom_trans + theorem MulEquiv.coe_refl + theorem MulEquiv.coe_toEquiv + theorem MulEquiv.coe_toEquiv_symm + theorem MulEquiv.coe_toMonoidHom + theorem MulEquiv.coe_toMulHom + theorem MulEquiv.coe_trans + theorem MulEquiv.comp_left_injective + theorem MulEquiv.comp_right_injective + theorem MulEquiv.comp_symm_eq + theorem MulEquiv.eq_comp_symm + theorem MulEquiv.eq_symm_apply + theorem MulEquiv.eq_symm_comp + theorem MulEquiv.equivLike_inv_eq_symm + theorem MulEquiv.ext + theorem MulEquiv.invFun_eq_symm + theorem MulEquiv.map_ne_one_iff + def MulEquiv.mk' + theorem MulEquiv.mk_coe' + theorem MulEquiv.mk_coe + theorem MulEquiv.ofBijective_apply_symm_apply + def MulEquiv.refl + theorem MulEquiv.refl_apply + theorem MulEquiv.refl_symm + theorem MulEquiv.self_comp_symm + theorem MulEquiv.self_trans_symm + def MulEquiv.symm + theorem MulEquiv.symm_apply_apply + theorem MulEquiv.symm_apply_eq + theorem MulEquiv.symm_bijective + theorem MulEquiv.symm_comp_eq + theorem MulEquiv.symm_comp_self + theorem MulEquiv.symm_map_mul + theorem MulEquiv.symm_mk + theorem MulEquiv.symm_symm + theorem MulEquiv.symm_trans_apply + theorem MulEquiv.symm_trans_self + theorem MulEquiv.toEquiv_eq_coe + theorem MulEquiv.toEquiv_injective + theorem MulEquiv.toEquiv_symm + theorem MulEquiv.toFun_eq_coe + def MulEquiv.toMonoidHom + theorem MulEquiv.toMonoidHom_eq_coe + theorem MulEquiv.toMonoidHom_injective + theorem MulEquiv.toMulHom_eq_coe + def MulEquiv.trans + theorem MulEquiv.trans_apply + structure MulEquiv + theorem MulEquivClass.apply_coe_symm_apply + theorem MulEquivClass.coe_symm_apply_apply + def MulEquivClass.toMulEquiv + def MulHom.toMulEquiv Modified Mathlib/Algebra/Group/Pi/Units.lean Modified Mathlib/Algebra/Group/ULift.lean Modified Mathlib/Algebra/Group/WithOne/Basic.lean Modified Mathlib/Algebra/GroupWithZero/Action/End.lean Modified Mathlib/Algebra/GroupWithZero/Hom.lean Modified Mathlib/Algebra/Order/Sub/Unbundled/Hom.lean Modified Mathlib/CategoryTheory/Endomorphism.lean Modified Mathlib/CategoryTheory/Groupoid/VertexGroup.lean Modified Mathlib/Deprecated/Group.lean 2025-01-15 18:22:30 5dd62b3 feat(ModularForms/QExpansion): define q-expansions (#20720) We define the q-expansion of a modular form (either as a power series or as a `FormalMultlinearSeries`), show it has radius of convergence at least 1, and show that it converges to the original form on the open unit ball. ESTIMATED CHANGES Modified Mathlib/Analysis/Complex/UpperHalfPlane/Exp.lean + theorem Function.Periodic.abs_qParam_le_of_one_half_le_im + theorem Function.Periodic.im_invQParam_pos_of_abs_lt_one +/- theorem UpperHalfPlane.abs_exp_two_pi_I_lt_one + theorem UpperHalfPlane.abs_qParam_lt_one Modified Mathlib/NumberTheory/ModularForms/QExpansion.lean - theorem Function.Periodic.abs_qParam_le_of_one_half_le_im - theorem Function.Periodic.im_invQParam_pos_of_abs_lt_one + theorem ModularFormClass.hasFPowerSeries_cuspFunction + theorem ModularFormClass.hasSum_qExpansion + theorem ModularFormClass.hasSum_qExpansion_of_abs_lt + def ModularFormClass.qExpansion + def ModularFormClass.qExpansionFormalMultilinearSeries + theorem ModularFormClass.qExpansionFormalMultilinearSeries_apply_norm + theorem ModularFormClass.qExpansionFormalMultilinearSeries_radius + theorem ModularFormClass.qExpansion_coeff 2025-01-15 17:38:06 3236701 chore: fix some slow maxHeartbeats and backwards compatibility flags (#20214) This PR fixes some `set_option maxHeartbeats` and all `set_option backwards._` situations. In these possible ways: - writing the proof in a better way - overwriting the default `aesop_cat` with a more efficient proof - simply removing an unnecessary set_option. This saves quite a bit of time. closes #12534 closes #12535 ESTIMATED CHANGES Modified Mathlib/Algebra/Homology/DifferentialObject.lean Modified Mathlib/Algebra/Polynomial/BigOperators.lean +/- theorem Polynomial.natDegree_list_sum_le Modified Mathlib/CategoryTheory/Action/Monoidal.lean Modified Mathlib/CategoryTheory/Functor/Flat.lean Modified Mathlib/CategoryTheory/Monoidal/Mod_.lean Modified Mathlib/CategoryTheory/Monoidal/Mon_.lean Modified Mathlib/CategoryTheory/Triangulated/Functor.lean Modified Mathlib/Geometry/RingedSpace/PresheafedSpace/Gluing.lean Modified Mathlib/Topology/Order/DenselyOrdered.lean 2025-01-15 16:57:43 753e8db chore: remove last few instances of `set_option tactic.skipAssignedInstances false` (#20193) This PR removes the last few instances of the backward compatability option `set_option tactic.skipAssignedInstances false`. To achieve this, the `simp` tag from `Disjoint.of_image_finset` is removed, which I think shouldn't have been a simp lemma in the first place. ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Hom/CompTypeclasses.lean Modified Mathlib/CategoryTheory/Limits/Fubini.lean Modified Mathlib/CategoryTheory/Monoidal/Free/Coherence.lean Modified Mathlib/CategoryTheory/Monoidal/Internal/Module.lean Modified Mathlib/Combinatorics/SetFamily/Shadow.lean Modified Mathlib/Data/Finset/Image.lean Modified Mathlib/Data/ZMod/Units.lean + theorem ZMod.unitsMap_val Modified Mathlib/FieldTheory/RatFunc/Basic.lean Modified Mathlib/LinearAlgebra/FiniteDimensional/Defs.lean Modified Mathlib/NumberTheory/DirichletCharacter/Basic.lean Modified Mathlib/RepresentationTheory/Rep.lean Modified Mathlib/RingTheory/Polynomial/ScaleRoots.lean Modified Mathlib/Topology/Category/TopCat/Limits/Pullbacks.lean Modified Mathlib/Topology/Order.lean 2025-01-15 15:41:33 739d777 refactor: redefine `Subrel` in terms of `α → Prop` instead of `Set α` (#20475) Currently, `Subrel r {x | p x}` interacts poorly with `simp`, as the type signature is rewritten from `↑{x | p x} → ↑{x | p x} → Prop` to `{x // p x} → {x // p x} → Prop`. This can be avoided by writing `Subrel r p` instead. ESTIMATED CHANGES Modified Mathlib/Order/InitialSeg.lean +/- def InitialSeg.codRestrict +/- theorem PrincipalSeg.apply_subrelIso +/- def PrincipalSeg.codRestrict +/- def PrincipalSeg.ofElement Modified Mathlib/Order/RelIso/Set.lean +/- def RelEmbedding.codRestrict +/- theorem Subrel.coe_inclusionEmbedding +/- def Subrel +/- theorem subrel_val Modified Mathlib/SetTheory/Cardinal/Cofinality.lean Modified Mathlib/SetTheory/Ordinal/Basic.lean Modified Mathlib/SetTheory/ZFC/Ordinal.lean 2025-01-15 15:07:12 6815c41 feat(Order/Interval/Finset): map sectL and sectR on finset intervals (#20759) Useful from the disproof of the Aharoni–Korman conjecture, https://github.com/leanprover-community/mathlib4/pull/20082. ESTIMATED CHANGES Modified Mathlib/Order/Interval/Finset/Basic.lean + theorem Finset.Icc_map_sectL + theorem Finset.Icc_map_sectR + theorem Finset.Ico_map_sectL + theorem Finset.Ico_map_sectR + theorem Finset.Ioc_map_sectL + theorem Finset.Ioc_map_sectR + theorem Finset.Ioo_map_sectL + theorem Finset.Ioo_map_sectR + theorem Finset.uIcc_map_sectL + theorem Finset.uIcc_map_sectR 2025-01-15 15:07:10 e9a89ab chore: generalize more materials about linear independence over semirings (#20497) Also add `Finsupp.linearCombination_one_tmul` and `linearIndependent_one_tmul` that connects linear independence to flatness. ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/Basis/Basic.lean Modified Mathlib/LinearAlgebra/DirectSum/Finsupp.lean + theorem Finsupp.linearCombination_one_tmul Modified Mathlib/LinearAlgebra/Finsupp/LinearCombination.lean + theorem Finsupp.linearCombination_smul Modified Mathlib/RingTheory/Adjoin/PowerBasis.lean Modified Mathlib/RingTheory/AdjoinRoot.lean Modified Mathlib/RingTheory/AlgebraTower.lean +/- theorem linearIndependent_smul Modified Mathlib/RingTheory/Flat/Basic.lean + theorem Module.Flat.linearIndependent_one_tmul Modified Mathlib/RingTheory/Localization/Module.lean +/- theorem LinearIndependent.localization Modified Mathlib/RingTheory/TensorProduct/Basic.lean +/- theorem Algebra.baseChange_lmul 2025-01-15 14:33:37 82b0bf2 chore(Data/Fin/Basic): remove mention of `Fin.succAboveCases` (#20770) This is to reflect the "TODO" that `Fin.succAboveCases` is no longer defined in `Data/Fin/Basic.lean`, but instead in `Data/Fin/Tuple/Basic.lean`. ESTIMATED CHANGES Modified Mathlib/Data/Fin/Basic.lean 2025-01-15 14:33:35 2d27601 feat(LinearAlgebra/ExteriorPower): the pairing between the exterior power of the dual and the exterior power (#18651) The same is also done for tensor powers. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/LinearAlgebra/ExteriorPower/Pairing.lean + theorem exteriorPower.alternatingMapToDual_apply_ιMulti + theorem exteriorPower.pairingDual_apply_apply_eq_one + theorem exteriorPower.pairingDual_apply_apply_eq_one_zero + theorem exteriorPower.pairingDual_ιMulti_ιMulti + theorem exteriorPower.toTensorPower_apply_ιMulti Modified Mathlib/LinearAlgebra/TensorAlgebra/ToTensorPower.lean Renamed Mathlib/LinearAlgebra/TensorPower.lean to Mathlib/LinearAlgebra/TensorPower/Basic.lean Added Mathlib/LinearAlgebra/TensorPower/Pairing.lean + theorem TensorPower.multilinearMapToDual_apply_tprod + theorem TensorPower.pairingDual_tprod_tprod 2025-01-15 14:00:47 62a32b1 feat(Order/Chain): condition for the union of chains to be a chain (#20758) Also show that monotone functions preserve chains, and use this lemma to golf another. Useful from the disproof of the Aharoni–Korman conjecture, #20082. ESTIMATED CHANGES Modified Mathlib/Order/Chain.lean + theorem Monotone.isChain_image + theorem isChain_union 2025-01-15 12:34:36 59c1bde refactor: split `RingTheory/{Prime,Maximal}Spectrum` into `RingTheory/Spectrum/{Prime,Maximal}/{Defs,Basic}` (#20772) Split off definitions of maximal and prime spectrum of a ring to be able to use it in other modules without pulling unnecessary imports. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/AlgebraicGeometry/PrimeSpectrum/Basic.lean Modified Mathlib/AlgebraicGeometry/PrimeSpectrum/Maximal.lean Modified Mathlib/RingTheory/DedekindDomain/Ideal.lean Modified Mathlib/RingTheory/KrullDimension/Basic.lean Modified Mathlib/RingTheory/Nullstellensatz.lean Renamed Mathlib/RingTheory/MaximalSpectrum.lean to Mathlib/RingTheory/Spectrum/Maximal/Basic.lean - structure MaximalSpectrum Added Mathlib/RingTheory/Spectrum/Maximal/Defs.lean + structure MaximalSpectrum Renamed Mathlib/RingTheory/PrimeSpectrum.lean to Mathlib/RingTheory/Spectrum/Prime/Basic.lean - structure PrimeSpectrum Added Mathlib/RingTheory/Spectrum/Prime/Defs.lean + structure PrimeSpectrum Modified Mathlib/RingTheory/Support.lean Modified Mathlib/RingTheory/Valuation/ValuationSubring.lean 2025-01-15 10:30:01 8a92174 feat: establish integrability and integrals of Real.log on arbitrary intervals (#20682) Establish interval integrability for Real.log on arbitrary intervals, remove an unnecessary assumption in the theorem `integral_log` which computes the integrals, and remove the theorems `integral_log_of_pos` and `integral_log_of_neg` which are now superfluous. Add theorems concerning integrability of even/odd functions; these are used in the proof and might be of general interest. Minor docu change: Add a missing section heading in Mathlib/MeasureTheory/Integral/IntervalIntegral.lean Rationale: I considered adding a new theorem rather than changing `integral_log`, but I see no value in having a theorem with unnecessary assumptions. For improved compatibility, I also considered depreciating `integral_log_of_pos` and `integral_log_of_neg` rather than removing them, but then the linter complained about unused assumptions in those theorems. Breaking change: Deleted assumptions in `integral_log`. Removed theorems `integral_log_of_pos` and `integral_log_of_neg`. These are replaced by `integral_log`, which gives the same conclusion without assumption. ESTIMATED CHANGES Modified Mathlib/Analysis/SpecialFunctions/Integrals.lean +/- theorem integral_log + theorem integral_log_from_zero + theorem integral_log_from_zero_of_pos - theorem integral_log_of_neg - theorem integral_log_of_pos + theorem intervalIntegral.intervalIntegrable_log' Modified Mathlib/MeasureTheory/Integral/IntervalIntegral.lean + theorem intervalIntegrable_of_even + theorem intervalIntegrable_of_even₀ + theorem intervalIntegrable_of_odd + theorem intervalIntegrable_of_odd₀ 2025-01-15 08:43:35 d2f7b08 refactor(Order/Atoms): Slight golfs from #20736 (#20760) Very minor golfs that I was going to suggest on #20736. ESTIMATED CHANGES Modified Mathlib/Order/Atoms.lean 2025-01-15 07:14:50 dc5b3f0 chore(Idempotent): split into `Group`, `GroupWithZero` and `Ring` parts (#20742) Split `Algebra.Idempotents` into `Algebra.Group.Idempotent`, `Algebra.GroupWithZero.Idempotent`, `Algebra.Ring.Idempotent`. Rename `Order.Idempotents` to `Algebra.Order.Ring.Idempotent`. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Group/Idempotent.lean + theorem IsIdempotentElem.coe_one + theorem IsIdempotentElem.eq + theorem IsIdempotentElem.iff_eq_one + theorem IsIdempotentElem.map + theorem IsIdempotentElem.mul + theorem IsIdempotentElem.mul_of_commute + theorem IsIdempotentElem.of_isIdempotent + theorem IsIdempotentElem.one + theorem IsIdempotentElem.pow + theorem IsIdempotentElem.pow_succ_eq + def IsIdempotentElem Modified Mathlib/Algebra/Group/Submonoid/Membership.lean Added Mathlib/Algebra/GroupWithZero/Idempotent.lean + theorem IsIdempotentElem.coe_zero + theorem IsIdempotentElem.iff_eq_zero_or_one + theorem IsIdempotentElem.zero Renamed Mathlib/Order/Idempotents.lean to Mathlib/Algebra/Order/Ring/Idempotent.lean Added Mathlib/Algebra/Ring/Idempotent.lean + theorem IsIdempotentElem.add_sub_mul + theorem IsIdempotentElem.add_sub_mul_of_commute + theorem IsIdempotentElem.coe_compl + theorem IsIdempotentElem.compl_compl + theorem IsIdempotentElem.mul_one_sub_self + theorem IsIdempotentElem.of_mul_add + theorem IsIdempotentElem.one_compl + theorem IsIdempotentElem.one_sub + theorem IsIdempotentElem.one_sub_iff + theorem IsIdempotentElem.one_sub_mul_self + theorem IsIdempotentElem.zero_compl Deleted Mathlib/Algebra/Ring/Idempotents.lean - theorem IsIdempotentElem.add_sub_mul - theorem IsIdempotentElem.add_sub_mul_of_commute - theorem IsIdempotentElem.coe_compl - theorem IsIdempotentElem.coe_one - theorem IsIdempotentElem.coe_zero - theorem IsIdempotentElem.compl_compl - theorem IsIdempotentElem.eq - theorem IsIdempotentElem.iff_eq_one - theorem IsIdempotentElem.iff_eq_zero_or_one - theorem IsIdempotentElem.map - theorem IsIdempotentElem.mul - theorem IsIdempotentElem.mul_of_commute - theorem IsIdempotentElem.mul_one_sub_self - theorem IsIdempotentElem.of_isIdempotent - theorem IsIdempotentElem.of_mul_add - theorem IsIdempotentElem.one - theorem IsIdempotentElem.one_compl - theorem IsIdempotentElem.one_sub - theorem IsIdempotentElem.one_sub_iff - theorem IsIdempotentElem.one_sub_mul_self - theorem IsIdempotentElem.pow - theorem IsIdempotentElem.pow_succ_eq - theorem IsIdempotentElem.zero - theorem IsIdempotentElem.zero_compl - def IsIdempotentElem Modified Mathlib/Analysis/NormedSpace/MStructure.lean Modified Mathlib/LinearAlgebra/Span/Basic.lean Modified Mathlib/RingTheory/Filtration.lean Modified Mathlib/RingTheory/Ideal/Cotangent.lean Modified Mathlib/RingTheory/Ideal/IdempotentFG.lean Modified Mathlib/RingTheory/Ideal/Span.lean Modified scripts/noshake.json 2025-01-15 01:11:06 decffa0 chore: update Mathlib dependencies 2025-01-15 (#20762) This PR updates the Mathlib dependencies. ESTIMATED CHANGES Modified lake-manifest.json 2025-01-14 22:55:18 881129a feat(Set/Function): prove surjectivity from composition (#20754) These lemmas were present for `Function.Injective` and `Function.Surjective`, but not for their partial versions. Useful from the disproof of the Aharoni–Korman conjecture, https://github.com/leanprover-community/mathlib4/pull/20082. ESTIMATED CHANGES Modified Mathlib/Data/Set/Function.lean + theorem Set.InjOn.of_comp + theorem Set.SurjOn.of_comp 2025-01-14 22:21:33 74fff29 feat(Order/Atoms): atoms, coatoms in SetLike (#20736) Add `SetLike.isAtom_iff`, `SetLike.isCoatom_iff`, `SetLike.covBy_iff` and `SetLike.covBy_iff'` that translate the properties of being an atom, a coatom, or covby in a `SetLike` type. Use it to golf the proof if `Ideal.isMaximal_iff`. `SetLike.isCoatom_iff` was written by @alreadydone . ESTIMATED CHANGES Modified Mathlib/Order/Atoms.lean + theorem SetLike.covBy_iff' + theorem SetLike.covBy_iff + theorem SetLike.isAtom_iff + theorem SetLike.isCoatom_iff Modified Mathlib/RingTheory/Ideal/Maximal.lean 2025-01-14 17:43:29 30b9d3c fix: `rename_bvar` now handles mdata and mvars (#20743) Reported by Patrick Massot [on Zulip](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/rename_bvar.20is.20broken/near/493593195) ESTIMATED CHANGES Modified Mathlib/Lean/Expr/Basic.lean Modified Mathlib/Tactic/RenameBVar.lean Modified MathlibTest/renameBvar.lean 2025-01-14 16:46:13 1b272a8 feat: generalize `CStarAlgebra.spectralOrder` to non-unital algebras (#20728) ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/Quasispectrum.lean + theorem quasispectrumRestricts_iff_spectrumRestricts_inr' Modified Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Basic.lean 2025-01-14 16:01:34 4a30ca3 feat(RingTheory/Valuation): valuation integers ring is a Principal Ideal ring iff the valuation range is not densely ordered (#16619) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Order/Hom/Basic.lean Added Mathlib/RingTheory/Valuation/Archimedean.lean + theorem Valuation.Integers.isPrincipalIdealRing_iff_not_denselyOrdered + theorem Valuation.Integers.wellFounded_gt_on_v_iff_discrete_mrange + theorem Valuation.Integers.wfDvdMonoid_iff_wellFounded_gt_on_v Modified Mathlib/RingTheory/Valuation/Basic.lean + theorem Valuation.val_mrange_zero Modified Mathlib/RingTheory/Valuation/Integers.lean + theorem Valuation.Integers.bijective_algebraMap_of_subsingleton_units_mrange 2025-01-14 14:39:03 456d19b feat(Order/PartialSups): allow general orders as domain (#20137) Currently `PartialSups` is only defined for Nat-indexed sequences. This generalises it to arbitrary preorders satisfying suitable typeclass assumptions. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Order/PartialSups.lean + theorem partialSups_add_one Modified Mathlib/LinearAlgebra/Basis/Exact.lean Modified Mathlib/LinearAlgebra/Prod.lean Modified Mathlib/MeasureTheory/OuterMeasure/Caratheodory.lean Modified Mathlib/Order/Disjointed.lean Modified Mathlib/Order/PartialSups.lean +/- theorem Monotone.partialSups_eq +/- theorem bddAbove_range_partialSups + theorem ciSup_partialSups_eq' +/- theorem ciSup_partialSups_eq +/- theorem disjoint_partialSups_left +/- theorem disjoint_partialSups_right +/- theorem iSup_eq_iSup_of_partialSups_eq_partialSups +/- theorem iSup_le_iSup_of_partialSups_le_partialSups +/- theorem iSup_partialSups_eq +/- theorem le_partialSups +/- theorem le_partialSups_of_le +/- def partialSups.gi +/- def partialSups +/- theorem partialSups_apply + theorem partialSups_bot +/- theorem partialSups_disjoint_of_disjoint +/- theorem partialSups_eq_biSup +/- theorem partialSups_eq_ciSup_Iic +/- theorem partialSups_eq_sup_range +/- theorem partialSups_iff_forall +/- theorem partialSups_le +/- theorem partialSups_le_iff +/- theorem partialSups_mono +/- theorem partialSups_monotone +/- theorem partialSups_succ +/- theorem upperBounds_range_partialSups Modified Mathlib/RingTheory/Artinian/Module.lean Modified Mathlib/RingTheory/Noetherian/Basic.lean Modified Mathlib/Topology/Order/PartialSups.lean 2025-01-14 14:07:39 4133a9f feat: implement tauto_set tactic for set-theoretic trivialities (#20706) Implement a tactic that proves tautologies involving hypotheses and goals of the form `X ⊆ Y` or `X = Y`, where `X`, `Y` are expressions built using `∪`, `∩`, `\`, and `ᶜ` from finitely many variables of type `Set α`. It also unfolds `Disjoint` and `symmDiff`. Discussed in the zulip thread https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Trivialities.20about.20sets The file MathlibTest/TautoSet.lean contains many usage examples, including a list of lemma's from the Matroid Decomposition Theorem Verification project, which can now be golfed to a single tactic invocation. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Tactic.lean Added Mathlib/Tactic/TautoSet.lean Added MathlibTest/TautoSet.lean Modified scripts/noshake.json 2025-01-14 13:56:08 fb87eb7 chore(AlgebraicTopology): fix the definition of Kan complexes (#20734) The definition of Kan complexes is fixed by taking into account Remark 2.3 at https://ncatlab.org/nlab/show/horn ESTIMATED CHANGES Modified Mathlib/AlgebraicTopology/SimplicialSet/KanComplex.lean 2025-01-14 12:21:05 cbbe71d chore(Analysis/Normed/Ring/WithAbs): make equiv a ring equiv (#20713) Making `WithAbs.equiv` a ring equivalence (like `WithAbs.ringEquiv`) should make a lot of the API lemmas obsolete. ESTIMATED CHANGES Modified Mathlib/Analysis/Normed/Ring/WithAbs.lean +/- def WithAbs.equiv +/- theorem WithAbs.equiv_add +/- theorem WithAbs.equiv_mul +/- theorem WithAbs.equiv_neg +/- theorem WithAbs.equiv_sub +/- theorem WithAbs.equiv_symm_neg +/- theorem WithAbs.equiv_symm_sub +/- theorem WithAbs.equiv_symm_zero +/- theorem WithAbs.equiv_zero Modified Mathlib/NumberTheory/NumberField/Completion.lean 2025-01-14 12:01:03 b37ce20 feat: isometries from induced metrics (#20731) If `f : α → β`, where `β` is a metric space, and the metric on `α` is induced by pullback along `f`, then `f` is an isometry. I add this trivial lemma for `PseudoEmetricSpace`, `PseudoMetricSpace`, `EMetricSpace`, and `MetricSpace`, as suggested by Junyan Xu in [this thread](https://leanprover.zulipchat.com/#narrow/channel/217875-Is-there-code-for-X.3F/topic/dist.20of.20induced.20metric/near/493459925). ESTIMATED CHANGES Modified Mathlib/Topology/MetricSpace/Isometry.lean + theorem EMetricSpace.isometry_induced + theorem MetricSpace.isometry_induced + theorem PseudoEMetricSpace.isometry_induced + theorem PsuedoMetricSpace.isometry_induced 2025-01-14 10:52:46 d677d77 feat(Data/Fintype/List): generalize `fintypeNodupList` (no `DecidableEq`) (#16656) ESTIMATED CHANGES Modified Mathlib/Data/Fintype/List.lean +/- def Multiset.lists +/- theorem Multiset.lists_coe + theorem Multiset.lists_nodup_finset + theorem perm_toList 2025-01-14 09:42:57 a7b5e89 chore: remove useless assumption in `ae_restrict_le` (#20732) ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Measure/Restrict.lean +/- theorem MeasureTheory.ae_restrict_le Modified Mathlib/Probability/Kernel/Condexp.lean 2025-01-14 09:33:15 2a6c3d0 chore(RingTheory/MvPolynomial/WeightedHomogeneous): golf the proof a lemma (#20697) This simplifies a proof. ESTIMATED CHANGES Modified Mathlib/RingTheory/MvPolynomial/WeightedHomogeneous.lean 2025-01-14 09:10:18 ed1d44f chore: remove --loc flag from unused_in_pole.sh (#20729) When developing `unused_in_pole.sh`, the Speed Center was broken, so I used the `--loc` flag to compute the longest pole according to lines of code rather than instruction counts. Let's remove it again, as I think instructions are more useful, and that's what we usually do when looking at the longest pole. ESTIMATED CHANGES Modified scripts/unused_in_pole.sh 2025-01-14 08:30:23 d272932 chore: move import of `Tactic.Common` downstream from `Pairwise` (#20710) Spotted in the late importers report: https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Late.20importers.20report/near/493286162 `Logic.Pairwise` imports `Tactic.Common` but doesn't actually use anything from this file. By moving the import further downstream, we can clean up the hierarchy somewhat. ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Interval/Set/Group.lean Modified Mathlib/Data/Set/Lattice.lean Modified Mathlib/Data/Set/Pairwise/Basic.lean Modified Mathlib/GroupTheory/OreLocalization/Basic.lean Modified Mathlib/Logic/Pairwise.lean Modified Mathlib/Tactic/DeriveCountable.lean 2025-01-14 07:17:35 9c0bf76 feat(Algebra/Lie): Define Lie algebra extensions (#20206) This PR defines extensions of Lie algebras. We follow the pattern used in defining extensions of groups. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Lie/Extension.lean + structure LieAlgebra.Extension + def LieAlgebra.IsExtension.extension + theorem LieAlgebra.isExtension_of_surjective 2025-01-14 06:06:33 c083085 refactor(FieldTheory/KummerExtension): Split off irreducibility of `X ^ p - a` (#20695) This PR splits of irreducibility of `X ^ p - a` from `FieldTheory/KummerExtension` since it has lighter imports and can be used to golf a proof in `FieldTheory/Perfect`. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/FieldTheory/KummerExtension.lean - theorem X_pow_sub_C_irreducible_iff_of_prime - theorem X_pow_sub_C_irreducible_of_prime - theorem ne_zero_of_irreducible_X_pow_sub_C' - theorem ne_zero_of_irreducible_X_pow_sub_C - theorem pow_ne_of_irreducible_X_pow_sub_C - theorem root_X_pow_sub_C_eq_zero_iff - theorem root_X_pow_sub_C_ne_zero' - theorem root_X_pow_sub_C_ne_zero - theorem root_X_pow_sub_C_ne_zero_iff - theorem root_X_pow_sub_C_pow Added Mathlib/FieldTheory/KummerPolynomial.lean + theorem X_pow_sub_C_irreducible_iff_of_prime + theorem X_pow_sub_C_irreducible_of_prime + theorem ne_zero_of_irreducible_X_pow_sub_C' + theorem ne_zero_of_irreducible_X_pow_sub_C + theorem pow_ne_of_irreducible_X_pow_sub_C + theorem root_X_pow_sub_C_eq_zero_iff + theorem root_X_pow_sub_C_ne_zero' + theorem root_X_pow_sub_C_ne_zero + theorem root_X_pow_sub_C_ne_zero_iff + theorem root_X_pow_sub_C_pow Modified Mathlib/FieldTheory/Perfect.lean 2025-01-14 04:13:36 56f9c5e feat: test the cache as if in a downstream project (#20532) Rather than just testing `lake exe cache get && lake build --no-build`, we run this test from a mini downstream project. Having this test in place would have alerted us to the problems in `v4.16.0-rc1` ahead of time. ESTIMATED CHANGES Modified .github/build.in.yml Modified .github/workflows/bors.yml Modified .github/workflows/build.yml Modified .github/workflows/build_fork.yml Added DownstreamTest/.gitignore Added DownstreamTest/DownstreamTest.lean Added DownstreamTest/README.md Added DownstreamTest/lakefile.toml 2025-01-14 03:50:37 15f16b1 chore: update Mathlib dependencies 2025-01-14 (#20726) This PR updates the Mathlib dependencies. ESTIMATED CHANGES Modified lake-manifest.json Modified lean-toolchain 2025-01-14 02:38:56 266b052 refactor: split `Analysis.CStarAlgebra.ContinuousFunctionalCalculus.Instances` in a principled way (#20647) Before this PR, there were three files in which one could find instances of continuous functional calculi: `Analysis.CStarAlgebra.ContinuousFunctionalCalculus.{Instances, Isometric, Unital}`, which contained, respectively, 1. All generic instances of the CFC over `ℂ`, `ℝ`, `ℝ≥0` for unital and non-unital algebras 2. All the instances of the isometric CFC. 3. The non-unital CFC for unital algebras. Note that importing `Instances` was therefore the general way to obtain a CFC on a `CStarAlgebra`. In this PR, the last one stays where it is, but there is a bit of shuffling for the others which we now explain. Here the problem with the above distribution of instances: if you are working on a generic CFC file (e.g., defining `CFC.abs a := CFC.sqrt (star a * a)`, then you want to work in maximum generality. But to apply `CFC.sqrt` you need an instance of the `ℝ≥0` functional calculus. The *correct* (i.e., well-behaved) way to do this is to assume that you have an `ℝ`-algebra (*not* an `ℝ≥0`-algebra, because those are ill-behaved) with the appropriate hypotheses. However, in order to get that instance, prior to this PR you would need to import `Instances`, which would pull in `CStarAlgebra` theory not relevant to the development of your file (and potentially, not even relevant to certain files downstream of the one on which you are working). The solution is to separate the instances which are *inferred from existing instances* (i.e., for obtaining `ℝ` from `ℂ`, or `ℝ≥0` from `ℝ`) from the *base level instances* (i.e., the ones for `ℂ` which require `CStarAlgebra`). The former instances are left in either `Instances` or `Isometric` as the case may be, and the latter are moved into `Basic`. This means that `Analysis.CStarAlgebra.ContinuousFunctionalCalculus.Basic` is now the entry point for getting all the relevant CFC instances for a `CStarAlgebra`. The rest of the files in this folder are for the more generic development of the CFC (with the exception of `Order`, which should likely be moved outside of this subfolder at some point. This should explain the large changes in the import hierarchy. The purpose of this refactor is to allow for more principled development of generic CFC functions, without importing more than necessary. ESTIMATED CHANGES Modified Mathlib/Analysis/CStarAlgebra/ApproximateUnit.lean Modified Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Basic.lean + def CStarAlgebra.spectralOrder + theorem CStarAlgebra.spectralOrderedRing + theorem IsSelfAdjoint.coe_mem_spectrum_complex + theorem IsSelfAdjoint.sq_spectrumRestricts + theorem SpectrumRestricts.eq_zero_of_neg + theorem SpectrumRestricts.nnreal_add + theorem SpectrumRestricts.nnreal_iff_nnnorm + theorem SpectrumRestricts.smul_of_nonneg + theorem Unitization.cfcₙ_eq_cfc_inr + theorem Unitization.complex_cfcₙ_eq_cfc_inr + theorem Unitization.real_cfcₙ_eq_cfc_inr + theorem cfcHom_eq_of_isStarNormal + theorem inr_comp_cfcₙHom_eq_cfcₙAux + theorem spectrum_star_mul_self_nonneg Modified Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Instances.lean - def CStarAlgebra.spectralOrder - theorem CStarAlgebra.spectralOrderedRing - theorem IsSelfAdjoint.coe_mem_spectrum_complex - theorem IsSelfAdjoint.sq_spectrumRestricts - theorem SpectrumRestricts.eq_zero_of_neg - theorem SpectrumRestricts.nnreal_add - theorem SpectrumRestricts.nnreal_iff_nnnorm - theorem SpectrumRestricts.smul_of_nonneg - theorem Unitization.cfcₙ_eq_cfc_inr - theorem Unitization.complex_cfcₙ_eq_cfc_inr - theorem Unitization.real_cfcₙ_eq_cfc_inr - theorem cfcHom_eq_of_isStarNormal - theorem inr_comp_cfcₙHom_eq_cfcₙAux - theorem spectrum_star_mul_self_nonneg Modified Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Isometric.lean Modified Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Order.lean Modified Mathlib/Analysis/CStarAlgebra/SpecialFunctions/PosPart.lean Modified Mathlib/Analysis/InnerProductSpace/StarOrder.lean 2025-01-14 02:01:24 26a7d97 doc: explain List.Vector vs Vector (#20693) ESTIMATED CHANGES Modified Mathlib/Data/Vector/Defs.lean 2025-01-14 02:01:23 264ed5b feat: add stream' lemmas (#19546) The orders of summands in some lemmas are changed and simp annotations are added to make the API closer to the one for lists. ESTIMATED CHANGES Modified Mathlib/Combinatorics/Hindman.lean Modified Mathlib/Data/Stream/Init.lean +/- theorem Stream'.append_append_stream + theorem Stream'.append_eq_cons + theorem Stream'.append_left_injective + theorem Stream'.append_right_inj + theorem Stream'.append_right_injective + theorem Stream'.append_take +/- theorem Stream'.concat_take_get +/- theorem Stream'.corec'_eq +/- theorem Stream'.corec_eq + theorem Stream'.drop_append_of_le_length +/- theorem Stream'.drop_drop +/- theorem Stream'.drop_tail' +/- theorem Stream'.eq_of_bisim + theorem Stream'.get_append_left + theorem Stream'.get_append_length + theorem Stream'.get_append_right + theorem Stream'.get_cons_append_zero +/- theorem Stream'.get_drop +/- theorem Stream'.get_of_bisim +/- theorem Stream'.get_succ_cons + theorem Stream'.map_take +/- theorem Stream'.nil_append_stream +/- theorem Stream'.tail_drop' + theorem Stream'.take_add + theorem Stream'.take_append_of_le_length + theorem Stream'.take_drop + theorem Stream'.take_get + theorem Stream'.take_prefix + theorem Stream'.take_prefix_take_left +/- theorem Stream'.unfolds_eq 2025-01-14 01:19:30 0ef9418 chore: address `simps` porting notes (#20717) I searched for `porting note.*simps` and tried to fix or delete the ones that were easy to address. Broadly: * delete porting notes about replacing one form of `simps` with another * if the note complains about wrong lemmas or timeouts, check if that's still the case and delete if not. ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/Equiv.lean - theorem AlgEquiv.aut_mul - theorem AlgEquiv.aut_one Modified Mathlib/Algebra/Category/Grp/Limits.lean Modified Mathlib/Algebra/DirectSum/Decomposition.lean - theorem DirectSum.decomposeAddEquiv_apply - theorem DirectSum.decomposeAddEquiv_symm_apply Modified Mathlib/Algebra/Group/Equiv/Basic.lean - theorem MulHom.toMulEquiv_apply - theorem MulHom.toMulEquiv_symm_apply Modified Mathlib/Algebra/Group/Units/Equiv.lean Modified Mathlib/Algebra/Group/WithOne/Basic.lean Modified Mathlib/Algebra/Module/Submodule/Map.lean - theorem Submodule.comapSubtypeEquivOfLe_apply_coe Modified Mathlib/Algebra/Order/Hom/Ring.lean Modified Mathlib/AlgebraicGeometry/GammaSpecAdjunction.lean Modified Mathlib/AlgebraicGeometry/Restrict.lean - theorem AlgebraicGeometry.Scheme.restrictFunctor_map_left - theorem AlgebraicGeometry.Scheme.restrictFunctor_obj_hom - theorem AlgebraicGeometry.Scheme.restrictFunctor_obj_left Modified Mathlib/AlgebraicGeometry/Spec.lean Modified Mathlib/AlgebraicGeometry/StructureSheaf.lean Modified Mathlib/AlgebraicTopology/DoldKan/NCompGamma.lean - theorem AlgebraicTopology.DoldKan.Γ₂N₂ToKaroubiIso_hom_app - theorem AlgebraicTopology.DoldKan.Γ₂N₂ToKaroubiIso_inv_app Modified Mathlib/Analysis/Normed/Group/HomCompletion.lean Modified Mathlib/CategoryTheory/Abelian/Ext.lean Modified Mathlib/CategoryTheory/Action/Basic.lean Modified Mathlib/CategoryTheory/Adjunction/Lifting/Left.lean Modified Mathlib/CategoryTheory/Bicategory/FunctorBicategory/Oplax.lean Modified Mathlib/CategoryTheory/ConnectedComponents.lean Modified Mathlib/CategoryTheory/Endofunctor/Algebra.lean Modified Mathlib/CategoryTheory/Limits/Cones.lean Modified Mathlib/CategoryTheory/Limits/HasLimits.lean Modified Mathlib/CategoryTheory/Limits/Opposites.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Types.lean Modified Mathlib/CategoryTheory/Monoidal/Category.lean Modified Mathlib/CategoryTheory/Monoidal/CommMon_.lean Modified Mathlib/CategoryTheory/Preadditive/AdditiveFunctor.lean Modified Mathlib/FieldTheory/IntermediateField/Adjoin/Defs.lean Modified Mathlib/GroupTheory/FreeAbelianGroup.lean Modified Mathlib/LinearAlgebra/Finsupp/Defs.lean - theorem Finsupp.mapRange.linearEquiv_apply - theorem Finsupp.mapRange.linearMap_apply Modified Mathlib/LinearAlgebra/Multilinear/Basic.lean Modified Mathlib/ModelTheory/LanguageMap.lean Modified Mathlib/ModelTheory/Syntax.lean Modified Mathlib/RingTheory/AdjoinRoot.lean Modified Mathlib/RingTheory/PolynomialAlgebra.lean Modified Mathlib/Topology/Algebra/Module/StrongTopology.lean - theorem ContinuousLinearEquiv.arrowCongrSL_toLinearEquiv_apply - theorem ContinuousLinearEquiv.arrowCongrSL_toLinearEquiv_symm_apply Modified Mathlib/Topology/ContinuousMap/Bounded/Basic.lean Modified Mathlib/Topology/ContinuousMap/Compact.lean - theorem ContinuousMap.addEquivBoundedOfCompact_apply - theorem ContinuousMap.addEquivBoundedOfCompact_symm_apply Modified Mathlib/Topology/PartialHomeomorph.lean 2025-01-13 21:09:53 2b06bd4 feat: sort imports in import summary (#20701) This may make it easier to parse the report of the summary, when there are many import changes. I commented #20698 with the output of the new script, in case you want to see it in action. ESTIMATED CHANGES Modified scripts/import_trans_difference.sh 2025-01-13 18:29:29 5b601b6 chore(RingTheory): move `FaithfullyFlat` into its own folder (#20716) Preparation for more results on faithfully flat algebras. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Category/Ring/LinearAlgebra.lean Renamed Mathlib/RingTheory/Flat/FaithfullyFlat.lean to Mathlib/RingTheory/Flat/FaithfullyFlat/Basic.lean Modified Mathlib/RingTheory/TensorProduct/Nontrivial.lean 2025-01-13 18:19:35 54f1019 feat(Topology/FiberBundle/Trivialization): local lifting through a Trivialization (#19056) Define versions of local lifting through a `Trivialization`. ESTIMATED CHANGES Modified Mathlib/Topology/FiberBundle/Trivialization.lean + def Trivialization.clift + theorem Trivialization.clift_self + def Trivialization.lift + def Trivialization.liftCM + theorem Trivialization.lift_self + theorem Trivialization.proj_clift + theorem Trivialization.proj_lift 2025-01-13 17:41:13 8c3ecf4 chore(Algebra/MvPolynomial/Eval): split file for eval off of basic (#20655) This PR directly splits `Algebra/MvPolynomial/Basic` at the point where `eval` related functions are defined. This addresses an instance of a file over 1500 lines long, and makes the `MvPolynomial/` directory structure slightly more like `Polynomial/`. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/MvPolynomial/Basic.lean - theorem Algebra.adjoin_eq_range - theorem Algebra.adjoin_range_eq_range_aeval - theorem MvPolynomial.C_dvd_iff_map_hom_eq_zero - def MvPolynomial.aeval - def MvPolynomial.aevalTower - theorem MvPolynomial.aevalTower_C - theorem MvPolynomial.aevalTower_X - theorem MvPolynomial.aevalTower_algebraMap - theorem MvPolynomial.aevalTower_comp_C - theorem MvPolynomial.aevalTower_comp_algebraMap - theorem MvPolynomial.aevalTower_comp_toAlgHom - theorem MvPolynomial.aevalTower_id - theorem MvPolynomial.aevalTower_ofId - theorem MvPolynomial.aevalTower_ofNat - theorem MvPolynomial.aevalTower_toAlgHom - theorem MvPolynomial.aeval_C - theorem MvPolynomial.aeval_X - theorem MvPolynomial.aeval_X_left - theorem MvPolynomial.aeval_X_left_apply - theorem MvPolynomial.aeval_def - theorem MvPolynomial.aeval_eq_eval₂Hom - theorem MvPolynomial.aeval_eq_zero - theorem MvPolynomial.aeval_monomial - theorem MvPolynomial.aeval_ofNat - theorem MvPolynomial.aeval_prod - theorem MvPolynomial.aeval_sum - theorem MvPolynomial.aeval_sum_elim - theorem MvPolynomial.aeval_unique - theorem MvPolynomial.aeval_zero' - theorem MvPolynomial.aeval_zero - theorem MvPolynomial.algebraMap_apply - theorem MvPolynomial.coe_aeval_eq_eval - theorem MvPolynomial.coe_eval₂Hom - theorem MvPolynomial.coeff_map - theorem MvPolynomial.comp_aeval - theorem MvPolynomial.comp_aeval_apply - theorem MvPolynomial.comp_eval₂Hom - theorem MvPolynomial.constantCoeff_comp_map - theorem MvPolynomial.constantCoeff_map - def MvPolynomial.eval - theorem MvPolynomial.eval_C - theorem MvPolynomial.eval_X - theorem MvPolynomial.eval_add - theorem MvPolynomial.eval_assoc - theorem MvPolynomial.eval_eq' - theorem MvPolynomial.eval_eq - theorem MvPolynomial.eval_eval₂ - theorem MvPolynomial.eval_map - theorem MvPolynomial.eval_mem - theorem MvPolynomial.eval_monomial - theorem MvPolynomial.eval_mul - theorem MvPolynomial.eval_ofNat - theorem MvPolynomial.eval_pow - theorem MvPolynomial.eval_prod - theorem MvPolynomial.eval_sum - theorem MvPolynomial.eval_zero' - theorem MvPolynomial.eval_zero - def MvPolynomial.eval₂ - def MvPolynomial.eval₂Hom - theorem MvPolynomial.eval₂Hom_C - theorem MvPolynomial.eval₂Hom_X' - theorem MvPolynomial.eval₂Hom_congr - theorem MvPolynomial.eval₂Hom_eq_zero - theorem MvPolynomial.eval₂Hom_map_hom - theorem MvPolynomial.eval₂Hom_monomial - theorem MvPolynomial.eval₂Hom_zero' - theorem MvPolynomial.eval₂Hom_zero'_apply - theorem MvPolynomial.eval₂Hom_zero - theorem MvPolynomial.eval₂Hom_zero_apply - theorem MvPolynomial.eval₂_C - theorem MvPolynomial.eval₂_X - theorem MvPolynomial.eval₂_add - theorem MvPolynomial.eval₂_assoc - theorem MvPolynomial.eval₂_comp - theorem MvPolynomial.eval₂_comp_left - theorem MvPolynomial.eval₂_comp_right - theorem MvPolynomial.eval₂_congr - theorem MvPolynomial.eval₂_eq' - theorem MvPolynomial.eval₂_eq - theorem MvPolynomial.eval₂_eq_eval_map - theorem MvPolynomial.eval₂_eta - theorem MvPolynomial.eval₂_id - theorem MvPolynomial.eval₂_map - theorem MvPolynomial.eval₂_mem - theorem MvPolynomial.eval₂_monomial - theorem MvPolynomial.eval₂_mul - theorem MvPolynomial.eval₂_mul_C - theorem MvPolynomial.eval₂_mul_monomial - theorem MvPolynomial.eval₂_natCast - theorem MvPolynomial.eval₂_ofNat - theorem MvPolynomial.eval₂_one - theorem MvPolynomial.eval₂_pow - theorem MvPolynomial.eval₂_prod - theorem MvPolynomial.eval₂_sum - theorem MvPolynomial.eval₂_zero'_apply - theorem MvPolynomial.eval₂_zero - theorem MvPolynomial.eval₂_zero_apply - def MvPolynomial.map - def MvPolynomial.mapAlgHom - theorem MvPolynomial.mapAlgHom_coe_ringHom - theorem MvPolynomial.mapAlgHom_id - theorem MvPolynomial.map_C - theorem MvPolynomial.map_X - theorem MvPolynomial.map_aeval - theorem MvPolynomial.map_eval₂ - theorem MvPolynomial.map_eval₂Hom - theorem MvPolynomial.map_id - theorem MvPolynomial.map_injective - theorem MvPolynomial.map_leftInverse - theorem MvPolynomial.map_map - theorem MvPolynomial.map_mapRange_eq_iff - theorem MvPolynomial.map_monomial - theorem MvPolynomial.map_rightInverse - theorem MvPolynomial.map_surjective - theorem MvPolynomial.smul_eval - theorem MvPolynomial.support_map_of_injective - theorem MvPolynomial.support_map_subset Modified Mathlib/Algebra/MvPolynomial/Counit.lean Added Mathlib/Algebra/MvPolynomial/Eval.lean + theorem Algebra.adjoin_eq_range + theorem Algebra.adjoin_range_eq_range_aeval + theorem MvPolynomial.C_dvd_iff_map_hom_eq_zero + def MvPolynomial.aeval + def MvPolynomial.aevalTower + theorem MvPolynomial.aevalTower_C + theorem MvPolynomial.aevalTower_X + theorem MvPolynomial.aevalTower_algebraMap + theorem MvPolynomial.aevalTower_comp_C + theorem MvPolynomial.aevalTower_comp_algebraMap + theorem MvPolynomial.aevalTower_comp_toAlgHom + theorem MvPolynomial.aevalTower_id + theorem MvPolynomial.aevalTower_ofId + theorem MvPolynomial.aevalTower_ofNat + theorem MvPolynomial.aevalTower_toAlgHom + theorem MvPolynomial.aeval_C + theorem MvPolynomial.aeval_X + theorem MvPolynomial.aeval_X_left + theorem MvPolynomial.aeval_X_left_apply + theorem MvPolynomial.aeval_def + theorem MvPolynomial.aeval_eq_eval₂Hom + theorem MvPolynomial.aeval_eq_zero + theorem MvPolynomial.aeval_monomial + theorem MvPolynomial.aeval_ofNat + theorem MvPolynomial.aeval_prod + theorem MvPolynomial.aeval_sum + theorem MvPolynomial.aeval_sum_elim + theorem MvPolynomial.aeval_unique + theorem MvPolynomial.aeval_zero' + theorem MvPolynomial.aeval_zero + theorem MvPolynomial.algebraMap_apply + theorem MvPolynomial.coe_aeval_eq_eval + theorem MvPolynomial.coe_eval₂Hom + theorem MvPolynomial.coeff_map + theorem MvPolynomial.comp_aeval + theorem MvPolynomial.comp_aeval_apply + theorem MvPolynomial.comp_eval₂Hom + theorem MvPolynomial.constantCoeff_comp_map + theorem MvPolynomial.constantCoeff_map + def MvPolynomial.eval + theorem MvPolynomial.eval_C + theorem MvPolynomial.eval_X + theorem MvPolynomial.eval_add + theorem MvPolynomial.eval_assoc + theorem MvPolynomial.eval_eq' + theorem MvPolynomial.eval_eq + theorem MvPolynomial.eval_eval₂ + theorem MvPolynomial.eval_map + theorem MvPolynomial.eval_mem + theorem MvPolynomial.eval_monomial + theorem MvPolynomial.eval_mul + theorem MvPolynomial.eval_ofNat + theorem MvPolynomial.eval_pow + theorem MvPolynomial.eval_prod + theorem MvPolynomial.eval_sum + theorem MvPolynomial.eval_zero' + theorem MvPolynomial.eval_zero + def MvPolynomial.eval₂ + def MvPolynomial.eval₂Hom + theorem MvPolynomial.eval₂Hom_C + theorem MvPolynomial.eval₂Hom_X' + theorem MvPolynomial.eval₂Hom_congr + theorem MvPolynomial.eval₂Hom_eq_zero + theorem MvPolynomial.eval₂Hom_map_hom + theorem MvPolynomial.eval₂Hom_monomial + theorem MvPolynomial.eval₂Hom_zero' + theorem MvPolynomial.eval₂Hom_zero'_apply + theorem MvPolynomial.eval₂Hom_zero + theorem MvPolynomial.eval₂Hom_zero_apply + theorem MvPolynomial.eval₂_C + theorem MvPolynomial.eval₂_X + theorem MvPolynomial.eval₂_add + theorem MvPolynomial.eval₂_assoc + theorem MvPolynomial.eval₂_comp + theorem MvPolynomial.eval₂_comp_left + theorem MvPolynomial.eval₂_comp_right + theorem MvPolynomial.eval₂_congr + theorem MvPolynomial.eval₂_eq' + theorem MvPolynomial.eval₂_eq + theorem MvPolynomial.eval₂_eq_eval_map + theorem MvPolynomial.eval₂_eta + theorem MvPolynomial.eval₂_id + theorem MvPolynomial.eval₂_map + theorem MvPolynomial.eval₂_mem + theorem MvPolynomial.eval₂_monomial + theorem MvPolynomial.eval₂_mul + theorem MvPolynomial.eval₂_mul_C + theorem MvPolynomial.eval₂_mul_monomial + theorem MvPolynomial.eval₂_natCast + theorem MvPolynomial.eval₂_ofNat + theorem MvPolynomial.eval₂_one + theorem MvPolynomial.eval₂_pow + theorem MvPolynomial.eval₂_prod + theorem MvPolynomial.eval₂_sum + theorem MvPolynomial.eval₂_zero'_apply + theorem MvPolynomial.eval₂_zero + theorem MvPolynomial.eval₂_zero_apply + def MvPolynomial.map + def MvPolynomial.mapAlgHom + theorem MvPolynomial.mapAlgHom_coe_ringHom + theorem MvPolynomial.mapAlgHom_id + theorem MvPolynomial.map_C + theorem MvPolynomial.map_X + theorem MvPolynomial.map_aeval + theorem MvPolynomial.map_eval₂ + theorem MvPolynomial.map_eval₂Hom + theorem MvPolynomial.map_id + theorem MvPolynomial.map_injective + theorem MvPolynomial.map_leftInverse + theorem MvPolynomial.map_map + theorem MvPolynomial.map_mapRange_eq_iff + theorem MvPolynomial.map_monomial + theorem MvPolynomial.map_rightInverse + theorem MvPolynomial.map_surjective + theorem MvPolynomial.smul_eval + theorem MvPolynomial.support_map_of_injective + theorem MvPolynomial.support_map_subset Modified Mathlib/Algebra/MvPolynomial/Rename.lean Modified Mathlib/Analysis/Analytic/Polynomial.lean Modified Mathlib/LinearAlgebra/Matrix/MvPolynomial.lean Modified Mathlib/RingTheory/Adjoin/FG.lean Modified Mathlib/RingTheory/MvPolynomial/Tower.lean Modified Mathlib/RingTheory/MvPowerSeries/Basic.lean Modified Mathlib/RingTheory/MvPowerSeries/Trunc.lean Modified Mathlib/RingTheory/TensorProduct/MvPolynomial.lean Modified Mathlib/Topology/Algebra/MvPolynomial.lean Modified scripts/noshake.json 2025-01-13 17:41:12 d3d990d feat: Estimating a finite sum by an interval integral, for the product of a monotone and an antitone function (#20456) From the Carleson project ESTIMATED CHANGES Modified Mathlib/Analysis/SumIntegralComparisons.lean + theorem integral_le_sum_Ico_of_le + theorem integral_le_sum_mul_Ico_of_antitone_monotone + theorem sum_Ico_le_integral_of_le + theorem sum_mul_Ico_le_integral_of_monotone_antitone Modified Mathlib/MeasureTheory/Function/L1Space.lean + theorem MeasureTheory.Integrable.mul_of_top_left + theorem MeasureTheory.Integrable.mul_of_top_right Modified Mathlib/MeasureTheory/Function/LocallyIntegrable.lean - theorem AntioneOn.integrableOn_isCompact + theorem AntitoneOn.integrableOn_isCompact Modified Mathlib/MeasureTheory/Integral/IntervalIntegral.lean + theorem intervalIntegral.integral_mono_on_of_le_Ioo 2025-01-13 17:41:10 14815c9 feat: lemmas about the left and right boundary point under `Icc{Left,Right}Chart` (#15891) Another step towards proving that a non-empty the real interval $[x,y]$ has boundary ${ x,y }$ (as a manifold). Add missing `Icc.coe_top` and `Icc.coe_bot` lemmas. ESTIMATED CHANGES Modified Mathlib/Geometry/Manifold/Instances/Real.lean + theorem IccLeftChart_extend_bot + theorem IccLeftChart_extend_bot_mem_frontier + theorem IccLeftChart_extend_interior_pos + theorem IccRightChart_extend_right_mem_frontier + theorem IccRightChart_extend_top + theorem iccLeftChart_extend_zero + theorem modelWithCornersEuclideanHalfSpace_zero Modified Mathlib/Order/LatticeIntervals.lean + theorem Set.Icc.coe_bot + theorem Set.Icc.coe_top 2025-01-13 17:00:55 90fd1e0 chore: address some porting notes about coercions of equivs (#20714) I came across a few porting notes about removing `toFun_eq_coe`. We in fact do want to have this lemma for rewriting, but not as a `@[simp]` lemma. So readd the missing `toFun_eq_coe` lemmas, and turn some porting notes into doc comments. In those files, also clean up some other porting notes about coercions: it looks like there were some workarounds that are now unnecessary. ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/Equiv.lean + theorem AlgEquiv.coe_toEquiv Modified Mathlib/Algebra/Group/Equiv/Basic.lean + theorem MulEquiv.toFun_eq_coe Modified Mathlib/LinearAlgebra/Finsupp/SumProd.lean Modified Mathlib/Topology/Hom/Open.lean 2025-01-13 16:13:58 3861c39 doc(Order/InitialSeg): Improve documentation (#15874) The file previously conflated initial segments and their embeddings. Our docstrings are now more careful about the distinction. ESTIMATED CHANGES Modified Mathlib/Order/InitialSeg.lean 2025-01-13 15:16:23 a1c2c42 chore(RingTheory/Extension): Simplify algebra instance by using def. (#20708) As suggested in the conversation around #20518 , the algebra instance has been subsumed by a definition, and this PR makes the replacement. ESTIMATED CHANGES Modified Mathlib/RingTheory/Extension.lean 2025-01-13 15:16:22 a45eba0 chore(WittVector): document more notation (#20683) ESTIMATED CHANGES Modified Mathlib/RingTheory/WittVector/Isocrystal.lean Modified scripts/nolints.json 2025-01-13 15:16:20 e9171f0 feat(Algebra/Order/Ring/Unbundled/Nonneg.lean): add boundedness lemmas (#18172) Lemmas about limsup and bddAbove needed for #15373. ESTIMATED CHANGES Modified Mathlib/Algebra/Order/GroupWithZero/Unbundled.lean + theorem MonotoneOn.mul Modified Mathlib/Algebra/Order/Ring/Unbundled/Nonneg.lean + theorem BddAbove.range_comp_of_nonneg + theorem bddAbove_range_mul Modified Mathlib/Order/LiminfLimsup.lean + theorem Filter.eventually_add_neg_lt_of_le_liminf + theorem Filter.eventually_lt_add_pos_of_limsup_le + theorem Filter.exists_lt_of_le_liminf + theorem Filter.exists_lt_of_limsup_le 2025-01-13 14:29:41 3aa8ab5 chore: split Mathlib.Topology.Instances.*Real (#20707) Splits each of these files for `Real/EReal/NNReal/ENNReal` into a `Defs` file, containing all the instances and minimal imports, and a `Lemmas` file with all the remaining current content. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/AlgebraicTopology/TopologicalSimplex.lean Modified Mathlib/Analysis/Asymptotics/TVS.lean Modified Mathlib/Analysis/Complex/HalfPlane.lean Modified Mathlib/Analysis/Normed/Field/Lemmas.lean Modified Mathlib/Analysis/Normed/Group/InfiniteSum.lean Modified Mathlib/Analysis/Normed/Group/Lemmas.lean Modified Mathlib/Analysis/Normed/Group/Quotient.lean Modified Mathlib/Analysis/NormedSpace/FunctionSeries.lean Modified Mathlib/Analysis/SpecificLimits/Basic.lean Modified Mathlib/Analysis/SpecificLimits/Normed.lean Modified Mathlib/Analysis/Subadditive.lean Modified Mathlib/Analysis/SumOverResidueClass.lean Modified Mathlib/Data/Complex/Exponential.lean Modified Mathlib/Data/Complex/FiniteDimensional.lean Modified Mathlib/Data/Real/Sqrt.lean Modified Mathlib/Dynamics/Circle/RotationNumber/TranslationNumber.lean Modified Mathlib/MeasureTheory/Constructions/BorelSpace/Basic.lean Modified Mathlib/MeasureTheory/Constructions/BorelSpace/Real.lean Modified Mathlib/MeasureTheory/Decomposition/Jordan.lean Modified Mathlib/MeasureTheory/Integral/VitaliCaratheodory.lean Modified Mathlib/MeasureTheory/Measure/Stieltjes.lean Modified Mathlib/MeasureTheory/OuterMeasure/Basic.lean Modified Mathlib/MeasureTheory/OuterMeasure/Defs.lean Modified Mathlib/Order/Filter/ENNReal.lean Modified Mathlib/Probability/ProbabilityMassFunction/Basic.lean Modified Mathlib/Topology/Algebra/InfiniteSum/ENNReal.lean Modified Mathlib/Topology/Algebra/InfiniteSum/Real.lean Modified Mathlib/Topology/Algebra/Module/Multilinear/Topology.lean Modified Mathlib/Topology/Instances/CantorSet.lean Added Mathlib/Topology/Instances/ENNReal/Defs.lean + theorem ENNReal.isEmbedding_coe + theorem ENNReal.isOpenEmbedding_coe + theorem ENNReal.nhds_coe_coe + theorem ENNReal.tendsto_coe Renamed Mathlib/Topology/Instances/ENNReal.lean to Mathlib/Topology/Instances/ENNReal/Lemmas.lean - theorem ENNReal.isEmbedding_coe - theorem ENNReal.isOpenEmbedding_coe - theorem ENNReal.nhds_coe_coe - theorem ENNReal.tendsto_coe Added Mathlib/Topology/Instances/EReal/Defs.lean + theorem EReal.denseRange_ratCast Renamed Mathlib/Topology/Instances/EReal.lean to Mathlib/Topology/Instances/EReal/Lemmas.lean - theorem EReal.denseRange_ratCast Modified Mathlib/Topology/Instances/Irrational.lean Added Mathlib/Topology/Instances/NNReal/Defs.lean + def ContinuousMap.coeNNRealReal + theorem NNReal.continuous_coe Renamed Mathlib/Topology/Instances/NNReal.lean to Mathlib/Topology/Instances/NNReal/Lemmas.lean - def ContinuousMap.coeNNRealReal - theorem NNReal.continuous_coe Modified Mathlib/Topology/Instances/Rat.lean Added Mathlib/Topology/Instances/Real/Defs.lean + theorem Real.uniformContinuous_add + theorem Real.uniformContinuous_neg Renamed Mathlib/Topology/Instances/Real.lean to Mathlib/Topology/Instances/Real/Lemmas.lean - theorem Real.uniformContinuous_add - theorem Real.uniformContinuous_neg Modified Mathlib/Topology/Instances/ZMultiples.lean Modified Mathlib/Topology/MetricSpace/Completion.lean Modified Mathlib/Topology/MetricSpace/PartitionOfUnity.lean Modified Mathlib/Topology/Order/Bounded.lean Modified Mathlib/Topology/Semicontinuous.lean Modified Mathlib/Topology/UnitInterval.lean Modified MathlibTest/LibrarySearch/IsCompact.lean Modified MathlibTest/peel.lean 2025-01-13 14:29:40 1525575 chore(ENat): don't import fields (#20698) Not sure why this wasn't picked up by shake ESTIMATED CHANGES Modified Mathlib/Algebra/Group/ConjFinite.lean Modified Mathlib/Algebra/Group/Pointwise/Set/Card.lean Modified Mathlib/Algebra/Group/Subgroup/Finite.lean Modified Mathlib/Algebra/GroupWithZero/Pointwise/Set/Card.lean Modified Mathlib/Combinatorics/SimpleGraph/Coloring.lean Modified Mathlib/Combinatorics/SimpleGraph/ConcreteColorings.lean Modified Mathlib/Combinatorics/SimpleGraph/Connectivity/WalkCounting.lean Modified Mathlib/Combinatorics/SimpleGraph/Diam.lean Modified Mathlib/Combinatorics/SimpleGraph/Metric.lean Modified Mathlib/Combinatorics/SimpleGraph/Partition.lean Modified Mathlib/Data/ENat/Basic.lean Modified Mathlib/Data/ENat/BigOperators.lean Modified Mathlib/Data/ENat/Lattice.lean Modified Mathlib/Data/Finite/Card.lean Modified Mathlib/Data/Fintype/Units.lean Modified Mathlib/Data/Matroid/Basic.lean Modified Mathlib/Data/Matroid/Closure.lean Modified Mathlib/Data/Matroid/Constructions.lean Modified Mathlib/Data/Matroid/Dual.lean Modified Mathlib/Data/Matroid/IndepAxioms.lean Modified Mathlib/Data/Matroid/Map.lean Modified Mathlib/Data/Matroid/Restrict.lean Modified Mathlib/Data/Matroid/Sum.lean Modified Mathlib/GroupTheory/CommutingProbability.lean Modified Mathlib/GroupTheory/Coset/Card.lean Modified Mathlib/GroupTheory/HNNExtension.lean Modified Mathlib/GroupTheory/SpecificGroups/Alternating.lean Modified Mathlib/NumberTheory/Padics/PadicVal/Defs.lean Modified Mathlib/Order/Height.lean Modified Mathlib/Order/KrullDimension.lean Modified Mathlib/RingTheory/Multiplicity.lean Modified Mathlib/SetTheory/Cardinal/Aleph.lean Modified Mathlib/SetTheory/Cardinal/ENat.lean Modified Mathlib/SetTheory/Cardinal/Finite.lean Modified Mathlib/SetTheory/Cardinal/ToNat.lean 2025-01-13 14:29:38 ed8e9d0 fix: `apply H at h` when type of `H h` depends on proof of `h` (#20623) This scenario caused two issues: 1. We were deriving the type of `H h` using `forAllTelescopeReducing`, which does not know the proof of `h`, only the type. 2. We were `tryClear`ing `h` before applying `H`, which does not account for the dependency introduced by `H h` itself. ESTIMATED CHANGES Modified Mathlib/Tactic/ApplyAt.lean Modified MathlibTest/ApplyAt.lean 2025-01-13 14:29:37 4879fd7 chore(Algebra/Category/Ring): use unification hint to clean up proofs (#20075) (Everything below is written for `CommRingCat`, but also holds for the other `RingCat`s.) As a consequence of #19757, it became harder to unify `(forget ?C).obj R =?= CommRingCat.carrier R` since `?C =?= CommRingCat` would no longer be inferred. This PR adds a unification hint that helps with all but 2 cases where we need to hint `C := CommRingCat`. The current unification hint uses `CommRingCat` as the argument to `forget`, even though we would like it to be an arbitrary category `C`, which can then trigger downstream unification of `C =?= CommRingCat`. However, it seems that dependent unification hints do not work: I cannot get Lean to typecheck `C =?= CommRingCat; (instC : Category C) =?= CommRingCat.instCategory |- ...`. I tried doing this for `ModuleCat` too and it did not seem to fix any required hints. Perhaps because `ModuleCat R` depends on the `R`? ESTIMATED CHANGES Modified Mathlib/Algebra/Category/ModuleCat/Presheaf/Sheafify.lean Modified Mathlib/Algebra/Category/Ring/Basic.lean Modified Mathlib/AlgebraicGeometry/FunctionField.lean Modified Mathlib/AlgebraicGeometry/Morphisms/ClosedImmersion.lean Modified Mathlib/AlgebraicGeometry/Morphisms/OpenImmersion.lean Modified Mathlib/AlgebraicGeometry/Morphisms/Preimmersion.lean Modified Mathlib/AlgebraicGeometry/Morphisms/QuasiCompact.lean Modified Mathlib/AlgebraicGeometry/Morphisms/QuasiSeparated.lean Modified Mathlib/AlgebraicGeometry/Morphisms/RingHomProperties.lean Modified Mathlib/AlgebraicGeometry/Morphisms/SurjectiveOnStalks.lean Modified Mathlib/AlgebraicGeometry/Scheme.lean Modified Mathlib/AlgebraicGeometry/Sites/SmallAffineZariski.lean Modified Mathlib/AlgebraicGeometry/SpreadingOut.lean Modified Mathlib/Geometry/Manifold/Sheaf/Smooth.lean Modified Mathlib/Geometry/RingedSpace/LocallyRingedSpace/HasColimits.lean Modified Mathlib/Topology/Sheaves/CommRingCat.lean 2025-01-13 14:29:35 a7fbdf2 feat(scripts/autolabel): add `dependency-bump` label automatically (#17538) Add `dependency-bump` label if `lake-manifest.json` has been modified. ESTIMATED CHANGES Modified scripts/autolabel.lean 2025-01-13 13:56:40 71b88c4 chore(Data/Finsupp): split off material on `single`, `update`, `erase` (#19087) To clean up `Mathlib.Algebra.MonoidAlgebra.Defs` I would like to move material on `single` from `Mathlib.Data.Finsupp.Basic` into a smaller file. Although the specific lemmas could go into `Mathlib.Data.Finsupp.Defs`, that file is already rather big, so instead let's split off a file that sits in between `Defs` and `Basic`. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Data/Finsupp/Basic.lean - theorem Finsupp.erase_neg - theorem Finsupp.erase_sub - theorem Finsupp.single_neg - theorem Finsupp.single_sub Modified Mathlib/Data/Finsupp/Defs.lean - theorem AddEquiv.finsuppUnique_symm - theorem Finsupp.apply_single' - theorem Finsupp.apply_single - theorem Finsupp.card_support_eq_one' - theorem Finsupp.card_support_eq_one - theorem Finsupp.card_support_le_one' - theorem Finsupp.card_support_le_one - theorem Finsupp.coe_update - theorem Finsupp.embDomain_single - theorem Finsupp.eq_single_iff - theorem Finsupp.equivFunOnFinite_single - theorem Finsupp.equivFunOnFinite_symm_single - def Finsupp.erase - def Finsupp.eraseAddHom - theorem Finsupp.erase_add - theorem Finsupp.erase_add_single - theorem Finsupp.erase_apply - theorem Finsupp.erase_eq_sub_single - theorem Finsupp.erase_eq_update_zero - theorem Finsupp.erase_idem - theorem Finsupp.erase_ne - theorem Finsupp.erase_of_not_mem_support - theorem Finsupp.erase_same - theorem Finsupp.erase_single - theorem Finsupp.erase_single_ne - theorem Finsupp.erase_update_eq_erase - theorem Finsupp.erase_update_of_ne - theorem Finsupp.erase_zero - theorem Finsupp.induction_linear - theorem Finsupp.induction_on_max - theorem Finsupp.induction_on_max₂ - theorem Finsupp.induction_on_min - theorem Finsupp.induction_on_min₂ - theorem Finsupp.induction₂ - theorem Finsupp.mapRange_single - theorem Finsupp.mem_support_single - theorem Finsupp.range_single_subset - def Finsupp.single - def Finsupp.singleAddHom - theorem Finsupp.single_add - theorem Finsupp.single_add_erase - theorem Finsupp.single_add_single_eq_single_add_single - theorem Finsupp.single_apply - theorem Finsupp.single_apply_eq_zero - theorem Finsupp.single_apply_left - theorem Finsupp.single_apply_mem - theorem Finsupp.single_apply_ne_zero - theorem Finsupp.single_eq_of_ne - theorem Finsupp.single_eq_pi_single - theorem Finsupp.single_eq_same - theorem Finsupp.single_eq_set_indicator - theorem Finsupp.single_eq_single_iff - theorem Finsupp.single_eq_update - theorem Finsupp.single_eq_zero - theorem Finsupp.single_injective - theorem Finsupp.single_left_inj - theorem Finsupp.single_left_injective - theorem Finsupp.single_of_embDomain_single - theorem Finsupp.single_of_single_apply - theorem Finsupp.single_swap - theorem Finsupp.single_zero - theorem Finsupp.support_add_single - theorem Finsupp.support_eq_singleton' - theorem Finsupp.support_eq_singleton - theorem Finsupp.support_erase - theorem Finsupp.support_single_add - theorem Finsupp.support_single_disjoint - theorem Finsupp.support_single_ne_bot - theorem Finsupp.support_single_ne_zero - theorem Finsupp.support_single_subset - theorem Finsupp.support_subset_singleton' - theorem Finsupp.support_subset_singleton - theorem Finsupp.support_update - theorem Finsupp.support_update_ne_zero - theorem Finsupp.support_update_subset - theorem Finsupp.support_update_zero - theorem Finsupp.unique_single - theorem Finsupp.unique_single_eq_iff - def Finsupp.update - theorem Finsupp.update_comm - theorem Finsupp.update_eq_erase_add_single - theorem Finsupp.update_eq_single_add_erase - theorem Finsupp.update_eq_sub_add_single - theorem Finsupp.update_erase_eq_update - theorem Finsupp.update_idem - theorem Finsupp.update_self - theorem Finsupp.zero_update - theorem Finsupp.zipWith_single_single Modified Mathlib/Data/Finsupp/Ext.lean Modified Mathlib/Data/Finsupp/Fin.lean Modified Mathlib/Data/Finsupp/Fintype.lean Modified Mathlib/Data/Finsupp/Indicator.lean Modified Mathlib/Data/Finsupp/Notation.lean Modified Mathlib/Data/Finsupp/Pointwise.lean Modified Mathlib/Data/Finsupp/SMulWithZero.lean Added Mathlib/Data/Finsupp/Single.lean + theorem AddEquiv.finsuppUnique_symm + theorem Finsupp.apply_single' + theorem Finsupp.apply_single + theorem Finsupp.card_support_eq_one' + theorem Finsupp.card_support_eq_one + theorem Finsupp.card_support_le_one' + theorem Finsupp.card_support_le_one + theorem Finsupp.coe_update + theorem Finsupp.embDomain_single + theorem Finsupp.eq_single_iff + theorem Finsupp.equivFunOnFinite_single + theorem Finsupp.equivFunOnFinite_symm_single + def Finsupp.erase + def Finsupp.eraseAddHom + theorem Finsupp.erase_add + theorem Finsupp.erase_add_single + theorem Finsupp.erase_apply + theorem Finsupp.erase_eq_sub_single + theorem Finsupp.erase_eq_update_zero + theorem Finsupp.erase_idem + theorem Finsupp.erase_ne + theorem Finsupp.erase_neg + theorem Finsupp.erase_of_not_mem_support + theorem Finsupp.erase_same + theorem Finsupp.erase_single + theorem Finsupp.erase_single_ne + theorem Finsupp.erase_sub + theorem Finsupp.erase_update_eq_erase + theorem Finsupp.erase_update_of_ne + theorem Finsupp.erase_zero + theorem Finsupp.induction_linear + theorem Finsupp.induction_on_max + theorem Finsupp.induction_on_max₂ + theorem Finsupp.induction_on_min + theorem Finsupp.induction_on_min₂ + theorem Finsupp.induction₂ + theorem Finsupp.mapRange_single + theorem Finsupp.mem_support_single + theorem Finsupp.range_single_subset + def Finsupp.single + def Finsupp.singleAddHom + theorem Finsupp.single_add + theorem Finsupp.single_add_erase + theorem Finsupp.single_add_single_eq_single_add_single + theorem Finsupp.single_apply + theorem Finsupp.single_apply_eq_zero + theorem Finsupp.single_apply_left + theorem Finsupp.single_apply_mem + theorem Finsupp.single_apply_ne_zero + theorem Finsupp.single_eq_of_ne + theorem Finsupp.single_eq_pi_single + theorem Finsupp.single_eq_same + theorem Finsupp.single_eq_set_indicator + theorem Finsupp.single_eq_single_iff + theorem Finsupp.single_eq_update + theorem Finsupp.single_eq_zero + theorem Finsupp.single_injective + theorem Finsupp.single_left_inj + theorem Finsupp.single_left_injective + theorem Finsupp.single_neg + theorem Finsupp.single_of_embDomain_single + theorem Finsupp.single_of_single_apply + theorem Finsupp.single_sub + theorem Finsupp.single_swap + theorem Finsupp.single_zero + theorem Finsupp.support_add_single + theorem Finsupp.support_eq_singleton' + theorem Finsupp.support_eq_singleton + theorem Finsupp.support_erase + theorem Finsupp.support_single_add + theorem Finsupp.support_single_disjoint + theorem Finsupp.support_single_ne_bot + theorem Finsupp.support_single_ne_zero + theorem Finsupp.support_single_subset + theorem Finsupp.support_subset_singleton' + theorem Finsupp.support_subset_singleton + theorem Finsupp.support_update + theorem Finsupp.support_update_ne_zero + theorem Finsupp.support_update_subset + theorem Finsupp.support_update_zero + theorem Finsupp.unique_single + theorem Finsupp.unique_single_eq_iff + def Finsupp.update + theorem Finsupp.update_comm + theorem Finsupp.update_eq_erase_add_single + theorem Finsupp.update_eq_single_add_erase + theorem Finsupp.update_eq_sub_add_single + theorem Finsupp.update_erase_eq_update + theorem Finsupp.update_idem + theorem Finsupp.update_self + theorem Finsupp.zero_update + theorem Finsupp.zipWith_single_single Modified Mathlib/Data/List/ToFinsupp.lean Modified scripts/noshake.json 2025-01-13 13:15:19 f0d4a71 chore(Algebra/Algebra/Defs): add an `algebraMap` field to `Algebra` instead of extending `RingHom` (#20518) as proposed on [zulip](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/too.20many.20.60out.60s/near/492053667) ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/Basic.lean Modified Mathlib/Algebra/Algebra/Defs.lean Modified Mathlib/Algebra/Algebra/Opposite.lean Modified Mathlib/Algebra/Algebra/Pi.lean Modified Mathlib/Algebra/Algebra/Prod.lean Modified Mathlib/Algebra/Algebra/Rat.lean Modified Mathlib/Algebra/Algebra/RestrictScalars.lean Modified Mathlib/Algebra/Algebra/Subalgebra/Basic.lean Modified Mathlib/Algebra/Algebra/Unitization.lean Modified Mathlib/Algebra/Algebra/ZMod.lean Modified Mathlib/Algebra/DirectSum/Algebra.lean Modified Mathlib/Algebra/FreeAlgebra.lean Modified Mathlib/Algebra/Module/LocalizedModule/Basic.lean Modified Mathlib/Algebra/MonoidAlgebra/Basic.lean Modified Mathlib/Algebra/Polynomial/AlgebraMap.lean Modified Mathlib/Algebra/Polynomial/Laurent.lean Modified Mathlib/Algebra/Quaternion.lean Modified Mathlib/Algebra/RingQuot.lean Modified Mathlib/Algebra/TrivSqZeroExt.lean Modified Mathlib/Analysis/CStarAlgebra/Multiplier.lean Modified Mathlib/Analysis/RCLike/Basic.lean Modified Mathlib/CategoryTheory/Monoidal/Internal/Module.lean Modified Mathlib/Combinatorics/Enumerative/IncidenceAlgebra.lean Modified Mathlib/Data/Complex/Module.lean Modified Mathlib/Data/ENNReal/Operations.lean Modified Mathlib/Data/Matrix/Basic.lean Modified Mathlib/Data/NNReal/Defs.lean Modified Mathlib/FieldTheory/Galois/Basic.lean Modified Mathlib/FieldTheory/RatFunc/Basic.lean Modified Mathlib/Geometry/Manifold/Algebra/SmoothFunctions.lean Modified Mathlib/LinearAlgebra/Eigenspace/Minpoly.lean Modified Mathlib/LinearAlgebra/Matrix/Reindex.lean Modified Mathlib/LinearAlgebra/TensorProduct/Graded/Internal.lean Modified Mathlib/RingTheory/AdicCompletion/Algebra.lean Modified Mathlib/RingTheory/Algebraic/Pi.lean Modified Mathlib/RingTheory/DedekindDomain/AdicValuation.lean Modified Mathlib/RingTheory/DedekindDomain/FiniteAdeleRing.lean Modified Mathlib/RingTheory/Extension.lean Modified Mathlib/RingTheory/GradedAlgebra/HomogeneousLocalization.lean Modified Mathlib/RingTheory/HahnSeries/Multiplication.lean Modified Mathlib/RingTheory/Ideal/Operations.lean Modified Mathlib/RingTheory/Ideal/Quotient/Operations.lean Modified Mathlib/RingTheory/MvPowerSeries/Basic.lean Modified Mathlib/RingTheory/OreLocalization/Ring.lean Modified Mathlib/RingTheory/PiTensorProduct.lean Modified Mathlib/RingTheory/TensorProduct/Basic.lean Modified Mathlib/RingTheory/Valuation/ValExtension.lean Modified Mathlib/Topology/Algebra/SeparationQuotient/Basic.lean Modified Mathlib/Topology/Algebra/UniformRing.lean Modified Mathlib/Topology/ContinuousMap/Algebra.lean Modified Mathlib/Topology/ContinuousMap/Bounded/Basic.lean Modified Mathlib/Topology/LocallyConstant/Algebra.lean 2025-01-13 12:45:54 c485bfa chore: review induction principles for `Set.Finite` (#20444) Rename `Set.Finite.dinduction_on` to `Set.Finite.induction_on` as this is the more useful induction principle (it works with `induction`). Rename `Set.Finite.induction_on'` to `Set.Finite.induction_on_subset` and make it dependent. Give the assumptions meaningful names. ESTIMATED CHANGES Modified Mathlib/Data/Set/Card.lean Modified Mathlib/Data/Set/Finite/Basic.lean - theorem Set.Finite.dinduction_on - theorem Set.Finite.induction_on' +/- theorem Set.Finite.induction_on + theorem Set.Finite.induction_on_subset Modified Mathlib/Data/Set/Finite/Lattice.lean Modified Mathlib/FieldTheory/IntermediateField/Adjoin/Basic.lean Modified Mathlib/LinearAlgebra/TensorProduct/Finiteness.lean Modified Mathlib/MeasureTheory/Integral/IntegrableOn.lean Modified Mathlib/MeasureTheory/MeasurableSpace/Defs.lean Modified Mathlib/NumberTheory/Cyclotomic/Basic.lean Modified Mathlib/Order/Filter/Finite.lean Modified Mathlib/Order/Filter/Ultrafilter.lean Modified Mathlib/RingTheory/AlgebraicIndependent/Transcendental.lean Modified Mathlib/RingTheory/Finiteness/Nakayama.lean Modified Mathlib/RingTheory/IntegralClosure/IsIntegral/Basic.lean Modified Mathlib/Topology/Basic.lean Modified Mathlib/Topology/ContinuousOn.lean Modified Mathlib/Topology/GDelta/Basic.lean Modified Mathlib/Topology/MetricSpace/MetricSeparated.lean Modified Mathlib/Topology/Separation/GDelta.lean 2025-01-13 11:54:09 2b47f63 chore(Data/List): move a `Prod` lemma from `Basic.lean` to `ProdSigma.lean` (#20702) Noticed in the late importers report: https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Late.20importers.20report/near/493286162 `List/Basic.lean` is very low down in the hierarchy so saving a few imports here might cause a big change transitively. ESTIMATED CHANGES Modified Mathlib/Data/List/Basic.lean - theorem List.mem_map_swap Modified Mathlib/Data/List/Chain.lean Modified Mathlib/Data/List/ProdSigma.lean + theorem List.mem_map_swap 2025-01-13 11:11:15 7c7c15f feat: `#count_heartbeats` for all declarations (#20421) The "countHeartbeats" linter counts the heartbeats of every declaration. The effect of the linter is similar to `#count_heartbeats in xxx`, except that it applies to all declarations. Note that the linter only counts heartbeats in "top-level" declarations: it looks inside `set_option ... in`, but not, for instance, inside `mutual` blocks. There is a convenience notation `#count_heartbeats` that simply sets the linter option to true. *Note*. I also renamed `count_heartbeats ...` to `#count_heartbeats ...`. [Zulip](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/count_heartbeats.20for.20all.20declarations.20in.20a.20file.3F) ESTIMATED CHANGES Modified Mathlib/Util/CountHeartbeats.lean + def Mathlib.CountHeartbeats.Mathlib.Linter.CountHeartbeats.countHeartbeatsLinter Modified MathlibTest/CountHeartbeats.lean + theorem XY' + theorem XY + theorem YX' + theorem YX 2025-01-13 10:56:16 ce6118d chore(LpSpace): move results about the L^p norm earlier (#20541) `MeasureTheory.Function.LpSpace` is supposed to be about the L^p space itself, but contains a bunch of results about the L^p norm as well. Move those results to `MeasureTheory.Function.LpSeminorm.Basic` and `MeasureTheory.Function.LpSeminorm.CompareExp`. Also rename lemmas about nesting of L^p norms. From LeanAPAP Moves: * `Memℒp.memℒp_of_exponent_le_of_measure_support_ne_top` -> `Memℒp.mono_exponent_of_measure_support_ne_top` * `Memℒp.memℒp_of_exponent_le` -> `Memℒp.mono_exponent` ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Function/L1Space.lean Modified Mathlib/MeasureTheory/Function/LocallyIntegrable.lean Modified Mathlib/MeasureTheory/Function/LpSeminorm/Basic.lean + theorem MeasureTheory.Memℒp.indicator + theorem MeasureTheory.eLpNormEssSup_indicator_const_eq + theorem MeasureTheory.eLpNormEssSup_indicator_const_le + theorem MeasureTheory.eLpNormEssSup_indicator_eq_eLpNormEssSup_restrict + theorem MeasureTheory.eLpNormEssSup_indicator_le +/- theorem MeasureTheory.eLpNormEssSup_piecewise + theorem MeasureTheory.eLpNorm_indicator_const' + theorem MeasureTheory.eLpNorm_indicator_const + theorem MeasureTheory.eLpNorm_indicator_const_le + theorem MeasureTheory.eLpNorm_indicator_const₀ + theorem MeasureTheory.eLpNorm_indicator_eq_eLpNorm_restrict - theorem MeasureTheory.eLpNorm_indicator_eq_restrict + theorem MeasureTheory.eLpNorm_indicator_le +/- theorem MeasureTheory.eLpNorm_top_piecewise + theorem MeasureTheory.memℒp_indicator_const + theorem MeasureTheory.memℒp_indicator_iff_restrict Modified Mathlib/MeasureTheory/Function/LpSeminorm/CompareExp.lean - theorem MeasureTheory.Memℒp.memℒp_of_exponent_le + theorem MeasureTheory.Memℒp.mono_exponent + theorem MeasureTheory.Memℒp.mono_exponent_of_measure_support_ne_top Modified Mathlib/MeasureTheory/Function/LpSpace.lean - theorem MeasureTheory.Memℒp.indicator - theorem MeasureTheory.Memℒp.memℒp_of_exponent_le_of_measure_support_ne_top - theorem MeasureTheory.eLpNormEssSup_indicator_const_eq - theorem MeasureTheory.eLpNormEssSup_indicator_const_le - theorem MeasureTheory.eLpNormEssSup_indicator_eq_eLpNormEssSup_restrict - theorem MeasureTheory.eLpNormEssSup_indicator_le - theorem MeasureTheory.eLpNorm_indicator_const' - theorem MeasureTheory.eLpNorm_indicator_const - theorem MeasureTheory.eLpNorm_indicator_const_le - theorem MeasureTheory.eLpNorm_indicator_const₀ - theorem MeasureTheory.eLpNorm_indicator_eq_eLpNorm_restrict - theorem MeasureTheory.eLpNorm_indicator_le - theorem MeasureTheory.memℒp_indicator_const - theorem MeasureTheory.memℒp_indicator_iff_restrict Modified Mathlib/MeasureTheory/Integral/IntegrableOn.lean 2025-01-13 10:36:51 ff8b24e feat(EReal): add `toENNReal` (#18885) - Add definition of `EReal.toENNReal`. - Add some API lemmas for `toENNReal`. - Add measurability and continuity lemmas for `toENNReal`. ESTIMATED CHANGES Modified Mathlib/Data/Real/EReal.lean + theorem EReal.add_ne_top_iff_of_ne_bot + theorem EReal.add_ne_top_iff_of_ne_bot_of_ne_top + theorem EReal.coe_toENNReal + theorem EReal.coe_toENNReal_eq_max + theorem EReal.real_coe_toENNReal + theorem EReal.toENNReal_add + theorem EReal.toENNReal_add_le + theorem EReal.toENNReal_bot + theorem EReal.toENNReal_coe + theorem EReal.toENNReal_eq_toENNReal + theorem EReal.toENNReal_eq_top_iff + theorem EReal.toENNReal_eq_zero_iff + theorem EReal.toENNReal_le_toENNReal + theorem EReal.toENNReal_lt_toENNReal + theorem EReal.toENNReal_mul' + theorem EReal.toENNReal_mul + theorem EReal.toENNReal_ne_top_iff + theorem EReal.toENNReal_ne_zero_iff + theorem EReal.toENNReal_of_ne_top + theorem EReal.toENNReal_of_nonpos + theorem EReal.toENNReal_sub + theorem EReal.toENNReal_top + theorem EReal.toENNReal_zero + theorem EReal.toReal_toENNReal Modified Mathlib/MeasureTheory/Constructions/BorelSpace/Real.lean + theorem AEMeasurable.ereal_toENNReal + theorem Measurable.ereal_toENNReal + theorem measurable_ereal_toENNReal Modified Mathlib/Topology/Instances/EReal.lean + theorem Continous.ereal_toENNReal + theorem ContinuousAt.ereal_toENNReal + theorem ContinuousOn.ereal_toENNReal + theorem ContinuousWithinAt.ereal_toENNReal + theorem EReal.continuous_toENNReal 2025-01-13 10:02:47 143aee4 feat(GroupTheory/SpecificGroups/ZGroup): Commutator subgroup of a Z-group is a Hall subgroup (#20694) This PR proves that the commutator subgroup of a finite Z-group is a Hall subgroup. There are several intermediate results about p-groups and Sylow subgroups, but they require the heavy import of `FieldTheory/Finite/Basic`, so I decided to leave them in the Z-groups file. ESTIMATED CHANGES Modified Mathlib/GroupTheory/SpecificGroups/ZGroup.lean + theorem IsPGroup.commutator_eq_bot_or_commutator_eq_self + theorem IsPGroup.smul_mul_inv_trivial_or_surjective + theorem IsZGroup.coprime_commutator_index - theorem IsZGroup.isZGroup_of_coprime + theorem Sylow.commutator_eq_bot_or_commutator_eq_self + theorem Sylow.le_center_or_le_commutator + theorem Sylow.normalizer_le_centralizer_or_le_commutator + theorem Sylow.not_dvd_card_commutator_or_not_dvd_index_commutator + theorem isZGroup_of_coprime 2025-01-13 10:02:46 5cb027f feat(Analysis/MeanInequalitiesPow): add Real.rpow versions of some lemmas (#20685) This adds `Real.rpow` versions of four existing lemmas for `{E|}NNreal.rpow`. One of these is useful for showing that the `e`th power (with `0 < e ≤ 1`) of an absolute value is again an absolute value. We add the other three for consistency. ESTIMATED CHANGES Modified Mathlib/Analysis/MeanInequalitiesPow.lean + theorem Real.add_rpow_le_rpow_add + theorem Real.rpow_add_le_add_rpow + theorem Real.rpow_add_rpow_le + theorem Real.rpow_add_rpow_le_add 2025-01-13 10:02:44 2c53e45 feat: `IsSuccPrelimit a → IsLUB (Iio a) a` (#20496) This is somewhat more general than the statement involving `sSup`. ESTIMATED CHANGES Modified Mathlib/Order/SuccPred/CompleteLinearOrder.lean Modified Mathlib/Order/SuccPred/Limit.lean + theorem Order.IsPredLimit.isGLB_Ioi + theorem Order.IsPredPrelimit.isGLB_Ioi + theorem Order.IsSuccLimit.isLUB_Iio + theorem Order.IsSuccPrelimit.isLUB_Iio + theorem Order.isGLB_Ioi_iff_isPredPrelimit + theorem Order.isLUB_Iio_iff_isSuccPrelimit 2025-01-13 10:02:43 ff261af feat(Data/Finsupp/Fin): Lemmas relating `Finsupp.{tail/update}` (#20361) This is a sub-PR for #19315 as requested by Yaël It adds two lemmas relating `Finsupp.tail` with `Finsupp.update`, similar to the equivalent version on `Fin`. ESTIMATED CHANGES Modified Mathlib/Data/Finsupp/Defs.lean + theorem Finsupp.coe_equivFunOnFinite_symm Modified Mathlib/Data/Finsupp/Fin.lean + theorem Finsupp.tail_update_succ + theorem Finsupp.tail_update_zero 2025-01-13 10:02:42 cf581dc feat: `(∏ᶠ i, f i) a = ∏ᶠ i, f i a` (#20203) From FLT ESTIMATED CHANGES Modified Mathlib/Algebra/BigOperators/Finprod.lean + theorem finprod_apply + theorem finprod_apply_ne_one +/- theorem finprod_mem_mulSupport + theorem finprod_option 2025-01-13 10:02:40 bc14fcf feat: the localization of `R[X]` at `S` is the polynomial ring over the localization of `R` at `S` (#20070) From GrowthInGroups (LeanCamCombi) ESTIMATED CHANGES Modified Mathlib/RingTheory/Localization/Algebra.lean + theorem Polynomial.isLocalization Modified Mathlib/RingTheory/MvPolynomial/Localization.lean Modified Mathlib/RingTheory/PolynomialAlgebra.lean + theorem coe_polyEquivTensor' + theorem coe_polyEquivTensor'_symm + def polyEquivTensor' 2025-01-13 10:02:39 4f2a129 feat(SetTheory): the predicate HasCardinalLT (#19959) We introduce the universe-heterogeneous predicate `HasCardinalLT X κ` for `X : Type u` and `κ : Cardinal.{v}` saying that the cardinal of `X` is (strictly) less than `κ`. (This shall be used in the formalization of `κ`-filtered categories, which generalize filtered categories.) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/SetTheory/Cardinal/HasCardinalLT.lean + theorem HasCardinalLT.of_injective + theorem HasCardinalLT.of_le + theorem HasCardinalLT.of_surjective + theorem HasCardinalLT.small + def HasCardinalLT + theorem hasCardinalLT_aleph0_iff + theorem hasCardinalLT_iff_cardinal_mk_lt + theorem hasCardinalLT_iff_of_equiv 2025-01-13 10:02:37 afd9d57 feat: transversals of a finite index subgroup are finite (#19871) From FLT ESTIMATED CHANGES Modified Mathlib/GroupTheory/Complement.lean + theorem Subgroup.IsComplement.finite_left + theorem Subgroup.IsComplement.finite_right + theorem Subgroup.IsComplement.nonempty_left + theorem Subgroup.IsComplement.nonempty_right + theorem Subgroup.IsComplement.pairwiseDisjoint_smul + theorem Subgroup.not_isComplement_empty_left + theorem Subgroup.not_isComplement_empty_right 2025-01-13 09:34:11 6ee88ac feat: more results about `IsLittleOTVS` (#20220) It will be cleaner to generalize the results for `fderiv` after writing a few more of these lemmas, rather than shuffling everything around. ESTIMATED CHANGES Modified Mathlib/Analysis/Asymptotics/TVS.lean + theorem Asymptotics.IsLittleOTVS.bot + theorem Asymptotics.IsLittleOTVS.comp_tendsto + theorem Asymptotics.IsLittleOTVS.congr' + theorem Asymptotics.IsLittleOTVS.congr + theorem Asymptotics.IsLittleOTVS.congr_left + theorem Asymptotics.IsLittleOTVS.congr_right + theorem Asymptotics.IsLittleOTVS.insert + theorem Asymptotics.IsLittleOTVS.mono + theorem Asymptotics.IsLittleOTVS.sup +/- theorem Asymptotics.IsLittleOTVS.tendsto_inv_smul + theorem Asymptotics.IsLittleOTVS.trans + theorem Asymptotics.IsLittleOTVS.zero + theorem Asymptotics.isLittleOTVS_congr + theorem Asymptotics.isLittleOTVS_iff_smallSets + theorem Asymptotics.isLittleOTVS_insert +/- theorem Asymptotics.isLittleOTVS_map +/- theorem Asymptotics.isLittleOTVS_one + theorem Asymptotics.isLittleOTVS_sup Modified Mathlib/Analysis/Calculus/FDeriv/Basic.lean Modified Mathlib/Analysis/Calculus/FDeriv/Linear.lean Modified Mathlib/Analysis/Convex/EGauge.lean + theorem egauge_union + theorem le_egauge_inter Modified Mathlib/Order/Filter/Bases.lean + theorem Filter.eventually_prod_self_iff' 2025-01-13 09:13:38 84086d4 perf(ModelTheory/Algebra/Ring/Definability): re-squeeze a slow simp (#20549) ESTIMATED CHANGES Modified Mathlib/ModelTheory/Algebra/Ring/Definability.lean 2025-01-13 05:50:15 666dd63 chore: split `Algebra/BigOperators/Group/{Multiset,Finset}` (#20629) Follow on from #20625. Keeps only what is possible with the minimal imports required for the definitions themselves in the `Defs` file, and everything else moves to `Lemmas`. ESTIMATED CHANGES Modified Archive/Imo/Imo2013Q1.lean Modified Archive/Wiedijk100Theorems/InverseTriangleSum.lean Modified Mathlib.lean Renamed Mathlib/Algebra/BigOperators/Group/Finset.lean to Mathlib/Algebra/BigOperators/Group/Finset/Basic.lean - def BigOperators.bigOpBindersPattern - def BigOperators.bigOpBindersProd - def BigOperators.delabFinsetProd - def BigOperators.delabFinsetSum - def BigOperators.processBigOpBinder - def BigOperators.processBigOpBinders - theorem Equiv.Perm.prod_comp' - theorem Equiv.Perm.prod_comp - theorem Equiv.prod_comp - theorem Finset.nonempty_of_prod_ne_one - theorem Finset.op_sum - theorem Finset.prod_attach_univ - theorem Finset.prod_bij' - theorem Finset.prod_bij - theorem Finset.prod_bijective - theorem Finset.prod_coe_sort_eq_attach - theorem Finset.prod_const_one - theorem Finset.prod_dite_irrel - theorem Finset.prod_div_distrib - theorem Finset.prod_dvd_prod_of_subset - theorem Finset.prod_empty - theorem Finset.prod_eq_multiset_prod - theorem Finset.prod_equiv - theorem Finset.prod_erase_attach - theorem Finset.prod_hom_rel - theorem Finset.prod_induction - theorem Finset.prod_induction_nonempty - theorem Finset.prod_int_mod - theorem Finset.prod_inv_distrib - theorem Finset.prod_ite_index - theorem Finset.prod_ite_irrel - theorem Finset.prod_map - theorem Finset.prod_map_val - theorem Finset.prod_mem_multiset - theorem Finset.prod_mk - theorem Finset.prod_nat_mod - theorem Finset.prod_nbij' - theorem Finset.prod_nbij - theorem Finset.prod_of_isEmpty - theorem Finset.prod_pow - theorem Finset.prod_range_zero - theorem Finset.prod_to_list - theorem Finset.prod_val - theorem Finset.prod_zpow - theorem Finset.sum_filter_count_eq_countP - theorem Finset.sum_int_mod - theorem Finset.sum_multiset_singleton - theorem Finset.sum_nat_mod - theorem Finset.unop_sum - theorem Fintype.prod_bijective - theorem Fintype.prod_empty - theorem Fintype.prod_equiv - theorem Function.Bijective.prod_comp - theorem Multiset.card_sum - theorem Multiset.count_sum' - theorem Multiset.disjoint_finset_sum_left - theorem Multiset.disjoint_finset_sum_right - theorem Multiset.disjoint_list_sum_left - theorem Multiset.disjoint_list_sum_right - theorem Multiset.disjoint_sum_left - theorem Multiset.disjoint_sum_right - theorem Multiset.toFinset_prod_dvd_prod - theorem Units.coe_prod - theorem map_prod - theorem ofAdd_list_prod - theorem ofAdd_multiset_prod - theorem ofAdd_sum - theorem ofMul_list_prod - theorem ofMul_multiset_prod - theorem ofMul_prod - theorem toAdd_list_sum - theorem toAdd_multiset_sum - theorem toAdd_prod - theorem toMul_list_sum - theorem toMul_multiset_sum - theorem toMul_sum Added Mathlib/Algebra/BigOperators/Group/Finset/Defs.lean + def BigOperators.bigOpBindersPattern + def BigOperators.bigOpBindersProd + def BigOperators.delabFinsetProd + def BigOperators.delabFinsetSum + def BigOperators.processBigOpBinder + def BigOperators.processBigOpBinders + theorem Equiv.Perm.prod_comp' + theorem Equiv.Perm.prod_comp + theorem Equiv.prod_comp + theorem Finset.nonempty_of_prod_ne_one + theorem Finset.op_sum + theorem Finset.prod_attach_univ + theorem Finset.prod_bij' + theorem Finset.prod_bij + theorem Finset.prod_bijective + theorem Finset.prod_coe_sort_eq_attach + theorem Finset.prod_const_one + theorem Finset.prod_dite_irrel + theorem Finset.prod_div_distrib + theorem Finset.prod_dvd_prod_of_subset + theorem Finset.prod_empty + theorem Finset.prod_eq_multiset_prod + theorem Finset.prod_equiv + theorem Finset.prod_erase_attach + theorem Finset.prod_hom_rel + theorem Finset.prod_induction + theorem Finset.prod_induction_nonempty + theorem Finset.prod_int_mod + theorem Finset.prod_inv_distrib + theorem Finset.prod_ite_index + theorem Finset.prod_ite_irrel + theorem Finset.prod_map + theorem Finset.prod_map_val + theorem Finset.prod_mem_multiset + theorem Finset.prod_mk + theorem Finset.prod_nat_mod + theorem Finset.prod_nbij' + theorem Finset.prod_nbij + theorem Finset.prod_of_isEmpty + theorem Finset.prod_pow + theorem Finset.prod_range_zero + theorem Finset.prod_to_list + theorem Finset.prod_val + theorem Finset.prod_zpow + theorem Finset.sum_filter_count_eq_countP + theorem Finset.sum_int_mod + theorem Finset.sum_multiset_singleton + theorem Finset.sum_nat_mod + theorem Finset.unop_sum + theorem Fintype.prod_bijective + theorem Fintype.prod_empty + theorem Fintype.prod_equiv + theorem Function.Bijective.prod_comp + theorem Multiset.card_sum + theorem Multiset.count_sum' + theorem Multiset.disjoint_finset_sum_left + theorem Multiset.disjoint_finset_sum_right + theorem Multiset.disjoint_list_sum_left + theorem Multiset.disjoint_list_sum_right + theorem Multiset.disjoint_sum_left + theorem Multiset.disjoint_sum_right + theorem Multiset.toFinset_prod_dvd_prod + theorem Units.coe_prod + theorem map_prod + theorem ofAdd_list_prod + theorem ofAdd_multiset_prod + theorem ofAdd_sum + theorem ofMul_list_prod + theorem ofMul_multiset_prod + theorem ofMul_prod + theorem toAdd_list_sum + theorem toAdd_multiset_sum + theorem toAdd_prod + theorem toMul_list_sum + theorem toMul_multiset_sum + theorem toMul_sum Renamed Mathlib/Algebra/BigOperators/Group/Multiset.lean to Mathlib/Algebra/BigOperators/Group/Multiset/Basic.lean - theorem Multiset.pow_count - def Multiset.prod - theorem Multiset.prod_coe - theorem Multiset.prod_cons - theorem Multiset.prod_eq_foldl - theorem Multiset.prod_eq_foldr - theorem Multiset.prod_hom_rel - theorem Multiset.prod_induction - theorem Multiset.prod_induction_nonempty - theorem Multiset.prod_map_one - theorem Multiset.prod_pair - theorem Multiset.prod_replicate - theorem Multiset.prod_singleton - theorem Multiset.prod_toList - theorem Multiset.prod_zero Added Mathlib/Algebra/BigOperators/Group/Multiset/Defs.lean + theorem Multiset.pow_count + def Multiset.prod + theorem Multiset.prod_coe + theorem Multiset.prod_cons + theorem Multiset.prod_eq_foldl + theorem Multiset.prod_eq_foldr + theorem Multiset.prod_hom_rel + theorem Multiset.prod_induction + theorem Multiset.prod_induction_nonempty + theorem Multiset.prod_map_one + theorem Multiset.prod_pair + theorem Multiset.prod_replicate + theorem Multiset.prod_singleton + theorem Multiset.prod_toList + theorem Multiset.prod_zero Modified Mathlib/Algebra/BigOperators/GroupWithZero/Action.lean Modified Mathlib/Algebra/BigOperators/GroupWithZero/Finset.lean Modified Mathlib/Algebra/BigOperators/Intervals.lean Modified Mathlib/Algebra/BigOperators/NatAntidiagonal.lean Modified Mathlib/Algebra/BigOperators/Option.lean Modified Mathlib/Algebra/BigOperators/Ring/Multiset.lean Modified Mathlib/Algebra/BigOperators/Ring/Nat.lean Modified Mathlib/Algebra/BigOperators/RingEquiv.lean Modified Mathlib/Algebra/BigOperators/Sym.lean Modified Mathlib/Algebra/BigOperators/WithTop.lean Modified Mathlib/Algebra/GradedMonoid.lean Modified Mathlib/Algebra/Group/EvenFunction.lean Modified Mathlib/Algebra/Group/Pointwise/Finset/Basic.lean Modified Mathlib/Algebra/Group/Pointwise/Set/BigOperators.lean Modified Mathlib/Algebra/Module/Submodule/LinearMap.lean Modified Mathlib/Algebra/Order/BigOperators/Group/Finset.lean Modified Mathlib/Algebra/Order/BigOperators/Group/LocallyFinite.lean Modified Mathlib/Algebra/Order/BigOperators/Group/Multiset.lean Modified Mathlib/Algebra/Order/BigOperators/GroupWithZero/Multiset.lean Modified Mathlib/Algebra/Order/BigOperators/Ring/Multiset.lean Modified Mathlib/Algebra/Order/Rearrangement.lean Modified Mathlib/Algebra/Regular/Pow.lean Modified Mathlib/Algebra/Ring/SumsOfSquares.lean Modified Mathlib/Algebra/Star/BigOperators.lean Modified Mathlib/Algebra/Tropical/BigOperators.lean Modified Mathlib/CategoryTheory/Preadditive/Basic.lean Modified Mathlib/CategoryTheory/Preadditive/Biproducts.lean Modified Mathlib/CategoryTheory/Preadditive/FunctorCategory.lean Modified Mathlib/CategoryTheory/Preadditive/Mat.lean Modified Mathlib/CategoryTheory/Subobject/Lattice.lean Modified Mathlib/Combinatorics/Additive/Dissociation.lean Modified Mathlib/Combinatorics/HalesJewett.lean Modified Mathlib/Combinatorics/Hindman.lean Modified Mathlib/Combinatorics/SetFamily/Shatter.lean Modified Mathlib/Data/Finset/NoncommProd.lean Modified Mathlib/Data/Finset/Slice.lean Modified Mathlib/Data/Finsupp/BigOperators.lean Modified Mathlib/Data/Holor.lean Modified Mathlib/Data/Multiset/Bind.lean Modified Mathlib/Data/Multiset/Fintype.lean Modified Mathlib/Data/Nat/Factorial/DoubleFactorial.lean Modified Mathlib/Data/Nat/Fib/Basic.lean Modified Mathlib/Data/Nat/GCD/BigOperators.lean Modified Mathlib/Data/PNat/Factors.lean Modified Mathlib/Data/Rat/BigOperators.lean Modified Mathlib/Data/Sym/Card.lean Modified Mathlib/Deprecated/Submonoid.lean Modified Mathlib/Dynamics/BirkhoffSum/Basic.lean Modified Mathlib/GroupTheory/Congruence/BigOperators.lean Modified Mathlib/GroupTheory/QuotientGroup/Basic.lean Modified Mathlib/LinearAlgebra/Lagrange.lean Modified Mathlib/Logic/Godel/GodelBetaFunction.lean Modified Mathlib/MeasureTheory/Measure/AddContent.lean Modified Mathlib/Order/Filter/AtTopBot/BigOperators.lean Modified Mathlib/Order/LiminfLimsup.lean Modified Mathlib/Order/Partition/Finpartition.lean Modified Mathlib/RingTheory/Localization/Defs.lean Modified Mathlib/RingTheory/Multiplicity.lean Modified Mathlib/RingTheory/Prime.lean Modified Mathlib/RingTheory/UniqueFactorizationDomain/Defs.lean Modified Mathlib/Tactic/NormNum/BigOperators.lean Modified MathlibTest/apply_congr.lean Modified MathlibTest/linarith.lean Modified MathlibTest/matrix.lean Modified scripts/noshake.json 2025-01-12 21:56:32 039d0c7 doc(Mathlib/Algebra/CharP/LinearMaps.lean): Fix doc errors (#20679) 1. Fix the doc-string of `Mathlib/Algebra/CharP/LinearMaps.lean`: the name `CharP_if` is outdated and is now corrected as `Module.charP_end`. 2. Express the condition of `Module.charP_end` in the term of torsion. ESTIMATED CHANGES Modified Mathlib/Algebra/CharP/LinearMaps.lean 2025-01-12 21:34:33 065c4f7 feat(Topology/Algebra/Module/ModuleTopology): finite products of modules. (#20453) From FLT. Binary and finite products of modules with the module topology also have the module topology. ESTIMATED CHANGES Modified Mathlib/Topology/Algebra/Module/ModuleTopology.lean 2025-01-12 21:12:02 607d798 refactor(SetTheory/Ordinal/NaturalOps): redefine natural addition without `blsub` (#19236) This is progress towards deprecating `Ordinal.blsub` (and `Ordinal.lsub`) altogether. ESTIMATED CHANGES Modified Mathlib/SetTheory/Game/Birthday.lean +/- theorem SetTheory.PGame.birthday_add Modified Mathlib/SetTheory/Ordinal/Arithmetic.lean + theorem Ordinal.iSup_succ Modified Mathlib/SetTheory/Ordinal/Basic.lean + theorem Ordinal.Iio_one_default_eq Modified Mathlib/SetTheory/Ordinal/NaturalOps.lean - theorem Ordinal.nadd_def +/- theorem Ordinal.nadd_one +/- theorem Ordinal.nadd_zero 2025-01-12 20:22:34 ea9d85f chore(Subalgebra/Unitization): move unrelated defs/lemmas earlier (#20526) The `Subobject.toNonUnitalSubobject` and `NonUnitalSubobject.toSubobject` functions (for `Subobject` = `Subsemiring`, `Subring`, `Subalgebra`, `StarSubalgebra`) were in `Algebra.Algebra.Subalgebra.Unitization` instead of where `Subobject` is defined. This PR moves them there, at the cost of importing `NonUnitalSubobject` when defining `Subobject` (which seems like a fine trade-off). ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/Subalgebra/Basic.lean + def NonUnitalSubalgebra.toSubalgebra + theorem NonUnitalSubalgebra.toSubalgebra_toNonUnitalSubalgebra + theorem Subalgebra.one_mem_toNonUnitalSubalgebra + def Subalgebra.toNonUnitalSubalgebra + theorem Subalgebra.toNonUnitalSubalgebra_toSubalgebra Modified Mathlib/Algebra/Algebra/Subalgebra/Unitization.lean - theorem Algebra.adjoin_nonUnitalSubalgebra - theorem Algebra.adjoin_nonUnitalSubalgebra_eq_span - theorem NonUnitalAlgebra.adjoin_le_algebra_adjoin - theorem NonUnitalStarAlgebra.adjoin_le_starAlgebra_adjoin - def NonUnitalStarSubalgebra.toStarSubalgebra - theorem NonUnitalStarSubalgebra.toStarSubalgebra_toNonUnitalStarSubalgebra - def NonUnitalSubalgebra.toSubalgebra - theorem NonUnitalSubalgebra.toSubalgebra_toNonUnitalSubalgebra - def NonUnitalSubring.toSubring - theorem NonUnitalSubring.toSubring_toNonUnitalSubring - def NonUnitalSubsemiring.toSubsemiring - theorem NonUnitalSubsemiring.toSubsemiring_toNonUnitalSubsemiring - theorem StarAlgebra.adjoin_nonUnitalStarSubalgebra - theorem StarAlgebra.adjoin_nonUnitalStarSubalgebra_eq_span - theorem StarSubalgebra.one_mem_toNonUnitalStarSubalgebra - def StarSubalgebra.toNonUnitalStarSubalgebra - theorem StarSubalgebra.toNonUnitalStarSubalgebra_toStarSubalgebra - theorem Subalgebra.one_mem_toNonUnitalSubalgebra - def Subalgebra.toNonUnitalSubalgebra - theorem Subalgebra.toNonUnitalSubalgebra_toSubalgebra - theorem Submonoid.subsemiringClosure_toNonUnitalSubsemiring - theorem Subring.one_mem_toNonUnitalSubring - def Subring.toNonUnitalSubring - theorem Subring.toNonUnitalSubring_toSubring - theorem Subsemiring.coe_toNonUnitalSubsemiring - theorem Subsemiring.mem_toNonUnitalSubsemiring - theorem Subsemiring.one_mem_toNonUnitalSubsemiring - def Subsemiring.toNonUnitalSubsemiring - theorem Subsemiring.toNonUnitalSubsemiring_inj - theorem Subsemiring.toNonUnitalSubsemiring_injective - theorem Subsemiring.toNonUnitalSubsemiring_toSubsemiring Modified Mathlib/Algebra/Ring/Subring/Defs.lean + def NonUnitalSubring.toSubring + theorem NonUnitalSubring.toSubring_toNonUnitalSubring + theorem Subring.one_mem_toNonUnitalSubring + def Subring.toNonUnitalSubring + theorem Subring.toNonUnitalSubring_toSubring Modified Mathlib/Algebra/Ring/Subsemiring/Basic.lean + theorem Submonoid.subsemiringClosure_toNonUnitalSubsemiring Modified Mathlib/Algebra/Ring/Subsemiring/Defs.lean + def NonUnitalSubsemiring.toSubsemiring + theorem NonUnitalSubsemiring.toSubsemiring_toNonUnitalSubsemiring + theorem Subsemiring.coe_toNonUnitalSubsemiring + theorem Subsemiring.mem_toNonUnitalSubsemiring + theorem Subsemiring.one_mem_toNonUnitalSubsemiring + def Subsemiring.toNonUnitalSubsemiring + theorem Subsemiring.toNonUnitalSubsemiring_inj + theorem Subsemiring.toNonUnitalSubsemiring_injective + theorem Subsemiring.toNonUnitalSubsemiring_toSubsemiring Modified Mathlib/Algebra/Star/Subalgebra.lean + theorem NonUnitalStarAlgebra.adjoin_le_starAlgebra_adjoin + def NonUnitalStarSubalgebra.toStarSubalgebra + theorem NonUnitalStarSubalgebra.toStarSubalgebra_toNonUnitalStarSubalgebra + theorem StarAlgebra.adjoin_nonUnitalStarSubalgebra + theorem StarAlgebra.adjoin_nonUnitalStarSubalgebra_eq_span + theorem StarSubalgebra.one_mem_toNonUnitalStarSubalgebra + def StarSubalgebra.toNonUnitalStarSubalgebra + theorem StarSubalgebra.toNonUnitalStarSubalgebra_toStarSubalgebra Modified Mathlib/RingTheory/Adjoin/Basic.lean + theorem Algebra.adjoin_nonUnitalSubalgebra + theorem Algebra.adjoin_nonUnitalSubalgebra_eq_span + theorem NonUnitalAlgebra.adjoin_le_algebra_adjoin Modified Mathlib/Topology/ContinuousMap/StoneWeierstrass.lean 2025-01-12 20:22:33 238352d feat(GroupTheory/SpecificGroups/Cyclic): Actions on cyclic groups factor through `ZMod` (#20359) This is a technical PR needed for the classification of Z-groups in #20358. ESTIMATED CHANGES Modified Mathlib/GroupTheory/SpecificGroups/Cyclic.lean + theorem MulDistribMulAction.toMonoidHomZModOfIsCyclic_apply 2025-01-12 20:22:32 5bc9c5a feat(Data/Multiset/Order): add Dershowitz-Manna Ordering and Theorem (#14411) add Dershowitz-Manna Ordering and Theorem for Multisets ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Order/Sub/Unbundled/Basic.lean + theorem add_add_tsub_cancel Added Mathlib/Data/Multiset/DershowitzManna.lean + theorem Multiset.IsDershowitzMannaLT.trans + def Multiset.IsDershowitzMannaLT + theorem Multiset.wellFounded_isDershowitzMannaLT 2025-01-12 20:14:04 650b029 feat: coe theorems in FiniteAdeleRing (#19814) add coercion theorems for: one, zero, add and mul; an interaction with algebraMap; and a theorem showing how algebraMaps of extensions are built. ESTIMATED CHANGES Modified Mathlib/RingTheory/DedekindDomain/FiniteAdeleRing.lean + theorem DedekindDomain.FiniteAdeleRing.coe_add + theorem DedekindDomain.FiniteAdeleRing.coe_algebraMap + theorem DedekindDomain.FiniteAdeleRing.coe_mul + theorem DedekindDomain.FiniteAdeleRing.coe_one + theorem DedekindDomain.FiniteAdeleRing.coe_zero: 2025-01-12 15:00:08 296f6b3 feat(CategoryTheory/Triangulated/Adjunction): the left adjoint of a triangulated functor is triangulated (#20543) If a functor `G : D ⥤ C` between pretriangulated categories is triangulated, and if we have an adjunction `F ⊣ G` (that commutes with the shifts), then `F` is also a triangulated functor. We prove this from the symmetric statement (`F` triangulated implies `G` triangulated) using opposite categories. - [ ] depends on: #20363 ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Shift/Opposite.lean Modified Mathlib/CategoryTheory/Shift/Pullback.lean Modified Mathlib/CategoryTheory/Triangulated/Adjunction.lean + theorem CategoryTheory.Adjunction.IsTriangulated.mk'' + theorem CategoryTheory.Adjunction.isTriangulated_leftAdjoint Modified Mathlib/CategoryTheory/Triangulated/Opposite/Functor.lean - theorem CategoryTheory.Functor.isTriangulated_op 2025-01-12 12:10:50 858ac8a feat(GroupTheory/ZGroup): Cyclic groups are Z-groups (#20357) This PR adds an instance stating that cyclic groups are Z-groups. ESTIMATED CHANGES Modified Mathlib/GroupTheory/SpecificGroups/ZGroup.lean 2025-01-12 11:33:59 9a77cb5 doc: fix reference error (#20677) The documentation of Analysis.MeanInequalities referred to the nonexistent MeasureTheory.MeanInequalities rather than MeasureTheory.Integral.MeanInequalities. ESTIMATED CHANGES Modified Mathlib/Analysis/MeanInequalities.lean 2025-01-12 11:33:58 3b86394 chore: replace manually ported proof with aesop (#20674) `itauto` wasn't available during the port, so someone pasted in a term proof. Now, either `itauto` or `aesop` handles this fine. I went with `aesop` as we don't actually use `itauto` anywhere in Mathlib currently, and if that's easy to preserve it seems valuable. ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Ring/Unbundled/Basic.lean 2025-01-12 11:33:56 75213d9 chore: minor proof cleanup around `tauto` (#20673) While surveying uses of `tauto` in Mathlib, noticed a few proofs that can be cleaned up. ESTIMATED CHANGES Modified Archive/Wiedijk100Theorems/BallotProblem.lean Modified Mathlib/Algebra/Polynomial/Degree/Lemmas.lean Modified Mathlib/Analysis/SpecialFunctions/Pow/Asymptotics.lean 2025-01-12 10:49:23 0634717 feat: allow several identifiers in assert_not_exists (#15994) Align the `assert_not_exists` syntax to `assert_not_imported`: they now both allow several identifiers. ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/Defs.lean Modified Mathlib/Algebra/Associated/Basic.lean Modified Mathlib/Algebra/BigOperators/Group/Finset.lean Modified Mathlib/Algebra/CharP/Basic.lean Modified Mathlib/Algebra/CharP/Defs.lean Modified Mathlib/Algebra/CharP/Lemmas.lean Modified Mathlib/Algebra/CharP/Two.lean Modified Mathlib/Algebra/Group/Action/Opposite.lean Modified Mathlib/Algebra/Group/Basic.lean Modified Mathlib/Algebra/Group/Center.lean Modified Mathlib/Algebra/Group/Commutator.lean Modified Mathlib/Algebra/Group/Commute/Basic.lean Modified Mathlib/Algebra/Group/Commute/Defs.lean Modified Mathlib/Algebra/Group/Commute/Hom.lean Modified Mathlib/Algebra/Group/Commute/Units.lean Modified Mathlib/Algebra/Group/Conj.lean Modified Mathlib/Algebra/Group/Defs.lean Modified Mathlib/Algebra/Group/Embedding.lean Modified Mathlib/Algebra/Group/Even.lean Modified Mathlib/Algebra/Group/Ext.lean Modified Mathlib/Algebra/Group/Fin/Basic.lean Modified Mathlib/Algebra/Group/Hom/Instances.lean Modified Mathlib/Algebra/Group/InjSurj.lean Modified Mathlib/Algebra/Group/Int/Defs.lean Modified Mathlib/Algebra/Group/Invertible/Basic.lean Modified Mathlib/Algebra/Group/Invertible/Defs.lean Modified Mathlib/Algebra/Group/MinimalAxioms.lean Modified Mathlib/Algebra/Group/Nat/Defs.lean Modified Mathlib/Algebra/Group/Nat/Even.lean Modified Mathlib/Algebra/Group/Nat/TypeTags.lean Modified Mathlib/Algebra/Group/Nat/Units.lean Modified Mathlib/Algebra/Group/Operations.lean Modified Mathlib/Algebra/Group/Opposite.lean Modified Mathlib/Algebra/Group/Pi/Basic.lean Modified Mathlib/Algebra/Group/Pi/Lemmas.lean Modified Mathlib/Algebra/Group/Pointwise/Set/Basic.lean Modified Mathlib/Algebra/Group/Prod.lean Modified Mathlib/Algebra/Group/Semiconj/Basic.lean Modified Mathlib/Algebra/Group/Semiconj/Defs.lean Modified Mathlib/Algebra/Group/Semiconj/Units.lean Modified Mathlib/Algebra/Group/Subgroup/Basic.lean Modified Mathlib/Algebra/Group/Subgroup/Defs.lean Modified Mathlib/Algebra/Group/Subgroup/Ker.lean Modified Mathlib/Algebra/Group/Subgroup/Lattice.lean Modified Mathlib/Algebra/Group/Subgroup/Map.lean Modified Mathlib/Algebra/Group/Submonoid/Defs.lean Modified Mathlib/Algebra/Group/Subsemigroup/Defs.lean Modified Mathlib/Algebra/Group/TypeTags/Basic.lean Modified Mathlib/Algebra/Group/TypeTags/Finite.lean Modified Mathlib/Algebra/Group/ULift.lean Modified Mathlib/Algebra/Group/UniqueProds/Basic.lean Modified Mathlib/Algebra/Group/Units/Basic.lean Modified Mathlib/Algebra/Group/Units/Defs.lean Modified Mathlib/Algebra/Group/Units/Equiv.lean Modified Mathlib/Algebra/Group/Units/Hom.lean Modified Mathlib/Algebra/Group/Units/Opposite.lean Modified Mathlib/Algebra/Group/WithOne/Basic.lean Modified Mathlib/Algebra/Group/WithOne/Defs.lean Modified Mathlib/Algebra/GroupPower/IterateHom.lean Modified Mathlib/Algebra/GroupWithZero/Action/Defs.lean Modified Mathlib/Algebra/GroupWithZero/Action/End.lean Modified Mathlib/Algebra/GroupWithZero/Action/Faithful.lean Modified Mathlib/Algebra/GroupWithZero/Center.lean Modified Mathlib/Algebra/GroupWithZero/Pointwise/Set/Basic.lean Modified Mathlib/Algebra/GroupWithZero/Units/Basic.lean Modified Mathlib/Algebra/Homology/TotalComplexSymmetry.lean Modified Mathlib/Algebra/Module/Basic.lean Modified Mathlib/Algebra/Module/Defs.lean Modified Mathlib/Algebra/Module/End.lean Modified Mathlib/Algebra/Module/Equiv/Defs.lean Modified Mathlib/Algebra/Module/LinearMap/Basic.lean Modified Mathlib/Algebra/Module/LinearMap/Defs.lean Modified Mathlib/Algebra/Module/NatInt.lean Modified Mathlib/Algebra/Module/RingHom.lean Modified Mathlib/Algebra/MonoidAlgebra/Defs.lean Modified Mathlib/Algebra/NoZeroSMulDivisors/Basic.lean Modified Mathlib/Algebra/NoZeroSMulDivisors/Defs.lean Modified Mathlib/Algebra/Order/CauSeq/Basic.lean Modified Mathlib/Algebra/Order/Group/Int.lean Modified Mathlib/Algebra/Order/Group/Unbundled/Int.lean Modified Mathlib/Algebra/Order/Hom/Ring.lean Modified Mathlib/Algebra/Order/Ring/Rat.lean Modified Mathlib/Algebra/Order/Ring/Unbundled/Basic.lean Modified Mathlib/Algebra/Order/Ring/Unbundled/Rat.lean Modified Mathlib/Algebra/Prime/Defs.lean Modified Mathlib/Algebra/Prime/Lemmas.lean Modified Mathlib/Algebra/Ring/Action/Basic.lean Modified Mathlib/Algebra/Ring/Center.lean Modified Mathlib/Algebra/Ring/Defs.lean Modified Mathlib/Algebra/Ring/Equiv.lean Modified Mathlib/Algebra/Ring/Hom/Defs.lean Modified Mathlib/Algebra/Ring/Int/Defs.lean Modified Mathlib/Algebra/Ring/Int/Parity.lean Modified Mathlib/Algebra/Ring/Int/Units.lean Modified Mathlib/Algebra/Ring/Parity.lean Modified Mathlib/Algebra/Ring/Rat.lean Modified Mathlib/Algebra/Star/Basic.lean Modified Mathlib/Analysis/Complex/RealDeriv.lean Modified Mathlib/Analysis/Convex/Cone/Basic.lean Modified Mathlib/Analysis/Normed/Field/Basic.lean Modified Mathlib/Analysis/SpecialFunctions/Complex/LogDeriv.lean Modified Mathlib/Analysis/SpecialFunctions/ExpDeriv.lean Modified Mathlib/CategoryTheory/ConcreteCategory/Basic.lean Modified Mathlib/CategoryTheory/Limits/FilteredColimitCommutesFiniteLimit.lean Modified Mathlib/Combinatorics/Additive/AP/Three/Behrend.lean Modified Mathlib/Combinatorics/Additive/AP/Three/Defs.lean Modified Mathlib/Combinatorics/Additive/Corner/Defs.lean Modified Mathlib/Combinatorics/Additive/FreimanHom.lean Modified Mathlib/Data/Complex/Basic.lean Modified Mathlib/Data/DFinsupp/Defs.lean Modified Mathlib/Data/Fin/Basic.lean Modified Mathlib/Data/Finite/Defs.lean Modified Mathlib/Data/Finite/Prod.lean Modified Mathlib/Data/Finset/Attach.lean Modified Mathlib/Data/Finset/Basic.lean Modified Mathlib/Data/Finset/Card.lean Modified Mathlib/Data/Finset/Dedup.lean Modified Mathlib/Data/Finset/Defs.lean Modified Mathlib/Data/Finset/Disjoint.lean Modified Mathlib/Data/Finset/Empty.lean Modified Mathlib/Data/Finset/Erase.lean Modified Mathlib/Data/Finset/Filter.lean Modified Mathlib/Data/Finset/Fold.lean Modified Mathlib/Data/Finset/Image.lean Modified Mathlib/Data/Finset/Insert.lean Modified Mathlib/Data/Finset/Lattice/Basic.lean Modified Mathlib/Data/Finset/Lattice/Fold.lean Modified Mathlib/Data/Finset/Lattice/Lemmas.lean Modified Mathlib/Data/Finset/Max.lean Modified Mathlib/Data/Finset/Range.lean Modified Mathlib/Data/Finset/SDiff.lean Modified Mathlib/Data/Finset/SymmDiff.lean Modified Mathlib/Data/Finset/Union.lean Modified Mathlib/Data/Fintype/Basic.lean Modified Mathlib/Data/Fintype/Card.lean Modified Mathlib/Data/Fintype/Option.lean Modified Mathlib/Data/Fintype/Pi.lean Modified Mathlib/Data/Int/Cast/Pi.lean Modified Mathlib/Data/List/Basic.lean Modified Mathlib/Data/List/Count.lean Modified Mathlib/Data/Matrix/Defs.lean Modified Mathlib/Data/Matrix/Diagonal.lean Modified Mathlib/Data/Matrix/Mul.lean Modified Mathlib/Data/Multiset/Antidiagonal.lean Modified Mathlib/Data/Multiset/Bind.lean Modified Mathlib/Data/Nat/Cast/Basic.lean Modified Mathlib/Data/Nat/ModEq.lean Modified Mathlib/Data/Nat/Totient.lean Modified Mathlib/Data/Rat/Cardinal.lean Modified Mathlib/Data/Rat/Defs.lean Modified Mathlib/Data/Rat/Denumerable.lean Modified Mathlib/Data/Real/Basic.lean Modified Mathlib/Data/Set/Finite/Basic.lean Modified Mathlib/Data/Set/Finite/Lattice.lean Modified Mathlib/Data/Set/Finite/Lemmas.lean Modified Mathlib/Data/Set/Finite/List.lean Modified Mathlib/Data/Set/Finite/Monad.lean Modified Mathlib/Data/Set/Finite/Powerset.lean Modified Mathlib/Data/Set/Finite/Range.lean Modified Mathlib/Data/ZMod/Basic.lean Modified Mathlib/Data/ZMod/IntUnitsPower.lean Modified Mathlib/Geometry/Euclidean/Angle/Unoriented/Basic.lean Modified Mathlib/GroupTheory/Commutator/Basic.lean Modified Mathlib/GroupTheory/CommutingProbability.lean Modified Mathlib/GroupTheory/MonoidLocalization/Basic.lean Modified Mathlib/GroupTheory/OreLocalization/Basic.lean Modified Mathlib/GroupTheory/Subgroup/Center.lean Modified Mathlib/LinearAlgebra/Basis/Defs.lean Modified Mathlib/LinearAlgebra/FiniteDimensional.lean Modified Mathlib/MeasureTheory/Function/SpecialFunctions/Basic.lean Modified Mathlib/Order/CompleteLattice/Finset.lean Modified Mathlib/Order/Filter/Basic.lean Modified Mathlib/Order/Interval/Finset/Basic.lean Modified Mathlib/RingTheory/Algebraic/Defs.lean Modified Mathlib/RingTheory/Algebraic/Pi.lean Modified Mathlib/RingTheory/Artinian/Module.lean Modified Mathlib/RingTheory/Finiteness/Basic.lean Modified Mathlib/RingTheory/Finiteness/Defs.lean Modified Mathlib/RingTheory/Ideal/Maps.lean Modified Mathlib/RingTheory/Ideal/Operations.lean Modified Mathlib/RingTheory/Localization/Defs.lean Modified Mathlib/RingTheory/Noetherian/Defs.lean Modified Mathlib/RingTheory/UniqueFactorizationDomain/Defs.lean Modified Mathlib/SetTheory/Cardinal/Aleph.lean Modified Mathlib/SetTheory/Cardinal/Arithmetic.lean Modified Mathlib/SetTheory/Ordinal/Arithmetic.lean Modified Mathlib/SetTheory/Ordinal/Basic.lean Modified Mathlib/Tactic/Abel.lean Modified Mathlib/Topology/ContinuousMap/Periodic.lean Modified Mathlib/Topology/EMetricSpace/Defs.lean Modified Mathlib/Util/AssertExists.lean Modified MathlibTest/AssertExists.lean 2025-01-12 09:32:03 62f729a feat: `(C a * p).leadingCoeff = a * p.leadingCoeff` (#20575) From GrowthInGroups (LeanCamCombi) ESTIMATED CHANGES Modified Mathlib/Algebra/Polynomial/Degree/Operations.lean + theorem Polynomial.degree_C_mul_of_isUnit + theorem Polynomial.degree_mul_C_of_isUnit + theorem Polynomial.leadingCoeff_C_mul_of_isUnit + theorem Polynomial.leadingCoeff_mul_C_of_isUnit + theorem Polynomial.natDegree_C_mul_of_isUnit + theorem Polynomial.natDegree_mul_C_of_isUnit 2025-01-12 07:52:33 e81777e chore: update Mathlib dependencies 2025-01-12 (#20675) This PR updates the Mathlib dependencies. ESTIMATED CHANGES Modified lake-manifest.json 2025-01-12 00:16:43 0035201 chore(scripts): update nolints.json (#20672) I am happy to remove some nolints for you! ESTIMATED CHANGES Modified scripts/nolints.json 2025-01-11 20:07:23 24529d5 chore: de-simp `map_eq_zero_iff_eq_one` (#20662) The keys of this declaration are `@Eq _ (@DFunLike.coe _ _ _ _ _ _) 0` so it will fire whenever attempting to simplify `f x = 0` which is too generic for this specific setting. ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Hom/Basic.lean 2025-01-11 18:54:28 e01427c feat(Combinatorics/SimpleGraph): add independent sets (#18608) dualize the clique API to obtain independent sets, prove theorems about the dual relationship to cliques, dualize and add some theorems. ESTIMATED CHANGES Modified Mathlib/Combinatorics/SimpleGraph/Clique.lean + def SimpleGraph.IndepSetFree + def SimpleGraph.IndepSetFreeOn + theorem SimpleGraph.IsIndepSet.card_le_indepNum + theorem SimpleGraph.IsIndepSet.nonempty_mem_compl_mem_edge + theorem SimpleGraph.IsMaximumIndepSet.isMaximalIndepSet + structure SimpleGraph.IsMaximumIndepSet + structure SimpleGraph.IsNIndepSet + theorem SimpleGraph.cliqueFree_compl + theorem SimpleGraph.cliqueNum_compl + theorem SimpleGraph.exists_isNIndepSet_indepNum + theorem SimpleGraph.indepNum_compl + def SimpleGraph.indepSetFinset + theorem SimpleGraph.indepSetFree_compl + def SimpleGraph.indepSetSet + theorem SimpleGraph.isClique_compl + theorem SimpleGraph.isIndepSet_compl + theorem SimpleGraph.isIndepSet_iff + theorem SimpleGraph.isIndepSet_neighborSet_of_triangleFree + theorem SimpleGraph.isMaximalClique_compl + theorem SimpleGraph.isMaximalIndepSet_compl + theorem SimpleGraph.isMaximalIndepSet_iff + theorem SimpleGraph.isMaximumClique_compl + theorem SimpleGraph.isMaximumIndepSet_compl + theorem SimpleGraph.isNClique_compl + theorem SimpleGraph.isNIndepSet_compl + theorem SimpleGraph.maximumIndepSet_card_eq_indepNum + theorem SimpleGraph.maximumIndepSet_exists + theorem SimpleGraph.mem_indepSetFinset_iff + theorem SimpleGraph.mem_indepSetSet_iff 2025-01-11 16:52:02 347912d chore(CategoryTheory/Limits/Cones): functoriality of `mapCone` (#20641) Record a basic compatibility of `mapCone` with functor compositon, which seemed to be missing. Also record the corresponding statement for cocones. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Limits/Cones.lean + def CategoryTheory.Limits.Cocones.functorialityCompFunctoriality + def CategoryTheory.Limits.Cones.functorialityCompFunctoriality 2025-01-11 16:30:18 f5531f2 feat(Algebra/Category/ModuleCat): pullback of presheaves of modules (#17366) In this PR, we construct the pullback functor for presheaves of modules. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Category/ModuleCat/Presheaf/Limits.lean Added Mathlib/Algebra/Category/ModuleCat/Presheaf/Pullback.lean + theorem PresheafOfModules.pullbackObjIsDefined_eq_top + theorem PresheafOfModules.pullbackObjIsDefined_free_yoneda 2025-01-11 13:40:04 85ca5b2 feat(AlgebraicTopology): model categories (#19158) We formalize the axioms of Quillen's model categories. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/AlgebraicTopology/ModelCategory/Basic.lean Added Mathlib/AlgebraicTopology/ModelCategory/CategoryWithCofibrations.lean + def HomotopicalAlgebra.cofibrations + def HomotopicalAlgebra.fibrations + theorem HomotopicalAlgebra.mem_cofibrations + theorem HomotopicalAlgebra.mem_fibrations + theorem HomotopicalAlgebra.mem_trivialCofibrations + theorem HomotopicalAlgebra.mem_trivialFibrations + theorem HomotopicalAlgebra.mem_weakEquivalences + def HomotopicalAlgebra.trivialCofibrations + theorem HomotopicalAlgebra.trivialCofibrations_sub_cofibrations + theorem HomotopicalAlgebra.trivialCofibrations_sub_weakEquivalences + def HomotopicalAlgebra.trivialFibrations + theorem HomotopicalAlgebra.trivialFibrations_sub_fibrations + theorem HomotopicalAlgebra.trivialFibrations_sub_weakEquivalences + def HomotopicalAlgebra.weakEquivalences Modified docs/references.bib 2025-01-11 13:24:50 cdcfe3a chore(CategoryTheory): make NormalEpi/MonoCategory and RegularEpi/MonoCategory props (#19548) The names are now prefixed with `Is`. As a result, the definition of an abelian category `Abelian` only involve props in addition to the `Preadditive` instance. With this design, we may avoid diamonds for `Abelian` instance in some future works (e.g. the abelian category structure on the heart of a t-structure). ESTIMATED CHANGES Modified Mathlib/Algebra/Category/Grp/Abelian.lean Modified Mathlib/Algebra/Category/ModuleCat/Abelian.lean Modified Mathlib/Algebra/Category/ModuleCat/Presheaf/Abelian.lean Modified Mathlib/Algebra/Homology/HomologicalComplexAbelian.lean Modified Mathlib/CategoryTheory/Abelian/Basic.lean + theorem CategoryTheory.Abelian.OfCoimageImageComparisonIsIso.isNormalEpiCategory + theorem CategoryTheory.Abelian.OfCoimageImageComparisonIsIso.isNormalMonoCategory - def CategoryTheory.Abelian.OfCoimageImageComparisonIsIso.normalEpiCategory - def CategoryTheory.Abelian.OfCoimageImageComparisonIsIso.normalMonoCategory +/- def CategoryTheory.NonPreadditiveAbelian.abelian Modified Mathlib/CategoryTheory/Abelian/NonPreadditive.lean Modified Mathlib/CategoryTheory/Abelian/Opposite.lean Modified Mathlib/CategoryTheory/Adhesive.lean Modified Mathlib/CategoryTheory/Limits/Shapes/NormalMono/Basic.lean +/- def CategoryTheory.normalEpiOfEpi +/- def CategoryTheory.normalMonoOfMono Modified Mathlib/CategoryTheory/Limits/Shapes/NormalMono/Equalizers.lean Modified Mathlib/CategoryTheory/Limits/Shapes/RegularMono.lean +/- def CategoryTheory.regularEpiOfEpi +/- def CategoryTheory.regularMonoOfMono 2025-01-11 13:16:38 c675cb5 feat(Data/List/ReduceOption): add replicate theorems (#20644) These theorems make it easier to prove statements about `List.reduceOption`, building up to a more general theorem, `reduceOption_eq_concat_iff`, which is useful for inductive proofs. ESTIMATED CHANGES Modified Mathlib/Data/List/ReduceOption.lean + theorem List.reduceOption_eq_append_iff + theorem List.reduceOption_eq_concat_iff + theorem List.reduceOption_eq_nil_iff + theorem List.reduceOption_eq_singleton_iff + theorem List.reduceOption_replicate_none 2025-01-11 10:36:57 781c75b feat: approximate subgroups (#20050) Define approximate subgroups of a group, namely symmetric sets `A` such that `A * A` can be covered by a small number of translates of `A`. From GrowthInGroups (LeanCamCombi) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Combinatorics/Additive/ApproximateSubgroup.lean + structure IsApproximateAddSubgroup + theorem IsApproximateSubgroup.card_mul_self_le + theorem IsApproximateSubgroup.card_pow_le + theorem IsApproximateSubgroup.image + theorem IsApproximateSubgroup.mono + theorem IsApproximateSubgroup.nonempty + theorem IsApproximateSubgroup.of_small_tripling + theorem IsApproximateSubgroup.one_le + theorem IsApproximateSubgroup.pow_inter_pow + theorem IsApproximateSubgroup.pow_inter_pow_covBySMul_sq_inter_sq + theorem IsApproximateSubgroup.subgroup + structure IsApproximateSubgroup + theorem isApproximateSubgroup_one Modified scripts/noshake.json 2025-01-11 10:05:50 3a798ee feat: use scoped trace nodes in linarith (#19855) Inspired by hacking done with @robertylewis and @hrmacbeth which resulted in #19771. The effect is that the traces messages are now hierarchical; though it's easy not to notice in VSCode without a better version of https://github.com/leanprover/lean4/pull/6345. See https://profiler.firefox.com/public/smkc5ffh9318w177gps2x9e5b6wy117s6f18e6g/flame-graph/?globalTrackOrder=0&thread=0&transforms=ff-2659&v=10 for an example output produced with ```bash lake lean MathlibTest/linarith.lean -- \ -Dtrace.profiler=true \ -Dtrace.profiler.threshold=1 \ -Dtrace.profiler.output.pp=true \ -Dtrace.profiler.output=linarith-profile.json ``` Some inconclusive discussion about best practices for `withTraceNode` is [on Zulip here](https://leanprover.zulipchat.com/#narrow/channel/270676-lean4/topic/Using.20withTraceNode/near/489198580). ESTIMATED CHANGES Modified Mathlib/Tactic/Linarith/Datatypes.lean +/- structure Linarith.GlobalBranchingPreprocessor +/- structure Linarith.GlobalPreprocessor +/- structure Linarith.Preprocessor + structure Linarith.PreprocessorBase + def Linarith.linarithGetProofsMessage Modified Mathlib/Tactic/Linarith/Frontend.lean +/- def Linarith.findLinarithContradiction Modified Mathlib/Tactic/Linarith/Preprocessing.lean Modified Mathlib/Tactic/Linarith/Verification.lean 2025-01-11 05:59:10 c0cb03a feat: disjoint union of charted spaces (#20619) As the main technical tool to do so, we introduce a new definition `PartialHomeomorph.lift_openEmbedding`, lifting a PartialHomeomorph under an `OpenEmbedding`. (The left or right inclusion into a disjoint union are open embeddings; this abstract allows proving lemmas only once, and avoids having to deal with subtypes.) From the bordism theory project branch: future steps include proving that the disjoint union of `C^n` manifolds is a `C^n` manifold. ESTIMATED CHANGES Modified Mathlib/Geometry/Manifold/ChartedSpace.lean + theorem ChartedSpace.mem_atlas_sum + theorem ChartedSpace.sum_chartAt_inl + theorem ChartedSpace.sum_chartAt_inr Modified Mathlib/Topology/PartialHomeomorph.lean + theorem PartialHomeomorph.lift_openEmbedding_apply + theorem PartialHomeomorph.lift_openEmbedding_source + theorem PartialHomeomorph.lift_openEmbedding_symm + theorem PartialHomeomorph.lift_openEmbedding_target + theorem PartialHomeomorph.lift_openEmbedding_toFun 2025-01-11 04:44:21 19a56d6 feat: add some term elaborators for reduction (#15192) In #13795, `zeta%` and `reduceProj%` will be used to improve the performance of unifying some instances. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Tactic/IrreducibleDef.lean Deleted Mathlib/Util/TermBeta.lean - def Mathlib.Util.TermBeta.elabBeta Added Mathlib/Util/TermReduce.lean + def Mathlib.Util.TermReduce.elabBeta + def Mathlib.Util.TermReduce.elabDelta + def Mathlib.Util.TermReduce.elabReduceProj + def Mathlib.Util.TermReduce.elabZeta Renamed MathlibTest/TermBeta.lean to MathlibTest/TermReduce.lean Modified scripts/noshake.json 2025-01-11 04:20:12 cfd2a08 feat(Topology/Category): category of delta-generated spaces (#19499) Introduces the category of delta-generated spaces and shows that it is complete, cocomplete and coreflective in the category of topological spaces. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Topology/Category/DeltaGenerated.lean + def DeltaGenerated.coreflectorAdjunction + def DeltaGenerated.deltaGeneratedToTop + def DeltaGenerated.fullyFaithfulDeltaGeneratedToTop + def DeltaGenerated.of + def DeltaGenerated.topToDeltaGenerated + structure DeltaGenerated 2025-01-11 04:09:47 8df90d1 add a variable_alias for Quantale and AddQuantale (#19282) similar to #19212, but for Quantales, taken from the variable_alias docs. Zulip: https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/why.20.5Bvariable_alias.5D.20attribute.20is.20not.20used.20in.20Mathlib.3F ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Quantale.lean + def AddQuantale.leftAddResiduation + def AddQuantale.rightAddResiduation + structure AddQuantale - def IsAddQuantale.leftAddResiduation - def IsAddQuantale.rightAddResiduation - theorem IsQuantale.bot_mul - theorem IsQuantale.iSup_mul_distrib - def IsQuantale.leftMulResiduation - theorem IsQuantale.leftMulResiduation_le_iff_mul_le - theorem IsQuantale.mul_bot - theorem IsQuantale.mul_iSup_distrib - theorem IsQuantale.mul_sup_distrib - def IsQuantale.rightMulResiduation - theorem IsQuantale.rightMulResiduation_le_iff_mul_le - theorem IsQuantale.sup_mul_distrib + theorem Quantale.bot_mul + theorem Quantale.iSup_mul_distrib + def Quantale.leftMulResiduation + theorem Quantale.leftMulResiduation_le_iff_mul_le + theorem Quantale.mul_bot + theorem Quantale.mul_iSup_distrib + theorem Quantale.mul_sup_distrib + def Quantale.rightMulResiduation + theorem Quantale.rightMulResiduation_le_iff_mul_le + theorem Quantale.sup_mul_distrib + structure Quantale 2025-01-11 03:34:49 e0a7afc feat(Computability/DFA): implement `isRegular_iff` (#19940) An alternative is to use `Fin` and `Fintype.equivFin`, which are available via the existing import of `Data.Fintype.Card`. However, since `Fin _ : Type 0`, it needs to be wrapped in `ULift` to be universe-polymorphic, so the result is messier than the `Small` approach. ESTIMATED CHANGES Modified Mathlib/Computability/DFA.lean + theorem Language.isRegular_iff 2025-01-11 02:41:50 34714fe chore: unpin and bump batteries and importgraph (#20651) Includes leanprover-community/batteries#1090 and leanprover-community/batteries#1091. [Zulip discussion](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Upgrading.20mathlib.20dependencies) ESTIMATED CHANGES Modified Mathlib/Tactic/MinImports.lean Modified lake-manifest.json Modified lakefile.lean 2025-01-11 00:45:45 64c71eb chore: split `Mathlib/Algebra/Group/Int` (#20624) Follows the existing split for `Mathlib/Algebra/Group/Nat`. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/BigOperators/Group/Finset.lean Modified Mathlib/Algebra/BigOperators/Group/List/Basic.lean Modified Mathlib/Algebra/BigOperators/Group/List/Lemmas.lean Modified Mathlib/Algebra/EuclideanDomain/Int.lean Deleted Mathlib/Algebra/Group/Int.lean - theorem Int.ediv_two_mul_two_of_even - theorem Int.emod_two_ne_one - theorem Int.emod_two_ne_zero - theorem Int.eq_of_mul_eq_one - theorem Int.eq_one_or_neg_one_of_mul_eq_neg_one' - theorem Int.eq_one_or_neg_one_of_mul_eq_neg_one - theorem Int.eq_one_or_neg_one_of_mul_eq_one' - theorem Int.eq_one_or_neg_one_of_mul_eq_one - theorem Int.even_add - theorem Int.even_add_one - theorem Int.even_coe_nat - theorem Int.even_iff - theorem Int.even_mul - theorem Int.even_pow' - theorem Int.even_pow - theorem Int.even_sub - theorem Int.even_sub_one - theorem Int.isUnit_add_isUnit_eq_isUnit_add_isUnit - theorem Int.isUnit_eq_one_or - theorem Int.isUnit_eq_or_eq_neg - theorem Int.isUnit_iff - theorem Int.isUnit_iff_natAbs_eq - theorem Int.isUnit_mul_self - theorem Int.isUnit_ne_iff_eq_neg - theorem Int.mul_eq_neg_one_iff_eq_one_or_neg_one - theorem Int.mul_eq_one_iff_eq_one_or_neg_one - theorem Int.natAbs_of_isUnit - theorem Int.not_even_iff - theorem Int.not_even_one - theorem Int.ofAdd_mul - theorem Int.ofNat_isUnit - theorem Int.one_emod_two - theorem Int.toAdd_pow - theorem Int.toAdd_zpow - theorem Int.two_dvd_ne_zero - theorem Int.two_mul_ediv_two_of_even - theorem Int.two_not_dvd_two_mul_add_one - theorem Int.units_natAbs - theorem zsmul_int_int - theorem zsmul_int_one Added Mathlib/Algebra/Group/Int/Defs.lean + theorem zsmul_int_int + theorem zsmul_int_one Added Mathlib/Algebra/Group/Int/Even.lean + theorem Int.ediv_two_mul_two_of_even + theorem Int.emod_two_ne_one + theorem Int.emod_two_ne_zero + theorem Int.even_add + theorem Int.even_add_one + theorem Int.even_coe_nat + theorem Int.even_iff + theorem Int.even_mul + theorem Int.even_pow' + theorem Int.even_pow + theorem Int.even_sub + theorem Int.even_sub_one + theorem Int.not_even_iff + theorem Int.not_even_one + theorem Int.one_emod_two + theorem Int.two_dvd_ne_zero + theorem Int.two_mul_ediv_two_of_even + theorem Int.two_not_dvd_two_mul_add_one Added Mathlib/Algebra/Group/Int/TypeTags.lean + theorem Int.ofAdd_mul + theorem Int.toAdd_pow + theorem Int.toAdd_zpow Added Mathlib/Algebra/Group/Int/Units.lean + theorem Int.eq_of_mul_eq_one + theorem Int.eq_one_or_neg_one_of_mul_eq_neg_one' + theorem Int.eq_one_or_neg_one_of_mul_eq_neg_one + theorem Int.eq_one_or_neg_one_of_mul_eq_one' + theorem Int.eq_one_or_neg_one_of_mul_eq_one + theorem Int.isUnit_add_isUnit_eq_isUnit_add_isUnit + theorem Int.isUnit_eq_one_or + theorem Int.isUnit_eq_or_eq_neg + theorem Int.isUnit_iff + theorem Int.isUnit_iff_natAbs_eq + theorem Int.isUnit_mul_self + theorem Int.isUnit_ne_iff_eq_neg + theorem Int.mul_eq_neg_one_iff_eq_one_or_neg_one + theorem Int.mul_eq_one_iff_eq_one_or_neg_one + theorem Int.natAbs_of_isUnit + theorem Int.ofNat_isUnit + theorem Int.units_natAbs Renamed Mathlib/Algebra/Group/Nat/Basic.lean to Mathlib/Algebra/Group/Nat/Defs.lean Modified Mathlib/Algebra/Group/Nat/Even.lean Modified Mathlib/Algebra/Group/Nat/TypeTags.lean Modified Mathlib/Algebra/Group/Nat/Units.lean Modified Mathlib/Algebra/Group/Subgroup/ZPowers/Basic.lean Modified Mathlib/Algebra/Group/Submonoid/Operations.lean Modified Mathlib/Algebra/GroupPower/IterateHom.lean Modified Mathlib/Algebra/GroupWithZero/Nat.lean Modified Mathlib/Algebra/Order/Floor.lean Modified Mathlib/Algebra/Order/Group/Int.lean Modified Mathlib/Algebra/Order/Group/Multiset.lean Modified Mathlib/Algebra/Order/Group/Nat.lean Modified Mathlib/Algebra/Order/Group/Unbundled/Int.lean Modified Mathlib/Algebra/Ring/Int/Defs.lean Modified Mathlib/Algebra/Ring/Int/Parity.lean Modified Mathlib/Algebra/Ring/Int/Units.lean Modified Mathlib/Algebra/Ring/Rat.lean Modified Mathlib/CategoryTheory/GradedObject.lean Modified Mathlib/Data/Finset/Image.lean Modified Mathlib/Data/Finset/SymmDiff.lean Modified Mathlib/Data/Fintype/Basic.lean Modified Mathlib/Data/Fintype/Parity.lean Modified Mathlib/Data/Int/GCD.lean Modified Mathlib/Data/Int/NatPrime.lean Modified Mathlib/Data/List/SplitLengths.lean Modified Mathlib/Data/Nat/Bits.lean Modified Mathlib/Data/Nat/PSub.lean Modified Mathlib/Data/Nat/Prime/Int.lean Modified Mathlib/Data/Ordmap/Ordset.lean Modified Mathlib/Data/Set/Enumerate.lean Modified Mathlib/GroupTheory/FreeGroup/Basic.lean Modified Mathlib/Order/Hom/CompleteLattice.lean Modified Mathlib/RingTheory/DedekindDomain/SelmerGroup.lean Modified Mathlib/RingTheory/LaurentSeries.lean Modified Mathlib/Tactic/Sat/FromLRAT.lean Modified MathlibTest/levenshtein.lean 2025-01-10 22:52:13 9750400 feat: three lemmas related to Hausdorff distance (#20585) From sphere-eversion, I'm just submitting these. ESTIMATED CHANGES Modified Mathlib/Topology/ContinuousOn.lean + theorem Continuous.tendsto_nhdsSet + theorem Continuous.tendsto_nhdsSet_nhds + theorem ContinuousOn.tendsto_nhdsSet Modified Mathlib/Topology/MetricSpace/HausdorffDistance.lean + theorem Metric.infDist_pos_iff_not_mem_closure Modified Mathlib/Topology/MetricSpace/Thickening.lean + theorem IsCompact.exists_thickening_image_subset + theorem Metric.thickening_ball Modified Mathlib/Topology/NhdsSet.lean - theorem Continuous.tendsto_nhdsSet - theorem Continuous.tendsto_nhdsSet_nhds 2025-01-10 22:02:05 013b3e6 chore: `initialize_simps_projections` for `Submodule` (#20582) From GrowthInGroups (LeanCamCombi) ESTIMATED CHANGES Modified Mathlib/Algebra/Module/Submodule/Defs.lean - theorem Submodule.coe_copy 2025-01-10 20:46:58 3949513 feat(Order): Boolean algebra structure on idempotents (#20618) We show that the idempotent in a commutative ring form a Boolean algebra, with complement given by `a ↦ 1 - a` and infimum given by multiplication. In a commutative semiring where subtraction is not available, it is still true that pairs of elements `(a, b)` satisfying `a * b = 0` and `a + b = 1` form a Boolean algebra (such elements are automatically idempotents, and such a pair is uniquely determined by either `a` or `b`). ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Ring/Idempotents.lean + theorem IsIdempotentElem.of_mul_add Added Mathlib/Order/Idempotents.lean + def OrderIso.isIdempotentElemMulZeroAddOne + theorem eq_of_mul_eq_add_eq_one + theorem mul_eq_zero_add_eq_one_ext_left + theorem mul_eq_zero_add_eq_one_ext_right 2025-01-10 20:24:31 45970a9 chore(CategoryTheory): moving/renaming Subpresheaf (#20583) From the file `CategoryTheory.Sites.Subsheaf`, the general definitions and properties of subpresheaves (of types) are moved to a new file `Category.Subpresheaf.Basic`, and it is renamed `Subpresheaf` instead of `GrothendieckTopology.Subpresheaf`. There will be subsequent PRs developing this notion, and it will be used in the context of simplicial sets. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/CategoryTheory/Sites/LocallyInjective.lean Modified Mathlib/CategoryTheory/Sites/Subsheaf.lean - theorem CategoryTheory.GrothendieckTopology.Subpresheaf.eq_sheafify - theorem CategoryTheory.GrothendieckTopology.Subpresheaf.eq_sheafify_iff - theorem CategoryTheory.GrothendieckTopology.Subpresheaf.eq_top_iff_isIso - def CategoryTheory.GrothendieckTopology.Subpresheaf.familyOfElementsOfSection - theorem CategoryTheory.GrothendieckTopology.Subpresheaf.family_of_elements_compatible - def CategoryTheory.GrothendieckTopology.Subpresheaf.homOfLe - theorem CategoryTheory.GrothendieckTopology.Subpresheaf.homOfLe_ι - theorem CategoryTheory.GrothendieckTopology.Subpresheaf.isSheaf_iff - theorem CategoryTheory.GrothendieckTopology.Subpresheaf.le_sheafify - def CategoryTheory.GrothendieckTopology.Subpresheaf.lift - theorem CategoryTheory.GrothendieckTopology.Subpresheaf.lift_ι - theorem CategoryTheory.GrothendieckTopology.Subpresheaf.nat_trans_naturality - def CategoryTheory.GrothendieckTopology.Subpresheaf.sheafify - theorem CategoryTheory.GrothendieckTopology.Subpresheaf.sheafify_isSheaf - theorem CategoryTheory.GrothendieckTopology.Subpresheaf.sheafify_le - theorem CategoryTheory.GrothendieckTopology.Subpresheaf.sheafify_sheafify - def CategoryTheory.GrothendieckTopology.Subpresheaf.sieveOfSection - def CategoryTheory.GrothendieckTopology.Subpresheaf.toPresheaf - theorem CategoryTheory.GrothendieckTopology.Subpresheaf.to_sheafifyLift - theorem CategoryTheory.GrothendieckTopology.Subpresheaf.to_sheafify_lift_unique - def CategoryTheory.GrothendieckTopology.Subpresheaf.ι - structure CategoryTheory.GrothendieckTopology.Subpresheaf - def CategoryTheory.GrothendieckTopology.imageMonoFactorization - def CategoryTheory.GrothendieckTopology.imagePresheaf - theorem CategoryTheory.GrothendieckTopology.imagePresheaf_comp_le - theorem CategoryTheory.GrothendieckTopology.imagePresheaf_id - def CategoryTheory.GrothendieckTopology.imageSheaf - def CategoryTheory.GrothendieckTopology.imageSheafι - def CategoryTheory.GrothendieckTopology.toImagePresheaf - def CategoryTheory.GrothendieckTopology.toImagePresheafSheafify - theorem CategoryTheory.GrothendieckTopology.toImagePresheaf_ι - def CategoryTheory.GrothendieckTopology.toImageSheaf - theorem CategoryTheory.GrothendieckTopology.toImageSheaf_ι - theorem CategoryTheory.GrothendieckTopology.top_subpresheaf_obj + theorem CategoryTheory.Subpresheaf.eq_sheafify + theorem CategoryTheory.Subpresheaf.eq_sheafify_iff + theorem CategoryTheory.Subpresheaf.isSheaf_iff + theorem CategoryTheory.Subpresheaf.le_sheafify + def CategoryTheory.Subpresheaf.sheafify + theorem CategoryTheory.Subpresheaf.sheafify_isSheaf + theorem CategoryTheory.Subpresheaf.sheafify_le + theorem CategoryTheory.Subpresheaf.sheafify_sheafify + theorem CategoryTheory.Subpresheaf.to_sheafifyLift + theorem CategoryTheory.Subpresheaf.to_sheafify_lift_unique + def CategoryTheory.imageMonoFactorization + def CategoryTheory.imageSheaf + def CategoryTheory.imageSheafι + def CategoryTheory.toImagePresheafSheafify + def CategoryTheory.toImageSheaf + theorem CategoryTheory.toImageSheaf_ι Added Mathlib/CategoryTheory/Subpresheaf/Basic.lean + theorem CategoryTheory.Subpresheaf.eq_top_iff_isIso + def CategoryTheory.Subpresheaf.familyOfElementsOfSection + theorem CategoryTheory.Subpresheaf.family_of_elements_compatible + def CategoryTheory.Subpresheaf.homOfLe + theorem CategoryTheory.Subpresheaf.homOfLe_ι + def CategoryTheory.Subpresheaf.lift + theorem CategoryTheory.Subpresheaf.lift_ι + theorem CategoryTheory.Subpresheaf.nat_trans_naturality + def CategoryTheory.Subpresheaf.sieveOfSection + def CategoryTheory.Subpresheaf.toPresheaf + def CategoryTheory.Subpresheaf.ι + structure CategoryTheory.Subpresheaf + def CategoryTheory.imagePresheaf + theorem CategoryTheory.imagePresheaf_comp_le + theorem CategoryTheory.imagePresheaf_id + def CategoryTheory.toImagePresheaf + theorem CategoryTheory.toImagePresheaf_ι + theorem CategoryTheory.top_subpresheaf_obj 2025-01-10 18:59:56 b626315 refactor(IntermediateField/Adjoin): Split off relation to `Algebra.adjoin` (#20630) Part of `IntermediateField/Adjoin/Basic` is about the relation with `Algebra.adjoin` (e.g., assuming integrality). This PR splits off those results into their own file. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/FieldTheory/IntermediateField/Adjoin/Algebra.lean + theorem IntermediateField.AdjoinSimple.isIntegral_gen + theorem IntermediateField.adjoin_algebraic_toSubalgebra + theorem IntermediateField.adjoin_eq_algebra_adjoin + theorem IntermediateField.adjoin_eq_top_of_algebra + theorem IntermediateField.adjoin_simple_toSubalgebra_of_integral + theorem IntermediateField.adjoin_toSubalgebra_of_isAlgebraic + theorem IntermediateField.adjoin_toSubalgebra_of_isAlgebraic_left + theorem IntermediateField.adjoin_toSubalgebra_of_isAlgebraic_right + theorem IntermediateField.algebra_adjoin_le_adjoin + theorem IntermediateField.eq_adjoin_of_eq_algebra_adjoin + theorem IntermediateField.fg_of_fg_toSubalgebra + theorem IntermediateField.fg_of_noetherian + theorem IntermediateField.induction_on_adjoin + theorem IntermediateField.le_sup_toSubalgebra + theorem IntermediateField.sup_toSubalgebra_of_isAlgebraic + theorem IntermediateField.sup_toSubalgebra_of_isAlgebraic_left + theorem IntermediateField.sup_toSubalgebra_of_isAlgebraic_right + theorem IntermediateField.sup_toSubalgebra_of_left + theorem IntermediateField.sup_toSubalgebra_of_right + theorem IsFractionRing.algHom_fieldRange_eq_of_comp_eq + theorem IsFractionRing.algHom_fieldRange_eq_of_comp_eq_of_range_eq + theorem IsFractionRing.liftAlgHom_fieldRange + theorem IsFractionRing.liftAlgHom_fieldRange_eq_of_range_eq Modified Mathlib/FieldTheory/IntermediateField/Adjoin/Basic.lean - theorem IntermediateField.AdjoinSimple.isIntegral_gen - theorem IntermediateField.adjoin_algebraic_toSubalgebra - theorem IntermediateField.adjoin_eq_algebra_adjoin - theorem IntermediateField.adjoin_eq_top_of_algebra - theorem IntermediateField.adjoin_rootSet_isSplittingField - theorem IntermediateField.adjoin_simple_toSubalgebra_of_integral - theorem IntermediateField.adjoin_toSubalgebra_of_isAlgebraic - theorem IntermediateField.adjoin_toSubalgebra_of_isAlgebraic_left - theorem IntermediateField.adjoin_toSubalgebra_of_isAlgebraic_right - theorem IntermediateField.algebra_adjoin_le_adjoin - theorem IntermediateField.eq_adjoin_of_eq_algebra_adjoin - theorem IntermediateField.fg_of_fg_toSubalgebra - theorem IntermediateField.fg_of_noetherian - theorem IntermediateField.induction_on_adjoin - theorem IntermediateField.isSplittingField_iff - theorem IntermediateField.le_sup_toSubalgebra - theorem IntermediateField.sup_toSubalgebra_of_isAlgebraic - theorem IntermediateField.sup_toSubalgebra_of_isAlgebraic_left - theorem IntermediateField.sup_toSubalgebra_of_isAlgebraic_right - theorem IntermediateField.sup_toSubalgebra_of_left - theorem IntermediateField.sup_toSubalgebra_of_right - theorem IsFractionRing.algHom_fieldRange_eq_of_comp_eq - theorem IsFractionRing.algHom_fieldRange_eq_of_comp_eq_of_range_eq - theorem IsFractionRing.liftAlgHom_fieldRange - theorem IsFractionRing.liftAlgHom_fieldRange_eq_of_range_eq - theorem isSplittingField_iff_intermediateField Modified Mathlib/FieldTheory/SplittingField/IsSplittingField.lean + theorem IntermediateField.adjoin_rootSet_isSplittingField + theorem IntermediateField.isSplittingField_iff + theorem isSplittingField_iff_intermediateField Modified Mathlib/RingTheory/AlgebraicIndependent/Adjoin.lean Modified Mathlib/RingTheory/AlgebraicIndependent/RankAndCardinality.lean Modified Mathlib/RingTheory/AlgebraicIndependent/TranscendenceBasis.lean 2025-01-10 18:59:54 712c9d4 feat: sets of doubling strictly less than 3/2 (#20572) From GrowthInGroups (LeanCamCombi) ESTIMATED CHANGES Modified Mathlib/Combinatorics/Additive/VerySmallDoubling.lean + theorem Finset.card_inv_mul_of_doubling_lt_three_halves + theorem Finset.doubling_lt_three_halves + def Finset.invMulSubgroup + theorem Finset.invMulSubgroup_eq_inv_mul + theorem Finset.invMulSubgroup_eq_mul_inv + theorem Finset.mul_inv_eq_inv_mul_of_doubling_lt_two + theorem Finset.smul_inv_mul_eq_inv_mul_opSMul + theorem Finset.smul_inv_mul_opSMul_eq_mul_of_doubling_lt_three_halves Modified docs/references.bib 2025-01-10 18:59:53 f8adbb9 chore(TensorProduct): universe polymorphism in EquationalCriterion (#20452) Remove `exists_factorization_of_apply_eq_zero` as it's a special case of `exists_factorization_of_apply_eq_zero_of_free`. Remove one statement from the TFAE, but still keep the forward direction ` `exists_factorization_of_apply_eq_zero_of_free` and make it fully universe polymorphic. ESTIMATED CHANGES Modified Mathlib/Algebra/Module/FinitePresentation.lean +/- theorem Module.FinitePresentation.equiv_quotient + theorem Module.FinitePresentation.exists_fin Modified Mathlib/LinearAlgebra/TensorProduct/Vanishing.lean + theorem Equiv.vanishesTrivially_comp + theorem TensorProduct.VanishesTrivially.of_fintype - theorem TensorProduct.forall_vanishesTrivially_iff_forall_FG_rTensor_injective + theorem TensorProduct.forall_vanishesTrivially_iff_forall_fg_rTensor_injective - theorem TensorProduct.rTensor_injective_of_forall_FG_rTensor_injective + theorem TensorProduct.rTensor_injective_of_forall_fg_rTensor_injective Modified Mathlib/RingTheory/Flat/EquationalCriterion.lean + theorem Equiv.isTrivialRelation_comp - theorem Module.Flat.exists_factorization_of_apply_eq_zero +/- theorem Module.Flat.exists_factorization_of_apply_eq_zero_of_free +/- theorem Module.Flat.exists_factorization_of_comp_eq_zero_of_free +/- theorem Module.Flat.exists_factorization_of_isFinitelyPresented +/- theorem Module.Flat.iff_forall_isTrivialRelation +/- theorem Module.Flat.isTrivialRelation_of_sum_smul_eq_zero +/- theorem Module.Flat.of_forall_exists_factorization +/- theorem Module.Flat.of_forall_isTrivialRelation + theorem Module.Flat.projective_of_finitePresentation 2025-01-10 18:59:51 a5910d1 feat: `s \ t ∩ u = (s ∩ u) \ t` (#20298) From GrowthInGroups (LeanCamCombi) ESTIMATED CHANGES Modified Mathlib/Data/Finset/Lattice/Basic.lean Modified Mathlib/Data/Finset/SDiff.lean +/- theorem Finset.inter_sdiff_assoc + theorem Finset.inter_sdiff_left_comm + theorem Finset.sdiff_inter_right_comm Modified Mathlib/Data/Set/Basic.lean +/- theorem Set.inter_diff_assoc +/- theorem Set.inter_diff_distrib_right + theorem Set.inter_sdiff_left_comm + theorem Set.sdiff_inter_right_comm Modified Mathlib/Order/BooleanAlgebra.lean +/- theorem inf_sdiff_assoc + theorem inf_sdiff_left_comm - theorem inf_sdiff_right_comm + theorem sdiff_inf_right_comm 2025-01-10 18:59:50 111b4c0 feat: product of subalgebras (#20202) From FLT ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Algebra/Subalgebra/Pi.lean + theorem Subalgebra.mem_pi + def Subalgebra.pi + theorem Subalgebra.pi_mono + theorem Subalgebra.pi_toSubmodule + theorem Subalgebra.pi_top Modified Mathlib/Algebra/Group/Subgroup/Defs.lean - theorem Subgroup.coe_copy Modified Mathlib/Algebra/Module/Submodule/Defs.lean Modified Mathlib/LinearAlgebra/Pi.lean - theorem Submodule.coe_pi 2025-01-10 18:19:06 93a78ce feat: `Submodule.restrictScalars` commutes with `pow` (#20581) From GrowthInGroups (LeanCamCombi) ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/Operations.lean + theorem Submodule.restrictScalars_pow 2025-01-10 18:19:04 88927de feat: `a ∈ s ^ n` iff there exists a sequence `f` of `n` elements of `s` such that `∏ i, f i = a` (#20580) ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Pointwise/Set/BigOperators.lean + theorem Set.mem_pow_iff_prod 2025-01-10 18:19:03 acc35eb chore: make `FooHom.coe_id` a `norm_cast` lemma (#20576) From GrowthInGroups (LeanCamCombi) ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/Hom.lean Modified Mathlib/Algebra/Algebra/NonUnitalHom.lean Modified Mathlib/Algebra/Lie/Basic.lean Modified Mathlib/Algebra/Order/Hom/Monoid.lean Modified Mathlib/Algebra/Order/Hom/Ring.lean Modified Mathlib/Algebra/Ring/Hom/Defs.lean Modified Mathlib/Algebra/Star/StarAlgHom.lean Modified Mathlib/Algebra/Star/StarRingHom.lean Modified Mathlib/Analysis/Normed/Affine/Isometry.lean Modified Mathlib/Analysis/Normed/Operator/LinearIsometry.lean Modified Mathlib/Data/PFun.lean Modified Mathlib/LinearAlgebra/AffineSpace/AffineMap.lean Modified Mathlib/Order/Heyting/Hom.lean Modified Mathlib/Order/Hom/Bounded.lean Modified Mathlib/Order/Hom/CompleteLattice.lean Modified Mathlib/Order/Hom/Lattice.lean Modified Mathlib/RingTheory/Bialgebra/Hom.lean Modified Mathlib/RingTheory/Coalgebra/Hom.lean Modified Mathlib/Topology/Bornology/Hom.lean Modified Mathlib/Topology/ContinuousMap/Basic.lean Modified Mathlib/Topology/ContinuousMap/CocompactMap.lean Modified Mathlib/Topology/Hom/Open.lean Modified Mathlib/Topology/Order/Hom/Basic.lean Modified Mathlib/Topology/Order/Hom/Esakia.lean Modified Mathlib/Topology/Spectral/Hom.lean 2025-01-10 18:19:02 ceb6589 chore: use ofNat more (#20546) When a theorem statement contains both ofNat and OfNat.ofNat, replace the latter by the former: as eric-wieser [says](https://github.com/leanprover-community/mathlib4/pull/20521#pullrequestreview-2532627381), these are mostly theorems that work forwards, but not backwards, with simp. Very much not exhaustive, there are perhaps 160 instances in mathlib remaining. ESTIMATED CHANGES Modified Mathlib/Algebra/AddConstMap/Basic.lean Modified Mathlib/Algebra/DirectSum/Internal.lean Modified Mathlib/Algebra/Module/LinearMap/End.lean Modified Mathlib/Algebra/Module/NatInt.lean Modified Mathlib/Algebra/Order/SuccPred/WithBot.lean Modified Mathlib/Algebra/Polynomial/Eval/Defs.lean Modified Mathlib/Algebra/Star/Basic.lean Modified Mathlib/Analysis/Normed/Group/Basic.lean Modified Mathlib/Data/Matrix/Kronecker.lean Modified Mathlib/Data/Matrix/Notation.lean 2025-01-10 18:19:00 0479fde feat(CategoryTheory/Shift/Opposite and CategoryTheory/Shift/Pullback): `CommShift` structures on adjunctions are compatible with opposites and pullbacks (#20363) Suppose that we use categories `C` and `D` equiped with a shifts by an additive monoid `A`, functors `F,F' : C ⥤ D`, a functor `G : D ⥤ C`, a natural transformation `τ : F ⟶ F'` and an adjunction `adj` between `F` and `G`. * For any map of additive monoids `φ : B →+ A`, we define type synonyms `PullbackShift.functor F φ` for `F`, `PullbackShift.natTrans τ φ` for `τ`, and `PullbackShift.adjunction adj φ` for `adj`. We then prove that a `CommShift` structure on `F` (resp. `τ`, resp. `adj`) induces a `CommShift` structure on `PullbackShift.functor F φ` (resp. `PullbackShift.natTrans τ φ`, resp. `PullbackShift.adjunction adj φ` ). * Similarly, we define type synonyms `OppositeShift.functor A F` for `F.op`, `OppositeShift.natTrans A τ` for `τ.op` and `OppositeShift.adjunction A adj` for `adj.op`, and prove that a `CommShift` structure on `F` (resp. `τ`, resp. `adj`) induces a `CommShift` structure on `OppositeShift.functor A F` (resp. `OppositeShift.natTrans A τ`, resp. `OppositeShift.adjunction A adj` ) for the naive shifts on the opposite categories. * The point of the second part is to reserve `F.op` etc to carry `CommShift` structures for the modified shift on the opposite categories used in the theory of (pre)triangulated categories. We illustrate this by simplifying the definition of the instance `commShiftOpInt` (a `CommShift ℤ` instance on `F.op` for the modified shifts) in the file `Triangulated.Opposite.Functor`. - [x] depends on: #20364 ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Shift/Opposite.lean + theorem CategoryTheory.Functor.commShiftOp_iso_eq + def CategoryTheory.NatTrans.OppositeShift.natIsoComp + def CategoryTheory.NatTrans.OppositeShift.natIsoId + def CategoryTheory.OppositeShift.adjunction + def CategoryTheory.OppositeShift.functor + def CategoryTheory.OppositeShift.natTrans Modified Mathlib/CategoryTheory/Shift/Pullback.lean + def CategoryTheory.NatTrans.PullbackShift.natIsoComp + def CategoryTheory.NatTrans.PullbackShift.natIsoId + def CategoryTheory.PullbackShift.adjunction + def CategoryTheory.PullbackShift.functor + def CategoryTheory.PullbackShift.natTrans Modified Mathlib/CategoryTheory/Triangulated/Opposite/Functor.lean 2025-01-10 18:18:59 78b361b feat(FieldTheory/Differential/Liouville): prove the algebraic case of Liouville's theorem (#16797) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/FieldTheory/Differential/Basic.lean + theorem Differential.differentialAlgebraFiniteDimensional Added Mathlib/FieldTheory/Differential/Liouville.lean + theorem IsLiouville.equiv + theorem IsLiouville.trans Modified Mathlib/RingTheory/Derivation/DifferentialRing.lean 2025-01-10 18:07:48 d9e6deb refactor: remove the `CompactSpace` field from `Unique{NonUnital}ContinuousFunctionalCalculus` (#20590) This was originally useful for the general theory in some places, but since that time, this field is included in `ContinuousFunctionalCalculus` itself. This PR removes this fields, which means that any topological `𝕜`-algebra is an instance of this class. (for `RCLike 𝕜`). Moreover, a topological `𝕜`-algebra `A` also has a `UniqueContinuousFunctionalCalculus ℝ≥0 A` instance. Previously, we only had this for *normed* `𝕜`-algebras because of the compact spectrum criterion. This avoids the need to assume `[UniqueContinuousFunctionalCalculus 𝕜 A]` pretty much throughout the library, replacing it with `[T2Space A]` and, in the case of `𝕜 := ℝ≥0`, `[TopologicalRing A]`. ESTIMATED CHANGES Modified Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Instances.lean Modified Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Isometric.lean Modified Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/NonUnital.lean Modified Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Order.lean Modified Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Unique.lean - theorem RCLike.uniqueContinuousFunctionalCalculus_of_compactSpace_spectrum - theorem RCLike.uniqueNonUnitalContinuousFunctionalCalculus_of_compactSpace_quasispectrum +/- theorem StarAlgHom.map_cfc Modified Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Unital.lean Modified Mathlib/Analysis/SpecialFunctions/ContinuousFunctionalCalculus/ExpLog.lean Modified Mathlib/Analysis/SpecialFunctions/ContinuousFunctionalCalculus/PosPart.lean Modified Mathlib/Analysis/SpecialFunctions/ContinuousFunctionalCalculus/Rpow.lean +/- theorem CFC.nnrpow_inv_eq +/- theorem CFC.nnrpow_inv_nnrpow +/- theorem CFC.nnrpow_nnrpow +/- theorem CFC.nnrpow_nnrpow_inv +/- theorem CFC.rpow_neg +/- theorem CFC.rpow_rpow +/- theorem CFC.rpow_rpow_of_exponent_nonneg +/- theorem CFC.rpow_sqrt +/- theorem CFC.rpow_sqrt_nnreal +/- theorem CFC.sqrt_rpow Modified Mathlib/LinearAlgebra/Matrix/HermitianFunctionalCalculus.lean 2025-01-10 17:21:36 59439d6 feat: Make `PNat.recOn` induction eliminator (#20617) Following this discussion on Zulip: https://leanprover.zulipchat.com/#narrow/channel/113489-new-members/topic/Base.20Case.20for.20Induction.20on.20N.2B/near/492807806 ESTIMATED CHANGES Modified Archive/Imo/Imo1982Q1.lean Modified Mathlib/Algebra/Group/PNatPowAssoc.lean Modified Mathlib/Data/PNat/Basic.lean +/- def PNat.recOn +/- theorem PNat.recOn_one +/- theorem PNat.recOn_succ Modified Mathlib/Data/PNat/Find.lean 2025-01-10 13:20:18 b1178f1 feat(Analysis/SpecialFunctions/Pow/Real): add some lemmas (#20608) This adds a few lemmas on powers with real exponents: * injectivity as a function of the exponent (when the base is positive and ≠ 1) * `(x ^ y) ^ n = (x ^ n) ^ y` when `y` is real and `n` is a natural number or an integer ESTIMATED CHANGES Modified Mathlib/Analysis/SpecialFunctions/Pow/Real.lean + theorem Real.rpow_pow_comm + theorem Real.rpow_right_inj + theorem Real.rpow_zpow_comm 2025-01-10 13:20:16 804cb79 feat: If `s ∆ t` is finite, then `s ∆ u` is finite iff `t ∆ u` is (#20574) Also make `Set.Finite.diff` have one less explicit argument. From my PhD (LeanCamCombi) ESTIMATED CHANGES Modified Mathlib/Data/Matroid/IndepAxioms.lean Modified Mathlib/Data/Set/Card.lean Modified Mathlib/Data/Set/Finite/Basic.lean +/- theorem Set.Finite.diff + theorem Set.Finite.symmDiff + theorem Set.Finite.symmDiff_congr +/- theorem Set.Finite.union 2025-01-10 13:20:15 12958ea feat: `⨅ i, f i ≤ ⨆ i, f i` (#20573) From my PhD (LeanCamCombi) ESTIMATED CHANGES Modified Mathlib/Data/Set/Lattice.lean + theorem Set.biInter_subset_biUnion + theorem Set.iInter_subset_iUnion Modified Mathlib/Order/CompleteLattice.lean +/- theorem biInf_le + theorem biInf_le_biSup + theorem iInf_le_iSup +/- theorem le_biSup Modified Mathlib/Order/ConditionallyCompleteLattice/Indexed.lean + theorem ciInf_le_ciSup 2025-01-10 13:09:55 a3ae543 chore(Geometry/Manifold): move SmoothManifoldWithCorners.lean to IsManifold.lean (#20611) Follow-up to #19696; split into a separate PR to not confuse git. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Geometry/Manifold/AnalyticManifold.lean Modified Mathlib/Geometry/Manifold/ContMDiff/Defs.lean Modified Mathlib/Geometry/Manifold/Instances/Real.lean Modified Mathlib/Geometry/Manifold/InteriorBoundary.lean Renamed Mathlib/Geometry/Manifold/SmoothManifoldWithCorners.lean to Mathlib/Geometry/Manifold/IsManifold.lean Modified Mathlib/Geometry/Manifold/MFDeriv/Defs.lean Modified Mathlib/Geometry/Manifold/Metrizable.lean 2025-01-10 11:19:29 e6e7902 feat: AbsoluteValue.IsNontrivial (#20588) This introduces `v.IsNontrivial : Prop` for `v : AbsoluteValue R S`; this states that `v x ≠ 1` for some `x ≠ 0`. This is more convenient to use than `v ≠ .trivial` since it does not require additional assumptions on `R` or `S` (whereas `AbsoluteValue.trivial` needs `x = 0` to be decidable in `R`, `R` to have no zero divisors and `S` to be nontrivial). We also adapt `NumberTheory.Ostrowski` to use `IsNontrivial` instead of `≠ .trivial`. ESTIMATED CHANGES Modified Mathlib/Algebra/Order/AbsoluteValue/Basic.lean + theorem AbsoluteValue.IsNontrivial.exists_abv_gt_one + theorem AbsoluteValue.IsNontrivial.exists_abv_lt_one + def AbsoluteValue.IsNontrivial + theorem AbsoluteValue.isNontrivial_iff_ne_trivial + theorem AbsoluteValue.not_isNontrivial_apply + theorem AbsoluteValue.not_isNontrivial_iff Modified Mathlib/NumberTheory/Ostrowski.lean +/- theorem Rat.AbsoluteValue.equiv_real_or_padic 2025-01-10 10:37:16 a34316a chore(Data/Finsupp): split off extensionality from `Defs.lean` (#19092) These results depend on `Submonoid`, while nothing else in `Finsupp` does. So let's move them to their own file. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/BigOperators/Finsupp.lean Modified Mathlib/Data/Finsupp/Defs.lean - theorem Finsupp.addHom_ext' - theorem Finsupp.addHom_ext - theorem Finsupp.add_closure_setOf_eq_single - theorem Finsupp.mulHom_ext' - theorem Finsupp.mulHom_ext Added Mathlib/Data/Finsupp/Ext.lean + theorem Finsupp.addHom_ext' + theorem Finsupp.addHom_ext + theorem Finsupp.add_closure_setOf_eq_single + theorem Finsupp.mulHom_ext' + theorem Finsupp.mulHom_ext 2025-01-10 09:20:15 593e78d chore(Data/Set): split the `CoeSort` instance to its own file (#19031) Although `Data.Set.Operations` is somewhat light-weight, it still pulls in a few imports. In particular, if we want to move the definition of `Set.Finite` to `Data.Finite.Defs`, then `Algebra.Group.Int` will complain that it's not allowed to import `Set.range` from `Data.Set.Operations`; this split will allow us to do the move without removing an `assert_not_exists`. See also this discussion on GitHub: https://github.com/leanprover-community/mathlib4/pull/18619#discussion_r1841131715 Zulip thread: https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Splitting.20docs.23Set.2EinstCoeSortType.20to.20its.20own.20file.3F ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Group/Int.lean Modified Mathlib/CategoryTheory/Types.lean Modified Mathlib/Data/Finite/Defs.lean Added Mathlib/Data/Set/CoeSort.lean + def Set.Elem Modified Mathlib/Data/Set/Operations.lean - def Set.Elem 2025-01-10 08:14:56 973fc78 feat(Algebra/Order/Archimedean/Basic): powers between two elements (#20612) This adds two lemmas on linearly ordered semifields: if `0 < c < 1` and `a < b * c`, then (under suitable conditions on `b`) there is a power `c ^ n` (with `n` a natural number / an integer) strictly between `a` and `b`. ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Archimedean/Basic.lean + theorem exists_pow_btwn_of_lt_mul + theorem exists_zpow_btwn_of_lt_mul 2025-01-10 07:43:09 d14cbfb feature(Algebra/Ring/Idempotents): product of an idempotent and its complement (#20286) Add a couple of simp lemmas. In a ring, the product of an idempotent and its complement is zero. ESTIMATED CHANGES Modified Mathlib/Algebra/Ring/Idempotents.lean + theorem IsIdempotentElem.mul_one_sub_self + theorem IsIdempotentElem.one_sub_mul_self Modified Mathlib/Analysis/NormedSpace/MStructure.lean 2025-01-10 07:05:30 220e307 chore: cleanup more `erw` (#20601) ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/Operations.lean Modified Mathlib/Algebra/BigOperators/Finprod.lean Modified Mathlib/Algebra/BigOperators/Group/Finset.lean Modified Mathlib/Algebra/GCDMonoid/Basic.lean Modified Mathlib/Algebra/Group/Subgroup/Basic.lean Modified Mathlib/Algebra/GroupWithZero/Basic.lean Modified Mathlib/Algebra/Module/Hom.lean Modified Mathlib/Algebra/Ring/Subsemiring/Basic.lean +/- def RingEquiv.subsemiringMap + theorem RingEquiv.subsemiringMap_apply_coe + theorem RingEquiv.subsemiringMap_symm_apply_coe Modified Mathlib/GroupTheory/GroupAction/DomAct/Basic.lean 2025-01-10 06:07:05 8448d4b chore(GroupTheory/CoprodI): shorten proof of lift_word_prod_nontrivial_of_not_empty (#20587) Replaces 9 lines of proof with a single application of [`lift_word_prod_nontrivial_of_other_i`](https://github.com/leanprover-community/mathlib4/blob/1e45d5cd7e9c7679d447d81fc9def277b54fc02d/Mathlib/GroupTheory/CoprodI.lean#L844). I observe this change to speed up the time reported by `set_option trace profiler true` from 280 `milliseconds` to 140 milliseconds. Found via [`tryAtEachStep`](https://github.com/dwrensha/tryAtEachStep). ESTIMATED CHANGES Modified Mathlib/GroupTheory/CoprodI.lean 2025-01-10 04:57:36 2bd5a6b chore: cleanup imports in PrimePow/Divisors (#20626) Moves a theorem to reduce the `NumberTheory` -> `Algebra` imports. ESTIMATED CHANGES Modified Mathlib/Algebra/IsPrimePow.lean - theorem Nat.disjoint_divisors_filter_isPrimePow Modified Mathlib/Data/Nat/Factorization/PrimePow.lean Modified Mathlib/NumberTheory/Divisors.lean + theorem Nat.disjoint_divisors_filter_isPrimePow 2025-01-10 04:57:35 07f5925 chore: split Algebra/BigOperators/Group/List (#20625) ESTIMATED CHANGES Modified Mathlib.lean Renamed Mathlib/Algebra/BigOperators/Group/List.lean to Mathlib/Algebra/BigOperators/Group/List/Basic.lean - theorem List.Perm.prod_eq' - theorem List.Sublist.prod_dvd_prod - def List.alternatingProd - theorem List.alternatingProd_append - theorem List.alternatingProd_reverse - def List.alternatingSum - theorem List.drop_take_succ_flatten_eq_getElem - theorem List.drop_take_succ_join_eq_get - theorem List.dvd_prod - theorem List.length_sigma - theorem List.mem_mem_ranges_iff_lt_sum - theorem List.neg_one_mem_of_prod_eq_neg_one - def List.prod - theorem List.prod_cons - theorem List.prod_eq_foldr - theorem List.prod_eq_pow_card - theorem List.prod_hom_rel - theorem List.prod_induction - theorem List.prod_isUnit - theorem List.prod_isUnit_iff - theorem List.prod_map_one - theorem List.prod_nil - theorem List.prod_one_cons - theorem List.prod_replicate - theorem List.prod_rotate_eq_one_of_prod_eq_one - theorem List.prod_singleton - theorem List.ranges_flatten - theorem List.ranges_nodup - theorem List.sum_map_count_dedup_eq_length - theorem List.sum_map_count_dedup_filter_eq_countP - theorem MulOpposite.op_list_prod - theorem MulOpposite.unop_list_prod - theorem unop_map_list_prod Added Mathlib/Algebra/BigOperators/Group/List/Defs.lean + def List.alternatingProd + def List.alternatingSum + def List.prod + theorem List.prod_cons + theorem List.prod_eq_foldr + theorem List.prod_eq_pow_card + theorem List.prod_hom_rel + theorem List.prod_induction + theorem List.prod_map_one + theorem List.prod_nil + theorem List.prod_one_cons + theorem List.prod_replicate + theorem List.prod_singleton Added Mathlib/Algebra/BigOperators/Group/List/Lemmas.lean + theorem List.Perm.prod_eq' + theorem List.Sublist.prod_dvd_prod + theorem List.alternatingProd_append + theorem List.alternatingProd_reverse + theorem List.drop_take_succ_flatten_eq_getElem + theorem List.drop_take_succ_join_eq_get + theorem List.dvd_prod + theorem List.length_sigma + theorem List.mem_mem_ranges_iff_lt_sum + theorem List.neg_one_mem_of_prod_eq_neg_one + theorem List.prod_isUnit + theorem List.prod_isUnit_iff + theorem List.prod_rotate_eq_one_of_prod_eq_one + theorem List.ranges_flatten + theorem List.ranges_nodup + theorem List.sum_map_count_dedup_eq_length + theorem List.sum_map_count_dedup_filter_eq_countP + theorem MulOpposite.op_list_prod + theorem MulOpposite.unop_list_prod + theorem unop_map_list_prod Modified Mathlib/Algebra/BigOperators/Group/Multiset.lean Modified Mathlib/Algebra/BigOperators/Ring/List.lean Modified Mathlib/Algebra/FreeMonoid/Basic.lean Modified Mathlib/Algebra/GradedMonoid.lean Modified Mathlib/Algebra/Group/Pointwise/Set/ListOfFn.lean Modified Mathlib/Algebra/Order/BigOperators/Group/List.lean Modified Mathlib/Algebra/Order/BigOperators/GroupWithZero/List.lean Modified Mathlib/Algebra/Order/BigOperators/Ring/List.lean Modified Mathlib/Data/List/Prime.lean Modified Mathlib/Data/Vector/Basic.lean Modified Mathlib/GroupTheory/Congruence/BigOperators.lean Modified Mathlib/GroupTheory/FreeGroup/Basic.lean Modified scripts/noshake.json 2025-01-10 04:48:34 a8fc467 chore: reduce Topology->Order imports by moving content (#20627) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Order/Category/Frm.lean - def topCatOpToFrm Modified Mathlib/Order/Filter/ZeroAndBoundedAtFilter.lean Added Mathlib/Topology/Category/CompHaus/Frm.lean + def topCatOpToFrm Modified Mathlib/Topology/Category/Locale.lean 2025-01-10 04:26:56 5ce9aa2 chore(Algebra/Lie/DirectSum): shorten proof of lieAlgebraOf.map_lie' (#20592) Uses the [`lie_of_same`](https://github.com/leanprover-community/mathlib4/blob/d4891b46ecc82d3f6050dd51c2699fee91a2347b/Mathlib/Algebra/Lie/DirectSum.lean#L118) lemma added in #8388 to shorten a 13-line proof down to a single line, removing two `erw`s and one porting note. According to `set_option trace.profiler true`, the new `lieAlgbraOf` declaration takes 135 milliseconds to elaborate, compared to 298 milliseconds for the declaration it replaces. Found via [`tryAtEachStep`](https://github.com/dwrensha/tryAtEachStep). ESTIMATED CHANGES Modified Mathlib/Algebra/Lie/DirectSum.lean 2025-01-10 01:57:22 2d57ce7 refactor: Split `FieldTheory/Adjoin.lean` into `Defs.lean` and `Basic.lean` (#20333) The file `FieldTheory/Adjoin.lean` was getting rather long, so I've split it into `Defs.lean` (importing only `FieldTheory/IntermediateField/Basic.lean`) and `Basic.lean` (everything else). ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/FieldTheory/Extension.lean Renamed Mathlib/FieldTheory/Adjoin.lean to Mathlib/FieldTheory/IntermediateField/Adjoin/Basic.lean - theorem AlgEquiv.fieldRange_eq_top - theorem AlgHom.fieldRange_eq_map - theorem AlgHom.fieldRange_eq_top - theorem AlgHom.map_fieldRange - theorem IntermediateField.AdjoinSimple.algebraMap_gen - theorem IntermediateField.AdjoinSimple.coe_gen - def IntermediateField.AdjoinSimple.gen - def IntermediateField.FG - theorem IntermediateField.adjoin.algebraMap_mem - theorem IntermediateField.adjoin.mono - theorem IntermediateField.adjoin.range_algebraMap_subset - def IntermediateField.adjoin - theorem IntermediateField.adjoin_adjoin_comm - theorem IntermediateField.adjoin_adjoin_left - theorem IntermediateField.adjoin_algHom_ext - theorem IntermediateField.adjoin_contains_field_as_subfield - theorem IntermediateField.adjoin_empty - theorem IntermediateField.adjoin_eq_bot_iff - theorem IntermediateField.adjoin_eq_range_algebraMap_adjoin - theorem IntermediateField.adjoin_iUnion - theorem IntermediateField.adjoin_induction - theorem IntermediateField.adjoin_insert_adjoin - theorem IntermediateField.adjoin_intCast - theorem IntermediateField.adjoin_le_iff - theorem IntermediateField.adjoin_le_subfield - theorem IntermediateField.adjoin_map - theorem IntermediateField.adjoin_natCast - theorem IntermediateField.adjoin_one - theorem IntermediateField.adjoin_self - theorem IntermediateField.adjoin_simple_adjoin_simple - theorem IntermediateField.adjoin_simple_comm - theorem IntermediateField.adjoin_simple_eq_bot_iff - theorem IntermediateField.adjoin_simple_le_iff - theorem IntermediateField.adjoin_subset_adjoin_iff - theorem IntermediateField.adjoin_toSubfield - theorem IntermediateField.adjoin_union - theorem IntermediateField.adjoin_univ - theorem IntermediateField.adjoin_zero - theorem IntermediateField.algHom_ext_of_eq_adjoin - theorem IntermediateField.biSup_adjoin_simple - theorem IntermediateField.botEquiv_def - theorem IntermediateField.botEquiv_symm - theorem IntermediateField.bot_toSubalgebra - theorem IntermediateField.bot_toSubfield - theorem IntermediateField.coe_algebraMap_over_bot - theorem IntermediateField.coe_bot - theorem IntermediateField.coe_equivMap_apply - theorem IntermediateField.coe_iInf - theorem IntermediateField.coe_inf - theorem IntermediateField.coe_sInf - theorem IntermediateField.coe_top - theorem IntermediateField.comap_map - def IntermediateField.equivOfEq - theorem IntermediateField.equivOfEq_rfl - theorem IntermediateField.equivOfEq_symm - theorem IntermediateField.equivOfEq_trans - theorem IntermediateField.extendScalars_adjoin - theorem IntermediateField.extendScalars_inf - theorem IntermediateField.extendScalars_self - theorem IntermediateField.extendScalars_sup - theorem IntermediateField.extendScalars_top - theorem IntermediateField.fg_adjoin_finset - theorem IntermediateField.fg_adjoin_of_finite - theorem IntermediateField.fg_bot - theorem IntermediateField.fg_def - theorem IntermediateField.fg_iSup - theorem IntermediateField.fg_sup - theorem IntermediateField.fieldRange_comp_val - theorem IntermediateField.gc - def IntermediateField.gi - theorem IntermediateField.iInf_toSubalgebra - theorem IntermediateField.iInf_toSubfield - theorem IntermediateField.iSup_eq_adjoin - theorem IntermediateField.iSup_toSubfield - theorem IntermediateField.induction_on_adjoin_fg - theorem IntermediateField.induction_on_adjoin_finset - theorem IntermediateField.inf_toSubalgebra - theorem IntermediateField.inf_toSubfield - theorem IntermediateField.lift_adjoin - theorem IntermediateField.lift_adjoin_simple - theorem IntermediateField.lift_bot - theorem IntermediateField.lift_top - theorem IntermediateField.map_bot - theorem IntermediateField.map_comap_eq - theorem IntermediateField.map_comap_eq_self - theorem IntermediateField.map_comap_eq_self_of_surjective - theorem IntermediateField.map_iInf - theorem IntermediateField.map_iSup - theorem IntermediateField.map_inf - theorem IntermediateField.map_sup - theorem IntermediateField.mem_adjoin_simple_self - theorem IntermediateField.mem_bot - theorem IntermediateField.mem_inf - theorem IntermediateField.mem_top - theorem IntermediateField.restrictScalars_adjoin - theorem IntermediateField.restrictScalars_adjoin_eq_sup - theorem IntermediateField.restrictScalars_adjoin_of_algEquiv - theorem IntermediateField.restrictScalars_bot_eq_self - theorem IntermediateField.restrictScalars_inf - theorem IntermediateField.restrictScalars_sup - theorem IntermediateField.restrictScalars_top - theorem IntermediateField.sInf_toSubalgebra - theorem IntermediateField.sInf_toSubfield - theorem IntermediateField.sSup_def - theorem IntermediateField.sSup_toSubfield - theorem IntermediateField.subset_adjoin - theorem IntermediateField.subset_adjoin_of_subset_left - theorem IntermediateField.subset_adjoin_of_subset_right - theorem IntermediateField.sup_def - theorem IntermediateField.sup_toSubfield - def IntermediateField.topEquiv - theorem IntermediateField.top_toSubalgebra - theorem IntermediateField.top_toSubfield - theorem Subfield.extendScalars_inf - theorem Subfield.extendScalars_self - theorem Subfield.extendScalars_sup - theorem Subfield.extendScalars_top Added Mathlib/FieldTheory/IntermediateField/Adjoin/Defs.lean + theorem AlgEquiv.fieldRange_eq_top + theorem AlgHom.fieldRange_eq_map + theorem AlgHom.fieldRange_eq_top + theorem AlgHom.map_fieldRange + theorem IntermediateField.AdjoinSimple.algebraMap_gen + theorem IntermediateField.AdjoinSimple.coe_gen + def IntermediateField.AdjoinSimple.gen + def IntermediateField.FG + theorem IntermediateField.adjoin.algebraMap_mem + theorem IntermediateField.adjoin.mono + theorem IntermediateField.adjoin.range_algebraMap_subset + def IntermediateField.adjoin + theorem IntermediateField.adjoin_adjoin_comm + theorem IntermediateField.adjoin_adjoin_left + theorem IntermediateField.adjoin_algHom_ext + theorem IntermediateField.adjoin_contains_field_as_subfield + theorem IntermediateField.adjoin_empty + theorem IntermediateField.adjoin_eq_bot_iff + theorem IntermediateField.adjoin_eq_range_algebraMap_adjoin + theorem IntermediateField.adjoin_iUnion + theorem IntermediateField.adjoin_induction + theorem IntermediateField.adjoin_insert_adjoin + theorem IntermediateField.adjoin_intCast + theorem IntermediateField.adjoin_le_iff + theorem IntermediateField.adjoin_le_subfield + theorem IntermediateField.adjoin_map + theorem IntermediateField.adjoin_natCast + theorem IntermediateField.adjoin_one + theorem IntermediateField.adjoin_self + theorem IntermediateField.adjoin_simple_adjoin_simple + theorem IntermediateField.adjoin_simple_comm + theorem IntermediateField.adjoin_simple_eq_bot_iff + theorem IntermediateField.adjoin_simple_le_iff + theorem IntermediateField.adjoin_subset_adjoin_iff + theorem IntermediateField.adjoin_toSubfield + theorem IntermediateField.adjoin_union + theorem IntermediateField.adjoin_univ + theorem IntermediateField.adjoin_zero + theorem IntermediateField.algHom_ext_of_eq_adjoin + theorem IntermediateField.biSup_adjoin_simple + theorem IntermediateField.botEquiv_def + theorem IntermediateField.botEquiv_symm + theorem IntermediateField.bot_toSubalgebra + theorem IntermediateField.bot_toSubfield + theorem IntermediateField.coe_algebraMap_over_bot + theorem IntermediateField.coe_bot + theorem IntermediateField.coe_equivMap_apply + theorem IntermediateField.coe_iInf + theorem IntermediateField.coe_inf + theorem IntermediateField.coe_sInf + theorem IntermediateField.coe_top + theorem IntermediateField.comap_map + def IntermediateField.equivOfEq + theorem IntermediateField.equivOfEq_rfl + theorem IntermediateField.equivOfEq_symm + theorem IntermediateField.equivOfEq_trans + theorem IntermediateField.extendScalars_adjoin + theorem IntermediateField.extendScalars_inf + theorem IntermediateField.extendScalars_self + theorem IntermediateField.extendScalars_sup + theorem IntermediateField.extendScalars_top + theorem IntermediateField.fg_adjoin_finset + theorem IntermediateField.fg_adjoin_of_finite + theorem IntermediateField.fg_bot + theorem IntermediateField.fg_def + theorem IntermediateField.fg_iSup + theorem IntermediateField.fg_sup + theorem IntermediateField.fieldRange_comp_val + theorem IntermediateField.gc + def IntermediateField.gi + theorem IntermediateField.iInf_toSubalgebra + theorem IntermediateField.iInf_toSubfield + theorem IntermediateField.iSup_eq_adjoin + theorem IntermediateField.iSup_toSubfield + theorem IntermediateField.induction_on_adjoin_fg + theorem IntermediateField.induction_on_adjoin_finset + theorem IntermediateField.inf_toSubalgebra + theorem IntermediateField.inf_toSubfield + theorem IntermediateField.lift_adjoin + theorem IntermediateField.lift_adjoin_simple + theorem IntermediateField.lift_bot + theorem IntermediateField.lift_top + theorem IntermediateField.map_bot + theorem IntermediateField.map_comap_eq + theorem IntermediateField.map_comap_eq_self + theorem IntermediateField.map_comap_eq_self_of_surjective + theorem IntermediateField.map_iInf + theorem IntermediateField.map_iSup + theorem IntermediateField.map_inf + theorem IntermediateField.map_sup + theorem IntermediateField.mem_adjoin_simple_self + theorem IntermediateField.mem_bot + theorem IntermediateField.mem_inf + theorem IntermediateField.mem_top + theorem IntermediateField.restrictScalars_adjoin + theorem IntermediateField.restrictScalars_adjoin_eq_sup + theorem IntermediateField.restrictScalars_adjoin_of_algEquiv + theorem IntermediateField.restrictScalars_bot_eq_self + theorem IntermediateField.restrictScalars_inf + theorem IntermediateField.restrictScalars_sup + theorem IntermediateField.restrictScalars_top + theorem IntermediateField.sInf_toSubalgebra + theorem IntermediateField.sInf_toSubfield + theorem IntermediateField.sSup_def + theorem IntermediateField.sSup_toSubfield + theorem IntermediateField.subset_adjoin + theorem IntermediateField.subset_adjoin_of_subset_left + theorem IntermediateField.subset_adjoin_of_subset_right + theorem IntermediateField.sup_def + theorem IntermediateField.sup_toSubfield + def IntermediateField.topEquiv + theorem IntermediateField.top_toSubalgebra + theorem IntermediateField.top_toSubfield + theorem Subfield.extendScalars_inf + theorem Subfield.extendScalars_self + theorem Subfield.extendScalars_sup + theorem Subfield.extendScalars_top Modified Mathlib/FieldTheory/LinearDisjoint.lean Modified Mathlib/FieldTheory/Minpoly/IsConjRoot.lean Modified Mathlib/FieldTheory/Relrank.lean Modified Mathlib/RingTheory/AlgebraicIndependent/Adjoin.lean Modified Mathlib/RingTheory/AlgebraicIndependent/TranscendenceBasis.lean Modified Mathlib/RingTheory/Valuation/Minpoly.lean 2025-01-10 01:30:05 98c1c16 chore(Algebra/CharP/Defs): do not import `Field` (#20566) ESTIMATED CHANGES Modified Mathlib/Algebra/CharP/Defs.lean Modified Mathlib/Algebra/CharP/Invertible.lean 2025-01-10 00:48:41 0a078d0 feat: add normalizedFactorsMapEquivNormalizedFactorsMinPolyMk_symm_apply_eq_span (#19603) We add `normalizedFactorsMapEquivNormalizedFactorsMinPolyMk_symm_apply_eq_span`, that explicitely describes the image, via the Kummer Dedekind correspondence, of a factor of the minimal polynomial of the generator. ESTIMATED CHANGES Modified Mathlib/NumberTheory/KummerDedekind.lean + theorem KummerDedekind.normalizedFactorsMapEquivNormalizedFactorsMinPolyMk_symm_apply_eq_span 2025-01-10 00:02:56 e44f03d chore: remove more `erw`s (#20605) ESTIMATED CHANGES Modified Mathlib/Algebra/Category/Grp/AB.lean Modified Mathlib/Algebra/Order/Antidiag/Prod.lean Modified Mathlib/Algebra/Order/Group/Pointwise/Interval.lean Modified Mathlib/Algebra/Order/Monovary.lean Modified Mathlib/CategoryTheory/Limits/HasLimits.lean + theorem CategoryTheory.Limits.colimMap_eq + theorem CategoryTheory.Limits.limMap_eq Modified Mathlib/Combinatorics/SimpleGraph/Regularity/Chunk.lean Modified Mathlib/Data/Finset/Prod.lean + theorem Finset.product_eq_sprod Modified Mathlib/Order/BooleanAlgebra.lean Modified Mathlib/Order/Filter/Bases.lean Modified Mathlib/Order/Filter/Prod.lean Modified Mathlib/Order/KrullDimension.lean Modified Mathlib/Order/RelSeries.lean 2025-01-10 00:02:55 66b1e30 chore: ext lemma for DirectSum (#20600) ESTIMATED CHANGES Modified Mathlib/Algebra/DirectSum/Basic.lean + theorem DirectSum.ext Modified Mathlib/Algebra/DirectSum/Module.lean - theorem DirectSum.ext + theorem DirectSum.ext_component + theorem DirectSum.ext_component_iff - theorem DirectSum.ext_iff Modified Mathlib/Algebra/DirectSum/Ring.lean Modified Mathlib/Algebra/Lie/DirectSum.lean Modified Mathlib/RingTheory/AdicCompletion/Functoriality.lean Modified Mathlib/RingTheory/Flat/Basic.lean 2025-01-09 23:52:41 b85c65b chore: clean up some `erw` in cyclotomic polynomials (#20597) ESTIMATED CHANGES Modified Mathlib/RingTheory/Polynomial/Cyclotomic/Basic.lean + theorem Polynomial.cyclotomic.eval_apply_ofReal Modified Mathlib/RingTheory/Polynomial/Cyclotomic/Eval.lean 2025-01-09 19:05:33 921866e fix(scripts/yaml_check.py): more consistent error handling (#20614) Invalid fields in the 100.yaml and 1000.yaml files are slipping through CI at the moment, see e.g. [this log](https://github.com/leanprover-community/mathlib4/actions/runs/12690334474/job/35370960547#step:19:8). After this commit, all errors detected by `yaml_check.py` print a message and increment the `errors` variable, only failing at the end of the script (so that all entries can get checked). ESTIMATED CHANGES Modified scripts/yaml_check.py 2025-01-09 18:51:50 2154395 feat: independence formula(finite product case) (#20437) feat: independence formula(finite product case) Authored-by: Yuma Mizuno [mizuno.y.aj@gmail.com](mailto:mizuno.y.aj@gmail.com) ESTIMATED CHANGES Modified Mathlib/Probability/Integration.lean + theorem ProbabilityTheory.lintegral_prod_eq_prod_lintegral_of_indepFun 2025-01-09 17:21:40 425a489 chore(1000.yaml): re-enable comments, add more entries (#20554) ESTIMATED CHANGES Modified docs/1000.yaml 2025-01-09 16:34:35 ae534e1 chore(Algebra): add missing simp lemmas (#20610) * Tag some `*.closure_eq` lemmas as `simp`. Previously, these lemmas were tagged `simp` for some substructures but not others. ESTIMATED CHANGES Modified Mathlib/Algebra/Field/Subfield/Basic.lean Modified Mathlib/Algebra/Ring/Subring/Basic.lean Modified Mathlib/Algebra/Ring/Subsemiring/Basic.lean Modified Mathlib/RingTheory/NonUnitalSubring/Basic.lean Modified Mathlib/RingTheory/NonUnitalSubsemiring/Basic.lean 2025-01-09 16:34:34 6b7dfde doc(Cache): add resp. tweak some documentation (#20606) - document two definitions - fix description of `get-` - mention `get-`, which also takes arguments Split from #20568. ESTIMATED CHANGES Modified Cache/Main.lean 2025-01-09 16:34:33 efd3027 feat(Asymptotics): add `IsBigO.of_norm_eventuallyLE` (#20415) .. and `.of_norm_le`. Also use `of_bound'` instead of `of_bound 1`. ESTIMATED CHANGES Modified Mathlib/Analysis/Analytic/Basic.lean Modified Mathlib/Analysis/Analytic/RadiusLiminf.lean Modified Mathlib/Analysis/Asymptotics/Asymptotics.lean + theorem Asymptotics.IsBigO.of_norm_eventuallyLE + theorem Asymptotics.IsBigO.of_norm_le Modified Mathlib/Analysis/Asymptotics/SuperpolynomialDecay.lean Modified Mathlib/Analysis/Asymptotics/Theta.lean + theorem Asymptotics.IsTheta.of_norm_eventuallyEq + theorem Asymptotics.IsTheta.of_norm_eventuallyEq_norm - theorem Asymptotics.isTheta_of_norm_eventuallyEq' - theorem Asymptotics.isTheta_of_norm_eventuallyEq Modified Mathlib/Analysis/Complex/PhragmenLindelof.lean Modified Mathlib/Analysis/SpecialFunctions/CompareExp.lean Modified Mathlib/Analysis/SpecialFunctions/Pow/Asymptotics.lean Modified Mathlib/Analysis/SpecificLimits/Normed.lean Modified Mathlib/Combinatorics/Extremal/RuzsaSzemeredi.lean 2025-01-09 15:53:26 7466910 chore(Asymptotics/TVS): golf (#20596) `IsLittleOTVS.tendsto_inv_smul` using `isLittleOTVS_one`. ESTIMATED CHANGES Modified Mathlib/Analysis/Asymptotics/TVS.lean 2025-01-09 15:53:25 1da931e feat(RingTheory/StandardSmooth): pre-requisites for calculating the naive cotangent complex of a submersive presentation (#19749) Preparations for #19748 ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/BigOperators/Group/Finset.lean + theorem Finset.prod_sum_eq_prod_toLeft_mul_prod_toRight Modified Mathlib/Data/Matrix/Mul.lean + theorem Matrix.mulVec_injective_of_isUnit + theorem Matrix.vecMul_injective_of_isUnit Added Mathlib/LinearAlgebra/Basis/Exact.lean + theorem LinearIndependent.linearIndependent_of_exact_of_retraction + theorem Submodule.top_le_span_of_exact_of_retraction Modified Mathlib/LinearAlgebra/Dimension/Free.lean + theorem Module.subsingleton_of_rank_zero Modified Mathlib/LinearAlgebra/Finsupp/Defs.lean Modified Mathlib/LinearAlgebra/Matrix/ToLin.lean + theorem Matrix.linearIndependent_cols_of_isUnit + theorem Matrix.linearIndependent_rows_of_isUnit Modified Mathlib/RingTheory/Extension.lean + theorem Algebra.Extension.Cotangent.mk_eq_zero_iff Modified Mathlib/RingTheory/Presentation.lean + theorem Algebra.Presentation.relation_mem_ker Modified Mathlib/RingTheory/Smooth/StandardSmooth.lean + theorem Algebra.PreSubmersivePresentation.aevalDifferential_single + theorem Algebra.PreSubmersivePresentation.aevalDifferential_toMatrix'_eq_mapMatrix_jacobiMatrix + theorem Algebra.SubmersivePresentation.aevalDifferentialEquiv_apply + theorem Algebra.SubmersivePresentation.basisDeriv_apply + theorem Algebra.SubmersivePresentation.linearIndependent_aeval_val_pderiv_relation 2025-01-09 15:44:38 5177008 feat: the `#find_syntax` command (#17986) The `#find_syntax` command takes as input a string `str` and retrieves from the environment all the candidates for `syntax` terms that contain the string `str`. It also makes a very crude effort at regenerating what the syntax looks like, by inspecting the `Expr`ession tree of the corresponding parser. [Zulip](https://leanprover.zulipchat.com/#narrow/channel/113488-general/topic/Finding.20syntax) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Tactic.lean Added Mathlib/Tactic/FindSyntax.lean + def Mathlib.FindSyntax.extractSymbols + def Mathlib.FindSyntax.litToString Added MathlibTest/FindSyntax.lean 2025-01-09 15:36:23 3dff5d2 feat: extend smoothness category of manifolds with corners to include analytic manifolds (#19696) Now that `ContDiff` includes smoothness exponents up to analytic functions, we can do the same for manifolds. The PR renames `SmoothManifoldWithCorners` to `IsManifold`, and includes an additional smoothness exponent (ranging from 0 to infinity and omega). The docstring of `IsManifold` emphasizes that this allows (but does not mandate) corners or boundaries. The file `SmoothManifoldWithCorners` itself is not renamed, to avoid confusing git, and will be renamed in a follow-up PR. The current version of the PR also allows an additional smoothness exponent in the algebraic classes like `ContMDiffMul` or `LieGroup`. For all of these, we add a bunch of instances to deduce low smoothness from high smoothness versions (for example, `LieGroup I 2 G` is found by typeclass inference from `LieGroup I ∞ G`). This change makes it possible to do things with the correct assumptions. For instance, the tangent bundle is a fiber bundle assuming only that the manifold is `C^1` (but we have instances saying that it is `C^∞` if the manifold is `C^∞`, analytic if the manifold is analytic). Normally, I should have properly deprecated everything but instances. TODO in follow-up PRs: * rename `SmoothManifoldWithCorners.lean` to `IsManifold.lean` * deprecate the whole file `Manifold.Analytic.lean` ESTIMATED CHANGES Modified Archive/Hairer.lean + theorem ContDiffSupportedOn.coe_mk + theorem ContDiffSupportedOn.contDiff + theorem ContDiffSupportedOn.continuous + theorem ContDiffSupportedOn.hasCompactSupport + theorem ContDiffSupportedOn.integrable_eval_mul + theorem ContDiffSupportedOn.support_subset + theorem ContDiffSupportedOn.tsupport_subset + def ContDiffSupportedOn - theorem SmoothSupportedOn.coe_mk - theorem SmoothSupportedOn.contDiff - theorem SmoothSupportedOn.continuous - theorem SmoothSupportedOn.hasCompactSupport - theorem SmoothSupportedOn.integrable_eval_mul - theorem SmoothSupportedOn.support_subset - theorem SmoothSupportedOn.tsupport_subset - def SmoothSupportedOn Modified Mathlib/Analysis/Calculus/InverseFunctionTheorem/ContDiff.lean Modified Mathlib/Analysis/Calculus/SmoothSeries.lean Modified Mathlib/Analysis/Complex/UpperHalfPlane/Manifold.lean +/- theorem UpperHalfPlane.contMDiff_coe Modified Mathlib/Analysis/Convolution.lean Modified Mathlib/Analysis/Distribution/AEEqOfIntegralContDiff.lean Modified Mathlib/Analysis/SpecialFunctions/ExpDeriv.lean Modified Mathlib/Geometry/Manifold/Algebra/LeftInvariantDerivation.lean Modified Mathlib/Geometry/Manifold/Algebra/LieGroup.lean +/- theorem contMDiffAt_inv₀ +/- theorem contMDiffOn_inv₀ +/- theorem contMDiff_inv + theorem hasContinuousInv₀_of_hasContMDiffInv₀ - theorem hasContinuousInv₀_of_hasSmoothInv₀ Modified Mathlib/Geometry/Manifold/Algebra/Monoid.lean + structure ContMDiffAddMonoidMorphism + structure ContMDiffMonoidMorphism +/- theorem L_mul +/- theorem R_mul - structure SmoothAddMonoidMorphism - structure SmoothMonoidMorphism +/- theorem contMDiff_mul +/- theorem contMDiff_pow + theorem continuousMul_of_contMDiffMul - theorem continuousMul_of_smooth +/- theorem mdifferentiableAt_mul_left +/- theorem mdifferentiableAt_mul_right Modified Mathlib/Geometry/Manifold/Algebra/SmoothFunctions.lean + def ContMDiffMap.C + def ContMDiffMap.coeFnAlgHom + def ContMDiffMap.coeFnLinearMap + def ContMDiffMap.coeFnMonoidHom + def ContMDiffMap.coeFnRingHom + theorem ContMDiffMap.coe_div + theorem ContMDiffMap.coe_inv + theorem ContMDiffMap.coe_mul + theorem ContMDiffMap.coe_one + theorem ContMDiffMap.coe_pow + theorem ContMDiffMap.coe_smul + def ContMDiffMap.compLeftMonoidHom + def ContMDiffMap.compLeftRingHom + def ContMDiffMap.evalRingHom + theorem ContMDiffMap.mul_comp + def ContMDiffMap.restrictMonoidHom + def ContMDiffMap.restrictRingHom + theorem ContMDiffMap.smul_comp' + theorem ContMDiffMap.smul_comp - def SmoothMap.C - def SmoothMap.coeFnAlgHom - def SmoothMap.coeFnLinearMap - def SmoothMap.coeFnMonoidHom - def SmoothMap.coeFnRingHom - theorem SmoothMap.coe_div - theorem SmoothMap.coe_inv - theorem SmoothMap.coe_mul - theorem SmoothMap.coe_one - theorem SmoothMap.coe_pow - theorem SmoothMap.coe_smul - def SmoothMap.compLeftMonoidHom - def SmoothMap.compLeftRingHom - def SmoothMap.evalRingHom - theorem SmoothMap.mul_comp - def SmoothMap.restrictMonoidHom - def SmoothMap.restrictRingHom - theorem SmoothMap.smul_comp' - theorem SmoothMap.smul_comp Modified Mathlib/Geometry/Manifold/Algebra/Structures.lean + theorem topologicalSemiring_of_contMDiffRing - theorem topologicalSemiring_of_smooth Modified Mathlib/Geometry/Manifold/AnalyticManifold.lean Modified Mathlib/Geometry/Manifold/BumpFunction.lean Modified Mathlib/Geometry/Manifold/ChartedSpace.lean Modified Mathlib/Geometry/Manifold/Complex.lean Modified Mathlib/Geometry/Manifold/ContMDiff/Atlas.lean +/- theorem contMDiffAt_extend +/- theorem contMDiffAt_of_mem_maximalAtlas +/- theorem contMDiffAt_symm_of_mem_maximalAtlas +/- theorem contMDiffOn_extend_symm +/- theorem contMDiffOn_of_mem_maximalAtlas +/- theorem contMDiffOn_symm_of_mem_maximalAtlas Modified Mathlib/Geometry/Manifold/ContMDiff/Basic.lean +/- theorem ContMDiff.extend_one +/- theorem contMDiffAt_subtype_iff +/- theorem contMDiff_inclusion +/- theorem contMDiff_subtype_val Modified Mathlib/Geometry/Manifold/ContMDiff/Defs.lean +/- def ContDiffWithinAtProp +/- theorem ContMDiff.of_succ +/- def ContMDiff +/- theorem ContMDiffAt.of_succ +/- def ContMDiffAt +/- theorem ContMDiffOn.of_succ +/- def ContMDiffOn +/- theorem ContMDiffWithinAt.of_succ +/- def ContMDiffWithinAt +/- theorem contDiffWithinAt_localInvariantProp + theorem contDiffWithinAt_localInvariantProp_of_le +/- theorem contMDiffAt_iff + theorem contMDiffAt_infty - theorem contMDiffAt_top +/- theorem contMDiffOn_iff_of_mem_maximalAtlas' +/- theorem contMDiffOn_iff_of_mem_maximalAtlas +/- theorem contMDiffOn_iff_source_of_mem_maximalAtlas + theorem contMDiffOn_infty - theorem contMDiffOn_top +/- theorem contMDiffWithinAt_iff_image +/- theorem contMDiffWithinAt_iff_nat +/- theorem contMDiffWithinAt_iff_of_mem_maximalAtlas + theorem contMDiffWithinAt_infty - theorem contMDiffWithinAt_top + theorem contMDiff_infty - theorem contMDiff_top Modified Mathlib/Geometry/Manifold/ContMDiff/NormedSpace.lean Modified Mathlib/Geometry/Manifold/ContMDiff/Product.lean Modified Mathlib/Geometry/Manifold/ContMDiffMFDeriv.lean +/- theorem TangentBundle.tangentMap_tangentBundle_pure Modified Mathlib/Geometry/Manifold/ContMDiffMap.lean Modified Mathlib/Geometry/Manifold/DerivationBundle.lean + def ContMDiffFunction.evalAt + def PointedContMDiffMap.eval + theorem PointedContMDiffMap.smul_def + def PointedContMDiffMap - def PointedSmoothMap.eval - theorem PointedSmoothMap.smul_def - def PointedSmoothMap - def SmoothFunction.evalAt Modified Mathlib/Geometry/Manifold/Diffeomorph.lean +/- def Diffeomorph.toTransDiffeomorph +/- def ModelWithCorners.transDiffeomorph Modified Mathlib/Geometry/Manifold/Instances/Real.lean Modified Mathlib/Geometry/Manifold/Instances/Sphere.lean +/- theorem ContMDiff.codRestrict_sphere +/- theorem contDiff_stereoInvFunAux +/- theorem contMDiff_circleExp Modified Mathlib/Geometry/Manifold/Instances/UnitsOfNormedAlgebra.lean +/- theorem Units.contMDiff_val Modified Mathlib/Geometry/Manifold/IntegralCurve/Basic.lean Modified Mathlib/Geometry/Manifold/IntegralCurve/ExistUnique.lean Modified Mathlib/Geometry/Manifold/IntegralCurve/UniformTime.lean Modified Mathlib/Geometry/Manifold/InteriorBoundary.lean Modified Mathlib/Geometry/Manifold/LocalDiffeomorph.lean Modified Mathlib/Geometry/Manifold/MFDeriv/Atlas.lean Modified Mathlib/Geometry/Manifold/MFDeriv/Basic.lean +/- theorem mdifferentiableOn_iff_of_mem_maximalAtlas' +/- theorem mdifferentiableOn_iff_of_mem_maximalAtlas +/- theorem mdifferentiableWithinAt_iff_image +/- theorem mdifferentiableWithinAt_iff_of_mem_maximalAtlas Modified Mathlib/Geometry/Manifold/MFDeriv/Defs.lean Modified Mathlib/Geometry/Manifold/MFDeriv/NormedSpace.lean Modified Mathlib/Geometry/Manifold/MFDeriv/Tangent.lean Modified Mathlib/Geometry/Manifold/MFDeriv/UniqueDifferential.lean +/- theorem Trivialization.mdifferentiable Modified Mathlib/Geometry/Manifold/PartitionOfUnity.lean +/- theorem BumpCovering.coe_toSmoothPartitionOfUnity +/- def BumpCovering.toSmoothPartitionOfUnity +/- theorem SmoothPartitionOfUnity.contMDiff_sum Modified Mathlib/Geometry/Manifold/PoincareConjecture.lean Modified Mathlib/Geometry/Manifold/Sheaf/LocallyRingedSpace.lean + def IsManifold.locallyRingedSpace - def SmoothManifoldWithCorners.locallyRingedSpace Modified Mathlib/Geometry/Manifold/Sheaf/Smooth.lean +/- def smoothSheafCommGroup.compLeft Modified Mathlib/Geometry/Manifold/SmoothManifoldWithCorners.lean + theorem IsManifold.chart_mem_maximalAtlas + theorem IsManifold.compatible_of_mem_maximalAtlas + def IsManifold.maximalAtlas + theorem IsManifold.maximalAtlas_subset_of_le + theorem IsManifold.mk' + theorem IsManifold.subset_maximalAtlas +/- theorem PartialHomeomorph.contDiffOn_extend_coord_change +/- theorem PartialHomeomorph.contDiffWithinAt_extend_coord_change' +/- theorem PartialHomeomorph.contDiffWithinAt_extend_coord_change + theorem PartialHomeomorph.isManifold_singleton - theorem PartialHomeomorph.singleton_smoothManifoldWithCorners - theorem SmoothManifoldWithCorners.chart_mem_maximalAtlas - theorem SmoothManifoldWithCorners.compatible_of_mem_maximalAtlas - def SmoothManifoldWithCorners.maximalAtlas - theorem SmoothManifoldWithCorners.mk' - theorem SmoothManifoldWithCorners.subset_maximalAtlas + theorem Topology.IsOpenEmbedding.isManifold_singleton - theorem Topology.IsOpenEmbedding.singleton_smoothManifoldWithCorners +/- theorem contDiffOn_ext_coord_change +/- theorem contDiffWithinAt_ext_coord_change + theorem isManifold_of_contDiffOn - theorem smoothManifoldWithCorners_of_contDiffOn Modified Mathlib/Geometry/Manifold/VectorBundle/Basic.lean +/- theorem Bundle.contMDiff_zeroSection +/- theorem VectorBundleCore.contMDiffOn_coordChange + theorem VectorPrebundle.contMDiffCoordChange_apply + theorem VectorPrebundle.contMDiffOn_contMDiffCoordChange - theorem VectorPrebundle.contMDiffOn_smoothCoordChange + theorem VectorPrebundle.contMDiffVectorBundle + theorem VectorPrebundle.mk_contMDiffCoordChange - theorem VectorPrebundle.mk_smoothCoordChange - theorem VectorPrebundle.smoothCoordChange_apply - theorem VectorPrebundle.smoothVectorBundle Modified Mathlib/Geometry/Manifold/VectorBundle/FiberwiseLinear.lean + theorem ContMDiffFiberwiseLinear.locality_aux₁ + theorem ContMDiffFiberwiseLinear.locality_aux₂ - theorem SmoothFiberwiseLinear.locality_aux₁ - theorem SmoothFiberwiseLinear.locality_aux₂ + def contMDiffFiberwiseLinear + theorem mem_contMDiffFiberwiseLinear_iff - theorem mem_smoothFiberwiseLinear_iff - def smoothFiberwiseLinear Modified Mathlib/Geometry/Manifold/VectorBundle/Hom.lean Modified Mathlib/Geometry/Manifold/VectorBundle/MDifferentiable.lean Modified Mathlib/Geometry/Manifold/VectorBundle/Pullback.lean Modified Mathlib/Geometry/Manifold/VectorBundle/SmoothSection.lean Modified Mathlib/Geometry/Manifold/VectorBundle/Tangent.lean + theorem TangentBundle.contMDiffVectorBundle +/- theorem contDiffOn_fderiv_coord_change + theorem tangentBundleCore.isContMDiff Modified Mathlib/Geometry/Manifold/WhitneyEmbedding.lean Modified docs/overview.yaml Modified scripts/nolints_prime_decls.txt 2025-01-09 14:40:21 b835401 refactor(lint-style): make sure to read the nolints file outside of t… (#19384) …he linter implementation This way, we categorically prevent cache invalidation bugs caused by lake replaying unchanged inputs, and thus not reaction to changes in the linter exceptions. For *syntax linters*, such a bug actually occurred in mathlib. (With the current implementation of text-based linters, this issue won't occur; this is merely a defensive change.) Suggested in #19275. ESTIMATED CHANGES Modified Mathlib/Tactic/Linter/TextBased.lean +/- def Mathlib.Linter.TextBased.lintModules Modified scripts/lint-style.lean 2025-01-09 13:16:03 dd2e6e3 chore(Combinatorics/SetFamily/AhlswedeZhang): golf simp (#20598) Unfortunately, I'm unsure about which change in lean4 fixed this. ESTIMATED CHANGES Modified Mathlib/Combinatorics/SetFamily/AhlswedeZhang.lean 2025-01-09 12:56:57 ab7742e ci: basic check on fields in 100.yaml and 1000.yaml (#20078) This PR makes `scripts/yaml_check.py` verify that `100.yaml` and `1000.yaml` only contain fields the webpage expects them to. Otherwise, changes in mathlib breaking the website won't be noticed until they are merged; this has happened several times in the last days. In particular, replace two occurrences of `note` in `1000.yaml` by `comment`. To this end, this PR copies the dataclass constructors which are used in the website script to `scripts/yaml_check.py` (along with a comment asking to keep them in sync). While at it, this PR documents the fields in `100.yaml` as well, and moves the documentation for `1000.yaml` to the copied dataclasses in `yaml_check.py`. In addition, validate that at most one of the fields `decl` and `decls` are passed: the webpage also does this; this avoids late surprises. ESTIMATED CHANGES Modified docs/100.yaml Modified docs/1000.yaml Modified scripts/yaml_check.py 2025-01-09 12:02:00 bb6f0a3 chore: remove `erw`s (#20599) ESTIMATED CHANGES Modified Mathlib/Algebra/Module/LocalizedModule/Basic.lean Modified Mathlib/Algebra/MonoidAlgebra/Basic.lean Modified Mathlib/FieldTheory/IsAlgClosed/AlgebraicClosure.lean 2025-01-09 10:38:11 e1af5e8 chore(RingTheory/Ideal/Quotient): shorten proof of ringCon.mul' (#20586) Replaces four lines of proof with a single invocation of [`mul_sub_mul_mem](https://github.com/leanprover-community/mathlib4/blob/8421da8699ad0386cf29f4c0e67497a819e04cba/Mathlib/RingTheory/Ideal/Defs.lean#L144). The goal at this point in the proof is ```lean ... I : Ideal R a₁ b₁ a₂ b₂ : R h₁ : a₁ - b₁ ∈ I h₂ : a₂ - b₂ ∈ I ⊢ a₁ * a₂ - b₁ * b₂ ∈ I ``` which is exactly what `mul_sub_mul_mem` provides. Found via [`tryAtEachStep`](https://github.com/dwrensha/tryAtEachStep). ESTIMATED CHANGES Modified Mathlib/RingTheory/Ideal/Quotient/Defs.lean 2025-01-09 10:38:10 f3e168c feat: Add codeaction and widget to success_if_fail_with_msg tactic (#20378) make the `success_if_fail_with_msg` tactic give a codeaction when the tactics given fail with a different error, to update the expected error message. example: ```lean4 example : Nat → Nat → True := by success_if_fail_with_msg "no goals" -- Update with tactic error message: "no goals to be solved" intro intro trivial trivial intros; trivial ``` ESTIMATED CHANGES Modified Mathlib/Tactic/SuccessIfFailWithMsg.lean +/- def Mathlib.Tactic.successIfFailWithMessage Modified MathlibTest/success_if_fail_with_msg.lean 2025-01-09 10:01:44 30db47d feat: `simp` lemmas for degenerate uses of `IsCoprime` (#20569) @erdOne had another proof of `Nat.isCoprime_iff` [on Zulip](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Create.20instance.20.60CommSemiring.20.E2.84.95.2B.60.2C.20.20err.20.60expected.20structure.60/near/487351085) Also adds some unrelated `abs` lemmas. ESTIMATED CHANGES Modified Mathlib/Algebra/GroupWithZero/Divisibility.lean + theorem GroupWithZero.dvd_iff Modified Mathlib/RingTheory/Coprime/Basic.lean + theorem IsCoprime.abs_abs + theorem IsCoprime.abs_abs_iff + theorem IsCoprime.abs_left + theorem IsCoprime.abs_left_iff + theorem IsCoprime.abs_right + theorem IsCoprime.abs_right_iff + theorem Nat.isCoprime_iff + theorem PNat.isCoprime_iff + theorem Semifield.isCoprime_iff 2025-01-09 09:30:49 4755cdd feat: make spanning condition in `RootSystem` symmetric for roots and coroots. (#20564) The key change here is the additional axiom which I have added to root systems demanding `span R (range coroot) = ⊤`. This means that certain root pairings no longer qualify as root systems. We're in uncharted territory here (the informal literature only considers more specialised situations and so avoids this issue) but I claim the most useful definition will be one with a perfect symmetry between roots and coroots. ESTIMATED CHANGES Modified Mathlib/Algebra/Lie/Weights/RootSystem.lean Modified Mathlib/LinearAlgebra/RootSystem/Basic.lean +/- def RootPairing.mk' +/- def RootSystem.mk' Modified Mathlib/LinearAlgebra/RootSystem/Defs.lean Modified Mathlib/LinearAlgebra/RootSystem/Finite/Nondegenerate.lean + theorem RootPairing.rootSpan_eq_top_iff 2025-01-09 08:48:37 5e91013 feat: pointwise set operations commute with cartesian product (#20579) From GrowthInGroups (LeanCamCombi) ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Pointwise/Finset/Basic.lean + theorem Finset.inv_product + theorem Finset.one_product_one + theorem Finset.product_mul_product_comm + theorem Finset.product_pow Modified Mathlib/Algebra/Group/Pointwise/Set/Basic.lean + theorem Set.inv_prod + theorem Set.one_prod_one + theorem Set.prod_mul_prod_comm + theorem Set.prod_pow Modified Mathlib/Algebra/MvPolynomial/Equiv.lean 2025-01-09 08:10:32 f227e4a feat(Algebra/Module/CharacterModule): a morphism of abelian groups is bijective if and only if its dual is bijective (#20512) Prove that a morphism of abelian groups `f` is surjective if and only if its dual is injective, deduce that `f` is bijective if and only if its dual is bijective. Note: here we use duality with coefficients in `ℚ ⧸ ℤ`. ESTIMATED CHANGES Modified Mathlib/Algebra/Module/CharacterModule.lean + theorem CharacterModule.dual_bijective_iff_bijective + theorem CharacterModule.dual_comp + theorem CharacterModule.dual_injective_iff_surjective + theorem CharacterModule.dual_injective_of_surjective + theorem CharacterModule.dual_zero + theorem CharacterModule.surjective_of_dual_injective 2025-01-08 23:18:58 d4891b4 feat: `a ^ n ⊔ b ^ n ≤ (a ⊔ b) ^ n` (#20577) From GrowthInGroups (LeanCamCombi) ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Monoid/Unbundled/Pow.lean + theorem le_pow_sup + theorem le_self_pow +/- theorem one_lt_pow' + theorem pow_inf_le +/- theorem pow_le_pow_right' +/- theorem pow_le_pow_right_of_le_one' +/- theorem pow_right_monotone Modified Mathlib/Algebra/Order/Ring/Basic.lean 2025-01-08 23:01:02 7abb84e feat: `cache get` warns if given module names rather than paths (#20589) Per [zulip](https://leanprover.zulipchat.com/#narrow/channel/270676-lean4/topic/Size.20issue/near/492507604) discussion. ESTIMATED CHANGES Modified .github/build.in.yml Modified .github/workflows/bors.yml Modified .github/workflows/build.yml Modified .github/workflows/build_fork.yml Modified Cache/Hashing.lean 2025-01-08 20:49:15 1e45d5c feat(Algebra/Module): definition of `R`-lattices (#19902) Given an integral domain `R` and its fraction field `K`, we define an `R`-lattice in a `K`-vector space `V` to be a finitely generated `R`-submodule of `V` that generates `V` over `K`. If `R` is a PID a lattice is always a free `R`-module of rank `Module.rank K V`. The unit group of `R` naturally acts on the type of `R`-lattices in `V`. If `V = Fin 2 → K` and `R` is a discrete valuation ring, the quotient by this action are the vertices of the Bruhat-Tits tree of `GL (Fin 2) K`. In this PR the predicate `IsLattice` on a submodule `M` is defined and some basic stability properties are shown. From "Formalizing the Bruhat-Tits tree" Co-authored by: Judith Ludwig ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Algebra/Basic.lean + theorem NoZeroSMulDivisors.of_algebraMap_injective' Added Mathlib/Algebra/Module/Lattice.lean + theorem Basis.extendOfIsLattice_apply + theorem Submodule.IsLattice.finrank_of_pi + theorem Submodule.IsLattice.of_le_of_isLattice_of_fg + theorem Submodule.IsLattice.of_rank_le + theorem Submodule.IsLattice.rank' + theorem Submodule.IsLattice.rank_of_pi + theorem Submodule.span_range_eq_top_of_injective_of_rank_le Modified Mathlib/Algebra/Module/ZLattice/Basic.lean 2025-01-08 18:30:16 8421da8 feat(NumberTheory/NumberField/Basic): ringOfIntegersEquiv API (#20544) Andrew Yang's proof that the obvious triangle to `ℚ` commutes. ESTIMATED CHANGES Modified Mathlib/NumberTheory/NumberField/Basic.lean + theorem Rat.coe_ringOfIntegersEquiv 2025-01-08 18:19:07 c8899bb feat(Ringtheory/DedekindDomain/AdicValuation); add mem_integers_of_valuation_le_one (#20523) A Lean 4 port of Junyan Xu's code [here](https://leanprover.zulipchat.com/#narrow/channel/217875-Is-there-code-for-X.3F/topic/Intersection.20of.20localisations/near/302954312). ESTIMATED CHANGES Modified Mathlib/RingTheory/DedekindDomain/AdicValuation.lean + theorem IsDedekindDomain.HeightOneSpectrum.mem_integers_of_valuation_le_one 2025-01-08 16:29:29 a2cbb66 feat(Topology/Algebra) finite modules over compact rings are compact (#20291) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Topology/Algebra/Module/Compact.lean + theorem Ideal.isCompact_of_fg + theorem Module.Finite.compactSpace + theorem Submodule.isCompact_of_fg 2025-01-08 16:06:16 60ae2db feat(RingTheory/Smooth): calculate `H¹(L)` via formally smooth extensions (#20471) ESTIMATED CHANGES Modified Mathlib/RingTheory/Extension.lean + def Algebra.Extension.infinitesimal + theorem Algebra.Extension.ker_infinitesimal + def Algebra.Extension.toInfinitesimal Modified Mathlib/RingTheory/Ideal/Cotangent.lean + theorem Ideal.comap_cotangentIdeal + theorem Ideal.mk_mem_cotangentIdeal + theorem Ideal.range_cotangentToQuotientSquare - theorem Ideal.to_quotient_square_range Modified Mathlib/RingTheory/Kaehler/CotangentComplex.lean + def Algebra.Extension.H1Cotangent.equiv Modified Mathlib/RingTheory/Smooth/Kaehler.lean + theorem Algebra.Extension.Cotangent.map_toInfinitesimal_bijective + theorem Algebra.Extension.CotangentSpace.map_toInfinitesimal_bijective + def Algebra.Extension.H1Cotangent.equivOfFormallySmooth + theorem Algebra.Extension.H1Cotangent.map_toInfinitesimal_bijective + def Algebra.Extension.equivH1CotangentOfFormallySmooth + def Algebra.Extension.homInfinitesimal 2025-01-08 13:46:35 4e6cc37 feat: missing emultiplicity coercion lemma (#19753) https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/calculating.20multiplicities/near/486380567 ESTIMATED CHANGES Modified Mathlib/RingTheory/Multiplicity.lean + theorem emultiplicity_eq_ofNat 2025-01-08 13:31:05 0fe7473 chore(Algebra/CharP/Basic): don't import `IsSimpleRing` (#20550) ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/ZMod.lean Modified Mathlib/Algebra/CharP/Algebra.lean - theorem Algebra.charP_iff - theorem RingHom.charP_iff + theorem RingHom.charP_iff_charP Modified Mathlib/Algebra/CharP/Basic.lean - theorem RingHom.charP_iff_charP Modified Mathlib/Algebra/Homology/Bifunctor.lean Modified Mathlib/Algebra/Homology/BifunctorAssociator.lean Modified Mathlib/Algebra/Homology/BifunctorHomotopy.lean Modified Mathlib/Algebra/Homology/BifunctorShift.lean Modified Mathlib/Algebra/Homology/ComplexShapeSigns.lean Modified Mathlib/Algebra/Homology/DerivedCategory/Basic.lean Modified Mathlib/Algebra/Homology/DerivedCategory/ExactFunctor.lean Modified Mathlib/Algebra/Homology/DerivedCategory/Ext/Basic.lean Modified Mathlib/Algebra/Homology/DerivedCategory/Ext/ExactSequences.lean Modified Mathlib/Algebra/Homology/DerivedCategory/Ext/ExtClass.lean Modified Mathlib/Algebra/Homology/DerivedCategory/HomologySequence.lean Modified Mathlib/Algebra/Homology/DerivedCategory/ShortExact.lean Modified Mathlib/Algebra/Homology/DerivedCategory/SingleTriangle.lean Modified Mathlib/Algebra/Homology/HomotopyCategory/DegreewiseSplit.lean Modified Mathlib/Algebra/Homology/HomotopyCategory/HomComplex.lean Modified Mathlib/Algebra/Homology/HomotopyCategory/HomComplexShift.lean Modified Mathlib/Algebra/Homology/HomotopyCategory/HomologicalFunctor.lean Modified Mathlib/Algebra/Homology/HomotopyCategory/MappingCone.lean Modified Mathlib/Algebra/Homology/HomotopyCategory/Pretriangulated.lean Modified Mathlib/Algebra/Homology/HomotopyCategory/Shift.lean Modified Mathlib/Algebra/Homology/HomotopyCategory/ShiftSequence.lean Modified Mathlib/Algebra/Homology/HomotopyCategory/ShortExact.lean Modified Mathlib/Algebra/Homology/HomotopyCategory/SingleFunctors.lean Modified Mathlib/Algebra/Homology/HomotopyCategory/Triangulated.lean Modified Mathlib/Algebra/Homology/Monoidal.lean Modified Mathlib/Algebra/Homology/TotalComplex.lean Modified Mathlib/Algebra/Homology/TotalComplexShift.lean Modified Mathlib/Algebra/Homology/TotalComplexSymmetry.lean Modified Mathlib/Algebra/Module/ZMod.lean Modified Mathlib/Algebra/Order/ToIntervalMod.lean Modified Mathlib/Algebra/Periodic.lean Modified Mathlib/Algebra/Ring/NegOnePow.lean Modified Mathlib/CategoryTheory/Localization/Triangulated.lean Modified Mathlib/CategoryTheory/Sites/SheafCohomology/Basic.lean Modified Mathlib/CategoryTheory/Triangulated/Adjunction.lean Modified Mathlib/CategoryTheory/Triangulated/Functor.lean Modified Mathlib/CategoryTheory/Triangulated/Opposite/Functor.lean Modified Mathlib/CategoryTheory/Triangulated/Opposite/Pretriangulated.lean Modified Mathlib/CategoryTheory/Triangulated/Pretriangulated.lean Modified Mathlib/CategoryTheory/Triangulated/Subcategory.lean Modified Mathlib/CategoryTheory/Triangulated/TStructure/Basic.lean Modified Mathlib/CategoryTheory/Triangulated/TriangleShift.lean Modified Mathlib/CategoryTheory/Triangulated/Triangulated.lean Modified Mathlib/CategoryTheory/Triangulated/Yoneda.lean Modified Mathlib/Combinatorics/Additive/AP/Three/Defs.lean Modified Mathlib/Combinatorics/Additive/Corner/Defs.lean Modified Mathlib/Combinatorics/Additive/FreimanHom.lean Modified Mathlib/Combinatorics/SimpleGraph/DegreeSum.lean Modified Mathlib/Combinatorics/SimpleGraph/Matching.lean Modified Mathlib/Combinatorics/SimpleGraph/UniversalVerts.lean Modified Mathlib/Data/Nat/Periodic.lean Modified Mathlib/Data/ZMod/Aut.lean Modified Mathlib/Data/ZMod/Basic.lean Modified Mathlib/Data/ZMod/Coprime.lean Modified Mathlib/Data/ZMod/Factorial.lean Modified Mathlib/Data/ZMod/IntUnitsPower.lean Modified Mathlib/Data/ZMod/Units.lean Modified Mathlib/FieldTheory/Perfect.lean Modified Mathlib/GroupTheory/CommutingProbability.lean Modified Mathlib/GroupTheory/Coxeter/Inversion.lean Modified Mathlib/GroupTheory/Coxeter/Length.lean Modified Mathlib/GroupTheory/SpecificGroups/Dihedral.lean Modified Mathlib/LinearAlgebra/Matrix/Determinant/Misc.lean Modified Mathlib/NumberTheory/FLT/Four.lean Modified Mathlib/NumberTheory/LucasLehmer.lean Modified Mathlib/NumberTheory/PythagoreanTriples.lean Modified Mathlib/RingTheory/Polynomial/Dickson.lean 2025-01-08 13:17:03 340e6d1 chore: fixes to compile under `debug.proofAsSorry` (#20561) We are quite far from actually making that possible, but as I was looking into it again I'll at least preserve these minor fixes. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Category/ReflQuiv.lean +/- def CategoryTheory.ReflQuiv.adj.counit.app Modified Mathlib/CategoryTheory/Elements.lean Modified Mathlib/CategoryTheory/FiberedCategory/Fiber.lean Modified Mathlib/CategoryTheory/Functor/FunctorHom.lean Modified Mathlib/Order/Defs/Unbundled.lean 2025-01-08 13:17:01 0276568 chore(Data/Nat/Bitwise) deprecate upstreamed lemma 'bitwise_lt' (#20284) Replaces `bitwise_lt` with a deprecated alias to [`bitwise_lt_two_pow`](https://github.com/leanprover/lean4/blob/fe45ddd6105078a0a3bd855e5d94673e794f6b88/src/Init/Data/Nat/Bitwise/Lemmas.lean#L428-L453), which was added to core in https://github.com/leanprover/lean4/commit/ca941249b98a2da3959e0b2b7d9311c647795778. Found by [`tryAtEachStep`](https://github.com/dwrensha/tryAtEachStep). ESTIMATED CHANGES Modified Mathlib/Data/Nat/Bitwise.lean - theorem Nat.bitwise_lt 2025-01-08 12:28:19 5cd69ff feat(RingTheory/PowerSeries): basic API about truncation (#20426) ESTIMATED CHANGES Modified Mathlib/RingTheory/MvPowerSeries/Trunc.lean + theorem MvPowerSeries.trunc_C_mul + theorem MvPowerSeries.trunc_map Modified Mathlib/RingTheory/PowerSeries/Basic.lean + theorem PowerSeries.algebraMap_eq Modified Mathlib/RingTheory/PowerSeries/Trunc.lean + theorem PowerSeries.trunc_C_mul + theorem PowerSeries.trunc_map + theorem PowerSeries.trunc_mul_C + theorem PowerSeries.trunc_one_X + theorem PowerSeries.trunc_one_left 2025-01-08 12:28:18 f890906 feat(GroupTheory/Subgroup/Centralizer): `f(C(S)) ≤ C(f(S))` (#20356) This PR proves that the image of a centralizer is contained in the centralizer of the image. ESTIMATED CHANGES Modified Mathlib/GroupTheory/Subgroup/Centralizer.lean + theorem Subgroup.map_centralizer_le_centralizer_image 2025-01-08 12:15:24 af8eed8 chore(CategoryTheory): remove data produced by tactic block (#20565) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/EffectiveEpi/Coproduct.lean - def CategoryTheory.effectiveEpiStructDescOfEffectiveEpiFamily 2025-01-08 12:15:23 a5183c3 feat: `|∫ a, f a ∂μ| ≤ ∫ a, |f a| ∂μ` (#20540) From LeanAPAP ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Integral/Bochner.lean + theorem MeasureTheory.abs_integral_le_integral_abs 2025-01-08 11:28:27 7cfa4bd feat: the Boolean subalgebra generated by the lattice generated by a set (#20440) ... is just the Boolean subalgebra generated by that set. ESTIMATED CHANGES Modified Mathlib/Order/BooleanSubalgebra.lean + theorem BooleanSubalgebra.closure_latticeClosure + theorem BooleanSubalgebra.latticeClosure_subset_closure 2025-01-08 08:24:56 7a48271 feat: misc. lemmas about moments, tilted measures (#20150) ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Function/SpecialFunctions/Basic.lean +/- theorem Real.aemeasurable_of_aemeasurable_exp + theorem Real.aemeasurable_of_aemeasurable_exp_mul +/- theorem Real.measurable_of_measurable_exp Modified Mathlib/MeasureTheory/Measure/Tilted.lean Modified Mathlib/MeasureTheory/Order/Group/Lattice.lean Modified Mathlib/Probability/Moments.lean + theorem ProbabilityTheory.centralMoment_zero_measure + theorem ProbabilityTheory.exp_cgf + theorem ProbabilityTheory.exp_cgf_of_neZero + theorem ProbabilityTheory.moment_zero_measure 2025-01-08 05:27:12 4c75337 chore(Algebra/Lie): make IsNilpotent and IsSolvable independent of scalars (#20556) ESTIMATED CHANGES Modified Mathlib/Algebra/Lie/Basic.lean Modified Mathlib/Algebra/Lie/CartanSubalgebra.lean Modified Mathlib/Algebra/Lie/Engel.lean Modified Mathlib/Algebra/Lie/EngelSubalgebra.lean Modified Mathlib/Algebra/Lie/IdealOperations.lean Modified Mathlib/Algebra/Lie/LieTheorem.lean Modified Mathlib/Algebra/Lie/Nilpotent.lean +/- theorem Function.Injective.lieAlgebra_isNilpotent +/- theorem Function.Surjective.lieAlgebra_isNilpotent +/- theorem Function.Surjective.lieModuleIsNilpotent +/- theorem LieAlgebra.isNilpotent_range_ad_iff +/- theorem LieAlgebra.nilpotent_ad_of_nilpotent_algebra +/- theorem LieAlgebra.non_trivial_center_of_isNilpotent +/- theorem LieHom.isNilpotent_range + theorem LieModule.IsNilpotent.mk + theorem LieModule.IsNilpotent.nilpotent + theorem LieModule.coe_lowerCentralSeries_eq_int +/- theorem LieModule.disjoint_lowerCentralSeries_maxTrivSubmodule_iff +/- theorem LieModule.exists_forall_pow_toEnd_eq_zero +/- theorem LieModule.exists_lowerCentralSeries_eq_bot_of_isNilpotent +/- theorem LieModule.iInf_lcs_le_of_isNilpotent_quot +/- theorem LieModule.iInf_lowerCentralSeries_eq_bot_of_isNilpotent +/- theorem LieModule.isNilpotent_iff +/- theorem LieModule.isNilpotent_toEnd_of_isNilpotent +/- theorem LieModule.isNilpotent_toEnd_of_isNilpotent₂ +/- theorem LieModule.isTrivial_of_nilpotencyLength_le_one +/- theorem LieModule.lowerCentralSeriesLast_le_of_not_isTrivial +/- theorem LieModule.maxGenEigenSpace_toEnd_eq_top +/- theorem LieModule.nilpotencyLength_eq_zero_iff +/- theorem LieModule.nontrivial_lowerCentralSeriesLast +/- theorem LieModule.nontrivial_max_triv_of_isNilpotent Modified Mathlib/Algebra/Lie/Semisimple/Basic.lean +/- theorem LieAlgebra.hasTrivialRadical_of_no_solvable_ideals Modified Mathlib/Algebra/Lie/Solvable.lean +/- theorem Function.Injective.lieAlgebra_isSolvable +/- theorem Function.Surjective.lieAlgebra_isSolvable + theorem LieAlgebra.IsSolvable.mk + theorem LieAlgebra.IsSolvable.solvable +/- theorem LieAlgebra.abelian_of_solvable_ideal_eq_bot_iff +/- theorem LieAlgebra.derivedLength_zero +/- theorem LieAlgebra.derivedSeries_lt_top_of_solvable + theorem LieAlgebra.isSolvable_iff +/- theorem LieAlgebra.le_solvable_ideal_solvable +/- theorem LieAlgebra.radical_eq_top_of_isSolvable +/- theorem LieAlgebra.solvable_iff_equiv_solvable + theorem LieIdeal.coe_derivedSeries_eq_int Modified Mathlib/Algebra/Lie/TraceForm.lean +/- theorem LieModule.eq_zero_of_mem_genWeightSpace_mem_posFitting +/- theorem LieModule.traceForm_eq_zero_of_isNilpotent Modified Mathlib/Algebra/Lie/Weights/Basic.lean +/- def LieModule.genWeightSpaceOf +/- theorem LieModule.zero_genWeightSpace_eq_top_of_nilpotent' +/- theorem LieModule.zero_genWeightSpace_eq_top_of_nilpotent Modified Mathlib/Algebra/Lie/Weights/Cartan.lean +/- theorem LieAlgebra.zero_rootSpace_eq_top_of_nilpotent Modified Mathlib/Algebra/Lie/Weights/Chain.lean +/- theorem LieModule.lie_mem_genWeightSpaceChain_of_genWeightSpace_eq_bot_left +/- theorem LieModule.lie_mem_genWeightSpaceChain_of_genWeightSpace_eq_bot_right Modified Mathlib/Algebra/Lie/Weights/Linear.lean 2025-01-08 04:40:49 d9a8247 feat(Combinatorics/SimpleGraph/Path): add `IsPath.getVert_injOn` (#19373) Add lemma on injectivity of getVert for the indices that are in range. In preparation for Tutte's theorem. ESTIMATED CHANGES Modified Mathlib/Combinatorics/SimpleGraph/Path.lean + theorem SimpleGraph.Walk.IsPath.getVert_injOn 2025-01-08 04:31:39 1b8352c feat(Combinatorics/SimpleGraph): add lemmas about `spanningCoe` (#19377) Add some small lemma's supporting `Subgraph.spanningCoe` `SimpleGraph.adj_iff_of_sym2_eq` is currently unused, but added for symmetry with the `Subgraph` API. In preparation for Tutte's theorem. ESTIMATED CHANGES Modified Mathlib/Combinatorics/SimpleGraph/Basic.lean + theorem SimpleGraph.adj_congr_of_sym2 Modified Mathlib/Combinatorics/SimpleGraph/Operations.lean + theorem SimpleGraph.Subgraph.spanningCoe_sup_edge_le Modified Mathlib/Combinatorics/SimpleGraph/Subgraph.lean + theorem SimpleGraph.Subgraph.adj_congr_of_sym2 + theorem SimpleGraph.Subgraph.mem_of_adj_spanningCoe 2025-01-08 02:05:24 12a2197 chore: scope 'on' notation to Function (#20562) Per [discussion](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/global.20notation.20linter/near/492266984) on zulip. ESTIMATED CHANGES Modified Mathlib/Algebra/Module/Torsion.lean Modified Mathlib/Algebra/Order/Interval/Set/Group.lean Modified Mathlib/Algebra/Polynomial/Degree/Lemmas.lean Modified Mathlib/Algebra/Polynomial/RingDivision.lean Modified Mathlib/Analysis/InnerProductSpace/JointEigenspace.lean Modified Mathlib/Analysis/InnerProductSpace/Orthogonal.lean Modified Mathlib/Analysis/Normed/Algebra/Exponential.lean Modified Mathlib/Analysis/Normed/Algebra/MatrixExponential.lean Modified Mathlib/Data/Finset/NoncommProd.lean Modified Mathlib/Data/Finset/Pairwise.lean Modified Mathlib/Data/Finsupp/BigOperators.lean Modified Mathlib/Data/Finsupp/MonomialOrder/DegLex.lean Modified Mathlib/Data/Matroid/Sum.lean Modified Mathlib/Data/Multiset/Bind.lean Modified Mathlib/Data/Nat/ChineseRemainder.lean Modified Mathlib/Data/Nat/Choose/Multinomial.lean Modified Mathlib/Data/Setoid/Basic.lean Modified Mathlib/Data/Setoid/Partition.lean Modified Mathlib/Data/ZMod/Quotient.lean Modified Mathlib/FieldTheory/Separable.lean Modified Mathlib/GroupTheory/CoprodI.lean Modified Mathlib/LinearAlgebra/FreeProduct/Basic.lean Modified Mathlib/LinearAlgebra/SesquilinearForm.lean Modified Mathlib/Logic/Embedding/Set.lean Modified Mathlib/Logic/Encodable/Lattice.lean Modified Mathlib/Logic/Equiv/Pairwise.lean Modified Mathlib/Logic/Function/Defs.lean Modified Mathlib/Logic/Godel/GodelBetaFunction.lean Modified Mathlib/MeasureTheory/Constructions/BorelSpace/Basic.lean Modified Mathlib/MeasureTheory/Covering/BesicovitchVectorSpace.lean Modified Mathlib/MeasureTheory/Covering/VitaliFamily.lean Modified Mathlib/MeasureTheory/Decomposition/SignedHahn.lean Modified Mathlib/MeasureTheory/Function/Jacobian.lean Modified Mathlib/MeasureTheory/Integral/Lebesgue.lean Modified Mathlib/MeasureTheory/Measure/Lebesgue/EqHaar.lean Modified Mathlib/MeasureTheory/Measure/NullMeasurable.lean Modified Mathlib/MeasureTheory/Measure/Regular.lean Modified Mathlib/MeasureTheory/OuterMeasure/Defs.lean Modified Mathlib/MeasureTheory/PiSystem.lean Modified Mathlib/MeasureTheory/VectorMeasure/Basic.lean Modified Mathlib/NumberTheory/ArithmeticFunction.lean Modified Mathlib/NumberTheory/ModularForms/EisensteinSeries/Defs.lean Modified Mathlib/NumberTheory/NumberField/CanonicalEmbedding/Basic.lean Modified Mathlib/Order/Disjointed.lean Modified Mathlib/Order/Filter/Bases.lean Modified Mathlib/Order/PartialSups.lean Modified Mathlib/Order/SuccPred/IntervalSucc.lean Modified Mathlib/Order/SupIndep.lean Modified Mathlib/Order/WellFounded.lean Modified Mathlib/Order/WellFoundedSet.lean Modified Mathlib/Probability/Kernel/Composition/Basic.lean Modified Mathlib/Probability/Kernel/Disintegration/CDFToKernel.lean Modified Mathlib/Probability/Kernel/Disintegration/Density.lean Modified Mathlib/Probability/StrongLaw.lean Modified Mathlib/RingTheory/Coprime/Lemmas.lean Modified Mathlib/RingTheory/Ideal/Operations.lean Modified Mathlib/RingTheory/Lasker.lean Modified Mathlib/Topology/MetricSpace/Thickening.lean 2025-01-07 22:11:02 2e63854 chore: disable docPrime linter (#20559) [Zulip thread](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/docPrime.20hell) (one of many). ESTIMATED CHANGES Modified lakefile.lean 2025-01-07 21:11:21 0fdf47b chore: deprecate MulRingNorm._ in favour of AbsoluteValue._ (#20557) After refactoring the only customer of a number of declarations on `MulRingNorm`s to `AbsoluteValue` instead, this now deprecates these declarations (some of which do not adhere to the naming conventions anyway). It also adds text to the module docstring of `Mathlib.Analysis.Normed.Ring.Seminorm` and of `MulRingNorm` recommending to use `AbsoluteValue` instead. (Hence the `documentation` label. There is no label for deprecating/renaming things...) We add the equivalence `MulRingNorm R ≃ AbsoluteValue R ℝ` and `NormedField.toAbsoluteValue` to match `NormedField.toMulRingNorm`. Finally, it renames `AbsoluteValue.Equiv` to `AbsoluteValue.IsEquiv` (it is `Prop`-valued) etc. (Without deprecating the old names: they have been around for less than a week and are not used anywher by name; instead, Setoid notation is used downstream.) See [here](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/MulRingNorm.20vs.2E.20AbsoluteValue/near/491324423) on Zulip. ESTIMATED CHANGES Modified Mathlib/Algebra/Order/AbsoluteValue/Equivalence.lean - def AbsoluteValue.Equiv + def AbsoluteValue.IsEquiv - theorem AbsoluteValue.eq_trivial_of_equiv_trivial + theorem AbsoluteValue.eq_trivial_of_isEquiv_trivial - theorem AbsoluteValue.equiv_refl - theorem AbsoluteValue.equiv_symm - theorem AbsoluteValue.equiv_trans + theorem AbsoluteValue.isEquiv_refl + theorem AbsoluteValue.isEquiv_symm + theorem AbsoluteValue.isEquiv_trans Modified Mathlib/Analysis/Normed/Ring/Seminorm.lean + def MulRingNorm.mulRingNormEquivAbsoluteValue + theorem MulRingNorm.mulRingNormEquivAbsoluteValue_apply + theorem MulRingNorm.mulRingNormEquivAbsoluteValue_symm_apply + def NormedField.toAbsoluteValue 2025-01-07 21:11:20 0e673d6 fix(scripts/bench_summary): input jobID as a Nat, rather than a String (#20539) Hopefully, this fixes the bench_summary bot. You can see the error that the bot reports [here](https://github.com/leanprover-community/mathlib4/actions/runs/12648073160/job/35241690249), specifically it says ```lean :248:81: error: failed to synthesize OfNat String 12648073160 numerals are polymorphic in Lean, but the numeral `12648073160` cannot be used in a context where the expected type is String due to the absence of the instance above Additional diagnostic information may be available using the `set_option diagnostics true` command. ``` The issue is that the (lean) script takes the jobID as a `String`, since it wants to print the jobID url. However, due to quotation handling, the script receives a numeric literal, since the double quotes get lost in translation. If instead we ask Lean to do the conversion of a natural number to a string internally, everything should work. ESTIMATED CHANGES Modified scripts/bench_summary.lean +/- def BenchAction.addBenchSummaryComment 2025-01-07 20:33:07 97a203a chore: move results about `DivisionMonoid` + `HasDistribNeg` (#20551) This way, we don't have to import fields to use those lemmas ESTIMATED CHANGES Modified Mathlib/Algebra/Field/Basic.lean - theorem div_neg - theorem div_neg_eq_neg_div - theorem inv_neg - theorem inv_neg_one - theorem neg_div' - theorem neg_div - theorem neg_div_neg_eq - theorem neg_inv - theorem one_div_neg_eq_neg_one_div - theorem one_div_neg_one_eq_neg_one Modified Mathlib/Algebra/Module/Basic.lean Modified Mathlib/Algebra/Ring/Basic.lean + theorem div_neg + theorem div_neg_eq_neg_div + theorem inv_neg + theorem inv_neg_one + theorem neg_div' + theorem neg_div + theorem neg_div_neg_eq + theorem neg_inv + theorem one_div_neg_eq_neg_one_div + theorem one_div_neg_one_eq_neg_one 2025-01-07 20:33:06 b99ac0e feat(NumberTheory/NumberField/Embeddings): definition of totally real field (#20542) ESTIMATED CHANGES Modified Mathlib/NumberTheory/NumberField/Embeddings.lean + theorem Rat.isReal_infinitePlace 2025-01-07 20:33:04 ed32f2f chore(Noetherian/Artinian): generalize to Semiring (#20534) ESTIMATED CHANGES Modified Mathlib/Algebra/Ring/Equiv.lean + def RingEquiv.piOptionEquivProd Modified Mathlib/LinearAlgebra/LinearIndependent.lean Modified Mathlib/LinearAlgebra/Pi.lean +/- def LinearEquiv.piOptionEquivProd +/- theorem LinearMap.lsum_single Modified Mathlib/RingTheory/Artinian/Module.lean +/- theorem Function.Surjective.isArtinianRing +/- theorem IsArtinianRing.subtype_isMaximal_finite +/- theorem Ring.isArtinian_of_zero_eq_one + theorem RingEquiv.isArtinianRing +/- theorem isArtinianRing_iff +/- theorem isArtinian_of_submodule_of_artinian +/- theorem isArtinian_of_tower Modified Mathlib/RingTheory/Artinian/Ring.lean Modified Mathlib/RingTheory/Ideal/Maps.lean +/- theorem Ideal.NoZeroSMulDivisors.ker_algebraMap_eq_bot +/- theorem Ideal.RingHom.ker_isMaximal_of_surjective +/- theorem Ideal.RingHom.ker_isPrime +/- def Ideal.orderEmbeddingOfSurjective Modified Mathlib/RingTheory/Ideal/Prod.lean +/- def Ideal.idealProdEquiv +/- def Ideal.prod Modified Mathlib/RingTheory/Noetherian/Basic.lean +/- theorem isNoetherianRing_of_ringEquiv +/- theorem isNoetherianRing_of_surjective +/- theorem isNoetherian_of_range_eq_ker Modified Mathlib/RingTheory/Noetherian/Nilpotent.lean +/- theorem IsNoetherianRing.isNilpotent_nilradical Modified Mathlib/RingTheory/SimpleModule.lean 2025-01-07 20:33:03 06c1948 chore: protect `Filter.nhds_{iInf,inf}` (#20530) Per [Zulip](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/naming.3A.20nhds_iInf.20and.20Filter.2Enhds_iInf/near/482900553) ESTIMATED CHANGES Modified Mathlib/Topology/Filter.lean - theorem Filter.nhds_iInf - theorem Filter.nhds_inf 2025-01-07 20:33:01 231146f chore(AlgebraicTopology): move SplitSimplicialObject.lean (#20511) This PR moves `SplitSimplicialObject` to `SimplicialObject.Split`. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/AlgebraicTopology/DoldKan/FunctorGamma.lean Modified Mathlib/AlgebraicTopology/DoldKan/SplitSimplicialObject.lean Renamed Mathlib/AlgebraicTopology/SplitSimplicialObject.lean to Mathlib/AlgebraicTopology/SimplicialObject/Split.lean 2025-01-07 20:33:00 1e7c41d chore: extract 3 new files out of MeasureSpace (#20509) The MeasureSpace file contains many definitions about measures and is 2000 lines long. This PR splits 3 files by taking material from the bottom of MeasureSpace: - Map: map of a measure by a function - AbsolutelyContinuous: absolute continuity of measures - QuasiMeasurePreserving: quasi measure preserving functions ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/MeasureTheory/Covering/VitaliFamily.lean Modified Mathlib/MeasureTheory/Group/Defs.lean Added Mathlib/MeasureTheory/Measure/AbsolutelyContinuous.lean + theorem MeasurableEmbedding.absolutelyContinuous_map + theorem MeasureTheory.Measure.AbsolutelyContinuous.add_left + theorem MeasureTheory.Measure.AbsolutelyContinuous.add_left_iff + theorem MeasureTheory.Measure.AbsolutelyContinuous.add_right + theorem MeasureTheory.Measure.AbsolutelyContinuous.ae_eq + theorem MeasureTheory.Measure.AbsolutelyContinuous.mk + def MeasureTheory.Measure.AbsolutelyContinuous + theorem MeasureTheory.Measure.absolutelyContinuous_of_eq + theorem MeasureTheory.Measure.absolutelyContinuous_of_le + theorem MeasureTheory.Measure.absolutelyContinuous_of_le_smul + theorem MeasureTheory.Measure.absolutelyContinuous_smul + theorem MeasureTheory.Measure.absolutelyContinuous_sum_left + theorem MeasureTheory.Measure.absolutelyContinuous_sum_right + theorem MeasureTheory.Measure.absolutelyContinuous_zero_iff + theorem MeasureTheory.Measure.ae_le_iff_absolutelyContinuous + theorem MeasureTheory.Measure.smul_absolutelyContinuous + theorem MeasureTheory.ae_mono Modified Mathlib/MeasureTheory/Measure/Comap.lean Added Mathlib/MeasureTheory/Measure/Map.lean + theorem AEMeasurable.of_map_ne_zero + theorem MeasurableEquiv.map_ae + theorem MeasurableEquiv.map_apply_eq_iff_map_symm_apply_eq + theorem MeasurableEquiv.map_map_symm + theorem MeasurableEquiv.map_measurableEquiv_injective + theorem MeasurableEquiv.map_symm_map + theorem MeasureTheory.Measure.le_liftLinear_apply + theorem MeasureTheory.Measure.le_map_apply + theorem MeasureTheory.Measure.le_map_apply_image + def MeasureTheory.Measure.liftLinear + theorem MeasureTheory.Measure.liftLinear_apply + theorem MeasureTheory.Measure.liftLinear_apply₀ + theorem MeasureTheory.Measure.map_add + theorem MeasureTheory.Measure.map_apply + theorem MeasureTheory.Measure.map_apply_of_aemeasurable + theorem MeasureTheory.Measure.map_apply₀ + theorem MeasureTheory.Measure.map_congr + theorem MeasureTheory.Measure.map_eq_zero_iff + theorem MeasureTheory.Measure.map_id' + theorem MeasureTheory.Measure.map_id + theorem MeasureTheory.Measure.map_map + theorem MeasureTheory.Measure.map_mono + theorem MeasureTheory.Measure.map_ne_zero_iff + theorem MeasureTheory.Measure.map_of_not_aemeasurable + theorem MeasureTheory.Measure.map_toOuterMeasure + theorem MeasureTheory.Measure.map_zero + def MeasureTheory.Measure.mapₗ + theorem MeasureTheory.Measure.mapₗ_apply_of_measurable + theorem MeasureTheory.Measure.mapₗ_congr + theorem MeasureTheory.Measure.mapₗ_eq_zero_iff + theorem MeasureTheory.Measure.mapₗ_mk_apply_of_aemeasurable + theorem MeasureTheory.Measure.mapₗ_ne_zero_iff + theorem MeasureTheory.Measure.measure_preimage_of_map_eq_self + theorem MeasureTheory.Measure.preimage_null_of_map_null + theorem MeasureTheory.Measure.tendsto_ae_map + theorem MeasureTheory.ae_map_iff + theorem MeasureTheory.ae_map_mem_range + theorem MeasureTheory.ae_of_ae_map + theorem MeasureTheory.mem_ae_map_iff + theorem MeasureTheory.mem_ae_of_mem_ae_map Modified Mathlib/MeasureTheory/Measure/MeasureSpace.lean - theorem AEMeasurable.of_map_ne_zero - theorem MeasurableEmbedding.absolutelyContinuous_map - theorem MeasurableEquiv.map_ae - theorem MeasurableEquiv.map_apply_eq_iff_map_symm_apply_eq - theorem MeasurableEquiv.map_map_symm - theorem MeasurableEquiv.map_measurableEquiv_injective - theorem MeasurableEquiv.map_symm_map - theorem MeasurableEquiv.quasiMeasurePreserving_symm - theorem MeasureTheory.AEDisjoint.preimage - theorem MeasureTheory.Measure.AbsolutelyContinuous.add_left - theorem MeasureTheory.Measure.AbsolutelyContinuous.add_left_iff - theorem MeasureTheory.Measure.AbsolutelyContinuous.add_right - theorem MeasureTheory.Measure.AbsolutelyContinuous.ae_eq - theorem MeasureTheory.Measure.AbsolutelyContinuous.mk - def MeasureTheory.Measure.AbsolutelyContinuous - theorem MeasureTheory.Measure.QuasiMeasurePreserving.ae - theorem MeasureTheory.Measure.QuasiMeasurePreserving.ae_eq - theorem MeasureTheory.Measure.QuasiMeasurePreserving.ae_map_le - theorem MeasureTheory.Measure.QuasiMeasurePreserving.exists_preimage_eq_of_preimage_ae - theorem MeasureTheory.Measure.QuasiMeasurePreserving.image_zpow_ae_eq - theorem MeasureTheory.Measure.QuasiMeasurePreserving.liminf_preimage_iterate_ae_eq - theorem MeasureTheory.Measure.QuasiMeasurePreserving.limsup_preimage_iterate_ae_eq - theorem MeasureTheory.Measure.QuasiMeasurePreserving.mono - theorem MeasureTheory.Measure.QuasiMeasurePreserving.mono_left - theorem MeasureTheory.Measure.QuasiMeasurePreserving.mono_right - theorem MeasureTheory.Measure.QuasiMeasurePreserving.preimage_ae_eq - theorem MeasureTheory.Measure.QuasiMeasurePreserving.preimage_iterate_ae_eq - theorem MeasureTheory.Measure.QuasiMeasurePreserving.preimage_mono_ae - theorem MeasureTheory.Measure.QuasiMeasurePreserving.preimage_null - theorem MeasureTheory.Measure.QuasiMeasurePreserving.smul_ae_eq_of_ae_eq - theorem MeasureTheory.Measure.QuasiMeasurePreserving.smul_measure - theorem MeasureTheory.Measure.QuasiMeasurePreserving.tendsto_ae - structure MeasureTheory.Measure.QuasiMeasurePreserving - theorem MeasureTheory.Measure.absolutelyContinuous_of_eq - theorem MeasureTheory.Measure.absolutelyContinuous_of_le - theorem MeasureTheory.Measure.absolutelyContinuous_of_le_smul - theorem MeasureTheory.Measure.absolutelyContinuous_smul - theorem MeasureTheory.Measure.absolutelyContinuous_sum_left - theorem MeasureTheory.Measure.absolutelyContinuous_sum_right - theorem MeasureTheory.Measure.absolutelyContinuous_zero_iff - theorem MeasureTheory.Measure.ae_le_iff_absolutelyContinuous - theorem MeasureTheory.Measure.le_liftLinear_apply - theorem MeasureTheory.Measure.le_map_apply - theorem MeasureTheory.Measure.le_map_apply_image - def MeasureTheory.Measure.liftLinear - theorem MeasureTheory.Measure.liftLinear_apply - theorem MeasureTheory.Measure.liftLinear_apply₀ - theorem MeasureTheory.Measure.map_add - theorem MeasureTheory.Measure.map_apply - theorem MeasureTheory.Measure.map_apply_of_aemeasurable - theorem MeasureTheory.Measure.map_apply₀ - theorem MeasureTheory.Measure.map_congr - theorem MeasureTheory.Measure.map_eq_zero_iff - theorem MeasureTheory.Measure.map_id' - theorem MeasureTheory.Measure.map_id - theorem MeasureTheory.Measure.map_map - theorem MeasureTheory.Measure.map_mono - theorem MeasureTheory.Measure.map_ne_zero_iff - theorem MeasureTheory.Measure.map_of_not_aemeasurable - theorem MeasureTheory.Measure.map_toOuterMeasure - theorem MeasureTheory.Measure.map_zero - def MeasureTheory.Measure.mapₗ - theorem MeasureTheory.Measure.mapₗ_apply_of_measurable - theorem MeasureTheory.Measure.mapₗ_congr - theorem MeasureTheory.Measure.mapₗ_eq_zero_iff - theorem MeasureTheory.Measure.mapₗ_mk_apply_of_aemeasurable - theorem MeasureTheory.Measure.mapₗ_ne_zero_iff - theorem MeasureTheory.Measure.measure_preimage_of_map_eq_self - theorem MeasureTheory.Measure.pairwise_aedisjoint_of_aedisjoint_forall_ne_one - theorem MeasureTheory.Measure.preimage_null_of_map_null - theorem MeasureTheory.Measure.smul_absolutelyContinuous - theorem MeasureTheory.Measure.tendsto_ae_map - theorem MeasureTheory.NullMeasurableSet.mono - theorem MeasureTheory.NullMeasurableSet.mono_ac - theorem MeasureTheory.NullMeasurableSet.preimage - theorem MeasureTheory.ae_map_iff - theorem MeasureTheory.ae_map_mem_range - theorem MeasureTheory.ae_mono - theorem MeasureTheory.ae_of_ae_map - theorem MeasureTheory.mem_ae_map_iff - theorem MeasureTheory.mem_ae_of_mem_ae_map Added Mathlib/MeasureTheory/Measure/QuasiMeasurePreserving.lean + theorem MeasurableEquiv.quasiMeasurePreserving_symm + theorem MeasureTheory.AEDisjoint.preimage + theorem MeasureTheory.Measure.QuasiMeasurePreserving.ae + theorem MeasureTheory.Measure.QuasiMeasurePreserving.ae_eq + theorem MeasureTheory.Measure.QuasiMeasurePreserving.ae_map_le + theorem MeasureTheory.Measure.QuasiMeasurePreserving.exists_preimage_eq_of_preimage_ae + theorem MeasureTheory.Measure.QuasiMeasurePreserving.image_zpow_ae_eq + theorem MeasureTheory.Measure.QuasiMeasurePreserving.liminf_preimage_iterate_ae_eq + theorem MeasureTheory.Measure.QuasiMeasurePreserving.limsup_preimage_iterate_ae_eq + theorem MeasureTheory.Measure.QuasiMeasurePreserving.mono + theorem MeasureTheory.Measure.QuasiMeasurePreserving.mono_left + theorem MeasureTheory.Measure.QuasiMeasurePreserving.mono_right + theorem MeasureTheory.Measure.QuasiMeasurePreserving.preimage_ae_eq + theorem MeasureTheory.Measure.QuasiMeasurePreserving.preimage_iterate_ae_eq + theorem MeasureTheory.Measure.QuasiMeasurePreserving.preimage_mono_ae + theorem MeasureTheory.Measure.QuasiMeasurePreserving.preimage_null + theorem MeasureTheory.Measure.QuasiMeasurePreserving.smul_ae_eq_of_ae_eq + theorem MeasureTheory.Measure.QuasiMeasurePreserving.smul_measure + theorem MeasureTheory.Measure.QuasiMeasurePreserving.tendsto_ae + structure MeasureTheory.Measure.QuasiMeasurePreserving + theorem MeasureTheory.Measure.pairwise_aedisjoint_of_aedisjoint_forall_ne_one + theorem MeasureTheory.NullMeasurableSet.mono + theorem MeasureTheory.NullMeasurableSet.mono_ac + theorem MeasureTheory.NullMeasurableSet.preimage Modified Mathlib/MeasureTheory/Measure/Restrict.lean 2025-01-07 20:32:59 1c56cac feat(RingTheory): Jacobian criterion for smoothness of local algebras (#20326) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/RingTheory/Smooth/Kaehler.lean + theorem Algebra.Extension.formallySmooth_iff_split_injection Added Mathlib/RingTheory/Smooth/Local.lean + theorem Algebra.FormallySmooth.iff_injective_lTensor_residueField 2025-01-07 20:32:58 571927b doc(RingTheory/Flat): add reference to Lambek's paper (#20266) ESTIMATED CHANGES Modified Mathlib/RingTheory/Flat/Basic.lean Modified docs/references.bib 2025-01-07 20:32:56 2229670 feat(NumberTheory/AbelSummation): add more results (#19942) - Add versions for when the endpoints are `Nat` (for convenience). - Add limit versions for when the endpoint tends to infinity. - Add summability criteria using Abel summation ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Analysis/Normed/Module/FiniteDimension.lean + theorem summable_of_sum_range_norm_le Modified Mathlib/NumberTheory/AbelSummation.lean +/- theorem sum_mul_eq_sub_integral_mul' + theorem sum_mul_eq_sub_integral_mul₀' + theorem sum_mul_eq_sub_integral_mul₀ + theorem sum_mul_eq_sub_sub_integral_mul' + theorem summable_mul_of_bigO_atTop' + theorem summable_mul_of_bigO_atTop + theorem tendsto_sum_mul_atTop_nhds_one_sub_integral + theorem tendsto_sum_mul_atTop_nhds_one_sub_integral₀ Added Mathlib/Topology/Order/IsLocallyClosed.lean + theorem isLocallyClosed_Icc + theorem isLocallyClosed_Ici + theorem isLocallyClosed_Ico + theorem isLocallyClosed_Iic + theorem isLocallyClosed_Iio + theorem isLocallyClosed_Ioc + theorem isLocallyClosed_Ioi + theorem isLocallyClosed_Ioo 2025-01-07 20:10:55 ddb5f71 chore(Multilinear/Basic): generalize the `SMul` instance (#20536) ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/Multilinear/Basic.lean +/- theorem MultilinearMap.coe_smul +/- theorem MultilinearMap.smul_apply 2025-01-07 20:10:54 cac643f feat(FDeriv/Equiv): generalize `HasFDerivAt.of_local_left_inverse` (#20516) ... to `HasFDerivWithinAt.of_local_left_inverse`. ESTIMATED CHANGES Modified Mathlib/Analysis/Calculus/FDeriv/Equiv.lean + theorem HasFDerivWithinAt.of_local_left_inverse 2025-01-07 19:57:26 f100ec8 feat(ContDiff): add `iteratedFDeriv_comp` (#20472) ESTIMATED CHANGES Modified Mathlib/Analysis/Calculus/ContDiff/Basic.lean + theorem iteratedFDerivWithin_comp + theorem iteratedFDerivWithin_comp_of_eventually_mem + theorem iteratedFDeriv_comp Modified Mathlib/Analysis/Calculus/ContDiff/Defs.lean + theorem ContDiffWithinAt.eventually_hasFTaylorSeriesUpToOn 2025-01-07 19:57:25 b7ad83b feat(LowerUpperTopology): add lemmas (#20465) Add lemmas supporting a future refactor of `LowerSemicontinuous`. ESTIMATED CHANGES Modified Mathlib/Topology/Order/LowerUpperTopology.lean + theorem Topology.IsLower.tendsto_nhds_iff_lt + theorem Topology.IsLower.tendsto_nhds_iff_not_le + theorem Topology.IsUpper.tendsto_nhds_iff_lt + theorem Topology.IsUpper.tendsto_nhds_iff_not_le + theorem Topology.WithLower.continuous_toLower +/- theorem Topology.WithLower.isOpen_def +/- theorem Topology.WithLower.isOpen_preimage_ofLower + theorem Topology.WithLower.ofLower_le_ofLower + theorem Topology.WithLower.ofLower_lt_ofLower + theorem Topology.WithLower.toLower_le_toLower + theorem Topology.WithLower.toLower_lt_toLower + theorem Topology.WithUpper.continuous_toUpper + theorem Topology.WithUpper.ofUpper_le_ofUpper + theorem Topology.WithUpper.ofUpper_lt_ofUpper + theorem Topology.WithUpper.toUpper_le_toUpper + theorem Topology.WithUpper.toUpper_lt_toUpper 2025-01-07 19:44:43 576077a feat(ContDiff): weaken some assumptions (#20368) Assume `ContDiffWithinAt`/`ContDiffAt` instead of `ContDiffOn`/`ContDiff`. ESTIMATED CHANGES Modified Mathlib/Analysis/Calculus/BumpFunction/FiniteDimension.lean Modified Mathlib/Analysis/Calculus/ContDiff/Basic.lean +/- theorem iteratedFDerivWithin_const_smul_apply +/- theorem iteratedFDeriv_const_smul_apply' +/- theorem iteratedFDeriv_const_smul_apply Modified Mathlib/Analysis/Calculus/ContDiff/Bounds.lean Modified Mathlib/Analysis/Calculus/IteratedDeriv/Lemmas.lean +/- theorem iteratedDerivWithin_const_mul +/- theorem iteratedDerivWithin_const_smul Modified Mathlib/Analysis/Distribution/SchwartzSpace.lean Modified Mathlib/Analysis/Fourier/FourierTransformDeriv.lean 2025-01-07 17:42:13 6bfeca1 fix(scripts/technical-debt-metric): avoid division by 0 (#20537) The division by 0 affected #20521: all `ofNat` debts were removed in that PR, so one denominator became 0 giving a [CI error](https://github.com/leanprover-community/mathlib4/actions/runs/12636151506/job/35207580913). This PR fixes the issue. ESTIMATED CHANGES Modified scripts/technical-debt-metrics.sh 2025-01-07 17:42:11 f79db55 chore(Algebra/Ring): Clean up in SumsOfSquares and Semireal/Defs (#20528) * Make documentation clearer and more concise * Make notation consistent * Make proofs cleaner This PR splits off yet more chore material from #16094 Moves: * `sumSq` -> `AddSubmonoid.sumSq` ESTIMATED CHANGES Modified Mathlib/Algebra/Ring/Semireal/Defs.lean Modified Mathlib/Algebra/Ring/SumsOfSquares.lean +/- theorem AddSubmonoid.closure_isSquare + theorem AddSubmonoid.mem_sumSq + def AddSubmonoid.sumSq +/- theorem IsSumSq.add +/- theorem IsSumSq.nonneg +/- theorem IsSumSq.sum_mul_self +/- inductive IsSumSq +/- theorem mem_sumSq_of_isSquare - def sumSq 2025-01-07 17:42:10 aca5199 feat(FTaylorSeries): add lemmas about `dist` between 0th and 1st derivs (#20089) These lemmas are useful to specialize conditions like $$C^{k+\alpha}$$ to low order derivatives. ESTIMATED CHANGES Modified Mathlib/Analysis/Calculus/ContDiff/FTaylorSeries.lean + theorem dist_iteratedFDerivWithin_one + theorem dist_iteratedFDerivWithin_zero + theorem norm_iteratedFDerivWithin_one 2025-01-07 17:42:08 3e203da feat: results on inner regularity of finite measures (#19780) in a `PseudoEMetricSpace` and `CompleteSpace` with `SecondCountableTopology`, any finite measure is inner regular with respect to compact sets. In other words, finite measures are tight. Important result in probability ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/MeasureTheory/Measure/MeasureSpace.lean + theorem MeasureTheory.exists_measure_iInter_lt Added Mathlib/MeasureTheory/Measure/RegularityCompacts.lean + theorem MeasureTheory.PolishSpace.innerRegular_isCompact_isClosed_measurableSet + theorem MeasureTheory.exists_isCompact_closure_measure_compl_lt + theorem MeasureTheory.innerRegularWRT_isCompact + theorem MeasureTheory.innerRegularWRT_isCompact_closure + theorem MeasureTheory.innerRegularWRT_isCompact_closure_iff + theorem MeasureTheory.innerRegularWRT_isCompact_closure_of_univ + theorem MeasureTheory.innerRegularWRT_isCompact_isClosed + theorem MeasureTheory.innerRegularWRT_isCompact_isClosed_iff + theorem MeasureTheory.innerRegularWRT_isCompact_isClosed_iff_innerRegularWRT_isCompact_closure + theorem MeasureTheory.innerRegularWRT_isCompact_isClosed_isOpen + theorem MeasureTheory.innerRegularWRT_isCompact_isOpen + theorem MeasureTheory.innerRegularWRT_of_exists_compl_lt + theorem MeasureTheory.innerRegular_isCompact_isClosed_measurableSet_of_finite Modified Mathlib/Topology/Instances/ENNReal.lean + theorem ENNReal.tendsto_atTop_zero_iff_le_of_antitone + theorem ENNReal.tendsto_atTop_zero_iff_lt_of_antitone Modified Mathlib/Topology/UniformSpace/Cauchy.lean + def interUnionBalls + theorem isCompact_closure_interUnionBalls + theorem totallyBounded_interUnionBalls 2025-01-07 17:10:34 db72aff chore: to_additive various results on groups, group actions (#20547) Two adjustments to #20498 that had been requested by Yaël but hadn't been implemented on time before merge. ESTIMATED CHANGES Modified Mathlib/GroupTheory/GroupAction/Blocks.lean + theorem AddAction.IsBlock.of_addSubgroup_of_conjugate - theorem AddAction.IsBlock.of_addsubgroup_of_conjugate Modified Mathlib/GroupTheory/GroupAction/SubMulAction.lean 2025-01-07 16:45:12 01e6638 feat(Probability/Kernel): `Kernel.sectL` and `sectR` (#15466) Define a `Kernel α γ` and a `Kernel β γ` from a `Kernel (α × β) γ` by taking the comap of `fun a ↦ (a, b)` and `fun b ↦ (a, b)` respectively. - Add definitions of `Kernel.sectL` and `Kernel.sectR`. - Add some API lemmas: `sectL_apply`, `sectL_zero`, `comap_sectL`, `sectL_prodMkLeft`, `sectL_prodMkRight` and the equivalent lemmas for `sectR`. - Add instances for `IsMarkovKernel`, `IsFiniteKernel`, `IsSFiniteKernel` and `NeZero`. - Add `sectL_swapRight` and `sectR_swapRight`. - Add `compProd_apply_eq_compProd_sectR`. ESTIMATED CHANGES Modified Mathlib/Probability/Kernel/Composition/Basic.lean + theorem ProbabilityTheory.Kernel.comap_sectL + theorem ProbabilityTheory.Kernel.comap_sectR + theorem ProbabilityTheory.Kernel.sectL_apply + theorem ProbabilityTheory.Kernel.sectL_prodMkLeft + theorem ProbabilityTheory.Kernel.sectL_prodMkRight + theorem ProbabilityTheory.Kernel.sectL_swapRight + theorem ProbabilityTheory.Kernel.sectL_zero + theorem ProbabilityTheory.Kernel.sectR_apply + theorem ProbabilityTheory.Kernel.sectR_prodMkLeft + theorem ProbabilityTheory.Kernel.sectR_prodMkRight + theorem ProbabilityTheory.Kernel.sectR_swapRight + theorem ProbabilityTheory.Kernel.sectR_zero Modified Mathlib/Probability/Kernel/Composition/MeasureCompProd.lean + theorem ProbabilityTheory.Kernel.compProd_apply_eq_compProd_sectR 2025-01-07 15:55:44 9e3f841 chore(CategoryTheory/Limits/Fubini): relax universes constraints and weaken hypotheses (#20553) Weaken universes constraints in this file, and weaken the hypotheses on `C` for the Fubini theorems. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Limits/Fubini.lean 2025-01-07 15:07:38 497cc54 perf: remove `@[simp]` on `Fintype.card_of{IsEmpty,Subsingleton}` (#20524) These lemmas only apply to `Fintype.ofIsEmpty` and `Fintype.ofSubsingleton`, but they're discrimination tree keys match any `Fintype.card` application. This forces Lean to attempt to unify the variables too often, especially because unification problems which introduce metavariables don't benefit from the same caching mechanisms. See [Zulip](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Adding.20.2F.20modifying.20Aesop.20lemmas/near/491949014) ESTIMATED CHANGES Modified Mathlib/Data/Fintype/Card.lean 2025-01-07 14:23:23 dd5ea93 fix(HashCommandLinter): remove unnecessary, broken workaround for tests (#20529) The old workaround for `test` is wrong on two accounts. 1. The test directory is now called `MathlibTest`, not `test`. 2. With the weak-option settings that mathlib uses, the test files are all already opt-in for the linters anyways. ESTIMATED CHANGES Modified Mathlib/Tactic/Linter/HashCommandLinter.lean 2025-01-07 11:43:01 01b6f1b chore(Ideal/Basic): dependent generalization of `Ideal.pi` (#20535) Also golf some proofs. TODO: similar to `Ideal.idealProdEquiv`, we may construct OrderEmbedding from `Πᵢ Ideal Rᵢ` to `Ideal (Πᵢ Rᵢ)`, which is an OrderIso if the indexing type is finite. This can then be used to show e.g. that a finite product of Noetherian rings is Noetherian without using an inductive argument. ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/InvariantBasisNumber.lean Modified Mathlib/RingTheory/Ideal/Basic.lean +/- theorem Ideal.mem_pi +/- def Ideal.pi Modified Mathlib/RingTheory/Ideal/Quotient/Basic.lean 2025-01-07 11:30:05 16ed239 feat(RingTheory): being unramified is a local property (#20323) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/RingTheory/Etale/Kaehler.lean + theorem KaehlerDifferential.isBaseChange_of_formallyEtale + def KaehlerDifferential.tensorKaehlerEquivOfFormallyEtale Added Mathlib/RingTheory/RingHom/Unramified.lean + theorem RingHom.FormallyUnramified.holdsForLocalizationAway + theorem RingHom.FormallyUnramified.isStableUnderBaseChange + theorem RingHom.FormallyUnramified.ofLocalizationPrime + theorem RingHom.FormallyUnramified.ofLocalizationSpanTarget + theorem RingHom.FormallyUnramified.propertyIsLocal + theorem RingHom.FormallyUnramified.respectsIso + theorem RingHom.FormallyUnramified.stableUnderComposition + def RingHom.FormallyUnramified + theorem RingHom.formallyUnramified_algebraMap Modified Mathlib/RingTheory/Smooth/Kaehler.lean Modified Mathlib/RingTheory/Unramified/Basic.lean Added Mathlib/RingTheory/Unramified/Locus.lean + theorem Algebra.basicOpen_subset_unramifiedLocus_iff + theorem Algebra.isOpen_unramifiedLocus + def Algebra.unramifiedLocus + theorem Algebra.unramifiedLocus_eq_compl_support + theorem Algebra.unramifiedLocus_eq_univ_iff 2025-01-07 10:10:15 6116172 chore(BooleanSubalgebra): use `IsSublattice` in `closure_sdiff_sup_induction` (#20439) and make the `x` argument explicit. This is nicer to use with `induction`. From GrowthInGroups (LeanCamCombi) ESTIMATED CHANGES Modified Mathlib/Order/BooleanSubalgebra.lean 2025-01-07 10:10:14 3f719dc feat(Order/SuccPred/CompleteLinearOrder): `⨆ a < x, succ a = x` (#19970) ESTIMATED CHANGES Modified Mathlib/Order/SuccPred/CompleteLinearOrder.lean + theorem iSup_succ 2025-01-07 09:21:29 1a9143b chore(*): replace `no_index (ofNat n)` with `ofNat(n)` everywhere (#20521) This PR was made by searching for `no_index.*ofNat` and replacing all of the relevant occurrences with `ofNat(n)`. This is a rather naïve approach, but at least puts everything back in the same notation for easier applying and reviewing of later fixes. ESTIMATED CHANGES Modified Mathlib/Algebra/AddConstMap/Basic.lean Modified Mathlib/Algebra/CharZero/Defs.lean +/- theorem OfNat.ofNat_ne_one +/- theorem OfNat.ofNat_ne_zero +/- theorem OfNat.one_ne_ofNat +/- theorem OfNat.zero_ne_ofNat Modified Mathlib/Algebra/DirectSum/Internal.lean Modified Mathlib/Algebra/Module/LinearMap/End.lean Modified Mathlib/Algebra/Order/SuccPred/WithBot.lean Modified Mathlib/Algebra/Polynomial/Derivative.lean Modified Mathlib/Algebra/Polynomial/Eval/Defs.lean +/- theorem Polynomial.ofNat_comp Modified Mathlib/Algebra/Ring/Subsemiring/Defs.lean Modified Mathlib/Algebra/Star/Basic.lean Modified Mathlib/Analysis/Complex/Basic.lean +/- theorem Complex.ofNat_mem_slitPlane Modified Mathlib/Analysis/Normed/Group/Basic.lean Modified Mathlib/Analysis/SpecialFunctions/Complex/Arg.lean +/- theorem Complex.ofNat_arg Modified Mathlib/Analysis/SpecialFunctions/Complex/Log.lean Modified Mathlib/Analysis/SpecialFunctions/Gamma/Basic.lean Modified Mathlib/Analysis/SpecialFunctions/Pow/NNReal.lean Modified Mathlib/Data/ENNReal/Real.lean Modified Mathlib/Data/ENat/Basic.lean +/- theorem ENat.map_ofNat +/- theorem ENat.ofNat_ne_top +/- theorem ENat.toNat_ofNat +/- theorem ENat.top_ne_ofNat +/- theorem ENat.top_sub_ofNat Modified Mathlib/Data/Matrix/ConjTranspose.lean Modified Mathlib/Data/Matrix/Diagonal.lean Modified Mathlib/Data/Matrix/Kronecker.lean Modified Mathlib/Data/Matrix/Mul.lean Modified Mathlib/Data/Matrix/Notation.lean Modified Mathlib/Data/NNRat/Defs.lean +/- theorem NNRat.den_ofNat +/- theorem NNRat.num_ofNat Modified Mathlib/Data/NNReal/Defs.lean Modified Mathlib/Data/Nat/Cast/Basic.lean Modified Mathlib/Data/Nat/Cast/Order/Basic.lean +/- theorem Nat.cast_le_ofNat +/- theorem Nat.cast_lt_ofNat +/- theorem Nat.not_ofNat_le_one +/- theorem Nat.not_ofNat_lt_one +/- theorem Nat.ofNat_le_cast +/- theorem Nat.ofNat_lt_cast +/- theorem Nat.ofNat_nonneg' +/- theorem Nat.one_le_ofNat +/- theorem Nat.one_lt_ofNat Modified Mathlib/Data/Nat/Cast/Synonym.lean Modified Mathlib/Data/Nat/PartENat.lean +/- theorem PartENat.dom_ofNat +/- theorem PartENat.get_ofNat' +/- theorem PartENat.ofENat_ofNat +/- theorem PartENat.ofNat_lt_top +/- theorem PartENat.ofNat_ne_top Modified Mathlib/Data/Nat/Prime/Int.lean Modified Mathlib/Data/PNat/Basic.lean Modified Mathlib/Data/Rat/Cast/Order.lean +/- theorem NNRat.cast_le_ofNat +/- theorem NNRat.cast_lt_ofNat +/- theorem NNRat.ofNat_le_cast +/- theorem NNRat.ofNat_lt_cast Modified Mathlib/Data/Rat/Lemmas.lean +/- theorem Rat.inv_ofNat_num Modified Mathlib/Data/Rat/Sqrt.lean +/- theorem Rat.sqrt_ofNat Modified Mathlib/Data/Real/Hyperreal.lean Modified Mathlib/Data/ZMod/IntUnitsPower.lean Modified Mathlib/LinearAlgebra/Matrix/PosDef.lean Modified Mathlib/NumberTheory/LucasLehmer.lean Modified Mathlib/NumberTheory/Padics/PadicNumbers.lean Modified Mathlib/NumberTheory/Zsqrtd/Basic.lean +/- theorem Zsqrtd.ofNat_im +/- theorem Zsqrtd.ofNat_re Modified Mathlib/Order/Filter/Germ/Basic.lean Modified Mathlib/SetTheory/Cardinal/Aleph.lean +/- theorem Ordinal.preOmega_ofNat Modified Mathlib/SetTheory/Cardinal/Basic.lean +/- theorem Cardinal.aleph0_add_ofNat +/- theorem Cardinal.aleph0_mul_ofNat +/- theorem Cardinal.ofNat_add_aleph0 +/- theorem Cardinal.ofNat_mul_aleph0 Modified Mathlib/SetTheory/Cardinal/Continuum.lean +/- theorem Cardinal.continuum_add_ofNat +/- theorem Cardinal.continuum_mul_ofNat +/- theorem Cardinal.ofNat_add_continuum +/- theorem Cardinal.ofNat_mul_continuum Modified Mathlib/SetTheory/Cardinal/ENat.lean Modified Mathlib/SetTheory/Cardinal/ToNat.lean Modified Mathlib/SetTheory/Game/Birthday.lean Modified Mathlib/SetTheory/Game/Short.lean Modified Mathlib/SetTheory/Ordinal/Arithmetic.lean Modified Mathlib/SetTheory/Ordinal/Basic.lean +/- theorem Cardinal.ord_ofNat Modified Mathlib/Tactic/NoncommRing.lean +/- theorem Mathlib.Tactic.NoncommRing.mul_nat_lit_eq_nsmul +/- theorem Mathlib.Tactic.NoncommRing.nat_lit_mul_eq_nsmul Modified Mathlib/Tactic/Ring/PNat.lean Modified Mathlib/Topology/Algebra/Module/LinearMap.lean Modified Mathlib/Topology/Algebra/SeparationQuotient/Basic.lean Modified scripts/technical-debt-metrics.sh 2025-01-07 09:21:28 9f47fc5 feat(CategoryTheory/Triangulated/Adjunction): the right adjoint of a triangulated functor is triangulated (#20255) If a functor `F : C ⥤ D` between pretriangulated categories is triangulated, and if we have an adjunction `F ⊣ G`, then `G` is also a triangulated functor. We deduce that, if `E : C ≌ D` is an equivalence of pretriangulated categories, then `E.functor` is triangulated if and only if `E.inverse` is triangulated. TODO: The case of left adjoints. - [x] depends on: #20083 [the adjoint of an additive functor is additive] - [ ] depends on: #20337 ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Triangulated/Adjunction.lean + theorem CategoryTheory.Adjunction.IsTriangulated.mk' + theorem CategoryTheory.Adjunction.isTriangulated_rightAdjoint + theorem CategoryTheory.Equivalence.IsTriangulated.mk'' + theorem CategoryTheory.Equivalence.IsTriangulated.mk' 2025-01-07 09:21:26 9ffea5b chore(Order/SuccPred/LinearLocallyFinite): change data-creating instances to defs (#20235) ESTIMATED CHANGES Modified Mathlib/Order/SuccPred/LinearLocallyFinite.lean Modified Mathlib/Topology/Instances/Discrete.lean Modified Mathlib/Topology/Instances/Int.lean 2025-01-07 09:21:25 7d091da chore: don't import algebra in `Data.Finset.Basic` (#19779) ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Group/Finset.lean + theorem Multiset.toFinset_card_eq_one_iff + theorem Multiset.toFinset_eq_singleton_iff + theorem Multiset.toFinset_nsmul Modified Mathlib/Algebra/Order/Group/Multiset.lean + theorem Multiset.Nodup.le_nsmul_iff_le + theorem Multiset.dedup_nsmul Modified Mathlib/Algebra/Polynomial/FieldDivision.lean Modified Mathlib/Data/Finset/Basic.lean - theorem Multiset.toFinset_eq_singleton_iff - theorem Multiset.toFinset_nsmul Modified Mathlib/Data/Finset/Card.lean - theorem Multiset.toFinset_card_eq_one_iff Modified Mathlib/Data/Finset/Defs.lean Modified Mathlib/Data/Finset/Disjoint.lean Modified Mathlib/Data/Finset/Lattice/Lemmas.lean Modified Mathlib/Data/Finsupp/Multiset.lean Modified Mathlib/Data/Multiset/Dedup.lean - theorem Multiset.Nodup.le_nsmul_iff_le - theorem Multiset.dedup_nsmul Modified Mathlib/Data/Multiset/NatAntidiagonal.lean Modified Mathlib/Data/Multiset/Nodup.lean Modified Mathlib/Data/Multiset/Range.lean Modified Mathlib/Data/Multiset/Sum.lean Modified Mathlib/RingTheory/Radical.lean 2025-01-07 08:46:41 cc31615 feat: initial segment commutes with `Iio` (#20503) ESTIMATED CHANGES Modified Mathlib/Order/InitialSeg.lean + theorem InitialSeg.image_Iio + theorem PrincipalSeg.image_Iio 2025-01-07 08:13:01 eb9d83a chore(Measure/Pi): move parts to `MeasurableSpace/` (#20215) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/MeasureTheory/Constructions/Pi.lean - theorem IsCountablySpanning.pi - theorem IsPiSystem.pi - theorem MeasurableSpace.pi_eq_generateFrom_projections - theorem generateFrom_eq_pi - theorem generateFrom_pi - theorem generateFrom_pi_eq - theorem isPiSystem_pi Added Mathlib/MeasureTheory/MeasurableSpace/Pi.lean + theorem IsCountablySpanning.pi + theorem IsPiSystem.pi + theorem MeasurableSpace.pi_eq_generateFrom_projections + theorem generateFrom_eq_pi + theorem generateFrom_pi + theorem generateFrom_pi_eq + theorem isPiSystem_pi Modified Mathlib/Probability/Independence/Basic.lean Modified Mathlib/Probability/Independence/Kernel.lean 2025-01-07 07:29:52 1327df0 chore: smile more often (#20436) This replaces `: _)` with the shorter and otherwise *almost* identical `:)`. The former is a Lean 3 ism; or at least, the latter is new syntax in Lean 4. More precisely (thanks @kmill): - `(e : _)` elaborates `e` without an expected type, and then it inserts a coercion if the type of `e` does not match the expected type. - `(e :)` elaborates `e` without an expected type *to completion*, and then it inserts a coercion if the type of `e` does not match the expected type. A few places break when switched to `:)`; in many of these cases, the `: _)`/`:)` can just be dropped entirely. The remainder are left as is. ESTIMATED CHANGES Modified Archive/Sensitivity.lean Modified Counterexamples/Girard.lean Modified Mathlib/Algebra/Algebra/NonUnitalHom.lean Modified Mathlib/Algebra/Algebra/NonUnitalSubalgebra.lean Modified Mathlib/Algebra/Algebra/RestrictScalars.lean Modified Mathlib/Algebra/Algebra/Subalgebra/Basic.lean Modified Mathlib/Algebra/Algebra/Subalgebra/Tower.lean Modified Mathlib/Algebra/Algebra/Tower.lean Modified Mathlib/Algebra/Category/ModuleCat/Presheaf/Monoidal.lean Modified Mathlib/Algebra/Category/Ring/Constructions.lean Modified Mathlib/Algebra/Category/Ring/Instances.lean Modified Mathlib/Algebra/GCDMonoid/IntegrallyClosed.lean Modified Mathlib/Algebra/GradedMonoid.lean Modified Mathlib/Algebra/Group/Action/Units.lean Modified Mathlib/Algebra/Group/Opposite.lean Modified Mathlib/Algebra/Group/Pi/Lemmas.lean Modified Mathlib/Algebra/Group/Prod.lean Modified Mathlib/Algebra/Group/Submonoid/Operations.lean Modified Mathlib/Algebra/Lie/BaseChange.lean Modified Mathlib/Algebra/Module/Equiv/Basic.lean Modified Mathlib/Algebra/Module/LinearMap/Defs.lean Modified Mathlib/Algebra/Module/LocalizedModule/Basic.lean Modified Mathlib/Algebra/Module/Pi.lean Modified Mathlib/Algebra/Module/Submodule/Basic.lean Modified Mathlib/Algebra/Module/Submodule/Defs.lean Modified Mathlib/Algebra/Module/Submodule/RestrictScalars.lean Modified Mathlib/Algebra/Module/Torsion.lean Modified Mathlib/Algebra/MonoidAlgebra/Basic.lean Modified Mathlib/Algebra/MonoidAlgebra/Defs.lean Modified Mathlib/Algebra/MonoidAlgebra/ToDirectSum.lean Modified Mathlib/Algebra/MvPolynomial/Equiv.lean Modified Mathlib/Algebra/Order/Interval/Set/Instances.lean Modified Mathlib/Algebra/Ring/Subring/Defs.lean Modified Mathlib/Algebra/Ring/Subsemiring/Defs.lean Modified Mathlib/Algebra/RingQuot.lean Modified Mathlib/Algebra/Star/NonUnitalSubalgebra.lean Modified Mathlib/Algebra/Star/StarAlgHom.lean Modified Mathlib/Algebra/Star/Subalgebra.lean Modified Mathlib/AlgebraicGeometry/Cover/Open.lean Modified Mathlib/AlgebraicGeometry/Limits.lean +/- theorem AlgebraicGeometry.exists_sigmaι_eq +/- def AlgebraicGeometry.sigmaMk Modified Mathlib/AlgebraicGeometry/Modules/Tilde.lean Modified Mathlib/AlgebraicGeometry/Morphisms/Preimmersion.lean Modified Mathlib/AlgebraicGeometry/Morphisms/SurjectiveOnStalks.lean Modified Mathlib/AlgebraicGeometry/Morphisms/UniversallyClosed.lean Modified Mathlib/AlgebraicGeometry/OpenImmersion.lean +/- def AlgebraicGeometry.IsOpenImmersion.isoRestrict Modified Mathlib/AlgebraicGeometry/PrimeSpectrum/Basic.lean Modified Mathlib/AlgebraicGeometry/ProjectiveSpectrum/StructureSheaf.lean Modified Mathlib/AlgebraicGeometry/Restrict.lean Modified Mathlib/AlgebraicGeometry/Scheme.lean +/- theorem AlgebraicGeometry.Scheme.id.base Modified Mathlib/AlgebraicGeometry/StructureSheaf.lean Modified Mathlib/AlgebraicTopology/CechNerve.lean Modified Mathlib/Analysis/Analytic/Composition.lean Modified Mathlib/Analysis/BoxIntegral/Partition/SubboxInduction.lean Modified Mathlib/Analysis/CStarAlgebra/Multiplier.lean Modified Mathlib/Analysis/Calculus/ContDiff/Defs.lean Modified Mathlib/Analysis/Calculus/Deriv/Basic.lean Modified Mathlib/Analysis/Calculus/FDeriv/Basic.lean Modified Mathlib/Analysis/Calculus/Gradient/Basic.lean Modified Mathlib/Analysis/Convolution.lean Modified Mathlib/Analysis/Fourier/FourierTransformDeriv.lean Modified Mathlib/Analysis/InnerProductSpace/Completion.lean Modified Mathlib/Analysis/InnerProductSpace/Projection.lean Modified Mathlib/Analysis/Matrix.lean Modified Mathlib/Analysis/Normed/Algebra/Basic.lean Modified Mathlib/Analysis/Normed/Field/Basic.lean Modified Mathlib/Analysis/Normed/Field/InfiniteSum.lean Modified Mathlib/Analysis/Normed/Group/AddTorsor.lean Modified Mathlib/Analysis/Normed/Group/SemiNormedGrp/Kernels.lean Modified Mathlib/Analysis/Normed/Module/Basic.lean Modified Mathlib/Analysis/NormedSpace/Multilinear/Basic.lean +/- def ContinuousMultilinearMap.restr Modified Mathlib/Analysis/NormedSpace/OperatorNorm/Prod.lean Modified Mathlib/CategoryTheory/Enriched/Basic.lean Modified Mathlib/CategoryTheory/Extensive.lean Modified Mathlib/CategoryTheory/Functor/Flat.lean Modified Mathlib/CategoryTheory/Functor/FullyFaithful.lean Modified Mathlib/CategoryTheory/IsConnected.lean Modified Mathlib/CategoryTheory/Limits/ColimitLimit.lean Modified Mathlib/CategoryTheory/Limits/Comma.lean Modified Mathlib/CategoryTheory/Limits/Cones.lean Modified Mathlib/CategoryTheory/Limits/Constructions/BinaryProducts.lean Modified Mathlib/CategoryTheory/Limits/Creates.lean Modified Mathlib/CategoryTheory/Limits/Final.lean Modified Mathlib/CategoryTheory/Limits/IsLimit.lean Modified Mathlib/CategoryTheory/Limits/Preserves/Basic.lean Modified Mathlib/CategoryTheory/Limits/Preserves/Shapes/Pullbacks.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Multiequalizer.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Pullback/Mono.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Pullback/PullbackCone.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Types.lean Modified Mathlib/CategoryTheory/Limits/VanKampen.lean Modified Mathlib/CategoryTheory/Monad/Adjunction.lean Modified Mathlib/CategoryTheory/Monad/Kleisli.lean Modified Mathlib/CategoryTheory/Monad/Limits.lean Modified Mathlib/CategoryTheory/Preadditive/Mat.lean Modified Mathlib/CategoryTheory/Sigma/Basic.lean +/- def CategoryTheory.Sigma.mapComp Modified Mathlib/CategoryTheory/Sites/DenseSubsite/Basic.lean Modified Mathlib/CategoryTheory/Sites/EqualizerSheafCondition.lean Modified Mathlib/CategoryTheory/Sites/Sheafification.lean Modified Mathlib/CategoryTheory/Sites/Subsheaf.lean Modified Mathlib/Computability/RegularExpressions.lean Modified Mathlib/Data/Complex/Module.lean Modified Mathlib/Data/ENNReal/Operations.lean Modified Mathlib/Data/Int/Cast/Lemmas.lean Modified Mathlib/Data/List/Basic.lean Modified Mathlib/Data/Matrix/Defs.lean Modified Mathlib/Data/Matrix/Notation.lean Modified Mathlib/Data/NNReal/Defs.lean Modified Mathlib/Data/PFunctor/Multivariate/Basic.lean Modified Mathlib/Data/PFunctor/Multivariate/M.lean Modified Mathlib/Data/Prod/Basic.lean Modified Mathlib/Data/Sum/Basic.lean Modified Mathlib/Data/TypeVec.lean Modified Mathlib/Data/W/Basic.lean Modified Mathlib/Dynamics/FixedPoints/Basic.lean Modified Mathlib/FieldTheory/Adjoin.lean Modified Mathlib/FieldTheory/IsAlgClosed/Basic.lean Modified Mathlib/FieldTheory/Normal.lean Modified Mathlib/Geometry/Manifold/ContMDiffMFDeriv.lean Modified Mathlib/Geometry/Manifold/LocalInvariantProperties.lean Modified Mathlib/Geometry/Manifold/MFDeriv/Atlas.lean Modified Mathlib/Geometry/Manifold/MFDeriv/Basic.lean Modified Mathlib/Geometry/Manifold/MFDeriv/Defs.lean Modified Mathlib/Geometry/RingedSpace/LocallyRingedSpace/HasColimits.lean Modified Mathlib/Geometry/RingedSpace/Stalks.lean Modified Mathlib/GroupTheory/GroupAction/Defs.lean Modified Mathlib/GroupTheory/Perm/Finite.lean Modified Mathlib/GroupTheory/QuotientGroup/Defs.lean Modified Mathlib/GroupTheory/SpecificGroups/Alternating.lean Modified Mathlib/GroupTheory/Submonoid/Inverses.lean +/- theorem Submonoid.unit_mem_leftInv Modified Mathlib/LinearAlgebra/Alternating/Basic.lean Modified Mathlib/LinearAlgebra/BilinearForm/Properties.lean Modified Mathlib/LinearAlgebra/BilinearMap.lean Modified Mathlib/LinearAlgebra/CliffordAlgebra/BaseChange.lean Modified Mathlib/LinearAlgebra/CliffordAlgebra/EvenEquiv.lean Modified Mathlib/LinearAlgebra/Dimension/Constructions.lean Modified Mathlib/LinearAlgebra/LinearIndependent.lean Modified Mathlib/LinearAlgebra/Matrix/Charpoly/FiniteField.lean Modified Mathlib/LinearAlgebra/Matrix/Charpoly/LinearMap.lean Modified Mathlib/LinearAlgebra/Matrix/LDL.lean Modified Mathlib/LinearAlgebra/Matrix/Symmetric.lean Modified Mathlib/LinearAlgebra/QuadraticForm/Isometry.lean Modified Mathlib/LinearAlgebra/Quotient/Defs.lean Modified Mathlib/LinearAlgebra/Ray.lean Modified Mathlib/LinearAlgebra/Span/Basic.lean Modified Mathlib/LinearAlgebra/TensorProduct/Basic.lean Modified Mathlib/LinearAlgebra/TensorProduct/Tower.lean Modified Mathlib/Logic/Function/Basic.lean Modified Mathlib/MeasureTheory/Constructions/Polish/Basic.lean Modified Mathlib/MeasureTheory/Function/LpSeminorm/CompareExp.lean Modified Mathlib/MeasureTheory/Function/SimpleFuncDenseLp.lean Modified Mathlib/MeasureTheory/Group/AddCircle.lean Modified Mathlib/MeasureTheory/Group/Arithmetic.lean Modified Mathlib/MeasureTheory/Integral/Prod.lean Modified Mathlib/MeasureTheory/Measure/Prod.lean Modified Mathlib/ModelTheory/LanguageMap.lean Modified Mathlib/NumberTheory/Cyclotomic/Basic.lean Modified Mathlib/Order/CompleteLattice.lean Modified Mathlib/Order/Filter/Ultrafilter.lean Modified Mathlib/Order/Height.lean Modified Mathlib/Order/Hom/Order.lean Modified Mathlib/Order/Interval/Finset/Defs.lean Modified Mathlib/Order/SupIndep.lean Modified Mathlib/Probability/Kernel/Composition/Basic.lean Modified Mathlib/Probability/Kernel/Composition/IntegralCompProd.lean Modified Mathlib/RingTheory/DedekindDomain/AdicValuation.lean +/- theorem IsDedekindDomain.HeightOneSpectrum.adicValued_apply Modified Mathlib/RingTheory/DedekindDomain/Different.lean Modified Mathlib/RingTheory/Derivation/ToSquareZero.lean Modified Mathlib/RingTheory/Ideal/AssociatedPrime.lean Modified Mathlib/RingTheory/Ideal/Quotient/Defs.lean Modified Mathlib/RingTheory/Ideal/Quotient/Operations.lean Modified Mathlib/RingTheory/IsTensorProduct.lean Modified Mathlib/RingTheory/Kaehler/Basic.lean Modified Mathlib/RingTheory/Kaehler/CotangentComplex.lean Modified Mathlib/RingTheory/Kaehler/JacobiZariski.lean Modified Mathlib/RingTheory/MvPowerSeries/Basic.lean Modified Mathlib/RingTheory/MvPowerSeries/Inverse.lean Modified Mathlib/RingTheory/Nilpotent/Lemmas.lean Modified Mathlib/RingTheory/NonUnitalSubring/Defs.lean Modified Mathlib/RingTheory/NonUnitalSubsemiring/Defs.lean Modified Mathlib/RingTheory/Perfection.lean Modified Mathlib/RingTheory/Smooth/Basic.lean Modified Mathlib/RingTheory/WittVector/Basic.lean Modified Mathlib/SetTheory/Cardinal/Cofinality.lean Modified Mathlib/Tactic/Linarith/Oracle/FourierMotzkin.lean Modified Mathlib/Topology/Algebra/ConstMulAction.lean Modified Mathlib/Topology/Algebra/Group/Basic.lean Modified Mathlib/Topology/Algebra/InfiniteSum/Constructions.lean Modified Mathlib/Topology/Algebra/Monoid.lean Modified Mathlib/Topology/Algebra/UniformField.lean Modified Mathlib/Topology/Algebra/UniformGroup/Basic.lean Modified Mathlib/Topology/Algebra/UniformGroup/Defs.lean Modified Mathlib/Topology/Basic.lean Modified Mathlib/Topology/Category/TopCat/Limits/Basic.lean Modified Mathlib/Topology/Category/TopCat/Limits/Products.lean Modified Mathlib/Topology/Category/TopCat/Limits/Pullbacks.lean +/- theorem TopCat.colimit_isOpen_iff Modified Mathlib/Topology/Category/TopCat/Opens.lean Modified Mathlib/Topology/ContinuousMap/Algebra.lean Modified Mathlib/Topology/ContinuousMap/Bounded/Basic.lean Modified Mathlib/Topology/ContinuousMap/ZeroAtInfty.lean Modified Mathlib/Topology/Gluing.lean Modified Mathlib/Topology/Instances/ENNReal.lean Modified Mathlib/Topology/Instances/Matrix.lean Modified Mathlib/Topology/List.lean Modified Mathlib/Topology/LocalAtTarget.lean Modified Mathlib/Topology/MetricSpace/Completion.lean Modified Mathlib/Topology/MetricSpace/PiNat.lean Modified Mathlib/Topology/MetricSpace/Pseudo/Constructions.lean Modified Mathlib/Topology/Order/DenselyOrdered.lean Modified Mathlib/Topology/Order/Lattice.lean Modified Mathlib/Topology/PartialHomeomorph.lean Modified Mathlib/Topology/Sheaves/SheafCondition/PairwiseIntersections.lean Modified Mathlib/Topology/Sheaves/Stalks.lean Modified Mathlib/Topology/UniformSpace/AbstractCompletion.lean Modified Mathlib/Topology/VectorBundle/Basic.lean Modified Mathlib/Topology/VectorBundle/Constructions.lean Modified MathlibTest/TypeCheck.lean 2025-01-07 04:59:08 57f8888 chore(Algebra/Category/MonCat/ForgetCorepresentable, Algebra/Group/Equiv/Basic): move definitions and add symmetric version (#20416) Move the two definitions `MonoidHom.precompEquiv` (the equivalence `(β →* γ) ≃ (α →* γ)` obtained by precomposition with a multiplicative equivalence `e : α ≃* β`) and `AddMonoidHom.precompEquiv` (its additive version) from `Algebra.Category.MonCat.ForgetCorepresentable` to `Algebra.Group.Equiv.Basic`, so they can be used without importing files about `MonCat`. Also merge them into one definition using `@[to_additive]` and add the symmetric definition `(Add)MonoidHom.postcompEquiv`. ESTIMATED CHANGES Modified Mathlib/Algebra/Category/Grp/ForgetCorepresentable.lean Modified Mathlib/Algebra/Category/Grp/Limits.lean Modified Mathlib/Algebra/Category/MonCat/ForgetCorepresentable.lean - def AddMonoidHom.precompEquiv - def MonoidHom.precompEquiv Modified Mathlib/Algebra/Group/Equiv/Basic.lean + def MonoidHom.postcompEquiv + def MonoidHom.precompEquiv 2025-01-07 04:29:22 d7f04b9 feat(GroupTheory/QuotientGroup): group correspondence theorem (#20007) add the group correspondence theorem (a.k.a. lattice theorem, fourth isomorphism theorem). ESTIMATED CHANGES Modified Mathlib/GroupTheory/QuotientGroup/Basic.lean + def QuotientGroup.comapMk'OrderIso + theorem QuotientGroup.comap_map_mk' + theorem QuotientGroup.le_comap_mk' Modified Mathlib/GroupTheory/QuotientGroup/Defs.lean + theorem QuotientGroup.range_mk' 2025-01-07 02:59:53 b84129c doc: change "module homomorphism" to "linear map" (#20481) We change all occurrences of "module homomorphism" in docstrings to "linear map". See here: https://github.com/leanprover-community/mathlib4/pull/20452#issuecomment-2571343604 ESTIMATED CHANGES Modified Mathlib/Algebra/DirectSum/Algebra.lean Modified Mathlib/LinearAlgebra/Prod.lean Modified Mathlib/RingTheory/Flat/EquationalCriterion.lean Modified Mathlib/RingTheory/Flat/FaithfullyFlat.lean Modified Mathlib/Topology/Germ.lean 2025-01-07 02:24:23 ff91822 perf: improves the performance of the `Repr (Equiv.Perm α)` instance (1/4) (#20519) This PR reduces computation time from $O(n^2)$ (more precisery, $O(\sum_{k] 0` ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Group/Pointwise/Interval.lean + theorem Set.inv_Iio₀ + theorem Set.inv_Ioo_0_right Modified Mathlib/Topology/Algebra/Order/Field.lean + theorem Filter.Tendsto.const_div_atBot + theorem Filter.Tendsto.div_atBot + theorem Filter.Tendsto.inv_tendsto_atBot + theorem Filter.Tendsto.inv_tendsto_nhdsLT_zero + theorem inv_atBot₀ + theorem inv_nhdsLT_zero + theorem tendsto_inv_atBot_zero' + theorem tendsto_inv_atBot_zero + theorem tendsto_inv_zero_atBot 2025-01-06 22:05:00 dfd963f chore: cleanup many `erw` (#20484) I used @dwrensha's `tryAtEachStep` tool to identify many places where `simp` can finish a proof earlier, and curated a few. I especially focused on places where we can remove an `erw`. ESTIMATED CHANGES Modified Mathlib/Algebra/Category/Grp/FilteredColimits.lean Modified Mathlib/Algebra/Group/Subgroup/Basic.lean Modified Mathlib/Algebra/Homology/HomotopyCategory/Pretriangulated.lean Modified Mathlib/Algebra/Homology/Opposite.lean Modified Mathlib/Algebra/Homology/QuasiIso.lean Modified Mathlib/Algebra/Homology/TotalComplexShift.lean Modified Mathlib/Algebra/Lie/Nilpotent.lean Modified Mathlib/Algebra/Module/LocalizedModule/Basic.lean Modified Mathlib/AlgebraicGeometry/EllipticCurve/Affine.lean Modified Mathlib/AlgebraicGeometry/Morphisms/Affine.lean Modified Mathlib/AlgebraicTopology/CechNerve.lean Modified Mathlib/AlgebraicTopology/DoldKan/Homotopies.lean Modified Mathlib/AlgebraicTopology/DoldKan/Normalized.lean Modified Mathlib/AlgebraicTopology/DoldKan/SplitSimplicialObject.lean Modified Mathlib/Analysis/Analytic/ChangeOrigin.lean Modified Mathlib/CategoryTheory/Adjunction/Mates.lean Modified Mathlib/CategoryTheory/Comma/StructuredArrow/Basic.lean Modified Mathlib/CategoryTheory/ComposableArrows.lean Modified Mathlib/CategoryTheory/Equivalence.lean Modified Mathlib/CategoryTheory/Grothendieck.lean Modified Mathlib/CategoryTheory/Idempotents/FunctorCategories.lean Modified Mathlib/CategoryTheory/Limits/HasLimits.lean Modified Mathlib/CategoryTheory/Limits/IsLimit.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Biproducts.lean Modified Mathlib/CategoryTheory/Limits/VanKampen.lean Modified Mathlib/CategoryTheory/Monoidal/Braided/Basic.lean Modified Mathlib/CategoryTheory/Sites/Sheaf.lean Modified Mathlib/CategoryTheory/Triangulated/Rotate.lean Modified Mathlib/Computability/RegularExpressions.lean Modified Mathlib/Data/Int/Cast/Basic.lean Modified Mathlib/Data/Int/Defs.lean Modified Mathlib/Data/List/Basic.lean Modified Mathlib/Data/Sum/Interval.lean Modified Mathlib/Data/ZMod/Basic.lean Modified Mathlib/Geometry/RingedSpace/OpenImmersion.lean Modified Mathlib/Geometry/RingedSpace/PresheafedSpace/Gluing.lean Modified Mathlib/Geometry/RingedSpace/PresheafedSpace/HasColimits.lean Modified Mathlib/LinearAlgebra/CliffordAlgebra/EvenEquiv.lean Modified Mathlib/LinearAlgebra/Matrix/Determinant/Basic.lean Modified Mathlib/LinearAlgebra/Multilinear/Basic.lean Modified Mathlib/LinearAlgebra/Span/Basic.lean Modified Mathlib/LinearAlgebra/TensorProduct/Graded/Internal.lean Modified Mathlib/MeasureTheory/MeasurableSpace/Embedding.lean Modified Mathlib/ModelTheory/Algebra/Ring/Basic.lean Modified Mathlib/NumberTheory/Zsqrtd/Basic.lean Modified Mathlib/RingTheory/Derivation/Basic.lean Modified Mathlib/RingTheory/HahnSeries/Addition.lean Modified Mathlib/RingTheory/Ideal/Basis.lean Modified Mathlib/RingTheory/Kaehler/CotangentComplex.lean Modified Mathlib/RingTheory/Localization/Away/Basic.lean Modified Mathlib/Topology/ContinuousMap/StoneWeierstrass.lean 2025-01-06 20:17:04 aa37b81 fix: silence the `#`-command linter on noisy commands (#20525) Reported on [Zulip](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/.23.20linter), the fix comes from [this update](https://leanprover.zulipchat.com/#narrow/channel/428973-nightly-testing/topic/Mathlib.20status.20updates/near/486115503). ESTIMATED CHANGES Modified Mathlib/Tactic/Linter/HashCommandLinter.lean Modified MathlibTest/HashCommandLinter.lean 2025-01-06 19:13:06 89f60e1 feat(RingTheory/Ideal): 37 cast to an ideal is just the whole ring. (#20244) https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/IdemSemiring.20.2B.20OfNat ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Kleene.lean + theorem natCast_eq_one + theorem ofNat_eq_one Modified Mathlib/RingTheory/Ideal/Operations.lean + theorem Ideal.natCast_eq_top + theorem Ideal.ofNat_eq_top 2025-01-06 17:01:52 6924148 chore(Algebra): make more names consistent (#20449) * Follows on from #20272 * Rename some substructure constructions to align with `oneLE` / `nonneg` * Clarify some documentation Moves: * squareIn -> square * evenIn -> even * sumSqIn -> sumSq ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Subgroup/Even.lean + theorem Subgroup.coe_square - theorem Subgroup.coe_squareIn + theorem Subgroup.mem_square - theorem Subgroup.mem_squareIn + def Subgroup.square - def Subgroup.squareIn - theorem Subgroup.squareIn_toSubmonoid + theorem Subgroup.square_toSubmonoid + theorem Submonoid.coe_square - theorem Submonoid.coe_squareIn + theorem Submonoid.mem_square - theorem Submonoid.mem_squareIn + def Submonoid.square - def Submonoid.squareIn - theorem Submonoid.squareIn_toSubsemigroup + theorem Submonoid.square_toSubsemigroup + theorem Subsemigroup.coe_square - theorem Subsemigroup.coe_squareIn + theorem Subsemigroup.mem_square - theorem Subsemigroup.mem_squareIn + def Subsemigroup.square - def Subsemigroup.squareIn Modified Mathlib/Algebra/Ring/SumsOfSquares.lean +/- theorem AddSubmonoid.closure_isSquare - theorem mem_sumSqIn_of_isSquare + theorem mem_sumSq_of_isSquare + def sumSq - def sumSqIn 2025-01-06 16:31:30 ee71c31 feat: Polynomial FLT (#18882) Prove the polynomial FLT, using Mason-Stothers theorem #15706. More generally, prove non-solvability of Fermat-Catalan equation: $ux^p + vx^q + wz^r = 0$ where $u, v, w \in k^\times$ are units and $p, q, r \ge 3$ with $pq + qr + rp \le pqr$. Also derive the `IsCoprime b c` and `IsCoprime c a` assumptions from the `IsCoprime a b` and `a + b + c = 0` ones in `Polynomial.abc`. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/NumberTheory/FLT/MasonStothers.lean - theorem Polynomial.abc Added Mathlib/NumberTheory/FLT/Polynomial.lean + theorem Polynomial.flt + theorem Polynomial.flt_catalan + theorem fermatLastTheoremWith'_polynomial 2025-01-06 15:56:35 648ca59 feat: A disjoint union is finite iff all sets are finite, and all but finitely many are empty (#20457) From the Carleson project ESTIMATED CHANGES Modified Mathlib/Data/Set/Finite/Lattice.lean + theorem Set.PairwiseDisjoint.finite_biUnion_iff + theorem Set.finite_iUnion_iff + theorem Set.finite_iUnion_of_subsingleton 2025-01-06 15:23:00 5716319 fix: linkfix in 100.yaml (#20517) ESTIMATED CHANGES Modified docs/100.yaml 2025-01-06 16:20:42+01:00 9ab795a feat(1000): fill in more entries (#20470) --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) --------- ESTIMATED CHANGES Modified Mathlib/Analysis/InnerProductSpace/Projection.lean Modified Mathlib/Combinatorics/SetFamily/LYM.lean - theorem Finset.IsAntichain.sperner + theorem IsAntichain.sperner Modified Mathlib/MeasureTheory/Covering/Besicovitch.lean Modified Mathlib/MeasureTheory/Covering/Vitali.lean Modified docs/1000.yaml 2025-01-06 14:48:38 15b2729 feat(Combinatorics/SimpleGraph/Walk): add `penultimate` and `snd` (#16769) Here are some reasons for it: - We want to add `penultimate`, as `p.getVert (p.length - 1)` duplicates `p`, and `snd` should exist for symmetry. - In some cases it makes sense to consider the vertices of a walk without the first/last one, and then this is the walk version of `List.head`/`List.last`, not `l[1]`/`l[l.size-2]` - In walks the first/last node and adjacency are a lot more important than they usually are in lists, so it makes more sense to have a special term for the node adjacent to the first/last node. - Walks always have a sensible default, so there's no need for the "take a proof/default value/panic/return an option" duplication which lists have and so this doesn't require much API. ESTIMATED CHANGES Modified Mathlib/Combinatorics/SimpleGraph/Acyclic.lean Modified Mathlib/Combinatorics/SimpleGraph/Connectivity/WalkCounting.lean Modified Mathlib/Combinatorics/SimpleGraph/Path.lean +/- theorem SimpleGraph.Walk.IsPath.tail Modified Mathlib/Combinatorics/SimpleGraph/Walk.lean - theorem SimpleGraph.Walk.adj_getVert_one + theorem SimpleGraph.Walk.adj_penultimate + theorem SimpleGraph.Walk.adj_snd + theorem SimpleGraph.Walk.edge_lastDart - theorem SimpleGraph.Walk.getVert_cons_one + theorem SimpleGraph.Walk.getVert_nil +/- theorem SimpleGraph.Walk.getVert_tail + def SimpleGraph.Walk.lastDart + theorem SimpleGraph.Walk.penultimate_concat + theorem SimpleGraph.Walk.penultimate_cons_cons + theorem SimpleGraph.Walk.penultimate_cons_nil + theorem SimpleGraph.Walk.penultimate_cons_of_not_nil + theorem SimpleGraph.Walk.snd_cons +/- def SimpleGraph.Walk.tail +/- theorem SimpleGraph.Walk.tail_cons_nil + theorem SimpleGraph.Walk.tail_nil 2025-01-06 14:36:15 f0c7c5c feat(ContinuousMultilinearMap): add lemmas about `.prod` (#20462) ESTIMATED CHANGES Modified Mathlib/Analysis/NormedSpace/Multilinear/Basic.lean Modified Mathlib/Topology/Algebra/Module/Multilinear/Basic.lean + theorem ContinuousMultilinearMap.add_prod_add + theorem ContinuousMultilinearMap.eq_prod_iff + theorem ContinuousMultilinearMap.neg_prod_neg + def ContinuousMultilinearMap.prodEquiv + theorem ContinuousMultilinearMap.prod_ext + theorem ContinuousMultilinearMap.prod_ext_iff + theorem ContinuousMultilinearMap.smul_prod_smul + theorem ContinuousMultilinearMap.sub_prod_sub + theorem ContinuousMultilinearMap.zero_prod_zero 2025-01-06 14:27:26 d5cc7c8 feat(RingTheory): classification of etale algebras over fields (#20324) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/RingTheory/Etale/Field.lean + theorem Algebra.Etale.iff_exists_algEquiv_prod + theorem Algebra.FormallyEtale.iff_exists_algEquiv_prod Added Mathlib/RingTheory/Etale/Pi.lean + theorem Algebra.FormallyEtale.pi_iff Modified Mathlib/RingTheory/Smooth/Pi.lean Modified Mathlib/RingTheory/Unramified/Pi.lean 2025-01-06 13:23:12 fceef13 fix: Allow multiple builds on staging branch (#20515) as mentioned on [zulip](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/ci.20on.20master.20is.20failing/near/492095011), staging CI fails, which we don't want. This pr allows multiple build runs on the `staging` branch at a time, which should hopefully fix the issue ESTIMATED CHANGES Modified .github/build.in.yml Modified .github/workflows/bors.yml Modified .github/workflows/build.yml Modified .github/workflows/build_fork.yml 2025-01-06 13:13:30 5e298f9 feat(CategoryTheory/Shift/Adjunction): properties of `Adjunction.CommShift` (#20337) Provide instances that say that `Adjunction.CommShift` holds for the identity adjunction and is stable by composition, as well as similar instances for `Equivalence.CommShift`. - [ ] depends on: #20364 - [ ] depends on: #20490 ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Shift/Adjunction.lean + theorem CategoryTheory.Adjunction.commShiftIso_hom_app_counit_app_shift + theorem CategoryTheory.Adjunction.commShiftIso_inv_app_counit_app + theorem CategoryTheory.Adjunction.unit_app_commShiftIso_hom_app + theorem CategoryTheory.Adjunction.unit_app_shift_commShiftIso_inv_app 2025-01-06 12:46:46 88c4a94 chore(Data/Multiset/Basic): move the `sub`, `union`, `inter` sections lower (#19863) * Move the sections about `sub`, `union` and `inter` under the sections about `count` and `filter` * `Multiset.countP_sub` now has a different argument order to match `List.countP_diff` * Golf `List.count_sub` * Name the instances and declare them using `where` notation * Define `Multiset.card` using `Quotient.lift`, not `Quotient.liftOn` ESTIMATED CHANGES Modified Mathlib/Data/Multiset/Basic.lean +/- theorem Multiset.add_inter_distrib +/- theorem Multiset.add_union_distrib +/- def Multiset.card +/- theorem Multiset.card_sub +/- theorem Multiset.coe_inter +/- theorem Multiset.coe_sub +/- theorem Multiset.cons_inter_distrib +/- theorem Multiset.cons_inter_of_neg +/- theorem Multiset.cons_inter_of_pos +/- theorem Multiset.cons_sub_of_le +/- theorem Multiset.cons_union_distrib +/- theorem Multiset.countP_sub +/- theorem Multiset.count_inter +/- theorem Multiset.count_sub +/- theorem Multiset.count_union +/- theorem Multiset.eq_union_left +/- theorem Multiset.eq_union_right +/- theorem Multiset.erase_attach_map +/- theorem Multiset.erase_attach_map_val +/- theorem Multiset.filter_inter +/- theorem Multiset.filter_sub +/- theorem Multiset.filter_union +/- theorem Multiset.inf_eq_inter +/- theorem Multiset.inter_add_distrib +/- theorem Multiset.inter_comm +/- theorem Multiset.inter_le_left +/- theorem Multiset.inter_le_right +/- theorem Multiset.inter_zero +/- theorem Multiset.le_inter +/- theorem Multiset.le_inter_iff +/- theorem Multiset.le_union_left +/- theorem Multiset.le_union_right +/- theorem Multiset.map_union +/- theorem Multiset.mem_inter +/- theorem Multiset.mem_union +/- theorem Multiset.sub_add_inter +/- theorem Multiset.sub_cons +/- theorem Multiset.sub_eq_fold_erase +/- theorem Multiset.sub_filter_eq_filter_not +/- theorem Multiset.sub_inter +/- theorem Multiset.sup_eq_union +/- def Multiset.union +/- theorem Multiset.union_add_distrib +/- theorem Multiset.union_comm +/- theorem Multiset.union_def +/- theorem Multiset.union_le +/- theorem Multiset.union_le_add +/- theorem Multiset.union_le_iff +/- theorem Multiset.union_le_union_left +/- theorem Multiset.union_le_union_right +/- theorem Multiset.union_zero +/- theorem Multiset.zero_inter +/- theorem Multiset.zero_union 2025-01-06 12:25:54 baef601 chore(Topology/UniformSpace/Completion): make coe' argument implicit (#20514) Right now coercions to completions of uniform spaces print weirdly: ```lean import Mathlib.Topology.UniformSpace.Completion variable (α : Type) [UniformSpace α] (x : α) open UniformSpace #check (x : Completion α) -- ↑α x : Completion α ``` This is because the coercion from `α` to `Completion α` is `UniformSpace.Completion.coe'` which (accidentally?) has `α` explicit. We make it implicit, so now we get the expected ```lean #check (x : Completion α) -- ↑x : Completion α ``` Zulip discussion: https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/notation.20for.20coercion.20to.20completion/near/439560582 ESTIMATED CHANGES Modified Mathlib/Topology/UniformSpace/Completion.lean 2025-01-06 12:15:39 5b6f2c6 refactor(Algebra/Category/Grp/Colimits): change the construction of colimits in `AddCommGrp` (#20474) The old version of this file has a remark saying "TODO: In fact, in `AddCommGrp` there is a much nicer model of colimits as quotients of finitely supported functions, and we really should implement this as well (or instead)." This PR does precisely this (choosing the "instead" option). In fact, given a functor `F : J ⥤ AddCommGrp.{w}`, it constructs a candidate for the colimit of `F` as a quotient of `DFinsupp (fun j ↦ F.obj j)`, without any smallness assumptions on `J`. It then proves that this quotient is a colimit of `F` if it is `w`-small, then deduces that `AddCommGrp.{w}` has all small colimits. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Category/Grp/Colimits.lean - def AddCommGrp.Colimits.ColimitType - inductive AddCommGrp.Colimits.Prequotient + theorem AddCommGrp.Colimits.Quot.addMonoidHom_ext + def AddCommGrp.Colimits.Quot.desc + theorem AddCommGrp.Colimits.Quot.desc_colimitCocone + theorem AddCommGrp.Colimits.Quot.desc_toCocone_desc + theorem AddCommGrp.Colimits.Quot.desc_toCocone_desc_app + theorem AddCommGrp.Colimits.Quot.map_ι + def AddCommGrp.Colimits.Quot.ι + theorem AddCommGrp.Colimits.Quot.ι_desc + def AddCommGrp.Colimits.Quot - inductive AddCommGrp.Colimits.Relation - def AddCommGrp.Colimits.coconeFun - def AddCommGrp.Colimits.coconeMorphism - theorem AddCommGrp.Colimits.cocone_naturality - theorem AddCommGrp.Colimits.cocone_naturality_components - def AddCommGrp.Colimits.colimit - def AddCommGrp.Colimits.colimitCocone - def AddCommGrp.Colimits.colimitCoconeIsColimit - def AddCommGrp.Colimits.colimitSetoid - def AddCommGrp.Colimits.descFun - def AddCommGrp.Colimits.descFunLift - def AddCommGrp.Colimits.descMorphism - theorem AddCommGrp.Colimits.quot_add - theorem AddCommGrp.Colimits.quot_neg - theorem AddCommGrp.Colimits.quot_zero + def AddCommGrp.Colimits.toCocone - theorem AddCommGrp.hasColimit + theorem AddCommGrp.hasColimit_of_small_quot - theorem AddCommGrp.hasColimitsOfShape - theorem AddCommGrp.hasColimitsOfSize Modified Mathlib/Algebra/Homology/LocalCohomology.lean Added Mathlib/Data/DFinsupp/Small.lean 2025-01-06 11:55:12 ae4ed02 feat(Topology/Algebra/InfiniteSum/NatInt): Add pnat lems (#16544) Add some basic results about tsums indexed by pnat. ESTIMATED CHANGES Modified Mathlib/Topology/Algebra/InfiniteSum/NatInt.lean + theorem pnat_multipliable_iff_multipliable_succ + theorem tprod_pnat_eq_tprod_succ 2025-01-06 11:22:24 e58d5d7 chore(RingTheory/Finiteness): rename Module.Finite.out (#20506) Right now it's impossible to do ``` -- finite projective modules class IsFiniteProjective extends Module.Projective R M, Module.Finite R M : Prop where -- oops ``` because of a nameclash (both axioms are called `out`). ESTIMATED CHANGES Modified Mathlib/Algebra/Module/FinitePresentation.lean Modified Mathlib/Algebra/Module/Torsion.lean Modified Mathlib/LinearAlgebra/Matrix/Charpoly/LinearMap.lean Modified Mathlib/RingTheory/Artinian/Module.lean Modified Mathlib/RingTheory/Finiteness/Basic.lean +/- theorem Module.Finite.iff_fg Modified Mathlib/RingTheory/Finiteness/Defs.lean Modified Mathlib/RingTheory/Finiteness/Nilpotent.lean Modified Mathlib/RingTheory/Finiteness/TensorProduct.lean Modified Mathlib/RingTheory/Flat/EquationalCriterion.lean Modified Mathlib/RingTheory/LocalProperties/Projective.lean Modified Mathlib/RingTheory/LocalRing/Module.lean Modified Mathlib/RingTheory/Nakayama.lean 2025-01-06 11:06:14 14950c5 refactor(CategoryTheory/Limits/Preserves/Ulift): simplify the proof that the universe lifting functor for types preserves all colimits (#20508) The current proof that the universe lifting functor for types preserves all colimits is redundant with the work done in `CategoryTheory.Limits.Types`, in particular with `isColimit_iff_bijective_desc`, as the result actually follows almost immediately from this last statement. This PR simplifies the proof using `isColimit_iff_bijective_desc`. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Limits/Preserves/Ulift.lean - def CategoryTheory.Limits.Types.coconeOfSet - theorem CategoryTheory.Limits.Types.descFun_apply_spec - theorem CategoryTheory.Limits.Types.descFun_spec - def CategoryTheory.Limits.Types.descSet - theorem CategoryTheory.Limits.Types.descSet_empty - theorem CategoryTheory.Limits.Types.descSet_inter_of_ne - theorem CategoryTheory.Limits.Types.descSet_spec - theorem CategoryTheory.Limits.Types.descSet_univ - theorem CategoryTheory.Limits.Types.existsUnique_mem_descSet - theorem CategoryTheory.Limits.Types.iUnion_descSet_singleton - theorem CategoryTheory.Limits.Types.mem_descSet_singleton Modified Mathlib/CategoryTheory/Limits/Types.lean + theorem CategoryTheory.Limits.Types.Quot.desc_quotQuotUliftEquiv + def CategoryTheory.Limits.Types.quotQuotUliftEquiv + def CategoryTheory.Limits.Types.quotToQuotUlift + theorem CategoryTheory.Limits.Types.quotToQuotUlift_ι + def CategoryTheory.Limits.Types.quotUliftToQuot + theorem CategoryTheory.Limits.Types.quotUliftToQuot_ι 2025-01-06 11:06:13 3279a44 feat(CategoryTheory): products in the category of Ind-objects (#20507) Follow-up to #18988. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Limits/Indization/Category.lean 2025-01-06 10:15:37 886b340 chore: remove >9 month old deprecations (#20505) ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/Operations.lean Modified Mathlib/Algebra/Associated/Basic.lean Modified Mathlib/Algebra/CharP/Reduced.lean Modified Mathlib/Algebra/GCDMonoid/Basic.lean Modified Mathlib/Algebra/Group/Basic.lean - theorem exists_pow_eq_one_of_zpow_eq_one Modified Mathlib/Algebra/Group/Defs.lean Modified Mathlib/Algebra/Group/UniqueProds/Basic.lean Modified Mathlib/Algebra/Group/Units/Basic.lean Modified Mathlib/Algebra/GroupWithZero/Units/Basic.lean - theorem div_mul_left - theorem div_mul_right Modified Mathlib/Algebra/Module/Submodule/Pointwise.lean - theorem Submodule.set_smul_mono_right Modified Mathlib/Algebra/Order/BigOperators/Ring/Finset.lean Modified Mathlib/Algebra/Order/Field/Basic.lean - theorem div_le_div_of_le Modified Mathlib/Algebra/Order/Field/Power.lean Modified Mathlib/Algebra/Order/Ring/Unbundled/Rat.lean Modified Mathlib/Algebra/Polynomial/Div.lean Modified Mathlib/Algebra/Squarefree/Basic.lean Modified Mathlib/AlgebraicGeometry/OpenImmersion.lean Modified Mathlib/AlgebraicGeometry/ProjectiveSpectrum/Scheme.lean Modified Mathlib/Analysis/CStarAlgebra/Matrix.lean Modified Mathlib/Analysis/CStarAlgebra/Unitization.lean Modified Mathlib/Analysis/Calculus/ContDiff/FTaylorSeries.lean Modified Mathlib/Analysis/Calculus/InverseFunctionTheorem/Deriv.lean Modified Mathlib/Analysis/Calculus/InverseFunctionTheorem/FDeriv.lean Modified Mathlib/Analysis/Calculus/MeanValue.lean Modified Mathlib/Analysis/Complex/Polynomial/Basic.lean Modified Mathlib/Analysis/Fourier/FourierTransform.lean Modified Mathlib/Analysis/InnerProductSpace/LaxMilgram.lean Modified Mathlib/Analysis/InnerProductSpace/TwoDim.lean Modified Mathlib/Analysis/LocallyConvex/Basic.lean - theorem Absorbent.zero_mem' - theorem balanced_zero_union_interior Modified Mathlib/Analysis/Matrix.lean Modified Mathlib/Analysis/Normed/Lp/LpEquiv.lean Modified Mathlib/Analysis/Normed/Module/FiniteDimension.lean Modified Mathlib/Analysis/NormedSpace/Multilinear/Basic.lean Modified Mathlib/Analysis/NormedSpace/OperatorNorm/Basic.lean Modified Mathlib/Analysis/NormedSpace/OperatorNorm/Bilinear.lean Modified Mathlib/Analysis/NormedSpace/OperatorNorm/Completeness.lean Modified Mathlib/Analysis/NormedSpace/OperatorNorm/Mul.lean Modified Mathlib/Analysis/NormedSpace/OperatorNorm/NNNorm.lean Modified Mathlib/Analysis/NormedSpace/OperatorNorm/NormedSpace.lean Modified Mathlib/Analysis/NormedSpace/OperatorNorm/Prod.lean Modified Mathlib/Analysis/NormedSpace/RCLike.lean Modified Mathlib/Analysis/SpecialFunctions/Gaussian/FourierTransform.lean Modified Mathlib/CategoryTheory/Filtered/Basic.lean Modified Mathlib/CategoryTheory/IsConnected.lean Modified Mathlib/CategoryTheory/Limits/FullSubcategory.lean Modified Mathlib/CategoryTheory/Limits/Opposites.lean Modified Mathlib/Combinatorics/SimpleGraph/Coloring.lean - theorem SimpleGraph.chromaticNumber_le_card Modified Mathlib/Data/Complex/Abs.lean - theorem Complex.int_cast_abs Modified Mathlib/Data/Countable/Small.lean Modified Mathlib/Data/Fin/Basic.lean - theorem Fin.eq_iff_veq Modified Mathlib/Data/Finset/Card.lean Modified Mathlib/Data/Finset/Empty.lean Modified Mathlib/Data/Finset/Lattice/Basic.lean Modified Mathlib/Data/Int/Defs.lean Modified Mathlib/Data/List/Basic.lean - theorem List.bind_ret_eq_map Modified Mathlib/Data/List/Defs.lean Modified Mathlib/Data/List/Infix.lean Modified Mathlib/Data/List/Pairwise.lean - theorem List.pairwise_map' Modified Mathlib/Data/List/Sublists.lean - theorem List.map_ret_sublist_sublists Modified Mathlib/Data/NNReal/Defs.lean Modified Mathlib/Data/Nat/Cast/Order/Basic.lean - theorem Nat.cast_le_cast Modified Mathlib/Data/Nat/Digits.lean Modified Mathlib/Data/Rat/Cast/Defs.lean Modified Mathlib/Data/Rat/Defs.lean - theorem Rat.add_def'' - theorem Rat.divInt_neg_one_one - theorem Rat.divInt_zero_one - theorem Rat.sub_def'' Modified Mathlib/Data/Real/Sqrt.lean Modified Mathlib/Data/Set/Basic.lean Modified Mathlib/Data/Set/Image.lean - theorem Set.mem_image_elim - theorem Set.mem_image_elim_on - theorem Set.mem_image_iff_bex Modified Mathlib/Data/ZMod/Quotient.lean Modified Mathlib/Deprecated/Cardinal/PartENat.lean Modified Mathlib/Deprecated/Submonoid.lean Modified Mathlib/FieldTheory/PrimitiveElement.lean Modified Mathlib/Geometry/Euclidean/Angle/Unoriented/Affine.lean Modified Mathlib/Geometry/Manifold/SmoothManifoldWithCorners.lean Modified Mathlib/GroupTheory/OrderOfElement.lean Modified Mathlib/GroupTheory/SpecificGroups/Cyclic.lean Modified Mathlib/LinearAlgebra/FiniteDimensional.lean Modified Mathlib/LinearAlgebra/FiniteDimensional/Defs.lean Modified Mathlib/Logic/Basic.lean - theorem ball_of_forall - theorem forall_of_ball Modified Mathlib/MeasureTheory/Constructions/BorelSpace/Real.lean Modified Mathlib/MeasureTheory/Function/L1Space.lean Modified Mathlib/MeasureTheory/Function/SimpleFunc.lean Modified Mathlib/MeasureTheory/Function/StronglyMeasurable/Basic.lean - theorem MeasureTheory.stronglyMeasurable_of_isEmpty Modified Mathlib/MeasureTheory/Integral/PeakFunction.lean Modified Mathlib/MeasureTheory/Integral/SetToL1.lean Modified Mathlib/MeasureTheory/Measure/Haar/Unique.lean Modified Mathlib/NumberTheory/LSeries/Dirichlet.lean Modified Mathlib/NumberTheory/Transcendental/Liouville/Residual.lean Modified Mathlib/RingTheory/Flat/Basic.lean Modified Mathlib/RingTheory/Ideal/Quotient/Operations.lean Modified Mathlib/RingTheory/MvPolynomial/Homogeneous.lean Modified Mathlib/RingTheory/PowerBasis.lean Modified Mathlib/RingTheory/PrincipalIdealDomain.lean Modified Mathlib/RingTheory/SimpleModule.lean Modified Mathlib/RingTheory/UniqueFactorizationDomain/Defs.lean - theorem ufm_of_gcd_of_wfDvdMonoid Modified Mathlib/RingTheory/UniqueFactorizationDomain/FactorSet.lean Modified Mathlib/RingTheory/UniqueFactorizationDomain/Multiplicity.lean - theorem UniqueFactorizationMonoid.max_power_factor Modified Mathlib/SetTheory/Cardinal/Arithmetic.lean Modified Mathlib/SetTheory/Cardinal/ToNat.lean - theorem Cardinal.toNat_finset_prod - theorem Cardinal.toNat_le_of_le_of_lt_aleph0 - theorem Cardinal.toNat_lt_of_lt_of_lt_aleph0 Modified Mathlib/Topology/Algebra/InfiniteSum/NatInt.lean Modified Mathlib/Topology/Algebra/UniformRing.lean - theorem UniformSpace.ring_sep_quot Modified Mathlib/Topology/Bases.lean Modified Mathlib/Topology/CompactOpen.lean - theorem ContinuousMap.continuous_curry' - def ContinuousMap.curry' Modified Mathlib/Topology/Compactness/Compact.lean - theorem Filter.mem_coclosedCompact - theorem Filter.mem_coclosed_compact' Modified Mathlib/Topology/Constructions.lean Modified Mathlib/Topology/ContinuousMap/Bounded/Basic.lean Modified Mathlib/Topology/ContinuousMap/ZeroAtInfty.lean Modified Mathlib/Topology/GDelta/Basic.lean Modified Mathlib/Topology/GDelta/UniformSpace.lean Modified Mathlib/Topology/Instances/Discrete.lean - theorem DiscreteTopology.secondCountableTopology_of_encodable Modified Mathlib/Topology/Instances/Int.lean Modified Mathlib/Topology/Instances/Irrational.lean Modified Mathlib/Topology/Instances/Real.lean Modified Mathlib/Topology/Maps/Basic.lean Modified Mathlib/Topology/MetricSpace/Completion.lean Modified Mathlib/Topology/MetricSpace/Polish.lean - theorem PolishSpace.t2Space Modified Mathlib/Topology/MetricSpace/Sequences.lean Modified Mathlib/Topology/Order.lean - theorem nhdsAdjoint_nhds_of_ne Modified Mathlib/Topology/Order/Basic.lean - theorem atBot_le_nhds_bot - theorem atTop_le_nhds_top Modified Mathlib/Topology/Order/OrderClosed.lean - theorem ClosedIciTopology.isClosed_ge' - theorem ClosedIicTopology.isClosed_le' Modified Mathlib/Topology/Semicontinuous.lean Modified Mathlib/Topology/Separation/GDelta.lean Modified Mathlib/Topology/Separation/Hausdorff.lean Modified Mathlib/Topology/Separation/Regular.lean Modified Mathlib/Topology/UniformSpace/Basic.lean - def UniformSpace.ofNhdsEqComap Modified Mathlib/Topology/UnitInterval.lean 2025-01-06 09:50:35 ea41783 chore(FieldTheory/Galois): small cleanup (#20217) Small refinements about Fieldtheory.Galois Mainly about few refine in proof style and some more suggested lemma. ESTIMATED CHANGES Modified Mathlib/FieldTheory/Galois/Basic.lean Modified Mathlib/FieldTheory/Galois/Infinite.lean + theorem InfiniteGalois.isOpen_and_normal_iff_finite_and_isGalois 2025-01-06 07:44:01 9afdff7 chore(LinearIndependent): generalize to semirings (#20480) After the definition is changed in #18426, many results can now be generalized to semirings. ESTIMATED CHANGES Modified Mathlib/Data/Finsupp/Basic.lean +/- def Finsupp.restrictSupportEquiv + theorem Finsupp.subtypeDomain_eq_iff + theorem Finsupp.subtypeDomain_eq_iff_forall +/- theorem Finsupp.subtypeDomain_eq_zero_iff' Modified Mathlib/Data/Set/Function.lean + theorem Set.InjOn.injective_iff Modified Mathlib/LinearAlgebra/Dimension/Basic.lean Modified Mathlib/LinearAlgebra/Finsupp/LinearCombination.lean + theorem Finsupp.linearCombination_restrict Modified Mathlib/LinearAlgebra/Finsupp/Supported.lean +/- def Finsupp.supportedEquivFinsupp + theorem Finsupp.supportedEquivFinsupp_symm_apply_coe Modified Mathlib/LinearAlgebra/LinearIndependent.lean + theorem Fintype.linearIndependent_iff'ₛ + theorem Fintype.linearIndependent_iff_injective + theorem Fintype.linearIndependent_iffₛ + theorem Fintype.not_linearIndependent_iffₛ +/- def LinearIndependent.Maximal +/- theorem LinearIndependent.eq_of_smul_apply_eq_smul_apply + theorem LinearIndependent.image_subtypeₛ + theorem LinearIndependent.map_injOn +/- theorem LinearIndependent.map_of_injective_injective + theorem LinearIndependent.map_of_injective_injectiveₛ +/- theorem LinearIndependent.maximal_iff +/- theorem LinearIndependent.mono + theorem LinearIndependent.not_smul_mem_span + theorem LinearIndependent.pair_iffₛ + theorem linearDependent_comp_subtype'ₛ + theorem linearDependent_comp_subtypeₛ + theorem linearIndependent_comp_subtypeₛ + theorem linearIndependent_iff''ₛ + theorem linearIndependent_iff'ₛ + theorem linearIndependent_iff_linearCombinationOnₛ + theorem linearIndependent_iffₛ +/- theorem linearIndependent_inl_union_inr' + theorem linearIndependent_restrict_iff + theorem linearIndependent_subtypeₛ + theorem not_linearIndependent_iffₛ 2025-01-06 07:01:31 10a4215 chore(NumberTheory/NumberField/AdeleRing): refactor adele rings (#20500) The current `AdeleRing ℚ` explicitly involves `𝓞 ℚ` and is not much fun to work with. This PR enables `AdeleRing ℤ ℚ`. ESTIMATED CHANGES Modified Mathlib/NumberTheory/NumberField/AdeleRing.lean +/- theorem NumberField.AdeleRing.algebraMap_injective +/- theorem NumberField.AdeleRing.algebraMap_snd_apply +/- def NumberField.AdeleRing +/- def NumberField.InfiniteAdeleRing 2025-01-05 22:19:13 95cdc7a chore: replace `aesop` with `simp` where possible (#20483) I'm investigating how `aesop` is being used (and making comparisons with the in development `grind` tactic), but finding many uses of `aesop` can in fact just be replaced by `simp`. Hopefully using the simpler tool is both faster, and more readable. We'll see. ESTIMATED CHANGES Modified Mathlib/Algebra/Category/ModuleCat/Presheaf/Sheafify.lean Modified Mathlib/Algebra/Category/ModuleCat/Subobject.lean Modified Mathlib/Algebra/Category/Semigrp/Basic.lean Modified Mathlib/Algebra/Homology/Additive.lean Modified Mathlib/Algebra/Homology/Augment.lean Modified Mathlib/Algebra/Homology/HomologicalBicomplex.lean Modified Mathlib/Algebra/Homology/HomologySequence.lean Modified Mathlib/Algebra/Homology/HomotopyCategory/DegreewiseSplit.lean Modified Mathlib/Algebra/Homology/ShortComplex/FunctorEquivalence.lean Modified Mathlib/Algebra/Homology/ShortComplex/HomologicalComplex.lean Modified Mathlib/Algebra/Homology/ShortComplex/LeftHomology.lean Modified Mathlib/Algebra/Homology/ShortComplex/Limits.lean Modified Mathlib/Algebra/Homology/ShortComplex/PreservesHomology.lean Modified Mathlib/Algebra/Homology/ShortComplex/RightHomology.lean Modified Mathlib/Algebra/Homology/ShortComplex/SnakeLemma.lean Modified Mathlib/Algebra/Homology/Single.lean Modified Mathlib/Algebra/Lie/Weights/Basic.lean +/- theorem LieModule.Weight.ext_iff' Modified Mathlib/Algebra/Module/Presentation/Basic.lean Modified Mathlib/Algebra/Module/Submodule/Pointwise.lean Modified Mathlib/AlgebraicGeometry/PrimeSpectrum/Basic.lean Modified Mathlib/AlgebraicTopology/CechNerve.lean Modified Mathlib/AlgebraicTopology/SimplicialObject/Basic.lean Modified Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Unital.lean Modified Mathlib/Analysis/SpecialFunctions/ContinuousFunctionalCalculus/ExpLog.lean Modified Mathlib/Analysis/SpecialFunctions/ContinuousFunctionalCalculus/Rpow.lean Modified Mathlib/Analysis/SpecificLimits/Basic.lean Modified Mathlib/CategoryTheory/Abelian/Exact.lean Modified Mathlib/CategoryTheory/Abelian/InjectiveResolution.lean Modified Mathlib/CategoryTheory/Action/Limits.lean Modified Mathlib/CategoryTheory/Action/Monoidal.lean Modified Mathlib/CategoryTheory/Adjunction/Basic.lean Modified Mathlib/CategoryTheory/Bicategory/FunctorBicategory/Oplax.lean Modified Mathlib/CategoryTheory/Category/Cat.lean Modified Mathlib/CategoryTheory/Category/Cat/Limit.lean Modified Mathlib/CategoryTheory/Comma/Basic.lean Modified Mathlib/CategoryTheory/Comma/Presheaf/Basic.lean Modified Mathlib/CategoryTheory/Comma/StructuredArrow/Basic.lean +/- theorem CategoryTheory.CostructuredArrow.homMk'_mk_id +/- theorem CategoryTheory.CostructuredArrow.mkPrecomp_id +/- theorem CategoryTheory.StructuredArrow.homMk'_mk_id +/- theorem CategoryTheory.StructuredArrow.mkPostcomp_id Modified Mathlib/CategoryTheory/DiscreteCategory.lean Modified Mathlib/CategoryTheory/Elements.lean Modified Mathlib/CategoryTheory/Equivalence.lean Modified Mathlib/CategoryTheory/Functor/Const.lean Modified Mathlib/CategoryTheory/Functor/Derived/RightDerived.lean Modified Mathlib/CategoryTheory/Functor/FunctorHom.lean Modified Mathlib/CategoryTheory/Functor/KanExtension/Basic.lean Modified Mathlib/CategoryTheory/Functor/KanExtension/Pointwise.lean Modified Mathlib/CategoryTheory/Galois/Decomposition.lean Modified Mathlib/CategoryTheory/GlueData.lean Modified Mathlib/CategoryTheory/GradedObject/Single.lean Modified Mathlib/CategoryTheory/Groupoid.lean Modified Mathlib/CategoryTheory/Idempotents/FunctorExtension.lean Modified Mathlib/CategoryTheory/Idempotents/HomologicalComplex.lean Modified Mathlib/CategoryTheory/Idempotents/Karoubi.lean Modified Mathlib/CategoryTheory/Idempotents/KaroubiKaroubi.lean Modified Mathlib/CategoryTheory/IsConnected.lean Modified Mathlib/CategoryTheory/Limits/Cones.lean Modified Mathlib/CategoryTheory/Limits/Constructions/Filtered.lean Modified Mathlib/CategoryTheory/Limits/Constructions/ZeroObjects.lean Modified Mathlib/CategoryTheory/Limits/HasLimits.lean Modified Mathlib/CategoryTheory/Limits/IsLimit.lean Modified Mathlib/CategoryTheory/Limits/MonoCoprod.lean Modified Mathlib/CategoryTheory/Limits/Opposites.lean Modified Mathlib/CategoryTheory/Limits/Preserves/Shapes/Biproducts.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Biproducts.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Equalizers.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Images.lean Modified Mathlib/CategoryTheory/Limits/Shapes/IsTerminal.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Kernels.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Products.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Pullback/CommSq.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Pullback/Square.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Reflexive.lean Modified Mathlib/CategoryTheory/Limits/Shapes/StrongEpi.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Terminal.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Types.lean Modified Mathlib/CategoryTheory/Limits/Shapes/WidePullbacks.lean Modified Mathlib/CategoryTheory/Localization/Bifunctor.lean Modified Mathlib/CategoryTheory/Localization/Construction.lean Modified Mathlib/CategoryTheory/Localization/DerivabilityStructure/Constructor.lean Modified Mathlib/CategoryTheory/Monoidal/Braided/Basic.lean Modified Mathlib/CategoryTheory/Monoidal/End.lean Modified Mathlib/CategoryTheory/Monoidal/Internal/Limits.lean Modified Mathlib/CategoryTheory/Monoidal/Subcategory.lean Modified Mathlib/CategoryTheory/NatIso.lean Modified Mathlib/CategoryTheory/Opposites.lean Modified Mathlib/CategoryTheory/Pi/Basic.lean Modified Mathlib/CategoryTheory/Preadditive/Biproducts.lean Modified Mathlib/CategoryTheory/Preadditive/OfBiproducts.lean Modified Mathlib/CategoryTheory/Simple.lean Modified Mathlib/CategoryTheory/SingleObj.lean Modified Mathlib/CategoryTheory/Sites/Pretopology.lean Modified Mathlib/CategoryTheory/Sites/Subsheaf.lean Modified Mathlib/CategoryTheory/Subobject/Comma.lean Modified Mathlib/CategoryTheory/Subobject/Lattice.lean Modified Mathlib/CategoryTheory/Triangulated/Basic.lean Modified Mathlib/CategoryTheory/Triangulated/Functor.lean Modified Mathlib/CategoryTheory/Triangulated/Opposite/Pretriangulated.lean Modified Mathlib/CategoryTheory/Triangulated/Opposite/Triangle.lean Modified Mathlib/CategoryTheory/Triangulated/Pretriangulated.lean Modified Mathlib/CategoryTheory/Triangulated/Subcategory.lean Modified Mathlib/CategoryTheory/Triangulated/TriangleShift.lean Modified Mathlib/CategoryTheory/Yoneda.lean Modified Mathlib/Computability/AkraBazzi/AkraBazzi.lean Modified Mathlib/Data/MLList/BestFirst.lean Modified Mathlib/Data/Matrix/ColumnRowPartitioned.lean Modified Mathlib/Data/Matroid/Closure.lean Modified Mathlib/Data/PFunctor/Multivariate/M.lean Modified Mathlib/Data/Part.lean Modified Mathlib/Geometry/RingedSpace/LocallyRingedSpace/HasColimits.lean Modified Mathlib/GroupTheory/SpecificGroups/KleinFour.lean Modified Mathlib/LinearAlgebra/FreeProduct/Basic.lean Modified Mathlib/LinearAlgebra/InvariantBasisNumber.lean Modified Mathlib/LinearAlgebra/Multilinear/Basic.lean Modified Mathlib/LinearAlgebra/Semisimple.lean Modified Mathlib/LinearAlgebra/TensorProduct/Quotient.lean Modified Mathlib/ModelTheory/ElementaryMaps.lean Modified Mathlib/ModelTheory/Substructures.lean Modified Mathlib/Order/BooleanSubalgebra.lean Modified Mathlib/Probability/StrongLaw.lean Modified Mathlib/RepresentationTheory/GroupCohomology/LowDegree.lean Modified Mathlib/RingTheory/AdicCompletion/Functoriality.lean Modified Mathlib/Topology/Category/Profinite/AsLimit.lean Modified Mathlib/Topology/ContinuousOn.lean Modified Mathlib/Topology/Sheaves/SheafCondition/OpensLeCover.lean 2025-01-05 17:28:34 a57f317 chore(1000): remove nonexistent fields (#20493) `comment` is not a supported field and so the website build is [broken](https://github.com/leanprover-community/leanprover-community.github.io/actions/runs/12616366640/job/35157520815). Changes to the website to actually support this would be welcome. ESTIMATED CHANGES Modified docs/1000.yaml 2025-01-05 13:43:37 2590de3 chore(CategoryTheory/Adjunction.Basic, CategoryTheory/Equivalence): change definition of `Adjunction.comp` and `Equivalence.trans` (#20490) The definitions of `Adjunction.comp` and `Equivalence.trans` were making abuse of `defeq`. We fix this in a way that makes `Equivalence.trans_toAdjunction` true by `rfl`. We also add a lemma `Equivalence.refl_toAdjunction`. ESTIMATED CHANGES Modified Mathlib/AlgebraicTopology/DoldKan/Compatibility.lean Modified Mathlib/CategoryTheory/Adjunction/Basic.lean + theorem CategoryTheory.Equivalence.refl_toAdjunction Modified Mathlib/CategoryTheory/Adjunction/Mates.lean Modified Mathlib/CategoryTheory/Equivalence.lean Modified Mathlib/CategoryTheory/Localization/Predicate.lean +/- theorem CategoryTheory.Localization.uniq_symm 2025-01-05 13:11:10 9173268 feat(Asymptotics): add `Asymptotics.*.*Prod` lemmas (#20458) `IsBigO.fisnetProd` comes from https://github.com/urkud/SardMoreira, the others are added to avoid gaps in the API. ESTIMATED CHANGES Modified Mathlib/Analysis/Asymptotics/AsymptoticEquivalent.lean - theorem Asymptotics.IsEquivalent.div + theorem Asymptotics.IsEquivalent.finsetProd - theorem Asymptotics.IsEquivalent.inv + theorem Asymptotics.IsEquivalent.listProd - theorem Asymptotics.IsEquivalent.mul + theorem Asymptotics.IsEquivalent.multisetProd Modified Mathlib/Analysis/Asymptotics/Asymptotics.lean + theorem Asymptotics.IsBigO.finsetProd + theorem Asymptotics.IsBigO.listProd + theorem Asymptotics.IsBigO.multisetProd + theorem Asymptotics.IsLittleO.finsetProd + theorem Asymptotics.IsLittleO.listProd + theorem Asymptotics.IsLittleO.multisetProd Modified Mathlib/Analysis/Asymptotics/Theta.lean + theorem Asymptotics.IsTheta.finsetProd + theorem Asymptotics.IsTheta.listProd + theorem Asymptotics.IsTheta.multisetProd 2025-01-05 13:11:09 599c46e feat: a conditional kernel is almost everywhere a probability measure (#20430) ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Function/AEEqOfLIntegral.lean + theorem MeasureTheory.ae_le_const_iff_forall_gt_measure_zero Modified Mathlib/Probability/Kernel/Disintegration/Basic.lean + theorem ProbabilityTheory.Kernel.IsCondKernel.isProbabilityMeasure_ae +/- theorem ProbabilityTheory.Kernel.disintegrate 2025-01-05 13:11:08 bbc7c11 feat: if `f` is a measurable group hom, then every point has a neighborhood `s` such that `f '' s` is bounded (#20304) This will be used to solve Cauchy's functional equation. From LeanCamCombi ESTIMATED CHANGES Modified Mathlib/Data/Set/Pointwise/SMul.lean + theorem Set.image_op_smul_distrib Modified Mathlib/MeasureTheory/Measure/Haar/Basic.lean + theorem MeasureTheory.Measure.div_mem_nhds_one_of_haar_pos_ne_top Modified Mathlib/MeasureTheory/Measure/Haar/NormedSpace.lean + theorem MonoidHom.exists_nhds_isBounded 2025-01-05 12:29:59 1d1c8c2 feat: `Ico`, `Ioc`, and `Ioo` are not closed or compact (#20479) Inspired by [this Zulip thread](https://leanprover.zulipchat.com/#narrow/channel/113489-new-members/topic/Proving.20compactness.20of.20.280.2Cr.5D.20from.20.5B0.2Cr.5D/near/491839141) which tried to prove a false result. Also includes 12 stupid lemmas about interval equalities to make `simp` slightly more helpful. I don't know if the topological results can be generalized further, but these lemmas at least work for `Real` as was needed on Zulip. ESTIMATED CHANGES Modified Mathlib/Order/Interval/Set/Basic.lean + theorem Set.Icc_eq_Ico_same_iff + theorem Set.Icc_eq_Ioc_same_iff + theorem Set.Icc_eq_Ioo_same_iff + theorem Set.Ico_eq_Icc_same_iff + theorem Set.Ico_eq_Ioc_same_iff + theorem Set.Ico_eq_Ioo_same_iff + theorem Set.Ioc_eq_Icc_same_iff + theorem Set.Ioc_eq_Ico_same_iff + theorem Set.Ioc_eq_Ioo_same_iff + theorem Set.Ioo_eq_Icc_same_iff + theorem Set.Ioo_eq_Ico_same_iff + theorem Set.Ioo_eq_Ioc_same_iff Modified Mathlib/Topology/Order/Compact.lean + theorem isCompact_Ico_iff + theorem isCompact_Ioc_iff + theorem isCompact_Ioo_iff Modified Mathlib/Topology/Order/DenselyOrdered.lean + theorem isClosed_Ico_iff + theorem isClosed_Ioc_iff + theorem isClosed_Ioo_iff 2025-01-05 11:59:22 3166425 chore: drop redundant hypothesis in `Module.Dual.eq_of_preReflection_mapsTo` (#20492) ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/Reflection.lean Modified Mathlib/LinearAlgebra/RootSystem/Basic.lean 2025-01-05 11:29:43 aef9ea6 feat(FaaDiBruno): derive `DecidableEq` (#20482) I'm working on a formula for the Taylor series of the inverse function for the Sard-Moreira project, and I need complement to work for `Finset (OrderedFinpartition _)`. ESTIMATED CHANGES Modified Mathlib/Analysis/Calculus/ContDiff/FaaDiBruno.lean 2025-01-05 11:29:42 f82d085 chore(SetTheory/Ordinal/Basic): `{x // x < y}` → `Iio y` (#20413) ESTIMATED CHANGES Modified Mathlib/SetTheory/Ordinal/Arithmetic.lean - theorem Ordinal.type_subrel_lt Modified Mathlib/SetTheory/Ordinal/Basic.lean +/- def Ordinal.enum +/- theorem Ordinal.enum_inj +/- theorem Ordinal.enum_le_enum' +/- theorem Ordinal.enum_le_enum +/- theorem Ordinal.enum_lt_enum 2025-01-05 11:29:41 238e9b9 chore: generalize `FormalMultilinearSeries.ofScalars_norm` to `Seminormed` (#20351) More usefully, this does the same for a collection of results about `mkPiAlgebraFin`. ESTIMATED CHANGES Modified Mathlib/Analysis/Analytic/OfScalars.lean Modified Mathlib/Analysis/NormedSpace/Multilinear/Basic.lean 2025-01-05 11:29:40 f916a16 chore(MvPolynomial/Localization): golf using TensorProduct (#20309) ESTIMATED CHANGES Modified Mathlib/RingTheory/MvPolynomial/Localization.lean 2025-01-05 11:29:38 8a6db46 chore(Combinatorics/Enumerative/Partition): auto-derive DecidableEq (#20277) Original bug fixed in https://github.com/leanprover/lean4/pull/2918. ESTIMATED CHANGES Modified Mathlib/Combinatorics/Enumerative/Partition.lean 2025-01-05 11:29:37 f1f1e33 chore(CategoryTheory): make relevant parameters explicit in `Arrow.homMk`. (#20259) The two morphisms `left` and `right` which constitute the data in a morphism in the category `Arrow C` of arrows are made explicit, and the factorization property gets a default value `by aesop_cat`. ESTIMATED CHANGES Modified Mathlib/Algebra/Homology/HomologicalComplex.lean Modified Mathlib/CategoryTheory/Comma/Arrow.lean +/- def CategoryTheory.Arrow.homMk' +/- def CategoryTheory.Arrow.homMk Modified Mathlib/CategoryTheory/Limits/Shapes/Images.lean Modified Mathlib/CategoryTheory/Square.lean 2025-01-05 11:06:22 a1c7216 feat: add `IsStarNormal (↑x⁻¹ : R)` instance for `x : Rˣ` (#20091) Also renames `isStarNormal_{zero, one}` to `IsStarNormal.{zero, one}`. ESTIMATED CHANGES Modified Mathlib/Algebra/Star/SelfAdjoint.lean Modified Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Instances.lean 2025-01-05 08:51:50 b552a67 fix: Stop cancelling builds of master (#20435) As mentioned on [zulip](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Persistent.20.23allow_unused_tactic/near/491740884), the building process on `master` can get cancelled on occasion. this PR hopes to fix that issue. ESTIMATED CHANGES Modified .github/build.in.yml Modified .github/workflows/bors.yml Modified .github/workflows/build.yml Modified .github/workflows/build_fork.yml 2025-01-05 07:56:23 53f6c02 chore: update Mathlib dependencies 2025-01-05 (#20485) This PR updates the Mathlib dependencies. ESTIMATED CHANGES Modified lake-manifest.json 2025-01-05 04:19:38 3c12551 feat(SetTheory/Cardinal/Arithmetic): miscellaneous cardinality lemmas (#18933) ESTIMATED CHANGES Modified Mathlib/SetTheory/Cardinal/Arithmetic.lean + theorem Cardinal.add_mk_eq_self Modified Mathlib/SetTheory/Cardinal/Basic.lean + theorem Cardinal.mk_congr_lift + theorem Cardinal.mk_image_embedding + theorem Cardinal.mk_image_embedding_lift + theorem Cardinal.mk_preimage_equiv + theorem Cardinal.mk_preimage_equiv_lift + theorem Cardinal.mk_range_inl + theorem Cardinal.mk_range_inr 2025-01-05 03:32:19 0f18102 chore: bump toolchain to v4.16.0-rc1, and merge bump/v4.16.0 (#20464) ESTIMATED CHANGES Modified Archive/Imo/Imo2024Q5.lean Modified Mathlib.lean Modified Mathlib/Algebra/BigOperators/Fin.lean Modified Mathlib/Algebra/BigOperators/Group/List.lean - theorem Nat.sum_eq_listSum Modified Mathlib/Algebra/MvPolynomial/SchwartzZippel.lean Modified Mathlib/AlgebraicGeometry/EllipticCurve/NormalForms.lean Modified Mathlib/Analysis/Calculus/ContDiff/FaaDiBruno.lean Modified Mathlib/Analysis/Convex/Continuous.lean Modified Mathlib/CategoryTheory/Galois/Decomposition.lean Modified Mathlib/Computability/TMToPartrec.lean Modified Mathlib/Computability/TuringMachine.lean Modified Mathlib/Data/Fin/Basic.lean +/- theorem Fin.cast_eq_cast +/- theorem Fin.cast_eq_self +/- theorem Fin.cast_le_cast +/- theorem Fin.cast_lt_cast +/- theorem Fin.cast_zero +/- theorem Fin.leftInverse_cast +/- theorem Fin.rightInverse_cast Modified Mathlib/Data/Fin/Tuple/Basic.lean +/- theorem Fin.repeat_one Modified Mathlib/Data/Fin/Tuple/Take.lean Modified Mathlib/Data/Int/Bitwise.lean Modified Mathlib/Data/Int/Lemmas.lean Modified Mathlib/Data/List/Basic.lean - theorem List.getElem_cons +/- theorem List.getLast_concat' - theorem List.replicate_succ' Modified Mathlib/Data/List/Chain.lean Modified Mathlib/Data/List/Lemmas.lean + theorem List.Nat.sum_eq_listSum - theorem List.countP_flatMap - theorem List.count_flatMap - theorem List.length_flatMap Modified Mathlib/Data/List/Lex.lean - theorem List.Lex.not_nil_right - inductive List.Lex +/- theorem List.lt_iff_lex_lt - theorem List.nil_le - theorem List.nil_lt_cons Modified Mathlib/Data/List/MinMax.lean Modified Mathlib/Data/List/Permutation.lean Modified Mathlib/Data/Nat/Bitwise.lean Modified Mathlib/Data/Nat/Defs.lean Modified Mathlib/Data/Num/Basic.lean Modified Mathlib/Data/QPF/Multivariate/Constructions/Fix.lean Modified Mathlib/Data/String/Basic.lean Modified Mathlib/Data/Vector/Basic.lean Modified Mathlib/Deprecated/LazyList.lean Modified Mathlib/FieldTheory/Finite/GaloisField.lean Modified Mathlib/Lean/Expr/Basic.lean Modified Mathlib/Lean/Meta/RefinedDiscrTree/Encode.lean Modified Mathlib/LinearAlgebra/Dual.lean Modified Mathlib/LinearAlgebra/LinearIndependent.lean Modified Mathlib/LinearAlgebra/Matrix/SemiringInverse.lean Modified Mathlib/Logic/Basic.lean +/- theorem imp_forall_iff_forall Modified Mathlib/MeasureTheory/Integral/FundThmCalculus.lean Modified Mathlib/MeasureTheory/Integral/Marginal.lean Modified Mathlib/ModelTheory/Semantics.lean Modified Mathlib/NumberTheory/Bernoulli.lean Modified Mathlib/NumberTheory/Modular.lean Modified Mathlib/Order/Fin/Basic.lean +/- theorem Fin.cast_strictMono Modified Mathlib/RingTheory/Ideal/Norm/AbsNorm.lean Modified Mathlib/RingTheory/Kaehler/JacobiZariski.lean Modified Mathlib/RingTheory/Polynomial/Chebyshev.lean Modified Mathlib/SetTheory/Ordinal/Notation.lean +/- def ONote.ofNat +/- theorem ONote.ofNat_one +/- theorem ONote.repr_ofNat +/- theorem ONote.repr_one + theorem ONote.repr_zero Modified Mathlib/Tactic.lean Modified Mathlib/Tactic/CC/Addition.lean Modified Mathlib/Tactic/CC/Datatypes.lean Modified Mathlib/Tactic/CC/MkProof.lean Modified Mathlib/Tactic/Common.lean Deleted Mathlib/Tactic/DeriveToExpr.lean - def Mathlib.Deriving.ToExpr.fixIndType - def Mathlib.Deriving.ToExpr.mkAppNTerm - def Mathlib.Deriving.ToExpr.mkAuxFunction - def Mathlib.Deriving.ToExpr.mkInstanceCmds - def Mathlib.Deriving.ToExpr.mkLocalInstanceLetDecls - def Mathlib.Deriving.ToExpr.mkMutualBlock - def Mathlib.Deriving.ToExpr.mkToExprBody - def Mathlib.Deriving.ToExpr.mkToExprHeader - def Mathlib.Deriving.ToExpr.mkToExprInstanceCmds - def Mathlib.Deriving.ToExpr.mkToExprInstanceHandler - def Mathlib.Deriving.ToExpr.mkToLevelBinders - def Mathlib.Deriving.ToExpr.mkToTypeExpr Modified Mathlib/Tactic/ITauto.lean Modified Mathlib/Tactic/Linarith/Frontend.lean Modified Mathlib/Tactic/Linter/FlexibleLinter.lean Modified Mathlib/Tactic/Linter/HaveLetLinter.lean Modified Mathlib/Tactic/SuccessIfFailWithMsg.lean Modified Mathlib/Tactic/ToExpr.lean Modified Mathlib/Tactic/ToLevel.lean - def Lean.ToLevel.imax - def Lean.ToLevel.max Modified Mathlib/Topology/Category/Profinite/Nobeling.lean Modified MathlibTest/DeriveToExpr.lean Modified MathlibTest/HashCommandLinter.lean Modified MathlibTest/HaveLetLinter.lean Modified MathlibTest/TransImports.lean Modified MathlibTest/toAdditive.lean Modified lake-manifest.json Modified lakefile.lean Modified lean-toolchain Modified scripts/noshake.json 2025-01-05 01:44:23 9837ca9 chore: bot validates lean-toolchain on bump/v4.X.0 branches (#20478) ESTIMATED CHANGES Modified .github/workflows/nightly_detect_failure.yml 2025-01-05 01:44:22 a5ae671 feat: shorthand lemmas for the L1 norm (#20383) These are consistent with the existing lemmas about the L2 norm. ESTIMATED CHANGES Modified Mathlib/Analysis/Matrix.lean Modified Mathlib/Analysis/Normed/Lp/PiLp.lean + theorem PiLp.dist_eq_of_L1 +/- theorem PiLp.dist_eq_of_L2 + theorem PiLp.edist_eq_of_L1 +/- theorem PiLp.edist_eq_of_L2 + theorem PiLp.nndist_eq_of_L1 +/- theorem PiLp.nndist_eq_of_L2 + theorem PiLp.nnnorm_eq_of_L1 +/- theorem PiLp.nnnorm_eq_of_L2 + theorem PiLp.norm_eq_of_L1 +/- theorem PiLp.norm_eq_of_L2 Modified Mathlib/Analysis/Normed/Lp/ProdLp.lean + theorem WithLp.prod_dist_eq_of_L1 + theorem WithLp.prod_edist_eq_of_L1 + theorem WithLp.prod_nndist_eq_of_L1 + theorem WithLp.prod_nnnorm_eq_of_L1 + theorem WithLp.prod_norm_eq_of_L1 2025-01-05 01:09:11 d2a3986 chore: remove unnecessary adaptation notes (#20467) This PR removes following unnecesarry adaptation notes. `simp_rw` to `rw` or `simp` * `Mathlib.Algebra.Group.Support` * `Mathlib.Analysis.Normed.Group.Basic` a local instance is not required anymore due to `set_option maxSynthPendingDepth 2` * `Mathlib.Analysis.NormedSpace.Multilinear.Basic` * `Mathlib.Analysis.NormedSpace.OperatorNorm.Bilinear` * `Mathlib.Analysis.NormedSpace.OperatorNorm.Mul` * `Mathlib.Analysis.NormedSpace.OperatorNorm.NormedSpace` ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Support.lean Modified Mathlib/Analysis/Normed/Group/Basic.lean Modified Mathlib/Analysis/NormedSpace/Multilinear/Basic.lean Modified Mathlib/Analysis/NormedSpace/OperatorNorm/Bilinear.lean Modified Mathlib/Analysis/NormedSpace/OperatorNorm/Mul.lean Modified Mathlib/Analysis/NormedSpace/OperatorNorm/NormedSpace.lean 2025-01-04 21:54:34 1e25efc chore(Algebra/Category/MonCat/Colimits): remove smallness condition (#20473) The file constructed colimits of functors `F : J ⥤ MonCat.{v}` under the assumption that `J` is a `SmallCategory.{v}`. It turns out that the smallness conditions on the `Hom` types of `J` is unnecessary and can simply be removed. ESTIMATED CHANGES Modified Mathlib/Algebra/Category/MonCat/Colimits.lean 2025-01-04 21:33:19 80fa5c2 chore(SetTheory/Ordinal/Arithmetic): `IsLeftCancelAdd Ordinal` (#19888) In general, `AddLeftMono` + `AddLeftReflectLE` + `PartialOrder` → `IsLeftCancelAdd`, but this feels like too niche of a situation to create the general instance. ESTIMATED CHANGES Modified Mathlib/SetTheory/Ordinal/Arithmetic.lean - theorem Ordinal.add_left_cancel Modified Mathlib/SetTheory/Ordinal/FixedPoint.lean 2025-01-04 18:55:47 b43248b feat(Algebra): more on `OrthogonalIdempotents` (#18195) Co-authored-by : @jjaassoonn ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/DirectSum/Idempotents.lean + theorem DirectSum.completeOrthogonalIdempotents_idempotent + theorem DirectSum.decompose_eq_mul_idempotent + def DirectSum.idempotent + theorem DirectSum.isIdempotentElem_idempotent Modified Mathlib/RingTheory/Idempotents.lean 2025-01-04 18:40:15 a0b2b57 feat(Radical): `(radical a).natDegree ≤ a.natDegree` (#20468) ESTIMATED CHANGES Modified Mathlib/RingTheory/Polynomial/Radical.lean + theorem degree_radical_le + theorem natDegree_radical_le 2025-01-04 18:40:14 2c7a747 feat(Polynomial): `(a^n)' = 0` iff `a' = 0` when `n` doesn't divide the characteristic (#20190) For a polynomial $a \in k[X]$ and $n$ with $n \ne 0$ in $k$, $(a^n)' = 0$ if and only if $a' = 0$. ESTIMATED CHANGES Modified Mathlib/Algebra/Polynomial/Derivative.lean + theorem Polynomial.derivative_pow_eq_zero 2025-01-04 18:40:12 83411aa feat(Algebra/Lie): add Lie's theorem (#13480) Prove Lie's theorem, that Lie modules of solvable Lie algebras over algebraically closed fields of characteristic 0 have a common eigenvector for the action of all elements of the Lie algebra. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Lie/LieTheorem.lean + theorem LieModule.exists_nontrivial_weightSpace_of_isSolvable + theorem LieModule.exists_nontrivial_weightSpace_of_lieIdeal + def LieModule.weightSpaceOfIsLieTower Modified Mathlib/Algebra/Lie/Submodule.lean Modified Mathlib/Algebra/Lie/TraceForm.lean +/- theorem LieModule.traceForm_eq_zero_of_isNilpotent Modified Mathlib/Algebra/Lie/Weights/Linear.lean + theorem LieModule.exists_nontrivial_weightSpace_of_isNilpotent Modified Mathlib/LinearAlgebra/Trace.lean Modified Mathlib/RingTheory/Trace/Basic.lean 2025-01-04 18:31:41 a36b4f2 chore(RingTheory/Generators): make algebra instance a def (#14265) Makes the algebra instance `Algebra P.Ring S` for `P : Generators R S` a def and adds the instance attribute locally where needed. This prevents an instance diamond in the case where `S` is a quotient of some polynomial algebra. See https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/Diamond.20in.20.60Algebra.2EGenerators.60. ESTIMATED CHANGES Modified Mathlib/RingTheory/Generators.lean + theorem Algebra.Generators.aeval_val_eq_zero +/- theorem Algebra.Generators.algebraMap_apply - theorem Algebra.Generators.algebraMap_eq +/- theorem Algebra.Generators.algebraMap_surjective +/- theorem Algebra.Generators.ker_eq_ker_aeval_val Modified Mathlib/RingTheory/Kaehler/JacobiZariski.lean Modified Mathlib/RingTheory/Presentation.lean Modified Mathlib/RingTheory/Smooth/StandardSmooth.lean 2025-01-04 15:57:11 0061a57 feat(Topology/Group): Lemmas about profinite group (#20282) A lemma stating a topological group that has a `ContinuousMulEquiv` to a profinite group is profinite. With addition of a lemma `Homeomorph.totallyDisconnectedSpace` ESTIMATED CHANGES Modified Mathlib/Topology/Algebra/Category/ProfiniteGrp/Basic.lean + def ProfiniteGrp.ofContinuousMulEquiv Modified Mathlib/Topology/Homeomorph.lean 2025-01-04 15:06:22 6d2cbb5 feat: the empty set is a topological basis iff the space is empty (#20441) ESTIMATED CHANGES Modified Mathlib/Topology/Bases.lean + theorem TopologicalSpace.isTopologicalBasis_empty 2025-01-04 14:04:14 464a367 chore: make uniqueness of conditionally complete linearly ordered archimedean fields independent of the construction of `Real` (#20242) Also avoid one import of `Analysis/` in `Algebra/`. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Order/Archimedean/Basic.lean + theorem exists_pow_btwn +/- theorem exists_rat_gt + theorem exists_rat_pow_btwn Modified Mathlib/Algebra/Order/CompleteField.lean Modified Mathlib/Algebra/Order/Field/Basic.lean + theorem uniform_continuous_npow_on_bounded Modified Mathlib/Algebra/Order/Ring/Abs.lean + theorem abs_pow_sub_pow_le Modified Mathlib/Analysis/SpecialFunctions/Pow/Real.lean - theorem Real.exists_rat_pow_btwn - theorem Real.exists_rat_pow_btwn_rat - theorem Real.exists_rat_pow_btwn_rat_aux Added Mathlib/Data/Real/CompleteField.lean 2025-01-04 13:18:11 8d47a00 chore: `inherit_doc`s for notations (#20376) ESTIMATED CHANGES Modified Mathlib/Algebra/Symmetrized.lean Modified Mathlib/Analysis/Normed/Affine/Isometry.lean Modified Mathlib/Data/Real/Cardinality.lean Modified Mathlib/Data/Seq/WSeq.lean Modified Mathlib/Data/Stream/Defs.lean Modified Mathlib/Geometry/Manifold/Algebra/Monoid.lean Modified Mathlib/LinearAlgebra/CrossProduct.lean Modified Mathlib/LinearAlgebra/SModEq.lean Modified Mathlib/Logic/Function/Defs.lean Modified Mathlib/MeasureTheory/Integral/IntervalIntegral.lean Modified Mathlib/ModelTheory/LanguageMap.lean Modified Mathlib/ModelTheory/Syntax.lean Modified Mathlib/NumberTheory/Zsqrtd/Basic.lean Modified Mathlib/SetTheory/Cardinal/Continuum.lean Modified Mathlib/Topology/ContinuousMap/Bounded/Basic.lean Modified Mathlib/Topology/Hom/Open.lean Modified Mathlib/Topology/Homotopy/Equiv.lean Modified Mathlib/Topology/MetricSpace/Dilation.lean Modified Mathlib/Topology/MetricSpace/DilationEquiv.lean Modified Mathlib/Topology/Order/Hom/Basic.lean Modified scripts/nolints.json 2025-01-04 12:51:10 e6514e0 chore: split AEEqOfIntegral into two files, one for each integral type (#20405) The proof of `AEMeasurable.ae_eq_of_forall_setLIntegral_eq` is changed significantly since it used to call the same result for the Bochner integral. Everything else is copied as it was. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/MeasureTheory/Decomposition/Lebesgue.lean Modified Mathlib/MeasureTheory/Function/AEEqOfIntegral.lean - theorem MeasureTheory.AEMeasurable.ae_eq_of_forall_setLIntegral_eq - theorem MeasureTheory.ae_const_le_iff_forall_lt_measure_zero - theorem MeasureTheory.ae_eq_of_forall_setLIntegral_eq_of_sigmaFinite - theorem MeasureTheory.ae_eq_of_forall_setLIntegral_eq_of_sigmaFinite₀ - theorem MeasureTheory.ae_le_of_forall_setLIntegral_le_of_sigmaFinite - theorem MeasureTheory.ae_le_of_forall_setLIntegral_le_of_sigmaFinite₀ - theorem MeasureTheory.withDensity_eq_iff - theorem MeasureTheory.withDensity_eq_iff_of_sigmaFinite Added Mathlib/MeasureTheory/Function/AEEqOfLIntegral.lean + theorem MeasureTheory.AEMeasurable.ae_eq_of_forall_setLIntegral_eq + theorem MeasureTheory.ae_const_le_iff_forall_lt_measure_zero + theorem MeasureTheory.ae_eq_of_forall_setLIntegral_eq_of_sigmaFinite + theorem MeasureTheory.ae_eq_of_forall_setLIntegral_eq_of_sigmaFinite₀ + theorem MeasureTheory.ae_le_of_forall_setLIntegral_le_of_sigmaFinite + theorem MeasureTheory.ae_le_of_forall_setLIntegral_le_of_sigmaFinite₀ + theorem MeasureTheory.withDensity_eq_iff + theorem MeasureTheory.withDensity_eq_iff_of_sigmaFinite 2025-01-04 12:41:44 9309505 chore: split Kernel/MeasurableIntegral (#20427) The file is split into two files, one about the Lebesgue integral and one about the Bochner integral. The new MeasurableLIntegral file has around 500 less imports than MeasurableIntegral since it does not import Lp spaces and Bochner integrals. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Probability/Kernel/Composition/Basic.lean Modified Mathlib/Probability/Kernel/Composition/IntegralCompProd.lean Modified Mathlib/Probability/Kernel/MeasurableIntegral.lean - theorem Measurable.lintegral_kernel - theorem Measurable.lintegral_kernel_prod_left' - theorem Measurable.lintegral_kernel_prod_left - theorem Measurable.lintegral_kernel_prod_right'' - theorem Measurable.lintegral_kernel_prod_right' - theorem Measurable.lintegral_kernel_prod_right - theorem Measurable.setLIntegral_kernel - theorem Measurable.setLIntegral_kernel_prod_left - theorem Measurable.setLIntegral_kernel_prod_right - theorem ProbabilityTheory.Kernel.measurable_kernel_prod_mk_left' - theorem ProbabilityTheory.Kernel.measurable_kernel_prod_mk_left - theorem ProbabilityTheory.Kernel.measurable_kernel_prod_mk_left_of_finite - theorem ProbabilityTheory.Kernel.measurable_kernel_prod_mk_right - theorem ProbabilityTheory.Kernel.measurable_lintegral_indicator_const +/- theorem ProbabilityTheory.measurableSet_kernel_integrable Added Mathlib/Probability/Kernel/MeasurableLIntegral.lean + theorem Measurable.lintegral_kernel + theorem Measurable.lintegral_kernel_prod_left' + theorem Measurable.lintegral_kernel_prod_left + theorem Measurable.lintegral_kernel_prod_right'' + theorem Measurable.lintegral_kernel_prod_right' + theorem Measurable.lintegral_kernel_prod_right + theorem Measurable.setLIntegral_kernel + theorem Measurable.setLIntegral_kernel_prod_left + theorem Measurable.setLIntegral_kernel_prod_right + theorem ProbabilityTheory.Kernel.measurable_kernel_prod_mk_left' + theorem ProbabilityTheory.Kernel.measurable_kernel_prod_mk_left + theorem ProbabilityTheory.Kernel.measurable_kernel_prod_mk_left_of_finite + theorem ProbabilityTheory.Kernel.measurable_kernel_prod_mk_right + theorem ProbabilityTheory.Kernel.measurable_lintegral_indicator_const Modified Mathlib/Probability/Kernel/WithDensity.lean 2025-01-04 10:16:07 c8e9d14 feat(MeasureTheory/Group/Measure): add ContinuousMulEquiv.isHaarMeasure_map (#20469) From FLT. ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Group/Measure.lean 2025-01-04 09:33:07 b56ba00 fix(Mathlib.Tactic.CC.Datatypes): `cc` raises panic (#20422) [Zulip thread](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/cc.20bug/near/491678555) The following `cc` raises a panic: ```lean example (n k : ℤ) (hnk : n = 2 * k + 1) (hk : (2 * k + 1) * (2 * k + 1 + 1) = 2 * ((2 * k + 1) * (k + 1))) : n * (n + 1) = 2 * ((2 * k + 1) * (k + 1)) := by cc ``` This is because `args₂[i]!` is evaluated before `compare args₁.size args₂.size` in the following code: ```lean scoped instance : Ord ACApps where compare | .ofExpr a, .ofExpr b => compare a b | .ofExpr _, .apps _ _ => .lt | .apps _ _, .ofExpr _ => .gt | .apps op₁ args₁, .apps op₂ args₂ => compare op₁ op₂ |>.then <| compare args₁.size args₂.size |>.then <| Id.run do for i in [:args₁.size] do let o := compare args₁[i]! args₂[i]! if o != .eq then return o return .eq ``` Usually, if `o₁ ≠ .eq`, `o₂` in `o₁.then o₂` is never evaluated because `Ordering.then` is marked by `@[macro_inline]`, however this doesn't work in this example. I don't know how `@[macro_inline]` works, but this bug can be solved by using `args₂[i]'h` instead of `args₂[i]!`. Also, this new definition is added to `Mathlib.Data.Ordering.Basic`: ```lean /-- `o₁.dthen fun h => o₂(h)` is like `o₁.then o₂` but `o₂` is allowed to depend on `h : o₁ = .eq`. -/ @[macro_inline] def dthen : (o : Ordering) → (o = .eq → Ordering) → Ordering | .eq, f => f rfl | o, _ => o ``` This PR increases imports percentage in `Mathlib.Tactic.CC.Datatypes`, but it doesn't matter because it's only 4 files. ESTIMATED CHANGES Modified Mathlib/Data/Ordering/Basic.lean + def Ordering.dthen Modified Mathlib/Data/Ordering/Lemmas.lean + theorem Ordering.dthen_eq_then Modified Mathlib/Tactic/CC/Datatypes.lean Modified MathlibTest/cc.lean 2025-01-04 08:30:22 a97b21f feat(Probability/Moments): add lemmas about moment generating functions (#19886) Add `mgf_ident_distrib`, `mgf_sum_iid`. These are some of the supporting lemmas we have proved on our way to formalizing the central limit theorem. ESTIMATED CHANGES Modified Mathlib/Probability/Moments.lean + theorem ProbabilityTheory.mgf_congr_of_identDistrib + theorem ProbabilityTheory.mgf_sum_of_identDistrib 2025-01-04 06:32:00 e71f6e9 feat(Algebra/Order/AddGroupWithTop): lemmas about LinearOrderedAddCommGroupWithTop (#18954) ESTIMATED CHANGES Modified Mathlib/Algebra/Order/AddGroupWithTop.lean + theorem LinearOrderedAddCommGroupWithTop.injective_add_left_of_ne_top + theorem LinearOrderedAddCommGroupWithTop.injective_add_right_of_ne_top + theorem LinearOrderedAddCommGroupWithTop.strictMono_add_left_of_ne_top + theorem LinearOrderedAddCommGroupWithTop.strictMono_add_right_of_ne_top + theorem LinearOrderedAddCommGroupWithTop.sub_pos 2025-01-04 05:18:40 29f9a66 chore: bump toolchain to v4.15.0 (#20461) ESTIMATED CHANGES Modified lake-manifest.json Modified lakefile.lean Modified lean-toolchain 2025-01-04 04:52:50 ae96bfc chore: update Mathlib dependencies 2025-01-04 (#20463) This PR updates the Mathlib dependencies. ESTIMATED CHANGES Modified lake-manifest.json Modified lean-toolchain 2025-01-03 23:29:26 9b434d1 fix: make `Prod` projection delaborators respond to options, add option to disable (#20455) Adds option `pp.numericProj.prod` to configure whether or not to use `x.1` and `x.2` rather than `x.fst` and `x.snd`. Fixes the delaborators to make sure they respond to `pp.fieldNotation` and `pp.explicit`. ESTIMATED CHANGES Modified Mathlib/Data/Prod/Basic.lean + def Prod.PrettyPrinting.delabProdFst + def Prod.PrettyPrinting.delabProdSnd + def Prod.PrettyPrinting.getPPNumericProjProd - def Prod.delabProdFst - def Prod.delabProdSnd Modified MathlibTest/delaborators.lean 2025-01-03 23:29:25 f87a135 chore(Algebra): Improve attribute generation (#20451) * Teach `to_additive` about `oneLE` -> `nonneg` and `square` -> `even` * Make `simps` lemma generated for the `carrier` projection consistently `coe_*` * Clarify some documentation Moves: * `\*_coe` -> `coe_\*` where generated by `@[simps]` * `IsOpenMap.functor_obj_coe` -> `IsOpenMap.coe_functor_obj` * `AlgebraicGeometry.Scheme.Hom.opensRange_coe` -> `AlgebraicGeometry.Scheme.Hom.coe_opensRange` ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Subsemigroup/Defs.lean Modified Mathlib/Algebra/Order/Group/Cone.lean Modified Mathlib/Algebra/Order/Monoid/Submonoid.lean +/- theorem Submonoid.mem_oneLE Modified Mathlib/AlgebraicGeometry/Cover/Open.lean Modified Mathlib/AlgebraicGeometry/Morphisms/Separated.lean Modified Mathlib/AlgebraicGeometry/Noetherian.lean Modified Mathlib/AlgebraicGeometry/OpenImmersion.lean Modified Mathlib/AlgebraicGeometry/RationalMap.lean Modified Mathlib/AlgebraicGeometry/Restrict.lean Modified Mathlib/Geometry/RingedSpace/OpenImmersion.lean Modified Mathlib/Geometry/RingedSpace/PresheafedSpace/Gluing.lean Modified Mathlib/ModelTheory/Substructures.lean Modified Mathlib/Order/UpperLower/Basic.lean Modified Mathlib/Tactic/ToAdditive/Frontend.lean Modified Mathlib/Topology/Category/TopCat/Opens.lean Modified Mathlib/Topology/Sets/Closeds.lean Modified Mathlib/Topology/Sets/Compacts.lean Modified Mathlib/Topology/Sets/Opens.lean Modified Mathlib/Topology/Sets/Order.lean 2025-01-03 23:07:04 166dc0d feat(Polynomial): `(C a * p).degree = p.degree` if `a * p.leadingCoeff ≠ 0` (#20446) From GrowthInGroups (LeanCamCombi) ESTIMATED CHANGES Modified Mathlib/Algebra/Polynomial/Degree/Lemmas.lean + theorem Polynomial.degree_C_mul_of_mul_ne_zero - theorem Polynomial.natDegree_C_mul_eq_of_mul_ne_zero +/- theorem Polynomial.natDegree_C_mul_le + theorem Polynomial.natDegree_C_mul_of_mul_ne_zero +/- theorem Polynomial.natDegree_mul_C_le Modified Mathlib/Algebra/Polynomial/Taylor.lean 2025-01-03 22:22:58 155a0a9 feat: add `ENNReal.finStronglyMeasurable_of_measurable` (#20404) A measurable function with finite Lebesgue integral can be approximated by simple functions whose support has finite measure. I created a new file StronglyMeasurable/ENNReal instead of using StronglyMeasurable/Lemmas because those lemmas will be useful in places that should not import things like the Bochner integral. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/MeasureTheory/Function/SimpleFunc.lean + theorem MeasureTheory.SimpleFunc.measure_support_lt_top + theorem MeasureTheory.SimpleFunc.measure_support_lt_top_of_lintegral_ne_top + theorem MeasureTheory.SimpleFunc.tendsto_eapprox Modified Mathlib/MeasureTheory/Function/SimpleFuncDenseLp.lean - theorem MeasureTheory.SimpleFunc.measure_support_lt_top Added Mathlib/MeasureTheory/Function/StronglyMeasurable/ENNReal.lean + theorem ENNReal.aefinStronglyMeasurable_of_aemeasurable + theorem ENNReal.finStronglyMeasurable_of_measurable Modified Mathlib/MeasureTheory/Integral/Lebesgue.lean + theorem MeasureTheory.lintegral_eapprox_le_lintegral + theorem MeasureTheory.measure_support_eapprox_lt_top 2025-01-03 18:41:13 e4220eb doc(Algebra/Lie/Weights/Basic): fix typo (#20450) ESTIMATED CHANGES Modified Mathlib/Algebra/Lie/Weights/Basic.lean 2025-01-03 18:26:13 2e72e43 chore(1000): remove `identifiers` (#20445) This key is not recognized by CI ESTIMATED CHANGES Modified docs/1000.yaml 2025-01-03 17:09:26 fbe1f6b feat: add sumPiEquivProdPi and piUnique (#20195) From FLT. Add topological and algebraic versions of `Equiv.sumPiEquivProdPi` and `Equiv.piUnique`. ESTIMATED CHANGES Modified Mathlib/Algebra/Module/Equiv/Basic.lean + def LinearEquiv.piUnique + def LinearEquiv.sumPiEquivProdPi Modified Mathlib/Topology/Algebra/Module/Equiv.lean + def ContinuousLinearEquiv.piCongrLeft + def ContinuousLinearEquiv.piUnique + def ContinuousLinearEquiv.sumPiEquivProdPi Modified Mathlib/Topology/Basic.lean + theorem Equiv.continuous_symm_iff + theorem Equiv.isOpenMap_symm_iff Modified Mathlib/Topology/Homeomorph.lean + def Homeomorph.piUnique + def Homeomorph.sumPiEquivProdPi 2025-01-03 14:55:08 0571c82 feat: add fst_compProd_apply (#20429) Extract from the proof of `fst_compProd` a new lemma that applies more generally than Markov kernels. ESTIMATED CHANGES Modified Mathlib/Probability/Kernel/Composition/Basic.lean + theorem ProbabilityTheory.Kernel.fst_compProd_apply 2025-01-03 14:42:58 478f8ea chore: use unsigned measures for Lebesgue decomposition (#20400) Signed measures require around 500 more imports than unsigned measures, because they use Bochner integration. As there is no particular reason to use signed measures to prove the Lebesgue decomposition theorem, we use unsigned measures instead. This PR does not have a big impact on imports, since the file also contains other lemmas about integrability. The effect will be seen in a future PR splitting those out. ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Decomposition/Lebesgue.lean Modified Mathlib/MeasureTheory/Decomposition/UnsignedHahn.lean +/- theorem MeasureTheory.hahn_decomposition 2025-01-03 14:02:02 3e65a9f feat: Two lemmas on divisibility and coprimality of `expand` (#20143) ESTIMATED CHANGES Modified Mathlib/Algebra/Polynomial/Expand.lean + theorem Polynomial.contract_C + theorem Polynomial.contract_add + theorem Polynomial.contract_mul_expand + theorem Polynomial.isCoprime_expand 2025-01-03 13:44:58 aba55dc feat: some results about roots of linear polynomials (#20386) We prove some results for roots of linear polynomials. ESTIMATED CHANGES Modified Mathlib/Algebra/Polynomial/FieldDivision.lean + theorem Polynomial.roots_C_mul_X_add_C + theorem Polynomial.roots_C_mul_X_sub_C + theorem Polynomial.roots_degree_eq_one Modified Mathlib/Algebra/Polynomial/Roots.lean + theorem Polynomial.roots_C_mul_X_add_C_of_IsUnit + theorem Polynomial.roots_C_mul_X_sub_C_of_IsUnit + theorem Polynomial.roots_X_add_C 2025-01-03 13:31:10 e3a43bb chore: fix the `Integrable[mα]` notation (#20434) It was broken in #20122. From GibbsMeasure ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Function/L1Space.lean 2025-01-03 12:52:17 860c303 feat: add `Prod.isUnit_iff` (#20432) ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Prod.lean + theorem Prod.isUnit_iff 2025-01-03 12:52:16 37515f7 feat(Algebra/Group): Units in pi types (#20279) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Group/Pi/Units.lean + theorem IsUnit.val_inv_apply + def MulEquiv.piUnits + theorem Pi.isUnit_iff 2025-01-03 12:20:40 8f95bde feat(Order/Interval/Finset): Lemmas for intervals with bot/top (#20360) Add some lemmas on intervals containing bot / top elements, mirroring existing results in `Order/Interval/Set/Basic.lean`. ESTIMATED CHANGES Modified Mathlib/Order/Interval/Finset/Basic.lean + theorem Finset.Icc_bot + theorem Finset.Icc_bot_top + theorem Finset.Icc_top + theorem Finset.Ici_bot + theorem Finset.Ici_top + theorem Finset.Ico_bot + theorem Finset.Iic_bot + theorem Finset.Iic_top + theorem Finset.Iio_bot + theorem Finset.Iio_eq_empty + theorem Finset.Ioc_top + theorem Finset.Ioi_eq_empty + theorem Finset.Ioi_top 2025-01-03 11:53:11 a8f082c chore(CategoryTheory/Shift): fix NatTrans.CommShift (#20364) This PR improves some proofs about `NatTrans.CommShift` (the commutation of a natural transformation to shifts). The field `comm'` of `NatTrans.CommShift` had an unnecessary `'` in it, it is renamed `shift_comm`, and API lemmas are moved from `NatTrans.CommShift` to the `NatTrans` namespace (where `comm` becomes `shift_comm` and `comm_app` becomes `shift_app_comm`). ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Shift/Adjunction.lean Modified Mathlib/CategoryTheory/Shift/CommShift.lean - theorem CategoryTheory.NatTrans.CommShift.app_shift - theorem CategoryTheory.NatTrans.CommShift.comm - theorem CategoryTheory.NatTrans.CommShift.comm_app - theorem CategoryTheory.NatTrans.CommShift.shift_app + theorem CategoryTheory.NatTrans.app_shift + theorem CategoryTheory.NatTrans.shift_app + theorem CategoryTheory.NatTrans.shift_app_comm + theorem CategoryTheory.NatTrans.shift_comm Modified Mathlib/CategoryTheory/Shift/Quotient.lean Modified Mathlib/CategoryTheory/Shift/SingleFunctors.lean Modified Mathlib/CategoryTheory/Triangulated/Functor.lean 2025-01-03 11:53:10 894f765 feat: `fun ω ↦ exp (t * X ω)` is integrable if `X` is bounded above (#20017) I extracted a part of the [pull request of Hoeffding's lemma](https://github.com/leanprover-community/mathlib4/pull/18091). ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Function/L1Space.lean + theorem MeasureTheory.HasFiniteIntegral.of_mem_Icc + theorem MeasureTheory.Integrable.of_mem_Icc Modified Mathlib/Probability/Moments.lean + theorem ProbabilityTheory.aemeasurable_exp_mul + theorem ProbabilityTheory.integrable_exp_mul_of_le 2025-01-03 11:02:38 2c04291 feat: A monotone function on a segment belongs to all `L^p` spaces (#20419) Currently, we have the fact that a monotone function on a segment is integrable. This PR generalizes it to all `L^p` spaces (with the same proof), and deduces the integrability result from the general one. From the Carleson project ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Function/LocallyIntegrable.lean + theorem AntitoneOn.memℒp_isCompact + theorem AntitoneOn.memℒp_of_measure_ne_top + theorem AntitoneOn.memℒp_top + theorem MonotoneOn.memℒp_isCompact + theorem MonotoneOn.memℒp_of_measure_ne_top + theorem MonotoneOn.memℒp_top Modified Mathlib/MeasureTheory/Function/LpSeminorm/Basic.lean + theorem MeasureTheory.memℒp_measure_zero Modified Mathlib/MeasureTheory/Function/LpSeminorm/CompareExp.lean + theorem MeasureTheory.Memℒp.mul' + theorem MeasureTheory.Memℒp.mul + theorem MeasureTheory.Memℒp.mul_of_top_left' + theorem MeasureTheory.Memℒp.mul_of_top_left + theorem MeasureTheory.Memℒp.mul_of_top_right' + theorem MeasureTheory.Memℒp.mul_of_top_right Modified Mathlib/MeasureTheory/Function/StronglyMeasurable/Basic.lean 2025-01-03 11:02:37 150f720 feat(Algebra/Lie): add `LieTower` typeclass abstracting the Leibniz rule (#20403) This PR is a preparation for follow-up work on Lie's theorem. In the proof of Lie's theorem, there are a number of different ways to infer bracket actions, and not all of them allowed rewriting by the `leibniz_lie` lemma. So the proof would be massaging terms of Lie ideals into terms of the ambient Lie algebra, etc... By abstracting this lemma, and providing suitable instances, we can now simply rewrite with `leibniz_lie` without the massaging. ESTIMATED CHANGES Modified Mathlib/Algebra/Lie/Basic.lean +/- theorem leibniz_lie + theorem lie_swap_lie Modified Mathlib/Algebra/Lie/Subalgebra.lean Modified Mathlib/Algebra/Lie/Submodule.lean 2025-01-03 11:02:36 e2c77f7 fix: avoid using custom parser combinators (#20355) These are not supported unless `enableInitializersExecution` is called, and various downstream scripts do not call this. https://leanprover.zulipchat.com/#narrow/channel/270676-lean4/topic/lean4checker.20failure/near/486191171 has some context for the underlying issue, which seems to be that Lean tries to finalize environment extensions even if initializers are disabled, leading to crashes if those extensions (such as the parser alias table) expect initializers to have run. To prove this works, this removes `Lean.enableInitializersExecution` from the script to check the yaml files. This is what we will want to do anyway after https://github.com/leanprover/lean4/pull/6325 lands, as this script should not need to run any extensions. ESTIMATED CHANGES Modified Mathlib/Analysis/InnerProductSpace/PiL2.lean Modified Mathlib/Util/Superscript.lean + def Mathlib.Tactic.subscriptTerm + def Mathlib.Tactic.superscriptTerm Modified scripts/check-yaml.lean 2025-01-03 11:02:35 ef4bb8a chore: turn left and right transversals from sets to types (#20041) The sets both duplicate `Subgroup.IsComplement`. ESTIMATED CHANGES Modified Mathlib/GroupTheory/Complement.lean + theorem Subgroup.IsComplement.card_left + theorem Subgroup.IsComplement.card_right + theorem Subgroup.IsComplement.finite_left_iff + theorem Subgroup.IsComplement.finite_right_iff + theorem Subgroup.IsComplement.inv_mul_toLeftFun_mem + theorem Subgroup.IsComplement.inv_toLeftFun_mul_mem + theorem Subgroup.IsComplement.leftQuotientEquiv_apply + theorem Subgroup.IsComplement.mk''_rightQuotientEquiv + theorem Subgroup.IsComplement.mul_inv_toRightFun_mem + theorem Subgroup.IsComplement.quotientGroupMk_leftQuotientEquiv + theorem Subgroup.IsComplement.rightQuotientEquiv_apply + theorem Subgroup.IsComplement.toRightFun_mul_inv_mem - theorem Subgroup.MemLeftTransversals.finite_iff - theorem Subgroup.MemLeftTransversals.inv_mul_toFun_mem - theorem Subgroup.MemLeftTransversals.inv_toFun_mul_mem - theorem Subgroup.MemLeftTransversals.mk''_toEquiv - theorem Subgroup.MemLeftTransversals.toEquiv_apply - theorem Subgroup.MemRightTransversals.finite_iff - theorem Subgroup.MemRightTransversals.mk''_toEquiv - theorem Subgroup.MemRightTransversals.mul_inv_toFun_mem - theorem Subgroup.MemRightTransversals.toEquiv_apply - theorem Subgroup.MemRightTransversals.toFun_mul_inv_mem + theorem Subgroup.exists_isComplement_left + theorem Subgroup.exists_isComplement_right + theorem Subgroup.isComplement_iff_existsUnique_inv_mul_mem + theorem Subgroup.isComplement_iff_existsUnique_mul_inv_mem + theorem Subgroup.isComplement_range_left + theorem Subgroup.isComplement_range_right + theorem Subgroup.isComplement_subgroup_left_iff_bijective + theorem Subgroup.isComplement_subgroup_left_iff_existsUnique_quotientMk'' + theorem Subgroup.isComplement_subgroup_right_iff_bijective + theorem Subgroup.isComplement_subgroup_right_iff_existsUnique_quotientGroupMk +/- theorem Subgroup.smul_apply_eq_smul_apply_inv_smul + theorem Subgroup.smul_leftQuotientEquiv - theorem Subgroup.smul_toEquiv - theorem Subgroup.smul_toFun + theorem Subgroup.smul_toLeftFun Modified Mathlib/GroupTheory/CosetCover.lean Modified Mathlib/GroupTheory/HNNExtension.lean Modified Mathlib/GroupTheory/PushoutI.lean Modified Mathlib/GroupTheory/Schreier.lean +/- theorem Subgroup.closure_mul_image_eq +/- theorem Subgroup.closure_mul_image_eq_top Modified Mathlib/GroupTheory/SchurZassenhaus.lean Modified Mathlib/GroupTheory/Transfer.lean +/- def Subgroup.transferTransversal 2025-01-03 11:02:33 08ad162 feat(Probability): proper kernels (#19434) Define proper kernels, which are self-kernels which can meaningfully be restricted to an event. From GibbsMeasure ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Probability/Kernel/Proper.lean + theorem ProbabilityTheory.Kernel.IsProper.lintegral_mul + theorem ProbabilityTheory.Kernel.IsProper.setLIntegral_eq_bind + theorem ProbabilityTheory.Kernel.IsProper.setLIntegral_eq_indicator_mul_lintegral + theorem ProbabilityTheory.Kernel.IsProper.setLIntegral_inter_eq_indicator_mul_setLIntegral + structure ProbabilityTheory.Kernel.IsProper + theorem ProbabilityTheory.Kernel.isProper_iff_inter_eq_indicator_mul + theorem ProbabilityTheory.Kernel.isProper_iff_restrict_eq_indicator_smul 2025-01-03 11:02:32 3997f6f feat: `f '' sᶜ = range f \ f '' s` when `f` is injective (#19030) From GrowthInGroups (LeanCamCombi) ESTIMATED CHANGES Modified Mathlib/Data/Set/Image.lean + theorem Set.image_compl_eq_range_diff_image +/- theorem Set.range_diff_image 2025-01-03 09:11:20 9082fa7 chore(Linter/UnusedTactic): do not exclude `change` from linted tactics (#20412) An earlier implementation of the `unusedTactic` linter tested for definitional equality. For this reason, the tactic `change` was excluded from the list of tactics that the linter inspected. This PR removes the custom exception on `change`, since the linter actually checks changes in the metavariables themselves, rather than definitional equality of the goals. As a consequence, some `change`s present in mathlib can be removed: in all cases, I verified that the infoview shows no difference before and after `change`. [Zulip](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Persistent.20.23allow_unused_tactic) ESTIMATED CHANGES Modified Mathlib/Algebra/EuclideanDomain/Defs.lean Modified Mathlib/Algebra/Polynomial/RingDivision.lean Modified Mathlib/Algebra/Ring/WithZero.lean Modified Mathlib/CategoryTheory/Monad/Comonadicity.lean Modified Mathlib/CategoryTheory/Monad/Monadicity.lean Modified Mathlib/CategoryTheory/Sites/Sieves.lean Modified Mathlib/Combinatorics/SimpleGraph/Regularity/Chunk.lean Modified Mathlib/GroupTheory/DoubleCoset.lean Modified Mathlib/NumberTheory/Padics/PadicNumbers.lean Modified Mathlib/Tactic/Linter/UnusedTactic.lean Modified Mathlib/Topology/Partial.lean Modified MathlibTest/UnusedTactic.lean Modified MathlibTest/apply_fun.lean 2025-01-03 07:21:52 b2158cc feat(Algebra/Group/Even): "Advanced" lemmas about even elements. (#20272) Add construction of subgroup of even elements / squares. Add result that squares (`IsSquare`) are non-negative. These results cannot be added to `Mathlib.Algebra.Group.Even` directly because of import restrictions. This PR is split off from #16094 ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Group/Subgroup/Even.lean + theorem Subgroup.coe_squareIn + theorem Subgroup.mem_squareIn + def Subgroup.squareIn + theorem Subgroup.squareIn_toSubmonoid + theorem Submonoid.coe_squareIn + theorem Submonoid.mem_squareIn + def Submonoid.squareIn + theorem Submonoid.squareIn_toSubsemigroup + theorem Subsemigroup.coe_squareIn + theorem Subsemigroup.mem_squareIn + def Subsemigroup.squareIn Modified Mathlib/Algebra/Order/Ring/Basic.lean + theorem IsSquare.nonneg Modified Mathlib/Tactic/ToAdditive/Frontend.lean 2025-01-03 07:04:03 d01dbf9 chore(Algebra/Lie): rename theorems for consistency (#20408) Cleaning up issues raised in #20353 Moves: lieIdealSubalgebra -> LieIdeal.toLieSubalgebra LieIdeal.coe_toLieSubalgebra_toSubmodule -> LieIdeal.toLieSubalgebra_toSubmodule ESTIMATED CHANGES Modified Mathlib/Algebra/Lie/Engel.lean Modified Mathlib/Algebra/Lie/InvariantForm.lean Modified Mathlib/Algebra/Lie/Semisimple/Basic.lean Modified Mathlib/Algebra/Lie/Submodule.lean - theorem LieIdeal.coe_toLieSubalgebra_toSubmodule + def LieIdeal.toLieSubalgebra + theorem LieIdeal.toLieSubalgebra_toSubmodule - def lieIdealSubalgebra Modified Mathlib/Algebra/Lie/TraceForm.lean 2025-01-03 05:55:58 add4d4a chore(LinearAlgebra/Span/Basic): move/add lemmas about span_singleton (#20397) ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/Span/Basic.lean +/- theorem Submodule.covBy_span_singleton_sup +/- theorem Submodule.disjoint_span_singleton' +/- theorem Submodule.disjoint_span_singleton + theorem Submodule.disjoint_span_singleton_of_not_mem + theorem Submodule.isCompl_span_singleton_of_isCoatom_of_not_mem +/- theorem Submodule.wcovBy_span_singleton_sup 2025-01-03 00:04:11 7bbc345 docs(Mathlib/NumberTheory/Bernoulli): update doc (#20377) ESTIMATED CHANGES Modified Mathlib/NumberTheory/Bernoulli.lean 2025-01-02 23:22:49 ba6854b chore(SetTheory/Game/Ordinal): make `Ordinal.toGame` an order embedding (#19417) The original reasoning against doing this was that it would disable dot notation, which is no longer an issue in the latest version of Lean. ESTIMATED CHANGES Modified Mathlib/SetTheory/Game/Birthday.lean Modified Mathlib/SetTheory/Game/Ordinal.lean + theorem Ordinal.mk_toPGame +/- theorem Ordinal.toGame_inj +/- theorem Ordinal.toGame_le_iff +/- theorem Ordinal.toGame_lf_iff +/- theorem Ordinal.toGame_lt_iff 2025-01-02 22:11:06 f36aaf3 chore(Order/Atoms): Add IsAtom.bot_lt and IsCoatom.lt_top (#20396) ESTIMATED CHANGES Modified Mathlib/Order/Atoms.lean + theorem IsAtom.bot_lt + theorem IsCoatom.lt_top 2025-01-02 22:00:59 ec3b006 chore(Algebra/Lie/Solvable): add instance IsSolvable R A for LieIdeal R L (#20395) ESTIMATED CHANGES Modified Mathlib/Algebra/Lie/Solvable.lean - theorem LieHom.isSolvable_range 2025-01-02 20:35:53 0b74e84 refactor(NumberTheory/Ostrowski): use `AbsoluteValue` instead of `MulRingNorm` (#20362) This PR * replaces `MulRingNorm R` by `AbsoluteValue R ℝ` in the material developed in `Mathlib.NumberTheory.Ostrowski` * does some cleanup (naming convention, remove redundant name parts etc.) * and also some golfing... In addition, it * creates a new folder `Mathlib.Algebra.Order.AbsoluteValue` * moves `Mathlib.Algebra.Order.AbsoluteValue` to `Mathlib.Algebra.Order.AbsoluteValue.Basic` and `Mathlib.Algebra.Order.EuclideanAbsoluteValue`to `Mathlib.Algebra.Order.AbsoluteValue.Euclidean` * adds some API for `AbsoluteValue` to match `MulRingNorm` (in `Mathlib.Algebra.Order.AbsoluteValue.Basic`) * adds a new file `Mathlib.Algebra.Order.AbsoluteValue.Equivalence` with material on equivalence of real-valued absolute values. See the [discussion](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/MulRingNorm.20vs.2E.20AbsoluteValue/near/491324423) on Zulip. ESTIMATED CHANGES Modified Mathlib.lean Renamed Mathlib/Algebra/Order/AbsoluteValue.lean to Mathlib/Algebra/Order/AbsoluteValue/Basic.lean + theorem AbsoluteValue.apply_natAbs_eq + theorem AbsoluteValue.apply_nat_le_self + theorem AbsoluteValue.eq_on_nat_iff_eq_on_int + theorem AbsoluteValue.listSum_le + def AbsoluteValue.trivial: + theorem AbsoluteValue.trivial_apply Added Mathlib/Algebra/Order/AbsoluteValue/Equivalence.lean + def AbsoluteValue.Equiv + theorem AbsoluteValue.eq_trivial_of_equiv_trivial + theorem AbsoluteValue.equiv_refl + theorem AbsoluteValue.equiv_symm + theorem AbsoluteValue.equiv_trans Renamed Mathlib/Algebra/Order/EuclideanAbsoluteValue.lean to Mathlib/Algebra/Order/AbsoluteValue/Euclidean.lean Modified Mathlib/Algebra/Order/BigOperators/Ring/Finset.lean Modified Mathlib/Algebra/Order/CauSeq/Basic.lean Modified Mathlib/Algebra/Polynomial/Degree/CardPowDegree.lean Modified Mathlib/Analysis/Normed/Ring/WithAbs.lean Modified Mathlib/Data/Int/AbsoluteValue.lean Modified Mathlib/NumberTheory/ClassNumber/AdmissibleAbsoluteValue.lean Modified Mathlib/NumberTheory/Ostrowski.lean + theorem Rat.AbsoluteValue.apply_le_sum_digits + theorem Rat.AbsoluteValue.eq_on_nat_iff_eq + theorem Rat.AbsoluteValue.eq_one_of_not_dvd + theorem Rat.AbsoluteValue.equiv_on_nat_iff_equiv + theorem Rat.AbsoluteValue.equiv_padic_of_bounded + theorem Rat.AbsoluteValue.equiv_real_of_unbounded + theorem Rat.AbsoluteValue.equiv_real_or_padic + theorem Rat.AbsoluteValue.exists_minimal_nat_zero_lt_and_lt_one + theorem Rat.AbsoluteValue.exists_pos_eq_pow_neg + theorem Rat.AbsoluteValue.is_prime_of_minimal_nat_zero_lt_and_lt_one + theorem Rat.AbsoluteValue.le_pow_log + theorem Rat.AbsoluteValue.not_real_equiv_padic + theorem Rat.AbsoluteValue.one_lt_of_not_bounded + def Rat.AbsoluteValue.padic + theorem Rat.AbsoluteValue.padic_eq_padicNorm + theorem Rat.AbsoluteValue.padic_le_one + def Rat.AbsoluteValue.real + theorem Rat.AbsoluteValue.real_eq_abs - theorem Rat.MulRingNorm.eq_on_nat_iff_eq - theorem Rat.MulRingNorm.eq_on_nat_iff_eq_on_Int - theorem Rat.MulRingNorm.equiv_on_nat_iff_equiv - theorem Rat.MulRingNorm.exists_minimal_nat_zero_lt_mulRingNorm_lt_one - theorem Rat.MulRingNorm.exists_pos_mulRingNorm_eq_pow_neg - theorem Rat.MulRingNorm.is_prime_of_minimal_nat_zero_lt_mulRingNorm_lt_one - theorem Rat.MulRingNorm.le_of_mulRingNorm_eq - theorem Rat.MulRingNorm.mulRingNorm_apply_le_sum_digits - theorem Rat.MulRingNorm.mulRingNorm_eq_one_of_not_dvd - theorem Rat.MulRingNorm.mulRingNorm_eq_padic_norm - theorem Rat.MulRingNorm.mulRingNorm_equiv_padic_of_bounded - theorem Rat.MulRingNorm.mulRingNorm_equiv_standard_of_unbounded - theorem Rat.MulRingNorm.mulRingNorm_equiv_standard_or_padic - theorem Rat.MulRingNorm.mulRingNorm_le_mulRingNorm_pow_log - def Rat.MulRingNorm.mulRingNorm_padic - def Rat.MulRingNorm.mulRingNorm_real - theorem Rat.MulRingNorm.mul_ring_norm_eq_abs - theorem Rat.MulRingNorm.one_lt_of_not_bounded Modified Mathlib/Topology/Algebra/Ring/Basic.lean Modified Mathlib/Topology/UniformSpace/AbsoluteValue.lean Modified MathlibTest/ValuedCSP.lean 2025-01-02 20:19:58 670870b feat(Probability/Distributions/Gaussian): the mgf of a gaussian (#19896) Compute the mgf of a gaussian. ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Measure/MeasureSpace.lean + theorem AEMeasurable.of_map_ne_zero Modified Mathlib/Probability/Distributions/Gaussian.lean + theorem ProbabilityTheory.cgf_gaussianReal + theorem ProbabilityTheory.mgf_gaussianReal Modified Mathlib/Probability/Moments.lean + theorem ProbabilityTheory.mgf_add_const + theorem ProbabilityTheory.mgf_const_add + theorem ProbabilityTheory.mgf_dirac + theorem ProbabilityTheory.mgf_id_map 2025-01-02 19:57:24 cc5b32e feat(Algebra/Colimit): the directed system of finitely generated submodules (#20264) We show that every module is the direct limit of its finitely generated submodules. As a consequence of this and the fact that tensor products preserves colimits, we show that if `M` and `P` are arbitrary modules and `N` is a finitely generated submodule of a module `P`, then two elements of `N ⊗ M` have the same image in `P ⊗ M` if and only if they already have the same image in `N' ⊗ M` for some finitely generated submodule `N' ≥ N`. This is the theorem `Submodule.FG.exists_rTensor_fg_inclusion_eq`. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Colimit/Finiteness.lean + theorem Module.fgSystem.equiv_comp_of + def Module.fgSystem Modified Mathlib/Algebra/Colimit/Module.lean + theorem Module.DirectLimit.exists_eq_of_of_eq +/- theorem Module.DirectLimit.of.zero_exact Modified Mathlib/Algebra/Colimit/Ring.lean Added Mathlib/Algebra/Colimit/TensorProduct.lean + theorem Submodule.FG.exists_rTensor_fg_inclusion_eq Modified Mathlib/LinearAlgebra/TensorProduct/DirectLimit.lean + theorem TensorProduct.directLimitLeft_rTensor_of 2025-01-02 19:57:23 223f9c7 feat: the product of two sums in a nonarchimedean ring (#12618) We prove that in a nonarchimedean ring, $$\sum_{(i, j) \in I \times J} a_i b_j = \left(\sum_{i \in I} a_i \right)\left(\sum_{j \in J} b_j\right),$$ provided that both sums on the right-hand side converge unconditionally. Also tidy some redundant `()`s from previous PRs. ESTIMATED CHANGES Modified Mathlib/Topology/Algebra/InfiniteSum/Nonarchimedean.lean + theorem HasSum.mul_of_nonarchimedean + theorem Summable.mul_of_nonarchimedean + theorem tsum_mul_tsum_of_nonarchimedean Modified Mathlib/Topology/Algebra/Monoid.lean 2025-01-02 19:27:49 f64e251 chore(LinearAlgebra/Span/Basic): add toSpanNonzeroSingleton_symm_apply_smul (#20399) ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/Span/Basic.lean + theorem LinearEquiv.toSpanNonzeroSingleton_symm_apply_smul 2025-01-02 18:44:09 f8c0388 chore(Analysis/SpecialFunctions/Pow/Complex): fix lemma name (#20406) ESTIMATED CHANGES Modified Mathlib/Analysis/SpecialFunctions/Pow/Complex.lean - theorem Complex.cpow_natCast_add_one_ne_zero + theorem Complex.natCast_add_one_cpow_ne_zero Modified Mathlib/NumberTheory/LSeries/Basic.lean Modified Mathlib/NumberTheory/LSeries/Injectivity.lean 2025-01-02 17:45:51 b65f33f feat: add `f =o[𝕜;l] g` notation for `IsLittleOTVS` (#20305) This makes it easier to copy over API using `f =o[l] g` from `IsLittleO`. This also changes the argument order to be consistent with `IsLittleO`. ESTIMATED CHANGES Modified Mathlib/Analysis/Asymptotics/TVS.lean Modified Mathlib/Analysis/Calculus/FDeriv/Basic.lean 2025-01-02 14:27:34 e0a3be5 refactor(ModelTheory): restate iAlls for a more convenient statement (#20161) ESTIMATED CHANGES Modified Mathlib/FieldTheory/AxGrothendieck.lean Modified Mathlib/ModelTheory/Semantics.lean +/- theorem FirstOrder.Language.BoundedFormula.realize_iAlls +/- theorem FirstOrder.Language.BoundedFormula.realize_iExs Modified Mathlib/ModelTheory/Syntax.lean 2025-01-02 13:01:02 df255e2 chore(RingTheory/Artinian): Split out `Artinian/Ring.lean` (#20350) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Lie/Derivation/Basic.lean Modified Mathlib/Algebra/Lie/Nilpotent.lean Modified Mathlib/Algebra/Lie/Quotient.lean Modified Mathlib/Algebra/Lie/Subalgebra.lean Modified Mathlib/Algebra/Lie/Submodule.lean Modified Mathlib/Algebra/Lie/TensorProduct.lean Modified Mathlib/Algebra/Lie/Weights/Basic.lean Modified Mathlib/LinearAlgebra/Eigenspace/Zero.lean Modified Mathlib/LinearAlgebra/Matrix/ZPow.lean Modified Mathlib/LinearAlgebra/Semisimple.lean Added Mathlib/RingTheory/Artinian/Instances.lean + theorem IsArtinianRing.isSemisimpleRing_of_isReduced Renamed Mathlib/RingTheory/Artinian.lean to Mathlib/RingTheory/Artinian/Module.lean + theorem IsArtinianRing.isField_of_isDomain - theorem IsArtinianRing.isNilpotent_jacobson_bot - theorem IsArtinianRing.isSemisimpleRing_of_isReduced - theorem IsArtinianRing.localization_artinian - theorem IsArtinianRing.localization_surjective Added Mathlib/RingTheory/Artinian/Ring.lean + theorem IsArtinianRing.isNilpotent_jacobson_bot + theorem IsArtinianRing.localization_artinian + theorem IsArtinianRing.localization_surjective Modified Mathlib/RingTheory/FiniteLength.lean Modified Mathlib/RingTheory/Jacobson/Ring.lean Modified Mathlib/RingTheory/Noetherian/Defs.lean + theorem LinearMap.eventually_disjoint_ker_pow_range_pow + theorem LinearMap.eventually_iSup_ker_pow_eq Modified Mathlib/RingTheory/Noetherian/Orzech.lean - theorem LinearMap.eventually_disjoint_ker_pow_range_pow - theorem LinearMap.eventually_iSup_ker_pow_eq Modified Mathlib/RingTheory/Regular/RegularSequence.lean Modified Mathlib/RingTheory/Unramified/Field.lean 2025-01-02 12:45:36 6d8ce69 chore(technical-debt-metrics): Add ofNat to technical debt metrics (#20394) ESTIMATED CHANGES Modified scripts/technical-debt-metrics.sh 2025-01-02 12:06:47 041d59b chore(FreeAbelianGroup): don't `dsimp [OfNat.ofNat]` (#20387) There is no need to do this, as there are better lemmas available (at least, after reordering slightly). This also generalizes the `of_one` and `one_def` lemmas to require `One` and not `Monoid`. ESTIMATED CHANGES Modified Mathlib/GroupTheory/FreeAbelianGroup.lean Modified Mathlib/NumberTheory/ADEInequality.lean 2025-01-02 12:06:46 06deeae feat(Analysis/Normed/Field/Basic): NormOneClass for SubringClass (#20373) ESTIMATED CHANGES Modified Mathlib/Analysis/Normed/Field/Basic.lean 2025-01-02 12:06:44 f65e1af feat: `Fin.cons` and `Fin.snoc` are continuous (#20352) These are adapted from the results for `insertNth`, which now appear immediately below the new results. I've also: * extracted `section`s with appropriate `variables`s for these `Fin` results. * renamed from `fin_insertNth` to `finInsertNth`, to match the naming rules * reordered the parameters to put all the continuity assumptions at the end * not tagged these with `@[continuity]` as it doesn't seem to help solve `Continuous fun x : X => ![x, x]`. We can look at this in a follow-up. ESTIMATED CHANGES Modified Mathlib/Analysis/BoxIntegral/Box/Basic.lean Modified Mathlib/Topology/Constructions.lean + theorem Continuous.finCons + theorem Continuous.finInsertNth + theorem Continuous.finSnoc - theorem Continuous.fin_insertNth + theorem Continuous.matrixVecCons + theorem ContinuousAt.finCons + theorem ContinuousAt.finInsertNth + theorem ContinuousAt.finSnoc - theorem ContinuousAt.fin_insertNth + theorem ContinuousAt.matrixVecCons + theorem Filter.Tendsto.finCons + theorem Filter.Tendsto.finInsertNth + theorem Filter.Tendsto.finSnoc - theorem Filter.Tendsto.fin_insertNth + theorem Filter.Tendsto.matrixVecCons Modified Mathlib/Topology/ContinuousOn.lean + theorem ContinuousOn.finCons + theorem ContinuousOn.finInsertNth + theorem ContinuousOn.finSnoc + theorem ContinuousOn.matrixVecCons + theorem ContinuousWithinAt.finCons + theorem ContinuousWithinAt.finInsertNth + theorem ContinuousWithinAt.finSnoc - theorem ContinuousWithinAt.fin_insertNth + theorem ContinuousWithinAt.matrixVecCons 2025-01-02 12:06:43 f52e49b feat(Topology/Algebra): compact hausdorff fields are finite (#20289) ESTIMATED CHANGES Modified Mathlib/Topology/Algebra/Field.lean Modified Mathlib/Topology/Algebra/Monoid.lean + theorem GroupWithZero.isOpen_singleton_zero + theorem exists_mem_nhds_zero_mul_subset 2025-01-02 12:06:42 8cef41c feat(MeasureTheory/Integral/SetIntegral): add the restriction of an integral to the support (#20258) add `MeasureTheory.integral_tsupport ` showing that an integral is equal to its restriction to the support of the integrated function. motivation: this will be used in #12290 to reduce the integral to the support and enables an estimate by the measure of `tsupport` and the sup of the function. ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Integral/SetIntegral.lean + theorem MeasureTheory.setIntegral_support + theorem MeasureTheory.setIntegral_tsupport 2025-01-02 12:06:41 cbf0869 chore(EventuallyMeasurable): move to `MeasurableSpace/` (#20213) I'm gradually moving material that doesn't depend on measures to `MeasurableSpace/`. ESTIMATED CHANGES Modified Mathlib.lean Renamed Mathlib/MeasureTheory/Constructions/EventuallyMeasurable.lean to Mathlib/MeasureTheory/MeasurableSpace/EventuallyMeasurable.lean Modified Mathlib/MeasureTheory/Measure/NullMeasurable.lean Modified Mathlib/Topology/Baire/BaireMeasurable.lean 2025-01-02 12:06:39 4e190ae feat(CategoryTheory): whiskering and curryfication of functors in three variables (#20197) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Functor/CurryingThree.lean + def CategoryTheory.bifunctorComp₁₂Iso + def CategoryTheory.bifunctorComp₂₃Iso + def CategoryTheory.currying₃ + theorem CategoryTheory.currying₃_unitIso_hom_app_app_app_app + theorem CategoryTheory.currying₃_unitIso_inv_app_app_app_app + def CategoryTheory.curry₃ObjProdComp + theorem CategoryTheory.curry₃_map_app_app_app + theorem CategoryTheory.curry₃_obj_map_app_app + theorem CategoryTheory.curry₃_obj_obj_map_app + theorem CategoryTheory.curry₃_obj_obj_obj_map + def CategoryTheory.fullyFaithfulUncurry₃ Modified Mathlib/CategoryTheory/Functor/Trifunctor.lean +/- def CategoryTheory.bifunctorComp₁₂ + def CategoryTheory.bifunctorComp₁₂Functor + def CategoryTheory.bifunctorComp₁₂FunctorMap + def CategoryTheory.bifunctorComp₁₂FunctorObj +/- def CategoryTheory.bifunctorComp₁₂Obj +/- def CategoryTheory.bifunctorComp₂₃ + def CategoryTheory.bifunctorComp₂₃Functor + def CategoryTheory.bifunctorComp₂₃FunctorMap + def CategoryTheory.bifunctorComp₂₃FunctorObj +/- def CategoryTheory.bifunctorComp₂₃Obj Modified Mathlib/CategoryTheory/NatIso.lean + theorem CategoryTheory.Iso.hom_inv_id_app_app_app + theorem CategoryTheory.Iso.inv_hom_id_app_app_app Modified Mathlib/CategoryTheory/Whiskering.lean + def CategoryTheory.Functor.postcompose₃ + def CategoryTheory.whiskeringLeft₃ + def CategoryTheory.whiskeringLeft₃Map + def CategoryTheory.whiskeringLeft₃Obj + def CategoryTheory.whiskeringLeft₃ObjMap + def CategoryTheory.whiskeringLeft₃ObjObj + def CategoryTheory.whiskeringLeft₃ObjObjMap + def CategoryTheory.whiskeringLeft₃ObjObjObj 2025-01-02 12:06:38 04bf741 feat(CategoryTheory/Sites): categories of sheaves are Grothendieck abelian (#19986) If `J` is a Grothendieck topology on a small category `C : Type v`, and `A : Type u₁` (with `Category.{v} A`) is a Grothendieck abelian category, then `Sheaf J A` is a Grothendieck abelian category. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Abelian/GrothendieckAxioms/Basic.lean + theorem CategoryTheory.Adjunction.hasExactColimitsOfShape + theorem CategoryTheory.Adjunction.hasExactLimitsOfShape Modified Mathlib/CategoryTheory/Abelian/GrothendieckAxioms/Sheaf.lean 2025-01-02 12:06:36 5d3e2fc feat(CategoryTheory/Sites): helper definitions for sieves (#19517) For (pre)sieves constructed with `bind`, we introduce a structure `BindStruct` which contains the data and properties we may get when a morphism belongs to `Presieve.bind S R`. Similarly, we introduce definitions and lemmas `Sieve.ofArrows.i`, `Sieve.ofArrows.h`, `Sieve.ofArrows.fac` which provide a choice of factorization of a morphism which belong to a sieve generated by a family of arrows. This shall be necessary in #19444 as we sometimes need to choose such data in order to perform some other constructions. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Sites/Sieves.lean + theorem CategoryTheory.Presieve.BindStruct.bind + structure CategoryTheory.Presieve.BindStruct +/- theorem CategoryTheory.Sieve.mem_ofArrows_iff + theorem CategoryTheory.Sieve.ofArrows.exists + theorem CategoryTheory.Sieve.ofArrows.fac +/- theorem CategoryTheory.Sieve.ofArrows_mk 2025-01-02 11:03:51 d458ec9 feat(NumberTheory/LSeries/Injectivity): new file (#20370) This adds the statement that a converging L-series determines its coefficients. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Analysis/SpecialFunctions/Pow/Complex.lean + theorem Complex.cpow_natCast_add_one_ne_zero Modified Mathlib/NumberTheory/LSeries/Basic.lean + theorem LSeries.pow_mul_term_eq Modified Mathlib/NumberTheory/LSeries/Convergence.lean + theorem LSeries.abscissaOfAbsConv_binop_le Modified Mathlib/NumberTheory/LSeries/Convolution.lean + theorem LSeries.abscissaOfAbsConv_convolution_le Added Mathlib/NumberTheory/LSeries/Injectivity.lean + theorem LSeries.abscissaOfAbsConv_add_le + theorem LSeries.abscissaOfAbsConv_sub_le + theorem LSeries.eq_of_LSeries_eventually_eq + theorem LSeries.tendsto_atTop + theorem LSeries.tendsto_cpow_mul_atTop + theorem LSeries_eq_iff_of_abscissaOfAbsConv_lt_top + theorem LSeries_eq_zero_iff + theorem LSeries_eq_zero_of_abscissaOfAbsConv_eq_top + theorem LSeries_eventually_eq_zero_iff' + theorem LSeries_injOn + theorem LSeries_sub_eventuallyEq_zero_of_LSeries_eventually_eq + theorem cpow_mul_div_cpow_eq_div_div_cpow 2025-01-02 11:03:50 a07a33c chore(Mathlib/Algebra/Lie): rename theorems for consistency (#20353) Moves: - `*coeSubmodule*`, `*coe_toSubmodule*`, `*to_submodule*`, `*coe_submodule*`, `*coe_to_submodule*` -> `*toSubmodule*` - `*coe_linearMap*` -> `*toLinearMap*` - `*to_lieHom*` -> `*toLieHom*` - `*coe_linearEquiv*`, `*to_linearEquiv*` -> `*toLinearEquiv*` - `*coe_lieSubalgebra*`, `*to_lieSubalgebra*` -> `*toLieSubalgebra*` special cases: * `LieIdeal.coe_toSubalgebra` -> `LieIdeal.coe_toLieSubalgebra` * `LieSubalgebra.coe_to_submodule` -> `LieSubalgebra.coe_toSubmodule` * `LieSubmodule.coe_toSubmodule` and similar: unchanged * `sInf_coe_toSubmodule'` -> `sInf_toSubmodule_eq_iInf` * `sSup_coe_toSubmodule'` -> `sSup_toSubmodule_eq_iSup` PR follows [this Zulip discussion](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Algebra.2ELie.2ESubmodule.2C.20Algebra.2ELie.2ESubalgebra.20naming) ESTIMATED CHANGES Modified Mathlib/Algebra/Lie/Abelian.lean - theorem LieModule.coe_linearMap_maxTrivLinearMapEquivLieModuleHom - theorem LieModule.coe_linearMap_maxTrivLinearMapEquivLieModuleHom_symm + theorem LieModule.toLinearMap_maxTrivLinearMapEquivLieModuleHom + theorem LieModule.toLinearMap_maxTrivLinearMapEquivLieModuleHom_symm Modified Mathlib/Algebra/Lie/BaseChange.lean Modified Mathlib/Algebra/Lie/Basic.lean - theorem LieEquiv.coe_linearEquiv_injective + theorem LieEquiv.coe_toLieHom + theorem LieEquiv.coe_toLinearEquiv - theorem LieEquiv.coe_to_lieHom - theorem LieEquiv.coe_to_linearEquiv + theorem LieEquiv.toLinearEquiv_injective + theorem LieEquiv.toLinearEquiv_mk - theorem LieEquiv.to_linearEquiv_mk - theorem LieHom.coe_linearMap_comp + theorem LieHom.toLinearMap_comp + theorem LieModuleEquiv.coe_toLieModuleHom + theorem LieModuleEquiv.coe_toLinearEquiv - theorem LieModuleEquiv.coe_to_lieModuleHom - theorem LieModuleEquiv.coe_to_linearEquiv - theorem LieModuleHom.coe_linearMap_comp + theorem LieModuleHom.toLinearMap_comp Modified Mathlib/Algebra/Lie/CartanExists.lean Modified Mathlib/Algebra/Lie/CartanSubalgebra.lean Modified Mathlib/Algebra/Lie/Character.lean Modified Mathlib/Algebra/Lie/Derivation/Killing.lean Modified Mathlib/Algebra/Lie/Engel.lean Modified Mathlib/Algebra/Lie/EngelSubalgebra.lean Modified Mathlib/Algebra/Lie/IdealOperations.lean Modified Mathlib/Algebra/Lie/InvariantForm.lean - theorem LieAlgebra.InvariantForm.orthogonal_isCompl_coe_submodule + theorem LieAlgebra.InvariantForm.orthogonal_isCompl_toSubmodule Modified Mathlib/Algebra/Lie/Nilpotent.lean Modified Mathlib/Algebra/Lie/Normalizer.lean Modified Mathlib/Algebra/Lie/OfAssociative.lean Modified Mathlib/Algebra/Lie/Semisimple/Basic.lean Modified Mathlib/Algebra/Lie/Subalgebra.lean - theorem LieSubalgebra.bot_coe_submodule + theorem LieSubalgebra.bot_toSubmodule - theorem LieSubalgebra.coe_submodule_le_coe_submodule + theorem LieSubalgebra.coe_toSubmodule - theorem LieSubalgebra.coe_to_submodule - theorem LieSubalgebra.coe_to_submodule_inj - theorem LieSubalgebra.coe_to_submodule_mk - theorem LieSubalgebra.inf_coe_to_submodule + theorem LieSubalgebra.inf_toSubmodule - theorem LieSubalgebra.mem_coe_submodule + theorem LieSubalgebra.mem_toSubmodule - theorem LieSubalgebra.sInf_coe_to_submodule + theorem LieSubalgebra.sInf_toSubmodule + theorem LieSubalgebra.toSubmodule_inj + theorem LieSubalgebra.toSubmodule_injective + theorem LieSubalgebra.toSubmodule_le_toSubmodule + theorem LieSubalgebra.toSubmodule_mk - theorem LieSubalgebra.to_submodule_injective - theorem LieSubalgebra.top_coe_submodule + theorem LieSubalgebra.top_toSubmodule Modified Mathlib/Algebra/Lie/Submodule.lean - theorem LieHom.ker_coeSubmodule + theorem LieHom.ker_toSubmodule - theorem LieHom.range_coeSubmodule + theorem LieHom.range_toSubmodule + theorem LieIdeal.coe_toLieSubalgebra + theorem LieIdeal.coe_toLieSubalgebra_toSubmodule - theorem LieIdeal.coe_toSubalgebra - theorem LieIdeal.coe_to_lieSubalgebra_to_submodule - theorem LieIdeal.comap_coeSubmodule + theorem LieIdeal.comap_toSubmodule - theorem LieIdeal.map_coeSubmodule + theorem LieIdeal.map_toSubmodule - theorem LieIdeal.top_coe_lieSubalgebra + theorem LieIdeal.top_toLieSubalgebra - theorem LieModuleHom.coeSubmodule_range - theorem LieModuleHom.ker_coeSubmodule + theorem LieModuleHom.ker_toSubmodule + theorem LieModuleHom.toSubmodule_range - theorem LieSubmodule.bot_coeSubmodule + theorem LieSubmodule.bot_toSubmodule - theorem LieSubmodule.codisjoint_iff_coe_toSubmodule + theorem LieSubmodule.codisjoint_iff_toSubmodule - theorem LieSubmodule.coeSubmodule_comap - theorem LieSubmodule.coeSubmodule_eq_bot_iff - theorem LieSubmodule.coeSubmodule_eq_top_iff - theorem LieSubmodule.coeSubmodule_injective - theorem LieSubmodule.coeSubmodule_le_coeSubmodule - theorem LieSubmodule.coeSubmodule_map - theorem LieSubmodule.coe_toSubmodule_inj - theorem LieSubmodule.coe_toSubmodule_mk - theorem LieSubmodule.disjoint_iff_coe_toSubmodule + theorem LieSubmodule.disjoint_iff_toSubmodule - theorem LieSubmodule.iInf_coe_toSubmodule + theorem LieSubmodule.iInf_toSubmodule - theorem LieSubmodule.iSupIndep_iff_coe_toSubmodule + theorem LieSubmodule.iSupIndep_iff_toSubmodule - theorem LieSubmodule.iSup_coe_toSubmodule - theorem LieSubmodule.iSup_eq_top_iff_coe_toSubmodule + theorem LieSubmodule.iSup_eq_top_iff_toSubmodule + theorem LieSubmodule.iSup_toSubmodule - theorem LieSubmodule.inf_coe_toSubmodule + theorem LieSubmodule.inf_toSubmodule - theorem LieSubmodule.isCompl_iff_coe_toSubmodule + theorem LieSubmodule.isCompl_iff_toSubmodule - theorem LieSubmodule.mem_coeSubmodule + theorem LieSubmodule.mem_toSubmodule - theorem LieSubmodule.sInf_coe_toSubmodule' - theorem LieSubmodule.sInf_coe_toSubmodule + theorem LieSubmodule.sInf_toSubmodule + theorem LieSubmodule.sInf_toSubmodule_eq_iInf - theorem LieSubmodule.sSup_coe_toSubmodule' - theorem LieSubmodule.sSup_coe_toSubmodule + theorem LieSubmodule.sSup_toSubmodule + theorem LieSubmodule.sSup_toSubmodule_eq_iSup - theorem LieSubmodule.sup_coe_toSubmodule + theorem LieSubmodule.sup_toSubmodule + theorem LieSubmodule.toSubmodule_comap + theorem LieSubmodule.toSubmodule_eq_bot + theorem LieSubmodule.toSubmodule_eq_top + theorem LieSubmodule.toSubmodule_inj + theorem LieSubmodule.toSubmodule_injective + theorem LieSubmodule.toSubmodule_le_toSubmodule + theorem LieSubmodule.toSubmodule_map + theorem LieSubmodule.toSubmodule_mk - theorem LieSubmodule.top_coeSubmodule + theorem LieSubmodule.top_toSubmodule Modified Mathlib/Algebra/Lie/TensorProduct.lean - theorem TensorProduct.LieModule.coe_linearMap_map + theorem TensorProduct.LieModule.toLinearMap_map Modified Mathlib/Algebra/Lie/TraceForm.lean Modified Mathlib/Algebra/Lie/UniversalEnveloping.lean Modified Mathlib/Algebra/Lie/Weights/Basic.lean Modified Mathlib/Algebra/Lie/Weights/Cartan.lean Modified Mathlib/Algebra/Lie/Weights/Chain.lean Modified Mathlib/Algebra/Lie/Weights/Killing.lean Modified Mathlib/Algebra/Lie/Weights/Linear.lean 2025-01-02 11:03:48 143b4dd chore: remove the superflous `NormedSpace.toModule'` and `NormedAlgebra.toNormedSpace'` (#20349) This was [relevant in Lean 3](https://leanprover.zulipchat.com/#narrow/stream/113488-general/topic/Typeclass.20resolution.20under.20binders/near/245151099), but everything just works now. ESTIMATED CHANGES Modified Mathlib/Analysis/Analytic/OfScalars.lean Modified Mathlib/Analysis/Calculus/ContDiff/Basic.lean Modified Mathlib/Analysis/Calculus/ContDiff/Defs.lean Modified Mathlib/Analysis/Calculus/ContDiff/FTaylorSeries.lean Modified Mathlib/Analysis/InnerProductSpace/Basic.lean Modified Mathlib/Analysis/Normed/Module/Basic.lean 2025-01-02 11:03:47 952a09f feat(Order/Filter): add `Filter.skolem` (#20283) ESTIMATED CHANGES Modified Mathlib/Order/Filter/Basic.lean + theorem Filter.skolem 2025-01-02 11:03:46 5f02486 feat(Order/Filter): add `Ultrafilter.eventually_exists_iff` (#20280) ESTIMATED CHANGES Modified Mathlib/Order/Filter/Ultrafilter.lean + theorem Ultrafilter.eventually_exists_iff + theorem Ultrafilter.eventually_exists_mem_iff 2025-01-02 11:03:45 8b781ec feat(Algebra): add missing substructure lemmas (#20269) Add missing boilerplate lemmas about the maps `.toNonUnitalSubsemiring ` and `.subsemiringClosure` This PR is split off from #16094 ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/Subalgebra/Unitization.lean + theorem Submonoid.subsemiringClosure_toNonUnitalSubsemiring + theorem Subsemiring.coe_toNonUnitalSubsemiring + theorem Subsemiring.mem_toNonUnitalSubsemiring + theorem Subsemiring.toNonUnitalSubsemiring_inj + theorem Subsemiring.toNonUnitalSubsemiring_injective Modified Mathlib/Algebra/Ring/Subsemiring/Basic.lean + theorem Submonoid.subsemiringClosure_mem 2025-01-02 11:03:43 758574f feat(Algebra): auxiliary lemmas for flatness over semirings (#20265) ESTIMATED CHANGES Modified Mathlib/Algebra/DirectSum/Module.lean + def DirectSum.lmap + theorem DirectSum.lmap_apply + theorem DirectSum.lmap_injective + theorem DirectSum.lmap_lof Modified Mathlib/Algebra/Module/Injective.lean + theorem Module.Baer.congr + theorem Module.Baer.of_equiv Modified Mathlib/Data/DFinsupp/Defs.lean + theorem DFinsupp.mapRange_injective Modified Mathlib/LinearAlgebra/DirectSum/TensorProduct.lean + theorem TensorProduct.directSumRight_comp_rTensor Modified Mathlib/LinearAlgebra/TensorProduct/Tower.lean + theorem TensorProduct.AlgebraTensorModule.lTensor_comp_cancelBaseChange Modified Mathlib/RingTheory/Finiteness/Cardinality.lean + theorem Module.Finite.small Modified Mathlib/RingTheory/Finiteness/TensorProduct.lean +/- theorem Submodule.exists_fg_le_eq_rTensor_inclusion + theorem Submodule.exists_fg_le_eq_rTensor_subtype + theorem Submodule.exists_fg_le_subset_range_rTensor_inclusion + theorem Submodule.exists_fg_le_subset_range_rTensor_subtype Modified Mathlib/RingTheory/Flat/CategoryTheory.lean Modified Mathlib/RingTheory/Localization/BaseChange.lean 2025-01-02 11:03:42 ff2c9d6 feat(BooleanSubalgebra): closure of supClosed+infClosed set containing bot+top (#20251) Every element in the closure of such a set `s` can be written as a finite sup of elements of the form `a \ b` with `a`, `b` in `s`. ESTIMATED CHANGES Modified Mathlib/Order/BooleanSubalgebra.lean + theorem BooleanSubalgebra.closure_sdiff_sup_induction + theorem BooleanSubalgebra.mem_closure_iff_sup_sdiff 2025-01-02 11:03:41 0673d5a feat(Order/CompleteLattice): instances for CompleteSemilatticeInf / CompleteSemilatticeSup for Dual types (#20246) ESTIMATED CHANGES Modified Mathlib/Order/CompleteLattice.lean 2025-01-02 11:03:40 45302a8 feat: functoriality of `Measure.comap` (#20218) ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Measure/Comap.lean + theorem MeasureTheory.Measure.comap_comap + theorem MeasureTheory.Measure.comap_id 2025-01-02 11:03:38 e518dee doc(1000.yaml): add some formalisations (#20113) ESTIMATED CHANGES Modified Mathlib/FieldTheory/PrimitiveElement.lean Modified Mathlib/GroupTheory/Coset/Card.lean Modified Mathlib/GroupTheory/GroupAction/Quotient.lean Modified Mathlib/GroupTheory/SchurZassenhaus.lean Modified Mathlib/LinearAlgebra/QuadraticForm/Real.lean Modified Mathlib/MeasureTheory/Function/Egorov.lean Modified docs/1000.yaml 2025-01-02 11:03:37 6f76ae2 feat(Topology/Group): continuous isomorphism (#16991) Define the continuous isomorphisms of multiplicative and additive topological group. ESTIMATED CHANGES Modified Mathlib/Topology/Algebra/ContinuousMonoidHom.lean + structure ContinuousAddEquiv + theorem ContinuousMulEquiv.apply_eq_iff_eq + theorem ContinuousMulEquiv.apply_eq_iff_symm_apply + theorem ContinuousMulEquiv.apply_symm_apply + theorem ContinuousMulEquiv.coe_mk' + theorem ContinuousMulEquiv.coe_mk + theorem ContinuousMulEquiv.coe_refl + theorem ContinuousMulEquiv.coe_toHomeomorph_symm + theorem ContinuousMulEquiv.coe_trans + theorem ContinuousMulEquiv.comp_symm_eq + theorem ContinuousMulEquiv.eq_comp_symm + theorem ContinuousMulEquiv.eq_symm_apply + theorem ContinuousMulEquiv.eq_symm_comp + theorem ContinuousMulEquiv.equivLike_inv_eq_symm + theorem ContinuousMulEquiv.ext + theorem ContinuousMulEquiv.invFun_eq_symm + def ContinuousMulEquiv.mk' + def ContinuousMulEquiv.ofUnique + def ContinuousMulEquiv.refl + theorem ContinuousMulEquiv.refl_apply + theorem ContinuousMulEquiv.self_comp_symm + theorem ContinuousMulEquiv.self_trans_symm + def ContinuousMulEquiv.symm + theorem ContinuousMulEquiv.symm_apply_apply + theorem ContinuousMulEquiv.symm_apply_eq + theorem ContinuousMulEquiv.symm_comp_eq + theorem ContinuousMulEquiv.symm_comp_self + theorem ContinuousMulEquiv.symm_symm + theorem ContinuousMulEquiv.symm_trans_apply + theorem ContinuousMulEquiv.symm_trans_self + theorem ContinuousMulEquiv.toEquiv_eq_coe + theorem ContinuousMulEquiv.toHomeomorph_eq_coe + theorem ContinuousMulEquiv.toMulEquiv_eq_coe + def ContinuousMulEquiv.trans + theorem ContinuousMulEquiv.trans_apply + structure ContinuousMulEquiv 2025-01-02 10:26:22 c81c070 chore: remove mention of non-existent definition (#20391) Fixes #10059 ESTIMATED CHANGES Modified Mathlib/Data/Finset/Defs.lean 2025-01-02 10:26:20 34a6e52 feat(Data/BitVec): Equivalences between `Fin` and `ZMod` and `BitVec` (#20322) ESTIMATED CHANGES Modified Mathlib/Data/BitVec.lean + def BitVec.equivFin Modified Mathlib/Data/ZMod/Basic.lean + def ZMod.finEquiv 2025-01-02 10:14:07 38800e1 chore: protect `Measurable.exp` (#20390) … and adjacent theorems. This avoids `exp` being ambiguous between `Real.exp` and `Measurable.exp`. ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Function/SpecialFunctions/Basic.lean - theorem Measurable.carg - theorem Measurable.ccos - theorem Measurable.ccosh - theorem Measurable.cexp - theorem Measurable.clog - theorem Measurable.cos - theorem Measurable.cosh - theorem Measurable.csin - theorem Measurable.csinh - theorem Measurable.exp - theorem Measurable.log - theorem Measurable.sin - theorem Measurable.sinh - theorem Measurable.sqrt 2025-01-02 09:59:42 680465c feat: an `RCLike` field is a real-inner product space of dim at most two (#20321) ESTIMATED CHANGES Modified Mathlib/Analysis/InnerProductSpace/Basic.lean - def InnerProductSpace.rclikeToReal Modified Mathlib/Analysis/RCLike/Lemmas.lean + theorem RCLike.finrank_le_two + theorem RCLike.rank_le_two + theorem RCLike.span_one_I 2025-01-02 09:29:41 d3cb5ba chore(AlgebraicClosure): construction with less dependency (#20295) #19853 golfed the construction using a theorem of Isaacs, but introduced more dependency. This PR reduces the dependency again using a cleverer construction that adjoins all roots of every (monic) polynomial, rather than one root of each polynomial. The proof follows https://kconrad.math.uconn.edu/blurbs/galoistheory/algclosureshorter.pdf. ESTIMATED CHANGES Modified Mathlib/FieldTheory/IsAlgClosed/AlgebraicClosure.lean + theorem AlgebraicClosure.Monics.map_eq_prod + theorem AlgebraicClosure.Monics.splits_finsetProd + def AlgebraicClosure.Monics + def AlgebraicClosure.Vars - def AlgebraicClosure.evalXSelf + def AlgebraicClosure.finEquivRoots +/- theorem AlgebraicClosure.le_maxIdeal +/- def AlgebraicClosure.maxIdeal + def AlgebraicClosure.spanCoeffs + theorem AlgebraicClosure.spanCoeffs_ne_top - def AlgebraicClosure.spanEval - theorem AlgebraicClosure.spanEval_ne_top + def AlgebraicClosure.subProdXSubC +/- def AlgebraicClosure.toSplittingField + theorem AlgebraicClosure.toSplittingField_coeff - theorem AlgebraicClosure.toSplittingField_evalXSelf 2025-01-02 09:11:22 e814fc9 feat: dot notation for composition of `AEMeasurable` functions with standard functions (#20348) These are consistent with the statements about composition of `Measurable` functions that appear immediately above. ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Function/SpecialFunctions/Basic.lean 2025-01-02 08:45:00 ac41585 chore: use `ofNat()` around `Real` and `Complex` (#20388) In the places where `no_index` was not present, this makes these lemmas (or mostly, their reverse) work with `simp`. ESTIMATED CHANGES Modified Mathlib/Algebra/Star/SelfAdjoint.lean Modified Mathlib/Analysis/RCLike/Basic.lean +/- theorem RCLike.conj_ofNat +/- theorem RCLike.nnnorm_ofNat +/- theorem RCLike.norm_ofNat +/- theorem RCLike.ofNat_im +/- theorem RCLike.ofNat_re +/- theorem RCLike.ofReal_ofNat Modified Mathlib/Analysis/SpecialFunctions/Pow/Complex.lean Modified Mathlib/Data/Complex/Abs.lean Modified Mathlib/Data/Complex/Basic.lean +/- theorem Complex.conj_ofNat +/- theorem Complex.im_ofNat +/- theorem Complex.ofReal_ofNat +/- theorem Complex.re_ofNat Modified Mathlib/Data/ENNReal/Basic.lean +/- theorem ENNReal.coe_ofNat +/- theorem ENNReal.ofNat_lt_top +/- theorem ENNReal.ofNat_ne_top +/- theorem ENNReal.ofReal_ofNat +/- theorem ENNReal.toReal_ofNat Modified Mathlib/Data/NNReal/Defs.lean Modified Mathlib/Data/Real/ENatENNReal.lean +/- theorem ENat.toENNReal_ofNat Modified Mathlib/Data/Real/Irrational.lean +/- theorem Irrational.ne_ofNat +/- theorem not_irrational_ofNat 2025-01-02 02:10:32 5e5c6da docs(Combinatorics/SimpleGraph/LapMatrix): update theorem name in docs (#20374) Corrects order from `rank_ker_lapMatrix_eq_card_ConnectedComponent` `card_ConnectedComponent_eq_rank_ker_lapMatrix`. ESTIMATED CHANGES Modified Mathlib/Combinatorics/SimpleGraph/LapMatrix.lean 2025-01-01 22:55:48 ec10d9b chore: split `Lean/Meta/RefinedDiscrTree` (#20381) This split is intended to roughly match #11968, in order to reduce the diff there. I will take ownership of fixing any resulting merge conflicts. The declarations have been copied unchanged between files, with the exception of a single removed `private` on `DTExpr.eqv` that prevented this split. Refactors are left to #11968. The namespace of all the declarations has changed from `Mathlib.Meta.FunProp.RefinedDiscrTree` to `Lean.Meta.RefinedDiscrTree`, to match the filename. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Lean/Meta/RefinedDiscrTree.lean + def Lean.Meta.RefinedDiscrTree.insert + def Lean.Meta.RefinedDiscrTree.insertDTExpr + def Lean.Meta.RefinedDiscrTree.insertEqn + def Lean.Meta.RefinedDiscrTree.insertInRefinedDiscrTree + def Lean.Meta.RefinedDiscrTree.mapArrays + def Lean.Meta.RefinedDiscrTree.mapArraysM - def Mathlib.Meta.FunProp.RefinedDiscrTree.DTExpr.flatten - def Mathlib.Meta.FunProp.RefinedDiscrTree.DTExpr.hasLooseBVars - def Mathlib.Meta.FunProp.RefinedDiscrTree.DTExpr.isSpecific - inductive Mathlib.Meta.FunProp.RefinedDiscrTree.DTExpr - def Mathlib.Meta.FunProp.RefinedDiscrTree.GetUnify.findKey - def Mathlib.Meta.FunProp.RefinedDiscrTree.GetUnify.matchTargetStar - def Mathlib.Meta.FunProp.RefinedDiscrTree.GetUnify.matchTreeStars - def Mathlib.Meta.FunProp.RefinedDiscrTree.Key.arity - def Mathlib.Meta.FunProp.RefinedDiscrTree.Key.ctorIdx - inductive Mathlib.Meta.FunProp.RefinedDiscrTree.Key - def Mathlib.Meta.FunProp.RefinedDiscrTree.MkDTExpr.cacheEtaPossibilities - def Mathlib.Meta.FunProp.RefinedDiscrTree.MkDTExpr.etaExpand - def Mathlib.Meta.FunProp.RefinedDiscrTree.MkDTExpr.etaPossibilities - def Mathlib.Meta.FunProp.RefinedDiscrTree.MkDTExpr.getIgnores - def Mathlib.Meta.FunProp.RefinedDiscrTree.MkDTExpr.reduceHBinOp - def Mathlib.Meta.FunProp.RefinedDiscrTree.MkDTExpr.reduceHBinOpAux - def Mathlib.Meta.FunProp.RefinedDiscrTree.MkDTExpr.reduceUnOp - def Mathlib.Meta.FunProp.RefinedDiscrTree.MkDTExpr.reduceUnOpAux - def Mathlib.Meta.FunProp.RefinedDiscrTree.Trie.children! - def Mathlib.Meta.FunProp.RefinedDiscrTree.Trie.mkNode2 - def Mathlib.Meta.FunProp.RefinedDiscrTree.Trie.mkPath - def Mathlib.Meta.FunProp.RefinedDiscrTree.Trie.singleton - def Mathlib.Meta.FunProp.RefinedDiscrTree.Trie.values! - inductive Mathlib.Meta.FunProp.RefinedDiscrTree.Trie - def Mathlib.Meta.FunProp.RefinedDiscrTree.getMatchWithScore - def Mathlib.Meta.FunProp.RefinedDiscrTree.insert - def Mathlib.Meta.FunProp.RefinedDiscrTree.insertDTExpr - def Mathlib.Meta.FunProp.RefinedDiscrTree.insertEqn - def Mathlib.Meta.FunProp.RefinedDiscrTree.insertInRefinedDiscrTree - def Mathlib.Meta.FunProp.RefinedDiscrTree.isStar - def Mathlib.Meta.FunProp.RefinedDiscrTree.isStarWithArg - def Mathlib.Meta.FunProp.RefinedDiscrTree.mapArrays - def Mathlib.Meta.FunProp.RefinedDiscrTree.mapArraysM - def Mathlib.Meta.FunProp.RefinedDiscrTree.mkDTExpr - def Mathlib.Meta.FunProp.RefinedDiscrTree.mkDTExprs - structure Mathlib.Meta.FunProp.RefinedDiscrTree Added Mathlib/Lean/Meta/RefinedDiscrTree/Basic.lean + def Lean.Meta.RefinedDiscrTree.Key.arity + def Lean.Meta.RefinedDiscrTree.Key.ctorIdx + inductive Lean.Meta.RefinedDiscrTree.Key + def Lean.Meta.RefinedDiscrTree.Trie.children! + def Lean.Meta.RefinedDiscrTree.Trie.mkNode2 + def Lean.Meta.RefinedDiscrTree.Trie.mkPath + def Lean.Meta.RefinedDiscrTree.Trie.singleton + def Lean.Meta.RefinedDiscrTree.Trie.values! + inductive Lean.Meta.RefinedDiscrTree.Trie + structure Lean.Meta.RefinedDiscrTree Added Mathlib/Lean/Meta/RefinedDiscrTree/Encode.lean + def Lean.Meta.RefinedDiscrTree.DTExpr.eqv + def Lean.Meta.RefinedDiscrTree.DTExpr.flatten + def Lean.Meta.RefinedDiscrTree.DTExpr.hasLooseBVars + def Lean.Meta.RefinedDiscrTree.DTExpr.isSpecific + inductive Lean.Meta.RefinedDiscrTree.DTExpr + def Lean.Meta.RefinedDiscrTree.MkDTExpr.cacheEtaPossibilities + def Lean.Meta.RefinedDiscrTree.MkDTExpr.etaPossibilities + def Lean.Meta.RefinedDiscrTree.MkDTExpr.getIgnores + def Lean.Meta.RefinedDiscrTree.isStar + def Lean.Meta.RefinedDiscrTree.isStarWithArg + def Lean.Meta.RefinedDiscrTree.mkDTExpr + def Lean.Meta.RefinedDiscrTree.mkDTExprs Added Mathlib/Lean/Meta/RefinedDiscrTree/Lookup.lean + def Lean.Meta.RefinedDiscrTree.GetUnify.findKey + def Lean.Meta.RefinedDiscrTree.GetUnify.matchTargetStar + def Lean.Meta.RefinedDiscrTree.GetUnify.matchTreeStars + def Lean.Meta.RefinedDiscrTree.getMatchWithScore Added Mathlib/Lean/Meta/RefinedDiscrTree/Pi.lean + def Lean.Meta.RefinedDiscrTree.etaExpand + def Lean.Meta.RefinedDiscrTree.reduceHBinOp + def Lean.Meta.RefinedDiscrTree.reduceHBinOpAux + def Lean.Meta.RefinedDiscrTree.reduceUnOp + def Lean.Meta.RefinedDiscrTree.reduceUnOpAux Modified Mathlib/Tactic/FunProp/Theorems.lean Modified scripts/noshake.json 2025-01-01 21:51:08 12bb04f feat: add `Set.preimage_image_univ` and associated `GaloisConnection` result (#20346) this function shows that the preimage of the image of a universal set is the universal set. Since preimage and image form a Galois connection, this is a special case of a more general theorem that I added there. I chose not to use the general theorem in the special theorem since doing so would require either putting the preimage_image_univ function in an unnatural spot or solving a circular import problem. ESTIMATED CHANGES Modified Mathlib/Data/Set/Image.lean + theorem Set.preimage_image_univ Modified Mathlib/Order/GaloisConnection.lean + theorem GaloisConnection.l_u_bot + theorem GaloisConnection.u_l_top 2025-01-01 21:42:29 9232fbe refactor: add an ofNat() elaborator (#20169) `ofNat(n)` is a shorthand for `no_index (OfNat.ofNat n)`. Its purpose is: * To make it easier to remember to write the `no_index` * To add a place to put a hoverable docstrings explaining the complexities * To make it easier to remove the `no_index`es in future if `DiscrTree`s stops needing them around `ofNat` (https://github.com/leanprover/lean4/issues/2867). This is not exhaustive, but is a step in the right direction. For now, I only target (some of) the declarations with a `See note [no_index around OfNat.ofNat]`. Some theorem statements have been corrected in passing. This exposed two Lean bugs relating to not using `Expr.consumeMData`: * leanprover/lean4#6438 * leanprover/lean4#6467 These are made more likely by this PR adding `no_index` to the RHS of equalities, but were already possible to trigger by using `simp [<- _]` on existing theorems with `no_index` on the LHS. ESTIMATED CHANGES Modified Counterexamples/Cyclotomic105.lean Modified Mathlib.lean Modified Mathlib/Algebra/CharP/Defs.lean +/- theorem CharP.ofNat_eq_zero Modified Mathlib/Algebra/DirectSum/Ring.lean +/- theorem DirectSum.of_zero_ofNat Modified Mathlib/Algebra/Group/Defs.lean +/- theorem zpow_ofNat Modified Mathlib/Algebra/Group/Hom/End.lean Modified Mathlib/Algebra/Group/Opposite.lean Modified Mathlib/Algebra/Group/ULift.lean Modified Mathlib/Algebra/Module/NatInt.lean Modified Mathlib/Algebra/MvPolynomial/Basic.lean Modified Mathlib/Algebra/Order/Floor.lean +/- theorem Int.ceil_ofNat +/- theorem Int.floor_ofNat +/- theorem Nat.ceil_ofNat +/- theorem Nat.floor_ofNat +/- theorem round_ofNat Modified Mathlib/Algebra/Order/Monoid/Unbundled/WithTop.lean +/- theorem WithBot.bot_ne_ofNat +/- theorem WithBot.ofNat_ne_bot +/- theorem WithTop.ofNat_ne_top +/- theorem WithTop.top_ne_ofNat Modified Mathlib/Algebra/Polynomial/Basic.lean Modified Mathlib/Algebra/Polynomial/Coeff.lean Modified Mathlib/Algebra/Polynomial/Degree/Definitions.lean Modified Mathlib/Algebra/Ring/Center.lean Modified Mathlib/Algebra/Ring/Int/Parity.lean Modified Mathlib/Data/Fin/Basic.lean Modified Mathlib/Data/Int/Cast/Basic.lean Modified Mathlib/Data/Int/Log.lean Modified Mathlib/Data/Int/Sqrt.lean +/- theorem Int.sqrt_ofNat Modified Mathlib/Data/Nat/Cast/Defs.lean Modified Mathlib/Data/Nat/Cast/Order/Ring.lean +/- theorem Nat.ofNat_pos' Modified Mathlib/Data/Nat/Cast/Prod.lean Modified Mathlib/Data/Nat/Cast/Synonym.lean Modified Mathlib/Data/Rat/Cast/Defs.lean Modified Mathlib/Data/Rat/Defs.lean +/- theorem Rat.den_ofNat +/- theorem Rat.num_ofNat Modified Mathlib/Lean/Expr/Basic.lean Modified Mathlib/NumberTheory/Transcendental/Liouville/Residual.lean Modified Mathlib/Tactic.lean Modified Mathlib/Tactic/Common.lean Added Mathlib/Tactic/OfNat.lean Modified Mathlib/Tactic/Rify.lean Modified Mathlib/Topology/ContinuousMap/Bounded/Basic.lean Modified scripts/noshake.json 2025-01-01 20:42:13 c781ca8 feat(Algebra/Category/Grp/Ulift): some properties of the universe lift functor for groups. (#19968) Prove some basic properties of the universe lift functor for groups: - It is fully faithful. - It preserves all limits and creates small limits. - On the category of additive commutative groups, it preserves zero morphisms and is an additive functor. TODO: colimits. - [x] depends on: #19966 ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Category/Grp/Ulift.lean + def CommGrp.uliftFunctorFullyFaithful + def Grp.uliftFunctorFullyFaithful 2025-01-01 17:49:20 504007f feat(CategoryTheory/Shift/Adjunction): commutation with shifts and adjunctions, part 2 (#20273) Given categories `C` and `D` that have shifts by an additive group `A`, functors `F : C ⥤ D` and `G : C ⥤ D`, an adjunction `F ⊣ G` and a `CommShift` structure on `G`, this file constructs a `CommShift` structure on `F`. This is a sequel to PR #20033, which was doing the construction in the other direction. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Shift/Adjunction.lean - theorem CategoryTheory.Adjunction.CommShift.compatibilityCounit_unique_left + theorem CategoryTheory.Adjunction.CommShift.compatibilityUnit_unique_left + theorem CategoryTheory.Adjunction.LeftAdjointCommShift.compatibilityUnit_iso + theorem CategoryTheory.Adjunction.LeftAdjointCommShift.iso_hom_app + theorem CategoryTheory.Adjunction.LeftAdjointCommShift.iso_inv_app + theorem CategoryTheory.Adjunction.commShift_of_rightAdjoint 2025-01-01 14:50:29 9419c03 chore(CategoryTheory/Adjunction/Opposites): redefine the opposite of an adjunction (#20375) Change the definition of `Adjunction.adjointOfOpAdjointOp` and `Adjunction.opAdjointOpOfAdjoint` to be more in line with the new definition of adjunctions from #16317 (which removes the `homEquiv` field), and rename these to `Adjunction.op` and `Adjunction.unop` to be consistent with `Equivalence.op` and `Equivalence.unop`. The 6 other variants of opposite adjunctions are all defined from `Adjunction.op` or `Adjunction.unop` and should not be needed anymore, they have been marked as `deprecated`, as well as `Adjunction.adjointOfOpAdjointOp` and `Adjunction.opAdjointOpOfAdjoint`. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Adjunction/Opposites.lean - def CategoryTheory.Adjunction.adjointOfOpAdjointOp - def CategoryTheory.Adjunction.adjointOfUnopAdjointUnop - def CategoryTheory.Adjunction.adjointOpOfAdjointUnop - def CategoryTheory.Adjunction.adjointUnopOfAdjointOp + def CategoryTheory.Adjunction.op - def CategoryTheory.Adjunction.opAdjointOfUnopAdjoint - def CategoryTheory.Adjunction.opAdjointOpOfAdjoint + def CategoryTheory.Adjunction.unop - def CategoryTheory.Adjunction.unopAdjointOfOpAdjoint - def CategoryTheory.Adjunction.unopAdjointUnopOfAdjoint 2025-01-01 11:13:53 bd681bc doc: tidy the docstring of `Subgroup.centralizer` (#20365) The argument is now named `s` as it has type `Set G` (not `Subgroup G`) ESTIMATED CHANGES Modified Mathlib/GroupTheory/Subgroup/Centralizer.lean 2024-12-31 21:01:59 7178aee chore(RingTheory/Ideal/Colon): generalize to semiring (#18595) Keep the annihilator eq as a lemma for CommRing ESTIMATED CHANGES Modified Mathlib/RingTheory/Ideal/Colon.lean + theorem Submodule.annihilator_map_mkQ_eq_colon +/- def Submodule.colon +/- theorem Submodule.mem_colon 2024-12-31 19:27:58 584f39c feat: `Countable` deriving handler (#18557) Example: ```lean inductive PList (α : Sort _) where | nil | cons (x : α) (xs : PList α) deriving Countable ``` This creates the instance ```lean instance {α : Sort*} [Countable α] : Countable (PList α) ``` The deriving handler supports structures and all non-reflexive un-nested inductive types, including mutual inductive types. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Tactic.lean Added Mathlib/Tactic/DeriveCountable.lean + def Mathlib.Deriving.Countable.mkCountableInstance + def Mathlib.Deriving.Countable.mkInjThms + def Mathlib.Deriving.Countable.mkToNatFuns Added MathlibTest/deriving_countable.lean + inductive Test.I + inductive Test.Nested + inductive Test.PList + inductive Test.PreCantor' + inductive Test.Reflex + structure Test.S + inductive Test.T1 + inductive Test.T2 + inductive Test.T 2024-12-31 16:28:30 bd452db chore: relocate `RefinedDiscrTree` (#20308) This should shrink the diff of another open PR ESTIMATED CHANGES Modified Mathlib.lean Renamed Mathlib/Tactic/FunProp/RefinedDiscrTree.lean to Mathlib/Lean/Meta/RefinedDiscrTree.lean Modified Mathlib/Tactic.lean Modified Mathlib/Tactic/FunProp.lean Modified Mathlib/Tactic/FunProp/Theorems.lean Modified scripts/noshake.json 2024-12-31 16:08:18 0e87cb2 feat(Normed/Group): add `tendsto_norm_div_self_nhdsGE` (#20311) ESTIMATED CHANGES Modified Mathlib/Analysis/Normed/Group/Basic.lean + theorem tendsto_norm_div_self_nhdsGE 2024-12-31 12:20:47 e92b329 feat: Prove `r_one_zpow` (#20338) Prove `DihedralGroup.r_one_zpow`, which extends `r_one_pow` to the integers. ESTIMATED CHANGES Modified Mathlib/GroupTheory/SpecificGroups/Dihedral.lean + theorem DihedralGroup.inv_r + theorem DihedralGroup.inv_sr + theorem DihedralGroup.r_one_zpow 2024-12-31 11:45:52 62f34f7 feat(RingTheory): lemmas about annihilator (#20341) ESTIMATED CHANGES Modified Mathlib/RingTheory/Ideal/Maps.lean + theorem Ideal.Module.annihilator_eq_bot + theorem Ideal.Module.comap_annihilator 2024-12-31 11:21:32 8d758ea feat(Topology): add `Dense.induction` (#20342) This can be used as ```lean induction x using hs.induction with | mem x hx => sorry | isClosed => sorry ``` when `hs : Dense s` ESTIMATED CHANGES Modified Mathlib/Topology/Basic.lean + theorem Dense.induction 2024-12-30 22:02:03 5bf0f39 chore: rename `Pi.fintype` to `Pi.instFintype` (#7850) [Zulip discussion](https://leanprover.zulipchat.com/#narrow/stream/270676-lean4/topic/Pi.20instance.20names.20in.20Lean.204.20core) ESTIMATED CHANGES Modified Mathlib/Combinatorics/SimpleGraph/Finsubgraph.lean Modified Mathlib/Data/Fintype/Pi.lean Modified Mathlib/FieldTheory/Minpoly/Field.lean Modified Mathlib/InformationTheory/Hamming.lean Modified Mathlib/RingTheory/WittVector/Truncated.lean 2024-12-30 21:48:32 35ac416 feat(Topology): generalize universes for (co)limits in `TopCat` (#20347) In order to construct the (co)limit of a functor ` J ⥤ TopCat`, we no longer assume `J` is a small category. ESTIMATED CHANGES Modified Mathlib/Topology/Category/TopCat/Limits/Basic.lean Modified Mathlib/Topology/Category/TopCat/Limits/Cofiltered.lean Modified Mathlib/Topology/Category/TopCat/Limits/Products.lean Modified Mathlib/Topology/Category/TopCat/Limits/Pullbacks.lean 2024-12-30 19:50:57 1dce20e chore: Replace `open scoped Classical` with `open scoped Classical in` or `classical` (#20325) I haven't done all the files, but a fair number of them. The only changes in this PR are: * Replace `open scoped Classical` with `open scoped Classical in` (when needed for the statement) or `classical` in proofs. * Some term mode proofs with `if` have been converted to tactic mode proofs with `by_cases`. * Some adjacent `open ...` statements have been merged into a single `open ...` ESTIMATED CHANGES Modified Mathlib/Analysis/Analytic/CPolynomial.lean Modified Mathlib/Analysis/Analytic/Constructions.lean Modified Mathlib/Analysis/Analytic/IsolatedZeros.lean Modified Mathlib/Analysis/Asymptotics/Asymptotics.lean Modified Mathlib/Analysis/BoxIntegral/Box/Basic.lean Modified Mathlib/Analysis/BoxIntegral/Partition/Additive.lean Modified Mathlib/Analysis/BoxIntegral/Partition/Basic.lean +/- theorem BoxIntegral.Prepartition.mem_filter Modified Mathlib/Analysis/BoxIntegral/Partition/Filter.lean Modified Mathlib/Analysis/BoxIntegral/Partition/Split.lean +/- theorem BoxIntegral.Prepartition.isPartition_splitMany Modified Mathlib/Analysis/BoxIntegral/Partition/SubboxInduction.lean Modified Mathlib/Analysis/BoxIntegral/Partition/Tagged.lean +/- theorem BoxIntegral.TaggedPrepartition.distortion_filter_le +/- theorem BoxIntegral.TaggedPrepartition.mem_filter Modified Mathlib/Analysis/Calculus/ContDiff/Defs.lean Modified Mathlib/Analysis/Calculus/Darboux.lean Modified Mathlib/Analysis/Calculus/Deriv/Add.lean Modified Mathlib/Analysis/Calculus/Deriv/Comp.lean Modified Mathlib/Analysis/Calculus/Deriv/Prod.lean Modified Mathlib/Analysis/Calculus/Deriv/ZPow.lean Modified Mathlib/Analysis/Calculus/FDeriv/Add.lean Modified Mathlib/Analysis/Calculus/FDeriv/Basic.lean Modified Mathlib/Analysis/Calculus/FDeriv/Comp.lean Modified Mathlib/Analysis/Calculus/FDeriv/Equiv.lean Modified Mathlib/Analysis/Calculus/FDeriv/Prod.lean Modified Mathlib/Analysis/Calculus/FDeriv/RestrictScalars.lean Modified Mathlib/Analysis/Calculus/FDeriv/Star.lean Modified Mathlib/Analysis/Calculus/LogDeriv.lean Modified Mathlib/Analysis/Convex/Combination.lean Modified Mathlib/Analysis/Convex/Cone/Basic.lean Modified Mathlib/Analysis/Convex/Cone/InnerDual.lean Modified Mathlib/Analysis/Convex/Exposed.lean Modified Mathlib/Analysis/Convex/Extrema.lean Modified Mathlib/Analysis/Convex/Extreme.lean Modified Mathlib/Analysis/Convex/Function.lean Modified Mathlib/Analysis/Convex/Independent.lean Modified Mathlib/Analysis/Convex/Jensen.lean Modified Mathlib/Analysis/Convex/KreinMilman.lean Modified Mathlib/Analysis/InnerProductSpace/Dual.lean Modified Mathlib/Analysis/InnerProductSpace/LinearPMap.lean Modified Mathlib/Analysis/Normed/Module/Dual.lean Modified Mathlib/Analysis/Normed/Operator/Banach.lean Modified Mathlib/Analysis/Normed/Ring/Units.lean Modified Mathlib/Analysis/RCLike/Lemmas.lean Modified Mathlib/Analysis/SpecialFunctions/Pow/Asymptotics.lean Modified Mathlib/Analysis/SpecialFunctions/Pow/Complex.lean Modified Mathlib/Analysis/SpecialFunctions/Pow/Continuity.lean Modified Mathlib/Analysis/SpecialFunctions/Pow/NNReal.lean Modified Mathlib/Analysis/SpecialFunctions/Pow/Real.lean Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Basic.lean Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Inverse.lean Modified Mathlib/Analysis/SpecificLimits/Basic.lean Modified Mathlib/CategoryTheory/Countable.lean Modified Mathlib/CategoryTheory/FinCategory/AsType.lean Modified Mathlib/CategoryTheory/FinCategory/Basic.lean Modified Mathlib/CategoryTheory/FintypeCat.lean Modified Mathlib/CategoryTheory/GlueData.lean Modified Mathlib/CategoryTheory/Limits/Bicones.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Biproducts.lean Modified Mathlib/CategoryTheory/Limits/Shapes/FiniteProducts.lean Modified Mathlib/CategoryTheory/Limits/Shapes/ZeroMorphisms.lean Modified Mathlib/CategoryTheory/Monoidal/Preadditive.lean Modified Mathlib/CategoryTheory/Preadditive/Biproducts.lean Modified Mathlib/CategoryTheory/Preadditive/HomOrthogonal.lean Modified Mathlib/CategoryTheory/Preadditive/Schur.lean Modified Mathlib/CategoryTheory/Sites/Canonical.lean Modified Mathlib/Combinatorics/HalesJewett.lean Modified Mathlib/Combinatorics/SimpleGraph/Regularity/Uniform.lean Modified Mathlib/Data/Finite/Card.lean Modified Mathlib/Data/Finite/Prod.lean Modified Mathlib/Data/Finset/Basic.lean Modified Mathlib/Data/Finset/Finsupp.lean +/- theorem Finset.card_finsupp Modified Mathlib/Data/Finset/Functor.lean Modified Mathlib/Data/Finsupp/Interval.lean Modified Mathlib/Data/Fintype/Card.lean Modified Mathlib/Data/Fintype/Order.lean Modified Mathlib/Data/Fintype/Prod.lean Modified Mathlib/Data/Fintype/Sum.lean Modified Mathlib/Data/Real/Archimedean.lean Modified Mathlib/Data/Real/Basic.lean Modified Mathlib/Data/Real/ENatENNReal.lean Modified Mathlib/Data/Real/Hyperreal.lean +/- theorem Hyperreal.st_neg Modified Mathlib/Data/Set/BoolIndicator.lean Modified Mathlib/Data/Set/Countable.lean Modified Mathlib/Data/Set/Finite/Basic.lean Modified Mathlib/Data/Set/Finite/Lattice.lean Modified Mathlib/Data/Set/Finite/Monad.lean Modified Mathlib/Data/Set/Finite/Range.lean Modified Mathlib/Dynamics/PeriodicPts.lean Modified Mathlib/NumberTheory/NumberField/Discriminant/Basic.lean Modified Mathlib/NumberTheory/NumberField/Units/DirichletTheorem.lean Modified Mathlib/RingTheory/AlgebraicIndependent/RankAndCardinality.lean Modified Mathlib/RingTheory/AlgebraicIndependent/TranscendenceBasis.lean Modified Mathlib/RingTheory/AlgebraicIndependent/Transcendental.lean Modified Mathlib/RingTheory/DedekindDomain/AdicValuation.lean Modified Mathlib/RingTheory/DedekindDomain/Different.lean Modified Mathlib/RingTheory/DedekindDomain/Factorization.lean Modified Mathlib/RingTheory/DedekindDomain/Ideal.lean Modified Mathlib/RingTheory/Flat/FaithfullyFlat.lean Modified Mathlib/RingTheory/HahnSeries/Addition.lean Modified Mathlib/RingTheory/IntegralClosure/IsIntegralClosure/Basic.lean Modified Mathlib/RingTheory/LocalProperties/Basic.lean Modified Mathlib/RingTheory/Localization/Integral.lean Modified Mathlib/RingTheory/Polynomial/IrreducibleRing.lean Modified Mathlib/RingTheory/Polynomial/SeparableDegree.lean Modified Mathlib/RingTheory/PowerSeries/Inverse.lean Modified Mathlib/RingTheory/RingHom/Finite.lean Modified Mathlib/RingTheory/RingHom/FiniteType.lean Modified Mathlib/RingTheory/RootsOfUnity/Basic.lean +/- theorem card_rootsOfUnity Modified Mathlib/RingTheory/RootsOfUnity/PrimitiveRoots.lean Modified Mathlib/RingTheory/Smooth/StandardSmooth.lean Modified Mathlib/RingTheory/UniqueFactorizationDomain/NormalizedFactors.lean Modified Mathlib/RingTheory/Valuation/ValuationSubring.lean Modified Mathlib/RingTheory/WittVector/Domain.lean Modified Mathlib/RingTheory/WittVector/InitTail.lean Modified Mathlib/Topology/EMetricSpace/Diam.lean 2024-12-30 19:14:44 db269ba feat(NumberTheory/Divisors): proving that n has at most n divisors. (#20312) This PR contains a proof that for some `n : ℕ`, `n.divisors` has cardinality at most `n`. It is useful in a number of scenarios, for instance when one wishes to construct upper-bounds for sums over the set of divisors of `n`. ESTIMATED CHANGES Modified Mathlib/NumberTheory/Divisors.lean + theorem Nat.card_divisors_le_self 2024-12-30 19:05:26 3616fa8 chore(Denumerable): simplify proof of ofNat_surjective (#20344) No need for auxiliary theorem, and a bit of simplification. ESTIMATED CHANGES Modified Mathlib/Logic/Denumerable.lean +/- theorem Nat.Subtype.ofNat_surjective - theorem Nat.Subtype.ofNat_surjective_aux 2024-12-30 18:55:52 9df7ff0 feat(CategoryTheory/Triangulated/Opposite): the opposite of a triangulated functor (#20278) A functor between pretriangulated categories is a triangulated functor if and only if its opposite is a triangulated functor. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Triangulated/Opposite/Functor.lean + theorem CategoryTheory.Functor.isTriangulated_of_op + theorem CategoryTheory.Functor.isTriangulated_op + theorem CategoryTheory.Functor.map_opShiftFunctorEquivalence_counitIso_hom_app_unop + theorem CategoryTheory.Functor.map_opShiftFunctorEquivalence_counitIso_inv_app_unop + theorem CategoryTheory.Functor.map_opShiftFunctorEquivalence_unitIso_hom_app_unop + theorem CategoryTheory.Functor.map_opShiftFunctorEquivalence_unitIso_inv_app_unop + theorem CategoryTheory.Functor.map_shift_unop + theorem CategoryTheory.Functor.op_commShiftIso_hom_app + theorem CategoryTheory.Functor.op_commShiftIso_inv_app + theorem CategoryTheory.Functor.op_isTriangulated_iff + theorem CategoryTheory.Functor.shift_map_op 2024-12-30 15:46:54 bb6faa6 feat(AlgebraicGeometry): the small affine Zariski site (#19558) We define the small affine Zariski site of `X` (`X.AffineZariskiSite`), whose elements are affine open sets of `X`, and whose arrows are basic open sets `D(f) ⟶ U` for any `f : Γ(X, U)`. This is a dense subsite of `X.Opens` (with respect to `Opens.grothendieckTopology X`) via the inclusion functor, which gives an equivalence of categories of sheaves (`sheafEquiv`). ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/AlgebraicGeometry/Sites/SmallAffineZariski.lean + def AlgebraicGeometry.Scheme.AffineZariskiSite.basicOpen + theorem AlgebraicGeometry.Scheme.AffineZariskiSite.basicOpen_le + theorem AlgebraicGeometry.Scheme.AffineZariskiSite.generate_presieveOfSections + theorem AlgebraicGeometry.Scheme.AffineZariskiSite.generate_presieveOfSections_mem_grothendieckTopology + def AlgebraicGeometry.Scheme.AffineZariskiSite.grothendieckTopology + theorem AlgebraicGeometry.Scheme.AffineZariskiSite.mem_grothendieckTopology + theorem AlgebraicGeometry.Scheme.AffineZariskiSite.mem_grothendieckTopology_iff_sectionsOfPresieve + def AlgebraicGeometry.Scheme.AffineZariskiSite.presieveOfSections + theorem AlgebraicGeometry.Scheme.AffineZariskiSite.presieveOfSections_eq_ofArrows + theorem AlgebraicGeometry.Scheme.AffineZariskiSite.presieveOfSections_sectionsOfPresieve + theorem AlgebraicGeometry.Scheme.AffineZariskiSite.presieveOfSections_surjective + def AlgebraicGeometry.Scheme.AffineZariskiSite.sectionsOfPresieve + def AlgebraicGeometry.Scheme.AffineZariskiSite.toOpensFunctor + theorem AlgebraicGeometry.Scheme.AffineZariskiSite.toOpens_injective + theorem AlgebraicGeometry.Scheme.AffineZariskiSite.toOpens_mono + def AlgebraicGeometry.Scheme.AffineZariskiSite 2024-12-30 14:39:22 419dc33 feat(Topology/Algebra): add `TopologicalGroup.isInducing_iff_nhds_one` (#20281) ESTIMATED CHANGES Modified Mathlib/Topology/Algebra/Group/Basic.lean + theorem TopologicalGroup.isInducing_iff_nhds_one 2024-12-30 10:07:52 c4263a5 chore: Rename injectivity theorems for consistency (#20329) Moves: Subgroup.toSubmonoid_eq -> Subgroup.toSubmonoid_inj AddSubgroup.toAddSubmonoid_eq -> AddSubgroup.toAddSubmonoid_inj Submodule.toAddSubmonoid_eq -> Submodule.toAddSubmonoid_inj Submodule.toAddSubgroup_eq -> Submodule.toAddSubgroup_inj Submodule.toSubMulAction_eq -> Submodule.toSubMulAction_inj Cardinal.toNat_eq_iff_eq_of_lt_aleph0 -> Cardinal.toNat_inj_of_lt_aleph0 IntermediateField.toSubalgebra_eq_iff -> IntermediateField.toSubalgebra_inj NormedSpace.Dual.toWeakDual_eq_iff -> NormedSpace.Dual.toWeakDual_inj WeakDual.toNormedDual_eq_iff -> WeakDual.toNormedDual_inj RatFunc.toFractionRing_eq_iff -> RatFunc.toFractionRing_inj Cardinal.toPartENat_eq_iff_of_le_aleph0 -> Cardinal.toPartENat_inj_of_le_aleph0 ENat.toENNReal_coe_eq_iff -> ENat.toENNReal_coe_inj Ordinal.toGame_eq_iff -> Ordinal.toGame_inj Ordinal.toPGame_eq_iff -> Ordinal.toPGame_inj DirichletCharacter.toUnitHom_eq_iff -> DirichletCharacter.toUnitHom_inj LieSubalgebra.coe_to_submodule_eq_iff -> LieSubalgebra.coe_to_submodule_inj LieSubmodule.coe_toSubmodule_eq_iff -> LieSubmodule.coe_toSubmodule_inj ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Subgroup/Basic.lean Modified Mathlib/Algebra/Group/Subgroup/Defs.lean - theorem Subgroup.toSubmonoid_eq + theorem Subgroup.toSubmonoid_inj Modified Mathlib/Algebra/Group/Subgroup/Pointwise.lean Modified Mathlib/Algebra/Lie/Abelian.lean Modified Mathlib/Algebra/Lie/BaseChange.lean Modified Mathlib/Algebra/Lie/CartanSubalgebra.lean Modified Mathlib/Algebra/Lie/Derivation/Killing.lean Modified Mathlib/Algebra/Lie/Engel.lean Modified Mathlib/Algebra/Lie/IdealOperations.lean Modified Mathlib/Algebra/Lie/Nilpotent.lean Modified Mathlib/Algebra/Lie/Subalgebra.lean - theorem LieSubalgebra.coe_to_submodule_eq_iff + theorem LieSubalgebra.coe_to_submodule_inj Modified Mathlib/Algebra/Lie/Submodule.lean - theorem LieSubmodule.coe_toSubmodule_eq_iff + theorem LieSubmodule.coe_toSubmodule_inj Modified Mathlib/Algebra/Lie/TensorProduct.lean Modified Mathlib/Algebra/Lie/Weights/Basic.lean Modified Mathlib/Algebra/Lie/Weights/Cartan.lean Modified Mathlib/Algebra/Lie/Weights/Killing.lean Modified Mathlib/Algebra/Lie/Weights/Linear.lean Modified Mathlib/Algebra/Module/Submodule/Defs.lean - theorem Submodule.toAddSubgroup_eq + theorem Submodule.toAddSubgroup_inj - theorem Submodule.toAddSubmonoid_eq + theorem Submodule.toAddSubmonoid_inj - theorem Submodule.toSubMulAction_eq + theorem Submodule.toSubMulAction_inj Modified Mathlib/Algebra/Module/Submodule/Lattice.lean Modified Mathlib/Algebra/Module/Submodule/RestrictScalars.lean Modified Mathlib/Analysis/Normed/Module/WeakDual.lean - theorem NormedSpace.Dual.toWeakDual_eq_iff + theorem NormedSpace.Dual.toWeakDual_inj - theorem WeakDual.toNormedDual_eq_iff + theorem WeakDual.toNormedDual_inj Modified Mathlib/Data/Real/ENatENNReal.lean - theorem ENat.toENNReal_coe_eq_iff + theorem ENat.toENNReal_inj Modified Mathlib/Deprecated/Cardinal/PartENat.lean - theorem Cardinal.toPartENat_eq_iff_of_le_aleph0 + theorem Cardinal.toPartENat_inj_of_le_aleph0 Modified Mathlib/Dynamics/TopologicalEntropy/CoverEntropy.lean Modified Mathlib/FieldTheory/Adjoin.lean Modified Mathlib/FieldTheory/IntermediateField/Algebraic.lean - theorem IntermediateField.toSubalgebra_eq_iff Modified Mathlib/FieldTheory/IntermediateField/Basic.lean + theorem IntermediateField.toSubalgebra_inj + theorem IntermediateField.toSubfield_inj Modified Mathlib/FieldTheory/RatFunc/Defs.lean - theorem RatFunc.toFractionRing_eq_iff + theorem RatFunc.toFractionRing_inj Modified Mathlib/GroupTheory/GroupAction/SubMulAction.lean Modified Mathlib/NumberTheory/DirichletCharacter/Basic.lean - theorem DirichletCharacter.toUnitHom_eq_iff + theorem DirichletCharacter.toUnitHom_inj Modified Mathlib/SetTheory/Cardinal/ToNat.lean - theorem Cardinal.toNat_eq_iff_eq_of_lt_aleph0 + theorem Cardinal.toNat_inj_of_lt_aleph0 Modified Mathlib/SetTheory/Game/Ordinal.lean - theorem Ordinal.toGame_eq_iff + theorem Ordinal.toGame_inj - theorem Ordinal.toPGame_eq_iff + theorem Ordinal.toPGame_inj 2024-12-29 22:09:48 b4e6697 chore: rename Nat.lt_div_iff_mul_lt (#20331) To make place for a lemma with this name in lean 4.16 ESTIMATED CHANGES Modified Mathlib/Data/Nat/Defs.lean Modified Mathlib/NumberTheory/Divisors.lean Modified Mathlib/NumberTheory/FermatPsp.lean 2024-12-29 20:43:23 3f703ec feat: quotienting out a polynomial in a family doesn't change the span (#20297) From GrowthInGroups (LeanCamCombi) ESTIMATED CHANGES Modified Mathlib/Algebra/Polynomial/CoeffMem.lean + theorem Polynomial.idealSpan_range_update_divByMonic Modified Mathlib/LinearAlgebra/Span/Defs.lean + theorem Submodule.span_range_update_add_smul + theorem Submodule.span_range_update_sub_smul +/- theorem Submodule.sup_toAddSubgroup 2024-12-29 20:14:48 b4e1f95 feat(Order/KrullDimension): equivalent conditions for zero-dimensional, one-dimensional etc (#20176) ESTIMATED CHANGES Modified Mathlib/Data/ENat/Basic.lean + theorem WithBot.add_one_le_iff + theorem WithBot.lt_add_one_iff Modified Mathlib/Order/KrullDimension.lean + theorem Order.krullDim_eq_bot + theorem Order.krullDim_eq_bot_iff - theorem Order.krullDim_eq_bot_of_isEmpty + theorem Order.krullDim_eq_top + theorem Order.krullDim_eq_top_iff - theorem Order.krullDim_eq_top_of_infiniteDimensionalOrder +/- theorem Order.krullDim_eq_zero_of_unique + theorem Order.krullDim_le_one_iff + theorem Order.krullDim_le_one_iff_forall_isMax + theorem Order.krullDim_le_one_iff_forall_isMin + theorem Order.krullDim_lt_coe_iff + theorem Order.krullDim_nonneg + theorem Order.krullDim_nonneg_iff - theorem Order.krullDim_nonneg_of_nonempty + theorem Order.krullDim_nonpos_iff_forall_isMax + theorem Order.krullDim_nonpos_iff_forall_isMin + theorem Order.krullDim_pos_iff + theorem Order.le_krullDim_iff + theorem Order.one_le_krullDim_iff Modified Mathlib/Order/RelSeries.lean + theorem Rel.finiteDimensional_or_infiniteDimensional + theorem Rel.not_finiteDimensional_iff + theorem Rel.not_infiniteDimensional_iff + theorem finiteDimensionalOrder_or_infiniteDimensionalOrder + theorem not_finiteDimensionalOrder_iff + theorem not_infiniteDimensionalOrder_iff Modified Mathlib/RingTheory/KrullDimension/Basic.lean 2024-12-29 17:38:54 58dc043 docs(Combinatorics/SimpleGraph): typo in Maps.lean (#20327) Change `G` to `G'` in the documentation of graph embedding. ESTIMATED CHANGES 2024-12-29 13:25:55 de084eb chore(Data/List/MinMax): fix lemma names (#20318) ESTIMATED CHANGES Modified Mathlib/Data/List/MinMax.lean +/- theorem List.le_minimum_of_forall_le +/- theorem List.minimum_le_coe_iff - theorem List.minimum_not_lt_of_mem - theorem List.not_lt_maximum_of_mem' - theorem List.not_lt_maximum_of_mem +/- theorem List.not_lt_minimum_of_mem' + theorem List.not_lt_minimum_of_mem + theorem List.not_maximum_lt_of_mem' + theorem List.not_maximum_lt_of_mem Modified scripts/nolints_prime_decls.txt 2024-12-29 12:22:20 68fbd25 feat: `(-1 : R) ^ n = ite (Even n) 1 (-1)` (#20320) ESTIMATED CHANGES Modified Mathlib/Algebra/Ring/Parity.lean + theorem neg_one_pow_eq_ite 2024-12-29 10:18:52 e785d99 chore(CategoryTheory/Pretriangulated/Opposite): split CategoryTheory.Triangulated.Opposite into three files (#20316) This splits the long (and getting longer with a new PR) file `CatgeoryTheory.Triangulated.Opposite` in three files: - `Triangulated.Opposite.Basic`: just the shift on the opposite category + lemmas - `Triangulated.Opposite.Triangle`: the equivalence `triangleOpEquivalence` - `Triangulated.Opposite.Pretriangulated`: the pretriangulated structure ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Homology/DerivedCategory/Ext/ExactSequences.lean Modified Mathlib/CategoryTheory/Shift/ShiftedHomOpposite.lean Renamed Mathlib/CategoryTheory/Triangulated/Opposite.lean to Mathlib/CategoryTheory/Triangulated/Opposite/Basic.lean - theorem CategoryTheory.Functor.map_distinguished_op_exact - theorem CategoryTheory.Pretriangulated.Opposite.complete_distinguished_triangle_morphism - theorem CategoryTheory.Pretriangulated.Opposite.contractible_distinguished - def CategoryTheory.Pretriangulated.Opposite.distinguishedTriangles - theorem CategoryTheory.Pretriangulated.Opposite.distinguished_cocone_triangle - theorem CategoryTheory.Pretriangulated.Opposite.isomorphic_distinguished - theorem CategoryTheory.Pretriangulated.Opposite.mem_distinguishedTriangles_iff' - theorem CategoryTheory.Pretriangulated.Opposite.mem_distinguishedTriangles_iff - theorem CategoryTheory.Pretriangulated.Opposite.rotate_distinguished_triangle - theorem CategoryTheory.Pretriangulated.mem_distTriang_op_iff' - theorem CategoryTheory.Pretriangulated.mem_distTriang_op_iff - theorem CategoryTheory.Pretriangulated.op_distinguished - theorem CategoryTheory.Pretriangulated.unop_distinguished Added Mathlib/CategoryTheory/Triangulated/Opposite/Pretriangulated.lean + theorem CategoryTheory.Functor.map_distinguished_op_exact + theorem CategoryTheory.Pretriangulated.Opposite.complete_distinguished_triangle_morphism + theorem CategoryTheory.Pretriangulated.Opposite.contractible_distinguished + def CategoryTheory.Pretriangulated.Opposite.distinguishedTriangles + theorem CategoryTheory.Pretriangulated.Opposite.distinguished_cocone_triangle + theorem CategoryTheory.Pretriangulated.Opposite.isomorphic_distinguished + theorem CategoryTheory.Pretriangulated.Opposite.mem_distinguishedTriangles_iff' + theorem CategoryTheory.Pretriangulated.Opposite.mem_distinguishedTriangles_iff + theorem CategoryTheory.Pretriangulated.Opposite.rotate_distinguished_triangle + theorem CategoryTheory.Pretriangulated.mem_distTriang_op_iff' + theorem CategoryTheory.Pretriangulated.mem_distTriang_op_iff + theorem CategoryTheory.Pretriangulated.op_distinguished + theorem CategoryTheory.Pretriangulated.unop_distinguished Added Mathlib/CategoryTheory/Triangulated/Opposite/Triangle.lean Modified Mathlib/CategoryTheory/Triangulated/Yoneda.lean 2024-12-29 09:21:07 0da6485 feat: `fun n : ℕ ↦ n ^ n` is monotone (#20296) From GrowthInGroups (LeanCamCombi) ESTIMATED CHANGES Modified Mathlib/Order/Monotone/Basic.lean + theorem Nat.pow_monotoneOn + theorem Nat.pow_self_mono + theorem Nat.pow_self_strictMonoOn 2024-12-29 04:54:57 e423a1f chore(Calculus): group together "converse to the mean value inequality" theorems (#20307) Generalizing this file is challenging because the lemmas are in an arbitrary order. This brings the order of the FDeriv file in line with the Deriv file, and adds matching section names to try and prevent these separating in future. ESTIMATED CHANGES Modified Mathlib/Analysis/Calculus/Deriv/Basic.lean Modified Mathlib/Analysis/Calculus/FDeriv/Basic.lean 2024-12-28 23:51:51 1a40297 chore: rename `update_same`/`update_noteq` to `update_self`/`update_of_ne` (#20302) The previous names didn't match the naming convention ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Pi/Basic.lean Modified Mathlib/Algebra/Group/Pi/Lemmas.lean Modified Mathlib/Algebra/Group/Pointwise/Set/BigOperators.lean Modified Mathlib/Algebra/Group/Subgroup/Finite.lean Modified Mathlib/Algebra/Group/TypeTags/Basic.lean Modified Mathlib/Algebra/Order/Antidiag/Finsupp.lean Modified Mathlib/Analysis/Analytic/Composition.lean Modified Mathlib/Analysis/BoxIntegral/Partition/Additive.lean Modified Mathlib/Analysis/Calculus/ContDiff/FaaDiBruno.lean Modified Mathlib/Analysis/Calculus/DSlope.lean Modified Mathlib/Analysis/Calculus/FDeriv/Analytic.lean Modified Mathlib/Analysis/Complex/CauchyIntegral.lean Modified Mathlib/Analysis/Complex/Periodic.lean Modified Mathlib/Analysis/Convex/Extreme.lean Modified Mathlib/Analysis/NormedSpace/Multilinear/Basic.lean Modified Mathlib/Analysis/NormedSpace/PiTensorProduct/InjectiveSeminorm.lean Modified Mathlib/CategoryTheory/Filtered/Final.lean Modified Mathlib/Computability/TMToPartrec.lean Modified Mathlib/Computability/TuringMachine.lean Modified Mathlib/Data/DFinsupp/Defs.lean Modified Mathlib/Data/Fin/Tuple/Basic.lean Modified Mathlib/Data/Fin/Tuple/Take.lean Modified Mathlib/Data/Finset/PiInduction.lean Modified Mathlib/Data/Finset/Piecewise.lean Modified Mathlib/Data/Finset/Update.lean Modified Mathlib/Data/Finsupp/Defs.lean Modified Mathlib/Data/Fintype/Prod.lean Modified Mathlib/Data/Matrix/RowCol.lean Modified Mathlib/Data/Nat/Choose/Multinomial.lean Modified Mathlib/Data/Set/Card.lean Modified Mathlib/Data/Set/Lattice.lean Modified Mathlib/Data/Set/Prod.lean Modified Mathlib/Data/Sigma/Basic.lean Modified Mathlib/Data/Sum/Basic.lean Modified Mathlib/Geometry/Manifold/Instances/Real.lean Modified Mathlib/GroupTheory/Complement.lean Modified Mathlib/LinearAlgebra/AffineSpace/Combination.lean Modified Mathlib/LinearAlgebra/AffineSpace/Independent.lean Modified Mathlib/LinearAlgebra/Alternating/Basic.lean Modified Mathlib/LinearAlgebra/Matrix/Basis.lean Modified Mathlib/LinearAlgebra/Multilinear/Basic.lean Modified Mathlib/LinearAlgebra/Pi.lean Modified Mathlib/LinearAlgebra/PiTensorProduct.lean Modified Mathlib/Logic/Equiv/Basic.lean Modified Mathlib/Logic/Function/Basic.lean - theorem Function.update_noteq + theorem Function.update_of_ne - theorem Function.update_same + theorem Function.update_self Modified Mathlib/MeasureTheory/Constructions/Pi.lean Modified Mathlib/MeasureTheory/Integral/FundThmCalculus.lean Modified Mathlib/MeasureTheory/Integral/IntegralEqImproper.lean Modified Mathlib/MeasureTheory/Integral/Marginal.lean Modified Mathlib/NumberTheory/LSeries/DirichletContinuation.lean Modified Mathlib/NumberTheory/LSeries/HurwitzZetaEven.lean Modified Mathlib/NumberTheory/LSeries/Nonvanishing.lean Modified Mathlib/NumberTheory/LSeries/PrimesInAP.lean Modified Mathlib/NumberTheory/LSeries/RiemannZeta.lean Modified Mathlib/NumberTheory/LSeries/ZMod.lean Modified Mathlib/NumberTheory/NumberField/CanonicalEmbedding/ConvexBody.lean Modified Mathlib/Order/Atoms.lean Modified Mathlib/Order/Basic.lean Modified Mathlib/Order/Bounds/Image.lean Modified Mathlib/Order/CompleteLattice/Finset.lean Modified Mathlib/Order/Interval/Set/Pi.lean Modified Mathlib/Order/Lattice.lean Modified Mathlib/Order/PiLex.lean Modified Mathlib/RingTheory/Ideal/Maps.lean Modified Mathlib/RingTheory/Localization/Basic.lean Modified Mathlib/RingTheory/MaximalSpectrum.lean Modified Mathlib/RingTheory/MvPowerSeries/Basic.lean Modified Mathlib/RingTheory/PrimeSpectrum.lean Modified Mathlib/Topology/Algebra/InfiniteSum/Group.lean Modified Mathlib/Topology/Algebra/Module/Multilinear/Bounded.lean Modified Mathlib/Topology/Algebra/WithZeroTopology.lean Modified Mathlib/Topology/ContinuousOn.lean Modified Mathlib/Topology/Order.lean Modified Mathlib/Topology/Separation/Basic.lean Modified Mathlib/Topology/ShrinkingLemma.lean 2024-12-28 18:52:52 1bf90b6 feat(GroupTheory/SpecificGroups/ZGroup): A finite Z-group has cyclic commutator subgroup (#20183) One more step towards classifying finite Z-groups. ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Hom/Basic.lean + def MonoidHom.commGroupOfInjective + def MonoidHom.commGroupOfSurjective Modified Mathlib/Algebra/Group/Subgroup/Map.lean + theorem Subgroup.map_subgroupOf_eq_of_le Modified Mathlib/GroupTheory/Abelianization.lean + theorem Subgroup.map_subtype_commutator Modified Mathlib/GroupTheory/SpecificGroups/ZGroup.lean + theorem IsZGroup.isCyclic_commutator 2024-12-28 14:09:27 0c419e3 feat: add `Submonoid.mem_closure_range_iff` (#19495) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/BigOperators/Finsupp.lean + theorem Finsupp.prod_zpow Added Mathlib/Algebra/Group/Subgroup/Finsupp.lean + theorem Subgroup.exists_finsupp_of_mem_closure_range + theorem Subgroup.exists_of_mem_closure_range + theorem Subgroup.mem_closure_range_iff + theorem Subgroup.mem_closure_range_iff_of_fintype Added Mathlib/Algebra/Group/Submonoid/Finsupp.lean + theorem Submonoid.exists_finsupp_of_mem_closure_range + theorem Submonoid.exists_of_mem_closure_range + theorem Submonoid.mem_closure_range_iff + theorem Submonoid.mem_closure_range_iff_of_fintype Modified Mathlib/Data/Finsupp/Multiset.lean 2024-12-28 13:28:22 32b1ec0 feat: set is subset of product of its image under projections (#20076) ESTIMATED CHANGES Modified Mathlib/Data/Set/Prod.lean + theorem Set.subset_prod 2024-12-28 11:04:06 161c83c feat(RingTheory): Jacobi-Zariski sequence (#19067) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Module/Presentation/Differentials.lean Modified Mathlib/Data/Finsupp/Basic.lean + theorem Finsupp.prod_sumElim +/- def Finsupp.sumElim Modified Mathlib/RingTheory/Generators.lean + theorem Algebra.Generators.map_toComp_ker + theorem Algebra.Generators.ofComp_toAlgHom_monomial_sumElim + theorem Algebra.Generators.toComp_toAlgHom + theorem Algebra.Generators.toComp_toAlgHom_monomial Modified Mathlib/RingTheory/Kaehler/CotangentComplex.lean + theorem Algebra.Generators.toKaehler_cotangentSpaceBasis Added Mathlib/RingTheory/Kaehler/JacobiZariski.lean + theorem Algebra.Generators.Cotangent.exact + theorem Algebra.Generators.Cotangent.map_ofComp_ker + theorem Algebra.Generators.Cotangent.surjective_map_ofComp + def Algebra.Generators.CotangentSpace.compEquiv + theorem Algebra.Generators.CotangentSpace.compEquiv_symm_inr + theorem Algebra.Generators.CotangentSpace.compEquiv_symm_zero + theorem Algebra.Generators.CotangentSpace.exact + theorem Algebra.Generators.CotangentSpace.fst_compEquiv + theorem Algebra.Generators.CotangentSpace.fst_compEquiv_apply + theorem Algebra.Generators.CotangentSpace.map_ofComp_surjective + theorem Algebra.Generators.CotangentSpace.map_toComp_injective + theorem Algebra.Generators.H1Cotangent.exact_map_δ' + theorem Algebra.Generators.H1Cotangent.exact_map_δ + theorem Algebra.Generators.H1Cotangent.exact_δ_map + theorem Algebra.Generators.H1Cotangent.map_comp_cotangentComplex_baseChange + def Algebra.Generators.H1Cotangent.δ + def Algebra.Generators.H1Cotangent.δAux + theorem Algebra.Generators.H1Cotangent.δAux_C + theorem Algebra.Generators.H1Cotangent.δAux_X + theorem Algebra.Generators.H1Cotangent.δAux_monomial + theorem Algebra.Generators.H1Cotangent.δAux_mul + theorem Algebra.Generators.H1Cotangent.δAux_ofComp + theorem Algebra.Generators.H1Cotangent.δAux_toAlgHom + theorem Algebra.Generators.H1Cotangent.δ_comp_equiv + theorem Algebra.Generators.H1Cotangent.δ_eq + theorem Algebra.Generators.H1Cotangent.δ_eq_δ + theorem Algebra.Generators.H1Cotangent.δ_eq_δAux + theorem Algebra.Generators.H1Cotangent.δ_map + def Algebra.Generators.kerCompPreimage + theorem Algebra.Generators.ofComp_kerCompPreimage + theorem Algebra.H1Cotangent.exact_map_δ + theorem Algebra.H1Cotangent.exact_δ_mapBaseChange + def Algebra.H1Cotangent.δ 2024-12-28 10:33:18 d09b869 chore: rename iteratedDeriv_const_{smul,mul} (#20136) ESTIMATED CHANGES Modified Mathlib/Analysis/Calculus/Deriv/Basic.lean + theorem derivWithin_id' Modified Mathlib/Analysis/Calculus/FDeriv/Basic.lean + theorem differentiableWithinAt_id' Modified Mathlib/Analysis/Calculus/IteratedDeriv/Lemmas.lean + theorem iteratedDerivWithin_comp_const_smul + theorem iteratedDeriv_comp_const_mul + theorem iteratedDeriv_comp_const_smul - theorem iteratedDeriv_const_mul - theorem iteratedDeriv_const_smul Modified Mathlib/Analysis/SpecialFunctions/ExpDeriv.lean 2024-12-28 03:20:01 e8a3084 chore(Algebra): rename theorems for consistency (#20271) Taking chore material out of #16094 to make the diff cleaner. Moves: isSquare_one -> IsSquare.one isSquare_sq -> IsSquare.sq even_two_nsmul -> Even.two_nsmul isSumSq_sum_mul_self -> IsSumSq.mul_self ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Even.lean + theorem IsSquare.one + theorem IsSquare.sq - theorem IsSquare_sq - theorem isSquare_one Modified Mathlib/Algebra/Ring/SumsOfSquares.lean + theorem IsSumSq.sum_mul_self - theorem isSumSq_sum_mul_self Modified Mathlib/Data/Rat/Lemmas.lean Modified Mathlib/LinearAlgebra/RootSystem/Finite/CanonicalBilinear.lean Modified Mathlib/NumberTheory/LegendreSymbol/QuadraticChar/Basic.lean 2024-12-28 03:20:00 aa72692 chore: use `app_delab` (#20249) This has the same behavior as `delab app.`, but protects against typos. The feature appeared in https://github.com/leanprover/lean4/pull/4976, though won't be documented until https://github.com/leanprover/lean4/pull/6450. ESTIMATED CHANGES Modified Mathlib/Algebra/BigOperators/Expect.lean +/- def BigOperators.delabFinsetExpect Modified Mathlib/Algebra/BigOperators/Group/Finset.lean +/- def BigOperators.delabFinsetProd +/- def BigOperators.delabFinsetSum Modified Mathlib/Analysis/InnerProductSpace/PiL2.lean Modified Mathlib/CategoryTheory/Closed/Cartesian.lean Modified Mathlib/CategoryTheory/Monoidal/Category.lean Modified Mathlib/Data/Matrix/Notation.lean Modified Mathlib/Data/Prod/Basic.lean Modified Mathlib/Data/SetLike/Basic.lean Modified Mathlib/FieldTheory/Adjoin.lean Modified Mathlib/LinearAlgebra/LinearIndependent.lean Modified Mathlib/LinearAlgebra/Matrix/PosDef.lean Modified Mathlib/Order/SetNotation.lean Modified Mathlib/RingTheory/Derivation/DifferentialRing.lean Modified Mathlib/Util/Delaborators.lean +/- def delab_not_in 2024-12-28 03:19:58 9bfe1e0 doc: Update Maps.lean (#20207) Added missing apostrophe (G -> G') in the documentation of [SimpleGraph.Embedding](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Combinatorics/SimpleGraph/Maps.html#SimpleGraph.Embedding) ESTIMATED CHANGES Modified Mathlib/Combinatorics/SimpleGraph/Maps.lean 2024-12-28 03:19:57 370858d fix: improve to_additive warning message (#20199) * Also remove an unused simp extension from the test file, but import another low-level without many dependencies. fixes #20181 ESTIMATED CHANGES Modified Mathlib/Tactic/ToAdditive/Frontend.lean Modified MathlibTest/toAdditive.lean + theorem one_eq_one' + theorem one_eq_one 2024-12-28 02:37:52 054515e docs: fix links from docs to test (#20276) Update links that reference the old `test` folder to use `MathlibTest`. Related to #13328. ESTIMATED CHANGES Modified Mathlib/Analysis/SpecialFunctions/Integrals.lean Modified Mathlib/Data/Fin/VecNotation.lean Modified Mathlib/Data/Matrix/Notation.lean Modified Mathlib/LinearAlgebra/Matrix/Determinant/Basic.lean Modified Mathlib/Tactic/Bound.lean Modified Mathlib/Tactic/MoveAdd.lean Modified Mathlib/Tactic/Use.lean Modified Mathlib/Tactic/Widget/StringDiagram.lean 2024-12-27 19:43:12 1b71c69 chore: move Logic/Small/{Group,Ring,Module} to Algebra/Small (#20123) This commit establishes that no file in `Logic/` imports any file in `Algebra/`. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Category/MonCat/Limits.lean Renamed Mathlib/Logic/Small/Group.lean to Mathlib/Algebra/Small/Group.lean Renamed Mathlib/Logic/Small/Module.lean to Mathlib/Algebra/Small/Module.lean Renamed Mathlib/Logic/Small/Ring.lean to Mathlib/Algebra/Small/Ring.lean 2024-12-27 19:18:07 f332af8 chore(RingTheory/LocalRing): strengthen `Module.free_of_flat_of_isLocalRing` (#19846) Make the fact that the proof works with any `k`-basis of `k ⊗[R] M` explicit and deduce from this that any generating family contains a basis. ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/LinearIndependent.lean + theorem exists_linearIndependent' Modified Mathlib/RingTheory/LocalRing/Module.lean + theorem Module.exists_basis_of_basis_baseChange + theorem Module.exists_basis_of_span_of_flat + theorem Module.exists_basis_of_span_of_maximalIdeal_rTensor_injective 2024-12-27 18:42:23 e85c35e chore: protect `Polynomial.map_eq_zero` (#20268) Protect `Polynomial.map_eq_zero` to avoid conflict with `_root_.map_eq_zero`. ESTIMATED CHANGES Modified Mathlib/Algebra/Polynomial/FieldDivision.lean - theorem Polynomial.map_eq_zero Modified Mathlib/Algebra/Polynomial/Splits.lean 2024-12-27 13:01:13 cdf32a0 feat(CategoryTheory/Adjunction/Additive): adjunctions between additive functors (#20083) This provides some results and constructions for adjunctions between functors on preadditive categories: * If one of the adjoint functors is additive, so is the other. * If one of the adjoint functors is additive, the equivalence `Adjunction.homEquiv` lifts to an additive equivalence `Adjunction.homAddEquiv`. * We also give a version of this additive equivalence as an isomorphism of `preadditiveYoneda` functors (analogous to `Adjunction.compYonedaIso`), in `Adjunction.compPreadditiveYonedaIso`. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Adjunction/Additive.lean + def CategoryTheory.Adjunction.compPreadditiveYonedaIso + theorem CategoryTheory.Adjunction.compPreadditiveYonedaIso_hom_app_app_apply + theorem CategoryTheory.Adjunction.compPreadditiveYonedaIso_inv_app_app_apply + def CategoryTheory.Adjunction.homAddEquiv + theorem CategoryTheory.Adjunction.homAddEquiv_add + theorem CategoryTheory.Adjunction.homAddEquiv_apply + theorem CategoryTheory.Adjunction.homAddEquiv_neg + theorem CategoryTheory.Adjunction.homAddEquiv_sub + theorem CategoryTheory.Adjunction.homAddEquiv_symm_add + theorem CategoryTheory.Adjunction.homAddEquiv_symm_apply + theorem CategoryTheory.Adjunction.homAddEquiv_symm_neg + theorem CategoryTheory.Adjunction.homAddEquiv_symm_sub + theorem CategoryTheory.Adjunction.homAddEquiv_symm_zero + theorem CategoryTheory.Adjunction.homAddEquiv_zero + theorem CategoryTheory.Adjunction.left_adjoint_additive + theorem CategoryTheory.Adjunction.right_adjoint_additive 2024-12-27 12:17:51 2a7dd2d feat(MetricSpace): add `Metric.biInter_gt_ball` etc (#20262) ESTIMATED CHANGES Modified Mathlib/Order/Basic.lean + theorem forall_gt_ge_iff + theorem forall_lt_le_iff Modified Mathlib/Topology/MetricSpace/Pseudo/Lemmas.lean + theorem Metric.biInter_gt_ball + theorem Metric.biInter_gt_closedBall + theorem Metric.biUnion_lt_ball + theorem Metric.biUnion_lt_closedBall 2024-12-27 11:03:12 6ab855d chore: rename `MulEquiv.mulEquivOfUnique` to `MulEquiv.ofUnique` (#20243) ESTIMATED CHANGES Modified Mathlib/Algebra/GCDMonoid/Basic.lean Modified Mathlib/Algebra/Group/Equiv/Basic.lean - def MulEquiv.mulEquivOfUnique + def MulEquiv.ofUnique Modified Mathlib/Algebra/Ring/Equiv.lean + def RingEquiv.ofUnique - def RingEquiv.ringEquivOfUnique Modified Mathlib/CategoryTheory/Limits/Shapes/Types.lean Modified Mathlib/Data/FinEnum.lean Modified Mathlib/GroupTheory/Perm/Cycle/Type.lean Modified Mathlib/LinearAlgebra/Dimension/Free.lean Modified Mathlib/LinearAlgebra/Matrix/SpecialLinearGroup.lean Modified Mathlib/Logic/Equiv/Basic.lean Modified Mathlib/Logic/Equiv/Defs.lean - def Equiv.equivOfUnique +/- def Equiv.equivPUnit + def Equiv.ofUnique Modified Mathlib/MeasureTheory/MeasurableSpace/Embedding.lean Modified Mathlib/Order/Estimator.lean Modified Mathlib/Order/RelIso/Basic.lean + def RelIso.ofUniqueOfIrrefl + def RelIso.ofUniqueOfRefl - def RelIso.relIsoOfUniqueOfIrrefl - def RelIso.relIsoOfUniqueOfRefl Modified Mathlib/RepresentationTheory/GroupCohomology/Resolution.lean Modified Mathlib/RingTheory/DedekindDomain/Ideal.lean Modified Mathlib/SetTheory/Cardinal/Basic.lean Modified Mathlib/SetTheory/Game/Nim.lean Modified Mathlib/SetTheory/Game/Ordinal.lean Modified Mathlib/SetTheory/Ordinal/Basic.lean Modified Mathlib/Topology/Homeomorph.lean 2024-12-27 09:22:42 5ed97c4 chore(Integral/Asymptotics): drop noop `_root_.Asymptotics` (#20253) They're inside `namespace Asymptotics`. ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Integral/Asymptotics.lean +/- theorem Asymptotics.IsBigO.integrable +/- theorem Asymptotics.IsBigO.integrableAtFilter 2024-12-27 09:22:41 5c237a9 chore(Process/Stopping): merge `measurableSpace_le` and `measurableSpace_le'` (#20237) Assume `[IsDirected ι (· ≤ ·)]` instead of `SemilatticeSup ι` or `atTop.NeBot` ESTIMATED CHANGES Modified Mathlib/Probability/Process/Stopping.lean - theorem MeasureTheory.IsStoppingTime.measurableSpace_le' +/- theorem MeasureTheory.IsStoppingTime.measurableSpace_le 2024-12-26 18:55:21 d5e4a91 refactor(LinearAlgebra/BilinearMap): Improve bilinear map docstrings (#20125) I don't find the current docstrings at the top of `LinearAlgebra/BilinearMap` helpful for understanding what the definitions do - in fact the current string for `LinearMap.compl₂` and `LinearMap.compr₂` seem to me to be incorrect. This PR gives what seem to me to be more useful / correct descriptions. ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/BilinearMap.lean 2024-12-26 15:27:05 b145b11 feat: norm positivity extension proves strict positivity (#10276) Closes #5265. ESTIMATED CHANGES Modified Mathlib/Analysis/InnerProductSpace/Basic.lean Modified Mathlib/Analysis/InnerProductSpace/Rayleigh.lean Modified Mathlib/Analysis/Normed/Group/Basic.lean +/- def Mathlib.Meta.Positivity.evalAddNorm +/- def Mathlib.Meta.Positivity.evalMulNorm Modified Mathlib/Combinatorics/SimpleGraph/Triangle/Removal.lean Modified Mathlib/Geometry/Euclidean/Angle/Oriented/Basic.lean Modified Mathlib/Tactic/ReduceModChar.lean Modified Mathlib/Util/Qq.lean + def Qq.findLocalDeclWithTypeQ? Modified MathlibTest/positivity.lean 2024-12-26 12:12:45 a0a62fe feat(Algebra/Colimit/ModuleRing): split into Module and Ring (#20247) 20 files see a 100+ decrease in transitive imports. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Category/AlgebraCat/Limits.lean Modified Mathlib/Algebra/Category/ModuleCat/Limits.lean Modified Mathlib/Algebra/Colimit/DirectLimit.lean Renamed Mathlib/Algebra/Colimit/ModuleRing.lean to Mathlib/Algebra/Colimit/Module.lean - theorem Field.DirectLimit.exists_inv - def Ring.DirectLimit.congr - theorem Ring.DirectLimit.congr_apply_of - theorem Ring.DirectLimit.congr_symm_apply_of - theorem Ring.DirectLimit.exists_of - theorem Ring.DirectLimit.induction_on - def Ring.DirectLimit.lift - theorem Ring.DirectLimit.lift_injective - theorem Ring.DirectLimit.lift_of - theorem Ring.DirectLimit.lift_unique - def Ring.DirectLimit.map - theorem Ring.DirectLimit.map_apply_of - theorem Ring.DirectLimit.map_comp - theorem Ring.DirectLimit.map_id - theorem Ring.DirectLimit.of.zero_exact - theorem Ring.DirectLimit.of_f - theorem Ring.DirectLimit.of_injective - theorem Ring.DirectLimit.quotientMk_of - def Ring.DirectLimit.ringEquiv - theorem Ring.DirectLimit.ringEquiv_of - theorem Ring.DirectLimit.ringEquiv_symm_mk - def Ring.DirectLimit Added Mathlib/Algebra/Colimit/Ring.lean + theorem Field.DirectLimit.exists_inv + def Ring.DirectLimit.congr + theorem Ring.DirectLimit.congr_apply_of + theorem Ring.DirectLimit.congr_symm_apply_of + theorem Ring.DirectLimit.exists_of + theorem Ring.DirectLimit.induction_on + def Ring.DirectLimit.lift + theorem Ring.DirectLimit.lift_injective + theorem Ring.DirectLimit.lift_of + theorem Ring.DirectLimit.lift_unique + def Ring.DirectLimit.map + theorem Ring.DirectLimit.map_apply_of + theorem Ring.DirectLimit.map_comp + theorem Ring.DirectLimit.map_id + theorem Ring.DirectLimit.of.zero_exact + theorem Ring.DirectLimit.of_f + theorem Ring.DirectLimit.of_injective + theorem Ring.DirectLimit.quotientMk_of + def Ring.DirectLimit.ringEquiv + theorem Ring.DirectLimit.ringEquiv_of + theorem Ring.DirectLimit.ringEquiv_symm_mk + def Ring.DirectLimit Modified Mathlib/Algebra/Homology/LocalCohomology.lean Modified Mathlib/LinearAlgebra/TensorProduct/DirectLimit.lean Modified Mathlib/RingTheory/FreeCommRing.lean 2024-12-26 07:24:15 9adbe92 docs: fix typos across repository (#20239) Supercedes https://github.com/leanprover-community/mathlib4/pull/20236. Hopefully this stops a few typos pull requests later. Uses `crates-ci/typos`, with the following config: ```toml [default.extend-words] # keywords & abbreviations pn = "pn" hae = "hae" hom = "hom" mor = "mor" thm = "thm" tpos = "tpos" hpe = "hpe" fle = "fle" eis = "eis" iy = "iy" hge = "hge" alls = "alls" struc = "struc" onl = "onl" hav = "hav" hax = "hax" ba = "ba" ein = "ein" adn = "adn" loopup = "loopup" hsa = "hsa" dum = "dum" mapp = "mapp" nd = "nd" ist = "ist" haa = "haa" ot = "ot" comon = "comon" ihs = "ihs" thr = "thr" projectives = "projectives" hda = "hda" ane = "ane" hsi = "hsi" minimals = "minimals" ninj = "ninj" ue = "ue" tne = "tne" lits = "lits" ine = "ine" tre = "tre" fo = "fo" nam = "nam" larg = "larg" reord = "reord" nin = "nin" toi = "toi" ands = "ands" hte = "hte" strat = "strat" hink = "hink" lastr = "lastr" wth = "wth" iin = "iin" # deprecations based on typos continous = "continous" # names and non-english words falso = "falso" yoh = "yoh" tak = "tak" lacker = "lacker" fonctions = "fonctions" calle = "calle" gool = "gool" sur = "sur" periodes = "periodes" waring = "waring" espaces = "espaces" yau = "yau" topologie = "topologie" claus = "claus" parth = "parth" ines = "ines" fike = "fike" tunnell = "tunnell" groupes = "groupes" htmp = "htmp" ket = "ket" clos = "clos" abd = "abd" # typo that i'm worried about breaking conciousness = "conciousness" # part of a test assum = "assum" # this might just be an abbrv but it's in a tactic and not used anywhere else [files] extend-exclude = ["docs/references.bib"] ``` I've dropped this config from this PR, but these typos ran across the repository - it may be beneficial for there to be CI to stop these unnecessary theorem deprecations. However, as the config also indicates, this captures a lot of false positives from the various abbreviations used. ESTIMATED CHANGES Modified Archive/Wiedijk100Theorems/BallotProblem.lean Modified Counterexamples/DiscreteTopologyNonDiscreteUniformity.lean Modified Mathlib/Algebra/Group/Defs.lean Modified Mathlib/Algebra/Module/Presentation/DirectSum.lean Modified Mathlib/Algebra/Module/SnakeLemma.lean Modified Mathlib/Algebra/Module/Submodule/Invariant.lean Modified Mathlib/Algebra/MvPolynomial/SchwartzZippel.lean Modified Mathlib/Algebra/Order/Group/Unbundled/Abs.lean Modified Mathlib/Algebra/Tropical/BigOperators.lean Modified Mathlib/AlgebraicGeometry/Cover/MorphismProperty.lean Modified Mathlib/AlgebraicGeometry/Morphisms/SurjectiveOnStalks.lean Modified Mathlib/AlgebraicGeometry/Over.lean Modified Mathlib/AlgebraicGeometry/ProjectiveSpectrum/Basic.lean Modified Mathlib/AlgebraicGeometry/Sites/Small.lean Modified Mathlib/Analysis/BoxIntegral/UnitPartition.lean Modified Mathlib/Analysis/CStarAlgebra/ApproximateUnit.lean Modified Mathlib/Analysis/Normed/Order/Hom/Ultra.lean Modified Mathlib/CategoryTheory/Comma/OverClass.lean Modified Mathlib/CategoryTheory/Limits/Final.lean Modified Mathlib/CategoryTheory/Limits/FinallySmall.lean Modified Mathlib/CategoryTheory/Limits/FunctorCategory/Basic.lean Modified Mathlib/CategoryTheory/Limits/Indization/IndObject.lean Modified Mathlib/CategoryTheory/Limits/Preserves/Opposites.lean - theorem CategoryTheory.Limits.perservesColimits_op + theorem CategoryTheory.Limits.preservesColimits_op Modified Mathlib/CategoryTheory/Limits/Shapes/IsTerminal.lean Modified Mathlib/CategoryTheory/Sites/EqualizerSheafCondition.lean Modified Mathlib/CategoryTheory/Yoneda.lean Modified Mathlib/Condensed/Discrete/Characterization.lean + theorem CondensedSet.mem_locallyConstant_essImage_of_isColimit_mapCocone - theorem CondensedSet.mem_locallyContant_essImage_of_isColimit_mapCocone + theorem LightCondSet.mem_locallyConstant_essImage_of_isColimit_mapCocone - theorem LightCondSet.mem_locallyContant_essImage_of_isColimit_mapCocone Modified Mathlib/Data/Finsupp/SMulWithZero.lean Modified Mathlib/Data/Matrix/Block.lean Modified Mathlib/Data/Matrix/Invertible.lean Modified Mathlib/Data/Matrix/Rank.lean Modified Mathlib/Data/PFunctor/Univariate/M.lean - theorem PFunctor.Approx.agree_trival + theorem PFunctor.Approx.agree_trivial Modified Mathlib/Data/Real/EReal.lean Modified Mathlib/FieldTheory/IsAlgClosed/Basic.lean Modified Mathlib/Geometry/Manifold/Instances/Sphere.lean Modified Mathlib/GroupTheory/Nilpotent.lean - theorem is_decending_rev_series_of_is_ascending + theorem is_descending_rev_series_of_is_ascending Modified Mathlib/GroupTheory/Sylow.lean Modified Mathlib/GroupTheory/Transfer.lean Modified Mathlib/LinearAlgebra/AffineSpace/AffineMap.lean Modified Mathlib/LinearAlgebra/Eigenspace/Pi.lean Modified Mathlib/LinearAlgebra/Matrix/SchurComplement.lean Modified Mathlib/LinearAlgebra/PerfectPairing.lean Modified Mathlib/MeasureTheory/Covering/Vitali.lean + theorem Vitali.exists_disjoint_subfamily_covering_enlargement + theorem Vitali.exists_disjoint_subfamily_covering_enlargement_closedBall - theorem Vitali.exists_disjoint_subfamily_covering_enlargment - theorem Vitali.exists_disjoint_subfamily_covering_enlargment_closedBall Modified Mathlib/MeasureTheory/Integral/SetIntegral.lean Modified Mathlib/MeasureTheory/MeasurableSpace/CountablyGenerated.lean Modified Mathlib/NumberTheory/Cyclotomic/Three.lean Modified Mathlib/NumberTheory/LSeries/PrimesInAP.lean Modified Mathlib/NumberTheory/NumberField/Completion.lean Modified Mathlib/NumberTheory/Padics/MahlerBasis.lean Modified Mathlib/NumberTheory/RamificationInertia/Basic.lean Modified Mathlib/Order/Grade.lean Modified Mathlib/Order/KrullDimension.lean Modified Mathlib/Order/SuccPred/WithBot.lean Modified Mathlib/Probability/Independence/Kernel.lean Modified Mathlib/RingTheory/GradedAlgebra/HomogeneousLocalization.lean Modified Mathlib/RingTheory/Lasker.lean Modified Mathlib/RingTheory/LaurentSeries.lean Modified Mathlib/RingTheory/MvPolynomial/EulerIdentity.lean Modified Mathlib/RingTheory/MvPowerSeries/Order.lean Modified Mathlib/RingTheory/PowerSeries/PiTopology.lean Modified Mathlib/RingTheory/RootsOfUnity/AlgebraicallyClosed.lean Modified Mathlib/RingTheory/Valuation/ValuationSubring.lean Modified Mathlib/Tactic/Algebraize.lean Modified Mathlib/Tactic/FunProp/Core.lean Modified Mathlib/Tactic/FunProp/Theorems.lean Modified Mathlib/Tactic/ReduceModChar.lean Modified Mathlib/Tactic/UnsetOption.lean Modified Mathlib/Tactic/Variable.lean Modified Mathlib/Topology/Connected/Clopen.lean Modified Mathlib/Topology/Order/OrderClosed.lean Modified Mathlib/Topology/UniformSpace/Dini.lean Modified MathlibTest/algebraize.lean Modified MathlibTest/zmod.lean Modified scripts/add_deprecations.sh Modified scripts/late_importers.sh 2024-12-26 07:24:13 4ccace0 chore(*): golf using `omega` (#20231) Found by https://github.com/dwrensha/tryAtEachStep ESTIMATED CHANGES Modified Mathlib/Algebra/CubicDiscriminant.lean Modified Mathlib/Algebra/GeomSum.lean Modified Mathlib/Algebra/Homology/ExactSequence.lean Modified Mathlib/Algebra/Homology/HomotopyCategory/HomComplex.lean Modified Mathlib/Algebra/Polynomial/Module/Basic.lean Modified Mathlib/Algebra/Polynomial/UnitTrinomial.lean Modified Mathlib/AlgebraicTopology/DoldKan/Faces.lean Modified Mathlib/Analysis/Convex/Between.lean Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Basic.lean Modified Mathlib/CategoryTheory/ComposableArrows.lean Modified Mathlib/CategoryTheory/Preadditive/Schur.lean Modified Mathlib/Combinatorics/Enumerative/Catalan.lean Modified Mathlib/Combinatorics/Enumerative/DyckWord.lean Modified Mathlib/Combinatorics/SimpleGraph/Walk.lean Modified Mathlib/Data/FP/Basic.lean Modified Mathlib/Data/Int/Defs.lean +/- theorem Int.emod_two_eq_zero_or_one +/- theorem Int.neg_emod_two Modified Mathlib/Data/List/NodupEquivFin.lean Modified Mathlib/Data/List/Rotate.lean Modified Mathlib/Data/Nat/Defs.lean +/- theorem Nat.add_eq_one_iff +/- theorem Nat.add_succ_lt_add +/- theorem Nat.le_add_one_iff +/- theorem Nat.le_and_le_add_one_iff +/- theorem Nat.le_or_le_of_add_eq_add_pred Modified Mathlib/Data/Nat/Squarefree.lean Modified Mathlib/Data/Ordmap/Ordset.lean Modified Mathlib/Data/Real/Archimedean.lean Modified Mathlib/Data/ZMod/Basic.lean Modified Mathlib/Geometry/Euclidean/MongePoint.lean Modified Mathlib/GroupTheory/Coxeter/Length.lean Modified Mathlib/GroupTheory/FreeGroup/Basic.lean Modified Mathlib/GroupTheory/FreeGroup/Reduce.lean Modified Mathlib/GroupTheory/SpecificGroups/Alternating.lean Modified Mathlib/LinearAlgebra/BilinearForm/Orthogonal.lean Modified Mathlib/LinearAlgebra/Reflection.lean Modified Mathlib/ModelTheory/Semantics.lean Modified Mathlib/NumberTheory/LegendreSymbol/QuadraticChar/Basic.lean Modified Mathlib/NumberTheory/LegendreSymbol/QuadraticReciprocity.lean Modified Mathlib/NumberTheory/Padics/PadicVal/Basic.lean Modified Mathlib/NumberTheory/Pell.lean Modified Mathlib/NumberTheory/PellMatiyasevic.lean Modified Mathlib/NumberTheory/PythagoreanTriples.lean Modified Mathlib/NumberTheory/SumTwoSquares.lean Modified Mathlib/NumberTheory/Transcendental/Liouville/Residual.lean Modified Mathlib/NumberTheory/Zsqrtd/QuadraticReciprocity.lean Modified Mathlib/Order/RelSeries.lean Modified Mathlib/RingTheory/MvPolynomial/Homogeneous.lean Modified Mathlib/RingTheory/Polynomial/Bernstein.lean Modified Mathlib/RingTheory/PowerSeries/Basic.lean 2024-12-26 06:54:11 8159be8 feat(Algebra/Colimit/ModuleRing): generalize to Semiring/AddCommMonoid (#20212) and remove all unnecessary IsDirected assumptions. ESTIMATED CHANGES Modified Mathlib/Algebra/Category/ModuleCat/Limits.lean +/- def ModuleCat.directLimitIsColimit Modified Mathlib/Algebra/Colimit/ModuleRing.lean +/- def AddCommGroup.DirectLimit.congr +/- theorem AddCommGroup.DirectLimit.congr_apply_of +/- theorem AddCommGroup.DirectLimit.congr_symm_apply_of +/- theorem AddCommGroup.DirectLimit.lift_unique +/- theorem AddCommGroup.DirectLimit.map_comp +/- theorem AddCommGroup.DirectLimit.map_id +/- theorem AddCommGroup.DirectLimit.of.zero_exact + inductive Module.DirectLimit.Eqv +/- def Module.DirectLimit.congr +/- theorem Module.DirectLimit.congr_apply_of +/- theorem Module.DirectLimit.congr_symm_apply_of + theorem Module.DirectLimit.exists_of₂ +/- theorem Module.DirectLimit.lift_unique +/- theorem Module.DirectLimit.map_comp +/- theorem Module.DirectLimit.map_id +/- theorem Module.DirectLimit.of.zero_exact + theorem Module.DirectLimit.quotMk_of +/- def Module.DirectLimit +/- def Ring.DirectLimit.congr +/- theorem Ring.DirectLimit.congr_apply_of +/- theorem Ring.DirectLimit.congr_symm_apply_of +/- theorem Ring.DirectLimit.lift_unique +/- theorem Ring.DirectLimit.map_comp +/- theorem Ring.DirectLimit.map_id +/- theorem Ring.DirectLimit.of_injective + theorem Ring.DirectLimit.quotientMk_of +/- def Ring.DirectLimit Modified Mathlib/GroupTheory/Congruence/Defs.lean Modified Mathlib/LinearAlgebra/TensorProduct/DirectLimit.lean 2024-12-25 13:34:02 5f24fc4 feat(Mathlib/Topology/Instances/NNReal): add `IsOrderBornology ℝ≥0` (#20126) Add instance `IsOrderBornology ℝ≥0`. motivation: I will need in #20040 (or a later PR) that the range of a compactly supported `NNReal`-valued function is bounded below and above. see also https://leanprover.zulipchat.com/#narrow/channel/217875-Is-there-code-for-X.3F/topic/IsOrderBornology.20.E2.84.9D.E2.89.A50 ESTIMATED CHANGES Modified Mathlib/Topology/Instances/NNReal.lean 2024-12-25 13:34:01 3fd2f54 chore(Data/Matroid): refactoring ext lemmas (#19664) ESTIMATED CHANGES Modified Mathlib/Data/Matroid/Basic.lean - theorem Matroid.eq_iff_indep_iff_indep_forall - theorem Matroid.eq_of_base_iff_base_forall - theorem Matroid.eq_of_indep_iff_indep_forall + theorem Matroid.ext_base + theorem Matroid.ext_base_indep + theorem Matroid.ext_iff_base + theorem Matroid.ext_iff_indep + theorem Matroid.ext_indep +/- structure Matroid Modified Mathlib/Data/Matroid/Closure.lean Modified Mathlib/Data/Matroid/Constructions.lean Modified Mathlib/Data/Matroid/Dual.lean Modified Mathlib/Data/Matroid/Map.lean Modified Mathlib/Data/Matroid/Restrict.lean 2024-12-25 13:01:17 0137f52 chore(*): use `gcongr` and `omega` here and there (#20228) ESTIMATED CHANGES Modified Archive/Wiedijk100Theorems/AbelRuffini.lean Modified Mathlib/Algebra/GeomSum.lean Modified Mathlib/Algebra/LinearRecurrence.lean Modified Mathlib/Algebra/MonoidAlgebra/Degree.lean Modified Mathlib/Algebra/Order/Floor.lean Modified Mathlib/Algebra/Order/Group/Abs.lean +/- theorem abs_add 2024-12-25 13:01:15 7110ddd chore(BigOperators/Ring): golf using `gcongr` (#20227) ESTIMATED CHANGES Modified Mathlib/Algebra/Order/BigOperators/Ring/Finset.lean 2024-12-25 13:01:14 04627c1 chore(Order/Field/Pointwise): golf (#20226) ... using `OrderIso.mulLeft₀` and `OrderIso.image_*` ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Field/Pointwise.lean +/- theorem LinearOrderedField.smul_Icc +/- theorem LinearOrderedField.smul_Ici +/- theorem LinearOrderedField.smul_Ico +/- theorem LinearOrderedField.smul_Iic +/- theorem LinearOrderedField.smul_Iio +/- theorem LinearOrderedField.smul_Ioc +/- theorem LinearOrderedField.smul_Ioi +/- theorem LinearOrderedField.smul_Ioo 2024-12-25 13:01:13 e32b8a5 chore(*): drop unneeded imports of OmegaCompletePartialOrder (#20216) Linter doesn't catch them, because files that import it use instances from this file, but there are other paths in many cases. ESTIMATED CHANGES Modified Mathlib/Algebra/Polynomial/Basic.lean Modified Mathlib/Algebra/Polynomial/Degree/TrailingDegree.lean Modified Mathlib/Algebra/Polynomial/Div.lean Modified Mathlib/Analysis/Calculus/ContDiff/FTaylorSeries.lean Modified Mathlib/Dynamics/TopologicalEntropy/CoverEntropy.lean Modified Mathlib/Dynamics/TopologicalEntropy/DynamicalEntourage.lean Modified Mathlib/FieldTheory/Separable.lean Modified Mathlib/MeasureTheory/Constructions/Cylinders.lean Modified Mathlib/RingTheory/PowerSeries/Inverse.lean Modified Mathlib/Topology/Algebra/Module/Basic.lean Modified Mathlib/Topology/Algebra/OpenSubgroup.lean Modified Mathlib/Topology/Sheaves/PresheafOfFunctions.lean Modified Mathlib/Topology/Sheaves/SheafCondition/PairwiseIntersections.lean 2024-12-25 12:52:35 4cf0d3f chore(ModelTheory/Definability): slightly shorter proof of definable_iff_finitely_definable (#20209) ESTIMATED CHANGES Modified Mathlib/ModelTheory/Definability.lean 2024-12-24 23:17:17 c93dd21 feat(CategoryTheory/Sites): categories of sheaves have a separator (#19979) In this file, we show that if `J : GrothendieckTopology C` and `A` is a preadditive category which has a separator (and suitable coproducts), then `Sheaf J A` has a separator. General results about generators are moved to a directory `CategoryTheory.Generator`. Together with #19914, we shall be able to deduce that categories of abelian sheaves are Grothendieck abelian categories (cf. #19986). ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Category/ModuleCat/Presheaf/Generator.lean Modified Mathlib/CategoryTheory/Adjunction/AdjointFunctorTheorems.lean Renamed Mathlib/CategoryTheory/Abelian/Generator.lean to Mathlib/CategoryTheory/Generator/Abelian.lean Renamed Mathlib/CategoryTheory/Generator.lean to Mathlib/CategoryTheory/Generator/Basic.lean Added Mathlib/CategoryTheory/Generator/Coproduct.lean + theorem CategoryTheory.IsSeparating.isSeparator_coproduct + theorem CategoryTheory.IsSeparating.isSeparator_of_isColimit_cofan Renamed Mathlib/CategoryTheory/Preadditive/Generator.lean to Mathlib/CategoryTheory/Generator/Preadditive.lean Added Mathlib/CategoryTheory/Generator/Presheaf.lean + theorem CategoryTheory.Presheaf.freeYonedaHomEquiv_comp + theorem CategoryTheory.Presheaf.freeYonedaHomEquiv_symm_comp + theorem CategoryTheory.Presheaf.isSeparating + theorem CategoryTheory.Presheaf.isSeparator Added Mathlib/CategoryTheory/Generator/Sheaf.lean + theorem CategoryTheory.Sheaf.isSeparating + theorem CategoryTheory.Sheaf.isSeparator 2024-12-24 14:48:15 3874e58 chore: update Mathlib dependencies 2024-12-24 (#20223) This PR updates the Mathlib dependencies. ESTIMATED CHANGES Modified lake-manifest.json 2024-12-24 05:25:11 d4736a1 chore(RingTheory.Binomial): add nsmul_right_inj to simplify some proofs (#20198) ESTIMATED CHANGES Modified Mathlib/RingTheory/Binomial.lean + theorem Ring.nsmul_right_inj 2024-12-24 02:39:50 2f55464 chore(SetTheory/Surreal/Basic): attach simp attr to zero_toGame (#20211) [As discussed in Zulip](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Missing.20simp.20in.20zero_toGame.3F/near/490612687), the linter likely used to discourage adding `@[simp]` to this theorem, despite this being eligible under `dsimp` rules. ESTIMATED CHANGES Modified Mathlib/SetTheory/Surreal/Basic.lean 2024-12-24 00:34:27 0c3ebf2 refactor: allow `deriv` to be used on topological vector spaces (#19108) Notably, this allows us to _state_ results about derivatives of matrices, without the statement encoding a choice of norm. For now, it is not possible to prove any of these statements without locally constructing a norm. This generalizes: * `HasFDerivAtFilter` * `HasFDerivWithinAt` * `HasFDerivAt` * `HasStrictFDerivAt` * `DifferentiableWithinAt` * `DifferentiableAt` * `fderivWithin` * `fderiv` * `DifferentiableOn` * `Differentiable` * `HasDerivAtFilter` * `HasDerivWithinAt` * `HasDerivAt` * `HasStrictDerivAt` * `derivWithin` * `deriv` Continues from [this Zulip thread](https://leanprover.zulipchat.com/#narrow/channel/116395-maths/topic/generalizing.20deriv.20to.20TVS/near/482705911). ESTIMATED CHANGES Modified Mathlib/Analysis/Asymptotics/TVS.lean Modified Mathlib/Analysis/Calculus/ContDiff/FTaylorSeries.lean Modified Mathlib/Analysis/Calculus/Deriv/Basic.lean Modified Mathlib/Analysis/Calculus/FDeriv/Basic.lean + theorem hasFDerivAtFilter_iff_isLittleO + theorem hasStrictFDerivAt_iff_isLittleO Modified Mathlib/Analysis/Calculus/FDeriv/Mul.lean Modified Mathlib/Analysis/Calculus/FDeriv/WithLp.lean Modified Mathlib/Analysis/Fourier/FourierTransformDeriv.lean Modified Mathlib/Analysis/InnerProductSpace/Calculus.lean Modified Mathlib/Analysis/SpecialFunctions/Pow/Deriv.lean Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/InverseDeriv.lean Modified Mathlib/NumberTheory/ModularForms/JacobiTheta/TwoVariable.lean Modified MathlibTest/Recall.lean 2024-12-23 23:53:53 26be2a8 feat(CategoryTheory): `StructuredArrow c (Comma.fst F G)` is equivalent to`Comma (Under.forget c ⋙ F) G` (#19891) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Comma/Over.lean + def CategoryTheory.CostructuredArrow.ofCommaFstEquivalence + def CategoryTheory.CostructuredArrow.ofCommaFstEquivalenceFunctor + def CategoryTheory.CostructuredArrow.ofCommaFstEquivalenceInverse + def CategoryTheory.StructuredArrow.ofCommaSndEquivalence + def CategoryTheory.StructuredArrow.ofCommaSndEquivalenceFunctor + def CategoryTheory.StructuredArrow.ofCommaSndEquivalenceInverse 2024-12-23 23:12:12 2a4e3ed feat: `0 < n ^ n` for all `n : ℕ` (#20059) From GrowthInGroups (LeanCamCombi) ESTIMATED CHANGES Modified Mathlib/Data/Nat/Defs.lean + theorem Nat.pow_self_mul_pow_self_le + theorem Nat.pow_self_pos 2024-12-23 21:59:15 64248df feat(Order): the transfinite iteration of a map (#19935) Given `φ : I → I` where `[SupSet I]`, we define the `j`th transfinite iteration of `φ` for any `j : J`, with `J` a well-ordered type: this is `transfiniteIterate φ j : I → I`. If `i₀ : I`, then `transfiniteIterate φ ⊥ i₀ = i₀`; if `j` is a non maximal element, than `transfiniteIterate φ (Order.succ j) i₀ = φ (transfiniteIterate φ j i₀)`; and if `j` is a limit element, `transfiniteIterate φ j i₀` is the supremum of the `transfiniteIterate φ l i₀` for `l < j`. (Hopefully, this will be used in order to show Grothendieck abelian categories have enough injectives.) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Order/TransfiniteIteration.lean + theorem monotone_transfiniteIterate + theorem top_mem_range_transfiniteIterate + theorem transfiniteIterate_bot + theorem transfiniteIterate_limit + theorem transfiniteIterate_succ 2024-12-23 16:36:43 7d83d27 chore(ModelTheory): restate iInf to a more convenient statement (#20166) ESTIMATED CHANGES Modified Mathlib/FieldTheory/AxGrothendieck.lean Modified Mathlib/ModelTheory/Algebra/Ring/Definability.lean Modified Mathlib/ModelTheory/Semantics.lean +/- theorem FirstOrder.Language.BoundedFormula.realize_iInf +/- theorem FirstOrder.Language.BoundedFormula.realize_iSup Modified Mathlib/ModelTheory/Syntax.lean 2024-12-23 16:10:08 00d6d7b feat(AlgebraicGeometry/EllipticCurve/Projective): add maps and base changes (#20022) ESTIMATED CHANGES Modified Mathlib/Algebra/MvPolynomial/Basic.lean + theorem MvPolynomial.eval₂_comp Modified Mathlib/AlgebraicGeometry/EllipticCurve/Projective.lean + theorem WeierstrassCurve.Projective.Equation.map + theorem WeierstrassCurve.Projective.baseChange_add + theorem WeierstrassCurve.Projective.baseChange_addX + theorem WeierstrassCurve.Projective.baseChange_addXYZ + theorem WeierstrassCurve.Projective.baseChange_addY + theorem WeierstrassCurve.Projective.baseChange_dblU + theorem WeierstrassCurve.Projective.baseChange_dblX + theorem WeierstrassCurve.Projective.baseChange_dblXYZ + theorem WeierstrassCurve.Projective.baseChange_dblY + theorem WeierstrassCurve.Projective.baseChange_dblZ + theorem WeierstrassCurve.Projective.baseChange_equation + theorem WeierstrassCurve.Projective.baseChange_negAddY + theorem WeierstrassCurve.Projective.baseChange_negDblY + theorem WeierstrassCurve.Projective.baseChange_negY + theorem WeierstrassCurve.Projective.baseChange_nonsingular + theorem WeierstrassCurve.Projective.baseChange_polynomial + theorem WeierstrassCurve.Projective.baseChange_polynomialX + theorem WeierstrassCurve.Projective.baseChange_polynomialY + theorem WeierstrassCurve.Projective.baseChange_polynomialZ + theorem WeierstrassCurve.Projective.comp_equiv_comp + theorem WeierstrassCurve.Projective.comp_smul + theorem WeierstrassCurve.Projective.map_addU + theorem WeierstrassCurve.Projective.map_addX + theorem WeierstrassCurve.Projective.map_addXYZ + theorem WeierstrassCurve.Projective.map_addY + theorem WeierstrassCurve.Projective.map_addZ + theorem WeierstrassCurve.Projective.map_dblU + theorem WeierstrassCurve.Projective.map_dblX + theorem WeierstrassCurve.Projective.map_dblXYZ + theorem WeierstrassCurve.Projective.map_dblY + theorem WeierstrassCurve.Projective.map_dblZ + theorem WeierstrassCurve.Projective.map_equation + theorem WeierstrassCurve.Projective.map_negAddY + theorem WeierstrassCurve.Projective.map_negDblY + theorem WeierstrassCurve.Projective.map_negY + theorem WeierstrassCurve.Projective.map_nonsingular + theorem WeierstrassCurve.Projective.map_polynomial + theorem WeierstrassCurve.Projective.map_polynomialX + theorem WeierstrassCurve.Projective.map_polynomialY + theorem WeierstrassCurve.Projective.map_polynomialZ 2024-12-23 15:42:21 848ab05 feat: the product of topological modules is a colimit (#20016) ... non-categorically ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/Prod.lean +/- theorem LinearMap.ker_prod_ker_le_ker_coprod Modified Mathlib/Topology/Algebra/Module/LinearMap.lean Modified Mathlib/Topology/Algebra/Module/LinearMapPiProd.lean - theorem ContinuousLinearMap.coe_coprod + theorem ContinuousLinearMap.comp_coprod +/- theorem ContinuousLinearMap.comp_fst_add_comp_snd +/- def ContinuousLinearMap.coprod + def ContinuousLinearMap.coprodEquiv + theorem ContinuousLinearMap.coprod_add - theorem ContinuousLinearMap.coprod_apply + theorem ContinuousLinearMap.coprod_comp_inl + theorem ContinuousLinearMap.coprod_comp_inr +/- theorem ContinuousLinearMap.coprod_inl_inr +/- theorem ContinuousLinearMap.ker_coprod_of_disjoint_range +/- theorem ContinuousLinearMap.ker_prod_ker_le_ker_coprod +/- theorem ContinuousLinearMap.range_coprod 2024-12-23 15:42:20 2cf37be feat: "outer product" of functions that tend to zero on the cocompact filter (#12313) Let `M` be a topological space with a continuous multiplication operation and a zero. We prove that if `f : α → M` and `g : β → M` are continuous functions that both tend to zero on the cocompact filter, then the "outer product" `fun (i : α × β) ↦ (f i.1) * (g i.2)` also tends to zero on the cocompact filter. We then specialize this result to the case that `α` and `β` have the discrete topology. ESTIMATED CHANGES Modified Mathlib/Topology/Algebra/Monoid.lean + theorem tendsto_mul_cocompact_nhds_zero + theorem tendsto_mul_cofinite_nhds_zero 2024-12-23 15:34:03 6fc4dca feat: evaluate Chebyshev polynomials at a hyperbolic cosine (#20129) We evaluate the Chebyshev polynomials at `cosh x`. This is the same content as #19953, but I am reopening it because bors closed #19953 for an unknown reason. ESTIMATED CHANGES Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Chebyshev.lean + theorem Polynomial.Chebyshev.C_two_mul_complex_cosh + theorem Polynomial.Chebyshev.C_two_mul_real_cosh + theorem Polynomial.Chebyshev.S_two_mul_complex_cosh + theorem Polynomial.Chebyshev.S_two_mul_real_cosh + theorem Polynomial.Chebyshev.T_complex_cosh + theorem Polynomial.Chebyshev.T_real_cosh + theorem Polynomial.Chebyshev.U_complex_cosh + theorem Polynomial.Chebyshev.U_real_cosh 2024-12-23 15:20:40 cd2213b feat(AlgebraicGeometry): `Spec R[X] -> Spec R` is open (#20159) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/AlgebraicGeometry/PrimeSpectrum/Polynomial.lean + theorem MvPolynomial.image_comap_C_basicOpen + theorem MvPolynomial.isOpenMap_comap_C + theorem MvPolynomial.mem_image_comap_C_basicOpen + theorem Polynomial.exists_image_comap_of_monic + theorem Polynomial.image_comap_C_basicOpen + theorem Polynomial.isCompact_image_comap_of_monic + theorem Polynomial.isOpenMap_comap_C + theorem Polynomial.isOpen_image_comap_of_monic + theorem Polynomial.mem_image_comap_C_basicOpen + theorem PrimeSpectrum.exists_image_comap_of_finite_of_free + theorem PrimeSpectrum.mem_image_comap_basicOpen + theorem PrimeSpectrum.mem_image_comap_zeroLocus_sdiff + theorem isNilpotent_tensor_residueField_iff Modified Mathlib/RingTheory/TensorProduct/MvPolynomial.lean + theorem MvPolynomial.rTensorAlgEquiv_apply 2024-12-23 14:32:20 9c1fb88 feat: generalize measure-theoretic definitions using ENorm (#20122) * Lemmas are *not* generalized yet (some lemmas can be generalized by just weakening the typeclasses, but others require rules how `enorm` interacts with algebraic operations). * All proofs that broke unfolded the definition. Now they rewrite with a lemma giving the definition in terms of `nnnorm`. ESTIMATED CHANGES Modified Mathlib/Analysis/NormedSpace/ENormedSpace.lean Modified Mathlib/Analysis/SpecialFunctions/JapaneseBracket.lean Modified Mathlib/MeasureTheory/Function/ConditionalExpectation/CondexpL2.lean Modified Mathlib/MeasureTheory/Function/ConditionalExpectation/Real.lean Modified Mathlib/MeasureTheory/Function/ConditionalExpectation/Unique.lean Modified Mathlib/MeasureTheory/Function/L1Space.lean +/- def MeasureTheory.HasFiniteIntegral +/- def MeasureTheory.Integrable +/- theorem MeasureTheory.hasFiniteIntegral_def + theorem MeasureTheory.hasFiniteIntegral_iff_nnnorm Modified Mathlib/MeasureTheory/Function/L2Space.lean Modified Mathlib/MeasureTheory/Function/LpSeminorm/Basic.lean +/- def MeasureTheory.Memℒp +/- def MeasureTheory.eLpNorm' + theorem MeasureTheory.eLpNorm'_eq_lintegral_nnnorm +/- theorem MeasureTheory.eLpNorm'_zero +/- def MeasureTheory.eLpNormEssSup + theorem MeasureTheory.eLpNormEssSup_eq_essSup_nnnorm Modified Mathlib/MeasureTheory/Function/LpSeminorm/CompareExp.lean Modified Mathlib/MeasureTheory/Function/LpSeminorm/TriangleInequality.lean Modified Mathlib/MeasureTheory/Function/LpSpace.lean Modified Mathlib/MeasureTheory/Function/SimpleFuncDenseLp.lean Modified Mathlib/MeasureTheory/Integral/Bochner.lean Modified Mathlib/MeasureTheory/Integral/BoundedContinuousFunction.lean Modified Mathlib/MeasureTheory/Integral/DominatedConvergence.lean Modified Mathlib/MeasureTheory/Integral/FundThmCalculus.lean Modified Mathlib/MeasureTheory/Integral/IntegrableOn.lean +/- def MeasureTheory.IntegrableAtFilter +/- def MeasureTheory.IntegrableOn Modified Mathlib/MeasureTheory/Integral/IntegralEqImproper.lean Modified Mathlib/MeasureTheory/Integral/Prod.lean Modified Mathlib/MeasureTheory/Integral/SetIntegral.lean Modified Mathlib/Probability/Density.lean Modified Mathlib/Probability/Distributions/Exponential.lean Modified Mathlib/Probability/Integration.lean Modified Mathlib/Probability/Kernel/Composition/IntegralCompProd.lean Modified Mathlib/Probability/Kernel/CondDistrib.lean 2024-12-23 14:21:20 9acfd2f feat: the product formula for number fields (#20132) In this file we prove the Product Formula for number fields: for any non-zero element `x` of a number field `K`, we have `∏|x|ᵥ=1` where the product runs over the equivalence classes of absoulte values of `K` and the `|⬝|ᵥ` are suitably normalized. ## Main Results * `NumberField.FinitePlace.prod_eq_inv_abs_norm`: for any non-zero element `x` of a number field `K`, the product `∏|x|ᵥ` of the absolute values of `x` associated to the finite places of `K` is equal to the inverse of the norm of `x`. * `NumberField.prod_abs_eq_one`: for any non-zero element `x` of a number field `K`, we have `∏|x|ᵥ=1` where the product runs over the equivalence classes of absoulte values of `K`. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/NumberTheory/NumberField/FinitePlaces.lean + theorem IsDedekindDomain.HeightOneSpectrum.embedding_mul_absNorm + theorem IsDedekindDomain.HeightOneSpectrum.equivHeightOneSpectrum_symm_apply +/- theorem NumberField.FinitePlace.pos_iff Added Mathlib/NumberTheory/NumberField/ProductFormula.lean + theorem NumberField.FinitePlace.prod_eq_inv_abs_norm + theorem NumberField.FinitePlace.prod_eq_inv_abs_norm_int + theorem NumberField.prod_abs_eq_one 2024-12-23 11:30:45 df6f676 feat(RingTheory/HahnSeries/Summable): define summable smulFamily (#20189) This PR defines a summable family of Hahn series given another summable family and a parametrized family of scalars. The basic use case is that we already have `powers`, which gives a summable family of non-negative powers of a positive-order Hahn series, and we want to make a family whose powers are multiplied by the coefficients of a formal power series. This will (eventually) give us an `R`-algebra map from `PowerSeries R` to `HahnSeries Γ R`. ESTIMATED CHANGES Modified Mathlib/RingTheory/HahnSeries/Summable.lean + theorem HahnSeries.SummableFamily.hsum_smulFamily + def HahnSeries.SummableFamily.smulFamily 2024-12-23 11:30:43 86975cc chore(RingTheory/HahnSeries/Summable): refactor powers (#20187) This PR removes the `IsDomain` hypothesis from the definition of the summable family `powers`. ESTIMATED CHANGES Modified Mathlib/RingTheory/HahnSeries/Summable.lean + theorem HahnSeries.SummableFamily.co_support_zero + theorem HahnSeries.SummableFamily.isPWO_iUnion_support_powers + theorem HahnSeries.SummableFamily.pow_finite_co_support + theorem HahnSeries.SummableFamily.support_pow_subset_closure - theorem HahnSeries.isPWO_iUnion_support_powers 2024-12-23 10:59:06 f12cb0c feat(GroupTheory/SpecificGroups/ZGroup): Extension of coprime Z-groups is a Z-group (#20147) One more step towards showing that every finite Z-group is a semidirect product of cyclic groups of coprime order. ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Subgroup/Ker.lean + theorem Subgroup.ker_subgroupMap Modified Mathlib/GroupTheory/Index.lean +/- theorem Subgroup.relindex_dvd_card Modified Mathlib/GroupTheory/PGroup.lean + theorem IsPGroup.le_or_disjoint_of_coprime Modified Mathlib/GroupTheory/SpecificGroups/ZGroup.lean + theorem IsPGroup.isCyclic_of_isZGroup + theorem IsZGroup.isZGroup_of_coprime Modified Mathlib/GroupTheory/Transfer.lean 2024-12-23 10:59:05 49dfbf2 chore(ModelTheory): restate some theorems about restricting variables (#20115) ESTIMATED CHANGES Modified Mathlib/ModelTheory/Definability.lean Modified Mathlib/ModelTheory/ElementaryMaps.lean Modified Mathlib/ModelTheory/Semantics.lean + theorem FirstOrder.Language.BoundedFormula.realize_restrictFreeVar' +/- theorem FirstOrder.Language.BoundedFormula.realize_restrictFreeVar + theorem FirstOrder.Language.Term.realize_restrictVar' +/- theorem FirstOrder.Language.Term.realize_restrictVar + theorem FirstOrder.Language.Term.realize_restrictVarLeft' +/- theorem FirstOrder.Language.Term.realize_restrictVarLeft 2024-12-23 10:59:04 c06a93f feat(CategoryTheory): AB5 and AB4* for condensed modules (#19892) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Condensed/AB.lean + theorem Condensed.hasExactColimitsOfShape + theorem Condensed.hasExactLimitsOfShape Modified Mathlib/Condensed/Limits.lean 2024-12-23 10:07:58 85bb89c feat(ModelTheory): boundedFormula_realize_eq_realize (#20174) ESTIMATED CHANGES Modified Mathlib/ModelTheory/Semantics.lean + theorem FirstOrder.Language.Formula.boundedFormula_realize_eq_realize 2024-12-23 09:22:27 26cd1c7 feat(GroupWithZero): `mul_(eq/ne)_zero_iff_(left/right)` (#20191) ESTIMATED CHANGES Modified Mathlib/Algebra/GroupWithZero/Defs.lean + theorem mul_eq_zero_iff_left + theorem mul_eq_zero_iff_right + theorem mul_ne_zero_iff_left + theorem mul_ne_zero_iff_right 2024-12-23 08:45:40 f0ccda8 feat(Holder): generalize a section to `HolderOnWith` (#20164) ESTIMATED CHANGES Modified Mathlib/Topology/EMetricSpace/Defs.lean + theorem Subtype.edist_mk_mk Modified Mathlib/Topology/EMetricSpace/Lipschitz.lean Modified Mathlib/Topology/MetricSpace/Antilipschitz.lean Modified Mathlib/Topology/MetricSpace/Holder.lean + theorem HolderOnWith.dist_le + theorem HolderOnWith.dist_le_of_le + theorem HolderOnWith.nndist_le + theorem HolderOnWith.nndist_le_of_le + theorem HolderWith.restrict_iff 2024-12-23 08:45:36 e258ed2 chore(CategoryTheory): generalize universes for WellPowered (#19992) If `C : Type u` and `Category.{v} C`, we generalize `WellPowered C` by introducing an auxiliary universe `w`. The category `C` satisfies `WellPowered.{w} C` now if it is locally small relative to `w` and the type of subobjects of any `X : C` is `w`-small. The previous definition corresponds to the case `w = v`. It was necessary to introduce a new file `CategoryTheory.Comma.LocallySmall`: it contains various `LocallySmall` instances for categories like `Comma`, `StructuredArrow`, `Over`, etc. Apart from this, the only "new" result is a `WellPowered.{w} C` instance for abelian categories satisfying `IsGrothendieckAbelian.{w} C`. This generalization of `WellPowered` is used in #20014. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Category/Grp/Subobject.lean Modified Mathlib/Algebra/Category/ModuleCat/Presheaf/Generator.lean Modified Mathlib/Algebra/Category/ModuleCat/Subobject.lean Modified Mathlib/CategoryTheory/Abelian/Generator.lean Modified Mathlib/CategoryTheory/Abelian/GrothendieckCategory.lean Modified Mathlib/CategoryTheory/Abelian/Subobject.lean Modified Mathlib/CategoryTheory/Adjunction/AdjointFunctorTheorems.lean +/- theorem CategoryTheory.Limits.hasColimits_of_hasLimits_of_isCoseparating +/- theorem CategoryTheory.Limits.hasLimits_of_hasColimits_of_isSeparating +/- theorem CategoryTheory.isLeftAdjoint_of_preservesColimits_of_isSeparating +/- theorem CategoryTheory.isRightAdjoint_of_preservesLimits_of_isCoseparating Added Mathlib/CategoryTheory/Comma/LocallySmall.lean Modified Mathlib/CategoryTheory/EssentiallySmall.lean Modified Mathlib/CategoryTheory/Generator.lean +/- theorem CategoryTheory.hasInitial_of_isCoseparating +/- theorem CategoryTheory.hasTerminal_of_isSeparating +/- theorem CategoryTheory.wellPowered_of_isDetecting +/- theorem CategoryTheory.wellPowered_of_isDetector Modified Mathlib/CategoryTheory/Limits/Opposites.lean +/- theorem CategoryTheory.Limits.hasColimits_of_hasLimits_op +/- theorem CategoryTheory.Limits.hasLimits_of_hasColimits_op Modified Mathlib/CategoryTheory/Subobject/Comma.lean +/- theorem CategoryTheory.CostructuredArrow.lift_projectQuotient +/- def CategoryTheory.CostructuredArrow.projectQuotient +/- theorem CategoryTheory.CostructuredArrow.projectQuotient_factors +/- theorem CategoryTheory.CostructuredArrow.projectQuotient_mk +/- def CategoryTheory.CostructuredArrow.quotientEquiv +/- theorem CategoryTheory.StructuredArrow.lift_projectSubobject +/- def CategoryTheory.StructuredArrow.projectSubobject +/- theorem CategoryTheory.StructuredArrow.projectSubobject_factors +/- theorem CategoryTheory.StructuredArrow.projectSubobject_mk +/- def CategoryTheory.StructuredArrow.subobjectEquiv Modified Mathlib/CategoryTheory/Subobject/Lattice.lean Modified Mathlib/CategoryTheory/Subobject/Types.lean Modified Mathlib/CategoryTheory/Subobject/WellPowered.lean +/- theorem CategoryTheory.wellPowered_congr +/- theorem CategoryTheory.wellPowered_of_equiv +/- theorem CategoryTheory.wellPowered_of_essentiallySmall_monoOver 2024-12-23 08:37:04 38b244b chore(*): rename lemmas about `𝓝[≥] a` etc (#20188) See [Zulip poll](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/naming.20convention.3A.20.60.F0.9D.93.9D.5B.E2.89.A5.5D.20a.60.20etc) Also slightly golf some proofs that were broken by the renames and drop unneeded typeclass assumptions in lemmas `Set.OrdConnected.mem_nhds*`. ESTIMATED CHANGES Modified Counterexamples/SorgenfreyLine.lean Modified Mathlib/Analysis/Analytic/Basic.lean Modified Mathlib/Analysis/Asymptotics/SpecificAsymptotics.lean Modified Mathlib/Analysis/BoxIntegral/DivergenceTheorem.lean Modified Mathlib/Analysis/Calculus/Deriv/Slope.lean Modified Mathlib/Analysis/Calculus/FDeriv/Extend.lean Modified Mathlib/Analysis/Calculus/FDeriv/Measurable.lean + theorem RightDerivMeasurableAux.A_mem_nhdsGT - theorem RightDerivMeasurableAux.A_mem_nhdsWithin_Ioi + theorem RightDerivMeasurableAux.B_mem_nhdsGT - theorem RightDerivMeasurableAux.B_mem_nhdsWithin_Ioi Modified Mathlib/Analysis/Calculus/FDeriv/Symmetric.lean Modified Mathlib/Analysis/Calculus/FirstDerivativeTest.lean Modified Mathlib/Analysis/Calculus/LHopital.lean Modified Mathlib/Analysis/Calculus/LineDeriv/Basic.lean Modified Mathlib/Analysis/Calculus/LocalExtr/Basic.lean Modified Mathlib/Analysis/Calculus/MeanValue.lean Modified Mathlib/Analysis/Calculus/Monotone.lean Modified Mathlib/Analysis/Calculus/Rademacher.lean Modified Mathlib/Analysis/Complex/Periodic.lean Modified Mathlib/Analysis/Complex/Schwarz.lean Modified Mathlib/Analysis/Convex/Deriv.lean Modified Mathlib/Analysis/Convex/Extrema.lean Modified Mathlib/Analysis/Convex/Gauge.lean Modified Mathlib/Analysis/Convex/Visible.lean Modified Mathlib/Analysis/MellinTransform.lean Modified Mathlib/Analysis/Normed/Field/Lemmas.lean + theorem NormedField.tendsto_norm_inv_nhdsNE_zero_atTop - theorem NormedField.tendsto_norm_inverse_nhdsWithin_0_atTop + theorem NormedField.tendsto_norm_zpow_nhdsNE_zero_atTop - theorem NormedField.tendsto_norm_zpow_nhdsWithin_0_atTop Modified Mathlib/Analysis/Normed/Group/Basic.lean + theorem comap_norm_nhdsGT_zero' - theorem comap_norm_nhdsWithin_Ioi_zero' + theorem tendsto_norm_div_self_nhdsNE - theorem tendsto_norm_div_self_punctured_nhds + theorem tendsto_norm_nhdsNE_one - theorem tendsto_norm_nhdsWithin_one - theorem tendsto_norm_one' Modified Mathlib/Analysis/SpecialFunctions/BinaryEntropy.lean Modified Mathlib/Analysis/SpecialFunctions/Exp.lean + theorem Complex.comap_exp_nhdsNE - theorem Complex.comap_exp_nhdsWithin_zero + theorem Complex.tendsto_exp_comap_re_atBot_nhdsNE - theorem Complex.tendsto_exp_comap_re_atBot_nhdsWithin + theorem Real.comap_exp_nhdsGT_zero - theorem Real.comap_exp_nhdsWithin_Ioi_zero + theorem Real.tendsto_exp_atBot_nhdsGT - theorem Real.tendsto_exp_atBot_nhdsWithin Modified Mathlib/Analysis/SpecialFunctions/Log/Deriv.lean Modified Mathlib/Analysis/SpecialFunctions/NonIntegrable.lean Modified Mathlib/Analysis/SpecialFunctions/Pow/Asymptotics.lean Modified Mathlib/Analysis/SpecialFunctions/SmoothTransition.lean Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Basic.lean Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/ComplexDeriv.lean Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/InverseDeriv.lean Modified Mathlib/Data/Real/Pi/Leibniz.lean Modified Mathlib/MeasureTheory/Constructions/BorelSpace/Metric.lean Modified Mathlib/MeasureTheory/Constructions/BorelSpace/Order.lean + theorem MeasurableSet.of_mem_nhdsGT + theorem MeasurableSet.of_mem_nhdsGT_aux - theorem measurableSet_of_mem_nhdsWithin_Ioi - theorem measurableSet_of_mem_nhdsWithin_Ioi_aux Modified Mathlib/MeasureTheory/Constructions/BorelSpace/Real.lean Modified Mathlib/MeasureTheory/Covering/Besicovitch.lean Modified Mathlib/MeasureTheory/Covering/DensityTheorem.lean Modified Mathlib/MeasureTheory/Covering/OneDim.lean Modified Mathlib/MeasureTheory/Covering/Vitali.lean Modified Mathlib/MeasureTheory/Function/LocallyIntegrable.lean Modified Mathlib/MeasureTheory/Group/AddCircle.lean Modified Mathlib/MeasureTheory/Integral/DominatedConvergence.lean Modified Mathlib/MeasureTheory/Integral/FundThmCalculus.lean Modified Mathlib/MeasureTheory/Integral/PeakFunction.lean Modified Mathlib/MeasureTheory/Measure/Doubling.lean Modified Mathlib/MeasureTheory/Measure/Hausdorff.lean Modified Mathlib/MeasureTheory/Measure/Lebesgue/EqHaar.lean Modified Mathlib/MeasureTheory/Measure/LevyProkhorovMetric.lean Modified Mathlib/MeasureTheory/Measure/MeasureSpace.lean Modified Mathlib/MeasureTheory/Measure/Stieltjes.lean Modified Mathlib/NumberTheory/LSeries/AbstractFuncEq.lean Modified Mathlib/NumberTheory/LSeries/Nonvanishing.lean Modified Mathlib/Probability/Kernel/Disintegration/MeasurableStieltjes.lean Modified Mathlib/SetTheory/Ordinal/Topology.lean + theorem Ordinal.hasBasis_nhds_Ioc - theorem Ordinal.nhdsBasis_Ioc + theorem Ordinal.nhdsLE_eq_nhds + theorem Ordinal.nhdsLT_eq_nhdsNE - theorem Ordinal.nhds_left'_eq_nhds_ne - theorem Ordinal.nhds_left_eq_nhds - theorem Ordinal.nhds_right' Modified Mathlib/Topology/Algebra/Group/Basic.lean + theorem tendsto_inv_nhdsGE + theorem tendsto_inv_nhdsGE_inv + theorem tendsto_inv_nhdsGT + theorem tendsto_inv_nhdsGT_inv + theorem tendsto_inv_nhdsLE + theorem tendsto_inv_nhdsLE_inv + theorem tendsto_inv_nhdsLT + theorem tendsto_inv_nhdsLT_inv - theorem tendsto_inv_nhdsWithin_Ici - theorem tendsto_inv_nhdsWithin_Ici_inv - theorem tendsto_inv_nhdsWithin_Iic - theorem tendsto_inv_nhdsWithin_Iic_inv - theorem tendsto_inv_nhdsWithin_Iio - theorem tendsto_inv_nhdsWithin_Iio_inv - theorem tendsto_inv_nhdsWithin_Ioi - theorem tendsto_inv_nhdsWithin_Ioi_inv Modified Mathlib/Topology/Algebra/InfiniteSum/Order.lean Modified Mathlib/Topology/Algebra/Order/Field.lean + theorem Filter.Tendsto.inv_tendsto_nhdsGT_zero - theorem Filter.Tendsto.inv_tendsto_zero + theorem comap_mulLeft_nhdsGT_zero + theorem eventually_nhdsGT_zero_mul_left - theorem eventually_nhdsWithin_pos_mul_left + theorem inv_nhdsGT_zero - theorem inv_nhdsWithin_Ioi_zero - theorem nhdsWithin_pos_comap_mul_left + theorem tendsto_inv_atTop_nhdsGT_zero - theorem tendsto_inv_atTop_zero' + theorem tendsto_inv_nhdsGT_zero - theorem tendsto_inv_zero_atTop Modified Mathlib/Topology/Algebra/Order/Floor.lean Modified Mathlib/Topology/Defs/Filter.lean Modified Mathlib/Topology/FiberBundle/Basic.lean Modified Mathlib/Topology/Instances/ENNReal.lean + theorem ENNReal.nhdsGT_coe_neBot + theorem ENNReal.nhdsGT_nat_neBot + theorem ENNReal.nhdsGT_ofNat_neBot + theorem ENNReal.nhdsGT_one_neBot + theorem ENNReal.nhdsGT_zero_neBot + theorem ENNReal.nhdsLT_neBot - theorem ENNReal.nhdsWithin_Iio_neBot - theorem ENNReal.nhdsWithin_Ioi_coe_neBot - theorem ENNReal.nhdsWithin_Ioi_nat_neBot - theorem ENNReal.nhdsWithin_Ioi_ofNat_nebot - theorem ENNReal.nhdsWithin_Ioi_one_neBot - theorem ENNReal.nhdsWithin_Ioi_zero_neBot Modified Mathlib/Topology/Order/Basic.lean + theorem exists_Icc_mem_subset_of_mem_nhdsGE + theorem exists_Icc_mem_subset_of_mem_nhdsLE - theorem exists_Icc_mem_subset_of_mem_nhdsWithin_Ici - theorem exists_Icc_mem_subset_of_mem_nhdsWithin_Iic + theorem nhdsGE_basis + theorem nhdsGE_basis_of_exists_gt + theorem nhdsGE_eq_iInf_inf_principal + theorem nhdsGE_eq_iInf_principal + theorem nhdsLE_basis + theorem nhdsLE_basis_of_exists_lt + theorem nhdsLE_eq_iInf_inf_principal + theorem nhdsLE_eq_iInf_principal - theorem nhdsWithin_Ici_basis' - theorem nhdsWithin_Ici_basis - theorem nhdsWithin_Ici_eq'' - theorem nhdsWithin_Ici_eq' - theorem nhdsWithin_Iic_basis' - theorem nhdsWithin_Iic_basis - theorem nhdsWithin_Iic_eq'' - theorem nhdsWithin_Iic_eq' Modified Mathlib/Topology/Order/Compact.lean Modified Mathlib/Topology/Order/DenselyOrdered.lean + theorem comap_coe_Iio_nhdsLT - theorem comap_coe_Iio_nhdsWithin_Iio + theorem comap_coe_Ioi_nhdsGT - theorem comap_coe_Ioi_nhdsWithin_Ioi + theorem comap_coe_Ioo_nhdsGT + theorem comap_coe_Ioo_nhdsLT - theorem comap_coe_Ioo_nhdsWithin_Iio - theorem comap_coe_Ioo_nhdsWithin_Ioi + theorem comap_coe_nhdsGT_of_Ioo_subset + theorem comap_coe_nhdsLT_of_Ioo_subset - theorem comap_coe_nhdsWithin_Iio_of_Ioo_subset - theorem comap_coe_nhdsWithin_Ioi_of_Ioo_subset + theorem nhdsGT_neBot_of_exists_gt + theorem nhdsWithin_Iio_self_neBot - theorem nhdsWithin_Ioi_self_neBot' + theorem nhdsWithin_Ioi_self_neBot Modified Mathlib/Topology/Order/IntermediateValue.lean Modified Mathlib/Topology/Order/IsLUB.lean Modified Mathlib/Topology/Order/LeftRight.lean + theorem nhdsGT_le_nhdsNE + theorem nhdsLE_sup_nhdsGE + theorem nhdsLE_sup_nhdsGT + theorem nhdsLT_le_nhdsNE + theorem nhdsLT_sup_nhdsGE + theorem nhdsLT_sup_nhdsGT + theorem nhdsWithin_Ici_self_neBot + theorem nhdsWithin_Iic_self_neBot - theorem nhds_left'_le_nhds_ne - theorem nhds_left'_sup_nhds_right' - theorem nhds_left'_sup_nhds_right - theorem nhds_left_sup_nhds_right' - theorem nhds_left_sup_nhds_right - theorem nhds_right'_le_nhds_ne Modified Mathlib/Topology/Order/LeftRightLim.lean Modified Mathlib/Topology/Order/LeftRightNhds.lean + theorem Set.OrdConnected.mem_nhdsGE + theorem Set.OrdConnected.mem_nhdsGT + theorem Set.OrdConnected.mem_nhdsLE + theorem Set.OrdConnected.mem_nhdsLT - theorem Set.OrdConnected.mem_nhdsWithin_Ici - theorem Set.OrdConnected.mem_nhdsWithin_Iic - theorem Set.OrdConnected.mem_nhdsWithin_Iio - theorem Set.OrdConnected.mem_nhdsWithin_Ioi + theorem TFAE_mem_nhdsGE + theorem TFAE_mem_nhdsGT + theorem TFAE_mem_nhdsLE + theorem TFAE_mem_nhdsLT - theorem TFAE_mem_nhdsWithin_Ici - theorem TFAE_mem_nhdsWithin_Iic - theorem TFAE_mem_nhdsWithin_Iio - theorem TFAE_mem_nhdsWithin_Ioi + theorem mem_nhdsGE_iff_exists_Icc_subset + theorem mem_nhdsGE_iff_exists_Ico_subset' + theorem mem_nhdsGE_iff_exists_Ico_subset + theorem mem_nhdsGE_iff_exists_mem_Ioc_Ico_subset + theorem mem_nhdsGT_iff_exists_Ioc_subset + theorem mem_nhdsGT_iff_exists_Ioo_subset' + theorem mem_nhdsGT_iff_exists_Ioo_subset + theorem mem_nhdsGT_iff_exists_mem_Ioc_Ioo_subset + theorem mem_nhdsLE_iff_exists_Icc_subset + theorem mem_nhdsLE_iff_exists_Ioc_subset' + theorem mem_nhdsLE_iff_exists_Ioc_subset + theorem mem_nhdsLE_iff_exists_mem_Ico_Ioc_subset + theorem mem_nhdsLT_iff_exists_Ico_subset + theorem mem_nhdsLT_iff_exists_Ioo_subset' + theorem mem_nhdsLT_iff_exists_Ioo_subset + theorem mem_nhdsLT_iff_exists_mem_Ico_Ioo_subset - theorem mem_nhdsWithin_Ici_iff_exists_Icc_subset - theorem mem_nhdsWithin_Ici_iff_exists_Ico_subset' - theorem mem_nhdsWithin_Ici_iff_exists_Ico_subset - theorem mem_nhdsWithin_Ici_iff_exists_mem_Ioc_Ico_subset - theorem mem_nhdsWithin_Iic_iff_exists_Icc_subset - theorem mem_nhdsWithin_Iic_iff_exists_Ioc_subset' - theorem mem_nhdsWithin_Iic_iff_exists_Ioc_subset - theorem mem_nhdsWithin_Iic_iff_exists_mem_Ico_Ioc_subset - theorem mem_nhdsWithin_Iio_iff_exists_Ico_subset - theorem mem_nhdsWithin_Iio_iff_exists_Ioo_subset' - theorem mem_nhdsWithin_Iio_iff_exists_Ioo_subset - theorem mem_nhdsWithin_Iio_iff_exists_mem_Ico_Ioo_subset - theorem mem_nhdsWithin_Ioi_iff_exists_Ioc_subset - theorem mem_nhdsWithin_Ioi_iff_exists_Ioo_subset' - theorem mem_nhdsWithin_Ioi_iff_exists_Ioo_subset - theorem mem_nhdsWithin_Ioi_iff_exists_mem_Ioc_Ioo_subset + theorem nhdsGE_basis_Icc + theorem nhdsGE_basis_Ico + theorem nhdsGT_basis + theorem nhdsGT_basis_of_exists_gt + theorem nhdsGT_eq_bot_iff + theorem nhdsLE_basis_Icc + theorem nhdsLT_basis + theorem nhdsLT_basis_of_exists_lt + theorem nhdsLT_eq_bot_iff - theorem nhdsWithin_Ici_basis_Icc - theorem nhdsWithin_Ici_basis_Ico - theorem nhdsWithin_Iic_basis_Icc - theorem nhdsWithin_Iio_basis' - theorem nhdsWithin_Iio_basis - theorem nhdsWithin_Iio_eq_bot_iff - theorem nhdsWithin_Ioi_basis' - theorem nhdsWithin_Ioi_basis - theorem nhdsWithin_Ioi_eq_bot_iff Modified Mathlib/Topology/Order/Monotone.lean + theorem Antitone.tendsto_nhdsGT + theorem Antitone.tendsto_nhdsLT - theorem Antitone.tendsto_nhdsWithin_Iio - theorem Antitone.tendsto_nhdsWithin_Ioi + theorem AntitoneOn.tendsto_nhdsGT + theorem AntitoneOn.tendsto_nhdsLT - theorem AntitoneOn.tendsto_nhdsWithin_Iio - theorem AntitoneOn.tendsto_nhdsWithin_Ioi + theorem Monotone.tendsto_nhdsGT + theorem Monotone.tendsto_nhdsLT - theorem Monotone.tendsto_nhdsWithin_Iio - theorem Monotone.tendsto_nhdsWithin_Ioi + theorem MonotoneOn.tendsto_nhdsGT + theorem MonotoneOn.tendsto_nhdsLT - theorem MonotoneOn.tendsto_nhdsWithin_Iio - theorem MonotoneOn.tendsto_nhdsWithin_Ioi Modified Mathlib/Topology/Order/MonotoneContinuity.lean Modified Mathlib/Topology/Order/NhdsSet.lean Modified Mathlib/Topology/Order/OrderClosed.lean + theorem Icc_mem_nhdsGE + theorem Icc_mem_nhdsGE_of_mem + theorem Icc_mem_nhdsGT + theorem Icc_mem_nhdsGT_of_mem + theorem Icc_mem_nhdsLE + theorem Icc_mem_nhdsLE_of_mem + theorem Icc_mem_nhdsLT + theorem Icc_mem_nhdsLT_of_mem - theorem Icc_mem_nhdsWithin_Ici' - theorem Icc_mem_nhdsWithin_Ici - theorem Icc_mem_nhdsWithin_Iic' - theorem Icc_mem_nhdsWithin_Iic - theorem Icc_mem_nhdsWithin_Iio' - theorem Icc_mem_nhdsWithin_Iio - theorem Icc_mem_nhdsWithin_Ioi' - theorem Icc_mem_nhdsWithin_Ioi + theorem Ico_mem_nhdsGE + theorem Ico_mem_nhdsGE_of_mem + theorem Ico_mem_nhdsGT + theorem Ico_mem_nhdsGT_of_mem + theorem Ico_mem_nhdsLE_of_mem + theorem Ico_mem_nhdsLT + theorem Ico_mem_nhdsLT_of_mem - theorem Ico_mem_nhdsWithin_Ici' - theorem Ico_mem_nhdsWithin_Ici - theorem Ico_mem_nhdsWithin_Iic - theorem Ico_mem_nhdsWithin_Iio' - theorem Ico_mem_nhdsWithin_Iio - theorem Ico_mem_nhdsWithin_Ioi' - theorem Ico_mem_nhdsWithin_Ioi + theorem Ioc_mem_nhdsGE_of_mem + theorem Ioc_mem_nhdsGT + theorem Ioc_mem_nhdsGT_of_mem + theorem Ioc_mem_nhdsLE + theorem Ioc_mem_nhdsLE_of_mem + theorem Ioc_mem_nhdsLT + theorem Ioc_mem_nhdsLT_of_mem - theorem Ioc_mem_nhdsWithin_Ici - theorem Ioc_mem_nhdsWithin_Iic' - theorem Ioc_mem_nhdsWithin_Iic - theorem Ioc_mem_nhdsWithin_Iio' - theorem Ioc_mem_nhdsWithin_Iio - theorem Ioc_mem_nhdsWithin_Ioi' - theorem Ioc_mem_nhdsWithin_Ioi + theorem Ioo_mem_nhdsGE_of_mem + theorem Ioo_mem_nhdsGT + theorem Ioo_mem_nhdsGT_of_mem + theorem Ioo_mem_nhdsLE_of_mem + theorem Ioo_mem_nhdsLT + theorem Ioo_mem_nhdsLT_of_mem - theorem Ioo_mem_nhdsWithin_Ici - theorem Ioo_mem_nhdsWithin_Iic - theorem Ioo_mem_nhdsWithin_Iio' - theorem Ioo_mem_nhdsWithin_Iio - theorem Ioo_mem_nhdsWithin_Ioi' - theorem Ioo_mem_nhdsWithin_Ioi + theorem nhdsWithin_Icc_eq_nhdsGE + theorem nhdsWithin_Icc_eq_nhdsLE - theorem nhdsWithin_Icc_eq_nhdsWithin_Ici - theorem nhdsWithin_Icc_eq_nhdsWithin_Iic + theorem nhdsWithin_Ico_eq_nhdsGE + theorem nhdsWithin_Ico_eq_nhdsLT - theorem nhdsWithin_Ico_eq_nhdsWithin_Ici - theorem nhdsWithin_Ico_eq_nhdsWithin_Iio + theorem nhdsWithin_Ioc_eq_nhdsGT + theorem nhdsWithin_Ioc_eq_nhdsLE - theorem nhdsWithin_Ioc_eq_nhdsWithin_Iic - theorem nhdsWithin_Ioc_eq_nhdsWithin_Ioi + theorem nhdsWithin_Ioo_eq_nhdsGT + theorem nhdsWithin_Ioo_eq_nhdsLT - theorem nhdsWithin_Ioo_eq_nhdsWithin_Iio - theorem nhdsWithin_Ioo_eq_nhdsWithin_Ioi Modified Mathlib/Topology/Order/OrderClosedExtr.lean Modified Mathlib/Topology/Order/T5.lean + theorem Set.compl_ordConnectedSection_ordSeparatingSet_mem_nhds + theorem Set.compl_ordConnectedSection_ordSeparatingSet_mem_nhdsGE + theorem Set.compl_ordConnectedSection_ordSeparatingSet_mem_nhdsLE - theorem Set.compl_section_ordSeparatingSet_mem_nhds - theorem Set.compl_section_ordSeparatingSet_mem_nhdsWithin_Ici - theorem Set.compl_section_ordSeparatingSet_mem_nhdsWithin_Iic 2024-12-23 01:07:27 e820917 chore: tidy various files (#20184) ESTIMATED CHANGES Modified Mathlib/Algebra/Category/Ring/Constructions.lean Modified Mathlib/Algebra/Module/ZLattice/Basic.lean Modified Mathlib/Algebra/Order/Field/Basic.lean Modified Mathlib/AlgebraicGeometry/AffineScheme.lean +/- theorem AlgebraicGeometry.IsAffineOpen.opensRange_fromSpec Modified Mathlib/AlgebraicGeometry/SpreadingOut.lean +/- theorem AlgebraicGeometry.isGermInjectiveAt_iff_of_isOpenImmersion Modified Mathlib/Analysis/Analytic/Basic.lean Modified Mathlib/Analysis/Analytic/Constructions.lean Modified Mathlib/Analysis/Analytic/OfScalars.lean Modified Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Instances.lean Modified Mathlib/Analysis/Calculus/FirstDerivativeTest.lean Modified Mathlib/CategoryTheory/Comma/Presheaf/Colimit.lean Modified Mathlib/CategoryTheory/Grothendieck.lean Modified Mathlib/Combinatorics/SimpleGraph/Walk.lean Modified Mathlib/Data/Finset/Max.lean Modified Mathlib/Data/List/Nodup.lean Modified Mathlib/Data/Real/EReal.lean Modified Mathlib/Data/Set/Basic.lean Modified Mathlib/FieldTheory/IsAlgClosed/Classification.lean Modified Mathlib/LinearAlgebra/Dual.lean Modified Mathlib/LinearAlgebra/RootSystem/Hom.lean Modified Mathlib/MeasureTheory/Integral/RieszMarkovKakutani.lean Modified Mathlib/RingTheory/LaurentSeries.lean Modified Mathlib/RingTheory/Radical.lean Modified Mathlib/SetTheory/ZFC/Ordinal.lean Modified Mathlib/Topology/EMetricSpace/Paracompact.lean Modified Mathlib/Topology/Homeomorph.lean Modified Mathlib/Topology/Order/OrderClosedExtr.lean 2024-12-23 00:27:16 7d071de feat(AlgebraicGeometry): smooth morphisms are locally of finite presentation (#19750) ESTIMATED CHANGES Modified Mathlib/AlgebraicGeometry/Morphisms/RingHomProperties.lean + theorem AlgebraicGeometry.affineLocally_le Modified Mathlib/AlgebraicGeometry/Morphisms/Smooth.lean Modified Mathlib/RingTheory/RingHom/Locally.lean + theorem RingHom.locally_of_locally Modified Mathlib/RingTheory/Smooth/StandardSmooth.lean 2024-12-22 23:44:08 7115f99 chore: rename some instances for consistency (#20178) ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Int.lean Modified Mathlib/Algebra/Order/Group/Int.lean Modified Mathlib/CategoryTheory/Sites/Preserves.lean Modified Mathlib/Computability/Language.lean Modified Mathlib/Data/Set/Basic.lean Modified Mathlib/Data/Set/Lattice.lean Modified Mathlib/Logic/IsEmpty.lean Modified Mathlib/Logic/Unique.lean Modified Mathlib/SetTheory/Game/PGame.lean Modified Mathlib/SetTheory/Surreal/Dyadic.lean Modified Mathlib/Topology/Sets/Closeds.lean 2024-12-22 16:53:08 2f4156e feat(to_additive): option to not translate operations on a type (#19297) * Also some cleanup in the `ToAdditive/Frontend` file (please review the first 3 commits separately), only the second commit actually changes the functionality of `to_additive`. The main cleanups: move doc-strings to the syntax declarations, remove the module doc which was just duplicating the `to_additive`-doc, and let a few internal functions depend on `Environment` instead of multiple other arguments. * In #19687 this is done for `Monoid.End` (in a separate PR, since that requires some library fixes). ESTIMATED CHANGES Modified Mathlib/Tactic/ToAdditive/Frontend.lean +/- def ToAdditive.additiveTest +/- def ToAdditive.applyReplacementFun + def ToAdditive.endCapitalNames - def endCapitalNames Modified MathlibTest/toAdditive.lean + def Test.MonoidEnd + theorem Test.monoidEnd_lemma 2024-12-22 12:55:57 fa6c3c4 chore: update Mathlib dependencies 2024-12-22 (#20179) This PR updates the Mathlib dependencies. ESTIMATED CHANGES Modified lake-manifest.json 2024-12-22 11:45:32 e975eed feat(RingTheory/Flat): flat is a local property of ring homomorphisms (#19789) We show that `RingHom.Flat` satisfies `RingHom.PropertyIsLocal`. ESTIMATED CHANGES Modified Mathlib/RingTheory/RingHom/Flat.lean + theorem RingHom.Flat.ofLocalizationSpanTarget + theorem RingHom.Flat.propertyIsLocal 2024-12-22 10:16:00 e731cb8 chore: deprecate `Nat.cast_eq_ofNat` (#20168) This lemma is malformed; the `n` on the RHS must be a raw literal, but the one on the left is not. Correcting the statement results in `Nat.cast_ofNat` which already exists. ESTIMATED CHANGES Modified Mathlib/Algebra/Polynomial/Basic.lean Modified Mathlib/Algebra/Ring/Subsemiring/Defs.lean Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/EulerSineProd.lean Modified Mathlib/Data/Nat/Cast/Defs.lean Modified Mathlib/FieldTheory/CardinalEmb.lean Modified Mathlib/LinearAlgebra/Reflection.lean Modified Mathlib/Tactic/NoncommRing.lean +/- theorem Mathlib.Tactic.NoncommRing.mul_nat_lit_eq_nsmul +/- theorem Mathlib.Tactic.NoncommRing.nat_lit_mul_eq_nsmul 2024-12-22 09:55:46 112e2af feat(CategoryTheory): left and right lifting properties (#19135) Defines left/right lifting property wrt a `MorphismProperty` and shows basic closure properties (retracts, pullback/pushout, composition etc.). ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/CategoryTheory/CommSq.lean Modified Mathlib/CategoryTheory/LiftingProperties/Basic.lean + theorem CategoryTheory.RetractArrow.leftLiftingProperty + theorem CategoryTheory.RetractArrow.rightLiftingProperty Added Mathlib/CategoryTheory/LiftingProperties/Limits.lean + theorem CategoryTheory.IsPullback.hasLiftingProperty + theorem CategoryTheory.IsPushout.hasLiftingProperty Added Mathlib/CategoryTheory/MorphismProperty/LiftingProperty.lean + def CategoryTheory.MorphismProperty.llp + theorem CategoryTheory.MorphismProperty.llp_IsStableUnderCoproductsOfShape + theorem CategoryTheory.MorphismProperty.llp_isStableUnderRetracts + def CategoryTheory.MorphismProperty.rlp + theorem CategoryTheory.MorphismProperty.rlp_IsStableUnderProductsOfShape + theorem CategoryTheory.MorphismProperty.rlp_isStableUnderRetracts Modified Mathlib/CategoryTheory/MorphismProperty/Limits.lean + theorem CategoryTheory.MorphismProperty.IsStableUnderColimitsOfShape.colim_map + def CategoryTheory.MorphismProperty.IsStableUnderColimitsOfShape + theorem CategoryTheory.MorphismProperty.IsStableUnderCoproductsOfShape.mk +/- theorem CategoryTheory.MorphismProperty.IsStableUnderProductsOfShape.mk + theorem CategoryTheory.MorphismProperty.isStableUnderCoproductsOfShape_of_isStableUnderFiniteCoproducts 2024-12-22 00:41:08 6a4c4e2 chore(scripts): update nolints.json (#20167) I am happy to remove some nolints for you! ESTIMATED CHANGES Modified scripts/nolints.json 2024-12-21 23:59:26 c459ca0 fix(to_additive): automatically translate all instances generated by `extends` (#19302) Fixes #660 ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Defs.lean Modified Mathlib/Algebra/Group/Equiv/Basic.lean Modified Mathlib/Algebra/Group/Hom/Defs.lean Modified Mathlib/Algebra/Order/Monoid/Canonical/Defs.lean Modified Mathlib/Algebra/Order/Monoid/Defs.lean Modified Mathlib/Tactic/ToAdditive/Frontend.lean +/- def ToAdditive.proceedFieldsAux 2024-12-21 22:54:35 e7d8b80 feat(SetTheory/Game/PGame): neg_identical_neg_iff (#20149) Adds `neg_identical_neg_iff`: `x ≡ y ↔ -x ≡ -y`. This probably has suboptimal golfing! I'm unsure myself of further ways to improve this, but this proof looks very golfable! ESTIMATED CHANGES Modified Mathlib/SetTheory/Game/PGame.lean + theorem SetTheory.PGame.Identical.neg + theorem SetTheory.PGame.neg_identical_neg_iff 2024-12-21 22:09:08 a51c88c chore: only run discover-lean-pr-testing on lean-toolchain changes (#20165) ESTIMATED CHANGES Modified .github/workflows/discover-lean-pr-testing.yml 2024-12-21 21:11:51 3844ade lower priority of Instance involving SMul and Subtype (#19704) Lower priority of instance `IntermediateField.instSMulSubtypeMemOfAlgebra` to 900. Because it would cause trouble when synthesizing instance `SMul K L` where `K < L` are `IntermediateField F E` ESTIMATED CHANGES Modified Mathlib/FieldTheory/IntermediateField/Basic.lean 2024-12-21 19:47:45 6bc88be fix: make the CI post lean pr testing branches on zulip again, with suggested script stuff (#20163) ESTIMATED CHANGES Modified .github/workflows/discover-lean-pr-testing.yml 2024-12-21 19:47:44 4c66417 feat(Topology/Algebra/Module/ModuleTopology): continuous linear surjections are quotient maps (#20012) ESTIMATED CHANGES Modified Mathlib/Topology/Algebra/Module/ModuleTopology.lean + theorem IsModuleTopology.continuousNeg + theorem IsModuleTopology.isQuotientMap_of_surjective + theorem IsModuleTopology.topologicalAddGroup + theorem ModuleTopology.eq_coinduced_of_surjective 2024-12-21 19:08:44 c758509 chore: tidy various files (#20154) ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/Pi.lean Modified Mathlib/Algebra/BigOperators/Group/List.lean Modified Mathlib/Algebra/ContinuedFractions/Computation/Translations.lean Modified Mathlib/Algebra/Homology/Bifunctor.lean Modified Mathlib/Algebra/Module/LocalizedModule/Basic.lean Modified Mathlib/Analysis/Calculus/FDeriv/Analytic.lean Modified Mathlib/Analysis/Convex/Continuous.lean Modified Mathlib/Analysis/Convex/KreinMilman.lean Modified Mathlib/Analysis/InnerProductSpace/Orthonormal.lean Modified Mathlib/Analysis/InnerProductSpace/Symmetric.lean Modified Mathlib/Analysis/Normed/Algebra/Norm.lean Modified Mathlib/Analysis/Normed/Ring/Seminorm.lean Modified Mathlib/Analysis/SpecialFunctions/Complex/LogBounds.lean Modified Mathlib/Analysis/SpecialFunctions/Log/NegMulLog.lean Modified Mathlib/CategoryTheory/Category/Cat/Adjunction.lean Modified Mathlib/CategoryTheory/ConnectedComponents.lean Modified Mathlib/CategoryTheory/Monoidal/Hopf_.lean Modified Mathlib/Data/ENNReal/Inv.lean Modified Mathlib/LinearAlgebra/AffineSpace/Pointwise.lean Modified Mathlib/LinearAlgebra/LinearIndependent.lean Modified Mathlib/LinearAlgebra/Matrix/PosDef.lean Modified Mathlib/MeasureTheory/Covering/Vitali.lean Modified Mathlib/MeasureTheory/Measure/Prod.lean Modified Mathlib/NumberTheory/Fermat.lean Modified Mathlib/NumberTheory/LSeries/Convergence.lean Modified Mathlib/Order/CompactlyGenerated/Basic.lean Modified Mathlib/Order/Defs/LinearOrder.lean Modified Mathlib/Order/Filter/Basic.lean Modified Mathlib/Order/Zorn.lean Modified Mathlib/RingTheory/Radical.lean Modified Mathlib/RingTheory/TwoSidedIdeal/Operations.lean +/- def TwoSidedIdeal.comap Modified Mathlib/RingTheory/Unramified/Basic.lean Modified Mathlib/SetTheory/Ordinal/FixedPoint.lean Modified Mathlib/Topology/Algebra/Nonarchimedean/TotallyDisconnected.lean Modified Mathlib/Topology/UniformSpace/Basic.lean +/- theorem eq_singleton_left_of_prod_subset_idRel +/- theorem eq_singleton_prod_subset_idRel +/- theorem eq_singleton_right_prod_subset_idRel Modified Mathlib/Topology/UniformSpace/Cauchy.lean +/- theorem UniformSpace.DiscreteUnif.cauchy_le_pure +/- theorem UniformSpace.DiscreteUnif.eq_const_of_cauchy 2024-12-21 17:53:44 765f372 fix(norm_num): missing `withMainContext` (#20094) A slight regression: FLT is now harder to prove. This corrects the meaning of `*` in `norm_num [*]`. ESTIMATED CHANGES Modified Mathlib/Tactic/NormNum/Core.lean Added MathlibTest/norm_num_flt.lean 2024-12-21 17:14:18 0743743 chore: deprecate `UniformSpace.Completion.Continuous.mul` (#20145) By adding a missing instance, this becomes just a really weird way to spell `Continuous.mul`. ESTIMATED CHANGES Modified Mathlib/Topology/Algebra/UniformRing.lean - theorem UniformSpace.Completion.Continuous.mul - theorem UniformSpace.Completion.continuous_mul 2024-12-21 14:54:56 31ee34b feat(LinearAlgebra/Projectivization): cardinality over finite fields (#19808) We compute the cardinality of the projectivization of a finite vector space over a finite field. From "Formalizing the Bruhat-Tits tree" ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Group/Basic.lean Modified Mathlib/GroupTheory/Coset/Basic.lean + def QuotientGroup.quotientEquivSelf Modified Mathlib/GroupTheory/GroupAction/Basic.lean + theorem Module.stabilizer_units_eq_bot_of_ne_zero Modified Mathlib/GroupTheory/GroupAction/Quotient.lean Modified Mathlib/GroupTheory/GroupAction/SubMulAction.lean + def Units.nonZeroSubMul + theorem Units.orbitRel_nonZero_iff + theorem Units.smul_coe Added Mathlib/LinearAlgebra/Projectivization/Cardinality.lean + theorem Projectivization.card'' + theorem Projectivization.card' + theorem Projectivization.card + theorem Projectivization.card_of_finrank + theorem Projectivization.card_of_finrank_two + def Projectivization.equivQuotientOrbitRel + theorem Projectivization.finite_iff_of_finite 2024-12-21 13:59:41 62fd579 chore: get rid of backticks in discover-lean-pr-testing.yml (#20153) ESTIMATED CHANGES Modified .github/workflows/discover-lean-pr-testing.yml 2024-12-21 11:20:25 21a4ad3 chore: rename theorems for consistency (#20127) Taking chore material out of #16094 to make the diff cleaner. Moves: isSquare_mul_self -> IsSquare.mul_self even_add_self -> Even.add_self ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Even.lean + theorem IsSquare.mul_self - theorem isSquare_mul_self Modified Mathlib/Algebra/Order/Field/Power.lean Modified Mathlib/Data/Fin/Parity.lean Modified Mathlib/Data/Rat/Lemmas.lean Modified Mathlib/LinearAlgebra/SymplecticGroup.lean 2024-12-21 11:20:24 be8707b feat(RingTheory/Nakayama): yet another version (#20035) This is (3) in https://stacks.math.columbia.edu/tag/00DV. ESTIMATED CHANGES Modified Mathlib/Algebra/Module/LocalizedModule/Submodule.lean + theorem Submodule.localized'_le_localized'_of_smul_le + theorem Submodule.localized₀_le_localized₀_of_smul_le Modified Mathlib/Algebra/Module/Submodule/Pointwise.lean + theorem Submodule.smul_inductionOn_pointwise Modified Mathlib/RingTheory/Nakayama.lean + theorem Submodule.exists_sub_one_mem_and_smul_le_of_fg_of_le_sup 2024-12-21 10:41:38 8df8f11 chore: fix backticks in discover-lean-pr-testing.yml (#20152) ESTIMATED CHANGES Modified .github/workflows/discover-lean-pr-testing.yml 2024-12-21 10:41:36 508dbdd feat(CategoryTheory/Abelian): Ext.{w} does not depend on the universe w (#19602) If `C` is an abelian category, and under an assumption `HasExt.{w}`, the Ext groups `Ext.{w} X Y n` are in `Type w`. We show that up to a bijection, these groups do not depend on the universe `w`. ESTIMATED CHANGES Modified Mathlib/Algebra/Homology/DerivedCategory/Ext/Basic.lean + theorem CategoryTheory.Abelian.Ext.homEquiv_chgUniv Modified Mathlib/CategoryTheory/Localization/SmallHom.lean + theorem CategoryTheory.Localization.SmallHom.equiv_chgUniv Modified Mathlib/CategoryTheory/Localization/SmallShiftedHom.lean + theorem CategoryTheory.Localization.SmallShiftedHom.equiv_chgUniv 2024-12-21 09:59:20 adc2006 feat: analytic part of Lindemann-Weierstrass (#20092) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Polynomial/SumIteratedDerivative.lean + theorem Polynomial.aeval_sumIDeriv_eq_eval + theorem Polynomial.eval_sumIDeriv_of_pos +/- theorem Polynomial.sumIDeriv_eq_self_add Added Mathlib/NumberTheory/Transcendental/Lindemann/Init/AnalyticalPart.lean + theorem LindemannWeierstrass.exp_polynomial_approx + theorem LindemannWeierstrass.hasDerivAt_cexp_mul_sumIDeriv + theorem LindemannWeierstrass.integral_exp_mul_eval 2024-12-21 09:50:57 e638cad feat(CategoryTheory/SmallObject/Iteration): Functor.ofCocone (#19643) Given a functor `F : Set.Iio j ⥤ C` and `c : Cocone F`, we define an extension of `F` as a functor `Set.Iic j ⥤ C` for which the top element is mapped to `c.pt`. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/SmallObject/Iteration/FunctorOfCocone.lean + def CategoryTheory.Functor.isColimitCoconeOfLEOfCocone + def CategoryTheory.Functor.ofCocone.map + theorem CategoryTheory.Functor.ofCocone.map_comp + theorem CategoryTheory.Functor.ofCocone.map_id + def CategoryTheory.Functor.ofCocone.obj + def CategoryTheory.Functor.ofCocone.objIso + def CategoryTheory.Functor.ofCocone.objIsoPt + def CategoryTheory.Functor.ofCocone + def CategoryTheory.Functor.ofCoconeObjIso + def CategoryTheory.Functor.ofCoconeObjIsoPt + theorem CategoryTheory.Functor.ofCoconeObjIso_hom_naturality + theorem CategoryTheory.Functor.ofCocone_map + theorem CategoryTheory.Functor.ofCocone_map_to_top + def CategoryTheory.Functor.restrictionLTOfCoconeIso 2024-12-21 08:53:31 1468375 refactor: rename lemmas about `IsReduced` to work with dot notation (#20135) We rename some lemmas about reduced words in Coxeter groups so that they can be used with dot notation. - `CoxeterSystem.isReduced_reverse` is renamed to `CoxeterSystem.isReduced_reverse_iff`, and its forward direction is given the new name `CoxeterSystem.IsReduced.reverse`. - `CoxeterSystem.isReduced_take` is renamed to `CoxeterSystem.IsReduced.take`. - `CoxeterSystem.isReduced_drop` is renamed to `CoxeterSystem.IsReduced.drop`. To be completely honest, I'm on the fence about this one, but I'd like to see what others think. ESTIMATED CHANGES Modified Mathlib/GroupTheory/Coxeter/Inversion.lean Modified Mathlib/GroupTheory/Coxeter/Length.lean + theorem CoxeterSystem.IsReduced.drop + theorem CoxeterSystem.IsReduced.reverse + theorem CoxeterSystem.IsReduced.take - theorem CoxeterSystem.isReduced_drop - theorem CoxeterSystem.isReduced_reverse + theorem CoxeterSystem.isReduced_reverse_iff - theorem CoxeterSystem.isReduced_take 2024-12-21 08:53:30 f63994b chore: tidy various files (#20130) ESTIMATED CHANGES Modified Counterexamples/DiscreteTopologyNonDiscreteUniformity.lean Modified Mathlib/Algebra/BigOperators/Pi.lean Modified Mathlib/Algebra/Field/Subfield/Basic.lean Modified Mathlib/Algebra/Order/Antidiag/Nat.lean +/- theorem Nat.finMulAntidiag_three Modified Mathlib/Algebra/Order/Quantale.lean Modified Mathlib/Algebra/Star/NonUnitalSubalgebra.lean Modified Mathlib/AlgebraicGeometry/Morphisms/UnderlyingMap.lean Modified Mathlib/AlgebraicGeometry/PrimeSpectrum/Basic.lean Modified Mathlib/Analysis/Analytic/IteratedFDeriv.lean Modified Mathlib/Analysis/Calculus/FDeriv/Basic.lean Modified Mathlib/Analysis/InnerProductSpace/JointEigenspace.lean Modified Mathlib/Data/List/Intervals.lean Modified Mathlib/Geometry/Manifold/ContMDiff/Defs.lean Modified Mathlib/Geometry/Manifold/VectorBundle/Tangent.lean Modified Mathlib/GroupTheory/FiniteAbelian/Duality.lean +/- theorem CommGroup.exists_apply_ne_one_aux Modified Mathlib/LinearAlgebra/Matrix/SemiringInverse.lean Modified Mathlib/LinearAlgebra/Matrix/SpecialLinearGroup.lean Modified Mathlib/LinearAlgebra/Reflection.lean Modified Mathlib/NumberTheory/NumberField/FinitePlaces.lean Modified Mathlib/NumberTheory/Padics/PadicVal/Defs.lean Modified Mathlib/Probability/Kernel/Composition/ParallelComp.lean Modified Mathlib/Probability/Martingale/Convergence.lean Modified Mathlib/RingTheory/IntegralClosure/IsIntegralClosure/Basic.lean +/- theorem Polynomial.Monic.quotient_isIntegral Modified Mathlib/Topology/UniformSpace/HeineCantor.lean 2024-12-21 08:53:29 2e468db feat: algebraic hierarchy on DirectLimit (#19893) **Order/DirectedInverseSystem.lean**: define the DirectLimit of a DirectedSystem of types as a quotient (by a setoid (equivalence relation)) of the Sigma type (disjoint union). Provide the `induction` lemmas and `map`/`lift` constructions used to define algebraic operations on DirectLimit. New file **Algebra/Colimit/DirectLimit.lean**: the first 400 lines are boilerplate code that defines algebraic instances on DirectLImit from magma (Mul) to Field. To make everything "hom-polymorphic", the DirectedSystem consists of FunLikes rather than plain/unbundled functions, and we use algebraic hom typeclasses (e.g. LinearMapClass, RingHomClass) everywhere. The remaining 70 lines essentially shows that DirectLimit is the colimit in the categories of Module and Ring. **Algebra/DirectLimit.lean**: renamed to **Algebra/Colimit/ModuleRing.lean**. This file was originally added @kckennylau 5 years ago in [mathlib3#754](https://github.com/leanprover-community/mathlib3/pull/754) and defines `Module.DirectLimit` and `Ring.DirectLimit` as quotients of the universal objects (DirectSum and FreeCommRing). This definition is more general and suitable for arbitrary colimits, but makes it very cumbersome to prove [`of.zero_exact`](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Algebra/DirectLimit.html#Ring.DirectLimit.of.zero_exact) lemmas (130+ lines!); for DirectLimit constructed as quotients of the disjoint union, these are just by definition. We golf these proofs by constructing isomorphisms between `Module/Ring.DirectLimit` and `_root_.DirectLimit`. I have more work done that generalizes most lemmas there to work for arbitrary colimits, that's why I put it under a new Colimit directory. **Data/Int/Cast/Lemmas.lean**: add `map_intCast'` **Data/Nat/Cast/Basic.lean**: golf a lemma **Order/Directed.lean**: add a lemma **ModelTheory/DirectLimit.lean**: change two lemmas to aliases of the general FunLike lemmas ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Category/ModuleCat/Limits.lean Added Mathlib/Algebra/Colimit/DirectLimit.lean + def DirectLimit.Module.lift + theorem DirectLimit.Module.lift_of + def DirectLimit.Module.of + theorem DirectLimit.Module.of_f + def DirectLimit.Ring.lift + theorem DirectLimit.Ring.lift_of + theorem DirectLimit.Ring.of_f + theorem DirectLimit.div_def + theorem DirectLimit.div₀_def + theorem DirectLimit.exists_eq_one + theorem DirectLimit.intCast_def + theorem DirectLimit.inv_def + theorem DirectLimit.inv₀_def + theorem DirectLimit.mul_def + theorem DirectLimit.natCast_def + theorem DirectLimit.nnratCast_def + theorem DirectLimit.npow_def + theorem DirectLimit.one_def + theorem DirectLimit.ratCast_def + theorem DirectLimit.smul_def + theorem DirectLimit.zpow_def + theorem DirectLimit.zpow₀_def Renamed Mathlib/Algebra/DirectLimit.lean to Mathlib/Algebra/Colimit/ModuleRing.lean +/- theorem Module.DirectLimit.lift_of + def Module.DirectLimit.linearEquiv + theorem Module.DirectLimit.linearEquiv_of + theorem Module.DirectLimit.linearEquiv_symm_mk +/- theorem Module.DirectLimit.of.zero_exact - theorem Module.DirectLimit.of.zero_exact_aux - theorem Module.DirectLimit.toModule_totalize_of_le - theorem Module.DirectLimit.totalize_of_le - theorem Module.DirectLimit.totalize_of_not_le +/- theorem Ring.DirectLimit.lift_of +/- theorem Ring.DirectLimit.of.zero_exact - theorem Ring.DirectLimit.of.zero_exact_aux2 - theorem Ring.DirectLimit.of.zero_exact_aux +/- theorem Ring.DirectLimit.of_f + def Ring.DirectLimit.ringEquiv + theorem Ring.DirectLimit.ringEquiv_of + theorem Ring.DirectLimit.ringEquiv_symm_mk Modified Mathlib/Data/Int/Cast/Lemmas.lean + theorem map_intCast' Modified Mathlib/Data/Nat/Cast/Basic.lean Modified Mathlib/LinearAlgebra/TensorProduct/DirectLimit.lean Modified Mathlib/ModelTheory/DirectLimit.lean Modified Mathlib/ModelTheory/Fraisse.lean Modified Mathlib/Order/Directed.lean + theorem directed_of₃ Modified Mathlib/Order/DirectedInverseSystem.lean + theorem DirectLimit.eq_of_le + theorem DirectLimit.exists_eq_mk + theorem DirectLimit.exists_eq_mk₂ + theorem DirectLimit.exists_eq_mk₃ + theorem DirectLimit.lift_def + theorem DirectLimit.lift_injective + theorem DirectLimit.lift₂_def + theorem DirectLimit.lift₂_def₂ + def DirectLimit.map + theorem DirectLimit.map_def + theorem DirectLimit.map₀_def + theorem DirectLimit.map₂_def + theorem DirectLimit.map₂_def₂ + theorem DirectLimit.mk_injective + theorem DirectLimit.r_of_le + def DirectLimit.setoid + theorem DirectedSystem.map_map' + theorem DirectedSystem.map_self' Modified Mathlib/RingTheory/FreeCommRing.lean 2024-12-21 08:44:25 2c76114 feat(GroupTheory/SpecificGroups/ZGroup): Finite Z-groups are solvable (#20144) This PR shows that finite Z-groups are solvable. A Z-group is a group whose Sylow subgroups are all cyclic. ESTIMATED CHANGES Modified Mathlib/GroupTheory/SpecificGroups/ZGroup.lean + theorem IsZGroup.commutator_lt 2024-12-21 08:00:03 1c080cc refactor: make `PadicInt.valuation` `ℕ`-valued (#19858) It is currently `ℤ`-valued, but always nonnegative. Also rename the misnamed `norm_eq_pow_val` to `norm_eq_zpow_neg_valuation` From FLT Closes https://github.com/ImperialCollegeLondon/FLT/issues/277 ESTIMATED CHANGES Modified Mathlib/NumberTheory/Padics/MahlerBasis.lean Modified Mathlib/NumberTheory/Padics/PadicIntegers.lean +/- theorem PadicInt.coe_eq_zero +/- theorem PadicInt.coe_ne_zero + theorem PadicInt.le_valuation_add - theorem PadicInt.norm_eq_pow_val + theorem PadicInt.norm_eq_zpow_neg_valuation +/- def PadicInt.valuation + theorem PadicInt.valuation_coe + theorem PadicInt.valuation_coe_nonneg + theorem PadicInt.valuation_mul - theorem PadicInt.valuation_nonneg +/- theorem PadicInt.valuation_one +/- theorem PadicInt.valuation_p + theorem PadicInt.valuation_pow +/- theorem PadicInt.valuation_zero +/- def PadicInt Modified Mathlib/NumberTheory/Padics/PadicNumbers.lean + theorem Padic.le_valuation_add - theorem Padic.norm_eq_pow_val + theorem Padic.norm_eq_zpow_neg_valuation + theorem Padic.valuation_inv - theorem Padic.valuation_map_add - theorem Padic.valuation_map_mul + theorem Padic.valuation_mul + theorem Padic.valuation_pow + theorem Padic.valuation_zpow - theorem PadicSeq.norm_eq_pow_val + theorem PadicSeq.norm_eq_zpow_neg_valuation Modified Mathlib/NumberTheory/Padics/RingHoms.lean 2024-12-21 07:40:23 9ab8279 feat(Order/Directed): DirectedOn and products (#19222) A couple of results about `DirectedOn` and Pi products: - When a set of cross sections is `DirectedOn`, then the projection onto a fibre is `DirectedOn` - For each element `i` in the base space, let `d i` be a subset of the fibre at `i`. Then the product of the `d i` is `DirectedOn`. We also give pairwise product versions of these results. Inspired by #15412 ESTIMATED CHANGES Modified Mathlib/Order/Directed.lean + theorem DirectedOn.fst + theorem DirectedOn.mono_comp + theorem DirectedOn.pi + theorem DirectedOn.prod + theorem DirectedOn.proj + theorem DirectedOn.snd 2024-12-21 03:42:14 839e3f6 feat(SetTheory/Game/PGame): down and up games (#19393) Implements definitions for up and down games, their negations, and their inequivalence to 0. ESTIMATED CHANGES Modified Mathlib/SetTheory/Game/PGame.lean + def SetTheory.PGame.down + theorem SetTheory.PGame.down_leftMoves + theorem SetTheory.PGame.down_moveLeft + theorem SetTheory.PGame.down_moveRight + theorem SetTheory.PGame.down_neg + theorem SetTheory.PGame.down_rightMoves + theorem SetTheory.PGame.neg_down + theorem SetTheory.PGame.neg_up + theorem SetTheory.PGame.star_fuzzy_down + theorem SetTheory.PGame.star_fuzzy_up + def SetTheory.PGame.up + theorem SetTheory.PGame.up_leftMoves + theorem SetTheory.PGame.up_moveLeft + theorem SetTheory.PGame.up_moveRight + theorem SetTheory.PGame.up_neg + theorem SetTheory.PGame.up_rightMoves 2024-12-20 23:22:22 5ba284d feat(FieldTheory/Galois): Fundamental theorem of infinite galois theory (#16982) Prove the Fundamental theorem of infinite galois theory ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/FieldTheory/Galois/Basic.lean + theorem IntermediateField.mem_fixedField_iff Added Mathlib/FieldTheory/Galois/Infinite.lean + def InfiniteGalois.GaloisCoinsertionIntermediateFieldSubgroup + def InfiniteGalois.GaloisInsertionIntermediateFieldClosedSubgroup + def InfiniteGalois.IntermediateFieldEquivClosedSubgroup + theorem InfiniteGalois.fixedField_bot + theorem InfiniteGalois.fixedField_fixingSubgroup + theorem InfiniteGalois.fixingSubgroup_fixedField + theorem InfiniteGalois.fixingSubgroup_isClosed + theorem InfiniteGalois.isOpen_iff_finite + theorem InfiniteGalois.normal_iff_isGalois + theorem InfiniteGalois.restrict_fixedField 2024-12-20 22:56:17 2f2de82 feat(DiscreteValuationRing/Basic): a ring equivalent to a DVR is a DVR (#20073) We add the lemma saying that if a ring is isomorphic to a DVR it is itself a DVR. ESTIMATED CHANGES Modified Mathlib/RingTheory/DiscreteValuationRing/Basic.lean + theorem IsDiscreteValuationRing.RingEquivClass.isDiscreteValuationRing 2024-12-20 22:32:32 31e1a94 feat(RingTheory/Flat): generalize `flat_of_isLocalized_span` (#19788) Generalize `Module.Flat.flat_of_isLocalized_span` to take `s : Set S` for any `R`-algebra `S`. ESTIMATED CHANGES Modified Mathlib/Algebra/Equiv/TransferInstance.lean + theorem LinearEquiv.isScalarTower Modified Mathlib/LinearAlgebra/TensorProduct/Tower.lean + theorem TensorProduct.AlgebraTensorModule.coe_rTensor + def TensorProduct.AlgebraTensorModule.rTensor + theorem TensorProduct.AlgebraTensorModule.rTensor_comp + theorem TensorProduct.AlgebraTensorModule.rTensor_id + theorem TensorProduct.AlgebraTensorModule.rTensor_mul + theorem TensorProduct.AlgebraTensorModule.rTensor_one + theorem TensorProduct.AlgebraTensorModule.rTensor_tmul + theorem TensorProduct.AlgebraTensorModule.restrictScalars_rTensor Modified Mathlib/RingTheory/Flat/Basic.lean Modified Mathlib/RingTheory/Flat/Localization.lean - theorem Module.flat_of_isLocalized_maixmal + theorem Module.flat_of_isLocalized_maximal Modified Mathlib/RingTheory/IsTensorProduct.lean + theorem IsBaseChange.of_equiv + theorem IsTensorProduct.of_equiv + theorem isBaseChange_tensorProduct_map Modified Mathlib/RingTheory/Localization/BaseChange.lean + theorem IsLocalizedModule.map_lTensor Modified Mathlib/RingTheory/Localization/Module.lean + theorem LocalizedModule.restrictScalars_map_eq 2024-12-20 20:23:49 75faccb feat: some more properties of linearly disjoint (#19614) Major new results: - `*.LinearDisjoint.map`: linear disjointness is preserved by injective ring homomorphism. - `rank_sup_of_isAlgebraic` -> `rank_sup` at the expense of importing `AlgebraicIndependent`. - `IntermediateField.LinearDisjoint.algEquiv_of_isAlgebraic`: linear disjointness is preserved by isomorphisms, provided that one of the field is algebraic. Regarding : - `Subalgebra.LinearDisjoint.isDomain_of_injective`, `Subalgebra.LinearDisjoint.exists_field_of_isDomain_of_injective`: `IntermediateField.LinearDisjoint.isDomain'`, `IntermediateField.LinearDisjoint.exists_field_of_isDomain`: under some flatness and injectivity conditions, if `A` and `B` are `R`-algebras (resp. fields), then `A ⊗[R] B` is a domain if and only if there exists a field such that `A` and `B` inject into it and their images are linearly disjoint. - `IntermediateField.LinearDisjoint.isField_of_forall`, `IntermediateField.LinearDisjoint.of_isField'`: if `A` and `B` are field extensions `F`, then `A ⊗[F] B` is a field if and only if for any field such that `A` and `B` map to it, their images are linearly disjoint. - `Algebra.TensorProduct.not_isField_of_transcendental`, `Algebra.TensorProduct.isAlgebraic_of_isField`: if `A` and `B` are flat `R`-algebras, both of them are transcendental, then `A ⊗[R] B` cannot be a field, equivalently, if `A ⊗[R] B` is a field, then one of them is algebraic. - `Algebra.TensorProduct.isField_of_isAlgebraic`: if `E` and `K` are field extensions of `F`, one of them is algebraic, such that `E ⊗[F] K` is a domain, then `E ⊗[F] K` is also a field. ESTIMATED CHANGES Modified Mathlib/FieldTheory/LinearDisjoint.lean + theorem Algebra.TensorProduct.isField_of_isAlgebraic + theorem IntermediateField.LinearDisjoint.algEquiv_of_isAlgebraic + theorem IntermediateField.LinearDisjoint.exists_field_of_isDomain + theorem IntermediateField.LinearDisjoint.isDomain' + theorem IntermediateField.LinearDisjoint.isDomain + theorem IntermediateField.LinearDisjoint.isField_of_forall + theorem IntermediateField.LinearDisjoint.isField_of_isAlgebraic' + theorem IntermediateField.LinearDisjoint.isField_of_isAlgebraic + theorem IntermediateField.LinearDisjoint.map'' + theorem IntermediateField.LinearDisjoint.map' + theorem IntermediateField.LinearDisjoint.map + theorem IntermediateField.LinearDisjoint.of_isField' + theorem IntermediateField.LinearDisjoint.of_isField + theorem IntermediateField.LinearDisjoint.rank_sup - theorem IntermediateField.LinearDisjoint.rank_sup_of_isAlgebraic + theorem IntermediateField.LinearDisjoint.symm' + theorem IntermediateField.linearDisjoint_comm' Modified Mathlib/LinearAlgebra/LinearDisjoint.lean + theorem Submodule.LinearDisjoint.map +/- theorem Submodule.LinearDisjoint.of_subsingleton + theorem Submodule.LinearDisjoint.of_subsingleton_top Modified Mathlib/LinearAlgebra/TensorProduct/Subalgebra.lean + def Algebra.TensorProduct.algEquivIncludeRange + theorem Algebra.TensorProduct.algEquivIncludeRange_symm_tmul + theorem Algebra.TensorProduct.algEquivIncludeRange_symm_toAlgHom + theorem Algebra.TensorProduct.algEquivIncludeRange_tmul + theorem Algebra.TensorProduct.algEquivIncludeRange_toAlgHom + def Algebra.TensorProduct.linearEquivIncludeRange + theorem Algebra.TensorProduct.linearEquivIncludeRange_symm_tmul + theorem Algebra.TensorProduct.linearEquivIncludeRange_symm_toLinearMap + theorem Algebra.TensorProduct.linearEquivIncludeRange_tmul + theorem Algebra.TensorProduct.linearEquivIncludeRange_toLinearMap +/- def Subalgebra.mulMap + theorem Subalgebra.mulMap_map_comp_eq Modified Mathlib/LinearAlgebra/TensorProduct/Submodule.lean + theorem Submodule.mulMap_map_comp_eq Modified Mathlib/RingTheory/LinearDisjoint.lean + theorem Algebra.TensorProduct.isAlgebraic_of_isField + theorem Algebra.TensorProduct.not_isField_of_transcendental + theorem Subalgebra.LinearDisjoint.exists_field_of_isDomain_of_injective + theorem Subalgebra.LinearDisjoint.include_range + theorem Subalgebra.LinearDisjoint.isDomain + theorem Subalgebra.LinearDisjoint.isDomain_of_injective + theorem Subalgebra.LinearDisjoint.map + theorem Subalgebra.LinearDisjoint.of_isField' + theorem Subalgebra.LinearDisjoint.of_isField + theorem Subalgebra.LinearDisjoint.of_subsingleton_top + theorem Subalgebra.linearDisjoint_iff_injective 2024-12-20 20:04:59 3bc257b feat(GroupTheory/SemidirectProduct): Add various maps (#20102) This PR adds some more maps to `GroupTheory/SemidirectProduct.lean`. ESTIMATED CHANGES Modified Mathlib/GroupTheory/SemidirectProduct.lean + def SemidirectProduct.congr' + def SemidirectProduct.congr + def SemidirectProduct.equivProd +/- def SemidirectProduct.lift +/- theorem SemidirectProduct.lift_comp_inl +/- theorem SemidirectProduct.lift_comp_inr +/- theorem SemidirectProduct.lift_inl +/- theorem SemidirectProduct.lift_inr +/- def SemidirectProduct.map +/- theorem SemidirectProduct.map_comp_inl +/- theorem SemidirectProduct.map_comp_inr +/- theorem SemidirectProduct.map_inl +/- theorem SemidirectProduct.map_inr +/- theorem SemidirectProduct.map_left +/- theorem SemidirectProduct.map_right + def SemidirectProduct.monoidHomSubgroup +/- theorem SemidirectProduct.rightHom_comp_map 2024-12-20 19:39:30 1a3f2a1 feat(GroupTheory/Transfer): A cyclic Sylow subgroup for the smallest prime has a normal complement (#19587) This PR proves that if `G` is a finite group with smallest prime factor `p` and cyclic Sylow `p`-subgroups, then `G` has a normal `p`-complement. ESTIMATED CHANGES Modified Mathlib/GroupTheory/Index.lean + theorem Subgroup.relindex_dvd_card Modified Mathlib/GroupTheory/Transfer.lean + theorem IsCyclic.isComplement' + theorem IsCyclic.normalizer_le_centralizer 2024-12-20 17:17:09 74c027f feat(Algebra/Homology): the stupid truncation of homological complexes (#18501) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Homology/Embedding/Basic.lean Modified Mathlib/Algebra/Homology/Embedding/Extend.lean Added Mathlib/Algebra/Homology/Embedding/StupidTrunc.lean + theorem HomologicalComplex.isZero_stupidTrunc_X + theorem HomologicalComplex.isZero_stupidTrunc_iff + theorem HomologicalComplex.stupidTruncMap_comp + theorem HomologicalComplex.stupidTruncMap_id + theorem HomologicalComplex.stupidTruncMap_stupidTruncXIso_hom 2024-12-20 17:08:48 7f72da4 feat(CategoryTheory): the left lifting property is stable under transfinite composition (#20119) After #19135 is merged, it will be possible to phrase this in terms of `MorphismProperty.llp` and get better looking statements. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/SmallObject/TransfiniteCompositionLifting.lean + def CategoryTheory.HasLiftingProperty.transfiniteComposition.SqStruct.map + theorem CategoryTheory.HasLiftingProperty.transfiniteComposition.SqStruct.sq + theorem CategoryTheory.HasLiftingProperty.transfiniteComposition.SqStruct.w + structure CategoryTheory.HasLiftingProperty.transfiniteComposition.SqStruct + theorem CategoryTheory.HasLiftingProperty.transfiniteComposition.hasLift + theorem CategoryTheory.HasLiftingProperty.transfiniteComposition.hasLiftingProperty_ι_app_bot + def CategoryTheory.HasLiftingProperty.transfiniteComposition.sqFunctor + theorem CategoryTheory.HasLiftingProperty.transfiniteComposition.wellOrderInductionData.liftHom_fac + theorem CategoryTheory.HasLiftingProperty.transfiniteComposition.wellOrderInductionData.map_lift 2024-12-20 16:26:55 75d219b chore: rename `coeff_modByMonic_mem_span_pow_mul_span` (#20118) ESTIMATED CHANGES Modified Mathlib/Algebra/Polynomial/CoeffMem.lean + theorem Polynomial.coeff_divByMonic_mem_pow_natDegree_mul - theorem Polynomial.coeff_divByMonic_mem_span_pow_mul_span + theorem Polynomial.coeff_modByMonic_mem_pow_natDegree_mul - theorem Polynomial.coeff_modByMonic_mem_span_pow_mul_span 2024-12-20 16:26:53 fcdc29c doc(1000.yaml): add entries for 100 theorems (#20114) This is exhaustive. ESTIMATED CHANGES Modified docs/1000.yaml Modified scripts/README.md 2024-12-20 16:26:52 2a41753 feat(GroupTheory/SpecificGroups/Cyclic): Add `isCyclic_of_injective` (#20103) This PR adds `isCyclic_of_injective` and uses it to golf `Subgroup.isCyclic_of_le`. ESTIMATED CHANGES Modified Mathlib/GroupTheory/SpecificGroups/Cyclic.lean +/- theorem Subgroup.isCyclic_of_le + theorem isCyclic_of_injective 2024-12-20 16:26:50 fa580ed feat: isomorphic rings have isomorphic spectra (#20068) ... and other simple lemmas about `zeroLocus`. From GrowthInGroups (LeanCamCombi) ESTIMATED CHANGES Modified Mathlib/RingTheory/PrimeSpectrum.lean + def PrimeSpectrum.comapEquiv + theorem PrimeSpectrum.zeroLocus_diff_singleton_zero + theorem PrimeSpectrum.zeroLocus_insert_zero + theorem PrimeSpectrum.zeroLocus_smul_of_isUnit 2024-12-20 16:26:49 9cc15b9 feat(CategoryTheory/Sites): colimits in categories of extensive sheaves are computed objectwise (#19913) … for the shapes for which the colimit functor preserves finite products. This means all shapes when the target is a preadditive category, sifted shapes when the target is the category of sets. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/CategoryTheory/Limits/FunctorCategory/Basic.lean Added Mathlib/CategoryTheory/Sites/Coherent/ExtensiveColimits.lean + theorem CategoryTheory.isSheaf_pointwiseColimit Modified Mathlib/CategoryTheory/Sites/Limits.lean + def CategoryTheory.Sheaf.createsColimitOfIsSheaf 2024-12-20 16:26:48 e234a9f feat(CategoryTheory): infer connectedness of comma categories from finality/initiality of the functor (#19889) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Comma/Final.lean Modified Mathlib/CategoryTheory/IsConnected.lean + theorem CategoryTheory.isConnected_op_iff_isConnected Modified Mathlib/CategoryTheory/Limits/IsConnected.lean + theorem CategoryTheory.Functor.isConnected_iff_of_final + theorem CategoryTheory.Functor.isConnected_iff_of_initial - theorem CategoryTheory.Limits.Types.isConnected_iff_of_final 2024-12-20 16:26:46 128a213 feat(RingTheory): `AlgebraicIndependent` persists to `algebraicClosure` (#19708) * `AlgebraicIndependent.extendScalars`: if A/S/R is a tower of algebras with S/R algebraic, then a family of elements in A that are algebraically independent over R remains algebraically independent over S, provided that S has no zero divisors. * `AlgebraicIndependent.algebraicClosure`: an algebraically independent family remains algebraically independent over the algebraic closure. To prove these, we slightly change the statement of `algebraicIndependent_of_finite(_type)'` to keep a hypothesis inherited from `Set.Finite.induction_on'` to make induction work. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/RingTheory/AlgebraicIndependent/AlgebraicClosure.lean + theorem AlgebraicIndependent.extendScalars + theorem AlgebraicIndependent.extendScalars_of_isIntegral + theorem AlgebraicIndependent.extendScalars_of_isSimpleRing + theorem AlgebraicIndependent.subalgebraAlgebraicClosure + theorem AlgebraicIndependent.subalgebra_of_isIntegral Modified Mathlib/RingTheory/AlgebraicIndependent/Basic.lean + theorem algebraicIndependent_of_finite_type Modified Mathlib/RingTheory/AlgebraicIndependent/Transcendental.lean + theorem AlgebraicIndependent.adjoin_iff_disjoint + theorem AlgebraicIndependent.adjoin_of_disjoint + theorem AlgebraicIndependent.transcendental_adjoin + theorem AlgebraicIndependent.transcendental_adjoin_iff + theorem algebraicIndependent_singleton_iff 2024-12-20 16:06:11 e5c7795 feat: Define ENorm notation class (#20121) * This PR only defines the notation class and two instances, but doesn't use it yet. * There is an existing unused definition of `ENorm`. Since I might use it in the future, I kept it around, but renamed it (and the file) `ENormedSpace`. I did not modify anything, and didn't add deprecations since it is unused and the main definition now has a different meaning. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Analysis/Normed/Group/Basic.lean + theorem enorm_eq_nnnorm + theorem enorm_eq_self Renamed Mathlib/Analysis/NormedSpace/ENorm.lean to Mathlib/Analysis/NormedSpace/ENormedSpace.lean - theorem ENorm.coeFn_injective - theorem ENorm.coe_inj - theorem ENorm.coe_max - theorem ENorm.eq_zero_iff - theorem ENorm.ext - def ENorm.finiteSubspace - theorem ENorm.finite_dist_eq - theorem ENorm.finite_edist_eq - theorem ENorm.finite_norm_eq - theorem ENorm.map_add_le - theorem ENorm.map_neg - theorem ENorm.map_smul - theorem ENorm.map_sub_le - theorem ENorm.map_sub_rev - theorem ENorm.map_zero - theorem ENorm.max_map - theorem ENorm.top_map - structure ENorm + theorem ENormedSpace.coeFn_injective + theorem ENormedSpace.coe_inj + theorem ENormedSpace.coe_max + theorem ENormedSpace.eq_zero_iff + theorem ENormedSpace.ext + def ENormedSpace.finiteSubspace + theorem ENormedSpace.finite_dist_eq + theorem ENormedSpace.finite_edist_eq + theorem ENormedSpace.finite_norm_eq + theorem ENormedSpace.map_add_le + theorem ENormedSpace.map_neg + theorem ENormedSpace.map_smul + theorem ENormedSpace.map_sub_le + theorem ENormedSpace.map_sub_rev + theorem ENormedSpace.map_zero + theorem ENormedSpace.max_map + theorem ENormedSpace.top_map + structure ENormedSpace 2024-12-20 15:50:15 f9d7e61 chore(ModelTheory): fix docstring (#20116) ESTIMATED CHANGES Modified Mathlib/ModelTheory/Syntax.lean 2024-12-20 15:50:13 53defdf feat(Algebra/Module): presentation of the tensor product (#18432) Given presentations of two `A`-modules `M₁` and `M₂`, we obtain a presentation of `M₁ ⊗[A] M₂`. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Module/Presentation/Tensor.lean + theorem Module.Relations.Solution.IsPresentation.tensor 2024-12-20 15:50:12 b95ee76 feat(Algebra/Category/ModuleCat): the pseudofunctors which send a ring to its category of modules (#18197) In this PR, we construct various pseudofunctors which send a (commutative) ring to its category of modules. Depending on the case, the functoriality is given by the restriction of scalars or by the extension of scalars. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Category/ModuleCat/ChangeOfRings.lean + theorem ModuleCat.ExtendScalars.hom_ext + theorem ModuleCat.extendRestrictScalarsAdj_homEquiv_apply + theorem ModuleCat.extendRestrictScalarsAdj_unit_app_apply + theorem ModuleCat.extendScalarsComp_hom_app_one_tmul + theorem ModuleCat.extendScalarsId_hom_app_one_tmul + theorem ModuleCat.extendScalarsId_inv_app_apply + theorem ModuleCat.extendScalars_assoc' + theorem ModuleCat.extendScalars_assoc + theorem ModuleCat.extendScalars_comp_id + theorem ModuleCat.extendScalars_id_comp + theorem ModuleCat.homEquiv_extendScalarsComp + theorem ModuleCat.homEquiv_extendScalarsId Added Mathlib/Algebra/Category/ModuleCat/Pseudofunctor.lean 2024-12-20 15:29:40 ea4f170 doc(100,1000.yaml): tweak resp. add entry for Cantor's diagonal argument (#20112) - document the second informal name in a comment, for future readers of the yaml file - point to a different declaration (which matches what wikipedia has); one could also add both declarations, if preferred - properly attribute Johannes Hölzl and Mario Carneiro as authors ESTIMATED CHANGES Modified docs/100.yaml Modified docs/1000.yaml 2024-12-20 15:29:39 7987fe3 doc(*.yml): mention Sylow theorems (#20111) - mention them in the overview - they have been upstreamed already: make 100.yaml point to the in-mathlib links - add the same links to 1000.yaml ESTIMATED CHANGES Modified Mathlib/GroupTheory/Sylow.lean Modified docs/100.yaml Modified docs/1000.yaml Modified docs/overview.yaml 2024-12-20 15:29:38 2fbbcf1 feat: the successor as a function `WithBot α → α` (#20055) This will be useful to do induction on a family of polynomials by the sum of the successor of their degree. From GrowthInGroups (LeanCamCombi) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Order/SuccPred/WithBot.lean + theorem WithBot.succ_natCast + theorem WithBot.succ_ofNat + theorem WithBot.succ_one + theorem WithBot.succ_zero Modified Mathlib/Algebra/Polynomial/Splits.lean Modified Mathlib/Order/SuccPred/Basic.lean + theorem WithBot.orderSucc_bot + theorem WithBot.orderSucc_coe - theorem WithBot.succ_bot - theorem WithBot.succ_coe + theorem WithTop.orderPred_coe + theorem WithTop.orderPred_top - theorem WithTop.pred_coe - theorem WithTop.pred_top Added Mathlib/Order/SuccPred/WithBot.lean + def WithBot.succ + theorem WithBot.succ_bot + theorem WithBot.succ_coe + theorem WithBot.succ_eq_succ + theorem WithBot.succ_le_succ + theorem WithBot.succ_lt_succ + theorem WithBot.succ_mono + theorem WithBot.succ_strictMono + def WithTop.pred + theorem WithTop.pred_coe + theorem WithTop.pred_eq_pred + theorem WithTop.pred_le_pred + theorem WithTop.pred_lt_pred + theorem WithTop.pred_mono + theorem WithTop.pred_strictMono + theorem WithTop.pred_top 2024-12-20 15:29:36 92c2d0c feat(CategoryTheory/Enriched): functoriality of the enrichment of functor categories (#18414) Let `C` be a `V`-enriched ordinary category. Functor categories `J ⥤ C` have been `V`-enriched in #18009. Given two functors `F₁` and `F₂` in `J ⥤ C`, we use the previous results for functors `Under j ⥤ C` for all `j : J` in order to construct `functorEnrichedHom V F₁ F₂ : J ⥤ V`, and show that the limit of this functor identifies to `enrichedHom V F₁ F₂`. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Enriched/FunctorCategory.lean + theorem CategoryTheory.Enriched.FunctorCategory.isLimitConeFunctorEnrichedHom.fac 2024-12-20 14:57:26 8126390 feat: iUnion and iInter over PSigma (#20077) ESTIMATED CHANGES Modified Mathlib/Data/Set/Lattice.lean + theorem Set.iInter_psigma' + theorem Set.iInter_psigma + theorem Set.iUnion_psigma' + theorem Set.iUnion_psigma 2024-12-20 14:57:24 a4cfef8 feat: determinant of left multiplication (#19873) From FLT ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/Determinant.lean + theorem LinearMap.det_mulLeft + theorem LinearMap.det_mulRight + theorem LinearMap.det_ring Modified Mathlib/LinearAlgebra/Matrix/ToLin.lean + theorem LinearMap.toMatrix_singleton 2024-12-20 14:36:27 42764fb chore: generalise `‖a ^ n‖ ≤ n * ‖a‖` to non-abelian groups (#20110) From LeanCamCombi ESTIMATED CHANGES Modified Mathlib/Analysis/Normed/Group/Basic.lean +/- theorem nnnorm_pow_le_mul_norm +/- theorem norm_pow_le_mul_norm Modified Mathlib/Analysis/Normed/Group/Hom.lean Modified Mathlib/Analysis/Normed/Group/Int.lean 2024-12-20 14:09:12 83682ff feat(RingTheory): the residue field of a prime ideal (#18416) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/RingTheory/LocalRing/ResidueField/Ideal.lean + def Ideal.ResidueField.mapₐ + theorem Ideal.ResidueField.mapₐ_apply + theorem Ideal.algebraMap_residueField_eq_zero + theorem Ideal.bijective_algebraMap_quotient_residueField + theorem Ideal.injective_algebraMap_quotient_residueField + theorem Ideal.ker_algebraMap_residueField + theorem algebraMap_mk 2024-12-20 13:13:25 49f1292 chore: move `Logic.Equiv.TransferInstance` to `Algebra.Equiv.TransferInstance` (#19993) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Category/ModuleCat/EnoughInjectives.lean Renamed Mathlib/Logic/Equiv/TransferInstance.lean to Mathlib/Algebra/Equiv/TransferInstance.lean Modified Mathlib/Algebra/Group/AddChar.lean Modified Mathlib/Algebra/Module/Injective.lean Modified Mathlib/CategoryTheory/Abelian/Transfer.lean Modified Mathlib/CategoryTheory/Galois/Basic.lean Modified Mathlib/CategoryTheory/Galois/GaloisObjects.lean Modified Mathlib/CategoryTheory/Localization/CalculusOfFractions/Preadditive.lean Modified Mathlib/CategoryTheory/Preadditive/Opposite.lean Modified Mathlib/Data/Finsupp/MonomialOrder/DegLex.lean Modified Mathlib/Logic/Equiv/Basic.lean Modified Mathlib/Logic/Equiv/Defs.lean Modified Mathlib/Logic/Small/Group.lean Modified Mathlib/Logic/Small/Ring.lean Modified Mathlib/RingTheory/LocalRing/RingHom/Basic.lean Modified Mathlib/RingTheory/OrzechProperty.lean Modified Mathlib/RingTheory/Regular/RegularSequence.lean Modified Mathlib/Topology/Algebra/UniformRing.lean Modified Mathlib/Topology/Homotopy/HomotopyGroup.lean 2024-12-20 13:13:23 4649cb1 chore: split material about continued fractions from DiophantineApproximation (#19820) ESTIMATED CHANGES Modified Mathlib.lean Renamed Mathlib/NumberTheory/DiophantineApproximation.lean to Mathlib/NumberTheory/DiophantineApproximation/Basic.lean - theorem Real.convs_eq_convergent - theorem Real.exists_convs_eq_rat Added Mathlib/NumberTheory/DiophantineApproximation/ContinuedFractions.lean + theorem Real.convs_eq_convergent + theorem Real.exists_convs_eq_rat Modified Mathlib/NumberTheory/Pell.lean 2024-12-20 13:13:22 4bbcfac feat(RingTheory): `HomogeneousLocalization.awayMap` is a localization (#19486) This contribution was created as part of the Durham Computational Algebraic Geometry Workshop. ESTIMATED CHANGES Modified Mathlib/AlgebraicGeometry/ProjectiveSpectrum/Scheme.lean Modified Mathlib/RingTheory/GradedAlgebra/HomogeneousLocalization.lean + theorem HomogeneousLocalization.Away.isLocalization_mul + theorem HomogeneousLocalization.Away.mk_surjective + theorem HomogeneousLocalization.Away.val_mk + theorem HomogeneousLocalization.awayMap_mk 2024-12-20 13:13:21 949bc42 feat(CategoryTheory/MorphismProperty): classes of morphisms that are stable under transfinite compositions (#19306) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/CategoryTheory/MorphismProperty/Basic.lean + theorem CategoryTheory.MorphismProperty.of_eq Added Mathlib/CategoryTheory/MorphismProperty/TransfiniteComposition.lean + def CategoryTheory.Functor.coconeLT + theorem CategoryTheory.Functor.isWellOrderContinuous_of_iso + def CategoryTheory.Functor.restrictionLT + theorem CategoryTheory.MorphismProperty.mem_of_transfinite_composition + inductive CategoryTheory.MorphismProperty.transfiniteCompositionsOfShape + theorem CategoryTheory.MorphismProperty.transfiniteCompositionsOfShape_le 2024-12-20 13:13:19 ef7c8b7 refactor(Nat.Prime.Defs): use `csimp` for `Nat.decidablePrime` (#19240) previously there were two instances for `Decidable (Nat.Prime n)`, a local one that was kernel-friendly and a non-local one that was compiler friendly. It seems we can have this cake and eat it too by defining the instance to be kernel friendly, and then using `csimp` to use the other instance when running code natively. It seems to work, given that ``` set_option trace.compiler.ir.result true in theorem foo : Prime 31 := by native_decide ``` prints ``` [result] def Nat.foo._nativeDecide_1._closed_1 : u8 := let x_1 : obj := 31; let x_2 : u8 := Nat.decidablePrime' x_1; ret x_2 def Nat.foo._nativeDecide_1 : u8 := let x_1 : u8 := Nat.foo._nativeDecide_1._closed_1; ret x_1 ``` ESTIMATED CHANGES Modified Mathlib/Data/Nat/Prime/Defs.lean + def Nat.decidablePrime' - def Nat.decidablePrime1 + theorem Nat.decidablePrime_csimp 2024-12-20 13:13:18 733489d feat: add `ENat.map` and lemmas (#19149) ESTIMATED CHANGES Modified Mathlib/Analysis/Analytic/Meromorphic.lean Modified Mathlib/Data/ENat/Basic.lean + def ENat.map + theorem ENat.map_coe + theorem ENat.map_eq_top_iff + theorem ENat.map_natCast_nonneg + theorem ENat.map_ofNat + theorem ENat.map_one + theorem ENat.map_top + theorem ENat.map_zero + theorem ENat.monotone_map_iff + theorem ENat.ne_top_iff_exists + theorem ENat.strictMono_map_iff Modified Mathlib/Data/Real/ENatENNReal.lean +/- theorem ENat.map_coe_nnreal +/- def ENat.toENNReal Modified Mathlib/RingTheory/MvPowerSeries/Order.lean 2024-12-20 13:13:16 c800d7a feat(Data/Nat/Nth): `nth_add_one` (#18836) Add the lemma ```lean lemma nth_add_one {n : ℕ} (h0 : ¬p 0) (h : nth p n ≠ 0) : nth (fun i ↦ p (i + 1)) n + 1 = nth p n := by ``` and its variant ```lean lemma nth_add_one_eq_sub {n : ℕ} (h0 : ¬p 0) (h : nth p n ≠ 0) : nth (fun i ↦ p (i + 1)) n = nth p n - 1 := by ``` Feel free to golf; it seems like there ought to be a much shorter proof, possibly following a different approach. ESTIMATED CHANGES Modified Mathlib/Data/Nat/Nth.lean + theorem Nat.nth_add + theorem Nat.nth_add_eq_sub + theorem Nat.nth_add_one + theorem Nat.nth_add_one_eq_sub + theorem Nat.nth_comp_of_strictMono 2024-12-20 13:13:15 69d5dbc feat(Algebra/MvPolynomial): Schwartz-Zippel lemma (#5297) An implementation of the Schwartz-Zippel lemma Sometimes also called the DeMillo–Lipton–Schwartz–Zippel lemma. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/MvPolynomial/SchwartzZippel.lean + theorem MvPolynomial.schwartz_zippel_sum_degreeOf + theorem MvPolynomial.schwartz_zippel_sup_sum + theorem MvPolynomial.schwartz_zippel_totalDegree Modified docs/references.bib 2024-12-20 12:30:22 486b711 chore(GodelBetaFunction): use `getElem` (#20105) ESTIMATED CHANGES Modified Mathlib/Logic/Godel/GodelBetaFunction.lean +/- theorem Nat.beta_unbeta_coe 2024-12-20 12:30:21 0719ca8 chore: rename List.Vector.get_eq_get (#20087) ESTIMATED CHANGES Modified Mathlib/Computability/Primrec.lean Modified Mathlib/Data/Vector/Basic.lean - theorem List.Vector.get_eq_get + theorem List.Vector.get_eq_get_toList Modified Mathlib/Data/Vector/Mem.lean 2024-12-20 12:30:20 02bf40f feat: monovarying functions are simultaneously monotone (#20047) From LeanCamCombi ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Order/Monotone/MonovaryOrder.lean + def MonovaryOrder + theorem antivaryOn_iff_exists_antitoneOn_monotoneOn + theorem antivaryOn_iff_exists_monotoneOn_antitoneOn + theorem antivary_iff_exists_antitone_monotone + theorem antivary_iff_exists_monotone_antitone + theorem monovaryOn_iff_exists_antitoneOn + theorem monovaryOn_iff_exists_monotoneOn + theorem monovary_iff_exists_antitone + theorem monovary_iff_exists_monotone 2024-12-20 12:30:18 02abf1b chore: revert import order between Algebra.Group.ZeroOne and Logic.Nonempty (#19994) ESTIMATED CHANGES Modified Mathlib/Algebra/Group/ZeroOne.lean + theorem Subsingleton.eq_one Modified Mathlib/CategoryTheory/Types.lean Modified Mathlib/Data/FunLike/Basic.lean Modified Mathlib/Data/Int/Defs.lean Modified Mathlib/Data/Subtype.lean Modified Mathlib/Data/TwoPointing.lean Modified Mathlib/Logic/Equiv/Defs.lean Modified Mathlib/Logic/Nonempty.lean Modified Mathlib/Logic/Nontrivial/Basic.lean - theorem Subsingleton.eq_one Modified Mathlib/Order/Basic.lean Modified Mathlib/Tactic/CategoryTheory/Reassoc.lean 2024-12-20 12:30:17 83450e8 chore: tidy various files (#17342) ESTIMATED CHANGES Modified Counterexamples/Phillips.lean Modified Mathlib/Algebra/Algebra/Basic.lean Modified Mathlib/Algebra/Group/Aut.lean Modified Mathlib/Algebra/Module/ZLattice/Basic.lean Modified Mathlib/Algebra/Polynomial/BigOperators.lean Modified Mathlib/Algebra/Ring/Aut.lean Modified Mathlib/Algebra/Ring/Subring/IntPolynomial.lean Modified Mathlib/Analysis/Analytic/Constructions.lean Modified Mathlib/Analysis/SpecialFunctions/Complex/Log.lean Modified Mathlib/CategoryTheory/Bicategory/Adjunction.lean Modified Mathlib/Data/Finset/Basic.lean Modified Mathlib/Data/Finsupp/Weight.lean Modified Mathlib/Data/List/Basic.lean Modified Mathlib/Data/Matrix/RowCol.lean +/- theorem Matrix.row_mulVec_eq_const Modified Mathlib/Data/Nat/Choose/Sum.lean Modified Mathlib/Data/Nat/Defs.lean Modified Mathlib/Dynamics/Ergodic/Action/OfMinimal.lean Modified Mathlib/FieldTheory/Adjoin.lean - theorem IntermediateField.finrank_bot - theorem IntermediateField.rank_bot Modified Mathlib/GroupTheory/Perm/Cycle/Factors.lean Modified Mathlib/GroupTheory/Perm/Finite.lean Modified Mathlib/LinearAlgebra/AffineSpace/AffineSubspace.lean Modified Mathlib/LinearAlgebra/Vandermonde.lean Modified Mathlib/NumberTheory/NumberField/CanonicalEmbedding/ConvexBody.lean Modified Mathlib/NumberTheory/VonMangoldt.lean Modified Mathlib/Order/Defs/LinearOrder.lean Modified Mathlib/Order/Partition/Finpartition.lean Modified Mathlib/Order/RelClasses.lean Modified Mathlib/RingTheory/Norm/Basic.lean Modified Mathlib/RingTheory/Presentation.lean Modified Mathlib/Topology/Order/ScottTopology.lean 2024-12-20 12:18:35 5ba5782 feat(Algebra/Category/Ring): Tensor product over Z is coproduct in `CommRingCat` (#19976) Show that the tensor product over the integers is a coproduct in the category of commutative rings. This is needed for constructing a `ChosenFiniteProducts` instance for the category of affine schemes. It would be nice to have the more general statement for commutative `R`-algebras, but it seems like mathlib does not define the category of commutative `R`-algebras yet. ESTIMATED CHANGES Modified Mathlib/Algebra/Category/Ring/Constructions.lean + def CommRingCat.coproductCocone + def CommRingCat.coproductCoconeIsColimit + theorem CommRingCat.coproductCocone_inl + theorem CommRingCat.coproductCocone_inr + def CommRingCat.coproductColimitCocone 2024-12-20 12:02:40 e5485b2 feat(Valued/LocallyCompact): `totallyBounded_iff_finite_residueField` (#15424) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/RingTheory/Valuation/Integers.lean + theorem Valuation.Integers.valuation_unit Added Mathlib/Topology/Algebra/Valued/LocallyCompact.lean + theorem Irreducible.maximalIdeal_eq_closedBall + theorem Irreducible.maximalIdeal_pow_eq_closedBall_pow + theorem NormedField.v_eq_valuation + theorem Valued.integer.coe_span_singleton_eq_closedBall + theorem Valued.integer.finite_quotient_maximalIdeal_pow_of_finite_residueField + theorem Valued.integer.isUnit_iff_norm_eq_one + theorem Valued.integer.mem_iff + theorem Valued.integer.norm_coe_unit + theorem Valued.integer.norm_irreducible_lt_one + theorem Valued.integer.norm_irreducible_pos + theorem Valued.integer.norm_le_one + theorem Valued.integer.norm_unit + theorem Valued.integer.totallyBounded_iff_finite_residueField 2024-12-20 11:52:35 772472a feat: `aeval` a Chebyshev polynomial (#19952) The theorem `Polynomial.Chebyshev.aeval_T` states that if `R'` is an algebra over `R`, then `aeval x (T R n) = (T R' n).eval x`. We move this theorem and the equivalent `Polynomial.Chebyshev.algebraMap_eval_T` from `Mathlib/Analysis/SpecialFunctions/Trigonometric/Chebyshev.lean` to `Mathlib/RingTheory/Polynomial/Chebyshev.lean`. We also add variants of this theorem for the Chebyshev C and S polynomials. ESTIMATED CHANGES Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Chebyshev.lean +/- theorem Polynomial.Chebyshev.C_two_mul_real_cos +/- theorem Polynomial.Chebyshev.S_two_mul_real_cos - theorem Polynomial.Chebyshev.aeval_T - theorem Polynomial.Chebyshev.aeval_U - theorem Polynomial.Chebyshev.algebraMap_eval_T - theorem Polynomial.Chebyshev.algebraMap_eval_U + theorem Polynomial.Chebyshev.complex_ofReal_eval_C + theorem Polynomial.Chebyshev.complex_ofReal_eval_S Modified Mathlib/RingTheory/Polynomial/Chebyshev.lean + theorem Polynomial.Chebyshev.aeval_C + theorem Polynomial.Chebyshev.aeval_S + theorem Polynomial.Chebyshev.aeval_T + theorem Polynomial.Chebyshev.aeval_U + theorem Polynomial.Chebyshev.algebraMap_eval_C + theorem Polynomial.Chebyshev.algebraMap_eval_S + theorem Polynomial.Chebyshev.algebraMap_eval_T + theorem Polynomial.Chebyshev.algebraMap_eval_U 2024-12-20 11:33:58 5465191 feat(GroupTheory/Index): Add `Subgroup.card_range_dvd` and `Subgroup.card_map_dvd` (#20100) This PR adds a few missing lemmas to `GroupTheory/Index.lean`. ESTIMATED CHANGES Modified Mathlib/GroupTheory/Index.lean + theorem Subgroup.card_map_dvd + theorem Subgroup.card_range_dvd 2024-12-20 11:33:57 7c2ef33 chore(IsAlgClosed/Classification): make theorems more universe polymorphic (#18434) ESTIMATED CHANGES Modified Mathlib/FieldTheory/IsAlgClosed/Classification.lean + theorem IsAlgClosed.cardinal_eq_cardinal_transcendence_basis_of_aleph0_lt' + theorem IsAlgClosed.cardinal_le_max_transcendence_basis' - theorem IsAlgClosed.ringEquivOfCardinalEqOfCharEq - theorem IsAlgClosed.ringEquivOfCardinalEqOfCharZero + theorem IsAlgClosed.ringEquiv_of_equiv_of_charZero + theorem IsAlgClosed.ringEquiv_of_equiv_of_char_eq Modified Mathlib/ModelTheory/Algebra/Field/IsAlgClosed.lean +/- theorem FirstOrder.Field.ACF_categorical 2024-12-20 11:24:44 a7ed2d0 refactor(GroupTheory/SpecificGroups/Cyclic): Add `isCyclic_iff_exists_zpowers_eq_top` and golf (#20085) This PR adds `isCyclic_iff_exists_zpowers_eq_top` and does a little golfing. ESTIMATED CHANGES Modified Mathlib/GroupTheory/SpecificGroups/Cyclic.lean +/- theorem IsCyclic.exists_generator - theorem isCyclic_iff_exists_ofOrder_eq_natCard + theorem isCyclic_iff_exists_orderOf_eq_natCard + theorem isCyclic_iff_exists_zpowers_eq_top 2024-12-20 10:20:24 78a1c37 feat(RingTheory/Ideal/Over): define the set of all prime ideals that lie over an ideal (#19139) Define the set of all prime ideals that lie over an ideal. It is mainly for #19141. This is adapted from the proof in [the case of number fields](https://github.com/jjdishere/neukirch/blob/8fdb75f7ebab8a20eea902058956d7dece648959/AlgebraicNumberTheory/AlgebraicIntegersPart2/HilbertRamificationTheory.lean#L384). Thanks to @erdOne for reminding me that something similar was done in `flt-regular`. I referred to it to make my code a lot simpler. ESTIMATED CHANGES Modified Mathlib/RingTheory/DedekindDomain/Ideal.lean + theorem coe_primesOverFinset + theorem one_le_primesOver_ncard + theorem primesOver_finite + theorem primesOver_ncard_ne_zero Modified Mathlib/RingTheory/Ideal/Maps.lean + theorem Ideal.Ideal.map_ne_bot_of_ne_bot Modified Mathlib/RingTheory/Ideal/Over.lean + theorem Ideal.exists_ideal_liesOver_maximal_of_isIntegral + theorem Ideal.ne_bot_of_liesOver_of_ne_bot + theorem Ideal.under_bot + theorem Ideal.under_top + def primesOver + theorem primesOver_bot Modified Mathlib/RingTheory/Ideal/Prime.lean + theorem IsDomain.of_bot_isPrime 2024-12-20 10:20:23 25ee8b0 feat(Algebra/Order/Monoid/Unbundled/WithTop): add lemmas about `WithTop.map` and `WithBot.map` (#19122) ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Monoid/Unbundled/WithTop.lean + theorem WithBot.map_eq_natCast_iff + theorem WithBot.map_eq_ofNat_iff + theorem WithBot.map_eq_one_iff + theorem WithBot.map_natCast + theorem WithBot.map_ofNat + theorem WithBot.natCast_eq_map_iff + theorem WithBot.ofNat_eq_map_iff + theorem WithBot.one_eq_map_iff + theorem WithTop.map_eq_natCast_iff + theorem WithTop.map_eq_ofNat_iff + theorem WithTop.map_eq_one_iff + theorem WithTop.map_natCast + theorem WithTop.map_ofNat + theorem WithTop.natCast_eq_map_iff + theorem WithTop.ofNat_eq_map_iff + theorem WithTop.one_eq_map_iff Modified Mathlib/Order/WithBot.lean + theorem WithBot.map_eq_some_iff + theorem WithBot.some_eq_map_iff + theorem WithTop.map_eq_some_iff + theorem WithTop.some_eq_map_iff 2024-12-20 09:05:40 d70be40 refactor(Algebra/Group/Subgroup/Basic): Rename `normalizer_eq_top` to `normalizer_eq_top_iff` (#20109) I found myself writing `normalizer_eq_top.mpr h` a lot when deducing `H.normalizer = ⊤` from `[h : H.Normal]`. Now this becomes `H.normalizer_eq_top`, and the original iff version of the lemma has been renamed to `normalizer_eq_top_iff`. ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Subgroup/Basic.lean +/- theorem Subgroup.normalizer_eq_top + theorem Subgroup.normalizer_eq_top_iff Modified Mathlib/Algebra/Group/Subgroup/MulOppositeLemmas.lean Modified Mathlib/Algebra/Group/Subgroup/Order.lean Modified Mathlib/GroupTheory/Frattini.lean Modified Mathlib/GroupTheory/SchurZassenhaus.lean Modified Mathlib/GroupTheory/Sylow.lean 2024-12-20 09:05:39 31a16b3 feat(GroupTheory/Solvable): Prove `isSolvable_iff_commutator_lt` (#20107) A finite group is solvable if and only if `[H, H] < H` for all nontrivial subgroups `H`. ESTIMATED CHANGES Modified Mathlib/GroupTheory/Solvable.lean + theorem IsSolvable.commutator_lt_of_ne_bot + theorem IsSolvable.commutator_lt_top_of_nontrivial + theorem isSolvable_iff_commutator_lt 2024-12-20 09:05:37 b59d98d feat(Algebra/Polynomial/Laurent): evaluate at a unit (#19617) This PR introduces a `LaurentPolynomial.smeval` function that evaluates a Laurent polynomial with coefficients in a semiring `R` at a unit in a semiring `S` that has scalar multiplication by `R`. The standard use case is when `R` is commutative and `S` is an `R`-algebra. ESTIMATED CHANGES Modified Mathlib/Algebra/Polynomial/Laurent.lean + def LaurentPolynomial.leval + def LaurentPolynomial.smeval + theorem LaurentPolynomial.smeval_C + theorem LaurentPolynomial.smeval_C_mul + theorem LaurentPolynomial.smeval_C_mul_T_n + theorem LaurentPolynomial.smeval_T_pow + theorem LaurentPolynomial.smeval_add + theorem LaurentPolynomial.smeval_congr + theorem LaurentPolynomial.smeval_eq_sum + theorem LaurentPolynomial.smeval_one + theorem LaurentPolynomial.smeval_single + theorem LaurentPolynomial.smeval_zero + theorem LaurentPolynomial.smul_eq_C_mul 2024-12-20 09:05:36 c3d1ac1 feat(Polynomial): bounding the coefficients of `modByMonic`/`divByMonic` (#19163) Using the usual euclidean algorithm, one can write the coefficients of `p %ₘ q` and `p /ₘ q` as sums of products of a few number of coefficients of `p` and `q`. From GrowthInGroups ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Algebra/Operations.lean + theorem Submodule.one_mem_div Added Mathlib/Algebra/Polynomial/CoeffMem.lean + theorem Polynomial.coeff_divByMonic_mem_span_pow_mul_span + theorem Polynomial.coeff_divModByMonicAux_mem_span_pow_mul_span + theorem Polynomial.coeff_modByMonic_mem_span_pow_mul_span Modified Mathlib/Algebra/Polynomial/Div.lean + theorem Polynomial.degree_modByMonic_le_left + theorem Polynomial.natDegree_modByMonic_le_left 2024-12-20 08:18:07 1f3a116 feat(GroupTheory/Complement): Quotient of complementary subgroup (#20101) If `H` and `K` are complementary with `K` normal, then `G/K` is isomorphic to `H`. ESTIMATED CHANGES Modified Mathlib/GroupTheory/Complement.lean 2024-12-20 08:18:06 1f090b0 feat(LinearAlgebra/TensorProduct/RightExactness): generalize `TensorProduct.(map|mk)_surjective` to `[Comm]Semiring` (#20034) Originally they were `[Comm]Ring`. ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/TensorProduct/RightExactness.lean 2024-12-20 08:18:05 faa9c3f chore: move `RepresentationTheory/Action` to `CategoryTheory/Action` (#20002) Actions are not linear enough for representation theory. This commit moves the `RepresentationTheory/Action` directory to `CategoryTheory/Action` and adjusts the imports accordingly. This also means that the theory of Galois categories no longer needs to import from `RepresentationTheory/`. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Category/MonCat/Basic.lean Renamed Mathlib/RepresentationTheory/Action/Basic.lean to Mathlib/CategoryTheory/Action/Basic.lean Renamed Mathlib/RepresentationTheory/Action/Concrete.lean to Mathlib/CategoryTheory/Action/Concrete.lean Renamed Mathlib/RepresentationTheory/Action/Continuous.lean to Mathlib/CategoryTheory/Action/Continuous.lean Renamed Mathlib/RepresentationTheory/Action/Limits.lean to Mathlib/CategoryTheory/Action/Limits.lean Renamed Mathlib/RepresentationTheory/Action/Monoidal.lean to Mathlib/CategoryTheory/Action/Monoidal.lean Modified Mathlib/CategoryTheory/Galois/Examples.lean Modified Mathlib/RepresentationTheory/Rep.lean 2024-12-20 08:07:05 f3381fd chore(Norm/Transitivity): replace `RingHom.mapMatrix` by `Matrix.map` (#20009) because `Matrix.map` is the simple normal form ESTIMATED CHANGES Modified Mathlib/RingTheory/Norm/Transitivity.lean 2024-12-20 08:07:04 77833b2 feat(Counterexamples): irrational a, b with rational a^b (#19931) ESTIMATED CHANGES Modified Counterexamples.lean Added Counterexamples/IrrationalPowerOfIrrational.lean + theorem Counterexample.not_irrational_rpow 2024-12-20 08:07:02 e0cf109 feat(RingTheory/Polynomial/HilbertPoly): `Polynomial.hilbertPoly_linearMap` (#19897) ESTIMATED CHANGES Modified Mathlib/RingTheory/Polynomial/HilbertPoly.lean + theorem Polynomial.hilbertPoly_add_left - theorem Polynomial.hilbertPoly_poly_succ - theorem Polynomial.hilbertPoly_poly_zero + theorem Polynomial.hilbertPoly_smul + theorem Polynomial.hilbertPoly_succ + theorem Polynomial.hilbertPoly_zero_left - theorem Polynomial.hilbertPoly_zero_nat + theorem Polynomial.hilbertPoly_zero_right 2024-12-20 06:52:42 8854cbc chore: further backports for leanprover/lean4#6397 (#20098) ESTIMATED CHANGES Modified Mathlib/Algebra/FreeMonoid/Count.lean Modified Mathlib/Algebra/Group/Defs.lean Modified Mathlib/Analysis/SpecialFunctions/Gaussian/GaussianIntegral.lean Modified Mathlib/CategoryTheory/Functor/OfSequence.lean Modified Mathlib/Combinatorics/Quiver/SingleObj.lean Modified Mathlib/Computability/PartrecCode.lean +/- theorem Nat.Partrec.Code.eval_curry +/- theorem Nat.Partrec.Code.eval_id Modified Mathlib/Computability/RegularExpressions.lean Modified Mathlib/Computability/TMToPartrec.lean Modified Mathlib/Data/List/Basic.lean Modified Mathlib/Data/List/DropRight.lean Modified Mathlib/Data/List/EditDistance/Defs.lean Modified Mathlib/Data/List/Indexes.lean Modified Mathlib/Data/List/Range.lean Modified Mathlib/Data/Nat/Multiplicity.lean Modified Mathlib/Data/Num/Lemmas.lean Modified Mathlib/Data/Ordmap/Ordset.lean Modified Mathlib/Data/TypeVec.lean Modified Mathlib/Data/W/Constructions.lean Modified Mathlib/Deprecated/LazyList.lean Modified Mathlib/GroupTheory/CoprodI.lean Modified Mathlib/GroupTheory/Coxeter/Inversion.lean Modified Mathlib/ModelTheory/Algebra/Field/IsAlgClosed.lean Modified Mathlib/ModelTheory/Semantics.lean Modified Mathlib/RingTheory/FractionalIdeal/Basic.lean Modified Mathlib/SetTheory/ZFC/Basic.lean + theorem PSet.empty_def Modified Mathlib/SetTheory/ZFC/Rank.lean +/- theorem PSet.rank_empty Modified Mathlib/Topology/Category/Profinite/Nobeling.lean 2024-12-20 06:52:40 aceed3d chore: move normed order homs to Analysis (#20003) ESTIMATED CHANGES Modified Mathlib.lean Renamed Mathlib/Algebra/Order/Hom/Normed.lean to Mathlib/Analysis/Normed/Order/Hom/Basic.lean Renamed Mathlib/Algebra/Order/Hom/Ultra.lean to Mathlib/Analysis/Normed/Order/Hom/Ultra.lean Modified Mathlib/Data/Real/IsNonarchimedean.lean 2024-12-20 05:45:17 af8d133 chore: generalize MulEquiv.prime_iff (#20093) Also put the simpler form on the RHS and simplify the proofs that use it. ESTIMATED CHANGES Modified Mathlib/Algebra/Prime/Lemmas.lean +/- theorem MulEquiv.prime_iff Modified Mathlib/RingTheory/Polynomial/Basic.lean Modified Mathlib/RingTheory/UniqueFactorizationDomain/Basic.lean 2024-12-20 05:45:15 1b8a2a5 chore(*): drop some `[Decidable*]` assumptions (#19988) Found by the linter in #10235 ESTIMATED CHANGES Modified Mathlib/Algebra/BigOperators/Group/Finset.lean +/- theorem Finset.prod_filter_xor Modified Mathlib/Algebra/BigOperators/Ring.lean Modified Mathlib/Algebra/MvPolynomial/Degrees.lean +/- theorem MvPolynomial.degreeOf_monomial_eq Modified Mathlib/CategoryTheory/Limits/Shapes/PiProd.lean +/- theorem CategoryTheory.Limits.Pi.map_eq_prod_map Modified Mathlib/LinearAlgebra/TensorProduct/Basis.lean 2024-12-20 05:45:14 5a518c2 feat: evaluate Chebyshev polynomials at small integers (#19954) We prove the following facts about Chebyshev polynomials: - $T_n(1) = 1$ - $T_n(-1) = (-1)^n$ - $U_n(1) = n + 1$ - $U_n(-1) = (-1)^n (n + 1)$ - $C_n(2) = 2$ - $C_n(-2) = 2 \cdot (-1)^n$ - $S_n(2) = n + 1$ - $S_n(-2) = (-1)^n (n + 1)$ Simplifications of the proofs are very welcome. ESTIMATED CHANGES Modified Mathlib/RingTheory/Polynomial/Chebyshev.lean + theorem Polynomial.Chebyshev.C_eval_neg_two + theorem Polynomial.Chebyshev.C_eval_two + theorem Polynomial.Chebyshev.S_eval_neg_two + theorem Polynomial.Chebyshev.S_eval_two + theorem Polynomial.Chebyshev.T_eval_neg_one + theorem Polynomial.Chebyshev.T_eval_one + theorem Polynomial.Chebyshev.U_eval_neg_one + theorem Polynomial.Chebyshev.U_eval_one 2024-12-20 05:45:13 f4ff33e feat: the second derivative of an analytic map is symmetric (#19770) Unify the facts that the second derivative of a `C^2` function over R or C, or an analytic function over an arbitrary field, is symmetric. This is expressed as an assumption that `f` is `C^n` for some `n ≥ minSmoothness 𝕜 2`, where `minSmoothness 𝕜 i` is by definition `i` if the field is R or C, and `ω` otherwise. ESTIMATED CHANGES Modified Mathlib/Analysis/Calculus/FDeriv/Symmetric.lean +/- theorem ContDiffAt.isSymmSndFDerivAt + theorem ContDiffAt.isSymmSndFDerivAt_of_omega +/- theorem ContDiffWithinAt.isSymmSndFDerivWithinAt + theorem ContDiffWithinAt.isSymmSndFDerivWithinAt_of_omega + theorem exist_minSmoothness_le_ne_infty + theorem le_minSmoothness + theorem minSmoothness_of_isRCLikeNormedField +/- theorem second_derivative_symmetric +/- theorem second_derivative_symmetric_of_eventually Modified Mathlib/Analysis/Calculus/VectorField.lean +/- theorem VectorField.leibniz_identity_lieBracket +/- theorem VectorField.leibniz_identity_lieBracketWithin + theorem VectorField.pullbackWithin_lieBracketWithin + theorem VectorField.pullback_lieBracket 2024-12-20 05:45:11 ea22acd feat: add bundled multiplication maps for matrices (#19229) This repeats the definitions and theorems about `LinearMap.mulLeft` and `LinearMap.mulRight` for rectangular matrices. These definitions (or rather, the continuous versions of them) are needed to state results about Fréchet derivatives of matrices. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Data/Matrix/Basis.lean +/- theorem Matrix.StdBasisMatrix.mul_left_apply_of_ne +/- theorem Matrix.StdBasisMatrix.mul_left_apply_same +/- theorem Matrix.StdBasisMatrix.mul_of_ne +/- theorem Matrix.StdBasisMatrix.mul_right_apply_of_ne +/- theorem Matrix.StdBasisMatrix.mul_right_apply_same +/- theorem Matrix.StdBasisMatrix.mul_same Added Mathlib/Data/Matrix/Bilinear.lean + theorem commute_mulLeftLinearMap_mulRightLinearMap + def mulLeftLinearMap + theorem mulLeftLinearMap_eq_mulLeft + theorem mulLeftLinearMap_eq_zero_iff + theorem mulLeftLinearMap_mul + theorem mulLeftLinearMap_one + theorem mulLeftLinearMap_zero_eq_zero + def mulLinearMap + theorem mulLinearMap_eq_mul + def mulRightLinearMap + theorem mulRightLinearMap_eq_mulRight + theorem mulRightLinearMap_eq_zero_iff + theorem mulRightLinearMap_mul + theorem mulRightLinearMap_one + theorem mulRightLinearMap_zero_eq_zero + theorem pow_mulLeftLinearMap + theorem pow_mulRightLinearMap 2024-12-20 05:04:03 a81f5e1 feat(Data/Matroid): `disjointSum` is commutative (#20074) from the [Seymour](https://github.com/Ivan-Sergeyev/seymour) project. ESTIMATED CHANGES Modified Mathlib/Data/Matroid/Sum.lean + theorem Matroid.disjointSum_comm 2024-12-20 05:04:02 990a16d feat: `Coprime (a + b) c ↔ Coprime a c` if `c ∣ b` (#20060) From LeanCamCombi ESTIMATED CHANGES Modified Mathlib/Data/Nat/GCD/Basic.lean + theorem Nat.Coprime.of_dvd + theorem Nat.Coprime.of_dvd_left + theorem Nat.Coprime.of_dvd_right + theorem Nat.add_coprime_iff_left + theorem Nat.add_coprime_iff_right + theorem Nat.coprime_add_iff_left + theorem Nat.coprime_add_iff_right 2024-12-20 05:04:01 fb92079 feat(Finset): `(s \ t).image f = s.image f \ t.image f` when `f` is injective on `s` (#20057) From LeanCamCombi ESTIMATED CHANGES Modified Mathlib/Data/Finset/Image.lean + theorem Finset.image_sdiff_of_injOn Modified Mathlib/Data/Set/Function.lean 2024-12-20 05:04:00 97ba55d chore(Analysis/InnerProductSpace): split large file (#20046) Split up `Analysis.InnerProductSpace.Basic` as follows: - `Defs`: the definition and the `InnerProductSpace.Core` stuff - `Basic`: general lemmas - `Completion`: inner products on completions and separation quotients - `LinearMap`: interaction of linear maps with inner products - `Orthonormal`: orthonormal families of vectors - `Subspace`: subspaces of inner product spaces (including orthogonal families) No code changes, other than deleting one copy of an instance which was declared twice. The file `Defs` uses `ℂ` in a notation definition, which is invisible to the tree-shake script, so it needs to have an exception in `noshake.json`. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Analysis/InnerProductSpace/Basic.lean - def ContinuousLinearMap.reApplyInnerSelf - theorem ContinuousLinearMap.reApplyInnerSelf_apply - theorem ContinuousLinearMap.reApplyInnerSelf_continuous - theorem ContinuousLinearMap.reApplyInnerSelf_smul - theorem ContinuousLinearMap.toSesqForm_apply_coe - theorem ContinuousLinearMap.toSesqForm_apply_norm_le - theorem DirectSum.IsInternal.collectedBasis_orthonormal - theorem InnerProductSpace.Core.cauchy_schwarz_aux' - theorem InnerProductSpace.Core.cauchy_schwarz_aux - theorem InnerProductSpace.Core.inner_add_add_self - theorem InnerProductSpace.Core.inner_add_left - theorem InnerProductSpace.Core.inner_add_right - theorem InnerProductSpace.Core.inner_conj_symm - theorem InnerProductSpace.Core.inner_im_symm - theorem InnerProductSpace.Core.inner_mul_inner_self_le - theorem InnerProductSpace.Core.inner_mul_symm_re_eq_norm - theorem InnerProductSpace.Core.inner_neg_left - theorem InnerProductSpace.Core.inner_neg_right - theorem InnerProductSpace.Core.inner_re_symm - theorem InnerProductSpace.Core.inner_self_eq_norm_mul_norm - theorem InnerProductSpace.Core.inner_self_eq_zero - theorem InnerProductSpace.Core.inner_self_im - theorem InnerProductSpace.Core.inner_self_ne_zero - theorem InnerProductSpace.Core.inner_self_nonneg - theorem InnerProductSpace.Core.inner_self_ofReal_re - theorem InnerProductSpace.Core.inner_self_of_eq_zero - theorem InnerProductSpace.Core.inner_smul_left - theorem InnerProductSpace.Core.inner_smul_ofReal_left - theorem InnerProductSpace.Core.inner_smul_ofReal_right - theorem InnerProductSpace.Core.inner_smul_right - theorem InnerProductSpace.Core.inner_sub_left - theorem InnerProductSpace.Core.inner_sub_right - theorem InnerProductSpace.Core.inner_sub_sub_self - theorem InnerProductSpace.Core.inner_zero_left - theorem InnerProductSpace.Core.inner_zero_right - theorem InnerProductSpace.Core.ne_zero_of_inner_self_ne_zero - def InnerProductSpace.Core.normSq - theorem InnerProductSpace.Core.normSq_eq_zero - theorem InnerProductSpace.Core.normSq_eq_zero_of_eq_zero - theorem InnerProductSpace.Core.norm_eq_sqrt_inner - theorem InnerProductSpace.Core.norm_inner_le_norm - theorem InnerProductSpace.Core.norm_inner_symm - theorem InnerProductSpace.Core.ofReal_normSq_eq_inner_self - theorem InnerProductSpace.Core.re_inner_smul_ofReal_smul_self - theorem InnerProductSpace.Core.sqrt_normSq_eq_norm - def InnerProductSpace.Core.toInner' - def InnerProductSpace.Core.toNorm - def InnerProductSpace.Core.toNormedAddCommGroup - def InnerProductSpace.Core.toNormedSpace - def InnerProductSpace.Core.toPreInner' - def InnerProductSpace.Core.toSeminormedAddCommGroup - def InnerProductSpace.Core.toSeminormedSpace - structure InnerProductSpace.Core - def InnerProductSpace.ofCore - def InnerProductSpace.toCore - theorem Inseparable.inner_eq_inner - theorem LinearEquiv.coe_isometryOfInner - theorem LinearEquiv.coe_isometryOfOrthonormal - def LinearEquiv.isometryOfInner - theorem LinearEquiv.isometryOfInner_toLinearEquiv - def LinearEquiv.isometryOfOrthonormal - theorem LinearEquiv.isometryOfOrthonormal_toLinearEquiv - theorem LinearIsometry.inner_map_map - theorem LinearIsometry.orthonormal_comp_iff - theorem LinearIsometryEquiv.inner_map_eq_flip - theorem LinearIsometryEquiv.inner_map_map - theorem LinearMap.coe_isometryOfInner - theorem LinearMap.coe_isometryOfOrthonormal - def LinearMap.isometryOfInner - theorem LinearMap.isometryOfInner_toLinearMap - def LinearMap.isometryOfOrthonormal - theorem LinearMap.isometryOfOrthonormal_toLinearMap - theorem LinearMap.norm_map_iff_inner_map_map - theorem OrthogonalFamily.comp - theorem OrthogonalFamily.eq_ite - theorem OrthogonalFamily.independent - theorem OrthogonalFamily.inner_right_dfinsupp - theorem OrthogonalFamily.inner_right_fintype - theorem OrthogonalFamily.norm_sq_diff_sum - theorem OrthogonalFamily.norm_sum - theorem OrthogonalFamily.orthonormal_sigma_orthonormal - theorem OrthogonalFamily.summable_iff_norm_sq_summable - def OrthogonalFamily - theorem Orthonormal.codRestrict - theorem Orthonormal.comp - theorem Orthonormal.comp_linearIsometry - theorem Orthonormal.comp_linearIsometryEquiv - def Orthonormal.equiv - theorem Orthonormal.equiv_apply - theorem Orthonormal.equiv_refl - theorem Orthonormal.equiv_symm - theorem Orthonormal.equiv_toLinearEquiv - theorem Orthonormal.equiv_trans - theorem Orthonormal.inner_finsupp_eq_sum_left - theorem Orthonormal.inner_finsupp_eq_sum_right - theorem Orthonormal.inner_finsupp_eq_zero - theorem Orthonormal.inner_left_finsupp - theorem Orthonormal.inner_left_fintype - theorem Orthonormal.inner_left_right_finset - theorem Orthonormal.inner_left_sum - theorem Orthonormal.inner_products_summable - theorem Orthonormal.inner_right_finsupp - theorem Orthonormal.inner_right_fintype - theorem Orthonormal.inner_right_sum - theorem Orthonormal.linearIndependent - theorem Orthonormal.mapLinearIsometryEquiv - theorem Orthonormal.map_equiv - theorem Orthonormal.ne_zero - theorem Orthonormal.orthogonalFamily - theorem Orthonormal.orthonormal_of_forall_eq_or_eq_neg - theorem Orthonormal.sum_inner_products_le - theorem Orthonormal.toSubtypeRange - theorem Orthonormal.tsum_inner_products_le - def Orthonormal - structure PreInnerProductSpace.Core - def PreInnerProductSpace.toCore - theorem SeparationQuotient.inner_mk_mk - theorem Submodule.coe_inner - theorem UniformSpace.Completion.inner_coe - def basisOfOrthonormalOfCardEqFinrank - theorem coe_basisOfOrthonormalOfCardEqFinrank - theorem exists_maximal_orthonormal - theorem ext_inner_map - theorem flip_innerₗ - def innerSL - def innerSLFlip - theorem innerSLFlip_apply - theorem innerSL_apply - theorem innerSL_apply_coe - theorem innerSL_apply_norm - theorem innerSL_real_flip - theorem inner_map_complex - theorem inner_map_polarization' - theorem inner_map_polarization - theorem inner_map_self_eq_zero - def innerₗ - theorem innerₗ_apply - def innerₛₗ - theorem innerₛₗ_apply - theorem innerₛₗ_apply_coe - theorem norm_innerSL_le - theorem orthonormal_empty - theorem orthonormal_iUnion_of_directed - theorem orthonormal_iff_ite - theorem orthonormal_sUnion_of_directed - theorem orthonormal_span - theorem orthonormal_subtype_iff_ite - theorem orthonormal_subtype_range Added Mathlib/Analysis/InnerProductSpace/Completion.lean + theorem Inseparable.inner_eq_inner + theorem SeparationQuotient.inner_mk_mk + theorem UniformSpace.Completion.inner_coe Modified Mathlib/Analysis/InnerProductSpace/ConformalLinearMap.lean Added Mathlib/Analysis/InnerProductSpace/Defs.lean + theorem InnerProductSpace.Core.cauchy_schwarz_aux' + theorem InnerProductSpace.Core.cauchy_schwarz_aux + theorem InnerProductSpace.Core.inner_add_add_self + theorem InnerProductSpace.Core.inner_add_left + theorem InnerProductSpace.Core.inner_add_right + theorem InnerProductSpace.Core.inner_conj_symm + theorem InnerProductSpace.Core.inner_im_symm + theorem InnerProductSpace.Core.inner_mul_inner_self_le + theorem InnerProductSpace.Core.inner_mul_symm_re_eq_norm + theorem InnerProductSpace.Core.inner_neg_left + theorem InnerProductSpace.Core.inner_neg_right + theorem InnerProductSpace.Core.inner_re_symm + theorem InnerProductSpace.Core.inner_self_eq_norm_mul_norm + theorem InnerProductSpace.Core.inner_self_eq_zero + theorem InnerProductSpace.Core.inner_self_im + theorem InnerProductSpace.Core.inner_self_ne_zero + theorem InnerProductSpace.Core.inner_self_nonneg + theorem InnerProductSpace.Core.inner_self_ofReal_re + theorem InnerProductSpace.Core.inner_self_of_eq_zero + theorem InnerProductSpace.Core.inner_smul_left + theorem InnerProductSpace.Core.inner_smul_ofReal_left + theorem InnerProductSpace.Core.inner_smul_ofReal_right + theorem InnerProductSpace.Core.inner_smul_right + theorem InnerProductSpace.Core.inner_sub_left + theorem InnerProductSpace.Core.inner_sub_right + theorem InnerProductSpace.Core.inner_sub_sub_self + theorem InnerProductSpace.Core.inner_zero_left + theorem InnerProductSpace.Core.inner_zero_right + theorem InnerProductSpace.Core.ne_zero_of_inner_self_ne_zero + def InnerProductSpace.Core.normSq + theorem InnerProductSpace.Core.normSq_eq_zero + theorem InnerProductSpace.Core.normSq_eq_zero_of_eq_zero + theorem InnerProductSpace.Core.norm_eq_sqrt_inner + theorem InnerProductSpace.Core.norm_inner_le_norm + theorem InnerProductSpace.Core.norm_inner_symm + theorem InnerProductSpace.Core.ofReal_normSq_eq_inner_self + theorem InnerProductSpace.Core.re_inner_smul_ofReal_smul_self + theorem InnerProductSpace.Core.sqrt_normSq_eq_norm + def InnerProductSpace.Core.toInner' + def InnerProductSpace.Core.toNorm + def InnerProductSpace.Core.toNormedAddCommGroup + def InnerProductSpace.Core.toNormedSpace + def InnerProductSpace.Core.toPreInner' + def InnerProductSpace.Core.toSeminormedAddCommGroup + def InnerProductSpace.Core.toSeminormedSpace + structure InnerProductSpace.Core + def InnerProductSpace.ofCore + def InnerProductSpace.toCore + structure PreInnerProductSpace.Core + def PreInnerProductSpace.toCore Added Mathlib/Analysis/InnerProductSpace/LinearMap.lean + def ContinuousLinearMap.reApplyInnerSelf + theorem ContinuousLinearMap.reApplyInnerSelf_apply + theorem ContinuousLinearMap.reApplyInnerSelf_continuous + theorem ContinuousLinearMap.reApplyInnerSelf_smul + theorem ContinuousLinearMap.toSesqForm_apply_coe + theorem ContinuousLinearMap.toSesqForm_apply_norm_le + theorem LinearEquiv.coe_isometryOfInner + def LinearEquiv.isometryOfInner + theorem LinearEquiv.isometryOfInner_toLinearEquiv + theorem LinearIsometry.inner_map_map + theorem LinearIsometryEquiv.inner_map_eq_flip + theorem LinearIsometryEquiv.inner_map_map + theorem LinearMap.coe_isometryOfInner + def LinearMap.isometryOfInner + theorem LinearMap.isometryOfInner_toLinearMap + theorem LinearMap.norm_map_iff_inner_map_map + theorem ext_inner_map + theorem flip_innerₗ + def innerSL + def innerSLFlip + theorem innerSLFlip_apply + theorem innerSL_apply + theorem innerSL_apply_coe + theorem innerSL_apply_norm + theorem innerSL_real_flip + theorem inner_map_complex + theorem inner_map_polarization' + theorem inner_map_polarization + theorem inner_map_self_eq_zero + def innerₗ + theorem innerₗ_apply + def innerₛₗ + theorem innerₛₗ_apply + theorem innerₛₗ_apply_coe + theorem norm_innerSL_le Modified Mathlib/Analysis/InnerProductSpace/Orthogonal.lean Added Mathlib/Analysis/InnerProductSpace/Orthonormal.lean + theorem LinearEquiv.coe_isometryOfOrthonormal + def LinearEquiv.isometryOfOrthonormal + theorem LinearEquiv.isometryOfOrthonormal_toLinearEquiv + theorem LinearIsometry.orthonormal_comp_iff + theorem LinearMap.coe_isometryOfOrthonormal + def LinearMap.isometryOfOrthonormal + theorem LinearMap.isometryOfOrthonormal_toLinearMap + theorem Orthonormal.comp + theorem Orthonormal.comp_linearIsometry + theorem Orthonormal.comp_linearIsometryEquiv + def Orthonormal.equiv + theorem Orthonormal.equiv_apply + theorem Orthonormal.equiv_refl + theorem Orthonormal.equiv_symm + theorem Orthonormal.equiv_toLinearEquiv + theorem Orthonormal.equiv_trans + theorem Orthonormal.inner_finsupp_eq_sum_left + theorem Orthonormal.inner_finsupp_eq_sum_right + theorem Orthonormal.inner_finsupp_eq_zero + theorem Orthonormal.inner_left_finsupp + theorem Orthonormal.inner_left_fintype + theorem Orthonormal.inner_left_right_finset + theorem Orthonormal.inner_left_sum + theorem Orthonormal.inner_products_summable + theorem Orthonormal.inner_right_finsupp + theorem Orthonormal.inner_right_fintype + theorem Orthonormal.inner_right_sum + theorem Orthonormal.linearIndependent + theorem Orthonormal.mapLinearIsometryEquiv + theorem Orthonormal.map_equiv + theorem Orthonormal.ne_zero + theorem Orthonormal.orthonormal_of_forall_eq_or_eq_neg + theorem Orthonormal.sum_inner_products_le + theorem Orthonormal.toSubtypeRange + theorem Orthonormal.tsum_inner_products_le + def Orthonormal + def basisOfOrthonormalOfCardEqFinrank + theorem coe_basisOfOrthonormalOfCardEqFinrank + theorem exists_maximal_orthonormal + theorem orthonormal_empty + theorem orthonormal_iUnion_of_directed + theorem orthonormal_iff_ite + theorem orthonormal_sUnion_of_directed + theorem orthonormal_subtype_iff_ite + theorem orthonormal_subtype_range Added Mathlib/Analysis/InnerProductSpace/Subspace.lean + theorem DirectSum.IsInternal.collectedBasis_orthonormal + theorem OrthogonalFamily.comp + theorem OrthogonalFamily.eq_ite + theorem OrthogonalFamily.independent + theorem OrthogonalFamily.inner_right_dfinsupp + theorem OrthogonalFamily.inner_right_fintype + theorem OrthogonalFamily.norm_sq_diff_sum + theorem OrthogonalFamily.norm_sum + theorem OrthogonalFamily.orthonormal_sigma_orthonormal + theorem OrthogonalFamily.summable_iff_norm_sq_summable + def OrthogonalFamily + theorem Orthonormal.codRestrict + theorem Orthonormal.orthogonalFamily + theorem Submodule.coe_inner + theorem orthonormal_span Modified Mathlib/Analysis/InnerProductSpace/Symmetric.lean Modified Mathlib/Geometry/Euclidean/Angle/Unoriented/Basic.lean Modified Mathlib/MeasureTheory/Function/L2Space.lean Modified scripts/noshake.json 2024-12-20 05:03:59 5999d67 chore(Multiset): make all arguments to `inter_le_left`, etc... implicit (#20045) This follows what we already do for `Set`, `Finset`, general lattices ESTIMATED CHANGES Modified Mathlib/Data/Multiset/Basic.lean +/- theorem Multiset.inter_le_left +/- theorem Multiset.inter_le_right +/- theorem Multiset.le_union_left +/- theorem Multiset.le_union_right +/- theorem Multiset.union_add_inter Modified Mathlib/Data/Multiset/FinsetOps.lean Modified Mathlib/Data/Multiset/Nodup.lean +/- theorem Multiset.Nodup.inter_left +/- theorem Multiset.Nodup.inter_right 2024-12-20 05:03:57 f4eac44 feat: `1 ≤ a ^ n ↔ 0 ≤ n` when `1 < a` (#20032) and other basic `zpow` lemmas ESTIMATED CHANGES Modified Mathlib/Algebra/Order/GroupWithZero/Unbundled.lean + theorem one_le_zpow_iff_right_of_lt_one₀ + theorem one_le_zpow_iff_right₀ + theorem one_lt_zpow_iff_right_of_lt_one₀ + theorem one_lt_zpow_iff_right₀ + theorem zpow_le_one_iff_right_of_lt_one₀ + theorem zpow_le_one_iff_right₀ + theorem zpow_lt_one_iff_right_of_lt_one₀ + theorem zpow_lt_one_iff_right₀ 2024-12-20 05:03:56 0e8009b chore: simplify YoungDiagram.coe_bot and address porting note (#20000) ESTIMATED CHANGES Modified Mathlib/Combinatorics/Young/YoungDiagram.lean +/- theorem YoungDiagram.coe_bot 2024-12-20 05:03:55 a83bee0 chore: typo in reference (#19998) ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/RootSystem/Finite/CanonicalBilinear.lean Modified Mathlib/LinearAlgebra/RootSystem/Finite/Nondegenerate.lean Modified docs/references.bib 2024-12-20 05:03:54 bee1d78 chore: rename ZMod.IsUnit_cast_of_dvd (#19997) ESTIMATED CHANGES Modified Mathlib/Data/ZMod/Units.lean - theorem ZMod.IsUnit_cast_of_dvd + theorem ZMod.isUnit_cast_of_dvd Modified Mathlib/NumberTheory/DirichletCharacter/Basic.lean 2024-12-20 05:03:53 e980848 chore: rename {to,of}_With{Upper,Lower}{Set,}_symm_eq (#19996) ESTIMATED CHANGES Modified Mathlib/Topology/Order/LowerUpperTopology.lean + theorem Topology.WithLower.ofLower_symm - theorem Topology.WithLower.of_WithLower_symm_eq + theorem Topology.WithLower.toLower_symm - theorem Topology.WithLower.to_WithLower_symm_eq + theorem Topology.WithUpper.ofUpper_symm - theorem Topology.WithUpper.of_WithUpper_symm_eq + theorem Topology.WithUpper.toUpper_symm - theorem Topology.WithUpper.to_WithUpper_symm_eq Modified Mathlib/Topology/Order/UpperLowerSetTopology.lean + theorem Topology.WithLowerSet.ofLowerSet_symm - theorem Topology.WithLowerSet.of_WithLowerSet_symm_eq + theorem Topology.WithLowerSet.toLowerSet_symm - theorem Topology.WithLowerSet.to_WithLowerSet_symm_eq + theorem Topology.WithUpperSet.ofUpperSet_symm - theorem Topology.WithUpperSet.of_WithUpperSet_symm_eq + theorem Topology.WithUpperSet.toUpperSet_symm - theorem Topology.WithUpperSet.to_WithUpperSet_symm_eq 2024-12-20 05:03:51 024a16f chore(Data/List/AList): Rename `insert_of_neg` and similar to `insert_of_not_mem` (#19960) completes a todo, also mentioned in #7987 also deprecates the old things ESTIMATED CHANGES Modified Mathlib/Data/Finmap.lean + theorem Finmap.entries_insert_of_not_mem - theorem Finmap.insert_entries_of_neg Modified Mathlib/Data/List/AList.lean + theorem AList.entries_insert + theorem AList.entries_insert_of_not_mem - theorem AList.insert_entries - theorem AList.insert_entries_of_neg - theorem AList.insert_of_neg + theorem AList.insert_of_not_mem 2024-12-20 05:03:50 d23ee27 feat(GroupTheory/Abelianization): Add `Abelianization.ker_of` (#19906) This PR adds `Abelianization.ker_of`. ESTIMATED CHANGES Modified Mathlib/GroupTheory/Abelianization.lean + theorem Abelianization.ker_of 2024-12-20 05:03:49 cfc731a feat(GroupTheory/SpecificGroups/ZGroup): a finite Z-group has cyclic abelianization (#19880) This is one step towards showing that a finite Z-group `G` is the semidirect product of the commutator subgroup `G'` and the abelianziation `G/G'` and that `G'` and `G/G'` are cyclic of coprime orders. ESTIMATED CHANGES Modified Mathlib/GroupTheory/SpecificGroups/Cyclic.lean Modified Mathlib/GroupTheory/SpecificGroups/ZGroup.lean 2024-12-20 05:03:48 899ea23 chore(Data/List/Lemmas): deprecate tail_reverse_eq_reverse_dropLast (#19874) Makes `tail_reverse_eq_reverse_dropLast` a deprecated alias to [`tail_reverse`](https://github.com/leanprover/lean4/blob/938651121f3d8819109eee75722a1de087feff71/src/Init/Data/List/Lemmas.lean#L2990-L2994), which was added to core in https://github.com/leanprover/lean4/pull/5360. This duplicated lemma was found by [`tryAtEachStep`](https://github.com/dwrensha/tryAtEachStep). ESTIMATED CHANGES Modified Mathlib/Data/List/Lemmas.lean - theorem List.tail_reverse_eq_reverse_dropLast 2024-12-20 05:03:47 7a9aa7e feat(Algebra/Group/Subgroup/Ker): Add `map_lt_map_iff_of_injective` (#19826) This PR adds `lt` versions of `map_le_map_iff_of_injective` and `map_subtype_le_map_subtype`. ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Subgroup/Ker.lean + theorem Subgroup.map_lt_map_iff_of_injective + theorem Subgroup.map_subtype_lt_map_subtype 2024-12-20 04:44:22 75a1c93 chore(Coxeter/Inversion): use `getElem?` (#20104) ESTIMATED CHANGES Modified Mathlib/GroupTheory/Coxeter/Inversion.lean 2024-12-20 04:44:21 84c51e9 docs(LinearAlgebra/Matrix/Determinant/Basic): det_of_*erTriangular (#20072) ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/Matrix/Determinant/Basic.lean 2024-12-20 04:35:21 86d6ee4 refactor(LinearAlgebra/Matrix/FixedDetMatrices): Inline `S_T_subgroup` (#20086) Per @jcommelin's comment on #15851, I think it's better to inline `S_T_subgroup` since it has a short definition (`closure {S, T}`) ends up being equal to `⊤`. ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/Matrix/FixedDetMatrices.lean - def FixedDetMatrices.S_T_subgroup - theorem FixedDetMatrices.S_mem_S_T_subgroup - theorem FixedDetMatrices.T_mem_S_T_subgroup - theorem FixedDetMatrices.det_one_mem_S_T_subgroup +/- theorem SpecialLinearGroup.SL2Z_generators 2024-12-20 04:35:20 4e34721 feat(Algebra/Homology/Embedding): the homology of an extension of homological complexes (#19198) Given an embedding `e : c.Embedding c'`, `K : HomologicalComplex C c`, and degrees such that `e.f j = j'`, we compute the homology of `K.extend e` in degree `j'` in terms of the homology of `K` in degree `j`. ESTIMATED CHANGES Modified Mathlib/Algebra/Homology/Embedding/ExtendHomology.lean + theorem HomologicalComplex.extend.d_comp_eq_zero_iff + theorem HomologicalComplex.extend.hasHomology + theorem HomologicalComplex.extend.rightHomologyData.d_comp_desc_eq_zero_iff' + theorem HomologicalComplex.extend.rightHomologyData.d_comp_desc_eq_zero_iff 2024-12-20 04:08:44 01e0745 feat: prime divisors of a prime power (#20095) If a prime $p$ divides a prime power $q^m$, then $p = q$. The proof is a shortening of the one that Ruben Van de Velde posted here: https://leanprover.zulipchat.com/#narrow/channel/217875-Is-there-code-for-X.3F/topic/.E2.9C.94.20If.20prime.20divides.20power.20of.20prime.2C.20then.20both.20primes.20equal ESTIMATED CHANGES Modified Mathlib/Data/Nat/Prime/Basic.lean + theorem Nat.prime_eq_prime_of_dvd_pow 2024-12-20 03:50:09 725fd7a chore: backport fixes for leanprover/lean4#6397 (#20097) These fixes are all of the form "a terminal simp only which was unnecessarily fragile", i.e., can be replaced by a `simp` that works both on `v4.15.0-rc1` and under leanprover/lean4#6397. ESTIMATED CHANGES Modified Mathlib/Algebra/BigOperators/Group/List.lean Modified Mathlib/Analysis/Convex/StoneSeparation.lean Modified Mathlib/Computability/TuringMachine.lean Modified Mathlib/GroupTheory/PushoutI.lean Modified Mathlib/ModelTheory/Algebra/Ring/Definability.lean Modified Mathlib/ModelTheory/Syntax.lean Modified Mathlib/Testing/Plausible/Functions.lean 2024-12-20 03:50:08 2e75934 feat(RingTheory/Invariant): Existence of Frobenius elements (#19926) This PR proves the existence of Frobenius elements in algebraic number theory. ESTIMATED CHANGES Modified Mathlib/RingTheory/Invariant.lean + theorem Algebra.IsInvariant.exists_smul_of_under_eq + theorem Ideal.Quotient.stabilizerHom_surjective + theorem IsFractionRing.stabilizerHom_surjective 2024-12-20 00:42:07 0065e8d feat(AlgebraicTopology/HomotopyCat): SSet.hoFunctor (#16783) This defines `SSet.hoFunctor`, which constructs a category from a simplicial set. Co-Authored-By: Emily Riehl , Pietro Monticone <38562595+pitmonticone@users.noreply.github.com>, and Joël Riou ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/AlgebraicTopology/SimplicialObject/Basic.lean Modified Mathlib/AlgebraicTopology/SimplicialSet/Basic.lean + theorem SSet.δ_naturality_apply + theorem SSet.σ_naturality_apply Added Mathlib/AlgebraicTopology/SimplicialSet/HomotopyCat.lean + structure SSet.OneTruncation₂.Hom + theorem SSet.OneTruncation₂.hom_ext + theorem SSet.OneTruncation₂.id_edge + def SSet.OneTruncation₂.nerveEquiv + def SSet.OneTruncation₂.nerveHomEquiv + def SSet.OneTruncation₂.ofNerve₂.natIso + def SSet.OneTruncation₂.ofNerve₂ + def SSet.OneTruncation₂ + theorem SSet.Truncated.HoRel₂.mk' + inductive SSet.Truncated.HoRel₂ + theorem SSet.Truncated.HomotopyCategory.lift_unique' + def SSet.Truncated.HomotopyCategory.quotientFunctor + def SSet.Truncated.HomotopyCategory + def SSet.Truncated.ev01₂ + def SSet.Truncated.ev02₂ + def SSet.Truncated.ev0₂ + def SSet.Truncated.ev12₂ + def SSet.Truncated.ev1₂ + def SSet.Truncated.ev2₂ + def SSet.Truncated.hoFunctor₂ + theorem SSet.Truncated.hoFunctor₂_naturality + def SSet.Truncated.mapHomotopyCategory + def SSet.Truncated.δ0₂ + def SSet.Truncated.δ1₂ + def SSet.Truncated.δ2₂ + def SSet.Truncated.ι0₂ + def SSet.Truncated.ι1₂ + def SSet.Truncated.ι2₂ + def SSet.hoFunctor + def SSet.oneTruncation₂ + theorem SSet.δ₂_one_comp_σ₂_zero + theorem SSet.δ₂_zero_comp_σ₂_zero Modified Mathlib/CategoryTheory/Category/Quiv.lean + def CategoryTheory.Quiv.equivOfIso + def CategoryTheory.Quiv.homEquivOfIso + theorem CategoryTheory.Quiv.homOfEq_map_homOfEq + theorem CategoryTheory.Quiv.hom_map_inv_map_of_iso + theorem CategoryTheory.Quiv.hom_obj_inv_obj_of_iso + theorem CategoryTheory.Quiv.inv_map_hom_map_of_iso + theorem CategoryTheory.Quiv.inv_obj_hom_obj_of_iso + def CategoryTheory.Quiv.isoOfEquiv Modified Mathlib/CategoryTheory/Category/ReflQuiv.lean - theorem CategoryTheory.ReflQuiv.forgetToQuiv.Faithful + def CategoryTheory.ReflQuiv.isoOfEquiv + def CategoryTheory.ReflQuiv.isoOfQuivIso Modified Mathlib/CategoryTheory/Quotient.lean + def CategoryTheory.Functor.homRel + theorem CategoryTheory.Functor.homRel_iff + theorem CategoryTheory.Quotient.compClosure.congruence + theorem CategoryTheory.Quotient.functor_homRel_eq_compClosure_eqvGen Modified Mathlib/Combinatorics/Quiver/Basic.lean + def Quiver.homOfEq + theorem Quiver.homOfEq_injective + theorem Quiver.homOfEq_rfl + theorem Quiver.homOfEq_trans Modified Mathlib/Combinatorics/Quiver/Prefunctor.lean + theorem Prefunctor.congr_hom + theorem Prefunctor.congr_obj + theorem Prefunctor.ext' + theorem Prefunctor.homOfEq_map Modified Mathlib/Combinatorics/Quiver/ReflQuiver.lean + theorem CategoryTheory.ReflPrefunctor.ext' + theorem CategoryTheory.ReflQuiver.homOfEq_id 2024-12-19 21:50:31 c91dd0e refactor(CategoryTheory/Sites): define Functor.sheafPullback as a left adjoint (#19516) The pullback of sheaves was previously constructed as a composition of functors involving a left Kan extension. We redefine it as an abstract left adjoint of the pushforward functor when it exists, and in the most favourable case, we provide an isomorphism with the previous construction. (This change shall be needed when we want to take pullback of étale sheaves.) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Sites/Pullback.lean +/- def CategoryTheory.Functor.sheafAdjunctionContinuous +/- def CategoryTheory.Functor.sheafPullback + def CategoryTheory.Functor.sheafPullbackConstruction.sheafAdjunctionContinuous + def CategoryTheory.Functor.sheafPullbackConstruction.sheafPullback + def CategoryTheory.Functor.sheafPullbackConstruction.sheafPullbackIso Modified Mathlib/Topology/Sheaves/Functors.lean - theorem TopCat.Sheaf.pullback_eq Modified Mathlib/Topology/Sheaves/Stalks.lean 2024-12-19 20:34:31 c9f97ab chore(Topology/Algebra/Module): split large file (#20036) Split up `Mathlib.Topology.Algebra.Module.Basic` (> 2500 lines) into several smaller files: - `Mathlib.Topology.Algebra.Module.Basic`: topological modules and submodules - `Mathlib.Topology.Algebra.Module.LinearMap`: continuous linear maps - `Mathlib.Topology.Algebra.Module.LinearMapPiProd`: pi and prod constructions - `Mathlib.Topology.Algebra.Module.Equiv`: theory of ContinuousLinearEquivs I found it hard to find natural splitting points, so two of the resulting files (LinearMap and Equiv) are still slightly over 1000 lines. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Analysis/Convex/Exposed.lean Modified Mathlib/Analysis/InnerProductSpace/LinearPMap.lean Modified Mathlib/Analysis/LocallyConvex/Bounded.lean Modified Mathlib/Analysis/Normed/Operator/ContinuousLinearMap.lean Modified Mathlib/Analysis/Normed/Operator/LinearIsometry.lean Modified Mathlib/Analysis/NormedSpace/Real.lean Modified Mathlib/LinearAlgebra/AffineSpace/ContinuousAffineEquiv.lean Modified Mathlib/MeasureTheory/Group/Measure.lean Modified Mathlib/Topology/Algebra/Algebra.lean Modified Mathlib/Topology/Algebra/ContinuousAffineMap.lean Modified Mathlib/Topology/Algebra/InfiniteSum/Module.lean Modified Mathlib/Topology/Algebra/Module/Alternating/Basic.lean Modified Mathlib/Topology/Algebra/Module/Basic.lean - def ContinuousLinearEquiv.Simps.apply - def ContinuousLinearEquiv.Simps.symm_apply - theorem ContinuousLinearEquiv.apply_symm_apply - def ContinuousLinearEquiv.arrowCongrEquiv - theorem ContinuousLinearEquiv.coe_apply - theorem ContinuousLinearEquiv.coe_coe - theorem ContinuousLinearEquiv.coe_comp_coe_symm - theorem ContinuousLinearEquiv.coe_funUnique - theorem ContinuousLinearEquiv.coe_funUnique_symm - theorem ContinuousLinearEquiv.coe_inj - theorem ContinuousLinearEquiv.coe_injective - theorem ContinuousLinearEquiv.coe_neg - theorem ContinuousLinearEquiv.coe_prod - theorem ContinuousLinearEquiv.coe_refl' - theorem ContinuousLinearEquiv.coe_refl - theorem ContinuousLinearEquiv.coe_symm_comp_coe - theorem ContinuousLinearEquiv.coe_toHomeomorph - theorem ContinuousLinearEquiv.coe_toLinearEquiv - theorem ContinuousLinearEquiv.comp_coe - theorem ContinuousLinearEquiv.comp_continuousOn_iff - theorem ContinuousLinearEquiv.comp_continuous_iff - theorem ContinuousLinearEquiv.eq_symm_apply - def ContinuousLinearEquiv.equivOfInverse' - theorem ContinuousLinearEquiv.equivOfInverse'_apply - def ContinuousLinearEquiv.equivOfInverse - theorem ContinuousLinearEquiv.equivOfInverse_apply - def ContinuousLinearEquiv.equivOfRightInverse - theorem ContinuousLinearEquiv.equivOfRightInverse_symm_apply - theorem ContinuousLinearEquiv.ext - theorem ContinuousLinearEquiv.ext₁ - def ContinuousLinearEquiv.finTwoArrow - theorem ContinuousLinearEquiv.fst_equivOfRightInverse - def ContinuousLinearEquiv.funUnique - theorem ContinuousLinearEquiv.image_closure - theorem ContinuousLinearEquiv.image_symm_image - theorem ContinuousLinearEquiv.isClosed_image - theorem ContinuousLinearEquiv.isOpenMap - theorem ContinuousLinearEquiv.isUniformEmbedding - theorem ContinuousLinearEquiv.map_add - theorem ContinuousLinearEquiv.map_eq_zero_iff - theorem ContinuousLinearEquiv.map_neg - theorem ContinuousLinearEquiv.map_nhds_eq - theorem ContinuousLinearEquiv.map_smul - theorem ContinuousLinearEquiv.map_smulₛₗ - theorem ContinuousLinearEquiv.map_sub - theorem ContinuousLinearEquiv.map_zero - def ContinuousLinearEquiv.neg - theorem ContinuousLinearEquiv.neg_apply - def ContinuousLinearEquiv.ofUnit - def ContinuousLinearEquiv.piCongrRight - theorem ContinuousLinearEquiv.piCongrRight_apply - theorem ContinuousLinearEquiv.piCongrRight_symm_apply - def ContinuousLinearEquiv.piFinTwo - theorem ContinuousLinearEquiv.preimage_closure - def ContinuousLinearEquiv.prod - def ContinuousLinearEquiv.prodComm - theorem ContinuousLinearEquiv.prodComm_symm - theorem ContinuousLinearEquiv.prod_apply - theorem ContinuousLinearEquiv.prod_symm - theorem ContinuousLinearEquiv.refl_apply - theorem ContinuousLinearEquiv.refl_symm - theorem ContinuousLinearEquiv.self_comp_symm - def ContinuousLinearEquiv.skewProd - theorem ContinuousLinearEquiv.skewProd_apply - theorem ContinuousLinearEquiv.skewProd_symm_apply - theorem ContinuousLinearEquiv.snd_equivOfRightInverse - theorem ContinuousLinearEquiv.symm_apply_apply - theorem ContinuousLinearEquiv.symm_apply_eq - theorem ContinuousLinearEquiv.symm_comp_self - theorem ContinuousLinearEquiv.symm_equivOfInverse' - theorem ContinuousLinearEquiv.symm_equivOfInverse - theorem ContinuousLinearEquiv.symm_image_image - theorem ContinuousLinearEquiv.symm_map_nhds_eq - theorem ContinuousLinearEquiv.symm_neg - theorem ContinuousLinearEquiv.symm_symm - theorem ContinuousLinearEquiv.symm_symm_apply - theorem ContinuousLinearEquiv.symm_toHomeomorph - theorem ContinuousLinearEquiv.symm_toLinearEquiv - theorem ContinuousLinearEquiv.symm_trans_apply - def ContinuousLinearEquiv.toContinuousLinearMap - def ContinuousLinearEquiv.toHomeomorph - theorem ContinuousLinearEquiv.toLinearEquiv_injective - def ContinuousLinearEquiv.toUnit - theorem ContinuousLinearEquiv.trans_apply - theorem ContinuousLinearEquiv.trans_toLinearEquiv - def ContinuousLinearEquiv.ulift - def ContinuousLinearEquiv.unitsEquiv - def ContinuousLinearEquiv.unitsEquivAut - theorem ContinuousLinearEquiv.unitsEquivAut_apply - theorem ContinuousLinearEquiv.unitsEquivAut_apply_symm - theorem ContinuousLinearEquiv.unitsEquivAut_symm_apply - theorem ContinuousLinearEquiv.unitsEquiv_apply - structure ContinuousLinearEquiv - theorem ContinuousLinearMap.IsInvertible.comp - theorem ContinuousLinearMap.IsInvertible.inverse_apply_eq - theorem ContinuousLinearMap.IsInvertible.inverse_comp_apply_of_left - theorem ContinuousLinearMap.IsInvertible.inverse_comp_apply_of_right - theorem ContinuousLinearMap.IsInvertible.inverse_comp_of_left - theorem ContinuousLinearMap.IsInvertible.inverse_comp_of_right - theorem ContinuousLinearMap.IsInvertible.of_inverse - def ContinuousLinearMap.IsInvertible - def ContinuousLinearMap.Simps.apply - def ContinuousLinearMap.Simps.coe - theorem ContinuousLinearMap.add_apply - theorem ContinuousLinearMap.add_comp - theorem ContinuousLinearMap.algebraMap_apply - theorem ContinuousLinearMap.closedComplemented_ker_of_rightInverse - def ContinuousLinearMap.codRestrict - theorem ContinuousLinearMap.coeFn_injective - def ContinuousLinearMap.coeLM - def ContinuousLinearMap.coeLMₛₗ - theorem ContinuousLinearMap.coe_add' - theorem ContinuousLinearMap.coe_add - theorem ContinuousLinearMap.coe_codRestrict - theorem ContinuousLinearMap.coe_codRestrict_apply - theorem ContinuousLinearMap.coe_coe - theorem ContinuousLinearMap.coe_comp' - theorem ContinuousLinearMap.coe_comp - theorem ContinuousLinearMap.coe_coprod - theorem ContinuousLinearMap.coe_copy - theorem ContinuousLinearMap.coe_eq_id - theorem ContinuousLinearMap.coe_fst' - theorem ContinuousLinearMap.coe_fst - theorem ContinuousLinearMap.coe_id' - theorem ContinuousLinearMap.coe_id - theorem ContinuousLinearMap.coe_inj - theorem ContinuousLinearMap.coe_injective - theorem ContinuousLinearMap.coe_inl - theorem ContinuousLinearMap.coe_inr - theorem ContinuousLinearMap.coe_mk' - theorem ContinuousLinearMap.coe_mk - theorem ContinuousLinearMap.coe_mul - theorem ContinuousLinearMap.coe_neg' - theorem ContinuousLinearMap.coe_neg - theorem ContinuousLinearMap.coe_pi' - theorem ContinuousLinearMap.coe_pi - theorem ContinuousLinearMap.coe_pow - theorem ContinuousLinearMap.coe_prod - theorem ContinuousLinearMap.coe_prodMap' - theorem ContinuousLinearMap.coe_prodMap - theorem ContinuousLinearMap.coe_projKerOfRightInverse_apply - theorem ContinuousLinearMap.coe_rangeRestrict - theorem ContinuousLinearMap.coe_restrictScalars' - theorem ContinuousLinearMap.coe_restrictScalars - theorem ContinuousLinearMap.coe_restrictScalarsₗ - theorem ContinuousLinearMap.coe_smul' - theorem ContinuousLinearMap.coe_smul - theorem ContinuousLinearMap.coe_smulRightₗ - theorem ContinuousLinearMap.coe_snd' - theorem ContinuousLinearMap.coe_snd - theorem ContinuousLinearMap.coe_sub' - theorem ContinuousLinearMap.coe_sub - theorem ContinuousLinearMap.coe_sum' - theorem ContinuousLinearMap.coe_sum - theorem ContinuousLinearMap.coe_zero' - theorem ContinuousLinearMap.coe_zero - def ContinuousLinearMap.comp - theorem ContinuousLinearMap.comp_add - theorem ContinuousLinearMap.comp_apply - theorem ContinuousLinearMap.comp_assoc - theorem ContinuousLinearMap.comp_finset_sum - theorem ContinuousLinearMap.comp_fst_add_comp_snd - theorem ContinuousLinearMap.comp_id - theorem ContinuousLinearMap.comp_neg - theorem ContinuousLinearMap.comp_smul - theorem ContinuousLinearMap.comp_smulₛₗ - theorem ContinuousLinearMap.comp_sub - theorem ContinuousLinearMap.comp_zero - def ContinuousLinearMap.coprod - theorem ContinuousLinearMap.coprod_apply - theorem ContinuousLinearMap.coprod_inl_inr - theorem ContinuousLinearMap.copy_eq - theorem ContinuousLinearMap.default_def - theorem ContinuousLinearMap.eqOn_closure_span - theorem ContinuousLinearMap.exists_ne_zero - theorem ContinuousLinearMap.ext - theorem ContinuousLinearMap.ext_on - theorem ContinuousLinearMap.ext_ring - theorem ContinuousLinearMap.finset_sum_comp - def ContinuousLinearMap.fst - theorem ContinuousLinearMap.fst_comp_prod - theorem ContinuousLinearMap.fst_prod_snd - def ContinuousLinearMap.iInfKerProjEquiv - theorem ContinuousLinearMap.iInf_ker_proj - def ContinuousLinearMap.id - theorem ContinuousLinearMap.id_apply - theorem ContinuousLinearMap.id_comp - def ContinuousLinearMap.inl - theorem ContinuousLinearMap.inl_apply - def ContinuousLinearMap.inr - theorem ContinuousLinearMap.inr_apply - theorem ContinuousLinearMap.intCast_apply - theorem ContinuousLinearMap.inverse_comp_equiv - theorem ContinuousLinearMap.inverse_eq - theorem ContinuousLinearMap.inverse_equiv - theorem ContinuousLinearMap.inverse_equiv_comp - theorem ContinuousLinearMap.inverse_id - theorem ContinuousLinearMap.inverse_of_not_isInvertible - theorem ContinuousLinearMap.inverse_zero - theorem ContinuousLinearMap.isClosed_ker - theorem ContinuousLinearMap.isComplete_ker - theorem ContinuousLinearMap.isInvertible_comp_equiv - theorem ContinuousLinearMap.isInvertible_equiv - theorem ContinuousLinearMap.isInvertible_equiv_comp - theorem ContinuousLinearMap.ker_codRestrict - theorem ContinuousLinearMap.ker_coprod_of_disjoint_range - theorem ContinuousLinearMap.ker_prod - theorem ContinuousLinearMap.ker_prod_ker_le_ker_coprod - theorem ContinuousLinearMap.map_smul_of_tower - theorem ContinuousLinearMap.mul_apply - theorem ContinuousLinearMap.mul_def - theorem ContinuousLinearMap.natCast_apply - theorem ContinuousLinearMap.neg_apply - theorem ContinuousLinearMap.neg_comp - theorem ContinuousLinearMap.ofNat_apply - theorem ContinuousLinearMap.one_apply - theorem ContinuousLinearMap.one_def - def ContinuousLinearMap.pi - theorem ContinuousLinearMap.pi_apply - theorem ContinuousLinearMap.pi_comp - theorem ContinuousLinearMap.pi_eq_zero - theorem ContinuousLinearMap.pi_zero - def ContinuousLinearMap.prodEquiv - def ContinuousLinearMap.prodMap - theorem ContinuousLinearMap.prod_apply - theorem ContinuousLinearMap.prod_ext - theorem ContinuousLinearMap.prod_ext_iff - def ContinuousLinearMap.prodₗ - def ContinuousLinearMap.proj - def ContinuousLinearMap.projKerOfRightInverse - theorem ContinuousLinearMap.projKerOfRightInverse_apply_idem - theorem ContinuousLinearMap.projKerOfRightInverse_comp_inv - theorem ContinuousLinearMap.proj_apply - theorem ContinuousLinearMap.proj_pi - theorem ContinuousLinearMap.range_coeFn_eq - theorem ContinuousLinearMap.range_coprod - theorem ContinuousLinearMap.range_prod_eq - def ContinuousLinearMap.restrictScalars - theorem ContinuousLinearMap.restrictScalars_add - theorem ContinuousLinearMap.restrictScalars_neg - theorem ContinuousLinearMap.restrictScalars_smul - theorem ContinuousLinearMap.restrictScalars_zero - def ContinuousLinearMap.restrictScalarsₗ - theorem ContinuousLinearMap.ring_inverse_eq_map_inverse - theorem ContinuousLinearMap.ring_inverse_equiv - def ContinuousLinearMap.smulRight - theorem ContinuousLinearMap.smulRight_apply - theorem ContinuousLinearMap.smulRight_comp - theorem ContinuousLinearMap.smulRight_one_eq_iff - theorem ContinuousLinearMap.smulRight_one_one - theorem ContinuousLinearMap.smulRight_one_pow - def ContinuousLinearMap.smulRightₗ - theorem ContinuousLinearMap.smul_apply - theorem ContinuousLinearMap.smul_comp - def ContinuousLinearMap.snd - theorem ContinuousLinearMap.snd_comp_prod - theorem ContinuousLinearMap.sub_apply' - theorem ContinuousLinearMap.sub_apply - theorem ContinuousLinearMap.sub_comp - theorem ContinuousLinearMap.sum_apply - def ContinuousLinearMap.toLinearMapRingHom - def ContinuousLinearMap.toSpanSingleton - theorem ContinuousLinearMap.toSpanSingleton_add - theorem ContinuousLinearMap.toSpanSingleton_apply - theorem ContinuousLinearMap.toSpanSingleton_smul' - theorem ContinuousLinearMap.toSpanSingleton_smul - theorem ContinuousLinearMap.to_ring_inverse - theorem ContinuousLinearMap.zero_apply - theorem ContinuousLinearMap.zero_comp - structure ContinuousLinearMap - theorem DenseRange.topologicalClosure_map_submodule - def MulOpposite.opContinuousLinearEquiv - def Pi.compRightL - theorem Pi.compRightL_apply - theorem Submodule.ClosedComplemented.exists_isClosed_isCompl - theorem Submodule.ClosedComplemented.exists_submodule_equiv_prod - def Submodule.ClosedComplemented - theorem Submodule.closedComplemented_bot - theorem Submodule.closedComplemented_top - theorem Submodule.coe_subtypeL' - theorem Submodule.coe_subtypeL - theorem Submodule.ker_subtypeL - theorem Submodule.range_subtypeL - def Submodule.subtypeL - theorem Submodule.subtypeL_apply - theorem Submodule.topologicalClosure_map Modified Mathlib/Topology/Algebra/Module/Determinant.lean Added Mathlib/Topology/Algebra/Module/Equiv.lean + def ContinuousLinearEquiv.Simps.apply + def ContinuousLinearEquiv.Simps.symm_apply + theorem ContinuousLinearEquiv.apply_symm_apply + def ContinuousLinearEquiv.arrowCongrEquiv + theorem ContinuousLinearEquiv.coe_apply + theorem ContinuousLinearEquiv.coe_coe + theorem ContinuousLinearEquiv.coe_comp_coe_symm + theorem ContinuousLinearEquiv.coe_funUnique + theorem ContinuousLinearEquiv.coe_funUnique_symm + theorem ContinuousLinearEquiv.coe_inj + theorem ContinuousLinearEquiv.coe_injective + theorem ContinuousLinearEquiv.coe_neg + theorem ContinuousLinearEquiv.coe_prod + theorem ContinuousLinearEquiv.coe_refl' + theorem ContinuousLinearEquiv.coe_refl + theorem ContinuousLinearEquiv.coe_symm_comp_coe + theorem ContinuousLinearEquiv.coe_toHomeomorph + theorem ContinuousLinearEquiv.coe_toLinearEquiv + theorem ContinuousLinearEquiv.comp_coe + theorem ContinuousLinearEquiv.comp_continuousOn_iff + theorem ContinuousLinearEquiv.comp_continuous_iff + theorem ContinuousLinearEquiv.eq_symm_apply + def ContinuousLinearEquiv.equivOfInverse' + theorem ContinuousLinearEquiv.equivOfInverse'_apply + def ContinuousLinearEquiv.equivOfInverse + theorem ContinuousLinearEquiv.equivOfInverse_apply + def ContinuousLinearEquiv.equivOfRightInverse + theorem ContinuousLinearEquiv.equivOfRightInverse_symm_apply + theorem ContinuousLinearEquiv.ext + theorem ContinuousLinearEquiv.ext₁ + def ContinuousLinearEquiv.finTwoArrow + theorem ContinuousLinearEquiv.fst_equivOfRightInverse + def ContinuousLinearEquiv.funUnique + theorem ContinuousLinearEquiv.image_closure + theorem ContinuousLinearEquiv.image_symm_image + theorem ContinuousLinearEquiv.isClosed_image + theorem ContinuousLinearEquiv.isOpenMap + theorem ContinuousLinearEquiv.isUniformEmbedding + theorem ContinuousLinearEquiv.map_add + theorem ContinuousLinearEquiv.map_eq_zero_iff + theorem ContinuousLinearEquiv.map_neg + theorem ContinuousLinearEquiv.map_nhds_eq + theorem ContinuousLinearEquiv.map_smul + theorem ContinuousLinearEquiv.map_smulₛₗ + theorem ContinuousLinearEquiv.map_sub + theorem ContinuousLinearEquiv.map_zero + def ContinuousLinearEquiv.neg + theorem ContinuousLinearEquiv.neg_apply + def ContinuousLinearEquiv.ofUnit + def ContinuousLinearEquiv.piCongrRight + theorem ContinuousLinearEquiv.piCongrRight_apply + theorem ContinuousLinearEquiv.piCongrRight_symm_apply + def ContinuousLinearEquiv.piFinTwo + theorem ContinuousLinearEquiv.preimage_closure + def ContinuousLinearEquiv.prod + def ContinuousLinearEquiv.prodComm + theorem ContinuousLinearEquiv.prodComm_symm + theorem ContinuousLinearEquiv.prod_apply + theorem ContinuousLinearEquiv.prod_symm + theorem ContinuousLinearEquiv.refl_apply + theorem ContinuousLinearEquiv.refl_symm + theorem ContinuousLinearEquiv.self_comp_symm + def ContinuousLinearEquiv.skewProd + theorem ContinuousLinearEquiv.skewProd_apply + theorem ContinuousLinearEquiv.skewProd_symm_apply + theorem ContinuousLinearEquiv.snd_equivOfRightInverse + theorem ContinuousLinearEquiv.symm_apply_apply + theorem ContinuousLinearEquiv.symm_apply_eq + theorem ContinuousLinearEquiv.symm_comp_self + theorem ContinuousLinearEquiv.symm_equivOfInverse' + theorem ContinuousLinearEquiv.symm_equivOfInverse + theorem ContinuousLinearEquiv.symm_image_image + theorem ContinuousLinearEquiv.symm_map_nhds_eq + theorem ContinuousLinearEquiv.symm_neg + theorem ContinuousLinearEquiv.symm_symm + theorem ContinuousLinearEquiv.symm_symm_apply + theorem ContinuousLinearEquiv.symm_toHomeomorph + theorem ContinuousLinearEquiv.symm_toLinearEquiv + theorem ContinuousLinearEquiv.symm_trans_apply + def ContinuousLinearEquiv.toContinuousLinearMap + def ContinuousLinearEquiv.toHomeomorph + theorem ContinuousLinearEquiv.toLinearEquiv_injective + def ContinuousLinearEquiv.toUnit + theorem ContinuousLinearEquiv.trans_apply + theorem ContinuousLinearEquiv.trans_toLinearEquiv + def ContinuousLinearEquiv.ulift + def ContinuousLinearEquiv.unitsEquiv + def ContinuousLinearEquiv.unitsEquivAut + theorem ContinuousLinearEquiv.unitsEquivAut_apply + theorem ContinuousLinearEquiv.unitsEquivAut_apply_symm + theorem ContinuousLinearEquiv.unitsEquivAut_symm_apply + theorem ContinuousLinearEquiv.unitsEquiv_apply + structure ContinuousLinearEquiv + theorem ContinuousLinearMap.IsInvertible.comp + theorem ContinuousLinearMap.IsInvertible.inverse_apply_eq + theorem ContinuousLinearMap.IsInvertible.inverse_comp_apply_of_left + theorem ContinuousLinearMap.IsInvertible.inverse_comp_apply_of_right + theorem ContinuousLinearMap.IsInvertible.inverse_comp_of_left + theorem ContinuousLinearMap.IsInvertible.inverse_comp_of_right + theorem ContinuousLinearMap.IsInvertible.of_inverse + def ContinuousLinearMap.IsInvertible + def ContinuousLinearMap.iInfKerProjEquiv + theorem ContinuousLinearMap.inverse_comp_equiv + theorem ContinuousLinearMap.inverse_eq + theorem ContinuousLinearMap.inverse_equiv + theorem ContinuousLinearMap.inverse_equiv_comp + theorem ContinuousLinearMap.inverse_id + theorem ContinuousLinearMap.inverse_of_not_isInvertible + theorem ContinuousLinearMap.inverse_zero + theorem ContinuousLinearMap.isInvertible_comp_equiv + theorem ContinuousLinearMap.isInvertible_equiv + theorem ContinuousLinearMap.isInvertible_equiv_comp + theorem ContinuousLinearMap.ring_inverse_eq_map_inverse + theorem ContinuousLinearMap.ring_inverse_equiv + theorem ContinuousLinearMap.to_ring_inverse + def MulOpposite.opContinuousLinearEquiv + theorem Submodule.ClosedComplemented.exists_submodule_equiv_prod Added Mathlib/Topology/Algebra/Module/LinearMap.lean + def ContinuousLinearMap.Simps.apply + def ContinuousLinearMap.Simps.coe + theorem ContinuousLinearMap.add_apply + theorem ContinuousLinearMap.add_comp + theorem ContinuousLinearMap.algebraMap_apply + theorem ContinuousLinearMap.closedComplemented_ker_of_rightInverse + def ContinuousLinearMap.codRestrict + theorem ContinuousLinearMap.coeFn_injective + def ContinuousLinearMap.coeLM + def ContinuousLinearMap.coeLMₛₗ + theorem ContinuousLinearMap.coe_add' + theorem ContinuousLinearMap.coe_add + theorem ContinuousLinearMap.coe_codRestrict + theorem ContinuousLinearMap.coe_codRestrict_apply + theorem ContinuousLinearMap.coe_coe + theorem ContinuousLinearMap.coe_comp' + theorem ContinuousLinearMap.coe_comp + theorem ContinuousLinearMap.coe_copy + theorem ContinuousLinearMap.coe_eq_id + theorem ContinuousLinearMap.coe_id' + theorem ContinuousLinearMap.coe_id + theorem ContinuousLinearMap.coe_inj + theorem ContinuousLinearMap.coe_injective + theorem ContinuousLinearMap.coe_mk' + theorem ContinuousLinearMap.coe_mk + theorem ContinuousLinearMap.coe_mul + theorem ContinuousLinearMap.coe_neg' + theorem ContinuousLinearMap.coe_neg + theorem ContinuousLinearMap.coe_pow + theorem ContinuousLinearMap.coe_projKerOfRightInverse_apply + theorem ContinuousLinearMap.coe_rangeRestrict + theorem ContinuousLinearMap.coe_restrictScalars' + theorem ContinuousLinearMap.coe_restrictScalars + theorem ContinuousLinearMap.coe_restrictScalarsₗ + theorem ContinuousLinearMap.coe_smul' + theorem ContinuousLinearMap.coe_smul + theorem ContinuousLinearMap.coe_smulRightₗ + theorem ContinuousLinearMap.coe_sub' + theorem ContinuousLinearMap.coe_sub + theorem ContinuousLinearMap.coe_sum' + theorem ContinuousLinearMap.coe_sum + theorem ContinuousLinearMap.coe_zero' + theorem ContinuousLinearMap.coe_zero + def ContinuousLinearMap.comp + theorem ContinuousLinearMap.comp_add + theorem ContinuousLinearMap.comp_apply + theorem ContinuousLinearMap.comp_assoc + theorem ContinuousLinearMap.comp_finset_sum + theorem ContinuousLinearMap.comp_id + theorem ContinuousLinearMap.comp_neg + theorem ContinuousLinearMap.comp_smul + theorem ContinuousLinearMap.comp_smulₛₗ + theorem ContinuousLinearMap.comp_sub + theorem ContinuousLinearMap.comp_zero + theorem ContinuousLinearMap.copy_eq + theorem ContinuousLinearMap.default_def + theorem ContinuousLinearMap.eqOn_closure_span + theorem ContinuousLinearMap.exists_ne_zero + theorem ContinuousLinearMap.ext + theorem ContinuousLinearMap.ext_on + theorem ContinuousLinearMap.ext_ring + theorem ContinuousLinearMap.finset_sum_comp + def ContinuousLinearMap.id + theorem ContinuousLinearMap.id_apply + theorem ContinuousLinearMap.id_comp + theorem ContinuousLinearMap.intCast_apply + theorem ContinuousLinearMap.isClosed_ker + theorem ContinuousLinearMap.isComplete_ker + theorem ContinuousLinearMap.ker_codRestrict + theorem ContinuousLinearMap.map_smul_of_tower + theorem ContinuousLinearMap.mul_apply + theorem ContinuousLinearMap.mul_def + theorem ContinuousLinearMap.natCast_apply + theorem ContinuousLinearMap.neg_apply + theorem ContinuousLinearMap.neg_comp + theorem ContinuousLinearMap.ofNat_apply + theorem ContinuousLinearMap.one_apply + theorem ContinuousLinearMap.one_def + def ContinuousLinearMap.projKerOfRightInverse + theorem ContinuousLinearMap.projKerOfRightInverse_apply_idem + theorem ContinuousLinearMap.projKerOfRightInverse_comp_inv + theorem ContinuousLinearMap.range_coeFn_eq + def ContinuousLinearMap.restrictScalars + theorem ContinuousLinearMap.restrictScalars_add + theorem ContinuousLinearMap.restrictScalars_neg + theorem ContinuousLinearMap.restrictScalars_smul + theorem ContinuousLinearMap.restrictScalars_zero + def ContinuousLinearMap.restrictScalarsₗ + def ContinuousLinearMap.smulRight + theorem ContinuousLinearMap.smulRight_apply + theorem ContinuousLinearMap.smulRight_comp + theorem ContinuousLinearMap.smulRight_one_eq_iff + theorem ContinuousLinearMap.smulRight_one_one + theorem ContinuousLinearMap.smulRight_one_pow + def ContinuousLinearMap.smulRightₗ + theorem ContinuousLinearMap.smul_apply + theorem ContinuousLinearMap.smul_comp + theorem ContinuousLinearMap.sub_apply' + theorem ContinuousLinearMap.sub_apply + theorem ContinuousLinearMap.sub_comp + theorem ContinuousLinearMap.sum_apply + def ContinuousLinearMap.toLinearMapRingHom + def ContinuousLinearMap.toSpanSingleton + theorem ContinuousLinearMap.toSpanSingleton_add + theorem ContinuousLinearMap.toSpanSingleton_apply + theorem ContinuousLinearMap.toSpanSingleton_smul' + theorem ContinuousLinearMap.toSpanSingleton_smul + theorem ContinuousLinearMap.zero_apply + theorem ContinuousLinearMap.zero_comp + structure ContinuousLinearMap + theorem DenseRange.topologicalClosure_map_submodule + theorem Submodule.ClosedComplemented.exists_isClosed_isCompl + def Submodule.ClosedComplemented + theorem Submodule.closedComplemented_bot + theorem Submodule.closedComplemented_top + theorem Submodule.coe_subtypeL' + theorem Submodule.coe_subtypeL + theorem Submodule.ker_subtypeL + theorem Submodule.range_subtypeL + def Submodule.subtypeL + theorem Submodule.subtypeL_apply + theorem Submodule.topologicalClosure_map Added Mathlib/Topology/Algebra/Module/LinearMapPiProd.lean + theorem ContinuousLinearMap.coe_coprod + theorem ContinuousLinearMap.coe_fst' + theorem ContinuousLinearMap.coe_fst + theorem ContinuousLinearMap.coe_inl + theorem ContinuousLinearMap.coe_inr + theorem ContinuousLinearMap.coe_pi' + theorem ContinuousLinearMap.coe_pi + theorem ContinuousLinearMap.coe_prod + theorem ContinuousLinearMap.coe_prodMap' + theorem ContinuousLinearMap.coe_prodMap + theorem ContinuousLinearMap.coe_snd' + theorem ContinuousLinearMap.coe_snd + theorem ContinuousLinearMap.comp_fst_add_comp_snd + def ContinuousLinearMap.coprod + theorem ContinuousLinearMap.coprod_apply + theorem ContinuousLinearMap.coprod_inl_inr + def ContinuousLinearMap.fst + theorem ContinuousLinearMap.fst_comp_prod + theorem ContinuousLinearMap.fst_prod_snd + theorem ContinuousLinearMap.iInf_ker_proj + def ContinuousLinearMap.inl + theorem ContinuousLinearMap.inl_apply + def ContinuousLinearMap.inr + theorem ContinuousLinearMap.inr_apply + theorem ContinuousLinearMap.ker_coprod_of_disjoint_range + theorem ContinuousLinearMap.ker_prod + theorem ContinuousLinearMap.ker_prod_ker_le_ker_coprod + def ContinuousLinearMap.pi + theorem ContinuousLinearMap.pi_apply + theorem ContinuousLinearMap.pi_comp + theorem ContinuousLinearMap.pi_eq_zero + theorem ContinuousLinearMap.pi_zero + def ContinuousLinearMap.prodEquiv + def ContinuousLinearMap.prodMap + theorem ContinuousLinearMap.prod_apply + theorem ContinuousLinearMap.prod_ext + theorem ContinuousLinearMap.prod_ext_iff + def ContinuousLinearMap.prodₗ + def ContinuousLinearMap.proj + theorem ContinuousLinearMap.proj_apply + theorem ContinuousLinearMap.proj_pi + theorem ContinuousLinearMap.range_coprod + theorem ContinuousLinearMap.range_prod_eq + def ContinuousLinearMap.snd + theorem ContinuousLinearMap.snd_comp_prod + def Pi.compRightL + theorem Pi.compRightL_apply Modified Mathlib/Topology/Algebra/Module/ModuleTopology.lean Modified Mathlib/Topology/Algebra/Module/Multilinear/Basic.lean Modified Mathlib/Topology/Algebra/Module/Star.lean Modified Mathlib/Topology/Algebra/Module/StrongTopology.lean Modified Mathlib/Topology/Algebra/Module/WeakDual.lean Modified Mathlib/Topology/Algebra/Nonarchimedean/Bases.lean Modified Mathlib/Topology/Algebra/SeparationQuotient/Basic.lean Modified Mathlib/Topology/Algebra/UniformFilterBasis.lean Modified Mathlib/Topology/ContinuousMap/Algebra.lean Modified Mathlib/Topology/Instances/RealVectorSpace.lean Modified Mathlib/Topology/Instances/TrivSqZeroExt.lean 2024-12-19 19:41:22 220ed18 chore(Fintype): move `nonempty_fintype` (#20053) This implication doesn't need the axiom of choice or `Fintype.card`. Currently, it depends on `Classical.choice` because `Fin.fintype` depends on it (for no good reason). ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Field/Pi.lean Modified Mathlib/Data/Finite/Defs.lean + theorem Finite.nonempty_decidableEq Modified Mathlib/Data/Finset/PiInduction.lean Modified Mathlib/Data/Fintype/Basic.lean + theorem nonempty_fintype Modified Mathlib/Data/Fintype/Card.lean - theorem nonempty_fintype Modified Mathlib/Data/Fintype/Lattice.lean 2024-12-19 17:27:28 49ac6bf feat(CategoryTheory/Shift): commutation with shifts and adjunctions (#20033) Given categories `C` and `D` that have shifts by an additive group `A`, functors `F : C ⥤ D` and `G : C ⥤ D`, an adjunction `F ⊣ G` and a `CommShift` structure on `F`, construct a `CommShift` structure on `G`. As an easy application, if `E : C ≌ D` is an equivalence and `E.functor` has a `CommShift` structure, we get a `CommShift` structure on `E.inverse`. The `CommShift` structure on `G` must be compatible with the one on `F` in the following sense (cf. `Adjunction.CommShift`): for every `a` in `A`, the natural transformation `adj.unit : 𝟭 C ⟶ G ⋙ F` commutes with the isomorphism `shiftFunctor C A ⋙ G ⋙ F ≅ G ⋙ F ⋙ shiftFunctor C A` induces by `F.commShiftIso a` and `G.commShiftIso a`. We actually require a similar condition for `adj.counit`, but it follows from the one for `adj.unit`. In order to simplify the construction of the `CommShift` structure on `G`, we first introduce the compatibility condition on `adj.unit` for a fixed `a` in `A` and for isomorphisms `e₁ : shiftFunctor C a ⋙ F ≅ F ⋙ shiftFunctor D a` and `e₂ : shiftFunctor D a ⋙ G ≅ G ⋙ shiftFunctor C a`. We then prove that: - If `e₁` and `e₂` satusfy this condition, then `e₁` uniquely determines `e₂` and vice versa. - If `a = 0`, the isomorphisms `Functor.CommShift.isoZero F` and `Functor.CommShift.isoZero G` satisfy the condition. - The condition is stable by addition on `A`, if we use `Functor.CommShift.isoAdd` to deduce commutation isomorphism for `a + b` from such isomorphism from `a` and `b`. - Given commutation isomorphisms for `F`, our candidate commutation isomorphisms for `G`, constructed in `Adjunction.RightAdjointCommShift.iso`, satisfy the compatibility condition. Once we have established all this, the compatibility of the commutation isomorphism for `F` expressed in `CommShift.zero` and `CommShift.add` immediately implies the similar statements for the commutation isomorphisms for `G`. TODO: Construct a `CommShift` structure on `F` from a `CommShift` structure on `G`, using opposite categories. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Shift/Adjunction.lean + theorem CategoryTheory.Adjunction.CommShift.compatibilityCounit_left + theorem CategoryTheory.Adjunction.CommShift.compatibilityCounit_of_compatibilityUnit + theorem CategoryTheory.Adjunction.CommShift.compatibilityCounit_unique_left + theorem CategoryTheory.Adjunction.CommShift.compatibilityUnit_isoAdd + theorem CategoryTheory.Adjunction.CommShift.compatibilityUnit_isoZero + theorem CategoryTheory.Adjunction.CommShift.compatibilityUnit_right + theorem CategoryTheory.Adjunction.CommShift.compatibilityUnit_unique_right + theorem CategoryTheory.Adjunction.CommShift.mk' + theorem CategoryTheory.Adjunction.RightAdjointCommShift.compatibilityUnit_iso + theorem CategoryTheory.Adjunction.RightAdjointCommShift.iso_hom_app + theorem CategoryTheory.Adjunction.RightAdjointCommShift.iso_inv_app + theorem CategoryTheory.Adjunction.commShift_of_leftAdjoint + theorem CategoryTheory.Adjunction.shift_counit_app + theorem CategoryTheory.Adjunction.shift_unit_app + theorem CategoryTheory.Equivalence.CommShift.mk'' + theorem CategoryTheory.Equivalence.CommShift.mk' + theorem CategoryTheory.Equivalence.commShift_of_functor + theorem CategoryTheory.Equivalence.commShift_of_inverse 2024-12-19 17:17:06 51104eb feat(NumberTheory/ArithmeticFunction): Miscellaneous lemmas about multiplicative arithmetic functions (#20025) These are three small lemmas that were helpful while developing the Selberg sieve. ESTIMATED CHANGES Modified Mathlib/NumberTheory/ArithmeticFunction.lean + theorem ArithmeticFunction.IsMultiplicative.eq_zero_of_squarefree_of_dvd_eq_zero + theorem ArithmeticFunction.IsMultiplicative.map_div_of_coprime + theorem ArithmeticFunction.IsMultiplicative.map_gcd + theorem ArithmeticFunction.IsMultiplicative.map_lcm 2024-12-19 16:52:48 6c80f3a feat(CategoryTheory/Shift): commutation with pulled back shifts (#20039) If we have shifts by an additive monoid `B` on categories `C` and `D`, if a functor `F : C ⥤ D` commutes with the shifts, and if we have a morphism of additive monoids `φ : A →+ B`, then `F` also commutes with the pullbacks of the shifts by `φ`. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Shift/CommShift.lean + theorem CategoryTheory.Functor.CommShift.isoZero'_eq_isoZero + theorem CategoryTheory.Functor.commShiftIso_zero' Modified Mathlib/CategoryTheory/Shift/Pullback.lean + theorem CategoryTheory.Functor.commShiftPullback_iso_eq + theorem CategoryTheory.pullbackShiftFunctorZero'_hom_app + theorem CategoryTheory.pullbackShiftFunctorZero'_inv_app 2024-12-19 15:22:53 7669cc5 doc/chore: document the fields in 1000.yaml (#20066) And remove the 'identifiers' field: the field was only kept for the upstream repository, and the field was removed there. ESTIMATED CHANGES Modified docs/1000.yaml 2024-12-19 14:42:43 69ec65d docs(Mathlib/LinearAlgebra/Matrix/DotProduct): remove tag reindex (#20063) ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/Matrix/DotProduct.lean 2024-12-19 13:59:50 e60d040 chore(Order/Disjoint): generalize a lemma (#20052) Genralize `disjoint_of_le_iff_left_eq_bot` from a `SemilatticeInf` to `PartialOrder` + `OrderBot`. ESTIMATED CHANGES Modified Mathlib/Data/Finset/Basic.lean Modified Mathlib/Order/Disjoint.lean 2024-12-19 13:34:02 ab4ab8f docs: s/use/used (#20065) ESTIMATED CHANGES Modified Mathlib/Data/Fin/Tuple/Reflection.lean Modified Mathlib/Data/Matrix/Reflection.lean 2024-12-19 13:05:27 f00d276 feat(Combinatorics/SimpleGraph): setup of universal vertices (#20023) Added the defintion of `universalVerts` and `deleteUniversalVerts` along with some initial results. This is in preparation for a proof of Tutte's theorem. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Combinatorics/SimpleGraph/UniversalVerts.lean + theorem SimpleGraph.Subgraph.IsMatching.exists_of_universalVerts + def SimpleGraph.deleteUniversalVerts + theorem SimpleGraph.isClique_universalVerts + def SimpleGraph.universalVerts Modified Mathlib/Data/Set/Card.lean + theorem Set.cast_ncard Modified Mathlib/SetTheory/Cardinal/Finite.lean + theorem Nat.cast_card 2024-12-19 10:56:34 32ba402 chore: update Mathlib dependencies 2024-12-19 (#20058) This PR updates the Mathlib dependencies. ESTIMATED CHANGES Modified lake-manifest.json 2024-12-19 10:47:37 8bcb2f3 fix: add `geometric-group-theory` autolabel (#20061) A recent PR added a new dir that was not covered by the auto-label automation. This PR adds awareness of this dir in autolabel: the new label is `t-geometric-group-theory`. [Zulip discussion](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Auto-label.20PR.20topics/near/489857735) ESTIMATED CHANGES Modified scripts/autolabel.lean 2024-12-19 10:47:36 d131f92 feat: generators for SL(2, Z) (#15851) We show that SL(2, Z) is generated by S and T. ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/Matrix/FixedDetMatrices.lean + def FixedDetMatrices.S_T_subgroup + theorem FixedDetMatrices.S_mem_S_T_subgroup + theorem FixedDetMatrices.T_mem_S_T_subgroup + theorem FixedDetMatrices.det_one_mem_S_T_subgroup + theorem FixedDetMatrices.reps_one_id + theorem SpecialLinearGroup.SL2Z_generators 2024-12-19 10:05:26 3c80bbf chore: unnamespace `Matrix.dotProduct` (#19910) Moves: - `Matrix.dotProduct` -> `dotProduct` - `Matrix.dotProductᵣ` -> `dotProductᵣ` - The notation `⬝ᵥ` will no longer be scoped. - Lemmas about `dotProduct` that don't talk about matrices will be unnamespaced accordingly Discussion: https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Matrix.2EdotProduct.20rename.3F ESTIMATED CHANGES Modified Mathlib/Analysis/InnerProductSpace/PiL2.lean Modified Mathlib/Data/Matrix/Mul.lean - theorem Matrix.add_dotProduct - theorem Matrix.comp_equiv_dotProduct_comp_equiv - theorem Matrix.comp_equiv_symm_dotProduct - theorem Matrix.diagonal_dotProduct - def Matrix.dotProduct - theorem Matrix.dotProduct_add - theorem Matrix.dotProduct_assoc - theorem Matrix.dotProduct_comm - theorem Matrix.dotProduct_comp_equiv_symm - theorem Matrix.dotProduct_diagonal' - theorem Matrix.dotProduct_diagonal - theorem Matrix.dotProduct_neg - theorem Matrix.dotProduct_one - theorem Matrix.dotProduct_pUnit - theorem Matrix.dotProduct_single - theorem Matrix.dotProduct_single_one - theorem Matrix.dotProduct_smul - theorem Matrix.dotProduct_sub - theorem Matrix.dotProduct_zero' - theorem Matrix.dotProduct_zero - theorem Matrix.neg_dotProduct - theorem Matrix.neg_dotProduct_neg - theorem Matrix.one_dotProduct - theorem Matrix.one_dotProduct_one - theorem Matrix.single_dotProduct - theorem Matrix.single_one_dotProduct - theorem Matrix.smul_dotProduct - theorem Matrix.sub_dotProduct - theorem Matrix.sum_elim_dotProduct_sum_elim - theorem Matrix.zero_dotProduct' - theorem Matrix.zero_dotProduct + theorem add_dotProduct + theorem comp_equiv_dotProduct_comp_equiv + theorem comp_equiv_symm_dotProduct + theorem diagonal_dotProduct + def dotProduct + theorem dotProduct_add + theorem dotProduct_assoc + theorem dotProduct_comm + theorem dotProduct_comp_equiv_symm + theorem dotProduct_diagonal' + theorem dotProduct_diagonal + theorem dotProduct_neg + theorem dotProduct_one + theorem dotProduct_pUnit + theorem dotProduct_single + theorem dotProduct_single_one + theorem dotProduct_smul + theorem dotProduct_sub + theorem dotProduct_zero' + theorem dotProduct_zero + theorem neg_dotProduct + theorem neg_dotProduct_neg + theorem one_dotProduct + theorem one_dotProduct_one + theorem single_dotProduct + theorem single_one_dotProduct + theorem smul_dotProduct + theorem sub_dotProduct + theorem sum_elim_dotProduct_sum_elim + theorem zero_dotProduct' + theorem zero_dotProduct Modified Mathlib/Data/Matrix/Reflection.lean Modified Mathlib/LinearAlgebra/AffineSpace/Matrix.lean Modified Mathlib/LinearAlgebra/CrossProduct.lean Modified Mathlib/LinearAlgebra/Matrix/BilinearForm.lean Modified Mathlib/LinearAlgebra/Matrix/DotProduct.lean - theorem Matrix.dotProduct_eq - theorem Matrix.dotProduct_eq_iff - theorem Matrix.dotProduct_eq_zero - theorem Matrix.dotProduct_eq_zero_iff - theorem Matrix.dotProduct_le_dotProduct_of_nonneg_left - theorem Matrix.dotProduct_le_dotProduct_of_nonneg_right - theorem Matrix.dotProduct_nonneg_of_nonneg - theorem Matrix.dotProduct_self_eq_zero - theorem Matrix.dotProduct_self_star_eq_zero - theorem Matrix.dotProduct_self_star_nonneg - theorem Matrix.dotProduct_star_self_eq_zero - theorem Matrix.dotProduct_star_self_nonneg - theorem Matrix.dotProduct_stdBasis_eq_mul - theorem Matrix.dotProduct_stdBasis_one + theorem dotProduct_eq + theorem dotProduct_eq_iff + theorem dotProduct_eq_zero + theorem dotProduct_eq_zero_iff + theorem dotProduct_le_dotProduct_of_nonneg_left + theorem dotProduct_le_dotProduct_of_nonneg_right + theorem dotProduct_nonneg_of_nonneg + theorem dotProduct_self_eq_zero + theorem dotProduct_self_star_eq_zero + theorem dotProduct_self_star_nonneg + theorem dotProduct_star_self_eq_zero + theorem dotProduct_star_self_nonneg + theorem dotProduct_stdBasis_eq_mul + theorem dotProduct_stdBasis_one Modified Mathlib/LinearAlgebra/Matrix/Gershgorin.lean Modified Mathlib/LinearAlgebra/Matrix/Nondegenerate.lean Modified Mathlib/LinearAlgebra/Matrix/Orthogonal.lean Modified Mathlib/LinearAlgebra/Matrix/PosDef.lean Modified Mathlib/LinearAlgebra/Matrix/SesquilinearForm.lean Modified Mathlib/LinearAlgebra/Matrix/SpecialLinearGroup.lean Modified Mathlib/LinearAlgebra/Matrix/Spectrum.lean Modified Mathlib/LinearAlgebra/Matrix/ToLin.lean Modified Mathlib/LinearAlgebra/Projectivization/Constructions.lean Modified Mathlib/Tactic/ScopedNS.lean Modified scripts/nolints_prime_decls.txt 2024-12-19 09:16:35 dac878d chore: move `transferTransversal` (#20042) The last section of `GroupTheory.Complement` is a mix of results purely about `ZMod` and results about the transfer transversal. The former can move to `Data.ZMod.Quotient`, while the latter can move to `GroupTheory.Transfer`. ESTIMATED CHANGES Modified Mathlib/Data/ZMod/Quotient.lean + theorem Subgroup.quotientEquivSigmaZMod_apply + theorem Subgroup.quotientEquivSigmaZMod_symm_apply Modified Mathlib/GroupTheory/Complement.lean - theorem Subgroup.coe_transferFunction - theorem Subgroup.mem_transferSet - theorem Subgroup.quotientEquivSigmaZMod_apply - theorem Subgroup.quotientEquivSigmaZMod_symm_apply - theorem Subgroup.transferFunction_apply - def Subgroup.transferSet - def Subgroup.transferTransversal - theorem Subgroup.transferTransversal_apply'' - theorem Subgroup.transferTransversal_apply' - theorem Subgroup.transferTransversal_apply Modified Mathlib/GroupTheory/CosetCover.lean Modified Mathlib/GroupTheory/HNNExtension.lean Modified Mathlib/GroupTheory/Index.lean + theorem Subgroup.inf_eq_bot_of_coprime Modified Mathlib/GroupTheory/OrderOfElement.lean - theorem inf_eq_bot_of_coprime Modified Mathlib/GroupTheory/Transfer.lean + theorem Subgroup.coe_transferFunction + theorem Subgroup.mem_transferSet + theorem Subgroup.transferFunction_apply + def Subgroup.transferSet + def Subgroup.transferTransversal + theorem Subgroup.transferTransversal_apply'' + theorem Subgroup.transferTransversal_apply' + theorem Subgroup.transferTransversal_apply 2024-12-19 08:51:56 054d75b fix: remove definitions from module doc that were moved to Defs.lean (#20048) ESTIMATED CHANGES Modified Mathlib/GroupTheory/GroupAction/Basic.lean 2024-12-18 19:47:40 933ad54 chore(Logic/ExistsUnique): amend usages of existsUnique to follow naming convention (#20028) As a definition `ExistsUnique`, the spelling of usages should be `existsUnique` rather than `exists_unique`. The majority of applications already conform to this (96), but there are some (30) exceptions. This PR fixes those. The large import is the import of Tactic.Alias to Logic.ExistsUnique, and is necessary if deprecations are to be performed here. ESTIMATED CHANGES Modified Mathlib/Algebra/CharP/Defs.lean + theorem CharP.existsUnique - theorem CharP.exists_unique Modified Mathlib/Algebra/Field/IsField.lean Modified Mathlib/Algebra/Order/Antidiag/Nat.lean + theorem Nat.finMulAntidiag_existsUnique_prime_dvd - theorem Nat.finMulAntidiag_exists_unique_prime_dvd Modified Mathlib/AlgebraicGeometry/PrimeSpectrum/Basic.lean Modified Mathlib/CategoryTheory/Extensive.lean Modified Mathlib/CategoryTheory/Limits/Preserves/Ulift.lean + theorem CategoryTheory.Limits.Types.existsUnique_mem_descSet - theorem CategoryTheory.Limits.Types.exists_unique_mem_descSet Modified Mathlib/CategoryTheory/Sites/CoverPreserving.lean Modified Mathlib/CategoryTheory/Sites/CoversTop.lean + theorem CategoryTheory.Presheaf.FamilyOfElementsOnObjects.IsCompatible.existsUnique_section - theorem CategoryTheory.Presheaf.FamilyOfElementsOnObjects.IsCompatible.exists_unique_section Modified Mathlib/CategoryTheory/Sites/IsSheafFor.lean Modified Mathlib/CategoryTheory/Sites/Sheaf.lean + theorem CategoryTheory.Presheaf.IsSheaf.existsUnique_amalgamation_ofArrows - theorem CategoryTheory.Presheaf.IsSheaf.exists_unique_amalgamation_ofArrows Modified Mathlib/CategoryTheory/Sites/SheafHom.lean Modified Mathlib/Data/Fintype/Card.lean + theorem Fintype.existsUnique_iff_card_one - theorem Fintype.exists_unique_iff_card_one Modified Mathlib/Data/Int/ModEq.lean + theorem Int.existsUnique_equiv + theorem Int.existsUnique_equiv_nat - theorem Int.exists_unique_equiv - theorem Int.exists_unique_equiv_nat Modified Mathlib/Data/Set/Pairwise/Lattice.lean Modified Mathlib/Data/Setoid/Partition.lean Modified Mathlib/Dynamics/Newton.lean + theorem Polynomial.existsUnique_nilpotent_sub_and_aeval_eq_zero - theorem Polynomial.exists_unique_nilpotent_sub_and_aeval_eq_zero Modified Mathlib/GroupTheory/GroupAction/Blocks.lean Modified Mathlib/LinearAlgebra/JordanChevalley.lean Modified Mathlib/LinearAlgebra/LinearPMap.lean Modified Mathlib/Logic/ExistsUnique.lean + theorem existsUnique_const + theorem existsUnique_eq' + theorem existsUnique_eq + theorem existsUnique_false + theorem existsUnique_iff_exists + theorem existsUnique_of_exists_of_unique + theorem existsUnique_prop + theorem existsUnique_prop_of_true - theorem exists_unique_const - theorem exists_unique_eq' - theorem exists_unique_eq - theorem exists_unique_false - theorem exists_unique_iff_exists - theorem exists_unique_of_exists_of_unique - theorem exists_unique_prop - theorem exists_unique_prop_of_true Modified Mathlib/Logic/Unique.lean + theorem unique_iff_existsUnique - theorem unique_iff_exists_unique + theorem unique_subtype_iff_existsUnique - theorem unique_subtype_iff_exists_unique Modified Mathlib/NumberTheory/NumberField/CanonicalEmbedding/FundamentalCone.lean + theorem NumberField.mixedEmbedding.fundamentalCone.existsUnique_preimage_of_mem_integerSet - theorem NumberField.mixedEmbedding.fundamentalCone.exists_unique_preimage_of_mem_integerSet Modified Mathlib/NumberTheory/Padics/RingHoms.lean + theorem PadicInt.existsUnique_mem_range - theorem PadicInt.exists_unique_mem_range Modified Mathlib/RingTheory/Localization/Away/Basic.lean Modified Mathlib/RingTheory/Polynomial/HilbertPoly.lean + theorem Polynomial.existsUnique_hilbertPoly - theorem Polynomial.exists_unique_hilbertPoly Modified Mathlib/RingTheory/UniqueFactorizationDomain/Basic.lean + theorem UniqueFactorizationMonoid.of_existsUnique_irreducible_factors - theorem UniqueFactorizationMonoid.of_exists_unique_irreducible_factors + theorem irreducible_iff_prime_of_existsUnique_irreducible_factors - theorem irreducible_iff_prime_of_exists_unique_irreducible_factors Modified Mathlib/RingTheory/UniqueFactorizationDomain/Defs.lean Modified Mathlib/Topology/Algebra/Module/LinearPMap.lean Modified Mathlib/Topology/Sheaves/PUnit.lean 2024-12-18 19:47:38 75f292b feat: growth of a finset in the quotient and intersection with a subgroup (#19412) From GrowthInGroups (LeanCamCombi) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Geometry/Group/Growth/QuotientInter.lean + theorem Finset.card_pow_quotient_mul_pow_inter_subgroup_le + theorem Finset.le_card_quotient_mul_sq_inter_subgroup Added Mathlib/Geometry/Group/Growth/README.md Added Mathlib/Geometry/Group/README.md 2024-12-18 18:21:54 54018a3 doc(Data/Multiset/Basic): write a proper module doc (#20044) ESTIMATED CHANGES Modified Mathlib/Data/Multiset/Basic.lean 2024-12-18 18:00:29 b0466d1 feat: boolean subalgebras (#20019) From GrowthInGroups (LeanCamCombi) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Order/BooleanSubalgebra.lean + theorem BooleanSubalgebra.apply_coe_mem_map + theorem BooleanSubalgebra.apply_mem_map_iff + theorem BooleanSubalgebra.biInf_mem + theorem BooleanSubalgebra.biSup_mem + theorem BooleanSubalgebra.bot_mem + def BooleanSubalgebra.closure + theorem BooleanSubalgebra.closure_bot_sup_induction + theorem BooleanSubalgebra.closure_le + theorem BooleanSubalgebra.closure_mono + theorem BooleanSubalgebra.coe_bot + theorem BooleanSubalgebra.coe_comap + theorem BooleanSubalgebra.coe_copy + theorem BooleanSubalgebra.coe_eq_univ + theorem BooleanSubalgebra.coe_iInf + theorem BooleanSubalgebra.coe_inclusion + theorem BooleanSubalgebra.coe_inf + theorem BooleanSubalgebra.coe_inj + theorem BooleanSubalgebra.coe_map + theorem BooleanSubalgebra.coe_mk + theorem BooleanSubalgebra.coe_sInf + theorem BooleanSubalgebra.coe_subtype + theorem BooleanSubalgebra.coe_top + def BooleanSubalgebra.comap + theorem BooleanSubalgebra.comap_comap + theorem BooleanSubalgebra.comap_equiv_eq_map_symm + theorem BooleanSubalgebra.comap_iInf + theorem BooleanSubalgebra.comap_id + theorem BooleanSubalgebra.comap_inf + theorem BooleanSubalgebra.comap_mono + theorem BooleanSubalgebra.comap_top + theorem BooleanSubalgebra.compl_mem + theorem BooleanSubalgebra.compl_mem_iff + theorem BooleanSubalgebra.compl_mk + theorem BooleanSubalgebra.copy_eq + theorem BooleanSubalgebra.ext + theorem BooleanSubalgebra.gc_map_comap + theorem BooleanSubalgebra.himp_mem + theorem BooleanSubalgebra.iInf_mem + theorem BooleanSubalgebra.iSup_mem + def BooleanSubalgebra.inclusion + theorem BooleanSubalgebra.inclusion_apply + theorem BooleanSubalgebra.inclusion_injective + theorem BooleanSubalgebra.inclusion_rfl + theorem BooleanSubalgebra.infClosed + theorem BooleanSubalgebra.inf_mem + theorem BooleanSubalgebra.le_comap_iSup + theorem BooleanSubalgebra.le_comap_sup + def BooleanSubalgebra.map + theorem BooleanSubalgebra.map_bot + theorem BooleanSubalgebra.map_equiv_eq_comap_symm + theorem BooleanSubalgebra.map_iSup + theorem BooleanSubalgebra.map_id + theorem BooleanSubalgebra.map_inf + theorem BooleanSubalgebra.map_inf_le + theorem BooleanSubalgebra.map_le_iff_le_comap + theorem BooleanSubalgebra.map_map + theorem BooleanSubalgebra.map_mono + theorem BooleanSubalgebra.map_sup + theorem BooleanSubalgebra.map_symm_eq_iff_eq_map + theorem BooleanSubalgebra.map_top + theorem BooleanSubalgebra.mem_bot + theorem BooleanSubalgebra.mem_carrier + theorem BooleanSubalgebra.mem_closure + theorem BooleanSubalgebra.mem_comap + theorem BooleanSubalgebra.mem_iInf + theorem BooleanSubalgebra.mem_inf + theorem BooleanSubalgebra.mem_map + theorem BooleanSubalgebra.mem_map_equiv + theorem BooleanSubalgebra.mem_map_of_mem + theorem BooleanSubalgebra.mem_mk + theorem BooleanSubalgebra.mem_sInf + theorem BooleanSubalgebra.mem_toSublattice + theorem BooleanSubalgebra.mem_top + theorem BooleanSubalgebra.mk_bot + theorem BooleanSubalgebra.mk_himp_mk + theorem BooleanSubalgebra.mk_inf_mk + theorem BooleanSubalgebra.mk_le_mk + theorem BooleanSubalgebra.mk_lt_mk{L + theorem BooleanSubalgebra.mk_sdiff_mk + theorem BooleanSubalgebra.mk_sup_mk + theorem BooleanSubalgebra.mk_top + theorem BooleanSubalgebra.sInf_mem + theorem BooleanSubalgebra.sSup_mem + theorem BooleanSubalgebra.sdiff_mem + theorem BooleanSubalgebra.subset_closure + def BooleanSubalgebra.subtype + theorem BooleanSubalgebra.subtype_apply + theorem BooleanSubalgebra.subtype_comp_inclusion + theorem BooleanSubalgebra.subtype_injective + theorem BooleanSubalgebra.supClosed + theorem BooleanSubalgebra.sup_mem + def BooleanSubalgebra.topEquiv + theorem BooleanSubalgebra.top_mem + theorem BooleanSubalgebra.val_bot + theorem BooleanSubalgebra.val_compl + theorem BooleanSubalgebra.val_himp + theorem BooleanSubalgebra.val_inf + theorem BooleanSubalgebra.val_sdiff + theorem BooleanSubalgebra.val_sup + theorem BooleanSubalgebra.val_top + structure BooleanSubalgebra Modified Mathlib/Order/Sublattice.lean + theorem Sublattice.inf_mem + theorem Sublattice.sup_mem 2024-12-18 17:43:34 ad5af7d feat(Complex): `reProdIm` lemmas (#19709) From FLT ESTIMATED CHANGES Modified Mathlib/Analysis/Complex/Basic.lean + theorem IsCompact.reProdIm Modified Mathlib/Analysis/Complex/ReImTopology.lean Modified Mathlib/Data/Complex/Basic.lean - def Complex.Set.reProdIm + def Complex.reProdIm + theorem Complex.reProdIm_eq_empty + theorem Complex.reProdIm_nonempty + theorem Complex.«exists» + theorem Complex.«forall» 2024-12-18 17:34:56 5138bb2 refactor(Combinatorics/Additive): strengthen the classification of sets with no doubling (#20043) It turns out that the current statement is too weak for me to classify finite 1-approximate subgroups. From GrowthInGroups (LeanCamCombi) ESTIMATED CHANGES Modified Mathlib/Combinatorics/Additive/VerySmallDoubling.lean - theorem Finset.exists_subgroup_of_no_doubling + theorem Finset.op_smul_stabilizer_of_no_doubling + theorem Finset.smul_stabilizer_of_no_doubling 2024-12-18 16:44:13 8bd57d6 feat(CategoryTheory/Shift/Opposite): commutation with shifts on the opposite functor (#20038) Given a `CommShift` structure on a functor `F` between categories endowed with shifts, construct the corresponding `CommShift` structure on `F.op` for the naive shifts on the opposite categories. (And vice versa.) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Shift/Opposite.lean 2024-12-18 16:02:29 78c7971 feat(Data/Set/Lattice): `image2` lemmas (#20020) Also add spaces after `⋃₀` for uniformity with `⋂₀`. From GrowthInGroups (LeanCamCombi) ESTIMATED CHANGES Modified Mathlib/Data/Set/Lattice.lean +/- theorem Set.Nonempty.of_sUnion +/- theorem Set.Nonempty.of_sUnion_eq_univ + theorem Set.biInter_image2 + theorem Set.biUnion_image2 +/- theorem Set.compl_sInter +/- theorem Set.compl_sUnion + theorem Set.iInter_union_iInter + theorem Set.iInter₂_union_iInter₂ + theorem Set.iUnion_inter_iUnion + theorem Set.iUnion₂_inter_iUnion₂ +/- theorem Set.nonempty_sUnion +/- theorem Set.not_mem_of_not_mem_sUnion +/- theorem Set.preimage_sUnion +/- theorem Set.prod_sUnion +/- theorem Set.sInter_eq_compl_sUnion_compl + theorem Set.sInter_image2 +/- theorem Set.sInter_image +/- theorem Set.sUnion_diff_singleton_empty +/- theorem Set.sUnion_empty +/- theorem Set.sUnion_eq_biUnion +/- theorem Set.sUnion_eq_compl_sInter_compl +/- theorem Set.sUnion_eq_empty +/- theorem Set.sUnion_eq_iUnion +/- theorem Set.sUnion_eq_univ_iff +/- theorem Set.sUnion_iUnion + theorem Set.sUnion_image2 +/- theorem Set.sUnion_image +/- theorem Set.sUnion_insert +/- theorem Set.sUnion_pair +/- theorem Set.sUnion_range +/- theorem Set.sUnion_singleton +/- theorem Set.sUnion_subset +/- theorem Set.sUnion_subset_iff +/- theorem Set.sUnion_subset_sUnion +/- theorem Set.sUnion_union +/- theorem Set.subset_sUnion_of_mem 2024-12-18 16:02:26 e282c78 feat(ENNReal): `a * b * b⁻¹ = a` (#19870) From FLT ESTIMATED CHANGES Modified Archive/Wiedijk100Theorems/BallotProblem.lean Modified Mathlib/Analysis/Oscillation.lean Modified Mathlib/Data/ENNReal/Inv.lean Modified Mathlib/MeasureTheory/Covering/Besicovitch.lean Modified Mathlib/MeasureTheory/Function/UniformIntegrable.lean Modified Mathlib/MeasureTheory/Group/Prod.lean Modified Mathlib/MeasureTheory/Integral/Average.lean Modified Mathlib/MeasureTheory/Integral/VitaliCaratheodory.lean Modified scripts/nolints_prime_decls.txt 2024-12-18 15:53:51 211dc53 feat (Lattice/Covolume): Add results linking point counting in lattices and covolume (#12488) ESTIMATED CHANGES Modified Mathlib/Algebra/Module/ZLattice/Basic.lean + theorem Basis.ofZLatticeBasis_comap Modified Mathlib/Algebra/Module/ZLattice/Covolume.lean + theorem ZLattice.covolume.tendsto_card_div_pow'' + theorem ZLattice.covolume.tendsto_card_div_pow' + theorem ZLattice.covolume.tendsto_card_div_pow + theorem ZLattice.covolume.tendsto_card_le_div'' + theorem ZLattice.covolume.tendsto_card_le_div' + theorem ZLattice.covolume.tendsto_card_le_div + theorem ZLattice.covolume_eq_det_inv + theorem ZLattice.volume_image_eq_volume_div_covolume' + theorem ZLattice.volume_image_eq_volume_div_covolume Modified Mathlib/LinearAlgebra/Determinant.lean + theorem Basis.det_basis + theorem Basis.det_inv + theorem Pi.basisFun_det_apply 2024-12-18 13:24:51 cbe8d43 feat: add some iteratedDeriv variants of iteratedDerivWithin lemmas (#19849) Based on work from EulerMaclaurin. ESTIMATED CHANGES Modified Mathlib/Analysis/Calculus/IteratedDeriv/Lemmas.lean - theorem iteratedDerivWithin_const_neg + theorem iteratedDerivWithin_const_sub + theorem iteratedDeriv_add + theorem iteratedDeriv_const_add + theorem iteratedDeriv_const_sub + theorem iteratedDeriv_sub 2024-12-18 13:02:53 79dae4b chore(Analysis): rename `closedUnitBall` and `closed_unit_ball` to `unitClosedBall` (#9755) Since `closedBall` is a function name, it should appear as an unbroken token in the lemma name [Zulip poll](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/unit_closedBall.20or.20unitClosedBall/near/412926794) ESTIMATED CHANGES Modified Mathlib/Analysis/BoxIntegral/Basic.lean Modified Mathlib/Analysis/CStarAlgebra/Multiplier.lean Modified Mathlib/Analysis/CStarAlgebra/Unitization.lean Modified Mathlib/Analysis/Convex/StrictConvexSpace.lean - theorem StrictConvexSpace.of_strictConvex_closed_unit_ball + theorem StrictConvexSpace.of_strictConvex_unitClosedBall Modified Mathlib/Analysis/Normed/Field/Basic.lean - theorem NormedDivisionRing.discreteTopology_unit_closedBall_eq_univ + theorem NormedDivisionRing.unitClosedBall_eq_univ_of_discrete Modified Mathlib/Analysis/Normed/Field/Lemmas.lean Modified Mathlib/Analysis/NormedSpace/OperatorNorm/NNNorm.lean - theorem ContinuousLinearMap.sSup_closed_unit_ball_eq_nnnorm - theorem ContinuousLinearMap.sSup_closed_unit_ball_eq_norm + theorem ContinuousLinearMap.sSup_unitClosedBall_eq_nnnorm + theorem ContinuousLinearMap.sSup_unitClosedBall_eq_norm Modified Mathlib/Analysis/NormedSpace/Pointwise.lean - theorem smul_closedUnitBall - theorem smul_closedUnitBall_of_nonneg + theorem smul_unitClosedBall + theorem smul_unitClosedBall_of_nonneg Modified Mathlib/Analysis/NormedSpace/Real.lean - theorem inv_norm_smul_mem_closed_unit_ball + theorem inv_norm_smul_mem_unitClosedBall Modified Mathlib/MeasureTheory/Measure/Lebesgue/EqHaar.lean - theorem MeasureTheory.Measure.addHaar_closed_unit_ball_eq_addHaar_unit_ball + theorem MeasureTheory.Measure.addHaar_unitClosedBall_eq_addHaar_unitBall 2024-12-18 11:06:48 b7666b8 chore(Mathlib/Tactic/CC/Addition): split a file (#19989) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Tactic.lean Modified Mathlib/Tactic/CC/Addition.lean - def Mathlib.Tactic.CC.CCM.flipDelayedProofCore - def Mathlib.Tactic.CC.CCM.flipProof - def Mathlib.Tactic.CC.CCM.flipProofCore - def Mathlib.Tactic.CC.CCM.getCache - def Mathlib.Tactic.CC.CCM.getEntry - def Mathlib.Tactic.CC.CCM.getEqFalseProof - def Mathlib.Tactic.CC.CCM.getEqTrueProof - def Mathlib.Tactic.CC.CCM.getInconsistencyProof - def Mathlib.Tactic.CC.CCM.getPropEqProof - def Mathlib.Tactic.CC.CCM.getRoot - def Mathlib.Tactic.CC.CCM.hasHEqProofs - def Mathlib.Tactic.CC.CCM.isCgRoot - def Mathlib.Tactic.CC.CCM.isEqFalse - def Mathlib.Tactic.CC.CCM.isEqTrue - def Mathlib.Tactic.CC.CCM.isEqv - def Mathlib.Tactic.CC.CCM.isNotEqv - def Mathlib.Tactic.CC.CCM.mkACProof - def Mathlib.Tactic.CC.CCM.mkACSimpProof - def Mathlib.Tactic.CC.CCM.mkCCCongrTheorem - def Mathlib.Tactic.CC.CCM.mkCCHCongrTheorem - def Mathlib.Tactic.CC.CCM.mkNeOfEqOfNe - def Mathlib.Tactic.CC.CCM.mkNeOfNeOfEq - def Mathlib.Tactic.CC.CCM.mkTrans - def Mathlib.Tactic.CC.CCM.mkTransOpt - def Mathlib.Tactic.CC.CCM.modifyCache - def Mathlib.Tactic.CC.CCM.normalize - def Mathlib.Tactic.CC.CCM.run - def Mathlib.Tactic.CC.CCM.setFO - def Mathlib.Tactic.CC.CCM.simplifyAC - def Mathlib.Tactic.CC.CCM.simplifyACCore - def Mathlib.Tactic.CC.CCM.simplifyACStep Modified Mathlib/Tactic/CC/Datatypes.lean Added Mathlib/Tactic/CC/MkProof.lean + def Mathlib.Tactic.CC.CCM.flipDelayedProofCore + def Mathlib.Tactic.CC.CCM.flipProof + def Mathlib.Tactic.CC.CCM.flipProofCore + def Mathlib.Tactic.CC.CCM.getCache + def Mathlib.Tactic.CC.CCM.getEntry + def Mathlib.Tactic.CC.CCM.getEqFalseProof + def Mathlib.Tactic.CC.CCM.getEqTrueProof + def Mathlib.Tactic.CC.CCM.getInconsistencyProof + def Mathlib.Tactic.CC.CCM.getPropEqProof + def Mathlib.Tactic.CC.CCM.getRoot + def Mathlib.Tactic.CC.CCM.hasHEqProofs + def Mathlib.Tactic.CC.CCM.isCgRoot + def Mathlib.Tactic.CC.CCM.isEqFalse + def Mathlib.Tactic.CC.CCM.isEqTrue + def Mathlib.Tactic.CC.CCM.isEqv + def Mathlib.Tactic.CC.CCM.isNotEqv + def Mathlib.Tactic.CC.CCM.mkACProof + def Mathlib.Tactic.CC.CCM.mkACSimpProof + def Mathlib.Tactic.CC.CCM.mkCCCongrTheorem + def Mathlib.Tactic.CC.CCM.mkCCHCongrTheorem + def Mathlib.Tactic.CC.CCM.mkNeOfEqOfNe + def Mathlib.Tactic.CC.CCM.mkNeOfNeOfEq + def Mathlib.Tactic.CC.CCM.mkTrans + def Mathlib.Tactic.CC.CCM.mkTransOpt + def Mathlib.Tactic.CC.CCM.modifyCache + def Mathlib.Tactic.CC.CCM.normalize + def Mathlib.Tactic.CC.CCM.run + def Mathlib.Tactic.CC.CCM.setFO + def Mathlib.Tactic.CC.CCM.simplifyAC + def Mathlib.Tactic.CC.CCM.simplifyACCore + def Mathlib.Tactic.CC.CCM.simplifyACStep Modified scripts/noshake.json 2024-12-18 10:57:39 2375546 chore(Topology/Separation): split large file (#20031) This splits up the behemoth `Mathlib.Topology.Separation.Basic` (2700 lines) into 5 smaller files: - `Mathlib.Topology.Separation.SeparatedNhds`: auxiliary definitions of `SeparatedNhds` and `HasSeparatingCover` - `Mathlib.Topology.Separation.Basic`: T0, R0, T1 and R1 spaces - `Mathlib.Topology.Separation.Hausdorff`: T2 and T2.5 spaces - `Mathlib.Topology.Separation.Regular`: regular, normal, completely normal, T3-T5 - `Mathlib.Topology.Separation.Profinite`: totally disconnected compact Hausdorff spaces are totally separated. It also moves `Mathlib.Topology.CompletelyRegular` and `Mathlib.Topology.CountableSeparatingOn` into the `Separation` directory. The only changes outside the files listed above are updating `import` lines. The only change to actual code is in `Mathlib.Topology.Separation.Profinite`, where I realised that we had two theorems asserting exactly the same thing, one under strictly more general typeclass hypotheses than the other (locally compact rather than compact spaces). So I made the less general theorem into a deprecated alias for the more general one. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Analysis/Convex/Radon.lean Modified Mathlib/Dynamics/FixedPoints/Topology.lean Modified Mathlib/MeasureTheory/Constructions/Polish/Basic.lean Modified Mathlib/MeasureTheory/Measure/DiracProba.lean Modified Mathlib/Topology/Algebra/InfiniteSum/Defs.lean Modified Mathlib/Topology/Algebra/Semigroup.lean Modified Mathlib/Topology/Algebra/Support.lean Modified Mathlib/Topology/Category/Profinite/Basic.lean Modified Mathlib/Topology/Category/Profinite/Nobeling.lean Modified Mathlib/Topology/ClopenBox.lean Modified Mathlib/Topology/Connected/Separation.lean Modified Mathlib/Topology/DenseEmbedding.lean Modified Mathlib/Topology/ExtendFrom.lean Modified Mathlib/Topology/JacobsonSpace.lean Modified Mathlib/Topology/Order/OrderClosed.lean Modified Mathlib/Topology/Order/Priestley.lean Modified Mathlib/Topology/Order/T5.lean Modified Mathlib/Topology/Perfect.lean Modified Mathlib/Topology/SeparatedMap.lean Modified Mathlib/Topology/Separation/Basic.lean - theorem CompactExhaustion.isClosed - theorem Continuous.ext_on - theorem Continuous.isClosedEmbedding - theorem Continuous.limUnder_eq - theorem Filter.HasBasis.nhds_closure - theorem Filter.Tendsto.limUnder_eq - theorem Filter.limUnder_eq_iff - theorem Function.LeftInverse.isClosedEmbedding - theorem Function.LeftInverse.isClosed_range - theorem HasSeparatingCover.mono - def HasSeparatingCover - theorem IsClosed.HasSeparatingCover - theorem IsCompact.disjoint_nhdsSet_nhds - theorem IsCompact.exists_isOpen_closure_subset - theorem IsCompact.inter - theorem IsCompact.isClosed - theorem IsCompact.lift'_closure_nhdsSet - theorem IsCompact.nhdsSet_inter_eq - theorem IsCompact.preimage_continuous - theorem IsCompact.separation_of_not_mem - theorem IsQuotientMap.of_surjective_continuous - theorem Pi.isCompact_closure_iff - theorem Pi.isCompact_iff - theorem R1Space.t2Space_iff_t0Space - theorem RegularSpace.inf - theorem RegularSpace.of_exists_mem_nhds_isClosed_subset - theorem RegularSpace.of_hasBasis - theorem RegularSpace.of_lift'_closure - theorem RegularSpace.of_lift'_closure_le - theorem RegularSpace.t3Space_iff_t0Space - theorem SeparatedNhds.comm - theorem SeparatedNhds.disjoint_closure_left - theorem SeparatedNhds.disjoint_closure_right - theorem SeparatedNhds.empty_left - theorem SeparatedNhds.empty_right - theorem SeparatedNhds.mono - theorem SeparatedNhds.of_finset_finset - theorem SeparatedNhds.of_isClosed_isCompact_closure_compl_isClosed - theorem SeparatedNhds.of_isCompact_isClosed - theorem SeparatedNhds.of_isCompact_isCompact - theorem SeparatedNhds.of_singleton_finset - theorem SeparatedNhds.preimage - theorem SeparatedNhds.symm - theorem SeparatedNhds.union_left - theorem SeparatedNhds.union_right - def SeparatedNhds - theorem SeparationQuotient.t2Space_iff - theorem Set.EqOn.of_subset_closure - theorem Set.Finite.t2_separation - theorem Set.InjOn.exists_isOpen_superset - theorem Set.InjOn.exists_mem_nhdsSet - theorem Set.hasSeparatingCover_empty_left - theorem Set.hasSeparatingCover_empty_right - theorem T25Space.of_injective_continuous - theorem T2Space.of_injective_continuous - theorem TopologicalSpace.IsTopologicalBasis.exists_closure_subset - theorem TopologicalSpace.IsTopologicalBasis.nhds_basis_closure - theorem Topology.IsEmbedding.completelyNormalSpace - theorem Topology.IsEmbedding.t25Space - theorem Topology.IsEmbedding.t2Space - theorem Topology.IsEmbedding.t5Space - theorem Ultrafilter.lim_eq_iff_le_nhds - theorem closed_nhds_basis - theorem compact_exists_isClopen_in_isOpen - theorem compact_t2_tot_disc_iff_tot_sep - theorem connectedComponent_eq_iInter_isClopen - theorem disjoint_lift'_closure_nhds - theorem disjoint_nested_nhds - theorem disjoint_nhdsSet_nhds - theorem disjoint_nhdsSet_nhdsSet - theorem disjoint_nhds_nhds - theorem disjoint_nhds_nhdsSet - theorem eqOn_closure₂' - theorem eqOn_closure₂ - theorem eq_of_nhds_neBot - theorem exists_compact_closed_between - theorem exists_mem_nhds_isClosed_subset - theorem exists_nhds_disjoint_closure - theorem exists_open_between_and_isCompact_closure - theorem exists_open_nhds_disjoint_closure - theorem exists_subset_nhds_of_isCompact - theorem hasBasis_nhds_closure - theorem hasBasis_opens_closure - theorem hasSeparatingCovers_iff_separatedNhds - theorem image_closure_of_isCompact - theorem isClosed_diagonal - theorem isClosed_eq - theorem isIrreducible_iff_singleton - theorem isOpen_iff_ultrafilter' - theorem isOpen_ne_fun - theorem isPreirreducible_iff_subsingleton - theorem isTopologicalBasis_isClopen - theorem lift'_nhds_closure - theorem limUnder_nhdsWithin_id - theorem limUnder_nhds_id - theorem lim_eq - theorem lim_eq_iff - theorem lim_nhds - theorem lim_nhdsWithin - theorem loc_compact_Haus_tot_disc_of_zero_dim - theorem loc_compact_t2_tot_disc_iff_tot_sep - theorem nhds_basis_clopen - theorem normal_exists_closure_subset - theorem normal_separation - theorem not_preirreducible_nontrivial_t2 - theorem pairwise_disjoint_nhds - theorem regularSpace_TFAE - theorem regularSpace_iInf - theorem regularSpace_induced - theorem regularSpace_sInf - theorem separatedNhds_iff_disjoint - theorem separated_by_continuous - theorem separated_by_isOpenEmbedding - theorem t2Quotient.compatible - theorem t2Quotient.continuous_lift - theorem t2Quotient.continuous_mk - def t2Quotient.lift - theorem t2Quotient.lift_mk - def t2Quotient.mk - theorem t2Quotient.mk_eq - theorem t2Quotient.surjective_mk - theorem t2Quotient.unique_lift - def t2Quotient - def t2Setoid - theorem t2Space_antitone - theorem t2Space_iff_disjoint_nhds - theorem t2Space_iff_nhds - theorem t2_iff_isClosed_diagonal - theorem t2_iff_nhds - theorem t2_iff_ultrafilter - theorem t2_separation - theorem t2_separation_compact_nhds - theorem t2_separation_nhds - theorem tendsto_nhds_unique' - theorem tendsto_nhds_unique - theorem tendsto_nhds_unique_of_eventuallyEq - theorem tendsto_nhds_unique_of_frequently_eq - theorem totallySeparatedSpace_of_t1_of_basis_clopen Renamed Mathlib/Topology/CompletelyRegular.lean to Mathlib/Topology/Separation/CompletelyRegular.lean Renamed Mathlib/Topology/CountableSeparatingOn.lean to Mathlib/Topology/Separation/CountableSeparatingOn.lean Modified Mathlib/Topology/Separation/GDelta.lean Added Mathlib/Topology/Separation/Hausdorff.lean + theorem CompactExhaustion.isClosed + theorem Continuous.ext_on + theorem Continuous.isClosedEmbedding + theorem Continuous.limUnder_eq + theorem Filter.Tendsto.limUnder_eq + theorem Filter.limUnder_eq_iff + theorem Function.LeftInverse.isClosedEmbedding + theorem Function.LeftInverse.isClosed_range + theorem IsCompact.disjoint_nhdsSet_nhds + theorem IsCompact.inter + theorem IsCompact.isClosed + theorem IsCompact.nhdsSet_inter_eq + theorem IsCompact.preimage_continuous + theorem IsCompact.separation_of_not_mem + theorem IsQuotientMap.of_surjective_continuous + theorem Pi.isCompact_closure_iff + theorem Pi.isCompact_iff + theorem R1Space.t2Space_iff_t0Space + theorem SeparatedNhds.of_finset_finset + theorem SeparatedNhds.of_isClosed_isCompact_closure_compl_isClosed + theorem SeparatedNhds.of_isCompact_isCompact + theorem SeparatedNhds.of_singleton_finset + theorem SeparationQuotient.t2Space_iff + theorem Set.EqOn.of_subset_closure + theorem Set.Finite.t2_separation + theorem Set.InjOn.exists_isOpen_superset + theorem Set.InjOn.exists_mem_nhdsSet + theorem T2Space.of_injective_continuous + theorem Topology.IsEmbedding.t2Space + theorem Ultrafilter.lim_eq_iff_le_nhds + theorem disjoint_nhds_nhds + theorem eqOn_closure₂' + theorem eqOn_closure₂ + theorem eq_of_nhds_neBot + theorem exists_subset_nhds_of_isCompact + theorem image_closure_of_isCompact + theorem isClosed_diagonal + theorem isClosed_eq + theorem isIrreducible_iff_singleton + theorem isOpen_iff_ultrafilter' + theorem isOpen_ne_fun + theorem isPreirreducible_iff_subsingleton + theorem limUnder_nhdsWithin_id + theorem limUnder_nhds_id + theorem lim_eq + theorem lim_eq_iff + theorem lim_nhds + theorem lim_nhdsWithin + theorem not_preirreducible_nontrivial_t2 + theorem pairwise_disjoint_nhds + theorem separated_by_continuous + theorem separated_by_isOpenEmbedding + theorem t2Quotient.compatible + theorem t2Quotient.continuous_lift + theorem t2Quotient.continuous_mk + def t2Quotient.lift + theorem t2Quotient.lift_mk + def t2Quotient.mk + theorem t2Quotient.mk_eq + theorem t2Quotient.surjective_mk + theorem t2Quotient.unique_lift + def t2Quotient + def t2Setoid + theorem t2Space_antitone + theorem t2Space_iff_disjoint_nhds + theorem t2Space_iff_nhds + theorem t2_iff_isClosed_diagonal + theorem t2_iff_nhds + theorem t2_iff_ultrafilter + theorem t2_separation + theorem t2_separation_compact_nhds + theorem t2_separation_nhds + theorem tendsto_nhds_unique' + theorem tendsto_nhds_unique + theorem tendsto_nhds_unique_of_eventuallyEq + theorem tendsto_nhds_unique_of_frequently_eq Added Mathlib/Topology/Separation/Profinite.lean + theorem compact_exists_isClopen_in_isOpen + theorem isTopologicalBasis_isClopen + theorem loc_compact_Haus_tot_disc_of_zero_dim + theorem loc_compact_t2_tot_disc_iff_tot_sep + theorem nhds_basis_clopen + theorem totallySeparatedSpace_of_t1_of_basis_clopen Added Mathlib/Topology/Separation/Regular.lean + theorem Filter.HasBasis.nhds_closure + theorem IsClosed.HasSeparatingCover + theorem IsCompact.exists_isOpen_closure_subset + theorem IsCompact.lift'_closure_nhdsSet + theorem RegularSpace.inf + theorem RegularSpace.of_exists_mem_nhds_isClosed_subset + theorem RegularSpace.of_hasBasis + theorem RegularSpace.of_lift'_closure + theorem RegularSpace.of_lift'_closure_le + theorem RegularSpace.t3Space_iff_t0Space + theorem SeparatedNhds.of_isCompact_isClosed + theorem T25Space.of_injective_continuous + theorem TopologicalSpace.IsTopologicalBasis.exists_closure_subset + theorem TopologicalSpace.IsTopologicalBasis.nhds_basis_closure + theorem Topology.IsEmbedding.completelyNormalSpace + theorem Topology.IsEmbedding.t25Space + theorem Topology.IsEmbedding.t5Space + theorem closed_nhds_basis + theorem connectedComponent_eq_iInter_isClopen + theorem disjoint_lift'_closure_nhds + theorem disjoint_nested_nhds + theorem disjoint_nhdsSet_nhds + theorem disjoint_nhdsSet_nhdsSet + theorem disjoint_nhds_nhdsSet + theorem exists_compact_closed_between + theorem exists_mem_nhds_isClosed_subset + theorem exists_nhds_disjoint_closure + theorem exists_open_between_and_isCompact_closure + theorem exists_open_nhds_disjoint_closure + theorem hasBasis_nhds_closure + theorem hasBasis_opens_closure + theorem lift'_nhds_closure + theorem normal_exists_closure_subset + theorem normal_separation + theorem regularSpace_TFAE + theorem regularSpace_iInf + theorem regularSpace_induced + theorem regularSpace_sInf Added Mathlib/Topology/Separation/SeparatedNhds.lean + theorem HasSeparatingCover.mono + def HasSeparatingCover + theorem SeparatedNhds.comm + theorem SeparatedNhds.disjoint_closure_left + theorem SeparatedNhds.disjoint_closure_right + theorem SeparatedNhds.empty_left + theorem SeparatedNhds.empty_right + theorem SeparatedNhds.mono + theorem SeparatedNhds.preimage + theorem SeparatedNhds.symm + theorem SeparatedNhds.union_left + theorem SeparatedNhds.union_right + def SeparatedNhds + theorem Set.hasSeparatingCover_empty_left + theorem Set.hasSeparatingCover_empty_right + theorem hasSeparatingCovers_iff_separatedNhds + theorem separatedNhds_iff_disjoint Modified Mathlib/Topology/ShrinkingLemma.lean Modified Mathlib/Topology/UniformSpace/OfCompactT2.lean Modified Mathlib/Topology/UniformSpace/Separation.lean 2024-12-18 06:37:04 2144977 feat(Analysis/Analytic): `FormalMultilinearSeries.unshift` convergence (#19848) * Prove `unshift_shift`, which states that `p.unshift.shift = p`. * Prove `radius_shift` and `radius_unshift`, which state that the shifted and unshifted series converge on the same ball. * Prove `HasFPowerSeriesOnBall.unshift` (and variations), describing where the shifted series converges. ESTIMATED CHANGES Modified Mathlib/Analysis/Analytic/Basic.lean + theorem FormalMultilinearSeries.radius_shift + theorem FormalMultilinearSeries.radius_unshift Modified Mathlib/Analysis/Analytic/Constructions.lean + theorem HasFPowerSeriesOnBall.unshift + theorem HasFPowerSeriesWithinAt.unshift + theorem HasFPowerSeriesWithinOnBall.unshift Modified Mathlib/Analysis/Calculus/FormalMultilinearSeries.lean + theorem FormalMultilinearSeries.unshift_shift 2024-12-18 01:49:22 d8e48a3 feat(BigOperators): prod_ite_eq_of_mem (#20026) I found these lemmas very helpful for manipulating sums in my Selberg sieve project. The benefit these lemmas have over `prod_ite_eq` and `prod_ite_eq'` is that the RHS is not an if-then-else block, which makes it much more useful for rewriting backwards to introduce a sum. ESTIMATED CHANGES Modified Mathlib/Algebra/BigOperators/Group/Finset.lean + theorem Finset.prod_ite_eq_of_mem' + theorem Finset.prod_ite_eq_of_mem 2024-12-18 01:10:20 fb40f75 feat(Archive/Imo): formalize IMO 1982q3 (#16190) Formalize problem 3 of 1982 IMO. Co-authored by: Violeta Hernández Palacios ESTIMATED CHANGES Modified Archive.lean Added Archive/Imo/Imo1982Q3.lean + theorem Imo1982Q3.ineq + theorem Imo1982Q3.le_avg + theorem imo1982_q3a + theorem imo1982_q3b Modified Mathlib/Algebra/GeomSum.lean + theorem geom_sum_lt Modified Mathlib/Algebra/Order/GroupWithZero/Unbundled.lean 2024-12-17 21:44:13 495ec69 fix(Linter/DocPrime): don't flag anonymous examples and instances (#20027) Fixes a bug reported [in Zulip](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/strange.20docPrime.20linter.20behaviour/near/489550515). When an `example` or anonymous `instance` occurs within a primed namespace, the `docPrime` linter should *not* report a message. ESTIMATED CHANGES Modified Mathlib/Tactic/Linter/DocPrime.lean Modified MathlibTest/DocPrime.lean 2024-12-17 21:17:17 9282f9e feat(Analysis/Fourier): Multi-variable Fourier series (#19766) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/Fourier/AddCircleMulti.lean + theorem UnitAddTorus.coeFn_mFourierLp + theorem UnitAddTorus.coe_mFourierBasis + theorem UnitAddTorus.hasSum_mFourier_series_L2 + theorem UnitAddTorus.hasSum_mFourier_series_apply_of_summable + theorem UnitAddTorus.hasSum_mFourier_series_of_summable + theorem UnitAddTorus.hasSum_prod_mFourierCoeff + theorem UnitAddTorus.hasSum_sq_mFourierCoeff + def UnitAddTorus.mFourier + def UnitAddTorus.mFourierBasis + theorem UnitAddTorus.mFourierBasis_repr + def UnitAddTorus.mFourierCoeff + theorem UnitAddTorus.mFourierCoeff_toLp + def UnitAddTorus.mFourierSubalgebra + theorem UnitAddTorus.mFourierSubalgebra_closure_eq_top + theorem UnitAddTorus.mFourierSubalgebra_coe + theorem UnitAddTorus.mFourierSubalgebra_separatesPoints + theorem UnitAddTorus.mFourier_add + theorem UnitAddTorus.mFourier_neg + theorem UnitAddTorus.mFourier_norm + theorem UnitAddTorus.mFourier_single + theorem UnitAddTorus.mFourier_zero + theorem UnitAddTorus.orthonormal_mFourier + theorem UnitAddTorus.span_mFourierLp_closure_eq_top + theorem UnitAddTorus.span_mFourier_closure_eq_top 2024-12-17 18:11:53 9890d5f feat(Analysis/PolarCoord): add versions for Lebesgue integral (#18490) This PR is part of the proof of the Analytic Class Number Formula. ESTIMATED CHANGES Modified Mathlib/Analysis/SpecialFunctions/PolarCoord.lean + theorem Complex.measurableEquivRealProd_symm_polarCoord_symm_apply + theorem det_fderiv_polarCoord_symm + theorem lintegral_comp_polarCoord_symm 2024-12-17 16:57:40 88c8ffa feat: pointwise MapsTo lemmas (#19999) ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Pointwise/Set/Basic.lean + theorem Set.MapsTo.div + theorem Set.MapsTo.inv + theorem Set.MapsTo.mul Modified Mathlib/Combinatorics/Additive/FreimanHom.lean 2024-12-17 13:46:44 bb0575e feat(Data/EReal): Add results about `EReal` (#17087) Add results about operations on the extended real numbers. - Instances for `EReal`: `CharZero` and `NoZeroDivisors`. - Results about the coercion to the reals: `toReal_eq_zero_iff`, `toReal_ne_zero_iff`, `toReal_nonneg`, `toReal_nonpos`, `coe_ennreal_toReal`. - Results about the addition of EReals: `add_ne_bot_iff`, `bot_lt_add_iff`, `add_ne_top` and similar. - Reorganize and rename the lemmas `le_neg` and similar to make them more consistent, add the missing ones. - Results about the subtraction of EReals: `top_sub_of_ne_top`, `sub_self`, `sub_self_le_zero`, `sub_nonneg` and similar, `sub_add_cancel` and similar. - Results about the multiplication of Ereals: `top_mul_coe_ennreal`, `coe_ennreal_mul_top`, `mul_pos_iff` and similar, `mul_eq_top` and similar, `coe_mul_add_of_nonneg` and other distributivity lemmas, `nsmul_eq_mul`. - Move and simplify proof of `mul_pos`. - Clenaup. ESTIMATED CHANGES Modified Mathlib/Data/Real/EReal.lean +/- theorem EReal.add_lt_top + theorem EReal.add_ne_bot_iff + theorem EReal.add_ne_top + theorem EReal.add_ne_top_iff_ne_top_left + theorem EReal.add_ne_top_iff_ne_top_right + theorem EReal.add_ne_top_iff_ne_top₂ + theorem EReal.add_sub_cancel_left + theorem EReal.coe_ennreal_mul_top + theorem EReal.coe_ennreal_toReal - theorem EReal.le_neg_of_le_neg + theorem EReal.left_distrib_of_nonneg_of_ne_top - theorem EReal.lt_neg_of_lt_neg + theorem EReal.mul_eq_bot + theorem EReal.mul_eq_top + theorem EReal.mul_ne_bot + theorem EReal.mul_ne_top + theorem EReal.mul_neg_iff + theorem EReal.mul_nonneg_iff + theorem EReal.mul_nonpos_iff +/- theorem EReal.mul_pos + theorem EReal.mul_pos_iff - theorem EReal.neg_lt_of_neg_lt + theorem EReal.nsmul_eq_mul + theorem EReal.right_distrib_of_nonneg_of_ne_top + theorem EReal.sub_add_cancel +/- theorem EReal.sub_add_cancel_left + theorem EReal.sub_add_cancel_right +/- theorem EReal.sub_bot + theorem EReal.sub_neg + theorem EReal.sub_nonneg + theorem EReal.sub_nonpos + theorem EReal.sub_pos + theorem EReal.sub_self + theorem EReal.sub_self_le_zero + theorem EReal.toReal_eq_toReal + theorem EReal.toReal_eq_zero_iff + theorem EReal.toReal_ne_zero_iff + theorem EReal.toReal_nonneg + theorem EReal.toReal_nonpos + theorem EReal.top_mul_coe_ennreal + theorem EReal.top_sub Modified Mathlib/Topology/Instances/EReal.lean 2024-12-17 11:38:20 d5bed45 faet(RingTheory/DiscreteValuationRing/Basic): rename `DiscreteValuationRing` to `IsDiscreteValuationRing`. (#19947) In this PR we rename `DiscreteValuationRing` to `IsDiscreteValuationRing`, since the latter is `Prop`-valued. ESTIMATED CHANGES Modified Mathlib/NumberTheory/Padics/PadicIntegers.lean Modified Mathlib/NumberTheory/Padics/RingHoms.lean Modified Mathlib/RingTheory/DedekindDomain/Dvr.lean - theorem IsLocalization.AtPrime.discreteValuationRing_of_dedekind_domain + theorem IsLocalization.AtPrime.isDiscreteValuationRing_of_dedekind_domain Modified Mathlib/RingTheory/DedekindDomain/PID.lean Modified Mathlib/RingTheory/DiscreteValuationRing/Basic.lean - theorem DiscreteValuationRing.HasUnitMulPowIrreducibleFactorization.of_ufd_of_unique_irreducible - theorem DiscreteValuationRing.HasUnitMulPowIrreducibleFactorization.toUniqueFactorizationMonoid - theorem DiscreteValuationRing.HasUnitMulPowIrreducibleFactorization.unique_irreducible - def DiscreteValuationRing.HasUnitMulPowIrreducibleFactorization - theorem DiscreteValuationRing.addVal_add - theorem DiscreteValuationRing.addVal_def' - theorem DiscreteValuationRing.addVal_def - theorem DiscreteValuationRing.addVal_eq_top_iff - theorem DiscreteValuationRing.addVal_le_iff_dvd - theorem DiscreteValuationRing.addVal_mul - theorem DiscreteValuationRing.addVal_one - theorem DiscreteValuationRing.addVal_pow - theorem DiscreteValuationRing.addVal_uniformizer - theorem DiscreteValuationRing.addVal_zero - theorem DiscreteValuationRing.associated_of_irreducible - theorem DiscreteValuationRing.associated_pow_irreducible - theorem DiscreteValuationRing.aux_pid_of_ufd_of_unique_irreducible - theorem DiscreteValuationRing.eq_unit_mul_pow_irreducible - theorem DiscreteValuationRing.exists_irreducible - theorem DiscreteValuationRing.exists_prime - theorem DiscreteValuationRing.ideal_eq_span_pow_irreducible - theorem DiscreteValuationRing.iff_pid_with_one_nonzero_prime - theorem DiscreteValuationRing.irreducible_iff_uniformizer - theorem DiscreteValuationRing.irreducible_of_span_eq_maximalIdeal - theorem DiscreteValuationRing.not_a_field - theorem DiscreteValuationRing.not_isField - theorem DiscreteValuationRing.ofHasUnitMulPowIrreducibleFactorization - theorem DiscreteValuationRing.of_ufd_of_unique_irreducible - theorem DiscreteValuationRing.unit_mul_pow_congr_pow - theorem DiscreteValuationRing.unit_mul_pow_congr_unit + theorem IsDiscreteValuationRing.HasUnitMulPowIrreducibleFactorization.of_ufd_of_unique_irreducible + theorem IsDiscreteValuationRing.HasUnitMulPowIrreducibleFactorization.toUniqueFactorizationMonoid + theorem IsDiscreteValuationRing.HasUnitMulPowIrreducibleFactorization.unique_irreducible + def IsDiscreteValuationRing.HasUnitMulPowIrreducibleFactorization + theorem IsDiscreteValuationRing.addVal_add + theorem IsDiscreteValuationRing.addVal_def' + theorem IsDiscreteValuationRing.addVal_def + theorem IsDiscreteValuationRing.addVal_eq_top_iff + theorem IsDiscreteValuationRing.addVal_le_iff_dvd + theorem IsDiscreteValuationRing.addVal_mul + theorem IsDiscreteValuationRing.addVal_one + theorem IsDiscreteValuationRing.addVal_pow + theorem IsDiscreteValuationRing.addVal_uniformizer + theorem IsDiscreteValuationRing.addVal_zero + theorem IsDiscreteValuationRing.associated_of_irreducible + theorem IsDiscreteValuationRing.associated_pow_irreducible + theorem IsDiscreteValuationRing.aux_pid_of_ufd_of_unique_irreducible + theorem IsDiscreteValuationRing.eq_unit_mul_pow_irreducible + theorem IsDiscreteValuationRing.exists_irreducible + theorem IsDiscreteValuationRing.exists_prime + theorem IsDiscreteValuationRing.ideal_eq_span_pow_irreducible + theorem IsDiscreteValuationRing.iff_pid_with_one_nonzero_prime + theorem IsDiscreteValuationRing.irreducible_iff_uniformizer + theorem IsDiscreteValuationRing.irreducible_of_span_eq_maximalIdeal + theorem IsDiscreteValuationRing.not_a_field + theorem IsDiscreteValuationRing.not_isField + theorem IsDiscreteValuationRing.ofHasUnitMulPowIrreducibleFactorization + theorem IsDiscreteValuationRing.of_ufd_of_unique_irreducible + theorem IsDiscreteValuationRing.unit_mul_pow_congr_pow + theorem IsDiscreteValuationRing.unit_mul_pow_congr_unit Modified Mathlib/RingTheory/DiscreteValuationRing/TFAE.lean - theorem DiscreteValuationRing.TFAE + theorem IsDiscreteValuationRing.TFAE +/- theorem IsLocalRing.finrank_CotangentSpace_eq_one Modified Mathlib/RingTheory/PowerSeries/Inverse.lean Modified Mathlib/RingTheory/Valuation/ValuationRing.lean Modified Mathlib/RingTheory/WittVector/DiscreteValuationRing.lean - theorem WittVector.discreteValuationRing + theorem WittVector.isDiscreteValuationRing 2024-12-17 01:35:05 b18fc8a feat(MeasureTheory/Integral/RieszMarkovKakutani) prove that the Riesz content is indeed a content for `NNReal` (#18775) Prove additivity of `RieszContentAux`, completing the proof that it gives a `Content`. Motivation: this gives the measure related with a positive linear functional `Λ` on compactly supported continuous functions. The next step is to characterise the constructed measure as the one giving `Λ` back. In this PR, it is assumed to be `NNReal`-linear. The main steps to prove additivity have been proposed by @kkytola [here](https://github.com/leanprover-community/mathlib4/pull/12290#issuecomment-2125859907). A different approach is taken in #12290 for `Real`-linear `Λ`. - [x] depends on: #12266 for a variation of `PartitionOfUnity`. The new contents of this PR are contained in `MeasureTheory.Integral.linearRieszMarkovKakutani` and `Topology.ContinuousMap.CompactlySupported`. ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Integral/RieszMarkovKakutani.lean + theorem exists_continuous_add_one_of_isCompact_nnreal +/- theorem rieszContentAux_le + theorem rieszContentAux_union Modified Mathlib/Topology/ContinuousMap/CompactlySupported.lean + theorem CompactlySupportedContinuousMap.nnrealPart_apply 2024-12-16 22:48:21 458cc7d chore: make `Decidable` instance for `SimpleGraph.Connected` be reducible (#20015) Suggested by @kmill. [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) ESTIMATED CHANGES Modified Mathlib/Combinatorics/SimpleGraph/Connectivity/WalkCounting.lean 2024-12-16 22:32:24 4ea2e91 feat: add `IsLeast {n | p n} (Nat.find hp)` and related lemmas (#20010) ESTIMATED CHANGES Modified Mathlib/Data/Int/LeastGreatest.lean + theorem Int.isGreatest_coe_greatestOfBdd + theorem Int.isLeast_coe_leastOfBdd Modified Mathlib/Order/Nat.lean + theorem Nat.isLeast_find + theorem Set.Nonempty.isLeast_natFind 2024-12-16 22:01:34 24a6768 feat(CategoryTheory): Finality of `StructuredArrow.post` (#20001) With a slight generalization to `map₂ (R' := T ⋙ S) (F := 𝟭 _) u (𝟙 (T ⋙ S))`. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Comma/StructuredArrow/Basic.lean + def CategoryTheory.CostructuredArrow.map₂IsoPreEquivalenceInverseCompProj + def CategoryTheory.CostructuredArrow.postIsoMap₂ + def CategoryTheory.StructuredArrow.map₂IsoPreEquivalenceInverseCompProj + def CategoryTheory.StructuredArrow.postIsoMap₂ - def CategoryTheory.StructuredArrow.preEquivalence.functor - def CategoryTheory.StructuredArrow.preEquivalence.inverse + def CategoryTheory.StructuredArrow.preEquivalenceFunctor + def CategoryTheory.StructuredArrow.preEquivalenceInverse Modified Mathlib/CategoryTheory/Filtered/Final.lean 2024-12-16 18:13:08 0f3e538 chore: move FreeLocus to AlgebraicGeometry/PrimeSpectrum (#20004) The imports of this file were relatively heavy: AlgebraicGeometry, RingTheory, Topology. So this place seems more appropriate. ESTIMATED CHANGES Modified Mathlib.lean Renamed Mathlib/Algebra/Module/FreeLocus.lean to Mathlib/AlgebraicGeometry/PrimeSpectrum/FreeLocus.lean 2024-12-16 16:45:52 3a32603 feat(CategoryTheory/Abelian/GrothendieckAxioms): introduce Grothendieck categories (#18510) Define Grothendieck categories in a new separate file. According to our definition, a Grothendieck category w.r.t an universe w is an abelian category that is locally small w.r.t w, has exact filtered colimits of size `w` (AB5) and has a separator. Some essential theorems are provided: * The definition is invariant under equivalences of categories, and in particular, under shrinking the hom sets to size `w`. * Grothendieck categories are have all limits and colimits of size w (completeness and cocompleteness). In order to facilitate the proofs of the theorems, the new lemma `hasLimits_of_hasColimits_of_hasSeparator` (a variant of `hasLimits_of_hasColimits_of_isSeparating`) and its dual is introduced in `Adjunction.AdjointFunctorTheorems`. The module `Abelian.Transfer` is extended with the induced preadditive and abelian structure of `ShrinkHoms` and existing transfer lemmas are generalized so that the hom sets need not have the same universes. Transfer lemmas for separators and coseparators are added to `Adjunction.Generator`. Moreover, some notable changes are made in `Abelian.GrothendieckAxioms.Basic`. Besides adding `@[stacks]` attributes, `hasExactColimitsOfShape_of_equiv` is renamed to `HasExactColimitsOfShape.of_domain_equivalence` and is afforded a counterpart `HasExactColimitsOfShape.of_codomain_equivalence` (with similar changes to `HasExactLimitsOfShape`). ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/CategoryTheory/Abelian/GrothendieckAxioms/Basic.lean + theorem CategoryTheory.HasExactColimitsOfShape.of_codomain_equivalence + theorem CategoryTheory.HasExactColimitsOfShape.of_domain_equivalence + theorem CategoryTheory.HasExactLimitsOfShape.of_codomain_equivalence + theorem CategoryTheory.HasExactLimitsOfShape.of_domain_equivalence - theorem CategoryTheory.hasExactColimitsOfShape_of_equiv - theorem CategoryTheory.hasExactLimitsOfShape_of_equiv Added Mathlib/CategoryTheory/Abelian/GrothendieckCategory.lean + theorem CategoryTheory.IsGrothendieckAbelian.of_equivalence Modified Mathlib/CategoryTheory/Abelian/Transfer.lean + theorem CategoryTheory.ShrinkHoms.functor_map_add + theorem CategoryTheory.ShrinkHoms.inverse_map_add +/- def CategoryTheory.abelianOfAdjunction +/- def CategoryTheory.abelianOfEquivalence Modified Mathlib/CategoryTheory/Adjunction/AdjointFunctorTheorems.lean + theorem CategoryTheory.Limits.hasColimits_of_hasLimits_of_hasCoseparator + theorem CategoryTheory.Limits.hasLimits_of_hasColimits_of_hasSeparator Modified Mathlib/CategoryTheory/EssentiallySmall.lean Modified Mathlib/CategoryTheory/Generator.lean + theorem CategoryTheory.HasCoseparator.of_equivalence + theorem CategoryTheory.HasSeparator.of_equivalence + theorem CategoryTheory.IsCoseparating.of_equivalence + theorem CategoryTheory.IsCoseparator.of_equivalence + theorem CategoryTheory.IsSeparating.of_equivalence + theorem CategoryTheory.IsSeparator.of_equivalence 2024-12-16 15:39:26 625ac34 feat(RingTheory/Valuation/Basic): API for conversion `AddValuation` ↔ `Valuation` (#18786) ESTIMATED CHANGES Modified Mathlib/Algebra/Order/GroupWithZero/Canonical.lean Modified Mathlib/RingTheory/Valuation/Basic.lean + def AddValuation.ofValuation + theorem AddValuation.ofValuation_apply + theorem AddValuation.ofValuation_symm_eq + theorem AddValuation.ofValuation_toValuation + def AddValuation.toValuation + theorem AddValuation.toValuation_apply + theorem AddValuation.toValuation_ofValuation + theorem AddValuation.toValuation_symm_eq - def AddValuation.valuation - theorem AddValuation.valuation_apply + def Valuation.ofAddValuation + theorem Valuation.ofAddValuation_apply + theorem Valuation.ofAddValuation_symm_eq + theorem Valuation.ofAddValuation_toAddValuation + def Valuation.toAddValuation + theorem Valuation.toAddValuation_apply + theorem Valuation.toAddValuation_symm_eq + theorem Valuation.toValuation_ofValuation 2024-12-16 14:33:32 2927e22 feat(LinearAlgebra): general transitivity of norm (#19978) **RingTheory/AlgebraTower.lean**: add a version of `Basis.smulTower` with the two index types swapped and associated lemmas; generalize from Ring/Group to Semiring/Monoid. **LinearAlgebra/Matrix/ToLin.lean**: add a lemma on the matrix representation of `LinearMap.restrictScalars` w.r.t. `Basis.smulTower'`; generalize from Ring/Group to Semiring/Monoid. **RingTheory/Norm/Transitivity.lean**: add the result in Silvester's paper **Determinants of block matrices** (with commuting, equal-sized, square blocks). The determinant can be computed by taking two determinants in a row: first over the commutative ring generated by the blocks, then over the base ring. As consequences, the determinant of `LinearMap.restrictScalars` can be computed by first taking a determinant and then taking a norm, and the norm satisfies transitivity in a tower of algebras. **RingTheory/Norm/Basic.lean**: `Algebra.norm_norm` is replaced by the more general version proven in **Transitivity.lean**. **Algebra/BigOperators/Group/Finset.lean**, **Data/Matrix/Basic.lean**, **LinearAlgebra/Determinant.lean**, **RingTheory/Finiteness/Cardinality.lean**: add one lemma in each. **Data/Matrix/Block.lean**: add 3 lemmas. **LinearAlgebra/Matrix/Block.lean**: generalize `BlockTriangular` from `CommRing` to `Zero` and add two lemmas. **LinearAlgebra/Matrix/Determinant/Basic.lean**: somehow a proof breaks and has to be fixed. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/BigOperators/Group/Finset.lean + theorem Fintype.prod_Prop Modified Mathlib/Data/Matrix/Block.lean + theorem Matrix.comp_diagonal + theorem Matrix.comp_toSquareBlock + theorem Matrix.map_toSquareBlock Modified Mathlib/Data/Matrix/Composition.lean + theorem Matrix.compAddEquiv_apply + theorem Matrix.compAddEquiv_symm_apply + theorem Matrix.compRingEquiv_apply + theorem Matrix.compRingEquiv_symm_apply Modified Mathlib/Data/Matrix/Defs.lean Modified Mathlib/LinearAlgebra/Determinant.lean + theorem LinearMap.det_eq_one_of_not_module_finite Modified Mathlib/LinearAlgebra/Matrix/Block.lean +/- theorem Matrix.BlockTriangular.add +/- theorem Matrix.BlockTriangular.add_iff_left +/- theorem Matrix.BlockTriangular.add_iff_right + theorem Matrix.BlockTriangular.comp + theorem Matrix.BlockTriangular.map +/- theorem Matrix.BlockTriangular.mul +/- theorem Matrix.BlockTriangular.sub +/- theorem Matrix.BlockTriangular.sub_iff_left +/- theorem Matrix.BlockTriangular.sub_iff_right +/- theorem Matrix.blockTriangular_one +/- theorem Matrix.matrixOfPolynomials_blockTriangular +/- theorem Matrix.upper_two_blockTriangular Modified Mathlib/LinearAlgebra/Matrix/Determinant/Basic.lean Modified Mathlib/LinearAlgebra/Matrix/ToLin.lean + theorem LinearMap.restrictScalars_toMatrix Modified Mathlib/NumberTheory/NumberField/Norm.lean Modified Mathlib/RingTheory/AlgebraTower.lean + theorem Basis.smulTower'_apply + theorem Basis.smulTower'_repr + theorem Basis.smulTower'_repr_mk +/- def Basis.smulTower +/- theorem Basis.smulTower_apply +/- theorem Basis.smulTower_repr +/- theorem Basis.smulTower_repr_mk Modified Mathlib/RingTheory/Finiteness/Cardinality.lean + theorem Module.not_finite_of_infinite_basis Modified Mathlib/RingTheory/Norm/Basic.lean - theorem Algebra.norm_norm Added Mathlib/RingTheory/Norm/Transitivity.lean + def Algebra.Norm.Transitivity.auxMat + theorem Algebra.Norm.Transitivity.auxMat_blockTriangular + theorem Algebra.Norm.Transitivity.auxMat_toSquareBlock_eq + theorem Algebra.Norm.Transitivity.auxMat_toSquareBlock_ne + theorem Algebra.Norm.Transitivity.comp_det_mul_pow + theorem Algebra.Norm.Transitivity.det_det_aux + theorem Algebra.Norm.Transitivity.det_mul_corner_pow + theorem Algebra.Norm.Transitivity.eval_zero_comp_det + theorem Algebra.Norm.Transitivity.eval_zero_det_det + theorem Algebra.Norm.Transitivity.mul_auxMat_blockTriangular + theorem Algebra.Norm.Transitivity.mul_auxMat_corner + theorem Algebra.Norm.Transitivity.mul_auxMat_toSquareBlock_eq + theorem Algebra.Norm.Transitivity.polyToMatrix_cornerAddX + theorem Algebra.norm_norm + theorem LinearMap.det_restrictScalars + theorem Matrix.det_det Modified Mathlib/RingTheory/PolynomialAlgebra.lean + def RingHom.polyToMatrix + theorem evalRingHom_mapMatrix_comp_compRingEquiv + theorem evalRingHom_mapMatrix_comp_polyToMatrix Modified docs/references.bib 2024-12-16 14:15:35 4c06665 chore(RingTheory/Localization): prove isUnit_den_iff.mp by isInteger_of_isUnit_den (#19923) Replaces the 9-line proof of `isUnit_den_iff.mp` with a direct application of the existing lemma `sInteger_of_isUnit_den` (which is in fact the preceding item in the file). For reference, `isUnit_den_iff` was first added in #14643. This simplification was found by [`tryAtEachStep`](https://github.com/dwrensha/tryAtEachStep). ESTIMATED CHANGES Modified Mathlib/RingTheory/Localization/NumDen.lean 2024-12-16 13:49:38 4e1ec44 feat(Algebra/Category/Grp/Limits): the forgetful functor on the category of groups creates all limits (#19966) The forgetful functor on the category of groups (commutative or not) creates all limits. As we already know that the forgetful functor from groups to monoids creates all limits (once we remove the unnecessary size condition in `Grp.Forget₂.createsLimit`), this just follows from the similar fact for monoid categories, which is PR #19965. - [x] depends on: #19965 ESTIMATED CHANGES Modified Mathlib/Algebra/Category/Grp/Limits.lean 2024-12-16 13:15:13 3fc26c4 feat: add `sq_le_sq₀` convenience lemma (#19963) ESTIMATED CHANGES Modified Mathlib/Algebra/Order/GroupWithZero/Unbundled.lean + theorem sq_le_sq₀ + theorem sq_lt_sq₀ Modified Mathlib/Algebra/Order/Ring/Abs.lean 2024-12-16 13:15:11 0a6144d feat(Topology): Introduce HomeomorphClass (#18689) Introduce HomeomorphClass ESTIMATED CHANGES Modified Mathlib/Topology/Algebra/Module/Basic.lean Modified Mathlib/Topology/Homeomorph.lean + theorem HomeomorphClass.coe_coe + def HomeomorphClass.toHomeomorph + theorem HomeomorphClass.toHomeomorph_injective 2024-12-16 13:05:35 30c7d7b feat(AlgebraicGeometry/EllipticCurve/Projective): implement group law for projective coordinates (#8485) Completes the proof of the group law in projective coordinates. ESTIMATED CHANGES Modified Mathlib/AlgebraicGeometry/EllipticCurve/Group.lean Modified Mathlib/AlgebraicGeometry/EllipticCurve/Projective.lean 2024-12-16 11:23:10 95e4d18 chore(SetTheory/Game/PGame): deprecate primed lemmas (#18469) We perform various renames with the intent of doing away with some badly named or dubiously useful lemmas. ESTIMATED CHANGES Modified Mathlib/SetTheory/Game/Basic.lean Modified Mathlib/SetTheory/Game/Impartial.lean Modified Mathlib/SetTheory/Game/Nim.lean - theorem SetTheory.PGame.moveLeft_nim' +/- theorem SetTheory.PGame.moveLeft_nim + theorem SetTheory.PGame.moveLeft_toLeftMovesNim - theorem SetTheory.PGame.moveRight_nim' +/- theorem SetTheory.PGame.moveRight_nim + theorem SetTheory.PGame.moveRight_toRightMovesNim Modified Mathlib/SetTheory/Game/PGame.lean - theorem SetTheory.PGame.moveLeft_neg' +/- theorem SetTheory.PGame.moveLeft_neg + theorem SetTheory.PGame.moveLeft_neg_toLeftMovesNeg - theorem SetTheory.PGame.moveRight_neg' +/- theorem SetTheory.PGame.moveRight_neg + theorem SetTheory.PGame.moveRight_neg_toRightMovesNeg Modified Mathlib/SetTheory/Surreal/Multiplication.lean 2024-12-16 11:07:11 e8b45bf feat(Algebra/Polynomial/FieldDivision): factoring polynomials to irreducible monic factors (#19640) ESTIMATED CHANGES Modified Mathlib/Algebra/Polynomial/FieldDivision.lean + theorem Polynomial.leadingCoeff_mul_prod_normalizedFactors Modified Mathlib/Data/Nat/Squarefree.lean Modified Mathlib/NumberTheory/KummerDedekind.lean Modified Mathlib/RingTheory/ChainOfDivisors.lean Modified Mathlib/RingTheory/DedekindDomain/Ideal.lean Modified Mathlib/RingTheory/Radical.lean Modified Mathlib/RingTheory/UniqueFactorizationDomain/Finite.lean Modified Mathlib/RingTheory/UniqueFactorizationDomain/Multiplicative.lean Modified Mathlib/RingTheory/UniqueFactorizationDomain/Multiplicity.lean Modified Mathlib/RingTheory/UniqueFactorizationDomain/Nat.lean Modified Mathlib/RingTheory/UniqueFactorizationDomain/NormalizedFactors.lean - theorem UniqueFactorizationMonoid.normalizedFactors_prod + theorem UniqueFactorizationMonoid.prod_normalizedFactors + theorem UniqueFactorizationMonoid.prod_normalizedFactors_eq 2024-12-16 10:17:36 337fbe4 refactor(Mathlib/Order): remove duplicate lemma `iInf_le'` (#19911) Remove `iInf_le'` which is equal to `iInf_le`. ESTIMATED CHANGES Modified Mathlib/Order/CompleteLattice.lean +/- theorem iInf_le' +/- theorem le_iSup' 2024-12-16 10:17:35 896a59b feat(Combinatorics/SimpleGraph): the reverse of a cycle is a cycle (#19611) Added the result that a reverse cycle is a cycle. Includes supporting lemmas concerning lists. In preparation for Tutte's theorem. ESTIMATED CHANGES Modified Mathlib/Combinatorics/SimpleGraph/Path.lean + theorem SimpleGraph.Walk.isCycle_reverse Modified Mathlib/Combinatorics/SimpleGraph/Walk.lean + theorem SimpleGraph.Walk.getVert_eq_support_get? + theorem SimpleGraph.Walk.nodup_tail_support_reverse Modified Mathlib/Data/List/Basic.lean + theorem List.drop_length_sub_one Modified Mathlib/Data/List/Nodup.lean + theorem List.nodup_tail_reverse 2024-12-16 09:38:12 afdc9d9 chore: rename `DivInvMonoid.Pow` (#19884) This didn't match the naming convention at all. Loogle tells me that `ZPow` is slightly more common than `PowInt`, though both are used. This is an instance, so the name needs no deprecation ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Defs.lean Modified Mathlib/Data/ZMod/IntUnitsPower.lean Modified MathlibTest/instance_diamonds.lean 2024-12-16 09:28:07 a1d13da fix: try with a bash escape to avoid backticks (#19991) [Reported on Zulip](https://leanprover.zulipchat.com/#narrow/channel/428973-nightly-testing/topic/Mergeable.20lean.20testing.20PRs/near/489182290) ESTIMATED CHANGES Modified .github/workflows/discover-lean-pr-testing.yml 2024-12-16 09:28:06 748cb39 chore(SmoothManifoldWithCorners): `Inhabited`->`Nonempty` (#19987) ESTIMATED CHANGES Modified Mathlib/Geometry/Manifold/SmoothManifoldWithCorners.lean 2024-12-16 09:15:29 ed2f6ae chore: remove choice from `Multiset.pi` (#19990) Since this doesn't actually complicate the proof or change the statement, this seems harmless. Originated from [this Zulip thread](https://leanprover.zulipchat.com/#narrow/channel/236446-Type-theory/topic/Setless.20proof.20of.20.60Fin2.201.20-.3E.20Fin2.201.20.5Cneq.20Fin2.202.20-.3E.20Fin2.202.60/near/489156076) ESTIMATED CHANGES Modified Mathlib/Data/Multiset/Pi.lean 2024-12-16 08:38:43 aee9be2 feat(Algebra/Category/MonCat/Limits): the forgetful functor on the category of monoids creates all limits (#19965) The forgetful functor on the category of monoids (commutative or not) creates all limits. The only non-trivial lemma is `MonCat.forget_createsLimit`, but even that is easy because it uses that limits in the category of monoids are literally constructed by taking limits in the category of types and putting a monoid structure on the result. The only "innovation" is noticing that the limit of `F` existing in the category of types already forces the sections of `F ⋙ forget MonCat``` to be small, so we don't need to impose any smallness condition on our functors. - [x] depends on: #19964 [the forgetful functor on `MonCat` is corepresentable] ESTIMATED CHANGES Modified Mathlib/Algebra/Category/MonCat/Limits.lean 2024-12-16 01:30:05 3f813de feat(SetTheory/Game/PGame): identical_of_eq (#19983) To complement [`equiv_of_eq`](https://leanprover-community.github.io/mathlib4_docs/Mathlib/SetTheory/Game/PGame.html#SetTheory.PGame.equiv_of_eq). ESTIMATED CHANGES Modified Mathlib/SetTheory/Game/PGame.lean + theorem SetTheory.PGame.identical_of_eq 2024-12-16 01:07:35 d3319ca chore(Algebra/Group/Nat): Remove some unnecessary lemmas arguments (#19981) ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Nat/Even.lean +/- theorem Nat.add_one_lt_of_even +/- theorem Nat.one_lt_of_ne_zero_of_even +/- theorem Nat.succ_mod_two_eq_one_iff +/- theorem Nat.succ_mod_two_eq_zero_iff 2024-12-16 00:47:04 dd3f45b feat(SetTheory/Ordinal/Arithmetic): `(sInf sᶜ).card ≤ #s` (#18780) The cardinality of the least ordinal not in a set is at most the cardinality of the set. ESTIMATED CHANGES Modified Mathlib/SetTheory/Ordinal/Arithmetic.lean + theorem Ordinal.card_sInf_range_compl_le + theorem Ordinal.card_sInf_range_compl_le_lift + theorem Ordinal.lift_card_sInf_compl_le 2024-12-16 00:26:38 9e10768 feat(SetTheory/Cardinal/Arithmetic): cardinality of ordinal exponential (#17813) We prove variations on `(a ^ b).card = max a.card b.card`. ESTIMATED CHANGES Modified Mathlib/SetTheory/Cardinal/Aleph.lean + theorem Cardinal.lt_omega_iff_card_lt Modified Mathlib/SetTheory/Cardinal/Arithmetic.lean + theorem Ordinal.IsInitial.principal_opow + theorem Ordinal.card_omega0_opow + theorem Ordinal.card_opow_eq_of_omega0_le_left + theorem Ordinal.card_opow_eq_of_omega0_le_right + theorem Ordinal.card_opow_le + theorem Ordinal.card_opow_le_of_omega0_le_left + theorem Ordinal.card_opow_le_of_omega0_le_right + theorem Ordinal.card_opow_omega0 + theorem Ordinal.principal_opow_omega + theorem Ordinal.principal_opow_ord Modified Mathlib/SetTheory/Ordinal/Arithmetic.lean + theorem Ordinal.eq_nat_or_omega0_le Modified Mathlib/SetTheory/Ordinal/Principal.lean 2024-12-15 23:28:00 00a4da3 chore(SetTheory/Ordinal/NaturalOps): address porting notes (#19237) We also private/deprecate some primed lemmas which are really only useful to prove associativity of multiplication. ESTIMATED CHANGES Modified Mathlib/SetTheory/Ordinal/NaturalOps.lean +/- theorem NatOrdinal.toOrdinal_toNatOrdinal +/- theorem Ordinal.lt_nmul_iff₃' +/- theorem Ordinal.lt_nmul_iff₃ - theorem Ordinal.nmul_le_iff₃' +/- theorem Ordinal.nmul_le_iff₃ - theorem Ordinal.nmul_nadd_lt₃' +/- theorem Ordinal.toNatOrdinal_toOrdinal 2024-12-15 13:33:16 ffcd1a0 chore: revert removal of tactic usage in Archive (#19974) This reverts a change from #19691, which unnecessarily removed a tactic invocation in favour of writing out lemmas. The archive should be demonstrating good style, and unless there is a verbosity or speed issue, robust and well specified tactics should always be preferred over proofs that require knowing lemmas (even if, as in this case, those lemmas are easy to identify and use). ESTIMATED CHANGES Modified Archive/Imo/Imo1964Q1.lean 2024-12-15 09:21:02 07a5460 chore: rename Mathlib.Vector to List.Vector (#19930) Per @digama0's suggestion on [zulip](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/What.20is.20the.20plan.20for.20.60Mathlib.2EVector.60.3F/near/488525657). ESTIMATED CHANGES Modified .github/PULL_REQUEST_TEMPLATE.md Modified Mathlib/Computability/Halting.lean +/- def Nat.Partrec'.Vec +/- theorem Nat.Partrec'.comp₁ +/- theorem Nat.Partrec'.of_eq +/- theorem Nat.Partrec'.of_prim +/- theorem Nat.Partrec'.rfindOpt +/- inductive Nat.Partrec' Modified Mathlib/Computability/Partrec.lean +/- theorem Computable.vector_cons +/- theorem Computable.vector_get +/- theorem Computable.vector_head +/- theorem Computable.vector_length +/- theorem Computable.vector_ofFn' +/- theorem Computable.vector_tail +/- theorem Computable.vector_toList Modified Mathlib/Computability/Primrec.lean +/- def Nat.Primrec'.Vec +/- theorem Nat.Primrec'.of_eq +/- inductive Nat.Primrec' +/- theorem Primrec.vector_cons +/- theorem Primrec.vector_get' +/- theorem Primrec.vector_get +/- theorem Primrec.vector_head +/- theorem Primrec.vector_length +/- theorem Primrec.vector_ofFn' +/- theorem Primrec.vector_tail +/- theorem Primrec.vector_toList +/- theorem Primrec.vector_toList_iff Modified Mathlib/Computability/TMToPartrec.lean +/- theorem Turing.ToPartrec.Code.exists_code.comp +/- theorem Turing.ToPartrec.Code.exists_code Modified Mathlib/Computability/TuringMachine.lean +/- def Turing.TM1to1.readAux Modified Mathlib/Data/Finite/Vector.lean Modified Mathlib/Data/Fintype/BigOperators.lean Modified Mathlib/Data/Fintype/Fin.lean +/- theorem Fin.card_filter_univ_eq_vector_get_eq_count Modified Mathlib/Data/Fintype/Vector.lean Modified Mathlib/Data/Num/Bitwise.lean +/- def SNum.bits Modified Mathlib/Data/Set/Finite/List.lean +/- theorem List.finite_length_eq Modified Mathlib/Data/Sym/Basic.lean +/- theorem Sym.cons_of_coe_eq +/- def Sym.ofVector +/- theorem Sym.ofVector_cons +/- theorem Sym.ofVector_nil +/- theorem Sym.sound Modified Mathlib/Data/Sym/Sym2.lean Modified Mathlib/Data/Vector/Basic.lean + theorem List.Vector.Vector.append_nil + theorem List.Vector.Vector.get_append_cons_succ + theorem List.Vector.Vector.get_append_cons_zero + theorem List.Vector.Vector.get_map₂ + theorem List.Vector.Vector.mapAccumr_cons + theorem List.Vector.Vector.mapAccumr₂_cons + theorem List.Vector.Vector.replicate_succ + def List.Vector.casesOn + def List.Vector.casesOn₂ + def List.Vector.casesOn₃ + theorem List.Vector.cons_val + theorem List.Vector.empty_toList_eq_ff + theorem List.Vector.eq_cons_iff + theorem List.Vector.eraseIdx_insertIdx' + theorem List.Vector.eraseIdx_insertIdx + theorem List.Vector.eraseIdx_val + theorem List.Vector.exists_eq_cons + theorem List.Vector.ext + theorem List.Vector.getElem_map + theorem List.Vector.getElem_pmap + theorem List.Vector.get_cons_nil + theorem List.Vector.get_cons_succ + theorem List.Vector.get_cons_zero + theorem List.Vector.get_eq_get + theorem List.Vector.get_map + theorem List.Vector.get_ofFn + theorem List.Vector.get_replicate + theorem List.Vector.get_set_eq_if + theorem List.Vector.get_set_of_ne + theorem List.Vector.get_set_same + theorem List.Vector.get_tail + theorem List.Vector.get_tail_succ + theorem List.Vector.get_zero + theorem List.Vector.head?_toList + theorem List.Vector.head_map + theorem List.Vector.head_ofFn + theorem List.Vector.head_pmap + def List.Vector.inductionOn + theorem List.Vector.inductionOn_cons + theorem List.Vector.inductionOn_nil + def List.Vector.inductionOn₂ + def List.Vector.inductionOn₃ + def List.Vector.insertIdx + theorem List.Vector.insertIdx_comm + theorem List.Vector.insertIdx_val + def List.Vector.last + theorem List.Vector.last_def + theorem List.Vector.length_val + def List.Vector.mOfFn + theorem List.Vector.mOfFn_pure + theorem List.Vector.map_id + theorem List.Vector.map₂_cons + theorem List.Vector.map₂_nil + theorem List.Vector.mk_toList + def List.Vector.mmap + theorem List.Vector.mmap_cons + theorem List.Vector.mmap_nil + theorem List.Vector.ne_cons_iff + theorem List.Vector.nodup_iff_injective_get + theorem List.Vector.not_empty_toList + theorem List.Vector.ofFn_get + theorem List.Vector.pmap_cons' + theorem List.Vector.pmap_cons + theorem List.Vector.prod_set' + theorem List.Vector.prod_set + def List.Vector.reverse + theorem List.Vector.reverse_get_zero + theorem List.Vector.reverse_reverse + def List.Vector.scanl + theorem List.Vector.scanl_cons + theorem List.Vector.scanl_get + theorem List.Vector.scanl_head + theorem List.Vector.scanl_nil + theorem List.Vector.scanl_singleton + theorem List.Vector.scanl_val + def List.Vector.set + theorem List.Vector.singleton_tail + theorem List.Vector.tail_map + theorem List.Vector.tail_nil + theorem List.Vector.tail_ofFn + theorem List.Vector.tail_pmap + theorem List.Vector.tail_val + def List.Vector.toArray + theorem List.Vector.toList_empty + theorem List.Vector.toList_injective + theorem List.Vector.toList_map + theorem List.Vector.toList_ofFn + theorem List.Vector.toList_pmap + theorem List.Vector.toList_reverse + theorem List.Vector.toList_scanl + theorem List.Vector.toList_set + theorem List.Vector.toList_singleton - theorem Mathlib.Vector.append_nil - def Mathlib.Vector.casesOn - def Mathlib.Vector.casesOn₂ - def Mathlib.Vector.casesOn₃ - theorem Mathlib.Vector.cons_val - theorem Mathlib.Vector.empty_toList_eq_ff - theorem Mathlib.Vector.eq_cons_iff - theorem Mathlib.Vector.eraseIdx_insertIdx' - theorem Mathlib.Vector.eraseIdx_insertIdx - theorem Mathlib.Vector.eraseIdx_val - theorem Mathlib.Vector.exists_eq_cons - theorem Mathlib.Vector.ext - theorem Mathlib.Vector.getElem_map - theorem Mathlib.Vector.getElem_pmap - theorem Mathlib.Vector.get_append_cons_succ - theorem Mathlib.Vector.get_append_cons_zero - theorem Mathlib.Vector.get_cons_nil - theorem Mathlib.Vector.get_cons_succ - theorem Mathlib.Vector.get_cons_zero - theorem Mathlib.Vector.get_eq_get - theorem Mathlib.Vector.get_map - theorem Mathlib.Vector.get_map₂ - theorem Mathlib.Vector.get_ofFn - theorem Mathlib.Vector.get_replicate - theorem Mathlib.Vector.get_set_eq_if - theorem Mathlib.Vector.get_set_of_ne - theorem Mathlib.Vector.get_set_same - theorem Mathlib.Vector.get_tail - theorem Mathlib.Vector.get_tail_succ - theorem Mathlib.Vector.get_zero - theorem Mathlib.Vector.head?_toList - theorem Mathlib.Vector.head_map - theorem Mathlib.Vector.head_ofFn - theorem Mathlib.Vector.head_pmap - def Mathlib.Vector.inductionOn - theorem Mathlib.Vector.inductionOn_cons - theorem Mathlib.Vector.inductionOn_nil - def Mathlib.Vector.inductionOn₂ - def Mathlib.Vector.inductionOn₃ - def Mathlib.Vector.insertIdx - theorem Mathlib.Vector.insertIdx_comm - theorem Mathlib.Vector.insertIdx_val - def Mathlib.Vector.last - theorem Mathlib.Vector.last_def - theorem Mathlib.Vector.length_val - def Mathlib.Vector.mOfFn - theorem Mathlib.Vector.mOfFn_pure - theorem Mathlib.Vector.mapAccumr_cons - theorem Mathlib.Vector.mapAccumr₂_cons - theorem Mathlib.Vector.map_id - theorem Mathlib.Vector.map₂_cons - theorem Mathlib.Vector.map₂_nil - theorem Mathlib.Vector.mk_toList - def Mathlib.Vector.mmap - theorem Mathlib.Vector.mmap_cons - theorem Mathlib.Vector.mmap_nil - theorem Mathlib.Vector.ne_cons_iff - theorem Mathlib.Vector.nodup_iff_injective_get - theorem Mathlib.Vector.not_empty_toList - theorem Mathlib.Vector.ofFn_get - theorem Mathlib.Vector.pmap_cons' - theorem Mathlib.Vector.pmap_cons - theorem Mathlib.Vector.prod_set' - theorem Mathlib.Vector.prod_set - theorem Mathlib.Vector.replicate_succ - def Mathlib.Vector.reverse - theorem Mathlib.Vector.reverse_get_zero - theorem Mathlib.Vector.reverse_reverse - def Mathlib.Vector.scanl - theorem Mathlib.Vector.scanl_cons - theorem Mathlib.Vector.scanl_get - theorem Mathlib.Vector.scanl_head - theorem Mathlib.Vector.scanl_nil - theorem Mathlib.Vector.scanl_singleton - theorem Mathlib.Vector.scanl_val - def Mathlib.Vector.set - theorem Mathlib.Vector.singleton_tail - theorem Mathlib.Vector.tail_map - theorem Mathlib.Vector.tail_nil - theorem Mathlib.Vector.tail_ofFn - theorem Mathlib.Vector.tail_pmap - theorem Mathlib.Vector.tail_val - def Mathlib.Vector.toArray - theorem Mathlib.Vector.toList_empty - theorem Mathlib.Vector.toList_injective - theorem Mathlib.Vector.toList_map - theorem Mathlib.Vector.toList_ofFn - theorem Mathlib.Vector.toList_pmap - theorem Mathlib.Vector.toList_reverse - theorem Mathlib.Vector.toList_scanl - theorem Mathlib.Vector.toList_set - theorem Mathlib.Vector.toList_singleton Modified Mathlib/Data/Vector/Defs.lean + def List.Vector.append + def List.Vector.cons + theorem List.Vector.cons_head_tail + def List.Vector.drop + def List.Vector.elim + def List.Vector.eraseIdx + def List.Vector.get + theorem List.Vector.getElem_def + def List.Vector.head + theorem List.Vector.head_cons + def List.Vector.length + def List.Vector.map + def List.Vector.mapAccumr + def List.Vector.mapAccumr₂ + theorem List.Vector.map_cons + theorem List.Vector.map_nil + def List.Vector.map₂ + def List.Vector.nil + def List.Vector.ofFn + def List.Vector.pmap + theorem List.Vector.pmap_nil + def List.Vector.replicate + def List.Vector.shiftLeftFill + def List.Vector.shiftRightFill + def List.Vector.tail + theorem List.Vector.tail_cons + def List.Vector.take + def List.Vector.toList + theorem List.Vector.toList_append + theorem List.Vector.toList_cons + theorem List.Vector.toList_drop + theorem List.Vector.toList_getElem + theorem List.Vector.toList_length + theorem List.Vector.toList_mk + theorem List.Vector.toList_nil + theorem List.Vector.toList_take + def List.Vector - def Mathlib.Vector.append - def Mathlib.Vector.cons - theorem Mathlib.Vector.cons_head_tail - def Mathlib.Vector.drop - def Mathlib.Vector.elim - def Mathlib.Vector.eraseIdx - def Mathlib.Vector.get - theorem Mathlib.Vector.getElem_def - def Mathlib.Vector.head - theorem Mathlib.Vector.head_cons - def Mathlib.Vector.length - def Mathlib.Vector.map - def Mathlib.Vector.mapAccumr - def Mathlib.Vector.mapAccumr₂ - theorem Mathlib.Vector.map_cons - theorem Mathlib.Vector.map_nil - def Mathlib.Vector.map₂ - def Mathlib.Vector.nil - def Mathlib.Vector.ofFn - def Mathlib.Vector.pmap - theorem Mathlib.Vector.pmap_nil - def Mathlib.Vector.replicate - def Mathlib.Vector.shiftLeftFill - def Mathlib.Vector.shiftRightFill - def Mathlib.Vector.tail - theorem Mathlib.Vector.tail_cons - def Mathlib.Vector.take - def Mathlib.Vector.toList - theorem Mathlib.Vector.toList_append - theorem Mathlib.Vector.toList_cons - theorem Mathlib.Vector.toList_drop - theorem Mathlib.Vector.toList_getElem - theorem Mathlib.Vector.toList_length - theorem Mathlib.Vector.toList_mk - theorem Mathlib.Vector.toList_nil - theorem Mathlib.Vector.toList_take - def Mathlib.Vector Modified Mathlib/Data/Vector/MapLemmas.lean + theorem List.Vector.mapAccumr_bisim + theorem List.Vector.mapAccumr_bisim_tail + theorem List.Vector.mapAccumr_eq_map + theorem List.Vector.mapAccumr_eq_map_of_constant_state + theorem List.Vector.mapAccumr_eq_map_of_unused_state + theorem List.Vector.mapAccumr_map + theorem List.Vector.mapAccumr_mapAccumr + theorem List.Vector.mapAccumr_mapAccumr₂ + theorem List.Vector.mapAccumr_redundant_pair + theorem List.Vector.mapAccumr₂_bisim + theorem List.Vector.mapAccumr₂_bisim_tail + theorem List.Vector.mapAccumr₂_comm + theorem List.Vector.mapAccumr₂_eq_map₂ + theorem List.Vector.mapAccumr₂_eq_map₂_of_constant_state + theorem List.Vector.mapAccumr₂_eq_map₂_of_unused_state + theorem List.Vector.mapAccumr₂_flip + theorem List.Vector.mapAccumr₂_mapAccumr_left + theorem List.Vector.mapAccumr₂_mapAccumr_right + theorem List.Vector.mapAccumr₂_mapAccumr₂_left_left + theorem List.Vector.mapAccumr₂_mapAccumr₂_left_right + theorem List.Vector.mapAccumr₂_mapAccumr₂_right_left + theorem List.Vector.mapAccumr₂_mapAccumr₂_right_right + theorem List.Vector.mapAccumr₂_redundant_pair + theorem List.Vector.mapAccumr₂_unused_input_left + theorem List.Vector.mapAccumr₂_unused_input_right + theorem List.Vector.map_map + theorem List.Vector.map_mapAccumr + theorem List.Vector.map_map₂ + theorem List.Vector.map_pmap + theorem List.Vector.map₂_comm + theorem List.Vector.map₂_flip + theorem List.Vector.map₂_map_left + theorem List.Vector.map₂_map_right + theorem List.Vector.pmap_map - theorem Mathlib.Vector.mapAccumr_bisim - theorem Mathlib.Vector.mapAccumr_bisim_tail - theorem Mathlib.Vector.mapAccumr_eq_map - theorem Mathlib.Vector.mapAccumr_eq_map_of_constant_state - theorem Mathlib.Vector.mapAccumr_eq_map_of_unused_state - theorem Mathlib.Vector.mapAccumr_map - theorem Mathlib.Vector.mapAccumr_mapAccumr - theorem Mathlib.Vector.mapAccumr_mapAccumr₂ - theorem Mathlib.Vector.mapAccumr_redundant_pair - theorem Mathlib.Vector.mapAccumr₂_bisim - theorem Mathlib.Vector.mapAccumr₂_bisim_tail - theorem Mathlib.Vector.mapAccumr₂_comm - theorem Mathlib.Vector.mapAccumr₂_eq_map₂ - theorem Mathlib.Vector.mapAccumr₂_eq_map₂_of_constant_state - theorem Mathlib.Vector.mapAccumr₂_eq_map₂_of_unused_state - theorem Mathlib.Vector.mapAccumr₂_flip - theorem Mathlib.Vector.mapAccumr₂_mapAccumr_left - theorem Mathlib.Vector.mapAccumr₂_mapAccumr_right - theorem Mathlib.Vector.mapAccumr₂_mapAccumr₂_left_left - theorem Mathlib.Vector.mapAccumr₂_mapAccumr₂_left_right - theorem Mathlib.Vector.mapAccumr₂_mapAccumr₂_right_left - theorem Mathlib.Vector.mapAccumr₂_mapAccumr₂_right_right - theorem Mathlib.Vector.mapAccumr₂_redundant_pair - theorem Mathlib.Vector.mapAccumr₂_unused_input_left - theorem Mathlib.Vector.mapAccumr₂_unused_input_right - theorem Mathlib.Vector.map_map - theorem Mathlib.Vector.map_mapAccumr - theorem Mathlib.Vector.map_map₂ - theorem Mathlib.Vector.map_pmap - theorem Mathlib.Vector.map₂_comm - theorem Mathlib.Vector.map₂_flip - theorem Mathlib.Vector.map₂_map_left - theorem Mathlib.Vector.map₂_map_right - theorem Mathlib.Vector.pmap_map Modified Mathlib/Data/Vector/Mem.lean + theorem List.Vector.get_mem + theorem List.Vector.head_mem + theorem List.Vector.mem_cons_iff + theorem List.Vector.mem_cons_of_mem + theorem List.Vector.mem_cons_self + theorem List.Vector.mem_iff_get + theorem List.Vector.mem_map_iff + theorem List.Vector.mem_map_succ_iff + theorem List.Vector.mem_of_mem_tail + theorem List.Vector.mem_succ_iff + theorem List.Vector.not_mem_map_zero + theorem List.Vector.not_mem_nil + theorem List.Vector.not_mem_zero - theorem Mathlib.Vector.get_mem - theorem Mathlib.Vector.head_mem - theorem Mathlib.Vector.mem_cons_iff - theorem Mathlib.Vector.mem_cons_of_mem - theorem Mathlib.Vector.mem_cons_self - theorem Mathlib.Vector.mem_iff_get - theorem Mathlib.Vector.mem_map_iff - theorem Mathlib.Vector.mem_map_succ_iff - theorem Mathlib.Vector.mem_of_mem_tail - theorem Mathlib.Vector.mem_succ_iff - theorem Mathlib.Vector.not_mem_map_zero - theorem Mathlib.Vector.not_mem_nil - theorem Mathlib.Vector.not_mem_zero Modified Mathlib/Data/Vector/Snoc.lean + theorem List.Vector.mapAccumr_nil + theorem List.Vector.mapAccumr_snoc + theorem List.Vector.mapAccumr₂_nil + theorem List.Vector.mapAccumr₂_snoc + theorem List.Vector.map_snoc + theorem List.Vector.map₂_snoc + theorem List.Vector.replicate_succ_to_snoc + def List.Vector.revCasesOn + def List.Vector.revInductionOn + def List.Vector.revInductionOn₂ + theorem List.Vector.reverse_cons + theorem List.Vector.reverse_snoc + def List.Vector.snoc + theorem List.Vector.snoc_cons + theorem List.Vector.snoc_nil - theorem Mathlib.Vector.mapAccumr_nil - theorem Mathlib.Vector.mapAccumr_snoc - theorem Mathlib.Vector.mapAccumr₂_nil - theorem Mathlib.Vector.mapAccumr₂_snoc - theorem Mathlib.Vector.map_snoc - theorem Mathlib.Vector.map₂_snoc - theorem Mathlib.Vector.replicate_succ_to_snoc - def Mathlib.Vector.revCasesOn - def Mathlib.Vector.revInductionOn - def Mathlib.Vector.revInductionOn₂ - theorem Mathlib.Vector.reverse_cons - theorem Mathlib.Vector.reverse_snoc - def Mathlib.Vector.snoc - theorem Mathlib.Vector.snoc_cons - theorem Mathlib.Vector.snoc_nil Modified Mathlib/Data/Vector/Zip.lean + theorem List.Vector.prod_mul_prod_eq_prod_zipWith + def List.Vector.zipWith + theorem List.Vector.zipWith_get + theorem List.Vector.zipWith_tail + theorem List.Vector.zipWith_toList - theorem Mathlib.Vector.prod_mul_prod_eq_prod_zipWith - def Mathlib.Vector.zipWith - theorem Mathlib.Vector.zipWith_get - theorem Mathlib.Vector.zipWith_tail - theorem Mathlib.Vector.zipWith_toList Modified Mathlib/GroupTheory/Perm/Cycle/Type.lean +/- def Equiv.Perm.VectorsProdEqOne.equivVector +/- theorem Equiv.Perm.VectorsProdEqOne.mem_iff +/- def Equiv.Perm.VectorsProdEqOne.vectorEquiv +/- def Equiv.Perm.vectorsProdEqOne Modified Mathlib/Logic/Equiv/List.lean Modified Mathlib/Logic/Small/List.lean Modified Mathlib/SetTheory/Cardinal/Basic.lean +/- theorem Cardinal.mk_vector Modified Mathlib/Topology/List.lean +/- theorem Vector.continuous_insertIdx +/- theorem Vector.tendsto_cons Modified MathlibTest/NthRewrite.lean Modified MathlibTest/cc.lean Modified scripts/nolints_prime_decls.txt 2024-12-15 02:03:32 af60d5d feat: add theorems about isLUB and isGLB for Finset.sup and Finset.inf (#19961) feat: add theorems regarding isLUB and isGLB for Finset.sup and Finset.inf theorems were previously missing stating that `Finset.sup` produces a least upper bound and `Finset.inf` produces a greatest lower bound. This commit adds those theorems as well as the corresponding one for `Finset.sup'` and `Finset.inf'`. ESTIMATED CHANGES Modified Mathlib/Data/Finset/Lattice/Fold.lean + theorem Finset.isGLB_inf' + theorem Finset.isGLB_inf + theorem Finset.isLUB_sup' + theorem Finset.isLUB_sup 2024-12-15 01:34:25 7ce82ed feat(SetTheory/ZFC/Basic): generalize universes of `range` (#17016) ESTIMATED CHANGES Modified Mathlib/SetTheory/ZFC/Basic.lean +/- theorem ZFSet.mem_range +/- theorem ZFSet.toSet_range Modified Mathlib/SetTheory/ZFC/Rank.lean +/- theorem ZFSet.rank_range 2024-12-15 00:44:26 161b962 feat(SetTheory/ZFC/Ordinal): Alternate characterizations of ordinals (#17001) We previously defined ordinals as transitive sets, transitive under membership. This PR establishes this definition is equivalent to the following: - An ordinal is a transitive set of transitive sets - An ordinal is a transitive set of ordinals - An ordinal is a transitive set, trichotomous under membership - An ordinal is a transitive set, well-ordered under membership ESTIMATED CHANGES Modified Mathlib/Order/RelClasses.lean + theorem WellFounded.asymmetric₃ + theorem WellFoundedRelation.asymmetric₃ Modified Mathlib/Order/RelIso/Set.lean + theorem Subrel.coe_inclusionEmbedding Modified Mathlib/SetTheory/ZFC/Ordinal.lean + theorem ZFSet.IsOrdinal.mem_of_subset_of_mem + theorem ZFSet.IsOrdinal.mem_or_subset + theorem ZFSet.IsOrdinal.mem_trichotomous + theorem ZFSet.IsOrdinal.not_mem_iff_subset + theorem ZFSet.IsOrdinal.not_subset_iff_mem + theorem ZFSet.IsOrdinal.subset_iff_eq_or_mem + theorem ZFSet.IsOrdinal.subset_total + theorem ZFSet.isOrdinal_empty + theorem ZFSet.isOrdinal_iff_forall_mem_isOrdinal + theorem ZFSet.isOrdinal_iff_forall_mem_isTransitive +/- theorem ZFSet.isOrdinal_iff_isTrans + theorem ZFSet.isOrdinal_iff_isTrichotomous + theorem ZFSet.isOrdinal_iff_isWellOrder + theorem ZFSet.isOrdinal_not_mem_univ 2024-12-15 00:20:11 a395cd0 chore(scripts): update nolints.json (#19971) I am happy to remove some nolints for you! ESTIMATED CHANGES Modified scripts/nolints.json 2024-12-15 00:11:31 86f77db feat(SetTheory/ZFC/Basic): `x ∈ y → ¬ y ⊆ x` (#19967) ESTIMATED CHANGES Modified Mathlib/SetTheory/ZFC/Basic.lean + theorem PSet.not_mem_of_subset + theorem PSet.not_subset_of_mem + theorem ZFSet.not_mem_of_subset + theorem ZFSet.not_subset_of_mem 2024-12-15 00:03:12 ecf9698 chore(SetTheory/ZFC/Rank): clean up file (#18239) This PR does the following: - Make various theorems take explicit arguments (as it's a bit painful to invoke them otherwise) - Replace `lsub f` by `⨆ i, succ (f i)`, in anticipation for the former being deprecated. ESTIMATED CHANGES Modified Mathlib/SetTheory/ZFC/Rank.lean +/- theorem PSet.le_succ_rank_sUnion +/- theorem PSet.rank_insert +/- theorem PSet.rank_pair +/- theorem PSet.rank_powerset +/- theorem PSet.rank_sUnion_le +/- theorem PSet.rank_singleton +/- theorem ZFSet.le_succ_rank_sUnion +/- theorem ZFSet.rank_insert +/- theorem ZFSet.rank_pair +/- theorem ZFSet.rank_powerset +/- theorem ZFSet.rank_range +/- theorem ZFSet.rank_sUnion_le +/- theorem ZFSet.rank_singleton +/- theorem ZFSet.rank_union 2024-12-14 20:37:47 37a149f feat(Algebra/Category/Grp/ForgetCorepresentable, Algebra/Category/MonCat/ForgetCorepresentable): the forgetful functor on the category of monoids is corepresentable (#19964) The forgetful functor on the various categories of monoids (additive/multiplicative/commutative/etc) are representable by the natural numbers. This basically copies the corresponding code for the group categories, and moves two lemmas from `Algebra.Category.Grp.ForgetCorepresentable` to `Algebra.Category.MonCat.ForgetCorepresentable`, to avoid having a `MonCat` file importing a `Grp` file. Will be used to proved that to prove that the forgetful functor on `MonCat` creates all limits. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Category/Grp/ForgetCorepresentable.lean - def AddMonoidHom.precompEquiv - def MonoidHom.precompEquiv Added Mathlib/Algebra/Category/MonCat/ForgetCorepresentable.lean + def AddCommMonCat.coyonedaObjIsoForget + def AddMonCat.coyonedaObjIsoForget + def AddMonoidHom.fromNatEquiv + def AddMonoidHom.fromULiftNatEquiv + def AddMonoidHom.precompEquiv + def CommMonCat.coyonedaObjIsoForget + def MonCat.coyonedaObjIsoForget + def MonoidHom.fromMultiplicativeNatEquiv + def MonoidHom.fromULiftMultiplicativeNatEquiv + def MonoidHom.precompEquiv 2024-12-14 19:04:27 8fe8834 doc(Algebra/Category/Ring/Basic): fix copy-paste errors (#19962) ESTIMATED CHANGES Modified Mathlib/Algebra/Category/Ring/Basic.lean 2024-12-14 17:49:07 1ed7634 refactor(GroupTheory/SpecificGroups/Cyclic): Extract `MulEquiv` from `IsCyclic.card_mulAut` (#19948) This PR extracts the isomorphism `MulAut G ≃* (ZMod (Nat.card G))ˣ` from `IsCyclic.card_mulAut`. ESTIMATED CHANGES Modified Mathlib/GroupTheory/SpecificGroups/Cyclic.lean 2024-12-14 15:50:57 197eebf feat: volume of Euclidean balls in even and odd dimensions (#19949) The formula in terms of the Gamma function is nice, as it is not necessary to split on whether the dimension is even or odd, but for specific calculations (e.g., the volume of a ball in three dimensions), it's nice to have these more specific versions. Written as a consequence of [Zulip](https://leanprover.zulipchat.com/#narrow/channel/113489-new-members/topic/How.20can.20I.20convert.20a.20sphere.20into.20a.20ball.3F). ESTIMATED CHANGES Modified Mathlib/Analysis/SpecialFunctions/Gaussian/GaussianIntegral.lean + theorem Real.Gamma_nat_add_half + theorem Real.Gamma_nat_add_one_add_half Modified Mathlib/MeasureTheory/Measure/Lebesgue/VolumeOfBalls.lean +/- theorem EuclideanSpace.volume_ball + theorem EuclideanSpace.volume_ball_fin_three + theorem EuclideanSpace.volume_ball_fin_two +/- theorem EuclideanSpace.volume_closedBall + theorem EuclideanSpace.volume_closedBall_fin_three + theorem EuclideanSpace.volume_closedBall_fin_two +/- theorem InnerProductSpace.volume_ball + theorem InnerProductSpace.volume_ball_of_dim_even + theorem InnerProductSpace.volume_ball_of_dim_odd +/- theorem InnerProductSpace.volume_closedBall + theorem InnerProductSpace.volume_closedBall_of_dim_even + theorem InnerProductSpace.volume_closedBall_of_dim_odd Modified Mathlib/NumberTheory/NumberField/CanonicalEmbedding/ConvexBody.lean 2024-12-14 15:50:56 e2b3244 chore: make some `induction_on*` compatible with `induction` (#19898) ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Constructions/BorelSpace/Basic.lean +/- theorem MeasurableSet.induction_on_open Modified Mathlib/MeasureTheory/Function/AEEqOfIntegral.lean Modified Mathlib/MeasureTheory/Group/Measure.lean Modified Mathlib/MeasureTheory/MeasurableSpace/Prod.lean Modified Mathlib/MeasureTheory/Measure/GiryMonad.lean Modified Mathlib/MeasureTheory/Measure/MeasureSpaceDef.lean Modified Mathlib/MeasureTheory/Measure/Prod.lean Modified Mathlib/MeasureTheory/Measure/Restrict.lean Modified Mathlib/MeasureTheory/Measure/Typeclasses.lean Modified Mathlib/MeasureTheory/PiSystem.lean +/- theorem MeasurableSpace.induction_on_inter Modified Mathlib/Probability/Independence/Kernel.lean Modified Mathlib/Probability/Kernel/Disintegration/CDFToKernel.lean Modified Mathlib/Probability/Kernel/Disintegration/Density.lean Modified Mathlib/Probability/Kernel/MeasurableIntegral.lean Modified Mathlib/Probability/Martingale/Convergence.lean Modified Mathlib/Topology/Baire/BaireMeasurable.lean + theorem closure_residualEq + theorem coborder_mem_residual 2024-12-14 15:31:12 b8d0621 feat(SetTheory/Cardinal/Cofinality): generalize `cof_preOmega` (#19916) This lemma is also true for `o = 0`, so we can take a `IsSuccPrelimit` argument instead of an `IsLimit` argument. ESTIMATED CHANGES Modified Mathlib/SetTheory/Cardinal/Cofinality.lean +/- theorem Ordinal.cof_preOmega 2024-12-14 14:31:05 79d29f8 chore(discover-lean-pr-testing): only consider branches with "lean-pr-testing" in the name (#19958) ESTIMATED CHANGES Modified .github/workflows/discover-lean-pr-testing.yml 2024-12-14 13:50:28 468b507 feat: drop an assumption in `mfderivWithin_const` (#19936) Followup to #19694 ESTIMATED CHANGES Modified Mathlib/Geometry/Manifold/MFDeriv/Basic.lean - theorem HasMFDerivWithinAt.mfderivWithin + theorem HasMFDerivWithinAt.mfderivWithin_eq_zero Modified Mathlib/Geometry/Manifold/MFDeriv/SpecificFunctions.lean +/- theorem mfderivWithin_const 2024-12-14 12:11:17 b09464f style(Algebra/Category/Grp/Basic and Algebra/Category/MonCat/Basic): universe order in `uliftFunctor` (#19957) Change the order of universes in the `uliftFunctor`s on the group and monoid categories so they will agree with the order used for `CategoryTheory.uliftFunctor` and `SSet.uliftFunctor` (that is, `uliftFunctor.{u,v}` should go from the category of doodads in `Type v` to the category of similar doodads in `Type (max v u)`). ESTIMATED CHANGES Modified Mathlib/Algebra/Category/Grp/Basic.lean +/- def CommGrp.uliftFunctor +/- def Grp.uliftFunctor Modified Mathlib/Algebra/Category/MonCat/Basic.lean +/- def CommMonCat.uliftFunctor +/- def MonCat.uliftFunctor 2024-12-14 10:55:32 d19d840 feat(CategoryTheory/Monoidal): composition of monoidal category adjunctions (#17956) If `C` and `D` are monoidal categories, `F : C ⥤ D` and `G : D ⥤ E` are monoidal functors, an adjunction `F ⊣ G` is monoidal if some additional compatibilities are satisfied. We show in this PR that the property that these compatibilities hold is stable by composition of adjunctions. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Adjunction/Basic.lean + theorem CategoryTheory.Adjunction.ext + theorem CategoryTheory.Equivalence.trans_toAdjunction Modified Mathlib/CategoryTheory/Monoidal/Functor.lean - theorem CategoryTheory.Equivalence.unitIso_hom_app_tensor_comp_inverse_map_δ_functor__ 2024-12-14 10:44:26 ce0a54c perf: replace many instances of 'linarith' with 'omega' (#19951) Replaces 63 usages of `linarith` or `nlinarith` with `omega`. In all of these cases I have observed the new proof to be faster. I found these improvements by running [tryAtEachStep](https://github.com/dwrensha/tryAtEachStep) to try `omega` at every tactic step in mathlib. This is a continuation of the work from #11093. ESTIMATED CHANGES Modified Mathlib/Algebra/Homology/HomotopyCategory/DegreewiseSplit.lean Modified Mathlib/Algebra/Homology/HomotopyCategory/HomComplex.lean Modified Mathlib/Algebra/Homology/HomotopyCategory/HomComplexShift.lean Modified Mathlib/Algebra/Lie/Weights/RootSystem.lean Modified Mathlib/Algebra/Polynomial/Module/Basic.lean Modified Mathlib/AlgebraicTopology/AlternatingFaceMapComplex.lean Modified Mathlib/AlgebraicTopology/DoldKan/Degeneracies.lean Modified Mathlib/AlgebraicTopology/DoldKan/Faces.lean Modified Mathlib/AlgebraicTopology/DoldKan/NCompGamma.lean Modified Mathlib/Analysis/Distribution/FourierSchwartz.lean Modified Mathlib/Analysis/InnerProductSpace/TwoDim.lean Modified Mathlib/Analysis/Normed/Algebra/Norm.lean Modified Mathlib/Analysis/Normed/Ring/SeminormFromConst.lean Modified Mathlib/Analysis/SpecialFunctions/Gamma/BohrMollerup.lean Modified Mathlib/CategoryTheory/Triangulated/HomologicalFunctor.lean Modified Mathlib/Computability/AkraBazzi/GrowsPolynomially.lean Modified Mathlib/Data/Int/CardIntervalMod.lean Modified Mathlib/Data/Real/Pi/Irrational.lean Modified Mathlib/GroupTheory/ArchimedeanDensely.lean Modified Mathlib/GroupTheory/Coxeter/Inversion.lean Modified Mathlib/GroupTheory/Coxeter/Length.lean Modified Mathlib/LinearAlgebra/Eigenspace/Triangularizable.lean Modified Mathlib/MeasureTheory/Measure/LevyProkhorovMetric.lean Modified Mathlib/NumberTheory/AbelSummation.lean Modified Mathlib/NumberTheory/Cyclotomic/Rat.lean Modified Mathlib/NumberTheory/Fermat.lean Modified Mathlib/NumberTheory/Harmonic/ZetaAsymp.lean Modified Mathlib/NumberTheory/Modular.lean Modified Mathlib/NumberTheory/NumberField/Embeddings.lean Modified Mathlib/NumberTheory/PythagoreanTriples.lean Modified Mathlib/RingTheory/DedekindDomain/AdicValuation.lean Modified Mathlib/RingTheory/DedekindDomain/Ideal.lean Modified Mathlib/RingTheory/LaurentSeries.lean Modified Mathlib/RingTheory/PowerSeries/Basic.lean Modified Mathlib/RingTheory/RingHom/Integral.lean 2024-12-14 03:19:30 0662d0b feat: more lemmas about the cocompact filter on topological spaces with a continuous multiplication and zero (#19650) Let `M` be a topological space with a continuous multiplication operation and a zero. We prove the following lemmas. - `tendsto_mul_nhds_zero_prod_of_disjoint_cocompact`: Let `l` be a filter on `M` which is disjoint from the cocompact filter. Then the multiplication map `M × M → M` tends to zero on the filter product `𝓝 0 ×ˢ l`. (We also prove a variant with the order of the product swapped.) - `tendsto_mul_coprod_nhds_zero_inf_of_disjoint_cocompact`: Let `l` be a filter on `M × M` which is disjoint from the cocompact filter. Then the multiplication map `M × M → M` tends to zero on `Filter.coprod (𝓝 0) (𝓝 0) ⊓ l`. - `tendsto_mul_nhds_zero_of_disjoint_cocompact`: Let `l` be a filter on `M × M` which is disjoint from the cocompact filter and less than or equal to `Filter.coprod (𝓝 0) (𝓝 0)`. Then the multiplication map `M × M → M` tends to zero on `l`. - `Tendsto.tendsto_mul_zero_of_disjoint_cocompact`: Let `f : α → M` and `g : α → M` be functions. If `f` tends to zero on a filter `l` and the image of `l` under `g` is disjoint from the cocompact filter on `M`, then `fun (x : α) ↦ f x * g x` also tends to zero on `l`. (We also prove a variant with the order of the product swapped.) These lemmas were suggested by a reviewer comment on #12313: https://github.com/leanprover-community/mathlib4/pull/12313#issuecomment-2124740887. These lemmas are intended to simplify the proof of `tendsto_mul_cocompact_nhds_zero` in #12313, which states that if `f : α → M` and `g : β → M` are continuous functions that both tend to zero on the cocompact filter, then the "outer product" `fun (i : α × β) ↦ (f i.1) * (g i.2)` also tends to zero on the cocompact filter. ESTIMATED CHANGES Modified Mathlib/Topology/Algebra/Monoid.lean + theorem Tendsto.tendsto_mul_zero_of_disjoint_cocompact_left + theorem Tendsto.tendsto_mul_zero_of_disjoint_cocompact_right + theorem tendsto_mul_coprod_nhds_zero_inf_of_disjoint_cocompact + theorem tendsto_mul_nhds_zero_of_disjoint_cocompact + theorem tendsto_mul_nhds_zero_prod_of_disjoint_cocompact + theorem tendsto_mul_prod_nhds_zero_of_disjoint_cocompact 2024-12-13 20:24:57 d1fa45b feat(FieldTheory/Finite/Basic): `(1 + p * a) ^ (p ^ m) ≡ 1 [MOD p ^ m]` (#19881) This PR adds `(1 + p * a) ^ (p ^ m) ≡ 1 [MOD p ^ m]` and deduces that if `n` is a prime power and `a : ZMod n` has order prime to `n`, then either `a = 1` or `a - 1` is a unit. This will be used in the proof that the commutator subgroup of a Z-group is a Hall subgroup. ESTIMATED CHANGES Modified Mathlib/FieldTheory/Finite/Basic.lean + theorem ZMod.eq_one_or_isUnit_sub_one + theorem pow_pow_modEq_one 2024-12-13 19:45:44 73ea8d5 feat(NumberTheory/Padics/RingHoms): add the equivalence between the residue field of Z_p and ZMod p (#19922) We construct the equivalence between the residue field of Z_p and ZMod p in terms of the `IsLocalRing.ResidueField` declaration. ESTIMATED CHANGES Modified Mathlib/NumberTheory/Padics/RingHoms.lean + def PadicInt.residueField 2024-12-13 19:24:18 76cecbb feat(Topology/Algebra/Group/Basic): a quotient map between topological groups is open (#19657) From the FLT project. ESTIMATED CHANGES Modified Mathlib/Topology/Algebra/Group/Basic.lean + theorem MonoidHom.isOpenQuotientMap_of_isQuotientMap 2024-12-13 19:15:06 5aaaf8b feat(CategoryTheory/Enriched): Add eHomCongr and related lemmas (#19932) Recall that when `C` is both a category and a `V`-enriched category, we say it is an `EnrichedOrdinaryCategory` if it comes equipped with an equivalence between morphisms `X ⟶ Y` in `C` and morphisms `𝟙_ V ⟶ (X ⟶[V] Y)` in `V` that preserves identities and composition in `C`. In such a `V`-enriched ordinary category `C`, isomorphisms in `C` induce isomorphisms between hom-objects in `V`. We define this isomorphism, `CategoryTheory.Iso.eHomCongr`, and prove that it behaves nicely with respect to composition in `C`. The lemmas here parallel those for unenriched categories in [`Mathlib/CategoryTheory/HomCongr.lean`](https://github.com/leanprover-community/mathlib4/blob/a1c80a59b69da977f8519230ef96b3b95e31bc1d/Mathlib/CategoryTheory/HomCongr.lean) and those for sorts in [`Mathlib/Logic/Equiv/Defs.lean`](https://github.com/leanprover-community/mathlib4/blob/a1c80a59b69da977f8519230ef96b3b95e31bc1d/Mathlib/Logic/Equiv/Defs.lean#L428) (cf. `Equiv.arrowCongr`). Note, however, that they construct equivalences between `Type`s and `Sort`s, respectively, while in this PR we construct isomorphisms between objects in `V`. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Enriched/HomCongr.lean + def CategoryTheory.Iso.eHomCongr + theorem CategoryTheory.Iso.eHomCongr_comp + theorem CategoryTheory.Iso.eHomCongr_inv_comp + theorem CategoryTheory.Iso.eHomCongr_refl + theorem CategoryTheory.Iso.eHomCongr_symm + theorem CategoryTheory.Iso.eHomCongr_trans Modified Mathlib/CategoryTheory/Enriched/Ordinary.lean + theorem CategoryTheory.eComp_eHomWhiskerLeft + theorem CategoryTheory.eComp_eHomWhiskerRight + theorem CategoryTheory.eHom_whisker_cancel + theorem CategoryTheory.eHom_whisker_cancel_inv 2024-12-13 16:45:31 b0a22ed fix: ensure the clashing `X[i]` notations have the same precedence (#19900) I don't exactly know why core has `:max` for `GetElem`, but not doing so here makes the errors more confusing when both notations are available. This is needed to make ```lean import Mathlib open scoped ProbabilityTheory example (l : List (Fin 3 → ℕ)) (i) (hi : i < l.length) (j : Fin 3) : 0 ≤ l[i] j := sorry ``` be legal. This also cleans up some porting notes which seem to no longer apply, and adds `noWs` to make the notation ambiguity a little less confusing. ESTIMATED CHANGES Modified Mathlib/Probability/Notation.lean Modified Mathlib/Probability/StrongLaw.lean Modified Mathlib/Probability/Variance.lean 2024-12-13 15:22:26 98dbd12 feat(Algebra/Category): categories of modules have the same AB axioms as abelian groups (#19939) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Category/ModuleCat/AB.lean 2024-12-13 13:44:58 ddbd495 refactor(Algebra/Category/Ring): make morphisms a structure (#19757) Following the pattern of #19065, we introduce a `Hom` structure for morphisms in `SemiRingCat`, `CommSemiRingCat`, `RingCat` and `CommRingCat` allowing for many `simp`lified proofs and reducing the need of `erw`. Besides the additional explicitness in form of `ofHom` and `Hom.hom`, the main regression is friction with the `FunLike` instance from the general `ConcreteCategory` API, causing the need for explicit `rw`s between `f.hom x` and `(forget RingCat).map f x`. This regression can be fixed by replacing the general `ConcreteCategory.instFunLike` by a `CoeFun` (or `FunLike`) instance that is part of the `ConcreteCategory` data. ESTIMATED CHANGES Modified Mathlib/Algebra/Category/BialgebraCat/Basic.lean +/- structure BialgebraCat Modified Mathlib/Algebra/Category/BoolRing.lean + structure BoolRing.Hom + theorem BoolRing.hom_ext - def BoolRing.of + structure BoolRing - def BoolRing Modified Mathlib/Algebra/Category/HopfAlgebraCat/Basic.lean +/- structure HopfAlgebraCat Modified Mathlib/Algebra/Category/ModuleCat/Differentials/Basic.lean Modified Mathlib/Algebra/Category/ModuleCat/Differentials/Presheaf.lean Modified Mathlib/Algebra/Category/ModuleCat/Presheaf.lean Modified Mathlib/Algebra/Category/ModuleCat/Presheaf/ChangeOfRings.lean Modified Mathlib/Algebra/Category/ModuleCat/Presheaf/Colimits.lean Modified Mathlib/Algebra/Category/ModuleCat/Presheaf/Limits.lean Modified Mathlib/Algebra/Category/ModuleCat/Presheaf/Monoidal.lean Modified Mathlib/Algebra/Category/ModuleCat/Presheaf/Pushforward.lean Modified Mathlib/Algebra/Category/ModuleCat/Presheaf/Sheafify.lean Modified Mathlib/Algebra/Category/ModuleCat/Sheaf/ChangeOfRings.lean Modified Mathlib/Algebra/Category/Ring/Adjunctions.lean Modified Mathlib/Algebra/Category/Ring/Basic.lean +/- def CategoryTheory.Iso.commRingCatIsoToRingEquiv + theorem CategoryTheory.Iso.commRingCatIsoToRingEquiv_toRingHom - theorem CategoryTheory.Iso.commRingIsoToRingEquiv_apply - theorem CategoryTheory.Iso.commRingIsoToRingEquiv_symm_apply - theorem CategoryTheory.Iso.commRingIsoToRingEquiv_symm_toRingHom - theorem CategoryTheory.Iso.commRingIsoToRingEquiv_toRingHom + def CategoryTheory.Iso.commSemiRingCatIsoToRingEquiv + theorem CategoryTheory.Iso.commSemiRingCatIsoToRingEquiv_toRingHom +/- def CategoryTheory.Iso.ringCatIsoToRingEquiv + theorem CategoryTheory.Iso.ringCatIsoToRingEquiv_toRingHom + def CategoryTheory.Iso.semiRingCatIsoToRingEquiv + theorem CategoryTheory.Iso.semiRingCatIsoToRingEquiv_toRingHom + structure CommRingCat.Hom - theorem CommRingCat.RingEquiv_coe_eq - theorem CommRingCat.coe_comp - theorem CommRingCat.coe_comp_of' - theorem CommRingCat.coe_comp_of - theorem CommRingCat.coe_id - theorem CommRingCat.coe_id_of +/- theorem CommRingCat.coe_of - theorem CommRingCat.coe_ringHom_id +/- theorem CommRingCat.comp_apply - theorem CommRingCat.comp_eq_ring_hom_comp - theorem CommRingCat.ext - theorem CommRingCat.ext_of - theorem CommRingCat.forgetToRingCat_map_apply + theorem CommRingCat.forgetToRingCat_map_hom +/- theorem CommRingCat.forgetToRingCat_obj +/- theorem CommRingCat.forget_map + theorem CommRingCat.forget_map_apply +/- theorem CommRingCat.forget_obj + theorem CommRingCat.hom_comp + theorem CommRingCat.hom_ext + theorem CommRingCat.hom_id + theorem CommRingCat.hom_inv_apply + theorem CommRingCat.hom_ofHom +/- theorem CommRingCat.id_apply + theorem CommRingCat.inv_hom_apply - def CommRingCat.of - def CommRingCat.ofHom - theorem CommRingCat.ofHom_apply' +/- theorem CommRingCat.ofHom_apply + theorem CommRingCat.ofHom_comp + theorem CommRingCat.ofHom_hom + theorem CommRingCat.ofHom_id + theorem CommRingCat.of_carrier - theorem CommRingCat.ringHom_comp_eq_comp + structure CommRingCat + structure CommSemiRingCat.Hom - theorem CommSemiRingCat.RingEquiv_coe_eq - theorem CommSemiRingCat.coe_comp - theorem CommSemiRingCat.coe_comp_of' - theorem CommSemiRingCat.coe_comp_of - theorem CommSemiRingCat.coe_id - theorem CommSemiRingCat.coe_id_of +/- theorem CommSemiRingCat.coe_of - theorem CommSemiRingCat.coe_ringHom_id + theorem CommSemiRingCat.comp_apply - theorem CommSemiRingCat.ext - theorem CommSemiRingCat.ext_of +/- theorem CommSemiRingCat.forget_map + theorem CommSemiRingCat.forget_obj + theorem CommSemiRingCat.hom_comp + theorem CommSemiRingCat.hom_ext + theorem CommSemiRingCat.hom_id + theorem CommSemiRingCat.hom_inv_apply + theorem CommSemiRingCat.hom_ofHom + theorem CommSemiRingCat.id_apply + theorem CommSemiRingCat.inv_hom_apply - def CommSemiRingCat.of - def CommSemiRingCat.ofHom - theorem CommSemiRingCat.ofHom_apply' +/- theorem CommSemiRingCat.ofHom_apply + theorem CommSemiRingCat.ofHom_comp + theorem CommSemiRingCat.ofHom_hom + theorem CommSemiRingCat.ofHom_id + theorem CommSemiRingCat.of_carrier + structure CommSemiRingCat + structure RingCat.Hom - theorem RingCat.RingEquiv_coe_eq - theorem RingCat.coe_comp - theorem RingCat.coe_comp_of' - theorem RingCat.coe_comp_of - theorem RingCat.coe_id - theorem RingCat.coe_id_of +/- theorem RingCat.coe_of - theorem RingCat.coe_ringHom_id + theorem RingCat.comp_apply - theorem RingCat.ext - theorem RingCat.ext_of +/- theorem RingCat.forget_map + theorem RingCat.forget_map_apply + theorem RingCat.forget_obj + theorem RingCat.hom_comp + theorem RingCat.hom_ext + theorem RingCat.hom_id + theorem RingCat.hom_inv_apply + theorem RingCat.hom_ofHom + theorem RingCat.id_apply + theorem RingCat.inv_hom_apply - def RingCat.of - def RingCat.ofHom - theorem RingCat.ofHom_apply' +/- theorem RingCat.ofHom_apply + theorem RingCat.ofHom_comp + theorem RingCat.ofHom_hom + theorem RingCat.ofHom_id + theorem RingCat.of_carrier + structure RingCat +/- def RingEquiv.toCommRingCatIso +/- def RingEquiv.toCommSemiRingCatIso +/- def RingEquiv.toRingCatIso +/- def RingEquiv.toSemiRingCatIso - theorem RingHom.comp_id_commRingCat - theorem RingHom.comp_id_commSemiringCat - theorem RingHom.comp_id_ringCat - theorem RingHom.comp_id_semiringCat - theorem RingHom.id_commRingCat_comp - theorem RingHom.id_commSemiringCat_comp - theorem RingHom.id_ringCat_comp - theorem RingHom.id_semiringCat_comp + structure SemiRingCat.Hom - theorem SemiRingCat.RingEquiv_coe_eq - theorem SemiRingCat.coe_comp - theorem SemiRingCat.coe_comp_of' - theorem SemiRingCat.coe_comp_of - theorem SemiRingCat.coe_id - theorem SemiRingCat.coe_id_of +/- theorem SemiRingCat.coe_of - theorem SemiRingCat.coe_ringHom_id + theorem SemiRingCat.comp_apply - theorem SemiRingCat.ext - theorem SemiRingCat.ext_of +/- theorem SemiRingCat.forget_map + theorem SemiRingCat.forget_obj + theorem SemiRingCat.hom_comp + theorem SemiRingCat.hom_ext + theorem SemiRingCat.hom_id + theorem SemiRingCat.hom_inv_apply + theorem SemiRingCat.hom_ofHom + theorem SemiRingCat.id_apply + theorem SemiRingCat.inv_hom_apply - def SemiRingCat.of - def SemiRingCat.ofHom - theorem SemiRingCat.ofHom_apply' +/- theorem SemiRingCat.ofHom_apply + theorem SemiRingCat.ofHom_comp + theorem SemiRingCat.ofHom_hom + theorem SemiRingCat.ofHom_id + theorem SemiRingCat.of_carrier + structure SemiRingCat - def ringEquivIsoCommRingIso - def ringEquivIsoRingIso Modified Mathlib/Algebra/Category/Ring/Colimits.lean +/- def CommRingCat.Colimits.coconeMorphism +/- def CommRingCat.Colimits.descMorphism +/- def RingCat.Colimits.coconeMorphism +/- def RingCat.Colimits.descMorphism Modified Mathlib/Algebra/Category/Ring/Constructions.lean +/- def CommRingCat.punitIsTerminal Modified Mathlib/Algebra/Category/Ring/Epi.lean Modified Mathlib/Algebra/Category/Ring/FilteredColimits.lean Modified Mathlib/Algebra/Category/Ring/Instances.lean +/- theorem isLocalHom_of_iso Modified Mathlib/Algebra/Category/Ring/Limits.lean Modified Mathlib/Algebra/Category/Ring/LinearAlgebra.lean Modified Mathlib/Algebra/Category/Ring/Under/Basic.lean +/- def CommRingCat.tensorProdIsoPushout Modified Mathlib/Algebra/Category/Ring/Under/Limits.lean +/- theorem CommRingCat.Under.preservesFiniteLimits_of_flat Modified Mathlib/Algebra/Ring/Hom/Defs.lean + theorem RingHom.coe_id Modified Mathlib/AlgebraicGeometry/AffineScheme.lean Modified Mathlib/AlgebraicGeometry/AffineSpace.lean Modified Mathlib/AlgebraicGeometry/FunctionField.lean Modified Mathlib/AlgebraicGeometry/GammaSpecAdjunction.lean Modified Mathlib/AlgebraicGeometry/Modules/Tilde.lean Modified Mathlib/AlgebraicGeometry/Morphisms/Affine.lean Modified Mathlib/AlgebraicGeometry/Morphisms/AffineAnd.lean Modified Mathlib/AlgebraicGeometry/Morphisms/ClosedImmersion.lean Modified Mathlib/AlgebraicGeometry/Morphisms/Constructors.lean Modified Mathlib/AlgebraicGeometry/Morphisms/Finite.lean Modified Mathlib/AlgebraicGeometry/Morphisms/FinitePresentation.lean Modified Mathlib/AlgebraicGeometry/Morphisms/FiniteType.lean Modified Mathlib/AlgebraicGeometry/Morphisms/Integral.lean Modified Mathlib/AlgebraicGeometry/Morphisms/Preimmersion.lean Modified Mathlib/AlgebraicGeometry/Morphisms/QuasiCompact.lean Modified Mathlib/AlgebraicGeometry/Morphisms/QuasiSeparated.lean Modified Mathlib/AlgebraicGeometry/Morphisms/RingHomProperties.lean +/- theorem AlgebraicGeometry.HasRingHomProperty.appLE +/- theorem AlgebraicGeometry.HasRingHomProperty.appTop +/- theorem AlgebraicGeometry.HasRingHomProperty.iff_appLE Modified Mathlib/AlgebraicGeometry/Morphisms/Separated.lean Modified Mathlib/AlgebraicGeometry/Morphisms/Smooth.lean Modified Mathlib/AlgebraicGeometry/Morphisms/SurjectiveOnStalks.lean Modified Mathlib/AlgebraicGeometry/Morphisms/UniversallyClosed.lean Modified Mathlib/AlgebraicGeometry/OpenImmersion.lean + theorem AlgebraicGeometry.Scheme.Hom.appIso_inv_app_apply' Modified Mathlib/AlgebraicGeometry/ProjectiveSpectrum/Basic.lean Modified Mathlib/AlgebraicGeometry/ProjectiveSpectrum/Proper.lean Modified Mathlib/AlgebraicGeometry/ProjectiveSpectrum/Scheme.lean +/- def AlgebraicGeometry.ProjectiveSpectrum.Proj.awayToSection Modified Mathlib/AlgebraicGeometry/ProjectiveSpectrum/StructureSheaf.lean Modified Mathlib/AlgebraicGeometry/Properties.lean Modified Mathlib/AlgebraicGeometry/ResidueField.lean Modified Mathlib/AlgebraicGeometry/Restrict.lean Modified Mathlib/AlgebraicGeometry/Scheme.lean +/- theorem AlgebraicGeometry.Spec.map_base +/- theorem AlgebraicGeometry.Spec.map_base_apply Modified Mathlib/AlgebraicGeometry/Spec.lean + theorem AlgebraicGeometry.localRingHom_comp_stalkIso_apply' Modified Mathlib/AlgebraicGeometry/SpreadingOut.lean Modified Mathlib/AlgebraicGeometry/Stalk.lean Modified Mathlib/AlgebraicGeometry/StructureSheaf.lean Modified Mathlib/AlgebraicGeometry/ValuativeCriterion.lean Modified Mathlib/Geometry/Manifold/Sheaf/Smooth.lean Modified Mathlib/Geometry/RingedSpace/Basic.lean + theorem CommRingCat.germ_res_apply' + theorem CommRingCat.germ_res_apply Modified Mathlib/Geometry/RingedSpace/LocallyRingedSpace.lean +/- def AlgebraicGeometry.LocallyRingedSpace.emptyTo Modified Mathlib/Geometry/RingedSpace/LocallyRingedSpace/HasColimits.lean Modified Mathlib/Geometry/RingedSpace/LocallyRingedSpace/ResidueField.lean Modified Mathlib/Geometry/RingedSpace/OpenImmersion.lean Modified Mathlib/RingTheory/RingHomProperties.lean +/- def RingHom.toMorphismProperty Modified Mathlib/Topology/Category/TopCommRingCat.lean Modified Mathlib/Topology/Sheaves/CommRingCat.lean + theorem CommRingCat.presheaf_restrict_restrict +/- structure TopCat.Presheaf.SubmonoidPresheaf + theorem TopCat.Presheaf.restrictOpenCommRingCat_apply Added MathlibTest/CategoryTheory/ConcreteCategory/Ring.lean 2024-12-13 12:32:53 658f649 chore: move `Polynomial.basisMonomials` to a separate file (#19933) ... and generalize it to `Semiring`. Also add `Polynomial.toFinsuppIsoLinear` which is even true for `Semiring` and is in the very definition of `Polynomial` file. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Polynomial/Basic.lean + def Polynomial.toFinsuppIsoLinear Added Mathlib/Algebra/Polynomial/Basis.lean + def Polynomial.basisMonomials + theorem Polynomial.coe_basisMonomials Modified Mathlib/RingTheory/MvPolynomial/Basic.lean - theorem Polynomial.coe_basisMonomials 2024-12-13 12:00:43 2f5c967 chore: shorten proof of le_iff_sub_nonneg (#19925) ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Ring/Unbundled/Rat.lean 2024-12-13 11:36:22 0310194 feat(Combinatorics/SimpleGraph): Add theorem `two_le_chromaticNumber_of_adj` (#19924) ESTIMATED CHANGES Modified Mathlib/Combinatorics/SimpleGraph/ConcreteColorings.lean + theorem SimpleGraph.two_le_chromaticNumber_of_adj 2024-12-13 10:51:11 df86f59 feat(CategoryTheory/Sites): the property of being a sheaf of types is invariant under natural equivalences (#19921) If `P₁ : Cᵒᵖ ⥤ Type w` and `P₂ : Cᵒᵖ ⥤ Type w'` are naturally equivalent presheaves of types (in possibly different universes), then `P₁` is a sheaf for a Grothendieck topology iff `P₂` is. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Sites/IsSheafFor.lean +/- theorem CategoryTheory.Presieve.isSheafFor_iso + theorem CategoryTheory.Presieve.isSheafFor_of_nat_equiv Modified Mathlib/CategoryTheory/Sites/SheafOfTypes.lean + theorem CategoryTheory.Presieve.isSheaf_iff_of_nat_equiv + theorem CategoryTheory.Presieve.isSheaf_of_nat_equiv 2024-12-13 08:59:38 e42ca30 feat(CategoryTheory/Abelian): AB axioms carry over to functor categories (#19914) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Category/Grp/AB.lean Renamed Mathlib/CategoryTheory/Abelian/GrothendieckAxioms.lean to Mathlib/CategoryTheory/Abelian/GrothendieckAxioms/Basic.lean + theorem CategoryTheory.HasExactColimitsOfShape.domain_of_functor + theorem CategoryTheory.HasExactLimitsOfShape.domain_of_functor Added Mathlib/CategoryTheory/Abelian/GrothendieckAxioms/FunctorCategory.lean Added Mathlib/CategoryTheory/Abelian/GrothendieckAxioms/Sheaf.lean Modified Mathlib/Condensed/Light/AB.lean 2024-12-13 08:43:41 2d8f64e feat: generalize `LinearMap.det_smul` (#19885) ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/Determinant.lean +/- theorem LinearMap.det_smul +/- theorem LinearMap.det_zero Modified Mathlib/LinearAlgebra/FreeModule/Determinant.lean Modified Mathlib/MeasureTheory/Function/Jacobian.lean +/- theorem MeasureTheory.det_one_smulRight 2024-12-13 07:54:01 383b074 feat(CategoryTheory/Localization): liftings of bifunctors (#19894) When a functor `F : C ⥤ E` inverts a class of morphisms `W : MorphismProperty C` and `L : C ⥤ D` is a localization functor for `W`, then `F` lifts as a functor `D ⥤ E`. In this PR, this is generalized to bifunctors (or "functors in two variables") `F : C₁ ⥤ C₂ ⥤ E`, which may be lifted as a functor `D₁ ⥤ D₂ ⥤ E` under similar assumptions. (We shall also need a version of this in three variables.) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/CategoryTheory/Functor/Category.lean + def CategoryTheory.flipFunctor Modified Mathlib/CategoryTheory/Functor/Currying.lean + def CategoryTheory.curryObjProdComp + def CategoryTheory.fullyFaithfulUncurry Added Mathlib/CategoryTheory/Localization/Bifunctor.lean + theorem CategoryTheory.Localization.lift₂NatTrans_app_app + theorem CategoryTheory.Localization.lift₂_iso_hom_app_app₁ + theorem CategoryTheory.Localization.lift₂_iso_hom_app_app₂ + theorem CategoryTheory.Localization.natTrans₂_ext + def CategoryTheory.MorphismProperty.IsInvertedBy₂ Modified Mathlib/CategoryTheory/Localization/Predicate.lean +/- theorem CategoryTheory.Localization.natTrans_ext Modified Mathlib/CategoryTheory/NatIso.lean + theorem CategoryTheory.Iso.hom_inv_id_app_app + theorem CategoryTheory.Iso.inv_hom_id_app_app Modified Mathlib/CategoryTheory/Whiskering.lean + def CategoryTheory.whiskeringLeft₂ 2024-12-13 07:53:59 f69c743 feat: representatives for the `FixedDetMatrices` under SL action (#16160) Define the set of representatives under the action of SL(2, ZZ) and give some reduction lemmas that are useful for later proving that SL(2, ZZ) is generated by S, T. ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/Matrix/FixedDetMatrices.lean + theorem FixedDetMatrices.S_smul_four + theorem FixedDetMatrices.T_S_rel_smul + theorem FixedDetMatrices.ext' + theorem FixedDetMatrices.ext + theorem FixedDetMatrices.induction_on + def FixedDetMatrices.reduce + def FixedDetMatrices.reduceStep + theorem FixedDetMatrices.reduce_mem_reps + theorem FixedDetMatrices.reduce_of_not_pos + theorem FixedDetMatrices.reduce_of_pos + def FixedDetMatrices.reduce_rec + theorem FixedDetMatrices.reduce_reduceStep + def FixedDetMatrices.reps + theorem FixedDetMatrices.reps_entries_le_m' + theorem FixedDetMatrices.reps_zero_empty + theorem FixedDetMatrices.smul_coe + theorem FixedDetMatrices.smul_def - theorem FixedDetMatrix.ext' - theorem FixedDetMatrix.ext - theorem FixedDetMatrix.smul_coe - theorem FixedDetMatrix.smul_def Modified Mathlib/LinearAlgebra/Matrix/SpecialLinearGroup.lean + theorem ModularGroup.T_S_rel 2024-12-13 07:22:38 87843b4 feat(Algebra/Group/Aut): Automorphism groups of `Multiplicative G` and `Additive G` (#19905) This PR adds isomorphisms `MulAut (Multiplicative G) ≃* AddAut G` and `AddAut (Additive G) ≃* MulAut G`. ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Aut.lean + def AddAutAdditive + def MulAutMultiplicative 2024-12-13 00:33:05 a1c80a5 chore: further backports from leanprover/lean4#6123 (#19929) Follow-up from #19852. https://github.com/leanprover/lean4/pull/6123 fixes some inconsistencies in the behaviour of simp, by propagating Simp.Config settings through to Meta.Config. This requires us to be more explicit about unfolding let bindings in many places in Mathlib. There are a few more changes that will only land in `nightly-testing` once https://github.com/leanprover/lean4/pull/6123 is in. ESTIMATED CHANGES Modified Archive/Wiedijk100Theorems/AscendingDescendingSequences.lean Modified Archive/Wiedijk100Theorems/CubingACube.lean Modified Archive/Wiedijk100Theorems/HeronsFormula.lean Modified Archive/Wiedijk100Theorems/SolutionOfCubicQuartic.lean Modified Archive/ZagierTwoSquares.lean Modified Counterexamples/DirectSumIsInternal.lean Modified Counterexamples/Phillips.lean Modified Mathlib/Algebra/CharZero/Quotient.lean Modified Mathlib/Algebra/ContinuedFractions/Computation/Approximations.lean Modified Mathlib/Algebra/ContinuedFractions/Computation/CorrectnessTerminating.lean Modified Mathlib/Algebra/ContinuedFractions/Computation/TerminatesIffRat.lean Modified Mathlib/Algebra/ContinuedFractions/ConvergentsEquiv.lean Modified Mathlib/Algebra/GroupWithZero/WithZero.lean Modified Mathlib/Algebra/Homology/ShortComplex/Exact.lean Modified Mathlib/Algebra/Lie/TraceForm.lean Modified Mathlib/Algebra/Lie/Weights/Basic.lean Modified Mathlib/Algebra/Module/FreeLocus.lean Modified Mathlib/AlgebraicGeometry/Morphisms/RingHomProperties.lean Modified Mathlib/Analysis/Convex/Jensen.lean Modified Mathlib/Analysis/FunctionalSpaces/SobolevInequality.lean Modified Mathlib/Analysis/InnerProductSpace/PiL2.lean Modified Mathlib/Analysis/InnerProductSpace/TwoDim.lean Modified Mathlib/CategoryTheory/Functor/Flat.lean Modified Mathlib/CategoryTheory/Sites/DenseSubsite/SheafEquiv.lean Modified Mathlib/Combinatorics/Colex.lean Modified Mathlib/Combinatorics/Hall/Basic.lean Modified Mathlib/Combinatorics/SimpleGraph/Regularity/Equitabilise.lean Modified Mathlib/Computability/PartrecCode.lean Modified Mathlib/Computability/Primrec.lean Modified Mathlib/Data/ENat/Basic.lean Modified Mathlib/Data/Matrix/Rank.lean Modified Mathlib/Data/Nat/Fib/Zeckendorf.lean Modified Mathlib/Data/Nat/ModEq.lean Modified Mathlib/Data/Nat/Pairing.lean Modified Mathlib/Data/Nat/Prime/Basic.lean Modified Mathlib/Data/Nat/Prime/Defs.lean Modified Mathlib/Data/Nat/Sqrt.lean Modified Mathlib/FieldTheory/PurelyInseparable.lean Modified Mathlib/Geometry/Manifold/ContMDiff/Atlas.lean Modified Mathlib/Geometry/Manifold/ContMDiff/Basic.lean Modified Mathlib/LinearAlgebra/Matrix/Charpoly/Coeff.lean Modified Mathlib/LinearAlgebra/SesquilinearForm.lean Modified Mathlib/MeasureTheory/Constructions/Pi.lean Modified Mathlib/MeasureTheory/Covering/Differentiation.lean Modified Mathlib/MeasureTheory/Integral/VitaliCaratheodory.lean Modified Mathlib/MeasureTheory/Measure/Lebesgue/VolumeOfBalls.lean Modified Mathlib/NumberTheory/Bernoulli.lean Modified Mathlib/NumberTheory/EulerProduct/Basic.lean Modified Mathlib/NumberTheory/WellApproximable.lean Modified Mathlib/Order/Filter/Basic.lean Modified Mathlib/Order/LiminfLimsup.lean Modified Mathlib/Order/Partition/Equipartition.lean Modified Mathlib/Probability/Integration.lean Modified Mathlib/Probability/Process/Stopping.lean Modified Mathlib/Probability/StrongLaw.lean Modified Mathlib/RingTheory/FinitePresentation.lean Modified Mathlib/RingTheory/Flat/Basic.lean Modified Mathlib/RingTheory/Jacobson/Ring.lean Modified Mathlib/RingTheory/Localization/Ideal.lean Modified Mathlib/RingTheory/MvPolynomial/Symmetric/NewtonIdentities.lean Modified Mathlib/RingTheory/Polynomial/Eisenstein/IsIntegral.lean Modified Mathlib/RingTheory/Polynomial/Nilpotent.lean Modified Mathlib/RingTheory/RingHom/Locally.lean Modified Mathlib/RingTheory/Smooth/Kaehler.lean Modified Mathlib/RingTheory/Trace/Quotient.lean Modified Mathlib/RingTheory/Unramified/Field.lean Modified Mathlib/RingTheory/Unramified/Finite.lean Modified Mathlib/Topology/Algebra/InfiniteSum/Real.lean Modified Mathlib/Topology/Category/Stonean/Basic.lean Modified Mathlib/Topology/MetricSpace/GromovHausdorff.lean Modified Mathlib/Topology/MetricSpace/Polish.lean Modified Mathlib/Topology/UniformSpace/CompactConvergence.lean 2024-12-13 00:19:49 efc0961 chore: add badge to open mathlib in Codespaces (#19927) ESTIMATED CHANGES Modified README.md 2024-12-12 22:51:27 d554797 chore(SetTheory/Cardinal/Arithmetic): generalize `card_iSup_Iio_le_sum_card` (#19727) The theorem becomes strictly more general at zero cost by letting the domain of the function be `Iio o` rather than `Ordinal`. ESTIMATED CHANGES Modified Mathlib/SetTheory/Cardinal/Arithmetic.lean +/- theorem Ordinal.card_iSup_Iio_le_card_mul_iSup +/- theorem Ordinal.card_iSup_Iio_le_sum_card 2024-12-12 20:33:26 815cff6 chore: simp `isEmpty_coe_sort` instead of `isEmpty_subtype` (#19918) See [Zulip](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/isEmpty_subtype/near/485723811). ESTIMATED CHANGES Modified Mathlib/Data/Set/Basic.lean Modified Mathlib/Logic/IsEmpty.lean Modified Mathlib/Order/CompleteBooleanAlgebra.lean Modified Mathlib/SetTheory/Cardinal/Finite.lean Modified Mathlib/Topology/Instances/AddCircle.lean 2024-12-12 20:33:25 2cbe43a feat(Algebra/Category): the category of abelian groups satisfies AB4* (#19912) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Category/Grp/AB.lean Deleted Mathlib/Algebra/Category/Grp/AB5.lean Modified Mathlib/CategoryTheory/Limits/HasLimits.lean 2024-12-12 20:12:54 2e4e286 feat(SetTheory/Ordinal/Basic): recursion on well-orders (#19678) To define an ordinal-valued function, it suffices to define its values on well-ordered types. This will be used to redefine the cofinality of an ordinal as the cofinality of a well-order with its order type. ESTIMATED CHANGES Modified Mathlib/SetTheory/Ordinal/Basic.lean + theorem Ordinal.inductionOnWellOrder + def Ordinal.liftOnWellOrder + theorem Ordinal.liftOnWellOrder_type 2024-12-12 18:27:10 3c9302f feat(FaaDiBruno): add `norm_compAlongOrderedFinpartitionL_le` (#19713) ESTIMATED CHANGES Modified Mathlib/Analysis/Calculus/ContDiff/FaaDiBruno.lean +/- theorem OrderedFinpartition.compAlongOrderFinpartition_apply +/- def OrderedFinpartition.compAlongOrderedFinpartition +/- theorem OrderedFinpartition.compAlongOrderedFinpartitionL_apply + theorem OrderedFinpartition.norm_applyOrderedFinpartition_le + theorem OrderedFinpartition.norm_compAlongOrderedFinpartitionL_le + theorem OrderedFinpartition.norm_compAlongOrderedFinpartition_le 2024-12-12 18:27:08 9e90c18 feat(RingTheory/Invariant): Define invariant extensions of rings (#18560) This PR adds a typeclass for `∀ b : B, (∀ g : G, g • b = b) → ∃ a : A, algebraMap A B a = b`, working towards Frobenius elements in #17717. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/RingTheory/Invariant.lean + theorem Algebra.IsInvariant.charpoly_mem_lifts + theorem Algebra.IsInvariant.isIntegral + theorem MulSemiringAction.charpoly_eq + theorem MulSemiringAction.charpoly_eq_prod_smul + theorem MulSemiringAction.eval_charpoly + theorem MulSemiringAction.monic_charpoly + theorem MulSemiringAction.smul_charpoly + theorem MulSemiringAction.smul_coeff_charpoly 2024-12-12 18:16:22 54c954e refactor(fderiv): redefine `fderivWithin` and `fderiv` (#19694) Prefer `0` answer whenever it's possible. This way, `fderivWithin_const` is true without extra assumptions. ESTIMATED CHANGES Modified Mathlib/Analysis/Calculus/ContDiff/Basic.lean +/- theorem iteratedFDerivWithin_const_of_ne +/- theorem iteratedFDerivWithin_succ_const +/- theorem iteratedFDerivWithin_zero_fun Modified Mathlib/Analysis/Calculus/ContDiff/Bounds.lean Modified Mathlib/Analysis/Calculus/Deriv/Basic.lean +/- theorem derivWithin_const Modified Mathlib/Analysis/Calculus/Deriv/Slope.lean Modified Mathlib/Analysis/Calculus/FDeriv/Add.lean Modified Mathlib/Analysis/Calculus/FDeriv/Basic.lean + theorem fderivWithin_const +/- theorem fderivWithin_const_apply 2024-12-12 18:01:33 fdbd2e1 feat(GiryMonad): add `Measurable.measure_of_isPiSystem` (#19908) ... and use it to golf some `Measurable (_ : _ → Measure _)` theorems. ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Measure/GiryMonad.lean + theorem Measurable.measure_of_isPiSystem + theorem Measurable.measure_of_isPiSystem_of_isProbabilityMeasure Modified Mathlib/Probability/Kernel/Disintegration/CDFToKernel.lean - theorem ProbabilityTheory.StieltjesFunction.measurable_measure Modified Mathlib/Probability/Kernel/Disintegration/CondCDF.lean Modified Mathlib/Probability/Kernel/Disintegration/MeasurableStieltjes.lean + theorem StieltjesFunction.measurable_measure 2024-12-12 16:03:40 808600f chore: delete `nonempty_toType_aleph` (#19919) This instance was a byproduct of defining [`MeasurableSpace.generateMeasurableRec`](https://leanprover-community.github.io/mathlib4_docs/Mathlib/MeasureTheory/MeasurableSpace/Card.html#MeasurableSpace.generateMeasurableRec) in terms of the very ugly `(ℵ_ o).ord.toType`. Now that we properly define it in terms of an ordinal, we have no need for this (and frankly we should not encourage it either). ESTIMATED CHANGES Modified Mathlib/SetTheory/Cardinal/Aleph.lean 2024-12-12 14:48:32 407823a chore: update Mathlib dependencies 2024-12-12 (#19917) This PR updates the Mathlib dependencies. ESTIMATED CHANGES Modified lake-manifest.json 2024-12-12 11:32:08 415efa6 feat(AlgebraicTopology): define the simplicial nerve of a simplicial category (#19837) This PR defines the simplicial (/homotopy coherent) nerve of a simplicial category. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/AlgebraicTopology/SimplicialNerve.lean + theorem CategoryTheory.SimplicialThickening.Path.le + structure CategoryTheory.SimplicialThickening.Path + theorem CategoryTheory.SimplicialThickening.SimplicialCategory.assoc + theorem CategoryTheory.SimplicialThickening.SimplicialCategory.comp_id + theorem CategoryTheory.SimplicialThickening.SimplicialCategory.id_comp + def CategoryTheory.SimplicialThickening.compFunctor + theorem CategoryTheory.SimplicialThickening.functor_comp + theorem CategoryTheory.SimplicialThickening.functor_id + theorem CategoryTheory.SimplicialThickening.hom_ext + def CategoryTheory.SimplicialThickening.orderHom + def CategoryTheory.SimplicialThickening Modified Mathlib/AlgebraicTopology/SimplicialSet/Basic.lean + theorem SSet.comp_app Modified Mathlib/AlgebraicTopology/SimplicialSet/Nerve.lean + def CategoryTheory.nerveEquiv + def CategoryTheory.nerveMap Modified Mathlib/CategoryTheory/Enriched/Basic.lean + theorem CategoryTheory.EnrichedFunctor.ext Modified Mathlib/Order/Hom/Basic.lean + def OrderHom.uliftMap Modified docs/references.bib 2024-12-12 09:27:51 07b2399 refactor: make `LinearMap.IsAdjointPair` accept bare functions as arguments (#19679) ESTIMATED CHANGES Modified Mathlib/Algebra/Lie/SkewAdjoint.lean Modified Mathlib/LinearAlgebra/BilinearForm/Properties.lean - theorem LinearMap.BilinForm.IsAdjointPair.add - theorem LinearMap.BilinForm.IsAdjointPair.comp - theorem LinearMap.BilinForm.IsAdjointPair.eq - theorem LinearMap.BilinForm.IsAdjointPair.mul - theorem LinearMap.BilinForm.IsAdjointPair.smul - theorem LinearMap.BilinForm.IsAdjointPair.sub - def LinearMap.BilinForm.IsAdjointPair - def LinearMap.BilinForm.IsPairSelfAdjoint - def LinearMap.BilinForm.IsSelfAdjoint - def LinearMap.BilinForm.IsSkewAdjoint - theorem LinearMap.BilinForm.isAdjointPair_id - theorem LinearMap.BilinForm.isAdjointPair_iff_compLeft_eq_compRight - theorem LinearMap.BilinForm.isAdjointPair_zero - def LinearMap.BilinForm.isPairSelfAdjointSubmodule - theorem LinearMap.BilinForm.isPairSelfAdjoint_equiv - theorem LinearMap.BilinForm.isSkewAdjoint_iff_neg_self_adjoint - theorem LinearMap.BilinForm.mem_isPairSelfAdjointSubmodule - theorem LinearMap.BilinForm.mem_selfAdjointSubmodule - theorem LinearMap.BilinForm.mem_skewAdjointSubmodule - def LinearMap.BilinForm.selfAdjointSubmodule - def LinearMap.BilinForm.skewAdjointSubmodule Modified Mathlib/LinearAlgebra/Matrix/BilinearForm.lean - theorem isAdjointPair_toBilin' - theorem isAdjointPair_toBilin - def pairSelfAdjointMatricesSubmodule' Modified Mathlib/LinearAlgebra/RootSystem/OfBilinear.lean Modified Mathlib/LinearAlgebra/SesquilinearForm.lean +/- theorem LinearEquiv.isAdjointPair_symm_iff +/- theorem LinearMap.IsAdjointPair.add +/- theorem LinearMap.IsAdjointPair.comp +/- def LinearMap.IsAdjointPair +/- def LinearMap.IsPairSelfAdjoint +/- def LinearMap.IsSkewAdjoint +/- theorem LinearMap.isAdjointPair_id + theorem LinearMap.isAdjointPair_one +/- theorem LinearMap.isAdjointPair_zero +/- theorem LinearMap.isOrthogonal_of_forall_apply_same +/- theorem LinearMap.isSkewAdjoint_iff_neg_self_adjoint 2024-12-12 08:11:29 b18b0c8 chore: deprecate upstreamed theorem List.cons_subperm_of_mem (#19904) Deprecates `List.cons_subperm_of_mem`, which was upstreamed to `Batteries` as [`List.cons_subperm_of_not_mem_of_mem`](https://github.com/leanprover-community/batteries/blob/74dffd1a83cdd2969a31c9892b0517e7c6f50668/Batteries/Data/List/Perm.lean#L94) in https://github.com/leanprover-community/batteries/pull/89. The upstream version is in fact *stronger*, as it does not have a `Nodup l₁` parameter. This duplication was found by [`tryAtEachStep`](https://github.com/dwrensha/tryAtEachStep). ESTIMATED CHANGES Modified Mathlib/Data/List/Perm/Subperm.lean +/- theorem List.cons_subperm_of_mem 2024-12-12 05:59:31 67e672d feat(Counterexamples/DiscreteTopologyNonDiscreteUniformity): add a counterexample about discrete uniformity and Cauchy filters (#17417) We construct a non-discrete uniformity on `ℕ` that induces the discrete topology and admits a non-principal Cauchy filter (actually, the identity sequence is Cauchy). ESTIMATED CHANGES Modified Counterexamples.lean Added Counterexamples/DiscreteTopologyNonDiscreteUniformity.lean + theorem HasBasis_counterUniformity + theorem Int.eq_of_pow_sub_le + theorem TopIsDiscrete' + theorem TopIsDiscrete + theorem atTopIsCauchy + theorem ball_eq_singleton + def counterBasis + def counterCoreUniformity + theorem dist_def + def fundamentalEntourage + theorem fundamentalEntourage_ext + theorem idIsCauchy' + theorem idIsCauchy + theorem mem_counterBasis_iff + theorem mem_fundamentalEntourage + theorem mem_range_fundamentalEntourage 2024-12-12 03:19:46 2ec7e0a chore(MeasurableSpace/Prod): rename a lemma (#19901) Also use `Prod.map` in the statement and golf a proof using `aesop`. ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Constructions/BorelSpace/Real.lean Modified Mathlib/MeasureTheory/MeasurableSpace/Prod.lean + theorem MeasurableEmbedding.prodMap - theorem MeasurableEmbedding.prod_mk Modified Mathlib/Probability/Kernel/Composition/Basic.lean Modified Mathlib/Probability/Kernel/Disintegration/StandardBorel.lean 2024-12-12 02:45:55 fbed4ff feat(Rat): `(q₁ + q₂).den ∣ q₁.den.lcm q₂.den` (#19842) add a useful theorem `Rat.add_den_dvd_lcm` that claims that the denominator of the addition of two rational numbers divides the LCM of the denominators of its terms. A stronger result than `Rat.add_den_dvd` that is already present, which still remains useful in many cases. ESTIMATED CHANGES Modified Mathlib/Data/Rat/Lemmas.lean + theorem Rat.add_den_dvd_lcm 2024-12-11 22:38:45 a608095 chore(Topology/PartitionOfUnity): shorten proof using ParitionOfUnity.le_one (#19899) Replaces 11 lines of proof with a single invocation of [`ParitionOfUnity.le_one`](https://github.com/leanprover-community/mathlib4/blob/4411562e4fd2d02aa31e413bc8e948829aa3a62d/Mathlib/Topology/PartitionOfUnity.lean#L171). I observed this (via `set_option trace.profiler true`) to lower the elaboration time of this theorem from 0.20 seconds to 0.08 seconds. This simplification was found by [`tryAtEachStep`](https://github.com/dwrensha/tryAtEachStep). ESTIMATED CHANGES Modified Mathlib/Topology/PartitionOfUnity.lean 2024-12-11 21:35:51 b244eb0 feat: test that an executable with `import Mathlib` can be built and run (#19755) ESTIMATED CHANGES Renamed .github/workflows/lean4checker.yml to .github/workflows/daily.yml Added MathlibTest/MathlibTestExecutable.lean + def main Modified lakefile.lean 2024-12-11 19:01:06 4411562 feat(Condensed): light condensed modules satisfy countable AB4* (#18497) Given sequences `M N : ℕ → C` of objects with morphisms `f n : M n ⟶ N n` for all `n`, we exhibit `∏ M` as the limit of the tower ``` ⋯ → ∏_{n < m + 1} M n × ∏_{n ≥ m + 1} N n → ∏_{n < m} M n × ∏_{n ≥ m} N n → ⋯ → ∏ N ``` Further, the transition maps in this tower are epimorphisms, in the case when each `f n` is an epimorphism and `C` has finite biproducts. We use this to conclude that light condensed modules over a ring R satisfy a countable version of Grothendieck's AB4* axiom. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Limits/Shapes/SequentialProduct.lean + theorem CategoryTheory.Limits.SequentialProduct.cone_π_app + theorem CategoryTheory.Limits.SequentialProduct.cone_π_app_comp_Pi_π_neg + theorem CategoryTheory.Limits.SequentialProduct.cone_π_app_comp_Pi_π_pos + theorem CategoryTheory.Limits.SequentialProduct.functorMap_commSq + theorem CategoryTheory.Limits.SequentialProduct.functorMap_commSq_aux + theorem CategoryTheory.Limits.SequentialProduct.functorMap_commSq_succ + theorem CategoryTheory.Limits.SequentialProduct.functorMap_epi + theorem CategoryTheory.Limits.SequentialProduct.functorObj_eq_neg + theorem CategoryTheory.Limits.SequentialProduct.functorObj_eq_pos Added Mathlib/Condensed/Light/AB.lean Modified Mathlib/Condensed/Light/Epi.lean Modified Mathlib/Condensed/Light/Limits.lean 2024-12-11 18:39:58 7fe7d99 chore(Radical): minor refactoring of lemmas (#19875) ESTIMATED CHANGES Modified Mathlib/RingTheory/Radical.lean + theorem UniqueFactorizationMonoid.radical_mul_of_isUnit_left + theorem UniqueFactorizationMonoid.radical_mul_of_isUnit_right - theorem UniqueFactorizationMonoid.radical_mul_unit + theorem UniqueFactorizationMonoid.radical_of_isUnit - theorem UniqueFactorizationMonoid.radical_unit_eq_one - theorem UniqueFactorizationMonoid.radical_unit_mul 2024-12-11 17:56:48 ca6f586 chore(*): fix `initialize_simps_projections` commands (#19422) With old configs, `@[simps]` generated both `_toFun` and `_apply` lemmas. ESTIMATED CHANGES Modified Mathlib/Algebra/Order/AbsoluteValue.lean Modified Mathlib/Analysis/Calculus/ContDiff/FaaDiBruno.lean Modified Mathlib/Analysis/Normed/Operator/LinearIsometry.lean Modified Mathlib/LinearAlgebra/AffineSpace/ContinuousAffineEquiv.lean Modified Mathlib/MeasureTheory/Measure/Haar/Unique.lean Modified Mathlib/MeasureTheory/Measure/Portmanteau.lean Modified Mathlib/NumberTheory/Padics/MahlerBasis.lean Modified Mathlib/Topology/Algebra/Algebra.lean Modified Mathlib/Topology/Algebra/Module/Basic.lean Modified Mathlib/Topology/ContinuousMap/Bounded/Basic.lean + theorem BoundedContinuousFunction.coe_toContinuousMap - theorem BoundedContinuousFunction.coe_to_continuous_fun Modified Mathlib/Topology/ContinuousMap/Ideals.lean Modified Mathlib/Topology/Homotopy/Basic.lean Modified Mathlib/Topology/MetricSpace/Isometry.lean 2024-12-11 17:41:41 eaab7c8 feat(Probability): absolute continuity of Measure.compProd (#19629) Also rename some lemmas to use dot notation. From the TestingLowerBounds project. ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Decomposition/Lebesgue.lean + theorem MeasureTheory.Measure.AbsolutelyContinuous.withDensity_rnDeriv + theorem MeasureTheory.Measure.absolutelyContinuous_withDensity_rnDeriv_swap Modified Mathlib/MeasureTheory/Measure/MutuallySingular.lean + theorem MeasureTheory.Measure.MutuallySingular.congr_ac + theorem MeasureTheory.Measure.absolutelyContinuous_of_add_of_mutuallySingular Modified Mathlib/Probability/Kernel/Composition/MeasureCompProd.lean + theorem MeasureTheory.Measure.AbsolutelyContinuous.compProd + theorem MeasureTheory.Measure.AbsolutelyContinuous.compProd_left + theorem MeasureTheory.Measure.AbsolutelyContinuous.compProd_of_compProd + theorem MeasureTheory.Measure.AbsolutelyContinuous.compProd_right + theorem MeasureTheory.Measure.AbsolutelyContinuous.mutuallySingular_compProd_iff + theorem MeasureTheory.Measure.MutuallySingular.compProd_of_left - theorem MeasureTheory.Measure.absolutelyContinuous_compProd + theorem MeasureTheory.Measure.absolutelyContinuous_compProd_iff - theorem MeasureTheory.Measure.absolutelyContinuous_compProd_left + theorem MeasureTheory.Measure.absolutelyContinuous_compProd_left_iff + theorem MeasureTheory.Measure.absolutelyContinuous_compProd_of_compProd - theorem MeasureTheory.Measure.absolutelyContinuous_compProd_right + theorem MeasureTheory.Measure.mutuallySingular_compProd_iff + theorem MeasureTheory.Measure.mutuallySingular_compProd_left_iff + theorem MeasureTheory.Measure.mutuallySingular_of_mutuallySingular_compProd 2024-12-11 17:32:05 fbe8831 feat(Probability): parallel composition of kernels (#19482) Parallel composition of kernels: from `κ : Kernel α β` and `η : Kernel γ δ`, define a kernel `κ ∥ₖ η` from `α × γ` to `β × δ`: `(κ ∥ₖ η) (a, c) = (κ a).prod (η c)`. From the TestingLowerBounds project. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Probability/Kernel/Composition/Basic.lean Added Mathlib/Probability/Kernel/Composition/ParallelComp.lean + theorem ProbabilityTheory.Kernel.deterministic_comp_copy + theorem ProbabilityTheory.Kernel.lintegral_parallelComp + def ProbabilityTheory.Kernel.parallelComp + theorem ProbabilityTheory.Kernel.parallelComp_apply + theorem ProbabilityTheory.Kernel.parallelComp_comp_copy + theorem ProbabilityTheory.Kernel.swap_parallelComp 2024-12-11 16:24:23 e52bfb4 chore(RingTheory/Binomial): make a variable implicit, misc cleanups (#19856) This PR changes the `Nat` variable in `nsmul_right_injective` to implicit. Also, the `BinomialRing` instance on `Nat` is changed to use `Nat.multichoose`, since (contrary to my previous impression) that function seems unlikely to be deprecated. ESTIMATED CHANGES Modified Mathlib/NumberTheory/Padics/MahlerBasis.lean Modified Mathlib/RingTheory/Binomial.lean +/- theorem Ring.choose_smul_choose +/- theorem Ring.nsmul_right_injective 2024-12-11 14:33:39 2c66a57 feat(Order/SuccPred/Limit): extra lemmas (#19801) These are trivial variations on already proven results. ESTIMATED CHANGES Modified Mathlib/Order/SuccPred/Limit.lean + theorem Order.IsPredLimit.le_iff_forall_le + theorem Order.IsPredLimit.lt_iff_exists_lt + theorem Order.IsPredLimit.pred_le_iff + theorem Order.IsPredPrelimit.pred_le_iff + theorem Order.IsSuccLimit.le_iff_forall_le + theorem Order.IsSuccLimit.le_succ_iff + theorem Order.IsSuccLimit.lt_iff_exists_lt + theorem Order.IsSuccPrelimit.le_succ_iff 2024-12-11 13:59:18 6e4ad6d chore: golf AlgebraicClosure construction using Isaacs (#19853) Also moves `Polynomial.isRoot_of_isRoot_iff_dvd_derivative_mul` to an earlier file. ESTIMATED CHANGES Modified Mathlib/FieldTheory/IsAlgClosed/AlgebraicClosure.lean - theorem AlgebraicClosure.AdjoinMonic.algebraMap - theorem AlgebraicClosure.AdjoinMonic.exists_root - theorem AlgebraicClosure.AdjoinMonic.isIntegral - def AlgebraicClosure.AdjoinMonic - theorem AlgebraicClosure.Step.isIntegral - theorem AlgebraicClosure.Step.succ - theorem AlgebraicClosure.Step.zero - def AlgebraicClosure.Step - def AlgebraicClosure.algEquivAlgebraicClosureAux - theorem AlgebraicClosure.coe_toStepOfLE - def AlgebraicClosure.stepAux - def AlgebraicClosure.toAdjoinMonic - def AlgebraicClosure.toStepOfLE - theorem AlgebraicClosure.toStepSucc.exists_root - def AlgebraicClosure.toStepSucc - def AlgebraicClosure.toStepZero - theorem AlgebraicClosureAux.exists_ofStep - theorem AlgebraicClosureAux.exists_root - theorem AlgebraicClosureAux.instIsAlgClosed - theorem AlgebraicClosureAux.isAlgClosure - def AlgebraicClosureAux.ofStep - def AlgebraicClosureAux.ofStepHom - theorem AlgebraicClosureAux.ofStep_succ - def AlgebraicClosureAux - theorem Polynomial.isRoot_of_isRoot_iff_dvd_derivative_mul Modified Mathlib/FieldTheory/IsAlgClosed/Basic.lean + theorem Polynomial.isRoot_of_isRoot_iff_dvd_derivative_mul 2024-12-11 13:51:00 d334928 feat(CategoryTheory): construction of sections of functors by transfinite induction (#19330) Given a functor `F : Jᵒᵖ ⥤ Type v` where `J` is a well-ordered type, we introduce a structure `F.WellOrderInductionData` which allows to show that the map `F.sections → F.obj (op ⊥)` is surjective. The data and properties in `F.WellOrderInductionData` consist of a section to the maps `F.obj (op (Order.succ j)) → F.obj (op j)` when `j` is not maximal, and, when `j` is limit, a section to the canonical map from `F.obj (op j)` to the type of compatible families of elements in `F.obj (op i)` for `i < j`. In other words, from `val₀ : F.obj (op ⊥)`, a term `d : F.WellOrderInductionData` allows the construction, by transfinite induction, of a section of `F` which restricts to `val₀`. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/SmallObject/WellOrderInductionData.lean + theorem CategoryTheory.Functor.WellOrderInductionData.Extension.compatibility + def CategoryTheory.Functor.WellOrderInductionData.Extension.limit + def CategoryTheory.Functor.WellOrderInductionData.Extension.ofLE + def CategoryTheory.Functor.WellOrderInductionData.Extension.succ + theorem CategoryTheory.Functor.WellOrderInductionData.Extension.val_injective + def CategoryTheory.Functor.WellOrderInductionData.Extension.zero + structure CategoryTheory.Functor.WellOrderInductionData.Extension + theorem CategoryTheory.Functor.WellOrderInductionData.sectionsMk_val_op_bot + theorem CategoryTheory.Functor.WellOrderInductionData.surjective + structure CategoryTheory.Functor.WellOrderInductionData 2024-12-11 13:42:49 a1c52d2 chore(discover-lean-pr-testing): Zulip post with command for merging lean-testing PRs (#19857) Also make the script for merging the lean-testing PRs a bit more robust: write sed output to a new file, and move that to the original, instead of doing inplace updates with `sed -i` (which doesn't seem to work wel on MacOS). ESTIMATED CHANGES Modified .github/workflows/discover-lean-pr-testing.yml Modified scripts/merge-lean-testing-pr.sh 2024-12-11 13:07:18 df8b92a feat: measurability of addition and multiplication on `EReal` (#17097) Add a section about `EReal` in the file `MeasureTheory.Constructions.BorelSpace.Real.lean` with the instances for the measurability of the sum and multiplication between two extended real numbers as well as some lemmas that are needed for the proofs. ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Constructions/BorelSpace/Real.lean + theorem EReal.measurableEmbedding_coe + theorem EReal.measurable_of_real_prod + theorem EReal.measurable_of_real_real Modified Mathlib/Topology/Instances/EReal.lean + theorem EReal.lowerSemicontinuous_add 2024-12-11 09:57:13 69471a4 chore(Algebra/Lie/Quotient): remove unused variable 'I' (#19864) Removes an unused `variable {I}` declaration which causes the `I` to sometimes show up as a hypothesis whose type is a metavariable. When this file was originally ported in #4822, the variable `I` was declared to have type `LieIdeal R L` and then the lower-down `variable {N I}` declaration served to modify the implicitness of that existing variable: ```lean ... variable (N N' : LieSubmodule R L M) (I J : LieIdeal R L) ... namespace Quotient variable {N I} ... ``` However, in #15538, the initial (typed) declaration of `I` was removed. This had the effect of causing an `I` to appear with a metavarable in some contexts, e.g. the proof of `lieQuotientLieRing.leibniz_lie`: ```lean I : ?m.48970 ``` I noticed this problem when I tried running `exact?` in the proof of `lieQuotientLieRing.leibniz_lie`; doing so returned a nonsensical result. ESTIMATED CHANGES Modified Mathlib/Algebra/Lie/Quotient.lean 2024-12-11 09:46:55 868f349 chore(Analysis/SpecialFunctions/Integrals): simplify proof of intervalIntegrable_cpow (#19877) * `have : Ioc c 0 = Ioo c 0 ∪ {(0 : ℝ)} ` is directly proved by `(Ioo_union_right hc).symm` * That shorter proof can then be inlined at its use in the `simp` in the next line. This simplification was found by [`tryAtEachStep`](https://github.com/dwrensha/tryAtEachStep). ESTIMATED CHANGES Modified Mathlib/Analysis/SpecialFunctions/Integrals.lean 2024-12-11 08:26:31 d840f50 chore(NumberTheory/ModularForms/JacobiTheta): simplify proof of isBigO_atTop_F_int_zero_sub (#19879) * `have ha' : (a : UnitAddCircle) = 0 ↔ a = 0` can be directly proved by `AddCircle.coe_eq_zero_iff_of_mem_Ico ha`. * That makes the proof small enough that it makes sense to inline it at its use in `simp_rw`. This simplification was found by [`tryAtEachStep`](https://github.com/dwrensha/tryAtEachStep). ESTIMATED CHANGES Modified Mathlib/NumberTheory/ModularForms/JacobiTheta/Bounds.lean 2024-12-11 08:26:30 f7bc890 feat(Topology/ContinuousMap): "ContinuousMap.evalCLM" without compactness (#19876) `ContinuousMap.evalCLM` is the evaluation-at-a-point functional on continuous-function spaces, a useful gadget to have. This is currently only defined when the domain is compact (presumably for historical reasons). This PR moves it around slightly so it is now available for any domain space. ESTIMATED CHANGES Modified Mathlib/Topology/ContinuousMap/Algebra.lean + def ContinuousMap.evalCLM Modified Mathlib/Topology/ContinuousMap/Bounded/Basic.lean - theorem BoundedContinuousFunction.evalCLM_apply Modified Mathlib/Topology/ContinuousMap/Compact.lean - def ContinuousMap.evalCLM Modified Mathlib/Topology/ContinuousMap/ContinuousMapZero.lean +/- def ContinuousMapZero.evalCLM +/- theorem ContinuousMapZero.evalCLM_apply 2024-12-11 08:26:29 afdb949 chore: renaming all `Column` to `Col` (#19825) * `Matrix.fromColumns` becomes `Matrix.fromCols` * `Matrix.toColumns` becomes `Matrix.toCols` * `Matrix.updateColumn` becomes `Matrix.updateCol` Moves: - `*fromColumns*` -> `*fromCols*` - `*toColumns*` -> `*toCols*` - `*updateColumn*` -> `*updateCol*` Discussion: https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Matrix.2EfromRows.20and.20Matrix.2EfromColumns ESTIMATED CHANGES Modified Mathlib/Data/Matrix/ColumnRowPartitioned.lean + theorem Matrix.conjTranspose_fromCols_eq_fromRows_conjTranspose - theorem Matrix.conjTranspose_fromColumns_eq_fromRows_conjTranspose + theorem Matrix.conjTranspose_fromRows_eq_fromCols_conjTranspose - theorem Matrix.conjTranspose_fromRows_eq_fromColumns_conjTranspose + theorem Matrix.equiv_compl_fromCols_mul_fromRows_eq_one_comm - theorem Matrix.equiv_compl_fromColumns_mul_fromRows_eq_one_comm + def Matrix.fromCols + theorem Matrix.fromCols_apply_inl + theorem Matrix.fromCols_apply_inr + theorem Matrix.fromCols_ext_iff + theorem Matrix.fromCols_fromRows_eq_fromBlocks + theorem Matrix.fromCols_inj + theorem Matrix.fromCols_mulVec_sum_elim + theorem Matrix.fromCols_mul_fromBlocks + theorem Matrix.fromCols_mul_fromRows + theorem Matrix.fromCols_mul_fromRows_eq_one_comm + theorem Matrix.fromCols_neg + theorem Matrix.fromCols_toCols + theorem Matrix.fromCols_zero - def Matrix.fromColumns - theorem Matrix.fromColumns_apply_inl - theorem Matrix.fromColumns_apply_inr - theorem Matrix.fromColumns_ext_iff - theorem Matrix.fromColumns_fromRows_eq_fromBlocks - theorem Matrix.fromColumns_inj - theorem Matrix.fromColumns_mulVec_sum_elim - theorem Matrix.fromColumns_mul_fromBlocks - theorem Matrix.fromColumns_mul_fromRows - theorem Matrix.fromColumns_mul_fromRows_eq_one_comm - theorem Matrix.fromColumns_neg - theorem Matrix.fromColumns_toColumns - theorem Matrix.fromColumns_zero + theorem Matrix.fromRows_fromCols_eq_fromBlocks - theorem Matrix.fromRows_fromColumn_eq_fromBlocks + theorem Matrix.fromRows_mul_fromCols - theorem Matrix.fromRows_mul_fromColumns + theorem Matrix.mul_fromCols - theorem Matrix.mul_fromColumns + def Matrix.toCols₁ + theorem Matrix.toCols₁_apply + theorem Matrix.toCols₁_fromCols + def Matrix.toCols₂ + theorem Matrix.toCols₂_apply + theorem Matrix.toCols₂_fromCols - def Matrix.toColumns₁ - theorem Matrix.toColumns₁_apply - theorem Matrix.toColumns₁_fromColumns - def Matrix.toColumns₂ - theorem Matrix.toColumns₂_apply - theorem Matrix.toColumns₂_fromColumns + theorem Matrix.transpose_fromCols - theorem Matrix.transpose_fromColumns + theorem Matrix.vecMul_fromCols - theorem Matrix.vecMul_fromColumns Modified Mathlib/Data/Matrix/Notation.lean + theorem Matrix.submatrix_updateCol_succAbove - theorem Matrix.submatrix_updateColumn_succAbove Modified Mathlib/Data/Matrix/RowCol.lean + theorem Matrix.diagonal_updateCol_single - theorem Matrix.diagonal_updateColumn_single + theorem Matrix.map_updateCol - theorem Matrix.map_updateColumn + theorem Matrix.reindex_updateCol - theorem Matrix.reindex_updateColumn + theorem Matrix.submatrix_updateCol_equiv - theorem Matrix.submatrix_updateColumn_equiv + def Matrix.updateCol + theorem Matrix.updateCol_apply + theorem Matrix.updateCol_conjTranspose + theorem Matrix.updateCol_eq_self + theorem Matrix.updateCol_ne + theorem Matrix.updateCol_reindex + theorem Matrix.updateCol_self + theorem Matrix.updateCol_submatrix_equiv + theorem Matrix.updateCol_subsingleton + theorem Matrix.updateCol_transpose - def Matrix.updateColumn - theorem Matrix.updateColumn_apply - theorem Matrix.updateColumn_conjTranspose - theorem Matrix.updateColumn_eq_self - theorem Matrix.updateColumn_ne - theorem Matrix.updateColumn_reindex - theorem Matrix.updateColumn_self - theorem Matrix.updateColumn_submatrix_equiv - theorem Matrix.updateColumn_subsingleton - theorem Matrix.updateColumn_transpose +/- theorem Matrix.updateRow_transpose Modified Mathlib/LinearAlgebra/Determinant.lean Modified Mathlib/LinearAlgebra/Matrix/Adjugate.lean +/- theorem Matrix.cramer_apply Modified Mathlib/LinearAlgebra/Matrix/Basis.lean Modified Mathlib/LinearAlgebra/Matrix/Determinant/Basic.lean + theorem Matrix.det_updateCol_add + theorem Matrix.det_updateCol_add_self + theorem Matrix.det_updateCol_add_smul_self + theorem Matrix.det_updateCol_eq_zero + theorem Matrix.det_updateCol_smul + theorem Matrix.det_updateCol_smul_left + theorem Matrix.det_updateCol_sum - theorem Matrix.det_updateColumn_add - theorem Matrix.det_updateColumn_add_self - theorem Matrix.det_updateColumn_add_smul_self - theorem Matrix.det_updateColumn_eq_zero - theorem Matrix.det_updateColumn_smul - theorem Matrix.det_updateColumn_smul_left - theorem Matrix.det_updateColumn_sum Modified Mathlib/LinearAlgebra/Matrix/Determinant/TotallyUnimodular.lean + theorem Matrix.fromCols_col0_isTotallyUnimodular_iff + theorem Matrix.fromCols_one_isTotallyUnimodular_iff - theorem Matrix.fromColumns_col0_isTotallyUnimodular_iff - theorem Matrix.fromColumns_one_isTotallyUnimodular_iff + theorem Matrix.one_fromCols_isTotallyUnimodular_iff - theorem Matrix.one_fromColumns_isTotallyUnimodular_iff Modified Mathlib/LinearAlgebra/Matrix/Permanent.lean + theorem Matrix.permanent_updateCol_smul - theorem Matrix.permanent_updateColumn_smul Modified Mathlib/RingTheory/DedekindDomain/Different.lean Modified Mathlib/RingTheory/Discriminant.lean Modified Mathlib/Topology/Instances/Matrix.lean + theorem Continuous.matrix_updateCol - theorem Continuous.matrix_updateColumn Modified scripts/nolints_prime_decls.txt 2024-12-11 08:06:25 5f72b2e docs(LinearAlgebra/InvariantBasisNumber): first letter of a sentence (#19861) ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/InvariantBasisNumber.lean 2024-12-11 07:05:04 097f9d2 chore(SetTheory/Ordinal/Arithmetic): move `add_mul_limit` (#19805) This has nothing to do with `ω` and can be moved much earlier in the file. We also private the auxiliary lemma `add_mul_limit_aux`. ESTIMATED CHANGES Modified Mathlib/SetTheory/Ordinal/Arithmetic.lean - theorem Ordinal.add_mul_limit_aux 2024-12-11 06:10:06 9eb9253 feat(LinearAlgebra/Matrix): Prove `A * B = 1 ↔ B * A = 1` for square matrices over a commutative semiring (#19581) This PR generalizes `Matrix.mul_eq_one_comm` from `CommRing` to `CommSemiring`. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/BigOperators/Group/Finset.lean + theorem IsUnit.prod_iff + theorem IsUnit.prod_univ_iff Modified Mathlib/Algebra/Module/End.lean + theorem IsAddUnit.smul_left + theorem IsAddUnit.smul_right +/- theorem smulAddHom_apply Modified Mathlib/Data/Matrix/ColumnRowPartitioned.lean Modified Mathlib/Data/Matrix/Defs.lean + theorem Matrix.isAddUnit_iff Modified Mathlib/GroupTheory/Perm/Sign.lean + theorem Equiv.Perm.mem_ofSign + def Equiv.Perm.ofSign + theorem Equiv.Perm.ofSign_disjUnion + theorem Equiv.Perm.ofSign_disjoint Modified Mathlib/LinearAlgebra/Matrix/Determinant/Basic.lean + theorem Matrix.det_eq_detp_sub_detp Modified Mathlib/LinearAlgebra/Matrix/NonsingularInverse.lean - theorem Matrix.exists_left_inverse_iff_isUnit - theorem Matrix.exists_right_inverse_iff_isUnit - def Matrix.invertibleOfLeftInverse - def Matrix.invertibleOfRightInverse - theorem Matrix.isUnit_of_left_inverse - theorem Matrix.isUnit_of_right_inverse - theorem Matrix.mul_eq_one_comm - theorem Matrix.mul_eq_one_comm_of_equiv Added Mathlib/LinearAlgebra/Matrix/SemiringInverse.lean + def Matrix.adjp + theorem Matrix.adjp_apply + def Matrix.detp + theorem Matrix.detp_mul + theorem Matrix.detp_neg_one_one + theorem Matrix.detp_one_one + theorem Matrix.detp_smul_add_adjp + theorem Matrix.detp_smul_adjp + theorem Matrix.exists_left_inverse_iff_isUnit + theorem Matrix.exists_right_inverse_iff_isUnit + def Matrix.invertibleOfLeftInverse + def Matrix.invertibleOfRightInverse + theorem Matrix.isAddUnit_detp_mul_detp + theorem Matrix.isAddUnit_detp_smul_mul_adjp + theorem Matrix.isAddUnit_mul + theorem Matrix.isUnit_of_left_inverse + theorem Matrix.isUnit_of_right_inverse + theorem Matrix.mul_adjp_add_detp + theorem Matrix.mul_adjp_apply_eq + theorem Matrix.mul_adjp_apply_ne + theorem Matrix.mul_eq_one_comm + theorem Matrix.mul_eq_one_comm_of_equiv 2024-12-11 04:56:18 013d296 chore(SetTheory/Ordinal/Arithmetic): prove `n + ω = ω` earlier (#19803) We use this to simplify the previous proof for `one_add_omega0`. ESTIMATED CHANGES Modified Mathlib/SetTheory/Ordinal/Arithmetic.lean + theorem Ordinal.add_omega0 + theorem Ordinal.natCast_add_of_omega0_le + theorem Ordinal.natCast_add_omega0 +/- theorem Ordinal.one_add_of_omega0_le +/- theorem Ordinal.one_add_omega0 Modified Mathlib/SetTheory/Ordinal/Principal.lean - theorem Ordinal.add_omega0 - theorem Ordinal.natCast_add_omega0 2024-12-11 04:11:28 43404d7 chore: used named arguments instead of @DecidableRel (#19850) ESTIMATED CHANGES Modified Mathlib/Algebra/Order/GroupWithZero/Unbundled.lean Modified Mathlib/Algebra/Order/Ring/Defs.lean Modified Mathlib/Combinatorics/Colex.lean Modified Mathlib/Combinatorics/Enumerative/IncidenceAlgebra.lean +/- theorem IncidenceAlgebra.prod_mul_prod' +/- theorem IncidenceAlgebra.zeta_mul_kappa +/- theorem IncidenceAlgebra.zeta_mul_mu +/- theorem IncidenceAlgebra.zeta_mul_zeta +/- theorem IncidenceAlgebra.zeta_prod_zeta Modified Mathlib/Combinatorics/SetFamily/AhlswedeZhang.lean +/- theorem Finset.map_truncatedSup Modified Mathlib/Combinatorics/SetFamily/KruskalKatona.lean Modified Mathlib/Data/DFinsupp/Lex.lean Modified Mathlib/Data/Finset/Defs.lean Modified Mathlib/Data/Finset/Sups.lean +/- theorem Finset.filter_infs_le +/- theorem Finset.filter_sups_le Modified Mathlib/Data/List/MinMax.lean Modified Mathlib/Data/Num/Basic.lean Modified Mathlib/Data/Ordmap/Ordnode.lean +/- def Ordnode.image Modified Mathlib/Data/Ordmap/Ordset.lean +/- theorem Ordnode.Valid'.erase_aux +/- theorem Ordnode.dual_insert +/- theorem Ordnode.erase.valid +/- theorem Ordnode.insert'.valid +/- theorem Ordnode.insert'_eq_insertWith +/- theorem Ordnode.insert.valid +/- theorem Ordnode.insertWith.valid +/- theorem Ordnode.insertWith.valid_aux +/- theorem Ordnode.insert_eq_insertWith +/- theorem Ordnode.pos_size_of_mem +/- theorem Ordnode.size_erase_of_mem +/- def Ordset.erase Modified Mathlib/Data/String/Basic.lean Modified Mathlib/Logic/Encodable/Basic.lean Modified Mathlib/NumberTheory/Zsqrtd/Basic.lean Modified Mathlib/Order/Antisymmetrization.lean Modified Mathlib/Order/Basic.lean Modified Mathlib/Order/Chain.lean Modified Mathlib/Order/Compare.lean +/- def cmpLE +/- theorem cmpLE_eq_cmp +/- theorem cmpLE_ofDual +/- theorem cmpLE_swap +/- theorem cmpLE_toDual +/- theorem cmp_ofDual +/- theorem cmp_swap +/- theorem cmp_toDual Modified Mathlib/Order/Defs/PartialOrder.lean +/- def decidableEqOfDecidableLE +/- def decidableLTOfDecidableLE Modified Mathlib/Order/Interval/Basic.lean +/- theorem Interval.coe_iInf +/- theorem Interval.coe_iInf₂ +/- theorem Interval.coe_sInf Modified Mathlib/Order/Interval/Finset/Box.lean Modified Mathlib/Order/Interval/Finset/Defs.lean Modified Mathlib/Order/SuccPred/Archimedean.lean Modified Mathlib/Order/WithBot.lean Modified MathlibTest/instance_diamonds.lean 2024-12-11 00:00:34 7bdc7fa chore: fix 'lake exe pole' and benchmark summary bot (#19878) ESTIMATED CHANGES Modified .github/workflows/nightly_detect_failure.yml Modified LongestPole/Main.lean Modified LongestPole/SpeedCenterJson.lean Modified LongestPole/Unused.lean Modified scripts/bench_summary.lean 2024-12-10 21:48:39 75368be chore(Data/Finsupp): split off basic scalar multiplication (#19205) In the comments of #19095 we discussed that `MonoidAlgebra` and `Polynomial` need scalar multiplication by `Nat` or `Int` early on, to define a `Semiring` or `Ring` structure. We can define a generic `SMulWithZero` instance and then specialize it to get `nsmul` and `zsmul`, but only if that instance is available early on for `Finsupp`. So: split this off from `Finsupp/Basic.lean` into a higher-up file. This PR used Damiano's `upstreamableDecls` linter to find out which results could move together with the definitions for free. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Data/Finsupp/Basic.lean - theorem Finsupp.coe_smul - theorem Finsupp.mapRange_smul - theorem Finsupp.smul_apply - theorem Finsupp.smul_single - theorem Finsupp.support_smul Added Mathlib/Data/Finsupp/SMulWithZero.lean + theorem Finsupp.coe_smul + theorem Finsupp.mapRange_smul + theorem Finsupp.smul_apply + theorem Finsupp.smul_single + theorem Finsupp.support_smul 2024-12-10 21:12:45 36ecbb9 feat: infimum of filter coproduct and filter product (#19716) We prove that if `f₁, f₂` are filters on a type α and `g₁, g₂` are filters on a type β, then `f₁.coprod g₁ ⊓ f₂ ×ˢ g₂ ≤ f₁ ×ˢ g₂ ⊔ f₂ ×ˢ g₁`. ESTIMATED CHANGES Modified Mathlib/Order/Filter/Prod.lean + theorem Filter.coprod_inf_prod_le 2024-12-10 17:35:33 16956ef feat(Combinatorics/Additive): characterise sets with no doubling (#19513) They are exactly the empty set and cosets of a subgroup. From LeanCamCombi ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Group/Pointwise/Finset/Basic.lean + theorem Finset.smul_finset_subset_mul Added Mathlib/Combinatorics/Additive/VerySmallDoubling.lean + theorem Finset.exists_subgroup_of_no_doubling 2024-12-10 17:35:31 7817ae8 feat: relation of covering by cosets (#19509) Define a predicate for a set to be covered by at most `K` cosets of another set. This is a fundamental relation to study in additive combinatorics. From GrowthInGroups (LeanCamCombi) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Combinatorics/Additive/CovBySMul.lean + theorem CovBySMul.mono + theorem CovBySMul.nonneg + theorem CovBySMul.of_subset + theorem CovBySMul.rfl + theorem CovBySMul.subset + theorem CovBySMul.subset_left + theorem CovBySMul.subset_right + theorem CovBySMul.trans + def CovBySMul + theorem covBySMul_zero 2024-12-10 17:35:30 57bf401 feat: lower bound on the Ruzsa-Szemerédi problem (#19000) From LeanCamCombi ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Combinatorics/Extremal/RuzsaSzemeredi.lean + theorem SimpleGraph.LocallyLinear.le_ruzsaSzemerediNumber + theorem addRothNumber_le_ruzsaSzemerediNumber + theorem rothNumberNat_le_ruzsaSzemerediNumberNat' + theorem rothNumberNat_le_ruzsaSzemerediNumberNat + theorem ruzsaSzemerediNumberNat_asymptotic_lower_bound + theorem ruzsaSzemerediNumberNat_card + theorem ruzsaSzemerediNumberNat_le + theorem ruzsaSzemerediNumberNat_lower_bound + theorem ruzsaSzemerediNumberNat_mono + theorem ruzsaSzemerediNumberNat_one + theorem ruzsaSzemerediNumberNat_two + theorem ruzsaSzemerediNumberNat_zero + theorem ruzsaSzemerediNumber_congr + theorem ruzsaSzemerediNumber_le + theorem ruzsaSzemerediNumber_mono + theorem ruzsaSzemerediNumber_spec 2024-12-10 17:03:00 c3b16e0 chore: make `Nat.cast_smul_eq_nsmul`/`Int.cast_smul_eq_zsmul` `norm_cast` lemmas (#19869) ESTIMATED CHANGES Modified Mathlib/Algebra/Module/End.lean Modified Mathlib/Algebra/Module/NatInt.lean 2024-12-10 17:02:58 a38f191 feat: sup-closed sets are closed under finite suprema (#18990) From GrowthInGroups ESTIMATED CHANGES Modified Mathlib/Order/SupClosed.lean + theorem InfClosed.biInf_mem + theorem InfClosed.biInf_mem_of_nonempty + theorem InfClosed.iInf_mem + theorem InfClosed.iInf_mem_of_nonempty + theorem InfClosed.sInf_mem + theorem InfClosed.sInf_mem_of_nonempty + theorem SupClosed.biSup_mem + theorem SupClosed.biSup_mem_of_nonempty + theorem SupClosed.iSup_mem + theorem SupClosed.iSup_mem_of_nonempty + theorem SupClosed.sSup_mem + theorem SupClosed.sSup_mem_of_nonempty 2024-12-10 16:45:08 02c5776 feat(Analysis/Distribution): generalize linearity of SchwartzMap.bilinLeftCLM (#19823) Generalize SchwartzMap.bilinLeftCLM from ℝ-linearity to 𝕜-linearity with `[NontriviallyNormedField 𝕜]`. Add ContinuousLinearMap.bilinRestrictScalars for convenience. ESTIMATED CHANGES Modified Mathlib/Analysis/Distribution/SchwartzSpace.lean +/- def SchwartzMap.bilinLeftCLM Modified Mathlib/Analysis/NormedSpace/OperatorNorm/Bilinear.lean + def ContinuousLinearMap.bilinearRestrictScalars + theorem ContinuousLinearMap.bilinearRestrictScalars_apply_apply + theorem ContinuousLinearMap.bilinearRestrictScalars_eq_restrictScalarsL_comp_restrictScalars + theorem ContinuousLinearMap.bilinearRestrictScalars_eq_restrictScalars_restrictScalarsL_comp + theorem ContinuousLinearMap.norm_bilinearRestrictScalars 2024-12-10 16:18:09 28a2a67 feat: isomorphism between the non-divisors and units of a group with zero (#19868) From FLT ESTIMATED CHANGES Modified Mathlib/Algebra/GroupWithZero/NonZeroDivisors.lean +/- theorem isUnit_of_mem_nonZeroDivisors +/- theorem mem_nonZeroDivisors_iff_ne_zero 2024-12-10 16:18:08 b83e52e feat(SetTheory/Ordinal/Arithmetic): `a + b ≤ c ↔ ∀ d < b, a + d < c` (#19804) ESTIMATED CHANGES Modified Mathlib/SetTheory/Ordinal/Arithmetic.lean + theorem Ordinal.add_le_iff - theorem Ordinal.add_le_of_limit 2024-12-10 15:41:14 d70fcf4 feat: `Units.map` of `Units.mk` (#19867) From FLT ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Units/Hom.lean + theorem Units.map_mk 2024-12-10 15:41:13 afe7fb4 feat: for `s` a subgroup, `0 • s = ⊥` (#19866) From FLT ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Subgroup/Pointwise.lean 2024-12-10 15:20:23 14375b9 refactor/fix: don't use RingHom.toAlgebra in Ideal.quotientAlgebra (#19847) ESTIMATED CHANGES Modified Mathlib/NumberTheory/RamificationInertia/Basic.lean +/- def Ideal.Quotient.algebraQuotientOfRamificationIdxNeZero +/- theorem Ideal.inertiaDeg_algebraMap +/- theorem Ideal.inertiaDeg_comap_eq +/- theorem Ideal.inertiaDeg_map_eq +/- theorem Ideal.inertiaDeg_pos - theorem Ideal.inertiaDeg_tower Modified Mathlib/RingTheory/Ideal/Over.lean - def Ideal.Quotient.algebraQuotientOfLEComap Modified Mathlib/RingTheory/Ideal/Quotient/Operations.lean 2024-12-10 14:59:53 b7e2717 chore: rename `forall_image2_iff` to `forall_mem_image2` (#19401) This matches the existing `image` lemmas. Also add the missing `exists` lemma. From GrowthInGroups (LeanCamCombi) ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Group/Pointwise/Bounds.lean Modified Mathlib/Combinatorics/SetFamily/Shatter.lean Modified Mathlib/Data/Finset/Image.lean + theorem Finset.exists_mem_image - theorem Finset.forall_image + theorem Finset.forall_mem_image Modified Mathlib/Data/Finset/NAry.lean + theorem Finset.exists_mem_image₂ - theorem Finset.forall_image₂_iff + theorem Finset.forall_mem_image₂ Modified Mathlib/Data/Finset/Sups.lean Modified Mathlib/Data/Set/NAry.lean + theorem Set.exists_mem_image2 - theorem Set.forall_image2_iff + theorem Set.forall_mem_image2 Modified Mathlib/Data/Set/Sups.lean Modified Mathlib/Dynamics/OmegaLimit.lean Modified Mathlib/NumberTheory/MaricaSchoenheim.lean Modified Mathlib/Order/Bounds/Image.lean Modified Mathlib/Order/ConditionallyCompleteLattice/Basic.lean Modified Mathlib/Topology/CompactOpen.lean Modified Mathlib/Topology/EMetricSpace/Lipschitz.lean 2024-12-10 14:12:18 965bd1e feat: the iterated derivative of an analytic function (#19862) Prove the formula `D^n f (x ; v_1, ..., v_n) = ∑ pₙ (v_{σ (1)}, ..., v_{σ (n)})` if `pₙ` is the `n`-th term in a power series expansion of `f`, where the sum is over all permutations of `Fin n`. Deduce that the iterated derivative is symmetric. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/Analytic/IteratedFDeriv.lean + theorem AnalyticOn.iteratedFDerivWithin_comp_perm + theorem AnalyticOn.iteratedFDeriv_comp_perm + theorem ContDiffAt.iteratedFDeriv_comp_perm + theorem ContDiffWithinAt.iteratedFDerivWithin_comp_perm + theorem ContinuousMultilinearMap.iteratedFDeriv_comp_diagonal + theorem FormalMultilinearSeries.iteratedFDerivSeries_eq_zero + theorem HasFPowerSeriesOnBall.iteratedFDeriv_eq_sum + theorem HasFPowerSeriesOnBall.iteratedFDeriv_eq_sum_of_completeSpace + theorem HasFPowerSeriesWithinOnBall.iteratedFDerivWithin_eq_sum + theorem HasFPowerSeriesWithinOnBall.iteratedFDerivWithin_eq_sum_of_completeSpace + theorem HasFPowerSeriesWithinOnBall.iteratedFDerivWithin_eq_zero Modified Mathlib/Analysis/Calculus/FDeriv/Analytic.lean 2024-12-10 13:44:15 128f5af refactor(LocalRing/Basic): generalize to non-commutative (semi)rings (#18652) Small generalization of some Lemmas in LocalRing.Basic ESTIMATED CHANGES Modified Mathlib/RingTheory/LocalRing/Basic.lean +/- theorem IsLocalRing.of_surjective' 2024-12-10 11:05:06 bfdd603 chore: backports from leanprover/lean4#6123 (#19852) leanprover/lean4#6123 fixes some inconsistencies in the behaviour of `simp`, by propagating `Simp.Config` settings through to `Meta.Config`. This requires us to be more explicit about unfolding `let` bindings in many places in Mathlib. ESTIMATED CHANGES Modified Mathlib/Algebra/Category/ModuleCat/ChangeOfRings.lean Modified Mathlib/Algebra/Category/ModuleCat/Differentials/Basic.lean Modified Mathlib/Algebra/Homology/BifunctorAssociator.lean Modified Mathlib/Algebra/Homology/DerivedCategory/Ext/Basic.lean Modified Mathlib/Algebra/Homology/ShortComplex/Abelian.lean Modified Mathlib/Algebra/Lie/CartanExists.lean Modified Mathlib/Algebra/Lie/Weights/Chain.lean Modified Mathlib/Algebra/Lie/Weights/Killing.lean Modified Mathlib/Algebra/Module/FinitePresentation.lean Modified Mathlib/Algebra/Module/FreeLocus.lean Modified Mathlib/Algebra/Module/LinearMap/Polynomial.lean Modified Mathlib/Algebra/Order/Sub/WithTop.lean Modified Mathlib/Algebra/Polynomial/Div.lean Modified Mathlib/AlgebraicGeometry/EllipticCurve/Group.lean Modified Mathlib/AlgebraicGeometry/Morphisms/SurjectiveOnStalks.lean Modified Mathlib/AlgebraicGeometry/Morphisms/UniversallyClosed.lean Modified Mathlib/AlgebraicGeometry/PrimeSpectrum/Basic.lean Modified Mathlib/AlgebraicGeometry/RationalMap.lean Modified Mathlib/AlgebraicGeometry/Sites/MorphismProperty.lean Modified Mathlib/AlgebraicGeometry/ValuativeCriterion.lean Modified Mathlib/AlgebraicTopology/AlternatingFaceMapComplex.lean Modified Mathlib/AlgebraicTopology/DoldKan/Decomposition.lean Modified Mathlib/Analysis/Analytic/Inverse.lean Modified Mathlib/Analysis/BoxIntegral/UnitPartition.lean Modified Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Instances.lean Modified Mathlib/Analysis/Calculus/BumpFunction/FiniteDimension.lean Modified Mathlib/Analysis/Calculus/ContDiff/Bounds.lean Modified Mathlib/Analysis/Calculus/ContDiff/FaaDiBruno.lean Modified Mathlib/Analysis/Calculus/FDeriv/Bilinear.lean Modified Mathlib/Analysis/Calculus/LineDeriv/IntegrationByParts.lean Modified Mathlib/Analysis/Calculus/MeanValue.lean Modified Mathlib/Analysis/Complex/Isometry.lean Modified Mathlib/Analysis/Complex/UpperHalfPlane/Topology.lean Modified Mathlib/Analysis/Convex/Birkhoff.lean Modified Mathlib/Analysis/Convex/Combination.lean Modified Mathlib/Analysis/Convex/Cone/Extension.lean Modified Mathlib/Analysis/Convex/Jensen.lean Modified Mathlib/Analysis/Fourier/RiemannLebesgueLemma.lean Modified Mathlib/Analysis/InnerProductSpace/PiL2.lean Modified Mathlib/Analysis/InnerProductSpace/Projection.lean Modified Mathlib/Analysis/Normed/Group/ControlledClosure.lean Modified Mathlib/Analysis/Normed/Operator/Banach.lean Modified Mathlib/Analysis/NormedSpace/RieszLemma.lean Modified Mathlib/Analysis/SpecialFunctions/Complex/LogBounds.lean Modified Mathlib/Analysis/SpecialFunctions/ContinuousFunctionalCalculus/PosPart.lean Modified Mathlib/Analysis/SpecialFunctions/Integrals.lean Modified Mathlib/CategoryTheory/Abelian/EpiWithInjectiveKernel.lean Modified Mathlib/CategoryTheory/Extensive.lean Modified Mathlib/CategoryTheory/GradedObject/Trifunctor.lean Modified Mathlib/CategoryTheory/Idempotents/FunctorCategories.lean Modified Mathlib/CategoryTheory/Limits/Constructions/LimitsOfProductsAndEqualizers.lean Modified Mathlib/CategoryTheory/Limits/Constructions/Pullbacks.lean Modified Mathlib/CategoryTheory/Limits/FilteredColimitCommutesProduct.lean Modified Mathlib/CategoryTheory/Limits/SmallComplete.lean Modified Mathlib/CategoryTheory/Limits/VanKampen.lean Modified Mathlib/CategoryTheory/Localization/CalculusOfFractions.lean Modified Mathlib/CategoryTheory/Monoidal/Functor.lean Modified Mathlib/CategoryTheory/Monoidal/Mon_.lean Modified Mathlib/CategoryTheory/MorphismProperty/Limits.lean Modified Mathlib/CategoryTheory/Quotient/Linear.lean Modified Mathlib/CategoryTheory/Sites/Coherent/Comparison.lean Modified Mathlib/CategoryTheory/Sites/CoverLifting.lean Modified Mathlib/CategoryTheory/Sites/CoverPreserving.lean Modified Mathlib/CategoryTheory/Sites/DenseSubsite/SheafEquiv.lean Modified Mathlib/CategoryTheory/Sites/EffectiveEpimorphic.lean Modified Mathlib/CategoryTheory/Sites/Over.lean Modified Mathlib/CategoryTheory/Triangulated/Functor.lean Modified Mathlib/Combinatorics/Additive/Energy.lean Modified Mathlib/Combinatorics/Hall/Basic.lean Modified Mathlib/Combinatorics/Hall/Finite.lean Modified Mathlib/Data/Finite/Card.lean Modified Mathlib/Data/Fintype/Card.lean Modified Mathlib/Data/List/Indexes.lean Modified Mathlib/Data/Real/Pi/Irrational.lean Modified Mathlib/Data/Set/Card.lean Modified Mathlib/Data/Setoid/Partition.lean Modified Mathlib/FieldTheory/Extension.lean Modified Mathlib/Geometry/Euclidean/Angle/Oriented/Affine.lean Modified Mathlib/Geometry/Euclidean/Angle/Unoriented/Affine.lean Modified Mathlib/Geometry/Euclidean/Circumcenter.lean Modified Mathlib/Geometry/Euclidean/MongePoint.lean Modified Mathlib/GroupTheory/Exponent.lean Modified Mathlib/GroupTheory/Goursat.lean Modified Mathlib/GroupTheory/HNNExtension.lean Modified Mathlib/GroupTheory/PushoutI.lean Modified Mathlib/LinearAlgebra/AffineSpace/Combination.lean Modified Mathlib/LinearAlgebra/AffineSpace/Independent.lean Modified Mathlib/LinearAlgebra/Charpoly/ToMatrix.lean Modified Mathlib/LinearAlgebra/CliffordAlgebra/Basic.lean Modified Mathlib/LinearAlgebra/Dimension/DivisionRing.lean Modified Mathlib/LinearAlgebra/Dual.lean Modified Mathlib/LinearAlgebra/FreeModule/IdealQuotient.lean Modified Mathlib/LinearAlgebra/Matrix/Block.lean Modified Mathlib/LinearAlgebra/Matrix/Charpoly/Coeff.lean Modified Mathlib/LinearAlgebra/Matrix/Transvection.lean Modified Mathlib/LinearAlgebra/PID.lean Modified Mathlib/LinearAlgebra/PerfectPairing.lean Modified Mathlib/LinearAlgebra/Semisimple.lean Modified Mathlib/Logic/Function/Basic.lean Modified Mathlib/MeasureTheory/Constructions/Pi.lean Modified Mathlib/MeasureTheory/Constructions/Polish/Basic.lean Modified Mathlib/MeasureTheory/Covering/Besicovitch.lean Modified Mathlib/MeasureTheory/Function/ConditionalExpectation/Unique.lean Modified Mathlib/MeasureTheory/Function/LpSpace.lean Modified Mathlib/MeasureTheory/Group/GeometryOfNumbers.lean Modified Mathlib/MeasureTheory/Integral/Bochner.lean Modified Mathlib/MeasureTheory/Integral/Marginal.lean Modified Mathlib/MeasureTheory/Integral/MeanInequalities.lean Modified Mathlib/MeasureTheory/Integral/SetToL1.lean Modified Mathlib/MeasureTheory/MeasurableSpace/Embedding.lean Modified Mathlib/MeasureTheory/Measure/AEMeasurable.lean Modified Mathlib/MeasureTheory/Measure/Haar/OfBasis.lean Modified Mathlib/MeasureTheory/Measure/Haar/Unique.lean Modified Mathlib/MeasureTheory/Measure/Prod.lean Modified Mathlib/MeasureTheory/Measure/WithDensity.lean Modified Mathlib/MeasureTheory/OuterMeasure/OfFunction.lean Modified Mathlib/ModelTheory/Fraisse.lean Modified Mathlib/NumberTheory/LSeries/HurwitzZetaOdd.lean Modified Mathlib/NumberTheory/LegendreSymbol/QuadraticChar/Basic.lean Modified Mathlib/NumberTheory/MaricaSchoenheim.lean Modified Mathlib/NumberTheory/Multiplicity.lean Modified Mathlib/NumberTheory/NumberField/Embeddings.lean Modified Mathlib/NumberTheory/Padics/Hensel.lean Modified Mathlib/NumberTheory/Padics/PadicIntegers.lean Modified Mathlib/NumberTheory/Padics/RingHoms.lean Modified Mathlib/NumberTheory/WellApproximable.lean Modified Mathlib/Order/Category/NonemptyFinLinOrd.lean Modified Mathlib/Order/KrullDimension.lean Modified Mathlib/Probability/StrongLaw.lean Modified Mathlib/RingTheory/Adjoin/PowerBasis.lean Modified Mathlib/RingTheory/AlgebraicIndependent/RankAndCardinality.lean Modified Mathlib/RingTheory/DedekindDomain/PID.lean Modified Mathlib/RingTheory/IsTensorProduct.lean Modified Mathlib/RingTheory/Localization/BaseChange.lean Modified Mathlib/RingTheory/Localization/Ideal.lean Modified Mathlib/RingTheory/PowerSeries/Order.lean Modified Mathlib/RingTheory/RingHom/FinitePresentation.lean Modified Mathlib/SetTheory/Ordinal/Notation.lean Modified Mathlib/Topology/Algebra/Group/OpenMapping.lean Modified Mathlib/Topology/Algebra/Module/LinearPMap.lean Modified Mathlib/Topology/Algebra/ProperAction/Basic.lean Modified Mathlib/Topology/Category/Profinite/Nobeling.lean Modified Mathlib/Topology/Category/TopCat/EffectiveEpi.lean Modified Mathlib/Topology/Connected/PathConnected.lean Modified Mathlib/Topology/ContinuousMap/Algebra.lean Modified Mathlib/Topology/ContinuousMap/StoneWeierstrass.lean Modified Mathlib/Topology/FiberBundle/Constructions.lean Modified Mathlib/Topology/Sheaves/SheafCondition/PairwiseIntersections.lean Modified Mathlib/Topology/UniformSpace/Completion.lean 2024-12-10 11:05:05 99672f3 feat(Analysis/Analytic): uniqueness of function series converges to (#19851) Prove `HasFPowerSeriesOnBall.unique` (and its `HasFPowerSeriesWithinOnBall` variation): if two functions have the same series expansion, they coincide on the ball of convergence. It is direct translation from `HasSum.unique`. ESTIMATED CHANGES Modified Mathlib/Analysis/Analytic/Basic.lean + theorem HasFPowerSeriesOnBall.unique + theorem HasFPowerSeriesWithinOnBall.unique 2024-12-10 11:05:02 6ae27fd chore(Order/Ideal): define `Order.Cofinal` in terms of `IsCofinal` (#19681) ESTIMATED CHANGES Modified Mathlib/ModelTheory/PartialEquiv.lean Modified Mathlib/Order/CountableDenseLinearOrder.lean Modified Mathlib/Order/Ideal.lean 2024-12-10 10:16:51 229a92c feat: `#trans_imports` shows the imports of the current module (#19129) `#trans_imports` reports how many transitive imports the current module has. The command takes two optional inputs: * `#trans_imports str`, where `str` is a `String` also shows the transitively imported modules whose name begins with `str`; * `#trans_imports (str)? at most n` behaves like `#trans_imports (str)?`, except that instead of reporting the *exact* count of transitive imports, it either confirms that their number is at most `n`, or warns that it is larger. The `at_most n` option is useful for tests, but could potentially be used to limit import growth in mathlib. [Zulip discussion](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/import.20changes.20bot.20on.20PRs/near/482768569) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Tactic/Common.lean Added Mathlib/Util/TransImports.lean Added MathlibTest/TransImports.lean 2024-12-10 08:25:53 5d2254f feat: PrimeSpectrum has DiscreteTopology iff toLocalization is bijective (#19714) Third PR in the series #18891 and #19496 Main results: + `PrimeSpectrum.discreteTopology_iff_toPiLocalization_surjective`: the prime spectrum of a comm. semiring has discrete Zariski topology iff the map into the product of localizations at primes is surjective (equivalently, bijective). + `mapPiEvalRingHom_bijective`: the localization of a product ring $\prod_i R_i$ w.r.t. a "cylindrical" submonoid (of the form $\pi_i^{-1}(S)$, where S is a submonoid of some $R_i$) is canonically isomorphic to the localization of $R_i$ w.r.t. S. + `exists_maximal_nmem_range_sigmaToPi_of_infinite`: an infinite product of nontrivial rings has a maximal ideal that is not cylindrical. As a consequence, the map to the product of localizations at maximal ideals cannot be surjective (`MaximalSpectrum.toPiLocalization_not_surjective_of_infinite`), since the value at the non-cylindrical max ideal is determined by the values at the cylindrical max ideals. As a further consequence, if a ring is isomorphic to the product of its localizations at maximal ideals, the number of maximal ideals must be finite (`MaximalSpectrum.finite_of_toPiLocalization_surjective`). We rename `RingHom.toLocalizationIsMaximal` to `MaximalSpectrum.toPiLocalization` and similarly for associated lemmas. These were introduced in the previous two PRs and are relatively new, so I hope I won't need to add deprecations. ESTIMATED CHANGES Modified Mathlib/AlgebraicGeometry/PrimeSpectrum/Basic.lean + def PrimeSpectrum.MaximalSpectrum.toPiLocalizationEquivtoLocalizationEquiv + theorem PrimeSpectrum.discreteTopology_iff_toPiLocalization_bijective + theorem PrimeSpectrum.discreteTopology_iff_toPiLocalization_surjective + theorem PrimeSpectrum.discreteTopology_of_toLocalization_surjective + theorem PrimeSpectrum.maximalSpectrumToPiLocalization_surjective_of_discreteTopology + theorem PrimeSpectrum.toPiLocalization_surjective_of_discreteTopology - def RingHom.toLocalizationIsMaximalEquiv - theorem RingHom.toLocalizationIsMaximal_surjective_of_discreteTopology Modified Mathlib/RingTheory/Localization/AtPrime.lean + theorem Localization.AtPrime.mapPiEvalRingHom_algebraMap_apply + theorem Localization.AtPrime.mapPiEvalRingHom_bijective + theorem Localization.AtPrime.mapPiEvalRingHom_comp_algebraMap - def RingHom.toLocalizationIsMaximal - theorem RingHom.toLocalizationIsMaximal_injective Modified Mathlib/RingTheory/Localization/Basic.lean + theorem Localization.mapPiEvalRingHom_bijective Modified Mathlib/RingTheory/MaximalSpectrum.lean + theorem MaximalSpectrum.finite_of_toPiLocalization_pi_surjective + theorem MaximalSpectrum.finite_of_toPiLocalization_surjective + theorem MaximalSpectrum.mapPiLocalization_bijective + theorem MaximalSpectrum.mapPiLocalization_comp + theorem MaximalSpectrum.mapPiLocalization_id + theorem MaximalSpectrum.mapPiLocalization_naturality + def MaximalSpectrum.toPiLocalization + theorem MaximalSpectrum.toPiLocalization_apply_apply + theorem MaximalSpectrum.toPiLocalization_injective + theorem MaximalSpectrum.toPiLocalization_not_surjective_of_infinite + theorem PrimeSpectrum.finite_of_toPiLocalization_pi_surjective + theorem PrimeSpectrum.finite_of_toPiLocalization_surjective + theorem PrimeSpectrum.isMaximal_of_toPiLocalization_surjective + theorem PrimeSpectrum.mapPiLocalization_bijective + theorem PrimeSpectrum.mapPiLocalization_comp + theorem PrimeSpectrum.mapPiLocalization_id + theorem PrimeSpectrum.mapPiLocalization_naturality + def PrimeSpectrum.piLocalizationToMaximal + def PrimeSpectrum.piLocalizationToMaximalEquiv + theorem PrimeSpectrum.piLocalizationToMaximal_bijective + theorem PrimeSpectrum.piLocalizationToMaximal_comp_toPiLocalization + theorem PrimeSpectrum.piLocalizationToMaximal_surjective + def PrimeSpectrum.toPiLocalization + theorem PrimeSpectrum.toPiLocalization_injective + theorem PrimeSpectrum.toPiLocalization_not_surjective_of_infinite Modified Mathlib/RingTheory/PrimeSpectrum.lean + theorem PrimeSpectrum.exists_maximal_nmem_range_sigmaToPi_of_infinite + def PrimeSpectrum.sigmaToPi + theorem PrimeSpectrum.sigmaToPi_injective + theorem PrimeSpectrum.sigmaToPi_not_surjective_of_infinite 2024-12-10 06:48:09 7830269 feat: more API for iteratedFDeriv (#19769) Notably, `iteratedFDeriv` commutes with composition with a translation ESTIMATED CHANGES Modified Mathlib/Analysis/Analytic/ChangeOrigin.lean + theorem FormalMultilinearSeries.derivSeries_eq_zero Modified Mathlib/Analysis/Calculus/ContDiff/Basic.lean +/- theorem contDiff_prodAssoc +/- theorem contDiff_prodAssoc_symm Modified Mathlib/Analysis/Calculus/ContDiff/Defs.lean + theorem ContDiff.ftaylorSeries + theorem iteratedFDerivWithin_eq_iteratedFDeriv + theorem iteratedFDerivWithin_subset Modified Mathlib/Analysis/Calculus/ContDiff/FTaylorSeries.lean + theorem iteratedFDerivWithin_comp_add_left' + theorem iteratedFDerivWithin_comp_add_left + theorem iteratedFDerivWithin_comp_add_right' + theorem iteratedFDerivWithin_comp_add_right + theorem iteratedFDerivWithin_comp_sub' + theorem iteratedFDerivWithin_comp_sub + theorem iteratedFDerivWithin_two_apply' + theorem iteratedFDeriv_comp_add_left' + theorem iteratedFDeriv_comp_add_left + theorem iteratedFDeriv_comp_add_right' + theorem iteratedFDeriv_comp_add_right + theorem iteratedFDeriv_comp_sub' + theorem iteratedFDeriv_comp_sub Modified Mathlib/Analysis/Calculus/FDeriv/Add.lean + theorem differentiableAt_comp_add_left + theorem differentiableAt_comp_add_right + theorem differentiableAt_comp_sub + theorem differentiableWithinAt_comp_add_left + theorem differentiableWithinAt_comp_add_right + theorem differentiableWithinAt_comp_sub + theorem fderivWithin_comp_add_left + theorem fderivWithin_comp_add_right + theorem fderivWithin_comp_sub + theorem fderiv_comp_add_left + theorem fderiv_comp_add_right + theorem fderiv_comp_sub + theorem hasFDerivAt_comp_add_left + theorem hasFDerivAt_comp_add_right + theorem hasFDerivAt_comp_sub + theorem hasFDerivWithinAt_comp_add_left + theorem hasFDerivWithinAt_comp_add_right + theorem hasFDerivWithinAt_comp_sub Modified Mathlib/Analysis/Calculus/FDeriv/Analytic.lean Modified Mathlib/Analysis/Calculus/FormalMultilinearSeries.lean + theorem FormalMultilinearSeries.add_apply + theorem FormalMultilinearSeries.congr_zero + theorem FormalMultilinearSeries.sub_apply Modified Mathlib/Data/Fintype/Card.lean - theorem Function.Embedding.equiv_of_fintype_self_embedding_to_embedding + theorem Function.Embedding.toEmbedding_equivOfFiniteSelfEmbedding Modified Mathlib/Topology/Homeomorph.lean + theorem Homeomorph.image_eq_preimage 2024-12-10 06:18:38 619e125 refactor(LinearAlgebra/RootSystem): Weyl group (#19744) This PR redefines the Weyl group of a root pairing as the subgroup of automorphisms generated by reflection morphisms. The new definition is isomorphic to the old one, by faithfulness of the weight space representation, but we also get a natural coweight space representation and permutation representation on roots. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/LinearAlgebra/RootSystem/Defs.lean +/- theorem RootPairing.IsOrthogonal.symm - theorem RootPairing.exists_root_eq_smul_of_mem_weylGroup + theorem RootPairing.isOrthogonal_symm - theorem RootPairing.range_weylGroupToPerm - theorem RootPairing.reflection_mem_weylGroup - def RootPairing.weylGroup - def RootPairing.weylGroupToPerm - theorem RootPairing.weylGroupToPerm_apply_reflection Modified Mathlib/LinearAlgebra/RootSystem/Hom.lean + theorem RootPairing.Equiv.coweightEquiv_inv + theorem RootPairing.Equiv.coweightHom_op + theorem RootPairing.Equiv.indexEquiv_inv + def RootPairing.Equiv.indexHom + theorem RootPairing.Equiv.reflection_inv + theorem RootPairing.Equiv.weightEquiv_inv + def RootPairing.Hom.indexHom Added Mathlib/LinearAlgebra/RootSystem/WeylGroup.lean + theorem RootPairing.range_weylGroupToPerm + theorem RootPairing.range_weylGroup_coweightHom + theorem RootPairing.range_weylGroup_weightHom + theorem RootPairing.reflection_mem_weylGroup + def RootPairing.weylGroup 2024-12-10 06:05:21 a456587 chore(CategoryTheory/MorphismProperty/IsInvertedBy): simplify proof of isoClosure_iff (#19854) * `have : f = e.inv.left ≫ f' ≫ e.hom.right` can be directly proved via [`Arrow.iso_w'`](https://github.com/leanprover-community/mathlib4/blob/ebd71de74db22aaa0abbfab6799a22bcecda3476/Mathlib/CategoryTheory/Comma/Arrow.lean#L156). This removes an `erw`. * Once the `have` is shortened like that, we might as well inline it at its usage in the subsequent `simp`. This change was suggested by [tryAtEachStep](https://github.com/dwrensha/tryAtEachStep). ESTIMATED CHANGES Modified Mathlib/CategoryTheory/MorphismProperty/IsInvertedBy.lean 2024-12-10 05:49:29 c90bcde feat: add some nontriviality results on tensor product (#19832) - `TensorProduct.nontrivial_of_linearMap_injective_of_flat_(left|right)`: if there is an injective linear map from the base ring to a module, and another module is nontrivial and flat, then their tensor product is nontrivial. - `Algebra.TensorProduct.nontrivial_of_algebraMap_injective_of_flat_(left|right)`: if there is an algebra whose algebra map is injective, and there is another nontrivial flat algebra, then their tensor product is nontrivial. - `Algebra.TensorProduct.nontrivial_of_algebraMap_injective_of_isDomain`: tensor product of two domains is nontrivial, provided that two algebra maps are injective. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/RingTheory/Flat/Basic.lean + theorem Algebra.TensorProduct.nontrivial_of_algebraMap_injective_of_flat_left + theorem Algebra.TensorProduct.nontrivial_of_algebraMap_injective_of_flat_right + theorem TensorProduct.nontrivial_of_linearMap_injective_of_flat_left + theorem TensorProduct.nontrivial_of_linearMap_injective_of_flat_right Added Mathlib/RingTheory/TensorProduct/Nontrivial.lean + theorem Algebra.TensorProduct.nontrivial_of_algebraMap_injective_of_isDomain 2024-12-10 04:05:43 23b5a98 chore: split the nlinarith preprocessor for clarity (#19841) This makes it a little easier to trace the two halves separately, which is desirable since the second half has quadratic complexity. The behavior and performance should be unchanged. ESTIMATED CHANGES Modified Mathlib/Tactic/Linarith/Preprocessing.lean 2024-12-10 02:59:33 078c1ad feat: more `Int.ediv` lemmas (#19754) ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Group/Unbundled/Int.lean + theorem Int.sign_mul_self_eq_abs Modified Mathlib/Data/Int/Defs.lean + theorem Int.sign_mul_self_eq_natAbs Modified Mathlib/Data/Int/Lemmas.lean + theorem Int.ediv_emod_unique' 2024-12-10 02:59:32 64f3560 chore: address and delete many porting notes across the library (#19685) ESTIMATED CHANGES Modified Archive/Imo/Imo1972Q5.lean Modified Archive/Imo/Imo2013Q1.lean Modified Archive/MiuLanguage/DecisionNec.lean Modified Archive/MiuLanguage/DecisionSuf.lean Modified Mathlib/Algebra/AddTorsor.lean Modified Mathlib/Algebra/BigOperators/Finsupp.lean Modified Mathlib/Algebra/BigOperators/Group/Finset.lean Modified Mathlib/Algebra/BigOperators/Group/Multiset.lean Modified Mathlib/Algebra/Category/Grp/Colimits.lean Modified Mathlib/Algebra/Category/Grp/EquivalenceGroupAddGroup.lean Modified Mathlib/Algebra/CubicDiscriminant.lean Modified Mathlib/Algebra/DirectLimit.lean Modified Mathlib/Algebra/GeomSum.lean Modified Mathlib/Algebra/Lie/Submodule.lean Modified Mathlib/Algebra/Quandle.lean Modified Mathlib/Algebra/Quaternion.lean Modified Mathlib/Analysis/Normed/Lp/LpEquiv.lean Modified Mathlib/CategoryTheory/Bicategory/Functor/Prelax.lean Modified Mathlib/CategoryTheory/Limits/HasLimits.lean Modified Mathlib/Data/List/DropRight.lean Modified Mathlib/Data/Set/Basic.lean Modified Mathlib/GroupTheory/GroupAction/Hom.lean Modified Mathlib/LinearAlgebra/FiniteDimensional/Defs.lean Modified Mathlib/LinearAlgebra/Matrix/SesquilinearForm.lean Modified Mathlib/MeasureTheory/Measure/FiniteMeasure.lean Modified Mathlib/RingTheory/WittVector/IsPoly.lean - theorem WittVector.IsPoly₂.compLeft - theorem WittVector.IsPoly₂.compRight Modified Mathlib/Topology/Gluing.lean +/- theorem TopCat.GlueData.open_image_open Modified Mathlib/Topology/UniformSpace/Completion.lean 2024-12-10 02:59:30 6c84ec3 feat: norm_num for Int.ceil (#19669) Long ago I tried writing this in https://github.com/leanprover-community/mathlib3/pull/16502 for Lean 3. ESTIMATED CHANGES Modified Mathlib/Data/Rat/Floor.lean + theorem Rat.ceil_intCast_div_natCast + theorem Rat.ceil_natCast_div_natCast + def Rat.evalIntCeil + theorem Rat.isInt_intCeil + theorem Rat.isInt_intCeil_ofIsRat + theorem Rat.isNat_intCeil Modified MathlibTest/norm_num_ext.lean 2024-12-10 02:18:16 ebd71de doc(NumberTheory/Padics/MahlerBasis): add credit line (#19845) The file `NumberTheory/Padics/MahlerBasis.lean` is largely based on the ETH Zürich bachelor thesis of Giulio Caflisch. This PR gives Giulio due credit for this -- he is already included in the "Authors" line, but this does not appear in the online reference manual. I am following here the example of [JacobiSum/Basic](https://leanprover-community.github.io/mathlib4_docs/Mathlib/NumberTheory/JacobiSum/Basic.html), which is likewise based on a bachelor thesis project. ESTIMATED CHANGES Modified Mathlib/NumberTheory/Padics/MahlerBasis.lean 2024-12-10 02:18:15 8544aa5 chore: fix some notation commands (#19844) * These notations were not used in the pretty-printer. Now they are. * Exception: The notation in `Mathlib/Algebra/Category/Grp/EpiMono.lean` still doesn't pretty-print correctly. This is still an improvement, because the previous command didn't declare the notation correctly, and it was unused in the rest of the file. * There is more to do (everything with `set_option quotPrecheck false` is suspicious). ESTIMATED CHANGES Modified Mathlib/Algebra/Category/Grp/EpiMono.lean +/- theorem Grp.SurjectiveOfEpiAuxs.g_apply_fromCoset Modified Mathlib/Algebra/Order/GroupWithZero/Unbundled.lean Modified Mathlib/AlgebraicTopology/SimplicialObject/Basic.lean Modified Mathlib/Geometry/Manifold/Diffeomorph.lean Modified Mathlib/Geometry/Manifold/Instances/Real.lean Modified Mathlib/MeasureTheory/VectorMeasure/Basic.lean Modified Mathlib/RingTheory/WittVector/Isocrystal.lean 2024-12-10 02:18:13 0689cbc chore: fix some file references (#19830) ESTIMATED CHANGES Modified Mathlib/Algebra/Module/Submodule/Invariant.lean Modified Mathlib/Analysis/Calculus/FDeriv/Basic.lean Modified Mathlib/Analysis/Calculus/TangentCone.lean Modified Mathlib/CategoryTheory/Abelian/Refinements.lean Modified Mathlib/CategoryTheory/Closed/Enrichment.lean Modified Mathlib/CategoryTheory/Limits/Preserves/Yoneda.lean Modified Mathlib/CategoryTheory/Monoidal/Functor.lean Modified Mathlib/Data/Finset/Lattice/Fold.lean Modified Mathlib/Data/Nat/Prime/Int.lean Modified Mathlib/Data/Rat/Denumerable.lean Modified Mathlib/Data/Setoid/Basic.lean Modified Mathlib/Data/Subtype.lean Modified Mathlib/Logic/Equiv/Basic.lean Modified Mathlib/Logic/Equiv/Defs.lean Modified Mathlib/MeasureTheory/Group/Prod.lean Modified Mathlib/MeasureTheory/Measure/Haar/Basic.lean Modified Mathlib/MeasureTheory/Measure/Haar/Unique.lean Modified Mathlib/Order/CompleteLattice/Finset.lean Modified Mathlib/Topology/Defs/Basic.lean 2024-12-10 02:18:12 4dfbb55 chore(Mathlib/SetTheory/ZFC/Basic): `pp_with_univ` for `ZFSet` & related (#19824) `pp_with_univ` to `ZFSet`, `PSet` and `Class` ESTIMATED CHANGES Modified Mathlib/SetTheory/ZFC/Basic.lean 2024-12-10 02:18:11 b2dc853 chore(RingTheory/LocalRing): remove diamond (#19819) ESTIMATED CHANGES Modified Mathlib/RingTheory/LocalRing/ResidueField/Basic.lean 2024-12-10 02:18:09 742bb01 refactor(RingTheory/IntegralClosure/IntegralRestrict): Generalize from `FiniteDimensional` to `Algebra.IsAlgebraic` (#19818) This PR generalizes a few results from `FiniteDimensional` to `Algebra.IsAlgebraic`. ESTIMATED CHANGES Modified Mathlib/RingTheory/IntegralClosure/IntegralRestrict.lean 2024-12-10 02:18:08 8782865 feat(Data/Fin): Add lemmas `Fin.odd_add_one_iff_even` and `Fin.even_add_one_iff_odd` (#19815) ESTIMATED CHANGES Modified Mathlib/Data/Fin/Parity.lean + theorem Fin.even_add_one_iff_odd + theorem Fin.odd_add_one_iff_even 2024-12-10 02:18:06 e96006b chore(Order/SuccPred/CompleteLinearOrder): spacing fixes (#19799) ESTIMATED CHANGES Modified Mathlib/Order/SuccPred/CompleteLinearOrder.lean +/- theorem IsGLB.exists_of_not_isPredPrelimit +/- theorem IsGLB.mem_of_not_isPredPrelimit +/- theorem IsLUB.exists_of_not_isSuccPrelimit +/- theorem IsLUB.mem_of_not_isSuccPrelimit +/- theorem sInf_mem_of_not_isPredPrelimit +/- theorem sSup_mem_of_not_isSuccPrelimit 2024-12-10 02:18:05 c4c2823 feat(Probability/Moments): add `mgf_smul_left` (#19798) Add `mgf_smul_left`. While there is a lemma [IndepFun.mgf_add](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Probability/Moments.html#ProbabilityTheory.IndepFun.mgf_add) that describes the additive behavior of the moment generating function, there is currently no lemma describing the (scalar-)multiplicative behavior. This lemma is one of the ~4 supporting lemmas we have proved on our way to formalizing the central limit theorem. We will make PRs for other lemmas as well. ESTIMATED CHANGES Modified Mathlib/Probability/Moments.lean + theorem ProbabilityTheory.mgf_smul_left 2024-12-10 02:18:03 61ce7cc fix: update List.intervals docstring to point to new interval locations (#19794) (The old reference no longer exists.) ESTIMATED CHANGES Modified Mathlib/Data/List/Intervals.lean 2024-12-10 02:18:02 69286d6 perf(Convex/Between): speed up two slow refines (#19742) Previously, each refine took more than 6s in CI. Extract the last goal as a `have` as use `apply` instead, which is near-instant. Note that `exact` or `refine` is still slow. ESTIMATED CHANGES Modified Mathlib/Analysis/Convex/Between.lean 2024-12-10 02:18:01 8dd91ce doc(SetTheory/ZFC/Ordinal): add docstrings to lemmas on transitive sets (#19266) ESTIMATED CHANGES Modified Mathlib/SetTheory/ZFC/Ordinal.lean 2024-12-10 02:17:59 6220f58 chore(Util/Superscript): use `register_parser_alias` (#19009) This should mean exactly the same thing, with some automatic name resolution. ESTIMATED CHANGES Modified Mathlib/Util/Superscript.lean 2024-12-10 01:37:15 721b993 perf(Linter/HaveLetLinter): some local optimisations (#19730) Suggested by `kim-em` on [Zulip](https://leanprover.zulipchat.com/#narrow/channel/144837-PR-reviews/topic/.2312190.20.60have.60.20vs.20.60let.60.20linter/near/486013460). ESTIMATED CHANGES Modified Mathlib/Tactic/Linter/HaveLetLinter.lean - def Mathlib.Linter.haveLet.areProp_toFormat + def Mathlib.Linter.haveLet.toFormat_propTypes 2024-12-10 01:28:30 d0592cc chore(.github/workflows/discover-lean-pr-testing.yml): change zulip message topic (#19822) ESTIMATED CHANGES Modified .github/workflows/discover-lean-pr-testing.yml 2024-12-09 19:23:41 fb9a612 chore: simplify variables in LinearAlgebra.Dimension.Torsion.Finite (#19839) ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/Dimension/Torsion/Finite.lean +/- theorem Module.finrank_eq_zero_iff_isTorsion + theorem rank_eq_zero_iff_isTorsion: - theorem rank_eq_zero_iff_isTorsion 2024-12-09 19:23:39 d1e3519 perf: mark some definitions as non-computable (#19740) See individual commits for details about each change. This saves about 300*10⁹ instructions on all of mathlib. ESTIMATED CHANGES Modified Mathlib/Algebra/Category/Ring/Under/Limits.lean - def CommRingCat.Under.equalizerForkIsLimit - def CommRingCat.Under.equalizerForkTensorProdIso Modified Mathlib/AlgebraicTopology/DoldKan/GammaCompN.lean Modified Mathlib/CategoryTheory/Comma/Over.lean - def CategoryTheory.CostructuredArrow.ofDiagEquivalence' - def CategoryTheory.StructuredArrow.ofDiagEquivalence' Modified Mathlib/CategoryTheory/Limits/Opposites.lean - def CategoryTheory.Limits.Cofan.IsColimit.op - def CategoryTheory.Limits.Fan.IsLimit.op Modified Mathlib/CategoryTheory/Limits/Shapes/Biproducts.lean - def CategoryTheory.Limits.Bicone.whiskerIsBilimitIff 2024-12-09 19:13:48 cd316de chore: reduce type class assumptions for `rpow` lemmas in C⋆-algebras (#19843) ESTIMATED CHANGES Modified Mathlib/Analysis/SpecialFunctions/ContinuousFunctionalCalculus/Rpow.lean 2024-12-09 18:26:28 e0fb3b1 feat(RingTheory/Ideal/Maps): generalizations from Ring to Semiring (#19715) The results generalized are about bijective ring homs. Also add lemmas `comap.isMaximal` and `IsMaximal.comap_piEvalRingHom`, which says that the preimage of a maximal ideal under the projection from a product semiring is also maximal. ESTIMATED CHANGES Modified Mathlib/RingTheory/Ideal/Maps.lean + theorem Ideal.IsMaximal.comap_piEvalRingHom - theorem Ideal.RingEquiv.bot_maximal_iff +/- theorem Ideal.comap_isMaximal_of_surjective +/- theorem Ideal.comap_le_iff_le_map +/- theorem Ideal.comap_map_of_bijective + theorem Ideal.isMaximal_comap_iff_of_bijective + theorem Ideal.isMaximal_iff_of_bijective + theorem Ideal.isMaximal_map_iff_of_bijective - theorem Ideal.map.isMaximal +/- def Ideal.relIsoOfBijective Modified Mathlib/RingTheory/Jacobson/Ring.lean Modified Mathlib/RingTheory/Nullstellensatz.lean 2024-12-09 17:46:04 3c0727b feat: the homeomorphism between the tangent bundle to the model space and the product is a diffeomorphism (#19637) ESTIMATED CHANGES Modified Mathlib/Geometry/Manifold/MFDeriv/Tangent.lean + def tangentBundleModelSpaceDiffeomorph Modified Mathlib/Geometry/Manifold/MFDeriv/UniqueDifferential.lean + theorem UniqueMDiffOn.uniqueDiffWithinAt_range_inter + theorem UniqueMDiffOn.uniqueMDiffOn_target_inter Modified Mathlib/Geometry/Manifold/VectorBundle/Tangent.lean + theorem contMDiffAt_vectorSpace_iff_contDiffAt + theorem contMDiffOn_vectorSpace_iff_contDiffOn + theorem contMDiffWithinAt_vectorSpace_iff_contDiffWithinAt + theorem contMDiff_snd_tangentBundle_modelSpace + theorem contMDiff_tangentBundleModelSpaceHomeomorph + theorem contMDiff_tangentBundleModelSpaceHomeomorph_symm + theorem contMDiff_vectorSpace_iff_contDiff + theorem trivializationAt_model_space_apply 2024-12-09 17:46:02 0ab5ec9 feat: differentiability of functions on manifolds built by applying linear maps to a section of a vector bundle (#19636) We already have the same kind of statement for higher smoothness, but not for mere differentiability. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Geometry/Manifold/VectorBundle/MDifferentiable.lean + theorem MDifferentiableAt.clm_apply_of_inCoordinates + theorem MDifferentiableWithinAt.clm_apply_of_inCoordinates + theorem mdifferentiableWithinAt_totalSpace 2024-12-09 17:33:19 2c7acde chore(Module/LocalizedModule): rename `ringHom_ext` to `ext` (#19787) `IsLocalizedModule.ringHom_ext` does not have any `RingHom` in its type signature. ESTIMATED CHANGES Modified Mathlib/Algebra/Module/FinitePresentation.lean Modified Mathlib/Algebra/Module/LocalizedModule/Basic.lean + theorem IsLocalizedModule.ext - theorem IsLocalizedModule.ringHom_ext Modified Mathlib/RingTheory/LocalProperties/Projective.lean 2024-12-09 13:51:37 b202b86 feat: non-degeneracy of root pairing form without assuming ordered scalars (#19767) The motivation, and headline item is the new lemma `RootPairing.rootForm_restrict_nondegenerate_of_isAnisotropic` which establishes non-degeneracy of the root form without assuming ordered scalars, at the cost of requiring the crystallographic assumption and field coefficients. Since we also want to keep the old lemma (renamed to) `RootPairing.rootForm_restrict_nondegenerate_of_ordered` which establishes the same result over an ordered ring, we need to do some work in order to unify things as much as possible. With this in mind I have: - Turned `RootPairing.IsCrystallographic` into a typeclass - Introduced `RootPairing.IsAnisotropic` (which I've just made up but seems to be a good way to unify things; I also considered the idea that the pairing should take values in an ordered subring but decided this was inferior) In order to prove the new results, a certain amount of API for bilinear forms needed to be added. This also enabled me to golf some of the proofs of the existing non-degeneracy result (for order scalars). I also included a small amount of golfing / moving, and to standardise on `LinearMap.ker P.RootForm` rather than `LinearMap.ker P.Polarisation` (since it interfaced better with the bilinear form API). As compensation I added the convenience lemma `RootPairing.ker_polarization_eq_ker_rootForm`. ESTIMATED CHANGES Modified Mathlib/Algebra/Lie/Weights/RootSystem.lean - theorem LieAlgebra.IsKilling.isCrystallographic_rootSystem Modified Mathlib/LinearAlgebra/BilinearForm/Orthogonal.lean - theorem LinearMap.BilinForm.orthogonal_top + theorem LinearMap.BilinForm.orthogonal_top_eq_bot + theorem LinearMap.BilinForm.orthogonal_top_eq_ker Modified Mathlib/LinearAlgebra/Dimension/RankNullity.lean - theorem Submodule.disjoint_ker_of_finrank_eq + theorem Submodule.disjoint_ker_of_finrank_le Modified Mathlib/LinearAlgebra/Dual.lean + theorem Subspace.finrank_add_finrank_dualAnnihilator_eq Modified Mathlib/LinearAlgebra/Eigenspace/Triangularizable.lean Modified Mathlib/LinearAlgebra/FiniteDimensional.lean + theorem Submodule.isCompl_iff_disjoint Modified Mathlib/LinearAlgebra/RootSystem/Defs.lean - theorem RootPairing.IsCrystallographic.flip - def RootPairing.IsCrystallographic + theorem RootPairing.coe_corootSpan_dualAnnihilator_map + theorem RootPairing.coe_rootSpan_dualAnnihilator_map + theorem RootPairing.corootSpan_dualAnnihilator_map_eq +/- theorem RootPairing.exists_int_eq_coxeterWeight + theorem RootPairing.rootSpan_dualAnnihilator_map_eq Modified Mathlib/LinearAlgebra/RootSystem/Finite/CanonicalBilinear.lean - theorem RootPairing.corootForm_apply_coroot_self_ne_zero + theorem RootPairing.corootSpan_dualAnnihilator_le_ker_rootForm +/- theorem RootPairing.coxeterWeight_mem_set_of_isCrystallographic + theorem RootPairing.ker_copolarization_eq_ker_corootForm + theorem RootPairing.ker_polarization_eq_ker_rootForm - theorem RootPairing.prod_rootForm_root_self_pos - theorem RootPairing.rootForm_apply_root_self_ne_zero +/- theorem RootPairing.rootForm_root_self_pos + theorem RootPairing.rootForm_self_eq_zero_iff - theorem RootPairing.rootForm_self_zero_iff + theorem RootPairing.rootSpan_dualAnnihilator_le_ker_rootForm Modified Mathlib/LinearAlgebra/RootSystem/Finite/Nondegenerate.lean + theorem RootPairing.disjoint_corootSpan_ker_corootForm - theorem RootPairing.disjoint_rootSpan_ker_polarization + theorem RootPairing.disjoint_rootSpan_ker_rootForm + theorem RootPairing.isCompl_corootSpan_ker_corootForm + theorem RootPairing.isCompl_rootSpan_ker_rootForm - theorem RootPairing.mem_ker_polarization_of_rootForm_self_eq_zero + theorem RootPairing.orthogonal_corootSpan_eq + theorem RootPairing.orthogonal_rootSpan_eq + theorem RootPairing.rootForm_pos_of_ne_zero - theorem RootPairing.rootForm_pos_of_nonzero - theorem RootPairing.rootForm_restrict_nondegenerate + theorem RootPairing.rootForm_restrict_nondegenerate_of_isAnisotropic + theorem RootPairing.rootForm_restrict_nondegenerate_of_ordered Modified Mathlib/LinearAlgebra/SesquilinearForm.lean + theorem LinearMap.BilinForm.apply_apply_same_eq_zero_iff + theorem LinearMap.BilinForm.nondegenerate_iff' + theorem LinearMap.BilinForm.nondegenerate_iff + theorem LinearMap.BilinForm.nondegenerate_restrict_iff_disjoint_ker + theorem LinearMap.IsRefl.eq_iff + theorem LinearMap.IsRefl.nondegenerate_iff_separatingLeft + theorem LinearMap.IsRefl.nondegenerate_iff_separatingRight - theorem LinearMap.IsRefl.nondegenerate_of_separatingLeft - theorem LinearMap.IsRefl.nondegenerate_of_separatingRight + theorem LinearMap.IsSymm.nondegenerate_restrict_of_isCompl_ker + theorem LinearMap.disjoint_ker_of_nondegenerate_restrict 2024-12-09 13:17:16 f0c97b0 chore: minimize import (#19835) It seems that this unused import isn't detected by shake ESTIMATED CHANGES Modified Mathlib/Analysis/NormedSpace/HahnBanach/SeparatingDual.lean 2024-12-09 13:17:15 34fcc11 doc(RingTheory/Polynomial/HilbertPoly): fix a typo (#19833) In this pull request, we fix a typo in the file RingTheory/Polynomial/HilbertPoly.lean: originally, the docstring at the beginning of the file said "the polynomial `(n + 1)···(n + d)/d!`". But because the polynomial we mention is in `F[X]`, we must change it to `(X + 1)···(X + d)/d!`. ESTIMATED CHANGES Modified Mathlib/RingTheory/Polynomial/HilbertPoly.lean 2024-12-09 13:17:13 d1c574b refactor(Analysis/ODE): weaken Lipschitz condition (#19831) Replace the assumption `∀ t, LipschitzOnWith K (v t) (s t)` with `∀ t ∈ I, LipschitzOnWith K (v t) (s t)` with an appropriate interval `I` in lemmas from `Analysis.ODE.Gronwall`. ESTIMATED CHANGES Modified Mathlib/Analysis/ODE/Gronwall.lean Modified Mathlib/Geometry/Manifold/IntegralCurve/ExistUnique.lean 2024-12-09 12:57:46 fc349f0 chore: don't need group-theoretic exponent to set up finite dimensional vector spaces (#19827) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Module/FreeLocus.lean Modified Mathlib/Algebra/Polynomial/Module/FiniteDimensional.lean Modified Mathlib/Analysis/InnerProductSpace/Rayleigh.lean Modified Mathlib/FieldTheory/Adjoin.lean Modified Mathlib/FieldTheory/Finite/Polynomial.lean Modified Mathlib/FieldTheory/SplittingField/Construction.lean Modified Mathlib/LinearAlgebra/Dimension/DivisionRing.lean - theorem lift_rank_lt_rank_dual' - theorem lift_rank_lt_rank_dual - theorem max_aleph0_card_le_rank_fun_nat - theorem rank_dual_eq_card_dual_of_aleph0_le_rank' - theorem rank_dual_eq_card_dual_of_aleph0_le_rank - theorem rank_fun_infinite - theorem rank_lt_rank_dual' - theorem rank_lt_rank_dual Added Mathlib/LinearAlgebra/Dimension/ErdosKaplansky.lean + theorem lift_rank_lt_rank_dual' + theorem lift_rank_lt_rank_dual + theorem max_aleph0_card_le_rank_fun_nat + theorem rank_dual_eq_card_dual_of_aleph0_le_rank' + theorem rank_dual_eq_card_dual_of_aleph0_le_rank + theorem rank_fun_infinite + theorem rank_lt_rank_dual' + theorem rank_lt_rank_dual Modified Mathlib/LinearAlgebra/Dimension/Finite.lean - theorem Module.finrank_eq_zero_iff_isTorsion - theorem rank_eq_zero_iff_isTorsion Renamed Mathlib/LinearAlgebra/Dimension/Torsion.lean to Mathlib/LinearAlgebra/Dimension/Torsion/Basic.lean Added Mathlib/LinearAlgebra/Dimension/Torsion/Finite.lean + theorem Module.finrank_eq_zero_iff_isTorsion + theorem rank_eq_zero_iff_isTorsion Modified Mathlib/LinearAlgebra/Dual.lean Modified Mathlib/LinearAlgebra/Eigenspace/Basic.lean Modified Mathlib/LinearAlgebra/FiniteDimensional.lean Modified Mathlib/LinearAlgebra/FreeModule/Finite/Matrix.lean Modified Mathlib/LinearAlgebra/FreeModule/Norm.lean Modified Mathlib/LinearAlgebra/Matrix/Diagonal.lean Modified Mathlib/LinearAlgebra/Matrix/NonsingularInverse.lean Modified Mathlib/LinearAlgebra/Reflection.lean Modified Mathlib/LinearAlgebra/Semisimple.lean Modified Mathlib/MeasureTheory/Covering/BesicovitchVectorSpace.lean Modified Mathlib/MeasureTheory/Integral/IntervalIntegral.lean Modified Mathlib/NumberTheory/NumberField/Units/Basic.lean Modified Mathlib/RepresentationTheory/Basic.lean Modified Mathlib/RingTheory/Artinian.lean Modified Mathlib/RingTheory/DedekindDomain/Ideal.lean Modified Mathlib/RingTheory/LocalRing/Module.lean Modified Mathlib/RingTheory/Polynomial/GaussLemma.lean Modified Mathlib/RingTheory/PowerBasis.lean 2024-12-09 11:53:04 dda658e feat(List): `count a (l₁.diff l₂) = count a l₁ - count a l₂` (#19778) This will help not importing algebra when defining multisets ESTIMATED CHANGES Modified Mathlib/Data/List/Count.lean + theorem List.countP_diff + theorem List.countP_erase + theorem List.count_diff Modified Mathlib/Data/List/Perm/Subperm.lean + theorem List.subperm_iff_count 2024-12-09 11:16:00 888b1ef refactor: unbundle `Multiset.card` (#19777) This is a first step towards not importing algebra to define multisets. ESTIMATED CHANGES Modified Mathlib/Algebra/BigOperators/Finsupp.lean + theorem Multiset.card_finsuppSum Modified Mathlib/Algebra/BigOperators/Group/Finset.lean + theorem Multiset.card_sum Modified Mathlib/Combinatorics/Additive/FreimanHom.lean Modified Mathlib/Combinatorics/Optimization/ValuedCSP.lean +/- def FractionalOperation.size Modified Mathlib/Data/Multiset/Basic.lean +/- def Multiset.card + def Multiset.cardHom +/- theorem Multiset.card_add +/- theorem Multiset.card_nsmul Modified Mathlib/Data/Sym/Basic.lean Modified Mathlib/RingTheory/UniqueFactorizationDomain/NormalizedFactors.lean 2024-12-09 10:26:22 a388e3f chore: delete Mathlib.Util.IncludeStr (#19828) There's no need to deprecate; the only effect of this code is to cause an ambiguity error with the Lean builtin version. ESTIMATED CHANGES Modified Mathlib.lean Deleted Mathlib/Util/IncludeStr.lean 2024-12-09 10:07:27 0e6b027 feat(Geometry/Manifold): manifolds are locally path-connected (#17142) Shows that spaces modelled on locally path-connected spaces are themselves locally path-connected, and that the common model spaces `EuclideanHalfSpace n` and `EuclideanQuadrant n` are locally path-connected. ESTIMATED CHANGES Modified Mathlib/Analysis/Complex/UpperHalfPlane/Topology.lean Modified Mathlib/Analysis/Convex/Normed.lean Modified Mathlib/Geometry/Manifold/ChartedSpace.lean + theorem ChartedSpace.locPathConnectedSpace Modified Mathlib/Geometry/Manifold/Instances/Real.lean + theorem EuclideanHalfSpace.convex + theorem EuclideanQuadrant.convex Modified Mathlib/Topology/Algebra/Module/LocallyConvex.lean + theorem Convex.locPathConnectedSpace Modified Mathlib/Topology/Compactness/DeltaGeneratedSpace.lean Modified Mathlib/Topology/Connected/PathConnected.lean + theorem pathComponentIn_mem_nhds 2024-12-09 09:39:56 b405b4d chore(Analysis/BoundedVariation): split file (#19784) Fixes #4862 ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Analysis/BoundedVariation.lean - theorem BoundedVariationOn.dist_le - theorem BoundedVariationOn.locallyBoundedVariationOn - theorem BoundedVariationOn.mono - theorem BoundedVariationOn.sub_le - def BoundedVariationOn - theorem LipschitzOnWith.comp_boundedVariationOn - theorem LipschitzOnWith.comp_eVariationOn_le - theorem LipschitzOnWith.comp_locallyBoundedVariationOn - theorem LipschitzOnWith.locallyBoundedVariationOn - theorem LipschitzWith.comp_boundedVariationOn - theorem LipschitzWith.comp_locallyBoundedVariationOn - theorem LipschitzWith.locallyBoundedVariationOn - theorem LocallyBoundedVariationOn.exists_monotoneOn_sub_monotoneOn - def LocallyBoundedVariationOn - theorem MonotoneOn.eVariationOn_le - theorem MonotoneOn.locallyBoundedVariationOn - theorem eVariationOn.Icc_add_Icc - theorem eVariationOn.add_le_union - theorem eVariationOn.add_point - theorem eVariationOn.comp_eq_of_antitoneOn - theorem eVariationOn.comp_eq_of_monotoneOn - theorem eVariationOn.comp_inter_Icc_eq_of_monotoneOn - theorem eVariationOn.comp_le_of_antitoneOn - theorem eVariationOn.comp_le_of_monotoneOn - theorem eVariationOn.comp_ofDual - theorem eVariationOn.constant_on - theorem eVariationOn.edist_le - theorem eVariationOn.eq_of_edist_zero_on - theorem eVariationOn.eq_of_eqOn - theorem eVariationOn.eq_zero_iff - theorem eVariationOn.lowerSemicontinuous_aux - theorem eVariationOn.lowerSemicontinuous_uniformOn - theorem eVariationOn.mono - theorem eVariationOn.nonempty_monotone_mem - theorem eVariationOn.sum_le - theorem eVariationOn.sum_le_of_monotoneOn_Icc - theorem eVariationOn.sum_le_of_monotoneOn_Iic - theorem eVariationOn.union Modified Mathlib/Analysis/ConstantSpeed.lean Added Mathlib/Topology/EMetricSpace/BoundedVariation.lean + theorem BoundedVariationOn.dist_le + theorem BoundedVariationOn.locallyBoundedVariationOn + theorem BoundedVariationOn.mono + theorem BoundedVariationOn.sub_le + def BoundedVariationOn + theorem LipschitzOnWith.comp_boundedVariationOn + theorem LipschitzOnWith.comp_eVariationOn_le + theorem LipschitzOnWith.comp_locallyBoundedVariationOn + theorem LipschitzOnWith.locallyBoundedVariationOn + theorem LipschitzWith.comp_boundedVariationOn + theorem LipschitzWith.comp_locallyBoundedVariationOn + theorem LipschitzWith.locallyBoundedVariationOn + theorem LocallyBoundedVariationOn.exists_monotoneOn_sub_monotoneOn + def LocallyBoundedVariationOn + theorem MonotoneOn.eVariationOn_le + theorem MonotoneOn.locallyBoundedVariationOn + theorem eVariationOn.Icc_add_Icc + theorem eVariationOn.add_le_union + theorem eVariationOn.add_point + theorem eVariationOn.comp_eq_of_antitoneOn + theorem eVariationOn.comp_eq_of_monotoneOn + theorem eVariationOn.comp_inter_Icc_eq_of_monotoneOn + theorem eVariationOn.comp_le_of_antitoneOn + theorem eVariationOn.comp_le_of_monotoneOn + theorem eVariationOn.comp_ofDual + theorem eVariationOn.constant_on + theorem eVariationOn.edist_le + theorem eVariationOn.eq_of_edist_zero_on + theorem eVariationOn.eq_of_eqOn + theorem eVariationOn.eq_zero_iff + theorem eVariationOn.lowerSemicontinuous_aux + theorem eVariationOn.lowerSemicontinuous_uniformOn + theorem eVariationOn.mono + theorem eVariationOn.nonempty_monotone_mem + theorem eVariationOn.sum_le + theorem eVariationOn.sum_le_of_monotoneOn_Icc + theorem eVariationOn.sum_le_of_monotoneOn_Iic + theorem eVariationOn.union 2024-12-09 09:39:54 a2702bb feat(TensorProduct): change of base ring in tensor product of algebras (#19670) A follow up to #18744, adding more contents about tensor product of algebras. In `LinearAlgebra/TensorProduct/Basic.lean`: change the argument order of `mapOfCompatibleSMul` from `R M N A` to the more natural `R A M N`; add `lidOfCompatibleSMul`. In `RingTheory/TensorProduct/Basic.lean`: add a CompatibleSMul section for algebras completely analogous to the CompatibleSMul section in `LinearAlgebra/TensorProduct/Basic.lean` added in #18744. In `RingTheory/Localization/BaseChange.lean`: promote various examples to defs, and generalize `tensorSelfEquiv` to `algebraLid`. ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/TensorProduct/Basic.lean + def TensorProduct.lidOfCompatibleSMul + theorem TensorProduct.lidOfCompatibleSMul_tmul +/- theorem TensorProduct.mapOfCompatibleSMul_surjective +/- theorem TensorProduct.mapOfCompatibleSMul_tmul Modified Mathlib/RingTheory/Localization/BaseChange.lean Modified Mathlib/RingTheory/TensorProduct/Basic.lean + def Algebra.TensorProduct.equivOfCompatibleSMul + def Algebra.TensorProduct.lidOfCompatibleSMul + theorem Algebra.TensorProduct.lidOfCompatibleSMul_tmul + theorem Algebra.TensorProduct.lmul''_eq_lid_comp_mapOfCompatibleSMul + theorem Algebra.TensorProduct.lmulEquiv_eq_lidOfCompatibleSMul + def Algebra.TensorProduct.mapOfCompatibleSMul' + def Algebra.TensorProduct.mapOfCompatibleSMul + theorem Algebra.TensorProduct.mapOfCompatibleSMul_surjective + theorem Algebra.TensorProduct.mapOfCompatibleSMul_tmul 2024-12-09 09:39:53 93a38c1 feat: add a file tracking results from the 1000+ theorems project (#19634) Add a new file `1000.yaml`, tracking the formalisation status of theorems from the [1000+ theorems project](https://1000-plus.github.io). Make `check-yaml` handle this file also. Future PRs will - expose this information on the webpage - add infrastructure for synchronising this file with the upstream repository - could add an attribute similar to the `stacks` attribute, and generate this file from the tagging - add information on existing formalisation projects in Lean. ESTIMATED CHANGES Modified .github/build.in.yml Modified .github/workflows/bors.yml Modified .github/workflows/build.yml Modified .github/workflows/build_fork.yml Added docs/1000.yaml Modified scripts/check-yaml.lean +/- def databases Modified scripts/yaml_check.py 2024-12-09 09:03:54 f064040 chore(Algebra/Ring): generalize Injective.isDomain (#19768) ESTIMATED CHANGES Modified Counterexamples/CanonicallyOrderedCommSemiringTwoMul.lean Modified Mathlib/Algebra/GroupWithZero/InjSurj.lean Modified Mathlib/Algebra/GroupWithZero/NeZero.lean + theorem domain_nontrivial - theorem pullback_nonzero Modified Mathlib/Algebra/Order/Ring/InjSurj.lean Modified Mathlib/Algebra/Ring/Basic.lean +/- theorem IsLeftCancelMulZero.to_noZeroDivisors +/- theorem IsRightCancelMulZero.to_noZeroDivisors Modified Mathlib/Algebra/Ring/Hom/Basic.lean Modified Mathlib/Data/Complex/Basic.lean Modified Mathlib/Logic/Equiv/TransferInstance.lean Modified Mathlib/RingTheory/Ideal/Prime.lean Modified Mathlib/RingTheory/LocalRing/RingHom/Basic.lean Modified Mathlib/RingTheory/Polynomial/IntegralNormalization.lean 2024-12-09 08:25:58 d9df436 feat(Quantale): `⊥ * x = ⊥` (#19811) The bottom element of a quantale is absorbing for multiplication As this is a basic truth for quantales that one practically always will use, I think it belongs in the main Quantale file. ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Quantale.lean + theorem IsQuantale.bot_mul + theorem IsQuantale.mul_bot 2024-12-09 08:25:56 ff66079 chore: generalize OrderMonoidIso to OrderMulIso (#19810) An OrderMonoidIso actually does not depend on the fact that the type has a One, so the assumption [MulOneClass] can be relaxed to [Mul] in the definition, and similar for the AddOrderMonoidIso. For the time being, let's not rename the definition yet, just relax it. (I need this for my work on Quantales, as a OrderMulIso is also a QuantaleIso, but Quantales do not necessarily have a One). ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Hom/Monoid.lean +/- structure OrderAddMonoidIso +/- structure OrderMonoidIso 2024-12-09 08:25:55 b670b3c chore: cleanup of manifold files (#19807) As a preparation for #19696 ESTIMATED CHANGES Modified Mathlib/Analysis/Calculus/ContDiff/Defs.lean Modified Mathlib/Analysis/Calculus/ContDiff/FTaylorSeries.lean Modified Mathlib/Geometry/Manifold/Algebra/LieGroup.lean Modified Mathlib/Geometry/Manifold/ChartedSpace.lean + theorem StructureGroupoid.maximalAtlas_mono Modified Mathlib/Geometry/Manifold/ContMDiff/Defs.lean + theorem contMDiffOn_zero_iff + theorem contMDiff_zero_iff Modified Mathlib/Geometry/Manifold/Diffeomorph.lean Modified Mathlib/Geometry/Manifold/Instances/Real.lean Modified Mathlib/Geometry/Manifold/MFDeriv/NormedSpace.lean Modified Mathlib/Geometry/Manifold/SmoothManifoldWithCorners.lean 2024-12-09 08:25:53 15fde81 feat(Order/SuccPred/CompleteLinearOrder): `sSup (Iio x) = x ↔ IsSuccPrelimit x` (#19800) ESTIMATED CHANGES Modified Mathlib/Order/SuccPred/CompleteLinearOrder.lean + theorem Order.IsSuccLimit.iSup_Iio + theorem Order.IsSuccLimit.sSup_Iio + theorem Order.IsSuccPrelimit.iSup_Iio + theorem Order.IsSuccPrelimit.sSup_Iio + theorem iSup_Iio_eq_self_iff_isSuccPrelimit + theorem sSup_Iio_eq_self_iff_isSuccPrelimit 2024-12-09 08:25:51 37699c0 docs(Combinatorics/Enumerative/Catalan): update theorem name in docs (#19792) Updates an outdated name for a theorem in the top-level module documentation. ESTIMATED CHANGES Modified Mathlib/Combinatorics/Enumerative/Catalan.lean 2024-12-09 08:25:49 8f0293e chore(RingTheory/Flat): remove `Algebra.Flat` and move `RingHom.Flat` (#19786) We remove `Algebra.Flat` as it is a special case of `Module.Flat` and make `RingHom.Flat` a regular definition to align with e.g. `RingHom.Finite`. Also adds some meta properties of flat ring homomorphisms. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Category/Ring/Under/Limits.lean Modified Mathlib/RingTheory/AdicCompletion/AsTensorProduct.lean Deleted Mathlib/RingTheory/Flat/Algebra.lean - theorem Algebra.Flat.isBaseChange - theorem Algebra.Flat.trans Added Mathlib/RingTheory/RingHom/Flat.lean + theorem RingHom.Flat.comp + theorem RingHom.Flat.containsIdentities + theorem RingHom.Flat.holdsForLocalizationAway + theorem RingHom.Flat.id + theorem RingHom.Flat.isStableUnderBaseChange + theorem RingHom.Flat.of_bijective + theorem RingHom.Flat.respectsIso + theorem RingHom.Flat.stableUnderComposition + def RingHom.Flat 2024-12-09 08:25:47 cb03cd9 chore(RingTheory): golf `iInf_localization_eq_bot` (#19785) using roughly the same pattern as [`Submodule.mem_of_localization_maximal`](https://github.com/leanprover-community/mathlib4/commit/a5d04c838085d6c3554d59278c04126b62314757#diff-25704369c7e20d4992fa2ef4a09fc372db1df67c0e7c504d4a99820bb1ec8f46R40-R50) ESTIMATED CHANGES Modified Mathlib/RingTheory/MaximalSpectrum.lean 2024-12-09 08:25:45 415fc06 feat: add optional message for `try_this` tactic, and use it for `ring` (#19763) This adds a message to the `ring` tactic when `ring1` fails to solve the goal. It informs the user of common pitfalls when using `ring`, and suggests `noncomm_ring`, `abel` and `module` as alternatives. This confusion occurs repeatedly on Zulip, e.g., [here](https://leanprover.zulipchat.com/#narrow/channel/113489-new-members/topic/why.20ring.20doesn't.20work.20on.20ring/near/486365363) and [here](https://leanprover.zulipchat.com/#narrow/channel/113488-general/topic/Behaviour.20of.20ring.20tactic/near/436204738) to name only two examples. ESTIMATED CHANGES Modified Mathlib/Tactic/Ring/RingNF.lean Modified Mathlib/Tactic/TryThis.lean 2024-12-09 08:25:43 bde99e3 chore: don't import `Set.indicator` in `Topology.ContinuousOn` (#19653) This is a first step towards not depending on algebra in basic topology ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Topology/Algebra/Indicator.lean + theorem ContinuousOn.continuousAt_mulIndicator + theorem continuous_mulIndicator Modified Mathlib/Topology/ContinuousMap/Bounded/Basic.lean Modified Mathlib/Topology/ContinuousOn.lean - theorem ContinuousOn.continuousAt_mulIndicator - theorem continuous_mulIndicator Modified Mathlib/Topology/IndicatorConstPointwise.lean Modified Mathlib/Topology/Order/LeftRight.lean Modified Mathlib/Topology/Separation/Basic.lean 2024-12-09 08:25:42 d592ae3 feat(LinearAlgebra/Goursat): Goursat's lemma on submodules of products (#18667) This proves Goursat's lemma for modules, characterising submodules of `A x B` as graphs of isomorphisms between subquotients of `A` and `B`. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/LinearAlgebra/Goursat.lean + theorem Submodule.goursat + def Submodule.goursatFst + theorem Submodule.goursatFst_prod_goursatSnd_le + theorem Submodule.goursatFst_toAddSubgroup + def Submodule.goursatSnd + theorem Submodule.goursatSnd_toAddSubgroup + theorem Submodule.goursat_surjective Modified Mathlib/LinearAlgebra/Prod.lean + theorem LinearMap.coe_fst + theorem LinearMap.coe_snd 2024-12-09 08:03:26 bd9aea4 feat(RingTheory/Polynomial/HilbertPoly): `Polynomial.natDegree_hilbertPoly_of_ne_zero` (#19765) ESTIMATED CHANGES Modified Mathlib/Algebra/Polynomial/Degree/Domain.lean + theorem Polynomial.natDegree_smul Modified Mathlib/RingTheory/Polynomial/HilbertPoly.lean + theorem Polynomial.coeff_preHilbertPoly_self + theorem Polynomial.eq_hilbertPoly_of_forall_coeff_eq_eval + theorem Polynomial.hilbertPoly_eq_zero_of_le_rootMultiplicity_one + theorem Polynomial.leadingCoeff_preHilbertPoly + theorem Polynomial.natDegree_hilbertPoly_of_ne_zero + theorem Polynomial.natDegree_hilbertPoly_of_ne_zero_of_rootMultiplicity_lt + theorem Polynomial.natDegree_preHilbertPoly 2024-12-08 17:47:11 65c0085 chore: update Mathlib dependencies 2024-12-08 (#19813) This PR updates the Mathlib dependencies. ESTIMATED CHANGES Modified lake-manifest.json 2024-12-08 15:02:00 294458c chore(*): rename some `defs` to `camelCase` (#19795) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Monoidal/Bimon_.lean + def Bimon_.toTrivial - def Bimon_.to_trivial + def Bimon_.trivialTo - def Bimon_.trivial_to Modified Mathlib/Data/Set/Lattice.lean + def Set.sUnionPowersetGI - def Set.sUnion_powerset_gi Modified Mathlib/LinearAlgebra/FreeProduct/Basic.lean + def LinearAlgebra.FreeProductOfPowers - def LinearAlgebra.FreeProduct_ofPowers + def RingQuot.algEquivQuotAlgEquiv - def RingQuot.algEquiv_quot_algEquiv + def RingQuot.equivQuotEquiv - def RingQuot.equiv_quot_equiv Modified Mathlib/Tactic/Linter/OldObtain.lean + def Mathlib.Linter.Style.isObtainWithoutProof +/- def Mathlib.Linter.Style.is_obtain_without_proof Modified Mathlib/Tactic/Linter/Style.lean + def Mathlib.Linter.Style.setOption.isSetOption +/- def Mathlib.Linter.Style.setOption.is_set_option + def Mathlib.Linter.Style.setOption.parseSetOption +/- def Mathlib.Linter.Style.setOption.parse_set_option Modified Mathlib/Tactic/MoveAdd.lean + def Mathlib.MoveAdd.moveOperSimpCtx - def Mathlib.MoveAdd.move_oper_simpCtx 2024-12-08 07:41:29 31530f3 chore(AdicCompletion): generalise algebra instance to separate rings (#19466) In the existing instance `Algebra R (AdicCompletion I R)`, `R` appears three times: On the left, on the right, and in `I : Ideal R`. The left occurrence can be generalised to a ring `S` such that `R` is a `S`-algebra. Closes ImperialCollegeLondon/FLT/issues/230. From FLT ESTIMATED CHANGES Modified Mathlib/RingTheory/AdicCompletion/Algebra.lean Modified Mathlib/RingTheory/AdicCompletion/AsTensorProduct.lean Modified Mathlib/RingTheory/AdicCompletion/Basic.lean +/- theorem AdicCompletion.ext +/- theorem AdicCompletion.val_add + theorem AdicCompletion.val_add_apply + theorem AdicCompletion.val_neg + theorem AdicCompletion.val_neg_apply +/- theorem AdicCompletion.val_smul + theorem AdicCompletion.val_smul_apply +/- theorem AdicCompletion.val_sub + theorem AdicCompletion.val_sub_apply +/- theorem AdicCompletion.val_sum + theorem AdicCompletion.val_sum_apply +/- theorem AdicCompletion.val_zero + theorem AdicCompletion.val_zero_apply Modified Mathlib/RingTheory/AdicCompletion/Functoriality.lean 2024-12-08 02:15:37 19b191a doc(Combinatorics/Young/YoungDiagram): Change `Ssyt` to `SemistandardYoungTableau` (#19773) ESTIMATED CHANGES Modified Mathlib/Combinatorics/Young/SemistandardTableau.lean 2024-12-08 00:16:25 9a3b5ca chore(scripts): update nolints.json (#19791) I am happy to remove some nolints for you! ESTIMATED CHANGES Modified scripts/nolints.json 2024-12-07 14:05:32 a988e8b chore(NumberTheory/Numberfield/*): rename ringEquiv_complex_of_isComplex -> ringEquivComplexOfIsComplex (#19659) ESTIMATED CHANGES Modified Mathlib/NumberTheory/NumberField/AdeleRing.lean Modified Mathlib/NumberTheory/NumberField/Completion.lean + def NumberField.InfinitePlace.Completion.extensionEmbeddingOfIsReal - def NumberField.InfinitePlace.Completion.extensionEmbedding_of_isReal + def NumberField.InfinitePlace.Completion.isometryEquivComplexOfIsComplex + def NumberField.InfinitePlace.Completion.isometryEquivRealOfIsReal - def NumberField.InfinitePlace.Completion.isometryEquiv_complex_of_isComplex - def NumberField.InfinitePlace.Completion.isometryEquiv_real_of_isReal + def NumberField.InfinitePlace.Completion.ringEquivComplexOfIsComplex + def NumberField.InfinitePlace.Completion.ringEquivRealOfIsReal - def NumberField.InfinitePlace.Completion.ringEquiv_complex_of_isComplex - def NumberField.InfinitePlace.Completion.ringEquiv_real_of_isReal 2024-12-07 13:24:40 6b4fc18 refactor(Order/Basic): Make `LinearOrder α = LinearOrder αᵒᵈᵒᵈ` defeq (#19776) ESTIMATED CHANGES Modified Mathlib/Order/Basic.lean + theorem OrderDual.Ord.dual_dual 2024-12-07 13:24:38 4fb35bf feat(Order/Basic): `PartialOrder.ext_lt` (#19724) Two partial / linear orders with the same `<` relation are the same. ESTIMATED CHANGES Modified Mathlib/Order/Basic.lean + theorem LinearOrder.ext_lt + theorem PartialOrder.ext_lt 2024-12-07 13:24:37 410afe3 feat(Order/Cofinal): more lemmas on cofinal sets (#19680) ESTIMATED CHANGES Modified Mathlib/Order/Cofinal.lean + theorem GaloisConnection.map_cofinal + theorem OrderIso.map_cofinal + theorem isCofinal_setOf_imp_lt 2024-12-07 12:44:08 fda98ef feat(Nat): `m / n = 0 ↔ n = 0 ∨ m < n` (#19505) Strengthen three iffs by moving their precondition to the RHS. From LeanCamCombi ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Antidiag/Pi.lean Modified Mathlib/AlgebraicGeometry/EllipticCurve/DivisionPolynomial/Degree.lean Modified Mathlib/Data/Nat/Defs.lean Modified Mathlib/Data/Nat/Digits.lean Modified Mathlib/Data/Nat/Factorization/Basic.lean Modified Mathlib/Data/Nat/Squarefree.lean Modified Mathlib/Data/ZMod/Basic.lean 2024-12-07 12:21:14 21d992d feat(NumberTheory/NumberField/FinitePlaces): the finite places of a number field (#19667) This file defines finite places of a number field `K` as absolute values coming from an embedding into a completion of `K` associated to a non-zero prime ideal of `𝓞 K` with some basic APIs. This is part of a project which aims to define heights. The next step is the product formula. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/NumberTheory/NumberField/FinitePlaces.lean + theorem NumberField.FinitePlace.apply + theorem NumberField.FinitePlace.maximalIdeal_inj + theorem NumberField.FinitePlace.maximalIdeal_injective + theorem NumberField.FinitePlace.maximalIdeal_mk + theorem NumberField.FinitePlace.mk_eq_iff + theorem NumberField.FinitePlace.mk_maximalIdeal + theorem NumberField.FinitePlace.mulSupport_finite + theorem NumberField.FinitePlace.mulSupport_finite_int + theorem NumberField.FinitePlace.norm_def' + theorem NumberField.FinitePlace.norm_def + theorem NumberField.FinitePlace.norm_def_int + theorem NumberField.FinitePlace.norm_embedding_eq + theorem NumberField.FinitePlace.pos_iff + def NumberField.FinitePlace + def NumberField.embedding + theorem NumberField.norm_eq_one_iff_not_mem + theorem NumberField.norm_le_one + theorem NumberField.norm_lt_one_iff_mem + theorem NumberField.one_lt_norm + theorem NumberField.toNNReal_Valued_eq_vadicAbv + theorem NumberField.vadicAbv_def 2024-12-07 09:19:58 37305b9 perf: squeeze some really slow `simp`s (#19743) See the individual commit messages for details: each simp was particular slow, and is much faster now. ESTIMATED CHANGES Modified Mathlib/Algebra/GroupWithZero/Pointwise/Finset.lean Modified Mathlib/Algebra/Lie/Weights/Chain.lean Modified Mathlib/FieldTheory/AxGrothendieck.lean Modified Mathlib/RingTheory/Kaehler/Basic.lean 2024-12-07 06:05:49 653f17d feat(RingTheory/LocalProperties): flatness is a local property (#19085) This PR proves that flat is a local property. Main results: 1. `flat_of_localization_maximal` : Let `M` be a module over `CommRing R`. If the localization of `M` at each maximal ideal `P` is flat over `R_p`, then `M` is flat over `R`. 2. `flat_of_localization_span` : Let `M` be a module over `CommRing R` and `S` be a set that spans `R`. If the localization of `M` at `s : S` is flat over `Localization.Away s`, then `M` is flat over `R`. 3. `flat_iff_of_localization` : Let `R_p` a localization of `CommRing R` and `M` be a module over `R_p`. Then `M` is flat over `R` if and only if `M` is flat over `R_p` - [x] depends on: #19080 ESTIMATED CHANGES Modified Mathlib/Algebra/Module/LocalizedModule/Basic.lean + theorem IsLocalizedModule.linearMap_ext Modified Mathlib/RingTheory/Flat/Localization.lean + theorem Module.flat_iff_of_isLocalization + theorem Module.flat_of_isLocalized_maixmal + theorem Module.flat_of_isLocalized_span + theorem Module.flat_of_localized_maximal + theorem Module.flat_of_localized_span 2024-12-07 04:52:05 cc6b7b9 chore(Mathlib/NumberTheory/NumberField/*): rename completion -> Completion (#19646) We have `UniformSpace.Completion` so it should surely also be `AbsoluteValue.Completion v : Type*` and `NumberField.InfinitePlace.Completion v : Type*` (currently they are both `completion` and both types). ESTIMATED CHANGES Modified Mathlib/Analysis/Normed/Ring/WithAbs.lean +/- theorem AbsoluteValue.Completion.extensionEmbedding_dist_eq_of_comp Modified Mathlib/NumberTheory/NumberField/AdeleRing.lean +/- def NumberField.InfiniteAdeleRing Modified Mathlib/NumberTheory/NumberField/Completion.lean +/- def NumberField.InfinitePlace.Completion.extensionEmbedding +/- def NumberField.InfinitePlace.Completion.extensionEmbedding_of_isReal +/- def NumberField.InfinitePlace.Completion.isometryEquiv_real_of_isReal +/- def NumberField.InfinitePlace.Completion.ringEquiv_real_of_isReal 2024-12-07 03:05:19 29acab4 feat(Pow/Real): compare `x^y` to `x` (#19720) ESTIMATED CHANGES Modified Mathlib/Analysis/SpecialFunctions/Pow/Real.lean + theorem Real.rpow_le_rpow_of_exponent_ge_of_imp + theorem Real.rpow_le_self_of_le_one + theorem Real.rpow_le_self_of_one_le + theorem Real.rpow_lt_self_of_lt_one + theorem Real.rpow_lt_self_of_one_lt + theorem Real.self_le_rpow_of_le_one + theorem Real.self_le_rpow_of_one_le + theorem Real.self_lt_rpow_of_lt_one + theorem Real.self_lt_rpow_of_one_lt 2024-12-06 18:07:41 e95e196 chore(RingTheory/Multiplicity): squeeze an import (#19764) This was importing linarith, but it isn't ever used in the file, all that seems needed is finding the instance of Ring for the integers, used in just Int.emultiplicity_natAbs. ESTIMATED CHANGES Modified Mathlib/RingTheory/Multiplicity.lean 2024-12-06 18:07:40 dd148f4 chore: minor cleanup of Cardinal.Basic (#19631) Just rearranging material within the file. Not splitting today. ESTIMATED CHANGES Modified Mathlib/SetTheory/Cardinal/Basic.lean 2024-12-06 18:07:38 5f596a4 feat(Data/Fin/VecNotation): remove `simp` from `vecCons_const` (#19457) There are a couple of simp lemmas that trigger on `vecCons`, but not on the reduced form, hence let's remove the `simp` from `vecCons_const`. ESTIMATED CHANGES Modified Mathlib/Data/Fin/VecNotation.lean 2024-12-06 17:36:29 75b9e91 feat(Algebra/Order/SuccPred): `IsSuccLimit` theorems for `SuccAddOrder` (#19060) ESTIMATED CHANGES Modified Mathlib/Algebra/Order/SuccPred.lean + theorem Order.IsPredLimit.lt_sub_natCast + theorem Order.IsPredLimit.lt_sub_one + theorem Order.IsPredPrelimit.lt_sub_natCast + theorem Order.IsPredPrelimit.lt_sub_one + theorem Order.IsSuccLimit.add_natCast_lt + theorem Order.IsSuccLimit.add_one_lt + theorem Order.IsSuccPrelimit.add_natCast_lt + theorem Order.IsSuccPrelimit.add_one_lt Modified Mathlib/Order/SuccPred/Limit.lean + theorem Order.IsPredLimit.lt_top 2024-12-06 16:45:26 a4bbd29 feat: specialize theorems about filters disjoint from the cocompact filter to singleton sets (#19717) Let `X, Y` be types and let `f` be a filter on `Y` which is disjoint from the cocompact filter. We prove that `𝓝 x ×ˢ f ≤ 𝓝ˢ ({x} ×ˢ Set.univ)` for all `x : X`. This is a special case of the existing theorem `nhdsSet_prod_le_of_disjoint_cocompact`. We also prove the analogous result with `X` and `Y` swapped. ESTIMATED CHANGES Modified Mathlib/Topology/Compactness/Compact.lean + theorem nhds_prod_le_of_disjoint_cocompact +/- theorem prod_nhdsSet_le_of_disjoint_cocompact + theorem prod_nhds_le_of_disjoint_cocompact 2024-12-06 16:19:18 6d1d83d feat: Count the number of pairs of `Nat`s whose `lcm` is `n` (#17614) This result is central to controlling the error term in my formalisation of the Selberg sieve. Specifically to count the number of terms in a sum. ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Antidiag/Nat.lean + theorem Nat.card_pair_lcm_eq + theorem Nat.finMulAntidiag_three 2024-12-06 15:40:36 574c5f1 feat(MeasureTheory): Stieltjes measure of various intervals (#19625) From the TestingLowerBounds project. ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Measure/Stieltjes.lean + theorem StieltjesFunction.measure_Ici_of_tendsto_atTop_atTop + theorem StieltjesFunction.measure_Iic_of_tendsto_atBot_atBot + theorem StieltjesFunction.measure_Iio + theorem StieltjesFunction.measure_Iio_of_tendsto_atBot_atBot + theorem StieltjesFunction.measure_Ioi + theorem StieltjesFunction.measure_Ioi_of_tendsto_atTop_atTop + theorem StieltjesFunction.measure_univ_of_tendsto_atBot_atBot + theorem StieltjesFunction.measure_univ_of_tendsto_atTop_atTop + theorem StieltjesFunction.measure_zero + theorem StieltjesFunction.zero_apply 2024-12-06 15:26:42 1957fef feat(CategoryTheory): expand the API for AB axioms (#19200) This PR introduces typeclasses `HasExactColimitsOfShape J C` and `HasExactLimitsOfShape J C` which say that a `J`-shaped colimits (resp. limits) in a category `C` are exact in the sense of commuting with finite limits (resp. colimits). We redefine `AB4`, `AB4Star`, etc. in terms of these, and add also countable versions. Further, we generalize the proof of `AB5` implies `AB4` to a statement about `HasExactColimitsOfShape`, and add API for transporting instances of these classes along final/initial functors. ESTIMATED CHANGES Modified Mathlib/Algebra/Category/Grp/AB5.lean Modified Mathlib/CategoryTheory/Abelian/GrothendieckAxioms.lean +/- theorem CategoryTheory.AB4.of_AB5 + theorem CategoryTheory.AB4OfSize_shrink + theorem CategoryTheory.AB4Star.of_AB5Star + theorem CategoryTheory.AB4StarOfSize_shrink + theorem CategoryTheory.AB5OfSize_of_univLE + theorem CategoryTheory.AB5OfSize_shrink + theorem CategoryTheory.AB5StarOfSize_of_univLE + theorem CategoryTheory.AB5StarOfSize_shrink + theorem CategoryTheory.CountableAB4.of_countableAB5 + theorem CategoryTheory.CountableAB4.of_hasExactColimitsOfShape_nat + theorem CategoryTheory.CountableAB4.of_hasExactColimitsOfShape_nat_and_finite + theorem CategoryTheory.CountableAB4Star.of_countableAB5Star + theorem CategoryTheory.CountableAB4Star.of_hasExactLimitsOfShape_nat + theorem CategoryTheory.CountableAB4Star.of_hasExactLimitsOfShape_nat_and_finite + theorem CategoryTheory.hasExactColimitsOfShape_discrete_of_hasExactColimitsOfShape_finset_discrete + theorem CategoryTheory.hasExactColimitsOfShape_of_equiv + theorem CategoryTheory.hasExactColimitsOfShape_of_final + theorem CategoryTheory.hasExactColimitsOfShape_of_preservesMono + theorem CategoryTheory.hasExactLimitsOfShape_discrete_of_hasExactLimitsOfShape_finset_discrete_op + theorem CategoryTheory.hasExactLimitsOfShape_of_equiv + theorem CategoryTheory.hasExactLimitsOfShape_of_initial + theorem CategoryTheory.hasExactLimitsOfShape_of_preservesEpi Modified Mathlib/CategoryTheory/Limits/Filtered.lean + theorem CategoryTheory.Limits.hasCofilteredLimitsOfSize_of_univLE + theorem CategoryTheory.Limits.hasCofilteredLimitsOfSize_shrink + theorem CategoryTheory.Limits.hasFilteredColimitsOfSize_of_univLE + theorem CategoryTheory.Limits.hasFilteredColimitsOfSize_shrink Modified Mathlib/CategoryTheory/Limits/Shapes/Products.lean + theorem CategoryTheory.Limits.hasCoproducts_shrink + theorem CategoryTheory.Limits.hasProducts_shrink +/- theorem CategoryTheory.Limits.has_smallest_products_of_hasProducts 2024-12-06 14:50:53 6581d46 chore: eliminate `multiplicity` namespace (#19623) ESTIMATED CHANGES Modified Archive/Imo/Imo2019Q4.lean Modified Archive/Wiedijk100Theorems/PerfectNumbers.lean Modified Mathlib/Algebra/Polynomial/Div.lean + theorem Polynomial.finiteMultiplicity_X_sub_C + theorem Polynomial.finiteMultiplicity_of_degree_pos_of_monic - theorem Polynomial.multiplicity_X_sub_C_finite - theorem Polynomial.multiplicity_finite_of_degree_pos_of_monic Modified Mathlib/Algebra/Polynomial/RingDivision.lean Modified Mathlib/Algebra/Squarefree/Basic.lean - theorem multiplicity.finite_prime_left - theorem multiplicity.squarefree_iff_emultiplicity_le_one + theorem squarefree_iff_emultiplicity_le_one Modified Mathlib/Data/Nat/Choose/Factorization.lean Modified Mathlib/Data/Nat/Factorization/Basic.lean Modified Mathlib/Data/Nat/Multiplicity.lean Modified Mathlib/Data/Nat/Squarefree.lean Modified Mathlib/Data/Real/Irrational.lean Modified Mathlib/FieldTheory/Separable.lean Modified Mathlib/FieldTheory/SeparableDegree.lean Modified Mathlib/NumberTheory/FLT/Three.lean Modified Mathlib/NumberTheory/Multiplicity.lean + theorem Int.emultiplicity_pow_add_pow + theorem Int.emultiplicity_pow_sub_pow + theorem Nat.emultiplicity_pow_add_pow + theorem Nat.emultiplicity_pow_sub_pow + theorem emultiplicity_geom_sum₂_eq_one + theorem emultiplicity_pow_prime_pow_sub_pow_prime_pow + theorem emultiplicity_pow_prime_sub_pow_prime + theorem emultiplicity_pow_sub_pow_of_prime - theorem multiplicity.Int.pow_add_pow - theorem multiplicity.Int.pow_sub_pow - theorem multiplicity.Nat.pow_add_pow - theorem multiplicity.Nat.pow_sub_pow - theorem multiplicity.geom_sum₂_eq_one - theorem multiplicity.pow_prime_pow_sub_pow_prime_pow - theorem multiplicity.pow_prime_sub_pow_prime - theorem multiplicity.pow_sub_pow_of_prime Modified Mathlib/NumberTheory/Padics/PadicNorm.lean Modified Mathlib/NumberTheory/Padics/PadicNumbers.lean Modified Mathlib/NumberTheory/Padics/PadicVal/Basic.lean +/- theorem padicValNat.maxPowDiv_eq_multiplicity +/- theorem padicValRat.finite_int_prime_iff Modified Mathlib/NumberTheory/Padics/PadicVal/Defs.lean Modified Mathlib/RingTheory/ChainOfDivisors.lean Modified Mathlib/RingTheory/DedekindDomain/Ideal.lean Modified Mathlib/RingTheory/Multiplicity.lean + theorem FiniteMultiplicity.def + theorem FiniteMultiplicity.emultiplicity_eq_iff_multiplicity_eq + theorem FiniteMultiplicity.emultiplicity_eq_multiplicity + theorem FiniteMultiplicity.emultiplicity_le_of_multiplicity_le + theorem FiniteMultiplicity.emultiplicity_lt_of_multiplicity_lt + theorem FiniteMultiplicity.emultiplicity_self + theorem FiniteMultiplicity.exists_eq_pow_mul_and_not_dvd + theorem FiniteMultiplicity.le_multiplicity_of_le_emultiplicity + theorem FiniteMultiplicity.le_multiplicity_of_pow_dvd + theorem FiniteMultiplicity.lt_multiplicity_of_lt_emultiplicity + theorem FiniteMultiplicity.mul_iff + theorem FiniteMultiplicity.mul_left + theorem FiniteMultiplicity.mul_right + theorem FiniteMultiplicity.multiplicity_add_of_gt + theorem FiniteMultiplicity.multiplicity_eq_iff + theorem FiniteMultiplicity.multiplicity_le_multiplicity_iff + theorem FiniteMultiplicity.multiplicity_lt_iff_not_dvd + theorem FiniteMultiplicity.ne_zero + theorem FiniteMultiplicity.neg_iff + theorem FiniteMultiplicity.not_dvd_of_one_right + theorem FiniteMultiplicity.not_iff_forall + theorem FiniteMultiplicity.not_of_isUnit_left + theorem FiniteMultiplicity.not_of_one_left + theorem FiniteMultiplicity.not_of_unit_left + theorem FiniteMultiplicity.not_pow_dvd_of_multiplicity_lt + theorem FiniteMultiplicity.not_unit + theorem FiniteMultiplicity.one_right + theorem FiniteMultiplicity.or_of_add + theorem FiniteMultiplicity.pow + theorem FiniteMultiplicity.pow_dvd_iff_le_multiplicity + theorem Int.finiteMultiplicity_iff + theorem Int.finiteMultiplicity_iff_finiteMultiplicity_natAbs - theorem Int.multiplicity_finite_iff - theorem Int.multiplicity_finite_iff_natAbs_finite + theorem Nat.finiteMultiplicity_iff - theorem Nat.multiplicity_finite_iff + theorem Prime.finiteMultiplicity_mul - theorem Prime.multiplicity_finite_mul +/- theorem emultiplicity_lt_top + theorem finiteMultiplicity_iff_emultiplicity_ne_top + theorem finiteMultiplicity_mul_aux + theorem finiteMultiplicity_of_emultiplicity_eq_natCast - theorem finite_iff_emultiplicity_ne_top - theorem finite_of_emultiplicity_eq_natCast - theorem multiplicity.Finite.def - theorem multiplicity.Finite.emultiplicity_eq_iff_multiplicity_eq - theorem multiplicity.Finite.emultiplicity_eq_multiplicity - theorem multiplicity.Finite.emultiplicity_le_of_multiplicity_le - theorem multiplicity.Finite.emultiplicity_lt_of_multiplicity_lt - theorem multiplicity.Finite.emultiplicity_self - theorem multiplicity.Finite.exists_eq_pow_mul_and_not_dvd - theorem multiplicity.Finite.le_multiplicity_of_le_emultiplicity - theorem multiplicity.Finite.le_multiplicity_of_pow_dvd - theorem multiplicity.Finite.lt_multiplicity_of_lt_emultiplicity - theorem multiplicity.Finite.mul_iff - theorem multiplicity.Finite.mul_left - theorem multiplicity.Finite.mul_right - theorem multiplicity.Finite.multiplicity_add_of_gt - theorem multiplicity.Finite.multiplicity_eq_iff - theorem multiplicity.Finite.multiplicity_le_multiplicity_iff - theorem multiplicity.Finite.multiplicity_lt_iff_not_dvd - theorem multiplicity.Finite.ne_zero - theorem multiplicity.Finite.neg_iff - theorem multiplicity.Finite.not_dvd_of_one_right - theorem multiplicity.Finite.not_iff_forall - theorem multiplicity.Finite.not_of_isUnit_left - theorem multiplicity.Finite.not_of_one_left - theorem multiplicity.Finite.not_of_unit_left - theorem multiplicity.Finite.not_pow_dvd_of_multiplicity_lt - theorem multiplicity.Finite.not_unit - theorem multiplicity.Finite.one_right - theorem multiplicity.Finite.or_of_add - theorem multiplicity.Finite.pow - theorem multiplicity.Finite.pow_dvd_iff_le_multiplicity - theorem multiplicity.finite_mul_aux +/- theorem multiplicity_add_eq_min - theorem multiplicity_eq_one_of_not_finite + theorem multiplicity_eq_one_of_not_finiteMultiplicity +/- theorem multiplicity_mul Modified Mathlib/RingTheory/PowerSeries/Order.lean Modified Mathlib/RingTheory/RootsOfUnity/Minpoly.lean Modified Mathlib/RingTheory/RootsOfUnity/PrimitiveRoots.lean Modified Mathlib/RingTheory/UniqueFactorizationDomain/Multiplicity.lean + theorem FiniteMultiplicity.of_not_isUnit + theorem FiniteMultiplicity.of_prime_left - theorem multiplicity.finite_of_not_isUnit 2024-12-06 13:50:00 e80c918 chore(Filter/Bases): split (#18450) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/MeasureTheory/MeasurableSpace/Basic.lean Modified Mathlib/Order/Filter/AtTopBot.lean - theorem Filter.atBot_countable_basis - theorem Filter.atTop_countable_basis - theorem Filter.eventually_iff_seq_eventually - theorem Filter.exists_seq_antitone_tendsto_atTop_atBot - theorem Filter.exists_seq_forall_of_frequently - theorem Filter.exists_seq_monotone_tendsto_atTop_atTop - theorem Filter.exists_seq_tendsto - theorem Filter.frequently_iff_seq_forall - theorem Filter.frequently_iff_seq_frequently - theorem Filter.subseq_tendsto_of_neBot - theorem Filter.tendsto_iff_seq_tendsto - theorem Filter.tendsto_of_seq_tendsto - theorem Filter.tendsto_of_subseq_tendsto Modified Mathlib/Order/Filter/AtTopBot/Archimedean.lean Added Mathlib/Order/Filter/AtTopBot/CountablyGenerated.lean + theorem Filter.atBot_countable_basis + theorem Filter.atTop_countable_basis + theorem Filter.eventually_iff_seq_eventually + theorem Filter.exists_seq_antitone_tendsto_atTop_atBot + theorem Filter.exists_seq_forall_of_frequently + theorem Filter.exists_seq_monotone_tendsto_atTop_atTop + theorem Filter.exists_seq_tendsto + theorem Filter.frequently_iff_seq_forall + theorem Filter.frequently_iff_seq_frequently + theorem Filter.subseq_tendsto_of_neBot + theorem Filter.tendsto_iff_seq_tendsto + theorem Filter.tendsto_of_seq_tendsto + theorem Filter.tendsto_of_subseq_tendsto Modified Mathlib/Order/Filter/AtTopBot/Field.lean Modified Mathlib/Order/Filter/Bases.lean - structure Filter.CountableFilterBasis - theorem Filter.HasAntitoneBasis.hasBasis_ge - theorem Filter.HasBasis.exists_antitone_subbasis - theorem Filter.HasBasis.isCountablyGenerated - theorem Filter.HasCountableBasis.isCountablyGenerated - structure Filter.HasCountableBasis - structure Filter.IsCountableBasis - theorem Filter.antitone_seq_of_seq - theorem Filter.countable_biInf_eq_iInf_seq' - theorem Filter.countable_biInf_eq_iInf_seq - theorem Filter.countable_biInf_principal_eq_seq_iInf - theorem Filter.exists_antitone_basis - theorem Filter.exists_antitone_seq - theorem Filter.isCountablyGenerated_biInf_principal - theorem Filter.isCountablyGenerated_bot - theorem Filter.isCountablyGenerated_iff_exists_antitone_basis - theorem Filter.isCountablyGenerated_of_seq - theorem Filter.isCountablyGenerated_principal - theorem Filter.isCountablyGenerated_pure - theorem Filter.isCountablyGenerated_seq - theorem Filter.isCountablyGenerated_top Modified Mathlib/Order/Filter/Cofinite.lean Added Mathlib/Order/Filter/CountablyGenerated.lean + structure Filter.CountableFilterBasis + theorem Filter.HasAntitoneBasis.hasBasis_ge + theorem Filter.HasBasis.exists_antitone_subbasis + theorem Filter.HasBasis.isCountablyGenerated + theorem Filter.HasCountableBasis.isCountablyGenerated + structure Filter.HasCountableBasis + structure Filter.IsCountableBasis + theorem Filter.antitone_seq_of_seq + theorem Filter.countable_biInf_eq_iInf_seq' + theorem Filter.countable_biInf_eq_iInf_seq + theorem Filter.countable_biInf_principal_eq_seq_iInf + theorem Filter.exists_antitone_basis + theorem Filter.exists_antitone_seq + theorem Filter.isCountablyGenerated_biInf_principal + theorem Filter.isCountablyGenerated_bot + theorem Filter.isCountablyGenerated_iff_exists_antitone_basis + theorem Filter.isCountablyGenerated_of_seq + theorem Filter.isCountablyGenerated_principal + theorem Filter.isCountablyGenerated_pure + theorem Filter.isCountablyGenerated_seq + theorem Filter.isCountablyGenerated_top Modified Mathlib/Order/Filter/Defs.lean + def Filter.pi Modified Mathlib/Order/Filter/Pi.lean - def Filter.pi Modified Mathlib/Topology/Bases.lean 2024-12-06 13:30:14 997abd1 fead: Add `lift_unique`, `lift_unique'` to `IsFractionRing` (#19124) Add `lift_unique`, `lift_unique'` to `IsFractionRing` ESTIMATED CHANGES Modified Mathlib/RingTheory/Localization/FractionRing.lean + theorem IsFractionRing.injective_comp_algebraMap + theorem IsFractionRing.lift_unique + theorem IsFractionRing.ringHom_ext 2024-12-06 11:40:54 ebbff3d chore(Combinatorics/Hall): remove porting note, others will be fixed by lean#6123 (#19759) ESTIMATED CHANGES Modified Mathlib/Combinatorics/Hall/Basic.lean 2024-12-06 09:37:03 80e8a21 feat(RingTheory/Flat/Basic): add `Algebra.TensorProduct.include(Left|Right)_injective` (#19745) which states that if certain `algebraMap` is injective and certain module is flat, then `Algebra.TensorProduct.include(Left|Right)` is injective. ESTIMATED CHANGES Modified Mathlib/RingTheory/Flat/Basic.lean + theorem Algebra.TensorProduct.includeLeft_injective + theorem Algebra.TensorProduct.includeRight_injective 2024-12-06 09:28:46 25a2ed3 chore: address some porting notes for Jacobson ideals (#19752) ESTIMATED CHANGES Modified Mathlib/RingTheory/Jacobson/Ideal.lean Modified Mathlib/RingTheory/Jacobson/Polynomial.lean 2024-12-06 08:34:42 6c1905d chore(RingTheory/JacobsonIdeal): split out Polynomial (#19734) Also create a folder RingTheory/Jacobson containing three files Ideal (originally JacobsonIdeal), Ring (original Jacobson), and Polynomial (new). 22 files have transitive imports reduced by 100 or more. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/CharP/LocalRing.lean Modified Mathlib/AlgebraicGeometry/PrimeSpectrum/Jacobson.lean Modified Mathlib/LinearAlgebra/Matrix/Ideal.lean Modified Mathlib/RingTheory/AdicCompletion/Basic.lean Modified Mathlib/RingTheory/Ideal/Over.lean Renamed Mathlib/RingTheory/JacobsonIdeal.lean to Mathlib/RingTheory/Jacobson/Ideal.lean - theorem Ideal.jacobson_bot_polynomial_le_sInf_map_maximal - theorem Ideal.jacobson_bot_polynomial_of_jacobson_bot Added Mathlib/RingTheory/Jacobson/Polynomial.lean + theorem Ideal.jacobson_bot_polynomial_le_sInf_map_maximal + theorem Ideal.jacobson_bot_polynomial_of_jacobson_bot Renamed Mathlib/RingTheory/Jacobson.lean to Mathlib/RingTheory/Jacobson/Ring.lean Modified Mathlib/RingTheory/LocalRing/MaximalIdeal/Basic.lean Modified Mathlib/RingTheory/LocalRing/Subring.lean Modified Mathlib/RingTheory/Nakayama.lean Modified Mathlib/RingTheory/Nullstellensatz.lean Modified Mathlib/RingTheory/Valuation/LocalSubring.lean 2024-12-06 07:03:15 ec0985a feat(CategoryTheory): retracts of objects and morphisms (#19233) Defines retracts of objects and morphisms, and basic API. Used in #19135. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/MorphismProperty/Retract.lean + theorem CategoryTheory.MorphismProperty.of_retract Added Mathlib/CategoryTheory/Retract.lean + def CategoryTheory.Retract.map + def CategoryTheory.Retract.splitEpi + def CategoryTheory.Retract.splitMono + structure CategoryTheory.Retract + theorem CategoryTheory.RetractArrow.i_w + def CategoryTheory.RetractArrow.left + theorem CategoryTheory.RetractArrow.r_w + theorem CategoryTheory.RetractArrow.retract_left + theorem CategoryTheory.RetractArrow.retract_right + def CategoryTheory.RetractArrow.right 2024-12-06 06:27:25 8e98573 chore: bump dependencies (#19758) ESTIMATED CHANGES Modified lake-manifest.json Modified lakefile.lean 2024-12-06 05:31:08 0ae2683 feat: power of product of two reflections (#13270) Let $M$ be a module over a commutative ring $R$. Let $x, y \in M$ and $f, g \in M^*$ with $f(x) = g(y) = 2$. The corresponding reflections $r_1, r_2 \colon M \to M$ are given by $r_1z = z - f(z) x$ and $r_2 z = z - g(z) y$. These are linear automorphisms of $M$. We prove that for all $z \in M$ and all $m \in \mathbb{Z}$, we have: $$(r_1 r_2)^m z = z + S_{\left\lfloor \frac{m-2}{2} \right \rfloor}(t) (S_{\left\lfloor \frac{m-1}{2} \right \rfloor}(t) + S_{\left\lfloor \frac{m-3}{2} \right \rfloor}(t)) (g(x) f(z) y - g(z) y - f(z) x) + S_{\left\lfloor \frac{m-1}{2} \right \rfloor}(t) (S_{\left\lfloor \frac{m}{2} \right \rfloor}(t) + S_{\left\lfloor \frac{m-2}{2} \right \rfloor}(t)) (f(y) g(z) x - f(z) x - g(z) y)$$ $$(r_1 r_2)^m x = (S_{m}(t) + S_{m - 1}(t)) x - S_{m-1} g(x) y$$ $$r_2(r_1 r_2)^m x = (S_{m}(t) + S_{m - 1}(t)) x - S_{m} g(x) y$$ where $t = f(y) g(x) - 2$ and $S_n$ refers to a Chebyshev $S$-polynomial. These formulas may look ridiculous, but they are necessary for constructing reflection representations of a Coxeter group over an arbitrary ring. See #13291 for more details. ESTIMATED CHANGES Modified Mathlib/Algebra/Module/Equiv/Basic.lean + theorem LinearEquiv.mul_apply Modified Mathlib/LinearAlgebra/Reflection.lean + theorem Module.reflection_inv + theorem Module.reflection_mul_reflection_mul_reflection_pow_apply_self + theorem Module.reflection_mul_reflection_mul_reflection_zpow_apply_self + theorem Module.reflection_mul_reflection_pow + theorem Module.reflection_mul_reflection_pow_apply + theorem Module.reflection_mul_reflection_pow_apply_self + theorem Module.reflection_mul_reflection_zpow + theorem Module.reflection_mul_reflection_zpow_apply + theorem Module.reflection_mul_reflection_zpow_apply_self Modified Mathlib/RingTheory/Polynomial/Chebyshev.lean + theorem Polynomial.Chebyshev.S_sq_add_S_sq 2024-12-05 22:47:52 d070358 chore: run lean4checker on most recent nightly-testing-YYYY-MM-DD tag (#19735) Hopefully this would have given us an earlier heads-up about the recent lean4checker problem. ESTIMATED CHANGES Modified .github/workflows/lean4checker.yml 2024-12-05 16:41:15 36c7c9d feat(Algebra/BigOperators/Group/Finset) : Finset.prod_disjoint_filters (#19712) Decomposes the product(sum) over two filters where they are pointwise disjoint. Used in #19432 ESTIMATED CHANGES Modified Mathlib/Algebra/BigOperators/Group/Finset.lean + theorem Finset.prod_filter_xor Modified Mathlib/Data/Finset/Filter.lean + theorem Finset.Finset.disjoint_filter_and_not_filter 2024-12-05 16:32:07 0331c85 chore (ModelTheory/Fraisse): simplify IsFraisse definition (#19041) Remove the condition of being equiv_invariant in IsFraisse Deletions: - IsFraisse.is_equiv_invariant ESTIMATED CHANGES Modified Mathlib/ModelTheory/Fraisse.lean + theorem FirstOrder.Language.IsFraisse.is_equiv_invariant 2024-12-05 10:46:42 67d092e feat(Algebra/Vertex): Define vertex operators (#19298) A vertex operator for an `R`-module `V` is an `R`-module map from `V` to Laurent series on `V`. This PR defines vertex operators and introduces a normalized indexing for coefficients. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Vertex/HVertexOperator.lean + theorem HVertexOperator.add_coeff + theorem HVertexOperator.smul_coeff Added Mathlib/Algebra/Vertex/VertexOperator.lean + theorem VertexOperator.coeff_eq_ncoeff + theorem VertexOperator.coeff_eq_zero_of_lt_order + theorem VertexOperator.ext + def VertexOperator.ncoeff + theorem VertexOperator.ncoeff_add + theorem VertexOperator.ncoeff_eq_zero_of_lt_order + theorem VertexOperator.ncoeff_of_coeff + theorem VertexOperator.ncoeff_smul + theorem VertexOperator.of_coeff_apply_coeff Modified docs/references.bib 2024-12-05 09:31:14 498c8c3 refactor(Algebra/Category/ModuleCat): make `ModuleCat.Hom` a structure (#19511) This PR follows the approach of #19065 to solve painful definitional equalities problems by forbidding the identification of `A ⟶ B` and `A →ₗ[R] B`. These are not equal reducibly, so tactics get confused if one is replaced by the other. There seem to be a few regressions caused by defeq abuse that we were able to get away with previously, but some subtle elaboration differences made it evident. Otherwise the cost is inserting many `.hom`s and `asHom`s. A few steps that might clean up the diff, but would be too much work to incorporate in this PR: * Make the `ext` tactic pick up `TensorProduct.ext` again. * Replace the defeq abuse between `(restrictScalars f).obj M` and `M` with explicit maps going back and forth. Overall quite a few proofs could be cleaned up at the cost of more bookkeeping. ESTIMATED CHANGES Modified Counterexamples/Pseudoelement.lean Modified Mathlib/Algebra/Category/AlgebraCat/Monoidal.lean Modified Mathlib/Algebra/Category/CoalgebraCat/Basic.lean Modified Mathlib/Algebra/Category/CoalgebraCat/ComonEquivalence.lean +/- def CoalgebraCat.ofComonObj +/- def CoalgebraCat.toComonObj Modified Mathlib/Algebra/Category/CoalgebraCat/Monoidal.lean Modified Mathlib/Algebra/Category/FGModuleCat/Basic.lean + theorem FGModuleCat.FGModuleCatEvaluation_apply' + theorem FGModuleCat.Iso.conj_hom_eq_conj + theorem FGModuleCat.hom_ext +/- theorem FGModuleCat.ihom_obj - def FGModuleCat.of Modified Mathlib/Algebra/Category/FGModuleCat/Limits.lean Modified Mathlib/Algebra/Category/Grp/Injective.lean +/- theorem AddCommGrp.injective_as_module_iff Modified Mathlib/Algebra/Category/Grp/ZModuleEquivalence.lean Modified Mathlib/Algebra/Category/ModuleCat/Abelian.lean Modified Mathlib/Algebra/Category/ModuleCat/Adjunctions.lean Modified Mathlib/Algebra/Category/ModuleCat/Algebra.lean Modified Mathlib/Algebra/Category/ModuleCat/Basic.lean + def ModuleCat.Hom.hom₂ + theorem ModuleCat.Hom.hom₂_ofHom₂ + structure ModuleCat.Hom - def ModuleCat.asHomLeft - def ModuleCat.asHomRight - theorem ModuleCat.coe_comp +/- theorem ModuleCat.coe_of + theorem ModuleCat.comp_apply - theorem ModuleCat.comp_def + def ModuleCat.endMulEquiv - theorem ModuleCat.ext +/- theorem ModuleCat.forget_map + theorem ModuleCat.forget_obj + def ModuleCat.homAddEquiv + def ModuleCat.homEquiv + def ModuleCat.homLinearEquiv + theorem ModuleCat.hom_add + theorem ModuleCat.hom_bijective + theorem ModuleCat.hom_comp + theorem ModuleCat.hom_ext + theorem ModuleCat.hom_id + theorem ModuleCat.hom_injective + theorem ModuleCat.hom_inv_apply + theorem ModuleCat.hom_neg + theorem ModuleCat.hom_nsmul + theorem ModuleCat.hom_ofHom + theorem ModuleCat.hom_smul + theorem ModuleCat.hom_sub + theorem ModuleCat.hom_sum + theorem ModuleCat.hom_surjective + theorem ModuleCat.hom_zero + theorem ModuleCat.hom_zsmul +/- theorem ModuleCat.id_apply + theorem ModuleCat.inv_hom_apply - def ModuleCat.of - def ModuleCat.ofHom +/- theorem ModuleCat.ofHom_apply + theorem ModuleCat.ofHom_comp + theorem ModuleCat.ofHom_hom + theorem ModuleCat.ofHom_id + def ModuleCat.ofHom₂ + theorem ModuleCat.ofHom₂_hom₂ Modified Mathlib/Algebra/Category/ModuleCat/Biproducts.lean +/- def ModuleCat.HasLimit.lift Modified Mathlib/Algebra/Category/ModuleCat/ChangeOfRings.lean +/- def ModuleCat.CoextendScalars.map' +/- theorem ModuleCat.CoextendScalars.smul_apply' +/- def ModuleCat.ExtendRestrictScalarsAdj.Counit.map +/- def ModuleCat.ExtendRestrictScalarsAdj.Unit.map +/- theorem ModuleCat.ExtendScalars.map'_id +/- def ModuleCat.RestrictScalars.obj' + theorem ModuleCat.RestrictionCoextensionAdj.HomEquiv.fromRestriction_hom_apply_apply + theorem ModuleCat.RestrictionCoextensionAdj.HomEquiv.toRestriction_hom_apply Modified Mathlib/Algebra/Category/ModuleCat/Differentials/Basic.lean Modified Mathlib/Algebra/Category/ModuleCat/Differentials/Presheaf.lean Modified Mathlib/Algebra/Category/ModuleCat/EpiMono.lean +/- theorem ModuleCat.epi_iff_range_eq_top +/- theorem ModuleCat.ker_eq_bot_of_mono +/- theorem ModuleCat.mono_iff_ker_eq_bot +/- theorem ModuleCat.range_eq_top_of_epi Modified Mathlib/Algebra/Category/ModuleCat/FilteredColimits.lean Modified Mathlib/Algebra/Category/ModuleCat/Free.lean Modified Mathlib/Algebra/Category/ModuleCat/Images.lean Modified Mathlib/Algebra/Category/ModuleCat/Injective.lean Modified Mathlib/Algebra/Category/ModuleCat/Kernels.lean Modified Mathlib/Algebra/Category/ModuleCat/Limits.lean Modified Mathlib/Algebra/Category/ModuleCat/Monoidal/Basic.lean + theorem ModuleCat.ofHom₂_compr₂ Modified Mathlib/Algebra/Category/ModuleCat/Monoidal/Closed.lean Modified Mathlib/Algebra/Category/ModuleCat/Monoidal/Symmetric.lean Modified Mathlib/Algebra/Category/ModuleCat/Presheaf.lean Modified Mathlib/Algebra/Category/ModuleCat/Presheaf/ChangeOfRings.lean Modified Mathlib/Algebra/Category/ModuleCat/Presheaf/Monoidal.lean Modified Mathlib/Algebra/Category/ModuleCat/Presheaf/Pushforward.lean + theorem PresheafOfModules.pushforward_map_app_apply' + theorem PresheafOfModules.pushforward_obj_map_apply' Modified Mathlib/Algebra/Category/ModuleCat/Presheaf/Sheafify.lean + theorem PresheafOfModules.toSheafify_app_apply' Modified Mathlib/Algebra/Category/ModuleCat/Products.lean Modified Mathlib/Algebra/Category/ModuleCat/Projective.lean Modified Mathlib/Algebra/Category/ModuleCat/Sheaf.lean Modified Mathlib/Algebra/Category/ModuleCat/Sheaf/ChangeOfRings.lean Modified Mathlib/Algebra/Category/ModuleCat/Subobject.lean +/- theorem ModuleCat.toKernelSubobject_arrow Modified Mathlib/Algebra/Category/ModuleCat/Tannaka.lean Modified Mathlib/Algebra/Homology/LocalCohomology.lean Modified Mathlib/Algebra/Homology/ShortComplex/ModuleCat.lean +/- def CategoryTheory.ShortComplex.moduleCatToCycles Modified Mathlib/AlgebraicGeometry/AffineSpace.lean Modified Mathlib/AlgebraicGeometry/Modules/Tilde.lean Modified Mathlib/CategoryTheory/Abelian/Pseudoelements.lean Modified Mathlib/CategoryTheory/Limits/ConcreteCategory/WithAlgebraicStructures.lean Modified Mathlib/CategoryTheory/Linear/Yoneda.lean Modified Mathlib/CategoryTheory/Monoidal/Internal/Module.lean Modified Mathlib/Condensed/Discrete/Module.lean Modified Mathlib/LinearAlgebra/QuadraticForm/QuadraticModuleCat.lean Modified Mathlib/RepresentationTheory/Character.lean Modified Mathlib/RepresentationTheory/FDRep.lean +/- theorem FDRep.dualTensorIsoLinHom_hom_hom + theorem FDRep.endMulEquiv_comp_ρ + theorem FDRep.endMulEquiv_symm_comp_ρ + theorem FDRep.hom_action_ρ Modified Mathlib/RepresentationTheory/GroupCohomology/Basic.lean Modified Mathlib/RepresentationTheory/GroupCohomology/LowDegree.lean Modified Mathlib/RepresentationTheory/GroupCohomology/Resolution.lean +/- theorem groupCohomology.resolution.d_eq Modified Mathlib/RepresentationTheory/Invariants.lean Modified Mathlib/RepresentationTheory/Rep.lean +/- theorem Rep.Action_ρ_eq_ρ +/- theorem Rep.linearization_map_hom +/- theorem Rep.linearization_ε_hom + theorem Rep.ofHom_ρ + theorem Rep.ρ_hom Modified Mathlib/RingTheory/AdicCompletion/AsTensorProduct.lean Modified Mathlib/RingTheory/Coalgebra/TensorProduct.lean Modified Mathlib/RingTheory/Flat/CategoryTheory.lean Modified Mathlib/Topology/Category/Profinite/Nobeling.lean Added MathlibTest/CategoryTheory/ConcreteCategory/ModuleCat.lean 2024-12-05 08:47:15 39eac4b feat(FTaylorSeries): add `congr_set` lemmas (#19737) ESTIMATED CHANGES Modified Mathlib/Analysis/Calculus/ContDiff/FTaylorSeries.lean + theorem ftaylorSeriesWithin_insert + theorem iteratedFDerivWithin_congr_set' + theorem iteratedFDerivWithin_insert 2024-12-05 08:47:13 66d3845 feat: add `HasFTaylorSeriesUpToOn.congr_series` (#19722) ESTIMATED CHANGES Modified Mathlib/Analysis/Calculus/ContDiff/FTaylorSeries.lean + theorem HasFTaylorSeriesUpToOn.congr_series 2024-12-05 08:47:12 ea26659 feat(RingTheory/Algebraic): transitivity of algebraicity (#19660) Main results: * `Subalgebra.algebraicClosure`: If `R` is a domain and `S` is an arbitrary `R`-algebra, then the elements of `S` that are algebraic over `R` form a subalgebra. (The proofs are due to Matthé van der Lee on [MathOverflow](https://mathoverflow.net/questions/482944/when-do-algebraic-elements-form-a-subalgebra#comment1257824_482944).) * `Algebra.IsAlgebraic.trans'`: If `A/S/R` is a tower of algebras and both `A/S` and `S/R` are algebraic, then `A/R` is also algebraic, provided that `S` has no zero divisors and `algebraMap S A` is injective (so `S` can be regarded as an `R`-subalgebra of `A`). * `Transcendental.extendScalars`: an element of an `R`-algebra that is transcendental over `R` remains transcendental over any algebraic `R`-subalgebra that has no zero divisors. * `IsLocalization.isAlgebraic`: a localization of a nontrivial commutative ring is always algebraic. Used to golf `exists_integral_multiples`. Auxiliary result: * `IsAlgebraic.iff_exists_smul_integral`: If `R` is reduced and `S` is an `R`-algebra with injective `algebraMap`, then an element of `S` is algebraic over `R` iff some `R`-multiple is integral over `R`. ESTIMATED CHANGES Modified Mathlib/FieldTheory/AlgebraicClosure.lean + theorem algebraicClosure_toSubalgebra Modified Mathlib/RingTheory/Algebraic/Basic.lean +/- theorem Algebra.IsAlgebraic.exists_smul_eq_mul + theorem Algebra.IsAlgebraic.nontrivial +/- theorem Algebra.Transcendental.infinite + theorem Algebra.injective_of_transcendental + theorem Algebra.isAlgebraic_of_not_injective + theorem IsAlgebraic.exists_nonzero_eq_adjoin_mul + theorem IsAlgebraic.nontrivial + theorem IsLocalization.isAlgebraic +/- theorem Transcendental.infinite Modified Mathlib/RingTheory/Algebraic/Integral.lean + theorem Algebra.IsAlgebraic.exists_integral_multiples +/- theorem Algebra.IsAlgebraic.of_isIntegralClosure + theorem Algebra.IsAlgebraic.trans' + theorem Algebra.IsAlgebraic.trans_isIntegral + theorem Algebra.IsIntegral.trans_isAlgebraic + theorem Algebra.isAlgebraic_adjoin_iff + theorem Algebra.isAlgebraic_adjoin_of_nonempty + theorem Algebra.isAlgebraic_adjoin_singleton_iff + theorem IsAlgebraic.exists_integral_multiple + theorem IsAlgebraic.iff_exists_smul_integral + theorem IsAlgebraic.of_mul + theorem IsAlgebraic.of_smul + theorem IsAlgebraic.of_smul_isIntegral + theorem IsAlgebraic.restrictScalars + theorem IsAlgebraic.restrictScalars_of_isIntegral + theorem IsIntegral.trans_isAlgebraic + def Subalgebra.algebraicClosure + theorem Subalgebra.algebraicClosure_eq_integralClosure + theorem Transcendental.extendScalars + theorem Transcendental.extendScalars_of_isIntegral + theorem Transcendental.subalgebraAlgebraicClosure - theorem exists_integral_multiple + theorem integralClosure_le_algebraicClosure Modified Mathlib/RingTheory/DedekindDomain/IntegralClosure.lean Modified Mathlib/RingTheory/Localization/Integral.lean 2024-12-05 08:47:10 7cf71cd feat: every chain is contained in a flag (#19615) From LeanCamCombi ESTIMATED CHANGES Modified Mathlib/Order/Zorn.lean + theorem Flag.exists_mem + theorem Flag.exists_mem_mem + theorem IsChain.exists_subset_flag 2024-12-05 08:47:09 967e4d7 chore(Finset): rename `Insert.comm` to `insert_comm` (#19610) and add the `DecidablePred Finset.Nontrivial` instance. From GrowthInGroups (LeanCamCombi) ESTIMATED CHANGES Modified Mathlib/Data/Finset/Insert.lean - theorem Finset.Insert.comm + theorem Finset.insert_comm Modified Mathlib/NumberTheory/FLT/Three.lean 2024-12-05 08:47:08 76a532b feat(GroupTheory/SpecificGroups/ZGroup): A nilpotent group with cyclic Sylow subgroups is cyclic (#19590) This PR proves that a nilpotent Z-group (a group with cyclic Sylow subgroups) is cyclic. ESTIMATED CHANGES Modified Mathlib/GroupTheory/SpecificGroups/ZGroup.lean + theorem IsZGroup.exponent_eq_card 2024-12-05 08:47:06 f296c58 chore(Probability/Kernel): create a Composition folder (#19569) This PR creates a new folder and moves three files: - the `Composition` file becomes `Composition/Basic` - `IntegralCompProd` moves to `Composition/IntegralCompProd` - `MeasureCompProd` moves to `Composition/MeasureCompProd` ESTIMATED CHANGES Modified Mathlib.lean Renamed Mathlib/Probability/Kernel/Composition.lean to Mathlib/Probability/Kernel/Composition/Basic.lean Renamed Mathlib/Probability/Kernel/IntegralCompProd.lean to Mathlib/Probability/Kernel/Composition/IntegralCompProd.lean Renamed Mathlib/Probability/Kernel/MeasureCompProd.lean to Mathlib/Probability/Kernel/Composition/MeasureCompProd.lean Modified Mathlib/Probability/Kernel/Disintegration/Basic.lean Modified Mathlib/Probability/Kernel/Disintegration/CDFToKernel.lean Modified Mathlib/Probability/Kernel/Disintegration/Density.lean Modified Mathlib/Probability/Kernel/Disintegration/StandardBorel.lean Modified Mathlib/Probability/Kernel/Invariance.lean 2024-12-05 08:47:05 2a48502 feat: left division by a nonzero element as a `Perm` (#19458) ESTIMATED CHANGES Modified Mathlib/Algebra/GroupWithZero/Units/Equiv.lean + def Equiv.divLeft₀ +/- def Equiv.divRight₀ +/- def unitsEquivNeZero 2024-12-05 08:47:04 7392ce6 feat: add `mul_min` and `min_mul` (#18926) ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Group/Unbundled/Basic.lean Modified Mathlib/Algebra/Order/Monoid/Unbundled/Basic.lean +/- theorem max_mul + theorem min_mul + theorem mul_min 2024-12-05 08:24:08 a69e6fa feat: continuous image of a filter disjoint from the cocompact filter (#19718) We prove that if a filter is disjoint from the cocompact filter, then so is its image under any continuous function. ESTIMATED CHANGES Modified Mathlib/Topology/Compactness/Compact.lean + theorem disjoint_map_cocompact 2024-12-05 07:37:53 06422de feat(Analysis/BoxIntegral/UnitPartition): Prove results linking integral point counting and integrals (#12405) We prove the following result: > Let `s` be a bounded, measurable set of `ι → ℝ` whose frontier has zero volume and let `F` be a > continuous function. Then the limit as `n → ∞` of `∑ F x / n ^ card ι`, where the sum is over the > points in `s ∩ n⁻¹ • (ι → ℤ)`, tends to the integral of `F` over `s`. using Riemann integration. As a special case, we deduce that > The limit as `n → ∞` of `card (s ∩ n⁻¹ • (ι → ℤ)) / n ^ card ι` tends to the volume of `s`. Both of these statements are for a variable `n : ℕ`. However, with the additional hypothesis: `x • s ⊆ y • s` whenever `0 < x ≤ y`, we generalize the previous statement to a real variable. This PR is part of the proof of the Analytic Class Number Formula. ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Indicator.lean + theorem Set.eqOn_mulIndicator' Modified Mathlib/Algebra/Module/ZLattice/Basic.lean + theorem ZSpan.setFinite_inter + theorem ZSpan.smul Modified Mathlib/Analysis/BoxIntegral/UnitPartition.lean + theorem BoxIntegral.unitPartition.eq_of_mem_smul_span_of_index_eq_index + theorem BoxIntegral.unitPartition.integralSum_eq_tsum_div + theorem BoxIntegral.unitPartition.mem_smul_span_iff + theorem BoxIntegral.unitPartition.tag_index_eq_self_of_mem_smul_span + theorem BoxIntegral.unitPartition.tag_mem_smul_span + theorem tendsto_card_div_pow_atTop_volume' + theorem tendsto_card_div_pow_atTop_volume + theorem tendsto_tsum_div_pow_atTop_integral Modified Mathlib/LinearAlgebra/Basis/Basic.lean + theorem Basis.repr_isUnitSMul Modified Mathlib/Topology/ContinuousOn.lean + theorem ContinuousOn.continuousAt_mulIndicator 2024-12-05 06:30:00 3c02830 perf: micro-optimise some syntax linters (#19733) Perform a few local tweaks - which may or may not improve performance, but surely are more readable. - remove superfluous toArray or toList calls - use `HashSet.ofArray` instead of `ofList` or calling `insert` many times - use `findD` instead of `find?` followed by `getD` - replace `Array.push` in a loop with `Array.append` (currently performance-neutral, but this might change in the future) Inspired by #19730. ESTIMATED CHANGES Modified Mathlib/Tactic/Linter/FlexibleLinter.lean Modified Mathlib/Tactic/Linter/Multigoal.lean Modified Mathlib/Tactic/Linter/UnusedTactic.lean 2024-12-05 05:55:22 6a9d0fe refactor(SetTheory/Ordinal/Arithmetic): redefine `IsLimit` to `IsSuccLimit` (#19054) This is a temporary stepping stone before outright deprecating `IsLimit`. ESTIMATED CHANGES Modified Mathlib/Order/SuccPred/Limit.lean + theorem Order.IsSuccLimit.bot_lt + theorem Order.isMin_or_mem_range_succ_or_isSuccLimit Modified Mathlib/SetTheory/Cardinal/Arithmetic.lean Modified Mathlib/SetTheory/Cardinal/Cofinality.lean Modified Mathlib/SetTheory/Ordinal/Arithmetic.lean + theorem Ordinal.IsLimit.ne_zero +/- theorem Ordinal.IsNormal.isLimit + theorem Ordinal.isLimit_iff +/- theorem Ordinal.isLimit_omega0 +/- theorem Ordinal.isLimit_sub +/- theorem Ordinal.limitRecOn_zero +/- theorem Ordinal.not_succ_isLimit +/- theorem Ordinal.not_zero_isLimit Modified Mathlib/SetTheory/Ordinal/Notation.lean Modified Mathlib/SetTheory/Ordinal/Principal.lean +/- theorem Ordinal.isLimit_of_principal_add Modified Mathlib/SetTheory/Ordinal/Topology.lean Modified Mathlib/Topology/Category/Profinite/Nobeling.lean 2024-12-05 05:05:05 1f334b5 chore: make use of `let` more robust (#19736) We are considering changing the behaviour of term mode let. Mathlib would largely be unscathed; approximately 300 out of the 3000 term mode lets would need to change (either to the existing `letI`, or we might give that a new name). However these two declarations would break, and the changes in this PR, which hopefully are fairly neutral, will avoid the problem. ESTIMATED CHANGES Modified Mathlib/Data/Nat/Factors.lean Modified Mathlib/Logic/Equiv/TransferInstance.lean 2024-12-05 03:56:18 6392413 feat(Analysis/Convex/Topology): closure of interior and interior of closure for a convex set (#19170) For a convex set `s` with non-empty interior, `closure (interior s) = closure s` and `interior (closure s) = interior s`. ESTIMATED CHANGES Modified Mathlib/Analysis/Convex/Topology.lean + theorem Convex.closure_interior_eq_closure_of_nonempty_interior + theorem Convex.interior_closure_eq_interior_of_nonempty_interior 2024-12-05 01:28:09 1ec3e2a chore: golf `Submodule.mem_of_span_eq_top_of_smul_pow_mem` (#19707) using a recent lemma `Ideal.span_range_pow_eq_top`. ESTIMATED CHANGES Modified Mathlib/RingTheory/Ideal/Operations.lean 2024-12-05 01:28:08 80e107a chore: add more gcongr attributes (#17610) This PR tags (analogues of) lemmas tagged with `mono` also with `gcongr`. ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Subgroup/Basic.lean Modified Mathlib/Algebra/Group/Submonoid/Pointwise.lean +/- theorem AddSubmonoid.mul_le_mul +/- theorem AddSubmonoid.mul_le_mul_left +/- theorem AddSubmonoid.mul_le_mul_right Modified Mathlib/Algebra/Lie/Solvable.lean Modified Mathlib/Algebra/Lie/Submodule.lean Modified Mathlib/Algebra/Module/Submodule/Bilinear.lean Modified Mathlib/Algebra/Ring/Subring/Basic.lean + theorem Subring.toAddSubgroup_le_toAddSubgroup + theorem Subring.toAddSubgroup_lt_toAddSubgroup + theorem Subring.toSubsemiring_le_toSubsemiring + theorem Subring.toSubsemiring_lt_toSubsemiring Modified Mathlib/Algebra/Ring/Subsemiring/Basic.lean Modified Mathlib/Analysis/BoxIntegral/Box/Basic.lean Modified Mathlib/Analysis/BoxIntegral/Partition/Filter.lean Modified Mathlib/Analysis/FunctionalSpaces/SobolevInequality.lean Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Arctan.lean + theorem Real.arctan_le_arctan + theorem Real.arctan_lt_arctan Modified Mathlib/Combinatorics/SimpleGraph/Basic.lean Modified Mathlib/Combinatorics/SimpleGraph/Clique.lean Modified Mathlib/Combinatorics/SimpleGraph/Subgraph.lean Modified Mathlib/Deprecated/Subgroup.lean Modified Mathlib/LinearAlgebra/AffineSpace/AffineSubspace.lean Modified Mathlib/LinearAlgebra/Basis/Flag.lean + theorem Basis.flag_le_flag + theorem Basis.flag_lt_flag Modified Mathlib/LinearAlgebra/Projectivization/Subspace.lean + theorem Projectivization.Subspace.span_le_span Modified Mathlib/MeasureTheory/Function/LpSeminorm/Basic.lean Modified Mathlib/MeasureTheory/Function/SimpleFunc.lean Modified Mathlib/MeasureTheory/Integral/Bochner.lean Modified Mathlib/MeasureTheory/Integral/DominatedConvergence.lean Modified Mathlib/MeasureTheory/Integral/Lebesgue.lean Modified Mathlib/Topology/NhdsSet.lean 2024-12-05 01:28:06 639c1cb feat(Order/Bounds/Basic): Add basic order lemmas (#17595) This PR adds some simple lemmas about `IsLeast/IsGreatest` for images of sets along `StrictMono/StrictAnti` maps. ESTIMATED CHANGES Modified Mathlib/Order/Bounds/Image.lean + theorem StrictAnti.map_isGreatest + theorem StrictAnti.map_isLeast + theorem StrictAnti.mem_lowerBounds_image + theorem StrictAnti.mem_upperBounds_image + theorem StrictMono.map_isGreatest + theorem StrictMono.map_isLeast + theorem StrictMono.mem_lowerBounds_image + theorem StrictMono.mem_upperBounds_image 2024-12-05 00:45:04 9b2bb8d doc(Order/BoundedOrder/Lattice): fix typos (#19719) Change the sentence "Typical examples include `Prop` and `Det α`." to "Typical examples include `Prop` and `Set α`." Also, fix a few other typos. ESTIMATED CHANGES Modified Mathlib/Order/BoundedOrder/Lattice.lean 2024-12-04 23:17:54 3961c23 fix(Cache): always invoke `lake` to fetch ProofWidgets (#19728) Always invoke `lake` to fetch the latest ProofWidgets cloud release on a `lake exe cache get`. This requires `lake` because cache has no simple heuristic to determine whether the ProofWidgets JS is out-of-date. ESTIMATED CHANGES Modified Cache/Requests.lean 2024-12-04 21:50:19 9bec372 chore: update Mathlib dependencies 2024-12-04 (#19732) This PR updates the Mathlib dependencies. ESTIMATED CHANGES Modified lake-manifest.json 2024-12-04 20:23:40 7a05b44 feat(RingTheory/Polynomial/Hilbert): `Polynomial.exists_unique_hilbertPoly` and `Polynomial.hilbertPoly_mul_one_sub_pow_add` (#19404) ESTIMATED CHANGES Modified Mathlib/RingTheory/Polynomial/HilbertPoly.lean + theorem Polynomial.exists_unique_hilbertPoly + theorem Polynomial.hilbertPoly_mul_one_sub_pow_add + theorem Polynomial.hilbertPoly_mul_one_sub_succ Modified Mathlib/RingTheory/PowerSeries/WellKnown.lean + theorem PowerSeries.invOneSubPow_add + theorem PowerSeries.one_sub_pow_add_mul_invOneSubPow_val_eq_one_sub_pow + theorem PowerSeries.one_sub_pow_mul_invOneSubPow_val_add_eq_invOneSubPow_val 2024-12-04 20:12:49 fa8f175 feat(AlgebraicTopology/SimplicialSet): StrictSegal simplicial sets are 2-coskeletal (#19057) We prove that if `X` is a simplicial set that is `StrictSegal` then `X` is 2-coskeletal, meaning `(coskAdj 2).unit.app X` defines an isomorphism `StrictSegal.cosk2Iso : X ≅ (Truncated.cosk 2).obj ((truncation 2).obj X)`. This is proven by demonstrating that `(rightExtensionInclusion X n).IsPointwiseRightKanExtension` holds. Co-Authored-By: [Mario Carneiro](https://github.com/digama0) and [Joël Riou](https://github.com/joelriou) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/AlgebraicTopology/SimplexCategory.lean + theorem SimplexCategory.mkOfLe_refl Modified Mathlib/AlgebraicTopology/SimplicialSet/Basic.lean Added Mathlib/AlgebraicTopology/SimplicialSet/Coskeletal.lean + def CategoryTheory.Nerve.nerveFunctor₂ + theorem SSet.StrictSegal.isPointwiseRightKanExtensionAt.fac_aux₁ + theorem SSet.StrictSegal.isPointwiseRightKanExtensionAt.fac_aux₂ + theorem SSet.StrictSegal.isPointwiseRightKanExtensionAt.fac_aux₃ + theorem SSet.StrictSegal.isRightKanExtension + def SSet.Truncated.rightExtensionInclusion Modified Mathlib/AlgebraicTopology/SimplicialSet/Nerve.lean +/- def CategoryTheory.nerveFunctor Modified Mathlib/AlgebraicTopology/SimplicialSet/Path.lean + theorem SSet.spine_map_vertex Modified Mathlib/AlgebraicTopology/SimplicialSet/StrictSegal.lean 2024-12-04 19:43:06 58c9692 feat(LinearAlgebra/ExteriorPower): the universal property of the exterior power (#18590) We obtain the universal property of the `n`th exterior power of a module `M`: linear maps from this exterior power identify to `n`-alternating maps from `M`. This is also phrased as the data of a presentation of the exterior power by generators and relations. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/LinearAlgebra/ExteriorPower/Basic.lean + theorem exteriorPower.alternatingMapLinearEquiv_apply_ιMulti + theorem exteriorPower.alternatingMapLinearEquiv_comp + theorem exteriorPower.alternatingMapLinearEquiv_comp_ιMulti + theorem exteriorPower.alternatingMapLinearEquiv_symm_apply + theorem exteriorPower.alternatingMapLinearEquiv_ιMulti + theorem exteriorPower.linearMap_ext + inductive exteriorPower.presentation.Rels + def exteriorPower.presentation.isPresentationCore + def exteriorPower.presentation.relationsSolutionEquiv + def exteriorPower.ιMulti + theorem exteriorPower.ιMulti_apply_coe + theorem exteriorPower.ιMulti_span + theorem exteriorPower.ιMulti_span_fixedDegree Modified Mathlib/LinearAlgebra/Span/Basic.lean + theorem Submodule.linearMap_eq_iff_of_eq_span + theorem Submodule.linearMap_eq_iff_of_span_eq_top + theorem Submodule.linearMap_eq_zero_iff_of_eq_span + theorem Submodule.linearMap_eq_zero_iff_of_span_eq_top 2024-12-04 18:37:22 0257491 feat(Data/Finsupp/MonomialOrder/DegLex): homogeneous lexicographic order (#19455) Definition of the homogeneous lexicographic order This is part of an ongoing work on basic of Gröbner theory. A subsequent PR will add the homogeneous reverse lexicographic order. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Data/Finsupp/Lex.lean + theorem Finsupp.Lex.single_antitone + theorem Finsupp.Lex.single_le_iff + theorem Finsupp.Lex.single_lt_iff + theorem Finsupp.Lex.single_strictAnti Added Mathlib/Data/Finsupp/MonomialOrder/DegLex.lean + theorem DegLex.exists_iff + theorem DegLex.forall_iff + def DegLex + theorem Finsupp.DegLex.le_iff + theorem Finsupp.DegLex.lt_def + theorem Finsupp.DegLex.lt_iff + theorem Finsupp.DegLex.monotone_degree + theorem Finsupp.DegLex.single_antitone + theorem Finsupp.DegLex.single_le_iff + theorem Finsupp.DegLex.single_lt_iff + theorem Finsupp.DegLex.single_strictAnti + theorem Finsupp.DegLex.wellFounded + theorem Finsupp.degLex_def + theorem MonomialOrder.degLex_le_iff + theorem MonomialOrder.degLex_lt_iff + theorem MonomialOrder.degLex_single_le_iff + theorem MonomialOrder.degLex_single_lt_iff + def ofDegLex + theorem ofDegLex_add + theorem ofDegLex_inj + theorem ofDegLex_injective + theorem ofDegLex_symm_eq + theorem ofDegLex_toDegLex + def toDegLex + theorem toDegLex_add + theorem toDegLex_inj + theorem toDegLex_injective + theorem toDegLex_ofDegLex + theorem toDegLex_symm_eq Modified Mathlib/Data/Finsupp/Weight.lean + theorem Finsupp.degree_add + theorem Finsupp.degree_single 2024-12-04 17:40:14 0e2973b chore(CI): rm duplicate ProofWidgets step (#19729) Removes the ProofWidgets fetch step from CI. This is unnecessary as this is now done as part of `lake exe cache get` (a detail I failed to realize in #19524). ESTIMATED CHANGES Modified .github/build.in.yml Modified .github/workflows/bors.yml Modified .github/workflows/build.yml Modified .github/workflows/build_fork.yml 2024-12-04 17:24:56 41cbc10 feat: unique differentiability of preimages under projection doesn't need the bundle to be smooth (#19682) ESTIMATED CHANGES Modified Mathlib/Geometry/Manifold/MFDeriv/Tangent.lean Modified Mathlib/Geometry/Manifold/MFDeriv/UniqueDifferential.lean +/- theorem Trivialization.mdifferentiable + theorem UniqueMDiffOn.bundle_preimage - theorem UniqueMDiffOn.smooth_bundle_preimage + theorem UniqueMDiffWithinAt.bundle_preimage' + theorem UniqueMDiffWithinAt.bundle_preimage - theorem UniqueMDiffWithinAt.smooth_bundle_preimage' - theorem UniqueMDiffWithinAt.smooth_bundle_preimage 2024-12-04 12:33:11 a38db99 refactor: generalize `SMul (Ideal R) (Submodule R M)` to `SMul (Submodule R A) (Submodule R M)` (#18419) and redefine `Mul (Submodule R A) (Submodule R A)` using the latter. ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/Operations.lean + theorem Submodule.bot_smul + theorem Submodule.coe_set_smul + theorem Submodule.iSup_smul + theorem Submodule.smul_bot + theorem Submodule.smul_iSup + theorem Submodule.smul_induction_on' + theorem Submodule.smul_induction_on + theorem Submodule.smul_le + theorem Submodule.smul_mem_smul + theorem Submodule.smul_mono + theorem Submodule.smul_mono_left + theorem Submodule.smul_subset_smul + theorem Submodule.smul_sup + theorem Submodule.smul_toAddSubmonoid + theorem Submodule.sup_smul Modified Mathlib/RingTheory/Ideal/Operations.lean - theorem Submodule.bot_smul - theorem Submodule.coe_set_smul - theorem Submodule.smul_bot - theorem Submodule.smul_iSup - theorem Submodule.smul_induction_on' - theorem Submodule.smul_induction_on - theorem Submodule.smul_le - theorem Submodule.smul_mem_smul - theorem Submodule.smul_mono - theorem Submodule.smul_mono_left - theorem Submodule.smul_sup - theorem Submodule.smul_toAddSubmonoid - theorem Submodule.sup_smul 2024-12-04 11:42:34 bbaf1a0 feat(Logic/Basic): xor_iff_or_and_not_and (#19703) Characterises `Xor'` as "one or the other but not both". c.f. `symmDiff_eq'` in `Order/SymmDiff` ESTIMATED CHANGES Modified Mathlib/Logic/Basic.lean + theorem xor_iff_or_and_not_and 2024-12-04 10:22:02 d7abea9 chore: golf IsCycles.other_adj_of_adj (#19710) ESTIMATED CHANGES Modified Mathlib/Combinatorics/SimpleGraph/Matching.lean 2024-12-04 09:24:04 da0cfc4 perf: speedup using `Submodule.restrictScalars_mem` instead of relying on defeq (#19711) ESTIMATED CHANGES Modified Mathlib/RingTheory/Ideal/Cotangent.lean Modified Mathlib/RingTheory/Kaehler/Basic.lean 2024-12-04 05:57:33 ea51583 feat(RingTheory/MvPolynomial/Groebner): division algorithm wrt monomial orders (#19454) Formalize the division algorithm with respect to a monomial order This is part of an ongoing work to formalize Groebner theory. For the moment, only the lexicographic order is present in mathlib, but subsequent PRs will introduce the homogeneous lexicographic order and the homogeneous reverse lexicographic order. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Data/Finset/Lattice/Fold.lean + theorem Finset.sup_mem_of_nonempty Modified Mathlib/Data/Finsupp/MonomialOrder.lean Added Mathlib/RingTheory/MvPolynomial/Groebner.lean + theorem MonomialOrder.degree_reduce_lt + theorem MonomialOrder.degree_sub_LTerm_le + theorem MonomialOrder.degree_sub_LTerm_lt + theorem MonomialOrder.div + theorem MonomialOrder.div_set Added Mathlib/RingTheory/MvPolynomial/MonomialOrder.lean + theorem MonomialOrder.coeff_degree_eq_zero_iff + theorem MonomialOrder.coeff_degree_ne_zero_iff + theorem MonomialOrder.coeff_eq_zero_of_lt + theorem MonomialOrder.coeff_mul_of_degree_add + def MonomialOrder.degree + theorem MonomialOrder.degree_C + theorem MonomialOrder.degree_add_le + theorem MonomialOrder.degree_add_of_lt + theorem MonomialOrder.degree_add_of_ne + theorem MonomialOrder.degree_eq_zero_iff_totalDegree_eq_zero + theorem MonomialOrder.degree_le_iff + theorem MonomialOrder.degree_lt_iff + theorem MonomialOrder.degree_monomial + theorem MonomialOrder.degree_monomial_le + theorem MonomialOrder.degree_mul + theorem MonomialOrder.degree_mul_le + theorem MonomialOrder.degree_mul_of_isRegular_left + theorem MonomialOrder.degree_mul_of_isRegular_right + theorem MonomialOrder.degree_mul_of_nonzero_mul + theorem MonomialOrder.degree_neg + theorem MonomialOrder.degree_smul + theorem MonomialOrder.degree_smul_le + theorem MonomialOrder.degree_sub_le + theorem MonomialOrder.degree_sub_of_lt + theorem MonomialOrder.degree_zero + theorem MonomialOrder.eq_C_of_degree_eq_zero + def MonomialOrder.lCoeff + theorem MonomialOrder.lCoeff_add_of_lt + theorem MonomialOrder.lCoeff_eq_zero_iff + theorem MonomialOrder.lCoeff_is_unit_iff + theorem MonomialOrder.lCoeff_monomial + theorem MonomialOrder.lCoeff_mul + theorem MonomialOrder.lCoeff_mul_of_isRegular_left + theorem MonomialOrder.lCoeff_mul_of_isRegular_right + theorem MonomialOrder.lCoeff_ne_zero_iff + theorem MonomialOrder.lCoeff_sub_of_lt + theorem MonomialOrder.lCoeff_zero + theorem MonomialOrder.le_degree 2024-12-04 05:49:32 61bb98a feat: the Chebyshev polynomials C and S (#13195) We define the rescaled Chebyshev polynomials $C_n$ and $S_n$ (also known as the Vieta–Lucas and Vieta–Fibonacci polynomials, respectively). They are related to the Chebyshev polynomials $T_n$ and $U_n$ by the formulas $C_n(2x) = 2T_n(x)$ and $S_n(2x) = U_n(x)$. Most theorems about $T_n$ and $U_n$ have analogues involving $C_n$ and $S_n$. We prove that $C_n$ and $S_n$ are special cases of the Dickson polynomials (though unlike general Dickson polynomials, they are defined for every integer $n$, not just natural numbers). These polynomials are necessary to state a formula for $(r_1 r_2)^m v$, where $v \in V$ is an element of a module, $r_1, r_2 \in GL(V)$ are reflections, and $m$ is an integer. The formula will be used to define and construct reflection representations of a Coxeter group over an arbitrary commutative ring, not necessarily having an invertible 2. See #13291. ESTIMATED CHANGES Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Chebyshev.lean + theorem Polynomial.Chebyshev.C_two_mul_complex_cos + theorem Polynomial.Chebyshev.C_two_mul_real_cos + theorem Polynomial.Chebyshev.S_two_mul_complex_cos + theorem Polynomial.Chebyshev.S_two_mul_real_cos Modified Mathlib/RingTheory/Polynomial/Chebyshev.lean + theorem Polynomial.Chebyshev.C_add_one + theorem Polynomial.Chebyshev.C_add_two + theorem Polynomial.Chebyshev.C_comp_two_mul_X + theorem Polynomial.Chebyshev.C_eq + theorem Polynomial.Chebyshev.C_eq_S_sub_X_mul_S + theorem Polynomial.Chebyshev.C_eq_two_mul_T_comp_half_mul_X + theorem Polynomial.Chebyshev.C_mul + theorem Polynomial.Chebyshev.C_mul_C + theorem Polynomial.Chebyshev.C_natAbs + theorem Polynomial.Chebyshev.C_neg + theorem Polynomial.Chebyshev.C_neg_one + theorem Polynomial.Chebyshev.C_neg_two + theorem Polynomial.Chebyshev.C_one + theorem Polynomial.Chebyshev.C_sub_one + theorem Polynomial.Chebyshev.C_sub_two + theorem Polynomial.Chebyshev.C_two + theorem Polynomial.Chebyshev.C_zero + theorem Polynomial.Chebyshev.S_add_one + theorem Polynomial.Chebyshev.S_add_two + theorem Polynomial.Chebyshev.S_comp_two_mul_X + theorem Polynomial.Chebyshev.S_eq + theorem Polynomial.Chebyshev.S_eq_U_comp_half_mul_X + theorem Polynomial.Chebyshev.S_eq_X_mul_S_add_C + theorem Polynomial.Chebyshev.S_neg + theorem Polynomial.Chebyshev.S_neg_one + theorem Polynomial.Chebyshev.S_neg_sub_one + theorem Polynomial.Chebyshev.S_neg_sub_two + theorem Polynomial.Chebyshev.S_neg_two + theorem Polynomial.Chebyshev.S_one + theorem Polynomial.Chebyshev.S_sub_one + theorem Polynomial.Chebyshev.S_sub_two + theorem Polynomial.Chebyshev.S_two + theorem Polynomial.Chebyshev.S_zero + theorem Polynomial.Chebyshev.T_eq_half_mul_C_comp_two_mul_X + theorem Polynomial.Chebyshev.T_mul_T +/- theorem Polynomial.Chebyshev.T_neg_one + theorem Polynomial.Chebyshev.map_C + theorem Polynomial.Chebyshev.map_S +/- theorem Polynomial.Chebyshev.map_T +/- theorem Polynomial.Chebyshev.map_U - theorem Polynomial.Chebyshev.mul_T Modified Mathlib/RingTheory/Polynomial/Dickson.lean + theorem Polynomial.chebyshev_U_eq_dickson_two_one + theorem Polynomial.dickson_one_one_eq_chebyshev_C +/- theorem Polynomial.dickson_one_one_eq_chebyshev_T + theorem Polynomial.dickson_two_one_eq_chebyshev_S + theorem Polynomial.dickson_two_one_eq_chebyshev_U 2024-12-04 05:17:51 d3922ba feat(GroupTheory/Coxeter): add auxiliary lemmas for alternating words and left inverse sequences (#19663) Add some auxiliary lemmas of alternating words and left inverse sequences of Coxeter groups that will be useful to prove the Strong Exchange Theorem (among other uses). They are mainly taken from pages 12-13 of [Combinatorics of Coxeter groups by Anders Bjorner , Francesco Brenti](https://link.springer.com/book/10.1007/3-540-27596-7). ESTIMATED CHANGES Modified Mathlib/GroupTheory/Coxeter/Basic.lean + theorem CoxeterSystem.getElem_alternatingWord + theorem CoxeterSystem.getElem_alternatingWord_swapIndices + theorem CoxeterSystem.listTake_alternatingWord + theorem CoxeterSystem.listTake_succ_alternatingWord Modified Mathlib/GroupTheory/Coxeter/Inversion.lean + theorem CoxeterSystem.getElem_leftInvSeq + theorem CoxeterSystem.getElem_leftInvSeq_alternatingWord + theorem CoxeterSystem.getElem_rightInvSeq + theorem CoxeterSystem.getElem_succ_leftInvSeq_alternatingWord 2024-12-04 02:21:57 4969d8c feat: `List.destutter` on cotransitive relations. (#9082) `List.destutter` behaves nicely when the condition is a _cotransitive_ relation, and even better when it's a _coequivalence_ relation. This proves that behavior. ESTIMATED CHANGES 2024-12-03 19:01:43 da9df8d feat: `List.destutter` on cotransitive relations. (#9082) `List.destutter` behaves nicely when the condition is a _cotransitive_ relation, and even better when it's a _coequivalence_ relation. This proves that behavior. ESTIMATED CHANGES Modified Mathlib/Data/List/Destutter.lean + theorem List.Chain'.length_le_length_destutter + theorem List.Chain'.length_le_length_destutter_ne + theorem List.le_length_destutter'_cons + theorem List.length_destutter'_congr + theorem List.length_destutter'_cotrans_ge + theorem List.length_destutter_le_length_destutter_cons + theorem List.length_destutter_ne_le_length_destutter_cons + theorem List.map_destutter + theorem List.map_destutter_ne Modified Mathlib/Data/List/GetD.lean + theorem List.getD_replicate + theorem List.getD_reverse Modified Mathlib/Order/Basic.lean 2024-12-03 16:48:42 14e2a6b feat(MvPolynomial/PDeriv): Euler's (weighted) homogeneous identity (#13946) If $f$ is a weighted homogeneous polynomial of degree $n$ with a finite set of variables $\\{X_i \mid i \in \sigma\\}$, then $n\cdot f = \sum_{i \in \sigma} w_i X_i \frac{\partial f}{\partial X_i}$, where $w_i$ are the weights. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/MvPolynomial/Degrees.lean + theorem MvPolynomial.totalDegree_eq_zero_iff_eq_C Modified Mathlib/Algebra/MvPolynomial/PDeriv.lean + theorem MvPolynomial.X_mul_pderiv_monomial Modified Mathlib/Data/Finsupp/Order.lean + theorem Finsupp.sub_add_single_one_cancel Modified Mathlib/Data/Finsupp/Weight.lean + theorem Finsupp.weight_sub_single_add Added Mathlib/RingTheory/MvPolynomial/EulerIdentity.lean + theorem MvPolynomial.IsHomogeneous.sum_X_mul_pderiv + theorem MvPolynomial.IsWeightedHomogeneous.sum_weight_X_mul_pderiv Modified Mathlib/RingTheory/MvPolynomial/WeightedHomogeneous.lean + theorem MvPolynomial.IsWeightedHomogeneous.pow 2024-12-03 16:13:01 a58d160 chore: Generalize universes in `RingTheory/Filtration` (#19677) ESTIMATED CHANGES Modified Mathlib/RingTheory/Filtration.lean +/- structure Ideal.Filtration 2024-12-03 15:54:17 2bd6fd4 chore: golf isRoot_of_isRoot_of_dvd_derivative_mul (#19586) ESTIMATED CHANGES Modified Mathlib/Algebra/Polynomial/FieldDivision.lean 2024-12-03 15:10:08 c5be792 refactor(Quot): use dependent arrows in congruence arguments for `map` and `map₂` (#15127) The `map` and `map₂` functions for `Quot` and `Quotient` used a Lean 3 version of congruence arguments that avoids dependent arrows. This PR changes those arguments to have the more recognizable formulation of congruence. ESTIMATED CHANGES Modified Mathlib/Algebra/GCDMonoid/Basic.lean Modified Mathlib/Data/Quot.lean +/- theorem Quotient.map_mk - theorem Quotient.map₂'_mk'' +/- theorem Quotient.map₂_mk Modified Mathlib/Data/Setoid/Basic.lean Modified Mathlib/GroupTheory/Congruence/Defs.lean Modified Mathlib/LinearAlgebra/Projectivization/Constructions.lean Modified Mathlib/Order/Filter/Germ/Basic.lean Modified Mathlib/RingTheory/GradedAlgebra/HomogeneousLocalization.lean Modified Mathlib/Topology/Algebra/SeparationQuotient/Basic.lean 2024-12-03 14:52:37 a893180 feat (RingTheory/HahnSeries/Summable) add pointwise product operation (#18794) This PR defines a pointwise product operation on summable families of Hahn series, and shows that the formal sum of the pointwise product is equal to the product of formal sums. This is preparation for defining algebra homomorphisms from power series rings. ESTIMATED CHANGES Modified Mathlib/RingTheory/HahnSeries/Summable.lean - def HahnSeries.SummableFamily.FamilySMul - theorem HahnSeries.SummableFamily.family_smul_coeff + theorem HahnSeries.SummableFamily.finite_co_support_prod_mul - theorem HahnSeries.SummableFamily.hsum_family_smul + theorem HahnSeries.SummableFamily.hsum_mul + theorem HahnSeries.SummableFamily.isPWO_iUnion_support_prod_mul + def HahnSeries.SummableFamily.mul + theorem HahnSeries.SummableFamily.mul_coeff + theorem HahnSeries.SummableFamily.mul_eq_smul + def HahnSeries.SummableFamily.smul + theorem HahnSeries.SummableFamily.smul_coeff + theorem HahnSeries.SummableFamily.smul_hsum 2024-12-03 14:22:21 ac7c96f chore(Algebra/Category/ModuleCat): rename `ModuleCat.asHom` to `ModuleCat.ofHom` (#19705) As discussed in the comments for #19511. It seems the choice between `ofHom` and `asHom` is somewhat inconsistent in concrete categories, but `ofHom` wins. In particular, we want to be consistent with the newly refactored `AlgebraCat.ofHom` and the constructor for objects `ModuleCat.of`. The choice between `asHom` and `ofHom` was only made a few months ago: #17476. It's a bit unfortunate to go back on something that was deprecated so recently, but I think the result is worth the pain. I have not touched `asHomLeft` and `asHomRight` since #19511 will replace these with `ofHom` everywhere anyway. ESTIMATED CHANGES Modified Mathlib/Algebra/Category/AlgebraCat/Basic.lean Modified Mathlib/Algebra/Category/CoalgebraCat/ComonEquivalence.lean Modified Mathlib/Algebra/Category/FGModuleCat/Basic.lean Modified Mathlib/Algebra/Category/ModuleCat/Basic.lean - def ModuleCat.asHom - theorem ModuleCat.asHom_apply + def ModuleCat.ofHom + theorem ModuleCat.ofHom_apply Modified Mathlib/Algebra/Category/ModuleCat/Biproducts.lean Modified Mathlib/Algebra/Category/ModuleCat/Images.lean Modified Mathlib/Algebra/Category/ModuleCat/Injective.lean Modified Mathlib/Algebra/Category/ModuleCat/Kernels.lean Modified Mathlib/Algebra/Homology/ShortComplex/ModuleCat.lean Modified Mathlib/CategoryTheory/Linear/Yoneda.lean Modified Mathlib/CategoryTheory/Preadditive/Yoneda/Basic.lean Modified Mathlib/RepresentationTheory/GroupCohomology/LowDegree.lean Modified Mathlib/RepresentationTheory/Rep.lean Modified Mathlib/RingTheory/AdicCompletion/AsTensorProduct.lean Modified Mathlib/RingTheory/Coalgebra/TensorProduct.lean Modified Mathlib/RingTheory/Flat/CategoryTheory.lean Modified Mathlib/Topology/Category/Profinite/Nobeling.lean +/- theorem Profinite.NobelingProof.succ_mono 2024-12-03 14:22:20 b10b730 feat(Algebra/Module): presentation of the restriction of scalars of a module (#18389) Given a morphism of rings `A → B` and a `B`-module `M`, we obtain a presentation of `M` as a `A`-module from a presentation of `M` as `B`-module, a presentation of `B` as a `A`-module (and some additional data). ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Module/Presentation/RestrictScalars.lean 2024-12-03 14:07:42 b7fbbb5 feat(LinearAlgebra/RootSystem/Finite): Coxeter weights are bounded above by 4 (#19343) This PR adds a version of the Cauchy-Schwarz inequality for positive semidefinite bilinear forms on modules over linearly ordered commutative rings, and applies it to restrict Coxeter weights for root systems. ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/RootSystem/Basic.lean + theorem RootPairing.coxeterWeight_ne_four_of_linearIndependent + theorem RootPairing.infinite_of_linearIndependent_coxeterWeight_four - theorem RootPairing.infinite_of_linearly_independent_coxeterWeight_four Modified Mathlib/LinearAlgebra/RootSystem/Defs.lean + theorem RootPairing.exists_int_eq_coxeterWeight Modified Mathlib/LinearAlgebra/RootSystem/Finite/CanonicalBilinear.lean + theorem RootPairing.coxeterWeight_le_four + theorem RootPairing.coxeterWeight_mem_set_of_isCrystallographic + theorem RootPairing.four_smul_rootForm_sq_eq_coxeterWeight_smul + theorem RootPairing.toPerfectPairing_apply_CoPolarization + theorem RootPairing.toPerfectPairing_apply_apply_Polarization Modified Mathlib/LinearAlgebra/RootSystem/Finite/Nondegenerate.lean - theorem RootPairing.rootForm_rootPositive Modified Mathlib/LinearAlgebra/SesquilinearForm.lean + theorem LinearMap.BilinForm.apply_mul_apply_le_of_forall_zero_le + theorem LinearMap.BilinForm.apply_mul_apply_lt_iff_linearIndependent + theorem LinearMap.BilinForm.apply_smul_sub_smul_sub_eq + theorem LinearMap.BilinForm.apply_sq_le_of_symm + theorem LinearMap.BilinForm.apply_sq_lt_iff_linearIndependent_of_symm + theorem LinearMap.BilinForm.not_linearIndependent_of_apply_mul_apply_eq 2024-12-03 13:00:15 2f1fb1b chore: NoZeroSMulDivisors instances for (Add)MonoidAlgebra/Polynomial (#19592) Also generalizes the instance for Finsupp. ESTIMATED CHANGES Modified Mathlib/Algebra/MonoidAlgebra/Defs.lean Modified Mathlib/Algebra/Polynomial/Basic.lean Modified Mathlib/Data/Finsupp/Basic.lean 2024-12-03 10:57:49 1ec33a4 chore: cleanup set_option linter.deprecated (#19701) Remove several uses of deprecated lemmas in non-deprecated lemmas. Also convert all `set_option linter.deprecated false` to `set_option linter.deprecated false in`, so it is easier for us to count via regex what remains. I think ``` set_option linter\.deprecated false.*(?:(?:\n/--.*?-/\n(?!.*deprecated))|\n(?!.*deprecated|/--)) ``` is the correct regex to use now: it accounts properly for intervening doc-strings. It now reports that there are only ~~three~~ one! file~~s~~ that use `set_option linter.deprecated false` on non-deprecated declarations, namely: * ~~Mathlib.Data.List.Permutation~~ (fixed by moving some List theorems earlier) * ~~Mathlib.LinearAlgebra.CliffordAlgebra.Grading~~ (replace `AlgHom.map_zero` with just `map_zero`; only costs 2000 heartbeats) * Mathlib.SetTheory.Ordinal.Arithmetic (which is a mess) ESTIMATED CHANGES Modified Mathlib/Algebra/BigOperators/Group/List.lean - theorem List.countP_flatMap - theorem List.count_flatMap - theorem List.length_flatMap Modified Mathlib/Analysis/Analytic/Composition.lean Modified Mathlib/Data/List/Basic.lean Modified Mathlib/Data/List/Lemmas.lean + theorem List.countP_flatMap + theorem List.count_flatMap + theorem List.length_flatMap Modified Mathlib/Data/List/Permutation.lean Modified Mathlib/LinearAlgebra/CliffordAlgebra/Grading.lean Modified Mathlib/LinearAlgebra/Prod.lean Modified Mathlib/Order/Extension/Well.lean Modified Mathlib/Order/OmegaCompletePartialOrder.lean Modified Mathlib/Order/WellFounded.lean Modified Mathlib/SetTheory/Cardinal/Aleph.lean Modified Mathlib/SetTheory/Cardinal/Basic.lean Modified Mathlib/SetTheory/Ordinal/Arithmetic.lean Modified Mathlib/SetTheory/Ordinal/FixedPoint.lean Modified Mathlib/SetTheory/Ordinal/Rank.lean Modified Mathlib/SetTheory/ZFC/Basic.lean Modified Mathlib/Topology/Order/Basic.lean 2024-12-03 10:57:48 19e3a19 chore(Imo/Imo1964Q1): minor clean-up (#19691) This PR does the following: - remove some trivial sectioning - explain the solution better - remove `ProblemPredicate`, which was only used once - replace `ring` by a short `rw` (to minimize imports) ESTIMATED CHANGES Modified Archive/Imo/Imo1964Q1.lean - def Imo1964Q1.ProblemPredicate - theorem Imo1964Q1.imo1964_q1a + theorem imo1964_q1a 2024-12-03 10:57:46 0ddc4d7 feat: prove Dini's theorem for uniform convergence (#19068) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Topology/Algebra/Group/Basic.lean Modified Mathlib/Topology/UniformSpace/Basic.lean Added Mathlib/Topology/UniformSpace/Dini.lean + theorem Antitone.tendstoLocallyUniformlyOn_of_forall_tendsto + theorem Antitone.tendstoLocallyUniformly_of_forall_tendsto + theorem Antitone.tendstoUniformlyOn_of_forall_tendsto + theorem Antitone.tendstoUniformly_of_forall_tendsto + theorem ContinuousMap.tendsto_of_antitone_of_pointwise + theorem ContinuousMap.tendsto_of_monotone_of_pointwise + theorem Monotone.tendstoLocallyUniformlyOn_of_forall_tendsto + theorem Monotone.tendstoLocallyUniformly_of_forall_tendsto + theorem Monotone.tendstoUniformlyOn_of_forall_tendsto + theorem Monotone.tendstoUniformly_of_forall_tendsto 2024-12-03 10:28:54 deb1faa feat(Pointwise): `closure (s ^ n) = closure s` if `1 ∈ s` (#19577) From GrowthInGroups (LeanCamCombi) ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Subgroup/Pointwise.lean + theorem Subgroup.closure_pow + theorem Subgroup.closure_pow_le Modified Mathlib/Algebra/Group/Submonoid/Pointwise.lean + theorem Submonoid.closure_pow + theorem Submonoid.closure_pow_le 2024-12-03 08:47:28 1443a7f chore(Mathlib/Algebra/MvPolynomial/Degrees): rename `degreeOf_mul_X_eq` (#19654) ESTIMATED CHANGES Modified Mathlib/Algebra/MvPolynomial/Degrees.lean - theorem MvPolynomial.degreeOf_mul_X_eq - theorem MvPolynomial.degreeOf_mul_X_ne + theorem MvPolynomial.degreeOf_mul_X_of_ne + theorem MvPolynomial.degreeOf_mul_X_self 2024-12-03 07:56:49 5358a53 chore(Data/Int): move `Pi.instIntCast` (#19612) This instance was found in `Data.Int.Cast.Lemmas` and is used quite a few times without all the theory in those files. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Data/Int/Cast/Lemmas.lean - theorem Pi.intCast_apply - theorem Pi.intCast_def - theorem Sum.elim_intCast_intCast Added Mathlib/Data/Int/Cast/Pi.lean + theorem Pi.intCast_apply + theorem Pi.intCast_def + theorem Sum.elim_intCast_intCast Modified Mathlib/Data/Int/CharZero.lean Modified Mathlib/Data/Matrix/Diagonal.lean Modified Mathlib/MeasureTheory/MeasurableSpace/Basic.lean Modified Mathlib/Order/Filter/Germ/Basic.lean 2024-12-03 06:18:14 134c6ee chore: add script to merge lean testing PRs (#19531) ESTIMATED CHANGES Modified scripts/README.md Added scripts/merge-lean-testing-pr.sh 2024-12-03 05:50:37 72b0941 chore: complete deprecation of `PartENat.card` (#19648) - [x] depends on: #19622 (perhaps unnecessarily) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Group/Subgroup/Finite.lean Modified Mathlib/Combinatorics/SimpleGraph/Connectivity/WalkCounting.lean Modified Mathlib/Data/Finite/Card.lean - theorem PartENat.card_eq_coe_natCard Modified Mathlib/Data/Matroid/Basic.lean Modified Mathlib/Data/Matroid/Closure.lean Modified Mathlib/Data/Matroid/IndepAxioms.lean Added Mathlib/Deprecated/Cardinal/Continuum.lean + theorem Cardinal.aleph_toPartENat + theorem Cardinal.continuum_toPartENat Added Mathlib/Deprecated/Cardinal/Finite.lean + theorem Cardinal.natCast_eq_toPartENat_iff + theorem Cardinal.natCast_le_toPartENat_iff + theorem Cardinal.natCast_lt_toPartENat_iff + theorem Cardinal.toPartENat_eq_natCast_iff + theorem Cardinal.toPartENat_le_natCast_iff + theorem Cardinal.toPartENat_lt_natCast_iff + def PartENat.card + theorem PartENat.card_congr + theorem PartENat.card_eq_coe_fintype_card + theorem PartENat.card_eq_coe_natCard + theorem PartENat.card_eq_top_of_infinite + theorem PartENat.card_eq_zero_iff_empty + theorem PartENat.card_image_of_injOn + theorem PartENat.card_image_of_injective + theorem PartENat.card_le_one_iff_subsingleton + theorem PartENat.card_plift + theorem PartENat.card_sum + theorem PartENat.card_ulift + theorem PartENat.one_lt_card_iff_nontrivial Renamed Mathlib/SetTheory/Cardinal/PartENat.lean to Mathlib/Deprecated/Cardinal/PartENat.lean Modified Mathlib/GroupTheory/Order/Min.lean Modified Mathlib/GroupTheory/OrderOfElement.lean Modified Mathlib/NumberTheory/FLT/Three.lean Modified Mathlib/SetTheory/Cardinal/Aleph.lean + theorem Cardinal.aleph_toENat - theorem Cardinal.aleph_toPartENat Modified Mathlib/SetTheory/Cardinal/Cofinality.lean Modified Mathlib/SetTheory/Cardinal/Continuum.lean + theorem Cardinal.continuum_toENat - theorem Cardinal.continuum_toPartENat Modified Mathlib/SetTheory/Cardinal/Finite.lean - theorem Cardinal.natCast_eq_toPartENat_iff - theorem Cardinal.natCast_le_toPartENat_iff - theorem Cardinal.natCast_lt_toPartENat_iff - theorem Cardinal.toPartENat_eq_natCast_iff - theorem Cardinal.toPartENat_le_natCast_iff - theorem Cardinal.toPartENat_lt_natCast_iff - def PartENat.card - theorem PartENat.card_congr - theorem PartENat.card_eq_coe_fintype_card - theorem PartENat.card_eq_top_of_infinite - theorem PartENat.card_eq_zero_iff_empty - theorem PartENat.card_image_of_injOn - theorem PartENat.card_image_of_injective - theorem PartENat.card_le_one_iff_subsingleton - theorem PartENat.card_plift - theorem PartENat.card_sum - theorem PartENat.card_ulift - theorem PartENat.one_lt_card_iff_nontrivial 2024-12-03 03:19:18 8a8d499 chore: update username in maintainer list (#19702) ESTIMATED CHANGES Modified README.md 2024-12-02 18:04:18 561e050 feat(RingTheory/Polynomial/HilbertPoly): the definition and key property of `Polynomial.hilbertPoly p d` for `p : F[X]` and `d : ℕ`, where `F` is a field. (#19303) Given any field `F`, polynomial `p : F[X]` and natural number `d`, we have defined `Polynomial.hilbertPoly p d : F[X]`. If `F` is of characteristic zero, then for any large enough `n : ℕ`, `PowerSeries.coeff F n (p * (invOneSubPow F d))` equals `(hilbertPoly p d).eval (n : F)` (see `Polynomial.coeff_mul_invOneSubPow_eq_hilbertPoly_eval`). ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Data/Nat/Factorial/BigOperators.lean + theorem Nat.ascFactorial_eq_prod_range Added Mathlib/RingTheory/Polynomial/HilbertPoly.lean + theorem Polynomial.coeff_mul_invOneSubPow_eq_hilbertPoly_eval + theorem Polynomial.hilbertPoly_X_pow_succ + theorem Polynomial.hilbertPoly_poly_succ + theorem Polynomial.hilbertPoly_poly_zero + theorem Polynomial.hilbertPoly_zero_nat + theorem Polynomial.preHilbertPoly_eq_choose_sub_add Modified Mathlib/RingTheory/Polynomial/Pochhammer.lean + theorem ascPochhammer_nat_eq_natCast_ascFactorial + theorem ascPochhammer_nat_eq_natCast_descFactorial Modified Mathlib/RingTheory/PowerSeries/WellKnown.lean - theorem PowerSeries.invOneSubPow_inv_eq_one_of_eq_zero + theorem PowerSeries.invOneSubPow_inv_zero_eq_one 2024-12-02 17:40:40 8b7b65f feat: `isCoprime_mul_units_left`, `isCoprime_mul_units_right` (#19133) ESTIMATED CHANGES Modified Mathlib/RingTheory/Coprime/Basic.lean + theorem isCoprime_mul_units_left + theorem isCoprime_mul_units_right 2024-12-02 17:27:25 c465194 feat: notation for vectors in Euclidean space (#17732) This adds `!₂[1, 2, 3]` notation for `(WithLp.equiv 2 (∀ _ : Fin 3, _)).symm ![1, 2, 3]`, which is a term of type `EuclideanSpace 𝕜 (Fin 3)`; and more generally for other Lp norms, using the `subscript` parser. This reduces the temptation to write the type-incorrect `![1, 2, 3]` that has the wrong norm. The (parser for the) `subscript` parser relies on `initialize`rs running, and so a missing `Lean.enableInitializersExecution` has to be inserted in `checkYaml.lean`. It has already been inserted in the necessary places in upstream repos. [Notation Zulip poll](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/Notation.20for.20vectors.20in.20euclidean.20space/near/476796192). ESTIMATED CHANGES Modified Mathlib/Analysis/InnerProductSpace/PiL2.lean + def EuclideanSpace.delabVecNotation Modified Mathlib/Analysis/Quaternion.lean Added MathlibTest/EuclideanSpace.lean Modified scripts/check-yaml.lean Modified scripts/noshake.json 2024-12-02 16:40:49 de7196a chore: turn `erw` into `rw` for free (#19689) The `erw` linter from #17638 caught these `erw`s that can become `rw` without breaking the proofs. ESTIMATED CHANGES Modified Mathlib/AlgebraicGeometry/AffineSpace.lean Modified Mathlib/Combinatorics/Enumerative/IncidenceAlgebra.lean 2024-12-02 16:40:47 ceca167 feat(SetTheory/Ordinal/Basic): notation `typeLT α = type (α := α) (· < ·)` (#18235) ESTIMATED CHANGES Modified Mathlib/SetTheory/Cardinal/Aleph.lean +/- theorem Cardinal.type_cardinal Modified Mathlib/SetTheory/Ordinal/Basic.lean +/- theorem Ordinal.lift.principalSeg_top' +/- theorem Ordinal.liftPrincipalSeg_top' +/- theorem Ordinal.type_fin +/- theorem Ordinal.type_lt +/- theorem Ordinal.type_nat_lt +/- theorem Ordinal.type_toType +/- theorem Ordinal.univ_id 2024-12-02 15:59:09 09ceeef feat(Logic/IsEmpty): Left/Right/BiTotal truthiness on emptiness (#19555) Adds left, right, and bi_total_empty, and golfs `identical_of_isEmpty` in `PGame` as a result. ESTIMATED CHANGES Modified Mathlib/Logic/IsEmpty.lean + theorem biTotal_empty + theorem leftTotal_empty + theorem rightTotal_empty Modified Mathlib/SetTheory/Game/PGame.lean 2024-12-02 15:15:13 5255add feat(check-yaml,yaml-check): various small tweaks (#19688) Extracted from #19634. ESTIMATED CHANGES Modified scripts/check-yaml.lean +/- def databases +/- def processDb Modified scripts/yaml_check.py 2024-12-02 15:15:12 612f6c3 feat(Algebra/BigOperators/Ring): add `Multiset.sum_map_div` lemma (#19630) ESTIMATED CHANGES Modified Mathlib/Algebra/BigOperators/Ring.lean + theorem Multiset.sum_map_div 2024-12-02 15:15:10 0429dca chore: defer a lemma, to avoid needing Cardinal in LinearIndependent (#19626) ESTIMATED CHANGES Modified Mathlib/Algebra/Category/ModuleCat/Adjunctions.lean Modified Mathlib/Analysis/Convex/Cone/Basic.lean Modified Mathlib/Analysis/LocallyConvex/Polar.lean Modified Mathlib/LinearAlgebra/Dimension/Basic.lean Modified Mathlib/LinearAlgebra/Dimension/Finite.lean + theorem linearIndependent_bounded_of_finset_linearIndependent_bounded Modified Mathlib/LinearAlgebra/Finsupp/VectorSpace.lean Modified Mathlib/LinearAlgebra/FreeModule/Basic.lean Modified Mathlib/LinearAlgebra/LinearIndependent.lean - theorem linearIndependent_bounded_of_finset_linearIndependent_bounded Modified Mathlib/RingTheory/TensorProduct/Free.lean 2024-12-02 14:42:28 1e85f24 feat: `gcongr` lemmas for `Additive`/`Multiplicative` (#18959) From FLT ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Monoid/Unbundled/TypeTags.lean Modified Mathlib/MeasureTheory/OuterMeasure/Basic.lean 2024-12-02 14:24:32 7cf8077 docs(RootSystem/Defs): add more details to the `doc` for root pairings. (#19683) Add a comparison with the "classical" literature in the definition of a root pairing. ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/RootSystem/Defs.lean 2024-12-02 13:47:31 4587215 feat(Finset): `(s ∪ t).Nonempty ↔ s.Nonempty ∨ t.Nonempty` (#19609) From GrowthInGroups (LeanCamCombi) ESTIMATED CHANGES Modified Mathlib/Data/Finset/Lattice/Lemmas.lean +/- theorem Finset.union_eq_empty + theorem Finset.union_nonempty 2024-12-02 13:35:34 62a0adf feat: roots have non-zero length wrt the canonical form of a finite crystallographic root pairing (#19645) We also relocate some other unrelated lemmas in order to relax the assumptions on their scalars, and add fill out some loosely-related API. The only mathematical result is `RootPairing.rootForm_apply_root_self_ne_zero`. ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/PerfectPairing.lean Modified Mathlib/LinearAlgebra/RootSystem/Basic.lean Modified Mathlib/LinearAlgebra/RootSystem/Defs.lean + theorem RootPairing.IsCrystallographic.flip Modified Mathlib/LinearAlgebra/RootSystem/Finite/CanonicalBilinear.lean + theorem RootPairing.coPolarization_apply_eq_zero_iff + theorem RootPairing.corootForm_apply_apply + theorem RootPairing.corootForm_apply_coroot_self_ne_zero + theorem RootPairing.flip_comp_polarization_eq_rootForm + theorem RootPairing.polarization_apply_eq_zero_iff + theorem RootPairing.rootForm_apply_root_self_ne_zero + theorem RootPairing.self_comp_coPolarization_eq_corootForm Modified Mathlib/LinearAlgebra/RootSystem/Finite/Nondegenerate.lean 2024-12-02 13:23:08 e9404ad feat(NumberTheory/ModularForms/LevelOne) (#19479) add dimensions in non-positive weights. ESTIMATED CHANGES Modified Mathlib/NumberTheory/ModularForms/Basic.lean + theorem ModularForm.const_apply Modified Mathlib/NumberTheory/ModularForms/CongruenceSubgroups.lean + theorem CongruenceSubgroup.mem_Gamma_one Modified Mathlib/NumberTheory/ModularForms/LevelOne.lean + theorem ModularForm.levelOne_neg_weight_rank_zero + theorem ModularForm.levelOne_weight_zero_rank_one + theorem ModularFormClass.levelOne_neg_weight_eq_zero + theorem ModularFormClass.levelOne_weight_zero_const +/- theorem SlashInvariantForm.exists_one_half_le_im_and_norm_le +/- theorem SlashInvariantForm.wt_eq_zero_of_eq_const Modified Mathlib/NumberTheory/ModularForms/QExpansion.lean + theorem Function.Periodic.abs_qParam_le_of_one_half_le_im 2024-12-02 12:55:53 3b0e679 chore(GroupTheory/Goursat): fix typos (#19686) Fix some minor typos and streamline a proof in the file on Goursat's lemma for groups. ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Graph.lean +/- theorem MonoidHom.mem_graph Modified Mathlib/GroupTheory/Goursat.lean 2024-12-02 12:55:52 4662221 chore(RingTheory): split `AlgebraicIndependent.lean` (#19606) As a follow-up to splitting `RingTheory/Algebraic.lean`, also split `AlgebraicIndependent.lean`. This PR creates the following new files: * `AlgebraicIndependent/Defs.lean`: definition of `AlgebraicIndependent` and `IsTranscendenceBasis` * `AlgebraicIndependent/Basic.lean`: basic results on `AlgebraicIndependent` * `AlgebraicIndependent/TranscendenceBasis.lean`: basic results on `TranscendenceBasis` * `AlgebraicIndependent/Adjoin.lean`: relating `AlgebraicIndependent` and `IntermediateField.adjoin` * `AlgebraicIndependent/Transcendental.lean`: relating `AlgebraicIndependent`, `Transcendental` and `Algebraic` * `AlgebraicIndependent/RankAndCardinality.lean`: about the rank/cardinality of `TranscendenceBasis`es ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/FieldTheory/IsAlgClosed/Classification.lean Modified Mathlib/FieldTheory/SeparableDegree.lean Deleted Mathlib/RingTheory/AlgebraicIndependent.lean - theorem AlgHom.algebraicIndependent_iff - theorem Algebra.Transcendental.rank_eq_cardinalMk - def AlgebraicIndependent.aevalEquiv - def AlgebraicIndependent.aevalEquivField - theorem AlgebraicIndependent.aevalEquivField_algebraMap_apply_coe - theorem AlgebraicIndependent.aevalEquivField_apply_coe - theorem AlgebraicIndependent.aeval_comp_mvPolynomialOptionEquivPolynomialAdjoin - theorem AlgebraicIndependent.aeval_comp_repr - theorem AlgebraicIndependent.aeval_of_algebraicIndependent - theorem AlgebraicIndependent.aeval_repr - theorem AlgebraicIndependent.algebraMap_aevalEquiv - theorem AlgebraicIndependent.algebraMap_injective - theorem AlgebraicIndependent.coe_range - theorem AlgebraicIndependent.comp - theorem AlgebraicIndependent.eq_zero_of_aeval_eq_zero - theorem AlgebraicIndependent.image - theorem AlgebraicIndependent.image_of_comp - theorem AlgebraicIndependent.isEmpty_of_isAlgebraic - theorem AlgebraicIndependent.isTranscendenceBasis_iff - theorem AlgebraicIndependent.liftAlgHom_comp_reprField - theorem AlgebraicIndependent.lift_reprField - theorem AlgebraicIndependent.linearIndependent - theorem AlgebraicIndependent.map' - theorem AlgebraicIndependent.map - theorem AlgebraicIndependent.mono - def AlgebraicIndependent.mvPolynomialOptionEquivPolynomialAdjoin - theorem AlgebraicIndependent.mvPolynomialOptionEquivPolynomialAdjoin_C' - theorem AlgebraicIndependent.mvPolynomialOptionEquivPolynomialAdjoin_C - theorem AlgebraicIndependent.mvPolynomialOptionEquivPolynomialAdjoin_X_none - theorem AlgebraicIndependent.mvPolynomialOptionEquivPolynomialAdjoin_X_some - theorem AlgebraicIndependent.mvPolynomialOptionEquivPolynomialAdjoin_apply - theorem AlgebraicIndependent.ne_zero - theorem AlgebraicIndependent.of_aeval - theorem AlgebraicIndependent.of_comp - theorem AlgebraicIndependent.of_ringHom_of_comp_eq - theorem AlgebraicIndependent.option_iff - theorem AlgebraicIndependent.polynomial_aeval_of_transcendental - def AlgebraicIndependent.repr - def AlgebraicIndependent.reprField - theorem AlgebraicIndependent.repr_ker - theorem AlgebraicIndependent.restrictScalars - theorem AlgebraicIndependent.restrict_of_comp_subtype - theorem AlgebraicIndependent.ringHom_of_comp_eq - theorem AlgebraicIndependent.to_subtype_range' - theorem AlgebraicIndependent.to_subtype_range - theorem AlgebraicIndependent.transcendental - def AlgebraicIndependent - theorem IntermediateField.rank_sup_le - theorem IsTranscendenceBasis.isAlgebraic - theorem IsTranscendenceBasis.isAlgebraic_field - theorem IsTranscendenceBasis.isEmpty_iff_isAlgebraic - theorem IsTranscendenceBasis.lift_cardinalMk_eq_max_lift - theorem IsTranscendenceBasis.lift_rank_eq_max_lift - theorem IsTranscendenceBasis.nonempty_iff_transcendental - def IsTranscendenceBasis - theorem MvPolynomial.algebraicIndependent_X - theorem MvPolynomial.algebraicIndependent_polynomial_aeval_X - theorem algebraicIndependent_adjoin - theorem algebraicIndependent_bounded_of_finset_algebraicIndependent_bounded - theorem algebraicIndependent_comp_subtype - theorem algebraicIndependent_empty - theorem algebraicIndependent_empty_iff - theorem algebraicIndependent_empty_type - theorem algebraicIndependent_empty_type_iff - theorem algebraicIndependent_equiv' - theorem algebraicIndependent_equiv - theorem algebraicIndependent_finset_map_embedding_subtype - theorem algebraicIndependent_iUnion_of_directed - theorem algebraicIndependent_iff - theorem algebraicIndependent_iff_injective_aeval - theorem algebraicIndependent_iff_ker_eq_bot - theorem algebraicIndependent_iff_transcendental - theorem algebraicIndependent_image - theorem algebraicIndependent_of_finite' - theorem algebraicIndependent_of_finite - theorem algebraicIndependent_of_finite_type' - theorem algebraicIndependent_of_subsingleton - theorem algebraicIndependent_ringHom_iff_of_comp_eq - theorem algebraicIndependent_sUnion_of_directed - theorem algebraicIndependent_subtype - theorem algebraicIndependent_subtype_range - theorem algebraicIndependent_unique_type_iff - theorem exists_isTranscendenceBasis' - theorem exists_isTranscendenceBasis - theorem exists_maximal_algebraicIndependent Added Mathlib/RingTheory/AlgebraicIndependent/Adjoin.lean + def AlgebraicIndependent.aevalEquivField + theorem AlgebraicIndependent.aevalEquivField_algebraMap_apply_coe + theorem AlgebraicIndependent.aevalEquivField_apply_coe + theorem AlgebraicIndependent.liftAlgHom_comp_reprField + theorem AlgebraicIndependent.lift_reprField + def AlgebraicIndependent.reprField Added Mathlib/RingTheory/AlgebraicIndependent/Basic.lean + theorem AlgHom.algebraicIndependent_iff + theorem AlgebraicIndependent.aeval_comp_mvPolynomialOptionEquivPolynomialAdjoin + theorem AlgebraicIndependent.aeval_of_algebraicIndependent + theorem AlgebraicIndependent.algebraMap_injective + theorem AlgebraicIndependent.image + theorem AlgebraicIndependent.image_of_comp + theorem AlgebraicIndependent.linearIndependent + theorem AlgebraicIndependent.map' + theorem AlgebraicIndependent.map + def AlgebraicIndependent.mvPolynomialOptionEquivPolynomialAdjoin + theorem AlgebraicIndependent.mvPolynomialOptionEquivPolynomialAdjoin_C' + theorem AlgebraicIndependent.mvPolynomialOptionEquivPolynomialAdjoin_C + theorem AlgebraicIndependent.mvPolynomialOptionEquivPolynomialAdjoin_X_none + theorem AlgebraicIndependent.mvPolynomialOptionEquivPolynomialAdjoin_X_some + theorem AlgebraicIndependent.mvPolynomialOptionEquivPolynomialAdjoin_apply + theorem AlgebraicIndependent.ne_zero + theorem AlgebraicIndependent.of_aeval + theorem AlgebraicIndependent.of_ringHom_of_comp_eq + theorem AlgebraicIndependent.repr_ker + theorem AlgebraicIndependent.restrictScalars + theorem AlgebraicIndependent.restrict_of_comp_subtype + theorem AlgebraicIndependent.ringHom_of_comp_eq + theorem AlgebraicIndependent.to_subtype_range' + theorem AlgebraicIndependent.to_subtype_range + theorem MvPolynomial.algebraicIndependent_X + theorem algebraicIndependent_adjoin + theorem algebraicIndependent_bounded_of_finset_algebraicIndependent_bounded + theorem algebraicIndependent_comp_subtype + theorem algebraicIndependent_empty + theorem algebraicIndependent_empty_iff + theorem algebraicIndependent_empty_type + theorem algebraicIndependent_empty_type_iff + theorem algebraicIndependent_finset_map_embedding_subtype + theorem algebraicIndependent_iUnion_of_directed + theorem algebraicIndependent_iff_ker_eq_bot + theorem algebraicIndependent_of_finite + theorem algebraicIndependent_of_subsingleton + theorem algebraicIndependent_ringHom_iff_of_comp_eq + theorem algebraicIndependent_sUnion_of_directed + theorem algebraicIndependent_subtype + theorem exists_maximal_algebraicIndependent Added Mathlib/RingTheory/AlgebraicIndependent/Defs.lean + def AlgebraicIndependent.aevalEquiv + theorem AlgebraicIndependent.aeval_comp_repr + theorem AlgebraicIndependent.aeval_repr + theorem AlgebraicIndependent.algebraMap_aevalEquiv + theorem AlgebraicIndependent.coe_range + theorem AlgebraicIndependent.comp + theorem AlgebraicIndependent.eq_zero_of_aeval_eq_zero + theorem AlgebraicIndependent.mono + theorem AlgebraicIndependent.of_comp + def AlgebraicIndependent.repr + def AlgebraicIndependent + def IsTranscendenceBasis + theorem algebraicIndependent_equiv' + theorem algebraicIndependent_equiv + theorem algebraicIndependent_iff + theorem algebraicIndependent_iff_injective_aeval + theorem algebraicIndependent_image + theorem algebraicIndependent_subtype_range Added Mathlib/RingTheory/AlgebraicIndependent/RankAndCardinality.lean + theorem Algebra.Transcendental.rank_eq_cardinalMk + theorem IntermediateField.rank_sup_le + theorem IsTranscendenceBasis.lift_cardinalMk_eq_max_lift + theorem IsTranscendenceBasis.lift_rank_eq_max_lift Added Mathlib/RingTheory/AlgebraicIndependent/TranscendenceBasis.lean + theorem AlgebraicIndependent.isTranscendenceBasis_iff + theorem IsTranscendenceBasis.isAlgebraic + theorem IsTranscendenceBasis.isAlgebraic_field + theorem IsTranscendenceBasis.isEmpty_iff_isAlgebraic + theorem IsTranscendenceBasis.nonempty_iff_transcendental + theorem exists_isTranscendenceBasis' + theorem exists_isTranscendenceBasis Added Mathlib/RingTheory/AlgebraicIndependent/Transcendental.lean + theorem AlgebraicIndependent.isEmpty_of_isAlgebraic + theorem AlgebraicIndependent.option_iff + theorem AlgebraicIndependent.polynomial_aeval_of_transcendental + theorem AlgebraicIndependent.transcendental + theorem MvPolynomial.algebraicIndependent_polynomial_aeval_X + theorem algebraicIndependent_iff_transcendental + theorem algebraicIndependent_of_finite' + theorem algebraicIndependent_of_finite_type' + theorem algebraicIndependent_unique_type_iff 2024-12-02 12:28:46 41ab76e feat(Algebra/Algebra/Subalgebra/Basic): add `AlgHom.subalgebraMap` (#19641) which is parallel to `LinearMap.submoduleMap`. ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/Subalgebra/Basic.lean + def AlgHom.subalgebraMap + theorem AlgHom.subalgebraMap_coe_apply + theorem AlgHom.subalgebraMap_surjective 2024-12-02 11:59:14 7b33f44 feat(RingTheory.MvPowerSeries.Topology): define the product topology on mv power series (#14866) Let `R` be with `Semiring R` and `TopologicalSpace R` In this file we define the topology on `MvPowerSeries σ R` that corresponds to the simple convergence on its coefficients, aka the product topology. It is the coarsest topology for which all coefficients maps are continuous. When `R` has `UniformSpace R`, we define the corresponding uniform structure. When the type of coefficients has the discrete topology, it corresponds to the topology defined by [bourbaki1981], chapter 4, §4, n°2 Coauthored with María Inés de Frutos Fernández @mariainesdff ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/BigOperators/Ring.lean + theorem Finset.prod_add_one + theorem Finset.prod_one_add Added Mathlib/RingTheory/MvPowerSeries/PiTopology.lean + theorem MvPowerSeries.WithPiTopology.as_tsum + theorem MvPowerSeries.WithPiTopology.continuous_C + theorem MvPowerSeries.WithPiTopology.continuous_coeff + theorem MvPowerSeries.WithPiTopology.continuous_constantCoeff + theorem MvPowerSeries.WithPiTopology.hasSum_of_monomials_self + theorem MvPowerSeries.WithPiTopology.instCompleteSpace + theorem MvPowerSeries.WithPiTopology.instT0Space + theorem MvPowerSeries.WithPiTopology.instT2Space + theorem MvPowerSeries.WithPiTopology.instTopologicalRing + theorem MvPowerSeries.WithPiTopology.instTopologicalSemiring + theorem MvPowerSeries.WithPiTopology.instUniformAddGroup + theorem MvPowerSeries.WithPiTopology.tendsto_iff_coeff_tendsto + theorem MvPowerSeries.WithPiTopology.tendsto_pow_of_constantCoeff_nilpotent_iff + theorem MvPowerSeries.WithPiTopology.tendsto_pow_zero_of_constantCoeff_nilpotent + theorem MvPowerSeries.WithPiTopology.tendsto_pow_zero_of_constantCoeff_zero + theorem MvPowerSeries.WithPiTopology.uniformContinuous_coeff + theorem MvPowerSeries.WithPiTopology.variables_tendsto_zero Added Mathlib/RingTheory/PowerSeries/PiTopology.lean + theorem PowerSeries.WithPiTopology.continuous_C + theorem PowerSeries.WithPiTopology.continuous_coeff + theorem PowerSeries.WithPiTopology.continuous_constantCoeff + theorem PowerSeries.WithPiTopology.instCompleteSpace + theorem PowerSeries.WithPiTopology.instT0Space + theorem PowerSeries.WithPiTopology.instT2Space + theorem PowerSeries.WithPiTopology.instTopologicalRing + theorem PowerSeries.WithPiTopology.instTopologicalSemiring + theorem PowerSeries.WithPiTopology.instUniformAddGroup + theorem PowerSeries.WithPiTopology.tendsto_iff_coeff_tendsto + theorem PowerSeries.WithPiTopology.tendsto_pow_zero_of_constantCoeff_nilpotent + theorem PowerSeries.WithPiTopology.tendsto_pow_zero_of_constantCoeff_nilpotent_iff + theorem PowerSeries.WithPiTopology.tendsto_pow_zero_of_constantCoeff_zero + theorem PowerSeries.WithPiTopology.uniformContinuous_coeff + theorem PowerSeries.as_tsum + theorem PowerSeries.hasSum_of_monomials_self 2024-12-02 11:22:54 17ec70c chore(Algebra/Polynomial): don't import `Ideal` when defining `Polynomial.roots` (#19376) This PR moves around a few definitions in order to free the definition of `Polynomial.roots` of the knowledge of `Ideal`. This was mostly motivated by writing `assert_not_exists Ideal` in a few files and being amazed that it did exist. In particular, the following changes are made: * results involving ideals in `Algebra/Module/Submodule/Pointwise.lean` go to `RingTheory/Ideal/Operations.lean` (the first place that they are used) * results on ideal membership in `RingTheory/Localization/Defs.lean` go to `RingTheory/Localization/Ideal.lean` (idem) * results on adjoining polynomials to a ring in `Algebra/Polynomial/AlgebraMap.lean` go to the new file `RingTheory/Adjoin/Polynomial.lean` (I couldn't find an obvious place to put this: `RingTheory/Adjoin/Basic.lean` does not know polynomials) * results on ideal membership in `Algebra/Polynomial/Div.lean`, `Algebra/Polynomial/RingDivision.lean` and a few from `RingTheory/Polynomial/Basic.lean` go to the new file `RingTheory/Polynomial/Ideal.lean` (merging this with `RingTheory/Polynomial/Basic.lean` is an okay option but would increase the downstream imports a lot) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Module/Submodule/Pointwise.lean - theorem Ideal.span_singleton_toAddSubgroup_eq_zmultiples - theorem Submodule.coe_span_smul - theorem Submodule.span_singleton_toAddSubgroup_eq_zmultiples Modified Mathlib/Algebra/Polynomial/AlgebraMap.lean - theorem Algebra.adjoin_singleton_eq_range_aeval - theorem Polynomial.adjoin_X - theorem Polynomial.aeval_mem_adjoin_singleton Modified Mathlib/Algebra/Polynomial/Derivation.lean Modified Mathlib/Algebra/Polynomial/Div.lean - theorem Polynomial.ker_evalRingHom - theorem Polynomial.mem_span_C_X_sub_C_X_sub_C_iff_eval_eval_eq_zero Modified Mathlib/Algebra/Polynomial/PartialFractions.lean Modified Mathlib/Algebra/Polynomial/RingDivision.lean - theorem Polynomial.ker_modByMonicHom Modified Mathlib/Algebra/Polynomial/Roots.lean Modified Mathlib/Algebra/Polynomial/Splits.lean Modified Mathlib/Analysis/Normed/Field/Basic.lean Modified Mathlib/FieldTheory/IntermediateField/Basic.lean Modified Mathlib/LinearAlgebra/Matrix/ToLin.lean Modified Mathlib/RingTheory/Adjoin/Basic.lean Added Mathlib/RingTheory/Adjoin/Polynomial.lean + theorem Algebra.adjoin_singleton_eq_range_aeval + theorem Polynomial.adjoin_X + theorem Polynomial.aeval_mem_adjoin_singleton Modified Mathlib/RingTheory/Algebraic/MvPolynomial.lean Modified Mathlib/RingTheory/FiniteType.lean Modified Mathlib/RingTheory/HahnSeries/Multiplication.lean Modified Mathlib/RingTheory/Ideal/Operations.lean + theorem Ideal.span_singleton_toAddSubgroup_eq_zmultiples + theorem Submodule.coe_span_smul + theorem Submodule.span_singleton_toAddSubgroup_eq_zmultiples Modified Mathlib/RingTheory/IntegralClosure/IsIntegral/Basic.lean Modified Mathlib/RingTheory/IsTensorProduct.lean Modified Mathlib/RingTheory/Localization/Basic.lean - theorem IsLocalization.mk'_mem_iff Modified Mathlib/RingTheory/Localization/FractionRing.lean Modified Mathlib/RingTheory/Localization/Ideal.lean + theorem IsLocalization.mk'_mem_iff Modified Mathlib/RingTheory/Polynomial/Basic.lean - theorem Algebra.mem_ideal_map_adjoin Modified Mathlib/RingTheory/Polynomial/Eisenstein/Basic.lean Added Mathlib/RingTheory/Polynomial/Ideal.lean + theorem Algebra.mem_ideal_map_adjoin + theorem Polynomial.ker_evalRingHom + theorem Polynomial.ker_modByMonicHom + theorem Polynomial.mem_span_C_X_sub_C_X_sub_C_iff_eval_eval_eq_zero Modified Mathlib/RingTheory/Polynomial/IntegralNormalization.lean Modified Mathlib/RingTheory/Polynomial/Quotient.lean 2024-12-02 07:36:56 675c28e feat(Polynomial): new lemmas and noncommutative generalizations (#19665) In `Algebra/Polynomial/Eval/Degree.lean`: two new lemmas about the coefficients and zero-ness of the composition of a polynomial with `C r * X`. Noncommutative generalizations: `Algebra/Polynomial/Degree/Lemmas.lean`: two lemmas `RingTheory/Polynomial/Tower.lean`: one lemma `RingTheory/Polynomial/IntegralNormalization.lean`: add `of_commute` versions of two lemmas similar to [Polynomial.scaleRoots_eval₂_mul_of_commute](https://leanprover-community.github.io/mathlib4_docs/Mathlib/RingTheory/Polynomial/ScaleRoots.html#Polynomial.scaleRoots_eval%E2%82%82_mul_of_commute) and generalize one lemma. ESTIMATED CHANGES Modified Mathlib/Algebra/Polynomial/Degree/Lemmas.lean +/- theorem Polynomial.comp_eq_zero_iff +/- theorem Polynomial.comp_neg_X_leadingCoeff_eq Modified Mathlib/Algebra/Polynomial/Eval/Degree.lean + theorem Polynomial.comp_C_mul_X_coeff + theorem Polynomial.comp_C_mul_X_eq_zero_iff Modified Mathlib/RingTheory/Polynomial/IntegralNormalization.lean +/- theorem Polynomial.integralNormalization_aeval_eq_zero + theorem Polynomial.integralNormalization_eval₂_eq_zero_of_commute + theorem Polynomial.integralNormalization_eval₂_leadingCoeff_mul_of_commute Modified Mathlib/RingTheory/Polynomial/Tower.lean +/- theorem Polynomial.eval_map_algebraMap 2024-12-02 07:36:55 720f178 chore: split Algebra.Submonoid.Membership (#19628) This file had two unrelated parts, one about big operators and one about other facts about membership. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/BigOperators/Associated.lean Modified Mathlib/Algebra/BigOperators/Finsupp.lean Modified Mathlib/Algebra/Group/Subgroup/Finite.lean Added Mathlib/Algebra/Group/Submonoid/BigOperators.lean + theorem Submonoid.coe_finset_prod + theorem Submonoid.coe_list_prod + theorem Submonoid.coe_multiset_prod + theorem Submonoid.list_prod_mem + theorem Submonoid.multiset_noncommProd_mem + theorem Submonoid.multiset_prod_mem + theorem Submonoid.noncommProd_mem + theorem Submonoid.prod_mem + theorem SubmonoidClass.coe_finset_prod + theorem SubmonoidClass.coe_list_prod + theorem SubmonoidClass.coe_multiset_prod + theorem list_prod_mem + theorem multiset_prod_mem + theorem prod_mem Modified Mathlib/Algebra/Group/Submonoid/Membership.lean - theorem Submonoid.coe_finset_prod - theorem Submonoid.coe_list_prod - theorem Submonoid.coe_multiset_prod - theorem Submonoid.list_prod_mem - theorem Submonoid.multiset_noncommProd_mem - theorem Submonoid.multiset_prod_mem - theorem Submonoid.noncommProd_mem - theorem Submonoid.prod_mem - theorem SubmonoidClass.coe_finset_prod - theorem SubmonoidClass.coe_list_prod - theorem SubmonoidClass.coe_multiset_prod - theorem list_prod_mem - theorem multiset_prod_mem - theorem prod_mem Modified Mathlib/Algebra/Module/Submodule/Basic.lean Modified Mathlib/Algebra/Module/Submodule/Lattice.lean Modified Mathlib/Algebra/Ring/Subsemiring/Basic.lean Modified Mathlib/Data/DFinsupp/Submonoid.lean Modified Mathlib/GroupTheory/Perm/Sign.lean Modified Mathlib/GroupTheory/QuotientGroup/Basic.lean Modified Mathlib/RingTheory/Localization/Defs.lean Modified Mathlib/RingTheory/NonUnitalSubring/Basic.lean Modified Mathlib/RingTheory/UniqueFactorizationDomain/Defs.lean 2024-12-02 07:11:46 e3df8ff feat(Algebra): add two lemmas (#19661) Developed in conjunction with #19660, but found not to be needed. ESTIMATED CHANGES Modified Mathlib/RingTheory/Adjoin/Basic.lean + theorem Algebra.Subalgebra.restrictScalars_adjoin Modified Mathlib/RingTheory/IntegralClosure/IsIntegral/Basic.lean + theorem IsIntegral.of_aeval_monic 2024-12-02 05:57:25 b90b953 chore: update Mathlib dependencies 2024-12-02 (#19676) This PR updates the Mathlib dependencies. ESTIMATED CHANGES Modified lake-manifest.json 2024-12-02 05:47:14 a2bdc6e feat(NumberTheory/NumberField/Completion): API for `InfinitePlace ℚ` (#19644) From the FLT project. When trying to do some calculations on adeles for FLT I realised that the completion of `ℚ` at its infinite place was not equal to `ℝ` and moreover we basically knew nothing about it. After this PR we at least know which rationals are in its open unit ball (which was what I needed). ESTIMATED CHANGES Modified Mathlib/NumberTheory/NumberField/Completion.lean + theorem NumberField.InfinitePlace.Completion.Rat.norm_infinitePlace_completion + theorem NumberField.InfinitePlace.Completion.WithAbs.ratCast_equiv + theorem NumberField.InfinitePlace.Completion.norm_coe Modified Mathlib/NumberTheory/NumberField/Embeddings.lean + theorem NumberField.InfinitePlace.coe_apply + theorem NumberField.InfinitePlace.ext + theorem Rat.infinitePlace_apply 2024-12-02 05:38:34 f23ba2e feat(GroupTheory): some lemmas about blocks (#19399) From Kneser (LeanCamCombi) ESTIMATED CHANGES Modified Mathlib/GroupTheory/GroupAction/Blocks.lean + theorem MulAction.IsBlock.disjoint_smul_left + theorem MulAction.IsBlock.disjoint_smul_right + theorem MulAction.IsBlock.disjoint_smul_set_smul + theorem MulAction.IsBlock.disjoint_smul_smul_set + theorem MulAction.IsBlock.not_smul_set_ssubset_smul_set + theorem MulAction.IsBlock.smul_eq_smul_of_subset 2024-12-02 04:16:57 41ff1f7 chore: bump toolchain to v4.15.0-rc1, and merge bump/v4.15.0 adaptations branch (#19675) ESTIMATED CHANGES Modified Archive/Imo/Imo2024Q5.lean Modified Archive/MiuLanguage/Basic.lean - def Miu.Miustr Modified Counterexamples/HomogeneousPrimeNotPrime.lean Modified Mathlib/Algebra/BigOperators/Group/List.lean Modified Mathlib/Algebra/Category/Ring/Constructions.lean Modified Mathlib/Algebra/Category/Ring/Epi.lean Modified Mathlib/Algebra/CharP/IntermediateField.lean Modified Mathlib/Algebra/Group/Pointwise/Finset/Basic.lean +/- theorem Finset.pow_subset_pow_left Modified Mathlib/Algebra/Group/Subgroup/Ker.lean Modified Mathlib/Algebra/Group/Submonoid/Operations.lean Modified Mathlib/Algebra/Homology/Embedding/Basic.lean Modified Mathlib/Algebra/IsPrimePow.lean Modified Mathlib/Algebra/Lie/Semisimple/Basic.lean Modified Mathlib/Algebra/LinearRecurrence.lean Modified Mathlib/Algebra/Module/FreeLocus.lean Modified Mathlib/Algebra/Order/Group/Unbundled/Basic.lean Modified Mathlib/Algebra/Quaternion.lean Modified Mathlib/Algebra/Ring/Subring/Defs.lean Modified Mathlib/Algebra/Tropical/Basic.lean Modified Mathlib/AlgebraicGeometry/Morphisms/QuasiCompact.lean Modified Mathlib/AlgebraicGeometry/Morphisms/QuasiSeparated.lean Modified Mathlib/AlgebraicGeometry/Spec.lean Modified Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Order.lean Modified Mathlib/Analysis/Calculus/ContDiff/FaaDiBruno.lean Modified Mathlib/Analysis/Calculus/FDeriv/Mul.lean Modified Mathlib/Analysis/Calculus/FDeriv/Symmetric.lean Modified Mathlib/Analysis/Complex/UpperHalfPlane/Metric.lean Modified Mathlib/Analysis/FunctionalSpaces/SobolevInequality.lean Modified Mathlib/Analysis/Normed/Operator/BoundedLinearMaps.lean Modified Mathlib/Analysis/NormedSpace/Multilinear/Basic.lean Modified Mathlib/Analysis/SumOverResidueClass.lean Modified Mathlib/CategoryTheory/GlueData.lean Modified Mathlib/CategoryTheory/Monoidal/Mod_.lean Modified Mathlib/CategoryTheory/Monoidal/Mon_.lean Modified Mathlib/CategoryTheory/Sites/Adjunction.lean Modified Mathlib/Combinatorics/Additive/PluenneckeRuzsa.lean Modified Mathlib/Combinatorics/Additive/RuzsaCovering.lean Modified Mathlib/Combinatorics/Colex.lean Modified Mathlib/Combinatorics/Enumerative/Composition.lean Modified Mathlib/Computability/Ackermann.lean Modified Mathlib/Computability/Halting.lean +/- def Nat.Partrec'.Vec +/- theorem Nat.Partrec'.comp₁ +/- theorem Nat.Partrec'.of_eq +/- theorem Nat.Partrec'.of_prim +/- theorem Nat.Partrec'.rfindOpt +/- inductive Nat.Partrec' Modified Mathlib/Computability/Partrec.lean +/- theorem Computable.vector_cons +/- theorem Computable.vector_get +/- theorem Computable.vector_head +/- theorem Computable.vector_length +/- theorem Computable.vector_ofFn' +/- theorem Computable.vector_tail +/- theorem Computable.vector_toList Modified Mathlib/Computability/PartrecCode.lean Modified Mathlib/Computability/Primrec.lean +/- def Nat.Primrec'.Vec +/- theorem Nat.Primrec'.of_eq +/- inductive Nat.Primrec' +/- theorem Primrec.vector_cons +/- theorem Primrec.vector_get' +/- theorem Primrec.vector_get +/- theorem Primrec.vector_head +/- theorem Primrec.vector_length +/- theorem Primrec.vector_ofFn' +/- theorem Primrec.vector_tail +/- theorem Primrec.vector_toList +/- theorem Primrec.vector_toList_iff Modified Mathlib/Computability/TMToPartrec.lean +/- theorem Turing.ToPartrec.Code.exists_code.comp +/- theorem Turing.ToPartrec.Code.exists_code Modified Mathlib/Computability/TuringMachine.lean +/- def Turing.TM1to1.readAux Modified Mathlib/Control/Random.lean Modified Mathlib/Data/Bool/Basic.lean Modified Mathlib/Data/DFinsupp/Sigma.lean Modified Mathlib/Data/ENNReal/Inv.lean Modified Mathlib/Data/Fin/Tuple/Take.lean Modified Mathlib/Data/Finset/Defs.lean + theorem Finset.subset_of_le Modified Mathlib/Data/Finset/SDiff.lean Modified Mathlib/Data/Finset/Sort.lean Modified Mathlib/Data/Fintype/BigOperators.lean +/- theorem card_vector Modified Mathlib/Data/Fintype/Fin.lean +/- theorem Fin.card_filter_univ_eq_vector_get_eq_count Modified Mathlib/Data/Fintype/Vector.lean Modified Mathlib/Data/List/Basic.lean +/- theorem List.get?_length +/- theorem List.getElem?_length + theorem List.getLast_filter' - theorem List.getLast_filter - theorem List.modifyTailIdx_modifyTailIdx - theorem List.modifyTailIdx_modifyTailIdx_le - theorem List.modifyTailIdx_modifyTailIdx_same +/- theorem List.take_concat_get' Modified Mathlib/Data/List/Cycle.lean Modified Mathlib/Data/List/FinRange.lean Modified Mathlib/Data/List/GetD.lean Modified Mathlib/Data/List/Indexes.lean +/- theorem List.mapIdx_append_one Modified Mathlib/Data/List/InsertIdx.lean - theorem List.eraseIdx_insertIdx - theorem List.getElem_insertIdx_of_lt - theorem List.getElem_insertIdx_self - theorem List.insertIdx_comm - theorem List.insertIdx_eraseIdx_of_ge - theorem List.insertIdx_eraseIdx_of_le - theorem List.insertIdx_length_self - theorem List.insertIdx_of_length_lt - theorem List.insertIdx_succ_cons - theorem List.insertIdx_succ_nil - theorem List.insertIdx_zero - theorem List.length_insertIdx - theorem List.length_insertIdx_le_succ - theorem List.length_le_length_insertIdx - theorem List.mem_insertIdx Modified Mathlib/Data/List/Intervals.lean Modified Mathlib/Data/List/NodupEquivFin.lean Modified Mathlib/Data/List/OfFn.lean - theorem List.find?_eq_some_iff_getElem - theorem List.getLast_ofFn - theorem List.head_ofFn - theorem List.ofFn_eq_nil_iff - theorem List.ofFn_succ - theorem List.ofFn_zero Modified Mathlib/Data/List/Permutation.lean Modified Mathlib/Data/List/Sublists.lean Modified Mathlib/Data/List/Sym.lean Modified Mathlib/Data/List/TFAE.lean Modified Mathlib/Data/Multiset/Basic.lean Modified Mathlib/Data/NNReal/Defs.lean Modified Mathlib/Data/Nat/BitIndices.lean Modified Mathlib/Data/Nat/Bitwise.lean Modified Mathlib/Data/Nat/Choose/Lucas.lean Modified Mathlib/Data/Nat/Count.lean Modified Mathlib/Data/Nat/Defs.lean - theorem Nat.lt_pow_self - theorem Nat.lt_two_pow Modified Mathlib/Data/Nat/Factorization/Basic.lean Modified Mathlib/Data/Nat/Log.lean Modified Mathlib/Data/Nat/Prime/Basic.lean Modified Mathlib/Data/Num/Bitwise.lean +/- def SNum.bits Modified Mathlib/Data/Rat/Denumerable.lean Modified Mathlib/Data/Seq/Seq.lean Modified Mathlib/Data/Set/List.lean Modified Mathlib/Data/Sign.lean Modified Mathlib/Data/Sym/Basic.lean +/- theorem Sym.cons_of_coe_eq +/- def Sym.ofVector +/- theorem Sym.ofVector_cons +/- theorem Sym.ofVector_nil +/- theorem Sym.sound Modified Mathlib/Data/Sym/Sym2.lean Modified Mathlib/Data/Vector/Basic.lean Modified Mathlib/Data/Vector/Mem.lean +/- theorem Mathlib.Vector.get_mem Modified Mathlib/Deprecated/Order.lean Modified Mathlib/Dynamics/Newton.lean Modified Mathlib/FieldTheory/IsPerfectClosure.lean Modified Mathlib/FieldTheory/KummerExtension.lean Modified Mathlib/FieldTheory/PerfectClosure.lean Modified Mathlib/FieldTheory/Relrank.lean Modified Mathlib/FieldTheory/SeparableDegree.lean Modified Mathlib/Geometry/Euclidean/MongePoint.lean Modified Mathlib/Geometry/Manifold/Instances/Real.lean Modified Mathlib/Geometry/Manifold/MFDeriv/NormedSpace.lean Modified Mathlib/Geometry/RingedSpace/PresheafedSpace/Gluing.lean +/- structure AlgebraicGeometry.PresheafedSpace.GlueData Modified Mathlib/GroupTheory/Congruence/Basic.lean Modified Mathlib/GroupTheory/Coxeter/Inversion.lean Modified Mathlib/GroupTheory/Perm/Cycle/Type.lean +/- def Equiv.Perm.VectorsProdEqOne.equivVector +/- theorem Equiv.Perm.VectorsProdEqOne.mem_iff +/- def Equiv.Perm.VectorsProdEqOne.vectorEquiv +/- def Equiv.Perm.vectorsProdEqOne Modified Mathlib/Lean/Meta/DiscrTree.lean Modified Mathlib/Lean/Meta/KAbstractPositions.lean Modified Mathlib/Lean/Meta/Simp.lean Modified Mathlib/LinearAlgebra/Prod.lean Modified Mathlib/LinearAlgebra/TensorProduct/Basic.lean Modified Mathlib/Logic/Equiv/List.lean Modified Mathlib/Logic/Small/List.lean Modified Mathlib/MeasureTheory/Function/LpSpace.lean Modified Mathlib/MeasureTheory/Group/Measure.lean Modified Mathlib/MeasureTheory/MeasurableSpace/Embedding.lean Modified Mathlib/MeasureTheory/Measure/Lebesgue/VolumeOfBalls.lean Modified Mathlib/ModelTheory/Encoding.lean Modified Mathlib/ModelTheory/Syntax.lean Modified Mathlib/NumberTheory/ClassNumber/AdmissibleAbsoluteValue.lean Modified Mathlib/NumberTheory/FactorisationProperties.lean Modified Mathlib/NumberTheory/FermatPsp.lean Modified Mathlib/NumberTheory/LSeries/Nonvanishing.lean Modified Mathlib/NumberTheory/Padics/PadicIntegers.lean Modified Mathlib/NumberTheory/SmoothNumbers.lean Modified Mathlib/Order/Filter/Defs.lean Modified Mathlib/Order/Interval/Finset/Box.lean Modified Mathlib/Order/WellFounded.lean Modified Mathlib/RingTheory/Algebraic/Basic.lean Modified Mathlib/RingTheory/AlgebraicIndependent.lean Modified Mathlib/RingTheory/Ideal/Operations.lean Modified Mathlib/RingTheory/Jacobson.lean Modified Mathlib/RingTheory/Multiplicity.lean Modified Mathlib/RingTheory/Polynomial/UniqueFactorization.lean Modified Mathlib/RingTheory/WittVector/Frobenius.lean Modified Mathlib/RingTheory/WittVector/InitTail.lean Modified Mathlib/SetTheory/Cardinal/Basic.lean +/- theorem Cardinal.mk_vector Modified Mathlib/SetTheory/Game/PGame.lean Modified Mathlib/SetTheory/Ordinal/Basic.lean Modified Mathlib/Tactic/Abel.lean Modified Mathlib/Tactic/CC/Addition.lean Modified Mathlib/Tactic/CancelDenoms/Core.lean Modified Mathlib/Tactic/CategoryTheory/BicategoryCoherence.lean Modified Mathlib/Tactic/CategoryTheory/Coherence.lean Modified Mathlib/Tactic/CategoryTheory/Elementwise.lean Modified Mathlib/Tactic/DeprecateTo.lean Modified Mathlib/Tactic/DeriveTraversable.lean Modified Mathlib/Tactic/FBinop.lean Modified Mathlib/Tactic/FieldSimp.lean Modified Mathlib/Tactic/FunProp/Attr.lean Modified Mathlib/Tactic/FunProp/Core.lean Modified Mathlib/Tactic/FunProp/Decl.lean Modified Mathlib/Tactic/FunProp/FunctionData.lean Modified Mathlib/Tactic/FunProp/Mor.lean +/- def Mathlib.Meta.FunProp.Mor.whnf Modified Mathlib/Tactic/FunProp/RefinedDiscrTree.lean +/- def Mathlib.Meta.FunProp.RefinedDiscrTree.mkDTExpr +/- def Mathlib.Meta.FunProp.RefinedDiscrTree.mkDTExprs Modified Mathlib/Tactic/FunProp/Theorems.lean + def Mathlib.Meta.FunProp.getMorphismTheorems + def Mathlib.Meta.FunProp.getTransitionTheorems Modified Mathlib/Tactic/FunProp/ToBatteries.lean Modified Mathlib/Tactic/Linarith/Frontend.lean Modified Mathlib/Tactic/Linarith/Oracle/SimplexAlgorithm/Datatypes.lean Modified Mathlib/Tactic/Linarith/Oracle/SimplexAlgorithm/SimplexAlgorithm.lean Modified Mathlib/Tactic/Linarith/Preprocessing.lean Modified Mathlib/Tactic/LinearCombination'.lean Modified Mathlib/Tactic/LinearCombination.lean Modified Mathlib/Tactic/Linter/PPRoundtrip.lean Modified Mathlib/Tactic/MinImports.lean Modified Mathlib/Tactic/Module.lean Modified Mathlib/Tactic/MoveAdd.lean Modified Mathlib/Tactic/NormNum/Basic.lean Modified Mathlib/Tactic/NormNum/BigOperators.lean Modified Mathlib/Tactic/NormNum/Core.lean - def Mathlib.Meta.NormNum.discrTreeConfig Modified Mathlib/Tactic/NormNum/DivMod.lean Modified Mathlib/Tactic/NormNum/OfScientific.lean Modified Mathlib/Tactic/NormNum/Pow.lean Modified Mathlib/Tactic/NormNum/PowMod.lean Modified Mathlib/Tactic/NormNum/Result.lean Modified Mathlib/Tactic/Polyrith.lean Modified Mathlib/Tactic/Positivity/Core.lean - def Mathlib.Meta.Positivity.discrTreeConfig Modified Mathlib/Tactic/Propose.lean - def Mathlib.Tactic.Propose.discrTreeConfig Modified Mathlib/Tactic/PushNeg.lean Modified Mathlib/Tactic/ReduceModChar.lean Modified Mathlib/Tactic/Relation/Rfl.lean Modified Mathlib/Tactic/Relation/Symm.lean Modified Mathlib/Tactic/Ring/RingNF.lean Modified Mathlib/Tactic/SimpIntro.lean Modified Mathlib/Tactic/Simps/Basic.lean Modified Mathlib/Tactic/SplitIfs.lean Modified Mathlib/Tactic/Spread.lean Modified Mathlib/Tactic/ToAdditive/Frontend.lean Modified Mathlib/Tactic/Variable.lean Modified Mathlib/Tactic/WLOG.lean Modified Mathlib/Testing/Plausible/Functions.lean Modified Mathlib/Topology/Algebra/PontryaginDual.lean Modified Mathlib/Topology/Gluing.lean +/- structure TopCat.GlueData Modified Mathlib/Topology/List.lean +/- theorem Vector.continuous_insertIdx +/- theorem Vector.tendsto_cons Modified Mathlib/Topology/OmegaCompletePartialOrder.lean Modified Mathlib/Util/DischargerAsTactic.lean Modified MathlibTest/Expr.lean Modified MathlibTest/NthRewrite.lean Modified MathlibTest/Simps.lean +/- structure UnderScoreDigit.Prod Modified MathlibTest/cc.lean Modified lake-manifest.json Modified lakefile.lean Modified lean-toolchain 2024-12-02 01:32:35 dde4f2e feat: an equality condition for AM-GM inequality (#19435) Add some theorems on the equality condition of the weighted AM-GM inequality for real-valued nonnegative functions, referring to `geom_mean_arith_mean_weighted_eq_iff` in `Mathlib/Analysis/MeanInequalities.lean`. ESTIMATED CHANGES Modified Mathlib/Analysis/MeanInequalities.lean + theorem Real.geom_mean_eq_arith_mean_weighted_iff' + theorem Real.geom_mean_eq_arith_mean_weighted_iff + theorem Real.geom_mean_lt_arith_mean_weighted_iff_of_pos 2024-12-02 01:23:53 7c5e371 chore: update Mathlib dependencies 2024-12-02 (#19672) This PR updates the Mathlib dependencies. ESTIMATED CHANGES 2024-12-02 01:14:15 4bbdccd chore: bump toolchain to v4.14.0 (#19673) ESTIMATED CHANGES Modified lake-manifest.json Modified lakefile.lean Modified lean-toolchain 2024-12-01 22:43:01 8639aea feat: `Polynomial.map f` strictly decreases the degree if `f p.leadingCoeff = 0` (#19411) Also make more arguments to `degree_map_le` implicit. From GrowthInGroups ESTIMATED CHANGES Modified Mathlib/Algebra/Polynomial/Degree/Lemmas.lean Modified Mathlib/Algebra/Polynomial/Div.lean Modified Mathlib/Algebra/Polynomial/Eval/Degree.lean +/- theorem Polynomial.degree_map_le + theorem Polynomial.degree_map_lt +/- theorem Polynomial.natDegree_map_le + theorem Polynomial.natDegree_map_lt' + theorem Polynomial.natDegree_map_lt Modified Mathlib/Algebra/Polynomial/Monic.lean Modified Mathlib/Algebra/Polynomial/Roots.lean Modified Mathlib/Algebra/Polynomial/Splits.lean Modified Mathlib/Algebra/Polynomial/SumIteratedDerivative.lean Modified Mathlib/AlgebraicGeometry/PrimeSpectrum/Basic.lean Modified Mathlib/FieldTheory/Minpoly/MinpolyDiv.lean Modified Mathlib/RingTheory/EisensteinCriterion.lean Modified Mathlib/RingTheory/MvPolynomial/Homogeneous.lean Modified Mathlib/RingTheory/Polynomial/Eisenstein/Basic.lean Modified Mathlib/RingTheory/RootsOfUnity/Minpoly.lean 2024-12-01 21:58:55 439bd58 ci(dependabot.yml): use glob syntax in config... (#19662) to try to get dependabot to create only one PR instead of several, cf. #19655, #19658 ESTIMATED CHANGES Modified .github/dependabot.yml 2024-12-01 19:53:14 6926cee fix(FieldTheory/AlgebraicClosure): `algebraicClosure.AlgEquiv.algebraicClosure` -> `AlgEquiv.algebraicClosure` (#19642) ESTIMATED CHANGES Modified Mathlib/FieldTheory/AlgebraicClosure.lean 2024-12-01 16:15:39 2aefce6 chore: move `Topology.Support` to `Topology.Algebra.Support` (#19651) to make it clear it's not pure topology. Indeed, the support is the preimage of `0`, which is an algebraic object. Sounds quite trivial like that, but the file actually imports `Module`! ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Topology/Algebra/ConstMulAction.lean Renamed Mathlib/Topology/Support.lean to Mathlib/Topology/Algebra/Support.lean Modified Mathlib/Topology/ContinuousMap/CompactlySupported.lean Modified Mathlib/Topology/Homeomorph.lean Modified Mathlib/Topology/MetricSpace/ProperSpace.lean Modified Mathlib/Topology/Order/Compact.lean Modified Mathlib/Topology/UniformSpace/HeineCantor.lean 2024-12-01 14:12:31 65cc543 chore: add location of build.in.yml to directories checked by dependabot (#18712) Not sure if this will work, but since dependabot currently doesn't try to update `build.in.yml`, our linter rejects its PRs. cf. #18026 ESTIMATED CHANGES Modified .github/dependabot.yml 2024-12-01 13:50:00 9d16cdd chore: update benchmark runner for leanprover/lean4#5684 (#19656) Trying again, this time using [#18354](https://github.com/leanprover-community/mathlib4/pull/18354). ESTIMATED CHANGES Modified scripts/bench/temci-config.run.yml 2024-12-01 11:18:33 a3fcd53 chore(Algebra/Data/Order/Floor): remove todo on `fract_div_intCast_eq… (#19652) …_div_intCast_mod` There are no plans to implement this, because of there are no plans to add more API for `Int.fmod`. ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Floor.lean 2024-12-01 10:47:44 90f9e99 chore: remove PartENat from PowerSeries (#19622) ESTIMATED CHANGES Modified Mathlib/Data/ENat/Basic.lean + theorem ENat.add_lt_top + theorem ENat.coe_inj + theorem ENat.coe_le_coe + theorem ENat.coe_lift + theorem ENat.coe_lt_coe + theorem ENat.le_lift_iff + def ENat.lift + theorem ENat.lift_add + theorem ENat.lift_coe + theorem ENat.lift_le_iff + theorem ENat.lift_lt_iff + theorem ENat.lift_ofNat + theorem ENat.lift_one + theorem ENat.lift_zero + theorem ENat.lt_lift_iff Modified Mathlib/RingTheory/PowerSeries/Basic.lean + theorem PowerSeries.forall_coeff_eq_zero Modified Mathlib/RingTheory/PowerSeries/Inverse.lean Modified Mathlib/RingTheory/PowerSeries/Order.lean +/- theorem PowerSeries.X_pow_order_dvd +/- theorem PowerSeries.coeff_order +/- theorem PowerSeries.le_order +/- def PowerSeries.order +/- theorem PowerSeries.order_eq +/- theorem PowerSeries.order_eq_top +/- theorem PowerSeries.order_finite_iff_ne_zero Modified Mathlib/RingTheory/UniqueFactorizationDomain/Nat.lean 2024-12-01 09:59:44 e4876c1 chore: delete deprecated lemmas (#19627) This deletes a few deprecated lemmas, allowing us to clean up some imports. ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/Equiv.lean Modified Mathlib/Algebra/Algebra/Hom.lean Modified Mathlib/Algebra/Group/AddChar.lean Modified Mathlib/Algebra/TrivSqZeroExt.lean Modified Mathlib/Data/Matrix/ConjTranspose.lean Modified Mathlib/Data/Matrix/Notation.lean Modified Mathlib/RingTheory/Finiteness/Defs.lean Modified Mathlib/RingTheory/WittVector/IsPoly.lean Modified scripts/noshake.json 2024-12-01 09:59:43 822e856 feat(NumberTheory): Abel summation (#19289) Proof of several versions of Abel summation formula. This PR is part of the proof of the Analytic Class Number Formula. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/BigOperators/Module.lean + theorem Finset.sum_Ioc_by_parts Modified Mathlib/MeasureTheory/Integral/IntervalIntegral.lean + theorem IntervalIntegrable.congr Added Mathlib/NumberTheory/AbelSummation.lean + theorem sum_mul_eq_sub_integral_mul' + theorem sum_mul_eq_sub_integral_mul + theorem sum_mul_eq_sub_sub_integral_mul 2024-12-01 09:59:41 c820366 feat(Algebra/MvPolynomial/Degrees): degreeOf_mul_X_eq_degreeOf_add_one_iff (#17553) ESTIMATED CHANGES Modified Mathlib/Algebra/MvPolynomial/Degrees.lean + theorem MvPolynomial.degreeOf_mul_X_eq_degreeOf_add_one_iff Modified Mathlib/Data/Finset/Lattice/Fold.lean + theorem Finset.comp_sup_eq_sup_comp_of_nonempty 2024-12-01 09:31:07 81b5c5c feat(FieldTheory/Galois): Lemmas of galois theory (#16979) Add lemmas about Galois extensions, especially the special case of the Galois correspondence. ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Subgroup/Pointwise.lean +/- theorem Subgroup.Normal.conjAct + theorem Subgroup.Normal.of_conjugate_fixed Modified Mathlib/FieldTheory/Galois/Basic.lean + theorem IntermediateField.restrictNormalHom_ker + theorem IsGalois.map_fixingSubgroup + theorem IsGalois.normalAutEquivQuotient_apply Modified Mathlib/FieldTheory/IntermediateField/Basic.lean + def IntermediateField.liftAlgEquiv + theorem IntermediateField.liftAlgEquiv_apply Modified Mathlib/FieldTheory/Normal.lean + theorem AlgEquiv.restrictNormalHom_apply 2024-12-01 08:03:37 b8b8a28 chore: update benchmark runner for leanprover/lean4#5684 (#19649) leanprover/lean4#5684 (which landed in v4.14.0-rc3) has removed the `--lean` flag for `lake`, indicating that we should use the `LEAN` environment variable instead. ESTIMATED CHANGES Modified scripts/bench/temci-config.run.yml 2024-12-01 01:39:51 a1f01bd refactor(Algebra/Bilinear): generalize to non-commutative base rings (#19232) This removes unnecessary `IsScalarTower R A A` and `SMulCommClass R A A` arguments from `LinearMap.mulLeft` and `LinearMap.mulRight`, respectively. As described in the new docstring, this allows respective specializations to `R := Aᵐᵒᵖ` and `R := A`. Unfortunately all of the lemmas have to be reordered to take advantage of these relaxed assumptions. In the chaos, a few lemmas also became generalized to non-unital rings. There is some overlap here with `DistribMulAction.toLinearMap`, but that doesn't work in the case of non-unital rings. ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/Bilinear.lean +/- def Algebra.lmul +/- def LinearMap.mulLeft +/- theorem LinearMap.mulLeft_apply +/- theorem LinearMap.mulLeft_mul +/- theorem LinearMap.mulLeft_one +/- theorem LinearMap.mulLeft_toAddMonoidHom +/- theorem LinearMap.mulLeft_zero_eq_zero +/- def LinearMap.mulRight +/- theorem LinearMap.mulRight_apply +/- theorem LinearMap.mulRight_mul +/- theorem LinearMap.mulRight_one +/- theorem LinearMap.mulRight_toAddMonoidHom +/- theorem LinearMap.mulRight_zero_eq_zero +/- theorem LinearMap.pow_mulLeft +/- theorem LinearMap.pow_mulRight +/- def NonUnitalAlgHom.lmul Modified Mathlib/RingTheory/PiTensorProduct.lean 2024-12-01 00:37:03 c769c4f chore(scripts): update nolints.json (#19647) I am happy to remove some nolints for you! ESTIMATED CHANGES Modified scripts/nolints.json 2024-12-01 00:08:39 fa4bdc1 feat: introduce ENat.card, and use it in place of PartENat.card (#19624) ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Pointwise/Set/Card.lean +/- theorem Set.encard_inv Modified Mathlib/Analysis/Convex/Radon.lean Modified Mathlib/Data/Finite/Card.lean + theorem ENat.card_eq_coe_natCard Modified Mathlib/Data/Set/Card.lean Modified Mathlib/SetTheory/Cardinal/ENat.lean + theorem Cardinal.toENat_congr + theorem Cardinal.toENat_eq_iff_of_le_aleph0 + theorem Cardinal.toENat_le_iff_of_le_aleph0 + theorem Cardinal.toENat_le_iff_of_lt_aleph0 Modified Mathlib/SetTheory/Cardinal/Finite.lean + theorem Cardinal.natCast_eq_toENat_iff + theorem Cardinal.natCast_le_toENat_iff + theorem Cardinal.natCast_lt_toENat_iff + theorem Cardinal.toENat_eq_natCast_iff + theorem Cardinal.toENat_le_natCast_iff + theorem Cardinal.toENat_lt_natCast_iff + def ENat.card + theorem ENat.card_congr + theorem ENat.card_eq_coe_fintype_card + theorem ENat.card_eq_top_of_infinite + theorem ENat.card_eq_zero_iff_empty + theorem ENat.card_image_of_injOn + theorem ENat.card_image_of_injective + theorem ENat.card_le_one_iff_subsingleton + theorem ENat.card_plift + theorem ENat.card_sum + theorem ENat.card_ulift + theorem ENat.one_lt_card_iff_nontrivial +/- theorem PartENat.card_plift +/- theorem PartENat.card_ulift 2024-11-30 21:42:31 6c4358e chore: don't import conformal maps in Behrend's construction (#19638) ESTIMATED CHANGES Modified Mathlib/Analysis/Complex/AbsMax.lean Modified Mathlib/Analysis/Complex/CauchyIntegral.lean Modified Mathlib/Analysis/Complex/Conformal.lean + theorem DifferentiableAt.conformalAt + theorem conformalAt_iff_differentiableAt_or_differentiableAt_comp_conj Modified Mathlib/Analysis/Complex/RealDeriv.lean - theorem DifferentiableAt.conformalAt - theorem conformalAt_iff_differentiableAt_or_differentiableAt_comp_conj Modified Mathlib/Analysis/SpecialFunctions/Complex/LogDeriv.lean Modified Mathlib/Analysis/SpecialFunctions/ExpDeriv.lean Modified Mathlib/Combinatorics/Additive/AP/Three/Behrend.lean Modified Mathlib/Geometry/Manifold/Instances/Sphere.lean Modified Mathlib/MeasureTheory/Measure/Lebesgue/VolumeOfBalls.lean Modified Mathlib/NumberTheory/EulerProduct/ExpLog.lean Modified Mathlib/NumberTheory/ModularForms/JacobiTheta/TwoVariable.lean 2024-11-30 19:56:26 4fafb9f feat(CategoryTheory): Relation between the Grothendieck construction and `AsSmall` (#19539) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Category/Cat/AsSmall.lean + def CategoryTheory.Cat.asSmallFunctor Modified Mathlib/CategoryTheory/Category/ULift.lean + theorem CategoryTheory.down_comp + theorem CategoryTheory.eqToHom_down Modified Mathlib/CategoryTheory/Grothendieck.lean + def CategoryTheory.Grothendieck.compAsSmallFunctorEquivalence + def CategoryTheory.Grothendieck.compAsSmallFunctorEquivalenceFunctor + def CategoryTheory.Grothendieck.compAsSmallFunctorEquivalenceInverse + def CategoryTheory.Grothendieck.mapWhiskerRightAsSmallFunctor 2024-11-30 18:25:09 883af56 chore: remove `normalizeScaleRoots` (#6183) [Zulip](https://leanprover.zulipchat.com/#narrow/stream/113488-general/topic/duplicate.20definition) ESTIMATED CHANGES Modified Mathlib/Algebra/Polynomial/Basic.lean + theorem Polynomial.support_C + theorem Polynomial.support_C_subset Modified Mathlib/Algebra/Polynomial/Coeff.lean Modified Mathlib/RingTheory/Algebraic/Basic.lean Modified Mathlib/RingTheory/Algebraic/Integral.lean Modified Mathlib/RingTheory/DedekindDomain/IntegralClosure.lean Modified Mathlib/RingTheory/IntegralClosure/IsIntegralClosure/Basic.lean - theorem leadingCoeff_smul_normalizeScaleRoots - theorem normalizeScaleRoots_coeff_mul_leadingCoeff_pow - theorem normalizeScaleRoots_degree - theorem normalizeScaleRoots_eval₂_leadingCoeff_mul - theorem normalizeScaleRoots_monic - theorem normalizeScaleRoots_support Modified Mathlib/RingTheory/Localization/Integral.lean +/- theorem IsIntegralClosure.isFractionRing_of_finite_extension +/- theorem integralClosure.isFractionRing_of_finite_extension Modified Mathlib/RingTheory/Polynomial/IntegralNormalization.lean + theorem Polynomial.integralNormalization_C +/- theorem Polynomial.integralNormalization_coeff +/- theorem Polynomial.integralNormalization_coeff_degree + theorem Polynomial.integralNormalization_coeff_degree_ne + theorem Polynomial.integralNormalization_coeff_mul_leadingCoeff_pow +/- theorem Polynomial.integralNormalization_coeff_natDegree - theorem Polynomial.integralNormalization_coeff_ne_degree +/- theorem Polynomial.integralNormalization_coeff_ne_natDegree + theorem Polynomial.integralNormalization_degree + theorem Polynomial.integralNormalization_eval₂_leadingCoeff_mul + theorem Polynomial.integralNormalization_mul_C_leadingCoeff - theorem Polynomial.integralNormalization_support + theorem Polynomial.leadingCoeff_smul_integralNormalization +/- theorem Polynomial.monic_integralNormalization + theorem Polynomial.support_integralNormalization_subset 2024-11-30 09:42:44 ba7312b chore: move definition of ENat and PNat out of Order.TypeTags (#19485) These had been moved to `Order.TypeTags` to reduce imports elsewhere, but they are sort of off-topic here, so I've just moved them to their own files. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Data/Countable/Basic.lean Modified Mathlib/Data/ENat/Basic.lean Added Mathlib/Data/ENat/Defs.lean + def ENat.recTopCoe + theorem ENat.recTopCoe_coe + theorem ENat.recTopCoe_top + def ENat Modified Mathlib/Data/PNat/Defs.lean Added Mathlib/Data/PNat/Notation.lean + def PNat.val + def PNat Modified Mathlib/Order/TypeTags.lean - def ENat.recTopCoe - theorem ENat.recTopCoe_coe - theorem ENat.recTopCoe_top - def ENat - def PNat.val - def PNat 2024-11-30 09:21:43 ad2e8f1 chore(RingTheory): split up `Algebraic.lean` (#19370) Split up the file `RingTheory/Algebraic.lean` into a few subfiles: * `Algebraic/Defs.lean`: definition of algebraic and transcendental elements and (sub)algebras * `Algebraic/Integral.lean`: relate `IsAlgebraic` and `IsIntegral` * `Algebraic/Basic.lean`: most results on showing certain elements are algebraic (this is probably the file you want to import afterwards) * `Algebraic/LinearIndependent.lean`: showing certain families are linear independent using transcendentality * `Algebraic/MvPolynomial.lean`: results on multivariate polynomials * `Algebraic/Pi.lean`: a definition of algebraic function (which seems to be unused otherwise). See also [mathlib3#11156](https://github.com/leanprover-community/mathlib3/pull/11156). I don't expect a particularly exciting import reduction, but it does clean up the file structure somewhat, in particular by moving the relation between algebraic and integral elements to one dedicated place (which had been irritating me for years!). ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/AlgebraicCard.lean Modified Mathlib/Algebra/MvPolynomial/Equiv.lean + theorem MvPolynomial.rename_polynomial_aeval_X Modified Mathlib/Data/Real/GoldenRatio.lean Modified Mathlib/Data/Real/Irrational.lean Modified Mathlib/FieldTheory/AxGrothendieck.lean Modified Mathlib/FieldTheory/IntermediateField/Algebraic.lean Modified Mathlib/FieldTheory/Minpoly/Field.lean Modified Mathlib/FieldTheory/MvRatFunc/Rank.lean Modified Mathlib/FieldTheory/SplittingField/Construction.lean Modified Mathlib/NumberTheory/DiophantineApproximation.lean Renamed Mathlib/RingTheory/Algebraic.lean to Mathlib/RingTheory/Algebraic/Basic.lean - theorem AlgHom.bijective - theorem Algebra.IsAlgebraic.of_isIntegralClosure - theorem Algebra.isAlgebraic_def - theorem Algebra.isAlgebraic_iff - theorem Algebra.transcendental_def - theorem Algebra.transcendental_iff_not_isAlgebraic - theorem IsAlgebraic.of_finite - def IsAlgebraic - theorem IsIntegral.isAlgebraic - theorem MvPolynomial.transcendental_X - theorem MvPolynomial.transcendental_polynomial_aeval_X - theorem MvPolynomial.transcendental_polynomial_aeval_X_iff - theorem MvPolynomial.transcendental_supported_X - theorem MvPolynomial.transcendental_supported_X_iff - theorem MvPolynomial.transcendental_supported_polynomial_aeval_X - theorem MvPolynomial.transcendental_supported_polynomial_aeval_X_iff - theorem Polynomial.algebraMap_pi_eq_aeval - theorem Polynomial.algebraMap_pi_self_eq_eval - def Polynomial.hasSMulPi - def Subalgebra.IsAlgebraic - theorem Subalgebra.isAlgebraic_iff - theorem Transcendental.linearIndependent_sub_inv - def Transcendental - theorem exists_integral_multiple - theorem isAlgebraic_iff_isIntegral - theorem polynomial_smul_apply' - theorem polynomial_smul_apply - theorem transcendental_aeval_iff - theorem transcendental_iff Modified Mathlib/RingTheory/Algebraic/Cardinality.lean Added Mathlib/RingTheory/Algebraic/Defs.lean + theorem Algebra.isAlgebraic_def + theorem Algebra.isAlgebraic_iff + theorem Algebra.transcendental_def + theorem Algebra.transcendental_iff_not_isAlgebraic + def IsAlgebraic + def Subalgebra.IsAlgebraic + theorem Subalgebra.isAlgebraic_iff + def Transcendental + theorem transcendental_iff Added Mathlib/RingTheory/Algebraic/Integral.lean + theorem AlgHom.bijective + theorem Algebra.IsAlgebraic.of_isIntegralClosure + theorem IsAlgebraic.of_finite + theorem IsIntegral.isAlgebraic + theorem exists_integral_multiple + theorem isAlgebraic_iff_isIntegral + theorem transcendental_aeval_iff Added Mathlib/RingTheory/Algebraic/LinearIndependent.lean + theorem Transcendental.linearIndependent_sub_inv Added Mathlib/RingTheory/Algebraic/MvPolynomial.lean + theorem MvPolynomial.transcendental_X + theorem MvPolynomial.transcendental_polynomial_aeval_X + theorem MvPolynomial.transcendental_polynomial_aeval_X_iff + theorem MvPolynomial.transcendental_supported_X + theorem MvPolynomial.transcendental_supported_X_iff + theorem MvPolynomial.transcendental_supported_polynomial_aeval_X + theorem MvPolynomial.transcendental_supported_polynomial_aeval_X_iff Added Mathlib/RingTheory/Algebraic/Pi.lean + theorem Polynomial.algebraMap_pi_eq_aeval + theorem Polynomial.algebraMap_pi_self_eq_eval + def Polynomial.hasSMulPi + theorem polynomial_smul_apply' + theorem polynomial_smul_apply Modified Mathlib/RingTheory/AlgebraicIndependent.lean Modified Mathlib/RingTheory/Localization/Integral.lean Modified MathlibTest/instance_diamonds.lean 2024-11-30 09:05:29 c73ab4c feat(CategoryTheory/SmallObject/Iteration): existence of objects (bot and succ cases) (#19047) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/SmallObject/Iteration/ExtendToSucc.lean + def CategoryTheory.Functor.extendToSucc.map + theorem CategoryTheory.Functor.extendToSucc.map_comp + theorem CategoryTheory.Functor.extendToSucc.map_eq + theorem CategoryTheory.Functor.extendToSucc.map_id + theorem CategoryTheory.Functor.extendToSucc.map_self_succ + def CategoryTheory.Functor.extendToSucc.obj + def CategoryTheory.Functor.extendToSucc.objIso + def CategoryTheory.Functor.extendToSucc.objSuccIso + def CategoryTheory.Functor.extendToSucc + def CategoryTheory.Functor.extendToSuccObjIso + theorem CategoryTheory.Functor.extendToSuccObjIso_hom_naturality + def CategoryTheory.Functor.extendToSuccObjSuccIso + def CategoryTheory.Functor.extendToSuccRestrictionLEIso + theorem CategoryTheory.Functor.extendToSucc_map_le_succ + theorem CategoryTheory.Functor.extentToSucc_map Added Mathlib/CategoryTheory/SmallObject/Iteration/Nonempty.lean + def CategoryTheory.Functor.Iteration.mkOfBot 2024-11-30 01:55:31 eb9d9b3 chore: fix names `{un}op_non{neg,pos}` (#19575) ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Group/Opposite.lean +/- theorem MulOpposite.op_nonneg +/- theorem MulOpposite.op_nonpos +/- theorem MulOpposite.unop_nonneg +/- theorem MulOpposite.unop_nonpos 2024-11-30 00:03:07 21608d1 feat(Algebra/Homology/Embedding): dualise extend (#19560) When `e` is an embedding of complex shapes, we obtain an isomorphism `extendOpIso : K.op.extend e.op ≅ (K.extend e).op`. ESTIMATED CHANGES Modified Mathlib/Algebra/Homology/Embedding/Extend.lean + theorem HomologicalComplex.extend.XOpIso_hom_d_op + theorem HomologicalComplex.extend_op_d 2024-11-30 00:03:05 e1064d2 feat(Algebra/Homology): more duality results (#19559) Given an homological complex `K`, we introduce duality isomorphisms like `cyclesOpIso : K.op.cycles i ≅ op (K.opcycles i)` and study their naturality. ESTIMATED CHANGES Modified Mathlib/Algebra/Homology/Opposite.lean + def HomologicalComplex.cyclesOpIso + theorem HomologicalComplex.cyclesOpIso_hom_naturality + theorem HomologicalComplex.cyclesOpIso_inv_naturality + def HomologicalComplex.cyclesOpNatIso + theorem HomologicalComplex.fromOpcycles_op_cyclesOpIso_inv + def HomologicalComplex.homologyOpNatIso + theorem HomologicalComplex.homologyOp_hom_naturality + def HomologicalComplex.opcyclesOpIso + theorem HomologicalComplex.opcyclesOpIso_hom_naturality + theorem HomologicalComplex.opcyclesOpIso_hom_toCycles_op + theorem HomologicalComplex.opcyclesOpIso_inv_naturality + def HomologicalComplex.opcyclesOpNatIso Modified Mathlib/Algebra/Homology/ShortComplex/HomologicalComplex.lean + theorem HomologicalComplex.fromOpcycles_eq_zero + theorem HomologicalComplex.toCycles_eq_zero Modified Mathlib/Algebra/Homology/ShortComplex/Homology.lean + theorem CategoryTheory.ShortComplex.homologyOpIso_hom_naturality + theorem CategoryTheory.ShortComplex.homologyOpIso_inv_naturality Modified Mathlib/Algebra/Homology/ShortComplex/RightHomology.lean + theorem CategoryTheory.ShortComplex.cyclesOpIso_hom_naturality + theorem CategoryTheory.ShortComplex.cyclesOpIso_inv_naturality + theorem CategoryTheory.ShortComplex.cyclesOpIso_inv_op_iCycles + theorem CategoryTheory.ShortComplex.fromOpcycles_op_cyclesOpIso_inv + theorem CategoryTheory.ShortComplex.op_pOpcycles_opcyclesOpIso_hom + theorem CategoryTheory.ShortComplex.opcyclesOpIso_hom_naturality + theorem CategoryTheory.ShortComplex.opcyclesOpIso_hom_toCycles_op + theorem CategoryTheory.ShortComplex.opcyclesOpIso_inv_naturality 2024-11-30 00:03:04 8a86c2c feat(Algebra/Homology/Embedding): the canonical truncation functor `trunGEFunctor` (#19543) Given an embedding `e : Embedding c c'` of complex shapes which satisfy `e.IsTruncGE`, we construct the canonical truncation functor `e.truncGEFunctor C : HomologicalComplex C c' ⥤ HomologicalComplex C c'`. ESTIMATED CHANGES Modified Mathlib/Algebra/Homology/Embedding/TruncGE.lean + theorem HomologicalComplex.truncGE'Map_comp + theorem HomologicalComplex.truncGE'Map_f_eq + theorem HomologicalComplex.truncGE'Map_f_eq_opcyclesMap + theorem HomologicalComplex.truncGE'Map_id + theorem HomologicalComplex.truncGEMap_comp + theorem HomologicalComplex.truncGEMap_id 2024-11-30 00:03:03 6ce78a1 feat(Algebra/Polynomial/Roots): for a monic polynomial `p`, `p.roots.map f = (p.map f).roots` if `p.roots.card = p.natDegree` (#19430) A variant of the theorem [Polynomial.roots_map_of_injective_of_card_eq_natDegree](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Algebra/Polynomial/Roots.html#Polynomial.roots_map_of_injective_of_card_eq_natDegree) that replaces the injectivity condition with `p.Monic`. ESTIMATED CHANGES Modified Mathlib/Algebra/Polynomial/Roots.lean + theorem Polynomial.Monic.roots_map_of_card_eq_natDegree + theorem Polynomial.roots_map_of_map_ne_zero_of_card_eq_natDegree 2024-11-30 00:03:02 3d4e9f4 chore: change associativity of `+ᵥ` from `infixl` to `infixr` (#19321) Zulip: https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Associativity.20rules.20for.20SMul.20and.20VAdd ESTIMATED CHANGES Modified Mathlib/Algebra/AddTorsor.lean +/- theorem Equiv.pointReflection_apply +/- theorem vadd_vsub +/- theorem vadd_vsub_assoc +/- theorem vadd_vsub_eq_sub_vsub +/- theorem vadd_vsub_vadd_cancel_left +/- theorem vadd_vsub_vadd_cancel_right +/- theorem vsub_vadd +/- theorem vsub_vadd_comm Modified Mathlib/Algebra/Group/Action/Defs.lean Modified Mathlib/Algebra/Group/Operations.lean Modified Mathlib/Analysis/Normed/Affine/Isometry.lean +/- theorem AffineIsometryEquiv.pointReflection_apply Modified Mathlib/Geometry/Euclidean/Basic.lean Modified Mathlib/LinearAlgebra/AffineSpace/AffineEquiv.lean +/- theorem AffineEquiv.pointReflection_apply Modified Mathlib/LinearAlgebra/AffineSpace/AffineSubspace.lean 2024-11-30 00:03:01 f33352a feat(LinearAlgebra/Matrix/Permanent): smul (#19307) adding - `permanent_smul` - `permanent_updateRow_smul` - `permanent_updateColumn_smul` ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/Matrix/Permanent.lean + theorem Matrix.permanent_smul + theorem Matrix.permanent_updateColumn_smul + theorem Matrix.permanent_updateRow_smul 2024-11-30 00:02:59 9bdc1af feat(Algebra/Homology/Embedding): the left homology of an extension of homological complexes (#18502) Given an embedding `e : c.Embedding c'`, `K : HomologicalComplex C c`, and degrees such that `e.f j = j'`, we construct a left homology data for `K.extend e` in degree `j'` from a left homology data for `K` in degree `j`. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Homology/Embedding/ExtendHomology.lean + theorem HomologicalComplex.extend.comp_d_eq_zero_iff + theorem HomologicalComplex.extend.leftHomologyData.lift_d_comp_eq_zero_iff' + theorem HomologicalComplex.extend.leftHomologyData.lift_d_comp_eq_zero_iff Modified Mathlib/CategoryTheory/Limits/Shapes/Kernels.lean + def CategoryTheory.Limits.CokernelCofork.isColimitOfIsColimitOfIff' + def CategoryTheory.Limits.CokernelCofork.isColimitOfIsColimitOfIff + def CategoryTheory.Limits.KernelFork.isLimitOfIsLimitOfIff' + def CategoryTheory.Limits.KernelFork.isLimitOfIsLimitOfIff 2024-11-29 23:24:21 c6be01e chore: split out map_dvd (#19565) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Divisibility/Basic.lean - theorem MonoidHom.map_dvd - theorem MulHom.map_dvd - theorem map_dvd Added Mathlib/Algebra/Divisibility/Hom.lean + theorem MonoidHom.map_dvd + theorem MulHom.map_dvd + theorem map_dvd Modified Mathlib/Algebra/Prime/Lemmas.lean Modified Mathlib/Algebra/Ring/Divisibility/Basic.lean Modified Mathlib/Algebra/Ring/Hom/Basic.lean Modified Mathlib/Data/Nat/Cast/Basic.lean 2024-11-29 22:48:10 cee87aa refactor(AlgebraicGeometry/EllipticCurve/*): add `WeierstrassCurve.IsElliptic` and remove `EllipticCurve` (#18531) The original `EllipticCurve` is `WeierstrassCurve` bundled with `Δ' : Rˣ` and a proof that `Δ' = Δ`. This definition makes `Δ'` and `j` computable, but at the expense that some APIs must be duplicated for `EllipticCurve` and `WeierstrassCurve`. This PR adds the typeclass `WeierstrassCurve.IsElliptic` which asserts that `IsUnit W.Δ`, and which is a `Prop`. The old API for elliptic curves are replaced by a `WeierstrassCurve` `W` together with `[W.IsElliptic]`. The caveat is that `Δ'` and `j` becomes noncomputable. The original design of this PR is `WeierstrassCurve.Elliptic` which is `Invertible W.Δ`, and which is a `Type`. By this design `Δ'` and `j` remain computable. But this design makes simpNF linter timeout. So this design is abandoned and replaced by current design. Also rename `J.lean` -> `IsomOfJ.lean` and split `ModelsWithJ.lean`. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/AlgebraicGeometry/EllipticCurve/Affine.lean - theorem EllipticCurve.Affine.nonsingular + theorem WeierstrassCurve.Affine.nonsingular Modified Mathlib/AlgebraicGeometry/EllipticCurve/Group.lean - def EllipticCurve.Affine.Point.mk + def WeierstrassCurve.Affine.Point.mk Renamed Mathlib/AlgebraicGeometry/EllipticCurve/J.lean to Mathlib/AlgebraicGeometry/EllipticCurve/IsomOfJ.lean - theorem EllipticCurve.exists_variableChange_of_j_eq + theorem WeierstrassCurve.exists_variableChange_of_j_eq Added Mathlib/AlgebraicGeometry/EllipticCurve/ModelsWithJ.lean + def WeierstrassCurve.ofJ0 + theorem WeierstrassCurve.ofJ0_c₄ + theorem WeierstrassCurve.ofJ0_j + theorem WeierstrassCurve.ofJ0_Δ + def WeierstrassCurve.ofJ1728 + theorem WeierstrassCurve.ofJ1728_c₄ + theorem WeierstrassCurve.ofJ1728_j + theorem WeierstrassCurve.ofJ1728_Δ + def WeierstrassCurve.ofJ + def WeierstrassCurve.ofJNe0Or1728 + theorem WeierstrassCurve.ofJNe0Or1728_c₄ + theorem WeierstrassCurve.ofJNe0Or1728_j + theorem WeierstrassCurve.ofJNe0Or1728_Δ + theorem WeierstrassCurve.ofJ_0_of_three_eq_zero + theorem WeierstrassCurve.ofJ_0_of_three_ne_zero + theorem WeierstrassCurve.ofJ_0_of_two_eq_zero + theorem WeierstrassCurve.ofJ_1728_of_three_eq_zero + theorem WeierstrassCurve.ofJ_1728_of_two_eq_zero + theorem WeierstrassCurve.ofJ_1728_of_two_ne_zero + theorem WeierstrassCurve.ofJ_j + theorem WeierstrassCurve.ofJ_ne_0_ne_1728 Modified Mathlib/AlgebraicGeometry/EllipticCurve/NormalForms.lean - theorem EllipticCurve.exists_variableChange_isCharNeTwoNF - theorem EllipticCurve.exists_variableChange_isCharThreeNF - theorem EllipticCurve.exists_variableChange_isCharTwoNF - theorem EllipticCurve.exists_variableChange_isShortNF - theorem EllipticCurve.j_ne_zero_of_isCharThreeJNeZeroNF_of_char_three - theorem EllipticCurve.j_ne_zero_of_isCharTwoJNeZeroNF_of_char_two - theorem EllipticCurve.j_of_isCharThreeJNeZeroNF_of_char_three - theorem EllipticCurve.j_of_isCharTwoJEqZeroNF - theorem EllipticCurve.j_of_isCharTwoJEqZeroNF_of_char_two - theorem EllipticCurve.j_of_isCharTwoJNeZeroNF_of_char_two - theorem EllipticCurve.j_of_isShortNF - theorem EllipticCurve.j_of_isShortNF_of_char_three - theorem EllipticCurve.toCharThreeNF_spec_of_b₂_eq_zero - theorem EllipticCurve.toCharThreeNF_spec_of_b₂_ne_zero - theorem EllipticCurve.toCharTwoJEqZeroNF_spec - theorem EllipticCurve.toCharTwoJNeZeroNF_spec - theorem EllipticCurve.toShortNFOfCharThree_spec + theorem WeierstrassCurve.j_ne_zero_of_isCharThreeJNeZeroNF_of_char_three + theorem WeierstrassCurve.j_ne_zero_of_isCharTwoJNeZeroNF_of_char_two + theorem WeierstrassCurve.j_of_isCharThreeJNeZeroNF_of_char_three + theorem WeierstrassCurve.j_of_isCharTwoJEqZeroNF + theorem WeierstrassCurve.j_of_isCharTwoJEqZeroNF_of_char_two + theorem WeierstrassCurve.j_of_isCharTwoJNeZeroNF_of_char_two + theorem WeierstrassCurve.j_of_isShortNF + theorem WeierstrassCurve.j_of_isShortNF_of_char_three Modified Mathlib/AlgebraicGeometry/EllipticCurve/VariableChange.lean - theorem EllipticCurve.coe_inv_variableChange_Δ' - theorem EllipticCurve.coe_variableChange_Δ' - def EllipticCurve.variableChange - theorem EllipticCurve.variableChange_comp - theorem EllipticCurve.variableChange_id - theorem EllipticCurve.variableChange_j + theorem WeierstrassCurve.coe_inv_variableChange_Δ' + theorem WeierstrassCurve.coe_variableChange_Δ' + theorem WeierstrassCurve.inv_variableChange_Δ' + theorem WeierstrassCurve.variableChange_j + theorem WeierstrassCurve.variableChange_Δ' Modified Mathlib/AlgebraicGeometry/EllipticCurve/Weierstrass.lean - theorem EllipticCurve.coe_inv_map_Δ' - theorem EllipticCurve.coe_map_Δ' - theorem EllipticCurve.ext - def EllipticCurve.j - theorem EllipticCurve.j_eq_zero - theorem EllipticCurve.j_eq_zero_iff' - theorem EllipticCurve.j_eq_zero_iff - theorem EllipticCurve.j_eq_zero_iff_of_char_three' - theorem EllipticCurve.j_eq_zero_iff_of_char_three - theorem EllipticCurve.j_eq_zero_iff_of_char_two' - theorem EllipticCurve.j_eq_zero_iff_of_char_two - theorem EllipticCurve.j_eq_zero_of_char_three - theorem EllipticCurve.j_eq_zero_of_char_two - theorem EllipticCurve.j_of_char_three - theorem EllipticCurve.j_of_char_two - def EllipticCurve.map - theorem EllipticCurve.map_injective - theorem EllipticCurve.map_j - def EllipticCurve.ofJ' - theorem EllipticCurve.ofJ'_j - def EllipticCurve.ofJ0 - theorem EllipticCurve.ofJ0_j - def EllipticCurve.ofJ1728 - theorem EllipticCurve.ofJ1728_j - def EllipticCurve.ofJ - theorem EllipticCurve.ofJ_0_of_three_eq_zero - theorem EllipticCurve.ofJ_0_of_three_ne_zero - theorem EllipticCurve.ofJ_0_of_two_eq_zero - theorem EllipticCurve.ofJ_1728_of_three_eq_zero - theorem EllipticCurve.ofJ_1728_of_two_eq_zero - theorem EllipticCurve.ofJ_1728_of_two_ne_zero - theorem EllipticCurve.ofJ_j - theorem EllipticCurve.ofJ_ne_0_ne_1728 - theorem EllipticCurve.toWeierstrassCurve_injective - theorem EllipticCurve.twoTorsionPolynomial_disc_ne_zero - structure EllipticCurve + theorem WeierstrassCurve.coe_inv_map_Δ' + theorem WeierstrassCurve.coe_map_Δ' + theorem WeierstrassCurve.coe_Δ' + theorem WeierstrassCurve.inv_map_Δ' + theorem WeierstrassCurve.isUnit_Δ + theorem WeierstrassCurve.j_eq_zero + theorem WeierstrassCurve.j_eq_zero_iff' + theorem WeierstrassCurve.j_eq_zero_iff + theorem WeierstrassCurve.j_eq_zero_iff_of_char_three' + theorem WeierstrassCurve.j_eq_zero_iff_of_char_three + theorem WeierstrassCurve.j_eq_zero_iff_of_char_two' + theorem WeierstrassCurve.j_eq_zero_iff_of_char_two + theorem WeierstrassCurve.j_eq_zero_of_char_three + theorem WeierstrassCurve.j_eq_zero_of_char_two + theorem WeierstrassCurve.j_of_char_three + theorem WeierstrassCurve.j_of_char_two + theorem WeierstrassCurve.map_j + theorem WeierstrassCurve.map_Δ' - def WeierstrassCurve.ofJ0 - theorem WeierstrassCurve.ofJ0_c₄ - theorem WeierstrassCurve.ofJ0_Δ - def WeierstrassCurve.ofJ1728 - theorem WeierstrassCurve.ofJ1728_c₄ - theorem WeierstrassCurve.ofJ1728_Δ - def WeierstrassCurve.ofJ - theorem WeierstrassCurve.ofJ_c₄ - theorem WeierstrassCurve.ofJ_Δ +/- theorem WeierstrassCurve.twoTorsionPolynomial_disc_isUnit +/- theorem WeierstrassCurve.twoTorsionPolynomial_disc_ne_zero + theorem WeierstrassCurve.twoTorsionPolynomial_disc_ne_zero_of_isElliptic 2024-11-29 21:45:10 67afcb6 feat: update the `ContDiff` definition to integrate analytic functions in the hierarchy (#17152) We modify the definition of `ContDiff` so that the smoothness exponent belongs to `WithTop (ℕ∞)`, where top smoothness (denoted with `ω` in the `ContDiff` scope) means analyticity (together with analyticity of all the iterated derivatives). This will make it possible to write theorems like: consider a function which is `C^2` over the reals or complexes, or analytic over a general field. Then... Many theorems in calculus hold under these assumptions (and it's the way things are written in Bourbaki), so having this possibility is a necessary improvement unless one wants to duplicate everything. The PR is mostly not changing the API: theorems that were proved for `C^n` functions with `n ∈ ℕ or n = ∞` are now proved for `n ∈ ℕ or n = ∞ or n = ω` (unless they are not true for analytic functions, but it turns out in most cases things are fine). Of course, results have to be added in the files `ContDiff.Def` and `ContDiff.Basic` to deal with analytic functions. I know that the PR is huge and hard to review. I have tried to separate all the other results in other PRs, but once one changes the basic definition one has to fix everything downstream to get mathlib compiling, so I can not make it shorter... ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Analysis/Analytic/OfScalars.lean Deleted Mathlib/Analysis/Calculus/ContDiff/Analytic.lean - theorem AnalyticAt.contDiffAt - theorem AnalyticOnNhd.contDiff Modified Mathlib/Analysis/Calculus/ContDiff/Basic.lean +/- theorem ContDiff.continuous_deriv +/- theorem ContDiff.div +/- theorem ContDiffOn.div +/- theorem ContDiffWithinAt.div +/- theorem ContDiffWithinAt.hasFDerivWithinAt_nhds +/- theorem ContDiffWithinAt.inv +/- theorem HasFTaylorSeriesUpToOn.compContinuousLinearMap +/- theorem IsBoundedBilinearMap.contDiff +/- theorem IsBoundedLinearMap.contDiff +/- theorem PartialHomeomorph.contDiffOn_restrContDiff_source +/- theorem PartialHomeomorph.contDiffOn_restrContDiff_target +/- def PartialHomeomorph.restrContDiff +/- theorem contDiffAt_ring_inverse + theorem contDiffOn_infty_iff_derivWithin + theorem contDiffOn_infty_iff_deriv_of_isOpen +/- theorem contDiffOn_succ_iff_derivWithin +/- theorem contDiffOn_succ_iff_deriv_of_isOpen - theorem contDiffOn_top_iff_derivWithin - theorem contDiffOn_top_iff_deriv_of_isOpen +/- theorem contDiff_const + theorem contDiff_infty_iff_deriv +/- theorem contDiff_one_iff_deriv +/- theorem contDiff_succ_iff_deriv - theorem contDiff_top_iff_deriv +/- theorem contDiff_zero_fun Modified Mathlib/Analysis/Calculus/ContDiff/CPolynomial.lean Modified Mathlib/Analysis/Calculus/ContDiff/Defs.lean + theorem AnalyticAt.contDiffAt + theorem AnalyticOn.contDiff + theorem AnalyticOn.contDiffOn + theorem AnalyticOn.contDiffOn_of_completeSpace + theorem AnalyticOnNhd.contDiff + theorem AnalyticOnNhd.contDiffOn + theorem AnalyticOnNhd.contDiffOn_of_completeSpace + theorem AnalyticWithinAt.contDiffWithinAt + theorem ContDiff.analyticOnNhd +/- theorem ContDiff.of_succ +/- theorem ContDiff.one_of_succ + theorem ContDiffAt.analyticAt + theorem ContDiffOn.analyticOn +/- theorem ContDiffOn.of_succ +/- theorem ContDiffOn.one_of_succ + theorem ContDiffWithinAt.analyticOn + theorem ContDiffWithinAt.analyticWithinAt +/- theorem ContDiffWithinAt.contDiffOn' +/- theorem ContDiffWithinAt.contDiffOn +/- theorem HasFTaylorSeriesUpTo.contDiff + theorem HasFTaylorSeriesUpToOn.analyticOn +/- theorem HasFTaylorSeriesUpToOn.contDiffOn + theorem contDiffAt_infty - theorem contDiffAt_top + theorem contDiffOn_infty - theorem contDiffOn_infty_iff_contDiffOn_omega + theorem contDiffOn_infty_iff_fderivWithin + theorem contDiffOn_infty_iff_fderiv_of_isOpen + theorem contDiffOn_nat_iff_continuousOn_differentiableOn + theorem contDiffOn_of_analyticOn_iteratedFDerivWithin + theorem contDiffOn_of_analyticOn_of_fderivWithin + theorem contDiffOn_omega_iff_analyticOn +/- theorem contDiffOn_succ_iff_fderivWithin +/- theorem contDiffOn_succ_iff_fderiv_of_isOpen - theorem contDiffOn_succ_iff_hasFDerivWithin +/- theorem contDiffOn_succ_iff_hasFDerivWithinAt + theorem contDiffOn_succ_iff_hasFDerivWithinAt_of_uniqueDiffOn +/- theorem contDiffOn_succ_of_fderivWithin - theorem contDiffOn_top - theorem contDiffOn_top_iff_fderivWithin - theorem contDiffOn_top_iff_fderiv_of_isOpen +/- theorem contDiffWithinAt_iff_contDiffOn_nhds + theorem contDiffWithinAt_iff_of_ne_infty + theorem contDiffWithinAt_infty + theorem contDiffWithinAt_omega_iff_analyticWithinAt +/- theorem contDiffWithinAt_succ_iff_hasFDerivWithinAt' +/- theorem contDiffWithinAt_succ_iff_hasFDerivWithinAt - theorem contDiffWithinAt_top +/- theorem contDiff_all_iff_nat +/- theorem contDiff_iff_ftaylorSeries + theorem contDiff_infty - theorem contDiff_infty_iff_contDiff_omega + theorem contDiff_infty_iff_fderiv + theorem contDiff_nat_iff_continuous_differentiable + theorem contDiff_omega_iff_analyticOnNhd +/- theorem contDiff_one_iff_fderiv +/- theorem contDiff_succ_iff_fderiv - theorem contDiff_top - theorem contDiff_top_iff_fderiv Modified Mathlib/Analysis/Calculus/ContDiff/FiniteDimension.lean +/- theorem contDiffOn_succ_iff_fderiv_apply +/- theorem contDiffOn_succ_of_fderiv_apply +/- theorem contDiff_succ_iff_fderiv_apply Modified Mathlib/Analysis/Calculus/ContDiff/WithLp.lean +/- theorem contDiffAt_piLp +/- theorem contDiffOn_piLp +/- theorem contDiffWithinAt_piLp +/- theorem contDiff_piLp Modified Mathlib/Analysis/Calculus/FDeriv/Symmetric.lean Modified Mathlib/Analysis/Calculus/IteratedDeriv/Defs.lean + theorem contDiffOn_nat_iff_continuousOn_differentiableOn_deriv + theorem contDiff_nat_iff_iteratedDeriv Modified Mathlib/Analysis/Calculus/Taylor.lean Modified Mathlib/Analysis/Complex/CauchyIntegral.lean Modified Mathlib/Analysis/Convolution.lean Modified Mathlib/Analysis/Distribution/SchwartzSpace.lean Modified Mathlib/Analysis/InnerProductSpace/Calculus.lean +/- theorem contDiffAt_euclidean +/- theorem contDiffOn_euclidean +/- theorem contDiffWithinAt_euclidean +/- theorem contDiff_euclidean Modified Mathlib/Analysis/NormedSpace/Multilinear/Basic.lean Modified Mathlib/Analysis/SpecialFunctions/Complex/Analytic.lean Modified Mathlib/Analysis/SpecialFunctions/Complex/LogDeriv.lean +/- theorem Complex.contDiffAt_log Modified Mathlib/Analysis/SpecialFunctions/ExpDeriv.lean Modified Mathlib/Analysis/SpecialFunctions/Log/Basic.lean Modified Mathlib/Analysis/SpecialFunctions/Log/Deriv.lean +/- theorem Real.contDiffAt_log Modified Mathlib/Analysis/SpecialFunctions/Pow/Deriv.lean Modified Mathlib/Analysis/SpecialFunctions/SmoothTransition.lean Modified Mathlib/Analysis/SpecialFunctions/Sqrt.lean +/- theorem Real.contDiffAt_sqrt Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/ArctanDeriv.lean +/- theorem Real.contDiffAt_tan +/- theorem Real.contDiff_arctan Modified Mathlib/Geometry/Manifold/Algebra/LieGroup.lean Modified Mathlib/Geometry/Manifold/AnalyticManifold.lean Modified Mathlib/Geometry/Manifold/ContMDiff/Defs.lean Modified Mathlib/Geometry/Manifold/Sheaf/LocallyRingedSpace.lean Modified Mathlib/Tactic/FunProp/ContDiff.lean +/- theorem ContDiffOn.div' 2024-11-29 19:27:58 f9e900a chore(Filter/Prod): drop `Filter.prod`, use `SProd` instead (#18315) This way we can't accidentally use the underlying `Filter.prod` instead of the normal form. ESTIMATED CHANGES Modified Mathlib/Analysis/SpecialFunctions/NonIntegrable.lean Modified Mathlib/Data/Analysis/Filter.lean Modified Mathlib/Order/Filter/Basic.lean + theorem Filter.eventually_imp_distrib_left + theorem Filter.frequently_and_distrib_left + theorem Filter.frequently_and_distrib_right Modified Mathlib/Order/Filter/Curry.lean +/- theorem Filter.curry_le_prod +/- theorem Filter.eventually_curry_iff +/- theorem Filter.eventually_curry_prod_iff +/- theorem Filter.frequently_curry_iff +/- theorem Filter.frequently_curry_prod_iff +/- theorem Filter.mem_curry_iff +/- theorem Filter.prod_mem_curry Modified Mathlib/Order/Filter/Defs.lean Modified Mathlib/Order/Filter/Finite.lean - theorem Filter.eventually_imp_distrib_left - theorem Filter.frequently_and_distrib_left - theorem Filter.frequently_and_distrib_right Modified Mathlib/Order/Filter/Prod.lean Modified Mathlib/Topology/Algebra/UniformGroup/Defs.lean Modified Mathlib/Topology/Constructions.lean Modified Mathlib/Topology/Instances/TrivSqZeroExt.lean +/- theorem TrivSqZeroExt.nhds_def +/- theorem TrivSqZeroExt.nhds_inl +/- theorem TrivSqZeroExt.nhds_inr Modified Mathlib/Topology/UniformSpace/Basic.lean Modified Mathlib/Topology/UniformSpace/UniformConvergence.lean - theorem TendstoUniformlyOn.prod 2024-11-29 15:48:03 cf80f34 chore: update Mathlib dependencies 2024-11-29 (#19608) This PR updates the Mathlib dependencies. ESTIMATED CHANGES Modified lake-manifest.json 2024-11-29 14:47:10 08ada33 chore: update Mathlib dependencies 2024-11-29 (#19605) This PR updates the Mathlib dependencies. ESTIMATED CHANGES Modified lake-manifest.json 2024-11-29 12:22:53 4965277 feat(AlgebraicGeometry): the small site associated to a morphism property (#18945) Given a sufficiently good morphism property `P`, we define the induced topologies on the category of `S`-schemes and on the category of `S`-schemes with `P`. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/AlgebraicGeometry/Sites/Small.lean + theorem AlgebraicGeometry.Scheme.Cover.overEquiv_generate_toPresieveOver_eq_ofArrows + def AlgebraicGeometry.Scheme.Cover.toPresieveOver + def AlgebraicGeometry.Scheme.Cover.toPresieveOverProp + theorem AlgebraicGeometry.Scheme.Cover.toPresieveOver_le_arrows_iff + theorem AlgebraicGeometry.Scheme.locallyCoverDense_of_le + theorem AlgebraicGeometry.Scheme.mem_overGrothendieckTopology + theorem AlgebraicGeometry.Scheme.mem_smallGrothendieckTopology + theorem AlgebraicGeometry.Scheme.mem_toGrothendieck_smallPretopology + theorem AlgebraicGeometry.Scheme.overGrothendieckTopology_eq_toGrothendieck_overPretopology + def AlgebraicGeometry.Scheme.overPretopology + theorem AlgebraicGeometry.Scheme.smallGrothendieckTopologyOfLE_eq_toGrothendieck_smallPretopology + theorem AlgebraicGeometry.Scheme.smallGrothendieckTopology_eq_toGrothendieck_smallPretopology + def AlgebraicGeometry.Scheme.smallPretopology Modified Mathlib/CategoryTheory/Sites/Over.lean + theorem CategoryTheory.Sieve.overEquiv_le_overEquiv_iff Modified Mathlib/CategoryTheory/Sites/Sieves.lean + theorem CategoryTheory.Sieve.mem_functorPushforward_iff_of_full + theorem CategoryTheory.Sieve.mem_functorPushforward_iff_of_full_of_faithful 2024-11-29 11:09:14 90f062f feat(NumberTheory/EllipticDivisibilitySequence): extend even-odd recursion to integers (#13786) Provide a quick proof that normalised EDSs satisfy an even-odd recursion over all integers rather than just natural numbers, without relying on heavier machinery i.e. the full EDS recurrence in #13155, and make `Int.negInduction` slightly stronger. ESTIMATED CHANGES Modified Mathlib/AlgebraicGeometry/EllipticCurve/DivisionPolynomial/Basic.lean +/- theorem WeierstrassCurve.preΨ_even + theorem WeierstrassCurve.preΨ_even_ofNat +/- theorem WeierstrassCurve.preΨ_odd + theorem WeierstrassCurve.preΨ_odd_ofNat +/- theorem WeierstrassCurve.ΨSq_even + theorem WeierstrassCurve.ΨSq_even_ofNat +/- theorem WeierstrassCurve.ΨSq_odd + theorem WeierstrassCurve.ΨSq_odd_ofNat +/- theorem WeierstrassCurve.Ψ_even + theorem WeierstrassCurve.Ψ_even_ofNat +/- theorem WeierstrassCurve.Ψ_odd + theorem WeierstrassCurve.Ψ_odd_ofNat +/- theorem WeierstrassCurve.ψ_even + theorem WeierstrassCurve.ψ_even_ofNat +/- theorem WeierstrassCurve.ψ_odd + theorem WeierstrassCurve.ψ_odd_ofNat Modified Mathlib/AlgebraicGeometry/EllipticCurve/DivisionPolynomial/Degree.lean Modified Mathlib/Data/Int/Defs.lean Modified Mathlib/Data/Nat/Cast/Defs.lean + theorem Nat.cast_four + theorem Nat.cast_three Modified Mathlib/NumberTheory/EllipticDivisibilitySequence.lean +/- theorem normEDS_even + theorem normEDS_even_ofNat +/- theorem normEDS_odd + theorem normEDS_odd_ofNat +/- theorem preNormEDS_even + theorem preNormEDS_even_ofNat +/- theorem preNormEDS_odd + theorem preNormEDS_odd_ofNat 2024-11-29 10:59:57 9c9b448 feat: Label zulip PR links with awaiting-author emoji (#19599) Add action to add/remove the ✍️ emoji reaction to links on Zulip to PRs that get the `awaiting-review` label. ESTIMATED CHANGES Added .github/workflows/zulip_emoji_awaiting_author.yaml Modified scripts/zulip_emoji_merge_delegate.py 2024-11-29 09:51:36 8f06fca feat(Combinatorics/SimpleGraph/Matching): add `IsCycles` and `IsAlternating` with basic results (#19250) add `SimpleGraph.IsCycles` and `SimpleGraph.IsAlternating` with some basic results involving matchings. These are defined on `SimpleGraph`, because we want to use the `symmDiff` defined on there. This is in preparation for Tutte's theorem. ESTIMATED CHANGES Modified Mathlib/Combinatorics/SimpleGraph/Matching.lean + def SimpleGraph.IsAlternating + theorem SimpleGraph.IsCycles.other_adj_of_adj + def SimpleGraph.IsCycles + theorem SimpleGraph.IsPerfectMatching.symmDiff_spanningCoe_of_isAlternating + theorem SimpleGraph.Subgraph.IsPerfectMatching.symmDiff_spanningCoe_IsCycles 2024-11-29 08:51:12 1426b9e chore: update Mathlib dependencies 2024-11-29 (#19598) This PR updates the Mathlib dependencies. ESTIMATED CHANGES Modified lake-manifest.json 2024-11-29 06:22:59 ab78065 fix: add `realm_emoji` (and `emoji_code`) to auto-zulip reactions (#19597) [Zulip discussion](https://leanprover.zulipchat.com/#narrow/channel/144837-PR-reviews/topic/.2319522.3A.20emoji.20reactions.20to.20all.20public.20channels/near/485003969) ESTIMATED CHANGES Modified scripts/zulip_emoji_merge_delegate.py 2024-11-29 05:06:30 2e513be chore: update Mathlib dependencies 2024-11-29 (#19595) This PR updates the Mathlib dependencies. ESTIMATED CHANGES Modified lake-manifest.json 2024-11-29 04:10:22 a389037 feat(Order/InitialSeg): initial segments preserve successor limits (#19053) Initial segments preserve the covering relation, successors, and successor limits. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Order/InitialSeg.lean + theorem InitialSeg.isMin_apply_iff - theorem InitialSeg.map_isMin + theorem PrincipalSeg.isMin_apply_iff - theorem PrincipalSeg.map_isMin Modified Mathlib/Order/SuccPred/Basic.lean +/- theorem OrderIso.map_succ Added Mathlib/Order/SuccPred/InitialSeg.lean + theorem InitialSeg.apply_covBy_apply_iff + theorem InitialSeg.apply_wCovBy_apply_iff + theorem InitialSeg.isSuccLimit_apply_iff + theorem InitialSeg.isSuccPrelimit_apply_iff + theorem InitialSeg.map_pred + theorem InitialSeg.map_succ + theorem PrincipalSeg.apply_covBy_apply_iff + theorem PrincipalSeg.apply_wCovBy_apply_iff + theorem PrincipalSeg.isSuccLimit_apply_iff + theorem PrincipalSeg.isSuccPrelimit_apply_iff + theorem PrincipalSeg.map_pred + theorem PrincipalSeg.map_succ 2024-11-29 04:10:21 8e5beea refactor(Order/WellFounded): deprecate `WellFounded.succ` (#18238) This definition is somewhat of a footgun, as it can't actually be used to define a `SuccOrder` instance on partial orders, and in the linear order case, one can use [`SuccOrder.ofLinearWellFoundedLT`](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Order/SuccPred/Basic.html#SuccOrder.ofLinearWellFoundedLT) for that purpose. ESTIMATED CHANGES Modified Mathlib/Order/WellFounded.lean 2024-11-29 03:48:28 27d7119 chore(SetTheory/Ordinal/Basic): deprecate results on `WellOrder` (#18208) This PR is analogous to #18205. ESTIMATED CHANGES Modified Mathlib/SetTheory/Ordinal/Basic.lean +/- theorem Ordinal.type_def' +/- theorem Ordinal.type_def +/- theorem WellOrder.eta 2024-11-29 03:02:44 dade1b8 chore: bump toolchain to v4.14.0-rc3 (#19594) This bumps the toolchain to v4.14.0-rc3. This differs from rc2 only in changes to the behaviour of Lake, which will hopefully eliminate problems with ProofWidgets. ESTIMATED CHANGES Modified lean-toolchain 2024-11-29 02:34:12 d97300d chore(Algebra/BigOperators/Group/Finset): golf some proofs (#19593) ESTIMATED CHANGES Modified Mathlib/Algebra/BigOperators/Group/Finset.lean +/- theorem Finset.mulIndicator_biUnion 2024-11-28 20:56:22 6981487 feat: `stab s ⊓ stab t ≤ stab (s ∩ t)` (#19477) and other similar lemmas Moves: * `mem_stabilizer_of_finite_iff_smul_le` -> `mem_stabilizer_set_iff_subset_smul_set` * `mem_stabilizer_of_finite_iff_le_smul` -> `mem_stabilizer_set_iff_smul_set_subset` From Kneser (LeanCamCombi) ESTIMATED CHANGES Modified Mathlib/Algebra/Pointwise/Stabilizer.lean + theorem MulAction.op_smul_set_stabilizer_subset + theorem MulAction.smul_set_stabilizer_subset + theorem MulAction.stabilizer_finite + theorem MulAction.stabilizer_inf_stabilizer_le_stabilizer_apply₂ + theorem MulAction.stabilizer_inf_stabilizer_le_stabilizer_inter + theorem MulAction.stabilizer_inf_stabilizer_le_stabilizer_sdiff + theorem MulAction.stabilizer_inf_stabilizer_le_stabilizer_union + theorem MulAction.stabilizer_subset_div_right + theorem MulAction.stabilizer_union_eq_left + theorem MulAction.stabilizer_union_eq_right Modified Mathlib/GroupTheory/GroupAction/Basic.lean - theorem MulAction.mem_stabilizer_of_finite_iff_le_smul - theorem MulAction.mem_stabilizer_of_finite_iff_smul_le Modified Mathlib/GroupTheory/GroupAction/Blocks.lean 2024-11-28 20:24:35 4e9fa40 feat: `s ⊆ s ^ n` when `1 ∈ s` (#19538) and the product of nontrivial sets is nontrivial. From GrowthInGroups ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Pointwise/Finset/Basic.lean + theorem Finset.Nontrivial.mul + theorem Finset.Nontrivial.mul_left + theorem Finset.Nontrivial.mul_right + theorem Finset.Nontrivial.pow +/- theorem Finset.card_le_card_mul_right +/- theorem Finset.card_le_card_mul_self' +/- theorem Finset.card_mul_singleton +/- theorem Finset.card_singleton_mul +/- theorem Finset.inter_mul_singleton +/- theorem Finset.singleton_mul_inter + theorem Finset.subset_pow Modified Mathlib/Algebra/Group/Pointwise/Set/Basic.lean + theorem Set.Nontrivial.mul + theorem Set.Nontrivial.mul_left + theorem Set.Nontrivial.mul_right + theorem Set.Nontrivial.pow + theorem Set.subset_pow Modified Mathlib/Combinatorics/Additive/CauchyDavenport.lean Modified Mathlib/Combinatorics/Additive/PluenneckeRuzsa.lean 2024-11-28 19:53:02 f60ba8f chore: tag all `closure_mono` lemmas `gcongr` (#19561) From GrowthInGroups (LeanCamCombi) ESTIMATED CHANGES Modified Mathlib/Algebra/Field/Subfield/Basic.lean Modified Mathlib/Algebra/Group/Subgroup/Lattice.lean Modified Mathlib/Algebra/Group/Submonoid/Basic.lean Modified Mathlib/Algebra/Group/Subsemigroup/Basic.lean Modified Mathlib/Algebra/Ring/Subring/Basic.lean Modified Mathlib/Algebra/Ring/Subsemiring/Basic.lean Modified Mathlib/Data/Matroid/Closure.lean Modified Mathlib/Deprecated/Subfield.lean Modified Mathlib/Deprecated/Subgroup.lean Modified Mathlib/Deprecated/Submonoid.lean Modified Mathlib/Deprecated/Subring.lean Modified Mathlib/ModelTheory/Substructures.lean Modified Mathlib/RingTheory/NonUnitalSubring/Basic.lean Modified Mathlib/RingTheory/NonUnitalSubsemiring/Basic.lean 2024-11-28 19:04:19 6262f69 feat(Algebra/Category): `Under.pushout f` is left-exact if `f` is flat. (#19213) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Category/Ring/Under/Limits.lean + def CommRingCat.Under.equalizerFork' + def CommRingCat.Under.equalizerFork'IsLimit + theorem CommRingCat.Under.equalizerFork'_ι + def CommRingCat.Under.equalizerFork + def CommRingCat.Under.equalizerForkIsLimit + def CommRingCat.Under.equalizerForkTensorProdIso + theorem CommRingCat.Under.equalizerFork_ι + theorem CommRingCat.Under.equalizer_comp + def CommRingCat.Under.piFan + def CommRingCat.Under.piFanIsLimit + def CommRingCat.Under.piFanTensorProductIsLimit + theorem CommRingCat.Under.preservesFiniteLimits_of_flat + def CommRingCat.Under.tensorProdEqualizer + theorem CommRingCat.Under.tensorProdEqualizer_ι + def CommRingCat.Under.tensorProdMapEqualizerForkIsLimit + def CommRingCat.Under.tensorProductFan' + def CommRingCat.Under.tensorProductFan + def CommRingCat.Under.tensorProductFanIsLimit + def CommRingCat.Under.tensorProductFanIso Modified Mathlib/CategoryTheory/Limits/Preserves/Shapes/Products.lean + theorem CategoryTheory.Limits.preservesColimitsOfShape_of_discrete + theorem CategoryTheory.Limits.preservesLimitsOfShape_of_discrete Added Mathlib/RingTheory/TensorProduct/Pi.lean + theorem Algebra.TensorProduct.piRight_tmul + theorem piRightHom_mul + theorem piRightHom_one 2024-11-28 17:43:16 a315e3e feat: expand API for `CFC.posPart` (#19221) ESTIMATED CHANGES Modified Mathlib/Analysis/SpecialFunctions/ContinuousFunctionalCalculus/PosPart.lean + theorem CFC.le_posPart + theorem CFC.negPart_algebraMap + theorem CFC.negPart_eq_neg + theorem CFC.negPart_eq_of_eq_PosPart_sub +/- theorem CFC.negPart_eq_zero_iff + theorem CFC.negPart_one + theorem CFC.negPart_smul + theorem CFC.negPart_smul_of_nonneg + theorem CFC.negPart_smul_of_nonpos + theorem CFC.negPart_zero + theorem CFC.neg_negPart_le + theorem CFC.posPart_algebraMap + theorem CFC.posPart_algebraMap_nnreal + theorem CFC.posPart_eq_of_eq_sub_negPart + theorem CFC.posPart_eq_self +/- theorem CFC.posPart_eq_zero_iff + theorem CFC.posPart_natCast + theorem CFC.posPart_one + theorem CFC.posPart_smul + theorem CFC.posPart_smul_of_nonneg + theorem CFC.posPart_smul_of_nonpos + theorem CFC.posPart_zero 2024-11-28 17:22:35 97bd49d feat(NumberTheory/Padics): Mahler's theorem on continuous p-adic functions (#19473) This PR completes the proof of Mahler's theorem, showing that the Mahler functions give a Banach space basis for the continuous functions on Z_p. ESTIMATED CHANGES Modified Mathlib/NumberTheory/Padics/MahlerBasis.lean + theorem PadicInt.fwdDiff_mahlerSeries + theorem PadicInt.hasSum_mahler + theorem PadicInt.hasSum_mahlerSeries + theorem PadicInt.mahlerEquiv_apply + theorem PadicInt.mahlerEquiv_symm_apply + theorem PadicInt.mahlerSeries_apply + theorem PadicInt.mahlerSeries_apply_nat + theorem PadicInt.mahlerTerm_apply + theorem PadicInt.norm_mahlerTerm 2024-11-28 16:50:57 b79cbba feat(Order): maximal chains are preserved under order isomorphisms (#19471) From LeanCamCombi ESTIMATED CHANGES Modified Mathlib/Order/Chain.lean + theorem Flag.coe_map + theorem Flag.coe_ofIsMaxChain + def Flag.map + theorem Flag.mem_iff_forall_le_or_ge + def Flag.ofIsMaxChain + theorem Flag.symm_map + theorem IsChain.empty + theorem IsChain.pair + theorem IsChain.singleton + theorem IsMaxChain.image - theorem isChain_empty 2024-11-28 16:50:56 adcc9a1 feat: `S ^ n = S` where `S` is a submonoid (#19259) From GrowthInGroups ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Subgroup/Pointwise.lean + theorem Set.mul_subgroupClosure + theorem Set.pow_mul_subgroupClosure + theorem Set.subgroupClosure_mul + theorem Set.subgroupClosure_mul_pow - theorem coe_mul_coe Modified Mathlib/Algebra/Group/Submonoid/Pointwise.lean + theorem coe_mul_coe + theorem coe_set_pow 2024-11-28 16:50:54 10a37a9 feat(MeasureTheory/Measure/MutuallySingular): Disjoint iff mutually singular (#17995) ESTIMATED CHANGES Modified Mathlib/Analysis/SpecificLimits/Basic.lean + theorem ENNReal.eq_zero_of_le_mul_pow Modified Mathlib/MeasureTheory/Measure/MeasureSpace.lean + theorem MeasureTheory.Measure.inf_apply Modified Mathlib/MeasureTheory/Measure/MeasureSpaceDef.lean Modified Mathlib/MeasureTheory/Measure/MutuallySingular.lean + theorem MeasureTheory.Measure.MutuallySingular.disjoint + theorem MeasureTheory.Measure.MutuallySingular.disjoint_ae + theorem MeasureTheory.Measure.disjoint_of_disjoint_ae + theorem MeasureTheory.Measure.exists_null_set_measure_lt_of_disjoint + theorem MeasureTheory.Measure.mutuallySingular_iff_disjoint + theorem MeasureTheory.Measure.mutuallySingular_iff_disjoint_ae + theorem MeasureTheory.Measure.mutuallySingular_of_disjoint + theorem MeasureTheory.Measure.mutuallySingular_tfae 2024-11-28 16:12:33 52e3298 feat(Probability): lemmas about composition-product of a measure and a kernel (#19562) From the TestingLowerBounds project. ESTIMATED CHANGES Modified Mathlib/Probability/Kernel/MeasureCompProd.lean + theorem MeasureTheory.Measure.compProd_apply_univ + theorem MeasureTheory.Measure.compProd_const + theorem MeasureTheory.Measure.compProd_smul_left + theorem MeasureTheory.Measure.fst_compProd 2024-11-28 16:12:32 2f728e9 chore: split Prefunctor out of Quiver (#19525) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/CategoryTheory/Functor/Basic.lean Modified Mathlib/Combinatorics/Quiver/Basic.lean - def Prefunctor.comp - theorem Prefunctor.comp_assoc - theorem Prefunctor.comp_id - theorem Prefunctor.congr_map - theorem Prefunctor.ext - def Prefunctor.id - theorem Prefunctor.id_comp - theorem Prefunctor.mk_map - theorem Prefunctor.mk_obj - structure Prefunctor Modified Mathlib/Combinatorics/Quiver/Path.lean Added Mathlib/Combinatorics/Quiver/Prefunctor.lean + def Prefunctor.comp + theorem Prefunctor.comp_assoc + theorem Prefunctor.comp_id + theorem Prefunctor.congr_map + theorem Prefunctor.ext + def Prefunctor.id + theorem Prefunctor.id_comp + theorem Prefunctor.mk_map + theorem Prefunctor.mk_obj + structure Prefunctor Modified Mathlib/Combinatorics/Quiver/Push.lean 2024-11-28 16:12:30 a906a97 feat(Probability): identity, copy, discard and swap kernels (#19481) Add some notable deterministic kernels. These kernels play a particular role in the Markov category point of view on probability transition kernels. From the TestingLowerBounds project. ESTIMATED CHANGES Modified Mathlib/Probability/Kernel/Basic.lean + def ProbabilityTheory.Kernel.copy + theorem ProbabilityTheory.Kernel.copy_apply + def ProbabilityTheory.Kernel.discard + theorem ProbabilityTheory.Kernel.discard_apply + def ProbabilityTheory.Kernel.id + theorem ProbabilityTheory.Kernel.id_apply + def ProbabilityTheory.Kernel.swap + theorem ProbabilityTheory.Kernel.swap_apply' + theorem ProbabilityTheory.Kernel.swap_apply Modified Mathlib/Probability/Kernel/Composition.lean + theorem ProbabilityTheory.Kernel.compProd_prodMkLeft_eq_comp + theorem ProbabilityTheory.Kernel.comp_discard + theorem ProbabilityTheory.Kernel.comp_id + theorem ProbabilityTheory.Kernel.id_comp + theorem ProbabilityTheory.Kernel.swap_comp_eq_map + theorem ProbabilityTheory.Kernel.swap_copy + theorem ProbabilityTheory.Kernel.swap_prod + theorem ProbabilityTheory.Kernel.swap_swap 2024-11-28 16:12:29 37dfa23 chore(Analysis/Multilinear): avoid explicit `variable`s (#19445) Also change implicitness of some arguments, including the function argument of `ContinuousMultilinearMap.opNorm_le_bound`, expand some docstrings, and reorder arguments of `ContinuousMultilinearMap.le_of_opNorm_le` ESTIMATED CHANGES Modified Mathlib/Analysis/Analytic/ChangeOrigin.lean Modified Mathlib/Analysis/Analytic/Composition.lean Modified Mathlib/Analysis/Calculus/ContDiff/FaaDiBruno.lean Modified Mathlib/Analysis/Fourier/FourierTransformDeriv.lean Modified Mathlib/Analysis/Normed/Operator/BoundedLinearMaps.lean Modified Mathlib/Analysis/NormedSpace/Multilinear/Basic.lean +/- theorem ContinuousLinearMap.continuousAt_uncurry_of_multilinear +/- theorem ContinuousLinearMap.continuousOn_uncurry_of_multilinear +/- theorem ContinuousLinearMap.continuousWithinAt_uncurry_of_multilinear +/- theorem ContinuousLinearMap.continuous_uncurry_of_multilinear +/- theorem ContinuousMultilinearMap.bound +/- theorem ContinuousMultilinearMap.isLeast_opNNNorm +/- theorem ContinuousMultilinearMap.isLeast_opNorm - theorem ContinuousMultilinearMap.le_mul_prod_of_le_opNorm_of_le + theorem ContinuousMultilinearMap.le_mul_prod_of_opNorm_le_of_le +/- theorem ContinuousMultilinearMap.le_of_opNNNorm_le +/- theorem ContinuousMultilinearMap.le_of_opNorm_le +/- theorem ContinuousMultilinearMap.le_opNNNorm +/- theorem ContinuousMultilinearMap.le_opNorm +/- theorem ContinuousMultilinearMap.le_opNorm_mul_pow_card_of_le +/- theorem ContinuousMultilinearMap.le_opNorm_mul_prod_of_le +/- theorem ContinuousMultilinearMap.norm_def +/- theorem ContinuousMultilinearMap.norm_image_sub_le' +/- theorem ContinuousMultilinearMap.norm_image_sub_le +/- theorem ContinuousMultilinearMap.norm_restrictScalars +/- theorem ContinuousMultilinearMap.opNNNorm_le_iff +/- def ContinuousMultilinearMap.opNorm +/- theorem ContinuousMultilinearMap.opNorm_add_le +/- theorem ContinuousMultilinearMap.opNorm_le_bound +/- theorem ContinuousMultilinearMap.opNorm_le_iff +/- theorem ContinuousMultilinearMap.opNorm_neg +/- theorem ContinuousMultilinearMap.opNorm_nonneg +/- theorem ContinuousMultilinearMap.opNorm_smul_le +/- theorem ContinuousMultilinearMap.opNorm_zero_iff +/- theorem ContinuousMultilinearMap.ratio_le_opNorm +/- theorem ContinuousMultilinearMap.unit_le_opNorm +/- theorem MultilinearMap.bound_of_shell +/- theorem MultilinearMap.bound_of_shell_of_continuous +/- theorem MultilinearMap.bound_of_shell_of_norm_map_coord_zero +/- theorem MultilinearMap.coe_mkContinuous +/- theorem MultilinearMap.continuous_of_bound +/- theorem MultilinearMap.exists_bound_of_continuous +/- def MultilinearMap.mkContinuous +/- theorem MultilinearMap.norm_image_sub_le_of_bound' +/- theorem MultilinearMap.norm_image_sub_le_of_bound +/- theorem MultilinearMap.norm_map_coord_zero +/- theorem MultilinearMap.restr_norm_le Modified Mathlib/Analysis/NormedSpace/Multilinear/Curry.lean Modified Mathlib/Analysis/NormedSpace/PiTensorProduct/InjectiveSeminorm.lean 2024-11-28 16:12:28 0be336f feat: `MulLeftMono` implies `PosMulMono` (#19248) ... and similarly for the other typeclasses From GrowthInGroups (LeanCamCombi) ESTIMATED CHANGES Modified Mathlib/Algebra/Order/GroupWithZero/Unbundled.lean 2024-11-28 16:12:26 2b0dc33 feat: drop finite-dimensionality assumption from `PerfectPairing.restrictScalarsField` (#18940) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Data/Matrix/Mul.lean + theorem Matrix.submatrix_id_mul_left + theorem Matrix.submatrix_id_mul_right Modified Mathlib/LinearAlgebra/Dual.lean +/- theorem Basis.dualBasis_repr Added Mathlib/LinearAlgebra/Matrix/BaseChange.lean + theorem Matrix.mem_subfield_of_mul_eq_one_of_mem_subfield_left + theorem Matrix.mem_subfield_of_mul_eq_one_of_mem_subfield_right Modified Mathlib/LinearAlgebra/Matrix/Basis.lean + theorem Basis.toMatrix_mulVec_repr Modified Mathlib/LinearAlgebra/PerfectPairing.lean + def PerfectPairing.dual + theorem PerfectPairing.exists_basis_basis_of_span_eq_top_of_mem_algebraMap + theorem PerfectPairing.finrank_eq +/- def PerfectPairing.restrictScalarsField Modified docs/references.bib 2024-11-28 16:12:25 e71723b feat: Goursat's lemma for subgroups (#18823) Proves Goursat's lemma for subgroups. If `I` is a subgroup of `G × H` which projects fully on both factors, then there exist normal subgroups `G' ≤ G` and `H' ≤ H` such that `G' × H' ≤ I` and the image of `I` in `G ⧸ G' × H ⧸ H'` is the graph of an isomorphism `G ⧸ G' ≃ H ⧸ H'`. We construct `G'` and `H'` as explicit subgroups. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/GroupTheory/Goursat.lean + theorem Subgroup.goursat + def Subgroup.goursatFst + theorem Subgroup.goursatFst_prod_goursatSnd_le + def Subgroup.goursatSnd + theorem Subgroup.goursat_surjective + theorem Subgroup.mem_goursatFst + theorem Subgroup.mem_goursatSnd + theorem Subgroup.mk_goursatFst_eq_iff_mk_goursatSnd_eq + theorem Subgroup.normal_goursatFst + theorem Subgroup.normal_goursatSnd 2024-11-28 15:29:14 7467144 refactor(Algebra/Polynomial/Laurent): simplify some proofs (#19534) This PR simplifies a few proofs about Laurent polynomials and adds the trivial theorem `Polynomial.toLaurent_eq_zero`. It also changes the type of `Lauren.isLocalization` to use `Submonoid.powers` instead of `Submonoid.closure`, which I think is the more natural thing to do here. ESTIMATED CHANGES Modified Mathlib/Algebra/Polynomial/Laurent.lean +/- theorem LaurentPolynomial.isLocalization + theorem Polynomial.toLaurent_eq_zero +/- theorem Polynomial.toLaurent_ne_zero 2024-11-28 15:29:13 0b0b3f7 feat: the pullback of a vector field in a vector space (#19357) We prove notably that the pullback commutes with the Lie bracket. ESTIMATED CHANGES Modified Mathlib/Analysis/Calculus/VectorField.lean + theorem VectorField.DifferentiableWithinAt.pullbackWithin + theorem VectorField.fderivWithin_pullbackWithin + theorem VectorField.fderiv_pullback + def VectorField.pullback + def VectorField.pullbackWithin + theorem VectorField.pullbackWithin_eq + theorem VectorField.pullbackWithin_eq_of_fderivWithin_eq + theorem VectorField.pullbackWithin_eq_of_not_isInvertible + theorem VectorField.pullbackWithin_lieBracketWithin_of_isSymmSndFDerivWithinAt + theorem VectorField.pullbackWithin_lieBracketWithin_of_isSymmSndFDerivWithinAt_of_eventuallyEq + theorem VectorField.pullbackWithin_univ + theorem VectorField.pullback_eq_of_fderiv_eq + theorem VectorField.pullback_eq_of_not_isInvertible + theorem VectorField.pullback_lieBracket_of_isSymmSndFDerivAt + theorem exists_continuousLinearEquiv_fderivWithin_symm_eq + theorem exists_continuousLinearEquiv_fderiv_symm_eq 2024-11-28 15:29:11 9c17b7f feat: manifold derivative of operations in vector spaces (#18849) We have a comprehensive API for higher smoothness in the manifold sense of functions on vector spaces. We copy this API to deal with manifold differentiability. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Geometry/Manifold/MFDeriv/NormedSpace.lean + theorem Differentiable.comp_mdifferentiable + theorem Differentiable.comp_mdifferentiableAt + theorem Differentiable.comp_mdifferentiableWithinAt + theorem DifferentiableAt.comp_mdifferentiableAt + theorem DifferentiableAt.comp_mdifferentiableWithinAt + theorem DifferentiableWithinAt.comp_mdifferentiableWithinAt + theorem MDifferentiable.cle_arrowCongr + theorem MDifferentiable.clm_apply + theorem MDifferentiable.clm_comp + theorem MDifferentiable.clm_postcomp + theorem MDifferentiable.clm_precomp + theorem MDifferentiable.clm_prodMap + theorem MDifferentiable.smul + theorem MDifferentiableAt.cle_arrowCongr + theorem MDifferentiableAt.clm_apply + theorem MDifferentiableAt.clm_comp + theorem MDifferentiableAt.clm_postcomp + theorem MDifferentiableAt.smul + theorem MDifferentiableOn.cle_arrowCongr + theorem MDifferentiableOn.clm_apply + theorem MDifferentiableOn.clm_comp + theorem MDifferentiableOn.clm_precomp + theorem MDifferentiableOn.clm_prodMap + theorem MDifferentiableOn.smul + theorem MDifferentiableWithinAt.cle_arrowCongr + theorem MDifferentiableWithinAt.clm_apply + theorem MDifferentiableWithinAt.clm_comp + theorem MDifferentiableWithinAt.clm_postcomp + theorem MDifferentiableWithinAt.clm_precomp + theorem MDifferentiableWithinAt.clm_prodMap + theorem MDifferentiableWithinAt.smul 2024-11-28 15:29:10 0823ec5 feat: Define `Nat.finMulAntidiagonal`, the `Finset` of tuples of naturals with a fixed product. (#10668) The result `card_finMulAntidiagonal_of_squarefree` is central to controlling the error term in my formalisation of the Selberg sieve. (specifically for lemma 3.1 in [Heath-Brown's notes](https://arxiv.org/abs/math/0209360)) The definition is adapted from [Finset.finAntidiagonal](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Data/Finset/PiAntidiagonal.html#Finset.finAntidiagonal), though it is held back a bit by `Nat.divisorsAntidiagonal` which has a time complexity of $O(n^2)$. This definition is limited to `Nat` because it's not clear how to handle 0 in higher generality. ([zulip](https://leanprover.zulipchat.com/#narrow/stream/144837-PR-reviews/topic/.237486.20antidiagonal/near/395886479)) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Order/Antidiag/Nat.lean + theorem Nat.card_finMulAntidiag_of_squarefree + theorem Nat.dvd_of_mem_finMulAntidiag + def Nat.finMulAntidiag + theorem Nat.finMulAntidiag_eq_piFinset_divisors_filter + theorem Nat.finMulAntidiag_exists_unique_prime_dvd + theorem Nat.finMulAntidiag_one + theorem Nat.finMulAntidiag_zero_left + theorem Nat.finMulAntidiag_zero_right + theorem Nat.image_apply_finMulAntidiag + theorem Nat.image_piFinTwoEquiv_finMulAntidiag + theorem Nat.mem_finMulAntidiag + theorem Nat.ne_zero_of_mem_finMulAntidiag + theorem Nat.prod_eq_of_mem_finMulAntidiag Modified Mathlib/Algebra/Order/BigOperators/Ring/Finset.lean + theorem Finset.PNat.coe_prod Modified Mathlib/Data/PNat/Defs.lean +/- theorem PNat.coe_injective Modified Mathlib/Logic/Equiv/Basic.lean 2024-11-28 14:24:41 0fc63c9 doc: Fix minor typos in Set.Operations and Set.Basic (#19549) ESTIMATED CHANGES Modified Mathlib/Data/Set/Finite/Basic.lean Modified Mathlib/Data/Set/Operations.lean 2024-11-28 14:24:39 19f864c feat(MeasureTheory): integrability lemmas (#19439) Mostly about the relation between `Integrable` and the Lebesgue integral for real/ennreal functions. From the TestingLowerBounds project. ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Function/L1Space.lean + theorem MeasureTheory.Integrable.neg' + theorem MeasureTheory.hasFiniteIntegral_toReal_iff +/- theorem MeasureTheory.hasFiniteIntegral_toReal_of_lintegral_ne_top + theorem MeasureTheory.integrable_add_iff_integrable_left' + theorem MeasureTheory.integrable_add_iff_integrable_right' + theorem MeasureTheory.integrable_of_le_of_le + theorem MeasureTheory.integrable_toReal_iff + theorem MeasureTheory.lintegral_ofReal_ne_top_iff_integrable 2024-11-28 14:24:38 cbd4093 feat: `{a, b} * s = a • s ∪ b • s` (#19406) and other simple pointwise lemmas. From GrowthInGroups (LeanCamCombi) ESTIMATED CHANGES Modified Mathlib/Data/Set/Pointwise/SMul.lean + theorem Set.exists_smul_inter_smul_subset_smul_inv_mul_inter_inv_mul + theorem Set.mem_invOf_smul_set + theorem Set.mem_smul_set_inv + theorem Set.mul_pair +/- theorem Set.op_smul_set_subset_mul + theorem Set.pair_mul + theorem Set.smul_set_subset_mul 2024-11-28 14:24:37 0742f6c feat: interaction of `Finset.sup` and `Nat.cast` (#19245) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Order/Ring/Finset.lean + theorem Nat.cast_finsetInf' + theorem Nat.cast_finsetSup' + theorem Nat.cast_finsetSup Modified Mathlib/Data/Nat/Cast/Order/Ring.lean +/- theorem Nat.cast_max +/- theorem Nat.cast_min 2024-11-28 14:24:35 28d3cb7 feat(GroupTheory/SpecificGroups/Cyclic): Cardinality of automorphism group (#19180) This PR computes the cardinality of the automorphism group of a cyclic group. This is useful when paired with the N/C theorem in PR #19006. I added a new file to avoid adding extra imports to `Data/ZMod/Basic.lean`. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Data/ZMod/Aut.lean + def ZMod.AddAutEquivUnits Modified Mathlib/GroupTheory/SpecificGroups/Cyclic.lean + theorem IsCyclic.card_mulAut 2024-11-28 14:24:34 061f06f feat: Polynomial.isRoot_of_isRoot_iff_dvd_derivative_mul (#19146) ESTIMATED CHANGES Modified Mathlib/Algebra/Polynomial/FieldDivision.lean + theorem Polynomial.isRoot_of_isRoot_of_dvd_derivative_mul Modified Mathlib/FieldTheory/IsAlgClosed/AlgebraicClosure.lean + theorem Polynomial.isRoot_of_isRoot_iff_dvd_derivative_mul 2024-11-28 14:24:33 4b37534 feat(Algebra/Category/ModuleCat/Products): show that arbitrary coproducts agree with direct sum (#19024) ESTIMATED CHANGES Modified Mathlib/Algebra/Category/ModuleCat/Products.lean + def ModuleCat.coproductCocone + def ModuleCat.coproductCoconeIsColimit + theorem ModuleCat.lof_coprodIsoDirectSum_inv + theorem ModuleCat.ι_coprodIsoDirectSum_hom 2024-11-28 14:24:31 d8c4e54 feat(GroupTheory/Subgroup/Centralizer): The `N/C` theorem (#19006) This PR adds the `N/C` theorem that `Normalizer(H)/Centralizer(H)` embeds as a subgroup of `Aut(H)`. ESTIMATED CHANGES Modified Mathlib/GroupTheory/Subgroup/Centralizer.lean + def Subgroup.normalizerMonoidHom + theorem Subgroup.normalizerMonoidHom_ker 2024-11-28 14:24:30 2b8bedc feat(Analysis/NormedSpace/FunctionSeries): add eventually versions (#16543) ESTIMATED CHANGES Modified Mathlib/Analysis/NormedSpace/FunctionSeries.lean + theorem tendstoUniformlyOn_tsum_of_cofinite_eventually + theorem tendstoUniformly_tsum_of_cofinite_eventually 2024-11-28 13:58:31 bbf85a5 feat(MeasureTheory): add Measure.fst_add, Measure.fst_sum (#19564) and similar lemmas for `snd`. ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Measure/Prod.lean + theorem MeasureTheory.Measure.fst_add + theorem MeasureTheory.Measure.fst_sum + theorem MeasureTheory.Measure.snd_add + theorem MeasureTheory.Measure.snd_sum 2024-11-28 13:58:30 5caa22a chore(MetricSpace): don't use `{}` in binders (#19478) The automatic introduction of implicit is very annoying in proofs after having used one of those lemmas. From LeanCamCombi ESTIMATED CHANGES Modified Mathlib/Topology/Instances/Rat.lean Modified Mathlib/Topology/Instances/Real.lean Modified Mathlib/Topology/MetricSpace/Gluing.lean Modified Mathlib/Topology/MetricSpace/Pseudo/Defs.lean 2024-11-28 13:58:28 6ab96d7 feat: more lemmas about monovarying functions (#19470) From LeanCamCombi ESTIMATED CHANGES Modified Mathlib/Order/Monotone/Monovary.lean + theorem StrictAnti.trans_antivary + theorem StrictAnti.trans_monovary + theorem StrictAntiOn.trans_antivaryOn + theorem StrictAntiOn.trans_monovaryOn + theorem StrictMono.trans_antivary + theorem StrictMono.trans_monovary + theorem StrictMonoOn.trans_antivaryOn + theorem StrictMonoOn.trans_monovaryOn + theorem antivaryOn_iff_antivary + theorem monovaryOn_iff_monovary 2024-11-28 13:58:27 d6b4548 chore: split out Algebra.GroupWithZero.Nat (#19342) This means `Data.Nat.Prime.Defs` no longer depends on rings. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/EuclideanDomain/Int.lean Modified Mathlib/Algebra/Group/Nat/Basic.lean Added Mathlib/Algebra/GroupWithZero/Nat.lean Modified Mathlib/Algebra/Ring/Nat.lean Modified Mathlib/Data/Nat/GCD/Basic.lean Modified Mathlib/Data/Nat/ModEq.lean Modified Mathlib/Data/Nat/Prime/Defs.lean Modified MathlibTest/linear_combination.lean Modified MathlibTest/rewrites.lean 2024-11-28 13:58:25 63a0f6a feat: add Nat.digits_base_pow_mul and Nat.digits_append_zeroes_append_digits (#19179) Adds two `Nat.digits` lemmas that I needed in Compfiles for USAMO 1992 Problem 1: https://github.com/dwrensha/compfiles/blob/472f49e2b567e05c2cc1d963d5efbd6118f2b66c/Compfiles/Usa1992P1.lean#L32-L52 `Nat.digits_base_pow_mul` is like [`Nat.digits_append_digits`](https://github.com/leanprover-community/mathlib4/blob/7aeae34dfe1ca991bdb678b042ab1c7e3bea0df7/Mathlib/Data/Nat/Digits.lean#L413-L414), but with `Nat.digits b n` replaced by `List.replicate k 0`. This new lemma is useful because `Nat.digits b n` can never equal a nonempty list of all zeroes. `Nat.digits_append_zeroes_append_digits` is like `Nat.digits_append_digits` with an extra `List.replicate k 0` inserted in the middle. ESTIMATED CHANGES Modified Mathlib/Data/Nat/Digits.lean + theorem Nat.digits_append_zeroes_append_digits + theorem Nat.digits_base_pow_mul 2024-11-28 13:58:24 9d44280 doc: update README.md instructions for building documentation locally (#18713) Since #14229, the current instructions in README.md for building docs no longer work. This PR updates the instructions to refer to the `mathlib4_docs` repo, which is discussed in [this zulip thread](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/How.20does.20build.20.26.20deploy.20document.20for.20Mathlib4.20currently.3F/near/476591680). ESTIMATED CHANGES Modified README.md 2024-11-28 13:58:22 44a42c7 feat(Analysis/BoxIntegral): Add BoxPartition defined by subdivision of the integer lattice (#16675) Let `n` be a positive integer. This PR defines `BoxIntegral.unitPartition.Box` which are boxes in `ι → ℝ` obtained by dividing evenly the boxes of the integer lattice`ι → ℤ` into smaller boxes of sides of length `1 / n`. These boxes will be used in another PR #12405 that relates point counting in sets and integration. This PR is part of the proof of the Analytic Class Number Formula. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Analysis/BoxIntegral/Box/Basic.lean + theorem BoxIntegral.Box.isBounded + theorem BoxIntegral.Box.isBounded_Icc Added Mathlib/Analysis/BoxIntegral/UnitPartition.lean + def BoxIntegral.hasIntegralVertices + theorem BoxIntegral.le_hasIntegralVertices_of_isBounded + def BoxIntegral.unitPartition.admissibleIndex + theorem BoxIntegral.unitPartition.box.upper_sub_lower + def BoxIntegral.unitPartition.box + theorem BoxIntegral.unitPartition.box_index_tag_eq_self + theorem BoxIntegral.unitPartition.box_injective + theorem BoxIntegral.unitPartition.box_lower + theorem BoxIntegral.unitPartition.box_upper + theorem BoxIntegral.unitPartition.diam_boxIcc + theorem BoxIntegral.unitPartition.disjoint + def BoxIntegral.unitPartition.index + theorem BoxIntegral.unitPartition.index_apply + theorem BoxIntegral.unitPartition.index_tag + theorem BoxIntegral.unitPartition.mem_admissibleIndex_iff + theorem BoxIntegral.unitPartition.mem_admissibleIndex_of_mem_box + theorem BoxIntegral.unitPartition.mem_box_iff' + theorem BoxIntegral.unitPartition.mem_box_iff + theorem BoxIntegral.unitPartition.mem_box_iff_index + theorem BoxIntegral.unitPartition.mem_prepartition_boxes_iff + theorem BoxIntegral.unitPartition.mem_prepartition_iff + def BoxIntegral.unitPartition.prepartition + theorem BoxIntegral.unitPartition.prepartition_isHenstock + theorem BoxIntegral.unitPartition.prepartition_isPartition + theorem BoxIntegral.unitPartition.prepartition_isSubordinate + theorem BoxIntegral.unitPartition.prepartition_tag + theorem BoxIntegral.unitPartition.setFinite_index + theorem BoxIntegral.unitPartition.tag_apply + theorem BoxIntegral.unitPartition.tag_injective + theorem BoxIntegral.unitPartition.tag_mem + theorem BoxIntegral.unitPartition.volume_box 2024-11-28 13:32:40 dc8397f feat: `(t \ s).ncard = t.ncard - s.ncard` in a ring (#19407) Version of `Finset.cast_card_sdiff` for `Set.ncard`. Also generalise `ncard_diff`. From Kneser (LeanCamCombi) ESTIMATED CHANGES Modified Mathlib/Data/Set/Card.lean + theorem Set.cast_ncard_sdiff +/- theorem Set.ncard_diff 2024-11-28 13:23:50 4b33b00 feat: adjoining identity matrices to TU matrices (#19076) ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/Matrix/Determinant/TotallyUnimodular.lean +/- theorem Matrix.IsTotallyUnimodular.apply + theorem Matrix.IsTotallyUnimodular.fromRows_unitlike + theorem Matrix.IsTotallyUnimodular.reindex +/- theorem Matrix.IsTotallyUnimodular.submatrix +/- theorem Matrix.fromColumns_col0_isTotallyUnimodular_iff + theorem Matrix.fromColumns_one_isTotallyUnimodular_iff + theorem Matrix.fromRows_isTotallyUnimodular_iff_rows + theorem Matrix.fromRows_one_isTotallyUnimodular_iff +/- theorem Matrix.fromRows_row0_isTotallyUnimodular_iff - theorem Matrix.mapEquiv_isTotallyUnimodular + theorem Matrix.one_fromColumns_isTotallyUnimodular_iff + theorem Matrix.one_fromRows_isTotallyUnimodular_iff + theorem Matrix.reindex_isTotallyUnimodular 2024-11-28 12:19:19 1109970 feat: `IntermediateField.rank_sup_le` (#19527) New results: In `Mathlib/RingTheory/AlgebraicIndependent.lean`: - `IsTranscendenceBasis.lift_(cardinalMk|rank)_eq_max_lift`: if `x` is a transcendence basis of `E/F` and is not empty, then `[E:F] = #E = max(#F, #x, ℵ₀)` - `Algebra.Transcendental.rank_eq_cardinalMk`: if `E/F` is transcendental, then `[E:F] = #E`. (a corollary of above result) - `IntermediateField.rank_sup_le`: if `A` and `B` are intermediate fields of `E/F`, then `[AB:F] ≤ [A:F] * [B:F]` (an application of above result) In `Mathlib/RingTheory/Algebraic.lean`: - `[Algebra.]Transcendental.infinite`: a ring has infinitely many elements if it has a transcendental element. In `Mathlib/FieldTheory/MvRatFunc/Rank.lean` (new file): - `MvRatFunc.rank_eq_max_lift`: rank of multivariate rational function field. Note that we don't have `MvRatFunc` yet, so the statement uses `FractionRing (MvPolynomial ...)`. Eventually the theory of `MvRatFunc` should go this directory. Also move the results `Algebra.IsAlgebraic.[lift_]cardinalMk_le_XXX` from `Mathlib/FieldTheory/IsAlgClosed/Classification.lean` to a new file `Mathlib/RingTheory/Algebraic/Cardinality.lean` which has fewer imports. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/FieldTheory/IsAlgClosed/Classification.lean - theorem Algebra.IsAlgebraic.cardinalMk_le_max - theorem Algebra.IsAlgebraic.cardinalMk_le_sigma_polynomial Added Mathlib/FieldTheory/MvRatFunc/Rank.lean + theorem MvRatFunc.rank_eq_max_lift Modified Mathlib/RingTheory/Algebraic.lean + theorem Algebra.Transcendental.infinite + theorem Transcendental.infinite Added Mathlib/RingTheory/Algebraic/Cardinality.lean + theorem Algebra.IsAlgebraic.cardinalMk_le_max + theorem Algebra.IsAlgebraic.cardinalMk_le_sigma_polynomial + theorem Algebra.IsAlgebraic.lift_cardinalMk_le_max + theorem Algebra.IsAlgebraic.lift_cardinalMk_le_sigma_polynomial Modified Mathlib/RingTheory/AlgebraicIndependent.lean + theorem Algebra.Transcendental.rank_eq_cardinalMk + theorem IntermediateField.rank_sup_le + theorem IsTranscendenceBasis.lift_cardinalMk_eq_max_lift + theorem IsTranscendenceBasis.lift_rank_eq_max_lift 2024-11-28 08:44:15 8d63494 feat: locally compact manifolds are finite-dimensional (#19362) Transfer Riesz's theorem to manifolds: locally compact manifolds must be modelled on a finite-dimensional space. One direction already exists: `Manifold.locallyCompact_of_finiteDimensional`, and we provide a converse to it. ESTIMATED CHANGES Modified Mathlib/Geometry/Manifold/SmoothManifoldWithCorners.lean + theorem FiniteDimensional.of_locallyCompact_manifold + theorem LocallyCompactSpace.of_locallyCompact_manifold + theorem PartialHomeomorph.extend_image_nhd_mem_nhds_of_mem_interior_range + theorem PartialHomeomorph.map_extend_nhds_of_mem_interior_range + theorem extChartAt_image_nhd_mem_nhds_of_mem_interior_range - theorem extChartAt_target_union_comp_range_mem_nhds_of_mem + theorem extChartAt_target_union_compl_range_mem_nhds_of_mem + theorem interior_extChartAt_target_nonempty 2024-11-28 07:30:47 db0f8f7 chore: move unitsEquivNeZero later (#19437) This is only used in a single place, where the later file is already imported. This reduces the imports of a number of low level algebra files. ESTIMATED CHANGES Modified Mathlib/Algebra/GroupWithZero/Units/Basic.lean - def unitsEquivNeZero Modified Mathlib/Algebra/GroupWithZero/Units/Equiv.lean + def unitsEquivNeZero 2024-11-28 04:54:35 73295cb feat(Normed/Group): add `norm_abs_zsmul` and `norm_neg_one_pow_zsmul` (#19541) ESTIMATED CHANGES Modified Mathlib/Analysis/Normed/Group/Basic.lean +/- theorem coe_nnnorm' +/- theorem nnnorm_one' + theorem nnnorm_pow_natAbs + theorem nnnorm_units_zsmul + theorem nnnorm_zpow_abs + theorem nnnorm_zpow_isUnit + theorem norm_pow_natAbs + theorem norm_units_zsmul + theorem norm_zpow_abs + theorem norm_zpow_isUnit 2024-11-27 20:04:20 53a5bce chore(Pointwise): move auxiliary lemma out (#19537) This has nothing to do with pointwise actions and doesn't need to be additivised ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Pointwise/Set/Basic.lean - theorem Group.card_pow_eq_card_pow_card_univ_aux Modified Mathlib/Algebra/Group/Pointwise/Set/Finite.lean Modified Mathlib/Order/Monotone/Basic.lean + theorem Nat.stabilises_of_monotone 2024-11-27 19:53:47 0aebe46 refactor(Combinatorics/Additive): generalise Ruzsa's covering lemma to non-abelian groups (#19512) Also state it using a fixed real number and use semantic lemma names. This is much more useful in practice. From GrowthInGroups (LeanCamCombi) ESTIMATED CHANGES Modified Mathlib/Combinatorics/Additive/RuzsaCovering.lean - theorem Finset.exists_subset_mul_div + theorem Finset.ruzsa_covering_mul - theorem Set.exists_subset_mul_div + theorem Set.ruzsa_covering_mul 2024-11-27 18:16:39 db422a2 feat(CategoryTheory): coskeletal simplicial objects (#19492) A simplicial object `X` is *n-coskeletal* if the identity natural transformation `X` is a right extension of its restriction along `(Truncated.inclusion (n := n)).op` recorded by `rightExtensionInclusion X n`. Co-Authored-By: [Mario Carneiro](https://github.com/digama0) and [Joël Riou](https://github.com/joelriou) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/AlgebraicTopology/CechNerve.lean Modified Mathlib/AlgebraicTopology/MooreComplex.lean Modified Mathlib/AlgebraicTopology/SimplexCategory.lean +/- def SimplexCategory.Truncated.inclusion Renamed Mathlib/AlgebraicTopology/SimplicialObject.lean to Mathlib/AlgebraicTopology/SimplicialObject/Basic.lean Added Mathlib/AlgebraicTopology/SimplicialObject/Coskeletal.lean + def CategoryTheory.SimplicialObject.Truncated.rightExtensionInclusion + theorem CategoryTheory.SimplicialObject.isCoskeletal_iff_isIso Modified Mathlib/AlgebraicTopology/SimplicialSet/Basic.lean Modified Mathlib/AlgebraicTopology/SplitSimplicialObject.lean Modified Mathlib/CategoryTheory/Idempotents/SimplicialObject.lean 2024-11-27 18:07:36 6a0cdd1 feat(Algebra/Module): a presentation of an algebra induces a presentation of the module of differentials (#18440) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Module/Presentation/Differentials.lean + theorem Algebra.Presentation.differentials.comm₁₂ + theorem Algebra.Presentation.differentials.comm₁₂_single + theorem Algebra.Presentation.differentials.comm₂₃' + theorem Algebra.Presentation.differentials.comm₂₃ + theorem Algebra.Presentation.differentials.hom₁_single + theorem Algebra.Presentation.differentials.surjective_hom₁ + theorem Algebra.Presentation.differentialsSolution_isPresentation 2024-11-27 15:22:44 b5fb043 feat(Fin/Tuple): add `Fin.update_insertNth` (#19542) ESTIMATED CHANGES Modified Mathlib/Data/Fin/Tuple/Basic.lean + theorem Fin.update_insertNth 2024-11-27 14:12:34 8390aa7 chore(zulip_emoji_merge_delegate): exclude rss channel in python logic instead of zulip search (#19540) ESTIMATED CHANGES Modified scripts/zulip_emoji_merge_delegate.py 2024-11-27 14:12:32 af58035 chore(discover-lean-pr-testing): add PR number and diff link to relevant branches (#19532) ESTIMATED CHANGES Modified .github/workflows/discover-lean-pr-testing.yml 2024-11-27 13:34:02 37c90e4 feat: uniform time lemma for the existence of global integral curves (#9013) Lemma 9.15 in Lee's Introduction to Smooth Manifolds: > Let `v` be a smooth vector field on a smooth manifold `M`. If there exists `ε > 0` such that for each point `x : M`, there exists an integral curve of `v` through `x` defined on an open interval `Ioo (-ε) ε`, then every point on `M` has a global integral curve of `v` passing through it. We only require `v` to be $C^1$. To achieve this, we define the extension of an integral curve `γ` by another integral curve `γ'`, if they agree at a point inside their overlapping open interval domains. This utilises the uniqueness theorem of integral curves. We need this lemma to show that vector fields on compact manifolds always have global integral curves. - [x] depends on: #8886 - [x] depends on: #18833 - [x] depends on: #19008 ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Geometry/Manifold/IntegralCurve/ExistUnique.lean Added Mathlib/Geometry/Manifold/IntegralCurve/UniformTime.lean + theorem eqOn_abs_add_one_of_isIntegralCurveOn_Ioo + theorem eqOn_of_isIntegralCurveOn_Ioo + theorem eqOn_piecewise_of_isIntegralCurveOn_Ioo + theorem exists_isIntegralCurve_iff_exists_isIntegralCurveOn_Ioo + theorem exists_isIntegralCurve_of_isIntegralCurveOn + theorem isIntegralCurveOn_piecewise + theorem isIntegralCurve_abs_add_one_of_isIntegralCurveOn_Ioo Modified Mathlib/Order/Interval/Set/Basic.lean + theorem Set.Ioo_subset_Ioo_union_Ioo 2024-11-27 12:53:27 8489bbe chore: update Mathlib dependencies 2024-11-27 (#19536) This PR updates the Mathlib dependencies. ESTIMATED CHANGES Modified lake-manifest.json 2024-11-27 12:13:29 671c090 chore: move style linters to `Style` (#19529) This makes for a more coherent split of the linter files. Third attempt after #15942 and #16510. ESTIMATED CHANGES Modified Mathlib/Tactic/Linter/Lint.lean - def Mathlib.Linter.Style.cdotLinter - def Mathlib.Linter.Style.dollarSyntax.dollarSyntaxLinter - def Mathlib.Linter.Style.dollarSyntax.findDollarSyntax - def Mathlib.Linter.Style.lambdaSyntax.findLambdaSyntax - def Mathlib.Linter.Style.lambdaSyntax.lambdaSyntaxLinter - def Mathlib.Linter.Style.longFile.longFileLinter - def Mathlib.Linter.Style.longLine.longLineLinter - def Mathlib.Linter.Style.missingEnd.missingEndLinter - def Mathlib.Linter.findCDot - def Mathlib.Linter.isCDot? - def Mathlib.Linter.unwanted_cdot Modified Mathlib/Tactic/Linter/Style.lean + def Mathlib.Linter.Style.cdotLinter + def Mathlib.Linter.Style.dollarSyntax.dollarSyntaxLinter + def Mathlib.Linter.Style.dollarSyntax.findDollarSyntax + def Mathlib.Linter.Style.lambdaSyntax.findLambdaSyntax + def Mathlib.Linter.Style.lambdaSyntax.lambdaSyntaxLinter + def Mathlib.Linter.Style.longFile.longFileLinter + def Mathlib.Linter.Style.longLine.longLineLinter + def Mathlib.Linter.Style.missingEnd.missingEndLinter + def Mathlib.Linter.findCDot + def Mathlib.Linter.isCDot? + def Mathlib.Linter.unwanted_cdot Modified MathlibTest/Lint.lean - def foo Modified MathlibTest/LintStyle.lean + def foo Modified MathlibTest/LongFile.lean 2024-11-27 11:40:20 6b724bf fix(scripts/zulip_emoji_merge_delegate.py): fix the emoji reaction script (#19535) change the script to use `True` rather than `true`, fixing an error. ESTIMATED CHANGES Modified scripts/zulip_emoji_merge_delegate.py 2024-11-27 11:40:18 cb86c75 feat(CategoryTheory): pushforward pullback adjunction for `P.Over Q X` (#19271) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/CategoryTheory/Limits/MorphismProperty.lean Modified Mathlib/CategoryTheory/MorphismProperty/Basic.lean Modified Mathlib/CategoryTheory/MorphismProperty/Comma.lean + theorem CategoryTheory.MorphismProperty.Comma.comp_left + theorem CategoryTheory.MorphismProperty.Comma.comp_right + theorem CategoryTheory.MorphismProperty.Comma.eqToHom_left + theorem CategoryTheory.MorphismProperty.Comma.eqToHom_right + def CategoryTheory.MorphismProperty.Comma.lift + def CategoryTheory.MorphismProperty.Comma.mapLeft + def CategoryTheory.MorphismProperty.Comma.mapRight + theorem CategoryTheory.MorphismProperty.Over.Hom.ext + theorem CategoryTheory.MorphismProperty.Over.w + theorem CategoryTheory.MorphismProperty.Under.Hom.ext + theorem CategoryTheory.MorphismProperty.Under.w Added Mathlib/CategoryTheory/MorphismProperty/OverAdjunction.lean + def CategoryTheory.MorphismProperty.Over.map + def CategoryTheory.MorphismProperty.Over.mapComp + theorem CategoryTheory.MorphismProperty.Over.map_comp + theorem CategoryTheory.MorphismProperty.Over.pullbackComp_left_fst_fst + theorem CategoryTheory.MorphismProperty.Over.pullbackCongr_hom_app_left_fst 2024-11-27 11:08:08 01b31e1 chore(Submonoid/Subgroup): rename `subtype_range` to `range_subtype` (#19518) This matches the naming convention. ESTIMATED CHANGES Modified Mathlib/Algebra/DirectSum/Basic.lean Modified Mathlib/Algebra/Group/Subgroup/Ker.lean + theorem MonoidHom.range_comp + theorem Subgroup.range_subtype - theorem Subgroup.subtype_range Modified Mathlib/Algebra/Group/Submonoid/Membership.lean Modified Mathlib/Algebra/Group/Submonoid/Operations.lean + theorem MonoidHom.mrange_comp + theorem MonoidHom.mrange_eq_top - theorem MonoidHom.mrange_eq_top_iff_surjective + theorem Submonoid.mrange_subtype - theorem Submonoid.range_subtype Modified Mathlib/GroupTheory/Congruence/Basic.lean Modified Mathlib/GroupTheory/Finiteness.lean Modified Mathlib/GroupTheory/Index.lean Modified Mathlib/GroupTheory/PGroup.lean Modified Mathlib/GroupTheory/SchurZassenhaus.lean Modified Mathlib/GroupTheory/SpecificGroups/Alternating.lean Modified Mathlib/GroupTheory/Sylow.lean 2024-11-27 10:56:04 3bcc767 chore(zulip_emoji_merge_delegate): exclude #rss channel from search (#19533) ESTIMATED CHANGES Modified scripts/zulip_emoji_merge_delegate.py 2024-11-27 10:31:12 c59545b feat: ind-objects are closed under products (#18988) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Limits/FilteredColimitCommutesProduct.lean + theorem CategoryTheory.Limits.Types.isIso_colimitPointwiseProductToProductColimit + theorem CategoryTheory.Limits.colimitPointwiseProductToProductColimit_app + theorem CategoryTheory.Limits.ι_colimitPointwiseProductToProductColimit_π Added Mathlib/CategoryTheory/Limits/Indization/Products.lean + theorem CategoryTheory.Limits.isIndObject_limit_of_discrete + theorem CategoryTheory.Limits.isIndObject_limit_of_discrete_of_hasLimitsOfShape + theorem CategoryTheory.Limits.isIndObject_pi 2024-11-27 10:10:36 cfef5c4 doc: clarify doc of HasProd (#19530) ESTIMATED CHANGES Modified Mathlib/Topology/Algebra/InfiniteSum/Defs.lean 2024-11-27 09:56:46 3942daa chore(CategoryTheory/Sites): split DenseSubsite (#19519) The file `CategoryTheory.Sites.DenseSubsite` is split into `DenseSubsite.Basic` and `DenseSubsite.SheafEquiv`, the latter containing the equivalence of categories of sheaves in case suitable limits exists. The file `Sites.InducedTopology` is also moved to `Sites.DenseSubsite`. (This split prepares for #19444 where the equivalence of categories of sheaves is obtained under a somewhat weaker condition.) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/CategoryTheory/Sites/Coherent/SheafComparison.lean Modified Mathlib/CategoryTheory/Sites/ConstantSheaf.lean Renamed Mathlib/CategoryTheory/Sites/DenseSubsite.lean to Mathlib/CategoryTheory/Sites/DenseSubsite/Basic.lean - theorem CategoryTheory.Functor.IsDenseSubsite.isIso_ranCounit_app_of_isDenseSubsite Renamed Mathlib/CategoryTheory/Sites/InducedTopology.lean to Mathlib/CategoryTheory/Sites/DenseSubsite/InducedTopology.lean Added Mathlib/CategoryTheory/Sites/DenseSubsite/SheafEquiv.lean + theorem CategoryTheory.Functor.IsDenseSubsite.isIso_ranCounit_app_of_isDenseSubsite Modified Mathlib/CategoryTheory/Sites/Equivalence.lean Modified Mathlib/CategoryTheory/Sites/PreservesLocallyBijective.lean Modified Mathlib/Topology/Sheaves/SheafCondition/Sites.lean 2024-11-27 09:56:45 ebd1b1a feat(Algebra): ULift ℤ is initial in the category of commutative rings (#19507) ESTIMATED CHANGES Modified Mathlib/Algebra/Category/Ring/Constructions.lean + def CommRingCat.isInitial 2024-11-27 09:56:44 0020011 chore(GroupTheory/FreeGroup): split off `Reduce.lean` (#19501) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/GroupTheory/FreeGroup/Basic.lean - theorem FreeGroup.Red.enum.complete - theorem FreeGroup.Red.enum.sound - def FreeGroup.Red.enum - theorem FreeGroup.Red.reduce_left - theorem FreeGroup.Red.reduce_right - theorem FreeGroup.mk_toWord - def FreeGroup.norm - theorem FreeGroup.norm_eq_zero - theorem FreeGroup.norm_inv_eq - theorem FreeGroup.norm_mk_le - theorem FreeGroup.norm_mul_le - theorem FreeGroup.norm_of - theorem FreeGroup.norm_of_pow - theorem FreeGroup.norm_one - theorem FreeGroup.norm_surjective - theorem FreeGroup.of_ne_one - theorem FreeGroup.one_ne_of - theorem FreeGroup.reduce.Step.eq - def FreeGroup.reduce.churchRosser - theorem FreeGroup.reduce.cons - theorem FreeGroup.reduce.eq_of_red - theorem FreeGroup.reduce.exact - theorem FreeGroup.reduce.idem - theorem FreeGroup.reduce.min - theorem FreeGroup.reduce.not - theorem FreeGroup.reduce.red - theorem FreeGroup.reduce.rev - theorem FreeGroup.reduce.self - theorem FreeGroup.reduce.sound - def FreeGroup.reduce - theorem FreeGroup.reduce_invRev - theorem FreeGroup.reduce_nil - theorem FreeGroup.reduce_replicate - theorem FreeGroup.reduce_singleton - theorem FreeGroup.reduce_toWord - def FreeGroup.toWord - theorem FreeGroup.toWord_eq_nil_iff - theorem FreeGroup.toWord_inj - theorem FreeGroup.toWord_injective - theorem FreeGroup.toWord_inv - theorem FreeGroup.toWord_mk - theorem FreeGroup.toWord_mul_sublist - theorem FreeGroup.toWord_of - theorem FreeGroup.toWord_of_pow - theorem FreeGroup.toWord_one Added Mathlib/GroupTheory/FreeGroup/Reduce.lean + theorem FreeGroup.Red.enum.complete + theorem FreeGroup.Red.enum.sound + def FreeGroup.Red.enum + theorem FreeGroup.Red.reduce_left + theorem FreeGroup.Red.reduce_right + theorem FreeGroup.mk_toWord + def FreeGroup.norm + theorem FreeGroup.norm_eq_zero + theorem FreeGroup.norm_inv_eq + theorem FreeGroup.norm_mk_le + theorem FreeGroup.norm_mul_le + theorem FreeGroup.norm_of + theorem FreeGroup.norm_of_pow + theorem FreeGroup.norm_one + theorem FreeGroup.norm_surjective + theorem FreeGroup.of_ne_one + theorem FreeGroup.one_ne_of + theorem FreeGroup.reduce.Step.eq + def FreeGroup.reduce.churchRosser + theorem FreeGroup.reduce.cons + theorem FreeGroup.reduce.eq_of_red + theorem FreeGroup.reduce.exact + theorem FreeGroup.reduce.idem + theorem FreeGroup.reduce.min + theorem FreeGroup.reduce.not + theorem FreeGroup.reduce.red + theorem FreeGroup.reduce.rev + theorem FreeGroup.reduce.self + theorem FreeGroup.reduce.sound + def FreeGroup.reduce + theorem FreeGroup.reduce_invRev + theorem FreeGroup.reduce_nil + theorem FreeGroup.reduce_replicate + theorem FreeGroup.reduce_singleton + theorem FreeGroup.reduce_toWord + def FreeGroup.toWord + theorem FreeGroup.toWord_eq_nil_iff + theorem FreeGroup.toWord_inj + theorem FreeGroup.toWord_injective + theorem FreeGroup.toWord_inv + theorem FreeGroup.toWord_mk + theorem FreeGroup.toWord_mul_sublist + theorem FreeGroup.toWord_of + theorem FreeGroup.toWord_of_pow + theorem FreeGroup.toWord_one Modified Mathlib/SetTheory/Cardinal/Free.lean 2024-11-27 09:56:42 8674145 chore(NumberTheory/Fermat): fix theorem names (#19469) From LeanCamCombi ESTIMATED CHANGES Modified Mathlib/NumberTheory/Fermat.lean +/- theorem Nat.coprime_fermatNumber_fermatNumber + theorem Nat.fermatNumber_injective + theorem Nat.fermatNumber_mono + theorem Nat.fermatNumber_ne_one - theorem Nat.fermatNumber_product + theorem Nat.fermatNumber_strictMono + theorem Nat.pairwise_coprime_fermatNumber + theorem Nat.prod_fermatNumber - theorem Nat.strictMono_fermatNumber + theorem Nat.three_le_fermatNumber +/- theorem Nat.two_lt_fermatNumber 2024-11-27 09:56:41 1341909 feat: prove `zmodRepr` is unique (#19391) We prove `PadicInt.exists_unique_mem_range` which is a strengthening of `exists_mem_range`, proving uniqueness of the natural number. I need this to simplify `toZMod(1+ap)` to `1`. ESTIMATED CHANGES Modified Mathlib/NumberTheory/Padics/RingHoms.lean + theorem PadicInt.exists_unique_mem_range + theorem PadicInt.zmodRepr_unique 2024-11-27 09:56:40 092a7d6 feat: coproducts in the category of Ind-objects (#19154) Shows that - the functor `C ⥤ Ind C` preserves finite colimits, - if `C` has coproducts indexed by a finite type `α`, then `Ind C` has coproducts indexed by `α`, - if `C` has finite coproducts, then `Ind C` has small coproducts. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Limits/Indization/Category.lean + theorem CategoryTheory.Ind.isIndObject_inclusion_obj 2024-11-27 09:04:46 e10334b chore: rename `div_div_cancel'` to `div_div_cancel₀` (#19459) and make it simp ESTIMATED CHANGES Modified Mathlib/Algebra/GroupWithZero/Units/Basic.lean - theorem div_div_cancel' + theorem div_div_cancel₀ Modified Mathlib/Algebra/Order/Field/Basic.lean Modified Mathlib/Analysis/Complex/Liouville.lean Modified Mathlib/Analysis/Complex/PhragmenLindelof.lean Modified Mathlib/NumberTheory/LSeries/AbstractFuncEq.lean 2024-11-27 09:04:45 f899f09 chore: avoid importing `ContDiff.Defs` in `FDeriv.Analytic` (#19374) For this, move the results needing `ContDiff` to two new files. The reason of this change is that I will import `FDeriv.Analytic` in `ContDiff.Defs` in #17152 ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Analysis/Analytic/Within.lean + theorem AnalyticWithinAt.exists_mem_nhdsWithin_analyticOn Added Mathlib/Analysis/Calculus/ContDiff/Analytic.lean + theorem AnalyticAt.contDiffAt + theorem AnalyticOnNhd.contDiff Added Mathlib/Analysis/Calculus/ContDiff/CPolynomial.lean + theorem CPolynomialAt.contDiffAt + theorem CPolynomialOn.contDiffOn + theorem ContinuousMultilinearMap.contDiff + theorem ContinuousMultilinearMap.contDiffAt Modified Mathlib/Analysis/Calculus/FDeriv/Analytic.lean - theorem AnalyticAt.contDiffAt - theorem AnalyticOn.hasFTaylorSeriesUpToOn - theorem AnalyticOnNhd.contDiff - theorem CPolynomialAt.contDiffAt - theorem CPolynomialOn.contDiffOn - theorem ContinuousMultilinearMap.contDiff - theorem ContinuousMultilinearMap.contDiffAt Modified Mathlib/Analysis/Fourier/FourierTransformDeriv.lean Modified Mathlib/Analysis/SpecialFunctions/ExpDeriv.lean Modified Mathlib/Geometry/Manifold/AnalyticManifold.lean 2024-11-27 08:55:06 7e86316 feat(FieldTheory/LinearDisjoint): definition and basic properties of linearly disjoint of fields (#9651) This PR adds basics about the linearly disjoint fields. Main definitions: - `IntermediateField.LinearDisjoint`: an intermediate field `A` of `E / F` and an abstract field `L` between `E / F` are linearly disjoint over `F`, if they are linearly disjoint as subalgebras (`Subalgebra.LinearDisjoint`). Main results: Equivalent characterization of linearly disjointness: - `IntermediateField.LinearDisjoint.linearIndependent_left`: if `A` and `L` are linearly disjoint, then any `F`-linearly independent family on `A` remains linearly independent over `L`. - `IntermediateField.LinearDisjoint.of_basis_left`: conversely, if there exists an `F`-basis of `A` which remains linearly independent over `L`, then `A` and `L` are linearly disjoint. - `IntermediateField.LinearDisjoint.linearIndependent_right`: if `A` and `L` are linearly disjoint, then any `F`-linearly independent family on `L` remains linearly independent over `A`. - `IntermediateField.LinearDisjoint.of_basis_right`: conversely, if there exists an `F`-basis of `L` which remains linearly independent over `A`, then `A` and `L` are linearly disjoint. - `IntermediateField.LinearDisjoint.linearIndependent_mul`: if `A` and `L` are linearly disjoint, then for any family of `F`-linearly independent elements `{ a_i }` of `A`, and any family of `F`-linearly independent elements `{ b_j }` of `L`, the family `{ a_i * b_j }` in `S` is also `F`-linearly independent. - `IntermediateField.LinearDisjoint.of_basis_mul`: conversely, if `{ a_i }` is an `F`-basis of `A`, if `{ b_j }` is an `F`-basis of `L`, such that the family `{ a_i * b_j }` in `E` is `F`-linearly independent, then `A` and `L` are linearly disjoint. Other main results: - `IntermediateField.LinearDisjoint.symm`, `IntermediateField.linearDisjoint_symm`: linearly disjoint is symmetric. - `IntermediateField.LinearDisjoint.rank_sup_of_isAlgebraic`, `IntermediateField.LinearDisjoint.finrank_sup`: if `A` and `B` are linearly disjoint, then the rank of `A ⊔ B` is equal to the product of the rank of `A` and `B`. **TODO:** remove the algebraic assumptions (the proof becomes complicated). - `IntermediateField.LinearDisjoint.of_finrank_sup`: conversely, if `A` and `B` are finite extensions, such that rank of `A ⊔ B` is equal to the product of the rank of `A` and `B`, then `A` and `B` are linearly disjoint. - `IntermediateField.LinearDisjoint.of_finrank_coprime`: if the rank of `A` and `B` are coprime, then `A` and `B` are linearly disjoint. - `IntermediateField.LinearDisjoint.inf_eq_bot`: if `A` and `B` are linearly disjoint, then they are disjoint. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/FieldTheory/LinearDisjoint.lean + theorem IntermediateField.LinearDisjoint.bot_left + theorem IntermediateField.LinearDisjoint.bot_right + theorem IntermediateField.LinearDisjoint.eq_bot_of_self + theorem IntermediateField.LinearDisjoint.finrank_sup + theorem IntermediateField.LinearDisjoint.inf_eq_bot + theorem IntermediateField.LinearDisjoint.linearIndependent_left + theorem IntermediateField.LinearDisjoint.linearIndependent_mul' + theorem IntermediateField.LinearDisjoint.linearIndependent_mul + theorem IntermediateField.LinearDisjoint.linearIndependent_right' + theorem IntermediateField.LinearDisjoint.linearIndependent_right + theorem IntermediateField.LinearDisjoint.of_basis_left + theorem IntermediateField.LinearDisjoint.of_basis_mul' + theorem IntermediateField.LinearDisjoint.of_basis_mul + theorem IntermediateField.LinearDisjoint.of_basis_right' + theorem IntermediateField.LinearDisjoint.of_basis_right + theorem IntermediateField.LinearDisjoint.of_finrank_coprime + theorem IntermediateField.LinearDisjoint.of_finrank_sup + theorem IntermediateField.LinearDisjoint.of_le' + theorem IntermediateField.LinearDisjoint.of_le + theorem IntermediateField.LinearDisjoint.of_le_left + theorem IntermediateField.LinearDisjoint.of_le_right' + theorem IntermediateField.LinearDisjoint.of_le_right + theorem IntermediateField.LinearDisjoint.rank_sup_of_isAlgebraic + theorem IntermediateField.LinearDisjoint.self_right + theorem IntermediateField.LinearDisjoint.symm + theorem IntermediateField.linearDisjoint_comm + theorem IntermediateField.linearDisjoint_iff' + theorem IntermediateField.linearDisjoint_iff Modified Mathlib/LinearAlgebra/LinearDisjoint.lean + theorem Submodule.linearDisjoint_comm + theorem Submodule.linearDisjoint_comm_of_commute - theorem Submodule.linearDisjoint_symm - theorem Submodule.linearDisjoint_symm_of_commute Modified Mathlib/RingTheory/LinearDisjoint.lean + theorem Subalgebra.linearDisjoint_comm + theorem Subalgebra.linearDisjoint_comm_of_commute - theorem Subalgebra.linearDisjoint_symm - theorem Subalgebra.linearDisjoint_symm_of_commute 2024-11-27 08:00:36 8a7a0b7 refactor(LinearAlgebra/Matrix/GeneralLinearGroup): Redefine `Matrix.SpecialLinearGroup.toGL`and remove duplicate `toLinear` (#19523) This PR redefines `Matrix.SpecialLinearGroup.toGL`, as the multiplicative map from the matrix group $$\mathrm{SL}_n(R)$$ to the matrix group $$\mathrm{GL}_n(R)$$, following a [Zulip discussion](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Matrix.2ESpecialLinearGroup.2EtoGL). It also removes a duplicate of `Matrix.GeneralLinearGroup.toLin`. ESTIMATED CHANGES Modified Mathlib/Analysis/Complex/UpperHalfPlane/Basic.lean Modified Mathlib/LinearAlgebra/Matrix/GeneralLinearGroup/Defs.lean + theorem Matrix.GeneralLinearGroup.coe_toLin - theorem Matrix.GeneralLinearGroup.coe_toLinear + theorem Matrix.GeneralLinearGroup.toLin_apply - def Matrix.GeneralLinearGroup.toLinear - theorem Matrix.GeneralLinearGroup.toLinear_apply - def Matrix.SpecialLinearGroup.coeToGL + def Matrix.SpecialLinearGroup.toGL Modified Mathlib/LinearAlgebra/Matrix/SpecialLinearGroup.lean - theorem Matrix.SpecialLinearGroup.coe_toGL - def Matrix.SpecialLinearGroup.toGL Modified Mathlib/LinearAlgebra/Matrix/ToLinearEquiv.lean Modified Mathlib/NumberTheory/Modular.lean 2024-11-27 03:15:31 bdc1ed1 feat: approximate units in C⋆-algebras (#18506) This constructs the canonical approximate unit in an arbitrary C⋆-algebra. This approximate unit is the filter corresponding to the basis of sections `{x | a ≤ x} ∩ closedBall 0 1`, where `0 ≤ a` and `‖a‖ < 1`. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Analysis/CStarAlgebra/ApproximateUnit.lean + def CStarAlgebra.approximateUnit + theorem CStarAlgebra.hasBasis_approximateUnit + theorem CStarAlgebra.increasingApproximateUnit + theorem CStarAlgebra.isBasis_nonneg_sections + theorem CStarAlgebra.nnnorm_sub_mul_self_le + theorem CStarAlgebra.norm_sub_mul_self_le + theorem CStarAlgebra.norm_sub_mul_self_le_of_inr + theorem CStarAlgebra.tendsto_mul_left_iff_tendsto_mul_right + theorem CStarAlgebra.tendsto_mul_right_of_forall_nonneg_tendsto + theorem Filter.IsIncreasingApproximateUnit.eventually_isSelfAdjoint + theorem Filter.IsIncreasingApproximateUnit.eventually_nnnorm + theorem Filter.IsIncreasingApproximateUnit.eventually_star_eq + structure Filter.IsIncreasingApproximateUnit Added Mathlib/Analysis/CStarAlgebra/SpecialFunctions/PosPart.lean + theorem CStarAlgebra.span_nonneg_inter_ball + theorem CStarAlgebra.span_nonneg_inter_closedBall + theorem CStarAlgebra.span_nonneg_inter_unitBall + theorem CStarAlgebra.span_nonneg_inter_unitClosedBall Modified Mathlib/Analysis/SpecialFunctions/ContinuousFunctionalCalculus/PosPart.lean + theorem CStarAlgebra.linear_combination_nonneg + theorem CStarAlgebra.span_nonneg 2024-11-27 02:02:50 6995975 feat: add `NonUnital{Star}Algebra.elemental` subalgebras (#18615) Define the `NonUnital{Star}Algebra.elemental` as `(adjoin R {x}).topologicalClosure` to match the unital versions. - [ ] depends on: #18612 - [ ] depends on: #18613 ESTIMATED CHANGES Modified Mathlib/Topology/Algebra/NonUnitalAlgebra.lean + theorem NonUnitalAlgebra.elemental.isClosedEmbedding_coe + theorem NonUnitalAlgebra.elemental.le_iff_mem + theorem NonUnitalAlgebra.elemental.le_of_mem + theorem NonUnitalAlgebra.elemental.self_mem + def NonUnitalAlgebra.elemental Modified Mathlib/Topology/Algebra/NonUnitalStarAlgebra.lean + theorem NonUnitalStarAlgebra.elemental.isClosedEmbedding_coe + theorem NonUnitalStarAlgebra.elemental.le_iff_mem + theorem NonUnitalStarAlgebra.elemental.le_of_mem + theorem NonUnitalStarAlgebra.elemental.self_mem + theorem NonUnitalStarAlgebra.elemental.star_self_mem + def NonUnitalStarAlgebra.elemental 2024-11-26 23:28:21 ec29ece feat(Topology/Algebra): add `IsModuleTopology.continuous_of_ringHom` (#19515) ESTIMATED CHANGES Modified Mathlib/Topology/Algebra/Module/ModuleTopology.lean + theorem IsModuleTopology.continuous_of_ringHom 2024-11-26 23:14:43 ba018bd refactor(CategoryTheory/Sites): remove SheafOfTypes (#19510) This PR removes the category `SheafOfTypes.{u} J` which was equivalent to `Sheaf J (Type u)`, where `J` is a Grothendieck topology. This avoids some duplication of code, as `SheafOfTypes` was essentially a special case of `Sheaf`: the only difference was that the sheaf condition was phrased differently. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Sites/Adjunction.lean - def CategoryTheory.Sheaf.adjunctionToTypes - theorem CategoryTheory.Sheaf.adjunctionToTypes_counit_app_val - theorem CategoryTheory.Sheaf.adjunctionToTypes_unit_app_val Modified Mathlib/CategoryTheory/Sites/Coherent/LocallySurjective.lean - theorem CategoryTheory.extensiveTopology.surjective_of_isLocallySurjective_sheafOfTypes + theorem CategoryTheory.extensiveTopology.surjective_of_isLocallySurjective_sheaf_of_types - theorem CategoryTheory.regularTopology.isLocallySurjective_sheafOfTypes + theorem CategoryTheory.regularTopology.isLocallySurjective_sheaf_of_types Modified Mathlib/CategoryTheory/Sites/Continuous.lean - theorem CategoryTheory.Functor.op_comp_isSheafOfTypes + theorem CategoryTheory.Functor.op_comp_isSheaf_of_types Modified Mathlib/CategoryTheory/Sites/CoverPreserving.lean Modified Mathlib/CategoryTheory/Sites/DenseSubsite.lean +/- theorem CategoryTheory.Functor.IsCoverDense.ext Modified Mathlib/CategoryTheory/Sites/LocallyFullyFaithful.lean +/- theorem CategoryTheory.Functor.IsLocallyFaithful.ext Modified Mathlib/CategoryTheory/Sites/Sheaf.lean + theorem CategoryTheory.Presheaf.isSheaf_bot + def CategoryTheory.sheafBotEquivalence - def CategoryTheory.sheafEquivSheafOfTypes Modified Mathlib/CategoryTheory/Sites/SheafOfTypes.lean - theorem CategoryTheory.SheafOfTypes.Hom.ext' - structure CategoryTheory.SheafOfTypes.Hom - structure CategoryTheory.SheafOfTypes - def CategoryTheory.sheafOfTypesBotEquiv - def CategoryTheory.sheafOfTypesToPresheaf Modified Mathlib/CategoryTheory/Sites/Types.lean + theorem CategoryTheory.Presheaf.isSheaf_yoneda' + theorem CategoryTheory.Presieve.isSheaf_yoneda' +/- theorem CategoryTheory.eval_app - theorem CategoryTheory.isSheaf_yoneda' +/- def CategoryTheory.yoneda' +/- theorem CategoryTheory.yoneda'_comp 2024-11-26 23:03:58 1edbd1b feat(Algebra/GradedMonoid): add `prod_mem_graded` (#19500) This contribution was created as part of the Durham Computational Algebraic Geometry Workshop. ESTIMATED CHANGES Modified Mathlib/Algebra/GradedMonoid.lean + theorem SetLike.prod_mem_graded + theorem SetLike.prod_pow_mem_graded 2024-11-26 23:03:57 84b0984 feat(Topology/Compactness): delta-generated spaces (#19431) Introduces delta-generated topological spaces and shows that they are sequential, locally path-connected and closed under disjoint unions and quotients. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Topology/Compactness/DeltaGeneratedSpace.lean + theorem DeltaGeneratedSpace.coinduced + theorem DeltaGeneratedSpace.continuous_counit + theorem DeltaGeneratedSpace.continuous_iff + def DeltaGeneratedSpace.counit + theorem DeltaGeneratedSpace.isOpen_iff + def DeltaGeneratedSpace.of + def TopologicalSpace.deltaGenerated + theorem Topology.IsQuotientMap.deltaGeneratedSpace + theorem continuous_to_deltaGenerated + theorem deltaGeneratedSpace_deltaGenerated + theorem deltaGenerated_deltaGenerated_eq + theorem deltaGenerated_eq_coinduced + theorem deltaGenerated_le + theorem deltaGenerated_mono + theorem eq_deltaGenerated + theorem isOpen_deltaGenerated_iff 2024-11-26 22:40:39 de39dd8 feat: zulip emoji reactions on public and `mathlib reviewers` channels (#19522) Updates the action that places emoji reactions triggered by `bors x`: now the reactions should be added to all public channels and to the `mathlib reviewers` channel. ESTIMATED CHANGES Modified scripts/zulip_emoji_merge_delegate.py 2024-11-26 22:40:38 095a1c6 feat: semiring with discrete PrimeSpectrum (#19496) If the prime spectrum of a commutative semiring R has discrete Zariski topology, then R is canonically isomorphic to the product of its localizations at the (finitely many) maximal ideals. This was previously only proven for commutative rings R; a different proof using the sheaf property is required to generalize it. ESTIMATED CHANGES Modified Mathlib/AlgebraicGeometry/GammaSpecAdjunction.lean Modified Mathlib/AlgebraicGeometry/PrimeSpectrum/Basic.lean +/- def RingHom.toLocalizationIsMaximalEquiv +/- theorem RingHom.toLocalizationIsMaximal_surjective_of_discreteTopology Modified Mathlib/RingTheory/Ideal/Basic.lean + theorem Ideal.span_range_pow_eq_top Modified Mathlib/RingTheory/Localization/Away/AdjoinRoot.lean Modified Mathlib/RingTheory/Localization/Away/Basic.lean - theorem IsLocalization.Away.AwayMap.lift_comp - theorem IsLocalization.Away.AwayMap.lift_eq + theorem IsLocalization.Away.awayToAwayLeft_eq + theorem IsLocalization.Away.awayToAwayRight_eq + theorem IsLocalization.Away.isUnit_of_dvd + theorem IsLocalization.Away.lift_comp + theorem IsLocalization.Away.lift_eq +/- theorem IsLocalization.away_of_isUnit_of_bijective + theorem Localization.algebraMap_injective_of_span_eq_top + theorem Localization.existsUnique_algebraMap_eq_of_span_eq_top 2024-11-26 22:40:37 30c0e01 feat(CategoryTheory/Enriched/Opposite): the opposite category of an enriched category (#19483) For a `V`-category `C`, define the opposite `V`-category as an instance on the type `Cᵒᵖ`, construct an equivalence between the underlying category `ForgetEnrichment V (Cᵒᵖ)` and the opposite category `(ForgetEnrichment V C)ᵒᵖ`, and construct an instance of `EnrichedOrdinaryCategory V (Cᵒᵖ)` in the case that `C` comes with an instance of `EnrichedOrdinaryCategory V C`. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Enriched/Opposite.lean + theorem CategoryTheory.eComp_op_eq + def CategoryTheory.forgetEnrichmentOppositeEquivalence.functor + def CategoryTheory.forgetEnrichmentOppositeEquivalence.inverse + def CategoryTheory.forgetEnrichmentOppositeEquivalence + theorem CategoryTheory.tensorHom_eComp_op_eq 2024-11-26 22:19:05 21af854 chore: adaptation to batteries#1055 (#19487) ESTIMATED CHANGES Modified Mathlib/Data/Fin/VecNotation.lean Modified Mathlib/Data/List/Defs.lean - def List.finRange Modified Mathlib/Data/List/FinRange.lean - theorem List.finRange_succ - theorem List.finRange_zero - theorem List.getElem_finRange - theorem List.length_finRange Modified Mathlib/ModelTheory/Encoding.lean Modified lake-manifest.json Modified lakefile.lean 2024-11-26 22:10:33 c8c9819 fix: build cache issues (#19524) Fixes compatibility issues between Cache and Lake's builtin build cache. ESTIMATED CHANGES Modified .github/build.in.yml Modified .github/workflows/bors.yml Modified .github/workflows/build.yml Modified .github/workflows/build_fork.yml Modified Cache/IO.lean Modified Cache/Requests.lean + def Cache.Requests.getProofWidgets 2024-11-26 20:08:00 b25c296 chore(RingTheory/Localization): golfs and generalizations (#19310) + In RingTheory/LocalProperties/Basic: add some lemmas connecting localization of submodules and localization of ideals, and use results about the former to golf results about the latter. + In RingTheory/Localization/Module: golf a proof using the recently introduced IsLocalization.linearMap_compatibleSMul. + In Algebra/Module/Projective, Algebra/Module/LocalizedModule/IsLocalization, RingTheory/Localization/Submodule: generalize from AddCommGroup/CommRing to AddCommMonoid/CommSemiring. Also golf a lemma statement in the second file. + RingTheory/Localization/Algebra, RingTheory/Localization/Ideal: add two TODOs that are not done here for import reasons. ESTIMATED CHANGES Modified Mathlib/Algebra/Module/LocalizedModule/IsLocalization.lean Modified Mathlib/Algebra/Module/Projective.lean Modified Mathlib/RingTheory/LocalProperties/Basic.lean + theorem Algebra.idealMap_eq_ofEq_comp_toLocalized₀ + theorem Ideal.localized'_eq_map + theorem Ideal.localized₀_eq_restrictScalars_map + theorem Ideal.mem_of_localization_maximal Modified Mathlib/RingTheory/Localization/Algebra.lean Modified Mathlib/RingTheory/Localization/Ideal.lean Modified Mathlib/RingTheory/Localization/Module.lean Modified Mathlib/RingTheory/Localization/Submodule.lean +/- theorem IsLocalization.mem_span_iff 2024-11-26 19:59:18 38d4438 chore(AlgebraicTopology): move Nerve.* to CategoryTheory.Nerve.* (#19521) Moves definitions to more appropriate namespaces: - Nerve.strictSegal -> CategoryTheory.Nerve.strictSegal - Nerve.quasicategory -> CategoryTheory.Nerve.quasicategory Co-Authored-By: [Emily Riehl](https://github.com/emilyriehl) ESTIMATED CHANGES Modified Mathlib/AlgebraicTopology/Quasicategory/Nerve.lean Modified Mathlib/AlgebraicTopology/SimplicialSet/StrictSegal.lean 2024-11-26 17:39:51 19094c4 feat: handle scalar multiplication in `linear_combination` (#19136) This PR extends `linear_combination` to handle scalar multiplication. Examples (under sensible typeclasses, here omitted): ```lean example {a b : K} {x : V} (h : a ^ 2 + b ^ 2 = 1) : a • (a • x - b • y) + (b • a • y + b • b • x) = x := by linear_combination (norm := module) h • x example {v w x y : V} (h₁ : x - y = -(v - w)) (h₂ : x + y = v + w) : x = w := by linear_combination (norm := module) (2:K)⁻¹ • (h₁ + h₂) example {a b : K} {x y z : V} (hb : 0 ≤ b) (hab : a + b = 1) (H : z ≤ a • x + b • y) (hyz : y ≤ z) : a • z ≤ a • x := by linear_combination (norm := skip) b • hyz + hab • z + H apply le_of_eq module ``` As is apparent from these examples, it is still generally necessary to invoke a nonstandard discharger (generally `module` or `match_scalars`) when using `linear_combination` with this new feature, since the default discharger (`ring`) is not usually useful on module goals. ESTIMATED CHANGES Modified Mathlib/Analysis/Convex/Join.lean Modified Mathlib/Analysis/Convex/Side.lean Modified Mathlib/Analysis/InnerProductSpace/OfNorm.lean Modified Mathlib/Tactic/LinearCombination.lean +/- def Mathlib.Tactic.LinearCombination.rescale Modified Mathlib/Tactic/LinearCombination/Lemmas.lean + def Mathlib.Tactic.LinearCombination.Ineq.smulConstRelData + def Mathlib.Tactic.LinearCombination.Ineq.smulRelConstData + theorem Mathlib.Tactic.LinearCombination.smul_const_eq + theorem Mathlib.Tactic.LinearCombination.smul_const_le + theorem Mathlib.Tactic.LinearCombination.smul_const_lt + theorem Mathlib.Tactic.LinearCombination.smul_const_lt_weak + theorem Mathlib.Tactic.LinearCombination.smul_eq_const + theorem Mathlib.Tactic.LinearCombination.smul_le_const + theorem Mathlib.Tactic.LinearCombination.smul_lt_const + theorem Mathlib.Tactic.LinearCombination.smul_lt_const_weak Modified MathlibTest/linear_combination.lean Modified MathlibTest/module.lean 2024-11-26 14:42:14 e6b14d4 doc(GroupTheory/Commensurable): clarify some docstrings (#19127) ESTIMATED CHANGES Modified Mathlib/GroupTheory/Commensurable.lean Modified Mathlib/GroupTheory/Index.lean 2024-11-26 14:07:40 13fc0e8 feat(Pointwise): monotonicity of `pow` (#19252) ... and `s ^ n = ∅ ↔ s = ∅ ∧ n ≠ 0` From GrowthInGroups ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/Operations.lean Modified Mathlib/Algebra/Group/Pointwise/Finset/Basic.lean + theorem Finset.Nonempty.pow + theorem Finset.Nonempty.zpow +/- theorem Finset.empty_pow + theorem Finset.image_pow + theorem Finset.image_pow_of_ne_zero + theorem Finset.inter_pow_subset + theorem Finset.not_one_mem_inv_mul_iff + theorem Finset.one_mem_inv_mul_iff + theorem Finset.one_mem_pow + theorem Finset.pow_eq_empty +/- theorem Finset.pow_mem_pow +/- theorem Finset.pow_subset_pow + theorem Finset.pow_subset_pow_left + theorem Finset.pow_subset_pow_mul_of_sq_subset_mul - theorem Finset.pow_subset_pow_of_one_mem + theorem Finset.pow_subset_pow_right + theorem Finset.zpow_eq_empty Modified Mathlib/Algebra/Group/Pointwise/Set/Basic.lean + theorem Set.Nonempty.pow + theorem Set.Nonempty.zpow +/- theorem Set.empty_pow + theorem Set.image_pow + theorem Set.image_pow_of_ne_zero + theorem Set.inter_pow_subset + theorem Set.inv_pi + theorem Set.not_one_mem_inv_mul_iff + theorem Set.one_mem_inv_mul_iff + theorem Set.one_mem_pow + theorem Set.pow_eq_empty +/- theorem Set.pow_mem_pow +/- theorem Set.pow_subset_pow + theorem Set.pow_subset_pow_left + theorem Set.pow_subset_pow_mul_of_sq_subset_mul - theorem Set.pow_subset_pow_of_one_mem + theorem Set.pow_subset_pow_right + theorem Set.zpow_eq_empty Modified Mathlib/Algebra/Order/Monoid/Unbundled/Pow.lean + theorem pow_le_pow_mul_of_sq_le_mul Modified Mathlib/Analysis/Convex/EGauge.lean +/- theorem egauge_zero_zero Modified Mathlib/GroupTheory/OrderOfElement.lean 2024-11-26 13:02:57 5ad34c0 feat(Algebra/Exact): iff lemmas (#19504) When we have a commutative diagram from a sequence of two maps to another, such that the left vertical map is surjective, the middle vertical map is bijective and the right vertical map is injective, then the upper row is exact iff the lower row is. This generalizes the case when all the three vertical maps are bijections. This PR introduces two new lemmas `exact_iff_of_surjective_of_bijective_of_injective` in the `AddMonoidHom` and `LinearMap` namespaces, and refactors the proofs of the all-bijections versions. This parallels the categorical lemma https://leanprover-community.github.io/mathlib4_docs/Mathlib/Algebra/Homology/ShortComplex/Exact.html#CategoryTheory.ShortComplex.exact_iff_of_epi_of_isIso_of_mono ESTIMATED CHANGES Modified Mathlib/Algebra/Exact.lean + theorem AddMonoidHom.exact_iff_of_surjective_of_bijective_of_injective + theorem LinearMap.exact_iff_of_surjective_of_bijective_of_injective 2024-11-26 12:47:45 b4b0314 feat: more `eLpNorm` API (#19293) Make more arguments to rewriting lemmas explicit, more arguments to the other lemmas implicit. Add various lemmas. From LeanAPAP ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Function/LpSeminorm/Basic.lean +/- theorem MeasureTheory.Memℒp.const_mul +/- theorem MeasureTheory.Memℒp.const_smul + theorem MeasureTheory.Memℒp.of_discrete +/- theorem MeasureTheory.eLpNorm'_const_smul_le +/- theorem MeasureTheory.eLpNorm'_neg +/- theorem MeasureTheory.eLpNormEssSup_const_smul_le + theorem MeasureTheory.eLpNormEssSup_lt_top_iff_isBoundedUnder + theorem MeasureTheory.eLpNorm_conj +/- theorem MeasureTheory.eLpNorm_const_smul +/- theorem MeasureTheory.eLpNorm_const_smul_le + theorem MeasureTheory.eLpNorm_lt_top_of_finite +/- theorem MeasureTheory.eLpNorm_neg + theorem MeasureTheory.eLpNorm_nsmul + theorem MeasureTheory.eLpNorm_of_isEmpty + theorem MeasureTheory.eLpNorm_smul_measure_of_ne_top' +/- theorem MeasureTheory.eLpNorm_smul_measure_of_ne_top + theorem MeasureTheory.eLpNorm_smul_measure_of_ne_zero' +/- theorem MeasureTheory.eLpNorm_smul_measure_of_ne_zero + theorem MeasureTheory.eLpNorm_sub_comm Modified Mathlib/MeasureTheory/Function/LpSpace.lean 2024-11-26 12:47:44 5d0ac04 feat(CategoryTheory): split up a product into a binary product (#19199) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Limits/Shapes/PiProd.lean + theorem CategoryTheory.Limits.Pi.map_eq_prod_map + theorem CategoryTheory.Limits.hasBinaryProduct_of_products 2024-11-26 12:25:44 7727e72 chore(*): golf away from `ENNReal.toReal_le_toReal` (#19441) In most cases, use `ENNReal.toReal_mono`, since it has 1 less `ne_top` assumption. In one case, it allows to drop an assumption. ESTIMATED CHANGES Modified Mathlib/Analysis/Fourier/RiemannLebesgueLemma.lean Modified Mathlib/Data/ENNReal/Real.lean Modified Mathlib/MeasureTheory/Function/ConditionalExpectation/CondexpL1.lean Modified Mathlib/MeasureTheory/Function/ConditionalExpectation/CondexpL2.lean Modified Mathlib/MeasureTheory/Function/ConditionalExpectation/Real.lean Modified Mathlib/MeasureTheory/Function/LpSeminorm/CompareExp.lean Modified Mathlib/MeasureTheory/Function/LpSpace.lean Modified Mathlib/MeasureTheory/Function/UniformIntegrable.lean Modified Mathlib/MeasureTheory/Integral/Bochner.lean Modified Mathlib/MeasureTheory/Integral/SetIntegral.lean Modified Mathlib/MeasureTheory/Integral/SetToL1.lean Modified Mathlib/MeasureTheory/Measure/LevyProkhorovMetric.lean Modified Mathlib/MeasureTheory/Measure/Portmanteau.lean Modified Mathlib/Probability/BorelCantelli.lean Modified Mathlib/Probability/Kernel/Disintegration/CondCDF.lean Modified Mathlib/Probability/Kernel/Disintegration/Density.lean Modified Mathlib/Probability/Kernel/Integral.lean Modified Mathlib/Probability/Moments.lean Modified Mathlib/Topology/Instances/ENNReal.lean Modified Mathlib/Topology/MetricSpace/Bounded.lean Modified Mathlib/Topology/MetricSpace/HausdorffDistance.lean 2024-11-26 12:08:54 00cad59 chore(100.yml): various clean-ups (#19503) Standardise how multiple authors are listed, by - removing a 'mathlib (author names)' identifier: it is apparent when results are in mathlib - always using `and` to separate multiple authors of the same formalisation (the previous state used a mix of `and` and `,`, yielding inconsistent results on the webpage). Keep using `,` to separate authors of different formalisations. ESTIMATED CHANGES Modified docs/100.yaml 2024-11-26 11:45:38 841cc90 feat(Algebra/Category): API for `Under R` (#19058) We provide API for `Under R` where `R : CommRingCat`. We also add some `simp` lemmas for the various ring categories. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Category/ModuleCat/Differentials/Presheaf.lean Modified Mathlib/Algebra/Category/Ring/Basic.lean + theorem CommRingCat.coe_comp_of' + theorem CommSemiRingCat.coe_comp_of' + theorem RingCat.coe_comp_of' + theorem SemiRingCat.coe_comp_of' Modified Mathlib/Algebra/Category/Ring/Constructions.lean + theorem CommRingCat.isPushout_tensorProduct Added Mathlib/Algebra/Category/Ring/Under/Basic.lean + def AlgEquiv.toUnder + theorem AlgEquiv.toUnder_hom_right_apply + theorem AlgEquiv.toUnder_inv_right_apply + theorem AlgEquiv.toUnder_trans + def AlgHom.toUnder + theorem AlgHom.toUnder_comp + theorem AlgHom.toUnder_right + def CommRingCat.mkUnder + theorem CommRingCat.mkUnder_ext + theorem CommRingCat.pushout_inl_tensorProdObjIsoPushoutObj_inv_right + theorem CommRingCat.pushout_inr_tensorProdObjIsoPushoutObj_inv_right + def CommRingCat.tensorProd + def CommRingCat.tensorProdIsoPushout + theorem CommRingCat.tensorProdIsoPushout_app + def CommRingCat.tensorProdObjIsoPushoutObj + def CommRingCat.toAlgHom + theorem CommRingCat.toAlgHom_apply + theorem CommRingCat.toAlgHom_comp + theorem CommRingCat.toAlgHom_id Modified Mathlib/CategoryTheory/Comma/Over.lean + theorem CategoryTheory.Over.hom_left_inv_left + theorem CategoryTheory.Over.inv_left_hom_left + theorem CategoryTheory.Under.hom_right_inv_right + theorem CategoryTheory.Under.inv_right_hom_right Modified Mathlib/RingTheory/TensorProduct/Basic.lean + theorem Algebra.TensorProduct.map_comp_id + theorem Algebra.TensorProduct.map_id_comp 2024-11-26 10:41:42 6c84e8f chore: split Order.Defs (#19498) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Group/Commute/Defs.lean Modified Mathlib/Algebra/Group/Semiconj/Defs.lean Modified Mathlib/Algebra/NeZero.lean Modified Mathlib/Data/Bool/Basic.lean Modified Mathlib/Data/Char.lean Modified Mathlib/Data/Int/Order/Basic.lean Modified Mathlib/Data/Ordering/Lemmas.lean Modified Mathlib/Deprecated/AlgebraClasses.lean Modified Mathlib/Deprecated/Order.lean Modified Mathlib/Logic/Basic.lean Modified Mathlib/Logic/Function/Basic.lean Modified Mathlib/Logic/Nontrivial/Basic.lean Modified Mathlib/Order/Basic.lean Deleted Mathlib/Order/Defs.lean - def AntiSymmetric - theorem Decidable.eq_or_lt_of_le - theorem Decidable.le_iff_lt_or_eq - theorem Decidable.lt_or_eq_of_le - def EmptyRelation - theorem Equivalence.reflexive - theorem Equivalence.symmetric - theorem Equivalence.transitive - theorem InvImage.irreflexive - theorem InvImage.trans - def Irreflexive - def IsLowerSet - def IsUpperSet - structure LowerSet - theorem Maximal.le_of_ge - theorem Maximal.prop - def Maximal - theorem Minimal.le_of_le - theorem Minimal.prop - def Minimal - def Reflexive - def Symmetric - def Total - def Transitive - structure UpperSet - theorem antisymm - theorem asymm - theorem asymm_of - theorem cmp_eq_compare - theorem cmp_eq_compareOfLessAndEq - theorem compare_eq_iff_eq - theorem compare_ge_iff_ge - theorem compare_gt_iff_gt - theorem compare_iff - theorem compare_le_iff_le - theorem compare_lt_iff_lt - def decidableEqOfDecidableLE - def decidableLTOfDecidableLE - theorem eq_max - theorem eq_min - theorem eq_or_lt_of_not_lt - theorem ge_trans - theorem gt_irrefl - theorem gt_of_ge_of_gt - theorem gt_of_gt_of_ge - theorem gt_trans - theorem irrefl - theorem irrefl_of - theorem le_antisymm - theorem le_antisymm_iff - theorem le_iff_lt_or_eq - theorem le_imp_le_of_lt_imp_lt - theorem le_max_left - theorem le_max_right - theorem le_min - theorem le_not_le_of_lt - theorem le_of_eq - theorem le_of_eq_or_lt - theorem le_of_lt - theorem le_of_lt_or_eq - theorem le_of_not_ge - theorem le_of_not_gt - theorem le_of_not_le - theorem le_of_not_lt - theorem le_or_gt - theorem le_or_lt - theorem le_refl - theorem le_rfl - theorem le_total - theorem le_trans - def ltByCases - theorem lt_asymm - theorem lt_iff_le_not_le - theorem lt_iff_not_ge - theorem lt_irrefl - theorem lt_min - theorem lt_of_le_not_le - theorem lt_of_le_of_lt - theorem lt_of_le_of_ne - theorem lt_of_lt_of_le - theorem lt_of_not_ge - theorem lt_or_eq_of_le - theorem lt_or_ge - theorem lt_or_gt_of_ne - theorem lt_or_le - theorem lt_trans - theorem lt_trichotomy - def maxDefault - theorem max_assoc - theorem max_comm - theorem max_def - theorem max_eq_left - theorem max_eq_left_of_lt - theorem max_eq_right - theorem max_eq_right_of_lt - theorem max_le - theorem max_left_comm - theorem max_lt - theorem max_self - def minDefault - theorem min_assoc - theorem min_comm - theorem min_def - theorem min_eq_left - theorem min_eq_left_of_lt - theorem min_eq_right - theorem min_eq_right_of_lt - theorem min_le_left - theorem min_le_right - theorem min_left_comm - theorem min_self - theorem ne_iff_lt_or_gt - theorem ne_of_gt - theorem ne_of_lt - theorem not_le - theorem not_le_of_gt - theorem not_le_of_lt - theorem not_lt - theorem not_lt_of_ge - theorem not_lt_of_le - theorem refl - theorem refl_of - theorem symm - theorem symm_of - theorem total_of - theorem trans - theorem trans_of - theorem trichotomous - theorem trichotomous_of Added Mathlib/Order/Defs/LinearOrder.lean + theorem cmp_eq_compare + theorem cmp_eq_compareOfLessAndEq + theorem compare_eq_iff_eq + theorem compare_ge_iff_ge + theorem compare_gt_iff_gt + theorem compare_iff + theorem compare_le_iff_le + theorem compare_lt_iff_lt + theorem eq_max + theorem eq_min + theorem eq_or_lt_of_not_lt + theorem le_imp_le_of_lt_imp_lt + theorem le_max_left + theorem le_max_right + theorem le_min + theorem le_of_not_ge + theorem le_of_not_gt + theorem le_of_not_le + theorem le_of_not_lt + theorem le_or_gt + theorem le_or_lt + theorem le_total + def ltByCases + theorem lt_iff_not_ge + theorem lt_min + theorem lt_of_not_ge + theorem lt_or_ge + theorem lt_or_gt_of_ne + theorem lt_or_le + theorem lt_trichotomy + def maxDefault + theorem max_assoc + theorem max_comm + theorem max_def + theorem max_eq_left + theorem max_eq_left_of_lt + theorem max_eq_right + theorem max_eq_right_of_lt + theorem max_le + theorem max_left_comm + theorem max_lt + theorem max_self + def minDefault + theorem min_assoc + theorem min_comm + theorem min_def + theorem min_eq_left + theorem min_eq_left_of_lt + theorem min_eq_right + theorem min_eq_right_of_lt + theorem min_le_left + theorem min_le_right + theorem min_left_comm + theorem min_self + theorem ne_iff_lt_or_gt + theorem not_le + theorem not_lt Added Mathlib/Order/Defs/PartialOrder.lean + theorem Decidable.eq_or_lt_of_le + theorem Decidable.le_iff_lt_or_eq + theorem Decidable.lt_or_eq_of_le + def decidableEqOfDecidableLE + def decidableLTOfDecidableLE + theorem ge_trans + theorem gt_irrefl + theorem gt_of_ge_of_gt + theorem gt_of_gt_of_ge + theorem gt_trans + theorem le_antisymm + theorem le_antisymm_iff + theorem le_iff_lt_or_eq + theorem le_not_le_of_lt + theorem le_of_eq + theorem le_of_eq_or_lt + theorem le_of_lt + theorem le_of_lt_or_eq + theorem le_refl + theorem le_rfl + theorem le_trans + theorem lt_asymm + theorem lt_iff_le_not_le + theorem lt_irrefl + theorem lt_of_le_not_le + theorem lt_of_le_of_lt + theorem lt_of_le_of_ne + theorem lt_of_lt_of_le + theorem lt_or_eq_of_le + theorem lt_trans + theorem ne_of_gt + theorem ne_of_lt + theorem not_le_of_gt + theorem not_le_of_lt + theorem not_lt_of_ge + theorem not_lt_of_le Added Mathlib/Order/Defs/Unbundled.lean + def AntiSymmetric + def EmptyRelation + theorem Equivalence.reflexive + theorem Equivalence.symmetric + theorem Equivalence.transitive + theorem InvImage.irreflexive + theorem InvImage.trans + def Irreflexive + def IsLowerSet + def IsUpperSet + structure LowerSet + theorem Maximal.le_of_ge + theorem Maximal.prop + def Maximal + theorem Minimal.le_of_le + theorem Minimal.prop + def Minimal + def Reflexive + def Symmetric + def Total + def Transitive + structure UpperSet + theorem antisymm + theorem asymm + theorem asymm_of + theorem irrefl + theorem irrefl_of + theorem refl + theorem refl_of + theorem symm + theorem symm_of + theorem total_of + theorem trans + theorem trans_of + theorem trichotomous + theorem trichotomous_of Modified Mathlib/Order/Interval/Set/Defs.lean Modified Mathlib/Tactic/GCongr/Core.lean Modified Mathlib/Tactic/PushNeg.lean Modified MathlibTest/push_neg.lean Modified scripts/noshake.json 2024-11-26 08:42:21 83238e2 fix: `bors x` comments and zulip reactions (#19491) Restores the bot reacting to `bors d`, `bors merge` and `bors r+`. It only searches in `PR reviews`, but at least it should no longer fail CI. I plan to investigate making the bot search all of Zulip in a later PR. ESTIMATED CHANGES Modified scripts/zulip_emoji_merge_delegate.py 2024-11-26 08:42:19 1ebeab3 chore: move le_refl's simp attribute to definition (#19490) ESTIMATED CHANGES Modified Mathlib/Order/Basic.lean Modified Mathlib/Order/Defs.lean +/- theorem le_refl 2024-11-26 07:18:19 a2a544a chore: move OrderDual.instSup/Inf up to Order.Basic (#19489) ESTIMATED CHANGES Modified Mathlib/Order/Basic.lean Modified Mathlib/Order/Lattice.lean 2024-11-26 05:23:37 b58a554 chore: split Order.BoundedOrder (#19488) ESTIMATED CHANGES Modified Counterexamples/OrderedCancelAddCommMonoidWithBounds.lean Modified Mathlib.lean Modified Mathlib/Algebra/Associated/Basic.lean Modified Mathlib/Algebra/Order/Monoid/Canonical/Defs.lean Modified Mathlib/Algebra/Order/Monoid/Unbundled/TypeTags.lean Modified Mathlib/Data/List/MinMax.lean Modified Mathlib/Data/PSigma/Order.lean Modified Mathlib/Data/Prod/Lex.lean Modified Mathlib/Data/Sigma/Order.lean Renamed Mathlib/Order/BoundedOrder.lean to Mathlib/Order/BoundedOrder/Basic.lean - theorem Antitone.ball - theorem Antitone.exists - theorem Antitone.forall - theorem Monotone.ball - theorem Monotone.exists - theorem Monotone.forall - theorem StrictAnti.apply_eq_bot_iff - theorem StrictAnti.apply_eq_top_iff - theorem StrictMono.apply_eq_bot_iff - theorem StrictMono.apply_eq_top_iff - theorem StrictMono.maximal_preimage_top - theorem StrictMono.minimal_preimage_bot - theorem antitone_le - theorem antitone_lt - theorem bot_inf_eq - theorem bot_sup_eq - theorem exists_and_iff_of_antitone - theorem exists_and_iff_of_monotone - theorem exists_ge_and_iff_exists - theorem exists_le_and_iff_exists - theorem forall_ge_iff - theorem forall_le_iff - theorem inf_bot_eq - theorem inf_eq_top_iff - theorem inf_top_eq - theorem max_bot_left - theorem max_bot_right - theorem max_eq_bot - theorem max_eq_top - theorem max_top_left - theorem max_top_right - theorem min_bot_left - theorem min_bot_right - theorem min_eq_bot - theorem min_eq_top - theorem min_top_left - theorem min_top_right - theorem monotone_and - theorem monotone_le - theorem monotone_lt - theorem monotone_or - theorem sup_bot_eq - theorem sup_eq_bot_iff - theorem sup_top_eq - theorem top_inf_eq - theorem top_sup_eq Added Mathlib/Order/BoundedOrder/Lattice.lean + theorem bot_inf_eq + theorem bot_sup_eq + theorem exists_and_iff_of_antitone + theorem exists_and_iff_of_monotone + theorem exists_ge_and_iff_exists + theorem exists_le_and_iff_exists + theorem inf_bot_eq + theorem inf_eq_top_iff + theorem inf_top_eq + theorem max_bot_left + theorem max_bot_right + theorem max_eq_bot + theorem max_eq_top + theorem max_top_left + theorem max_top_right + theorem min_bot_left + theorem min_bot_right + theorem min_eq_bot + theorem min_eq_top + theorem min_top_left + theorem min_top_right + theorem sup_bot_eq + theorem sup_eq_bot_iff + theorem sup_top_eq + theorem top_inf_eq + theorem top_sup_eq Added Mathlib/Order/BoundedOrder/Monotone.lean + theorem Antitone.ball + theorem Antitone.exists + theorem Antitone.forall + theorem Monotone.ball + theorem Monotone.exists + theorem Monotone.forall + theorem StrictAnti.apply_eq_bot_iff + theorem StrictAnti.apply_eq_top_iff + theorem StrictMono.apply_eq_bot_iff + theorem StrictMono.apply_eq_top_iff + theorem StrictMono.maximal_preimage_top + theorem StrictMono.minimal_preimage_bot + theorem antitone_le + theorem antitone_lt + theorem forall_ge_iff + theorem forall_le_iff + theorem monotone_and + theorem monotone_le + theorem monotone_lt + theorem monotone_or Modified Mathlib/Order/Bounds/Basic.lean Modified Mathlib/Order/Disjoint.lean Modified Mathlib/Order/Hom/Bounded.lean Modified Mathlib/Order/Nat.lean Modified Mathlib/Order/SuccPred/Limit.lean Modified Mathlib/Order/WithBot.lean Modified scripts/noshake.json 2024-11-26 05:23:36 c912bed chore(NumberTheory/LSeries/PrimesInAP): fix name (Lfunction -> LFunction) (#19474) ESTIMATED CHANGES Modified Mathlib/NumberTheory/LSeries/PrimesInAP.lean + theorem ArithmeticFunction.vonMangoldt.LFunctionResidueClassAux_real - theorem ArithmeticFunction.vonMangoldt.LfunctionResidueClassAux_real + theorem ArithmeticFunction.vonMangoldt.continuousOn_LFunctionResidueClassAux' + theorem ArithmeticFunction.vonMangoldt.continuousOn_LFunctionResidueClassAux - theorem ArithmeticFunction.vonMangoldt.continuousOn_LfunctionResidueClassAux' - theorem ArithmeticFunction.vonMangoldt.continuousOn_LfunctionResidueClassAux + theorem ArithmeticFunction.vonMangoldt.eqOn_LFunctionResidueClassAux - theorem ArithmeticFunction.vonMangoldt.eqOn_LfunctionResidueClassAux 2024-11-26 05:23:35 a8f6063 chore(AlgebraicTopology): move quasicategory instances to Quasicategory dir (#19472) We add the file `Mathlib/AlgebraicTopology/Quasicategory/StrictSegal.lean` and move into it the proof that any strict Segal simplicial set is a quasicategory (from `Mathlib/AlgebraicTopology/SimplicialSet/StrictSegal.lean`). We also add the file `Mathlib/AlgebraicTopology/Quasicategory/Nerve.lean` and move into it the proof that the nerve of a category is a quasicategory (again from `Mathlib/AlgebraicTopology/SimplicialSet/StrictSegal.lean`). ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/AlgebraicTopology/Quasicategory/Basic.lean Added Mathlib/AlgebraicTopology/Quasicategory/Nerve.lean Added Mathlib/AlgebraicTopology/Quasicategory/StrictSegal.lean Modified Mathlib/AlgebraicTopology/SimplicialSet/StrictSegal.lean 2024-11-26 04:40:53 8471a92 chore: remove isStrictTotalOrder_of_linearOrder (#19493) This has been around since Lean3 core, but it is unused in Mathlib. Propose deletion. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Deprecated/Order.lean Modified Mathlib/Order/Defs.lean 2024-11-26 03:12:44 b50e508 chore: update Mathlib dependencies 2024-11-26 (#19497) This PR updates the Mathlib dependencies. ESTIMATED CHANGES Modified lake-manifest.json 2024-11-25 21:33:59 6e1b417 chore(Pointwise): rename `image_inv` to `image_inv_eq_inv` (#19480) This is to make space for `f '' s⁻¹ = (f '' s)⁻¹`. Also rename `smul_card_le` to `card_smul_le`. From LeanCamCombi ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Pointwise/Finset/Basic.lean + theorem Finset.card_smul_le +/- theorem Finset.coe_inv +/- theorem Finset.image_inv + theorem Finset.image_inv_eq_inv - theorem Finset.smul_card_le Modified Mathlib/Algebra/Group/Pointwise/Set/Basic.lean +/- theorem Set.image_inv + theorem Set.image_inv_eq_inv +/- theorem Set.inv_singleton Modified Mathlib/Algebra/Group/Pointwise/Set/Card.lean Modified Mathlib/Algebra/Group/Pointwise/Set/Finite.lean Modified Mathlib/Algebra/GroupWithZero/Pointwise/Finset.lean Modified Mathlib/Algebra/Order/Group/Pointwise/CompleteLattice.lean Modified Mathlib/Algebra/Ring/Pointwise/Finset.lean Modified Mathlib/Algebra/Ring/Pointwise/Set.lean Modified Mathlib/Analysis/Convex/Hull.lean Modified Mathlib/Analysis/Convex/Star.lean Modified Mathlib/Analysis/Convex/Topology.lean Modified Mathlib/Analysis/Normed/Group/Pointwise.lean Modified Mathlib/Analysis/Normed/Group/Quotient.lean Modified Mathlib/Data/Real/Cardinality.lean Modified Mathlib/Data/Set/Pointwise/SMul.lean Modified Mathlib/MeasureTheory/Group/Arithmetic.lean Modified Mathlib/MeasureTheory/Group/Prod.lean Modified Mathlib/MeasureTheory/Measure/Haar/OfBasis.lean Modified Mathlib/Topology/Algebra/Field.lean Modified Mathlib/Topology/Algebra/Group/Basic.lean 2024-11-25 20:58:34 69eeb74 chore(Data/Nat/Defs): rename two lemmas that were not about `Ne` (#19476) From LeanCamCombi ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Nat/Even.lean +/- theorem Nat.not_even_iff Modified Mathlib/Algebra/Ring/Parity.lean +/- theorem Nat.not_odd_iff Modified Mathlib/Data/Nat/Defs.lean +/- theorem Nat.mod_two_ne_one +/- theorem Nat.mod_two_ne_zero + theorem Nat.mod_two_not_eq_one + theorem Nat.mod_two_not_eq_zero 2024-11-25 18:11:57 3646342 feat(MvPolynomial): more lemmas about `finSuccEquiv` (#19201) ESTIMATED CHANGES Modified Mathlib/Algebra/MvPolynomial/Equiv.lean +/- theorem MvPolynomial.finSuccEquiv_X_zero - theorem MvPolynomial.finSuccEquiv_support' - theorem MvPolynomial.finSuccEquiv_support + theorem MvPolynomial.image_support_finSuccEquiv + theorem MvPolynomial.mem_image_support_coeff_finSuccEquiv + theorem MvPolynomial.mem_support_coeff_finSuccEquiv + theorem MvPolynomial.mem_support_finSuccEquiv + theorem MvPolynomial.support_finSuccEquiv Modified Mathlib/Data/Finsupp/Fin.lean + theorem Finsupp.cons_right_injective 2024-11-25 17:50:07 b98172a feat: `Icc a b + Icc c d = Icc (a + c) (b + d)` (#19398) From GrowthInGroups Moves: * `inv_Ioi` -> `inv_Ioi₀` ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Group/Pointwise/Interval.lean + theorem Set.Icc_mul_Icc + theorem Set.inv_Icc + theorem Set.inv_Ici + theorem Set.inv_Ico + theorem Set.inv_Iic + theorem Set.inv_Iio + theorem Set.inv_Ioc +/- theorem Set.inv_Ioi + theorem Set.inv_Ioi₀ + theorem Set.inv_Ioo + theorem Set.inv_uIcc - theorem Set.preimage_neg_Icc - theorem Set.preimage_neg_Ici - theorem Set.preimage_neg_Ico - theorem Set.preimage_neg_Iic - theorem Set.preimage_neg_Iio - theorem Set.preimage_neg_Ioc - theorem Set.preimage_neg_Ioi - theorem Set.preimage_neg_Ioo +/- theorem Set.preimage_neg_uIcc + theorem Set.smul_Icc Modified Mathlib/Analysis/Calculus/LHopital.lean Modified Mathlib/Analysis/Convex/Topology.lean Modified Mathlib/Analysis/SpecialFunctions/Gaussian/GaussianIntegral.lean Modified Mathlib/MeasureTheory/Measure/Haar/OfBasis.lean Modified Mathlib/MeasureTheory/Measure/Lebesgue/Integral.lean Modified Mathlib/Topology/Algebra/Order/Field.lean 2024-11-25 17:36:50 f44426d feat(FreeGroup): some basic lemmas (#19468) From LeanCamCombi ESTIMATED CHANGES Modified Mathlib/GroupTheory/FreeGroup/Basic.lean + theorem FreeGroup.reduce_nil + theorem FreeGroup.reduce_singleton +/- theorem FreeGroup.toWord_inv + theorem FreeGroup.toWord_mul_sublist 2024-11-25 17:36:48 87489d6 chore(AlgebraicTopology): create Quasicategory directory (#19463) Moves: - AlgebraicTopology.SimplicialSet.Quasicategory -> AlgebraicTopology.Quasicategory.Basic Co-Authored-By: [Johan Commelin](https://github.com/jcommelin) ESTIMATED CHANGES Modified Mathlib.lean Renamed Mathlib/AlgebraicTopology/SimplicialSet/Quasicategory.lean to Mathlib/AlgebraicTopology/Quasicategory/Basic.lean Modified Mathlib/AlgebraicTopology/SimplicialSet/KanComplex.lean Modified Mathlib/AlgebraicTopology/SimplicialSet/StrictSegal.lean 2024-11-25 17:36:47 dee58f2 feat(NumberTheory/LSeries/PrimesInAP): proof of Dirichlet's Theorem (#19421) ESTIMATED CHANGES Modified Mathlib/NumberTheory/LSeries/PrimesInAP.lean + theorem ArithmeticFunction.vonMangoldt.LSeries_residueClass_lower_bound + theorem ArithmeticFunction.vonMangoldt.LfunctionResidueClassAux_real + theorem ArithmeticFunction.vonMangoldt.continuousOn_LfunctionResidueClassAux' + theorem ArithmeticFunction.vonMangoldt.continuousOn_LfunctionResidueClassAux + theorem ArithmeticFunction.vonMangoldt.eqOn_LfunctionResidueClassAux + theorem ArithmeticFunction.vonMangoldt.not_summable_residueClass_prime_div + theorem Nat.forall_exists_prime_gt_and_eq_mod + theorem Nat.setOf_prime_and_eq_mod_infinite Modified docs/100.yaml 2024-11-25 17:02:02 2578187 feat: `Finset.sup` in a group with zero (#19461) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Order/GroupWithZero/Finset.lean + theorem Finset.inf'_mul_le_mul_inf'_of_nonneg + theorem Finset.mul_inf_le_inf_mul_of_nonneg + theorem Finset.mul₀_sup' + theorem Finset.sup'_div₀ + theorem Finset.sup'_mul_le_mul_sup'_of_nonneg + theorem Finset.sup'_mul₀ + theorem Finset.sup_div₀ + theorem Finset.sup_mul_le_mul_sup_of_nonneg Deleted Mathlib/Algebra/Order/Ring/Finset.lean - theorem Finset.inf'_mul_le_mul_inf'_of_nonneg - theorem Finset.mul_inf_le_inf_mul_of_nonneg - theorem Finset.sup'_mul_le_mul_sup'_of_nonneg - theorem Finset.sup_mul_le_mul_sup_of_nonneg Modified Mathlib/Analysis/Normed/Field/Lemmas.lean 2024-11-25 17:02:00 5c08dca feat: `Finset.sup` in a group (#19460) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Order/Group/Finset.lean + theorem Finset.add_sup'' + theorem Finset.fold_max_add + theorem Finset.inf'_pow + theorem Finset.mul_sup' + theorem Finset.sup'_add' + theorem Finset.sup'_mul + theorem Finset.sup'_pow + theorem Finset.sup_add_sup Modified Mathlib/Algebra/Polynomial/Basic.lean Modified Mathlib/Data/Finset/Fold.lean - theorem Finset.fold_max_add Modified Mathlib/Data/Finset/Lattice/Fold.lean - theorem Finset.nsmul_inf' - theorem Finset.nsmul_sup' + theorem Finset.sup'_mono_fun Modified Mathlib/Order/Filter/AtTopBot/Monoid.lean Modified Mathlib/RingTheory/HahnSeries/Basic.lean Modified Mathlib/Topology/Algebra/ConstMulAction.lean 2024-11-25 16:30:32 551481f feat: ring with discrete PrimeSpectrum (#18891) Prove two characterizations of commutative semirings R whose prime spectra have discrete topology: + R has finitely many prime ideals, and every prime ideal is maximal; + R has finitely many maximal ideals, the intersection of which (= Jacobson radical) is contained in (and therefore equal to) the nilradical. From the first characterization it is easy to show the spectrum of an Artinian ring has discrete topology, but Artinian doesn't currently import PrimeSpectrum. Also show that if R is a commutative ring and Spec R has discrete topology, then the canonical RingHom from R to the product of localizations at maximal ideals (which is always injective) is an isomorphism. This is not a characterization, because it is satisfied by every local ring. (But it's a characterization if we replace "maximal" by "prime".) For this purpose we prove that, if a basic open D(f) in Spec R is a singleton {p}, then localization away from f is the same as localization at p. A key fact used is that if an ideal in a commutative semiring is disjoint from a submonoid, then there exists a maximal such ideal containing the ideal, and any maximal such ideal is prime. Also upgrade `exists_idempotent_basicOpen_eq_of_isClopen` to `existsUnique`. ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Submonoid/Membership.lean + theorem IsIdempotentElem.coe_powers Modified Mathlib/Algebra/Ring/Idempotents.lean + theorem IsIdempotentElem.add_sub_mul + theorem IsIdempotentElem.add_sub_mul_of_commute Modified Mathlib/AlgebraicGeometry/PrimeSpectrum/Basic.lean +/- theorem PrimeSpectrum.basicOpen_eq_zeroLocus_of_isIdempotentElem + theorem PrimeSpectrum.basicOpen_injOn_isIdempotentElem + theorem PrimeSpectrum.basicOpen_isIdempotentElemEquivClopens_symm + theorem PrimeSpectrum.coe_isIdempotentElemEquivClopens_apply + theorem PrimeSpectrum.discreteTopology_iff_finite_and_isPrime_imp_isMaximal + theorem PrimeSpectrum.discreteTopology_iff_finite_isMaximal_and_sInf_le_nilradical + theorem PrimeSpectrum.existsUnique_idempotent_basicOpen_eq_of_isClopen + theorem PrimeSpectrum.exists_idempotent_basicOpen_eq_of_isClopen - theorem PrimeSpectrum.exists_idempotent_basicOpen_eq_of_is_clopen +/- theorem PrimeSpectrum.isClopen_iff +/- theorem PrimeSpectrum.isClopen_iff_zeroLocus + def PrimeSpectrum.isIdempotentElemEquivClopens + theorem PrimeSpectrum.isIdempotentElemEquivClopens_apply_toOpens + theorem PrimeSpectrum.isIdempotentElemEquivClopens_mul + theorem PrimeSpectrum.isIdempotentElemEquivClopens_one_sub + theorem PrimeSpectrum.isIdempotentElemEquivClopens_symm_bot + theorem PrimeSpectrum.isIdempotentElemEquivClopens_symm_compl + theorem PrimeSpectrum.isIdempotentElemEquivClopens_symm_inf + theorem PrimeSpectrum.isIdempotentElemEquivClopens_symm_sup + theorem PrimeSpectrum.isIdempotentElemEquivClopens_symm_top + theorem PrimeSpectrum.isLocalization_away_iff_atPrime_of_basicOpen_eq_singleton +/- theorem PrimeSpectrum.zeroLocus_eq_basicOpen_of_isIdempotentElem + def RingHom.toLocalizationIsMaximalEquiv + theorem RingHom.toLocalizationIsMaximal_surjective_of_discreteTopology Modified Mathlib/RingTheory/Artinian.lean Modified Mathlib/RingTheory/Ideal/Maximal.lean + theorem Ideal.exists_le_prime_disjoint + theorem Ideal.exists_le_prime_nmem_of_isIdempotentElem Modified Mathlib/RingTheory/Ideal/Span.lean + theorem IsIdempotentElem.ker_toSpanSingleton_eq_span + theorem IsIdempotentElem.ker_toSpanSingleton_one_sub_eq_span Modified Mathlib/RingTheory/Idempotents.lean Modified Mathlib/RingTheory/Localization/AtPrime.lean + def RingHom.toLocalizationIsMaximal + theorem RingHom.toLocalizationIsMaximal_injective Modified Mathlib/RingTheory/Localization/Away/Basic.lean + theorem IsLocalization.away_of_isIdempotentElem_of_mul Modified Mathlib/RingTheory/Localization/Away/Lemmas.lean + theorem IsLocalization.Away.quotient_of_isIdempotentElem Modified Mathlib/RingTheory/Localization/Basic.lean + theorem IsLocalization.isLocalization_iff_of_isLocalization Modified Mathlib/RingTheory/Localization/Defs.lean + theorem IsLocalization.of_le_of_exists_dvd Modified Mathlib/RingTheory/Nilpotent/Basic.lean + theorem IsIdempotentElem.eq_zero_of_isNilpotent Modified Mathlib/RingTheory/PrimeSpectrum.lean + def PrimeSpectrum.equivSubtype Modified Mathlib/Topology/Order.lean + theorem DiscreteTopology.of_finite_of_isClosed_singleton 2024-11-25 16:18:55 435fc2b feat(AlgebraicGeometry): covers of schemes over a base (#19096) We introduce a class on covers containing the data of structure morphisms over a base and provide basic constructions. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/AlgebraicGeometry/Cover/Over.lean + def AlgebraicGeometry.Scheme.Cover.pullbackCoverOver' + def AlgebraicGeometry.Scheme.Cover.pullbackCoverOver + def AlgebraicGeometry.Scheme.Cover.pullbackCoverOverProp' + def AlgebraicGeometry.Scheme.Cover.pullbackCoverOverProp Modified Mathlib/AlgebraicGeometry/Morphisms/UnderlyingMap.lean + theorem AlgebraicGeometry.mem_range_iff_of_surjective + theorem AlgebraicGeometry.range_eq_range_of_surjective + theorem AlgebraicGeometry.range_eq_univ Modified Mathlib/AlgebraicGeometry/Over.lean Modified Mathlib/CategoryTheory/Comma/OverClass.lean + def CategoryTheory.OverClass.asOverHom Modified Mathlib/CategoryTheory/Limits/MorphismProperty.lean Modified Mathlib/CategoryTheory/MorphismProperty/Comma.lean + theorem CategoryTheory.MorphismProperty.Comma.toCommaMorphism_eq_hom 2024-11-25 16:00:55 15ea362 chore(Topology/../LiminfLimsup): change assumptions of 2 instances (#18919) - Assume `LinearOrder` instead of `Preorder`. - Assume `ClosedIciTopology`/`ClosedIicTopology` instead of `OrderTopology`. `OrderTopology` is usually not the right topology for non-linear orders, so restricting from `Preorder` to `LinearOrder` doesn't break anything. ESTIMATED CHANGES Modified Mathlib/Topology/Algebra/Order/LiminfLimsup.lean 2024-11-25 15:32:01 04cd3d0 fix: remove `ref: master` in zulip emoji reaction script (#19465) This way, the script will extract the python file from the current PR, allowing testing and debugging of changes in its behaviour. ESTIMATED CHANGES Modified .github/workflows/maintainer_bors.yml 2024-11-25 15:32:00 dbcafd0 feat: vertical line test for functions, group homs, linear maps (#18822) Prove the vertical line test for monoid homomorphisms/isomorphisms. Let `f : G → H × I` be a homomorphism to a product of monoids. Assume that `f` is surjective on the first factor and that the image of `f` intersects every "vertical line" `{(h, i) | i : I}` at most once. Then the image of `f` is the graph of some monoid homomorphism `f' : H → I`. Furthermore, if `f` is also surjective on the second factor and its image intersects every "horizontal line" `{(h, i) | h : H}` at most once, then `f'` is actually an isomorphism `f' : H ≃ I`. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Group/Graph.lean + theorem MonoidHom.exists_mrange_eq_mgraph + theorem MonoidHom.exists_mulEquiv_mrange_eq_mgraph + theorem MonoidHom.exists_mulEquiv_range_eq_graph + theorem MonoidHom.exists_range_eq_graph + def MonoidHom.graph + theorem MonoidHom.graph_eq_range_prod + theorem MonoidHom.mem_graph + theorem MonoidHom.mem_mgraph + def MonoidHom.mgraph + theorem MonoidHom.mgraph_eq_mrange_prod + theorem Subgroup.exists_eq_graph + theorem Subgroup.exists_mulEquiv_eq_graph + theorem Submonoid.exists_eq_mgraph + theorem Submonoid.exists_mulEquiv_eq_mgraph Modified Mathlib/Algebra/Group/Prod.lean + theorem Prod.div_def Modified Mathlib/Data/Prod/Basic.lean + theorem Prod.swap_eq_iff_eq_swap Modified Mathlib/Data/Set/Function.lean + theorem Set.exists_eq_mgraphOn_univ + theorem Set.exists_equiv_range_eq_graphOn_univ + theorem Set.exists_range_eq_graphOn_univ Modified Mathlib/LinearAlgebra/Prod.lean + theorem LinearMap.exists_linearEquiv_eq_graph + theorem LinearMap.exists_range_eq_graph + theorem Submodule.exists_eq_graph + theorem Submodule.exists_equiv_eq_graph 2024-11-25 15:15:49 b9e31e9 feat(CategoryTheory): final functors and preservation/reflection/creation of colimits (#19452) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Limits/Final.lean + def CategoryTheory.Functor.Final.createsColimitOfComp + def CategoryTheory.Functor.Final.createsColimitsOfShapeOfFinal + theorem CategoryTheory.Functor.Final.preservesColimit_of_comp + theorem CategoryTheory.Functor.Final.preservesColimitsOfShape_of_final + theorem CategoryTheory.Functor.Final.reflectsColimit_of_comp + theorem CategoryTheory.Functor.Final.reflectsColimitsOfShape_of_final + def CategoryTheory.Functor.Initial.createsLimitOfComp + def CategoryTheory.Functor.Initial.createsLimitsOfShapeOfInitial + theorem CategoryTheory.Functor.Initial.preservesLimit_of_comp + theorem CategoryTheory.Functor.Initial.preservesLimitsOfShape_of_initial + theorem CategoryTheory.Functor.Initial.reflectsLimit_of_comp + theorem CategoryTheory.Functor.Initial.reflectsLimitsOfShape_of_initial 2024-11-25 15:15:47 3e56ff8 feat(CategoryTheory): limits of eventually constant functors from cofiltered categories (#19021) An eventually constant functor from a cofiltered category admits a limit. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/CategoryTheory/Filtered/Basic.lean + theorem CategoryTheory.IsCofiltered.bowtie Added Mathlib/CategoryTheory/Limits/Constructions/EventuallyConstant.lean + theorem CategoryTheory.Functor.IsEventuallyConstantFrom.coconeιApp_eq + theorem CategoryTheory.Functor.IsEventuallyConstantFrom.coconeιApp_eq_id + theorem CategoryTheory.Functor.IsEventuallyConstantFrom.hasColimit + def CategoryTheory.Functor.IsEventuallyConstantFrom.isColimitCocone + theorem CategoryTheory.Functor.IsEventuallyConstantFrom.isIso_map + theorem CategoryTheory.Functor.IsEventuallyConstantFrom.isIso_ι_of_isColimit' + theorem CategoryTheory.Functor.IsEventuallyConstantFrom.isIso_ι_of_isColimit + theorem CategoryTheory.Functor.IsEventuallyConstantFrom.isoMap_hom_inv_id + theorem CategoryTheory.Functor.IsEventuallyConstantFrom.isoMap_inv_hom_id + theorem CategoryTheory.Functor.IsEventuallyConstantFrom.postcomp + def CategoryTheory.Functor.IsEventuallyConstantFrom + theorem CategoryTheory.Functor.IsEventuallyConstantTo.coneπApp_eq + theorem CategoryTheory.Functor.IsEventuallyConstantTo.coneπApp_eq_id + theorem CategoryTheory.Functor.IsEventuallyConstantTo.hasLimit + theorem CategoryTheory.Functor.IsEventuallyConstantTo.isIso_map + theorem CategoryTheory.Functor.IsEventuallyConstantTo.isIso_π_of_isLimit' + theorem CategoryTheory.Functor.IsEventuallyConstantTo.isIso_π_of_isLimit + def CategoryTheory.Functor.IsEventuallyConstantTo.isLimitCone + theorem CategoryTheory.Functor.IsEventuallyConstantTo.isoMap_hom_inv_id + theorem CategoryTheory.Functor.IsEventuallyConstantTo.isoMap_inv_hom_id + theorem CategoryTheory.Functor.IsEventuallyConstantTo.precomp + def CategoryTheory.Functor.IsEventuallyConstantTo 2024-11-25 13:34:39 7113817 chore: change the definition of `List.finRange` (#19447) François Dorais has been [working](https://github.com/leanprover-community/batteries/pull/1055) on upstreaming `List.finRange`, but wants to change the definition at the same time. That was running into difficulties, which hopefully are resolved here. ESTIMATED CHANGES Modified Archive/Imo/Imo2024Q5.lean Modified Mathlib/Analysis/Complex/UpperHalfPlane/Basic.lean Modified Mathlib/Analysis/Convex/StoneSeparation.lean Modified Mathlib/Analysis/InnerProductSpace/TwoDim.lean Modified Mathlib/Data/List/Defs.lean +/- def List.finRange Modified Mathlib/Data/List/FinRange.lean + theorem List.finRange_eq_nil + theorem List.finRange_eq_pmap_range + theorem List.finRange_map_get + theorem List.finRange_zero + theorem List.getElem_finRange + theorem List.get_finRange + theorem List.indexOf_finRange + theorem List.length_finRange + theorem List.mem_finRange + theorem List.nodup_finRange + theorem List.pairwise_le_finRange + theorem List.pairwise_lt_finRange Modified Mathlib/Data/List/Range.lean - theorem List.finRange_eq_nil - theorem List.finRange_map_get - theorem List.finRange_zero - theorem List.getElem_finRange - theorem List.get_finRange - theorem List.indexOf_finRange - theorem List.length_finRange - theorem List.mem_finRange - theorem List.nodup_finRange - theorem List.pairwise_le_finRange - theorem List.pairwise_lt_finRange Modified Mathlib/Data/List/Sublists.lean Modified Mathlib/LinearAlgebra/AffineSpace/Independent.lean Modified Mathlib/NumberTheory/Modular.lean Modified Mathlib/NumberTheory/NumberField/CanonicalEmbedding/Basic.lean Modified Mathlib/Order/RelSeries.lean Modified Mathlib/RingTheory/Complex.lean Modified Mathlib/SetTheory/Cardinal/Subfield.lean 2024-11-25 13:34:38 3fa5f45 chore: ensure there is a replacement identifier or text suggestion for all deprecations (#19426) This is for compatibility with the stricter requirements of leanprover/lean4#6112. Anyone is welcome to replace the "No deprecation message was provided." messages in other PRs! :-) ESTIMATED CHANGES Modified Mathlib/Algebra/BigOperators/Group/List.lean Modified Mathlib/Algebra/Group/Action/Defs.lean Modified Mathlib/Algebra/Group/AddChar.lean Modified Mathlib/Algebra/Group/Equiv/Basic.lean Modified Mathlib/Algebra/Group/Pointwise/Set/Card.lean Modified Mathlib/Algebra/Module/LinearMap/Defs.lean Modified Mathlib/Algebra/Order/Field/Power.lean Modified Mathlib/Algebra/Order/Group/Pointwise/Bounds.lean Modified Mathlib/Analysis/Complex/Circle.lean Modified Mathlib/CategoryTheory/Adjunction/Limits.lean Modified Mathlib/CategoryTheory/Idempotents/Karoubi.lean Modified Mathlib/CategoryTheory/Limits/Creates.lean Modified Mathlib/CategoryTheory/Limits/FunctorCategory/Basic.lean Modified Mathlib/Data/Complex/Abs.lean Modified Mathlib/Data/Fin/Basic.lean Modified Mathlib/Data/List/Basic.lean Modified Mathlib/Data/List/Flatten.lean +/- theorem List.sublist_join Modified Mathlib/Data/List/Indexes.lean Modified Mathlib/Data/List/Lex.lean Modified Mathlib/Data/List/Pairwise.lean +/- theorem List.pairwise_map' Modified Mathlib/Data/List/Permutation.lean Modified Mathlib/Data/Nat/Defs.lean Modified Mathlib/Data/Set/Pointwise/SMul.lean Modified Mathlib/Data/Setoid/Basic.lean Modified Mathlib/Deprecated/AlgebraClasses.lean Modified Mathlib/Deprecated/ByteArray.lean Modified Mathlib/Deprecated/Combinator.lean +/- def Combinator.I +/- def Combinator.K +/- def Combinator.S Modified Mathlib/Deprecated/Equiv.lean Modified Mathlib/Deprecated/LazyList.lean Modified Mathlib/Deprecated/Logic.lean Modified Mathlib/Deprecated/NatLemmas.lean Modified Mathlib/Deprecated/RelClasses.lean Modified Mathlib/GroupTheory/Coset/Basic.lean Modified Mathlib/GroupTheory/Coset/Defs.lean Modified Mathlib/GroupTheory/Exponent.lean Modified Mathlib/GroupTheory/GroupAction/Defs.lean Modified Mathlib/GroupTheory/GroupAction/Quotient.lean Modified Mathlib/GroupTheory/OrderOfElement.lean Modified Mathlib/GroupTheory/SpecificGroups/Cyclic.lean Modified Mathlib/LinearAlgebra/BilinearForm/Basic.lean Modified Mathlib/LinearAlgebra/BilinearForm/Hom.lean Modified Mathlib/LinearAlgebra/Prod.lean Modified Mathlib/Logic/Basic.lean +/- theorem Classical.cases_true_false Modified Mathlib/MeasureTheory/Function/L1Space.lean Modified Mathlib/MeasureTheory/Measure/Typeclasses.lean Modified Mathlib/MeasureTheory/Measure/WithDensityFinite.lean Modified Mathlib/NumberTheory/ArithmeticFunction.lean +/- theorem ArithmeticFunction.card_divisors Modified Mathlib/NumberTheory/MulChar/Basic.lean Modified Mathlib/Order/Defs.lean Modified Mathlib/Order/OmegaCompletePartialOrder.lean Modified Mathlib/Order/RelClasses.lean Modified Mathlib/SetTheory/Cardinal/Aleph.lean Modified Mathlib/SetTheory/Cardinal/Basic.lean Modified Mathlib/SetTheory/Cardinal/Cofinality.lean Modified Mathlib/SetTheory/Game/Ordinal.lean Modified Mathlib/SetTheory/Ordinal/Arithmetic.lean Modified Mathlib/SetTheory/Ordinal/Basic.lean Modified Mathlib/SetTheory/Ordinal/Enum.lean Modified Mathlib/SetTheory/Ordinal/FixedPoint.lean Modified Mathlib/SetTheory/Ordinal/Principal.lean Modified Mathlib/SetTheory/ZFC/Basic.lean Modified Mathlib/Topology/Algebra/ConstMulAction.lean Modified Mathlib/Topology/Algebra/ContinuousMonoidHom.lean Modified Mathlib/Topology/Algebra/Group/Quotient.lean Modified Mathlib/Topology/LocalAtTarget.lean Modified Mathlib/Topology/MetricSpace/Polish.lean Modified Mathlib/Topology/NoetherianSpace.lean Modified Mathlib/Topology/Order/OrderClosed.lean 2024-11-25 13:12:47 f26c0a2 chore(RingTheory/Noetherian): further split `Defs.lean` (#19364) Now that we have split `RingTheory.Finiteness`, we have the ability to clean up the import hierarchy of `RingTheory.PrincipalIdealDomain` further by splitting `Noetherian/Defs.lean` further. Now `Noetherian/Defs.lean` only contains results relating finite generation of submodule and wellfoundedness of the inclusion relation. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Module/FinitePresentation.lean Modified Mathlib/FieldTheory/Tower.lean Modified Mathlib/RingTheory/GradedAlgebra/Noetherian.lean Modified Mathlib/RingTheory/Ideal/Quotient/Noetherian.lean Added Mathlib/RingTheory/Noetherian/Basic.lean + theorem IsNoetherian.disjoint_partialSups_eventually_bot + theorem IsNoetherian.induction + theorem LinearEquiv.isNoetherian_iff + theorem LinearIndependent.finite_of_isNoetherian + theorem LinearIndependent.set_finite_of_isNoetherian + theorem Module.Finite.of_injective + theorem Submodule.finite_ne_bot_of_iSupIndep + theorem fg_of_injective + theorem fg_of_ker_bot + theorem isNoetherianRing_of_ringEquiv + theorem isNoetherianRing_of_surjective + theorem isNoetherian_iff_submodule_quotient + theorem isNoetherian_of_fg_of_noetherian + theorem isNoetherian_of_injective + theorem isNoetherian_of_ker_bot + theorem isNoetherian_of_linearEquiv + theorem isNoetherian_of_range_eq_ker + theorem isNoetherian_of_submodule_of_noetherian + theorem isNoetherian_of_surjective + theorem isNoetherian_of_tower + theorem isNoetherian_span_of_finite + theorem isNoetherian_top_iff Modified Mathlib/RingTheory/Noetherian/Defs.lean - theorem IsNoetherian.disjoint_partialSups_eventually_bot - theorem IsNoetherian.induction - theorem LinearEquiv.isNoetherian_iff - theorem LinearIndependent.finite_of_isNoetherian - theorem LinearIndependent.set_finite_of_isNoetherian - theorem Module.Finite.of_injective - theorem Submodule.finite_ne_bot_of_iSupIndep - theorem fg_of_injective - theorem fg_of_ker_bot - theorem isNoetherianRing_of_ringEquiv - theorem isNoetherianRing_of_surjective - theorem isNoetherian_iff_submodule_quotient - theorem isNoetherian_of_fg_of_noetherian - theorem isNoetherian_of_injective - theorem isNoetherian_of_ker_bot - theorem isNoetherian_of_linearEquiv - theorem isNoetherian_of_range_eq_ker - theorem isNoetherian_of_submodule_of_noetherian - theorem isNoetherian_of_surjective - theorem isNoetherian_of_tower - theorem isNoetherian_span_of_finite - theorem isNoetherian_top_iff Modified Mathlib/RingTheory/Noetherian/Orzech.lean Modified Mathlib/RingTheory/Polynomial/Basic.lean Modified Mathlib/RingTheory/PrimeSpectrum.lean Modified Mathlib/RingTheory/PrincipalIdealDomain.lean 2024-11-25 12:42:01 7f28d7f feat(Data/Finsupp/MonomialOrder): monomial orders (#19453) Definition of monomial orders, with the example of the lexicographic ordering This is the starting point of implementation of the beginnings of Gröbner theory. 3 subsequent PRs will address: - division algorithm - example of the homogeneous lexicographic ordering - example of the homogeneous reverse lexicographic ordering These various orderings (and other ones…) may look exotic but are actually used in algebraic geometry. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Data/Finsupp/MonomialOrder.lean + theorem Finsupp.lex_le_iff + theorem Finsupp.lex_lt_iff + theorem MonomialOrder.bot_eq_zero + theorem MonomialOrder.eq_zero_iff + theorem MonomialOrder.le_add_right + theorem MonomialOrder.lex_le_iff + theorem MonomialOrder.lex_lt_iff + theorem MonomialOrder.toSyn_strictMono + structure MonomialOrder Modified docs/references.bib 2024-11-25 12:42:00 beb3168 feat: additivize equivariance of morphisms of actions (#19171) Additivize the definition of equivariant morphisms with respect to multiplicative actions. The notation introduced is `X →ₑᵥ[φ] Y` for equivariant morphisms, and `X →ᵥ[M] Y` when the underlying map is identity. The goal is to be able to fully additivize the properties of blocks for actions and the definition of primitive actions in #12052 ESTIMATED CHANGES Modified Mathlib/GroupTheory/GroupAction/Hom.lean + structure AddActionHom 2024-11-25 11:42:22 85ded51 feat: extend `ContDiff` to take a smoothness exponent in `WithTop ℕ∞` (#19442) This is mathematically not meaningful at all, since the definition of `C^∞` and `C^ω` functions is the same in this PR. However, this opens the way to replacing the definition of `C^ω` with analytic in #17152. So, the current PR is just an intermediate step towards #17152, but making sure that the final diff will be smaller than the current +1280 lines changes. There is *no* mathematical content in the current PR: it's mostly adapting the library to provide an element of `WithTop ℕ∞` when it was expecting an element of `ℕ∞` before. In the locale `ContDiff`, we introduce two notations `ω` for `⊤ : WithTop ℕ∞ ` and `∞` for `(⊤ : ℕ∞) : WithTop ℕ∞`. A lot of the changes are to open the locale and use `∞` at suitable places. ESTIMATED CHANGES Modified Archive/Hairer.lean Modified Mathlib/Analysis/Calculus/AddTorsor/AffineMap.lean +/- theorem ContinuousAffineMap.contDiff Modified Mathlib/Analysis/Calculus/BumpFunction/Basic.lean Modified Mathlib/Analysis/Calculus/BumpFunction/FiniteDimension.lean +/- theorem ExistsContDiffBumpBase.u_smooth +/- theorem ExistsContDiffBumpBase.y_smooth Modified Mathlib/Analysis/Calculus/ContDiff/Basic.lean +/- theorem ContDiff.div +/- theorem ContDiff.fderiv_apply +/- theorem ContDiff.fderiv_right +/- theorem ContDiff.inv +/- theorem ContDiffAt.fderiv_right +/- theorem ContDiffOn.div +/- theorem ContDiffOn.inv +/- theorem ContDiffWithinAt.div +/- theorem ContDiffWithinAt.fderivWithin'' +/- theorem ContDiffWithinAt.fderivWithin' +/- theorem ContDiffWithinAt.fderivWithin_apply +/- theorem ContDiffWithinAt.inv +/- theorem Continuous.fderiv +/- theorem contDiffOn_fderivWithin_apply +/- theorem contDiff_single +/- theorem contDiff_update +/- theorem contDiff_zero_fun Modified Mathlib/Analysis/Calculus/ContDiff/Bounds.lean +/- theorem norm_iteratedFDerivWithin_mul_le +/- theorem norm_iteratedFDerivWithin_smul_le +/- theorem norm_iteratedFDeriv_clm_apply +/- theorem norm_iteratedFDeriv_clm_apply_const +/- theorem norm_iteratedFDeriv_comp_le +/- theorem norm_iteratedFDeriv_mul_le +/- theorem norm_iteratedFDeriv_smul_le Modified Mathlib/Analysis/Calculus/ContDiff/Defs.lean +/- def ContDiff +/- def ContDiffAt +/- def ContDiffOn +/- def ContDiffWithinAt +/- theorem contDiffOn_all_iff_nat +/- theorem contDiffOn_iff_continuousOn_differentiableOn +/- theorem contDiffOn_iff_forall_nat_le + theorem contDiffOn_infty_iff_contDiffOn_omega +/- theorem contDiffOn_of_continuousOn_differentiableOn +/- theorem contDiffOn_of_differentiableOn +/- theorem contDiffWithinAt_iff_forall_nat_le +/- theorem contDiff_all_iff_nat +/- theorem contDiff_iff_continuous_differentiable +/- theorem contDiff_iff_forall_nat_le + theorem contDiff_infty_iff_contDiff_omega +/- theorem contDiff_of_differentiable_iteratedFDeriv Modified Mathlib/Analysis/Calculus/ContDiff/FiniteDimension.lean +/- theorem contDiffOn_clm_apply +/- theorem contDiff_clm_apply_iff Modified Mathlib/Analysis/Calculus/ContDiff/RCLike.lean +/- theorem ContDiff.lipschitzWith_of_hasCompactSupport Modified Mathlib/Analysis/Calculus/FDeriv/Analytic.lean +/- theorem AnalyticAt.contDiffAt +/- theorem AnalyticOnNhd.contDiff +/- theorem CPolynomialAt.contDiffAt +/- theorem CPolynomialOn.contDiffOn Modified Mathlib/Analysis/Calculus/FDeriv/Norm.lean Modified Mathlib/Analysis/Calculus/FDeriv/Symmetric.lean +/- theorem ContDiffAt.isSymmSndFDerivAt +/- theorem ContDiffWithinAt.isSymmSndFDerivWithinAt Modified Mathlib/Analysis/Calculus/InverseFunctionTheorem/ContDiff.lean +/- theorem ContDiffAt.image_mem_toPartialHomeomorph_target +/- def ContDiffAt.localInverse +/- theorem ContDiffAt.localInverse_apply_image +/- theorem ContDiffAt.mem_toPartialHomeomorph_source +/- def ContDiffAt.toPartialHomeomorph +/- theorem ContDiffAt.toPartialHomeomorph_coe +/- theorem ContDiffAt.to_localInverse Modified Mathlib/Analysis/Calculus/IteratedDeriv/Defs.lean +/- theorem ContDiff.continuous_iteratedDeriv +/- theorem ContDiff.differentiable_iteratedDeriv +/- theorem ContDiffOn.continuousOn_iteratedDerivWithin +/- theorem ContDiffOn.differentiableOn_iteratedDerivWithin +/- theorem ContDiffWithinAt.differentiableWithinAt_iteratedDerivWithin Modified Mathlib/Analysis/Calculus/Rademacher.lean Modified Mathlib/Analysis/Calculus/SmoothSeries.lean Modified Mathlib/Analysis/Calculus/Taylor.lean Modified Mathlib/Analysis/Calculus/VectorField.lean +/- theorem ContDiff.lieBracket_vectorField +/- theorem ContDiffAt.lieBracket_vectorField +/- theorem ContDiffOn.lieBracketWithin_vectorField Modified Mathlib/Analysis/Complex/RealDeriv.lean +/- theorem ContDiff.real_of_complex +/- theorem ContDiffAt.real_of_complex Modified Mathlib/Analysis/Convolution.lean Modified Mathlib/Analysis/Distribution/AEEqOfIntegralContDiff.lean Modified Mathlib/Analysis/Distribution/SchwartzSpace.lean Modified Mathlib/Analysis/Fourier/FourierTransformDeriv.lean +/- theorem ContDiff.fourierPowSMulRight Modified Mathlib/Analysis/SpecialFunctions/ExpDeriv.lean +/- theorem Complex.contDiff_exp +/- theorem Real.contDiff_exp Modified Mathlib/Analysis/SpecialFunctions/Log/Deriv.lean +/- theorem Real.contDiffAt_log +/- theorem Real.contDiffOn_log Modified Mathlib/Analysis/SpecialFunctions/Pow/Deriv.lean +/- theorem Real.contDiffAt_rpow_const_of_ne +/- theorem Real.contDiffAt_rpow_of_ne Modified Mathlib/Analysis/SpecialFunctions/SmoothTransition.lean Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/ComplexDeriv.lean +/- theorem Complex.contDiffAt_tan Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/InverseDeriv.lean +/- theorem Real.contDiffAt_arccos +/- theorem Real.contDiffAt_arccos_iff +/- theorem Real.contDiffAt_arcsin +/- theorem Real.contDiffAt_arcsin_iff +/- theorem Real.contDiffOn_arccos +/- theorem Real.contDiffOn_arcsin Modified Mathlib/Geometry/Manifold/Algebra/LeftInvariantDerivation.lean Modified Mathlib/Geometry/Manifold/Algebra/Monoid.lean Modified Mathlib/Geometry/Manifold/Algebra/SmoothFunctions.lean Modified Mathlib/Geometry/Manifold/Algebra/Structures.lean Modified Mathlib/Geometry/Manifold/ContMDiff/Atlas.lean Modified Mathlib/Geometry/Manifold/ContMDiff/Basic.lean Modified Mathlib/Geometry/Manifold/ContMDiff/Defs.lean Modified Mathlib/Geometry/Manifold/ContMDiffMFDeriv.lean Modified Mathlib/Geometry/Manifold/ContMDiffMap.lean Modified Mathlib/Geometry/Manifold/DerivationBundle.lean Modified Mathlib/Geometry/Manifold/Diffeomorph.lean Modified Mathlib/Geometry/Manifold/Instances/Real.lean Modified Mathlib/Geometry/Manifold/Instances/Sphere.lean +/- theorem contDiff_stereoInvFunAux +/- theorem contMDiff_circleExp Modified Mathlib/Geometry/Manifold/Instances/UnitsOfNormedAlgebra.lean Modified Mathlib/Geometry/Manifold/MFDeriv/Atlas.lean Modified Mathlib/Geometry/Manifold/MFDeriv/Basic.lean Modified Mathlib/Geometry/Manifold/MFDeriv/Defs.lean Modified Mathlib/Geometry/Manifold/PartitionOfUnity.lean Modified Mathlib/Geometry/Manifold/Sheaf/LocallyRingedSpace.lean Modified Mathlib/Geometry/Manifold/Sheaf/Smooth.lean Modified Mathlib/Geometry/Manifold/SmoothManifoldWithCorners.lean Modified Mathlib/Geometry/Manifold/VectorBundle/SmoothSection.lean Modified Mathlib/Geometry/Manifold/VectorBundle/Tangent.lean Modified Mathlib/Geometry/Manifold/WhitneyEmbedding.lean Modified MathlibTest/fun_prop2.lean 2024-11-25 11:42:20 f2336c4 chore: delete lemmas about T0 seminormed groups (#19438) Those duplicate lemmas about normed groups ESTIMATED CHANGES Modified Mathlib/Analysis/Distribution/SchwartzSpace.lean Modified Mathlib/Analysis/InnerProductSpace/Positive.lean Modified Mathlib/Analysis/Normed/Affine/ContinuousAffineMap.lean Modified Mathlib/Analysis/Normed/Group/Basic.lean +/- theorem norm_div_eq_zero_iff - theorem norm_eq_zero''' - theorem norm_eq_zero'' + theorem norm_eq_zero' - theorem norm_le_zero_iff''' - theorem norm_le_zero_iff'' + theorem norm_le_zero_iff' +/- theorem norm_ne_zero_iff' - theorem norm_pos_iff''' - theorem norm_pos_iff'' + theorem norm_pos_iff' Modified Mathlib/Analysis/Normed/Group/Uniform.lean Modified Mathlib/MeasureTheory/Integral/IntegrableOn.lean Modified Mathlib/NumberTheory/NumberField/CanonicalEmbedding/Basic.lean Modified scripts/nolints_prime_decls.txt 2024-11-25 11:42:19 ebd6407 chore: rename `Codisjoint_comm` to `codisjoint_comm` (#19403) This was a typo ESTIMATED CHANGES Modified Mathlib/Data/Fintype/Basic.lean Modified Mathlib/Order/BooleanAlgebra.lean Modified Mathlib/Order/Disjoint.lean - theorem Codisjoint_comm + theorem codisjoint_comm Modified Mathlib/Order/Heyting/Basic.lean 2024-11-25 11:42:18 8defd9f chore(Filter): move defs of `Filter.IsBounded` etc (#19358) ESTIMATED CHANGES Modified Mathlib/Analysis/Normed/Group/Bounded.lean Modified Mathlib/Order/Filter/Defs.lean + def Filter.IsBounded + def Filter.IsBoundedUnder + def Filter.IsCobounded + def Filter.IsCoboundedUnder Modified Mathlib/Order/LiminfLimsup.lean - def Filter.IsBounded - def Filter.IsBoundedUnder - def Filter.IsCobounded - def Filter.IsCoboundedUnder Modified Mathlib/Topology/Bornology/Basic.lean 2024-11-25 11:42:16 2fa86db feat(AlgebraicTopology): StrictSegal simplicial sets are quasicategories (#19270) We prove that any simplicial set satisfying the `StrictSegal` condition introduced in #18499 is a quasicategory. This implies that the nerve of a category is a quasicategory. We construct a solution to the lifting problem against `hornInclusion n i` as a `spineToSimplex` of the path in the image of the spine of the standard simplex. To prove that this extension restricts to the appropriate map on the horn, we apply `spineInjective`, reducing the question of equality between two `n`-simplices in `X` to that of equality between the paths along their spines. The remainder of the proof is a straightforward application of basic properties relating spines of simplices to their faces. Co-Authored-By: [Johan Commelin](https://github.com/jcommelin) and [Emily Riehl](https://github.com/emilyriehl) ESTIMATED CHANGES Modified Mathlib/AlgebraicTopology/SimplexCategory.lean + theorem SimplexCategory.mkOfSucc_δ_eq + theorem SimplexCategory.mkOfSucc_δ_gt + theorem SimplexCategory.mkOfSucc_δ_lt Modified Mathlib/AlgebraicTopology/SimplicialSet/Basic.lean + def SSet.standardSimplex.id + theorem SSet.standardSimplex.id_eq_objEquiv_symm + theorem SSet.standardSimplex.objEquiv_id Modified Mathlib/AlgebraicTopology/SimplicialSet/Path.lean + def SSet.Path.map + def SSet.horn.spineId + theorem SSet.horn.spineId_map_hornInclusion + theorem SSet.map_interval + def SSet.standardSimplex.spineId Modified Mathlib/AlgebraicTopology/SimplicialSet/StrictSegal.lean + theorem SSet.StrictSegal.spineToSimplex_map + theorem SSet.StrictSegal.spine_δ_arrow_eq + theorem SSet.StrictSegal.spine_δ_arrow_gt + theorem SSet.StrictSegal.spine_δ_arrow_lt + theorem SSet.StrictSegal.spine_δ_vertex_ge + theorem SSet.StrictSegal.spine_δ_vertex_lt 2024-11-25 11:04:41 c4f3076 chore: remove unused variables (#19413) #17715 ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Pointwise/Set/Card.lean Modified Mathlib/Algebra/GroupWithZero/Pointwise/Set/Card.lean Modified Mathlib/Algebra/Homology/Additive.lean Modified Mathlib/Algebra/Quaternion.lean Modified Mathlib/Algebra/TrivSqZeroExt.lean Modified Mathlib/AlgebraicGeometry/Morphisms/Basic.lean Modified Mathlib/AlgebraicGeometry/Morphisms/Etale.lean Modified Mathlib/AlgebraicGeometry/Morphisms/OpenImmersion.lean Modified Mathlib/AlgebraicGeometry/SpreadingOut.lean Modified Mathlib/Analysis/Convex/Gauge.lean Modified Mathlib/Analysis/Convex/Normed.lean Modified Mathlib/Analysis/InnerProductSpace/Basic.lean Modified Mathlib/Analysis/Normed/Field/Basic.lean Modified Mathlib/Analysis/Normed/Group/Basic.lean Modified Mathlib/Analysis/Normed/Group/Bounded.lean Modified Mathlib/Analysis/Normed/Group/Uniform.lean Modified Mathlib/Analysis/Normed/Module/FiniteDimension.lean Modified Mathlib/CategoryTheory/Adjunction/Evaluation.lean Modified Mathlib/CategoryTheory/GradedObject.lean Modified Mathlib/CategoryTheory/GuitartExact/Basic.lean Modified Mathlib/CategoryTheory/Sites/NonabelianCohomology/H1.lean Modified Mathlib/Combinatorics/SimpleGraph/Triangle/Basic.lean Modified Mathlib/Combinatorics/SimpleGraph/Triangle/Counting.lean Modified Mathlib/Combinatorics/SimpleGraph/Triangle/Tripartite.lean Modified Mathlib/Data/Real/Sqrt.lean Modified Mathlib/MeasureTheory/Constructions/Pi.lean Modified Mathlib/MeasureTheory/Group/Action.lean Modified Mathlib/MeasureTheory/Group/LIntegral.lean Modified Mathlib/MeasureTheory/Integral/Marginal.lean Modified Mathlib/MeasureTheory/MeasurableSpace/Basic.lean Modified Mathlib/MeasureTheory/MeasurableSpace/Prod.lean Modified Mathlib/MeasureTheory/Measure/Regular.lean Modified Mathlib/RingTheory/GradedAlgebra/HomogeneousLocalization.lean Modified Mathlib/RingTheory/Localization/AtPrime.lean Modified Mathlib/RingTheory/Localization/Integral.lean Modified Mathlib/RingTheory/Localization/LocalizationLocalization.lean Modified Mathlib/RingTheory/TensorProduct/Free.lean Modified Mathlib/RingTheory/UniqueFactorizationDomain/Nat.lean Modified Mathlib/Testing/Plausible/Functions.lean Modified Mathlib/Topology/Algebra/InfiniteSum/Basic.lean Modified Mathlib/Topology/Algebra/InfiniteSum/Constructions.lean Modified Mathlib/Topology/Algebra/InfiniteSum/Defs.lean Modified Mathlib/Topology/Algebra/InfiniteSum/Group.lean Modified Mathlib/Topology/Algebra/InfiniteSum/Ring.lean Modified Mathlib/Topology/ContinuousMap/Ordered.lean Modified Mathlib/Topology/Instances/ENNReal.lean Modified Mathlib/Topology/MetricSpace/Dilation.lean Modified Mathlib/Topology/MetricSpace/Isometry.lean Modified Mathlib/Topology/MetricSpace/Pseudo/Real.lean Modified Mathlib/Topology/Order/ExtrClosure.lean Modified Mathlib/Topology/Order/MonotoneConvergence.lean Modified Mathlib/Topology/Order/T5.lean Modified Mathlib/Topology/ShrinkingLemma.lean Modified Mathlib/Topology/UniformSpace/OfCompactT2.lean 2024-11-25 11:04:40 a3580b7 chore(Order/ConditionallyCompleteLattice): split off `Defs.lean` from `Basic.lean` (#19277) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Order/ConditionallyCompleteLattice/Basic.lean - def conditionallyCompleteLatticeOfLatticeOfsInf - def conditionallyCompleteLatticeOfLatticeOfsSup - def conditionallyCompleteLatticeOfsInf - def conditionallyCompleteLatticeOfsSup Added Mathlib/Order/ConditionallyCompleteLattice/Defs.lean + def conditionallyCompleteLatticeOfLatticeOfsInf + def conditionallyCompleteLatticeOfLatticeOfsSup + def conditionallyCompleteLatticeOfsInf + def conditionallyCompleteLatticeOfsSup Modified scripts/noshake.json 2024-11-25 11:04:38 a151e51 feat(RingTheory/LocalProperties): Add theorems about LocalizedModule (#19080) This PR contains: 1. A proof that localization commutes with ranges. 2. Some missing lemmas about localized submodules. 3. A proof that injective, surjective, bijective (of linear maps) are local properties. These theorems will be used to prove that flat is a local property in a later PR. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Module/LocalizedModule/Submodule.lean +/- theorem LinearMap.ker_localizedMap_eq_localized'_ker + theorem LinearMap.ker_localizedMap_eq_localized₀_ker +/- theorem LinearMap.localized'_ker_eq_ker_localizedMap + theorem LinearMap.localized'_range_eq_range_localizedMap + theorem LinearMap.range_localizedMap_eq_localized₀_range +/- theorem LinearMap.toKerLocalized_isLocalizedModule Modified Mathlib/RingTheory/Ideal/Maximal.lean + theorem Ideal.exists_disjoint_powers_of_span_eq_top Added Mathlib/RingTheory/LocalProperties/Exactness.lean + theorem bijective_of_isLocalized_maximal + theorem bijective_of_isLocalized_span + theorem bijective_of_localized_maximal + theorem bijective_of_localized_span + theorem exact_of_isLocalized_maximal + theorem exact_of_isLocalized_span + theorem exact_of_localized_maximal + theorem exact_of_localized_span + theorem injective_of_isLocalized_maximal + theorem injective_of_isLocalized_span + theorem injective_of_localized_maximal + theorem injective_of_localized_span + theorem surjective_of_isLocalized_maximal + theorem surjective_of_isLocalized_span + theorem surjective_of_localized_maximal + theorem surjective_of_localized_span Modified Mathlib/RingTheory/LocalProperties/Submodule.lean + theorem Module.eq_of_isLocalized_span + theorem Module.eq_zero_of_isLocalized_span + theorem Submodule.eq_bot_of_isLocalized'_span + theorem Submodule.eq_bot_of_isLocalized₀_span + theorem Submodule.eq_of_isLocalized'_span + theorem Submodule.eq_of_isLocalized₀_span + theorem Submodule.eq_top_of_isLocalized'_span + theorem Submodule.eq_top_of_isLocalized₀_span + theorem Submodule.le_of_isLocalized_span + theorem Submodule.mem_of_isLocalized_span 2024-11-25 10:13:40 b965444 doc: describe why map_ofNat can't be simp (yet) (#19410) See the benchmark in #19388, which while not disastrous is not ideal either. Unless the situation changes with https://github.com/leanprover/lean4/issues/2867, the DiscrTree key would apply to all funlike operations applied to any argument, not just applied to numerals. ESTIMATED CHANGES Modified Mathlib/Data/Nat/Cast/Basic.lean 2024-11-25 10:13:39 725d2de chore: rename `CompleteLattice.Independent`/`.SetIndependent` to `iSupIndep`/`sSupIndep` (#19409) These names are shorter, closer to `SupIndep` and clearer without their namespace. ESTIMATED CHANGES Modified Counterexamples/DirectSumIsInternal.lean +/- def Counterexample.withSign.independent Modified Mathlib/Algebra/DirectSum/Basic.lean Modified Mathlib/Algebra/DirectSum/Internal.lean Modified Mathlib/Algebra/DirectSum/LinearMap.lean Modified Mathlib/Algebra/DirectSum/Module.lean + theorem DirectSum.IsInternal.addSubgroup_iSupIndep - theorem DirectSum.IsInternal.addSubgroup_independent + theorem DirectSum.IsInternal.addSubmonoid_iSupIndep - theorem DirectSum.IsInternal.addSubmonoid_independent + theorem DirectSum.IsInternal.submodule_iSupIndep - theorem DirectSum.IsInternal.submodule_independent + theorem DirectSum.isInternal_biSup_submodule_of_iSupIndep - theorem DirectSum.isInternal_biSup_submodule_of_independent + theorem DirectSum.isInternal_submodule_iff_iSupIndep_and_iSup_eq_top - theorem DirectSum.isInternal_submodule_iff_independent_and_iSup_eq_top + theorem DirectSum.isInternal_submodule_of_iSupIndep_of_iSup_eq_top - theorem DirectSum.isInternal_submodule_of_independent_of_iSup_eq_top Modified Mathlib/Algebra/DirectSum/Ring.lean Modified Mathlib/Algebra/Lie/Semisimple/Basic.lean Modified Mathlib/Algebra/Lie/Semisimple/Defs.lean Modified Mathlib/Algebra/Lie/Submodule.lean + theorem LieSubmodule.iSupIndep_iff_coe_toSubmodule - theorem LieSubmodule.independent_iff_coe_toSubmodule Modified Mathlib/Algebra/Lie/TraceForm.lean Modified Mathlib/Algebra/Lie/Weights/Basic.lean + theorem LieModule.iSupIndep_genWeightSpace' + theorem LieModule.iSupIndep_genWeightSpace + theorem LieModule.iSupIndep_genWeightSpaceOf - theorem LieModule.independent_genWeightSpace' - theorem LieModule.independent_genWeightSpace - theorem LieModule.independent_genWeightSpaceOf Modified Mathlib/Algebra/Lie/Weights/Chain.lean Modified Mathlib/Algebra/Lie/Weights/Killing.lean Modified Mathlib/Algebra/Module/Torsion.lean - theorem Ideal.CompleteLattice.Independent.linear_independent' + theorem Ideal.iSupIndep.linearIndependent' Modified Mathlib/Analysis/InnerProductSpace/Basic.lean Modified Mathlib/Analysis/InnerProductSpace/Projection.lean Modified Mathlib/GroupTheory/NoncommPiCoprod.lean + theorem MonoidHom.injective_noncommPiCoprod_of_iSupIndep - theorem MonoidHom.injective_noncommPiCoprod_of_independent + theorem Subgroup.eq_one_of_noncommProd_eq_one_of_iSupIndep - theorem Subgroup.eq_one_of_noncommProd_eq_one_of_independent + theorem Subgroup.injective_noncommPiCoprod_of_iSupIndep - theorem Subgroup.injective_noncommPiCoprod_of_independent Modified Mathlib/GroupTheory/Sylow.lean Modified Mathlib/LinearAlgebra/DFinsupp.lean - theorem CompleteLattice.Independent.dfinsupp_lsum_injective - theorem CompleteLattice.Independent.dfinsupp_sumAddHom_injective - theorem CompleteLattice.Independent.linearIndependent - theorem CompleteLattice.independent_iff_dfinsupp_lsum_injective - theorem CompleteLattice.independent_iff_dfinsupp_sumAddHom_injective - theorem CompleteLattice.independent_iff_forall_dfinsupp - theorem CompleteLattice.independent_iff_linearIndependent_of_ne_zero - theorem CompleteLattice.independent_of_dfinsupp_lsum_injective - theorem CompleteLattice.independent_of_dfinsupp_sumAddHom_injective' - theorem CompleteLattice.independent_of_dfinsupp_sumAddHom_injective - theorem CompleteLattice.lsum_comp_mapRange_toSpanSingleton + theorem iSupIndep.dfinsupp_lsum_injective + theorem iSupIndep.dfinsupp_sumAddHom_injective + theorem iSupIndep.linearIndependent + theorem iSupIndep_iff_dfinsupp_lsum_injective + theorem iSupIndep_iff_dfinsupp_sumAddHom_injective + theorem iSupIndep_iff_forall_dfinsupp + theorem iSupIndep_iff_linearIndependent_of_ne_zero + theorem iSupIndep_of_dfinsupp_lsum_injective + theorem iSupIndep_of_dfinsupp_sumAddHom_injective' + theorem iSupIndep_of_dfinsupp_sumAddHom_injective + theorem lsum_comp_mapRange_toSpanSingleton Modified Mathlib/LinearAlgebra/Dimension/Finite.lean - theorem CompleteLattice.Independent.subtype_ne_bot_le_finrank - theorem CompleteLattice.Independent.subtype_ne_bot_le_finrank_aux - theorem CompleteLattice.Independent.subtype_ne_bot_le_rank + theorem iSupIndep.subtype_ne_bot_le_finrank + theorem iSupIndep.subtype_ne_bot_le_finrank_aux + theorem iSupIndep.subtype_ne_bot_le_rank Modified Mathlib/LinearAlgebra/Eigenspace/Basic.lean + theorem Module.End.eigenspaces_iSupIndep - theorem Module.End.eigenspaces_independent Modified Mathlib/LinearAlgebra/Eigenspace/Matrix.lean Modified Mathlib/LinearAlgebra/Eigenspace/Pi.lean Modified Mathlib/LinearAlgebra/LinearIndependent.lean + theorem LinearIndependent.iSupIndep_span_singleton - theorem LinearIndependent.independent_span_singleton Modified Mathlib/LinearAlgebra/Projectivization/Independence.lean - theorem Projectivization.independent_iff_completeLattice_independent + theorem Projectivization.independent_iff_iSupIndep Modified Mathlib/Order/CompactlyGenerated/Basic.lean - theorem CompleteLattice.WellFoundedGT.finite_ne_bot_of_independent - theorem CompleteLattice.WellFoundedGT.finite_of_independent - theorem CompleteLattice.WellFoundedGT.finite_of_setIndependent - theorem CompleteLattice.WellFoundedLT.finite_ne_bot_of_independent - theorem CompleteLattice.WellFoundedLT.finite_of_independent - theorem CompleteLattice.WellFoundedLT.finite_of_setIndependent - theorem CompleteLattice.independent_iff_supIndep_of_injOn - theorem CompleteLattice.independent_sUnion_of_directed - theorem CompleteLattice.setIndependent_iUnion_of_directed - theorem CompleteLattice.setIndependent_iff_finite + theorem WellFoundedGT.finite_ne_bot_of_iSupIndep + theorem WellFoundedGT.finite_of_iSupIndep + theorem WellFoundedGT.finite_of_sSupIndep + theorem WellFoundedLT.finite_ne_bot_of_iSupIndep + theorem WellFoundedLT.finite_of_iSupIndep + theorem WellFoundedLT.finite_of_sSupIndep + theorem exists_sSupIndep_isCompl_sSup_atoms + theorem exists_sSupIndep_of_sSup_atoms_eq_top - theorem exists_setIndependent_isCompl_sSup_atoms - theorem exists_setIndependent_of_sSup_atoms_eq_top + theorem iSupIndep_iff_supIndep_of_injOn + theorem iSupIndep_sUnion_of_directed + theorem sSupIndep_iUnion_of_directed + theorem sSupIndep_iff_finite Modified Mathlib/Order/SupIndep.lean - theorem CompleteLattice.Independent.comp' - theorem CompleteLattice.Independent.comp - theorem CompleteLattice.Independent.disjoint_biSup - theorem CompleteLattice.Independent.injOn - theorem CompleteLattice.Independent.injective - theorem CompleteLattice.Independent.map_orderIso - theorem CompleteLattice.Independent.mono - theorem CompleteLattice.Independent.pairwiseDisjoint - theorem CompleteLattice.Independent.setIndependent_range - theorem CompleteLattice.Independent.supIndep' - def CompleteLattice.Independent - theorem CompleteLattice.SetIndependent.disjoint_sSup - theorem CompleteLattice.SetIndependent.mono - theorem CompleteLattice.SetIndependent.pairwiseDisjoint - def CompleteLattice.SetIndependent - theorem CompleteLattice.independent_def'' - theorem CompleteLattice.independent_def' - theorem CompleteLattice.independent_def - theorem CompleteLattice.independent_empty - theorem CompleteLattice.independent_iff_pairwiseDisjoint - theorem CompleteLattice.independent_iff_supIndep - theorem CompleteLattice.independent_iff_supIndep_univ - theorem CompleteLattice.independent_map_orderIso_iff - theorem CompleteLattice.independent_ne_bot_iff_independent - theorem CompleteLattice.independent_of_independent_coe_Iic_comp - theorem CompleteLattice.independent_pair - theorem CompleteLattice.independent_pempty - theorem CompleteLattice.setIndependent_empty - theorem CompleteLattice.setIndependent_iff - theorem CompleteLattice.setIndependent_iff_pairwiseDisjoint - theorem CompleteLattice.setIndependent_pair - theorem CompleteLattice.setIndependent_singleton + theorem iSupIndep.comp' + theorem iSupIndep.comp + theorem iSupIndep.disjoint_biSup + theorem iSupIndep.injOn + theorem iSupIndep.injective + theorem iSupIndep.map_orderIso + theorem iSupIndep.mono + theorem iSupIndep.of_coe_Iic_comp + theorem iSupIndep.pairwiseDisjoint + theorem iSupIndep.sSupIndep_range + theorem iSupIndep.supIndep' + def iSupIndep + theorem iSupIndep_def'' + theorem iSupIndep_def' + theorem iSupIndep_def + theorem iSupIndep_empty + theorem iSupIndep_iff_pairwiseDisjoint + theorem iSupIndep_iff_supIndep + theorem iSupIndep_iff_supIndep_univ + theorem iSupIndep_map_orderIso_iff + theorem iSupIndep_ne_bot + theorem iSupIndep_pair + theorem iSupIndep_pempty + theorem sSupIndep.disjoint_sSup + theorem sSupIndep.mono + theorem sSupIndep.pairwiseDisjoint + def sSupIndep + theorem sSupIndep_empty + theorem sSupIndep_iff + theorem sSupIndep_iff_pairwiseDisjoint + theorem sSupIndep_pair + theorem sSupIndep_singleton Modified Mathlib/RingTheory/FiniteLength.lean Modified Mathlib/RingTheory/Noetherian/Defs.lean + theorem Submodule.finite_ne_bot_of_iSupIndep - theorem Submodule.finite_ne_bot_of_independent Modified Mathlib/RingTheory/SimpleModule.lean + theorem IsSemisimpleModule.exists_sSupIndep_sSup_simples_eq_top - theorem IsSemisimpleModule.exists_setIndependent_sSup_simples_eq_top Modified scripts/nolints_prime_decls.txt 2024-11-25 09:33:04 f801de4 chore: split notation typeclasses out of Algebra.Group.Defs (#19350) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Group/Defs.lean - theorem SMul.smul_eq_hSMul - theorem dite_div - theorem dite_div_dite - theorem dite_mul - theorem dite_mul_dite - theorem div_dite - theorem div_ite - theorem ite_div - theorem ite_div_ite - theorem ite_mul - theorem ite_mul_ite - theorem mul_dite - theorem mul_ite Added Mathlib/Algebra/Group/Operations.lean + theorem SMul.smul_eq_hSMul + theorem dite_div + theorem dite_div_dite + theorem dite_mul + theorem dite_mul_dite + theorem div_dite + theorem div_ite + theorem ite_div + theorem ite_div_ite + theorem ite_mul + theorem ite_mul_ite + theorem mul_dite + theorem mul_ite Modified Mathlib/Data/Part.lean 2024-11-25 09:33:02 a5ae0c1 chore: remove the `Smooth` alias for infinitely differentiable functions between manifolds (#19296) The abbreviation `Smooth` for `ContMDiff` with infinite smoothness had been introduced in mathlib in ancient times. This has lead to a big API duplication, for no visible gain. We deprecate this abbreviation (with its friends `SmoothAt` and so on) and all the lemmas involving it. In the longer run, we might consider reintroducing it as a mere notation (without any specific API), but this is not part of this PR, devoted purely to the deprecation. No mathematical content added. ESTIMATED CHANGES Modified Mathlib/Analysis/Complex/UpperHalfPlane/Manifold.lean + theorem UpperHalfPlane.contMDiffAt_ofComplex + theorem UpperHalfPlane.contMDiff_coe - theorem UpperHalfPlane.smoothAt_ofComplex - theorem UpperHalfPlane.smooth_coe Modified Mathlib/Analysis/Distribution/AEEqOfIntegralContDiff.lean Modified Mathlib/Geometry/Manifold/Algebra/LieGroup.lean - theorem Smooth.div₀ - theorem Smooth.inv₀ - theorem SmoothAt.div₀ - theorem SmoothAt.inv₀ - theorem SmoothOn.div₀ - theorem SmoothOn.inv₀ - theorem SmoothOn_inv₀ - theorem SmoothWithinAt.div₀ - theorem SmoothWithinAt.inv₀ + theorem contMDiffAt_inv₀ + theorem contMDiffOn_inv₀ + theorem contMDiff_inv - theorem smoothAt_inv₀ - theorem smooth_inv Modified Mathlib/Geometry/Manifold/Algebra/Monoid.lean + theorem contMDiff_mul +/- theorem contMDiff_mul_left +/- theorem contMDiff_mul_right + theorem contMDiff_pow - theorem smoothAt_finprod - theorem smoothAt_finset_prod' - theorem smoothAt_finset_prod - theorem smoothOn_finset_prod' - theorem smoothOn_finset_prod - theorem smoothWithinAt_finset_prod' - theorem smoothWithinAt_finset_prod - theorem smooth_finprod - theorem smooth_finprod_cond - theorem smooth_finset_prod' - theorem smooth_finset_prod - theorem smooth_mul - theorem smooth_mul_left - theorem smooth_mul_right - theorem smooth_pow Modified Mathlib/Geometry/Manifold/Algebra/SmoothFunctions.lean Modified Mathlib/Geometry/Manifold/Algebra/Structures.lean Modified Mathlib/Geometry/Manifold/BumpFunction.lean + theorem SmoothBumpFunction.contMDiff_smul - theorem SmoothBumpFunction.smooth_smul Modified Mathlib/Geometry/Manifold/ContMDiff/Atlas.lean Modified Mathlib/Geometry/Manifold/ContMDiff/Basic.lean - theorem Smooth.comp_smoothOn - theorem Smooth.extend_one - theorem SmoothAt.comp_smoothWithinAt - theorem SmoothOn.comp_smooth + theorem contMDiffAt_subtype_iff - theorem contMdiffAt_subtype_iff - theorem smoothAt_const - theorem smoothAt_id - theorem smoothAt_one - theorem smoothOn_const - theorem smoothOn_id - theorem smoothOn_one - theorem smoothWithinAt_const - theorem smoothWithinAt_id - theorem smoothWithinAt_one - theorem smooth_const - theorem smooth_id - theorem smooth_inclusion - theorem smooth_one - theorem smooth_subtype_iff - theorem smooth_subtype_val Modified Mathlib/Geometry/Manifold/ContMDiff/Defs.lean - theorem ContMDiff.smooth - theorem ContMDiffAt.smoothAt - theorem ContMDiffOn.smoothOn - theorem ContMDiffWithinAt.smoothWithinAt - theorem Smooth.contMDiff - theorem Smooth.smoothAt - theorem SmoothAt.contMDiffAt - theorem SmoothOn.contMDiffOn - theorem SmoothWithinAt.contMDiffWithinAt +/- theorem contMDiffAt_top +/- theorem contMDiffOn_top +/- theorem contMDiff_top - theorem smoothAt_iff_target - theorem smoothOn_iff - theorem smoothOn_iff_target - theorem smoothOn_univ - theorem smoothWithinAt_iff - theorem smoothWithinAt_iff_target - theorem smoothWithinAt_univ - theorem smooth_iff - theorem smooth_iff_target Modified Mathlib/Geometry/Manifold/ContMDiff/NormedSpace.lean - theorem ContinuousLinearMap.smooth + theorem contMDiff_smul - theorem smooth_smul Modified Mathlib/Geometry/Manifold/ContMDiff/Product.lean - theorem Smooth.fst - theorem Smooth.snd - theorem SmoothAt.fst - theorem SmoothAt.snd + theorem contMDiff_prod_assoc - theorem smoothAt_fst - theorem smoothAt_pi_space - theorem smoothAt_prod_iff - theorem smoothAt_snd - theorem smoothOn_fst - theorem smoothOn_pi_space - theorem smoothOn_snd - theorem smoothWithinAt_fst - theorem smoothWithinAt_pi_space - theorem smoothWithinAt_snd - theorem smooth_fst - theorem smooth_pi_space - theorem smooth_prod_assoc - theorem smooth_prod_iff - theorem smooth_snd Modified Mathlib/Geometry/Manifold/ContMDiffMFDeriv.lean - theorem Smooth.tangentMap Modified Mathlib/Geometry/Manifold/ContMDiffMap.lean Modified Mathlib/Geometry/Manifold/Diffeomorph.lean - theorem Diffeomorph.smooth_transDiffeomorph_left - theorem Diffeomorph.smooth_transDiffeomorph_right Modified Mathlib/Geometry/Manifold/MFDeriv/Basic.lean + theorem ContMDiff.mdifferentiableWithinAt - theorem Smooth.mdifferentiable - theorem Smooth.mdifferentiableAt - theorem Smooth.mdifferentiableWithinAt Modified Mathlib/Geometry/Manifold/MFDeriv/UniqueDifferential.lean Modified Mathlib/Geometry/Manifold/PartitionOfUnity.lean +/- theorem BumpCovering.coe_toSmoothPartitionOfUnity + theorem BumpCovering.contMDiff_toPartitionOfUnity - theorem BumpCovering.smooth_toPartitionOfUnity +/- def BumpCovering.toSmoothPartitionOfUnity - theorem SmoothPartitionOfUnity.IsSubordinate.smooth_finsum_smul + theorem SmoothPartitionOfUnity.contMDiff_sum - theorem SmoothPartitionOfUnity.smooth_finsum_smul - theorem SmoothPartitionOfUnity.smooth_smul - theorem SmoothPartitionOfUnity.smooth_sum Modified Mathlib/Geometry/Manifold/Sheaf/LocallyRingedSpace.lean Modified Mathlib/Geometry/Manifold/Sheaf/Smooth.lean + theorem smoothSheaf.contMDiff_section - theorem smoothSheaf.smooth_section +/- def smoothSheafCommGroup.compLeft Modified Mathlib/Geometry/Manifold/VectorBundle/Basic.lean + theorem Bundle.contMDiff_zeroSection - theorem Bundle.smoothAt_proj - theorem Bundle.smoothOn_proj - theorem Bundle.smoothWithinAt_proj - theorem Bundle.smooth_proj - theorem Bundle.smooth_zeroSection + theorem Trivialization.contMDiffOn + theorem Trivialization.contMDiffOn_symm - theorem Trivialization.smoothAt_iff - theorem Trivialization.smoothOn - theorem Trivialization.smoothOn_iff - theorem Trivialization.smoothOn_symm - theorem Trivialization.smoothWithinAt_iff - theorem Trivialization.smooth_iff + theorem VectorBundleCore.contMDiffOn_coordChange - theorem VectorBundleCore.smoothOn_coordChange + theorem VectorPrebundle.contMDiffOn_smoothCoordChange - theorem VectorPrebundle.smoothOn_smoothCoordChange - theorem smoothAt_coordChangeL - theorem smoothOn_coordChangeL - theorem smoothOn_symm_coordChangeL Modified Mathlib/Geometry/Manifold/VectorBundle/FiberwiseLinear.lean Modified Mathlib/Geometry/Manifold/VectorBundle/Hom.lean + theorem contMDiffOn_continuousLinearMapCoordChange - theorem smoothAt_hom_bundle - theorem smoothOn_continuousLinearMapCoordChange Modified Mathlib/Geometry/Manifold/VectorBundle/Pullback.lean Modified Mathlib/Geometry/Manifold/VectorBundle/SmoothSection.lean Modified Mathlib/Geometry/Manifold/VectorBundle/Tangent.lean Modified Mathlib/Geometry/Manifold/WhitneyEmbedding.lean 2024-11-25 09:33:01 5f45753 refactor(Algebra/Category): turn homs in `AlgebraCat` into a structure (#19065) In the current design of concrete categories in mathlib, there are two sources of `erw`s: - Def-Eq abuse of `A ⟶ B` and `A →ₐ [R] B`: The type of `A ⟶ B` is by definition `A →ₐ[R] B`, but not at reducible transparency. So it happens that one `rw` lemma transforms a term in a form, where the next `rw` expects `A →ₐ B`. By supplying explicit `show` lines (copying the output of the pretty-printer), Lean correctly re-synthesizes the type to be `A →ₐ B` and the `rw` succeeds. This def-eq abuse hence always causes issues in the case where a lemma from the non-category theoretic part of the library should be applied. An insightful example is the following proof excerpt from current master (proof of `AlgebraCat.adj`): ```lean import Mathlib.Algebra.Category.AlgebraCat.Basic open CategoryTheory AlgebraCat variable {R : Type u} [CommRing R] set_option pp.analyze true example : free.{u} R ⊣ forget (AlgebraCat.{u} R) := Adjunction.mkOfHomEquiv { homEquiv := fun _ _ => (FreeAlgebra.lift _).symm homEquiv_naturality_left_symm := by intro X Y Z f g apply FreeAlgebra.hom_ext ext x simp only [Equiv.symm_symm, Function.comp_apply, free_map] /- Eq (α := Z) (((FreeAlgebra.lift R) (f ≫ g) : Prefunctor.obj (Functor.toPrefunctor (free R)) X ⟶ Z) (FreeAlgebra.ι R x) : ↑Z) _ -/ erw [FreeAlgebra.lift_ι_apply] sorry homEquiv_naturality_right := sorry } ``` The `simp` lemma `FreeAlgebra.lift_ι_apply` expects an `AlgHom`, but as the `pp.analyze` shows, the type is synthesized as a `⟶`. With a show line before the `erw`, Lean correctly synthesizes the type as an `AlgHom` again and the `rw` succeeds. The solution is to strictly distinguish between `A ⟶ B` and `A →ₐ[R] B`: We define a new `AlgebraCat.Hom` structure with a single field `hom : A →ₐ[R] B`. The above proof is mostly solved by `ext; simp` then, except for the `ext` lemma `FreeAlgebra.hom_ext` not applying. This is because now the type is `AlgebraCat.of R (FreeAlgebra R X) →ₐ[R] _` and Lean can't see through the `AlgebraCat.of` at reducible transparency. Hence the solution is to make `AlgebraCat.of` an `abbrev`. Finally, the proof is `by ext; simp` or even `by aesop`. - `FunLike`: An intermediate design adapted the changes from the first point, but with keeping a `FunLike` and an `AlgHomClass` instance on `A ⟶ B`. This lead to many additional `coe` lemmas for composition of morphisms, where it mattered which of the three appearing terms of `AlgebraCat` where of the form `AlgebraCat.of R A`. Eric Wieser suggested to replace the `FunLike` by a `CoeFun` which is inlined, so an invocation of `f x` turns into `f.hom x`. This has then worked very smoothly. So the key points are: - Homs in concrete categories should be one-field structures to maintain a strict type distinction. - Use `CoeFun` instead of `FunLike`, since the latter is automatically inlined. - Make `.of` constructors an `abbrev` to obtain the def-eq `↑(AlgebraCat.of R A) = A` at reducible transparency. For more details, see the [Zulip discussion](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Fixing.20the.20.60erw.60.20hell.20around.20concrete.20categories). ESTIMATED CHANGES Modified Mathlib/Algebra/Category/AlgebraCat/Basic.lean - theorem AlgHom.comp_id_algebraCat - theorem AlgHom.id_algebraCat_comp + structure AlgebraCat.Hom - theorem AlgebraCat.coe_comp +/- theorem AlgebraCat.coe_of + theorem AlgebraCat.comp_apply + theorem AlgebraCat.forget_map + theorem AlgebraCat.forget_obj + theorem AlgebraCat.hom_comp + theorem AlgebraCat.hom_ext + theorem AlgebraCat.hom_id + theorem AlgebraCat.hom_inv_apply + theorem AlgebraCat.hom_ofHom +/- theorem AlgebraCat.id_apply + theorem AlgebraCat.inv_hom_apply - def AlgebraCat.of - def AlgebraCat.ofHom +/- theorem AlgebraCat.ofHom_apply + theorem AlgebraCat.ofHom_comp + theorem AlgebraCat.ofHom_hom + theorem AlgebraCat.ofHom_id Modified Mathlib/Algebra/Category/AlgebraCat/Limits.lean Modified Mathlib/Algebra/Category/AlgebraCat/Monoidal.lean Modified Mathlib/Algebra/Category/BialgebraCat/Basic.lean Modified Mathlib/CategoryTheory/Monoidal/Internal/Module.lean Modified Mathlib/LinearAlgebra/CliffordAlgebra/CategoryTheory.lean Added MathlibTest/CategoryTheory/ConcreteCategory/AlgebraCat.lean 2024-11-25 09:04:48 5fde9dc fix: escape line breaks in create adaptation PR (#19451) ESTIMATED CHANGES Modified scripts/create-adaptation-pr.sh 2024-11-25 09:04:47 31eae51 chore(discover-lean-pr-testing): only run on lean-toolchain changes (#19450) ESTIMATED CHANGES Modified .github/workflows/discover-lean-pr-testing.yml 2024-11-25 09:04:46 56428e8 fix(CI): checkout the script in the action (#19449) Previously, the script was failing, since the script was unavailable. ESTIMATED CHANGES Modified .github/workflows/maintainer_bors.yml 2024-11-25 09:04:44 454bc8a chore: split Order.Filter.Basic, creating Order.Filter.Finite (#19354) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Order/Filter/Bases.lean Modified Mathlib/Order/Filter/Basic.lean - theorem Filter.biInter_finset_mem + theorem Filter.biInter_mem' - theorem Filter.biInter_mem - theorem Filter.eventually_all - theorem Filter.eventually_all_finite - theorem Filter.eventually_all_finset - theorem Filter.eventually_imp_distrib_left - theorem Filter.exists_iInter_of_mem_iInf - theorem Filter.frequently_and_distrib_left - theorem Filter.frequently_and_distrib_right - theorem Filter.iInf_principal' - theorem Filter.iInf_principal - theorem Filter.iInf_principal_finite - theorem Filter.iInf_principal_finset - theorem Filter.iInf_sets_eq_finite' - theorem Filter.iInf_sets_eq_finite - theorem Filter.iInf_sets_induct + theorem Filter.iInter_mem' - theorem Filter.iInter_mem - theorem Filter.mem_generate_iff - theorem Filter.mem_iInf' - theorem Filter.mem_iInf - theorem Filter.mem_iInf_finite' - theorem Filter.mem_iInf_finite - theorem Filter.mem_iInf_finset - theorem Filter.mem_iInf_of_finite - theorem Filter.mem_iInf_of_iInter - theorem Filter.sInter_mem - theorem Finset.eventuallyEq_iInter - theorem Finset.eventuallyEq_iUnion - theorem Finset.eventuallyLE_iInter - theorem Finset.eventuallyLE_iUnion - theorem Pairwise.exists_mem_filter_of_disjoint - theorem Set.Finite.eventuallyEq_iInter - theorem Set.Finite.eventuallyEq_iUnion - theorem Set.Finite.eventuallyLE_iInter - theorem Set.Finite.eventuallyLE_iUnion - theorem Set.PairwiseDisjoint.exists_mem_filter Modified Mathlib/Order/Filter/CardinalInter.lean Modified Mathlib/Order/Filter/Cocardinal.lean Modified Mathlib/Order/Filter/CountableSeparatingOn.lean Modified Mathlib/Order/Filter/Extr.lean Added Mathlib/Order/Filter/Finite.lean + theorem Filter.biInter_finset_mem + theorem Filter.biInter_mem + theorem Filter.eventually_all + theorem Filter.eventually_all_finite + theorem Filter.eventually_all_finset + theorem Filter.eventually_imp_distrib_left + theorem Filter.exists_iInter_of_mem_iInf + theorem Filter.frequently_and_distrib_left + theorem Filter.frequently_and_distrib_right + theorem Filter.iInf_principal' + theorem Filter.iInf_principal + theorem Filter.iInf_principal_finite + theorem Filter.iInf_principal_finset + theorem Filter.iInf_sets_eq_finite' + theorem Filter.iInf_sets_eq_finite + theorem Filter.iInf_sets_induct + theorem Filter.iInter_mem + theorem Filter.mem_generate_iff + theorem Filter.mem_iInf' + theorem Filter.mem_iInf + theorem Filter.mem_iInf_finite' + theorem Filter.mem_iInf_finite + theorem Filter.mem_iInf_finset + theorem Filter.mem_iInf_of_finite + theorem Filter.mem_iInf_of_iInter + theorem Filter.sInter_mem + theorem Finset.eventuallyEq_iInter + theorem Finset.eventuallyEq_iUnion + theorem Finset.eventuallyLE_iInter + theorem Finset.eventuallyLE_iUnion + theorem Pairwise.exists_mem_filter_of_disjoint + theorem Set.Finite.eventuallyEq_iInter + theorem Set.Finite.eventuallyEq_iUnion + theorem Set.Finite.eventuallyLE_iInter + theorem Set.Finite.eventuallyLE_iUnion + theorem Set.PairwiseDisjoint.exists_mem_filter Modified Mathlib/Order/Filter/Germ/Basic.lean Modified Mathlib/Order/Filter/Subsingleton.lean Modified Mathlib/SetTheory/Cardinal/CountableCover.lean 2024-11-25 08:40:48 4eab2d4 feat: the free locus of a (finitely presented) module (#18691) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Module/FinitePresentation.lean + theorem FinitePresentation.of_isBaseChange Added Mathlib/Algebra/Module/FreeLocus.lean + theorem Module.basicOpen_subset_freeLocus_iff + theorem Module.comap_freeLocus_le + def Module.freeLocus + theorem Module.freeLocus_congr + theorem Module.freeLocus_eq_univ + theorem Module.freeLocus_eq_univ_iff + theorem Module.freeLocus_localization + theorem Module.isLocallyConstant_rankAtStalk + theorem Module.isLocallyConstant_rankAtStalk_freeLocus + theorem Module.isOpen_freeLocus + theorem Module.mem_freeLocus + theorem Module.mem_freeLocus_iff_tensor + theorem Module.mem_freeLocus_of_isLocalization + def Module.rankAtStalk Modified Mathlib/Algebra/Module/LocalizedModule/Basic.lean + theorem IsLocalizedModule.of_exists_mul_mem - theorem IsLocalizedModule.of_linearEquiv + theorem IsLocalizedModule.of_restrictScalars Modified Mathlib/LinearAlgebra/FreeModule/Basic.lean + theorem Module.Free.iff_of_ringEquiv + theorem Module.Free.of_ringEquiv Modified Mathlib/RingTheory/Finiteness/Basic.lean + theorem Submodule.FG.of_restrictScalars Modified Mathlib/RingTheory/LocalProperties/Projective.lean + theorem Module.finrank_of_isLocalizedModule_of_free + theorem Module.free_of_isLocalizedModule + theorem Module.lift_rank_of_isLocalizedModule_of_free 2024-11-25 08:25:35 a41d8f4 feat: trigger automated Zulip emojis via `bors x` command (#19371) Changes the way in which emoji reactions to `delegated`, `ready-to-merge` and `merged` are applied in Zulip: instead of running periodically a script to add the reactions, the reactions are now applied at the same time that the label is applied, or when PRs are merged into master. ESTIMATED CHANGES Modified .github/workflows/maintainer_bors.yml Modified .github/workflows/zulip_emoji_merge_delegate.yaml Modified scripts/README.md Modified scripts/zulip_emoji_merge_delegate.py 2024-11-25 07:56:44 55a97c9 chore(discover-lean-pr-testing): fix escaping hazard (#19448) ESTIMATED CHANGES Modified .github/workflows/discover-lean-pr-testing.yml 2024-11-25 07:23:24 aad267d chore(discover-lean-pr-testing): ignore stage0 PRs, more tracing (#19405) ESTIMATED CHANGES Modified .github/workflows/discover-lean-pr-testing.yml 2024-11-25 06:35:02 aa050b4 feat(bench_summary): report no significant changes and job_id (#18812) If the `!bench` summary contains no entry with a difference in instructions of at least 10^9, then the bot posts a message confirming this information, rather than silently failing. The bot also posts a link to the workflow CI run that generated the message. ESTIMATED CHANGES Modified .github/workflows/bench_summary_comment.yml Modified scripts/bench_summary.lean +/- def BenchAction.addBenchSummaryComment 2024-11-25 03:43:22 04044ff chore: move pointwise set files to `Algebra._.Pointwise` (#19002) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Algebra/Operations.lean Modified Mathlib/Algebra/Group/Pointwise/Finset/Basic.lean Modified Mathlib/Algebra/Group/Pointwise/Finset/Interval.lean Renamed Mathlib/Data/Set/Pointwise/BigOperators.lean to Mathlib/Algebra/Group/Pointwise/Set/BigOperators.lean Modified Mathlib/Algebra/Group/Pointwise/Set/Card.lean Renamed Mathlib/Data/Set/Pointwise/Finite.lean to Mathlib/Algebra/Group/Pointwise/Set/Finite.lean Renamed Mathlib/Data/Set/Pointwise/ListOfFn.lean to Mathlib/Algebra/Group/Pointwise/Set/ListOfFn.lean Renamed Mathlib/Data/Set/Pointwise/Interval.lean to Mathlib/Algebra/Order/Group/Pointwise/Interval.lean Modified Mathlib/Analysis/Normed/Field/Basic.lean Modified Mathlib/Data/Real/Cardinality.lean Modified Mathlib/GroupTheory/Finiteness.lean Modified Mathlib/LinearAlgebra/AffineSpace/AffineMap.lean Modified Mathlib/Topology/Algebra/Field.lean Modified Mathlib/Topology/Algebra/Order/Field.lean Modified Mathlib/Topology/MetricSpace/Pseudo/Real.lean 2024-11-25 03:22:16 386ab51 chore(Multilinear/Basic): address a porting note (#19443) ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/Multilinear/Basic.lean 2024-11-25 01:06:41 5a054ef chore: update Mathlib dependencies 2024-11-25 (#19446) This PR updates the Mathlib dependencies. ESTIMATED CHANGES Modified lake-manifest.json 2024-11-24 20:04:13 f28fa72 feat: introduce the missing notation for `AddHom` (#19387) I noticed that there is notation for a non-unital monoid hom but not for a non-unital additive monoid hom, and since I'm working on extensions of non-unital homomorphisms in my PR's on quantale, I found it natural to add this. ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Hom/Defs.lean 2024-11-24 13:54:52 6c22503 chore(AlgebraicGeometry) add `Scheme.Hom.appTop` (#19130) to hide the defeq abuse `f ⁻¹ᵁ ⊤ = ⊤` ESTIMATED CHANGES Modified Mathlib/AlgebraicGeometry/AffineScheme.lean + theorem AlgebraicGeometry.IsAffineOpen.isoSpec_hom_appTop - theorem AlgebraicGeometry.IsAffineOpen.isoSpec_hom_app_top + theorem AlgebraicGeometry.IsAffineOpen.isoSpec_inv_appTop - theorem AlgebraicGeometry.IsAffineOpen.isoSpec_inv_app_top +/- theorem AlgebraicGeometry.ext_of_isAffine Modified Mathlib/AlgebraicGeometry/AffineSpace.lean + theorem AlgebraicGeometry.AffineSpace.SpecIso_hom_appTop - theorem AlgebraicGeometry.AffineSpace.SpecIso_hom_app_top + theorem AlgebraicGeometry.AffineSpace.SpecIso_inv_appTop_coord - theorem AlgebraicGeometry.AffineSpace.SpecIso_inv_app_top_coord + theorem AlgebraicGeometry.AffineSpace.homOfVector_appTop_coord - theorem AlgebraicGeometry.AffineSpace.homOfVector_app_top_coord + theorem AlgebraicGeometry.AffineSpace.isoOfIsAffine_hom_appTop - theorem AlgebraicGeometry.AffineSpace.isoOfIsAffine_hom_app_top + theorem AlgebraicGeometry.AffineSpace.isoOfIsAffine_inv_appTop_coord - theorem AlgebraicGeometry.AffineSpace.isoOfIsAffine_inv_app_top_coord + theorem AlgebraicGeometry.AffineSpace.map_appTop_coord - theorem AlgebraicGeometry.AffineSpace.map_app_top_coord + theorem AlgebraicGeometry.AffineSpace.reindex_appTop_coord - theorem AlgebraicGeometry.AffineSpace.reindex_app_top_coord Modified Mathlib/AlgebraicGeometry/GammaSpecAdjunction.lean + theorem AlgebraicGeometry.Scheme.toSpecΓ_appTop - theorem AlgebraicGeometry.Scheme.toSpecΓ_app_top Modified Mathlib/AlgebraicGeometry/Morphisms/Affine.lean Modified Mathlib/AlgebraicGeometry/Morphisms/AffineAnd.lean Modified Mathlib/AlgebraicGeometry/Morphisms/ClosedImmersion.lean Modified Mathlib/AlgebraicGeometry/Morphisms/Finite.lean Modified Mathlib/AlgebraicGeometry/Morphisms/IsIso.lean Modified Mathlib/AlgebraicGeometry/Morphisms/RingHomProperties.lean + theorem AlgebraicGeometry.HasRingHomProperty.appTop - theorem AlgebraicGeometry.HasRingHomProperty.app_top + theorem RingHom.IsStableUnderBaseChange.pullback_fst_appTop - theorem RingHom.IsStableUnderBaseChange.pullback_fst_app_top Modified Mathlib/AlgebraicGeometry/Morphisms/SurjectiveOnStalks.lean Modified Mathlib/AlgebraicGeometry/Restrict.lean + theorem AlgebraicGeometry.Scheme.Opens.ι_appTop + theorem AlgebraicGeometry.Scheme.homOfLE_appTop + theorem AlgebraicGeometry.morphismRestrict_appTop Modified Mathlib/AlgebraicGeometry/Scheme.lean + theorem AlgebraicGeometry.Scheme.comp_appTop + theorem AlgebraicGeometry.Scheme.id_appTop + theorem AlgebraicGeometry.Scheme.inv_appTop - theorem AlgebraicGeometry.Scheme.inv_app_top + theorem AlgebraicGeometry.Scheme.preimage_basicOpen_top +/- theorem AlgebraicGeometry.Scheme.Γ_map +/- theorem AlgebraicGeometry.Scheme.Γ_map_op Modified Mathlib/AlgebraicGeometry/Stalk.lean + theorem AlgebraicGeometry.Scheme.fromSpecStalk_appTop Modified Mathlib/AlgebraicGeometry/ValuativeCriterion.lean 2024-11-24 10:18:35 83ce5b0 feat(CategoryTheory/Over): more API for `post` (#19312) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Comma/Over.lean + def CategoryTheory.Over.mapCongr + def CategoryTheory.Over.mapIso + theorem CategoryTheory.Over.mapIso_functor + theorem CategoryTheory.Over.mapIso_inverse + def CategoryTheory.Over.opEquivOpUnder + def CategoryTheory.Over.opToOpUnder + def CategoryTheory.Over.opToUnderOp + def CategoryTheory.Over.postComp + def CategoryTheory.Over.postCongr + def CategoryTheory.Over.postEquiv + def CategoryTheory.Over.postMap + theorem CategoryTheory.Over.post_comp + def CategoryTheory.Under.mapCongr + def CategoryTheory.Under.mapIso + theorem CategoryTheory.Under.mapIso_functor + theorem CategoryTheory.Under.mapIso_inverse + def CategoryTheory.Under.opEquivOpOver + def CategoryTheory.Under.opToOpOver + def CategoryTheory.Under.opToOverOp + def CategoryTheory.Under.postComp + def CategoryTheory.Under.postCongr + def CategoryTheory.Under.postEquiv + def CategoryTheory.Under.postMap + theorem CategoryTheory.Under.post_comp 2024-11-24 07:24:05 3ece930 chore: import Plausible in Tactic.Common (#19429) ESTIMATED CHANGES Modified Mathlib/Tactic/Common.lean 2024-11-24 00:16:54 13f8b50 chore(scripts): update nolints.json (#19428) I am happy to remove some nolints for you! ESTIMATED CHANGES Modified scripts/nolints.json 2024-11-23 23:31:35 7e36515 feat: more `bound` lemmas (#19285) From LeanAPAP ESTIMATED CHANGES Modified Mathlib/Algebra/Order/GroupWithZero/Unbundled.lean 2024-11-23 22:52:24 b5155f3 chore: more simpNF cleanup (#19395) ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/Multilinear/Basic.lean - theorem MultilinearMap.curryFinFinset_apply_const_aux - theorem MultilinearMap.curryFinFinset_symm_apply_piecewise_const_aux Modified Mathlib/NumberTheory/Modular.lean Modified Mathlib/NumberTheory/ModularForms/SlashActions.lean + theorem ModularForm.is_invariant_one' Modified Mathlib/NumberTheory/Padics/PadicIntegers.lean +/- theorem PadicInt.intCast_eq +/- theorem PadicInt.mk_coe +/- theorem PadicInt.norm_p_pow + theorem PadicInt.not_isUnit_iff Modified Mathlib/NumberTheory/Padics/RingHoms.lean Modified Mathlib/Order/Closure.lean Modified Mathlib/Order/Compare.lean Modified Mathlib/Order/Filter/Germ/Basic.lean Modified Mathlib/Order/Filter/Pointwise.lean +/- theorem Filter.pure_div_pure +/- theorem Filter.pure_mul_pure +/- theorem Filter.pure_smul_pure +/- theorem Filter.pure_vsub_pure Modified Mathlib/Order/Heyting/Basic.lean Modified Mathlib/Order/Interval/Basic.lean Modified Mathlib/Order/LiminfLimsup.lean Modified Mathlib/Order/SupIndep.lean Modified Mathlib/RingTheory/DedekindDomain/SInteger.lean Modified Mathlib/RingTheory/Ideal/Operations.lean Modified Mathlib/RingTheory/Valuation/Basic.lean Modified Mathlib/RingTheory/Valuation/ValuationSubring.lean 2024-11-23 20:34:16 9b9e6ff feat(NumberTheory/Padics): Mahler coeffs tend to 0 (#19340) This adds the key technical lemma in the proof of Mahler's theorem characterising continuous functions on Zp: for any continuous function, the iterated forward differences at 0 tend to zero. ESTIMATED CHANGES Modified Mathlib/NumberTheory/Padics/MahlerBasis.lean + theorem IsUltrametricDist.norm_fwdDiff_iter_apply_le + theorem PadicInt.fwdDiff_iter_le_of_forall_le + theorem PadicInt.fwdDiff_tendsto_zero Modified docs/references.bib 2024-11-23 20:25:40 de26fff feat(NumberTheory/LSeries/PrimesInAP): more properties of von Mangoldt on residue classes (#19418) This continues the sequence of PRs on the way to **Dirichlet's Theorem**. This one adds some properties of the von Mangoldt function `Λ` restricted to a residue class: if further restricted to primes, its support is the set of primes in that residue class, and the function `n ↦ Λ n / n`, restriced to non-primes in a residue class, is summable (the latter will be important in deducing information on the former). See [here](https://leanprover.zulipchat.com/#narrow/channel/144837-PR-reviews/topic/Prerequisites.20for.20PNT.20and.20Dirichlet's.20Thm/near/483904451) on Zulip. ESTIMATED CHANGES Modified Mathlib/NumberTheory/LSeries/PrimesInAP.lean + theorem ArithmeticFunction.vonMangoldt.summable_residueClass_non_primes_div + theorem ArithmeticFunction.vonMangoldt.support_residueClass_prime_div 2024-11-23 19:55:50 fee45b6 feat(AlgebraicGeometry): the domain of definition of a rational map (#18803) ESTIMATED CHANGES Modified Mathlib/AlgebraicGeometry/AffineSpace.lean Modified Mathlib/AlgebraicGeometry/Limits.lean Modified Mathlib/AlgebraicGeometry/Morphisms/Separated.lean + theorem AlgebraicGeometry.ext_of_isDominant_of_isSeparated' Modified Mathlib/AlgebraicGeometry/Over.lean + theorem AlgebraicGeometry.Scheme.Hom.isOver_iff Modified Mathlib/AlgebraicGeometry/RationalMap.lean + theorem AlgebraicGeometry.Scheme.PartialMap.Opens.isDominant_homOfLE + theorem AlgebraicGeometry.Scheme.PartialMap.Opens.isDominant_ι + theorem AlgebraicGeometry.Scheme.PartialMap.equiv_iff_of_domain_eq_of_isSeparated + theorem AlgebraicGeometry.Scheme.PartialMap.equiv_iff_of_isSeparated + theorem AlgebraicGeometry.Scheme.PartialMap.equiv_iff_of_isSeparated_of_le + theorem AlgebraicGeometry.Scheme.PartialMap.equiv_toPartialMap_iff_of_isSeparated + theorem AlgebraicGeometry.Scheme.PartialMap.exists_restrict_isOver + theorem AlgebraicGeometry.Scheme.PartialMap.isOver_iff + theorem AlgebraicGeometry.Scheme.PartialMap.isOver_iff_eq_restrict + theorem AlgebraicGeometry.Scheme.PartialMap.isOver_toRationalMap_iff_of_isSeparated + theorem AlgebraicGeometry.Scheme.PartialMap.le_domain_toRationalMap + theorem AlgebraicGeometry.Scheme.PartialMap.toPartialMap_toRationalMap_restrict + theorem AlgebraicGeometry.Scheme.RationalMap.dense_domain + def AlgebraicGeometry.Scheme.RationalMap.domain + def AlgebraicGeometry.Scheme.RationalMap.equivFunctionFieldOver + theorem AlgebraicGeometry.Scheme.RationalMap.exists_partialMap_over + theorem AlgebraicGeometry.Scheme.RationalMap.isOver_iff + theorem AlgebraicGeometry.Scheme.RationalMap.mem_domain + def AlgebraicGeometry.Scheme.RationalMap.openCoverDomain + def AlgebraicGeometry.Scheme.RationalMap.toPartialMap + theorem AlgebraicGeometry.Scheme.RationalMap.toRationalMap_toPartialMap Modified Mathlib/AlgebraicGeometry/Restrict.lean + theorem AlgebraicGeometry.isPullback_opens_inf + theorem AlgebraicGeometry.isPullback_opens_inf_le Modified Mathlib/CategoryTheory/Comma/OverClass.lean 2024-11-23 19:35:47 571c282 chore: remove unused `Category` assumption (#19416) The `Category` assumption is unused, as `Discrete` subsumes it. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Groupoid/Discrete.lean 2024-11-23 15:57:51 cc6b7ff feat: `s⁻¹.encard = s.encard` (#19400) From Kneser (LeanCamCombi) ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Pointwise/Set/Card.lean + theorem Set.encard_inv + theorem Set.encard_smul_set + theorem Set.ncard_inv + theorem Set.ncard_smul_set 2024-11-23 14:58:16 6343082 feat: Sedrakyan's lemma (#19311) This is a specialization of the Cauchy-Schwarz inequality which is often useful in math olympiad problems. In order to prove it in general ordered semifields, we have to show slightly more general forms of the AM-GM and Cauchy-Schwarz inequalities, which indirectly work with square roots. ESTIMATED CHANGES Modified Mathlib/Algebra/Order/BigOperators/Ring/Finset.lean + theorem Finset.sq_sum_div_le_sum_sq_div +/- theorem Finset.sum_mul_self_eq_zero_iff +/- theorem Finset.sum_mul_sq_le_sq_mul_sq + theorem Finset.sum_sq_le_sum_mul_sum_of_sq_eq_mul Modified Mathlib/Algebra/Order/Ring/Unbundled/Basic.lean + theorem two_mul_le_add_of_sq_eq_mul 2024-11-23 14:58:15 1620b76 feat(AlgebraicGeometry): preimmersions are stable under base change (#18915) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/AlgebraicGeometry/Cover/MorphismProperty.lean + theorem AlgebraicGeometry.Scheme.Cover.exists_eq Modified Mathlib/AlgebraicGeometry/Morphisms/ClosedImmersion.lean Modified Mathlib/AlgebraicGeometry/Morphisms/Preimmersion.lean - theorem AlgebraicGeometry.Scheme.Hom.stalkMap_surjective Added Mathlib/AlgebraicGeometry/Morphisms/SurjectiveOnStalks.lean + theorem AlgebraicGeometry.Scheme.Hom.stalkMap_surjective + theorem AlgebraicGeometry.SurjectiveOnStalks.Spec_iff + theorem AlgebraicGeometry.SurjectiveOnStalks.eq_stalkwise + theorem AlgebraicGeometry.SurjectiveOnStalks.iff_of_isAffine + theorem AlgebraicGeometry.SurjectiveOnStalks.isEmbedding_pullback + theorem AlgebraicGeometry.SurjectiveOnStalks.of_comp Modified Mathlib/AlgebraicGeometry/Scheme.lean + theorem AlgebraicGeometry.Scheme.Hom.homeomorph_apply + theorem AlgebraicGeometry.Scheme.homeoOfIso_apply + theorem AlgebraicGeometry.Scheme.homeoOfIso_symm Modified Mathlib/Topology/LocalAtTarget.lean + theorem isEmbedding_of_iSup_eq_top_of_preimage_subset_range 2024-11-23 14:14:53 2abe270 chore: rename `Set.nonempty_of_nonempty_subtype` to `Set.Nonempty.of_subtype` (#19408) This is shorter and allows anonymous dot notation. From GrowthInGroups (LeanCamCombi) ESTIMATED CHANGES Modified Mathlib/Data/ENat/Lattice.lean Modified Mathlib/Data/Set/Basic.lean + theorem Set.Nonempty.of_subtype - theorem Set.nonempty_of_nonempty_subtype Modified Mathlib/Data/Set/Image.lean Modified Mathlib/GroupTheory/PGroup.lean 2024-11-23 14:14:52 d6a85bb feat(Polynomial): `p.natDegree = q.natDegree` if `p.degree = q.degree` (#19402) Also generalise `natDegree_lt_natDegree` to two rings From GrowthInGroups (LeanCamCombi) ESTIMATED CHANGES Modified Mathlib/Algebra/Polynomial/Degree/Operations.lean + theorem Polynomial.natDegree_eq_natDegree +/- theorem Polynomial.natDegree_lt_natDegree 2024-11-23 13:41:16 53fa3b7 chore: rename *of_smul_regular lemmas (#19326) ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/Dimension/Basic.lean + theorem rank_le_of_isSMulRegular - theorem rank_le_of_smul_regular Modified Mathlib/LinearAlgebra/Dimension/StrongRankCondition.lean + theorem LinearMap.finrank_le_of_isSMulRegular - theorem LinearMap.finrank_le_of_smul_regular Modified Mathlib/LinearAlgebra/RootSystem/Finite/Nondegenerate.lean 2024-11-23 13:41:14 6f5a576 feat: add "new file" markers to import reports (#19274) Flagging new files should help in identifying why some files appear to have increased the number of imports, when creating new files. This was suggested in #19194. ESTIMATED CHANGES Modified scripts/import_trans_difference.sh 2024-11-23 13:41:13 1b79c7d feat(CategoryTheory): add `Pi.map_isIso` and `hasProductsOfShape_of_hasProducts` + duals (#19195) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Limits/Shapes/Products.lean 2024-11-23 13:41:12 a4de385 feat(CategoryTheory): add some API for countable products and countable filtered colimits (#19192) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Limits/Shapes/Countable.lean + theorem CategoryTheory.Limits.IsCofiltered.sequentialFunctor_initial_aux + theorem CategoryTheory.Limits.IsCofiltered.sequentialFunctor_map + theorem CategoryTheory.Limits.IsFiltered.sequentialFunctor_final_aux + theorem CategoryTheory.Limits.IsFiltered.sequentialFunctor_map - theorem CategoryTheory.Limits.sequentialFunctor_initial_aux - theorem CategoryTheory.Limits.sequentialFunctor_map Modified Mathlib/Topology/Category/LightProfinite/Basic.lean 2024-11-23 13:41:11 b738c67 feat(Data/Nat/Nth): `nth p n ≠ 0` lemmas (#19142) Add a few small lemmas that are convenient when working with `Nat.nth`, when you have a hypothesis of the form `nth p n ≠ 0`. ```lean lemma lt_toFinset_card_of_nth_ne_zero {n : ℕ} (h : nth p n ≠ 0) (hf : (setOf p).Finite) : n < hf.toFinset.card := by ``` ```lean lemma nth_mem_of_ne_zero {n : ℕ} (h : nth p n ≠ 0) : p (Nat.nth p n) := ``` ```lean lemma nth_ne_zero_anti (h₀ : ¬p 0) {a b : ℕ} (hab : a ≤ b) (hb : nth p b ≠ 0) : nth p a ≠ 0 := ``` ESTIMATED CHANGES Modified Mathlib/Data/Nat/Nth.lean + theorem Nat.lt_card_toFinset_of_nth_ne_zero + theorem Nat.nth_mem_of_ne_zero + theorem Nat.nth_ne_zero_anti 2024-11-23 13:41:10 76b6113 feat(Ergodic): add `zero_measure` constructors (#19045) ESTIMATED CHANGES Modified Mathlib/Dynamics/Ergodic/Ergodic.lean + theorem Ergodic.zero_measure + theorem PreErgodic.zero_measure + theorem QuasiErgodic.zero_measure 2024-11-23 13:41:09 22a386f feat(RingTheory/DedekindDomain/IntegralClosure): Added `IsIntegralClosure.finite` (#18842) Let A be a Noetherian integrally closed domain with fraction field K. Let L/K be a finite separable field extension. Then the integral closure of A in L is finite over A. The proof immediately follows from `IsIntegralClosure.isNoetherian`. ESTIMATED CHANGES Modified Mathlib/RingTheory/DedekindDomain/IntegralClosure.lean + theorem IsIntegralClosure.finite 2024-11-23 13:12:27 142886c chore(RingTheory/PrincipalIdealDomain): update module docs (#19361) The module documentation for `RingTheory.PrincipalIdealDomain` was out of date, listing definitions that have been renamed and moved. ESTIMATED CHANGES Modified Mathlib/RingTheory/PrincipalIdealDomain.lean 2024-11-23 13:12:26 64cf70a feat: `DecidableEq` instance for quotient groups (#19258) Hard to believe this is missing, but you can check for yourself: ``` import Mathlib variable {α : Type*} [Group α] (s : Subgroup α) [DecidablePred (· ∈ s)] #synth DecidableEq (α ⧸ s) ``` From GrowthInGroups ESTIMATED CHANGES Modified Mathlib/GroupTheory/Coset/Defs.lean 2024-11-23 13:04:00 09a053e feat(NumberTheory/LSeries/PrimesInAP): von Mangoldt restricted to a residue class (#19368) This is the next step on the way to **Dirichlet's Theorem**. It defines `ArithmeticFunction.vonMangoldt.residueClass` as the function that is the von Mangoldt function on a given residue class and zero outside and proves some facts about it (in particular that it is a linear combination of twists of the von Mangoldt function by Dirichlet characters). See [here](https://leanprover.zulipchat.com/#narrow/channel/144837-PR-reviews/topic/Prerequisites.20for.20PNT.20and.20Dirichlet's.20Thm/near/483785853) on Zulip. The large import increase is caused by the need for more material to be able to state and prove the new things. ESTIMATED CHANGES Modified Mathlib/NumberTheory/LSeries/PrimesInAP.lean + theorem ArithmeticFunction.vonMangoldt.LSeries_residueClass_eq + theorem ArithmeticFunction.vonMangoldt.abscissaOfAbsConv_residueClass_le_one + theorem ArithmeticFunction.vonMangoldt.residueClass_apply + theorem ArithmeticFunction.vonMangoldt.residueClass_apply_zero + theorem ArithmeticFunction.vonMangoldt.residueClass_eq + theorem ArithmeticFunction.vonMangoldt.residueClass_le + theorem ArithmeticFunction.vonMangoldt.residueClass_nonneg 2024-11-23 11:01:40 0b15a0d feat: independence of functions under conditioning (#17915) From PFR ESTIMATED CHANGES Modified Mathlib/Analysis/SpecificLimits/Basic.lean Modified Mathlib/Data/ENNReal/Inv.lean + theorem ENNReal.prod_inv_distrib Modified Mathlib/MeasureTheory/Function/LpSpace.lean Modified Mathlib/MeasureTheory/Integral/Bochner.lean Modified Mathlib/Probability/ConditionalProbability.lean Modified Mathlib/Probability/Independence/Basic.lean + theorem ProbabilityTheory.cond_iInter + theorem ProbabilityTheory.iIndepFun.cond Modified Mathlib/Probability/Independence/Kernel.lean + theorem ProbabilityTheory.Kernel.iIndepFun.cond_iInter 2024-11-23 09:53:38 d1d52a6 chore: update Mathlib dependencies 2024-11-23 (#19396) This PR updates the Mathlib dependencies. ESTIMATED CHANGES Modified lake-manifest.json 2024-11-23 09:23:50 25a3b65 feature(Order/SupClosed): Add lemmas for inserting upper or lower bounds into a Sup/Inf closed set (#18740) Add lemmas for inserting upper or lower bounds into a Sup/Inf closed set. e.g. When `s` is sup closed, so is `s` with `⊤` or `⊥` appended. Similarly for `s` inf closed. ESTIMATED CHANGES Modified Mathlib/Order/SupClosed.lean + theorem InfClosed.insert_lowerBounds + theorem InfClosed.insert_upperBounds + theorem SupClosed.insert_lowerBounds + theorem SupClosed.insert_upperBounds 2024-11-23 09:01:50 4fd77b8 chore: missing MvPolynomial.eval lemmas (#19356) Revealed by a new user question on [zulip](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Adding.20more.20examples.20to.20mathlib/near/483822621). ESTIMATED CHANGES Modified Mathlib/Algebra/MvPolynomial/Basic.lean + theorem MvPolynomial.aevalTower_ofNat + theorem MvPolynomial.aeval_ofNat + theorem MvPolynomial.eval_ofNat + theorem MvPolynomial.eval₂_natCast + theorem MvPolynomial.eval₂_ofNat 2024-11-23 08:46:42 ba61bf3 chore(CategoryTheory.ConcreteCategory): inline `ConcreteCategory.forget` (#19217) We already make `forget` `reducible` and further declarations downstream of it `abbrev`'s. It makes sense to `inline` it also to avoid Lean noticing it. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/ConcreteCategory/Basic.lean 2024-11-23 08:16:23 8eedc61 chore(discover-lean-pr-testing): better tracing, better output formatting (#19392) ESTIMATED CHANGES Modified .github/workflows/discover-lean-pr-testing.yml 2024-11-23 08:16:22 bcc3ed6 feat: add Algebra.compHom and related lemma (#18404) Add some simple definition and lemmas to construct Algebra structure from Algebra on another equivalent ring. As preparation for the [following result](https://github.com/mbkybky/GaloisRamification/blob/1070c2f8c3359e891d29e30b3e7185d5abc78a86/GaloisRamification/ToMathlib/IsGalois.lean#L111): If `K` and `K'` are fraction rings of `A`, and `L` and `L'` are fraction rings of `B`, then `IsGalois K L` implies `IsGalois K' L'`. ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/Defs.lean + theorem Algebra.compHom_algebraMap_apply + theorem Algebra.compHom_algebraMap_eq + theorem Algebra.compHom_smul_def + theorem RingHom.algebraMap_toAlgebra' + theorem RingHom.smul_toAlgebra' 2024-11-23 08:16:21 84d03da feat(LinearAlgebra/QuadraticForm/Basic): weaken invertibility hypothesis on 2 (#14986) The aim of this is to eventually enable base-change of quadratic maps from a (not necessarily (torsion-)free) abelian group to an abelian group on which 2 is invertible (e.g., the real numbers). The current set-up requires 2 to be invertible in the base ring (which would be the integers in the situation above). This PR weakens the assumption for the definition of `QuadraticMap.associatedHom` and `QuadraticMap.associated` from `[Invertible (2 : R)]` to `[Invertible (2 : Module.End R N)]`, where `N` is the target module of he quadratic map. See [this discussion](https://leanprover.zulipchat.com/#narrow/stream/217875-Is-there-code-for-X.3F/topic/Quadratic.20forms.20with.20values.20in.20a.20larger.20ring/near/450582700) on Zulip. On the way, we fix some mistakes in docstrings. ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/QuadraticForm/Basic.lean +/- def QuadraticMap.associatedHom +/- theorem QuadraticMap.associated_apply + theorem QuadraticMap.associated_flip +/- theorem QuadraticMap.associated_isSymm + theorem QuadraticMap.associated_left_inverse' +/- theorem QuadraticMap.associated_left_inverse +/- theorem QuadraticMap.associated_linMulLin +/- theorem QuadraticMap.associated_sq +/- theorem QuadraticMap.associated_toQuadraticMap + theorem QuadraticMap.half_moduleEnd_apply_eq_half_smul Modified Mathlib/LinearAlgebra/QuadraticForm/Dual.lean 2024-11-23 07:36:13 dde4596 chore: cleanup of many set_option deprecated.linter false (#19181) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/AddTorsor.lean - theorem Equiv.injective_pointReflection_left_of_injective_bit0 + theorem Equiv.injective_pointReflection_left_of_injective_two_nsmul - theorem Equiv.pointReflection_fixed_iff_of_injective_bit0 + theorem Equiv.pointReflection_fixed_iff_of_injective_two_nsmul Modified Mathlib/Algebra/BigOperators/Group/List.lean Modified Mathlib/Algebra/GroupWithZero/Units/Basic.lean +/- theorem div_mul_right Modified Mathlib/Algebra/Ring/Parity.lean Modified Mathlib/Data/FP/Basic.lean Modified Mathlib/Data/List/Basic.lean Modified Mathlib/Data/List/Range.lean Modified Mathlib/Data/Multiset/Basic.lean Modified Mathlib/Data/Nat/Defs.lean Modified Mathlib/Data/Num/Lemmas.lean Modified Mathlib/Data/Num/Prime.lean Renamed Mathlib/Data/LazyList/Basic.lean to Mathlib/Deprecated/LazyList.lean Modified Mathlib/GroupTheory/SpecificGroups/Alternating.lean Modified Mathlib/LinearAlgebra/AffineSpace/AffineEquiv.lean - theorem AffineEquiv.injective_pointReflection_left_of_injective_bit0 + theorem AffineEquiv.injective_pointReflection_left_of_injective_two_nsmul - theorem AffineEquiv.pointReflection_fixed_iff_of_injective_bit0 + theorem AffineEquiv.pointReflection_fixed_iff_of_injective_two_nsmul Modified Mathlib/LinearAlgebra/CliffordAlgebra/Grading.lean Modified Mathlib/LinearAlgebra/ExteriorAlgebra/Grading.lean Modified Mathlib/Logic/Denumerable.lean Modified Mathlib/Logic/Equiv/Nat.lean Modified Mathlib/MeasureTheory/Measure/MeasureSpaceDef.lean Modified Mathlib/ModelTheory/Encoding.lean Modified Mathlib/Order/OmegaCompletePartialOrder.lean Modified Mathlib/Order/RelClasses.lean Modified Mathlib/SetTheory/Cardinal/Aleph.lean Modified Mathlib/SetTheory/Cardinal/Cofinality.lean Modified scripts/noshake.json 2024-11-23 06:55:59 4091371 fix(Tactic/Linter): `upstreamableDecl` should treat `structure`s like `def`s (#19360) Reported on Zulip: https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/upstreamableDecl.20linter.20bug/near/483790949 We want to treat a `structure`/`inductive` declaration in the current file just like a `def` for the `upstreamableDecl` linter: potentially place a warning on the `structure` itself, but otherwise don't place warnings on downstream uses. There's a small complication where `inductive` declarations are reported to depend on their own constructors. I couldn't find a good way to determine whether any given constant is indeed a constructor declared in some given piece of syntax, so instead we allow depending on constructors just like we allow depending on theorems. ESTIMATED CHANGES Modified Mathlib/Tactic/Linter/UpstreamableDecl.lean - def Lean.Environment.localDefDependencies + def Lean.Environment.localDefinitionDependencies Modified MathlibTest/MinImports.lean + inductive ProposeToMoveThisInductive + structure ProposeToMoveThisStructure + theorem theorem_with_local_inductive 2024-11-23 06:55:58 4b6c6f8 chore: cleanup of nolint simpNF (#19061) ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/Unitization.lean Modified Mathlib/Algebra/BigOperators/Finsupp.lean + theorem Finsupp.if_mem_support - theorem Finsupp.sum_ite_self_eq_aux Modified Mathlib/Algebra/Group/WithOne/Basic.lean Modified Mathlib/Algebra/Homology/ShortComplex/Homology.lean Modified Mathlib/Algebra/Homology/ShortComplex/LeftHomology.lean Modified Mathlib/Algebra/Homology/ShortComplex/RightHomology.lean Modified Mathlib/Algebra/Lie/IdealOperations.lean Modified Mathlib/Algebra/Module/GradedModule.lean Modified Mathlib/Algebra/Module/Submodule/Pointwise.lean Modified Mathlib/Algebra/MvPolynomial/Basic.lean Modified Mathlib/Algebra/Ring/Semiconj.lean +/- theorem SemiconjBy.neg_one_left +/- theorem SemiconjBy.neg_one_right Modified Mathlib/Algebra/Star/Subsemiring.lean Modified Mathlib/RingTheory/DedekindDomain/Ideal.lean 2024-11-23 06:30:20 ff064a5 chore: change `pp_nodot` adaptation note links to lean4 issue #1910 to refer to lean4 issue #6178 instead (#19385) These adaptation notes refer to the `pp_nodot` attribute not doing anything on certain declarations, due to their inability to be used with dot notation. However, now that leanprover/lean4#1910 has been fixed, the limiting factor has become the fact that the pretty printer doesn't work for these kinds of dot notation, which leanprover/lean4#6178 is an issue for. As such, the links to the blocking lean issue have been changed in this PR. ESTIMATED CHANGES Modified Mathlib/Algebra/Symmetrized.lean Modified Mathlib/Data/NNReal/Defs.lean Modified Mathlib/Data/Real/Sqrt.lean 2024-11-23 06:30:18 02990e4 chore(Algebra/Module/Torsion): change adaptation note links to lean4 issue #1910 to refer to lean4 issue #1629 instead (#19381) These notes refer to the fact that `LinearMap.ker` and friends cannot be used as `f.ker`. However, this fails not because the function `LinearMap.ker` needs to be coerced to a proper function (which the issue leanprover/lean4#1910 is about), but because the argument `f` has a type (`LinearMap`) that doesn't occur directly as type of an argument to `LinearMap.ker`. The issue leanprover/lean4#1629 *does* suggest a fix for this. ESTIMATED CHANGES Modified Mathlib/Algebra/Module/Torsion.lean Modified Mathlib/LinearAlgebra/Dual.lean 2024-11-23 06:30:17 1ef6e44 feat: image of any interval under `affineHomeomorph` (#19301) ESTIMATED CHANGES Modified Mathlib/Data/Set/Pointwise/Interval.lean + theorem Set.image_affine_Ico + theorem Set.image_affine_Ioc + theorem Set.image_affine_Ioo + theorem Set.image_mul_left_Ico + theorem Set.image_mul_left_Ioc + theorem Set.image_mul_right_Ico + theorem Set.image_mul_right_Ioc Modified Mathlib/Topology/Algebra/Field.lean + theorem affineHomeomorph_image_Icc + theorem affineHomeomorph_image_Ico + theorem affineHomeomorph_image_Ioc + theorem affineHomeomorph_image_Ioo 2024-11-23 06:30:16 f700f82 feat(FieldTheory): minimal polynomials determine an algebraic extension (Isaacs 1980) (#18412) If E/F is an algebraic extension and K/F is an arbitrary extension, and if the minimal polynomial of every element of E over F has a root in K, we show there exists an F-embedding from E into K. If E/F and K/F have the same set of minimal polynomials, they are then isomorphic. Another corollary is that an algebraic extension E/F is an algebraic closure if every (monic irreducible) polynomial in F[X] has a root in E. These results are proven in FieldTheory/Isaacs. An important definition (`IsExtendible`) and two important lemmas towards these theorems concern `IntermediateField.Lifts` and reside in FieldTheory/Extension. The lemmas say that the supremum of a chain of extendible lifts is also extendible, and that a lift with full domain exists if the bottom lift is extendible. We do slight refactoring to extract `Lifts.union`, and provide new API lemmas for Lifts. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/FieldTheory/Extension.lean + def IntermediateField.Lifts.IsExtendible + theorem IntermediateField.Lifts.carrier_union + theorem IntermediateField.Lifts.eq_iff + theorem IntermediateField.Lifts.eq_iff_le_carrier_eq +/- theorem IntermediateField.Lifts.exists_lift_of_splits' +/- theorem IntermediateField.Lifts.exists_lift_of_splits +/- theorem IntermediateField.Lifts.exists_upper_bound + theorem IntermediateField.Lifts.le_iff + theorem IntermediateField.Lifts.le_of_carrier_le_iSup + theorem IntermediateField.Lifts.le_union + theorem IntermediateField.Lifts.lt_iff + theorem IntermediateField.Lifts.lt_iff_le_carrier_ne + theorem IntermediateField.Lifts.nonempty_algHom_of_exist_lifts_finset + theorem IntermediateField.Lifts.union_isExtendible Modified Mathlib/FieldTheory/IsAlgClosed/Basic.lean Added Mathlib/FieldTheory/Isaacs.lean + theorem Field.nonempty_algEquiv_of_aeval_eq_zero_eq + theorem Field.nonempty_algEquiv_of_range_minpoly_eq + theorem Field.nonempty_algHom_of_aeval_eq_zero_subset + theorem Field.nonempty_algHom_of_exist_roots + theorem Field.nonempty_algHom_of_minpoly_eq + theorem Field.nonempty_algHom_of_range_minpoly_subset + theorem IsAlgClosure.of_exist_roots Modified docs/references.bib 2024-11-23 05:51:58 a7f12ad chore(Order/FixedPoints): remove adaptation notes for OrderHom regarding lean4 issue #1910 (#19380) this PR removes 3 porting notes regarding lean4 issue leanprover/lean4#1910, and makes adaptations to mathlib to make use of the newly working notation. Concretely, that means that `OrderHom.lfp f` now is written `f.lfp`, and similar for `OrderHom.dual` and `OrderHom.gfp`. there might still be some `dual x` application left inside code with `open OrderHom`, but those are hard to filter for with grep, as there are many declarations named `dual` in different namespaces. ESTIMATED CHANGES Modified Mathlib/Order/FixedPoints.lean +/- theorem OrderHom.gfp_const_inf_le +/- theorem OrderHom.gfp_gfp +/- theorem OrderHom.gfp_induction +/- theorem OrderHom.gfp_le +/- theorem OrderHom.gfp_le_map +/- theorem OrderHom.isFixedPt_gfp +/- theorem OrderHom.isFixedPt_lfp +/- theorem OrderHom.isGreatest_gfp +/- theorem OrderHom.isGreatest_gfp_le +/- theorem OrderHom.isLeast_lfp +/- theorem OrderHom.isLeast_lfp_le +/- theorem OrderHom.le_gfp +/- theorem OrderHom.le_lfp +/- theorem OrderHom.lfp_induction +/- theorem OrderHom.lfp_le +/- theorem OrderHom.lfp_le_fixed +/- theorem OrderHom.lfp_le_map +/- theorem OrderHom.lfp_lfp +/- theorem OrderHom.map_gfp +/- theorem OrderHom.map_gfp_comp +/- theorem OrderHom.map_le_gfp +/- theorem OrderHom.map_le_lfp +/- theorem OrderHom.map_lfp +/- theorem OrderHom.map_lfp_comp +/- theorem fixedPoints.gfp_eq_sInf_iterate Modified Mathlib/Order/Hom/Basic.lean +/- theorem OrderHom.dual_id Modified Mathlib/Order/Hom/Bounded.lean +/- theorem BoundedOrderHom.dual_id Modified Mathlib/Order/Interval/Basic.lean +/- theorem Interval.dual_map Modified Mathlib/SetTheory/Cardinal/SchroederBernstein.lean Modified Mathlib/SetTheory/Ordinal/FixedPointApproximants.lean +/- theorem OrdinalApprox.gfpApprox_ord_eq_gfp +/- theorem OrdinalApprox.gfp_mem_range_gfpApprox +/- theorem OrdinalApprox.lfpApprox_ord_eq_lfp +/- theorem OrdinalApprox.lfp_mem_range_lfpApprox 2024-11-23 04:58:47 8d7c6de feat: add `(Algebra|IntermediateField).lift_cardinalMk_adjoin_le` (#19327) Also add `FreeAlgebra.cardinalMk_eq_max_lift`, etc. parallel to `MvPolynomial`. Also fix the name `cardinal_lift_mk_le_max` -> `cardinalMk_le_max_lift` for `MvPolynomial`. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/FreeAlgebra/Cardinality.lean + theorem Algebra.cardinalMk_adjoin_le + theorem Algebra.lift_cardinalMk_adjoin_le + theorem FreeAlgebra.cardinalMk_eq + theorem FreeAlgebra.cardinalMk_eq_lift + theorem FreeAlgebra.cardinalMk_eq_max + theorem FreeAlgebra.cardinalMk_eq_max_lift + theorem FreeAlgebra.cardinalMk_eq_one + theorem FreeAlgebra.cardinalMk_le_max + theorem FreeAlgebra.cardinalMk_le_max_lift Modified Mathlib/Algebra/MvPolynomial/Cardinal.lean + theorem MvPolynomial.cardinalMk_eq + theorem MvPolynomial.cardinalMk_eq_one + theorem MvPolynomial.cardinalMk_le_max_lift - theorem MvPolynomial.cardinal_lift_mk_le_max Modified Mathlib/FieldTheory/Adjoin.lean + theorem IntermediateField.cardinalMk_adjoin_le + theorem IntermediateField.lift_cardinalMk_adjoin_le 2024-11-23 04:58:46 506763e chore: rename *tower_top_of_injective lemmas (#19246) ESTIMATED CHANGES Modified Mathlib/FieldTheory/IsAlgClosed/Basic.lean Modified Mathlib/RingTheory/Algebraic.lean + theorem Algebra.IsAlgebraic.extendScalars - theorem Algebra.IsAlgebraic.tower_top_of_injective + theorem IsAlgebraic.extendScalars - theorem IsAlgebraic.tower_top_of_injective - theorem Transcendental.of_tower_top_of_injective + theorem Transcendental.restrictScalars Modified Mathlib/RingTheory/AlgebraicIndependent.lean Modified Mathlib/RingTheory/Localization/Integral.lean 2024-11-23 04:58:45 e360f00 feat: add `Subgroup.index_antitone` and `Subgroup.index_strictAnti` (#19188) from flt-regular. ESTIMATED CHANGES Modified Mathlib/GroupTheory/Index.lean + theorem Subgroup.index_antitone + theorem Subgroup.index_strictAnti 2024-11-23 04:20:30 5b58f54 feat(Order/Filter/Basic): eventually_iff_all_subsets and specializations (#13275) The set `{x | p x}` belongs to `f` iff `∀ s, {x | x ∈ s → p x} ∈ f`. Specialization for `EventuallyEq` and `Eventually.LE`. Suggested by @urkud. ESTIMATED CHANGES Modified Mathlib/Order/Filter/Basic.lean + theorem Filter.eventuallyEq_iff_all_subsets + theorem Filter.eventuallyLE_iff_all_subsets + theorem Filter.eventually_iff_all_subsets 2024-11-23 02:13:37 5483f1c chore: update Mathlib dependencies 2024-11-23 (#19389) This PR updates the Mathlib dependencies. ESTIMATED CHANGES Modified lake-manifest.json 2024-11-23 00:14:53 c9cb88e chore(workflows): add another missing job name (#19386) Analogous to #19382. ESTIMATED CHANGES Modified .github/workflows/sync_closed_tasks.yaml 2024-11-23 00:05:11 4fe03b8 chore(Algebra/Group/TypeTags): Remove porting notes related to lean4#1910, use new notation everywhere (#19369) part 1: make applied occurances of `Additive.toAdd` and `Multiplicative.toMul` use newly available dot notation. ESTIMATED CHANGES Modified Mathlib/Algebra/AddConstMap/Basic.lean Modified Mathlib/Algebra/AddTorsor.lean Modified Mathlib/Algebra/BigOperators/Group/Finset.lean +/- theorem toAdd_list_sum +/- theorem toMul_list_sum +/- theorem toMul_multiset_sum Modified Mathlib/Algebra/Group/Action/TypeTags.lean +/- theorem toAdd_vadd +/- theorem toMul_smul Modified Mathlib/Algebra/Group/AddChar.lean Modified Mathlib/Algebra/Group/Aut.lean +/- theorem AddAut.conj_inv_apply Modified Mathlib/Algebra/Group/Equiv/TypeTags.lean Modified Mathlib/Algebra/Group/Even.lean +/- theorem even_toAdd_iff +/- theorem isSquare_toMul_iff Modified Mathlib/Algebra/Group/Int.lean +/- theorem Int.toAdd_pow +/- theorem Int.toAdd_zpow Modified Mathlib/Algebra/Group/Nat/TypeTags.lean +/- theorem Nat.toAdd_pow Modified Mathlib/Algebra/Group/Submonoid/Membership.lean Modified Mathlib/Algebra/Group/TypeTags/Basic.lean +/- theorem ofAdd_toAdd +/- theorem ofMul_toMul +/- theorem toAdd_div +/- theorem toAdd_inv +/- theorem toAdd_mul +/- theorem toAdd_ofAdd +/- theorem toAdd_one +/- theorem toAdd_pow +/- theorem toAdd_zpow +/- theorem toMul_add +/- theorem toMul_neg +/- theorem toMul_nsmul +/- theorem toMul_ofMul +/- theorem toMul_sub +/- theorem toMul_zero +/- theorem toMul_zsmul Modified Mathlib/Algebra/Group/TypeTags/Hom.lean Modified Mathlib/Algebra/MonoidAlgebra/Basic.lean Modified Mathlib/Algebra/MonoidAlgebra/Defs.lean Modified Mathlib/Algebra/MonoidAlgebra/Division.lean Modified Mathlib/Algebra/MonoidAlgebra/Grading.lean Modified Mathlib/Algebra/Order/Archimedean/Basic.lean Modified Mathlib/Algebra/Order/GroupWithZero/Canonical.lean Modified Mathlib/Algebra/Order/Monoid/ToMulBot.lean Modified Mathlib/Algebra/Order/Monoid/Unbundled/TypeTags.lean +/- theorem Additive.toMul_le +/- theorem Additive.toMul_lt +/- theorem Multiplicative.toAdd_le +/- theorem Multiplicative.toAdd_lt Modified Mathlib/Algebra/Order/SuccPred/TypeTags.lean Modified Mathlib/Analysis/Normed/Group/Constructions.lean +/- theorem nnnorm_toAdd +/- theorem nnnorm_toMul +/- theorem norm_toAdd +/- theorem norm_toMul Modified Mathlib/Data/Complex/Exponential.lean Modified Mathlib/Data/Int/Cast/Lemmas.lean +/- theorem zpowersHom_apply +/- theorem zpowersMulHom_apply Modified Mathlib/Data/Int/WithZero.lean Modified Mathlib/Data/Nat/Cast/Basic.lean +/- theorem powersMulHom_apply Modified Mathlib/Data/ZMod/IntUnitsPower.lean Modified Mathlib/Dynamics/Circle/RotationNumber/TranslationNumber.lean Modified Mathlib/GroupTheory/FiniteAbelian/Duality.lean Modified Mathlib/LinearAlgebra/AffineSpace/AffineEquiv.lean Modified Mathlib/NumberTheory/NumberField/Units/DirichletTheorem.lean Modified Mathlib/RepresentationTheory/Basic.lean Modified Mathlib/RepresentationTheory/GroupCohomology/LowDegree.lean Modified Mathlib/RepresentationTheory/Rep.lean Modified Mathlib/RingTheory/FreeCommRing.lean Modified Mathlib/RingTheory/LaurentSeries.lean Modified Mathlib/Topology/Constructions.lean +/- theorem nhds_toAdd +/- theorem nhds_toMul Modified Mathlib/Topology/EMetricSpace/Defs.lean +/- theorem edist_toAdd +/- theorem edist_toMul Modified Mathlib/Topology/MetricSpace/Defs.lean +/- theorem dist_toAdd +/- theorem dist_toMul +/- theorem nndist_toAdd +/- theorem nndist_toMul Modified Mathlib/Topology/MetricSpace/IsometricSMul.lean 2024-11-22 22:03:26 b0890aa chore: rename no_lints_prime_decls.txt to nolints_... (#19383) For consistency with the other nolints files. Suggested in #19275. ESTIMATED CHANGES Modified Mathlib/Tactic/Linter/DocPrime.lean Modified scripts/README.md Renamed scripts/no_lints_prime_decls.txt to scripts/nolints_prime_decls.txt Modified scripts/technical-debt-metrics.sh 2024-11-22 22:03:24 65cc629 chore: give the 'post or update summary comment' job a descriptive name (#19382) It can be useful to have a useful *job* (and not *workflow step*) name, e.g. in case one looks at JSON information in the queueboard data, about failed CI. ESTIMATED CHANGES Modified .github/workflows/PR_summary.yml 2024-11-22 22:03:23 9e7e427 chore(Algebra/Order/SuccPred/TypeTags): fix defeq abuse with Additive and Multiplicative (#19379) these simp lemmas now don't use defeq abuse between `A` and `Multiplicative A`. ESTIMATED CHANGES Modified Mathlib/Algebra/Order/SuccPred/TypeTags.lean +/- theorem Order.pred_toAdd +/- theorem Order.pred_toMul +/- theorem Order.succ_toAdd +/- theorem Order.succ_toMul 2024-11-22 21:24:50 dd74f01 chore: split Algebra.Group.Nat (#19375) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Group/Int.lean Added Mathlib/Algebra/Group/Nat/Basic.lean Renamed Mathlib/Algebra/Group/Nat.lean to Mathlib/Algebra/Group/Nat/Even.lean - theorem Nat.addUnits_eq_zero - theorem Nat.ofAdd_mul - theorem Nat.toAdd_pow - theorem Nat.units_eq_one Added Mathlib/Algebra/Group/Nat/TypeTags.lean + theorem Nat.ofAdd_mul + theorem Nat.toAdd_pow Added Mathlib/Algebra/Group/Nat/Units.lean + theorem Nat.addUnits_eq_zero + theorem Nat.units_eq_one Modified Mathlib/Algebra/Group/Submonoid/Operations.lean Modified Mathlib/Algebra/GroupPower/IterateHom.lean Modified Mathlib/Algebra/Order/Group/Nat.lean Modified Mathlib/Algebra/Order/Ring/Basic.lean Modified Mathlib/Algebra/Ring/Nat.lean Modified Mathlib/Algebra/Ring/Parity.lean Modified Mathlib/Data/List/SplitLengths.lean Modified Mathlib/Data/Multiset/Basic.lean Modified Mathlib/Data/Nat/Bits.lean Modified Mathlib/Data/Nat/Bitwise.lean Modified Mathlib/Data/Nat/Cast/Basic.lean Modified Mathlib/Data/Nat/GCD/Basic.lean Modified Mathlib/Data/Nat/PSub.lean Modified Mathlib/Data/Nat/Prime/Defs.lean Modified Mathlib/Data/Nat/Size.lean Modified Mathlib/Data/Set/Enumerate.lean Modified Mathlib/GroupTheory/SpecificGroups/Quaternion.lean Modified Mathlib/Tactic/Sat/FromLRAT.lean Modified MathlibTest/levenshtein.lean 2024-11-22 18:29:55 3d401e0 feat(AlgebraicTopology/SimplicialSet): Add auxiliary ext lemma for paths (#19349) We implement the generalization of the path extensionality lemmas suggested by @joelriou in #19057. Two paths of the same nonzero length can be identified by constructing an identification between each of their arrows. Co-Authored-By: [Joël Riou](https://github.com/joelriou) ESTIMATED CHANGES Modified Mathlib/AlgebraicTopology/SimplicialSet/Path.lean + theorem SSet.Path.ext' 2024-11-22 18:05:10 178af37 feat(RingTheory/PowerSeries/Basic): `Polynomial.coe_sub` and `Polynomial.coe_neg` (#19339) These are analogous to the existing `Polynomial.coe_add` and `Polynomial.coe_zero`, about the coercion from `Polynomial` to `PowerSeries`. [Zulip thread](https://leanprover.zulipchat.com/#narrow/channel/217875-Is-there-code-for-X.3F/topic/.60.281.20-.20X.20.3A.20.E2.84.A4.5BX.5D.29.2EtoPowerSeries.20.3D.201.20-.20.28PowerSeries.2EX.20.3A.20.E2.84.A4.E2.9F.A6X.E2.9F.A7.29.60/near/483708229). ESTIMATED CHANGES Modified Mathlib/RingTheory/LaurentSeries.lean Modified Mathlib/RingTheory/PowerSeries/Basic.lean + theorem Polynomial.coe_neg + theorem Polynomial.coe_sub 2024-11-22 17:25:12 e03117d perf: header linter performs fewer checks (#19260) Trying to recover from the [slowdown](http://speed.lean-fro.org/mathlib4/run-detail/e7b27246-a3e6-496a-b552-ff4b45c7236e/d15f04e158ee396b59b6d37cea21d2ebba0dcf7d) introduced in #18033. ESTIMATED CHANGES Modified Mathlib/Tactic/Linter/Header.lean 2024-11-22 13:33:56 be959a9 feat(LinearAlgebra/Matrix/Determinant/TotallyUnimodular): iff_fintype (#19366) add a lemma relating the definition of `Matrix.IsTotallyUnimodular` to `Fintype` rather than `Fin`. ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/Matrix/Determinant/TotallyUnimodular.lean + theorem Matrix.isTotallyUnimodular_iff_fintype.{w} 2024-11-22 13:03:58 d380d2c feat(FieldTheory.JacobsonNoether) : add proof of the Jacobson-Noether theorem (#16525) In this PR we provide a proof of the Jacobson-Noether theorem following [this blog](https://ysharifi.wordpress.com/2011/09/30/the-jacobson-noether-theorem/) Co-authored by: Filippo A. E. Nuccio @faenuccio Co-authored by: Wanyi He @Blackfeather007 Co-authored by: Huanyu Zheng @Yu-Misaka Co-authored by: Yi Yuan @yuanyi-350 Co-authored by: Weichen Jiao @AlbertJ-314 Co-authored by: Sihan Wu @Old-Turtledove Co-authored by: @FR-vdash-bot ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Algebra/Basic.lean Added Mathlib/Algebra/CharP/LinearMaps.lean + theorem Module.charP_end Modified Mathlib/Algebra/CharP/Subring.lean + theorem CharP.charP_center_iff + theorem ExpChar.expChar_center_iff Modified Mathlib/Algebra/GroupWithZero/Conj.lean + theorem GroupWithZero.conj_pow₀ + theorem GroupWithZero.isConj_iff₀ - theorem isConj_iff₀ Added Mathlib/FieldTheory/JacobsonNoether.lean + theorem JacobsonNoether.exist_pow_eq_zero_of_le + theorem JacobsonNoether.exists_pow_mem_center_of_inseparable' + theorem JacobsonNoether.exists_pow_mem_center_of_inseparable + theorem JacobsonNoether.exists_separable_and_not_isCentral' + theorem JacobsonNoether.exists_separable_and_not_isCentral 2024-11-22 11:41:25 0c44f32 docs(LinearAlgebra/Matrix/Determinant/Basic): det_submatrix_equiv_self (#19365) ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/Matrix/Determinant/Basic.lean 2024-11-22 11:21:14 81381ad doc(Algebra/Central/Defs): correct doc (#19363) Correct two typos and a bad syntax in the doc. ESTIMATED CHANGES Modified Mathlib/Algebra/Central/Defs.lean 2024-11-22 10:42:59 dc8fc4e feat: `Matrix.abs_det_submatrix_equiv_equiv` (#19332) ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Ring/Abs.lean + theorem abs_unit_intCast Modified Mathlib/LinearAlgebra/Matrix/Determinant/Basic.lean + theorem Matrix.abs_det_submatrix_equiv_equiv 2024-11-22 10:20:47 d511775 docs(RingTheory/Finiteness/Defs): specify namespace of `Finite` (#19359) Currently, `Module.Finite` and `RingHom.Finite` have docstrings that link to `Finite`, which is confusing. ESTIMATED CHANGES Modified Mathlib/RingTheory/Finiteness/Defs.lean 2024-11-22 10:20:46 1a2513a fix: move `Y` notation into a deeper scope (#19292) Otherwise this aggressively claims the `Y` notation in places where the intent may only be to access `Polynomial.X`. An alternative would be to make `Y` an `abbrev`, which would cause it to participate in regular name resolution, allowing local variables to be called `Y`. [Zulip thread](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Aggressive.20notation.2C.20Y/near/483466695) ESTIMATED CHANGES Modified Mathlib/Algebra/Polynomial/Bivariate.lean Modified Mathlib/AlgebraicGeometry/EllipticCurve/Affine.lean Modified Mathlib/AlgebraicGeometry/EllipticCurve/DivisionPolynomial/Basic.lean Modified Mathlib/AlgebraicGeometry/EllipticCurve/Group.lean 2024-11-22 09:37:25 944e357 chore: move def MonoidHom.inverse to earlier defs file (#19348) No import effect, just moving defs to be with other defs. ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Equiv/Basic.lean - def MonoidHom.inverse - def MulHom.inverse - def OneHom.inverse Modified Mathlib/Algebra/Group/Hom/Defs.lean + def MonoidHom.inverse + def MulHom.inverse + def OneHom.inverse Modified MathlibTest/symm.lean - def MulHom.inverse 2024-11-22 08:58:22 8e3e89e chore: split Algebra.Group.TypeTags (#19351) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Category/Grp/FiniteGrp.lean Modified Mathlib/Algebra/FreeMonoid/Count.lean Modified Mathlib/Algebra/Group/Action/TypeTags.lean Modified Mathlib/Algebra/Group/Equiv/TypeTags.lean Modified Mathlib/Algebra/Group/Even.lean Modified Mathlib/Algebra/Group/Subgroup/Map.lean Modified Mathlib/Algebra/Group/Subsemigroup/Operations.lean Renamed Mathlib/Algebra/Group/TypeTags.lean to Mathlib/Algebra/Group/TypeTags/Basic.lean - theorem AddMonoidHom.coe_toMultiplicative'' - theorem AddMonoidHom.coe_toMultiplicative' - theorem AddMonoidHom.coe_toMultiplicative - def AddMonoidHom.toMultiplicative'' - def AddMonoidHom.toMultiplicative' - def AddMonoidHom.toMultiplicative - theorem MonoidHom.coe_toAdditive'' - theorem MonoidHom.coe_toAdditive' - theorem MonoidHom.coe_toMultiplicative - def MonoidHom.toAdditive'' - def MonoidHom.toAdditive' - def MonoidHom.toAdditive Added Mathlib/Algebra/Group/TypeTags/Finite.lean Added Mathlib/Algebra/Group/TypeTags/Hom.lean + theorem AddMonoidHom.coe_toMultiplicative'' + theorem AddMonoidHom.coe_toMultiplicative' + theorem AddMonoidHom.coe_toMultiplicative + def AddMonoidHom.toMultiplicative'' + def AddMonoidHom.toMultiplicative' + def AddMonoidHom.toMultiplicative + theorem MonoidHom.coe_toAdditive'' + theorem MonoidHom.coe_toAdditive' + theorem MonoidHom.coe_toMultiplicative + def MonoidHom.toAdditive'' + def MonoidHom.toAdditive' + def MonoidHom.toAdditive Modified Mathlib/Algebra/Order/Monoid/Unbundled/TypeTags.lean Modified Mathlib/Analysis/Normed/Field/Lemmas.lean Modified Mathlib/Data/Finsupp/Defs.lean Modified Mathlib/Data/Fintype/Basic.lean Modified Mathlib/Data/Nat/Cast/Basic.lean Modified Mathlib/Deprecated/Group.lean Modified Mathlib/GroupTheory/FiniteAbelian/Basic.lean 2024-11-22 08:14:07 af19119 chore: add shortcut instances after LinearOrder Nat (#19346) This prevents Lean from going through the Lattice structure, which requires additional imports. ESTIMATED CHANGES Modified Mathlib/Algebra/Prime/Lemmas.lean Modified Mathlib/CategoryTheory/Functor/OfSequence.lean Modified Mathlib/Data/Int/GCD.lean Modified Mathlib/Data/Nat/Defs.lean Modified Mathlib/Data/Nat/Log.lean Modified Mathlib/Data/Nat/Prime/Defs.lean Modified Mathlib/Data/Nat/Size.lean 2024-11-22 05:55:44 2bb0410 chore(discover-lean-pr-testing): fix multiline output to GITHUB_OUTPUT (#19355) ESTIMATED CHANGES Modified .github/workflows/discover-lean-pr-testing.yml 2024-11-22 05:01:05 981dca5 chore(SchwartzSpace): clean up white space (#19336) Definitions in term mode using `mkCLM` are indented by 6 spaces, but formulating things with `refine` drops it to a more reasonable 2 spaces. Absolutely no math change, just unindenting. ESTIMATED CHANGES Modified Mathlib/Analysis/Distribution/SchwartzSpace.lean +/- def SchwartzMap.integralCLM 2024-11-22 04:40:29 fe0e8bc feat(NumberTheory/LSeries/PrimesInAP): new file (#19344) This PR creates a new file `Mathlib.NumberTheory.LSeries.PrimesInAP` that will eventually contain a proof of **Dirichlet's Theorem on primes in arithmetic progression**. As a first step, we provide two lemmas on re-writing sums (or products) over a function supported in prime powers. (We also add an API lemma for `Multipliable`/`Summable` that seems to be missing.) See [here](https://leanprover.zulipchat.com/#narrow/channel/144837-PR-reviews/topic/Prerequisites.20for.20PNT.20and.20Dirichlet's.20Thm/near/483714489) on Zulip. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/NumberTheory/LSeries/PrimesInAP.lean + theorem tprod_eq_tprod_primes_mul_tprod_primes_of_mulSupport_subset_prime_powers + theorem tprod_eq_tprod_primes_of_mulSupport_subset_prime_powers Modified Mathlib/Topology/Algebra/InfiniteSum/Constructions.lean + theorem Multipliable.prod 2024-11-22 02:00:10 43c9317 chore(Topology/Order): rename 2 lemmas (#19261) ... to allow dot notation. ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Floor/Prime.lean Modified Mathlib/Analysis/Asymptotics/TVS.lean Modified Mathlib/Analysis/BoundedVariation.lean Modified Mathlib/Analysis/Normed/Lp/lpSpace.lean Modified Mathlib/Analysis/SpecialFunctions/Pow/Deriv.lean Modified Mathlib/Analysis/SpecificLimits/Normed.lean Modified Mathlib/Computability/AkraBazzi/AkraBazzi.lean Modified Mathlib/Data/Real/Pi/Irrational.lean Modified Mathlib/MeasureTheory/Function/AEEqOfIntegral.lean Modified Mathlib/MeasureTheory/Function/LpSpace.lean Modified Mathlib/MeasureTheory/Integral/IntegralEqImproper.lean Modified Mathlib/MeasureTheory/Measure/Portmanteau.lean Modified Mathlib/MeasureTheory/Measure/WithDensity.lean Modified Mathlib/Topology/Order/IntermediateValue.lean Modified Mathlib/Topology/Order/OrderClosed.lean + theorem Filter.Tendsto.eventually_const_le + theorem Filter.Tendsto.eventually_const_lt + theorem Filter.Tendsto.eventually_le_const + theorem Filter.Tendsto.eventually_lt_const - theorem eventually_ge_of_tendsto_gt - theorem eventually_gt_of_tendsto_gt - theorem eventually_le_of_tendsto_lt - theorem eventually_lt_of_tendsto_lt 2024-11-22 01:48:35 1f86e43 feat: rewrite the trailing whitespace linter in Lean (#16334) ESTIMATED CHANGES Modified Mathlib/Tactic/Linter/TextBased.lean + def Mathlib.Linter.TextBased.trailingWhitespaceLinter Modified scripts/lint-style.py 2024-11-22 00:49:48 ff67e33 chore(Topology/Order): move&generalize 4 lemmas (#19238) Generalize lemmas from `CompleteLinearOrder` to `ConditionallyCompleteLattice` or `ConditionallyCompleteLinearOrder`. ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Measure/Typeclasses.lean Modified Mathlib/Topology/Algebra/Order/LiminfLimsup.lean - theorem iInf_eq_of_forall_le_of_tendsto - theorem iSup_eq_of_forall_le_of_tendsto - theorem iUnion_Ici_eq_Ioi_of_lt_of_tendsto - theorem iUnion_Iic_eq_Iio_of_lt_of_tendsto Modified Mathlib/Topology/Order/OrderClosed.lean + theorem IsGLB.range_of_tendsto + theorem IsLUB.range_of_tendsto + theorem iInf_eq_of_forall_le_of_tendsto + theorem iSup_eq_of_forall_le_of_tendsto + theorem iUnion_Ici_eq_Ioi_of_lt_of_tendsto + theorem iUnion_Iic_eq_Iio_of_lt_of_tendsto 2024-11-21 21:45:47 b513113 style(Data/Matrix/Block): define `Matrix.fromBlocks` more esthetically (#19324) ESTIMATED CHANGES Modified Mathlib/Data/Matrix/Block.lean 2024-11-21 21:37:19 439565f refactor: use SignType to define IsTotallyUnimodular (#19345) This is a little easier than working with a three-element disjunction. [Zulip thread](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Matrix.2EfromRows.20TU.20.28help.20wanted.29/near/483771954) ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/Matrix/Determinant/TotallyUnimodular.lean 2024-11-21 17:01:14 2d53f5f feat(Data/Nat/Factorization/PrimePow): add equivalence Primes × ℕ ≃ PrimePowers (#19335) This is part of the series of PRs leading to Dirichlet's Theorem on primes in AP. See [here](https://leanprover.zulipchat.com/#narrow/channel/144837-PR-reviews/topic/Prerequisites.20for.20PNT.20and.20Dirichlet's.20Thm/near/483303184) on Zulip. ESTIMATED CHANGES Modified Mathlib/Data/Nat/Factorization/PrimePow.lean + theorem IsPrimePow.factorization_minFac_ne_zero + theorem Nat.Primes.coe_prodNatEquiv_apply + def Nat.Primes.prodNatEquiv + theorem Nat.Primes.prodNatEquiv_apply + theorem Nat.Primes.prodNatEquiv_symm_apply 2024-11-21 16:01:19 06553ac chore: lighten tactics (#19318) Change some tactic uses to more lightweight ones (but which still automate just as much): `nlinarith` to `positivity`/`linarith`/`gcongr`, `linarith` to `norm_num`. ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Floor.lean Modified Mathlib/Analysis/Convex/Slope.lean Modified Mathlib/Analysis/PSeries.lean Modified Mathlib/Analysis/SpecialFunctions/Pow/Deriv.lean Modified Mathlib/NumberTheory/FermatPsp.lean Modified Mathlib/RingTheory/Ideal/Operations.lean Modified Mathlib/Topology/MetricSpace/Kuratowski.lean 2024-11-21 15:34:02 d1c99f2 docs: `Matrix.IsTotallyUnimodular` docstring (#19338) ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/Matrix/Determinant/TotallyUnimodular.lean 2024-11-21 15:34:01 e2d0dfc feat: add `IsFractionRing.lift[AlgHom]_fieldRange[_eq_of_range_eq]` (#19286) Which are direct applications of `IsFractionRing.ringHom_fieldRange_eq_of_comp_eq`. Also fix some docstrings mentioning "integral domain". ESTIMATED CHANGES Modified Mathlib/FieldTheory/Adjoin.lean + theorem IsFractionRing.liftAlgHom_fieldRange + theorem IsFractionRing.liftAlgHom_fieldRange_eq_of_range_eq Modified Mathlib/RingTheory/Localization/FractionRing.lean + theorem IsFractionRing.lift_fieldRange + theorem IsFractionRing.lift_fieldRange_eq_of_range_eq 2024-11-21 14:50:51 d59b190 feat(NumberTheory/LSeries/Convergence): add lemma on real-valued series (#19334) This is part of the series of PRs leading to Dirichlet's Theorem on primes in AP. See [here](https://leanprover.zulipchat.com/#narrow/channel/144837-PR-reviews/topic/Prerequisites.20for.20PNT.20and.20Dirichlet's.20Thm/near/483303184) on Zulip. ESTIMATED CHANGES Modified Mathlib/NumberTheory/LSeries/Convergence.lean + theorem LSeries.summable_real_of_abscissaOfAbsConv_lt 2024-11-21 13:54:59 29b03c8 chore: update Mathlib dependencies 2024-11-21 (#19333) This PR updates the Mathlib dependencies. ESTIMATED CHANGES Modified lake-manifest.json 2024-11-21 12:36:28 bded1a9 feat(RingTheory/DividedPowers/Basic): definition of divided powers (#15657) Define the notion of a divided power structure on an ideal of a ring. Prove basic lemmas: * the variant of the multinomial theorem in this context * a formula for products of divided powers Co-authored with: [María Inés de Frutos-Fernández](https://github.com/mariainesdff) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/RingTheory/DividedPowers/Basic.lean + theorem DividedPowers.coe_injective + theorem DividedPowers.coincide_on_smul + theorem DividedPowers.dpow_add' + theorem DividedPowers.dpow_eval_zero + theorem DividedPowers.dpow_mul_right + theorem DividedPowers.dpow_smul + theorem DividedPowers.dpow_smul_right + theorem DividedPowers.dpow_sum' + theorem DividedPowers.dpow_sum + def DividedPowers.equiv + theorem DividedPowers.equiv_apply' + theorem DividedPowers.equiv_apply + def DividedPowers.exp + theorem DividedPowers.exp_add' + theorem DividedPowers.exp_add + theorem DividedPowers.ext + theorem DividedPowers.factorial_mul_dpow_eq_pow + theorem DividedPowers.nilpotent_of_mem_dpIdeal + def DividedPowers.ofRingEquiv + theorem DividedPowers.ofRingEquiv_dpow + theorem DividedPowers.ofRingEquiv_dpow_apply + theorem DividedPowers.prod_dpow + structure DividedPowers + def dividedPowersBot Modified Mathlib/RingTheory/Ideal/Maps.lean + theorem Ideal.apply_mem_of_equiv_iff + theorem Ideal.symm_apply_mem_of_equiv_iff Modified docs/references.bib 2024-11-21 10:33:44 840e02c feat(Data/Int/Interval): add `Icc_eq_pair` (#19308) Upstreamed from the [Carleson](https://github.com/fpvandoorn/carleson) project. ESTIMATED CHANGES Modified Mathlib/Data/Int/Interval.lean + theorem Int.Icc_eq_pair 2024-11-21 10:01:54 c2fcf77 chore: rename `Nat.prime_def_lt''` to `Nat.prime_def` (#19255) Rename the statement `Prime p ↔ 2 ≤ p ∧ ∀ m, m ∣ p → m = 1 ∨ m = p` to `Nat.prime_def`. ESTIMATED CHANGES Modified Mathlib/Algebra/CharP/Defs.lean Modified Mathlib/Data/Nat/Prime/Defs.lean + theorem Nat.prime_def - theorem Nat.prime_def_lt'' Modified Mathlib/GroupTheory/SpecificGroups/Cyclic.lean Modified Mathlib/NumberTheory/Divisors.lean Modified Mathlib/NumberTheory/Fermat.lean Modified scripts/no_lints_prime_decls.txt 2024-11-21 09:25:40 e4a142c chore(Algebra/Group/Subgroup): split `Lattice`, `Map`, `Ker` from `Basic.lean` (#19295) The file `Algebra/Group/Subgroup/Basic.lean` is very long. Following the design of the `Submodule` folder, split it into: * `Lattice.lean`: `CompleteLattice` instance, `Subgroup.closure` * `Map.lean`: `Subgroup.map`, `Subgroup.comap` * `Ker.lean`: `MonoidHom.ker`, `MonoidHom.range` and `MonoidHom.eqLocus` ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Group/Subgroup/Basic.lean - def AddSubgroup.toSubgroup - theorem AddSubgroup.toSubgroup_comap - theorem MonoidHom.apply_ofInjective_symm - theorem MonoidHom.closure_preimage_le - theorem MonoidHom.coe_comp_rangeRestrict - theorem MonoidHom.coe_ker - theorem MonoidHom.coe_range - theorem MonoidHom.coe_rangeRestrict - theorem MonoidHom.coe_toAdditive_ker - theorem MonoidHom.coe_toAdditive_range - theorem MonoidHom.coe_toMultiplicative_ker - theorem MonoidHom.coe_toMultiplicative_range - theorem MonoidHom.comap_bot - theorem MonoidHom.comap_ker - theorem MonoidHom.div_mem_ker_iff - def MonoidHom.eqLocus - theorem MonoidHom.eqLocus_same - theorem MonoidHom.eqOn_closure - theorem MonoidHom.eq_iff - theorem MonoidHom.eq_of_eqOn_dense - theorem MonoidHom.eq_of_eqOn_top - def MonoidHom.ker - theorem MonoidHom.ker_codRestrict - theorem MonoidHom.ker_eq_bot_iff - theorem MonoidHom.ker_id - theorem MonoidHom.ker_one - theorem MonoidHom.ker_prod - theorem MonoidHom.ker_rangeRestrict - theorem MonoidHom.ker_restrict - theorem MonoidHom.ker_toHomUnits - theorem MonoidHom.map_closure - theorem MonoidHom.map_range - theorem MonoidHom.mem_ker - theorem MonoidHom.mem_range - theorem MonoidHom.ofInjective_apply - def MonoidHom.ofLeftInverse - theorem MonoidHom.ofLeftInverse_apply - theorem MonoidHom.ofLeftInverse_symm_apply - def MonoidHom.range - def MonoidHom.rangeRestrict - theorem MonoidHom.rangeRestrict_injective_iff - theorem MonoidHom.rangeRestrict_surjective - theorem MonoidHom.range_eq_map - theorem MonoidHom.range_eq_top - theorem MonoidHom.range_eq_top_of_surjective - theorem MonoidHom.range_le_ker_iff - theorem MonoidHom.range_one - theorem MonoidHom.restrict_range - def MonoidHom.subgroupComap - def MonoidHom.subgroupMap - theorem MonoidHom.subgroupMap_surjective - theorem MonoidHom.subgroupOf_range_eq_of_le - theorem MonoidHom.subtype_comp_rangeRestrict - theorem MulEquiv.coe_subgroupMap_apply - def MulEquiv.comapSubgroup - def MulEquiv.mapSubgroup - def MulEquiv.subgroupCongr - theorem MulEquiv.subgroupCongr_apply - theorem MulEquiv.subgroupCongr_symm_apply - def MulEquiv.subgroupMap - theorem MulEquiv.subgroupMap_symm_apply - theorem Subgroup.apply_coe_mem_map - theorem Subgroup.bot_or_exists_ne_one - theorem Subgroup.bot_or_nontrivial - theorem Subgroup.bot_subgroupOf - theorem Subgroup.bot_toSubmonoid - def Subgroup.closure - theorem Subgroup.closure_closure_coe_preimage - theorem Subgroup.closure_empty - theorem Subgroup.closure_eq - theorem Subgroup.closure_eq_bot_iff - theorem Subgroup.closure_eq_of_le - theorem Subgroup.closure_eq_top_of_mclosure_eq_top - theorem Subgroup.closure_iUnion - theorem Subgroup.closure_induction - theorem Subgroup.closure_induction₂ - theorem Subgroup.closure_le - theorem Subgroup.closure_mono - theorem Subgroup.closure_preimage_eq_top - theorem Subgroup.closure_singleton_one - theorem Subgroup.closure_union - theorem Subgroup.closure_univ - theorem Subgroup.codisjoint_subgroupOf_sup - theorem Subgroup.coe_bot - theorem Subgroup.coe_comap - theorem Subgroup.coe_eq_singleton - theorem Subgroup.coe_eq_univ - theorem Subgroup.coe_equivMapOfInjective_apply - theorem Subgroup.coe_iInf - theorem Subgroup.coe_iSup_of_directed - theorem Subgroup.coe_inf - theorem Subgroup.coe_map - theorem Subgroup.coe_sInf - theorem Subgroup.coe_subgroupOf - theorem Subgroup.coe_top - def Subgroup.comap - theorem Subgroup.comap_comap - theorem Subgroup.comap_equiv_eq_map_symm' - theorem Subgroup.comap_equiv_eq_map_symm - theorem Subgroup.comap_iInf - theorem Subgroup.comap_id - theorem Subgroup.comap_inclusion_subgroupOf - theorem Subgroup.comap_inf - theorem Subgroup.comap_injective - theorem Subgroup.comap_injective_isCommutative - theorem Subgroup.comap_le_comap_of_le_range - theorem Subgroup.comap_le_comap_of_surjective - theorem Subgroup.comap_lt_comap_of_surjective - theorem Subgroup.comap_map_eq - theorem Subgroup.comap_map_eq_self - theorem Subgroup.comap_map_eq_self_of_injective - theorem Subgroup.comap_mono - theorem Subgroup.comap_subtype - theorem Subgroup.comap_sup_comap_le - theorem Subgroup.comap_sup_eq - theorem Subgroup.comap_sup_eq_of_le_range - theorem Subgroup.comap_top - theorem Subgroup.disjoint_def' - theorem Subgroup.disjoint_def - theorem Subgroup.disjoint_iff_mul_eq_one - theorem Subgroup.eq_bot_iff_forall - theorem Subgroup.eq_bot_of_subsingleton - theorem Subgroup.eq_top_iff' - theorem Subgroup.equivMapOfInjective_coe_mulEquiv - theorem Subgroup.exists_ne_one_of_nontrivial - theorem Subgroup.gc_map_comap - theorem Subgroup.iSup_comap_le - theorem Subgroup.iSup_eq_closure - theorem Subgroup.inclusion_range - theorem Subgroup.inf_subgroupOf_left - theorem Subgroup.inf_subgroupOf_right - theorem Subgroup.ker_inclusion - theorem Subgroup.ker_le_comap - theorem Subgroup.ker_subtype - theorem Subgroup.le_closure_toSubmonoid - theorem Subgroup.le_comap_map - def Subgroup.map - theorem Subgroup.map_bot - theorem Subgroup.map_comap_eq - theorem Subgroup.map_comap_eq_self - theorem Subgroup.map_comap_eq_self_of_surjective - theorem Subgroup.map_comap_le - theorem Subgroup.map_eq_bot_iff - theorem Subgroup.map_eq_bot_iff_of_injective - theorem Subgroup.map_eq_comap_of_inverse - theorem Subgroup.map_eq_map_iff - theorem Subgroup.map_eq_range_iff - theorem Subgroup.map_equiv_eq_comap_symm' - theorem Subgroup.map_equiv_eq_comap_symm - theorem Subgroup.map_iInf - theorem Subgroup.map_iSup - theorem Subgroup.map_id - theorem Subgroup.map_inf - theorem Subgroup.map_inf_eq - theorem Subgroup.map_inf_le - theorem Subgroup.map_injective - theorem Subgroup.map_injective_of_ker_le - theorem Subgroup.map_le_iff_le_comap - theorem Subgroup.map_le_map_iff' - theorem Subgroup.map_le_map_iff - theorem Subgroup.map_le_map_iff_of_injective - theorem Subgroup.map_le_range - theorem Subgroup.map_map - theorem Subgroup.map_mono - theorem Subgroup.map_one_eq_bot - theorem Subgroup.map_subtype_le - theorem Subgroup.map_subtype_le_map_subtype - theorem Subgroup.map_sup - theorem Subgroup.map_symm_eq_iff_map_eq - theorem Subgroup.map_top_of_surjective - theorem Subgroup.mem_bot - theorem Subgroup.mem_closure - theorem Subgroup.mem_closure_pair - theorem Subgroup.mem_closure_singleton - theorem Subgroup.mem_closure_singleton_self - theorem Subgroup.mem_comap - theorem Subgroup.mem_iInf - theorem Subgroup.mem_iSup_of_directed - theorem Subgroup.mem_iSup_of_mem - theorem Subgroup.mem_inf - theorem Subgroup.mem_map - theorem Subgroup.mem_map_equiv - theorem Subgroup.mem_map_iff_mem - theorem Subgroup.mem_map_of_mem - theorem Subgroup.mem_sInf - theorem Subgroup.mem_sSup_of_directedOn - theorem Subgroup.mem_sSup_of_mem - theorem Subgroup.mem_subgroupOf - theorem Subgroup.mem_sup' - theorem Subgroup.mem_sup - theorem Subgroup.mem_sup_left - theorem Subgroup.mem_sup_right - theorem Subgroup.mem_top - theorem Subgroup.mul_injective_of_disjoint - theorem Subgroup.mul_mem_sup - theorem Subgroup.ne_bot_iff_exists_ne_one - theorem Subgroup.nontrivial_iff - theorem Subgroup.nontrivial_iff_exists_ne_one - theorem Subgroup.nontrivial_iff_ne_bot - theorem Subgroup.not_mem_of_not_mem_closure - def Subgroup.subgroupOf - def Subgroup.subgroupOfEquivOfLe - theorem Subgroup.subgroupOf_bot_eq_bot - theorem Subgroup.subgroupOf_bot_eq_top - theorem Subgroup.subgroupOf_eq_bot - theorem Subgroup.subgroupOf_eq_top - theorem Subgroup.subgroupOf_inj - theorem Subgroup.subgroupOf_map_subtype - theorem Subgroup.subgroupOf_self - theorem Subgroup.subgroupOf_sup - theorem Subgroup.subset_closure - theorem Subgroup.subsingleton_iff - theorem Subgroup.subtype_range - theorem Subgroup.sup_eq_closure - theorem Subgroup.sup_subgroupOf_eq - def Subgroup.toAddSubgroup - theorem Subgroup.toAddSubgroup_comap - def Subgroup.topEquiv - theorem Subgroup.top_subgroupOf - theorem Subgroup.top_toSubmonoid Added Mathlib/Algebra/Group/Subgroup/Ker.lean + theorem MonoidHom.apply_ofInjective_symm + theorem MonoidHom.coe_comp_rangeRestrict + theorem MonoidHom.coe_ker + theorem MonoidHom.coe_range + theorem MonoidHom.coe_rangeRestrict + theorem MonoidHom.coe_toAdditive_ker + theorem MonoidHom.coe_toAdditive_range + theorem MonoidHom.coe_toMultiplicative_ker + theorem MonoidHom.coe_toMultiplicative_range + theorem MonoidHom.comap_bot + theorem MonoidHom.comap_ker + theorem MonoidHom.div_mem_ker_iff + def MonoidHom.eqLocus + theorem MonoidHom.eqLocus_same + theorem MonoidHom.eqOn_closure + theorem MonoidHom.eq_iff + theorem MonoidHom.eq_of_eqOn_dense + theorem MonoidHom.eq_of_eqOn_top + def MonoidHom.ker + theorem MonoidHom.ker_codRestrict + theorem MonoidHom.ker_eq_bot_iff + theorem MonoidHom.ker_id + theorem MonoidHom.ker_one + theorem MonoidHom.ker_prod + theorem MonoidHom.ker_rangeRestrict + theorem MonoidHom.ker_restrict + theorem MonoidHom.ker_toHomUnits + theorem MonoidHom.map_range + theorem MonoidHom.mem_ker + theorem MonoidHom.mem_range + theorem MonoidHom.ofInjective_apply + def MonoidHom.ofLeftInverse + theorem MonoidHom.ofLeftInverse_apply + theorem MonoidHom.ofLeftInverse_symm_apply + def MonoidHom.range + def MonoidHom.rangeRestrict + theorem MonoidHom.rangeRestrict_injective_iff + theorem MonoidHom.rangeRestrict_surjective + theorem MonoidHom.range_eq_map + theorem MonoidHom.range_eq_top + theorem MonoidHom.range_eq_top_of_surjective + theorem MonoidHom.range_le_ker_iff + theorem MonoidHom.range_one + theorem MonoidHom.restrict_range + theorem MonoidHom.subgroupOf_range_eq_of_le + theorem MonoidHom.subtype_comp_rangeRestrict + theorem Subgroup.closure_preimage_eq_top + theorem Subgroup.codisjoint_subgroupOf_sup + theorem Subgroup.comap_injective + theorem Subgroup.comap_le_comap_of_le_range + theorem Subgroup.comap_le_comap_of_surjective + theorem Subgroup.comap_lt_comap_of_surjective + theorem Subgroup.comap_map_eq + theorem Subgroup.comap_map_eq_self + theorem Subgroup.comap_map_eq_self_of_injective + theorem Subgroup.comap_sup_eq + theorem Subgroup.comap_sup_eq_of_le_range + theorem Subgroup.inclusion_range + theorem Subgroup.ker_inclusion + theorem Subgroup.ker_le_comap + theorem Subgroup.ker_subtype + theorem Subgroup.map_comap_eq + theorem Subgroup.map_comap_eq_self + theorem Subgroup.map_comap_eq_self_of_surjective + theorem Subgroup.map_eq_bot_iff + theorem Subgroup.map_eq_bot_iff_of_injective + theorem Subgroup.map_eq_map_iff + theorem Subgroup.map_eq_range_iff + theorem Subgroup.map_injective + theorem Subgroup.map_injective_of_ker_le + theorem Subgroup.map_le_map_iff' + theorem Subgroup.map_le_map_iff + theorem Subgroup.map_le_map_iff_of_injective + theorem Subgroup.map_le_range + theorem Subgroup.map_subtype_le + theorem Subgroup.map_subtype_le_map_subtype + theorem Subgroup.subgroupOf_sup + theorem Subgroup.subtype_range + theorem Subgroup.sup_subgroupOf_eq Added Mathlib/Algebra/Group/Subgroup/Lattice.lean + def AddSubgroup.toSubgroup + theorem Subgroup.bot_or_exists_ne_one + theorem Subgroup.bot_or_nontrivial + theorem Subgroup.bot_toSubmonoid + def Subgroup.closure + theorem Subgroup.closure_closure_coe_preimage + theorem Subgroup.closure_empty + theorem Subgroup.closure_eq + theorem Subgroup.closure_eq_bot_iff + theorem Subgroup.closure_eq_of_le + theorem Subgroup.closure_eq_top_of_mclosure_eq_top + theorem Subgroup.closure_iUnion + theorem Subgroup.closure_induction + theorem Subgroup.closure_induction₂ + theorem Subgroup.closure_le + theorem Subgroup.closure_mono + theorem Subgroup.closure_singleton_one + theorem Subgroup.closure_union + theorem Subgroup.closure_univ + theorem Subgroup.coe_bot + theorem Subgroup.coe_eq_singleton + theorem Subgroup.coe_eq_univ + theorem Subgroup.coe_iInf + theorem Subgroup.coe_iSup_of_directed + theorem Subgroup.coe_inf + theorem Subgroup.coe_sInf + theorem Subgroup.coe_top + theorem Subgroup.disjoint_def' + theorem Subgroup.disjoint_def + theorem Subgroup.disjoint_iff_mul_eq_one + theorem Subgroup.eq_bot_iff_forall + theorem Subgroup.eq_bot_of_subsingleton + theorem Subgroup.eq_top_iff' + theorem Subgroup.exists_ne_one_of_nontrivial + theorem Subgroup.iSup_eq_closure + theorem Subgroup.le_closure_toSubmonoid + theorem Subgroup.mem_bot + theorem Subgroup.mem_closure + theorem Subgroup.mem_closure_pair + theorem Subgroup.mem_closure_singleton + theorem Subgroup.mem_closure_singleton_self + theorem Subgroup.mem_iInf + theorem Subgroup.mem_iSup_of_directed + theorem Subgroup.mem_iSup_of_mem + theorem Subgroup.mem_inf + theorem Subgroup.mem_sInf + theorem Subgroup.mem_sSup_of_directedOn + theorem Subgroup.mem_sSup_of_mem + theorem Subgroup.mem_sup' + theorem Subgroup.mem_sup + theorem Subgroup.mem_sup_left + theorem Subgroup.mem_sup_right + theorem Subgroup.mem_top + theorem Subgroup.mul_injective_of_disjoint + theorem Subgroup.mul_mem_sup + theorem Subgroup.ne_bot_iff_exists_ne_one + theorem Subgroup.nontrivial_iff + theorem Subgroup.nontrivial_iff_exists_ne_one + theorem Subgroup.nontrivial_iff_ne_bot + theorem Subgroup.not_mem_of_not_mem_closure + theorem Subgroup.subset_closure + theorem Subgroup.subsingleton_iff + theorem Subgroup.sup_eq_closure + def Subgroup.toAddSubgroup + def Subgroup.topEquiv + theorem Subgroup.top_toSubmonoid Added Mathlib/Algebra/Group/Subgroup/Map.lean + theorem AddSubgroup.toSubgroup_comap + theorem MonoidHom.closure_preimage_le + theorem MonoidHom.map_closure + def MonoidHom.subgroupComap + def MonoidHom.subgroupMap + theorem MonoidHom.subgroupMap_surjective + theorem MulEquiv.coe_subgroupMap_apply + def MulEquiv.comapSubgroup + def MulEquiv.mapSubgroup + def MulEquiv.subgroupCongr + theorem MulEquiv.subgroupCongr_apply + theorem MulEquiv.subgroupCongr_symm_apply + def MulEquiv.subgroupMap + theorem MulEquiv.subgroupMap_symm_apply + theorem Subgroup.apply_coe_mem_map + theorem Subgroup.bot_subgroupOf + theorem Subgroup.coe_comap + theorem Subgroup.coe_equivMapOfInjective_apply + theorem Subgroup.coe_map + theorem Subgroup.coe_subgroupOf + def Subgroup.comap + theorem Subgroup.comap_comap + theorem Subgroup.comap_equiv_eq_map_symm' + theorem Subgroup.comap_equiv_eq_map_symm + theorem Subgroup.comap_iInf + theorem Subgroup.comap_id + theorem Subgroup.comap_inclusion_subgroupOf + theorem Subgroup.comap_inf + theorem Subgroup.comap_injective_isCommutative + theorem Subgroup.comap_mono + theorem Subgroup.comap_subtype + theorem Subgroup.comap_sup_comap_le + theorem Subgroup.comap_top + theorem Subgroup.equivMapOfInjective_coe_mulEquiv + theorem Subgroup.gc_map_comap + theorem Subgroup.iSup_comap_le + theorem Subgroup.inf_subgroupOf_left + theorem Subgroup.inf_subgroupOf_right + theorem Subgroup.le_comap_map + def Subgroup.map + theorem Subgroup.map_bot + theorem Subgroup.map_comap_le + theorem Subgroup.map_eq_comap_of_inverse + theorem Subgroup.map_equiv_eq_comap_symm' + theorem Subgroup.map_equiv_eq_comap_symm + theorem Subgroup.map_iInf + theorem Subgroup.map_iSup + theorem Subgroup.map_id + theorem Subgroup.map_inf + theorem Subgroup.map_inf_eq + theorem Subgroup.map_inf_le + theorem Subgroup.map_le_iff_le_comap + theorem Subgroup.map_map + theorem Subgroup.map_mono + theorem Subgroup.map_one_eq_bot + theorem Subgroup.map_sup + theorem Subgroup.map_symm_eq_iff_map_eq + theorem Subgroup.map_top_of_surjective + theorem Subgroup.mem_comap + theorem Subgroup.mem_map + theorem Subgroup.mem_map_equiv + theorem Subgroup.mem_map_iff_mem + theorem Subgroup.mem_map_of_mem + theorem Subgroup.mem_subgroupOf + def Subgroup.subgroupOf + def Subgroup.subgroupOfEquivOfLe + theorem Subgroup.subgroupOf_bot_eq_bot + theorem Subgroup.subgroupOf_bot_eq_top + theorem Subgroup.subgroupOf_eq_bot + theorem Subgroup.subgroupOf_eq_top + theorem Subgroup.subgroupOf_inj + theorem Subgroup.subgroupOf_map_subtype + theorem Subgroup.subgroupOf_self + theorem Subgroup.toAddSubgroup_comap + theorem Subgroup.top_subgroupOf Modified Mathlib/Algebra/Group/Subgroup/ZPowers/Basic.lean Modified Mathlib/Algebra/Group/Submonoid/Units.lean Modified Mathlib/Algebra/Module/Submodule/Ker.lean Modified Mathlib/Algebra/Module/Submodule/Lattice.lean Modified Mathlib/Algebra/Module/Submodule/Map.lean Modified Mathlib/Analysis/Normed/Group/Basic.lean Modified Mathlib/Combinatorics/Derangements/Basic.lean Modified Mathlib/GroupTheory/Coprod/Basic.lean Modified Mathlib/GroupTheory/FreeGroup/Basic.lean Modified Mathlib/GroupTheory/GroupAction/Basic.lean Modified Mathlib/GroupTheory/GroupAction/FixingSubgroup.lean Modified Mathlib/GroupTheory/Perm/ClosureSwap.lean Modified Mathlib/GroupTheory/Perm/Sign.lean Modified Mathlib/GroupTheory/PresentedGroup.lean Modified Mathlib/GroupTheory/QuotientGroup/Defs.lean Modified Mathlib/GroupTheory/SemidirectProduct.lean Modified Mathlib/GroupTheory/Subgroup/Saturated.lean Modified Mathlib/RingTheory/TwoSidedIdeal/Operations.lean 2024-11-21 09:25:39 1d199de feat(Algebra/Ring/Parity): Add lemmas `Odd.add_one` and `Odd.one_add` (#19272) ESTIMATED CHANGES Modified Mathlib/Algebra/Ring/Parity.lean + theorem Odd.add_one + theorem Odd.one_add 2024-11-21 08:54:19 1e5f38b feat: `Measure.count s = 0 ↔ s = ∅` unconditionally (#19287) By moving cases around, we can remove all side conditions from the lemma stating `count s = 0 ↔ s = ∅`. As a result, a few pairs of lemmas are unified. From LeanAPAP ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Measure/Count.lean - theorem MeasureTheory.Measure.count_eq_zero_iff' +/- theorem MeasureTheory.Measure.count_eq_zero_iff - theorem MeasureTheory.Measure.count_ne_zero' - theorem MeasureTheory.Measure.count_ne_zero + theorem MeasureTheory.Measure.count_ne_zero_iff - theorem MeasureTheory.Measure.empty_of_count_eq_zero' - theorem MeasureTheory.Measure.empty_of_count_eq_zero Modified Mathlib/MeasureTheory/Measure/MeasureSpace.lean + theorem MeasureTheory.OuterMeasure.toMeasure_eq_zero Modified Mathlib/Probability/UniformOn.lean + theorem ProbabilityTheory.uniformOn_eq_zero' + theorem ProbabilityTheory.uniformOn_eq_zero 2024-11-21 06:49:22 ab49b83 chore: assorted golf (#19319) ESTIMATED CHANGES Modified Archive/Imo/Imo2008Q2.lean Modified Archive/Imo/Imo2013Q5.lean Modified Mathlib/Analysis/Calculus/Monotone.lean Modified Mathlib/Analysis/Convex/Uniform.lean Modified Mathlib/Analysis/PSeries.lean Modified Mathlib/Analysis/SpecialFunctions/Gamma/BohrMollerup.lean Modified Mathlib/Analysis/SpecialFunctions/Log/Monotone.lean Modified Mathlib/NumberTheory/FermatPsp.lean Modified Mathlib/NumberTheory/Modular.lean Modified Mathlib/Topology/MetricSpace/Kuratowski.lean 2024-11-21 05:54:56 2a1fef1 chore: update Mathlib dependencies 2024-11-21 (#19317) This PR updates the Mathlib dependencies. ESTIMATED CHANGES Modified lake-manifest.json 2024-11-21 05:46:14 79ca167 chore(discover-lean-pr-testing): determine old and new lean-toolchain more accurately (#19316) Also, improve the way we fetch the history between the old and new nightlies. ESTIMATED CHANGES Modified .github/workflows/discover-lean-pr-testing.yml 2024-11-21 04:49:01 bc56b5c chore(CI): remove redundant `bors x` actions, clean up new one (#19313) I did a fair amount of testing, making sure that the new action has the same functionality as the old one. As far as I can tell, they work the same. The only exception could be that the new action does not remove the `awaiting-author` label, since all the tests that I saw did not have the label in the first place. ESTIMATED CHANGES Deleted .github/workflows/add_label_from_comment.yml Deleted .github/workflows/add_label_from_review.yml Deleted .github/workflows/add_label_from_review_comment.yml Modified .github/workflows/maintainer_bors.yml 2024-11-21 03:58:26 ebe784e fix: more stable choice of representative for atoms in `ring` and `abel` (#19119) Algebraic normalization tactics (`ring`, `abel`, etc.) typically require a concept of "atom", with expressions which are t-defeq (for some transparency t) being identified. However, the particular representative of this equivalence class which turns up in the final normalized expression is basically random. (It often ends up being the "first", in some tree sense, occurrence of the equivalence class in the expression being normalized.) This ends up being particularly unpredictable when multiple expressions are being normalized simultaneously, e.g. with `ring_nf` or `abel_nf`: it can occur that in different expressions, a different representative of the equivalence class is chosen. For example, on current Mathlib, ```lean example (x : ℤ) (R : ℤ → ℤ → Prop) : True := by let a := x have h : R (a + x) (x + a) := sorry ring_nf at h ``` the statement of `h` after the ring-normalization step is `h : R (a * 2) (x * 2)`. Here `a` and `x` are reducibly defeq. When normalizing `a + x`, the representative `a` was chosen for the equivalence class; when normalizing `x + a`, the representative `x` was chosen. This PR implements a fix. The `AtomM` monad (which is used for atom-tracking in `ring`, `abel`, etc.) has its `addAtom` function modified to report, not just the index of an atom, but also the stored form of the atom. Then the code surrounding `addAtom` calls in the `ring`, `abel` and `module` tactics is modified to use the stored form of the atom, rather than the form actually encountered at that point in the expression. ESTIMATED CHANGES Modified Mathlib/Tactic/Abel.lean Modified Mathlib/Tactic/ITauto.lean Modified Mathlib/Tactic/Linarith/Preprocessing.lean Modified Mathlib/Tactic/Module.lean Modified Mathlib/Tactic/Polyrith.lean Modified Mathlib/Tactic/Ring/Basic.lean Modified Mathlib/Tactic/TFAE.lean Modified Mathlib/Util/AtomM.lean +/- def Mathlib.Tactic.AtomM.addAtom + def Mathlib.Tactic.AtomM.addAtomQ Modified MathlibTest/abel.lean Modified MathlibTest/ring.lean 2024-11-21 03:15:49 21add20 fix: silence the header linter on non-`Mathlib.lean` imported files (#19267) [Zulip](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/intrusive.20linters/near/483368456) ESTIMATED CHANGES Modified Mathlib/Tactic/Linter/Header.lean 2024-11-20 23:50:35 50c8065 chore: import `Tactic.Positivity.Finset` in `Tactic.Positivity` (#18146) I keep on getting bitten by the missing import. ESTIMATED CHANGES Modified Mathlib/Algebra/AddConstMap/Basic.lean Modified Mathlib/Algebra/AddConstMap/Equiv.lean Modified Mathlib/Algebra/ContinuedFractions/Computation/Basic.lean Modified Mathlib/Algebra/ContinuedFractions/Computation/Translations.lean Modified Mathlib/Algebra/Order/Archimedean/Basic.lean Modified Mathlib/Algebra/Order/Archimedean/Hom.lean Modified Mathlib/Algebra/Order/Archimedean/Submonoid.lean Modified Mathlib/Algebra/Order/Chebyshev.lean Modified Mathlib/Algebra/Order/Floor.lean Modified Mathlib/Algebra/Order/Nonneg/Floor.lean Modified Mathlib/Analysis/Analytic/Inverse.lean Modified Mathlib/Analysis/Complex/AbelLimit.lean Modified Mathlib/Analysis/Normed/Group/Seminorm.lean Modified Mathlib/Combinatorics/Additive/PluenneckeRuzsa.lean Modified Mathlib/Combinatorics/SimpleGraph/Triangle/Basic.lean Modified Mathlib/Data/ENNReal/Basic.lean Modified Mathlib/Data/Finset/Density.lean Modified Mathlib/Data/Int/Log.lean Modified Mathlib/Data/Int/WithZero.lean Modified Mathlib/Data/NNRat/Floor.lean Modified Mathlib/Data/NNReal/Star.lean Modified Mathlib/Data/Rat/Floor.lean Modified Mathlib/Data/Real/Archimedean.lean Modified Mathlib/Data/Real/ENatENNReal.lean Modified Mathlib/Data/Real/Pointwise.lean Modified Mathlib/GroupTheory/Archimedean.lean Modified Mathlib/LinearAlgebra/Ray.lean Modified Mathlib/NumberTheory/Harmonic/Defs.lean Modified Mathlib/Tactic/Positivity.lean Modified MathlibTest/positivity.lean 2024-11-20 22:27:28 232f84f chore: nolint `div_le_div_iff'` (#19309) This lemma was accidentally removed from the nolints file in #18917, then accidentally had its warning silenced in-place in #19279; this PR undoes both changes! ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Group/Unbundled/Basic.lean Modified scripts/no_lints_prime_decls.txt 2024-11-20 22:27:27 931c0de chore: reducibility in gcongr apply step (#19262) [Zulip](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/gcongr.20unfold.20DFunLike.2Ecoe) ESTIMATED CHANGES Modified Mathlib/Tactic/GCongr/Core.lean 2024-11-20 22:00:50 c44399d feat(Order/Max): add `IsTop.isMax_iff` and `IsBot.isMin_iff` (#19305) Upstreamed from the [Carleson](https://github.com/fpvandoorn/carleson) project. ESTIMATED CHANGES Modified Mathlib/Order/Max.lean + theorem IsBot.isMin_iff + theorem IsTop.isMax_iff 2024-11-20 20:59:58 961ee9d fix: more explicit PR number in `bors x` actions (#19304) ESTIMATED CHANGES Modified .github/workflows/maintainer_bors.yml 2024-11-20 20:34:20 3c79dac feat (LinearAlgebra/RootSystem/Finite): nondegeneracy of canonical bilinear form restricted to root span (#18569) The canonical bilinear form for a root pairing over a linearly ordered commutative ring is nondegenerate when restricted to the span of roots. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Order/BigOperators/Ring/Finset.lean + theorem Finset.sum_mul_self_eq_zero_iff Modified Mathlib/LinearAlgebra/Dimension/Basic.lean + theorem rank_le_of_smul_regular Modified Mathlib/LinearAlgebra/Dimension/RankNullity.lean + theorem Submodule.disjoint_ker_of_finrank_eq Modified Mathlib/LinearAlgebra/Dimension/StrongRankCondition.lean + theorem LinearMap.finrank_le_of_smul_regular Modified Mathlib/LinearAlgebra/Dual.lean Modified Mathlib/LinearAlgebra/RootSystem/Defs.lean Modified Mathlib/LinearAlgebra/RootSystem/Finite/CanonicalBilinear.lean + theorem RootPairing.prod_rootForm_root_self_pos + theorem RootPairing.prod_rootForm_smul_coroot_mem_range_domRestrict + theorem RootPairing.range_polarization_domRestrict_le_span_coroot + theorem RootPairing.rootForm_root_self_pos + theorem RootPairing.rootForm_self_non_neg + theorem RootPairing.rootForm_self_zero_iff Added Mathlib/LinearAlgebra/RootSystem/Finite/Nondegenerate.lean + theorem RootPairing.disjoint_rootSpan_ker_polarization + theorem RootPairing.eq_zero_of_mem_rootSpan_of_rootForm_self_eq_zero + theorem RootPairing.finrank_corootSpan_eq + theorem RootPairing.finrank_rootSpan_map_polarization_eq_finrank_corootSpan + theorem RootPairing.mem_ker_polarization_of_rootForm_self_eq_zero + theorem RootPairing.rootForm_pos_of_nonzero + theorem RootPairing.rootForm_restrict_nondegenerate + theorem RootPairing.rootForm_rootPositive + theorem RootSystem.rootForm_anisotropic Modified docs/references.bib 2024-11-20 20:06:57 bb8094a feat(Topology/MetricSpace/Pseudo/Defs): add `dense_iff_iUnion_ball` and `dist_eq_of_dist_zero` (#19294) Upstreamed from the [Carleson](https://github.com/fpvandoorn/carleson) project. ESTIMATED CHANGES Modified Mathlib/Topology/MetricSpace/Pseudo/Defs.lean + theorem Metric.dense_iff_iUnion_ball + theorem PseudoMetricSpace.dist_eq_of_dist_zero 2024-11-20 19:44:13 9f24be2 feat(AlgebraicGeometry): Proj is separated (#19290) This contribution was created as part of the Durham Computational Algebraic Geometry Workshop ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/AlgebraicGeometry/ProjectiveSpectrum/Basic.lean + theorem AlgebraicGeometry.Proj.SpecMap_awayMap_awayι + theorem AlgebraicGeometry.Proj.awayMap_awayToSection + theorem AlgebraicGeometry.Proj.basicOpenToSpec_SpecMap_awayMap + def AlgebraicGeometry.Proj.pullbackAwayιIso + theorem AlgebraicGeometry.Proj.pullbackAwayιIso_hom_SpecMap_awayMap_left + theorem AlgebraicGeometry.Proj.pullbackAwayιIso_hom_SpecMap_awayMap_right + theorem AlgebraicGeometry.Proj.pullbackAwayιIso_hom_awayι + theorem AlgebraicGeometry.Proj.pullbackAwayιIso_inv_fst + theorem AlgebraicGeometry.Proj.pullbackAwayιIso_inv_snd Added Mathlib/AlgebraicGeometry/ProjectiveSpectrum/Proper.lean + theorem AlgebraicGeometry.Proj.lift_awayMapₐ_awayMapₐ_surjective Modified Mathlib/AlgebraicGeometry/ProjectiveSpectrum/Scheme.lean + theorem AlgebraicGeometry.ProjectiveSpectrum.Proj.awayToSection_apply Modified Mathlib/RingTheory/GradedAlgebra/HomogeneousLocalization.lean + theorem HomogeneousLocalization.algebraMap_eq + def HomogeneousLocalization.awayMap + theorem HomogeneousLocalization.awayMapAux_mk + theorem HomogeneousLocalization.awayMap_fromZeroRingHom + def HomogeneousLocalization.awayMapₐ + theorem HomogeneousLocalization.awayMapₐ_apply + theorem HomogeneousLocalization.range_awayMapAux_subset + theorem HomogeneousLocalization.val_awayMap + theorem HomogeneousLocalization.val_awayMap_eq_aux + theorem HomogeneousLocalization.val_awayMap_mk Modified Mathlib/RingTheory/Localization/Away/Basic.lean + theorem Localization.awayLift_mk 2024-11-20 18:07:47 8e0d70c fix: `>>` and print author (#19300) Use `>>` to set `GITHUB_OUTPUT`, instead of `>`. ESTIMATED CHANGES Modified .github/workflows/maintainer_bors.yml 2024-11-20 17:19:12 a5d04c8 chore(RingTheory): improve and generalize submodule localization API (#19118) In Algebra/Module/LocalizedModule/Submodule, we introduce `Submodule.localized₀`, which is localization of a submodule considered as a submodule over the base ring rather than the localization. This allows us to talk about the localization of a submodule without choosing a specific ring localization, just like what `IsLocalizedModule` allows us to do for localization of a module. As applications, `Rₚ` and every hypothesis depending on it are completely removed from the statement of `Submodule.le_of_localization_maximal`, etc. in RingTheory/LocalProperties/Submodule. We also reorder lemmas in this file to make the development more natural and golf the proofs (making use of `Module.eqIdeal` introduced in RingTheory/Ideal/Defs; also add some trivial lemmas. In RingTheory/LocalProperties/Projective, we fix a proof due to removed explicit argument `Rₚ` and remove some unnecessary lines. ESTIMATED CHANGES Modified Mathlib/Algebra/Module/LocalizedModule/Submodule.lean +/- def Submodule.localized' +/- theorem Submodule.localized'_bot +/- theorem Submodule.localized'_span +/- theorem Submodule.localized'_top + def Submodule.localized₀ + theorem Submodule.localized₀_bot + theorem Submodule.localized₀_top +/- theorem Submodule.mem_localized' + theorem Submodule.mem_localized₀ + theorem Submodule.restrictScalars_localized' +/- def Submodule.toLocalized' + def Submodule.toLocalized₀ Modified Mathlib/RingTheory/Ideal/Defs.lean + def Module.eqIdeal Modified Mathlib/RingTheory/LocalProperties/Projective.lean Modified Mathlib/RingTheory/LocalProperties/Submodule.lean + theorem LinearMap.eq_of_localization_maximal +/- theorem Module.eq_of_localization_maximal +/- theorem Module.eq_zero_of_localization_maximal +/- theorem Submodule.eq_bot_of_localization_maximal + theorem Submodule.eq_bot_of_localization₀_maximal + theorem Submodule.eq_of_localization₀_maximal + theorem Submodule.eq_top_of_localization_maximal + theorem Submodule.eq_top_of_localization₀_maximal +/- theorem Submodule.mem_of_localization_maximal 2024-11-20 17:06:21 46d221c feat(NumberTheory/LSeries/DirichletContinuation): results on logarithmic derivatives (#19254) As a further step in the direction of Dirichlet's Theorem on primes in AP, this PR adds results on (negative) logarithmic derivatives of `L χ` for a non-trivial Dirichlet character `χ` and of `s ↦ (L χ s) * (s - 1)` when `χ` is trivial. See [here on Zulip](https://leanprover.zulipchat.com/#narrow/channel/144837-PR-reviews/topic/Prerequisites.20for.20PNT.20and.20Dirichlet's.20Thm/near/482543603). ESTIMATED CHANGES Modified Mathlib/NumberTheory/LSeries/DirichletContinuation.lean + theorem DirichletCharacter.LFunctionTrivChar₁_apply_one_ne_zero + theorem DirichletCharacter.continuousOn_neg_logDeriv_LFunctionTrivChar₁ + theorem DirichletCharacter.continuousOn_neg_logDeriv_LFunction_of_nontriv + theorem DirichletCharacter.deriv_LFunctionTrivChar₁_apply_of_ne_one + theorem DirichletCharacter.differentiable_LFunctionTrivChar₁ 2024-11-20 16:52:58 8eed883 chore(CategoryTheory/IsConnected): add refl etc annotations (#19017) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/IsConnected.lean +/- theorem CategoryTheory.Zag.refl +/- theorem CategoryTheory.Zag.symm +/- theorem CategoryTheory.Zigzag.refl +/- theorem CategoryTheory.Zigzag.symm +/- theorem CategoryTheory.Zigzag.trans 2024-11-20 15:32:16 238cb18 feat(CI): merge bors (#19078) Unify the three `bors d`, `bors merge` and `bord r+` actions into a single one. Prefer using `TRIAGE` token for GH API quota. ESTIMATED CHANGES Added .github/workflows/maintainer_bors.yml 2024-11-20 14:53:33 92f63d5 fix(CI): fail if tests are noisy (#19268) [Zulip discussion](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/CI.3A.20noisy.20.22test.20mathlib.22/near/483367292) #19269 adds a test file with `#eval ""` and tests fail on that PR. ESTIMATED CHANGES Modified .github/build.in.yml Modified .github/workflows/bors.yml Modified .github/workflows/build.yml Modified .github/workflows/build_fork.yml 2024-11-20 14:53:32 185ec9c feat: the Lie bracket of vector fields in vector spaces (#18852) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/Calculus/VectorField.lean + theorem ContDiff.lieBracket_vectorField + theorem ContDiffAt.lieBracket_vectorField + theorem ContDiffOn.lieBracketWithin_vectorField + theorem ContDiffWithinAt.lieBracketWithin_vectorField + theorem DifferentiableWithinAt.lieBracketWithin_congr_mono + theorem Filter.EventuallyEq.lieBracketWithin_vectorField' + theorem Filter.EventuallyEq.lieBracketWithin_vectorField_eq + theorem Filter.EventuallyEq.lieBracketWithin_vectorField_eq_nhds + theorem Filter.EventuallyEq.lieBracketWithin_vectorField_eq_of_mem + theorem Filter.EventuallyEq.lieBracket_vectorField_eq + theorem VectorField.leibniz_identity_lieBracket + theorem VectorField.leibniz_identity_lieBracketWithin + theorem VectorField.leibniz_identity_lieBracketWithin_of_isSymmSndFDerivWithinAt + def VectorField.lieBracket + def VectorField.lieBracketWithin + theorem VectorField.lieBracketWithin_add_left + theorem VectorField.lieBracketWithin_add_right + theorem VectorField.lieBracketWithin_congr' + theorem VectorField.lieBracketWithin_congr + theorem VectorField.lieBracketWithin_congr_set' + theorem VectorField.lieBracketWithin_congr_set + theorem VectorField.lieBracketWithin_eq + theorem VectorField.lieBracketWithin_eq_lieBracket + theorem VectorField.lieBracketWithin_eq_zero_of_eq_zero + theorem VectorField.lieBracketWithin_eventually_congr_set' + theorem VectorField.lieBracketWithin_eventually_congr_set + theorem VectorField.lieBracketWithin_inter + theorem VectorField.lieBracketWithin_of_isOpen + theorem VectorField.lieBracketWithin_of_mem_nhds + theorem VectorField.lieBracketWithin_of_mem_nhdsWithin + theorem VectorField.lieBracketWithin_self + theorem VectorField.lieBracketWithin_smul_left + theorem VectorField.lieBracketWithin_smul_right + theorem VectorField.lieBracketWithin_subset + theorem VectorField.lieBracketWithin_swap + theorem VectorField.lieBracketWithin_univ + theorem VectorField.lieBracket_add_left + theorem VectorField.lieBracket_add_right + theorem VectorField.lieBracket_eq + theorem VectorField.lieBracket_eq_zero_of_eq_zero + theorem VectorField.lieBracket_self + theorem VectorField.lieBracket_smul_left + theorem VectorField.lieBracket_smul_right + theorem VectorField.lieBracket_swap 2024-11-20 14:09:20 f02eb61 chore: deprecate `Quotient.out'` (#17941) ESTIMATED CHANGES Modified Mathlib/Data/Multiset/Basic.lean Modified Mathlib/Data/Quot.lean +/- theorem Quotient.mk_out' +/- theorem Quotient.out_eq' Modified Mathlib/Data/Setoid/Basic.lean Modified Mathlib/Data/Setoid/Partition.lean - theorem IndexedPartition.index_out' + theorem IndexedPartition.index_out Modified Mathlib/GroupTheory/Complement.lean Modified Mathlib/GroupTheory/Coset/Basic.lean - theorem QuotientGroup.orbit_eq_out'_smul + theorem QuotientGroup.orbit_eq_out_smul Modified Mathlib/GroupTheory/Coset/Defs.lean - theorem QuotientGroup.mk_out'_eq_mul + theorem QuotientGroup.mk_out_eq_mul +/- theorem QuotientGroup.out_eq' Modified Mathlib/GroupTheory/DoubleCoset.lean - theorem Doset.disjoint_out' + theorem Doset.disjoint_out - theorem Doset.mk_out'_eq_mul + theorem Doset.mk_out_eq_mul +/- theorem Doset.out_eq' Modified Mathlib/GroupTheory/GroupAction/Defs.lean +/- def MulAction.selfEquivSigmaOrbits Modified Mathlib/GroupTheory/GroupAction/Quotient.lean - theorem MulAction.Quotient.coe_smul_out' + theorem MulAction.Quotient.coe_smul_out - theorem MulAction.Quotient.mk_smul_out' + theorem MulAction.Quotient.mk_smul_out - theorem QuotientGroup.out'_conj_pow_minimalPeriod_mem + theorem QuotientGroup.out_conj_pow_minimalPeriod_mem Modified Mathlib/GroupTheory/Transfer.lean Modified Mathlib/LinearAlgebra/Projectivization/Basic.lean Modified Mathlib/MeasureTheory/Function/AEEqFun.lean Modified Mathlib/MeasureTheory/Measure/Haar/Quotient.lean Modified Mathlib/NumberTheory/NumberField/Units/DirichletTheorem.lean Modified Mathlib/Order/Antisymmetrization.lean Modified Mathlib/Order/RelIso/Basic.lean Modified Mathlib/RingTheory/GradedAlgebra/HomogeneousLocalization.lean Modified Mathlib/RingTheory/Ideal/Quotient/Basic.lean Modified Mathlib/RingTheory/Perfection.lean Modified Mathlib/Topology/Algebra/ClosedSubgroup.lean Modified Mathlib/Topology/UniformSpace/Separation.lean 2024-11-20 14:09:19 edcdc3e feat(UpperHalfPlane): weaken assumptions of multiple atImInfty lemmas (#16015) In this PR, I weaken some assumptions so that they can be applied more widely (more specifically, to my use case :) ) I also renamed some lemmas because they sounded weird. ESTIMATED CHANGES Modified Mathlib/Analysis/Asymptotics/Asymptotics.lean +/- theorem Asymptotics.isLittleO_one_iff Modified Mathlib/Analysis/Complex/UpperHalfPlane/FunctionsBoundedAtInfty.lean + theorem UpperHalfPlane.IsZeroAtImInfty.isBoundedAtImInfty - theorem UpperHalfPlane.bounded_mem + theorem UpperHalfPlane.isBoundedAtImInfty_iff + theorem UpperHalfPlane.isZeroAtImInfty_iff - theorem UpperHalfPlane.zero_at_im_infty Modified Mathlib/NumberTheory/ModularForms/Basic.lean Modified Mathlib/NumberTheory/ModularForms/EisensteinSeries/IsBoundedAtImInfty.lean Modified Mathlib/Order/Filter/ZeroAndBoundedAtFilter.lean +/- theorem Filter.ZeroAtFilter.boundedAtFilter 2024-11-20 14:09:17 09242aa feat(KrullDimension): height refactor module docstring (#15524) This concludes a refactoring of and API extension for `height`. Notable changes, spread over 28 prior PRs, include: * Everything put into `namespace Order` * Type of `krullDim` changed from `WithBot (WithTop Nat)` to `WithBot ENat`. * Type of `height` changed from `WithBot (WithTop Nat)` to `ENat`. * Definition of `height` via `LTSeries` rather than krullDim * Plenty of lemmas about `height` * Concrete calculations for `height` and `krullDim` This final change updates the module docstring, and adds two `coheight` lemmas corresponding to existing `height` lemmas that slipped through the cracks of juggling multple PRs. From the Carleson project. ESTIMATED CHANGES Modified Mathlib/Order/KrullDimension.lean + theorem Order.coheight_strictAnti 2024-11-20 13:28:39 fb23240 feat(CI): add a log of the size of the oleans (#19283) Split off from #16020: it only adds a step that computes the sizes of the oleans. ESTIMATED CHANGES Modified .github/build.in.yml Modified .github/workflows/bors.yml Modified .github/workflows/build.yml Modified .github/workflows/build_fork.yml 2024-11-20 13:28:38 025632c feat: change definition of `HasFTaylorSeries` to take a parameter in `WithTop ℕ∞` instead of `ℕ∞` (#18723) For now this is useless (and even counter-productive, as it means we have to add some casts in some places), but it will make it possible to integrate analytic functions in the smooth hierarchy in #17152. ESTIMATED CHANGES Modified Mathlib/Analysis/Calculus/ContDiff/Basic.lean +/- theorem HasFTaylorSeriesUpToOn.add +/- theorem HasFTaylorSeriesUpToOn.compContinuousLinearMap +/- theorem HasFTaylorSeriesUpToOn.continuousLinearMap_comp +/- theorem HasFTaylorSeriesUpToOn.prod +/- theorem HasFTaylorSeriesUpToOn.restrictScalars +/- theorem hasFTaylorSeriesUpToOn_pi' +/- theorem hasFTaylorSeriesUpToOn_pi Modified Mathlib/Analysis/Calculus/ContDiff/Defs.lean +/- theorem ContDiff.continuous_iteratedFDeriv +/- theorem ContDiff.differentiable_iteratedFDeriv +/- theorem ContDiffWithinAt.contDiffOn' +/- theorem ContDiffWithinAt.contDiffOn Modified Mathlib/Analysis/Calculus/ContDiff/FTaylorSeries.lean - theorem HasFTaylorSeriesUpTo.ofLe + theorem HasFTaylorSeriesUpTo.of_le +/- structure HasFTaylorSeriesUpTo +/- structure HasFTaylorSeriesUpToOn +/- theorem hasFTaylorSeriesUpToOn_succ_iff_right + theorem hasFTaylorSeriesUpToOn_succ_nat_iff_right +/- theorem hasFTaylorSeriesUpToOn_top_iff' +/- theorem hasFTaylorSeriesUpToOn_top_iff + theorem hasFTaylorSeriesUpToOn_top_iff_add + theorem hasFTaylorSeriesUpToOn_top_iff_right - theorem hasFTaylorSeriesUpTo_succ_iff_right + theorem hasFTaylorSeriesUpTo_succ_nat_iff_right +/- theorem hasFTaylorSeriesUpTo_top_iff' +/- theorem hasFTaylorSeriesUpTo_top_iff Modified Mathlib/Analysis/Calculus/ContDiff/FaaDiBruno.lean +/- theorem HasFTaylorSeriesUpToOn.comp Modified Mathlib/Analysis/Calculus/ContDiff/FiniteDimension.lean Modified Mathlib/Analysis/Calculus/ContDiff/RCLike.lean +/- theorem HasFTaylorSeriesUpToOn.hasStrictFDerivAt Modified Mathlib/Analysis/Calculus/FDeriv/Analytic.lean +/- theorem AnalyticOn.hasFTaylorSeriesUpToOn Modified Mathlib/Analysis/Convolution.lean Modified Mathlib/Analysis/Fourier/FourierTransformDeriv.lean + theorem VectorFourier.hasFTaylorSeriesUpTo_fourierIntegral' +/- theorem VectorFourier.hasFTaylorSeriesUpTo_fourierIntegral Modified Mathlib/Analysis/SpecialFunctions/Pow/Deriv.lean Modified Mathlib/Data/ENat/Basic.lean +/- theorem ENat.add_one_eq_coe_top_iff + theorem ENat.natCast_le_of_coe_top_le_withTop + theorem ENat.natCast_lt_of_coe_top_le_withTop 2024-11-20 13:18:33 fc5f449 ci: print the existing update PR, if found (#19218) This reveals that the problem was #18946 being open. ESTIMATED CHANGES Modified .github/workflows/update_dependencies.yml 2024-11-20 13:18:32 40b5578 feat: expand API around manifold derivatives (#18850) Notably, prove that basic functions are differentiable in the manifold sense, and compute their derivatives. ESTIMATED CHANGES Modified Mathlib/Geometry/Manifold/Algebra/Monoid.lean + theorem contMDiffAt_mul_left + theorem contMDiffAt_mul_right + theorem contMDiff_mul_left + theorem contMDiff_mul_right + theorem mdifferentiableAt_mul_left + theorem mdifferentiableAt_mul_right + theorem mdifferentiable_mul_left + theorem mdifferentiable_mul_right Modified Mathlib/Geometry/Manifold/MFDeriv/Atlas.lean + theorem isInvertible_mfderivWithin_extChartAt_symm + theorem isInvertible_mfderiv_extChartAt + theorem mfderivWithin_extChartAt_symm_comp_mfderiv_extChartAt' + theorem mfderivWithin_extChartAt_symm_comp_mfderiv_extChartAt + theorem mfderiv_extChartAt_comp_mfderivWithin_extChartAt_symm' + theorem mfderiv_extChartAt_comp_mfderivWithin_extChartAt_symm Modified Mathlib/Geometry/Manifold/MFDeriv/SpecificFunctions.lean + theorem MDifferentiable.fst + theorem MDifferentiable.prod_map + theorem MDifferentiable.snd + theorem MDifferentiableAt.fst + theorem MDifferentiableAt.prod_map' + theorem MDifferentiableAt.prod_map + theorem MDifferentiableAt.snd + theorem MDifferentiableOn.prod_map + theorem MDifferentiableWithinAt.fst + theorem MDifferentiableWithinAt.prod_map' + theorem MDifferentiableWithinAt.prod_map + theorem MDifferentiableWithinAt.snd + theorem mdifferentiableAt_prod_iff + theorem mdifferentiableAt_prod_module_iff + theorem mdifferentiableOn_prod_iff + theorem mdifferentiableOn_prod_module_iff + theorem mdifferentiableWithinAt_prod_iff + theorem mdifferentiableWithinAt_prod_module_iff + theorem mdifferentiable_prod_iff + theorem mdifferentiable_prod_module_iff + theorem mfderiv_prod_eq_add_apply + theorem mfderiv_prod_eq_add_comp + theorem tangentMap_prod_left + theorem tangentMap_prod_right 2024-11-20 13:18:31 159918f feat: the monoidal category structure on homological complexes (#15695) Let `c : ComplexShape I` with `I` an additive monoid. If `c` is equipped with the data and axioms `c.TensorSigns`, then the category `HomologicalComplex C c` can be eqquiped with a monoidal category structure if `C` is a monoidal category such that `C` has certain coproducts and both left/right tensoring commute with these. In particular, we obtain a monoidal category structure on `ChainComplex C ℕ` when `C` is an additive monoidal category. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Homology/Monoidal.lean + theorem HomologicalComplex.leftUnitor'_inv + theorem HomologicalComplex.leftUnitor'_inv_comm + theorem HomologicalComplex.rightUnitor'_inv + theorem HomologicalComplex.rightUnitor'_inv_comm + theorem HomologicalComplex.tensor_unit_d₂ + theorem HomologicalComplex.unit_tensor_d₁ Modified Mathlib/CategoryTheory/GradedObject/Monoidal.lean + theorem CategoryTheory.GradedObject.hasTensor_of_iso 2024-11-20 12:45:10 79ee32e feat: cardinality of `Field.Emb` for algebraic extensions of infinite separable degree (#9480) We show that the number of embeddings of an algebraic extension E/F with infinite `sepDegree F E` is equal to `2 ^ sepDegree F E`. Since `separableClosure F E` has the same number of F-embeddings as E, we may assume E/F is separable, so `sepDegree F E = Module.rank F E` ([E:F]). The first part of the proof (up to `two_le_deg`) shows the existence of a transfinite filtration of E/F by subextensions of length equal to [E:F], such that each step is finite and nontrivial (has degree at least 2). The second part (up to `embEquivPi`) shows the embeddings of these subextensions form an inverse system satisfying the conditions of `InverseSystem.globalEquiv`, and therefore the number of embeddings of E/F is equal to the product of the degrees of the steps. We conclude the file with five theorems stating the main result for separable and general algebraic extensions, incorporating the finite case or not. [Zulip](https://leanprover.zulipchat.com/#narrow/stream/217875-Is-there-code-for-X.3F/topic/Separability.20degree.3F/near/411486335) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/FieldTheory/CardinalEmb.lean + theorem Field.Emb.Cardinal.adjoin_basis_eq_top + theorem Field.Emb.Cardinal.adjoin_image_leastExt + theorem Field.Emb.Cardinal.deg_lt_aleph0 + theorem Field.Emb.Cardinal.directed_filtration + def Field.Emb.Cardinal.embEquivPi + def Field.Emb.Cardinal.embFunctor + theorem Field.Emb.Cardinal.eq_bot_of_not_nonempty + def Field.Emb.Cardinal.equivLim + theorem Field.Emb.Cardinal.equivLim_coherence + def Field.Emb.Cardinal.equivSucc + theorem Field.Emb.Cardinal.equivSucc_coherence + def Field.Emb.Cardinal.factor + def Field.Emb.Cardinal.filtration + theorem Field.Emb.Cardinal.filtration_succ + theorem Field.Emb.Cardinal.iSup_adjoin_eq_top + theorem Field.Emb.Cardinal.iSup_filtration + theorem Field.Emb.Cardinal.isLeast_leastExt + def Field.Emb.Cardinal.leastExt + theorem Field.Emb.Cardinal.noMaxOrder_rank_toType + theorem Field.Emb.Cardinal.strictMono_filtration + theorem Field.Emb.Cardinal.strictMono_leastExt + def Field.Emb.Cardinal.succEquiv + theorem Field.Emb.Cardinal.succEquiv_coherence + theorem Field.Emb.Cardinal.two_le_deg + def Field.Emb.Cardinal.wellOrderedBasis + theorem Field.Emb.cardinal_eq + theorem Field.Emb.cardinal_eq_of_isSeparable + theorem Field.Emb.cardinal_eq_two_pow_rank + theorem Field.Emb.cardinal_eq_two_pow_sepDegree Modified Mathlib/FieldTheory/SeparableDegree.lean Modified Mathlib/LinearAlgebra/FreeAlgebra.lean + theorem Algebra.rank_adjoin_le Modified Mathlib/Order/SuccPred/Basic.lean 2024-11-20 12:32:28 cd4d218 feat(KrullDimension): concrete calculations (#19210) Part of https://github.com/leanprover-community/mathlib4/pull/15524. This adds concrete calculations of the height and Krull Dimension for Nat, Int, WithTop, WithBot and ENat. From the Carleson project. ESTIMATED CHANGES Modified Mathlib/Order/KrullDimension.lean + theorem Order.coheight_coe_enat + theorem Order.coheight_coe_withBot + theorem Order.coheight_coe_withTop + theorem Order.coheight_int + theorem Order.coheight_nat + theorem Order.coheight_of_noMaxOrder + theorem Order.height_coe_withBot + theorem Order.height_coe_withTop + theorem Order.height_enat + theorem Order.height_int + theorem Order.height_nat + theorem Order.height_of_noMinOrder + theorem Order.krullDim_WithTop + theorem Order.krullDim_enat + theorem Order.krullDim_int + theorem Order.krullDim_nat + theorem Order.krullDim_of_noMaxOrder + theorem Order.krullDim_of_noMinOrder + theorem Order.krullDim_withBot 2024-11-20 11:43:02 9da2651 chore: bump dependencies (#19279) ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Group/Unbundled/Basic.lean Modified lake-manifest.json 2024-11-20 11:43:00 b6fb044 chore(RingTheory): split `UniqueFactorizationDomain.lean` (#19256) This PR splits the big file `UniqueFactorizationDomain.lean` into many smaller files: * `UniqueFactorizationDomain.Defs` contains the definition of `WfDvdMonoid`, `UniqueFactorizationMonoid` and `factors` * `UniqueFactorizationDomain.Basic` contains basic results on the previous definition such as the equivalence between `UniqueFactorizationMonoid` and the existence of prime factors * `UniqueFactorizationDomain.NormalizedFactors` defines `UniqueFactorizationMonoid.normalizedFactors` and contains basic results. (Or should we merge it into `Defs`/`Basic`?) * `UniqueFactorizationDomain.FactorSet` defines `Associates.FactorSet` and `Associates.factors` * `UniqueFactorizationDomain.Finite` proves that elements of a UFM with finitely many units have finitely many divisors. (This could be moved to `Basic.lean` but I find it niche enough to deserve its own file.) * `UniqueFactorizationDomain.Finsupp` defines `UniqueFactorizationMonoid.factorization` as a `Finsupp` version of `factors` * `UniqueFactorizationDomain.GCDMonoid` defines a GCD on a UFM * `UniqueFactorizationDomain.Ideal` shows UFDs satisfy the ascending chain condition on ideals * `UniqueFactorizationDomain.Multiplicative` contains results on multiplicative properties and functions. * `UniqueFactorizationDomain.Multiplicity` relates `factors.count` and `multiplicity` * `UniqueFactorizationDomain.Nat` contains the `UniqueFactorizationMonoid Nat` instance ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Squarefree/Basic.lean Modified Mathlib/Combinatorics/Additive/ErdosGinzburgZiv.lean Modified Mathlib/Data/Nat/Squarefree.lean Modified Mathlib/NumberTheory/ArithmeticFunction.lean Modified Mathlib/NumberTheory/FLT/Four.lean Modified Mathlib/RingTheory/ChainOfDivisors.lean Modified Mathlib/RingTheory/DedekindDomain/Factorization.lean Modified Mathlib/RingTheory/DiscreteValuationRing/Basic.lean Modified Mathlib/RingTheory/Ideal/Norm/AbsNorm.lean Modified Mathlib/RingTheory/Localization/Away/Basic.lean Modified Mathlib/RingTheory/Localization/NumDen.lean Modified Mathlib/RingTheory/Noetherian/UniqueFactorizationDomain.lean Modified Mathlib/RingTheory/Polynomial/Radical.lean Modified Mathlib/RingTheory/Polynomial/UniqueFactorization.lean Modified Mathlib/RingTheory/PowerSeries/Inverse.lean Modified Mathlib/RingTheory/PrincipalIdealDomain.lean Modified Mathlib/RingTheory/Radical.lean Modified Mathlib/RingTheory/RootsOfUnity/Minpoly.lean Deleted Mathlib/RingTheory/UniqueFactorizationDomain.lean - theorem Associated.normalizedFactors_eq - def Associates.BfactorSetMem - theorem Associates.FactorSet.coe_add - def Associates.FactorSet.prod - theorem Associates.FactorSet.prod_eq_zero_iff - theorem Associates.FactorSet.sup_add_inf_eq_add - theorem Associates.FactorSet.unique - def Associates.FactorSetMem - def Associates.bcount - theorem Associates.coprime_iff_inf_one - def Associates.count - theorem Associates.count_eq_zero_of_ne - theorem Associates.count_factors_eq_find_of_dvd_pow - theorem Associates.count_le_count_of_factors_le - theorem Associates.count_le_count_of_le - theorem Associates.count_mul - theorem Associates.count_mul_of_coprime' - theorem Associates.count_mul_of_coprime - theorem Associates.count_ne_zero_iff_dvd - theorem Associates.count_of_coprime - theorem Associates.count_pow - theorem Associates.count_reducible - theorem Associates.count_self - theorem Associates.count_some - theorem Associates.count_zero - theorem Associates.dvd_count_of_dvd_count_mul - theorem Associates.dvd_count_pow - theorem Associates.dvd_of_mem_factors' - theorem Associates.dvd_of_mem_factors - theorem Associates.eq_factors_of_eq_counts - theorem Associates.eq_of_eq_counts - theorem Associates.eq_of_factors_eq_factors - theorem Associates.eq_of_prod_eq_prod - theorem Associates.eq_pow_count_factors_of_dvd_pow - theorem Associates.eq_pow_find_of_dvd_irreducible_pow - theorem Associates.eq_pow_of_mul_eq_pow - theorem Associates.exists_prime_dvd_of_not_inf_one - theorem Associates.factorSetMem_eq_mem - theorem Associates.factors'_cong - theorem Associates.factors_eq_some_iff_ne_zero - theorem Associates.factors_eq_top_iff_zero - theorem Associates.factors_le - theorem Associates.factors_mk - theorem Associates.factors_mono - theorem Associates.factors_mul - theorem Associates.factors_one - theorem Associates.factors_prime_pow - theorem Associates.factors_prod - theorem Associates.factors_self - theorem Associates.factors_subsingleton - theorem Associates.factors_zero - theorem Associates.irreducible_of_mem_factorSet - theorem Associates.is_pow_of_dvd_count - theorem Associates.le_of_count_ne_zero - theorem Associates.map_subtype_coe_factors' - theorem Associates.mem_factorSet_some - theorem Associates.mem_factorSet_top - theorem Associates.mem_factors'_iff_dvd - theorem Associates.mem_factors'_of_dvd - theorem Associates.mem_factors_iff_dvd - theorem Associates.mem_factors_of_dvd - theorem Associates.pow_factors - theorem Associates.prime_pow_dvd_iff_le - theorem Associates.prime_pow_le_iff_le_bcount - theorem Associates.prod_add - theorem Associates.prod_coe - theorem Associates.prod_factors - theorem Associates.prod_le - theorem Associates.prod_le_prod_iff_le - theorem Associates.prod_mono - theorem Associates.prod_top - theorem Associates.reducible_not_mem_factorSet - theorem Associates.sup_mul_inf - theorem Associates.unique' - theorem Ideal.IsPrime.exists_mem_prime_of_ne_bot - theorem Ideal.setOf_isPrincipal_wellFoundedOn_gt - theorem Irreducible.normalizedFactors_pow - theorem MulEquiv.uniqueFactorizationMonoid - theorem MulEquiv.uniqueFactorizationMonoid_iff - theorem Nat.factors_eq - theorem Nat.factors_multiset_prod_of_irreducible - theorem UniqueFactorizationMonoid.associated_iff_normalizedFactors_eq_normalizedFactors - theorem UniqueFactorizationMonoid.count_normalizedFactors_eq' - theorem UniqueFactorizationMonoid.count_normalizedFactors_eq - theorem UniqueFactorizationMonoid.dvdNotUnit_iff_normalizedFactors_lt_normalizedFactors - theorem UniqueFactorizationMonoid.dvd_iff_normalizedFactors_le_normalizedFactors - theorem UniqueFactorizationMonoid.dvd_of_dvd_mul_left_of_no_prime_factors - theorem UniqueFactorizationMonoid.dvd_of_dvd_mul_right_of_no_prime_factors - theorem UniqueFactorizationMonoid.dvd_of_mem_factors - theorem UniqueFactorizationMonoid.dvd_of_mem_normalizedFactors - theorem UniqueFactorizationMonoid.emultiplicity_eq_count_normalizedFactors - theorem UniqueFactorizationMonoid.exists_associated_prime_pow_of_unique_normalized_factor - theorem UniqueFactorizationMonoid.exists_mem_factors - theorem UniqueFactorizationMonoid.exists_mem_factors_of_dvd - theorem UniqueFactorizationMonoid.exists_mem_normalizedFactors - theorem UniqueFactorizationMonoid.exists_mem_normalizedFactors_of_dvd - theorem UniqueFactorizationMonoid.exists_prime_factors - theorem UniqueFactorizationMonoid.exists_prime_iff - theorem UniqueFactorizationMonoid.exists_reduced_factors' - theorem UniqueFactorizationMonoid.exists_reduced_factors - theorem UniqueFactorizationMonoid.factors_eq_normalizedFactors - theorem UniqueFactorizationMonoid.factors_mul - theorem UniqueFactorizationMonoid.factors_one - theorem UniqueFactorizationMonoid.factors_pos - theorem UniqueFactorizationMonoid.factors_pow - theorem UniqueFactorizationMonoid.factors_pow_count_prod - theorem UniqueFactorizationMonoid.factors_prod - theorem UniqueFactorizationMonoid.factors_rel_of_associated - theorem UniqueFactorizationMonoid.factors_unique - theorem UniqueFactorizationMonoid.factors_zero - theorem UniqueFactorizationMonoid.iff_exists_prime_factors - theorem UniqueFactorizationMonoid.induction_on_coprime - theorem UniqueFactorizationMonoid.induction_on_prime - theorem UniqueFactorizationMonoid.induction_on_prime_power - theorem UniqueFactorizationMonoid.irreducible_of_factor - theorem UniqueFactorizationMonoid.irreducible_of_normalized_factor - theorem UniqueFactorizationMonoid.isRelPrime_iff_no_prime_factors - theorem UniqueFactorizationMonoid.le_emultiplicity_iff_replicate_le_normalizedFactors - theorem UniqueFactorizationMonoid.max_power_factor - theorem UniqueFactorizationMonoid.mem_normalizedFactors_eq_of_associated - theorem UniqueFactorizationMonoid.mem_normalizedFactors_iff - theorem UniqueFactorizationMonoid.multiplicative_of_coprime - theorem UniqueFactorizationMonoid.multiplicative_prime_power - theorem UniqueFactorizationMonoid.ne_zero_of_mem_factors - theorem UniqueFactorizationMonoid.normalize_normalized_factor - theorem UniqueFactorizationMonoid.normalizedFactors_eq_of_dvd - theorem UniqueFactorizationMonoid.normalizedFactors_irreducible - theorem UniqueFactorizationMonoid.normalizedFactors_mul - theorem UniqueFactorizationMonoid.normalizedFactors_multiset_prod - theorem UniqueFactorizationMonoid.normalizedFactors_of_irreducible_pow - theorem UniqueFactorizationMonoid.normalizedFactors_one - theorem UniqueFactorizationMonoid.normalizedFactors_pos - theorem UniqueFactorizationMonoid.normalizedFactors_pow - theorem UniqueFactorizationMonoid.normalizedFactors_prod - theorem UniqueFactorizationMonoid.normalizedFactors_prod_eq - theorem UniqueFactorizationMonoid.normalizedFactors_prod_of_prime - theorem UniqueFactorizationMonoid.normalizedFactors_zero - theorem UniqueFactorizationMonoid.of_exists_prime_factors - theorem UniqueFactorizationMonoid.of_exists_unique_irreducible_factors - theorem UniqueFactorizationMonoid.prime_of_factor - theorem UniqueFactorizationMonoid.prime_of_normalized_factor - theorem UniqueFactorizationMonoid.prime_pow_coprime_prod_of_coprime_insert - theorem UniqueFactorizationMonoid.zero_not_mem_normalizedFactors - theorem WfDvdMonoid.exists_factors - theorem WfDvdMonoid.exists_irreducible_factor - theorem WfDvdMonoid.iff_wellFounded_associates - theorem WfDvdMonoid.induction_on_irreducible - theorem WfDvdMonoid.isRelPrime_of_no_irreducible_factors - theorem WfDvdMonoid.max_power_factor' - theorem WfDvdMonoid.max_power_factor - theorem WfDvdMonoid.not_unit_iff_exists_factors_eq - theorem WfDvdMonoid.of_exists_prime_factors - theorem WfDvdMonoid.of_setOf_isPrincipal_wellFoundedOn_gt - theorem WfDvdMonoid.of_wellFoundedLT_associates - theorem WfDvdMonoid.of_wellFounded_associates - theorem WfDvdMonoid.of_wfDvdMonoid_associates - theorem WfDvdMonoid.wellFoundedLT_associates - theorem WfDvdMonoid.wellFounded_associates - theorem associated_of_factorization_eq - theorem factorization_eq_count - theorem factorization_mul - theorem factorization_one - theorem factorization_pow - theorem factorization_zero - theorem irreducible_iff_prime_of_exists_prime_factors - theorem irreducible_iff_prime_of_exists_unique_irreducible_factors - theorem multiplicity.finite_of_not_isUnit - theorem prime_factors_irreducible - theorem prime_factors_unique - theorem support_factorization - theorem ufm_of_gcd_of_wfDvdMonoid - theorem wellFounded_dvdNotUnit Added Mathlib/RingTheory/UniqueFactorizationDomain/Basic.lean + theorem Associates.prod_le_prod_iff_le + theorem Associates.unique' + theorem MulEquiv.uniqueFactorizationMonoid + theorem MulEquiv.uniqueFactorizationMonoid_iff + theorem UniqueFactorizationMonoid.dvd_of_dvd_mul_left_of_no_prime_factors + theorem UniqueFactorizationMonoid.dvd_of_dvd_mul_right_of_no_prime_factors + theorem UniqueFactorizationMonoid.exists_mem_factors + theorem UniqueFactorizationMonoid.exists_mem_factors_of_dvd + theorem UniqueFactorizationMonoid.exists_reduced_factors' + theorem UniqueFactorizationMonoid.exists_reduced_factors + theorem UniqueFactorizationMonoid.factors_mul + theorem UniqueFactorizationMonoid.factors_one + theorem UniqueFactorizationMonoid.factors_pos + theorem UniqueFactorizationMonoid.factors_pow + theorem UniqueFactorizationMonoid.factors_pow_count_prod + theorem UniqueFactorizationMonoid.factors_rel_of_associated + theorem UniqueFactorizationMonoid.factors_unique + theorem UniqueFactorizationMonoid.iff_exists_prime_factors + theorem UniqueFactorizationMonoid.isRelPrime_iff_no_prime_factors + theorem UniqueFactorizationMonoid.of_exists_prime_factors + theorem UniqueFactorizationMonoid.of_exists_unique_irreducible_factors + theorem WfDvdMonoid.iff_wellFounded_associates + theorem WfDvdMonoid.of_exists_prime_factors + theorem WfDvdMonoid.of_wellFoundedLT_associates + theorem WfDvdMonoid.of_wellFounded_associates + theorem WfDvdMonoid.of_wfDvdMonoid_associates + theorem WfDvdMonoid.wellFoundedLT_associates + theorem WfDvdMonoid.wellFounded_associates + theorem irreducible_iff_prime_of_exists_prime_factors + theorem irreducible_iff_prime_of_exists_unique_irreducible_factors + theorem prime_factors_irreducible + theorem prime_factors_unique Added Mathlib/RingTheory/UniqueFactorizationDomain/Defs.lean + theorem UniqueFactorizationMonoid.dvd_of_mem_factors + theorem UniqueFactorizationMonoid.exists_prime_factors + theorem UniqueFactorizationMonoid.exists_prime_iff + theorem UniqueFactorizationMonoid.factors_prod + theorem UniqueFactorizationMonoid.factors_zero + theorem UniqueFactorizationMonoid.induction_on_prime + theorem UniqueFactorizationMonoid.irreducible_of_factor + theorem UniqueFactorizationMonoid.ne_zero_of_mem_factors + theorem UniqueFactorizationMonoid.prime_of_factor + theorem WfDvdMonoid.exists_factors + theorem WfDvdMonoid.exists_irreducible_factor + theorem WfDvdMonoid.induction_on_irreducible + theorem WfDvdMonoid.isRelPrime_of_no_irreducible_factors + theorem WfDvdMonoid.not_unit_iff_exists_factors_eq + theorem ufm_of_gcd_of_wfDvdMonoid + theorem wellFounded_dvdNotUnit Added Mathlib/RingTheory/UniqueFactorizationDomain/FactorSet.lean + def Associates.BfactorSetMem + theorem Associates.FactorSet.coe_add + def Associates.FactorSet.prod + theorem Associates.FactorSet.prod_eq_zero_iff + theorem Associates.FactorSet.sup_add_inf_eq_add + theorem Associates.FactorSet.unique + def Associates.FactorSetMem + def Associates.bcount + theorem Associates.coprime_iff_inf_one + def Associates.count + theorem Associates.count_eq_zero_of_ne + theorem Associates.count_factors_eq_find_of_dvd_pow + theorem Associates.count_le_count_of_factors_le + theorem Associates.count_le_count_of_le + theorem Associates.count_mul + theorem Associates.count_mul_of_coprime' + theorem Associates.count_mul_of_coprime + theorem Associates.count_ne_zero_iff_dvd + theorem Associates.count_of_coprime + theorem Associates.count_pow + theorem Associates.count_reducible + theorem Associates.count_self + theorem Associates.count_some + theorem Associates.count_zero + theorem Associates.dvd_count_of_dvd_count_mul + theorem Associates.dvd_count_pow + theorem Associates.dvd_of_mem_factors' + theorem Associates.dvd_of_mem_factors + theorem Associates.eq_factors_of_eq_counts + theorem Associates.eq_of_eq_counts + theorem Associates.eq_of_factors_eq_factors + theorem Associates.eq_of_prod_eq_prod + theorem Associates.eq_pow_count_factors_of_dvd_pow + theorem Associates.eq_pow_find_of_dvd_irreducible_pow + theorem Associates.eq_pow_of_mul_eq_pow + theorem Associates.exists_prime_dvd_of_not_inf_one + theorem Associates.factorSetMem_eq_mem + theorem Associates.factors'_cong + theorem Associates.factors_eq_some_iff_ne_zero + theorem Associates.factors_eq_top_iff_zero + theorem Associates.factors_le + theorem Associates.factors_mk + theorem Associates.factors_mono + theorem Associates.factors_mul + theorem Associates.factors_one + theorem Associates.factors_prime_pow + theorem Associates.factors_prod + theorem Associates.factors_self + theorem Associates.factors_subsingleton + theorem Associates.factors_zero + theorem Associates.irreducible_of_mem_factorSet + theorem Associates.is_pow_of_dvd_count + theorem Associates.le_of_count_ne_zero + theorem Associates.map_subtype_coe_factors' + theorem Associates.mem_factorSet_some + theorem Associates.mem_factorSet_top + theorem Associates.mem_factors'_iff_dvd + theorem Associates.mem_factors'_of_dvd + theorem Associates.mem_factors_iff_dvd + theorem Associates.mem_factors_of_dvd + theorem Associates.pow_factors + theorem Associates.prime_pow_dvd_iff_le + theorem Associates.prime_pow_le_iff_le_bcount + theorem Associates.prod_add + theorem Associates.prod_coe + theorem Associates.prod_factors + theorem Associates.prod_le + theorem Associates.prod_mono + theorem Associates.prod_top + theorem Associates.reducible_not_mem_factorSet + theorem Associates.sup_mul_inf Added Mathlib/RingTheory/UniqueFactorizationDomain/Finite.lean Added Mathlib/RingTheory/UniqueFactorizationDomain/Finsupp.lean + theorem associated_of_factorization_eq + theorem factorization_eq_count + theorem factorization_mul + theorem factorization_one + theorem factorization_pow + theorem factorization_zero + theorem support_factorization Added Mathlib/RingTheory/UniqueFactorizationDomain/GCDMonoid.lean Added Mathlib/RingTheory/UniqueFactorizationDomain/Ideal.lean + theorem Ideal.IsPrime.exists_mem_prime_of_ne_bot + theorem Ideal.setOf_isPrincipal_wellFoundedOn_gt + theorem WfDvdMonoid.of_setOf_isPrincipal_wellFoundedOn_gt Added Mathlib/RingTheory/UniqueFactorizationDomain/Multiplicative.lean + theorem UniqueFactorizationMonoid.induction_on_coprime + theorem UniqueFactorizationMonoid.induction_on_prime_power + theorem UniqueFactorizationMonoid.multiplicative_of_coprime + theorem UniqueFactorizationMonoid.multiplicative_prime_power + theorem UniqueFactorizationMonoid.prime_pow_coprime_prod_of_coprime_insert Added Mathlib/RingTheory/UniqueFactorizationDomain/Multiplicity.lean + theorem UniqueFactorizationMonoid.count_normalizedFactors_eq' + theorem UniqueFactorizationMonoid.count_normalizedFactors_eq + theorem UniqueFactorizationMonoid.emultiplicity_eq_count_normalizedFactors + theorem UniqueFactorizationMonoid.le_emultiplicity_iff_replicate_le_normalizedFactors + theorem UniqueFactorizationMonoid.max_power_factor + theorem WfDvdMonoid.max_power_factor' + theorem WfDvdMonoid.max_power_factor + theorem multiplicity.finite_of_not_isUnit Added Mathlib/RingTheory/UniqueFactorizationDomain/Nat.lean + theorem Nat.factors_eq + theorem Nat.factors_multiset_prod_of_irreducible Added Mathlib/RingTheory/UniqueFactorizationDomain/NormalizedFactors.lean + theorem Associated.normalizedFactors_eq + theorem Irreducible.normalizedFactors_pow + theorem UniqueFactorizationMonoid.associated_iff_normalizedFactors_eq_normalizedFactors + theorem UniqueFactorizationMonoid.dvdNotUnit_iff_normalizedFactors_lt_normalizedFactors + theorem UniqueFactorizationMonoid.dvd_iff_normalizedFactors_le_normalizedFactors + theorem UniqueFactorizationMonoid.dvd_of_mem_normalizedFactors + theorem UniqueFactorizationMonoid.exists_associated_prime_pow_of_unique_normalized_factor + theorem UniqueFactorizationMonoid.exists_mem_normalizedFactors + theorem UniqueFactorizationMonoid.exists_mem_normalizedFactors_of_dvd + theorem UniqueFactorizationMonoid.factors_eq_normalizedFactors + theorem UniqueFactorizationMonoid.irreducible_of_normalized_factor + theorem UniqueFactorizationMonoid.mem_normalizedFactors_eq_of_associated + theorem UniqueFactorizationMonoid.mem_normalizedFactors_iff + theorem UniqueFactorizationMonoid.normalize_normalized_factor + theorem UniqueFactorizationMonoid.normalizedFactors_eq_of_dvd + theorem UniqueFactorizationMonoid.normalizedFactors_irreducible + theorem UniqueFactorizationMonoid.normalizedFactors_mul + theorem UniqueFactorizationMonoid.normalizedFactors_multiset_prod + theorem UniqueFactorizationMonoid.normalizedFactors_of_irreducible_pow + theorem UniqueFactorizationMonoid.normalizedFactors_one + theorem UniqueFactorizationMonoid.normalizedFactors_pos + theorem UniqueFactorizationMonoid.normalizedFactors_pow + theorem UniqueFactorizationMonoid.normalizedFactors_prod + theorem UniqueFactorizationMonoid.normalizedFactors_prod_eq + theorem UniqueFactorizationMonoid.normalizedFactors_prod_of_prime + theorem UniqueFactorizationMonoid.normalizedFactors_zero + theorem UniqueFactorizationMonoid.prime_of_normalized_factor + theorem UniqueFactorizationMonoid.zero_not_mem_normalizedFactors Modified MathlibTest/Variable.lean 2024-11-20 11:42:59 333a8fa feat: `Nat.cast_nonpos` (#19247) For simp confluence From GrowthInGroups ESTIMATED CHANGES Modified Mathlib/Data/Int/Defs.lean +/- theorem Int.natCast_nonpos_iff Modified Mathlib/Data/Nat/Cast/Order/Basic.lean + theorem Nat.cast_nonpos 2024-11-20 11:42:58 7600042 feat: `IsScalarTower` and `SMulCommClass` instances for pointwise actions of submodules (#19214) Moves: - `Submodule.smul_def` → `Submodule.setSemiring_smul_def` From GrowthInGroups ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/Operations.lean + theorem Submodule.mul_def + theorem Submodule.setSemiring_smul_def - theorem Submodule.smul_def Modified Mathlib/Algebra/Module/Submodule/Pointwise.lean + theorem Submodule.smul_def 2024-11-20 11:42:56 7d4e3bb chore(discover-lean-pr-testing): properly fetch tags (#19204) Instead of guessing the dates of the latest two tags in the `lean4-nightly` repo, we list the available remote tags and take the last two. We then fetch them with a shallow depth, to avoid cloning the entire repo. After that we parse the commit log between these two tags. ESTIMATED CHANGES Modified .github/workflows/discover-lean-pr-testing.yml 2024-11-20 10:54:05 e69c306 chore: deprecate `LinearOrderedCommGroupWithZero` lemmas (#19197) Deprecate almost all lemmas about `LinearOrderedCommGroupWithZero` and remove three months old deprecations. ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Archimedean/Basic.lean Modified Mathlib/Algebra/Order/GroupWithZero/Canonical.lean +/- def OrderIso.mulLeft₀' +/- def OrderIso.mulRight₀' +/- theorem div_le_div_left₀ +/- theorem div_le_div_right₀ - theorem le_mul_inv_of_mul_le - theorem le_of_le_mul_right +/- theorem mul_inv_le_of_le_mul - theorem mul_le_mul_left₀ - theorem mul_le_mul_right₀ - theorem mul_lt_right₀ - theorem one_le_mul₀ +/- theorem pow_lt_pow_succ Modified Mathlib/Algebra/Order/GroupWithZero/Unbundled.lean Modified Mathlib/Algebra/Order/GroupWithZero/Unbundled/Lemmas.lean +/- def OrderIso.divRight₀ +/- def OrderIso.mulLeft₀ + theorem OrderIso.mulLeft₀_symm +/- def OrderIso.mulRight₀ + theorem OrderIso.mulRight₀_symm Modified Mathlib/Algebra/Order/Hom/Monoid.lean Modified Mathlib/RingTheory/LaurentSeries.lean Modified Mathlib/RingTheory/Perfection.lean Modified Mathlib/RingTheory/Valuation/Integral.lean Modified Mathlib/RingTheory/Valuation/ValuationSubring.lean Modified Mathlib/Topology/Algebra/Valued/ValuationTopology.lean Modified Mathlib/Topology/Algebra/WithZeroTopology.lean 2024-11-20 10:44:46 ad04df3 feat: bounds for modular forms of non-positive weights (#18192) We use the Maximum modulus principle to show that modular forms of non-positive weights are bounded by its value of some element of the upper half plane imaginary part at least 1/2. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Analysis/Complex/UpperHalfPlane/Basic.lean + theorem ModularGroup.SLOnGLPos_smul_apply + theorem ModularGroup.SL_neg_smul + def ModularGroup.coe + theorem ModularGroup.coe_apply_complex + theorem ModularGroup.coe_one + theorem ModularGroup.denom_S + theorem ModularGroup.denom_apply + theorem ModularGroup.det_coe + theorem ModularGroup.im_smul_eq_div_normSq + theorem ModularGroup.sl_moeb - theorem UpperHalfPlane.ModularGroup.SLOnGLPos_smul_apply - theorem UpperHalfPlane.ModularGroup.SL_neg_smul - def UpperHalfPlane.ModularGroup.coe' - theorem UpperHalfPlane.ModularGroup.coe'_apply_complex - theorem UpperHalfPlane.ModularGroup.coe_one - theorem UpperHalfPlane.ModularGroup.denom_apply - theorem UpperHalfPlane.ModularGroup.det_coe' - theorem UpperHalfPlane.ModularGroup.sl_moeb +/- theorem UpperHalfPlane.c_mul_im_sq_le_normSq_denom +/- theorem UpperHalfPlane.coe_smul + theorem UpperHalfPlane.denom_one +/- theorem UpperHalfPlane.im_smul +/- theorem UpperHalfPlane.im_smul_eq_div_normSq +/- theorem UpperHalfPlane.neg_smul +/- theorem UpperHalfPlane.re_smul Modified Mathlib/NumberTheory/Modular.lean + theorem ModularGroup.exists_one_half_le_im_smul + theorem ModularGroup.exists_one_half_le_im_smul_and_norm_denom_le + theorem ModularGroup.three_le_four_mul_im_sq_of_mem_fd Modified Mathlib/NumberTheory/ModularForms/EisensteinSeries/Defs.lean Added Mathlib/NumberTheory/ModularForms/LevelOne.lean + theorem SlashInvariantForm.exists_one_half_le_im_and_norm_le + theorem SlashInvariantForm.wt_eq_zero_of_eq_const Modified Mathlib/NumberTheory/ModularForms/SlashActions.lean 2024-11-20 10:13:28 6095b78 feat(ModelTheory): Ax-Grothendieck (#6468) ESTIMATED CHANGES Modified Mathlib/FieldTheory/AxGrothendieck.lean + theorem FirstOrder.ACF_models_genericPolyMapSurjOnOfInjOn_of_prime + theorem FirstOrder.ACF_models_genericPolyMapSurjOnOfInjOn_of_prime_or_zero + theorem FirstOrder.realize_genericPolyMapSurjOnOfInjOn + theorem ax_grothendieck_of_definable + theorem ax_grothendieck_univ + theorem ax_grothendieck_zeroLocus 2024-11-20 09:38:40 2fb27be chore(Algebra/Module): further split `Defs.lean` (#18995) The goal is that we can define `Module` without depending on `Units`. The following moves out of `Defs.lean` are included in this PR: * Module structure over Nat and Int go to `Module/NatInt.lean` * Composition with `RingHom`s goes to `Module/RingHom.lean` * Results about units go to `Module/Basic.lean` ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/AddConstMap/Basic.lean Modified Mathlib/Algebra/CharZero/Quotient.lean Modified Mathlib/Algebra/Group/Submonoid/Pointwise.lean Modified Mathlib/Algebra/Homology/TotalComplex.lean Modified Mathlib/Algebra/Module/Basic.lean + theorem Units.neg_smul Modified Mathlib/Algebra/Module/Defs.lean - def AddCommMonoid.uniqueNatModule - theorem Int.smul_one_eq_cast - theorem Nat.cast_smul_eq_nsmul - theorem Nat.smul_one_eq_cast - def RingHom.smulOneHom - def RingHom.toModule - theorem Units.neg_smul - theorem map_natCast_smul - theorem nat_smul_eq_nsmul - theorem nsmul_eq_smul_cast - theorem ofNat_smul_eq_nsmul - def ringHomEquivModuleIsScalarTower Modified Mathlib/Algebra/Module/End.lean Modified Mathlib/Algebra/Module/Hom.lean Modified Mathlib/Algebra/Module/LinearMap/Defs.lean Added Mathlib/Algebra/Module/NatInt.lean + def AddCommMonoid.uniqueNatModule + theorem Int.smul_one_eq_cast + theorem Nat.cast_smul_eq_nsmul + theorem Nat.smul_one_eq_cast + theorem map_natCast_smul + theorem nat_smul_eq_nsmul + theorem nsmul_eq_smul_cast + theorem ofNat_smul_eq_nsmul Added Mathlib/Algebra/Module/RingHom.lean + def RingHom.smulOneHom + def RingHom.toModule + def ringHomEquivModuleIsScalarTower Modified Mathlib/Algebra/Order/Nonneg/Module.lean Modified Mathlib/Algebra/Ring/Subsemiring/Basic.lean Modified Mathlib/CategoryTheory/Preadditive/Basic.lean Modified Mathlib/Combinatorics/SimpleGraph/Regularity/Energy.lean Modified Mathlib/Data/Finsupp/Pointwise.lean Modified Mathlib/Data/Int/AbsoluteValue.lean Modified Mathlib/Data/Matrix/Diagonal.lean Modified Mathlib/Data/Set/Pointwise/SMul.lean Modified Mathlib/GroupTheory/ArchimedeanDensely.lean Modified Mathlib/GroupTheory/Divisible.lean Modified Mathlib/GroupTheory/FreeAbelianGroup.lean Modified Mathlib/GroupTheory/OrderOfElement.lean Modified Mathlib/GroupTheory/QuotientGroup/Basic.lean Modified Mathlib/Order/Filter/Germ/Basic.lean 2024-11-20 09:05:41 ef950f1 chore: delete unused private lemma in Complex/exponential (#19263) ESTIMATED CHANGES Modified Mathlib/Data/Complex/Exponential.lean 2024-11-20 09:05:39 650a3f8 chore: no `open Foo` after `namespace Foo` (#19223) ...and not opening the same name space twice. ESTIMATED CHANGES Modified Mathlib/Algebra/CubicDiscriminant.lean Modified Mathlib/Algebra/MvPolynomial/Cardinal.lean Modified Mathlib/Algebra/Polynomial/Identities.lean Modified Mathlib/Algebra/Polynomial/Mirror.lean Modified Mathlib/Algebra/Polynomial/Monomial.lean Modified Mathlib/Algebra/Polynomial/Reverse.lean Modified Mathlib/Algebra/Polynomial/Splits.lean Modified Mathlib/Algebra/Polynomial/Taylor.lean Modified Mathlib/Analysis/Normed/Operator/BanachSteinhaus.lean Modified Mathlib/Analysis/RCLike/Lemmas.lean Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Basic.lean Modified Mathlib/CategoryTheory/Closed/Cartesian.lean Modified Mathlib/CategoryTheory/FiberedCategory/BasedCategory.lean Modified Mathlib/CategoryTheory/Sites/Grothendieck.lean Modified Mathlib/CategoryTheory/Sites/PreservesSheafification.lean Modified Mathlib/CategoryTheory/Sites/Pretopology.lean Modified Mathlib/Combinatorics/Enumerative/Catalan.lean Modified Mathlib/Data/Matrix/Basis.lean Modified Mathlib/Data/Matrix/Hadamard.lean Modified Mathlib/Data/Matrix/Kronecker.lean Modified Mathlib/Data/Nat/Choose/Dvd.lean Modified Mathlib/Data/Nat/MaxPowDiv.lean Modified Mathlib/Data/Nat/Periodic.lean Modified Mathlib/Data/Rat/Lemmas.lean Modified Mathlib/Data/Real/Irrational.lean Modified Mathlib/FieldTheory/IntermediateField/Basic.lean Modified Mathlib/LinearAlgebra/CrossProduct.lean Modified Mathlib/LinearAlgebra/Matrix/Charpoly/Minpoly.lean Modified Mathlib/LinearAlgebra/Matrix/Determinant/Basic.lean Modified Mathlib/LinearAlgebra/Matrix/Symmetric.lean Modified Mathlib/LinearAlgebra/Matrix/Transvection.lean Modified Mathlib/LinearAlgebra/QuadraticForm/Prod.lean Modified Mathlib/MeasureTheory/Function/StronglyMeasurable/Basic.lean Modified Mathlib/NumberTheory/ClassNumber/AdmissibleCardPowDegree.lean Modified Mathlib/NumberTheory/Primorial.lean Modified Mathlib/RingTheory/Adjoin/PowerBasis.lean Modified Mathlib/RingTheory/EisensteinCriterion.lean Modified Mathlib/RingTheory/IntegralDomain.lean Modified Mathlib/RingTheory/Jacobson.lean Modified Mathlib/RingTheory/MatrixAlgebra.lean Modified Mathlib/RingTheory/Nullstellensatz.lean Modified Mathlib/RingTheory/Polynomial/Content.lean Modified Mathlib/RingTheory/Polynomial/Dickson.lean Modified Mathlib/RingTheory/Polynomial/Pochhammer.lean Modified Mathlib/RingTheory/Polynomial/ScaleRoots.lean Modified Mathlib/RingTheory/ReesAlgebra.lean Modified Mathlib/SetTheory/Cardinal/Divisibility.lean Modified Mathlib/Topology/Algebra/Nonarchimedean/Basic.lean Modified Mathlib/Topology/Algebra/Polynomial.lean Modified MathlibTest/matrix.lean Modified MathlibTest/norm_cast.lean 2024-11-20 08:25:07 55c020e feat(Order/WithBot): Equiv.withBotSubtypeNe (#19251) Needed in #19210 From the Carleson project ESTIMATED CHANGES Modified Mathlib/Order/WithBot.lean + def Equiv.withBotSubtypeNe + def Equiv.withTopSubtypeNe 2024-11-20 08:25:05 23f454f refactor(EReal): add add/sub lemmas and refactor limsup_add on EReal (#18879) This PR : - adds a few lemmas about addition/subtraction in `Topology.Instances.EReal`. These are translations in `EReal` of similar lemmas about multiplication/division in `ENNReal` (see `Data.ENNReal.Inv`). - renames [EReal.add_le_of_forall_add_le](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Data/Real/EReal.html#EReal.add_le_of_forall_add_le), [EReal.le_add_of_forall_le_add](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Data/Real/EReal.html#EReal.le_add_of_forall_le_add) to bring them in line with similar lemmas in `Real`/`ENNReal` (see e.g. [add_le_of_forall_lt](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Algebra/Order/Group/DenselyOrdered.html#add_le_of_forall_lt)) - simplifies significantly the proofs of `add_le_of_forall_lt` and `le_add_of_forall_lt`. - renames [EReal.add_liminf_le_liminf_add](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Topology/Instances/EReal.html#EReal.add_liminf_le_liminf_add), [EReal.limsup_add_le_add_limsup](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Topology/Instances/EReal.html#EReal.limsup_add_le_add_limsup), [EReal.limsup_add_liminf_le_limsup_add](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Topology/Instances/EReal.html#EReal.limsup_add_liminf_le_limsup_add), [EReal.liminf_add_le_limsup_add_liminf](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Topology/Instances/EReal.html#EReal.liminf_add_le_limsup_add_liminf) to bring them in line with similar lemmas in `Real`/`ENNReal` (see e.g. [ENNReal.limsup_mul_le](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Order/Filter/ENNReal.html#ENNReal.limsup_mul_le)) - removes [EReal.le_of_forall_lt_iff_le](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Data/Real/EReal.html#EReal.le_of_forall_lt_iff_le), [EReal.ge_of_forall_gt_iff_ge](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Data/Real/EReal.html#EReal.ge_of_forall_gt_iff_ge), [EReal.limsup_le_iff](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Topology/Instances/EReal.html#EReal.limsup_le_iff) which were very specialized lemmas used only in the older version of the proofs above. ESTIMATED CHANGES Modified Mathlib/Data/Real/EReal.lean - theorem EReal.add_le_of_forall_add_le + theorem EReal.add_le_of_forall_lt + theorem EReal.add_le_of_le_sub + theorem EReal.add_lt_of_lt_sub + theorem EReal.le_add_of_forall_gt - theorem EReal.le_add_of_forall_le_add + theorem EReal.le_sub_iff_add_le + theorem EReal.lt_neg_comm + theorem EReal.lt_neg_of_lt_neg + theorem EReal.neg_lt_comm - theorem EReal.neg_lt_iff_neg_lt +/- theorem EReal.neg_lt_of_neg_lt + theorem EReal.sub_add_cancel_left + theorem EReal.sub_bot + theorem EReal.sub_le_iff_le_add + theorem EReal.sub_le_of_le_add' + theorem EReal.sub_le_of_le_add + theorem EReal.sub_lt_iff + theorem EReal.sub_lt_of_lt_add' + theorem EReal.sub_lt_of_lt_add Modified Mathlib/Dynamics/TopologicalEntropy/CoverEntropy.lean Modified Mathlib/MeasureTheory/Integral/VitaliCaratheodory.lean Modified Mathlib/Topology/Instances/EReal.lean - theorem EReal.add_liminf_le_liminf_add + theorem EReal.le_liminf_add + theorem EReal.le_limsup_add + theorem EReal.liminf_add_le - theorem EReal.liminf_add_le_limsup_add_liminf + theorem EReal.limsup_add_le - theorem EReal.limsup_add_le_add_limsup - theorem EReal.limsup_add_liminf_le_limsup_add - theorem EReal.limsup_le_iff 2024-11-20 08:15:52 995c25c feat(Data/Nat/Nth): `nth_mem_anti` (#19169) Add another lemma for working with `Nat.nth`: ```lean lemma nth_mem_anti {a b : ℕ} (hab : a ≤ b) (h : p (nth p b)) : p (nth p a) := by ``` Feel free to golf if you see a simpler way of proving this. ESTIMATED CHANGES Modified Mathlib/Data/Nat/Nth.lean + theorem Nat.nth_mem_anti 2024-11-20 06:53:43 0e836d6 feat: `maintainer merge?`/`maintainer delegate?` switch for spoiler (#19230) ESTIMATED CHANGES Modified .github/workflows/maintainer_merge.yml Modified scripts/maintainer_merge_message.sh 2024-11-20 00:01:29 25b91b6 feat: commutativity of `NonUnital{Star}Algebra.adjoin` (#18612) ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/NonUnitalSubalgebra.lean + theorem NonUnitalAlgebra.adjoin_le_centralizer_centralizer + theorem NonUnitalAlgebra.commute_of_mem_adjoin_of_forall_mem_commute + theorem NonUnitalAlgebra.commute_of_mem_adjoin_self + theorem NonUnitalAlgebra.commute_of_mem_adjoin_singleton_of_commute Modified Mathlib/Algebra/Star/NonUnitalSubalgebra.lean + theorem NonUnitalStarAlgebra.adjoin_le_centralizer_centralizer + theorem NonUnitalStarAlgebra.commute_of_mem_adjoin_of_forall_mem_commute + theorem NonUnitalStarAlgebra.commute_of_mem_adjoin_self + theorem NonUnitalStarAlgebra.commute_of_mem_adjoin_singleton_of_commute + theorem NonUnitalStarSubalgebra.centralizer_toNonUnitalSubalgebra + theorem NonUnitalStarSubalgebra.coe_centralizer_centralizer 2024-11-19 22:30:50 c3a2d7b feat: `#parse` -- a command to parse text and log outputs (#16305) This is a spin-off of #16230. It introduces a function written by Matt that allows to use `#guard_msgs` to check parsing errors. The new command is called `#guard_exceptions` and mimics very closely `#guard_msgs`. As a way of showing how to use it, the PR also adds tests for Stacks Project Tags. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Util/ParseCommand.lean + def Mathlib.GuardExceptions.captureException Modified MathlibTest/StacksAttribute.lean 2024-11-19 22:02:12 4e69bf9 feat(SetTheory/ZFC/Ordinal): Initial development of ordinals in ZFSet (#15793) This is ported from the Mathlib 3 branch [`von_neumann_v2`](https://github.com/leanprover-community/mathlib3/blob/5b3c1d3d66838f426b44cae25b615f26438c8acb/src/set_theory/zfc/ordinal.lean). This is meant as a small, initial PR to iron out any kinks (with the definition, notation, auto-ported lemmas, etc.) before fully developing the file. Of particular note is the quite bare-bones definition of an ordinal. Surprisingly, our weakened transitivity assumption is equivalent to the much stronger claim that ordinals are well-ordered under `∈`; see #17001 for a proof. ESTIMATED CHANGES Modified Mathlib/SetTheory/ZFC/Ordinal.lean + theorem ZFSet.IsOrdinal.mem_trans + theorem ZFSet.IsOrdinal.subset_of_mem + structure ZFSet.IsOrdinal +/- theorem ZFSet.IsTransitive.subset_of_mem - theorem ZFSet.empty_isTransitive + theorem ZFSet.isOrdinal_iff_isTrans + theorem ZFSet.isTransitive_empty +/- theorem ZFSet.isTransitive_iff_sUnion_subset 2024-11-19 19:36:06 29f545b chore: generalise `div_le_div` to groups with zero (#18917) ... and lemmas around ESTIMATED CHANGES Modified Archive/Imo/Imo1998Q2.lean Modified Archive/Imo/Imo2001Q2.lean Modified Mathlib/Algebra/GeomSum.lean Modified Mathlib/Algebra/Order/Chebyshev.lean Modified Mathlib/Algebra/Order/Field/Basic.lean +/- theorem div_le_div +/- theorem div_le_div_iff - theorem div_le_div_of_nonneg_left - theorem div_le_div_of_nonneg_right +/- theorem div_le_div_right +/- theorem div_lt_div_iff +/- theorem div_lt_div_left - theorem div_lt_div_of_pos_left - theorem div_lt_div_of_pos_right +/- theorem div_lt_div_right Modified Mathlib/Algebra/Order/GroupWithZero/Unbundled.lean + theorem div_le_div_iff_of_pos_left + theorem div_le_div_iff_of_pos_right + theorem div_le_div_iff₀ + theorem div_le_div_of_nonneg_left + theorem div_le_div_of_nonneg_right +/- theorem div_le_div₀ + theorem div_lt_div_iff_of_pos_left + theorem div_lt_div_iff_of_pos_right + theorem div_lt_div_iff₀ + theorem div_lt_div_of_pos_left + theorem div_lt_div_of_pos_right + theorem div_lt_div₀' + theorem div_lt_div₀ Modified Mathlib/Algebra/Order/Monovary.lean Modified Mathlib/Algebra/Polynomial/DenomsClearable.lean Modified Mathlib/Analysis/Analytic/Basic.lean Modified Mathlib/Analysis/Analytic/OfScalars.lean Modified Mathlib/Analysis/Calculus/BumpFunction/Basic.lean Modified Mathlib/Analysis/Calculus/BumpFunction/Normed.lean Modified Mathlib/Analysis/Calculus/MeanValue.lean Modified Mathlib/Analysis/Complex/AbsMax.lean Modified Mathlib/Analysis/Complex/Liouville.lean Modified Mathlib/Analysis/Complex/LocallyUniformLimit.lean Modified Mathlib/Analysis/Complex/Periodic.lean Modified Mathlib/Analysis/Complex/Schwarz.lean Modified Mathlib/Analysis/Complex/UpperHalfPlane/Metric.lean Modified Mathlib/Analysis/Convex/Mul.lean Modified Mathlib/Analysis/Convex/Slope.lean Modified Mathlib/Analysis/Convex/SpecificFunctions/Basic.lean Modified Mathlib/Analysis/Convex/Uniform.lean Modified Mathlib/Analysis/Normed/Algebra/Spectrum.lean Modified Mathlib/Analysis/Normed/Ring/SeminormFromBounded.lean Modified Mathlib/Analysis/Normed/Ring/SeminormFromConst.lean Modified Mathlib/Analysis/NormedSpace/RCLike.lean Modified Mathlib/Analysis/PSeries.lean Modified Mathlib/Analysis/SpecialFunctions/Log/Base.lean Modified Mathlib/Analysis/SpecialFunctions/Stirling.lean Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Basic.lean Modified Mathlib/Analysis/SpecificLimits/FloorPow.lean Modified Mathlib/Combinatorics/Additive/PluenneckeRuzsa.lean Modified Mathlib/Combinatorics/SetFamily/AhlswedeZhang.lean Modified Mathlib/Combinatorics/SetFamily/LYM.lean Modified Mathlib/Data/Finset/Density.lean Modified Mathlib/Data/NNReal/Defs.lean Modified Mathlib/Data/Rat/Cast/Order.lean Modified Mathlib/Data/Real/Pi/Bounds.lean Modified Mathlib/Dynamics/Circle/RotationNumber/TranslationNumber.lean Modified Mathlib/Geometry/Euclidean/Inversion/Basic.lean Modified Mathlib/GroupTheory/OrderOfElement.lean Modified Mathlib/MeasureTheory/Integral/PeakFunction.lean Modified Mathlib/MeasureTheory/Measure/Haar/Basic.lean Modified Mathlib/NumberTheory/DiophantineApproximation.lean Modified Mathlib/NumberTheory/FLT/Basic.lean Modified Mathlib/NumberTheory/Harmonic/Defs.lean Modified Mathlib/NumberTheory/Harmonic/ZetaAsymp.lean Modified Mathlib/NumberTheory/LSeries/HurwitzZetaEven.lean Modified Mathlib/NumberTheory/Modular.lean Modified Mathlib/NumberTheory/Padics/Hensel.lean Modified Mathlib/NumberTheory/Pell.lean Modified Mathlib/NumberTheory/Transcendental/Liouville/Basic.lean Modified Mathlib/NumberTheory/Transcendental/Liouville/LiouvilleNumber.lean Modified Mathlib/NumberTheory/Transcendental/Liouville/Measure.lean Modified Mathlib/Order/Interval/Set/IsoIoo.lean Modified Mathlib/RingTheory/Multiplicity.lean Modified Mathlib/RingTheory/Polynomial/Hermite/Basic.lean Modified Mathlib/RingTheory/PowerSeries/WellKnown.lean Modified Mathlib/SetTheory/Ordinal/Notation.lean Modified Mathlib/SetTheory/Surreal/Dyadic.lean Modified Mathlib/Tactic/LinearCombination.lean Modified Mathlib/Tactic/LinearCombination/Lemmas.lean Modified Mathlib/Tactic/NormNum/GCD.lean Modified Mathlib/Topology/Connected/PathConnected.lean Modified Mathlib/Topology/MetricSpace/Contracting.lean Modified Mathlib/Topology/TietzeExtension.lean Modified MathlibTest/apply_rules.lean Modified scripts/no_lints_prime_decls.txt Modified scripts/noshake.json 2024-11-19 17:43:43 22fb3a4 chore: make `Finset.subset_union_left` simp (#19249) ... and around. The corresponding `Set` lemmas already are simp From GrowthInGroups ESTIMATED CHANGES Modified Mathlib/Data/Finset/Lattice/Basic.lean +/- theorem Finset.inter_subset_left +/- theorem Finset.inter_subset_right +/- theorem Finset.subset_union_left +/- theorem Finset.subset_union_right 2024-11-19 17:43:41 6b9f5f1 fix: assert_not_exists `CStarRing` that exists but not here (#19226) [Reported on Zulip](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/CI.3A.20noisy.20.22test.20mathlib.22/near/483123791) ESTIMATED CHANGES Modified Mathlib/Topology/ContinuousMap/Bounded/Basic.lean 2024-11-19 17:43:40 fdc34d2 feat: `IsSelfAdjoint.smul_iff` (#19216) Also generalizes some typeclass assumptions from `DivisionSemiring` to `GroupWithZero` and renames a few declarations. ESTIMATED CHANGES Modified Mathlib/Algebra/Star/Basic.lean - theorem star_div' + theorem star_div₀ - theorem star_inv' + theorem star_inv₀ +/- theorem star_zpow₀ Modified Mathlib/Algebra/Star/Pointwise.lean Modified Mathlib/Algebra/Star/SelfAdjoint.lean + theorem IsSelfAdjoint.inv₀ +/- theorem IsSelfAdjoint.smul + theorem IsSelfAdjoint.smul_iff + theorem IsSelfAdjoint.zpow₀ Modified Mathlib/Analysis/InnerProductSpace/Symmetric.lean Modified Mathlib/Analysis/RCLike/Basic.lean Modified Mathlib/Data/Complex/Basic.lean 2024-11-19 17:43:39 7242600 feat: quantales (#17289) First definition of Quantales - a non-commutative generalization of Locales/Frames. There are still some points of discussion, which would require changes elsewhere in Mathlib, but this definition should be workeable as a starting point (I think). It's my first PR, but I've tried to stay close to what I've seen in CompleteLattices. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Order/Quantale.lean + def IsAddQuantale.leftAddResiduation + def IsAddQuantale.rightAddResiduation + theorem IsQuantale.iSup_mul_distrib + def IsQuantale.leftMulResiduation + theorem IsQuantale.leftMulResiduation_le_iff_mul_le + theorem IsQuantale.mul_iSup_distrib + theorem IsQuantale.mul_sup_distrib + def IsQuantale.rightMulResiduation + theorem IsQuantale.rightMulResiduation_le_iff_mul_le + theorem IsQuantale.sup_mul_distrib + theorem mul_sSup_distrib + theorem sSup_mul_distrib Modified Mathlib/Tactic/ToAdditive/Frontend.lean Modified docs/references.bib Modified scripts/noshake.json 2024-11-19 17:06:41 22229e9 feat: `norm_num` extension for `Rat.num` and `Rat.den` (#19099) Closes #18826 ESTIMATED CHANGES Modified Mathlib/Tactic/NormNum/GCD.lean + def Tactic.NormNum.evalRatDen + def Tactic.NormNum.evalRatNum + theorem Tactic.NormNum.isInt_ratNum + theorem Tactic.NormNum.isNat_ratDen Modified MathlibTest/norm_num_ext.lean 2024-11-19 17:06:38 ee43042 feat: define instances of `Finite`, `Fintype`, `DecidableEq` for `MulEquiv` (#17057) ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Equiv/Basic.lean + theorem MulEquiv.toEquiv_injective Modified Mathlib/Data/Finite/Prod.lean Modified Mathlib/Data/Fintype/Basic.lean Modified Mathlib/Data/Fintype/Perm.lean 2024-11-19 16:30:35 5352384 chore: split Topology.UniformSpace.Basic (#19194) and reorganize material in UniformSpace.Compact (moving some material from Basic into it, and splitting parts of the original content out into later files) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Topology/Algebra/UniformGroup/Basic.lean Modified Mathlib/Topology/Algebra/UniformGroup/Defs.lean Modified Mathlib/Topology/EMetricSpace/Defs.lean Modified Mathlib/Topology/GDelta/UniformSpace.lean Modified Mathlib/Topology/MetricSpace/Pseudo/Defs.lean Modified Mathlib/Topology/UniformSpace/Basic.lean - theorem Disjoint.exists_uniform_thickening - theorem Disjoint.exists_uniform_thickening_of_basis - theorem IsCompact.nhdsSet_basis_uniformity - theorem lebesgue_number_lemma - theorem lebesgue_number_lemma_sUnion - theorem lebesgue_number_of_compact_open Modified Mathlib/Topology/UniformSpace/Cauchy.lean Modified Mathlib/Topology/UniformSpace/Compact.lean - theorem CompactSpace.uniformContinuous_of_continuous - theorem CompactSpace.uniformEquicontinuous_of_equicontinuous - theorem Continuous.tendstoUniformly - theorem Continuous.uniformContinuous_of_tendsto_cocompact - theorem ContinuousOn.tendstoUniformly + theorem Disjoint.exists_uniform_thickening + theorem Disjoint.exists_uniform_thickening_of_basis - theorem HasCompactMulSupport.uniformContinuous_of_continuous - theorem IsCompact.mem_uniformity_of_prod + theorem IsCompact.nhdsSet_basis_uniformity - theorem IsCompact.uniformContinuousAt_of_continuousAt - theorem IsCompact.uniformContinuousOn_of_continuous + theorem lebesgue_number_lemma + theorem lebesgue_number_lemma_sUnion + theorem lebesgue_number_of_compact_open - def uniformSpaceOfCompactT2 Modified Mathlib/Topology/UniformSpace/CompactConvergence.lean Added Mathlib/Topology/UniformSpace/HeineCantor.lean + theorem CompactSpace.uniformContinuous_of_continuous + theorem CompactSpace.uniformEquicontinuous_of_equicontinuous + theorem Continuous.tendstoUniformly + theorem Continuous.uniformContinuous_of_tendsto_cocompact + theorem ContinuousOn.tendstoUniformly + theorem HasCompactMulSupport.uniformContinuous_of_continuous + theorem IsCompact.mem_uniformity_of_prod + theorem IsCompact.uniformContinuousAt_of_continuousAt + theorem IsCompact.uniformContinuousOn_of_continuous Added Mathlib/Topology/UniformSpace/OfCompactT2.lean + def uniformSpaceOfCompactT2 Modified Mathlib/Topology/UniformSpace/OfFun.lean Modified Mathlib/Topology/UniformSpace/Separation.lean Modified Mathlib/Topology/UniformSpace/UniformConvergence.lean 2024-11-19 16:30:33 d6c2c91 feat: inclusion-exclusion principle (#17957) It was a long-standing TODO to have this in mathlib. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/BigOperators/Group/Finset.lean + theorem Finset.prod_filter_not_mul_prod_filter Added Mathlib/Combinatorics/Enumerative/InclusionExclusion.lean + theorem Finset.inclusion_exclusion_card_biUnion + theorem Finset.inclusion_exclusion_card_inf_compl + theorem Finset.inclusion_exclusion_sum_biUnion + theorem Finset.inclusion_exclusion_sum_inf_compl + theorem Finset.prod_indicator_biUnion_sub_indicator Modified docs/100.yaml 2024-11-19 16:30:32 265b1fe feat(Topology/Connected/PathConnected): some instances for locally path-connected spaces (#17064) Shows that locally path-connected spaces are locally connected, and that quotients and disjoint unions of locally path-connected spaces are locally path-connected. ESTIMATED CHANGES Modified Mathlib/Topology/Connected/PathConnected.lean + theorem LocPathConnectedSpace.coinduced + theorem Topology.IsQuotientMap.locPathConnectedSpace + theorem isOpen_isPathConnected_basis + theorem locPathConnectedSpace_iff_isOpen_pathComponentIn + theorem locPathConnectedSpace_iff_pathComponentIn_mem_nhds 2024-11-19 15:36:28 fa5742c feat: `a ^ m ≤ b ^ n` as a `gcongr` lemma (#19220) From GrowthInGroups ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Monoid/Unbundled/Pow.lean + theorem pow_le_pow Modified MathlibTest/GCongr/inequalities.lean 2024-11-19 15:27:44 e948d85 chore: further renames (#19243) Similar to #19209: bring more lemma names in line with the naming convention. ESTIMATED CHANGES Modified Mathlib/AlgebraicGeometry/PrimeSpectrum/Basic.lean Modified Mathlib/AlgebraicGeometry/Properties.lean Modified Mathlib/Dynamics/Minimal.lean - theorem isMinimal_iff_closed_smul_invariant + theorem isMinimal_iff_isClosed_smul_invariant Modified Mathlib/MeasureTheory/Group/Action.lean Modified Mathlib/MeasureTheory/Group/Measure.lean Modified Mathlib/MeasureTheory/Measure/Regular.lean - theorem MeasureTheory.Measure.InnerRegular.exists_compact_not_null + theorem MeasureTheory.Measure.InnerRegular.exists_isCompact_not_null - theorem MeasureTheory.Measure.Regular.exists_compact_not_null + theorem MeasureTheory.Measure.Regular.exists_isCompact_not_null Modified Mathlib/Topology/ContinuousMap/Algebra.lean Modified Mathlib/Topology/Irreducible.lean - theorem isIrreducible_iff_sUnion_closed + theorem isIrreducible_iff_sUnion_isClosed - theorem isPreirreducible_iff_closed_union_closed + theorem isPreirreducible_iff_isClosed_union_isClosed Modified Mathlib/Topology/Maps/Basic.lean - theorem Topology.IsInducing.isQuotientMap_iff_closed + theorem Topology.IsInducing.isQuotientMap_iff_isClosed Modified Mathlib/Topology/NoetherianSpace.lean Modified Mathlib/Topology/UniformSpace/CompactConvergence.lean - theorem ContinuousMap.tendsto_iff_forall_compact_tendstoUniformlyOn + theorem ContinuousMap.tendsto_iff_forall_isCompact_tendstoUniformlyOn 2024-11-19 15:12:10 62b241e feat(AlgebraicGeometry): define integral morphisms (#19121) also shows that finite = integral + locally of finite type and closed immersion = finte + mono ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/AlgebraicGeometry/Morphisms/Finite.lean + theorem AlgebraicGeometry.IsClosedImmersion.eq_isFinite_inf_mono + theorem AlgebraicGeometry.IsClosedImmersion.iff_isFinite_and_mono + theorem AlgebraicGeometry.IsFinite.eq_inf + theorem AlgebraicGeometry.IsFinite.iff_isIntegralHom_and_locallyOfFiniteType Added Mathlib/AlgebraicGeometry/Morphisms/Integral.lean Modified Mathlib/RingTheory/RingHom/Integral.lean + theorem RingHom.isIntegral_ofLocalizationSpan 2024-11-19 13:00:52 d6d7113 fix: replace backticks with single quotes in maintainer merge action (#19228) This should prevent mangling the `spoiler` message on Zulip. ESTIMATED CHANGES Modified scripts/maintainer_merge_message.sh 2024-11-19 11:44:13 f7b68aa feat(AlgebraicGeometry): ring hom is integral if the induced map between affine lines is closed (#18804) ESTIMATED CHANGES Modified Mathlib/Algebra/Polynomial/Reverse.lean + theorem Polynomial.reflect_map + theorem Polynomial.reflect_one Modified Mathlib/AlgebraicGeometry/PrimeSpectrum/Basic.lean + theorem PrimeSpectrum.closure_image_comap_zeroLocus - theorem PrimeSpectrum.comap_singleton_isClosed_of_isIntegral + theorem PrimeSpectrum.isClosedMap_comap_of_isIntegral + theorem PrimeSpectrum.isClosed_comap_singleton_of_isIntegral + theorem PrimeSpectrum.isIntegral_of_isClosedMap_comap_mapRingHom 2024-11-19 11:04:13 442a60c chore: update Mathlib dependencies 2024-11-19 (#19242) This PR updates the Mathlib dependencies. ESTIMATED CHANGES Modified lake-manifest.json 2024-11-19 11:04:11 1212c0a chore: some renames `iff_open` -> `iff_isOpen` (#19209) Our naming convention prefers `isOpen`. See the individual commit messages for details. ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Constructions/BorelSpace/Basic.lean Modified Mathlib/Topology/Algebra/UniformGroup/Defs.lean + theorem UniformGroup.uniformContinuous_iff_isOpen_ker - theorem UniformGroup.uniformContinuous_iff_open_ker Modified Mathlib/Topology/Connected/LocallyConnected.lean + theorem locallyConnectedSpace_iff_hasBasis_isOpen_isConnected - theorem locallyConnectedSpace_iff_open_connected_basis - theorem locallyConnectedSpace_iff_open_connected_subsets + theorem locallyConnectedSpace_iff_subsets_isOpen_isConnected Modified Mathlib/Topology/Defs/Filter.lean Modified Mathlib/Topology/Inseparable.lean - theorem inseparable_iff_forall_closed + theorem inseparable_iff_forall_isClosed + theorem inseparable_iff_forall_isOpen - theorem inseparable_iff_forall_open Modified Mathlib/Topology/Separation/Basic.lean Modified Mathlib/Topology/Sets/Opens.lean Modified Mathlib/Topology/UniformSpace/Basic.lean + theorem isOpen_iff_isOpen_ball_subset - theorem isOpen_iff_open_ball_subset 2024-11-19 11:04:10 2fd09be feat(fun_prop): failure cache for `fun_prop` and command to print out `fun_prop` theorems (#19112) Add new cache to `fun_prop` for failed goals. `fun_prop` used to take exponentially long to fail without this cache. Also add command `#print_fun_prop_theorems HAdd.hAdd` prints out all `fun_prop` theorems associated with addition. ESTIMATED CHANGES Modified Mathlib/Tactic/FunProp/Core.lean + def Mathlib.Meta.FunProp.cacheFailure Modified Mathlib/Tactic/FunProp/Elab.lean Modified Mathlib/Tactic/FunProp/Theorems.lean Modified Mathlib/Tactic/FunProp/Types.lean Modified MathlibTest/fun_prop_dev.lean 2024-11-19 11:04:08 60930c1 chore: shortcut instances for `Finite Bool`, `Finite Prop` (#19086) These can be defined much earlier. Also add `WellFoundedLT` shortcut instances. [Zulip](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/WellFoundedLT.20Prop.20is.20not.20found.20when.20importing.20too.20much) ESTIMATED CHANGES Modified Mathlib/Data/Finite/Defs.lean Modified Mathlib/Data/Fintype/Card.lean 2024-11-19 10:10:59 487b33d chore: fix some left/right injectivity names (#19239) Follow-up Mathlib fixes from [zulip discussion](https://leanprover.zulipchat.com/#narrow/channel/113488-general/topic/.60add_right_inj.60/near/482835891). ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Invertible/Defs.lean +/- theorem mul_left_inj_of_invertible +/- theorem mul_right_inj_of_invertible Modified Mathlib/Algebra/GroupWithZero/Basic.lean Modified Mathlib/Analysis/SpecialFunctions/Bernstein.lean 2024-11-19 09:31:54 01fc25a chore(Algebra/Bilinear): deprecate duplicated injectivity lemmas (#19231) These are less general versions of results stated elsewhere. This partially deprecates @Vierkantor's https://github.com/leanprover-community/mathlib3/pull/6588. Also tidy the one caller of these lemmas. ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/Bilinear.lean +/- theorem LinearMap.mul_injective Modified Mathlib/RingTheory/Ideal/Basis.lean 2024-11-19 09:20:30 08c6918 feat(KrullDimension): krullDim_eq_iSup_height_add_coheight_of_nonempty (#19155) Part of #15524. This adds a characterization of the Krull Dimenion based on the sum of height and coheight of elements. From the Carleson project. ESTIMATED CHANGES Modified Mathlib/Order/KrullDimension.lean + theorem Order.coheight_le_krullDim + theorem Order.height_le_krullDim + theorem Order.krullDim_eq_iSup_height_add_coheight_of_nonempty 2024-11-19 08:56:06 a5783c9 feat(FieldTheory/Minpoly): minpoly K x splits implies minpoly K (algebraMap K L a - x) splits (#17369) Add `minpoly K x` splits implies `minpoly K (- x)` splits and `minpoly K (algebraMap K L a - x)` splits. This is after #17093 . ESTIMATED CHANGES Modified Mathlib/Algebra/Polynomial/AlgebraMap.lean + def Polynomial.algEquivAevalNegX +/- def Polynomial.algEquivAevalXAddC +/- theorem Polynomial.algEquivAevalXAddC_eq_iff +/- theorem Polynomial.algEquivAevalXAddC_symm + def Polynomial.algEquivCMulXAddC + theorem Polynomial.algEquivCMulXAddC_symm_eq + theorem Polynomial.comp_neg_X_comp_neg_X + theorem Polynomial.dvd_comp_C_mul_X_add_C_iff + theorem Polynomial.dvd_comp_neg_X_iff Modified Mathlib/Algebra/Polynomial/Splits.lean +/- theorem Polynomial.Splits.comp_X_add_C +/- theorem Polynomial.Splits.comp_X_sub_C + theorem Polynomial.Splits.comp_neg_X + theorem Polynomial.Splits.comp_of_degree_le_one + theorem Polynomial.Splits.comp_of_map_degree_le_one + theorem Polynomial.splits_iff_comp_splits_of_degree_eq_one Modified Mathlib/RingTheory/Adjoin/Field.lean + theorem minpoly_algebraMap_sub_splits + theorem minpoly_neg_splits 2024-11-19 08:43:59 8ad393d feat(SetTheory/ZFC/Basic): results on pairs (#19144) We add a few lemmas on unordered pairs and use them to golf down the injectivity of the Kuratowski pair. ESTIMATED CHANGES Modified Mathlib/SetTheory/ZFC/Basic.lean + theorem ZFSet.pair_eq_singleton + theorem ZFSet.pair_eq_singleton_iff +/- theorem ZFSet.pair_injective + theorem ZFSet.singleton_eq_pair_iff 2024-11-19 08:43:58 1aefbad feat(Combinatorics/SimpleGraph/Matching): add `IsMatching.exists_of_disjoint_sets_of_card_eq` (#18905) This lemma supports at least two use cases: Matchings in cliques and matchings with a (sub)set of universal vertices. In preparation for Tutte's theorem. ESTIMATED CHANGES Modified Mathlib/Combinatorics/SimpleGraph/Matching.lean + theorem SimpleGraph.Subgraph.IsMatching.exists_of_disjoint_sets_of_equiv 2024-11-19 08:25:54 809872d refactor(CategoryTheory): make PreservesLimit and ReflectsLimit props (#19206) All changes are straightforward. Some universe parameters had to be made explicit, but without changing the level of generality of the definitions/statements. ESTIMATED CHANGES Modified Mathlib/Algebra/Category/AlgebraCat/Limits.lean Modified Mathlib/Algebra/Category/Grp/AB5.lean Modified Mathlib/Algebra/Category/Grp/FilteredColimits.lean Modified Mathlib/Algebra/Category/Grp/Limits.lean Modified Mathlib/Algebra/Category/ModuleCat/Abelian.lean Modified Mathlib/Algebra/Category/ModuleCat/ChangeOfRings.lean Modified Mathlib/Algebra/Category/ModuleCat/Colimits.lean Modified Mathlib/Algebra/Category/ModuleCat/FilteredColimits.lean Modified Mathlib/Algebra/Category/ModuleCat/Limits.lean - def ModuleCat.forget₂AddCommGroupPreservesLimitsAux + def ModuleCat.forget₂AddCommGroup_preservesLimitsAux Modified Mathlib/Algebra/Category/ModuleCat/Presheaf/Colimits.lean Modified Mathlib/Algebra/Category/ModuleCat/Presheaf/Limits.lean Modified Mathlib/Algebra/Category/ModuleCat/Presheaf/Sheafification.lean Modified Mathlib/Algebra/Category/ModuleCat/Sheaf/Limits.lean Modified Mathlib/Algebra/Category/MonCat/FilteredColimits.lean Modified Mathlib/Algebra/Category/MonCat/Limits.lean Modified Mathlib/Algebra/Category/Ring/FilteredColimits.lean Modified Mathlib/Algebra/Category/Ring/Limits.lean Modified Mathlib/Algebra/Homology/DerivedCategory/Ext/Basic.lean Modified Mathlib/Algebra/Homology/HomologicalComplexBiprod.lean Modified Mathlib/Algebra/Homology/HomologicalComplexLimits.lean - def HomologicalComplex.preservesColimitsOfShapeOfEval + theorem HomologicalComplex.preservesColimitsOfShape_of_eval - def HomologicalComplex.preservesLimitsOfShapeOfEval + theorem HomologicalComplex.preservesLimitsOfShape_of_eval Modified Mathlib/Algebra/Homology/ShortComplex/ConcreteCategory.lean Modified Mathlib/Algebra/Homology/ShortComplex/ExactFunctor.lean + theorem CategoryTheory.Functor.preservesFiniteColimits_of_preservesHomology + theorem CategoryTheory.Functor.preservesFiniteLimits_of_preservesHomology Modified Mathlib/Algebra/Homology/ShortComplex/Limits.lean Modified Mathlib/Algebra/Homology/ShortComplex/PreservesHomology.lean + theorem CategoryTheory.Functor.PreservesHomology.preservesCokernel - def CategoryTheory.Functor.PreservesHomology.preservesCokernel + theorem CategoryTheory.Functor.PreservesHomology.preservesKernel - def CategoryTheory.Functor.PreservesHomology.preservesKernel + theorem CategoryTheory.Functor.PreservesLeftHomologyOf.mk' - def CategoryTheory.Functor.PreservesLeftHomologyOf.mk' + theorem CategoryTheory.Functor.PreservesRightHomologyOf.mk' - def CategoryTheory.Functor.PreservesRightHomologyOf.mk' + theorem CategoryTheory.Functor.preservesLeftHomology_of_zero_f + theorem CategoryTheory.Functor.preservesLeftHomology_of_zero_g + theorem CategoryTheory.Functor.preservesRightHomology_of_zero_f + theorem CategoryTheory.Functor.preservesRightHomology_of_zero_g + theorem CategoryTheory.ShortComplex.LeftHomologyData.IsPreservedBy.hf' - def CategoryTheory.ShortComplex.LeftHomologyData.IsPreservedBy.hf' + theorem CategoryTheory.ShortComplex.LeftHomologyData.IsPreservedBy.hg - def CategoryTheory.ShortComplex.LeftHomologyData.IsPreservedBy.hg + theorem CategoryTheory.ShortComplex.RightHomologyData.IsPreservedBy.hf - def CategoryTheory.ShortComplex.RightHomologyData.IsPreservedBy.hf + theorem CategoryTheory.ShortComplex.RightHomologyData.IsPreservedBy.hg' - def CategoryTheory.ShortComplex.RightHomologyData.IsPreservedBy.hg' Modified Mathlib/AlgebraicGeometry/AffineScheme.lean Modified Mathlib/AlgebraicGeometry/GammaSpecAdjunction.lean Modified Mathlib/AlgebraicGeometry/Limits.lean Modified Mathlib/AlgebraicGeometry/OpenImmersion.lean Modified Mathlib/AlgebraicTopology/FundamentalGroupoid/Product.lean + theorem FundamentalGroupoidFunctor.preservesProduct - def FundamentalGroupoidFunctor.preservesProduct Modified Mathlib/CategoryTheory/Abelian/Exact.lean - def CategoryTheory.Functor.preservesHomologyOfMapExact - def CategoryTheory.Functor.preservesHomologyOfPreservesEpisAndKernels - def CategoryTheory.Functor.preservesHomologyOfPreservesMonosAndCokernels + theorem CategoryTheory.Functor.preservesHomology_of_map_exact + theorem CategoryTheory.Functor.preservesHomology_of_preservesEpis_and_kernels + theorem CategoryTheory.Functor.preservesHomology_of_preservesMonos_and_cokernels Modified Mathlib/CategoryTheory/Abelian/GrothendieckAxioms.lean - def CategoryTheory.AB4.ofAB5 + theorem CategoryTheory.AB4.of_AB5 Modified Mathlib/CategoryTheory/Abelian/Injective.lean Modified Mathlib/CategoryTheory/Abelian/Projective.lean Modified Mathlib/CategoryTheory/Abelian/Transfer.lean Modified Mathlib/CategoryTheory/Adhesive.lean Modified Mathlib/CategoryTheory/Adjunction/Limits.lean + theorem CategoryTheory.Adjunction.isEquivalenceReflectsColimits + theorem CategoryTheory.Adjunction.isEquivalenceReflectsLimits + theorem CategoryTheory.Adjunction.leftAdjointPreservesColimits - def CategoryTheory.Adjunction.leftAdjointPreservesColimits + theorem CategoryTheory.Adjunction.leftAdjoint_preservesColimits + theorem CategoryTheory.Adjunction.rightAdjointPreservesLimits - def CategoryTheory.Adjunction.rightAdjointPreservesLimits + theorem CategoryTheory.Adjunction.rightAdjoint_preservesLimits Modified Mathlib/CategoryTheory/Category/Cat/Limit.lean Modified Mathlib/CategoryTheory/ChosenFiniteProducts.lean - def CategoryTheory.ChosenFiniteProducts.isLimitChosenFiniteProductsOfPreservesLimits + theorem CategoryTheory.ChosenFiniteProducts.preservesLimit_empty_of_isIso_terminalComparison + theorem CategoryTheory.ChosenFiniteProducts.preservesLimit_pair_of_isIso_prodComparison + theorem CategoryTheory.ChosenFiniteProducts.preservesLimitsOfShape_discrete_walkingPair_of_isIso_prodComparison - def CategoryTheory.ChosenFiniteProducts.preservesTerminalIso - def CategoryTheory.ChosenFiniteProducts.prodComparisonIso Modified Mathlib/CategoryTheory/ChosenFiniteProducts/FunctorCategory.lean Modified Mathlib/CategoryTheory/Closed/Cartesian.lean Modified Mathlib/CategoryTheory/Closed/Ideal.lean + theorem CategoryTheory.preservesBinaryProducts_of_exponentialIdeal + theorem CategoryTheory.preservesFiniteProducts_of_exponentialIdeal Modified Mathlib/CategoryTheory/Closed/Monoidal.lean Modified Mathlib/CategoryTheory/Extensive.lean Modified Mathlib/CategoryTheory/Functor/Flat.lean + theorem CategoryTheory.preservesFiniteColimits_iff_coflat + theorem CategoryTheory.preservesFiniteColimits_of_coflat + theorem CategoryTheory.preservesFiniteLimits_iff_flat + theorem CategoryTheory.preservesFiniteLimits_iff_lan_preservesFiniteLimits + theorem CategoryTheory.preservesFiniteLimits_of_flat Modified Mathlib/CategoryTheory/Galois/Action.lean Modified Mathlib/CategoryTheory/Galois/Basic.lean + theorem CategoryTheory.PreGaloisCategory.FiberFunctor.comp_right Modified Mathlib/CategoryTheory/Galois/Examples.lean Modified Mathlib/CategoryTheory/Galois/GaloisObjects.lean Modified Mathlib/CategoryTheory/Galois/Prorepresentability.lean Modified Mathlib/CategoryTheory/GlueData.lean Modified Mathlib/CategoryTheory/GradedObject/Monoidal.lean Modified Mathlib/CategoryTheory/Limits/Comma.lean - def CategoryTheory.Comma.coconeOfPreserves - def CategoryTheory.Comma.coconeOfPreservesIsColimit - def CategoryTheory.Comma.coneOfPreserves - def CategoryTheory.Comma.coneOfPreservesIsLimit Modified Mathlib/CategoryTheory/Limits/ConeCategory.lean - def CategoryTheory.Limits.IsColimit.ofPreservesCoconeInitial - def CategoryTheory.Limits.IsColimit.ofReflectsCoconeInitial - def CategoryTheory.Limits.IsLimit.ofPreservesConeTerminal - def CategoryTheory.Limits.IsLimit.ofReflectsConeTerminal Modified Mathlib/CategoryTheory/Limits/Connected.lean + theorem CategoryTheory.prod_preservesConnectedLimits Modified Mathlib/CategoryTheory/Limits/Constructions/BinaryProducts.lean + theorem preservesBinaryCoproducts_of_preservesInitial_and_pushouts + theorem preservesBinaryProducts_of_preservesTerminal_and_pullbacks Modified Mathlib/CategoryTheory/Limits/Constructions/Equalizers.lean - def CategoryTheory.Limits.preservesCoequalizersOfPreservesPushoutsAndBinaryCoproducts + theorem CategoryTheory.Limits.preservesCoequalizers_of_preservesPushouts_and_binaryCoproducts - def CategoryTheory.Limits.preservesEqualizersOfPreservesPullbacksAndBinaryProducts + theorem CategoryTheory.Limits.preservesEqualizers_of_preservesPullbacks_and_binaryProducts Modified Mathlib/CategoryTheory/Limits/Constructions/FiniteProductsOfBinaryProducts.lean + theorem CategoryTheory.preservesFinOfPreservesBinaryAndTerminal + theorem CategoryTheory.preservesFiniteCoproductsOfPreservesBinaryAndInitial - def CategoryTheory.preservesFiniteCoproductsOfPreservesBinaryAndInitial - def CategoryTheory.preservesFiniteProductsOfPreservesBinaryAndTerminal + theorem CategoryTheory.preservesFiniteProducts_of_preserves_binary_and_terminal - def CategoryTheory.preservesShapeFinOfPreservesBinaryAndInitial - def CategoryTheory.preservesShapeFinOfPreservesBinaryAndTerminal + theorem CategoryTheory.preservesShape_fin_of_preserves_binary_and_initial + theorem CategoryTheory.preservesShape_fin_of_preserves_binary_and_terminal + theorem CategoryTheory.preserves_fin_of_preserves_binary_and_initial Modified Mathlib/CategoryTheory/Limits/Constructions/LimitsOfProductsAndEqualizers.lean + theorem CategoryTheory.Limits.preservesColimit_of_preservesCoequalizers_and_coproduct + theorem CategoryTheory.Limits.preservesColimits_of_preservesCoequalizers_and_coproducts + theorem CategoryTheory.Limits.preservesFiniteColimits_of_preservesCoequalizers_and_finiteCoproducts + theorem CategoryTheory.Limits.preservesFiniteColimits_of_preservesInitial_and_pushouts + theorem CategoryTheory.Limits.preservesFiniteLimits_of_preservesEqualizers_and_finiteProducts + theorem CategoryTheory.Limits.preservesFiniteLimits_of_preservesTerminal_and_pullbacks + theorem CategoryTheory.Limits.preservesLimit_of_preservesEqualizers_and_product + theorem CategoryTheory.Limits.preservesLimits_of_preservesEqualizers_and_products Modified Mathlib/CategoryTheory/Limits/Creates.lean + theorem CategoryTheory.preservesColimitOfCreatesColimitAndHasColimit + theorem CategoryTheory.preservesColimitOfShapeOfCreatesColimitsOfShapeAndHasColimitsOfShape + theorem CategoryTheory.preservesColimitsOfCreatesColimitsAndHasColimits + theorem CategoryTheory.preservesLimitOfCreatesLimitAndHasLimit + theorem CategoryTheory.preservesLimitOfShapeOfCreatesLimitsOfShapeAndHasLimitsOfShape + theorem CategoryTheory.preservesLimitsOfCreatesLimitsAndHasLimits Modified Mathlib/CategoryTheory/Limits/ExactFunctor.lean Modified Mathlib/CategoryTheory/Limits/FilteredColimitCommutesFiniteLimit.lean Modified Mathlib/CategoryTheory/Limits/FintypeCat.lean Modified Mathlib/CategoryTheory/Limits/FunctorCategory/Basic.lean + theorem CategoryTheory.Limits.preservesColimitOfEvaluation - def CategoryTheory.Limits.preservesColimitOfEvaluation + theorem CategoryTheory.Limits.preservesColimit_of_evaluation - def CategoryTheory.Limits.preservesColimitsOfEvaluation - def CategoryTheory.Limits.preservesColimitsOfShapeOfEvaluation + theorem CategoryTheory.Limits.preservesColimitsOfShape_of_evaluation + theorem CategoryTheory.Limits.preservesColimits_of_evaluation + theorem CategoryTheory.Limits.preservesLimitOfEvaluation - def CategoryTheory.Limits.preservesLimitOfEvaluation + theorem CategoryTheory.Limits.preservesLimit_of_evaluation + theorem CategoryTheory.Limits.preservesLimitsOfEvaluation - def CategoryTheory.Limits.preservesLimitsOfEvaluation + theorem CategoryTheory.Limits.preservesLimitsOfShapeOfEvaluation - def CategoryTheory.Limits.preservesLimitsOfShapeOfEvaluation + theorem CategoryTheory.Limits.preservesLimitsOfShape_of_evaluation + theorem CategoryTheory.Limits.preservesLimits_of_evaluation Modified Mathlib/CategoryTheory/Limits/Over.lean Modified Mathlib/CategoryTheory/Limits/Preserves/Basic.lean + theorem CategoryTheory.Limits.PreservesColimitsOfSizeShrink + theorem CategoryTheory.Limits.PreservesLimitsOfSizeShrink + theorem CategoryTheory.Limits.compPreservesColimit + theorem CategoryTheory.Limits.compPreservesColimits + theorem CategoryTheory.Limits.compPreservesColimitsOfShape + theorem CategoryTheory.Limits.compPreservesLimit + theorem CategoryTheory.Limits.compPreservesLimits + theorem CategoryTheory.Limits.compPreservesLimitsOfShape + theorem CategoryTheory.Limits.compReflectsColimit + theorem CategoryTheory.Limits.compReflectsColimits + theorem CategoryTheory.Limits.compReflectsColimitsOfShape + theorem CategoryTheory.Limits.compReflectsLimit + theorem CategoryTheory.Limits.compReflectsLimits + theorem CategoryTheory.Limits.compReflectsLimitsOfShape + theorem CategoryTheory.Limits.fullyFaithfulReflectsColimits + theorem CategoryTheory.Limits.fullyFaithfulReflectsLimits + theorem CategoryTheory.Limits.idPreservesColimits + theorem CategoryTheory.Limits.idPreservesLimits + theorem CategoryTheory.Limits.idReflectsColimits + theorem CategoryTheory.Limits.idReflectsLimits + theorem CategoryTheory.Limits.preservesColimitOfIsoDiagram - def CategoryTheory.Limits.preservesColimitOfIsoDiagram + theorem CategoryTheory.Limits.preservesColimitOfNatIso - def CategoryTheory.Limits.preservesColimitOfNatIso + theorem CategoryTheory.Limits.preservesColimitOfPreservesColimitCocone - def CategoryTheory.Limits.preservesColimitOfPreservesColimitCocone + theorem CategoryTheory.Limits.preservesColimitOfReflectsOfPreserves - def CategoryTheory.Limits.preservesColimitOfReflectsOfPreserves + theorem CategoryTheory.Limits.preservesColimit_of_iso_diagram + theorem CategoryTheory.Limits.preservesColimit_of_natIso + theorem CategoryTheory.Limits.preservesColimit_of_preserves_colimit_cocone + theorem CategoryTheory.Limits.preservesColimit_of_reflects_of_preserves + theorem CategoryTheory.Limits.preservesColimitsOfNatIso - def CategoryTheory.Limits.preservesColimitsOfNatIso + theorem CategoryTheory.Limits.preservesColimitsOfReflectsOfPreserves - def CategoryTheory.Limits.preservesColimitsOfReflectsOfPreserves + theorem CategoryTheory.Limits.preservesColimitsOfShapeOfEquiv - def CategoryTheory.Limits.preservesColimitsOfShapeOfEquiv + theorem CategoryTheory.Limits.preservesColimitsOfShapeOfNatIso - def CategoryTheory.Limits.preservesColimitsOfShapeOfNatIso + theorem CategoryTheory.Limits.preservesColimitsOfShapeOfReflectsOfPreserves - def CategoryTheory.Limits.preservesColimitsOfShapeOfReflectsOfPreserves + theorem CategoryTheory.Limits.preservesColimitsOfShape_of_equiv + theorem CategoryTheory.Limits.preservesColimitsOfShape_of_natIso + theorem CategoryTheory.Limits.preservesColimitsOfShape_of_reflects_of_preserves + theorem CategoryTheory.Limits.preservesColimitsOfSizeOfUnivLE - def CategoryTheory.Limits.preservesColimitsOfSizeOfUnivLE - def CategoryTheory.Limits.preservesColimitsOfSizeShrink + theorem CategoryTheory.Limits.preservesColimitsOfSize_of_univLE + theorem CategoryTheory.Limits.preservesColimitsOfSize_shrink + theorem CategoryTheory.Limits.preservesColimits_of_natIso + theorem CategoryTheory.Limits.preservesColimits_of_reflects_of_preserves + theorem CategoryTheory.Limits.preservesLimitOfIsoDiagram - def CategoryTheory.Limits.preservesLimitOfIsoDiagram + theorem CategoryTheory.Limits.preservesLimitOfNatIso - def CategoryTheory.Limits.preservesLimitOfNatIso + theorem CategoryTheory.Limits.preservesLimitOfPreservesLimitCone - def CategoryTheory.Limits.preservesLimitOfPreservesLimitCone + theorem CategoryTheory.Limits.preservesLimitOfReflectsOfPreserves - def CategoryTheory.Limits.preservesLimitOfReflectsOfPreserves + theorem CategoryTheory.Limits.preservesLimit_of_iso_diagram + theorem CategoryTheory.Limits.preservesLimit_of_natIso + theorem CategoryTheory.Limits.preservesLimit_of_preserves_limit_cone + theorem CategoryTheory.Limits.preservesLimit_of_reflects_of_preserves + theorem CategoryTheory.Limits.preservesLimitsOfNatIso - def CategoryTheory.Limits.preservesLimitsOfNatIso + theorem CategoryTheory.Limits.preservesLimitsOfReflectsOfPreserves - def CategoryTheory.Limits.preservesLimitsOfReflectsOfPreserves + theorem CategoryTheory.Limits.preservesLimitsOfShapeOfEquiv - def CategoryTheory.Limits.preservesLimitsOfShapeOfEquiv + theorem CategoryTheory.Limits.preservesLimitsOfShapeOfNatIso - def CategoryTheory.Limits.preservesLimitsOfShapeOfNatIso + theorem CategoryTheory.Limits.preservesLimitsOfShapeOfReflectsOfPreserves - def CategoryTheory.Limits.preservesLimitsOfShapeOfReflectsOfPreserves + theorem CategoryTheory.Limits.preservesLimitsOfShape_of_equiv + theorem CategoryTheory.Limits.preservesLimitsOfShape_of_natIso + theorem CategoryTheory.Limits.preservesLimitsOfShape_of_reflects_of_preserves + theorem CategoryTheory.Limits.preservesLimitsOfSizeOfUnivLE - def CategoryTheory.Limits.preservesLimitsOfSizeOfUnivLE - def CategoryTheory.Limits.preservesLimitsOfSizeShrink + theorem CategoryTheory.Limits.preservesLimitsOfSize_of_univLE + theorem CategoryTheory.Limits.preservesLimitsOfSize_shrink + theorem CategoryTheory.Limits.preservesLimits_of_natIso + theorem CategoryTheory.Limits.preservesLimits_of_reflects_of_preserves + theorem CategoryTheory.Limits.preservesSmallestColimitsOfPreservesColimits - def CategoryTheory.Limits.preservesSmallestColimitsOfPreservesColimits + theorem CategoryTheory.Limits.preservesSmallestColimits_of_preservesColimits + theorem CategoryTheory.Limits.preservesSmallestLimitsOfPreservesLimits - def CategoryTheory.Limits.preservesSmallestLimitsOfPreservesLimits + theorem CategoryTheory.Limits.preservesSmallestLimits_of_preservesLimits + theorem CategoryTheory.Limits.reflectsColimitOfIsoDiagram - def CategoryTheory.Limits.reflectsColimitOfIsoDiagram + theorem CategoryTheory.Limits.reflectsColimitOfNatIso - def CategoryTheory.Limits.reflectsColimitOfNatIso + theorem CategoryTheory.Limits.reflectsColimitOfReflectsIsomorphisms - def CategoryTheory.Limits.reflectsColimitOfReflectsIsomorphisms + theorem CategoryTheory.Limits.reflectsColimit_of_iso_diagram + theorem CategoryTheory.Limits.reflectsColimit_of_natIso + theorem CategoryTheory.Limits.reflectsColimit_of_reflectsIsomorphisms + theorem CategoryTheory.Limits.reflectsColimitsOfNatIso - def CategoryTheory.Limits.reflectsColimitsOfNatIso + theorem CategoryTheory.Limits.reflectsColimitsOfReflectsIsomorphisms - def CategoryTheory.Limits.reflectsColimitsOfReflectsIsomorphisms + theorem CategoryTheory.Limits.reflectsColimitsOfShapeOfEquiv - def CategoryTheory.Limits.reflectsColimitsOfShapeOfEquiv + theorem CategoryTheory.Limits.reflectsColimitsOfShapeOfNatIso - def CategoryTheory.Limits.reflectsColimitsOfShapeOfNatIso + theorem CategoryTheory.Limits.reflectsColimitsOfShapeOfReflectsIsomorphisms - def CategoryTheory.Limits.reflectsColimitsOfShapeOfReflectsIsomorphisms + theorem CategoryTheory.Limits.reflectsColimitsOfShape_of_equiv + theorem CategoryTheory.Limits.reflectsColimitsOfShape_of_natIso + theorem CategoryTheory.Limits.reflectsColimitsOfShape_of_reflectsIsomorphisms + theorem CategoryTheory.Limits.reflectsColimitsOfSizeOfUnivLE - def CategoryTheory.Limits.reflectsColimitsOfSizeOfUnivLE + theorem CategoryTheory.Limits.reflectsColimitsOfSizeShrink - def CategoryTheory.Limits.reflectsColimitsOfSizeShrink + theorem CategoryTheory.Limits.reflectsColimitsOfSize_of_univLE + theorem CategoryTheory.Limits.reflectsColimitsOfSize_shrink + theorem CategoryTheory.Limits.reflectsColimits_of_natIso + theorem CategoryTheory.Limits.reflectsColimits_of_reflectsIsomorphisms + theorem CategoryTheory.Limits.reflectsLimitOfIsoDiagram - def CategoryTheory.Limits.reflectsLimitOfIsoDiagram + theorem CategoryTheory.Limits.reflectsLimitOfNatIso - def CategoryTheory.Limits.reflectsLimitOfNatIso + theorem CategoryTheory.Limits.reflectsLimitOfReflectsIsomorphisms - def CategoryTheory.Limits.reflectsLimitOfReflectsIsomorphisms + theorem CategoryTheory.Limits.reflectsLimit_of_iso_diagram + theorem CategoryTheory.Limits.reflectsLimit_of_natIso + theorem CategoryTheory.Limits.reflectsLimit_of_reflectsIsomorphisms + theorem CategoryTheory.Limits.reflectsLimitsOfNatIso - def CategoryTheory.Limits.reflectsLimitsOfNatIso + theorem CategoryTheory.Limits.reflectsLimitsOfReflectsIsomorphisms - def CategoryTheory.Limits.reflectsLimitsOfReflectsIsomorphisms + theorem CategoryTheory.Limits.reflectsLimitsOfShapeOfEquiv - def CategoryTheory.Limits.reflectsLimitsOfShapeOfEquiv + theorem CategoryTheory.Limits.reflectsLimitsOfShapeOfNatIso - def CategoryTheory.Limits.reflectsLimitsOfShapeOfNatIso + theorem CategoryTheory.Limits.reflectsLimitsOfShapeOfReflectsIsomorphisms - def CategoryTheory.Limits.reflectsLimitsOfShapeOfReflectsIsomorphisms + theorem CategoryTheory.Limits.reflectsLimitsOfShape_of_equiv + theorem CategoryTheory.Limits.reflectsLimitsOfShape_of_natIso + theorem CategoryTheory.Limits.reflectsLimitsOfShape_of_reflectsIsomorphisms + theorem CategoryTheory.Limits.reflectsLimitsOfSizeOfUnivLE - def CategoryTheory.Limits.reflectsLimitsOfSizeOfUnivLE + theorem CategoryTheory.Limits.reflectsLimitsOfSizeShrink - def CategoryTheory.Limits.reflectsLimitsOfSizeShrink + theorem CategoryTheory.Limits.reflectsLimitsOfSize_of_univLE + theorem CategoryTheory.Limits.reflectsLimitsOfSize_shrink + theorem CategoryTheory.Limits.reflectsLimits_of_natIso + theorem CategoryTheory.Limits.reflectsLimits_of_reflectsIsomorphisms + theorem CategoryTheory.Limits.reflectsSmallestColimitsOfReflectsColimits - def CategoryTheory.Limits.reflectsSmallestColimitsOfReflectsColimits + theorem CategoryTheory.Limits.reflectsSmallestColimits_of_reflectsColimits + theorem CategoryTheory.Limits.reflectsSmallestLimitsOfReflectsLimits - def CategoryTheory.Limits.reflectsSmallestLimitsOfReflectsLimits + theorem CategoryTheory.Limits.reflectsSmallestLimits_of_reflectsLimits Modified Mathlib/CategoryTheory/Limits/Preserves/Filtered.lean + theorem CategoryTheory.Limits.preservesCofilteredLimitsOfSize_of_univLE + theorem CategoryTheory.Limits.preservesCofilteredLimitsOfSize_shrink + theorem CategoryTheory.Limits.preservesFilteredColimitsOfSize_of_univLE + theorem CategoryTheory.Limits.preservesFilteredColimitsOfSize_shrink + theorem CategoryTheory.Limits.preservesSmallestCofilteredLimits_of_preservesCofilteredLimits + theorem CategoryTheory.Limits.preservesSmallestFilteredColimits_of_preservesFilteredColimits + theorem CategoryTheory.Limits.reflectsCofilteredLimitsOfSize_of_univLE + theorem CategoryTheory.Limits.reflectsCofilteredLimitsOfSize_shrink + theorem CategoryTheory.Limits.reflectsFilteredColimitsOfSize_of_univLE + theorem CategoryTheory.Limits.reflectsFilteredColimitsOfSize_shrink + theorem CategoryTheory.Limits.reflectsSmallestCofilteredLimits_of_reflectsCofilteredLimits + theorem CategoryTheory.Limits.reflectsSmallestFilteredColimits_of_reflectsFilteredColimits Modified Mathlib/CategoryTheory/Limits/Preserves/Finite.lean + theorem CategoryTheory.Limits.PreservesColimitsOfSize.preservesFiniteColimits + theorem CategoryTheory.Limits.PreservesLimitsOfSize.preservesFiniteLimits + theorem CategoryTheory.Limits.ReflectsColimitsOfSize.reflectsFiniteColimits + theorem CategoryTheory.Limits.ReflectsLimitsOfSize.reflectsFiniteLimits - def CategoryTheory.Limits.compPreservesFiniteColimits - def CategoryTheory.Limits.compPreservesFiniteLimits + theorem CategoryTheory.Limits.comp_preservesFiniteColimits + theorem CategoryTheory.Limits.comp_preservesFiniteLimits - def CategoryTheory.Limits.preservesFiniteColimitsOfNatIso - def CategoryTheory.Limits.preservesFiniteColimitsOfPreservesFiniteColimitsOfSize - def CategoryTheory.Limits.preservesFiniteColimitsOfReflectsOfPreserves + theorem CategoryTheory.Limits.preservesFiniteColimits_of_natIso + theorem CategoryTheory.Limits.preservesFiniteColimits_of_preservesFiniteColimitsOfSize + theorem CategoryTheory.Limits.preservesFiniteColimits_of_reflects_of_preserves + theorem CategoryTheory.Limits.preservesFiniteCoproducts_of_reflects_of_preserves - def CategoryTheory.Limits.preservesFiniteLimitsOfNatIso - def CategoryTheory.Limits.preservesFiniteLimitsOfPreservesFiniteLimitsOfSize - def CategoryTheory.Limits.preservesFiniteLimitsOfReflectsOfPreserves + theorem CategoryTheory.Limits.preservesFiniteLimits_of_natIso + theorem CategoryTheory.Limits.preservesFiniteLimits_of_preservesFiniteLimitsOfSize + theorem CategoryTheory.Limits.preservesFiniteLimits_of_reflects_of_preserves - def CategoryTheory.Limits.preservesFiniteProductsOfReflectsOfPreserves + theorem CategoryTheory.Limits.preservesFiniteProducts_of_reflects_of_preserves Modified Mathlib/CategoryTheory/Limits/Preserves/FunctorCategory.lean - def CategoryTheory.FunctorCategory.prodPreservesColimits + theorem CategoryTheory.FunctorCategory.prod_preservesColimits - def CategoryTheory.preservesFiniteColimitsOfEvaluation + theorem CategoryTheory.preservesFiniteColimits_of_evaluation - def CategoryTheory.preservesFiniteLimitsOfEvaluation + theorem CategoryTheory.preservesFiniteLimits_of_evaluation + theorem CategoryTheory.preservesLimit_of_lan_preservesLimit Modified Mathlib/CategoryTheory/Limits/Preserves/Limits.lean - def CategoryTheory.preservesColimitOfIsIsoPost + theorem CategoryTheory.preservesColimit_of_isIso_post - def CategoryTheory.preservesLimitOfIsIsoPost + theorem CategoryTheory.preservesLimit_of_isIso_post Modified Mathlib/CategoryTheory/Limits/Preserves/Opposites.lean - def CategoryTheory.Limits.perservesColimitsOp + theorem CategoryTheory.Limits.perservesColimits_op - def CategoryTheory.Limits.preservesColimitLeftOp - def CategoryTheory.Limits.preservesColimitOfLeftOp - def CategoryTheory.Limits.preservesColimitOfOp - def CategoryTheory.Limits.preservesColimitOfRightOp - def CategoryTheory.Limits.preservesColimitOfUnop - def CategoryTheory.Limits.preservesColimitOp - def CategoryTheory.Limits.preservesColimitRightOp - def CategoryTheory.Limits.preservesColimitUnop + theorem CategoryTheory.Limits.preservesColimit_leftOp + theorem CategoryTheory.Limits.preservesColimit_of_leftOp + theorem CategoryTheory.Limits.preservesColimit_of_op + theorem CategoryTheory.Limits.preservesColimit_of_rightOp + theorem CategoryTheory.Limits.preservesColimit_of_unop + theorem CategoryTheory.Limits.preservesColimit_op + theorem CategoryTheory.Limits.preservesColimit_rightOp + theorem CategoryTheory.Limits.preservesColimit_unop - def CategoryTheory.Limits.preservesColimitsLeftOp - def CategoryTheory.Limits.preservesColimitsOfLeftOp - def CategoryTheory.Limits.preservesColimitsOfOp - def CategoryTheory.Limits.preservesColimitsOfRightOp - def CategoryTheory.Limits.preservesColimitsOfShapeLeftOp - def CategoryTheory.Limits.preservesColimitsOfShapeOfLeftOp - def CategoryTheory.Limits.preservesColimitsOfShapeOfOp - def CategoryTheory.Limits.preservesColimitsOfShapeOfRightOp - def CategoryTheory.Limits.preservesColimitsOfShapeOfUnop - def CategoryTheory.Limits.preservesColimitsOfShapeOp - def CategoryTheory.Limits.preservesColimitsOfShapeRightOp - def CategoryTheory.Limits.preservesColimitsOfShapeUnop + theorem CategoryTheory.Limits.preservesColimitsOfShape_leftOp + theorem CategoryTheory.Limits.preservesColimitsOfShape_of_leftOp + theorem CategoryTheory.Limits.preservesColimitsOfShape_of_op + theorem CategoryTheory.Limits.preservesColimitsOfShape_of_rightOp + theorem CategoryTheory.Limits.preservesColimitsOfShape_of_unop + theorem CategoryTheory.Limits.preservesColimitsOfShape_op + theorem CategoryTheory.Limits.preservesColimitsOfShape_rightOp + theorem CategoryTheory.Limits.preservesColimitsOfShape_unop - def CategoryTheory.Limits.preservesColimitsOfSizeLeftOp - def CategoryTheory.Limits.preservesColimitsOfSizeOfLeftOp - def CategoryTheory.Limits.preservesColimitsOfSizeOfOp - def CategoryTheory.Limits.preservesColimitsOfSizeOfRightOp - def CategoryTheory.Limits.preservesColimitsOfSizeOfUnop - def CategoryTheory.Limits.preservesColimitsOfSizeOp - def CategoryTheory.Limits.preservesColimitsOfSizeRightOp - def CategoryTheory.Limits.preservesColimitsOfSizeUnop + theorem CategoryTheory.Limits.preservesColimitsOfSize_leftOp + theorem CategoryTheory.Limits.preservesColimitsOfSize_of_leftOp + theorem CategoryTheory.Limits.preservesColimitsOfSize_of_op + theorem CategoryTheory.Limits.preservesColimitsOfSize_of_rightOp + theorem CategoryTheory.Limits.preservesColimitsOfSize_of_unop + theorem CategoryTheory.Limits.preservesColimitsOfSize_op + theorem CategoryTheory.Limits.preservesColimitsOfSize_rightOp + theorem CategoryTheory.Limits.preservesColimitsOfSize_unop - def CategoryTheory.Limits.preservesColimitsOfUnop - def CategoryTheory.Limits.preservesColimitsRightOp - def CategoryTheory.Limits.preservesColimitsUnop + theorem CategoryTheory.Limits.preservesColimits_leftOp + theorem CategoryTheory.Limits.preservesColimits_of_leftOp + theorem CategoryTheory.Limits.preservesColimits_of_op + theorem CategoryTheory.Limits.preservesColimits_of_rightOp + theorem CategoryTheory.Limits.preservesColimits_of_unop + theorem CategoryTheory.Limits.preservesColimits_rightOp + theorem CategoryTheory.Limits.preservesColimits_unop - def CategoryTheory.Limits.preservesFiniteColimitsLeftOp - def CategoryTheory.Limits.preservesFiniteColimitsOfLeftOp - def CategoryTheory.Limits.preservesFiniteColimitsOfOp - def CategoryTheory.Limits.preservesFiniteColimitsOfRightOp - def CategoryTheory.Limits.preservesFiniteColimitsOfUnop - def CategoryTheory.Limits.preservesFiniteColimitsOp - def CategoryTheory.Limits.preservesFiniteColimitsRightOp - def CategoryTheory.Limits.preservesFiniteColimitsUnop + theorem CategoryTheory.Limits.preservesFiniteColimits_leftOp + theorem CategoryTheory.Limits.preservesFiniteColimits_of_leftOp + theorem CategoryTheory.Limits.preservesFiniteColimits_of_op + theorem CategoryTheory.Limits.preservesFiniteColimits_of_rightOp + theorem CategoryTheory.Limits.preservesFiniteColimits_of_unop + theorem CategoryTheory.Limits.preservesFiniteColimits_op + theorem CategoryTheory.Limits.preservesFiniteColimits_rightOp + theorem CategoryTheory.Limits.preservesFiniteColimits_unop - def CategoryTheory.Limits.preservesFiniteCoproductsLeftOp - def CategoryTheory.Limits.preservesFiniteCoproductsOp - def CategoryTheory.Limits.preservesFiniteCoproductsRightOp - def CategoryTheory.Limits.preservesFiniteCoproductsUnop + theorem CategoryTheory.Limits.preservesFiniteCoproducts_leftOp + theorem CategoryTheory.Limits.preservesFiniteCoproducts_op + theorem CategoryTheory.Limits.preservesFiniteCoproducts_rightOp + theorem CategoryTheory.Limits.preservesFiniteCoproducts_unop - def CategoryTheory.Limits.preservesFiniteLimitsLeftOp - def CategoryTheory.Limits.preservesFiniteLimitsOfLeftOp - def CategoryTheory.Limits.preservesFiniteLimitsOfOp - def CategoryTheory.Limits.preservesFiniteLimitsOfRightOp - def CategoryTheory.Limits.preservesFiniteLimitsOfUnop - def CategoryTheory.Limits.preservesFiniteLimitsOp - def CategoryTheory.Limits.preservesFiniteLimitsRightOp - def CategoryTheory.Limits.preservesFiniteLimitsUnop + theorem CategoryTheory.Limits.preservesFiniteLimits_leftOp + theorem CategoryTheory.Limits.preservesFiniteLimits_of_leftOp + theorem CategoryTheory.Limits.preservesFiniteLimits_of_op + theorem CategoryTheory.Limits.preservesFiniteLimits_of_rightOp + theorem CategoryTheory.Limits.preservesFiniteLimits_of_unop + theorem CategoryTheory.Limits.preservesFiniteLimits_op + theorem CategoryTheory.Limits.preservesFiniteLimits_rightOp + theorem CategoryTheory.Limits.preservesFiniteLimits_unop - def CategoryTheory.Limits.preservesFiniteProductsLeftOp - def CategoryTheory.Limits.preservesFiniteProductsOp - def CategoryTheory.Limits.preservesFiniteProductsRightOp - def CategoryTheory.Limits.preservesFiniteProductsUnop + theorem CategoryTheory.Limits.preservesFiniteProducts_leftOp + theorem CategoryTheory.Limits.preservesFiniteProducts_op + theorem CategoryTheory.Limits.preservesFiniteProducts_rightOp + theorem CategoryTheory.Limits.preservesFiniteProducts_unop - def CategoryTheory.Limits.preservesLimitLeftOp - def CategoryTheory.Limits.preservesLimitOfLeftOp - def CategoryTheory.Limits.preservesLimitOfOp - def CategoryTheory.Limits.preservesLimitOfRightOp - def CategoryTheory.Limits.preservesLimitOfUnop - def CategoryTheory.Limits.preservesLimitOp - def CategoryTheory.Limits.preservesLimitRightOp - def CategoryTheory.Limits.preservesLimitUnop + theorem CategoryTheory.Limits.preservesLimit_leftOp + theorem CategoryTheory.Limits.preservesLimit_of_leftOp + theorem CategoryTheory.Limits.preservesLimit_of_op + theorem CategoryTheory.Limits.preservesLimit_of_rightOp + theorem CategoryTheory.Limits.preservesLimit_of_unop + theorem CategoryTheory.Limits.preservesLimit_op + theorem CategoryTheory.Limits.preservesLimit_rightOp + theorem CategoryTheory.Limits.preservesLimit_unop - def CategoryTheory.Limits.preservesLimitsLeftOp - def CategoryTheory.Limits.preservesLimitsOfLeftOp - def CategoryTheory.Limits.preservesLimitsOfOp - def CategoryTheory.Limits.preservesLimitsOfRightOp - def CategoryTheory.Limits.preservesLimitsOfShapeLeftOp - def CategoryTheory.Limits.preservesLimitsOfShapeOfLeftOp - def CategoryTheory.Limits.preservesLimitsOfShapeOfOp - def CategoryTheory.Limits.preservesLimitsOfShapeOfRightOp - def CategoryTheory.Limits.preservesLimitsOfShapeOfUnop - def CategoryTheory.Limits.preservesLimitsOfShapeOp - def CategoryTheory.Limits.preservesLimitsOfShapeRightOp - def CategoryTheory.Limits.preservesLimitsOfShapeUnop + theorem CategoryTheory.Limits.preservesLimitsOfShape_leftOp + theorem CategoryTheory.Limits.preservesLimitsOfShape_of_leftOp + theorem CategoryTheory.Limits.preservesLimitsOfShape_of_op + theorem CategoryTheory.Limits.preservesLimitsOfShape_of_rightOp + theorem CategoryTheory.Limits.preservesLimitsOfShape_of_unop + theorem CategoryTheory.Limits.preservesLimitsOfShape_op + theorem CategoryTheory.Limits.preservesLimitsOfShape_rightOp + theorem CategoryTheory.Limits.preservesLimitsOfShape_unop - def CategoryTheory.Limits.preservesLimitsOfSizeLeftOp - def CategoryTheory.Limits.preservesLimitsOfSizeOfLeftOp - def CategoryTheory.Limits.preservesLimitsOfSizeOfOp - def CategoryTheory.Limits.preservesLimitsOfSizeOfRightOp - def CategoryTheory.Limits.preservesLimitsOfSizeOfUnop - def CategoryTheory.Limits.preservesLimitsOfSizeOp - def CategoryTheory.Limits.preservesLimitsOfSizeRightOp - def CategoryTheory.Limits.preservesLimitsOfSizeUnop + theorem CategoryTheory.Limits.preservesLimitsOfSize_leftOp + theorem CategoryTheory.Limits.preservesLimitsOfSize_of_leftOp + theorem CategoryTheory.Limits.preservesLimitsOfSize_of_op + theorem CategoryTheory.Limits.preservesLimitsOfSize_of_rightOp + theorem CategoryTheory.Limits.preservesLimitsOfSize_of_unop + theorem CategoryTheory.Limits.preservesLimitsOfSize_op + theorem CategoryTheory.Limits.preservesLimitsOfSize_rightOp + theorem CategoryTheory.Limits.preservesLimitsOfSize_unop - def CategoryTheory.Limits.preservesLimitsOfUnop - def CategoryTheory.Limits.preservesLimitsOp - def CategoryTheory.Limits.preservesLimitsRightOp - def CategoryTheory.Limits.preservesLimitsUnop + theorem CategoryTheory.Limits.preservesLimits_leftOp + theorem CategoryTheory.Limits.preservesLimits_of_leftOp + theorem CategoryTheory.Limits.preservesLimits_of_op + theorem CategoryTheory.Limits.preservesLimits_of_rightOp + theorem CategoryTheory.Limits.preservesLimits_of_unop + theorem CategoryTheory.Limits.preservesLimits_op + theorem CategoryTheory.Limits.preservesLimits_rightOp + theorem CategoryTheory.Limits.preservesLimits_unop Modified Mathlib/CategoryTheory/Limits/Preserves/Presheaf.lean + theorem CategoryTheory.Limits.preservesFiniteLimits_of_isFiltered_costructuredArrow_yoneda Modified Mathlib/CategoryTheory/Limits/Preserves/Shapes/BinaryProducts.lean - def CategoryTheory.Limits.PreservesColimitPair.ofIsoCoprodComparison + theorem CategoryTheory.Limits.PreservesColimitPair.of_iso_coprod_comparison - def CategoryTheory.Limits.PreservesLimitPair.ofIsoProdComparison + theorem CategoryTheory.Limits.PreservesLimitPair.of_iso_prod_comparison Modified Mathlib/CategoryTheory/Limits/Preserves/Shapes/Biproducts.lean - def CategoryTheory.Limits.preservesBinaryBiproductOfPreservesBiproduct + theorem CategoryTheory.Limits.preservesBinaryBiproduct_of_preservesBiproduct - def CategoryTheory.Limits.preservesBinaryBiproductsOfPreservesBiproducts + theorem CategoryTheory.Limits.preservesBinaryBiproducts_of_preservesBiproducts - def CategoryTheory.Limits.preservesBiproductsShrink + theorem CategoryTheory.Limits.preservesBiproducts_shrink Modified Mathlib/CategoryTheory/Limits/Preserves/Shapes/Equalizers.lean - def CategoryTheory.Limits.PreservesEqualizer.ofIsoComparison + theorem CategoryTheory.Limits.PreservesEqualizer.of_iso_comparison - def CategoryTheory.Limits.ofIsoComparison + theorem CategoryTheory.Limits.of_iso_comparison Modified Mathlib/CategoryTheory/Limits/Preserves/Shapes/Kernels.lean - def CategoryTheory.Limits.PreservesCokernel.ofIsoComparison + theorem CategoryTheory.Limits.PreservesCokernel.of_iso_comparison - def CategoryTheory.Limits.PreservesKernel.ofIsoComparison + theorem CategoryTheory.Limits.PreservesKernel.of_iso_comparison + theorem CategoryTheory.Limits.preservesCokernel_zero' + theorem CategoryTheory.Limits.preservesKernel_zero' Modified Mathlib/CategoryTheory/Limits/Preserves/Shapes/Products.lean - def CategoryTheory.Limits.PreservesCoproduct.ofIsoComparison + theorem CategoryTheory.Limits.PreservesCoproduct.of_iso_comparison - def CategoryTheory.Limits.PreservesProduct.ofIsoComparison + theorem CategoryTheory.Limits.PreservesProduct.of_iso_comparison Modified Mathlib/CategoryTheory/Limits/Preserves/Shapes/Pullbacks.lean - def CategoryTheory.Limits.PreservesPullback.ofIsoComparison + theorem CategoryTheory.Limits.PreservesPullback.of_iso_comparison - def CategoryTheory.Limits.PreservesPushout.ofIsoComparison + theorem CategoryTheory.Limits.PreservesPushout.of_iso_comparison - def CategoryTheory.Limits.preservesPullbackSymmetry + theorem CategoryTheory.Limits.preservesPullback_symmetry - def CategoryTheory.Limits.preservesPushoutSymmetry + theorem CategoryTheory.Limits.preservesPushout_symmetry Modified Mathlib/CategoryTheory/Limits/Preserves/Shapes/Terminal.lean - def CategoryTheory.Limits.PreservesInitial.ofIsoComparison + theorem CategoryTheory.Limits.PreservesInitial.of_iso_comparison - def CategoryTheory.Limits.PreservesTerminal.ofIsoComparison + theorem CategoryTheory.Limits.PreservesTerminal.of_iso_comparison - def CategoryTheory.Limits.preservesColimitsOfShapePemptyOfPreservesInitial + theorem CategoryTheory.Limits.preservesColimitsOfShape_pempty_of_preservesInitial - def CategoryTheory.Limits.preservesInitialOfIsIso - def CategoryTheory.Limits.preservesInitialOfIso + theorem CategoryTheory.Limits.preservesInitial_of_isIso + theorem CategoryTheory.Limits.preservesInitial_of_iso - def CategoryTheory.Limits.preservesLimitsOfShapePemptyOfPreservesTerminal + theorem CategoryTheory.Limits.preservesLimitsOfShape_pempty_of_preservesTerminal - def CategoryTheory.Limits.preservesTerminalOfIsIso - def CategoryTheory.Limits.preservesTerminalOfIso + theorem CategoryTheory.Limits.preservesTerminal_of_isIso + theorem CategoryTheory.Limits.preservesTerminal_of_iso Modified Mathlib/CategoryTheory/Limits/Preserves/Shapes/Zero.lean - def CategoryTheory.Functor.preservesColimitsOfShapeOfIsZero + theorem CategoryTheory.Functor.preservesColimitsOfShape_of_isZero - def CategoryTheory.Functor.preservesColimitsOfSizeOfIsZero + theorem CategoryTheory.Functor.preservesColimitsOfSize_of_isZero - def CategoryTheory.Functor.preservesInitialObjectOfPreservesZeroMorphisms + theorem CategoryTheory.Functor.preservesInitialObject_of_preservesZeroMorphisms - def CategoryTheory.Functor.preservesLimitsOfShapeOfIsZero + theorem CategoryTheory.Functor.preservesLimitsOfShape_of_isZero - def CategoryTheory.Functor.preservesLimitsOfSizeOfIsZero + theorem CategoryTheory.Functor.preservesLimitsOfSize_of_isZero - def CategoryTheory.Functor.preservesTerminalObjectOfPreservesZeroMorphisms + theorem CategoryTheory.Functor.preservesTerminalObject_of_preservesZeroMorphisms Modified Mathlib/CategoryTheory/Limits/Preserves/Ulift.lean Modified Mathlib/CategoryTheory/Limits/Preserves/Yoneda.lean Modified Mathlib/CategoryTheory/Limits/Presheaf.lean + theorem CategoryTheory.Presheaf.preservesColimitsOfSize_of_isLeftKanExtension Modified Mathlib/CategoryTheory/Limits/Shapes/NormalMono/Basic.lean Modified Mathlib/CategoryTheory/Limits/VanKampen.lean Modified Mathlib/CategoryTheory/Limits/Yoneda.lean Modified Mathlib/CategoryTheory/Localization/FiniteProducts.lean + theorem CategoryTheory.Localization.preservesFiniteProducts + theorem CategoryTheory.Localization.preservesProductsOfShape Modified Mathlib/CategoryTheory/Monad/Comonadicity.lean Modified Mathlib/CategoryTheory/Monad/Limits.lean - def CategoryTheory.Comonad.ForgetCreatesLimits'.conePoint - def CategoryTheory.Comonad.ForgetCreatesLimits'.liftedCone - def CategoryTheory.Comonad.ForgetCreatesLimits'.liftedConeIsLimit - def CategoryTheory.Monad.ForgetCreatesColimits.coconePoint - def CategoryTheory.Monad.ForgetCreatesColimits.liftedCocone - def CategoryTheory.Monad.ForgetCreatesColimits.liftedCoconeIsColimit + theorem CategoryTheory.leftAdjoint_preservesTerminal_of_reflective + theorem CategoryTheory.rightAdjoint_preservesInitial_of_coreflective Modified Mathlib/CategoryTheory/Monad/Monadicity.lean Modified Mathlib/CategoryTheory/Monoidal/Internal/Limits.lean Modified Mathlib/CategoryTheory/Monoidal/Preadditive.lean Modified Mathlib/CategoryTheory/Preadditive/AdditiveFunctor.lean Modified Mathlib/CategoryTheory/Preadditive/Biproducts.lean - def CategoryTheory.Limits.preservesBinaryBiproductOfEpiBiprodComparison' - def CategoryTheory.Limits.preservesBinaryBiproductOfMonoBiprodComparison - def CategoryTheory.Limits.preservesBinaryBiproductOfPreservesBinaryCoproduct - def CategoryTheory.Limits.preservesBinaryBiproductOfPreservesBinaryProduct + theorem CategoryTheory.Limits.preservesBinaryBiproduct_of_epi_biprodComparison' + theorem CategoryTheory.Limits.preservesBinaryBiproduct_of_mono_biprodComparison + theorem CategoryTheory.Limits.preservesBinaryBiproduct_of_preservesBinaryCoproduct + theorem CategoryTheory.Limits.preservesBinaryBiproduct_of_preservesBinaryProduct - def CategoryTheory.Limits.preservesBinaryBiproductsOfPreservesBinaryCoproducts - def CategoryTheory.Limits.preservesBinaryBiproductsOfPreservesBinaryProducts + theorem CategoryTheory.Limits.preservesBinaryBiproducts_of_preservesBinaryCoproducts + theorem CategoryTheory.Limits.preservesBinaryBiproducts_of_preservesBinaryProducts - def CategoryTheory.Limits.preservesBinaryCoproductOfPreservesBinaryBiproduct + theorem CategoryTheory.Limits.preservesBinaryCoproduct_of_preservesBinaryBiproduct - def CategoryTheory.Limits.preservesBinaryCoproductsOfPreservesBinaryBiproducts + theorem CategoryTheory.Limits.preservesBinaryCoproducts_of_preservesBinaryBiproducts - def CategoryTheory.Limits.preservesBinaryProductOfPreservesBinaryBiproduct + theorem CategoryTheory.Limits.preservesBinaryProduct_of_preservesBinaryBiproduct - def CategoryTheory.Limits.preservesBinaryProductsOfPreservesBinaryBiproducts + theorem CategoryTheory.Limits.preservesBinaryProducts_of_preservesBinaryBiproducts - def CategoryTheory.Limits.preservesBiproductOfEpiBiproductComparison' - def CategoryTheory.Limits.preservesBiproductOfMonoBiproductComparison - def CategoryTheory.Limits.preservesBiproductOfPreservesCoproduct - def CategoryTheory.Limits.preservesBiproductOfPreservesProduct + theorem CategoryTheory.Limits.preservesBiproduct_of_epi_biproductComparison' + theorem CategoryTheory.Limits.preservesBiproduct_of_mono_biproductComparison + theorem CategoryTheory.Limits.preservesBiproduct_of_preservesCoproduct + theorem CategoryTheory.Limits.preservesBiproduct_of_preservesProduct - def CategoryTheory.Limits.preservesBiproductsOfShapeOfPreservesCoproductsOfShape - def CategoryTheory.Limits.preservesBiproductsOfShapeOfPreservesProductsOfShape + theorem CategoryTheory.Limits.preservesBiproductsOfShape_of_preservesCoproductsOfShape + theorem CategoryTheory.Limits.preservesBiproductsOfShape_of_preservesProductsOfShape - def CategoryTheory.Limits.preservesCoproductOfPreservesBiproduct + theorem CategoryTheory.Limits.preservesCoproduct_of_preservesBiproduct - def CategoryTheory.Limits.preservesCoproductsOfShapeOfPreservesBiproductsOfShape + theorem CategoryTheory.Limits.preservesCoproductsOfShape_of_preservesBiproductsOfShape - def CategoryTheory.Limits.preservesProductOfPreservesBiproduct + theorem CategoryTheory.Limits.preservesProduct_of_preservesBiproduct - def CategoryTheory.Limits.preservesProductsOfShapeOfPreservesBiproductsOfShape + theorem CategoryTheory.Limits.preservesProductsOfShape_of_preservesBiproductsOfShape Modified Mathlib/CategoryTheory/Preadditive/Injective.lean Modified Mathlib/CategoryTheory/Preadditive/LeftExact.lean - def CategoryTheory.Functor.preservesBinaryCoproductsOfPreservesCokernels + theorem CategoryTheory.Functor.preservesBinaryCoproducts_of_preservesCokernels - def CategoryTheory.Functor.preservesBinaryProductOfPreservesKernels + theorem CategoryTheory.Functor.preservesBinaryProduct_of_preservesKernels - def CategoryTheory.Functor.preservesBinaryProductsOfPreservesKernels + theorem CategoryTheory.Functor.preservesBinaryProducts_of_preservesKernels - def CategoryTheory.Functor.preservesCoequalizerOfPreservesCokernels + theorem CategoryTheory.Functor.preservesCoequalizer_of_preservesCokernels - def CategoryTheory.Functor.preservesCoequalizersOfPreservesCokernels + theorem CategoryTheory.Functor.preservesCoequalizers_of_preservesCokernels - def CategoryTheory.Functor.preservesCoproductOfPreservesCokernels + theorem CategoryTheory.Functor.preservesCoproduct_of_preservesCokernels - def CategoryTheory.Functor.preservesEqualizerOfPreservesKernels + theorem CategoryTheory.Functor.preservesEqualizer_of_preservesKernels - def CategoryTheory.Functor.preservesEqualizersOfPreservesKernels + theorem CategoryTheory.Functor.preservesEqualizers_of_preservesKernels - def CategoryTheory.Functor.preservesFiniteColimitsOfPreservesCokernels + theorem CategoryTheory.Functor.preservesFiniteColimits_of_preservesCokernels - def CategoryTheory.Functor.preservesFiniteLimitsOfPreservesKernels + theorem CategoryTheory.Functor.preservesFiniteLimits_of_preservesKernels Modified Mathlib/CategoryTheory/Preadditive/Projective.lean Modified Mathlib/CategoryTheory/Preadditive/Yoneda/Limits.lean Modified Mathlib/CategoryTheory/Sites/Abelian.lean Modified Mathlib/CategoryTheory/Sites/Coherent/ExtensiveSheaves.lean Modified Mathlib/CategoryTheory/Sites/Coherent/LocallySurjective.lean Modified Mathlib/CategoryTheory/Sites/Coherent/SheafComparison.lean Modified Mathlib/CategoryTheory/Sites/Equivalence.lean Modified Mathlib/CategoryTheory/Sites/LeftExact.lean + def CategoryTheory.GrothendieckTopology.liftToDiagramLimitObjAux + theorem CategoryTheory.GrothendieckTopology.liftToDiagramLimitObjAux_fac Modified Mathlib/CategoryTheory/Sites/Preserves.lean - def CategoryTheory.Presieve.preservesProductOfIsSheafFor + theorem CategoryTheory.Presieve.preservesProduct_of_isSheafFor - def CategoryTheory.Presieve.preservesTerminalOfIsSheafForEmpty + theorem CategoryTheory.Presieve.preservesTerminal_of_isSheaf_for_empty Modified Mathlib/CategoryTheory/Sites/Pullback.lean Modified Mathlib/CategoryTheory/Sites/Sheaf.lean Modified Mathlib/CategoryTheory/Sites/Sheafification.lean Modified Mathlib/CategoryTheory/Triangulated/Functor.lean Modified Mathlib/CategoryTheory/Triangulated/HomologicalFunctor.lean Modified Mathlib/Condensed/Discrete/Characterization.lean Modified Mathlib/Condensed/Discrete/Colimit.lean Modified Mathlib/Condensed/Explicit.lean Modified Mathlib/Condensed/Light/Explicit.lean Modified Mathlib/Condensed/TopComparison.lean Modified Mathlib/Geometry/RingedSpace/LocallyRingedSpace/HasColimits.lean Modified Mathlib/Geometry/RingedSpace/OpenImmersion.lean Modified Mathlib/Geometry/RingedSpace/PresheafedSpace/HasColimits.lean Modified Mathlib/Geometry/RingedSpace/SheafedSpace.lean Modified Mathlib/RepresentationTheory/Action/Basic.lean Modified Mathlib/RepresentationTheory/Action/Limits.lean + theorem Action.preservesColimit_of_preserves + theorem Action.preservesColimitsOfShape_of_preserves + theorem Action.preservesColimitsOfSize_of_preserves + theorem Action.preservesLimit_of_preserves + theorem Action.preservesLimitsOfShape_of_preserves + theorem Action.preservesLimitsOfSize_of_preserves Modified Mathlib/RepresentationTheory/Rep.lean Modified Mathlib/Topology/Algebra/Category/ProfiniteGrp/Basic.lean Modified Mathlib/Topology/Category/CompHausLike/Limits.lean Modified Mathlib/Topology/Category/LightProfinite/Basic.lean Modified Mathlib/Topology/Category/Profinite/Basic.lean Modified Mathlib/Topology/Category/Stonean/Adjunctions.lean Modified Mathlib/Topology/Category/TopCat/Limits/Basic.lean Modified Mathlib/Topology/Category/TopCat/Yoneda.lean Modified Mathlib/Topology/Sheaves/SheafCondition/PairwiseIntersections.lean 2024-11-19 08:16:25 3a1c2a7 feat(LinearAlgebra/Matrix): Permanent (#18936) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/LinearAlgebra/Matrix/Permanent.lean + def Matrix.permanent + theorem Matrix.permanent_diagonal + theorem Matrix.permanent_eq_elem_of_card_eq_one + theorem Matrix.permanent_eq_elem_of_subsingleton + theorem Matrix.permanent_eq_one_of_card_eq_zero + theorem Matrix.permanent_isEmpty + theorem Matrix.permanent_one + theorem Matrix.permanent_permute_cols + theorem Matrix.permanent_permute_rows + theorem Matrix.permanent_transpose + theorem Matrix.permanent_unique + theorem Matrix.permanent_zero 2024-11-19 07:30:29 9274ddb feat(Tactic/StacksAttribute): improve comment shown in docstring for stack tags (#19235) Previously it was ```text Stacks Tag 09HK Part 1, finSepDegree variant ``` Now it should be ```text Stacks Tag 09HK (Part 1, finSepDegree variant) ``` which is more compact. ESTIMATED CHANGES Modified Mathlib/Tactic/StacksAttribute.lean Modified MathlibTest/StacksAttribute.lean 2024-11-19 05:23:28 955e8f9 chore: fix defeq abuse between `List.get_mem` and `List.getElem_mem` (#19224) In all these places the goal state is about `getElem` not `List.get`. This will reduce the fallout of leanprover/lean4#6095. ESTIMATED CHANGES Modified Mathlib/Data/List/EditDistance/Bounds.lean Modified Mathlib/Data/List/MinMax.lean Modified Mathlib/Data/List/Nodup.lean Modified Mathlib/Data/List/NodupEquivFin.lean Modified Mathlib/Data/List/Permutation.lean 2024-11-19 04:07:31 b2244f6 chore(SetTheory/Ordinal/Basic): `Ordinal.NeZero.One` → `Ordinal.instNeZeroOne` (#19064) ESTIMATED CHANGES Modified Mathlib/SetTheory/Nimber/Basic.lean Modified Mathlib/SetTheory/Ordinal/Basic.lean Modified Mathlib/SetTheory/Ordinal/NaturalOps.lean 2024-11-19 02:51:22 47f0d27 chore(SetTheory/Cardinal/Aleph): golf `aleph` theorems (#18204) ESTIMATED CHANGES Modified Mathlib/SetTheory/Cardinal/Aleph.lean + theorem Cardinal.preAleph_le_aleph +/- theorem Cardinal.preAleph_nat +/- theorem Cardinal.preAleph_omega0 + theorem Ordinal.preOmega_le_omega 2024-11-19 00:27:42 812897a feat(Manifold/IntegralCurve/Transform): pointwise notation and translation lemmas for subtraction (#19008) We restate the translation lemmas for integral curves using the `Pointwise` API and add translation lemmas for subtraction for convenience. This is just split out from #9013. The `Pointwise` API allows us to use lemmas like `Metric.vadd_ball` and more convenient rewriting of the `dt` term (rather than rewriting it inside the set builder notation). ESTIMATED CHANGES Modified Mathlib/Geometry/Manifold/IntegralCurve/Transform.lean + theorem isIntegralCurveAt_comp_sub + theorem isIntegralCurveOn_comp_sub + theorem isIntegralCurve_comp_sub 2024-11-19 00:05:26 42f07b9 refactor(MeasureTheory/MeasurableSpace/Card): avoid `Ordinal.toType` (#18199) We redefine `generateMeasurableRec` so that it's indexed by an ordinal, rather than being indexed by `ω₁.toType`. We also employ `ω₁` and its new API throughout the file. ESTIMATED CHANGES Modified Mathlib/MeasureTheory/MeasurableSpace/Card.lean - theorem MeasurableSpace.cardinalMeasurableSet_le +/- theorem MeasurableSpace.cardinal_generateMeasurableRec_le + theorem MeasurableSpace.cardinal_measurableSet_le +/- theorem MeasurableSpace.compl_mem_generateMeasurableRec +/- theorem MeasurableSpace.empty_mem_generateMeasurableRec +/- def MeasurableSpace.generateMeasurableRec + theorem MeasurableSpace.generateMeasurableRec_induction + theorem MeasurableSpace.generateMeasurableRec_mono + theorem MeasurableSpace.generateMeasurableRec_of_omega1_le + theorem MeasurableSpace.generateMeasurableRec_omega1 +/- theorem MeasurableSpace.generateMeasurableRec_subset +/- theorem MeasurableSpace.iUnion_mem_generateMeasurableRec +/- theorem MeasurableSpace.self_subset_generateMeasurableRec Modified Mathlib/SetTheory/Cardinal/Aleph.lean Modified Mathlib/SetTheory/Cardinal/Cofinality.lean + theorem Cardinal.IsRegular.cof_omega_eq 2024-11-18 23:38:29 7c210ff chore: move NumberTheory.Liouville to NumberTheory.Transcendental.Liouville (#19225) In preparation for #6718. ESTIMATED CHANGES Modified Mathlib.lean Renamed Mathlib/NumberTheory/Liouville/Basic.lean to Mathlib/NumberTheory/Transcendental/Liouville/Basic.lean Renamed Mathlib/NumberTheory/Liouville/LiouvilleNumber.lean to Mathlib/NumberTheory/Transcendental/Liouville/LiouvilleNumber.lean Renamed Mathlib/NumberTheory/Liouville/LiouvilleWith.lean to Mathlib/NumberTheory/Transcendental/Liouville/LiouvilleWith.lean Renamed Mathlib/NumberTheory/Liouville/Measure.lean to Mathlib/NumberTheory/Transcendental/Liouville/Measure.lean Renamed Mathlib/NumberTheory/Liouville/Residual.lean to Mathlib/NumberTheory/Transcendental/Liouville/Residual.lean 2024-11-18 22:39:35 db980d6 feat: define `PGame.identical` `PGame.memₗ` `PGame.memᵣ` (#17122) ESTIMATED CHANGES Modified Mathlib/SetTheory/Game/PGame.lean + theorem SetTheory.PGame.Identical.congr_left + theorem SetTheory.PGame.Identical.congr_right + theorem SetTheory.PGame.Identical.equiv + theorem SetTheory.PGame.Identical.ext + theorem SetTheory.PGame.Identical.ext_iff + theorem SetTheory.PGame.Identical.ge + theorem SetTheory.PGame.Identical.le + theorem SetTheory.PGame.Identical.moveLeft + theorem SetTheory.PGame.Identical.moveRight + theorem SetTheory.PGame.Identical.of_equiv + theorem SetTheory.PGame.Identical.of_fn + def SetTheory.PGame.Identical + def SetTheory.PGame.identicalSetoid + theorem SetTheory.PGame.identical_comm + theorem SetTheory.PGame.identical_iff' + theorem SetTheory.PGame.identical_iff + theorem SetTheory.PGame.identical_of_isEmpty + theorem SetTheory.PGame.memᵣ.congr_left + theorem SetTheory.PGame.memᵣ.congr_right + def SetTheory.PGame.memᵣ + theorem SetTheory.PGame.memᵣ_def + theorem SetTheory.PGame.memₗ.congr_left + theorem SetTheory.PGame.memₗ.congr_right + def SetTheory.PGame.memₗ + theorem SetTheory.PGame.memₗ_def + theorem SetTheory.PGame.moveLeft_memₗ + theorem SetTheory.PGame.moveRight_memᵣ 2024-11-18 21:32:24 4362117 feat(CategoryTheory): weaken assumptions and dualize file `Limits/Constructions/Filtered.lean` (#19196) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Limits/Constructions/Filtered.lean +/- def CategoryTheory.Limits.CoproductsFromFiniteFiltered.liftToFinsetColimitCocone + def CategoryTheory.Limits.ProductsFromFiniteCofiltered.liftToFinset + def CategoryTheory.Limits.ProductsFromFiniteCofiltered.liftToFinsetEvaluationIso + def CategoryTheory.Limits.ProductsFromFiniteCofiltered.liftToFinsetLimIso + def CategoryTheory.Limits.ProductsFromFiniteCofiltered.liftToFinsetLimitCone + def CategoryTheory.Limits.ProductsFromFiniteCofiltered.liftToFinsetObj 2024-11-18 21:32:21 dc324b5 feat: right-division as an `OrderIso` (#19191) ESTIMATED CHANGES Modified Mathlib/Algebra/GroupWithZero/Units/Equiv.lean + def Equiv.divRight₀ +/- theorem mulLeft_bijective₀ +/- theorem mulRight_bijective₀ Modified Mathlib/Algebra/Order/GroupWithZero/Unbundled/Lemmas.lean + def OrderIso.divRight₀ 2024-11-18 21:18:06 654802e feat(Polynomial/Splits): dvd_iff_roots_le_roots (#18800) ESTIMATED CHANGES Modified Mathlib/Algebra/Polynomial/Splits.lean + theorem Polynomial.Splits.dvd_iff_roots_le_roots + theorem Polynomial.Splits.dvd_of_roots_le_roots 2024-11-18 20:53:41 efe2a97 feat(MvPolynomial): `C a = 0 ↔ a = 0` (#19202) ESTIMATED CHANGES Modified Mathlib/Algebra/MonoidAlgebra/Degree.lean + theorem AddMonoidAlgebra.leadingCoeff_ne_zero Modified Mathlib/Algebra/MvPolynomial/Basic.lean + theorem MvPolynomial.C_eq_zero + theorem MvPolynomial.C_ne_zero 2024-11-18 18:54:17 c34ded5 chore: update Mathlib dependencies 2024-11-18 (#19219) This PR updates the Mathlib dependencies. ESTIMATED CHANGES Modified lake-manifest.json 2024-11-18 18:54:16 8bf2950 ci: ensure error codes from `git rev-parse` are propagated (#19215) Previously the exit status of the git command would not be propagated ESTIMATED CHANGES Modified .github/workflows/update_dependencies.yml 2024-11-18 18:54:15 7c8674a feat: sufficient condition for a presheaf to preserve finite limits (#18283) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Limits/Preserves/Presheaf.lean + def CategoryTheory.Limits.PreservesFiniteLimitsOfIsFilteredCostructuredArrowYonedaAux.flipFunctorToInterchange + def CategoryTheory.Limits.PreservesFiniteLimitsOfIsFilteredCostructuredArrowYonedaAux.functorToInterchange + def CategoryTheory.Limits.PreservesFiniteLimitsOfIsFilteredCostructuredArrowYonedaAux.functorToInterchangeIso + theorem CategoryTheory.Limits.PreservesFiniteLimitsOfIsFilteredCostructuredArrowYonedaAux.isIso_post + theorem CategoryTheory.Limits.PreservesFiniteLimitsOfIsFilteredCostructuredArrowYonedaAux.iso_hom + theorem CategoryTheory.Limits.isFiltered_costructuredArrow_yoneda_iff_nonempty_preservesFiniteLimits + theorem CategoryTheory.Limits.isFiltered_costructuredArrow_yoneda_of_preservesFiniteLimits 2024-11-18 18:16:53 2ff73d5 feat(Mathlib/Algebra/Order): add equivalent conditions to `a ≤ b` (#19166) Two theorems that give equivalent conditions to `a ≤ b` in terms of `ε`-approximation. - Generalize `a ≤ b ↔ ∀ ε, 1 < ε → a ≤ b * ε` (`le_iff_forall_one_lt_le_mul`) to monoids. - Add `(hb : 0 ≤ b) : a ≤ b ↔ ∀ ε, 1 < ε → a ≤ b * ε` for linearly ordered semifields. the proofs were suggested by @fpvandoorn in [this thread](https://leanprover.zulipchat.com/#narrow/channel/217875-Is-there-code-for-X.3F/topic/.60le_iff_forall_pos_le_add.60.20for.20.60NNReal.60) motivation: I will need them in the proof of regularity of `rieszContent`, that will be defined after #18775 ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Field/Basic.lean + theorem le_iff_forall_one_lt_le_mul₀ Modified Mathlib/Algebra/Order/Group/DenselyOrdered.lean - theorem le_iff_forall_one_lt_le_mul Modified Mathlib/Algebra/Order/Monoid/Unbundled/ExistsOfLE.lean + theorem le_iff_forall_one_lt_le_mul 2024-11-18 17:00:56 a77f59f fix: rename DeprecateMe to DeprecateTo and remove import (#19151) [Zulip report](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/DeprecateMe/near/482849897) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Tactic.lean Modified Mathlib/Tactic/Common.lean Renamed Mathlib/Tactic/DeprecateMe.lean to Mathlib/Tactic/DeprecateTo.lean - def Mathlib.Tactic.DeprecateMe.mkDeprecationStx - def Mathlib.Tactic.DeprecateMe.newNames - def Mathlib.Tactic.DeprecateMe.renameTheorem + def Mathlib.Tactic.DeprecateTo.mkDeprecationStx + def Mathlib.Tactic.DeprecateTo.newNames + def Mathlib.Tactic.DeprecateTo.renameTheorem Renamed MathlibTest/DeprecateMe.lean to MathlibTest/DeprecateTo.lean 2024-11-18 16:51:24 9c84692 chore: Split Mathlib.RingTheory.Ideal.Norm (#19211) We split `Mathlib.RingTheory.Ideal.Norm` into `Basic` and `RelNorm`. This is in preparation to generalize `Ideal.RelNorm` to nonfree extensions. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/NumberTheory/Cyclotomic/Rat.lean Modified Mathlib/RingTheory/FractionalIdeal/Norm.lean Renamed Mathlib/RingTheory/Ideal/Norm.lean to Mathlib/RingTheory/Ideal/Norm/AbsNorm.lean - theorem Ideal.map_relNorm - theorem Ideal.map_spanNorm - theorem Ideal.norm_mem_relNorm - theorem Ideal.norm_mem_spanNorm - def Ideal.relNorm - theorem Ideal.relNorm_apply - theorem Ideal.relNorm_bot - theorem Ideal.relNorm_eq_bot_iff - theorem Ideal.relNorm_mono - theorem Ideal.relNorm_singleton - theorem Ideal.relNorm_top - def Ideal.spanNorm - theorem Ideal.spanNorm_bot - theorem Ideal.spanNorm_eq - theorem Ideal.spanNorm_eq_bot_iff - theorem Ideal.spanNorm_localization - theorem Ideal.spanNorm_mono - theorem Ideal.spanNorm_mul - theorem Ideal.spanNorm_mul_of_bot_or_top - theorem Ideal.spanNorm_mul_of_field - theorem Ideal.spanNorm_mul_spanNorm_le - theorem Ideal.spanNorm_singleton - theorem Ideal.spanNorm_top Added Mathlib/RingTheory/Ideal/Norm/RelNorm.lean + theorem Ideal.map_relNorm + theorem Ideal.map_spanNorm + theorem Ideal.norm_mem_relNorm + theorem Ideal.norm_mem_spanNorm + def Ideal.relNorm + theorem Ideal.relNorm_apply + theorem Ideal.relNorm_bot + theorem Ideal.relNorm_eq_bot_iff + theorem Ideal.relNorm_mono + theorem Ideal.relNorm_singleton + theorem Ideal.relNorm_top + def Ideal.spanNorm + theorem Ideal.spanNorm_bot + theorem Ideal.spanNorm_eq + theorem Ideal.spanNorm_eq_bot_iff + theorem Ideal.spanNorm_localization + theorem Ideal.spanNorm_mono + theorem Ideal.spanNorm_mul + theorem Ideal.spanNorm_mul_of_bot_or_top + theorem Ideal.spanNorm_mul_of_field + theorem Ideal.spanNorm_mul_spanNorm_le + theorem Ideal.spanNorm_singleton + theorem Ideal.spanNorm_top 2024-11-18 16:07:37 277fb94 feat(Combinatorics/SimpleGraph/Matching): add `IsPerfectMatching.toSubgraph_spanningCoe_iff` (#19094) Just a small lemma about perfect matchings and `spanningCoe`. In preparation for Tutte's theorem. ESTIMATED CHANGES Modified Mathlib/Combinatorics/SimpleGraph/Matching.lean + theorem SimpleGraph.Subgraph.IsPerfectMatching.toSubgraph_spanningCoe_iff 2024-11-18 16:07:35 62c5318 fix: `linear_combination` with an additive constant (#19082) Fix a bug in one of the "off-label" use cases of `linear_combination`, which would not turn up in mathlib (because it throws a warning) but might confuse users in the wild. ESTIMATED CHANGES Modified Mathlib/Tactic/LinearCombination.lean Modified MathlibTest/linear_combination.lean 2024-11-18 16:07:34 72194f7 feat(Algebra): `Submodule R A` is algebra over `Ideal A` (#18493) Also upgrade `Submodule.mapHom` and `Ideal.mapHom` to RingHoms and show the former is also an `AlgHom` (`Submodule.mapAlgHom`). ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/Operations.lean + theorem Submodule.mapHom_id + theorem Submodule.mul_comm_of_commute Modified Mathlib/Algebra/Group/Submonoid/Pointwise.lean + theorem AddSubmonoid.mul_comm_of_commute Modified Mathlib/RingTheory/Ideal/Maps.lean +/- theorem Ideal.coe_restrictScalars +/- def Ideal.mapHom +/- theorem Ideal.map_mul +/- theorem Ideal.restrictScalars_mul Modified Mathlib/RingTheory/Ideal/Operations.lean + def Submodule.mapAlgEquiv + def Submodule.mapAlgHom 2024-11-18 15:35:44 b04165d doc: `Result.isRat` assumes coprimality (#19207) Confirmed in dicussion with Mario; `norm_num` relies on this assumption when proving equality of rationals by `rfl`. ESTIMATED CHANGES Modified Mathlib/Tactic/NormNum/Result.lean 2024-11-18 15:35:42 f2ac82b chore(FieldTheory/PurelyInseparable): fix typo `_of_isIntegral'` -> `_of_isSeparable'` (#19182) ESTIMATED CHANGES Modified Mathlib/FieldTheory/PurelyInseparable.lean - theorem LinearIndependent.map_pow_expChar_pow_of_isIntegral' + theorem LinearIndependent.map_pow_expChar_pow_of_isSeparable' 2024-11-18 15:35:41 bdfd6f2 feat: add spoiler with comment to maintainer merge (#19069) For this PR, it would produce a message like adomani requested a maintainer **delegate** from comment on PR [#19069](url):
feat: add spoiler with comment to maintainer merge This is a great addition, thanks! maintainer delegate Maintainers, please check that it passes CI!
ESTIMATED CHANGES Modified .github/workflows/maintainer_merge.yml Modified scripts/maintainer_merge_message.sh 2024-11-18 15:16:39 d4a83c9 chore: add some simp and fun_prop attributes (#18874) * Also add a test file that uses the `simp` lemmas. * Add/move the `fun_prop` lemmas to the compositional lemmas. [Zulip](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Derivative.20cannot.20simp) ESTIMATED CHANGES Modified Mathlib/Analysis/Calculus/Deriv/Basic.lean Modified Mathlib/Analysis/SpecialFunctions/ExpDeriv.lean Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Deriv.lean Added MathlibTest/Deriv.lean 2024-11-18 14:56:40 7b79131 fix: do not count un-deprecations in `Mathlib/Deprecated` (#19184) [Reported on Zulip](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Technical.20Debt.20Counters/near/482926966) ESTIMATED CHANGES Modified scripts/technical-debt-metrics.sh 2024-11-18 14:56:38 5ebc4a6 feat(Data/seq): basic lemmas about Stream'.seq and the definition of length (#18589) ESTIMATED CHANGES Modified Mathlib/Data/Seq/Seq.lean + theorem Stream'.Seq.get?_zero_eq_none + theorem Stream'.Seq.getElem?_take + theorem Stream'.Seq.getElem?_toList + theorem Stream'.Seq.getLast?_toList + def Stream'.Seq.length + theorem Stream'.Seq.length_eq_zero + theorem Stream'.Seq.length_le_iff' + theorem Stream'.Seq.length_le_iff + theorem Stream'.Seq.length_map + theorem Stream'.Seq.length_nil + theorem Stream'.Seq.length_take_of_le_length + theorem Stream'.Seq.length_toList + theorem Stream'.Seq.lt_length_iff' + theorem Stream'.Seq.lt_length_iff + theorem Stream'.Seq.ofList_injective + theorem Stream'.Seq.ofList_toList + theorem Stream'.Seq.terminatedAt_map_iff + theorem Stream'.Seq.terminatedAt_nil + theorem Stream'.Seq.terminatedAt_ofList + theorem Stream'.Seq.terminatedAt_zero_iff + theorem Stream'.Seq.terminates_map_iff + theorem Stream'.Seq.terminates_nil + theorem Stream'.Seq.terminates_ofList + theorem Stream'.Seq.toList_nil + theorem Stream'.Seq.toList_ofList 2024-11-18 14:41:27 941de86 chore: all variants of `limitOpIsoOpColimit` (#18558) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Limits/IndYoneda.lean - theorem CategoryTheory.Limits.limitOpIsoOpColimit_hom_comp_ι - theorem CategoryTheory.Limits.limitOpIsoOpColimit_inv_comp_π - theorem CategoryTheory.Limits.limitRightOpIsoOpColimit_hom_comp_ι - theorem CategoryTheory.Limits.limitRightOpIsoOpColimit_inv_comp_π Modified Mathlib/CategoryTheory/Limits/Opposites.lean + def CategoryTheory.Limits.colimitLeftOpIsoUnopLimit + def CategoryTheory.Limits.colimitOpIsoOpLimit + def CategoryTheory.Limits.colimitRightOpIsoUnopLimit + def CategoryTheory.Limits.colimitUnopIsoOpLimit + def CategoryTheory.Limits.limitLeftOpIsoUnopColimit + theorem CategoryTheory.Limits.limitLeftOpIsoUnopColimit_hom_comp_ι + theorem CategoryTheory.Limits.limitLeftOpIsoUnopColimit_inv_comp_π + def CategoryTheory.Limits.limitOpIsoOpColimit + theorem CategoryTheory.Limits.limitOpIsoOpColimit_hom_comp_ι + theorem CategoryTheory.Limits.limitOpIsoOpColimit_inv_comp_π + def CategoryTheory.Limits.limitRightOpIsoOpColimit + theorem CategoryTheory.Limits.limitRightOpIsoOpColimit_hom_comp_ι + theorem CategoryTheory.Limits.limitRightOpIsoOpColimit_inv_comp_π + def CategoryTheory.Limits.limitUnopIsoUnopColimit + theorem CategoryTheory.Limits.limitUnopIsoUnopColimit_hom_comp_ι + theorem CategoryTheory.Limits.limitUnopIsoUnopColimit_inv_comp_π + theorem CategoryTheory.Limits.ι_comp_colimitLeftOpIsoUnopLimit_hom + theorem CategoryTheory.Limits.ι_comp_colimitOpIsoOpLimit_hom + theorem CategoryTheory.Limits.ι_comp_colimitRightOpIsoUnopLimit_hom + theorem CategoryTheory.Limits.ι_comp_colimitUnopIsoOpLimit_hom + theorem CategoryTheory.Limits.π_comp_colimitLeftOpIsoUnopLimit_inv + theorem CategoryTheory.Limits.π_comp_colimitOpIsoOpLimit_inv + theorem CategoryTheory.Limits.π_comp_colimitRightOpIsoUnopLimit_inv + theorem CategoryTheory.Limits.π_comp_colimitUnopIsoOpLimit_inv 2024-11-18 13:57:18 aed31ba chore(MeasureTheory): move 2 files about vector-valued measures to a new folder (#19168) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/MeasureTheory/Decomposition/RadonNikodym.lean Modified Mathlib/MeasureTheory/Decomposition/SignedHahn.lean Modified Mathlib/MeasureTheory/Decomposition/SignedLebesgue.lean Modified Mathlib/MeasureTheory/Measure/Complex.lean Renamed Mathlib/MeasureTheory/Measure/VectorMeasure.lean to Mathlib/MeasureTheory/VectorMeasure/Basic.lean Renamed Mathlib/MeasureTheory/Measure/WithDensityVectorMeasure.lean to Mathlib/MeasureTheory/VectorMeasure/WithDensity.lean 2024-11-18 13:57:16 2f99cb3 chore: make sigma-algebra implicit in the `Measure.map` API (#19026) This sigma-algebra can be inferred from context and will be filled in non-canonically in the context of Gibbs measures. From GibbsMeasure ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Measure/Lebesgue/VolumeOfBalls.lean Modified Mathlib/MeasureTheory/Measure/MeasureSpace.lean +/- def MeasureTheory.Measure.liftLinear +/- def MeasureTheory.Measure.mapₗ Modified Mathlib/Probability/Kernel/Condexp.lean 2024-11-18 13:41:04 a0408b3 chore(MeasureTheory): move `Measure.comap` to a new file (#19178) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/MeasureTheory/Measure/Comap.lean + theorem MeasurableEmbedding.comap_add + theorem MeasurableEquiv.comap_symm + theorem MeasurableEquiv.map_symm + theorem MeasureTheory.Measure.NullMeasurableSet.image + theorem MeasureTheory.Measure.ae_eq_image_of_ae_eq_comap + def MeasureTheory.Measure.comap + theorem MeasureTheory.Measure.comap_apply + theorem MeasureTheory.Measure.comap_apply₀ + theorem MeasureTheory.Measure.comap_preimage + theorem MeasureTheory.Measure.comap_zero + def MeasureTheory.Measure.comapₗ + theorem MeasureTheory.Measure.comapₗ_apply + theorem MeasureTheory.Measure.comapₗ_eq_comap + theorem MeasureTheory.Measure.le_comap_apply + theorem MeasureTheory.Measure.measure_image_eq_zero_of_comap_eq_zero + theorem comap_swap Modified Mathlib/MeasureTheory/Measure/MeasureSpace.lean - theorem MeasurableEmbedding.comap_add - theorem MeasurableEquiv.comap_symm - theorem MeasurableEquiv.map_symm - theorem MeasureTheory.Measure.NullMeasurableSet.image - theorem MeasureTheory.Measure.ae_eq_image_of_ae_eq_comap - def MeasureTheory.Measure.comap - theorem MeasureTheory.Measure.comap_apply - theorem MeasureTheory.Measure.comap_apply₀ - theorem MeasureTheory.Measure.comap_preimage - theorem MeasureTheory.Measure.comap_swap - theorem MeasureTheory.Measure.comap_zero - def MeasureTheory.Measure.comapₗ - theorem MeasureTheory.Measure.comapₗ_apply - theorem MeasureTheory.Measure.comapₗ_eq_comap - theorem MeasureTheory.Measure.le_comap_apply - theorem MeasureTheory.Measure.measure_image_eq_zero_of_comap_eq_zero Modified Mathlib/MeasureTheory/Measure/Restrict.lean 2024-11-18 13:17:54 2c6450e feat(CategoryTheory): a biproduct of epimorphisms is an epimorphism, etc (#19190) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Limits/Shapes/Biproducts.lean 2024-11-18 13:02:28 7698f92 feat: add IsPrimitiveRoot.pow_sub_pow_eq_prod_sub_mul (#19022) From flt-regular. ESTIMATED CHANGES Modified Mathlib/Algebra/Polynomial/Roots.lean + theorem Polynomial.map_mem_nthRootsFinset Modified Mathlib/RingTheory/Polynomial/Cyclotomic/Basic.lean + theorem IsPrimitiveRoot.pow_add_pow_eq_prod_add_mul + theorem IsPrimitiveRoot.pow_sub_pow_eq_prod_sub_mul +/- theorem Polynomial.dvd_C_mul_X_sub_one_pow_add_one 2024-11-18 12:21:49 5fbd4a7 chore: move `Fin` material earlier (#19186) This will in particular be used in #19086 to prove `Finite Bool` and `Finite Prop` much earlier. ESTIMATED CHANGES Modified Mathlib/Algebra/Ring/Fin.lean Modified Mathlib/CategoryTheory/Limits/Constructions/FiniteProductsOfBinaryProducts.lean Modified Mathlib/CategoryTheory/Monoidal/Types/Basic.lean Modified Mathlib/Combinatorics/SimpleGraph/ConcreteColorings.lean Modified Mathlib/Data/Countable/Basic.lean Modified Mathlib/Data/Fin/Basic.lean Modified Mathlib/Data/Fin/Tuple/Basic.lean + def Fin.consEquiv + def Fin.insertNthEquiv + theorem Fin.insertNthEquiv_last + theorem Fin.insertNthEquiv_zero + def Fin.snocEquiv + def piFinTwoEquiv Modified Mathlib/Data/Fin/Tuple/Finset.lean Modified Mathlib/Data/ZMod/Defs.lean Modified Mathlib/Logic/Equiv/Defs.lean + def finOneEquiv + def finTwoEquiv + def finZeroEquiv' + def finZeroEquiv Modified Mathlib/Logic/Equiv/Fin.lean - def Fin.consEquiv - def Fin.insertNthEquiv - theorem Fin.insertNthEquiv_last - theorem Fin.insertNthEquiv_zero - def Fin.snocEquiv - def finOneEquiv - def finTwoEquiv - def finZeroEquiv' - def finZeroEquiv - def piFinTwoEquiv Modified Mathlib/Logic/Unique.lean Modified Mathlib/MeasureTheory/MeasurableSpace/Basic.lean Modified Mathlib/SetTheory/Cardinal/Basic.lean 2024-11-18 12:07:17 54d1220 chore: split Topology.ContinuousMap.Bounded (#19187) ESTIMATED CHANGES Modified Counterexamples/Phillips.lean Modified Mathlib.lean Modified Mathlib/Analysis/Normed/Lp/LpEquiv.lean Modified Mathlib/MeasureTheory/Integral/RieszMarkovKakutani.lean Renamed Mathlib/Topology/ContinuousMap/Bounded.lean to Mathlib/Topology/ContinuousMap/Bounded/Basic.lean - theorem BoundedContinuousFunction.coe_star - theorem BoundedContinuousFunction.star_apply Added Mathlib/Topology/ContinuousMap/Bounded/Star.lean + theorem BoundedContinuousFunction.coe_star + theorem BoundedContinuousFunction.star_apply Modified Mathlib/Topology/ContinuousMap/BoundedCompactlySupported.lean Modified Mathlib/Topology/ContinuousMap/Compact.lean Modified Mathlib/Topology/ContinuousMap/ZeroAtInfty.lean Modified Mathlib/Topology/MetricSpace/GromovHausdorffRealized.lean Modified Mathlib/Topology/MetricSpace/ThickenedIndicator.lean Modified Mathlib/Topology/Metrizable/Urysohn.lean Modified Mathlib/Topology/UrysohnsBounded.lean 2024-11-18 12:07:16 f4f2d31 fix: escape `"` in `update_dependencies_zulip` (#19183) This probably fixes the action that posts reports on updating dependencies to Zulip. ESTIMATED CHANGES Modified .github/workflows/update_dependencies_zulip.yml 2024-11-18 11:19:59 bcef7c5 feat(KrullDimension): coheight API (#19148) Part of #15524. This adds basic definitions for the `coheight`, and then analogous lemmas for every lemma about `height`. Due to the way `coheight` is defined, most lemmas are defeq to the corresponding lemma bout `height` in the dual order. From the Carleson project. ESTIMATED CHANGES Modified Mathlib/Order/KrullDimension.lean + theorem Order.coe_lt_coheight_iff + theorem Order.coheight_anti + theorem Order.coheight_eq + theorem Order.coheight_eq_coe_add_one_iff + theorem Order.coheight_eq_coe_iff + theorem Order.coheight_eq_coe_iff_maximal_le_coheight + theorem Order.coheight_eq_iSup_gt_coheight + theorem Order.coheight_eq_iSup_head_eq + theorem Order.coheight_eq_index_of_length_eq_head_coheight + theorem Order.coheight_eq_top_iff + theorem Order.coheight_eq_zero + theorem Order.coheight_le + theorem Order.coheight_le_coe_iff + theorem Order.coheight_le_coheight_apply_of_strictMono + theorem Order.coheight_le_iff' + theorem Order.coheight_le_iff + theorem Order.coheight_ofDual + theorem Order.coheight_orderIso + theorem Order.coheight_toDual + theorem Order.coheight_top + theorem Order.exists_series_of_coheight_eq_coe + theorem Order.exists_series_of_le_coheight +/- theorem Order.height_le_coe_iff + theorem Order.height_ofDual + theorem Order.height_toDual + theorem Order.length_le_coheight + theorem Order.length_le_coheight_head + theorem Order.rev_index_le_coheight 2024-11-18 11:19:57 f2bb1c7 feat: the upstreamDecl linter (#18702) This linter is intended to work much like `minImports` in helping with splitting files. It places a warning on each set of declarations that could be moved to an earlier file. It takes into account dependencies on declarations in the current file, so that a whole block of declarations can be moved even if there are dependencies between the declarations in the block. Since definitions are often deliberately placed in their own file, this linter does not place a warning on any declaration depending on a definition in the current file. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Tactic.lean Modified Mathlib/Tactic/Linter.lean Added Mathlib/Tactic/Linter/UpstreamableDecl.lean + def Lean.Environment.localDefDependencies + def Lean.Name.isLocal + def Mathlib.Linter.DoubleImports.upstreamableDeclLinter Modified Mathlib/Tactic/MinImports.lean + def Mathlib.Command.MinImports.getAllDependencies Modified MathlibTest/MinImports.lean + def def_with_multiple_dependencies + def propose_to_move_this_def + theorem propose_to_move_this_theorem + theorem theorem_with_local_def 2024-11-18 11:19:55 db944bf chore: use `Pairwise (_ on _)` where possible (#9256) ESTIMATED CHANGES Modified Mathlib/Analysis/InnerProductSpace/JointEigenspace.lean Modified Mathlib/Analysis/Normed/Algebra/Exponential.lean Modified Mathlib/Analysis/Normed/Algebra/MatrixExponential.lean Modified Mathlib/Data/Fin/Tuple/NatAntidiagonal.lean Modified Mathlib/Data/Finset/NoncommProd.lean Modified Mathlib/Data/Fintype/Basic.lean Modified Mathlib/Data/List/Nodup.lean Modified Mathlib/Data/List/Pairwise.lean Modified Mathlib/Data/List/Permutation.lean Modified Mathlib/Data/List/Sublists.lean Modified Mathlib/Data/Multiset/Bind.lean Modified Mathlib/Data/Nat/Choose/Multinomial.lean Modified Mathlib/Data/Set/Lattice.lean +/- theorem Set.sigmaToiUnion_bijective +/- theorem Set.sigmaToiUnion_injective Modified Mathlib/Data/Setoid/Partition.lean +/- theorem IndexedPartition.disjoint Modified Mathlib/Data/ZMod/Quotient.lean Modified Mathlib/GroupTheory/CoprodI.lean Modified Mathlib/Probability/StrongLaw.lean Modified Mathlib/RingTheory/Ideal/Quotient/Operations.lean Modified Mathlib/SetTheory/Cardinal/Basic.lean 2024-11-18 10:53:38 82e5e81 refactor(NumberTheory/LSeries): merge `QuadraticNonvanishing` into `Nonvanishing` (#19185) The proof of non-vanishing of Dirichlet L-functions on `re s = 1` was written in two chunks, since the case of quadratic characters at `s = 1` needs to be handled separately. This PR merges together the two files, and makes one more theorem private since it is superseded by more general results proved later on, rendering the case split in the proof invisible to end-users. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/NumberTheory/LSeries/Nonvanishing.lean + def DirichletCharacter.BadChar.F + theorem DirichletCharacter.LSeriesSummable_zetaMul + theorem DirichletCharacter.isMultiplicative_zetaMul + def DirichletCharacter.zetaMul + theorem DirichletCharacter.zetaMul_nonneg + theorem DirichletCharacter.zetaMul_prime_pow_nonneg +/- theorem riemannZeta_ne_zero_of_one_le_re Deleted Mathlib/NumberTheory/LSeries/QuadraticNonvanishing.lean - def DirichletCharacter.BadChar.F - theorem DirichletCharacter.LFunction_at_one_ne_zero_of_quadratic - theorem DirichletCharacter.LSeriesSummable_zetaMul - theorem DirichletCharacter.isMultiplicative_zetaMul - def DirichletCharacter.zetaMul - theorem DirichletCharacter.zetaMul_nonneg - theorem DirichletCharacter.zetaMul_prime_pow_nonneg 2024-11-18 10:53:37 9b575f2 feat: `NormedLatticeAddCommGroup` instances for `ℤ` and `ℚ` (#19143) ESTIMATED CHANGES Modified Mathlib/Analysis/Normed/Order/Lattice.lean 2024-11-18 10:53:35 dcaf73c feat: add some lemmas about Monoid.exponent and Int-powers (#19079) ESTIMATED CHANGES Modified Mathlib/GroupTheory/Exponent.lean + theorem Group.exponent_dvd_iff_forall_zpow_eq_one + theorem Group.exponent_dvd_sub_iff_zpow_eq_zpow Modified Mathlib/GroupTheory/OrderOfElement.lean + theorem orderOf_dvd_sub_iff_zpow_eq_zpow 2024-11-18 10:08:50 cdbc43e feat(stacks/kerodon): automatically update doc-string with link (#19131) [Zulip discussion](https://leanprover.zulipchat.com/#narrow/channel/113488-general/topic/stacks.20tags/near/482646447) ESTIMATED CHANGES Modified Mathlib/Tactic/StacksAttribute.lean 2024-11-18 10:08:49 15fca27 refactor(GroupTheory/Index): Remove unnecessary coercions to `Set` in `index_ker` and `relindex_ker` (#19105) This PR removes unnecessary coercions to `Set` in `index_ker` and `relindex_ker`. ESTIMATED CHANGES Modified Mathlib/GroupTheory/Index.lean +/- theorem Subgroup.index_ker +/- theorem Subgroup.relindex_ker 2024-11-18 10:08:47 0995fe6 chore: missing deprecations from #18967 (#19081) ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Ring/Basic.lean Modified Mathlib/Analysis/Distribution/SchwartzSpace.lean Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Bounds.lean Modified Mathlib/MeasureTheory/Integral/PeakFunction.lean 2024-11-18 09:35:44 66df24a refactor(GroupTheory/SpecificGroups/Cyclic): Switch from `Fintype` to `Finite` (#19109) This PR switches most of `GroupTheory/SpecificGroups/Cyclic.lean` from `Fintype` to `Finite`. ESTIMATED CHANGES Modified Mathlib/FieldTheory/Finite/Basic.lean Modified Mathlib/GroupTheory/Exponent.lean Modified Mathlib/GroupTheory/SpecificGroups/Cyclic.lean +/- theorem CommGroup.is_simple_iff_isCyclic_and_prime_card +/- theorem IsCyclic.exponent_eq_card +/- theorem IsCyclic.ext +/- theorem IsCyclic.iff_exponent_eq_card +/- theorem IsCyclic.of_exponent_eq_card +/- theorem IsSimpleGroup.prime_card +/- theorem Subgroup.eq_bot_or_eq_top_of_prime_card +/- theorem exists_pow_ne_one_of_isCyclic +/- theorem isCyclic_of_orderOf_eq_card +/- theorem isCyclic_of_prime_card +/- theorem isSimpleGroup_of_prime_card +/- theorem mem_powers_of_prime_card +/- theorem mem_zpowers_of_prime_card +/- theorem orderOf_eq_card_of_forall_mem_zpowers - theorem orderOf_generator_eq_natCard +/- theorem powers_eq_top_of_prime_card +/- theorem zpowers_eq_top_of_prime_card Modified Mathlib/GroupTheory/SpecificGroups/Quaternion.lean Modified Mathlib/NumberTheory/Cyclotomic/CyclotomicCharacter.lean Modified Mathlib/NumberTheory/LucasPrimality.lean Modified Mathlib/NumberTheory/MulChar/Lemmas.lean Modified Mathlib/RingTheory/RootsOfUnity/Basic.lean +/- def IsCyclic.monoidHomMulEquivRootsOfUnityOfGenerator +/- theorem IsCyclic.monoidHom_mulEquiv_rootsOfUnity Modified Mathlib/RingTheory/RootsOfUnity/EnoughRootsOfUnity.lean 2024-11-18 07:41:44 6d297a4 feat(NumberTheory/LSeries/Nonvanishing): new file (#19043) This is a substantial step on the way to PNT and Dirichlet's Theorem: it adds the fact that the L-function of a Dirichlet character does not vanish on the closed right half-plane `Re(s) ≥ 1`. From [EulerProducts](https://github.com/MichaelStollBayreuth/EulerProducts). See [here](https://leanprover.zulipchat.com/#narrow/channel/144837-PR-reviews/topic/Prerequisites.20for.20PNT.20and.20Dirichlet's.20Thm/near/482385971) on Zulip. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/NumberTheory/LSeries/Nonvanishing.lean + theorem DirichletCharacter.LFunctionTrivChar_isBigO_near_one_horizontal + theorem DirichletCharacter.LFunction_apply_one_ne_zero + theorem DirichletCharacter.LFunction_isBigO_horizontal + theorem DirichletCharacter.LFunction_ne_zero_of_one_le_re + theorem DirichletCharacter.LFunction_ne_zero_of_re_eq_one + theorem DirichletCharacter.norm_LFunction_product_ge_one + theorem DirichletCharacter.norm_LSeries_product_ge_one + theorem DirichletCharacter.summable_neg_log_one_sub_mul_prime_cpow + theorem riemannZeta_ne_zero_of_one_le_re 2024-11-18 07:41:43 9509b8d feat: determinant of reflection (#19016) ESTIMATED CHANGES Modified Mathlib/Analysis/InnerProductSpace/Projection.lean + theorem det_reflection + theorem linearEquiv_det_reflection 2024-11-18 07:12:22 d51f67b chore: backport some simpler proofs from lean-pr-testing-6053 (#19176) A few things that break under https://github.com/leanprover/lean4/pull/6053 admit nicer proofs anyway, so backport these more robust proofs. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Quotient.lean Modified Mathlib/Data/List/Cycle.lean Modified Mathlib/Data/TypeVec.lean 2024-11-18 07:12:19 a2d097b chore: more uses of `calc` and `gcongr` (#19173) Motivated by the deprecation in #19081 ESTIMATED CHANGES Modified Mathlib/Algebra/Order/GroupWithZero/Unbundled.lean + theorem pow_left_monotoneOn Modified Mathlib/Analysis/Fourier/FourierTransformDeriv.lean Modified Mathlib/Analysis/InnerProductSpace/Basic.lean Modified Mathlib/Analysis/Normed/Field/Ultra.lean Modified Mathlib/Analysis/SpecialFunctions/Exp.lean Modified Mathlib/Analysis/SpecialFunctions/JapaneseBracket.lean Modified Mathlib/Combinatorics/SimpleGraph/Regularity/Bound.lean Modified Mathlib/Combinatorics/SimpleGraph/Regularity/Chunk.lean Modified Mathlib/Combinatorics/SimpleGraph/Regularity/Lemma.lean Modified Mathlib/Data/Complex/Exponential.lean Modified Mathlib/Data/Real/Archimedean.lean Modified Mathlib/Data/Real/Basic.lean Modified Mathlib/Data/Real/Pi/Bounds.lean Modified Mathlib/NumberTheory/ModularForms/EisensteinSeries/UniformConvergence.lean Modified Mathlib/NumberTheory/ModularForms/JacobiTheta/Bounds.lean Modified Mathlib/NumberTheory/NumberField/Units/DirichletTheorem.lean 2024-11-18 06:50:52 0002a67 feat(SetTheory/Ordinal/Basic): `ω ≤ a.ord ↔ ℵ₀ ≤ a` (#18901) ESTIMATED CHANGES Modified Mathlib/SetTheory/Ordinal/Basic.lean + theorem Cardinal.omega0_le_ord + theorem Cardinal.omega0_lt_ord + theorem Cardinal.ord_eq_omega0 + theorem Cardinal.ord_le_omega0 + theorem Cardinal.ord_lt_omega0 + theorem Ordinal.aleph0_le_card + theorem Ordinal.card_lt_aleph0 2024-11-18 06:07:26 d2568da feat(Topology/Sheaves/Stalks): Generalize to `stalkPushforward_iso_of_inducing` (#18268) port of https://github.com/leanprover-community/mathlib3/pull/17539 ESTIMATED CHANGES Modified Mathlib/Geometry/RingedSpace/OpenImmersion.lean Modified Mathlib/Topology/Category/TopCat/OpenNhds.lean + def Topology.IsInducing.adjunctionNhds + def Topology.IsInducing.functorNhds Modified Mathlib/Topology/Category/TopCat/Opens.lean + def Topology.IsInducing.adjunction + def Topology.IsInducing.functor + def Topology.IsInducing.functorObj + theorem Topology.IsInducing.le_functorObj_iff + theorem Topology.IsInducing.map_functorObj + theorem Topology.IsInducing.mem_functorObj_iff + def Topology.IsInducing.opensGI Modified Mathlib/Topology/Sheaves/Stalks.lean + theorem TopCat.Presheaf.stalkPushforward.stalkPushforward_iso_of_isInducing - theorem TopCat.Presheaf.stalkPushforward.stalkPushforward_iso_of_isOpenEmbedding 2024-11-18 05:29:37 6e2b040 perf: hard-code typeclass inference in linarith (#18714) This PR modifies the `linarith` tactic to rely on custom copies of many lemmas, rather than the library versions of these lemmas. The difference is that the copies use high-level typeclasses (such as `OrderedSemiring`) rather than lower-level typeclasses (such as `AddRightMono`). This seems to improve `linarith` performance. The PR also introduces a performance test to the `linarith` test file, with a heartbeat limit which failed before this PR and passes (with leeway) after this PR. [Zulip](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/typeclass.20inference.20in.20linarith) ESTIMATED CHANGES Modified Mathlib/Tactic/Linarith/Lemmas.lean + theorem Linarith.add_lt_of_le_of_neg + theorem Linarith.add_lt_of_neg_of_le + theorem Linarith.add_neg + theorem Linarith.add_nonpos + theorem Linarith.sub_neg_of_lt + theorem Linarith.sub_nonpos_of_le + theorem Linarith.zero_lt_one Modified Mathlib/Tactic/Linarith/Preprocessing.lean Modified Mathlib/Tactic/Linarith/Verification.lean Modified MathlibTest/linarith.lean + def testSorryTac 2024-11-18 05:00:13 5750078 fix: linarith handling of decimals (#19174) [Zulip](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/linarith.20regression.20on.20real.20numbers) ESTIMATED CHANGES Modified Mathlib/Analysis/Normed/Ring/Units.lean Modified Mathlib/Combinatorics/Additive/AP/Three/Behrend.lean Modified Mathlib/Tactic/CancelDenoms/Core.lean + theorem CancelDenoms.derive_trans₂ Modified Mathlib/Tactic/Linarith/Preprocessing.lean Modified MathlibTest/linarith.lean 2024-11-18 02:41:21 25f427c feat(SetTheory/Cardinal/Aleph): some lemmas on `omega` (#18542) ESTIMATED CHANGES Modified Mathlib/SetTheory/Cardinal/Aleph.lean + theorem Cardinal.isLimit_omega + theorem Ordinal.lift_omega + theorem Ordinal.lift_preOmega + theorem Ordinal.omega_pos Modified Mathlib/SetTheory/Ordinal/Arithmetic.lean - theorem Ordinal.omega_pos Modified Mathlib/SetTheory/Ordinal/Basic.lean 2024-11-18 02:03:40 7aeae34 chore: fix warnings in longest pole (#19077) ESTIMATED CHANGES Modified LongestPole/Rectangles.lean Modified LongestPole/Unused.lean 2024-11-17 19:21:38 38affac chore: use AlgHom.restrictDomain (#19116) I previously didn't know the existence of `AlgHom.restrictDomain` and wrote many lemmas using a longer expression that is exactly the definition of `AlgHom.restrictDomain`; I'm now changing all these lemmas to use `AlgHom.restrictDomain`. There are more appearances of `.comp (IsScalarTower.toAlgHom` but either the file doesn't import `AlgHom.restrictDomain`, or using it breaks the proof, so I only replaced one appearance. ESTIMATED CHANGES Modified Mathlib/FieldTheory/Extension.lean Modified Mathlib/FieldTheory/IsAlgClosed/Basic.lean - theorem IsAlgClosed.surjective_comp_algebraMap_of_isAlgebraic + theorem IsAlgClosed.surjective_restrictDomain_of_isAlgebraic Modified Mathlib/FieldTheory/IsSepClosed.lean - theorem IsSepClosed.surjective_comp_algebraMap_of_isSeparable + theorem IsSepClosed.surjective_restrictDomain_of_isSeparable Modified Mathlib/RingTheory/IntegralClosure/IntegralRestrict.lean Modified Mathlib/RingTheory/Unramified/Basic.lean 2024-11-17 18:41:57 08ac458 feat: towards equalizers in the category of ind-objects (#18522) We're still quite far away from the final goal `ClosedUnderLimitsOfShape WalkingParallelPair (IsIndObject (C := C))`, but this is some progress in that direction. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Limits/Indization/Equalizers.lean + theorem CategoryTheory.Limits.isIndObject_limit_comp_yoneda_comp_colim 2024-11-17 18:32:46 aa0a9db chore: upload import graphs on build (#19162) Previously we were building them then throwing them away, but if we have them already it seems nice to expose them for use. [Zulip](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/Uploading.20the.20import.20graph) ESTIMATED CHANGES Modified .github/build.in.yml Modified .github/workflows/bors.yml Modified .github/workflows/build.yml Modified .github/workflows/build_fork.yml 2024-11-17 18:08:40 391a449 feat(Algebra/Group/Aut): Isomorphic groups have isomorphic automorphism groups (#19007) This PR shows that isomorphic groups have isomorphic automorphism groups. ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Aut.lean + def AddAut.congr + def MulAut.congr 2024-11-17 17:51:16 b10de21 feat(AlgebraicGeometry): basic API for `Proj` (#19152) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/AlgebraicGeometry/OpenImmersion.lean + theorem AlgebraicGeometry.Scheme.Hom.opensRange_comp + theorem AlgebraicGeometry.Scheme.Hom.opensRange_comp_of_isIso + theorem AlgebraicGeometry.Scheme.Hom.opensRange_of_isIso Added Mathlib/AlgebraicGeometry/ProjectiveSpectrum/Basic.lean + def AlgebraicGeometry.Proj.affineOpenCover + def AlgebraicGeometry.Proj.awayToSection + def AlgebraicGeometry.Proj.awayι + theorem AlgebraicGeometry.Proj.awayι_toSpecZero + def AlgebraicGeometry.Proj.basicOpen + def AlgebraicGeometry.Proj.basicOpenIsoAway + def AlgebraicGeometry.Proj.basicOpenIsoSpec + def AlgebraicGeometry.Proj.basicOpenToSpec + theorem AlgebraicGeometry.Proj.basicOpenToSpec_app_top + theorem AlgebraicGeometry.Proj.basicOpen_eq_iSup_proj + theorem AlgebraicGeometry.Proj.basicOpen_mono + theorem AlgebraicGeometry.Proj.basicOpen_mul + theorem AlgebraicGeometry.Proj.basicOpen_one + theorem AlgebraicGeometry.Proj.basicOpen_pow + theorem AlgebraicGeometry.Proj.basicOpen_zero + theorem AlgebraicGeometry.Proj.iSup_basicOpen_eq_top + theorem AlgebraicGeometry.Proj.isAffineOpen_basicOpen + theorem AlgebraicGeometry.Proj.isBasis_basicOpen + theorem AlgebraicGeometry.Proj.mem_basicOpen + def AlgebraicGeometry.Proj.openCoverOfISupEqTop + theorem AlgebraicGeometry.Proj.opensRange_awayι + def AlgebraicGeometry.Proj.stalkIso + def AlgebraicGeometry.Proj.toSpecZero Modified Mathlib/RingTheory/GradedAlgebra/HomogeneousLocalization.lean + def HomogeneousLocalization.fromZeroRingHom 2024-11-17 17:51:15 917c079 refactor(Algebra/Polynomial/Lifts): Golf some proofs (#18796) This PR golfs some proofs in `Algebra/Polynomial/Lifts.lean`. ESTIMATED CHANGES Modified Mathlib/Algebra/Polynomial/Lifts.lean 2024-11-17 17:00:02 8161e35 chore(Tactic/Lift): don't use `True`/`False` where a `Bool` is expected (#19159) ESTIMATED CHANGES Modified Mathlib/Tactic/Lift.lean 2024-11-17 17:00:01 34691d7 chore: use `RingHom.ker` for `Polynomial.ker_mapRingHom` (#19157) ESTIMATED CHANGES Modified Mathlib/RingTheory/Polynomial/Basic.lean 2024-11-17 16:59:59 67997fa refactor(ENat.Lattice): ENat.sSup_mem_of_nonempty_of_lt_top naming convention (#19147) The `of_nonempty` should not be capitalized. ESTIMATED CHANGES Modified Mathlib/Data/ENat/Lattice.lean - theorem ENat.sSup_mem_of_Nonempty_of_lt_top + theorem ENat.sSup_mem_of_nonempty_of_lt_top Modified Mathlib/Order/KrullDimension.lean 2024-11-17 16:59:58 561dec6 feat: `(WithZero α)ˣ` is isomorphic to `α` as an ordered group (#18986) From FLT ESTIMATED CHANGES Modified Mathlib/Algebra/Order/GroupWithZero/Canonical.lean + theorem WithZero.unzero_le_unzero Modified Mathlib/Algebra/Order/Hom/Monoid.lean + def OrderMonoidIso.unitsWithZero 2024-11-17 16:39:35 acffbb9 chore: deduplicate `BddAbove.mul` (#19161) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Order/Group/Pointwise/Bounds.lean Deleted Mathlib/Data/Set/Pointwise/BoundedMul.lean - theorem Set.BddAbove.mul 2024-11-17 16:01:26 62ee20f feat(Polynomial): composing with the constant polynomial (#19090) ... and a point-free version of `coeff_map` From GrowthInGroups ESTIMATED CHANGES Modified Mathlib/Algebra/Polynomial/Eval/Coeff.lean + theorem Polynomial.coeff_map_eq_comp Modified Mathlib/Algebra/Polynomial/Eval/Defs.lean + theorem Polynomial.mapRingHom_comp_C 2024-11-17 16:01:25 14c7a8e feat(CategoryTheory/Enriched): functor categories are enriched (#18009) Let `C` be a category that is enriched over a monoidal category `V` in such a way that the category structure and the enriched category structure are compatible. Then, if `J` is a category and that `V` has certain limits, then the functor category `J ⥤ C` is also enriched over `V`. (Plan: using #17326, we may use this for `C := C` closed monoidal in order to show that a category of functors `J ⥤ C` to a monoidal category is enriched over `C`, and, by applying this to all `Under X` categories for `X : C`, it should follow that `J ⥤ C` is also closed monoidal. This should give a more explicit approach as compared to #16067.) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Enriched/FunctorCategory.lean + def CategoryTheory.Enriched.FunctorCategory.diagram + theorem CategoryTheory.Enriched.FunctorCategory.enrichedComp_π + theorem CategoryTheory.Enriched.FunctorCategory.enrichedHom_condition + theorem CategoryTheory.Enriched.FunctorCategory.enrichedId_π + theorem CategoryTheory.Enriched.FunctorCategory.enriched_assoc + theorem CategoryTheory.Enriched.FunctorCategory.enriched_comp_id + theorem CategoryTheory.Enriched.FunctorCategory.enriched_id_comp + theorem CategoryTheory.Enriched.FunctorCategory.homEquiv_apply_π + theorem CategoryTheory.Enriched.FunctorCategory.homEquiv_comp + theorem CategoryTheory.Enriched.FunctorCategory.homEquiv_id Modified Mathlib/CategoryTheory/Enriched/Ordinary.lean + def CategoryTheory.eHomFunctor + def CategoryTheory.eHomWhiskerLeft + def CategoryTheory.eHomWhiskerRight 2024-11-17 15:35:08 8925b43 chore(NumberTheory/RamificationInertia): move file RamificationInertia into folder RamificationInertia (#19140) Move the file `RamificationInertia.lean` into folder `NumberTheory/RamificationInertia` since we upstream the ramification theory in Galois extensions in #19141. Moves: - Mathlib.NumberTheory.RamificationInertia -> Mathlib.NumberTheory.RamificationInertia.Basic - [x] depends on: #19138 ESTIMATED CHANGES Modified Mathlib.lean Renamed Mathlib/NumberTheory/RamificationInertia.lean to Mathlib/NumberTheory/RamificationInertia/Basic.lean 2024-11-17 15:35:07 32240b2 feat: the bicentralizer of a commutative set is commutative (#18700) This shows that the bicentralizer (a.k.a. bicommutant) of a commutative set is commutative. Moreover, since `s ⊆ s.centralizer.centralizer`, if `s` is a commutative set, then `closure s ≤ centralizer (centralizer s)` for various subobject closures. Consequently, we obtain simplified proofs that if `s` is commutative, then so is `closure s`. ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Center.lean + theorem Set.centralizer_centralizer_comm_of_comm + theorem Set.centralizer_union Modified Mathlib/Algebra/Group/Subgroup/Basic.lean - def Subgroup.closureCommGroupOfComm Modified Mathlib/Algebra/Group/Submonoid/Membership.lean - def Submonoid.closureCommMonoidOfComm Modified Mathlib/Algebra/Ring/Subring/Basic.lean - def Subring.closureCommRingOfComm + theorem Subring.closure_le_centralizer_centralizer Modified Mathlib/Algebra/Ring/Subsemiring/Basic.lean - def Subsemiring.closureCommSemiringOfComm + theorem Subsemiring.closure_le_centralizer_centralizer Modified Mathlib/Algebra/Star/Center.lean + theorem Set.star_centralizer + theorem Set.union_star_self_comm Modified Mathlib/Algebra/Star/Subalgebra.lean + theorem StarAlgebra.adjoin_le_centralizer_centralizer + theorem StarSubalgebra.centralizer_toSubalgebra + theorem StarSubalgebra.coe_centralizer_centralizer - theorem StarSubalgebra.mem_centralizer_iff Modified Mathlib/GroupTheory/Subgroup/Centralizer.lean + theorem Subgroup.closure_le_centralizer_centralizer Modified Mathlib/GroupTheory/Submonoid/Centralizer.lean + theorem Submonoid.closure_le_centralizer_centralizer Modified Mathlib/GroupTheory/Subsemigroup/Centralizer.lean + theorem Subsemigroup.closure_le_centralizer_centralizer Modified Mathlib/RingTheory/Adjoin/Basic.lean - def Algebra.adjoinCommRingOfComm - def Algebra.adjoinCommSemiringOfComm + theorem Algebra.adjoin_le_centralizer_centralizer Modified Mathlib/RingTheory/NonUnitalSubsemiring/Basic.lean + theorem NonUnitalSubsemiring.closure_le_centralizer_centralizer 2024-11-17 15:00:45 c0c8f97 feat: add `measure_diff_symm` (#19049) ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Measure/NullMeasurable.lean + theorem MeasureTheory.measure_diff_symm 2024-11-17 14:25:06 660c520 feat(KrullDimension): krullDim lemmas (#19111) Part of #15524. (There will be more interesting krullDim lemma once we add the full coheight api) From the Carleson project. ESTIMATED CHANGES Modified Mathlib/Order/KrullDimension.lean + theorem Order.coheight_bot_eq_krullDim + theorem Order.height_top_eq_krullDim + theorem Order.krullDim_eq_iSup_coheight + theorem Order.krullDim_eq_iSup_coheight_of_nonempty + theorem Order.krullDim_eq_iSup_height_of_nonempty 2024-11-17 11:30:53 69311c4 chore(NumberTheory/RamificationInertia): change the variables in `inertiaDeg_algebra_tower` to explicit variables (#19138) Change the variables in [Ideal.inertiaDeg_algebra_tower](https://leanprover-community.github.io/mathlib4_docs/Mathlib/NumberTheory/RamificationInertia.html#Ideal.inertiaDeg_algebra_tower) to explicit variables, since no variables can be inferred. ESTIMATED CHANGES Modified Mathlib/NumberTheory/RamificationInertia.lean +/- theorem Ideal.inertiaDeg_algebra_tower 2024-11-17 07:50:18 59e7594 chore(SetTheory/Cardinal/Cofinality): golf `lift_cof` (#18047) We also drop some redundant TC assumptions in `RelIso.cof_eq_lift` and `RelIso.cof_eq`. ESTIMATED CHANGES Modified Mathlib/SetTheory/Cardinal/Cofinality.lean +/- theorem Order.le_cof +/- theorem RelIso.cof_eq +/- theorem RelIso.cof_eq_lift +/- theorem RelIso.cof_le - theorem RelIso.cof_le_lift 2024-11-17 00:44:22 e3327a6 feat: a function with finite domain is bounded (#19134) This is particularly useful for anonymous dot notation From LeanAPAP ESTIMATED CHANGES Modified Mathlib/Order/LiminfLimsup.lean + theorem Filter.IsBoundedUnder.ge_of_finite + theorem Filter.IsBoundedUnder.le_of_finite 2024-11-17 00:16:13 fe4de19 chore(scripts): update nolints.json (#19137) I am happy to remove some nolints for you! ESTIMATED CHANGES Modified scripts/nolints.json 2024-11-16 22:27:17 08fa0e9 chore(Algebra/Category): remove erws (#19132) ESTIMATED CHANGES Modified Mathlib/Algebra/Category/Ring/Colimits.lean 2024-11-16 22:07:58 a0cd3d6 chore(Rat/Cardinal): reduce imports and create new file (#18584) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Data/Rat/Cardinal.lean + theorem Cardinal.mkRat Modified Mathlib/Data/Rat/Denumerable.lean - theorem Cardinal.mkRat Modified Mathlib/Data/Real/Cardinality.lean Modified Mathlib/FieldTheory/Cardinality.lean Modified Mathlib/ModelTheory/Order.lean 2024-11-16 20:53:18 2aeb155 feat(NumberTheory/ModularForms): q-expansions of modular forms (#18813) Show that modular forms of level `n` can be written as analytic functions of `q = exp (2 * pi * I * z / n)`. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Analysis/Complex/Periodic.lean + theorem Function.Periodic.abs_qParam + theorem Function.Periodic.abs_qParam_lt_iff + theorem Function.Periodic.boundedAtFilter_cuspFunction + def Function.Periodic.cuspFunction + theorem Function.Periodic.cuspFunction_eq_of_nonzero + theorem Function.Periodic.cuspFunction_zero_eq_limUnder_nhds_ne + theorem Function.Periodic.cuspFunction_zero_of_zero_at_inf + theorem Function.Periodic.differentiableAt_cuspFunction + theorem Function.Periodic.differentiableAt_cuspFunction_zero + theorem Function.Periodic.eq_cuspFunction + theorem Function.Periodic.eventually_differentiableAt_cuspFunction_nhds_ne_zero + theorem Function.Periodic.exp_decay_of_zero_at_inf + theorem Function.Periodic.im_invQParam + def Function.Periodic.invQParam + theorem Function.Periodic.invQParam_tendsto + def Function.Periodic.qParam + theorem Function.Periodic.qParam_left_inv_mod_period + theorem Function.Periodic.qParam_right_inv + theorem Function.Periodic.qParam_tendsto + theorem Function.Periodic.tendsto_at_I_inf - theorem abs_qParam - theorem abs_qParam_lt_iff - theorem boundedAtFilter_cuspFunction - def cuspFunction - theorem cuspFunction_eq_of_nonzero - theorem cuspFunction_zero_eq_limUnder_nhds_ne - theorem cuspFunction_zero_of_zero_at_inf - theorem differentiableAt_cuspFunction - theorem differentiableAt_cuspFunction_zero - theorem eq_cuspFunction - theorem eventually_differentiableAt_cuspFunction_nhds_ne_zero - theorem exp_decay_of_zero_at_inf - theorem im_invQParam - def invQParam - theorem invQParam_tendsto - def qParam - theorem qParam_left_inv_mod_period - theorem qParam_right_inv - theorem qParam_tendsto - theorem tendsto_at_I_inf Modified Mathlib/Analysis/Complex/UpperHalfPlane/Basic.lean + theorem UpperHalfPlane.coe_mk_subtype Modified Mathlib/Analysis/Complex/UpperHalfPlane/FunctionsBoundedAtInfty.lean + theorem UpperHalfPlane.tendsto_coe_atImInfty + theorem UpperHalfPlane.tendsto_comap_im_ofComplex Modified Mathlib/Analysis/Complex/UpperHalfPlane/Manifold.lean + theorem UpperHalfPlane.mdifferentiableAt_iff + theorem UpperHalfPlane.mdifferentiableAt_ofComplex + theorem UpperHalfPlane.mdifferentiable_iff + theorem UpperHalfPlane.smoothAt_ofComplex Modified Mathlib/Analysis/Complex/UpperHalfPlane/Topology.lean + theorem UpperHalfPlane.eventuallyEq_coe_comp_ofComplex + theorem UpperHalfPlane.ofComplex_apply_of_im_pos Added Mathlib/NumberTheory/ModularForms/QExpansion.lean + theorem CuspFormClass.cuspFunction_apply_zero + theorem CuspFormClass.exp_decay_atImInfty + theorem CuspFormClass.zero_at_infty_comp_ofComplex + theorem Function.Periodic.im_invQParam_pos_of_abs_lt_one + theorem ModularFormClass.analyticAt_cuspFunction_zero + theorem ModularFormClass.bounded_at_infty_comp_ofComplex + theorem ModularFormClass.differentiableAt_comp_ofComplex + theorem ModularFormClass.differentiableAt_cuspFunction + def SlashInvariantFormClass.cuspFunction + theorem SlashInvariantFormClass.eq_cuspFunction + theorem SlashInvariantFormClass.periodic_comp_ofComplex 2024-11-16 16:13:10 7b8edbb chore(Algebra.Order.Star.Basic): Protected `IsSelfAdjoint.mul_self_nonneg` and `IsSelfAdjoint.sq_nonneg` (#19128) Marking these lemmas as `protected`. ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Star/Basic.lean - theorem IsSelfAdjoint.mul_self_nonneg - theorem IsSelfAdjoint.sq_nonneg Modified Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Instances.lean + theorem IsSelfAdjoint.sq_spectrumRestricts 2024-11-16 15:42:22 b4ef117 chore: don't use `TopologicalGroup.toUniformSpace` in `tendstoUniformly_iff` (#19098) This changes `TopologicalGroup.tendstoUniformly_iff` so that it takes a `UniformSpace` instance instead of only a `TopologicalGroup` instance, along with a proof that the uniform space is the one induced by the topological group structure. The previous version would have been hard to use in case you had, for example, a normed commutative group, as the uniform space structure inferred would not match (defeq) the one given in this theorem, which was previously `TopologicalSpace.toUniformSpace`. ESTIMATED CHANGES Modified Mathlib/Topology/Algebra/UniformGroup/Basic.lean +/- theorem TopologicalGroup.tendstoLocallyUniformlyOn_iff +/- theorem TopologicalGroup.tendstoLocallyUniformly_iff +/- theorem TopologicalGroup.tendstoUniformlyOn_iff +/- theorem TopologicalGroup.tendstoUniformly_iff 2024-11-16 15:30:36 f974247 feat(KrullDimension): height_eq_coe_iff_minimal_le_height (#19110) The elements of finite height `n` are the minimial elements among those of height `≥ n`. From the Carleson project ESTIMATED CHANGES Modified Mathlib/Order/KrullDimension.lean + theorem Order.height_eq_coe_iff_minimal_le_height 2024-11-16 09:33:49 6270f34 feat(Topology/PartitionOfUnity): add variations of partition of unity for locally compact T2 space (#12266) add variations of `PartitionOfUnity` and Urysohn's lemma: - In a locally compact T2 space `X`, for a compact set `t` and a finite family of open sets `{s i}` such that `t ⊆ ⋃ i, s i`, there is a family of continuous function `{f i}` supported in `s i`, `∑ i, f i x = 1` on `t` and `0 ≤ f x ≤ 1`. - In a locally compact regular space `X`, for a compact set `t` and a closed set `s` that are disjoint, there is a continuous function `f` with compact support which is `1` on `t` and `0` on `s` and `f x Icc (0 : ℝ) 1 ` for all `x`. The former is formalized as a partition of unity. For this purpose, I extended `PartialRefiment` to include a predicate `p` about the refined set. With this, we can require that the refined open set has a compact closure. This can be applied when `X` is locally compact and T2. These variations are needed in order to prove that [rieszContentAux](https://leanprover-community.github.io/mathlib4_docs/Mathlib/MeasureTheory/Integral/RieszMarkovKakutani.html#rieszContentAux) is indeed a Borel measure (following Rudin "Real and complex analysis"), now in #18775. ESTIMATED CHANGES Modified Mathlib/Topology/PartitionOfUnity.lean + theorem BumpCovering.exists_isSubordinate_hasCompactSupport_of_locallyFinite_t2space + theorem BumpCovering.exists_isSubordinate_of_locallyFinite_of_prop_t2space + theorem BumpCovering.toFun_eq_coe + theorem PartitionOfUnity.exists_isSubordinate_of_locallyFinite_t2space + theorem exists_continuous_sum_one_of_isOpen_isCompact Modified Mathlib/Topology/ShrinkingLemma.lean + theorem exists_gt_t2space + theorem exists_subset_iUnion_closure_subset_t2space + theorem exists_subset_iUnion_compact_subset_t2space Modified Mathlib/Topology/UrysohnsLemma.lean + theorem exists_continuous_zero_one_of_isCompact' 2024-11-16 09:10:12 bc78273 feat: `Complex.Rectangle` (#19052) This is another PR breaking #9598 into smaller pieces. We prove a variety of theorems about `reProdIm`, in particular defining a complex `Rectangle` and horizontal and vertical segments. ESTIMATED CHANGES Modified Mathlib/Data/Complex/Basic.lean + def Complex.Rectangle + theorem Complex.horizontalSegment_eq + theorem Complex.preimage_equivRealProd_prod + theorem Complex.reProdIm_subset_iff' + theorem Complex.reProdIm_subset_iff + theorem Complex.verticalSegment_eq 2024-11-16 08:30:46 2c6b8bb feat: tensor product of two flat modules is flat (#18745) Add the missing `Flat R (M ⊗[R] N)` instance. Add two lemmas relating flatness to injectivity of `mapIncl`. Clean up the file Flat/Stability, renaming `Flat.comp` to `Flat.trans`. Also rename `Algebra.Flat.comp` and `FaithfullyFlat.comp`. ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/TensorProduct/Basic.lean + theorem LinearMap.rTensor_tensor Modified Mathlib/LinearAlgebra/TensorProduct/Tower.lean + theorem TensorProduct.AlgebraTensorModule.rTensor_tensor Modified Mathlib/RingTheory/Flat/Algebra.lean - theorem Algebra.Flat.comp + theorem Algebra.Flat.trans Modified Mathlib/RingTheory/Flat/Basic.lean + theorem Module.Flat.tensorProduct_mapIncl_injective_of_left + theorem Module.Flat.tensorProduct_mapIncl_injective_of_right Modified Mathlib/RingTheory/Flat/FaithfullyFlat.lean - theorem Module.FaithfullyFlat.comp + theorem Module.FaithfullyFlat.trans Modified Mathlib/RingTheory/Flat/Stability.lean - theorem Module.Flat.comp +/- theorem Module.Flat.isBaseChange +/- theorem Module.Flat.of_isLocalizedModule + theorem Module.Flat.trans 2024-11-16 08:30:44 9a9cb18 chore(Data/Set): split Finite.lean into `Defs`, `Basic`, `Lemmas` (#18619) `Data.Set.Finite` had a lot of imports and in turn was imported often. So let's split it up along import lines: * `Data/Finite/Defs.lean` now contains the definition of `Set.Finite` * `Data/Set/Finite/Basic.lean` knows only `Set.Finite` and `Finset` * `Data/Finite/Prod.lean` now contains finiteness results of products of sets * `Data/Fintype/Pi.lean` now contains finiteness results of sets of functions * `Data/Set/Finite/Lattice.lean` contains finiteness results of lattice operations on sets * `Data/Set/Finite/List.lean` contains finiteness results on lists converted to sets * `Data/Set/Finite/Monad.lean` also knows about the monad structure on `Set` * `Data/Set/Finite/Powerset.lean` contains finiteness results on powersets * `Data/Set/Finite/Range.lean` contains finiteness results on `Set.range` * `Data/Set/Finite/Lemmas.lean` is for lemmas *about* `Set.Finite` (and therefore does not contain any `Finite` instances itself). ESTIMATED CHANGES Modified Archive/Imo/Imo1969Q1.lean Modified Archive/Imo/Imo2008Q2.lean Modified Archive/Wiedijk100Theorems/CubingACube.lean Modified Mathlib.lean Modified Mathlib/Algebra/BigOperators/Finprod.lean Modified Mathlib/Algebra/BigOperators/Group/Finset.lean Modified Mathlib/Algebra/BigOperators/Ring.lean Modified Mathlib/Algebra/Group/ConjFinite.lean Modified Mathlib/Algebra/Group/FiniteSupport.lean Modified Mathlib/Algebra/Group/Int.lean Modified Mathlib/Algebra/Group/Pointwise/Finset/Basic.lean Modified Mathlib/Algebra/Module/Submodule/Range.lean Modified Mathlib/Algebra/Order/Rearrangement.lean Modified Mathlib/Algebra/Polynomial/Roots.lean Modified Mathlib/Algebra/Ring/Subsemiring/Basic.lean Modified Mathlib/Algebra/Star/Pointwise.lean Modified Mathlib/AlgebraicTopology/SplitSimplicialObject.lean Modified Mathlib/Analysis/Normed/Module/Dual.lean Modified Mathlib/CategoryTheory/Types.lean Modified Mathlib/Combinatorics/HalesJewett.lean Modified Mathlib/Combinatorics/Hall/Finite.lean Modified Mathlib/Combinatorics/SetFamily/Shatter.lean Modified Mathlib/Combinatorics/SimpleGraph/Basic.lean Modified Mathlib/Combinatorics/SimpleGraph/Clique.lean Modified Mathlib/Combinatorics/SimpleGraph/Dart.lean Modified Mathlib/Combinatorics/SimpleGraph/Finite.lean Modified Mathlib/Combinatorics/SimpleGraph/Maps.lean Modified Mathlib/Combinatorics/SimpleGraph/Matching.lean Modified Mathlib/Combinatorics/SimpleGraph/StronglyRegular.lean Modified Mathlib/Data/DFinsupp/Defs.lean Modified Mathlib/Data/Finite/Defs.lean + theorem Equiv.set_finite_iff + theorem Set.finite_coe_iff + theorem Set.infinite_coe_iff + theorem Set.not_infinite + theorem Set.toFinite Modified Mathlib/Data/Finite/Prod.lean + theorem Set.Finite.of_prod_left + theorem Set.Finite.of_prod_right + theorem Set.Finite.toFinset_offDiag + theorem Set.Finite.toFinset_prod + theorem Set.finite_image2 + theorem Set.finite_image_fst_and_snd_iff + theorem Set.finite_prod + theorem Set.infinite_image2 Modified Mathlib/Data/Finset/Grade.lean Modified Mathlib/Data/Finset/Interval.lean Modified Mathlib/Data/Finset/NAry.lean Modified Mathlib/Data/Finset/Preimage.lean Modified Mathlib/Data/Finset/Slice.lean Modified Mathlib/Data/Finsupp/Defs.lean Modified Mathlib/Data/Fintype/CardEmbedding.lean Modified Mathlib/Data/Fintype/Fin.lean Modified Mathlib/Data/Fintype/Order.lean Modified Mathlib/Data/Fintype/Pi.lean + theorem Set.Finite.pi' + theorem Set.Finite.pi + theorem Set.forall_finite_image_eval_iff Modified Mathlib/Data/MLList/BestFirst.lean Modified Mathlib/Data/Matrix/Basic.lean Modified Mathlib/Data/Matroid/Basic.lean Modified Mathlib/Data/Nat/PrimeFin.lean Modified Mathlib/Data/Set/Countable.lean Renamed Mathlib/Data/Set/Finite.lean to Mathlib/Data/Set/Finite/Basic.lean - theorem DirectedOn.exists_mem_subset_of_finset_subset_biUnion - theorem Equiv.set_finite_iff - theorem Finite.Set.finite_biUnion - theorem List.finite_length_eq - theorem List.finite_length_le - theorem List.finite_length_lt - theorem Set.Finite.bddAbove_biUnion - theorem Set.Finite.bddBelow_biUnion - theorem Set.Finite.biUnion' - theorem Set.Finite.biUnion - theorem Set.Finite.bind - theorem Set.Finite.dependent_image - theorem Set.Finite.fin_embedding - theorem Set.Finite.fin_param - theorem Set.Finite.finite_subsets - theorem Set.Finite.iInf_biSup_of_antitone - theorem Set.Finite.iInf_biSup_of_monotone - theorem Set.Finite.iSup_biInf_of_antitone - theorem Set.Finite.iSup_biInf_of_monotone - theorem Set.Finite.iUnion - theorem Set.Finite.induction_to - theorem Set.Finite.induction_to_univ - theorem Set.Finite.of_prod_left - theorem Set.Finite.of_prod_right - theorem Set.Finite.pi' - theorem Set.Finite.pi - theorem Set.Finite.preimage' - theorem Set.Finite.sInter - theorem Set.Finite.sUnion - theorem Set.Finite.seq' - theorem Set.Finite.seq - theorem Set.Finite.toFinset_offDiag - theorem Set.Finite.toFinset_prod - theorem Set.Infinite.biUnion - theorem Set.Infinite.sUnion - theorem Set.eq_finite_iUnion_of_finite_subset_iUnion - theorem Set.exists_lower_bound_image - theorem Set.exists_max_image - theorem Set.exists_min_image - theorem Set.exists_upper_bound_image - theorem Set.finite_coe_iff - theorem Set.finite_diff_iUnion_Ioo' - theorem Set.finite_diff_iUnion_Ioo - theorem Set.finite_iUnion - theorem Set.finite_image2 - theorem Set.finite_image_fst_and_snd_iff - theorem Set.finite_prod - theorem Set.finite_pure - theorem Set.finite_range - theorem Set.finite_subset_iUnion - def Set.fintypeBind - theorem Set.forall_finite_image_eval_iff - theorem Set.iInf_iSup_of_antitone - theorem Set.iInf_iSup_of_monotone - theorem Set.iInter_iUnion_of_antitone - theorem Set.iInter_iUnion_of_monotone - theorem Set.iSup_iInf_of_antitone - theorem Set.iSup_iInf_of_monotone - theorem Set.iUnion_iInter_of_antitone - theorem Set.iUnion_iInter_of_monotone - theorem Set.iUnion_pi_of_monotone - theorem Set.iUnion_univ_pi_of_monotone - theorem Set.infinite_coe_iff - theorem Set.infinite_iUnion - theorem Set.infinite_image2 - theorem Set.infinite_of_not_bddAbove - theorem Set.infinite_of_not_bddBelow - theorem Set.map_finite_biInf - theorem Set.map_finite_biSup - theorem Set.map_finite_iInf - theorem Set.map_finite_iSup - theorem Set.not_infinite - theorem Set.toFinite - theorem Set.toFinset_iUnion - theorem Set.union_finset_finite_of_range_finite Added Mathlib/Data/Set/Finite/Lattice.lean + theorem DirectedOn.exists_mem_subset_of_finset_subset_biUnion + theorem Finite.Set.finite_biUnion + theorem Set.Finite.bddAbove_biUnion + theorem Set.Finite.bddBelow_biUnion + theorem Set.Finite.biUnion' + theorem Set.Finite.biUnion + theorem Set.Finite.iInf_biSup_of_antitone + theorem Set.Finite.iInf_biSup_of_monotone + theorem Set.Finite.iSup_biInf_of_antitone + theorem Set.Finite.iSup_biInf_of_monotone + theorem Set.Finite.iUnion + theorem Set.Finite.preimage' + theorem Set.Finite.sInter + theorem Set.Finite.sUnion + theorem Set.Infinite.biUnion + theorem Set.Infinite.sUnion + theorem Set.eq_finite_iUnion_of_finite_subset_iUnion + theorem Set.finite_diff_iUnion_Ioo' + theorem Set.finite_diff_iUnion_Ioo + theorem Set.finite_iUnion + theorem Set.finite_subset_iUnion + theorem Set.iInf_iSup_of_antitone + theorem Set.iInf_iSup_of_monotone + theorem Set.iInter_iUnion_of_antitone + theorem Set.iInter_iUnion_of_monotone + theorem Set.iSup_iInf_of_antitone + theorem Set.iSup_iInf_of_monotone + theorem Set.iUnion_iInter_of_antitone + theorem Set.iUnion_iInter_of_monotone + theorem Set.iUnion_pi_of_monotone + theorem Set.iUnion_univ_pi_of_monotone + theorem Set.infinite_iUnion + theorem Set.infinite_of_not_bddAbove + theorem Set.infinite_of_not_bddBelow + theorem Set.map_finite_biInf + theorem Set.map_finite_biSup + theorem Set.map_finite_iInf + theorem Set.map_finite_iSup + theorem Set.toFinset_iUnion + theorem Set.union_finset_finite_of_range_finite Added Mathlib/Data/Set/Finite/Lemmas.lean + theorem Set.Finite.fin_embedding + theorem Set.Finite.fin_param + theorem Set.Finite.induction_to + theorem Set.Finite.induction_to_univ + theorem Set.exists_lower_bound_image + theorem Set.exists_max_image + theorem Set.exists_min_image + theorem Set.exists_upper_bound_image Added Mathlib/Data/Set/Finite/List.lean + theorem List.finite_length_eq + theorem List.finite_length_le + theorem List.finite_length_lt Added Mathlib/Data/Set/Finite/Monad.lean + theorem Finite.Set.finite_pure + theorem Set.Finite.bind + theorem Set.Finite.seq' + theorem Set.Finite.seq + def Set.fintypeBind Added Mathlib/Data/Set/Finite/Powerset.lean + theorem Set.Finite.finite_subsets Added Mathlib/Data/Set/Finite/Range.lean + theorem Set.Finite.dependent_image + theorem Set.finite_range Modified Mathlib/Data/Set/MemPartition.lean Modified Mathlib/Data/Set/Pointwise/Finite.lean Modified Mathlib/Data/Setoid/Partition.lean Modified Mathlib/GroupTheory/GroupAction/Basic.lean Modified Mathlib/GroupTheory/GroupAction/Quotient.lean Modified Mathlib/GroupTheory/Perm/ClosureSwap.lean Modified Mathlib/GroupTheory/Perm/Sign.lean Modified Mathlib/GroupTheory/QuotientGroup/Finite.lean Modified Mathlib/LinearAlgebra/Multilinear/Basic.lean Modified Mathlib/MeasureTheory/SetAlgebra.lean Modified Mathlib/ModelTheory/FinitelyGenerated.lean Modified Mathlib/Order/Atoms/Finite.lean Modified Mathlib/Order/Category/NonemptyFinLinOrd.lean Modified Mathlib/Order/CompleteSublattice.lean Modified Mathlib/Order/ConditionallyCompleteLattice/Finset.lean Modified Mathlib/Order/Filter/AtTopBot.lean Modified Mathlib/Order/Filter/Basic.lean Modified Mathlib/Order/Filter/Cofinite.lean Modified Mathlib/Order/Interval/Set/Infinite.lean Modified Mathlib/Order/KonigLemma.lean Modified Mathlib/Order/PartialSups.lean Modified Mathlib/Order/Partition/Equipartition.lean Modified Mathlib/Order/Partition/Finpartition.lean Modified Mathlib/Order/SuccPred/LinearLocallyFinite.lean Modified Mathlib/Order/SupClosed.lean Modified Mathlib/Order/UpperLower/LocallyFinite.lean Modified Mathlib/RingTheory/Finiteness/Defs.lean Modified Mathlib/RingTheory/Localization/Defs.lean Modified Mathlib/RingTheory/MvPolynomial/Basic.lean Modified Mathlib/RingTheory/NonUnitalSubsemiring/Basic.lean Modified Mathlib/RingTheory/Polynomial/Dickson.lean Modified Mathlib/SetTheory/Cardinal/Basic.lean 2024-11-16 08:30:43 0b09ad8 feat(Topology/ContinuousMap/Interval): define the concatenation operation on continuous maps on intervals as a continuous map (#17621) The main definition is a continuous map `transCM` on pairs of compatible continuous maps from the intervals `Icc a b` and `Icc b c` to form a continuous map on `Icc a c`. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Topology/ContinuousMap/Basic.lean + def ContinuousMap.inclusion Added Mathlib/Topology/ContinuousMap/Interval.lean + def ContinuousMap.IccExtendCM + theorem ContinuousMap.IccExtendCM_of_mem + def ContinuousMap.IccInclusionLeft + def ContinuousMap.IccInclusionRight + theorem ContinuousMap.concatCM_left + theorem ContinuousMap.concatCM_right + theorem ContinuousMap.concat_comp_IccInclusionLeft + theorem ContinuousMap.concat_comp_IccInclusionRight + theorem ContinuousMap.concat_left + theorem ContinuousMap.concat_right + def ContinuousMap.projIccCM + theorem ContinuousMap.tendsto_concat 2024-11-16 08:23:24 f136306 feat(Archive/Imo): IMO 2024 Q5 (#18685) Formalize IMO 2024 problem 5. Note that this solution is longer than any of the existing IMO formalizations in either the mathlib archive or compfiles; feel free to golf, where doing so isn't adverse to the role of such formalizations as readable examples. Various definitions using proofs (that certain paths used in an optimal strategy are valid paths) by essentially `split_ifs <;> simp <;> omega` are (subjectively, not counted heartbeats) slow for Lean to process; in those cases, I think the tactics used are a better approach as an example than a faster but lower-level and probably longer proof would be, so rather than making those proofs longer to speed them up it might be better to treat them as examples that might show opportunities for speeding up those tactics. ESTIMATED CHANGES Modified Archive.lean Added Archive/Imo/Imo2024Q5.lean + theorem Imo2024Q5.Adjacent.le_of_lt + def Imo2024Q5.Adjacent + def Imo2024Q5.Cell.reflect + theorem Imo2024Q5.MonsterData.le_N_of_mem_monsterCells + theorem Imo2024Q5.MonsterData.mem_monsterCells_iff_of_le + theorem Imo2024Q5.MonsterData.mk_mem_monsterCells_iff + theorem Imo2024Q5.MonsterData.mk_mem_monsterCells_iff_of_le + def Imo2024Q5.MonsterData.monsterCells + theorem Imo2024Q5.MonsterData.not_mem_monsterCells_of_fst_eq_zero + def Imo2024Q5.MonsterData.reflect + theorem Imo2024Q5.MonsterData.reflect_reflect + theorem Imo2024Q5.Path.exists_mem_fst_eq + theorem Imo2024Q5.Path.exists_mem_le_fst + def Imo2024Q5.Path.findFstEq + theorem Imo2024Q5.Path.findFstEq_eq_find?_le + theorem Imo2024Q5.Path.findFstEq_fst + theorem Imo2024Q5.Path.findFstEq_fst_sub_one_mem + theorem Imo2024Q5.Path.findFstEq_mem_cells + theorem Imo2024Q5.Path.find_eq_some_findFstEq + theorem Imo2024Q5.Path.firstMonster_eq_none + theorem Imo2024Q5.Path.firstMonster_eq_of_findFstEq_mem + theorem Imo2024Q5.Path.firstMonster_isSome + theorem Imo2024Q5.Path.firstMonster_reflect + theorem Imo2024Q5.Path.mem_of_firstMonster_eq_some + def Imo2024Q5.Path.ofFn + theorem Imo2024Q5.Path.ofFn_cells + theorem Imo2024Q5.Path.ofFn_firstMonster_eq_none + theorem Imo2024Q5.Path.one_lt_length_cells + def Imo2024Q5.Path.reflect + def Imo2024Q5.Path.tail + theorem Imo2024Q5.Path.tail_findFstEq + theorem Imo2024Q5.Path.tail_firstMonster + theorem Imo2024Q5.Path.tail_induction + structure Imo2024Q5.Path + theorem Imo2024Q5.Strategy.ForcesWinIn.mono + theorem Imo2024Q5.Strategy.ForcesWinIn.three_le + def Imo2024Q5.Strategy.ForcesWinIn + theorem Imo2024Q5.Strategy.WinsIn.mono + def Imo2024Q5.Strategy.WinsIn + theorem Imo2024Q5.Strategy.not_forcesWinIn_two + theorem Imo2024Q5.Strategy.play_apply_of_le + theorem Imo2024Q5.Strategy.play_comp_castLE + theorem Imo2024Q5.Strategy.play_one + theorem Imo2024Q5.Strategy.play_two + theorem Imo2024Q5.Strategy.play_zero + def Imo2024Q5.answer + def Imo2024Q5.baseMonsterData + theorem Imo2024Q5.coe_coe_row1 + theorem Imo2024Q5.find?_eq_eq_find?_le + def Imo2024Q5.fn0 + def Imo2024Q5.fn1OfEdge0 + def Imo2024Q5.fn1OfNotEdge + def Imo2024Q5.fn2OfEdge0 + theorem Imo2024Q5.fn2OfEdge0_apply_eq_fn1OfEdge0_apply_of_lt + def Imo2024Q5.fn2OfNotEdge + theorem Imo2024Q5.injective_fn0 + def Imo2024Q5.monsterData12 + theorem Imo2024Q5.monsterData12_apply_row2 + def Imo2024Q5.path0 + theorem Imo2024Q5.path0_firstMonster_eq_apply_row1 + def Imo2024Q5.path1 + def Imo2024Q5.path1OfEdge0 + def Imo2024Q5.path1OfEdgeN + def Imo2024Q5.path1OfNotEdge + theorem Imo2024Q5.path1_firstMonster_of_not_edge + def Imo2024Q5.path2 + def Imo2024Q5.path2OfEdge0 + def Imo2024Q5.path2OfEdge0Def + theorem Imo2024Q5.path2OfEdge0_firstMonster_eq_none_of_path1OfEdge0_firstMonster_eq_some + def Imo2024Q5.path2OfEdgeNDef + def Imo2024Q5.path2OfNotEdge + theorem Imo2024Q5.path2_firstMonster_of_not_edge + theorem Imo2024Q5.result + def Imo2024Q5.row1 + theorem Imo2024Q5.row1_mem_monsterCells_monsterData12 + def Imo2024Q5.row2 + theorem Imo2024Q5.row2_mem_monsterCells_monsterData12 + def Imo2024Q5.winningStrategy + theorem Imo2024Q5.winningStrategy_forcesWinIn_three + theorem Imo2024Q5.winningStrategy_play_one + theorem Imo2024Q5.winningStrategy_play_one_eq_none_or_play_two_eq_none + theorem Imo2024Q5.winningStrategy_play_one_eq_none_or_play_two_eq_none_of_edge_N + theorem Imo2024Q5.winningStrategy_play_one_eq_none_or_play_two_eq_none_of_edge_zero + theorem Imo2024Q5.winningStrategy_play_one_eq_none_or_play_two_eq_none_of_not_edge + theorem Imo2024Q5.winningStrategy_play_one_of_edge_N + theorem Imo2024Q5.winningStrategy_play_two + theorem Imo2024Q5.winningStrategy_play_two_of_edge_N 2024-11-16 08:05:13 8db27b2 chore(MeasureTheory): rename `AbsolutelyContinuous.smul*` (#19044) I forgot to push it to #18953 before marking it ready for review. Rename `smul` to `smul_left` and `smul_both` to `smul`. This way it matches, e.g., `add*` lemmas. ESTIMATED CHANGES Modified Mathlib/Analysis/Convex/Integral.lean Modified Mathlib/MeasureTheory/Covering/Differentiation.lean Modified Mathlib/MeasureTheory/Measure/Haar/Unique.lean Modified Mathlib/MeasureTheory/Measure/MeasureSpace.lean +/- theorem MeasureTheory.Measure.smul_absolutelyContinuous Modified Mathlib/MeasureTheory/Measure/MutuallySingular.lean 2024-11-16 06:58:45 aa5b6a4 feat(AlgebraicGeometry): define affine `n`-space (#18837) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/AlgebraicGeometry/AffineScheme.lean + theorem AlgebraicGeometry.ext_of_isAffine Added Mathlib/AlgebraicGeometry/AffineSpace.lean + def AlgebraicGeometry.AffineSpace.SpecIso + theorem AlgebraicGeometry.AffineSpace.SpecIso_hom_app_top + theorem AlgebraicGeometry.AffineSpace.SpecIso_inv_app_top_coord + theorem AlgebraicGeometry.AffineSpace.SpecIso_inv_over + theorem AlgebraicGeometry.AffineSpace.comp_homOfVector + def AlgebraicGeometry.AffineSpace.coord + def AlgebraicGeometry.AffineSpace.functor + def AlgebraicGeometry.AffineSpace.homOfVector + theorem AlgebraicGeometry.AffineSpace.homOfVector_app_top_coord + theorem AlgebraicGeometry.AffineSpace.homOfVector_over + theorem AlgebraicGeometry.AffineSpace.homOfVector_toSpecMvPoly + def AlgebraicGeometry.AffineSpace.homOverEquiv + theorem AlgebraicGeometry.AffineSpace.hom_ext + def AlgebraicGeometry.AffineSpace.isoOfIsAffine + theorem AlgebraicGeometry.AffineSpace.isoOfIsAffine_hom_app_top + theorem AlgebraicGeometry.AffineSpace.isoOfIsAffine_inv_app_top_coord + theorem AlgebraicGeometry.AffineSpace.isoOfIsAffine_inv_over + def AlgebraicGeometry.AffineSpace.map + def AlgebraicGeometry.AffineSpace.mapSpecMap + theorem AlgebraicGeometry.AffineSpace.map_Spec_map + theorem AlgebraicGeometry.AffineSpace.map_app_top_coord + theorem AlgebraicGeometry.AffineSpace.map_comp + theorem AlgebraicGeometry.AffineSpace.map_id + theorem AlgebraicGeometry.AffineSpace.map_over + theorem AlgebraicGeometry.AffineSpace.map_reindex + theorem AlgebraicGeometry.AffineSpace.of_mvPolynomial_int_ext + def AlgebraicGeometry.AffineSpace.reindex + theorem AlgebraicGeometry.AffineSpace.reindex_app_top_coord + theorem AlgebraicGeometry.AffineSpace.reindex_comp + theorem AlgebraicGeometry.AffineSpace.reindex_id + theorem AlgebraicGeometry.AffineSpace.reindex_over + def AlgebraicGeometry.AffineSpace.toSpecMvPoly + def AlgebraicGeometry.AffineSpace.toSpecMvPolyIntEquiv + theorem AlgebraicGeometry.AffineSpace.toSpecMvPolyIntEquiv_comp + def AlgebraicGeometry.AffineSpace 2024-11-16 02:46:43 4621579 feat: `continuousAt_iff_isLittleO` (#19051) This is another PR breaking #9598 into smaller pieces. We prove the theorem `continuousAt_iff_isLittleO`, that a function `f` is continuous at a point `x` iff `f y - f x` is little-o of `1`. ESTIMATED CHANGES Modified Mathlib/Analysis/Asymptotics/Asymptotics.lean + theorem Asymptotics.continuousAt_iff_isLittleO 2024-11-16 00:52:44 118a685 feat(FieldTheory/SeparableDegree): `Field.Emb` is infinite for transcendental extension (#18770) - `Field.infinite_emb_of_transcendental`, `Field.finSepDegree_eq_zero_of_transcendental`: `Field.Emb` is infinite and `Field.finSepDegree` is zero for transcendental extensions - remove algebraic assumptions in `isPurelyInseparable_(of|iff)_finSepDegree_eq_one` - prove `IsPurelyInseparable.of_injective_comp_algebraMap` - change `Field.Emb` from `def` to `abbrev` ESTIMATED CHANGES Modified Mathlib/FieldTheory/PurelyInseparable.lean + theorem IsPurelyInseparable.of_injective_comp_algebraMap +/- theorem isPurelyInseparable_iff_finSepDegree_eq_one +/- theorem isPurelyInseparable_of_finSepDegree_eq_one Modified Mathlib/FieldTheory/SeparableDegree.lean - def Field.Emb + theorem Field.finSepDegree_eq_zero_of_transcendental 2024-11-16 00:24:40 b6d78d3 chore: remove unused variables (#19101) #17715 ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Pointwise/Set/Basic.lean Modified Mathlib/Algebra/Group/Subsemigroup/Basic.lean Modified Mathlib/Algebra/Module/Equiv/Basic.lean Modified Mathlib/Algebra/Module/LinearMap/End.lean Modified Mathlib/Algebra/Module/Opposite.lean Modified Mathlib/Algebra/Order/Ring/Basic.lean Modified Mathlib/Algebra/Star/StarRingHom.lean Modified Mathlib/Analysis/Analytic/Within.lean Modified Mathlib/Analysis/Calculus/ContDiff/FTaylorSeries.lean Modified Mathlib/Analysis/Calculus/FDeriv/Comp.lean Modified Mathlib/Analysis/Calculus/FDeriv/Equiv.lean Modified Mathlib/Analysis/Calculus/FormalMultilinearSeries.lean Modified Mathlib/Analysis/NormedSpace/Multilinear/Curry.lean Modified Mathlib/Data/Finset/Insert.lean Modified Mathlib/Data/Finset/Lattice/Basic.lean Modified Mathlib/Data/Matroid/Closure.lean Modified Mathlib/Data/Multiset/Basic.lean Modified Mathlib/Data/Set/Functor.lean Modified Mathlib/Data/Set/Sigma.lean Modified Mathlib/Deprecated/Submonoid.lean Modified Mathlib/ModelTheory/DirectLimit.lean Modified Mathlib/NumberTheory/ModularForms/SlashActions.lean Modified Mathlib/Order/ConditionallyCompleteLattice/Basic.lean Modified Mathlib/Order/ConditionallyCompleteLattice/Indexed.lean Modified Mathlib/Order/Interval/Finset/Box.lean Modified Mathlib/Order/Interval/Set/UnorderedInterval.lean Modified Mathlib/RingTheory/Derivation/Lie.lean Modified Mathlib/Topology/Separation/GDelta.lean 2024-11-15 23:56:05 22b5743 feat(Algebra.Order.Star.Basic): add `aesop` lemma `IsSelfAdjoint.mul_self_nonneg`. (#19033) Includes the simple fact that in a `StarOrderedRing`, selfadjoint elements have nonnegative squares. ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Star/Basic.lean + theorem IsSelfAdjoint.mul_self_nonneg + theorem IsSelfAdjoint.sq_nonneg Modified Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Instances.lean - theorem IsSelfAdjoint.sq_spectrumRestricts 2024-11-15 23:03:09 39806f7 fix(CI): allow trailing spaces in `maintainer merge/delegate` (#19113) Before #18867, `maintainer merge` and `maintainer delegate` checked that a comment had a line beginning with `maintainer merge` or `maintainer delegate` to start the action. #18867 made it (essentially) stricter, only allowing `^maintainer *merge$` or `maintainer *delegate$`. This PR allows trailing spaces, but not arbitrary text following `maintainer xxx`. ESTIMATED CHANGES Modified .github/workflows/maintainer_merge.yml 2024-11-15 22:50:29 42c2007 chore: do not use numeric projections for isLittleO (#19114) This means the projection can be swapped for a regular function later without breaking these proofs. ESTIMATED CHANGES Modified Mathlib/Analysis/Calculus/FDeriv/RestrictScalars.lean 2024-11-15 22:23:40 0b85450 refactor(Algebra/Polynomial/Basic): define nsmul/zsmul for Polynomial (#19095) The goal of this PR is to make the ring instances on `Polynomial` independent of the module structure. This is currently somewhat useless and will only be useful in an upcoming PR that splits this entire file `Polynomial/Basic.lean`. But since adding definitions while splitting files is very annoying to review, let's do it in multiple steps. ESTIMATED CHANGES Modified Mathlib/Algebra/Polynomial/Basic.lean + theorem Polynomial.ofFinsupp_nsmul + theorem Polynomial.ofFinsupp_zsmul + theorem Polynomial.toFinsupp_nsmul + theorem Polynomial.toFinsupp_zsmul 2024-11-15 22:12:05 4fce04c feat(CategoryTheory): Pi.eval is final (#19102) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Filtered/Basic.lean Modified Mathlib/CategoryTheory/Filtered/Final.lean 2024-11-15 20:51:19 290eb3b refactor: make `HasStrictFDerivAt` a structure (#19104) This lets us hide the implementation details, and replace them with `IsLittleOTVS` later. We already did something similar in #8907. ESTIMATED CHANGES Modified Mathlib/Analysis/Calculus/Deriv/Inv.lean Modified Mathlib/Analysis/Calculus/FDeriv/Add.lean Modified Mathlib/Analysis/Calculus/FDeriv/Analytic.lean Modified Mathlib/Analysis/Calculus/FDeriv/Basic.lean + structure HasStrictFDerivAt - def HasStrictFDerivAt Modified Mathlib/Analysis/Calculus/FDeriv/Bilinear.lean Modified Mathlib/Analysis/Calculus/FDeriv/Comp.lean Modified Mathlib/Analysis/Calculus/FDeriv/Equiv.lean Modified Mathlib/Analysis/Calculus/FDeriv/Linear.lean Modified Mathlib/Analysis/Calculus/FDeriv/Prod.lean Modified Mathlib/Analysis/Calculus/FDeriv/RestrictScalars.lean Modified Mathlib/Analysis/Calculus/FDeriv/WithLp.lean Modified Mathlib/Analysis/Calculus/InverseFunctionTheorem/FDeriv.lean Modified Mathlib/Analysis/Calculus/MeanValue.lean Modified Mathlib/MeasureTheory/Integral/FundThmCalculus.lean 2024-11-15 20:09:57 4cfdb02 feat(Analysis/InnerProductSpace/Dual, Analysis/Normed/Group/SeparationQuotient): add null subspaces (#16707) Define the null submodule in an `InnerProductSpace` and the null subgroup in a `NormedAddCommGroup` and prove basic properties. ~~Define the null space in an `InnerProductSpace` without `definite` and add `InnerProduceSpace` structure to the quotient by the null space.~~ Motivation: This PR has evolved from a PR defining the `SeparationQuotient` for `InnerProductSpace`. That has been done in #17452 and now contains some other things. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Analysis/InnerProductSpace/Basic.lean + theorem inner_eq_zero_of_left + theorem inner_eq_zero_of_right Modified Mathlib/Analysis/InnerProductSpace/Dual.lean + theorem InnerProductSpace.nullSubmodule_le_ker_toDualMap_left + theorem InnerProductSpace.nullSubmodule_le_ker_toDualMap_right Modified Mathlib/Analysis/Normed/Group/Basic.lean + theorem nnnorm_div_eq_nnnorm_left + theorem nnnorm_div_eq_nnnorm_right + theorem nnnorm_le_mul_nnnorm_add' + theorem nnnorm_mul_eq_nnnorm_left + theorem nnnorm_mul_eq_nnnorm_right + theorem norm_div_eq_norm_left + theorem norm_div_eq_norm_right + theorem norm_le_mul_norm_add' + theorem norm_mul_eq_norm_left + theorem norm_mul_eq_norm_right Added Mathlib/Analysis/Normed/Group/NullSubmodule.lean + theorem isClosed_nullSubgroup + theorem isClosed_nullSubmodule + theorem mem_nullSubgroup_iff + theorem mem_nullSubmodule_iff + def nullSubgroup + def nullSubmodule Modified Mathlib/Analysis/Normed/Group/Uniform.lean + theorem SeparationQuotient.mk_eq_one_iff 2024-11-15 19:36:46 ce8400c chore(Algebra/Category): remove a few erws (#19100) ESTIMATED CHANGES Modified Mathlib/Algebra/Category/AlgebraCat/Limits.lean Modified Mathlib/Algebra/Category/ModuleCat/Limits.lean Modified Mathlib/Algebra/Category/MonCat/Limits.lean Modified Mathlib/Algebra/Category/Ring/Limits.lean Modified Mathlib/Logic/Small/Group.lean + theorem equivShrink_smul + theorem equivShrink_symm_smul 2024-11-15 19:15:33 12a4321 doc(IncidenceAlgebra): reference the correct Jacobson book (#19027) I accidentally referenced the second book instead of the first. ESTIMATED CHANGES Modified Mathlib/Combinatorics/Enumerative/IncidenceAlgebra.lean Modified docs/references.bib 2024-11-15 17:48:00 4887c6c feat(Data/Fintype/Units): Generalize `card_units` to infinite types (#19074) This PR proves `Nat.card αˣ = Nat.card α - 1` for all groups with zero `α`. ESTIMATED CHANGES Modified Mathlib/Data/Fintype/Units.lean + theorem Nat.card_units 2024-11-15 17:12:00 1fb5d8c feat(KrullDimension): height and 0, ⊤, ⊥, coe (#19028) Next parts from PR #15524: relating `height` to 0, ⊤, ⊥, coe. From the Carleson project ESTIMATED CHANGES Modified Mathlib/Order/KrullDimension.lean + theorem Order.coe_lt_height_iff + theorem Order.height_bot + theorem Order.height_eq_coe_add_one_iff + theorem Order.height_eq_coe_iff +/- theorem Order.height_eq_iSup_lt_height + theorem Order.height_eq_top_iff + theorem Order.height_eq_zero +/- theorem Order.height_le_coe_iff 2024-11-15 16:35:20 22888ca chore(Algebra/Group/Opposite): split off material on `Units` (#18991) This removes a few dependencies on `Units` that appear in the basics of group actions. The hope is that we can eventually avoid importing `Units` in the file defining `Module`. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Group/Action/Opposite.lean Modified Mathlib/Algebra/Group/Nat.lean Modified Mathlib/Algebra/Group/Opposite.lean - theorem Units.coe_opEquiv_symm - theorem Units.coe_unop_opEquiv - def Units.opEquiv - theorem isUnit_op - theorem isUnit_unop Added Mathlib/Algebra/Group/Units/Opposite.lean + theorem Units.coe_opEquiv_symm + theorem Units.coe_unop_opEquiv + def Units.opEquiv + theorem isUnit_op + theorem isUnit_unop Modified Mathlib/Algebra/Ring/AddAut.lean Modified Mathlib/Algebra/SMulWithZero.lean 2024-11-15 16:20:59 a5af4a0 feat:`Polynomial.derivative_C_mul` (#19048) Add `Polynomial.derivative_C_mul`. Note that `Polynomial.iterative_derivative_C_mul` already exists. ESTIMATED CHANGES Modified Mathlib/Algebra/Polynomial/Derivative.lean + theorem Polynomial.derivative_C_mul 2024-11-15 15:51:56 1124c33 chore(Algebra/Polynomial): split `Eval.lean` into smaller files (#19036) This PR takes the rather large file `Algebra/Polynomial/Eval.lean` and splits it into the following smaller files: * `Algebra/Polynomial/Eval/Defs.lean`: definition of evaluation and bundled homs * `Algebra/Polynomial/Eval/Algebra.lean`: evaluating where the map is `algebraMap` * `Algebra/Polynomial/Eval/Coeff.lean`: `eval` and `coeff` * `Algebra/Polynomial/Eval/Degree.lean`: `eval` and `degree` * `Algebra/Polynomial/Eval/Irreducible.lean`: `eval` and `Irreducible` * `Algebra/Polynomial/Eval/SMul.lean`: `eval` and the module structure on `Polynomial` * `Algebra/Polynomial/Eval/Subring.lean`: `eval` into a subring ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/LinearRecurrence.lean Modified Mathlib/Algebra/MvPolynomial/Polynomial.lean Modified Mathlib/Algebra/Polynomial/AlgebraMap.lean Modified Mathlib/Algebra/Polynomial/Degree/Lemmas.lean Modified Mathlib/Algebra/Polynomial/DenomsClearable.lean Modified Mathlib/Algebra/Polynomial/Derivative.lean Added Mathlib/Algebra/Polynomial/Eval/Algebra.lean + theorem Polynomial.eval₂_comp' + theorem Polynomial.eval₂_mul' + theorem Polynomial.eval₂_pow' Added Mathlib/Algebra/Polynomial/Eval/Coeff.lean + theorem Polynomial.IsRoot.map + theorem Polynomial.IsRoot.of_map + theorem Polynomial.coeff_map + theorem Polynomial.coeff_zero_eq_eval_zero + theorem Polynomial.evalRingHom_zero + theorem Polynomial.eval_intCast_map + theorem Polynomial.eval_natCast_map + theorem Polynomial.eval_one_map + theorem Polynomial.eval_zero_map + theorem Polynomial.eval₂_C_X + theorem Polynomial.eval₂_at_zero + theorem Polynomial.eval₂_hom + theorem Polynomial.eval₂_map + theorem Polynomial.hom_eval₂ + theorem Polynomial.isRoot_map_iff + theorem Polynomial.mapRingHom_comp + theorem Polynomial.mapRingHom_id + theorem Polynomial.map_id + theorem Polynomial.map_injective + theorem Polynomial.map_map + theorem Polynomial.map_surjective + def Polynomial.piEquiv + theorem Polynomial.support_map_of_injective + theorem Polynomial.support_map_subset + theorem Polynomial.zero_isRoot_of_coeff_zero_eq_zero Renamed Mathlib/Algebra/Polynomial/Eval.lean to Mathlib/Algebra/Polynomial/Eval/Defs.lean - theorem Polynomial.IsRoot.map - theorem Polynomial.IsRoot.of_map - theorem Polynomial.Monic.irreducible_of_irreducible_map - theorem Polynomial.coeff_comp_degree_mul_degree - theorem Polynomial.coeff_map - theorem Polynomial.coeff_zero_eq_eval_zero - theorem Polynomial.degree_map_eq_of_leadingCoeff_ne_zero - theorem Polynomial.degree_map_le - theorem Polynomial.evalRingHom_zero - theorem Polynomial.eval_eq_sum_range' - theorem Polynomial.eval_eq_sum_range - theorem Polynomial.eval_intCast_map - theorem Polynomial.eval_monomial_one_add_sub - theorem Polynomial.eval_natCast_map - theorem Polynomial.eval_one_map - theorem Polynomial.eval_smul - theorem Polynomial.eval_zero_map - theorem Polynomial.eval₂_C_X - theorem Polynomial.eval₂_at_zero - theorem Polynomial.eval₂_comp' - theorem Polynomial.eval₂_comp - theorem Polynomial.eval₂_eq_sum_range' - theorem Polynomial.eval₂_eq_sum_range - theorem Polynomial.eval₂_hom - theorem Polynomial.eval₂_map - theorem Polynomial.eval₂_mul' - theorem Polynomial.eval₂_pow' - theorem Polynomial.eval₂_smul - theorem Polynomial.hom_eval₂ - theorem Polynomial.isRoot_map_iff - theorem Polynomial.isUnit_of_isUnit_leadingCoeff_of_isUnit_map - theorem Polynomial.iterate_comp_eval - theorem Polynomial.iterate_comp_eval₂ - theorem Polynomial.leadingCoeff_map_of_leadingCoeff_ne_zero - def Polynomial.leval - def Polynomial.mapEquiv - theorem Polynomial.mapRingHom_comp - theorem Polynomial.mapRingHom_id - theorem Polynomial.map_id - theorem Polynomial.map_injective - theorem Polynomial.map_map - theorem Polynomial.map_monic_eq_zero_iff - theorem Polynomial.map_monic_ne_zero - theorem Polynomial.map_surjective - theorem Polynomial.mem_map_range - theorem Polynomial.mem_map_rangeS - theorem Polynomial.natDegree_map_le - theorem Polynomial.natDegree_map_of_leadingCoeff_ne_zero - def Polynomial.piEquiv - theorem Polynomial.smul_comp - theorem Polynomial.support_map_of_injective - theorem Polynomial.support_map_subset - theorem Polynomial.zero_isRoot_of_coeff_zero_eq_zero Added Mathlib/Algebra/Polynomial/Eval/Degree.lean + theorem Polynomial.coeff_comp_degree_mul_degree + theorem Polynomial.degree_map_eq_of_leadingCoeff_ne_zero + theorem Polynomial.degree_map_le + theorem Polynomial.eval_eq_sum_range' + theorem Polynomial.eval_eq_sum_range + theorem Polynomial.eval_monomial_one_add_sub + theorem Polynomial.eval₂_comp + theorem Polynomial.eval₂_eq_sum_range' + theorem Polynomial.eval₂_eq_sum_range + theorem Polynomial.isUnit_of_isUnit_leadingCoeff_of_isUnit_map + theorem Polynomial.iterate_comp_eval + theorem Polynomial.iterate_comp_eval₂ + theorem Polynomial.leadingCoeff_map_of_leadingCoeff_ne_zero + def Polynomial.mapEquiv + theorem Polynomial.map_monic_eq_zero_iff + theorem Polynomial.map_monic_ne_zero + theorem Polynomial.natDegree_map_le + theorem Polynomial.natDegree_map_of_leadingCoeff_ne_zero Added Mathlib/Algebra/Polynomial/Eval/Irreducible.lean + theorem Polynomial.Monic.irreducible_of_irreducible_map Added Mathlib/Algebra/Polynomial/Eval/SMul.lean + theorem Polynomial.eval_smul + theorem Polynomial.eval₂_smul + def Polynomial.leval + theorem Polynomial.smul_comp Added Mathlib/Algebra/Polynomial/Eval/Subring.lean + theorem Polynomial.mem_map_range + theorem Polynomial.mem_map_rangeS Modified Mathlib/Algebra/Polynomial/FieldDivision.lean Modified Mathlib/Algebra/Polynomial/Lifts.lean Modified Mathlib/Algebra/Polynomial/Reverse.lean Modified Mathlib/Algebra/Polynomial/Smeval.lean Modified Mathlib/Algebra/Polynomial/SumIteratedDerivative.lean Modified Mathlib/Algebra/Polynomial/Taylor.lean Modified Mathlib/Analysis/Asymptotics/SuperpolynomialDecay.lean Modified Mathlib/Analysis/Polynomial/CauchyBound.lean Modified Mathlib/Analysis/SpecialFunctions/PolynomialExp.lean Modified Mathlib/Computability/TMComputable.lean Modified Mathlib/FieldTheory/IsAlgClosed/AlgebraicClosure.lean Modified Mathlib/LinearAlgebra/Matrix/Charpoly/Coeff.lean Modified Mathlib/LinearAlgebra/SModEq.lean Modified Mathlib/RingTheory/IntegralClosure/IsIntegral/Defs.lean Modified Mathlib/RingTheory/Polynomial/Bernstein.lean Modified Mathlib/RingTheory/Polynomial/IrreducibleRing.lean Modified Mathlib/RingTheory/Polynomial/Pochhammer.lean Modified Mathlib/RingTheory/Polynomial/Quotient.lean Modified MathlibTest/RewriteSearch/Polynomial.lean 2024-11-15 15:51:55 9127890 chore(LinearAlgebra/Span): split off definition of `Submodule.span` (#18618) This PR creates a new file `LinearAlgebra.Span.Defs` which contains the definition of a submodule span and some elementary results. Everything that needs heavier imports gets moved to `LinearAlgebra.Span.Basic`. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Algebra/NonUnitalSubalgebra.lean Modified Mathlib/Algebra/Algebra/Tower.lean Modified Mathlib/Algebra/Category/ModuleCat/Tannaka.lean Modified Mathlib/Algebra/Module/Submodule/Bilinear.lean Modified Mathlib/LinearAlgebra/Basis/Defs.lean Modified Mathlib/LinearAlgebra/FiniteSpan.lean Modified Mathlib/LinearAlgebra/Finsupp/Span.lean Modified Mathlib/LinearAlgebra/Finsupp/Supported.lean Modified Mathlib/LinearAlgebra/Prod.lean Modified Mathlib/LinearAlgebra/Quotient/Basic.lean Renamed Mathlib/LinearAlgebra/Span.lean to Mathlib/LinearAlgebra/Span/Basic.lean - theorem Submodule.IsPrincipal.principal - theorem Submodule.closure_induction - theorem Submodule.closure_le_toAddSubmonoid_span - theorem Submodule.closure_subset_span - theorem Submodule.coe_iSup_of_chain - theorem Submodule.coe_iSup_of_directed - theorem Submodule.coe_span_eq_self - theorem Submodule.coe_sup - theorem Submodule.exists_add_eq_of_codisjoint - theorem Submodule.iSup_eq_span - theorem Submodule.iSup_span - theorem Submodule.le_span_singleton_iff - theorem Submodule.lt_sup_iff_not_mem - theorem Submodule.mem_iSup - theorem Submodule.mem_iSup_of_chain - theorem Submodule.mem_iSup_of_directed - theorem Submodule.mem_sSup - theorem Submodule.mem_sSup_of_directed - theorem Submodule.mem_span - theorem Submodule.mem_span_finite_of_mem_span - theorem Submodule.mem_span_insert' - theorem Submodule.mem_span_insert - theorem Submodule.mem_span_pair - theorem Submodule.mem_span_singleton - theorem Submodule.mem_span_singleton_self - theorem Submodule.mem_span_singleton_trans - theorem Submodule.mem_sup' - theorem Submodule.mem_sup - theorem Submodule.nontrivial_span_singleton - def Submodule.span - theorem Submodule.span_attach_biUnion - theorem Submodule.span_closure - theorem Submodule.span_empty - theorem Submodule.span_eq - theorem Submodule.span_eq_bot - theorem Submodule.span_eq_closure - theorem Submodule.span_eq_iSup_of_singleton_spans - theorem Submodule.span_eq_of_le - theorem Submodule.span_eq_span - theorem Submodule.span_iUnion - theorem Submodule.span_iUnion₂ - theorem Submodule.span_induction - theorem Submodule.span_induction₂ - theorem Submodule.span_insert - theorem Submodule.span_insert_eq_span - theorem Submodule.span_insert_zero - theorem Submodule.span_int_eq - theorem Submodule.span_int_eq_addSubgroup_closure - theorem Submodule.span_le - theorem Submodule.span_mono - theorem Submodule.span_monotone - theorem Submodule.span_nat_eq - theorem Submodule.span_nat_eq_addSubmonoid_closure - theorem Submodule.span_range_eq_iSup - theorem Submodule.span_setOf_mem_eq_top - theorem Submodule.span_singleton_eq_bot - theorem Submodule.span_singleton_eq_range - theorem Submodule.span_singleton_eq_top_iff - theorem Submodule.span_singleton_group_smul_eq - theorem Submodule.span_singleton_le_iff_mem - theorem Submodule.span_singleton_smul_eq - theorem Submodule.span_singleton_smul_le - theorem Submodule.span_smul_le - theorem Submodule.span_span - theorem Submodule.span_span_coe_preimage - theorem Submodule.span_sup - theorem Submodule.span_union - theorem Submodule.span_univ - theorem Submodule.span_zero - theorem Submodule.span_zero_singleton - theorem Submodule.submodule_eq_sSup_le_nonzero_spans - theorem Submodule.subset_span - theorem Submodule.subset_span_trans - theorem Submodule.sup_span - theorem Submodule.sup_toAddSubgroup - theorem Submodule.sup_toAddSubmonoid Added Mathlib/LinearAlgebra/Span/Defs.lean + theorem Submodule.IsPrincipal.principal + theorem Submodule.closure_induction + theorem Submodule.closure_le_toAddSubmonoid_span + theorem Submodule.closure_subset_span + theorem Submodule.coe_iSup_of_chain + theorem Submodule.coe_iSup_of_directed + theorem Submodule.coe_span_eq_self + theorem Submodule.coe_sup + theorem Submodule.exists_add_eq_of_codisjoint + theorem Submodule.iSup_eq_span + theorem Submodule.iSup_span + theorem Submodule.le_span_singleton_iff + theorem Submodule.lt_sup_iff_not_mem + theorem Submodule.mem_iSup + theorem Submodule.mem_iSup_of_chain + theorem Submodule.mem_iSup_of_directed + theorem Submodule.mem_sSup + theorem Submodule.mem_sSup_of_directed + theorem Submodule.mem_span + theorem Submodule.mem_span_finite_of_mem_span + theorem Submodule.mem_span_insert' + theorem Submodule.mem_span_insert + theorem Submodule.mem_span_pair + theorem Submodule.mem_span_singleton + theorem Submodule.mem_span_singleton_self + theorem Submodule.mem_span_singleton_trans + theorem Submodule.mem_sup' + theorem Submodule.mem_sup + theorem Submodule.nontrivial_span_singleton + def Submodule.span + theorem Submodule.span_attach_biUnion + theorem Submodule.span_closure + theorem Submodule.span_empty + theorem Submodule.span_eq + theorem Submodule.span_eq_bot + theorem Submodule.span_eq_closure + theorem Submodule.span_eq_iSup_of_singleton_spans + theorem Submodule.span_eq_of_le + theorem Submodule.span_eq_span + theorem Submodule.span_iUnion + theorem Submodule.span_iUnion₂ + theorem Submodule.span_induction + theorem Submodule.span_induction₂ + theorem Submodule.span_insert + theorem Submodule.span_insert_eq_span + theorem Submodule.span_insert_zero + theorem Submodule.span_int_eq + theorem Submodule.span_int_eq_addSubgroup_closure + theorem Submodule.span_le + theorem Submodule.span_mono + theorem Submodule.span_monotone + theorem Submodule.span_nat_eq + theorem Submodule.span_nat_eq_addSubmonoid_closure + theorem Submodule.span_range_eq_iSup + theorem Submodule.span_setOf_mem_eq_top + theorem Submodule.span_singleton_eq_bot + theorem Submodule.span_singleton_eq_range + theorem Submodule.span_singleton_eq_top_iff + theorem Submodule.span_singleton_group_smul_eq + theorem Submodule.span_singleton_le_iff_mem + theorem Submodule.span_singleton_smul_eq + theorem Submodule.span_singleton_smul_le + theorem Submodule.span_smul_le + theorem Submodule.span_span + theorem Submodule.span_span_coe_preimage + theorem Submodule.span_sup + theorem Submodule.span_union + theorem Submodule.span_univ + theorem Submodule.span_zero + theorem Submodule.span_zero_singleton + theorem Submodule.submodule_eq_sSup_le_nonzero_spans + theorem Submodule.subset_span + theorem Submodule.subset_span_trans + theorem Submodule.sup_span + theorem Submodule.sup_toAddSubgroup + theorem Submodule.sup_toAddSubmonoid Modified Mathlib/RingTheory/Ideal/AssociatedPrime.lean Modified Mathlib/RingTheory/Ideal/Span.lean 2024-11-15 15:18:08 2c03193 chore(Combinatorics/Additive/SmallTripling): additivise (#19089) I completely missed this the first time around From GrowthInGroups ESTIMATED CHANGES Modified Mathlib/Combinatorics/Additive/SmallTripling.lean + theorem Finset.small_alternating_pow_of_small_tripling' - theorem Finset.small_alternating_pow_of_small_tripling + theorem Finset.small_pow_of_small_tripling' - theorem Finset.small_pow_of_small_tripling 2024-11-15 15:18:07 d91e72c feat: a nontrivial finset is nonempty (#19088) ... and make `Finset.subset_empty` simp, similarly to `Set.subset_empty_iff` From GrowthInGroups ESTIMATED CHANGES Modified Mathlib/Data/Finset/Empty.lean +/- theorem Finset.subset_empty Modified Mathlib/Data/Finset/Insert.lean 2024-11-15 14:42:35 f9aff52 feat: `uIoo` (#19050) This PR is the first in a series which breaks #9598 (proving that holomorphic functions on disks have primitives) into smaller pieces. This piece introduces the notation `uIoo` (unordered Interval, open-open) which is the `oo` analog of `uIcc`. Then we prove the analogous API theorems to those available for `uIcc`. ESTIMATED CHANGES Modified Mathlib/Order/Interval/Set/UnorderedInterval.lean + theorem Set.Ioo_min_max + theorem Set.Ioo_subset_uIoo' + theorem Set.Ioo_subset_uIoo + theorem Set.dual_uIoo + theorem Set.mem_uIoo_of_gt + theorem Set.mem_uIoo_of_lt + def Set.uIoo + theorem Set.uIoo_comm + theorem Set.uIoo_of_ge + theorem Set.uIoo_of_gt + theorem Set.uIoo_of_le + theorem Set.uIoo_of_lt + theorem Set.uIoo_of_not_ge + theorem Set.uIoo_of_not_le + theorem Set.uIoo_self + theorem Set.uIoo_subset_uIcc 2024-11-15 13:41:03 79635cf feat(Combinatorics/Additive): randomising by a function of dissociated support (#18916) Prove that a function from a finite abelian group can be randomised by a function of dissociated support. Precisely, for `G` a finite abelian group and two functions `c : Dual G → ℝ` and `d : Dual G → ℝ` such that `{ψ | d ψ ≠ 0} is dissociated`, the product of the `c ψ` over `ψ` is the same as the average over `a` of the product of the `c ψ + Re (d ψ * ψ a)`. From LeanAPAP ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Combinatorics/Additive/Randomisation.lean + theorem AddDissociated.randomisation 2024-11-15 13:08:34 baba01f fix(CategoryTheory): remove unnecessary local instance (#19083) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Sites/Coherent/SequentialLimit.lean 2024-11-15 12:41:49 0b70c32 feat: `colim` preserves limits in functor categories (#18521) Together with #18511 this will enable us to commute finite limits with filtered colimits in functor categories. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Limits/Preserves/FunctorCategory.lean + def CategoryTheory.colimitCompWhiskeringRightIsoColimitComp + def CategoryTheory.limitCompWhiskeringRightIsoLimitComp + theorem CategoryTheory.limitCompWhiskeringRightIsoLimitComp_hom_whiskerRight_π + theorem CategoryTheory.limitCompWhiskeringRightIsoLimitComp_inv_π + theorem CategoryTheory.whiskerRight_ι_colimitCompWhiskeringRightIsoColimitComp_inv + theorem CategoryTheory.ι_colimitCompWhiskeringRightIsoColimitComp_hom 2024-11-15 12:23:15 089baee feat(Condensed): a sequential limit of epimorphisms in light condensed modules is epimorphic (#18336) This is deduced from the more general statement about morphisms in the category of sheaves for the coherent topology on a preregular extensive category. This will eventually be used to prove that the category of light condensed modules has countable AB4*, see #18497 (WIP). ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Sites/Coherent/SequentialLimit.lean + theorem CategoryTheory.coherentTopology.epi_π_app_zero_of_epi + theorem CategoryTheory.coherentTopology.isLocallySurjective_π_app_zero_of_isLocallySurjective_map Modified Mathlib/Condensed/Light/Epi.lean + theorem LightCondensed.epi_π_app_zero_of_epi 2024-11-15 11:45:09 e6b15a4 feat: `⋃ a ∈ s, t = t` (#19029) ... when `s` is nonempty. Also remove the stray `Sort _` in the complete lattice version of this lemma From GrowthInGroups ESTIMATED CHANGES Modified Mathlib/Data/Set/Lattice.lean + theorem Set.biInter_const + theorem Set.biUnion_const Modified Mathlib/Order/CompleteLattice.lean +/- theorem biInf_const +/- theorem biSup_const 2024-11-15 10:35:19 c6da505 refactor(GroupTheory/SpecificGroups/Cyclic): Use variables (#19075) This PR refactors `GroupTheory/SpecificGroups/Cyclic.lean` to use variables. ESTIMATED CHANGES Modified Mathlib/GroupTheory/SpecificGroups/Cyclic.lean +/- theorem IsCyclic.ext +/- theorem MonoidHom.map_cyclic +/- theorem Subgroup.eq_bot_or_eq_top_of_prime_card +/- theorem Subgroup.isCyclic_of_le +/- def commGroupOfCyclicCenterQuotient +/- theorem commutative_of_cyclic_center_quotient +/- theorem exists_pow_ne_one_of_isCyclic +/- theorem isCyclic_of_card_dvd_prime +/- theorem isCyclic_of_prime_card +/- theorem isCyclic_of_surjective +/- theorem isSimpleGroup_of_prime_card +/- theorem mem_powers_of_prime_card +/- theorem mem_zpowers_of_prime_card +/- theorem powers_eq_top_of_prime_card +/- theorem zpowers_eq_top_of_prime_card 2024-11-15 10:19:28 672417d feat(Analysis): integer complement in `ℂ` (#16542) Develop some basic API for the complement of the integers in the complex numbers. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Analysis/Complex/Basic.lean + theorem Complex.closedEmbedding_intCast + theorem Complex.isClosed_range_intCast + theorem Complex.isOpen_compl_range_intCast + theorem Complex.isometry_intCast Added Mathlib/Analysis/Complex/IntegerCompl.lean + theorem Complex.UpperHalfPlane.coe_mem_integerComplement + theorem Complex.integerComplement.add_coe_int_mem + theorem Complex.integerComplement.mem_iff + theorem Complex.integerComplement.ne_one + theorem Complex.integerComplement.ne_zero + def Complex.integerComplement + theorem Complex.integerComplement_add_ne_zero + theorem Complex.integerComplement_eq Modified Mathlib/Analysis/Complex/UpperHalfPlane/Basic.lean + theorem UpperHalfPlane.ne_int + theorem UpperHalfPlane.ne_nat 2024-11-15 10:09:56 6ae3e98 refactor(RingTheory): generalize cotangent complex for arbitrary extensions (#18684) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/RingTheory/Extension.lean + theorem Algebra.Extension.Cotangent.ext + def Algebra.Extension.Cotangent.map + theorem Algebra.Extension.Cotangent.map_comp + theorem Algebra.Extension.Cotangent.map_id + theorem Algebra.Extension.Cotangent.map_mk + def Algebra.Extension.Cotangent.mk + theorem Algebra.Extension.Cotangent.mk_surjective + def Algebra.Extension.Cotangent.of + theorem Algebra.Extension.Cotangent.of_add + theorem Algebra.Extension.Cotangent.of_val + theorem Algebra.Extension.Cotangent.of_zero + theorem Algebra.Extension.Cotangent.smul_eq_zero_of_mem + def Algebra.Extension.Cotangent.val + theorem Algebra.Extension.Cotangent.val_add + theorem Algebra.Extension.Cotangent.val_mk + theorem Algebra.Extension.Cotangent.val_of + theorem Algebra.Extension.Cotangent.val_smul''' + theorem Algebra.Extension.Cotangent.val_smul'' + theorem Algebra.Extension.Cotangent.val_smul' + theorem Algebra.Extension.Cotangent.val_smul + theorem Algebra.Extension.Cotangent.val_sub + theorem Algebra.Extension.Cotangent.val_zero + def Algebra.Extension.Cotangent + theorem Algebra.Extension.Hom.comp_id + theorem Algebra.Extension.Hom.id_comp + def Algebra.Extension.Hom.toAlgHom + theorem Algebra.Extension.Hom.toAlgHom_apply + theorem Algebra.Extension.Hom.toAlgHom_id + structure Algebra.Extension.Hom + theorem Algebra.Extension.algebraMap_surjective + def Algebra.Extension.baseChange + def Algebra.Extension.localization + def Algebra.Extension.ofSurjective + def Algebra.Extension.self + theorem Algebra.Extension.σ_injective + theorem Algebra.Extension.σ_smul + structure Algebra.Extension Modified Mathlib/RingTheory/Generators.lean - theorem Algebra.Generators.Cotangent.ext - def Algebra.Generators.Cotangent.map - theorem Algebra.Generators.Cotangent.map_comp - theorem Algebra.Generators.Cotangent.map_id - theorem Algebra.Generators.Cotangent.map_mk - def Algebra.Generators.Cotangent.mk - theorem Algebra.Generators.Cotangent.mk_surjective - def Algebra.Generators.Cotangent.of - theorem Algebra.Generators.Cotangent.of_add - theorem Algebra.Generators.Cotangent.of_val - theorem Algebra.Generators.Cotangent.of_zero - theorem Algebra.Generators.Cotangent.smul_eq_zero_of_mem - def Algebra.Generators.Cotangent.val - theorem Algebra.Generators.Cotangent.val_add - theorem Algebra.Generators.Cotangent.val_mk - theorem Algebra.Generators.Cotangent.val_of - theorem Algebra.Generators.Cotangent.val_smul''' - theorem Algebra.Generators.Cotangent.val_smul'' - theorem Algebra.Generators.Cotangent.val_smul' - theorem Algebra.Generators.Cotangent.val_smul - theorem Algebra.Generators.Cotangent.val_sub - theorem Algebra.Generators.Cotangent.val_zero - def Algebra.Generators.Cotangent + def Algebra.Generators.Hom.toExtensionHom + theorem Algebra.Generators.Hom.toExtensionHom_comp + theorem Algebra.Generators.Hom.toExtensionHom_id + def Algebra.Generators.toExtension Modified Mathlib/RingTheory/Kaehler/CotangentComplex.lean + theorem Algebra.Extension.Cotangent.map_sub_map + def Algebra.Extension.CotangentSpace.map + theorem Algebra.Extension.CotangentSpace.map_comp + theorem Algebra.Extension.CotangentSpace.map_comp_apply + theorem Algebra.Extension.CotangentSpace.map_comp_cotangentComplex + theorem Algebra.Extension.CotangentSpace.map_cotangentComplex + theorem Algebra.Extension.CotangentSpace.map_id + theorem Algebra.Extension.CotangentSpace.map_sub_map + theorem Algebra.Extension.CotangentSpace.map_tmul + def Algebra.Extension.H1Cotangent.map + theorem Algebra.Extension.H1Cotangent.map_comp + theorem Algebra.Extension.H1Cotangent.map_eq + theorem Algebra.Extension.H1Cotangent.map_id + theorem Algebra.Extension.H1Cotangent.val_add + theorem Algebra.Extension.H1Cotangent.val_smul + theorem Algebra.Extension.H1Cotangent.val_zero + def Algebra.Extension.H1Cotangent + def Algebra.Extension.Hom.sub + def Algebra.Extension.Hom.subToKer + theorem Algebra.Extension.Hom.sub_aux + theorem Algebra.Extension.Hom.sub_one_tmul + theorem Algebra.Extension.Hom.sub_tmul + def Algebra.Extension.cotangentComplex + theorem Algebra.Extension.cotangentComplex_mk + theorem Algebra.Extension.exact_cotangentComplex_toKaehler + def Algebra.Extension.h1Cotangentι + theorem Algebra.Extension.h1Cotangentι_ext + theorem Algebra.Extension.h1Cotangentι_injective + theorem Algebra.Extension.subsingleton_h1Cotangent + theorem Algebra.Extension.toKaehler_surjective - theorem Algebra.Generators.Cotangent.map_sub_map - def Algebra.Generators.CotangentSpace.map - theorem Algebra.Generators.CotangentSpace.map_comp - theorem Algebra.Generators.CotangentSpace.map_comp_apply - theorem Algebra.Generators.CotangentSpace.map_comp_cotangentComplex - theorem Algebra.Generators.CotangentSpace.map_cotangentComplex - theorem Algebra.Generators.CotangentSpace.map_id - theorem Algebra.Generators.CotangentSpace.map_sub_map - theorem Algebra.Generators.CotangentSpace.map_tmul - theorem Algebra.Generators.CotangentSpace.repr_map +/- def Algebra.Generators.H1Cotangent.equiv - def Algebra.Generators.H1Cotangent.map - theorem Algebra.Generators.H1Cotangent.map_comp - theorem Algebra.Generators.H1Cotangent.map_eq - theorem Algebra.Generators.H1Cotangent.map_id - theorem Algebra.Generators.H1Cotangent.val_add - theorem Algebra.Generators.H1Cotangent.val_smul - theorem Algebra.Generators.H1Cotangent.val_zero - def Algebra.Generators.H1Cotangent - def Algebra.Generators.Hom.sub - def Algebra.Generators.Hom.subToKer - theorem Algebra.Generators.Hom.sub_aux - theorem Algebra.Generators.Hom.sub_one_tmul - theorem Algebra.Generators.Hom.sub_tmul - def Algebra.Generators.cotangentComplex - theorem Algebra.Generators.cotangentComplex_mk +/- def Algebra.Generators.cotangentSpaceBasis +/- theorem Algebra.Generators.cotangentSpaceBasis_apply - theorem Algebra.Generators.exact_cotangentComplex_toKaehler - def Algebra.Generators.h1Cotangentι - theorem Algebra.Generators.h1Cotangentι_ext - theorem Algebra.Generators.h1Cotangentι_injective + theorem Algebra.Generators.repr_CotangentSpaceMap - theorem Algebra.Generators.subsingleton_h1Cotangent - theorem Algebra.Generators.toKaehler_cotangentSpaceBasis - theorem Algebra.Generators.toKaehler_surjective Modified Mathlib/RingTheory/Smooth/Kaehler.lean 2024-11-15 10:01:13 815a662 feat(Wiedijk100Theorems): roots of a quartic (#18290) * Added `quartic_eq_zero_iff` which gives the roots of the quartic equation in terms of a root `u` to a particular cubic equation, and a degenerate case `quartic_eq_zero_iff_of_q_eq_zero` * Simplified the cubic proof ESTIMATED CHANGES Modified Archive/Wiedijk100Theorems/SolutionOfCubicQuartic.lean + theorem Theorems100.quartic_depressed_eq_zero_iff + theorem Theorems100.quartic_eq_zero_iff + theorem Theorems100.quartic_eq_zero_iff_of_q_eq_zero Modified docs/100.yaml Modified docs/references.bib 2024-11-15 09:38:31 12f3163 chore(Algebra/Polynomial/Degree): split `Definitions.lean` (#19038) This file was very big and contained many more things than just the definitions of `Polynomial.degree` et al. This PR splits off the following files: * `Degree/Operations.lean`: lemmas to compute the degree for various ring operations (this is probably the file to import if you're missing something after merging this PR) * `Degree/Domain.lean`: `Polynomial.instIsDomain` instance and its consequences * `Degree/Monomial.lean`: lemmas to compute the degree for monomials * `Degree/SmallDegree.lean`: lemmas where the degree is a specific small number such as 2 or 3 * `Degree/Support.lean`: lemmas about writing polynomials as sum over the support * `Degree/Units.lean`: lemmas about the degree of units ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Polynomial/CancelLeads.lean Modified Mathlib/Algebra/Polynomial/Degree/Definitions.lean - theorem Polynomial.C_mul_X_pow_eq_self - theorem Polynomial.Monic.C_dvd_iff_isUnit - theorem Polynomial.Monic.degree_mul - theorem Polynomial.Monic.degree_pos - theorem Polynomial.Monic.degree_pos_of_not_isUnit - theorem Polynomial.Monic.eq_X_add_C - theorem Polynomial.Monic.natDegree_eq_zero - theorem Polynomial.Monic.natDegree_pos - theorem Polynomial.Monic.natDegree_pos_of_not_isUnit - theorem Polynomial.X_add_C_ne_one - theorem Polynomial.X_add_C_ne_zero - theorem Polynomial.X_pow_add_C_ne_one - theorem Polynomial.X_pow_add_C_ne_zero - theorem Polynomial.X_pow_sub_C_ne_zero - theorem Polynomial.X_sub_C_ne_zero - theorem Polynomial.as_sum_range' - theorem Polynomial.as_sum_range - theorem Polynomial.as_sum_range_C_mul_X_pow - theorem Polynomial.as_sum_support - theorem Polynomial.as_sum_support_C_mul_X_pow - theorem Polynomial.card_supp_le_succ_natDegree - theorem Polynomial.card_support_C_mul_X_pow_le_one - theorem Polynomial.coeff_coe_units_zero_ne_zero - theorem Polynomial.coeff_eq_zero_of_degree_lt - theorem Polynomial.coeff_eq_zero_of_natDegree_lt - theorem Polynomial.coeff_mul_X_sub_C - theorem Polynomial.coeff_mul_add_eq_of_natDegree_le - theorem Polynomial.coeff_mul_degree_add_degree - theorem Polynomial.coeff_natDegree_eq_zero_of_degree_lt - theorem Polynomial.coeff_natDegree_succ_eq_zero - theorem Polynomial.coeff_pow_mul_natDegree - def Polynomial.degreeMonoidHom - theorem Polynomial.degree_C_lt_degree_C_mul_X - theorem Polynomial.degree_X_add_C - theorem Polynomial.degree_X_pow_add_C - theorem Polynomial.degree_X_pow_sub_C - theorem Polynomial.degree_X_sub_C - theorem Polynomial.degree_add_C - theorem Polynomial.degree_add_eq_left_of_degree_lt - theorem Polynomial.degree_add_eq_of_leadingCoeff_add_ne_zero - theorem Polynomial.degree_add_eq_right_of_degree_lt - theorem Polynomial.degree_coe_units - theorem Polynomial.degree_cubic - theorem Polynomial.degree_cubic_le - theorem Polynomial.degree_cubic_lt - theorem Polynomial.degree_eq_of_le_of_coeff_ne_zero - theorem Polynomial.degree_eq_zero_of_isUnit - theorem Polynomial.degree_le_mul_left - theorem Polynomial.degree_le_of_dvd - theorem Polynomial.degree_le_zero_iff - theorem Polynomial.degree_linear - theorem Polynomial.degree_linear_le - theorem Polynomial.degree_linear_lt - theorem Polynomial.degree_linear_lt_degree_C_mul_X_sq - theorem Polynomial.degree_lt_degree - theorem Polynomial.degree_lt_degree_mul_X - theorem Polynomial.degree_lt_wf - theorem Polynomial.degree_mul' - theorem Polynomial.degree_mul - theorem Polynomial.degree_mul_X - theorem Polynomial.degree_mul_X_pow - theorem Polynomial.degree_of_subsingleton - theorem Polynomial.degree_pos_of_not_isUnit_of_dvd_monic - theorem Polynomial.degree_pow' - theorem Polynomial.degree_pow - theorem Polynomial.degree_quadratic - theorem Polynomial.degree_quadratic_le - theorem Polynomial.degree_quadratic_lt - theorem Polynomial.degree_quadratic_lt_degree_C_mul_X_cb - theorem Polynomial.degree_smul_le - theorem Polynomial.degree_sub_C - theorem Polynomial.degree_sub_eq_left_of_degree_lt - theorem Polynomial.degree_sub_eq_right_of_degree_lt - theorem Polynomial.degree_sum_fin_lt - theorem Polynomial.eq_C_coeff_zero_iff_natDegree_eq_zero - theorem Polynomial.eq_C_of_degree_eq_zero - theorem Polynomial.eq_C_of_degree_le_zero - theorem Polynomial.eq_C_of_natDegree_eq_zero - theorem Polynomial.eq_C_of_natDegree_le_zero - theorem Polynomial.eq_X_add_C_of_degree_eq_one - theorem Polynomial.eq_X_add_C_of_degree_le_one - theorem Polynomial.eq_X_add_C_of_natDegree_le_one - theorem Polynomial.eq_one_of_monic_natDegree_zero - theorem Polynomial.eq_zero_of_dvd_of_degree_lt - theorem Polynomial.eq_zero_of_dvd_of_natDegree_lt - theorem Polynomial.exists_eq_X_add_C_of_natDegree_le_one - theorem Polynomial.ext_iff_degree_le - theorem Polynomial.ext_iff_natDegree_le - theorem Polynomial.isUnit_iff - theorem Polynomial.ite_le_natDegree_coeff - theorem Polynomial.le_degree_of_mem_supp - theorem Polynomial.le_natDegree_of_coe_le_degree - theorem Polynomial.le_natDegree_of_mem_supp - theorem Polynomial.le_natDegree_of_ne_zero - def Polynomial.leadingCoeffHom - theorem Polynomial.leadingCoeffHom_apply - theorem Polynomial.leadingCoeff_X_add_C - theorem Polynomial.leadingCoeff_X_pow_add_C - theorem Polynomial.leadingCoeff_X_pow_add_one - theorem Polynomial.leadingCoeff_X_pow_sub_C - theorem Polynomial.leadingCoeff_X_pow_sub_one - theorem Polynomial.leadingCoeff_X_sub_C - theorem Polynomial.leadingCoeff_add_of_degree_eq - theorem Polynomial.leadingCoeff_add_of_degree_lt' - theorem Polynomial.leadingCoeff_add_of_degree_lt - theorem Polynomial.leadingCoeff_cubic - theorem Polynomial.leadingCoeff_dvd_leadingCoeff - theorem Polynomial.leadingCoeff_linear - theorem Polynomial.leadingCoeff_monic_mul - theorem Polynomial.leadingCoeff_mul' - theorem Polynomial.leadingCoeff_mul - theorem Polynomial.leadingCoeff_mul_X - theorem Polynomial.leadingCoeff_mul_X_pow - theorem Polynomial.leadingCoeff_mul_monic - theorem Polynomial.leadingCoeff_pow' - theorem Polynomial.leadingCoeff_pow - theorem Polynomial.leadingCoeff_pow_X_add_C - theorem Polynomial.leadingCoeff_quadratic - theorem Polynomial.leadingCoeff_sub_of_degree_eq - theorem Polynomial.leadingCoeff_sub_of_degree_lt' - theorem Polynomial.leadingCoeff_sub_of_degree_lt - theorem Polynomial.mem_support_C_mul_X_pow - theorem Polynomial.monic_of_degree_le_of_coeff_eq_one - theorem Polynomial.monic_of_natDegree_le_of_coeff_eq_one - theorem Polynomial.monic_of_subsingleton - theorem Polynomial.monomial_natDegree_leadingCoeff_eq_self - theorem Polynomial.natDegree_C_add - theorem Polynomial.natDegree_X_add_C - theorem Polynomial.natDegree_X_mul - theorem Polynomial.natDegree_X_pow_add_C - theorem Polynomial.natDegree_X_pow_le - theorem Polynomial.natDegree_X_pow_mul - theorem Polynomial.natDegree_X_pow_sub_C - theorem Polynomial.natDegree_X_sub_C - theorem Polynomial.natDegree_add_C - theorem Polynomial.natDegree_add_eq_left_of_degree_lt - theorem Polynomial.natDegree_add_eq_left_of_natDegree_lt - theorem Polynomial.natDegree_add_eq_right_of_degree_lt - theorem Polynomial.natDegree_add_eq_right_of_natDegree_lt - theorem Polynomial.natDegree_coe_units - theorem Polynomial.natDegree_cubic - theorem Polynomial.natDegree_cubic_le - theorem Polynomial.natDegree_eq_of_le_of_coeff_ne_zero - theorem Polynomial.natDegree_eq_of_natDegree_add_eq_zero - theorem Polynomial.natDegree_eq_of_natDegree_add_lt_left - theorem Polynomial.natDegree_eq_of_natDegree_add_lt_right - theorem Polynomial.natDegree_eq_support_max' - theorem Polynomial.natDegree_eq_zero - theorem Polynomial.natDegree_eq_zero_of_isUnit - theorem Polynomial.natDegree_le_of_dvd - theorem Polynomial.natDegree_le_pred - theorem Polynomial.natDegree_linear - theorem Polynomial.natDegree_linear_le - theorem Polynomial.natDegree_lt_natDegree - theorem Polynomial.natDegree_lt_natDegree_iff - theorem Polynomial.natDegree_mem_support_of_nonzero - theorem Polynomial.natDegree_mul' - theorem Polynomial.natDegree_mul - theorem Polynomial.natDegree_mul_X - theorem Polynomial.natDegree_mul_X_pow - theorem Polynomial.natDegree_of_subsingleton - theorem Polynomial.natDegree_pos_of_not_isUnit_of_dvd_monic - theorem Polynomial.natDegree_pow' - theorem Polynomial.natDegree_pow - theorem Polynomial.natDegree_quadratic - theorem Polynomial.natDegree_quadratic_le - theorem Polynomial.natDegree_smul_le - theorem Polynomial.natDegree_sub_C - theorem Polynomial.natDegree_sub_eq_left_of_natDegree_lt - theorem Polynomial.natDegree_sub_eq_of_prod_eq - theorem Polynomial.natDegree_sub_eq_right_of_natDegree_lt - theorem Polynomial.ne_zero_of_coe_le_degree - theorem Polynomial.ne_zero_of_degree_ge_degree - theorem Polynomial.ne_zero_of_degree_gt - theorem Polynomial.ne_zero_of_natDegree_gt - theorem Polynomial.nextCoeff_X_add_C - theorem Polynomial.nextCoeff_X_sub_C - theorem Polynomial.nonempty_support_iff - theorem Polynomial.not_dvd_of_degree_lt - theorem Polynomial.not_dvd_of_natDegree_lt - theorem Polynomial.not_isUnit_X - theorem Polynomial.not_isUnit_of_degree_pos - theorem Polynomial.not_isUnit_of_natDegree_pos - theorem Polynomial.sum_fin - theorem Polynomial.sum_over_range' - theorem Polynomial.sum_over_range - theorem Polynomial.supDegree_eq_degree - theorem Polynomial.supDegree_eq_natDegree - theorem Polynomial.supp_subset_range - theorem Polynomial.supp_subset_range_natDegree_succ - theorem Polynomial.zero_le_degree_iff - theorem Polynomial.zero_nmem_multiset_map_X_add_C - theorem Polynomial.zero_nmem_multiset_map_X_sub_C Added Mathlib/Algebra/Polynomial/Degree/Domain.lean + theorem Polynomial.degree_le_of_dvd + theorem Polynomial.eq_zero_of_dvd_of_degree_lt + theorem Polynomial.eq_zero_of_dvd_of_natDegree_lt + theorem Polynomial.natDegree_le_of_dvd + theorem Polynomial.natDegree_mul + theorem Polynomial.natDegree_pow + theorem Polynomial.natDegree_sub_eq_of_prod_eq + theorem Polynomial.not_dvd_of_degree_lt + theorem Polynomial.not_dvd_of_natDegree_lt Added Mathlib/Algebra/Polynomial/Degree/Monomial.lean + theorem Polynomial.C_mul_X_pow_eq_self + theorem Polynomial.monomial_natDegree_leadingCoeff_eq_self + theorem Polynomial.natDegree_le_pred Added Mathlib/Algebra/Polynomial/Degree/Operations.lean + theorem Polynomial.Monic.degree_mul + theorem Polynomial.Monic.degree_pos + theorem Polynomial.Monic.natDegree_eq_zero + theorem Polynomial.Monic.natDegree_pos + theorem Polynomial.X_add_C_ne_one + theorem Polynomial.X_add_C_ne_zero + theorem Polynomial.X_pow_add_C_ne_one + theorem Polynomial.X_pow_add_C_ne_zero + theorem Polynomial.X_pow_sub_C_ne_zero + theorem Polynomial.X_sub_C_ne_zero + theorem Polynomial.coeff_eq_zero_of_degree_lt + theorem Polynomial.coeff_eq_zero_of_natDegree_lt + theorem Polynomial.coeff_mul_X_sub_C + theorem Polynomial.coeff_mul_add_eq_of_natDegree_le + theorem Polynomial.coeff_mul_degree_add_degree + theorem Polynomial.coeff_natDegree_eq_zero_of_degree_lt + theorem Polynomial.coeff_natDegree_succ_eq_zero + theorem Polynomial.coeff_pow_mul_natDegree + def Polynomial.degreeMonoidHom + theorem Polynomial.degree_C_lt_degree_C_mul_X + theorem Polynomial.degree_X_add_C + theorem Polynomial.degree_X_pow_add_C + theorem Polynomial.degree_X_pow_sub_C + theorem Polynomial.degree_X_sub_C + theorem Polynomial.degree_add_C + theorem Polynomial.degree_add_eq_left_of_degree_lt + theorem Polynomial.degree_add_eq_of_leadingCoeff_add_ne_zero + theorem Polynomial.degree_add_eq_right_of_degree_lt + theorem Polynomial.degree_eq_of_le_of_coeff_ne_zero + theorem Polynomial.degree_le_mul_left + theorem Polynomial.degree_le_zero_iff + theorem Polynomial.degree_lt_degree + theorem Polynomial.degree_lt_degree_mul_X + theorem Polynomial.degree_lt_wf + theorem Polynomial.degree_mul' + theorem Polynomial.degree_mul + theorem Polynomial.degree_mul_X + theorem Polynomial.degree_mul_X_pow + theorem Polynomial.degree_of_subsingleton + theorem Polynomial.degree_pow' + theorem Polynomial.degree_pow + theorem Polynomial.degree_smul_le + theorem Polynomial.degree_sub_C + theorem Polynomial.degree_sub_eq_left_of_degree_lt + theorem Polynomial.degree_sub_eq_right_of_degree_lt + theorem Polynomial.degree_sum_fin_lt + theorem Polynomial.eq_C_coeff_zero_iff_natDegree_eq_zero + theorem Polynomial.eq_C_of_degree_eq_zero + theorem Polynomial.eq_C_of_degree_le_zero + theorem Polynomial.eq_C_of_natDegree_eq_zero + theorem Polynomial.eq_C_of_natDegree_le_zero + theorem Polynomial.eq_one_of_monic_natDegree_zero + theorem Polynomial.ext_iff_degree_le + theorem Polynomial.ext_iff_natDegree_le + theorem Polynomial.ite_le_natDegree_coeff + theorem Polynomial.le_natDegree_of_ne_zero + def Polynomial.leadingCoeffHom + theorem Polynomial.leadingCoeffHom_apply + theorem Polynomial.leadingCoeff_X_add_C + theorem Polynomial.leadingCoeff_X_pow_add_C + theorem Polynomial.leadingCoeff_X_pow_add_one + theorem Polynomial.leadingCoeff_X_pow_sub_C + theorem Polynomial.leadingCoeff_X_pow_sub_one + theorem Polynomial.leadingCoeff_X_sub_C + theorem Polynomial.leadingCoeff_add_of_degree_eq + theorem Polynomial.leadingCoeff_add_of_degree_lt' + theorem Polynomial.leadingCoeff_add_of_degree_lt + theorem Polynomial.leadingCoeff_dvd_leadingCoeff + theorem Polynomial.leadingCoeff_monic_mul + theorem Polynomial.leadingCoeff_mul' + theorem Polynomial.leadingCoeff_mul + theorem Polynomial.leadingCoeff_mul_X + theorem Polynomial.leadingCoeff_mul_X_pow + theorem Polynomial.leadingCoeff_mul_monic + theorem Polynomial.leadingCoeff_pow' + theorem Polynomial.leadingCoeff_pow + theorem Polynomial.leadingCoeff_pow_X_add_C + theorem Polynomial.leadingCoeff_sub_of_degree_eq + theorem Polynomial.leadingCoeff_sub_of_degree_lt' + theorem Polynomial.leadingCoeff_sub_of_degree_lt + theorem Polynomial.monic_of_degree_le_of_coeff_eq_one + theorem Polynomial.monic_of_natDegree_le_of_coeff_eq_one + theorem Polynomial.monic_of_subsingleton + theorem Polynomial.natDegree_C_add + theorem Polynomial.natDegree_X_add_C + theorem Polynomial.natDegree_X_mul + theorem Polynomial.natDegree_X_pow_add_C + theorem Polynomial.natDegree_X_pow_le + theorem Polynomial.natDegree_X_pow_mul + theorem Polynomial.natDegree_X_pow_sub_C + theorem Polynomial.natDegree_X_sub_C + theorem Polynomial.natDegree_add_C + theorem Polynomial.natDegree_add_eq_left_of_degree_lt + theorem Polynomial.natDegree_add_eq_left_of_natDegree_lt + theorem Polynomial.natDegree_add_eq_right_of_degree_lt + theorem Polynomial.natDegree_add_eq_right_of_natDegree_lt + theorem Polynomial.natDegree_eq_of_le_of_coeff_ne_zero + theorem Polynomial.natDegree_eq_of_natDegree_add_eq_zero + theorem Polynomial.natDegree_eq_of_natDegree_add_lt_left + theorem Polynomial.natDegree_eq_of_natDegree_add_lt_right + theorem Polynomial.natDegree_eq_zero + theorem Polynomial.natDegree_lt_natDegree + theorem Polynomial.natDegree_lt_natDegree_iff + theorem Polynomial.natDegree_mul' + theorem Polynomial.natDegree_mul_X + theorem Polynomial.natDegree_mul_X_pow + theorem Polynomial.natDegree_of_subsingleton + theorem Polynomial.natDegree_pow' + theorem Polynomial.natDegree_smul_le + theorem Polynomial.natDegree_sub_C + theorem Polynomial.natDegree_sub_eq_left_of_natDegree_lt + theorem Polynomial.natDegree_sub_eq_right_of_natDegree_lt + theorem Polynomial.ne_zero_of_degree_ge_degree + theorem Polynomial.ne_zero_of_degree_gt + theorem Polynomial.ne_zero_of_natDegree_gt + theorem Polynomial.nextCoeff_X_add_C + theorem Polynomial.nextCoeff_X_sub_C + theorem Polynomial.not_isUnit_X + theorem Polynomial.supDegree_eq_degree + theorem Polynomial.zero_nmem_multiset_map_X_add_C + theorem Polynomial.zero_nmem_multiset_map_X_sub_C Added Mathlib/Algebra/Polynomial/Degree/SmallDegree.lean + theorem Polynomial.Monic.eq_X_add_C + theorem Polynomial.degree_cubic + theorem Polynomial.degree_cubic_le + theorem Polynomial.degree_cubic_lt + theorem Polynomial.degree_linear + theorem Polynomial.degree_linear_le + theorem Polynomial.degree_linear_lt + theorem Polynomial.degree_linear_lt_degree_C_mul_X_sq + theorem Polynomial.degree_quadratic + theorem Polynomial.degree_quadratic_le + theorem Polynomial.degree_quadratic_lt + theorem Polynomial.degree_quadratic_lt_degree_C_mul_X_cb + theorem Polynomial.eq_X_add_C_of_degree_eq_one + theorem Polynomial.eq_X_add_C_of_degree_le_one + theorem Polynomial.eq_X_add_C_of_natDegree_le_one + theorem Polynomial.exists_eq_X_add_C_of_natDegree_le_one + theorem Polynomial.le_natDegree_of_coe_le_degree + theorem Polynomial.leadingCoeff_cubic + theorem Polynomial.leadingCoeff_linear + theorem Polynomial.leadingCoeff_quadratic + theorem Polynomial.natDegree_cubic + theorem Polynomial.natDegree_cubic_le + theorem Polynomial.natDegree_linear + theorem Polynomial.natDegree_linear_le + theorem Polynomial.natDegree_quadratic + theorem Polynomial.natDegree_quadratic_le + theorem Polynomial.ne_zero_of_coe_le_degree + theorem Polynomial.zero_le_degree_iff Added Mathlib/Algebra/Polynomial/Degree/Support.lean + theorem Polynomial.as_sum_range' + theorem Polynomial.as_sum_range + theorem Polynomial.as_sum_range_C_mul_X_pow + theorem Polynomial.as_sum_support + theorem Polynomial.as_sum_support_C_mul_X_pow + theorem Polynomial.card_supp_le_succ_natDegree + theorem Polynomial.card_support_C_mul_X_pow_le_one + theorem Polynomial.le_degree_of_mem_supp + theorem Polynomial.le_natDegree_of_mem_supp + theorem Polynomial.mem_support_C_mul_X_pow + theorem Polynomial.natDegree_eq_support_max' + theorem Polynomial.natDegree_mem_support_of_nonzero + theorem Polynomial.nonempty_support_iff + theorem Polynomial.sum_fin + theorem Polynomial.sum_over_range' + theorem Polynomial.sum_over_range + theorem Polynomial.supDegree_eq_natDegree + theorem Polynomial.supp_subset_range + theorem Polynomial.supp_subset_range_natDegree_succ Modified Mathlib/Algebra/Polynomial/Degree/TrailingDegree.lean Added Mathlib/Algebra/Polynomial/Degree/Units.lean + theorem Polynomial.Monic.C_dvd_iff_isUnit + theorem Polynomial.Monic.degree_pos_of_not_isUnit + theorem Polynomial.Monic.natDegree_pos_of_not_isUnit + theorem Polynomial.coeff_coe_units_zero_ne_zero + theorem Polynomial.degree_coe_units + theorem Polynomial.degree_eq_zero_of_isUnit + theorem Polynomial.degree_pos_of_not_isUnit_of_dvd_monic + theorem Polynomial.isUnit_iff + theorem Polynomial.natDegree_coe_units + theorem Polynomial.natDegree_eq_zero_of_isUnit + theorem Polynomial.natDegree_pos_of_not_isUnit_of_dvd_monic + theorem Polynomial.not_isUnit_of_degree_pos + theorem Polynomial.not_isUnit_of_natDegree_pos Modified Mathlib/Algebra/Polynomial/EraseLead.lean Modified Mathlib/Algebra/Polynomial/Eval.lean Modified Mathlib/Algebra/Polynomial/Inductions.lean Modified Mathlib/FieldTheory/RatFunc/Defs.lean Modified Mathlib/RingTheory/Polynomial/Opposites.lean 2024-11-15 09:26:03 15661bf feat(CI, tech debt): add absolute vs relative tech debt change (#19070) Reports the tech debt summary as ``` Increase in tech debt: (relative, absolute) = (1.00, 0.15) ``` where * 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). ESTIMATED CHANGES Modified scripts/technical-debt-metrics.sh 2024-11-15 09:12:51 80126d5 feat(RingTheory/AlgebraicIndependent): add `AlgebraicIndependent.aevalEquivField` and other results (#18648) This PR mainly adds - `AlgebraicIndependent.aevalEquivField`: canonical isomorphism between rational function field and the intermediate field generated by algebraically independent elements. - `AlgebraicIndependent.reprField`: canonical map from the intermediate field generated by an algebraic independent family into the rational function field. Other results: - `AlgebraicIndependent.aeval_of_algebraicIndependent`: if `x = {x_i : A | i : ι}` and `f = {f_i : MvPolynomial ι R | i : ι}` are algebraically independent over `R`, then `{f_i(x) | i : ι}` is also algebraically independent over `R`. - `AlgebraicIndependent.of_aeval`: conversely, if `{f_i(x) | i : ι}` is algebraically independent over `R`, then `{f_i : MvPolynomial ι R | i : ι}` is also algebraically independent over `R`. - `AlgebraicIndependent.polynomial_aeval_of_transcendental`: if `{x_i : A | i : ι}` is algebraically independent over `R`, and for each `i`, `f_i : R[X]` is transcendental over `R`, then `{f_i(x_i) | i : ι}` is also algebraically independent over `R`. - `AlgebraicIndependent.isEmpty_of_isAlgebraic`: if `A/R` is algebraic, then all algebraically independent families are empty. - `IsTranscendenceBasis.isEmpty_iff_isAlgebraic`: if `x` is a transcendence basis of `A/R`, then it is empty if and only if `A/R` is algebraic. - `IsTranscendenceBasis.nonempty_iff_transcendental`: if `x` is a transcendence basis of `A/R`, then it is not empty if and only if `A/R` is transcendental. - `IsTranscendenceBasis.isAlgebraic_field`: if `x` is a transcendence basis of `E / F`, then the field extension `E / F(x)` is algebraic. Also add `[of_]ringHom_of_comp_eq` for `[Algebra.]Transcendental` and `AlgebraicIndependent`. Also add some results for `Subalgebra` inspired by `IntermediateField.isAlgebraic_iff`. Some of them are not back-ported to `IntermediateField` yet; may be for another PR if they are useful. ESTIMATED CHANGES Modified Mathlib/RingTheory/Algebraic.lean + theorem Algebra.Transcendental.of_ringHom_of_comp_eq + theorem Algebra.Transcendental.ringHom_of_comp_eq + theorem Algebra.isAlgebraic_ringHom_iff_of_comp_eq + theorem Algebra.transcendental_ringHom_iff_of_comp_eq + theorem Subalgebra.algebra_isAlgebraic_bot_left_iff + theorem Subalgebra.algebra_isAlgebraic_of_algebra_isAlgebraic_bot_left + theorem Subalgebra.isAlgebraic_bot_iff + theorem Subalgebra.isAlgebraic_iff_isAlgebraic_val + theorem Subalgebra.isAlgebraic_of_isAlgebraic_bot + theorem Transcendental.of_ringHom_of_comp_eq + theorem Transcendental.ringHom_of_comp_eq - theorem algebra_isAlgebraic_ringHom_iff_of_comp_eq + theorem transcendental_ringHom_iff_of_comp_eq Modified Mathlib/RingTheory/AlgebraicIndependent.lean +/- def AlgebraicIndependent.aevalEquiv + def AlgebraicIndependent.aevalEquivField + theorem AlgebraicIndependent.aevalEquivField_algebraMap_apply_coe + theorem AlgebraicIndependent.aevalEquivField_apply_coe +/- theorem AlgebraicIndependent.aeval_comp_repr + theorem AlgebraicIndependent.aeval_of_algebraicIndependent +/- theorem AlgebraicIndependent.aeval_repr +/- theorem AlgebraicIndependent.algebraMap_aevalEquiv + theorem AlgebraicIndependent.isEmpty_of_isAlgebraic + theorem AlgebraicIndependent.liftAlgHom_comp_reprField + theorem AlgebraicIndependent.lift_reprField + theorem AlgebraicIndependent.of_aeval + theorem AlgebraicIndependent.of_ringHom_of_comp_eq + theorem AlgebraicIndependent.polynomial_aeval_of_transcendental +/- def AlgebraicIndependent.repr + def AlgebraicIndependent.reprField +/- theorem AlgebraicIndependent.repr_ker + theorem AlgebraicIndependent.ringHom_of_comp_eq + theorem IsTranscendenceBasis.isAlgebraic_field + theorem IsTranscendenceBasis.isEmpty_iff_isAlgebraic + theorem IsTranscendenceBasis.nonempty_iff_transcendental +/- theorem MvPolynomial.algebraicIndependent_X + theorem algebraicIndependent_ringHom_iff_of_comp_eq 2024-11-15 08:04:39 3805203 doc: add adomani to maintainer list in README.md (#19072) ESTIMATED CHANGES Modified README.md 2024-11-15 07:09:36 b4c2e26 chore: replace all #NNN tags with unambiguous URLs (#19063) I find it perpetually frustrating that I can't click on these. Normalising all these as URLs also opens the opportunity for scripts to parse them (e.g. identifying links to closed issues). ESTIMATED CHANGES Modified Archive/Arithcc.lean Modified Archive/Imo/Imo1998Q2.lean Modified Counterexamples/DirectSumIsInternal.lean Modified Counterexamples/Pseudoelement.lean Modified Mathlib/Algebra/AddTorsor.lean Modified Mathlib/Algebra/Algebra/Basic.lean Modified Mathlib/Algebra/Algebra/Defs.lean Modified Mathlib/Algebra/Algebra/Hom.lean Modified Mathlib/Algebra/Algebra/Operations.lean Modified Mathlib/Algebra/Algebra/Subalgebra/Basic.lean Modified Mathlib/Algebra/Algebra/Subalgebra/Directed.lean Modified Mathlib/Algebra/Algebra/Tower.lean Modified Mathlib/Algebra/Category/AlgebraCat/Basic.lean Modified Mathlib/Algebra/Category/FGModuleCat/Basic.lean Modified Mathlib/Algebra/Category/Grp/Adjunctions.lean Modified Mathlib/Algebra/Category/Grp/Basic.lean Modified Mathlib/Algebra/Category/Grp/Limits.lean Modified Mathlib/Algebra/Category/Grp/Preadditive.lean Modified Mathlib/Algebra/Category/ModuleCat/Adjunctions.lean Modified Mathlib/Algebra/Category/ModuleCat/Basic.lean Modified Mathlib/Algebra/Category/ModuleCat/ChangeOfRings.lean Modified Mathlib/Algebra/Category/ModuleCat/Colimits.lean Modified Mathlib/Algebra/Category/ModuleCat/FilteredColimits.lean Modified Mathlib/Algebra/Category/ModuleCat/Kernels.lean Modified Mathlib/Algebra/Category/ModuleCat/Monoidal/Basic.lean Modified Mathlib/Algebra/Category/ModuleCat/Monoidal/Closed.lean Modified Mathlib/Algebra/Category/ModuleCat/Projective.lean Modified Mathlib/Algebra/Category/ModuleCat/Subobject.lean Modified Mathlib/Algebra/Category/MonCat/Basic.lean Modified Mathlib/Algebra/Category/MonCat/FilteredColimits.lean Modified Mathlib/Algebra/Category/Ring/Basic.lean Modified Mathlib/Algebra/Category/Ring/Colimits.lean Modified Mathlib/Algebra/Category/Ring/Constructions.lean Modified Mathlib/Algebra/CharP/Defs.lean Modified Mathlib/Algebra/ContinuedFractions/Translations.lean Modified Mathlib/Algebra/DirectLimit.lean Modified Mathlib/Algebra/DirectSum/Basic.lean Modified Mathlib/Algebra/DirectSum/Module.lean Modified Mathlib/Algebra/DirectSum/Ring.lean Modified Mathlib/Algebra/FreeAlgebra.lean Modified Mathlib/Algebra/GCDMonoid/Basic.lean Modified Mathlib/Algebra/Group/Defs.lean Modified Mathlib/Algebra/Group/Equiv/Basic.lean Modified Mathlib/Algebra/Group/Subgroup/Defs.lean Modified Mathlib/Algebra/Group/Submonoid/Membership.lean Modified Mathlib/Algebra/Group/Units/Defs.lean Modified Mathlib/Algebra/GroupPower/IterateHom.lean Modified Mathlib/Algebra/Homology/Augment.lean Modified Mathlib/Algebra/Homology/Homotopy.lean Modified Mathlib/Algebra/Homology/LocalCohomology.lean Modified Mathlib/Algebra/Lie/Classical.lean Modified Mathlib/Algebra/Lie/DirectSum.lean Modified Mathlib/Algebra/Lie/Engel.lean Modified Mathlib/Algebra/Lie/Submodule.lean Modified Mathlib/Algebra/Lie/UniversalEnveloping.lean Modified Mathlib/Algebra/Module/Equiv/Defs.lean Modified Mathlib/Algebra/Module/LinearMap/Defs.lean Modified Mathlib/Algebra/Module/LocalizedModule/Basic.lean Modified Mathlib/Algebra/Module/Projective.lean Modified Mathlib/Algebra/Module/Submodule/EqLocus.lean Modified Mathlib/Algebra/Module/Submodule/Map.lean Modified Mathlib/Algebra/Module/Torsion.lean Modified Mathlib/Algebra/Module/ULift.lean Modified Mathlib/Algebra/MonoidAlgebra/Basic.lean Modified Mathlib/Algebra/MonoidAlgebra/Defs.lean Modified Mathlib/Algebra/MonoidAlgebra/Division.lean Modified Mathlib/Algebra/MonoidAlgebra/ToDirectSum.lean Modified Mathlib/Algebra/MvPolynomial/Basic.lean Modified Mathlib/Algebra/MvPolynomial/Rename.lean Modified Mathlib/Algebra/Opposites.lean Modified Mathlib/Algebra/Order/BigOperators/Group/Finset.lean Modified Mathlib/Algebra/Order/CompleteField.lean Modified Mathlib/Algebra/Order/Group/Defs.lean Modified Mathlib/Algebra/Order/Hom/Monoid.lean Modified Mathlib/Algebra/Order/Hom/Ring.lean Modified Mathlib/Algebra/Order/Monoid/Prod.lean Modified Mathlib/Algebra/Order/Ring/Unbundled/Rat.lean Modified Mathlib/Algebra/Order/Ring/WithTop.lean Modified Mathlib/Algebra/Polynomial/Basic.lean Modified Mathlib/Algebra/Polynomial/Laurent.lean Modified Mathlib/Algebra/Polynomial/SumIteratedDerivative.lean Modified Mathlib/Algebra/Ring/BooleanRing.lean Modified Mathlib/Algebra/Ring/Defs.lean Modified Mathlib/Algebra/Ring/Subring/Basic.lean Modified Mathlib/Algebra/Ring/Subring/Defs.lean Modified Mathlib/Algebra/Ring/Subsemiring/Basic.lean Modified Mathlib/Algebra/SkewMonoidAlgebra/Basic.lean Modified Mathlib/Algebra/Star/Basic.lean Modified Mathlib/Algebra/Star/CHSH.lean Modified Mathlib/Algebra/Star/Module.lean Modified Mathlib/Algebra/Symmetrized.lean Modified Mathlib/Algebra/Vertex/HVertexOperator.lean Modified Mathlib/AlgebraicGeometry/AffineScheme.lean Modified Mathlib/AlgebraicGeometry/Cover/Open.lean Modified Mathlib/AlgebraicGeometry/FunctionField.lean Modified Mathlib/AlgebraicGeometry/GammaSpecAdjunction.lean Modified Mathlib/AlgebraicGeometry/Gluing.lean Modified Mathlib/AlgebraicGeometry/Morphisms/OpenImmersion.lean Modified Mathlib/AlgebraicGeometry/Morphisms/RingHomProperties.lean Modified Mathlib/AlgebraicGeometry/OpenImmersion.lean Modified Mathlib/AlgebraicGeometry/ProjectiveSpectrum/StructureSheaf.lean Modified Mathlib/AlgebraicGeometry/ProjectiveSpectrum/Topology.lean Modified Mathlib/AlgebraicGeometry/Properties.lean Modified Mathlib/AlgebraicGeometry/Restrict.lean Modified Mathlib/AlgebraicGeometry/Scheme.lean Modified Mathlib/AlgebraicGeometry/Spec.lean Modified Mathlib/AlgebraicGeometry/StructureSheaf.lean Modified Mathlib/AlgebraicTopology/CechNerve.lean Modified Mathlib/AlgebraicTopology/DoldKan/Decomposition.lean Modified Mathlib/AlgebraicTopology/ExtraDegeneracy.lean Modified Mathlib/AlgebraicTopology/FundamentalGroupoid/InducedMaps.lean Modified Mathlib/AlgebraicTopology/SimplexCategory.lean Modified Mathlib/AlgebraicTopology/SimplicialObject.lean Modified Mathlib/AlgebraicTopology/SplitSimplicialObject.lean Modified Mathlib/Analysis/Analytic/Inverse.lean Modified Mathlib/Analysis/Asymptotics/Theta.lean Modified Mathlib/Analysis/CStarAlgebra/Basic.lean Modified Mathlib/Analysis/Calculus/BumpFunction/Basic.lean Modified Mathlib/Analysis/Calculus/ContDiff/Basic.lean Modified Mathlib/Analysis/Calculus/FDeriv/Bilinear.lean Modified Mathlib/Analysis/Calculus/Implicit.lean Modified Mathlib/Analysis/Complex/Conformal.lean Modified Mathlib/Analysis/Fourier/AddCircle.lean Modified Mathlib/Analysis/InnerProductSpace/Adjoint.lean Modified Mathlib/Analysis/InnerProductSpace/PiL2.lean Modified Mathlib/Analysis/InnerProductSpace/Projection.lean Modified Mathlib/Analysis/InnerProductSpace/Rayleigh.lean Modified Mathlib/Analysis/MeanInequalities.lean Modified Mathlib/Analysis/Normed/Algebra/Unitization.lean Modified Mathlib/Analysis/Normed/Group/ControlledClosure.lean Modified Mathlib/Analysis/Normed/Group/Quotient.lean Modified Mathlib/Analysis/Normed/Group/SemiNormedGrp.lean Modified Mathlib/Analysis/Normed/Group/SemiNormedGrp/Completion.lean Modified Mathlib/Analysis/Normed/Group/SemiNormedGrp/Kernels.lean Modified Mathlib/Analysis/Normed/Lp/lpSpace.lean Modified Mathlib/Analysis/Normed/Module/Dual.lean Modified Mathlib/Analysis/Normed/Operator/BoundedLinearMaps.lean Modified Mathlib/Analysis/Normed/Operator/LinearIsometry.lean Modified Mathlib/Analysis/NormedSpace/Extend.lean Modified Mathlib/Analysis/NormedSpace/HahnBanach/Extension.lean Modified Mathlib/Analysis/NormedSpace/HahnBanach/SeparatingDual.lean Modified Mathlib/Analysis/NormedSpace/PiTensorProduct/InjectiveSeminorm.lean Modified Mathlib/Analysis/Quaternion.lean Modified Mathlib/Analysis/RCLike/Basic.lean Modified Mathlib/Analysis/Seminorm.lean Modified Mathlib/Analysis/SpecialFunctions/Exponential.lean Modified Mathlib/Analysis/SpecialFunctions/Log/Deriv.lean Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Angle.lean Modified Mathlib/CategoryTheory/Abelian/Pseudoelements.lean Modified Mathlib/CategoryTheory/Adjunction/Basic.lean Modified Mathlib/CategoryTheory/Adjunction/Evaluation.lean Modified Mathlib/CategoryTheory/Adjunction/Lifting/Left.lean Modified Mathlib/CategoryTheory/Adjunction/Restrict.lean Modified Mathlib/CategoryTheory/Bicategory/Free.lean Modified Mathlib/CategoryTheory/Bicategory/Functor/Oplax.lean Modified Mathlib/CategoryTheory/Category/PartialFun.lean Modified Mathlib/CategoryTheory/Closed/Cartesian.lean Modified Mathlib/CategoryTheory/Closed/Functor.lean Modified Mathlib/CategoryTheory/Closed/Monoidal.lean Modified Mathlib/CategoryTheory/CommSq.lean Modified Mathlib/CategoryTheory/Comma/Arrow.lean Modified Mathlib/CategoryTheory/Comma/StructuredArrow/Basic.lean Modified Mathlib/CategoryTheory/Conj.lean Modified Mathlib/CategoryTheory/Core.lean Modified Mathlib/CategoryTheory/DifferentialObject.lean Modified Mathlib/CategoryTheory/Endomorphism.lean Modified Mathlib/CategoryTheory/Enriched/Basic.lean Modified Mathlib/CategoryTheory/EpiMono.lean Modified Mathlib/CategoryTheory/EssentiallySmall.lean Modified Mathlib/CategoryTheory/FinCategory/Basic.lean Modified Mathlib/CategoryTheory/FintypeCat.lean Modified Mathlib/CategoryTheory/FullSubcategory.lean Modified Mathlib/CategoryTheory/GlueData.lean Modified Mathlib/CategoryTheory/GradedObject.lean Modified Mathlib/CategoryTheory/Grothendieck.lean Modified Mathlib/CategoryTheory/Idempotents/Karoubi.lean Modified Mathlib/CategoryTheory/Idempotents/KaroubiKaroubi.lean Modified Mathlib/CategoryTheory/Limits/Constructions/Over/Products.lean Modified Mathlib/CategoryTheory/Limits/ExactFunctor.lean Modified Mathlib/CategoryTheory/Limits/FilteredColimitCommutesFiniteLimit.lean Modified Mathlib/CategoryTheory/Limits/HasLimits.lean Modified Mathlib/CategoryTheory/Limits/IsLimit.lean Modified Mathlib/CategoryTheory/Limits/Preserves/Finite.lean Modified Mathlib/CategoryTheory/Limits/Shapes/BinaryProducts.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Biproducts.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Multiequalizer.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Products.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Types.lean Modified Mathlib/CategoryTheory/Limits/Types.lean Modified Mathlib/CategoryTheory/Localization/Construction.lean Modified Mathlib/CategoryTheory/Monad/Algebra.lean Modified Mathlib/CategoryTheory/Monad/Basic.lean Modified Mathlib/CategoryTheory/Monad/Monadicity.lean Modified Mathlib/CategoryTheory/Monoidal/Center.lean Modified Mathlib/CategoryTheory/Monoidal/CommMon_.lean Modified Mathlib/CategoryTheory/Monoidal/Free/Basic.lean Modified Mathlib/CategoryTheory/Monoidal/Free/Coherence.lean Modified Mathlib/CategoryTheory/Monoidal/Internal/Module.lean Modified Mathlib/CategoryTheory/Monoidal/Mon_.lean Modified Mathlib/CategoryTheory/Monoidal/OfChosenFiniteProducts/Basic.lean Modified Mathlib/CategoryTheory/Monoidal/Opposite.lean Modified Mathlib/CategoryTheory/MorphismProperty/IsInvertedBy.lean Modified Mathlib/CategoryTheory/PathCategory/Basic.lean Modified Mathlib/CategoryTheory/Preadditive/AdditiveFunctor.lean Modified Mathlib/CategoryTheory/Preadditive/InjectiveResolution.lean Modified Mathlib/CategoryTheory/Preadditive/Mat.lean Modified Mathlib/CategoryTheory/Preadditive/Projective.lean Modified Mathlib/CategoryTheory/Preadditive/ProjectiveResolution.lean Modified Mathlib/CategoryTheory/Preadditive/Yoneda/Basic.lean Modified Mathlib/CategoryTheory/Shift/Basic.lean Modified Mathlib/CategoryTheory/Sites/Adjunction.lean Modified Mathlib/CategoryTheory/Sites/CompatiblePlus.lean Modified Mathlib/CategoryTheory/Sites/ConcreteSheafification.lean Modified Mathlib/CategoryTheory/Sites/CoverLifting.lean Modified Mathlib/CategoryTheory/Sites/CoverPreserving.lean Modified Mathlib/CategoryTheory/Sites/DenseSubsite.lean Modified Mathlib/CategoryTheory/Sites/EqualizerSheafCondition.lean Modified Mathlib/CategoryTheory/Sites/Grothendieck.lean Modified Mathlib/CategoryTheory/Sites/Pretopology.lean Modified Mathlib/CategoryTheory/Sites/Sheaf.lean Modified Mathlib/CategoryTheory/Sites/SheafOfTypes.lean Modified Mathlib/CategoryTheory/Subobject/Comma.lean Modified Mathlib/CategoryTheory/Types.lean Modified Mathlib/CategoryTheory/Widesubcategory.lean Modified Mathlib/CategoryTheory/WithTerminal.lean Modified Mathlib/Combinatorics/Configuration.lean Modified Mathlib/Combinatorics/Enumerative/Partition.lean Modified Mathlib/Combinatorics/Quiver/Basic.lean Modified Mathlib/Combinatorics/Quiver/Covering.lean Modified Mathlib/Combinatorics/Quiver/Path.lean Modified Mathlib/Combinatorics/SimpleGraph/AdjMatrix.lean Modified Mathlib/Combinatorics/SimpleGraph/Clique.lean Modified Mathlib/Combinatorics/SimpleGraph/Matching.lean Modified Mathlib/Combinatorics/SimpleGraph/Regularity/Chunk.lean Modified Mathlib/Combinatorics/SimpleGraph/Regularity/Equitabilise.lean Modified Mathlib/Combinatorics/Young/YoungDiagram.lean Modified Mathlib/Computability/TuringMachine.lean Modified Mathlib/Data/Analysis/Filter.lean Modified Mathlib/Data/Analysis/Topology.lean Modified Mathlib/Data/Complex/Basic.lean Modified Mathlib/Data/Complex/Exponential.lean Modified Mathlib/Data/Complex/Module.lean Modified Mathlib/Data/DFinsupp/Order.lean Modified Mathlib/Data/ENNReal/Basic.lean Modified Mathlib/Data/ENNReal/Operations.lean Modified Mathlib/Data/ENNReal/Real.lean Modified Mathlib/Data/FP/Basic.lean Modified Mathlib/Data/Fin/Tuple/Basic.lean Modified Mathlib/Data/Fin/Tuple/Sort.lean Modified Mathlib/Data/Finset/Defs.lean Modified Mathlib/Data/Finsupp/Basic.lean Modified Mathlib/Data/Finsupp/Defs.lean Modified Mathlib/Data/Fintype/Basic.lean Modified Mathlib/Data/Fintype/Card.lean Modified Mathlib/Data/FunLike/Basic.lean Modified Mathlib/Data/Int/Bitwise.lean Modified Mathlib/Data/Int/Interval.lean Modified Mathlib/Data/Int/ModEq.lean Modified Mathlib/Data/List/Cycle.lean Modified Mathlib/Data/List/Nodup.lean Modified Mathlib/Data/List/Range.lean Modified Mathlib/Data/List/Rotate.lean Modified Mathlib/Data/List/ToFinsupp.lean Modified Mathlib/Data/Matrix/Basis.lean Modified Mathlib/Data/Matrix/Block.lean Modified Mathlib/Data/Matrix/Defs.lean Modified Mathlib/Data/Matrix/Diagonal.lean Modified Mathlib/Data/Matrix/Hadamard.lean Modified Mathlib/Data/Matrix/Kronecker.lean Modified Mathlib/Data/Matrix/Mul.lean Modified Mathlib/Data/Matrix/PEquiv.lean Modified Mathlib/Data/Matrix/Reflection.lean Modified Mathlib/Data/Matrix/RowCol.lean Modified Mathlib/Data/Multiset/Basic.lean Modified Mathlib/Data/Multiset/Bind.lean Modified Mathlib/Data/Multiset/Fintype.lean Modified Mathlib/Data/Multiset/Powerset.lean Modified Mathlib/Data/NNReal/Defs.lean Modified Mathlib/Data/Nat/Bitwise.lean Modified Mathlib/Data/Nat/Cast/Order/Basic.lean Modified Mathlib/Data/Nat/Defs.lean Modified Mathlib/Data/Nat/Digits.lean Modified Mathlib/Data/Nat/Log.lean Modified Mathlib/Data/Nat/PartENat.lean Modified Mathlib/Data/Nat/Prime/Basic.lean Modified Mathlib/Data/Option/Basic.lean Modified Mathlib/Data/Ordmap/Ordnode.lean Modified Mathlib/Data/Ordmap/Ordset.lean Modified Mathlib/Data/PFunctor/Multivariate/W.lean Modified Mathlib/Data/PFunctor/Univariate/Basic.lean Modified Mathlib/Data/PFunctor/Univariate/M.lean Modified Mathlib/Data/PNat/Prime.lean Modified Mathlib/Data/QPF/Univariate/Basic.lean Modified Mathlib/Data/Rat/Defs.lean Modified Mathlib/Data/Real/EReal.lean Modified Mathlib/Data/Real/Hyperreal.lean Modified Mathlib/Data/Real/Sqrt.lean Modified Mathlib/Data/Seq/Seq.lean Modified Mathlib/Data/Set/Basic.lean Modified Mathlib/Data/Set/Function.lean Modified Mathlib/Data/Set/Prod.lean Modified Mathlib/Data/Set/Semiring.lean Modified Mathlib/Data/Sign.lean Modified Mathlib/Data/Sum/Interval.lean Modified Mathlib/Data/Sym/Basic.lean Modified Mathlib/Data/Tree/Basic.lean Modified Mathlib/Data/ZMod/IntUnitsPower.lean Modified Mathlib/Dynamics/Ergodic/Ergodic.lean Modified Mathlib/FieldTheory/AbelRuffini.lean Modified Mathlib/FieldTheory/Adjoin.lean Modified Mathlib/FieldTheory/IntermediateField/Basic.lean Modified Mathlib/FieldTheory/IsAlgClosed/AlgebraicClosure.lean Modified Mathlib/FieldTheory/IsAlgClosed/Basic.lean Modified Mathlib/FieldTheory/IsSepClosed.lean Modified Mathlib/FieldTheory/PerfectClosure.lean Modified Mathlib/FieldTheory/SplittingField/Construction.lean Modified Mathlib/Geometry/Euclidean/Angle/Oriented/Basic.lean Modified Mathlib/Geometry/Euclidean/Circumcenter.lean Modified Mathlib/Geometry/Euclidean/Inversion/Basic.lean Modified Mathlib/Geometry/Euclidean/Inversion/Calculus.lean Modified Mathlib/Geometry/Euclidean/MongePoint.lean Modified Mathlib/Geometry/Euclidean/Triangle.lean Modified Mathlib/Geometry/Manifold/Algebra/LeftInvariantDerivation.lean Modified Mathlib/Geometry/Manifold/Algebra/SmoothFunctions.lean Modified Mathlib/Geometry/Manifold/ChartedSpace.lean Modified Mathlib/Geometry/Manifold/Diffeomorph.lean Modified Mathlib/Geometry/Manifold/Instances/Sphere.lean Modified Mathlib/Geometry/Manifold/MFDeriv/Basic.lean Modified Mathlib/Geometry/Manifold/PartitionOfUnity.lean Modified Mathlib/Geometry/Manifold/Sheaf/LocallyRingedSpace.lean Modified Mathlib/Geometry/Manifold/SmoothManifoldWithCorners.lean Modified Mathlib/Geometry/Manifold/VectorBundle/Basic.lean Modified Mathlib/Geometry/Manifold/VectorBundle/Hom.lean Modified Mathlib/Geometry/RingedSpace/LocallyRingedSpace.lean Modified Mathlib/Geometry/RingedSpace/LocallyRingedSpace/HasColimits.lean Modified Mathlib/Geometry/RingedSpace/OpenImmersion.lean Modified Mathlib/Geometry/RingedSpace/PresheafedSpace.lean Modified Mathlib/Geometry/RingedSpace/PresheafedSpace/Gluing.lean Modified Mathlib/Geometry/RingedSpace/PresheafedSpace/HasColimits.lean Modified Mathlib/Geometry/RingedSpace/Stalks.lean Modified Mathlib/GroupTheory/Complement.lean Modified Mathlib/GroupTheory/Congruence/Defs.lean Modified Mathlib/GroupTheory/CoprodI.lean Modified Mathlib/GroupTheory/FreeGroup/NielsenSchreier.lean Modified Mathlib/GroupTheory/GroupAction/ConjAct.lean Modified Mathlib/GroupTheory/GroupAction/Hom.lean Modified Mathlib/GroupTheory/GroupAction/Pointwise.lean Modified Mathlib/GroupTheory/GroupAction/SubMulAction.lean Modified Mathlib/GroupTheory/HNNExtension.lean Modified Mathlib/GroupTheory/MonoidLocalization/Basic.lean Modified Mathlib/GroupTheory/MonoidLocalization/MonoidWithZero.lean Modified Mathlib/GroupTheory/OrderOfElement.lean Modified Mathlib/GroupTheory/OreLocalization/Basic.lean Modified Mathlib/GroupTheory/Perm/Cycle/Basic.lean Modified Mathlib/GroupTheory/Perm/Finite.lean Modified Mathlib/GroupTheory/Perm/Support.lean Modified Mathlib/GroupTheory/SpecificGroups/Alternating.lean Modified Mathlib/GroupTheory/SpecificGroups/Cyclic.lean Modified Mathlib/GroupTheory/Submonoid/Inverses.lean Modified Mathlib/GroupTheory/Transfer.lean Modified Mathlib/InformationTheory/Hamming.lean Modified Mathlib/LinearAlgebra/AffineSpace/AffineEquiv.lean Modified Mathlib/LinearAlgebra/AffineSpace/Independent.lean Modified Mathlib/LinearAlgebra/Alternating/DomCoprod.lean Modified Mathlib/LinearAlgebra/Basis/Defs.lean Modified Mathlib/LinearAlgebra/BilinearForm/Properties.lean Modified Mathlib/LinearAlgebra/BilinearForm/TensorProduct.lean Modified Mathlib/LinearAlgebra/BilinearMap.lean Modified Mathlib/LinearAlgebra/CliffordAlgebra/BaseChange.lean Modified Mathlib/LinearAlgebra/CliffordAlgebra/Basic.lean Modified Mathlib/LinearAlgebra/CliffordAlgebra/Equivs.lean Modified Mathlib/LinearAlgebra/CliffordAlgebra/Even.lean Modified Mathlib/LinearAlgebra/CliffordAlgebra/EvenEquiv.lean Modified Mathlib/LinearAlgebra/CliffordAlgebra/Grading.lean Modified Mathlib/LinearAlgebra/DFinsupp.lean Modified Mathlib/LinearAlgebra/Dual.lean Modified Mathlib/LinearAlgebra/FreeModule/Norm.lean Modified Mathlib/LinearAlgebra/FreeModule/PID.lean Modified Mathlib/LinearAlgebra/Isomorphisms.lean Modified Mathlib/LinearAlgebra/LinearIndependent.lean Modified Mathlib/LinearAlgebra/LinearPMap.lean Modified Mathlib/LinearAlgebra/Matrix/Circulant.lean Modified Mathlib/LinearAlgebra/Matrix/Determinant/Basic.lean Modified Mathlib/LinearAlgebra/Matrix/Hermitian.lean Modified Mathlib/LinearAlgebra/Matrix/MvPolynomial.lean Modified Mathlib/LinearAlgebra/Matrix/SpecialLinearGroup.lean Modified Mathlib/LinearAlgebra/Matrix/Trace.lean Modified Mathlib/LinearAlgebra/Matrix/Transvection.lean Modified Mathlib/LinearAlgebra/PiTensorProduct.lean Modified Mathlib/LinearAlgebra/Prod.lean Modified Mathlib/LinearAlgebra/QuadraticForm/IsometryEquiv.lean Modified Mathlib/LinearAlgebra/QuadraticForm/TensorProduct.lean Modified Mathlib/LinearAlgebra/Quotient/Defs.lean Modified Mathlib/LinearAlgebra/Ray.lean Modified Mathlib/LinearAlgebra/Span.lean Modified Mathlib/LinearAlgebra/TensorAlgebra/Basic.lean Modified Mathlib/LinearAlgebra/TensorAlgebra/Grading.lean Modified Mathlib/LinearAlgebra/TensorProduct/Graded/External.lean Modified Mathlib/LinearAlgebra/TensorProduct/Graded/Internal.lean Modified Mathlib/LinearAlgebra/TensorProduct/RightExactness.lean Modified Mathlib/LinearAlgebra/UnitaryGroup.lean Modified Mathlib/Logic/Basic.lean Modified Mathlib/Logic/Embedding/Basic.lean Modified Mathlib/Logic/Function/FiberPartition.lean Modified Mathlib/Logic/Small/Group.lean Modified Mathlib/MeasureTheory/Category/MeasCat.lean Modified Mathlib/MeasureTheory/Covering/VitaliFamily.lean Modified Mathlib/MeasureTheory/Function/L1Space.lean Modified Mathlib/MeasureTheory/Function/LpSpace.lean Modified Mathlib/MeasureTheory/Function/UniformIntegrable.lean Modified Mathlib/MeasureTheory/Group/Measure.lean Modified Mathlib/MeasureTheory/Integral/CircleIntegral.lean Modified Mathlib/MeasureTheory/Integral/IntervalIntegral.lean Modified Mathlib/MeasureTheory/Integral/TorusIntegral.lean Modified Mathlib/MeasureTheory/MeasurableSpace/Basic.lean Modified Mathlib/MeasureTheory/MeasurableSpace/Defs.lean Modified Mathlib/MeasureTheory/Measure/Haar/Disintegration.lean Modified Mathlib/MeasureTheory/Measure/Lebesgue/EqHaar.lean Modified Mathlib/MeasureTheory/Measure/MeasureSpace.lean Modified Mathlib/MeasureTheory/Measure/Typeclasses.lean Modified Mathlib/MeasureTheory/OuterMeasure/BorelCantelli.lean Modified Mathlib/MeasureTheory/PiSystem.lean Modified Mathlib/ModelTheory/Basic.lean Modified Mathlib/ModelTheory/DirectLimit.lean Modified Mathlib/ModelTheory/Fraisse.lean Modified Mathlib/ModelTheory/PartialEquiv.lean Modified Mathlib/ModelTheory/Semantics.lean Modified Mathlib/NumberTheory/ArithmeticFunction.lean Modified Mathlib/NumberTheory/Bertrand.lean Modified Mathlib/NumberTheory/ClassNumber/AdmissibleAbsoluteValue.lean Modified Mathlib/NumberTheory/Cyclotomic/Basic.lean Modified Mathlib/NumberTheory/Harmonic/ZetaAsymp.lean Modified Mathlib/NumberTheory/LegendreSymbol/AddCharacter.lean Modified Mathlib/NumberTheory/LegendreSymbol/QuadraticReciprocity.lean Modified Mathlib/NumberTheory/NumberField/Basic.lean Modified Mathlib/NumberTheory/Padics/RingHoms.lean Modified Mathlib/NumberTheory/PythagoreanTriples.lean Modified Mathlib/NumberTheory/Zsqrtd/QuadraticReciprocity.lean Modified Mathlib/Order/Basic.lean Modified Mathlib/Order/Category/CompleteLat.lean Modified Mathlib/Order/Category/OmegaCompletePartialOrder.lean Modified Mathlib/Order/Category/PartOrd.lean Modified Mathlib/Order/Category/Semilat.lean Modified Mathlib/Order/Filter/Germ/Basic.lean Modified Mathlib/Order/Filter/Pointwise.lean Modified Mathlib/Order/GaloisConnection.lean Modified Mathlib/Order/GameAdd.lean Modified Mathlib/Order/Hom/Basic.lean Modified Mathlib/Order/Hom/Bounded.lean Modified Mathlib/Order/Hom/Lattice.lean Modified Mathlib/Order/Ideal.lean Modified Mathlib/Order/Interval/Basic.lean Modified Mathlib/Order/Interval/Finset/Defs.lean Modified Mathlib/Order/Interval/Set/UnorderedInterval.lean Modified Mathlib/Order/JordanHolder.lean Modified Mathlib/Order/Nat.lean Modified Mathlib/Order/PrimeIdeal.lean Modified Mathlib/Order/SuccPred/Archimedean.lean Modified Mathlib/Order/TypeTags.lean Modified Mathlib/Order/UpperLower/Basic.lean Modified Mathlib/Order/WellFounded.lean Modified Mathlib/Probability/Kernel/Defs.lean Modified Mathlib/Probability/Kernel/MeasurableIntegral.lean Modified Mathlib/Probability/Kernel/WithDensity.lean Modified Mathlib/RepresentationTheory/Action/Basic.lean Modified Mathlib/RepresentationTheory/Action/Limits.lean Modified Mathlib/RepresentationTheory/Action/Monoidal.lean Modified Mathlib/RepresentationTheory/Basic.lean Modified Mathlib/RepresentationTheory/GroupCohomology/Basic.lean Modified Mathlib/RepresentationTheory/GroupCohomology/Resolution.lean Modified Mathlib/RepresentationTheory/Rep.lean Modified Mathlib/RingTheory/Artinian.lean Modified Mathlib/RingTheory/ClassGroup.lean Modified Mathlib/RingTheory/DedekindDomain/AdicValuation.lean Modified Mathlib/RingTheory/DedekindDomain/FiniteAdeleRing.lean Modified Mathlib/RingTheory/DedekindDomain/Ideal.lean Modified Mathlib/RingTheory/DedekindDomain/PID.lean Modified Mathlib/RingTheory/DedekindDomain/SelmerGroup.lean Modified Mathlib/RingTheory/Finiteness/Basic.lean Modified Mathlib/RingTheory/Flat/Basic.lean Modified Mathlib/RingTheory/GradedAlgebra/HomogeneousLocalization.lean Modified Mathlib/RingTheory/Ideal/Cotangent.lean Modified Mathlib/RingTheory/IntegralClosure/IntegrallyClosed.lean Modified Mathlib/RingTheory/IsAdjoinRoot.lean Modified Mathlib/RingTheory/IsPrimary.lean Modified Mathlib/RingTheory/IsTensorProduct.lean Modified Mathlib/RingTheory/Kaehler/Basic.lean Modified Mathlib/RingTheory/Localization/Integral.lean Modified Mathlib/RingTheory/Localization/Submodule.lean Modified Mathlib/RingTheory/MvPowerSeries/Basic.lean Modified Mathlib/RingTheory/MvPowerSeries/NoZeroDivisors.lean Modified Mathlib/RingTheory/Norm/Basic.lean Modified Mathlib/RingTheory/OreLocalization/Basic.lean Modified Mathlib/RingTheory/Perfection.lean Modified Mathlib/RingTheory/Polynomial/Bernstein.lean Modified Mathlib/RingTheory/Polynomial/Hermite/Gaussian.lean Modified Mathlib/RingTheory/PowerBasis.lean Modified Mathlib/RingTheory/PowerSeries/Basic.lean Modified Mathlib/RingTheory/PowerSeries/Order.lean Modified Mathlib/RingTheory/RingHom/Finite.lean Modified Mathlib/RingTheory/Smooth/Basic.lean Modified Mathlib/RingTheory/TensorProduct/Basic.lean Modified Mathlib/RingTheory/Trace/Basic.lean Modified Mathlib/RingTheory/Valuation/Basic.lean Modified Mathlib/RingTheory/Valuation/ValuationSubring.lean Modified Mathlib/RingTheory/WittVector/IsPoly.lean Modified Mathlib/RingTheory/WittVector/Isocrystal.lean Modified Mathlib/RingTheory/WittVector/StructurePolynomial.lean Modified Mathlib/SetTheory/Game/Basic.lean Modified Mathlib/SetTheory/Game/PGame.lean Modified Mathlib/SetTheory/Ordinal/Arithmetic.lean Modified Mathlib/SetTheory/Ordinal/Exponential.lean Modified Mathlib/SetTheory/Ordinal/Notation.lean Modified Mathlib/SetTheory/Ordinal/Topology.lean Modified Mathlib/Tactic/CategoryTheory/Coherence/Normalize.lean Modified Mathlib/Tactic/FunProp/RefinedDiscrTree.lean Modified Mathlib/Tactic/Linter/Header.lean Modified Mathlib/Tactic/Linter/PPRoundtrip.lean Modified Mathlib/Tactic/Module.lean Modified Mathlib/Tactic/Nontriviality/Core.lean Modified Mathlib/Tactic/NormNum/Basic.lean Modified Mathlib/Tactic/SuppressCompilation.lean Modified Mathlib/Tactic/ToAdditive/Frontend.lean Modified Mathlib/Tactic/Widget/StringDiagram.lean Modified Mathlib/Topology/Algebra/Algebra.lean Modified Mathlib/Topology/Algebra/ConstMulAction.lean Modified Mathlib/Topology/Algebra/Field.lean Modified Mathlib/Topology/Algebra/Group/Basic.lean Modified Mathlib/Topology/Algebra/Module/Basic.lean Modified Mathlib/Topology/Algebra/Order/Field.lean Modified Mathlib/Topology/Bases.lean Modified Mathlib/Topology/Category/CompHaus/Basic.lean Modified Mathlib/Topology/Category/CompHaus/Projective.lean Modified Mathlib/Topology/Category/CompHausLike/Basic.lean Modified Mathlib/Topology/Category/Compactum.lean Modified Mathlib/Topology/Category/LightProfinite/Basic.lean Modified Mathlib/Topology/Category/Profinite/AsLimit.lean Modified Mathlib/Topology/Category/Profinite/Basic.lean Modified Mathlib/Topology/Category/Profinite/CofilteredLimit.lean Modified Mathlib/Topology/Category/Profinite/Projective.lean Modified Mathlib/Topology/Category/Stonean/Basic.lean Modified Mathlib/Topology/Category/TopCat/Limits/Products.lean Modified Mathlib/Topology/Category/TopCat/Limits/Pullbacks.lean Modified Mathlib/Topology/Category/UniformSpace.lean Modified Mathlib/Topology/Compactness/Compact.lean Modified Mathlib/Topology/Compactness/Paracompact.lean Modified Mathlib/Topology/Connected/Basic.lean Modified Mathlib/Topology/Connected/PathConnected.lean Modified Mathlib/Topology/Constructions.lean Modified Mathlib/Topology/ContinuousMap/Bounded.lean Modified Mathlib/Topology/ContinuousMap/Compact.lean Modified Mathlib/Topology/ContinuousMap/StoneWeierstrass.lean Modified Mathlib/Topology/DiscreteQuotient.lean Modified Mathlib/Topology/EMetricSpace/Basic.lean Modified Mathlib/Topology/EMetricSpace/Defs.lean Modified Mathlib/Topology/FiberBundle/Basic.lean Modified Mathlib/Topology/FiberBundle/Constructions.lean Modified Mathlib/Topology/FiberBundle/Trivialization.lean Modified Mathlib/Topology/FiberPartition.lean Modified Mathlib/Topology/Gluing.lean Modified Mathlib/Topology/Homeomorph.lean Modified Mathlib/Topology/Homotopy/Basic.lean Modified Mathlib/Topology/Homotopy/Equiv.lean Modified Mathlib/Topology/Homotopy/HomotopyGroup.lean Modified Mathlib/Topology/Instances/Complex.lean Modified Mathlib/Topology/Instances/ENNReal.lean Modified Mathlib/Topology/MetricSpace/Basic.lean Modified Mathlib/Topology/MetricSpace/Bounded.lean Modified Mathlib/Topology/MetricSpace/GromovHausdorff.lean Modified Mathlib/Topology/MetricSpace/GromovHausdorffRealized.lean Modified Mathlib/Topology/MetricSpace/Isometry.lean Modified Mathlib/Topology/MetricSpace/Polish.lean Modified Mathlib/Topology/Order.lean Modified Mathlib/Topology/Order/Basic.lean Modified Mathlib/Topology/Order/Category/AlexDisc.lean Modified Mathlib/Topology/Order/Category/FrameAdjunction.lean Modified Mathlib/Topology/Order/Compact.lean Modified Mathlib/Topology/Order/OrderClosed.lean Modified Mathlib/Topology/PartialHomeomorph.lean Modified Mathlib/Topology/Separation/Basic.lean Modified Mathlib/Topology/Sets/Opens.lean Modified Mathlib/Topology/Sheaves/CommRingCat.lean Modified Mathlib/Topology/Sheaves/LocalPredicate.lean Modified Mathlib/Topology/Sheaves/Presheaf.lean Modified Mathlib/Topology/Sheaves/SheafCondition/EqualizerProducts.lean Modified Mathlib/Topology/Sheaves/Skyscraper.lean Modified Mathlib/Topology/Sheaves/Stalks.lean Modified Mathlib/Topology/ShrinkingLemma.lean Modified Mathlib/Topology/Support.lean Modified Mathlib/Topology/UniformSpace/Basic.lean Modified Mathlib/Topology/UniformSpace/Cauchy.lean Modified Mathlib/Topology/UniformSpace/Equiv.lean Modified Mathlib/Topology/UniformSpace/Separation.lean Modified Mathlib/Topology/VectorBundle/Basic.lean Modified Mathlib/Topology/VectorBundle/Hom.lean Modified MathlibTest/HashCommandLinter.lean Modified MathlibTest/Have.lean Modified MathlibTest/Header.lean Modified MathlibTest/Qify.lean Modified MathlibTest/TCSynth.lean Modified MathlibTest/cancel_denoms.lean Modified MathlibTest/convert2.lean Modified MathlibTest/instance_diamonds.lean Modified MathlibTest/linarith.lean Modified MathlibTest/toAdditive.lean Modified scripts/autolabel.lean 2024-11-15 06:49:56 4473883 feat(CategoryTheory/Comma): `Comma.fst L R` is final if `R` is (#19015) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/CategoryTheory/Comma/Basic.lean + def CategoryTheory.Comma.opEquiv + def CategoryTheory.Comma.opFunctor + def CategoryTheory.Comma.opFunctorCompFst + def CategoryTheory.Comma.opFunctorCompSnd + def CategoryTheory.Comma.postIso + def CategoryTheory.Comma.unopFunctor + def CategoryTheory.Comma.unopFunctorCompFst + def CategoryTheory.Comma.unopFunctorCompSnd Added Mathlib/CategoryTheory/Comma/Final.lean Modified Mathlib/CategoryTheory/Functor/KanExtension/Adjunction.lean + theorem CategoryTheory.Functor.leftKanExtensionUnit_leftKanExtensionObjIsoColimit_hom + theorem CategoryTheory.Functor.leftKanExtensionUnit_leftKanExtension_map_leftKanExtensionObjIsoColimit_hom +/- theorem CategoryTheory.Functor.ι_leftKanExtensionObjIsoColimit_hom Modified Mathlib/CategoryTheory/Limits/Final.lean + theorem CategoryTheory.Functor.Final.ι_colimitIso_hom + theorem CategoryTheory.Functor.Final.ι_colimitIso_inv Modified Mathlib/CategoryTheory/Limits/HasLimits.lean + theorem CategoryTheory.Limits.colimit.ι_inv_pre 2024-11-15 06:49:54 50c6b5c feat(AlgebraicGeometry/EllipticCurve/Projective): implement group operations on nonsingular rational points for projective coordinates (#9420) Define a addition-preserving bijection `toAffine_addEquiv` with the affine case to prove `Point` is an abelian group. This is the fourth in a series of four PRs leading to #8485 ESTIMATED CHANGES Modified Mathlib/AlgebraicGeometry/EllipticCurve/Projective.lean + theorem WeierstrassCurve.Projective.Point.add_def + theorem WeierstrassCurve.Projective.Point.add_point + def WeierstrassCurve.Projective.Point.fromAffine + theorem WeierstrassCurve.Projective.Point.fromAffine_ne_zero + theorem WeierstrassCurve.Projective.Point.fromAffine_some + theorem WeierstrassCurve.Projective.Point.fromAffine_zero + theorem WeierstrassCurve.Projective.Point.mk_point + def WeierstrassCurve.Projective.Point.neg + theorem WeierstrassCurve.Projective.Point.neg_def + theorem WeierstrassCurve.Projective.Point.neg_point + theorem WeierstrassCurve.Projective.Point.toAffineLift_add + theorem WeierstrassCurve.Projective.Point.toAffineLift_eq + theorem WeierstrassCurve.Projective.Point.toAffineLift_neg + theorem WeierstrassCurve.Projective.Point.toAffineLift_of_Z_eq_zero + theorem WeierstrassCurve.Projective.Point.toAffineLift_of_Z_ne_zero + theorem WeierstrassCurve.Projective.Point.toAffineLift_some + theorem WeierstrassCurve.Projective.Point.toAffineLift_zero + theorem WeierstrassCurve.Projective.Point.toAffine_add + theorem WeierstrassCurve.Projective.Point.toAffine_neg + theorem WeierstrassCurve.Projective.Point.toAffine_of_Z_eq_zero + theorem WeierstrassCurve.Projective.Point.toAffine_of_Z_ne_zero + theorem WeierstrassCurve.Projective.Point.toAffine_of_equiv + theorem WeierstrassCurve.Projective.Point.toAffine_of_singular + theorem WeierstrassCurve.Projective.Point.toAffine_smul + theorem WeierstrassCurve.Projective.Point.toAffine_some + theorem WeierstrassCurve.Projective.Point.toAffine_zero + theorem WeierstrassCurve.Projective.Point.zero_def + theorem WeierstrassCurve.Projective.Point.zero_point + structure WeierstrassCurve.Projective.Point 2024-11-15 06:41:31 0ece1d7 feat: define `IsLittleOTVS` (#9675) The key theorem here is `isLittleOTVS_iff_isLittleO`, which enables us in a future PR to redefine `HasFDerivAtFilter` to not be dependent on a choice of norm, making it possible to _state_ results about derivatives of types with no canonical norm. This gives us a middle ground of being able to state `Matrix.hasDerivAt_add`, which is better than not being able to state it, but not as good as being able to reuse the global `hasDerivAt_add`. Later on, we can try to generalize results like `IsLittleO.add` to `IsLittleOTVS`, which would help with this reuse. [Zulip thread](https://leanprover.zulipchat.com/#narrow/stream/116395-maths/topic/generalizing.20deriv.20to.20TVS/near/359284921) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/Asymptotics/TVS.lean + theorem Asymptotics.IsLittleOTVS.tendsto_inv_smul + def Asymptotics.IsLittleOTVS + theorem Asymptotics.isLittleOTVS_iff_isLittleO + theorem Asymptotics.isLittleOTVS_iff_tendsto_inv_smul + theorem Asymptotics.isLittleOTVS_map + theorem Asymptotics.isLittleOTVS_one + theorem Filter.HasBasis.isLittleOTVS_iff Modified Mathlib/Analysis/Convex/EGauge.lean +/- theorem egauge_ball_le_of_one_lt_norm + theorem egauge_eq_zero_iff 2024-11-15 05:41:24 710876d feat: Valuative criterion for properness. (#14782) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/AlgebraicGeometry/ValuativeCriterion.lean + theorem AlgebraicGeometry.IsProper.eq_valuativeCriterion + theorem AlgebraicGeometry.IsProper.of_valuativeCriterion + theorem AlgebraicGeometry.IsSeparated.eq_valuativeCriterion + theorem AlgebraicGeometry.IsSeparated.of_valuativeCriterion + theorem AlgebraicGeometry.IsSeparated.valuativeCriterion + theorem AlgebraicGeometry.UniversallyClosed.eq_valuativeCriterion + theorem AlgebraicGeometry.UniversallyClosed.of_valuativeCriterion + structure AlgebraicGeometry.ValuativeCommSq + theorem AlgebraicGeometry.ValuativeCriterion.Existence.of_specializingMap + theorem AlgebraicGeometry.ValuativeCriterion.Existence.specializingMap + def AlgebraicGeometry.ValuativeCriterion.Existence + def AlgebraicGeometry.ValuativeCriterion.Uniqueness + theorem AlgebraicGeometry.ValuativeCriterion.eq + theorem AlgebraicGeometry.ValuativeCriterion.existence + theorem AlgebraicGeometry.ValuativeCriterion.iff + theorem AlgebraicGeometry.ValuativeCriterion.uniqueness + def AlgebraicGeometry.ValuativeCriterion Added Mathlib/RingTheory/RingHom/Injective.lean + theorem RingHom.injective_respectsIso + theorem RingHom.injective_stableUnderComposition 2024-11-15 04:49:40 463006e fix: ignore Aesop tactic/commands in unused tactics linter (#16683) ESTIMATED CHANGES Modified Mathlib/Tactic/Linter/UnusedTactic.lean Added MathlibTest/AesopUnusedTactic.lean 2024-11-15 02:04:33 e69ec59 chore(CategoryTheory/MorphismProperty): split `HasTwoOutOfThreeProperty` (#18877) Splits the `HasTwoOutOfThreeProperty` typeclass into `HasOfPrecompProperty` and `HasOfPostcompProperty`. This allows more automation when working with `P.Over Q X` categories. Also shows that under suitable assumptions, `HasOfPostcompProperty P` is equivalent to `P ≤ P.diagonal`. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Limits/MorphismProperty.lean - theorem CategoryTheory.MorphismProperty.Over.hasPullbacks Modified Mathlib/CategoryTheory/Limits/Shapes/Diagonal.lean + theorem CategoryTheory.Limits.pullback_lift_diagonal_isPullback Modified Mathlib/CategoryTheory/Localization/Bousfield.lean Modified Mathlib/CategoryTheory/MorphismProperty/Composition.lean +/- theorem CategoryTheory.MorphismProperty.of_postcomp +/- theorem CategoryTheory.MorphismProperty.of_precomp +/- theorem CategoryTheory.MorphismProperty.postcomp_iff +/- theorem CategoryTheory.MorphismProperty.precomp_iff Modified Mathlib/CategoryTheory/MorphismProperty/Limits.lean + theorem CategoryTheory.MorphismProperty.hasOfPostcompProperty_iff_le_diagonal Modified Mathlib/CategoryTheory/Sites/PreservesSheafification.lean 2024-11-15 01:39:35 7954f73 feat(SetTheory/Nimber/Field): Nimber multiplication (#16877) We define nimber multiplication and prove that nimbers form a domain and a commutative ring. This placed in a separate file from nimber addition so as to not bloat the imports of `SetTheory/Game/Nim`. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/SetTheory/Game/Nim.lean Renamed Mathlib/SetTheory/Ordinal/Nimber.lean to Mathlib/SetTheory/Nimber/Basic.lean + theorem Nimber.lt_one_iff_zero + theorem Nimber.not_bddAbove_compl_of_small Added Mathlib/SetTheory/Nimber/Field.lean + theorem Nimber.exists_of_lt_mul + theorem Nimber.mul_def + theorem Nimber.mul_le_of_forall_ne 2024-11-14 20:44:34 daed990 refactor: change `CartesianClosed` to rely on `ChosenFiniteProducts` (#17766) Change the API for `CartesianClosed` categories: they are now defined as `MonoidalClosed` for the monoidal structure inherited by a `ChosenFiniteProducts` instance. They were previously relying on `HasFiniteProducts`. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Closed/Cartesian.lean +/- def CategoryTheory.CartesianClosed.curry +/- theorem CategoryTheory.CartesianClosed.curry_eq +/- theorem CategoryTheory.CartesianClosed.curry_eq_iff +/- theorem CategoryTheory.CartesianClosed.curry_injective +/- theorem CategoryTheory.CartesianClosed.curry_natural_left +/- theorem CategoryTheory.CartesianClosed.curry_natural_right +/- theorem CategoryTheory.CartesianClosed.eq_curry_iff +/- theorem CategoryTheory.CartesianClosed.homEquiv_apply_eq +/- def CategoryTheory.CartesianClosed.mk +/- def CategoryTheory.CartesianClosed.uncurry +/- theorem CategoryTheory.CartesianClosed.uncurry_curry +/- theorem CategoryTheory.CartesianClosed.uncurry_eq +/- theorem CategoryTheory.CartesianClosed.uncurry_injective +/- def CategoryTheory.binaryProductExponentiable +/- theorem CategoryTheory.exp.ev_coev - def CategoryTheory.expTerminalIsoSelf - def CategoryTheory.expTerminalNatIso + def CategoryTheory.expUnitIsoSelf + def CategoryTheory.expUnitNatIso +/- def CategoryTheory.mulZero +/- theorem CategoryTheory.pre_id +/- def CategoryTheory.terminalExponentiable +/- def CategoryTheory.zeroMul Modified Mathlib/CategoryTheory/Closed/Functor.lean Modified Mathlib/CategoryTheory/Closed/Ideal.lean +/- theorem CategoryTheory.bijection_natural +/- def CategoryTheory.cartesianClosedOfReflective +/- theorem CategoryTheory.prodComparison_iso + def CategoryTheory.reflectiveChosenFiniteProducts +/- theorem CategoryTheory.reflective_products Modified Mathlib/CategoryTheory/Closed/Types.lean - def CategoryTheory.Types.binaryProductAdjunction + def CategoryTheory.Types.tensorProductAdjunction Modified Mathlib/CategoryTheory/Closed/Zero.lean - def CategoryTheory.uniqueHomsetOfInitialIsoTerminal + def CategoryTheory.uniqueHomsetOfInitialIsoUnit Modified Mathlib/CategoryTheory/Sites/CartesianClosed.lean Modified Mathlib/Condensed/CartesianClosed.lean Modified Mathlib/Condensed/Light/CartesianClosed.lean 2024-11-14 20:28:36 76f52eb feat(AlgebraicTopology/SimplicialSet): paths and the strict segal condition (#18499) A path in a simplicial set `X` of length `n` is a directed path comprised of `n` 1-simplices. An `n`-simplex has a maximal path, the `spine` of the simplex, which is a path of length `n`. A simplicial set `X` satisfies the `StrictSegal` condition if for all `n`, the map `X.spine n : X _[n] → X.Path n` is a bijection. Examples of `StrictSegal` simplicial sets are given by nerves of categories. Future work will show these are the only examples: that a `StrictSegal` simplicial set is isomorphic to the nerve of its homotopy category. Co-Authored-By: [Mario Carneiro](https://github.com/digama0) and [Joël Riou](https://github.com/joelriou) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/AlgebraicTopology/SimplexCategory.lean + theorem SimplexCategory.Hom.ext_one_left + theorem SimplexCategory.Hom.ext_zero_left + theorem SimplexCategory.const_subinterval_eq + def SimplexCategory.diag + theorem SimplexCategory.diag_subinterval_eq + def SimplexCategory.intervalEdge + theorem SimplexCategory.mkOfSucc_homToOrderHom_one + theorem SimplexCategory.mkOfSucc_homToOrderHom_zero + theorem SimplexCategory.mkOfSucc_subinterval_eq + def SimplexCategory.subinterval + theorem SimplexCategory.δ_one_mkOfSucc + theorem SimplexCategory.δ_zero_mkOfSucc Modified Mathlib/AlgebraicTopology/SimplicialObject.lean + def CategoryTheory.SimplicialObject.diagonal Added Mathlib/AlgebraicTopology/SimplicialSet/Path.lean + def SSet.Path.interval + structure SSet.Path + def SSet.spine + theorem SSet.spine_map_subinterval Added Mathlib/AlgebraicTopology/SimplicialSet/StrictSegal.lean + def SSet.StrictSegal.spineEquiv + theorem SSet.StrictSegal.spineInjective + def SSet.StrictSegal.spineToDiagonal + theorem SSet.StrictSegal.spineToSimplex_arrow + theorem SSet.StrictSegal.spineToSimplex_edge + theorem SSet.StrictSegal.spineToSimplex_interval + theorem SSet.StrictSegal.spineToSimplex_vertex 2024-11-14 20:21:10 579a434 feat(Algebra/Category/ModuleCat/Presheaf): presheaves of modules are generated by their sections (#18160) We provide a presentation of any presheaf of modules involving coproducts of free presheaves of modules generated by Yoneda presheaves of types. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Category/ModuleCat/Presheaf/Generator.lean + theorem PresheafOfModules.Elements.fromFreeYoneda_app_apply + theorem PresheafOfModules.freeYoneda.isDetecting + theorem PresheafOfModules.freeYoneda.isSeparating + def PresheafOfModules.freeYoneda + theorem PresheafOfModules.freeYonedaEquiv_comp + theorem PresheafOfModules.freeYonedaEquiv_symm_app + theorem PresheafOfModules.fromFreeYonedaCoproduct_app_mk + theorem PresheafOfModules.toFreeYonedaCoproduct_fromFreeYonedaCoproduct + theorem PresheafOfModules.ι_fromFreeYonedaCoproduct + theorem PresheafOfModules.ι_fromFreeYonedaCoproduct_apply 2024-11-14 20:13:33 a692b47 feat(CategoryTheory/SmallObject/Iteration): the unique morphism (limit case) (#18137) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/SmallObject/Iteration/UniqueHom.lean + def CategoryTheory.Functor.Iteration.Hom.mkOfLimit + def CategoryTheory.Functor.Iteration.Hom.mkOfLimitNatTrans + def CategoryTheory.Functor.Iteration.Hom.mkOfLimitNatTransApp + theorem CategoryTheory.Functor.Iteration.Hom.mkOfLimitNatTransApp_eq_of_lt + theorem CategoryTheory.Functor.Iteration.Hom.mkOfLimitNatTransApp_naturality_top + theorem CategoryTheory.Functor.Iteration.iso_refl + theorem CategoryTheory.Functor.Iteration.iso_trans 2024-11-14 19:40:35 fd96b56 chore(RingTheory/Ideal): split off material on `nonunits` (#19035) I noticed (using the hoard factor calculator) that the definition of `LocalRing` doesn't need anything like the amount of transitive imports that `RingTheory.Ideal.Basic` brings in, and `nonunits` is barely an ideal-related definition anyway. So splitting it off from `Basic` seems to be the obvious move here. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Algebra/Spectrum.lean Modified Mathlib/Algebra/CharP/Quotient.lean Modified Mathlib/Analysis/Normed/Ring/Units.lean Modified Mathlib/FieldTheory/IntermediateField/Basic.lean Modified Mathlib/RingTheory/Ideal/Basic.lean - theorem coe_subset_nonunits - theorem exists_max_ideal_of_mem_nonunits - theorem map_mem_nonunits_iff - theorem mem_nonunits_iff - theorem mul_mem_nonunits_left - theorem mul_mem_nonunits_right - def nonunits - theorem one_not_mem_nonunits - theorem zero_mem_nonunits Added Mathlib/RingTheory/Ideal/Nonunits.lean + theorem coe_subset_nonunits + theorem exists_max_ideal_of_mem_nonunits + theorem map_mem_nonunits_iff + theorem mem_nonunits_iff + theorem mul_mem_nonunits_left + theorem mul_mem_nonunits_right + def nonunits + theorem one_not_mem_nonunits + theorem zero_mem_nonunits Modified Mathlib/RingTheory/LocalRing/Basic.lean Modified Mathlib/RingTheory/PrincipalIdealDomain.lean 2024-11-14 19:40:34 3a6a104 feat(Algebra/Homology): the associator isomorphism for the action of bifunctors on homological complexes (#15225) ESTIMATED CHANGES Modified Mathlib/Algebra/Homology/BifunctorAssociator.lean + theorem HomologicalComplex.mapBifunctorAssociatorX_hom_D₁ + theorem HomologicalComplex.mapBifunctorAssociatorX_hom_D₂ + theorem HomologicalComplex.mapBifunctorAssociatorX_hom_D₃ + theorem HomologicalComplex.ιOrZero_mapBifunctorAssociatorX_hom + theorem HomologicalComplex.ι_mapBifunctorAssociatorX_hom Modified Mathlib/CategoryTheory/Functor/Category.lean + theorem CategoryTheory.NatTrans.naturality_app_app 2024-11-14 19:30:10 23ecdee chore(Analysis/SpecialFunctions/Complex/LogDeriv): add fun_prop attribute (#19032) This adds the `fun_prop` attribute to all declarations in `Mathlib.Analysis.SpecialFunctions.Complex.LogDeriv` where doing so does not result in an error message. See [this Zulip thread](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/fun_prop.20attribute.20for.20Complex.2Elog.20lemmas.3F/near/482347068). ESTIMATED CHANGES Modified Mathlib/Analysis/SpecialFunctions/Complex/LogDeriv.lean Modified Mathlib/NumberTheory/EulerProduct/ExpLog.lean 2024-11-14 18:07:09 2ee23a3 feat: add some result on `IsFractionRing` and `fieldRange` (#18984) In `Mathlib/RingTheory/Localization/FractionRing.lean`: - `IsFractionRing.closure_range_algebraMap`: if `A` is a ring with fraction field `K`, then the subfield of `K` generated by the image of `algebraMap A K` is equal to the whole field `K`. - `IsFractionRing.ringHom_fieldRange_eq_of_comp_eq[_of_range_eq]`: if `A` is a ring with fraction field `K`, `L` is a field, `g : A →+* L` lifts to `f : K →+* L`, then the image of `f` is the field generated by the image of `g`. In `Mathlib/FieldTheory/Adjoin.lean`: - `IsFractionRing.algHom_fieldRange_eq_of_comp_eq[_of_range_eq]`: if `F` is a field, `A` is an `F`-algebra with fraction field `K`, `L` is a field, `g : A →ₐ[F] L` lifts to `f : K →ₐ[F] L`, `s` is a set such that the image of `g` is the subalgebra generated by `s`, then the image of `f` is the intermediate field generated by `s`. Note: this does not require `IsScalarTower F A K`. ESTIMATED CHANGES Modified Mathlib/FieldTheory/Adjoin.lean + theorem IsFractionRing.algHom_fieldRange_eq_of_comp_eq + theorem IsFractionRing.algHom_fieldRange_eq_of_comp_eq_of_range_eq Modified Mathlib/RingTheory/Localization/FractionRing.lean + theorem IsFractionRing.closure_range_algebraMap + theorem IsFractionRing.ringHom_fieldRange_eq_of_comp_eq + theorem IsFractionRing.ringHom_fieldRange_eq_of_comp_eq_of_range_eq 2024-11-14 17:49:25 d7389fb feat(Data/Real): add `ENNReal.toEReal_sub` (#18925) ESTIMATED CHANGES Modified Mathlib/Data/Real/EReal.lean + theorem ENNReal.toEReal_sub 2024-11-14 17:15:08 d98b0c3 feat(RingTheory): valuation subrings are maximal local subrings (#19012) from the valuative criterion project ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/RingTheory/LocalRing/RingHom/Basic.lean + theorem IsLocalHom.of_surjective Added Mathlib/RingTheory/LocalRing/Subring.lean + theorem LocalSubring.le_def + theorem LocalSubring.le_ofPrime + def LocalSubring.map + def LocalSubring.ofPrime + def LocalSubring.ofPrimeEquiv + def LocalSubring.range + theorem LocalSubring.toSubring_injective + theorem LocalSubring.toSubring_mono + structure LocalSubring Modified Mathlib/RingTheory/Polynomial/Basic.lean + theorem Algebra.mem_ideal_map_adjoin Added Mathlib/RingTheory/Valuation/LocalSubring.lean + theorem IsLocalRing.exists_factor_valuationRing + theorem LocalSubring.exists_le_valuationSubring + theorem LocalSubring.exists_valuationRing_of_isMax + theorem LocalSubring.isMax_iff + theorem LocalSubring.map_maximalIdeal_eq_top_of_isMax + theorem LocalSubring.mem_of_isMax_of_isIntegral + theorem ValuationSubring.isMax_toLocalSubring + def ValuationSubring.toLocalSubring + theorem ValuationSubring.toLocalSubring_injective + theorem bijective_rangeRestrict_comp_of_valuationRing Modified Mathlib/RingTheory/Valuation/ValuationSubring.lean 2024-11-14 16:52:30 ddccebe feat(NumberTheory/EulerProduct/DirichletLSeries): add exp-log variants of Euler products (#19034) This adds "exp-log" versions of the Euler product formula for Dirichlet L-series; it is another step on the way to PNT and Dirichlet's Theorem. It also renames `dirichletLSeries_<...>` to `DirichletCharacter.LSeries_<...>` for consistency (and to allow dot notation). See [here](https://leanprover.zulipchat.com/#narrow/channel/144837-PR-reviews/topic/Prerequisites.20for.20PNT.20and.20Dirichlet's.20Thm/near/482194943) on Zulip. ESTIMATED CHANGES Modified Mathlib/NumberTheory/EulerProduct/DirichletLSeries.lean + theorem ArithmeticFunction.LSeries_zeta_eulerProduct_exp_log + theorem DirichletCharacter.LSeries_eulerProduct + theorem DirichletCharacter.LSeries_eulerProduct_exp_log + theorem DirichletCharacter.LSeries_eulerProduct_hasProd + theorem DirichletCharacter.LSeries_eulerProduct_tprod - theorem dirichletLSeries_eulerProduct - theorem dirichletLSeries_eulerProduct_hasProd - theorem dirichletLSeries_eulerProduct_tprod + theorem riemannZeta_eulerProduct_exp_log 2024-11-14 16:44:00 69b89ee feat: glue zero rows/cols to TU matrices (#19019) ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/Matrix/Determinant/TotallyUnimodular.lean + theorem Matrix.fromColumns_col0_isTotallyUnimodular_iff + theorem Matrix.fromRows_row0_isTotallyUnimodular_iff - theorem Matrix.mapEquiv_IsTotallyUnimodular + theorem Matrix.mapEquiv_isTotallyUnimodular + theorem Matrix.transpose_isTotallyUnimodular_iff 2024-11-14 16:12:03 71e045c chore(Data/Matrix): split `Basic.lean` into `Defs.lean` and `Mul.lean` (#18972) This is based on noticing that the definition of `Matrix` imports `Algebra`. * `Defs.lean` contains the definition of the `Matrix` type and its module structure * `Mul.lean` contains vector-and-matrix multiplication operators * `Basic.lean` still contains bundled versions of the operations defined above, and a few lemmas that didn't fit anywhere else. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/CategoryTheory/Preadditive/Mat.lean Modified Mathlib/Combinatorics/SimpleGraph/IncMatrix.lean Modified Mathlib/Data/Matrix/Basic.lean - theorem IsLeftRegular.matrix - theorem IsSMulRegular.matrix - def Matrix.addMonoidHomMulLeft - def Matrix.addMonoidHomMulRight - theorem Matrix.add_apply - theorem Matrix.add_dotProduct - theorem Matrix.add_mulVec - theorem Matrix.add_vecMul - theorem Matrix.coe_ofAddEquiv - theorem Matrix.coe_ofAddEquiv_symm - theorem Matrix.comp_equiv_dotProduct_comp_equiv - theorem Matrix.comp_equiv_symm_dotProduct - def Matrix.diag - theorem Matrix.diag_add - theorem Matrix.diag_apply - theorem Matrix.diag_diagonal - theorem Matrix.diag_map - theorem Matrix.diag_neg - theorem Matrix.diag_one - theorem Matrix.diag_smul - theorem Matrix.diag_sub - theorem Matrix.diag_submatrix - theorem Matrix.diag_transpose - theorem Matrix.diag_zero - def Matrix.diagonal - theorem Matrix.diagonal_add - theorem Matrix.diagonal_apply - theorem Matrix.diagonal_apply_eq - theorem Matrix.diagonal_apply_ne' - theorem Matrix.diagonal_apply_ne - theorem Matrix.diagonal_const_mulVec - theorem Matrix.diagonal_dotProduct - theorem Matrix.diagonal_eq_diagonal_iff - theorem Matrix.diagonal_injective - theorem Matrix.diagonal_intCast' - theorem Matrix.diagonal_intCast - theorem Matrix.diagonal_map - theorem Matrix.diagonal_mul - theorem Matrix.diagonal_mulVec_single - theorem Matrix.diagonal_mul_diagonal' - theorem Matrix.diagonal_mul_diagonal - theorem Matrix.diagonal_natCast' - theorem Matrix.diagonal_natCast - theorem Matrix.diagonal_neg - theorem Matrix.diagonal_ofNat' - theorem Matrix.diagonal_ofNat - theorem Matrix.diagonal_one - theorem Matrix.diagonal_smul - theorem Matrix.diagonal_sub - theorem Matrix.diagonal_transpose - theorem Matrix.diagonal_unique - theorem Matrix.diagonal_zero - def Matrix.dotProduct - theorem Matrix.dotProduct_add - theorem Matrix.dotProduct_assoc - theorem Matrix.dotProduct_comm - theorem Matrix.dotProduct_comp_equiv_symm - theorem Matrix.dotProduct_diagonal' - theorem Matrix.dotProduct_diagonal - theorem Matrix.dotProduct_mulVec - theorem Matrix.dotProduct_neg - theorem Matrix.dotProduct_one - theorem Matrix.dotProduct_pUnit - theorem Matrix.dotProduct_single - theorem Matrix.dotProduct_single_one - theorem Matrix.dotProduct_smul - theorem Matrix.dotProduct_sub - theorem Matrix.dotProduct_zero' - theorem Matrix.dotProduct_zero - theorem Matrix.ext - theorem Matrix.ext_iff - theorem Matrix.intCast_mulVec - def Matrix.map - theorem Matrix.map_apply - theorem Matrix.map_id' - theorem Matrix.map_id - theorem Matrix.map_injective - theorem Matrix.map_map - theorem Matrix.map_mul - theorem Matrix.map_one - theorem Matrix.map_op_smul' - theorem Matrix.map_smul' - theorem Matrix.map_smul - def Matrix.mulVec.addMonoidHomLeft - def Matrix.mulVec - theorem Matrix.mulVec_add - theorem Matrix.mulVec_diagonal - theorem Matrix.mulVec_mulVec - theorem Matrix.mulVec_neg - theorem Matrix.mulVec_one - theorem Matrix.mulVec_single - theorem Matrix.mulVec_single_one - theorem Matrix.mulVec_smul - theorem Matrix.mulVec_smul_assoc - theorem Matrix.mulVec_sub - theorem Matrix.mulVec_transpose - theorem Matrix.mulVec_vecMul - theorem Matrix.mulVec_zero - theorem Matrix.mul_apply' - theorem Matrix.mul_apply - theorem Matrix.mul_apply_eq_vecMul - theorem Matrix.mul_diagonal - theorem Matrix.mul_mul_apply - theorem Matrix.mul_mul_left - theorem Matrix.mul_mul_right - theorem Matrix.mul_smul - theorem Matrix.mul_submatrix_one - theorem Matrix.natCast_mulVec - theorem Matrix.neg_apply - theorem Matrix.neg_dotProduct - theorem Matrix.neg_dotProduct_neg - theorem Matrix.neg_mulVec - theorem Matrix.neg_mulVec_neg - theorem Matrix.neg_of - theorem Matrix.neg_vecMul - theorem Matrix.neg_vecMul_neg - def Matrix.of - def Matrix.ofAddEquiv - theorem Matrix.ofNat_mulVec - theorem Matrix.of_add_of - theorem Matrix.of_apply - theorem Matrix.of_sub_of - theorem Matrix.of_symm_apply - theorem Matrix.of_zero - theorem Matrix.one_apply - theorem Matrix.one_apply_eq - theorem Matrix.one_apply_ne' - theorem Matrix.one_apply_ne - theorem Matrix.one_dotProduct - theorem Matrix.one_dotProduct_one - theorem Matrix.one_eq_pi_single - theorem Matrix.one_mulVec - theorem Matrix.one_submatrix_mul - theorem Matrix.op_smul_eq_mul_diagonal - theorem Matrix.op_smul_one_eq_diagonal - def Matrix.reindex - theorem Matrix.reindex_apply - theorem Matrix.reindex_refl_refl - theorem Matrix.reindex_symm - theorem Matrix.reindex_trans - theorem Matrix.single_dotProduct - theorem Matrix.single_one_dotProduct - theorem Matrix.single_one_vecMul - theorem Matrix.single_vecMul - theorem Matrix.single_vecMul_diagonal - theorem Matrix.smul_apply - theorem Matrix.smul_dotProduct - theorem Matrix.smul_eq_diagonal_mul - theorem Matrix.smul_eq_mul_diagonal - theorem Matrix.smul_mul - theorem Matrix.smul_mulVec_assoc - theorem Matrix.smul_of - theorem Matrix.smul_one_eq_diagonal - theorem Matrix.sub_apply - theorem Matrix.sub_dotProduct - theorem Matrix.sub_mulVec - theorem Matrix.sub_vecMul - def Matrix.submatrix - theorem Matrix.submatrix_add - theorem Matrix.submatrix_apply - theorem Matrix.submatrix_diagonal - theorem Matrix.submatrix_diagonal_embedding - theorem Matrix.submatrix_diagonal_equiv - theorem Matrix.submatrix_id_id - theorem Matrix.submatrix_map - theorem Matrix.submatrix_mul - theorem Matrix.submatrix_mulVec_equiv - theorem Matrix.submatrix_mul_equiv - theorem Matrix.submatrix_mul_transpose_submatrix - theorem Matrix.submatrix_neg - theorem Matrix.submatrix_one - theorem Matrix.submatrix_one_embedding - theorem Matrix.submatrix_one_equiv - theorem Matrix.submatrix_smul - theorem Matrix.submatrix_sub - theorem Matrix.submatrix_submatrix - theorem Matrix.submatrix_vecMul_equiv - theorem Matrix.submatrix_zero - theorem Matrix.sum_elim_dotProduct_sum_elim - def Matrix.transpose - theorem Matrix.transpose_add - theorem Matrix.transpose_apply - theorem Matrix.transpose_eq_diagonal - theorem Matrix.transpose_eq_intCast - theorem Matrix.transpose_eq_natCast - theorem Matrix.transpose_eq_ofNat - theorem Matrix.transpose_eq_one - theorem Matrix.transpose_eq_zero - theorem Matrix.transpose_inj - theorem Matrix.transpose_injective - theorem Matrix.transpose_intCast - theorem Matrix.transpose_map - theorem Matrix.transpose_mul - theorem Matrix.transpose_natCast - theorem Matrix.transpose_neg - theorem Matrix.transpose_ofNat - theorem Matrix.transpose_one - theorem Matrix.transpose_reindex - theorem Matrix.transpose_smul - theorem Matrix.transpose_sub - theorem Matrix.transpose_submatrix - theorem Matrix.transpose_transpose - theorem Matrix.transpose_zero - theorem Matrix.two_mul_expl - def Matrix.vecMul - def Matrix.vecMulVec - theorem Matrix.vecMulVec_apply - theorem Matrix.vecMul_add - theorem Matrix.vecMul_diagonal - theorem Matrix.vecMul_diagonal_const - theorem Matrix.vecMul_intCast - theorem Matrix.vecMul_mulVec - theorem Matrix.vecMul_natCast - theorem Matrix.vecMul_neg - theorem Matrix.vecMul_ofNat - theorem Matrix.vecMul_one - theorem Matrix.vecMul_smul - theorem Matrix.vecMul_sub - theorem Matrix.vecMul_transpose - theorem Matrix.vecMul_vecMul - theorem Matrix.vecMul_zero - theorem Matrix.vec_one_mul - theorem Matrix.zero_apply - theorem Matrix.zero_dotProduct' - theorem Matrix.zero_dotProduct - theorem Matrix.zero_mulVec - theorem Matrix.zero_vecMul - def Matrix - theorem RingHom.map_dotProduct - theorem RingHom.map_matrix_mul - theorem RingHom.map_mulVec - theorem RingHom.map_vecMul Modified Mathlib/Data/Matrix/CharP.lean Modified Mathlib/Data/Matrix/ConjTranspose.lean Added Mathlib/Data/Matrix/Defs.lean + theorem IsLeftRegular.matrix + theorem IsSMulRegular.matrix + theorem Matrix.add_apply + theorem Matrix.coe_ofAddEquiv + theorem Matrix.coe_ofAddEquiv_symm + theorem Matrix.ext + theorem Matrix.ext_iff + def Matrix.map + theorem Matrix.map_apply + theorem Matrix.map_id' + theorem Matrix.map_id + theorem Matrix.map_injective + theorem Matrix.map_map + theorem Matrix.map_op_smul' + theorem Matrix.map_smul' + theorem Matrix.map_smul + theorem Matrix.neg_apply + theorem Matrix.neg_of + def Matrix.of + def Matrix.ofAddEquiv + theorem Matrix.of_add_of + theorem Matrix.of_apply + theorem Matrix.of_sub_of + theorem Matrix.of_symm_apply + theorem Matrix.of_zero + def Matrix.reindex + theorem Matrix.reindex_apply + theorem Matrix.reindex_refl_refl + theorem Matrix.reindex_symm + theorem Matrix.reindex_trans + theorem Matrix.smul_apply + theorem Matrix.smul_of + theorem Matrix.sub_apply + def Matrix.submatrix + theorem Matrix.submatrix_add + theorem Matrix.submatrix_apply + theorem Matrix.submatrix_id_id + theorem Matrix.submatrix_map + theorem Matrix.submatrix_neg + theorem Matrix.submatrix_smul + theorem Matrix.submatrix_sub + theorem Matrix.submatrix_submatrix + theorem Matrix.submatrix_zero + def Matrix.transpose + theorem Matrix.transpose_add + theorem Matrix.transpose_apply + theorem Matrix.transpose_eq_zero + theorem Matrix.transpose_inj + theorem Matrix.transpose_injective + theorem Matrix.transpose_map + theorem Matrix.transpose_neg + theorem Matrix.transpose_reindex + theorem Matrix.transpose_smul + theorem Matrix.transpose_sub + theorem Matrix.transpose_submatrix + theorem Matrix.transpose_transpose + theorem Matrix.transpose_zero + theorem Matrix.zero_apply + def Matrix Added Mathlib/Data/Matrix/Diagonal.lean + def Matrix.diag + theorem Matrix.diag_add + theorem Matrix.diag_apply + theorem Matrix.diag_diagonal + theorem Matrix.diag_map + theorem Matrix.diag_neg + theorem Matrix.diag_one + theorem Matrix.diag_smul + theorem Matrix.diag_sub + theorem Matrix.diag_submatrix + theorem Matrix.diag_transpose + theorem Matrix.diag_zero + def Matrix.diagonal + theorem Matrix.diagonal_add + theorem Matrix.diagonal_apply + theorem Matrix.diagonal_apply_eq + theorem Matrix.diagonal_apply_ne' + theorem Matrix.diagonal_apply_ne + theorem Matrix.diagonal_eq_diagonal_iff + theorem Matrix.diagonal_injective + theorem Matrix.diagonal_intCast' + theorem Matrix.diagonal_intCast + theorem Matrix.diagonal_map + theorem Matrix.diagonal_natCast' + theorem Matrix.diagonal_natCast + theorem Matrix.diagonal_neg + theorem Matrix.diagonal_ofNat' + theorem Matrix.diagonal_ofNat + theorem Matrix.diagonal_one + theorem Matrix.diagonal_smul + theorem Matrix.diagonal_sub + theorem Matrix.diagonal_transpose + theorem Matrix.diagonal_unique + theorem Matrix.diagonal_zero + theorem Matrix.map_one + theorem Matrix.one_apply + theorem Matrix.one_apply_eq + theorem Matrix.one_apply_ne' + theorem Matrix.one_apply_ne + theorem Matrix.one_eq_pi_single + theorem Matrix.submatrix_diagonal + theorem Matrix.submatrix_diagonal_embedding + theorem Matrix.submatrix_diagonal_equiv + theorem Matrix.submatrix_one + theorem Matrix.submatrix_one_embedding + theorem Matrix.submatrix_one_equiv + theorem Matrix.transpose_eq_diagonal + theorem Matrix.transpose_eq_intCast + theorem Matrix.transpose_eq_natCast + theorem Matrix.transpose_eq_ofNat + theorem Matrix.transpose_eq_one + theorem Matrix.transpose_intCast + theorem Matrix.transpose_natCast + theorem Matrix.transpose_ofNat + theorem Matrix.transpose_one Added Mathlib/Data/Matrix/Mul.lean + def Matrix.addMonoidHomMulLeft + def Matrix.addMonoidHomMulRight + theorem Matrix.add_dotProduct + theorem Matrix.add_mulVec + theorem Matrix.add_vecMul + theorem Matrix.comp_equiv_dotProduct_comp_equiv + theorem Matrix.comp_equiv_symm_dotProduct + theorem Matrix.diagonal_const_mulVec + theorem Matrix.diagonal_dotProduct + theorem Matrix.diagonal_mul + theorem Matrix.diagonal_mulVec_single + theorem Matrix.diagonal_mul_diagonal' + theorem Matrix.diagonal_mul_diagonal + def Matrix.dotProduct + theorem Matrix.dotProduct_add + theorem Matrix.dotProduct_assoc + theorem Matrix.dotProduct_comm + theorem Matrix.dotProduct_comp_equiv_symm + theorem Matrix.dotProduct_diagonal' + theorem Matrix.dotProduct_diagonal + theorem Matrix.dotProduct_mulVec + theorem Matrix.dotProduct_neg + theorem Matrix.dotProduct_one + theorem Matrix.dotProduct_pUnit + theorem Matrix.dotProduct_single + theorem Matrix.dotProduct_single_one + theorem Matrix.dotProduct_smul + theorem Matrix.dotProduct_sub + theorem Matrix.dotProduct_zero' + theorem Matrix.dotProduct_zero + theorem Matrix.intCast_mulVec + theorem Matrix.map_mul + def Matrix.mulVec.addMonoidHomLeft + def Matrix.mulVec + theorem Matrix.mulVec_add + theorem Matrix.mulVec_diagonal + theorem Matrix.mulVec_mulVec + theorem Matrix.mulVec_neg + theorem Matrix.mulVec_one + theorem Matrix.mulVec_single + theorem Matrix.mulVec_single_one + theorem Matrix.mulVec_smul + theorem Matrix.mulVec_smul_assoc + theorem Matrix.mulVec_sub + theorem Matrix.mulVec_transpose + theorem Matrix.mulVec_vecMul + theorem Matrix.mulVec_zero + theorem Matrix.mul_apply' + theorem Matrix.mul_apply + theorem Matrix.mul_apply_eq_vecMul + theorem Matrix.mul_diagonal + theorem Matrix.mul_mul_apply + theorem Matrix.mul_mul_left + theorem Matrix.mul_mul_right + theorem Matrix.mul_smul + theorem Matrix.mul_submatrix_one + theorem Matrix.natCast_mulVec + theorem Matrix.neg_dotProduct + theorem Matrix.neg_dotProduct_neg + theorem Matrix.neg_mulVec + theorem Matrix.neg_mulVec_neg + theorem Matrix.neg_vecMul + theorem Matrix.neg_vecMul_neg + theorem Matrix.ofNat_mulVec + theorem Matrix.one_dotProduct + theorem Matrix.one_dotProduct_one + theorem Matrix.one_mulVec + theorem Matrix.one_submatrix_mul + theorem Matrix.op_smul_eq_mul_diagonal + theorem Matrix.op_smul_one_eq_diagonal + theorem Matrix.single_dotProduct + theorem Matrix.single_one_dotProduct + theorem Matrix.single_one_vecMul + theorem Matrix.single_vecMul + theorem Matrix.single_vecMul_diagonal + theorem Matrix.smul_dotProduct + theorem Matrix.smul_eq_diagonal_mul + theorem Matrix.smul_eq_mul_diagonal + theorem Matrix.smul_mul + theorem Matrix.smul_mulVec_assoc + theorem Matrix.smul_one_eq_diagonal + theorem Matrix.sub_dotProduct + theorem Matrix.sub_mulVec + theorem Matrix.sub_vecMul + theorem Matrix.submatrix_mul + theorem Matrix.submatrix_mulVec_equiv + theorem Matrix.submatrix_mul_equiv + theorem Matrix.submatrix_mul_transpose_submatrix + theorem Matrix.submatrix_vecMul_equiv + theorem Matrix.sum_elim_dotProduct_sum_elim + theorem Matrix.transpose_mul + theorem Matrix.two_mul_expl + def Matrix.vecMul + def Matrix.vecMulVec + theorem Matrix.vecMulVec_apply + theorem Matrix.vecMul_add + theorem Matrix.vecMul_diagonal + theorem Matrix.vecMul_diagonal_const + theorem Matrix.vecMul_intCast + theorem Matrix.vecMul_mulVec + theorem Matrix.vecMul_natCast + theorem Matrix.vecMul_neg + theorem Matrix.vecMul_ofNat + theorem Matrix.vecMul_one + theorem Matrix.vecMul_smul + theorem Matrix.vecMul_sub + theorem Matrix.vecMul_transpose + theorem Matrix.vecMul_vecMul + theorem Matrix.vecMul_zero + theorem Matrix.vec_one_mul + theorem Matrix.zero_dotProduct' + theorem Matrix.zero_dotProduct + theorem Matrix.zero_mulVec + theorem Matrix.zero_vecMul + theorem RingHom.map_dotProduct + theorem RingHom.map_matrix_mul + theorem RingHom.map_mulVec + theorem RingHom.map_vecMul Modified Mathlib/Data/Matrix/Notation.lean Modified Mathlib/Data/Matrix/PEquiv.lean Modified Mathlib/Data/Matrix/Reflection.lean Modified Mathlib/LinearAlgebra/FreeModule/Basic.lean Modified Mathlib/LinearAlgebra/Matrix/Determinant/Basic.lean Modified Mathlib/LinearAlgebra/Matrix/Orthogonal.lean Modified Mathlib/LinearAlgebra/Matrix/Symmetric.lean Modified Mathlib/Topology/UniformSpace/Matrix.lean 2024-11-14 13:58:17 95ee83b chore(Algebra/Group/Defs): use `Nat.binaryRec` (#17892) ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Defs.lean +/- def npowBinRec +/- theorem npowRec'_mul_comm +/- theorem npowRec'_succ - def nsmulBinRec - theorem nsmulRec_eq_nsmulBinRec 2024-11-14 13:49:09 d47cbb8 fix(maintainer merge action): remove run_id (#19025) ESTIMATED CHANGES Modified .github/workflows/maintainer_merge.yml 2024-11-14 13:23:00 9e4addc chore : add `@[simp]` to `star_mul_self_nonneg` and `mul_star_self_nonneg`. (#18970) We noticed that these needed `@[simp]`, so added them. ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Star/Basic.lean 2024-11-14 11:25:31 fd92bc3 feat(KrullDimension): height characterizations (#19003) Next parts from PR #15524: obtaining certain series given the element's heights, and characterizations of height in terms of the height of the elements below it. From the Carleson project ESTIMATED CHANGES Modified Mathlib/Order/KrullDimension.lean + theorem Order.exists_series_of_height_eq_coe + theorem Order.exists_series_of_le_height + theorem Order.height_eq_iSup_lt_height + theorem Order.height_le_coe_iff 2024-11-14 11:25:30 59fe8ae feat(MeasurePreserving): add `add_measure` and `smul_measure` (#18953) - Generalize `Measure.map_smul` to work with `c` of any type. - Weaken TC assumptions in `ae_smul_measure`, add `ae_smul_measure_le`. - Add `AbsolutelyContinuous.smul_both`. - Add `MeasurePreserving.add_measure`, `MeasurePreserving.smul_measure`. - Add `PreErgodic.smul_measure`, `QuasiErgodic.smul_measure`, `Ergodic.smul_measure`. ESTIMATED CHANGES Modified Mathlib/Dynamics/Ergodic/Ergodic.lean + theorem Ergodic.smul_measure + theorem PreErgodic.smul_measure + theorem QuasiErgodic.smul_measure Modified Mathlib/Dynamics/Ergodic/MeasurePreserving.lean + theorem MeasureTheory.MeasurePreserving.add_measure + theorem MeasureTheory.MeasurePreserving.smul_measure Modified Mathlib/MeasureTheory/Measure/MeasureSpace.lean + theorem MeasureTheory.Measure.QuasiMeasurePreserving.smul_measure + theorem MeasureTheory.Measure.ae_smul_measure + theorem MeasureTheory.Measure.ae_smul_measure_le +/- theorem MeasureTheory.Measure.smul_absolutelyContinuous Modified Mathlib/MeasureTheory/Measure/Restrict.lean - theorem MeasureTheory.ae_smul_measure 2024-11-14 11:25:28 e62619b feat(SkewMonoidAlgebra): add SkewMonoidAlgebra with irreducible def (#15878) ## Skew Monoid algebras This file presents a skewed version of `Mathlib.Algebra.MonoidAlgebra.Basic` with an **irreducible** definition. ## Context Hi everyone, As a part of a bigger project aiming to get [Drinfeld Modules](https://en.wikipedia.org/wiki/Drinfeld_module) into Mathlib, @**María Inés de Frutos Fernández** and I have been trying to get a generalization of `MonoidAlgebra`, `SkewMonoidAlgebra`, into Mathlib. The first attempt at this was #10541, but progress has been slow as making the definition irreducible caused a huge refactor. Following @kbuzzard's [suggestion](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/.60SkewMonoidAlgebra.60.20and.20the.20separation.20with.20.60Finsupp.60/near/456861000), I am opening this PR which contains only the first 160 lines of #10541. In particular, this PR is missing most of what makes these objects skewed (Multiplication was defined only at line 558 as it requires stronger hypotheses and there are many lemmas on the additive structure that precede it.) This means that the purpose of this PR is mainly to get the separation from `Finsupp` right. Please consult this [thread](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/.60SkewMonoidAlgebra.60.20and.20the.20separation.20with.20.60Finsupp.60/near/456834154) for more context or in short: The current separation we have consists of: 1. Wrapping the definition with a structure. 2. Making basic operations such as `add` private and irreducible. 3. Adapting relevant definitions. 4. Copying and adapting relevant theorems from the base construct to obtain statements in terms of our new object. Is this what everyone has in mind? If so, are there parts of the current PR that come short in respect to any of these? I am happy to integrate suggestions to improve the separation if there are any! Thanks a lot for your attention and help! Xavier ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/SkewMonoidAlgebra/Basic.lean + theorem IsSMulRegular.skewMonoidAlgebra + theorem SkewMonoidAlgebra.eta + theorem SkewMonoidAlgebra.ofFinsupp_add + theorem SkewMonoidAlgebra.ofFinsupp_eq_zero + theorem SkewMonoidAlgebra.ofFinsupp_inj + theorem SkewMonoidAlgebra.ofFinsupp_injective + theorem SkewMonoidAlgebra.ofFinsupp_smul + theorem SkewMonoidAlgebra.ofFinsupp_zero + def SkewMonoidAlgebra.support + theorem SkewMonoidAlgebra.support_eq_empty + theorem SkewMonoidAlgebra.support_ofFinsupp + theorem SkewMonoidAlgebra.support_toFinsupp + theorem SkewMonoidAlgebra.support_zero + theorem SkewMonoidAlgebra.toFinsupp_add + theorem SkewMonoidAlgebra.toFinsupp_eq_zero + theorem SkewMonoidAlgebra.toFinsupp_inj + theorem SkewMonoidAlgebra.toFinsupp_injective + theorem SkewMonoidAlgebra.toFinsupp_smul + theorem SkewMonoidAlgebra.toFinsupp_zero + structure SkewMonoidAlgebra 2024-11-14 11:04:13 df8b2f4 chore: generalise pow monotonicity lemmas to groups with zero (#18967) In particular they now apply to `ℤₘ₀` From FLT ESTIMATED CHANGES Modified Archive/Imo/Imo2001Q2.lean Modified Archive/Imo/Imo2006Q3.lean Modified Archive/Imo/Imo2008Q3.lean Modified Archive/Imo/Imo2008Q4.lean Modified Archive/Wiedijk100Theorems/PerfectNumbers.lean Modified Mathlib/Algebra/Order/CompleteField.lean Modified Mathlib/Algebra/Order/Field/Basic.lean Modified Mathlib/Algebra/Order/Group/Nat.lean Modified Mathlib/Algebra/Order/GroupWithZero/Canonical.lean - theorem pow_lt_pow_right₀ Modified Mathlib/Algebra/Order/GroupWithZero/Unbundled.lean + theorem Bound.le_self_pow_of_pos + theorem Bound.pow_le_pow_right_of_le_one_or_one_le + theorem le_of_pow_le_pow_left₀ + theorem lt_of_mul_self_lt_mul_self₀ + theorem lt_of_pow_lt_pow_left₀ + theorem lt_self_pow₀ + theorem one_le_pow_iff_of_nonneg + theorem one_le_sq_iff₀ + theorem one_lt_pow_iff_of_nonneg + theorem one_lt_sq_iff₀ + theorem pow_eq_one_iff_of_nonneg + theorem pow_le_one_iff_of_nonneg + theorem pow_le_pow_iff_left₀ + theorem pow_le_pow_iff_right₀ + theorem pow_le_pow_left₀ + theorem pow_left_inj₀ + theorem pow_left_strictMonoOn₀ + theorem pow_lt_one_iff_of_nonneg + theorem pow_lt_pow_iff_left₀ + theorem pow_lt_pow_iff_right_of_lt_one₀ + theorem pow_lt_pow_iff_right₀ + theorem pow_lt_pow_left₀ + theorem pow_lt_pow_right_of_lt_one₀ + theorem pow_lt_pow_right₀ + theorem pow_lt_self_of_lt_one₀ +/- theorem pow_pos + theorem pow_right_injective₀ + theorem pow_right_inj₀ + theorem pow_right_strictAnti₀ + theorem pow_right_strictMono₀ + theorem sq_eq_sq₀ + theorem sq_le_one_iff₀ + theorem sq_lt_one_iff₀ + theorem sq_pos_of_pos Modified Mathlib/Algebra/Order/Monoid/Unbundled/Pow.lean Modified Mathlib/Algebra/Order/Monovary.lean Modified Mathlib/Algebra/Order/Ring/Abs.lean Modified Mathlib/Algebra/Order/Ring/Basic.lean - theorem Bound.le_self_pow_of_pos - theorem Bound.pow_le_pow_right_of_le_one_or_one_le +/- theorem lt_of_mul_self_lt_mul_self +/- theorem lt_self_pow - theorem one_le_pow_iff_of_nonneg +/- theorem one_le_sq_iff - theorem one_lt_pow_iff_of_nonneg +/- theorem one_lt_sq_iff - theorem pow_eq_one_iff_of_nonneg - theorem pow_le_one_iff_of_nonneg +/- theorem pow_le_pow_iff_right +/- theorem pow_le_pow_left - theorem pow_lt_one_iff_of_nonneg +/- theorem pow_lt_pow_iff_right +/- theorem pow_lt_pow_left +/- theorem pow_lt_pow_right +/- theorem pow_lt_self_of_lt_one +/- theorem pow_right_inj +/- theorem pow_right_injective +/- theorem sq_eq_sq +/- theorem sq_le_one_iff +/- theorem sq_lt_one_iff - theorem sq_pos_of_pos Modified Mathlib/Algebra/Polynomial/Degree/CardPowDegree.lean Modified Mathlib/Analysis/Analytic/Composition.lean Modified Mathlib/Analysis/Analytic/Inverse.lean Modified Mathlib/Analysis/Asymptotics/Asymptotics.lean Modified Mathlib/Analysis/CStarAlgebra/Basic.lean Modified Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Order.lean Modified Mathlib/Analysis/CStarAlgebra/Hom.lean Modified Mathlib/Analysis/CStarAlgebra/Matrix.lean Modified Mathlib/Analysis/CStarAlgebra/Module/Constructions.lean Modified Mathlib/Analysis/CStarAlgebra/Module/Defs.lean Modified Mathlib/Analysis/CStarAlgebra/Multiplier.lean Modified Mathlib/Analysis/Calculus/FDeriv/Measurable.lean Modified Mathlib/Analysis/Complex/Basic.lean Modified Mathlib/Analysis/Complex/UpperHalfPlane/Metric.lean Modified Mathlib/Analysis/Convex/SpecificFunctions/Deriv.lean Modified Mathlib/Analysis/InnerProductSpace/Basic.lean Modified Mathlib/Analysis/InnerProductSpace/PiL2.lean Modified Mathlib/Analysis/InnerProductSpace/Projection.lean Modified Mathlib/Analysis/InnerProductSpace/TwoDim.lean Modified Mathlib/Analysis/Normed/Field/Ultra.lean Modified Mathlib/Analysis/Normed/Ring/IsPowMulFaithful.lean Modified Mathlib/Analysis/PSeries.lean Modified Mathlib/Analysis/SpecialFunctions/Gaussian/GaussianIntegral.lean Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Bounds.lean Modified Mathlib/Analysis/SpecificLimits/Basic.lean Modified Mathlib/Analysis/SpecificLimits/Normed.lean Modified Mathlib/Combinatorics/SetFamily/FourFunctions.lean Modified Mathlib/Combinatorics/SimpleGraph/Regularity/Chunk.lean Modified Mathlib/Combinatorics/SimpleGraph/Regularity/Energy.lean Modified Mathlib/Data/Complex/Exponential.lean Modified Mathlib/Data/Int/Lemmas.lean Modified Mathlib/Data/Nat/Factorization/Basic.lean Modified Mathlib/Data/Real/Archimedean.lean Modified Mathlib/Geometry/Euclidean/Angle/Unoriented/Basic.lean Modified Mathlib/Geometry/Euclidean/Triangle.lean Modified Mathlib/GroupTheory/Sylow.lean Modified Mathlib/MeasureTheory/Measure/Lebesgue/EqHaar.lean Modified Mathlib/NumberTheory/ClassNumber/Finite.lean Modified Mathlib/NumberTheory/Cyclotomic/PrimitiveRoots.lean Modified Mathlib/NumberTheory/Fermat.lean Modified Mathlib/NumberTheory/FermatPsp.lean Modified Mathlib/NumberTheory/Multiplicity.lean Modified Mathlib/NumberTheory/NumberField/CanonicalEmbedding/ConvexBody.lean Modified Mathlib/NumberTheory/Ostrowski.lean Modified Mathlib/NumberTheory/Padics/Hensel.lean Modified Mathlib/NumberTheory/Padics/PadicIntegers.lean Modified Mathlib/NumberTheory/Padics/RingHoms.lean Modified Mathlib/NumberTheory/Pell.lean Modified Mathlib/NumberTheory/SumFourSquares.lean Modified Mathlib/RingTheory/LittleWedderburn.lean Modified Mathlib/RingTheory/Polynomial/Cyclotomic/Expand.lean Modified Mathlib/RingTheory/WittVector/Frobenius.lean Modified Mathlib/Topology/Instances/NNReal.lean Modified Mathlib/Topology/MetricSpace/PiNat.lean Modified Mathlib/Topology/Metrizable/Uniformity.lean 2024-11-14 11:04:11 4c452d8 feat(NumberTheory/EulerProduct/ExpLog): new file (#18923) This is the first PR in a series that will add proofs of the relevant properties of certain functions that are important for the proof of a density version of Dirichlet's Theorem on primes in AP (and, as a corollary, the Prime Number Theorem). Here we add a short new file with "logarithmic" versions of the Euler product of a completely multiplicative function. From [EulerProducts](https://github.com/MichaelStollBayreuth/EulerProducts). ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/NumberTheory/EulerProduct/ExpLog.lean + theorem EulerProduct.exp_tsum_primes_log_eq_tsum + theorem Summable.clog_one_sub 2024-11-14 11:04:10 16303ca feat: generalize `tendsto_measure_iInter` (#18540) ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Decomposition/UnsignedHahn.lean Modified Mathlib/MeasureTheory/Function/Egorov.lean Modified Mathlib/MeasureTheory/MeasurableSpace/CountablyGenerated.lean Modified Mathlib/MeasureTheory/Measure/Lebesgue/EqHaar.lean Modified Mathlib/MeasureTheory/Measure/MeasureSpace.lean + theorem Antitone.measure_iInter + theorem Directed.measure_iInter - theorem MeasureTheory.measure_iInter_eq_iInf' - theorem MeasureTheory.measure_iInter_eq_iInf + theorem MeasureTheory.measure_iInter_eq_iInf_measure_iInter_le - theorem MeasureTheory.tendsto_measure_iInter' - theorem MeasureTheory.tendsto_measure_iInter + theorem MeasureTheory.tendsto_measure_iInter_atBot + theorem MeasureTheory.tendsto_measure_iInter_atTop + theorem MeasureTheory.tendsto_measure_iInter_le + theorem Monotone.measure_iInter Modified Mathlib/MeasureTheory/Measure/NullMeasurable.lean Modified Mathlib/MeasureTheory/Measure/Stieltjes.lean Modified Mathlib/MeasureTheory/Measure/Typeclasses.lean Modified Mathlib/Probability/Kernel/Disintegration/CDFToKernel.lean Modified Mathlib/Probability/Kernel/Disintegration/CondCDF.lean Modified Mathlib/Probability/Kernel/Disintegration/Density.lean 2024-11-14 10:43:29 4e4d377 chore(RingTheory): split Finiteness.lean into many smaller files (#18964) This PR splits off `RingTheory/Finiteness.lean`, where finitely generated (sub)modules are defined, into many different files: * `RingTheory/Finiteness/Basic.lean`: basic properties and instances of `Submodule.FG` and `Module.Finite` * `RingTheory/Finiteness/Bilinear.lean`: results involving bilinear maps * `RingTheory/Finiteness/Cardinality.lean`: finite modules and types with finite cardinality * `RingTheory/Finiteness/Defs.lean`: definition of finitely generated (sub)modules and ideals * `RingTheory/Finiteness/Ideal.lean`: results on finitely generated ideals * `RingTheory/Finiteness/Lattice.lean`: finiteness of suprema in the submodule lattice * `RingTheory/Finiteness/Nakayama.lean`: Nakayama's lemma * `RingTheory/Finiteness/Nilpotent.lean`: results on nilpotent maps on finite modules * `RingTheory/Finiteness/Prod.lean`: results involving products of (sub)modules * `RingTheory/Finiteness/Projectve.lean`: results on finite projective modules * `RingTheory/Finiteness/Finsupp.lean`: results involving (`D`)`Finsupp` * `RingTheory/Finiteness/Subalgebra.lean`: results involving (sub)algebras * `RingTheory/Finiteness/TensorProduct.lean`: finiteness of the tensor products ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Category/FGModuleCat/Basic.lean Modified Mathlib/Algebra/Homology/LocalCohomology.lean Modified Mathlib/Algebra/Module/FinitePresentation.lean Modified Mathlib/Algebra/Module/LinearMap/Polynomial.lean Modified Mathlib/Algebra/Polynomial/Module/AEval.lean Modified Mathlib/AlgebraicGeometry/EllipticCurve/Weierstrass.lean Modified Mathlib/AlgebraicGeometry/PrimeSpectrum/Basic.lean Modified Mathlib/Analysis/CStarAlgebra/Module/Synonym.lean Modified Mathlib/Analysis/Normed/Lp/WithLp.lean Modified Mathlib/FieldTheory/Adjoin.lean Modified Mathlib/LinearAlgebra/BilinearForm/TensorProduct.lean Modified Mathlib/LinearAlgebra/Charpoly/BaseChange.lean Modified Mathlib/LinearAlgebra/Charpoly/ToMatrix.lean Modified Mathlib/LinearAlgebra/Dimension/Constructions.lean Modified Mathlib/LinearAlgebra/Dual.lean Modified Mathlib/LinearAlgebra/FiniteDimensional/Defs.lean Modified Mathlib/LinearAlgebra/FreeModule/Finite/Basic.lean Modified Mathlib/LinearAlgebra/TensorProduct/Finiteness.lean Modified Mathlib/LinearAlgebra/Trace.lean Modified Mathlib/RingTheory/DiscreteValuationRing/TFAE.lean Modified Mathlib/RingTheory/Filtration.lean Modified Mathlib/RingTheory/FinitePresentation.lean Deleted Mathlib/RingTheory/Finiteness.lean - theorem AlgHom.Finite.comp - theorem AlgHom.Finite.id - theorem AlgHom.Finite.of_comp_finite - theorem AlgHom.Finite.of_surjective - def AlgHom.Finite - theorem Ideal.FG.map - def Ideal.FG - theorem Ideal.exists_pow_le_of_le_radical_of_fg - theorem Ideal.exists_pow_le_of_le_radical_of_fg_radical - theorem Ideal.exists_radical_pow_le_of_fg - theorem Ideal.fg_ker_comp - theorem Module.Finite.Module.End.isNilpotent_iff_of_finite - theorem Module.Finite.equiv - theorem Module.Finite.equiv_iff - theorem Module.Finite.exists_comp_eq_id_of_projective - theorem Module.Finite.exists_fin' - theorem Module.Finite.exists_fin - theorem Module.Finite.finite_basis - theorem Module.Finite.iff_addGroup_fg - theorem Module.Finite.iff_addMonoid_fg - theorem Module.Finite.iff_fg - theorem Module.Finite.of_equiv_equiv - theorem Module.Finite.of_restrictScalars_finite - theorem Module.Finite.of_surjective - theorem Module.Finite.span_of_finite - theorem Module.Finite.trans - theorem Module.exists_isPrincipal_quotient_of_finite - theorem Module.exists_surjective_quotient_of_finite - theorem Module.finite_def - theorem Module.finite_iff_finite - theorem Module.finite_of_finite - theorem RingHom.Finite.comp - theorem RingHom.Finite.id - theorem RingHom.Finite.of_comp_finite - theorem RingHom.Finite.of_surjective - def RingHom.Finite - theorem Set.Finite.submoduleSpan - theorem Subalgebra.fg_bot_toSubmodule - theorem Submodule.FG.map - theorem Submodule.FG.map₂ - theorem Submodule.FG.mul - theorem Submodule.FG.pow - theorem Submodule.FG.prod - theorem Submodule.FG.stabilizes_of_iSup_eq - theorem Submodule.FG.sup - def Submodule.FG - theorem Submodule.exists_fg_le_eq_rTensor_inclusion - theorem Submodule.exists_mem_and_smul_eq_self_of_fg_of_le_smul - theorem Submodule.exists_sub_one_mem_and_smul_eq_zero_of_fg_of_le_smul - theorem Submodule.fg_biSup - theorem Submodule.fg_bot - theorem Submodule.fg_def - theorem Submodule.fg_finset_sup - theorem Submodule.fg_iSup - theorem Submodule.fg_iff_addSubmonoid_fg - theorem Submodule.fg_iff_add_subgroup_fg - theorem Submodule.fg_iff_compact - theorem Submodule.fg_iff_exists_fin_generating_family - theorem Submodule.fg_iff_exists_finite_generating_family - theorem Submodule.fg_induction - theorem Submodule.fg_ker_comp - theorem Submodule.fg_of_fg_map - theorem Submodule.fg_of_fg_map_injective - theorem Submodule.fg_of_fg_map_of_fg_inf_ker - theorem Submodule.fg_of_isUnit - theorem Submodule.fg_of_linearEquiv - theorem Submodule.fg_pi - theorem Submodule.fg_restrictScalars - theorem Submodule.fg_span - theorem Submodule.fg_span_singleton - theorem Submodule.fg_top - theorem Submodule.fg_unit Added Mathlib/RingTheory/Finiteness/Basic.lean + theorem AlgHom.Finite.comp + theorem AlgHom.Finite.id + theorem AlgHom.Finite.of_comp_finite + theorem AlgHom.Finite.of_surjective + theorem Module.Finite.equiv + theorem Module.Finite.equiv_iff + theorem Module.Finite.iff_fg + theorem Module.Finite.of_equiv_equiv + theorem Module.Finite.of_restrictScalars_finite + theorem Module.Finite.of_surjective + theorem Module.Finite.span_of_finite + theorem Module.Finite.trans + theorem RingHom.Finite.comp + theorem RingHom.Finite.id + theorem RingHom.Finite.of_comp_finite + theorem RingHom.Finite.of_surjective + theorem Submodule.FG.map + theorem Submodule.FG.stabilizes_of_iSup_eq + theorem Submodule.FG.sup + theorem Submodule.fg_biSup + theorem Submodule.fg_bot + theorem Submodule.fg_finset_sup + theorem Submodule.fg_iSup + theorem Submodule.fg_iff_compact + theorem Submodule.fg_induction + theorem Submodule.fg_of_fg_map + theorem Submodule.fg_of_fg_map_injective + theorem Submodule.fg_of_linearEquiv + theorem Submodule.fg_pi + theorem Submodule.fg_restrictScalars + theorem Submodule.fg_span + theorem Submodule.fg_span_singleton + theorem Submodule.fg_top Added Mathlib/RingTheory/Finiteness/Bilinear.lean + theorem Submodule.FG.map₂ Added Mathlib/RingTheory/Finiteness/Cardinality.lean + theorem Module.Finite.exists_fin' + theorem Module.Finite.finite_basis + theorem Module.finite_iff_finite + theorem Module.finite_of_finite + theorem Set.Finite.submoduleSpan Added Mathlib/RingTheory/Finiteness/Defs.lean + def AlgHom.Finite + def Ideal.FG + theorem Module.Finite.exists_fin + theorem Module.Finite.iff_addGroup_fg + theorem Module.Finite.iff_addMonoid_fg + theorem Module.finite_def + def RingHom.Finite + def Submodule.FG + theorem Submodule.fg_def + theorem Submodule.fg_iff_addSubmonoid_fg + theorem Submodule.fg_iff_add_subgroup_fg + theorem Submodule.fg_iff_exists_fin_generating_family + theorem Submodule.fg_iff_exists_finite_generating_family Added Mathlib/RingTheory/Finiteness/Finsupp.lean + theorem Submodule.fg_ker_comp + theorem Submodule.fg_of_fg_map_of_fg_inf_ker Added Mathlib/RingTheory/Finiteness/Ideal.lean + theorem Ideal.FG.map + theorem Ideal.exists_pow_le_of_le_radical_of_fg + theorem Ideal.exists_pow_le_of_le_radical_of_fg_radical + theorem Ideal.exists_radical_pow_le_of_fg + theorem Ideal.fg_ker_comp Added Mathlib/RingTheory/Finiteness/Lattice.lean Added Mathlib/RingTheory/Finiteness/Nakayama.lean + theorem Submodule.exists_mem_and_smul_eq_self_of_fg_of_le_smul + theorem Submodule.exists_sub_one_mem_and_smul_eq_zero_of_fg_of_le_smul Added Mathlib/RingTheory/Finiteness/Nilpotent.lean + theorem Module.Finite.Module.End.isNilpotent_iff_of_finite Added Mathlib/RingTheory/Finiteness/Prod.lean + theorem Submodule.FG.prod Added Mathlib/RingTheory/Finiteness/Projective.lean + theorem Module.Finite.exists_comp_eq_id_of_projective Added Mathlib/RingTheory/Finiteness/Subalgebra.lean + theorem Subalgebra.fg_bot_toSubmodule + theorem Submodule.FG.mul + theorem Submodule.FG.pow + theorem Submodule.fg_of_isUnit + theorem Submodule.fg_unit Added Mathlib/RingTheory/Finiteness/TensorProduct.lean + theorem Module.exists_isPrincipal_quotient_of_finite + theorem Module.exists_surjective_quotient_of_finite + theorem Submodule.exists_fg_le_eq_rTensor_inclusion Modified Mathlib/RingTheory/Flat/Basic.lean Modified Mathlib/RingTheory/Ideal/IdempotentFG.lean Modified Mathlib/RingTheory/IntegralClosure/IsIntegral/Basic.lean Modified Mathlib/RingTheory/Nakayama.lean Modified Mathlib/RingTheory/Noetherian/Defs.lean Modified Mathlib/RingTheory/Noetherian/Nilpotent.lean Modified Mathlib/RingTheory/OrzechProperty.lean Modified Mathlib/RingTheory/RingHom/Finite.lean Modified Mathlib/RingTheory/TensorProduct/Finite.lean Modified scripts/noshake.json 2024-11-14 09:20:47 4bd54c4 feat(LinearAlgebra/FreeModule/Int): index of submodules of free ℤ-modules (#18002) Add some versions of the lemma that a submodule of a finite-dimensional free ℤ-module is a subgroup of finite index if and only if it's isomorphic to the original module. The version I actually have a use for is the final multiplicative version: ```lean lemma subgroup_index_ne_zero_iff {m : ℕ} {H : Subgroup (Fin m → Multiplicative ℤ)} : H.index ≠ 0 ↔ Nonempty (H ≃* (Fin m → Multiplicative ℤ)) := by ``` From AperiodicMonotilesLean. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Module/Equiv/Defs.lean + theorem LinearEquiv.coe_toAddEquiv_symm Added Mathlib/LinearAlgebra/FreeModule/Int.lean + theorem Basis.SmithNormalForm.toAddSubgroup_index_eq_ite + theorem Basis.SmithNormalForm.toAddSubgroup_index_eq_pow_mul_prod + theorem Basis.SmithNormalForm.toAddSubgroup_index_ne_zero_iff + theorem Int.addSubgroup_index_ne_zero_iff + theorem Int.subgroup_index_ne_zero_iff + theorem Int.submodule_toAddSubgroup_index_ne_zero_iff 2024-11-14 09:00:34 e3d7d7f feat: weighted technical debt in PR summary (#19020) Add a "weighted technical debt average" to the PR summary. The weighted average is obtained by weighting each change by the inverse of the current value of the measure. Thus, to balance an increase in a category that has a small number of exceptions, you would have to decrease substantially more a category that has a large number of exceptions. The heuristic behind this choice is that category with few exceptions tend to be harder/more desirable to remove. This is not perfect, but it is a start! ESTIMATED CHANGES Modified scripts/technical-debt-metrics.sh 2024-11-14 07:02:17 334be41 feat: improve `fin_cases` names (#19004) Cases generated by `fin_cases` are now named according to the order in which they are generated. For example consider: ```lean import Mathlib.Tactic example (x y:Fin 3): (x:ℝ)+y < 10 := by fin_cases x, y <;> norm_num ``` Previously, the case corresponding where `x=1, y=2` would have been displayed as `case tail.head.tail.tail.head`, where it is now displayed as `case 1.2` If `fin_cases` is used to replace a goal with an existing name, the existing name will appear in the beginning, for example `goalname.1.2` etc. D`, `F --> E`, `G --> F`, all happening automatically. #17715 ESTIMATED CHANGES Modified Mathlib/Analysis/Calculus/ContDiff/FiniteDimension.lean +/- theorem contDiffOn_clm_apply +/- theorem contDiffOn_succ_iff_fderiv_apply +/- theorem contDiffOn_succ_of_fderiv_apply +/- theorem contDiff_clm_apply_iff +/- theorem contDiff_succ_iff_fderiv_apply 2024-10-24 19:02:24 2473c83 feat(SetTheory/Cardinal/Basic): there exists a well-founded linear ordering of any type (#18183) ESTIMATED CHANGES Modified Mathlib/SetTheory/Cardinal/Basic.lean + theorem exists_wellOrder Modified Mathlib/Topology/EMetricSpace/Paracompact.lean 2024-10-24 19:02:22 b8fa953 feat: Equivalence between OnePoint K and projective line over field K (#17266) Adding equivalence between OnePoint K and projective line over K, as discussed at https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/.E2.9C.94.20Projective.20extended.20real.20line/near/463620378 The [first PR for this](https://github.com/leanprover-community/mathlib4/pull/16152) became unable to automatically merge, so I am closing it and opening up this one. (I do have a proof extending this to a homeomorphism for K = Real, but perhaps it is more disciplined to do the Equiv first?) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/LinearAlgebra/Projectivization/Basic.lean Added Mathlib/Topology/Compactification/OnePointEquiv.lean + def OnePoint.equivProjectivization + theorem OnePoint.equivProjectivization_apply_coe + theorem OnePoint.equivProjectivization_apply_infinity + theorem OnePoint.equivProjectivization_symm_apply_mk 2024-10-24 18:27:41 8fd75ac chore: clean up "dangerous instance" porting notes (#18041) Most of these notes are about issues in Lean 3 that are no longer issues in Lean 4, so they can be easily removed. A few need some more explanation. ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/Equiv.lean Modified Mathlib/Algebra/Algebra/Hom.lean Modified Mathlib/Algebra/Algebra/NonUnitalHom.lean Modified Mathlib/Algebra/Group/Pointwise/Finset/Basic.lean Modified Mathlib/Algebra/Module/LinearMap/Defs.lean Modified Mathlib/Algebra/Ring/Hom/Defs.lean Modified Mathlib/Analysis/Seminorm.lean Modified Mathlib/CategoryTheory/Comma/Arrow.lean Modified Mathlib/GroupTheory/GroupAction/Hom.lean Modified Mathlib/LinearAlgebra/Ray.lean Modified Mathlib/Order/Heyting/Hom.lean 2024-10-24 16:57:55 9715344 feat: miscellaneous results about finrank (#18064) From `flt-regular`. ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/Dimension/RankNullity.lean + theorem LinearMap.lift_rank_eq_of_surjective + theorem LinearMap.lift_rank_range_add_rank_ker + theorem LinearMap.rank_eq_of_surjective + theorem LinearMap.rank_range_add_rank_ker + theorem Submodule.exists_of_finrank_lt + theorem Submodule.exists_smul_not_mem_of_rank_lt + theorem Submodule.finrank_quotient + theorem Submodule.finrank_quotient_add_finrank + theorem Submodule.rank_quotient_add_rank - theorem exists_smul_not_mem_of_rank_lt - theorem lift_rank_eq_of_surjective - theorem lift_rank_range_add_rank_ker - theorem rank_eq_of_surjective - theorem rank_quotient_add_rank - theorem rank_range_add_rank_ker Modified Mathlib/LinearAlgebra/FiniteDimensional.lean - theorem Submodule.finrank_quotient_add_finrank Modified Mathlib/NumberTheory/RamificationInertia.lean 2024-10-24 16:27:29 62a047f feat: SMul instance for AddSubmonoid and lemmas (#18096) + Introduce a `SMul` instance for two `AddSubmonoid`s and provide lemmas + Introduce a `Mul` instance for `AddSubgroup` + Prove lemmas for the existing `Mul` instance on `AddSubmonoid`, which are generalized from corresponding `Submodule` lemmas ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Subgroup/Pointwise.lean + theorem AddSubgroup.mul_toAddSubmonoid Modified Mathlib/Algebra/Group/Submonoid/Pointwise.lean + theorem AddSubmonoid.iSup_mul + theorem AddSubmonoid.mul_iSup +/- theorem AddSubmonoid.mul_le_mul +/- theorem AddSubmonoid.mul_le_mul_left +/- theorem AddSubmonoid.mul_le_mul_right +/- theorem AddSubmonoid.mul_subset_mul + theorem AddSubmonoid.mul_sup + theorem AddSubmonoid.smul_le + theorem AddSubmonoid.smul_le_smul + theorem AddSubmonoid.smul_mem_smul + theorem AddSubmonoid.sup_mul 2024-10-24 16:27:28 201aff3 feat(Algebra/CharP/Two): more lemmas on char two (#17483) ESTIMATED CHANGES Modified Mathlib/Algebra/CharP/Two.lean + theorem CharTwo.add_eq_iff_eq_add + theorem CharTwo.eq_add_iff_add_eq + theorem CharTwo.of_one_ne_zero_of_two_eq_zero +/- theorem CharTwo.sub_eq_add' +/- theorem CharTwo.two_eq_zero Modified Mathlib/Algebra/Ring/Parity.lean + theorem Nat.odd_add_one + theorem natCast_eq_one_of_odd_of_two_eq_zero + theorem natCast_eq_zero_of_even_of_two_eq_zero + theorem natCast_eq_zero_or_one_of_two_eq_zero 2024-10-24 16:27:26 6937f08 feat: Ind-objects are closed under filtered colimits (#17451) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Comma/Presheaf/Colimit.lean Added Mathlib/CategoryTheory/Limits/Indization/FilteredColimits.lean + theorem CategoryTheory.Limits.IndizationClosedUnderFilteredColimitsAux.exists_nonempty_limit_obj_of_colimit + theorem CategoryTheory.Limits.IndizationClosedUnderFilteredColimitsAux.exists_nonempty_limit_obj_of_isColimit + theorem CategoryTheory.Limits.IndizationClosedUnderFilteredColimitsAux.isFiltered + theorem CategoryTheory.Limits.isIndObject_colimit Modified Mathlib/CategoryTheory/Limits/Preserves/Yoneda.lean 2024-10-24 16:05:14 8786716 chore(Data/Matroid/Basic): document suffix convention (#18177) We add a few lines to the docstring for `Matroid` indicating the fact that theorem names use matroid predicates on sets as suffixes rather than prefixes. ESTIMATED CHANGES Modified Mathlib/Data/Matroid/Basic.lean 2024-10-24 16:05:12 491b175 chore(Condensed): resolve a few TODOs (#18167) These are not relevant now that #14027 has been merged. ESTIMATED CHANGES Modified Mathlib/Condensed/Discrete/Basic.lean Modified Mathlib/Condensed/Functors.lean Modified Mathlib/Condensed/Light/Functors.lean 2024-10-24 16:05:11 566f81b feat: another composition of `ContinuousOn` and `Continuous` (#18164) ESTIMATED CHANGES Modified Mathlib/Topology/ContinuousOn.lean + theorem ContinuousOn.image_comp_continuous 2024-10-24 16:05:10 8d463ae feat(RingTheory/Kaehler): kaehler differential module under base change (#18153) Port of https://github.com/leanprover-community/mathlib3/pull/17198 ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/RingTheory/Kaehler/TensorProduct.lean + def KaehlerDifferential.derivationTensorProduct + theorem KaehlerDifferential.derivationTensorProduct_algebraMap + theorem KaehlerDifferential.isBaseChange + theorem KaehlerDifferential.map_liftBaseChange_smul + def KaehlerDifferential.moduleBaseChange' + theorem KaehlerDifferential.mulActionBaseChange_smul_add + theorem KaehlerDifferential.mulActionBaseChange_smul_tmul + theorem KaehlerDifferential.mulActionBaseChange_smul_zero + def KaehlerDifferential.tensorKaehlerEquiv + theorem KaehlerDifferential.tensorKaehlerEquiv_left_inv + theorem KaehlerDifferential.tensorKaehlerEquiv_tmul 2024-10-24 15:52:26 ff832eb chore: use alias for duplicate lemma MvPolynomial.eval₂Hom_C_left (#17263) ESTIMATED CHANGES Modified Mathlib/Algebra/MvPolynomial/Monad.lean - theorem MvPolynomial.eval₂Hom_C_left 2024-10-24 15:52:24 e1f8635 refactor: create `CStarAlgebra` classes and refactor to use them (#16953) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/CStarAlgebra/Classes.lean Modified Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Basic.lean Modified Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Instances.lean Modified Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Order.lean Added Mathlib/Analysis/CStarAlgebra/ContinuousLinearMap.lean Added Mathlib/Analysis/CStarAlgebra/ContinuousMap.lean Modified Mathlib/Analysis/CStarAlgebra/GelfandDuality.lean +/- theorem gelfandStarTransform_naturality Modified Mathlib/Analysis/CStarAlgebra/Hom.lean +/- theorem IsSelfAdjoint.map_spectrum_real Modified Mathlib/Analysis/CStarAlgebra/Module/Constructions.lean Modified Mathlib/Analysis/CStarAlgebra/Module/Defs.lean +/- theorem CStarModule.inner_mul_inner_swap_le +/- theorem CStarModule.norm_eq_csSup +/- theorem CStarModule.norm_inner_le +/- theorem CStarModule.normedSpaceCore Modified Mathlib/Analysis/CStarAlgebra/Multiplier.lean Modified Mathlib/Analysis/CStarAlgebra/Spectrum.lean Modified Mathlib/Analysis/CStarAlgebra/Unitization.lean Added Mathlib/Analysis/CStarAlgebra/lpSpace.lean Modified Mathlib/Analysis/InnerProductSpace/Adjoint.lean Modified Mathlib/Analysis/InnerProductSpace/StarOrder.lean Modified Mathlib/Analysis/Normed/Lp/lpSpace.lean Modified Mathlib/Analysis/SpecialFunctions/ContinuousFunctionalCalculus/ExpLog.lean Modified Mathlib/Analysis/VonNeumannAlgebra/Basic.lean Modified Mathlib/Topology/ContinuousMap/Compact.lean 2024-10-24 15:52:23 a5a1a0d feat(CategoryTheory): the short exact sequence of abelian sheaves of a Mayer-Vietoris square (#15053) The long exact sequence of Ext associated to this short exact sequence will give the Mayer-Vietoris long exact sequence in sheaf cohomology. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Homology/Square.lean Modified Mathlib/CategoryTheory/Adjunction/Evaluation.lean Modified Mathlib/CategoryTheory/Sites/MayerVietorisSquare.lean + theorem CategoryTheory.GrothendieckTopology.MayerVietorisSquare.shortComplex_exact + theorem CategoryTheory.GrothendieckTopology.MayerVietorisSquare.shortComplex_shortExact +/- structure CategoryTheory.GrothendieckTopology.MayerVietorisSquare 2024-10-24 15:01:54 03be989 chore(Algebra/Module): split `Defs` a bit further (#18169) There are quite a few imports in `Module/Defs.lean` that are not needed for defining modules. So this PR rearranges the results in the file to postpone those imports. Changes: * The result involving `Invertible` go to `Module/Basic.lean` * The results involving `AddMonoid.End` goes to the new file `Module/End.lean` * The results involving `Opposite` go to the new file `Module/Opposite.lean`; the previous `Module/Opposites.lean` is now `Module/Equiv/Opposite.lean` (note: now in singular to match the other `Opposite` file) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Algebra/Operations.lean Modified Mathlib/Algebra/Algebra/Opposite.lean Modified Mathlib/Algebra/Algebra/Rat.lean Modified Mathlib/Algebra/Group/Submonoid/Pointwise.lean Modified Mathlib/Algebra/Module/Basic.lean + theorem invOf_two_smul_add_invOf_two_smul Modified Mathlib/Algebra/Module/Defs.lean - def AddCommGroup.uniqueIntModule - theorem AddMonoid.End.intCast_def - theorem AddMonoid.End.natCast_def - theorem Int.cast_smul_eq_zsmul - def Module.toAddMonoidEnd - theorem int_smul_eq_zsmul - theorem invOf_two_smul_add_invOf_two_smul - theorem map_intCast_smul - def smulAddHom - theorem smulAddHom_apply - theorem zsmul_eq_smul_cast Added Mathlib/Algebra/Module/End.lean + def AddCommGroup.uniqueIntModule + theorem AddMonoid.End.intCast_def + theorem AddMonoid.End.natCast_def + theorem Int.cast_smul_eq_zsmul + def Module.toAddMonoidEnd + theorem int_smul_eq_zsmul + theorem map_intCast_smul + def smulAddHom + theorem smulAddHom_apply + theorem zsmul_eq_smul_cast Modified Mathlib/Algebra/Module/Equiv/Basic.lean Renamed Mathlib/Algebra/Module/Opposites.lean to Mathlib/Algebra/Module/Equiv/Opposite.lean + theorem LinearMap.ext_ring_op Modified Mathlib/Algebra/Module/Hom.lean Modified Mathlib/Algebra/Module/LinearMap/Basic.lean Modified Mathlib/Algebra/Module/LinearMap/Defs.lean - theorem LinearMap.ext_ring_op Modified Mathlib/Algebra/Module/LinearMap/End.lean Added Mathlib/Algebra/Module/Opposite.lean Modified Mathlib/Algebra/NoZeroSMulDivisors/Basic.lean Modified Mathlib/Algebra/Periodic.lean Modified Mathlib/Algebra/Ring/AddAut.lean Modified Mathlib/Algebra/Ring/Subsemiring/MulOpposite.lean Modified Mathlib/CategoryTheory/Linear/Basic.lean Modified Mathlib/CategoryTheory/Preadditive/Basic.lean Modified Mathlib/Data/Set/Pointwise/SMul.lean Modified Mathlib/Data/ZMod/Basic.lean Modified Mathlib/LinearAlgebra/AffineSpace/Midpoint.lean Modified Mathlib/LinearAlgebra/CliffordAlgebra/Conjugation.lean Modified Mathlib/RingTheory/OreLocalization/Ring.lean Modified Mathlib/RingTheory/TwoSidedIdeal/Basic.lean Modified Mathlib/Topology/Algebra/Module/Basic.lean Modified Mathlib/Topology/Algebra/UniformMulAction.lean Modified scripts/noshake.json 2024-10-24 14:10:01 f72cbf5 feat(AlgebraicGeometry): define immersions (#18154) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/AlgebraicGeometry/Morphisms/ClosedImmersion.lean - theorem AlgebraicGeometry.IsClosedImmersion.isClosedEmbedding + theorem AlgebraicGeometry.Scheme.Hom.isClosedEmbedding Added Mathlib/AlgebraicGeometry/Morphisms/Immersion.lean + theorem AlgebraicGeometry.IsImmersion.comp_iff + theorem AlgebraicGeometry.IsImmersion.isImmersion_iff_exists + theorem AlgebraicGeometry.IsImmersion.of_comp + theorem AlgebraicGeometry.IsImmersion.stableUnderBaseChange + def AlgebraicGeometry.Scheme.Hom.coborderRange + theorem AlgebraicGeometry.Scheme.Hom.isLocallyClosed_range + def AlgebraicGeometry.Scheme.Hom.liftCoborder + theorem AlgebraicGeometry.Scheme.Hom.liftCoborder_ι + theorem AlgebraicGeometry.isImmersion_eq_inf 2024-10-24 13:22:54 3693a5a chore: split NumberTheory/NumberField/Discriminant (#18168) Splits NumberTheory/NumberField/Discriminant in Defs and Basic. Defs suffices for Cyclotomic/Discriminant, and doesn't require much analysis. Basic contains Hermite's theorem. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/NumberTheory/Cyclotomic/Discriminant.lean Modified Mathlib/NumberTheory/NumberField/ClassNumber.lean Renamed Mathlib/NumberTheory/NumberField/Discriminant.lean to Mathlib/NumberTheory/NumberField/Discriminant/Basic.lean - theorem Algebra.discr_eq_discr_of_toMatrix_coeff_isIntegral - theorem NumberField.coe_discr - theorem NumberField.discr_eq_discr - theorem NumberField.discr_eq_discr_of_algEquiv - theorem NumberField.discr_ne_zero - theorem Rat.numberField_discr Added Mathlib/NumberTheory/NumberField/Discriminant/Defs.lean + theorem Algebra.discr_eq_discr_of_toMatrix_coeff_isIntegral + theorem NumberField.coe_discr + theorem NumberField.discr_eq_discr + theorem NumberField.discr_eq_discr_of_algEquiv + theorem NumberField.discr_ne_zero + theorem Rat.numberField_discr 2024-10-24 13:13:03 6881842 fix: sign for percentage and preserve data file (#18170) Fixes the printing of a sign in the reported percentages. [Zulip](https://leanprover.zulipchat.com/#narrow/channel/113488-general/topic/bench.20summaries/near/478694897) ESTIMATED CHANGES Modified scripts/bench_summary.lean 2024-10-24 12:28:54 bc821d3 golf(Wiedijk/InverseTriangleSum): cleanup (#18152) After #18100, the `is_pos` and `is_neg` cases don't need to be separate any more, and `n` is not referenced explicitly. ESTIMATED CHANGES Modified Archive/Wiedijk100Theorems/InverseTriangleSum.lean 2024-10-24 12:28:53 dfb1dd3 chore(CategoryTheory): generalize universes for multiequalizers (#17997) Multi(co)equalizers involve two index sets. Until now, they were assumed to be in the same universe. In this PR, we allow two distinct universes. This shall ease the formalisation of (co)ends, which require heterogeneous universes. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Limits/Shapes/ConcreteCategory.lean +/- def CategoryTheory.Limits.Concrete.multiequalizerEquivAux +/- theorem CategoryTheory.Limits.Concrete.multiequalizerEquiv_apply +/- theorem CategoryTheory.Limits.Concrete.multiequalizer_ext Modified Mathlib/CategoryTheory/Limits/Shapes/Multiequalizer.lean +/- def CategoryTheory.Limits.Multicofork.ofπ +/- def CategoryTheory.Limits.Multifork.ofι +/- inductive CategoryTheory.Limits.WalkingMulticospan.Hom +/- inductive CategoryTheory.Limits.WalkingMulticospan +/- inductive CategoryTheory.Limits.WalkingMultispan.Hom +/- inductive CategoryTheory.Limits.WalkingMultispan 2024-10-24 11:47:42 ba2cab6 chore: move CategoryTheory.Comma.Presheaf to CategoryTheory.Comma.Presheaf.Basic (#18162) In preparation for #17451. ESTIMATED CHANGES Modified Mathlib.lean Renamed Mathlib/CategoryTheory/Comma/Presheaf.lean to Mathlib/CategoryTheory/Comma/Presheaf/Basic.lean Modified Mathlib/CategoryTheory/Limits/Presheaf.lean 2024-10-24 11:47:41 29a9413 feat: `swap` and `compl` of order relations (#18045) ESTIMATED CHANGES Modified Mathlib/Logic/Function/Basic.lean + theorem Function.swap_ge + theorem Function.swap_gt + theorem Function.swap_le + theorem Function.swap_lt Modified Mathlib/Order/Basic.lean + theorem compl_ge + theorem compl_gt + theorem compl_le + theorem compl_lt 2024-10-24 11:27:38 f7b57bc feat: `closedBall` and `ball` are singletons in `Subsingleton` (#18114) ESTIMATED CHANGES Modified Mathlib/Topology/MetricSpace/Pseudo/Defs.lean + theorem Metric.ball_eq_singleton_of_subsingleton + theorem Metric.closedBall_eq_singleton_of_subsingleton 2024-10-24 10:44:05 0a0178f feat(Algebra/Category/ModuleCat/Presheaf): epi and mono in the category of presheaves of modules (#18159) In the category of presheaves of modules, epi and mono can be characterized in terms of surjective/injective maps. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Category/ModuleCat/Presheaf/EpiMono.lean + theorem PresheafOfModules.epi_iff_surjective + theorem PresheafOfModules.epi_of_surjective + theorem PresheafOfModules.injective_of_mono + theorem PresheafOfModules.mono_iff_surjective + theorem PresheafOfModules.mono_of_injective + theorem PresheafOfModules.surjective_of_epi 2024-10-24 10:44:03 a5a0711 feat(RingTheory/Ideal/Norm): Generalize `Ideal.finite_setOf_absNorm_eq` and add `Ideal.finite_setOf_absNorm_le` (#18132) Also: - prove some results about the norm of `nonZeroDivisors` ideals - golf the proof of Dirichlet unit theorem using the generalization - clean up the import of `RingTheory.Ideal.Norm` This PR is part of the proof of the Analytic Class Number Formula. ESTIMATED CHANGES Modified Mathlib/NumberTheory/NumberField/Units/DirichletTheorem.lean - theorem NumberField.Units.dirichletUnitTheorem.seq_norm_ne_zero Modified Mathlib/RingTheory/Ideal/Norm.lean + theorem Ideal.absNorm_ne_zero_iff_mem_nonZeroDivisors +/- theorem Ideal.absNorm_ne_zero_of_nonZeroDivisors + theorem Ideal.absNorm_pos_iff_mem_nonZeroDivisors + theorem Ideal.absNorm_pos_of_nonZeroDivisors + theorem Ideal.card_norm_le_eq_card_norm_le_add_one +/- theorem Ideal.finite_setOf_absNorm_eq + theorem Ideal.finite_setOf_absNorm_le 2024-10-24 10:36:55 a86c9d3 feat: the monoidal structure on the category of presheaves of modules (#17300) This contribution was created as part of the AIM workshop "Formalizing algebraic geometry" in June 2024. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Category/ModuleCat/Monoidal/Basic.lean - theorem ModuleCat.MonoidalCategory.hom_apply + theorem ModuleCat.MonoidalCategory.tensorHom_tmul + theorem ModuleCat.MonoidalCategory.tensorLift_tmul + theorem ModuleCat.MonoidalCategory.tensor_ext + theorem ModuleCat.MonoidalCategory.tensor_ext₃' + theorem ModuleCat.MonoidalCategory.tensor_ext₃ Modified Mathlib/Algebra/Category/ModuleCat/Presheaf.lean + def PresheafOfModules.isoMk Added Mathlib/Algebra/Category/ModuleCat/Presheaf/Monoidal.lean + theorem PresheafOfModules.Monoidal.tensorObj_map_tmul Modified Mathlib/CategoryTheory/Monoidal/Internal/Module.lean 2024-10-24 10:17:22 a61fcb1 feat(NumberField/CanonicalEmbedding): prove that `idealLattice` is a `ZLattice` (#18130) This PR is part of the proof of the Analytic Class Number Formula. ESTIMATED CHANGES Modified Mathlib/NumberTheory/NumberField/CanonicalEmbedding/Basic.lean +/- theorem NumberField.canonicalEmbedding.mem_span_latticeBasis + theorem NumberField.mixedEmbedding.fundamentalDomain_idealLattice + theorem NumberField.mixedEmbedding.fundamentalDomain_integerLattice + theorem NumberField.mixedEmbedding.mem_idealLattice +/- theorem NumberField.mixedEmbedding.mem_span_fractionalIdealLatticeBasis +/- theorem NumberField.mixedEmbedding.mem_span_latticeBasis + theorem NumberField.mixedEmbedding.span_idealLatticeBasis 2024-10-24 09:58:17 30d27d2 chore(NumberTheory/Harmonic): shake imports (#18158) This file seems to contain many unused imports. Some of them were around from the start of the file, and some were added in #11750 for reasons I don't entirely understand. (Context: I'm checking which `Defs.lean` files actually only provide definitions.) ESTIMATED CHANGES Modified Mathlib/NumberTheory/Harmonic/Defs.lean Modified scripts/noshake.json 2024-10-24 09:37:24 e82d87a feat: LoC mode for `lake exe pole` (#18157) Enables `lake exe pole --loc` which uses lines of code as a quick proxy for the instruction count. This allows running `lake exe pole` on commits that have not been through the speed center, or in cases where it's convenient to avoid the speed center. ESTIMATED CHANGES Modified LongestPole/Main.lean + def countLOC 2024-10-24 07:23:49 893b3a8 feat(Algebra/Category/ModuleCat): the free presheaf of modules on a presheaf of sets (#16755) This contribution was created as part of the AIM workshop "Formalizing algebraic geometry" in June 2024. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Category/ModuleCat/Adjunctions.lean + theorem ModuleCat.adj_homEquiv + theorem ModuleCat.freeDesc_apply + def ModuleCat.freeHomEquiv + theorem ModuleCat.free_hom_ext + theorem ModuleCat.free_map_apply Added Mathlib/Algebra/Category/ModuleCat/Presheaf/Free.lean + theorem PresheafOfModules.freeAdjunction_homEquiv + theorem PresheafOfModules.freeAdjunction_unit_app + theorem PresheafOfModules.free_hom_ext Modified Mathlib/Algebra/Category/ModuleCat/Presheaf/Sheafification.lean + theorem PresheafOfModules.sheafificationAdjunction_homEquiv_apply - theorem PresheafOfModules.sheaififcationAdjunction_homEquiv_apply Modified Mathlib/RepresentationTheory/GroupCohomology/Resolution.lean 2024-10-24 05:46:18 cd1f493 chore: update Mathlib dependencies 2024-10-24 (#18155) This PR updates the Mathlib dependencies. ESTIMATED CHANGES Modified lake-manifest.json 2024-10-24 05:08:04 923081a feat(AlgebraicGeometry/Restrict): more API for `Scheme.Opens`. (#17968) ESTIMATED CHANGES Modified Mathlib/AlgebraicGeometry/AffineScheme.lean Modified Mathlib/AlgebraicGeometry/Morphisms/Constructors.lean Modified Mathlib/AlgebraicGeometry/Restrict.lean + def AlgebraicGeometry.Scheme.Hom.isoImage + theorem AlgebraicGeometry.Scheme.Hom.isoImage_hom_ι + theorem AlgebraicGeometry.Scheme.Hom.isoImage_inv_ι +/- theorem AlgebraicGeometry.Scheme.Hom.map_resLE + theorem AlgebraicGeometry.Scheme.Hom.preimageIso_hom_ι + theorem AlgebraicGeometry.Scheme.Hom.preimageIso_inv_ι +/- theorem AlgebraicGeometry.Scheme.Hom.resLE_id +/- theorem AlgebraicGeometry.Scheme.Hom.resLE_map + def AlgebraicGeometry.Scheme.homOfLE + theorem AlgebraicGeometry.Scheme.homOfLE_app + theorem AlgebraicGeometry.Scheme.homOfLE_apply + theorem AlgebraicGeometry.Scheme.homOfLE_base + theorem AlgebraicGeometry.Scheme.homOfLE_homOfLE + theorem AlgebraicGeometry.Scheme.homOfLE_rfl + theorem AlgebraicGeometry.Scheme.homOfLE_ι + def AlgebraicGeometry.Scheme.isoOfEq + theorem AlgebraicGeometry.Scheme.isoOfEq_hom_ι + theorem AlgebraicGeometry.Scheme.isoOfEq_inv_ι + theorem AlgebraicGeometry.Scheme.isoOfEq_rfl - theorem AlgebraicGeometry.Scheme.map_basicOpen' + theorem AlgebraicGeometry.Scheme.map_basicOpen - theorem AlgebraicGeometry.Scheme.restrictFunctor_map_app - theorem AlgebraicGeometry.Scheme.restrictFunctor_map_app_aux - theorem AlgebraicGeometry.Scheme.restrictFunctor_map_base - theorem AlgebraicGeometry.Scheme.restrictFunctor_map_ofRestrict - def AlgebraicGeometry.Scheme.restrictIsoOfEq - def AlgebraicGeometry.Scheme.restrictRestrict - theorem AlgebraicGeometry.Scheme.restrictRestrict_hom_restrict - theorem AlgebraicGeometry.Scheme.restrictRestrict_inv_restrict_restrict + theorem AlgebraicGeometry.Scheme.toIso_inv_ι + def AlgebraicGeometry.Scheme.topIso + theorem AlgebraicGeometry.Scheme.ι_image_homOfLE_le_ι_image + theorem AlgebraicGeometry.Scheme.ι_toIso_inv - theorem AlgebraicGeometry.pullbackRestrictIsoRestrict_hom_restrict + theorem AlgebraicGeometry.pullbackRestrictIsoRestrict_hom_ι 2024-10-24 04:49:47 c46a2f1 feat(CategoryTheory/Comma): subcategory defined by morphism properties (#18088) Given functors `L : A ⥤ T` and `R : B ⥤ T` and morphism properties `P`, `Q` and `W` on `T`, `A` and `B` respectively, we define the subcategory `P.Comma L R Q W` of `Comma L R` where - objects are objects of `Comma L R` with the structural morphism satisfying `P`, and - morphisms are morphisms of `Comma L R` where the left morphism satisfies `Q` and the right morphism satisfies `W`. For an object `X : T`, this specializes to `P.Over Q X` which is the subcategory of `Over X` where the structural morphism satisfies `P` and where the horizontal morphisms satisfy `Q`. Common examples of the latter are e.g. the category of schemes étale (finite, affine, etc.) over a base `X`. Here `Q = ⊤`. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/CategoryTheory/Comma/Basic.lean + theorem CategoryTheory.Comma.inv_left + theorem CategoryTheory.Comma.inv_left_hom_right + theorem CategoryTheory.Comma.inv_right + theorem CategoryTheory.Comma.left_hom_inv_right Added Mathlib/CategoryTheory/MorphismProperty/Comma.lean + def CategoryTheory.MorphismProperty.Comma.Hom.Simps.hom + def CategoryTheory.MorphismProperty.Comma.Hom.comp + theorem CategoryTheory.MorphismProperty.Comma.Hom.ext' + theorem CategoryTheory.MorphismProperty.Comma.Hom.hom_mk + structure CategoryTheory.MorphismProperty.Comma.Hom + theorem CategoryTheory.MorphismProperty.Comma.comp_hom + def CategoryTheory.MorphismProperty.Comma.forget + def CategoryTheory.MorphismProperty.Comma.forgetFullyFaithful + def CategoryTheory.MorphismProperty.Comma.homFromCommaOfIsIso + theorem CategoryTheory.MorphismProperty.Comma.hom_homFromCommaOfIsIso + def CategoryTheory.MorphismProperty.Comma.id + theorem CategoryTheory.MorphismProperty.Comma.id_hom + theorem CategoryTheory.MorphismProperty.Comma.inv_hom + def CategoryTheory.MorphismProperty.Comma.isoFromComma + def CategoryTheory.MorphismProperty.Comma.isoMk + def CategoryTheory.MorphismProperty.Over.Hom.mk + def CategoryTheory.MorphismProperty.Under.Hom.mk Modified Mathlib/CategoryTheory/MorphismProperty/Composition.lean 2024-10-24 04:49:46 a5464da feat: `LinearEquiv.congrQuadraticMap` and `LinearEquiv.congrRight₂` (#17454) `LinearEquiv.congrQuadraticMap` matches `LinearMap.compQuadraticMap`, while `LinearEquiv.congrRight₂` somewhat matches `LinearMap.compr₂`. Used in #14988 ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/BilinearForm/Hom.lean + theorem LinearEquiv.congrRight_symm + def LinearEquiv.congrRight₂ + theorem LinearEquiv.congrRight₂_apply + theorem LinearEquiv.congrRight₂_refl + theorem LinearEquiv.congrRight₂_trans Modified Mathlib/LinearAlgebra/QuadraticForm/Basic.lean + def LinearEquiv.congrQuadraticMap + theorem LinearEquiv.congrQuadraticMap_refl + theorem LinearEquiv.congrQuadraticMap_symm 2024-10-24 04:37:46 1f4900e feat(CategoryTheory): translate between Yoneda and "relative Yoneda" (#17449) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Comma/Presheaf.lean + theorem CategoryTheory.CostructuredArrow.overEquivPresheafCostructuredArrow_functor_map_toOverCompCoyoneda + theorem CategoryTheory.CostructuredArrow.overEquivPresheafCostructuredArrow_functor_map_toOverCompYoneda + theorem CategoryTheory.CostructuredArrow.overEquivPresheafCostructuredArrow_inverse_map_toOverCompCoyoneda + theorem CategoryTheory.CostructuredArrow.overEquivPresheafCostructuredArrow_inverse_map_toOverCompYoneda + def CategoryTheory.CostructuredArrow.toOverCompCoyoneda + def CategoryTheory.CostructuredArrow.toOverCompYoneda 2024-10-24 00:56:07 15e91eb chore: golf a messy Matrix proof (#18097) Using the new `Matrix.ofLinearEquiv` casting function here (modified in this PR to take an explicit argument) makes everything go through cleanly, resolving the porting note. ESTIMATED CHANGES Modified Mathlib/Data/Matrix/Basic.lean Modified Mathlib/Data/Matrix/Basis.lean + theorem Matrix.stdBasisMatrix_eq_of_single_single Modified Mathlib/LinearAlgebra/StdBasis.lean 2024-10-24 00:12:10 ed80487 feat(Matrix): extracting entries as a linear map (#17535) Strictly speaking, something like this was available as `LinearMap.proj`, but actually using it in practice is awkward as unification struggles (see line 1227 in this PR). I'm happy to take name suggestions, as well as ideas for other generalities. ESTIMATED CHANGES Modified Mathlib/Data/Matrix/Basic.lean + theorem AddEquiv.entryAddHom_comp_mapMatrix + theorem AddMonoidHom.entryAddMonoidHom_comp_mapMatrix + theorem LinearEquiv.entryLinearMap_comp_mapMatrix + theorem LinearEquiv.mapMatrix_toLinearMap + theorem LinearMap.entryLinearMap_comp_mapMatrix + theorem Matrix.coe_ofAddEquiv + theorem Matrix.coe_ofAddEquiv_symm + theorem Matrix.coe_ofLinearEquiv + theorem Matrix.coe_ofLinearEquiv_symm + def Matrix.entryAddHom + theorem Matrix.entryAddHom_eq_comp + def Matrix.entryAddMonoidHom + theorem Matrix.entryAddMonoidHom_eq_comp + theorem Matrix.entryAddMonoidHom_toAddHom + def Matrix.entryLinearMap + theorem Matrix.entryLinearMap_eq_comp + theorem Matrix.entryLinearMap_toAddHom + theorem Matrix.entryLinearMap_toAddMonoidHom + theorem Matrix.evalAddMonoidHom_comp_diagAddMonoidHom + def Matrix.ofAddEquiv + def Matrix.ofLinearEquiv + theorem Matrix.proj_comp_diagLinearMap 2024-10-23 23:43:57 45deead feat: add First Derivative Test from calculus (#16802) Add proofs of the First Derivative Test, in max and min forms, using neighborhood filters. New branch due to merge conflict in the [old](https://github.com/leanprover-community/mathlib4/tree/bjoernkjoshanssen_firstderivativetest) branch. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/Calculus/FirstDerivativeTest.lean + theorem isLocalMax_of_deriv' + theorem isLocalMax_of_deriv + theorem isLocalMax_of_deriv_Ioo + theorem isLocalMin_of_deriv' + theorem isLocalMin_of_deriv + theorem isLocalMin_of_deriv_Ioo Modified Mathlib/Topology/ContinuousOn.lean + theorem ContinuousOn.union_continuousAt + theorem nhds_eq_nhdsWithin_sup_nhdsWithin + theorem nhds_of_Ici_Iic + theorem punctured_nhds_eq_nhdsWithin_sup_nhdsWithin + theorem union_mem_nhds_of_mem_nhdsWithin Modified Mathlib/Topology/Order/LocalExtr.lean + theorem isLocalMax_of_mono_anti' + theorem isLocalMin_of_anti_mono' Added Mathlib/Topology/Order/OrderClosedExtr.lean + theorem isLocalMax_of_mono_anti + theorem isLocalMin_of_anti_mono 2024-10-23 22:40:40 f375907 feat(Analysis/Complex): Prove that `Complex.ofReal` is a uniform embedding (#17943) We deduce from that the other direction of `Filter.Tendsto.ofReal`. This PR is part of the proof of the Analytic Class Number Formula. ESTIMATED CHANGES Modified Mathlib/Analysis/Complex/Basic.lean + theorem Complex.isUniformEmbedding_ofReal + theorem Filter.tendsto_ofReal_iff 2024-10-23 22:11:10 8204896 feat(RingTheory/Ideal/Pointwise): Add `IsPrime.smul` and `IsPrime.smul_iff` (#18147) This PR adds lemmas `IsPrime.smul` and `IsPrime.smul_iff`. ESTIMATED CHANGES Modified Mathlib/RingTheory/Ideal/Maps.lean Modified Mathlib/RingTheory/Ideal/Pointwise.lean + theorem Ideal.IsPrime.smul + theorem Ideal.IsPrime.smul_iff 2024-10-23 22:11:09 b65e87a feat(Tactic/ReduceModChar): add fast modular exponentiation (#18030) This PR (done by Markus Himmel, with minor clean-up from Quang Dao) introduces fast modular exponentiation to the `reduce_mod_char` tactic. This allows for exponentiating large number reduced modulo `n` for some `n`. An example is: ``` example : (-126432 : ZMod 1235412223) ^ 12355342321 = 1001528716 := by reduce_mod_char ``` See the new tests for more examples. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/NumberTheory/LucasPrimality.lean Modified Mathlib/Tactic.lean Modified Mathlib/Tactic/NormNum/Core.lean Added Mathlib/Tactic/NormNum/PowMod.lean + theorem Mathlib.Meta.NormNum.IsNatPowModT.bit0 + theorem Mathlib.Meta.NormNum.IsNatPowModT.bit1 + theorem Mathlib.Meta.NormNum.IsNatPowModT.run + theorem Mathlib.Meta.NormNum.IsNatPowModT.trans + structure Mathlib.Meta.NormNum.IsNatPowModT + theorem Mathlib.Meta.NormNum.natPow_one_natMod + theorem Mathlib.Meta.NormNum.natPow_zero_natMod_one + theorem Mathlib.Meta.NormNum.natPow_zero_natMod_succ_succ + theorem Mathlib.Meta.NormNum.natPow_zero_natMod_zero Modified Mathlib/Tactic/ReduceModChar.lean +/- theorem Tactic.ReduceModChar.CharP.isInt_of_mod + theorem Tactic.ReduceModChar.CharP.isNat_pow + def Tactic.ReduceModChar.normBareNumeral Modified test/norm_num_ext.lean Modified test/reduce_mod_char.lean + def q' 2024-10-23 21:11:15 5b9d342 feat(FieldTheory/Fixed): Finite group surjects onto automorphisms fixing the fixed field (#18143) This PR shows that if a finite group `G` acts on a field `F`, then `G` surjects onto `F ≃ₐ[FixedPoints.subfield G F] F`. We already have this result in the case that `G` acts faithfully, so for the general case it's just a matter of quotienting by the kernel of the action. ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/Equiv.lean Modified Mathlib/FieldTheory/Fixed.lean +/- theorem FixedPoints.finrank_eq_card + def FixedPoints.toAlgAutMulEquiv + theorem FixedPoints.toAlgAut_bijective + theorem FixedPoints.toAlgAut_surjective +/- def FixedPoints.toAlgHomEquiv +/- theorem FixedPoints.toAlgHom_bijective 2024-10-23 21:11:13 ca0f139 feat(SetTheory/Cardinal/Aleph): introduce `omega` function (#17669) We introduce the `preOmega` function enumerating the initial ordinals, as well as the more standard `omega` skipping over finite ordinals. ESTIMATED CHANGES Modified Mathlib/SetTheory/Cardinal/Aleph.lean + theorem Ordinal.coe_preOmega + theorem Ordinal.isInitial_omega + theorem Ordinal.isInitial_preOmega + theorem Ordinal.isNormal_omega + theorem Ordinal.isNormal_preOmega + theorem Ordinal.le_omega_self + theorem Ordinal.le_preOmega_self + theorem Ordinal.mem_range_omega_iff + theorem Ordinal.mem_range_preOmega_iff + theorem Ordinal.omega0_le_omega + theorem Ordinal.omega0_le_preOmega_iff + theorem Ordinal.omega0_lt_omega1 + theorem Ordinal.omega0_lt_preOmega_iff + def Ordinal.omega + theorem Ordinal.omega_eq_preOmega + theorem Ordinal.omega_le_omega - theorem Ordinal.omega_lt_omega1 + theorem Ordinal.omega_lt_omega + theorem Ordinal.omega_max + theorem Ordinal.omega_strictMono + theorem Ordinal.omega_zero + def Ordinal.preOmega + theorem Ordinal.preOmega_le_of_forall_lt + theorem Ordinal.preOmega_le_preOmega + theorem Ordinal.preOmega_lt_preOmega + theorem Ordinal.preOmega_max + theorem Ordinal.preOmega_natCast + theorem Ordinal.preOmega_ofNat + theorem Ordinal.preOmega_omega0 + theorem Ordinal.preOmega_strictMono + theorem Ordinal.preOmega_zero + theorem Ordinal.range_omega + theorem Ordinal.range_preOmega Modified Mathlib/SetTheory/Cardinal/Cofinality.lean - theorem Ordinal.sup_sequence_lt_omega1 Modified Mathlib/SetTheory/Ordinal/Basic.lean 2024-10-23 20:36:11 2d90b18 fix(Algebra/DirectSum/Internal): delete some instances (#18149) See [Zulip](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/rewrite.20failure.20on.20Subalgebra/near/478555535) discussion. One of these instances was breaking user code. ESTIMATED CHANGES Modified Mathlib/Algebra/DirectSum/Internal.lean 2024-10-23 20:36:10 2afe56b chore: `prodAssoc` as an additive/multiplicative or linear equivalence (#17254) Record multiplicativity/linearity of the equivalence `(E × F) × G ≃ E × (F × G)`. Adapt the construction of `LinearIsometryEquiv.prodAssoc` to use this. ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Prod.lean + theorem MulEquiv.coe_prodAssoc + theorem MulEquiv.coe_prodAssoc_symm + def MulEquiv.prodAssoc Modified Mathlib/Analysis/Normed/Operator/LinearIsometry.lean Modified Mathlib/LinearAlgebra/Prod.lean + theorem LinearEquiv.fst_comp_prodAssoc + def LinearEquiv.prodAssoc + theorem LinearEquiv.snd_comp_prodAssoc 2024-10-23 19:30:45 a6c3c52 feat: `f a ≤ f (succ a) → Monotone f` (#18008) From GrowthInGroups ESTIMATED CHANGES Modified Mathlib/Algebra/Order/SuccPred.lean + theorem antitoneOn_of_add_one_le + theorem antitoneOn_of_le_sub_one + theorem antitone_of_add_one_le + theorem antitone_of_le_sub_one + theorem monotoneOn_of_le_add_one + theorem monotoneOn_of_sub_one_le + theorem monotone_of_le_add_one + theorem monotone_of_sub_one_le + theorem strictAntiOn_of_add_one_lt + theorem strictAntiOn_of_lt_sub_one + theorem strictAnti_of_add_one_lt + theorem strictAnti_of_lt_sub_one + theorem strictMonoOn_of_lt_add_one + theorem strictMonoOn_of_sub_one_lt + theorem strictMono_of_lt_add_one + theorem strictMono_of_sub_one_lt Modified Mathlib/Order/Interval/Set/Monotone.lean - theorem strictAnti_of_lt_pred - theorem strictAnti_of_succ_lt - theorem strictMono_of_lt_succ - theorem strictMono_of_pred_lt Modified Mathlib/Order/SuccPred/Archimedean.lean + theorem antitoneOn_of_le_pred + theorem antitoneOn_of_succ_le + theorem antitone_of_le_pred + theorem antitone_of_succ_le + theorem monotoneOn_of_le_succ + theorem monotoneOn_of_pred_le + theorem monotone_of_le_succ + theorem monotone_of_pred_le + theorem strictAntiOn_of_lt_pred + theorem strictAntiOn_of_succ_lt + theorem strictAnti_of_lt_pred + theorem strictAnti_of_succ_lt + theorem strictMonoOn_of_lt_succ + theorem strictMonoOn_of_pred_lt + theorem strictMono_of_lt_succ + theorem strictMono_of_pred_lt 2024-10-23 19:07:34 d747c92 feat(AlgebraicGeometry): spreading out morphisms on stalks (#17987) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/AlgebraicGeometry/AffineScheme.lean + theorem AlgebraicGeometry.IsAffineOpen.isoSpec_hom +/- theorem AlgebraicGeometry.IsAffineOpen.opensRange_fromSpec + def AlgebraicGeometry.Scheme.Opens.toSpecΓ Added Mathlib/AlgebraicGeometry/SpreadingOut.lean + theorem AlgebraicGeometry.Scheme.IsGermInjective.Spec + theorem AlgebraicGeometry.Scheme.IsGermInjective.of_openCover + theorem AlgebraicGeometry.Scheme.exists_germ_injective + theorem AlgebraicGeometry.Scheme.exists_le_and_germ_injective + theorem AlgebraicGeometry.exists_lift_of_germInjective + theorem AlgebraicGeometry.exists_lift_of_germInjective_aux + theorem AlgebraicGeometry.injective_germ_basicOpen + theorem AlgebraicGeometry.isGermInjectiveAt_iff_of_isOpenImmersion + theorem AlgebraicGeometry.spread_out_of_isGermInjective + theorem AlgebraicGeometry.spread_out_unique_of_isGermInjective Modified Mathlib/AlgebraicGeometry/Stalk.lean + def AlgebraicGeometry.Scheme.Opens.fromSpecStalkOfMem + theorem AlgebraicGeometry.Scheme.Opens.fromSpecStalkOfMem_toSpecΓ + theorem AlgebraicGeometry.Scheme.fromSpecStalk_toSpecΓ 2024-10-23 16:59:52 8a18755 chore(Order): delete "`simp` can prove this" porting notes (#18125) This PR checks all porting notes of the form "`simp` can prove this" and if this is indeed the case (and the proof appears to make sense), removes the associated porting note. ESTIMATED CHANGES Modified Mathlib/Order/Basic.lean Modified Mathlib/Order/Chain.lean Modified Mathlib/Order/Hom/Basic.lean Modified Mathlib/Order/Ideal.lean Modified Mathlib/Order/Interval/Finset/Basic.lean Modified Mathlib/Order/Interval/Finset/Fin.lean Modified Mathlib/Order/Interval/Finset/Nat.lean Modified Mathlib/Order/Interval/Multiset.lean Modified Mathlib/Order/Interval/Set/Basic.lean Modified Mathlib/Order/Interval/Set/UnorderedInterval.lean Modified Mathlib/Order/Irreducible.lean Modified Mathlib/Order/PartialSups.lean 2024-10-23 16:51:33 9f64b5d feat(CategoryTheory/ChosenFiniteProducts): Monoidal functors between categories with chosen products (#17613) Introduce a counterpart of `Functor.toMonoidalFunctorOfHasFiniteProducts` for categories with chosen finite products. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/ChosenFiniteProducts.lean + def CategoryTheory.Functor.toOplaxMonoidalFunctorOfChosenFiniteProducts 2024-10-23 15:47:00 9e3c142 chore(Algebra/Category): restore lemmas lost from the port (#18112) ESTIMATED CHANGES Modified Mathlib/Algebra/Category/Ring/Basic.lean + theorem CommRingCat.ofHom_apply' + theorem CommRingCat.ofHom_apply + theorem CommSemiRingCat.ofHom_apply' + theorem CommSemiRingCat.ofHom_apply + theorem RingCat.ofHom_apply' + theorem RingCat.ofHom_apply + theorem SemiRingCat.ofHom_apply' 2024-10-23 15:46:59 0ca090b feat(SetTheory/Ordinal/Rank): in a well-order, `IsWellFounded.rank = Ordinal.typein` (#18079) ESTIMATED CHANGES Modified Mathlib/SetTheory/Ordinal/Rank.lean + theorem Acc.mem_range_rank_of_le + theorem IsWellFounded.mem_range_rank_of_le + theorem IsWellFounded.rank_eq_typein 2024-10-23 15:18:42 9ad8de0 chore(LinearAlgebra): delete "`simp` can prove this" porting notes (#18122) This PR checks all porting notes of the form "`simp` can prove this" and if this is indeed the case (and the proof appears to make sense), removes the associated porting note. ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/Alternating/Basic.lean Modified Mathlib/LinearAlgebra/Dimension/Constructions.lean Modified Mathlib/LinearAlgebra/ExteriorAlgebra/Basic.lean Modified Mathlib/LinearAlgebra/Finsupp.lean Modified Mathlib/LinearAlgebra/Isomorphisms.lean Modified Mathlib/LinearAlgebra/Lagrange.lean Modified Mathlib/LinearAlgebra/Matrix/Charpoly/Univ.lean Modified Mathlib/LinearAlgebra/Matrix/Determinant/Basic.lean Modified Mathlib/LinearAlgebra/Multilinear/Basic.lean Modified Mathlib/LinearAlgebra/Span.lean 2024-10-23 15:18:40 d122235 chore(Topology): delete "`simp` can prove this" porting notes (#18120) This PR checks all porting notes of the form "`simp` can prove this" and if this is indeed the case (and the proof appears to make sense), removes the associated porting note. ESTIMATED CHANGES Modified Mathlib/Topology/Algebra/Module/Basic.lean Modified Mathlib/Topology/Algebra/Module/FiniteDimension.lean Modified Mathlib/Topology/Basic.lean Modified Mathlib/Topology/FiberBundle/Basic.lean Modified Mathlib/Topology/Instances/AddCircle.lean Modified Mathlib/Topology/MetricSpace/HausdorffDistance.lean 2024-10-23 15:18:39 3b0cdab chore(RingTheory): delete "`simp` can prove this" porting notes (#18119) This PR checks all porting notes of the form "`simp` can prove this" and if this is indeed the case (and the proof appears to make sense), removes the associated porting note. ESTIMATED CHANGES Modified Mathlib/RingTheory/AlgebraicIndependent.lean Modified Mathlib/RingTheory/DiscreteValuationRing/Basic.lean Modified Mathlib/RingTheory/GradedAlgebra/HomogeneousIdeal.lean Modified Mathlib/RingTheory/HahnSeries/Basic.lean Modified Mathlib/RingTheory/HahnSeries/Multiplication.lean Modified Mathlib/RingTheory/Ideal/Operations.lean Modified Mathlib/RingTheory/IsAdjoinRoot.lean Modified Mathlib/RingTheory/LaurentSeries.lean Modified Mathlib/RingTheory/Localization/Basic.lean Modified Mathlib/RingTheory/Localization/Defs.lean Modified Mathlib/RingTheory/Localization/Submodule.lean Modified Mathlib/RingTheory/Polynomial/Cyclotomic/Eval.lean Modified Mathlib/RingTheory/Polynomial/Hermite/Basic.lean Modified Mathlib/RingTheory/PowerBasis.lean Modified Mathlib/RingTheory/RingInvo.lean Modified Mathlib/RingTheory/Valuation/Basic.lean 2024-10-23 15:11:09 918deb4 chore(NumberTheory): delete "`simp` can prove this" porting notes (#18124) This PR checks all porting notes of the form "`simp` can prove this" and if this is indeed the case (and the proof appears to make sense), removes the associated porting note. ESTIMATED CHANGES Modified Mathlib/NumberTheory/LegendreSymbol/QuadraticChar/Basic.lean Modified Mathlib/NumberTheory/MulChar/Basic.lean Modified Mathlib/NumberTheory/Padics/PadicNorm.lean Modified Mathlib/NumberTheory/PellMatiyasevic.lean Modified Mathlib/NumberTheory/Zsqrtd/GaussianInt.lean 2024-10-23 14:34:30 52eed10 chore(MeasureTheory): delete "`simp` can prove this" porting notes (#18123) This PR checks all porting notes of the form "`simp` can prove this" and if this is indeed the case (and the proof appears to make sense), removes the associated porting note. ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Integral/Average.lean Modified Mathlib/MeasureTheory/Integral/Lebesgue.lean Modified Mathlib/MeasureTheory/Measure/AEMeasurable.lean Modified Mathlib/MeasureTheory/Measure/Count.lean Modified Mathlib/MeasureTheory/Measure/Lebesgue/Basic.lean Modified Mathlib/MeasureTheory/Measure/NullMeasurable.lean Modified Mathlib/MeasureTheory/Measure/Restrict.lean 2024-10-23 13:28:04 9248301 chore(Profinite/Extend): golf and remove unnecessary have statements (#18107) ESTIMATED CHANGES Modified Mathlib/Topology/Category/Profinite/Extend.lean 2024-10-23 13:28:02 3b90821 feat(RingTheory/Flat/FaithfullyFlat): faithful flatness in terms of exactness (#17869) $M$ is faithfully flat if and only if $M$ is flat and $- \otimes M$ preserves and reflects short exact sequences ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/TensorProduct/RightExactness.lean + theorem LinearMap.rTensor_exact_iff_lTensor_exact Modified Mathlib/RingTheory/Flat/FaithfullyFlat.lean + theorem Module.FaithfullyFlat.exact_iff_rTensor_exact + theorem Module.FaithfullyFlat.iff_exact_iff_lTensor_exact + theorem Module.FaithfullyFlat.iff_exact_iff_rTensor_exact + theorem Module.FaithfullyFlat.lTensor_reflects_exact + theorem Module.FaithfullyFlat.rTensor_reflects_exact + theorem Module.FaithfullyFlat.range_le_ker_of_exact_rTensor 2024-10-23 12:50:44 4dac3e5 chore: re-add `@[simp]` attributes lost in the port (#18076) This PR re-adds the `@[simp]` attributes that had a porting note that they could be proved by `@[simp]`, but where that does not appear to be the case currently. Of course, the `simp` set may have changed sufficiently to require un`@[simp]`ing some of these anyway, but we should add a more up to date comment in that case. ESTIMATED CHANGES Modified Mathlib/Analysis/RCLike/Basic.lean Modified Mathlib/CategoryTheory/Comma/Over.lean Modified Mathlib/CategoryTheory/Conj.lean Modified Mathlib/CategoryTheory/Limits/Shapes/BinaryProducts.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Biproducts.lean Modified Mathlib/CategoryTheory/Limits/Shapes/WidePullbacks.lean Modified Mathlib/Data/Finmap.lean + theorem Finmap.mem_lookup_union' Modified Mathlib/Data/List/Basic.lean Modified Mathlib/Data/List/Sigma.lean Modified Mathlib/Data/NNRat/Defs.lean Modified Mathlib/Data/Num/Lemmas.lean Modified Mathlib/Data/Option/NAry.lean 2024-10-23 12:40:12 4e0002f doc(NumberTheory.NumberField.House): fix the name of Hua Loo-Keng (#18109) It's L.-K. Hua not H. L. Keng ESTIMATED CHANGES Modified Mathlib/NumberTheory/NumberField/House.lean Modified docs/references.bib 2024-10-23 12:15:15 e98856a refactor: redefine `Module.annihilator` using `RingHom.ker` (#18094) The original definition `LinearMap.ker (LinearMap.lsmul R M)` doesn't work in the noncommutative setting, because `lsmul` isn't `R`-linear if `R` is noncommutative, and also `LinearMap.ker` isn't obviously a two-sided ideal. We also move `Module.annihilator` from Ideal/Operations to Ideal/Maps (where `RingHom.ker` is defined). ESTIMATED CHANGES Modified Mathlib/RingTheory/Ideal/Colon.lean Modified Mathlib/RingTheory/Ideal/Maps.lean + theorem Ideal.LinearEquiv.annihilator_eq + theorem Ideal.LinearMap.annihilator_le_of_injective + theorem Ideal.LinearMap.annihilator_le_of_surjective + def Ideal.Module.annihilator + theorem Ideal.Module.mem_annihilator + theorem Ideal.Submodule.annihilator_bot + theorem Ideal.Submodule.annihilator_eq_top_iff + theorem Ideal.Submodule.annihilator_iSup + theorem Ideal.Submodule.annihilator_mono + theorem Ideal.Submodule.annihilator_mul + theorem Ideal.Submodule.annihilator_smul + theorem Ideal.Submodule.annihilator_top + theorem Ideal.Submodule.mem_annihilator' + theorem Ideal.Submodule.mem_annihilator + theorem Ideal.Submodule.mem_annihilator_span + theorem Ideal.Submodule.mem_annihilator_span_singleton + theorem Ideal.Submodule.mul_annihilator Modified Mathlib/RingTheory/Ideal/Operations.lean - theorem LinearEquiv.annihilator_eq - theorem LinearMap.annihilator_le_of_injective - theorem LinearMap.annihilator_le_of_surjective - def Module.annihilator - theorem Module.mem_annihilator - theorem Submodule.annihilator_bot - theorem Submodule.annihilator_eq_top_iff - theorem Submodule.annihilator_iSup - theorem Submodule.annihilator_mono - theorem Submodule.annihilator_mul - theorem Submodule.annihilator_smul - theorem Submodule.annihilator_top - theorem Submodule.mem_annihilator' - theorem Submodule.mem_annihilator - theorem Submodule.mem_annihilator_span - theorem Submodule.mem_annihilator_span_singleton - theorem Submodule.mul_annihilator 2024-10-23 11:57:25 f9091e1 feat(CategoryTheory/PathCategory): induction principles for morphisms in path categories (#18074) Introduce two induction lemmas to ease proofs on category freely generated on a quiver. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/CategoryTheory/Bicategory/Coherence.lean Modified Mathlib/CategoryTheory/Category/Quiv.lean Modified Mathlib/CategoryTheory/Groupoid/FreeGroupoid.lean Modified Mathlib/CategoryTheory/Groupoid/VertexGroup.lean Renamed Mathlib/CategoryTheory/PathCategory.lean to Mathlib/CategoryTheory/PathCategory/Basic.lean + theorem CategoryTheory.Paths.induction' + theorem CategoryTheory.Paths.induction + theorem CategoryTheory.Paths.induction_fixed_source + theorem CategoryTheory.Paths.induction_fixed_target Added Mathlib/CategoryTheory/PathCategory/MorphismProperty.lean + theorem CategoryTheory.Paths.morphismProperty_eq_top' + theorem CategoryTheory.Paths.morphismProperty_eq_top Modified Mathlib/Combinatorics/Quiver/Path.lean + theorem Quiver.Path.eq_nil_of_length_zero + theorem Quiver.Path.eq_toPath_comp_of_length_eq_succ 2024-10-23 11:27:03 dcd264a feat(Algebra/Irreducible): prove irreducibility preserved by `MulEquiv` (#17092) Add two lemmas about Irreducibility preserved by `MulEquiv`. ESTIMATED CHANGES Modified Mathlib/Algebra/Associated/Basic.lean + theorem Irreducible.map + theorem MulEquiv.irreducible_iff 2024-10-23 10:42:15 9389838 chore(Algebra/Polynomial): `normalize_monic` as alias for `Monic.normalize_eq_self` (#18024) Discovered in #18006. As far as I can tell, neither lemma actually is used anywhere in Mathlib, so I arbitrarily picked the unnamespaced one to be a deprecated alias for the other. Please feel free to bikeshed over which one should win. ESTIMATED CHANGES Modified Mathlib/Algebra/Polynomial/FieldDivision.lean - theorem Polynomial.normalize_monic 2024-10-23 09:32:35 5a2f1ac refactor(SetTheory/Cardinal/Aleph): `aleph'` → `preAleph` (#18099) This helps us move away from primes in theorems and definitions. Suggested by Floris van Doorn. ESTIMATED CHANGES Modified Mathlib/SetTheory/Cardinal/Aleph.lean - def Cardinal.aleph' +/- theorem Cardinal.aleph'_limit +/- theorem Cardinal.aleph'_nat +/- theorem Cardinal.aleph'_pos +/- theorem Cardinal.aleph0_le_aleph' + theorem Cardinal.aleph0_le_preAleph +/- theorem Cardinal.aleph_eq_aleph' + theorem Cardinal.aleph_eq_preAleph - theorem Cardinal.aleph_le + theorem Cardinal.aleph_le_aleph - theorem Cardinal.aleph_lt + theorem Cardinal.aleph_lt_aleph +/- theorem Cardinal.aleph_zero + theorem Cardinal.lift_preAleph + def Cardinal.preAleph + theorem Cardinal.preAleph_isNormal + theorem Cardinal.preAleph_le_of_isLimit + theorem Cardinal.preAleph_le_preAleph + theorem Cardinal.preAleph_limit + theorem Cardinal.preAleph_lt_preAleph + theorem Cardinal.preAleph_max + theorem Cardinal.preAleph_nat + theorem Cardinal.preAleph_omega0 + theorem Cardinal.preAleph_pos + theorem Cardinal.preAleph_succ + theorem Cardinal.preAleph_zero Modified Mathlib/SetTheory/Cardinal/Cofinality.lean + theorem Cardinal.isRegular_preAleph_succ + theorem Ordinal.preAleph_cof 2024-10-23 09:21:54 52e1bb9 chore(CategoryTheory/Sites): remove a resolved TODO (#18104) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Sites/ConstantSheaf.lean 2024-10-23 08:52:47 2983bc5 chore(Wiedijk/InverseTriangleSum): golf (#18100) Since `InverseTriangleSum`'s original writing, `field_simp` has become stronger. ESTIMATED CHANGES Modified Archive/Wiedijk100Theorems/InverseTriangleSum.lean 2024-10-23 07:52:49 029a1d4 feat: construct homomorphism from `MulSemiringAction` (#17849) This PR adds some missing API for constructing a homomorphism from a `MulSemiringAction`s. We already have `MulSemiringAction.toRingAut`. ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/Equiv.lean + def MulSemiringAction.toAlgAut 2024-10-23 07:27:45 80a505f feat: generalize Algebra.TensorProduct.rightAlgebra (#18089) ESTIMATED CHANGES Modified Mathlib/RingTheory/TensorProduct/Basic.lean 2024-10-23 07:27:44 11c09b7 feat: more tail recursion when finding Mersenne primes (#16168) Previously the failure at `(mersenne 9689).Prime` was a stack overflow in a `norm_num` helper function. Making the relevant function tail-recursive solves that. We now fail with `(kernel) deep recursion detected`, at an apparently system dependent step: * in CI, we still fail at `mersenne 9689` (just with a different error) * on my machine we now succeed at `9689` and `9941`, then fail at `11213`. ESTIMATED CHANGES Modified Archive/Examples/MersennePrimes.lean Modified Mathlib/NumberTheory/LucasLehmer.lean - def LucasLehmer.norm_num_ext.sMod' - theorem LucasLehmer.norm_num_ext.sMod'_eq_sMod + def LucasLehmer.norm_num_ext.sModNat + def LucasLehmer.norm_num_ext.sModNatTR + theorem LucasLehmer.norm_num_ext.sModNatTR_eq_sModNat + def LucasLehmer.norm_num_ext.sModNat_aux + theorem LucasLehmer.norm_num_ext.sModNat_aux_eq + theorem LucasLehmer.norm_num_ext.sModNat_eq_sMod +/- theorem LucasLehmer.norm_num_ext.testTrueHelper 2024-10-23 06:50:35 8164cd2 doc(CategoryTheory/Limits/Sifted): remove non-ASCII characters in bibliography key (#18101) Currently doc-gen4 does not allow non-ASCII characters in bibkey. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Limits/Sifted.lean Modified docs/references.bib 2024-10-23 06:16:46 6e6c4be chore(SetTheory/Cardinal/Basic): `mem_range_of_le_lift` → `mem_range_lift_of_le` (#17970) This was a typo I made in #16958 only a week ago or so, so hopefully this doesn't warrant deprecations. ESTIMATED CHANGES Modified Mathlib/SetTheory/Cardinal/Basic.lean + theorem Cardinal.mem_range_lift_of_le - theorem Cardinal.mem_range_of_le_lift Modified Mathlib/SetTheory/Cardinal/Cofinality.lean 2024-10-23 04:26:17 77ffa0d chore(SetTheory/Cardinal/Basic): deprecate duplicate `Nat.cast` lemmas (#17850) Spotted thanks to #17827. ESTIMATED CHANGES Modified Mathlib/Data/Finite/Card.lean Modified Mathlib/FieldTheory/Fixed.lean Modified Mathlib/LinearAlgebra/Dimension/Finite.lean Modified Mathlib/LinearAlgebra/Dimension/FreeAndStrongRankCondition.lean Modified Mathlib/LinearAlgebra/Dimension/StrongRankCondition.lean Modified Mathlib/LinearAlgebra/FiniteDimensional/Defs.lean Modified Mathlib/NumberTheory/RamificationInertia.lean Modified Mathlib/SetTheory/Cardinal/Basic.lean +/- theorem Cardinal.natCast_inj +/- theorem Cardinal.natCast_injective +/- theorem Cardinal.natCast_le +/- theorem Cardinal.natCast_lt +/- theorem Cardinal.natCast_pow - theorem Cardinal.pow_cast_right + theorem Cardinal.power_natCast Modified Mathlib/SetTheory/Ordinal/Basic.lean Modified Mathlib/Topology/MetricSpace/GromovHausdorff.lean 2024-10-23 02:43:34 1deca17 chore: Rename `QuotientMap` to `IsQuotientMap` (#18062) `Function.Embedding` is a type while `Embedding` is a proposition, and there are many other kinds of embeddings than topological embeddings. Hence this PR is a step towards 1. renaming `Embedding` to `IsEmbedding` and similarly for neighboring declarations (which `QuotientMap` is) 2. namespacing it inside `Topology` ESTIMATED CHANGES Modified Mathlib/Analysis/Complex/ReImTopology.lean + theorem Complex.isQuotientMap_im + theorem Complex.isQuotientMap_re - theorem Complex.quotientMap_im - theorem Complex.quotientMap_re Modified Mathlib/Analysis/Normed/Operator/Banach.lean + theorem ContinuousLinearMap.isQuotientMap Modified Mathlib/Condensed/TopComparison.lean Modified Mathlib/GroupTheory/QuotientGroup/Basic.lean Modified Mathlib/RingTheory/Jacobson.lean Modified Mathlib/Topology/Algebra/Constructions/DomMulAct.lean + theorem DomMulAct.isQuotientMap_mk + theorem DomMulAct.isQuotientMap_mk_symm - theorem DomMulAct.quotientMap_mk - theorem DomMulAct.quotientMap_mk_symm Modified Mathlib/Topology/Algebra/Group/Basic.lean Modified Mathlib/Topology/Algebra/Group/Quotient.lean + theorem QuotientGroup.isQuotientMap_mk - theorem QuotientGroup.quotientMap_mk Modified Mathlib/Topology/Algebra/ProperAction/Basic.lean Modified Mathlib/Topology/Algebra/Ring/Ideal.lean + theorem QuotientRing.isQuotientMap_coe_coe - theorem QuotientRing.quotientMap_coe_coe Modified Mathlib/Topology/Algebra/SeparationQuotient/Basic.lean Modified Mathlib/Topology/Bases.lean + theorem IsQuotientMap.secondCountableTopology + theorem IsQuotientMap.separableSpace - theorem QuotientMap.secondCountableTopology - theorem QuotientMap.separableSpace + theorem TopologicalSpace.IsTopologicalBasis.isQuotientMap - theorem TopologicalSpace.IsTopologicalBasis.quotientMap Modified Mathlib/Topology/Category/CompHausLike/EffectiveEpi.lean Modified Mathlib/Topology/Category/TopCat/EffectiveEpi.lean +/- def TopCat.effectiveEpiStructOfQuotientMap + theorem TopCat.effectiveEpi_iff_isQuotientMap - theorem TopCat.effectiveEpi_iff_quotientMap Modified Mathlib/Topology/Clopen.lean Modified Mathlib/Topology/CompactOpen.lean + theorem IsQuotientMap.continuous_lift_prod_left + theorem IsQuotientMap.continuous_lift_prod_right - theorem QuotientMap.continuous_lift_prod_left - theorem QuotientMap.continuous_lift_prod_right Modified Mathlib/Topology/Connected/Clopen.lean + theorem ConnectedComponents.isQuotientMap_coe - theorem ConnectedComponents.quotientMap_coe + theorem IsQuotientMap.image_connectedComponent + theorem IsQuotientMap.preimage_connectedComponent - theorem QuotientMap.image_connectedComponent - theorem QuotientMap.preimage_connectedComponent Modified Mathlib/Topology/Connected/TotallyDisconnected.lean Modified Mathlib/Topology/Constructions.lean + theorem IsQuotientMap.restrictPreimage_isOpen - theorem QuotientMap.restrictPreimage_isOpen + theorem isQuotientMap_fst + theorem isQuotientMap_quot_mk + theorem isQuotientMap_quotient_mk' + theorem isQuotientMap_snd - theorem quotientMap_fst - theorem quotientMap_quot_mk - theorem quotientMap_quotient_mk' - theorem quotientMap_snd Modified Mathlib/Topology/ContinuousMap/Basic.lean + theorem IsQuotientMap.lift_comp - theorem QuotientMap.lift_comp Modified Mathlib/Topology/ContinuousOn.lean + theorem IsQuotientMap.continuousOn_isOpen_iff - theorem QuotientMap.continuousOn_isOpen_iff Modified Mathlib/Topology/Covering.lean + theorem IsCoveringMap.isQuotientMap Modified Mathlib/Topology/Defs/Induced.lean + structure IsQuotientMap - structure QuotientMap Modified Mathlib/Topology/DiscreteQuotient.lean + theorem DiscreteQuotient.proj_isQuotientMap - theorem DiscreteQuotient.proj_quotientMap Modified Mathlib/Topology/FiberBundle/Basic.lean + theorem FiberBundle.isQuotientMap_proj - theorem FiberBundle.quotientMap_proj Modified Mathlib/Topology/FiberBundle/IsHomeomorphicTrivialBundle.lean Modified Mathlib/Topology/Homeomorph.lean + theorem Homeomorph.isQuotientMap + theorem IsHomeomorph.isQuotientMap Modified Mathlib/Topology/Inseparable.lean + theorem SeparationQuotient.isQuotientMap_mk + theorem SeparationQuotient.isQuotientMap_prodMap_mk - theorem SeparationQuotient.quotientMap_mk - theorem SeparationQuotient.quotientMap_prodMap_mk Modified Mathlib/Topology/Instances/AddCircle.lean Modified Mathlib/Topology/Maps/Basic.lean + theorem IsClosedMap.isQuotientMap - theorem IsClosedMap.to_quotientMap + theorem IsOpenMap.isQuotientMap - theorem IsOpenMap.to_quotientMap + theorem IsQuotientMap.of_inverse - theorem QuotientMap.of_inverse + theorem isQuotientMap_iff + theorem isQuotientMap_iff_closed - theorem quotientMap_iff - theorem quotientMap_iff_closed Modified Mathlib/Topology/Maps/OpenQuotient.lean + theorem IsOpenQuotientMap.iff_isOpenMap_isQuotientMap - theorem IsOpenQuotientMap.iff_isOpenMap_quotientMap + theorem IsOpenQuotientMap.isQuotientMap + theorem IsOpenQuotientMap.of_isOpenMap_isQuotientMap - theorem IsOpenQuotientMap.of_isOpenMap_quotientMap - theorem IsOpenQuotientMap.quotientMap Modified Mathlib/Topology/Order/ProjIcc.lean + theorem isQuotientMap_projIcc - theorem quotientMap_projIcc Modified Mathlib/Topology/Separation.lean + theorem IsQuotientMap.of_surjective_continuous - theorem QuotientMap.of_surjective_continuous Modified Mathlib/Topology/Sequences.lean + theorem IsQuotientMap.sequentialSpace - theorem QuotientMap.sequentialSpace Modified scripts/no_lints_prime_decls.txt 2024-10-23 02:43:33 b9ed435 chore(scripts/create-adaptation-pr.sh): add message to ask for reviews (#18058) ESTIMATED CHANGES Modified scripts/create-adaptation-pr.sh 2024-10-23 02:43:32 7d7a2a8 chore(Algebra/Algebra/Hom): explain why `AlgHomClass.commutes` is not `@[simp]` (#18040) I came across this while cleaning up `simp`-related porting notes. It is tempting to move the `@[simp]` attribute from `AlgHom.commutes` to the generic lemma `AlgHomClass.commutes`, but this turns out to cause some slowdown. So replace the (slightly inaccurate) porting note with an up to date comment. ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/Hom.lean 2024-10-23 02:43:31 1eba96a chore: use newly introduced finset notation (#17974) For `s : Finset α`, replace `s.card` with `#s`, `s.filter p` with `{x ∈ s | p x}`, `∑ x ∈ s.filter p, f x` with `∑ x ∈ s with p x, f x`. Rewrap lines around and open the `Finset` locale where necessary. ESTIMATED CHANGES Modified Mathlib/AlgebraicTopology/SimplicialSet/Basic.lean +/- def SSet.horn.edge Modified Mathlib/Analysis/BoxIntegral/Basic.lean Modified Mathlib/Analysis/BoxIntegral/Partition/Basic.lean Modified Mathlib/Analysis/BoxIntegral/Partition/Tagged.lean Modified Mathlib/Analysis/Calculus/FDeriv/Analytic.lean Modified Mathlib/Analysis/Convex/Birkhoff.lean Modified Mathlib/Analysis/Convex/Caratheodory.lean Modified Mathlib/Analysis/Convex/Combination.lean +/- theorem Finset.centerMass_filter_ne_zero Modified Mathlib/Analysis/Convex/Jensen.lean Modified Mathlib/Analysis/Convex/Radon.lean Modified Mathlib/Analysis/MeanInequalities.lean Modified Mathlib/Analysis/NormedSpace/Multilinear/Basic.lean +/- theorem ContinuousMultilinearMap.norm_restr +/- def ContinuousMultilinearMap.restr Modified Mathlib/Analysis/NormedSpace/Multilinear/Curry.lean +/- def ContinuousMultilinearMap.curryFinFinset +/- theorem ContinuousMultilinearMap.curryFinFinset_apply +/- theorem ContinuousMultilinearMap.curryFinFinset_apply_const +/- theorem ContinuousMultilinearMap.curryFinFinset_symm_apply +/- theorem ContinuousMultilinearMap.curryFinFinset_symm_apply_const +/- theorem ContinuousMultilinearMap.curryFinFinset_symm_apply_piecewise_const Modified Mathlib/Analysis/SpecificLimits/FloorPow.lean Modified Mathlib/Computability/AkraBazzi/AkraBazzi.lean Modified Mathlib/FieldTheory/Finite/Basic.lean Modified Mathlib/Geometry/Euclidean/Circumcenter.lean Modified Mathlib/Geometry/Euclidean/MongePoint.lean Modified Mathlib/GroupTheory/Index.lean Modified Mathlib/GroupTheory/Perm/Cycle/Basic.lean +/- theorem Equiv.Perm.IsCycle.isConj +/- theorem Equiv.Perm.IsCycle.sign +/- theorem Equiv.Perm.IsCycle.two_le_card_support Modified Mathlib/GroupTheory/Perm/Cycle/Factors.lean Modified Mathlib/GroupTheory/Perm/Support.lean +/- theorem Equiv.Perm.card_support_conj +/- theorem Equiv.Perm.card_support_eq_two +/- theorem Equiv.Perm.card_support_eq_zero +/- theorem Equiv.Perm.card_support_le_one +/- theorem Equiv.Perm.card_support_ne_one +/- theorem Equiv.Perm.card_support_swap +/- theorem Equiv.Perm.one_lt_card_support_of_ne_one +/- def Equiv.Perm.support +/- theorem Equiv.Perm.two_le_card_support_of_ne_one Modified Mathlib/GroupTheory/SpecificGroups/Cyclic.lean +/- theorem IsCyclic.card_orderOf_eq_totient Modified Mathlib/InformationTheory/Hamming.lean +/- def hammingDist +/- def hammingNorm Modified Mathlib/LinearAlgebra/AffineSpace/Combination.lean +/- theorem Finset.centroidWeights_apply +/- theorem Finset.centroidWeights_eq_const +/- theorem Finset.sum_centroidWeights_eq_one_of_card_eq_add_one +/- theorem Finset.sum_centroidWeights_eq_one_of_card_ne_zero +/- theorem Finset.sum_centroidWeights_eq_one_of_cast_card_ne_zero Modified Mathlib/LinearAlgebra/AffineSpace/FiniteDimensional.lean Modified Mathlib/LinearAlgebra/AffineSpace/Independent.lean +/- def Affine.Simplex.face Modified Mathlib/LinearAlgebra/Lagrange.lean +/- theorem Lagrange.degree_interpolate_lt +/- theorem Lagrange.degree_nodal +/- theorem Lagrange.eq_interpolate +/- theorem Lagrange.eq_interpolate_of_eval_eq +/- def Lagrange.funEquivDegreeLT +/- theorem Lagrange.natDegree_nodal +/- theorem Polynomial.eq_of_degree_sub_lt_of_eval_finset_eq +/- theorem Polynomial.eq_of_degrees_lt_of_eval_finset_eq +/- theorem Polynomial.eq_of_degrees_lt_of_eval_index_eq +/- theorem Polynomial.eq_zero_of_degree_lt_of_eval_finset_eq_zero Modified Mathlib/LinearAlgebra/Matrix/AbsoluteValue.lean Modified Mathlib/LinearAlgebra/Matrix/Determinant/Basic.lean Modified Mathlib/LinearAlgebra/Multilinear/Basic.lean +/- def MultilinearMap.curryFinFinset +/- theorem MultilinearMap.curryFinFinset_apply +/- theorem MultilinearMap.curryFinFinset_apply_const +/- theorem MultilinearMap.curryFinFinset_apply_const_aux +/- theorem MultilinearMap.curryFinFinset_symm_apply +/- theorem MultilinearMap.curryFinFinset_symm_apply_const +/- theorem MultilinearMap.curryFinFinset_symm_apply_piecewise_const +/- theorem MultilinearMap.map_sum_finset_aux Modified Mathlib/LinearAlgebra/QuadraticForm/Basic.lean Modified Mathlib/Logic/Denumerable.lean Modified Mathlib/MeasureTheory/Function/SimpleFunc.lean Modified Mathlib/MeasureTheory/Integral/Bochner.lean Modified Mathlib/MeasureTheory/Integral/SetToL1.lean Modified Mathlib/NumberTheory/ArithmeticFunction.lean +/- theorem ArithmeticFunction.sigma_zero_apply Modified Mathlib/NumberTheory/DiophantineApproximation.lean Modified Mathlib/NumberTheory/Divisors.lean +/- def Nat.divisors +/- theorem Nat.filter_dvd_eq_divisors +/- theorem Nat.filter_dvd_eq_properDivisors +/- def Nat.properDivisors Modified Mathlib/NumberTheory/EulerProduct/Basic.lean Modified Mathlib/NumberTheory/JacobiSum/Basic.lean Modified Mathlib/NumberTheory/LegendreSymbol/GaussEisensteinLemmas.lean +/- theorem ZMod.gauss_lemma_aux Modified Mathlib/NumberTheory/LegendreSymbol/QuadraticChar/Basic.lean Modified Mathlib/NumberTheory/MaricaSchoenheim.lean Modified Mathlib/NumberTheory/NumberField/Embeddings.lean +/- theorem NumberField.InfinitePlace.card_filter_mk_eq Modified Mathlib/NumberTheory/NumberField/EquivReindex.lean Modified Mathlib/NumberTheory/PrimeCounting.lean +/- theorem Nat.primesBelow_card_eq_primeCounting' Modified Mathlib/NumberTheory/Primorial.lean +/- def primorial Modified Mathlib/NumberTheory/SiegelsLemma.lean Modified Mathlib/Order/Interval/Finset/Basic.lean +/- theorem Finset.Ico_filter_le +/- theorem Finset.Ico_filter_lt +/- theorem Finset.Ioo_filter_lt +/- theorem Finset.card_Ico_eq_card_Icc_sub_one +/- theorem Finset.card_Iio_eq_card_Iic_sub_one +/- theorem Finset.card_Ioc_eq_card_Icc_sub_one +/- theorem Finset.card_Ioi_eq_card_Ici_sub_one +/- theorem Finset.card_Ioo_eq_card_Icc_sub_two +/- theorem Finset.card_Ioo_eq_card_Ico_sub_one +/- theorem Finset.card_Ioo_eq_card_Ioc_sub_one +/- theorem Finset.filter_ge_eq_Iic +/- theorem Finset.filter_gt_eq_Iio +/- theorem Finset.filter_le_eq_Ici +/- theorem Finset.filter_lt_eq_Ioi Modified Mathlib/Order/Interval/Finset/Box.lean +/- theorem Int.card_box Modified Mathlib/Order/Interval/Finset/Defs.lean +/- theorem Finset.card_Icc_prod +/- theorem Finset.card_Ici_prod +/- theorem Finset.card_Iic_prod +/- theorem Finset.card_uIcc_prod Modified Mathlib/Order/Interval/Finset/Fin.lean +/- theorem Fin.card_Icc +/- theorem Fin.card_Ici +/- theorem Fin.card_Ico +/- theorem Fin.card_Iic +/- theorem Fin.card_Iio +/- theorem Fin.card_Ioc +/- theorem Fin.card_Ioi +/- theorem Fin.card_Ioo +/- theorem Fin.card_uIcc Modified Mathlib/Order/Interval/Finset/Nat.lean +/- theorem Nat.card_Icc +/- theorem Nat.card_Ico +/- theorem Nat.card_Iic +/- theorem Nat.card_Iio +/- theorem Nat.card_Ioc +/- theorem Nat.card_Ioo +/- theorem Nat.card_uIcc Modified Mathlib/Order/Partition/Equipartition.lean +/- theorem Finpartition.IsEquipartition.exists_partPreservingEquiv Modified Mathlib/Order/Partition/Finpartition.lean +/- theorem Finpartition.card_atomise_le +/- theorem Finpartition.card_bot +/- theorem Finpartition.card_mod_card_parts_le +/- theorem Finpartition.card_mono +/- theorem Finpartition.card_parts_le_card +/- theorem Finpartition.exists_enumeration +/- theorem Finpartition.sum_card_parts Modified Mathlib/Order/SupClosed.lean Modified Mathlib/Probability/StrongLaw.lean Modified Mathlib/RingTheory/GradedAlgebra/Radical.lean Modified Mathlib/RingTheory/IntegralDomain.lean Modified Mathlib/RingTheory/MvPolynomial/Homogeneous.lean Modified Mathlib/RingTheory/MvPolynomial/Symmetric/Defs.lean Modified Mathlib/RingTheory/MvPolynomial/Symmetric/FundamentalTheorem.lean Modified Mathlib/RingTheory/MvPolynomial/Symmetric/NewtonIdentities.lean +/- theorem MvPolynomial.mul_esymm_eq_sum +/- theorem MvPolynomial.psum_eq_mul_esymm_sub_sum Modified Mathlib/RingTheory/MvPolynomial/WeightedHomogeneous.lean Modified Mathlib/RingTheory/MvPowerSeries/Basic.lean Modified Mathlib/RingTheory/Polynomial/Vieta.lean +/- theorem Finset.prod_X_add_C_coeff Modified Mathlib/RingTheory/Prime.lean Modified Mathlib/RingTheory/RootsOfUnity/Basic.lean Modified Mathlib/RingTheory/RootsOfUnity/Lemmas.lean Modified Mathlib/Tactic/Positivity/Finset.lean Modified Mathlib/Topology/Algebra/InfiniteSum/Constructions.lean Modified Mathlib/Topology/Algebra/InfiniteSum/Group.lean Modified Mathlib/Topology/Algebra/InfiniteSum/Order.lean Modified Mathlib/Topology/Instances/ENNReal.lean Modified test/antidiagonal.lean Modified test/positivity.lean 2024-10-23 02:43:29 c48f8a2 feat(CategoryTheory/Adjunction): the left partial adjoint (#17388) Given a functor `F : D ⥤ C`, we define a functor`F.partialLeftAdjoint : F.PartialLeftAdjointSource ⥤ D` which is defined on a certain full subcategory of `C`. It satisfies similar properties to the left adjoint of `F` (if this existed). We show that the domain of definition of this partial left adjoint is stable under certain colimits. This shall be used in #17366 in order to show the existence of the pullback functor on categories of presheaves of modules. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/CategoryTheory/Adjunction/Basic.lean + def CategoryTheory.Adjunction.corepresentableBy + def CategoryTheory.Adjunction.representableBy Added Mathlib/CategoryTheory/Adjunction/PartialAdjoint.lean + def CategoryTheory.Functor.LeftAdjointObjIsDefined + theorem CategoryTheory.Functor.isRightAdjoint_iff_leftAdjointObjIsDefined_eq_top + theorem CategoryTheory.Functor.isRightAdjoint_of_leftAdjointObjIsDefined_eq_top + theorem CategoryTheory.Functor.leftAdjointObjIsDefined_colimit + theorem CategoryTheory.Functor.leftAdjointObjIsDefined_iff + theorem CategoryTheory.Functor.leftAdjointObjIsDefined_of_adjunction + theorem CategoryTheory.Functor.leftAdjointObjIsDefined_of_isColimit + theorem CategoryTheory.Functor.partialLeftAdjointHomEquiv_comp + theorem CategoryTheory.Functor.partialLeftAdjointHomEquiv_map + theorem CategoryTheory.Functor.partialLeftAdjointHomEquiv_map_comp 2024-10-23 02:43:28 10eb6cc feat(CI): add summary of benchmarking output (#16488) Add a GitHub action triggered on the `!bench` comments. Reports a summary of the changes by at least 10^9 instructions. [This PR](https://github.com/bryangingechen/mathlib4/pull/12#issuecomment-2328756897) contains various examples of reports generated by this script. [Zulip](https://leanprover.zulipchat.com/#narrow/stream/113488-general/topic/bench.20summaries) ESTIMATED CHANGES Added .github/workflows/bench_summary_comment.yml Added scripts/bench_summary.lean + structure BenchAction.Bench + def BenchAction.addBenchSummaryComment + def BenchAction.benchOutput + def BenchAction.formatDiff + def BenchAction.formatFile + def BenchAction.formatPercent + def BenchAction.intDecs + def BenchAction.summary + def BenchAction.toCollapsibleTable + def BenchAction.toTable 2024-10-23 02:08:04 ebbced4 chore(Algebra): re-add `@[simp]` attributes lost in the port (#18057) This PR re-adds the `@[simp]` attributes that had a porting note that they could be proved by `@[simp]`, but where that does not appear to be the case currently. Of course, the `simp` set may have changed sufficiently to require un`@[simp]`ing some of these anyway, but we should add a more up to date comment in that case. ESTIMATED CHANGES Modified Mathlib/Algebra/AddTorsor.lean Modified Mathlib/Algebra/Algebra/Equiv.lean Modified Mathlib/Algebra/Algebra/NonUnitalHom.lean Modified Mathlib/Algebra/Group/Equiv/Basic.lean Modified Mathlib/Algebra/Group/Pointwise/Set/Basic.lean Modified Mathlib/Algebra/Group/Subgroup/Basic.lean Modified Mathlib/Algebra/Group/Submonoid/Membership.lean Modified Mathlib/Algebra/Lie/Submodule.lean Modified Mathlib/Algebra/MonoidAlgebra/Defs.lean Modified Mathlib/Algebra/MvPolynomial/Basic.lean Modified Mathlib/Algebra/MvPolynomial/CommRing.lean Modified Mathlib/Algebra/Order/AbsoluteValue.lean Modified Mathlib/Algebra/PUnitInstances/GCDMonoid.lean Modified Mathlib/Algebra/Polynomial/Basic.lean Modified Mathlib/Algebra/Polynomial/Derivative.lean Modified Mathlib/Algebra/Polynomial/Laurent.lean Modified Mathlib/Algebra/Ring/Equiv.lean Modified Mathlib/Algebra/Ring/Hom/Defs.lean Modified Mathlib/Algebra/Ring/Int.lean +/- theorem Int.odd_coe_nat Modified Mathlib/Algebra/Ring/Subring/Basic.lean Modified Mathlib/Algebra/Star/Subalgebra.lean Modified Mathlib/FieldTheory/IntermediateField/Basic.lean 2024-10-23 01:35:03 cd8e93f chore: generalize from `AddCommGroup` to `AddCommMonoid` (#18095) This lets many theorems apply to `M := R` where `R` is a ring. ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/Basis/Cardinality.lean Modified Mathlib/LinearAlgebra/FreeModule/Finite/Basic.lean Modified Mathlib/RingTheory/Finiteness.lean +/- theorem Module.Finite.finite_basis 2024-10-22 23:48:07 69d256b chore: update Mathlib dependencies 2024-10-22 (#18093) This PR updates the Mathlib dependencies. ESTIMATED CHANGES Modified lake-manifest.json 2024-10-22 23:10:55 421f2fc chore: remove C⋆-algebra import from `LinearAlgebra.Matrix.PosDef` (#18086) ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/Matrix/HermitianFunctionalCalculus.lean Modified Mathlib/LinearAlgebra/Matrix/Spectrum.lean 2024-10-22 22:22:56 c823b5f feat: biSup, biInf, biUnion and biInter in NoMaxOrder (#17762) ESTIMATED CHANGES Modified Mathlib/Data/Set/Lattice.lean + theorem Set.biInter_ge_eq_iInf + theorem Set.biInter_gt_eq_iInf + theorem Set.biInter_le_eq_iInter + theorem Set.biInter_lt_eq_iInter + theorem Set.biUnion_ge_eq_iUnion + theorem Set.biUnion_gt_eq_iUnion + theorem Set.biUnion_le_eq_iUnion + theorem Set.biUnion_lt_eq_iUnion Modified Mathlib/Order/CompleteLattice.lean + theorem biInf_ge_eq_iInf + theorem biInf_gt_eq_iInf + theorem biInf_le_eq_iInf + theorem biInf_lt_eq_iInf + theorem biSup_ge_eq_iSup + theorem biSup_gt_eq_iSup + theorem biSup_le_eq_iSup + theorem biSup_lt_eq_iSup 2024-10-22 21:35:14 9b02679 feat (RingTheory/HahnSeries/Summable) : coeff function for a summable family (#16649) This PR introduces a coefficient function for summable families, and adds some basic formal sum results. - [x] depends on: #16871 [single summable family] - [x] depends on: #16872 [Equiv of families] ESTIMATED CHANGES Modified Mathlib/RingTheory/HahnSeries/Summable.lean + def HahnSeries.SummableFamily.coeff + theorem HahnSeries.SummableFamily.coeff_def + theorem HahnSeries.SummableFamily.hsum_coeff_eq_sum + theorem HahnSeries.SummableFamily.hsum_coeff_eq_sum_of_subset 2024-10-22 21:02:22 d50b913 chore(Data): use newly introduced finset notation (#18059) For `s : Finset α`, replace `s.card` with `#s`, `s.filter p` with `{x ∈ s | p x}`, `∑ x ∈ s.filter p, f x` with `∑ x ∈ s with p x, f x`. Rewrap lines around and open the `Finset` locale where necessary. ESTIMATED CHANGES Modified Mathlib/Data/Complex/Exponential.lean Modified Mathlib/Data/DFinsupp/Basic.lean +/- theorem DFinsupp.support_filter Modified Mathlib/Data/DFinsupp/Interval.lean +/- theorem DFinsupp.card_Icc +/- theorem DFinsupp.card_Ico +/- theorem DFinsupp.card_Iic +/- theorem DFinsupp.card_Iio +/- theorem DFinsupp.card_Ioc +/- theorem DFinsupp.card_Ioo +/- theorem DFinsupp.card_pi +/- theorem DFinsupp.card_uIcc +/- theorem Finset.card_dfinsupp Modified Mathlib/Data/Finset/Finsupp.lean +/- theorem Finset.card_finsupp +/- theorem Finsupp.card_pi Modified Mathlib/Data/Finset/NAry.lean +/- theorem Finset.card_image₂_singleton_left Modified Mathlib/Data/Finset/Slice.lean +/- theorem Finset.mem_slice +/- def Finset.slice +/- theorem Finset.sum_card_slice +/- def Set.Sized +/- theorem Set.sized_singleton Modified Mathlib/Data/Finset/Sups.lean +/- theorem Finset.card_compls +/- theorem Finset.card_diffs_iff +/- theorem Finset.card_diffs_le +/- theorem Finset.card_disjSups_le +/- theorem Finset.card_infs_iff +/- theorem Finset.card_infs_le +/- theorem Finset.card_sups_iff +/- theorem Finset.card_sups_le +/- def Finset.disjSups Modified Mathlib/Data/Finsupp/Basic.lean +/- theorem Finsupp.support_filter Modified Mathlib/Data/Finsupp/Defs.lean +/- theorem Finsupp.card_support_eq_zero Modified Mathlib/Data/Finsupp/Indicator.lean Modified Mathlib/Data/Finsupp/Interval.lean +/- theorem Finsupp.card_Icc +/- theorem Finsupp.card_Ico +/- theorem Finsupp.card_Iic +/- theorem Finsupp.card_Iio +/- theorem Finsupp.card_Ioc +/- theorem Finsupp.card_Ioo Modified Mathlib/Data/Fintype/BigOperators.lean Modified Mathlib/Data/Fintype/Card.lean +/- theorem Finset.card_compl +/- theorem Finset.card_eq_iff_eq_univ +/- theorem Finset.card_eq_of_equiv +/- theorem Finset.card_eq_of_equiv_fin +/- theorem Finset.card_fin +/- theorem Finset.card_le_univ +/- theorem Finset.card_univ +/- theorem Finset.eq_univ_of_card +/- theorem Finset.exists_superset_card_eq +/- theorem Fintype.card_coe +/- theorem Function.Embedding.exists_of_card_le_finset +/- theorem Infinite.exists_subset_card_eq +/- theorem Infinite.exists_superset_card_eq +/- theorem card_finset_fin_le Modified Mathlib/Data/Fintype/Fin.lean Modified Mathlib/Data/Fintype/Perm.lean +/- theorem card_perms_of_finset Modified Mathlib/Data/Fintype/Pi.lean Modified Mathlib/Data/Fintype/Powerset.lean +/- theorem Finset.mem_powersetCard_univ Modified Mathlib/Data/Fintype/Sort.lean +/- def finSumEquivOfFinset +/- theorem finSumEquivOfFinset_inl +/- theorem finSumEquivOfFinset_inr Modified Mathlib/Data/Fintype/Sum.lean Modified Mathlib/Data/Int/CardIntervalMod.lean +/- theorem Int.Ico_filter_dvd_card +/- theorem Int.Ico_filter_dvd_eq +/- theorem Int.Ico_filter_modEq_card +/- theorem Int.Ico_filter_modEq_eq +/- theorem Int.Ioc_filter_dvd_card +/- theorem Int.Ioc_filter_dvd_eq +/- theorem Int.Ioc_filter_modEq_card +/- theorem Int.Ioc_filter_modEq_eq +/- theorem Nat.Ico_filter_modEq_card +/- theorem Nat.Ico_filter_modEq_cast +/- theorem Nat.Ioc_filter_modEq_card +/- theorem Nat.Ioc_filter_modEq_cast Modified Mathlib/Data/Int/Interval.lean +/- theorem Int.card_Icc +/- theorem Int.card_Icc_of_le +/- theorem Int.card_Ico +/- theorem Int.card_Ico_of_le +/- theorem Int.card_Ioc +/- theorem Int.card_Ioc_of_le +/- theorem Int.card_Ioo +/- theorem Int.card_Ioo_of_lt +/- theorem Int.card_uIcc Modified Mathlib/Data/Multiset/Interval.lean Modified Mathlib/Data/Nat/Choose/Sum.lean Modified Mathlib/Data/Nat/Count.lean +/- theorem Nat.count_eq_card_filter_range +/- theorem Nat.count_le_card +/- theorem Nat.count_lt_card Modified Mathlib/Data/Nat/Factorization/Basic.lean +/- theorem Nat.Ioc_filter_dvd_card_eq_div +/- theorem Nat.card_multiples' +/- theorem Nat.card_multiples Modified Mathlib/Data/Nat/Factorization/Defs.lean Modified Mathlib/Data/Nat/Multiplicity.lean Modified Mathlib/Data/Nat/Nth.lean +/- theorem Nat.count_nth +/- theorem Nat.count_nth_of_lt_card_finite +/- theorem Nat.count_nth_succ +/- theorem Nat.image_nth_Iio_card +/- theorem Nat.isLeast_nth +/- theorem Nat.isLeast_nth_of_lt_card +/- theorem Nat.le_nth +/- theorem Nat.nth_eq_orderEmbOfFin +/- theorem Nat.nth_injOn +/- theorem Nat.nth_le_nth' +/- theorem Nat.nth_lt_nth' +/- theorem Nat.nth_mem +/- theorem Nat.nth_mem_of_lt_card +/- theorem Nat.nth_of_card_le Modified Mathlib/Data/Nat/Squarefree.lean Modified Mathlib/Data/Nat/Totient.lean +/- theorem Nat.sum_totient' +/- def Nat.totient +/- theorem Nat.totient_eq_card_coprime Modified Mathlib/Data/PNat/Interval.lean +/- theorem PNat.card_Icc +/- theorem PNat.card_Ico +/- theorem PNat.card_Ioc +/- theorem PNat.card_Ioo +/- theorem PNat.card_uIcc Modified Mathlib/Data/Pi/Interval.lean +/- theorem Pi.card_Icc +/- theorem Pi.card_Ici +/- theorem Pi.card_Ico +/- theorem Pi.card_Iic +/- theorem Pi.card_Iio +/- theorem Pi.card_Ioc +/- theorem Pi.card_Ioi +/- theorem Pi.card_Ioo +/- theorem Pi.card_uIcc Modified Mathlib/Data/Sigma/Interval.lean +/- theorem Sigma.card_Icc +/- theorem Sigma.card_Ico +/- theorem Sigma.card_Ioc +/- theorem Sigma.card_Ioo Modified Mathlib/Data/Sign.lean Modified Mathlib/Data/Sym/Card.lean +/- theorem Sym2.card_image_diag +/- theorem Sym2.card_image_offDiag +/- theorem Sym2.two_mul_card_image_offDiag Modified Mathlib/Data/Sym/Sym2.lean 2024-10-22 20:35:58 054a307 chore: fix two module docstrings (#18038) ESTIMATED CHANGES Modified Mathlib/Data/DFinsupp/Basic.lean Modified Mathlib/LinearAlgebra/DFinsupp.lean 2024-10-22 19:54:06 42d44d4 feat(Data/Finset/Basic): add instances (#17976) Upstreamed from the [EquationalTheories](https://github.com/teorth/equational_theories) project. - [x] depends on: #17971 ESTIMATED CHANGES Modified Mathlib/Data/Finset/Basic.lean 2024-10-22 19:54:05 dff4125 chore(CategoryTheory/Sites): add tests for sheafification instances (#17815) This PR adds a few tests to make sure that sheafification exists for sheaves of sets and sheaves of modules, under different size restrictions on the defining site. ESTIMATED CHANGES Added test/CategoryTheory/Sites/ConcreteSheafification.lean 2024-10-22 19:17:07 58469ae chore(Data): delete "`simp` can prove this" porting notes (#18075) This PR checks all porting notes of the form "`simp` can prove this" and if this is indeed the case (and the proof appears to make sense), removes the associated porting note. ESTIMATED CHANGES Modified Mathlib/Data/Complex/Abs.lean Modified Mathlib/Data/Complex/Cardinality.lean Modified Mathlib/Data/DFinsupp/Basic.lean Modified Mathlib/Data/Fin/Basic.lean Modified Mathlib/Data/Fin/VecNotation.lean Modified Mathlib/Data/Finset/Basic.lean Modified Mathlib/Data/Finset/Piecewise.lean Modified Mathlib/Data/Finsupp/Defs.lean Modified Mathlib/Data/Fintype/Card.lean Modified Mathlib/Data/Int/Cast/Lemmas.lean Modified Mathlib/Data/Int/Lemmas.lean Modified Mathlib/Data/List/Basic.lean Modified Mathlib/Data/List/Cycle.lean Modified Mathlib/Data/List/Intervals.lean Modified Mathlib/Data/Matrix/Basic.lean Modified Mathlib/Data/Matrix/Kronecker.lean Modified Mathlib/Data/Matrix/Notation.lean Modified Mathlib/Data/Multiset/Basic.lean Modified Mathlib/Data/Multiset/Range.lean Modified Mathlib/Data/Nat/Cast/Commute.lean Modified Mathlib/Data/Nat/Digits.lean Modified Mathlib/Data/Nat/Find.lean Modified Mathlib/Data/Num/Lemmas.lean Modified Mathlib/Data/Set/Basic.lean Modified Mathlib/Data/Set/Finite.lean Modified Mathlib/Data/Set/Lattice.lean Modified Mathlib/Data/Set/Pointwise/Interval.lean Modified Mathlib/Data/Sign.lean Modified Mathlib/Data/Sym/Basic.lean Modified Mathlib/Data/Vector/Basic.lean Modified Mathlib/Data/ZMod/Basic.lean 2024-10-22 19:00:57 b3184a9 feat(CategoryTheory/ChosenFiniteProducts): `prodComparison` and `terminalComparison` for `ChosenFiniteProducts` (#17701) Given a functor `F : C ⥤ D` between categories with chosen finite products and `A B : C`, introduce `terminalComparison F : F (𝟙_ C) ⟶ 𝟙_ D` and `prodComparison F A B : F (A ⊗ B) ⟶ F A ⊗ F B` the canonical maps. - Show that `terminalComparison` is an isomorphism if and only if `F` preserves terminal objects. - Show that the canonical map `prodComparison F A B` is natural in `A` and `B` and compatible with composition. - Show that `F` preserves binary products if and only if `prodComparison F A B` is an isomorphism for all `A B`. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/ChosenFiniteProducts.lean + theorem CategoryTheory.ChosenFiniteProducts.inv_prodComparison_map_fst + theorem CategoryTheory.ChosenFiniteProducts.inv_prodComparison_map_snd + def CategoryTheory.ChosenFiniteProducts.isLimitChosenFiniteProductsOfPreservesLimits + theorem CategoryTheory.ChosenFiniteProducts.map_toUnit_comp_terminalCompariso + def CategoryTheory.ChosenFiniteProducts.preservesTerminalIso + theorem CategoryTheory.ChosenFiniteProducts.preservesTerminalIso_hom + def CategoryTheory.ChosenFiniteProducts.prodComparison + def CategoryTheory.ChosenFiniteProducts.prodComparisonBifunctorNatTrans + theorem CategoryTheory.ChosenFiniteProducts.prodComparisonBifunctorNatTrans_comp + def CategoryTheory.ChosenFiniteProducts.prodComparisonIso + theorem CategoryTheory.ChosenFiniteProducts.prodComparisonIso_hom + def CategoryTheory.ChosenFiniteProducts.prodComparisonNatTrans + theorem CategoryTheory.ChosenFiniteProducts.prodComparisonNatTrans_comp + theorem CategoryTheory.ChosenFiniteProducts.prodComparisonNatTrans_id + theorem CategoryTheory.ChosenFiniteProducts.prodComparison_comp + theorem CategoryTheory.ChosenFiniteProducts.prodComparison_fst + theorem CategoryTheory.ChosenFiniteProducts.prodComparison_id + theorem CategoryTheory.ChosenFiniteProducts.prodComparison_inv_natural + theorem CategoryTheory.ChosenFiniteProducts.prodComparison_inv_natural_whiskerLeft + theorem CategoryTheory.ChosenFiniteProducts.prodComparison_inv_natural_whiskerRight + theorem CategoryTheory.ChosenFiniteProducts.prodComparison_natural + theorem CategoryTheory.ChosenFiniteProducts.prodComparison_natural_whiskerLeft + theorem CategoryTheory.ChosenFiniteProducts.prodComparison_natural_whiskerRight + theorem CategoryTheory.ChosenFiniteProducts.prodComparison_snd Modified Mathlib/CategoryTheory/Limits/Shapes/BinaryProducts.lean + def CategoryTheory.Limits.BinaryCofan.ext + def CategoryTheory.Limits.BinaryFan.ext Modified Mathlib/CategoryTheory/Limits/Shapes/Products.lean + def CategoryTheory.Limits.Fan.ext 2024-10-22 18:49:13 7d93d00 feat(CategoryTheory/Abelian): AB5 implies AB4 (#17406) An AB4 category is a category in which taking coproducts is exact, an AB5 category is one where taking filtered colimits is exact. This shows that any Abelian catgory which is AB5 is also AB4. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Abelian/GrothendieckAxioms.lean + def CategoryTheory.AB4.ofAB5 Modified Mathlib/CategoryTheory/Limits/Constructions/Filtered.lean + def CategoryTheory.Limits.CoproductsFromFiniteFiltered.liftToFinsetEvaluationIso Modified Mathlib/CategoryTheory/Limits/Preserves/FunctorCategory.lean 2024-10-22 18:07:15 5ddbb5a chore: delete "`simp` can prove this" porting notes (#18080) This PR checks all porting notes of the form "`simp` can prove this" and if this is indeed the case (and the proof appears to make sense), removes the associated porting note. This is a somewhat random selection of folders that only contained a few porting notes. ESTIMATED CHANGES Modified Mathlib/Combinatorics/Additive/AP/Three/Behrend.lean Modified Mathlib/Combinatorics/SimpleGraph/AdjMatrix.lean Modified Mathlib/Combinatorics/SimpleGraph/Prod.lean Modified Mathlib/Control/ULiftable.lean Modified Mathlib/FieldTheory/IntermediateField/Basic.lean Modified Mathlib/Geometry/Euclidean/Angle/Oriented/Basic.lean Modified Mathlib/Geometry/Euclidean/Basic.lean Modified Mathlib/Geometry/Manifold/Diffeomorph.lean Modified Mathlib/InformationTheory/Hamming.lean Modified Mathlib/Logic/Equiv/Defs.lean Modified Mathlib/Logic/Equiv/Set.lean Modified Mathlib/Probability/ProbabilityMassFunction/Monad.lean Modified Mathlib/SetTheory/Cardinal/Arithmetic.lean Modified Mathlib/SetTheory/Cardinal/Basic.lean Modified Mathlib/SetTheory/Ordinal/Arithmetic.lean Modified Mathlib/SetTheory/Ordinal/Notation.lean 2024-10-22 18:07:14 13acd64 feat(Data/Set/Function): add `BijOn.insert` and `BijOn.sdiff_singleton` (#17971) Upstreamed from the [EquationalTheories](https://github.com/teorth/equational_theories) project. ESTIMATED CHANGES Modified Mathlib/Data/Set/Function.lean + theorem Set.BijOn.insert + theorem Set.BijOn.insert_iff + theorem Set.BijOn.sdiff_singleton 2024-10-22 17:45:49 a8d9170 chore(SetTheory/Ordinal/Basic): golf `Ordinal.lift` lemmas (#17517) We define `Ordinal.liftInitialSeg` earlier and use it to more easily prove the other theorems on `lift`. ESTIMATED CHANGES Modified Mathlib/SetTheory/Ordinal/Arithmetic.lean Modified Mathlib/SetTheory/Ordinal/Basic.lean +/- theorem Ordinal.lift.initialSeg_coe +/- def Ordinal.liftInitialSeg +/- theorem Ordinal.liftInitialSeg_coe +/- theorem Ordinal.lift_card +/- theorem Ordinal.lift_inj +/- theorem Ordinal.lift_le +/- theorem Ordinal.lift_lift +/- theorem Ordinal.lift_lt + theorem Ordinal.lift_typein_top + theorem Ordinal.mem_range_lift_of_card_le + theorem Ordinal.mem_range_lift_of_le Modified Mathlib/SetTheory/ZFC/Rank.lean 2024-10-22 17:45:47 bbab98c feat(SetTheory/Ordinal/Arithmetic): `IsNormal.iSup` (#16866) Prove `IsNormal.iSup`, the `iSup` version of IsNormal.sup. ESTIMATED CHANGES Modified Mathlib/SetTheory/Cardinal/UnivLE.lean + theorem Ordinal.univLE_of_injective + theorem univLE_iff_exists_embedding Modified Mathlib/SetTheory/Ordinal/Arithmetic.lean + theorem Ordinal.IsLimit.iSup_Iio + theorem Ordinal.IsLimit.sSup_Iio + theorem Ordinal.IsNormal.apply_of_isLimit +/- theorem Ordinal.IsNormal.map_iSup + theorem Ordinal.IsNormal.map_iSup_of_bddAbove + theorem Ordinal.IsNormal.map_sSup + theorem Ordinal.IsNormal.map_sSup_of_bddAbove + theorem Ordinal.bddAbove_image + theorem Ordinal.bddAbove_range_comp 2024-10-22 17:17:59 94cbdf2 chore(GroupTheory): delete "`simp` can prove this" porting notes (#18083) This PR checks all porting notes of the form "`simp` can prove this" and if this is indeed the case (and the proof appears to make sense), removes the associated porting note. ESTIMATED CHANGES Modified Mathlib/GroupTheory/Coset/Basic.lean Modified Mathlib/GroupTheory/FreeAbelianGroup.lean Modified Mathlib/GroupTheory/FreeGroup/Basic.lean Modified Mathlib/GroupTheory/MonoidLocalization/Basic.lean Modified Mathlib/GroupTheory/OrderOfElement.lean Modified Mathlib/GroupTheory/Perm/Support.lean 2024-10-22 17:17:57 877aae7 chore(SetTheory/Ordinal/Rank): move `IsWellFounded.rank` to its own file (#18078) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Order/Extension/Well.lean Modified Mathlib/SetTheory/Ordinal/Arithmetic.lean - theorem Acc.rank_eq - theorem Acc.rank_lt_of_rel - theorem IsWellFounded.rank_eq - theorem IsWellFounded.rank_lt_of_rel - theorem WellFounded.rank_eq - theorem WellFounded.rank_lt_of_rel - theorem WellFounded.rank_strictAnti - theorem WellFounded.rank_strictMono - theorem WellFoundedGT.rank_strictAnti - theorem WellFoundedLT.rank_strictMono Added Mathlib/SetTheory/Ordinal/Rank.lean + theorem Acc.rank_eq + theorem Acc.rank_lt_of_rel + theorem IsWellFounded.rank_eq + theorem IsWellFounded.rank_lt_of_rel + theorem WellFounded.rank_eq + theorem WellFounded.rank_lt_of_rel + theorem WellFounded.rank_strictAnti + theorem WellFounded.rank_strictMono + theorem WellFoundedGT.rank_strictAnti + theorem WellFoundedLT.rank_strictMono Modified Mathlib/SetTheory/ZFC/Rank.lean 2024-10-22 17:17:56 3d42f39 refactor(SetTheory/Ordinal/Basic): `type_lt` → `type_toType` (#18049) The new name is much more discoverable and makes clear that this isn't just any `<` relation. ESTIMATED CHANGES Modified Mathlib/MeasureTheory/MeasurableSpace/Card.lean Modified Mathlib/SetTheory/Cardinal/Cofinality.lean Modified Mathlib/SetTheory/Ordinal/Arithmetic.lean Modified Mathlib/SetTheory/Ordinal/Basic.lean + theorem Ordinal.type_toType 2024-10-22 17:17:55 2deff08 chore(SetTheory/Cardinal/Cofinality): tweak universes of `RelIso.cof_eq_lift` (#18042) For `c : Cardinal.{u}`, the simp-normal form of `lift.{max u v} c` is `lift.{v} c`. Also, some drive-by golfing. ESTIMATED CHANGES Modified Mathlib/SetTheory/Cardinal/Cofinality.lean +/- def Ordinal.cof 2024-10-22 16:44:16 3fc88df chore: deprecate `Nat.binaryRec_eq`, rename `Nat.binaryRec_eq'` => `Nat.binaryRec_eq` (#18039) ESTIMATED CHANGES Modified Mathlib/Data/Nat/BinaryRec.lean - theorem Nat.binaryRec_eq' +/- theorem Nat.binaryRec_eq Modified Mathlib/Data/Nat/BitIndices.lean Modified Mathlib/Data/Nat/Bits.lean Modified Mathlib/Data/Nat/Bitwise.lean Modified Mathlib/Data/Nat/EvenOddRec.lean Modified Mathlib/Data/Num/Lemmas.lean 2024-10-22 16:44:15 ddeafa9 feat(Pointwise): growth of finsets (#18003) This PR proves the monotonicity of `n ↦ s ^ n` under various conditions. Also rename `empty_nsmul` to `nsmul_empty`. From GrowthInGroups ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Pointwise/Finset/Basic.lean + theorem Finset.card_le_card_pow + theorem Finset.card_pow_le + theorem Finset.card_pow_mono + theorem Finset.empty_zpow + theorem Finset.singleton_pow + theorem Finset.singleton_zpow Modified Mathlib/Algebra/Group/Pointwise/Set/Basic.lean + theorem Set.empty_zpow + theorem Set.singleton_pow + theorem Set.singleton_zpow 2024-10-22 16:44:14 40646ea feat: lemmas about order on ENat (#17979) ESTIMATED CHANGES Modified Mathlib/Data/ENat/Basic.lean + theorem ENat.add_lt_add_iff_left + theorem ENat.add_lt_add_iff_right + theorem ENat.add_one_pos 2024-10-22 16:44:13 93c444d chore(Data/ENNReal): split off `Lemmas` file (#17919) Almost all of `Data.ENNReal.Basic` can be done with much a smaller set of imports. We only have two lemmas that need more imports, so let's split them off to a new file. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Data/ENNReal/Basic.lean - theorem ENNReal.coe_finset_sup - theorem ENNReal.coe_indicator Added Mathlib/Data/ENNReal/Lemmas.lean + theorem ENNReal.coe_finset_sup + theorem ENNReal.coe_indicator Modified Mathlib/Topology/MetricSpace/Pseudo/Pi.lean Modified Mathlib/Topology/MetricSpace/ThickenedIndicator.lean 2024-10-22 16:44:11 87bea92 feat(NumberTheory/LSeries): functional equation for Dirichlet L-funcs (#16967) Define completed L-functions for Dirichlet characters, prove that they are differentiable (except when they obviously aren't), and prove the functional equation. ESTIMATED CHANGES Modified Mathlib/Analysis/Fourier/ZMod.lean + theorem DirichletCharacter.IsPrimitive.fourierTransform_eq_inv_mul_gaussSum +/- theorem DirichletCharacter.fourierTransform_eq_gaussSum_mulShift - theorem DirichletCharacter.fourierTransform_eq_inv_mul_gaussSum Modified Mathlib/NumberTheory/DirichletCharacter/Basic.lean + theorem DirichletCharacter.Even.not_odd + theorem DirichletCharacter.Even.to_fun + theorem DirichletCharacter.Odd.not_even + theorem DirichletCharacter.Odd.to_fun + theorem DirichletCharacter.map_zero' + theorem DirichletCharacter.not_even_and_odd Modified Mathlib/NumberTheory/LSeries/DirichletContinuation.lean + theorem DirichletCharacter.Even.LFunction_neg_two_mul_nat + theorem DirichletCharacter.Even.LFunction_neg_two_mul_nat_add_one + theorem DirichletCharacter.Even.gammaFactor_def + theorem DirichletCharacter.IsPrimitive.completedLFunction_one_sub + theorem DirichletCharacter.LFunction_eq_completed_div_gammaFactor + theorem DirichletCharacter.Odd.LFunction_neg_two_mul_nat_sub_one + theorem DirichletCharacter.Odd.gammaFactor_def + theorem DirichletCharacter.completedLFunction_modOne_eq + theorem DirichletCharacter.differentiableAt_completedLFunction + theorem DirichletCharacter.differentiable_completedLFunction + theorem DirichletCharacter.rootNumber_modOne Modified Mathlib/NumberTheory/LSeries/ZMod.lean + theorem ZMod.completedLFunction_const_mul 2024-10-22 16:09:30 c6021b7 refactor(GroupAction/Blocks): additivise, fix names, golf API (#17578) Most of the API can be additivised smoothly. The lemma names didn't match the naming convention. Some proofs were harder than necessary because of the suboptimal definition of `IsBlock` as `∀ _, _ ∨ _` rather than `∀ _, _ → _`. From LeanCamCombi ESTIMATED CHANGES Modified Mathlib/Data/Set/Pairwise/Basic.lean Modified Mathlib/GroupTheory/GroupAction/Basic.lean Modified Mathlib/GroupTheory/GroupAction/Blocks.lean - theorem MulAction.IsBlock.def - theorem MulAction.IsBlock.def_mem - theorem MulAction.IsBlock.def_one + theorem MulAction.IsBlock.empty +/- theorem MulAction.IsBlock.iInter - theorem MulAction.IsBlock.iff_subtype_val - theorem MulAction.IsBlock.iff_top +/- theorem MulAction.IsBlock.inter - theorem MulAction.IsBlock.mk_mem - theorem MulAction.IsBlock.mk_notempty - theorem MulAction.IsBlock.mk_notempty_one - theorem MulAction.IsBlock.mk_subset +/- theorem MulAction.IsBlock.of_subgroup_of_conjugate + theorem MulAction.IsBlock.of_subsingleton + theorem MulAction.IsBlock.orbit_of_normal +/- theorem MulAction.IsBlock.orbit_stabilizer_eq +/- theorem MulAction.IsBlock.preimage + theorem MulAction.IsBlock.singleton - theorem MulAction.IsBlock.smul_eq_or_disjoint +/- theorem MulAction.IsBlock.stabilizer_le +/- theorem MulAction.IsBlock.subgroup +/- theorem MulAction.IsBlock.subtype_val_preimage +/- theorem MulAction.IsBlock.translate + theorem MulAction.IsBlock.univ +/- def MulAction.IsBlock +/- def MulAction.IsBlockSystem +/- theorem MulAction.IsFixedBlock.isBlock + theorem MulAction.IsFixedBlock.isInvariantBlock + theorem MulAction.IsFixedBlock.univ +/- theorem MulAction.IsInvariantBlock.isBlock - theorem MulAction.IsInvariantBlock.isFixedBlock + theorem MulAction.IsTrivialBlock.isBlock +/- def MulAction.IsTrivialBlock - theorem MulAction.isBlock_empty + theorem MulAction.isBlock_iff_disjoint_smul_of_ne + theorem MulAction.isBlock_iff_pairwiseDisjoint_range_smul + theorem MulAction.isBlock_iff_smul_eq_of_mem + theorem MulAction.isBlock_iff_smul_eq_of_nonempty + theorem MulAction.isBlock_iff_smul_eq_or_disjoint + theorem MulAction.isBlock_iff_smul_eq_smul_of_nonempty + theorem MulAction.isBlock_iff_smul_eq_smul_or_disjoint - theorem MulAction.isBlock_orbit - theorem MulAction.isBlock_singleton + theorem MulAction.isBlock_subgroup' + theorem MulAction.isBlock_subgroup - theorem MulAction.isBlock_subsingleton + theorem MulAction.isBlock_subtypeVal + theorem MulAction.isBlock_top - theorem MulAction.isBlock_univ - theorem MulAction.isFixedBlock_orbit - theorem MulAction.isFixedBlock_univ + theorem MulAction.isInvariantBlock_iff_isFixedBlock - theorem MulAction.orbit.isBlock_of_normal 2024-10-22 15:31:20 e7dbdb4 chore: use new `ℵ_` and `ℶ_` notation (#18066) ESTIMATED CHANGES Modified Counterexamples/Phillips.lean +/- theorem Counterexample.Phillips1940.apply_f_eq_continuousPart +/- theorem Counterexample.Phillips1940.comp_ae_eq_const +/- theorem Counterexample.Phillips1940.countable_compl_spf +/- theorem Counterexample.Phillips1940.countable_ne +/- theorem Counterexample.Phillips1940.countable_spf_mem +/- def Counterexample.Phillips1940.f +/- theorem Counterexample.Phillips1940.integrable_comp +/- theorem Counterexample.Phillips1940.integral_comp +/- theorem Counterexample.Phillips1940.measurable_comp +/- theorem Counterexample.Phillips1940.no_pettis_integral +/- theorem Counterexample.Phillips1940.norm_bound +/- theorem Counterexample.Phillips1940.sierpinski_pathological_family +/- def Counterexample.Phillips1940.spf Modified Mathlib/Order/Filter/CardinalInter.lean +/- theorem Filter.cardinalInterFilter_aleph0 Modified Mathlib/Order/Filter/CountableInter.lean Modified Mathlib/SetTheory/Cardinal/Aleph.lean +/- theorem Cardinal.aleph0_le_aleph +/- theorem Cardinal.aleph_pos Modified Mathlib/SetTheory/Cardinal/Arithmetic.lean +/- theorem Cardinal.aleph0_mul_aleph +/- theorem Cardinal.aleph_add_aleph +/- theorem Cardinal.aleph_mul_aleph0 +/- theorem Cardinal.aleph_mul_aleph +/- theorem Cardinal.principal_add_aleph Modified Mathlib/SetTheory/Cardinal/Cofinality.lean +/- theorem Cardinal.isRegular_aleph_one +/- theorem Cardinal.isRegular_aleph_succ +/- theorem Cardinal.isStrongLimit_beth +/- theorem Ordinal.aleph_cof 2024-10-22 15:31:19 520965a chore: deprecate `WithTop.zero_lt_{coe,top}` for `WithTop.{coe,top}_pos` (#18048) The two are almost identical, except `zero_lt_coe` has an explicit argument where `coe_pos` has it implicit. Both the name and implicitness of `coe_pos` fit our style better. Also `zero_lt_coe` seems to be used only once in Mathlib. Found when cleaning up `simp` porting notes. ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Monoid/Unbundled/WithTop.lean + theorem WithTop.one_lt_top - theorem WithTop.zero_lt_top Modified Mathlib/Algebra/Polynomial/Degree/TrailingDegree.lean Modified Mathlib/Analysis/Analytic/Constructions.lean Modified Mathlib/Analysis/Normed/Algebra/Exponential.lean Modified Mathlib/Analysis/SpecialFunctions/JapaneseBracket.lean Modified Mathlib/Data/ENat/Basic.lean + theorem ENat.top_pos - theorem ENat.zero_lt_top Modified Mathlib/Dynamics/TopologicalEntropy/CoverEntropy.lean Modified Mathlib/MeasureTheory/Function/SimpleFunc.lean Modified Mathlib/MeasureTheory/Measure/Count.lean Modified Mathlib/Topology/MetricSpace/Infsep.lean 2024-10-22 14:55:26 9d61276 chore(CategoryTheory): delete "`simp` can prove this" porting notes (#18072) This PR checks all porting notes of the form "`simp` can prove this" and if this is indeed the case (and the proof appears to make sense), removes the associated porting note. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Abelian/Images.lean Modified Mathlib/CategoryTheory/Abelian/NonPreadditive.lean Modified Mathlib/CategoryTheory/Adjunction/Unique.lean Modified Mathlib/CategoryTheory/Comma/Arrow.lean Modified Mathlib/CategoryTheory/HomCongr.lean Modified Mathlib/CategoryTheory/Limits/Cones.lean Modified Mathlib/CategoryTheory/Limits/Opposites.lean Modified Mathlib/CategoryTheory/Limits/Shapes/BinaryProducts.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Biproducts.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Equalizers.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Kernels.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Multiequalizer.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Pullback/HasPullback.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Pullback/Iso.lean Modified Mathlib/CategoryTheory/Limits/Shapes/WidePullbacks.lean Modified Mathlib/CategoryTheory/PUnit.lean Modified Mathlib/CategoryTheory/Preadditive/InjectiveResolution.lean Modified Mathlib/CategoryTheory/Preadditive/ProjectiveResolution.lean 2024-10-22 14:55:24 8030444 chore(Analysis): delete "`simp` can prove this" porting notes (#18071) This PR checks all porting notes of the form "`simp` can prove this" and if this is indeed the case (and the proof appears to make sense), removes the associated porting note. ESTIMATED CHANGES Modified Mathlib/Analysis/BoxIntegral/Partition/Additive.lean Modified Mathlib/Analysis/Convex/Join.lean Modified Mathlib/Analysis/Fourier/AddCircle.lean Modified Mathlib/Analysis/InnerProductSpace/TwoDim.lean Modified Mathlib/Analysis/Normed/Affine/Isometry.lean Modified Mathlib/Analysis/Normed/Field/Basic.lean Modified Mathlib/Analysis/Normed/Group/Basic.lean Modified Mathlib/Analysis/Normed/Group/Uniform.lean Modified Mathlib/Analysis/Normed/Lp/lpSpace.lean Modified Mathlib/Analysis/Normed/Operator/LinearIsometry.lean Modified Mathlib/Analysis/NormedSpace/Multilinear/Curry.lean Modified Mathlib/Analysis/SpecialFunctions/Exp.lean Modified Mathlib/Analysis/SpecialFunctions/Integrals.lean Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Angle.lean Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Basic.lean 2024-10-22 14:55:23 f8c840f refactor(Order/ConditionallyCompleteLattice): split large file (#18029) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Order/Group/CompleteLattice.lean Modified Mathlib/Algebra/Order/Group/Indicator.lean Modified Mathlib/Algebra/Order/Group/Pointwise/CompleteLattice.lean Modified Mathlib/Data/Real/Archimedean.lean Modified Mathlib/Order/Atoms.lean Modified Mathlib/Order/ConditionallyCompleteLattice/Basic.lean - theorem GaloisConnection.l_ciSup - theorem GaloisConnection.l_ciSup_set - theorem GaloisConnection.l_csSup' - theorem GaloisConnection.l_csSup - theorem GaloisConnection.u_ciInf - theorem GaloisConnection.u_ciInf_set - theorem GaloisConnection.u_csInf' - theorem GaloisConnection.u_csInf - theorem IsGLB.ciInf_eq - theorem IsGLB.ciInf_set_eq - theorem IsLUB.ciSup_eq - theorem IsLUB.ciSup_set_eq - theorem Monotone.ciSup_mem_iInter_Icc_of_antitone - theorem OrderIso.map_ciInf - theorem OrderIso.map_ciInf_set - theorem OrderIso.map_ciSup - theorem OrderIso.map_ciSup_set - theorem OrderIso.map_csInf' - theorem OrderIso.map_csInf - theorem OrderIso.map_csSup' - theorem OrderIso.map_csSup - theorem Set.Ici_ciSup - theorem Set.Iic_ciInf - theorem WithBot.ciSup_empty - theorem WithBot.coe_iInf - theorem WithBot.coe_iSup - theorem WithTop.coe_iInf - theorem WithTop.coe_iSup - theorem WithTop.iInf_coe_eq_top - theorem WithTop.iInf_coe_lt_top - theorem WithTop.iInf_empty - theorem WithTop.iSup_coe_eq_top - theorem WithTop.iSup_coe_lt_top - theorem cbiInf_eq_of_forall - theorem cbiInf_eq_of_not_forall - theorem cbiSup_eq_of_forall - theorem cbiSup_eq_of_not_forall - theorem ciInf_const - theorem ciInf_eq_bot_of_bot_mem - theorem ciInf_eq_ite - theorem ciInf_eq_of_forall_ge_of_forall_gt_exists_lt - theorem ciInf_eq_top_of_top_mem - theorem ciInf_image - theorem ciInf_le' - theorem ciInf_le - theorem ciInf_le_of_le' - theorem ciInf_le_of_le - theorem ciInf_lt_iff - theorem ciInf_mem - theorem ciInf_mono - theorem ciInf_neg - theorem ciInf_pos - theorem ciInf_set_le - theorem ciInf_subsingleton - theorem ciInf_subtype'' - theorem ciInf_subtype' - theorem ciInf_subtype - theorem ciInf_unique - theorem ciSup_const - theorem ciSup_eq_ite - theorem ciSup_eq_of_forall_le_of_forall_lt_exists_gt - theorem ciSup_false - theorem ciSup_image - theorem ciSup_le' - theorem ciSup_le - theorem ciSup_le_iff' - theorem ciSup_le_iff - theorem ciSup_mem_iInter_Icc_of_antitone_Icc - theorem ciSup_mono' - theorem ciSup_mono - theorem ciSup_neg - theorem ciSup_of_empty - theorem ciSup_or' - theorem ciSup_pos - theorem ciSup_set_le_iff - theorem ciSup_subsingleton - theorem ciSup_subtype'' - theorem ciSup_subtype' - theorem ciSup_subtype - theorem ciSup_unique - theorem csInf_image - theorem csSup_image - theorem exists_lt_of_ciInf_lt - theorem exists_lt_of_lt_ciSup' - theorem exists_lt_of_lt_ciSup - theorem isGLB_ciInf - theorem isGLB_ciInf_set - theorem isLUB_ciSup - theorem isLUB_ciSup_set - theorem le_ciInf - theorem le_ciInf_iff' - theorem le_ciInf_iff - theorem le_ciInf_set_iff - theorem le_ciSup - theorem le_ciSup_iff' - theorem le_ciSup_of_le - theorem le_ciSup_set - theorem lt_ciSup_iff' - theorem lt_ciSup_iff Modified Mathlib/Order/ConditionallyCompleteLattice/Finset.lean Modified Mathlib/Order/ConditionallyCompleteLattice/Group.lean Added Mathlib/Order/ConditionallyCompleteLattice/Indexed.lean + theorem GaloisConnection.l_ciSup + theorem GaloisConnection.l_ciSup_set + theorem GaloisConnection.l_csSup' + theorem GaloisConnection.l_csSup + theorem GaloisConnection.u_ciInf + theorem GaloisConnection.u_ciInf_set + theorem GaloisConnection.u_csInf' + theorem GaloisConnection.u_csInf + theorem IsGLB.ciInf_eq + theorem IsGLB.ciInf_set_eq + theorem IsLUB.ciSup_eq + theorem IsLUB.ciSup_set_eq + theorem Monotone.ciSup_mem_iInter_Icc_of_antitone + theorem OrderIso.map_ciInf + theorem OrderIso.map_ciInf_set + theorem OrderIso.map_ciSup + theorem OrderIso.map_ciSup_set + theorem OrderIso.map_csInf' + theorem OrderIso.map_csInf + theorem OrderIso.map_csSup' + theorem OrderIso.map_csSup + theorem Set.Ici_ciSup + theorem Set.Iic_ciInf + theorem WithBot.ciSup_empty + theorem WithBot.coe_iInf + theorem WithBot.coe_iSup + theorem WithTop.coe_iInf + theorem WithTop.coe_iSup + theorem WithTop.iInf_coe_eq_top + theorem WithTop.iInf_coe_lt_top + theorem WithTop.iInf_empty + theorem WithTop.iSup_coe_eq_top + theorem WithTop.iSup_coe_lt_top + theorem cbiInf_eq_of_forall + theorem cbiInf_eq_of_not_forall + theorem cbiSup_eq_of_forall + theorem cbiSup_eq_of_not_forall + theorem ciInf_const + theorem ciInf_eq_bot_of_bot_mem + theorem ciInf_eq_ite + theorem ciInf_eq_of_forall_ge_of_forall_gt_exists_lt + theorem ciInf_eq_top_of_top_mem + theorem ciInf_image + theorem ciInf_le' + theorem ciInf_le + theorem ciInf_le_of_le' + theorem ciInf_le_of_le + theorem ciInf_lt_iff + theorem ciInf_mem + theorem ciInf_mono + theorem ciInf_neg + theorem ciInf_pos + theorem ciInf_set_le + theorem ciInf_subsingleton + theorem ciInf_subtype'' + theorem ciInf_subtype' + theorem ciInf_subtype + theorem ciInf_unique + theorem ciSup_const + theorem ciSup_eq_ite + theorem ciSup_eq_of_forall_le_of_forall_lt_exists_gt + theorem ciSup_false + theorem ciSup_image + theorem ciSup_le' + theorem ciSup_le + theorem ciSup_le_iff' + theorem ciSup_le_iff + theorem ciSup_mem_iInter_Icc_of_antitone_Icc + theorem ciSup_mono' + theorem ciSup_mono + theorem ciSup_neg + theorem ciSup_of_empty + theorem ciSup_or' + theorem ciSup_pos + theorem ciSup_set_le_iff + theorem ciSup_subsingleton + theorem ciSup_subtype'' + theorem ciSup_subtype' + theorem ciSup_subtype + theorem ciSup_unique + theorem csInf_image + theorem csSup_image + theorem exists_lt_of_ciInf_lt + theorem exists_lt_of_lt_ciSup' + theorem exists_lt_of_lt_ciSup + theorem isGLB_ciInf + theorem isGLB_ciInf_set + theorem isLUB_ciSup + theorem isLUB_ciSup_set + theorem le_ciInf + theorem le_ciInf_iff' + theorem le_ciInf_iff + theorem le_ciInf_set_iff + theorem le_ciSup + theorem le_ciSup_iff' + theorem le_ciSup_of_le + theorem le_ciSup_set + theorem lt_ciSup_iff' + theorem lt_ciSup_iff Modified Mathlib/Order/Filter/AtTopBot.lean Modified Mathlib/Order/Filter/Extr.lean Modified Mathlib/Order/PartialSups.lean Modified Mathlib/Order/SemiconjSup.lean Modified Mathlib/Order/SuccPred/CompleteLinearOrder.lean Modified Mathlib/SetTheory/Cardinal/Basic.lean 2024-10-22 14:15:56 9883fb1 chore: update Mathlib dependencies 2024-10-22 (#18070) This PR updates the Mathlib dependencies. ESTIMATED CHANGES Modified lake-manifest.json 2024-10-22 14:15:55 660d68a refactor(Group/Pointwise/Finset): state `mul_singleton`/`singleton_mul` using `•` (#18068) This is much more useful in practice than the `image` spelling. Move the `smul`/`vadd` sections higher to allow for that spelling. From LeanCamCombi ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Pointwise/Finset/Basic.lean +/- theorem Finset.Nonempty.of_smul_left +/- theorem Finset.Nonempty.of_smul_right +/- theorem Finset.Nonempty.smul +/- theorem Finset.Nonempty.smul_finset +/- theorem Finset.biUnion_smul_finset +/- theorem Finset.coe_smul +/- theorem Finset.coe_smul_finset +/- theorem Finset.empty_smul +/- theorem Finset.image_smul +/- theorem Finset.image_smul_product +/- theorem Finset.inter_smul_subset +/- theorem Finset.inter_smul_union_subset_union +/- theorem Finset.mem_smul +/- theorem Finset.mem_smul_finset +/- theorem Finset.mul_singleton +/- theorem Finset.singleton_mul +/- theorem Finset.singleton_smul +/- theorem Finset.singleton_smul_singleton +/- theorem Finset.smul_card_le +/- theorem Finset.smul_def +/- theorem Finset.smul_empty +/- theorem Finset.smul_eq_empty +/- theorem Finset.smul_finset_card_le +/- theorem Finset.smul_finset_def +/- theorem Finset.smul_finset_empty +/- theorem Finset.smul_finset_eq_empty +/- theorem Finset.smul_finset_inter_subset +/- theorem Finset.smul_finset_nonempty +/- theorem Finset.smul_finset_singleton +/- theorem Finset.smul_finset_subset_smul +/- theorem Finset.smul_finset_subset_smul_finset +/- theorem Finset.smul_finset_union +/- theorem Finset.smul_inter_subset +/- theorem Finset.smul_mem_smul +/- theorem Finset.smul_mem_smul_finset +/- theorem Finset.smul_nonempty_iff +/- theorem Finset.smul_singleton +/- theorem Finset.smul_subset_iff +/- theorem Finset.smul_subset_smul +/- theorem Finset.smul_subset_smul_left +/- theorem Finset.smul_subset_smul_right +/- theorem Finset.smul_union +/- theorem Finset.subset_smul +/- theorem Finset.union_smul +/- theorem Finset.union_smul_inter_subset_union Modified Mathlib/Algebra/MvPolynomial/Basic.lean 2024-10-22 14:15:53 f94dd66 feat: 'and' and 'exist' commute for Antitone or Monotone properties (#17947) ESTIMATED CHANGES Modified Mathlib/Order/BoundedOrder.lean + theorem exists_and_iff_of_antitone + theorem exists_and_iff_of_monotone 2024-10-22 14:15:52 b5f6dae chore(SetTheory/Ordinal/Arithmetic): `WellFounded.rank` → `IsWellFounded.rank` (#16586) We make the `WellFounded` argument of `rank` an instance argument. This matches `Ordinal.typein`. ESTIMATED CHANGES Modified Mathlib/Order/Extension/Well.lean + theorem IsWellFounded.exists_well_order_ge Modified Mathlib/SetTheory/Ordinal/Arithmetic.lean + theorem IsWellFounded.rank_eq + theorem IsWellFounded.rank_lt_of_rel +/- theorem WellFounded.rank_eq + theorem WellFoundedGT.rank_strictAnti + theorem WellFoundedLT.rank_strictMono Modified Mathlib/SetTheory/ZFC/Rank.lean +/- theorem PSet.rank_eq_wfRank +/- theorem ZFSet.rank_eq_wfRank 2024-10-22 14:15:51 9a2abc1 feat(SetTheory/Cardinal/Basic): `lift (aleph' o) = aleph' (lift o)` (#16306) plus some lemmas on `ℵ₁` and `lift`. ESTIMATED CHANGES Modified Mathlib/SetTheory/Cardinal/Aleph.lean + theorem Cardinal.aleph1_eq_lift + theorem Cardinal.aleph1_le_lift + theorem Cardinal.aleph1_lt_lift + theorem Cardinal.lift_aleph' + theorem Cardinal.lift_aleph + theorem Cardinal.lift_eq_aleph1 + theorem Cardinal.lift_le_aleph1 + theorem Cardinal.lift_lt_aleph1 Modified Mathlib/SetTheory/Cardinal/Basic.lean + theorem Cardinal.aleph0_eq_lift + theorem Cardinal.lift_eq_aleph0 2024-10-22 13:55:28 9a0d45f chore(Combinatorics): use newly introduced finset notation (#18055) For `s : Finset α`, replace `s.card` with `#s`, `s.filter p` with `{x ∈ s | p x}`, `∑ x ∈ s.filter p, f x` with `∑ x ∈ s with p x, f x`. Rewrap lines around and open the `Finset` locale where necessary. ESTIMATED CHANGES Modified Mathlib/Combinatorics/Additive/AP/Three/Behrend.lean +/- theorem Behrend.card_box +/- def Behrend.sphere Modified Mathlib/Combinatorics/Additive/AP/Three/Defs.lean +/- theorem mulRothNumber_le Modified Mathlib/Combinatorics/Additive/Corner/Roth.lean Modified Mathlib/Combinatorics/Additive/DoublingConst.lean +/- theorem Finset.card_mul_cast_addConst +/- theorem Finset.card_mul_cast_divConst +/- theorem Finset.card_mul_cast_mulConst +/- theorem Finset.card_mul_cast_subConst +/- theorem Finset.card_mul_divConst +/- theorem Finset.card_mul_mulConst +/- theorem Finset.cast_addConst +/- theorem Finset.cast_addConst_mul_card +/- theorem Finset.cast_divConst +/- theorem Finset.cast_divConst_mul_card +/- theorem Finset.cast_mulConst +/- theorem Finset.cast_mulConst_mul_card +/- theorem Finset.cast_subConst +/- theorem Finset.cast_subConst_mul_card +/- def Finset.divConst +/- theorem Finset.divConst_mul_card +/- def Finset.mulConst +/- theorem Finset.mulConst_mul_card Modified Mathlib/Combinatorics/Additive/ErdosGinzburgZiv.lean +/- theorem Int.erdos_ginzburg_ziv +/- theorem ZMod.erdos_ginzburg_ziv Modified Mathlib/Combinatorics/Colex.lean +/- theorem Finset.Colex.erase_le_erase_min' +/- def Finset.Colex.initSeg +/- theorem Finset.Colex.isInitSeg_initSeg +/- theorem Finset.Colex.mem_initSeg Modified Mathlib/Combinatorics/Configuration.lean Modified Mathlib/Combinatorics/Enumerative/Catalan.lean +/- theorem Tree.treesOfNumNodesEq_card_eq_catalan Modified Mathlib/Combinatorics/Enumerative/DoubleCounting.lean +/- def Finset.bipartiteAbove +/- def Finset.bipartiteBelow Modified Mathlib/Combinatorics/Hall/Basic.lean Modified Mathlib/Combinatorics/Hall/Finite.lean +/- theorem HallMarriageTheorem.hall_hard_inductive Modified Mathlib/Combinatorics/Pigeonhole.lean +/- theorem Finset.exists_card_fiber_le_of_card_le_mul +/- theorem Finset.exists_card_fiber_le_of_card_le_nsmul +/- theorem Finset.exists_card_fiber_lt_of_card_lt_mul +/- theorem Finset.exists_card_fiber_lt_of_card_lt_nsmul Modified Mathlib/Combinatorics/Schnirelmann.lean Modified Mathlib/Combinatorics/SetFamily/AhlswedeZhang.lean Modified Mathlib/Combinatorics/SetFamily/CauchyDavenport.lean Modified Mathlib/Combinatorics/SetFamily/Compression/Down.lean +/- theorem Down.card_compression +/- def Finset.nonMemberSubfamily Modified Mathlib/Combinatorics/SetFamily/Compression/UV.lean +/- theorem Set.Sized.uvCompression +/- theorem UV.card_compress +/- theorem UV.card_compression +/- theorem UV.compress_injOn Modified Mathlib/Combinatorics/SetFamily/FourFunctions.lean +/- theorem Finset.card_le_card_diffs Modified Mathlib/Combinatorics/SetFamily/HarrisKleitman.lean Modified Mathlib/Combinatorics/SetFamily/Intersecting.lean Modified Mathlib/Combinatorics/SetFamily/Kleitman.lean Modified Mathlib/Combinatorics/SetFamily/KruskalKatona.lean +/- theorem Finset.iterated_kk +/- theorem Finset.kruskal_katona Modified Mathlib/Combinatorics/SetFamily/LYM.lean +/- theorem Finset.mem_falling Modified Mathlib/Combinatorics/SetFamily/Shadow.lean +/- theorem Finset.mem_shadow_iff_exists_mem_card_add_one +/- theorem Finset.mem_shadow_iff_exists_sdiff +/- theorem Finset.mem_shadow_iterate_iff_exists_sdiff +/- theorem Finset.mem_upShadow_iff_exists_sdiff +/- theorem Finset.mem_upShadow_iterate_iff_exists_sdiff Modified Mathlib/Combinatorics/SetFamily/Shatter.lean +/- theorem Finset.Shatters.card_le_vcDim +/- theorem Finset.card_le_card_shatterer +/- def Finset.shatterer Modified Mathlib/Combinatorics/SimpleGraph/Basic.lean Modified Mathlib/Combinatorics/SimpleGraph/Clique.lean +/- theorem SimpleGraph.card_cliqueFinset_le +/- def SimpleGraph.cliqueFinset +/- theorem SimpleGraph.cliqueFreeOn_of_card_lt +/- theorem SimpleGraph.isNClique_bot_iff +/- theorem SimpleGraph.isNClique_iff Modified Mathlib/Combinatorics/SimpleGraph/Connectivity/WalkCounting.lean Modified Mathlib/Combinatorics/SimpleGraph/DegreeSum.lean +/- theorem SimpleGraph.dart_card_eq_twice_card_edges +/- theorem SimpleGraph.sum_degrees_eq_twice_card_edges +/- theorem SimpleGraph.two_mul_card_edgeFinset Modified Mathlib/Combinatorics/SimpleGraph/Density.lean +/- def Rel.edgeDensity +/- def Rel.interedges +/- theorem SimpleGraph.card_interedges_le_mul +/- theorem SimpleGraph.edgeDensity_def +/- theorem SimpleGraph.interedges_def Modified Mathlib/Combinatorics/SimpleGraph/Finite.lean +/- theorem SimpleGraph.card_edgeFinset_le_card_choose_two +/- theorem SimpleGraph.card_incidenceFinset_eq_degree +/- theorem SimpleGraph.card_neighborFinset_eq_degree +/- def SimpleGraph.degree +/- theorem SimpleGraph.edgeFinset_card +/- theorem SimpleGraph.edgeSet_univ_card Modified Mathlib/Combinatorics/SimpleGraph/Operations.lean Modified Mathlib/Combinatorics/SimpleGraph/Regularity/Bound.lean +/- theorem SzemerediRegularity.a_add_one_le_four_pow_parts_card +/- theorem SzemerediRegularity.card_aux₁ +/- theorem SzemerediRegularity.card_aux₂ +/- theorem SzemerediRegularity.eps_pos +/- theorem SzemerediRegularity.eps_pow_five_pos +/- theorem SzemerediRegularity.hundred_div_ε_pow_five_le_m +/- theorem SzemerediRegularity.hundred_le_m +/- theorem SzemerediRegularity.m_pos +/- theorem SzemerediRegularity.mul_sq_le_sum_sq +/- theorem SzemerediRegularity.one_le_m_coe Modified Mathlib/Combinatorics/SimpleGraph/Regularity/Chunk.lean +/- theorem SzemerediRegularity.card_chunk +/- theorem SzemerediRegularity.card_le_m_add_one_of_mem_chunk_parts +/- theorem SzemerediRegularity.edgeDensity_chunk_not_uniform +/- theorem SzemerediRegularity.edgeDensity_chunk_uniform +/- theorem SzemerediRegularity.m_le_card_of_mem_chunk_parts Modified Mathlib/Combinatorics/SimpleGraph/Regularity/Energy.lean Modified Mathlib/Combinatorics/SimpleGraph/Regularity/Equitabilise.lean +/- theorem Finpartition.card_filter_equitabilise_big +/- theorem Finpartition.card_parts_equitabilise +/- theorem Finpartition.equitabilise_aux +/- theorem Finpartition.exists_equipartition_card_eq Modified Mathlib/Combinatorics/SimpleGraph/Regularity/Increment.lean +/- theorem SzemerediRegularity.card_increment +/- theorem SzemerediRegularity.energy_increment Modified Mathlib/Combinatorics/SimpleGraph/Regularity/Lemma.lean Modified Mathlib/Combinatorics/SimpleGraph/Regularity/Uniform.lean Modified Mathlib/Combinatorics/SimpleGraph/StronglyRegular.lean Modified Mathlib/Combinatorics/SimpleGraph/Triangle/Basic.lean Modified Mathlib/Combinatorics/SimpleGraph/Triangle/Counting.lean Modified Mathlib/Combinatorics/SimpleGraph/Triangle/Removal.lean +/- theorem SimpleGraph.triangle_removal Modified Mathlib/Combinatorics/SimpleGraph/Triangle/Tripartite.lean +/- theorem SimpleGraph.TripartiteFromTriangles.card_triangles Modified Mathlib/Combinatorics/SimpleGraph/Turan.lean +/- theorem SimpleGraph.IsTuranMaximal.card_parts +/- theorem SimpleGraph.IsTuranMaximal.card_parts_le 2024-10-22 13:55:26 ac12c87 chore(Algebra/Polynomial/RingDivision): move lemmas earlier (#18050) `Algebra.Polynomial.RingDivision` is a bag grab of lemmas with absolutely no running theme. This PR moves two thirds of them to earlier files with no proof change. ESTIMATED CHANGES Modified Mathlib/Algebra/Polynomial/AlgebraMap.lean + theorem Polynomial.X_sub_C_pow_dvd_iff +/- theorem Polynomial.aeval_endomorphism + theorem Polynomial.comp_X_add_C_eq_zero_iff + theorem Polynomial.comp_X_add_C_ne_zero_iff + theorem Polynomial.eq_zero_of_mul_eq_zero_of_smul + theorem Polynomial.nmem_nonZeroDivisors_iff + theorem Polynomial.units_coeff_zero_smul Modified Mathlib/Algebra/Polynomial/BigOperators.lean + theorem Polynomial.natDegree_multiset_prod_X_sub_C_eq_card Modified Mathlib/Algebra/Polynomial/Degree/Definitions.lean + theorem Polynomial.Monic.C_dvd_iff_isUnit + theorem Polynomial.Monic.degree_pos + theorem Polynomial.Monic.degree_pos_of_not_isUnit + theorem Polynomial.Monic.natDegree_pos + theorem Polynomial.Monic.natDegree_pos_of_not_isUnit + theorem Polynomial.coeff_coe_units_zero_ne_zero + theorem Polynomial.degree_coe_units + theorem Polynomial.degree_eq_zero_of_isUnit + theorem Polynomial.degree_le_mul_left + theorem Polynomial.degree_le_of_dvd +/- theorem Polynomial.degree_mul + theorem Polynomial.degree_pos_of_not_isUnit_of_dvd_monic +/- theorem Polynomial.degree_pow + theorem Polynomial.eq_zero_of_dvd_of_degree_lt + theorem Polynomial.eq_zero_of_dvd_of_natDegree_lt + theorem Polynomial.isUnit_iff +/- theorem Polynomial.leadingCoeffHom_apply +/- theorem Polynomial.leadingCoeff_dvd_leadingCoeff +/- theorem Polynomial.leadingCoeff_mul +/- theorem Polynomial.leadingCoeff_pow + theorem Polynomial.natDegree_coe_units + theorem Polynomial.natDegree_eq_zero_of_isUnit + theorem Polynomial.natDegree_le_of_dvd + theorem Polynomial.natDegree_mul + theorem Polynomial.natDegree_pos_of_not_isUnit_of_dvd_monic + theorem Polynomial.natDegree_pow + theorem Polynomial.natDegree_sub_eq_of_prod_eq + theorem Polynomial.not_dvd_of_degree_lt + theorem Polynomial.not_dvd_of_natDegree_lt + theorem Polynomial.not_isUnit_of_degree_pos + theorem Polynomial.not_isUnit_of_natDegree_pos Modified Mathlib/Algebra/Polynomial/Degree/Lemmas.lean + theorem Polynomial.comp_eq_zero_iff + theorem Polynomial.comp_neg_X_leadingCoeff_eq Modified Mathlib/Algebra/Polynomial/Div.lean + theorem Polynomial.add_modByMonic + theorem Polynomial.associated_of_dvd_of_degree_eq + theorem Polynomial.associated_of_dvd_of_natDegree_le + theorem Polynomial.associated_of_dvd_of_natDegree_le_of_leadingCoeff + theorem Polynomial.degree_eq_one_of_irreducible_of_root + theorem Polynomial.eq_leadingCoeff_mul_of_monic_of_dvd_of_natDegree_le + theorem Polynomial.eq_of_dvd_of_natDegree_le_of_leadingCoeff + theorem Polynomial.eq_of_monic_of_dvd_of_natDegree_le + theorem Polynomial.eval_divByMonic_eq_trailingCoeff_comp + theorem Polynomial.le_rootMultiplicity_iff + theorem Polynomial.le_rootMultiplicity_mul + theorem Polynomial.leadingCoeff_divByMonic_X_sub_C + theorem Polynomial.leadingCoeff_divByMonic_of_monic + theorem Polynomial.modByMonic_eq_of_dvd_sub + theorem Polynomial.neg_modByMonic + theorem Polynomial.pow_rootMultiplicity_not_dvd + theorem Polynomial.rootMultiplicity_add + theorem Polynomial.rootMultiplicity_eq_natTrailingDegree' + theorem Polynomial.rootMultiplicity_le_iff + theorem Polynomial.sub_modByMonic Modified Mathlib/Algebra/Polynomial/Eval.lean + theorem Polynomial.Monic.irreducible_of_irreducible_map + theorem Polynomial.isUnit_of_isUnit_leadingCoeff_of_isUnit_map + theorem Polynomial.root_mul + theorem Polynomial.root_or_root_of_root_mul Modified Mathlib/Algebra/Polynomial/Mirror.lean Modified Mathlib/Algebra/Polynomial/Monic.lean + theorem Polynomial.Monic.comp + theorem Polynomial.Monic.comp_X_add_C + theorem Polynomial.Monic.comp_X_sub_C + theorem Polynomial.Monic.irreducible_iff_lt_natDegree_lt + theorem Polynomial.Monic.irreducible_iff_natDegree' + theorem Polynomial.Monic.irreducible_iff_natDegree + theorem Polynomial.Monic.not_irreducible_iff_exists_add_mul_eq_coeff + theorem Polynomial.irreducible_of_monic Modified Mathlib/Algebra/Polynomial/RingDivision.lean - theorem Polynomial.Monic.C_dvd_iff_isUnit - theorem Polynomial.Monic.comp - theorem Polynomial.Monic.comp_X_add_C - theorem Polynomial.Monic.comp_X_sub_C - theorem Polynomial.Monic.degree_pos - theorem Polynomial.Monic.degree_pos_of_not_isUnit - theorem Polynomial.Monic.irreducible_iff_lt_natDegree_lt - theorem Polynomial.Monic.irreducible_iff_natDegree' - theorem Polynomial.Monic.irreducible_iff_natDegree - theorem Polynomial.Monic.irreducible_of_irreducible_map - theorem Polynomial.Monic.natDegree_pos - theorem Polynomial.Monic.natDegree_pos_of_not_isUnit - theorem Polynomial.Monic.not_irreducible_iff_exists_add_mul_eq_coeff - theorem Polynomial.X_sub_C_pow_dvd_iff - theorem Polynomial.add_modByMonic - theorem Polynomial.associated_of_dvd_of_degree_eq - theorem Polynomial.associated_of_dvd_of_natDegree_le - theorem Polynomial.associated_of_dvd_of_natDegree_le_of_leadingCoeff - theorem Polynomial.coeff_coe_units_zero_ne_zero - theorem Polynomial.comp_X_add_C_eq_zero_iff - theorem Polynomial.comp_X_add_C_ne_zero_iff - theorem Polynomial.comp_eq_zero_iff - theorem Polynomial.comp_neg_X_leadingCoeff_eq - theorem Polynomial.degree_coe_units - theorem Polynomial.degree_eq_one_of_irreducible_of_root - theorem Polynomial.degree_eq_zero_of_isUnit - theorem Polynomial.degree_le_mul_left - theorem Polynomial.degree_le_of_dvd - theorem Polynomial.degree_pos_of_not_isUnit_of_dvd_monic - theorem Polynomial.eq_leadingCoeff_mul_of_monic_of_dvd_of_natDegree_le - theorem Polynomial.eq_of_dvd_of_natDegree_le_of_leadingCoeff - theorem Polynomial.eq_of_monic_of_dvd_of_natDegree_le - theorem Polynomial.eq_zero_of_dvd_of_degree_lt - theorem Polynomial.eq_zero_of_dvd_of_natDegree_lt - theorem Polynomial.eq_zero_of_mul_eq_zero_of_smul - theorem Polynomial.eval_divByMonic_eq_trailingCoeff_comp - theorem Polynomial.irreducible_of_monic - theorem Polynomial.isUnit_iff - theorem Polynomial.isUnit_of_isUnit_leadingCoeff_of_isUnit_map - theorem Polynomial.le_rootMultiplicity_iff - theorem Polynomial.le_rootMultiplicity_mul - theorem Polynomial.leadingCoeff_divByMonic_X_sub_C - theorem Polynomial.leadingCoeff_divByMonic_of_monic - theorem Polynomial.modByMonic_eq_of_dvd_sub - theorem Polynomial.natDegree_coe_units - theorem Polynomial.natDegree_eq_zero_of_isUnit - theorem Polynomial.natDegree_le_of_dvd - theorem Polynomial.natDegree_mul - theorem Polynomial.natDegree_multiset_prod_X_sub_C_eq_card - theorem Polynomial.natDegree_pos_of_not_isUnit_of_dvd_monic - theorem Polynomial.natDegree_pow - theorem Polynomial.natDegree_sub_eq_of_prod_eq - theorem Polynomial.neg_modByMonic - theorem Polynomial.nmem_nonZeroDivisors_iff - theorem Polynomial.not_dvd_of_degree_lt - theorem Polynomial.not_dvd_of_natDegree_lt - theorem Polynomial.not_isUnit_of_degree_pos - theorem Polynomial.not_isUnit_of_natDegree_pos - theorem Polynomial.pow_rootMultiplicity_not_dvd - theorem Polynomial.rootMultiplicity_add - theorem Polynomial.rootMultiplicity_eq_natTrailingDegree' - theorem Polynomial.rootMultiplicity_le_iff - theorem Polynomial.root_mul - theorem Polynomial.root_or_root_of_root_mul - theorem Polynomial.sub_modByMonic - theorem Polynomial.units_coeff_zero_smul Modified Mathlib/Algebra/Polynomial/Roots.lean Modified Mathlib/Algebra/Polynomial/SumIteratedDerivative.lean Modified Mathlib/Algebra/Polynomial/UnitTrinomial.lean Modified Mathlib/Analysis/SpecificLimits/Normed.lean Modified Mathlib/FieldTheory/RatFunc/Defs.lean Modified Mathlib/RingTheory/Polynomial/IrreducibleRing.lean Modified Mathlib/RingTheory/Polynomial/Pochhammer.lean Modified scripts/no_lints_prime_decls.txt 2024-10-22 13:18:33 818db40 fix: silence the multigoal linter with fail_... tactics (#18063) Reported on [Zulip](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/false.20positive.20of.20linter.2Estyle.2EmultiGoal) ESTIMATED CHANGES Modified Mathlib/Tactic/Linter/Multigoal.lean Modified test/Multigoal.lean 2024-10-22 12:48:11 90daa70 chore(Algebra): use newly introduced finset notation (#18053) For `s : Finset α`, replace `s.card` with `#s`, `s.filter p` with `{x ∈ s | p x}`, `∑ x ∈ s.filter p, f x` with `∑ x ∈ s with p x, f x`. Rewrap lines around and open the `Finset` locale where necessary. ESTIMATED CHANGES Modified Mathlib/Algebra/BigOperators/Expect.lean +/- theorem Finset.card_smul_expect Modified Mathlib/Algebra/BigOperators/Group/Finset.lean +/- theorem Finset.card_eq_sum_ones +/- theorem Finset.card_filter +/- theorem Finset.eq_of_card_le_one_of_prod_eq +/- theorem Finset.pow_card_mul_prod +/- theorem Finset.prod_const +/- theorem Finset.prod_eq_pow_card +/- theorem Finset.prod_image' +/- theorem Finset.prod_mul_pow_card +/- theorem Finset.sum_const_nat Modified Mathlib/Algebra/BigOperators/Ring.lean Modified Mathlib/Algebra/GeomSum.lean Modified Mathlib/Algebra/Group/UniqueProds/Basic.lean +/- theorem UniqueMul.of_card_le_one +/- theorem uniqueMul_of_twoUniqueMul Modified Mathlib/Algebra/Module/BigOperators.lean +/- theorem Finset.cast_card Modified Mathlib/Algebra/MonoidAlgebra/Defs.lean Modified Mathlib/Algebra/Order/BigOperators/Group/Finset.lean +/- theorem Finset.le_sum_card +/- theorem Finset.le_sum_card_inter +/- theorem Finset.sum_card +/- theorem Finset.sum_card_inter +/- theorem Finset.sum_card_inter_le +/- theorem Finset.sum_card_le Modified Mathlib/Algebra/Order/CauSeq/BigOperators.lean Modified Mathlib/Algebra/Order/Chebyshev.lean +/- theorem sq_sum_le_card_mul_sum_sq Modified Mathlib/Algebra/Polynomial/Basic.lean +/- theorem Polynomial.card_support_eq_zero Modified Mathlib/Algebra/Polynomial/BigOperators.lean +/- theorem Polynomial.prod_X_sub_C_coeff_card_pred Modified Mathlib/Algebra/Polynomial/Coeff.lean +/- theorem Polynomial.card_support_mul_le Modified Mathlib/Algebra/Polynomial/Degree/Definitions.lean +/- theorem Polynomial.C_mul_X_pow_eq_self +/- theorem Polynomial.card_supp_le_succ_natDegree +/- theorem Polynomial.card_support_C_mul_X_pow_le_one +/- theorem Polynomial.monomial_natDegree_leadingCoeff_eq_self Modified Mathlib/Algebra/Polynomial/EraseLead.lean +/- theorem Polynomial.card_support_eq_one +/- theorem Polynomial.card_support_eraseLead' +/- theorem Polynomial.card_support_eraseLead +/- theorem Polynomial.card_support_eraseLead_add_one +/- theorem Polynomial.card_support_le_one_of_eraseLead_eq_zero +/- theorem Polynomial.eraseLead_natDegree_lt +/- theorem Polynomial.eraseLead_ne_zero +/- theorem Polynomial.eraseLead_support_card_lt Modified Mathlib/Algebra/Polynomial/Reverse.lean Modified Mathlib/Algebra/Polynomial/Roots.lean Modified Mathlib/Algebra/Polynomial/UnitTrinomial.lean +/- theorem Polynomial.IsUnitTrinomial.card_support_eq_three Modified Mathlib/Combinatorics/SimpleGraph/Regularity/Increment.lean 2024-10-22 12:13:54 9e39596 chore(Archive): use newly introduced finset notation (#18052) ESTIMATED CHANGES Modified Archive/Imo/Imo1994Q1.lean +/- theorem imo1994_q1 Modified Archive/Imo/Imo2021Q1.lean Modified Archive/Sensitivity.lean Modified Archive/Wiedijk100Theorems/AscendingDescendingSequences.lean Modified Archive/Wiedijk100Theorems/Partition.lean +/- theorem Theorems100.partition_theorem Modified Archive/Wiedijk100Theorems/SumOfPrimeReciprocalsDiverges.lean +/- def Theorems100.P +/- def Theorems100.U +/- theorem Theorems100.card_le_mul_sum +/- theorem Theorems100.card_le_two_pow +/- theorem Theorems100.card_le_two_pow_mul_sqrt 2024-10-22 11:41:54 e5f5585 feat(Order/ConditionallyCompleteLattice): `lt_ciSup_iff` and variants (#17965) ESTIMATED CHANGES Modified Mathlib/Order/ConditionallyCompleteLattice/Basic.lean + theorem ciInf_lt_iff + theorem csInf_lt_iff + theorem lt_ciSup_iff' + theorem lt_ciSup_iff + theorem lt_csSup_iff' + theorem lt_csSup_iff Modified Mathlib/SetTheory/Ordinal/Arithmetic.lean 2024-10-22 10:52:22 fb1cb21 chore(Analysis/SpecificLimits/Normed): move lemmas earlier (#18046) These lemmas can be proved earlier at no cost. This is one step towards reducing imports in this area of mathlib. ESTIMATED CHANGES Modified Mathlib/Analysis/Asymptotics/Asymptotics.lean + theorem NormedField.tendsto_zero_smul_of_tendsto_zero_of_bounded Modified Mathlib/Analysis/Normed/Field/InfiniteSum.lean + theorem summable_of_absolute_convergence_real Modified Mathlib/Analysis/Normed/Field/Lemmas.lean + theorem NormedField.tendsto_norm_inverse_nhdsWithin_0_atTop + theorem NormedField.tendsto_norm_zpow_nhdsWithin_0_atTop Modified Mathlib/Analysis/Normed/Group/Basic.lean + theorem tendsto_norm_atTop_atTop + theorem tendsto_norm_one' Modified Mathlib/Analysis/SpecificLimits/Normed.lean - theorem NormedField.continuousAt_inv - theorem NormedField.continuousAt_zpow - theorem NormedField.tendsto_norm_inverse_nhdsWithin_0_atTop - theorem NormedField.tendsto_norm_zpow_nhdsWithin_0_atTop - theorem NormedField.tendsto_zero_smul_of_tendsto_zero_of_bounded - theorem summable_of_absolute_convergence_real - theorem tendsto_norm_atTop_atTop - theorem tendsto_norm_zero' 2024-10-22 10:36:30 d713728 doc(NumberTheory/Ostrowski): tweak documentation (#18028) This PR modifies the documentation of the file in the hope of improving it. ESTIMATED CHANGES Modified Mathlib/NumberTheory/Ostrowski.lean 2024-10-22 09:16:20 d65220b feat: `Coalgebra (DFinsupp _)` (#17972) This is pretty much a copy-paste of the `Finsupp` version, and can be used to get the instance on `DirectSum` for free. ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/DFinsupp.lean + theorem DFinsupp.lapply_comp_lsingle_of_ne + theorem DFinsupp.lapply_comp_lsingle_same Modified Mathlib/RingTheory/Coalgebra/Basic.lean + theorem DFinsupp.comul_comp_lapply + theorem DFinsupp.comul_comp_lsingle + theorem DFinsupp.comul_single + theorem DFinsupp.counit_comp_lsingle + theorem DFinsupp.counit_single 2024-10-22 09:16:19 b5879a4 feat: Multiset.pow_smul_esymm (#17896) ESTIMATED CHANGES Modified Mathlib/RingTheory/MvPolynomial/Symmetric/Defs.lean + theorem Multiset.pow_smul_esymm 2024-10-22 09:16:17 a7d3e74 feat: Algebra.IsAlgebraic.tower_bot (#17893) ESTIMATED CHANGES Modified Mathlib/RingTheory/Algebraic.lean + theorem Algebra.IsAlgebraic.tower_bot + theorem Algebra.IsAlgebraic.tower_bot_of_injective 2024-10-22 09:16:16 1460f4a feat(RingTheory/LaurentSeries): composition of Hasse Derivatives (#16106) This PR proves basic properties of Hasse derivatives of Laurent series including composition, and introduces the derivative as a linear map. ESTIMATED CHANGES Modified Mathlib/RingTheory/HahnSeries/Addition.lean + theorem HahnSeries.nsmul_coeff Modified Mathlib/RingTheory/LaurentSeries.lean + def LaurentSeries.derivative + theorem LaurentSeries.derivative_apply + theorem LaurentSeries.derivative_iterate + theorem LaurentSeries.derivative_iterate_coeff +/- theorem LaurentSeries.hasseDeriv_coeff + theorem LaurentSeries.hasseDeriv_comp + theorem LaurentSeries.hasseDeriv_comp_coeff + theorem LaurentSeries.hasseDeriv_single + theorem LaurentSeries.hasseDeriv_single_add + theorem LaurentSeries.hasseDeriv_zero 2024-10-22 08:37:17 5eb330b chore(Algebra/PUnitInstances): split off `GCDMonoid PUnit` instance (#18014) This instance does not seem to be used anywhere in Mathlib and splitting it off should allow us to shave quite a few imports from low down in the hierarchy. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Group/AddChar.lean Modified Mathlib/Algebra/PUnitInstances/Algebra.lean - theorem PUnit.gcd_eq - theorem PUnit.lcm_eq - theorem PUnit.norm_unit_eq Added Mathlib/Algebra/PUnitInstances/GCDMonoid.lean + theorem PUnit.gcd_eq + theorem PUnit.lcm_eq + theorem PUnit.norm_unit_eq Modified Mathlib/Algebra/Star/CHSH.lean Modified Mathlib/RingTheory/Ideal/Basic.lean 2024-10-22 08:37:15 b2cf514 chore(RingTheory/PrincipalIdealDomain): factor out `IsPrincipal.map`, use RingHomClass (#18010) ESTIMATED CHANGES Modified Mathlib/RingTheory/PrincipalIdealDomain.lean +/- theorem Ideal.IsPrincipal.of_comap +/- theorem IsPrincipalIdealRing.of_surjective + theorem Submodule.IsPrincipal.map + theorem Submodule.IsPrincipal.map_ringHom 2024-10-22 08:37:14 616d464 chore(BorelSpace/Order): allow anonymous dot notation on `Measurable` lemma (#17814) From GibbsMeasure ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Constructions/BorelSpace/Order.lean + theorem AEMeasurable.biInf + theorem AEMeasurable.biSup + theorem Measurable.biInf + theorem Measurable.biSup + theorem Measurable.liminf' + theorem Measurable.liminf + theorem Measurable.limsup' + theorem Measurable.limsup - theorem aemeasurable_biInf - theorem aemeasurable_biSup - theorem aemeasurable_iInf - theorem aemeasurable_iSup - theorem measurable_biInf - theorem measurable_biSup - theorem measurable_iInf - theorem measurable_iSup - theorem measurable_liminf' - theorem measurable_liminf - theorem measurable_limsup' - theorem measurable_limsup - theorem measurable_sInf - theorem measurable_sSup Modified Mathlib/MeasureTheory/Constructions/BorelSpace/Real.lean Modified Mathlib/MeasureTheory/Constructions/Prod/Basic.lean Modified Mathlib/MeasureTheory/Decomposition/Lebesgue.lean Modified Mathlib/MeasureTheory/Function/AEMeasurableOrder.lean Modified Mathlib/MeasureTheory/Function/LpSeminorm/Basic.lean Modified Mathlib/MeasureTheory/Integral/Lebesgue.lean Modified Mathlib/MeasureTheory/MeasurableSpace/Basic.lean Modified Mathlib/MeasureTheory/Measure/GiryMonad.lean Modified Mathlib/Probability/Kernel/Disintegration/CDFToKernel.lean Modified Mathlib/Probability/Kernel/Disintegration/Density.lean Modified Mathlib/Probability/Kernel/Disintegration/MeasurableStieltjes.lean Modified Mathlib/Probability/Kernel/MeasurableIntegral.lean Modified Mathlib/Probability/Martingale/Upcrossing.lean 2024-10-22 08:37:13 1ece609 feat: define finitely-semisimple linear maps (#17689) The motivation is to be able to apply `IsFinitelySemisimple.maxGenEigenspace_eq_eigenspace` to symmetric maps in infinite dimensions. Such maps are not in general semisimple but are semisimple on each invariant finite-dimensional subspace. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Lie/Weights/Killing.lean Added Mathlib/Algebra/Module/Submodule/Invariant.lean + theorem Module.End.invtSubmodule.map_subtype_mem_of_mem_invtSubmodule + def Module.End.invtSubmodule + theorem Module.End.mem_invtSubmodule Modified Mathlib/Algebra/Module/Submodule/Map.lean + theorem Submodule.orderIsoMapComap_symm_apply Modified Mathlib/Algebra/Module/Submodule/Range.lean + theorem Submodule.comap_subtype_le_iff Modified Mathlib/Algebra/Polynomial/Module/AEval.lean + def LinearEquiv.ofAEval - def Module.AEval.comapSubmodule - theorem Module.AEval.comapSubmodule_le_comap - theorem Module.AEval.comapSubmodule_mapSubmodule + def Module.AEval.equiv_mapSubmodule - theorem Module.AEval.injective_comapSubmodule +/- def Module.AEval.mapSubmodule - theorem Module.AEval.mapSubmodule_comapSubmodule - theorem Module.AEval.mem_comapSubmodule - theorem Module.AEval.mem_mapSubmodule + theorem Module.AEval.mem_mapSubmodule_apply + theorem Module.AEval.mem_mapSubmodule_symm_apply - theorem Module.AEval.range_comapSubmodule Modified Mathlib/LinearAlgebra/Eigenspace/Semisimple.lean + theorem Module.End.IsFinitelySemisimple.genEigenspace_eq_eigenspace + theorem Module.End.IsFinitelySemisimple.maxGenEigenspace_eq_eigenspace - theorem Module.End.IsSemisimple.genEigenspace_eq_eigenspace - theorem Module.End.IsSemisimple.maxGenEigenspace_eq_eigenspace - theorem Module.End.apply_eq_of_mem_genEigenspace_of_comm_of_isSemisimple_of_isNilpotent_sub + theorem Module.End.apply_eq_of_mem_of_comm_of_isFinitelySemisimple_of_isNil Modified Mathlib/LinearAlgebra/Semisimple.lean + theorem Module.End.IsFinitelySemisimple.restrict + def Module.End.IsFinitelySemisimple + theorem Module.End.IsSemisimple.isFinitelySemisimple +/- theorem Module.End.IsSemisimple.restrict + def Module.End.IsSemisimple + theorem Module.End.eq_zero_of_isNilpotent_of_isFinitelySemisimple + theorem Module.End.isFinitelySemisimple_iff' + theorem Module.End.isFinitelySemisimple_iff + theorem Module.End.isFinitelySemisimple_iff_isSemisimple + theorem Module.End.isFinitelySemisimple_sub_algebraMap_iff + theorem Module.End.isSemisimple_iff' +/- theorem Module.End.isSemisimple_neg + theorem Module.End.isSemisimple_restrict_iff Modified Mathlib/Order/Disjoint.lean + theorem complementedLattice_iff Modified Mathlib/Order/Hom/Set.lean Modified Mathlib/Order/LatticeIntervals.lean 2024-10-22 08:37:11 2546152 feat(Data/Matroid/Closure): closure + insertion API (#15028) Some API for interactions between independence, closure and single-element insertions/differences in matroids. ESTIMATED CHANGES Modified Mathlib/Data/Matroid/Closure.lean + theorem Matroid.Indep.closure_diff_singleton_ssubset + theorem Matroid.Indep.closure_diff_ssubset + theorem Matroid.Indep.closure_ssubset_closure + theorem Matroid.Indep.not_mem_closure_diff_of_mem + theorem Matroid.closure_diff_eq_self + theorem Matroid.closure_diff_singleton_eq_closure + theorem Matroid.closure_exchange + theorem Matroid.closure_exchange_iff + theorem Matroid.closure_insert_congr + theorem Matroid.ext_closure + theorem Matroid.indep_iff_forall_closure_diff_ne + theorem Matroid.indep_iff_forall_closure_ssubset_of_ssubset + theorem Matroid.indep_iff_forall_not_mem_closure_diff' + theorem Matroid.indep_iff_forall_not_mem_closure_diff + theorem Matroid.mem_closure_diff_singleton_iff_closure + theorem Matroid.mem_closure_insert + theorem Matroid.subset_closure_diff_iff_closure_eq 2024-10-22 08:25:18 970a656 feat(AlgebraicGeometry): basic properties of separated morphisms and schemes (#17960) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/AlgebraicGeometry/Morphisms/Affine.lean + theorem AlgebraicGeometry.IsAffineOpen.preimage - theorem AlgebraicGeometry.isAffineOpen.preimage Modified Mathlib/AlgebraicGeometry/Morphisms/ClosedImmersion.lean - theorem AlgebraicGeometry.IsClosedImmersion.of_comp + theorem AlgebraicGeometry.IsClosedImmersion.of_comp_isClosedImmersion Modified Mathlib/AlgebraicGeometry/Morphisms/Separated.lean + theorem AlgebraicGeometry.IsClosedImmersion.of_comp + theorem AlgebraicGeometry.IsSeparated.comp_iff + theorem AlgebraicGeometry.IsSeparated.of_comp + theorem AlgebraicGeometry.Scheme.isSeparated_iff_isClosedImmersion_prod_lift Modified Mathlib/CategoryTheory/Limits/Constructions/BinaryProducts.lean + theorem inl_coprodIsoPushout_hom + theorem inl_coprodIsoPushout_inv + theorem inr_coprodIsoPushout_hom + theorem inr_coprodIsoPushout_inv + theorem prodIsoPullback_hom_fst + theorem prodIsoPullback_hom_snd + theorem prodIsoPullback_inv_fst + theorem prodIsoPullback_inv_snd Added Mathlib/CategoryTheory/Limits/Shapes/Pullback/Equalizer.lean + theorem CategoryTheory.Limits.isPullback_equalizer_prod + theorem CategoryTheory.Limits.isPushout_coequalizer_coprod 2024-10-22 07:59:06 0701372 feat: `WithAbs` type synonym (#17998) This PR contains the type synonym `WithAbs`. This is a type synonym for a semiring `R` that depends on an absolute value `v : AbsoluteValue R S`, where `S` is an `OrderedSemiring`. This is used in order to handle ambiguities arising from multiple sources of instances. For example, each infinite place on a number field defines distinct uniform structures via their associated real absolute values. The `WithAbs` type synonym allows the type class inferencing system to automatically infer such dependent instances, making it simpler to define the Archimedean completions of a number field. See #16483 for this application along with prior feedback. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Ring/WithAbs.lean + def WithAbs.equiv + theorem WithAbs.equiv_add + theorem WithAbs.equiv_mul + theorem WithAbs.equiv_neg + theorem WithAbs.equiv_sub + theorem WithAbs.equiv_symm_add + theorem WithAbs.equiv_symm_mul + theorem WithAbs.equiv_symm_neg + theorem WithAbs.equiv_symm_sub + theorem WithAbs.equiv_symm_zero + theorem WithAbs.equiv_zero + def WithAbs.ringEquiv + def WithAbs Modified Mathlib/Analysis/Normed/Field/Basic.lean 2024-10-22 04:32:03 d50eac5 chore: remove CoeFun instances where FunLike is available (#17870) During the port we found that `FunLike` is robust enough not to need an extra `CoeFun` shortcut. Let's see if that rule can be consistently applied to the whole of the library. There is still duplication between `FunLike` and `CoeFun` for `Grp`, `Mon`, `CommGrp` and `CommMon`, which will need a more thorough fix. See also https://github.com/leanprover-community/mathlib4/pull/17866. There is also a shortcut instance that we need for speed reasons: `SemilinearIsometry.instCoeFun`. I don't know why this is so performance-sensitive but the benchmarks tell us that it is. See also #17871 for removing porting notes and comments where this change happened earlier on. ESTIMATED CHANGES Modified Mathlib/Analysis/Normed/Operator/LinearIsometry.lean Modified Mathlib/Combinatorics/Young/SemistandardTableau.lean Modified Mathlib/Data/DFinsupp/Basic.lean Modified Mathlib/Data/Finsupp/Defs.lean 2024-10-22 04:01:53 fa9f767 chore(Topology/Algebra/Valued/NormedValued): rely on TC IsUltrametricDist instead of explicit arg (#17561) Before, we had ``` [hK : NormedField K] (h : IsNonarchimedean (norm : K → ℝ)) ``` Now we use `[hK : NormedField K] [IsUltrametricDist K]` to convert between ultrametrically normed fields and valued fields. This allows the instance to be a scoped instance instead of a def, since `IsUltrametricDist` is a class on the type, as opposed to a plain prop about the norm of the type. The instance is scoped because otherwise, one gets a TC loop. ESTIMATED CHANGES Modified Mathlib/Topology/Algebra/Valued/NormedValued.lean +/- theorem NormedField.valuation_apply + theorem Valued.coe_valuation_eq_rankOne_hom_comp_valuation 2024-10-22 01:04:14 cbf4f22 chore: update Mathlib dependencies 2024-10-22 (#18035) This PR updates the Mathlib dependencies. ESTIMATED CHANGES Modified lake-manifest.json 2024-10-21 23:17:31 034f3de chore(deps): dependabot updates (#18026) Doing this manually because dependabot doesn't know how to update build.in.yml. ESTIMATED CHANGES Modified .github/build.in.yml Modified .github/workflows/bors.yml Modified .github/workflows/bot_fix_style_comment.yaml Modified .github/workflows/bot_fix_style_review.yaml Modified .github/workflows/bot_fix_style_review_comment.yaml Modified .github/workflows/build.yml Modified .github/workflows/build_fork.yml Modified .github/workflows/dependent-issues.yml Modified .github/workflows/labels_from_comment.yml Modified .github/workflows/lean4checker.yml Modified .github/workflows/lint_and_suggest_pr.yml Modified .github/workflows/maintainer_merge_comment.yml Modified .github/workflows/maintainer_merge_review.yml Modified .github/workflows/maintainer_merge_review_comment.yml Modified .github/workflows/nolints.yml Modified .github/workflows/update_dependencies.yml 2024-10-21 22:54:16 ef1ba70 refactor: merge `ExpChar` and `CharP` API (#18023) `ExpChar` is just as basic as `CharP` but was defined in a later file importing a lot of linear algebra. This situation resulted resulted in a lot of import bloat further down the line. I personally noticed it because `LinearAlgebra.Span` was imported in `Data.Nat.Totient`! This PR merges the `ExpChar` and `CharP` into `Algebra.CharP.Defs` and `Algebra.CharP.Basic`. This lets us prove some `CharP` API using the corresponding `ExpChar` one, and ensures that the two APIs match up in lemmas. Some lemmas were moved in or out of the `CharP` namespace for consistency (but I am to keep the statu quo for now if you ask) The only thing left in `Algebra.CharP.ExpChar`, is the Frobenius endomorphism bundled as a linear map. I am not sure where to put it. It can be moved later. ESTIMATED CHANGES Modified Mathlib/Algebra/CharP/Algebra.lean + theorem RingHom.expChar + theorem RingHom.expChar_iff + theorem expChar_of_injective_algebraMap + theorem expChar_of_injective_ringHom Modified Mathlib/Algebra/CharP/Basic.lean - theorem CharP.neg_one_pow_char - theorem CharP.neg_one_pow_char_pow + theorem MonoidHom.iterate_map_frobenius + theorem MonoidHom.map_frobenius + theorem MonoidHom.map_iterate_frobenius + theorem RingHom.iterate_map_frobenius + theorem RingHom.map_frobenius + theorem RingHom.map_iterate_frobenius +/- theorem add_pow_char +/- theorem add_pow_char_of_commute +/- theorem add_pow_char_pow +/- theorem add_pow_char_pow_of_commute - theorem add_pow_eq_add_pow_mod_mul_pow_add_pow_div + theorem add_pow_eq_mul_pow_add_pow_div_char + theorem add_pow_eq_mul_pow_add_pow_div_char_of_commute + theorem add_pow_eq_mul_pow_add_pow_div_expChar + theorem add_pow_eq_mul_pow_add_pow_div_expChar_of_commute + theorem add_pow_expChar + theorem add_pow_expChar_of_commute + theorem add_pow_expChar_pow + theorem add_pow_expChar_pow_of_commute + theorem coe_iterateFrobenius + theorem coe_iterateFrobenius_mul + def frobenius + theorem frobenius_def + theorem frobenius_mul + theorem frobenius_neg + theorem frobenius_one + theorem frobenius_sub + def iterateFrobenius + theorem iterateFrobenius_add + theorem iterateFrobenius_add_apply + theorem iterateFrobenius_def + theorem iterateFrobenius_mul_apply + theorem iterateFrobenius_one + theorem iterateFrobenius_one_apply + theorem iterateFrobenius_zero + theorem iterateFrobenius_zero_apply + theorem iterate_frobenius + theorem list_sum_pow_char + theorem list_sum_pow_char_pow + theorem multiset_sum_pow_char + theorem multiset_sum_pow_char_pow + theorem neg_one_pow_char + theorem neg_one_pow_char_pow + theorem neg_one_pow_expChar + theorem neg_one_pow_expChar_pow +/- theorem sub_pow_char +/- theorem sub_pow_char_of_commute +/- theorem sub_pow_char_pow +/- theorem sub_pow_char_pow_of_commute + theorem sub_pow_eq_mul_pow_sub_pow_div_char + theorem sub_pow_eq_mul_pow_sub_pow_div_char_of_commute + theorem sub_pow_eq_mul_pow_sub_pow_div_expChar + theorem sub_pow_eq_mul_pow_sub_pow_div_expChar_of_commute - theorem sub_pow_eq_sub_pow_mod_mul_pow_sub_pow_div + theorem sub_pow_expChar + theorem sub_pow_expChar_of_commute + theorem sub_pow_expChar_pow + theorem sub_pow_expChar_pow_of_commute + theorem sum_pow_char + theorem sum_pow_char_pow Modified Mathlib/Algebra/CharP/Defs.lean + theorem CharP.char_prime_of_ne_zero + theorem ExpChar.congr + theorem ExpChar.eq + theorem ExpChar.exists + theorem ExpChar.exists_unique + theorem charZero_of_expChar_one' + theorem char_eq_expChar_iff + theorem char_zero_of_expChar_one + theorem expChar_is_prime_or_one + theorem expChar_ne_zero + theorem expChar_one_iff_char_zero + theorem expChar_one_of_char_zero + theorem expChar_pos + theorem expChar_pow_pos + theorem ringExpChar.eq + theorem ringExpChar.eq_iff + theorem ringExpChar.eq_one + theorem ringExpChar.of_eq Modified Mathlib/Algebra/CharP/ExpChar.lean - theorem ExpChar.congr - theorem ExpChar.eq - theorem ExpChar.exists - theorem ExpChar.exists_unique - theorem ExpChar.neg_one_pow_expChar - theorem ExpChar.neg_one_pow_expChar_pow - theorem MonoidHom.iterate_map_frobenius - theorem MonoidHom.map_frobenius - theorem MonoidHom.map_iterate_frobenius - theorem RingHom.expChar - theorem RingHom.expChar_iff - theorem RingHom.iterate_map_frobenius - theorem RingHom.map_frobenius - theorem RingHom.map_iterate_frobenius - theorem add_pow_expChar - theorem add_pow_expChar_of_commute - theorem add_pow_expChar_pow - theorem add_pow_expChar_pow_of_commute - theorem charZero_of_expChar_one' - theorem char_eq_expChar_iff - theorem char_prime_of_ne_zero - theorem char_zero_of_expChar_one - theorem coe_iterateFrobenius - theorem coe_iterateFrobenius_mul - theorem expChar_is_prime_or_one - theorem expChar_of_injective_algebraMap - theorem expChar_of_injective_ringHom - theorem expChar_one_iff_char_zero - theorem expChar_one_of_char_zero - theorem expChar_pos - theorem expChar_pow_pos - def frobenius - theorem frobenius_def - theorem frobenius_mul - theorem frobenius_neg - theorem frobenius_one - theorem frobenius_sub - def iterateFrobenius - theorem iterateFrobenius_add - theorem iterateFrobenius_add_apply - theorem iterateFrobenius_def - theorem iterateFrobenius_mul_apply - theorem iterateFrobenius_one - theorem iterateFrobenius_one_apply - theorem iterateFrobenius_zero - theorem iterateFrobenius_zero_apply - theorem iterate_frobenius - theorem list_sum_pow_char - theorem list_sum_pow_char_pow - theorem multiset_sum_pow_char - theorem multiset_sum_pow_char_pow - theorem ringExpChar.eq - theorem ringExpChar.eq_iff - theorem ringExpChar.eq_one - theorem ringExpChar.of_eq - theorem sub_pow_expChar - theorem sub_pow_expChar_of_commute - theorem sub_pow_expChar_pow - theorem sub_pow_expChar_pow_of_commute - theorem sum_pow_char - theorem sum_pow_char_pow Modified Mathlib/Algebra/CharP/IntermediateField.lean Modified Mathlib/Algebra/CharP/LocalRing.lean Modified Mathlib/Algebra/CharP/Reduced.lean Modified Mathlib/Algebra/CharP/Two.lean Modified Mathlib/Algebra/Polynomial/Expand.lean Modified Mathlib/Data/Nat/Choose/Lucas.lean Modified Mathlib/Data/Nat/Totient.lean Modified Mathlib/FieldTheory/Finite/GaloisField.lean Modified Mathlib/FieldTheory/PerfectClosure.lean Modified Mathlib/FieldTheory/PurelyInseparable.lean Modified Mathlib/FieldTheory/SeparableDegree.lean Modified Mathlib/NumberTheory/MulChar/Basic.lean Modified Mathlib/RingTheory/FiniteType.lean Modified Mathlib/RingTheory/Perfection.lean Modified Mathlib/RingTheory/Polynomial/Basic.lean Modified Mathlib/RingTheory/Polynomial/SeparableDegree.lean 2024-10-21 21:50:36 13d0934 feat: `‖aba⁻¹b⁻¹ - 1‖ ≤ C ‖a - 1‖ ‖b - 1‖` (#18027) for `a`, `b` invertible. This will used to show the Breuillard-Green-Tao theorem in the case of matrices, which will then be bootstrapped to the full Breuillard-Green-Tao theorem. From [GrowthInGroups](https://github.com/YaelDillies/LeanCamCombi/tree/master/LeanCamCombi/GrowthInGroups) (LeanCamCombi) ESTIMATED CHANGES Modified Mathlib/Analysis/Normed/Field/Basic.lean + theorem nnnorm_commutator_sub_one_le + theorem nnnorm_commutator_units_sub_one_le + theorem norm_commutator_sub_one_le + theorem norm_commutator_units_sub_one_le 2024-10-21 18:56:49 c3f00b0 feat(Analysis/SpecificLimits/Basic): add lemmas about limits of fractions (#16768) Used in #15373. ESTIMATED CHANGES Modified Mathlib/Analysis/SpecificLimits/Basic.lean + theorem Filter.EventuallyEq.div_mul_cancel + theorem Filter.EventuallyEq.div_mul_cancel_atTop + theorem Tendsto.den + theorem Tendsto.num + theorem Tendsto.num_atTop_iff_den_atTop + theorem tendsto_mod_div_atTop_nhds_zero_nat Modified Mathlib/Data/Set/Pointwise/Interval.lean + theorem Set.preimage_const_mul_Ioi_or_Iio Modified Mathlib/Topology/Algebra/Order/Field.lean + theorem bdd_le_mul_tendsto_zero' + theorem bdd_le_mul_tendsto_zero + theorem tendsto_bdd_div_atTop_nhds_zero 2024-10-21 16:43:41 d2c8bed chore(Topology/Algebra/SeparationQuotient): split (#18011) The last 50 lines of the file cause massive import increase in downstream files. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Analysis/LocallyConvex/Bounded.lean Modified Mathlib/Analysis/Normed/Module/Span.lean Modified Mathlib/Analysis/Normed/Operator/ContinuousLinearMap.lean Modified Mathlib/Analysis/Normed/Operator/LinearIsometry.lean Modified Mathlib/Analysis/NormedSpace/BallAction.lean Modified Mathlib/Analysis/NormedSpace/ConformalLinearMap.lean Modified Mathlib/Analysis/NormedSpace/ENorm.lean Modified Mathlib/Analysis/NormedSpace/Real.lean Modified Mathlib/Analysis/NormedSpace/SphereNormEquiv.lean Modified Mathlib/Analysis/RCLike/Basic.lean Modified Mathlib/Topology/Algebra/Module/Cardinality.lean Renamed Mathlib/Topology/Algebra/SeparationQuotient.lean to Mathlib/Topology/Algebra/SeparationQuotient/Basic.lean - theorem SeparationQuotient.exists_out_continuousLinearMap - theorem SeparationQuotient.mkCLM_comp_outCLM - theorem SeparationQuotient.mk_comp_outCLM - theorem SeparationQuotient.mk_outCLM - theorem SeparationQuotient.outCLM_embedding - theorem SeparationQuotient.outCLM_injective - theorem SeparationQuotient.outCLM_isUniformEmbedding - theorem SeparationQuotient.outCLM_isUniformInducing - theorem SeparationQuotient.outCLM_uniformContinuous - theorem SeparationQuotient.postcomp_mkCLM_surjective Added Mathlib/Topology/Algebra/SeparationQuotient/Section.lean + theorem SeparationQuotient.exists_out_continuousLinearMap + theorem SeparationQuotient.mkCLM_comp_outCLM + theorem SeparationQuotient.mk_comp_outCLM + theorem SeparationQuotient.mk_outCLM + theorem SeparationQuotient.outCLM_embedding + theorem SeparationQuotient.outCLM_injective + theorem SeparationQuotient.outCLM_isUniformEmbedding + theorem SeparationQuotient.outCLM_isUniformInducing + theorem SeparationQuotient.outCLM_uniformContinuous + theorem SeparationQuotient.postcomp_mkCLM_surjective Modified Mathlib/Topology/MetricSpace/Algebra.lean Modified Mathlib/Topology/PartitionOfUnity.lean 2024-10-21 16:43:40 ff8e6e8 feat: semisimple rings are Artinian (#17557) The main result `IsSemisimpleModule.finite_tfae` shows that for a semisimple module, `Module.Finite R M ↔ IsNoetherian R M ↔ IsArtinian R M ↔ IsFiniteLength R M ↔` direct sum decomposition into finitely many simple modules (F25 in Chapter 28 of Lorenz's *Algebra II*). The instance from IsSemisimpleModule + Module.Finite to IsNoetherian is proven before and used in the proof, while the instance to IsArtinian is added after the proof. As a consequence, semisimple rings are Artinian. Also add easy lemmas `isNoetherian_range`, `LinearEquiv.isNoetherian_iff`, `isNoetherian_sup`, `isNoetherian_iSup` (and Artinian counterparts) and `IsSemisimpleModule.exists_setIndependent_sSup_simples_eq_top`. ESTIMATED CHANGES Modified Mathlib/Algebra/DirectSum/Module.lean + theorem DirectSum.range_coeLinearMap Modified Mathlib/NumberTheory/NumberField/Discriminant.lean Modified Mathlib/RingTheory/Artinian.lean + theorem LinearEquiv.isArtinian_iff Modified Mathlib/RingTheory/FiniteLength.lean + theorem IsSemisimpleModule.finite_tfae Modified Mathlib/RingTheory/Noetherian.lean + theorem LinearEquiv.isNoetherian_iff +/- theorem isNoetherian_top_iff Modified Mathlib/RingTheory/SimpleModule.lean + theorem IsSemisimpleModule.exists_setIndependent_sSup_simples_eq_top Added test/instances/Ring_finiteness.lean 2024-10-21 16:18:10 340899e chore(Pointwise/Finset): move `MonoidWithZero` and `Ring` results out (#17999) Move them to two new files `Algebra.GroupWithZero.Pointwise.Finset` and `Algebra.Ring.Pointwise.Finset` ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Group/Pointwise/Finset/Basic.lean - theorem Finset.Nonempty.div_zero - theorem Finset.Nonempty.mul_zero - theorem Finset.Nonempty.smul_zero - theorem Finset.Nonempty.zero_div - theorem Finset.Nonempty.zero_mul - theorem Finset.Nonempty.zero_smul - theorem Finset.add_mul_subset - theorem Finset.div_zero_subset - theorem Finset.inv_op_smul_finset_distrib₀ - theorem Finset.inv_smul_finset_distrib₀ - theorem Finset.inv_smul_mem_iff₀ - theorem Finset.mem_inv_smul_finset_iff₀ - theorem Finset.mul_add_subset - theorem Finset.mul_zero_subset - theorem Finset.neg_smul_finset - theorem Finset.smul_finset_inter₀ - theorem Finset.smul_finset_neg - theorem Finset.smul_finset_sdiff₀ - theorem Finset.smul_finset_subset_iff₀ - theorem Finset.smul_finset_subset_smul_finset_iff₀ - theorem Finset.smul_finset_symmDiff₀ - theorem Finset.smul_finset_univ₀ - theorem Finset.smul_mem_smul_finset_iff₀ - theorem Finset.smul_univ₀' - theorem Finset.smul_univ₀ - theorem Finset.smul_zero_subset - theorem Finset.subset_smul_finset_iff₀ - theorem Finset.zero_div_subset - theorem Finset.zero_mem_smul_finset - theorem Finset.zero_mem_smul_finset_iff - theorem Finset.zero_mem_smul_iff - theorem Finset.zero_mul_subset - theorem Finset.zero_smul_finset - theorem Finset.zero_smul_finset_subset - theorem Finset.zero_smul_subset Added Mathlib/Algebra/GroupWithZero/Pointwise/Finset.lean + theorem Finset.Nonempty.div_zero + theorem Finset.Nonempty.mul_zero + theorem Finset.Nonempty.smul_zero + theorem Finset.Nonempty.zero_div + theorem Finset.Nonempty.zero_mul + theorem Finset.Nonempty.zero_smul + theorem Finset.div_zero_subset + theorem Finset.inv_op_smul_finset_distrib₀ + theorem Finset.inv_smul_finset_distrib₀ + theorem Finset.inv_smul_mem_iff₀ + theorem Finset.mem_inv_smul_finset_iff₀ + theorem Finset.mul_zero_subset + theorem Finset.smul_finset_inter₀ + theorem Finset.smul_finset_neg + theorem Finset.smul_finset_sdiff₀ + theorem Finset.smul_finset_subset_iff₀ + theorem Finset.smul_finset_subset_smul_finset_iff₀ + theorem Finset.smul_finset_symmDiff₀ + theorem Finset.smul_finset_univ₀ + theorem Finset.smul_mem_smul_finset_iff₀ + theorem Finset.smul_univ₀' + theorem Finset.smul_univ₀ + theorem Finset.smul_zero_subset + theorem Finset.subset_smul_finset_iff₀ + theorem Finset.zero_div_subset + theorem Finset.zero_mem_smul_finset + theorem Finset.zero_mem_smul_finset_iff + theorem Finset.zero_mem_smul_iff + theorem Finset.zero_mul_subset + theorem Finset.zero_smul_finset + theorem Finset.zero_smul_finset_subset + theorem Finset.zero_smul_subset Added Mathlib/Algebra/Ring/Pointwise/Finset.lean + theorem Finset.add_mul_subset + theorem Finset.mul_add_subset + theorem Finset.neg_smul_finset 2024-10-21 15:51:40 e3e46c3 feat: `‖a * b * c‖ ≤ ‖a‖ * ‖b‖ * ‖c‖` (#18005) and prime the existing lemmas for a norm on a multiplicative group to make space for the ring ones. From GrowthInGroups ESTIMATED CHANGES Modified Mathlib/Analysis/Analytic/Basic.lean Modified Mathlib/Analysis/CStarAlgebra/Module/Defs.lean Modified Mathlib/Analysis/Calculus/FDeriv/Measurable.lean Modified Mathlib/Analysis/Calculus/Rademacher.lean Modified Mathlib/Analysis/Convex/Uniform.lean Modified Mathlib/Analysis/Normed/Field/Basic.lean + theorem nnnorm_mul_le_of_le + theorem nnnorm_mul₃_le + theorem norm_mul_le_of_le + theorem norm_mul₃_le Modified Mathlib/Analysis/Normed/Group/Basic.lean + theorem norm_mul_le_of_le' - theorem norm_mul_le_of_le + theorem norm_mul₃_le' - theorem norm_mul₃_le Modified Mathlib/Analysis/Normed/Group/Pointwise.lean Modified Mathlib/Probability/StrongLaw.lean 2024-10-21 15:44:23 0cb54c9 feat(AlgebraicGeometry): dominant morphisms of schemes (#17961) ESTIMATED CHANGES Modified Mathlib/AlgebraicGeometry/Morphisms/Constructors.lean + theorem AlgebraicGeometry.topologically_isLocalAtTarget' Modified Mathlib/AlgebraicGeometry/Morphisms/UnderlyingMap.lean + theorem AlgebraicGeometry.IsDominant.comp_iff + theorem AlgebraicGeometry.IsDominant.of_comp + theorem AlgebraicGeometry.Scheme.Hom.denseRange + theorem AlgebraicGeometry.dominant_eq_topologically Modified Mathlib/Topology/LocalAtTarget.lean + theorem denseRange_iff_denseRange_of_iSup_eq_top 2024-10-21 15:16:22 4ed749a RFC chore(GroupTheory/MonoidLocalization): un-`@[simp]` `Localization.mk_eq_monoidOf_mk'` (#18015) This lemma feels somewhat close to exposing an implementation detail to me, although it can be argued that the right hand side is indeed a bit simpler since it definitely uses more simple machinery. Again the balance is somewhat even between removing now-unnecessary `simp [-Localization.mk_eq_monoidOf_mk']` and adding new `simp [Localization.mk_eq_monoidOf_mk']`. Zulip thread: https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/RFC.3A.20un-.60simp.60ing.20.60normalize_apply.60 ESTIMATED CHANGES Modified Mathlib/FieldTheory/RatFunc/Basic.lean Modified Mathlib/GroupTheory/MonoidLocalization/Away.lean +/- theorem Localization.Away.mk_eq_monoidOf_mk' Modified Mathlib/GroupTheory/MonoidLocalization/Basic.lean Modified Mathlib/GroupTheory/MonoidLocalization/Order.lean Modified Mathlib/RingTheory/GradedAlgebra/HomogeneousLocalization.lean 2024-10-21 15:16:21 7004cd3 feat: add missing instances for `ContinuousMap` and `BoundedContinuousFunction` (#17838) ESTIMATED CHANGES Modified Mathlib/Topology/ContinuousMap/Algebra.lean Modified Mathlib/Topology/ContinuousMap/Bounded.lean 2024-10-21 14:58:55 69a4014 chore(CategoryTheory/Adjunction): homEquiv_unit is no longer a global simp lemma (#17761) This PR removes the global `simp` attribute to lemmas `homEquiv_unit` and `homEquiv_counit`. These lemmas express the bijection `homEquiv` in terms of the unit and counit of the adjunction. In situations where adjunctions are defined using the constructor `mkOfHomEquiv`, we do not want these lemmas as global simp. However, when we study adjunctions defined using units and counits, or when proving general API results about them, they can be made local simp. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Adjunction/Basic.lean Modified Mathlib/CategoryTheory/Adjunction/Comma.lean Modified Mathlib/CategoryTheory/Adjunction/FullyFaithful.lean Modified Mathlib/CategoryTheory/Adjunction/Lifting/Left.lean Modified Mathlib/CategoryTheory/Adjunction/Lifting/Right.lean Modified Mathlib/CategoryTheory/Adjunction/Limits.lean Modified Mathlib/CategoryTheory/Adjunction/Opposites.lean Modified Mathlib/CategoryTheory/Adjunction/Reflective.lean Modified Mathlib/CategoryTheory/Adjunction/Restrict.lean Modified Mathlib/CategoryTheory/Adjunction/Unique.lean Modified Mathlib/CategoryTheory/Closed/Ideal.lean Modified Mathlib/CategoryTheory/Limits/Final.lean Modified Mathlib/CategoryTheory/Limits/HasLimits.lean Modified Mathlib/CategoryTheory/Localization/Bousfield.lean Modified Mathlib/CategoryTheory/Monad/Comonadicity.lean Modified Mathlib/CategoryTheory/Monad/Monadicity.lean Modified Mathlib/CategoryTheory/Monoidal/Functor.lean Modified Mathlib/CategoryTheory/Monoidal/NaturalTransformation.lean Modified Mathlib/CategoryTheory/Preadditive/Injective.lean Modified Mathlib/CategoryTheory/Sites/PreservesSheafification.lean Modified Mathlib/Topology/Sheaves/Presheaf.lean 2024-10-21 14:44:12 a60ffda chore: add dependabot (#18013) This PR introduces a Dependabot configuration specifically for managing dependencies in GitHub Actions workflows. It automates the process of checking for updates to GitHub Actions dependencies. ESTIMATED CHANGES Added .github/dependabot.yml 2024-10-21 14:44:11 d254991 feat(Data/Real/IsNonarchimedean): add lemmas (#16767) Used in #15373. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Order/Hom/Normed.lean + theorem GroupNormClass.toNormedCommGroup_norm_eq + theorem GroupNormClass.toNormedGroup_norm_eq + theorem GroupSeminormClass.toSeminormedCommGroup_norm_eq + theorem GroupSeminormClass.toSeminormedGroup_norm_eq Added Mathlib/Algebra/Order/Hom/Ultra.lean + theorem AddGroupSeminormClass.isUltrametricDist Modified Mathlib/Analysis/Normed/Group/Ultra.lean + theorem IsUltrametricDist.exists_norm_finset_prod_le + theorem IsUltrametricDist.exists_norm_finset_prod_le_of_nonempty + theorem IsUltrametricDist.exists_norm_multiset_prod_le Added Mathlib/Data/Real/IsNonarchimedean.lean + theorem IsNonarchimedean.add_eq_max_of_ne + theorem IsNonarchimedean.add_le + theorem IsNonarchimedean.add_pow_le + theorem IsNonarchimedean.finset_image_add + theorem IsNonarchimedean.finset_image_add_of_nonempty + theorem IsNonarchimedean.multiset_image_add + theorem IsNonarchimedean.multiset_image_add_of_nonempty + theorem IsNonarchimedean.nmul_le + theorem IsNonarchimedean.nsmul_le 2024-10-21 14:11:35 f4c1fd5 feat: `a ^ n = 1 ↔ n = 0` and similar (#17745) This PR adds a few lemmas about GroupsWithZero, more precisely: - the lemmas `zero_pow_eq_one₀`, `zero_zpow_eq_one₀` to Algebra.GroupWithZero.Basic and - `zpow_le_zpow_iff_right_of_lt_one₀`, `zpow_lt_zpow_iff_right_of_lt_one₀` and `zpow_eq_one_iff_right₀` to Algebra.Order.GroupWithZero.Unbundled. Used in project Formalization of the Bruhat-Tits Tree. ESTIMATED CHANGES Modified Mathlib/Algebra/GroupWithZero/Basic.lean + theorem zero_pow_eq_one₀ + theorem zero_zpow_eq_one₀ Modified Mathlib/Algebra/Order/GroupWithZero/Unbundled.lean + theorem zpow_eq_one_iff_right₀ + theorem zpow_le_zpow_iff_right_of_lt_one₀ + theorem zpow_lt_zpow_iff_right_of_lt_one₀ +/- theorem zpow_lt_zpow_right_of_lt_one₀ 2024-10-21 13:21:29 3bf558f feat(Module/ZLattice): define the pullback of a ZLattice (#16822) Define the pullback of a ZLattice `L` by a linear map `f`. The following results are also included: - If `f` is a continuous linear equiv, then the pullback is also a ZLattice (added as an instance). - If `f` is a linear equiv, define the corresponding basis of the pullback obtained from a basis of `L` - If `f` is a continuous linear equiv and volume preserving, prove that `L` and its pullback have the same volume. This PR is part of the proof of the Analytic Class Number Formula. ESTIMATED CHANGES Modified Mathlib/Algebra/Module/ZLattice/Basic.lean + def Basis.ofZLatticeComap + theorem Basis.ofZLatticeComap_apply + theorem Basis.ofZLatticeComap_repr_apply + theorem ZLattice.coe_comap + theorem ZLattice.comap_comp + theorem ZLattice.comap_discreteTopology + def ZLattice.comap_equiv + theorem ZLattice.comap_equiv_apply + theorem ZLattice.comap_refl + theorem ZLattice.comap_span_top + theorem ZSpan.map Modified Mathlib/Algebra/Module/ZLattice/Covolume.lean + theorem ZLattice.covolume_comap 2024-10-21 10:47:33 d43bc00 feat: Popoviciu's inequality (#17868) Formalize [Popoviciu's inequality on variances](https://en.wikipedia.org/wiki/Popoviciu%27s_inequality_on_variances) through the [Bhatia-Davis inequality](https://en.wikipedia.org/wiki/Bhatia%E2%80%93Davis_inequality). ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Function/LpSeminorm/Basic.lean + theorem MeasureTheory.memℒp_of_bounded Modified Mathlib/Probability/Variance.lean + theorem ProbabilityTheory.variance_le_sq_of_bounded + theorem ProbabilityTheory.variance_le_sub_mul_sub 2024-10-21 10:04:43 1df44a8 chore: remove `CoeFun` instances where `FunLike` is available (#17917) During the port we found that `FunLike` is robust enough not to need an extra `CoeFun` shortcut. Let's see if that rule can be consistently applied to the whole of the library. There is still duplication between `FunLike` and `CoeFun` for `Grp`, `Mon`, `CommGrp` and `CommMon`, which will need a more thorough fix. See also #17866. This contains everything except the interval [1/4, 3/8] of the changes, and doesn't affect the benchmark. ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/AffineSpace/ContinuousAffineEquiv.lean Modified Mathlib/LinearAlgebra/Alternating/Basic.lean 2024-10-21 09:56:18 ff1b886 chore: add test to keep powering in `ZMod` fast (#17996) Thanks to #8885 we can now evaluate powers in `ZMod M` much more efficiently for large `M`. To guard against reversion, we add a test that for a chosen 1024-bit prime and base we should satisfy Fermat's Little Theorem when `#eval` is used. ESTIMATED CHANGES Added test/BinPow.lean 2024-10-21 09:56:17 59834f4 chore: removed unused variables (#17975) Part of/working towards #17715 ESTIMATED CHANGES Modified Mathlib/Data/Matrix/Hadamard.lean Modified Mathlib/Data/Matrix/Reflection.lean Modified Mathlib/Data/Matroid/Closure.lean Modified Mathlib/Data/Matroid/IndepAxioms.lean Modified Mathlib/Data/Matroid/Map.lean Modified Mathlib/Data/Matroid/Restrict.lean Modified Mathlib/Data/NNRat/BigOperators.lean Modified Mathlib/Data/Nat/Factorial/SuperFactorial.lean Modified Mathlib/Data/Nat/Fib/Zeckendorf.lean Modified Mathlib/Data/Sum/Interval.lean Modified Mathlib/Deprecated/Subgroup.lean Modified Mathlib/Deprecated/Subring.lean Modified Mathlib/FieldTheory/Finite/Polynomial.lean Modified Mathlib/FieldTheory/IsAlgClosed/Classification.lean Modified Mathlib/FieldTheory/IsPerfectClosure.lean Modified Mathlib/Geometry/Euclidean/Angle/Unoriented/Affine.lean Modified Mathlib/Geometry/Euclidean/PerpBisector.lean Modified Mathlib/RingTheory/AlgebraicIndependent.lean 2024-10-21 09:29:05 355721b docs(Computability/EpsilonNFA): typo (#17992) Fixes a typo in `εNFA` docs (inputing -> inputting) ESTIMATED CHANGES Modified Mathlib/Computability/EpsilonNFA.lean 2024-10-21 09:29:04 336b746 feat(Topology/Inseparable): add `alias Specializes.of_eq := specializes_of_eq` (#17988) To enable dot notation. ESTIMATED CHANGES Modified Mathlib/Topology/Inseparable.lean 2024-10-21 09:29:02 5195b1b chore(Filter/Tendsto): split from `Basic` (#17959) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Combinatorics/Derangements/Exponential.lean Modified Mathlib/Order/Filter/Basic.lean - theorem Filter.EventuallyEq.comp_tendsto - theorem Filter.Tendsto.comp - theorem Filter.Tendsto.congr' - theorem Filter.Tendsto.congr - theorem Filter.Tendsto.eventually - theorem Filter.Tendsto.eventually_mem - theorem Filter.Tendsto.frequently - theorem Filter.Tendsto.frequently_map - theorem Filter.Tendsto.inf - theorem Filter.Tendsto.mono_left - theorem Filter.Tendsto.mono_right - theorem Filter.Tendsto.neBot - theorem Filter.Tendsto.not_tendsto - theorem Filter.Tendsto.of_neBot_imp - theorem Filter.Tendsto.of_tendsto_comp - theorem Filter.Tendsto.sup - theorem Filter.Tendsto.sup_sup - theorem Filter.comap_eq_of_inverse - theorem Filter.eventuallyEq_of_left_inv_of_right_inv - theorem Filter.le_map_of_right_inverse - theorem Filter.map_eq_of_inverse - theorem Filter.map_inf_principal_preimage - theorem Filter.map_mapsTo_Iic_iff_mapsTo - theorem Filter.map_mapsTo_Iic_iff_tendsto - theorem Filter.not_tendsto_iff_exists_frequently_nmem - theorem Filter.pure_le_iff - theorem Filter.tendsto_bot - theorem Filter.tendsto_comap'_iff - theorem Filter.tendsto_comap - theorem Filter.tendsto_comap_iff - theorem Filter.tendsto_congr' - theorem Filter.tendsto_congr - theorem Filter.tendsto_const_pure - theorem Filter.tendsto_def - theorem Filter.tendsto_iInf' - theorem Filter.tendsto_iInf - theorem Filter.tendsto_iInf_iInf - theorem Filter.tendsto_iSup - theorem Filter.tendsto_iSup_iSup - theorem Filter.tendsto_id' - theorem Filter.tendsto_id - theorem Filter.tendsto_iff_comap - theorem Filter.tendsto_iff_eventually - theorem Filter.tendsto_iff_forall_eventually_mem - theorem Filter.tendsto_inf - theorem Filter.tendsto_inf_left - theorem Filter.tendsto_inf_right - theorem Filter.tendsto_map'_iff - theorem Filter.tendsto_map - theorem Filter.tendsto_of_isEmpty - theorem Filter.tendsto_principal - theorem Filter.tendsto_principal_principal - theorem Filter.tendsto_pure - theorem Filter.tendsto_pure_left - theorem Filter.tendsto_pure_pure - theorem Filter.tendsto_sup - theorem Filter.tendsto_top - theorem Set.MapsTo.tendsto Modified Mathlib/Order/Filter/CardinalInter.lean Modified Mathlib/Order/Filter/Extr.lean Modified Mathlib/Order/Filter/Germ/Basic.lean Modified Mathlib/Order/Filter/Partial.lean Modified Mathlib/Order/Filter/Pi.lean Modified Mathlib/Order/Filter/Prod.lean Added Mathlib/Order/Filter/Tendsto.lean + theorem Filter.EventuallyEq.comp_tendsto + theorem Filter.Tendsto.comp + theorem Filter.Tendsto.congr' + theorem Filter.Tendsto.congr + theorem Filter.Tendsto.eventually + theorem Filter.Tendsto.eventually_mem + theorem Filter.Tendsto.frequently + theorem Filter.Tendsto.frequently_map + theorem Filter.Tendsto.inf + theorem Filter.Tendsto.mono_left + theorem Filter.Tendsto.mono_right + theorem Filter.Tendsto.neBot + theorem Filter.Tendsto.not_tendsto + theorem Filter.Tendsto.of_neBot_imp + theorem Filter.Tendsto.of_tendsto_comp + theorem Filter.Tendsto.sup + theorem Filter.Tendsto.sup_sup + theorem Filter.comap_eq_of_inverse + theorem Filter.eventuallyEq_of_left_inv_of_right_inv + theorem Filter.le_map_of_right_inverse + theorem Filter.map_eq_of_inverse + theorem Filter.map_inf_principal_preimage + theorem Filter.map_mapsTo_Iic_iff_mapsTo + theorem Filter.map_mapsTo_Iic_iff_tendsto + theorem Filter.not_tendsto_iff_exists_frequently_nmem + theorem Filter.pure_le_iff + theorem Filter.tendsto_bot + theorem Filter.tendsto_comap'_iff + theorem Filter.tendsto_comap + theorem Filter.tendsto_comap_iff + theorem Filter.tendsto_congr' + theorem Filter.tendsto_congr + theorem Filter.tendsto_const_pure + theorem Filter.tendsto_def + theorem Filter.tendsto_iInf' + theorem Filter.tendsto_iInf + theorem Filter.tendsto_iInf_iInf + theorem Filter.tendsto_iSup + theorem Filter.tendsto_iSup_iSup + theorem Filter.tendsto_id' + theorem Filter.tendsto_id + theorem Filter.tendsto_iff_comap + theorem Filter.tendsto_iff_eventually + theorem Filter.tendsto_iff_forall_eventually_mem + theorem Filter.tendsto_inf + theorem Filter.tendsto_inf_left + theorem Filter.tendsto_inf_right + theorem Filter.tendsto_map'_iff + theorem Filter.tendsto_map + theorem Filter.tendsto_of_isEmpty + theorem Filter.tendsto_principal + theorem Filter.tendsto_principal_principal + theorem Filter.tendsto_pure + theorem Filter.tendsto_pure_left + theorem Filter.tendsto_pure_pure + theorem Filter.tendsto_sup + theorem Filter.tendsto_top + theorem Set.MapsTo.tendsto Modified Mathlib/Topology/Compactness/Compact.lean 2024-10-21 09:29:01 2edff71 chore(RingTheory/DedekindDomain/FiniteAdeleRing): remove TODO (#17951) It's done! ESTIMATED CHANGES Modified Mathlib/RingTheory/DedekindDomain/FiniteAdeleRing.lean 2024-10-21 09:29:00 662a8ba chore(Data/NNReal): split into `Defs` and `Basic` (#17913) I saw a few weird imports in `Data.NNReal.Basic` so I decided to split off a `Defs` file. `Defs` conains the definition and the conditionally complete linear ordered archimedean commutative semifield(!) structure, and all easily definable lemmas downstream of that. `Basic` contains whatever was left over and is a good target for further cleanup and reorganization. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Analysis/Normed/Group/Seminorm.lean Modified Mathlib/Data/ENNReal/Basic.lean Modified Mathlib/Data/ENNReal/Operations.lean Modified Mathlib/Data/Int/WithZero.lean Modified Mathlib/Data/NNReal/Basic.lean - def Mathlib.Meta.Positivity.evalNNRealtoReal - theorem NNReal.abs_eq - theorem NNReal.algebraMap_eq_coe - theorem NNReal.bddAbove_coe - theorem NNReal.bddBelow_coe - theorem NNReal.bot_eq_zero - theorem NNReal.coe_eq_one - theorem NNReal.coe_eq_zero - theorem NNReal.coe_iInf - theorem NNReal.coe_iSup - theorem NNReal.coe_image - theorem NNReal.coe_inj - theorem NNReal.coe_le_coe - theorem NNReal.coe_le_one - theorem NNReal.coe_lt_coe - theorem NNReal.coe_lt_one - theorem NNReal.coe_max - theorem NNReal.coe_min - theorem NNReal.coe_mk - theorem NNReal.coe_mono - theorem NNReal.coe_ne_one - theorem NNReal.coe_ne_zero - theorem NNReal.coe_nnqsmul - theorem NNReal.coe_nonneg - theorem NNReal.coe_nsmul - theorem NNReal.coe_one - theorem NNReal.coe_pos - theorem NNReal.coe_pow - theorem NNReal.coe_sInf - theorem NNReal.coe_sSup - theorem NNReal.coe_sub_def - theorem NNReal.coe_toRealHom - theorem NNReal.coe_zero - theorem NNReal.coe_zpow - theorem NNReal.div_le_div_left_of_le - theorem NNReal.div_le_of_le_mul' - theorem NNReal.div_le_of_le_mul - theorem NNReal.div_lt_iff' - theorem NNReal.div_lt_iff - theorem NNReal.div_lt_one_of_lt - theorem NNReal.exists_lt_of_strictMono - theorem NNReal.iInf_const_zero - theorem NNReal.iInf_empty - theorem NNReal.iSup_empty - theorem NNReal.iSup_eq_zero - theorem NNReal.iSup_of_not_bddAbove - theorem NNReal.inv_le - theorem NNReal.inv_le_of_le_mul - theorem NNReal.inv_lt_inv - theorem NNReal.inv_lt_one_iff - theorem NNReal.le_div_iff' - theorem NNReal.le_div_iff_mul_le - theorem NNReal.le_inv_iff_mul_le - theorem NNReal.le_of_forall_lt_one_mul_le - theorem NNReal.le_toNNReal_of_coe_le - theorem NNReal.lt_div_iff' - theorem NNReal.lt_div_iff - theorem NNReal.lt_iff_exists_rat_btwn - theorem NNReal.lt_inv_iff_mul_lt - theorem NNReal.mk_natCast - theorem NNReal.mk_one - theorem NNReal.mk_zero - theorem NNReal.mul_eq_mul_left - theorem NNReal.mul_le_iff_le_inv - theorem NNReal.mul_lt_of_lt_div - theorem NNReal.mul_sup - theorem NNReal.ne_iff - theorem NNReal.one_le_coe - theorem NNReal.one_lt_coe - def NNReal.orderIsoIccZeroCoe - theorem NNReal.orderIsoIccZeroCoe_apply_coe_coe - theorem NNReal.orderIsoIccZeroCoe_symm_apply_coe - theorem NNReal.pow_antitone_exp - theorem NNReal.sInf_empty - theorem NNReal.smul_def - theorem NNReal.sub_def - theorem NNReal.sup_mul - theorem NNReal.toNNReal_coe_nat - def NNReal.toReal - def NNReal.toRealHom - theorem NNReal.val_eq_coe - theorem NNReal.zero_le_coe - def NNReal - theorem Real.cast_natAbs_eq_nnabs_cast - theorem Real.coe_nnabs - theorem Real.coe_toNNReal' - theorem Real.coe_toNNReal - theorem Real.coe_toNNReal_le - theorem Real.exists_lt_of_strictMono - theorem Real.le_coe_toNNReal - theorem Real.le_toNNReal_iff_coe_le' - theorem Real.le_toNNReal_iff_coe_le - theorem Real.lt_of_toNNReal_lt - theorem Real.lt_toNNReal_iff_coe_lt - theorem Real.natCast_le_toNNReal - theorem Real.natCast_lt_toNNReal - theorem Real.natCastle_toNNReal' - def Real.nnabs - theorem Real.nnabs_coe - theorem Real.nnabs_of_nonneg - theorem Real.ofNat_le_toNNReal - theorem Real.ofNat_lt_toNNReal - theorem Real.one_le_toNNReal - theorem Real.one_lt_toNNReal - theorem Real.toNNReal_abs - theorem Real.toNNReal_add - theorem Real.toNNReal_add_le - theorem Real.toNNReal_add_toNNReal - theorem Real.toNNReal_coe - theorem Real.toNNReal_div' - theorem Real.toNNReal_div - theorem Real.toNNReal_eq_iff_eq_coe - theorem Real.toNNReal_eq_natCast - theorem Real.toNNReal_eq_ofNat - theorem Real.toNNReal_eq_one - theorem Real.toNNReal_eq_toNNReal_iff - theorem Real.toNNReal_eq_zero - theorem Real.toNNReal_inv - theorem Real.toNNReal_le_iff_le_coe - theorem Real.toNNReal_le_natCast - theorem Real.toNNReal_le_ofNat - theorem Real.toNNReal_le_one - theorem Real.toNNReal_le_toNNReal - theorem Real.toNNReal_le_toNNReal_iff' - theorem Real.toNNReal_le_toNNReal_iff - theorem Real.toNNReal_le_toNNReal_iff_of_pos - theorem Real.toNNReal_lt_iff_lt_coe - theorem Real.toNNReal_lt_natCast' - theorem Real.toNNReal_lt_natCast - theorem Real.toNNReal_lt_ofNat - theorem Real.toNNReal_lt_one - theorem Real.toNNReal_lt_toNNReal_iff' - theorem Real.toNNReal_lt_toNNReal_iff - theorem Real.toNNReal_lt_toNNReal_iff_of_nonneg - theorem Real.toNNReal_mul - theorem Real.toNNReal_ofNat - theorem Real.toNNReal_of_nonneg - theorem Real.toNNReal_of_nonpos - theorem Real.toNNReal_one - theorem Real.toNNReal_pos - theorem Real.toNNReal_pow - theorem Real.toNNReal_zero - theorem Set.OrdConnected.image_coe_nnreal_real - theorem Set.OrdConnected.image_real_toNNReal - theorem Set.OrdConnected.preimage_coe_nnreal_real - theorem Set.OrdConnected.preimage_real_toNNReal Added Mathlib/Data/NNReal/Defs.lean + def Mathlib.Meta.Positivity.evalNNRealtoReal + theorem NNReal.abs_eq + theorem NNReal.algebraMap_eq_coe + theorem NNReal.bddAbove_coe + theorem NNReal.bddBelow_coe + theorem NNReal.bot_eq_zero + theorem NNReal.coe_eq_one + theorem NNReal.coe_eq_zero + theorem NNReal.coe_iInf + theorem NNReal.coe_iSup + theorem NNReal.coe_image + theorem NNReal.coe_inj + theorem NNReal.coe_le_coe + theorem NNReal.coe_le_one + theorem NNReal.coe_lt_coe + theorem NNReal.coe_lt_one + theorem NNReal.coe_max + theorem NNReal.coe_min + theorem NNReal.coe_mk + theorem NNReal.coe_mono + theorem NNReal.coe_ne_one + theorem NNReal.coe_ne_zero + theorem NNReal.coe_nnqsmul + theorem NNReal.coe_nonneg + theorem NNReal.coe_nsmul + theorem NNReal.coe_one + theorem NNReal.coe_pos + theorem NNReal.coe_pow + theorem NNReal.coe_sInf + theorem NNReal.coe_sSup + theorem NNReal.coe_sub_def + theorem NNReal.coe_toRealHom + theorem NNReal.coe_zero + theorem NNReal.coe_zpow + theorem NNReal.div_le_div_left_of_le + theorem NNReal.div_le_of_le_mul' + theorem NNReal.div_le_of_le_mul + theorem NNReal.div_lt_iff' + theorem NNReal.div_lt_iff + theorem NNReal.div_lt_one_of_lt + theorem NNReal.exists_lt_of_strictMono + theorem NNReal.iInf_const_zero + theorem NNReal.iInf_empty + theorem NNReal.iSup_empty + theorem NNReal.iSup_eq_zero + theorem NNReal.iSup_of_not_bddAbove + theorem NNReal.inv_le + theorem NNReal.inv_le_of_le_mul + theorem NNReal.inv_lt_inv + theorem NNReal.inv_lt_one_iff + theorem NNReal.le_div_iff' + theorem NNReal.le_div_iff_mul_le + theorem NNReal.le_inv_iff_mul_le + theorem NNReal.le_of_forall_lt_one_mul_le + theorem NNReal.le_toNNReal_of_coe_le + theorem NNReal.lt_div_iff' + theorem NNReal.lt_div_iff + theorem NNReal.lt_iff_exists_rat_btwn + theorem NNReal.lt_inv_iff_mul_lt + theorem NNReal.mk_natCast + theorem NNReal.mk_one + theorem NNReal.mk_zero + theorem NNReal.mul_eq_mul_left + theorem NNReal.mul_le_iff_le_inv + theorem NNReal.mul_lt_of_lt_div + theorem NNReal.mul_sup + theorem NNReal.ne_iff + theorem NNReal.one_le_coe + theorem NNReal.one_lt_coe + def NNReal.orderIsoIccZeroCoe + theorem NNReal.orderIsoIccZeroCoe_apply_coe_coe + theorem NNReal.orderIsoIccZeroCoe_symm_apply_coe + theorem NNReal.pow_antitone_exp + theorem NNReal.sInf_empty + theorem NNReal.smul_def + theorem NNReal.sub_def + theorem NNReal.sup_mul + theorem NNReal.toNNReal_coe_nat + def NNReal.toReal + def NNReal.toRealHom + theorem NNReal.val_eq_coe + theorem NNReal.zero_le_coe + def NNReal + theorem Real.cast_natAbs_eq_nnabs_cast + theorem Real.coe_nnabs + theorem Real.coe_toNNReal' + theorem Real.coe_toNNReal + theorem Real.coe_toNNReal_le + theorem Real.exists_lt_of_strictMono + theorem Real.le_coe_toNNReal + theorem Real.le_toNNReal_iff_coe_le' + theorem Real.le_toNNReal_iff_coe_le + theorem Real.lt_of_toNNReal_lt + theorem Real.lt_toNNReal_iff_coe_lt + theorem Real.natCast_le_toNNReal + theorem Real.natCast_lt_toNNReal + theorem Real.natCastle_toNNReal' + def Real.nnabs + theorem Real.nnabs_coe + theorem Real.nnabs_of_nonneg + theorem Real.ofNat_le_toNNReal + theorem Real.ofNat_lt_toNNReal + theorem Real.one_le_toNNReal + theorem Real.one_lt_toNNReal + theorem Real.toNNReal_abs + theorem Real.toNNReal_add + theorem Real.toNNReal_add_le + theorem Real.toNNReal_add_toNNReal + theorem Real.toNNReal_coe + theorem Real.toNNReal_div' + theorem Real.toNNReal_div + theorem Real.toNNReal_eq_iff_eq_coe + theorem Real.toNNReal_eq_natCast + theorem Real.toNNReal_eq_ofNat + theorem Real.toNNReal_eq_one + theorem Real.toNNReal_eq_toNNReal_iff + theorem Real.toNNReal_eq_zero + theorem Real.toNNReal_inv + theorem Real.toNNReal_le_iff_le_coe + theorem Real.toNNReal_le_natCast + theorem Real.toNNReal_le_ofNat + theorem Real.toNNReal_le_one + theorem Real.toNNReal_le_toNNReal + theorem Real.toNNReal_le_toNNReal_iff' + theorem Real.toNNReal_le_toNNReal_iff + theorem Real.toNNReal_le_toNNReal_iff_of_pos + theorem Real.toNNReal_lt_iff_lt_coe + theorem Real.toNNReal_lt_natCast' + theorem Real.toNNReal_lt_natCast + theorem Real.toNNReal_lt_ofNat + theorem Real.toNNReal_lt_one + theorem Real.toNNReal_lt_toNNReal_iff' + theorem Real.toNNReal_lt_toNNReal_iff + theorem Real.toNNReal_lt_toNNReal_iff_of_nonneg + theorem Real.toNNReal_mul + theorem Real.toNNReal_ofNat + theorem Real.toNNReal_of_nonneg + theorem Real.toNNReal_of_nonpos + theorem Real.toNNReal_one + theorem Real.toNNReal_pos + theorem Real.toNNReal_pow + theorem Real.toNNReal_zero + theorem Set.OrdConnected.image_coe_nnreal_real + theorem Set.OrdConnected.image_real_toNNReal + theorem Set.OrdConnected.preimage_coe_nnreal_real + theorem Set.OrdConnected.preimage_real_toNNReal Modified Mathlib/Data/NNReal/Star.lean Modified Mathlib/MeasureTheory/Measure/AddContent.lean Modified Mathlib/RingTheory/Valuation/RankOne.lean 2024-10-21 09:28:58 8a8d36d feat(GroupTheory/Index): index of product of subgroups (#17878) Add two lemmas about the index of a product (pairwise or indexed) of subgroups. ```lean @[to_additive] lemma index_prod (H : Subgroup G) (K : Subgroup G') : (H.prod K).index = H.index * K.index := by ``` ```lean @[to_additive] lemma index_pi {ι : Type*} [Fintype ι] (H : ι → Subgroup G) : (Subgroup.pi Set.univ H).index = ∏ i, (H i).index := by ``` From AperiodicMonotilesLean. ESTIMATED CHANGES Modified Mathlib/GroupTheory/Index.lean + theorem Subgroup.index_pi + theorem Subgroup.index_prod 2024-10-21 09:28:57 26449dc feat(NumberTheory/Ostrowski): Ostrowski's Theorem for the rationals (#17138) We complete the proof of the Archimedean case of Ostrowski's Theorem for the rational numbers: ```lean theorem mulRingNorm_equiv_standard_of_unbounded (notbdd: ¬ ∀ (n : ℕ), f n ≤ 1) : MulRingNorm.equiv f mulRingNorm_real ``` This concludes the proof of the theorem: ```lean theorem mulRingNorm_equiv_standard_or_padic (f : MulRingNorm ℚ) (hf_nontriv : f ≠ 1) : (MulRingNorm.equiv f mulRingNorm_real) ∨ ∃! p, ∃ (hp : Fact (p.Prime)), MulRingNorm.equiv f (mulRingNorm_padic p) ``` ESTIMATED CHANGES Modified Mathlib/NumberTheory/Ostrowski.lean + theorem Rat.MulRingNorm.le_of_mulRingNorm_eq + theorem Rat.MulRingNorm.mulRingNorm_equiv_standard_of_unbounded + theorem Rat.MulRingNorm.mulRingNorm_equiv_standard_or_padic + theorem Rat.MulRingNorm.mulRingNorm_le_mulRingNorm_pow_log + def Rat.MulRingNorm.mulRingNorm_real + theorem Rat.MulRingNorm.mul_ring_norm_eq_abs 2024-10-21 08:47:13 5958e95 chore: fix some nits from #12339 (#17994) ESTIMATED CHANGES Modified Mathlib/Tactic/Linter/Multigoal.lean Modified test/Multigoal.lean 2024-10-21 08:47:12 3b842b0 chore: cleanup adaptation notes from 2024-09-06 (#17990) ESTIMATED CHANGES Modified Mathlib/Data/List/Forall2.lean Modified Mathlib/Data/Nat/Defs.lean Modified Mathlib/NumberTheory/LegendreSymbol/JacobiSymbol.lean Modified Mathlib/SetTheory/Cardinal/Finite.lean 2024-10-21 08:28:17 1404d2b feat(ENNReal): liminf/limsup/iInf/iSup and multiplication (#17656) This PR adds a few lemmas about multiplication and liminf/limsup/iInf/iSup: `mul_iInf_le_iInf_mul`, `iSup_mul_le_mul_iSup`, `mul_liminf_le_liminf_mul` and three avatars of the latter. The strategy adopted is the same as for similar lemmas in EReal (`EReal.add_iInf_le_iInf_add`...): we suffer to prove the key result `mul_le_of_forall_mul_le`, and everything is deduced from there. Note that `ENNReal.mul_le_of_forall_mul_le` could be deduced much faster from `EReal.add_le_of_forall_add_le` using the exp (both as an order isomorphism and as a "group" morphism). However, I wanted to avoid importing special functions, which unfortunately leads to a much longer and painful proof. This also generalizes some lemmas in #15373 : `limsup_mul_le'` therein can be replaced by `limsup_mul_le_mul_limsup` with some easy plug-and-play; if `_root_.Real.limsup_mul_le` is still needed, I can write another PR to deal with it (most of the work is already done anyways -- I think I can prove `mul_le_of_forall_mul_le` in NNReal, and leverage it to simplify the proof in ENNReal). ESTIMATED CHANGES Modified Mathlib/Data/ENNReal/Inv.lean + theorem ENNReal.iSup_mul_le + theorem ENNReal.le_iInf_mul + theorem ENNReal.le_mul_of_forall_lt + theorem ENNReal.mul_le_of_forall_lt Modified Mathlib/Order/Filter/ENNReal.lean Modified Mathlib/Topology/Instances/ENNReal.lean + theorem ENNReal.le_liminf_mul + theorem ENNReal.le_limsup_mul + theorem ENNReal.liminf_mul_le + theorem ENNReal.limsup_mul_le' 2024-10-21 08:12:54 1fad8e4 feat: the pi sigma-algebra is generated by projections (#17828) This is basically the definition, but it's not quite immediate. From GibbsMeasure ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Constructions/Pi.lean + theorem MeasurableSpace.pi_eq_generateFrom_projections Modified Mathlib/MeasureTheory/MeasurableSpace/Basic.lean + theorem MeasurableSpace.measurableSet_comap 2024-10-21 07:59:29 797cd91 chore(ConditionalProbability): review argument implicitness (#17910) Make the proof arguments come first and make the measure argument implicit when it can be inferred from the later arguments ESTIMATED CHANGES Modified Archive/Wiedijk100Theorems/BallotProblem.lean Modified Mathlib/Probability/ConditionalProbability.lean +/- theorem ProbabilityTheory.cond_add_cond_compl_eq +/- theorem ProbabilityTheory.cond_apply' +/- theorem ProbabilityTheory.cond_apply +/- theorem ProbabilityTheory.cond_cond_eq_cond_inter +/- theorem ProbabilityTheory.cond_empty +/- theorem ProbabilityTheory.cond_eq_inv_mul_cond_mul +/- theorem ProbabilityTheory.cond_inter_self +/- theorem ProbabilityTheory.cond_mul_eq_inter +/- theorem ProbabilityTheory.cond_pos_of_inter_ne_zero +/- theorem ProbabilityTheory.cond_univ Modified Mathlib/Probability/UniformOn.lean 2024-10-21 06:32:46 a60b09c refactor(SetTheory/Ordinal/Arithmetic): deprecate `blsub₂` (#17679) See the new docstring of `blsub₂` for the reasoning. ESTIMATED CHANGES Modified Mathlib/SetTheory/Ordinal/Arithmetic.lean Modified Mathlib/SetTheory/Ordinal/NaturalOps.lean Modified Mathlib/SetTheory/Ordinal/Principal.lean + theorem Ordinal.not_bddAbove_principal 2024-10-21 06:32:44 f738d22 feat: the multiGoal linter (#12339) A linter that makes sure that, when multiple goals are present, they are enclosed in `·`s. Adaptations (the order is chronological, there should be no dependency among them): * #12338, * #12361, * #12372, * #12560, * #12834, * #12381, * #12908, * #14939, plus many many more that this comment is too small to contain. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Analysis/Analytic/Within.lean Modified Mathlib/Init.lean Modified Mathlib/LinearAlgebra/Eigenspace/Basic.lean Modified Mathlib/Tactic.lean Added Mathlib/Tactic/Linter/Multigoal.lean + def Mathlib.Linter.Style.multiGoal.getManyGoals + def Mathlib.Linter.Style.multiGoal.multiGoalLinter Modified lakefile.lean Added test/Multigoal.lean 2024-10-21 05:53:15 c8f7de8 chore: move batteries back to main; bump (#17991) Batteries was accidentally moved to another branch when #17985 was merged prematurely. ESTIMATED CHANGES Modified lake-manifest.json Modified lakefile.lean 2024-10-21 03:20:56 4d87f69 chore: rename List.modifyNth->modify and insertNth->insertIdx (#17985) This relies on a branch of Batteries, so needs a delegation not a merge. See zulip [discussion](https://leanprover.zulipchat.com/#narrow/channel/348111-batteries/topic/.60List.2EmodifyNth.60/near/477340629). ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Data/List/Basic.lean - theorem List.modifyNthTail_modifyNthTail - theorem List.modifyNthTail_modifyNthTail_le - theorem List.modifyNthTail_modifyNthTail_same - theorem List.modifyNth_eq_set + theorem List.modifyTailIdx_modifyTailIdx + theorem List.modifyTailIdx_modifyTailIdx_le + theorem List.modifyTailIdx_modifyTailIdx_same + theorem List.modify_eq_set Added Mathlib/Data/List/InsertIdx.lean + theorem List.eraseIdx_insertIdx + theorem List.getElem_insertIdx_add_succ + theorem List.getElem_insertIdx_of_lt + theorem List.getElem_insertIdx_self + theorem List.get_insertIdx_add_succ + theorem List.get_insertIdx_of_lt + theorem List.get_insertIdx_self + theorem List.insertIdx_comm + theorem List.insertIdx_eraseIdx_of_ge + theorem List.insertIdx_eraseIdx_of_le + theorem List.insertIdx_injective + theorem List.insertIdx_length_self + theorem List.insertIdx_of_length_lt + theorem List.insertIdx_succ_cons + theorem List.insertIdx_succ_nil + theorem List.insertIdx_zero + theorem List.length_insertIdx + theorem List.length_insertIdx_le_succ + theorem List.length_le_length_insertIdx + theorem List.mem_insertIdx Modified Mathlib/Data/List/InsertNth.lean - theorem List.eraseIdx_insertNth - theorem List.getElem_insertNth_add_succ - theorem List.getElem_insertNth_of_lt - theorem List.getElem_insertNth_self - theorem List.get_insertNth_add_succ - theorem List.get_insertNth_of_lt - theorem List.get_insertNth_self - theorem List.insertNth_comm - theorem List.insertNth_eraseIdx_of_ge - theorem List.insertNth_eraseIdx_of_le - theorem List.insertNth_injective - theorem List.insertNth_length_self - theorem List.insertNth_of_length_lt - theorem List.insertNth_succ_cons - theorem List.insertNth_succ_nil - theorem List.insertNth_zero - theorem List.length_insertNth - theorem List.length_insertNth_le_succ - theorem List.length_le_length_insertNth - theorem List.mem_insertNth Modified Mathlib/Data/List/Lemmas.lean + theorem List.injOn_insertIdx_index_of_not_mem - theorem List.injOn_insertNth_index_of_not_mem Modified Mathlib/Data/List/Permutation.lean Modified Mathlib/Data/Vector/Basic.lean + theorem Mathlib.Vector.eraseIdx_insertIdx' + theorem Mathlib.Vector.eraseIdx_insertIdx - theorem Mathlib.Vector.eraseIdx_insertNth' - theorem Mathlib.Vector.eraseIdx_insertNth + def Mathlib.Vector.insertIdx + theorem Mathlib.Vector.insertIdx_comm + theorem Mathlib.Vector.insertIdx_val - def Mathlib.Vector.insertNth - theorem Mathlib.Vector.insertNth_comm - theorem Mathlib.Vector.insertNth_val Modified Mathlib/SetTheory/Game/PGame.lean Modified Mathlib/Testing/SlimCheck/Gen.lean Modified Mathlib/Testing/SlimCheck/Sampleable.lean Modified Mathlib/Topology/List.lean + theorem List.continuous_insertIdx - theorem List.continuous_insertNth + theorem List.tendsto_insertIdx' + theorem List.tendsto_insertIdx - theorem List.tendsto_insertNth' - theorem List.tendsto_insertNth + theorem Vector.continuous_insertIdx' + theorem Vector.continuous_insertIdx - theorem Vector.continuous_insertNth' - theorem Vector.continuous_insertNth + theorem Vector.tendsto_insertIdx - theorem Vector.tendsto_insertNth Modified lake-manifest.json Modified lakefile.lean Modified scripts/noshake.json Modified test/rewrites.lean 2024-10-21 01:17:41 34309b6 chore(build.in): update version of `gh-get-current-pr` action (#17978) This PR updates the version of the `gh-get-current-pr` action from `v2.2.0` to `3.0.0` to avoid the following deprecation warning: > The following actions use a deprecated Node.js version and will be forced to run on node20: 8BitJonny/gh-get-current-pr@2.2.0. For more info: https://github.blog/changelog/2024-03-07-github-actions-all-actions-will-run-on-node20-instead-of-node16-by-default/ ESTIMATED CHANGES Modified .github/build.in.yml Modified .github/workflows/bors.yml Modified .github/workflows/build.yml Modified .github/workflows/build_fork.yml 2024-10-21 01:17:40 4f5e6c1 feat(Data/Nat/Bitwise): add simp lemmas (#17977) Upstreamed from the [EquationalTheories](https://github.com/teorth/equational_theories) project. ESTIMATED CHANGES Modified Mathlib/Data/Nat/Bitwise.lean + theorem Nat.even_xor + theorem Nat.xor_mod_two_eq 2024-10-21 00:40:39 a9827c1 feat(Data/Set/Basic): add `diff_insert_of_not_mem` (#17973) Upstreamed from the [EquationalTheories](https://github.com/teorth/equational_theories) project. ESTIMATED CHANGES Modified Mathlib/Data/Set/Basic.lean + theorem Set.diff_insert_of_not_mem 2024-10-21 00:31:07 0cfd3c8 chore: more fixes for multigoal linter (#17966) Preparation for #12339. ESTIMATED CHANGES Modified Mathlib/Algebra/Polynomial/SumIteratedDerivative.lean Modified Mathlib/AlgebraicGeometry/Morphisms/RingHomProperties.lean Modified Mathlib/Analysis/SpecificLimits/RCLike.lean Modified Mathlib/Data/Nat/Choose/Factorization.lean Modified Mathlib/NumberTheory/Ostrowski.lean Modified Mathlib/RingTheory/LocalRing/Quotient.lean Modified Mathlib/RingTheory/Smooth/Pi.lean Modified Mathlib/Topology/MetricSpace/HolderNorm.lean 2024-10-20 21:50:58 69bbcb4 chore: move `mul_ite`, add `dite` version, multiplicativise `ite_add_ite` (#17963) ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Defs.lean + theorem dite_div + theorem dite_div_dite + theorem dite_mul + theorem dite_mul_dite + theorem div_dite + theorem div_ite + theorem ite_div + theorem ite_div_ite + theorem ite_mul + theorem ite_mul_ite + theorem mul_dite + theorem mul_ite Modified Mathlib/Algebra/Ring/Defs.lean - theorem ite_add_ite - theorem ite_mul - theorem ite_sub_ite - theorem mul_ite 2024-10-20 21:29:44 1b6c758 feat: `negOnePow n = (-1 : ℤ) ^ n` (#17967) and rename `Int.coe_negOnePow` to `Int.cast_negOnePow` for disambiguation ESTIMATED CHANGES Modified Mathlib/Algebra/Ring/NegOnePow.lean + theorem Int.cast_negOnePow + theorem Int.cast_negOnePow_natCast - theorem Int.coe_negOnePow + theorem Int.coe_negOnePow_natCast Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Basic.lean 2024-10-20 19:54:50 cf0049e feat(CategoryTheory): natural version of `FullyFaithful.homEquiv` (#17450) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Yoneda.lean + def CategoryTheory.Functor.FullyFaithful.homNatIso + def CategoryTheory.Functor.FullyFaithful.homNatIsoMaxRight 2024-10-20 19:39:56 a399646 feat(Analysis/Normed/Field/Ultra): nonarchimedean iff norm of nats le one (#15077) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/Normed/Field/Ultra.lean + theorem IsUltrametricDist.isUltrametricDist_of_forall_norm_add_one_le_max_norm_one + theorem IsUltrametricDist.isUltrametricDist_of_forall_norm_add_one_of_norm_le_one + theorem IsUltrametricDist.isUltrametricDist_of_forall_norm_natCast_le_one + theorem IsUltrametricDist.isUltrametricDist_of_forall_norm_sub_one_of_norm_le_one + theorem IsUltrametricDist.isUltrametricDist_of_forall_pow_norm_le_nsmul_pow_max_one_norm 2024-10-20 18:58:06 15fb824 chore(Topology/Exterior): golf (#17955) Use `exterior_mono` to golf 3 lemmas ESTIMATED CHANGES Modified Mathlib/Topology/Exterior.lean +/- theorem exterior_iInter_subset +/- theorem exterior_inter_subset +/- theorem exterior_sInter_subset 2024-10-20 17:40:31 03a37e0 chore(LinearAlgebra/TensorProduct): fix duplication (#17912) This was unintentionally made in [#16776](https://github.com/leanprover-community/mathlib4/pull/16776) by myself. ESTIMATED CHANGES Modified Mathlib/Algebra/Category/AlgebraCat/Monoidal.lean Modified Mathlib/LinearAlgebra/TensorProduct/Basic.lean - theorem TensorProduct.ext₃ 2024-10-20 16:57:21 8d27fbf feat(CategoryTheory): pull colimits out of hom functors with Yoneda on the LHS (#17440) A technical result on the way towards showing that Ind-objects are closed under filtered colimits. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Limits/Preserves/Yoneda.lean + theorem CategoryTheory.yonedaYonedaColimit_app_inv 2024-10-20 13:29:54 0dedd92 chore: Rename `ClosedEmbedding` to `IsClosedEmbedding` (#17937) `Function.Embedding` is a type while `Embedding` is a proposition, and there are many other kinds of embeddings than topological embeddings. Hence this PR is a step towards 1. renaming `Embedding` to `IsEmbedding` and similarly for neighborhing declarations (which `ClosedEmbedding` is) 2. namespacing it inside `Topology` [Zulip](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/rename.20.60Inducing.60.20and.20.60Embedding.60.3F). See #15993 for context. ESTIMATED CHANGES Modified Mathlib/AlgebraicGeometry/Morphisms/ClosedImmersion.lean - theorem AlgebraicGeometry.IsClosedImmersion.closedEmbedding +/- theorem AlgebraicGeometry.IsClosedImmersion.eq_inf + theorem AlgebraicGeometry.IsClosedImmersion.isClosedEmbedding Modified Mathlib/AlgebraicGeometry/Morphisms/UnderlyingMap.lean Modified Mathlib/AlgebraicGeometry/PrimeSpectrum/Basic.lean - theorem PrimeSpectrum.closedEmbedding_comap_of_surjective + theorem PrimeSpectrum.isClosedEmbedding_comap_of_surjective Modified Mathlib/AlgebraicGeometry/ResidueField.lean Modified Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Instances.lean - theorem closedEmbedding_cfcₙAux + theorem isClosedEmbedding_cfcₙAux Modified Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/NonUnital.lean - theorem cfcₙHom_closedEmbedding + theorem cfcₙHom_isClosedEmbedding - theorem closedEmbedding_cfcₙHom_of_cfcHom + theorem isClosedEmbedding_cfcₙHom_of_cfcHom Modified Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Order.lean Modified Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Restrict.lean - theorem QuasispectrumRestricts.closedEmbedding_nonUnitalStarAlgHom + theorem QuasispectrumRestricts.isClosedEmbedding_nonUnitalStarAlgHom - theorem SpectrumRestricts.closedEmbedding_starAlgHom + theorem SpectrumRestricts.isClosedEmbedding_starAlgHom Modified Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Unique.lean Modified Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Unital.lean - theorem cfcHom_closedEmbedding + theorem cfcHom_isClosedEmbedding Modified Mathlib/Analysis/CStarAlgebra/GelfandDuality.lean Modified Mathlib/Analysis/Calculus/LineDeriv/IntegrationByParts.lean Modified Mathlib/Analysis/Convex/Intrinsic.lean Modified Mathlib/Analysis/Convolution.lean Modified Mathlib/Analysis/FunctionalSpaces/SobolevInequality.lean Modified Mathlib/Analysis/Normed/Algebra/Spectrum.lean Modified Mathlib/Analysis/Normed/Module/Basic.lean Modified Mathlib/Analysis/Normed/Module/FiniteDimension.lean Modified Mathlib/Analysis/Normed/Operator/Compact.lean Modified Mathlib/Analysis/SpecialFunctions/ContinuousFunctionalCalculus/ExpLog.lean Modified Mathlib/Analysis/SpecialFunctions/Log/ENNRealLogExp.lean Modified Mathlib/CategoryTheory/Galois/Topology.lean - theorem CategoryTheory.PreGaloisCategory.autEmbedding_closedEmbedding + theorem CategoryTheory.PreGaloisCategory.autEmbedding_isClosedEmbedding Modified Mathlib/Geometry/Manifold/SmoothManifoldWithCorners.lean + theorem ModelWithCorners.isClosedEmbedding Modified Mathlib/Geometry/Manifold/WhitneyEmbedding.lean Modified Mathlib/LinearAlgebra/Matrix/HermitianFunctionalCalculus.lean - theorem Matrix.IsHermitian.closedEmbedding_cfcAux + theorem Matrix.IsHermitian.isClosedEmbedding_cfcAux Modified Mathlib/MeasureTheory/Constructions/BorelSpace/Basic.lean - theorem ClosedEmbedding.measurable + theorem IsClosedEmbedding.measurable Modified Mathlib/MeasureTheory/Constructions/BorelSpace/ContinuousLinearMap.lean Modified Mathlib/MeasureTheory/Constructions/Polish/EmbeddingReal.lean Modified Mathlib/MeasureTheory/Function/StronglyMeasurable/Basic.lean Modified Mathlib/MeasureTheory/Function/StronglyMeasurable/Lemmas.lean Modified Mathlib/MeasureTheory/Group/Measure.lean Modified Mathlib/MeasureTheory/Integral/Bochner.lean - theorem ClosedEmbedding.integral_map + theorem IsClosedEmbedding.integral_map Modified Mathlib/MeasureTheory/Integral/IntervalIntegral.lean Modified Mathlib/MeasureTheory/Integral/SetIntegral.lean - theorem ClosedEmbedding.setIntegral_map + theorem IsClosedEmbedding.setIntegral_map Modified Mathlib/MeasureTheory/Measure/Lebesgue/Integral.lean Modified Mathlib/NumberTheory/Modular.lean Modified Mathlib/Topology/Algebra/Constructions/DomMulAct.lean - theorem DomMulAct.closedEmbedding_mk - theorem DomMulAct.closedEmbedding_mk_symm + theorem DomMulAct.isClosedEmbedding_mk + theorem DomMulAct.isClosedEmbedding_mk_symm Modified Mathlib/Topology/Algebra/ContinuousMonoidHom.lean - theorem ContinuousMonoidHom.closedEmbedding_toContinuousMap + theorem ContinuousMonoidHom.isClosedEmbedding_toContinuousMap Modified Mathlib/Topology/Algebra/Module/Alternating/Topology.lean - theorem ContinuousAlternatingMap.closedEmbedding_toContinuousMultilinearMap + theorem ContinuousAlternatingMap.isClosedEmbedding_toContinuousMultilinearMap Modified Mathlib/Topology/Algebra/Module/FiniteDimension.lean - theorem LinearMap.closedEmbedding_of_injective + theorem LinearMap.isClosedEmbedding_of_injective - theorem closedEmbedding_smul_left + theorem isClosedEmbedding_smul_left Modified Mathlib/Topology/Algebra/ProperAction/Basic.lean - theorem properSMul_of_closedEmbedding + theorem properSMul_of_isClosedEmbedding Modified Mathlib/Topology/Algebra/StarSubalgebra.lean - theorem StarSubalgebra.closedEmbedding_inclusion + theorem StarSubalgebra.isClosedEmbedding_inclusion - theorem elementalStarAlgebra.closedEmbedding_coe + theorem elementalStarAlgebra.isClosedEmbedding_coe Modified Mathlib/Topology/Category/LightProfinite/Sequence.lean - theorem LightProfinite.closedEmbedding_natUnionInftyEmbedding + theorem LightProfinite.isClosedEmbedding_natUnionInftyEmbedding Modified Mathlib/Topology/Category/Profinite/Nobeling.lean +/- theorem Profinite.Nobeling.embedding Modified Mathlib/Topology/Category/Stonean/Limits.lean Modified Mathlib/Topology/Clopen.lean Modified Mathlib/Topology/Compactness/Compact.lean - theorem ClosedEmbedding.isCompact_preimage - theorem ClosedEmbedding.tendsto_cocompact + theorem IsClosedEmbedding.isCompact_preimage + theorem IsClosedEmbedding.tendsto_cocompact Modified Mathlib/Topology/Compactness/Lindelof.lean - theorem ClosedEmbedding.isLindelof_preimage - theorem ClosedEmbedding.tendsto_coLindelof + theorem IsClosedEmbedding.isLindelof_preimage + theorem IsClosedEmbedding.tendsto_coLindelof Modified Mathlib/Topology/Compactness/LocallyCompact.lean Modified Mathlib/Topology/Compactness/Paracompact.lean - theorem ClosedEmbedding.paracompactSpace + theorem IsClosedEmbedding.paracompactSpace Modified Mathlib/Topology/Compactness/SigmaCompact.lean Modified Mathlib/Topology/Constructions.lean + theorem IsClosed.isClosedEmbedding_subtypeVal + theorem IsClosedEmbedding.subtypeVal - theorem ULift.closedEmbedding_down + theorem ULift.isClosedEmbedding_down - theorem closedEmbedding_inl - theorem closedEmbedding_inr - theorem closedEmbedding_sigmaMk - theorem closedEmbedding_subtype_val + theorem isClosedEmbedding_inl + theorem isClosedEmbedding_inr + theorem isClosedEmbedding_sigmaMk Modified Mathlib/Topology/ContinuousMap/ContinuousMapZero.lean - theorem ContinuousMapZero.closedEmbedding_toContinuousMap + theorem ContinuousMapZero.isClosedEmbedding_toContinuousMap Modified Mathlib/Topology/ContinuousMap/StoneWeierstrass.lean Modified Mathlib/Topology/Defs/Induced.lean - structure ClosedEmbedding + structure IsClosedEmbedding Modified Mathlib/Topology/DiscreteSubset.lean Modified Mathlib/Topology/FiberBundle/Basic.lean - theorem FiberBundle.totalSpaceMk_closedEmbedding + theorem FiberBundle.totalSpaceMk_isClosedEmbedding Modified Mathlib/Topology/Homeomorph.lean + theorem Homeomorph.isClosedEmbedding + theorem IsHomeomorph.isClosedEmbedding Modified Mathlib/Topology/Instances/CantorSet.lean Modified Mathlib/Topology/Instances/EReal.lean - theorem EReal.closedEmbedding_coe_ennreal + theorem EReal.isClosedEmbedding_coe_ennreal Modified Mathlib/Topology/Instances/Int.lean - theorem Int.closedEmbedding_coe_real + theorem Int.isClosedEmbedding_coe_real Modified Mathlib/Topology/Instances/Irrational.lean Modified Mathlib/Topology/Instances/NNReal.lean Modified Mathlib/Topology/Instances/Nat.lean - theorem Nat.closedEmbedding_coe_real + theorem Nat.isClosedEmbedding_coe_real Modified Mathlib/Topology/Instances/Rat.lean - theorem Int.closedEmbedding_coe_rat + theorem Int.isClosedEmbedding_coe_rat - theorem Nat.closedEmbedding_coe_rat + theorem Nat.isClosedEmbedding_coe_rat Modified Mathlib/Topology/Instances/Real.lean Modified Mathlib/Topology/KrullDimension.lean - theorem ClosedEmbedding.topologicalKrullDim_le +/- theorem IrreducibleCloseds.map_strictMono + theorem IsClosedEmbedding.topologicalKrullDim_le Modified Mathlib/Topology/LocalAtTarget.lean - theorem Set.restrictPreimage_closedEmbedding + theorem Set.restrictPreimage_isClosedEmbedding - theorem closedEmbedding_iff_closedEmbedding_of_iSup_eq_top + theorem isClosedEmbedding_iff_isClosedEmbedding_of_iSup_eq_top Modified Mathlib/Topology/Maps/Basic.lean - theorem ClosedEmbedding.closed_iff_image_closed - theorem ClosedEmbedding.closed_iff_preimage_closed - theorem ClosedEmbedding.closure_image_eq - theorem ClosedEmbedding.comp - theorem ClosedEmbedding.continuous - theorem ClosedEmbedding.isClosedMap - theorem ClosedEmbedding.of_comp_iff - theorem ClosedEmbedding.tendsto_nhds_iff + theorem IsClosedEmbedding.closed_iff_image_closed + theorem IsClosedEmbedding.closed_iff_preimage_closed + theorem IsClosedEmbedding.closure_image_eq + theorem IsClosedEmbedding.comp + theorem IsClosedEmbedding.continuous + theorem IsClosedEmbedding.isClosedMap + theorem IsClosedEmbedding.of_comp_iff + theorem IsClosedEmbedding.of_continuous_injective_isClosedMap + theorem IsClosedEmbedding.of_embedding_closed + theorem IsClosedEmbedding.tendsto_nhds_iff - theorem closedEmbedding_id - theorem closedEmbedding_of_continuous_injective_closed - theorem closedEmbedding_of_embedding_closed + theorem isClosedEmbedding_id Modified Mathlib/Topology/Maps/Proper/Basic.lean + theorem IsClosed.isProperMap_subtypeVal + theorem IsClosedEmbedding.isProperMap + theorem IsProperMap.restrict - theorem isProperMap_of_closedEmbedding - theorem isProperMap_restr_of_proper_of_closed - theorem isProperMap_subtype_val_of_closed Modified Mathlib/Topology/MetricSpace/Antilipschitz.lean - theorem AntilipschitzWith.closedEmbedding + theorem AntilipschitzWith.isClosedEmbedding Modified Mathlib/Topology/MetricSpace/Basic.lean - theorem Metric.closedEmbedding_of_pairwise_le_dist + theorem Metric.isClosedEmbedding_of_pairwise_le_dist Modified Mathlib/Topology/MetricSpace/Dilation.lean + theorem Dilation.isClosedEmbedding Modified Mathlib/Topology/MetricSpace/Isometry.lean - theorem Isometry.closedEmbedding + theorem Isometry.isClosedEmbedding Modified Mathlib/Topology/MetricSpace/Polish.lean - theorem ClosedEmbedding.polishSpace + theorem IsClosedEmbedding.polishSpace Modified Mathlib/Topology/SeparatedMap.lean - theorem isSeparatedMap_iff_closedEmbedding + theorem isSeparatedMap_iff_isClosedEmbedding Modified Mathlib/Topology/Separation.lean - theorem Continuous.closedEmbedding + theorem Continuous.isClosedEmbedding - theorem Function.LeftInverse.closedEmbedding + theorem Function.LeftInverse.isClosedEmbedding - theorem closedEmbedding_update + theorem isClosedEmbedding_update Modified Mathlib/Topology/Sober.lean - theorem ClosedEmbedding.quasiSober + theorem IsClosedEmbedding.quasiSober Modified Mathlib/Topology/Support.lean - theorem HasCompactMulSupport.comp_closedEmbedding + theorem HasCompactMulSupport.comp_isClosedEmbedding Modified Mathlib/Topology/TietzeExtension.lean - theorem BoundedContinuousFunction.exists_extension_forall_exists_le_ge_of_closedEmbedding + theorem BoundedContinuousFunction.exists_extension_forall_exists_le_ge_of_isClosedEmbedding - theorem BoundedContinuousFunction.exists_extension_forall_mem_Icc_of_closedEmbedding + theorem BoundedContinuousFunction.exists_extension_forall_mem_Icc_of_isClosedEmbedding - theorem BoundedContinuousFunction.exists_extension_forall_mem_of_closedEmbedding + theorem BoundedContinuousFunction.exists_extension_forall_mem_of_isClosedEmbedding - theorem BoundedContinuousFunction.exists_extension_norm_eq_of_closedEmbedding' - theorem BoundedContinuousFunction.exists_extension_norm_eq_of_closedEmbedding + theorem BoundedContinuousFunction.exists_extension_norm_eq_of_isClosedEmbedding' + theorem BoundedContinuousFunction.exists_extension_norm_eq_of_isClosedEmbedding +/- theorem BoundedContinuousFunction.tietze_extension_step +/- theorem ContinuousMap.exists_extension' +/- theorem ContinuousMap.exists_extension +/- theorem ContinuousMap.exists_extension_forall_mem - theorem ContinuousMap.exists_extension_forall_mem_of_closedEmbedding + theorem ContinuousMap.exists_extension_forall_mem_of_isClosedEmbedding Modified Mathlib/Topology/UniformSpace/Ascoli.lean - theorem ArzelaAscoli.compactSpace_of_closedEmbedding + theorem ArzelaAscoli.compactSpace_of_isClosedEmbedding - theorem ArzelaAscoli.isCompact_closure_of_closedEmbedding + theorem ArzelaAscoli.isCompact_closure_of_isClosedEmbedding Modified Mathlib/Topology/UniformSpace/CompleteSeparated.lean - theorem IsUniformEmbedding.toClosedEmbedding + theorem IsUniformEmbedding.toIsClosedEmbedding Modified Mathlib/Topology/UniformSpace/UniformEmbedding.lean - theorem closedEmbedding_of_spaced_out + theorem isClosedEmbedding_of_spaced_out 2024-10-20 13:19:35 e7b15d2 feat(Analysis/Complex/Positivity): new file (#17862) This adds results of the kind "if `f` is an entire function with all iterated derivatives at a point `c` nonnegative real, then `f z` is nonnegative real for `z = c + r` with `r` nonnegative real". From [EulerProducts](https://github.com/MichaelStollBayreuth/EulerProducts). This will be needed for the proof that $L(\chi, 1) \ne 0$ for nontrivial quadratic Dirichlet characters $\chi$ (which in turn is necessary for Dirichlet's Theorem on primes in arithmetic progressions; see [PNT+](https://github.com/AlexKontorovich/PrimeNumberTheoremAnd)). ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Analysis/Calculus/IteratedDeriv/Lemmas.lean + theorem Filter.EventuallyEq.iteratedDeriv_eq + theorem Set.EqOn.iteratedDeriv_of_isOpen + theorem iteratedDeriv_comp_add_const + theorem iteratedDeriv_comp_const_add Added Mathlib/Analysis/Complex/Positivity.lean + theorem Differentiable.apply_le_of_iteratedDeriv_alternating + theorem Differentiable.apply_le_of_iteratedDeriv_nonneg + theorem Differentiable.nonneg_of_iteratedDeriv_nonneg + theorem DifferentiableOn.nonneg_of_iteratedDeriv_nonneg 2024-10-20 13:19:34 6cd5a56 feat: induction principles for ContinuousMap via Stone-Weierstrass (#17831) This PR provides induction lemmas for `C(s, 𝕜)` and `C(s, 𝕜)₀` with `RCLike 𝕜`. The idea is that when `s` is compact, the `closure` hypothesis will follow from the Stone-Weierstrass theorem and a limit property of the motive `p`. ESTIMATED CHANGES Modified Mathlib/Topology/ContinuousMap/StoneWeierstrass.lean + theorem ContinuousMap.induction_on + theorem ContinuousMap.induction_on_of_compact + theorem ContinuousMapZero.induction_on + theorem ContinuousMapZero.induction_on_of_compact 2024-10-20 12:53:16 d172902 chore(Algebra/Order/BigOperators/Group/Finset): don't import `Ring` (#17939) By moving the positivity extension, one can shave off a bunch of imports ESTIMATED CHANGES Modified Mathlib/Algebra/BigOperators/Finprod.lean Modified Mathlib/Algebra/Order/Antidiag/Finsupp.lean Modified Mathlib/Algebra/Order/BigOperators/Group/Finset.lean - def Mathlib.Meta.Positivity.evalFinsetSum Modified Mathlib/Algebra/Order/Chebyshev.lean Modified Mathlib/Algebra/Order/Interval/Basic.lean Modified Mathlib/Analysis/Analytic/Inverse.lean Modified Mathlib/Analysis/Complex/AbelLimit.lean Modified Mathlib/Combinatorics/Enumerative/Composition.lean Modified Mathlib/Combinatorics/Enumerative/DoubleCounting.lean Modified Mathlib/Combinatorics/Pigeonhole.lean Modified Mathlib/Combinatorics/SetFamily/AhlswedeZhang.lean Modified Mathlib/Combinatorics/SetFamily/FourFunctions.lean Modified Mathlib/Combinatorics/SimpleGraph/Regularity/Energy.lean Modified Mathlib/Data/Finsupp/Weight.lean Modified Mathlib/Data/Nat/Choose/Sum.lean Modified Mathlib/Data/Set/Equitable.lean Modified Mathlib/Data/Sign.lean Modified Mathlib/LinearAlgebra/Matrix/DotProduct.lean Modified Mathlib/LinearAlgebra/Multilinear/Basic.lean Modified Mathlib/NumberTheory/Divisors.lean Modified Mathlib/NumberTheory/Harmonic/Defs.lean Modified Mathlib/Order/Partition/Equipartition.lean Modified Mathlib/Tactic/Positivity/Finset.lean + def Mathlib.Meta.Positivity.evalFinsetSum Modified Mathlib/Testing/SlimCheck/Functions.lean Modified Mathlib/Topology/Algebra/GroupWithZero.lean Modified Mathlib/Topology/Algebra/WithZeroTopology.lean Modified scripts/noshake.json Modified test/positivity.lean 2024-10-20 12:27:18 6a88b54 chore: move binary recursion on `Nat` into a new file (#15567) This is #13649 with fewer definition changes. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Data/Nat/BinaryRec.lean + def Nat.binaryRec' + def Nat.binaryRec + def Nat.binaryRecFromOne + theorem Nat.binaryRec_eq' + theorem Nat.binaryRec_eq + theorem Nat.binaryRec_one + theorem Nat.binaryRec_zero + def Nat.bit + def Nat.bitCasesOn + theorem Nat.bitCasesOn_bit + theorem Nat.bit_decide_mod_two_eq_one_shiftRight_one + theorem Nat.bit_div_two + theorem Nat.bit_eq_zero_iff + theorem Nat.bit_mod_two + theorem Nat.bit_shiftRight_one + theorem Nat.bit_testBit_zero_shiftRight_one + theorem Nat.bit_val + theorem Nat.shiftRight_one + theorem Nat.testBit_bit_zero Modified Mathlib/Data/Nat/Bits.lean - def Nat.binaryRec' - def Nat.binaryRec - def Nat.binaryRecFromOne - theorem Nat.binaryRec_eq' - theorem Nat.binaryRec_eq - theorem Nat.binaryRec_one - theorem Nat.binaryRec_zero - def Nat.bit - def Nat.bitCasesOn - theorem Nat.bitCasesOn_bit - theorem Nat.bit_decide_mod_two_eq_one_shiftRight_one - theorem Nat.bit_div_two - theorem Nat.bit_eq_zero_iff - theorem Nat.bit_shiftRight_one - theorem Nat.bit_testBit_zero_shiftRight_one - theorem Nat.bit_val - theorem Nat.shiftRight_one - theorem Nat.testBit_bit_zero Modified Mathlib/Data/Nat/Bitwise.lean - theorem Nat.bit_mod_two Modified Mathlib/Data/Nat/EvenOddRec.lean Modified Mathlib/Data/Nat/Fib/Basic.lean Modified Mathlib/Data/Num/Basic.lean Modified Mathlib/Data/Tree/Get.lean Modified scripts/noshake.json 2024-10-20 11:19:44 1ae9a84 feat(AlgebraicGeometry): affine morphisms are separated (#17962) ESTIMATED CHANGES Modified Mathlib/AlgebraicGeometry/Morphisms/ClosedImmersion.lean + theorem AlgebraicGeometry.isIso_of_isClosedImmersion_of_surjective Modified Mathlib/AlgebraicGeometry/Morphisms/Separated.lean Modified Mathlib/AlgebraicGeometry/Pullbacks.lean + theorem AlgebraicGeometry.diagonal_Spec_map 2024-10-20 10:03:18 a555db7 chore(Filter): move more defs to `Defs` (#17949) ESTIMATED CHANGES Modified Mathlib/Order/Filter/Defs.lean Modified Mathlib/Order/Filter/Lift.lean 2024-10-20 07:37:59 2f60fa6 feat(Kernel): `map (κ ×ₖ η) Prod.swap = η ×ₖ κ` (#17920) and similar lemmas. From PFR ESTIMATED CHANGES Modified Mathlib/Probability/Kernel/Composition.lean + theorem ProbabilityTheory.Kernel.comap_prod_swap +/- theorem ProbabilityTheory.Kernel.compProd_apply + theorem ProbabilityTheory.Kernel.compProd_deterministic_apply + theorem ProbabilityTheory.Kernel.compProd_preimage_fst + theorem ProbabilityTheory.Kernel.map_prod_swap Modified Mathlib/Probability/Kernel/Disintegration/Basic.lean Modified Mathlib/Probability/Kernel/Disintegration/CDFToKernel.lean Modified Mathlib/Probability/Kernel/Disintegration/Integral.lean Modified Mathlib/Probability/Kernel/Disintegration/StandardBorel.lean Modified Mathlib/Probability/Kernel/Disintegration/Unique.lean Modified Mathlib/Probability/Kernel/IntegralCompProd.lean Modified Mathlib/Probability/Kernel/MeasureCompProd.lean 2024-10-20 07:05:32 17ca754 chore: avoid some `(0 < ((↑) : ℝ≥0 → ℝ) x) = (0 < x)` defeq abuses (#17946) ESTIMATED CHANGES Modified Mathlib/Analysis/FunctionalSpaces/SobolevInequality.lean Modified Mathlib/Analysis/SpecialFunctions/Pow/NNReal.lean Modified Mathlib/MeasureTheory/Function/LpSeminorm/Basic.lean 2024-10-20 00:15:00 7ca6dfc chore(scripts): update nolints.json (#17958) I am happy to remove some nolints for you! ESTIMATED CHANGES Modified scripts/nolints.json 2024-10-19 22:21:59 e0dccaa chore(FieldTheory/Galois): Move infinite Galois (#17945) Split the original file `FieldTheory.Galois.Infinite` into `GaloisClosure` and `Profinite`, for spliting the basic constructions, profinite (stated categorically), and the fundamental theorem completely. Moves: - Mathlib.FieldTheory.Galois.Infinite -> Mathlib.FieldTheory.Galois.GaloisClosure - Mathlib.FieldTheory.Galois.Infinite -> Mathlib.FieldTheory.Galois.Profinite ESTIMATED CHANGES Modified Mathlib.lean Renamed Mathlib/FieldTheory/Galois/Infinite.lean to Mathlib/FieldTheory/Galois/GaloisClosure.lean - def FiniteGaloisIntermediateField.finGaloisGroup - theorem finGaloisGroupMap.map_comp - theorem finGaloisGroupMap.map_id Added Mathlib/FieldTheory/Galois/Profinite.lean + def FiniteGaloisIntermediateField.finGaloisGroup + theorem finGaloisGroupMap.map_comp + theorem finGaloisGroupMap.map_id 2024-10-19 21:53:49 e9f0a88 feat(Normed/Group): add `nndist_one_right` etc (#17954) Add - `nndist_one_right`, `nndist_zero_right`, `nndist_one_left`, `nndist_zero_left`; - `edist_one_right`, `edist_zero_right`, `edist_one_left`, `edist_zero_left`. ESTIMATED CHANGES Modified Mathlib/Analysis/Normed/Group/Basic.lean + theorem edist_one_left + theorem edist_one_right + theorem nndist_one_left + theorem nndist_one_right Modified Mathlib/MeasureTheory/Function/L1Space.lean 2024-10-19 21:32:09 227950d feat: topology on module over topological ring (#16895) Given a module over a topological ring, we define the module topology on this module to be the finest module making it into a topological module (i.e. the finest topology making addition and scalar multiplication continuous). NB this PR gave rise to a discussion about whether `⨆ a ∈ s, f a` or `sSup (f '' s)` should be the simp normal form, which was discussed on [Zulip](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/normal.20form.20for.20pullback.20of.20Inf.20of.20topologies/near/472676441) without any clear conclusion. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Topology/Algebra/Module/Basic.lean + def MulOpposite.opContinuousLinearEquiv Added Mathlib/Topology/Algebra/Module/ModuleTopology.lean + theorem IsModuleTopology.iso + theorem IsModuleTopology.of_continuous_id + theorem IsModuleTopology.toContinuousAdd + theorem ModuleTopology.continuousAdd + theorem ModuleTopology.continuousSMul + theorem eq_moduleTopology + theorem moduleTopology_le Modified Mathlib/Topology/Order.lean + theorem coinduced_sSup + theorem induced_sInf 2024-10-19 19:57:03 fee48cc feat(AlgebraicGeometry/ResidueField): classification of `Spec K ⟶ X` with `K` a field (#17768) This PR adds more API for residue fields and in particular the classification of morphisms `Spec K ⟶ X` with `K` a field. From the valuative criterion project. ESTIMATED CHANGES Modified Mathlib/AlgebraicGeometry/Morphisms/ClosedImmersion.lean Modified Mathlib/AlgebraicGeometry/Morphisms/Preimmersion.lean + theorem AlgebraicGeometry.IsPreimmersion.Spec_map_iff + theorem AlgebraicGeometry.IsPreimmersion.mk_Spec_map + theorem AlgebraicGeometry.IsPreimmersion.of_isLocalization Modified Mathlib/AlgebraicGeometry/ResidueField.lean + theorem AlgebraicGeometry.Scheme.Hom.Spec_map_residueFieldMap_fromSpecResidueField + theorem AlgebraicGeometry.Scheme.Hom.residueFieldMap_congr + def AlgebraicGeometry.Scheme.SpecToEquivOfField + theorem AlgebraicGeometry.Scheme.SpecToEquivOfField_eq_iff + theorem AlgebraicGeometry.Scheme.Spec_map_residue_apply + def AlgebraicGeometry.Scheme.descResidueField + theorem AlgebraicGeometry.Scheme.descResidueField_fromSpecResidueField + theorem AlgebraicGeometry.Scheme.descResidueField_stalkClosedPointTo_fromSpecResidueField + theorem AlgebraicGeometry.Scheme.fromSpecResidueField_apply + theorem AlgebraicGeometry.Scheme.range_fromSpecResidueField + theorem AlgebraicGeometry.Scheme.residue_descResidueField Modified Mathlib/AlgebraicGeometry/Stalk.lean 2024-10-19 19:27:05 721c01e chore(Data/Nat/{Bit, Bitwise}): make `Nat.bit_mod_two` `Nat.bit_eq_zero_iff` be `simp` (#17924) Also deprecate `Nat.bit_eq_zero`. It is identical to `Nat.bit_eq_zero_iff`. ESTIMATED CHANGES Modified Mathlib/Data/Nat/Bits.lean Modified Mathlib/Data/Nat/Bitwise.lean - theorem Nat.bit_eq_zero Modified Mathlib/Data/Nat/Multiplicity.lean 2024-10-19 19:20:12 19e2abf feat (AlgebraicGeometry/Modules): stalks of the sheaf `M^~` (#14247) Construct the isomorphism of $R$-modules from the stalk of the sheaf $M^{\~}$ on $Spec(R)$ to the localization $M_x$ as an $R$-module, where $R$ is a commutative ring and $M$ is an $R$-module. ## Main definition * `ModuleCat.tilde.stalkIso`: The isomorphism of `R`-modules from the stalk of `M^~` at `x` to the localization of `M` at the prime ideal corresponding to `x`. ## Technical note To get the `R`-module structure on the stalks on `M^~`, we had to define `ModuleCat.tildeInModuleCat`, which is `M^~` seen as sheaf of `R`-modules. We get it by applying a forgetful functor to `ModuleCat.tilde M`. This contribution was created as part of the AIM workshop "Formalizing algebraic geometry" in June 2024. ESTIMATED CHANGES Modified Mathlib/AlgebraicGeometry/Modules/Tilde.lean + def ModuleCat.Tilde.const + theorem ModuleCat.Tilde.const_apply + theorem ModuleCat.Tilde.exists_const + theorem ModuleCat.Tilde.germ_comp_stalkToFiberLinearMap + theorem ModuleCat.Tilde.localizationToStalk_mk + def ModuleCat.Tilde.openToLocalization + theorem ModuleCat.Tilde.res_const + theorem ModuleCat.Tilde.stalkToFiberLinearMap_germ + theorem ModuleCat.Tilde.stalkToFiberLinearMap_toStalk + theorem ModuleCat.Tilde.toOpen_germ + theorem ModuleCat.Tilde.toStalk_comp_stalkToFiberLinearMap 2024-10-19 19:08:11 37de4d7 feat(CategoryTheory/KanExtensions): Evaluating `lan` twice amounts to taking a colimit (#17531) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Functor/KanExtension/Adjunction.lean + theorem CategoryTheory.Functor.ranObjObjIsoLimit_hom_π + theorem CategoryTheory.Functor.ranObjObjIsoLimit_inv_π + theorem CategoryTheory.Functor.ι_lanObjObjIsoColimit_hom + theorem CategoryTheory.Functor.ι_lanObjObjIsoColimit_inv Modified Mathlib/CategoryTheory/Functor/KanExtension/Pointwise.lean + theorem CategoryTheory.Functor.LeftExtension.IsPointwiseLeftKanExtensionAt.ι_isoColimit_hom + theorem CategoryTheory.Functor.LeftExtension.IsPointwiseLeftKanExtensionAt.ι_isoColimit_inv + theorem CategoryTheory.Functor.RightExtension.IsPointwiseRightKanExtensionAt.isoLimit_hom_π + theorem CategoryTheory.Functor.RightExtension.IsPointwiseRightKanExtensionAt.isoLimit_inv_π 2024-10-19 18:37:47 2c5ee0d feat(RingTheory/Ideal/Over): define a class for an ideal lying over an ideal (#17415) Define `class` of an ideal lies over an ideal. ESTIMATED CHANGES Modified Mathlib/RingTheory/FiniteType.lean Modified Mathlib/RingTheory/Ideal/Maps.lean + theorem Ideal.NoZeroSMulDivisors.iff_ker_algebraMap_eq_bot + theorem Ideal.NoZeroSMulDivisors.ker_algebraMap_eq_bot + theorem Ideal.NoZeroSMulDivisors.of_ker_algebraMap_eq_bot Modified Mathlib/RingTheory/Ideal/Over.lean + theorem Ideal.IsMaximal.of_isMaximal_liesOver + theorem Ideal.IsMaximal.of_liesOver_isMaximal + theorem Ideal.LiesOver.tower_bot + theorem Ideal.LiesOver.trans + theorem Ideal.Quotient.algebraMap_injective_of_liesOver + theorem Ideal.mem_of_liesOver + theorem Ideal.over_def + theorem Ideal.under_def + theorem Ideal.under_under Modified Mathlib/RingTheory/IntegralClosure/IsIntegralClosure/Basic.lean + theorem Algebra.IsIntegral.tower_bot + theorem Algebra.IsIntegral.tower_top Modified Mathlib/RingTheory/Noetherian.lean 2024-10-19 16:03:52 e06fe3e chore: do not use `· ≈ ·` in `Quotient.mk_out` (#17940) ESTIMATED CHANGES Modified Mathlib/Data/Quot.lean +/- theorem Quotient.mk_out 2024-10-19 16:03:51 64ac27e chore(Order/Bounds/Basic): Split long file into two shorter files (#16539) This PR transfers some of the content from `Order/Bounds/Basic` into a new file, `Order/Bounds/Image`. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Order/Bounds/Basic.lean - theorem Antitone.image_lowerBounds_subset_upperBounds_image - theorem Antitone.image_upperBounds_subset_lowerBounds_image - theorem Antitone.map_bddAbove - theorem Antitone.map_bddBelow - theorem Antitone.map_isGreatest - theorem Antitone.map_isLeast - theorem Antitone.mem_lowerBounds_image - theorem Antitone.mem_upperBounds_image - theorem AntitoneOn.image_lowerBounds_subset_upperBounds_image - theorem AntitoneOn.image_upperBounds_subset_lowerBounds_image - theorem AntitoneOn.map_bddAbove - theorem AntitoneOn.map_bddBelow - theorem AntitoneOn.map_isGreatest - theorem AntitoneOn.map_isLeast - theorem AntitoneOn.mem_lowerBounds_image - theorem AntitoneOn.mem_lowerBounds_image_self - theorem AntitoneOn.mem_upperBounds_image - theorem AntitoneOn.mem_upperBounds_image_self - theorem BddAbove.bddAbove_image2_of_bddBelow - theorem BddAbove.bddBelow_image2_of_bddAbove - theorem BddAbove.image2_bddBelow - theorem BddAbove.range_comp - theorem BddAbove.range_mono - theorem BddBelow.bddAbove_image2_of_bddAbove - theorem BddBelow.bddBelow_image2_of_bddAbove - theorem BddBelow.image2_bddAbove - theorem BddBelow.range_comp - theorem BddBelow.range_mono - theorem IsGLB.of_image - theorem IsGreatest.isGreatest_image2_of_isLeast - theorem IsGreatest.isLeast_image2 - theorem IsGreatest.isLeast_image2_of_isLeast - theorem IsLUB.of_image - theorem IsLeast.isGreatest_image2 - theorem IsLeast.isGreatest_image2_of_isGreatest - theorem IsLeast.isLeast_image2_of_isGreatest - theorem Monotone.image_lowerBounds_subset_lowerBounds_image - theorem Monotone.image_upperBounds_subset_upperBounds_image - theorem Monotone.map_bddAbove - theorem Monotone.map_bddBelow - theorem Monotone.map_isGreatest - theorem Monotone.map_isLeast - theorem Monotone.mem_lowerBounds_image - theorem Monotone.mem_upperBounds_image - theorem MonotoneOn.image_lowerBounds_subset_lowerBounds_image - theorem MonotoneOn.image_upperBounds_subset_upperBounds_image - theorem MonotoneOn.map_bddAbove - theorem MonotoneOn.map_bddBelow - theorem MonotoneOn.map_isGreatest - theorem MonotoneOn.map_isLeast - theorem MonotoneOn.mem_lowerBounds_image - theorem MonotoneOn.mem_lowerBounds_image_self - theorem MonotoneOn.mem_upperBounds_image - theorem MonotoneOn.mem_upperBounds_image_self - theorem bddAbove_pi - theorem bddAbove_prod - theorem bddAbove_range_pi - theorem bddAbove_range_prod - theorem bddBelow_pi - theorem bddBelow_prod - theorem bddBelow_range_pi - theorem bddBelow_range_prod - theorem image2_lowerBounds_lowerBounds_subset - theorem image2_lowerBounds_lowerBounds_subset_lowerBounds_image2 - theorem image2_lowerBounds_upperBounds_subset_lowerBounds_image2 - theorem image2_lowerBounds_upperBounds_subset_upperBounds_image2 - theorem image2_upperBounds_lowerBounds_subset_lowerBounds_image2 - theorem image2_upperBounds_lowerBounds_subset_upperBounds_image2 - theorem image2_upperBounds_upperBounds_subset - theorem image2_upperBounds_upperBounds_subset_upperBounds_image2 - theorem isGLB_pi - theorem isGLB_prod - theorem isLUB_pi - theorem isLUB_prod - theorem mem_lowerBounds_image2 - theorem mem_lowerBounds_image2_of_mem_lowerBounds_of_mem_lowerBounds - theorem mem_lowerBounds_image2_of_mem_lowerBounds_of_mem_upperBounds - theorem mem_lowerBounds_image2_of_mem_upperBounds - theorem mem_upperBounds_image2 - theorem mem_upperBounds_image2_of_mem_lowerBounds - theorem mem_upperBounds_image2_of_mem_upperBounds_of_mem_lowerBounds - theorem mem_upperBounds_image2_of_mem_upperBounds_of_mem_upperBounds Added Mathlib/Order/Bounds/Image.lean + theorem Antitone.image_lowerBounds_subset_upperBounds_image + theorem Antitone.image_upperBounds_subset_lowerBounds_image + theorem Antitone.map_bddAbove + theorem Antitone.map_bddBelow + theorem Antitone.map_isGreatest + theorem Antitone.map_isLeast + theorem Antitone.mem_lowerBounds_image + theorem Antitone.mem_upperBounds_image + theorem AntitoneOn.image_lowerBounds_subset_upperBounds_image + theorem AntitoneOn.image_upperBounds_subset_lowerBounds_image + theorem AntitoneOn.map_bddAbove + theorem AntitoneOn.map_bddBelow + theorem AntitoneOn.map_isGreatest + theorem AntitoneOn.map_isLeast + theorem AntitoneOn.mem_lowerBounds_image + theorem AntitoneOn.mem_lowerBounds_image_self + theorem AntitoneOn.mem_upperBounds_image + theorem AntitoneOn.mem_upperBounds_image_self + theorem BddAbove.bddAbove_image2_of_bddBelow + theorem BddAbove.bddBelow_image2_of_bddAbove + theorem BddAbove.image2_bddBelow + theorem BddAbove.range_comp + theorem BddAbove.range_mono + theorem BddBelow.bddAbove_image2_of_bddAbove + theorem BddBelow.bddBelow_image2_of_bddAbove + theorem BddBelow.image2_bddAbove + theorem BddBelow.range_comp + theorem BddBelow.range_mono + theorem IsGLB.of_image + theorem IsGreatest.isGreatest_image2_of_isLeast + theorem IsGreatest.isLeast_image2 + theorem IsGreatest.isLeast_image2_of_isLeast + theorem IsLUB.of_image + theorem IsLeast.isGreatest_image2 + theorem IsLeast.isGreatest_image2_of_isGreatest + theorem IsLeast.isLeast_image2_of_isGreatest + theorem Monotone.image_lowerBounds_subset_lowerBounds_image + theorem Monotone.image_upperBounds_subset_upperBounds_image + theorem Monotone.map_bddAbove + theorem Monotone.map_bddBelow + theorem Monotone.map_isGreatest + theorem Monotone.map_isLeast + theorem Monotone.mem_lowerBounds_image + theorem Monotone.mem_upperBounds_image + theorem MonotoneOn.image_lowerBounds_subset_lowerBounds_image + theorem MonotoneOn.image_upperBounds_subset_upperBounds_image + theorem MonotoneOn.map_bddAbove + theorem MonotoneOn.map_bddBelow + theorem MonotoneOn.map_isGreatest + theorem MonotoneOn.map_isLeast + theorem MonotoneOn.mem_lowerBounds_image + theorem MonotoneOn.mem_lowerBounds_image_self + theorem MonotoneOn.mem_upperBounds_image + theorem MonotoneOn.mem_upperBounds_image_self + theorem bddAbove_pi + theorem bddAbove_prod + theorem bddAbove_range_pi + theorem bddAbove_range_prod + theorem bddBelow_pi + theorem bddBelow_prod + theorem bddBelow_range_pi + theorem bddBelow_range_prod + theorem image2_lowerBounds_lowerBounds_subset + theorem image2_lowerBounds_lowerBounds_subset_lowerBounds_image2 + theorem image2_lowerBounds_upperBounds_subset_lowerBounds_image2 + theorem image2_lowerBounds_upperBounds_subset_upperBounds_image2 + theorem image2_upperBounds_lowerBounds_subset_lowerBounds_image2 + theorem image2_upperBounds_lowerBounds_subset_upperBounds_image2 + theorem image2_upperBounds_upperBounds_subset + theorem image2_upperBounds_upperBounds_subset_upperBounds_image2 + theorem isGLB_pi + theorem isGLB_prod + theorem isLUB_pi + theorem isLUB_prod + theorem mem_lowerBounds_image2 + theorem mem_lowerBounds_image2_of_mem_lowerBounds_of_mem_lowerBounds + theorem mem_lowerBounds_image2_of_mem_lowerBounds_of_mem_upperBounds + theorem mem_lowerBounds_image2_of_mem_upperBounds + theorem mem_upperBounds_image2 + theorem mem_upperBounds_image2_of_mem_lowerBounds + theorem mem_upperBounds_image2_of_mem_upperBounds_of_mem_lowerBounds + theorem mem_upperBounds_image2_of_mem_upperBounds_of_mem_upperBounds Modified Mathlib/Order/Bounds/OrderIso.lean Modified Mathlib/Order/CompleteLattice.lean Modified Mathlib/Order/GaloisConnection.lean 2024-10-19 15:25:40 c8922d3 chore: make `Quotient.mk''` an abbrev of `Quotient.mk _` (#16264) The plan is to deprecate `Quotient.mk''` in future PRs. ESTIMATED CHANGES Modified Mathlib/Algebra/BigOperators/Group/Finset.lean +/- theorem Finset.prod_cancels_of_partition_cancels Modified Mathlib/Algebra/CharZero/Quotient.lean Modified Mathlib/Data/List/Cycle.lean Modified Mathlib/Data/Multiset/Basic.lean Modified Mathlib/Data/Quot.lean Modified Mathlib/Data/Set/Image.lean +/- theorem Set.Quotient.range_mk'' Modified Mathlib/GroupTheory/Coset/Basic.lean Modified Mathlib/GroupTheory/GroupAction/Quotient.lean Modified Mathlib/GroupTheory/PGroup.lean 2024-10-19 14:07:56 0d932ab feat: define rooted trees (#16272) This is preparation for proving Kruskal's tree theorem. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Order/SuccPred/Tree.lean + def IsPredArchimedean.findAtom + theorem IsPredArchimedean.findAtom_bot + theorem IsPredArchimedean.findAtom_eq_bot + theorem IsPredArchimedean.findAtom_le + theorem IsPredArchimedean.findAtom_ne_bot + theorem IsPredArchimedean.isAtom_findAtom + theorem IsPredArchimedean.isAtom_findAtom_iff + theorem IsPredArchimedean.pred_findAtom + theorem RootedTree.mem_subtreeOf + theorem RootedTree.mem_subtrees_disjoint_iff + theorem RootedTree.root_subtree + def RootedTree.subtree + def RootedTree.subtreeOf + theorem RootedTree.subtreeOf_mem_subtrees + theorem RootedTree.subtree_root + def RootedTree.subtrees + theorem RootedTree.subtrees_disjoint + structure RootedTree + theorem SubRootedTree.bot_mem_iff + theorem SubRootedTree.ext + theorem SubRootedTree.mem_iff + def SubRootedTree.root + theorem SubRootedTree.root_ne_bot_of_mem_subtrees + def SubRootedTree 2024-10-19 13:51:18 92412db feat(FiberedCategory/Fiber): define the fibers of a functor (#13603) We define the fibers of a functor `p : 𝒳 ⥤ 𝒮` over objects `S : 𝒮`, and develop some basic API. Relatively little API is developed as in an upcoming PR we introduce a class `HasFibers` which should be preferred. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/FiberedCategory/Fiber.lean + def CategoryTheory.Functor.Fiber.fiberInclusion + def CategoryTheory.Functor.Fiber.fiberInclusionCompIsoConst + theorem CategoryTheory.Functor.Fiber.fiberInclusion_comp_eq_const + theorem CategoryTheory.Functor.Fiber.fiberInclusion_homMk + theorem CategoryTheory.Functor.Fiber.fiberInclusion_mk + def CategoryTheory.Functor.Fiber.homMk + theorem CategoryTheory.Functor.Fiber.homMk_comp + theorem CategoryTheory.Functor.Fiber.homMk_id + theorem CategoryTheory.Functor.Fiber.hom_ext + def CategoryTheory.Functor.Fiber.inducedFunctor + def CategoryTheory.Functor.Fiber.inducedFunctorCompIsoSelf + theorem CategoryTheory.Functor.Fiber.inducedFunctor_comp + theorem CategoryTheory.Functor.Fiber.inducedFunctor_map + def CategoryTheory.Functor.Fiber.mk + def CategoryTheory.Functor.Fiber Modified Mathlib/CategoryTheory/FiberedCategory/HomLift.lean + theorem CategoryTheory.IsHomLift.of_commsq 2024-10-19 13:30:30 2b96a2f feat(CategoryTheory/Bicategory): Grothendieck construction for a pseudofunctor (#15419) In this PR we add the Grothendieck construction for pseudofunctors. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Bicategory/Grothendieck.lean + theorem CategoryTheory.Pseudofunctor.Grothendieck.Hom.congr + theorem CategoryTheory.Pseudofunctor.Grothendieck.Hom.ext + theorem CategoryTheory.Pseudofunctor.Grothendieck.Hom.ext_iff + structure CategoryTheory.Pseudofunctor.Grothendieck.Hom + def CategoryTheory.Pseudofunctor.Grothendieck.forget + structure CategoryTheory.Pseudofunctor.Grothendieck Modified docs/references.bib 2024-10-19 12:38:54 9e3db2c perf: de-simp `tsub_eq_zero_of_le` (#17512) As mentioned [on Zulip](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Infrastructure.20for.20tracking.20frequently.20applied.20simp.20theorems/near/475331955): > `tsub_eq_zero_of_le` got worse in [the unmerged] #17444. It seems that Lean is searching `CanonicallyOrderedAdd` for types that are not ordered at all, then doing some slow unification of instances with metavariables that is impossible to succeed. ESTIMATED CHANGES Modified Archive/Imo/Imo1986Q5.lean Modified Mathlib/Algebra/MvPolynomial/Derivation.lean Modified Mathlib/Algebra/Order/Sub/Basic.lean Modified Mathlib/Data/ENNReal/Inv.lean Modified Mathlib/Data/ENNReal/Operations.lean Modified Mathlib/Data/Nat/Factorization/Basic.lean Modified Mathlib/Data/Real/ConjExponents.lean Modified Mathlib/MeasureTheory/Constructions/BorelSpace/Real.lean Modified Mathlib/MeasureTheory/Measure/DiracProba.lean Modified Mathlib/Topology/Instances/ENNReal.lean Modified Mathlib/Topology/Instances/ENat.lean Modified Mathlib/Topology/MetricSpace/ThickenedIndicator.lean 2024-10-19 08:15:11 66f6364 chore: move trans tactic to Batteries (batteries#1001) (#17931) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Notation.lean Modified Mathlib/Order/Defs.lean Modified Mathlib/Tactic.lean Modified Mathlib/Tactic/Common.lean Modified Mathlib/Tactic/MoveAdd.lean Deleted Mathlib/Tactic/Relation/Trans.lean - inductive Mathlib.Tactic.TransRelation - def Mathlib.Tactic.getExplicitFuncArg? - def Mathlib.Tactic.getExplicitRelArg? - def Mathlib.Tactic.getExplicitRelArgCore - def Mathlib.Tactic.getRel - def Mathlib.Tactic.transExt.config - def Trans.het - def Trans.simple Modified Mathlib/Tactic/ToAdditive/Frontend.lean Modified Mathlib/Tactic/Widget/CongrM.lean Modified lake-manifest.json Modified scripts/noshake.json Deleted test/trans.lean - theorem MyLE.trans - def MyLE - def eq_trans - def nleq - def nleq_trans 2024-10-19 07:30:34 418a5eb chore: remove CoeFun instances where FunLike is available (#17911) During the port we found that `FunLike` is robust enough not to need an extra `CoeFun` shortcut. Let's see if that rule can be consistently applied to the whole of the library. There is still duplication between `FunLike` and `CoeFun` for `Grp`, `Mon`, `CommGrp` and `CommMon`, which will need a more thorough fix. See also #17866. I am currently bisecting to figure out exactly why the benchmarks are indicating a slowdown with no obvious cause. ESTIMATED CHANGES Modified Mathlib/Algebra/Order/AbsoluteValue.lean Modified Mathlib/Algebra/Ring/CentroidHom.lean Modified Mathlib/Analysis/Distribution/SchwartzSpace.lean Modified Mathlib/Analysis/Normed/Algebra/Norm.lean Modified Mathlib/Analysis/Normed/Group/Seminorm.lean 2024-10-19 07:30:33 a5ac03c chore(Algebra/Module): split off `NoZeroSMulDivisors` (#17909) The definition of `NoZeroSMulDivisors` doesn't require us to know about modules. By splitting off this definition, we can streamline the downstream import graph a bit. In the process, generalize a few instances from `Module` to `SMulWithZero`. New files: * `NoZeroSMulDivisors/Defs.lean`: definition and basic results that don't require `Module` * `NoZeroSMulDivisors/Basic.lean`: basic results that require `Module` * `NoZeroSMulDivisors/Pi.lean`: results on `NoZeroSMulDivisors _ (_ -> _)` that don't require `Module` * `NoZeroSMulDivisors/Prod.lean`: results on `NoZeroSMulDivisors _ (_ x _)` that don't require `Module` ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Algebra/Basic.lean Modified Mathlib/Algebra/BigOperators/Finprod.lean Modified Mathlib/Algebra/Group/EvenFunction.lean Modified Mathlib/Algebra/ModEq.lean Modified Mathlib/Algebra/Module/Basic.lean Modified Mathlib/Algebra/Module/Card.lean Modified Mathlib/Algebra/Module/Defs.lean - theorem CharZero.of_module - theorem CharZero.of_noZeroSMulDivisors - theorem Function.Injective.noZeroSMulDivisors - theorem Nat.noZeroSMulDivisors - theorem NoZeroSMulDivisors.int_of_charZero - theorem neg_eq_self - theorem neg_ne_self - theorem self_eq_neg - theorem self_ne_neg - theorem smul_eq_zero - theorem smul_eq_zero_iff_left - theorem smul_eq_zero_iff_right - theorem smul_left_injective - theorem smul_ne_zero - theorem smul_ne_zero_iff - theorem smul_ne_zero_iff_left - theorem smul_ne_zero_iff_right - theorem smul_right_inj - theorem smul_right_injective - theorem two_nsmul_eq_zero Modified Mathlib/Algebra/Module/LinearMap/Basic.lean Modified Mathlib/Algebra/Module/LinearMap/End.lean Modified Mathlib/Algebra/Module/Pi.lean Modified Mathlib/Algebra/Module/Prod.lean Modified Mathlib/Algebra/Module/Rat.lean Added Mathlib/Algebra/NoZeroSMulDivisors/Basic.lean + theorem CharZero.of_module + theorem CharZero.of_noZeroSMulDivisors + theorem Nat.noZeroSMulDivisors + theorem NoZeroSMulDivisors.int_of_charZero + theorem neg_eq_self + theorem neg_ne_self + theorem self_eq_neg + theorem self_ne_neg + theorem smul_left_injective + theorem smul_right_inj + theorem smul_right_injective + theorem two_nsmul_eq_zero Added Mathlib/Algebra/NoZeroSMulDivisors/Defs.lean + theorem Function.Injective.noZeroSMulDivisors + theorem smul_eq_zero + theorem smul_eq_zero_iff_left + theorem smul_eq_zero_iff_right + theorem smul_ne_zero + theorem smul_ne_zero_iff + theorem smul_ne_zero_iff_left + theorem smul_ne_zero_iff_right Added Mathlib/Algebra/NoZeroSMulDivisors/Pi.lean Added Mathlib/Algebra/NoZeroSMulDivisors/Prod.lean Modified Mathlib/Algebra/Order/Module/Defs.lean Modified Mathlib/Algebra/Order/Star/Basic.lean Modified Mathlib/Data/ENNReal/Operations.lean Modified Mathlib/Data/Set/Pointwise/SMul.lean Modified Mathlib/GroupTheory/Subgroup/Saturated.lean Modified Mathlib/LinearAlgebra/BilinearMap.lean Modified Mathlib/LinearAlgebra/LinearPMap.lean Modified Mathlib/LinearAlgebra/Multilinear/Basic.lean Modified Mathlib/LinearAlgebra/Span.lean Modified Mathlib/RingTheory/Nilpotent/Basic.lean 2024-10-19 07:30:32 61509b3 chore(SetTheory/Ordinal/Basic): make `Ordinal.typein` a `PrincipalSeg` (#17599) This allows us to golf most of its API down to one-liners. ESTIMATED CHANGES Modified Mathlib/Order/InitialSeg.lean + theorem PrincipalSeg.surjOn Modified Mathlib/SetTheory/Ordinal/Basic.lean + theorem Ordinal.mem_range_typein_iff + theorem Ordinal.top_typein + theorem Ordinal.type_subrel - def Ordinal.typein.principalSeg +/- def Ordinal.typein + theorem Ordinal.typein_surjOn +/- theorem Ordinal.typein_top 2024-10-19 06:53:17 90c6be6 feat(MeasureTheory): `μ.comap Prod.swap = μ.map Prod.swap` (#17918) From PFR ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Measure/MeasureSpace.lean + theorem MeasureTheory.Measure.comap_swap 2024-10-19 06:53:15 a0521c9 chore: deprecate `Setoid.Rel` (#16260) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Limits/Shapes/SingleObj.lean Modified Mathlib/Data/Quot.lean Modified Mathlib/Data/Setoid/Basic.lean +/- theorem Setoid.bot_def +/- theorem Setoid.comap_rel +/- theorem Setoid.comm' +/- theorem Setoid.eq_iff_rel_eq +/- theorem Setoid.eq_top_iff +/- theorem Setoid.eqvGen_idem +/- theorem Setoid.eqvGen_le + theorem Setoid.ext'_iff - theorem Setoid.ext_iff +/- def Setoid.gi +/- theorem Setoid.inf_def +/- theorem Setoid.inf_iff_and +/- theorem Setoid.ker_def +/- theorem Setoid.ker_eq_lift_of_injective +/- theorem Setoid.ker_iff_mem_preimage +/- theorem Setoid.le_def +/- theorem Setoid.refl' +/- theorem Setoid.sInf_def +/- theorem Setoid.sSup_def +/- theorem Setoid.sup_def +/- theorem Setoid.symm' +/- theorem Setoid.top_def +/- theorem Setoid.trans' Modified Mathlib/Data/Setoid/Partition.lean +/- theorem IndexedPartition.class_of +/- theorem IndexedPartition.some_index +/- theorem Setoid.mem_classes +/- theorem Setoid.rel_iff_exists_classes Modified Mathlib/GroupTheory/Congruence/Defs.lean Modified Mathlib/GroupTheory/DoubleCoset.lean Modified Mathlib/GroupTheory/GroupAction/Basic.lean +/- theorem MulAction.orbitRel_apply - theorem MulAction.orbitRel_r_apply Modified Mathlib/GroupTheory/GroupAction/ConjAct.lean +/- theorem ConjAct.orbitRel_conjAct Modified Mathlib/GroupTheory/GroupAction/Quotient.lean Modified Mathlib/Order/Partition/Finpartition.lean Modified Mathlib/RingTheory/AdicCompletion/Algebra.lean Modified Mathlib/RingTheory/Congruence/Basic.lean Modified Mathlib/RingTheory/Valuation/ValuationRing.lean Modified Mathlib/Topology/Algebra/ProperAction/Basic.lean Modified Mathlib/Topology/DiscreteQuotient.lean +/- theorem DiscreteQuotient.fiber_eq +/- theorem DiscreteQuotient.isClopen_setOf_rel +/- theorem DiscreteQuotient.refl +/- theorem DiscreteQuotient.symm +/- theorem DiscreteQuotient.trans Modified Mathlib/Topology/MetricSpace/Contracting.lean Modified Mathlib/Topology/Separation.lean +/- theorem t2Quotient.mk_eq 2024-10-19 06:27:29 74600fe refactor(Order/Filter): don't use `generate` for `CompleteLattice` (#17799) ESTIMATED CHANGES Modified Mathlib/Analysis/Complex/Basic.lean Modified Mathlib/Dynamics/Circle/RotationNumber/TranslationNumber.lean Modified Mathlib/MeasureTheory/Group/Measure.lean Modified Mathlib/Order/Filter/Basic.lean - theorem Filter.mem_pure - theorem Filter.mem_sSup + theorem Filter.sets_ssubset_sets + theorem Filter.sets_subset_sets Modified Mathlib/Order/Filter/Defs.lean + theorem Filter.mem_pure + theorem Filter.mem_sSup 2024-10-19 05:19:36 81e6543 chore(Data/Nat/{Bits, Bitwise}): use `Bool.toNat` (#17925) ESTIMATED CHANGES Modified Mathlib/Data/Nat/Bits.lean +/- theorem Nat.bit_val +/- theorem Nat.bodd_add_div2 +/- theorem Nat.mod_two_of_bodd Modified Mathlib/Data/Nat/Bitwise.lean Modified Mathlib/Data/Nat/Size.lean 2024-10-19 02:20:12 bd5ba6b chore(SetTheory/Ordinal/Basic): deprecate duplicate `Nat.cast` lemmas (#17857) ESTIMATED CHANGES Modified Mathlib/SetTheory/Ordinal/Arithmetic.lean +/- theorem Ordinal.natCast_inj +/- theorem Ordinal.natCast_le Modified Mathlib/SetTheory/Ordinal/Notation.lean 2024-10-19 01:19:58 f6b9618 chore: update Mathlib dependencies 2024-10-19 (#17933) This PR updates the Mathlib dependencies. ESTIMATED CHANGES Modified lake-manifest.json 2024-10-19 00:45:04 6e38c66 feat: algebraic properties of `LinearMap.compMultilinear` (#17932) This also demotes `LinearMap.compAlternatingMap` to a plain function, for consistency. To make up for this loss, it introduces `LinearMap.compAlternatingMapₗ` as the stronger linear version. ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/Alternating/Basic.lean + theorem LinearMap.add_compAlternatingMap +/- def LinearMap.compAlternatingMap + theorem LinearMap.compAlternatingMap_add + theorem LinearMap.compAlternatingMap_smul + theorem LinearMap.compAlternatingMap_zero + def LinearMap.compAlternatingMapₗ + theorem LinearMap.smul_compAlternatingMap + theorem LinearMap.zero_compAlternatingMap Modified Mathlib/LinearAlgebra/Multilinear/Basic.lean + theorem LinearMap.add_compMultilinearMap + theorem LinearMap.compMultilinearMap_add + theorem LinearMap.compMultilinearMap_smul + theorem LinearMap.compMultilinearMap_zero + def LinearMap.compMultilinearMapₗ + theorem LinearMap.smul_compMultilinearMap + theorem LinearMap.zero_compMultilinearMap 2024-10-19 00:06:23 992ec73 feat: generalize `LinearMap.exists_rightInverse_of_surjective` to projective modules (#17560) Previously it only held in vector spaces. ESTIMATED CHANGES Modified Mathlib/Algebra/Module/Projective.lean + theorem LinearMap.exists_rightInverse_of_surjective Modified Mathlib/LinearAlgebra/Basis/VectorSpace.lean - theorem LinearMap.exists_rightInverse_of_surjective Modified Mathlib/LinearAlgebra/Dimension/LinearMap.lean Modified Mathlib/LinearAlgebra/FiniteDimensional/Defs.lean Modified Mathlib/Topology/Algebra/SeparationQuotient.lean 2024-10-18 21:51:43 fa8e210 chore: update Mathlib dependencies 2024-10-18 (#17929) This PR updates the Mathlib dependencies. ESTIMATED CHANGES Modified lake-manifest.json 2024-10-18 21:51:41 b9efa9d feat(Topology/Connected/PathConnected): some lemmas for `pathComponentIn` (#16983) Adds some basic lemmas about `pathComponentIn`, analogous to existing lemmas about `pathComponent` and `connectedComponentIn`. ESTIMATED CHANGES Modified Mathlib/Topology/Connected/PathConnected.lean + theorem IsPathConnected.subset_pathComponentIn + theorem isPathConnected_pathComponent + theorem isPathConnected_pathComponentIn + theorem mem_pathComponentIn_self + theorem pathComponentIn_congr + theorem pathComponentIn_mono + theorem pathComponentIn_nonempty_iff + theorem pathComponentIn_subset 2024-10-18 21:29:11 de5d061 chore: Rename `OpenEmbedding` to `IsOpenEmbedding` (#17898) `Function.Embedding` is a type while `Embedding` is a proposition, and there are many other kinds of embeddings than topological embeddings. Hence this PR is a step towards 1. renaming `Embedding` to `IsEmbedding` and similarly for neighborhing declarations (which `OpenEmbedding` is) 2. namespacing it inside `Topology` [Zulip](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/rename.20.60Inducing.60.20and.20.60Embedding.60.3F). See #15993 for context. ESTIMATED CHANGES Modified Mathlib/AlgebraicGeometry/AffineScheme.lean Modified Mathlib/AlgebraicGeometry/Cover/Open.lean Modified Mathlib/AlgebraicGeometry/FunctionField.lean Modified Mathlib/AlgebraicGeometry/Gluing.lean + theorem AlgebraicGeometry.Scheme.OpenCover.fromGlued_isOpenEmbedding - theorem AlgebraicGeometry.Scheme.OpenCover.fromGlued_openEmbedding Modified Mathlib/AlgebraicGeometry/Limits.lean Modified Mathlib/AlgebraicGeometry/Morphisms/Affine.lean Modified Mathlib/AlgebraicGeometry/Morphisms/IsIso.lean Modified Mathlib/AlgebraicGeometry/Morphisms/OpenImmersion.lean Modified Mathlib/AlgebraicGeometry/Morphisms/Preimmersion.lean Modified Mathlib/AlgebraicGeometry/Morphisms/UnderlyingMap.lean Modified Mathlib/AlgebraicGeometry/Noetherian.lean Modified Mathlib/AlgebraicGeometry/OpenImmersion.lean +/- theorem AlgebraicGeometry.IsOpenImmersion.of_stalk_iso + theorem AlgebraicGeometry.Scheme.Hom.isOpenEmbedding - theorem AlgebraicGeometry.Scheme.Hom.openEmbedding Modified Mathlib/AlgebraicGeometry/PrimeSpectrum/Basic.lean + theorem PrimeSpectrum.localization_away_isOpenEmbedding - theorem PrimeSpectrum.localization_away_openEmbedding Modified Mathlib/AlgebraicGeometry/ProjectiveSpectrum/Scheme.lean Modified Mathlib/AlgebraicGeometry/Properties.lean Modified Mathlib/AlgebraicGeometry/Restrict.lean Modified Mathlib/AlgebraicGeometry/Scheme.lean Modified Mathlib/Analysis/Complex/UpperHalfPlane/Manifold.lean Modified Mathlib/Analysis/Complex/UpperHalfPlane/Topology.lean + theorem UpperHalfPlane.isOpenEmbedding_coe +/- def UpperHalfPlane.ofComplex - theorem UpperHalfPlane.openEmbedding_coe Modified Mathlib/Analysis/Normed/Ring/Units.lean + theorem Units.isOpenEmbedding_val - theorem Units.openEmbedding_val Modified Mathlib/Analysis/SpecialFunctions/Exp.lean + theorem Real.isOpenEmbedding_exp - theorem Real.openEmbedding_exp Modified Mathlib/Geometry/Manifold/ChartedSpace.lean + def IsOpenEmbedding.singletonChartedSpace + theorem IsOpenEmbedding.singletonChartedSpace_chartAt_eq + theorem IsOpenEmbedding.singleton_hasGroupoid - def OpenEmbedding.singletonChartedSpace - theorem OpenEmbedding.singletonChartedSpace_chartAt_eq - theorem OpenEmbedding.singleton_hasGroupoid Modified Mathlib/Geometry/Manifold/ContMDiff/Basic.lean + theorem ContMDiff.of_comp_isOpenEmbedding - theorem ContMDiff.of_comp_openEmbedding + theorem contMDiffOn_isOpenEmbedding_symm - theorem contMDiffOn_openEmbedding_symm + theorem contMDiff_isOpenEmbedding - theorem contMDiff_openEmbedding Modified Mathlib/Geometry/Manifold/Instances/UnitsOfNormedAlgebra.lean Modified Mathlib/Geometry/Manifold/LocalInvariantProperties.lean Modified Mathlib/Geometry/Manifold/SmoothManifoldWithCorners.lean + theorem IsOpenEmbedding.singleton_smoothManifoldWithCorners - theorem OpenEmbedding.singleton_smoothManifoldWithCorners Modified Mathlib/Geometry/RingedSpace/LocallyRingedSpace.lean +/- def AlgebraicGeometry.LocallyRingedSpace.restrict Modified Mathlib/Geometry/RingedSpace/OpenImmersion.lean +/- theorem AlgebraicGeometry.LocallyRingedSpace.IsOpenImmersion.of_stalk_iso +/- theorem AlgebraicGeometry.SheafedSpace.IsOpenImmersion.of_stalk_iso + theorem AlgebraicGeometry.SheafedSpace.IsOpenImmersion.sigma_ι_isOpenEmbedding - theorem AlgebraicGeometry.SheafedSpace.IsOpenImmersion.sigma_ι_openEmbedding Modified Mathlib/Geometry/RingedSpace/PresheafedSpace.lean +/- def AlgebraicGeometry.PresheafedSpace.restrictTopIso +/- def AlgebraicGeometry.PresheafedSpace.toRestrictTop Modified Mathlib/Geometry/RingedSpace/PresheafedSpace/Gluing.lean + theorem AlgebraicGeometry.PresheafedSpace.GlueData.ι_isOpenEmbedding - theorem AlgebraicGeometry.PresheafedSpace.GlueData.ι_openEmbedding Modified Mathlib/Geometry/RingedSpace/SheafedSpace.lean +/- def AlgebraicGeometry.SheafedSpace.restrict +/- def AlgebraicGeometry.SheafedSpace.restrictTopIso Modified Mathlib/Geometry/RingedSpace/Stalks.lean Modified Mathlib/MeasureTheory/Constructions/BorelSpace/Basic.lean Modified Mathlib/NumberTheory/ModularForms/EisensteinSeries/UniformConvergence.lean Modified Mathlib/Topology/Algebra/ConstMulAction.lean Modified Mathlib/Topology/Algebra/Constructions/DomMulAct.lean + theorem DomMulAct.isOpenEmbedding_mk + theorem DomMulAct.isOpenEmbedding_mk_symm - theorem DomMulAct.openEmbedding_mk - theorem DomMulAct.openEmbedding_mk_symm Modified Mathlib/Topology/Algebra/Nonarchimedean/Basic.lean +/- theorem NonarchimedeanGroup.nonarchimedean_of_emb Modified Mathlib/Topology/Bases.lean Modified Mathlib/Topology/Category/CompHausLike/Limits.lean + theorem CompHausLike.Sigma.isOpenEmbedding_ι - theorem CompHausLike.Sigma.openEmbedding_ι + theorem CompHausLike.finiteCoproduct.isOpenEmbedding_ι - theorem CompHausLike.finiteCoproduct.openEmbedding_ι Modified Mathlib/Topology/Category/Stonean/Limits.lean Modified Mathlib/Topology/Category/TopCat/Basic.lean + theorem TopCat.isOpenEmbedding_iff_comp_isIso' + theorem TopCat.isOpenEmbedding_iff_comp_isIso + theorem TopCat.isOpenEmbedding_iff_isIso_comp' + theorem TopCat.isOpenEmbedding_iff_isIso_comp - theorem TopCat.openEmbedding_iff_comp_isIso' - theorem TopCat.openEmbedding_iff_comp_isIso - theorem TopCat.openEmbedding_iff_isIso_comp' - theorem TopCat.openEmbedding_iff_isIso_comp Modified Mathlib/Topology/Category/TopCat/Limits/Products.lean Modified Mathlib/Topology/Category/TopCat/Limits/Pullbacks.lean + theorem TopCat.fst_isOpenEmbedding_of_right - theorem TopCat.fst_openEmbedding_of_right_openEmbedding + theorem TopCat.isOpenEmbedding_of_pullback_open_embeddings - theorem TopCat.openEmbedding_of_pullback_open_embeddings + theorem TopCat.pullback_map_isOpenEmbedding - theorem TopCat.pullback_map_openEmbedding_of_open_embeddings + theorem TopCat.snd_isOpenEmbedding_of_left - theorem TopCat.snd_openEmbedding_of_left_openEmbedding Modified Mathlib/Topology/Category/TopCat/OpenNhds.lean + theorem TopologicalSpace.OpenNhds.isOpenEmbedding - theorem TopologicalSpace.OpenNhds.openEmbedding Modified Mathlib/Topology/Category/TopCat/Opens.lean + theorem IsOpenEmbedding.functor_obj_injective - theorem OpenEmbedding.functor_obj_injective + theorem TopologicalSpace.Opens.isOpenEmbedding + theorem TopologicalSpace.Opens.isOpenEmbedding_obj_top +/- theorem TopologicalSpace.Opens.map_functor_eq' - theorem TopologicalSpace.Opens.openEmbedding - theorem TopologicalSpace.Opens.openEmbedding_obj_top Modified Mathlib/Topology/Clopen.lean Modified Mathlib/Topology/Compactification/OnePoint.lean + theorem OnePoint.isOpenEmbedding_coe - theorem OnePoint.openEmbedding_coe Modified Mathlib/Topology/Compactness/LocallyCompact.lean Modified Mathlib/Topology/Connected/LocallyConnected.lean + theorem IsOpenEmbedding.locallyConnectedSpace - theorem OpenEmbedding.locallyConnectedSpace Modified Mathlib/Topology/Connected/PathConnected.lean + theorem IsOpenEmbedding.locPathConnectedSpace - theorem OpenEmbedding.locPathConnectedSpace Modified Mathlib/Topology/Constructions.lean + theorem IsOpen.isOpenEmbedding_subtypeVal - theorem IsOpen.openEmbedding_subtype_val + theorem isOpenEmbedding_inl + theorem isOpenEmbedding_inr + theorem isOpenEmbedding_sigmaMk + theorem isOpenEmbedding_sigma_map - theorem openEmbedding_inl - theorem openEmbedding_inr - theorem openEmbedding_sigmaMk - theorem openEmbedding_sigma_map Modified Mathlib/Topology/ContinuousOn.lean + theorem IsOpenEmbedding.map_nhdsWithin_preimage_eq - theorem OpenEmbedding.map_nhdsWithin_preimage_eq Modified Mathlib/Topology/Defs/Induced.lean + structure IsOpenEmbedding - structure OpenEmbedding Modified Mathlib/Topology/Gluing.lean + theorem TopCat.GlueData.fromOpenSubsetsGlue_isOpenEmbedding - theorem TopCat.GlueData.fromOpenSubsetsGlue_openEmbedding + theorem TopCat.GlueData.ι_isOpenEmbedding - theorem TopCat.GlueData.ι_openEmbedding Modified Mathlib/Topology/Homeomorph.lean + theorem Homeomorph.isOpenEmbedding + theorem IsHomeomorph.isOpenEmbedding Modified Mathlib/Topology/Inseparable.lean + theorem IsOpenEmbedding.generalizingMap - theorem OpenEmbedding.generalizingMap Modified Mathlib/Topology/Instances/ENNReal.lean + theorem ENNReal.isOpenEmbedding_coe - theorem ENNReal.openEmbedding_coe Modified Mathlib/Topology/Instances/ENat.lean + theorem ENat.isOpenEmbedding_natCast - theorem ENat.openEmbedding_natCast Modified Mathlib/Topology/Instances/EReal.lean + theorem EReal.isOpenEmbedding_coe - theorem EReal.openEmbedding_coe Modified Mathlib/Topology/Irreducible.lean Modified Mathlib/Topology/IsLocalHomeomorph.lean + theorem IsLocalHomeomorph.isOpenEmbedding_of_comp + theorem IsLocalHomeomorph.isOpenEmbedding_of_injective - theorem IsLocalHomeomorph.openEmbedding_of_comp - theorem IsLocalHomeomorph.openEmbedding_of_injective + theorem IsOpenEmbedding.isLocalHomeomorph - theorem OpenEmbedding.isLocalHomeomorph + theorem isLocalHomeomorphOn_iff_isOpenEmbedding_restrict - theorem isLocalHomeomorphOn_iff_openEmbedding_restrict + theorem isLocalHomeomorph_iff_isOpenEmbedding_restrict - theorem isLocalHomeomorph_iff_openEmbedding_restrict Modified Mathlib/Topology/LocalAtTarget.lean + theorem Set.restrictPreimage_isOpenEmbedding - theorem Set.restrictPreimage_openEmbedding + theorem isOpenEmbedding_iff_isOpenEmbedding_of_iSup_eq_top - theorem openEmbedding_iff_openEmbedding_of_iSup_eq_top Modified Mathlib/Topology/LocallyClosed.lean + theorem IsOpenEmbedding.coborder_preimage - theorem OpenEmbedding.coborder_preimage Modified Mathlib/Topology/Maps/Basic.lean + theorem Embedding.toIsOpenEmbedding_of_surjective - theorem Embedding.toOpenEmbedding_of_surjective + theorem IsOpenEmbedding.continuous + theorem IsOpenEmbedding.continuousAt_iff + theorem IsOpenEmbedding.image_mem_nhds + theorem IsOpenEmbedding.isOpenMap + theorem IsOpenEmbedding.isOpenMap_iff + theorem IsOpenEmbedding.map_nhds_eq + theorem IsOpenEmbedding.of_comp + theorem IsOpenEmbedding.of_comp_iff + theorem IsOpenEmbedding.of_isEmpty + theorem IsOpenEmbedding.open_iff_image_open + theorem IsOpenEmbedding.open_iff_preimage_open + theorem IsOpenEmbedding.tendsto_nhds_iff' + theorem IsOpenEmbedding.tendsto_nhds_iff - theorem OpenEmbedding.continuous - theorem OpenEmbedding.continuousAt_iff - theorem OpenEmbedding.image_mem_nhds - theorem OpenEmbedding.isOpenMap - theorem OpenEmbedding.isOpenMap_iff - theorem OpenEmbedding.map_nhds_eq - theorem OpenEmbedding.of_comp - theorem OpenEmbedding.of_comp_iff - theorem OpenEmbedding.of_isEmpty - theorem OpenEmbedding.open_iff_image_open - theorem OpenEmbedding.open_iff_preimage_open - theorem OpenEmbedding.tendsto_nhds_iff' - theorem OpenEmbedding.tendsto_nhds_iff + theorem isOpenEmbedding_id + theorem isOpenEmbedding_iff_continuous_injective_open + theorem isOpenEmbedding_iff_embedding_open + theorem isOpenEmbedding_of_continuous_injective_open + theorem isOpenEmbedding_of_embedding_open - theorem openEmbedding_id - theorem openEmbedding_iff_continuous_injective_open - theorem openEmbedding_iff_embedding_open - theorem openEmbedding_of_continuous_injective_open - theorem openEmbedding_of_embedding_open Modified Mathlib/Topology/PartialHomeomorph.lean + theorem IsOpenEmbedding.toPartialHomeomorph_left_inv + theorem IsOpenEmbedding.toPartialHomeomorph_right_inv - theorem OpenEmbedding.toPartialHomeomorph_left_inv - theorem OpenEmbedding.toPartialHomeomorph_right_inv + theorem PartialHomeomorph.isOpenEmbedding_restrict - theorem PartialHomeomorph.openEmbedding_restrict + theorem PartialHomeomorph.to_isOpenEmbedding - theorem PartialHomeomorph.to_openEmbedding Modified Mathlib/Topology/QuasiSeparated.lean + theorem IsOpenEmbedding.isQuasiSeparated_iff - theorem OpenEmbedding.isQuasiSeparated_iff + theorem QuasiSeparatedSpace.of_isOpenEmbedding - theorem QuasiSeparatedSpace.of_openEmbedding Modified Mathlib/Topology/SeparatedMap.lean + theorem IsLocallyInjective_iff_isOpenEmbedding - theorem IsLocallyInjective_iff_openEmbedding Modified Mathlib/Topology/Separation.lean + theorem separated_by_isOpenEmbedding - theorem separated_by_openEmbedding Modified Mathlib/Topology/Sets/Opens.lean + theorem TopologicalSpace.Opens.isOpenEmbedding' + theorem TopologicalSpace.Opens.isOpenEmbedding_of_le - theorem TopologicalSpace.Opens.openEmbedding' - theorem TopologicalSpace.Opens.openEmbedding_of_le Modified Mathlib/Topology/Sheaves/LocalPredicate.lean Modified Mathlib/Topology/Sheaves/SheafCondition/Sites.lean + theorem IsOpenEmbedding.compatiblePreserving + theorem IsOpenEmbedding.functor_isContinuous - theorem OpenEmbedding.compatiblePreserving - theorem OpenEmbedding.functor_isContinuous + theorem TopCat.Presheaf.isSheaf_of_isOpenEmbedding - theorem TopCat.Presheaf.isSheaf_of_openEmbedding Modified Mathlib/Topology/Sheaves/Stalks.lean + theorem TopCat.Presheaf.stalkPushforward.stalkPushforward_iso_of_isOpenEmbedding - theorem TopCat.Presheaf.stalkPushforward.stalkPushforward_iso_of_openEmbedding Modified Mathlib/Topology/Sober.lean + theorem IsOpenEmbedding.quasiSober - theorem OpenEmbedding.quasiSober Modified Mathlib/Topology/Support.lean Modified scripts/no_lints_prime_decls.txt 2024-10-18 21:29:10 8959a60 feat(CategoryTheory/Monoidal): add `IsMon_Hom` type class (#17186) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Monoidal/Bimon_.lean Modified Mathlib/CategoryTheory/Monoidal/Comon_.lean Modified Mathlib/CategoryTheory/Monoidal/Mon_.lean 2024-10-18 21:00:38 547e878 feat: `Disjoint (a • s) t ↔ Disjoint s (a⁻¹ • t)` (#17907) ESTIMATED CHANGES Modified Mathlib/Data/Set/Pointwise/SMul.lean + theorem Set.disjoint_smul_set + theorem Set.disjoint_smul_set_left + theorem Set.disjoint_smul_set_right - theorem Set.smul_set_disjoint_iff +/- theorem Set.smul_set_iInter 2024-10-18 19:09:04 63c47e1 chore(Data/Nat/Bits): attribute `elab_as_elim` `inline` `specialize` (#17897) Add attribute `elab_as_elim` to binary recursors. Also add `inline` and `specialize` for performance. Without `specialize`, the `popcountTR` in the test is not tail-recursive, and so crashes with ``` error: libc++abi: terminating due to uncaught exception of type lean::throwable: deep recursion was detected at 'interpreter' ``` ESTIMATED CHANGES Modified Mathlib/Data/Nat/Bits.lean Modified Mathlib/Data/Nat/Fib/Basic.lean Modified Mathlib/Data/Nat/Size.lean Added test/BinaryRec.lean + def Nat.popcountTR 2024-10-18 19:09:03 7d20fac feat: variant of the binary AM-GM inequality (#17877) added variant of binary AM-GM inequality ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Ring/Unbundled/Basic.lean + theorem four_mul_le_sq_add Modified Mathlib/Data/Nat/Cast/Defs.lean + theorem two_add_two_eq_four 2024-10-18 18:38:50 abad5bb chore(Data/Nat/Bits): do not use tactic to make definitions (#17926) ESTIMATED CHANGES Modified Mathlib/Data/Nat/Bits.lean 2024-10-18 18:31:29 df601e3 feat(AlgebraicGeometry/EllipticCurve/Projective): implement group operations on point representatives for projective coordinates (#9418) Define the analogous secant-and-tangent negation `neg` and addition `add` on `PointRep` over `F`, and lift them to `PointClass`. Define `Point` as a `PointClass` that is nonsingular. Prove in `neg_equiv` and `add_equiv` that these operations preserve the equivalence. Prove in `nonsingular_neg` and `nonsingular_add` that these operations preserve nonsingularity by reducing it to the affine case, and lift these proofs to `PointClass`. This is the third in a series of four PRs leading to #8485 ESTIMATED CHANGES Modified Mathlib/AlgebraicGeometry/EllipticCurve/Projective.lean + theorem WeierstrassCurve.Projective.addMap_eq + theorem WeierstrassCurve.Projective.addMap_of_Y_eq + theorem WeierstrassCurve.Projective.addMap_of_Z_eq_zero_left + theorem WeierstrassCurve.Projective.addMap_of_Z_eq_zero_right + theorem WeierstrassCurve.Projective.addMap_of_Z_ne_zero + theorem WeierstrassCurve.Projective.addXYZ_neg + theorem WeierstrassCurve.Projective.addX_neg + theorem WeierstrassCurve.Projective.addY_neg + theorem WeierstrassCurve.Projective.addZ_neg + theorem WeierstrassCurve.Projective.add_equiv + theorem WeierstrassCurve.Projective.add_of_X_ne + theorem WeierstrassCurve.Projective.add_of_Y_eq + theorem WeierstrassCurve.Projective.add_of_Y_ne' + theorem WeierstrassCurve.Projective.add_of_Y_ne + theorem WeierstrassCurve.Projective.add_of_Z_eq_zero + theorem WeierstrassCurve.Projective.add_of_Z_eq_zero_left + theorem WeierstrassCurve.Projective.add_of_Z_eq_zero_right + theorem WeierstrassCurve.Projective.add_of_eq + theorem WeierstrassCurve.Projective.add_of_equiv + theorem WeierstrassCurve.Projective.add_of_not_equiv + theorem WeierstrassCurve.Projective.add_self + theorem WeierstrassCurve.Projective.add_smul_equiv + theorem WeierstrassCurve.Projective.add_smul_of_equiv + theorem WeierstrassCurve.Projective.add_smul_of_not_equiv + def WeierstrassCurve.Projective.neg + theorem WeierstrassCurve.Projective.negAddY_neg + def WeierstrassCurve.Projective.negMap + theorem WeierstrassCurve.Projective.negMap_eq + theorem WeierstrassCurve.Projective.negMap_of_Z_eq_zero + theorem WeierstrassCurve.Projective.negMap_of_Z_ne_zero + theorem WeierstrassCurve.Projective.neg_X + theorem WeierstrassCurve.Projective.neg_Y + theorem WeierstrassCurve.Projective.neg_Z + theorem WeierstrassCurve.Projective.neg_equiv + theorem WeierstrassCurve.Projective.neg_of_Z_eq_zero + theorem WeierstrassCurve.Projective.neg_of_Z_ne_zero + theorem WeierstrassCurve.Projective.neg_smul + theorem WeierstrassCurve.Projective.neg_smul_equiv + theorem WeierstrassCurve.Projective.nonsingularLift_addMap + theorem WeierstrassCurve.Projective.nonsingularLift_negMap + theorem WeierstrassCurve.Projective.nonsingular_add + theorem WeierstrassCurve.Projective.nonsingular_neg + theorem WeierstrassCurve.Projective.smul_equiv_smul Modified scripts/no_lints_prime_decls.txt 2024-10-18 18:06:40 8610319 doc(SetTheory/Game/PGame): expand docstrings for `≤` and `⧏` (#16809) ESTIMATED CHANGES Modified Mathlib/SetTheory/Game/PGame.lean 2024-10-18 17:54:26 7520434 feat(FieldTheory/Galois): Finite galois subextensions (#16978) Define the type of finite Galois subextensions and prove basic properties about it. Moves: - Mathlib.FieldTheory.Galois -> Mathlib.FieldTheory.Galois.Basic ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/FieldTheory/Galois/Infinite.lean + theorem FiniteGaloisIntermediateField.adjoin_map + theorem FiniteGaloisIntermediateField.adjoin_simple_le_iff + theorem FiniteGaloisIntermediateField.adjoin_simple_map_algEquiv + theorem FiniteGaloisIntermediateField.adjoin_simple_map_algHom + theorem FiniteGaloisIntermediateField.adjoin_val + def FiniteGaloisIntermediateField.finGaloisGroup + theorem FiniteGaloisIntermediateField.le_iff + theorem FiniteGaloisIntermediateField.subset_adjoin + theorem FiniteGaloisIntermediateField.val_injective + structure FiniteGaloisIntermediateField + theorem finGaloisGroupMap.map_comp + theorem finGaloisGroupMap.map_id Modified Mathlib/FieldTheory/KrullTopology.lean + theorem krullTopology_mem_nhds_one Modified Mathlib/FieldTheory/Normal.lean + theorem AlgEquiv.restrictNormalHom_id + theorem IsScalarTower.AlgEquiv.restrictNormalHom_comp + theorem IsScalarTower.AlgEquiv.restrictNormalHom_comp_apply Modified Mathlib/FieldTheory/NormalClosure.lean + theorem IntermediateField.normalClosure_le_iff_of_normal + theorem IntermediateField.normalClosure_map_eq 2024-10-18 17:35:48 1ef8dd3 feat (RingTheory/HahnSeries/Summable) : singleton summable family (#16871) This PR defines a summable family made of a single Hahn series, and shows that the formal sum of the family is equal to the original Hahn series. ESTIMATED CHANGES Modified Mathlib/RingTheory/HahnSeries/Summable.lean + theorem HahnSeries.SummableFamily.hsum_single + def HahnSeries.SummableFamily.single 2024-10-18 16:57:13 2178cce chore: update Mathlib dependencies 2024-10-18 (#17922) This PR updates the Mathlib dependencies. ESTIMATED CHANGES Modified lake-manifest.json 2024-10-18 16:28:19 44b4d57 chore: remove `CoeFun` instances where `FunLike` is available (#17900) During the port we found that `FunLike` is robust enough not to need an extra `CoeFun` shortcut. Let's see if that rule can be consistently applied to the whole of the library. There is still duplication between `FunLike` and `CoeFun` for `Grp`, `Mon`, `CommGrp` and `CommMon`, which will need a more thorough fix. See also #17866. This is the second half of #17870, and doesn't affect the benchmarks. ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/Hom.lean Modified Mathlib/Algebra/Algebra/NonUnitalHom.lean Modified Mathlib/Algebra/MonoidAlgebra/Defs.lean Modified Mathlib/Algebra/Polynomial/Module/Basic.lean Modified Mathlib/LinearAlgebra/AffineSpace/AffineEquiv.lean Modified Mathlib/LinearAlgebra/AffineSpace/AffineMap.lean Modified Mathlib/LinearAlgebra/QuadraticForm/Basic.lean Modified Mathlib/MeasureTheory/OuterMeasure/Defs.lean Modified Mathlib/ModelTheory/Basic.lean Modified Mathlib/ModelTheory/ElementaryMaps.lean Modified Mathlib/Order/OmegaCompletePartialOrder.lean Modified Mathlib/Topology/Algebra/Module/Multilinear/Basic.lean Modified Mathlib/Topology/Algebra/Module/WeakDual.lean Modified Mathlib/Topology/Connected/PathConnected.lean Modified Mathlib/Topology/Homeomorph.lean Modified Mathlib/Topology/MetricSpace/Dilation.lean Modified Mathlib/Topology/MetricSpace/DilationEquiv.lean 2024-10-18 16:28:18 7e96f0c chore: remove unused open statements (#17899) ESTIMATED CHANGES Modified Mathlib/Algebra/Group/EvenFunction.lean Modified Mathlib/Algebra/Polynomial/Module/Basic.lean Modified Mathlib/Analysis/Calculus/LogDeriv.lean Modified Mathlib/Analysis/Normed/Group/Ultra.lean Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Cotangent.lean Modified Mathlib/Combinatorics/Additive/ErdosGinzburgZiv.lean Modified Mathlib/Combinatorics/SetFamily/KruskalKatona.lean Modified Mathlib/Data/Nat/Choose/Lucas.lean Modified Mathlib/GroupTheory/CosetCover.lean Modified Mathlib/GroupTheory/GroupAction/Blocks.lean Modified Mathlib/MeasureTheory/Measure/SeparableMeasure.lean Modified Mathlib/ModelTheory/Algebra/Field/IsAlgClosed.lean Modified Mathlib/NumberTheory/Fermat.lean Modified Mathlib/NumberTheory/JacobiSum/Basic.lean Modified Mathlib/NumberTheory/NumberField/Units/DirichletTheorem.lean Modified Mathlib/NumberTheory/NumberField/Units/Regulator.lean Modified Mathlib/Order/LiminfLimsup.lean Modified Mathlib/Probability/Martingale/BorelCantelli.lean Modified Mathlib/RingTheory/RootsOfUnity/Lemmas.lean 2024-10-18 16:28:16 7b3afdd feat: more lemmas about the size of pointwise sets (#17231) Complete the API and follow the convention that `Cardinal.mk` is called `card` and `Nat.card` is called `natCard` in lemma names. From LeanCamCombi ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Group/Pointwise/Set/Card.lean + theorem Cardinal.mk_div_le + theorem Cardinal.mk_inv + theorem Cardinal.mk_mul_le + theorem Cardinal.mk_smul_set - theorem Set.card_div_le - theorem Set.card_inv - theorem Set.card_mul_le - theorem Set.card_smul_set + theorem Set.natCard_div_le + theorem Set.natCard_inv + theorem Set.natCard_mul_le + theorem Set.natCard_smul_set Added Mathlib/Algebra/GroupWithZero/Pointwise/Set/Card.lean + theorem Cardinal.mk_smul_set₀ + theorem Set.natCard_smul_set₀ Modified Mathlib/SetTheory/Cardinal/Basic.lean + theorem Cardinal.mk_image2_le + theorem Cardinal.mk_setProd 2024-10-18 16:20:05 c6a02ff chore: more `erw`s that can become `rw`s (#17923) Automatically found by the `erw` linter from #17638. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Limits/Shapes/Reflexive.lean Modified Mathlib/CategoryTheory/Shift/Basic.lean Modified Mathlib/Condensed/Discrete/Colimit.lean Modified Mathlib/Geometry/RingedSpace/OpenImmersion.lean Modified Mathlib/Topology/Order/ScottTopology.lean 2024-10-18 15:58:51 94bb3a8 feat(CategoryTheory/Monoidal): add `Mon_Class` type class (#17185) [Zulip discussion](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/Algebras.20in.20monoidal.20categories.2C.20bundled.20or.20semi-bundled.3F) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Monoidal/Bimon_.lean + theorem Bimon_Class.mul_comul + theorem Bimon_Class.mul_counit + theorem Bimon_Class.one_comul + theorem Bimon_Class.one_counit Modified Mathlib/CategoryTheory/Monoidal/Comon_.lean + def Comon_.mk' + theorem Comon_Class.comul_assoc + theorem Comon_Class.comul_counit + theorem Comon_Class.counit_comul Modified Mathlib/CategoryTheory/Monoidal/Hopf_.lean + theorem Hopf_Class.antipode_left + theorem Hopf_Class.antipode_right Modified Mathlib/CategoryTheory/Monoidal/Mon_.lean + def Mon_.mk' + theorem Mon_Class.mul_assoc + theorem Mon_Class.mul_one + theorem Mon_Class.one_mul 2024-10-18 15:48:17 8b31f1f feat(GroupTheory/ArchimedeanDensely): discrete iff not densely ordered (#16618) Stronger statements than previously proven `Or`s ESTIMATED CHANGES Modified Mathlib/GroupTheory/ArchimedeanDensely.lean + theorem LinearOrderedAddCommGroup.discrete_iff_not_denselyOrdered + theorem LinearOrderedCommGroup.discrete_iff_not_denselyOrdered + theorem LinearOrderedCommGroupWithZero.discrete_iff_not_denselyOrdered + theorem denselyOrdered_units_iff 2024-10-18 15:39:37 c5b97e2 feat(NumberTheory/NumberField/Basic): lemmas for extension of ring of integers (#17784) Add some lemmas and `instance`s for extension of number fields or ring of integers. ESTIMATED CHANGES Modified Mathlib/NumberTheory/NumberField/Basic.lean + theorem NumberField.RingOfIntegers.algebraMap.injective + theorem NumberField.RingOfIntegers.ker_algebraMap_eq_bot + theorem NumberField.of_module_finite + theorem NumberField.of_tower 2024-10-18 15:39:36 9e3fa1e feat(FieldTheory/Adjoin): add some results of `extendScalars` (#15238) - `extendScalars_{self|top|inf|sup}` for intermediate fields and subfields - also add `restrictScalars_{inf|sup}` and `bot_toSubfield` - add a missing helper lemma `toSubfield_injective` ESTIMATED CHANGES Modified Mathlib/FieldTheory/Adjoin.lean + theorem IntermediateField.bot_toSubfield + theorem IntermediateField.extendScalars_inf + theorem IntermediateField.extendScalars_self + theorem IntermediateField.extendScalars_sup + theorem IntermediateField.extendScalars_top + theorem IntermediateField.restrictScalars_inf + theorem IntermediateField.restrictScalars_sup +/- theorem IntermediateField.restrictScalars_top + theorem Subfield.extendScalars_inf + theorem Subfield.extendScalars_self + theorem Subfield.extendScalars_sup + theorem Subfield.extendScalars_top Modified Mathlib/FieldTheory/IntermediateField/Basic.lean +/- theorem IntermediateField.map_injective +/- theorem IntermediateField.toSubalgebra_injective + theorem IntermediateField.toSubfield_injective 2024-10-18 14:51:44 66fe0b7 doc(Simps): deduplicate clause (#17916) Both clauses were different before #8296 ESTIMATED CHANGES Modified Mathlib/Tactic/Simps/Basic.lean 2024-10-18 14:51:43 c289ac2 feat(RingTheory/Algebraic): add some results on `Transcendental` (#17867) - `transcendental_iff`, `transcendental_iff_ker_eq_bot`: similar to the API of `AlgebraicIndependent` - `IsAlgebraic.of_aeval`, `Transcendental.aeval`: behavior of transcendental over `aeval` - `Polynomial.transcendental`, `Polynomial.transcendental_X`: some specific polynomials are transcendental over its base ring - `Transcendental.linearIndependent_sub_inv`: if `E / F` is a field extension, `x` is an element of `E` transcendental over `F`, then `{(x - a)⁻¹ | a : F}` is linearly independent over `F` - `transcendental_algebraMap_iff`: negation of `isAlgebraic_algebraMap_iff` ESTIMATED CHANGES Modified Mathlib/RingTheory/Algebraic.lean + theorem IsAlgebraic.of_aeval + theorem Polynomial.transcendental + theorem Polynomial.transcendental_X + theorem Transcendental.aeval + theorem Transcendental.linearIndependent_sub_inv + theorem transcendental_algebraMap_iff + theorem transcendental_iff + theorem transcendental_iff_ker_eq_bot 2024-10-18 14:51:42 2a3ae36 feat (RingTheory/HahnSeries/Summable) : transport summable families along Equiv (#16872) This PR defines a new summable family given a summable family of Hahn series and an equivalence of parametrizing types. We show that the new family has the same formal sum as the old one. ESTIMATED CHANGES Modified Mathlib/RingTheory/HahnSeries/Summable.lean + def HahnSeries.SummableFamily.Equiv + theorem HahnSeries.SummableFamily.hsum_equiv +/- structure HahnSeries.SummableFamily 2024-10-18 14:18:26 344c0bb feat: a subgroup is `1` iff it's trivial (#17906) From LeanCamCombi ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Subgroup/Pointwise.lean + theorem coe_set_eq_one 2024-10-18 13:37:52 e84469b chore: do not use `· ≈ ·` in `Quotient.eq` (#17594) When `Setoid` is not an instance, we obviously want to avoid using `· ≈ ·`. Currently mathlib replicates the API around `Quotient.mk` for `Quotient.mk''`, but this is not needed because `Quotient.mk` doesn't use instance parameters now. After adjusting the API we can stop using `Quotient.mk''`. ESTIMATED CHANGES Modified Mathlib/Algebra/BigOperators/Group/Finset.lean Modified Mathlib/AlgebraicGeometry/EllipticCurve/Jacobian.lean Modified Mathlib/Data/Multiset/Basic.lean Modified Mathlib/Data/Quot.lean +/- theorem Quotient.eq + theorem Quotient.eq_iff_equiv Modified Mathlib/Data/Setoid/Basic.lean + theorem Setoid.sInf_iff Modified Mathlib/ModelTheory/DirectLimit.lean 2024-10-18 13:37:51 8f52063 chore: redefine `Nat.bitCasesOn` `Nat.binaryRec` (#15571) The new definitions of `Nat.bitCasesOn` and `Nat.binaryRec*` have better runtime performance. Also they have lighter weight dependencies now and may be upstreamed to `Batteries` later. ESTIMATED CHANGES Modified Mathlib/Data/Nat/Bits.lean +/- def Nat.binaryRec' +/- def Nat.binaryRec +/- def Nat.binaryRecFromOne +/- theorem Nat.binaryRec_eq' +/- theorem Nat.binaryRec_eq +/- theorem Nat.binaryRec_zero +/- def Nat.bitCasesOn +/- theorem Nat.bitCasesOn_bit0 +/- theorem Nat.bitCasesOn_bit1 +/- theorem Nat.bitCasesOn_bit +/- theorem Nat.bit_cases_on_inj +/- theorem Nat.bit_cases_on_injective + theorem Nat.bit_decide_mod_two_eq_one_shiftRight_one + theorem Nat.bit_div_two + theorem Nat.bit_shiftRight_one + theorem Nat.bit_testBit_zero_shiftRight_one + theorem Nat.shiftRight_one Modified Mathlib/Data/Nat/Bitwise.lean Modified Mathlib/Data/Nat/Size.lean 2024-10-18 12:42:54 6c837c7 chore: delete >1year old deprecations (#17903) ESTIMATED CHANGES Modified Mathlib/Algebra/BigOperators/Group/List.lean Modified Mathlib/Topology/Algebra/Module/Basic.lean Modified Mathlib/Topology/Separation.lean - theorem locally_compact_of_compact Modified Mathlib/Topology/UniformSpace/CompactConvergence.lean - theorem ContinuousMap.tendstoLocallyUniformly_of_tendsto 2024-10-18 11:08:02 a6bc4c5 chore: reorganize the `ContinuousOn` file (#17901) Before adding some API for `ContinuousWithinAt` to have it match the one for `DifferentiableWithinAt`, and `ContDiffWithinAt`, and manifold versions, I'd rather start from a clean file. The file was a mess of random things added at random places, I tried to make it coherent. Nothing has been added or removed, no name has been changed, pure shuffling around. ESTIMATED CHANGES Modified Mathlib/Topology/Constructions.lean + theorem frontier_inter_open_inter Modified Mathlib/Topology/ContinuousOn.lean - theorem frontier_inter_open_inter 2024-10-18 10:35:30 cbaeaf5 chore(Topology): deprecate `Homeomorph.toContinuousMap` (#17714) Use `_root_.toContinuousMap` instead. ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Measure/Content.lean Modified Mathlib/Topology/Category/TopCat/Basic.lean Modified Mathlib/Topology/ContinuousMap/Algebra.lean Modified Mathlib/Topology/ContinuousMap/Basic.lean - def Homeomorph.toContinuousMap Modified Mathlib/Topology/ContinuousMap/Compact.lean Modified Mathlib/Topology/ContinuousMap/ContinuousMapZero.lean Modified Mathlib/Topology/ContinuousMap/Defs.lean Modified Mathlib/Topology/ContinuousMap/Polynomial.lean Modified Mathlib/Topology/ContinuousMap/Weierstrass.lean Modified Mathlib/Topology/Homotopy/HomotopyGroup.lean Modified Mathlib/Topology/Sets/Opens.lean 2024-10-18 10:35:29 1cc3f60 chore(Order/RelIso/Set): golf `wellFounded_iff_wellFounded_subrel` (#17606) We also move it out of the initial segment file - it doesn't need that machinery to be proven. ESTIMATED CHANGES Modified Mathlib/Order/InitialSeg.lean - theorem wellFounded_iff_wellFounded_subrel Modified Mathlib/Order/RelIso/Set.lean + theorem Acc.of_subrel + theorem wellFounded_iff_wellFounded_subrel 2024-10-18 10:20:47 23752ee feat: the algebraic closure of an algebraic k-algebra is an algebraic closure of k (#17894) ESTIMATED CHANGES Modified Mathlib/FieldTheory/IsAlgClosed/AlgebraicClosure.lean 2024-10-18 09:52:34 fd77f31 chore(CategoryTheory): Make terminology for final functors consistent (#17895) Removes the remaining mentions of "cofinal functors". ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Limits/Final.lean - theorem CategoryTheory.Functor.cofinal_of_colimit_comp_coyoneda_iso_pUnit - theorem CategoryTheory.Functor.cofinal_of_isTerminal_colimit_comp_yoneda + theorem CategoryTheory.Functor.final_of_colimit_comp_coyoneda_iso_pUnit + theorem CategoryTheory.Functor.final_of_isTerminal_colimit_comp_yoneda Modified Mathlib/CategoryTheory/Limits/Presheaf.lean 2024-10-18 09:52:33 6338c73 fix: improve line-wrapping of (D)Finsupp reprs (#17882) These were previously wrapping very poorly. Also update tests to use `#guard_msgs` more effectively, and fix a typo in the delaborators for DFinsupp. ESTIMATED CHANGES Modified Mathlib/Data/DFinsupp/Notation.lean Modified Mathlib/Data/Finsupp/Notation.lean Modified test/dfinsupp_notation.lean Modified test/finsupp_notation.lean 2024-10-18 09:52:32 34f08fb feat: generalize results from EuclideanSpace to PiLp (#17663) The EuclideanSpace results are left in place for convenience. This generalizes leanprover-community/mathlib3#15363 ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/Calculus/ContDiff/WithLp.lean + theorem contDiffAt_piLp + theorem contDiffOn_piLp + theorem contDiffWithinAt_piLp + theorem contDiff_piLp Added Mathlib/Analysis/Calculus/FDeriv/WithLp.lean + theorem differentiableAt_piLp + theorem differentiableOn_piLp + theorem differentiableWithinAt_piLp + theorem differentiable_piLp + theorem hasFDerivWithinAt_piLp + theorem hasStrictFDerivAt_piLp Modified Mathlib/Analysis/InnerProductSpace/Calculus.lean +/- theorem contDiff_euclidean +/- theorem differentiable_euclidean Modified Mathlib/Analysis/InnerProductSpace/PiL2.lean - def EuclideanSpace.proj - def EuclideanSpace.projₗ Modified Mathlib/Analysis/Normed/Lp/PiLp.lean + def PiLp.proj + def PiLp.projₗ 2024-10-18 09:18:38 8e0ebee chore(*): fix some TODOs (#17891) Also drop an unneeded assumption in a lemma. ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Monoid/Unbundled/ExistsOfLE.lean +/- theorem le_iff_forall_one_lt_lt_mul' Modified Mathlib/Analysis/Calculus/ContDiff/Basic.lean Modified Mathlib/Analysis/Oscillation.lean Modified Mathlib/Data/Finset/Card.lean Modified Mathlib/Data/NNReal/Basic.lean Modified Mathlib/MeasureTheory/Integral/RieszMarkovKakutani.lean Modified Mathlib/Topology/MetricSpace/HausdorffDistance.lean 2024-10-18 09:18:37 3b5cedb feat(Topology): define `ContinuousEval{,Const}` classes (#17319) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Analysis/NormedSpace/Multilinear/Basic.lean - theorem ContinuousMultilinearMap.continuous_eval Modified Mathlib/Analysis/ODE/PicardLindelof.lean Modified Mathlib/Topology/Algebra/ContinuousMonoidHom.lean Modified Mathlib/Topology/Algebra/Module/Alternating/Topology.lean - theorem ContinuousAlternatingMap.continuous_coe_fun - theorem ContinuousAlternatingMap.continuous_eval_const Modified Mathlib/Topology/Algebra/Module/Multilinear/Topology.lean - theorem ContinuousMultilinearMap.continuous_coe_fun - theorem ContinuousMultilinearMap.continuous_eval_const Modified Mathlib/Topology/Algebra/Module/StrongTopology.lean + theorem UniformConvergenceCLM.continuousEvalConst Modified Mathlib/Topology/CompactOpen.lean - theorem ContinuousMap.continuous_eval - theorem ContinuousMap.continuous_eval_const Modified Mathlib/Topology/Connected/PathConnected.lean - theorem Path.continuous_eval Modified Mathlib/Topology/ContinuousMap/Algebra.lean + theorem ContinuousMap.hasProd_apply - theorem ContinuousMap.hasSum_apply + theorem ContinuousMap.multipliable_apply - theorem ContinuousMap.summable_apply + theorem ContinuousMap.tprod_apply - theorem ContinuousMap.tsum_apply Modified Mathlib/Topology/ContinuousMap/ContinuousMapZero.lean Added Mathlib/Topology/Hom/ContinuousEval.lean + theorem ContinuousEval.of_continuous_forget Added Mathlib/Topology/Hom/ContinuousEvalConst.lean + theorem ContinuousEvalConst.of_continuous_forget + theorem continuous_coeFun Modified Mathlib/Topology/Homotopy/HSpaces.lean Modified Mathlib/Topology/Homotopy/HomotopyGroup.lean Modified Mathlib/Topology/Homotopy/Path.lean 2024-10-18 09:18:36 ec349ba chore(PosPart): Make more lemmas simp (#17053) ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Group/PosPart.lean +/- theorem oneLePart_eq_one +/- theorem oneLePart_one 2024-10-18 08:51:13 6dca563 chore(MeasureTheory): use `Disjoint` (#17890) ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Function/ConditionalExpectation/CondexpL1.lean Modified Mathlib/MeasureTheory/Function/LpSpace.lean Modified Mathlib/MeasureTheory/Integral/Bochner.lean Modified Mathlib/MeasureTheory/Integral/SetToL1.lean 2024-10-18 08:51:11 1f26636 chore(Algebra/Module/Equiv/Defs): remove `FunLike` instance (#17477) ESTIMATED CHANGES Modified Mathlib/Algebra/Module/Equiv/Defs.lean 2024-10-18 07:51:31 672f75b refactor: rename `IsLocalRingHom` to `IsLocalHom` (#17403) Replace the `IsLocalRingHom` with `IsLocalHom`. Add instances for `IsLocalHom` in `CommRingCat` to resolve the problem caused by #6045. For a more detailed explanation of the problem, see https://github.com/leanprover-community/mathlib4/pull/17403#issuecomment-2418322525. Further golf some proof related to `IsLocalHom` instance search. ESTIMATED CHANGES Modified Mathlib/Algebra/Associated/Basic.lean Modified Mathlib/Algebra/Category/Ring/Constructions.lean + theorem CommRingCat.equalizer_ι_isLocalHom Modified Mathlib/Algebra/Category/Ring/Instances.lean + theorem CommRingCat.isLocalHom_comp + theorem isLocalHom_of_isIso + theorem isLocalHom_of_iso - theorem isLocalRingHom_of_iso Modified Mathlib/Algebra/Group/Units/Equiv.lean + theorem isLocalHom_equiv Modified Mathlib/Algebra/Group/Units/Hom.lean +/- theorem IsUnit.of_map + theorem MonoidHom.isLocalHom_comp + theorem MonoidHom.isLocalHom_of_comp - theorem MonoidHom.isLocalRingHom_of_comp + theorem isLocalHom_of_leftInverse + theorem isLocalHom_toMonoidHom - theorem isLocalRingHom_of_leftInverse +/- theorem isUnit_map_iff Modified Mathlib/Algebra/GroupWithZero/Units/Lemmas.lean + theorem isLocalHom_of_exists_map_ne_one - theorem isLocalRingHom_of_exists_map_ne_one Modified Mathlib/Algebra/Polynomial/Expand.lean + theorem Polynomial.isLocalHom_expand - theorem Polynomial.isLocalRingHom_expand Modified Mathlib/AlgebraicGeometry/AffineScheme.lean Modified Mathlib/AlgebraicGeometry/GammaSpecAdjunction.lean Modified Mathlib/AlgebraicGeometry/PrimeSpectrum/Basic.lean + theorem LocalRing.isLocalHom_iff_comap_closedPoint - theorem LocalRing.isLocalRingHom_iff_comap_closedPoint Modified Mathlib/AlgebraicGeometry/ProjectiveSpectrum/Scheme.lean Modified Mathlib/AlgebraicGeometry/ResidueField.lean Modified Mathlib/AlgebraicGeometry/Scheme.lean Modified Mathlib/AlgebraicGeometry/Spec.lean Modified Mathlib/AlgebraicGeometry/Stalk.lean Modified Mathlib/AlgebraicGeometry/StructureSheaf.lean Modified Mathlib/FieldTheory/Separable.lean Modified Mathlib/Geometry/RingedSpace/LocallyRingedSpace.lean + theorem AlgebraicGeometry.LocallyRingedSpace.isLocalHomStalkMap + theorem AlgebraicGeometry.LocallyRingedSpace.isLocalHomValStalkMap Modified Mathlib/Geometry/RingedSpace/LocallyRingedSpace/HasColimits.lean + theorem AlgebraicGeometry.LocallyRingedSpace.HasCoequalizer.coequalizer_π_app_isLocalHom + theorem AlgebraicGeometry.LocallyRingedSpace.HasCoequalizer.coequalizer_π_stalk_isLocalHom + theorem AlgebraicGeometry.LocallyRingedSpace.isLocalHom_stalkMap_congr - theorem AlgebraicGeometry.LocallyRingedSpace.isLocalRingHom_stalkMap_congr Modified Mathlib/Geometry/RingedSpace/LocallyRingedSpace/ResidueField.lean Modified Mathlib/Geometry/RingedSpace/OpenImmersion.lean Modified Mathlib/LinearAlgebra/ExteriorAlgebra/Basic.lean + theorem ExteriorAlgebra.isLocalHom_algebraMap Modified Mathlib/RingTheory/Henselian.lean + theorem isLocalHom_of_le_jacobson_bot - theorem isLocalRingHom_of_le_jacobson_bot Modified Mathlib/RingTheory/Ideal/Basic.lean Modified Mathlib/RingTheory/LocalRing/ResidueField/Basic.lean +/- def LocalRing.ResidueField.lift +/- def LocalRing.ResidueField.map +/- theorem LocalRing.ResidueField.map_comp +/- theorem LocalRing.ResidueField.map_comp_residue +/- theorem LocalRing.ResidueField.map_map +/- theorem LocalRing.ResidueField.map_residue + theorem LocalRing.isLocalHom_residue - theorem LocalRing.isLocalRingHom_residue Modified Mathlib/RingTheory/LocalRing/RingHom/Basic.lean + theorem RingHom.isLocalHom_comp + theorem isLocalHom_id + theorem isLocalHom_of_comp + theorem isLocalHom_toRingHom - theorem isLocalRingHom_of_comp +/- theorem map_nonunit Modified Mathlib/RingTheory/Localization/AtPrime.lean + theorem Localization.isLocalHom_localRingHom Modified Mathlib/RingTheory/MvPowerSeries/Inverse.lean + theorem MvPowerSeries.map.isLocalHom Modified Mathlib/RingTheory/PowerSeries/Inverse.lean + theorem PowerSeries.map.isLocalHom Modified Mathlib/RingTheory/SurjectiveOnStalks.lean + theorem RingHom.surjectiveOnStalks_iff_of_isLocalHom - theorem RingHom.surjectiveOnStalks_iff_of_isLocalRingHom Modified Mathlib/RingTheory/Valuation/ValExtension.lean + theorem IsValExtension.instIsLocalHomValuationInteger Modified Mathlib/RingTheory/Valuation/ValuationSubring.lean 2024-10-18 07:23:26 9b16c5d chore(Topology/Algebra/Order): move 2 files (#17879) These two files don't deal with algebra (groups, monoids etc); move them to `Topology/Order` instead. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Analysis/Calculus/LocalExtr/Rolle.lean Modified Mathlib/Topology/MetricSpace/Bounded.lean Modified Mathlib/Topology/MetricSpace/ProperSpace/Lemmas.lean Renamed Mathlib/Topology/Algebra/Order/Compact.lean to Mathlib/Topology/Order/Compact.lean Renamed Mathlib/Topology/Algebra/Order/Rolle.lean to Mathlib/Topology/Order/Rolle.lean Modified test/LibrarySearch/IsCompact.lean 2024-10-18 06:38:39 319d7a3 chore: move `NNRat` APIs earlier (#17269) No need to import bundled ordered algebraic typeclasses in `ring` tactic now. ESTIMATED CHANGES Modified Archive/Imo/Imo1998Q2.lean Modified Archive/Imo/Imo2013Q1.lean Modified Mathlib/Algebra/ContinuedFractions/ConvergentsEquiv.lean Modified Mathlib/Algebra/Field/Rat.lean + theorem NNRat.coe_div + theorem NNRat.coe_inv + theorem NNRat.den_inv_of_ne_zero + theorem NNRat.div_def + theorem NNRat.inv_def + theorem NNRat.num_div_den + theorem NNRat.num_inv_of_ne_zero Modified Mathlib/Algebra/Order/Field/Rat.lean - theorem NNRat.coe_div - theorem NNRat.coe_inv - theorem NNRat.den_inv_of_ne_zero - theorem NNRat.div_def - theorem NNRat.inv_def - theorem NNRat.num_inv_of_ne_zero Modified Mathlib/Algebra/Order/Module/Rat.lean Modified Mathlib/Algebra/Order/Star/Basic.lean Modified Mathlib/Data/FP/Basic.lean Modified Mathlib/Data/Finset/Density.lean Modified Mathlib/Data/NNRat/BigOperators.lean Modified Mathlib/Data/NNRat/Defs.lean Modified Mathlib/Data/NNRat/Lemmas.lean - theorem NNRat.num_div_den Modified Mathlib/Data/Nat/BitIndices.lean Modified Mathlib/Data/Rat/Cast/Defs.lean Modified Mathlib/Data/Rat/Cast/Lemmas.lean Modified Mathlib/Data/Rat/Cast/Order.lean Modified Mathlib/Data/Rat/Star.lean Modified Mathlib/Data/Real/Basic.lean Modified Mathlib/NumberTheory/Fermat.lean Modified Mathlib/Tactic/Polyrith.lean Modified Mathlib/Tactic/Ring/Basic.lean Modified test/cancel_denoms.lean Modified test/linear_combination'.lean Modified test/linear_combination.lean Modified test/module.lean Modified test/ring.lean 2024-10-18 05:56:05 5d0c527 feat(PathConnected): review API, add missing lemmas (#17855) ESTIMATED CHANGES Modified Mathlib/Analysis/Complex/UpperHalfPlane/Topology.lean Modified Mathlib/Analysis/Convex/Normed.lean Modified Mathlib/Topology/Connected/PathConnected.lean + theorem Inducing.joinedIn_image +/- theorem IsOpen.isConnected_iff_isPathConnected + theorem IsOpen.locPathConnectedSpace +/- theorem IsPathConnected.image + theorem JoinedIn.map + theorem JoinedIn.map_continuousOn + theorem LocPathConnectedSpace.of_bases + theorem OpenEmbedding.locPathConnectedSpace - theorem locPathConnected_of_bases - theorem locPathConnected_of_isOpen + theorem mem_pathComponent_iff + theorem pathComponent_eq_connectedComponent +/- theorem pathConnectedSpace_iff_connectedSpace +/- theorem pathConnected_subset_basis 2024-10-18 05:30:33 4358f93 feat(NumberTheory/FermatNumber): fermatNumber n + 2 (#17659) We provide a simple non-linear recurrence relation for the Fermat numbers. Since this involves subtraction, both Nat and Int versions are given. ESTIMATED CHANGES Modified Mathlib/NumberTheory/Fermat.lean + theorem Int.fermatNumber_eq_fermatNumber_sq_sub_two_mul_fermatNumber_sub_one_sq + theorem Nat.fermatNumber_eq_fermatNumber_sq_sub_two_mul_fermatNumber_sub_one_sq + theorem Nat.two_mul_fermatNumber_sub_one_sq_le_fermatNumber_sq 2024-10-18 04:24:41 1b9ced2 chore: cleanup of imports involving List.count (#17885) ESTIMATED CHANGES Modified Archive/MiuLanguage/DecisionNec.lean Modified Mathlib/Combinatorics/Enumerative/DyckWord.lean Modified Mathlib/Data/List/Count.lean 2024-10-18 04:24:40 077e0ef chore: move deprecated file Mathlib/Data/ByteArray into Mathlib/Deprecated (#17884) ESTIMATED CHANGES Modified Mathlib.lean Renamed Mathlib/Data/ByteArray.lean to Mathlib/Deprecated/ByteArray.lean Modified scripts/noshake.json 2024-10-18 03:51:31 fb09b71 chore: cleanup of pairwise imports (#17888) ESTIMATED CHANGES Modified Mathlib/Data/Fin/Basic.lean + theorem Fin.cast_lt_cast Modified Mathlib/Data/List/OfFn.lean 2024-10-18 02:46:57 1814dc4 refactor(Equiv/Set): use `Disjoint` (#17880) ... instead of `s ∩ t ⊆ ∅` in `Equiv.Set.union`. Also add `simps` to `Equiv.Set.univ`. ESTIMATED CHANGES Modified Mathlib/Data/Finset/Basic.lean Modified Mathlib/Data/Set/Card.lean Modified Mathlib/GroupTheory/Perm/Finite.lean Modified Mathlib/Logic/Equiv/Set.lean +/- theorem Equiv.Set.union_apply_left +/- theorem Equiv.Set.union_apply_right +/- theorem Equiv.Set.union_symm_apply_left +/- theorem Equiv.Set.union_symm_apply_right Modified Mathlib/SetTheory/Cardinal/Basic.lean 2024-10-18 01:51:14 3f9cdcd feat(Tactic/Linter/Lint): improve `dupNamespace` linter (#17631) Refactor the the way the ids are extracted for the `dupNamespace` linter. We also extract this to a new file in anticipation of re-using that function in another linter. The new version finds auto-generated names, such as `to_additive` names, but ignores "internal" names. Like the previous linter, it also supports `export` and `alias`. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Tactic.lean Added Mathlib/Tactic/DeclarationNames.lean + def Mathlib.Linter.getAliasSyntax + def Mathlib.Linter.getNamesFrom Modified Mathlib/Tactic/Linter/Lint.lean - def Mathlib.Linter.DupNamespaceLinter.getIds Modified test/Lint.lean 2024-10-18 00:49:50 f1ebf24 refactor: add `compactSpace_spectrum` and `spectrum_nonempty` fields to the `ContinuousFunctionalCalculus` (#17801) ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/Quasispectrum.lean + theorem quasispectrum.nonempty Modified Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Instances.lean Modified Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/NonUnital.lean Modified Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Order.lean Modified Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Restrict.lean Modified Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Unital.lean Modified Mathlib/Analysis/SpecialFunctions/ContinuousFunctionalCalculus/Rpow.lean Modified Mathlib/LinearAlgebra/Matrix/HermitianFunctionalCalculus.lean 2024-10-17 22:32:03 23a1a4b feat(AlgebraicGeometry): proper morphisms of schemes (#17863) We define proper morphisms of schemes and show standard stability properties. Partly from the valuative criterion project. Co-authored by: Andrew Yang ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/AlgebraicGeometry/Morphisms/ClosedImmersion.lean Modified Mathlib/AlgebraicGeometry/Morphisms/FiniteType.lean Added Mathlib/AlgebraicGeometry/Morphisms/Proper.lean + theorem AlgebraicGeometry.IsProper.stableUnderBaseChange + theorem AlgebraicGeometry.isProper_eq Modified Mathlib/AlgebraicGeometry/Morphisms/UniversallyClosed.lean 2024-10-17 20:59:58 389e097 chore(Algebra.Order.Monoid.TypeTags): split into unbundled and bundled ordered algebra (#16047) We move the unbundled ordered algebra results out of `Algebra.Order.Monoid.TypeTags` into `Algebra.Order.Monoid.Unbundled.TypeTags` to avoid importing bundled ordered algebra results unless necessary. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Order/Monoid/ToMulBot.lean Modified Mathlib/Algebra/Order/Monoid/TypeTags.lean - theorem Additive.ofMul_le - theorem Additive.ofMul_lt - theorem Additive.toMul_le - theorem Additive.toMul_lt - theorem Multiplicative.ofAdd_le - theorem Multiplicative.ofAdd_lt - theorem Multiplicative.toAdd_le - theorem Multiplicative.toAdd_lt Added Mathlib/Algebra/Order/Monoid/Unbundled/TypeTags.lean + theorem Additive.ofMul_le + theorem Additive.ofMul_lt + theorem Additive.toMul_le + theorem Additive.toMul_lt + theorem Multiplicative.ofAdd_le + theorem Multiplicative.ofAdd_lt + theorem Multiplicative.toAdd_le + theorem Multiplicative.toAdd_lt Modified Mathlib/Algebra/Order/SuccPred/TypeTags.lean 2024-10-17 20:35:01 34de726 feat: a nonarchimedean group is totally disconnected (#16687) Prove that a nonarchimedean group is a totally disconnected topological space. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Topology/Algebra/Nonarchimedean/TotallyDisconnected.lean + theorem NonarchimedeanGroup.exists_openSubgroup_separating 2024-10-17 20:34:59 78d236b feat(GroupTheory/GroupAction/Blocks): lemmas to handle blocks on finite sets (#14029) This PR proves specific properties of blocks when the action is on a finite set ESTIMATED CHANGES Modified Mathlib/GroupTheory/GroupAction/Blocks.lean + theorem MulAction.IsBlock.eq_univ_card_lt + theorem MulAction.IsBlock.ncard_block_eq_relindex + theorem MulAction.IsBlock.ncard_block_mul_ncard_orbit_eq + theorem MulAction.IsBlock.ncard_dvd_card + theorem MulAction.IsBlock.of_subset + theorem MulAction.IsBlock.subsingleton_of_card_lt - theorem MulAction.isBlock_top + theorem MulAction.isBlock_univ - theorem MulAction.isFixedBlock_top + theorem MulAction.isFixedBlock_univ Modified Mathlib/GroupTheory/Index.lean + theorem MulAction.index_stabilizer + theorem MulAction.index_stabilizer_of_transitive 2024-10-17 19:56:29 a4d283b feat(Order/BooleanAlgebra, Data/Set/Basic): diff_le_diff_iff (#17876) This PR adds a lemma stating that, for `x, y ≤ z` in a boolean algebra, we have `z \ x ≤ z \ y` iff `y ≤ x`. We also add the same lemma for sets/finsets. ESTIMATED CHANGES Modified Mathlib/Data/Finset/Basic.lean + theorem Finset.sdiff_subset_sdiff_iff_subset Modified Mathlib/Data/Set/Basic.lean + theorem Set.diff_subset_diff_iff_subset Modified Mathlib/Order/BooleanAlgebra.lean + theorem sdiff_le_sdiff_iff_le 2024-10-17 19:56:28 e355e86 chore: fix "proof was" porting notes (#17836) Go through all porting notes that contain the string "proof was" and try to fix them. The following steps were used: * Golf the new proof. * If the current proof is nicer, delete the note. * Try to restore the old proof. * Classify some of the old failing proofs. ESTIMATED CHANGES Modified Mathlib/Algebra/Category/ModuleCat/Subobject.lean Modified Mathlib/Algebra/Order/Group/Units.lean Modified Mathlib/Algebra/Order/Interval/Basic.lean Modified Mathlib/Algebra/Star/Subalgebra.lean +/- def StarAlgHom.equalizer Modified Mathlib/Analysis/Calculus/FDeriv/Measurable.lean Modified Mathlib/Data/List/OfFn.lean Modified Mathlib/Data/Tree/Basic.lean Modified Mathlib/FieldTheory/IsAlgClosed/AlgebraicClosure.lean Modified Mathlib/Geometry/Manifold/ChartedSpace.lean Modified Mathlib/LinearAlgebra/CliffordAlgebra/Equivs.lean Modified Mathlib/LinearAlgebra/CliffordAlgebra/EvenEquiv.lean Modified Mathlib/LinearAlgebra/LinearIndependent.lean Modified Mathlib/LinearAlgebra/SymplecticGroup.lean Modified Mathlib/MeasureTheory/Measure/Hausdorff.lean Modified Mathlib/Order/Hom/Lattice.lean Modified Mathlib/RepresentationTheory/Rep.lean Modified Mathlib/RingTheory/AdjoinRoot.lean Modified Mathlib/RingTheory/WittVector/IsPoly.lean Modified Mathlib/Topology/Algebra/Monoid.lean Modified Mathlib/Topology/Constructions.lean Modified Mathlib/Topology/FiberBundle/Constructions.lean 2024-10-17 19:56:27 bdecdcb chore: fix outdated `ext` porting notes (#17810) I went through all porting notes mentioning `ext` and fixed / removed those that no longer apply. ESTIMATED CHANGES Modified Mathlib/Algebra/Polynomial/Monomial.lean Modified Mathlib/AlgebraicGeometry/Limits.lean Modified Mathlib/CategoryTheory/EpiMono.lean Modified Mathlib/Data/Set/Image.lean Modified Mathlib/LinearAlgebra/Finsupp.lean Modified Mathlib/LinearAlgebra/Matrix/Adjugate.lean Modified Mathlib/LinearAlgebra/Matrix/Charpoly/LinearMap.lean Modified Mathlib/NumberTheory/Zsqrtd/Basic.lean Modified Mathlib/RepresentationTheory/Invariants.lean 2024-10-17 19:56:26 b2dddd4 feat: sum of iterated derivatives (#16886) This introduces `Polynomial.sumIDeriv`, the sum of the iterated derivatives of a polynomial, to be used in particular in the proof of the Lindemann-Weierstrass theorem (see #6718). Included are: * `Polynomial.sumIDeriv_apply`, `Polynomial.sumIDeriv_apply_of_lt`, `Polynomial.sumIDeriv_apply_of_le`: `Polynomial.sumIDeriv` expressed as a sum * `Polynomial.sumIDeriv_C`, `Polynomial.sumIDeriv_X`: `Polynomial.sumIDeriv` applied to simple polynomials * `Polynomial.sumIDeriv_map`: `Polynomial.sumIDeriv` commutes with `Polynomial.map` * `Polynomial.sumIDeriv_derivative`: `Polynomial.sumIDeriv` commutes with `Polynomial.derivative` * `Polynomial.sumIDeriv_eq_self_add`: `sumIDeriv p = p + sumIDeriv (derivative p)` * `Polynomial.exists_iterate_derivative_eq_factorial_smul`: the `k`'th iterated derivative of a polynomial has a common factor `k!` * `Polynomial.aeval_iterate_derivative_of_lt`, `Polynomial.aeval_iterate_derivative_self`, `Polynomial.aeval_iterate_derivative_of_ge`: applying `Polynomial.aeval` to iterated derivatives * `Polynomial.aeval_sumIDeriv`, `Polynomial.aeval_sumIDeriv_of_pos`: applying `Polynomial.aeval` to `Polynomial.sumIDeriv` ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Polynomial/Derivative.lean + theorem Polynomial.derivativeFinsupp_C + theorem Polynomial.derivativeFinsupp_X + theorem Polynomial.derivativeFinsupp_derivative + theorem Polynomial.derivativeFinsupp_map + theorem Polynomial.derivativeFinsupp_one + theorem Polynomial.iterate_derivative_eq_factorial_smul_sum + theorem Polynomial.iterate_derivative_eq_sum + theorem Polynomial.support_derivativeFinsupp_subset_range Added Mathlib/Algebra/Polynomial/SumIteratedDerivative.lean + theorem Polynomial.aeval_iterate_derivative_of_ge + theorem Polynomial.aeval_iterate_derivative_of_lt + theorem Polynomial.aeval_iterate_derivative_self + theorem Polynomial.aeval_sumIDeriv + theorem Polynomial.aeval_sumIDeriv_of_pos + theorem Polynomial.exists_iterate_derivative_eq_factorial_smul + theorem Polynomial.sumIDeriv_C + theorem Polynomial.sumIDeriv_X + theorem Polynomial.sumIDeriv_apply + theorem Polynomial.sumIDeriv_apply_of_le + theorem Polynomial.sumIDeriv_apply_of_lt + theorem Polynomial.sumIDeriv_derivative + theorem Polynomial.sumIDeriv_eq_self_add + theorem Polynomial.sumIDeriv_map 2024-10-17 19:04:10 4092287 feat: sufficient condition for a set of linear forms to span the dual space (#17548) Consider a reflexive module and a set `s` of linear forms. If for any `z ≠ 0` there exists `f ∈ s` such that `f z ≠ 0`, then `s` spans the whole dual space. ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/Dual.lean + theorem Submodule.span_eq_top_of_ne_zero 2024-10-17 19:04:09 e759b3b feat: UniqueFactorizationMonoid.factors_rel_of_associated (#17260) ESTIMATED CHANGES Modified Mathlib/RingTheory/Radical.lean + theorem Associated.primeFactors_eq Modified Mathlib/RingTheory/UniqueFactorizationDomain.lean + theorem Associated.normalizedFactors_eq + theorem UniqueFactorizationMonoid.factors_rel_of_associated 2024-10-17 17:56:40 9d883e2 feat(RingTheory/PowerSeries/WellKnown): changed `PowerSeries.invOneSubPow` (#17360) The definition of `PowerSeries.invOneSubPow` has been changed into the following: Given a commutative ring `S` and a number `d : ℕ`, `PowerSeries.invOneSubPow S d` is the multiplicative inverse of `(1 - X) ^ d` in `S⟦X⟧ˣ`. When `d` is `0`, `PowerSeries.invOneSubPow S d` will just be `1`. When `d` is positive, `PowerSeries.invOneSubPow S d` will be `∑ n, Nat.choose (d - 1 + n) (d - 1)`. ESTIMATED CHANGES Modified Mathlib/RingTheory/PowerSeries/WellKnown.lean + theorem PowerSeries.invOneSubPow_inv_eq_one_of_eq_zero - theorem PowerSeries.invOneSubPow_val_eq_mk_choose_add + theorem PowerSeries.invOneSubPow_val_eq_mk_sub_one_add_choose_of_pos + theorem PowerSeries.invOneSubPow_val_one_eq_invUnitSub_one + theorem PowerSeries.invOneSubPow_val_succ_eq_mk_add_choose - theorem PowerSeries.invOneSubPow_val_zero_eq_invUnitSub_one + theorem PowerSeries.invOneSubPow_zero + theorem PowerSeries.mk_add_choose_mul_one_sub_pow_eq_one 2024-10-17 16:19:09 c744def feat(Algebra/Module/Submodule): lemmas about `domRestrict` (#17806) From PFR ESTIMATED CHANGES Modified Mathlib/Algebra/Module/Submodule/Ker.lean + theorem LinearMap.ker_domRestrict Modified Mathlib/Algebra/Module/Submodule/Map.lean +/- theorem Submodule.comap_le_comap_iff_of_surjective + theorem Submodule.comap_lt_comap_iff_of_surjective Modified Mathlib/Algebra/Module/Submodule/Range.lean + theorem LinearMap.range_domRestrict 2024-10-17 16:19:08 d303807 chore: another removal of unused variables (#17790) ESTIMATED CHANGES Modified Mathlib/Algebra/Field/ULift.lean Modified Mathlib/Algebra/Group/Action/Basic.lean Modified Mathlib/Algebra/Group/Indicator.lean Modified Mathlib/Algebra/Group/Pi/Lemmas.lean Modified Mathlib/Algebra/Group/Submonoid/Defs.lean Modified Mathlib/Algebra/Group/Subsemigroup/Defs.lean Modified Mathlib/Algebra/GroupWithZero/Action/Basic.lean Modified Mathlib/Algebra/GroupWithZero/Action/Pi.lean Modified Mathlib/Algebra/Module/Defs.lean Modified Mathlib/Algebra/Module/Equiv/Defs.lean Modified Mathlib/Algebra/Module/LinearMap/Defs.lean Modified Mathlib/Algebra/Module/Pi.lean Modified Mathlib/Algebra/Module/Submodule/Range.lean Modified Mathlib/Algebra/Order/Interval/Set/Group.lean Modified Mathlib/Algebra/Order/Ring/Abs.lean Modified Mathlib/Algebra/Regular/SMul.lean Modified Mathlib/Algebra/Ring/Pi.lean Modified Mathlib/Algebra/Ring/Prod.lean Modified Mathlib/Analysis/InnerProductSpace/Symmetric.lean Modified Mathlib/Analysis/NormedSpace/OperatorNorm/Completeness.lean Modified Mathlib/Data/Fin/VecNotation.lean Modified Mathlib/Data/Int/Cast/Lemmas.lean Modified Mathlib/Data/Int/Lemmas.lean Modified Mathlib/Data/Int/Order/Lemmas.lean Modified Mathlib/Data/List/Perm.lean Modified Mathlib/Data/List/Sort.lean Modified Mathlib/Data/Nat/Cast/Order/Ring.lean Modified Mathlib/Dynamics/FixedPoints/Basic.lean Modified Mathlib/Geometry/Manifold/Algebra/LieGroup.lean Modified Mathlib/Geometry/Manifold/VectorBundle/SmoothSection.lean Modified Mathlib/GroupTheory/Congruence/Defs.lean Modified Mathlib/GroupTheory/CosetCover.lean Modified Mathlib/GroupTheory/DoubleCoset.lean Modified Mathlib/GroupTheory/GroupAction/Hom.lean Modified Mathlib/GroupTheory/NoncommPiCoprod.lean Modified Mathlib/GroupTheory/Sylow.lean Modified Mathlib/LinearAlgebra/Basis/Basic.lean Modified Mathlib/LinearAlgebra/FiniteDimensional/Defs.lean Modified Mathlib/MeasureTheory/Integral/Bochner.lean Modified Mathlib/Order/Bounds/Basic.lean Modified Mathlib/Order/CompleteLattice.lean Modified Mathlib/Order/GaloisConnection.lean Modified Mathlib/Order/PiLex.lean Modified Mathlib/RingTheory/Localization/Submodule.lean Modified Mathlib/Topology/Algebra/Module/Basic.lean 2024-10-17 15:41:55 d2ce997 chore(Analysis): remove unused variables (#17874) These were already unused on the master branch but became exposed to the linter after #17870 changed some `CoeFun` instances. ESTIMATED CHANGES Modified Mathlib/Analysis/Analytic/Basic.lean Modified Mathlib/Analysis/Analytic/Inverse.lean Modified Mathlib/Analysis/Calculus/IteratedDeriv/Defs.lean Modified Mathlib/Analysis/Normed/Algebra/TrivSqZeroExt.lean 2024-10-17 15:41:53 e007f8f feat(LinearAlgebra/Quotient): `(∀ a : M ⧸ p, P a) ↔ ∀ a : M, P ⟦a⟧` (#17808) From PFR ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/Quotient.lean 2024-10-17 15:41:52 0456b9a feat: `#s` as notation for `Finset.card s` (#17646) I believe it is time that we finally introduce this notation. This makes serious finset calculations significantly nicer (see eg #5297) and is standard notation. `|s|` would be an alternative, but absolute value elaboration is very complicated like that, so I would rather not, and `#{x | p x}` looks nicer than `|{x | p x}|` (although in return `|s ∩ t|` looks nicer than `#(s ∩ t)`). I am scoping the notation to the `Finset` namespace to avoid clashes with `Cardinal.mk`, which also uses that notation. ESTIMATED CHANGES Modified Mathlib/Data/Finset/Card.lean +/- theorem Finset.card_attach +/- theorem Finset.card_cons +/- theorem Finset.card_def +/- theorem Finset.card_disjUnion +/- theorem Finset.card_empty +/- theorem Finset.card_eq_one +/- theorem Finset.card_eq_succ +/- theorem Finset.card_eq_three +/- theorem Finset.card_eq_two +/- theorem Finset.card_eq_zero +/- theorem Finset.card_equiv +/- theorem Finset.card_erase_add_one +/- theorem Finset.card_erase_eq_ite +/- theorem Finset.card_erase_le +/- theorem Finset.card_erase_lt_of_mem +/- theorem Finset.card_erase_of_mem +/- theorem Finset.card_image_iff +/- theorem Finset.card_image_le +/- theorem Finset.card_image_of_injOn +/- theorem Finset.card_insert_eq_ite +/- theorem Finset.card_insert_le +/- theorem Finset.card_insert_of_mem +/- theorem Finset.card_insert_of_not_mem +/- theorem Finset.card_inter +/- theorem Finset.card_le_card +/- theorem Finset.card_le_card_of_surjOn +/- theorem Finset.card_le_card_sdiff_add_card +/- theorem Finset.card_le_five +/- theorem Finset.card_le_four +/- theorem Finset.card_le_one +/- theorem Finset.card_le_one_iff +/- theorem Finset.card_le_one_iff_subset_singleton +/- theorem Finset.card_le_one_iff_subsingleton_coe +/- theorem Finset.card_le_one_of_subsingleton +/- theorem Finset.card_le_six +/- theorem Finset.card_le_three +/- theorem Finset.card_le_two +/- theorem Finset.card_map +/- theorem Finset.card_mk +/- theorem Finset.card_ne_zero +/- theorem Finset.card_ne_zero_of_mem +/- theorem Finset.card_pair +/- theorem Finset.card_pair_eq_one_or_two +/- theorem Finset.card_pos +/- theorem Finset.card_range +/- theorem Finset.card_sdiff +/- theorem Finset.card_sdiff_add_card +/- theorem Finset.card_sdiff_add_card_eq_card +/- theorem Finset.card_sdiff_comm +/- theorem Finset.card_singleton +/- theorem Finset.card_singleton_inter +/- theorem Finset.card_union +/- theorem Finset.card_union_eq_card_add_card +/- theorem Finset.card_union_le +/- theorem Finset.card_val +/- theorem Finset.cast_card_sdiff +/- theorem Finset.eq_of_subset_of_card_le +/- theorem Finset.eq_of_superset_of_card_ge +/- theorem Finset.exists_intermediate_set +/- theorem Finset.exists_mem_ne +/- theorem Finset.exists_ne_map_eq_of_card_lt_of_maps_to +/- theorem Finset.exists_ne_of_one_lt_card +/- theorem Finset.exists_smaller_set +/- theorem Finset.exists_subset_card_eq +/- theorem Finset.exists_subsuperset_card_eq +/- theorem Finset.filter_card_eq +/- theorem Finset.injOn_of_card_image_eq +/- theorem Finset.le_card_iff_exists_subset_card +/- theorem Finset.le_card_sdiff +/- theorem Finset.length_toList +/- theorem Finset.one_le_card +/- theorem Finset.one_lt_card +/- theorem Finset.one_lt_card_iff +/- theorem Finset.one_lt_card_iff_nontrivial +/- theorem Finset.pred_card_le_card_erase +/- theorem Finset.subset_iff_eq_of_card_le +/- theorem Finset.two_lt_card +/- theorem Finset.two_lt_card_iff +/- theorem List.card_toFinset +/- theorem List.toFinset_card_le +/- theorem List.toFinset_card_of_nodup +/- theorem Multiset.card_toFinset +/- theorem Multiset.toFinset_card_le 2024-10-17 15:41:50 cbcf4ea feat(Analysis/Normed/Group/Ultra): triangle ineq for tsum & tprod (#17584) ESTIMATED CHANGES Modified Mathlib/Analysis/Normed/Group/Ultra.lean + theorem IsUltrametricDist.nnnorm_tprod_le + theorem IsUltrametricDist.nnnorm_tprod_le_of_forall_le + theorem IsUltrametricDist.norm_tprod_le + theorem IsUltrametricDist.norm_tprod_le_of_forall_le + theorem IsUltrametricDist.norm_tprod_le_of_forall_le_of_nonneg 2024-10-17 15:41:48 d9aad45 feat(CategoryTheory/Shift): shifted morphisms in the opposite category (#17546) When `C` is a triangulated category, we introduce a bijection `ShiftedHom.opEquiv` which identifies `X ⟶ Y⟦n⟧` and `op Y ⟶ (op X)⟦n⟧` for any objects `X` and `Y` in `C`, and `n : ℤ`. Along with the compatibilities that are obtained, this shall be the main ingredient in the construction of the (contravariant) long exact sequence of `Ext` in abelian categories #15092. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/CategoryTheory/Shift/Basic.lean + theorem CategoryTheory.shiftFunctorCompIsoId_add'_hom_app + theorem CategoryTheory.shiftFunctorCompIsoId_add'_inv_app + theorem CategoryTheory.shiftFunctorCompIsoId_zero_zero_hom_app + theorem CategoryTheory.shiftFunctorCompIsoId_zero_zero_inv_app Added Mathlib/CategoryTheory/Shift/ShiftedHomOpposite.lean + theorem CategoryTheory.ShiftedHom.opEquiv'_add_symm + theorem CategoryTheory.ShiftedHom.opEquiv'_apply + theorem CategoryTheory.ShiftedHom.opEquiv'_symm_add + theorem CategoryTheory.ShiftedHom.opEquiv'_symm_apply + theorem CategoryTheory.ShiftedHom.opEquiv'_symm_comp + theorem CategoryTheory.ShiftedHom.opEquiv'_symm_op_opShiftFunctorEquivalence_counitIso_inv_app_op_shift + theorem CategoryTheory.ShiftedHom.opEquiv'_zero_add_symm + theorem CategoryTheory.ShiftedHom.opEquiv_symm_add + theorem CategoryTheory.ShiftedHom.opEquiv_symm_apply + theorem CategoryTheory.ShiftedHom.opEquiv_symm_apply_comp + theorem CategoryTheory.ShiftedHom.opEquiv_symm_comp Modified Mathlib/CategoryTheory/Triangulated/Opposite.lean + theorem CategoryTheory.Pretriangulated.opShiftFunctorEquivalence_unitIso_hom_app_eq + theorem CategoryTheory.Pretriangulated.opShiftFunctorEquivalence_unitIso_inv_app_eq + theorem CategoryTheory.Pretriangulated.opShiftFunctorEquivalence_zero_unitIso_hom_app + theorem CategoryTheory.Pretriangulated.opShiftFunctorEquivalence_zero_unitIso_inv_app Modified Mathlib/CategoryTheory/Triangulated/Yoneda.lean + theorem CategoryTheory.Pretriangulated.preadditiveYoneda_homologySequenceδ_apply + theorem CategoryTheory.Pretriangulated.preadditiveYoneda_shiftMap_apply Modified Mathlib/Combinatorics/Quiver/Basic.lean + def Quiver.Hom.opEquiv 2024-10-17 15:41:47 2761682 chore(Profinite): remove simp lemma `toProfinite_obj` (#17155) ESTIMATED CHANGES Modified Mathlib/Condensed/Discrete/Colimit.lean Modified Mathlib/Topology/Category/LightProfinite/AsLimit.lean Modified Mathlib/Topology/Category/LightProfinite/Basic.lean Modified Mathlib/Topology/Category/Profinite/Basic.lean 2024-10-17 15:41:44 3ffd5e0 feat(MorphismProperty/Presheaf): Add properties of the `relative` morphism property (#16142) This PR adds some basic properties about the "presheaf" morphism property. For example, that it is stable under base change. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/MorphismProperty/Representable.lean + theorem CategoryTheory.MorphismProperty.presheaf_monomorphisms_le_monomorphisms + theorem CategoryTheory.MorphismProperty.relative_monotone + theorem CategoryTheory.MorphismProperty.relative_stableUnderBaseChange 2024-10-17 15:04:13 3f297f5 chore: remove porting notes about adding/removing `@[ext]` attributes (#17873) Discussed with @jcommelin and @kim-em. All of these porting notes are about the change in behaviour of the `ext` tactic and attribute between Lean 3 and Lean 4: in Lean 4 it only accepts lemmas with conclusion `x = y` with `x` and `y` free variables, and only applies these if the types are reducibly equal. Since those behaviours are not likely to change in the future, we don't need to keep these porting notes. I propose that we should keep #11041 since it indicates where these `ext` lemmas have not yet been added. Closes: #5229 Closes: #11182 ESTIMATED CHANGES Modified Mathlib/Algebra/Category/ModuleCat/Adjunctions.lean Modified Mathlib/Algebra/Group/AddChar.lean Modified Mathlib/Algebra/Homology/HomologicalComplex.lean Modified Mathlib/Algebra/Polynomial/Laurent.lean Modified Mathlib/AlgebraicTopology/SimplexCategory.lean Modified Mathlib/AlgebraicTopology/SimplicialSet/Basic.lean Modified Mathlib/AlgebraicTopology/SplitSimplicialObject.lean Modified Mathlib/CategoryTheory/Abelian/Pseudoelements.lean Modified Mathlib/CategoryTheory/Bicategory/NaturalTransformation/Oplax.lean Modified Mathlib/CategoryTheory/Comma/Basic.lean Modified Mathlib/CategoryTheory/Comma/StructuredArrow.lean Modified Mathlib/CategoryTheory/Elements.lean Modified Mathlib/CategoryTheory/Endomorphism.lean Modified Mathlib/CategoryTheory/Functor/Category.lean Modified Mathlib/CategoryTheory/Idempotents/Karoubi.lean Modified Mathlib/CategoryTheory/Iso.lean Modified Mathlib/CategoryTheory/Limits/Cones.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Biproducts.lean Modified Mathlib/CategoryTheory/Monoidal/Bimod.lean Modified Mathlib/CategoryTheory/Monoidal/Braided/Basic.lean Modified Mathlib/CategoryTheory/Monoidal/CommMon_.lean Modified Mathlib/CategoryTheory/Monoidal/Mod_.lean Modified Mathlib/CategoryTheory/Monoidal/Mon_.lean Modified Mathlib/CategoryTheory/Monoidal/NaturalTransformation.lean Modified Mathlib/CategoryTheory/MorphismProperty/IsInvertedBy.lean Modified Mathlib/CategoryTheory/Pi/Basic.lean Modified Mathlib/CategoryTheory/Preadditive/Mat.lean Modified Mathlib/CategoryTheory/Sites/Sheaf.lean Modified Mathlib/CategoryTheory/Subobject/Basic.lean Modified Mathlib/CategoryTheory/Yoneda.lean Modified Mathlib/Geometry/RingedSpace/PresheafedSpace.lean Modified Mathlib/Geometry/RingedSpace/SheafedSpace.lean Modified Mathlib/RepresentationTheory/Action/Basic.lean 2024-10-17 15:04:12 a70b960 feat: the filtration of cylinder events (#17858) The exterior σ-algebras of finite sets of `α` form a cofiltration indexed by `Finset α` From GibbsMeasure ESTIMATED CHANGES Modified Mathlib/Probability/Process/Filtration.lean + def MeasureTheory.Filtration.cylinderEventsCompl 2024-10-17 15:04:11 c9b6969 chore(CategoryTheory/Sites): add some tests for preserving sheafification (#17818) This PR adds a few tests to make sure that there are `PreservesSheafification` instances for the forgetful functor from modules to sets, for different size restrictions on the defining site. ESTIMATED CHANGES Added test/CategoryTheory/Sites/PreservesSheafification.lean 2024-10-17 15:04:10 0d150bc chore(CategoryTheory/Sites): add some tests for sheafcompose instances (#17817) This PR adds a few tests to make sure that there are `HasSheafCompose` instances for the forgetful functor from modules to sets, for different size restrictions on the defining site. ESTIMATED CHANGES Added test/CategoryTheory/Sites/Whiskering.lean 2024-10-17 15:04:08 1cfdb12 feat: Over a finite ring, a module is finite iff it is finite dimensional (#17707) From PFR ESTIMATED CHANGES Modified Mathlib/FieldTheory/AxGrothendieck.lean Modified Mathlib/FieldTheory/PrimitiveElement.lean Modified Mathlib/LinearAlgebra/FiniteDimensional/Defs.lean - theorem FiniteDimensional.finite_of_finite Modified Mathlib/RingTheory/Finiteness.lean + theorem Module.finite_iff_finite + theorem Module.finite_of_finite + theorem Set.Finite.submoduleSpan Modified Mathlib/RingTheory/LocalRing/ResidueField/Basic.lean 2024-10-17 15:04:07 f668524 feat: translating the graph of a homomorphism (#17647) From PFR ESTIMATED CHANGES Modified Mathlib/Data/Set/Pointwise/SMul.lean + theorem Set.smul_div_smul_comm + theorem Set.smul_graphOn + theorem Set.smul_graphOn_univ 2024-10-17 15:04:05 9dd0528 feat(GroupTheory/Coset/Basic): products, `leftRel` and `rightRel` (#17585) Add lemmas relating `leftRel` and `rightRel` for a (pairwise or indexed) product of subgroups to the corresponding products of setoids. From AperiodicMonotilesLean. ESTIMATED CHANGES Modified Mathlib/GroupTheory/Coset/Basic.lean + theorem QuotientGroup.leftRel_pi + theorem QuotientGroup.leftRel_prod + theorem QuotientGroup.rightRel_pi + theorem QuotientGroup.rightRel_prod 2024-10-17 15:04:04 10e0d7d feat: seminorms for the product topology (#17493) ESTIMATED CHANGES Modified Mathlib/Analysis/LocallyConvex/WithSeminorms.lean + theorem withSeminorms_pi 2024-10-17 15:04:03 cc8cf2f feat: add `--force` flag to shake (#17453) to disable the `lake build --no-build` step. There have been [reports](https://leanprover.zulipchat.com/#narrow/stream/113488-general/topic/.60lake.20build.20--no-build.60.20at.20.60v4.2E13.2E0-rc3.60.20is.20broken.3F/near/474875999) that this step is somewhat flaky, so this option gives people the ability to skip it without turning off `shake` entirely. ESTIMATED CHANGES Modified Shake/Main.lean 2024-10-17 15:04:01 cff08d5 chore(Order/Hom): let `gcongr` know about `OrderEmbedding` and `OrderIso` (#17224) From LeanAPAP ESTIMATED CHANGES Modified Mathlib/NumberTheory/NumberField/Discriminant.lean Modified Mathlib/Order/Hom/Basic.lean 2024-10-17 15:03:59 0b86556 chore(SetTheory/Game/Basic): fix docs (#17121) ESTIMATED CHANGES Modified Mathlib/SetTheory/Game/Basic.lean 2024-10-17 15:03:58 d0df635 feat(QuotientGroup,Ideal/Quotient): group is finite if quotient is finite (#15425) Does not actually require the subgroup to be normal Also provides a breakdown of the group as the disjoint indexed union of cosets ESTIMATED CHANGES Modified Mathlib/GroupTheory/Coset/Basic.lean + theorem QuotientGroup.orbit_eq_out'_smul + theorem QuotientGroup.orbit_mk_eq_smul + theorem QuotientGroup.univ_eq_iUnion_smul Modified Mathlib/GroupTheory/GroupAction/Basic.lean + theorem Finite.finite_mulAction_orbit + theorem Finite.of_finite_mulAction_orbitRel_quotient + theorem MulAction.univ_eq_iUnion_orbit Modified Mathlib/GroupTheory/QuotientGroup/Finite.lean + theorem Finite.of_finite_quot_finite_subgroup Modified Mathlib/RingTheory/Ideal/Quotient.lean + theorem Finite.of_finite_quot_finite_ideal + theorem Ideal.univ_eq_iUnion_image_add 2024-10-17 14:30:31 12a1544 chore: remove "CoeFun -> FunLike" porting/adaptation notes (#17871) We prefer `FunLike` over `CoeFun` if possible, so we don't care that we made that change during the port. See also #17870 for applying the change that was porting noted consistently across the entirety of Mathlib. ESTIMATED CHANGES Modified Mathlib/Algebra/Module/LinearMap/Defs.lean Modified Mathlib/Algebra/MvPolynomial/Basic.lean Modified Mathlib/Analysis/InnerProductSpace/PiL2.lean Modified Mathlib/LinearAlgebra/Multilinear/Basic.lean Modified Mathlib/NumberTheory/ArithmeticFunction.lean Modified Mathlib/Order/Heyting/Hom.lean Modified Mathlib/Order/Hom/CompleteLattice.lean Modified Mathlib/RingTheory/RingInvo.lean Modified Mathlib/Topology/Algebra/Module/Basic.lean Modified Mathlib/Topology/Category/TopCat/Basic.lean 2024-10-17 14:30:30 436ba3a chore: remove "instance was not necessary" porting notes (issue #10670) (#17866) Discussed with @kim-em. These instances are now necessary because instance synthesis now searches with the full discrimination tree, so mismatches in the arguments to instances are scrutinized much harder. This is not likely to be reverted in the future, so the instances remain required. There were a few further occurrences of #10670 for Grp, see e.g. [Grp.instCoeFunHomForallαGroup](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Algebra/Category/Grp/Basic.html#Grp.instCoeFunHomForall%CE%B1Group). These do look like they are unnecessary but removing them breaks a lot of downstream proofs. (I think it's something to do with `coe_of` unfolding `of` causing a mismatch between the expected types, but it's a bit too subtle to deal with easily.) I'll leave those porting notes for the meantime. We need a big refactor cleaning up the concrete category bits of the library anyway. ESTIMATED CHANGES Modified Mathlib/Algebra/Category/Grp/Basic.lean Modified Mathlib/Algebra/Category/Grp/Preadditive.lean Modified Mathlib/Geometry/RingedSpace/Basic.lean Modified Mathlib/Order/Category/NonemptyFinLinOrd.lean 2024-10-17 14:30:28 5828256 feat: Lagrange's theorem for the pointwise product of a subgroup with a set (#17680) From LeanCamCombi ESTIMATED CHANGES Modified Mathlib/GroupTheory/Coset/Card.lean + theorem Subgroup.card_mul_eq_card_subgroup_mul_card_quotient 2024-10-17 14:30:27 e2b8909 chore: don't export `GroupWithZero.inv_zero` (#17465) Exporting makes it not show as `inv_zero` in the docs search results, meaning it's very non-discoverable. See https://github.com/leanprover/doc-gen4/issues/222. ESTIMATED CHANGES Modified Mathlib/Algebra/GroupWithZero/Defs.lean + theorem inv_zero 2024-10-17 14:30:25 d82cdbf feat(RingTheory/Smooth): Smoothness of product rings. (#15131) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Algebra/Pi.lean + def Pi.algHom Modified Mathlib/RingTheory/Ideal/QuotientOperations.lean + theorem Ideal.ker_quotientMap_mk Added Mathlib/RingTheory/Smooth/Pi.lean + theorem Algebra.FormallySmooth.of_pi + theorem Algebra.FormallySmooth.pi_iff 2024-10-17 14:00:37 4dfa80d feat: Polynomial.degree_prod_of_monic (#17330) ESTIMATED CHANGES Modified Mathlib/Algebra/Polynomial/BigOperators.lean + theorem Polynomial.degree_multiset_prod_of_monic + theorem Polynomial.degree_prod_of_monic 2024-10-17 13:44:43 090e243 feat: `PosSMulMono ℚ α → PosSMulMono ℚ≥0 α` (#17217) From LeanAPAP ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Module/Rat.lean 2024-10-17 13:07:54 8306205 chore: update Mathlib dependencies 2024-10-17 (#17865) This PR updates the Mathlib dependencies. ESTIMATED CHANGES Modified lake-manifest.json 2024-10-17 13:07:53 a0d3126 feat(RingTheory/Kaehler): the first homology of the cotangent complex (#17559) ESTIMATED CHANGES Modified Mathlib/RingTheory/Kaehler/CotangentComplex.lean + def Algebra.Generators.H1Cotangent.equiv + def Algebra.Generators.H1Cotangent.map + theorem Algebra.Generators.H1Cotangent.map_comp + theorem Algebra.Generators.H1Cotangent.map_eq + theorem Algebra.Generators.H1Cotangent.map_id + theorem Algebra.Generators.H1Cotangent.val_add + theorem Algebra.Generators.H1Cotangent.val_smul + theorem Algebra.Generators.H1Cotangent.val_zero + def Algebra.Generators.H1Cotangent + def Algebra.Generators.h1Cotangentι + theorem Algebra.Generators.h1Cotangentι_ext + theorem Algebra.Generators.h1Cotangentι_injective + theorem Algebra.Generators.subsingleton_h1Cotangent + def Algebra.H1Cotangent.map 2024-10-17 13:07:51 0c022ea feat (RingTheory/HahnSeries) : coefficient-wise map (#16164) This PR introduces `HahnSeries.map` which applies a zero-preserving map to each coefficient. We more or less copy the `Polynomial.map` API. ESTIMATED CHANGES Modified Mathlib/RingTheory/HahnSeries/Addition.lean Modified Mathlib/RingTheory/HahnSeries/Basic.lean +/- def HahnSeries.iterateEquiv + def HahnSeries.map +/- def HahnSeries.ofIterate +/- def HahnSeries.toIterate Modified Mathlib/RingTheory/HahnSeries/Multiplication.lean + theorem HahnSeries.map_C Modified Mathlib/RingTheory/HahnSeries/PowerSeries.lean 2024-10-17 12:44:27 fa6b249 chore(LinearAlgebra/LinearIndependent): generalize a section from rings to semirings (#17864) ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/LinearIndependent.lean 2024-10-17 12:44:26 9266f86 feat(RingTheory/Flat/FaithfullyFlat): definition of faithfully flat module (#17805) 1. $M$ is $R$-faithfully flat iff $M$ is flat and $IM \ne M$ for all maximal ideal $I \le R$ 2. prove that this is equivalent to that $M$ is flat and $M \otimes N \ne 0$ whenever $N \ne 0$ ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/RingTheory/Flat/FaithfullyFlat.lean + theorem Module.FaithfullyFlat.iff_flat_and_ideal_smul_eq_top + theorem Module.FaithfullyFlat.iff_flat_and_lTensor_faithful + theorem Module.FaithfullyFlat.iff_flat_and_lTensor_reflects_triviality + theorem Module.FaithfullyFlat.iff_flat_and_proper_ideal + theorem Module.FaithfullyFlat.iff_flat_and_rTensor_faithful + theorem Module.FaithfullyFlat.iff_flat_and_rTensor_reflects_triviality + theorem Module.FaithfullyFlat.lTensor_reflects_triviality + theorem Module.FaithfullyFlat.rTensor_reflects_triviality 2024-10-17 11:36:59 dc52856 feat(Algebraize): Fix algebraize tactic (#17839) This fixes algebraize tactic to work better when it is pointing to a (possibly custom) constructor/theorem giving the algebra property from the corresponding ringhom property. As an application we apply this to the new `IsStandardSmooth`, `RingHom` property. ESTIMATED CHANGES Modified Mathlib/RingTheory/RingHom/StandardSmooth.lean + theorem RingHom.IsStandardSmooth.toAlgebra + theorem RingHom.IsStandardSmoothOfRelativeDimension.toAlgebra Modified Mathlib/Tactic/Algebraize.lean Modified test/algebraize.lean + def RingHom.testProperty4 + theorem testProperty4.toAlgebra 2024-10-17 11:36:58 7d50a88 feat(Algebra): integralClosure as IntermediateField (#14206) + Add lemmas about integrality and membership in an subalgebra of inverse elements. + As a consequence, show the integral closure of a field in a division ring is an intermediate field `IntermediateField.algClosure`. + Golf some lemmas along the way. ESTIMATED CHANGES Modified Mathlib/FieldTheory/Adjoin.lean +/- theorem IntermediateField.adjoin_le_iff Modified Mathlib/FieldTheory/IntermediateField/Algebraic.lean + theorem IntermediateField.coe_isIntegral_iff +/- theorem IntermediateField.isIntegral_iff + def Subalgebra.IsAlgebraic.toIntermediateField + def algebraicClosure Modified Mathlib/FieldTheory/IntermediateField/Basic.lean - theorem IntermediateField.coe_isIntegral_iff Modified Mathlib/FieldTheory/PurelyInseparable.lean Modified Mathlib/LinearAlgebra/FiniteDimensional/Defs.lean + theorem FiniteDimensional.isUnit Modified Mathlib/RingTheory/Algebraic.lean Modified Mathlib/RingTheory/IntegralClosure/Algebra/Basic.lean + theorem AlgEquiv.isIntegral_iff +/- theorem Algebra.IsIntegral.of_injective +/- theorem IsIntegral.of_mem_of_fg + theorem Subalgebra.isIntegral_iff Modified Mathlib/RingTheory/IntegralClosure/IsIntegralClosure/Basic.lean + theorem Algebra.IsIntegral.adjoin + theorem Algebra.IsIntegral.inv_mem + theorem Algebra.isIntegral_iSup + theorem IsIntegral.inv + theorem IsIntegral.inv_mem + theorem IsIntegral.inv_mem_adjoin + theorem IsIntegral.isUnit + theorem IsIntegral.mem_of_inv_mem + theorem IsIntegralClosure.isField + theorem integralClosure_eq_top_iff +/- theorem isField_of_isIntegral_of_isField' 2024-10-17 11:30:00 d51a8c9 feat(LinearAlgebra/TensorProduct/Quotient): add some isomorphisms (#17803) Moves: - quotTensorEquivQuotSMul -> TensorProduct.quotTensorEquivQuotSMul - tensorQuotEquivQuotSMul -> TensorProduct.tensorQuotEquivQuotSMul ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/LinearAlgebra/TensorProduct/Quotient.lean + theorem TensorProduct.quotTensorEquivQuotSMul_comp_mk + theorem TensorProduct.quotTensorEquivQuotSMul_comp_mkQ_rTensor + theorem TensorProduct.quotTensorEquivQuotSMul_mk_tmul + theorem TensorProduct.quotTensorEquivQuotSMul_symm_comp_mkQ + theorem TensorProduct.quotTensorEquivQuotSMul_symm_mk + theorem TensorProduct.quotientTensorEquiv_apply_tmul_mk + theorem TensorProduct.quotientTensorEquiv_symm_apply_mk_tmul + theorem TensorProduct.quotientTensorQuotientEquiv_apply_tmul_mk_tmul_mk + theorem TensorProduct.quotientTensorQuotientEquiv_symm_apply_mk_tmul + theorem TensorProduct.tensorQuotEquivQuotSMul_comp_mk + theorem TensorProduct.tensorQuotEquivQuotSMul_comp_mkQ_lTensor + theorem TensorProduct.tensorQuotEquivQuotSMul_symm_comp_mkQ + theorem TensorProduct.tensorQuotEquivQuotSMul_symm_mk + theorem TensorProduct.tensorQuotEquivQuotSMul_tmul_mk + theorem TensorProduct.tensorQuotientEquiv_apply_mk_tmul + theorem TensorProduct.tensorQuotientEquiv_symm_apply_tmul_mk Modified Mathlib/LinearAlgebra/TensorProduct/RightExactness.lean - theorem quotTensorEquivQuotSMul_comp_mk - theorem quotTensorEquivQuotSMul_comp_mkQ_rTensor - theorem quotTensorEquivQuotSMul_mk_tmul - theorem quotTensorEquivQuotSMul_symm_comp_mkQ - theorem quotTensorEquivQuotSMul_symm_mk - theorem tensorQuotEquivQuotSMul_comp_mk - theorem tensorQuotEquivQuotSMul_comp_mkQ_lTensor - theorem tensorQuotEquivQuotSMul_symm_comp_mkQ - theorem tensorQuotEquivQuotSMul_symm_mk - theorem tensorQuotEquivQuotSMul_tmul_mk Modified Mathlib/RingTheory/QuotSMulTop.lean 2024-10-17 10:54:51 d951eef feat(AlgebraicGeometry): stability properties of separated (#17861) Separated is multiplicative, stable under base change and local at the target. ESTIMATED CHANGES Modified Mathlib/AlgebraicGeometry/Morphisms/Separated.lean + theorem AlgebraicGeometry.IsSeparated.stableUnderBaseChange 2024-10-17 09:39:30 035f251 chore: clean up "was rw" porting notes (#17822) If they can be fixed, do so. If they are about changing `rw` to `erw`, refer to #11224 instead. Otherwise, only keep the note if the new proof is actually less idiomatic. None of the original "was rw" notes remain, so: Closes: #10691 ESTIMATED CHANGES Modified Mathlib/Algebra/MonoidAlgebra/Defs.lean Modified Mathlib/Algebra/Order/ToIntervalMod.lean Modified Mathlib/Algebra/Polynomial/Laurent.lean Modified Mathlib/AlgebraicGeometry/OpenImmersion.lean Modified Mathlib/Data/DFinsupp/Interval.lean Modified Mathlib/LinearAlgebra/Alternating/DomCoprod.lean Modified Mathlib/LinearAlgebra/CliffordAlgebra/EvenEquiv.lean Modified Mathlib/Probability/Kernel/MeasurableIntegral.lean Modified Mathlib/RingTheory/Localization/Ideal.lean 2024-10-17 09:39:28 c199a0e feat(AlgebraicGeometry): closed immersions with affine target (#15038) Shows that closed immersions are affine morphisms inducing affine locally surjective maps on sections. ESTIMATED CHANGES Modified Mathlib/Algebra/Category/Ring/Basic.lean + theorem CategoryTheory.Iso.commRingIsoToRingEquiv_apply + theorem CategoryTheory.Iso.commRingIsoToRingEquiv_symm_apply Modified Mathlib/Algebra/GroupWithZero/Basic.lean + theorem pow_mul_eq_zero_of_le Modified Mathlib/AlgebraicGeometry/AffineScheme.lean + theorem AlgebraicGeometry.IsAffineOpen.stalkMap_injective + theorem AlgebraicGeometry.stalkMap_injective_of_isAffine Modified Mathlib/AlgebraicGeometry/Morphisms/ClosedImmersion.lean + theorem AlgebraicGeometry.IsClosedImmersion.isAffine_surjective_of_isAffine + theorem AlgebraicGeometry.IsClosedImmersion.isIso_of_injective_of_isAffine + theorem AlgebraicGeometry.IsClosedImmersion.stableUnderBaseChange + theorem AlgebraicGeometry.stalkMap_injective_of_isOpenMap_of_injective + theorem AlgebraicGeometry.surjective_of_isClosed_range_of_injective Modified Mathlib/AlgebraicGeometry/Morphisms/QuasiCompact.lean + theorem AlgebraicGeometry.Scheme.isNilpotent_iff_basicOpen_eq_bot + theorem AlgebraicGeometry.Scheme.zeroLocus_eq_top_iff_subset_nilradical Modified Mathlib/AlgebraicGeometry/Morphisms/QuasiSeparated.lean + theorem AlgebraicGeometry.exists_of_res_eq_of_qcqs + theorem AlgebraicGeometry.exists_of_res_eq_of_qcqs_of_top + theorem AlgebraicGeometry.exists_of_res_zero_of_qcqs + theorem AlgebraicGeometry.exists_of_res_zero_of_qcqs_of_top Modified Mathlib/AlgebraicGeometry/ResidueField.lean + theorem AlgebraicGeometry.Scheme.basicOpen_eq_bot_iff_forall_evaluation_eq_zero + theorem AlgebraicGeometry.Scheme.Γevaluation_naturality + theorem AlgebraicGeometry.Scheme.Γevaluation_naturality_apply Modified Mathlib/AlgebraicGeometry/Scheme.lean + theorem AlgebraicGeometry.germ_eq_zero_of_pow_mul_eq_zero Modified Mathlib/Geometry/RingedSpace/Basic.lean + theorem AlgebraicGeometry.RingedSpace.exists_res_eq_zero_of_germ_eq_zero + theorem AlgebraicGeometry.RingedSpace.res_zero Modified Mathlib/Geometry/RingedSpace/LocallyRingedSpace/ResidueField.lean + theorem AlgebraicGeometry.LocallyRingedSpace.basicOpen_eq_bot_iff_forall_evaluation_eq_zero Modified Mathlib/RingTheory/Localization/Defs.lean + theorem IsLocalization.injective_iff_map_algebraMap_eq + theorem IsLocalization.injective_of_map_algebraMap_zero Modified Mathlib/Topology/Category/TopCat/Basic.lean + theorem TopCat.isIso_of_bijective_of_isClosedMap + theorem TopCat.isIso_of_bijective_of_isOpenMap Modified Mathlib/Topology/Homeomorph.lean + def Homeomorph.homeomorphOfContinuousClosed 2024-10-17 09:39:27 d8ceed5 feat(AlgebraicGeometry): smooth morphisms of schemes (#14161) We say a morphism of schemes is smooth (of relative dimension `n`) if for every point of the source there exist affine open neighborhoods of the point and its image such that the induced ring map is standard smooth (of relative dimension `n`). These notions are local on the source and the target and satisfy the standard stability properties. This contribution was created as part of the AIM workshop "Formalizing algebraic geometry" in June 2024. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/AlgebraicGeometry/Morphisms/RingHomProperties.lean + theorem AlgebraicGeometry.HasRingHomProperty.locally_of_iff + theorem AlgebraicGeometry.exists_affineOpens_le_appLE_of_appLE + theorem AlgebraicGeometry.exists_basicOpen_le_appLE_of_appLE_of_isAffine Added Mathlib/AlgebraicGeometry/Morphisms/Smooth.lean + theorem AlgebraicGeometry.IsSmoothOfRelativeDimension.isSmooth + theorem AlgebraicGeometry.isSmoothOfRelativeDimension_stableUnderBaseChange + theorem AlgebraicGeometry.isSmooth_stableUnderBaseChange 2024-10-17 09:17:43 402539e feat(Topology): set of generic points of generic components (#15407) ESTIMATED CHANGES Modified Mathlib/AlgebraicGeometry/FunctionField.lean Modified Mathlib/Topology/Irreducible.lean + theorem irreducibleComponents_eq_singleton Modified Mathlib/Topology/Sober.lean + theorem IsIrreducible.closure_genericPoint - theorem IsIrreducible.genericPoint_spec + theorem IsIrreducible.isGenericPoint_genericPoint + theorem IsIrreducible.isGenericPoint_genericPoint_closure + theorem genericPoints.closure + def genericPoints.component + theorem genericPoints.component_injective + theorem genericPoints.component_ofComponent + theorem genericPoints.component_surjective + def genericPoints.equiv + theorem genericPoints.finite + theorem genericPoints.isGenericPoint + theorem genericPoints.isGenericPoint_ofComponent + def genericPoints.ofComponent + theorem genericPoints.ofComponent_component + def genericPoints + theorem genericPoints_eq_singleton 2024-10-17 08:51:31 c1d3ebd chore: clean up "was simp" porting notes (#17827) Go through all the files with porting notes along the lines of "was `simp`", "was `simp_rw`", "used to be `simp`" and try to: * Restore original, if possible; * Use another cleaner way to solve the issue; * Delete the note if it's not worth going back to the old version; * Renumber the note if it's a more applicable issue (#11119 in particular); * Or not touch the note if it's still relevant. ESTIMATED CHANGES Modified Mathlib/Algebra/Category/ModuleCat/Adjunctions.lean Modified Mathlib/Algebra/Module/LinearMap/Prod.lean Modified Mathlib/Algebra/Polynomial/Coeff.lean Modified Mathlib/Analysis/Calculus/Implicit.lean Modified Mathlib/Analysis/Normed/Group/AddTorsor.lean Modified Mathlib/Analysis/Normed/Lp/PiLp.lean Modified Mathlib/Analysis/RCLike/Basic.lean Modified Mathlib/Data/Finsupp/AList.lean Modified Mathlib/Data/Seq/WSeq.lean Modified Mathlib/Geometry/Euclidean/Angle/Oriented/Basic.lean Modified Mathlib/Geometry/Euclidean/MongePoint.lean Modified Mathlib/GroupTheory/Perm/Fin.lean Modified Mathlib/LinearAlgebra/AffineSpace/Combination.lean Modified Mathlib/LinearAlgebra/Alternating/Basic.lean Modified Mathlib/LinearAlgebra/CliffordAlgebra/Grading.lean Modified Mathlib/LinearAlgebra/Determinant.lean Modified Mathlib/LinearAlgebra/Isomorphisms.lean Modified Mathlib/MeasureTheory/Constructions/Prod/Integral.lean Modified Mathlib/MeasureTheory/Group/Integral.lean Modified Mathlib/NumberTheory/Cyclotomic/PrimitiveRoots.lean Modified Mathlib/RingTheory/DedekindDomain/PID.lean Modified Mathlib/RingTheory/DedekindDomain/SInteger.lean Modified Mathlib/SetTheory/Cardinal/Basic.lean Modified Mathlib/Topology/Algebra/Module/Basic.lean Modified Mathlib/Topology/Instances/AddCircle.lean 2024-10-17 08:51:30 7b3af7e chore: adjust set_range_forget_map_inclusion' to the statement that is really needed (#17278) ESTIMATED CHANGES Modified Mathlib/Topology/Category/TopCat/Opens.lean - theorem TopologicalSpace.Opens.set_range_forget_map_inclusion' + theorem TopologicalSpace.Opens.set_range_inclusion' Modified scripts/no_lints_prime_decls.txt 2024-10-17 08:31:08 ffb2f0d feat: add `Module.finrank_quotient_add_finrank_le` (#17782) ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/Dimension/Finite.lean + theorem Module.finrank_quotient_add_finrank_le Modified Mathlib/LinearAlgebra/Dimension/StrongRankCondition.lean 2024-10-17 08:31:07 9800ff6 feat(LinearAlgebra/Matrix): characterize ideals in matrix rings (#17750) - Define left and two-sided ideals in a matrix ring. - Show that two-sided matrix ideals are order-isomorphic to two-sided ideals in the base ring. This code is taken from FLT, from [here](https://github.com/ImperialCollegeLondon/FLT/blob/daac491a4fa817ec39595e0a5ce2240ceed940fc/FLT/for_mathlib/CrazySimple.lean). ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/LinearAlgebra/Matrix/Ideal.lean + def Ideal.matricesOver + theorem Ideal.matricesOver_bot + theorem Ideal.matricesOver_monotone + theorem Ideal.matricesOver_strictMono_of_nonempty + theorem Ideal.matricesOver_top + theorem Ideal.mem_matricesOver + theorem TwoSidedIdeal.asIdeal_matricesOver + def TwoSidedIdeal.equivMatricesOver + def TwoSidedIdeal.matricesOver + theorem TwoSidedIdeal.matricesOver_bot + theorem TwoSidedIdeal.matricesOver_monotone + theorem TwoSidedIdeal.matricesOver_strictMono_of_nonempty + theorem TwoSidedIdeal.matricesOver_top + theorem TwoSidedIdeal.mem_matricesOver + def TwoSidedIdeal.orderIsoMatricesOver 2024-10-17 08:31:05 b1ec18a feat(CategoryTheory/Sites): pretopology induced by a morphism property (#17736) Introduces the pretopology induced by a morphism property satisfying sufficient stability properties. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/CategoryTheory/MorphismProperty/Composition.lean + theorem CategoryTheory.MorphismProperty.isomorphisms_le_of_containsIdentities + theorem CategoryTheory.MorphismProperty.of_isIso Modified Mathlib/CategoryTheory/MorphismProperty/Limits.lean + theorem CategoryTheory.MorphismProperty.StableUnderBaseChange.inf + theorem CategoryTheory.MorphismProperty.StableUnderCobaseChange.inf Added Mathlib/CategoryTheory/Sites/MorphismProperty.lean + def CategoryTheory.MorphismProperty.pretopology + theorem CategoryTheory.MorphismProperty.pretopology_inf + theorem CategoryTheory.MorphismProperty.pretopology_le 2024-10-17 08:31:04 c41f54d feat: generalise `LieModule.independent_genWeightSpace` to any family of compatible endomorphisms (#17654) Also create new file to group together results about simultaneous (generalised) eigenspaces. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Lie/Weights/Basic.lean Modified Mathlib/LinearAlgebra/Eigenspace/Basic.lean - theorem Module.End.iInf_maxGenEigenspace_restrict_map_subtype_eq - theorem Submodule.inf_iInf_maxGenEigenspace_of_forall_mapsTo Added Mathlib/LinearAlgebra/Eigenspace/Pi.lean + theorem Module.End.disjoint_iInf_maxGenEigenspace + theorem Module.End.iInf_maxGenEigenspace_restrict_map_subtype_eq + theorem Module.End.iSup_iInf_maxGenEigenspace_eq_top_of_forall_mapsTo + theorem Module.End.independent_iInf_maxGenEigenspace_of_forall_mapsTo + theorem Module.End.injOn_iInf_maxGenEigenspace + theorem Module.End.mem_iInf_maxGenEigenspace_iff + theorem Submodule.inf_iInf_maxGenEigenspace_of_forall_mapsTo Modified Mathlib/LinearAlgebra/Eigenspace/Triangularizable.lean - theorem Module.End.iSup_iInf_maxGenEigenspace_eq_top_of_forall_mapsTo 2024-10-17 08:31:03 9dba3dd feat: define the ordinary hypergeometric function (#17455) Add the definition of the ordinary hypergeometric series, and show that its radius is one. Part of this requires an additional theorem about ascPochhammer, which is found in the Pochhammer file. Closely follows the exponential series definition. #15966 ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/Analytic/OfScalars.lean + def FormalMultilinearSeries.ofScalars + theorem FormalMultilinearSeries.ofScalarsSum_eq_tsum + theorem FormalMultilinearSeries.ofScalars_apply_eq' + theorem FormalMultilinearSeries.ofScalars_apply_eq + theorem FormalMultilinearSeries.ofScalars_eq_zero + theorem FormalMultilinearSeries.ofScalars_norm + theorem FormalMultilinearSeries.ofScalars_norm_eq_mul + theorem FormalMultilinearSeries.ofScalars_norm_le + theorem FormalMultilinearSeries.ofScalars_op + theorem FormalMultilinearSeries.ofScalars_radius_eq_inv_of_tendsto + theorem FormalMultilinearSeries.ofScalars_radius_eq_of_tendsto + theorem FormalMultilinearSeries.ofScalars_sum_eq + theorem FormalMultilinearSeries.ofScalars_unop Added Mathlib/Analysis/SpecialFunctions/OrdinaryHypergeometric.lean + theorem ordinaryHypergeometricSeries_apply_eq' + theorem ordinaryHypergeometricSeries_apply_eq + theorem ordinaryHypergeometricSeries_apply_zero + theorem ordinaryHypergeometricSeries_eq_zero_iff + theorem ordinaryHypergeometricSeries_eq_zero_of_neg_nat + theorem ordinaryHypergeometricSeries_norm_div_succ_norm + theorem ordinaryHypergeometricSeries_radius_eq_one + theorem ordinaryHypergeometricSeries_symm + theorem ordinaryHypergeometric_eq_tsum + theorem ordinaryHypergeometric_radius_top_of_neg_nat₁ + theorem ordinaryHypergeometric_radius_top_of_neg_nat₂ + theorem ordinaryHypergeometric_radius_top_of_neg_nat₃ + theorem ordinaryHypergeometric_sum_eq + theorem ordinaryHypergeometric_zero Modified Mathlib/Analysis/SpecificLimits/RCLike.lean + theorem RCLike.tendsto_add_mul_div_add_mul_atTop_nhds Modified Mathlib/RingTheory/Polynomial/Pochhammer.lean + theorem ascPochhammer_eval_eq_zero_iff + theorem ascPochhammer_eval_neg_coe_nat_of_lt 2024-10-17 08:31:01 21bb834 feat(Condensed): characterisation of discrete (light) condensed sets and modules (#14027) This PR provides a characterization of discrete condensed sets and modules, both in the light setting and the classical one. * Six equivalent conditions on a condensed set X to be discrete 1. The counit of the discrete-underlying adjunction applied to X is an isomorphism 2. X is in the essential image of the constant sheaf functor `Type (u+1) ⥤ CondensedSet.{u}` 3. X is in the essential image of the functor `Type (u+1) ⥤ CondensedSet.{u}` which takes a set to the sheaf of locally constant maps into it. 4. The counit of the locally-constant-underlying adjunction applied to X is an isomorphism. 5. X restricted to the coherent site of profinite sets is discrete as a sheaf 6. For every profinite set S written as a limit of finite sets, X maps S to the corresponding colimit. * A condensed module over a ring is discrete if and only if its underlying condensed set is, and therefore the analogues of the equivalent conditions above also characterize condensed modules as discrete * The analogues for the above for light condensed sets and modules ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Category/ModuleCat/FilteredColimits.lean Added Mathlib/Condensed/Discrete/Characterization.lean + theorem CondensedMod.isDiscrete_iff_isDiscrete_forget + theorem CondensedMod.isDiscrete_tfae + theorem CondensedSet.isDiscrete_tfae + theorem CondensedSet.mem_locallyContant_essImage_of_isColimit_mapCocone + theorem LightCondMod.isDiscrete_iff_isDiscrete_forget + theorem LightCondMod.isDiscrete_tfae + theorem LightCondSet.isDiscrete_tfae + theorem LightCondSet.mem_locallyContant_essImage_of_isColimit_mapCocone 2024-10-17 07:52:57 abde41d chore: update Mathlib dependencies 2024-10-17 (#17856) This PR updates the Mathlib dependencies. ESTIMATED CHANGES Modified lake-manifest.json 2024-10-17 07:12:46 9caf528 chore: cleanup in Data/Prod/Basic (#17841) ESTIMATED CHANGES Modified Mathlib/Data/List/NatAntidiagonal.lean Modified Mathlib/Data/List/Sublists.lean Modified Mathlib/Data/Multiset/Antidiagonal.lean Modified Mathlib/Data/Prod/Basic.lean - theorem Prod.map_mk 2024-10-17 07:12:45 8e804eb chore(ZMod.Basic): remove unnecessary `nolint` (#17840) This does not trigger the `unusedHavesSuffices` linter. ESTIMATED CHANGES Modified Mathlib/Data/ZMod/Basic.lean 2024-10-17 07:12:44 dc48f47 feat(CategoryTheory/Products): an ext lemma for morphisms in product categories (#17721) Until now, in order to check an identity of morphisms in a product category, we had to do `dsimp; ext`. Now, `ext` would also work, which shall ease automation in some future applications. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Abelian/NonPreadditive.lean Modified Mathlib/CategoryTheory/Closed/Ideal.lean Modified Mathlib/CategoryTheory/Generator.lean Modified Mathlib/CategoryTheory/Limits/Connected.lean Modified Mathlib/CategoryTheory/Limits/Shapes/NormalMono/Equalizers.lean Modified Mathlib/CategoryTheory/Monad/Products.lean Modified Mathlib/CategoryTheory/Monoidal/OfHasFiniteProducts.lean Modified Mathlib/CategoryTheory/Products/Basic.lean + theorem CategoryTheory.prod.hom_ext 2024-10-17 07:12:43 4f4f4ec feat(Algebra/FreeMonoid/Basic): define length, symbols, membership, reversing, induction principles (#17180) add these properties for future use in the braid monoid (I have avoided duplicating the List API when possible, ex: using FreeMonoid.lift. These are the remaining properties I need to add) ESTIMATED CHANGES Modified Mathlib/Algebra/FreeMonoid/Basic.lean + def FreeMonoid.length + theorem FreeMonoid.length_eq_one + theorem FreeMonoid.length_eq_two + theorem FreeMonoid.length_eq_zero + theorem FreeMonoid.length_mul + theorem FreeMonoid.length_of + theorem FreeMonoid.length_one + theorem FreeMonoid.length_reverse + theorem FreeMonoid.map_map + theorem FreeMonoid.map_surjective + def FreeMonoid.mem + theorem FreeMonoid.mem_map + theorem FreeMonoid.mem_mul + theorem FreeMonoid.mem_of + theorem FreeMonoid.mem_of_self + theorem FreeMonoid.not_mem_one + theorem FreeMonoid.of_ne_one + def FreeMonoid.reverse + theorem FreeMonoid.reverse_mul + theorem FreeMonoid.reverse_of + theorem FreeMonoid.reverse_reverse Modified Mathlib/Algebra/Group/Submonoid/Membership.lean Modified Mathlib/Control/Fold.lean Modified Mathlib/GroupTheory/Coprod/Basic.lean 2024-10-17 07:12:41 efad68b feat(Analysis/LocallyConvex/AbsConvex): Define the Absolutely Convex Hull (#17029) Defines the absolutely convex (or disked) hull of a subset of a locally convex space and proves a number of standard properties, including: - (subject to suitable conditions) the absolutely convex hull equals the convex hull of the balanced hull. - In a real vector space the absolutely convex hull of `s` equals the convex hull of `s ∪ -s` ESTIMATED CHANGES Modified Mathlib/Analysis/LocallyConvex/AbsConvex.lean + theorem AbsConvex.absConvexHull_subset_iff + theorem AbsConvex.empty + theorem AbsConvex.iInter + theorem AbsConvex.inter + theorem AbsConvex.sInter + theorem AbsConvex.univ + def AbsConvex + def absConvexHull + theorem absConvexHull_add_subset + theorem absConvexHull_empty + theorem absConvexHull_eq_convexHull_balancedHull + theorem absConvexHull_eq_empty + theorem absConvexHull_eq_iInter + theorem absConvexHull_eq_self + theorem absConvexHull_min + theorem absConvexHull_mono + theorem absConvexHull_nonempty + theorem absConvexHull_univ + theorem absConvex_absConvexHull + theorem balancedHull_convexHull_subseteq_absConvexHull + theorem balancedHull_subset_convexHull_union_neg + theorem balanced_absConvexHull + theorem convexHull_union_neg_eq_absConvexHull + theorem convex_absConvexHull + theorem mem_absConvexHull_iff - theorem nhds_basis_abs_convex - theorem nhds_basis_abs_convex_open + theorem nhds_hasBasis_absConvex + theorem nhds_hasBasis_absConvex_open + theorem subset_absConvexHull Modified Mathlib/Analysis/LocallyConvex/BalancedCoreHull.lean + theorem balancedHull_add_subset + theorem balancedHull_mono Modified Mathlib/Analysis/LocallyConvex/Basic.lean + theorem Balanced.sInter 2024-10-17 07:04:05 b6fd8b4 doc: fix some issues under RepresentationTheory (#16409) ESTIMATED CHANGES Modified Mathlib/RepresentationTheory/Action/Basic.lean Modified Mathlib/RepresentationTheory/Basic.lean Modified Mathlib/RepresentationTheory/Character.lean Modified Mathlib/RepresentationTheory/GroupCohomology/Basic.lean Modified Mathlib/RepresentationTheory/GroupCohomology/Resolution.lean 2024-10-17 06:44:29 fff90ff feat(CategoryTheory/Limits): generalize universes in `Preserves.Filtered` and add `Reflects` classes (#17537) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Limits/Preserves/Filtered.lean 2024-10-17 06:03:15 95d4d08 chore: update Mathlib dependencies 2024-10-17 (#17852) This PR updates the Mathlib dependencies. ESTIMATED CHANGES Modified lake-manifest.json 2024-10-17 05:23:32 9152956 chore: cleanup in Data/String/Basic (#17846) ESTIMATED CHANGES Modified Mathlib/Data/String/Basic.lean + theorem String.endPos_empty 2024-10-17 04:44:25 6bcc518 chore: use funext_iff instead of the alias Function.funext_iff (#17847) Not sure why we were using this alias in the first place. ESTIMATED CHANGES Modified Archive/Wiedijk100Theorems/Partition.lean Modified Mathlib/Algebra/BigOperators/Ring.lean Modified Mathlib/Algebra/Divisibility/Prod.lean Modified Mathlib/Algebra/Group/Pi/Lemmas.lean Modified Mathlib/Algebra/Homology/Functor.lean Modified Mathlib/Algebra/LinearRecurrence.lean Modified Mathlib/Algebra/Module/ZLattice/Basic.lean Modified Mathlib/Algebra/Order/BigOperators/Group/Finset.lean Modified Mathlib/Algebra/Polynomial/Smeval.lean Modified Mathlib/Analysis/Calculus/LagrangeMultipliers.lean Modified Mathlib/Analysis/InnerProductSpace/OfNorm.lean Modified Mathlib/Analysis/Normed/Operator/WeakOperatorTopology.lean Modified Mathlib/Analysis/SpecialFunctions/Complex/Arg.lean Modified Mathlib/CategoryTheory/GradedObject.lean Modified Mathlib/CategoryTheory/Pi/Basic.lean Modified Mathlib/CategoryTheory/Sites/LocallySurjective.lean Modified Mathlib/CategoryTheory/Sites/Types.lean Modified Mathlib/CategoryTheory/Types.lean Modified Mathlib/Combinatorics/Additive/AP/Three/Behrend.lean +/- theorem Behrend.sphere_zero_subset Modified Mathlib/Combinatorics/HalesJewett.lean Modified Mathlib/Combinatorics/Hall/Basic.lean Modified Mathlib/Combinatorics/SimpleGraph/Basic.lean Modified Mathlib/Combinatorics/SimpleGraph/Circulant.lean Modified Mathlib/Combinatorics/SimpleGraph/Turan.lean Modified Mathlib/Computability/TMToPartrec.lean Modified Mathlib/Data/Fin/Basic.lean Modified Mathlib/Data/Finset/NAry.lean Modified Mathlib/Data/Finset/Sort.lean Modified Mathlib/Data/Fintype/Basic.lean Modified Mathlib/Data/Fintype/Pi.lean Modified Mathlib/Data/FunLike/Basic.lean Modified Mathlib/Data/Matrix/ColumnRowPartitioned.lean Modified Mathlib/Data/Multiset/Basic.lean Modified Mathlib/Data/Real/GoldenRatio.lean Modified Mathlib/Data/Set/Image.lean Modified Mathlib/Data/W/Basic.lean Modified Mathlib/FieldTheory/Finite/Polynomial.lean Modified Mathlib/GroupTheory/CommutingProbability.lean Modified Mathlib/GroupTheory/FreeGroup/IsFreeGroup.lean Modified Mathlib/GroupTheory/GroupAction/FixedPoints.lean Modified Mathlib/GroupTheory/HNNExtension.lean Modified Mathlib/GroupTheory/Perm/DomMulAct.lean Modified Mathlib/GroupTheory/PushoutI.lean Modified Mathlib/LinearAlgebra/AffineSpace/AffineMap.lean Modified Mathlib/LinearAlgebra/AffineSpace/Independent.lean Modified Mathlib/LinearAlgebra/Dual.lean Modified Mathlib/LinearAlgebra/Matrix/DotProduct.lean Modified Mathlib/LinearAlgebra/Pi.lean Modified Mathlib/LinearAlgebra/QuadraticForm/Prod.lean Modified Mathlib/Logic/Function/Basic.lean Modified Mathlib/MeasureTheory/Measure/VectorMeasure.lean Modified Mathlib/ModelTheory/Basic.lean Modified Mathlib/ModelTheory/ElementaryMaps.lean Modified Mathlib/ModelTheory/Syntax.lean Modified Mathlib/NumberTheory/NumberField/House.lean Modified Mathlib/Order/RelSeries.lean Modified Mathlib/Probability/ProbabilityMassFunction/Basic.lean Modified Mathlib/RepresentationTheory/GroupCohomology/LowDegree.lean Modified Mathlib/RingTheory/HahnSeries/Addition.lean Modified Mathlib/RingTheory/HahnSeries/Basic.lean Modified Mathlib/RingTheory/HahnSeries/Multiplication.lean Modified Mathlib/RingTheory/Ideal/Maps.lean Modified Mathlib/RingTheory/Idempotents.lean Modified Mathlib/RingTheory/WittVector/Defs.lean Modified Mathlib/RingTheory/WittVector/IsPoly.lean Modified Mathlib/Topology/Algebra/Module/Basic.lean Modified Mathlib/Topology/Homotopy/Product.lean Modified Mathlib/Topology/LocallyConstant/Basic.lean Modified Mathlib/Topology/TietzeExtension.lean Modified test/instance_diamonds.lean 2024-10-17 04:14:09 8e52ebf chore: move differentiability of Gamma to a new file (#17775) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Analysis/MellinInversion.lean Modified Mathlib/Analysis/SpecialFunctions/Gamma/Basic.lean - theorem Complex.GammaIntegral_eq_mellin - theorem Complex.differentiableAt_Gamma - theorem Complex.differentiableAt_GammaAux - theorem Complex.hasDerivAt_GammaIntegral - theorem Complex.tendsto_self_mul_Gamma_nhds_zero - theorem Real.differentiableAt_Gamma Modified Mathlib/Analysis/SpecialFunctions/Gamma/BohrMollerup.lean Added Mathlib/Analysis/SpecialFunctions/Gamma/Deriv.lean + theorem Complex.GammaIntegral_eq_mellin + theorem Complex.differentiableAt_Gamma + theorem Complex.differentiableAt_GammaAux + theorem Complex.hasDerivAt_GammaIntegral + theorem Complex.tendsto_self_mul_Gamma_nhds_zero + theorem Real.differentiableAt_Gamma 2024-10-17 03:53:08 08804ac chore(SetTheory/Ordinal/Arithmetic): `omega0_isLimit` → `isLimit_omega0` (#17744) I missed this rename in #17673. ESTIMATED CHANGES Modified Mathlib/SetTheory/Cardinal/Aleph.lean +/- theorem Cardinal.exists_aleph Modified Mathlib/SetTheory/Cardinal/Arithmetic.lean Modified Mathlib/SetTheory/Cardinal/Cofinality.lean Modified Mathlib/SetTheory/Ordinal/Arithmetic.lean + theorem Cardinal.isLimit_ord - theorem Cardinal.ord_isLimit + theorem Ordinal.isLimit_omega0 - theorem Ordinal.omega0_isLimit Modified Mathlib/SetTheory/Ordinal/Notation.lean Modified Mathlib/SetTheory/Ordinal/Principal.lean 2024-10-17 03:45:31 b1267a6 feat: sigma-algebra of cylinder events (#17833) From GibbsMeasure ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Constructions/Cylinders.lean + theorem MeasureTheory.Measurable.eval_cylinderEvents + def MeasureTheory.cylinderEvents + theorem MeasureTheory.cylinderEvents_le_pi + theorem MeasureTheory.cylinderEvents_mono + theorem MeasureTheory.cylinderEvents_univ + theorem MeasureTheory.measurable_cylinderEvent_apply + theorem MeasureTheory.measurable_cylinderEvents_iff + theorem MeasureTheory.measurable_cylinderEvents_lambda + theorem MeasureTheory.measurable_restrict_cylinderEvents + theorem MeasureTheory.measurable_uniqueElim_cylinderEvents + theorem MeasureTheory.measurable_update_cylinderEvents' + theorem MeasureTheory.measurable_update_cylinderEvents + theorem MeasureTheory.measurable_update_cylinderEvents_left 2024-10-17 02:58:15 b33faad chore(Topology/Group): move `QuotientGroup` to a new file (#17473) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/MeasureTheory/Constructions/Polish/Basic.lean Modified Mathlib/MeasureTheory/Measure/Haar/Quotient.lean Modified Mathlib/Topology/Algebra/Group/Basic.lean - theorem QuotientGroup.continuous_mk - theorem QuotientGroup.continuous_smul₁ - theorem QuotientGroup.dense_image_mk - theorem QuotientGroup.dense_preimage_mk - theorem QuotientGroup.isClosedMap_coe - theorem QuotientGroup.isOpenMap_coe - theorem QuotientGroup.isOpenQuotientMap_mk - theorem QuotientGroup.nhds_eq - theorem QuotientGroup.nhds_one_isCountablyGenerated - theorem QuotientGroup.quotientMap_mk - theorem topologicalGroup_quotient Added Mathlib/Topology/Algebra/Group/Quotient.lean + theorem QuotientGroup.continuous_mk + theorem QuotientGroup.continuous_smul₁ + theorem QuotientGroup.dense_image_mk + theorem QuotientGroup.dense_preimage_mk + theorem QuotientGroup.isClosedMap_coe + theorem QuotientGroup.isOpenMap_coe + theorem QuotientGroup.isOpenQuotientMap_mk + theorem QuotientGroup.nhds_eq + theorem QuotientGroup.nhds_one_isCountablyGenerated + theorem QuotientGroup.quotientMap_mk + theorem topologicalGroup_quotient Modified Mathlib/Topology/Algebra/Module/Basic.lean Modified Mathlib/Topology/Algebra/OpenSubgroup.lean Modified Mathlib/Topology/Algebra/ProperAction/Basic.lean Modified Mathlib/Topology/Algebra/Ring/Ideal.lean Modified Mathlib/Topology/Algebra/UniformGroup.lean Modified Mathlib/Topology/Compactness/LocallyCompact.lean + theorem IsOpenQuotientMap.locallyCompactSpace + theorem IsOpenQuotientMap.weaklyLocallyCompactSpace 2024-10-17 02:29:59 65e1494 chore: make the measurability assumption be the first argument in `lintegral_indicator` (#17830) ... rather than `f`. Change `integral_indicator` and similar lemmas to match. From GibbsMeasure ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Constructions/Prod/Basic.lean Modified Mathlib/MeasureTheory/Decomposition/Lebesgue.lean Modified Mathlib/MeasureTheory/Function/ConditionalExpectation/CondexpL2.lean Modified Mathlib/MeasureTheory/Function/LpSeminorm/Basic.lean Modified Mathlib/MeasureTheory/Function/LpSpace.lean Modified Mathlib/MeasureTheory/Group/FundamentalDomain.lean Modified Mathlib/MeasureTheory/Group/Prod.lean Modified Mathlib/MeasureTheory/Integral/IntegrableOn.lean Modified Mathlib/MeasureTheory/Integral/IntegralEqImproper.lean Modified Mathlib/MeasureTheory/Integral/Layercake.lean Modified Mathlib/MeasureTheory/Integral/Lebesgue.lean +/- theorem MeasureTheory.lintegral_indicator +/- theorem MeasureTheory.lintegral_indicator₀ +/- theorem MeasureTheory.setLIntegral_indicator Modified Mathlib/MeasureTheory/Integral/SetIntegral.lean Modified Mathlib/MeasureTheory/Measure/GiryMonad.lean Modified Mathlib/MeasureTheory/Measure/HasOuterApproxClosed.lean Modified Mathlib/MeasureTheory/Measure/WithDensity.lean Modified Mathlib/Probability/Distributions/Uniform.lean Modified Mathlib/Probability/Integration.lean Modified Mathlib/Probability/Kernel/Composition.lean Modified Mathlib/Probability/Kernel/Disintegration/Basic.lean Modified Mathlib/Probability/Kernel/Disintegration/Integral.lean Modified Mathlib/Probability/Kernel/Disintegration/Unique.lean Modified Mathlib/Probability/Kernel/MeasureCompProd.lean 2024-10-17 02:22:29 4061861 chore: bump proofwidgets (#17848) ESTIMATED CHANGES Modified lake-manifest.json Modified lakefile.lean 2024-10-16 22:13:35 054aa6c feat: `affineSpan k (insert 0 s) = span k s` (#17661) From LeanCamCombi ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/AffineSpace/AffineSubspace.lean + theorem affineSpan_insert_zero + theorem vectorSpan_add_self 2024-10-16 21:14:24 f4d8a98 chore: copy `Finsupp.smul_single'` to (`Add`)`MonoidAlgebra` to avoid defeq abuse (#17825) This seems to stem from Lean 3 where it was okay to `simp` with `Finsupp` lemmas in its type synonyms `MonoidAlgebra` and `AddMonoidAlgebra`. The discrimination tree in Lean 4 correctly catches the mismatch. So we copy the lemma to the type synonyms and remove some porting notes. ESTIMATED CHANGES Modified Mathlib/Algebra/MonoidAlgebra/Defs.lean + theorem AddMonoidAlgebra.smul_single' + theorem MonoidAlgebra.smul_single' Modified Mathlib/Algebra/MonoidAlgebra/Grading.lean Modified Mathlib/RepresentationTheory/GroupCohomology/Resolution.lean 2024-10-16 18:15:31 ede7758 feat(AlgebraicGeometry): Classification of `Spec R ⟶ X` with `R` local. (#15240) ESTIMATED CHANGES Modified Mathlib/AlgebraicGeometry/PrimeSpectrum/Basic.lean + theorem LocalRing.closed_point_mem_iff Modified Mathlib/AlgebraicGeometry/Scheme.lean + theorem AlgebraicGeometry.Spec_closedPoint Modified Mathlib/AlgebraicGeometry/Stalk.lean + theorem AlgebraicGeometry.IsAffineOpen.fromSpecStalk_closedPoint +/- theorem AlgebraicGeometry.IsAffineOpen.fromSpecStalk_eq +/- theorem AlgebraicGeometry.IsAffineOpen.fromSpecStalk_eq_fromSpecStalk + theorem AlgebraicGeometry.Scheme.Spec_fromSpecStalk' + theorem AlgebraicGeometry.Scheme.Spec_fromSpecStalk + theorem AlgebraicGeometry.Scheme.Spec_map_stalkMap_fromSpecStalk + theorem AlgebraicGeometry.Scheme.Spec_map_stalkSpecializes_fromSpecStalk + theorem AlgebraicGeometry.Scheme.Spec_stalkClosedPointTo_fromSpecStalk + theorem AlgebraicGeometry.Scheme.fromSpecStalk_app + theorem AlgebraicGeometry.Scheme.fromSpecStalk_closedPoint + theorem AlgebraicGeometry.Scheme.germ_stalkClosedPointTo + theorem AlgebraicGeometry.Scheme.germ_stalkClosedPointTo_Spec + theorem AlgebraicGeometry.Scheme.germ_stalkClosedPointTo_Spec_fromSpecStalk + theorem AlgebraicGeometry.Scheme.preimage_eq_top_of_closedPoint_mem + theorem AlgebraicGeometry.Scheme.range_fromSpecStalk + def AlgebraicGeometry.Scheme.stalkClosedPointTo + theorem AlgebraicGeometry.Scheme.stalkClosedPointTo_comp + theorem AlgebraicGeometry.Scheme.stalkClosedPointTo_fromSpecStalk + def AlgebraicGeometry.SpecToEquivOfLocalRing + theorem AlgebraicGeometry.SpecToEquivOfLocalRing_eq_iff + theorem AlgebraicGeometry.Spec_stalkClosedPointIso + theorem AlgebraicGeometry.germ_stalkClosedPointIso_hom + def AlgebraicGeometry.stalkClosedPointIso + theorem AlgebraicGeometry.stalkClosedPointIso_inv + theorem AlgebraicGeometry.ΓSpecIso_hom_stalkClosedPointIso_inv 2024-10-16 17:21:07 2de7871 chore: remove more unused variables (#17749) ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Action/Pi.lean Modified Mathlib/Algebra/Group/Units/Defs.lean Modified Mathlib/Algebra/GroupPower/IterateHom.lean Modified Mathlib/Algebra/Order/Group/Prod.lean Modified Mathlib/Algebra/Order/Monovary.lean Modified Mathlib/Algebra/Order/Ring/Unbundled/Nonneg.lean Modified Mathlib/Algebra/Order/Ring/Unbundled/Rat.lean Modified Mathlib/Algebra/Ring/Hom/Basic.lean Modified Mathlib/Algebra/Ring/Parity.lean Modified Mathlib/Analysis/BoxIntegral/Partition/Additive.lean Modified Mathlib/Analysis/Calculus/Deriv/Basic.lean Modified Mathlib/Analysis/Calculus/Deriv/Comp.lean Modified Mathlib/Analysis/Calculus/Deriv/Inv.lean Modified Mathlib/Analysis/Calculus/Deriv/Polynomial.lean Modified Mathlib/Analysis/Calculus/Deriv/Pow.lean Modified Mathlib/Analysis/Calculus/FDeriv/Bilinear.lean Modified Mathlib/Analysis/Calculus/FDeriv/Linear.lean Modified Mathlib/Analysis/Convex/EGauge.lean Modified Mathlib/Analysis/Normed/Operator/Banach.lean Modified Mathlib/Analysis/NormedSpace/OperatorNorm/Mul.lean Modified Mathlib/Analysis/NormedSpace/PiTensorProduct/ProjectiveSeminorm.lean Modified Mathlib/CategoryTheory/Functor/KanExtension/Basic.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Images.lean Modified Mathlib/CategoryTheory/Limits/Types.lean Modified Mathlib/Condensed/Light/CartesianClosed.lean Modified Mathlib/Data/Fintype/Option.lean Modified Mathlib/Data/NNRat/Defs.lean Modified Mathlib/Data/Set/Basic.lean Modified Mathlib/Data/Set/Image.lean Modified Mathlib/Data/Set/Prod.lean Modified Mathlib/Dynamics/Ergodic/Conservative.lean Modified Mathlib/Dynamics/Ergodic/Ergodic.lean Modified Mathlib/Geometry/Manifold/ContMDiff/Defs.lean Modified Mathlib/Geometry/Manifold/ContMDiff/Product.lean Modified Mathlib/Geometry/Manifold/MFDeriv/Tangent.lean Modified Mathlib/LinearAlgebra/DFinsupp.lean Modified Mathlib/MeasureTheory/Decomposition/Jordan.lean Modified Mathlib/MeasureTheory/Function/Egorov.lean Modified Mathlib/MeasureTheory/Integral/LebesgueNormedSpace.lean Modified Mathlib/MeasureTheory/Measure/Complex.lean Modified Mathlib/MeasureTheory/Measure/VectorMeasure.lean Modified Mathlib/Order/UpperLower/Basic.lean Modified Mathlib/Probability/Kernel/Disintegration/MeasurableStieltjes.lean Modified Mathlib/Probability/ProbabilityMassFunction/Basic.lean Modified Mathlib/Topology/ContinuousMap/StoneWeierstrass.lean Modified Mathlib/Topology/MetricSpace/Pseudo/Basic.lean 2024-10-16 16:23:46 ec9e50a chore: `measurable_spanningSets` → `measurableSet_spanningSets` (#17834) This was misnamed. From GibbsMeasure ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Constructions/BorelSpace/Real.lean Modified Mathlib/MeasureTheory/Decomposition/Exhaustion.lean Modified Mathlib/MeasureTheory/Decomposition/Lebesgue.lean Modified Mathlib/MeasureTheory/Function/AEEqOfIntegral.lean Modified Mathlib/MeasureTheory/Function/ConditionalExpectation/CondexpL1.lean Modified Mathlib/MeasureTheory/Function/Jacobian.lean Modified Mathlib/MeasureTheory/Function/StronglyMeasurable/Basic.lean Modified Mathlib/MeasureTheory/Integral/Lebesgue.lean Modified Mathlib/MeasureTheory/Measure/Regular.lean Modified Mathlib/MeasureTheory/Measure/Trim.lean Modified Mathlib/MeasureTheory/Measure/Typeclasses.lean + theorem MeasureTheory.measurableSet_spanningSets + theorem MeasureTheory.measurableSet_spanningSetsIndex - theorem MeasureTheory.measurable_spanningSets - theorem MeasureTheory.measurable_spanningSetsIndex 2024-10-16 15:54:25 8d6f380 feat(RingTheory/Flat/Basic): drop `[Small.{v} R]` assumption in `Module.Flat.iff_*` lemmas (#17484) Drop `[Small.{v} R]` assumption from `Module.Flat.iff_*` lemmas [Module.Flat.iff_rTensor_preserves_injective_linearMap](https://leanprover-community.github.io/mathlib4_docs/Mathlib/RingTheory/Flat/Basic.html#Module.Flat.iff_rTensor_preserves_injective_linearMap), [Module.Flat.iff_lTensor_exact](https://leanprover-community.github.io/mathlib4_docs/Mathlib/RingTheory/Flat/Basic.html#Module.Flat.iff_lTensor_exact), and so on. ESTIMATED CHANGES Modified Mathlib/RingTheory/Flat/Basic.lean + theorem Module.Flat.equiv_iff + theorem Module.Flat.iff_lTensor_exact' +/- theorem Module.Flat.iff_lTensor_exact + theorem Module.Flat.iff_lTensor_preserves_injective_linearMap' +/- theorem Module.Flat.iff_lTensor_preserves_injective_linearMap + theorem Module.Flat.iff_rTensor_exact' +/- theorem Module.Flat.iff_rTensor_exact + theorem Module.Flat.iff_rTensor_preserves_injective_linearMap' +/- theorem Module.Flat.iff_rTensor_preserves_injective_linearMap +/- theorem Module.Flat.lTensor_exact +/- theorem Module.Flat.rTensor_exact 2024-10-16 15:23:31 bfe51d4 chore: yet more unused variables (#17826) ESTIMATED CHANGES Modified Mathlib/AlgebraicTopology/FundamentalGroupoid/Basic.lean Modified Mathlib/AlgebraicTopology/FundamentalGroupoid/FundamentalGroup.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Pullback/Assoc.lean Modified Mathlib/CategoryTheory/Sites/Canonical.lean Modified Mathlib/Computability/Reduce.lean Modified Mathlib/Control/Fold.lean Modified Mathlib/Control/Functor/Multivariate.lean Modified Mathlib/Data/BitVec.lean Modified Mathlib/Data/DFinsupp/Multiset.lean Modified Mathlib/Data/TypeVec.lean Modified Mathlib/Geometry/Manifold/SmoothManifoldWithCorners.lean Modified Mathlib/MeasureTheory/Measure/Hausdorff.lean Modified Mathlib/MeasureTheory/Measure/LevyProkhorovMetric.lean Modified Mathlib/MeasureTheory/Order/UpperLower.lean Modified Mathlib/ModelTheory/Complexity.lean Modified Mathlib/ModelTheory/ElementarySubstructures.lean Modified Mathlib/ModelTheory/Encoding.lean Modified Mathlib/ModelTheory/Syntax.lean Modified Mathlib/RingTheory/GradedAlgebra/HomogeneousIdeal.lean Modified Mathlib/RingTheory/Localization/Finiteness.lean Modified Mathlib/RingTheory/TensorProduct/MvPolynomial.lean Modified Mathlib/Topology/MetricSpace/Holder.lean Modified Mathlib/Topology/MetricSpace/MetricSeparated.lean Modified Mathlib/Topology/Order/DenselyOrdered.lean Modified Mathlib/Topology/Order/IntermediateValue.lean Modified Mathlib/Topology/Order/IsLUB.lean Modified Mathlib/Topology/Order/Monotone.lean Modified Mathlib/Topology/UniformSpace/Equicontinuity.lean Modified Mathlib/Topology/UniformSpace/UniformConvergenceTopology.lean 2024-10-16 15:23:29 0b07d2a chore: classify porting notes about `ext` (#17809) I checked all porting notes mentioning `ext` and either fixed them (see #17810), or classified them as * #5229 if it's a new `@[ext]` lemma * #11041 if it's a regression in `ext` * #11182 if `@[ext]` had to be removed This PR should contain only modifications to comments. ESTIMATED CHANGES Modified Mathlib/Algebra/Category/ModuleCat/Adjunctions.lean Modified Mathlib/Algebra/Homology/HomologicalComplex.lean Modified Mathlib/Algebra/Lie/DirectSum.lean Modified Mathlib/Algebra/MonoidAlgebra/Basic.lean Modified Mathlib/Algebra/MonoidAlgebra/Defs.lean Modified Mathlib/Algebra/MonoidAlgebra/Division.lean Modified Mathlib/Algebra/MonoidAlgebra/ToDirectSum.lean Modified Mathlib/Algebra/MvPolynomial/Basic.lean Modified Mathlib/Algebra/Polynomial/Laurent.lean Modified Mathlib/AlgebraicGeometry/Restrict.lean Modified Mathlib/AlgebraicGeometry/Spec.lean Modified Mathlib/AlgebraicTopology/SimplexCategory.lean Modified Mathlib/AlgebraicTopology/SplitSimplicialObject.lean Modified Mathlib/CategoryTheory/Abelian/Pseudoelements.lean Modified Mathlib/CategoryTheory/Bicategory/NaturalTransformation/Oplax.lean Modified Mathlib/CategoryTheory/Closed/Functor.lean Modified Mathlib/CategoryTheory/Comma/Basic.lean Modified Mathlib/CategoryTheory/Elements.lean Modified Mathlib/CategoryTheory/Endomorphism.lean Modified Mathlib/CategoryTheory/Functor/Category.lean Modified Mathlib/CategoryTheory/Idempotents/Karoubi.lean Modified Mathlib/CategoryTheory/Iso.lean Modified Mathlib/CategoryTheory/Limits/Cones.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Biproducts.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Multiequalizer.lean Modified Mathlib/CategoryTheory/Monoidal/Bimod.lean Modified Mathlib/CategoryTheory/Monoidal/Braided/Basic.lean Modified Mathlib/CategoryTheory/Monoidal/Center.lean Modified Mathlib/CategoryTheory/Monoidal/Internal/Module.lean Modified Mathlib/CategoryTheory/Monoidal/Mon_.lean Modified Mathlib/CategoryTheory/Monoidal/NaturalTransformation.lean Modified Mathlib/CategoryTheory/Pi/Basic.lean Modified Mathlib/CategoryTheory/Sites/Pretopology.lean Modified Mathlib/CategoryTheory/Sites/Sheaf.lean Modified Mathlib/Data/PFunctor/Univariate/M.lean Modified Mathlib/Geometry/RingedSpace/OpenImmersion.lean Modified Mathlib/Geometry/RingedSpace/PresheafedSpace/HasColimits.lean Modified Mathlib/Order/Category/OmegaCompletePartialOrder.lean Modified Mathlib/RepresentationTheory/Action/Basic.lean Modified Mathlib/RingTheory/DedekindDomain/FiniteAdeleRing.lean Modified Mathlib/Topology/Category/CompHaus/Basic.lean Modified Mathlib/Topology/Category/Profinite/AsLimit.lean Modified Mathlib/Topology/Category/TopCat/Limits/Products.lean Modified Mathlib/Topology/Sheaves/PresheafOfFunctions.lean 2024-10-16 14:44:36 a54be30 chore: clean up "slow" or "speedup" porting notes (#17832) Fix and remove the porting notes that don't apply anymore (for example, if `count_heartbeats` says it's an order of magnitude or more under the heartbeat limit). ESTIMATED CHANGES Modified Mathlib/Algebra/DirectSum/Ring.lean Modified Mathlib/Algebra/GCDMonoid/Basic.lean Modified Mathlib/Algebra/Lie/Weights/Cartan.lean Modified Mathlib/Combinatorics/Hindman.lean Modified Mathlib/Data/Quot.lean Modified Mathlib/FieldTheory/Minpoly/Field.lean Modified Mathlib/GroupTheory/GroupAction/ConjAct.lean Modified Mathlib/LinearAlgebra/QuotientPi.lean Modified Mathlib/Topology/Homotopy/HomotopyGroup.lean Modified Mathlib/Topology/Metrizable/Uniformity.lean 2024-10-16 14:44:35 2ec6c3d chore: remove some `attribute [irreducible]` that don't seem to help much (#17829) This attribute doesn't seem to impact performance, so remove it and the associated porting note. ESTIMATED CHANGES Modified Mathlib/AlgebraicTopology/DoldKan/GammaCompN.lean Modified Mathlib/AlgebraicTopology/DoldKan/NCompGamma.lean 2024-10-16 14:44:33 edc37a1 chore: remove porting notes about deprecation / "not used" (#17821) These deprecated/commented-out declarations are not going to return, and if we do want to deprecate something we have a much nicer infrastructure using the `@[deprecated]` attribute. It's also been a long time since the port, so we can now just delete the remaining porting notes. Closes: #11229 ESTIMATED CHANGES Modified Mathlib/Algebra/Category/Semigrp/Basic.lean Modified Mathlib/Algebra/GCDMonoid/Multiset.lean Modified Mathlib/Analysis/InnerProductSpace/Projection.lean Modified Mathlib/Computability/PartrecCode.lean Modified Mathlib/Computability/Primrec.lean Modified Mathlib/Data/NNRat/Defs.lean Modified Mathlib/Data/Vector/Basic.lean Modified Mathlib/GroupTheory/FreeGroup/NielsenSchreier.lean Modified Mathlib/SetTheory/Game/Short.lean 2024-10-16 14:29:59 617ce53 chore(MeasureTheory): let `gcongr` know about `spanningSets` (#17824) From GibbsMeasure ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Measure/Typeclasses.lean + theorem MeasureTheory.spanningSets_mono 2024-10-16 14:07:07 a818532 feat(Kernel): `κ.comap g = κ ∘ g` (#17823) From GibbsMeasure ESTIMATED CHANGES Modified Mathlib/Probability/Kernel/Composition.lean + theorem ProbabilityTheory.Kernel.coe_comap 2024-10-16 14:07:05 d3d1be6 feat: post-composing independent random variables (#17811) From PFR ESTIMATED CHANGES Modified Mathlib/Probability/Independence/Basic.lean Modified Mathlib/Probability/Independence/Kernel.lean + theorem ProbabilityTheory.Kernel.iIndepFun.comp 2024-10-16 13:45:57 8d09169 chore(BorelSpace): make `MeasurableSpace` arguments implicit (#17819) ... rather than instance arguments. This is motivated by non-canonical sigma-algebras showing up in the theory of Gibbs measures. From GibbsMeasure ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Constructions/BorelSpace/Order.lean +/- theorem Measurable.iInf_Prop +/- theorem Measurable.iSup_Prop +/- theorem measure_eq_measure_preimage_add_measure_tsum_Ico_zpow Modified Mathlib/MeasureTheory/Constructions/BorelSpace/Real.lean +/- theorem AEMeasurable.nnreal_tsum +/- theorem ENNReal.measurable_of_measurable_nnreal_nnreal +/- theorem ENNReal.measurable_of_measurable_nnreal_prod +/- theorem exists_spanning_measurableSet_le Modified Mathlib/MeasureTheory/Measure/MeasureSpace.lean +/- theorem MeasureTheory.Measure.NullMeasurableSet.image +/- theorem MeasureTheory.Measure.QuasiMeasurePreserving.smul_ae_eq_of_ae_eq +/- theorem MeasureTheory.Measure.ae_eq_image_of_ae_eq_comap +/- theorem MeasureTheory.Measure.comap_apply +/- theorem MeasureTheory.Measure.comap_apply₀ +/- theorem MeasureTheory.Measure.comap_preimage +/- theorem MeasureTheory.Measure.comapₗ_apply +/- theorem MeasureTheory.Measure.comapₗ_eq_comap +/- theorem MeasureTheory.Measure.le_comap_apply +/- theorem MeasureTheory.Measure.measure_image_eq_zero_of_comap_eq_zero +/- theorem MeasureTheory.Measure.toOuterMeasure_top +/- theorem MeasureTheory.measure_iInter_eq_iInf' +/- theorem MeasureTheory.tendsto_measure_iInter' +/- theorem MeasureTheory.tsum_meas_le_meas_iUnion_of_disjoint +/- theorem MeasureTheory.tsum_meas_le_meas_iUnion_of_disjoint₀ 2024-10-16 12:56:22 15a391f feat(SetTheory/Ordinal/Exponential): `lt_omega0_opow` (#17740) ESTIMATED CHANGES Modified Mathlib/SetTheory/Ordinal/Exponential.lean + theorem Ordinal.lt_omega0_opow + theorem Ordinal.lt_omega0_opow_succ + theorem Ordinal.omega0_opow_mul_nat_lt 2024-10-16 12:56:21 d03e389 feat(SetTheory/Ordinal/Enum): more lemmas on `enumOrd` (#17668) ESTIMATED CHANGES Modified Mathlib/Order/ConditionallyCompleteLattice/Basic.lean + theorem ciInf_eq_bot_of_bot_mem + theorem ciInf_eq_top_of_top_mem + theorem csInf_eq_bot_of_bot_mem + theorem csSup_eq_top_of_top_mem Modified Mathlib/SetTheory/Ordinal/Enum.lean + theorem Ordinal.enumOrd_inj + theorem Ordinal.enumOrd_injective + theorem Ordinal.enumOrd_le_enumOrd + theorem Ordinal.enumOrd_lt_enumOrd + theorem Ordinal.id_le_enumOrd + theorem Ordinal.le_enumOrd_self 2024-10-16 12:56:20 a7cd6bd feat: action for labeling and closing stale PRs (#17041) Per discussion in the maintainer channel. Uses a PR branch https://github.com/actions/stale/pull/1145 of [actions/stale](https://github.com/actions/stale/) since it has a feature that will allow us to only consider PRs not sitting on the [#queue](https://bit.ly/3Ymuh0U). There's still placeholder text for the comments, but this is intended to be merged with the `debug-only` flag until we have the kinks sorted out, so we could fill in that text in a later PR. ESTIMATED CHANGES Added .github/workflows/stale.yml 2024-10-16 12:04:57 1aaa5b9 feat(Data/Fin/Basic): `intCast_val_sub_eq_ite` (#17190) ESTIMATED CHANGES Modified Mathlib/Data/Fin/Basic.lean + theorem Fin.intCast_val_sub_eq_sub_add_ite 2024-10-16 11:28:18 ebec1b6 chore: update Mathlib dependencies 2024-10-16 (#17816) This PR updates the Mathlib dependencies. ESTIMATED CHANGES Modified lake-manifest.json 2024-10-16 11:05:21 298e0e0 feat: `card (ι →₀ α) = card α ^ card ι` (#17807) From PFR ESTIMATED CHANGES Modified Mathlib/Data/Finsupp/Fintype.lean + theorem Fintype.card_finsupp 2024-10-16 11:05:20 fde83d9 feat(SetTheory/Ordinal/Principal): simpler characterization of `Principal` for monotone operations (#17742) plus some drive-by spacing fixes. Subsequent PRs will use this to golf results on additive and multiplicative principal ordinals. ESTIMATED CHANGES Modified Mathlib/SetTheory/Ordinal/Principal.lean + theorem Ordinal.principal_iff_of_monotone 2024-10-16 11:05:19 e0e004a chore(SetTheory/Ordinal/Arithmetic): fix `Ordinal.enum` type signature (#17601) For some reason, Lean was inferring [some nonsense](https://leanprover-community.github.io/mathlib4_docs/Mathlib/SetTheory/Ordinal/Basic.html#Ordinal.enum). Unfortunately, the explicit typing is required for `simp`; see [Zulip](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/simp.20and.20subrel). ESTIMATED CHANGES Modified Mathlib/SetTheory/Ordinal/Basic.lean 2024-10-16 11:05:17 fd745ec feat(SetTheory/Cardinal/Aleph): define initial ordinals (#16964) ESTIMATED CHANGES Modified Mathlib/SetTheory/Cardinal/Aleph.lean + theorem Ordinal.IsInitial.card_le_card + theorem Ordinal.IsInitial.card_lt_card + theorem Ordinal.IsInitial.ord_card + def Ordinal.IsInitial + def Ordinal.isInitialIso + theorem Ordinal.isInitial_natCast + theorem Ordinal.isInitial_omega0 + theorem Ordinal.isInitial_one + theorem Ordinal.isInitial_ord + theorem Ordinal.isInitial_zero + theorem Ordinal.not_bddAbove_isInitial Modified Mathlib/SetTheory/Ordinal/Arithmetic.lean - theorem Cardinal.ord_aleph0 Modified Mathlib/SetTheory/Ordinal/Basic.lean + theorem Cardinal.ord_aleph0 2024-10-16 11:05:16 6eec427 feat(RingTheory/StandardSmooth): meta properties of standard smooth ring homomorphisms (#16868) In particular we show that being standard smooth is stable under composition and base change. This contribution was created as part of the AIM workshop "Formalizing algebraic geometry" in June 2024. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/RingTheory/LocalProperties/Basic.lean + theorem RingHom.StableUnderBaseChange.isLocalization_map + theorem RingHom.StableUnderBaseChange.localizationPreserves + theorem RingHom.StableUnderBaseChange.of_isLocalization Modified Mathlib/RingTheory/Localization/BaseChange.lean + theorem Algebra.isPushout_of_isLocalization Added Mathlib/RingTheory/RingHom/StandardSmooth.lean + theorem RingHom.IsStandardSmooth.comp + def RingHom.IsStandardSmooth + theorem RingHom.IsStandardSmoothOfRelativeDimension.algebraMap_isLocalizationAway + theorem RingHom.IsStandardSmoothOfRelativeDimension.comp + theorem RingHom.IsStandardSmoothOfRelativeDimension.equiv + theorem RingHom.IsStandardSmoothOfRelativeDimension.id + theorem RingHom.IsStandardSmoothOfRelativeDimension.isStandardSmooth + def RingHom.IsStandardSmoothOfRelativeDimension + theorem RingHom.isStandardSmoothOfRelativeDimension_holdsForLocalizationAway + theorem RingHom.isStandardSmoothOfRelativeDimension_localizationPreserves + theorem RingHom.isStandardSmoothOfRelativeDimension_respectsIso + theorem RingHom.isStandardSmoothOfRelativeDimension_stableUnderBaseChange + theorem RingHom.isStandardSmoothOfRelativeDimension_stableUnderCompositionWithLocalizationAway + theorem RingHom.isStandardSmooth_holdsForLocalizationAway + theorem RingHom.isStandardSmooth_localizationPreserves + theorem RingHom.isStandardSmooth_respectsIso + theorem RingHom.isStandardSmooth_stableUnderBaseChange + theorem RingHom.isStandardSmooth_stableUnderComposition + theorem RingHom.isStandardSmooth_stableUnderCompositionWithLocalizationAway Modified Mathlib/RingTheory/Smooth/StandardSmooth.lean - def RingHom.IsStandardSmooth - theorem RingHom.IsStandardSmoothOfRelativeDimension.isStandardSmooth - def RingHom.IsStandardSmoothOfRelativeDimension 2024-10-16 11:05:15 36c03bd refactor(AlgebraicGeometry): Make `Scheme.Hom` a structure. (#15093) We make `LocallyRingedSpace.Hom` (resp. `Scheme.Hom`) into a structure instead of a subtype (resp. type-synonym of the former) to make clearer the abstraction boundaries between them and presheafed spaces, which allow us to remove some `erw`s. Plus, this enables us to write `f.base` and `f.c` instead of `f.val.base` and `f.val.c`. ESTIMATED CHANGES Modified Mathlib/AlgebraicGeometry/AffineScheme.lean +/- theorem AlgebraicGeometry.IsAffineOpen.isLocalization_stalk' + theorem AlgebraicGeometry.IsAffineOpen.isoSpec_hom_base_apply - theorem AlgebraicGeometry.IsAffineOpen.isoSpec_hom_val_base_apply Modified Mathlib/AlgebraicGeometry/Cover/Open.lean Modified Mathlib/AlgebraicGeometry/FunctionField.lean Modified Mathlib/AlgebraicGeometry/GammaSpecAdjunction.lean +/- theorem AlgebraicGeometry.LocallyRingedSpace.Γ_Spec_left_triangle + theorem AlgebraicGeometry.Scheme.toSpecΓ_base - theorem AlgebraicGeometry.Scheme.toSpecΓ_val_base +/- def AlgebraicGeometry.ΓSpec.adjunction - theorem AlgebraicGeometry.ΓSpec.adjunction_homEquiv Modified Mathlib/AlgebraicGeometry/Gluing.lean +/- theorem AlgebraicGeometry.Scheme.GlueData.isOpen_iff +/- theorem AlgebraicGeometry.Scheme.OpenCover.fromGlued_injective +/- theorem AlgebraicGeometry.Scheme.OpenCover.fromGlued_openEmbedding +/- theorem AlgebraicGeometry.Scheme.OpenCover.fromGlued_open_map Modified Mathlib/AlgebraicGeometry/Limits.lean +/- theorem AlgebraicGeometry.exists_sigmaι_eq Modified Mathlib/AlgebraicGeometry/Morphisms/Affine.lean Modified Mathlib/AlgebraicGeometry/Morphisms/Basic.lean Modified Mathlib/AlgebraicGeometry/Morphisms/ClosedImmersion.lean Modified Mathlib/AlgebraicGeometry/Morphisms/Constructors.lean Modified Mathlib/AlgebraicGeometry/Morphisms/IsIso.lean Modified Mathlib/AlgebraicGeometry/Morphisms/OpenImmersion.lean Modified Mathlib/AlgebraicGeometry/Morphisms/Preimmersion.lean +/- theorem AlgebraicGeometry.Scheme.Hom.embedding Modified Mathlib/AlgebraicGeometry/Morphisms/QuasiCompact.lean +/- theorem AlgebraicGeometry.quasiCompact_iff_spectral Modified Mathlib/AlgebraicGeometry/Morphisms/QuasiSeparated.lean Modified Mathlib/AlgebraicGeometry/Morphisms/RingHomProperties.lean Modified Mathlib/AlgebraicGeometry/Morphisms/UnderlyingMap.lean +/- theorem AlgebraicGeometry.Scheme.Hom.surjective Modified Mathlib/AlgebraicGeometry/Morphisms/UniversallyClosed.lean Modified Mathlib/AlgebraicGeometry/Noetherian.lean Modified Mathlib/AlgebraicGeometry/OpenImmersion.lean +/- def AlgebraicGeometry.IsOpenImmersion.isoOfRangeEq +/- def AlgebraicGeometry.IsOpenImmersion.isoRestrict +/- def AlgebraicGeometry.IsOpenImmersion.lift +/- theorem AlgebraicGeometry.IsOpenImmersion.lift_fac +/- theorem AlgebraicGeometry.IsOpenImmersion.lift_uniq +/- theorem AlgebraicGeometry.IsOpenImmersion.of_stalk_iso +/- theorem AlgebraicGeometry.IsOpenImmersion.to_iso + theorem AlgebraicGeometry.PresheafedSpace.IsOpenImmersion.toSchemeHom_toPshHom - theorem AlgebraicGeometry.PresheafedSpace.IsOpenImmersion.toSchemeHom_val +/- theorem AlgebraicGeometry.Scheme.Hom.openEmbedding Modified Mathlib/AlgebraicGeometry/ProjectiveSpectrum/Scheme.lean Modified Mathlib/AlgebraicGeometry/Properties.lean Modified Mathlib/AlgebraicGeometry/Pullbacks.lean Modified Mathlib/AlgebraicGeometry/ResidueField.lean +/- theorem AlgebraicGeometry.Scheme.evaluation_naturality +/- theorem AlgebraicGeometry.Scheme.evaluation_naturality_apply Modified Mathlib/AlgebraicGeometry/Restrict.lean +/- theorem AlgebraicGeometry.Scheme.Opens.range_ι + theorem AlgebraicGeometry.morphismRestrict_base - theorem AlgebraicGeometry.morphismRestrict_val_base Modified Mathlib/AlgebraicGeometry/Scheme.lean + def AlgebraicGeometry.Scheme.Hom.Simps.toLRSHom +/- theorem AlgebraicGeometry.Scheme.Hom.continuous +/- def AlgebraicGeometry.Scheme.Hom.stalkMap + structure AlgebraicGeometry.Scheme.Hom - def AlgebraicGeometry.Scheme.Hom + theorem AlgebraicGeometry.Scheme.comp_base + theorem AlgebraicGeometry.Scheme.comp_base_apply + theorem AlgebraicGeometry.Scheme.comp_toLRSHom - theorem AlgebraicGeometry.Scheme.comp_val - theorem AlgebraicGeometry.Scheme.comp_val_base - theorem AlgebraicGeometry.Scheme.comp_val_base_apply +/- def AlgebraicGeometry.Scheme.forgetToLocallyRingedSpace + theorem AlgebraicGeometry.Scheme.id.base - theorem AlgebraicGeometry.Scheme.id_val_base + theorem AlgebraicGeometry.Scheme.iso_hom_base_inv_base + theorem AlgebraicGeometry.Scheme.iso_hom_base_inv_base_apply - theorem AlgebraicGeometry.Scheme.iso_hom_val_base_inv_val_base - theorem AlgebraicGeometry.Scheme.iso_hom_val_base_inv_val_base_apply + theorem AlgebraicGeometry.Scheme.iso_inv_base_hom_base + theorem AlgebraicGeometry.Scheme.iso_inv_base_hom_base_apply - theorem AlgebraicGeometry.Scheme.iso_inv_val_base_hom_val_base - theorem AlgebraicGeometry.Scheme.iso_inv_val_base_hom_val_base_apply +/- theorem AlgebraicGeometry.Scheme.stalkMap_germ +/- theorem AlgebraicGeometry.Scheme.stalkMap_germ_apply +/- theorem AlgebraicGeometry.Scheme.Γ_def +/- theorem AlgebraicGeometry.Spec.map_base Modified Mathlib/AlgebraicGeometry/Spec.lean Modified Mathlib/Geometry/RingedSpace/LocallyRingedSpace.lean + def AlgebraicGeometry.LocallyRingedSpace.Hom.Simps.toShHom +/- theorem AlgebraicGeometry.LocallyRingedSpace.Hom.ext' + theorem AlgebraicGeometry.LocallyRingedSpace.Hom.toShHom_mk +/- structure AlgebraicGeometry.LocallyRingedSpace.Hom + theorem AlgebraicGeometry.LocallyRingedSpace.comp_base + theorem AlgebraicGeometry.LocallyRingedSpace.comp_c + theorem AlgebraicGeometry.LocallyRingedSpace.comp_c_app + theorem AlgebraicGeometry.LocallyRingedSpace.comp_toShHom - theorem AlgebraicGeometry.LocallyRingedSpace.comp_val - theorem AlgebraicGeometry.LocallyRingedSpace.comp_val_c - theorem AlgebraicGeometry.LocallyRingedSpace.comp_val_c_app + theorem AlgebraicGeometry.LocallyRingedSpace.id_toShHom' - theorem AlgebraicGeometry.LocallyRingedSpace.id_val' + theorem AlgebraicGeometry.LocallyRingedSpace.iso_hom_base_inv_base + theorem AlgebraicGeometry.LocallyRingedSpace.iso_hom_base_inv_base_apply - theorem AlgebraicGeometry.LocallyRingedSpace.iso_hom_val_base_inv_val_base - theorem AlgebraicGeometry.LocallyRingedSpace.iso_hom_val_base_inv_val_base_apply + theorem AlgebraicGeometry.LocallyRingedSpace.iso_inv_base_hom_base + theorem AlgebraicGeometry.LocallyRingedSpace.iso_inv_base_hom_base_apply - theorem AlgebraicGeometry.LocallyRingedSpace.iso_inv_val_base_hom_val_base - theorem AlgebraicGeometry.LocallyRingedSpace.iso_inv_val_base_hom_val_base_apply +/- theorem AlgebraicGeometry.LocallyRingedSpace.stalkMap_germ +/- theorem AlgebraicGeometry.LocallyRingedSpace.stalkMap_germ_apply +/- theorem AlgebraicGeometry.LocallyRingedSpace.Γ_map +/- theorem AlgebraicGeometry.LocallyRingedSpace.Γ_map_op Modified Mathlib/Geometry/RingedSpace/LocallyRingedSpace/HasColimits.lean Modified Mathlib/Geometry/RingedSpace/LocallyRingedSpace/ResidueField.lean +/- theorem AlgebraicGeometry.LocallyRingedSpace.evaluation_naturality +/- theorem AlgebraicGeometry.LocallyRingedSpace.evaluation_naturality_apply +/- def AlgebraicGeometry.LocallyRingedSpace.residueFieldMap Modified Mathlib/Geometry/RingedSpace/OpenImmersion.lean +/- theorem AlgebraicGeometry.LocallyRingedSpace.IsOpenImmersion.app_inv_app' +/- def AlgebraicGeometry.LocallyRingedSpace.IsOpenImmersion.lift +/- theorem AlgebraicGeometry.LocallyRingedSpace.IsOpenImmersion.lift_fac +/- theorem AlgebraicGeometry.LocallyRingedSpace.IsOpenImmersion.lift_range +/- theorem AlgebraicGeometry.LocallyRingedSpace.IsOpenImmersion.lift_uniq +/- theorem AlgebraicGeometry.LocallyRingedSpace.IsOpenImmersion.of_stalk_iso +/- theorem AlgebraicGeometry.LocallyRingedSpace.IsOpenImmersion.pullback_snd_isIso_of_range_subset +/- theorem AlgebraicGeometry.LocallyRingedSpace.IsOpenImmersion.to_iso +/- theorem AlgebraicGeometry.PresheafedSpace.IsOpenImmersion.toLocallyRingedSpaceHom_val Modified Mathlib/Geometry/RingedSpace/PresheafedSpace.lean Modified Mathlib/Geometry/RingedSpace/PresheafedSpace/Gluing.lean +/- theorem AlgebraicGeometry.LocallyRingedSpace.GlueData.ι_jointly_surjective 2024-10-16 10:27:02 4fde5a5 feat(SetTheory/Ordinal/Exponential): more lemmas on `opow` (#17804) ESTIMATED CHANGES Modified Mathlib/SetTheory/Ordinal/Exponential.lean + theorem Ordinal.left_lt_opow + theorem Ordinal.opow_le_opow 2024-10-16 10:27:01 8591fb6 feat: `s ⊆ f '' t → f ⁻¹' s ⊆ t` (#17788) ESTIMATED CHANGES Modified Mathlib/Data/Finset/Preimage.lean + theorem Finset.preimage_subset_of_subset_image Modified Mathlib/Data/Set/Image.lean + theorem Set.preimage_subset 2024-10-16 10:27:00 88e7113 feat(SetTheory/Ordinal/Arithmetic): `a ≤ b → a / c ≤ b / c` (#17741) ESTIMATED CHANGES Modified Mathlib/SetTheory/Ordinal/Arithmetic.lean + theorem Ordinal.div_le_left 2024-10-16 10:11:37 8e7833a feat: `MeasurableSpace` instance for the quotient of a module by a submodule (#17812) From PFR ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/MeasureTheory/Constructions/SubmoduleQuotient.lean Modified Mathlib/MeasureTheory/MeasurableSpace/Basic.lean 2024-10-16 08:50:02 4564def chore(Multiset/Basic): added `gcongr` and `congr` to `Multiset` (#17793) While working on some theorems about `MvPolynomial.degrees`, I noticed that a lot of `Multiset` functions do not have `gcongr` or `congr` attributes. So I added them in this PR. Note: I only looked at the definitions in `Multiset/Basic`. If this PR is approved I will do the same for other functions in `Multiset` folder. ESTIMATED CHANGES Modified Mathlib/Data/Multiset/Basic.lean + theorem Multiset.replicate_mono 2024-10-16 08:40:45 b913345 feat(CategoryTheory/Limits): definition of sifted categories (#17779) Introduce the class of sifted categories. A category `IsSifted` if it is nonempty and the diagonal functor is a final functor. - Show that sifted categories are stable under equivalences of categories. - Show that a category is sifted if and only if a small model of it is sifted. - Show that a sifted category is connected. - Show that a category with binary coproducts is sifted. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Limits/Sifted.lean + theorem CategoryTheory.IsSifted.isSifted_iff_asSmallIsSifted + theorem CategoryTheory.IsSifted.isSifted_of_equiv Modified docs/references.bib 2024-10-16 08:26:02 f38babe feat: `comap` of a finite measure along a measurable equiv is finite (#17639) From PFR ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Measure/MeasureSpace.lean + theorem MeasureTheory.Measure.nonempty_of_neZero Modified Mathlib/MeasureTheory/Measure/Typeclasses.lean 2024-10-16 07:57:09 765ccc9 chore: update overview to use Std.HashMap, not Batteries.HashMap (#17797) ESTIMATED CHANGES Modified docs/overview.yaml 2024-10-16 07:57:08 e398204 feat(NumberTheory/Fermat): fermat_eq_fermat_sub_one_pow_two_add_one (#17611) - [x] depends on: #17618 ESTIMATED CHANGES Modified Mathlib/NumberTheory/Fermat.lean + theorem Nat.fermatNumber_succ 2024-10-16 06:24:48 9a958e8 doc: clarify doc of `Module.finrank` (#17780) ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/Dimension/Finrank.lean 2024-10-16 05:50:14 a5bdd27 chore: deprecate Fin.ofNat'' (#17759) Now that `NeZero` is in Lean, `Fin.ofNat'` already means the right thing. ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Fin/Basic.lean Modified Mathlib/Data/Fin/Basic.lean - theorem Fin.ofNat''_eq_cast + theorem Fin.ofNat'_eq_cast - theorem Fin.ofNat'_one - theorem Fin.ofNat'_zero 2024-10-16 05:50:13 b3db14f feat(CategoryTheory/Sites): infima of pretopologies (#17734) Defines a complete lattice structure on pretopologies with good definitional properties for bottom, top and infima. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Sites/Grothendieck.lean + theorem CategoryTheory.GrothendieckTopology.mem_sInf Modified Mathlib/CategoryTheory/Sites/Pretopology.lean + theorem CategoryTheory.Pretopology.isGLB_sInf + theorem CategoryTheory.Pretopology.mem_inf + theorem CategoryTheory.Pretopology.mem_ofGrothendieck + theorem CategoryTheory.Pretopology.mem_sInf + theorem CategoryTheory.Pretopology.sInf_ofGrothendieck 2024-10-16 05:50:11 7a8cf3c feat(AlgebraicGeometry/RingHomProperties): a property induced from `Locally Q` is equivalent to locally `Q` (#17305) If `P` is a morphism property of schemes associated to the property `Locally Q` for a property of ring homomorphisms `Q`, then for a morphism `f`, `P f` is equivalent to: for every point `x` in the source there exist open affine neighborhoods around `x` and `f.val.base x` respectively such that the induced map of rings satisfies `Q`. This guarantees that we may define properties of scheme morphisms explicitly as described above for properties of ring homomorphisms that are not necessarily local at the target and still use the API for `HasRingHomProperty`. ESTIMATED CHANGES Modified Mathlib/AlgebraicGeometry/Morphisms/RingHomProperties.lean + theorem AlgebraicGeometry.HasRingHomProperty.copy + theorem AlgebraicGeometry.HasRingHomProperty.iff_exists_appLE_locally 2024-10-16 04:43:28 e11ad74 chore: split Data.Finite.Basic (#17796) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/CategoryTheory/FintypeCat.lean Modified Mathlib/CategoryTheory/Galois/Decomposition.lean Modified Mathlib/CategoryTheory/Limits/FintypeCat.lean Modified Mathlib/Combinatorics/HalesJewett.lean Modified Mathlib/Data/Fin/Tuple/BubbleSortInduction.lean Modified Mathlib/Data/Fin/Tuple/Sort.lean Modified Mathlib/Data/Finite/Basic.lean - theorem Finite.prod_left - theorem Finite.prod_right - theorem Finite.sum_left - theorem Finite.sum_right Added Mathlib/Data/Finite/Powerset.lean Added Mathlib/Data/Finite/Prod.lean + theorem Finite.prod_left + theorem Finite.prod_right Added Mathlib/Data/Finite/Sigma.lean Added Mathlib/Data/Finite/Sum.lean + theorem Finite.sum_left + theorem Finite.sum_right Added Mathlib/Data/Finite/Vector.lean Modified Mathlib/Data/Finset/Preimage.lean Modified Mathlib/Data/FunLike/Fintype.lean Modified Mathlib/Data/Set/Finite.lean +/- theorem List.finite_length_eq Modified Mathlib/GroupTheory/Abelianization.lean Modified Mathlib/GroupTheory/GroupAction/Quotient.lean Modified Mathlib/GroupTheory/Perm/Finite.lean Modified Mathlib/GroupTheory/Perm/Sign.lean Modified Mathlib/GroupTheory/SpecificGroups/Dihedral.lean Modified Mathlib/LinearAlgebra/Matrix/ToLin.lean Modified Mathlib/ModelTheory/DirectLimit.lean 2024-10-16 04:43:27 52ec24b feat(AlgebraicGeometry/EllipticCurve/J): further properties of j-invariants of elliptic curves (#17431) Currently there is only one new result: - `EllipticCurve.exists_variableChange_of_j_eq`: if `E` and `E'` are elliptic curves with the same `j`-invariants defined over a separably closed field, then there exists a change of variables over that field which change `E` into `E'`. For convenience, a few new results for normal forms are added to `EllipticCurve` namespace, parallel to that of `WeierstrassCurve`. Also added some convenience auxiliary results used in this PR: - `Algebra/CharP/Defs`: `CharP.cast_ne_zero_of_ne_of_prime` - `FieldTheory/Separable`: `Polynomial.separable_C_mul_X_pow_add_C_mul_X_add_C[']` - `FieldTheory/IsSepClosed`: `IsSepClosed.exists_root_C_mul_X_pow_add_C_mul_X_add_C[']` ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/CharP/Defs.lean + theorem CharP.cast_ne_zero_of_ne_of_prime Added Mathlib/AlgebraicGeometry/EllipticCurve/J.lean + theorem EllipticCurve.exists_variableChange_of_j_eq Modified Mathlib/AlgebraicGeometry/EllipticCurve/NormalForms.lean + theorem EllipticCurve.exists_variableChange_isCharNeTwoNF + theorem EllipticCurve.exists_variableChange_isCharThreeNF + theorem EllipticCurve.exists_variableChange_isCharTwoNF + theorem EllipticCurve.exists_variableChange_isShortNF + theorem EllipticCurve.toCharThreeNF_spec_of_b₂_eq_zero + theorem EllipticCurve.toCharThreeNF_spec_of_b₂_ne_zero + theorem EllipticCurve.toCharTwoJEqZeroNF_spec + theorem EllipticCurve.toCharTwoJNeZeroNF_spec + theorem EllipticCurve.toShortNFOfCharThree_spec Modified Mathlib/FieldTheory/IsSepClosed.lean + theorem IsSepClosed.exists_root_C_mul_X_pow_add_C_mul_X_add_C' + theorem IsSepClosed.exists_root_C_mul_X_pow_add_C_mul_X_add_C Modified Mathlib/FieldTheory/Separable.lean + theorem Polynomial.separable_C_mul_X_pow_add_C_mul_X_add_C' + theorem Polynomial.separable_C_mul_X_pow_add_C_mul_X_add_C + theorem Polynomial.separable_X_pow_sub_C' 2024-10-16 04:43:26 7994a4b refactor(RingTheory/Multiplicity): split to Nat-valued `multiplicity` and ENat-valued `emultiplicity` (#16881) Also rename a bunch of stuff, and move most results outside of the `multiplicity` namespace. Moves (note that the definition of many of these has changed slightly): - multiplicity -> emultiplicity - multiplicity.finite_def -> multiplicity.Finite.def - multiplicity.not_dvd_one_of_finite_one_right -> multiplicity.Finite.not_dvd_of_one_right - multiplicity.Int.natCast_multiplicity -> Int.natCast_emultiplicity - multiplicity.not_finite_iff_forall -> multiplicity.Finite.not_iff_forall - multiplicity.not_unit_of_finite -> multiplicity.Finite.not_unit - multiplicity.finite_of_finite_mul_right -> multiplicity.Finite.mul_left - multiplicity.pow_dvd_of_le_multiplicity -> pow_dvd_of_le_emultiplicity - multiplicity.pow_multiplicity_dvd -> pow_multiplicity_dvd - multiplicity.is_greatest -> not_pow_dvd_of_emultiplicity_lt - multiplicity.is_greatest' -> multiplicity.Finite.not_pow_dvd_of_multiplicity_lt - multiplicity.pos_of_dvd -> emultiplicity_pos_of_dvd - multiplicity.unique -> emultiplicity_eq_of_dvd_of_not_dvd - multiplicity.unique' -> multiplicity_eq_of_dvd_of_not_dvd - multiplicity.le_multiplicity_of_pow_dvd -> le_emultiplicity_of_pow_dvd - multiplicity.pow_dvd_iff_le_multiplicity -> pow_dvd_iff_le_emultiplicity - multiplicity.multiplicity_lt_iff_not_dvd -> emultiplicity_lt_iff_not_dvd - multiplicity.eq_coe_iff -> emultiplicity_eq_coe - multiplicity.eq_top_iff -> emultiplicity_eq_top - multiplicity.isUnit_left -> multiplicity.Finite.not_of_isUnit_left - multiplicity.one_left -> emultiplicity_one_left - multiplicity.get_one_right -> multiplicity.Finite.one_right - multiplicity.unit_left -> multiplicity.Finite.not_of_unit_left - multiplicity.multiplicity_eq_zero -> emultiplicity_eq_zero - multiplicity.multiplicity_ne_zero -> emultiplicity_ne_zero - multiplicity.eq_top_iff_not_finite -> emultiplicity_eq_top - multiplicity.ne_top_iff_finite -> finite_iff_emultiplicity_ne_top - multiplicity.lt_top_iff_finite -> emultiplicity_lt_top - multiplicity.exists_eq_pow_mul_and_not_dvd -> multiplicity.Finite.exists_eq_pow_mul_and_not_dvd - multiplicity.multiplicity_le_multiplicity_iff -> emultiplicity_le_emultiplicity_iff - multiplicity.multiplicity_eq_multiplicity_iff -> emultiplicity_eq_emultiplicity_iff - multiplicity.le_multiplicity_map -> le_emultiplicity_map - multiplicity.multiplicity_map_eq -> emultiplicity_map_eq - multiplicity.multiplicity_le_multiplicity_of_dvd_right -> emultiplicity_le_emultiplicity_of_dvd_right - multiplicity.eq_of_associated_right -> emultiplicity_eq_of_associated_right - multiplicity.dvd_of_multiplicity_pos -> dvd_of_emultiplicity_pos - multiplicity.dvd_iff_multiplicity_pos -> dvd_iff_emultiplicity_pos - multiplicity.finite_nat_iff -> Nat.multiplicity_finite_iff - has_dvd.dvd.multiplicity_pos -> Dvd.multiplicity_pos - multiplicity.finite_of_finite_mul_left -> multiplicity.Finite.mul_right - multiplicity.isUnit_right -> emultiplicity_of_isUnit_right - multiplicity.one_right -> emultiplicity_of_one_right - multiplicity.unit_right -> emultiplicity_of_unit_right - multiplicity.multiplicity_le_multiplicity_of_dvd_left -> emultiplicity_le_emultiplicity_of_dvd_left - multiplicity.eq_of_associated_left -> emultiplicity_eq_of_associated_left - multiplicity.ne_zero_of_finite -> multiplicity.Finite.ne_zero - multiplicity.zero -> emultiplicity_zero - multiplicity.multiplicity_zero_eq_zero_of_ne_zero -> emultiplicity_zero_eq_zero_of_ne_zero - multiplicity.multiplicity_mk_eq_multiplicity -> emultiplicity_mk_eq_emultiplicity - multiplicity.min_le_multiplicity_add -> min_le_emultiplicity_add - multiplicity.neg -> emultiplicity_neg - multiplicity.Int.natAbs -> Int.emultiplicity_natAbs - multiplicity.multiplicity_add_of_gt -> emultiplicity_add_of_gt - multiplicity.multiplicity_sub_of_gt -> emultiplicity_sub_of_gt - multiplicity.multiplicity_add_eq_min -> emultiplicity_add_eq_min - multiplicity.finite_mul -> Prime.multiplicity_finite_mul - multiplicity.finite_mul_iff -> multiplicity.Finite.mul_iff - multiplicity.finite_pow -> multiplicity.Finite.pow - multiplicity.multiplicity_self -> multiplicity_self - multiplicity.get_multiplicity_self -> multiplicity.Finite.emultiplicity_self - multiplicity.mul' -> multiplicity_mul - multiplicity.mul -> emultiplicity_mul - multiplicity.Finset.prod -> Finset.emultiplicity_prod - multiplicity.pow' -> multiplicity.Finite.multiplicity_pow - multiplicity.pow -> emultiplicity_pow - multiplicity.multiplicity_pow_self -> emultiplicity_pow_self - multiplicity.multiplicity_pow_self_of_prime -> emultiplicity_pow_self_of_prime - multiplicity.finite_int_iff_natAbs_finite -> Int.multiplicity_finite_iff_natAbs_finite - multiplicity.finite_int_iff -> Int.multiplicity_finite_int_iff - multiplicity.squarefree_iff_multiplicity_le_one -> multiplicity.squarefree_iff_emultiplicity_le_one - Nat.multiplicity_eq_card_pow_dvd -> Nat.emultiplicity_eq_card_pow_dvd - Nat.Prime.multiplicity_one -> Nat.Prime.emultiplicity_one - Nat.Prime.multiplicity_mul -> Nat.Prime.emultiplicity_mul - Nat.Prime.multiplicity_pow -> Nat.Prime.emultiplicity_pow - Nat.Prime.multiplicity_self -> Nat.Prime.emultiplicity_self - Nat.Prime.multiplicity_pow_self -> Nat.Prime.emultiplicity_pow_self - Nat.Prime.multiplicity_factorial -> Nat.Prime.emultiplicity_factorial - Nat.Prime.multiplicity_factorial_mul_succ -> Nat.Prime.emultiplicity_factorial_mul_succ - Nat.Prime.multiplicity_factorial_mul -> Nat.Prime.emultiplicity_factorial_mul - Nat.Prime.multiplicity_choose' -> Nat.Prime.emultiplicity_choose' - Nat.Prime.multiplicity_choose -> Nat.Prime.emultiplicity_choose - Nat.Prime.multiplicity_le_multiplicity_choose_add -> Nat.Prime.emultiplicity_le_emultiplicity_choose_add - Nat.Prime.multiplicity_choose_prime_pow_add_multiplicity -> Nat.Prime.emultiplicity_choose_prime_pow_add_emultiplicity - Nat.Prime.multiplicity_choose_prime_pow -> Nat.Prime.emultiplicity_choose_prime_pow - Nat.Prime.multiplicity_two_factorial_lt -> Nat.Prime.emultiplicity_two_factorial_lt - Polynomial.multiplicity_le_one_of_separable -> Polynomial.emultiplicity_le_one_of_separable - KummerDedekind.multiplicity_factors_map_eq_multiplicity -> KummerDedekind.emultiplicity_factors_map_eq_emultiplicity - padicValNat.maxPowDiv_eq_multiplicity -> padicValNat.maxPowDiv_eq_emultiplicity - padicValNat.maxPowDiv_eq_multiplicity_get -> padicValNat.maxPowDiv_eq_multiplicity - le_multiplicity_iff_replicate_subperm_primeFactorsList -> le_emultiplicity_iff_replicate_subperm_primeFactorsList - multiplicity_prime_le_multiplicity_image_by_factor_orderIso -> emultiplicity_prime_le_emultiplicity_image_by_factor_orderIso - multiplicity_prime_eq_multiplicity_image_by_factor_orderIso -> emultiplicity_prime_eq_emultiplicity_image_by_factor_orderIso - multiplicity_factor_dvd_iso_eq_multiplicity_of_mem_normalizedFactors -> emultiplicity_factor_dvd_iso_eq_emultiplicity_of_mem_normalizedFactors - normalizedFactorsEquivOfQuotEquiv_multiplicity_eq_multiplicity -> normalizedFactorsEquivOfQuotEquiv_emultiplicity_eq_emultiplicity - multiplicity_eq_multiplicity_span -> emultiplicity_eq_emultiplicity_span - multiplicity_normalizedFactorsEquivSpanNormalizedFactors_eq_multiplicity -> emultiplicity_normalizedFactorsEquivSpanNormalizedFactors_eq_emultiplicity - multiplicity_normalizedFactorsEquivSpanNormalizedFactors_symm_eq_multiplicity -> emultiplicity_normalizedFactorsEquivSpanNormalizedFactors_symm_eq_emultiplicity - PowerSeries.order_eq_multiplicity_X -> PowerSeries.order_eq_emultiplicity_X - UniqueFactorizationMonoid.le_multiplicity_iff_replicate_le_normalizedFactors -> UniqueFactorizationMonoid.le_emultiplicity_iff_replicate_le_normalizedFactors - UniqueFactorizationMonoid.multiplicity_eq_count_normalizedFactors -> UniqueFactorizationMonoid.emultiplicity_eq_count_normalizedFactors - multiplicity.addValuation -> multiplicity_addValuation - multiplicity.addValuation_apply -> multiplicity_addValuation_apply Deletions: - multiplicity.finite_iff_dom - multiplicity.decidableNat - multiplicity.decidableInt ESTIMATED CHANGES Modified Archive/Imo/Imo2019Q4.lean Modified Archive/Wiedijk100Theorems/PerfectNumbers.lean Modified Mathlib/Algebra/Polynomial/Div.lean +/- theorem Polynomial.rootMultiplicity_eq_multiplicity Modified Mathlib/Algebra/Polynomial/RingDivision.lean Modified Mathlib/Algebra/Squarefree/Basic.lean + theorem multiplicity.squarefree_iff_emultiplicity_le_one - theorem multiplicity.squarefree_iff_multiplicity_le_one Modified Mathlib/Data/Nat/Choose/Factorization.lean Modified Mathlib/Data/Nat/Factorization/Basic.lean Modified Mathlib/Data/Nat/Multiplicity.lean + theorem Nat.Prime.emultiplicity_choose' + theorem Nat.Prime.emultiplicity_choose + theorem Nat.Prime.emultiplicity_choose_prime_pow + theorem Nat.Prime.emultiplicity_choose_prime_pow_add_emultiplicity + theorem Nat.Prime.emultiplicity_factorial + theorem Nat.Prime.emultiplicity_factorial_le_div_pred + theorem Nat.Prime.emultiplicity_factorial_mul + theorem Nat.Prime.emultiplicity_factorial_mul_succ + theorem Nat.Prime.emultiplicity_le_emultiplicity_choose_add + theorem Nat.Prime.emultiplicity_mul + theorem Nat.Prime.emultiplicity_one + theorem Nat.Prime.emultiplicity_pow + theorem Nat.Prime.emultiplicity_pow_self + theorem Nat.Prime.emultiplicity_self - theorem Nat.Prime.multiplicity_choose' - theorem Nat.Prime.multiplicity_choose - theorem Nat.Prime.multiplicity_choose_prime_pow - theorem Nat.Prime.multiplicity_choose_prime_pow_add_multiplicity - theorem Nat.Prime.multiplicity_factorial - theorem Nat.Prime.multiplicity_factorial_le_div_pred - theorem Nat.Prime.multiplicity_factorial_mul - theorem Nat.Prime.multiplicity_factorial_mul_succ - theorem Nat.Prime.multiplicity_le_multiplicity_choose_add - theorem Nat.Prime.multiplicity_mul - theorem Nat.Prime.multiplicity_one - theorem Nat.Prime.multiplicity_pow - theorem Nat.Prime.multiplicity_pow_self - theorem Nat.Prime.multiplicity_self + theorem Nat.emultiplicity_eq_card_pow_dvd + theorem Nat.emultiplicity_two_factorial_lt - theorem Nat.multiplicity_eq_card_pow_dvd - theorem Nat.multiplicity_two_factorial_lt Modified Mathlib/Data/Nat/Squarefree.lean Modified Mathlib/Data/Real/Irrational.lean Modified Mathlib/FieldTheory/Separable.lean + theorem Polynomial.emultiplicity_le_one_of_separable - theorem Polynomial.multiplicity_le_one_of_separable Modified Mathlib/FieldTheory/SeparableDegree.lean Modified Mathlib/NumberTheory/FLT/Three.lean - def FermatLastTheoremForThreeGen.Solution'.multiplicity - def FermatLastTheoremForThreeGen.Solution.multiplicity Modified Mathlib/NumberTheory/KummerDedekind.lean + theorem KummerDedekind.emultiplicity_factors_map_eq_emultiplicity - theorem KummerDedekind.multiplicity_factors_map_eq_multiplicity Modified Mathlib/NumberTheory/Multiplicity.lean +/- theorem multiplicity.geom_sum₂_eq_one Modified Mathlib/NumberTheory/Padics/PadicNorm.lean Modified Mathlib/NumberTheory/Padics/PadicVal/Basic.lean + theorem padicValNat.maxPowDiv_eq_emultiplicity +/- theorem padicValNat.maxPowDiv_eq_multiplicity - theorem padicValNat.maxPowDiv_eq_multiplicity_get Modified Mathlib/NumberTheory/Padics/PadicVal/Defs.lean + theorem le_emultiplicity_iff_replicate_subperm_primeFactorsList - theorem le_multiplicity_iff_replicate_subperm_primeFactorsList + theorem padicValNat_eq_emultiplicity Modified Mathlib/RingTheory/ChainOfDivisors.lean + theorem emultiplicity_factor_dvd_iso_eq_emultiplicity_of_mem_normalizedFactors + theorem emultiplicity_prime_eq_emultiplicity_image_by_factor_orderIso + theorem emultiplicity_prime_le_emultiplicity_image_by_factor_orderIso - theorem multiplicity_factor_dvd_iso_eq_multiplicity_of_mem_normalizedFactors - theorem multiplicity_prime_eq_multiplicity_image_by_factor_orderIso - theorem multiplicity_prime_le_multiplicity_image_by_factor_orderIso Modified Mathlib/RingTheory/DedekindDomain/Ideal.lean + theorem emultiplicity_eq_emultiplicity_span + theorem emultiplicity_normalizedFactorsEquivSpanNormalizedFactors_eq_emultiplicity + theorem emultiplicity_normalizedFactorsEquivSpanNormalizedFactors_symm_eq_emultiplicity +/- theorem irreducible_pow_sup_of_ge +/- theorem irreducible_pow_sup_of_le - theorem multiplicity_eq_multiplicity_span - theorem multiplicity_normalizedFactorsEquivSpanNormalizedFactors_eq_multiplicity - theorem multiplicity_normalizedFactorsEquivSpanNormalizedFactors_symm_eq_multiplicity + theorem normalizedFactorsEquivOfQuotEquiv_emultiplicity_eq_emultiplicity - theorem normalizedFactorsEquivOfQuotEquiv_multiplicity_eq_multiplicity Modified Mathlib/RingTheory/DiscreteValuationRing/Basic.lean Modified Mathlib/RingTheory/Multiplicity.lean + theorem Finset.emultiplicity_prod + theorem Int.emultiplicity_natAbs + theorem Int.multiplicity_finite_iff + theorem Int.multiplicity_finite_iff_natAbs_finite + theorem Int.multiplicity_natAbs + theorem Int.natCast_emultiplicity + theorem Int.natCast_multiplicity + theorem Nat.multiplicity_finite_iff + theorem Prime.multiplicity_finite_mul + theorem dvd_iff_emultiplicity_pos + theorem dvd_iff_multiplicity_pos + theorem dvd_of_emultiplicity_pos + theorem dvd_of_multiplicity_pos + theorem emultiplicity_add_eq_min + theorem emultiplicity_add_of_gt + theorem emultiplicity_eq_coe + theorem emultiplicity_eq_emultiplicity_iff + theorem emultiplicity_eq_iff_multiplicity_eq_of_ne_one + theorem emultiplicity_eq_of_associated_left + theorem emultiplicity_eq_of_associated_right + theorem emultiplicity_eq_of_dvd_of_not_dvd + theorem emultiplicity_eq_top + theorem emultiplicity_eq_zero + theorem emultiplicity_eq_zero_iff_multiplicity_eq_zero + theorem emultiplicity_le_emultiplicity_iff + theorem emultiplicity_le_emultiplicity_of_dvd_left + theorem emultiplicity_le_emultiplicity_of_dvd_right + theorem emultiplicity_lt_iff_not_dvd + theorem emultiplicity_lt_top + theorem emultiplicity_map_eq + theorem emultiplicity_mk_eq_emultiplicity + theorem emultiplicity_mul + theorem emultiplicity_ne_of_multiplicity_ne + theorem emultiplicity_ne_zero + theorem emultiplicity_neg + theorem emultiplicity_of_isUnit_right + theorem emultiplicity_of_one_right + theorem emultiplicity_of_unit_right + theorem emultiplicity_one_left + theorem emultiplicity_pos_iff + theorem emultiplicity_pos_of_dvd + theorem emultiplicity_pow + theorem emultiplicity_pow_self + theorem emultiplicity_pow_self_of_prime + theorem emultiplicity_sub_of_gt + theorem emultiplicity_zero + theorem emultiplicity_zero_eq_zero_of_ne_zero + theorem finite_iff_emultiplicity_ne_top + theorem finite_of_emultiplicity_eq_natCast + theorem le_emultiplicity_map + theorem le_emultiplicity_of_le_multiplicity + theorem le_emultiplicity_of_pow_dvd + theorem lt_emultiplicity_of_lt_multiplicity + theorem min_le_emultiplicity_add + theorem multiplicity.Finite.def + theorem multiplicity.Finite.emultiplicity_eq_iff_multiplicity_eq + theorem multiplicity.Finite.emultiplicity_eq_multiplicity + theorem multiplicity.Finite.emultiplicity_le_of_multiplicity_le + theorem multiplicity.Finite.emultiplicity_lt_of_multiplicity_lt + theorem multiplicity.Finite.emultiplicity_self + theorem multiplicity.Finite.exists_eq_pow_mul_and_not_dvd + theorem multiplicity.Finite.le_multiplicity_of_le_emultiplicity + theorem multiplicity.Finite.le_multiplicity_of_pow_dvd + theorem multiplicity.Finite.lt_multiplicity_of_lt_emultiplicity + theorem multiplicity.Finite.mul_iff + theorem multiplicity.Finite.mul_left + theorem multiplicity.Finite.mul_right + theorem multiplicity.Finite.multiplicity_add_of_gt + theorem multiplicity.Finite.multiplicity_eq_iff + theorem multiplicity.Finite.multiplicity_le_multiplicity_iff + theorem multiplicity.Finite.multiplicity_lt_iff_not_dvd + theorem multiplicity.Finite.ne_zero + theorem multiplicity.Finite.neg_iff + theorem multiplicity.Finite.not_dvd_of_one_right + theorem multiplicity.Finite.not_iff_forall + theorem multiplicity.Finite.not_of_isUnit_left + theorem multiplicity.Finite.not_of_one_left + theorem multiplicity.Finite.not_of_unit_left + theorem multiplicity.Finite.not_pow_dvd_of_multiplicity_lt + theorem multiplicity.Finite.not_unit + theorem multiplicity.Finite.one_right + theorem multiplicity.Finite.or_of_add + theorem multiplicity.Finite.pow + theorem multiplicity.Finite.pow_dvd_iff_le_multiplicity - theorem multiplicity.Finset.prod - theorem multiplicity.Int.natAbs - theorem multiplicity.Int.natCast_multiplicity - theorem multiplicity.dvd_iff_multiplicity_pos - theorem multiplicity.dvd_of_multiplicity_pos - theorem multiplicity.eq_coe_iff - theorem multiplicity.eq_of_associated_left - theorem multiplicity.eq_of_associated_right - theorem multiplicity.eq_top_iff - theorem multiplicity.eq_top_iff_not_finite - theorem multiplicity.exists_eq_pow_mul_and_not_dvd - theorem multiplicity.finite_def - theorem multiplicity.finite_iff_dom - theorem multiplicity.finite_int_iff - theorem multiplicity.finite_int_iff_natAbs_finite - theorem multiplicity.finite_mul +/- theorem multiplicity.finite_mul_aux - theorem multiplicity.finite_mul_iff - theorem multiplicity.finite_nat_iff - theorem multiplicity.finite_of_finite_mul_left - theorem multiplicity.finite_of_finite_mul_right - theorem multiplicity.finite_pow - theorem multiplicity.get_multiplicity_self - theorem multiplicity.get_one_right - theorem multiplicity.isUnit_left - theorem multiplicity.isUnit_right - theorem multiplicity.is_greatest' - theorem multiplicity.is_greatest - theorem multiplicity.le_multiplicity_map - theorem multiplicity.le_multiplicity_of_pow_dvd - theorem multiplicity.lt_top_iff_finite - theorem multiplicity.min_le_multiplicity_add - theorem multiplicity.multiplicity_add_eq_min - theorem multiplicity.multiplicity_add_of_gt - theorem multiplicity.multiplicity_eq_multiplicity_iff - theorem multiplicity.multiplicity_eq_zero - theorem multiplicity.multiplicity_le_multiplicity_iff - theorem multiplicity.multiplicity_le_multiplicity_of_dvd_left - theorem multiplicity.multiplicity_le_multiplicity_of_dvd_right - theorem multiplicity.multiplicity_lt_iff_not_dvd - theorem multiplicity.multiplicity_map_eq - theorem multiplicity.multiplicity_mk_eq_multiplicity - theorem multiplicity.multiplicity_ne_zero - theorem multiplicity.multiplicity_pow_self - theorem multiplicity.multiplicity_pow_self_of_prime - theorem multiplicity.multiplicity_self - theorem multiplicity.multiplicity_sub_of_gt - theorem multiplicity.multiplicity_zero_eq_zero_of_ne_zero - theorem multiplicity.ne_top_iff_finite - theorem multiplicity.ne_zero_of_finite - theorem multiplicity.not_dvd_one_of_finite_one_right - theorem multiplicity.not_finite_iff_forall - theorem multiplicity.not_unit_of_finite - theorem multiplicity.one_left - theorem multiplicity.one_right - theorem multiplicity.pos_of_dvd - theorem multiplicity.pow - theorem multiplicity.pow_dvd_iff_le_multiplicity - theorem multiplicity.pow_dvd_of_le_multiplicity - theorem multiplicity.pow_multiplicity_dvd - theorem multiplicity.unique' - theorem multiplicity.unique - theorem multiplicity.unit_left - theorem multiplicity.unit_right - def multiplicity + theorem multiplicity_add_eq_min + theorem multiplicity_eq_of_associated_left + theorem multiplicity_eq_of_associated_right + theorem multiplicity_eq_of_dvd_of_not_dvd + theorem multiplicity_eq_of_emultiplicity_eq + theorem multiplicity_eq_of_emultiplicity_eq_some + theorem multiplicity_eq_one_of_not_finite + theorem multiplicity_eq_zero + theorem multiplicity_le_emultiplicity + theorem multiplicity_le_of_emultiplicity_le + theorem multiplicity_lt_of_emultiplicity_lt + theorem multiplicity_map_eq + theorem multiplicity_mul + theorem multiplicity_ne_zero + theorem multiplicity_neg + theorem multiplicity_of_isUnit_right + theorem multiplicity_of_one_right + theorem multiplicity_of_unit_right + theorem multiplicity_pos_of_dvd + theorem multiplicity_pow_self + theorem multiplicity_pow_self_of_prime + theorem multiplicity_self + theorem multiplicity_sub_of_gt + theorem multiplicity_zero_eq_zero_of_ne_zero + theorem not_pow_dvd_of_emultiplicity_lt + theorem pow_dvd_iff_le_emultiplicity + theorem pow_dvd_of_le_emultiplicity + theorem pow_dvd_of_le_multiplicity + theorem pow_multiplicity_dvd Modified Mathlib/RingTheory/PowerSeries/Inverse.lean Modified Mathlib/RingTheory/PowerSeries/Order.lean + theorem PowerSeries.order_eq_emultiplicity_X - theorem PowerSeries.order_eq_multiplicity_X Modified Mathlib/RingTheory/RootsOfUnity/Basic.lean Modified Mathlib/RingTheory/RootsOfUnity/Minpoly.lean Modified Mathlib/RingTheory/UniqueFactorizationDomain.lean + theorem UniqueFactorizationMonoid.emultiplicity_eq_count_normalizedFactors + theorem UniqueFactorizationMonoid.le_emultiplicity_iff_replicate_le_normalizedFactors - theorem UniqueFactorizationMonoid.le_multiplicity_iff_replicate_le_normalizedFactors - theorem UniqueFactorizationMonoid.multiplicity_eq_count_normalizedFactors Modified Mathlib/RingTheory/Valuation/PrimeMultiplicity.lean - theorem multiplicity.addValuation_apply + theorem multiplicity_addValuation_apply Modified Mathlib/RingTheory/WittVector/Frobenius.lean 2024-10-16 04:43:24 66d4c59 feat(Condensed): colimit characterization of discrete condensed sets (#15566) This PR provides the necessary API to prove that a condensed set `X` is discrete if and only if for every profinite set `S = limᵢSᵢ`, `X(S) ≅ colimᵢX(Sᵢ)`, and the analogous result for light condensed sets. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Condensed/Discrete/Colimit.lean + def Condensed.finYoneda + def Condensed.fintypeCatAsCofan + def Condensed.fintypeCatAsCofanIsColimit + theorem Condensed.isColimitLocallyConstantPresheafDiagram_desc_apply + theorem Condensed.isColimitLocallyConstantPresheaf_desc_apply + def Condensed.isoFinYoneda + def Condensed.isoFinYonedaComponents + theorem Condensed.isoFinYonedaComponents_hom_apply + theorem Condensed.isoFinYonedaComponents_inv_comp + def Condensed.isoLocallyConstantOfIsColimit + theorem Condensed.isoLocallyConstantOfIsColimit_inv + def Condensed.lanCondensedSet + def Condensed.lanPresheafExt + theorem Condensed.lanPresheafExt_hom + theorem Condensed.lanPresheafExt_inv + def Condensed.lanPresheafIso + theorem Condensed.lanPresheafIso_hom + def Condensed.lanPresheafNatIso + theorem Condensed.lanPresheafNatIso_hom_app + def Condensed.lanSheafProfinite + def Condensed.locallyConstantIsoFinYoneda + def LightCondensed.finYoneda + def LightCondensed.fintypeCatAsCofan + def LightCondensed.fintypeCatAsCofanIsColimit + theorem LightCondensed.isColimitLocallyConstantPresheafDiagram_desc_apply + theorem LightCondensed.isColimitLocallyConstantPresheaf_desc_apply + def LightCondensed.isoFinYoneda + def LightCondensed.isoFinYonedaComponents + theorem LightCondensed.isoFinYonedaComponents_hom_apply + theorem LightCondensed.isoFinYonedaComponents_inv_comp + def LightCondensed.isoLocallyConstantOfIsColimit + theorem LightCondensed.isoLocallyConstantOfIsColimit_inv + def LightCondensed.lanLightCondSet + def LightCondensed.lanPresheafExt + theorem LightCondensed.lanPresheafExt_hom + theorem LightCondensed.lanPresheafExt_inv + def LightCondensed.lanPresheafIso + theorem LightCondensed.lanPresheafIso_hom + def LightCondensed.lanPresheafNatIso + theorem LightCondensed.lanPresheafNatIso_hom_app + def LightCondensed.locallyConstantIsoFinYoneda 2024-10-16 04:43:22 e134438 feat: add `[s|i]sup_toXXX` for intermediate fields and subalgebras (#15088) - `IntermediateField.[s|i]sup_toSubfield` which states that the `sup`, `sSup` and `iSup` for `IntermediateField` is the same as for `Subfield`. - `Algebra.[s|i]sup_toSubsemiring` which states that the `sup`, `sSup` and `iSup` for `Subalgebra` is the same as for `Subsemiring`. - Also add a missing `Algebra.iInf_toSubsemiring`. ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/Subalgebra/Basic.lean + theorem Algebra.iInf_toSubsemiring + theorem Algebra.iSup_toSubsemiring + theorem Algebra.sSup_def + theorem Algebra.sSup_toSubsemiring + theorem Algebra.sup_def + theorem Algebra.sup_toSubsemiring Modified Mathlib/FieldTheory/Adjoin.lean + theorem IntermediateField.adjoin_toSubfield + theorem IntermediateField.iSup_toSubfield + theorem IntermediateField.sSup_def + theorem IntermediateField.sSup_toSubfield + theorem IntermediateField.sup_def + theorem IntermediateField.sup_toSubfield 2024-10-16 03:49:51 429ffd9 chore: remove porting notes about dangerous_instance linter (#17798) This is now handled by the "cannot find synthesization order" error. See the explanation at #12094 for more details. ESTIMATED CHANGES Modified Mathlib/Algebra/AddTorsor.lean Modified Mathlib/Algebra/Ring/CompTypeclasses.lean Modified Mathlib/Analysis/RCLike/Lemmas.lean Modified Mathlib/Topology/Algebra/Module/Basic.lean Modified Mathlib/Topology/Algebra/Valued/ValuationTopology.lean 2024-10-16 03:49:50 90f515b chore: move List.permutations material out of List.Perm (#17795) This moves some material off the longest pole. ESTIMATED CHANGES Modified Mathlib/Algebra/BigOperators/Group/List.lean Modified Mathlib/Combinatorics/SimpleGraph/Hamiltonian.lean Modified Mathlib/Data/Fintype/List.lean Modified Mathlib/Data/Fintype/Perm.lean Modified Mathlib/Data/List/Perm.lean - theorem List.Perm.permutations' - theorem List.Perm.permutations - theorem List.count_permutations'Aux_self - theorem List.getElem_permutations'Aux - theorem List.get_permutations'Aux - theorem List.injective_permutations'Aux - theorem List.length_permutations'Aux - theorem List.length_permutations - theorem List.length_permutationsAux - theorem List.mem_permutations' - theorem List.mem_permutations - theorem List.mem_permutationsAux_of_perm - theorem List.mem_permutations_of_perm_lemma - theorem List.nodup_permutations'Aux_iff - theorem List.nodup_permutations'Aux_of_not_mem - theorem List.nodup_permutations - theorem List.nodup_permutations_iff - theorem List.perm_of_mem_permutations - theorem List.perm_of_mem_permutationsAux + theorem List.perm_option_toList - theorem List.perm_option_to_list - theorem List.perm_permutations'Aux_comm - theorem List.perm_permutations'_iff - theorem List.perm_permutations_iff - theorem List.permutations'Aux_get_zero - theorem List.permutations_perm_permutations' - theorem List.permutations_take_two Modified Mathlib/Data/List/Permutation.lean + theorem List.Perm.permutations' + theorem List.Perm.permutations + theorem List.count_permutations'Aux_self + theorem List.getElem_permutations'Aux + theorem List.get_permutations'Aux + theorem List.injective_permutations'Aux + theorem List.length_permutations'Aux + theorem List.length_permutations + theorem List.length_permutationsAux + theorem List.mem_permutations' + theorem List.mem_permutations + theorem List.mem_permutationsAux_of_perm + theorem List.mem_permutations_of_perm_lemma + theorem List.nodup_permutations'Aux_iff + theorem List.nodup_permutations'Aux_of_not_mem + theorem List.nodup_permutations + theorem List.nodup_permutations_iff + theorem List.perm_of_mem_permutations + theorem List.perm_of_mem_permutationsAux + theorem List.perm_permutations'Aux_comm + theorem List.perm_permutations'_iff + theorem List.perm_permutations_iff + theorem List.permutations'Aux_get_zero + theorem List.permutations_perm_permutations' + theorem List.permutations_take_two Modified Mathlib/GroupTheory/FreeGroup/Basic.lean 2024-10-16 03:40:38 ee22653 chore: remove CI check from adaptation PR script (#17534) Since we now pass an explicit commit hash to the script, pointing to a commit on `nightly-testing` that we want to use, there is no point in checking whether the HEAD of `nightly-testing` is still running CI. ESTIMATED CHANGES Modified scripts/create-adaptation-pr.sh 2024-10-16 03:00:35 62acab6 fix: make the long file linter reject "too large" values (#17309) Reported [here](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/Splitting.20Mathlib.2FData.2FFinset.2FBasic/near/473746566). The PR corrects the checks to only allow "small" increases to the value of the option. ESTIMATED CHANGES Modified Mathlib/Data/List/Basic.lean Modified Mathlib/SetTheory/Ordinal/Arithmetic.lean Modified Mathlib/Tactic/Linter/Lint.lean Modified test/LongFile.lean 2024-10-16 03:00:33 cd2b468 feat: the header linter (#16574) This syntax linter checks that * the copyright statement is correctly formatted; * `Mathlib.Tactic` is not imported; * makes sure that the module docs are the first non-import command of each file. The linter is off by default on projects downstream of mathlib, but it is on by default on mathlib. This subsumes the corresponding text-based linters. These will be removed in a future PR. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Init.lean Modified Mathlib/Order/Filter/Basic.lean Modified Mathlib/Tactic.lean Added Mathlib/Tactic/Linter/Header.lean + def Mathlib.Linter.Style.header.headerLinter + def Mathlib.Linter.authorsLineChecks + def Mathlib.Linter.broadImportsCheck + def Mathlib.Linter.copyrightHeaderChecks + def Mathlib.Linter.firstNonImport? + def Mathlib.Linter.getImportIds + def Mathlib.Linter.parseUpToHere + def Mathlib.Linter.toSyntax Modified Mathlib/Tactic/Linter/TextBased.lean Modified lakefile.lean Modified scripts/mk_all.lean Modified scripts/nolints-style.txt Added test/Header.lean + def replaceMultilineComments 2024-10-16 02:20:17 9727486 refactor: turn `posPart` into a notation class again (#17426) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Notation.lean Modified Mathlib/Algebra/Order/Group/PosPart.lean - def leOnePart + theorem leOnePart_def - def oneLePart + theorem oneLePart_def +/- theorem oneLePart_mono Modified Mathlib/Tactic/Positivity/Basic.lean +/- def Mathlib.Meta.Positivity.evalNegPart +/- def Mathlib.Meta.Positivity.evalPosPart Modified Mathlib/Tactic/ToAdditive/Frontend.lean 2024-10-16 01:59:13 a003b0e chore: bump Batteries (upstreamed DList) (#17791) ESTIMATED CHANGES Modified Mathlib.lean Deleted Mathlib/Data/DList/Basic.lean - def Batteries.DList.join - theorem Batteries.DList_lazy - theorem Batteries.DList_singleton Deleted Mathlib/Data/DList/Defs.lean - def Batteries.DList.lazy_ofList - theorem Batteries.DList.ofList_toList - theorem Batteries.DList.toList_append - theorem Batteries.DList.toList_cons - theorem Batteries.DList.toList_empty - theorem Batteries.DList.toList_ofList - theorem Batteries.DList.toList_push - theorem Batteries.DList.toList_singleton Modified Mathlib/Data/DList/Instances.lean Modified Mathlib/Data/Seq/WSeq.lean Modified lake-manifest.json 2024-10-16 00:54:40 36bb3d0 fix: speedcenter robustness (#17794) ESTIMATED CHANGES Modified scripts/bench/temci-config.run.yml 2024-10-16 00:08:45 2ae1eb8 feat(SetTheory/Cardinal/Aleph): add notation for `aleph` and `beth` (#17671) ESTIMATED CHANGES Modified Mathlib/SetTheory/Cardinal/Aleph.lean +/- theorem Cardinal.aleph0_le_beth +/- theorem Cardinal.aleph0_lt_aleph_one +/- theorem Cardinal.aleph_eq_aleph' +/- theorem Cardinal.aleph_le +/- theorem Cardinal.aleph_le_beth +/- theorem Cardinal.aleph_limit +/- theorem Cardinal.aleph_lt +/- theorem Cardinal.aleph_max +/- theorem Cardinal.aleph_succ +/- theorem Cardinal.aleph_toNat +/- theorem Cardinal.aleph_toPartENat +/- theorem Cardinal.aleph_zero +/- theorem Cardinal.beth_le +/- theorem Cardinal.beth_limit +/- theorem Cardinal.beth_lt +/- theorem Cardinal.beth_ne_zero +/- theorem Cardinal.beth_pos +/- theorem Cardinal.beth_succ +/- theorem Cardinal.beth_zero +/- theorem Cardinal.countable_iff_lt_aleph_one +/- theorem Cardinal.max_aleph_eq +/- theorem Cardinal.ord_aleph_isLimit +/- theorem Cardinal.succ_aleph0 Modified Mathlib/SetTheory/Cardinal/Continuum.lean +/- theorem Cardinal.aleph_one_le_continuum +/- theorem Cardinal.beth_one +/- theorem Cardinal.two_power_aleph0 2024-10-15 23:57:41 c63a0ac chore(CategoryTheory/ChosenFiniteProducts): port some simp lemmas from CategoryTheory/Limits/Shapes/BinaryProducts (#17733) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/ChosenFiniteProducts.lean + theorem CategoryTheory.ChosenFiniteProducts.comp_lift + theorem CategoryTheory.ChosenFiniteProducts.lift_fst_comp_snd_comp + theorem CategoryTheory.ChosenFiniteProducts.lift_fst_snd + theorem CategoryTheory.ChosenFiniteProducts.lift_map 2024-10-15 23:21:30 7ca047f chore: move `Init.Logic` and its remaining dependencies to `Deprecated` (#17771) The results in this file have been deprecated for a while and none seem to be used in Mathlib except for other deprecated results that aren't used either. So let's move everything to the `Deprecated` folder in order to empty out the `Init` folder. ESTIMATED CHANGES Modified Mathlib.lean Renamed Mathlib/Init/Logic.lean to Mathlib/Deprecated/Logic.lean Added Mathlib/Deprecated/MinMax.lean + theorem max_associative + theorem max_commutative + theorem min_associative + theorem min_commutative Modified Mathlib/Order/MinMax.lean - theorem max_associative - theorem max_commutative - theorem min_associative - theorem min_commutative Modified scripts/noshake.json 2024-10-15 22:29:56 f44f468 refactor: migrate to dependent induction lemmas (#17543) Many of the existing induction lemmas for subobjects (e.g., `Subsemigroup.closure_induction`) were written with a motive that does not depend on the induction argument (e.g., `x ∈ Subsemigroup.closure s`), like so: ```lean theorem Subsemigroup.closure_induction {M : Type u_1} [Mul M] {s : Set M} {p : M → Prop} {x : M} (h : x ∈ Subsemigroup.closure s) (mem : ∀ x ∈ s, p x) (mul : ∀ (x y : M), p x → p y → p (x * y)) : p x ``` This prevents Lean from correctly inferring the motive when applying the `induction` tactic. As such, these lemmas don't serve much purpose, and we gradually acquired their dependent counterparts as variations with a `'`, like this one: ```lean theorem Subsemigroup.closure_induction' {M : Type u_1} [Mul M] (s : Set M) {p : (x : M) → x ∈ Subsemigroup.closure s → Prop} (mem : ∀ (x : M) (h : x ∈ s), p x ⋯) (mul : ∀ (x : M) (hx : x ∈ Subsemigroup.closure s) (y : M) (hy : y ∈ Subsemigroup.closure s), p x hx → p y hy → p (x * y) (mul_mem hx hy)) {x : M} (hx : x ∈ Subsemigroup.closure s) : p x hx ``` This PR moves the primed versions to the un-primed names, and removes the non-dependent lemmas, while also ensuring the dependent versions exist and are uniform for all these various subobjects. Moves: - Subsemigroup.closure_induction' -> Subsemigroup.closure_induction - AddSubsemigroup.closure_induction' -> AddSubsemigroup.closure_induction - Submonoid.closure_induction' -> Submonoid.closure_induction - AddSubmonoid.closure_induction' -> AddSubmonoid.closure_induction - Subgroup.closure_induction' -> Subgroup.closure_induction - AddSubgroup.closure_induction' -> AddSubgroup.closure_induction - Submodule.span_induction' -> Submodule.span_induction - Submodule.closure_induction' -> Submodule.closure_induction - NonUnitalAlgebra.adjoin_induction' -> NonUnitalAlgebra.adjoin_induction - NonUnitalStarAlgebra.adjoin_induction' -> NonUnitalStarAlgebra.adjoin_induction - Subsemiring.closure_induction' -> Subsemiring.closure_induction - Subring.closure_induction' -> Subring.closure_induction - Algebra.adjoin_induction'' -> Algebra.adjoin_induction ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/NonUnitalSubalgebra.lean - theorem NonUnitalAlgebra.adjoin_induction' +/- theorem NonUnitalAlgebra.adjoin_induction +/- theorem NonUnitalAlgebra.adjoin_induction₂ Modified Mathlib/Algebra/Algebra/Subalgebra/Pointwise.lean Modified Mathlib/Algebra/Algebra/Tower.lean Modified Mathlib/Algebra/DirectLimit.lean Modified Mathlib/Algebra/Group/Subgroup/Basic.lean - theorem Subgroup.closure_induction' +/- theorem Subgroup.closure_induction +/- theorem Subgroup.closure_induction₂ Modified Mathlib/Algebra/Group/Subgroup/Pointwise.lean Modified Mathlib/Algebra/Group/Submonoid/Basic.lean - theorem Submonoid.closure_induction' +/- theorem Submonoid.closure_induction +/- theorem Submonoid.closure_induction₂ +/- theorem Submonoid.dense_induction Modified Mathlib/Algebra/Group/Submonoid/Membership.lean Modified Mathlib/Algebra/Group/Submonoid/Operations.lean Modified Mathlib/Algebra/Group/Submonoid/Pointwise.lean Modified Mathlib/Algebra/Group/Subsemigroup/Basic.lean - theorem Subsemigroup.closure_induction' +/- theorem Subsemigroup.closure_induction +/- theorem Subsemigroup.closure_induction₂ +/- theorem Subsemigroup.dense_induction Modified Mathlib/Algebra/Group/Subsemigroup/Membership.lean Modified Mathlib/Algebra/Group/Subsemigroup/Operations.lean Modified Mathlib/Algebra/Lie/BaseChange.lean Modified Mathlib/Algebra/Lie/Character.lean Modified Mathlib/Algebra/Lie/IdealOperations.lean Modified Mathlib/Algebra/Lie/TraceForm.lean Modified Mathlib/Algebra/Lie/Weights/Chain.lean Modified Mathlib/Algebra/Lie/Weights/Killing.lean Modified Mathlib/Algebra/Module/Submodule/Bilinear.lean Modified Mathlib/Algebra/Module/Submodule/Pointwise.lean Modified Mathlib/Algebra/Order/Ring/Star.lean Modified Mathlib/Algebra/Order/Star/Basic.lean Modified Mathlib/Algebra/Ring/Subring/Basic.lean - theorem Subring.closure_induction' +/- theorem Subring.closure_induction +/- theorem Subring.closure_induction₂ +/- theorem Subring.exists_list_of_mem_closure Modified Mathlib/Algebra/Ring/Subsemiring/Basic.lean - theorem Subsemiring.closure_induction' +/- theorem Subsemiring.closure_induction +/- theorem Subsemiring.closure_induction₂ Modified Mathlib/Algebra/RingQuot.lean Modified Mathlib/Algebra/Star/NonUnitalSubalgebra.lean - theorem NonUnitalStarAlgebra.adjoin_induction' + theorem NonUnitalStarAlgebra.adjoin_induction Modified Mathlib/Algebra/Star/Subalgebra.lean - theorem StarAlgebra.adjoin_induction' +/- theorem StarAlgebra.adjoin_induction + theorem StarAlgebra.adjoin_induction_subtype +/- theorem StarAlgebra.adjoin_induction₂ Modified Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Instances.lean Modified Mathlib/Analysis/Fourier/AddCircle.lean Modified Mathlib/Analysis/InnerProductSpace/StarOrder.lean Modified Mathlib/FieldTheory/Finite/GaloisField.lean Modified Mathlib/GroupTheory/Coxeter/Basic.lean Modified Mathlib/GroupTheory/Nilpotent.lean Modified Mathlib/GroupTheory/Perm/ClosureSwap.lean Modified Mathlib/LinearAlgebra/CliffordAlgebra/Even.lean Modified Mathlib/LinearAlgebra/FiniteSpan.lean Modified Mathlib/LinearAlgebra/RootSystem/Defs.lean Modified Mathlib/LinearAlgebra/Span.lean - theorem Submodule.closure_induction' +/- theorem Submodule.closure_induction - theorem Submodule.span_induction' +/- theorem Submodule.span_induction +/- theorem Submodule.span_induction₂ Modified Mathlib/LinearAlgebra/TensorProduct/RightExactness.lean Modified Mathlib/LinearAlgebra/TensorProduct/Tower.lean Modified Mathlib/NumberTheory/Cyclotomic/Basic.lean Modified Mathlib/NumberTheory/NumberField/CanonicalEmbedding/Basic.lean Modified Mathlib/RingTheory/Adjoin/Basic.lean - theorem Algebra.adjoin_induction'' +/- theorem Algebra.adjoin_induction +/- theorem Algebra.adjoin_induction₂ Modified Mathlib/RingTheory/Adjoin/Tower.lean Modified Mathlib/RingTheory/DedekindDomain/Ideal.lean Modified Mathlib/RingTheory/Derivation/Basic.lean Modified Mathlib/RingTheory/EssentialFiniteness.lean Modified Mathlib/RingTheory/FinitePresentation.lean Modified Mathlib/RingTheory/FiniteType.lean Modified Mathlib/RingTheory/Finiteness.lean Modified Mathlib/RingTheory/FractionalIdeal/Extended.lean Modified Mathlib/RingTheory/FractionalIdeal/Operations.lean Modified Mathlib/RingTheory/Ideal/Maps.lean Modified Mathlib/RingTheory/Ideal/Operations.lean Modified Mathlib/RingTheory/IntegralClosure/IsIntegralClosure/Basic.lean Modified Mathlib/RingTheory/Kaehler/Basic.lean Modified Mathlib/RingTheory/Localization/Submodule.lean Modified Mathlib/RingTheory/MvPolynomial/Localization.lean Modified Mathlib/RingTheory/NonUnitalSubring/Basic.lean +/- theorem NonUnitalSubring.closure_induction +/- theorem NonUnitalSubring.closure_induction₂ Modified Mathlib/RingTheory/NonUnitalSubsemiring/Basic.lean +/- theorem NonUnitalSubsemiring.closure_induction +/- theorem NonUnitalSubsemiring.closure_induction₂ Modified Mathlib/RingTheory/Polynomial/Basic.lean Modified Mathlib/RingTheory/Polynomial/Bernstein.lean Modified Mathlib/RingTheory/TwoSidedIdeal/Operations.lean Modified Mathlib/Topology/Algebra/StarSubalgebra.lean Modified Mathlib/Topology/ContinuousMap/StarOrdered.lean Modified Mathlib/Topology/ContinuousMap/StoneWeierstrass.lean 2024-10-15 22:29:55 1fdea42 feat(NumberTheory/Ostrowski): First step of the proof of the Archimedean case of Ostrowski's Theorem (#14442) This proves the first step of the proof of the Archimedean case of Ostrowski's Theorem, namely that a rational absolute value `f : MulRingNorm ℚ` that is not bounded, i.e. such that, evaluated at an integer `n`, it attains a value greater than one, then `f n` is always greater than one, whenever `1Nonempty+Subsingleton (#17748) Assume `[Nonempty _] [Subsingleton _]` instead of `[Unique _]` whenever `default` isn't used outside of proofs. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/ChosenFiniteProducts.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Biproducts.lean +/- def CategoryTheory.Limits.biproductUniqueIso +/- def CategoryTheory.Limits.limitBiconeOfUnique Modified Mathlib/CategoryTheory/Limits/Shapes/Products.lean +/- def CategoryTheory.Limits.colimitCoconeOfUnique +/- def CategoryTheory.Limits.coproductUniqueIso +/- def CategoryTheory.Limits.limitConeOfUnique +/- def CategoryTheory.Limits.productUniqueIso Modified Mathlib/CategoryTheory/Limits/Shapes/Terminal.lean +/- theorem CategoryTheory.Limits.hasInitial_of_unique +/- theorem CategoryTheory.Limits.hasTerminal_of_unique 2024-10-15 12:11:16 f87f0ec feat: lemmas about exterior (#17765) ESTIMATED CHANGES Modified Mathlib/Order/Filter/Ker.lean +/- theorem Filter.ker_iInf +/- theorem Filter.ker_sInf Modified Mathlib/Topology/Exterior.lean + theorem exterior_iInter_subset +/- theorem exterior_iUnion + theorem exterior_inter_subset + theorem exterior_sInter_subset Modified Mathlib/Topology/NhdsSet.lean + theorem nhdsSet_iInter_le + theorem nhdsSet_sInter_le 2024-10-15 10:13:38 c9428b0 chore: split off `RBMap` dependency from `Mathlib.Data.Tree` (#17764) `Tree.ofRBNode` does not seem to be used in Mathlib anyway, so let's avoid an unnecessary import of Batteries and move this to a new leaf file in case anyone needs to use it still. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Data/Tree/Basic.lean - def Tree.ofRBNode Added Mathlib/Data/Tree/RBMap.lean + def Tree.ofRBNode 2024-10-15 10:13:37 b133971 refactor(Maschke): use `IsUnit` instead of `Invertible` (#17754) ESTIMATED CHANGES Modified Mathlib/RepresentationTheory/Maschke.lean +/- theorem LinearMap.conjugate_i +/- theorem LinearMap.equivariantProjection_condition +/- theorem MonoidAlgebra.exists_leftInverse_of_injective 2024-10-15 09:59:56 5f0628e chore: remove and rename variables (#17760) I also relabeled some indices, since some intermediate variables vanished in the process. ESTIMATED CHANGES Modified Mathlib/Analysis/Normed/Operator/Compact.lean Modified Mathlib/Geometry/Manifold/ContMDiffMFDeriv.lean Modified Mathlib/LinearAlgebra/Matrix/BilinearForm.lean +/- theorem BilinForm.mul_toMatrix +/- theorem BilinForm.mul_toMatrix_mul +/- def BilinForm.toMatrixAux +/- theorem BilinForm.toMatrix_apply +/- theorem BilinForm.toMatrix_comp +/- theorem BilinForm.toMatrix_compLeft +/- theorem BilinForm.toMatrix_compRight +/- theorem BilinForm.toMatrix_mul +/- theorem BilinForm.toMatrix_mul_basis_toMatrix +/- theorem BilinForm.toMatrix_toBilin +/- theorem BilinearForm.toMatrixAux_eq +/- theorem LinearMap.BilinForm.Nondegenerate.toMatrix' +/- theorem LinearMap.BilinForm.Nondegenerate.toMatrix +/- theorem LinearMap.BilinForm.mul_toMatrix' +/- theorem LinearMap.BilinForm.mul_toMatrix'_mul +/- theorem LinearMap.BilinForm.nondegenerate_iff_det_ne_zero +/- theorem LinearMap.BilinForm.nondegenerate_of_det_ne_zero +/- theorem LinearMap.BilinForm.nondegenerate_toMatrix'_iff +/- theorem LinearMap.BilinForm.nondegenerate_toMatrix_iff +/- def LinearMap.BilinForm.toMatrix' +/- theorem LinearMap.BilinForm.toMatrix'_apply +/- theorem LinearMap.BilinForm.toMatrix'_comp +/- theorem LinearMap.BilinForm.toMatrix'_compLeft +/- theorem LinearMap.BilinForm.toMatrix'_compRight +/- theorem LinearMap.BilinForm.toMatrix'_mul +/- theorem LinearMap.BilinForm.toMatrix'_toBilin' +/- theorem LinearMap.BilinForm.toMatrixAux_apply +/- theorem Matrix.Nondegenerate.toBilin' +/- theorem Matrix.Nondegenerate.toBilin +/- theorem Matrix.isAdjointPair_equiv' +/- theorem Matrix.nondegenerate_toBilin'_iff +/- theorem Matrix.nondegenerate_toBilin'_iff_nondegenerate_toBilin +/- theorem Matrix.nondegenerate_toBilin_iff +/- def Matrix.toBilin' +/- def Matrix.toBilin'Aux +/- theorem Matrix.toBilin'Aux_eq +/- theorem Matrix.toBilin'Aux_single +/- theorem Matrix.toBilin'_apply' +/- theorem Matrix.toBilin'_apply +/- theorem Matrix.toBilin'_comp +/- theorem Matrix.toBilin'_single +/- theorem Matrix.toBilin'_stdBasis +/- theorem Matrix.toBilin'_toMatrix' +/- theorem Matrix.toBilin_apply +/- theorem Matrix.toBilin_basisFun +/- theorem Matrix.toBilin_comp +/- theorem Matrix.toBilin_toMatrix +/- def pairSelfAdjointMatricesSubmodule' +/- def selfAdjointMatricesSubmodule' +/- def skewAdjointMatricesSubmodule' +/- theorem toBilin'Aux_toMatrixAux Modified Mathlib/MeasureTheory/Integral/IntegralEqImproper.lean 2024-10-15 09:36:00 bb2c662 chore: remove useless import of `Batteries.Lean.HashSet` (#17763) Neither file actually seems to make use of any of the operations defined in the import, so we might as well drop the import entirely. ESTIMATED CHANGES Modified Mathlib/Tactic/Linter/FlexibleLinter.lean Modified Mathlib/Tactic/Linter/HashCommandLinter.lean 2024-10-15 09:10:36 41475d2 chore(Topology.Instances.EReal): simplify proofs (#17738) And remove a couple of unnecessary hypotheses along the way. ESTIMATED CHANGES Modified Mathlib/Topology/Instances/EReal.lean +/- theorem EReal.add_iInf_le_iInf_add +/- theorem EReal.iSup_add_le_add_iSup 2024-10-15 09:10:34 a316029 feat(Probability/Kernel): rnDeriv lemmas (#17682) ESTIMATED CHANGES Modified Mathlib/Probability/Kernel/RadonNikodym.lean + theorem ProbabilityTheory.Kernel.measurable_singularPart + theorem ProbabilityTheory.Kernel.rnDeriv_add + theorem ProbabilityTheory.Kernel.rnDeriv_lt_top + theorem ProbabilityTheory.Kernel.rnDeriv_ne_top + theorem ProbabilityTheory.Kernel.rnDeriv_pos + theorem ProbabilityTheory.Kernel.rnDeriv_self + theorem ProbabilityTheory.Kernel.rnDeriv_singularPart + theorem ProbabilityTheory.Kernel.rnDeriv_toReal_pos + theorem ProbabilityTheory.Kernel.rnDeriv_withDensity + theorem ProbabilityTheory.Kernel.withDensity_rnDeriv_eq + theorem ProbabilityTheory.Kernel.withDensity_rnDeriv_le 2024-10-15 08:58:47 200b6dc feat(AlgebraicGeometry): api for morphism properties local at the source and target (#17302) A morphism property, that is both local at the source and the target and additionally is stable under post-composition with open immersions, can be checked locally around points of the source. This is what the [stacks](https://stacks.math.columbia.edu/tag/04QW) project calls "local on the source-and-target". ESTIMATED CHANGES Modified Mathlib/AlgebraicGeometry/Morphisms/Basic.lean + theorem AlgebraicGeometry.IsLocalAtSource.iff_exists_resLE + theorem AlgebraicGeometry.IsLocalAtSource.resLE Modified Mathlib/AlgebraicGeometry/Morphisms/RingHomProperties.lean + theorem AlgebraicGeometry.HasRingHomProperty.iff_exists_appLE Modified Mathlib/AlgebraicGeometry/OpenImmersion.lean + theorem AlgebraicGeometry.IsOpenImmersion.of_comp + theorem AlgebraicGeometry.Scheme.Hom.image_iSup + theorem AlgebraicGeometry.Scheme.Hom.image_iSup₂ + theorem AlgebraicGeometry.Scheme.Hom.image_injective Modified Mathlib/AlgebraicGeometry/Restrict.lean 2024-10-15 08:21:55 196b03b feat(RingTheory/Locally): stability properties of `Locally P` (#17335) If a property of ring homomorphisms `P` is stable under base-change, composition, localizations, etc. then so is `Locally P`. ESTIMATED CHANGES Modified Mathlib/RingTheory/LocalProperties/Basic.lean + theorem RingHom.StableUnderCompositionWithLocalizationAway.respectsIso Modified Mathlib/RingTheory/Localization/Away/Basic.lean Modified Mathlib/RingTheory/RingHom/Locally.lean + theorem RingHom.locally_holdsForLocalizationAway + theorem RingHom.locally_localizationPreserves + theorem RingHom.locally_propertyIsLocal + theorem RingHom.locally_respectsIso + theorem RingHom.locally_stableUnderBaseChange + theorem RingHom.locally_stableUnderComposition + theorem RingHom.locally_stableUnderCompositionWithLocalizationAway 2024-10-15 07:43:57 d376bfc feat(CategoryTheory/Limits/Shapes/Reflexive): the walking reflexive pair (#8013) - Define `WalkingReflexivePair`, the category indexing reflexive pair. - Show that the forgetful functor from this category to `WalkingParallelPair` is `Final`. - Show that coequalizers of reflexive pairs are equivalent to colimits of diagrams indexed by `WalkingReflexivePair`. - Show that having coequalizers of all reflexive pairs is equivalent to having all `WalkingReflexivePair`-shaped colimits. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Limits/Shapes/Reflexive.lean + theorem CategoryTheory.Limits.ReflexiveCofork.app_one_eq_π + theorem CategoryTheory.Limits.ReflexiveCofork.condition + def CategoryTheory.Limits.ReflexiveCofork.isColimitEquiv + def CategoryTheory.Limits.ReflexiveCofork.mk + theorem CategoryTheory.Limits.ReflexiveCofork.mk_π + def CategoryTheory.Limits.WalkingParallelPair.inclusionWalkingReflexivePair + def CategoryTheory.Limits.WalkingReflexivePair.Hom.comp + theorem CategoryTheory.Limits.WalkingReflexivePair.Hom.id_eq + inductive CategoryTheory.Limits.WalkingReflexivePair.Hom + theorem CategoryTheory.Limits.WalkingReflexivePair.leftCompReflexion_eq + theorem CategoryTheory.Limits.WalkingReflexivePair.map_reflexion_comp_map_left + theorem CategoryTheory.Limits.WalkingReflexivePair.map_reflexion_comp_map_right + theorem CategoryTheory.Limits.WalkingReflexivePair.reflexion_comp_left + theorem CategoryTheory.Limits.WalkingReflexivePair.reflexion_comp_right + theorem CategoryTheory.Limits.WalkingReflexivePair.rightCompReflexion_eq + inductive CategoryTheory.Limits.WalkingReflexivePair + def CategoryTheory.Limits.colimitOfIsReflexivePairIsoCoequalizer + theorem CategoryTheory.Limits.hasReflexiveCoequalizer_iff_hasCoequalizer + theorem CategoryTheory.Limits.hasReflexiveCoequalizers_iff + theorem CategoryTheory.Limits.ofIsReflexivePair_map_left + theorem CategoryTheory.Limits.ofIsReflexivePair_map_right + def CategoryTheory.Limits.reflexiveCoequalizerIsoCoequalizer + def CategoryTheory.Limits.reflexiveCoforkEquivCofork + def CategoryTheory.Limits.reflexiveCoforkEquivCoforkObjIso + theorem CategoryTheory.Limits.reflexiveCoforkEquivCofork_functor_obj_π + theorem CategoryTheory.Limits.reflexiveCoforkEquivCofork_inverse_obj_π + def CategoryTheory.Limits.reflexivePair.compRightIso + def CategoryTheory.Limits.reflexivePair.diagramIsoReflexivePair + def CategoryTheory.Limits.reflexivePair.mkNatIso + def CategoryTheory.Limits.reflexivePair.mkNatTrans + theorem CategoryTheory.Limits.reflexivePair.mkNatTrans_app_one + theorem CategoryTheory.Limits.reflexivePair.mkNatTrans_app_zero + theorem CategoryTheory.Limits.reflexivePair.whiskerRightMkNatTrans + def CategoryTheory.Limits.reflexivePair + theorem CategoryTheory.Limits.reflexivePair_map_left + theorem CategoryTheory.Limits.reflexivePair_map_reflexion + theorem CategoryTheory.Limits.reflexivePair_map_right + theorem CategoryTheory.Limits.reflexivePair_obj_one + theorem CategoryTheory.Limits.reflexivePair_obj_zero + theorem CategoryTheory.Limits.ι_colimitOfIsReflexivePairIsoCoequalizer_hom + theorem CategoryTheory.Limits.ι_reflexiveCoequalizerIsoCoequalizer_hom + theorem CategoryTheory.Limits.π_colimitOfIsReflexivePairIsoCoequalizer_inv + theorem CategoryTheory.Limits.π_reflexiveCoequalizerIsoCoequalizer_inv 2024-10-15 07:35:23 427742c chore(RingTheory/Localization/Basic): split off `Defs` (#17735) This PR splits off a `RingTheory.Localization.Defs` file that is supposed to contain the definition of `IsLocalization` and the ring structure on `Localization`, and some basic results that don't need further imports. I am quite sure that we can minimize the transitive imports a bit further but this seems like a decent point to stop for now. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Module/LocalizedModule.lean Modified Mathlib/Algebra/Polynomial/Laurent.lean Modified Mathlib/RingTheory/Localization/Basic.lean - theorem IsLocalization.at_units - theorem IsLocalization.eq_iff_eq - theorem IsLocalization.eq_iff_exists - theorem IsLocalization.eq_mk'_iff_mul_eq - theorem IsLocalization.eq_mk'_of_mul_eq - theorem IsLocalization.eq_of_eq - theorem IsLocalization.eq_zero_of_fst_eq_zero - theorem IsLocalization.isDomain_localization - theorem IsLocalization.isDomain_of_le_nonZeroDivisors - theorem IsLocalization.isLocalization_iff_of_base_ringEquiv - theorem IsLocalization.isLocalization_of_base_ringEquiv - theorem IsLocalization.isUnit_comp - theorem IsLocalization.lift_comp - theorem IsLocalization.lift_eq - theorem IsLocalization.lift_eq_iff - theorem IsLocalization.lift_id - theorem IsLocalization.lift_injective_iff - theorem IsLocalization.lift_mk' - theorem IsLocalization.lift_mk'_spec - theorem IsLocalization.lift_of_comp - theorem IsLocalization.lift_spec_mul_add - theorem IsLocalization.lift_surjective_iff - theorem IsLocalization.lift_unique - theorem IsLocalization.map_comp - theorem IsLocalization.map_comp_map - theorem IsLocalization.map_eq - theorem IsLocalization.map_eq_zero_iff - theorem IsLocalization.map_id - theorem IsLocalization.map_id_mk' - theorem IsLocalization.map_injective_of_injective - theorem IsLocalization.map_left_cancel - theorem IsLocalization.map_map - theorem IsLocalization.map_mk' - theorem IsLocalization.map_nonZeroDivisors_le - theorem IsLocalization.map_right_cancel - theorem IsLocalization.map_smul - theorem IsLocalization.map_surjective_of_surjective - theorem IsLocalization.map_unique - theorem IsLocalization.map_units - theorem IsLocalization.mk'_add - theorem IsLocalization.mk'_add_eq_iff_add_mul_eq_mul - theorem IsLocalization.mk'_cancel - theorem IsLocalization.mk'_eq_iff_eq' - theorem IsLocalization.mk'_eq_iff_eq - theorem IsLocalization.mk'_eq_iff_eq_mul - theorem IsLocalization.mk'_eq_iff_mk'_eq - theorem IsLocalization.mk'_eq_mul_mk'_one - theorem IsLocalization.mk'_eq_of_eq' - theorem IsLocalization.mk'_eq_of_eq - theorem IsLocalization.mk'_eq_zero_iff - theorem IsLocalization.mk'_mul - theorem IsLocalization.mk'_mul_cancel_left - theorem IsLocalization.mk'_mul_cancel_right - theorem IsLocalization.mk'_mul_mk'_eq_one' - theorem IsLocalization.mk'_mul_mk'_eq_one - theorem IsLocalization.mk'_one - theorem IsLocalization.mk'_pow - theorem IsLocalization.mk'_sec - theorem IsLocalization.mk'_self'' - theorem IsLocalization.mk'_self' - theorem IsLocalization.mk'_self - theorem IsLocalization.mk'_spec' - theorem IsLocalization.mk'_spec'_mk - theorem IsLocalization.mk'_spec - theorem IsLocalization.mk'_spec_mk - theorem IsLocalization.mk'_surjective - theorem IsLocalization.mk'_zero - theorem IsLocalization.monoidHom_ext - theorem IsLocalization.mul_add_inv_left - theorem IsLocalization.mul_mk'_eq_mk'_of_mul - theorem IsLocalization.ne_zero_of_mk'_ne_zero - theorem IsLocalization.noZeroDivisors_of_le_nonZeroDivisors - theorem IsLocalization.nonZeroDivisors_le_comap - theorem IsLocalization.of_le - theorem IsLocalization.ringEquivOfRingEquiv_eq - theorem IsLocalization.ringEquivOfRingEquiv_eq_map - theorem IsLocalization.ringEquivOfRingEquiv_mk' - theorem IsLocalization.ringHom_ext - theorem IsLocalization.sec_fst_ne_zero - theorem IsLocalization.sec_snd_ne_zero - theorem IsLocalization.sec_spec' - theorem IsLocalization.sec_spec - theorem IsLocalization.smul_mk' - theorem IsLocalization.smul_mk'_one - theorem IsLocalization.smul_mk'_self - theorem IsLocalization.subsingleton - theorem IsLocalization.surj - theorem IsLocalization.surj₂ - theorem IsLocalization.toLocalizationMap_sec - theorem IsLocalization.toLocalizationMap_toMap - theorem IsLocalization.toLocalizationMap_toMap_apply - def IsLocalization.toLocalizationWithZeroMap - theorem IsLocalization.to_map_eq_zero_iff - def IsLocalization.uniqueOfZeroMem - theorem Localization.add_mk - theorem Localization.add_mk_self - def Localization.mkAddMonoidHom - theorem Localization.mk_algebraMap - theorem Localization.mk_eq_mk' - theorem Localization.mk_eq_mk'_apply - theorem Localization.mk_list_sum - theorem Localization.mk_multiset_sum - theorem Localization.mk_one_eq_algebraMap - theorem Localization.mk_sum - theorem Localization.monoidOf_eq_algebraMap - theorem Localization.neg_mk - theorem Localization.sub_mk - theorem Localization.toLocalizationMap_eq_monoidOf Added Mathlib/RingTheory/Localization/Defs.lean + theorem IsLocalization.at_units + theorem IsLocalization.eq_iff_eq + theorem IsLocalization.eq_iff_exists + theorem IsLocalization.eq_mk'_iff_mul_eq + theorem IsLocalization.eq_mk'_of_mul_eq + theorem IsLocalization.eq_of_eq + theorem IsLocalization.eq_zero_of_fst_eq_zero + theorem IsLocalization.isDomain_localization + theorem IsLocalization.isDomain_of_le_nonZeroDivisors + theorem IsLocalization.isLocalization_iff_of_base_ringEquiv + theorem IsLocalization.isLocalization_of_base_ringEquiv + theorem IsLocalization.isUnit_comp + theorem IsLocalization.lift_comp + theorem IsLocalization.lift_eq + theorem IsLocalization.lift_eq_iff + theorem IsLocalization.lift_id + theorem IsLocalization.lift_injective_iff + theorem IsLocalization.lift_mk' + theorem IsLocalization.lift_mk'_spec + theorem IsLocalization.lift_of_comp + theorem IsLocalization.lift_spec_mul_add + theorem IsLocalization.lift_surjective_iff + theorem IsLocalization.lift_unique + theorem IsLocalization.map_comp + theorem IsLocalization.map_comp_map + theorem IsLocalization.map_eq + theorem IsLocalization.map_eq_zero_iff + theorem IsLocalization.map_id + theorem IsLocalization.map_id_mk' + theorem IsLocalization.map_injective_of_injective + theorem IsLocalization.map_left_cancel + theorem IsLocalization.map_map + theorem IsLocalization.map_mk' + theorem IsLocalization.map_nonZeroDivisors_le + theorem IsLocalization.map_right_cancel + theorem IsLocalization.map_smul + theorem IsLocalization.map_surjective_of_surjective + theorem IsLocalization.map_unique + theorem IsLocalization.map_units + theorem IsLocalization.mk'_add + theorem IsLocalization.mk'_add_eq_iff_add_mul_eq_mul + theorem IsLocalization.mk'_cancel + theorem IsLocalization.mk'_eq_iff_eq' + theorem IsLocalization.mk'_eq_iff_eq + theorem IsLocalization.mk'_eq_iff_eq_mul + theorem IsLocalization.mk'_eq_iff_mk'_eq + theorem IsLocalization.mk'_eq_mul_mk'_one + theorem IsLocalization.mk'_eq_of_eq' + theorem IsLocalization.mk'_eq_of_eq + theorem IsLocalization.mk'_eq_zero_iff + theorem IsLocalization.mk'_mul + theorem IsLocalization.mk'_mul_cancel_left + theorem IsLocalization.mk'_mul_cancel_right + theorem IsLocalization.mk'_mul_mk'_eq_one' + theorem IsLocalization.mk'_mul_mk'_eq_one + theorem IsLocalization.mk'_one + theorem IsLocalization.mk'_pow + theorem IsLocalization.mk'_sec + theorem IsLocalization.mk'_self'' + theorem IsLocalization.mk'_self' + theorem IsLocalization.mk'_self + theorem IsLocalization.mk'_spec' + theorem IsLocalization.mk'_spec'_mk + theorem IsLocalization.mk'_spec + theorem IsLocalization.mk'_spec_mk + theorem IsLocalization.mk'_surjective + theorem IsLocalization.mk'_zero + theorem IsLocalization.monoidHom_ext + theorem IsLocalization.mul_add_inv_left + theorem IsLocalization.mul_mk'_eq_mk'_of_mul + theorem IsLocalization.ne_zero_of_mk'_ne_zero + theorem IsLocalization.noZeroDivisors_of_le_nonZeroDivisors + theorem IsLocalization.nonZeroDivisors_le_comap + theorem IsLocalization.of_le + theorem IsLocalization.ringEquivOfRingEquiv_eq + theorem IsLocalization.ringEquivOfRingEquiv_eq_map + theorem IsLocalization.ringEquivOfRingEquiv_mk' + theorem IsLocalization.ringHom_ext + theorem IsLocalization.sec_fst_ne_zero + theorem IsLocalization.sec_snd_ne_zero + theorem IsLocalization.sec_spec' + theorem IsLocalization.sec_spec + theorem IsLocalization.smul_mk' + theorem IsLocalization.smul_mk'_one + theorem IsLocalization.smul_mk'_self + theorem IsLocalization.subsingleton + theorem IsLocalization.surj + theorem IsLocalization.surj₂ + theorem IsLocalization.toLocalizationMap_sec + theorem IsLocalization.toLocalizationMap_toMap + theorem IsLocalization.toLocalizationMap_toMap_apply + def IsLocalization.toLocalizationWithZeroMap + theorem IsLocalization.to_map_eq_zero_iff + def IsLocalization.uniqueOfZeroMem + theorem Localization.add_mk + theorem Localization.add_mk_self + def Localization.mkAddMonoidHom + theorem Localization.mk_algebraMap + theorem Localization.mk_eq_mk' + theorem Localization.mk_eq_mk'_apply + theorem Localization.mk_list_sum + theorem Localization.mk_multiset_sum + theorem Localization.mk_one_eq_algebraMap + theorem Localization.mk_sum + theorem Localization.monoidOf_eq_algebraMap + theorem Localization.neg_mk + theorem Localization.sub_mk + theorem Localization.toLocalizationMap_eq_monoidOf Modified Mathlib/RingTheory/Localization/Integer.lean Modified Mathlib/SetTheory/Surreal/Dyadic.lean 2024-10-15 06:49:47 dbbb99a chore(GroupTheory/MonoidLocalization/Basic): split off `Away` (#17731) This modifies `GroupTheory/MonoidLocalization/Basic.lean` by splitting off `Localization.Away` into its own file. This allows us to significantly reduce the imports, and in combination with #17730 we no longer need to know about rings or monoids with zero to define the localization of a monoid. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/GroupTheory/MonoidLocalization/Away.lean + theorem AddSubmonoid.LocalizationMap.AwayMap.lift_comp + theorem AddSubmonoid.LocalizationMap.AwayMap.lift_eq + def Localization.Away.invSelf + theorem Localization.Away.mk_eq_monoidOf_mk' + theorem Submonoid.LocalizationMap.AwayMap.lift_comp + theorem Submonoid.LocalizationMap.AwayMap.lift_eq Modified Mathlib/GroupTheory/MonoidLocalization/Basic.lean - theorem AddSubmonoid.LocalizationMap.AwayMap.lift_comp - theorem AddSubmonoid.LocalizationMap.AwayMap.lift_eq - def Localization.Away.invSelf - theorem Localization.Away.mk_eq_monoidOf_mk' - theorem Submonoid.LocalizationMap.AwayMap.lift_comp - theorem Submonoid.LocalizationMap.AwayMap.lift_eq Modified Mathlib/GroupTheory/MonoidLocalization/MonoidWithZero.lean Modified Mathlib/RingTheory/Localization/Away/Basic.lean Modified Mathlib/RingTheory/Localization/Ideal.lean Modified Mathlib/SetTheory/Surreal/Dyadic.lean 2024-10-15 06:04:03 74b17a1 chore(RingTheory/OreLocalization): split into `GroupTheory.OreLocalization` (#17730) The files `Mathlib/GroupTheory/OreLocalization/OreSet.lean` and `Mathlib/GroupTheory/OreLocalization/Basic.lean` contain the results of `Mathlib/RingTheory/OreLocalization/OreSet.lean` and `Mathlib/RingTheory/OreLocalization/Basic.lean` that don't involve rings or monoids with zero. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/GroupTheory/MonoidLocalization/Basic.lean Modified Mathlib/GroupTheory/MonoidLocalization/MonoidWithZero.lean Added Mathlib/GroupTheory/OreLocalization/Basic.lean + def OreLocalization.liftExpand + theorem OreLocalization.liftExpand_of + def OreLocalization.lift₂Expand + theorem OreLocalization.lift₂Expand_of + theorem OreLocalization.mul_div_one + def OreLocalization.numeratorHom + theorem OreLocalization.numeratorHom_apply + def OreLocalization.numeratorUnit + theorem OreLocalization.numerator_isUnit + def OreLocalization.oreDiv + def OreLocalization.oreDivMulChar' + def OreLocalization.oreDivSMulChar' + theorem OreLocalization.oreDiv_eq_iff + theorem OreLocalization.oreDiv_mul_char + theorem OreLocalization.oreDiv_mul_oreDiv + theorem OreLocalization.oreDiv_mul_oreDiv_comm + theorem OreLocalization.oreDiv_one_smul + theorem OreLocalization.oreDiv_smul_char + theorem OreLocalization.oreDiv_smul_oreDiv + def OreLocalization.oreEqv + theorem OreLocalization.smul_div_one + theorem OreLocalization.smul_one_oreDiv_one_smul + theorem OreLocalization.smul_one_smul + theorem OreLocalization.smul_oreDiv + theorem OreLocalization.smul_oreDiv_one + def OreLocalization.universalMulHom + theorem OreLocalization.universalMulHom_apply + theorem OreLocalization.universalMulHom_commutes + theorem OreLocalization.universalMulHom_unique + def OreLocalization Added Mathlib/GroupTheory/OreLocalization/OreSet.lean + def OreLocalization.oreCondition + def OreLocalization.oreDenom + def OreLocalization.oreNum + theorem OreLocalization.ore_eq + theorem OreLocalization.ore_right_cancel Modified Mathlib/RingTheory/OreLocalization/Basic.lean - def OreLocalization.liftExpand - theorem OreLocalization.liftExpand_of - def OreLocalization.lift₂Expand - theorem OreLocalization.lift₂Expand_of - theorem OreLocalization.mul_div_one - def OreLocalization.numeratorHom - theorem OreLocalization.numeratorHom_apply - def OreLocalization.numeratorUnit - theorem OreLocalization.numerator_isUnit - def OreLocalization.oreDiv - def OreLocalization.oreDivMulChar' - def OreLocalization.oreDivSMulChar' - theorem OreLocalization.oreDiv_eq_iff - theorem OreLocalization.oreDiv_mul_char - theorem OreLocalization.oreDiv_mul_oreDiv - theorem OreLocalization.oreDiv_mul_oreDiv_comm - theorem OreLocalization.oreDiv_one_smul - theorem OreLocalization.oreDiv_smul_char - theorem OreLocalization.oreDiv_smul_oreDiv - def OreLocalization.oreEqv - theorem OreLocalization.smul_div_one - theorem OreLocalization.smul_one_oreDiv_one_smul - theorem OreLocalization.smul_one_smul - theorem OreLocalization.smul_oreDiv - theorem OreLocalization.smul_oreDiv_one - def OreLocalization.universalMulHom - theorem OreLocalization.universalMulHom_apply - theorem OreLocalization.universalMulHom_commutes - theorem OreLocalization.universalMulHom_unique - def OreLocalization Modified Mathlib/RingTheory/OreLocalization/OreSet.lean - def OreLocalization.oreCondition - def OreLocalization.oreDenom - def OreLocalization.oreNum - theorem OreLocalization.ore_eq - theorem OreLocalization.ore_right_cancel 2024-10-15 05:14:09 c78db14 feat(Data/List/GroupBy): Basic API for `List.GroupBy` (#16818) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Data/List/GroupBy.lean + theorem List.chain'_getLast_head_groupBy + theorem List.chain'_of_mem_groupBy + theorem List.groupBy_nil + theorem List.join_groupBy + theorem List.ne_nil_of_mem_groupBy + theorem List.nil_not_mem_groupBy 2024-10-15 04:35:51 c3bca90 doc(SetTheory/Ordinal/Notation): rewrap and improve docs (#16283) We mostly just rewrap comment blocks and add some missing periods. ESTIMATED CHANGES Modified Mathlib/SetTheory/Ordinal/Notation.lean - def ONote.toStringAux1 2024-10-15 03:55:59 9958ee4 chore(GroupTheory/Congruence/Basic): split off `Defs` and `Hom` (#17729) `GroupTheory.Congruence.Defs` sets up the quotient and its monoid structure, and its imports and contents are trimmed down to the minimum to make that possible. `GroupTheory.Congruence.Hom` are those results that couldn't go into `GroupTheory.Congruence.Defs` but can be added after we import monoid homs. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/GroupTheory/Congruence/Basic.lean - structure AddCon - inductive AddConGen.Rel - theorem Con.coe_iInf - theorem Con.coe_inf - theorem Con.coe_inj - theorem Con.coe_mk' - theorem Con.coe_mul - theorem Con.coe_one - theorem Con.coe_sInf - def Con.comap - theorem Con.comap_eq - theorem Con.comap_rel - theorem Con.conGen_eq - theorem Con.conGen_idem - theorem Con.conGen_le - theorem Con.conGen_mono - theorem Con.conGen_of_con - def Con.correspondence - theorem Con.ext' - theorem Con.ext - theorem Con.hrec_on₂_coe - theorem Con.induction_on_units - theorem Con.inf_iff_and - def Con.ker - def Con.kerLift - theorem Con.kerLift_injective - theorem Con.kerLift_mk - theorem Con.ker_apply - theorem Con.ker_eq_lift_of_injective - theorem Con.ker_rel - theorem Con.le_def - def Con.lift - def Con.liftOnUnits - theorem Con.liftOnUnits_mk - theorem Con.lift_apply_mk' - theorem Con.lift_coe - theorem Con.lift_comp_mk' - theorem Con.lift_funext - theorem Con.lift_mk' - theorem Con.lift_surjective_of_surjective - theorem Con.lift_unique - def Con.map - def Con.mapGen - def Con.mapOfSurjective - theorem Con.mapOfSurjective_eq_mapGen - theorem Con.map_apply - theorem Con.map_of_mul_left_rel_one - def Con.mk' - theorem Con.mk'_ker - theorem Con.mk'_surjective - def Con.mulKer - theorem Con.mul_ker_mk_eq - theorem Con.quot_mk_eq_coe - theorem Con.rel_eq_coe - theorem Con.rel_mk - theorem Con.sInf_toSetoid - theorem Con.sSup_def - theorem Con.sSup_eq_conGen - theorem Con.sup_def - theorem Con.sup_eq_conGen - def Con.toQuotient - theorem Con.toSetoid_inj - structure Con - inductive ConGen.Rel - def conGen Modified Mathlib/GroupTheory/Congruence/BigOperators.lean Added Mathlib/GroupTheory/Congruence/Defs.lean + structure AddCon + inductive AddConGen.Rel + theorem Con.coe_iInf + theorem Con.coe_inf + theorem Con.coe_inj + theorem Con.coe_mul + theorem Con.coe_one + theorem Con.coe_sInf + def Con.comap + theorem Con.comap_rel + theorem Con.conGen_eq + theorem Con.conGen_idem + theorem Con.conGen_le + theorem Con.conGen_mono + theorem Con.conGen_of_con + def Con.correspondence + theorem Con.ext' + theorem Con.ext + theorem Con.hrec_on₂_coe + theorem Con.induction_on_units + theorem Con.inf_iff_and + theorem Con.le_def + def Con.liftOnUnits + theorem Con.liftOnUnits_mk + def Con.mapGen + def Con.mapOfSurjective + theorem Con.mapOfSurjective_eq_mapGen + theorem Con.map_of_mul_left_rel_one + def Con.mulKer + theorem Con.mul_ker_mk_eq + theorem Con.quot_mk_eq_coe + theorem Con.rel_eq_coe + theorem Con.rel_mk + theorem Con.sInf_toSetoid + theorem Con.sSup_def + theorem Con.sSup_eq_conGen + theorem Con.sup_def + theorem Con.sup_eq_conGen + def Con.toQuotient + theorem Con.toSetoid_inj + structure Con + inductive ConGen.Rel + def conGen Added Mathlib/GroupTheory/Congruence/Hom.lean + theorem Con.coe_mk' + theorem Con.comap_eq + def Con.ker + def Con.kerLift + theorem Con.kerLift_injective + theorem Con.kerLift_mk + theorem Con.ker_apply + theorem Con.ker_eq_lift_of_injective + theorem Con.ker_rel + def Con.lift + theorem Con.lift_apply_mk' + theorem Con.lift_coe + theorem Con.lift_comp_mk' + theorem Con.lift_funext + theorem Con.lift_mk' + theorem Con.lift_surjective_of_surjective + theorem Con.lift_unique + def Con.map + theorem Con.map_apply + def Con.mk' + theorem Con.mk'_ker + theorem Con.mk'_surjective Modified Mathlib/GroupTheory/Congruence/Opposite.lean Modified Mathlib/GroupTheory/MonoidLocalization/Basic.lean Modified Mathlib/GroupTheory/QuotientGroup/Basic.lean Modified Mathlib/LinearAlgebra/PiTensorProduct.lean Modified Mathlib/LinearAlgebra/TensorProduct/Basic.lean 2024-10-15 00:40:57 23f702a chore(Group.Submonoid.Basic): split off `Defs` (#17726) The criteria for including a result in `Algebra.Group.Submonoid.Basic`: * Can it be defined with only `Defs` imports? * Is it needed for a subsequent `def` or `instance`? ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Group/Submonoid/Basic.lean - structure AddSubmonoid - def MonoidHom.eqLocusM - theorem MonoidHom.eqLocusM_same - theorem MonoidHom.eq_of_eqOn_topM - theorem Submonoid.coe_bot - theorem Submonoid.coe_copy - theorem Submonoid.coe_inf - theorem Submonoid.coe_set_mk - theorem Submonoid.coe_top - theorem Submonoid.copy_eq - theorem Submonoid.ext - theorem Submonoid.mem_bot - theorem Submonoid.mem_carrier - theorem Submonoid.mem_inf - theorem Submonoid.mem_mk - theorem Submonoid.mem_toSubsemigroup - theorem Submonoid.mem_top - theorem Submonoid.mk_le_mk - theorem Submonoid.nontrivial_iff - theorem Submonoid.subsingleton_iff - structure Submonoid - theorem pow_mem Added Mathlib/Algebra/Group/Submonoid/Defs.lean + structure AddSubmonoid + def MonoidHom.eqLocusM + theorem MonoidHom.eqLocusM_same + theorem MonoidHom.eq_of_eqOn_topM + theorem Submonoid.coe_bot + theorem Submonoid.coe_copy + theorem Submonoid.coe_inf + theorem Submonoid.coe_set_mk + theorem Submonoid.coe_top + theorem Submonoid.copy_eq + theorem Submonoid.ext + theorem Submonoid.mem_bot + theorem Submonoid.mem_carrier + theorem Submonoid.mem_inf + theorem Submonoid.mem_mk + theorem Submonoid.mem_toSubsemigroup + theorem Submonoid.mem_top + theorem Submonoid.mk_le_mk + theorem Submonoid.nontrivial_iff + theorem Submonoid.subsingleton_iff + structure Submonoid + theorem pow_mem Modified Mathlib/Algebra/Order/GroupWithZero/Submonoid.lean Modified Mathlib/Deprecated/Submonoid.lean Modified Mathlib/RingTheory/OreLocalization/OreSet.lean 2024-10-14 23:36:33 fa85803 feat: add a FloorSemiring instance to NNRat (#13548) Also some missing `norm_cast` lemmas for inequalities of casts between different types. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Data/NNRat/Defs.lean + theorem NNRat.den_one + theorem NNRat.den_zero + theorem NNRat.num_one + theorem NNRat.num_zero Added Mathlib/Data/NNRat/Floor.lean + theorem NNRat.ceil_cast + theorem NNRat.ceil_coe + theorem NNRat.coe_ceil + theorem NNRat.coe_floor + theorem NNRat.floor_cast + theorem NNRat.floor_coe + theorem NNRat.floor_natCast_div_natCast + theorem NNRat.intCeil_cast + theorem NNRat.intFloor_cast Modified Mathlib/Data/Rat/Cast/Order.lean + theorem NNRat.cast_le_natCast + theorem NNRat.cast_lt_natCast + theorem NNRat.natCast_le_cast + theorem NNRat.natCast_lt_cast + theorem Rat.cast_le_intCast + theorem Rat.cast_le_natCast + theorem Rat.cast_lt_intCast + theorem Rat.cast_lt_natCast + theorem Rat.intCast_le_cast + theorem Rat.intCast_lt_cast + theorem Rat.natCast_le_cast + theorem Rat.natCast_lt_cast Modified Mathlib/Data/Rat/Floor.lean + theorem Rat.floor_intCast_div_natCast - theorem Rat.floor_int_div_nat_eq_div + theorem Rat.floor_natCast_div_natCast + theorem Rat.natFloor_natCast_div_natCast 2024-10-14 20:54:24 9ea3a96 feat(Tactic/Algebraize): fix mistake in algebraize tactic (#17737) The call to `algebraize` is missing a `withMainContext` causing it to not be able to find previously defined `let` bindings. See [zulip](https://leanprover.zulipchat.com/#narrow/stream/144837-PR-reviews/topic/.2314798.20.20relations.20between.20trace.20maps.20and.20quotients) ESTIMATED CHANGES Modified Mathlib/Tactic/Algebraize.lean Modified test/algebraize.lean 2024-10-14 19:56:34 52637b2 chore: removed unused variables (#17709) Found by #17715. ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Basic.lean Modified Mathlib/Algebra/GroupWithZero/Action/Basic.lean Modified Mathlib/Algebra/GroupWithZero/Commute.lean Modified Mathlib/Algebra/Order/AddGroupWithTop.lean Modified Mathlib/Algebra/Order/Field/InjSurj.lean Modified Mathlib/Algebra/Order/Group/Abs.lean Modified Mathlib/Algebra/Order/Group/Basic.lean Modified Mathlib/Algebra/Order/Group/Defs.lean Modified Mathlib/Algebra/Order/Group/Lattice.lean Modified Mathlib/Algebra/Order/Group/OrderIso.lean Modified Mathlib/Algebra/Order/Group/PosPart.lean Modified Mathlib/Algebra/Order/Group/Unbundled/Abs.lean Modified Mathlib/Algebra/Order/GroupWithZero/Canonical.lean Modified Mathlib/Algebra/Order/GroupWithZero/Unbundled/Lemmas.lean Modified Mathlib/Algebra/Order/Monoid/WithTop.lean Modified Mathlib/Algebra/Order/Pi.lean Modified Mathlib/Algebra/Order/Positive/Ring.lean Modified Mathlib/Algebra/Order/Ring/Canonical.lean Modified Mathlib/Algebra/Order/Ring/Defs.lean Modified Mathlib/Algebra/Order/Ring/Unbundled/Basic.lean Modified Mathlib/Algebra/Order/Sub/Basic.lean Modified Mathlib/Algebra/Ring/Centralizer.lean Modified Mathlib/Algebra/Ring/Divisibility/Basic.lean Modified Mathlib/Analysis/Complex/OpenMapping.lean Modified Mathlib/Analysis/Complex/Schwarz.lean Modified Mathlib/Analysis/Normed/Algebra/TrivSqZeroExt.lean Modified Mathlib/CategoryTheory/GradedObject/Unitor.lean Modified Mathlib/Data/List/MinMax.lean Modified Mathlib/Data/Nat/Cast/Order/Basic.lean Modified Mathlib/Data/Nat/Order/Lemmas.lean Modified Mathlib/Data/Set/NAry.lean Modified Mathlib/Data/Set/Pairwise/Basic.lean Modified Mathlib/Data/Set/Pairwise/Lattice.lean Modified Mathlib/Data/Sum/Order.lean Modified Mathlib/Geometry/Manifold/ContMDiff/NormedSpace.lean Modified Mathlib/Geometry/Manifold/MFDeriv/Basic.lean Modified Mathlib/MeasureTheory/Function/ConditionalExpectation/AEMeasurable.lean Modified Mathlib/MeasureTheory/Function/ConditionalExpectation/CondexpL2.lean Modified Mathlib/MeasureTheory/Function/ConditionalExpectation/Unique.lean Modified Mathlib/Order/Antichain.lean Modified Mathlib/Order/BooleanAlgebra.lean Modified Mathlib/Order/CompleteBooleanAlgebra.lean Modified Mathlib/Order/CompleteLattice.lean Modified Mathlib/Order/Interval/Set/Basic.lean Modified Mathlib/Order/Interval/Set/OrdConnected.lean Modified Mathlib/Order/ScottContinuity.lean Modified Mathlib/Order/SymmDiff.lean Modified Mathlib/Tactic/FunProp/Differentiable.lean Modified Mathlib/Tactic/FunProp/RefinedDiscrTree.lean 2024-10-14 16:06:36 00d0c1f feat: an algebraically closed field is its own algebraic closure (#17720) ESTIMATED CHANGES Modified Mathlib/FieldTheory/IsAlgClosed/Basic.lean 2024-10-14 15:20:23 9d4865d feat(CategoryTheory/Limits/Final): Additional equational lemmas for cones extended along final functors (#17723) Add an equational lemma for the natural transform of `extentedCocone` in case an explicit lift is already at hand, as well as the dual statement for initial functors. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Limits/Final.lean + theorem CategoryTheory.Functor.Final.extendCocone_obj_ι_app' + theorem CategoryTheory.Functor.Initial.extendCone_obj_π_app' 2024-10-14 14:35:15 ae5f0c9 ci(nightly_detect_failure): restore dedup post logic (#17728) This reverts most of commit 3ad544d9d2e7bbd808fb00b0591cb8513764bc24, aka #17329. ESTIMATED CHANGES Modified .github/workflows/nightly_detect_failure.yml 2024-10-14 14:35:14 1659e84 chore(Group/Subsemigroup/Basic): split off Defs file (#17725) The criteria for including a result in `Algebra.Group.Subsemigroup.Basic`: * Can it be defined with only `Defs` imports? * Is it needed for a subsequent `def` or `instance`? This mostly prepares for splitting `Submonoid.Basic`. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Group/Subsemigroup/Basic.lean - structure AddSubsemigroup - def MulHom.eqLocus - theorem MulHom.eq_of_eqOn_top - theorem Subsemigroup.coe_bot - theorem Subsemigroup.coe_copy - theorem Subsemigroup.coe_inf - theorem Subsemigroup.coe_set_mk - theorem Subsemigroup.coe_top - theorem Subsemigroup.copy_eq - theorem Subsemigroup.ext - theorem Subsemigroup.mem_carrier - theorem Subsemigroup.mem_inf - theorem Subsemigroup.mem_mk - theorem Subsemigroup.mem_top - theorem Subsemigroup.mk_le_mk - theorem Subsemigroup.not_mem_bot - theorem Subsemigroup.subsingleton_of_subsingleton - structure Subsemigroup Added Mathlib/Algebra/Group/Subsemigroup/Defs.lean + structure AddSubsemigroup + def MulHom.eqLocus + theorem MulHom.eq_of_eqOn_top + theorem Subsemigroup.coe_bot + theorem Subsemigroup.coe_copy + theorem Subsemigroup.coe_inf + theorem Subsemigroup.coe_set_mk + theorem Subsemigroup.coe_top + theorem Subsemigroup.copy_eq + theorem Subsemigroup.ext + theorem Subsemigroup.mem_carrier + theorem Subsemigroup.mem_inf + theorem Subsemigroup.mem_mk + theorem Subsemigroup.mem_top + theorem Subsemigroup.mk_le_mk + theorem Subsemigroup.not_mem_bot + theorem Subsemigroup.subsingleton_of_subsingleton + structure Subsemigroup 2024-10-14 13:31:30 a67c43d chore(Algebra.Group.Units): split into `Defs` and `Basic` file (#17724) The criteria for including a result in `Algebra.Group.Unit.Defs`: * Can it be defined with only `Defs` imports? * Is it needed for a subsequent `def` or `instance`? ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/BigOperators/Group/List.lean Modified Mathlib/Algebra/Divisibility/Units.lean Modified Mathlib/Algebra/FreeMonoid/Basic.lean Modified Mathlib/Algebra/Group/Action/Units.lean Modified Mathlib/Algebra/Group/Int.lean Modified Mathlib/Algebra/Group/Nat.lean Modified Mathlib/Algebra/Group/Opposite.lean Modified Mathlib/Algebra/Group/Semiconj/Units.lean Modified Mathlib/Algebra/Group/Submonoid/Basic.lean Added Mathlib/Algebra/Group/Units/Basic.lean + theorem IsUnit.isUnit_iff_mulLeft_bijective + theorem IsUnit.isUnit_iff_mulRight_bijective + theorem IsUnit.mul_left_inj + theorem IsUnit.mul_right_inj + theorem Units.eq_inv_mul_iff_mul_eq + theorem Units.eq_mul_inv_iff_mul_eq + theorem Units.inv_mul_cancel_right + theorem Units.inv_mul_eq_one + theorem Units.inv_unique + theorem Units.mul_eq_one_iff_eq_inv + theorem Units.mul_eq_one_iff_inv_eq + theorem Units.mul_inv_cancel_right + theorem Units.mul_inv_eq_iff_eq_mul + theorem Units.mul_inv_eq_one + theorem Units.mul_left_inj + theorem Units.mul_right_inj + theorem divp_eq_divp_iff + theorem divp_eq_iff_mul_eq + theorem divp_eq_one_iff_eq + theorem divp_left_inj + theorem divp_mul_divp + theorem divp_mul_eq_mul_divp + theorem eq_divp_iff_mul_eq + theorem eq_one_of_mul_left' + theorem eq_one_of_mul_left + theorem eq_one_of_mul_right' + theorem eq_one_of_mul_right + theorem inv_eq_one_divp' + theorem isUnit_of_subsingleton + theorem mul_eq_one' + theorem mul_eq_one + theorem mul_ne_one' + theorem mul_ne_one + theorem unique_one + theorem units_eq_one Renamed Mathlib/Algebra/Group/Units.lean to Mathlib/Algebra/Group/Units/Defs.lean - theorem IsUnit.isUnit_iff_mulLeft_bijective - theorem IsUnit.isUnit_iff_mulRight_bijective - theorem IsUnit.mul_left_inj - theorem IsUnit.mul_right_inj - theorem Units.eq_inv_mul_iff_mul_eq - theorem Units.eq_mul_inv_iff_mul_eq - theorem Units.inv_mul_cancel_right - theorem Units.inv_mul_eq_one - theorem Units.inv_unique - theorem Units.mul_eq_one_iff_eq_inv - theorem Units.mul_eq_one_iff_inv_eq - theorem Units.mul_inv_cancel_right - theorem Units.mul_inv_eq_iff_eq_mul - theorem Units.mul_inv_eq_one - theorem Units.mul_left_inj - theorem Units.mul_right_inj - theorem divp_eq_divp_iff - theorem divp_eq_iff_mul_eq - theorem divp_eq_one_iff_eq - theorem divp_left_inj - theorem divp_mul_divp - theorem divp_mul_eq_mul_divp - theorem eq_divp_iff_mul_eq - theorem eq_one_of_mul_left' - theorem eq_one_of_mul_left - theorem eq_one_of_mul_right' - theorem eq_one_of_mul_right - theorem inv_eq_one_divp' - theorem isUnit_of_subsingleton - theorem mul_eq_one' - theorem mul_eq_one - theorem mul_ne_one' - theorem mul_ne_one - theorem unique_one - theorem units_eq_one Modified Mathlib/Algebra/Group/Units/Hom.lean Modified Mathlib/Algebra/GroupWithZero/Units/Basic.lean Modified Mathlib/Algebra/Order/Monoid/Canonical/Defs.lean Modified Mathlib/Algebra/Order/Monoid/Units.lean Modified Mathlib/Algebra/Order/Ring/Unbundled/Basic.lean Modified Mathlib/Algebra/Regular/Basic.lean Modified Mathlib/CategoryTheory/Endomorphism.lean Modified Mathlib/Data/Nat/Bits.lean Modified Mathlib/RingTheory/LocalRing/Defs.lean Modified Mathlib/RingTheory/MvPowerSeries/Inverse.lean Modified Mathlib/Tactic/FieldSimp.lean Modified scripts/noshake.json 2024-10-14 12:17:43 fada3e8 chore: no need to suppress Aesop warning (#17716) ESTIMATED CHANGES Modified lakefile.lean 2024-10-14 12:17:41 d839ff4 feat(OrderOfElement): add `isOfFinOrder_pow` (#17636) Also add `IsOfFinOrder.of_pow` and a missing `@[to_additive]`. ESTIMATED CHANGES Modified Mathlib/GroupTheory/OrderOfElement.lean + theorem IsOfFinOrder.of_pow + theorem IsOfFinOrder.one - theorem isOfFinOrder_one + theorem isOfFinOrder_pow Modified Mathlib/GroupTheory/Torsion.lean 2024-10-14 12:17:40 2ed7908 chore: unused arguments (#17348) ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/Basic.lean Modified Mathlib/Algebra/Algebra/Equiv.lean Modified Mathlib/Algebra/Algebra/Hom.lean Modified Mathlib/Algebra/Algebra/Operations.lean Modified Mathlib/Algebra/Algebra/Opposite.lean Modified Mathlib/Algebra/Algebra/Subalgebra/Basic.lean Modified Mathlib/Algebra/Algebra/Tower.lean Modified Mathlib/Algebra/Algebra/ZMod.lean Modified Mathlib/Algebra/Associated/Basic.lean Modified Mathlib/Algebra/BigOperators/Associated.lean Modified Mathlib/Algebra/BigOperators/Finsupp.lean Modified Mathlib/Algebra/BigOperators/Group/Finset.lean +/- theorem Finset.card_eq_sum_ones Modified Mathlib/Algebra/BigOperators/Group/List.lean Modified Mathlib/Algebra/BigOperators/Intervals.lean Modified Mathlib/Algebra/Category/AlgebraCat/Basic.lean Modified Mathlib/Algebra/Category/AlgebraCat/Monoidal.lean Modified Mathlib/Algebra/Category/BialgebraCat/Basic.lean Modified Mathlib/Algebra/Category/BoolRing.lean Modified Mathlib/Algebra/Category/CoalgebraCat/Basic.lean Modified Mathlib/Algebra/Category/CoalgebraCat/Monoidal.lean Modified Mathlib/Algebra/Category/Grp/Adjunctions.lean Modified Mathlib/Algebra/Category/Grp/Basic.lean Modified Mathlib/Algebra/Category/Grp/Biproducts.lean Modified Mathlib/Algebra/Category/Grp/EnoughInjectives.lean Modified Mathlib/Algebra/Category/Grp/EquivalenceGroupAddGroup.lean Modified Mathlib/Algebra/Category/Grp/Limits.lean Modified Mathlib/Algebra/Category/HopfAlgebraCat/Basic.lean Modified Mathlib/Algebra/Category/ModuleCat/Adjunctions.lean Modified Mathlib/Algebra/Category/ModuleCat/Algebra.lean Modified Mathlib/Algebra/Category/ModuleCat/Basic.lean Modified Mathlib/Algebra/Category/ModuleCat/Biproducts.lean Modified Mathlib/Algebra/Category/ModuleCat/ChangeOfRings.lean Modified Mathlib/Algebra/Category/ModuleCat/Colimits.lean Modified Mathlib/Algebra/Category/ModuleCat/EpiMono.lean Modified Mathlib/Algebra/Category/ModuleCat/Kernels.lean Modified Mathlib/Algebra/Category/ModuleCat/Monoidal/Closed.lean Modified Mathlib/Algebra/Category/ModuleCat/Presheaf/Colimits.lean Modified Mathlib/Algebra/Category/ModuleCat/Presheaf/Limits.lean Modified Mathlib/Algebra/Category/MonCat/Adjunctions.lean Modified Mathlib/Algebra/Category/MonCat/Basic.lean Modified Mathlib/Algebra/Category/MonCat/Colimits.lean Modified Mathlib/Algebra/Category/MonCat/Limits.lean Modified Mathlib/Algebra/Category/Ring/Adjunctions.lean Modified Mathlib/Algebra/Category/Ring/Basic.lean Modified Mathlib/Algebra/Category/Ring/Colimits.lean Modified Mathlib/Algebra/Category/Ring/Constructions.lean Modified Mathlib/Algebra/Category/Ring/Limits.lean Modified Mathlib/Algebra/CharP/Defs.lean +/- theorem CharP.char_is_prime_of_two_le Modified Mathlib/Algebra/CharZero/Lemmas.lean Modified Mathlib/Algebra/DirectLimit.lean Modified Mathlib/Algebra/DirectSum/Basic.lean Modified Mathlib/Algebra/DirectSum/Module.lean +/- def DirectSum.sigmaLcurry Modified Mathlib/Algebra/DirectSum/Ring.lean Modified Mathlib/Algebra/Divisibility/Units.lean Modified Mathlib/Algebra/DualNumber.lean Modified Mathlib/Algebra/DualQuaternion.lean Modified Mathlib/Algebra/EuclideanDomain/Field.lean Modified Mathlib/Algebra/Field/Basic.lean Modified Mathlib/Algebra/Field/IsField.lean Modified Mathlib/Algebra/Field/MinimalAxioms.lean Modified Mathlib/Algebra/Field/Opposite.lean Modified Mathlib/Algebra/Field/Rat.lean Modified Mathlib/Algebra/Free.lean Modified Mathlib/Algebra/FreeMonoid/Basic.lean Modified Mathlib/Algebra/GCDMonoid/Basic.lean Modified Mathlib/Algebra/GCDMonoid/Nat.lean Modified Mathlib/Algebra/GeomSum.lean Modified Mathlib/Algebra/Group/Action/Defs.lean Modified Mathlib/Algebra/Group/Action/Units.lean Modified Mathlib/Algebra/Group/Basic.lean Modified Mathlib/Algebra/Group/Conj.lean Modified Mathlib/Algebra/Group/Hom/Basic.lean Modified Mathlib/Algebra/Group/Hom/Defs.lean Modified Mathlib/Algebra/Group/Indicator.lean +/- theorem Set.mulIndicator_eq_one Modified Mathlib/Algebra/Group/Opposite.lean Modified Mathlib/Algebra/Group/Pi/Lemmas.lean Modified Mathlib/Algebra/Group/Pointwise/Finset/Basic.lean Modified Mathlib/Algebra/Group/Prod.lean Modified Mathlib/Algebra/Group/Subgroup/Basic.lean Modified Mathlib/Algebra/Group/Subgroup/Pointwise.lean Modified Mathlib/Algebra/Group/Submonoid/Basic.lean Modified Mathlib/Algebra/Group/Submonoid/Membership.lean Modified Mathlib/Algebra/Group/Submonoid/Operations.lean Modified Mathlib/Algebra/Group/Submonoid/Pointwise.lean Modified Mathlib/Algebra/Group/UniqueProds/Basic.lean Modified Mathlib/Algebra/Group/WithOne/Basic.lean Modified Mathlib/Algebra/GroupWithZero/Action/Defs.lean Modified Mathlib/Algebra/GroupWithZero/Basic.lean +/- theorem pow_eq_zero_of_le Modified Mathlib/Algebra/GroupWithZero/Hom.lean Modified Mathlib/Algebra/GroupWithZero/WithZero.lean Modified Mathlib/Algebra/Homology/Additive.lean Modified Mathlib/Algebra/Homology/Augment.lean Modified Mathlib/Algebra/Homology/BifunctorShift.lean Modified Mathlib/Algebra/Homology/Functor.lean Modified Mathlib/Algebra/Homology/HomologicalBicomplex.lean Modified Mathlib/Algebra/Homology/HomologicalComplex.lean Modified Mathlib/Algebra/Homology/HomologicalComplexLimits.lean Modified Mathlib/Algebra/Homology/Homotopy.lean Modified Mathlib/Algebra/Homology/HomotopyCategory/Shift.lean Modified Mathlib/Algebra/Homology/HomotopyCofiber.lean Modified Mathlib/Algebra/Homology/Localization.lean Modified Mathlib/Algebra/Homology/Opposite.lean Modified Mathlib/Algebra/Homology/Single.lean Modified Mathlib/Algebra/IsPrimePow.lean Modified Mathlib/Algebra/Lie/BaseChange.lean Modified Mathlib/Algebra/Lie/Derivation/Basic.lean Modified Mathlib/Algebra/Lie/DirectSum.lean Modified Mathlib/Algebra/Lie/Subalgebra.lean Modified Mathlib/Algebra/Lie/Submodule.lean Modified Mathlib/Algebra/Lie/TensorProduct.lean Modified Mathlib/Algebra/Module/BigOperators.lean +/- theorem Finset.cast_card Modified Mathlib/Algebra/Module/CharacterModule.lean Modified Mathlib/Algebra/Module/Equiv/Basic.lean Modified Mathlib/Algebra/Module/Injective.lean Modified Mathlib/Algebra/Module/LinearMap/Defs.lean Modified Mathlib/Algebra/Module/LinearMap/End.lean Modified Mathlib/Algebra/Module/LocalizedModule.lean Modified Mathlib/Algebra/Module/Submodule/Bilinear.lean Modified Mathlib/Algebra/Module/Submodule/Equiv.lean Modified Mathlib/Algebra/Module/Submodule/Map.lean Modified Mathlib/Algebra/Module/Submodule/Range.lean Modified Mathlib/Algebra/MonoidAlgebra/Grading.lean Modified Mathlib/Algebra/MvPolynomial/Basic.lean Modified Mathlib/Algebra/MvPolynomial/CommRing.lean Modified Mathlib/Algebra/MvPolynomial/PDeriv.lean Modified Mathlib/Algebra/Order/Antidiag/Finsupp.lean Modified Mathlib/Algebra/Order/Antidiag/Pi.lean Modified Mathlib/Algebra/Order/Antidiag/Prod.lean Modified Mathlib/Algebra/Order/CauSeq/Basic.lean Modified Mathlib/Algebra/Order/CauSeq/Completion.lean Modified Mathlib/Algebra/Order/CompleteField.lean Modified Mathlib/Algebra/Order/Field/Canonical/Defs.lean Modified Mathlib/Algebra/Order/Floor.lean Modified Mathlib/Algebra/Order/Group/Cone.lean Modified Mathlib/Algebra/Order/Group/Defs.lean Modified Mathlib/Algebra/Order/GroupWithZero/Unbundled.lean Modified Mathlib/Algebra/Order/GroupWithZero/WithZero.lean Modified Mathlib/Algebra/Order/Hom/Basic.lean Modified Mathlib/Algebra/Order/Monoid/Defs.lean Modified Mathlib/Algebra/Order/Monoid/Unbundled/Basic.lean Modified Mathlib/Algebra/Order/Ring/Basic.lean Modified Mathlib/Algebra/Order/Ring/Canonical.lean Modified Mathlib/Algebra/Order/Ring/Cone.lean Modified Mathlib/Algebra/Order/Ring/Rat.lean Modified Mathlib/Algebra/Polynomial/EraseLead.lean Modified Mathlib/Algebra/Polynomial/FieldDivision.lean Modified Mathlib/Algebra/Polynomial/GroupRingAction.lean Modified Mathlib/Algebra/Polynomial/Laurent.lean Modified Mathlib/Algebra/Polynomial/Mirror.lean Modified Mathlib/Algebra/Polynomial/Module/Basic.lean Modified Mathlib/Algebra/Polynomial/RingDivision.lean Modified Mathlib/Algebra/Polynomial/Roots.lean Modified Mathlib/Algebra/Polynomial/Splits.lean Modified Mathlib/Algebra/Polynomial/Taylor.lean Modified Mathlib/Algebra/Quandle.lean Modified Mathlib/Algebra/Ring/BooleanRing.lean Modified Mathlib/Algebra/Ring/Hom/Defs.lean Modified Mathlib/Algebra/Ring/Prod.lean Modified Mathlib/Algebra/Ring/Subring/Basic.lean Modified Mathlib/Algebra/RingQuot.lean Modified Mathlib/Algebra/Star/CentroidHom.lean Modified Mathlib/Algebra/Star/NonUnitalSubalgebra.lean Modified Mathlib/Algebra/Star/Subalgebra.lean Modified Mathlib/AlgebraicGeometry/Cover/Open.lean Modified Mathlib/AlgebraicGeometry/Gluing.lean Modified Mathlib/AlgebraicGeometry/GluingOneHypercover.lean Modified Mathlib/AlgebraicGeometry/Limits.lean Modified Mathlib/AlgebraicGeometry/Modules/Tilde.lean Modified Mathlib/AlgebraicGeometry/Morphisms/Basic.lean Modified Mathlib/AlgebraicGeometry/Morphisms/Constructors.lean Modified Mathlib/AlgebraicGeometry/Morphisms/FiniteType.lean Modified Mathlib/AlgebraicGeometry/Morphisms/IsIso.lean Modified Mathlib/AlgebraicGeometry/ProjectiveSpectrum/Scheme.lean Modified Mathlib/AlgebraicGeometry/ProjectiveSpectrum/StructureSheaf.lean Modified Mathlib/AlgebraicGeometry/Pullbacks.lean Modified Mathlib/AlgebraicGeometry/Sites/BigZariski.lean Modified Mathlib/AlgebraicGeometry/Spec.lean Modified Mathlib/AlgebraicGeometry/StructureSheaf.lean Modified Mathlib/AlgebraicTopology/CechNerve.lean Modified Mathlib/AlgebraicTopology/DoldKan/GammaCompN.lean Modified Mathlib/AlgebraicTopology/DoldKan/Homotopies.lean Modified Mathlib/AlgebraicTopology/DoldKan/Projections.lean Modified Mathlib/AlgebraicTopology/ExtraDegeneracy.lean Modified Mathlib/AlgebraicTopology/FundamentalGroupoid/Basic.lean Modified Mathlib/AlgebraicTopology/FundamentalGroupoid/Product.lean Modified Mathlib/AlgebraicTopology/SimplexCategory.lean Modified Mathlib/AlgebraicTopology/SimplicialCategory/SimplicialObject.lean Modified Mathlib/AlgebraicTopology/SimplicialObject.lean Modified Mathlib/AlgebraicTopology/SimplicialSet/Basic.lean Modified Mathlib/AlgebraicTopology/SimplicialSet/Nerve.lean Modified Mathlib/AlgebraicTopology/SplitSimplicialObject.lean Modified Mathlib/Analysis/Analytic/Basic.lean Modified Mathlib/Analysis/Analytic/CPolynomial.lean Modified Mathlib/Analysis/Analytic/Composition.lean Modified Mathlib/Analysis/Analytic/Constructions.lean Modified Mathlib/Analysis/Asymptotics/Asymptotics.lean Modified Mathlib/Analysis/BoxIntegral/Basic.lean Modified Mathlib/Analysis/BoxIntegral/Partition/Basic.lean Modified Mathlib/Analysis/BoxIntegral/Partition/Split.lean Modified Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Unique.lean Modified Mathlib/Analysis/CStarAlgebra/Module/Defs.lean Modified Mathlib/Analysis/CStarAlgebra/Multiplier.lean Modified Mathlib/Analysis/Calculus/BumpFunction/InnerProduct.lean Modified Mathlib/Analysis/Calculus/ContDiff/Basic.lean Modified Mathlib/Analysis/Calculus/LineDeriv/Basic.lean Modified Mathlib/Analysis/Calculus/LocalExtr/Polynomial.lean Modified Mathlib/Analysis/Calculus/MeanValue.lean Modified Mathlib/Analysis/Complex/UpperHalfPlane/Basic.lean Modified Mathlib/Analysis/Convex/Basic.lean Modified Mathlib/Analysis/Convex/Body.lean Modified Mathlib/Analysis/Convex/Caratheodory.lean Modified Mathlib/Analysis/Convex/Combination.lean Modified Mathlib/Analysis/Convex/Gauge.lean Modified Mathlib/Analysis/Convex/Normed.lean Modified Mathlib/Analysis/Convex/Segment.lean Modified Mathlib/Analysis/InnerProductSpace/Adjoint.lean Modified Mathlib/Analysis/InnerProductSpace/Basic.lean Modified Mathlib/Analysis/LocallyConvex/Bounded.lean Modified Mathlib/Analysis/LocallyConvex/WithSeminorms.lean Modified Mathlib/Analysis/Normed/Affine/ContinuousAffineMap.lean Modified Mathlib/Analysis/Normed/Algebra/Exponential.lean Modified Mathlib/Analysis/Normed/Algebra/MatrixExponential.lean Modified Mathlib/Analysis/Normed/Algebra/Spectrum.lean Modified Mathlib/Analysis/Normed/Group/Basic.lean Modified Mathlib/Analysis/Normed/Group/Hom.lean Modified Mathlib/Analysis/Normed/Group/SemiNormedGrp.lean Modified Mathlib/Analysis/Normed/Group/SemiNormedGrp/Kernels.lean Modified Mathlib/Analysis/Normed/Group/Seminorm.lean Modified Mathlib/Analysis/Normed/Lp/LpEquiv.lean Modified Mathlib/Analysis/Normed/Lp/PiLp.lean Modified Mathlib/Analysis/Normed/Lp/lpSpace.lean Modified Mathlib/Analysis/Normed/Operator/BoundedLinearMaps.lean Modified Mathlib/Analysis/NormedSpace/BallAction.lean Modified Mathlib/Analysis/NormedSpace/ENorm.lean Modified Mathlib/Analysis/NormedSpace/Multilinear/Basic.lean Modified Mathlib/Analysis/NormedSpace/Multilinear/Curry.lean Modified Mathlib/Analysis/ODE/PicardLindelof.lean Modified Mathlib/Analysis/Quaternion.lean Modified Mathlib/Analysis/RCLike/Basic.lean +/- theorem RCLike.isCauSeq_im +/- theorem RCLike.isCauSeq_re Modified Mathlib/Analysis/Seminorm.lean Modified Mathlib/Analysis/SpecialFunctions/Complex/LogBounds.lean Modified Mathlib/Analysis/SpecialFunctions/Complex/LogDeriv.lean Modified Mathlib/Analysis/SpecialFunctions/Exp.lean Modified Mathlib/Analysis/SpecialFunctions/Pow/Asymptotics.lean Modified Mathlib/Analysis/SpecialFunctions/Pow/Real.lean Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Basic.lean Modified Mathlib/CategoryTheory/Abelian/Pseudoelements.lean Modified Mathlib/CategoryTheory/Adjunction/Evaluation.lean Modified Mathlib/CategoryTheory/Adjunction/FullyFaithful.lean Modified Mathlib/CategoryTheory/Adjunction/Lifting/Left.lean Modified Mathlib/CategoryTheory/Bicategory/Coherence.lean Modified Mathlib/CategoryTheory/Bicategory/End.lean Modified Mathlib/CategoryTheory/Bicategory/Free.lean Modified Mathlib/CategoryTheory/Bicategory/FunctorBicategory.lean Modified Mathlib/CategoryTheory/Bicategory/LocallyDiscrete.lean Modified Mathlib/CategoryTheory/Bicategory/NaturalTransformation/Oplax.lean Modified Mathlib/CategoryTheory/Bicategory/NaturalTransformation/Strong.lean Modified Mathlib/CategoryTheory/Bicategory/SingleObj.lean Modified Mathlib/CategoryTheory/Category/Bipointed.lean Modified Mathlib/CategoryTheory/Category/Cat.lean Modified Mathlib/CategoryTheory/Category/Cat/Limit.lean Modified Mathlib/CategoryTheory/Category/PartialFun.lean Modified Mathlib/CategoryTheory/Category/Pointed.lean Modified Mathlib/CategoryTheory/Category/RelCat.lean Modified Mathlib/CategoryTheory/Category/TwoP.lean Modified Mathlib/CategoryTheory/Category/ULift.lean Modified Mathlib/CategoryTheory/ChosenFiniteProducts/FunctorCategory.lean Modified Mathlib/CategoryTheory/Closed/Types.lean Modified Mathlib/CategoryTheory/Closed/Zero.lean Modified Mathlib/CategoryTheory/CofilteredSystem.lean Modified Mathlib/CategoryTheory/Comma/Presheaf.lean Modified Mathlib/CategoryTheory/ComposableArrows.lean Modified Mathlib/CategoryTheory/ConcreteCategory/BundledHom.lean Modified Mathlib/CategoryTheory/Core.lean Modified Mathlib/CategoryTheory/Dialectica/Basic.lean Modified Mathlib/CategoryTheory/DiscreteCategory.lean Modified Mathlib/CategoryTheory/EffectiveEpi/Basic.lean Modified Mathlib/CategoryTheory/EffectiveEpi/Comp.lean Modified Mathlib/CategoryTheory/Endomorphism.lean Modified Mathlib/CategoryTheory/Enriched/Basic.lean Modified Mathlib/CategoryTheory/FiberedCategory/BasedCategory.lean Modified Mathlib/CategoryTheory/FiberedCategory/HomLift.lean Modified Mathlib/CategoryTheory/Filtered/Basic.lean Modified Mathlib/CategoryTheory/FinCategory/AsType.lean Modified Mathlib/CategoryTheory/Functor/Const.lean Modified Mathlib/CategoryTheory/Functor/Currying.lean Modified Mathlib/CategoryTheory/Functor/EpiMono.lean +/- theorem CategoryTheory.Adjunction.strongEpi_map_of_strongEpi Modified Mathlib/CategoryTheory/Functor/Flat.lean Modified Mathlib/CategoryTheory/Functor/FunctorHom.lean Modified Mathlib/CategoryTheory/Functor/OfSequence.lean Modified Mathlib/CategoryTheory/Functor/Trifunctor.lean Modified Mathlib/CategoryTheory/Galois/Basic.lean Modified Mathlib/CategoryTheory/Galois/Examples.lean Modified Mathlib/CategoryTheory/Galois/IsFundamentalgroup.lean Modified Mathlib/CategoryTheory/Generator.lean Modified Mathlib/CategoryTheory/GlueData.lean Modified Mathlib/CategoryTheory/GradedObject/Trifunctor.lean Modified Mathlib/CategoryTheory/Grothendieck.lean Modified Mathlib/CategoryTheory/Groupoid.lean Modified Mathlib/CategoryTheory/Groupoid/Subgroupoid.lean Modified Mathlib/CategoryTheory/GuitartExact/Basic.lean Modified Mathlib/CategoryTheory/IsConnected.lean Modified Mathlib/CategoryTheory/IsomorphismClasses.lean Modified Mathlib/CategoryTheory/Limits/ConeCategory.lean Modified Mathlib/CategoryTheory/Limits/Cones.lean Modified Mathlib/CategoryTheory/Limits/Connected.lean +/- def CategoryTheory.ProdPreservesConnectedLimits.γ₂ Modified Mathlib/CategoryTheory/Limits/Constructions/BinaryProducts.lean Modified Mathlib/CategoryTheory/Limits/Constructions/Filtered.lean Modified Mathlib/CategoryTheory/Limits/Constructions/LimitsOfProductsAndEqualizers.lean Modified Mathlib/CategoryTheory/Limits/FunctorCategory/Basic.lean Modified Mathlib/CategoryTheory/Limits/HasLimits.lean Modified Mathlib/CategoryTheory/Limits/Indization/IndObject.lean Modified Mathlib/CategoryTheory/Limits/IsConnected.lean Modified Mathlib/CategoryTheory/Limits/IsLimit.lean Modified Mathlib/CategoryTheory/Limits/Lattice.lean Modified Mathlib/CategoryTheory/Limits/Opposites.lean Modified Mathlib/CategoryTheory/Limits/Preserves/Basic.lean Modified Mathlib/CategoryTheory/Limits/Preserves/Shapes/Zero.lean Modified Mathlib/CategoryTheory/Limits/Presheaf.lean Modified Mathlib/CategoryTheory/Limits/Shapes/BinaryProducts.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Biproducts.lean Modified Mathlib/CategoryTheory/Limits/Shapes/ConcreteCategory.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Equalizers.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Kernels.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Multiequalizer.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Pullback/CommSq.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Pullback/Mono.lean Modified Mathlib/CategoryTheory/Limits/Shapes/StrongEpi.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Terminal.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Types.lean Modified Mathlib/CategoryTheory/Limits/Shapes/WideEqualizers.lean Modified Mathlib/CategoryTheory/Limits/Shapes/WidePullbacks.lean Modified Mathlib/CategoryTheory/Limits/Shapes/ZeroMorphisms.lean +/- def CategoryTheory.Limits.isoZeroOfEpiZero +/- def CategoryTheory.Limits.isoZeroOfMonoZero Modified Mathlib/CategoryTheory/Limits/Yoneda.lean Modified Mathlib/CategoryTheory/Localization/CalculusOfFractions.lean Modified Mathlib/CategoryTheory/Localization/Composition.lean Modified Mathlib/CategoryTheory/Localization/Construction.lean Modified Mathlib/CategoryTheory/Localization/Predicate.lean Modified Mathlib/CategoryTheory/Monad/Adjunction.lean Modified Mathlib/CategoryTheory/Monad/Kleisli.lean Modified Mathlib/CategoryTheory/Monad/Monadicity.lean Modified Mathlib/CategoryTheory/Monad/Products.lean Modified Mathlib/CategoryTheory/Monad/Types.lean Modified Mathlib/CategoryTheory/Monoidal/Cartesian/Comon_.lean Modified Mathlib/CategoryTheory/Monoidal/Comon_.lean Modified Mathlib/CategoryTheory/Monoidal/Discrete.lean Modified Mathlib/CategoryTheory/Monoidal/Free/Basic.lean Modified Mathlib/CategoryTheory/Monoidal/Free/Coherence.lean Modified Mathlib/CategoryTheory/Monoidal/Functor.lean Modified Mathlib/CategoryTheory/Monoidal/FunctorCategory.lean Modified Mathlib/CategoryTheory/Monoidal/Functorial.lean Modified Mathlib/CategoryTheory/Monoidal/Internal/FunctorCategory.lean Modified Mathlib/CategoryTheory/Monoidal/Internal/Module.lean Modified Mathlib/CategoryTheory/Monoidal/Internal/Types.lean Modified Mathlib/CategoryTheory/Monoidal/Limits.lean Modified Mathlib/CategoryTheory/Monoidal/Mon_.lean Modified Mathlib/CategoryTheory/Monoidal/OfHasFiniteProducts.lean Modified Mathlib/CategoryTheory/Monoidal/Opposite.lean Modified Mathlib/CategoryTheory/Monoidal/Preadditive.lean Modified Mathlib/CategoryTheory/Monoidal/Rigid/FunctorCategory.lean Modified Mathlib/CategoryTheory/Monoidal/Subcategory.lean Modified Mathlib/CategoryTheory/Monoidal/Transport.lean Modified Mathlib/CategoryTheory/Monoidal/Types/Coyoneda.lean Modified Mathlib/CategoryTheory/MorphismProperty/Concrete.lean Modified Mathlib/CategoryTheory/Opposites.lean Modified Mathlib/CategoryTheory/PUnit.lean Modified Mathlib/CategoryTheory/PathCategory.lean Modified Mathlib/CategoryTheory/Pi/Basic.lean Modified Mathlib/CategoryTheory/Preadditive/FunctorCategory.lean Modified Mathlib/CategoryTheory/Preadditive/Mat.lean Modified Mathlib/CategoryTheory/Preadditive/Projective.lean +/- theorem CategoryTheory.Projective.of_iso Modified Mathlib/CategoryTheory/Preadditive/Schur.lean Modified Mathlib/CategoryTheory/Preadditive/Yoneda/Basic.lean Modified Mathlib/CategoryTheory/Products/Basic.lean Modified Mathlib/CategoryTheory/Quotient.lean Modified Mathlib/CategoryTheory/Shift/CommShift.lean Modified Mathlib/CategoryTheory/Shift/SingleFunctors.lean Modified Mathlib/CategoryTheory/Sigma/Basic.lean Modified Mathlib/CategoryTheory/Sites/Closed.lean Modified Mathlib/CategoryTheory/Sites/ConcreteSheafification.lean Modified Mathlib/CategoryTheory/Sites/Coverage.lean Modified Mathlib/CategoryTheory/Sites/EffectiveEpimorphic.lean Modified Mathlib/CategoryTheory/Sites/EqualizerSheafCondition.lean Modified Mathlib/CategoryTheory/Sites/Grothendieck.lean Modified Mathlib/CategoryTheory/Sites/InducedTopology.lean Modified Mathlib/CategoryTheory/Sites/IsSheafFor.lean Modified Mathlib/CategoryTheory/Sites/Limits.lean Modified Mathlib/CategoryTheory/Sites/LocallyFullyFaithful.lean Modified Mathlib/CategoryTheory/Sites/NonabelianCohomology/H1.lean Modified Mathlib/CategoryTheory/Sites/Over.lean Modified Mathlib/CategoryTheory/Sites/Plus.lean Modified Mathlib/CategoryTheory/Sites/Pretopology.lean Modified Mathlib/CategoryTheory/Sites/Sheaf.lean Modified Mathlib/CategoryTheory/Sites/SheafHom.lean Modified Mathlib/CategoryTheory/Sites/Sieves.lean +/- def CategoryTheory.Sieve.functorInclusion +/- def CategoryTheory.Sieve.natTransOfLe Modified Mathlib/CategoryTheory/Sites/Spaces.lean Modified Mathlib/CategoryTheory/Sites/Subsheaf.lean +/- def CategoryTheory.GrothendieckTopology.Subpresheaf.ι Modified Mathlib/CategoryTheory/Sites/Types.lean Modified Mathlib/CategoryTheory/Sites/Whiskering.lean Modified Mathlib/CategoryTheory/Skeletal.lean Modified Mathlib/CategoryTheory/Subobject/Comma.lean Modified Mathlib/CategoryTheory/Subobject/Limits.lean Modified Mathlib/CategoryTheory/Subobject/MonoOver.lean Modified Mathlib/CategoryTheory/Subobject/Types.lean Modified Mathlib/CategoryTheory/Subterminal.lean Modified Mathlib/CategoryTheory/Sums/Basic.lean Modified Mathlib/CategoryTheory/Types.lean Modified Mathlib/CategoryTheory/Widesubcategory.lean Modified Mathlib/CategoryTheory/WithTerminal.lean Modified Mathlib/CategoryTheory/Yoneda.lean Modified Mathlib/Combinatorics/Additive/FreimanHom.lean Modified Mathlib/Combinatorics/Colex.lean Modified Mathlib/Combinatorics/Digraph/Basic.lean Modified Mathlib/Combinatorics/Enumerative/DoubleCounting.lean Modified Mathlib/Combinatorics/Enumerative/DyckWord.lean Modified Mathlib/Combinatorics/Hall/Basic.lean Modified Mathlib/Combinatorics/SimpleGraph/Basic.lean Modified Mathlib/Combinatorics/SimpleGraph/Connectivity/WalkCounting.lean Modified Mathlib/Combinatorics/SimpleGraph/Maps.lean Modified Mathlib/Combinatorics/SimpleGraph/Regularity/Bound.lean +/- theorem SzemerediRegularity.stepBound_mono Modified Mathlib/Combinatorics/SimpleGraph/Regularity/Energy.lean Modified Mathlib/Combinatorics/SimpleGraph/StronglyRegular.lean Modified Mathlib/Combinatorics/SimpleGraph/Subgraph.lean Modified Mathlib/Computability/Ackermann.lean Modified Mathlib/Computability/Halting.lean Modified Mathlib/Computability/Language.lean Modified Mathlib/Computability/Partrec.lean Modified Mathlib/Computability/PartrecCode.lean Modified Mathlib/Computability/Primrec.lean Modified Mathlib/Computability/Reduce.lean Modified Mathlib/Computability/RegularExpressions.lean Modified Mathlib/Computability/TuringMachine.lean Modified Mathlib/Condensed/Discrete/LocallyConstant.lean Modified Mathlib/Control/EquivFunctor.lean Modified Mathlib/Control/EquivFunctor/Instances.lean Modified Mathlib/Control/Functor/Multivariate.lean Modified Mathlib/Control/Traversable/Basic.lean Modified Mathlib/Control/Traversable/Lemmas.lean Modified Mathlib/Data/Analysis/Filter.lean Modified Mathlib/Data/Bool/Count.lean Modified Mathlib/Data/Complex/Abs.lean +/- theorem Complex.isCauSeq_re Modified Mathlib/Data/Complex/Module.lean Modified Mathlib/Data/Complex/Order.lean Modified Mathlib/Data/DFinsupp/Basic.lean +/- theorem DFinsupp.mapRange_id Modified Mathlib/Data/DFinsupp/Order.lean Modified Mathlib/Data/ENNReal/Basic.lean Modified Mathlib/Data/ENNReal/Inv.lean Modified Mathlib/Data/ENNReal/Real.lean Modified Mathlib/Data/Fin/Tuple/Basic.lean Modified Mathlib/Data/Fin/Tuple/Reflection.lean Modified Mathlib/Data/FinEnum.lean Modified Mathlib/Data/Finite/Card.lean Modified Mathlib/Data/Finmap.lean Modified Mathlib/Data/Finset/Basic.lean Modified Mathlib/Data/Finset/Card.lean Modified Mathlib/Data/Finset/Functor.lean Modified Mathlib/Data/Finset/Grade.lean Modified Mathlib/Data/Finset/Image.lean Modified Mathlib/Data/Finset/Lattice.lean Modified Mathlib/Data/Finset/NatAntidiagonal.lean Modified Mathlib/Data/Finset/NoncommProd.lean Modified Mathlib/Data/Finset/Order.lean Modified Mathlib/Data/Finset/Preimage.lean Modified Mathlib/Data/Finset/Union.lean Modified Mathlib/Data/Finsupp/Basic.lean Modified Mathlib/Data/Finsupp/Multiset.lean Modified Mathlib/Data/Finsupp/Order.lean Modified Mathlib/Data/Fintype/Card.lean Modified Mathlib/Data/Fintype/Order.lean Modified Mathlib/Data/Fintype/Quotient.lean Modified Mathlib/Data/Fintype/Sum.lean +/- def fintypeOfFintypeNe Modified Mathlib/Data/Int/Bitwise.lean Modified Mathlib/Data/Int/LeastGreatest.lean Modified Mathlib/Data/Int/Lemmas.lean Modified Mathlib/Data/List/Basic.lean Modified Mathlib/Data/List/Chain.lean Modified Mathlib/Data/List/Destutter.lean Modified Mathlib/Data/List/InsertNth.lean Modified Mathlib/Data/List/Lattice.lean Modified Mathlib/Data/List/Lemmas.lean Modified Mathlib/Data/List/Lex.lean Modified Mathlib/Data/List/MinMax.lean Modified Mathlib/Data/List/Perm.lean Modified Mathlib/Data/List/Permutation.lean Modified Mathlib/Data/List/Rotate.lean Modified Mathlib/Data/List/Sigma.lean Modified Mathlib/Data/List/Sort.lean Modified Mathlib/Data/List/Sublists.lean Modified Mathlib/Data/List/TFAE.lean Modified Mathlib/Data/List/Zip.lean Modified Mathlib/Data/Matrix/Basic.lean Modified Mathlib/Data/Matrix/DMatrix.lean Modified Mathlib/Data/Matrix/DualNumber.lean Modified Mathlib/Data/Matrix/Reflection.lean Modified Mathlib/Data/Matroid/Basic.lean Modified Mathlib/Data/Matroid/Closure.lean +/- theorem Matroid.Indep.closure_iInter_eq_biInter_closure_of_forall_subset Modified Mathlib/Data/Matroid/Dual.lean Modified Mathlib/Data/Matroid/IndepAxioms.lean Modified Mathlib/Data/Matroid/Map.lean Modified Mathlib/Data/Matroid/Restrict.lean Modified Mathlib/Data/Multiset/Basic.lean Modified Mathlib/Data/Multiset/Bind.lean Modified Mathlib/Data/Multiset/FinsetOps.lean Modified Mathlib/Data/Multiset/Nodup.lean Modified Mathlib/Data/NNReal/Basic.lean Modified Mathlib/Data/Nat/Bits.lean Modified Mathlib/Data/Nat/Cast/Order/Basic.lean +/- theorem NeZero.nat_of_injective Modified Mathlib/Data/Nat/Choose/Basic.lean Modified Mathlib/Data/Nat/Choose/Multinomial.lean Modified Mathlib/Data/Nat/Choose/Sum.lean Modified Mathlib/Data/Nat/Defs.lean Modified Mathlib/Data/Nat/Fib/Zeckendorf.lean Modified Mathlib/Data/Nat/Find.lean Modified Mathlib/Data/Nat/Lattice.lean +/- theorem Nat.iInf_const_zero Modified Mathlib/Data/Nat/Log.lean Modified Mathlib/Data/Nat/Pairing.lean Modified Mathlib/Data/Nat/PartENat.lean Modified Mathlib/Data/Nat/Prime/Basic.lean Modified Mathlib/Data/Nat/Prime/Defs.lean Modified Mathlib/Data/Num/Lemmas.lean Modified Mathlib/Data/Option/Basic.lean Modified Mathlib/Data/Option/Defs.lean Modified Mathlib/Data/Ordmap/Ordset.lean Modified Mathlib/Data/PEquiv.lean Modified Mathlib/Data/PFun.lean Modified Mathlib/Data/PNat/Basic.lean Modified Mathlib/Data/PSigma/Order.lean Modified Mathlib/Data/Part.lean Modified Mathlib/Data/QPF/Multivariate/Constructions/Comp.lean Modified Mathlib/Data/QPF/Univariate/Basic.lean Modified Mathlib/Data/Quot.lean Modified Mathlib/Data/Rat/Floor.lean Modified Mathlib/Data/Rat/Lemmas.lean Modified Mathlib/Data/Real/Basic.lean Modified Mathlib/Data/Real/EReal.lean Modified Mathlib/Data/Rel.lean Modified Mathlib/Data/Semiquot.lean Modified Mathlib/Data/Seq/Computation.lean Modified Mathlib/Data/Seq/Seq.lean Modified Mathlib/Data/Seq/WSeq.lean Modified Mathlib/Data/Set/Enumerate.lean Modified Mathlib/Data/Set/Finite.lean Modified Mathlib/Data/Set/Function.lean Modified Mathlib/Data/Set/Image.lean Modified Mathlib/Data/Set/Lattice.lean Modified Mathlib/Data/Set/Prod.lean Modified Mathlib/Data/Setoid/Basic.lean Modified Mathlib/Data/Setoid/Partition.lean Modified Mathlib/Data/Sigma/Order.lean Modified Mathlib/Data/Stream/Init.lean Modified Mathlib/Data/String/Basic.lean Modified Mathlib/Data/Sum/Order.lean Modified Mathlib/Data/Sym/Basic.lean Modified Mathlib/Data/Sym/Sym2.lean +/- theorem Sym2.fromRel_bot +/- theorem Sym2.fromRel_ne +/- theorem Sym2.fromRel_top Modified Mathlib/Data/Tree/Basic.lean Modified Mathlib/Data/Vector/Basic.lean Modified Mathlib/Data/Vector/Defs.lean Modified Mathlib/Data/Vector3.lean Modified Mathlib/Data/W/Basic.lean Modified Mathlib/Data/W/Cardinal.lean Modified Mathlib/Data/ZMod/Basic.lean Modified Mathlib/Data/ZMod/Defs.lean Modified Mathlib/Data/ZMod/IntUnitsPower.lean Modified Mathlib/Deprecated/Subgroup.lean Modified Mathlib/Deprecated/Submonoid.lean Modified Mathlib/Dynamics/Circle/RotationNumber/TranslationNumber.lean Modified Mathlib/Dynamics/PeriodicPts.lean Modified Mathlib/FieldTheory/Adjoin.lean Modified Mathlib/FieldTheory/Finite/Polynomial.lean Modified Mathlib/FieldTheory/IntermediateField/Basic.lean Modified Mathlib/FieldTheory/IsAlgClosed/Classification.lean Modified Mathlib/FieldTheory/KummerExtension.lean Modified Mathlib/FieldTheory/PerfectClosure.lean Modified Mathlib/FieldTheory/RatFunc/Basic.lean Modified Mathlib/FieldTheory/RatFunc/Defs.lean Modified Mathlib/FieldTheory/Separable.lean Modified Mathlib/FieldTheory/SplittingField/Construction.lean Modified Mathlib/Geometry/Euclidean/Sphere/Basic.lean Modified Mathlib/Geometry/Manifold/ChartedSpace.lean Modified Mathlib/Geometry/Manifold/DerivationBundle.lean Modified Mathlib/Geometry/Manifold/Instances/Real.lean Modified Mathlib/Geometry/RingedSpace/LocallyRingedSpace.lean Modified Mathlib/Geometry/RingedSpace/LocallyRingedSpace/HasColimits.lean Modified Mathlib/Geometry/RingedSpace/SheafedSpace.lean Modified Mathlib/GroupTheory/Abelianization.lean Modified Mathlib/GroupTheory/Archimedean.lean Modified Mathlib/GroupTheory/CommutingProbability.lean Modified Mathlib/GroupTheory/Congruence/Basic.lean Modified Mathlib/GroupTheory/CoprodI.lean Modified Mathlib/GroupTheory/Coset/Basic.lean Modified Mathlib/GroupTheory/Divisible.lean Modified Mathlib/GroupTheory/FreeAbelianGroup.lean Modified Mathlib/GroupTheory/FreeGroup/Basic.lean Modified Mathlib/GroupTheory/FreeGroup/NielsenSchreier.lean Modified Mathlib/GroupTheory/GroupAction/Blocks.lean Modified Mathlib/GroupTheory/GroupAction/ConjAct.lean Modified Mathlib/GroupTheory/GroupAction/Quotient.lean Modified Mathlib/GroupTheory/HNNExtension.lean Modified Mathlib/GroupTheory/MonoidLocalization/Order.lean Modified Mathlib/GroupTheory/NoncommPiCoprod.lean Modified Mathlib/GroupTheory/PGroup.lean Modified Mathlib/GroupTheory/Perm/Basic.lean Modified Mathlib/GroupTheory/Perm/Cycle/Basic.lean Modified Mathlib/GroupTheory/Perm/Cycle/Type.lean Modified Mathlib/GroupTheory/Perm/DomMulAct.lean Modified Mathlib/GroupTheory/Perm/List.lean Modified Mathlib/GroupTheory/Perm/Sign.lean Modified Mathlib/GroupTheory/Perm/Support.lean Modified Mathlib/GroupTheory/PushoutI.lean Modified Mathlib/GroupTheory/QuotientGroup/Basic.lean +/- theorem QuotientGroup.eq_one_iff Modified Mathlib/GroupTheory/SchurZassenhaus.lean Modified Mathlib/GroupTheory/SpecificGroups/Alternating.lean Modified Mathlib/GroupTheory/SpecificGroups/Dihedral.lean Modified Mathlib/GroupTheory/Sylow.lean +/- theorem Sylow.prime_dvd_card_quotient_normalizer Modified Mathlib/LinearAlgebra/AffineSpace/AffineEquiv.lean Modified Mathlib/LinearAlgebra/AffineSpace/AffineMap.lean Modified Mathlib/LinearAlgebra/AffineSpace/AffineSubspace.lean Modified Mathlib/LinearAlgebra/Alternating/Basic.lean Modified Mathlib/LinearAlgebra/BilinearForm/Hom.lean Modified Mathlib/LinearAlgebra/BilinearMap.lean Modified Mathlib/LinearAlgebra/CliffordAlgebra/Equivs.lean Modified Mathlib/LinearAlgebra/CliffordAlgebra/Even.lean Modified Mathlib/LinearAlgebra/DFinsupp.lean Modified Mathlib/LinearAlgebra/DirectSum/TensorProduct.lean Modified Mathlib/LinearAlgebra/ExteriorAlgebra/OfAlternating.lean Modified Mathlib/LinearAlgebra/FiniteDimensional/Defs.lean Modified Mathlib/LinearAlgebra/Finsupp.lean Modified Mathlib/LinearAlgebra/Lagrange.lean Modified Mathlib/LinearAlgebra/LinearIndependent.lean Modified Mathlib/LinearAlgebra/LinearPMap.lean Modified Mathlib/LinearAlgebra/Matrix/Charpoly/LinearMap.lean Modified Mathlib/LinearAlgebra/Matrix/Circulant.lean Modified Mathlib/LinearAlgebra/Matrix/DotProduct.lean Modified Mathlib/LinearAlgebra/Matrix/GeneralLinearGroup/Card.lean Modified Mathlib/LinearAlgebra/Matrix/GeneralLinearGroup/Defs.lean Modified Mathlib/LinearAlgebra/Matrix/SpecialLinearGroup.lean Modified Mathlib/LinearAlgebra/Multilinear/Basic.lean Modified Mathlib/LinearAlgebra/Pi.lean +/- theorem LinearMap.pi_zero Modified Mathlib/LinearAlgebra/PiTensorProduct.lean Modified Mathlib/LinearAlgebra/Prod.lean Modified Mathlib/LinearAlgebra/Projectivization/Subspace.lean Modified Mathlib/LinearAlgebra/QuadraticForm/QuadraticModuleCat.lean Modified Mathlib/LinearAlgebra/QuadraticForm/QuadraticModuleCat/Monoidal.lean Modified Mathlib/LinearAlgebra/Quotient.lean Modified Mathlib/LinearAlgebra/Ray.lean Modified Mathlib/LinearAlgebra/Span.lean Modified Mathlib/LinearAlgebra/TensorAlgebra/Basis.lean Modified Mathlib/LinearAlgebra/TensorPower.lean Modified Mathlib/LinearAlgebra/TensorProduct/DirectLimit.lean Modified Mathlib/LinearAlgebra/TensorProduct/Pi.lean Modified Mathlib/Logic/Equiv/Basic.lean +/- theorem Equiv.subtypeEquiv_refl Modified Mathlib/Logic/Equiv/Defs.lean Modified Mathlib/Logic/Equiv/Fin.lean Modified Mathlib/Logic/Equiv/List.lean Modified Mathlib/Logic/Equiv/PartialEquiv.lean Modified Mathlib/Logic/Equiv/Set.lean Modified Mathlib/Logic/Equiv/TransferInstance.lean Modified Mathlib/Logic/Function/Basic.lean +/- theorem Function.Injective2.left' +/- theorem Function.const_injective Modified Mathlib/Logic/Relation.lean Modified Mathlib/MeasureTheory/Category/MeasCat.lean Modified Mathlib/MeasureTheory/Constructions/BorelSpace/Basic.lean Modified Mathlib/MeasureTheory/Constructions/BorelSpace/Metric.lean Modified Mathlib/MeasureTheory/Constructions/BorelSpace/Order.lean +/- theorem MeasureTheory.Measure.ext_of_Ici Modified Mathlib/MeasureTheory/Constructions/BorelSpace/Real.lean Modified Mathlib/MeasureTheory/Constructions/EventuallyMeasurable.lean Modified Mathlib/MeasureTheory/Constructions/HaarToSphere.lean Modified Mathlib/MeasureTheory/Constructions/Pi.lean +/- theorem MeasureTheory.measurePreserving_finTwoArrow_vec Modified Mathlib/MeasureTheory/Covering/Besicovitch.lean Modified Mathlib/MeasureTheory/Covering/DensityTheorem.lean Modified Mathlib/MeasureTheory/Covering/Vitali.lean Modified Mathlib/MeasureTheory/Function/ConditionalExpectation/CondexpL2.lean Modified Mathlib/MeasureTheory/Function/LpOrder.lean Modified Mathlib/MeasureTheory/Function/LpSeminorm/Basic.lean Modified Mathlib/MeasureTheory/Function/LpSpace.lean Modified Mathlib/MeasureTheory/Function/SimpleFunc.lean Modified Mathlib/MeasureTheory/Function/UniformIntegrable.lean Modified Mathlib/MeasureTheory/Integral/IntegralEqImproper.lean Modified Mathlib/MeasureTheory/Integral/Lebesgue.lean Modified Mathlib/MeasureTheory/Integral/SetToL1.lean +/- theorem MeasureTheory.DominatedFinMeasAdditive.eq_zero +/- theorem MeasureTheory.FinMeasAdditive.zero Modified Mathlib/MeasureTheory/MeasurableSpace/Basic.lean Modified Mathlib/MeasureTheory/MeasurableSpace/Defs.lean Modified Mathlib/MeasureTheory/MeasurableSpace/Embedding.lean Modified Mathlib/MeasureTheory/Measure/Complex.lean Modified Mathlib/MeasureTheory/Measure/Count.lean +/- theorem MeasureTheory.Measure.count_apply Modified Mathlib/MeasureTheory/Measure/Hausdorff.lean Modified Mathlib/MeasureTheory/Measure/LevyProkhorovMetric.lean Modified Mathlib/MeasureTheory/Measure/MeasureSpace.lean Modified Mathlib/MeasureTheory/Measure/NullMeasurable.lean Modified Mathlib/MeasureTheory/Measure/Stieltjes.lean Modified Mathlib/MeasureTheory/Measure/Typeclasses.lean Modified Mathlib/MeasureTheory/Measure/VectorMeasure.lean Modified Mathlib/MeasureTheory/Measure/WithDensity.lean Modified Mathlib/MeasureTheory/Measure/WithDensityVectorMeasure.lean Modified Mathlib/MeasureTheory/OuterMeasure/OfFunction.lean Modified Mathlib/MeasureTheory/OuterMeasure/Operations.lean +/- theorem MeasureTheory.OuterMeasure.top_apply' Modified Mathlib/MeasureTheory/PiSystem.lean Modified Mathlib/MeasureTheory/SetSemiring.lean Modified Mathlib/ModelTheory/DirectLimit.lean Modified Mathlib/ModelTheory/Order.lean +/- theorem FirstOrder.Language.denselyOrdered_of_dlo Modified Mathlib/ModelTheory/Semantics.lean Modified Mathlib/ModelTheory/Substructures.lean Modified Mathlib/ModelTheory/Syntax.lean Modified Mathlib/ModelTheory/Ultraproducts.lean Modified Mathlib/NumberTheory/Cyclotomic/PrimitiveRoots.lean Modified Mathlib/NumberTheory/Cyclotomic/Rat.lean Modified Mathlib/NumberTheory/Divisors.lean Modified Mathlib/NumberTheory/EllipticDivisibilitySequence.lean Modified Mathlib/NumberTheory/LegendreSymbol/JacobiSymbol.lean Modified Mathlib/NumberTheory/Liouville/LiouvilleNumber.lean Modified Mathlib/NumberTheory/Liouville/Measure.lean Modified Mathlib/NumberTheory/Liouville/Residual.lean Modified Mathlib/NumberTheory/LucasLehmer.lean +/- def LucasLehmer.norm_num_ext.evalLucasLehmerTest Modified Mathlib/NumberTheory/ModularForms/Basic.lean Modified Mathlib/NumberTheory/NumberField/Units/DirichletTheorem.lean Modified Mathlib/NumberTheory/Ostrowski.lean Modified Mathlib/NumberTheory/Padics/Hensel.lean Modified Mathlib/NumberTheory/PellMatiyasevic.lean Modified Mathlib/NumberTheory/Primorial.lean Modified Mathlib/NumberTheory/Zsqrtd/Basic.lean Modified Mathlib/NumberTheory/Zsqrtd/GaussianInt.lean Modified Mathlib/NumberTheory/Zsqrtd/QuadraticReciprocity.lean +/- theorem GaussianInt.prime_of_nat_prime_of_mod_four_eq_three Modified Mathlib/Order/Antichain.lean Modified Mathlib/Order/Antisymmetrization.lean Modified Mathlib/Order/Atoms.lean Modified Mathlib/Order/Basic.lean Modified Mathlib/Order/Birkhoff.lean Modified Mathlib/Order/BooleanAlgebra.lean Modified Mathlib/Order/Booleanisation.lean Modified Mathlib/Order/Bounds/Basic.lean Modified Mathlib/Order/Category/BddDistLat.lean Modified Mathlib/Order/Category/BddLat.lean Modified Mathlib/Order/Category/BddOrd.lean Modified Mathlib/Order/Category/BoolAlg.lean Modified Mathlib/Order/Category/CompleteLat.lean Modified Mathlib/Order/Category/FinBddDistLat.lean Modified Mathlib/Order/Category/FinBoolAlg.lean Modified Mathlib/Order/Category/FinPartOrd.lean Modified Mathlib/Order/Category/Frm.lean Modified Mathlib/Order/Category/NonemptyFinLinOrd.lean Modified Mathlib/Order/Category/OmegaCompletePartialOrder.lean Modified Mathlib/Order/Category/Semilat.lean Modified Mathlib/Order/Circular.lean Modified Mathlib/Order/Closure.lean Modified Mathlib/Order/CompactlyGenerated/Basic.lean Modified Mathlib/Order/Compare.lean Modified Mathlib/Order/CompleteBooleanAlgebra.lean Modified Mathlib/Order/CompleteLattice.lean Modified Mathlib/Order/CompleteLatticeIntervals.lean Modified Mathlib/Order/Concept.lean Modified Mathlib/Order/ConditionallyCompleteLattice/Basic.lean Modified Mathlib/Order/Filter/AtTopBot.lean Modified Mathlib/Order/Filter/Basic.lean Modified Mathlib/Order/Filter/EventuallyConst.lean Modified Mathlib/Order/Filter/FilterProduct.lean Modified Mathlib/Order/Filter/Germ/Basic.lean Modified Mathlib/Order/Filter/Pi.lean Modified Mathlib/Order/Filter/Pointwise.lean Modified Mathlib/Order/Filter/SmallSets.lean Modified Mathlib/Order/Filter/Ultrafilter.lean Modified Mathlib/Order/GaloisConnection.lean Modified Mathlib/Order/Heyting/Basic.lean Modified Mathlib/Order/Heyting/Regular.lean Modified Mathlib/Order/Hom/Order.lean Modified Mathlib/Order/Ideal.lean Modified Mathlib/Order/InitialSeg.lean Modified Mathlib/Order/Interval/Basic.lean Modified Mathlib/Order/Interval/Finset/Defs.lean Modified Mathlib/Order/Interval/Set/Basic.lean Modified Mathlib/Order/Interval/Set/OrderIso.lean Modified Mathlib/Order/Interval/Set/Pi.lean +/- theorem Set.pi_univ_Ioi_subset Modified Mathlib/Order/OmegaCompletePartialOrder.lean Modified Mathlib/Order/Partition/Finpartition.lean Modified Mathlib/Order/PiLex.lean Modified Mathlib/Order/Rel/GaloisConnection.lean Modified Mathlib/Order/RelClasses.lean Modified Mathlib/Order/RelIso/Group.lean Modified Mathlib/Order/SuccPred/Basic.lean Modified Mathlib/Order/SupClosed.lean Modified Mathlib/Order/WellFoundedSet.lean Modified Mathlib/Order/WithBot.lean Modified Mathlib/Order/Zorn.lean Modified Mathlib/Probability/Distributions/Uniform.lean Modified Mathlib/Probability/Independence/Kernel.lean +/- theorem ProbabilityTheory.Kernel.Indep.indepSet_of_measurableSet Modified Mathlib/Probability/Kernel/Defs.lean Modified Mathlib/Probability/Kernel/Disintegration/StandardBorel.lean Modified Mathlib/Probability/Martingale/Convergence.lean Modified Mathlib/Probability/Moments.lean Modified Mathlib/Probability/ProbabilityMassFunction/Constructions.lean Modified Mathlib/Probability/ProbabilityMassFunction/Monad.lean Modified Mathlib/Probability/Process/Filtration.lean Modified Mathlib/RepresentationTheory/Action/Basic.lean Modified Mathlib/RepresentationTheory/Action/Concrete.lean Modified Mathlib/RepresentationTheory/Action/Monoidal.lean Modified Mathlib/RepresentationTheory/GroupCohomology/LowDegree.lean Modified Mathlib/RepresentationTheory/GroupCohomology/Resolution.lean Modified Mathlib/RepresentationTheory/Rep.lean Modified Mathlib/RingTheory/Adjoin/FG.lean Modified Mathlib/RingTheory/Bialgebra/Hom.lean Modified Mathlib/RingTheory/Binomial.lean Modified Mathlib/RingTheory/Coalgebra/Hom.lean Modified Mathlib/RingTheory/DedekindDomain/FiniteAdeleRing.lean Modified Mathlib/RingTheory/DedekindDomain/Ideal.lean Modified Mathlib/RingTheory/DedekindDomain/SelmerGroup.lean Modified Mathlib/RingTheory/Derivation/Basic.lean +/- theorem Derivation.eqOn_adjoin Modified Mathlib/RingTheory/Filtration.lean Modified Mathlib/RingTheory/Finiteness.lean Modified Mathlib/RingTheory/FractionalIdeal/Operations.lean Modified Mathlib/RingTheory/FreeCommRing.lean Modified Mathlib/RingTheory/FreeRing.lean Modified Mathlib/RingTheory/GradedAlgebra/HomogeneousLocalization.lean Modified Mathlib/RingTheory/HahnSeries/Summable.lean Modified Mathlib/RingTheory/HahnSeries/Valuation.lean Modified Mathlib/RingTheory/Ideal/Maps.lean Modified Mathlib/RingTheory/Ideal/Operations.lean Modified Mathlib/RingTheory/Ideal/Pointwise.lean Modified Mathlib/RingTheory/Ideal/Quotient.lean Modified Mathlib/RingTheory/IntegralDomain.lean Modified Mathlib/RingTheory/JacobsonIdeal.lean Modified Mathlib/RingTheory/Kaehler/Basic.lean Modified Mathlib/RingTheory/LocalProperties/Basic.lean Modified Mathlib/RingTheory/LocalProperties/Reduced.lean +/- theorem isReduced_localizationPreserves +/- theorem isReduced_ofLocalizationMaximal Modified Mathlib/RingTheory/Localization/AtPrime.lean +/- theorem Localization.le_comap_primeCompl_iff Modified Mathlib/RingTheory/Localization/Basic.lean Modified Mathlib/RingTheory/Localization/FractionRing.lean Modified Mathlib/RingTheory/Multiplicity.lean Modified Mathlib/RingTheory/MvPolynomial/Homogeneous.lean Modified Mathlib/RingTheory/MvPolynomial/Symmetric/FundamentalTheorem.lean Modified Mathlib/RingTheory/MvPolynomial/WeightedHomogeneous.lean Modified Mathlib/RingTheory/NonUnitalSubring/Basic.lean Modified Mathlib/RingTheory/Nullstellensatz.lean Modified Mathlib/RingTheory/OreLocalization/Ring.lean Modified Mathlib/RingTheory/Perfection.lean Modified Mathlib/RingTheory/Polynomial/Basic.lean Modified Mathlib/RingTheory/Polynomial/Cyclotomic/Eval.lean Modified Mathlib/RingTheory/Polynomial/Quotient.lean Modified Mathlib/RingTheory/PowerBasis.lean Modified Mathlib/RingTheory/ReesAlgebra.lean Modified Mathlib/RingTheory/Regular/RegularSequence.lean Modified Mathlib/RingTheory/SimpleModule.lean Modified Mathlib/RingTheory/TensorProduct/Basic.lean Modified Mathlib/RingTheory/UniqueFactorizationDomain.lean Modified Mathlib/RingTheory/Valuation/ValuationSubring.lean Modified Mathlib/RingTheory/WittVector/IsPoly.lean Modified Mathlib/RingTheory/WittVector/MulP.lean +/- theorem WittVector.mulN_isPoly Modified Mathlib/RingTheory/WittVector/Truncated.lean Modified Mathlib/SetTheory/Cardinal/Basic.lean Modified Mathlib/SetTheory/Cardinal/Cofinality.lean Modified Mathlib/SetTheory/Game/Basic.lean Modified Mathlib/SetTheory/Game/PGame.lean Modified Mathlib/SetTheory/Game/State.lean Modified Mathlib/SetTheory/Lists.lean Modified Mathlib/SetTheory/Ordinal/Arithmetic.lean Modified Mathlib/SetTheory/Ordinal/Basic.lean Modified Mathlib/SetTheory/Ordinal/Exponential.lean Modified Mathlib/SetTheory/Ordinal/FixedPoint.lean Modified Mathlib/SetTheory/Ordinal/NaturalOps.lean Modified Mathlib/SetTheory/Ordinal/Notation.lean Modified Mathlib/SetTheory/Ordinal/Principal.lean Modified Mathlib/SetTheory/ZFC/Basic.lean Modified Mathlib/SetTheory/ZFC/Ordinal.lean Modified Mathlib/Tactic/NormNum/Basic.lean Modified Mathlib/Tactic/NormNum/DivMod.lean Modified Mathlib/Tactic/NormNum/Eq.lean Modified Mathlib/Tactic/NormNum/GCD.lean Modified Mathlib/Tactic/NormNum/Ineq.lean Modified Mathlib/Tactic/NormNum/Inv.lean Modified Mathlib/Tactic/NormNum/IsCoprime.lean +/- def Tactic.NormNum.evalIntIsCoprime Modified Mathlib/Tactic/NormNum/LegendreSymbol.lean Modified Mathlib/Tactic/NormNum/NatFib.lean +/- def Mathlib.Meta.NormNum.evalNatFib Modified Mathlib/Tactic/NormNum/NatSqrt.lean +/- def Tactic.NormNum.evalNatSqrt Modified Mathlib/Tactic/NormNum/Pow.lean Modified Mathlib/Tactic/NormNum/Prime.lean +/- def Mathlib.Meta.NormNum.evalNatPrime Modified Mathlib/Testing/SlimCheck/Functions.lean Modified Mathlib/Topology/Algebra/Group/Basic.lean Modified Mathlib/Topology/Algebra/InfiniteSum/Basic.lean Modified Mathlib/Topology/Algebra/Module/Alternating/Basic.lean Modified Mathlib/Topology/Algebra/Nonarchimedean/Basic.lean Modified Mathlib/Topology/Algebra/Order/LiminfLimsup.lean Modified Mathlib/Topology/Algebra/UniformField.lean Modified Mathlib/Topology/Bases.lean Modified Mathlib/Topology/Basic.lean Modified Mathlib/Topology/Category/Compactum.lean Modified Mathlib/Topology/Category/LightProfinite/Basic.lean Modified Mathlib/Topology/Category/Profinite/Basic.lean Modified Mathlib/Topology/Category/TopCat/Adjunctions.lean Modified Mathlib/Topology/Category/TopCat/Limits/Basic.lean Modified Mathlib/Topology/Category/TopCat/Limits/Products.lean Modified Mathlib/Topology/Category/TopCat/Limits/Pullbacks.lean Modified Mathlib/Topology/Category/TopCat/OpenNhds.lean Modified Mathlib/Topology/Category/TopCat/Opens.lean Modified Mathlib/Topology/Category/TopCat/Yoneda.lean Modified Mathlib/Topology/Category/TopCommRingCat.lean Modified Mathlib/Topology/CompactOpen.lean Modified Mathlib/Topology/Compactification/OnePoint.lean Modified Mathlib/Topology/Compactness/Compact.lean +/- theorem IsCompact.elim_directed_family_closed +/- theorem isCompact_singleton Modified Mathlib/Topology/Compactness/CompactlyGeneratedSpace.lean Modified Mathlib/Topology/Compactness/Lindelof.lean +/- theorem isLindelof_singleton Modified Mathlib/Topology/Compactness/SigmaCompact.lean Modified Mathlib/Topology/Connected/Basic.lean Modified Mathlib/Topology/Constructions.lean Modified Mathlib/Topology/ContinuousMap/Bounded.lean Modified Mathlib/Topology/ContinuousMap/Compact.lean Modified Mathlib/Topology/ContinuousMap/Ideals.lean Modified Mathlib/Topology/ContinuousMap/Units.lean Modified Mathlib/Topology/ContinuousOn.lean Modified Mathlib/Topology/Defs/Induced.lean Modified Mathlib/Topology/EMetricSpace/Defs.lean Modified Mathlib/Topology/EMetricSpace/Pi.lean Modified Mathlib/Topology/FiberBundle/Constructions.lean Modified Mathlib/Topology/Filter.lean Modified Mathlib/Topology/Gluing.lean Modified Mathlib/Topology/Homeomorph.lean Modified Mathlib/Topology/Homotopy/HSpaces.lean Modified Mathlib/Topology/Instances/ENNReal.lean Modified Mathlib/Topology/Instances/EReal.lean Modified Mathlib/Topology/Instances/Real.lean Modified Mathlib/Topology/List.lean Modified Mathlib/Topology/MetricSpace/Algebra.lean Modified Mathlib/Topology/MetricSpace/Closeds.lean Modified Mathlib/Topology/MetricSpace/Dilation.lean Modified Mathlib/Topology/MetricSpace/Gluing.lean Modified Mathlib/Topology/MetricSpace/GromovHausdorffRealized.lean Modified Mathlib/Topology/MetricSpace/HausdorffDistance.lean Modified Mathlib/Topology/MetricSpace/Isometry.lean Modified Mathlib/Topology/MetricSpace/Pseudo/Constructions.lean Modified Mathlib/Topology/MetricSpace/Pseudo/Defs.lean Modified Mathlib/Topology/Metrizable/Uniformity.lean Modified Mathlib/Topology/Order.lean Modified Mathlib/Topology/Order/Basic.lean Modified Mathlib/Topology/Order/Bornology.lean Modified Mathlib/Topology/Order/Category/FrameAdjunction.lean Modified Mathlib/Topology/Order/MonotoneContinuity.lean Modified Mathlib/Topology/Partial.lean Modified Mathlib/Topology/PartialHomeomorph.lean Modified Mathlib/Topology/PartitionOfUnity.lean Modified Mathlib/Topology/SeparatedMap.lean Modified Mathlib/Topology/Separation.lean Modified Mathlib/Topology/Sequences.lean Modified Mathlib/Topology/Sets/Opens.lean Modified Mathlib/Topology/Sheaves/LocalPredicate.lean +/- def TopCat.subpresheafToTypes.subtype Modified Mathlib/Topology/Sheaves/Operations.lean Modified Mathlib/Topology/Sheaves/PresheafOfFunctions.lean Modified Mathlib/Topology/Sheaves/SheafCondition/PairwiseIntersections.lean Modified Mathlib/Topology/Sheaves/Skyscraper.lean Modified Mathlib/Topology/ShrinkingLemma.lean Modified Mathlib/Topology/UniformSpace/AbsoluteValue.lean Modified Mathlib/Topology/UniformSpace/Basic.lean Modified Mathlib/Topology/UniformSpace/Compact.lean Modified Mathlib/Topology/UniformSpace/Completion.lean Modified Mathlib/Topology/UniformSpace/UniformConvergence.lean Modified Mathlib/Topology/UniformSpace/UniformEmbedding.lean Modified Mathlib/Topology/VectorBundle/Hom.lean Added scripts/fix_unused.py 2024-10-14 12:17:39 c8c6a5f feat(Order/SuccPred): add instances for OrdConnected subtypes (#16766) ESTIMATED CHANGES Modified Mathlib/Order/SuccPred/Archimedean.lean + theorem le_total_of_codirected + theorem le_total_of_directed + theorem lt_or_le_of_codirected + theorem lt_or_le_of_directed Modified Mathlib/Order/SuccPred/Basic.lean + theorem coe_pred_of_mem + theorem coe_succ_of_mem + theorem isMax_of_not_succ_mem + theorem isMin_of_not_pred_mem + theorem not_pred_mem_iff_isMin + theorem not_succ_mem_iff_isMax 2024-10-14 12:17:37 8cb678e feat: compactly generated spaces for proper maps and preimages of compact sets / proper and properly discontinuous actions (#15239) Prove that a continuous function whose codomain is T2 and compactly generated is proper if and only if the preimages of compact sets are compact. This result already existed but was stated without the typeclass CompactlyGeneratedSpace. It is moved to its own file. When `X \times X` is T2 and compactly generated, a group action is proper if and only if it is properly discontinuous. This was stated without a type class instance for the compactly generated hypothesis. Now it is. ESTIMATED CHANGES Modified Mathlib.lean Renamed Mathlib/Topology/Algebra/ProperAction.lean to Mathlib/Topology/Algebra/ProperAction/Basic.lean - theorem FirstCountableTopology.properlyDiscontinuousSMul_iff_properSMul - theorem WeaklyLocallyCompactSpace.properlyDiscontinuousSMul_iff_properSMul - theorem properlyDiscontinuousSMul_iff_properSMul Added Mathlib/Topology/Algebra/ProperAction/ProperlyDiscontinuous.lean + theorem properlyDiscontinuousSMul_iff_properSMul Modified Mathlib/Topology/Compactness/CompactlyGeneratedSpace.lean + theorem CompactlyGeneratedSpace.isClosed_iff_of_t2 +/- theorem compactlyGeneratedSpace_of_isClosed_of_t2 +/- theorem compactlyGeneratedSpace_of_isOpen_of_t2 Modified Mathlib/Topology/Maps/Proper/Basic.lean - theorem SequentialSpace.isProperMap_iff_isCompact_preimage - theorem SequentialSpace.isProperMap_iff_tendsto_cocompact - theorem WeaklyLocallyCompactSpace.isProperMap_iff_isCompact_preimage - theorem WeaklyLocallyCompactSpace.isProperMap_iff_tendsto_cocompact - theorem compactlyGenerated_of_sequentialSpace - theorem compactlyGenerated_of_weaklyLocallyCompactSpace - theorem isProperMap_iff_isCompact_preimage - theorem isProperMap_iff_tendsto_cocompact Added Mathlib/Topology/Maps/Proper/CompactlyGenerated.lean + theorem isProperMap_iff_isCompact_preimage + theorem isProperMap_iff_tendsto_cocompact 2024-10-14 12:17:36 134f2f1 feat: add `RingTheory.Trace.Quotient`: relations between trace maps and quotients (#14798) We add a file `RingTheory.Trace.Quotient` gathering results about the relations between the trace map on `B → A` and the trace map on quotients and localizations. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/LinearAlgebra/Dimension/Constructions.lean + theorem finrank_le_of_span_eq_top Modified Mathlib/LinearAlgebra/Matrix/Trace.lean +/- theorem AddMonoidHom.map_trace Modified Mathlib/RingTheory/IntegralClosure/IntegrallyClosed.lean + theorem isIntegrallyClosed_of_isLocalization Added Mathlib/RingTheory/LocalRing/Quotient.lean + def LocalRing.basisQuotient + theorem LocalRing.basisQuotient_apply + theorem LocalRing.basisQuotient_repr + theorem LocalRing.finrank_quotient_map + theorem LocalRing.quotient_span_eq_top_iff_span_eq_top Added Mathlib/RingTheory/Trace/Quotient.lean + theorem Algebra.trace_quotient_eq_of_isDedekindDomain + theorem Algebra.trace_quotient_mk + theorem IsLocalization.AtPrime.map_eq_maximalIdeal + theorem comap_map_eq_map_of_isLocalization_algebraMapSubmonoid + def equivQuotMaximalIdealOfIsLocalization + def quotMapEquivQuotMapMaximalIdealOfIsLocalization + theorem trace_quotient_eq_trace_localization_quotient 2024-10-14 11:53:14 e126636 feat(CategoryTheory/Limits): Add basic pullback lemmas (#17685) This PR adds some basic lemmas about pullbacks of a monos/epi by itself. This is used in #14208. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/CommSq.lean + theorem CategoryTheory.CommSq.eq_of_epi + theorem CategoryTheory.CommSq.eq_of_mono Modified Mathlib/CategoryTheory/Galois/Basic.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Pullback/CommSq.lean + theorem CategoryTheory.IsPullback.isIso_fst_of_mono + theorem CategoryTheory.IsPullback.isIso_snd_iso_of_mono + theorem CategoryTheory.IsPushout.isIso_inl_iso_of_epi + theorem CategoryTheory.IsPushout.isIso_inr_iso_of_epi Modified Mathlib/CategoryTheory/Limits/Shapes/Pullback/Mono.lean + theorem CategoryTheory.Limits.PullbackCone.fst_eq_snd_of_mono_eq + theorem CategoryTheory.Limits.PullbackCone.isIso_fst_of_mono_of_isLimit + theorem CategoryTheory.Limits.PullbackCone.isIso_snd_of_mono_of_isLimit + theorem CategoryTheory.Limits.PushoutCocone.inl_eq_inr_of_epi_eq + theorem CategoryTheory.Limits.PushoutCocone.isIso_inl_of_epi_of_isColimit + theorem CategoryTheory.Limits.PushoutCocone.isIso_inr_of_epi_of_isColimit +/- theorem CategoryTheory.Limits.fst_eq_snd_of_mono_eq +/- theorem CategoryTheory.Limits.inl_eq_inr_of_epi_eq +/- theorem CategoryTheory.Limits.pullbackSymmetry_hom_of_mono_eq +/- theorem CategoryTheory.Limits.pullback_symmetry_hom_of_epi_eq 2024-10-14 11:21:01 cb3a2f9 feat(Algebra/Central): definition of central simple algebra (#16856) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Central/Basic.lean + theorem Algebra.IsCentral.baseField_essentially_unique + theorem Algebra.IsCentral.center_eq_bot + theorem Algebra.IsCentral.mem_center_iff Added Mathlib/Algebra/Central/Defs.lean 2024-10-14 10:52:08 c698100 refactor(CharP): make variables explicit + refactor (#14416) Follows up on Yael's comment in #8612 by making `n` (in `x ^ (p ^ n)`) explicit. ESTIMATED CHANGES Modified Mathlib/Algebra/CharP/Basic.lean +/- theorem CharP.neg_one_pow_char +/- theorem CharP.neg_one_pow_char_pow +/- theorem add_pow_char +/- theorem add_pow_char_of_commute +/- theorem add_pow_char_pow +/- theorem add_pow_char_pow_of_commute +/- theorem add_pow_prime_eq +/- theorem add_pow_prime_pow_eq +/- theorem exists_add_pow_prime_eq +/- theorem exists_add_pow_prime_pow_eq +/- theorem sub_pow_char +/- theorem sub_pow_char_of_commute +/- theorem sub_pow_char_pow +/- theorem sub_pow_char_pow_of_commute +/- theorem sub_pow_eq_sub_pow_mod_mul_pow_sub_pow_div Modified Mathlib/Algebra/CharP/ExpChar.lean Modified Mathlib/Data/Nat/Choose/Lucas.lean Modified Mathlib/RingTheory/Polynomial/Dickson.lean 2024-10-14 10:01:51 a767291 feat(CompleteLattice): add `iSup_image2` (#17705) ESTIMATED CHANGES Modified Mathlib/Order/CompleteLattice.lean + theorem iInf_image2 + theorem iSup_image2 2024-10-14 09:30:01 3f919e0 chore(SetTheory/Ordinal/Arithmetic): `sub_isNormal` → `isNormal_sub`, etc. (#17673) We fix various misnamed lemmas involving `IsNormal` and `IsLimit`. ESTIMATED CHANGES Modified Mathlib/SetTheory/Cardinal/Aleph.lean + theorem Cardinal.isNormal_beth Modified Mathlib/SetTheory/Cardinal/Cofinality.lean Modified Mathlib/SetTheory/Ordinal/Arithmetic.lean - theorem Ordinal.add_isLimit - theorem Ordinal.add_isNormal + theorem Ordinal.isLimit_add + theorem Ordinal.isLimit_mul + theorem Ordinal.isLimit_mul_left + theorem Ordinal.isLimit_sub + theorem Ordinal.isNormal_add_right + theorem Ordinal.isNormal_mul_right - theorem Ordinal.mul_isLimit - theorem Ordinal.mul_isLimit_left - theorem Ordinal.mul_isNormal - theorem Ordinal.sub_isLimit Modified Mathlib/SetTheory/Ordinal/Exponential.lean + theorem Ordinal.isLimit_opow + theorem Ordinal.isLimit_opow_left + theorem Ordinal.isNormal_opow - theorem Ordinal.opow_isLimit - theorem Ordinal.opow_isLimit_left - theorem Ordinal.opow_isNormal Modified Mathlib/SetTheory/Ordinal/FixedPoint.lean - theorem Ordinal.derivBFamily_isNormal - theorem Ordinal.derivFamily_isNormal - theorem Ordinal.deriv_isNormal + theorem Ordinal.isNormal_deriv + theorem Ordinal.isNormal_derivBFamily + theorem Ordinal.isNormal_derivFamily Modified Mathlib/SetTheory/Ordinal/NaturalOps.lean Modified Mathlib/SetTheory/Ordinal/Notation.lean Modified Mathlib/SetTheory/Ordinal/Principal.lean 2024-10-14 09:10:35 67ce927 feat(CategoryTheory/ChosenFiniteProducts/FunctorCategory): Tensoring on the left preserves colimits if it does so on the base category (#17719) Show that if `C` has chosen finite products and is such that tensoring on the left preserves `K`-shaped colimits, then the tensor product on `J ⥤ C` has the same property. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/ChosenFiniteProducts/FunctorCategory.lean 2024-10-14 08:17:17 5ab87a9 chore: use foldr in List.prod (#17223) Makes `List.prod_cons` a `rfl` lemma, without any axioms. Closes https://github.com/leanprover-community/mathlib3/issues/161 Simplifies some hypotheses, and makes this compatible with `Nat.sum` in core (which I will subsequently remove). ESTIMATED CHANGES Modified Mathlib/Algebra/BigOperators/Group/List.lean +/- theorem List.Perm.prod_eq +/- theorem List.prod_cons + theorem List.prod_eq_foldl +/- theorem List.prod_eq_foldr +/- theorem Nat.sum_eq_listSum Modified Mathlib/Algebra/BigOperators/Group/Multiset.lean +/- theorem Multiset.prod_coe Modified Mathlib/Algebra/FreeMonoid/Basic.lean Modified Mathlib/Data/Finsupp/BigOperators.lean Modified Mathlib/Data/PNat/Factors.lean 2024-10-14 07:22:37 7fe7e10 chore(Polish): fix instance priority (#17696) These instances should have lower priority as they always apply. ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Constructions/Polish/Basic.lean 2024-10-14 07:22:36 8142938 refactor: move theorem about lists to batteries (#12540) `List.modifyHead_modifyHead` is from `Mathlib.Data.List.Basic`. I need it to prove `String.splitOn_of_valid`. See https://github.com/leanprover-community/batteries/pull/743. Corresponding Batteries PR: https://github.com/leanprover-community/batteries/pull/756 ESTIMATED CHANGES Modified Mathlib/Data/List/Basic.lean - theorem List.modifyHead_modifyHead Modified Mathlib/Data/List/Perm.lean - theorem List.subperm_nil Modified lake-manifest.json 2024-10-14 06:05:08 5d2ccbb chore: weaken typeclass assumptions `MetricSpace` → `PseudoMetricSpace` (#17520) Discovered through the linter in #17519 (but in fact not related to it). ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Covering/DensityTheorem.lean Modified Mathlib/MeasureTheory/Covering/Differentiation.lean Modified Mathlib/MeasureTheory/Covering/LiminfLimsup.lean Modified Mathlib/MeasureTheory/Covering/Vitali.lean +/- theorem Vitali.exists_disjoint_covering_ae +/- theorem Vitali.exists_disjoint_subfamily_covering_enlargment_closedBall Modified Mathlib/MeasureTheory/Covering/VitaliFamily.lean Modified Mathlib/MeasureTheory/Measure/Doubling.lean 2024-10-14 06:05:07 8ffb37e chore: rename IsAlgClosure fields (#16392) to match the naming convention (rule 4). ESTIMATED CHANGES Modified Mathlib/FieldTheory/IsAlgClosed/AlgebraicClosure.lean Modified Mathlib/FieldTheory/IsAlgClosed/Basic.lean Modified Mathlib/FieldTheory/IsAlgClosed/Classification.lean Modified Mathlib/FieldTheory/IsSepClosed.lean Modified Mathlib/FieldTheory/PurelyInseparable.lean 2024-10-14 05:08:49 da6abac chore(*): add `@[gcongr]` to some n-ary monotonicity lemmas (#17704) ESTIMATED CHANGES Modified Mathlib/Data/Finset/NAry.lean Modified Mathlib/Data/Set/NAry.lean Modified Mathlib/Order/Filter/NAry.lean 2024-10-14 01:54:47 cfdf6e7 chore: use latest lean4checker (#17713) This updates to a version of lean4checker that by default only checks the current project, not upstream dependencies. This makes it possible for downstream projects to check themselves, without rechecking all of Mathlib. ESTIMATED CHANGES Modified .github/workflows/lean4checker.yml 2024-10-14 01:03:17 369e6fb chore: simplify lean4checker reporting (#17712) Previously, we were doing some mysterious `awk` parsing of the workflow result page, apparently in order to save clicking on link. This just links directly, and cuts out the unnecessarily `curl` + `awk` munging. Let's keep things simple? ESTIMATED CHANGES Modified .github/workflows/lean4checker.yml 2024-10-14 00:37:39 f05050b chore: bump ProofWidgets (#17710) This will resolve the current ``` warning: ././.lake/packages/proofwidgets/lakefile.lean:83:2: warning: `Lake.Package.afterReleaseAsync` has been deprecated, use `Lake.Package.afterBuildCacheAsync` instead ``` appearing in the output of `lake build`. ESTIMATED CHANGES Modified lake-manifest.json Modified lakefile.lean 2024-10-13 23:54:02 d990505 chore: rename `Complex.ofReal'` to `Complex.ofReal` (#17650) That's already how it was called in lemma names. Rename the existing `Complex.ofReal` to `Complex.ofRealHom` ESTIMATED CHANGES Modified Mathlib/Analysis/CStarAlgebra/Spectrum.lean Modified Mathlib/Analysis/Complex/AbelLimit.lean Modified Mathlib/Analysis/Complex/Basic.lean +/- theorem Complex.ringHom_eq_ofReal_of_continuous Modified Mathlib/Analysis/SpecialFunctions/Gamma/Basic.lean Modified Mathlib/Data/Complex/Abs.lean Modified Mathlib/Data/Complex/Basic.lean +/- theorem Complex.im_mul_ofReal +/- theorem Complex.im_ofReal_mul +/- theorem Complex.inv_im +/- theorem Complex.inv_re - def Complex.ofReal' +/- def Complex.ofReal + def Complex.ofRealHom + theorem Complex.ofRealHom_eq_coe +/- theorem Complex.ofReal_comp_add +/- theorem Complex.ofReal_comp_mul +/- theorem Complex.ofReal_comp_neg +/- theorem Complex.ofReal_comp_nsmul +/- theorem Complex.ofReal_comp_pow +/- theorem Complex.ofReal_comp_sub +/- theorem Complex.ofReal_comp_zsmul +/- theorem Complex.ofReal_div - theorem Complex.ofReal_eq_coe +/- theorem Complex.ofReal_intCast +/- theorem Complex.ofReal_natCast +/- theorem Complex.ofReal_nnqsmul +/- theorem Complex.ofReal_nnratCast +/- theorem Complex.ofReal_qsmul +/- theorem Complex.ofReal_ratCast +/- theorem Complex.ofReal_zpow +/- theorem Complex.re_mul_ofReal +/- theorem Complex.re_ofReal_mul Modified Mathlib/Data/Complex/BigOperators.lean Modified Mathlib/Data/Complex/Module.lean Modified Mathlib/Data/Complex/Order.lean +/- theorem Complex.monotone_ofReal +/- theorem Complex.real_le_real +/- theorem Complex.real_lt_real Modified Mathlib/NumberTheory/LSeries/Dirichlet.lean Modified Mathlib/NumberTheory/LSeries/HurwitzZetaEven.lean Modified Mathlib/NumberTheory/LSeries/HurwitzZetaOdd.lean Modified Mathlib/NumberTheory/LSeries/HurwitzZetaValues.lean Modified Mathlib/NumberTheory/LSeries/MellinEqDirichlet.lean Modified Mathlib/NumberTheory/NumberField/Discriminant.lean Modified Mathlib/Topology/Instances/Complex.lean 2024-10-13 23:54:01 9a1b545 feat(SetTheory/Game/Nim): make `grundyValue` a nimber (#17645) We redefine the grundy value of an impartial game as a nimber. That way, we can prove a more general form of `grundyValue_add`. ESTIMATED CHANGES Modified Mathlib/SetTheory/Game/Nim.lean +/- theorem SetTheory.PGame.equiv_nim_grundyValue +/- theorem SetTheory.PGame.exists_grundyValue_moveLeft_of_lt +/- theorem SetTheory.PGame.exists_grundyValue_moveRight_of_lt +/- theorem SetTheory.PGame.grundyValue_add +/- theorem SetTheory.PGame.grundyValue_eq_iff_equiv_nim +/- theorem SetTheory.PGame.grundyValue_iff_equiv_zero +/- theorem SetTheory.PGame.grundyValue_le_of_forall_moveLeft +/- theorem SetTheory.PGame.grundyValue_le_of_forall_moveRight +/- theorem SetTheory.PGame.grundyValue_nim_add_nim +/- theorem SetTheory.PGame.le_grundyValue_of_Iio_subset_moveLeft +/- theorem SetTheory.PGame.le_grundyValue_of_Iio_subset_moveRight +/- theorem SetTheory.PGame.nim_add_nim_equiv +/- theorem SetTheory.PGame.nim_grundyValue Modified Mathlib/SetTheory/Ordinal/Nimber.lean + theorem Nimber.lt_add_cases 2024-10-13 23:54:00 cd12592 refactor(Topology/Order/ScottTopology): Unify concepts of Scott Topology (#16523) Unify Scott Topologies, following on from #13201 and #16826. Originally Mathlib had a notion of ω-Scott Continuity and ω-Scott Topology based on Chains for ω-complete partial orders. Previously we introduced a notion of Scott Continuity and Scott Topology based on directed sets for arbitrary pre-orders (#2508). In #13201, we generalised our definition of Scott Continuity to include ω-Scott Continuity as a special case. This PR continues that work by generalising our notion of Scott Topology to include ω-Scott Topology as a special case. `Topology.IsScott.scottContinuous_iff_continuous` and `Topology.IsScott.ωscottContinuous_iff_continuous` have almost identical proofs and are presumably special cases of a more general result that I have not yet formulated. However I think this PR covers enough ground to be worth considering at this stage. ESTIMATED CHANGES Modified Mathlib/Topology/OmegaCompletePartialOrder.lean + theorem Topology.IsScott.ωscottContinuous_iff_continuous + theorem isOpen_iff_ωScottContinuous_mem + theorem scott_eq_Scott Modified Mathlib/Topology/Order/LawsonTopology.lean +/- def Topology.IsLawson.lawsonBasis +/- def Topology.lawson +/- theorem Topology.lawson_le_scott +/- theorem Topology.scottHausdorff_le_isLawson +/- theorem Topology.scottHausdorff_le_lawson Modified Mathlib/Topology/Order/ScottTopology.lean + theorem DirSupInacc.dirSupInaccOn + theorem DirSupInaccOn.mono + def DirSupInaccOn +/- theorem Topology.IsLower.scottHausdorff_le +/- theorem Topology.IsScott.closure_singleton +/- theorem Topology.IsScott.dirSupClosed_of_isClosed +/- theorem Topology.IsScott.isClosed_Iic +/- theorem Topology.IsScott.isClosed_iff_isLowerSet_and_dirSupClosed +/- theorem Topology.IsScott.isLowerSet_of_isClosed +/- theorem Topology.IsScott.isOpen_iff_Iic_compl_or_univ - theorem Topology.IsScott.isOpen_iff_isUpperSet_and_dirSupInacc + theorem Topology.IsScott.isOpen_iff_isUpperSet_and_dirSupInaccOn +/- theorem Topology.IsScott.isOpen_iff_isUpperSet_and_scottHausdorff_open +/- theorem Topology.IsScott.isOpen_iff_scottContinuous_mem +/- theorem Topology.IsScott.isUpperSet_of_isOpen +/- theorem Topology.IsScott.lowerClosure_subset_closure +/- theorem Topology.IsScott.monotone_of_continuous +/- theorem Topology.IsScott.scottContinuous_iff_continuous +/- theorem Topology.IsScott.scottHausdorff_le +/- theorem Topology.IsScott.scott_eq_upper_of_completeLinearOrder +/- theorem Topology.IsScott.topology_eq +/- def Topology.IsScott.withScottHomeomorph +/- theorem Topology.IsScottHausdorff.dirSupClosed_of_isClosed + theorem Topology.IsScottHausdorff.dirSupInaccOn_of_isOpen - theorem Topology.IsScottHausdorff.dirSupInacc_of_isOpen +/- theorem Topology.IsScottHausdorff.isOpen_iff +/- theorem Topology.IsScottHausdorff.topology_eq +/- def Topology.scott +/- def Topology.scottHausdorff +/- theorem Topology.scottHausdorff_le_lower +/- theorem Topology.scottHausdorff_le_scott +/- theorem Topology.upperSet_le_scott + theorem dirSupInaccOn_univ 2024-10-13 20:38:30 1e919af feat(Measure/Typeclasses): rename `sFiniteSeq` (#17423) Moves: - MeasureTheory.*sFiniteSeq* -> MeasureTheory.*sfiniteSeq* ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Constructions/Prod/Basic.lean Modified Mathlib/MeasureTheory/Decomposition/Lebesgue.lean Modified Mathlib/MeasureTheory/Integral/Lebesgue.lean Modified Mathlib/MeasureTheory/Measure/AEMeasurable.lean Modified Mathlib/MeasureTheory/Measure/Typeclasses.lean - def MeasureTheory.sFiniteSeq - theorem MeasureTheory.sFiniteSeq_le - theorem MeasureTheory.sFiniteSeq_zero + theorem MeasureTheory.sfiniteSeq_le + theorem MeasureTheory.sfiniteSeq_zero - theorem MeasureTheory.sum_sFiniteSeq + theorem MeasureTheory.sum_sfiniteSeq Modified Mathlib/MeasureTheory/Measure/WithDensity.lean Modified Mathlib/MeasureTheory/Measure/WithDensityFinite.lean - theorem MeasureTheory.sFiniteSeq_absolutelyContinuous_toFinite + theorem MeasureTheory.sfiniteSeq_absolutelyContinuous_toFinite Modified Mathlib/Probability/Kernel/Basic.lean 2024-10-13 20:22:57 808cf46 feat: a countable discrete measurable space is standard Borel (#17652) From PFR ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Constructions/Polish/Basic.lean 2024-10-13 20:13:07 282d392 chore(Probability/Variance): generalize assumptions from `MeasureSpace` to `MeasurableSpace` (#17702) https://leanprover.zulipchat.com/#narrow/stream/116395-maths/topic/.60MeasureSpace.60.20vs.20.60Measure.60.20in.20.60ProbabilityTheory.2F.60 ESTIMATED CHANGES Modified Mathlib/Probability/Variance.lean +/- theorem ProbabilityTheory.IndepFun.variance_add +/- theorem ProbabilityTheory.IndepFun.variance_sum +/- theorem ProbabilityTheory.evariance_def' +/- theorem ProbabilityTheory.meas_ge_le_evariance_div_sq +/- theorem ProbabilityTheory.meas_ge_le_variance_div_sq +/- theorem ProbabilityTheory.variance_def' +/- theorem ProbabilityTheory.variance_le_expectation_sq 2024-10-13 19:01:15 30a1060 feat(Analysis/Calculus/LogDeriv): add division lemma (#16541) ESTIMATED CHANGES Modified Mathlib/Analysis/Calculus/LogDeriv.lean + theorem logDeriv_div 2024-10-13 17:57:36 67556a0 fix(Condensed): use `CompHausLike.const` instead of a private def (#17409) ESTIMATED CHANGES Modified Mathlib/Condensed/Light/TopCatAdjunction.lean Modified Mathlib/Condensed/TopCatAdjunction.lean +/- def CondensedSet.toTopCat 2024-10-13 17:33:25 f55bf2c chore(*): replace `erw` with `rw` where possible (#17703) Go through Mathlib and replace `erw` calls where `rw` would also succeed. This PR is split off from #17638, containing all the changes that the linter suggested. ESTIMATED CHANGES Modified Archive/Wiedijk100Theorems/Partition.lean Modified Mathlib/Algebra/Category/ModuleCat/Presheaf/Sheafify.lean Modified Mathlib/Algebra/Homology/ShortComplex/Ab.lean Modified Mathlib/Algebra/Homology/ShortComplex/ConcreteCategory.lean Modified Mathlib/AlgebraicGeometry/AffineScheme.lean Modified Mathlib/AlgebraicGeometry/Cover/Open.lean Modified Mathlib/AlgebraicGeometry/Gluing.lean Modified Mathlib/Analysis/Normed/Group/SemiNormedGrp.lean Modified Mathlib/Analysis/Normed/Group/SemiNormedGrp/Completion.lean Modified Mathlib/Analysis/Normed/Group/SemiNormedGrp/Kernels.lean Modified Mathlib/Geometry/RingedSpace/OpenImmersion.lean Modified Mathlib/Geometry/RingedSpace/PresheafedSpace/Gluing.lean Modified Mathlib/Topology/Category/TopCat/Limits/Products.lean Modified Mathlib/Topology/Category/TopCat/Limits/Pullbacks.lean Modified Mathlib/Topology/Gluing.lean 2024-10-13 17:05:05 6a98dbd feat(CategoryTheory/ChosenFiniteProducts.lean): `simp` lemmas for left and right unitors in `ChosenFiniteProducts` monoidal structure (#17695) Add 4 `simp` lemmas for left and right unitors in the monoidal structure obtained from instances of `ChosenFiniteProducts`. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/ChosenFiniteProducts.lean + theorem CategoryTheory.ChosenFiniteProducts.leftUnitor_inv_fst + theorem CategoryTheory.ChosenFiniteProducts.leftUnitor_inv_snd + theorem CategoryTheory.ChosenFiniteProducts.rightUnitor_inv_fst + theorem CategoryTheory.ChosenFiniteProducts.rightUnitor_inv_snd 2024-10-13 16:31:57 9d6891a feat: `MeasurableSpace` instance for `AddChar` (#17275) This is stupid, but it's the only case I care about in APAP. Can be made less stupid later. From LeanAPAP ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/MeasureTheory/Constructions/AddChar.lean 2024-10-13 14:07:50 3d44cf1 feeat(CategoryTheory/Monoidal/Functor): Constructor for strong monoidal functors from oplax monoidal functors (#17691) Add a constructor `MonoidalFunctor.fromOplaxMonoidalFunctor` that converts an oplax monoidal functor to a monoidal functor, provided the tensorators ans unitors are isomorphims. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Monoidal/Functor.lean 2024-10-13 13:49:18 626e646 feat(PMF): A few more lemmas (#17698) From LeanCamCombi ESTIMATED CHANGES Modified Mathlib/Probability/ProbabilityMassFunction/Constructions.lean + theorem PMF.map_ofFintype + theorem PMF.toMeasure_map +/- theorem PMF.toMeasure_map_apply 2024-10-13 11:16:27 81d66bb chore: more adaptations for lean4#5542 (#17688) In [lean4#5542](https://github.com/leanprover/lean4/pull/5542) we are deprecating `inductive ... :=`, `structure ... :=`, and `class ... :=` for their `... where` counterparts. Continuation of #17655. ESTIMATED CHANGES Modified test/Simps.lean +/- structure MyProd Modified test/Traversable.lean 2024-10-13 11:01:00 1dd1a10 feat(Probability/Kernel): `IsFiniteKernel` instances (#17681) `IsFiniteKernel` instances for `withDensity η (rnDeriv κ η)` and `singularPart κ η`. ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Decomposition/RadonNikodym.lean + theorem MeasureTheory.Measure.lintegral_rnDeriv_le Modified Mathlib/Probability/Kernel/RadonNikodym.lean 2024-10-13 10:51:35 5640128 chore: generalize strong law of large numbers from `MeasureSpace` to `MeasurableSpace` (#17692) See discussion at https://leanprover.zulipchat.com/#narrow/stream/116395-maths/topic/.60MeasureSpace.60.20vs.20.60Measure.60.20in.20.60ProbabilityTheory.2F.60/near/476526619 ESTIMATED CHANGES Modified Mathlib/Probability/StrongLaw.lean +/- theorem ProbabilityTheory.strong_law_Lp +/- theorem ProbabilityTheory.strong_law_ae +/- theorem ProbabilityTheory.strong_law_ae_real 2024-10-13 09:56:42 7306a03 feat(MeasureTheory): two lemmas about `Measure.bind` (#17630) Add two simp lemmas `bind_const` and `bind_dirac_eq_map`. Swap the names of `bind_dirac` and `dirac_bind` for coherence with the other names in the file. ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Measure/GiryMonad.lean + theorem MeasureTheory.Measure.bind_const +/- theorem MeasureTheory.Measure.bind_dirac + theorem MeasureTheory.Measure.bind_dirac_eq_map +/- theorem MeasureTheory.Measure.dirac_bind +/- theorem MeasureTheory.Measure.join_map_dirac 2024-10-13 00:14:51 e7062ed chore(scripts): update nolints.json (#17690) I am happy to remove some nolints for you! ESTIMATED CHANGES Modified scripts/nolints.json 2024-10-12 15:26:53 1fb2cbc chore(Order/ConditionallyCompleteLattice/Basic): ConditionallyCompleteLinearOrderBot extends OrderBot (#17524) ESTIMATED CHANGES Modified Mathlib/Order/ConditionallyCompleteLattice/Basic.lean 2024-10-12 14:24:48 90f1b4d chore(Order): move more defs to Defs (#17677) ESTIMATED CHANGES Modified Mathlib/Data/Fintype/Order.lean Modified Mathlib/Order/CompleteLattice/Finset.lean Modified Mathlib/Order/Defs.lean + theorem Maximal.le_of_ge + theorem Maximal.prop + def Maximal + theorem Minimal.le_of_le + theorem Minimal.prop + def Minimal Modified Mathlib/Order/Filter/AtTopBot.lean Modified Mathlib/Order/Minimal.lean - theorem Maximal.le_of_ge - theorem Maximal.prop - def Maximal - theorem Minimal.le_of_le - theorem Minimal.prop - def Minimal 2024-10-12 12:46:13 a02b71d feat(MorphismProperty/Presheaf): add `relative` morphism property (#16143) Given a morphism property P and a functor F, we define the morphism property `P.relative` of morphisms in the codomain of `F`. This is defined as being relatively representable with respect to `F`, and that any represented pullback of the morphism satisfies P. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/MorphismProperty/Representable.lean +/- theorem CategoryTheory.Functor.relativelyRepresentable.map + theorem CategoryTheory.MorphismProperty.of_relative_map + theorem CategoryTheory.MorphismProperty.relative.of_exists + theorem CategoryTheory.MorphismProperty.relative.property + theorem CategoryTheory.MorphismProperty.relative.property_snd + theorem CategoryTheory.MorphismProperty.relative.rep + def CategoryTheory.MorphismProperty.relative + theorem CategoryTheory.MorphismProperty.relative_map + theorem CategoryTheory.MorphismProperty.relative_map_iff + theorem CategoryTheory.MorphismProperty.relative_of_snd 2024-10-12 08:56:40 90cf978 chore(Order/Bounds): move defs to a new file (#17676) Also generalize definitions to `LE`. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/CharP/Defs.lean Modified Mathlib/Data/Int/GCD.lean Modified Mathlib/Order/Bounds/Basic.lean - def BddAbove - def BddBelow - def IsGLB - def IsGreatest - def IsLUB - def IsLeast - def lowerBounds - def upperBounds Added Mathlib/Order/Bounds/Defs.lean + def BddAbove + def BddBelow + def IsGLB + def IsGreatest + def IsLUB + def IsLeast + def lowerBounds + def upperBounds Modified Mathlib/Order/WellFounded.lean 2024-10-12 08:01:28 0405d97 feat(SetTheory/Cardinal/Basic): congruency theorems for cardinalities of sigmas (#16824) Add various congruency lemmas for `Cardinal.mk`. ESTIMATED CHANGES Modified Mathlib/SetTheory/Cardinal/Basic.lean + theorem Cardinal.mk_pi_congr' + theorem Cardinal.mk_pi_congr + theorem Cardinal.mk_pi_congrRight + theorem Cardinal.mk_pi_congrRight_prop + theorem Cardinal.mk_pi_congr_lift + theorem Cardinal.mk_pi_congr_prop + theorem Cardinal.mk_psigma_congrRight + theorem Cardinal.mk_psigma_congrRight_prop + theorem Cardinal.mk_sigma_congr' + theorem Cardinal.mk_sigma_congr + theorem Cardinal.mk_sigma_congrRight + theorem Cardinal.mk_sigma_congr_lift 2024-10-12 07:45:41 4752113 chore(MeasureTheory/Integral/SetIntegral): fix lemma names (#17658) Rename: * `integral_empty` -> `setIntegral_empty` * `integral_union` -> `setIntegral_union` * `integral_univ` -> `setIntegral_univ` * `setIntegral_congr` -> `setIntegral_congr_fun` * `setIntegral_congr₀` -> `setIntegral_congr_fun₀` * `setLIntegral_congr_set_ae` -> `setIntegral_congr_set` From PFR ESTIMATED CHANGES Modified Mathlib/Analysis/Calculus/BumpFunction/Normed.lean Modified Mathlib/Analysis/Fourier/AddCircle.lean Modified Mathlib/Analysis/MellinTransform.lean Modified Mathlib/Analysis/SpecialFunctions/Gamma/Basic.lean Modified Mathlib/Analysis/SpecialFunctions/Gamma/Beta.lean Modified Mathlib/Analysis/SpecialFunctions/Gamma/BohrMollerup.lean Modified Mathlib/Analysis/SpecialFunctions/Gaussian/GaussianIntegral.lean Modified Mathlib/Analysis/SpecialFunctions/PolarCoord.lean Modified Mathlib/MeasureTheory/Constructions/HaarToSphere.lean Modified Mathlib/MeasureTheory/Decomposition/RadonNikodym.lean Modified Mathlib/MeasureTheory/Function/AEEqOfIntegral.lean Modified Mathlib/MeasureTheory/Function/ConditionalExpectation/Basic.lean Modified Mathlib/MeasureTheory/Integral/Average.lean Modified Mathlib/MeasureTheory/Integral/DivergenceTheorem.lean Modified Mathlib/MeasureTheory/Integral/Gamma.lean Modified Mathlib/MeasureTheory/Integral/IntegralEqImproper.lean Modified Mathlib/MeasureTheory/Integral/IntervalIntegral.lean Modified Mathlib/MeasureTheory/Integral/PeakFunction.lean Modified Mathlib/MeasureTheory/Integral/SetIntegral.lean - theorem MeasureTheory.integral_empty - theorem MeasureTheory.integral_union - theorem MeasureTheory.integral_univ - theorem MeasureTheory.setIntegral_congr + theorem MeasureTheory.setIntegral_congr_fun + theorem MeasureTheory.setIntegral_congr_fun₀ + theorem MeasureTheory.setIntegral_congr_set - theorem MeasureTheory.setIntegral_congr_set_ae - theorem MeasureTheory.setIntegral_congr₀ + theorem MeasureTheory.setIntegral_empty + theorem MeasureTheory.setIntegral_union + theorem MeasureTheory.setIntegral_univ Modified Mathlib/MeasureTheory/Integral/TorusIntegral.lean Modified Mathlib/MeasureTheory/Measure/Lebesgue/Integral.lean Modified Mathlib/MeasureTheory/Measure/Lebesgue/VolumeOfBalls.lean Modified Mathlib/MeasureTheory/Measure/Tilted.lean Modified Mathlib/NumberTheory/LSeries/AbstractFuncEq.lean Modified Mathlib/NumberTheory/LSeries/MellinEqDirichlet.lean Modified Mathlib/Probability/Kernel/Disintegration/CDFToKernel.lean Modified Mathlib/Probability/Kernel/Disintegration/CondCDF.lean Modified Mathlib/Probability/Kernel/Disintegration/Density.lean Modified Mathlib/Probability/Martingale/BorelCantelli.lean Modified Mathlib/Probability/Martingale/Convergence.lean Modified Mathlib/Probability/Martingale/OptionalStopping.lean Modified Mathlib/Probability/Martingale/Upcrossing.lean 2024-10-12 07:45:40 52e14c0 feat(HolderNorm): Define the Hölder norm (#16711) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Topology/MetricSpace/HolderNorm.lean + theorem HolderWith.eHolderNorm_le + theorem HolderWith.memHolder + theorem HolderWith.nnholderNorm_le + theorem MemHolder.add + theorem MemHolder.coe_nnHolderNorm_eq_eHolderNorm + theorem MemHolder.comp + theorem MemHolder.holderWith + theorem MemHolder.nnHolderNorm_add_le + theorem MemHolder.nnHolderNorm_eq_zero + theorem MemHolder.nnHolderNorm_nsmul + theorem MemHolder.nnHolderNorm_smul + theorem MemHolder.nsmul + theorem MemHolder.smul + def MemHolder + theorem coe_nnHolderNorm_le_eHolderNorm + def eHolderNorm + theorem eHolderNorm_add_le + theorem eHolderNorm_const + theorem eHolderNorm_eq_top + theorem eHolderNorm_eq_zero + theorem eHolderNorm_lt_top + theorem eHolderNorm_ne_top + theorem eHolderNorm_nsmul + theorem eHolderNorm_of_isEmpty + theorem eHolderNorm_smul + theorem eHolderNorm_zero + theorem memHolder_const' + theorem memHolder_const + theorem memHolder_iff_holderWith + theorem memHolder_zero + def nnHolderNorm + theorem nnHolderNorm_const + theorem nnHolderNorm_zero 2024-10-12 06:38:54 21dee83 chore(*): assume `[Nonempty α] [Subsingleton α]` instead of `Unique α` (#17670) ESTIMATED CHANGES Modified Mathlib/Analysis/Convex/Basic.lean +/- theorem stdSimplex_unique Modified Mathlib/Logic/Unique.lean + theorem nonempty_unique Modified Mathlib/SetTheory/Cardinal/Basic.lean +/- theorem Cardinal.mk_eq_one Modified Mathlib/SetTheory/Cardinal/Finite.lean +/- theorem Nat.card_unique Modified Mathlib/SetTheory/Ordinal/Basic.lean +/- theorem Ordinal.type_eq_one_of_unique Modified Mathlib/Topology/Homotopy/Contractible.lean Modified Mathlib/Topology/TietzeExtension.lean 2024-10-12 06:38:53 3f143f7 feat(Probability/Kernel): simple lemmas about composition of kernels (#17596) ESTIMATED CHANGES Modified Mathlib/Probability/Kernel/Composition.lean + theorem ProbabilityTheory.Kernel.comp_zero + theorem ProbabilityTheory.Kernel.deterministic_comp_deterministic + theorem ProbabilityTheory.Kernel.deterministic_prod_deterministic + theorem ProbabilityTheory.Kernel.fst_comp + theorem ProbabilityTheory.Kernel.map_comp + theorem ProbabilityTheory.Kernel.snd_comp + theorem ProbabilityTheory.Kernel.snd_compProd_prodMkLeft + theorem ProbabilityTheory.Kernel.zero_comp 2024-10-12 06:29:42 db09487 feat(Probability/Kernel): the kernel Radon-Nikodym derivative and singular part are unique (#17591) ESTIMATED CHANGES Modified Mathlib/Probability/Kernel/RadonNikodym.lean + theorem ProbabilityTheory.Kernel.eq_rnDeriv + theorem ProbabilityTheory.Kernel.eq_rnDeriv_measure + theorem ProbabilityTheory.Kernel.eq_singularPart + theorem ProbabilityTheory.Kernel.eq_singularPart_measure + theorem ProbabilityTheory.Kernel.rnDeriv_eq_rnDeriv_measure + theorem ProbabilityTheory.Kernel.singularPart_eq_singularPart_measure + theorem ProbabilityTheory.Kernel.singularPart_self 2024-10-12 05:37:39 33614d2 feat(AlgebraicGeometry): API for affine opens (#15259) ESTIMATED CHANGES Modified Mathlib/AlgebraicGeometry/AffineScheme.lean + theorem AlgebraicGeometry.IsAffineOpen.Spec_map_appLE_fromSpec - theorem AlgebraicGeometry.IsAffineOpen.SpecΓIdentity_hom_app_fromSpec + theorem AlgebraicGeometry.IsAffineOpen.fromSpec_app_of_le + theorem AlgebraicGeometry.IsAffineOpen.fromSpec_top + def AlgebraicGeometry.IsAffineOpen.isoSpec + theorem AlgebraicGeometry.IsAffineOpen.isoSpec_hom_app_top + theorem AlgebraicGeometry.IsAffineOpen.isoSpec_hom_val_base_apply + theorem AlgebraicGeometry.IsAffineOpen.isoSpec_inv_app_top + theorem AlgebraicGeometry.IsAffineOpen.isoSpec_inv_ι + theorem AlgebraicGeometry.IsAffineOpen.primeIdealOf_eq_map_closedPoint + theorem AlgebraicGeometry.IsAffineOpen.ΓSpecIso_hom_fromSpec_app + theorem AlgebraicGeometry.Scheme.isoSpec_Spec + theorem AlgebraicGeometry.Scheme.isoSpec_Spec_hom + theorem AlgebraicGeometry.Scheme.isoSpec_Spec_inv Modified Mathlib/AlgebraicGeometry/GammaSpecAdjunction.lean + theorem AlgebraicGeometry.Scheme.toSpecΓ_val_base 2024-10-12 00:58:04 c35f067 chore(bors.toml): remove obsolete label (#17664) There does not exist an 'not-ready-to-merge' label; the awaiting-CI label has a similar role (and is in that list). ESTIMATED CHANGES Modified bors.toml 2024-10-11 20:34:39 9ba2d95 chore: uniformise more copyright headers (#17660) The comment in `Data/Finset/Sym` is a porting artifact and can just be removed. Pre-requisite for rewriting the copyright header linter in Lean in #16574. ESTIMATED CHANGES Modified Mathlib/Data/Finset/Sym.lean Modified Mathlib/GroupTheory/GroupAction/Hom.lean Modified Mathlib/RepresentationTheory/GroupCohomology/LowDegree.lean Modified Mathlib/Tactic/CategoryTheory/Slice.lean 2024-10-11 20:24:03 cd0f1a3 chore(scripts/bench): benchmark with `--no-cache` (#17572) There appears to be some incompatibility with executables downloaded from the cloud cache on NixOS, which broke the speedcenter. We used to benchmark all dependencies before the upgrade to 4.13.0-rc1, so let's go back to doing that. ESTIMATED CHANGES Modified scripts/bench/temci-config.run.yml 2024-10-11 19:55:05 2a15456 chore(SetTheory/Ordinal/Exponential): `Ordinal.log` cleanup (#17635) We do the following: - Make the definition of `log` a non-dependent `if`. - Private `log_nonempty`. - Deprecate `log_of_not_one_lt_left` in favor of `log_of_left_le_one`. - Remove an unnecessary argument from `log_mod_opow_log_lt_log_self`. - Drive-by proof cleanup. ESTIMATED CHANGES Modified Mathlib/SetTheory/Ordinal/CantorNormalForm.lean Modified Mathlib/SetTheory/Ordinal/Exponential.lean +/- theorem Ordinal.log_def +/- theorem Ordinal.log_le_self +/- theorem Ordinal.log_mod_opow_log_lt_log_self +/- theorem Ordinal.log_mono_right - theorem Ordinal.log_nonempty +/- theorem Ordinal.log_of_left_le_one +/- theorem Ordinal.log_one_right +/- theorem Ordinal.log_zero_right 2024-10-11 18:32:47 ae22b2a feat(Dynamics.TopologicalEntropy.Semiconj): topological entropy and semiconjugacies (#17387) Fourth PR in a sequence to implement the notion of topological entropy for maps using Bowen-Dinaburg's formalism. This file deals with the entropy of two systems related by a semiconjugacy. - [x] Dynamical uniformities - [x] Topological entropy via covers - [x] Topological entropy via nets - [x] Behaviour under semiconjugacy - [ ] Behaviour for subsets and unions - [ ] Behaviour under products - [ ] Full shift There is only one new file, `Dynamics.TopologicalEntropy.Semiconj`, which is quite short (200 lines including the documentation), and no other modification. I must say I am quite pleased by `coverEntropy_image`. Paging @pitmonticone @sgouezel ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Dynamics/TopologicalEntropy/Semiconj.lean + theorem Dynamics.IsDynCoverOf.image + theorem Dynamics.IsDynCoverOf.preimage + theorem Dynamics.coverEntropyEntourage_image_le + theorem Dynamics.coverEntropyInfEntourage_image_le + theorem Dynamics.coverEntropyInf_image_le_of_uniformContinuous + theorem Dynamics.coverEntropyInf_image_le_of_uniformContinuousOn_invariant + theorem Dynamics.coverEntropyInf_image_of_comap + theorem Dynamics.coverEntropyInf_restrict_subset + theorem Dynamics.coverEntropy_image_le_of_uniformContinuous + theorem Dynamics.coverEntropy_image_le_of_uniformContinuousOn_invariant + theorem Dynamics.coverEntropy_image_of_comap + theorem Dynamics.coverEntropy_restrict + theorem Dynamics.coverEntropy_restrict_subset + theorem Dynamics.coverMincard_image_le + theorem Dynamics.le_coverEntropyEntourage_image + theorem Dynamics.le_coverEntropyInfEntourage_image + theorem Dynamics.le_coverMincard_image 2024-10-11 18:13:14 d3599bd chore: more adaptations for lean4#5542 (#17655) In [lean4#5542](https://github.com/leanprover/lean4/pull/5542) we are deprecating `inductive ... :=`, `structure ... :=`, and `class ... :=` for their `... where` counterparts. Continuation of #17564. ESTIMATED CHANGES Modified Mathlib/Analysis/NormedSpace/HahnBanach/SeparatingDual.lean Modified Mathlib/Probability/Kernel/Disintegration/CDFToKernel.lean Modified Mathlib/RingTheory/Algebraic.lean Modified Mathlib/RingTheory/IntegralClosure/Algebra/Defs.lean 2024-10-11 16:35:28 ee31f16 chore(Tactic/Polyrith): remove Python `requests` dependency in SageMath call (#17605) * Replaced the `requests` library needed by the Python script for SageMath API call, with native library `urllib.request`. * E.g. if the user has no `pip install` rights, such as evaluation on a shared server * Added explicit `User-Agent` header to SageMath requests: `LeanProver (https://leanprover-community.github.io/)`. Previously, it was the default used by Python requests package `python-requests/...`. ESTIMATED CHANGES Modified Mathlib/Tactic/Polyrith.lean Modified scripts/polyrith_sage.py 2024-10-11 15:48:41 69c6cf5 perf: use implicit parameters in `SMul` hierarchy (#17582) ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/Defs.lean Modified Mathlib/Algebra/Module/Defs.lean Modified Mathlib/Algebra/Ring/Action/Basic.lean Modified Mathlib/Algebra/SMulWithZero.lean 2024-10-11 15:01:38 85cf1f1 chore(NumberTheory/Fermat): rename `fermat` to `Nat.fermatNumber` (#17618) (And also namespace and rename the lemmas about them.) As discussed in the reviewers chatroom. ESTIMATED CHANGES Modified Mathlib/NumberTheory/Fermat.lean + theorem Nat.coprime_fermatNumber_fermatNumber + def Nat.fermatNumber + theorem Nat.fermatNumber_eq_prod_add_two + theorem Nat.fermatNumber_one + theorem Nat.fermatNumber_product + theorem Nat.fermatNumber_two + theorem Nat.fermatNumber_zero + theorem Nat.odd_fermatNumber + theorem Nat.strictMono_fermatNumber + theorem Nat.two_lt_fermatNumber - theorem coprime_fermat_fermat - def fermat - theorem fermat_eq_prod_add_two - theorem fermat_one - theorem fermat_product - theorem fermat_two - theorem fermat_zero - theorem odd_fermat - theorem strictMono_fermat - theorem two_lt_fermat 2024-10-11 15:01:37 683a462 chore: generalise `zpow` lemmas from `LinearOrderedSemifield` to `GroupWithZero` (#17539) ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Archimedean/Basic.lean Modified Mathlib/Algebra/Order/Field/Power.lean +/- theorem one_lt_zpow +/- theorem zpow_injective +/- theorem zpow_le_of_le Modified Mathlib/Algebra/Order/GroupWithZero/Unbundled.lean +/- theorem inv_le_one_iff₀ +/- theorem inv_lt_one_iff₀ + theorem one_le_zpow_of_nonpos₀ + theorem one_le_zpow₀ + theorem one_lt_zpow_of_neg₀ + theorem one_lt_zpow₀ + theorem zpow_le_one_of_nonpos₀ + theorem zpow_le_one₀ + theorem zpow_le_zpow_iff_right₀ + theorem zpow_le_zpow_right_of_le_one₀ + theorem zpow_le_zpow_right₀ + theorem zpow_lt_one_of_neg₀ + theorem zpow_lt_one₀ + theorem zpow_lt_zpow_iff_right₀ + theorem zpow_lt_zpow_right_of_lt_one₀ + theorem zpow_lt_zpow_right₀ + theorem zpow_pos - theorem zpow_pos_of_pos + theorem zpow_right_anti₀ + theorem zpow_right_injective₀ + theorem zpow_right_inj₀ + theorem zpow_right_mono₀ + theorem zpow_right_strictAnti₀ + theorem zpow_right_strictMono₀ Modified Mathlib/Algebra/Order/Positive/Field.lean Modified Mathlib/Analysis/Convex/SpecificFunctions/Deriv.lean Modified Mathlib/Analysis/Distribution/SchwartzSpace.lean Modified Mathlib/Analysis/Hofer.lean Modified Mathlib/Analysis/Seminorm.lean Modified Mathlib/Analysis/SpecialFunctions/Bernstein.lean Modified Mathlib/Analysis/SpecificLimits/Normed.lean Modified Mathlib/Computability/AkraBazzi/GrowsPolynomially.lean Modified Mathlib/Data/Int/Log.lean Modified Mathlib/Data/Int/WithZero.lean Modified Mathlib/Data/NNReal/Basic.lean - theorem NNReal.zpow_pos Modified Mathlib/MeasureTheory/Integral/CircleIntegral.lean Modified Mathlib/NumberTheory/Padics/PadicIntegers.lean Modified Mathlib/NumberTheory/Padics/PadicNorm.lean Modified Mathlib/NumberTheory/Padics/PadicNumbers.lean Modified Mathlib/NumberTheory/Padics/RingHoms.lean 2024-10-11 15:01:36 25d2057 feat(SetTheory/Cardinal/Basic): `Cardinal.liftInitialSeg` (#16958) We introduce an `InitialSeg` version of `Cardinal.lift` and use it to golf down the `lift` API. ESTIMATED CHANGES Modified Mathlib/SetTheory/Cardinal/Basic.lean + def Cardinal.liftInitialSeg +/- theorem Cardinal.lift_le + theorem Cardinal.mem_range_of_le_lift Modified Mathlib/SetTheory/Cardinal/Cofinality.lean Modified Mathlib/SetTheory/Ordinal/Basic.lean 2024-10-11 14:04:34 98e84e2 chore: address `@[elab_as_elim]` porting notes (#17625) - Now Lean 4 supports complex discriminants, so this PR re-enables `@[elab_as_elim]` for these eliminators. These should be reviewed to decide whether they should be `@[elab_as_elim]`, since this elaborator requires an expected type to function, so is more restrictive. - Functions that return something non-dependent should never be `@[elab_as_elim]`, since this case doesn't need anything special for successful elaboration. Plus, `@[elab_as_elim]` would make it more likely to fail. ESTIMATED CHANGES Modified Mathlib/Computability/Reduce.lean Modified Mathlib/Computability/TuringMachine.lean Modified Mathlib/Data/Finmap.lean Modified Mathlib/Data/Ordmap/Ordset.lean Modified Mathlib/Data/Quot.lean Modified Mathlib/FieldTheory/PerfectClosure.lean Modified Mathlib/GroupTheory/MonoidLocalization/Basic.lean Modified Mathlib/LinearAlgebra/Determinant.lean Modified Mathlib/Logic/Basic.lean Modified Mathlib/Logic/Encodable/Lattice.lean Modified Mathlib/RingTheory/UniqueFactorizationDomain.lean 2024-10-11 13:41:08 49e5607 feat: the complement of a null set has full measure (#17644) From PFR ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Measure/NullMeasurable.lean + theorem MeasureTheory.measure_of_measure_compl_eq_zero 2024-10-11 13:32:07 49ed4be chore: remove "removed `@[simp]` to avoid a `simpNF` linter error" porting notes (#17648) These notes are outdated (the simp-nf linter does not error when making these simp), and David told me that these lemmas were not good simp lemmas anyway. [Zulip](https://leanprover.zulipchat.com/#narrow/stream/263328-triage/topic/issue.20!4.2310759.3A.20Porting.20note.3A.20removed.20.60.40.5Bsimp.5D.60.20to.20avoid.20.2E.2E.2E/near/476173526) Closes #10759. ESTIMATED CHANGES Modified Mathlib/AlgebraicGeometry/EllipticCurve/Affine.lean Modified Mathlib/AlgebraicGeometry/EllipticCurve/Group.lean Modified Mathlib/AlgebraicGeometry/EllipticCurve/Weierstrass.lean 2024-10-11 13:11:02 69715a1 feat(Measure/WithDensityFinite): redefine `Measure.toFinite` (#17421) - Redefine `Measure.toFinite` using `exists_isFiniteMeasure_absolutelyContinuous`. - Redefine `Measure.densityToFinite` as `rnDeriv`, deprecate it. - Drop some lemmas about `toFiniteAux`. - Simplify proofs. ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Measure/Typeclasses.lean + theorem MeasureTheory.sFiniteSeq_le +/- theorem MeasureTheory.sFiniteSeq_zero Modified Mathlib/MeasureTheory/Measure/WithDensityFinite.lean - def MeasureTheory.Measure.densityToFinite +/- theorem MeasureTheory.absolutelyContinuous_toFinite + theorem MeasureTheory.ae_toFinite + theorem MeasureTheory.ae_toFiniteAux + theorem MeasureTheory.isFiniteMeasure_toFiniteAux - theorem MeasureTheory.sFiniteSeq_absolutelyContinuous_toFiniteAux - theorem MeasureTheory.toFiniteAux_absolutelyContinuous_toFinite - theorem MeasureTheory.toFiniteAux_apply - theorem MeasureTheory.toFiniteAux_eq_zero_iff - theorem MeasureTheory.toFiniteAux_univ_le_one - theorem MeasureTheory.toFiniteAux_zero +/- theorem MeasureTheory.toFinite_absolutelyContinuous - theorem MeasureTheory.toFinite_apply + theorem MeasureTheory.toFinite_apply_eq_zero_iff + theorem MeasureTheory.toFinite_eq_self +/- theorem MeasureTheory.toFinite_zero 2024-10-11 13:11:01 8839a89 feat: L2 inner product of finite sequences (#16447) Define the weighted L2 inner product of functions `f g : ∀ i, E i` where `ι` is a fintype and the `E i` are `𝕜`-inner product spaces where `𝕜` is `RCLike` as `∑ i, w i • inner (f i) (g i)`. This "duplicates" `inner` but is necessary because there are two useful (to discrete analysis) inner products on `G → R` given inner products on `R` and `Fintype G`, namely * the usual "discrete" inner product `∑ i, conj (f i) * g i` * the less usual but nevertheless crucial "compact" inner product `𝔼 i, conj (f i) * g i` From LeanAPAP ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/RCLike/Inner.lean + theorem RCLike.abs_wInner_le + theorem RCLike.conj_wInner_symm + theorem RCLike.inner_eq_wInner_one + theorem RCLike.linearIndependent_of_ne_zero_of_wInner_cWeight_eq_zero + theorem RCLike.linearIndependent_of_ne_zero_of_wInner_one_eq_zero + theorem RCLike.mul_wInner_left + theorem RCLike.norm_wInner_le + def RCLike.wInner + theorem RCLike.wInner_add_left + theorem RCLike.wInner_add_right + theorem RCLike.wInner_cWeight_const_left + theorem RCLike.wInner_cWeight_const_right + theorem RCLike.wInner_cWeight_eq_expect + theorem RCLike.wInner_cWeight_eq_smul_wInner_one + theorem RCLike.wInner_const_left + theorem RCLike.wInner_const_right + theorem RCLike.wInner_neg_left + theorem RCLike.wInner_neg_right + theorem RCLike.wInner_nonneg + theorem RCLike.wInner_of_isEmpty + theorem RCLike.wInner_one_const_left + theorem RCLike.wInner_one_const_right + theorem RCLike.wInner_one_eq_inner + theorem RCLike.wInner_one_eq_sum + theorem RCLike.wInner_smul_left + theorem RCLike.wInner_smul_right + theorem RCLike.wInner_sub_left + theorem RCLike.wInner_sub_right + theorem RCLike.wInner_zero_left + theorem RCLike.wInner_zero_right 2024-10-11 13:11:00 15074a6 feat(AlgebraicGeometry): factorization of morphisms with affine target (#15033) ESTIMATED CHANGES Modified Mathlib/AlgebraicGeometry/AffineScheme.lean + def AlgebraicGeometry.affineTargetImage + def AlgebraicGeometry.affineTargetImageFactorization + theorem AlgebraicGeometry.affineTargetImageFactorization_app_injective + theorem AlgebraicGeometry.affineTargetImageFactorization_comp + def AlgebraicGeometry.affineTargetImageInclusion + theorem AlgebraicGeometry.affineTargetImageInclusion_app_surjective + def AlgebraicGeometry.arrowIsoΓSpecOfIsAffine + def AlgebraicGeometry.specTargetImage + def AlgebraicGeometry.specTargetImageFactorization + theorem AlgebraicGeometry.specTargetImageFactorization_app_injective + theorem AlgebraicGeometry.specTargetImageFactorization_comp + def AlgebraicGeometry.specTargetImageIdeal + def AlgebraicGeometry.specTargetImageRingHom + theorem AlgebraicGeometry.specTargetImageRingHom_surjective Modified Mathlib/AlgebraicGeometry/GammaSpecAdjunction.lean + theorem AlgebraicGeometry.ΓSpecIso_inv_ΓSpec_adjunction_homEquiv + theorem AlgebraicGeometry.ΓSpec_adjunction_homEquiv_eq 2024-10-11 12:40:18 9a93412 fix(CategoryTheory/Sites): typos in module docstring of `PreservesSheafification` file (#17643) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Sites/PreservesSheafification.lean 2024-10-11 12:40:16 8600b59 fix(Condensed): remove unnecessary @ (#17642) ESTIMATED CHANGES Modified Mathlib/Condensed/Discrete/Module.lean 2024-10-11 12:40:15 13c52d6 chore(SetTheory/Cardinal/Ordinal): split file (#16990) We split this file into two: - `Cardinal/Aleph`: contains the definitions for the aleph and beth functions (and soon, the omega function). - `Cardinal/Arithmetic`: any results on cardinal arithmetic that depend on `c * c = c` (which requires some basic properties of ordinals to be proven) These files are otherwise unchanged, with the exception of tweaking some section headers. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Quaternion.lean Modified Mathlib/Data/W/Cardinal.lean Modified Mathlib/ModelTheory/Encoding.lean Modified Mathlib/Order/Filter/CardinalInter.lean Modified Mathlib/Order/Filter/Cocardinal.lean Modified Mathlib/RingTheory/Localization/Cardinality.lean Added Mathlib/SetTheory/Cardinal/Aleph.lean + def Cardinal.Aleph'.relIso + theorem Cardinal.aleph'.relIso_coe + def Cardinal.aleph' + def Cardinal.aleph'Equiv + theorem Cardinal.aleph'_alephIdx + theorem Cardinal.aleph'_isNormal + theorem Cardinal.aleph'_le + theorem Cardinal.aleph'_le_of_limit + theorem Cardinal.aleph'_limit + theorem Cardinal.aleph'_lt + theorem Cardinal.aleph'_max + theorem Cardinal.aleph'_nat + theorem Cardinal.aleph'_omega0 + theorem Cardinal.aleph'_pos + theorem Cardinal.aleph'_succ + theorem Cardinal.aleph'_zero + theorem Cardinal.aleph0_le_aleph' + theorem Cardinal.aleph0_le_aleph + theorem Cardinal.aleph0_le_beth + theorem Cardinal.aleph0_lt_aleph_one + def Cardinal.aleph + theorem Cardinal.alephIdx.init + def Cardinal.alephIdx.initialSeg + theorem Cardinal.alephIdx.initialSeg_coe + def Cardinal.alephIdx.relIso + theorem Cardinal.alephIdx.relIso_coe + def Cardinal.alephIdx + theorem Cardinal.alephIdx_aleph' + theorem Cardinal.alephIdx_le + theorem Cardinal.alephIdx_lt + theorem Cardinal.aleph_eq_aleph' + theorem Cardinal.aleph_isNormal + theorem Cardinal.aleph_le + theorem Cardinal.aleph_le_beth + theorem Cardinal.aleph_limit + theorem Cardinal.aleph_lt + theorem Cardinal.aleph_max + theorem Cardinal.aleph_pos + theorem Cardinal.aleph_succ + theorem Cardinal.aleph_toNat + theorem Cardinal.aleph_toPartENat + theorem Cardinal.aleph_zero + def Cardinal.beth + theorem Cardinal.beth_le + theorem Cardinal.beth_limit + theorem Cardinal.beth_lt + theorem Cardinal.beth_mono + theorem Cardinal.beth_ne_zero + theorem Cardinal.beth_normal + theorem Cardinal.beth_pos + theorem Cardinal.beth_strictMono + theorem Cardinal.beth_succ + theorem Cardinal.beth_zero + theorem Cardinal.countable_iff_lt_aleph_one + theorem Cardinal.eq_aleph'_of_eq_card_ord + theorem Cardinal.eq_aleph_of_eq_card_ord + theorem Cardinal.exists_aleph + theorem Cardinal.max_aleph_eq + theorem Cardinal.mk_cardinal + theorem Cardinal.ord_aleph_isLimit + theorem Cardinal.ord_card_unbounded' + theorem Cardinal.ord_card_unbounded + theorem Cardinal.succ_aleph0 + theorem Cardinal.type_cardinal + theorem Ordinal.omega_lt_omega1 Renamed Mathlib/SetTheory/Cardinal/Ordinal.lean to Mathlib/SetTheory/Cardinal/Arithmetic.lean - def Cardinal.Aleph'.relIso - theorem Cardinal.aleph'.relIso_coe - def Cardinal.aleph' - def Cardinal.aleph'Equiv - theorem Cardinal.aleph'_alephIdx - theorem Cardinal.aleph'_isNormal - theorem Cardinal.aleph'_le - theorem Cardinal.aleph'_le_of_limit - theorem Cardinal.aleph'_limit - theorem Cardinal.aleph'_lt - theorem Cardinal.aleph'_max - theorem Cardinal.aleph'_nat - theorem Cardinal.aleph'_omega0 - theorem Cardinal.aleph'_pos - theorem Cardinal.aleph'_succ - theorem Cardinal.aleph'_zero - theorem Cardinal.aleph0_le_aleph' - theorem Cardinal.aleph0_le_aleph - theorem Cardinal.aleph0_le_beth - theorem Cardinal.aleph0_lt_aleph_one - def Cardinal.aleph - theorem Cardinal.alephIdx.init - def Cardinal.alephIdx.initialSeg - theorem Cardinal.alephIdx.initialSeg_coe - def Cardinal.alephIdx.relIso - theorem Cardinal.alephIdx.relIso_coe - def Cardinal.alephIdx - theorem Cardinal.alephIdx_aleph' - theorem Cardinal.alephIdx_le - theorem Cardinal.alephIdx_lt - theorem Cardinal.aleph_eq_aleph' - theorem Cardinal.aleph_isNormal - theorem Cardinal.aleph_le - theorem Cardinal.aleph_le_beth - theorem Cardinal.aleph_limit - theorem Cardinal.aleph_lt - theorem Cardinal.aleph_max - theorem Cardinal.aleph_pos - theorem Cardinal.aleph_succ - theorem Cardinal.aleph_toNat - theorem Cardinal.aleph_toPartENat - theorem Cardinal.aleph_zero - def Cardinal.beth - theorem Cardinal.beth_le - theorem Cardinal.beth_limit - theorem Cardinal.beth_lt - theorem Cardinal.beth_mono - theorem Cardinal.beth_ne_zero - theorem Cardinal.beth_normal - theorem Cardinal.beth_pos - theorem Cardinal.beth_strictMono - theorem Cardinal.beth_succ - theorem Cardinal.beth_zero - theorem Cardinal.countable_iff_lt_aleph_one - theorem Cardinal.eq_aleph'_of_eq_card_ord - theorem Cardinal.eq_aleph_of_eq_card_ord - theorem Cardinal.exists_aleph - theorem Cardinal.max_aleph_eq - theorem Cardinal.mk_cardinal - theorem Cardinal.noMaxOrder - theorem Cardinal.ord_aleph_isLimit - theorem Cardinal.ord_card_unbounded' - theorem Cardinal.ord_card_unbounded - theorem Cardinal.ord_isLimit - theorem Cardinal.succ_aleph0 - theorem Cardinal.type_cardinal - theorem Ordinal.omega0_lt_omega1 Modified Mathlib/SetTheory/Cardinal/Cofinality.lean Modified Mathlib/SetTheory/Cardinal/Continuum.lean Modified Mathlib/SetTheory/Cardinal/CountableCover.lean Modified Mathlib/SetTheory/Cardinal/Divisibility.lean Modified Mathlib/SetTheory/Cardinal/Finsupp.lean Modified Mathlib/SetTheory/Ordinal/Arithmetic.lean + theorem Cardinal.noMaxOrder + theorem Cardinal.ord_isLimit 2024-10-11 12:11:18 eab6727 doc(SetTheory/Ordinal/Arithmetic): update module docs (#17603) `enumOrd` is no longer defined in this file. ESTIMATED CHANGES Modified Mathlib/SetTheory/Ordinal/Arithmetic.lean 2024-10-11 11:28:34 b22ecdf feat: `essSup` of the uniform measure (#17463) From LeanAPAP ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Function/EssSup.lean + theorem essInf_cond_count_eq_ciInf + theorem essSup_uniformOn_eq_ciSup 2024-10-11 11:07:01 b74cd07 feat: ` PUnit × α ≃ᵐ α` (#17640) From PFR ESTIMATED CHANGES Modified Mathlib/MeasureTheory/MeasurableSpace/Embedding.lean + def MeasurableEquiv.prodPUnit + def MeasurableEquiv.punitProd 2024-10-11 10:10:17 c585207 chore: clean up after #17615 (#17617) This PR goes through the diff of #17615, which automatically replaced `erw` with `rw`, to clean up as follows: * delete obsolote comments * merge adjacent `rw` calls * restore old code that was commented out when it broke at some point but now works again ESTIMATED CHANGES Modified Mathlib/Algebra/MonoidAlgebra/ToDirectSum.lean Modified Mathlib/Algebra/Polynomial/Module/Basic.lean Modified Mathlib/AlgebraicGeometry/Cover/Open.lean Modified Mathlib/AlgebraicTopology/SimplexCategory.lean Modified Mathlib/CategoryTheory/GradedObject/Unitor.lean Modified Mathlib/CategoryTheory/Limits/Presheaf.lean Modified Mathlib/CategoryTheory/Limits/VanKampen.lean Modified Mathlib/CategoryTheory/Localization/SmallHom.lean Modified Mathlib/Data/Complex/Exponential.lean Modified Mathlib/Data/Multiset/Fintype.lean Modified Mathlib/Geometry/RingedSpace/LocallyRingedSpace/HasColimits.lean Modified Mathlib/Geometry/RingedSpace/PresheafedSpace/Gluing.lean Modified Mathlib/Geometry/RingedSpace/PresheafedSpace/HasColimits.lean Modified Mathlib/LinearAlgebra/TensorProduct/Graded/External.lean Modified Mathlib/RepresentationTheory/Character.lean Modified Mathlib/RepresentationTheory/GroupCohomology/Basic.lean Modified Mathlib/RepresentationTheory/GroupCohomology/Resolution.lean Modified Mathlib/RingTheory/EisensteinCriterion.lean Modified Mathlib/RingTheory/Henselian.lean Modified Mathlib/RingTheory/Ideal/Operations.lean Modified Mathlib/RingTheory/PowerSeries/Basic.lean Modified Mathlib/RingTheory/PowerSeries/Inverse.lean Modified Mathlib/RingTheory/Valuation/Integral.lean Modified Mathlib/Topology/Category/CompHaus/Projective.lean Modified Mathlib/Topology/Category/Profinite/CofilteredLimit.lean Modified Mathlib/Topology/Category/Profinite/Projective.lean Modified Mathlib/Topology/Category/TopCat/Limits/Cofiltered.lean Modified Mathlib/Topology/Category/TopCat/Limits/Pullbacks.lean Modified Mathlib/Topology/Gluing.lean Modified Mathlib/Topology/LocalAtTarget.lean Modified Mathlib/Topology/Order/LawsonTopology.lean 2024-10-11 09:39:16 e4fa33c feat: `Finsupp.mapRange` of a surjective function is surjective (#17637) From PFR ESTIMATED CHANGES Modified Mathlib/Data/Finsupp/Defs.lean + theorem Finsupp.mapRange_mapRange + theorem Finsupp.mapRange_surjective 2024-10-11 08:08:17 7a7d5c0 chore(Data/List): make `List.map_const'` be simp (#17622) `List.map_const` is already simp but stated using `Function.const` rather than a plain lambda, so it never fires in my application. From LeanCamCombi ESTIMATED CHANGES Modified Mathlib/Data/List/Basic.lean 2024-10-11 07:51:10 fe48a46 feat: `SpecialLinearGroup n R` is finite when `R` is (#17629) From GrowthInGroups ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/Matrix/SpecialLinearGroup.lean 2024-10-11 07:20:54 3390e40 chore: rename `condCount` to `uniformOn` (#17571) ESTIMATED CHANGES Modified Archive/Wiedijk100Theorems/BallotProblem.lean +/- theorem Ballot.ballot_edge +/- theorem Ballot.ballot_same Modified Archive/Wiedijk100Theorems/BirthdayProblem.lean Modified Mathlib.lean Deleted Mathlib/Probability/CondCount.lean - def ProbabilityTheory.condCount - theorem ProbabilityTheory.condCount_add_compl_eq - theorem ProbabilityTheory.condCount_compl - theorem ProbabilityTheory.condCount_disjoint_union - theorem ProbabilityTheory.condCount_empty - theorem ProbabilityTheory.condCount_empty_meas - theorem ProbabilityTheory.condCount_eq_one_of - theorem ProbabilityTheory.condCount_eq_zero_iff - theorem ProbabilityTheory.condCount_inter' - theorem ProbabilityTheory.condCount_inter - theorem ProbabilityTheory.condCount_inter_self - theorem ProbabilityTheory.condCount_isProbabilityMeasure - theorem ProbabilityTheory.condCount_of_univ - theorem ProbabilityTheory.condCount_self - theorem ProbabilityTheory.condCount_singleton - theorem ProbabilityTheory.condCount_union - theorem ProbabilityTheory.condCount_univ - theorem ProbabilityTheory.finite_of_condCount_ne_zero - theorem ProbabilityTheory.pred_true_of_condCount_eq_one Added Mathlib/Probability/UniformOn.lean + theorem ProbabilityTheory.finite_of_uniformOn_ne_zero + theorem ProbabilityTheory.pred_true_of_uniformOn_eq_one + def ProbabilityTheory.uniformOn + theorem ProbabilityTheory.uniformOn_add_compl_eq + theorem ProbabilityTheory.uniformOn_compl + theorem ProbabilityTheory.uniformOn_disjoint_union + theorem ProbabilityTheory.uniformOn_empty + theorem ProbabilityTheory.uniformOn_empty_meas + theorem ProbabilityTheory.uniformOn_eq_one_of + theorem ProbabilityTheory.uniformOn_eq_zero_iff + theorem ProbabilityTheory.uniformOn_inter' + theorem ProbabilityTheory.uniformOn_inter + theorem ProbabilityTheory.uniformOn_inter_self + theorem ProbabilityTheory.uniformOn_isProbabilityMeasure + theorem ProbabilityTheory.uniformOn_of_univ + theorem ProbabilityTheory.uniformOn_self + theorem ProbabilityTheory.uniformOn_singleton + theorem ProbabilityTheory.uniformOn_union + theorem ProbabilityTheory.uniformOn_univ Modified scripts/no_lints_prime_decls.txt 2024-10-11 06:22:37 1cc075d feat: remove the `SmoothManifoldWithCorners` assumption in the definition of tangent spaces (#17616) Currently, the definition of the tangent space to a manifold includes (as a nolinted unused parameter) the assumption that the manifold is smooth. However, many statements make sense without this assumption (notably differentiability statements), and including it forces to include a lot of machinery on smooth bundles in the definition of `MDifferentiableWithinAt`, say. We remove the assumption from the definition. This makes it possible to remove the assumption `SmoothManifoldWithCorners` from a bunch of statements (including some where it is clearly irrelevant), and disentangle our import structure, without any bad consequence as far as I can tell. There is nothing added or removed in this PR, just moving things around and removing `[SmoothManifoldWithCorners I M]` assumptions. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Analysis/Complex/UpperHalfPlane/Manifold.lean Modified Mathlib/Geometry/Manifold/ContMDiffMFDeriv.lean Modified Mathlib/Geometry/Manifold/Diffeomorph.lean Modified Mathlib/Geometry/Manifold/IntegralCurve.lean Modified Mathlib/Geometry/Manifold/MFDeriv/Atlas.lean - theorem mfderiv_chartAt_eq_tangentCoordChange - theorem tangentMap_chart - theorem tangentMap_chart_symm Modified Mathlib/Geometry/Manifold/MFDeriv/Basic.lean - theorem UniqueMDiffOn.eq Modified Mathlib/Geometry/Manifold/MFDeriv/Defs.lean Modified Mathlib/Geometry/Manifold/MFDeriv/SpecificFunctions.lean Added Mathlib/Geometry/Manifold/MFDeriv/Tangent.lean + theorem UniqueMDiffOn.tangentBundle_proj_preimage + theorem mfderiv_chartAt_eq_tangentCoordChange + theorem tangentMap_chart + theorem tangentMap_chart_symm Modified Mathlib/Geometry/Manifold/MFDeriv/UniqueDifferential.lean - theorem UniqueMDiffOn.tangentBundle_proj_preimage Modified Mathlib/Geometry/Manifold/SmoothManifoldWithCorners.lean + def TangentSpace Modified Mathlib/Geometry/Manifold/VectorBundle/SmoothSection.lean Modified Mathlib/Geometry/Manifold/VectorBundle/Tangent.lean - def TangentSpace 2024-10-10 23:04:25 c413975 feat(SetTheory/Ordinal/Exponential): `log b x = y ↔ x ∈ Set.Ico (b ^ y) (b ^ (succ y))` (#15930) We give a nice characterization for `log b x = y`. We then use it to prove a more general version of `log_opow_mul_add`, alongside other lemmas. ESTIMATED CHANGES Modified Mathlib/SetTheory/Ordinal/Exponential.lean + theorem Ordinal.log_eq_iff + theorem Ordinal.log_opow_mul +/- theorem Ordinal.log_opow_mul_add 2024-10-10 21:35:59 061a5b1 chore(AlgebraicTopology): moved some files into SimplicialSet (#17620) The files `KanComplex.lean`, `Nerve.lean`, and `Quasicategory.lean` are moved from AlgebraicTopology into the SimplicialSet subfolder. The file `AlgebraicTopology/SimplicialSet.lean` is moved as well and renamed to`AlgebraicTopology/SimplicialSet/Basic.lean`. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/AlgebraicTopology/ExtraDegeneracy.lean Renamed Mathlib/AlgebraicTopology/SimplicialSet.lean to Mathlib/AlgebraicTopology/SimplicialSet/Basic.lean Renamed Mathlib/AlgebraicTopology/KanComplex.lean to Mathlib/AlgebraicTopology/SimplicialSet/KanComplex.lean Modified Mathlib/AlgebraicTopology/SimplicialSet/Monoidal.lean Renamed Mathlib/AlgebraicTopology/Nerve.lean to Mathlib/AlgebraicTopology/SimplicialSet/Nerve.lean Renamed Mathlib/AlgebraicTopology/Quasicategory.lean to Mathlib/AlgebraicTopology/SimplicialSet/Quasicategory.lean Modified Mathlib/AlgebraicTopology/SingularSet.lean 2024-10-10 16:56:06 3ae6376 chore: rename leftovers from the port (#17619) ESTIMATED CHANGES Modified Mathlib/Analysis/Calculus/ContDiff/Basic.lean + theorem ContDiff.comp_contDiffOn₂ + theorem ContDiff.comp_contDiffOn₃ - theorem ContDiff.comp_contDiff_on₂ - theorem ContDiff.comp_contDiff_on₃ Modified Mathlib/Analysis/Calculus/ContDiff/Bounds.lean Modified Mathlib/Analysis/Calculus/ContDiff/Defs.lean + theorem ContDiffWithinAt.differentiableWithinAt' - theorem ContDiffWithinAt.differentiable_within_at' Modified Mathlib/Geometry/Manifold/MFDeriv/Basic.lean Modified Mathlib/Geometry/Manifold/MFDeriv/Defs.lean + theorem differentiableWithinAt_localInvariantProp - theorem differentiable_within_at_localInvariantProp 2024-10-10 16:56:05 985d961 chore: fix a structure instance for lean4#5528 (#17567) [lean4#5528](https://github.com/leanprover/lean4/pull/5528) fixes some issues with how structure instance notation expands, which breaks `OrderIso.mapSetOfMaximal`. This PR manually expands the spread notation. For the curious, this definition is making use of both the implicit lambda feature and implicit arguments in `map_rel_iff' := f.map_rel_iff`. Concretely, this is equivalent to `map_rel_iff' {_ _} := f.map_rel_iff _ _` where the `_`'s don't match up. ESTIMATED CHANGES Modified Mathlib/Order/Minimal.lean 2024-10-10 15:57:08 9a13537 fix: silence `sleep_heartbeats` in `unusedTactic` (#17352) Found thanks to the `large-import` label on #12339. ESTIMATED CHANGES Modified Mathlib/Tactic/Linter/UnusedTactic.lean Modified Mathlib/Util/SleepHeartbeats.lean 2024-10-10 14:59:27 f8265e0 chore: automatically replace `erw` with `rw` that work as well (#17615) This is an automatically generated PR, replacing 259 `erw` calls with `rw` for free. I'm working on a follow-up that manually deals with the context around these `erw`s: deleting now-useless comments about `erw` and merging adjacent `rw` calls into one. Keeping the automatically generated changes apart from the manual ones should help with reviewing. # How to reproduce this PR Check out the branch `erw-to-rw-setup`. Run the command ```bash lake build | grep '^info:' | awk -F ":" '{ print "-i ‘.bak’ -e "$3"s/erw/rw/ "$2; }' | xargs -L 1 sed ``` and `git diff` should show you exactly the same modifications as in this PR. # Technical details In `Mathlib.Tactic.Core` I added the following rule to `erw`: ```lean import Mathlib.Tactic.TryThis /-- if we call `erw`, first try running regular `rw` and warn if that succeds. -/ macro_rules | `(tactic| erw $s $(loc)?) => `(tactic| try_this rw $(.none)? $s $(loc)?) ``` This makes `erw` display a "Try this:" message if `rw` would have succeeded as well. Beware that this does not mean that the file compiles just as well after doing the replacement, since a `rw` could succeed by rewriting a different term, so subsequent tactics fail. This is important for running the script! With that edit in place, it's possible to run the script. This will parse the `lake build` output, looking for the lines produced by the macro rule, and replace `erw` with `rw` on the lines that it indicates. Note that it assumes there is at most one `erw` on one line; that was true at least when I ran the script. ESTIMATED CHANGES Modified Mathlib/Algebra/Category/AlgebraCat/Limits.lean Modified Mathlib/Algebra/Category/Grp/Colimits.lean Modified Mathlib/Algebra/Category/ModuleCat/ChangeOfRings.lean Modified Mathlib/Algebra/Category/ModuleCat/Images.lean Modified Mathlib/Algebra/DirectLimit.lean Modified Mathlib/Algebra/Field/Basic.lean Modified Mathlib/Algebra/GroupWithZero/InjSurj.lean Modified Mathlib/Algebra/Homology/HomotopyCategory/Shift.lean Modified Mathlib/Algebra/Homology/Single.lean Modified Mathlib/Algebra/Lie/DirectSum.lean Modified Mathlib/Algebra/Lie/IdealOperations.lean Modified Mathlib/Algebra/Lie/Nilpotent.lean Modified Mathlib/Algebra/Lie/Subalgebra.lean Modified Mathlib/Algebra/Module/LocalizedModule.lean Modified Mathlib/Algebra/Order/CauSeq/BigOperators.lean Modified Mathlib/Algebra/Order/Kleene.lean Modified Mathlib/Algebra/Polynomial/AlgebraMap.lean Modified Mathlib/Algebra/Polynomial/Derivative.lean Modified Mathlib/Algebra/Polynomial/Module/Basic.lean Modified Mathlib/Algebra/Ring/InjSurj.lean Modified Mathlib/AlgebraicGeometry/Cover/Open.lean Modified Mathlib/AlgebraicGeometry/GammaSpecAdjunction.lean Modified Mathlib/AlgebraicGeometry/Gluing.lean Modified Mathlib/AlgebraicGeometry/Morphisms/QuasiSeparated.lean Modified Mathlib/AlgebraicGeometry/ProjectiveSpectrum/Scheme.lean Modified Mathlib/AlgebraicGeometry/Restrict.lean Modified Mathlib/AlgebraicGeometry/Scheme.lean Modified Mathlib/AlgebraicGeometry/StructureSheaf.lean Modified Mathlib/AlgebraicTopology/CechNerve.lean Modified Mathlib/AlgebraicTopology/DoldKan/Normalized.lean Modified Mathlib/AlgebraicTopology/DoldKan/PInfty.lean Modified Mathlib/AlgebraicTopology/DoldKan/SplitSimplicialObject.lean Modified Mathlib/AlgebraicTopology/SimplexCategory.lean Modified Mathlib/AlgebraicTopology/SimplicialSet.lean Modified Mathlib/AlgebraicTopology/SplitSimplicialObject.lean Modified Mathlib/Analysis/Analytic/ChangeOrigin.lean Modified Mathlib/Analysis/Calculus/LHopital.lean Modified Mathlib/Analysis/Convex/Caratheodory.lean Modified Mathlib/Analysis/Convex/Cone/Extension.lean Modified Mathlib/Analysis/Normed/Affine/MazurUlam.lean Modified Mathlib/Analysis/SpecialFunctions/Pow/Asymptotics.lean Modified Mathlib/CategoryTheory/Abelian/Opposite.lean Modified Mathlib/CategoryTheory/Adhesive.lean Modified Mathlib/CategoryTheory/Comma/Arrow.lean Modified Mathlib/CategoryTheory/ComposableArrows.lean Modified Mathlib/CategoryTheory/DifferentialObject.lean Modified Mathlib/CategoryTheory/Elements.lean Modified Mathlib/CategoryTheory/Idempotents/FunctorCategories.lean Modified Mathlib/CategoryTheory/Idempotents/Karoubi.lean Modified Mathlib/CategoryTheory/Iso.lean Modified Mathlib/CategoryTheory/Limits/Preserves/Limits.lean Modified Mathlib/CategoryTheory/Limits/Presheaf.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Biproducts.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Kernels.lean Modified Mathlib/CategoryTheory/Limits/Types.lean Modified Mathlib/CategoryTheory/Limits/VanKampen.lean Modified Mathlib/CategoryTheory/Localization/CalculusOfFractions.lean Modified Mathlib/CategoryTheory/Localization/SmallHom.lean Modified Mathlib/CategoryTheory/Monad/Kleisli.lean Modified Mathlib/CategoryTheory/Monoidal/OfHasFiniteProducts.lean Modified Mathlib/CategoryTheory/Preadditive/Injective.lean Modified Mathlib/CategoryTheory/Triangulated/Opposite.lean Modified Mathlib/Combinatorics/SimpleGraph/Basic.lean Modified Mathlib/Combinatorics/SimpleGraph/Ends/Defs.lean Modified Mathlib/Combinatorics/SimpleGraph/Finite.lean Modified Mathlib/Condensed/TopComparison.lean Modified Mathlib/Data/Fin/Tuple/Basic.lean Modified Mathlib/Data/List/Perm.lean Modified Mathlib/Data/Multiset/Fintype.lean Modified Mathlib/Data/Nat/Choose/Basic.lean Modified Mathlib/Data/Num/Lemmas.lean Modified Mathlib/Data/Ordmap/Ordset.lean Modified Mathlib/Data/Real/Irrational.lean Modified Mathlib/Data/Set/Function.lean Modified Mathlib/Data/ZMod/Basic.lean Modified Mathlib/FieldTheory/Fixed.lean Modified Mathlib/FieldTheory/IsAlgClosed/Classification.lean Modified Mathlib/Geometry/Manifold/ContMDiff/Basic.lean Modified Mathlib/Geometry/RingedSpace/Basic.lean Modified Mathlib/Geometry/RingedSpace/LocallyRingedSpace/HasColimits.lean Modified Mathlib/Geometry/RingedSpace/OpenImmersion.lean Modified Mathlib/Geometry/RingedSpace/PresheafedSpace/Gluing.lean Modified Mathlib/Geometry/RingedSpace/PresheafedSpace/HasColimits.lean Modified Mathlib/Geometry/RingedSpace/Stalks.lean Modified Mathlib/GroupTheory/FreeAbelianGroup.lean Modified Mathlib/GroupTheory/Perm/Cycle/Concrete.lean Modified Mathlib/LinearAlgebra/AffineSpace/AffineMap.lean Modified Mathlib/LinearAlgebra/AffineSpace/Combination.lean Modified Mathlib/LinearAlgebra/AffineSpace/Independent.lean Modified Mathlib/LinearAlgebra/AffineSpace/Pointwise.lean Modified Mathlib/LinearAlgebra/Alternating/DomCoprod.lean Modified Mathlib/LinearAlgebra/BilinearForm/Properties.lean Modified Mathlib/LinearAlgebra/GeneralLinearGroup.lean Modified Mathlib/LinearAlgebra/Matrix/Adjugate.lean Modified Mathlib/LinearAlgebra/PiTensorProduct.lean Modified Mathlib/LinearAlgebra/Prod.lean Modified Mathlib/LinearAlgebra/Projection.lean Modified Mathlib/LinearAlgebra/QuadraticForm/Complex.lean Modified Mathlib/LinearAlgebra/TensorProduct/Graded/External.lean Modified Mathlib/LinearAlgebra/TensorProduct/Graded/Internal.lean Modified Mathlib/MeasureTheory/Function/LpSpace.lean Modified Mathlib/MeasureTheory/Function/SimpleFunc.lean Modified Mathlib/MeasureTheory/Measure/Lebesgue/VolumeOfBalls.lean Modified Mathlib/ModelTheory/Ultraproducts.lean Modified Mathlib/NumberTheory/LegendreSymbol/GaussEisensteinLemmas.lean Modified Mathlib/NumberTheory/PellMatiyasevic.lean Modified Mathlib/NumberTheory/Zsqrtd/QuadraticReciprocity.lean Modified Mathlib/Order/BooleanAlgebra.lean Modified Mathlib/Order/Heyting/Basic.lean Modified Mathlib/Order/Heyting/Regular.lean Modified Mathlib/Order/WithBot.lean Modified Mathlib/Probability/ProbabilityMassFunction/Constructions.lean Modified Mathlib/RepresentationTheory/Action/Monoidal.lean Modified Mathlib/RepresentationTheory/Character.lean Modified Mathlib/RepresentationTheory/GroupCohomology/Basic.lean Modified Mathlib/RepresentationTheory/GroupCohomology/Resolution.lean Modified Mathlib/RepresentationTheory/Rep.lean Modified Mathlib/RingTheory/DedekindDomain/FiniteAdeleRing.lean Modified Mathlib/RingTheory/EisensteinCriterion.lean Modified Mathlib/RingTheory/GradedAlgebra/HomogeneousIdeal.lean Modified Mathlib/RingTheory/GradedAlgebra/HomogeneousLocalization.lean Modified Mathlib/RingTheory/Henselian.lean Modified Mathlib/RingTheory/Ideal/Operations.lean Modified Mathlib/RingTheory/LaurentSeries.lean Modified Mathlib/RingTheory/Localization/Away/Basic.lean Modified Mathlib/RingTheory/Localization/Basic.lean Modified Mathlib/RingTheory/Localization/Cardinality.lean Modified Mathlib/RingTheory/Localization/Integral.lean Modified Mathlib/RingTheory/Localization/LocalizationLocalization.lean Modified Mathlib/RingTheory/Localization/NumDen.lean Modified Mathlib/RingTheory/Polynomial/Quotient.lean Modified Mathlib/RingTheory/PolynomialAlgebra.lean Modified Mathlib/RingTheory/PowerSeries/Basic.lean Modified Mathlib/RingTheory/PowerSeries/Inverse.lean Modified Mathlib/RingTheory/Presentation.lean Modified Mathlib/RingTheory/Valuation/Integral.lean Modified Mathlib/RingTheory/Valuation/ValuationRing.lean Modified Mathlib/RingTheory/Valuation/ValuationSubring.lean Modified Mathlib/SetTheory/Ordinal/FixedPoint.lean Modified Mathlib/Testing/SlimCheck/Functions.lean Modified Mathlib/Topology/Algebra/Nonarchimedean/Basic.lean Modified Mathlib/Topology/Category/Profinite/CofilteredLimit.lean Modified Mathlib/Topology/Category/TopCat/Limits/Basic.lean Modified Mathlib/Topology/Category/TopCat/Limits/Cofiltered.lean Modified Mathlib/Topology/Category/TopCat/Limits/Products.lean Modified Mathlib/Topology/Category/TopCat/Limits/Pullbacks.lean Modified Mathlib/Topology/Category/UniformSpace.lean Modified Mathlib/Topology/Gluing.lean Modified Mathlib/Topology/Instances/Complex.lean Modified Mathlib/Topology/LocalAtTarget.lean Modified Mathlib/Topology/Order/LawsonTopology.lean Modified Mathlib/Topology/Order/ScottTopology.lean Modified Mathlib/Topology/Separation.lean Modified Mathlib/Topology/Sheaves/SheafCondition/EqualizerProducts.lean Modified Mathlib/Topology/Sheaves/Sheafify.lean Modified Mathlib/Topology/Sheaves/Stalks.lean 2024-10-10 16:52:34+02:00 f2f7449 Revert "chore(NumberTheory/Fermat): rename `fermat` to `Nat.fermatNumber`" This reverts commit a2862c2cb9d46533bf32565583ed9c9f6fd300b6. ESTIMATED CHANGES Modified Mathlib/NumberTheory/Fermat.lean - theorem Nat.coprime_fermatNumberNumber_fermatNumber - def Nat.fermatNumber - theorem Nat.fermatNumber_eq_prod_add_two - theorem Nat.fermatNumber_one - theorem Nat.fermatNumber_product - theorem Nat.fermatNumber_two - theorem Nat.fermatNumber_zero - theorem Nat.odd_fermatNumber - theorem Nat.strictMono_fermatNumber - theorem Nat.two_lt_fermatNumber + theorem coprime_fermat_fermat + def fermat + theorem fermat_eq_prod_add_two + theorem fermat_one + theorem fermat_product + theorem fermat_two + theorem fermat_zero + theorem odd_fermat + theorem strictMono_fermat + theorem two_lt_fermat 2024-10-10 16:51:53+02:00 a2862c2 chore(NumberTheory/Fermat): rename `fermat` to `Nat.fermatNumber` (And also namespace and rename the lemmas about them.) As discussed in the reviewers chatroom. ESTIMATED CHANGES Modified Mathlib/NumberTheory/Fermat.lean + theorem Nat.coprime_fermatNumberNumber_fermatNumber + def Nat.fermatNumber + theorem Nat.fermatNumber_eq_prod_add_two + theorem Nat.fermatNumber_one + theorem Nat.fermatNumber_product + theorem Nat.fermatNumber_two + theorem Nat.fermatNumber_zero + theorem Nat.odd_fermatNumber + theorem Nat.strictMono_fermatNumber + theorem Nat.two_lt_fermatNumber - theorem coprime_fermat_fermat - def fermat - theorem fermat_eq_prod_add_two - theorem fermat_one - theorem fermat_product - theorem fermat_two - theorem fermat_zero - theorem odd_fermat - theorem strictMono_fermat - theorem two_lt_fermat 2024-10-10 13:21:43 2d1c1cc chore: add unification hint for forgetful functor Bundled -> Type (#17583) We have a lot of `erw`s and `rfl`s in files dealing with concrete categories. This seems to be mostly due to the existence of two casts: `ConcreteCategory.hasCoeToSort` and `Bundled.coeSort` which both represent the forgetful functor from concrete categories to Type. The first is only a local instance but is needed to state lemmas on these concrete categories, while the second one is always available but only applies to categories defined as `Bundled`. The casts are defeq but not reducibly so, causing issues when rewriting with generic lemmas in the context of a specific `Bundled` category. For some specific categories we already have a workaround: a unification hint of the form `⊢ (forget CommRingCat).obj R ≟ R` also fires at reducible transparency. This PR does the same for any category of the form `Bundled _`, fixing a lot of the issues. Almost all of the changes in this PR consists of `erw` to `rw` or removing a terminal `rfl`. A limitation of this approach is that the unification hint isn't taken into account when building discrimination trees, so e.g. `simp` still doesn't know how to apply these kinds of lemmas. An alternative might involve unbundling the `CoeSort` from `ConcreteCategory`, but that doesn't actually fix anything! Namely, we have to write `CoeSort.coe` in the generic lemmas, but the coercion is inlined for specific instances. (Here a unification hint might also help, but then we'd be back at this PR essentially.) There used to be some regressions because the subtle unification order gets disrupted: where we expected `CommRingCat` (with many useful instances) now we get `Bundled CommRing`. Since #17612 turns `CommRingCat` into an `abbrev`, that is no longer an issue. ESTIMATED CHANGES Modified Mathlib/Algebra/Category/ModuleCat/Presheaf/Sheafify.lean Modified Mathlib/Algebra/Category/Ring/Basic.lean Modified Mathlib/Algebra/Homology/ConcreteCategory.lean Modified Mathlib/AlgebraicGeometry/Morphisms/OpenImmersion.lean Modified Mathlib/Analysis/Normed/Group/SemiNormedGrp/Completion.lean Modified Mathlib/CategoryTheory/ConcreteCategory/BundledHom.lean Modified Mathlib/Geometry/RingedSpace/LocallyRingedSpace/HasColimits.lean Modified Mathlib/Geometry/RingedSpace/PresheafedSpace/Gluing.lean Modified Mathlib/Topology/Category/TopCat/Limits/Products.lean Modified Mathlib/Topology/Category/TopCat/Limits/Pullbacks.lean Modified Mathlib/Topology/Gluing.lean Modified test/CategoryTheory/Elementwise.lean 2024-10-10 12:21:59 9d0db8d chore(Category/Ring): turn CommRingCat and CommSemiRingCat into `abbrev`s (#17612) This builds on #11595 by also turning the commutative categories into abbreviations. Note that we keep some instances that the analogous changes in #11595 deleted: these turn out to not be strictly necessary, but prevent a few timeouts. This change paves the way for #17583 changing unification hints for bundled categories. Previously, we would use a unification hint to turn `(forget CommRingCat).obj X` into `(X : Type*)`, after #17583 it would apply to `(forget (Bundled CommRing)).obj X` instead. That might assign some metavariables, leading to cases where the type of an object became `Bundled CommRing` instead of the expected `CommRingCat`. Unification hints are not very tweakable, so we can't really avoid this. So as a bit of a workaround, we can instead make the two reducibly defeq. I expect no real performance hit, since we are replacing the discrimination tree key `CommRingCat` with `Bundled CommRing`, where both are not further (semi)reducibly reducible. ESTIMATED CHANGES Modified Mathlib/Algebra/Category/Ring/Basic.lean - def CommRingCat - def CommSemiRingCat 2024-10-10 11:56:24 f13b8bf feat(SetTheory/Ordinal/Nimber): nim addition of natural numbers is XOR (#16878) We also introduce the notation `∗o` for `Ordinal.toNimber o`. Note that for `n : ℕ`, `∗n` is **not** the same as `NatCast`, as e.g. `∗2 ≠ ↑2 = 0`. ESTIMATED CHANGES Modified Mathlib/SetTheory/Ordinal/Nimber.lean + theorem Nimber.add_nat + theorem Nimber.eq_nat_of_le_nat +/- theorem Nimber.succ_def +/- theorem Nimber.toOrdinal_eq_one +/- theorem Nimber.toOrdinal_eq_zero +/- theorem Nimber.toOrdinal_max +/- theorem Nimber.toOrdinal_min +/- theorem Nimber.toOrdinal_toNimber +/- theorem Ordinal.toNimber_eq_one +/- theorem Ordinal.toNimber_eq_zero +/- theorem Ordinal.toNimber_max +/- theorem Ordinal.toNimber_min +/- theorem Ordinal.toNimber_one +/- theorem Ordinal.toNimber_toOrdinal +/- theorem Ordinal.toNimber_zero 2024-10-10 11:25:49 989faa2 feat(Order/InitSeg): notation for initial and principal segments of `<` (#17481) We introduce the notations `α ≤i β` and `α f x` by `f` and `fun x => x` by `id`. ESTIMATED CHANGES Modified Archive/Examples/IfNormalization/Result.lean Modified Archive/Examples/IfNormalization/WithoutAesop.lean Modified Mathlib/Algebra/BigOperators/GroupWithZero/Action.lean Modified Mathlib/Algebra/GroupWithZero/NonZeroDivisors.lean Modified Mathlib/Analysis/Calculus/Deriv/Mul.lean Modified Mathlib/Analysis/Distribution/SchwartzSpace.lean Modified Mathlib/CategoryTheory/Galois/Topology.lean Modified Mathlib/Combinatorics/Optimization/ValuedCSP.lean Modified Mathlib/Data/DFinsupp/WellFounded.lean Modified Mathlib/Data/Holor.lean Modified Mathlib/Data/List/Nodup.lean Modified Mathlib/Data/MLList/Dedup.lean +/- def MLList.dedup Modified Mathlib/Data/Real/Hyperreal.lean Modified Mathlib/Data/Stream/Defs.lean Modified Mathlib/MeasureTheory/Function/AEEqOfIntegral.lean Modified Mathlib/MeasureTheory/Measure/Hausdorff.lean Modified Mathlib/NumberTheory/NumberField/Embeddings.lean Modified Mathlib/Order/Filter/Germ/Basic.lean Modified Mathlib/RingTheory/AdicCompletion/Functoriality.lean Modified Mathlib/SetTheory/ZFC/Basic.lean Modified Mathlib/Topology/DiscreteQuotient.lean 2024-10-09 21:35:19 f001c56 feat(Data/ENNReal/Real): add lemmas about iInf, iSup (#16770) Used in #15373. ESTIMATED CHANGES Modified Mathlib/Data/ENNReal/Inv.lean + theorem ENNReal.iInf_mul_iInf + theorem ENNReal.le_iInf_mul_iInf 2024-10-09 21:35:17 cf84cb9 chore(Archive/IMO): refactoring 2021Q1 (#16579) Please carefully check the *statement* of the theorem has changed! In particular, the file now uses the `IsSquare` predicate, which is mathematically equivalent but not defeq to the original. ESTIMATED CHANGES Modified Archive/Imo/Imo2021Q1.lean +/- theorem Imo2021Q1.exists_finset_3_le_card_with_pairs_summing_to_squares +/- theorem Imo2021Q1.exists_numbers_in_interval +/- theorem Imo2021Q1.exists_triplet_summing_to_squares 2024-10-09 20:38:01 67ab6b3 chore: remove some variables (#17592) ESTIMATED CHANGES Modified Mathlib/Analysis/SpecialFunctions/Gaussian/PoissonSummation.lean Modified Mathlib/Probability/Independence/Conditional.lean Modified Mathlib/Probability/Martingale/BorelCantelli.lean Modified Mathlib/Probability/Martingale/Centering.lean Modified Mathlib/Probability/Martingale/Convergence.lean Modified Mathlib/Probability/Martingale/Upcrossing.lean Modified Mathlib/Probability/Process/HittingTime.lean Modified Mathlib/Probability/Process/Stopping.lean 2024-10-09 20:38:00 a42a49c fix: remove `ToExpr Int` instance (#17590) This is already provided by core, which also produces nicer expressions. [Zulip thread](https://leanprover.zulipchat.com/#narrow/stream/270676-lean4/topic/Lean.2EToExpr.20Int/near/474914783) ESTIMATED CHANGES Modified Mathlib/Tactic/ToExpr.lean Modified test/eval_elab.lean 2024-10-09 20:37:59 0e36de2 chore: fix spelling mistakes (#17364) ESTIMATED CHANGES Modified Cache/Hashing.lean Modified Mathlib/Analysis/Calculus/ContDiff/FTaylorSeries.lean Modified Mathlib/Analysis/Calculus/Deriv/Abs.lean Modified Mathlib/Analysis/Normed/Ring/IsPowMulFaithful.lean Modified Mathlib/CategoryTheory/Comma/Over.lean Modified Mathlib/CategoryTheory/Galois/IsFundamentalgroup.lean Modified Mathlib/MeasureTheory/Measure/SeparableMeasure.lean Modified Mathlib/NumberTheory/JacobiSum/Basic.lean Modified Mathlib/RingTheory/Valuation/ValExtension.lean Modified Mathlib/Tactic/Module.lean Modified scripts/autolabel.lean Modified scripts/create-adaptation-pr.sh 2024-10-09 19:42:59 78d0077 feat(Algebra/BigOperators/Group): add `sum_tsub_distrib` (#17130) Upstreamed from https://github.com/b-mehta/ExponentialRamsey/blob/7e17b629a915a082869f494c8afa56a3e1c7a88d/ExponentialRamsey/Prereq/Mathlib/Algebra/BigOperators/Ring.lean#L17 ESTIMATED CHANGES Modified Mathlib/Algebra/BigOperators/Group/Finset.lean + theorem Finset.sum_tsub_distrib Modified Mathlib/Algebra/BigOperators/Group/Multiset.lean + theorem Multiset.sum_map_tsub 2024-10-09 19:21:15 c94e248 feat: `setLintegral` for indicator function and `le_meas` (#15322) from GibbsMeasure ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Integral/Lebesgue.lean + theorem MeasureTheory.setLIntegral_indicator + theorem MeasureTheory.setLIntegral_indicator₀ + theorem MeasureTheory.setLIntegral_le_meas 2024-10-09 17:50:35 17659b7 chore(Data/Set/Image): `[s : Setoid α]` => `{s : Setoid α}` (#17588) ESTIMATED CHANGES Modified Mathlib/Data/Set/Image.lean +/- theorem Set.range_quotient_mk 2024-10-09 17:50:34 ae74421 chore(Order/RelIso/Basic): `[s : Setoid α]` => `{s : Setoid α}` (#16267) ESTIMATED CHANGES Modified Mathlib/Order/Antisymmetrization.lean Modified Mathlib/Order/RelIso/Basic.lean +/- def Quotient.mkRelHom +/- theorem acc_lift₂_iff +/- theorem wellFounded_lift₂_iff 2024-10-09 16:54:35 4034bcf chore: remove some `Setoid.r` (#16258) ESTIMATED CHANGES Modified Counterexamples/CliffordAlgebraNotInjective.lean Modified Mathlib/Algebra/Lie/Quotient.lean Modified Mathlib/Computability/Reduce.lean Modified Mathlib/Data/List/Rotate.lean Modified Mathlib/Data/Quot.lean +/- theorem Quotient.mk_out' +/- theorem Quotient.sound' Modified Mathlib/Data/Setoid/Partition.lean Modified Mathlib/GroupTheory/Coset/Basic.lean +/- theorem QuotientGroup.leftRel_apply +/- theorem QuotientGroup.leftRel_eq +/- theorem QuotientGroup.rightRel_apply +/- theorem QuotientGroup.rightRel_eq Modified Mathlib/GroupTheory/Index.lean Modified Mathlib/GroupTheory/QuotientGroup/Basic.lean Modified Mathlib/LinearAlgebra/InvariantBasisNumber.lean Modified Mathlib/LinearAlgebra/Quotient.lean + theorem Submodule.quotientRel_def - theorem Submodule.quotientRel_r_def Modified Mathlib/Logic/Equiv/Basic.lean Modified Mathlib/Logic/Equiv/Defs.lean Modified Mathlib/NumberTheory/RamificationInertia.lean Modified Mathlib/RingTheory/AdicCompletion/Algebra.lean Modified Mathlib/RingTheory/Ideal/Quotient.lean Modified Mathlib/Topology/Algebra/UniformRing.lean Modified Mathlib/Topology/Constructions.lean 2024-10-09 15:32:15 7817d20 chore(CategoryTheory/Limits/Shapes/BinaryProducts): More universe flexibility for `pairComp` (#17586) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Limits/Shapes/BinaryProducts.lean 2024-10-09 15:32:14 810124d feat(CategoryTheory/ChosenFiniteProducts): Add `Mono` instances for lifts of mono for `ChosenFiniteProducts` (#17581) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/ChosenFiniteProducts.lean 2024-10-09 15:32:13 5bcf766 chore(NumberTheory/FunctionField): replace Type by Type* (#17577) ESTIMATED CHANGES Modified Mathlib/NumberTheory/ClassNumber/FunctionField.lean Modified Mathlib/NumberTheory/FunctionField.lean 2024-10-09 15:32:11 de6337f chore: redefine `DivInvMonoid.zpow_succ'` field (#17573) This field of the class refers to `Int.ofNat`, but this is not (reducibly) defeq to the coercion, and not `simp`-normal. By using the coercion instead, we get access to all the lemmas on the coercion. This means we should be able to get rid of a few `erw`s and `simp`s. We do the same for `SubNegMonoid.zsmul_succ'`. An argument against this change is that the original version mirrors the definition of `Int` as an inductive type somewhat better. However, note that we already have a plain `0` in `zpow_zero'` instead of `Int.ofNat 0`. ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Defs.lean Modified Mathlib/Algebra/Group/InjSurj.lean Modified Mathlib/Algebra/Group/Int.lean Modified Mathlib/Algebra/Group/Opposite.lean Modified Mathlib/Algebra/Group/Submonoid/Membership.lean Modified Mathlib/CategoryTheory/Preadditive/EilenbergMoore.lean Modified Mathlib/CategoryTheory/Preadditive/EndoFunctor.lean Modified Mathlib/Data/Complex/Basic.lean Modified Mathlib/FieldTheory/RatFunc/Basic.lean Modified Mathlib/Topology/Algebra/GroupCompletion.lean 2024-10-09 15:32:10 3b8f023 refactor: deprecate `ContinuousMonoidHomClass` (#17558) Use `[ContinuousMapClass ..] [MonoidHomClass ..]` instead. Also deprecate `mk'` since it's defeq `mk`. ESTIMATED CHANGES Modified Mathlib/Topology/Algebra/ContinuousMonoidHom.lean + structure ContinuousAddMonoidHomClass - def ContinuousMonoidHom.mk' - def ContinuousMonoidHom.toContinuousMap +/- structure ContinuousMonoidHom + structure ContinuousMonoidHomClass Modified Mathlib/Topology/Algebra/PontryaginDual.lean 2024-10-09 15:32:09 b13c461 feat(AlgebraicTopology/SimplicialSet): SimplicialSet (co)skeleton properties (#16781) Some assorted properties of the simplex category and simplicial sets. Co-Authored-By: Emily Riehl Co-Authored-By: Pietro Monticone <38562595+pitmonticone@users.noreply.github.com> Co-Authored-By: Joël Riou <37772949+joelriou@users.noreply.github.com> ESTIMATED CHANGES Modified Mathlib/AlgebraicTopology/SimplexCategory.lean + theorem SimplexCategory.Truncated.Hom.ext + theorem SimplexCategory.const_fac_thru_zero + theorem SimplexCategory.eq_const_of_zero + theorem SimplexCategory.eq_const_to_zero + theorem SimplexCategory.eq_of_one_to_one + theorem SimplexCategory.eq_of_one_to_two + theorem SimplexCategory.exists_eq_const_of_zero + def SimplexCategory.mkOfLe + def SimplexCategory.mkOfLeComp + def SimplexCategory.mkOfSucc Modified Mathlib/AlgebraicTopology/SimplicialObject.lean - def CategoryTheory.CosimplicialObject.sk + def CategoryTheory.CosimplicialObject.truncation - def CategoryTheory.SimplicialObject.sk + def CategoryTheory.SimplicialObject.truncation Modified Mathlib/AlgebraicTopology/SimplicialSet.lean + def SSet.Truncated.uliftFunctor - def SSet.sk Modified Mathlib/Data/Fin/Basic.lean +/- theorem Fin.castSucc_le_castSucc_iff + theorem Fin.castSucc_le_succ +/- theorem Fin.castSucc_lt_succ_iff +/- theorem Fin.succ_le_castSucc_iff Modified Mathlib/Order/Category/NonemptyFinLinOrd.lean + def Fin.hom_succ 2024-10-09 14:28:57 7299b3f chore(Data/Quot): `[s : Setoid α]` => `{s : Setoid α}` (#16256) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Skeletal.lean +/- def CategoryTheory.Skeleton Modified Mathlib/Data/Quot.lean +/- theorem Quotient.choice_eq +/- theorem Quotient.eq +/- theorem Quotient.eq_mk_iff_out +/- theorem Quotient.induction_on_pi +/- theorem Quotient.liftOn_mk +/- theorem Quotient.liftOn₂_mk +/- theorem Quotient.lift_comp_mk +/- theorem Quotient.lift_mk +/- theorem Quotient.lift₂_mk +/- theorem Quotient.map'_mk +/- theorem Quotient.mk_eq_iff_out +/- theorem Quotient.mk_out +/- theorem Quotient.out_eq Modified Mathlib/Data/Setoid/Basic.lean +/- theorem Setoid.ker_apply_mk_out 2024-10-09 13:34:46 b9cabbf chore: yet again, some removed variables (#17579) ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Center.lean Modified Mathlib/Algebra/Group/Fin/Basic.lean Modified Mathlib/Algebra/Group/Subgroup/Order.lean Modified Mathlib/Algebra/GroupWithZero/Indicator.lean Modified Mathlib/Algebra/Order/Group/DenselyOrdered.lean Modified Mathlib/CategoryTheory/Bicategory/Functor/Prelax.lean Modified Mathlib/CategoryTheory/Category/Bipointed.lean Modified Mathlib/CategoryTheory/Category/PartialFun.lean Modified Mathlib/CategoryTheory/Category/Pointed.lean Modified Mathlib/Combinatorics/SetFamily/Compression/Down.lean Modified Mathlib/Data/Fintype/Sigma.lean Modified Mathlib/Data/Nat/Choose/Sum.lean Modified Mathlib/Data/Set/Accumulate.lean Modified Mathlib/Data/Set/Pointwise/ListOfFn.lean Modified Mathlib/Deprecated/Ring.lean Modified Mathlib/Logic/Equiv/PartialEquiv.lean Modified Mathlib/Order/Chain.lean Modified Mathlib/Order/Closure.lean Modified Mathlib/Order/CompactlyGenerated/Basic.lean Modified Mathlib/Order/Concept.lean Modified Mathlib/Order/Filter/NAry.lean Modified Mathlib/Order/Interval/Basic.lean Modified Mathlib/Order/Irreducible.lean Modified Mathlib/Order/Monotone/Extension.lean Modified Mathlib/Order/OrdContinuous.lean Modified Mathlib/Order/RelIso/Set.lean 2024-10-09 13:34:45 98905d2 feat: `InnerProductSpace (SeparationQuotient E)` (#17576) ESTIMATED CHANGES Modified Mathlib/Analysis/InnerProductSpace/Basic.lean + theorem Inseparable.inner_eq_inner + theorem SeparationQuotient.inner_mk_mk 2024-10-09 12:34:03 9b43951 feat: a convex set is closed under betweenness (#17575) From LeanCamCombi ESTIMATED CHANGES Modified Mathlib/Analysis/Convex/Between.lean + theorem AffineSubspace.mem_of_wbtw + theorem AffineSubspace.right_mem_of_wbtw + theorem Convex.mem_of_wbtw 2024-10-09 12:34:01 d0f848a chore: another batch of variable removals (#17574) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Iso.lean Modified Mathlib/CategoryTheory/NatTrans.lean Modified Mathlib/Data/List/Enum.lean Modified Mathlib/Data/List/Infix.lean Modified Mathlib/Data/List/InsertNth.lean Modified Mathlib/Data/List/Pairwise.lean Modified Mathlib/Data/Seq/Seq.lean Modified Mathlib/RingTheory/Binomial.lean Modified Mathlib/RingTheory/Derivation/MapCoeffs.lean Modified Mathlib/RingTheory/Etale/Basic.lean Modified Mathlib/RingTheory/Idempotents.lean Modified Mathlib/RingTheory/Jacobson.lean Modified Mathlib/RingTheory/Kaehler/CotangentComplex.lean Modified Mathlib/RingTheory/Kaehler/Polynomial.lean Modified Mathlib/RingTheory/MvPolynomial/Symmetric/FundamentalTheorem.lean Modified Mathlib/RingTheory/Smooth/Basic.lean Modified Mathlib/RingTheory/WittVector/Basic.lean Modified Mathlib/RingTheory/WittVector/Frobenius.lean Modified Mathlib/RingTheory/WittVector/IsPoly.lean Modified Mathlib/SetTheory/Game/Birthday.lean Modified Mathlib/SetTheory/Ordinal/Nimber.lean Modified Mathlib/Tactic/CategoryTheory/BicategoryCoherence.lean Modified Mathlib/Topology/Algebra/ConstMulAction.lean Modified Mathlib/Topology/Compactification/OnePoint.lean Modified Mathlib/Topology/ContinuousMap/Defs.lean Modified Mathlib/Topology/LocalAtTarget.lean Modified Mathlib/Topology/Order/LawsonTopology.lean Modified Mathlib/Topology/Order/ScottTopology.lean Modified Mathlib/Topology/Sets/Order.lean Modified Mathlib/Topology/Support.lean 2024-10-09 12:34:00 f377dca chore: add coercion for `Setoid` (#16254) Also pretty print `@Setoid.r _ s a b` as `s a b`. ESTIMATED CHANGES Modified Mathlib/Data/Quot.lean +/- theorem Setoid.ext Modified test/interactiveUnfold.lean 2024-10-09 11:43:45 dacf74d feat(Data/Setoid/Basic): `prod` and `piSetoid` lemmas and equivs (#15947) Add lemmas about applying `Setoid.r` for `Setoid.prod` and `piSetoid`, and equivalences between a (pairwise or indexed) product of quotients and the corresponding quotient of the product by `Setoid.prod` or `piSetoid`. From AperiodicMonotilesLean. ESTIMATED CHANGES Modified Mathlib/Data/Setoid/Basic.lean + theorem Setoid.piSetoid_apply + def Setoid.prodQuotientEquiv + theorem Setoid.prod_apply 2024-10-09 10:44:51 61ed796 chore: get rid of `erw`s in Mathlib.Algebra.Group.InjSurj (#17569) Almost all of the `erw`s work just fine as `rw`s. Only two places need additional rewriting: this is because the `pow_succ'` field of `DivInvMonoid`s mentions `Int.ofNat`, which is not reducibly defeq to the actual cast we use in our lemmas. This suggests we should redefine `pow_succ'` to use the actual cast instead: #17573. ESTIMATED CHANGES Modified Mathlib/Algebra/Group/InjSurj.lean 2024-10-09 09:42:24 e59a2b2 chore: deal with `erw` in `Mathlib.Data.PNat.Interval` (#17568) This file had a lot of `erw`s with porting notes, but the cause was on the code side: we were trying to rewrite with the wrong lemma. In mathlib3 `rw` used `pnat.map_subtype_embedding_Icc` (et al.) and the port replaced that with `Fintype.map_subtype_embedding_Icc`. The two are defeq but not reducibly so. Going back to the `PNat` lemma allows us to delete these `erw`s *and* the porting notes! ESTIMATED CHANGES Modified Mathlib/Data/PNat/Interval.lean 2024-10-09 09:42:23 9902eed chore: remove more unused variables (#17551) ESTIMATED CHANGES Modified Mathlib/Algebra/Field/Defs.lean Modified Mathlib/Algebra/Group/Action/Defs.lean Modified Mathlib/Algebra/Group/Action/Opposite.lean Modified Mathlib/Algebra/Group/Action/Sum.lean Modified Mathlib/Algebra/Group/Defs.lean Modified Mathlib/Algebra/Group/Equiv/Basic.lean Modified Mathlib/Algebra/Group/Even.lean Modified Mathlib/Algebra/Group/Hom/Basic.lean Modified Mathlib/Algebra/Group/Hom/End.lean Modified Mathlib/Algebra/Group/Prod.lean Modified Mathlib/Algebra/Group/Units.lean Modified Mathlib/Algebra/Group/Units/Equiv.lean Modified Mathlib/Algebra/Group/Units/Hom.lean Modified Mathlib/Algebra/Group/WithOne/Defs.lean Modified Mathlib/Algebra/GroupWithZero/Action/Defs.lean Modified Mathlib/Algebra/GroupWithZero/Action/Opposite.lean Modified Mathlib/Algebra/GroupWithZero/Action/Prod.lean Modified Mathlib/Algebra/GroupWithZero/Basic.lean Modified Mathlib/Algebra/GroupWithZero/Defs.lean Modified Mathlib/Algebra/GroupWithZero/InjSurj.lean Modified Mathlib/Algebra/GroupWithZero/Pi.lean Modified Mathlib/Algebra/GroupWithZero/Units/Basic.lean Modified Mathlib/Algebra/GroupWithZero/Units/Lemmas.lean Modified Mathlib/Algebra/Module/LinearMap/Basic.lean +/- theorem DomMulAct.coe_smul_linearMap +/- theorem DomMulAct.mk_smul_linearMap_apply +/- theorem DomMulAct.smul_linearMap_apply Modified Mathlib/Algebra/Order/Group/Unbundled/Basic.lean Modified Mathlib/Algebra/Order/GroupWithZero/Unbundled.lean Modified Mathlib/Algebra/Order/Monoid/Defs.lean Modified Mathlib/Algebra/Order/Monoid/Unbundled/Defs.lean Modified Mathlib/Algebra/Order/Monoid/Unbundled/Pow.lean Modified Mathlib/Algebra/Order/Monoid/Unbundled/WithTop.lean Modified Mathlib/Algebra/Ring/Commute.lean Modified Mathlib/Algebra/Ring/Defs.lean Modified Mathlib/Control/Monad/Cont.lean Modified Mathlib/Control/Monad/Writer.lean Modified Mathlib/Control/Traversable/Basic.lean Modified Mathlib/Control/Traversable/Lemmas.lean Modified Mathlib/Data/Countable/Basic.lean Modified Mathlib/Data/Matrix/DMatrix.lean Modified Mathlib/Data/Nat/Cast/Commute.lean Modified Mathlib/Data/Nat/Cast/Synonym.lean Modified Mathlib/Data/Nat/Defs.lean Modified Mathlib/Data/Nat/Find.lean Modified Mathlib/Data/Prod/Lex.lean Modified Mathlib/Data/Sigma/Lex.lean Modified Mathlib/Deprecated/Group.lean Modified Mathlib/Init/Algebra/Classes.lean Modified Mathlib/LinearAlgebra/LinearIndependent.lean Modified Mathlib/Logic/Basic.lean Modified Mathlib/Logic/Equiv/Basic.lean Modified Mathlib/Logic/Function/Basic.lean Modified Mathlib/Logic/Pairwise.lean Modified Mathlib/Logic/Relation.lean Modified Mathlib/Order/BoundedOrder.lean Modified Mathlib/Order/Heyting/Basic.lean Modified Mathlib/Order/Hom/Basic.lean Modified Mathlib/Order/Max.lean Modified Mathlib/Order/Monotone/Basic.lean Modified Mathlib/Order/Monotone/Monovary.lean Modified Mathlib/Order/Synonym.lean Modified Mathlib/Order/WithBot.lean Modified Mathlib/Topology/LocallyFinite.lean 2024-10-09 09:42:22 2308156 feat(Order/SuccPred): `BddAbove.exists_isGreatest_of_nonempty` (#15944) when `IsSuccArchimedean` ESTIMATED CHANGES Modified Mathlib/Order/SuccPred/Archimedean.lean + theorem BddAbove.exists_isGreatest_of_nonempty + theorem BddBelow.exists_isLeast_of_nonempty 2024-10-09 08:43:10 e2b29fb chore: adaptations for lean4#5542 (#17564) In [lean4#5542](https://github.com/leanprover/lean4/pull/5542) we are deprecating `inductive ... :=`, `structure ... :=`, and `class ... :=` for their `... where` counterparts. ESTIMATED CHANGES Modified Mathlib/Algebra/Category/BialgebraCat/Basic.lean +/- structure BialgebraCat.Hom Modified Mathlib/Algebra/Category/CoalgebraCat/Basic.lean +/- structure CoalgebraCat.Hom Modified Mathlib/Algebra/Category/HopfAlgebraCat/Basic.lean +/- structure HopfAlgebraCat.Hom Modified Mathlib/Algebra/Homology/ShortComplex/SnakeLemma.lean +/- structure CategoryTheory.ShortComplex.SnakeInput.Hom Modified Mathlib/Algebra/Lie/Killing.lean Modified Mathlib/Algebra/Lie/Weights/Basic.lean Modified Mathlib/Algebra/Lie/Weights/Linear.lean Modified Mathlib/Algebra/Quandle.lean Modified Mathlib/Analysis/Distribution/SchwartzSpace.lean Modified Mathlib/Analysis/NormedSpace/OperatorNorm/Mul.lean Modified Mathlib/Analysis/RCLike/Basic.lean Modified Mathlib/Analysis/SpecificLimits/Normed.lean Modified Mathlib/CategoryTheory/GradedObject/Trifunctor.lean +/- structure CategoryTheory.GradedObject.BifunctorComp₁₂IndexData +/- structure CategoryTheory.GradedObject.BifunctorComp₂₃IndexData Modified Mathlib/CategoryTheory/Localization/LocalizerMorphism.lean Modified Mathlib/CategoryTheory/MorphismProperty/Composition.lean Modified Mathlib/CategoryTheory/MorphismProperty/Limits.lean Modified Mathlib/CategoryTheory/Shift/CommShift.lean Modified Mathlib/CategoryTheory/Shift/Localization.lean Modified Mathlib/CategoryTheory/Shift/Quotient.lean Modified Mathlib/Combinatorics/Colex.lean +/- structure Finset.Colex Modified Mathlib/Combinatorics/SimpleGraph/Hamiltonian.lean +/- structure SimpleGraph.Walk.IsHamiltonianCycle Modified Mathlib/Data/FunLike/Basic.lean +/- structure CoolerHom Modified Mathlib/Data/FunLike/Embedding.lean +/- structure CoolerEmbedding Modified Mathlib/Data/FunLike/Equiv.lean +/- structure CoolerIso Modified Mathlib/Data/Opposite.lean +/- structure Opposite Modified Mathlib/Data/SetLike/Basic.lean Modified Mathlib/GroupTheory/HNNExtension.lean +/- structure HNNExtension.NormalWord.ReducedWord +/- structure HNNExtension.NormalWord.TransversalPair Modified Mathlib/LinearAlgebra/PerfectPairing.lean +/- structure PerfectPairing Modified Mathlib/LinearAlgebra/QuadraticForm/QuadraticModuleCat.lean +/- structure QuadraticModuleCat.Hom Modified Mathlib/LinearAlgebra/RootSystem/Defs.lean +/- structure RootPairing +/- structure RootSystem Modified Mathlib/LinearAlgebra/RootSystem/OfBilinear.lean +/- structure LinearMap.IsReflective Modified Mathlib/MeasureTheory/MeasurableSpace/CountablyGenerated.lean Modified Mathlib/MeasureTheory/Measure/SeparableMeasure.lean +/- structure MeasureTheory.Measure.MeasureDense Modified Mathlib/Order/Defs.lean Modified Mathlib/Order/SuccPred/Basic.lean Modified Mathlib/Probability/Kernel/Disintegration/CDFToKernel.lean +/- structure ProbabilityTheory.IsRatCondKernelCDF Modified Mathlib/RingTheory/DedekindDomain/Basic.lean Modified Mathlib/Tactic/Ring/Basic.lean +/- structure Mathlib.Tactic.Ring.Cache Modified Mathlib/Topology/Perfect.lean Modified Mathlib/Util/AtomM.lean +/- structure Mathlib.Tactic.AtomM.Context +/- structure Mathlib.Tactic.AtomM.State Modified test/MfldSetTac.lean +/- structure ModelWithCorners Modified test/NthRewrite.lean +/- structure Cat +/- structure F Modified test/Simps.lean +/- structure AddHom +/- structure AlgHom +/- structure DecoratedEquiv +/- structure Equiv' +/- structure FaultyManualCoercion.Equiv +/- structure FaultyUniverses.Equiv +/- structure FurtherDecoratedEquiv +/- structure ManualCoercion.Equiv +/- structure ManualInitialize.Equiv +/- structure ManualProjectionNames.Equiv +/- structure ManualUniverses.Equiv +/- structure MyFunctor +/- structure MyType +/- structure NeedsPropClass +/- structure NestedNonFullyApplied.Equiv +/- structure PartiallyAppliedStr +/- structure PrefixProjectionNames.Equiv +/- structure SetPlus +/- structure VeryPartiallyAppliedStr +/- structure ZeroHom +/- structure coercing.BSemigroup +/- structure coercing.Equiv2 +/- structure coercing.FooStr +/- structure coercing.VooStr Modified test/toAdditive.lean 2024-10-09 07:18:06 77a0e20 feat: in a WellFoundedLT CompleteLattice, Independent sets are finite (#17525) The same conclusion was previously known under a ` WellFounded (· > ·)` assumption, which we replace with WellFoundedGT. We also change WellFounded in existing lemma names to WellFoundedGT to avoid confusion with the new WellFoundedLT lemmas we introduce. A consequence is that a direct sum of infinitely many nontrivial modules can't be Artinian. (Previous results imply it can't be Noetherian.) The lemma `Disjoint.right_lt_sup_of_left_ne_bot` is used and added. The definition of `NoetherianSpace` is changed to use `WellFoundedGT` (defeq to before), and the statement of `noetherianSpace_TFAE` is changed to use `WellFoundedLT`. ESTIMATED CHANGES Modified Mathlib/Algebra/DirectSum/LinearMap.lean +/- theorem LinearMap.trace_eq_zero_of_mapsTo_ne Modified Mathlib/Algebra/Lie/Solvable.lean Modified Mathlib/Algebra/Lie/Weights/Basic.lean Modified Mathlib/AlgebraicGeometry/PrimeSpectrum/Noetherian.lean Modified Mathlib/Order/CompactlyGenerated/Basic.lean - theorem CompleteLattice.IsSupClosedCompact.wellFounded + theorem CompleteLattice.IsSupClosedCompact.wellFoundedGT - theorem CompleteLattice.WellFounded.finite_ne_bot_of_independent - theorem CompleteLattice.WellFounded.finite_of_independent - theorem CompleteLattice.WellFounded.finite_of_setIndependent - theorem CompleteLattice.WellFounded.isSupFiniteCompact + theorem CompleteLattice.WellFoundedGT.finite_ne_bot_of_independent + theorem CompleteLattice.WellFoundedGT.finite_of_independent + theorem CompleteLattice.WellFoundedGT.finite_of_setIndependent + theorem CompleteLattice.WellFoundedGT.isSupFiniteCompact + theorem CompleteLattice.WellFoundedLT.finite_ne_bot_of_independent + theorem CompleteLattice.WellFoundedLT.finite_of_independent + theorem CompleteLattice.WellFoundedLT.finite_of_setIndependent - theorem CompleteLattice.isCompactlyGenerated_of_wellFounded + theorem CompleteLattice.isCompactlyGenerated_of_wellFoundedGT - theorem CompleteLattice.isSupClosedCompact_iff_wellFounded + theorem CompleteLattice.isSupClosedCompact_iff_wellFoundedGT + theorem CompleteLattice.wellFoundedGT_characterisations + theorem CompleteLattice.wellFoundedGT_iff_isSupFiniteCompact - theorem CompleteLattice.wellFounded_characterisations - theorem CompleteLattice.wellFounded_iff_isSupFiniteCompact Modified Mathlib/Order/Disjoint.lean + theorem Disjoint.right_lt_sup_of_left_ne_bot Modified Mathlib/RingTheory/Noetherian.lean Modified Mathlib/Topology/NoetherianSpace.lean 2024-10-09 07:18:05 957d5dd feat: define finite length modules and show equivalence with `IsNoetherian ∧ IsArtinian` (#17478) and equivalence with the existence of a CompositionSeries. Add order-theoretic results: a simple order is finite; WellFoundedLT implies every non-top element is covered by some other element, and the dual result; WellFoundedLT + WellFoundedGT implies there exists a finite sequence from ⊥ to ⊤ with each element covering the previous one. Also generalize two proof_wanted statements about semisimple modules/rings. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Order/Atoms/Finite.lean Modified Mathlib/Order/Cover.lean + theorem exists_covBy_of_wellFoundedGT + theorem exists_covBy_of_wellFoundedLT Modified Mathlib/Order/OrderIsoNat.lean + theorem exists_covBy_seq_of_wellFoundedLT_wellFoundedGT Modified Mathlib/RingTheory/Artinian.lean Added Mathlib/RingTheory/FiniteLength.lean + inductive IsFiniteLength + theorem LinearEquiv.isFiniteLength + theorem exists_compositionSeries_of_isNoetherian_isArtinian + theorem isFiniteLength_iff_exists_compositionSeries + theorem isFiniteLength_iff_isNoetherian_isArtinian + theorem isFiniteLength_of_exists_compositionSeries Modified Mathlib/RingTheory/SimpleModule.lean 2024-10-09 07:08:27 8e7a300 chore: remove more variable at the end of the imports (#17566) ESTIMATED CHANGES Modified Mathlib/Tactic/FunProp/ContDiff.lean Modified Mathlib/Testing/SlimCheck/Testable.lean Modified Mathlib/Topology/AlexandrovDiscrete.lean Modified Mathlib/Topology/Algebra/Module/Alternating/Basic.lean Modified Mathlib/Topology/Algebra/PontryaginDual.lean Modified Mathlib/Topology/Algebra/ProperAction.lean Modified Mathlib/Topology/ContinuousMap/LocallyConstant.lean Modified Mathlib/Topology/Germ.lean Modified Mathlib/Topology/Instances/RatLemmas.lean Modified Mathlib/Topology/MetricSpace/Kuratowski.lean Modified Mathlib/Topology/UniformSpace/Ascoli.lean 2024-10-09 05:56:04 fef6814 feat: `Fintype` instance for an extended family of linearly independent vectors (#17541) Given a family of linearly independent vectors $s \subset t$, one can get a linearly independent family which spans the submodule spanned by $t$ containing $s$. We add a `Fintype` instance for this family in the case where the span of $t$ is finite so as to be able to write sums over this type when manipulating bases indexed by it (typically `Basis.extend` and similar). ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/Dimension/StrongRankCondition.lean Modified Mathlib/LinearAlgebra/LinearIndependent.lean + theorem LinearIndependent.span_extend_eq_span 2024-10-09 05:25:02 c8f3b0b chore: another test for `linear_combination` (#17547) Prior to https://github.com/leanprover/lean4/pull/5167, this test (would have) had a less helpful error message. ESTIMATED CHANGES Modified test/linear_combination.lean 2024-10-09 05:25:01 27e1331 refactor(SetTheory/Ordinal/Enum): better definition for `Ordinal.enumOrd` (#16962) The old definition was a hassle to work with, to the extent we first had to prove its equivalence to the current definition. This can be sidestepped thanks to the termination checker. This also has the benefit of avoiding `Ordinal.blsub`, which I'm planning to deprecate in the near future. There's some lemmas that have to be outright removed rather than deprecated (since it'd be difficult to reprove them), but hopefully all of them have a clear case for being internal workings that should have been `private` to begin with. Other improvements: - We move all of this to its own file, since it's not really needed within `Ordinal/Arithmetic`. - We also replace `Set.Unbounded (· < ·)` with the more canonical `¬ BddAbove` throughout. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/SetTheory/Cardinal/Ordinal.lean - theorem Cardinal.ord_aleph'_eq_enum_card - theorem Cardinal.ord_aleph_eq_enum_card Modified Mathlib/SetTheory/Ordinal/Arithmetic.lean - theorem Ordinal.blsub_le_enumOrd - def Ordinal.enumOrd - def Ordinal.enumOrdOrderIso - theorem Ordinal.enumOrd_def' - theorem Ordinal.enumOrd_def'_nonempty - theorem Ordinal.enumOrd_def - theorem Ordinal.enumOrd_def_nonempty - theorem Ordinal.enumOrd_le_of_subset - theorem Ordinal.enumOrd_mem - theorem Ordinal.enumOrd_range - theorem Ordinal.enumOrd_strictMono - theorem Ordinal.enumOrd_succ_le - theorem Ordinal.enumOrd_surjective - theorem Ordinal.enumOrd_univ - theorem Ordinal.enumOrd_zero - theorem Ordinal.eq_enumOrd - theorem Ordinal.range_enumOrd Modified Mathlib/SetTheory/Ordinal/Basic.lean + theorem Cardinal.card_surjective Added Mathlib/SetTheory/Ordinal/Enum.lean + theorem Ordinal.enumOrd_def + theorem Ordinal.enumOrd_le_of_forall_lt + theorem Ordinal.enumOrd_le_of_subset + theorem Ordinal.enumOrd_mem + theorem Ordinal.enumOrd_range + theorem Ordinal.enumOrd_strictMono + theorem Ordinal.enumOrd_succ_le + theorem Ordinal.enumOrd_surjective + theorem Ordinal.enumOrd_univ + theorem Ordinal.enumOrd_zero + theorem Ordinal.eq_enumOrd + theorem Ordinal.range_enumOrd Modified Mathlib/SetTheory/Ordinal/FixedPoint.lean + theorem Ordinal.not_bddAbove_fp + theorem Ordinal.not_bddAbove_fp_bfamily + theorem Ordinal.not_bddAbove_fp_family Modified Mathlib/SetTheory/Ordinal/Topology.lean +/- theorem Ordinal.enumOrd_isNormal_iff_isClosed 2024-10-09 04:43:47 4191d40 chore(Filter): move defs to a new file (#17552) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Order/Filter/AtTopBot.lean Modified Mathlib/Order/Filter/Bases.lean - theorem Filter.compl_diagonal_mem_prod Modified Mathlib/Order/Filter/Basic.lean - def Filter.EventuallyEq - def Filter.EventuallyLE - def Filter.Tendsto - def Filter.bind - def Filter.comap - def Filter.comk - theorem Filter.filter_eq - theorem Filter.inter_mem - def Filter.join - theorem Filter.le_def - def Filter.map - theorem Filter.mem_bot - theorem Filter.mem_comk - theorem Filter.mem_copy - theorem Filter.mem_join - theorem Filter.mem_of_superset - theorem Filter.mem_principal - theorem Filter.mem_top - theorem Filter.mem_top_iff_forall - theorem Filter.mp_mem - theorem Filter.neBot_iff - def Filter.principal - def Filter.seq - theorem Filter.univ_mem' - theorem Filter.univ_mem - structure Filter Modified Mathlib/Order/Filter/Cofinite.lean Modified Mathlib/Order/Filter/Curry.lean - def Filter.curry Added Mathlib/Order/Filter/Defs.lean + def Filter.EventuallyEq + def Filter.EventuallyLE + def Filter.Tendsto + def Filter.bind + def Filter.comap + def Filter.comk + def Filter.curry + theorem Filter.filter_eq + theorem Filter.inter_mem + def Filter.join + def Filter.ker + theorem Filter.le_def + def Filter.map + theorem Filter.mem_bot + theorem Filter.mem_comk + theorem Filter.mem_copy + theorem Filter.mem_join + theorem Filter.mem_of_superset + theorem Filter.mem_principal + theorem Filter.mem_top + theorem Filter.mem_top_iff_forall + theorem Filter.mp_mem + theorem Filter.neBot_iff + def Filter.principal + theorem Filter.prod_eq_inf + def Filter.seq + theorem Filter.univ_mem' + theorem Filter.univ_mem + structure Filter Modified Mathlib/Order/Filter/Ker.lean - def Filter.ker Modified Mathlib/Order/Filter/Lift.lean Modified Mathlib/Order/Filter/NAry.lean Modified Mathlib/Order/Filter/Prod.lean + theorem Filter.compl_diagonal_mem_prod - theorem Filter.prod_eq_inf Modified Mathlib/Topology/MetricSpace/Gluing.lean 2024-10-09 02:28:56 f4131e1 chore: remove one tick (#17563) ESTIMATED CHANGES Modified Mathlib/Tactic/Says.lean 2024-10-09 00:53:03 fb07d0d feat(RingTheory/DualNumber): dual numbers over a field are local and PIR (#17317) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/TrivSqZeroExt.lean + theorem TrivSqZeroExt.fst_surjective + theorem TrivSqZeroExt.snd_surjective Added Mathlib/RingTheory/DualNumber.lean + theorem DualNumber.exists_mul_left_or_mul_right + theorem DualNumber.fst_eq_zero_iff_eps_dvd + theorem DualNumber.ideal_trichotomy + theorem DualNumber.isMaximal_span_singleton_eps + theorem DualNumber.isNilpotent_eps + theorem DualNumber.isNilpotent_iff_eps_dvd + theorem DualNumber.maximalIdeal_eq_span_singleton_eps + theorem TrivSqZeroExt.isNilpotent_iff_isNilpotent_fst + theorem TrivSqZeroExt.isNilpotent_inl_iff + theorem TrivSqZeroExt.isNilpotent_inr + theorem TrivSqZeroExt.isUnit_or_isNilpotent + theorem TrivSqZeroExt.isUnit_or_isNilpotent_of_isMaximal_isNilpotent Modified Mathlib/RingTheory/Nilpotent/Basic.lean + theorem IsNilpotent.not_isUnit + theorem IsUnit.not_isNilpotent 2024-10-08 23:23:08 9341c08 feat: add `Normed` instances for SeparationQuotient (#17452) We already have the corresponding metric spaces structures in `MetricSpace.Basic`. This adds `Algebra`, `NormOneClass`, `Normed(Add)CommGroup`, `(Nonunital)Normed(Comm)Ring`, `NormedSpace`, and `NormedAlgebra` instances. The slightly heavy imports here can be blamed on `Topology.Algebra.SeparationQuotient` importing `LinearAlgebra.Basis.VectorSpace` for the final 50-100 lines of the file. Moving this to a new file would cut the chain, as would generalizing it to work in free modules (continuing from #17560), assuming it actually holds there. ESTIMATED CHANGES Modified Mathlib/Analysis/Normed/Field/Lemmas.lean Modified Mathlib/Analysis/Normed/Group/Basic.lean + theorem Inseparable.nnnorm_eq_nnnorm' + theorem Inseparable.norm_eq_norm' Modified Mathlib/Analysis/Normed/Group/Uniform.lean + theorem SeparationQuotient.nnnorm_mk' + theorem SeparationQuotient.norm_mk' Modified Mathlib/Analysis/Normed/Module/Basic.lean Modified Mathlib/Topology/Algebra/SeparationQuotient.lean + def SeparationQuotient.mkRingHom + theorem SeparationQuotient.mk_algebraMap Modified Mathlib/Topology/MetricSpace/Algebra.lean 2024-10-08 22:51:44 91bc9bf chore(ContinuousMap/Defs): extract from `Basic` (#17265) Move the definition of `ContinuousMap` to a new file that doesn't depend on `Homeomorph`, `Separation` etc Also use `X`/`Y` instead of `α`/`β` for type vars in the new file. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Geometry/RingedSpace/PresheafedSpace/Gluing.lean Modified Mathlib/Topology/Algebra/ContinuousAffineMap.lean Modified Mathlib/Topology/Algebra/Module/Basic.lean Modified Mathlib/Topology/Algebra/Monoid.lean Modified Mathlib/Topology/Algebra/Star.lean Modified Mathlib/Topology/Category/TopCat/Basic.lean Modified Mathlib/Topology/ContinuousMap/Basic.lean - def ContinuousMap.Simps.apply - theorem ContinuousMap.coe_copy - theorem ContinuousMap.coe_injective - theorem ContinuousMap.coe_mk - theorem ContinuousMap.continuous_set_coe - theorem ContinuousMap.copy_eq - theorem ContinuousMap.ext - theorem ContinuousMap.toFun_eq_coe - structure ContinuousMap - def toContinuousMap Modified Mathlib/Topology/ContinuousMap/CompactlySupported.lean Added Mathlib/Topology/ContinuousMap/Defs.lean + def ContinuousMap.Simps.apply + theorem ContinuousMap.coe_copy + theorem ContinuousMap.coe_injective + theorem ContinuousMap.coe_mk + theorem ContinuousMap.continuous_set_coe + theorem ContinuousMap.copy_eq + theorem ContinuousMap.ext + theorem ContinuousMap.toFun_eq_coe + structure ContinuousMap + def toContinuousMap Modified Mathlib/Topology/ContinuousMap/Ordered.lean Modified Mathlib/Topology/ContinuousMap/Sigma.lean Modified Mathlib/Topology/ContinuousMap/StoneWeierstrass.lean Modified Mathlib/Topology/Gluing.lean Modified Mathlib/Topology/Instances/NNReal.lean Modified Mathlib/Topology/Order/Hom/Basic.lean Modified Mathlib/Topology/Specialization.lean 2024-10-08 21:50:13 2d2e398 feat(Logic/Function): define `Pi.map` (#17482) Also use it instead of `dcomp` or an inline lambda here and there. ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Pi/Basic.lean - theorem Function.bijective_pi_map - theorem Function.injective_pi_map - theorem Function.surjective_pi_map Modified Mathlib/CategoryTheory/MorphismProperty/Limits.lean Modified Mathlib/CategoryTheory/Triangulated/Basic.lean Modified Mathlib/CategoryTheory/Triangulated/Pretriangulated.lean Modified Mathlib/Data/Set/Prod.lean - theorem Set.dcomp_image_pi - theorem Set.dcomp_image_univ_pi + theorem Set.piMap_image_pi + theorem Set.piMap_image_univ_pi - theorem Set.range_dcomp + theorem Set.range_piMap Modified Mathlib/Logic/Equiv/Basic.lean Modified Mathlib/Logic/Equiv/PartialEquiv.lean Modified Mathlib/Logic/Function/Basic.lean + theorem Function.Bijective.piMap +/- theorem Function.Injective.comp_left + theorem Function.Injective.piMap + theorem Function.Surjective.piMap Modified Mathlib/Logic/Function/Defs.lean + theorem Pi.map_apply Modified Mathlib/Topology/MetricSpace/IsometricSMul.lean Modified Mathlib/Topology/MetricSpace/Isometry.lean - theorem isometry_dcomp 2024-10-08 21:14:08 964c714 chore: fix typo (#17545) ESTIMATED CHANGES Modified Mathlib/Topology/Basic.lean 2024-10-08 18:55:28 0d4b02e fix(Group/PosPart): fix multiplicative version (#17540) These lemmas were incorrectly stated with the multiplicative version, and so had two identical forms, both additive. This PR restores the multiplicative version, and also generalises. ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Group/PosPart.lean +/- theorem Pi.leOnePart_apply +/- theorem Pi.leOnePart_def +/- theorem Pi.oneLePart_apply +/- theorem Pi.oneLePart_def 2024-10-08 18:55:27 e2af8f1 chore(init_creation): remove creation of Mathlib.Init (#17521) That file already exists and (most likely) isn't going away. There's no point in creating it anew, overwriting the existing content. Just remove these parts of the script. ESTIMATED CHANGES Modified scripts/init_creation.sh 2024-10-08 18:55:26 c6cf2b0 feat: basic results about the differentiability of the norm (#17150) Provide basic results about the differentiability of the norm in a real vector space. Give the links between differentiability as `x` and `t • x`. Prove that if the norm is differentiable at `x` then `fderiv ℝ (‖·‖) x x = ‖x‖` and `‖fderiv ℝ (‖·‖) x‖ = 1`. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Analysis/Calculus/Deriv/Abs.lean Added Mathlib/Analysis/Calculus/FDeriv/Norm.lean + theorem ContDiffAt.contDiffAt_norm_of_smul + theorem ContDiffAt.contDiffAt_norm_smul + theorem DifferentiableAt.differentiableAt_norm_of_smul + theorem DifferentiableAt.fderiv_norm_self + theorem HasFDerivAt.hasFDerivAt_norm_smul + theorem HasFDerivAt.hasFDerivAt_norm_smul_neg + theorem HasFDerivAt.hasFDerivAt_norm_smul_pos + theorem HasStrictFDerivAt.hasStrictDerivAt_norm_smul_neg + theorem HasStrictFDerivAt.hasStrictDerivAt_norm_smul_pos + theorem HasStrictFDerivAt.hasStrictFDerivAt_norm_smul + theorem contDiffAt_norm_smul_iff + theorem differentiableAt_norm_smul + theorem fderiv_norm_smul + theorem fderiv_norm_smul_neg + theorem fderiv_norm_smul_pos + theorem norm_fderiv_norm + theorem not_differentiableAt_norm_zero Modified Mathlib/Analysis/Calculus/Rademacher.lean + theorem ae_differentiableAt_norm + theorem dense_differentiableAt_norm 2024-10-08 18:09:10 b5a8246 chore: generalise yet more lemmas from `LinearOrderedField` to `GroupWithZero` (#17447) ESTIMATED CHANGES Modified Archive/Imo/Imo2024Q1.lean Modified Counterexamples/SorgenfreyLine.lean Modified Mathlib/Algebra/ContinuedFractions/Computation/Approximations.lean Modified Mathlib/Algebra/Order/Archimedean/Basic.lean Modified Mathlib/Algebra/Order/Field/Basic.lean +/- theorem inv_le +/- theorem inv_le_inv +/- theorem inv_le_inv_of_le +/- theorem inv_le_of_inv_le +/- theorem inv_le_one +/- theorem inv_le_one_iff +/- theorem inv_lt +/- theorem inv_lt_inv +/- theorem inv_lt_inv_of_lt +/- theorem inv_lt_of_inv_lt +/- theorem inv_lt_one +/- theorem inv_lt_one_iff +/- theorem inv_lt_one_iff_of_pos +/- theorem le_inv +/- theorem le_one_div +/- theorem lt_inv +/- theorem lt_one_div +/- theorem one_div_le +/- theorem one_div_lt +/- theorem one_le_inv +/- theorem one_le_inv_iff +/- theorem one_lt_inv +/- theorem one_lt_inv_iff Modified Mathlib/Algebra/Order/Floor.lean Modified Mathlib/Algebra/Order/GroupWithZero/Canonical.lean - theorem inv_le_inv₀ - theorem inv_lt_inv₀ Modified Mathlib/Algebra/Order/GroupWithZero/Unbundled.lean + theorem inv_anti₀ + theorem inv_le_comm₀ + theorem inv_le_inv₀ + theorem inv_le_of_inv_le₀ + theorem inv_le_one_iff₀ + theorem inv_le_one_of_one_le₀ + theorem inv_lt_comm₀ + theorem inv_lt_inv₀ + theorem inv_lt_of_inv_lt₀ + theorem inv_lt_one_iff₀ + theorem inv_lt_one_of_one_lt₀ + theorem inv_strictAnti₀ + theorem le_inv_comm₀ + theorem le_inv_of_le_inv₀ + theorem lt_inv_comm₀ + theorem lt_inv_of_lt_inv₀ + theorem one_le_inv_iff₀ + theorem one_lt_inv_iff₀ Modified Mathlib/Algebra/Order/Monovary.lean Modified Mathlib/Analysis/Asymptotics/Asymptotics.lean Modified Mathlib/Analysis/CStarAlgebra/Spectrum.lean Modified Mathlib/Analysis/Calculus/ContDiff/Bounds.lean Modified Mathlib/Analysis/Calculus/LHopital.lean Modified Mathlib/Analysis/Calculus/TangentCone.lean Modified Mathlib/Analysis/Convex/Basic.lean Modified Mathlib/Analysis/Convex/Between.lean Modified Mathlib/Analysis/Convex/Gauge.lean Modified Mathlib/Analysis/Convex/Star.lean Modified Mathlib/Analysis/Convex/Strict.lean Modified Mathlib/Analysis/Convex/Uniform.lean Modified Mathlib/Analysis/FunctionalSpaces/SobolevInequality.lean Modified Mathlib/Analysis/LocallyConvex/BalancedCoreHull.lean Modified Mathlib/Analysis/LocallyConvex/ContinuousOfBounded.lean Modified Mathlib/Analysis/MeanInequalities.lean Modified Mathlib/Analysis/Normed/Field/Basic.lean Modified Mathlib/Analysis/Normed/Ring/Units.lean Modified Mathlib/Analysis/NormedSpace/OperatorNorm/Basic.lean Modified Mathlib/Analysis/PSeries.lean Modified Mathlib/Analysis/SpecialFunctions/BinaryEntropy.lean Modified Mathlib/Analysis/SpecialFunctions/Complex/LogBounds.lean Modified Mathlib/Analysis/SpecialFunctions/Log/Basic.lean Modified Mathlib/Analysis/SpecialFunctions/Pow/Real.lean Modified Mathlib/Analysis/SpecialFunctions/Stirling.lean Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Arctan.lean Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Bounds.lean Modified Mathlib/Analysis/SpecificLimits/Basic.lean Modified Mathlib/Analysis/SpecificLimits/FloorPow.lean Modified Mathlib/Analysis/SpecificLimits/Normed.lean Modified Mathlib/Combinatorics/SimpleGraph/Regularity/Chunk.lean Modified Mathlib/Combinatorics/SimpleGraph/Triangle/Basic.lean Modified Mathlib/Data/Complex/Exponential.lean Modified Mathlib/Data/Complex/ExponentialBounds.lean Modified Mathlib/Data/Int/Log.lean Modified Mathlib/Data/NNReal/Basic.lean Modified Mathlib/Data/Nat/Cast/Order/Field.lean Modified Mathlib/Data/Real/Archimedean.lean Modified Mathlib/Data/Real/ConjExponents.lean Modified Mathlib/Data/Real/GoldenRatio.lean Modified Mathlib/Data/Real/Hyperreal.lean Modified Mathlib/Data/Set/Pointwise/Interval.lean Modified Mathlib/Geometry/Euclidean/Angle/Unoriented/Affine.lean Modified Mathlib/GroupTheory/CosetCover.lean Modified Mathlib/LinearAlgebra/AffineSpace/Ordered.lean +/- theorem midpoint_le_right +/- theorem right_le_midpoint Modified Mathlib/MeasureTheory/Covering/Besicovitch.lean Modified Mathlib/MeasureTheory/Covering/Differentiation.lean Modified Mathlib/MeasureTheory/Decomposition/SignedHahn.lean Modified Mathlib/MeasureTheory/Function/ConvergenceInMeasure.lean Modified Mathlib/MeasureTheory/Function/LpSeminorm/CompareExp.lean Modified Mathlib/MeasureTheory/Function/LpSeminorm/TriangleInequality.lean Modified Mathlib/MeasureTheory/Integral/IntegralEqImproper.lean Modified Mathlib/MeasureTheory/Integral/MeanInequalities.lean Modified Mathlib/NumberTheory/ADEInequality.lean Modified Mathlib/NumberTheory/DiophantineApproximation.lean Modified Mathlib/NumberTheory/LSeries/AbstractFuncEq.lean Modified Mathlib/NumberTheory/Modular.lean Modified Mathlib/NumberTheory/ModularForms/EisensteinSeries/UniformConvergence.lean Modified Mathlib/NumberTheory/Padics/PadicIntegers.lean Modified Mathlib/NumberTheory/Padics/PadicNorm.lean Modified Mathlib/NumberTheory/Padics/PadicNumbers.lean Modified Mathlib/RingTheory/Valuation/Basic.lean + theorem Valuation.pos_iff Modified Mathlib/RingTheory/Valuation/ValuationSubring.lean Modified Mathlib/Topology/Algebra/Field.lean Modified Mathlib/Topology/Algebra/Module/Cardinality.lean Modified Mathlib/Topology/Algebra/Order/Field.lean Modified Mathlib/Topology/MetricSpace/PiNat.lean 2024-10-08 17:07:26 ec49395 chore: fix typo (#17542) ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Defs.lean 2024-10-08 17:07:25 981e4cb chore: bump importGraph (#17536) Update `importGraph` to use reservoir dependencies instead of git-dependencies. See `importGraph` commit [7376ac0](https://github.com/leanprover-community/import-graph/commit/7376ac07aa2b0492372c056b7a2c3163b3026d1e) ESTIMATED CHANGES Modified lake-manifest.json 2024-10-08 17:07:23 641e655 feat: order properties of `Finsupp.single` (#17461) From LeanCamCombi ESTIMATED CHANGES Modified Mathlib/Data/Finsupp/Order.lean + theorem Finsupp.mapDomain_mono + theorem Finsupp.mapDomain_nonneg + theorem Finsupp.mapDomain_nonpos + theorem Finsupp.single_le_single + theorem Finsupp.single_mono + theorem Finsupp.single_nonneg + theorem Finsupp.single_nonpos + theorem Finsupp.sum_le_sum + theorem Finsupp.sum_le_sum_index 2024-10-08 17:07:22 3a3a3ef feat: `IsTorsionFree ↔ NoZeroSMulDivisors` aliases (#17307) Also fix a few lemma names that were accidentally unnamespaced. From PFR ESTIMATED CHANGES Modified Mathlib/GroupTheory/Torsion.lean + theorem AddMonoid.IsTorsionFree.of_noZeroSMulDivisors + theorem AddMonoid.isTorsionFree_iff_noZeroSMulDivisors_int + theorem AddMonoid.isTorsionFree_iff_noZeroSMulDivisors_nat - theorem IsTorsion.not_torsion_free - theorem IsTorsionFree.not_torsion - theorem IsTorsionFree.of_noZeroSMulDivisors - theorem IsTorsionFree.prod - theorem IsTorsionFree.quotient_torsion - theorem IsTorsionFree.subgroup + theorem Monoid.IsTorsion.not_torsion_free + theorem Monoid.IsTorsionFree.not_torsion + theorem Monoid.IsTorsionFree.prod + theorem Monoid.IsTorsionFree.quotient_torsion + theorem Monoid.IsTorsionFree.subgroup - theorem isTorsionFree_iff_noZeroSMulDivisors_int - theorem isTorsionFree_iff_noZeroSMulDivisors_nat 2024-10-08 16:10:02 92fd0f8 feat: `graphOn` API (#17303) From PFR ESTIMATED CHANGES Modified Mathlib/Data/Set/Function.lean + theorem Set.fst_injOn_graph + theorem Set.graphOn_comp + theorem Set.graphOn_eq_empty + theorem Set.graphOn_inj + theorem Set.graphOn_nonempty + theorem Set.graphOn_univ_eq_range + theorem Set.graphOn_univ_inj + theorem Set.graphOn_univ_injective + theorem Set.image_snd_graphOn + theorem Set.mem_graphOn 2024-10-08 15:34:13 ae1fbb5 chore(MeasureTheory/Group/Arithmetic): tag more lemmas with `fun_prop` (#17304) ... and rewrite `Measurable.mul'` and `Measurable.div'` to be in compositional form From PFR ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Function/Intersectivity.lean Modified Mathlib/MeasureTheory/Function/SimpleFunc.lean Modified Mathlib/MeasureTheory/Group/Arithmetic.lean +/- theorem AEMeasurable.smul +/- theorem AEMeasurable.smul_const +/- theorem Finset.measurable_prod' +/- theorem Measurable.const_smul' +/- theorem Measurable.div' +/- theorem Measurable.mul' + theorem Measurable.smul' +/- theorem Measurable.smul +/- theorem Measurable.smul_const Modified Mathlib/MeasureTheory/Integral/Lebesgue.lean Modified Mathlib/MeasureTheory/MeasurableSpace/Basic.lean Modified Mathlib/MeasureTheory/MeasurableSpace/Defs.lean +/- theorem Measurable.of_discrete Modified Mathlib/MeasureTheory/MeasurableSpace/Embedding.lean Modified test/measurability.lean 2024-10-08 15:03:50 fa05556 chore: Rename `UniformInducing` to `IsUniformInducing` (#17398) `Function.Embedding` is a type while `Embedding` is a proposition, and there are many other kinds of embeddings than topological embeddings. Hence this PR is a step towards 1. renaming `Embedding` to `IsEmbedding` and similarly for neighborhing declarations (which `UniformInducing` is) 2. namespacing it inside `Topology` [Zulip](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/rename.20.60Inducing.60.20and.20.60Embedding.60.3F). See #15993 for context. ESTIMATED CHANGES Modified Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/NonUnital.lean Modified Mathlib/Analysis/CStarAlgebra/Module/Synonym.lean +/- def WithCStarModule.uniformEquiv Modified Mathlib/Analysis/CStarAlgebra/Multiplier.lean Modified Mathlib/Analysis/InnerProductSpace/LinearPMap.lean Modified Mathlib/Analysis/InnerProductSpace/l2Space.lean Modified Mathlib/Analysis/Normed/Algebra/Unitization.lean Modified Mathlib/Analysis/Normed/Lp/PiLp.lean Modified Mathlib/Analysis/Normed/Lp/ProdLp.lean Modified Mathlib/Analysis/Normed/Operator/LinearIsometry.lean Modified Mathlib/Analysis/NormedSpace/OperatorNorm/Completeness.lean Modified Mathlib/Analysis/ODE/PicardLindelof.lean + theorem PicardLindelof.FunSpace.isUniformInducing_toContinuousMap - theorem PicardLindelof.FunSpace.uniformInducing_toContinuousMap Modified Mathlib/MeasureTheory/Function/SimpleFuncDenseLp.lean + theorem MeasureTheory.Lp.simpleFunc.isUniformInducing Modified Mathlib/MeasureTheory/Integral/Bochner.lean Modified Mathlib/MeasureTheory/Integral/SetToL1.lean Modified Mathlib/Topology/Algebra/Module/Alternating/Topology.lean Modified Mathlib/Topology/Algebra/Module/Multilinear/Topology.lean Modified Mathlib/Topology/Algebra/Module/StrongTopology.lean Modified Mathlib/Topology/Algebra/SeparationQuotient.lean + theorem SeparationQuotient.outCLM_isUniformInducing - theorem SeparationQuotient.outCLM_uniformInducing Modified Mathlib/Topology/Algebra/UniformField.lean + theorem IsUniformInducing.completableTopField - theorem UniformInducing.completableTopField Modified Mathlib/Topology/Algebra/UniformGroup.lean + theorem IsUniformInducing.uniformGroup - theorem UniformInducing.uniformGroup Modified Mathlib/Topology/Algebra/UniformMulAction.lean + theorem IsUniformInducing.uniformContinuousConstSMul - theorem UniformInducing.uniformContinuousConstSMul Modified Mathlib/Topology/Algebra/UniformRing.lean Modified Mathlib/Topology/ContinuousMap/Bounded.lean Modified Mathlib/Topology/ContinuousMap/Compact.lean + theorem ContinuousMap.isUniformInducing_equivBoundedOfCompact - theorem ContinuousMap.uniformInducing_equivBoundedOfCompact Modified Mathlib/Topology/ContinuousMap/ContinuousMapZero.lean Modified Mathlib/Topology/ContinuousMap/ZeroAtInfty.lean Modified Mathlib/Topology/EMetricSpace/Basic.lean + theorem EMetric.isUniformInducing_iff - theorem EMetric.uniformInducing_iff Modified Mathlib/Topology/Instances/Complex.lean Modified Mathlib/Topology/Instances/Rat.lean Modified Mathlib/Topology/MetricSpace/Antilipschitz.lean + theorem AntilipschitzWith.isUniformInducing Modified Mathlib/Topology/MetricSpace/Basic.lean Modified Mathlib/Topology/MetricSpace/Bilipschitz.lean Modified Mathlib/Topology/MetricSpace/Closeds.lean Modified Mathlib/Topology/MetricSpace/Dilation.lean + theorem Dilation.isUniformInducing Modified Mathlib/Topology/MetricSpace/Gluing.lean Modified Mathlib/Topology/MetricSpace/Isometry.lean + theorem Isometry.isUniformInducing Modified Mathlib/Topology/MetricSpace/Polish.lean Modified Mathlib/Topology/MetricSpace/Pseudo/Basic.lean Modified Mathlib/Topology/MetricSpace/Pseudo/Constructions.lean + def IsUniformInducing.comapPseudoMetricSpace - def UniformInducing.comapPseudoMetricSpace Modified Mathlib/Topology/UniformSpace/AbstractCompletion.lean Modified Mathlib/Topology/UniformSpace/Ascoli.lean + theorem Equicontinuous.isUniformInducing_uniformFun_iff_pi - theorem Equicontinuous.uniformInducing_uniformFun_iff_pi + theorem EquicontinuousOn.isUniformInducing_uniformOnFun_iff_pi' + theorem EquicontinuousOn.isUniformInducing_uniformOnFun_iff_pi - theorem EquicontinuousOn.uniformInducing_uniformOnFun_iff_pi' - theorem EquicontinuousOn.uniformInducing_uniformOnFun_iff_pi Modified Mathlib/Topology/UniformSpace/CompactConvergence.lean + theorem ContinuousMap.isUniformInducing_comp - theorem ContinuousMap.uniformInducing_comp Modified Mathlib/Topology/UniformSpace/CompareReals.lean Modified Mathlib/Topology/UniformSpace/CompleteSeparated.lean Modified Mathlib/Topology/UniformSpace/Completion.lean + theorem CauchyFilter.isUniformInducing_pureCauchy - theorem CauchyFilter.uniformInducing_pureCauchy + theorem UniformSpace.Completion.isUniformInducing_coe - theorem UniformSpace.Completion.uniformInducing_coe Modified Mathlib/Topology/UniformSpace/Equicontinuity.lean + theorem IsUniformInducing.equicontinuousAt_iff + theorem IsUniformInducing.equicontinuousOn_iff + theorem IsUniformInducing.equicontinuousWithinAt_iff + theorem IsUniformInducing.equicontinuous_iff + theorem IsUniformInducing.uniformEquicontinuousOn_iff + theorem IsUniformInducing.uniformEquicontinuous_iff - theorem UniformInducing.equicontinuousAt_iff - theorem UniformInducing.equicontinuousOn_iff - theorem UniformInducing.equicontinuousWithinAt_iff - theorem UniformInducing.equicontinuous_iff - theorem UniformInducing.uniformEquicontinuousOn_iff - theorem UniformInducing.uniformEquicontinuous_iff Modified Mathlib/Topology/UniformSpace/Equiv.lean + def Equiv.toUniformEquivOfIsUniformInducing - def Equiv.toUniformEquivOfUniformInducing +/- theorem UniformEquiv.isUniformEmbedding + theorem UniformEquiv.isUniformInducing Modified Mathlib/Topology/UniformSpace/Pi.lean Modified Mathlib/Topology/UniformSpace/UniformConvergenceTopology.lean + theorem UniformFun.postcomp_isUniformInducing + theorem UniformOnFun.postcomp_isUniformInducing Modified Mathlib/Topology/UniformSpace/UniformEmbedding.lean + theorem IsUniformEmbedding.isUniformInducing +/- structure IsUniformEmbedding + theorem IsUniformInducing.basis_uniformity + theorem IsUniformInducing.cauchy_map_iff + theorem IsUniformInducing.comp + theorem IsUniformInducing.completeSpace_congr + theorem IsUniformInducing.id + theorem IsUniformInducing.inducing + theorem IsUniformInducing.isComplete_iff + theorem IsUniformInducing.isComplete_range + theorem IsUniformInducing.isDenseInducing + theorem IsUniformInducing.mk' + theorem IsUniformInducing.of_comp + theorem IsUniformInducing.of_comp_iff + theorem IsUniformInducing.prod + theorem IsUniformInducing.uniformContinuous + theorem IsUniformInducing.uniformContinuousOn_iff + theorem IsUniformInducing.uniformContinuous_iff + structure IsUniformInducing + theorem SeparationQuotient.isUniformInducing_mk - theorem SeparationQuotient.uniformInducing_mk - theorem UniformInducing.basis_uniformity - theorem UniformInducing.cauchy_map_iff - theorem UniformInducing.comp - theorem UniformInducing.completeSpace_congr - theorem UniformInducing.inducing - theorem UniformInducing.isComplete_iff - theorem UniformInducing.isComplete_range - theorem UniformInducing.isDenseInducing - theorem UniformInducing.mk' - theorem UniformInducing.of_comp_iff - theorem UniformInducing.prod - theorem UniformInducing.uniformContinuous - theorem UniformInducing.uniformContinuousOn_iff - theorem UniformInducing.uniformContinuous_iff - structure UniformInducing + theorem closure_image_mem_nhds_of_isUniformInducing - theorem closure_image_mem_nhds_of_uniformInducing +/- theorem completeSpace_extension +/- theorem completeSpace_iff_isComplete_range +/- theorem isComplete_image_iff + theorem isUniformEmbedding_iff_isUniformInducing - theorem isUniformEmbedding_iff_uniformInducing + theorem isUniformInducing_iff' + theorem isUniformInducing_iff_uniformSpace +/- theorem totallyBounded_image_iff +/- theorem totallyBounded_preimage - theorem uniformInducing_id - theorem uniformInducing_iff' - theorem uniformInducing_iff_uniformSpace - theorem uniformInducing_of_compose Modified scripts/no_lints_prime_decls.txt 2024-10-08 14:03:43 f3bcc3b docs: add latex doc for `Set` and `Finset` intervals (#17523) Add LaTeX descriptions for all `Icc`/`Ico`/`Ioc`/`Ioo`/`Iio`/`Ioi`/`Iic`/`Ici` intervals. Following [this zulip thread](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/notation.20for.20intervals). ESTIMATED CHANGES Modified Mathlib/Order/Interval/Finset/Defs.lean +/- def Finset.Iic +/- def Finset.Iio Modified Mathlib/Order/Interval/Set/Basic.lean +/- def Set.Iio 2024-10-08 12:10:20 546cfa0 refactor: generalise `IsLocalRingHom` to monoids (#6045) This lets `IsLocalRingHom` take two monoids instead of rings. Furthermore, it moves lemmas to be available a bit earlier where they are relevant to other theories, and tries to adapt those theories to use them a bit better. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Associated/Basic.lean + theorem Irreducible.of_map Modified Mathlib/Algebra/Category/Ring/Instances.lean Modified Mathlib/Algebra/Group/Units/Equiv.lean - theorem MulEquiv.map_isUnit_iff Modified Mathlib/Algebra/Group/Units/Hom.lean + theorem IsUnit.of_map + theorem MonoidHom.isLocalRingHom_of_comp + theorem isLocalRingHom_of_leftInverse + theorem isUnit_map_iff Modified Mathlib/Algebra/GroupWithZero/Units/Basic.lean + theorem Ring.IsUnit.ringInverse + theorem Ring.inverse_of_isUnit Modified Mathlib/Algebra/GroupWithZero/Units/Lemmas.lean + theorem isLocalRingHom_of_exists_map_ne_one Modified Mathlib/Algebra/Polynomial/Expand.lean +/- theorem Polynomial.isLocalRingHom_expand Modified Mathlib/Algebra/Ring/Equiv.lean Modified Mathlib/AlgebraicGeometry/GammaSpecAdjunction.lean Modified Mathlib/AlgebraicGeometry/PrimeSpectrum/Basic.lean Modified Mathlib/AlgebraicGeometry/ResidueField.lean Modified Mathlib/AlgebraicGeometry/Spec.lean Modified Mathlib/AlgebraicGeometry/StructureSheaf.lean Modified Mathlib/CategoryTheory/Galois/Prorepresentability.lean Modified Mathlib/FieldTheory/Separable.lean Modified Mathlib/Geometry/RingedSpace/LocallyRingedSpace.lean Modified Mathlib/Geometry/RingedSpace/LocallyRingedSpace/HasColimits.lean Modified Mathlib/Geometry/RingedSpace/LocallyRingedSpace/ResidueField.lean Modified Mathlib/Geometry/RingedSpace/OpenImmersion.lean Modified Mathlib/LinearAlgebra/ExteriorAlgebra/Basic.lean Modified Mathlib/NumberTheory/NumberField/Units/Basic.lean Modified Mathlib/RingTheory/Algebraic.lean Modified Mathlib/RingTheory/FractionalIdeal/Operations.lean Modified Mathlib/RingTheory/Henselian.lean Modified Mathlib/RingTheory/Ideal/Basic.lean + theorem map_mem_nonunits_iff Modified Mathlib/RingTheory/LocalRing/RingHom/Basic.lean - theorem isUnit_map_iff - theorem isUnit_of_map_unit - theorem map_mem_nonunits_iff - theorem of_irreducible_map Deleted Mathlib/RingTheory/LocalRing/RingHom/Defs.lean Modified Mathlib/RingTheory/Localization/AtPrime.lean Modified Mathlib/RingTheory/MvPowerSeries/Inverse.lean Modified Mathlib/RingTheory/SurjectiveOnStalks.lean Modified Mathlib/RingTheory/Valuation/ValExtension.lean 2024-10-08 11:11:33 71f45a5 fix: increase the priority of `lemma` notation (#17533) This makes it take precedence over the Batteries version, which in turn simplifies the resulting `Syntax` object to not have a `choice` node. Presumably there is a very marginal performance gain too. [Zulip thread](https://leanprover.zulipchat.com/#narrow/stream/348111-batteries/topic/lemma.20notation) ESTIMATED CHANGES Modified Mathlib/Tactic/Lemma.lean 2024-10-08 09:48:30 7740499 chore(ContinuousMap/Compact): generalize to seminormed spaces (#17526) Also add a bunch of missing `NormedRing`-adjacent instances. ESTIMATED CHANGES Modified Mathlib/Topology/ContinuousMap/Compact.lean 2024-10-08 09:48:29 a0c5ecc feat(Tactic/Linter): the ppRoundtrip linter (#15535) This linter tries to make sure that the source code looks like the pretty printed version of itself. It is not intended to be always active, since not every pretty-printed syntax is desirable or type-correct! ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Tactic.lean Modified Mathlib/Tactic/DeprecateMe.lean Modified Mathlib/Tactic/Linter.lean Added Mathlib/Tactic/Linter/PPRoundtrip.lean + def Mathlib.Linter.PPRoundtrip.ppRoundtrip + def Mathlib.Linter.capSourceInfo + def Mathlib.Linter.capSyntax + def Mathlib.Linter.polishPP + def Mathlib.Linter.zoomString Modified Mathlib/Tactic/Widget/InteractiveUnfold.lean Added test/PPRoundtrip.lean Modified test/slow_simp.lean 2024-10-08 09:15:12 196892d feat: extend a linearly independent family to a basis contained in a set spanning the space (#17102) If `s` is a family of linearly independent vectors contained in a set `t` spanning `V`, `extendLe` is a basis of `V` containing `s` and contained in `t`. Specialize it for the case where `s` is empty. ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/Basis/VectorSpace.lean + theorem Basis.coe_extendLe + theorem Basis.coe_ofSpan + theorem Basis.extendLe_apply_self + theorem Basis.extendLe_subset + theorem Basis.ofSpan_apply_self + theorem Basis.ofSpan_subset + theorem Basis.range_extendLe + theorem Basis.range_ofSpan + theorem Basis.subset_extendLe 2024-10-08 09:15:11 f681278 chore(SetTheory/Ordinal/Arithmetic): deprecate `Ordinal.mex` and `Ordinal.bmex` (#16989) There isn't any reason not to use `sInf sᶜ` instead - both nimber arithmetic and Grundy values work perfectly without `mex`. The one nontrivial result was that the `mex` of an indexed family is less than the successor of the cardinal of the indexing type - this has been reproved as `sInf_compl_lt_ord_succ` and `sInf_compl_lt_ord_succ_lift`. ESTIMATED CHANGES Modified Mathlib/SetTheory/Game/Nim.lean Modified Mathlib/SetTheory/Ordinal/Arithmetic.lean + theorem Ordinal.sInf_compl_lt_lift_ord_succ + theorem Ordinal.sInf_compl_lt_ord_succ 2024-10-08 08:32:42 2f790a9 feat(Algebra/Category/ModuleCat/Basic): remove duplicate `ofHom` (#17476) We keep `asHom` and use that throughout, since there seems to be no need to keep both around. ESTIMATED CHANGES Modified Mathlib/Algebra/Category/AlgebraCat/Basic.lean Modified Mathlib/Algebra/Category/CoalgebraCat/ComonEquivalence.lean Modified Mathlib/Algebra/Category/FGModuleCat/Basic.lean Modified Mathlib/Algebra/Category/ModuleCat/Basic.lean + theorem ModuleCat.asHom_apply - def ModuleCat.ofHom - theorem ModuleCat.ofHom_apply Modified Mathlib/Algebra/Category/ModuleCat/Biproducts.lean Modified Mathlib/Algebra/Category/ModuleCat/Images.lean Modified Mathlib/Algebra/Homology/ShortComplex/ModuleCat.lean Modified Mathlib/Algebra/Module/Injective.lean Modified Mathlib/CategoryTheory/Linear/Yoneda.lean Modified Mathlib/CategoryTheory/Preadditive/Yoneda/Basic.lean Modified Mathlib/RepresentationTheory/GroupCohomology/LowDegree.lean Modified Mathlib/RepresentationTheory/Rep.lean Modified Mathlib/RingTheory/AdicCompletion/AsTensorProduct.lean Modified Mathlib/RingTheory/Coalgebra/TensorProduct.lean Modified Mathlib/RingTheory/Flat/CategoryTheory.lean Modified Mathlib/Topology/Category/Profinite/Nobeling.lean +/- theorem Profinite.NobelingProof.succ_mono 2024-10-08 08:32:41 3d1b50b feat(*): drop some TC assumptions about `atTop` (#17437) Whenever we're proving `Tendsto _ atTop _`, we can assume that the domain is nonempty and `IsDirected α LE.le`, because otherwise `atTop` is the trivial filter. ESTIMATED CHANGES Modified Mathlib/Analysis/InnerProductSpace/Projection.lean +/- theorem orthogonalProjection_tendsto_closure_iSup +/- theorem orthogonalProjection_tendsto_self Modified Mathlib/Analysis/Normed/Field/Basic.lean +/- theorem NormedAddCommGroup.tendsto_atTop' +/- theorem NormedAddCommGroup.tendsto_atTop Modified Mathlib/MeasureTheory/Measure/MeasureSpace.lean +/- theorem MeasureTheory.tendsto_measure_Ici_atBot +/- theorem MeasureTheory.tendsto_measure_Ico_atTop +/- theorem MeasureTheory.tendsto_measure_Iic_atTop +/- theorem MeasureTheory.tendsto_measure_Ioc_atBot +/- theorem MeasureTheory.tendsto_measure_iInter +/- theorem MeasureTheory.tendsto_measure_iUnion_atBot +/- theorem MeasureTheory.tendsto_measure_iUnion_atTop Modified Mathlib/Order/Filter/Basic.lean + theorem Filter.Tendsto.of_neBot_imp Modified Mathlib/Topology/Basic.lean +/- theorem tendsto_atBot_of_eventually_const +/- theorem tendsto_atTop_of_eventually_const Modified Mathlib/Topology/MetricSpace/ThickenedIndicator.lean 2024-10-08 08:32:40 fd9a478 feat: a linear form is in the span of others if its kernel contains the intersection of the kernels (#17034) Given some linear forms $L_1, ..., L_n, K$ over a vector space $E$, if $\bigcap_{i=1}^n \mathrm{ker}(L_i) \subseteq \mathrm{ker}(K)$, then $K$ is in the space generated by $L_1, ..., L_n$. First prove it when `E` is finite dimensional as a private lemma. Factors out the fact that lifting a product map to a quotient is the same as taking the product of lifts. ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/Dual.lean + theorem FiniteDimensional.mem_span_of_iInf_ker_le_ker + theorem mem_span_of_iInf_ker_le_ker Modified Mathlib/LinearAlgebra/Quotient.lean + theorem Submodule.pi_liftQ_eq_liftQ_pi 2024-10-08 07:22:36 f649931 chore(Order/InitialSeg): `PrincipalSeg.down` → `PrincipalSeg.mem_range_iff_rel` (#17516) The former name was a bit too obscure. Note that this swaps the order of the lemma. This is a breaking change, but a pretty minor and easy to fix one at that. ESTIMATED CHANGES Modified Mathlib/Order/InitialSeg.lean + theorem PrincipalSeg.mem_range_iff_rel + theorem PrincipalSeg.mem_range_of_rel_top +/- theorem PrincipalSeg.subrelIso_apply Modified Mathlib/SetTheory/Cardinal/Ordinal.lean Modified Mathlib/SetTheory/Ordinal/Basic.lean 2024-10-08 07:22:34 80ab936 chore: add funprop attributes for differentiability of usual functions (#17470) See Zulip thread at https://leanprover.zulipchat.com/#narrow/stream/113489-new-members/topic/Is.20there.20a.20way.20to.20simplify.20the.20proof.20of.20differentiable.3F/near/475104903 ESTIMATED CHANGES Modified Mathlib/Analysis/Calculus/Deriv/Mul.lean Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Deriv.lean 2024-10-08 07:22:33 688ff14 feat: `ring`-based prover for certain inequalities in semirings (#16840) This PR provides automation for proving certain kinds of inequalities in commutative semirings: goals of the form `A ≤ B` and `A < B` for which the ring-normal forms of `A` and `B` differ by a nonnegative (resp. positive) constant. For example, `⊢ x + 3 + y < y + x + 4` is in scope because the normal forms of the LHS and RHS are, respectively, `3 + (x + y)` and `4 + (x + y)`, which differ by a constant. This automation is not intended to be user-facing. Rather, it will serve as the discharger tactic for the `linear_combination` tactic on inequality goals. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Lean/Expr/Basic.lean + def Lean.Expr.lt? Modified Mathlib/Tactic.lean Modified Mathlib/Tactic/NormNum/Ineq.lean Added Mathlib/Tactic/Ring/Compare.lean + inductive Mathlib.Tactic.Ring.ExceptType + theorem Mathlib.Tactic.Ring.add_le_add_right + theorem Mathlib.Tactic.Ring.add_le_of_nonpos_left + theorem Mathlib.Tactic.Ring.add_lt_add_right + theorem Mathlib.Tactic.Ring.add_lt_of_neg_left + def Mathlib.Tactic.Ring.evalLE + def Mathlib.Tactic.Ring.evalLT + theorem Mathlib.Tactic.Ring.le_add_of_nonneg_left + theorem Mathlib.Tactic.Ring.le_congr + theorem Mathlib.Tactic.Ring.lt_add_of_pos_left + theorem Mathlib.Tactic.Ring.lt_congr + def Mathlib.Tactic.Ring.proveLE + def Mathlib.Tactic.Ring.proveLT Modified scripts/nolints.json Added test/ring_compare.lean 2024-10-08 06:33:48 557ff74 chore(SetTheory/Cardinal/Ordinal): remove 200 line porting note (#17480) As the porting note itself explains, this code can't be used in Lean 4. I'd love to discuss what can be done to add this functionality back. But for the moment, this is taking up a lot of space in a file dangerously close to the 1.5k line limit. ESTIMATED CHANGES Modified Mathlib/SetTheory/Cardinal/Basic.lean + theorem Cardinal.one_lt_two Modified Mathlib/SetTheory/Cardinal/Ordinal.lean 2024-10-08 06:33:47 f082d6e chore: more coherent lemma names between `nhds` and `nhdsWithin` (#17432) Currently, we have lemmas `eventually_eventually_nhds` and `eventually_nhdsWithin_nhdsWithin`, which correspond to each other. Rename the latter to `eventually_eventually_nhdsWithin` for coherence. Also, we have `eventually_mem_nhds` and `eventually_mem_nhdsWithin`, which have completely different contents. To lift the bad correspondence, rename `eventually_mem_nhds` to `eventually_mem_nhds_iff`, and add a corresponding lemma `eventually_mem_nhdsWithin_iff`. ESTIMATED CHANGES Modified Mathlib/Analysis/Calculus/ContDiff/Defs.lean Modified Mathlib/Analysis/Calculus/FDeriv/Basic.lean Modified Mathlib/Analysis/Complex/RemovableSingularity.lean Modified Mathlib/Geometry/Manifold/Complex.lean Modified Mathlib/Geometry/Manifold/ContMDiff/Defs.lean Modified Mathlib/Geometry/Manifold/IntegralCurve.lean Modified Mathlib/Topology/Basic.lean - theorem eventually_mem_nhds + theorem eventually_mem_nhds_iff Modified Mathlib/Topology/ContinuousOn.lean + theorem eventually_eventually_nhdsWithin + theorem eventually_mem_nhdsWithin_iff - theorem eventually_nhdsWithin_nhdsWithin 2024-10-08 06:33:44 408a934 feat: `Matrix.trace_units_conj` (#17112) This matches `Matrix.det_units_conj` and friends. This doesn't actually help for the case of invertible matrices indexed by different indices, but is handy for square ones. ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/Matrix/NonsingularInverse.lean + theorem Matrix.trace_conj' + theorem Matrix.trace_conj Modified Mathlib/LinearAlgebra/Matrix/Trace.lean + theorem Matrix.trace_units_conj' + theorem Matrix.trace_units_conj 2024-10-08 06:33:43 8f68ff9 feat: `LawfulOrd` and `LinearOrder` (#12082) - [x] depends on: #12068 - [x] depends on: leanprover/std4#730 This adds the necessary instances for types from Mathlib to play well with the new classes from Std. This solves one of the `mathlibSorry`'s from the [EmptyHexagon project](https://github.com/bsubercaseaux/EmptyHexagonLean/blob/98dee70a01acc111977bc8f9c369c59a922221d7/Lean/Geo/ToMathlib.lean#L217-L219). ESTIMATED CHANGES Modified Mathlib/Data/Prod/Lex.lean + theorem Ord.lex_eq + theorem Prod.Lex.compare_def + theorem lexOrd_eq Modified Mathlib/Order/Defs.lean + theorem cmp_eq_compare + theorem cmp_eq_compareOfLessAndEq Modified Mathlib/Order/Synonym.lean Modified Mathlib/Order/ULift.lean + theorem ULift.down_beq + theorem ULift.up_beq 2024-10-08 06:00:42 874fa83 chore(Util/Superscript): make partitionPoint total (#17509) incidentally avoiding a linter complaint from #10235. ESTIMATED CHANGES Modified Mathlib/Util/Superscript.lean + def Mathlib.Tactic.Superscript.partitionPoint 2024-10-08 06:00:41 c645c37 chore(FunProp/RefinedDiscTree): reduce Inhabited -> Nonempty (#17505) Found by the linter in #10235. ESTIMATED CHANGES Modified Mathlib/Tactic/FunProp/RefinedDiscrTree.lean 2024-10-08 06:00:40 047e0c4 chore(EllipticCurve/NormalForms): remove superfluous use of DecidableEq (#17502) Found by the linter in #10235. ESTIMATED CHANGES Modified Mathlib/AlgebraicGeometry/EllipticCurve/NormalForms.lean +/- def WeierstrassCurve.toCharTwoNF 2024-10-08 06:00:39 0a50ce4 chore: add the number of docPrime exceptions as a tech debt metric (#17495) ESTIMATED CHANGES Modified scripts/technical-debt-metrics.sh 2024-10-08 06:00:38 25093e9 chore: bump lean4checker to v4.13.0-rc3 (#17487) I think that there might be further issues with `lake build`, but this change seems at least needed. I am hoping that #17486 tests this. ESTIMATED CHANGES Modified .github/workflows/lean4checker.yml 2024-10-08 06:00:36 7138640 feat: strengthen `instTotallyDisconnectedSpaceOfIsUltrametricDist` to `TotallySeparatedSpace` (#17427) Rename the file it's in to `TotallySeparated`. Also add two lemmas `isClopen_of_disjoint_cover_open` and `totallySeparatedSpace_iff_exists_isClopen`. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Topology/Clopen.lean + theorem isClopen_of_disjoint_cover_open Modified Mathlib/Topology/Connected/TotallyDisconnected.lean + theorem totallySeparatedSpace_iff_exists_isClopen Deleted Mathlib/Topology/MetricSpace/Ultra/TotallyDisconnected.lean Added Mathlib/Topology/MetricSpace/Ultra/TotallySeparated.lean 2024-10-08 04:14:36 3693fb2 chore: remove `adaptation_note`s from leanprover/lean4#5376 (#17508) With the change to the construction of the synthesis order algorithm, we want to avoid searches with metavariables by specifying more `outParam`s. ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Submonoid/Basic.lean Modified Mathlib/Algebra/Group/Subsemigroup/Basic.lean Modified Mathlib/Algebra/Homology/HomotopyCategory/Triangulated.lean Modified Mathlib/Algebra/Order/Group/Cone.lean Modified Mathlib/Algebra/Ring/Subsemiring/Basic.lean Modified Mathlib/AlgebraicGeometry/ProjectiveSpectrum/Scheme.lean Modified Mathlib/GroupTheory/GroupAction/Quotient.lean Modified Mathlib/Order/SuccPred/LinearLocallyFinite.lean 2024-10-08 02:27:53 2e8a2b2 feat(Analysis/Convex): Birkhoff's theorem and doubly stochastic matrices (#16278) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/Convex/Birkhoff.lean + theorem doublyStochastic_eq_convexHull_permMatrix + theorem exists_eq_sum_perm_of_mem_doublyStochastic Added Mathlib/Data/Matrix/DoublyStochastic.lean + theorem convex_doublyStochastic + def doublyStochastic + theorem exists_mem_doublyStochastic_eq_smul_iff + theorem le_one_of_mem_doublyStochastic + theorem mem_doublyStochastic + theorem mem_doublyStochastic_iff_sum + theorem mulVec_one_of_mem_doublyStochastic + theorem nonneg_of_mem_doublyStochastic + theorem one_vecMul_of_mem_doublyStochastic + theorem permMatrix_mem_doublyStochastic + theorem sum_col_of_mem_doublyStochastic + theorem sum_row_of_mem_doublyStochastic 2024-10-07 22:13:41 dde8da6 feat: `c * a / (c * b) ≤ a / b` (#17506) ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Field/Defs.lean + theorem le_mul_div_mul_left + theorem le_mul_div_mul_right + theorem mul_div_mul_left_le + theorem mul_div_mul_right_le 2024-10-07 20:10:02 a239b95 chore(*): drop some `[Decidable*]` assumptions (#17396) Related to #10235. ESTIMATED CHANGES Modified Mathlib/Algebra/MvPolynomial/PDeriv.lean +/- theorem MvPolynomial.pderiv_rename Modified Mathlib/NumberTheory/JacobiSum/Basic.lean +/- theorem exists_jacobiSum_eq_neg_one_add 2024-10-07 20:10:01 312b622 feat(FieldTheory/Minpoly): add theorem for minpoly of -x (#17367) Add theorem `minpoly A (- x) = (-1) ^ (natDegree (minpoly A x)) * (minpoly A x).comp (- X)` ESTIMATED CHANGES Modified Mathlib/Algebra/Polynomial/RingDivision.lean + theorem Polynomial.Monic.neg_one_pow_natDegree_mul_comp_neg_X + theorem Polynomial.comp_neg_X_leadingCoeff_eq Modified Mathlib/FieldTheory/Minpoly/Field.lean + theorem minpoly.neg Modified Mathlib/RingTheory/IntegralClosure/Algebra/Basic.lean + theorem IsIntegral.neg_iff + theorem IsIntegral.of_neg + theorem RingHom.IsIntegralElem.neg_iff + theorem RingHom.IsIntegralElem.of_neg 2024-10-07 17:59:29 3ce877a chore(DomMulAct): remove decidability assumptions (#17510) Found by the linter in #10235. ESTIMATED CHANGES Modified Mathlib/GroupTheory/Perm/DomMulAct.lean +/- theorem DomMulAct.stabilizer_card 2024-10-07 17:59:28 4c46b67 chore(RamificationInertia): remove superfluous DecidableEq (#17501) Found by the linter in #10235. ESTIMATED CHANGES Modified Mathlib/NumberTheory/RamificationInertia.lean +/- theorem Ideal.ramificationIdx_algebra_tower +/- theorem Ideal.ramificationIdx_tower 2024-10-07 17:59:27 ed3c052 chore(Condensed): fix typos in docstrings (#17497) ESTIMATED CHANGES Modified Mathlib/Condensed/Discrete/Module.lean 2024-10-07 17:59:25 ae8a2a1 feat(Algebra/Order/BigOperators/Group/*): `max_prod_le`, `prod_min_le` (#17496) `List`, `Multiset`, `Finset` : `max_prod_le`, `max_sum_le`, `prod_min_le`, `prod_sum_le` ESTIMATED CHANGES Modified Mathlib/Algebra/Order/BigOperators/Group/Finset.lean + theorem Finset.max_prod_le + theorem Finset.prod_min_le Modified Mathlib/Algebra/Order/BigOperators/Group/List.lean + theorem List.max_prod_le + theorem List.prod_min_le Modified Mathlib/Algebra/Order/BigOperators/Group/Multiset.lean + theorem Multiset.max_prod_le + theorem Multiset.prod_min_le 2024-10-07 17:59:24 4c163af chore(Mathlib/Data/Nat/Defs): remove `Nat.add_def` (#17488) ... since this is a duplicate of `Nat.add_eq`. Drive-by: clean up a proof where add_def was used a bit. ESTIMATED CHANGES Modified Mathlib/Data/Nat/Defs.lean - theorem Nat.add_def Modified Mathlib/NumberTheory/Padics/RingHoms.lean 2024-10-07 17:59:23 6fc3b64 chore(Topology): rename some `prod_map`/`prod` to `prodMap` (#17472) Also - replace some proofs by `fun_prop` - use `Prod.map` instead of an inline lambda in some lemmas - fix `to_additive` name for `ContinuousAddMonoidHom.prod` and `ContinuousAddMonoidHom.prodMap` (were `sum` and `sum_map`). ESTIMATED CHANGES Modified Counterexamples/SorgenfreyLine.lean Modified Mathlib/Analysis/Calculus/FDeriv/Comp.lean Modified Mathlib/Analysis/Calculus/FDeriv/Equiv.lean Modified Mathlib/Analysis/InnerProductSpace/Basic.lean Modified Mathlib/Analysis/Normed/Module/Completion.lean Modified Mathlib/Analysis/NormedSpace/Multilinear/Basic.lean Modified Mathlib/Analysis/SpecialFunctions/Pow/Continuity.lean Modified Mathlib/Dynamics/TopologicalEntropy/DynamicalEntourage.lean Modified Mathlib/Geometry/Manifold/SmoothManifoldWithCorners.lean Modified Mathlib/MeasureTheory/Constructions/Polish/Basic.lean Modified Mathlib/Topology/Algebra/ContinuousMonoidHom.lean + def ContinuousMonoidHom.prodMap - def ContinuousMonoidHom.prod_map Modified Mathlib/Topology/Algebra/Group/Basic.lean Modified Mathlib/Topology/Algebra/Module/Basic.lean Modified Mathlib/Topology/Algebra/Monoid.lean Modified Mathlib/Topology/Algebra/MulAction.lean Modified Mathlib/Topology/Algebra/Order/Floor.lean Modified Mathlib/Topology/Algebra/ProperAction.lean Modified Mathlib/Topology/Algebra/ProperConstSMul.lean Modified Mathlib/Topology/Algebra/UniformGroup.lean +/- theorem IsDenseInducing.extend_Z_bilin Modified Mathlib/Topology/Algebra/UniformRing.lean Modified Mathlib/Topology/CompactOpen.lean Modified Mathlib/Topology/Connected/PathConnected.lean Modified Mathlib/Topology/Constructions.lean + theorem Continuous.prodMap - theorem Continuous.prod_map + theorem ContinuousAt.prodMap' + theorem ContinuousAt.prodMap - theorem ContinuousAt.prod_map' - theorem ContinuousAt.prod_map + theorem DenseRange.prodMap - theorem DenseRange.prod_map + theorem Embedding.prodMap - theorem Embedding.prod_map + theorem Inducing.prodMap - theorem Inducing.prod_map Modified Mathlib/Topology/ContinuousMap/Algebra.lean Modified Mathlib/Topology/ContinuousMap/Basic.lean Modified Mathlib/Topology/DenseEmbedding.lean Modified Mathlib/Topology/FiberBundle/Constructions.lean Modified Mathlib/Topology/Homeomorph.lean Modified Mathlib/Topology/Homotopy/HomotopyGroup.lean Modified Mathlib/Topology/Inseparable.lean +/- theorem SeparationQuotient.quotientMap_prodMap_mk Modified Mathlib/Topology/Instances/ENNReal.lean Modified Mathlib/Topology/Instances/EReal.lean Modified Mathlib/Topology/Instances/Rat.lean Modified Mathlib/Topology/Maps/Proper/Basic.lean + theorem IsProperMap.prodMap - theorem IsProperMap.prod_map Modified Mathlib/Topology/Order/OrderClosed.lean Modified Mathlib/Topology/Separation.lean Modified Mathlib/Topology/UniformSpace/AbstractCompletion.lean Modified Mathlib/Topology/UniformSpace/Basic.lean + theorem UniformContinuous.prodMap - theorem UniformContinuous.prod_map Modified Mathlib/Topology/UniformSpace/Compact.lean Modified Mathlib/Topology/UniformSpace/Completion.lean Modified test/Continuity.lean 2024-10-07 17:59:22 847ce65 feat: supremum of directed indicators (#17467) ... is indicator of the suprema From GibbsMeasure ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Group/Indicator.lean + theorem Set.iSup_mulIndicator + theorem Set.mulIndicator_le_mulIndicator_apply_of_subset +/- theorem Set.mulIndicator_le_mulIndicator_of_subset + theorem Set.mulIndicator_mono 2024-10-07 17:59:20 e1fa7e2 feat: multiplying an indicator by a constant (#17466) From GibbsMeasure ESTIMATED CHANGES Modified Mathlib/Algebra/GroupWithZero/Indicator.lean + theorem Set.indicator_const_mul + theorem Set.indicator_mul_const 2024-10-07 17:59:19 5151ec1 feat(RingTheory/Ideal/Operations): drop `IsDedekindDomain` assumptions of some lemmas and move them to `Ideal/Operations.lean` (#17460) Drop `[IsDedekindDomain R]` assumptions of some lemmas about ideal pow le a prime ideal and move them to `RingTheory/Ideal/Operations.lean`. Also add a lemma about product of elements in a prime ideal. ESTIMATED CHANGES Modified Mathlib/RingTheory/DedekindDomain/Ideal.lean - theorem Ideal.le_of_pow_le_prime - theorem Ideal.pow_le_prime_iff - theorem Ideal.prod_le_prime Modified Mathlib/RingTheory/Ideal/Operations.lean + theorem Ideal.IsPrime.le_of_pow_le + theorem Ideal.IsPrime.pow_le_iff + theorem Ideal.IsPrime.prod_mem_iff 2024-10-07 17:59:18 4d57c2c feat: Noetherian/Artinian is closed under extensions (submodule form) (#17425) + Add `isNoetherian/Artinian_iff_submodule_quotient`. + Remove unnecessary assumptions from `isArtinian_of_range_eq_ker`, mimicking #12453. + Move up two instances `isArtinian_of_quotient_of_artinian` and `isNoetherian_of_finite`. + Golf `isNoetherian/Artinian_pi`. ESTIMATED CHANGES Modified Mathlib/RingTheory/Artinian.lean + theorem isArtinian_iff_submodule_quotient Modified Mathlib/RingTheory/Noetherian.lean + theorem isNoetherian_iff_submodule_quotient 2024-10-07 17:59:16 10671b2 chore: generalise lemmas from `OrderedSemiring` to `MonoidWithZero` (#17412) and add the `₀` to follow the naming convention ESTIMATED CHANGES Modified Archive/Imo/Imo1962Q1.lean Modified Archive/Wiedijk100Theorems/AbelRuffini.lean Modified Archive/Wiedijk100Theorems/SumOfPrimeReciprocalsDiverges.lean Modified Mathlib/Algebra/Order/Field/Basic.lean Modified Mathlib/Algebra/Order/GroupWithZero/Canonical.lean - theorem mul_le_one₀ Modified Mathlib/Algebra/Order/GroupWithZero/Unbundled.lean + theorem le_self_pow₀ - theorem mul_le_one + theorem mul_le_one₀ + theorem one_le_pow₀ + theorem one_lt_pow₀ + theorem pow_le_one₀ + theorem pow_le_pow_right₀ + theorem pow_lt_one₀ + theorem pow_right_mono₀ + theorem zero_pow_le_one Modified Mathlib/Algebra/Order/Interval/Set/Instances.lean Modified Mathlib/Algebra/Order/Ring/Basic.lean - theorem le_self_pow - theorem one_le_pow₀ - theorem one_lt_pow₀ - theorem pow_le_one₀ - theorem pow_le_pow_right - theorem pow_lt_one₀ - theorem pow_right_mono - theorem zero_pow_le_one Modified Mathlib/Algebra/Polynomial/Degree/CardPowDegree.lean Modified Mathlib/AlgebraicTopology/FundamentalGroupoid/Basic.lean Modified Mathlib/Analysis/Analytic/Composition.lean Modified Mathlib/Analysis/Convex/Between.lean Modified Mathlib/Analysis/Distribution/SchwartzSpace.lean Modified Mathlib/Analysis/Fourier/FourierTransformDeriv.lean Modified Mathlib/Analysis/LocallyConvex/BalancedCoreHull.lean Modified Mathlib/Analysis/Normed/Field/UnitBall.lean Modified Mathlib/Analysis/PSeries.lean Modified Mathlib/Analysis/SpecialFunctions/Pow/Continuity.lean Modified Mathlib/Analysis/SpecificLimits/Basic.lean Modified Mathlib/Analysis/SpecificLimits/FloorPow.lean Modified Mathlib/Combinatorics/SetFamily/Kleitman.lean Modified Mathlib/Combinatorics/SimpleGraph/Density.lean Modified Mathlib/Combinatorics/SimpleGraph/Regularity/Chunk.lean Modified Mathlib/Combinatorics/SimpleGraph/Regularity/Lemma.lean Modified Mathlib/Computability/Ackermann.lean Modified Mathlib/Data/Complex/Exponential.lean Modified Mathlib/Data/ENNReal/Inv.lean Modified Mathlib/Data/Nat/Choose/Factorization.lean Modified Mathlib/Data/Real/Pi/Bounds.lean Modified Mathlib/Data/Real/Pi/Irrational.lean Modified Mathlib/NumberTheory/Bertrand.lean Modified Mathlib/NumberTheory/ClassNumber/AdmissibleCardPowDegree.lean Modified Mathlib/NumberTheory/FermatPsp.lean Modified Mathlib/NumberTheory/Liouville/LiouvilleNumber.lean Modified Mathlib/NumberTheory/Padics/Hensel.lean Modified Mathlib/NumberTheory/Padics/PadicIntegers.lean Modified Mathlib/Order/Filter/AtTopBot/Ring.lean Modified Mathlib/Probability/StrongLaw.lean Modified Mathlib/Topology/Algebra/PontryaginDual.lean Modified Mathlib/Topology/UnitInterval.lean 2024-10-07 17:59:15 6c2b2f4 chore: some more cdots (#17402) ESTIMATED CHANGES Modified Mathlib/Analysis/Calculus/FDeriv/Analytic.lean Modified Mathlib/Data/Int/WithZero.lean Modified Mathlib/Geometry/RingedSpace/PresheafedSpace/Gluing.lean Modified Mathlib/GroupTheory/GroupAction/Quotient.lean 2024-10-07 17:59:14 71c3520 feat(Data/Set): monotonicity on insert (#17086) ESTIMATED CHANGES Modified Mathlib/Data/Set/Monotone.lean + theorem Set.AntitoneOn_insert_iff + theorem Set.MonotoneOn_insert_iff + theorem strictAntiOn_insert_iff + theorem strictMonoOn_insert_iff 2024-10-07 17:59:13 44c18bb chore(SetTheory/Cardinal/Ordinal): deprecate `ord_aleph_eq_enum_card` and friends (#17077) See [Zulip](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/Deprecate.20.60ord_aleph'_eq_enum_card.60/near/472441290). ESTIMATED CHANGES Modified Mathlib/SetTheory/Cardinal/Ordinal.lean 2024-10-07 17:59:11 8d75be4 refactor(SetTheory/Ordinal/Arithmetic): change `mk_initialSeg` to work with `Set.Iio` (#16929) change `mk_initialSeg` to work with `Set.Iio` and rename it `mk_Iio_ordinal`. ESTIMATED CHANGES Modified Mathlib/SetTheory/Ordinal/Arithmetic.lean + theorem Ordinal.mk_Iio_ordinal + theorem Ordinal.typein_ordinal Modified Mathlib/SetTheory/Ordinal/FixedPointApproximants.lean 2024-10-07 17:59:10 912f72d feat(SetTheory/Ordinal/Exponential): more lemmas on `Ordinal.log` (#15990) We show multiple variants of `opow_le_iff_le_log` with slightly different assumptions. ESTIMATED CHANGES Modified Mathlib/SetTheory/Ordinal/Exponential.lean + theorem Ordinal.le_log_of_opow_le + theorem Ordinal.lt_log_of_lt_opow + theorem Ordinal.lt_opow_iff_log_lt' + theorem Ordinal.lt_opow_of_log_lt + theorem Ordinal.opow_eq_zero + theorem Ordinal.opow_le_iff_le_log' +/- theorem Ordinal.opow_le_iff_le_log + theorem Ordinal.opow_le_of_le_log 2024-10-07 16:09:55 8b37774 chore: process and remove adaptation_note for nightly-2024-09-06 (#17498) ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Floor.lean Modified Mathlib/Algebra/Ring/Parity.lean Modified Mathlib/Combinatorics/SetFamily/KruskalKatona.lean Modified Mathlib/Combinatorics/SimpleGraph/Regularity/Equitabilise.lean Modified Mathlib/Combinatorics/SimpleGraph/Triangle/Basic.lean Modified Mathlib/Data/Finset/NatDivisors.lean Modified Mathlib/Data/Int/Defs.lean Modified Mathlib/Data/List/Basic.lean Modified Mathlib/Data/List/Chain.lean Modified Mathlib/Data/List/Nodup.lean Modified Mathlib/Data/List/Perm.lean Modified Mathlib/Data/List/Permutation.lean Modified Mathlib/Data/List/Rotate.lean Modified Mathlib/Data/Multiset/Basic.lean Modified Mathlib/Data/Nat/Factorization/Basic.lean Modified Mathlib/Data/Nat/Log.lean Modified Mathlib/Data/Nat/WithBot.lean Modified Mathlib/Data/PFunctor/Univariate/M.lean Modified Mathlib/Logic/Encodable/Basic.lean Modified Mathlib/NumberTheory/Bertrand.lean Modified Mathlib/NumberTheory/Divisors.lean Modified Mathlib/NumberTheory/LegendreSymbol/GaussEisensteinLemmas.lean Modified Mathlib/NumberTheory/SumFourSquares.lean Modified Mathlib/Order/Interval/Finset/Nat.lean Modified Mathlib/RingTheory/MvPolynomial/Symmetric/NewtonIdentities.lean Modified Mathlib/RingTheory/Polynomial/Cyclotomic/Eval.lean 2024-10-07 16:09:54 1b67a7c feat: `Fintype.balance` and complex numbers (#17464) From LeanAPAP ESTIMATED CHANGES Modified Mathlib/Analysis/RCLike/Basic.lean + theorem RCLike.ofReal_balance + theorem RCLike.ofReal_comp_balance Modified Mathlib/Data/Complex/BigOperators.lean + theorem Complex.im_balance + theorem Complex.im_comp_balance + theorem Complex.ofReal_balance + theorem Complex.ofReal_comp_balance + theorem Complex.re_balance + theorem Complex.re_comp_balance 2024-10-07 16:09:52 db788ef feat: `lineMap p₀ (lineMap p₀ p₁ c) d = lineMap p₀ p₁ (d * c)` (#17462) From LeanCamCombi ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/AffineSpace/AffineMap.lean + theorem AffineMap.lineMap_lineMap_left + theorem AffineMap.lineMap_lineMap_right 2024-10-07 16:09:51 af0da37 perf(NumberTheory): speed up some slow declarations (#17395) ESTIMATED CHANGES Modified Mathlib/NumberTheory/Cyclotomic/PrimitiveRoots.lean Modified Mathlib/NumberTheory/NumberField/Discriminant.lean 2024-10-07 14:27:57 5017a68 refactor(LinearAlgebra/Eigenspace): unified definition of (max(gen)?)?Eigenspace (#16025) ESTIMATED CHANGES Modified Mathlib/Algebra/DirectSum/LinearMap.lean Modified Mathlib/Algebra/Lie/TraceForm.lean Modified Mathlib/Algebra/Lie/Weights/Basic.lean Modified Mathlib/Analysis/InnerProductSpace/JointEigenspace.lean Modified Mathlib/LinearAlgebra/Eigenspace/Basic.lean - def Module.End.Eigenvalues.val - def Module.End.Eigenvalues - def Module.End.HasEigenvalue - def Module.End.HasEigenvector - def Module.End.HasGenEigenvalue - def Module.End.HasGenEigenvector + theorem Module.End.HasUnifEigenvalue.exists_hasUnifEigenvector + theorem Module.End.HasUnifEigenvalue.exp_ne_zero + theorem Module.End.HasUnifEigenvalue.isNilpotent_of_isNilpotent + theorem Module.End.HasUnifEigenvalue.le + theorem Module.End.HasUnifEigenvalue.lt + theorem Module.End.HasUnifEigenvalue.mem_spectrum + theorem Module.End.HasUnifEigenvalue.pow + def Module.End.HasUnifEigenvalue + theorem Module.End.HasUnifEigenvector.apply_eq_smul + theorem Module.End.HasUnifEigenvector.hasUnifEigenvalue + theorem Module.End.HasUnifEigenvector.pow_apply + def Module.End.HasUnifEigenvector + def Module.End.UnifEigenvalues.val + def Module.End.UnifEigenvalues + theorem Module.End.disjoint_unifEigenspace - def Module.End.eigenspace +/- theorem Module.End.eigenspace_def +/- theorem Module.End.eigenspace_zero - def Module.End.genEigenrange +/- theorem Module.End.genEigenrange_def +/- theorem Module.End.hasEigenvalue_iff +/- theorem Module.End.hasGenEigenvalue_iff + theorem Module.End.hasUnifEigenvalue_iff_hasUnifEigenvalue_one + theorem Module.End.hasUnifEigenvalue_iff_mem_spectrum + theorem Module.End.iSup_genEigenspace_eq + theorem Module.End.independent_maxGenEigenspace + theorem Module.End.isNilpotent_restrict_maxGenEigenspace_sub_algebraMap + theorem Module.End.isNilpotent_restrict_unifEigenspace_nat + theorem Module.End.isNilpotent_restrict_unifEigenspace_top + theorem Module.End.mapsTo_maxGenEigenspace_of_comm + theorem Module.End.mapsTo_unifEigenspace_of_comm - def Module.End.maxGenEigenspace +/- theorem Module.End.maxGenEigenspace_eq + theorem Module.End.maxUnifEigenspaceIndex_le_finrank +/- theorem Module.End.mem_eigenspace_iff + theorem Module.End.mem_unifEigenspace + theorem Module.End.mem_unifEigenspace_nat + theorem Module.End.mem_unifEigenspace_one + theorem Module.End.mem_unifEigenspace_top + theorem Module.End.mem_unifEigenspace_zero + def Module.End.unifEigenrange + theorem Module.End.unifEigenrange_nat + def Module.End.unifEigenspace + theorem Module.End.unifEigenspace_directed + theorem Module.End.unifEigenspace_div + theorem Module.End.unifEigenspace_eq_iSup_unifEigenspace_nat + theorem Module.End.unifEigenspace_eq_unifEigenspace_finrank_of_le + theorem Module.End.unifEigenspace_eq_unifEigenspace_maxUnifEigenspaceIndex_of_le + theorem Module.End.unifEigenspace_le_unifEigenspace_finrank + theorem Module.End.unifEigenspace_le_unifEigenspace_maxUnifEigenspaceIndex + theorem Module.End.unifEigenspace_nat + theorem Module.End.unifEigenspace_one + theorem Module.End.unifEigenspace_top + theorem Module.End.unifEigenspace_top_eq_maxUnifEigenspaceIndex + theorem Module.End.unifEigenspace_zero + theorem Module.End.unifEigenspace_zero_nat Modified Mathlib/LinearAlgebra/Eigenspace/Minpoly.lean Modified Mathlib/LinearAlgebra/Eigenspace/Triangularizable.lean Modified Mathlib/Order/Hom/Basic.lean + def WithBot.coeOrderHom + def WithTop.coeOrderHom Modified Mathlib/RingTheory/Nilpotent/Lemmas.lean +/- theorem Module.End.isNilpotent.restrict + theorem Module.End.isNilpotent_restrict_of_le 2024-10-07 13:31:24 d60a436 fix: comment more cache (#17491) The previous fix was an improvement, but was not aggressive enough in commenting the failing step. This step used to use `cache` to download the cache for `Mathlib.Init`. If this was successful, then it would continue trying to download all of the available cache. Otherwise, it would start with building. The underlying reason is that if even the cache for `Mathlib.Init` is not there, there is not much of an available cache and there is no need to spend a couple of minutes realizing as much. However, changes to `lake build --no-buld` (possibly) have made this step always fail to download any cache, so we revert to the old behaviour of trying to get the cache no matter what. ESTIMATED CHANGES Modified .github/build.in.yml Modified .github/workflows/bors.yml Modified .github/workflows/build.yml Modified .github/workflows/build_fork.yml 2024-10-07 13:31:23 2611c37 chore: remove more vars (#17489) ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Hom/CompTypeclasses.lean Modified Mathlib/Algebra/Order/Group/MinMax.lean Modified Mathlib/Algebra/Order/Sub/Unbundled/Hom.lean Modified Mathlib/Algebra/Ring/Equiv.lean Modified Mathlib/CategoryTheory/Groupoid/FreeGroupoid.lean Modified Mathlib/CategoryTheory/SmallObject/Iteration.lean Modified Mathlib/Data/List/Basic.lean Modified Mathlib/Data/List/Lattice.lean Modified Mathlib/Data/List/Nodup.lean Modified Mathlib/Order/Booleanisation.lean Modified Mathlib/Order/Hom/Set.lean Modified Mathlib/Order/Interval/Set/UnorderedInterval.lean Modified Mathlib/Tactic/CategoryTheory/Bicategory/Datatypes.lean 2024-10-07 13:31:21 40436c4 chore(CategoryTheory/Adjunction): deduplicate API for uniqueness of adjoints (#17113) Removes some API from the file `Adjunction.Unique` which was a duplicate of API from `Adjunction.Mates` ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Adjunction/Basic.lean Modified Mathlib/CategoryTheory/Adjunction/Mates.lean Modified Mathlib/CategoryTheory/Adjunction/Unique.lean - def CategoryTheory.Adjunction.natIsoEquiv - def CategoryTheory.Adjunction.natTransEquiv - theorem CategoryTheory.Adjunction.natTransEquiv_comp - theorem CategoryTheory.Adjunction.natTransEquiv_comp_symm - theorem CategoryTheory.Adjunction.natTransEquiv_id - theorem CategoryTheory.Adjunction.natTransEquiv_id_symm 2024-10-07 13:31:20 685ce1b chore(Data/Finset): subset_image_iff about finsets (#17036) State `subset_image_iff` for finsets, and rename the existing set/finset version to a more appropriate name. Also make the analogous change for image2 ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Pointwise/Finset/Basic.lean Modified Mathlib/Data/Finset/Image.lean +/- theorem Finset.subset_image_iff + theorem Finset.subset_set_image_iff Modified Mathlib/Data/Finset/NAry.lean - theorem Finset.subset_image₂ + theorem Finset.subset_set_image₂ Modified Mathlib/Data/Finset/Preimage.lean Modified Mathlib/Data/Finset/Sups.lean Modified Mathlib/Data/Set/Finite.lean Modified Mathlib/RingTheory/Finiteness.lean 2024-10-07 12:39:02 78b3a02 fix: resolve ofNat vs natCast confusion in a Fin lemma (#17422) ESTIMATED CHANGES Modified Mathlib/Data/Fin/Basic.lean + theorem Fin.coe_natCast_eq_mod Modified Mathlib/Logic/Equiv/Fin.lean 2024-10-07 11:43:33 b53b6c3 chore: remove some unused variables (#17479) ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/Basic.lean Modified Mathlib/Algebra/Group/Action/Opposite.lean Modified Mathlib/Algebra/Order/Floor/Div.lean Modified Mathlib/Algebra/Order/Monoid/Canonical/Defs.lean Modified Mathlib/Algebra/Order/Sub/Defs.lean Modified Mathlib/Algebra/Ring/Action/Basic.lean Modified Mathlib/Algebra/Ring/Units.lean Modified Mathlib/Analysis/Normed/Group/Seminorm.lean Modified Mathlib/CategoryTheory/ConcreteCategory/Bundled.lean Modified Mathlib/Combinatorics/Enumerative/DoubleCounting.lean Modified Mathlib/Computability/Primrec.lean Modified Mathlib/Control/Lawful.lean Modified Mathlib/Control/ULift.lean Modified Mathlib/Data/List/Monad.lean Modified Mathlib/LinearAlgebra/BilinearMap.lean Modified Mathlib/RingTheory/NonUnitalSubring/Basic.lean Modified Mathlib/Topology/Constructions.lean 2024-10-07 11:43:32 bb5f02d feat: `fun x ↦ (x ⊓ z, x ⊔ z)` is StrictMono in ModularLattice (#17457) In the proof of `wellFounded_lt_exact_sequence`, it is implicitly shown that `fun x : α ↦ (x ⊓ z, x ⊔ z)` is StrictMono in a modular lattice, with the lexicographic order on `α × α`. Here we show the stronger result with `α × α` equipped with the product order, and golf the proof. If `G` is not an abelian group, then `α = Subgroup G` is not necessarily a modular lattice. However, if `z` is a normal subgroup, the result still holds true. We prove a closely related result `strictMono_comap_prod_map` which replaces `inf` with `comap` and `sup` with `map`, so it concerns a function to `Subgroup z × Subgroup (G ⧸ z)` instead. The same result for submodules immediately implies that Noetherian/Artinian are closed under extensions, which is proven in #17425 using `wellFounded_lt/gt_exact_sequence`. If `z` is not even normal, the function to `Subgroup z × Set (G ⧸ z)` is still StrictMono. ESTIMATED CHANGES Modified Mathlib/GroupTheory/Coset/Basic.lean + theorem QuotientGroup.strictMono_comap_prod_image Modified Mathlib/GroupTheory/QuotientGroup/Basic.lean + theorem QuotientGroup.strictMono_comap_prod_map Modified Mathlib/LinearAlgebra/Quotient.lean +/- theorem Submodule.mkQ_surjective + theorem Submodule.strictMono_comap_prod_map Modified Mathlib/Order/ModularLattice.lean + theorem strictMono_inf_prod_sup 2024-10-07 11:43:30 c8a595b fix: add back `List.decidableInfix` (#17420) This was deleted [in the bump to Lean v4.12.0](https://github.com/leanprover-community/mathlib4/pull/16433/files#r1787921652) in #16433, but was not actually upstreamed. I tweaked the proof slightly to not mention the instance names. ESTIMATED CHANGES Modified Mathlib/Data/List/Infix.lean 2024-10-07 11:43:29 fcafb6d feat(Data/List/Chain): lemmas on `Chain'` and `replicate` (#17106) ESTIMATED CHANGES Modified Mathlib/Data/List/Chain.lean + theorem List.chain'_eq_iff_eq_replicate + theorem List.chain'_replicate_of_rel + theorem List.chain_eq_iff_eq_replicate + theorem List.chain_replicate_of_rel 2024-10-07 11:34:31 140847a CI: temporary fix to CI not finding cache (#17490) ESTIMATED CHANGES Modified .github/build.in.yml Modified .github/workflows/bors.yml Modified .github/workflows/build.yml Modified .github/workflows/build_fork.yml 2024-10-07 10:11:58 2eaa58a feat(LinearAlgebra/Matrix/GeneralLinearGroup): add lemmas on hom induced from a ring hom (#17433) This PR adds some basic lemmas on the hom between GL(n)s induced from a ring hom to LinearAlgebra.Matrix.GeneralLinearGroup.Defs.lean . Used in project Formalization of the Bruhat-Tits Tree. ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/Matrix/GeneralLinearGroup/Defs.lean + theorem Matrix.GeneralLinearGroup.coe_map_inv_mul_map + theorem Matrix.GeneralLinearGroup.coe_map_mul_map_inv + theorem Matrix.GeneralLinearGroup.map_inv_mul_map + theorem Matrix.GeneralLinearGroup.map_mul_map_inv 2024-10-07 10:11:57 b18f6b5 feat(Data/Finsupp/Defs): `induction_on_max` (#16061) A finitely supported function can be built in ascending or descending order of "degree". ESTIMATED CHANGES Modified Mathlib/Data/Finsupp/Defs.lean + theorem Finsupp.induction_on_max + theorem Finsupp.induction_on_max₂ + theorem Finsupp.induction_on_min + theorem Finsupp.induction_on_min₂ 2024-10-07 09:08:05 cbe02ad feat: in separable Borel spaces, convergence in distribution is metrizable (not just pseudometrizable) (#15478) In earlier PRs it was shown that the Lévy-Prokhorov distance pseudometrizes the convergence in distribution (i.e. weak convergence of probability measures) on separable pseudometric spaces. This PR strengthens the conclusion: the LP distance on probability measures on Borel spaces is a metric (not just a pseudometric), and therefore in separable Borel spaces, convergence in distribution is metrizable (not just pseudometrizable). ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Measure/LevyProkhorovMetric.lean + theorem MeasureTheory.LevyProkhorov.continuous_equiv_probabilityMeasure + theorem MeasureTheory.LevyProkhorov.continuous_equiv_symm_probabilityMeasure - theorem MeasureTheory.LevyProkhorov.continuous_toProbabilityMeasure + def MeasureTheory.LevyProkhorov.equiv - def MeasureTheory.LevyProkhorov.finiteMeasure - def MeasureTheory.LevyProkhorov.toProbabilityMeasure - theorem MeasureTheory.ProbabilityMeasure.continuous_toLevyProkhorov - def MeasureTheory.ProbabilityMeasure.toLevyProkhorov +/- theorem MeasureTheory.SeparableSpace.exists_measurable_partition_diam_le +/- def MeasureTheory.homeomorph_probabilityMeasure_levyProkhorov +/- theorem MeasureTheory.levyProkhorov_eq_convergenceInDistribution + theorem MeasureTheory.measure_eq_measure_of_levyProkhorovEDist_eq_zero_of_isClosed + theorem MeasureTheory.measure_le_measure_closure_of_levyProkhorovEDist_eq_zero 2024-10-07 08:00:09 e260f25 feat(CategoryTheory): variants of `Functor.flipCompEvaluation` (#17407) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Functor/Currying.lean Modified Mathlib/CategoryTheory/Monoidal/Category.lean Modified Mathlib/CategoryTheory/Products/Basic.lean + def CategoryTheory.compEvaluation + theorem CategoryTheory.comp_evaluation + theorem CategoryTheory.flip_comp_evaluation 2024-10-07 06:54:57 3ee779f chore(SetTheory/Ordinal/Basic): remove simps from `enumIsoToType` (#16907) Since lemmas like [`Ordinal.enum_lt_enum`](https://leanprover-community.github.io/mathlib4_docs/Mathlib/SetTheory/Ordinal/Basic.html#Ordinal.enum_lt_enum) can't be made into `simp` lemmas, we actually *lose* `simp` capability by having the `simps` attribute here. This was breaking some proofs in my nimber project. ESTIMATED CHANGES Modified Mathlib/SetTheory/Ordinal/Basic.lean 2024-10-07 05:52:40 0ae0531 feat: a reflexive vector space (in the purely algebraic sense) is finite dimensional (#17456) ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/Dual.lean 2024-10-07 05:52:39 a014dc6 chore(CategoryTheory): generalize instances for limits of bifunctors (#17439) Also add a lemma about evaluating `colimit.map` into an element included into a colimit of a `Type`-valued bifunctor. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Limits/FunctorCategory/Basic.lean Modified Mathlib/CategoryTheory/Limits/FunctorToTypes.lean + theorem CategoryTheory.FunctorToTypes.colimit.map_ι_apply +/- theorem CategoryTheory.FunctorToTypes.jointly_surjective' +/- theorem CategoryTheory.FunctorToTypes.jointly_surjective 2024-10-07 04:38:10 e7484e6 feat(CategoryTheory): `map_yonedaEquiv` (#17438) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Yoneda.lean + theorem CategoryTheory.map_coyonedaEquiv + theorem CategoryTheory.map_yonedaEquiv' + theorem CategoryTheory.map_yonedaEquiv 2024-10-06 20:06:17 3d637ce chore(Order/Heyting/Hom): remove left-over TODO (#17475) This is already present. ESTIMATED CHANGES Modified Mathlib/Order/Heyting/Hom.lean 2024-10-06 19:08:01 54d30b7 feat: add `Finset.cons_swap` (#17413) ``` (s.cons a _).cons b _ = (s.cons b _).cons a _ ``` ESTIMATED CHANGES Modified Mathlib/Data/Finset/Basic.lean + theorem Finset.cons_swap 2024-10-06 14:52:41 eb8e7ea chore: let `gcongr` know about `piecewise` (#17468) ESTIMATED CHANGES Modified Mathlib/Data/Set/Function.lean - theorem Set.piecewise_le_piecewise + theorem Set.piecewise_mono 2024-10-06 13:46:03 bc0c21f docs(RingTheory/DedekindDomain/Basic): remove a TODO that has already been done in #16631 (#17434) Remove a TODO in `DedekindDomain/Basic.lean` that has already been done in #16631. ESTIMATED CHANGES Modified Mathlib/RingTheory/DedekindDomain/Basic.lean 2024-10-06 13:46:02 fad3ccf docs(Order/Filter/Bases): adapt Mathlib3 doc to Mathlib4 (#17418) In the doc of `IsBasis` the old convention `is_basis` was still used, and this PR fixes this. ESTIMATED CHANGES Modified Mathlib/Order/Filter/Bases.lean 2024-10-06 12:49:55 bc87839 docs: broken link (#17443) ESTIMATED CHANGES Modified README.md 2024-10-06 06:19:07 7c4340d feat(EssSup): More conditionally complete lattice lemmas (#17225) From LeanAPAP ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Function/EssSup.lean + theorem essInf_count_eq_ciInf + theorem essInf_eq_ciInf + theorem essSup_count_eq_ciSup + theorem essSup_eq_ciSup +/- theorem essSup_smul_measure Modified Mathlib/MeasureTheory/Function/LpSeminorm/Basic.lean +/- theorem MeasureTheory.eLpNormEssSup_smul_measure 2024-10-06 00:34:40 0993fe7 chore(scripts): update nolints.json (#17459) I am happy to remove some nolints for you! ESTIMATED CHANGES Modified scripts/nolints.json 2024-10-05 23:41:08 3d9b4b5 feat(StrongTopology): add lemmas about `IsVonNBounded` (#15217) Also add `UniformOnFun.ofFun` here and there to avoid type defeq abuse. ESTIMATED CHANGES Modified Mathlib/Topology/Algebra/Module/StrongTopology.lean + theorem ContinuousLinearMap.eventually_nhds_zero_mapsTo + theorem ContinuousLinearMap.isVonNBounded_iff + theorem ContinuousLinearMap.isVonNBounded_image2_apply + theorem UniformConvergenceCLM.coe_zero + theorem UniformConvergenceCLM.eventually_nhds_zero_mapsTo + theorem UniformConvergenceCLM.isVonNBounded_iff + theorem UniformConvergenceCLM.isVonNBounded_image2_apply + theorem UniformConvergenceCLM.nhds_zero_eq + theorem UniformConvergenceCLM.nhds_zero_eq_of_basis 2024-10-05 21:34:51 2cae56e style: replace `coe := fun x =>` by `coe x :=` and similar (#17441) ESTIMATED CHANGES Modified Mathlib/Algebra/Lie/Basic.lean Modified Mathlib/Analysis/Normed/Affine/Isometry.lean Modified Mathlib/Analysis/Normed/Group/Hom.lean Modified Mathlib/Analysis/Normed/Group/SemiNormedGrp.lean Modified Mathlib/CategoryTheory/ConcreteCategory/Basic.lean Modified Mathlib/Combinatorics/Young/YoungDiagram.lean Modified Mathlib/Geometry/RingedSpace/PresheafedSpace.lean Modified Mathlib/Geometry/RingedSpace/SheafedSpace.lean Modified Mathlib/GroupTheory/Congruence/Basic.lean Modified Mathlib/LinearAlgebra/Alternating/Basic.lean Modified Mathlib/LinearAlgebra/Dual.lean Modified Mathlib/LinearAlgebra/Multilinear/Basic.lean Modified Mathlib/MeasureTheory/Measure/AddContent.lean Modified Mathlib/NumberTheory/NumberField/Embeddings.lean Modified Mathlib/Order/RelIso/Basic.lean Modified Mathlib/RingTheory/Congruence/Basic.lean Modified Mathlib/RingTheory/DedekindDomain/FiniteAdeleRing.lean Modified Mathlib/Topology/Algebra/OpenSubgroup.lean Modified Mathlib/Topology/Connected/PathConnected.lean Modified Mathlib/Topology/Homeomorph.lean Modified Mathlib/Topology/PartitionOfUnity.lean Modified Mathlib/Topology/UniformSpace/Equiv.lean Modified test/fun_prop_dev.lean 2024-10-05 20:00:32 c8d5a11 feat(MeasureTheory): add `IsProjectiveMeasureFamily.eq_zero_of_isEmpty` (#17442) ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Constructions/Projective.lean + theorem MeasureTheory.IsProjectiveMeasureFamily.eq_zero_of_isEmpty 2024-10-05 19:07:04 a8fe707 style(*/CompTypeclasses): single space (#17446) ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Hom/CompTypeclasses.lean Modified Mathlib/Logic/Function/CompTypeclasses.lean 2024-10-05 17:20:25 69a492d chore: update Mathlib dependencies 2024-10-05 (#17445) This PR updates the Mathlib dependencies. ESTIMATED CHANGES Modified lake-manifest.json 2024-10-05 17:20:24 d43e294 feat: `FloorSemiring.tendsto_pow_div_factorial` (#17119) #12191 added some technical lemmas for #6718, but eventually they were not needed. This PR deprecates them and adds generalized lemmas. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Order/Floor/Prime.lean + theorem Nat.exists_prime_mul_pow_lt_factorial Modified Mathlib/Analysis/ODE/PicardLindelof.lean Modified Mathlib/Analysis/SpecificLimits/Normed.lean Modified Mathlib/Data/Nat/Prime/Basic.lean - theorem Nat.exists_mul_pow_lt_factorial - theorem Nat.exists_pow_lt_factorial - theorem Nat.exists_prime_mul_pow_lt_factorial Modified Mathlib/Data/Real/Pi/Irrational.lean Modified Mathlib/Order/Filter/AtTopBot.lean + theorem Nat.eventually_mul_pow_lt_factorial_sub + theorem Nat.eventually_pow_lt_factorial_sub + theorem Nat.exists_mul_pow_lt_factorial + theorem Nat.exists_pow_lt_factorial Added Mathlib/Order/Filter/AtTopBot/Floor.lean + theorem FloorSemiring.eventually_mul_pow_lt_factorial_sub Modified Mathlib/Topology/Algebra/Order/Floor.lean + theorem FloorSemiring.tendsto_mul_pow_div_factorial_sub_atTop + theorem FloorSemiring.tendsto_pow_div_factorial_atTop 2024-10-05 16:18:53 3e10c4b feat(Topology/UniformSpace/UniformConvergence): add lemma (#15398) We add a lemma that says that composing on the left by a uniformly continuous function on the codomain preserves uniform convergence. ESTIMATED CHANGES Modified Mathlib/Topology/UniformSpace/UniformConvergence.lean + theorem tendstoUniformly_congr Modified Mathlib/Topology/UniformSpace/UniformConvergenceTopology.lean + theorem UniformContinuousOn.comp_tendstoUniformly + theorem UniformContinuousOn.comp_tendstoUniformly_eventually 2024-10-05 15:16:22 c241e02 chore: remove some unused variables (#17386) Found by the unused variable command linter (in progress). ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/Spectrum.lean Modified Mathlib/Algebra/Group/Basic.lean Modified Mathlib/Algebra/Group/Commute/Defs.lean Modified Mathlib/Algebra/Group/Hom/Defs.lean Modified Mathlib/Algebra/Group/Semiconj/Defs.lean Modified Mathlib/Algebra/GroupWithZero/Defs.lean +/- theorem mul_div_cancel_left₀ +/- theorem mul_div_cancel_right₀ Modified Mathlib/Algebra/Polynomial/Smeval.lean Modified Mathlib/Algebra/Ring/Defs.lean Modified Mathlib/Control/Traversable/Lemmas.lean Modified Mathlib/Data/Int/Defs.lean Modified Mathlib/Data/List/Count.lean Modified Mathlib/Data/Set/Basic.lean Modified Mathlib/Data/Sum/Basic.lean Modified Mathlib/Geometry/Manifold/LocalInvariantProperties.lean Modified Mathlib/Logic/Lemmas.lean Modified Mathlib/Order/BoundedOrder.lean Modified Mathlib/Order/Disjoint.lean Modified Mathlib/Order/Lattice.lean Modified Mathlib/Order/Monotone/Basic.lean Modified Mathlib/RingTheory/Nilpotent/Lemmas.lean 2024-10-05 09:45:58 f7f1db1 refactor: generalise linearity of inner product (#17384) The acting ring doesn't need to be the ring the inner product is valued in. ESTIMATED CHANGES Modified Mathlib/Analysis/InnerProductSpace/Basic.lean + theorem inner_smul_left_eq_smul + theorem inner_smul_left_eq_star_smul +/- theorem inner_smul_right + theorem inner_smul_right_eq_smul 2024-10-05 09:45:57 f5188d9 refactor: Make the sigma-algebra in `Kernel.comap` implicit (#17299) ... rather than a typeclass argument. This is required to avoid making Gibbs measures and Markov chains an absolute pain to talk about. Indeed, in those two contexts, there is one "canonical" sigma-algebra along with many sigma-subalgebras of it, indexed by time or space respectively. There might be a missing Lean feature here. To be investigated further. From GibbsMeasure ESTIMATED CHANGES Modified Mathlib/Probability/Kernel/Composition.lean +/- theorem ProbabilityTheory.Kernel.compProd_zero_right +/- theorem ProbabilityTheory.Kernel.map_prodMkRight +/- theorem ProbabilityTheory.Kernel.swapLeft_prodMkLeft +/- theorem ProbabilityTheory.Kernel.swapLeft_prodMkRight 2024-10-05 08:48:50 f1c9c72 feat: asymptotics lemmas (#17394) From https://github.com/MichaelStollBayreuth/EulerProducts ESTIMATED CHANGES Modified Mathlib/Analysis/Asymptotics/Asymptotics.lean + theorem Asymptotics.isBigO_mul_iff_isBigO_div + theorem Asymptotics.isLittleO_id_one 2024-10-05 06:02:07 875821f feat(Filter/AtTopBot): add `atTop_neBot_iff` (#17428) I'm going to use these lemmas to drop `[Nonempty α]` and `[IsDirected α (· ≤ ·)]` assumptions in lemmas asserting `Tendsto _ atTop _`. ESTIMATED CHANGES Modified Mathlib/Order/Filter/AtTopBot.lean + theorem Filter.atBot_neBot_iff + theorem Filter.atTop_neBot_iff 2024-10-04 23:30:19 11fa9c0 chore(Analysis/InnerProductSpace/Dual): weaken assumptions to SeminormedAddCommGroup (#17416) Replace the `NormedAddCommGroup` assumption with `SemiNormedAddCommGroup` where possible. motivation: we need `toDual`, `toDualMap` etc. to define an `InnerProductSpace` instance for `SeparationQuotient`. suggested in #16707. ESTIMATED CHANGES Modified Mathlib/Analysis/InnerProductSpace/Dual.lean 2024-10-04 21:26:59 584dd88 feat(CategoryTheory/Limits): generalize universes for preserving finite products (#17408) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Limits/Preserves/Finite.lean Modified Mathlib/Topology/Category/CompHausLike/SigmaComparison.lean 2024-10-04 21:26:58 d2499a7 feat (Mathlib/SetTheory/Ordinal/Arithmetic): add bounded recursion on ordinals (#16663) Add a recursion principal defining functions with domain `Iio o` for an ordinal `o`. ESTIMATED CHANGES Modified Mathlib/SetTheory/Ordinal/Arithmetic.lean + def Ordinal.boundedLimitRecOn + theorem Ordinal.boundedLimitRec_limit + theorem Ordinal.boundedLimitRec_succ + theorem Ordinal.boundedLimitRec_zero 2024-10-04 20:24:38 2f7bdce feat: not_odd_zero for Nat and Int (#17419) [Zulip thread](https://leanprover.zulipchat.com/#narrow/stream/217875-Is-there-code-for-X.3F/topic/Zero.20is.20not.20odd/near/474354022) ESTIMATED CHANGES Modified Mathlib/Algebra/GeomSum.lean Modified Mathlib/Algebra/Ring/Int.lean + theorem Int.not_odd_zero Modified Mathlib/Algebra/Ring/Parity.lean + theorem Nat.not_odd_zero 2024-10-04 20:24:37 2557177 chore: update Mathlib dependencies 2024-10-04 (#17414) This PR updates the Mathlib dependencies. ESTIMATED CHANGES Modified lake-manifest.json 2024-10-04 20:24:36 a078500 feat(AlgebraicGeometry): add `resLE` (#17264) Adds a shortcut `Scheme.Hom.resLE` for the restriction of a morphism of schemes to opens on the source and the target. ESTIMATED CHANGES Modified Mathlib/AlgebraicGeometry/OpenImmersion.lean + theorem AlgebraicGeometry.Scheme.Hom.image_le_image_iff Modified Mathlib/AlgebraicGeometry/Restrict.lean + theorem AlgebraicGeometry.Scheme.Hom.le_preimage_resLE_iff + theorem AlgebraicGeometry.Scheme.Hom.map_resLE + def AlgebraicGeometry.Scheme.Hom.resLE + theorem AlgebraicGeometry.Scheme.Hom.resLE_appLE + theorem AlgebraicGeometry.Scheme.Hom.resLE_comp_resLE + theorem AlgebraicGeometry.Scheme.Hom.resLE_comp_ι + theorem AlgebraicGeometry.Scheme.Hom.resLE_congr + theorem AlgebraicGeometry.Scheme.Hom.resLE_eq_morphismRestrict + theorem AlgebraicGeometry.Scheme.Hom.resLE_id + theorem AlgebraicGeometry.Scheme.Hom.resLE_map + theorem AlgebraicGeometry.Scheme.Hom.resLE_preimage + theorem AlgebraicGeometry.Scheme.Opens.ι_image_le +/- theorem AlgebraicGeometry.Scheme.restrictFunctor_map_left Modified Mathlib/AlgebraicGeometry/Scheme.lean + theorem AlgebraicGeometry.Scheme.Hom.preimage_le_preimage_of_le Modified Mathlib/CategoryTheory/Comma/Over.lean 2024-10-04 20:24:35 4e01187 chore(RingTheory/Valuation): change implicitness in `Valuation.IsEquiv` lemmas (#17051) Generalize a suggestion mentioned [here](https://github.com/leanprover-community/mathlib4/pull/16764#discussion_r1759958003). Change `(v v')` to `{v v'}` and add aliases for easier application of these `Valuation.IsEquiv`lemmas. Add an equivalent condition in `Valuation.isEquiv_tfae`. ESTIMATED CHANGES Modified Mathlib/RingTheory/Valuation/Basic.lean Modified Mathlib/RingTheory/Valuation/ValuationSubring.lean 2024-10-04 20:24:34 811c9e3 feat(AlgebraicGeometry/EllipticCurve/NormalForms): some normal forms of elliptic curves (#16864) This PR adds some normal forms of elliptic curves by characteristic. The results are from Silverman's GTM106 second edition, section III.1, page 42, and Appendix A, Proposition 1.1. - Normal form of characteristics not 2: `Y^2 = X^3 + a_2X^2 + a_4X + a_6`. - Normal form of characteristics not 2 or 3: `Y^2 = X^3 + a_4X + a_6`. This is also the normal form of characteristic = 3 and j = 0. - Normal form of characteristic = 3 and j not 0: `Y^2 = X^3 + a_2X^2 + a_6`. - Normal form of characteristic = 2 and j = 0: `Y^2 + a_3Y = X^3 + a_4X + a_6`. - Normal form of characteristic = 2 and j not 0: `Y^2 + XY = X^3 + a_2X^2 + a_6`. Basic properties and the existence of the change of variables to change a curve into these forms are included. Legendre normal form and Deuring normal form may be added in this file in the future PRs. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/AlgebraicGeometry/EllipticCurve/NormalForms.lean + theorem EllipticCurve.j_ne_zero_of_isCharThreeJNeZeroNF_of_char_three + theorem EllipticCurve.j_ne_zero_of_isCharTwoJNeZeroNF_of_char_two + theorem EllipticCurve.j_of_isCharThreeJNeZeroNF_of_char_three + theorem EllipticCurve.j_of_isCharTwoJEqZeroNF + theorem EllipticCurve.j_of_isCharTwoJEqZeroNF_of_char_two + theorem EllipticCurve.j_of_isCharTwoJNeZeroNF_of_char_two + theorem EllipticCurve.j_of_isShortNF + theorem EllipticCurve.j_of_isShortNF_of_char_three + theorem WeierstrassCurve.a₁_of_isCharNeTwoNF + theorem WeierstrassCurve.a₁_of_isCharThreeJNeZeroNF + theorem WeierstrassCurve.a₁_of_isCharTwoJEqZeroNF + theorem WeierstrassCurve.a₁_of_isCharTwoJNeZeroNF + theorem WeierstrassCurve.a₁_of_isShortNF + theorem WeierstrassCurve.a₂_of_isCharTwoJEqZeroNF + theorem WeierstrassCurve.a₂_of_isShortNF + theorem WeierstrassCurve.a₃_of_isCharNeTwoNF + theorem WeierstrassCurve.a₃_of_isCharThreeJNeZeroNF + theorem WeierstrassCurve.a₃_of_isCharTwoJNeZeroNF + theorem WeierstrassCurve.a₃_of_isShortNF + theorem WeierstrassCurve.a₄_of_isCharThreeJNeZeroNF + theorem WeierstrassCurve.a₄_of_isCharTwoJNeZeroNF + theorem WeierstrassCurve.b₂_of_isCharNeTwoNF + theorem WeierstrassCurve.b₂_of_isCharThreeJNeZeroNF + theorem WeierstrassCurve.b₂_of_isCharThreeJNeZeroNF_of_char_three + theorem WeierstrassCurve.b₂_of_isCharTwoJEqZeroNF + theorem WeierstrassCurve.b₂_of_isCharTwoJNeZeroNF + theorem WeierstrassCurve.b₂_of_isCharTwoJNeZeroNF_of_char_two + theorem WeierstrassCurve.b₂_of_isShortNF + theorem WeierstrassCurve.b₄_of_isCharNeTwoNF + theorem WeierstrassCurve.b₄_of_isCharThreeJNeZeroNF + theorem WeierstrassCurve.b₄_of_isCharTwoJEqZeroNF + theorem WeierstrassCurve.b₄_of_isCharTwoJEqZeroNF_of_char_two + theorem WeierstrassCurve.b₄_of_isCharTwoJNeZeroNF + theorem WeierstrassCurve.b₄_of_isShortNF + theorem WeierstrassCurve.b₄_of_isShortNF_of_char_three + theorem WeierstrassCurve.b₆_of_isCharNeTwoNF + theorem WeierstrassCurve.b₆_of_isCharThreeJNeZeroNF + theorem WeierstrassCurve.b₆_of_isCharThreeJNeZeroNF_of_char_three + theorem WeierstrassCurve.b₆_of_isCharTwoJNeZeroNF + theorem WeierstrassCurve.b₆_of_isCharTwoJNeZeroNF_of_char_two + theorem WeierstrassCurve.b₆_of_isShortNF + theorem WeierstrassCurve.b₆_of_isShortNF_of_char_three + theorem WeierstrassCurve.b₈_of_isCharNeTwoNF + theorem WeierstrassCurve.b₈_of_isCharThreeJNeZeroNF + theorem WeierstrassCurve.b₈_of_isCharThreeJNeZeroNF_of_char_three + theorem WeierstrassCurve.b₈_of_isCharTwoJEqZeroNF + theorem WeierstrassCurve.b₈_of_isCharTwoJEqZeroNF_of_char_two + theorem WeierstrassCurve.b₈_of_isCharTwoJNeZeroNF + theorem WeierstrassCurve.b₈_of_isCharTwoJNeZeroNF_of_char_two + theorem WeierstrassCurve.b₈_of_isShortNF + theorem WeierstrassCurve.c₄_of_isCharNeTwoNF + theorem WeierstrassCurve.c₄_of_isCharThreeJNeZeroNF + theorem WeierstrassCurve.c₄_of_isCharThreeJNeZeroNF_of_char_three + theorem WeierstrassCurve.c₄_of_isCharTwoJEqZeroNF + theorem WeierstrassCurve.c₄_of_isCharTwoJEqZeroNF_of_char_two + theorem WeierstrassCurve.c₄_of_isCharTwoJNeZeroNF + theorem WeierstrassCurve.c₄_of_isCharTwoJNeZeroNF_of_char_two + theorem WeierstrassCurve.c₄_of_isShortNF + theorem WeierstrassCurve.c₄_of_isShortNF_of_char_three + theorem WeierstrassCurve.c₆_of_isCharNeTwoNF + theorem WeierstrassCurve.c₆_of_isCharThreeJNeZeroNF + theorem WeierstrassCurve.c₆_of_isCharThreeJNeZeroNF_of_char_three + theorem WeierstrassCurve.c₆_of_isCharTwoJEqZeroNF + theorem WeierstrassCurve.c₆_of_isCharTwoJEqZeroNF_of_char_two + theorem WeierstrassCurve.c₆_of_isCharTwoJNeZeroNF + theorem WeierstrassCurve.c₆_of_isCharTwoJNeZeroNF_of_char_two + theorem WeierstrassCurve.c₆_of_isShortNF + theorem WeierstrassCurve.c₆_of_isShortNF_of_char_three + theorem WeierstrassCurve.exists_variableChange_isCharNeTwoNF + theorem WeierstrassCurve.exists_variableChange_isCharThreeNF + theorem WeierstrassCurve.exists_variableChange_isCharTwoNF + theorem WeierstrassCurve.exists_variableChange_isShortNF + def WeierstrassCurve.toCharNeTwoNF + def WeierstrassCurve.toCharThreeNF + theorem WeierstrassCurve.toCharThreeNF_spec_of_b₂_eq_zero + theorem WeierstrassCurve.toCharThreeNF_spec_of_b₂_ne_zero + def WeierstrassCurve.toCharTwoJEqZeroNF + theorem WeierstrassCurve.toCharTwoJEqZeroNF_spec + def WeierstrassCurve.toCharTwoJNeZeroNF + theorem WeierstrassCurve.toCharTwoJNeZeroNF_spec + def WeierstrassCurve.toCharTwoNF + def WeierstrassCurve.toShortNF + def WeierstrassCurve.toShortNFOfCharThree + theorem WeierstrassCurve.toShortNFOfCharThree_a₂ + theorem WeierstrassCurve.toShortNFOfCharThree_spec + theorem WeierstrassCurve.Δ_of_isCharNeTwoNF + theorem WeierstrassCurve.Δ_of_isCharThreeJNeZeroNF + theorem WeierstrassCurve.Δ_of_isCharThreeJNeZeroNF_of_char_three + theorem WeierstrassCurve.Δ_of_isCharTwoJEqZeroNF + theorem WeierstrassCurve.Δ_of_isCharTwoJEqZeroNF_of_char_two + theorem WeierstrassCurve.Δ_of_isCharTwoJNeZeroNF_of_char_two + theorem WeierstrassCurve.Δ_of_isShortNF + theorem WeierstrassCurve.Δ_of_isShortNF_of_char_three Modified Mathlib/AlgebraicGeometry/EllipticCurve/Weierstrass.lean + theorem EllipticCurve.j_eq_zero_iff_of_char_three' + theorem EllipticCurve.j_eq_zero_iff_of_char_three + theorem EllipticCurve.j_eq_zero_iff_of_char_two' + theorem EllipticCurve.j_eq_zero_iff_of_char_two + theorem EllipticCurve.j_eq_zero_of_char_three + theorem EllipticCurve.j_eq_zero_of_char_two + theorem EllipticCurve.j_of_char_three + theorem EllipticCurve.j_of_char_two + theorem WeierstrassCurve.b_relation_of_char_three + theorem WeierstrassCurve.b_relation_of_char_two + theorem WeierstrassCurve.b₂_of_char_three + theorem WeierstrassCurve.b₂_of_char_two + theorem WeierstrassCurve.b₄_of_char_three + theorem WeierstrassCurve.b₄_of_char_two + theorem WeierstrassCurve.b₆_of_char_three + theorem WeierstrassCurve.b₆_of_char_two + theorem WeierstrassCurve.b₈_of_char_three + theorem WeierstrassCurve.b₈_of_char_two + theorem WeierstrassCurve.c_relation_of_char_three + theorem WeierstrassCurve.c_relation_of_char_two + theorem WeierstrassCurve.c₄_of_char_three + theorem WeierstrassCurve.c₄_of_char_two + theorem WeierstrassCurve.c₆_of_char_three + theorem WeierstrassCurve.c₆_of_char_two + theorem WeierstrassCurve.twoTorsionPolynomial_disc_of_char_three + theorem WeierstrassCurve.twoTorsionPolynomial_disc_of_char_two + theorem WeierstrassCurve.twoTorsionPolynomial_of_char_three + theorem WeierstrassCurve.twoTorsionPolynomial_of_char_two + theorem WeierstrassCurve.Δ_of_char_three + theorem WeierstrassCurve.Δ_of_char_two 2024-10-04 20:24:33 c3020c3 chore(NumberTheory/LucasPrimality): golf theorem (#16848) ESTIMATED CHANGES Modified Mathlib/NumberTheory/LucasPrimality.lean 2024-10-04 20:24:31 dcfb782 feat: Adding/removing an element from a product of finsets (#7898) Lemmas about the interaction of `Fintype.piFinset` with `Fin.consEquiv`, `Fin.snocEquiv`, `Fin.insertNthEquiv`. ESTIMATED CHANGES Modified Mathlib/Data/Fin/Tuple/Finset.lean +/- theorem Fin.cons_mem_piFinset_cons + theorem Fin.insertNth_mem_piFinset_insertNth + theorem Fin.mem_piFinset_iff_last_init + theorem Fin.mem_piFinset_iff_pivot_removeNth + theorem Fin.mem_piFinset_iff_zero_tail - theorem Fin.mem_piFinset_succ' - theorem Fin.mem_piFinset_succ +/- theorem Fin.snoc_mem_piFinset_snoc + theorem Finset.card_consEquiv_filter_piFinset + theorem Finset.card_insertNthEquiv_filter_piFinset + theorem Finset.card_snocEquiv_filter_piFinset + theorem Finset.map_consEquiv_filter_piFinset + theorem Finset.map_insertNthEquiv_filter_piFinset + theorem Finset.map_snocEquiv_filter_piFinset 2024-10-04 18:34:46 dfcf58d chore: make `Integrable.of_finite` have no explicit argument (#17323) This makes it really useful to fill in side conditions on the fly using anonymous dot notation. Also deprecate `Integrable.of_isEmpty` which is straightforwardly a special case of it (see eg `stronglyMeasurable_of_isEmpty` for a similar existing deprecation). From PFR ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Function/L1Space.lean +/- theorem MeasureTheory.Integrable.of_finite +/- theorem MeasureTheory.Integrable.of_isEmpty Modified Mathlib/MeasureTheory/Function/StronglyMeasurable/Basic.lean Modified Mathlib/Probability/ProbabilityMassFunction/Integrals.lean 2024-10-04 17:27:40 38cbcf0 feat(Algebra/Group/Equiv): add two simp lemmas for `MulEquivClass` (#17085) Add two simp lemmas for `MulEquivClass`. ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Equiv/Basic.lean + theorem MulEquivClass.apply_coe_symm_apply + theorem MulEquivClass.coe_symm_apply_apply 2024-10-04 14:05:21 5e050d4 chore(*): assume `Subsingleton Mˣ` instead of `Unique Mˣ` (#17391) Also drop a `Nontrivial` assumption in 1 lemma. ESTIMATED CHANGES Modified Mathlib/Algebra/Associated/Basic.lean +/- theorem Associates.mk_injective +/- theorem prime_dvd_prime_iff_eq Modified Mathlib/Algebra/BigOperators/Associated.lean +/- theorem Finset.prod_primes_dvd Modified Mathlib/Algebra/GCDMonoid/Basic.lean +/- theorem exists_eq_pow_of_mul_eq_pow Modified Mathlib/Algebra/Group/Units.lean +/- theorem isUnit_iff_eq_one +/- theorem units_eq_one Modified Mathlib/Data/List/Prime.lean Modified Mathlib/RingTheory/ChainOfDivisors.lean Modified Mathlib/RingTheory/DedekindDomain/Ideal.lean Modified Mathlib/RingTheory/IntegralDomain.lean Modified Mathlib/RingTheory/UniqueFactorizationDomain.lean +/- theorem UniqueFactorizationMonoid.mem_normalizedFactors_iff +/- theorem UniqueFactorizationMonoid.normalizedFactors_prod_of_prime 2024-10-04 14:05:20 616c3bf chore(Analytic/CPolynomial): move&generalize some lemmas (#17390) We already have continuity of evaluation of a continuous multilinear map in both variables, no need to deduce it again from `Analytic*`. As a side effect, use weaker typeclass assumptions (TVS instead of a normed space) for some arguments. ESTIMATED CHANGES Modified Mathlib/Analysis/Analytic/CPolynomial.lean - theorem ContinuousLinearMap.continuousAt_uncurry_of_multilinear - theorem ContinuousLinearMap.continuousOn_uncurry_of_multilinear - theorem ContinuousLinearMap.continuousWithinAt_uncurry_of_multilinear - theorem ContinuousLinearMap.continuous_uncurry_of_multilinear Modified Mathlib/Analysis/NormedSpace/Multilinear/Basic.lean + theorem ContinuousLinearMap.continuousAt_uncurry_of_multilinear + theorem ContinuousLinearMap.continuousOn_uncurry_of_multilinear + theorem ContinuousLinearMap.continuousWithinAt_uncurry_of_multilinear + theorem ContinuousLinearMap.continuous_uncurry_of_multilinear +/- theorem ContinuousMultilinearMap.continuous_eval 2024-10-04 14:05:18 5269859 chore(Galois/Basic): `Fintype` → `Finite` (#17382) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Galois/Basic.lean 2024-10-04 14:05:17 411a67a chore: generalise even more lemmas from `LinearOrderedField` to `GroupWithZero` (#17378) ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Field/Basic.lean +/- theorem div_le_of_nonneg_of_le_mul +/- theorem div_le_one_of_le +/- theorem inv_mul_le_one_of_le +/- theorem inv_pos_le_iff_one_le_mul' +/- theorem inv_pos_le_iff_one_le_mul +/- theorem inv_pos_lt_iff_one_lt_mul' +/- theorem inv_pos_lt_iff_one_lt_mul +/- theorem mul_inv_le_one_of_le +/- theorem mul_le_of_nonneg_of_le_div Modified Mathlib/Algebra/Order/GroupWithZero/Unbundled.lean + theorem div_le_of_le_mul₀ + theorem div_le_one_of_le₀ + theorem inv_le_iff_one_le_mul₀' + theorem inv_le_iff_one_le_mul₀ + theorem inv_lt_iff_one_lt_mul₀' + theorem inv_lt_iff_one_lt_mul₀ + theorem inv_mul_le_of_le_mul₀ + theorem inv_mul_le_one_of_le₀ + theorem mul_inv_le_of_le_mul₀ + theorem mul_inv_le_one_of_le₀ + theorem mul_le_of_le_div₀ + theorem mul_le_of_le_inv_mul₀ + theorem mul_le_of_le_mul_inv₀ Modified Mathlib/Analysis/Analytic/Basic.lean Modified Mathlib/Analysis/Asymptotics/Asymptotics.lean Modified Mathlib/Analysis/CStarAlgebra/Module/Defs.lean Modified Mathlib/Analysis/Calculus/ParametricIntegral.lean Modified Mathlib/Analysis/Convex/Between.lean Modified Mathlib/Analysis/Convex/Gauge.lean Modified Mathlib/Analysis/Convex/Side.lean Modified Mathlib/Analysis/InnerProductSpace/Basic.lean Modified Mathlib/Analysis/LocallyConvex/Basic.lean Modified Mathlib/Analysis/Normed/Group/Hom.lean Modified Mathlib/Analysis/Normed/Module/Dual.lean Modified Mathlib/Analysis/NormedSpace/Multilinear/Basic.lean Modified Mathlib/Analysis/NormedSpace/OperatorNorm/Basic.lean Modified Mathlib/Analysis/RCLike/Basic.lean Modified Mathlib/Analysis/SpecialFunctions/Gamma/Beta.lean Modified Mathlib/Combinatorics/Additive/Corner/Roth.lean Modified Mathlib/Combinatorics/SimpleGraph/Density.lean Modified Mathlib/Combinatorics/SimpleGraph/Regularity/Bound.lean Modified Mathlib/Combinatorics/SimpleGraph/Regularity/Chunk.lean Modified Mathlib/Combinatorics/SimpleGraph/Regularity/Energy.lean Modified Mathlib/Combinatorics/SimpleGraph/Triangle/Basic.lean Modified Mathlib/Combinatorics/SimpleGraph/Triangle/Counting.lean Modified Mathlib/Geometry/Euclidean/Angle/Unoriented/RightAngle.lean Modified Mathlib/Geometry/Manifold/PartitionOfUnity.lean Modified Mathlib/GroupTheory/CommutingProbability.lean Modified Mathlib/MeasureTheory/Measure/Haar/OfBasis.lean Modified Mathlib/NumberTheory/Modular.lean Modified Mathlib/Topology/UnitInterval.lean 2024-10-04 14:05:16 4e27a8d ci(update_dependencies_zulip): Add actionable message when lake update fails (#17331) ESTIMATED CHANGES Modified .github/workflows/update_dependencies_zulip.yml 2024-10-04 14:05:15 ca6941c chore: `Set.divisionCommMonoid` scoped earlier (#17301) I accidentally split it to the wrong file in #16442 ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Pointwise/Set/Basic.lean Modified Mathlib/Algebra/Ring/Pointwise/Set.lean 2024-10-04 14:05:13 2ae9a80 feat: `a = cast e b ↔ HEq a b` (#17294) From LeanCamCombi ESTIMATED CHANGES Modified Mathlib/Logic/Basic.lean + theorem eq_cast_iff_heq + theorem heq_of_eq_cast 2024-10-04 14:05:12 674ce26 feat(Data/Multiset/Basic): add lemma on `Multiset` (#17273) It used to have a following lemma: ``` s.Disjoint t → s ≤ u → t ≤ u → s + t ≤ u ``` Now it only has the lemma: ``` a ∉ s → a ::ₘ s ≤ t ↔ a ∈ t ∧ s ≤ t ``` ESTIMATED CHANGES Modified Mathlib/Data/Multiset/Basic.lean + theorem Multiset.cons_le_of_not_mem 2024-10-04 14:05:11 8033cba feat(NumberTheory/RamificationInertia): ramification index and inertia degree in tower of algebras (#17160) Let `T / S / R` be a tower of algebras, `p, P, Q` be ideals in `R, S, T`, respectively, we show that `e (Q | p) = e (P | p) * e (Q | P)` and `f (Q | p) = f (P | p) * f (Q | P)`. ESTIMATED CHANGES Modified Mathlib/NumberTheory/RamificationInertia.lean + theorem Ideal.inertiaDeg_algebra_tower + theorem Ideal.inertiaDeg_tower + theorem Ideal.ramificationIdx_algebra_tower + theorem Ideal.ramificationIdx_tower Modified Mathlib/RingTheory/DedekindDomain/Ideal.lean + theorem Ideal.eq_prime_pow_mul_coprime +/- theorem irreducible_pow_sup Modified Mathlib/RingTheory/Ideal/Maps.lean + theorem Ideal.ne_bot_of_map_ne_bot Modified Mathlib/RingTheory/Ideal/Operations.lean + theorem Ideal.sup_multiset_prod_eq_top 2024-10-04 14:05:10 eeedb31 chore(Data/Set): split Data/Set/Function (#17091) Take the lemmas about monotonicity of functions out of Data/Set/Function and move them to Data/Set/Monotone. Also remove `Compl.decidableMem`, as it is already given in `decidableCompl` (instance search already finds it too) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Data/Int/Lemmas.lean Modified Mathlib/Data/Set/Function.lean - theorem AntitoneOn.congr - theorem AntitoneOn.mono - theorem Function.antitoneOn_of_rightInvOn_of_mapsTo - theorem Function.monotoneOn_of_rightInvOn_of_mapsTo - theorem MonotoneOn.congr - theorem MonotoneOn.mono - theorem Set.EqOn.congr_antitoneOn - theorem Set.EqOn.congr_monotoneOn - theorem Set.EqOn.congr_strictAntiOn - theorem Set.EqOn.congr_strictMonoOn - theorem StrictAntiOn.comp - theorem StrictAntiOn.comp_strictMonoOn - theorem StrictAntiOn.congr - theorem StrictAntiOn.injOn - theorem StrictAntiOn.mono - theorem StrictMono.codRestrict - theorem StrictMonoOn.comp - theorem StrictMonoOn.comp_strictAntiOn - theorem StrictMonoOn.congr - theorem StrictMonoOn.injOn - theorem StrictMonoOn.mono - theorem strictMono_restrict Added Mathlib/Data/Set/Monotone.lean + theorem AntitoneOn.congr + theorem AntitoneOn.mono + theorem Function.antitoneOn_of_rightInvOn_of_mapsTo + theorem Function.monotoneOn_of_rightInvOn_of_mapsTo + theorem MonotoneOn.congr + theorem MonotoneOn.mono + theorem Set.EqOn.congr_antitoneOn + theorem Set.EqOn.congr_monotoneOn + theorem Set.EqOn.congr_strictAntiOn + theorem Set.EqOn.congr_strictMonoOn + theorem StrictAntiOn.comp + theorem StrictAntiOn.comp_strictMonoOn + theorem StrictAntiOn.congr + theorem StrictAntiOn.injOn + theorem StrictAntiOn.mono + theorem StrictMono.codRestrict + theorem StrictMonoOn.comp + theorem StrictMonoOn.comp_strictAntiOn + theorem StrictMonoOn.congr + theorem StrictMonoOn.injOn + theorem StrictMonoOn.mono + theorem strictMono_restrict Modified Mathlib/Order/Hom/Set.lean 2024-10-04 14:05:09 6039b32 feat(Data/Int/WithZero): add WithZeroMultIntToNNReal (#15741) We define the morphism `withZeroMultIntToNNReal` from `ℤₘ₀ → ℝ≥0` sending `0 ↦ 0` and `x ↦ e^(Multiplicative.toAdd (WithZero.unzero hx)` when `x ≠ 0`, for a nonzero `e : ℝ≥0` and prove some of its properties. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Data/Int/WithZero.lean + def WithZeroMulInt.toNNReal + theorem WithZeroMulInt.toNNReal_ne_zero + theorem WithZeroMulInt.toNNReal_neg_apply + theorem WithZeroMulInt.toNNReal_pos + theorem WithZeroMulInt.toNNReal_pos_apply + theorem WithZeroMulInt.toNNReal_strictMono 2024-10-04 11:14:18 5ddd0ae feat(CategoryTheory): lemmas about `descOfIsLeftKanExtension` for pointwise left Kan extensions (+dual) (#17383) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Functor/KanExtension/Pointwise.lean + def CategoryTheory.Functor.costructuredArrowMapCocone + theorem CategoryTheory.Functor.pointwiseLeftKanExtension_desc_app + theorem CategoryTheory.Functor.pointwiseRightKanExtension_lift_app + def CategoryTheory.Functor.structuredArrowMapCone 2024-10-04 11:14:16 44f94cd chore(CompHausLike): add constant morphisms (#17381) ESTIMATED CHANGES Modified Mathlib/Topology/Category/CompHausLike/Basic.lean + def CompHausLike.const + theorem CompHausLike.const_comp 2024-10-04 11:14:15 10237af feat (Analysis/Normed/Group): ultrametric normed groups are nonarchimedean (#17262) This PR proves that normed groups with a norm satisfying `IsUltrametricDist` are nonarchimedean topological groups, and also that continuous maps from a compact space to an ultrametric space are an ultrametric space. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Analysis/Normed/Group/Ultra.lean + def IsUltrametricDist.ball_openSubgroup + def IsUltrametricDist.closedBall_openSubgroup Added Mathlib/Topology/MetricSpace/Ultra/ContinuousMaps.lean 2024-10-04 11:14:14 fafd1f6 chore: Delete declarations deprecated in 2023 (#17193) Some of these are on my way. ESTIMATED CHANGES Modified Mathlib/Algebra/BigOperators/Group/Finset.lean Modified Mathlib/Algebra/Order/GroupWithZero/Canonical.lean Modified Mathlib/Algebra/Order/Module/Defs.lean Modified Mathlib/Algebra/Order/Monoid/Unbundled/Pow.lean Modified Mathlib/Algebra/Order/Ring/Basic.lean Modified Mathlib/Algebra/Order/Ring/Unbundled/Basic.lean Modified Mathlib/Data/ENNReal/Basic.lean Modified Mathlib/Data/Finset/Card.lean Modified Mathlib/Data/Finset/Image.lean Modified Mathlib/Data/List/Basic.lean - theorem List.getElem_reverse_aux₂ - theorem List.get_reverse_aux₁ - theorem List.get_reverse_aux₂ Modified Mathlib/Data/List/Count.lean - theorem List.count_cons' Modified Mathlib/Data/Multiset/Basic.lean Modified Mathlib/Data/Nat/Defs.lean Modified Mathlib/Data/Set/Card.lean Modified Mathlib/Data/Set/Function.lean - theorem Set.maps_image_to - theorem Set.maps_univ_to Modified Mathlib/LinearAlgebra/Dimension/Basic.lean Modified Mathlib/LinearAlgebra/Dimension/Finite.lean Modified Mathlib/LinearAlgebra/FiniteDimensional/Defs.lean Modified Mathlib/RingTheory/Noetherian.lean Modified Mathlib/Topology/Bases.lean Modified Mathlib/Topology/CompactOpen.lean Modified Mathlib/Topology/Compactness/LocallyCompact.lean Modified Mathlib/Topology/Order.lean Modified Mathlib/Topology/Order/LowerUpperTopology.lean - theorem Topology.IsUpper.continuous_of_Iic 2024-10-04 11:14:13 7b3092e feat(Condensed): discrete condensed modules are given by locally constant maps (#15569) This PR provides the necessary API to prove that a condensed `R`-module is discrete if and only if the underlying condensed set is (both for light condensed and condensed). That is, it defines the functor `CondensedMod.LocallyConstant.functor` which takes an `R`-module to the condensed `R`-modules given by locally constant maps to it, and proves that this functor is naturally isomorphic to the constant sheaf functor (and the analogues for light condensed modules). The actual result that a condensed module is discrete if and only if the underlying condensed set is follows easily and is added in #14027. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Condensed/Discrete/Module.lean + def CompHausLike.LocallyConstantModule.functor + def CompHausLike.LocallyConstantModule.functorToPresheaves 2024-10-04 10:12:27 47ada50 feat: the canonical bilinear form of the root system of a Lie algebra is the Killing form (#17392) The headline result is `LieAlgebra.IsKilling.corootForm_rootSystem_eq_killing`. ESTIMATED CHANGES Modified Mathlib/Algebra/Lie/TraceForm.lean + theorem LieModule.traceForm_eq_sum_finrank_nsmul' Modified Mathlib/Algebra/Lie/Weights/Basic.lean Modified Mathlib/Algebra/Lie/Weights/Killing.lean + theorem LieAlgebra.IsKilling.restrict_killingForm_eq_sum Modified Mathlib/Algebra/Lie/Weights/RootSystem.lean + theorem LieAlgebra.IsKilling.corootForm_rootSystem_eq_killing Modified Mathlib/LinearAlgebra/RootSystem/Finite/CanonicalBilinear.lean 2024-10-04 10:12:26 2a16a7b refactor(CategoryTheory): generalize universes for representable functors (#17389) `Functor.Representable` is renamed `Functor.IsRepresentable`, and the API now allows any universe for the target category of types: in the definition, we use natural bijections instead of natural isomorphisms between functors to types. A new structure `Functor.RepresentableBy` is introduced: it contains the data expressing that a functor `F : Cᵒᵖ ⥤ Type _` is representable by an object `Y : C`. ESTIMATED CHANGES Modified Mathlib/Algebra/Category/Grp/ForgetCorepresentable.lean Modified Mathlib/CategoryTheory/Limits/ConcreteCategory/Basic.lean Modified Mathlib/CategoryTheory/Limits/Yoneda.lean Modified Mathlib/CategoryTheory/Sites/Canonical.lean + theorem CategoryTheory.Sheaf.Subcanonical.isSheaf_of_isRepresentable - theorem CategoryTheory.Sheaf.Subcanonical.isSheaf_of_representable + theorem CategoryTheory.Sheaf.isSheaf_of_isRepresentable - theorem CategoryTheory.Sheaf.isSheaf_of_representable Modified Mathlib/CategoryTheory/Yoneda.lean + theorem CategoryTheory.Functor.CorepresentableBy.ext + theorem CategoryTheory.Functor.CorepresentableBy.homEquiv_eq + theorem CategoryTheory.Functor.CorepresentableBy.isCorepresentable + def CategoryTheory.Functor.CorepresentableBy.ofIso + def CategoryTheory.Functor.CorepresentableBy.toIso + structure CategoryTheory.Functor.CorepresentableBy + theorem CategoryTheory.Functor.IsCorepresentable.mk' + theorem CategoryTheory.Functor.IsRepresentable.mk' + theorem CategoryTheory.Functor.RepresentableBy.ext + theorem CategoryTheory.Functor.RepresentableBy.homEquiv_eq + theorem CategoryTheory.Functor.RepresentableBy.isRepresentable + def CategoryTheory.Functor.RepresentableBy.ofIso + def CategoryTheory.Functor.RepresentableBy.toIso + structure CategoryTheory.Functor.RepresentableBy - theorem CategoryTheory.Functor.coreprW_app_hom + theorem CategoryTheory.Functor.coreprW_hom_app + def CategoryTheory.Functor.corepresentableByEquiv - theorem CategoryTheory.Functor.reprW_app_hom + theorem CategoryTheory.Functor.reprW_hom_app + def CategoryTheory.Functor.representableByEquiv +/- theorem CategoryTheory.corepresentable_of_natIso + theorem CategoryTheory.isRepresentable_of_natIso - theorem CategoryTheory.representable_of_natIso 2024-10-04 10:12:25 2dcb3ba chore(Profinite): add Fintype instances (#17380) ESTIMATED CHANGES Modified Mathlib/Topology/Category/LightProfinite/Basic.lean Modified Mathlib/Topology/Category/Profinite/Basic.lean 2024-10-04 10:12:24 12bdcfb feat(RingTheory): target local closure of property of ring homomorphisms (#17032) If `P` is a property of ring homomorphisms, we call `Locally P` the closure of `P` with respect to standard open coverings on the (algebraic) target (i.e. geometric source). Hence for `f : R →+* S`, the property `Locally P` holds if it holds locally on `S`, i.e. if there exists a subset `{ t }` of `S` generating the unit ideal, such that `P` holds for all compositions `R →+* Sₜ`. By construction, `Locally P` is local on the target. Moreover, stability properties of `P` are inherited by `Locally P` (TODO). ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/RingTheory/Localization/Away/Lemmas.lean + theorem IsLocalization.Away.span_range_mulNumerator_eq_top Added Mathlib/RingTheory/RingHom/Locally.lean + def RingHom.Locally + theorem RingHom.locally_iff_exists + theorem RingHom.locally_iff_finite + theorem RingHom.locally_iff_isLocalization + theorem RingHom.locally_iff_of_localizationSpanTarget + theorem RingHom.locally_of + theorem RingHom.locally_ofLocalizationSpanTarget + theorem RingHom.locally_of_exists 2024-10-04 10:12:22 6d45391 feat(Data/Finset): right elements of a finset in the sum type (#17014) ESTIMATED CHANGES Modified Mathlib/Data/Finset/Preimage.lean + theorem Finset.preimage_inl + theorem Finset.preimage_inr Modified Mathlib/Data/Finset/Sum.lean + theorem Finset.Injective2_disjSum + theorem Finset.card_toLeft_add_card_toRight + theorem Finset.card_toLeft_le + theorem Finset.card_toRight_le + theorem Finset.disjSum_eq_iff + theorem Finset.disjSum_inj + theorem Finset.eq_disjSum_iff + theorem Finset.mem_toLeft + theorem Finset.mem_toRight + def Finset.toLeft + theorem Finset.toLeft_cons_inl + theorem Finset.toLeft_cons_inr + theorem Finset.toLeft_disjSum + theorem Finset.toLeft_disjSum_toRight + theorem Finset.toLeft_image_swap + theorem Finset.toLeft_insert_inl + theorem Finset.toLeft_insert_inr + theorem Finset.toLeft_inter + theorem Finset.toLeft_map_sumComm + theorem Finset.toLeft_monotone + theorem Finset.toLeft_sdiff + theorem Finset.toLeft_subset_toLeft + theorem Finset.toLeft_union + def Finset.toRight + theorem Finset.toRight_cons_inl + theorem Finset.toRight_cons_inr + theorem Finset.toRight_disjSum + theorem Finset.toRight_image_swap + theorem Finset.toRight_insert_inl + theorem Finset.toRight_insert_inr + theorem Finset.toRight_inter + theorem Finset.toRight_map_sumComm + theorem Finset.toRight_monotone + theorem Finset.toRight_sdiff + theorem Finset.toRight_subset_toRight + theorem Finset.toRight_union 2024-10-04 10:12:21 8834646 feat(Topology/Group): Open normal subgroup (#16980) Define the type of open normal subgroup in a topological group. ESTIMATED CHANGES Modified Mathlib/Topology/Algebra/OpenSubgroup.lean + structure OpenNormalAddSubgroup + theorem OpenNormalSubgroup.toSubgroup_injective + structure OpenNormalSubgroup 2024-10-04 10:12:20 5852322 feat(Tactic/Algebraize): add algebraize tactic (#16217) This PR adds the `algebraize` tactic, which automatically adds `Algebra`, and if possible `IsScalarTower` instances corresponding to `RingHom`s given as arguments to the tactic. It will also search through the local context for `RingHom` properties of those `RingHom`s, and add the corresponding `Algebra` properties. The `RingHom` properties which have a corresponding `Algebra` property should be tagged using the `algebraize` attribute, which is also given in this PR. That attribute takes a name of a the corresponding `Algebra` property as an attribute, or of a constructor for such a property (this is needed when the proof of the corresponding `Algebra` property is not just given by a term the `RingHom` property). For examples of its usage, see the files in `RingTheory/` which are also modified in this PR. Most of this tactic was created during the AIM workshop "Formalizing algebraic geometry" in June 2024. Co-authored by: Johan Commelin, Nick Kuhn, Arend Mellendijk, Christian Merten, Adam Topaz (there might have been more, please let me know if you are not in this list!) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/RingTheory/FinitePresentation.lean Modified Mathlib/RingTheory/FiniteType.lean Modified Mathlib/RingTheory/Finiteness.lean Modified Mathlib/RingTheory/Flat/Algebra.lean Modified Mathlib/RingTheory/IntegralClosure/IsIntegral/Defs.lean Modified Mathlib/Tactic.lean Added Mathlib/Tactic/Algebraize.lean + def Lean.Attr.algebraizeGetParam + structure Mathlib.Tactic.Algebraize.Config + def Mathlib.Tactic.Algebraize.addAlgebraInstanceFromRingHom + def Mathlib.Tactic.Algebraize.addIsScalarTowerInstanceFromRingHomComp + def Mathlib.Tactic.Algebraize.addProperties Modified scripts/noshake.json Added test/algebraize.lean + def RingHom.testProperty1 + def RingHom.testProperty2 + def RingHom.testProperty3 2024-10-04 09:10:41 b758def chore: bump toolchain to v4.13.0-rc3 (#17401) ESTIMATED CHANGES Modified lean-toolchain 2024-10-04 08:21:41 4e8b403 feat: the cosine of `π / 5` is `(1 + √5) / 4` (#17393) ESTIMATED CHANGES Modified Mathlib/Algebra/QuadraticDiscriminant.lean +/- theorem discrim_eq_sq_of_quadratic_eq_zero +/- theorem discrim_le_zero +/- theorem discrim_le_zero_of_nonpos +/- theorem discrim_lt_zero +/- theorem discrim_lt_zero_of_neg Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Basic.lean + theorem Real.Polynomial.isRoot_cos_pi_div_five + theorem Real.cos_pi_div_five + theorem Real.quadratic_root_cos_pi_div_five Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Complex.lean Modified Mathlib/Geometry/Euclidean/Basic.lean 2024-10-04 08:03:23 96f08e7 chore: update Mathlib dependencies 2024-10-04 (#17397) This PR updates the Mathlib dependencies. ESTIMATED CHANGES Modified lake-manifest.json 2024-10-04 07:26:49 3ad544d ci(nightly_detect_failure): add actionable message in case of failure (#17329) Also, remove the logic that detects whether a message has already been posted, since we now post the sha which is always different. ESTIMATED CHANGES Modified .github/workflows/nightly_detect_failure.yml 2024-10-04 06:17:50 b0bcf46 feat: if a function is analytic on a set, its derivative also is, even if the space is not complete (#17221) We already have a version of this theorem, but assuming completeness while this is not necessary: if the function is differentiable, then the power series for its derivative converges, to the given differential (since this is the case in the completion, and the embedding in the completion is an embedding). This result requires expanding the API around derivatives of analytic functions. As a byproduct, we also write down the derivative of linear maps into multilinear maps (which will be needed for the Faa di Bruno formula). ESTIMATED CHANGES Modified Mathlib/Analysis/Calculus/FDeriv/Analytic.lean - theorem AnalyticOn.contDiffOn + theorem AnalyticOn.differentiableOn + theorem AnalyticOn.exists_hasFTaylorSeriesUpToOn + theorem AnalyticOn.hasFTaylorSeriesUpToOn - theorem AnalyticOnNhd.contDiffOn - theorem AnalyticOnNhd.deriv + theorem AnalyticOnNhd.deriv_of_isOpen +/- theorem AnalyticOnNhd.differentiableOn - theorem AnalyticOnNhd.fderiv + theorem AnalyticOnNhd.fderiv_of_isOpen + theorem AnalyticOnNhd.hasFTaylorSeriesUpToOn - theorem AnalyticOnNhd.iteratedFDeriv + theorem AnalyticOnNhd.iteratedFDeriv_of_isOpen - theorem AnalyticWithinAt.contDiffWithinAt + theorem AnalyticWithinAt.differentiableWithinAt + theorem AnalyticWithinAt.exists_hasFTaylorSeriesUpToOn + theorem ContinuousLinearMap.hasFDerivAt_uncurry_of_multilinear + theorem HasFDerivAt.linear_multilinear_comp + theorem HasFDerivAt.multilinear_comp + theorem HasFDerivWithinAt.linear_multilinear_comp + theorem HasFDerivWithinAt.multilinear_comp - theorem HasFPowerSeriesOnBall.fderiv + theorem HasFPowerSeriesWithinAt.differentiableWithinAt + theorem HasFPowerSeriesWithinAt.fderivWithin_eq + theorem HasFPowerSeriesWithinAt.hasFDerivWithinAt + theorem HasFPowerSeriesWithinAt.hasStrictFDerivWithinAt + theorem HasFPowerSeriesWithinOnBall.differentiableOn + theorem HasFPowerSeriesWithinOnBall.fderivWithin_eq + theorem HasFPowerSeriesWithinOnBall.hasFDerivWithinAt + theorem HasFPowerSeriesWithinOnBall.hasSum_derivSeries_of_hasFDerivWithinAt + theorem PartialHomeomorph.analyticAt_symm' + theorem PartialHomeomorph.analyticAt_symm Modified Mathlib/Analysis/Normed/Operator/LinearIsometry.lean Modified Mathlib/Analysis/NormedSpace/OperatorNorm/NormedSpace.lean + def LinearIsometry.postcomp 2024-10-04 04:46:25 630c632 refactor(Algebra/Field/Subfield): minor golfing (#17376) ESTIMATED CHANGES Modified Mathlib/Algebra/Field/Subfield.lean 2024-10-04 04:46:24 a083bae feat(RingTheory): define two-sided Jacobson radical (#17341) - Add a constructor `TwoSidedIdeal.ofIdeal` to turn an `Ideal` that happens to be two-sided into a `TwoSidedIdeal`. - Use `ofIdeal` to define a two-sided version of the Jacobson radical. - Generalize some ring lemmas that didn't need to assume commutativity. ESTIMATED CHANGES Modified Mathlib/RingTheory/Ideal/Basic.lean +/- theorem Ideal.mem_span_singleton_sup Modified Mathlib/RingTheory/JacobsonIdeal.lean + theorem Ideal.exists_mul_add_sub_mem_of_mem_jacobson + theorem Ideal.jacobson_mul_mem_right + theorem TwoSidedIdeal.asIdeal_jacobson + def TwoSidedIdeal.jacobson Modified Mathlib/RingTheory/TwoSidedIdeal/Basic.lean + theorem TwoSidedIdeal.coe_mk' +/- theorem TwoSidedIdeal.mem_mk' Modified Mathlib/RingTheory/TwoSidedIdeal/Operations.lean + theorem Ideal.asIdeal_toTwoSided + theorem Ideal.coe_toTwoSided + theorem Ideal.mem_toTwoSided + def Ideal.toTwoSided + theorem Ideal.toTwoSided_asIdeal 2024-10-04 04:46:23 149d450 feat: Order properties of `Pi.single` (#17281) From LeanCamCombi ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Pi.lean + theorem Pi.mulSingle_le_mulSingle + theorem Pi.mulSingle_le_one + theorem Pi.one_le_mulSingle 2024-10-04 04:46:22 6dd0053 feat: Big operators indexed by an interval (#17280) From LeanCamCombi ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Order/BigOperators/Group/LocallyFinite.lean + theorem Finset.left_mul_prod_Ioc + theorem Finset.left_mul_prod_Ioi + theorem Finset.left_mul_prod_Ioo + theorem Finset.prod_Ico_mul_right + theorem Finset.prod_Iio_mul_right + theorem Finset.prod_Ioc_mul_left + theorem Finset.prod_Ioi_mul_left + theorem Finset.prod_Ioo_mul_left + theorem Finset.prod_Ioo_mul_right + theorem Finset.right_mul_prod_Ico + theorem Finset.right_mul_prod_Iio + theorem Finset.right_mul_prod_Ioo 2024-10-04 04:46:20 7e65505 feat: Order instances for `MulOpposite`/`AddOpposite` (#17201) Transfer order and ordered monoid/group/semiring/ring instances from `α` to `αᵐᵒᵖ` and `αᵃᵒᵖ`. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Order/Group/Opposite.lean + theorem AddOpposite.one_le_op + theorem AddOpposite.one_le_unop + theorem AddOpposite.op_le_one + theorem AddOpposite.unop_le_one + theorem MulOpposite.one_le_op + theorem MulOpposite.one_le_unop + theorem MulOpposite.op_le_one + theorem MulOpposite.op_le_op + theorem MulOpposite.op_nonneg + theorem MulOpposite.op_nonpos + theorem MulOpposite.unop_le_one + theorem MulOpposite.unop_le_unop + theorem MulOpposite.unop_nonneg + theorem MulOpposite.unop_nonpos Added Mathlib/Algebra/Order/Ring/Opposite.lean 2024-10-04 04:46:19 99b8e71 feat(Data/*/Sort): lemmas on sorted lists (#16078) The main thing we prove is that if `l` is a list, and `a` is smaller than all elements on it, then `sort r (a :: l) = a :: sort r l`. ESTIMATED CHANGES Modified Mathlib/Data/Finset/Basic.lean + theorem List.toFinset_toList Modified Mathlib/Data/Finset/Sort.lean + theorem Finset.sort_cons + theorem Finset.sort_insert + theorem Finset.sort_val + theorem List.toFinset_sort Modified Mathlib/Data/List/Sort.lean + theorem List.insertionSort_cons + theorem List.orderedInsert_of_le Modified Mathlib/Data/Multiset/Sort.lean + theorem Multiset.sort_cons 2024-10-04 03:58:07 435c3d7 chore(Finset): remove old-style spellings (#17327) Deprecate `sdiff_singleton_eq_self` in favour of `erase_eq_of_not_mem`: the spelling `s.erase a` is preferred over `s \ {a}`. Deprecate `sdiff_eq_self` in favour of `sdiff_eq_self_iff_disjoint`: the spelling `Disjoint s t` is preferred over `s ∩ t ⊆ ∅`. Deprecate `filter_inter_filter_neg_eq` in favour of `disjoint_filter_filter_neg`: the spelling `Disjoint s t` is preferred over `s ∩ t = ∅`. Amend statement of `filter_cons` to be simpler and match `filter_insert` more closely. ESTIMATED CHANGES Modified Mathlib/Data/FinEnum.lean Modified Mathlib/Data/Finset/Basic.lean - theorem Finset.Finset.filter_inter_filter_neg_eq - theorem Finset.Finset.sdiff_eq_self +/- theorem Finset.sdiff_singleton_eq_erase +/- theorem Finset.sdiff_singleton_eq_self Modified Mathlib/Data/Fintype/Fin.lean 2024-10-04 03:33:32 1c37f1e chore: bump toolchain to v4.13.0-rc2 (#17377) This merges the already reviewed `bump/v4.13.0` branch. ESTIMATED CHANGES Modified Archive/Examples/IfNormalization/WithoutAesop.lean Modified Cache/IO.lean Modified Cache/Requests.lean Modified Mathlib/Algebra/AddTorsor.lean Modified Mathlib/Algebra/BigOperators/Group/List.lean - theorem List.countP_join - theorem List.count_join Modified Mathlib/Algebra/CharZero/Defs.lean Modified Mathlib/Algebra/ContinuedFractions/ConvergentsEquiv.lean Modified Mathlib/Algebra/Field/Defs.lean Modified Mathlib/Algebra/Free.lean Modified Mathlib/Algebra/Group/Hom/Basic.lean Modified Mathlib/Algebra/Group/Hom/Defs.lean Modified Mathlib/Algebra/Group/Subgroup/Basic.lean Modified Mathlib/Algebra/Group/Subgroup/Finite.lean Modified Mathlib/Algebra/Group/Submonoid/Operations.lean Modified Mathlib/Algebra/Group/Subsemigroup/Operations.lean Modified Mathlib/Algebra/Group/ZeroOne.lean Modified Mathlib/Algebra/GroupWithZero/NonZeroDivisors.lean Modified Mathlib/Algebra/Homology/HomologicalBicomplex.lean Modified Mathlib/Algebra/Homology/TotalComplex.lean Modified Mathlib/Algebra/Homology/TotalComplexShift.lean Modified Mathlib/Algebra/Module/Submodule/Lattice.lean Modified Mathlib/Algebra/NeZero.lean - theorem Nat.pos_of_neZero - theorem NeZero.ne' - theorem NeZero.ne - theorem neZero_iff - theorem neZero_zero_iff_false Modified Mathlib/Algebra/Order/BigOperators/Group/List.lean Modified Mathlib/Algebra/Order/Floor.lean Modified Mathlib/Algebra/Order/Group/Abs.lean Modified Mathlib/Algebra/Order/Group/Cone.lean Modified Mathlib/Algebra/Order/Group/Defs.lean Modified Mathlib/Algebra/Order/Hom/Basic.lean Modified Mathlib/Algebra/Order/Monoid/Prod.lean Modified Mathlib/Algebra/Order/Ring/Cone.lean Modified Mathlib/Algebra/Order/ZeroLEOne.lean Modified Mathlib/Algebra/Polynomial/BigOperators.lean Modified Mathlib/Algebra/Polynomial/Degree/CardPowDegree.lean Modified Mathlib/Algebra/Ring/CentroidHom.lean Modified Mathlib/Algebra/Ring/Parity.lean Modified Mathlib/Algebra/Ring/Subring/Basic.lean Modified Mathlib/Algebra/Ring/Subsemiring/Basic.lean Modified Mathlib/Algebra/Star/Free.lean Modified Mathlib/AlgebraicGeometry/Modules/Tilde.lean Modified Mathlib/AlgebraicGeometry/Morphisms/QuasiCompact.lean Modified Mathlib/AlgebraicGeometry/OpenImmersion.lean Modified Mathlib/AlgebraicGeometry/ProjectiveSpectrum/Scheme.lean Modified Mathlib/AlgebraicGeometry/Pullbacks.lean Modified Mathlib/Analysis/Analytic/Composition.lean Modified Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Instances.lean Modified Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/NonUnital.lean Modified Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Unital.lean Modified Mathlib/Analysis/Calculus/Deriv/Basic.lean Modified Mathlib/Analysis/Calculus/FDeriv/Mul.lean Modified Mathlib/Analysis/InnerProductSpace/OfNorm.lean Modified Mathlib/Analysis/NormedSpace/Multilinear/Basic.lean Modified Mathlib/Analysis/SpecialFunctions/Integrals.lean Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Basic.lean Modified Mathlib/CategoryTheory/ConnectedComponents.lean Modified Mathlib/CategoryTheory/Extensive.lean Modified Mathlib/CategoryTheory/Functor/KanExtension/Adjunction.lean Modified Mathlib/CategoryTheory/GradedObject/Monoidal.lean Modified Mathlib/CategoryTheory/LiftingProperties/Basic.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Images.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Pullback/CommSq.lean Modified Mathlib/CategoryTheory/MorphismProperty/Basic.lean Modified Mathlib/CategoryTheory/Sites/Coherent/SheafComparison.lean Modified Mathlib/CategoryTheory/Sites/Grothendieck.lean Modified Mathlib/CategoryTheory/Triangulated/Functor.lean Modified Mathlib/Combinatorics/Additive/AP/Three/Defs.lean Modified Mathlib/Combinatorics/Configuration.lean Modified Mathlib/Combinatorics/Enumerative/DyckWord.lean Modified Mathlib/Combinatorics/SetFamily/KruskalKatona.lean Modified Mathlib/Combinatorics/SimpleGraph/Hamiltonian.lean Modified Mathlib/Combinatorics/SimpleGraph/Path.lean Modified Mathlib/Combinatorics/SimpleGraph/Regularity/Equitabilise.lean Modified Mathlib/Combinatorics/SimpleGraph/Triangle/Basic.lean Modified Mathlib/Combinatorics/SimpleGraph/Walk.lean Modified Mathlib/Combinatorics/Young/YoungDiagram.lean Modified Mathlib/Computability/Ackermann.lean Modified Mathlib/Computability/Halting.lean Modified Mathlib/Computability/Language.lean Modified Mathlib/Computability/PartrecCode.lean Modified Mathlib/Computability/TuringMachine.lean Modified Mathlib/Control/Applicative.lean Modified Mathlib/Control/Basic.lean - theorem Functor.map_map - theorem map_bind Modified Mathlib/Control/Functor.lean Modified Mathlib/Control/Traversable/Basic.lean Modified Mathlib/Control/Traversable/Equiv.lean Modified Mathlib/Control/Traversable/Instances.lean Modified Mathlib/Data/Array/ExtractLemmas.lean Modified Mathlib/Data/DFinsupp/Order.lean Modified Mathlib/Data/Fin/Basic.lean - theorem Fin.cast_refl +/- theorem Fin.ofNat'_one +/- theorem Fin.ofNat'_zero - theorem Fin.one_eq_zero_iff - theorem Fin.zero_eq_one_iff Modified Mathlib/Data/Fin/Tuple/Basic.lean Modified Mathlib/Data/Fin/Tuple/NatAntidiagonal.lean Modified Mathlib/Data/Finset/Basic.lean Modified Mathlib/Data/Finset/Functor.lean + theorem Finset.map_comp_coe_apply Modified Mathlib/Data/Finset/NatDivisors.lean Modified Mathlib/Data/Fintype/Card.lean Modified Mathlib/Data/Fintype/Prod.lean Modified Mathlib/Data/Int/Defs.lean Modified Mathlib/Data/List/Basic.lean - theorem List.foldl_assoc - theorem List.foldr_assoc - theorem List.getElem_attach - theorem List.getLast?_eq_none - theorem List.getLast?_isSome - theorem List.map_tail - theorem List.mem_of_mem_getLast? - theorem List.mem_of_mem_head? - theorem List.singleton_inj Modified Mathlib/Data/List/Chain.lean Modified Mathlib/Data/List/Cycle.lean Modified Mathlib/Data/List/Dedup.lean Modified Mathlib/Data/List/Defs.lean Modified Mathlib/Data/List/Forall2.lean Modified Mathlib/Data/List/GetD.lean Modified Mathlib/Data/List/Indexes.lean Modified Mathlib/Data/List/Infix.lean - theorem List.mem_of_mem_tail Modified Mathlib/Data/List/InsertNth.lean Modified Mathlib/Data/List/Intervals.lean Modified Mathlib/Data/List/Lattice.lean Modified Mathlib/Data/List/Lemmas.lean - theorem List.getLast_tail Modified Mathlib/Data/List/MinMax.lean + theorem List.getD_max?_eq_unbot'_maximum - theorem List.getD_maximum?_eq_unbot'_maximum + theorem List.getD_min?_eq_untop'_minimum - theorem List.getD_minimum?_eq_untop'_minimum Modified Mathlib/Data/List/Nodup.lean +/- theorem List.Nodup.diff_eq_filter Modified Mathlib/Data/List/NodupEquivFin.lean Modified Mathlib/Data/List/Perm.lean - theorem List.Perm.foldr_eq' Modified Mathlib/Data/List/Permutation.lean Modified Mathlib/Data/List/Rotate.lean Modified Mathlib/Data/List/Sort.lean +/- theorem List.Sorted.merge - theorem List.map_merge Modified Mathlib/Data/List/Sublists.lean Modified Mathlib/Data/List/Sym.lean Modified Mathlib/Data/Multiset/Basic.lean Modified Mathlib/Data/Multiset/Functor.lean Modified Mathlib/Data/Nat/BitIndices.lean +/- theorem Nat.bitIndices_one +/- theorem Nat.bitIndices_zero Modified Mathlib/Data/Nat/Bits.lean + theorem Nat.binaryRec_one +/- theorem Nat.bodd_one +/- theorem Nat.div2_one +/- theorem Nat.div2_succ Modified Mathlib/Data/Nat/Bitwise.lean - theorem Nat.xor_self - theorem Nat.xor_zero - theorem Nat.zero_xor Modified Mathlib/Data/Nat/Cast/NeZero.lean Modified Mathlib/Data/Nat/Defs.lean - theorem Nat.lt_one_iff - theorem Nat.mod_mul_mod Modified Mathlib/Data/Nat/Digits.lean Modified Mathlib/Data/Nat/Factorization/Basic.lean Modified Mathlib/Data/Nat/Factorization/Defs.lean Modified Mathlib/Data/Nat/Log.lean Modified Mathlib/Data/Nat/WithBot.lean Modified Mathlib/Data/Num/Lemmas.lean Modified Mathlib/Data/Option/Basic.lean - theorem Option.map_bind - theorem Option.map_pbind - theorem Option.pmap_eq_none_iff - theorem Option.pmap_eq_some_iff - theorem Option.pmap_none - theorem Option.pmap_some Modified Mathlib/Data/Option/Defs.lean - theorem Option.mem_toList Modified Mathlib/Data/Ordmap/Ordset.lean Modified Mathlib/Data/PFunctor/Univariate/M.lean Modified Mathlib/Data/PNat/Defs.lean Modified Mathlib/Data/Prod/Basic.lean +/- theorem Prod.lex_iff Modified Mathlib/Data/Prod/Lex.lean Modified Mathlib/Data/Rat/Lemmas.lean Modified Mathlib/Data/Seq/WSeq.lean Modified Mathlib/Data/Set/MemPartition.lean Modified Mathlib/Data/Setoid/Basic.lean Modified Mathlib/Data/Vector/Defs.lean Modified Mathlib/Data/ZMod/Defs.lean Modified Mathlib/Dynamics/PeriodicPts.lean Modified Mathlib/FieldTheory/IsAlgClosed/AlgebraicClosure.lean Modified Mathlib/FieldTheory/KummerExtension.lean Modified Mathlib/FieldTheory/PurelyInseparable.lean Modified Mathlib/FieldTheory/Separable.lean Modified Mathlib/FieldTheory/SeparableDegree.lean Modified Mathlib/Geometry/RingedSpace/OpenImmersion.lean Modified Mathlib/Geometry/RingedSpace/PresheafedSpace/Gluing.lean Modified Mathlib/GroupTheory/CommutingProbability.lean Modified Mathlib/GroupTheory/FreeGroup/Basic.lean Modified Mathlib/GroupTheory/GroupAction/Quotient.lean Modified Mathlib/GroupTheory/OrderOfElement.lean Modified Mathlib/GroupTheory/Perm/Cycle/Concrete.lean Modified Mathlib/GroupTheory/Perm/Sign.lean Modified Mathlib/LinearAlgebra/Alternating/DomCoprod.lean Modified Mathlib/LinearAlgebra/CliffordAlgebra/Grading.lean Modified Mathlib/LinearAlgebra/Dual.lean +/- theorem LinearMap.dualMap_eq_lcomp Modified Mathlib/LinearAlgebra/FiniteDimensional/Defs.lean Modified Mathlib/LinearAlgebra/Matrix/Adjugate.lean Modified Mathlib/LinearAlgebra/Matrix/Charpoly/Coeff.lean Modified Mathlib/LinearAlgebra/Matrix/Determinant/Basic.lean Modified Mathlib/LinearAlgebra/Semisimple.lean Modified Mathlib/LinearAlgebra/TensorProduct/Graded/Internal.lean Modified Mathlib/Logic/Basic.lean Modified Mathlib/Logic/Encodable/Basic.lean Modified Mathlib/Logic/Equiv/Array.lean Modified Mathlib/Logic/Nonempty.lean Modified Mathlib/MeasureTheory/Constructions/BorelSpace/Order.lean Modified Mathlib/MeasureTheory/Measure/Content.lean Modified Mathlib/ModelTheory/Algebra/Ring/Basic.lean Modified Mathlib/ModelTheory/Basic.lean Modified Mathlib/ModelTheory/Encoding.lean Modified Mathlib/ModelTheory/Syntax.lean Modified Mathlib/NumberTheory/ADEInequality.lean Modified Mathlib/NumberTheory/Bertrand.lean Modified Mathlib/NumberTheory/Cyclotomic/Discriminant.lean Modified Mathlib/NumberTheory/Divisors.lean Modified Mathlib/NumberTheory/LegendreSymbol/GaussEisensteinLemmas.lean Modified Mathlib/NumberTheory/LegendreSymbol/JacobiSymbol.lean Modified Mathlib/NumberTheory/NumberField/Units/DirichletTheorem.lean Modified Mathlib/NumberTheory/PythagoreanTriples.lean Modified Mathlib/NumberTheory/SmoothNumbers.lean Modified Mathlib/NumberTheory/SumFourSquares.lean Modified Mathlib/Order/Directed.lean Modified Mathlib/Order/Filter/Bases.lean Modified Mathlib/Order/Hom/Basic.lean Modified Mathlib/Order/Hom/Bounded.lean Modified Mathlib/Order/Interval/Finset/Nat.lean Modified Mathlib/Order/RelIso/Basic.lean Modified Mathlib/Order/SuccPred/LinearLocallyFinite.lean +/- theorem toZ_of_lt Modified Mathlib/Order/SymmDiff.lean Modified Mathlib/Probability/ProbabilityMassFunction/Basic.lean Modified Mathlib/Probability/ProbabilityMassFunction/Monad.lean Modified Mathlib/RepresentationTheory/GroupCohomology/LowDegree.lean Modified Mathlib/RingTheory/AdjoinRoot.lean Modified Mathlib/RingTheory/IntegralClosure/IsIntegralClosure/Basic.lean Modified Mathlib/RingTheory/LocalRing/Module.lean Modified Mathlib/RingTheory/Localization/FractionRing.lean Modified Mathlib/RingTheory/MvPolynomial/Symmetric/NewtonIdentities.lean Modified Mathlib/RingTheory/NonUnitalSubsemiring/Basic.lean Modified Mathlib/RingTheory/Polynomial/Cyclotomic/Eval.lean Modified Mathlib/RingTheory/RingHomProperties.lean Modified Mathlib/RingTheory/SimpleRing/Basic.lean Modified Mathlib/RingTheory/Smooth/StandardSmooth.lean Modified Mathlib/SetTheory/Cardinal/Finite.lean Modified Mathlib/Tactic/CC/Addition.lean Modified Mathlib/Tactic/IntervalCases.lean Modified Mathlib/Tactic/NormNum/DivMod.lean Modified Mathlib/Tactic/Ring/Basic.lean Modified Mathlib/Tactic/WLOG.lean Modified Mathlib/Testing/SlimCheck/Functions.lean Modified Mathlib/Topology/Algebra/Valued/NormedValued.lean Modified Mathlib/Topology/Category/LightProfinite/Extend.lean Modified Mathlib/Topology/Category/Profinite/Extend.lean Modified Mathlib/Topology/ContinuousMap/Basic.lean Modified Mathlib/Topology/MetricSpace/Dilation.lean Modified Mathlib/Topology/Metrizable/Uniformity.lean Modified Mathlib/Topology/Order/LawsonTopology.lean Modified Mathlib/Topology/UniformSpace/Cauchy.lean Modified Mathlib/Util/CountHeartbeats.lean Modified lake-manifest.json Modified lakefile.lean Modified lean-toolchain Modified scripts/noshake.json Modified test/ValuedCSP.lean Modified test/aesop_cat.lean Modified test/matrix.lean Modified test/says.lean 2024-10-03 20:47:20 3ca1060 chore: Rename `UniformEmbedding` to `IsUniformEmbedding` (#17295) `Function.Embedding` is a type while `Embedding` is a proposition, and there are many other kinds of embeddings than topological embeddings. Hence this PR is a step towards 1. renaming `Embedding` to `IsEmbedding` and similarly for neighborhing declarations (which `DenseEmbedding` is) 2. namespacing it inside `Topology` [Zulip](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/rename.20.60Inducing.60.20and.20.60Embedding.60.3F). See #15993 for context. ESTIMATED CHANGES Modified Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Instances.lean Modified Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/NonUnital.lean Modified Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Restrict.lean +/- theorem QuasispectrumRestricts.cfcₙHom_eq_restrict +/- theorem QuasispectrumRestricts.cfcₙ_eq_restrict +/- theorem SpectrumRestricts.cfcHom_eq_restrict +/- theorem SpectrumRestricts.cfc_eq_restrict Modified Mathlib/Analysis/CStarAlgebra/Multiplier.lean + theorem DoubleCentralizer.isUniformEmbedding_toProdMulOpposite - theorem DoubleCentralizer.uniformEmbedding_toProdMulOpposite Modified Mathlib/Analysis/Complex/Basic.lean + theorem Complex.isUniformEmbedding_equivRealProd - theorem Complex.uniformEmbedding_equivRealProd Modified Mathlib/Analysis/InnerProductSpace/LinearPMap.lean Modified Mathlib/Analysis/Normed/Algebra/Unitization.lean + theorem Unitization.isUniformEmbedding_addEquiv - theorem Unitization.uniformEmbedding_addEquiv Modified Mathlib/Analysis/Normed/Algebra/UnitizationL1.lean Modified Mathlib/Analysis/Normed/Operator/ContinuousLinearMap.lean + theorem ContinuousLinearMap.isUniformEmbedding_of_bound - theorem ContinuousLinearMap.uniformEmbedding_of_bound Modified Mathlib/Analysis/NormedSpace/OperatorNorm/Completeness.lean Modified Mathlib/Analysis/Quaternion.lean Modified Mathlib/MeasureTheory/Function/LpSpace.lean Modified Mathlib/MeasureTheory/Function/SimpleFuncDenseLp.lean + theorem MeasureTheory.Lp.simpleFunc.isUniformEmbedding Modified Mathlib/MeasureTheory/Integral/IntegralEqImproper.lean Modified Mathlib/MeasureTheory/Integral/SetIntegral.lean Modified Mathlib/Topology/Algebra/Module/Alternating/Topology.lean + theorem ContinuousAlternatingMap.isUniformEmbedding_restrictScalars + theorem ContinuousAlternatingMap.isUniformEmbedding_toContinuousMultilinearMap - theorem ContinuousAlternatingMap.uniformEmbedding_restrictScalars - theorem ContinuousAlternatingMap.uniformEmbedding_toContinuousMultilinearMap Modified Mathlib/Topology/Algebra/Module/Basic.lean + theorem ContinuousLinearEquiv.isUniformEmbedding Modified Mathlib/Topology/Algebra/Module/FiniteDimension.lean Modified Mathlib/Topology/Algebra/Module/Multilinear/Topology.lean + theorem ContinuousMultilinearMap.isUniformEmbedding_restrictScalars + theorem ContinuousMultilinearMap.isUniformEmbedding_toUniformOnFun - theorem ContinuousMultilinearMap.uniformEmbedding_restrictScalars - theorem ContinuousMultilinearMap.uniformEmbedding_toUniformOnFun Modified Mathlib/Topology/Algebra/Module/StrongTopology.lean + theorem ContinuousLinearMap.isUniformEmbedding_restrictScalars + theorem ContinuousLinearMap.isUniformEmbedding_toUniformOnFun - theorem ContinuousLinearMap.uniformEmbedding_restrictScalars - theorem ContinuousLinearMap.uniformEmbedding_toUniformOnFun + theorem UniformConvergenceCLM.isUniformEmbedding_coeFn - theorem UniformConvergenceCLM.uniformEmbedding_coeFn Modified Mathlib/Topology/Algebra/SeparationQuotient.lean + theorem SeparationQuotient.outCLM_isUniformEmbedding - theorem SeparationQuotient.outCLM_uniformEmbedding Modified Mathlib/Topology/Algebra/UniformField.lean Modified Mathlib/Topology/Algebra/UniformGroup.lean + theorem isUniformEmbedding_translate_mul - theorem uniformEmbedding_translate_mul Modified Mathlib/Topology/ContinuousMap/Bounded.lean Modified Mathlib/Topology/ContinuousMap/Compact.lean + theorem ContinuousMap.isUniformEmbedding_equivBoundedOfCompact - theorem ContinuousMap.uniformEmbedding_equivBoundedOfCompact Modified Mathlib/Topology/ContinuousMap/ContinuousMapZero.lean + theorem ContinuousMapZero.isUniformEmbedding_comp + theorem ContinuousMapZero.isUniformEmbedding_toContinuousMap - theorem ContinuousMapZero.uniformEmbedding_comp - theorem ContinuousMapZero.uniformEmbedding_toContinuousMap Modified Mathlib/Topology/EMetricSpace/Basic.lean + theorem EMetric.controlled_of_isUniformEmbedding - theorem EMetric.controlled_of_uniformEmbedding + theorem EMetric.isUniformEmbedding_iff' - theorem EMetric.uniformEmbedding_iff' Modified Mathlib/Topology/EMetricSpace/Defs.lean Modified Mathlib/Topology/Instances/Int.lean + theorem Int.isUniformEmbedding_coe_real - theorem Int.uniformEmbedding_coe_real Modified Mathlib/Topology/Instances/Nat.lean + theorem Nat.isUniformEmbedding_coe_real - theorem Nat.uniformEmbedding_coe_real Modified Mathlib/Topology/Instances/PNat.lean + theorem PNat.isUniformEmbedding_coe - theorem PNat.uniformEmbedding_coe Modified Mathlib/Topology/Instances/Rat.lean + theorem Int.isUniformEmbedding_coe_rat - theorem Int.uniformEmbedding_coe_rat + theorem Nat.isUniformEmbedding_coe_rat - theorem Nat.uniformEmbedding_coe_rat + theorem Rat.isUniformEmbedding_coe_real - theorem Rat.uniformEmbedding_coe_real Modified Mathlib/Topology/MetricSpace/Antilipschitz.lean + theorem AntilipschitzWith.isUniformEmbedding Modified Mathlib/Topology/MetricSpace/Basic.lean + theorem Metric.isUniformEmbedding_bot_of_pairwise_le_dist + theorem Metric.isUniformEmbedding_iff' - theorem Metric.uniformEmbedding_bot_of_pairwise_le_dist - theorem Metric.uniformEmbedding_iff' Modified Mathlib/Topology/MetricSpace/Closeds.lean + theorem EMetric.NonemptyCompacts.ToCloseds.isUniformEmbedding - theorem EMetric.NonemptyCompacts.ToCloseds.uniformEmbedding Modified Mathlib/Topology/MetricSpace/Dilation.lean + theorem Dilation.isUniformEmbedding Modified Mathlib/Topology/MetricSpace/Isometry.lean + theorem IsUniformEmbedding.to_isometry + theorem Isometry.isUniformEmbedding - theorem UniformEmbedding.to_isometry Modified Mathlib/Topology/MetricSpace/Pseudo/Basic.lean + theorem Metric.controlled_of_isUniformEmbedding - theorem Metric.controlled_of_uniformEmbedding Modified Mathlib/Topology/UniformSpace/Ascoli.lean Modified Mathlib/Topology/UniformSpace/Basic.lean Modified Mathlib/Topology/UniformSpace/CompactConvergence.lean + theorem ContinuousMap.isUniformEmbedding_comp + theorem ContinuousMap.isUniformEmbedding_toUniformOnFunIsCompact - theorem ContinuousMap.uniformEmbedding_comp - theorem ContinuousMap.uniformEmbedding_toUniformOnFunIsCompact Modified Mathlib/Topology/UniformSpace/CompareReals.lean Modified Mathlib/Topology/UniformSpace/CompleteSeparated.lean + theorem IsUniformEmbedding.toClosedEmbedding - theorem UniformEmbedding.toClosedEmbedding Modified Mathlib/Topology/UniformSpace/Completion.lean + theorem CauchyFilter.isUniformEmbedding_pureCauchy - theorem CauchyFilter.uniformEmbedding_pureCauchy + theorem UniformSpace.Completion.isUniformEmbedding_coe - theorem UniformSpace.Completion.uniformEmbedding_coe Modified Mathlib/Topology/UniformSpace/Equiv.lean + theorem UniformEquiv.isUniformEmbedding Modified Mathlib/Topology/UniformSpace/UniformConvergenceTopology.lean Modified Mathlib/Topology/UniformSpace/UniformEmbedding.lean + theorem Embedding.to_isUniformEmbedding - theorem Embedding.to_uniformEmbedding + theorem Equiv.isUniformEmbedding - theorem Equiv.uniformEmbedding + theorem Filter.HasBasis.isUniformEmbedding_iff' + theorem Filter.HasBasis.isUniformEmbedding_iff - theorem Filter.HasBasis.uniformEmbedding_iff' - theorem Filter.HasBasis.uniformEmbedding_iff + theorem IsUniformEmbedding.comp + theorem IsUniformEmbedding.isComplete_iff + theorem IsUniformEmbedding.isDenseEmbedding + theorem IsUniformEmbedding.of_comp_iff + theorem IsUniformEmbedding.prod + structure IsUniformEmbedding - theorem UniformEmbedding.comp - theorem UniformEmbedding.isComplete_iff - theorem UniformEmbedding.isDenseEmbedding - theorem UniformEmbedding.of_comp_iff - theorem UniformEmbedding.prod - structure UniformEmbedding +/- theorem completeSpace_congr + theorem isUniformEmbedding_comap + theorem isUniformEmbedding_iff' + theorem isUniformEmbedding_iff_uniformInducing + theorem isUniformEmbedding_inl + theorem isUniformEmbedding_inr + theorem isUniformEmbedding_of_spaced_out + theorem isUniformEmbedding_set_inclusion + theorem isUniformEmbedding_subtypeEmb + theorem isUniformEmbedding_subtype_val - theorem uniformEmbedding_comap - theorem uniformEmbedding_iff' - theorem uniformEmbedding_iff_uniformInducing - theorem uniformEmbedding_inl - theorem uniformEmbedding_inr - theorem uniformEmbedding_of_spaced_out - theorem uniformEmbedding_set_inclusion - theorem uniformEmbedding_subtypeEmb - theorem uniformEmbedding_subtype_val Modified scripts/no_lints_prime_decls.txt 2024-10-03 20:47:19 aeefd81 refactor: Let `positivity` handle `ENNReal`-valued `ofNat` (#17212) The meta code was looking for `StrictOrderedSemiring` instead of the weaker `OrderedSemiring` + `Nontrivial`, which is enough. From LeanAPAP ESTIMATED CHANGES Modified Mathlib/Tactic/Positivity/Core.lean +/- theorem Mathlib.Meta.Positivity.pos_of_isNat Modified test/positivity.lean 2024-10-03 20:03:10 7a0b691 chore: three cdots (#17385) ESTIMATED CHANGES Modified Mathlib/Data/ENNReal/Real.lean Modified Mathlib/Data/Real/ConjExponents.lean Modified Mathlib/Order/Interval/Set/Basic.lean 2024-10-03 19:18:22 0c13e18 chore: Rename `FiniteDimensional.finrank` to `Module.finrank` (#17192) The namespacing in the linear algebra/affine spaces part of the library is a bit suboptimal. Here are a few arguments for why `FiniteDimensional.finrank` should be renamed to `Module.finrank`: 1. Other objects in maths can be finite-dimensional and have a rank. 2. `finrank` is directly analogous to `Module.rank`, they have lemmas in common (eg `finrank_eq_rank`, which is currently in neither of the declarations' namespaces) and have common series of lemmas that relate to other declarations in the `Module` namespace, eg `Module.Finite`. 3. We are in the process of replacing `FiniteDimensional` by `Module.Finite`, so the `FiniteDimensional` namespace will soon be obsolete. 4. It is a shorter and clearer name. Also make `Module.Finite` protected to avoid clashes with `Finite` ESTIMATED CHANGES Modified Archive/Imo/Imo2019Q2.lean Modified Archive/Sensitivity.lean Modified Mathlib/Algebra/Algebra/Subalgebra/IsSimpleOrder.lean Modified Mathlib/Algebra/Algebra/Subalgebra/Rank.lean Modified Mathlib/Algebra/Category/ModuleCat/Free.lean Modified Mathlib/Algebra/Category/ModuleCat/Simple.lean Modified Mathlib/Algebra/Lie/CartanExists.lean Modified Mathlib/Algebra/Lie/InvariantForm.lean Modified Mathlib/Algebra/Lie/Rank.lean Modified Mathlib/Algebra/Lie/TraceForm.lean Modified Mathlib/Algebra/Lie/Weights/Basic.lean Modified Mathlib/Algebra/Lie/Weights/Chain.lean Modified Mathlib/Algebra/Lie/Weights/Killing.lean Modified Mathlib/Algebra/Lie/Weights/Linear.lean Modified Mathlib/Algebra/Module/LinearMap/Polynomial.lean Modified Mathlib/Algebra/Module/Submodule/Map.lean - theorem Submodule.map_zero Modified Mathlib/Algebra/Module/ZLattice/Basic.lean Modified Mathlib/Algebra/Module/ZLattice/Covolume.lean Modified Mathlib/Algebra/Polynomial/Module/AEval.lean Modified Mathlib/Algebra/Quaternion.lean +/- theorem Quaternion.finrank_eq_four +/- theorem QuaternionAlgebra.finrank_eq_four Modified Mathlib/AlgebraicGeometry/EllipticCurve/Group.lean Modified Mathlib/Analysis/Calculus/BumpFunction/Convolution.lean Modified Mathlib/Analysis/Calculus/BumpFunction/FiniteDimension.lean Modified Mathlib/Analysis/Calculus/BumpFunction/Normed.lean Modified Mathlib/Analysis/Calculus/ContDiff/FiniteDimension.lean Modified Mathlib/Analysis/Calculus/LineDeriv/IntegrationByParts.lean Modified Mathlib/Analysis/Calculus/Rademacher.lean Modified Mathlib/Analysis/Convex/Measure.lean Modified Mathlib/Analysis/Convex/Normed.lean Modified Mathlib/Analysis/Convex/Radon.lean Modified Mathlib/Analysis/Distribution/SchwartzSpace.lean Modified Mathlib/Analysis/Fourier/Inversion.lean Modified Mathlib/Analysis/Fourier/RiemannLebesgueLemma.lean Modified Mathlib/Analysis/FunctionalSpaces/SobolevInequality.lean Modified Mathlib/Analysis/InnerProductSpace/Basic.lean Modified Mathlib/Analysis/InnerProductSpace/EuclideanDist.lean Modified Mathlib/Analysis/InnerProductSpace/GramSchmidtOrtho.lean Modified Mathlib/Analysis/InnerProductSpace/Orientation.lean Modified Mathlib/Analysis/InnerProductSpace/PiL2.lean Modified Mathlib/Analysis/InnerProductSpace/Projection.lean Modified Mathlib/Analysis/InnerProductSpace/Spectrum.lean Modified Mathlib/Analysis/InnerProductSpace/TwoDim.lean Modified Mathlib/Analysis/Normed/Module/FiniteDimension.lean Modified Mathlib/Analysis/NormedSpace/HahnBanach/Extension.lean Modified Mathlib/Analysis/SpecialFunctions/Gaussian/FourierTransform.lean Modified Mathlib/Analysis/SpecialFunctions/JapaneseBracket.lean Modified Mathlib/CategoryTheory/Preadditive/Schur.lean Modified Mathlib/Combinatorics/SimpleGraph/LapMatrix.lean Modified Mathlib/Data/Complex/FiniteDimensional.lean Modified Mathlib/Data/Matrix/Rank.lean Modified Mathlib/FieldTheory/Adjoin.lean Modified Mathlib/FieldTheory/Cardinality.lean Modified Mathlib/FieldTheory/Finite/Basic.lean +/- theorem card_eq_pow_finrank Modified Mathlib/FieldTheory/Finite/GaloisField.lean +/- theorem GaloisField.finrank Modified Mathlib/FieldTheory/Finite/Polynomial.lean +/- theorem MvPolynomial.finrank_R Modified Mathlib/FieldTheory/Fixed.lean Modified Mathlib/FieldTheory/Galois/Basic.lean Modified Mathlib/FieldTheory/IntermediateField/Algebraic.lean Modified Mathlib/FieldTheory/IsPerfectClosure.lean Modified Mathlib/FieldTheory/KummerExtension.lean +/- theorem finrank_of_isSplittingField_X_pow_sub_C Modified Mathlib/FieldTheory/Minpoly/Field.lean Modified Mathlib/FieldTheory/Minpoly/MinpolyDiv.lean Modified Mathlib/FieldTheory/PolynomialGaloisGroup.lean Modified Mathlib/FieldTheory/PrimitiveElement.lean Modified Mathlib/FieldTheory/PurelyInseparable.lean Modified Mathlib/FieldTheory/SeparableClosure.lean Modified Mathlib/FieldTheory/SeparableDegree.lean Modified Mathlib/FieldTheory/Tower.lean Modified Mathlib/Geometry/Euclidean/Angle/Oriented/Affine.lean Modified Mathlib/Geometry/Euclidean/Angle/Oriented/Basic.lean Modified Mathlib/Geometry/Euclidean/Angle/Oriented/RightAngle.lean Modified Mathlib/Geometry/Euclidean/Angle/Oriented/Rotation.lean Modified Mathlib/Geometry/Euclidean/Angle/Sphere.lean Modified Mathlib/Geometry/Euclidean/Basic.lean Modified Mathlib/Geometry/Euclidean/Circumcenter.lean Modified Mathlib/Geometry/Euclidean/MongePoint.lean Modified Mathlib/Geometry/Euclidean/Sphere/Basic.lean Modified Mathlib/Geometry/Euclidean/Triangle.lean Modified Mathlib/Geometry/Manifold/BumpFunction.lean Modified Mathlib/Geometry/Manifold/Instances/Sphere.lean Modified Mathlib/Geometry/Manifold/PartitionOfUnity.lean Modified Mathlib/Geometry/Manifold/WhitneyEmbedding.lean Modified Mathlib/LinearAlgebra/AffineSpace/FiniteDimensional.lean Modified Mathlib/LinearAlgebra/BilinearForm/Orthogonal.lean Modified Mathlib/LinearAlgebra/Charpoly/Basic.lean Modified Mathlib/LinearAlgebra/Coevaluation.lean Modified Mathlib/LinearAlgebra/Contraction.lean Modified Mathlib/LinearAlgebra/Determinant.lean Modified Mathlib/LinearAlgebra/Dimension/Constructions.lean - theorem FiniteDimensional.finrank_directSum - theorem FiniteDimensional.finrank_fin_fun - theorem FiniteDimensional.finrank_finsupp - theorem FiniteDimensional.finrank_finsupp_self - theorem FiniteDimensional.finrank_fintype_fun_eq_card - theorem FiniteDimensional.finrank_matrix - theorem FiniteDimensional.finrank_pi - theorem FiniteDimensional.finrank_pi_fintype - theorem FiniteDimensional.finrank_prod - theorem FiniteDimensional.finrank_tensorProduct + theorem Module.finrank_directSum + theorem Module.finrank_fin_fun + theorem Module.finrank_finsupp + theorem Module.finrank_finsupp_self + theorem Module.finrank_fintype_fun_eq_card + theorem Module.finrank_matrix + theorem Module.finrank_pi + theorem Module.finrank_pi_fintype + theorem Module.finrank_prod + theorem Module.finrank_tensorProduct Modified Mathlib/LinearAlgebra/Dimension/DivisionRing.lean Modified Mathlib/LinearAlgebra/Dimension/Finite.lean - theorem FiniteDimensional.finrank_eq_zero_iff - theorem FiniteDimensional.finrank_eq_zero_iff_isTorsion - theorem FiniteDimensional.finrank_eq_zero_of_rank_eq_zero - theorem FiniteDimensional.finrank_pos - theorem FiniteDimensional.finrank_pos_iff - theorem FiniteDimensional.finrank_pos_iff_exists_ne_zero - theorem FiniteDimensional.finrank_zero_iff - theorem FiniteDimensional.finrank_zero_of_subsingleton - theorem FiniteDimensional.nontrivial_of_finrank_eq_succ - theorem FiniteDimensional.nontrivial_of_finrank_pos + theorem Module.finrank_eq_zero_iff + theorem Module.finrank_eq_zero_iff_isTorsion + theorem Module.finrank_eq_zero_of_rank_eq_zero + theorem Module.finrank_pos + theorem Module.finrank_pos_iff + theorem Module.finrank_pos_iff_exists_ne_zero + theorem Module.finrank_zero_iff + theorem Module.finrank_zero_of_subsingleton + theorem Module.nontrivial_of_finrank_eq_succ + theorem Module.nontrivial_of_finrank_pos Modified Mathlib/LinearAlgebra/Dimension/Finrank.lean - theorem FiniteDimensional.finrank_eq_of_rank_eq - theorem FiniteDimensional.finrank_le_finrank_of_rank_le_rank - theorem FiniteDimensional.finrank_le_of_rank_le - theorem FiniteDimensional.finrank_lt_of_rank_lt - theorem FiniteDimensional.lt_rank_of_lt_finrank - theorem FiniteDimensional.one_lt_rank_of_one_lt_finrank - theorem FiniteDimensional.rank_eq_ofNat_iff_finrank_eq_ofNat - theorem FiniteDimensional.rank_eq_one_iff_finrank_eq_one + theorem Module.finrank_eq_of_rank_eq + theorem Module.finrank_le_finrank_of_rank_le_rank + theorem Module.finrank_le_of_rank_le + theorem Module.finrank_lt_of_rank_lt + theorem Module.lt_rank_of_lt_finrank + theorem Module.one_lt_rank_of_one_lt_finrank + theorem Module.rank_eq_ofNat_iff_finrank_eq_ofNat + theorem Module.rank_eq_one_iff_finrank_eq_one Modified Mathlib/LinearAlgebra/Dimension/Free.lean - theorem FiniteDimensional.basisUnique_repr_eq_zero_iff - theorem FiniteDimensional.finrank_eq_card_chooseBasisIndex - theorem FiniteDimensional.finrank_mul_finrank - theorem FiniteDimensional.finrank_of_not_finite + theorem Module.basisUnique_repr_eq_zero_iff +/- theorem Module.finite_iff_of_rank_eq_nsmul +/- theorem Module.finite_of_finrank_eq_succ +/- theorem Module.finite_of_finrank_pos + theorem Module.finrank_eq_card_chooseBasisIndex + theorem Module.finrank_mul_finrank + theorem Module.finrank_of_not_finite + theorem Module.rank_lt_aleph0_iff - theorem Module.rank_lt_alpeh0_iff Modified Mathlib/LinearAlgebra/Dimension/FreeAndStrongRankCondition.lean Modified Mathlib/LinearAlgebra/Dimension/Localization.lean Modified Mathlib/LinearAlgebra/Dimension/RankNullity.lean Modified Mathlib/LinearAlgebra/Dimension/StrongRankCondition.lean - theorem FiniteDimensional.finrank_eq_card_basis - theorem FiniteDimensional.finrank_eq_card_finset_basis - theorem FiniteDimensional.finrank_self + theorem Module.finrank_eq_card_basis + theorem Module.finrank_eq_card_finset_basis + theorem Module.finrank_eq_nat_card_basis + theorem Module.finrank_eq_rank + theorem Module.finrank_self +/- theorem Module.mk_finrank_eq_card_basis + theorem Module.rank_lt_aleph0 + theorem Module.rank_self - theorem finrank_eq_nat_card_basis - theorem finrank_eq_rank - theorem rank_lt_aleph0 - theorem rank_self Modified Mathlib/LinearAlgebra/Dual.lean +/- theorem Module.finite_dual_iff Modified Mathlib/LinearAlgebra/Eigenspace/Basic.lean Modified Mathlib/LinearAlgebra/Eigenspace/Minpoly.lean Modified Mathlib/LinearAlgebra/Eigenspace/Triangularizable.lean Modified Mathlib/LinearAlgebra/Eigenspace/Zero.lean Modified Mathlib/LinearAlgebra/FiniteDimensional.lean Modified Mathlib/LinearAlgebra/FiniteDimensional/Defs.lean - theorem FiniteDimensional.eq_of_le_of_finrank_eq - theorem FiniteDimensional.eq_of_le_of_finrank_le - theorem FiniteDimensional.finiteDimensional_iff_of_rank_eq_nsmul - theorem FiniteDimensional.finrank_eq_card_basis' - theorem FiniteDimensional.finrank_eq_rank' - theorem FiniteDimensional.finrank_of_infinite_dimensional + theorem Module.finiteDimensional_iff_of_rank_eq_nsmul + theorem Module.finrank_eq_card_basis' + theorem Module.finrank_eq_rank' + theorem Module.finrank_of_infinite_dimensional +/- theorem Subalgebra.eq_of_le_of_finrank_eq +/- theorem Subalgebra.eq_of_le_of_finrank_le + theorem Submodule.eq_of_le_of_finrank_eq + theorem Submodule.eq_of_le_of_finrank_le Modified Mathlib/LinearAlgebra/FreeModule/Finite/Matrix.lean - theorem FiniteDimensional.finrank_linearMap - theorem FiniteDimensional.finrank_linearMap_self - theorem FiniteDimensional.rank_linearMap - theorem FiniteDimensional.rank_linearMap_self + theorem Module.finrank_linearMap + theorem Module.finrank_linearMap_self + theorem Module.rank_linearMap + theorem Module.rank_linearMap_self Modified Mathlib/LinearAlgebra/FreeModule/IdealQuotient.lean Modified Mathlib/LinearAlgebra/FreeModule/Norm.lean Modified Mathlib/LinearAlgebra/Matrix/GeneralLinearGroup/Card.lean Modified Mathlib/LinearAlgebra/Orientation.lean Modified Mathlib/LinearAlgebra/Projectivization/Basic.lean Modified Mathlib/LinearAlgebra/QuadraticForm/Basic.lean Modified Mathlib/LinearAlgebra/QuadraticForm/Complex.lean Modified Mathlib/LinearAlgebra/QuadraticForm/IsometryEquiv.lean Modified Mathlib/LinearAlgebra/QuadraticForm/Real.lean Modified Mathlib/LinearAlgebra/Semisimple.lean Modified Mathlib/LinearAlgebra/TensorProduct/Subalgebra.lean Modified Mathlib/LinearAlgebra/Trace.lean Modified Mathlib/MeasureTheory/Constructions/HaarToSphere.lean Modified Mathlib/MeasureTheory/Covering/BesicovitchVectorSpace.lean Modified Mathlib/MeasureTheory/Function/Jacobian.lean Modified Mathlib/MeasureTheory/Group/GeometryOfNumbers.lean Modified Mathlib/MeasureTheory/Integral/PeakFunction.lean Modified Mathlib/MeasureTheory/Measure/Haar/InnerProductSpace.lean Modified Mathlib/MeasureTheory/Measure/Haar/NormedSpace.lean Modified Mathlib/MeasureTheory/Measure/Haar/OfBasis.lean Modified Mathlib/MeasureTheory/Measure/Hausdorff.lean Modified Mathlib/MeasureTheory/Measure/Lebesgue/EqHaar.lean Modified Mathlib/MeasureTheory/Measure/Lebesgue/VolumeOfBalls.lean Modified Mathlib/NumberTheory/Cyclotomic/Basic.lean Modified Mathlib/NumberTheory/Cyclotomic/Embeddings.lean Modified Mathlib/NumberTheory/Cyclotomic/PrimitiveRoots.lean Modified Mathlib/NumberTheory/FunctionField.lean Modified Mathlib/NumberTheory/NumberField/Basic.lean +/- theorem NumberField.RingOfIntegers.rank Modified Mathlib/NumberTheory/NumberField/CanonicalEmbedding/Basic.lean Modified Mathlib/NumberTheory/NumberField/CanonicalEmbedding/ConvexBody.lean Modified Mathlib/NumberTheory/NumberField/CanonicalEmbedding/FundamentalCone.lean Modified Mathlib/NumberTheory/NumberField/ClassNumber.lean Modified Mathlib/NumberTheory/NumberField/Discriminant.lean Modified Mathlib/NumberTheory/NumberField/Embeddings.lean Modified Mathlib/NumberTheory/NumberField/EquivReindex.lean Modified Mathlib/NumberTheory/NumberField/FractionalIdeal.lean Modified Mathlib/NumberTheory/NumberField/House.lean Modified Mathlib/NumberTheory/NumberField/Norm.lean Modified Mathlib/NumberTheory/NumberField/Units/DirichletTheorem.lean Modified Mathlib/NumberTheory/RamificationInertia.lean Modified Mathlib/RepresentationTheory/Character.lean +/- theorem FDRep.char_one Modified Mathlib/RepresentationTheory/FDRep.lean Modified Mathlib/RingTheory/DedekindDomain/IntegralClosure.lean Modified Mathlib/RingTheory/DiscreteValuationRing/TFAE.lean Modified Mathlib/RingTheory/Discriminant.lean Modified Mathlib/RingTheory/FiniteType.lean Modified Mathlib/RingTheory/Finiteness.lean +/- theorem Module.Finite.equiv +/- theorem Module.Finite.equiv_iff +/- theorem Module.Finite.exists_fin' +/- theorem Module.Finite.exists_fin +/- theorem Module.Finite.of_surjective Modified Mathlib/RingTheory/Flat/EquationalCriterion.lean +/- theorem Module.Flat.exists_factorization_of_apply_eq_zero_of_free +/- theorem Module.Flat.exists_factorization_of_comp_eq_zero_of_free Modified Mathlib/RingTheory/Ideal/Cotangent.lean Modified Mathlib/RingTheory/LittleWedderburn.lean Modified Mathlib/RingTheory/LocalRing/Module.lean Modified Mathlib/RingTheory/Noetherian.lean Modified Mathlib/RingTheory/Norm/Basic.lean Modified Mathlib/RingTheory/Norm/Defs.lean Modified Mathlib/RingTheory/Polynomial/Eisenstein/IsIntegral.lean Modified Mathlib/RingTheory/PowerBasis.lean Modified Mathlib/RingTheory/SimpleModule.lean Modified Mathlib/RingTheory/Trace/Basic.lean Modified Mathlib/RingTheory/Trace/Defs.lean Modified Mathlib/RingTheory/Valuation/Minpoly.lean Modified Mathlib/RingTheory/WittVector/Isocrystal.lean Modified Mathlib/Topology/Algebra/Module/FiniteDimension.lean Modified Mathlib/Topology/MetricSpace/HausdorffDimension.lean 2024-10-03 17:44:06 78d9855 feat(CategoryTheory/Limits): Some infrastructure for the preservation of finite (co)limits (#17156) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Limits/Preserves/Finite.lean + def CategoryTheory.Limits.preservesFiniteColimitsOfNatIso + def CategoryTheory.Limits.preservesFiniteLimitsOfNatIso Modified Mathlib/CategoryTheory/Limits/Preserves/FunctorCategory.lean + def CategoryTheory.preservesFiniteColimitsOfEvaluation + def CategoryTheory.preservesFiniteLimitsOfEvaluation 2024-10-03 17:44:05 2d5610a feat(RingTheory/Unramified): Formally unramified product of rings (#15141) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Ring/Idempotents.lean + theorem IsIdempotentElem.map + theorem IsIdempotentElem.mul Modified Mathlib/RingTheory/Unramified/Basic.lean + theorem Algebra.FormallyUnramified.of_surjective Added Mathlib/RingTheory/Unramified/Pi.lean + theorem Algebra.FormallyUnramified.pi_iff 2024-10-03 17:44:04 24a4b4a refactor(AlgebraicGeometry): Introduce `Scheme.toSpecΓ` (#15082) ESTIMATED CHANGES Modified Mathlib/AlgebraicGeometry/AffineScheme.lean Modified Mathlib/AlgebraicGeometry/GammaSpecAdjunction.lean + def AlgebraicGeometry.Scheme.toSpecΓ + theorem AlgebraicGeometry.Scheme.toSpecΓ_app_top + theorem AlgebraicGeometry.Scheme.toSpecΓ_naturality + theorem AlgebraicGeometry.Scheme.toSpecΓ_preimage_basicOpen + theorem AlgebraicGeometry.SpecMap_ΓSpecIso_hom + theorem AlgebraicGeometry.toOpen_toSpecΓ_app - theorem AlgebraicGeometry.ΓSpec.SpecMap_ΓSpecIso_hom - theorem AlgebraicGeometry.ΓSpec.adjunction_unit_app_app_top - theorem AlgebraicGeometry.ΓSpec.adjunction_unit_map_basicOpen - theorem AlgebraicGeometry.ΓSpec.adjunction_unit_naturality - theorem AlgebraicGeometry.ΓSpec.toOpen_unit_app_val_c_app' - theorem AlgebraicGeometry.ΓSpec.toOpen_unit_app_val_c_app Modified Mathlib/AlgebraicGeometry/Morphisms/Affine.lean Modified Mathlib/AlgebraicGeometry/Morphisms/QuasiSeparated.lean Modified Mathlib/AlgebraicGeometry/Pullbacks.lean 2024-10-03 17:34:25 6b2a122 feat(RingTheory/Unramified): Classification of unramifield field extensions. (#15123) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Polynomial/Taylor.lean + theorem Polynomial.eval_add_of_sq_eq_zero Added Mathlib/RingTheory/Unramified/Field.lean + theorem Algebra.FormallyUnramified.bijective_of_isAlgClosed_of_localRing + theorem Algebra.FormallyUnramified.iff_isSeparable + theorem Algebra.FormallyUnramified.isField_of_isAlgClosed_of_localRing + theorem Algebra.FormallyUnramified.isReduced_of_field + theorem Algebra.FormallyUnramified.isSeparable + theorem Algebra.FormallyUnramified.of_isSeparable + theorem Algebra.FormallyUnramified.range_eq_top_of_isPurelyInseparable 2024-10-03 17:24:54 1a4c6bc feat(AlgebraicGeometry): Residue fields of schemes. (#15333) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/AlgebraicGeometry/ResidueField.lean + def AlgebraicGeometry.Scheme.Hom.residueFieldMap + def AlgebraicGeometry.Scheme.evaluation + theorem AlgebraicGeometry.Scheme.evaluation_eq_zero_iff_not_mem_basicOpen + theorem AlgebraicGeometry.Scheme.evaluation_naturality + theorem AlgebraicGeometry.Scheme.evaluation_naturality_apply + theorem AlgebraicGeometry.Scheme.evaluation_ne_zero_iff_mem_basicOpen + def AlgebraicGeometry.Scheme.fromSpecResidueField + theorem AlgebraicGeometry.Scheme.germ_residue + def AlgebraicGeometry.Scheme.residue + def AlgebraicGeometry.Scheme.residueField + def AlgebraicGeometry.Scheme.residueFieldCongr + theorem AlgebraicGeometry.Scheme.residueFieldCongr_fromSpecResidueField + theorem AlgebraicGeometry.Scheme.residueFieldCongr_inv + theorem AlgebraicGeometry.Scheme.residueFieldCongr_refl + theorem AlgebraicGeometry.Scheme.residueFieldCongr_symm + theorem AlgebraicGeometry.Scheme.residueFieldCongr_trans + theorem AlgebraicGeometry.Scheme.residueFieldCongr_trans_hom + theorem AlgebraicGeometry.Scheme.residueFieldMap_comp + theorem AlgebraicGeometry.Scheme.residueFieldMap_id + theorem AlgebraicGeometry.Scheme.residue_residueFieldCongr + theorem AlgebraicGeometry.Scheme.residue_residueFieldMap + theorem AlgebraicGeometry.Scheme.residue_surjective 2024-10-03 16:01:26 e58fb43 feat(Topology/Group): drop an unneeded assumption (#16551) - prove that the quotient map `G → G ⧸ N` is an open quotient map; - use recently added lemmas to drop a `[LocallyCompactSpace G]` assumption in `QuotientGroup.continuousSMul` (now called `QuotientGroup.instContinuousSMul`). ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Measure/Haar/Quotient.lean Modified Mathlib/Topology/Algebra/ConstMulAction.lean + theorem MulAction.isOpenQuotientMap_quotientMk Modified Mathlib/Topology/Algebra/Group/Basic.lean + theorem QuotientGroup.continuous_mk +/- theorem QuotientGroup.isOpenMap_coe + theorem QuotientGroup.isOpenQuotientMap_mk Modified Mathlib/Topology/Algebra/Group/Compact.lean Modified Mathlib/Topology/Algebra/Module/Basic.lean +/- theorem Submodule.isOpenMap_mkQ + theorem Submodule.isOpenQuotientMap_mkQ Modified Mathlib/Topology/Algebra/ProperAction.lean Modified Mathlib/Topology/Algebra/Ring/Ideal.lean +/- theorem QuotientRing.isOpenMap_coe + theorem QuotientRing.isOpenQuotientMap_mk Modified Mathlib/Topology/Maps/OpenQuotient.lean + theorem IsOpenQuotientMap.dense_preimage_iff 2024-10-03 15:18:47 fa42460 feat: golf using `module`/`match_scalars` throughout the library (#17365) 50 sample uses of the new (#16593) `module` and `match_scalars` tactics. ESTIMATED CHANGES Modified Mathlib/Algebra/Polynomial/Module/Basic.lean Modified Mathlib/Analysis/Analytic/Meromorphic.lean Modified Mathlib/Analysis/Calculus/FDeriv/Symmetric.lean Modified Mathlib/Analysis/Calculus/UniformLimitsDeriv.lean Modified Mathlib/Analysis/Convex/Basic.lean Modified Mathlib/Analysis/Convex/Combination.lean Modified Mathlib/Analysis/Convex/Jensen.lean Modified Mathlib/Analysis/Convex/Join.lean Modified Mathlib/Analysis/Convex/Side.lean Modified Mathlib/Analysis/Convex/Star.lean Modified Mathlib/Analysis/Convex/StoneSeparation.lean Modified Mathlib/Analysis/Convex/Strict.lean Modified Mathlib/Analysis/NormedSpace/Connected.lean Modified Mathlib/Geometry/Euclidean/Angle/Oriented/Rotation.lean Modified Mathlib/LinearAlgebra/LinearIndependent.lean Modified Mathlib/LinearAlgebra/QuadraticForm/Basic.lean Modified Mathlib/LinearAlgebra/Ray.lean Modified Mathlib/NumberTheory/LSeries/AbstractFuncEq.lean 2024-10-03 15:18:46 4f0309f style(GroupTheory,RingTheory/Congruence/Basic): use `where`, fix whitespace (#17362) ESTIMATED CHANGES Modified Mathlib/GroupTheory/Congruence/Basic.lean Modified Mathlib/RingTheory/Congruence/Basic.lean 2024-10-03 14:46:32 915e456 feat(UniformSpace.Basic): add ball_preimage (#17375) Simple lemma about the preimage of a ball and the ball of the preimage of an entourage. ESTIMATED CHANGES Modified Mathlib/Topology/UniformSpace/Basic.lean + theorem ball_preimage 2024-10-03 13:49:32 d369bba chore: update Mathlib dependencies 2024-10-03 (#17373) This PR updates the Mathlib dependencies. ESTIMATED CHANGES Modified lake-manifest.json 2024-10-03 13:49:31 1a9758b feat: `ENNReal`-valued conjugate exponents (#17353) Define `ENNReal.IsConjExponent`, the `ENNReal` analogue of `Real.IsConjExponent` and `NNReal.IsConjExponent`. This will allow stating Hölder's inequality for the L1 and Linfty norms too. From LeanAPAP ESTIMATED CHANGES Modified Mathlib/Data/ENNReal/Operations.lean +/- theorem ENNReal.coe_sub + theorem ENNReal.top_sub Modified Mathlib/Data/Real/ConjExponents.lean + theorem ENNReal.IsConjExponent.conjExponent_eq + theorem ENNReal.IsConjExponent.conj_eq + theorem ENNReal.IsConjExponent.div_conj_eq_sub_one + theorem ENNReal.IsConjExponent.inv_one_sub_inv + theorem ENNReal.IsConjExponent.mul_eq_add + theorem ENNReal.IsConjExponent.ne_zero + theorem ENNReal.IsConjExponent.one_le + theorem ENNReal.IsConjExponent.one_sub_inv + theorem ENNReal.IsConjExponent.one_sub_inv_inv + theorem ENNReal.IsConjExponent.one_top + theorem ENNReal.IsConjExponent.pos + theorem ENNReal.IsConjExponent.top_one + structure ENNReal.IsConjExponent + theorem ENNReal.coe_conjExponent + theorem ENNReal.isConjExponent_coe + theorem ENNReal.isConjExponent_comm + theorem ENNReal.isConjExponent_iff_eq_conjExponent + theorem NNReal.isConjExponent_comm + theorem Real.isConjExponent_comm 2024-10-03 10:58:26 81d4159 chore: generalise more lemmas from `LinearOrderedField` to `GroupWithZero` (#17359) ... and move the lemmas from `Algebra.Order.Field.Basic` to `Algebra.Order.GroupWithZero.Unbundled`. Also take the opportunity to add `₀` at the end, per the naming convention, and to make the priming of the lemmas consistent among pairs (primes should be on the lemmas changing left multiplication into right multiplication). ESTIMATED CHANGES Modified Archive/Imo/Imo1972Q5.lean Modified Archive/Imo/Imo1986Q5.lean Modified Mathlib.lean Modified Mathlib/Algebra/ContinuedFractions/Computation/ApproximationCorollaries.lean Modified Mathlib/Algebra/Order/Archimedean/Basic.lean Modified Mathlib/Algebra/Order/Field/Basic.lean - def OrderIso.mulLeft₀ - def OrderIso.mulRight₀ +/- theorem add_div_two_lt_right - theorem div_lt_comm₀ +/- theorem div_lt_iff' +/- theorem div_lt_iff +/- theorem div_lt_one - theorem div_self_le_one +/- theorem inv_mul_le_iff' +/- theorem inv_mul_le_iff +/- theorem inv_mul_lt_iff' +/- theorem inv_mul_lt_iff +/- theorem left_lt_add_div_two +/- theorem lt_div_iff' +/- theorem lt_div_iff +/- theorem mul_inv_le_iff' +/- theorem mul_inv_le_iff +/- theorem mul_inv_lt_iff' +/- theorem mul_inv_lt_iff +/- theorem one_lt_div Modified Mathlib/Algebra/Order/Field/Pointwise.lean Modified Mathlib/Algebra/Order/Floor.lean Modified Mathlib/Algebra/Order/GroupWithZero/Canonical.lean - theorem inv_lt_one₀ - theorem one_lt_inv₀ Modified Mathlib/Algebra/Order/GroupWithZero/Unbundled.lean +/- theorem div_le_iff₀' + theorem div_lt_comm₀ + theorem div_lt_iff₀' + theorem div_lt_iff₀ + theorem div_self_le_one + theorem inv_lt_one₀ + theorem inv_mul_le_iff₀' + theorem inv_mul_lt_iff₀' + theorem inv_mul_lt_iff₀ + theorem inv_mul_lt_one₀ +/- theorem le_div_iff₀' + theorem le_inv_mul_iff₀' + theorem le_mul_inv_iff₀' + theorem lt_div_comm₀ + theorem lt_div_iff₀' + theorem lt_div_iff₀ + theorem lt_inv_mul_iff₀' + theorem lt_inv_mul_iff₀ + theorem lt_mul_inv_iff₀' + theorem lt_mul_inv_iff₀ + theorem mul_inv_le_iff₀' + theorem mul_inv_lt_iff₀' + theorem mul_inv_lt_iff₀ + theorem one_lt_inv_mul₀ + theorem one_lt_inv₀ Added Mathlib/Algebra/Order/GroupWithZero/Unbundled/Lemmas.lean + def OrderIso.mulLeft₀ + def OrderIso.mulRight₀ Modified Mathlib/Analysis/Asymptotics/Asymptotics.lean Modified Mathlib/Analysis/CStarAlgebra/Unitization.lean Modified Mathlib/Analysis/Calculus/InverseFunctionTheorem/ApproximatesLinearOn.lean Modified Mathlib/Analysis/Calculus/MeanValue.lean Modified Mathlib/Analysis/Calculus/UniformLimitsDeriv.lean Modified Mathlib/Analysis/Complex/AbelLimit.lean Modified Mathlib/Analysis/Complex/Hadamard.lean Modified Mathlib/Analysis/Complex/PhragmenLindelof.lean Modified Mathlib/Analysis/Complex/UpperHalfPlane/Metric.lean Modified Mathlib/Analysis/Convex/Body.lean Modified Mathlib/Analysis/Convex/Continuous.lean Modified Mathlib/Analysis/Convex/Deriv.lean Modified Mathlib/Analysis/Convex/Gauge.lean Modified Mathlib/Analysis/Convex/Integral.lean Modified Mathlib/Analysis/Convex/Slope.lean Modified Mathlib/Analysis/Convex/SpecificFunctions/Basic.lean Modified Mathlib/Analysis/Convex/StrictConvexSpace.lean Modified Mathlib/Analysis/Distribution/SchwartzSpace.lean Modified Mathlib/Analysis/Fourier/RiemannLebesgueLemma.lean Modified Mathlib/Analysis/InnerProductSpace/LaxMilgram.lean Modified Mathlib/Analysis/LocallyConvex/WithSeminorms.lean Modified Mathlib/Analysis/Normed/Affine/AddTorsor.lean Modified Mathlib/Analysis/Normed/Algebra/Spectrum.lean Modified Mathlib/Analysis/Normed/Field/ProperSpace.lean Modified Mathlib/Analysis/Normed/Group/Quotient.lean Modified Mathlib/Analysis/Normed/Module/Basic.lean Modified Mathlib/Analysis/NormedSpace/OperatorNorm/NNNorm.lean Modified Mathlib/Analysis/NormedSpace/Pointwise.lean Modified Mathlib/Analysis/NormedSpace/RieszLemma.lean Modified Mathlib/Analysis/Seminorm.lean Modified Mathlib/Analysis/SpecialFunctions/Complex/Arctan.lean Modified Mathlib/Analysis/SpecialFunctions/Exp.lean Modified Mathlib/Analysis/SpecialFunctions/JapaneseBracket.lean Modified Mathlib/Analysis/SpecialFunctions/Log/Base.lean Modified Mathlib/Analysis/SpecialFunctions/Log/Basic.lean Modified Mathlib/Analysis/SpecialFunctions/Pow/Complex.lean Modified Mathlib/Analysis/SpecialFunctions/Pow/Real.lean Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Angle.lean Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Arctan.lean Modified Mathlib/Analysis/SpecificLimits/FloorPow.lean Modified Mathlib/Combinatorics/Additive/AP/Three/Behrend.lean Modified Mathlib/Combinatorics/Schnirelmann.lean Modified Mathlib/Combinatorics/SimpleGraph/Regularity/Bound.lean Modified Mathlib/Combinatorics/SimpleGraph/Regularity/Uniform.lean Modified Mathlib/Data/Complex/Exponential.lean Modified Mathlib/Data/Int/CardIntervalMod.lean Modified Mathlib/Data/NNReal/Basic.lean +/- theorem NNReal.div_lt_iff' +/- theorem NNReal.div_lt_iff + theorem NNReal.le_div_iff' +/- theorem NNReal.lt_div_iff' +/- theorem NNReal.lt_div_iff Modified Mathlib/Data/Real/Archimedean.lean Modified Mathlib/Data/Real/Pi/Bounds.lean Modified Mathlib/Data/Real/Pi/Irrational.lean Modified Mathlib/Data/Set/Pointwise/Interval.lean Modified Mathlib/Geometry/Manifold/Instances/Sphere.lean Modified Mathlib/Geometry/Manifold/IntegralCurve.lean Modified Mathlib/LinearAlgebra/Matrix/Gershgorin.lean Modified Mathlib/MeasureTheory/Covering/DensityTheorem.lean Modified Mathlib/MeasureTheory/Covering/Vitali.lean Modified Mathlib/MeasureTheory/Function/ConvergenceInMeasure.lean Modified Mathlib/MeasureTheory/Integral/MeanInequalities.lean Modified Mathlib/MeasureTheory/Integral/PeakFunction.lean Modified Mathlib/MeasureTheory/Measure/Lebesgue/VolumeOfBalls.lean Modified Mathlib/NumberTheory/ClassNumber/AdmissibleAbs.lean Modified Mathlib/NumberTheory/ClassNumber/AdmissibleCardPowDegree.lean Modified Mathlib/NumberTheory/DiophantineApproximation.lean Modified Mathlib/NumberTheory/Liouville/Basic.lean Modified Mathlib/NumberTheory/Liouville/LiouvilleWith.lean Modified Mathlib/NumberTheory/Modular.lean Modified Mathlib/NumberTheory/NumberField/CanonicalEmbedding/ConvexBody.lean Modified Mathlib/NumberTheory/NumberField/ClassNumber.lean Modified Mathlib/NumberTheory/NumberField/Discriminant.lean Modified Mathlib/NumberTheory/NumberField/Units/DirichletTheorem.lean Modified Mathlib/NumberTheory/Padics/Hensel.lean Modified Mathlib/NumberTheory/Rayleigh.lean Modified Mathlib/RingTheory/RootsOfUnity/Complex.lean Modified Mathlib/Topology/Algebra/Module/FiniteDimension.lean Modified Mathlib/Topology/Algebra/PontryaginDual.lean Modified Mathlib/Topology/ContinuousMap/Ideals.lean 2024-10-03 10:05:49 7010295 refactor(Counterexamples/SeminormLatticeNotDistrib): minor golfing (#17372) ESTIMATED CHANGES Modified Counterexamples/SeminormLatticeNotDistrib.lean 2024-10-03 10:05:48 3241ff3 chore(Algebra/DirectLimit): rm two porting notes (#17371) ESTIMATED CHANGES Modified Mathlib/Algebra/DirectLimit.lean 2024-10-03 10:05:47 e95b1d9 chore: update Mathlib dependencies 2024-10-03 (#17370) This PR updates the Mathlib dependencies. ESTIMATED CHANGES Modified lake-manifest.json 2024-10-03 10:05:46 23761eb refactor(SetTheory/Ordinal/Basic): deprecate Ordinal.omega in favor of Ordinal.omega0 (#17158) See [zulip](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/.CF.89_.20.CE.B1.20function) for the discussion. ESTIMATED CHANGES Modified Mathlib/SetTheory/Cardinal/Cofinality.lean + theorem Ordinal.cof_omega0 - theorem Ordinal.cof_omega Modified Mathlib/SetTheory/Cardinal/Ordinal.lean + theorem Cardinal.aleph'_omega0 - theorem Cardinal.aleph'_omega +/- theorem Cardinal.aleph0_le_aleph' +/- theorem Cardinal.aleph_zero + theorem Ordinal.omega0_lt_omega1 - theorem Ordinal.omega_lt_omega1 Modified Mathlib/SetTheory/Game/Nim.lean Modified Mathlib/SetTheory/Game/Short.lean +/- theorem SetTheory.PGame.short_birthday Modified Mathlib/SetTheory/Ordinal/Arithmetic.lean + theorem Ordinal.IsNormal.apply_omega0 - theorem Ordinal.IsNormal.apply_omega + theorem Ordinal.isLimit_iff_omega0_dvd - theorem Ordinal.isLimit_iff_omega_dvd + theorem Ordinal.lt_omega0 - theorem Ordinal.lt_omega + theorem Ordinal.nat_lt_omega0 - theorem Ordinal.nat_lt_omega + theorem Ordinal.omega0_isLimit + theorem Ordinal.omega0_le + theorem Ordinal.omega0_le_of_isLimit + theorem Ordinal.omega0_ne_zero + theorem Ordinal.omega0_pos - theorem Ordinal.omega_isLimit - theorem Ordinal.omega_le - theorem Ordinal.omega_le_of_isLimit - theorem Ordinal.omega_ne_zero + theorem Ordinal.one_add_of_omega0_le - theorem Ordinal.one_add_of_omega_le + theorem Ordinal.one_add_omega0 - theorem Ordinal.one_add_omega + theorem Ordinal.one_lt_omega0 - theorem Ordinal.one_lt_omega Modified Mathlib/SetTheory/Ordinal/Basic.lean + theorem Ordinal.card_omega0 - theorem Ordinal.card_omega + theorem Ordinal.lift_omega0 - theorem Ordinal.lift_omega + def Ordinal.omega0 - def Ordinal.omega Modified Mathlib/SetTheory/Ordinal/Exponential.lean Modified Mathlib/SetTheory/Ordinal/FixedPoint.lean + theorem Ordinal.add_eq_right_iff_mul_omega0_le - theorem Ordinal.add_eq_right_iff_mul_omega_le + theorem Ordinal.add_le_right_iff_mul_omega0_le - theorem Ordinal.add_le_right_iff_mul_omega_le + theorem Ordinal.deriv_add_eq_mul_omega0_add - theorem Ordinal.deriv_add_eq_mul_omega_add + theorem Ordinal.deriv_mul_eq_opow_omega0_mul - theorem Ordinal.deriv_mul_eq_opow_omega_mul + theorem Ordinal.eq_zero_or_opow_omega0_le_of_mul_eq_right - theorem Ordinal.eq_zero_or_opow_omega_le_of_mul_eq_right + theorem Ordinal.mul_eq_right_iff_opow_omega0_dvd - theorem Ordinal.mul_eq_right_iff_opow_omega_dvd + theorem Ordinal.mul_le_right_iff_opow_omega0_dvd - theorem Ordinal.mul_le_right_iff_opow_omega_dvd + theorem Ordinal.nfp_add_eq_mul_omega0 - theorem Ordinal.nfp_add_eq_mul_omega +/- theorem Ordinal.nfp_add_zero + theorem Ordinal.nfp_mul_eq_opow_omega0 - theorem Ordinal.nfp_mul_eq_opow_omega +/- theorem Ordinal.nfp_mul_one + theorem Ordinal.nfp_mul_opow_omega0_add - theorem Ordinal.nfp_mul_opow_omega_add Modified Mathlib/SetTheory/Ordinal/Notation.lean + theorem ONote.NF.of_dvd_omega0 + theorem ONote.NF.of_dvd_omega0_opow - theorem ONote.NF.of_dvd_omega - theorem ONote.NF.of_dvd_omega_opow + theorem ONote.omega0_le_oadd - theorem ONote.omega_le_oadd Modified Mathlib/SetTheory/Ordinal/Principal.lean + theorem Ordinal.add_omega0 + theorem Ordinal.add_omega0_opow - theorem Ordinal.add_omega - theorem Ordinal.add_omega_opow + theorem Ordinal.mul_lt_omega0_opow - theorem Ordinal.mul_lt_omega_opow + theorem Ordinal.mul_omega0 + theorem Ordinal.mul_omega0_dvd + theorem Ordinal.mul_omega0_opow_opow - theorem Ordinal.mul_omega - theorem Ordinal.mul_omega_dvd - theorem Ordinal.mul_omega_opow_opow + theorem Ordinal.opow_omega0 - theorem Ordinal.opow_omega + theorem Ordinal.principal_add_iff_zero_or_omega0_opow - theorem Ordinal.principal_add_iff_zero_or_omega_opow + theorem Ordinal.principal_add_omega0 + theorem Ordinal.principal_add_omega0_opow - theorem Ordinal.principal_add_omega - theorem Ordinal.principal_add_omega_opow + theorem Ordinal.principal_mul_iff_le_two_or_omega0_opow_opow - theorem Ordinal.principal_mul_iff_le_two_or_omega_opow_opow + theorem Ordinal.principal_mul_omega0 + theorem Ordinal.principal_mul_omega0_opow_opow - theorem Ordinal.principal_mul_omega - theorem Ordinal.principal_mul_omega_opow_opow + theorem Ordinal.principal_opow_omega0 - theorem Ordinal.principal_opow_omega Modified scripts/no_lints_prime_decls.txt 2024-10-03 07:38:17 39e0665 feat(FieldTheory): add lemmas about minpoly (#15723) ESTIMATED CHANGES Modified Mathlib/FieldTheory/Adjoin.lean + theorem minpoly.degree_dvd Modified Mathlib/FieldTheory/Minpoly/IsIntegrallyClosed.lean + theorem minpoly.ofSubring 2024-10-03 05:41:53 f841235 chore(Algebra/BigOperators/Module): restore `conv` (#17356) ESTIMATED CHANGES Modified Mathlib/Algebra/BigOperators/Module.lean 2024-10-03 05:41:52 491935d chore: unify monotonicity of rank lemmas (#17292) The names were all over the place. Rename: * `rank_le_of_submodule` -> `Submodule.rank_mono` * `Submodule.finrank_le_finrank_of_le` -> `Submodule.finrank_mono` (existing, up to unfolding `Monotone`) * `rank_submodule_le` -> `Submodule.rank_le` From LeanCamCombi ESTIMATED CHANGES Modified Archive/Sensitivity.lean Modified Mathlib/LinearAlgebra/AffineSpace/FiniteDimensional.lean Modified Mathlib/LinearAlgebra/Dimension/Basic.lean + theorem Submodule.rank_le + theorem Submodule.rank_mono - theorem rank_le_of_submodule - theorem rank_submodule_le Modified Mathlib/LinearAlgebra/Dimension/Constructions.lean - theorem Submodule.finrank_le_finrank_of_le + theorem Submodule.finrank_mono Modified Mathlib/LinearAlgebra/Dimension/LinearMap.lean Modified Mathlib/LinearAlgebra/FiniteDimensional/Defs.lean - theorem Submodule.finrank_mono Modified Mathlib/LinearAlgebra/LinearDisjoint.lean 2024-10-03 04:46:10 f7338d0 fix: docPrime unlint private declarations (#17361) Mentioned in [Zulip](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/theorem.20names.20with.20primes.3F/near/474282217). ESTIMATED CHANGES Modified Mathlib/Tactic/Linter/DocPrime.lean 2024-10-02 22:35:15 655d653 feat (LinearAlgebra/RootPairing/Finite) : The canonical bilinear form on a finite root pairing (#17070) This PR introduces the canonical bilinear form for a finite root pairing, and proves some basic properties. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Ring/SumsOfSquares.lean + theorem isSumSq_sum_mul_self Modified Mathlib/LinearAlgebra/RootSystem/Basic.lean Modified Mathlib/LinearAlgebra/RootSystem/Defs.lean + theorem RootPairing.coroot'_reflection + theorem RootPairing.coroot'_reflection_perm +/- def RootPairing.pairing + theorem RootPairing.pairing_reflection_perm + theorem RootPairing.pairing_reflection_perm_self_left + theorem RootPairing.pairing_reflection_perm_self_right + theorem RootPairing.root'_coroot_eq_pairing + theorem RootPairing.root_coroot'_eq_pairing Added Mathlib/LinearAlgebra/RootSystem/Finite/CanonicalBilinear.lean + def RootPairing.CoPolarization + theorem RootPairing.CoPolarization_apply + theorem RootPairing.CoPolarization_eq + def RootPairing.CorootForm + def RootPairing.Polarization + theorem RootPairing.Polarization_apply + def RootPairing.RootForm + theorem RootPairing.corootForm_self_smul_root + theorem RootPairing.rootForm_apply_apply + theorem RootPairing.rootForm_reflection_reflection_apply + theorem RootPairing.rootForm_root_self + theorem RootPairing.rootForm_self_smul_coroot + theorem RootPairing.rootForm_self_sum_of_squares + theorem RootPairing.rootForm_symmetric Modified Mathlib/LinearAlgebra/RootSystem/Hom.lean Modified Mathlib/LinearAlgebra/RootSystem/RootPositive.lean 2024-10-02 21:25:32 20a854c feat: `star` commutes with `nnqsmul` (#17351) From LeanAPAP ESTIMATED CHANGES Modified Mathlib/Algebra/Star/Module.lean + theorem star_nnrat_smul +/- theorem star_rat_smul Modified Mathlib/Data/Matrix/Basic.lean 2024-10-02 20:35:32 3c0774c refactor(ENNReal): detopologise sSup/sInf lemmas (#16742) These lemmas can be proved much earlier with no topology. ESTIMATED CHANGES Modified Mathlib/Analysis/Normed/Algebra/Spectrum.lean Modified Mathlib/Analysis/Oscillation.lean Modified Mathlib/Data/ENNReal/Inv.lean + theorem ENNReal.add_biSup' + theorem ENNReal.add_biSup + theorem ENNReal.add_iSup + theorem ENNReal.add_sSup + theorem ENNReal.biSup_add' + theorem ENNReal.biSup_add + theorem ENNReal.biSup_add_biSup_le' + theorem ENNReal.biSup_add_biSup_le + theorem ENNReal.exists_lt_add_of_lt_add + theorem ENNReal.finsetSum_iSup + theorem ENNReal.finsetSum_iSup_of_monotone + theorem ENNReal.iInf_div' + theorem ENNReal.iInf_div + theorem ENNReal.iInf_div_of_ne + theorem ENNReal.iInf_mul' + theorem ENNReal.iInf_mul + theorem ENNReal.iInf_mul_of_ne + theorem ENNReal.iSup_add + theorem ENNReal.iSup_add_iSup + theorem ENNReal.iSup_add_iSup_le + theorem ENNReal.iSup_add_iSup_of_monotone + theorem ENNReal.iSup_div + theorem ENNReal.iSup_eq_zero + theorem ENNReal.iSup_lt_eq_self + theorem ENNReal.iSup_mul + theorem ENNReal.iSup_natCast + theorem ENNReal.iSup_zero_eq_zero + theorem ENNReal.inv_iInf + theorem ENNReal.inv_iSup + theorem ENNReal.inv_sInf + theorem ENNReal.inv_sSup + theorem ENNReal.isUnit_iff + def ENNReal.mulLeftOrderIso + def ENNReal.mulRightOrderIso + theorem ENNReal.mul_iInf' + theorem ENNReal.mul_iInf + theorem ENNReal.mul_iInf_of_ne + theorem ENNReal.mul_iSup + theorem ENNReal.mul_sSup + theorem ENNReal.sSup_add + theorem ENNReal.sSup_div + theorem ENNReal.sSup_mul + theorem ENNReal.smul_iSup + theorem ENNReal.smul_sSup + theorem ENNReal.sub_iSup Modified Mathlib/Data/ENNReal/Real.lean - theorem ENNReal.iInf_mul - theorem ENNReal.iInf_mul_of_ne - theorem ENNReal.iSup_eq_zero - theorem ENNReal.iSup_natCast - theorem ENNReal.iSup_zero_eq_zero - theorem ENNReal.mul_iInf - theorem ENNReal.mul_iInf_of_ne + theorem ENNReal.ofReal_iInf Modified Mathlib/MeasureTheory/Integral/Lebesgue.lean Modified Mathlib/MeasureTheory/Measure/Hausdorff.lean Modified Mathlib/MeasureTheory/OuterMeasure/OfFunction.lean Modified Mathlib/Topology/EMetricSpace/Diam.lean Modified Mathlib/Topology/Instances/ENNReal.lean - theorem ENNReal.add_biSup' - theorem ENNReal.add_biSup - theorem ENNReal.add_iSup - theorem ENNReal.biSup_add' - theorem ENNReal.biSup_add - theorem ENNReal.biSup_add_biSup_le' - theorem ENNReal.biSup_add_biSup_le - theorem ENNReal.exists_lt_add_of_lt_add - theorem ENNReal.finsetSum_iSup - theorem ENNReal.finsetSum_iSup_of_monotone - theorem ENNReal.iSup_add - theorem ENNReal.iSup_add_iSup - theorem ENNReal.iSup_add_iSup_le - theorem ENNReal.iSup_add_iSup_of_monotone - theorem ENNReal.iSup_div - theorem ENNReal.iSup_mul - theorem ENNReal.mul_iSup - theorem ENNReal.mul_sSup - theorem ENNReal.sSup_add - theorem ENNReal.smul_iSup - theorem ENNReal.smul_sSup - theorem ENNReal.sub_iSup 2024-10-02 20:09:38 3d18912 chore: remove `.val` where elaboration works (#17363) In all but two places where #6607 is mentioned the elaboration now works correctly. Not sure why it does not for `det_units_conj` and `det_units_conj'`, hence keeping the TODO, but changing to `.val` there because it is a little less verbose. ESTIMATED CHANGES Modified Mathlib/Algebra/Lie/SkewAdjoint.lean Modified Mathlib/Analysis/Normed/Algebra/MatrixExponential.lean Modified Mathlib/LinearAlgebra/Matrix/Determinant/Basic.lean Modified Mathlib/LinearAlgebra/Matrix/SesquilinearForm.lean 2024-10-02 19:31:14 bb7a404 feat(AlgebraicGeometry/Tilde): add the map from `M` localising at `x` to the stalk of `M^~` at x (#14809) This contribution was created as part of the AIM workshop "Formalizing algebraic geometry" in June 2024. ESTIMATED CHANGES Modified Mathlib/Algebra/Module/LocalizedModule.lean + theorem LocalizedModule.eq_zero_of_smul_eq_zero + theorem LocalizedModule.smul_eq_iff_of_mem Modified Mathlib/AlgebraicGeometry/Modules/Tilde.lean + theorem ModuleCat.Tilde.isUnit_toStalk + theorem ModuleCat.Tilde.res_apply + theorem ModuleCat.Tilde.smul_section_apply + theorem ModuleCat.Tilde.smul_stalk_no_nonzero_divisor + def ModuleCat.Tilde.toOpen + theorem ModuleCat.Tilde.toOpen_res 2024-10-02 18:00:56 551dfed chore: add a focusing dot (#17346) ESTIMATED CHANGES Modified Mathlib/RingTheory/LaurentSeries.lean Modified Mathlib/RingTheory/TwoSidedIdeal/Operations.lean 2024-10-02 18:00:55 bf960d1 chore(Order/Interval/Set/Basic): remove porting note (#17321) ESTIMATED CHANGES Modified Mathlib/Order/Interval/Set/Basic.lean 2024-10-02 18:00:54 f6a864f chore: add a few focusing dots 1 (#17315) More missing cdots found by the multiGoal linter (#12339). ESTIMATED CHANGES Modified Mathlib/Algebra/BigOperators/Associated.lean Modified Mathlib/Algebra/Module/Submodule/Bilinear.lean Modified Mathlib/Algebra/MonoidAlgebra/Defs.lean Modified Mathlib/Algebra/Order/BigOperators/GroupWithZero/List.lean Modified Mathlib/Algebra/Order/Floor.lean Modified Mathlib/Analysis/MeanInequalities.lean Modified Mathlib/Analysis/PSeries.lean Modified Mathlib/CategoryTheory/MorphismProperty/Representable.lean 2024-10-02 18:00:52 f01032b chore: `one_le_pow_of_one_le` -> `one_le_pow₀` (#17215) Rename: * `pow_le_one` -> `pow_le_one₀` * `pow_lt_one` -> `pow_lt_one₀` * `one_le_pow_of_one_le` -> `one_le_pow₀` * `one_lt_pow` -> `one_lt_pow₀` and make all non-order arguments implicit (those are not rewrite lemmas, and where the explicit arguments are located is basically random throughout the library) From LeanAPAP ESTIMATED CHANGES Modified Archive/Imo/Imo2006Q5.lean Modified Archive/Imo/Imo2013Q5.lean Modified Mathlib/Algebra/Order/CauSeq/BigOperators.lean Modified Mathlib/Algebra/Order/Field/Power.lean Modified Mathlib/Algebra/Order/Interval/Set/Instances.lean Modified Mathlib/Algebra/Order/Ring/Basic.lean - theorem one_le_pow_of_one_le + theorem one_le_pow₀ - theorem one_lt_pow + theorem one_lt_pow₀ - theorem pow_le_one + theorem pow_le_one₀ - theorem pow_lt_one + theorem pow_lt_one₀ Modified Mathlib/Analysis/Analytic/Basic.lean Modified Mathlib/Analysis/Analytic/Constructions.lean Modified Mathlib/Analysis/Analytic/RadiusLiminf.lean Modified Mathlib/Analysis/Calculus/FDeriv/Measurable.lean Modified Mathlib/Analysis/Calculus/TangentCone.lean Modified Mathlib/Analysis/Complex/AbelLimit.lean Modified Mathlib/Analysis/Distribution/SchwartzSpace.lean Modified Mathlib/Analysis/Fourier/FourierTransformDeriv.lean Modified Mathlib/Analysis/SpecialFunctions/Stirling.lean Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Basic.lean Modified Mathlib/Analysis/SpecificLimits/Basic.lean Modified Mathlib/Analysis/SpecificLimits/FloorPow.lean Modified Mathlib/Combinatorics/SimpleGraph/Regularity/Bound.lean Modified Mathlib/Combinatorics/SimpleGraph/Regularity/Chunk.lean Modified Mathlib/Computability/AkraBazzi/GrowsPolynomially.lean Modified Mathlib/Data/Complex/Exponential.lean Modified Mathlib/Data/Real/Pi/Irrational.lean Modified Mathlib/GroupTheory/Exponent.lean Modified Mathlib/GroupTheory/FiniteAbelian.lean Modified Mathlib/GroupTheory/OrderOfElement.lean Modified Mathlib/GroupTheory/PGroup.lean Modified Mathlib/GroupTheory/SpecificGroups/Cyclic.lean Modified Mathlib/MeasureTheory/Group/GeometryOfNumbers.lean Modified Mathlib/NumberTheory/Cyclotomic/Rat.lean Modified Mathlib/NumberTheory/FermatPsp.lean Modified Mathlib/NumberTheory/Harmonic/Int.lean Modified Mathlib/NumberTheory/Liouville/Basic.lean Modified Mathlib/NumberTheory/Liouville/LiouvilleNumber.lean Modified Mathlib/NumberTheory/LucasLehmer.lean Modified Mathlib/NumberTheory/NumberField/CanonicalEmbedding/ConvexBody.lean Modified Mathlib/NumberTheory/NumberField/Discriminant.lean Modified Mathlib/NumberTheory/NumberField/Embeddings.lean Modified Mathlib/NumberTheory/Padics/Hensel.lean Modified Mathlib/NumberTheory/Pell.lean Modified Mathlib/Probability/StrongLaw.lean Modified Mathlib/Topology/Algebra/Polynomial.lean Modified Mathlib/Topology/Algebra/PontryaginDual.lean 2024-10-02 18:00:51 74620ca feat(ModelTheory/Equivalence): Implication of formulas modulo a theory (#16800) Defines `FirstOrder.Language.Theory.Implies`: `φ ⟹[T] ψ` indicates that `φ` implies `ψ` in models of `T`. Relates `Theory.Implies` to `Theory.SemanticallyEquivalent`. Proves lemmas that will set up a `BooleanAlgebra` instance on formulas modulo a theory ESTIMATED CHANGES Modified Mathlib/ModelTheory/Complexity.lean + theorem FirstOrder.Language.BoundedFormula.iff_toPrenex - theorem FirstOrder.Language.BoundedFormula.semanticallyEquivalent_toPrenex Modified Mathlib/ModelTheory/Equivalence.lean + theorem FirstOrder.Language.BoundedFormula.all_iff_not_ex_not - theorem FirstOrder.Language.BoundedFormula.all_semanticallyEquivalent_not_ex_not + theorem FirstOrder.Language.BoundedFormula.ex_iff_not_all_not - theorem FirstOrder.Language.BoundedFormula.ex_semanticallyEquivalent_not_all_not + theorem FirstOrder.Language.BoundedFormula.iff_all_liftAt + theorem FirstOrder.Language.BoundedFormula.iff_not_not + theorem FirstOrder.Language.BoundedFormula.imp_iff_not_sup - theorem FirstOrder.Language.BoundedFormula.imp_semanticallyEquivalent_not_sup + theorem FirstOrder.Language.BoundedFormula.inf_iff_not_sup_not + theorem FirstOrder.Language.BoundedFormula.inf_not_iff_bot - theorem FirstOrder.Language.BoundedFormula.inf_semanticallyEquivalent_not_sup_not - theorem FirstOrder.Language.BoundedFormula.semanticallyEquivalent_all_liftAt - theorem FirstOrder.Language.BoundedFormula.semanticallyEquivalent_not_not + theorem FirstOrder.Language.BoundedFormula.sup_iff_not_inf_not + theorem FirstOrder.Language.BoundedFormula.sup_not_iff_top - theorem FirstOrder.Language.BoundedFormula.sup_semanticallyEquivalent_not_inf_not + theorem FirstOrder.Language.Formula.iff_not_not + theorem FirstOrder.Language.Formula.imp_iff_not_sup - theorem FirstOrder.Language.Formula.imp_semanticallyEquivalent_not_sup + theorem FirstOrder.Language.Formula.inf_iff_not_sup_not - theorem FirstOrder.Language.Formula.inf_semanticallyEquivalent_not_sup_not - theorem FirstOrder.Language.Formula.semanticallyEquivalent_not_not + theorem FirstOrder.Language.Formula.sup_iff_not_inf_not - theorem FirstOrder.Language.Formula.sup_semanticallyEquivalent_not_inf_not + theorem FirstOrder.Language.Theory.Iff.models_sentence_iff + theorem FirstOrder.Language.Theory.Iff.realize_bd_iff + theorem FirstOrder.Language.Theory.Iff.realize_iff - theorem FirstOrder.Language.Theory.SemanticallyEquivalent.models_sentence_iff - theorem FirstOrder.Language.Theory.SemanticallyEquivalent.realize_bd_iff - theorem FirstOrder.Language.Theory.SemanticallyEquivalent.realize_iff - def FirstOrder.Language.Theory.SemanticallyEquivalent + theorem FirstOrder.Language.Theory.bot_imp + def FirstOrder.Language.Theory.iffSetoid + theorem FirstOrder.Language.Theory.iff_iff_imp_and_imp + theorem FirstOrder.Language.Theory.imp_antisymm + theorem FirstOrder.Language.Theory.imp_inf + theorem FirstOrder.Language.Theory.imp_inf_iff + theorem FirstOrder.Language.Theory.imp_sup_left + theorem FirstOrder.Language.Theory.imp_sup_right + theorem FirstOrder.Language.Theory.imp_top + theorem FirstOrder.Language.Theory.inf_imp_left + theorem FirstOrder.Language.Theory.inf_imp_right - def FirstOrder.Language.Theory.semanticallyEquivalentSetoid + theorem FirstOrder.Language.Theory.sup_imp + theorem FirstOrder.Language.Theory.sup_imp_iff 2024-10-02 17:17:13 5cb57a1 feat: golf proof of Fréchet–von Neumann–Jordan theorem (#17349) Exploit algebraic automation, including the new `module` tactic, more heavily in the proof of the Fréchet–von Neumann–Jordan theorem (i.e., the theorem that a norm satisfying the parallellogram identity comes from an inner product). ESTIMATED CHANGES Modified Mathlib/Analysis/InnerProductSpace/OfNorm.lean - theorem InnerProductSpaceable.innerProp_neg_one - theorem InnerProductSpaceable.nat 2024-10-02 17:17:12 24484cb feat(Subgraph): API lemmas (#17332) From LeanCamCombi ESTIMATED CHANGES Modified Mathlib/Combinatorics/SimpleGraph/Subgraph.lean + theorem SimpleGraph.Subgraph.IsInduced.top + theorem SimpleGraph.Subgraph.coe_bot + theorem SimpleGraph.Subgraph.edgeSet_coe + theorem SimpleGraph.Subgraph.image_coe_edgeSet_coe + theorem SimpleGraph.Subgraph.map_comp + theorem SimpleGraph.Subgraph.map_id + theorem SimpleGraph.Subgraph.map_mono +/- theorem SimpleGraph.Subgraph.map_monotone +/- theorem SimpleGraph.Subgraph.map_sup - theorem SimpleGraph.Subgraph.mem_edgeSet - theorem SimpleGraph.Subgraph.mem_verts_if_mem_edge + theorem SimpleGraph.Subgraph.mem_verts_of_mem_edge + theorem SimpleGraph.Subgraph.spanningCoe_le + def SimpleGraph.Subgraph.topIso 2024-10-02 17:17:11 27899cd feat(Algebra/Polynomial/FieldDivision): `natDegree_mod_lt` (#17318) ESTIMATED CHANGES Modified Mathlib/Algebra/Polynomial/FieldDivision.lean + theorem Polynomial.natDegree_mod_lt 2024-10-02 17:17:10 2aa61a8 feat: `s / t` is finite (#17306) From PFR ESTIMATED CHANGES Modified Mathlib/Data/Set/Pointwise/Finite.lean + theorem Set.Finite.div - theorem Set.Finite.inv + theorem Set.finite_div + theorem Set.finite_inv + def Set.fintypeDiv + theorem Set.infinite_div + theorem Set.infinite_inv +/- theorem Set.infinite_mul 2024-10-02 17:17:09 b490daf chore: make `Submodule.span_mono` be `gcongr` (#17293) From LeanCamCombi ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/Span.lean +/- theorem Submodule.span_mono 2024-10-02 17:17:07 c669fd1 refactor(Data/Real/Archimedean): `sSup`/`sInf` API cleanup (#16735) Add a few lemmas, golf the existing ones and update the docstrings to something more precise ESTIMATED CHANGES Modified Mathlib/Analysis/Convex/Gauge.lean Modified Mathlib/Analysis/Normed/Group/Quotient.lean Modified Mathlib/Analysis/Normed/Lp/PiLp.lean Modified Mathlib/Analysis/NormedSpace/Multilinear/Basic.lean Modified Mathlib/Analysis/NormedSpace/OperatorNorm/Basic.lean Modified Mathlib/Analysis/Seminorm.lean Modified Mathlib/Data/NNReal/Basic.lean Modified Mathlib/Data/Real/Archimedean.lean +/- theorem Real.add_neg_lt_sSup - theorem Real.ciInf_const_zero - theorem Real.ciSup_const_zero +/- theorem Real.exists_isGLB +/- theorem Real.exists_isLUB +/- theorem Real.exists_natCast_add_one_lt_pow_of_one_lt + theorem Real.iInf_const_zero +/- theorem Real.iInf_nonneg + theorem Real.iInf_nonpos' + theorem Real.iInf_nonpos +/- theorem Real.iInf_of_not_bddBelow + theorem Real.iSup_const_zero + theorem Real.iSup_nonneg' + theorem Real.iSup_nonneg + theorem Real.iSup_nonpos +/- theorem Real.iSup_of_isEmpty +/- theorem Real.iSup_of_not_bddAbove +/- theorem Real.le_sSup_iff +/- theorem Real.lt_sInf_add_pos +/- theorem Real.sInf_def +/- theorem Real.sInf_le_iff +/- theorem Real.sInf_nonneg + theorem Real.sInf_nonpos' +/- theorem Real.sInf_nonpos +/- theorem Real.sInf_of_not_bddBelow +/- theorem Real.sSup_def + theorem Real.sSup_nonneg' +/- theorem Real.sSup_nonneg +/- theorem Real.sSup_nonpos +/- theorem Real.sSup_of_not_bddAbove Modified Mathlib/Dynamics/Circle/RotationNumber/TranslationNumber.lean 2024-10-02 17:07:53 343c459 feat(Analysis.Normed.Ring.IsPowMulFaithful): prove eq_of_powMul_faithful (#15445) We add `AlgebraNorm` and `MulAlgebraNorm`. We prove Bosch-Güntzer-Remmert, Proposition 3.1.5/1: if `R` is a normed commutative ring and `f₁` and `f₂` are two power-multiplicative `R`-algebra norms on `S`, then if `f₁` and `f₂` are equivalent on every subring `R[y]` for `y : S`, it follows that `f₁ = f₂`. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/Normed/Algebra/Norm.lean + theorem AlgebraNorm.ext + theorem AlgebraNorm.extends_norm' + theorem AlgebraNorm.extends_norm + def AlgebraNorm.isScalarTower_restriction + def AlgebraNorm.restriction + theorem AlgebraNorm.toFun_eq_coe + def AlgebraNorm.toRingSeminorm' + structure AlgebraNorm + theorem MulAlgebraNorm.ext + theorem MulAlgebraNorm.extends_norm' + theorem MulAlgebraNorm.extends_norm + theorem MulAlgebraNorm.toFun_eq_coe + structure MulAlgebraNorm + theorem MulRingNorm.isPowMul + def MulRingNorm.toRingNorm Modified Mathlib/Analysis/Normed/Field/Basic.lean + theorem IsPowMul.restriction + def RingHom.IsBounded Added Mathlib/Analysis/Normed/Ring/IsPowMulFaithful.lean + theorem contraction_of_isPowMul + theorem contraction_of_isPowMul_of_boundedWrt + theorem eq_of_powMul_faithful + theorem eq_seminorms Modified Mathlib/Analysis/Normed/Ring/Seminorm.lean + def NormedField.toMulRingNorm + def NormedRing.toRingNorm + theorem NormedRing.toRingNorm_apply + def SeminormedRing.toRingSeminorm + theorem map_pow_le_pow' + theorem map_pow_le_pow Modified Mathlib/Data/Real/Basic.lean + def RingHom.IsBoundedWrt 2024-10-02 16:36:02 4660dcd feat: there are finitely many lists of a fixed length (#17288) From LeanCamCombi ESTIMATED CHANGES Modified Mathlib/Data/Set/Finite.lean + theorem List.finite_length_eq + theorem List.finite_length_le + theorem List.finite_length_lt 2024-10-02 14:57:40 c472200 feat: `@[deprecated]` code snippet (#17357) We already had a `@[deprecated] alias` code snippet. This one is useful when deprecating a lemma in place. ESTIMATED CHANGES Renamed .vscode/deprecated-alias.code-snippets to .vscode/deprecated.code-snippets 2024-10-02 14:32:04 9aacea7 feat(Analysis.InnerProductSpace.Symmetric) : Added several `aesop` lemmas for operations preserving `IsSymmetric` (#17255) Added `@[aesop safe apply]` to `isSymmetric_zero, isSymmetric_id, IsSymmetric.add`, as well as to the following newly added theorems: `isSymmetric.sub`, `isSymmetric.smul`, `isSymmetric.mul_of_comm`, `isSymmetric.pow`. ESTIMATED CHANGES Modified Mathlib/Analysis/InnerProductSpace/Symmetric.lean + theorem LinearMap.IsSymmetric.mul_of_commute + theorem LinearMap.IsSymmetric.pow + theorem LinearMap.IsSymmetric.smul + theorem LinearMap.IsSymmetric.sub - theorem LinearMap.isSymmetric_id - theorem LinearMap.isSymmetric_zero 2024-10-02 14:32:03 3b0dde0 feat: derivative of absolute value (#17149) Compute the derivative of the absolute value: `deriv (|·|) x = SignType.sign x`. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/Calculus/Deriv/Abs.lean + theorem ContDiff.abs + theorem ContDiffAt.abs + theorem ContDiffOn.abs + theorem ContDiffWithinAt.abs + theorem Differentiable.abs + theorem DifferentiableAt.abs + theorem DifferentiableAt.abs_of_neg + theorem DifferentiableAt.abs_of_pos + theorem DifferentiableOn.abs + theorem DifferentiableWithinAt.abs + theorem DifferentiableWithinAt.abs_of_neg + theorem DifferentiableWithinAt.abs_of_pos + theorem HasFDerivAt.abs + theorem HasFDerivAt.abs_of_neg + theorem HasFDerivAt.abs_of_pos + theorem HasFDerivWithinAt.abs + theorem HasFDerivWithinAt.abs_of_neg + theorem HasFDerivWithinAt.abs_of_pos + theorem HasStrictFDerivAt.abs + theorem HasStrictFDerivAt.abs_of_neg + theorem HasStrictFDerivAt.abs_of_pos + theorem contDiffAt_abs + theorem contDiffOn_abs + theorem contDiffWithinAt_abs + theorem deriv_abs + theorem deriv_abs_neg + theorem deriv_abs_pos + theorem deriv_abs_zero + theorem differentiableAt_abs + theorem differentiableAt_abs_neg + theorem differentiableAt_abs_pos + theorem differentiableOn_abs + theorem differentiableWithinAt_abs + theorem differentiableWithinAt_abs_neg + theorem differentiableWithinAt_abs_pos + theorem hasDerivAt_abs + theorem hasDerivAt_abs_neg + theorem hasDerivAt_abs_pos + theorem hasDerivWithinAt_abs + theorem hasDerivWithinAt_abs_neg + theorem hasDerivWithinAt_abs_pos + theorem hasStrictDerivAt_abs + theorem hasStrictDerivAt_abs_neg + theorem hasStrictDerivAt_abs_pos + theorem not_differentiableAt_abs_zero Modified Mathlib/Analysis/Calculus/Deriv/Add.lean - theorem not_differentiableAt_abs_zero 2024-10-02 14:32:01 8a443b7 feat: `Finset.sup s f = 0 ↔ ∀ i ∈ s, f i = 0` (#17078) From ForbiddenMatrix ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Order/Monoid/Canonical/Basic.lean + theorem Finset.sup'_eq_zero + theorem Finset.sup_eq_zero 2024-10-02 12:51:05 66e06b6 chore(SetLike): Let `gcongr` know about `coe_subset_coe` (#17290) From LeanCamCombi ESTIMATED CHANGES Modified Mathlib/Data/SetLike/Basic.lean +/- theorem SetLike.coe_ssubset_coe +/- theorem SetLike.coe_subset_coe 2024-10-02 12:24:27 4236727 feat: a ball in `ℝ` is a segment (#17282) From LeanCamCombi ESTIMATED CHANGES Modified Mathlib/Analysis/Convex/Topology.lean + theorem Real.ball_eq_openSegment + theorem Real.closedBall_eq_segment +/- theorem Real.convex_iff_isPreconnected 2024-10-02 11:38:30 c4b22ac feat: golf construction of stereographic projection (#17350) The calculations appearing in the construction of the stereographic projection were one of the motivating examples for the new `match_scalars` tactic. This PR rewrites those calculations to use the tactic. ESTIMATED CHANGES Modified Mathlib/Geometry/Manifold/Instances/Sphere.lean 2024-10-02 10:44:40 a33739d feat: add relation between subset and + for multisets (#17345) Naming convention and argument explicitness follows the `Set.subset_union_**` lemmas. ESTIMATED CHANGES Modified Mathlib/Data/Multiset/Basic.lean + theorem Multiset.subset_add_left + theorem Multiset.subset_add_right 2024-10-02 09:44:47 b91c5b6 feat(CategoryTheory/Galois): fiber functor is essentially surjective (#16552) We show that every finite, discrete `Aut F`-set is in the essential image of the fiber functor. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Galois/EssSurj.lean + theorem CategoryTheory.PreGaloisCategory.exists_lift_of_continuous + theorem CategoryTheory.PreGaloisCategory.exists_lift_of_quotient_openSubgroup + def CategoryTheory.PreGaloisCategory.fiberIsoQuotientStabilizer + theorem CategoryTheory.PreGaloisCategory.has_decomp_quotients Modified Mathlib/CategoryTheory/Galois/Full.lean 2024-10-02 09:20:04 7fc7838 feat(CategoryTheory/Biproducts): when a category has biproducts, lim and colim functors are isomorphic (#17104) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Limits/Shapes/Biproducts.lean + def CategoryTheory.Limits.HasBiproductsOfShape.colimIsoLim 2024-10-02 09:10:58 e4a8f5b feat: balancing a function (#17205) Define the balancing of a function, namely the function minus its average. Doing this operation has the effect of nullifying the `0`-th component of the Fourier transform (but this PR doesn't prove this fact). From LeanAPAP ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/BigOperators/Balance.lean + def Fintype.balance + theorem Fintype.balance_add + theorem Fintype.balance_apply + theorem Fintype.balance_idem + theorem Fintype.balance_neg + theorem Fintype.balance_sub + theorem Fintype.balance_zero + theorem Fintype.expect_balance + theorem Fintype.map_balance + theorem Fintype.sum_balance 2024-10-02 08:44:09 f27f232 feat(CategoryTheory/Adjunction): composing a right adjoint with yoneda (#17333) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Adjunction/Basic.lean + def CategoryTheory.Adjunction.compCoyonedaIso + def CategoryTheory.Adjunction.compYonedaIso 2024-10-02 07:21:32 b5fa3ef CI: add high import percentage changes (#17343) This PR adds automation for detecting PRs with a significant increase in transitive imports. Significant means a single file with a percentage increase of at least 2%. If there are such files, then the automation adds * a table with the import-increased files at the beginning of the `PR summary`; * the `large-import` label. If there are no such files, then the bot removes the `large-import` label, if it was present. The PR summary of this PR shows that there is no change when there are no significant changes in transitive imports. #17344 shows what happens when such a change is present. ESTIMATED CHANGES Modified .github/workflows/PR_summary.yml Modified scripts/import-graph-report.py 2024-10-02 06:17:33 3fdb944 chore: prepare for multi-goal linter (#17316) Adaptations for #12339. ESTIMATED CHANGES Modified Mathlib/Computability/TMToPartrec.lean Modified Mathlib/Data/Seq/Computation.lean Modified Mathlib/Order/Defs.lean 2024-10-02 05:45:24 d902abe chore: make a global instance local in ModelTheory.Order (#17271) ESTIMATED CHANGES Modified Mathlib/ModelTheory/Order.lean + def FirstOrder.Language.decidableLEOfStructure 2024-10-02 05:45:23 f880a60 docs(Measure/Haar/OfBasis): expand a docstring (#17270) ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Measure/Haar/OfBasis.lean 2024-10-02 05:35:43 9593a64 feat(NumberTheory/{GaussSum|JacobiSum/Basic}): formula for g(χ)^ord(χ) (#17336) We continue with adding properties of Gauss and Jacobi sums. This PR shows that `g(χ)^n = χ(-1) * #F * J(χ,χ) * J(χ,χ²) * ... * J(χ,χⁿ⁻²)` when `χ` is a multiplicative character on the finite field `F` of order `n` (and with values in a domain). ESTIMATED CHANGES Modified Mathlib/NumberTheory/GaussSum.lean + theorem gaussSum_mul_gaussSum_pow_orderOf_sub_one + theorem mul_gaussSum_inv_eq_gaussSum Modified Mathlib/NumberTheory/JacobiSum/Basic.lean + theorem gaussSum_pow_eq_prod_jacobiSum + theorem gaussSum_pow_eq_prod_jacobiSum_aux 2024-10-02 04:55:20 081ccd5 feat(Analysis/Normed/{Group,Field}/Ultra): Nonarchimedean norms from ultrametrics (#14768) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/Normed/Group/Ultra.lean + theorem Finset.Nonempty.norm_prod_le_sup'_norm + theorem Finset.nnnorm_prod_le_sup_nnnorm + theorem IsUltrametricDist.isUltrametricDist_of_forall_nnnorm_mul_le_max_nnnorm + theorem IsUltrametricDist.isUltrametricDist_of_forall_norm_mul_le_max_norm + theorem IsUltrametricDist.isUltrametricDist_of_isNonarchimedean_nnnorm + theorem IsUltrametricDist.isUltrametricDist_of_isNonarchimedean_norm + theorem IsUltrametricDist.nnnorm_div_eq_max_of_nnnorm_div_ne_nnnorm_div + theorem IsUltrametricDist.nnnorm_eq_of_mul_nnnorm_lt_max + theorem IsUltrametricDist.nnnorm_mul_eq_max_of_nnnorm_ne_nnnorm + theorem IsUltrametricDist.nnnorm_mul_le_max + theorem IsUltrametricDist.nnnorm_pow_le + theorem IsUltrametricDist.nnnorm_prod_le_of_forall_le + theorem IsUltrametricDist.nnnorm_zpow_le + theorem IsUltrametricDist.norm_div_eq_max_of_norm_div_ne_norm_div + theorem IsUltrametricDist.norm_eq_of_mul_norm_lt_max + theorem IsUltrametricDist.norm_mul_eq_max_of_norm_ne_norm + theorem IsUltrametricDist.norm_mul_le_max + theorem IsUltrametricDist.norm_pow_le + theorem IsUltrametricDist.norm_prod_le_of_forall_le_of_nonempty + theorem IsUltrametricDist.norm_prod_le_of_forall_le_of_nonneg + theorem IsUltrametricDist.norm_zpow_le Added Mathlib/Analysis/Normed/Ring/Ultra.lean + theorem IsUltrametricDist.nnnorm_add_one_le_max_nnnorm_one + theorem IsUltrametricDist.nnnorm_intCast_le_one + theorem IsUltrametricDist.nnnorm_natCast_le_one + theorem IsUltrametricDist.norm_add_one_le_max_norm_one + theorem IsUltrametricDist.norm_intCast_le_one + theorem IsUltrametricDist.norm_natCast_le_one Modified Mathlib/Topology/MetricSpace/Ultra/Basic.lean + theorem IsUltrametricDist.dist_eq_max_of_dist_ne_dist 2024-10-02 04:12:44 1235f45 chore: update Mathlib dependencies 2024-10-02 (#17347) This PR updates the Mathlib dependencies. ESTIMATED CHANGES Modified lake-manifest.json 2024-10-02 01:16:02 ebabb34 chore: add a few focusing dots 3 (#17313) More missing cdots found by the multiGoal linter (#12339). ESTIMATED CHANGES Modified Mathlib/RingTheory/LocalProperties/Basic.lean Modified Mathlib/RingTheory/MvPowerSeries/LexOrder.lean Modified Mathlib/RingTheory/PowerSeries/Basic.lean 2024-10-01 22:56:05 bc742f8 feat(Combinatorics.SetFamily.Shadow): shadow_singleton (#17340) ESTIMATED CHANGES Modified Mathlib/Combinatorics/SetFamily/Shadow.lean + theorem Finset.shadow_singleton 2024-10-01 22:56:04 f1843eb chore(Data/Finset): split lattice file (#17049) The file Data/Finset/Lattice contained two disjoint developments, with disjoint imports, forming one natural cut location. We also split max and min into a separate file. ESTIMATED CHANGES Modified Archive/Wiedijk100Theorems/AscendingDescendingSequences.lean Modified Mathlib.lean Modified Mathlib/Data/Finset/Lattice.lean - theorem Finset.card_le_diff_of_interleaved - theorem Finset.card_le_of_interleaved - theorem Finset.coe_max' - theorem Finset.coe_min' - theorem Finset.exists_max_image - theorem Finset.exists_min_image - theorem Finset.exists_next_left - theorem Finset.exists_next_right - theorem Finset.iInf_biUnion - theorem Finset.iInf_coe - theorem Finset.iInf_finset_image - theorem Finset.iInf_insert - theorem Finset.iInf_insert_update - theorem Finset.iInf_option_toFinset - theorem Finset.iInf_singleton - theorem Finset.iInf_union - theorem Finset.iSup_biUnion - theorem Finset.iSup_coe - theorem Finset.iSup_finset_image - theorem Finset.iSup_insert - theorem Finset.iSup_insert_update - theorem Finset.iSup_option_toFinset - theorem Finset.iSup_singleton - theorem Finset.iSup_union - theorem Finset.induction_on_max - theorem Finset.induction_on_max_value - theorem Finset.induction_on_min - theorem Finset.induction_on_min_value - theorem Finset.isGLB_iff_isLeast - theorem Finset.isGLB_mem - theorem Finset.isGreatest_max' - theorem Finset.isLUB_iff_isGreatest - theorem Finset.isLUB_mem - theorem Finset.isLeast_min' - theorem Finset.le_max' - theorem Finset.le_max - theorem Finset.le_max_of_eq - theorem Finset.le_min' - theorem Finset.le_min'_iff - theorem Finset.lt_max'_of_mem_erase_max' - theorem Finset.lt_min'_iff - theorem Finset.map_ofDual_max - theorem Finset.map_ofDual_min - theorem Finset.map_toDual_max - theorem Finset.map_toDual_min - def Finset.max' - theorem Finset.max'_eq_sup' - theorem Finset.max'_erase_ne_self - theorem Finset.max'_image - theorem Finset.max'_insert - theorem Finset.max'_le - theorem Finset.max'_le_iff - theorem Finset.max'_lt_iff - theorem Finset.max'_mem - theorem Finset.max'_singleton - theorem Finset.max'_subset - theorem Finset.max_empty - theorem Finset.max_eq_bot - theorem Finset.max_eq_sup_coe - theorem Finset.max_eq_sup_withBot - theorem Finset.max_erase_ne_self - theorem Finset.max_insert - theorem Finset.max_mem_image_coe - theorem Finset.max_mem_insert_bot_image_coe - theorem Finset.max_mono - theorem Finset.max_of_mem - theorem Finset.max_of_nonempty - theorem Finset.max_singleton - theorem Finset.maximal_iff_forall_insert - theorem Finset.mem_of_max - theorem Finset.mem_of_min - def Finset.min' - theorem Finset.min'_eq_inf' - theorem Finset.min'_erase_ne_self - theorem Finset.min'_image - theorem Finset.min'_insert - theorem Finset.min'_le - theorem Finset.min'_lt_max' - theorem Finset.min'_lt_max'_of_card - theorem Finset.min'_lt_of_mem_erase_min' - theorem Finset.min'_mem - theorem Finset.min'_singleton - theorem Finset.min'_subset - theorem Finset.min_empty - theorem Finset.min_eq_inf_withTop - theorem Finset.min_eq_top - theorem Finset.min_erase_ne_self - theorem Finset.min_insert - theorem Finset.min_le - theorem Finset.min_le_of_eq - theorem Finset.min_mem_image_coe - theorem Finset.min_mem_insert_top_image_coe - theorem Finset.min_mono - theorem Finset.min_of_mem - theorem Finset.min_of_nonempty - theorem Finset.min_singleton - theorem Finset.minimal_iff_forall_diff_singleton - theorem Finset.not_mem_of_coe_lt_min - theorem Finset.not_mem_of_lt_min - theorem Finset.not_mem_of_max_lt - theorem Finset.not_mem_of_max_lt_coe - theorem Finset.ofDual_max' - theorem Finset.ofDual_min' - theorem Finset.set_biInter_biUnion - theorem Finset.set_biInter_coe - theorem Finset.set_biInter_finset_image - theorem Finset.set_biInter_insert - theorem Finset.set_biInter_insert_update - theorem Finset.set_biInter_inter - theorem Finset.set_biInter_option_toFinset - theorem Finset.set_biInter_singleton - theorem Finset.set_biUnion_biUnion - theorem Finset.set_biUnion_coe - theorem Finset.set_biUnion_finset_image - theorem Finset.set_biUnion_insert - theorem Finset.set_biUnion_insert_update - theorem Finset.set_biUnion_option_toFinset - theorem Finset.set_biUnion_preimage_singleton - theorem Finset.set_biUnion_singleton - theorem Finset.set_biUnion_union - theorem Finset.subset_set_biUnion_of_mem - theorem Finset.toDual_max' - theorem Finset.toDual_min' - theorem Monotone.map_finset_max' - theorem Monotone.map_finset_min' - theorem Set.iInter_eq_iInter_finset' - theorem Set.iInter_eq_iInter_finset - theorem Set.iUnion_eq_iUnion_finset' - theorem Set.iUnion_eq_iUnion_finset - theorem iInf_eq_iInf_finset' - theorem iInf_eq_iInf_finset - theorem iSup_eq_iSup_finset' - theorem iSup_eq_iSup_finset Added Mathlib/Data/Finset/Max.lean + theorem Finset.card_le_diff_of_interleaved + theorem Finset.card_le_of_interleaved + theorem Finset.coe_max' + theorem Finset.coe_min' + theorem Finset.exists_max_image + theorem Finset.exists_min_image + theorem Finset.exists_next_left + theorem Finset.exists_next_right + theorem Finset.induction_on_max + theorem Finset.induction_on_max_value + theorem Finset.induction_on_min + theorem Finset.induction_on_min_value + theorem Finset.isGLB_iff_isLeast + theorem Finset.isGLB_mem + theorem Finset.isGreatest_max' + theorem Finset.isLUB_iff_isGreatest + theorem Finset.isLUB_mem + theorem Finset.isLeast_min' + theorem Finset.le_max' + theorem Finset.le_max + theorem Finset.le_max_of_eq + theorem Finset.le_min' + theorem Finset.le_min'_iff + theorem Finset.lt_max'_of_mem_erase_max' + theorem Finset.lt_min'_iff + theorem Finset.map_ofDual_max + theorem Finset.map_ofDual_min + theorem Finset.map_toDual_max + theorem Finset.map_toDual_min + def Finset.max' + theorem Finset.max'_eq_sup' + theorem Finset.max'_erase_ne_self + theorem Finset.max'_image + theorem Finset.max'_insert + theorem Finset.max'_le + theorem Finset.max'_le_iff + theorem Finset.max'_lt_iff + theorem Finset.max'_mem + theorem Finset.max'_singleton + theorem Finset.max'_subset + theorem Finset.max_empty + theorem Finset.max_eq_bot + theorem Finset.max_eq_sup_coe + theorem Finset.max_eq_sup_withBot + theorem Finset.max_erase_ne_self + theorem Finset.max_insert + theorem Finset.max_mem_image_coe + theorem Finset.max_mem_insert_bot_image_coe + theorem Finset.max_mono + theorem Finset.max_of_mem + theorem Finset.max_of_nonempty + theorem Finset.max_singleton + theorem Finset.mem_of_max + theorem Finset.mem_of_min + def Finset.min' + theorem Finset.min'_eq_inf' + theorem Finset.min'_erase_ne_self + theorem Finset.min'_image + theorem Finset.min'_insert + theorem Finset.min'_le + theorem Finset.min'_lt_max' + theorem Finset.min'_lt_max'_of_card + theorem Finset.min'_lt_of_mem_erase_min' + theorem Finset.min'_mem + theorem Finset.min'_singleton + theorem Finset.min'_subset + theorem Finset.min_empty + theorem Finset.min_eq_inf_withTop + theorem Finset.min_eq_top + theorem Finset.min_erase_ne_self + theorem Finset.min_insert + theorem Finset.min_le + theorem Finset.min_le_of_eq + theorem Finset.min_mem_image_coe + theorem Finset.min_mem_insert_top_image_coe + theorem Finset.min_mono + theorem Finset.min_of_mem + theorem Finset.min_of_nonempty + theorem Finset.min_singleton + theorem Finset.not_mem_of_coe_lt_min + theorem Finset.not_mem_of_lt_min + theorem Finset.not_mem_of_max_lt + theorem Finset.not_mem_of_max_lt_coe + theorem Finset.ofDual_max' + theorem Finset.ofDual_min' + theorem Finset.toDual_max' + theorem Finset.toDual_min' + theorem Monotone.map_finset_max' + theorem Monotone.map_finset_min' Modified Mathlib/Data/Finset/PiInduction.lean Modified Mathlib/Data/Finset/Sigma.lean Modified Mathlib/Data/Finset/Sort.lean Modified Mathlib/Data/Fintype/Lattice.lean Modified Mathlib/Data/Set/Finite.lean Added Mathlib/Order/CompleteLattice/Finset.lean + theorem Finset.iInf_biUnion + theorem Finset.iInf_coe + theorem Finset.iInf_finset_image + theorem Finset.iInf_insert + theorem Finset.iInf_insert_update + theorem Finset.iInf_option_toFinset + theorem Finset.iInf_singleton + theorem Finset.iInf_union + theorem Finset.iSup_biUnion + theorem Finset.iSup_coe + theorem Finset.iSup_finset_image + theorem Finset.iSup_insert + theorem Finset.iSup_insert_update + theorem Finset.iSup_option_toFinset + theorem Finset.iSup_singleton + theorem Finset.iSup_union + theorem Finset.maximal_iff_forall_insert + theorem Finset.minimal_iff_forall_diff_singleton + theorem Finset.set_biInter_biUnion + theorem Finset.set_biInter_coe + theorem Finset.set_biInter_finset_image + theorem Finset.set_biInter_insert + theorem Finset.set_biInter_insert_update + theorem Finset.set_biInter_inter + theorem Finset.set_biInter_option_toFinset + theorem Finset.set_biInter_singleton + theorem Finset.set_biUnion_biUnion + theorem Finset.set_biUnion_coe + theorem Finset.set_biUnion_finset_image + theorem Finset.set_biUnion_insert + theorem Finset.set_biUnion_insert_update + theorem Finset.set_biUnion_option_toFinset + theorem Finset.set_biUnion_preimage_singleton + theorem Finset.set_biUnion_singleton + theorem Finset.set_biUnion_union + theorem Finset.subset_set_biUnion_of_mem + theorem Set.iInter_eq_iInter_finset' + theorem Set.iInter_eq_iInter_finset + theorem Set.iUnion_eq_iUnion_finset' + theorem Set.iUnion_eq_iUnion_finset + theorem iInf_eq_iInf_finset' + theorem iInf_eq_iInf_finset + theorem iSup_eq_iSup_finset' + theorem iSup_eq_iSup_finset Modified Mathlib/Order/CountableDenseLinearOrder.lean 2024-10-01 22:14:14 9e4a4be feat: a family of compatible triangularisable endomorphisms are simultaneously triangularisable (#17194) ESTIMATED CHANGES Modified Mathlib/Algebra/Lie/Weights/Basic.lean Modified Mathlib/Algebra/Module/Submodule/Lattice.lean + theorem Submodule.inf_iInf Modified Mathlib/Algebra/Module/Submodule/LinearMap.lean + theorem LinearMap.restrict_smul_one Modified Mathlib/Algebra/Module/Submodule/Map.lean + theorem Submodule.map_iInf Modified Mathlib/LinearAlgebra/Eigenspace/Basic.lean + theorem Module.End.iInf_maxGenEigenspace_restrict_map_subtype_eq + theorem Module.End.mapsTo_restrict_maxGenEigenspace_restrict_of_mapsTo + theorem Submodule.inf_iInf_maxGenEigenspace_of_forall_mapsTo Modified Mathlib/LinearAlgebra/Eigenspace/Triangularizable.lean + theorem Module.End.iSup_iInf_maxGenEigenspace_eq_top_of_forall_mapsTo 2024-10-01 21:09:45 20048df chore: remove repeated variables (#17339) ESTIMATED CHANGES Modified Mathlib/Init/Algebra/Classes.lean Modified Mathlib/Logic/Relator.lean 2024-10-01 21:09:44 2ce1fb1 chore: add a few focusing dots 2 (#17314) More missing cdots found by the multiGoal linter (#12339). ESTIMATED CHANGES Modified Mathlib/Control/LawfulFix.lean Modified Mathlib/Data/Finsupp/Weight.lean Modified Mathlib/Data/Seq/Computation.lean Modified Mathlib/MeasureTheory/Function/UnifTight.lean Modified Mathlib/MeasureTheory/Measure/SeparableMeasure.lean Modified Mathlib/Order/Defs.lean Modified Mathlib/RingTheory/HahnSeries/Multiplication.lean 2024-10-01 21:09:43 a95d25f feat: `M⁻¹.PosDef ↔ M.PosDef` (#17310) The implication already existed for `PosSemidef` ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/Matrix/PosDef.lean + theorem Matrix.PosDef.isUnit + theorem Matrix.posDef_inv_iff 2024-10-01 21:09:42 ac1e7e8 feat: Composition of the coercion `ℝ → ℂ` with algebraic operations (#17213) From LeanAPAP ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Hom/Defs.lean +/- theorem map_comp_pow Modified Mathlib/Data/Complex/Basic.lean + theorem Complex.ofReal_comp_add + theorem Complex.ofReal_comp_mul + theorem Complex.ofReal_comp_neg + theorem Complex.ofReal_comp_nsmul + theorem Complex.ofReal_comp_pow + theorem Complex.ofReal_comp_sub + theorem Complex.ofReal_comp_zsmul 2024-10-01 20:15:56 ebdf9cc feat(ENNReal): Convenience lemmas (#17277) Add a few convenience lemmas using the equality `a = b + c` to deduce that `b` is finite from the fact that `a` is. As shown by the golfs, this is useful. Also deprecate `sub_eq_of_add_eq`, which is the "annoyingly swap things around" version of `eq_sub_of_add_eq`/`sub_eq_of_eq_add`. From LeanAPAP ESTIMATED CHANGES Modified Archive/Wiedijk100Theorems/BallotProblem.lean Modified Mathlib/Algebra/Order/BigOperators/Group/Finset.lean + theorem Finset.mulLECancellable_prod Modified Mathlib/Algebra/Order/Monoid/Unbundled/Basic.lean + theorem MulLECancellable.mul + theorem MulLECancellable.of_mul_left + theorem MulLECancellable.of_mul_right + theorem mulLECancellable_mul Modified Mathlib/Algebra/Order/Sub/Defs.lean Modified Mathlib/Data/ENNReal/Inv.lean +/- theorem ENNReal.sub_half Modified Mathlib/Data/ENNReal/Operations.lean Modified Mathlib/Data/ENNReal/Real.lean Modified Mathlib/MeasureTheory/Measure/Lebesgue/EqHaar.lean Modified Mathlib/MeasureTheory/Measure/MeasureSpace.lean 2024-10-01 20:15:55 96ac52f chore(*.ModEq): reduce dependencies (#17154) Both `Nat.ModEq` and `Int.ModEq` have some spurious dependencies which can be removed by reasonable swaps of generic tactics/declarations for `Nat` and `Int` native versions (e.g. use `omega` more). This PR does that and makes a slouching attempt to hold back the import graph downstream of these. ESTIMATED CHANGES Modified Mathlib/Algebra/CharP/Defs.lean Modified Mathlib/Algebra/ModEq.lean Modified Mathlib/Algebra/Order/Group/Unbundled/Int.lean + theorem Int.abs_sub_lt_of_lt_lt + theorem Int.eq_zero_of_abs_lt_dvd Modified Mathlib/Combinatorics/Additive/FreimanHom.lean Modified Mathlib/Data/Int/ModEq.lean Modified Mathlib/Data/Int/Order/Lemmas.lean - theorem Int.eq_zero_of_abs_lt_dvd Modified Mathlib/Data/Nat/ModEq.lean Modified Mathlib/Data/ZMod/Defs.lean Modified Mathlib/Logic/Godel/GodelBetaFunction.lean Modified Mathlib/Order/Filter/AtTopBot/ModEq.lean Modified Mathlib/Tactic/ModCases.lean 2024-10-01 19:58:38 3a0cb01 chore: rename Polynomial.prod_roots_eq_coeff_zero_of_monic_of_split (#17337) ESTIMATED CHANGES Modified Mathlib/Algebra/Polynomial/Splits.lean - theorem Polynomial.prod_roots_eq_coeff_zero_of_monic_of_split + theorem Polynomial.prod_roots_eq_coeff_zero_of_monic_of_splits Modified Mathlib/LinearAlgebra/Matrix/Charpoly/Eigs.lean Modified Mathlib/RingTheory/Norm/Basic.lean 2024-10-01 18:56:51 00acfa1 feat(Algebra/TrivSqZeroExt): generalize some results to `Invertible` (#12125) I think this probably raises that a more general approach to handling partial inverses is needed soon, since it duplicates lots of the `Matrix` logic. ESTIMATED CHANGES Modified Mathlib/Algebra/TrivSqZeroExt.lean + theorem TrivSqZeroExt.fst_invOf + theorem TrivSqZeroExt.invOf_eq_inv + def TrivSqZeroExt.invertibleEquivInvertibleFst + theorem TrivSqZeroExt.isUnit_iff_isUnit_fst + theorem TrivSqZeroExt.isUnit_inl_iff + theorem TrivSqZeroExt.isUnit_inr_iff + theorem TrivSqZeroExt.isUnit_inv_iff + theorem TrivSqZeroExt.mul_left_eq_one + theorem TrivSqZeroExt.mul_right_eq_one + theorem TrivSqZeroExt.snd_invOf 2024-10-01 18:15:49 90a6b82 feat(RingTheory/LaurentSeries): prove that Laurent Series over a field are complete (#16865) In this PR we provide a proof that the Laurent series over a field are complete. ESTIMATED CHANGES Modified Mathlib/Order/Filter/Ultrafilter.lean + theorem Ultrafilter.eq_of_le_pure Modified Mathlib/RingTheory/LaurentSeries.lean + def LaurentSeries.Cauchy.coeff + theorem LaurentSeries.Cauchy.coeff_eventually_equal + theorem LaurentSeries.Cauchy.coeff_support_bddBelow + theorem LaurentSeries.Cauchy.coeff_tendsto + theorem LaurentSeries.Cauchy.eventually_mem_nhds + theorem LaurentSeries.Cauchy.exists_lb_coeff_ne + theorem LaurentSeries.Cauchy.exists_lb_eventual_support + theorem LaurentSeries.Cauchy.exists_lb_support + def LaurentSeries.Cauchy.limit + theorem LaurentSeries.uniformContinuous_coeff Modified Mathlib/Topology/UniformSpace/Basic.lean + theorem eq_singleton_left_of_prod_subset_idRel + theorem eq_singleton_prod_subset_idRel + theorem eq_singleton_right_prod_subset_idRel Modified Mathlib/Topology/UniformSpace/Cauchy.lean + theorem UniformSpace.DiscreteUnif.cauchy_le_pure + theorem UniformSpace.DiscreteUnif.eq_const_of_cauchy 2024-10-01 17:04:21 1fe4aec feat: `ℂ` and `Finset.expect` (#17274) Make more arguments to `NNReal.coe_sum` explicit to match `NNReal.coe_expect`. From LeanAPAP ESTIMATED CHANGES Modified Mathlib/Algebra/Order/BigOperators/Expect.lean + theorem Finset.abs_expect_le - theorem Finset.abs_expect_le_expect_abs Modified Mathlib/Analysis/Normed/Group/Basic.lean Modified Mathlib/Analysis/Normed/Group/Constructions.lean Modified Mathlib/Analysis/RCLike/Basic.lean +/- theorem RCLike.nnnorm_nnqsmul + theorem RCLike.norm_expect_le +/- theorem RCLike.norm_nnqsmul + theorem RCLike.ofReal_expect Modified Mathlib/Data/Complex/Basic.lean + theorem Complex.im_nnqsmul + theorem Complex.im_nsmul + theorem Complex.im_qsmul + theorem Complex.im_zsmul + theorem Complex.re_nnqsmul + theorem Complex.re_nsmul + theorem Complex.re_qsmul + theorem Complex.re_zsmul Modified Mathlib/Data/Complex/BigOperators.lean + theorem Complex.im_expect + theorem Complex.ofReal_expect + theorem Complex.re_expect Modified Mathlib/Data/NNReal/Basic.lean + theorem NNReal.coe_expect +/- theorem NNReal.coe_prod +/- theorem NNReal.coe_sum +/- theorem Real.toNNReal_prod_of_nonneg +/- theorem Real.toNNReal_sum_of_nonneg Modified Mathlib/Topology/Instances/Real.lean 2024-10-01 17:04:20 0d57a34 feat(Topology/KrullDimension): add invariance under homeomorphism theorem and auxiliary lemmas (#17175) Added some lemmas about the topological Krull dimension ESTIMATED CHANGES Modified Mathlib/Data/Set/Image.lean + theorem Function.Injective.image_strictMono Modified Mathlib/Topology/KrullDimension.lean + theorem ClosedEmbedding.topologicalKrullDim_le + def IrreducibleCloseds.map + theorem IrreducibleCloseds.map_strictMono + theorem IsHomeomorph.topologicalKrullDim_eq 2024-10-01 17:04:19 c9ef6fe feat(RingTheory/StandardSmooth): composition and localization (#16827) Constructs submersive presentations for composition and localization away from one element. This contribution was created as part of the AIM workshop "Formalizing algebraic geometry" in June 2024. ESTIMATED CHANGES Modified Mathlib/Algebra/MvPolynomial/Basic.lean + theorem MvPolynomial.aeval_sum_elim + theorem MvPolynomial.comp_aeval_apply Modified Mathlib/Algebra/MvPolynomial/PDeriv.lean + theorem MvPolynomial.aeval_sum_elim_pderiv_inl + theorem MvPolynomial.pderiv_rename Modified Mathlib/RingTheory/Presentation.lean + theorem Algebra.Presentation.comp_aeval_relation_inl + theorem Algebra.Presentation.comp_relation_inr - theorem Algebra.Presentation.comp_relation_map +/- theorem Algebra.Presentation.localizationAway_dimension_zero Modified Mathlib/RingTheory/Smooth/StandardSmooth.lean + theorem Algebra.IsStandardSmooth.localization_away + theorem Algebra.IsStandardSmooth.trans + theorem Algebra.IsStandardSmoothOfRelativeDimension.localization_away + theorem Algebra.IsStandardSmoothOfRelativeDimension.trans + theorem Algebra.PreSubmersivePresentation.comp_jacobian_eq_jacobian_smul_jacobian + theorem Algebra.PreSubmersivePresentation.dimension_comp_eq_dimension_add_dimension + theorem Algebra.PreSubmersivePresentation.localizationAway_jacobiMatrix + theorem Algebra.PreSubmersivePresentation.localizationAway_jacobian 2024-10-01 16:18:07 2ea60e1 chore: update Mathlib dependencies 2024-10-01 (#17328) This PR updates the Mathlib dependencies. ESTIMATED CHANGES Modified lake-manifest.json 2024-10-01 14:56:24 a9d07e8 feat(RingTheory/IsTensorProduct): cancel pushout square on the left (#17028) Given a commutative diagram of rings ``` R → S → T ↓ ↓ ↓ R' → S' → T' ``` where the left-hand square is a pushout and the big rectangle is a pushout, we show that then also the right-hand square is a pushout. ESTIMATED CHANGES Modified Mathlib/Algebra/Module/LinearMap/Defs.lean + theorem LinearMap.restrictScalars_comp +/- theorem LinearMap.restrictScalars_neg + theorem LinearMap.restrictScalars_trans Modified Mathlib/RingTheory/IsTensorProduct.lean + theorem Algebra.IsPushout.comp_iff + theorem IsBaseChange.comp_iff + theorem IsBaseChange.of_comp 2024-10-01 14:00:40 f73be5b feat: add option for the default length of a file (#17312) As discussed on [Zulip](https://leanprover.zulipchat.com/#narrow/stream/270676-lean4/topic/Retrieving.20.60weak.60.20options/near/468301685). A further benefit of having the option is that the tests can be performed more easily, since you do not have to reach a file length of more than 1500 to test behaviour beyond the `defValue`. ESTIMATED CHANGES Modified Mathlib/Tactic/Linter/Lint.lean 2024-10-01 14:00:38 fbc97bc chore: split longFile test to its own file (#17311) The longFile test reports line numbers and changes to the tests in the same file trigger changes in these error messages that are really unrelated. Moving the tests for the longFile to a separate file prevents this behaviour. ESTIMATED CHANGES Modified test/Lint.lean Added test/LongFile.lean 2024-10-01 14:00:37 608231a feat(NumberTheory/JacobiSum/Basic): add lemmas on value of Jacobi sum (#17003) This adds statements that the Jacobi sum of two characters of order dividing `n` is in `ℤ[μ]`, where `μ` is a primitive `n`th root of unity, and more precisely, is of the form `-1 + z*(μ-1)^2` with `z` in `ℤ[μ]`. ESTIMATED CHANGES Modified Mathlib/NumberTheory/JacobiSum/Basic.lean + theorem MulChar.exists_apply_sub_one_eq_mul_sub_one + theorem MulChar.exists_apply_sub_one_mul_apply_sub_one + theorem exists_jacobiSum_eq_neg_one_add + theorem jacobiSum_mem_algebraAdjoin_of_pow_eq_one 2024-10-01 14:00:36 26ad5ce feat(RingTheory/TwoSidedIdeal): add some basic operations on two-sided-ideals (#14460) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/RingTheory/Congruence/Basic.lean + def RingCon.comap Added Mathlib/RingTheory/TwoSidedIdeal/BigOperators.lean + theorem TwoSidedIdeal.finsetProd_mem + theorem TwoSidedIdeal.finsetSum_mem + theorem TwoSidedIdeal.listProd_mem + theorem TwoSidedIdeal.listSum_mem + theorem TwoSidedIdeal.multiSetProd_mem + theorem TwoSidedIdeal.multisetSum_mem Added Mathlib/RingTheory/TwoSidedIdeal/Operations.lean + def TwoSidedIdeal.asIdeal + def TwoSidedIdeal.asIdealOpposite + theorem TwoSidedIdeal.coe_asIdeal + def TwoSidedIdeal.comap + def TwoSidedIdeal.fromIdeal + theorem TwoSidedIdeal.gc + def TwoSidedIdeal.ker + def TwoSidedIdeal.map + theorem TwoSidedIdeal.map_mono + theorem TwoSidedIdeal.mem_asIdeal + theorem TwoSidedIdeal.mem_asIdealOpposite + theorem TwoSidedIdeal.mem_comap + theorem TwoSidedIdeal.mem_fromIdeal + theorem TwoSidedIdeal.mem_ker + theorem TwoSidedIdeal.mem_span_iff + theorem TwoSidedIdeal.mem_span_iff_mem_addSubgroup_closure + theorem TwoSidedIdeal.mem_span_iff_mem_addSubgroup_closure_absorbing + theorem TwoSidedIdeal.mem_span_iff_mem_addSubgroup_closure_nonunital + def TwoSidedIdeal.orderIsoIdeal + theorem TwoSidedIdeal.set_mul_subset + theorem TwoSidedIdeal.span_mono + theorem TwoSidedIdeal.subset_mul_set + theorem TwoSidedIdeal.subset_span 2024-10-01 14:00:34 47ef55c refactor: Generalise special case of Jensen (#11448) `Real.pow_sum_div_card_le_sum_pow` and `NNReal.pow_sum_div_card_le_sum_pow` both state that `(∑ i in s, f i) ^ (n + 1) / s.card ^ n ≤ ∑ i in s, f i ^ (n + 1)`, but one for `f : ι → ℝ` and the other for `f : ι → ℝ≥0`. Both lemmas can be unified by deriving the inequality for `f : ι → α` where `[LinearOrderedSemifield α] [ExistsAddOfLE α]`. This involves generalising the rearrangement inequality semirings. From LeanAPAP ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Chebyshev.lean + theorem pow_sum_div_card_le_sum_pow + theorem pow_sum_le_card_mul_sum_pow Modified Mathlib/Analysis/MeanInequalitiesPow.lean - theorem NNReal.pow_sum_div_card_le_sum_pow - theorem Real.pow_sum_div_card_le_sum_pow 2024-10-01 11:49:14 2cb73c7 refactor: Generalise the rearrangement inequality (#15815) ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Rearrangement.lean +/- theorem MonovaryOn.sum_mul_comp_perm_le_sum_mul 2024-10-01 11:49:13 69c3e92 feat: Convex functions are continuous (#14999) Prove that convex functions from an open set in a finite dimensional real normed space are locally Lipschitz on that set. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/Convex/Continuous.lean + theorem ConcaveOn.continuousOn_interior + theorem ConcaveOn.continuousOn_tfae + theorem ConcaveOn.exists_lipschitzOnWith_of_isBounded + theorem ConcaveOn.isBoundedUnder_abs + theorem ConcaveOn.lipschitzOnWith_of_abs_le + theorem ConcaveOn.locallyLipschitzOn_iff_continuousOn + theorem ConcaveOn.locallyLipschitzOn_interior + theorem ConvexOn.continuousOn_interior + theorem ConvexOn.continuousOn_tfae + theorem ConvexOn.exists_lipschitzOnWith_of_isBounded + theorem ConvexOn.isBoundedUnder_abs + theorem ConvexOn.lipschitzOnWith_of_abs_le + theorem ConvexOn.locallyLipschitzOn_iff_continuousOn + theorem ConvexOn.locallyLipschitzOn_interior Modified Mathlib/Analysis/Convex/Intrinsic.lean - theorem intrinsicClosure_eq_closure_of_span - theorem intrinsicClosure_univ - theorem intrinsicFrontier_eq_frontier_of_span - theorem intrinsicFrontier_univ - theorem intrinsicInterior_eq_interior_of_span - theorem intrinsicInterior_univ Modified Mathlib/Topology/ContinuousOn.lean +/- theorem continuousOn_empty Modified docs/undergrad.yaml 2024-10-01 11:19:31 4ae56c1 chore: rename `unique_diff` to `uniqueDiffOn` in theorems (#17291) ESTIMATED CHANGES Modified Mathlib/Geometry/Manifold/ContMDiffMFDeriv.lean Modified Mathlib/Geometry/Manifold/Diffeomorph.lean Modified Mathlib/Geometry/Manifold/Instances/Real.lean Modified Mathlib/Geometry/Manifold/MFDeriv/Basic.lean Modified Mathlib/Geometry/Manifold/MFDeriv/SpecificFunctions.lean Modified Mathlib/Geometry/Manifold/SmoothManifoldWithCorners.lean + theorem ModelWithCorners.uniqueDiffOn_preimage + theorem ModelWithCorners.uniqueDiffOn_preimage_source + theorem ModelWithCorners.uniqueDiffWithinAt_image - theorem ModelWithCorners.unique_diff_at_image - theorem ModelWithCorners.unique_diff_preimage - theorem ModelWithCorners.unique_diff_preimage_source Modified Mathlib/Geometry/Manifold/VectorBundle/Tangent.lean 2024-10-01 11:19:30 c24c460 feat: `Irrational π` (#17103) This contains a port of @b-mehta's https://github.com/leanprover-community/mathlib3/commits/irrational-pi branch, with the conversion to Lean 4 performed by @b-mehta with his google hat on. My contributions here are minimal! ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Polynomial/Degree/Definitions.lean + theorem Polynomial.natDegree_ofNat Added Mathlib/Data/Real/Pi/Irrational.lean + theorem irrational_pi Modified Mathlib/MeasureTheory/Integral/IntervalIntegral.lean + theorem intervalIntegral.integral_pos 2024-10-01 10:43:13 581d005 feat: inverse of a 1×1 matrix (#17298) The statement is a little strange, so it comes with a docstring to justify it. From https://github.com/eric-wieser/lean-matrix-cookbook ESTIMATED CHANGES Modified Mathlib/Data/Matrix/Basic.lean + theorem Matrix.diagonal_unique Modified Mathlib/LinearAlgebra/Matrix/NonsingularInverse.lean + theorem Matrix.inv_subsingleton + theorem Matrix.isUnit_nonsing_inv_iff 2024-10-01 10:10:25 d2126e2 chore: update Mathlib dependencies 2024-10-01 (#17324) This PR updates the Mathlib dependencies. ESTIMATED CHANGES Modified lake-manifest.json 2024-10-01 08:15:40 809c3fb chore: move to v4.12.0 (#17320) ESTIMATED CHANGES Modified lean-toolchain 2024-10-01 08:05:20 3829434 chore: update Mathlib dependencies 2024-10-01 (#17322) This PR updates the Mathlib dependencies. ESTIMATED CHANGES Modified lake-manifest.json 2024-10-01 05:27:32 0da2361 chore: tidy various files (#17095) ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/Basic.lean Modified Mathlib/Algebra/Group/Subgroup/Basic.lean Modified Mathlib/Algebra/Lie/Subalgebra.lean Modified Mathlib/Algebra/Module/Equiv/Basic.lean Modified Mathlib/Analysis/SpecialFunctions/Gamma/Basic.lean Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Bounds.lean Modified Mathlib/FieldTheory/Finiteness.lean Modified Mathlib/FieldTheory/Galois/Basic.lean Modified Mathlib/GroupTheory/MonoidLocalization/Basic.lean Modified Mathlib/LinearAlgebra/LinearIndependent.lean Modified Mathlib/Logic/Function/FiberPartition.lean Modified Mathlib/MeasureTheory/Function/LocallyIntegrable.lean Modified Mathlib/MeasureTheory/Measure/SeparableMeasure.lean Modified Mathlib/NumberTheory/NumberField/CanonicalEmbedding/Basic.lean Modified Mathlib/NumberTheory/NumberField/CanonicalEmbedding/FundamentalCone.lean +/- theorem NumberField.mixedEmbedding.fundamentalCone.integralPoint_ne_zero Modified Mathlib/Probability/Distributions/Gamma.lean Modified Mathlib/RingTheory/MvPowerSeries/LexOrder.lean Modified Mathlib/RingTheory/UniqueFactorizationDomain.lean Modified Mathlib/Topology/FiberPartition.lean 2024-09-30 21:32:25 37814ca feat(SetTheory/ZFC/Basic): make `sInter` computable (#17248) Moved from #15624 with permission from the original author. Co-authored by: RustyYato ESTIMATED CHANGES Modified Mathlib/SetTheory/ZFC/Basic.lean + def ZFSet.sInter +/- theorem ZFSet.sInter_empty + theorem ZFSet.sep_empty 2024-09-30 20:40:41 d5d186a feat(Algebra/Group/Pointwise/Set/Basic): sInter and sUnion forms of pointwise operations (#17253) Provides `sInter` and `sUnion` versions of pointwise algebraic operations on sets. Needed in #17029 ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Pointwise/Set/Basic.lean + theorem Set.div_sInter_subset + theorem Set.div_sUnion + theorem Set.mul_sInter_subset + theorem Set.mul_sUnion + theorem Set.sInter_div_subset + theorem Set.sInter_inv + theorem Set.sInter_mul_subset + theorem Set.sInter_smul_subset + theorem Set.sInter_vsub_subset + theorem Set.sUnion_div + theorem Set.sUnion_inv + theorem Set.sUnion_mul + theorem Set.sUnion_smul + theorem Set.sUnion_vsub + theorem Set.smul_sInter_subset + theorem Set.smul_sUnion + theorem Set.smul_set_sInter_subset + theorem Set.smul_set_sUnion + theorem Set.vsub_sInter_subset + theorem Set.vsub_sUnion Modified Mathlib/Data/Set/Lattice.lean + theorem Set.image2_sInter_left_subset + theorem Set.image2_sInter_right_subset + theorem Set.image2_sInter_subset_left + theorem Set.image2_sInter_subset_right + theorem Set.image2_sUnion_left + theorem Set.image2_sUnion_right 2024-09-30 17:40:35 5024c93 feat: `Disjoint G₁.edgeFinset G₂.edgeFinset ↔ Disjoint G₁ G₂` (#17286) From LeanCamCombi ESTIMATED CHANGES Modified Mathlib/Combinatorics/SimpleGraph/Finite.lean + theorem SimpleGraph.disjoint_edgeFinset + theorem SimpleGraph.edgeFinset_eq_empty + theorem SimpleGraph.edgeFinset_nonempty 2024-09-30 17:40:33 445d05d feat: VC-dimension is monotone (#17283) From LeanCamCombi ESTIMATED CHANGES Modified Mathlib/Combinatorics/SetFamily/Shatter.lean +/- theorem Finset.shatterer_mono + theorem Finset.vcDim_mono 2024-09-30 16:44:19 0b5e485 feat: add `mapsTo_fst_prod` and `mapsTo_snd_prod` (#17279) Also adjust the file-level docstring of `Data.Set.Prod` to match the content of the file ESTIMATED CHANGES Modified Mathlib/Data/Set/Prod.lean + theorem Set.mapsTo_fst_prod + theorem Set.mapsTo_snd_prod 2024-09-30 15:50:42 656765e feat(MetricSpace/Ultra): `TotallyDisconnectedSpace X` when X is ultrametric (#17297) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Topology/MetricSpace/Ultra/TotallyDisconnected.lean 2024-09-30 15:34:53 a6e5517 chore(AlgebraicGeometry/EllipticCurve/*): split `VariableChange` into a new file (#17199) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/AlgebraicGeometry/EllipticCurve/Affine.lean Added Mathlib/AlgebraicGeometry/EllipticCurve/VariableChange.lean + theorem EllipticCurve.coe_inv_variableChange_Δ' + theorem EllipticCurve.coe_variableChange_Δ' + def EllipticCurve.variableChange + theorem EllipticCurve.variableChange_comp + theorem EllipticCurve.variableChange_id + theorem EllipticCurve.variableChange_j + def WeierstrassCurve.VariableChange.comp + theorem WeierstrassCurve.VariableChange.comp_assoc + theorem WeierstrassCurve.VariableChange.comp_id + theorem WeierstrassCurve.VariableChange.comp_left_inv + def WeierstrassCurve.VariableChange.id + theorem WeierstrassCurve.VariableChange.id_comp + def WeierstrassCurve.VariableChange.inv + def WeierstrassCurve.VariableChange.map + def WeierstrassCurve.VariableChange.mapHom + theorem WeierstrassCurve.VariableChange.map_baseChange + theorem WeierstrassCurve.VariableChange.map_id + theorem WeierstrassCurve.VariableChange.map_injective + theorem WeierstrassCurve.VariableChange.map_map + structure WeierstrassCurve.VariableChange + theorem WeierstrassCurve.map_variableChange + def WeierstrassCurve.variableChange + theorem WeierstrassCurve.variableChange_b₂ + theorem WeierstrassCurve.variableChange_b₄ + theorem WeierstrassCurve.variableChange_b₆ + theorem WeierstrassCurve.variableChange_b₈ + theorem WeierstrassCurve.variableChange_comp + theorem WeierstrassCurve.variableChange_c₄ + theorem WeierstrassCurve.variableChange_c₆ + theorem WeierstrassCurve.variableChange_id + theorem WeierstrassCurve.variableChange_Δ Modified Mathlib/AlgebraicGeometry/EllipticCurve/Weierstrass.lean - theorem EllipticCurve.coe_inv_variableChange_Δ' - theorem EllipticCurve.coe_variableChange_Δ' - def EllipticCurve.variableChange - theorem EllipticCurve.variableChange_comp - theorem EllipticCurve.variableChange_id - theorem EllipticCurve.variableChange_j - def WeierstrassCurve.VariableChange.comp - theorem WeierstrassCurve.VariableChange.comp_assoc - theorem WeierstrassCurve.VariableChange.comp_id - theorem WeierstrassCurve.VariableChange.comp_left_inv - def WeierstrassCurve.VariableChange.id - theorem WeierstrassCurve.VariableChange.id_comp - def WeierstrassCurve.VariableChange.inv - def WeierstrassCurve.VariableChange.map - def WeierstrassCurve.VariableChange.mapHom - theorem WeierstrassCurve.VariableChange.map_baseChange - theorem WeierstrassCurve.VariableChange.map_id - theorem WeierstrassCurve.VariableChange.map_injective - theorem WeierstrassCurve.VariableChange.map_map - structure WeierstrassCurve.VariableChange - theorem WeierstrassCurve.map_variableChange - def WeierstrassCurve.variableChange - theorem WeierstrassCurve.variableChange_b₂ - theorem WeierstrassCurve.variableChange_b₄ - theorem WeierstrassCurve.variableChange_b₆ - theorem WeierstrassCurve.variableChange_b₈ - theorem WeierstrassCurve.variableChange_comp - theorem WeierstrassCurve.variableChange_c₄ - theorem WeierstrassCurve.variableChange_c₆ - theorem WeierstrassCurve.variableChange_id - theorem WeierstrassCurve.variableChange_Δ 2024-09-30 14:37:27 cb03ac2 feat: Left/right commutativity of `min`/`max` on `Nat` (#17287) These will be used to prove `List` lemmas that can't afford to import the more general statements From LeanCamCombi ESTIMATED CHANGES Modified Mathlib/Data/Nat/Defs.lean 2024-09-30 14:06:03 2db234e chore: Rename `DenseEmbedding` to `IsDenseEmbedding` (#17247) `Function.Embedding` is a type while `Embedding` is a proposition, and there are many other kinds of embeddings than topological embeddings. Hence this PR is a step towards 1. renaming `Embedding` to `IsEmbedding` and similarly for neighborhing declarations (which `DenseEmbedding` is) 2. namespacing it inside `Topology` [Zulip](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/rename.20.60Inducing.60.20and.20.60Embedding.60.3F). See #15993 for context. ESTIMATED CHANGES Modified Mathlib/Analysis/InnerProductSpace/OfNorm.lean Modified Mathlib/MeasureTheory/Function/SimpleFuncDenseLp.lean + theorem MeasureTheory.Lp.simpleFunc.isDenseEmbedding Modified Mathlib/NumberTheory/Liouville/Residual.lean Modified Mathlib/Topology/Algebra/UniformField.lean Modified Mathlib/Topology/Compactification/OnePoint.lean - theorem OnePoint.denseEmbedding_coe + theorem OnePoint.isDenseEmbedding_coe Modified Mathlib/Topology/DenseEmbedding.lean - theorem Dense.denseEmbedding_val + theorem Dense.isDenseEmbedding_val - theorem DenseEmbedding.dense_image - theorem DenseEmbedding.inj_iff - theorem DenseEmbedding.mk' - def DenseEmbedding.subtypeEmb - theorem DenseEmbedding.to_embedding - structure DenseEmbedding + theorem IsDenseEmbedding.dense_image + theorem IsDenseEmbedding.inj_iff + theorem IsDenseEmbedding.mk' + def IsDenseEmbedding.subtypeEmb + theorem IsDenseEmbedding.to_embedding + structure IsDenseEmbedding - theorem denseEmbedding_id Modified Mathlib/Topology/Homeomorph.lean + theorem Homeomorph.isDenseEmbedding + theorem IsHomeomorph.isDenseEmbedding Modified Mathlib/Topology/Instances/Complex.lean Modified Mathlib/Topology/Instances/Rat.lean - theorem Rat.denseEmbedding_coe_real + theorem Rat.isDenseEmbedding_coe_real Modified Mathlib/Topology/Instances/RatLemmas.lean Modified Mathlib/Topology/Instances/RealVectorSpace.lean Modified Mathlib/Topology/StoneCech.lean - theorem denseEmbedding_pure + theorem isDenseEmbedding_pure Modified Mathlib/Topology/UniformSpace/CompareReals.lean Modified Mathlib/Topology/UniformSpace/Completion.lean - theorem CauchyFilter.denseEmbedding_pureCauchy + theorem CauchyFilter.isDenseEmbedding_pureCauchy - theorem UniformSpace.Completion.denseEmbedding_coe + theorem UniformSpace.Completion.isDenseEmbedding_coe Modified Mathlib/Topology/UniformSpace/UniformEmbedding.lean - theorem UniformEmbedding.denseEmbedding + theorem UniformEmbedding.isDenseEmbedding Modified scripts/no_lints_prime_decls.txt 2024-09-30 13:03:37 d86c163 feat: add missing List.foldr lemmas (#17222) ESTIMATED CHANGES Modified Mathlib/Algebra/BigOperators/Group/List.lean +/- theorem List.Perm.prod_eq Modified Mathlib/Data/List/Basic.lean + theorem List.foldr_assoc Modified Mathlib/Data/List/Perm.lean - theorem List.Perm.fold_op_eq + theorem List.Perm.foldl_op_eq + theorem List.Perm.foldr_eq' + theorem List.Perm.foldr_op_eq 2024-09-30 13:03:36 13d70fa chore(Tactic/GeneraliseProofs): reduce Inhabited to Nonempty (#17125) This seems to work, but I am not sure if this change is fully fine, or there are side effects I don't know about. ESTIMATED CHANGES Modified Mathlib/Tactic/GeneralizeProofs.lean 2024-09-30 12:08:26 dfc9235 chore(Tactic/Linter): do not import `TextBased` linter (#17187) `Mathlib.Tactic.Linter.TextBased` is only used by the script `lake exe lint-style` and therefore does not to be imported by Mathlib. ESTIMATED CHANGES Modified Mathlib/Tactic/Linter.lean 2024-09-30 11:16:57 71a8921 chore: remove shadowed variable name (#17272) The variable name `H` was repeated. The ambiguity could potentially be an issue for using `apply lemma_name (H := x)`. Found while working on the unused variable command linter. ESTIMATED CHANGES Modified Mathlib/RingTheory/IsTensorProduct.lean +/- theorem Algebra.pushoutDesc_left +/- theorem Algebra.pushoutDesc_right 2024-09-30 11:16:56 c07cbe1 chore(Analysis/CStarAlgebra/Spectrum): generalize type class assumptions (#17267) ESTIMATED CHANGES Modified Mathlib/Analysis/CStarAlgebra/Spectrum.lean 2024-09-30 10:30:18 04f66c4 chore: `Finsupp.coe_finset_sum` simp (#17228) From LeanCamCombi ESTIMATED CHANGES Modified Mathlib/Algebra/BigOperators/Finsupp.lean +/- theorem Finsupp.coe_finset_sum +/- theorem Finsupp.coe_sum Modified Mathlib/Data/Nat/Factorization/Defs.lean 2024-09-30 09:29:24 e336e27 chore(ZMod): Move module and algebra instances under `Algebra` (#17237) Those files have nothing to do under `Data` ESTIMATED CHANGES Modified Mathlib.lean Renamed Mathlib/Data/ZMod/Algebra.lean to Mathlib/Algebra/Algebra/ZMod.lean Modified Mathlib/Algebra/Module/Torsion.lean Renamed Mathlib/Data/ZMod/Module.lean to Mathlib/Algebra/Module/ZMod.lean Modified Mathlib/FieldTheory/Finite/GaloisField.lean Modified Mathlib/FieldTheory/IsAlgClosed/Classification.lean Modified Mathlib/RingTheory/Polynomial/Cyclotomic/Expand.lean Modified Mathlib/RingTheory/WittVector/Frobenius.lean 2024-09-30 08:52:11 39b61a6 chore(Data/Matrix): some trivial lemmas about `row` and `col` (#17243) ESTIMATED CHANGES Modified Mathlib/Data/Matrix/RowCol.lean + theorem Matrix.mulVec_col_eq_const + theorem Matrix.row_mulVec_eq_const + theorem Matrix.row_mul_col 2024-09-30 03:28:53 eed3300 doc(Data/Rat/Cast/Defs): update docs (#17268) The notation has been moved to `Batteries.Data.Rat`. ESTIMATED CHANGES Modified Mathlib/Data/Rat/Cast/Defs.lean 2024-09-30 02:32:58 07a4873 chore(Data/ZMod/Parity): Delete (#17236) The files can be moved earlier at no cost ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Combinatorics/SimpleGraph/DegreeSum.lean Modified Mathlib/Data/ZMod/Basic.lean + theorem ZMod.eq_one_iff_odd + theorem ZMod.eq_zero_iff_even + theorem ZMod.ne_zero_iff_odd Deleted Mathlib/Data/ZMod/Parity.lean - theorem ZMod.eq_one_iff_odd - theorem ZMod.eq_zero_iff_even - theorem ZMod.ne_zero_iff_odd Modified Mathlib/GroupTheory/Coxeter/Inversion.lean 2024-09-30 02:32:57 cdd209a feat: When `1 + a ≤ (1 - b) * (1 + c)` (#17214) In analysis, we often manipulate quantities near `1` as if they were additive in their difference to `1`. This PR adds lemmas supporting that kind of reasoning. From LeanAPAP ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Ring/Defs.lean + theorem one_add_le_one_add_mul_one_sub + theorem one_add_le_one_sub_mul_one_add + theorem one_sub_le_one_add_mul_one_sub + theorem one_sub_le_one_sub_mul_one_add 2024-09-30 02:32:56 2e75a75 chore(Algebra/Ring): remove variables unused in section (#17178) Perhaps we should have a linter for this... @adomani? ESTIMATED CHANGES Modified Mathlib/Algebra/Ring/Defs.lean 2024-09-30 02:32:55 ab33709 chore(Associated): use `M`, `N` for type variables (#17115) Replace `α` → `M`, `β` → `N` for type variables. ESTIMATED CHANGES Modified Mathlib/Algebra/Associated/Basic.lean +/- theorem Associated.dvd_iff_dvd_left +/- theorem Associated.dvd_iff_dvd_right +/- theorem Associated.eq_zero_iff +/- theorem Associated.isUnit_iff +/- theorem Associated.mul_left +/- theorem Associated.mul_mul +/- theorem Associated.mul_right +/- theorem Associated.ne_zero_iff +/- theorem Associated.neg_left +/- theorem Associated.neg_neg +/- theorem Associated.neg_right +/- theorem Associated.of_mul_left +/- theorem Associated.of_mul_right +/- theorem Associated.of_pow_associated_of_prime' +/- theorem Associated.of_pow_associated_of_prime +/- theorem Associated.pow_pow +/- theorem Associated.prime_iff +/- def Associated +/- theorem Associates.Prime.le_or_le +/- theorem Associates.associated_map_mk +/- theorem Associates.bot_eq_one +/- theorem Associates.coe_unit_eq_one +/- theorem Associates.decompositionMonoid_iff +/- theorem Associates.dvdNotUnit_iff_lt +/- theorem Associates.dvdNotUnit_of_lt +/- theorem Associates.dvd_eq_le +/- theorem Associates.dvd_of_mk_le_mk +/- theorem Associates.exists_non_zero_rep +/- theorem Associates.exists_rep +/- theorem Associates.forall_associated +/- theorem Associates.irreducible_mk +/- theorem Associates.isPrimal_mk +/- theorem Associates.isUnit_iff_eq_bot +/- theorem Associates.isUnit_iff_eq_one +/- theorem Associates.isUnit_mk +/- theorem Associates.le_mul_left +/- theorem Associates.le_mul_right +/- theorem Associates.le_of_mul_le_mul_left +/- theorem Associates.le_one_iff +/- theorem Associates.mkMonoidHom_apply +/- theorem Associates.mk_dvdNotUnit_mk_iff +/- theorem Associates.mk_dvd_mk +/- theorem Associates.mk_eq_mk_iff_associated +/- theorem Associates.mk_eq_one +/- theorem Associates.mk_eq_zero +/- theorem Associates.mk_injective +/- theorem Associates.mk_isRelPrime_iff +/- theorem Associates.mk_le_mk_iff_dvd +/- theorem Associates.mk_le_mk_of_dvd +/- theorem Associates.mk_mul_mk +/- theorem Associates.mk_ne_zero +/- theorem Associates.mk_one +/- theorem Associates.mk_pow +/- theorem Associates.mk_quot_out +/- theorem Associates.mk_surjective +/- theorem Associates.mk_zero +/- theorem Associates.mul_mono +/- theorem Associates.one_eq_mk_one +/- theorem Associates.one_le +/- theorem Associates.one_or_eq_of_le_of_prime +/- theorem Associates.prime_mk +/- theorem Associates.quot_mk_eq_mk +/- theorem Associates.quot_out +/- theorem Associates.quot_out_zero +/- theorem Associates.quotient_mk_eq_mk +/- theorem DvdNotUnit.isUnit_of_irreducible_right +/- theorem DvdNotUnit.ne +/- theorem DvdNotUnit.not_associated +/- theorem DvdNotUnit.not_unit +/- theorem Irreducible.associated_of_dvd +/- theorem Irreducible.dvd_comm +/- theorem Irreducible.dvd_iff +/- theorem Irreducible.dvd_irreducible_iff_associated +/- theorem Irreducible.dvd_or_isRelPrime +/- theorem Irreducible.dvd_symm +/- theorem Irreducible.isRelPrime_iff_not_dvd +/- theorem Irreducible.isUnit_iff_not_associated_of_dvd +/- theorem Irreducible.isUnit_or_isUnit +/- theorem Irreducible.ne_one +/- theorem Irreducible.ne_zero +/- theorem Irreducible.not_dvd_one +/- theorem Irreducible.prime +/- theorem Irreducible.prime_of_isPrimal +/- structure Irreducible +/- theorem MulEquiv.prime_iff +/- theorem Prime.associated_of_dvd +/- theorem Prime.dvd_mul +/- theorem Prime.dvd_of_dvd_pow +/- theorem Prime.dvd_of_pow_dvd_pow_mul_pow_of_square_not_dvd +/- theorem Prime.dvd_or_dvd +/- theorem Prime.dvd_pow_iff_dvd +/- theorem Prime.dvd_prime_iff_associated +/- theorem Prime.left_dvd_or_dvd_right_of_dvd_mul +/- theorem Prime.not_dvd_mul +/- theorem Prime.pow_dvd_of_dvd_mul_left +/- theorem Prime.pow_dvd_of_dvd_mul_right +/- def Prime +/- theorem associated_eq_eq +/- theorem associated_iff_eq +/- theorem associated_isUnit_mul_left_iff +/- theorem associated_isUnit_mul_right_iff +/- theorem associated_mul_isUnit_left_iff +/- theorem associated_mul_isUnit_right_iff +/- theorem associated_mul_unit_left +/- theorem associated_mul_unit_left_iff +/- theorem associated_mul_unit_right +/- theorem associated_mul_unit_right_iff +/- theorem associated_of_dvd_dvd +/- theorem associated_one_iff_isUnit +/- theorem associated_one_of_associated_mul_one +/- theorem associated_one_of_mul_eq_one +/- theorem associated_unit_mul_left +/- theorem associated_unit_mul_left_iff +/- theorem associated_unit_mul_right +/- theorem associated_unit_mul_right_iff +/- theorem associated_zero_iff_eq_zero +/- theorem associates_irreducible_iff_prime +/- theorem comap_prime +/- theorem dvdNotUnit_of_dvdNotUnit_associated +/- theorem dvd_dvd_iff_associated +/- theorem dvd_prime_pow +/- theorem irreducible_iff +/- theorem irreducible_iff_prime +/- theorem irreducible_isUnit_mul +/- theorem irreducible_mul_iff +/- theorem irreducible_mul_isUnit +/- theorem irreducible_mul_units +/- theorem irreducible_or_factor +/- theorem irreducible_units_mul +/- theorem isUnit_of_associated_mul +/- theorem not_irreducible_of_not_unit_dvdNotUnit +/- theorem not_irreducible_one +/- theorem not_irreducible_pow +/- theorem not_irreducible_zero +/- theorem not_prime_one +/- theorem not_prime_zero +/- theorem of_irreducible_mul +/- theorem pow_inj_of_not_isUnit +/- theorem pow_injective_of_not_isUnit +/- theorem prime_mul_iff +/- theorem prime_pow_iff +/- theorem prime_pow_succ_dvd_mul +/- theorem succ_dvd_or_succ_dvd_of_succ_sum_dvd_mul +/- theorem unit_associated_one 2024-09-30 02:32:54 9a1a45a feat (Topology/Instances/EReal): `EReal.toReal` tends to top at top (#17100) - Add `nhdsWithin_top` and `nhdsWithin_bot`: the punctured neighbourhoods of top and bot in `EReal` are the map of `atTop` and `atBot`. - Add `tendsto_toReal_atTop` and `tendsto_toReal_atBot`. ESTIMATED CHANGES Modified Mathlib/Topology/Instances/EReal.lean + theorem EReal.nhdsWithin_bot + theorem EReal.nhdsWithin_top + theorem EReal.tendsto_toReal_atBot + theorem EReal.tendsto_toReal_atTop 2024-09-30 02:03:22 856178f chore(Topology): move a folder (#17256) Move `Topology/ContinuousFunction` to `Topology/ContinuousMap` so that it agrees with the type name. This PR was generated by the following commands: ```bash git mv Mathlib/Topology/ContinuousFunction Mathlib/Topology/ContinuousMap git grep -l 'Topology.ContinuousF' | xargs sed -e 's/Topology.ContinuousFunction/Topology.ContinuousMap/' -i lake exe mk_all --git ``` ESTIMATED CHANGES Modified Counterexamples/Phillips.lean Modified Mathlib.lean Modified Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/NonUnital.lean Modified Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Order.lean Modified Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Unique.lean Modified Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Unital.lean Modified Mathlib/Analysis/CStarAlgebra/GelfandDuality.lean Modified Mathlib/Analysis/Complex/Circle.lean Modified Mathlib/Analysis/Fourier/AddCircle.lean Modified Mathlib/Analysis/Normed/Group/CocompactMap.lean Modified Mathlib/Analysis/Normed/Group/ZeroAtInfty.lean Modified Mathlib/Analysis/Normed/Lp/LpEquiv.lean Modified Mathlib/Analysis/SpecialFunctions/Bernstein.lean Modified Mathlib/Analysis/SpecialFunctions/ContinuousFunctionalCalculus/ExpLog.lean Modified Mathlib/Geometry/Manifold/VectorBundle/SmoothSection.lean Modified Mathlib/LinearAlgebra/Matrix/HermitianFunctionalCalculus.lean Modified Mathlib/MeasureTheory/Function/AEEqFun.lean Modified Mathlib/MeasureTheory/Function/LpSpace.lean Modified Mathlib/MeasureTheory/Group/Measure.lean Modified Mathlib/MeasureTheory/Integral/RieszMarkovKakutani.lean Modified Mathlib/MeasureTheory/Integral/SetIntegral.lean Modified Mathlib/Topology/Algebra/ContinuousAffineMap.lean Modified Mathlib/Topology/Algebra/ContinuousMonoidHom.lean Modified Mathlib/Topology/Algebra/Module/Basic.lean Modified Mathlib/Topology/Algebra/Module/CharacterSpace.lean Modified Mathlib/Topology/Algebra/Monoid.lean Modified Mathlib/Topology/Algebra/Star.lean Modified Mathlib/Topology/Category/TopCat/Basic.lean Modified Mathlib/Topology/CompactOpen.lean Renamed Mathlib/Topology/ContinuousFunction/Algebra.lean to Mathlib/Topology/ContinuousMap/Algebra.lean Renamed Mathlib/Topology/ContinuousFunction/Basic.lean to Mathlib/Topology/ContinuousMap/Basic.lean Renamed Mathlib/Topology/ContinuousFunction/Bounded.lean to Mathlib/Topology/ContinuousMap/Bounded.lean Renamed Mathlib/Topology/ContinuousFunction/BoundedCompactlySupported.lean to Mathlib/Topology/ContinuousMap/BoundedCompactlySupported.lean Renamed Mathlib/Topology/ContinuousFunction/CocompactMap.lean to Mathlib/Topology/ContinuousMap/CocompactMap.lean Renamed Mathlib/Topology/ContinuousFunction/Compact.lean to Mathlib/Topology/ContinuousMap/Compact.lean Renamed Mathlib/Topology/ContinuousFunction/CompactlySupported.lean to Mathlib/Topology/ContinuousMap/CompactlySupported.lean Renamed Mathlib/Topology/ContinuousFunction/ContinuousMapZero.lean to Mathlib/Topology/ContinuousMap/ContinuousMapZero.lean Renamed Mathlib/Topology/ContinuousFunction/Ideals.lean to Mathlib/Topology/ContinuousMap/Ideals.lean Renamed Mathlib/Topology/ContinuousFunction/LocallyConstant.lean to Mathlib/Topology/ContinuousMap/LocallyConstant.lean Renamed Mathlib/Topology/ContinuousFunction/Ordered.lean to Mathlib/Topology/ContinuousMap/Ordered.lean Renamed Mathlib/Topology/ContinuousFunction/Polynomial.lean to Mathlib/Topology/ContinuousMap/Polynomial.lean Renamed Mathlib/Topology/ContinuousFunction/Sigma.lean to Mathlib/Topology/ContinuousMap/Sigma.lean Renamed Mathlib/Topology/ContinuousFunction/StarOrdered.lean to Mathlib/Topology/ContinuousMap/StarOrdered.lean Renamed Mathlib/Topology/ContinuousFunction/StoneWeierstrass.lean to Mathlib/Topology/ContinuousMap/StoneWeierstrass.lean Renamed Mathlib/Topology/ContinuousFunction/T0Sierpinski.lean to Mathlib/Topology/ContinuousMap/T0Sierpinski.lean Renamed Mathlib/Topology/ContinuousFunction/Units.lean to Mathlib/Topology/ContinuousMap/Units.lean Renamed Mathlib/Topology/ContinuousFunction/Weierstrass.lean to Mathlib/Topology/ContinuousMap/Weierstrass.lean Renamed Mathlib/Topology/ContinuousFunction/ZeroAtInfty.lean to Mathlib/Topology/ContinuousMap/ZeroAtInfty.lean Modified Mathlib/Topology/Hom/Open.lean Modified Mathlib/Topology/Homotopy/Basic.lean Modified Mathlib/Topology/MetricSpace/GromovHausdorffRealized.lean Modified Mathlib/Topology/MetricSpace/ThickenedIndicator.lean Modified Mathlib/Topology/Metrizable/Urysohn.lean Modified Mathlib/Topology/Order/Hom/Basic.lean Modified Mathlib/Topology/Order/UpperLowerSetTopology.lean Modified Mathlib/Topology/PartitionOfUnity.lean Modified Mathlib/Topology/Sets/Opens.lean Modified Mathlib/Topology/Sheaves/PresheafOfFunctions.lean Modified Mathlib/Topology/Specialization.lean Modified Mathlib/Topology/Spectral/Hom.lean Modified Mathlib/Topology/UrysohnsBounded.lean Modified Mathlib/Topology/UrysohnsLemma.lean Modified test/Continuity.lean 2024-09-30 00:42:10 9f502c2 chore: remove some unused variables (#17261) Inspired by #17178 and found by a linter. ESTIMATED CHANGES Modified Mathlib/Algebra/Field/Basic.lean Modified Mathlib/Algebra/Group/Defs.lean Modified Mathlib/Algebra/Group/Equiv/Basic.lean Modified Mathlib/Algebra/Group/Semiconj/Units.lean Modified Mathlib/Algebra/GroupWithZero/Basic.lean Modified Mathlib/Algebra/GroupWithZero/Commute.lean Modified Mathlib/Algebra/GroupWithZero/InjSurj.lean Modified Mathlib/Algebra/GroupWithZero/Semiconj.lean Modified Mathlib/Algebra/GroupWithZero/Units/Lemmas.lean Modified Mathlib/Algebra/Module/BigOperators.lean Modified Mathlib/Algebra/Polynomial/Induction.lean Modified Mathlib/Algebra/Ring/Basic.lean Modified Mathlib/Algebra/Ring/Commute.lean Modified Mathlib/Algebra/Ring/Hom/Defs.lean Modified Mathlib/Algebra/Ring/Semiconj.lean Modified Mathlib/Algebra/Ring/Units.lean Modified Mathlib/Control/Basic.lean Modified Mathlib/Control/Lawful.lean Modified Mathlib/Data/Subtype.lean Modified Mathlib/Lean/PrettyPrinter/Delaborator.lean Modified Mathlib/Logic/Basic.lean Modified Mathlib/Logic/Equiv/Basic.lean Modified Mathlib/Logic/Function/Conjugate.lean Modified Mathlib/Logic/Relator.lean Modified Mathlib/Logic/Unique.lean Modified Mathlib/Order/Basic.lean Modified Mathlib/Order/Defs.lean Modified Mathlib/Order/Interval/Finset/Basic.lean Modified Mathlib/Order/Max.lean Modified Mathlib/Order/SuccPred/Basic.lean Modified Mathlib/Probability/Kernel/Disintegration/Integral.lean Modified Mathlib/Topology/AlexandrovDiscrete.lean Modified Mathlib/Topology/MetricSpace/Infsep.lean Modified Mathlib/Topology/MetricSpace/ShrinkingLemma.lean 2024-09-29 21:20:19 301f54a feat(AlgebraicGeometry/EllipticCurve/Weierstrass): add `j_eq_zero[_iff][']` (#16974) which state the equivalency of `j = 0` and `c4 ^ 3 = 0` (and `c4 = 0` if the ring is reduced). Also added `IsReduced.pow_(eq|ne)_zero[_iff]`, which generalizes the `pow_(eq|ne)_zero[_iff]` assuming `NoZeroDivisors`. ESTIMATED CHANGES Modified Mathlib/AlgebraicGeometry/EllipticCurve/Weierstrass.lean + theorem EllipticCurve.j_eq_zero + theorem EllipticCurve.j_eq_zero_iff' + theorem EllipticCurve.j_eq_zero_iff Modified Mathlib/RingTheory/Nilpotent/Defs.lean + theorem IsReduced.pow_eq_zero + theorem IsReduced.pow_eq_zero_iff' + theorem IsReduced.pow_eq_zero_iff + theorem IsReduced.pow_ne_zero + theorem IsReduced.pow_ne_zero_iff 2024-09-29 20:51:41 d4f0e62 feat: `x ∈ toZModSubmodule n S ↔ x ∈ S` (#17210) From LeanAPAP ESTIMATED CHANGES Modified Mathlib/Data/ZMod/Module.lean +/- theorem AddSubgroup.coe_toZModSubmodule + theorem AddSubgroup.mem_toZModSubmodule 2024-09-29 20:16:33 85e2930 feat(Combinatorics/Quiver/ReflQuiver): reflexive quivers (#16780) Reflexive quivers are an intermediate structure between categories and quivers, containing only an identity element. This PR constructs `ReflQuiver` as a class and `ReflQuiv` which is the category of reflexive quivers and reflexive prefunctors. Co-Authored-By: Emily Riehl and Pietro Monticone <38562595+pitmonticone@users.noreply.github.com> ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/CategoryTheory/Category/Cat.lean + theorem CategoryTheory.Cat.comp_eq_comp + theorem CategoryTheory.Cat.id_eq_id + theorem CategoryTheory.Cat.of_α Modified Mathlib/CategoryTheory/Category/Quiv.lean + theorem CategoryTheory.Quiv.comp_eq_comp + theorem CategoryTheory.Quiv.id_eq_id Added Mathlib/CategoryTheory/Category/ReflQuiv.lean + theorem CategoryTheory.Cat.FreeRefl.lift_unique' + def CategoryTheory.Cat.FreeRefl.quotientFunctor + def CategoryTheory.Cat.FreeRefl + inductive CategoryTheory.Cat.FreeReflRel + def CategoryTheory.Cat.freeRefl + def CategoryTheory.Cat.freeReflNatTrans + theorem CategoryTheory.Cat.freeRefl_naturality + def CategoryTheory.ReflPrefunctor.toFunctor + def CategoryTheory.ReflQuiv.adj.counit.app + theorem CategoryTheory.ReflQuiv.adj.counit.component_eq' + theorem CategoryTheory.ReflQuiv.adj.counit.component_eq + def CategoryTheory.ReflQuiv.adj.unit.app + theorem CategoryTheory.ReflQuiv.adj.unit.component_eq + theorem CategoryTheory.ReflQuiv.comp_eq_comp + theorem CategoryTheory.ReflQuiv.forget.Faithful + def CategoryTheory.ReflQuiv.forget + theorem CategoryTheory.ReflQuiv.forgetToQuiv.Faithful + def CategoryTheory.ReflQuiv.forgetToQuiv + theorem CategoryTheory.ReflQuiv.forgetToQuiv_faithful + theorem CategoryTheory.ReflQuiv.forget_faithful + theorem CategoryTheory.ReflQuiv.forget_forgetToQuiv + theorem CategoryTheory.ReflQuiv.id_eq_id + def CategoryTheory.ReflQuiv.of + theorem CategoryTheory.ReflQuiv.of_val + def CategoryTheory.ReflQuiv.toQuiv + def CategoryTheory.ReflQuiv Added Mathlib/Combinatorics/Quiver/ReflQuiver.lean + def CategoryTheory.Functor.toReflPrefunctor + theorem CategoryTheory.Functor.toReflPrefunctor_toPrefunctor + def CategoryTheory.ReflPrefunctor.comp + theorem CategoryTheory.ReflPrefunctor.comp_assoc + theorem CategoryTheory.ReflPrefunctor.comp_id + theorem CategoryTheory.ReflPrefunctor.congr_map + theorem CategoryTheory.ReflPrefunctor.ext + def CategoryTheory.ReflPrefunctor.id + theorem CategoryTheory.ReflPrefunctor.id_comp + theorem CategoryTheory.ReflPrefunctor.mk_map + theorem CategoryTheory.ReflPrefunctor.mk_obj + structure CategoryTheory.ReflPrefunctor + theorem CategoryTheory.ReflQuiver.id_eq_id 2024-09-29 19:04:57 5a3902a chore(Topology/Category): fix imports in TopCat.Basic (#17258) A new file `TopCat.Sphere` is added so as to remove the import to `Analysis.InnerProductSpace.PiL2` that was added to the file `Topology.Category.TopCat.Basic` in PR #12502. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Topology/CWComplex.lean - def RelativeCWComplex.AttachCells.inclusion + def RelativeCWComplex.AttachGeneralizedCells.inclusion Modified Mathlib/Topology/Category/TopCat/Basic.lean Added Mathlib/Topology/Category/TopCat/Sphere.lean 2024-09-29 17:58:12 cea0638 feat: `fin_omega`, a wrapper around `omega` to help with `Fin` arithmetic goals. (#16651) This is a hack, and that results in `omega` having to deal with a lot of case splitting, but it is usable. The simp set could probably be expanded a bit, and I've left a comment inviting such changes. This was inspired by #15817, and in particular replaces the new proof added in that PR with `by fin_omega`. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Data/Fin/Basic.lean + theorem Fin.coe_int_add_eq_ite + theorem Fin.coe_int_add_eq_mod + theorem Fin.coe_int_sub_eq_ite + theorem Fin.coe_int_sub_eq_mod +/- theorem Fin.eq_one_of_neq_zero Added Mathlib/Data/Int/DivMod.lean + theorem Int.emod_eq_add_self_emod + theorem Int.emod_eq_sub_self_emod Modified Mathlib/Tactic/Attr/Register.lean 2024-09-29 14:59:05 54358ec feat(UniformEmbedding): add `UniformInducing.completeSpace_congr` (#17238) This is a version of `_root_.completeSpace_congr` that applies to uniform inducing quotient maps. Also add `ULift.completeSpace_iff` and `UniformInducing.completeSpace`. I'm going to use these lemmas to generalize some `CompleteSpace` instances, see #17244. ESTIMATED CHANGES Modified Mathlib/Analysis/Normed/Algebra/Unitization.lean Modified Mathlib/Analysis/Quaternion.lean Modified Mathlib/Topology/Algebra/Module/FiniteDimension.lean Modified Mathlib/Topology/UniformSpace/UniformEmbedding.lean + theorem UniformInducing.completeSpace_congr +/- theorem completeSpace_coe_iff_isComplete + theorem completeSpace_ulift_iff 2024-09-29 14:59:03 e060e71 feat(Topology): define (relative) CW-complexes (#12502) We define a relative CW-complex as the colimit of an expanding sequence of subspaces `sk i` (called the $(i-1)$-skeleton) for `i ≥ 0`, where `sk 0` (i.e., the $(-1)$-skeleton) is an arbitrary topological space, and each `sk (n + 1)` (i.e., the $n$-skeleton) is obtained from `sk n` (i.e., the $(n-1)$-skeleton) by attaching `n`-disks. This is based on [David Wärn's suggestion on Zulip](https://leanprover.zulipchat.com/#narrow/stream/217875-Is-there-code-for-X.3F/topic/Do.20we.20have.20CW.20complexes.3F/near/231769080) and Chapter 10 of _[A Concise Course in Algebraic Topology](https://www.math.uchicago.edu/~may/CONCISE/ConciseRevised.pdf)_ by J. P. May. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Topology/CWComplex.lean + structure CWComplex + def RelativeCWComplex.AttachCells.inclusion + def RelativeCWComplex.AttachCells + structure RelativeCWComplex.AttachGeneralizedCells + def RelativeCWComplex.skInclusion + def RelativeCWComplex.sphereInclusion + def RelativeCWComplex.toTopCat + structure RelativeCWComplex Modified Mathlib/Topology/Category/TopCat/Basic.lean Modified Mathlib/Topology/Category/TopCat/Limits/Basic.lean Modified docs/references.bib 2024-09-29 14:29:38 cda107d feat(RingTheory/Localization): some API on localizations (#17030) This PR adds some API for localizations of rings. In particular: - localizations commute with localizations - localizing away from a product of elements is the same as successive localization at the elements ESTIMATED CHANGES Modified Mathlib/AlgebraicGeometry/Morphisms/QuasiCompact.lean Modified Mathlib/RingTheory/Localization/Away/Basic.lean + theorem IsLocalization.Away.algebraMap_isUnit + theorem IsLocalization.Away.algebraMap_pow_isUnit + theorem IsLocalization.Away.commutes + theorem IsLocalization.Away.exists_of_eq + theorem IsLocalization.Away.iff_of_associated + theorem IsLocalization.Away.mk + theorem IsLocalization.Away.mul' + theorem IsLocalization.Away.mul + theorem IsLocalization.Away.of_associated + theorem IsLocalization.Away.surj Modified Mathlib/RingTheory/Localization/Basic.lean + theorem IsLocalization.commutes 2024-09-29 13:27:48 e17fd83 feat(Topology/Group): define closed subgroup (#16977) Define the type of closed subgroup in a topological group. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Group/Subgroup/Pointwise.lean + theorem Subgroup.normalCore_eq_iInf_conjAct Modified Mathlib/Topology/Algebra/Category/ProfiniteGrp/Basic.lean + def ProfiniteGrp.ofClosedSubgroup Added Mathlib/Topology/Algebra/ClosedSubgroup.lean + structure ClosedAddSubgroup + theorem ClosedSubgroup.toSubgroup_injective + structure ClosedSubgroup + theorem Subgroup.isOpen_of_isClosed_of_finiteIndex + theorem Subgroup.normalCore_isClosed 2024-09-29 12:03:25 62eccbc chore: update Mathlib dependencies 2024-09-29 (#17252) This PR updates the Mathlib dependencies. ESTIMATED CHANGES Modified lake-manifest.json 2024-09-29 08:52:34 a6006d2 feat: stability of `List.insertionSort` (#16065) The statements of stability follow those used for `mergeSort` in leanprover/lean4#5092. ESTIMATED CHANGES Modified Mathlib/Data/List/Sort.lean + theorem List.Sublist.orderedInsert_sublist + theorem List.cons_sublist_orderedInsert + theorem List.pair_sublist_insertionSort' + theorem List.pair_sublist_insertionSort + theorem List.sublist_insertionSort' + theorem List.sublist_insertionSort 2024-09-29 08:12:12 9491960 feat(Topology/Group/Profinite): limits in the category of profinite groups (#16976) Define the limit in profinite groups as a profinite group. ESTIMATED CHANGES Modified Mathlib.lean Renamed Mathlib/Topology/Algebra/Category/ProfiniteGrp.lean to Mathlib/Topology/Algebra/Category/ProfiniteGrp/Basic.lean + def ProfiniteGrp.limitConeIsLimit + def ProfiniteGrp.limitConePtAux + def ProfiniteGrp.profiniteGrpToProfinite 2024-09-29 06:55:53 ae458ab chore: robustify usage of List.prod API (#17220) Remove some reliances on defeq, and use some named arguments. I'm hoping to subsequently change the defeq, in https://github.com/leanprover-community/mathlib4/pull/17223 ESTIMATED CHANGES Modified Mathlib/Algebra/BigOperators/Group/List.lean +/- theorem List.prod_take_mul_prod_drop +/- theorem List.prod_take_succ Modified Mathlib/Algebra/Ring/Subsemiring/Basic.lean Modified Mathlib/Analysis/Normed/Field/Basic.lean Modified Mathlib/Data/List/Prime.lean Modified Mathlib/Deprecated/Subgroup.lean Modified Mathlib/Deprecated/Subring.lean Modified Mathlib/GroupTheory/FixedPointFree.lean Modified Mathlib/GroupTheory/FreeGroup/Basic.lean 2024-09-29 04:48:27 c8df482 chore: adaptation for batteries#905 (#17229) ESTIMATED CHANGES Modified Mathlib/Data/List/Lemmas.lean - theorem List.getElem_tail Modified lake-manifest.json 2024-09-29 03:27:12 d244ef2 fix: call checkSystem in `linarith` and `ring` (#16666) Without this change, linarith calls on large states can substantially overrun On the web editor, the test fails with ``` Tactic took much more than 750ms (1272ms) Tactic took much more than 1000ms (1267ms) Tactic took much more than 2250ms (2679ms) ``` ESTIMATED CHANGES Modified Mathlib/Tactic/Linarith/Oracle/FourierMotzkin.lean Modified Mathlib/Tactic/Linarith/Oracle/SimplexAlgorithm/Gauss.lean +/- def Linarith.SimplexAlgorithm.Gauss.getTableau Modified Mathlib/Tactic/Linarith/Oracle/SimplexAlgorithm/PositiveVector.lean Modified Mathlib/Tactic/Linarith/Oracle/SimplexAlgorithm/SimplexAlgorithm.lean Modified Mathlib/Tactic/Linarith/Verification.lean Modified Mathlib/Tactic/Ring/Basic.lean +/- def Mathlib.Tactic.Ring.evalMul +/- def Mathlib.Tactic.Ring.evalMul₁ +/- def Mathlib.Tactic.Ring.evalNeg +/- def Mathlib.Tactic.Ring.evalNegProd Added test/tactic_timeout.lean + def Meta.tryCatchAll + def Tactic.tryCatchAll + def Tactic.withTimeout + def Term.tryCatchAll + theorem linear_combination_with_10_terms 2024-09-29 03:18:05 4cd4cfb chore(UniformSpace): move `ofFun` to a new file (#16737) Also drop `@[mono]` on `hasSum_mono`. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Topology/Algebra/InfiniteSum/Order.lean Modified Mathlib/Topology/ContinuousFunction/Bounded.lean Modified Mathlib/Topology/EMetricSpace/Defs.lean Modified Mathlib/Topology/Support.lean Modified Mathlib/Topology/UniformSpace/AbsoluteValue.lean Modified Mathlib/Topology/UniformSpace/Basic.lean - theorem UniformSpace.hasBasis_ofFun - def UniformSpace.ofFun Added Mathlib/Topology/UniformSpace/OfFun.lean + theorem UniformSpace.hasBasis_ofFun + def UniformSpace.ofFun Modified scripts/noshake.json 2024-09-29 00:39:20 197417d chore(scripts): update nolints.json (#17245) I am happy to remove some nolints for you! ESTIMATED CHANGES Modified scripts/nolints.json 2024-09-29 00:04:22 88304ce fix(Matrix/Invertible): deprecated aliases should remain `protected` (#17242) The originals were protected, and the deprecations break downstream code using the matching lemmas in the root namespace. A second patch to #16590. ESTIMATED CHANGES Modified Mathlib/Data/Matrix/Invertible.lean 2024-09-29 00:04:21 bc4aae5 chore: replace top by univ in closure_cycle_adjacent_swap (#17235) ESTIMATED CHANGES Modified Mathlib/GroupTheory/Perm/Closure.lean +/- theorem Equiv.Perm.closure_cycle_adjacent_swap 2024-09-29 00:04:20 0668f23 chore: Rename `DenseInducing` to `IsDenseInducing` (#17208) `Function.Embedding` is a type while `Embedding` is a proposition, and there are many other kinds of embeddings than topological embeddings. Hence this PR is a step towards 1. renaming `Embedding` to `IsEmbedding` and similarly for neighborhing declarations (which `DenseInducing` is) 2. namespacing it inside `Topology` [Zulip](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/rename.20.60Inducing.60.20and.20.60Embedding.60.3F). See #15993 for context. ESTIMATED CHANGES Modified Mathlib/Analysis/InnerProductSpace/Basic.lean Modified Mathlib/Analysis/Normed/Group/HomCompletion.lean Modified Mathlib/Analysis/NormedSpace/OperatorNorm/Completeness.lean Modified Mathlib/MeasureTheory/Function/SimpleFuncDenseLp.lean Modified Mathlib/Topology/Algebra/GroupCompletion.lean - theorem UniformSpace.Completion.denseInducing_toCompl + theorem UniformSpace.Completion.isDenseInducing_toCompl Modified Mathlib/Topology/Algebra/InfiniteSum/GroupCompletion.lean Modified Mathlib/Topology/Algebra/Nonarchimedean/Completion.lean Modified Mathlib/Topology/Algebra/UniformField.lean Modified Mathlib/Topology/Algebra/UniformGroup.lean - theorem DenseInducing.extend_Z_bilin + theorem IsDenseInducing.extend_Z_bilin +/- theorem tendsto_div_comap_self Modified Mathlib/Topology/Algebra/UniformRing.lean Modified Mathlib/Topology/Algebra/Valued/ValuedField.lean Modified Mathlib/Topology/Compactification/OnePoint.lean Modified Mathlib/Topology/DenseEmbedding.lean - theorem DenseInducing.closure_image_mem_nhds - theorem DenseInducing.closure_range - theorem DenseInducing.comap_nhds_neBot - theorem DenseInducing.continuousAt_extend - theorem DenseInducing.continuous_extend - theorem DenseInducing.dense_image - def DenseInducing.extend - theorem DenseInducing.extend_eq' - theorem DenseInducing.extend_eq - theorem DenseInducing.extend_eq_at' - theorem DenseInducing.extend_eq_at - theorem DenseInducing.extend_eq_of_tendsto - theorem DenseInducing.extend_unique - theorem DenseInducing.extend_unique_at - theorem DenseInducing.interior_compact_eq_empty - theorem DenseInducing.mk' - theorem DenseInducing.nhds_eq_comap - theorem DenseInducing.tendsto_comap_nhds_nhds - structure DenseInducing - theorem Filter.HasBasis.hasBasis_of_denseInducing + theorem Filter.HasBasis.hasBasis_of_isDenseInducing + theorem IsDenseInducing.closure_image_mem_nhds + theorem IsDenseInducing.closure_range + theorem IsDenseInducing.comap_nhds_neBot + theorem IsDenseInducing.continuousAt_extend + theorem IsDenseInducing.continuous_extend + theorem IsDenseInducing.dense_image + def IsDenseInducing.extend + theorem IsDenseInducing.extend_eq' + theorem IsDenseInducing.extend_eq + theorem IsDenseInducing.extend_eq_at' + theorem IsDenseInducing.extend_eq_at + theorem IsDenseInducing.extend_eq_of_tendsto + theorem IsDenseInducing.extend_unique + theorem IsDenseInducing.extend_unique_at + theorem IsDenseInducing.interior_compact_eq_empty + theorem IsDenseInducing.mk' + theorem IsDenseInducing.nhds_eq_comap + theorem IsDenseInducing.tendsto_comap_nhds_nhds + structure IsDenseInducing Modified Mathlib/Topology/ExtendFrom.lean Modified Mathlib/Topology/Instances/Complex.lean Modified Mathlib/Topology/Instances/RatLemmas.lean Modified Mathlib/Topology/StoneCech.lean - theorem denseInducing_pure + theorem isDenseInducing_pure Modified Mathlib/Topology/UniformSpace/AbstractCompletion.lean - theorem AbstractCompletion.denseInducing +/- theorem AbstractCompletion.extend_def + theorem AbstractCompletion.isDenseInducing Modified Mathlib/Topology/UniformSpace/CompleteSeparated.lean - theorem DenseInducing.continuous_extend_of_cauchy + theorem IsDenseInducing.continuous_extend_of_cauchy Modified Mathlib/Topology/UniformSpace/Completion.lean - theorem CauchyFilter.denseInducing_pureCauchy + theorem CauchyFilter.isDenseInducing_pureCauchy - theorem UniformSpace.Completion.denseInducing_coe + theorem UniformSpace.Completion.isDenseInducing_coe Modified Mathlib/Topology/UniformSpace/UniformEmbedding.lean - theorem UniformInducing.denseInducing + theorem UniformInducing.isDenseInducing Modified docs/overview.yaml Modified scripts/no_lints_prime_decls.txt 2024-09-29 00:04:19 ba01160 feat(NumberTheory/FactorisationProperties): abundant, pseudoperfect, deficient, and weird numbers (#14269) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/NumberTheory/FactorisationProperties.lean + theorem IsPrimePow.deficient + def Nat.Abundant + def Nat.Deficient + theorem Nat.Perfect.pseudoperfect + theorem Nat.Prime.deficient + theorem Nat.Prime.deficient_pow + theorem Nat.Prime.not_abundant + theorem Nat.Prime.not_perfect + theorem Nat.Prime.not_pseudoperfect + theorem Nat.Prime.not_weird + def Nat.Pseudoperfect + def Nat.Weird + theorem Nat.abundant_iff_not_perfect_and_not_deficient + theorem Nat.abundant_twelve + theorem Nat.deficient_iff_not_abundant_and_not_perfect + theorem Nat.deficient_one + theorem Nat.deficient_or_perfect_or_abundant + theorem Nat.deficient_three + theorem Nat.deficient_two + theorem Nat.infinite_deficient + theorem Nat.infinite_even_deficient + theorem Nat.infinite_odd_deficient + theorem Nat.not_pseudoperfect_iff_forall + theorem Nat.perfect_iff_not_abundant_and_not_deficient + theorem Nat.weird_seventy Modified docs/references.bib 2024-09-28 23:34:15 2845f11 feat(SeparationQuotient): add missing instances (#17239) Also prove `SeparationQuotient.postcomp_mkCLM_surjective`. I'm going to need these instances and lemmas to generalize `CompleteSpace (E →L[K] F)` to topological vector spaces without assuming that `F` is a Hausdorff space, see #17244. ESTIMATED CHANGES Modified Mathlib/Topology/Algebra/SeparationQuotient.lean + theorem SeparationQuotient.postcomp_mkCLM_surjective Modified Mathlib/Topology/Inseparable.lean + theorem SeparationQuotient.isOpenQuotientMap_mk 2024-09-28 23:34:14 d453819 feat: the real exponential is analytic (#17218) Currently, mathlib proves that the complex exponential is analytic as a consequence of its differentiability, quite late in the import hierarchy -- and this is specific to complexes. On the other hand, we also know that the exponential on a general normed algebra is analytic, thanks to its power series expansion. We switch to deduce the former from the latter, earlier in the import hierarchy, and use this occasion to also prove analyticity of the real exponential in the same file. ESTIMATED CHANGES Modified Mathlib/Analysis/Analytic/Constructions.lean + theorem AnalyticAt.restrictScalars + theorem AnalyticOn.restrictScalars + theorem AnalyticOnNhd.restrictScalars + theorem AnalyticWithinAt.restrictScalars + theorem HasFPowerSeriesAt.restrictScalars + theorem HasFPowerSeriesOnBall.restrictScalars + theorem HasFPowerSeriesWithinAt.restrictScalars + theorem HasFPowerSeriesWithinOnBall.restrictScalars + theorem analyticOnNhd_inverse Modified Mathlib/Analysis/Calculus/FDeriv/Analytic.lean + theorem AnalyticOnNhd.contDiff Modified Mathlib/Analysis/SpecialFunctions/Complex/Analytic.lean - theorem AnalyticAt.cexp - theorem AnalyticOn.cexp - theorem AnalyticOnNhd.cexp - theorem AnalyticWithinAt.cexp - theorem analyticAt_cexp - theorem analyticOnNhd_cexp - theorem analyticOn_cexp Modified Mathlib/Analysis/SpecialFunctions/ExpDeriv.lean + theorem AnalyticAt.cexp + theorem AnalyticAt.rexp + theorem AnalyticOn.cexp + theorem AnalyticOn.rexp + theorem AnalyticOnNhd.cexp + theorem AnalyticOnNhd.rexp + theorem AnalyticWithinAt.cexp + theorem AnalyticWithinAt.rexp +/- theorem Complex.contDiff_exp +/- theorem Real.contDiff_exp +/- theorem Real.differentiableAt_exp + theorem analyticAt_cexp + theorem analyticAt_rexp + theorem analyticOnNhd_cexp + theorem analyticOnNhd_rexp + theorem analyticOn_cexp + theorem analyticOn_rexp 2024-09-28 21:49:03 874e709 chore(Pointwise): Rename `Set` to `Set.Basic` (#17234) Move: * `Algebra.Group.Pointwise.Set` → `Algebra.Group.Pointwise.Set.Basic` * `Algebra.Group.Pointwise.Finset.NatCard` → `Algebra.Group.Pointwise.Set.Card` * `Algebra.GroupWithZero.Pointwise.Set` → `Algebra.GroupWithZero.Pointwise.Set.Basic` This is making space for a new file `Algebra.GroupWithZero.Pointwise.Set.Card` in #17231. `Algebra.Group.Pointwise.Finset` already has this `.Basic` naming scheme. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/AddTorsor.lean Renamed Mathlib/Algebra/Group/Pointwise/Set.lean to Mathlib/Algebra/Group/Pointwise/Set/Basic.lean Renamed Mathlib/Algebra/Group/Pointwise/Finset/NatCard.lean to Mathlib/Algebra/Group/Pointwise/Set/Card.lean Renamed Mathlib/Algebra/GroupWithZero/Pointwise/Set.lean to Mathlib/Algebra/GroupWithZero/Pointwise/Set/Basic.lean Modified Mathlib/Algebra/Order/Field/Pointwise.lean Modified Mathlib/Algebra/Order/Group/Pointwise/Bounds.lean Modified Mathlib/Algebra/Order/Interval/Basic.lean Modified Mathlib/Algebra/Order/Module/Pointwise.lean Modified Mathlib/Algebra/Ring/Pointwise/Set.lean Modified Mathlib/Algebra/Star/Conjneg.lean Modified Mathlib/Algebra/Star/Pointwise.lean Modified Mathlib/Combinatorics/Additive/Dissociation.lean Modified Mathlib/Combinatorics/Additive/FreimanHom.lean Modified Mathlib/Combinatorics/SimpleGraph/Circulant.lean Modified Mathlib/Data/Finset/MulAntidiagonal.lean Modified Mathlib/Data/Finset/SMulAntidiagonal.lean Modified Mathlib/Data/Set/Pointwise/BigOperators.lean Modified Mathlib/Data/Set/Pointwise/BoundedMul.lean Modified Mathlib/Data/Set/Pointwise/Finite.lean Modified Mathlib/Data/Set/Pointwise/Interval.lean Modified Mathlib/Data/Set/Pointwise/ListOfFn.lean Modified Mathlib/Data/Set/Pointwise/SMul.lean Modified Mathlib/Data/Set/Semiring.lean Modified Mathlib/GroupTheory/GroupAction/Pointwise.lean Modified Mathlib/GroupTheory/GroupAction/Support.lean 2024-09-28 20:52:41 9b9053e feat(Pointwise): `gcongr` attributes and a few more lemmas (#17233) Also mark more lemmas as `gcongr` From LeanCamCombi ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Pointwise/Finset/Basic.lean + theorem Finset.inv_subset_div_right + theorem Finset.smul_finset_insert + theorem Finset.subset_div_left Modified Mathlib/Algebra/Group/Pointwise/Set.lean + theorem Set.inv_subset_div_right + theorem Set.smul_set_insert +/- theorem Set.smul_set_mono + theorem Set.subset_div_left Modified Mathlib/MeasureTheory/Measure/Lebesgue/EqHaar.lean 2024-09-28 19:40:23 4ceb2ea feat: order properties of `Finset.expect` (#16946) Also add a few basic lemmas and fix the delaborator in `Algebra.BigOperators.Prereqs`. From LeanAPAP ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/BigOperators/Expect.lean + theorem Finset.expect_apply + theorem Finset.expect_ite_mem + theorem Fintype.expect_ite_mem + theorem Fintype.expect_mul_expect Added Mathlib/Algebra/Order/BigOperators/Expect.lean + theorem Finset.abs_expect_le_expect_abs + theorem Finset.exists_lt_of_expect_lt + theorem Finset.exists_lt_of_lt_expect + theorem Finset.expect_eq_zero_iff_of_nonneg + theorem Finset.expect_eq_zero_iff_of_nonpos + theorem Finset.expect_le + theorem Finset.expect_le_expect + theorem Finset.expect_mul_sq_le_sq_mul_sq + theorem Finset.expect_nonneg + theorem Finset.expect_pos + theorem Finset.le_expect + theorem Finset.le_expect_nonempty_of_subadditive + theorem Finset.le_expect_nonempty_of_subadditive_on_pred + theorem Finset.le_expect_of_subadditive + theorem Finset.le_expect_of_subadditive_on_pred + theorem Fintype.expect_eq_zero_iff_of_nonneg + theorem Fintype.expect_eq_zero_iff_of_nonpos + theorem GCongr.expect_le_expect + def Mathlib.Meta.Positivity.evalFinsetExpect Modified Mathlib/Analysis/MeanInequalities.lean + theorem Real.compact_inner_le_weight_mul_Lp_of_nonneg 2024-09-28 19:13:00 5a5f390 feat(AddChar): more basic lemmas (#17018) Also unsimp `AddChar.div_apply`/`AddChar.sub_apply` because it doesn't do the right thing in my application. From LeanAPAP ESTIMATED CHANGES Modified Mathlib/Algebra/Group/AddChar.lean + theorem AddChar.coe_eq_one +/- theorem AddChar.div_apply +/- theorem AddChar.sub_apply + theorem AddChar.toAddMonoidHomEquiv_symm_zero + theorem AddChar.toAddMonoidHomEquiv_zero + theorem AddChar.toMonoidHomEquiv_add + theorem AddChar.toMonoidHomEquiv_symm_mul + theorem AddChar.toMonoidHomEquiv_symm_one + theorem AddChar.toMonoidHomEquiv_zero + theorem AddChar.zpow_apply + theorem AddChar.zsmul_apply 2024-09-28 18:08:36 a087cde chore(Num): Undeprecate (#17207) Jireh deprecated these declarations in #607 because they used `bit0` and `bit1`. They since have been changed to use `x + x` and `x + x + 1`, but were not un-deprecated. They are used in mathlib. ESTIMATED CHANGES Modified Mathlib/Data/Num/Basic.lean 2024-09-28 17:13:45 332b6cd chore(Finset/Density): Fix statement and make lemmas simp (#17227) From LeanAPAP ESTIMATED CHANGES Modified Mathlib/Data/Finset/Density.lean +/- theorem Finset.card_mul_dens +/- theorem Finset.dens_mul_card +/- theorem Finset.natCast_card_mul_nnratCast_dens +/- theorem Finset.nnratCast_dens_mul_natCast_card 2024-09-28 17:13:44 d377e29 chore: update Mathlib dependencies 2024-09-28 (#17226) This PR updates the Mathlib dependencies. ESTIMATED CHANGES Modified lake-manifest.json 2024-09-28 17:13:43 5cd5bff chore: rename Submodule.coeSubtype (#17219) ESTIMATED CHANGES Modified Mathlib/Algebra/DirectSum/Module.lean Modified Mathlib/Algebra/Lie/EngelSubalgebra.lean Modified Mathlib/Algebra/Lie/Semisimple/Basic.lean Modified Mathlib/Algebra/Lie/Weights/Cartan.lean Modified Mathlib/Algebra/Module/Submodule/LinearMap.lean - theorem Submodule.coeSubtype + theorem Submodule.coe_subtype Modified Mathlib/Algebra/Module/Submodule/Pointwise.lean Modified Mathlib/Algebra/Module/ZLattice/Basic.lean Modified Mathlib/Algebra/Star/Module.lean Modified Mathlib/Analysis/Calculus/Implicit.lean Modified Mathlib/Analysis/InnerProductSpace/PiL2.lean Modified Mathlib/LinearAlgebra/Basis/Basic.lean Modified Mathlib/LinearAlgebra/BilinearForm/Orthogonal.lean Modified Mathlib/LinearAlgebra/CliffordAlgebra/Prod.lean Modified Mathlib/LinearAlgebra/DFinsupp.lean Modified Mathlib/LinearAlgebra/Eigenspace/Zero.lean Modified Mathlib/LinearAlgebra/FiniteDimensional/Defs.lean Modified Mathlib/LinearAlgebra/Finsupp.lean Modified Mathlib/LinearAlgebra/FreeModule/PID.lean Modified Mathlib/LinearAlgebra/Isomorphisms.lean Modified Mathlib/LinearAlgebra/Projection.lean Modified Mathlib/LinearAlgebra/TensorProduct/RightExactness.lean Modified Mathlib/LinearAlgebra/TensorProduct/Vanishing.lean Modified Mathlib/NumberTheory/NumberField/FractionalIdeal.lean Modified Mathlib/Probability/ConditionalExpectation.lean Modified Mathlib/RingTheory/Flat/Basic.lean 2024-09-28 16:22:43 67904bc chore: Make `Finset.univ_nonempty` be simp (#17216) `Set.univ_nonempty` already is From LeanAPAP ESTIMATED CHANGES Modified Mathlib/Algebra/BigOperators/Expect.lean +/- theorem Fintype.expect_one Modified Mathlib/Data/Fintype/Basic.lean 2024-09-28 16:22:42 3fdf477 feat(RingTheory/Ideal/KrullDimension): define the Krull dimension of a ring (#14134) The ring theoretic krull dimension is the order theoretic krull dimension applied to its prime spectrum. Unfolding this definition, it is the length of longest series of prime ideals ordered by inclusion. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/AlgebraicGeometry/PrimeSpectrum/Basic.lean + theorem PrimeSpectrum.topologicalKrullDim_eq_ringKrullDim Modified Mathlib/Order/KrullDimension.lean + theorem Order.LTSeries.length_le_krullDim + theorem Order.krullDim_nonpos_of_subsingleton Added Mathlib/RingTheory/KrullDimension/Basic.lean + theorem ringKrullDim_eq_bot_of_subsingleton + theorem ringKrullDim_eq_of_ringEquiv + theorem ringKrullDim_le_of_surjective + theorem ringKrullDim_nonneg_of_nontrivial + theorem ringKrullDim_quotient_le Added Mathlib/RingTheory/KrullDimension/Field.lean + theorem ringKrullDim_eq_zero_of_field + theorem ringKrullDim_eq_zero_of_isField Modified Mathlib/Topology/KrullDimension.lean Modified scripts/noshake.json 2024-09-28 16:01:38 01252d1 feat: `x ^ (log x)⁻¹ ≤ exp 1` (#17203) ... and `-x⁻¹ ≤ log x ≤ x`. All three statements are weakenings of more natural statements that hold only when `x ≠ 0`. Having versions that also work for `x = 0` due to junk values is really practical. From LeanAPAP ESTIMATED CHANGES Modified Mathlib/Analysis/SpecialFunctions/Log/Basic.lean + theorem Real.log_le_self + theorem Real.neg_inv_le_log Modified Mathlib/Analysis/SpecialFunctions/Pow/Real.lean + theorem Real.rpow_inv_log + theorem Real.rpow_inv_log_le_exp_one 2024-09-28 16:01:37 96fdd12 feat(Alternating/Topology): add `ClosedEmbedding` (#17200) Add `ContinuousAlternatingMap.isClosed_range_toContinuousMultilinearMap` and `ContinuousAlternatingMap.closedEmbedding_toContinuousMultilinearMap` ESTIMATED CHANGES Modified Mathlib/Topology/Algebra/Module/Alternating/Topology.lean + theorem ContinuousAlternatingMap.closedEmbedding_toContinuousMultilinearMap + theorem ContinuousAlternatingMap.isClosed_range_toContinuousMultilinearMap 2024-09-28 15:08:15 fada5f4 feat(Data/Finset): cardinality of a preimage (#17211) From LeanAPAP ESTIMATED CHANGES Modified Mathlib/Data/Finset/Preimage.lean + theorem Finset.card_preimage 2024-09-28 15:08:14 ebef379 feat: coercion from a submonoid is a Freiman homomorphism (#17209) From LeanAPAP ESTIMATED CHANGES Modified Mathlib/Combinatorics/Additive/FreimanHom.lean + theorem IsMulFreimanHom.subtypeVal 2024-09-28 15:08:13 9d7e2cd feat: `dens s⁻¹ = dens s` (#17202) From LeanAPAP ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Pointwise/Finset/Basic.lean + theorem Finset.dens_inv 2024-09-28 14:33:18 6b353d7 feat: Binomial theorem for subtraction (#17128) ESTIMATED CHANGES Modified Mathlib/Data/Nat/Choose/Sum.lean + theorem sub_pow 2024-09-28 11:27:20 06eff6a chore(Multilinear): golf (#17198) Also add 2 missing `simp` lemmas ESTIMATED CHANGES Modified Mathlib/Data/Finset/Pi.lean + theorem Finset.pi_eq_empty Modified Mathlib/Data/Fintype/Pi.lean +/- theorem Fintype.piFinset_empty + theorem Fintype.piFinset_eq_empty +/- theorem Fintype.piFinset_nonempty Modified Mathlib/LinearAlgebra/Multilinear/Basic.lean 2024-09-28 10:21:34 68c55d0 chore(FieldTheory/Galois): move file Galois into folder Galois (#17197) Move file Galois into folder Galois, rename as basic for the incomming infinite case. Moves: - Mathlib.FieldTheory.Galois -> Mathlib.FieldTheory.Galois.Basic ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/FieldTheory/Finite/GaloisField.lean Renamed Mathlib/FieldTheory/Galois.lean to Mathlib/FieldTheory/Galois/Basic.lean Modified Mathlib/FieldTheory/IsSepClosed.lean Modified Mathlib/FieldTheory/KrullTopology.lean Modified Mathlib/FieldTheory/KummerExtension.lean Modified Mathlib/FieldTheory/PolynomialGaloisGroup.lean Modified Mathlib/NumberTheory/Cyclotomic/Basic.lean Modified Mathlib/RingTheory/Norm/Basic.lean Modified Mathlib/RingTheory/Trace/Basic.lean 2024-09-28 09:50:06 488d6b5 feat(Topology): define `IsOpenQuotientMap` (#16549) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Topology/Constructions.lean + theorem IsOpenQuotientMap.prodMap Modified Mathlib/Topology/Defs/Basic.lean + structure IsOpenQuotientMap Added Mathlib/Topology/Maps/OpenQuotient.lean + theorem IsOpenQuotientMap.comp + theorem IsOpenQuotientMap.continuousAt_comp_iff + theorem IsOpenQuotientMap.continuous_comp_iff + theorem IsOpenQuotientMap.iff_isOpenMap_quotientMap + theorem IsOpenQuotientMap.map_nhds_eq + theorem IsOpenQuotientMap.of_isOpenMap_quotientMap + theorem IsOpenQuotientMap.quotientMap 2024-09-28 07:48:11 8d426f1 feat: the inverse of an analytic partial homeo is also analytic (#17170) We already have the results for the inverse of formal multilinear series, so this PR is mostly just extending our API. However, this showed that our API is suboptimal (notably with respect to the choice of constant coefficients in inverses of formal multilinear series), so we also tweak the definitions of `FormalMultilinearSeries.id` and `FormalMultilinearSeries.leftInv/rightInv` to make them more usable. ESTIMATED CHANGES Modified Mathlib/Analysis/Analytic/Basic.lean + theorem HasFPowerSeriesAt.tendsto_partialSum Modified Mathlib/Analysis/Analytic/Composition.lean + theorem FormalMultilinearSeries.compPartialSumTarget_tendsto_prod_atTop +/- theorem FormalMultilinearSeries.comp_id +/- def FormalMultilinearSeries.id - theorem FormalMultilinearSeries.id_apply_ne_one + theorem FormalMultilinearSeries.id_apply_of_one_lt +/- theorem FormalMultilinearSeries.id_apply_one' +/- theorem FormalMultilinearSeries.id_apply_one + theorem FormalMultilinearSeries.id_apply_zero + theorem FormalMultilinearSeries.id_comp' +/- theorem FormalMultilinearSeries.id_comp Modified Mathlib/Analysis/Analytic/Inverse.lean +/- theorem FormalMultilinearSeries.comp_rightInv +/- theorem FormalMultilinearSeries.comp_rightInv_aux2 +/- theorem FormalMultilinearSeries.leftInv_coeff_one +/- theorem FormalMultilinearSeries.leftInv_coeff_zero +/- theorem FormalMultilinearSeries.leftInv_comp +/- theorem FormalMultilinearSeries.leftInv_eq_rightInv +/- theorem FormalMultilinearSeries.leftInv_removeZero + theorem FormalMultilinearSeries.radius_leftInv_pos_of_radius_pos +/- theorem FormalMultilinearSeries.radius_rightInv_pos_of_radius_pos +/- theorem FormalMultilinearSeries.radius_rightInv_pos_of_radius_pos_aux2 +/- theorem FormalMultilinearSeries.rightInv_coeff +/- theorem FormalMultilinearSeries.rightInv_coeff_one +/- theorem FormalMultilinearSeries.rightInv_coeff_zero +/- theorem FormalMultilinearSeries.rightInv_removeZero + theorem HasFPowerSeriesAt.eventually_hasSum_of_comp + theorem HasFPowerSeriesAt.tendsto_partialSum_prod_of_comp + theorem PartialHomeomorph.hasFPowerSeriesAt_symm Modified Mathlib/Topology/Algebra/InfiniteSum/Constructions.lean + theorem HasProd.of_sigma 2024-09-27 22:13:25 2b108d1 feat(FiberCategory/Fibered): define fibered functors (#12982) We define the class `IsFibered p`, which captures what it means for a functor `p : 𝒳 ⥤ 𝒮` to be a fibered category, defined as in SGA 1 VI 6.1. We also provide an alternate constructor corresponding to the definition as in [02XM](https://stacks.math.columbia.edu/tag/02XM). ESTIMATED CHANGES Modified Mathlib/CategoryTheory/FiberedCategory/Cartesian.lean Modified Mathlib/CategoryTheory/FiberedCategory/Fibered.lean + theorem CategoryTheory.Functor.IsFibered.isStronglyCartesian_of_exists_isCartesian + theorem CategoryTheory.Functor.IsFibered.of_exists_isStronglyCartesian + theorem CategoryTheory.Functor.IsPreFibered.pullbackObj_proj - theorem CategoryTheory.IsPreFibered.pullbackObj_proj Modified Mathlib/CategoryTheory/FiberedCategory/HomLift.lean 2024-09-27 21:45:34 6c1ff14 chore(UniqueProds): fix some `to_additive` names (#17072) ESTIMATED CHANGES Modified Mathlib/Algebra/Group/UniqueProds/Basic.lean 2024-09-27 21:36:55 4a7a987 feat: add annotations for autolabel workflow (#17188) improve displayed messages ESTIMATED CHANGES Modified scripts/autolabel.lean 2024-09-27 18:54:07 7da2960 feat: expand API around analytic functions (#16985) More basic lemmas for analytic functions (especially versions for `AnalyticOn` of lemmas we already have for `AnalyticOnNhd`). ESTIMATED CHANGES Modified Mathlib/Analysis/Analytic/Basic.lean + theorem AnalyticWithinAt.mono_of_mem + theorem ContinuousLinearMap.comp_analyticOn + theorem ContinuousLinearMap.comp_hasFPowerSeriesWithinOnBall + theorem FormalMultilinearSeries.radius_le_of_le + theorem HasFPowerSeriesWithinAt.mono_of_mem + theorem HasFPowerSeriesWithinOnBall.congr' + theorem HasFPowerSeriesWithinOnBall.sum + theorem analyticWithinAt_insert + theorem hasFPowerSeriesWithinAt_insert + theorem hasFPowerSeriesWithinOnBall_insert_self Modified Mathlib/Analysis/Analytic/ChangeOrigin.lean + theorem FormalMultilinearSeries.radius_le_radius_derivSeries + theorem HasFPowerSeriesWithinOnBall.analyticOn + theorem HasFPowerSeriesWithinOnBall.analyticWithinAt_of_mem + theorem HasFPowerSeriesWithinOnBall.changeOrigin 2024-09-27 17:57:33 418c537 feat: a few lemmas on `WithTop ℕ∞` (#17164) To be used when `WithTop ℕ∞` becomes the set of smoothness exponents, in #17152 ESTIMATED CHANGES Modified Mathlib/Data/ENat/Basic.lean + theorem ENat.add_one_eq_coe_top_iff + theorem ENat.add_one_nat_le_withTop_of_lt + theorem ENat.coe_top_add_one + theorem ENat.nat_ne_coe_top + theorem ENat.one_le_iff_ne_zero_withTop 2024-09-27 15:51:00 4da4503 feat(Algebra/Homology): study of the source of the associator isomorphism for the action of bifunctors on homological complexes (#16298) In this PR, we decompose the differential on a homological complex of the form `mapBifunctor (mapBifunctor K₁ K₂ F₁₂ c₁₂) K₃ G c₄` into three components. ESTIMATED CHANGES Modified Mathlib/Algebra/Homology/BifunctorAssociator.lean + theorem HomologicalComplex.mapBifunctor₁₂.d_eq + theorem HomologicalComplex.mapBifunctor₁₂.d₁_eq + theorem HomologicalComplex.mapBifunctor₁₂.d₁_eq_zero + theorem HomologicalComplex.mapBifunctor₁₂.d₂_eq + theorem HomologicalComplex.mapBifunctor₁₂.d₂_eq_zero + theorem HomologicalComplex.mapBifunctor₁₂.d₃_eq + theorem HomologicalComplex.mapBifunctor₁₂.d₃_eq_zero + theorem HomologicalComplex.mapBifunctor₁₂.ι_D₁ + theorem HomologicalComplex.mapBifunctor₁₂.ι_D₂ + theorem HomologicalComplex.mapBifunctor₁₂.ι_D₃ 2024-09-27 15:03:45 b2639cf feat(NumberTheory/NumberField): Restricting maps to the ring of integers (#16849) This PR adds definitions of restricting maps to the ring of integers. That is, given a ring homomorphism (resp. ring isomorphism; resp. algebra homomorphism; resp. algebra isomorphism) `f` from`K` to `L`, we define the induced ring homomorphism (resp. ring isomorphism; resp. algebra homomorphism; resp. algebra isomorphism) from `𝓞 K` to `𝓞 L`, which is obtained by restricting `f` to `𝓞 K`. ESTIMATED CHANGES Modified Mathlib/Algebra/Ring/Equiv.lean + theorem RingEquiv.coe_ringHom_ofRingHom + def RingEquiv.ofRingHom + theorem RingEquiv.ofRingHom_coe_ringHom + theorem RingEquiv.ofRingHom_symm Modified Mathlib/NumberTheory/NumberField/Basic.lean + def NumberField.RingOfIntegers.mapAlgEquiv + def NumberField.RingOfIntegers.mapAlgHom + def NumberField.RingOfIntegers.mapRingEquiv + def NumberField.RingOfIntegers.mapRingHom 2024-09-27 14:37:17 7abd698 feat: some lemmas on permutation (#9359) This PR prepares the way to PR #17046 and #17047 which compute the centralizer of a permutation in a permutation group and in the alternating group. ESTIMATED CHANGES Modified Mathlib/GroupTheory/Perm/Cycle/Factors.lean + theorem Equiv.Perm.cycleOf_ne_one_iff_mem_cycleFactorsFinset Modified Mathlib/GroupTheory/Perm/Cycle/Type.lean + theorem Equiv.Perm.card_fixedPoints Modified Mathlib/GroupTheory/Perm/DomMulAct.lean + theorem DomMulAct.stabilizer_card': +/- theorem DomMulAct.stabilizer_card + theorem DomMulAct.stabilizer_ncard 2024-09-27 13:57:09 bd4b829 feat(Analysis/Analytic/IsolatedZeros): the principle of isolated zeros with `Filter.codiscreteWithin` (#16973) ESTIMATED CHANGES Modified Mathlib/Analysis/Analytic/IsolatedZeros.lean + theorem AnalyticOnNhd.eqOn_or_eventually_ne_of_preconnected + theorem AnalyticOnNhd.eqOn_zero_or_eventually_ne_zero_of_preconnected 2024-09-27 11:41:53 0f85ae2 chore(Data/SetLike/Basic): fix delaborator (#17151) This was broken by leanprover/lean4#5020 ESTIMATED CHANGES Modified Mathlib/Data/SetLike/Basic.lean Modified test/set_like.lean 2024-09-27 08:09:21 a94fd6e chore: update Mathlib dependencies 2024-09-27 (#17184) This PR updates the Mathlib dependencies. ESTIMATED CHANGES Modified lake-manifest.json 2024-09-27 06:31:44 6396b5e chore: update identity of bot posting Mathlib CI feedback (#17182) We changed which bot is responsible for posting these comments. ESTIMATED CHANGES Modified scripts/lean-pr-testing-comments.sh 2024-09-27 06:08:45 3a69888 chore: update Mathlib dependencies 2024-09-27 (#17181) This PR updates the Mathlib dependencies. ESTIMATED CHANGES Modified lake-manifest.json 2024-09-27 02:41:55 28af520 chore: update Mathlib dependencies 2024-09-27 (#17179) This PR updates the Mathlib dependencies. ESTIMATED CHANGES Modified lake-manifest.json 2024-09-27 01:46:02 652e6e7 refactor(Algebra/Category/ModuleCat): redefine presheaves of modules as families of objects in `ModuleCat` (#16667) In order to ease automation, a presheaf of modules is redefined as a family of objects in `ModuleCat`. Previously, it was defined as a presheaf of abelian groups with extra data, which was eventually creating a lot of issues with automation. ESTIMATED CHANGES Modified Mathlib/Algebra/Category/ModuleCat/ChangeOfRings.lean +/- theorem ModuleCat.restrictScalarsComp'App_hom_apply +/- theorem ModuleCat.restrictScalarsComp'App_inv_apply +/- theorem ModuleCat.restrictScalarsId'App_hom_apply +/- theorem ModuleCat.restrictScalarsId'App_inv_apply Modified Mathlib/Algebra/Category/ModuleCat/Differentials/Presheaf.lean - theorem PresheafOfModules.DifferentialsConstruction.relativeDifferentials'_map_apply +/- theorem PresheafOfModules.DifferentialsConstruction.relativeDifferentials'_map_d - theorem PresheafOfModules.DifferentialsConstruction.relativeDifferentials'_obj Modified Mathlib/Algebra/Category/ModuleCat/Presheaf.lean - theorem BundledCorePresheafOfModules.restrictionApp_toPresheafOfModules - theorem BundledCorePresheafOfModules.toPresheafOfModules_obj - theorem BundledCorePresheafOfModules.toPresheafOfModules_presheaf_map_apply - structure BundledCorePresheafOfModules - def CorePresheafOfModules.presheaf - def CorePresheafOfModules.toPresheafOfModules - theorem CorePresheafOfModules.toPresheafOfModules_obj - theorem CorePresheafOfModules.toPresheafOfModules_presheaf_map_apply - structure CorePresheafOfModules - theorem PresheafOfModules.Hom.add_app - def PresheafOfModules.Hom.app - def PresheafOfModules.Hom.comp - theorem PresheafOfModules.Hom.comp_app - theorem PresheafOfModules.Hom.comp_hom - theorem PresheafOfModules.Hom.ext - def PresheafOfModules.Hom.id - theorem PresheafOfModules.Hom.id_hom - def PresheafOfModules.Hom.mk' - theorem PresheafOfModules.Hom.mk'_app - theorem PresheafOfModules.Hom.neg_app - theorem PresheafOfModules.Hom.sub_app - theorem PresheafOfModules.Hom.zero_app +/- structure PresheafOfModules.Hom + theorem PresheafOfModules.add_app + theorem PresheafOfModules.comp_app + theorem PresheafOfModules.congr_map_apply + def PresheafOfModules.forgetToPresheafModuleCatObjMap + theorem PresheafOfModules.forgetToPresheafModuleCatObjMap_apply + theorem PresheafOfModules.forgetToPresheafModuleCatObjObj_coe + def PresheafOfModules.homMk + theorem PresheafOfModules.hom_ext + theorem PresheafOfModules.id_app - def PresheafOfModules.map - theorem PresheafOfModules.map_apply - theorem PresheafOfModules.map_comp - theorem PresheafOfModules.map_id + theorem PresheafOfModules.map_smul +/- theorem PresheafOfModules.naturality_apply + theorem PresheafOfModules.neg_app - def PresheafOfModules.obj + def PresheafOfModules.ofPresheaf + theorem PresheafOfModules.ofPresheaf_presheaf + def PresheafOfModules.presheaf + theorem PresheafOfModules.presheaf_map_apply_coe + theorem PresheafOfModules.presheaf_obj_coe - theorem PresheafOfModules.restrictionApp_apply - theorem PresheafOfModules.restrictionApp_comp - theorem PresheafOfModules.restrictionApp_id - theorem PresheafOfModules.restrictionApp_naturality + theorem PresheafOfModules.sub_app +/- def PresheafOfModules.toPresheaf - theorem PresheafOfModules.toPresheaf_map_app + theorem PresheafOfModules.toPresheaf_map_app_apply + theorem PresheafOfModules.toPresheaf_obj_coe + def PresheafOfModules.unit - def PresheafOfModules.unitCore + theorem PresheafOfModules.zero_app + theorem PresheafOfModules.zsmul_app +/- structure PresheafOfModules Modified Mathlib/Algebra/Category/ModuleCat/Presheaf/ChangeOfRings.lean Modified Mathlib/Algebra/Category/ModuleCat/Presheaf/Colimits.lean - theorem PresheafOfModules.colimitCoconeιApp_naturality Modified Mathlib/Algebra/Category/ModuleCat/Presheaf/Limits.lean - theorem PresheafOfModules.limitConeπApp_naturality Modified Mathlib/Algebra/Category/ModuleCat/Presheaf/Pushforward.lean - theorem PresheafOfModules.pushforward_obj_obj Modified Mathlib/Algebra/Category/ModuleCat/Presheaf/Sheafification.lean - theorem PresheafOfModules.sheafificationAdjunction_unit_app_hom - theorem PresheafOfModules.sheafificationHomEquiv_hom' - theorem PresheafOfModules.sheafificationHomEquiv_hom + theorem PresheafOfModules.toPresheaf_map_sheafificationAdjunction_unit_app + theorem PresheafOfModules.toPresheaf_map_sheafificationHomEquiv + theorem PresheafOfModules.toPresheaf_map_sheafificationHomEquiv_def Modified Mathlib/Algebra/Category/ModuleCat/Presheaf/Sheafify.lean - theorem PresheafOfModules.comp_sheafifyHomEquiv'_symm_hom + theorem PresheafOfModules.comp_toPresheaf_map_sheafifyHomEquiv'_symm_hom +/- def PresheafOfModules.sheafifyMap + theorem PresheafOfModules.toPresheaf_map_toSheafify +/- def PresheafOfModules.toSheafify + theorem PresheafOfModules.toSheafify_app_apply Modified Mathlib/Algebra/Category/ModuleCat/Sheaf.lean Modified Mathlib/Algebra/Category/ModuleCat/Sheaf/ChangeOfRings.lean Modified Mathlib/Algebra/Category/Ring/Basic.lean + theorem CommRingCat.forgetToRingCat_map_apply + theorem CommRingCat.forgetToRingCat_obj Modified Mathlib/AlgebraicGeometry/Modules/Tilde.lean - def ModuleCat.preTildeInAddCommGrp - def ModuleCat.tildeInAddCommGrp Modified Mathlib/CategoryTheory/Preadditive/AdditiveFunctor.lean 2024-09-27 01:25:12 cc68ae7 feat: report CI results to Batteries for batteries-pr-testing-NNNN branches (#17144) This is the other end of https://github.com/leanprover-community/batteries/pull/958. Again, we'll need to make sure the token used here can post comments at Batteries. ESTIMATED CHANGES Modified .github/build.in.yml Modified .github/workflows/bors.yml Modified .github/workflows/build.yml Modified .github/workflows/build_fork.yml Modified scripts/lean-pr-testing-comments.sh 2024-09-26 22:18:51 20ec679 chore(GroupTheory/DoubleCoset): remove some `Subgroup.toSubmonoid` (#17173) These are mistranslations. They are `Subgroup.carrier` in mathlib3. ESTIMATED CHANGES Modified Mathlib/GroupTheory/DoubleCoset.lean +/- theorem Doset.disjoint_out' 2024-09-26 17:43:00 aaff5ad chore(Data/Fin/Tuple): generalize `Type` to `Sort` (#17161) Generalize definitions and theorems in `Data/Fin/Tuple/Basic` to take in `Sort` by default instead of `Type`. The exceptions are theorems that interact with existing type classes such as `Preorder`, `Prod`, and `Set`, which expect `Type`. For instance, the following is added specifically for some theorems about `Preorder`: ```lean4 variable {α : Fin (n + 1) → Type*} -- instead of variable {α : Fin (n + 1) → Sort*} ``` ESTIMATED CHANGES Modified Mathlib/Analysis/Calculus/FormalMultilinearSeries.lean Modified Mathlib/Data/Fin/Tuple/Basic.lean +/- def Fin.append +/- theorem Fin.append_assoc +/- theorem Fin.append_cast_left +/- theorem Fin.append_cast_right +/- theorem Fin.append_comp_rev +/- theorem Fin.append_cons +/- theorem Fin.append_elim0 +/- theorem Fin.append_left +/- theorem Fin.append_left_eq_cons +/- theorem Fin.append_left_nil +/- theorem Fin.append_left_snoc +/- theorem Fin.append_rev +/- theorem Fin.append_right +/- theorem Fin.append_right_cons +/- theorem Fin.append_right_eq_snoc +/- theorem Fin.append_right_nil +/- theorem Fin.append_snoc +/- theorem Fin.comp_cons +/- theorem Fin.comp_init +/- theorem Fin.comp_snoc +/- theorem Fin.comp_tail +/- def Fin.consInduction +/- theorem Fin.cons_eq_append +/- theorem Fin.cons_one +/- theorem Fin.cons_snoc_eq_snoc_cons +/- theorem Fin.elim0_append +/- def Fin.extractNth +/- theorem Fin.init_def +/- theorem Fin.insertNth_rev +/- theorem Fin.range_cons +/- theorem Fin.repeat_add +/- theorem Fin.repeat_apply +/- theorem Fin.repeat_comp_rev +/- theorem Fin.repeat_one +/- theorem Fin.repeat_rev +/- theorem Fin.repeat_succ +/- theorem Fin.repeat_zero +/- def Fin.snocInduction +/- theorem Fin.snoc_cast_add +/- theorem Fin.snoc_comp_castSucc +/- theorem Fin.snoc_comp_cast_add +/- theorem Fin.snoc_comp_nat_add +/- theorem Fin.snoc_eq_append +/- theorem Fin.snoc_zero +/- theorem Fin.succAbove_cases_eq_insertNth +/- theorem Fin.tail_def +/- theorem Fin.tail_init_eq_init_tail +/- def Fin.«repeat» 2024-09-26 17:42:59 c76e7c6 feat(Probability/Distributions): formalize Pareto distribution (#16713) Formalize Pareto distribution, using Gamma distribution as a reference. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Probability/Distributions/Pareto.lean + theorem ProbabilityTheory.isProbabilityMeasure_paretoMeasure + theorem ProbabilityTheory.lintegral_paretoPDF_eq_one + theorem ProbabilityTheory.lintegral_paretoPDF_of_le + theorem ProbabilityTheory.measurable_paretoPDFReal + theorem ProbabilityTheory.paretoCDFReal_eq_integral + theorem ProbabilityTheory.paretoCDFReal_eq_lintegral + theorem ProbabilityTheory.paretoPDFReal_nonneg + theorem ProbabilityTheory.paretoPDFReal_pos + theorem ProbabilityTheory.paretoPDF_eq + theorem ProbabilityTheory.paretoPDF_of_le + theorem ProbabilityTheory.paretoPDF_of_lt + theorem ProbabilityTheory.stronglyMeasurable_paretoPDFReal 2024-09-26 16:45:47 9a3cd8c feat: add CI to auto-label PRs (#17062) Add command `lake exe autolabel 17062` which uses `git diff` to find changes compared to `master`, searches for applicable GitHub topic labels (based on a defined mapping), and adds them to the PR using `gh`. Add GitHub workflow calling the script on creation of a new PR, automatically adding topic labels to the PR if applicable. ESTIMATED CHANGES Added .github/workflows/add_label_from_diff.yaml Modified lakefile.lean Added scripts/autolabel.lean + structure AutoLabel.Label + def AutoLabel.getMatchingLabels + def AutoLabel.githubAnnotation + def AutoLabel.mathlibLabels + def AutoLabel.mathlibUnlabelled + def System.FilePath.isPrefixOf 2024-09-26 16:01:03 d86f6e1 chore: update Mathlib dependencies 2024-09-26 (#17172) This PR updates the Mathlib dependencies. ESTIMATED CHANGES Modified lake-manifest.json 2024-09-26 15:20:40 367f25d refactor(CategoryTheory/MorphismProperty): introduce meta properties `RespectsLeft` and `RespectsRight` (#17139) This PR introduces new meta properties for morphism properties: If `P` and `Q` are morphism properties, then `P.RespectsLeft Q` if `P` respects `Q` on the left, i.e. if `P f` implies `P (i ≫ f)` whenever `i` satisfies `Q`. Analogously, `P.RespectsRight Q` if `P` respects `Q` on the right. Finally, `P.Respects Q` if `P` respects `Q` both on the left and on the right. The current definition of `RespectsIso P` is now an abbreviation for `P.Respects (isomorphisms C)`. Note that `P.Respects P` is equivalent to `StableUnderComposition P`, but the latter definition was not changed. ESTIMATED CHANGES Modified Mathlib/AlgebraicGeometry/Morphisms/Basic.lean Modified Mathlib/AlgebraicGeometry/Morphisms/ClosedImmersion.lean Modified Mathlib/AlgebraicGeometry/Morphisms/Constructors.lean Modified Mathlib/CategoryTheory/MorphismProperty/Basic.lean + theorem CategoryTheory.MorphismProperty.RespectsIso.mk + theorem CategoryTheory.MorphismProperty.RespectsIso.postcomp + theorem CategoryTheory.MorphismProperty.RespectsIso.precomp Modified Mathlib/CategoryTheory/MorphismProperty/Composition.lean Modified Mathlib/CategoryTheory/MorphismProperty/Limits.lean Modified Mathlib/CategoryTheory/Triangulated/Subcategory.lean Modified Mathlib/RingTheory/RingHomProperties.lean 2024-09-26 12:41:25 bcb7eb2 chore: remove List.ofFn lemmas moved to Batteries (#17159) ESTIMATED CHANGES Modified Mathlib/Analysis/Analytic/Composition.lean Modified Mathlib/Data/List/FinRange.lean Modified Mathlib/Data/List/OfFn.lean - theorem List.getElem?_ofFn - theorem List.getElem_ofFn - theorem List.getElem_ofFn_go - theorem List.get_ofFn_go - theorem List.length_ofFn - theorem List.length_ofFn_go Modified lake-manifest.json 2024-09-26 12:28:31 a60d315 feat: the (covariant) long exact sequence of Ext (#14515) We obtain the long exact sequence of `Ext`-groups `Ext X S.X₁ n₀ → Ext X S.X₂ n₀ → Ext X S.X₃ n₀ → Ext X S.X₁ n₁ → Ext X S.X₂ n₁ → Ext X S.X₃ n₁` when `n₀ + 1 = n₁` and `S` is a short exact short complex in an abelian category. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Homology/DerivedCategory/Ext/Basic.lean Added Mathlib/Algebra/Homology/DerivedCategory/Ext/ExactSequences.lean + theorem CategoryTheory.Abelian.Ext.covariantSequence_exact + theorem CategoryTheory.Abelian.Ext.covariant_sequence_exact₁' + theorem CategoryTheory.Abelian.Ext.covariant_sequence_exact₁ + theorem CategoryTheory.Abelian.Ext.covariant_sequence_exact₂' + theorem CategoryTheory.Abelian.Ext.covariant_sequence_exact₂ + theorem CategoryTheory.Abelian.Ext.covariant_sequence_exact₃' + theorem CategoryTheory.Abelian.Ext.covariant_sequence_exact₃ + theorem CategoryTheory.Abelian.Ext.hom_comp_singleFunctor_map_shift + theorem CategoryTheory.Abelian.Ext.preadditiveCoyoneda_homologySequenceδ_singleTriangle_apply Modified Mathlib/Algebra/Homology/DerivedCategory/Ext/ExtClass.lean + theorem CategoryTheory.ShortComplex.ext_mk₀_f_comp_ext_mk₀_g Modified Mathlib/Algebra/Homology/ShortComplex/Ab.lean + theorem CategoryTheory.ShortComplex.ab_exact_iff_function_exact 2024-09-26 11:05:07 d942826 chore(SetTheory/Game/PGame): rename (#17120) ESTIMATED CHANGES Modified Mathlib/SetTheory/Game/Basic.lean Modified Mathlib/SetTheory/Game/PGame.lean + theorem SetTheory.PGame.Equiv.of_equiv - theorem SetTheory.PGame.equiv_of_mk_equiv - theorem SetTheory.PGame.sub_zero + theorem SetTheory.PGame.sub_zero_eq_add_zero 2024-09-26 10:19:33 5d4532a chore: rename `AnalyticOn` to `AnalyticOnNhd`, and `AnalyticWithinOn` to `AnalyticOn` (#17146) For coherence with `ContinuousOn`, `DifferentiableOn` and so on. See Zulip https://leanprover.zulipchat.com/#narrow/stream/144837-PR-reviews/topic/Integrate.20analytic.20functions.20in.20the.20smooth.20hierarchy/near/471899268 This is 90% renaming all `AnalyticOn` to `AnalyticOnNhd` and then `AnalyticWithinOn` to `AnalyticOn`, and then adding deprecations. The 10% remaining is, when adding a deprecation `alias AnalyticOn.foo := AnalyticOnNhd.foo`, I noticed that `AnalyticOn.foo` would definitely make sense (with the new meaning of `AnalyticOn`), so I added the lemma with the new meaning instead of deprecating the old one. ESTIMATED CHANGES Modified Archive/Hairer.lean Modified Mathlib/Analysis/Analytic/Basic.lean - theorem AnalyticOn.analyticWithinOn - theorem AnalyticOn.congr' +/- theorem AnalyticOn.congr - theorem AnalyticOn.continuous +/- theorem AnalyticOn.mono +/- def AnalyticOn + theorem AnalyticOnNhd.analyticOn + theorem AnalyticOnNhd.congr' + theorem AnalyticOnNhd.congr + theorem AnalyticOnNhd.continuous + theorem AnalyticOnNhd.mono + def AnalyticOnNhd + theorem AnalyticWithinAt.congr_of_eventuallyEq_insert - theorem AnalyticWithinOn.congr - theorem AnalyticWithinOn.mono - def AnalyticWithinOn - theorem ContinuousLinearMap.comp_analyticOn + theorem ContinuousLinearMap.comp_analyticOnNhd + theorem analyticOnNhd_congr' + theorem analyticOnNhd_congr - theorem analyticOn_congr' - theorem analyticOn_congr + theorem analyticOn_univ - theorem analyticWithinOn_univ Modified Mathlib/Analysis/Analytic/CPolynomial.lean + theorem CPolynomialAt.analyticWithinAt + theorem CPolynomialOn.analyticOnNhd + theorem ContinuousLinearMap.analyticOnNhd_uncurry_of_multilinear +/- theorem ContinuousLinearMap.analyticOn_uncurry_of_multilinear - theorem ContinuousLinearMap.analyticWithinOn_uncurry_of_multilinear +/- theorem ContinuousMultilinearMap.analyticOn + theorem ContinuousMultilinearMap.analyticOnNhd - theorem ContinuousMultilinearMap.analyticWithinOn Modified Mathlib/Analysis/Analytic/ChangeOrigin.lean - theorem AnalyticAt.exists_ball_analyticOn + theorem AnalyticAt.exists_ball_analyticOnNhd - theorem AnalyticAt.exists_mem_nhds_analyticOn + theorem AnalyticAt.exists_mem_nhds_analyticOnNhd - theorem HasFPowerSeriesOnBall.analyticOn + theorem HasFPowerSeriesOnBall.analyticOnNhd Modified Mathlib/Analysis/Analytic/Composition.lean - theorem AnalyticOn.comp' +/- theorem AnalyticOn.comp - theorem AnalyticOn.comp_analyticWithinOn + theorem AnalyticOnNhd.comp' + theorem AnalyticOnNhd.comp + theorem AnalyticOnNhd.comp_analyticOn - theorem AnalyticWithinOn.comp Modified Mathlib/Analysis/Analytic/Constructions.lean +/- theorem AnalyticOn.comp₂ +/- theorem AnalyticOn.curry_left +/- theorem AnalyticOn.curry_right +/- theorem AnalyticOn.inv +/- theorem AnalyticOn.mul +/- theorem AnalyticOn.smul + theorem AnalyticOnNhd.add + theorem AnalyticOnNhd.comp₂ + theorem AnalyticOnNhd.curry_left + theorem AnalyticOnNhd.curry_right + theorem AnalyticOnNhd.div + theorem AnalyticOnNhd.inv + theorem AnalyticOnNhd.mul + theorem AnalyticOnNhd.neg + theorem AnalyticOnNhd.pi + theorem AnalyticOnNhd.pow + theorem AnalyticOnNhd.prod + theorem AnalyticOnNhd.smul + theorem AnalyticOnNhd.sub - theorem AnalyticWithinOn.add - theorem AnalyticWithinOn.comp₂ - theorem AnalyticWithinOn.curry_left - theorem AnalyticWithinOn.curry_right - theorem AnalyticWithinOn.div - theorem AnalyticWithinOn.inv - theorem AnalyticWithinOn.mul - theorem AnalyticWithinOn.neg - theorem AnalyticWithinOn.pi - theorem AnalyticWithinOn.pow - theorem AnalyticWithinOn.prod - theorem AnalyticWithinOn.smul - theorem AnalyticWithinOn.sub + theorem Finset.analyticOnNhd_prod + theorem Finset.analyticOnNhd_sum - theorem Finset.analyticWithinOn_prod - theorem Finset.analyticWithinOn_sum + theorem analyticOnNhd_const + theorem analyticOnNhd_inv + theorem analyticOnNhd_pi_iff +/- theorem analyticOn_inv - theorem analyticWithinOn_const - theorem analyticWithinOn_pi_iff Modified Mathlib/Analysis/Analytic/IsolatedZeros.lean - theorem AnalyticOn.eqOn_of_preconnected_of_frequently_eq - theorem AnalyticOn.eqOn_of_preconnected_of_mem_closure - theorem AnalyticOn.eqOn_zero_of_preconnected_of_frequently_eq_zero - theorem AnalyticOn.eqOn_zero_of_preconnected_of_mem_closure - theorem AnalyticOn.eq_of_frequently_eq + theorem AnalyticOnNhd.eqOn_of_preconnected_of_frequently_eq + theorem AnalyticOnNhd.eqOn_of_preconnected_of_mem_closure + theorem AnalyticOnNhd.eqOn_zero_of_preconnected_of_frequently_eq_zero + theorem AnalyticOnNhd.eqOn_zero_of_preconnected_of_mem_closure + theorem AnalyticOnNhd.eq_of_frequently_eq Modified Mathlib/Analysis/Analytic/Linear.lean + theorem analyticOnNhd_fst + theorem analyticOnNhd_id + theorem analyticOnNhd_snd - theorem analyticWithinOn_fst - theorem analyticWithinOn_id - theorem analyticWithinOn_snd Modified Mathlib/Analysis/Analytic/Meromorphic.lean - theorem AnalyticOn.meromorphicOn + theorem AnalyticOnNhd.meromorphicOn Modified Mathlib/Analysis/Analytic/Polynomial.lean - theorem AnalyticOn.aeval_mvPolynomial - theorem AnalyticOn.eval_continuousLinearMap' - theorem AnalyticOn.eval_continuousLinearMap - theorem AnalyticOn.eval_linearMap' - theorem AnalyticOn.eval_linearMap - theorem AnalyticOn.eval_mvPolynomial + theorem AnalyticOnNhd.aeval_mvPolynomial + theorem AnalyticOnNhd.aeval_polynomial + theorem AnalyticOnNhd.eval_continuousLinearMap' + theorem AnalyticOnNhd.eval_continuousLinearMap + theorem AnalyticOnNhd.eval_linearMap' + theorem AnalyticOnNhd.eval_linearMap + theorem AnalyticOnNhd.eval_mvPolynomial + theorem AnalyticOnNhd.eval_polynomial + theorem AnalyticWithinAt.aeval_polynomial Modified Mathlib/Analysis/Analytic/Uniqueness.lean - theorem AnalyticOn.eqOn_of_preconnected_of_eventuallyEq - theorem AnalyticOn.eqOn_zero_of_preconnected_of_eventuallyEq_zero - theorem AnalyticOn.eqOn_zero_of_preconnected_of_eventuallyEq_zero_aux - theorem AnalyticOn.eq_of_eventuallyEq + theorem AnalyticOnNhd.eqOn_of_preconnected_of_eventuallyEq + theorem AnalyticOnNhd.eqOn_zero_of_preconnected_of_eventuallyEq_zero + theorem AnalyticOnNhd.eqOn_zero_of_preconnected_of_eventuallyEq_zero_aux + theorem AnalyticOnNhd.eq_of_eventuallyEq Modified Mathlib/Analysis/Analytic/Within.lean + theorem IsOpen.analyticOn_iff_analyticOnNhd - theorem IsOpen.analyticWithinOn_iff_analyticOn + theorem analyticOn_of_locally_analyticOn - theorem analyticWithinOn_of_locally_analyticWithinOn Modified Mathlib/Analysis/Calculus/FDeriv/Analytic.lean +/- theorem AnalyticOn.contDiffOn - theorem AnalyticOn.deriv - theorem AnalyticOn.differentiableOn - theorem AnalyticOn.fderiv - theorem AnalyticOn.iteratedFDeriv - theorem AnalyticOn.iterated_deriv + theorem AnalyticOnNhd.contDiffOn + theorem AnalyticOnNhd.deriv + theorem AnalyticOnNhd.differentiableOn + theorem AnalyticOnNhd.fderiv + theorem AnalyticOnNhd.iteratedFDeriv + theorem AnalyticOnNhd.iterated_deriv - theorem AnalyticWithinOn.contDiffOn Modified Mathlib/Analysis/Complex/CauchyIntegral.lean + theorem Complex.analyticOnNhd_iff_differentiableOn + theorem Complex.analyticOnNhd_univ_iff_differentiable + theorem DifferentiableOn.analyticOnNhd Modified Mathlib/Analysis/Complex/OpenMapping.lean - theorem AnalyticOn.is_constant_or_isOpen + theorem AnalyticOnNhd.is_constant_or_isOpen Modified Mathlib/Analysis/SpecialFunctions/Complex/Analytic.lean + theorem AnalyticOnNhd.cexp + theorem AnalyticOnNhd.clog + theorem AnalyticOnNhd.cpow + theorem AnalyticWithinAt.cexp + theorem AnalyticWithinAt.clog + theorem AnalyticWithinAt.cpow + theorem analyticOnNhd_cexp +/- theorem analyticOn_cexp Modified Mathlib/Analysis/SpecialFunctions/Gamma/Beta.lean Modified Mathlib/Geometry/Manifold/AnalyticManifold.lean Modified Mathlib/NumberTheory/LSeries/Deriv.lean + theorem LSeries_analyticOnNhd Modified Mathlib/NumberTheory/LSeries/ZMod.lean Modified docs/overview.yaml Modified docs/undergrad.yaml Modified scripts/no_lints_prime_decls.txt 2024-09-26 08:03:57 78a0b2f ci: add --nightlysha to create-adaptation-pr.sh (#17148) ESTIMATED CHANGES Modified .github/workflows/nightly_detect_failure.yml Modified scripts/create-adaptation-pr.sh 2024-09-26 04:36:13 c52d5a9 chore: fix type class assumptions for `NonUnitalStarAlgHom.map_cfcₙ` (#17111) ESTIMATED CHANGES Modified Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Unique.lean 2024-09-26 03:24:14 facf1f9 feat(LinearAlgebra/Matrix): Woodbury Identity (#16325) This adds the [Woodbury Identity](https://en.wikipedia.org/wiki/Woodbury_matrix_identity). [Zulip discussion](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/Woodbury.20identity/near/462245284) Also corrects some bad deprecations introduced in #16590, which affected development of this PR. ESTIMATED CHANGES Modified Mathlib/Data/Matrix/Invertible.lean + theorem Matrix.add_mul_mul_invOf_mul_eq_one' + theorem Matrix.add_mul_mul_invOf_mul_eq_one + theorem Matrix.invOf_add_mul_mul + def Matrix.invertibleAddMulMul Modified Mathlib/LinearAlgebra/Matrix/NonsingularInverse.lean + theorem Matrix.add_mul_mul_inv_eq_sub 2024-09-26 02:42:15 b272ab8 feat: monotonicity lemmas for OrdinalApprox (#15522) This PR adds two lemmas about monotonicity for `lfpApprox` and `gfpApprox` each. I found them helpful when working with the API. ESTIMATED CHANGES Modified Mathlib/SetTheory/Ordinal/FixedPointApproximants.lean + theorem OrdinalApprox.gfpApprox_mono_left + theorem OrdinalApprox.gfpApprox_mono_mid + theorem OrdinalApprox.lfpApprox_mono_left + theorem OrdinalApprox.lfpApprox_mono_mid 2024-09-26 00:42:52 3488c1c feat(CategoryTheory): the internal hom with the monoidal unit is the identity (#17065) In a closed monoidal category, the internal hom defined by mapping out of the monoidal unit is naturally isomorphic to the identity. This specializes to an analogous result about exponentiating with the terminal object in a cartesian closed category. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Closed/Cartesian.lean + def CategoryTheory.expTerminalNatIso Modified Mathlib/CategoryTheory/Closed/Monoidal.lean + def CategoryTheory.MonoidalClosed.unitNatIso 2024-09-26 00:42:50 9678fd7 chore: split Algebra.Bounds and Algebra.Order.Pointwise (#16986) Delete `Algebra.Bounds` and `Algebra.Order.Pointwise`. Create * `Algebra.Order.Field.Pointwise` for lemmas about pointwise operations in linear ordered fields * `Algebra.Order.Group.CompleteLattice` for distributivity of group operations over supremum/infimum * `Algebra.Order.Group.Pointwise.Bounds` for boundedness of pointwise-defined sets * `Algebra.Order.Group.Pointwise.CompleteLattice` for lemmas about the supremum/infimum of pointwise-defined sets. ESTIMATED CHANGES Modified Mathlib.lean Deleted Mathlib/Algebra/Bounds.lean - theorem BddAbove.inv - theorem BddAbove.mul - theorem BddAbove.range_inv - theorem BddAbove.range_mul - theorem BddBelow.inv - theorem BddBelow.mul - theorem BddBelow.range_inv - theorem BddBelow.range_mul - theorem IsGLB.inv - theorem IsLUB.inv - theorem bddAbove_inv - theorem bddBelow_inv - theorem ciInf_div - theorem ciInf_mul - theorem ciSup_div - theorem ciSup_mul - theorem isGLB_inv' - theorem isGLB_inv - theorem isLUB_inv' - theorem isLUB_inv - theorem mul_ciInf - theorem mul_ciSup - theorem mul_mem_lowerBounds_mul - theorem mul_mem_upperBounds_mul - theorem subset_lowerBounds_mul - theorem subset_upperBounds_mul Modified Mathlib/Algebra/Order/CompleteField.lean Added Mathlib/Algebra/Order/Field/Pointwise.lean + theorem LinearOrderedField.smul_Icc + theorem LinearOrderedField.smul_Ici + theorem LinearOrderedField.smul_Ico + theorem LinearOrderedField.smul_Iic + theorem LinearOrderedField.smul_Iio + theorem LinearOrderedField.smul_Ioc + theorem LinearOrderedField.smul_Ioi + theorem LinearOrderedField.smul_Ioo Added Mathlib/Algebra/Order/Group/CompleteLattice.lean + theorem ciInf_div + theorem ciInf_mul + theorem ciSup_div + theorem ciSup_mul + theorem mul_ciInf + theorem mul_ciSup Added Mathlib/Algebra/Order/Group/Pointwise/Bounds.lean + theorem BddAbove.inv + theorem BddAbove.mul + theorem BddAbove.range_inv + theorem BddAbove.range_mul + theorem BddBelow.inv + theorem BddBelow.mul + theorem BddBelow.range_inv + theorem BddBelow.range_mul + theorem IsGLB.inv + theorem IsLUB.inv + theorem bddAbove_inv + theorem bddBelow_inv + theorem isGLB_inv' + theorem isGLB_inv + theorem isLUB_inv' + theorem isLUB_inv + theorem mul_mem_lowerBounds_mul + theorem mul_mem_upperBounds_mul + theorem subset_lowerBounds_mul + theorem subset_upperBounds_mul Added Mathlib/Algebra/Order/Group/Pointwise/CompleteLattice.lean + theorem csInf_div + theorem csInf_inv + theorem csInf_mul + theorem csInf_one + theorem csSup_div + theorem csSup_inv + theorem csSup_mul + theorem csSup_one + theorem sInf_div + theorem sInf_inv + theorem sInf_mul + theorem sInf_one + theorem sSup_div + theorem sSup_inv + theorem sSup_mul + theorem sSup_one Deleted Mathlib/Algebra/Order/Pointwise.lean - theorem LinearOrderedField.smul_Icc - theorem LinearOrderedField.smul_Ici - theorem LinearOrderedField.smul_Ico - theorem LinearOrderedField.smul_Iic - theorem LinearOrderedField.smul_Iio - theorem LinearOrderedField.smul_Ioc - theorem LinearOrderedField.smul_Ioi - theorem LinearOrderedField.smul_Ioo - theorem csInf_div - theorem csInf_inv - theorem csInf_mul - theorem csInf_one - theorem csSup_div - theorem csSup_inv - theorem csSup_mul - theorem csSup_one - theorem sInf_div - theorem sInf_inv - theorem sInf_mul - theorem sInf_one - theorem sSup_div - theorem sSup_inv - theorem sSup_mul - theorem sSup_one Modified Mathlib/Data/Real/Archimedean.lean Modified Mathlib/MeasureTheory/Constructions/HaarToSphere.lean 2024-09-26 00:13:21 3874c4e feat: generalize normed instances on `UniformSpace.Completion` (#17059) Notably, `NormedSpace.to_uniformContinuousConstSMul` is generalized to `BoundedSMul` on `PseudoMetricSpace`s, relaxing the scalar considerably from normed fields. ESTIMATED CHANGES Modified Mathlib/Analysis/Normed/Module/Completion.lean Modified Mathlib/Analysis/Normed/MulAction.lean Modified Mathlib/Analysis/NormedSpace/PiTensorProduct/InjectiveSeminorm.lean Modified Mathlib/Topology/MetricSpace/Algebra.lean Modified Mathlib/Topology/MetricSpace/Completion.lean 2024-09-26 00:03:37 4e3fd1a chore: update Mathlib dependencies 2024-09-25 (#17143) This PR updates the Mathlib dependencies. ESTIMATED CHANGES Modified lake-manifest.json 2024-09-25 22:30:40 34e653f chore(Condensed): shorten some names (#17075) ESTIMATED CHANGES Modified Mathlib/Condensed/Discrete/LocallyConstant.lean 2024-09-25 21:17:42 88787b2 feat(FieldTheory/Minpoly): remove `IsIntegral` condition for lemmas (#17080) Remove `IsIntegral` condition for `minpoly.add_algebraMap` and `minpoly.sub_algebraMap`. ESTIMATED CHANGES Modified Mathlib/FieldTheory/Minpoly/Field.lean +/- theorem minpoly.add_algebraMap +/- theorem minpoly.sub_algebraMap Modified Mathlib/NumberTheory/Cyclotomic/PrimitiveRoots.lean 2024-09-25 20:50:00 691fdda chore(Analysis/InnerProductSpace): weaken assumptions to `SeminormedAddCommGroup` (#17007) replace the assumption `NormedAddCommGroup` to `SemiNormedAddCommGroup` in various places. motivation: with the weakened assumption the results apply to `InnerProductSpace` without `definite` assumption. This is suggested in #16707, and continues from #14024. ESTIMATED CHANGES Modified Mathlib/Analysis/InnerProductSpace/Basic.lean +/- theorem isBoundedBilinearMap_inner Modified Mathlib/Analysis/InnerProductSpace/Symmetric.lean Modified Mathlib/Analysis/Normed/Module/Completion.lean 2024-09-25 19:13:54 15dec28 feat: `Mᴴ * M = 1` when `M := a.toBasis.toMatrix b` (#17136) This partially generalizes an existing result to work when the indices are different. ESTIMATED CHANGES Modified Mathlib/Analysis/InnerProductSpace/PiL2.lean + theorem OrthonormalBasis.toMatrix_orthonormalBasis_conjTranspose_mul_self + theorem OrthonormalBasis.toMatrix_orthonormalBasis_self_mul_conjTranspose Modified Mathlib/Data/Matrix/ColumnRowPartitioned.lean Modified Mathlib/LinearAlgebra/Matrix/NonsingularInverse.lean + theorem Matrix.mul_eq_one_comm_of_equiv 2024-09-25 15:52:12 5f551d9 chore(Set/Image): rename 2 lemmas (#17134) Use `existsUnique`, not `exists_unique` in 2 lemmas ESTIMATED CHANGES Modified Mathlib/Data/Fintype/Basic.lean Modified Mathlib/Data/Set/Image.lean - theorem Function.Injective.exists_unique_of_mem_range + theorem Function.Injective.mem_range_iff_existsUnique - theorem Function.Injective.mem_range_iff_exists_unique Modified Mathlib/NumberTheory/NumberField/CanonicalEmbedding/FundamentalCone.lean 2024-09-25 14:12:15 a95aae1 feat(CategoryTheory/Limits): dualize Pi.isoLimit to Sigma.isoColimit (#17076) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Limits/Shapes/Products.lean + def CategoryTheory.Limits.Sigma.cocone + def CategoryTheory.Limits.Sigma.isoColimit + theorem CategoryTheory.Limits.Sigma.ι_isoColimit_hom + theorem CategoryTheory.Limits.Sigma.ι_isoColimit_inv + def CategoryTheory.Limits.coproductIsCoproduct' 2024-09-25 13:57:04 be952f8 feat(Dynamics.TopologicalEntropy): add definition of topological entropy by nets (#16162) Third PR in a sequence to implement the notion of topological entropy for maps using Bowen-Dinaburg's formalism. This file introduces a definition of topological entropy using nets. - [x] Dynamical uniformities - [x] Topological entropy via covers - [x] Topological entropy via nets - [ ] Behaviour under semiconjugacy - [ ] Behaviour for subsets and unions - [ ] Behaviour under products - [ ] Full shift The main file is `Dynamics.TopologicalEntropy.NetEntropy`. It is slightly shorter and less technical than the previous one. There are also a few modifications to `Dynamics.TopologicalEntropy.CoverEntropy` (some golf, and renamed a lemma to enable dot notation -- which is quite convenient here). Paging @pitmonticone @sgouezel ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Dynamics/TopologicalEntropy/CoverEntropy.lean - theorem Dynamics.IsDynCoverOf.coverEntropyEnt_le_log_card_div + theorem Dynamics.IsDynCoverOf.coverEntropyEntourage_le_log_card_div + theorem Dynamics.IsDynCoverOf.coverMincard_le_card - theorem Dynamics.coverEntropyEnt_antitone - theorem Dynamics.coverEntropyEnt_empty - theorem Dynamics.coverEntropyEnt_finite_of_isCompact_invariant - theorem Dynamics.coverEntropyEnt_le_coverEntropy - theorem Dynamics.coverEntropyEnt_le_coverEntropyInfEnt - theorem Dynamics.coverEntropyEnt_le_log_coverMincard_div - theorem Dynamics.coverEntropyEnt_nonneg - theorem Dynamics.coverEntropyEnt_univ + theorem Dynamics.coverEntropyEntourage_antitone + theorem Dynamics.coverEntropyEntourage_empty + theorem Dynamics.coverEntropyEntourage_finite_of_isCompact_invariant + theorem Dynamics.coverEntropyEntourage_le_coverEntropy + theorem Dynamics.coverEntropyEntourage_le_coverEntropyInfEntourage + theorem Dynamics.coverEntropyEntourage_le_log_coverMincard_div + theorem Dynamics.coverEntropyEntourage_nonneg + theorem Dynamics.coverEntropyEntourage_univ - theorem Dynamics.coverEntropyInfEnt_antitone - theorem Dynamics.coverEntropyInfEnt_empty - theorem Dynamics.coverEntropyInfEnt_le_coverEntropyEnt - theorem Dynamics.coverEntropyInfEnt_le_coverEntropyInf - theorem Dynamics.coverEntropyInfEnt_nonneg - theorem Dynamics.coverEntropyInfEnt_univ + theorem Dynamics.coverEntropyInfEntourage_antitone + theorem Dynamics.coverEntropyInfEntourage_empty + theorem Dynamics.coverEntropyInfEntourage_le_coverEntropyEntourage + theorem Dynamics.coverEntropyInfEntourage_le_coverEntropyInf + theorem Dynamics.coverEntropyInfEntourage_nonneg + theorem Dynamics.coverEntropyInfEntourage_univ - theorem Dynamics.coverMincard_le_card Added Mathlib/Dynamics/TopologicalEntropy/NetEntropy.lean + theorem Dynamics.IsDynNetIn.card_le_card_of_isDynCoverOf + theorem Dynamics.IsDynNetIn.card_le_netMaxcard + theorem Dynamics.IsDynNetIn.of_entourage_subset + theorem Dynamics.IsDynNetIn.of_le + def Dynamics.IsDynNetIn + theorem Dynamics.coverEntropyEntourage_le_netEntropyEntourage + theorem Dynamics.coverEntropyInfEntourage_le_netEntropyInfEntourage + theorem Dynamics.coverEntropyInf_eq_iSup_basis_netEntropyInfEntourage + theorem Dynamics.coverEntropyInf_eq_iSup_netEntropyInfEntourage + theorem Dynamics.coverEntropy_eq_iSup_basis_netEntropyEntourage + theorem Dynamics.coverEntropy_eq_iSup_netEntropyEntourage + theorem Dynamics.coverMincard_le_netMaxcard + theorem Dynamics.isDynNetIn_empty + theorem Dynamics.isDynNetIn_singleton + theorem Dynamics.log_netMaxcard_nonneg + theorem Dynamics.netEntropyEntourage_antitone + theorem Dynamics.netEntropyEntourage_empty + theorem Dynamics.netEntropyEntourage_le_coverEntropy + theorem Dynamics.netEntropyEntourage_le_coverEntropyEntourage + theorem Dynamics.netEntropyEntourage_nonneg + theorem Dynamics.netEntropyEntourage_univ + theorem Dynamics.netEntropyInfEntourage_antitone + theorem Dynamics.netEntropyInfEntourage_empty + theorem Dynamics.netEntropyInfEntourage_le_coverEntropyInf + theorem Dynamics.netEntropyInfEntourage_le_coverEntropyInfEntourage + theorem Dynamics.netEntropyInfEntourage_le_netEntropyEntourage + theorem Dynamics.netEntropyInfEntourage_nonneg + theorem Dynamics.netEntropyInfEntourage_univ + theorem Dynamics.netMaxcard_antitone + theorem Dynamics.netMaxcard_empty + theorem Dynamics.netMaxcard_eq_zero_iff + theorem Dynamics.netMaxcard_finite_iff + theorem Dynamics.netMaxcard_infinite_iff + theorem Dynamics.netMaxcard_le_coverMincard + theorem Dynamics.netMaxcard_monotone_time + theorem Dynamics.netMaxcard_univ + theorem Dynamics.netMaxcard_zero + theorem Dynamics.one_le_netMaxcard_iff 2024-09-25 13:34:40 c7dedd6 feat: the docPrime linter (#16694) This syntax linter emits a warning on declarations whose name ends with a `'` and that have no doc-string. By default, the linter is * `on` on `mathlib` and * `off` on projects depending on mathlib. The file `scripts/no_lints_prime_decls.txt` contains the current exceptions. The exceptions need to be managed manually by design: the expectation is that, once the linter starts, the nolints file should only decrease and never increase. In particular, after the linter flags a declaration, simply adding manually an exception is *not enough* for CI to be successful. There needs to be a change in the file with the exception (or upstream from it), since otherwise `lake` will replay the `olean`s and keep emitting the initial warning. The expectation is that the change will be the addition of a doc-string. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Init.lean Modified Mathlib/Tactic.lean Added Mathlib/Tactic/Linter/DocPrime.lean + def Mathlib.Linter.DocPrime.docPrimeLinter Modified lakefile.lean Added scripts/no_lints_prime_decls.txt Added test/DocPrime.lean + theorem ABC.thm_no_doc1' + def X' + def X'X + theorem X.thm_no_doc2' + def Y'.{u} + def def_no_doc' + theorem thm_no_doc' + theorem thm_with_attr_no_doc' 2024-09-25 13:22:45 ecabe92 chore(Symmetric/FundamentalTheorem): omit unused `Fintype` assumption (#17126) Found by the linter in #10235. ESTIMATED CHANGES Modified Mathlib/RingTheory/MvPolynomial/Symmetric/FundamentalTheorem.lean 2024-09-25 12:08:02 2ab87b4 doc: Improve documentation of ordinal-indexed approximations (#16406) As mentioned in #15522, the documentation uses heavily the wording "ordinal approximation", which suggests that ordinals are approximated. This PR changes it to "ordinal-indexed approximation" and highlights the indexed nature of ordinals in various places. It also fixes some apparent then vs than errors. I appreciate any suggestions to further improve the documentation and hints for spelling mistakes. [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) ESTIMATED CHANGES Modified Mathlib/SetTheory/Ordinal/FixedPointApproximants.lean 2024-09-25 09:39:53 4591e55 feat(CategoryTheory): simps for `conjugateEquiv` plus computable `conjugateIsoEquiv` (#17108) The term `conjugateIsoEquiv` is redefined to make it computable, cutting asIso and explicitly constructing the required inverse isomorphisms. In parallel, additional simps are added to `conjugateEquiv` so that we can later use `conjugateEquiv` and `conjugateIsoEquiv` instead of `Adjunction.natTransEquiv` and `Adjunction.natIsoEquiv` (see #17113). ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Adjunction/Mates.lean + def CategoryTheory.conjugateIsoEquiv 2024-09-25 08:58:26 7c93f86 feat: `match_scalars` and `module` tactics (#16593) This PR contributes two new tactics `match_scalars` and `module`. Given a goal which is an equality in a type `M` (with `M` an `AddCommMonoid`), the `match_scalars` tactic parses the LHS and RHS of the goal as linear combinations of `M`-atoms over some semiring `R`, and reduces the goal to the respective equalities of the `R`-coefficients of each atom. For example, this produces the goal `⊢ a * 1 + b * 1 = (b + a) * 1`: ```lean example [AddCommMonoid M] [Semiring R] [Module R M] (a b : R) (x : M) : a • x + b • x = (b + a) • x := by match_scalars ``` This produces the two goals `⊢ a * (a * 1) + b * (b * 1) = 1` (from the `x` atom) and `⊢ a * -(b * 1) + b * (a * 1) = 0` (from the `y` atom): ```lean example [AddCommGroup M] [Ring R] [Module R M] (a b : R) (x : M) : a • (a • x - b • y) + (b • a • y + b • b • x) = x := by match_scalars ``` The `module` tactic runs the `match_scalars` tactic and then runs the `ring` tactic on each of the coefficient-wise equalities which are created, failing if this does not resolve them. For example, it solves the following goals: ```lean example [AddCommMonoid M] [CommSemiring R] [Module R M] (a b : R) (x : M) : a • x + b • x = (b + a) • x := by module example [AddCommMonoid M] [Field K] [CharZero K] [Module K M] (x : M) : (2:K)⁻¹ • x + (3:K)⁻¹ • x + (6:K)⁻¹ • x = x := by module example [AddCommGroup M] [CommRing R] [Module R M] (a : R) (v w : M) : (1 + a ^ 2) • (v + w) - a • (a • v - w) = v + (1 + a + a ^ 2) • w := by module ``` The scalar type `R` in these tactics is not pre-determined: instead it starts as `ℕ` (when each atom is initially given a scalar `(1:ℕ)`) and gets bumped up into bigger semirings when such semirings are encountered. However, to permit this, it is assumed that there is a "linear order" on all the semirings which appear in the expression: for any two semirings `R` and `S` which occur, we have either `Algebra R S` or `Algebra S R`). ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Tactic.lean Added Mathlib/Tactic/Module.lean + theorem Mathlib.Tactic.Module.NF.add_eq_eval + theorem Mathlib.Tactic.Module.NF.add_eq_eval₁ + theorem Mathlib.Tactic.Module.NF.add_eq_eval₂ + theorem Mathlib.Tactic.Module.NF.add_eq_eval₃ + def Mathlib.Tactic.Module.NF.algebraMap + theorem Mathlib.Tactic.Module.NF.atom_eq_eval + def Mathlib.Tactic.Module.NF.cons + theorem Mathlib.Tactic.Module.NF.eq_cons_cons + theorem Mathlib.Tactic.Module.NF.eq_cons_const + theorem Mathlib.Tactic.Module.NF.eq_const_cons + theorem Mathlib.Tactic.Module.NF.eq_of_eval_eq_eval + def Mathlib.Tactic.Module.NF.eval + theorem Mathlib.Tactic.Module.NF.eval_algebraMap + theorem Mathlib.Tactic.Module.NF.eval_cons + theorem Mathlib.Tactic.Module.NF.eval_neg + theorem Mathlib.Tactic.Module.NF.eval_smul + theorem Mathlib.Tactic.Module.NF.neg_eq_eval + theorem Mathlib.Tactic.Module.NF.smul_apply + theorem Mathlib.Tactic.Module.NF.smul_eq_eval + theorem Mathlib.Tactic.Module.NF.sub_eq_eval + theorem Mathlib.Tactic.Module.NF.sub_eq_eval₁ + theorem Mathlib.Tactic.Module.NF.sub_eq_eval₂ + theorem Mathlib.Tactic.Module.NF.sub_eq_eval₃ + theorem Mathlib.Tactic.Module.NF.zero_eq_eval + theorem Mathlib.Tactic.Module.NF.zero_sub_eq_eval + def Mathlib.Tactic.Module.NF + def Mathlib.Tactic.Module.algebraMapThms + def Mathlib.Tactic.Module.matchScalars + def Mathlib.Tactic.Module.matchScalarsAux + def Mathlib.Tactic.Module.postprocess + def Mathlib.Tactic.Module.qNF.add + def Mathlib.Tactic.Module.qNF.matchRings + def Mathlib.Tactic.Module.qNF.mkAddProof + def Mathlib.Tactic.Module.qNF.mkSubProof + def Mathlib.Tactic.Module.qNF.onScalar + def Mathlib.Tactic.Module.qNF.sub + def Mathlib.Tactic.Module.qNF.toNF Modified Mathlib/Tactic/Ring/RingNF.lean Added test/module.lean 2024-09-25 08:40:04 1fc8e52 feat (MeasureTheory): Integrability and integral when the domain is empty. (#15459) - Add `Integrable.of_isEmpty`. - Add `integral_of_isEmpty`. ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Function/L1Space.lean + theorem MeasureTheory.Integrable.of_isEmpty Modified Mathlib/MeasureTheory/Integral/Bochner.lean + theorem MeasureTheory.integral_of_isEmpty 2024-09-25 08:19:39 f8769ab feat(MeasureTheory): generalize instance `ContinuousInv.measurableInv` (#17082) Weaken the hypotheses of the instance `ContinuousInv.measurableInv` and change its name (it was called `TopologicalGroup.measurableInv` before). ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Constructions/BorelSpace/Basic.lean 2024-09-25 02:33:10 f7eb186 fix: remove non-breaking-space (#17116) Replace more non-breaking-spaces with regular spaces ESTIMATED CHANGES Modified Mathlib/Condensed/Discrete/LocallyConstant.lean 2024-09-25 02:09:34 3c4370e fix: do not rely on the definition for List.ofFn (#17118) ESTIMATED CHANGES Modified Mathlib/AlgebraicGeometry/EllipticCurve/Projective.lean +/- theorem WeierstrassCurve.Projective.smul_fin3 Modified Mathlib/Combinatorics/Optimization/ValuedCSP.lean Modified Mathlib/Computability/Primrec.lean Modified Mathlib/LinearAlgebra/CrossProduct.lean Modified Mathlib/LinearAlgebra/Dimension/RankNullity.lean Modified Mathlib/LinearAlgebra/ExteriorAlgebra/Basic.lean +/- theorem ExteriorAlgebra.ιMulti_zero_apply Modified Mathlib/LinearAlgebra/TensorAlgebra/ToTensorPower.lean 2024-09-25 00:50:38 9910eca chore: bump dependencies and adapt to updated namespaces (#17117) ESTIMATED CHANGES Modified Mathlib/Tactic/CategoryTheory/Elementwise.lean Modified Mathlib/Tactic/Linter/Lint.lean + def Batteries.Tactic.Lint.deprecatedNoSince + def Batteries.Tactic.Lint.structureInType - def Std.Tactic.Lint.deprecatedNoSince - def Std.Tactic.Lint.structureInType Modified Mathlib/Tactic/Widget/Calc.lean Modified lake-manifest.json 2024-09-25 00:06:46 9fbb5fe chore: remove autoImplicit tech debt metric (#17107) There are two remaining non-test files which use autoImplicit, and both have purposefully been left with it. Thus, this metric has served its purpose, and can be removed from the list. ESTIMATED CHANGES Modified scripts/technical-debt-metrics.sh 2024-09-24 21:52:23 652d1bd chore(Algebra.Lie): do not always coerce a `LieSubmodule` to a `Submodule` 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. ESTIMATED CHANGES Modified Mathlib/Algebra/Lie/Abelian.lean Modified Mathlib/Algebra/Lie/CartanExists.lean Modified Mathlib/Algebra/Lie/Derivation/Killing.lean +/- theorem LieDerivation.IsKilling.killingForm_restrict_range_ad_nondegenerate Modified Mathlib/Algebra/Lie/DirectSum.lean Modified Mathlib/Algebra/Lie/EngelSubalgebra.lean Modified Mathlib/Algebra/Lie/IdealOperations.lean Modified Mathlib/Algebra/Lie/Nilpotent.lean Modified Mathlib/Algebra/Lie/OfAssociative.lean Modified Mathlib/Algebra/Lie/Semisimple/Basic.lean Modified Mathlib/Algebra/Lie/Solvable.lean Modified Mathlib/Algebra/Lie/Subalgebra.lean Modified Mathlib/Algebra/Lie/Submodule.lean +/- theorem LieModuleHom.coeSubmodule_range +/- theorem LieModuleHom.coe_range +/- theorem LieSubmodule.comap_incl_self +/- theorem LieSubmodule.ker_incl +/- theorem LieSubmodule.range_incl Modified Mathlib/Algebra/Lie/TensorProduct.lean Modified Mathlib/Algebra/Lie/TraceForm.lean Modified Mathlib/Algebra/Lie/Weights/Basic.lean Modified Mathlib/Algebra/Lie/Weights/Cartan.lean Modified Mathlib/Algebra/Lie/Weights/Chain.lean Modified Mathlib/Algebra/Lie/Weights/Killing.lean Modified Mathlib/Algebra/Lie/Weights/Linear.lean 2024-09-24 21:10:20 9c5f431 feat(NumberTheory): add converse of Lucas test for primes (#16834) Add the converse of the existing `lucas_primality` theorem, and combine them into a `lucas_primality_iff` theorem Coauthored by @vihdzp ESTIMATED CHANGES Modified Mathlib/NumberTheory/LucasPrimality.lean + theorem lucas_primality_iff + theorem reverse_lucas_primality 2024-09-24 20:52:48 3846483 chore (PrimeSpectrum): `RingHom.primeComap` and API (#15114) We break out the function `PrimeSpectrum.comap.toFun` into `RingHom.primeComap` and copy the API for `PrimeSpectrum.comap` independent of the Zariski topology into `RingTheory.PrimeSpectrum` for `primeComap`. We then feed that API back into the proofs for `comap` directly. ESTIMATED CHANGES Modified Mathlib/AlgebraicGeometry/PrimeSpectrum/Basic.lean - theorem PrimeSpectrum.preimage_comap_zeroLocus_aux Modified Mathlib/RingTheory/PrimeSpectrum.lean + theorem PrimeSpectrum.localization_specComap_injective + theorem PrimeSpectrum.localization_specComap_range + theorem PrimeSpectrum.preimage_specComap_zeroLocus + theorem PrimeSpectrum.preimage_specComap_zeroLocus_aux + theorem PrimeSpectrum.specComap_asIdeal + theorem PrimeSpectrum.specComap_comp + theorem PrimeSpectrum.specComap_comp_apply + theorem PrimeSpectrum.specComap_id + theorem PrimeSpectrum.specComap_injective_of_surjective + theorem image_specComap_zeroLocus_eq_zeroLocus_comap + theorem range_specComap_of_surjective 2024-09-24 17:42:50 6d06386 feat(RingTheory/DedekindDomain): `IsDedekindDomainDvr` implies `IsDedekindDomain` (#16631) Prove that `IsDedekindDomainDvr` implies `IsDedekindDomain`, i.e., if an integral domain is Noetherian, and the localization at every nonzero prime is a discrete valuation ring, then it is a Dedekind domain. - [x] depends on: #16558 ESTIMATED CHANGES Modified Mathlib/RingTheory/DedekindDomain/Dvr.lean - theorem IsDedekindDomain.isDedekindDomainDvr - structure IsDedekindDomainDvr 2024-09-24 16:18:41 c7d6577 fix: do not break multiplication notation (#17101) Without this change, `import Mathlib` breaks `_*_` as notation for `_ * _`. [Zulip thread](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/Bad.20TopCat.2EPresheaf.2Epushforward.20notation/near/472520318) ESTIMATED CHANGES Modified Mathlib/Topology/Sheaves/Functors.lean Modified Mathlib/Topology/Sheaves/Presheaf.lean Modified Mathlib/Topology/Sheaves/Skyscraper.lean Modified Mathlib/Topology/Sheaves/Stalks.lean 2024-09-24 16:00:39 067644f chore: rename Function.comp.assoc to Function.comp_assoc (#17098) ESTIMATED CHANGES Modified Mathlib/Algebra/Category/ModuleCat/Free.lean Modified Mathlib/Algebra/Module/PID.lean Modified Mathlib/Algebra/Order/Rearrangement.lean Modified Mathlib/AlgebraicGeometry/AffineScheme.lean Modified Mathlib/Analysis/Calculus/ContDiff/Bounds.lean Modified Mathlib/Analysis/Calculus/FDeriv/Equiv.lean Modified Mathlib/Analysis/Calculus/IteratedDeriv/Defs.lean Modified Mathlib/Analysis/Convex/Intrinsic.lean Modified Mathlib/Analysis/SpecialFunctions/Complex/Arg.lean Modified Mathlib/Combinatorics/HalesJewett.lean Modified Mathlib/Data/Fin/Tuple/Sort.lean Modified Mathlib/Dynamics/Ergodic/MeasurePreserving.lean Modified Mathlib/Geometry/Manifold/LocalInvariantProperties.lean Modified Mathlib/Geometry/Manifold/MFDeriv/Atlas.lean Modified Mathlib/Geometry/Manifold/SmoothManifoldWithCorners.lean Modified Mathlib/LinearAlgebra/Alternating/Basic.lean Modified Mathlib/LinearAlgebra/Determinant.lean Modified Mathlib/LinearAlgebra/LinearDisjoint.lean Modified Mathlib/LinearAlgebra/Matrix/Block.lean Modified Mathlib/LinearAlgebra/RootSystem/Hom.lean Modified Mathlib/Logic/Function/Basic.lean Modified Mathlib/Logic/Function/Defs.lean - theorem Function.comp.assoc + theorem Function.comp_assoc Modified Mathlib/MeasureTheory/Function/Jacobian.lean Modified Mathlib/ModelTheory/Basic.lean Modified Mathlib/ModelTheory/DirectLimit.lean Modified Mathlib/ModelTheory/ElementaryMaps.lean Modified Mathlib/ModelTheory/Syntax.lean Modified Mathlib/Topology/Algebra/InfiniteSum/Basic.lean Modified Mathlib/Topology/Category/CompHaus/Projective.lean Modified Mathlib/Topology/Category/Profinite/Nobeling.lean Modified Mathlib/Topology/Category/Profinite/Projective.lean Modified Mathlib/Topology/Category/TopCat/EffectiveEpi.lean Modified Mathlib/Topology/ExtremallyDisconnected.lean Modified Mathlib/Topology/Homeomorph.lean 2024-09-24 15:04:44 b479ce6 chore(Mathlib/RingTheory/LocalProperties): split LocalProperties.lean (#16879) Split the section on local properties in general and the properties that satisfy local properties in `LocalProperties.lean` into separate files. See the discussions [here](https://github.com/leanprover-community/mathlib4/pull/16558#discussion_r1761381528). ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/AlgebraicGeometry/Morphisms/ClosedImmersion.lean Modified Mathlib/AlgebraicGeometry/Morphisms/Preimmersion.lean Modified Mathlib/AlgebraicGeometry/Morphisms/RingHomProperties.lean Modified Mathlib/AlgebraicGeometry/Properties.lean Modified Mathlib/RingTheory/Ideal/Norm.lean Modified Mathlib/RingTheory/IntegralClosure/IntegralRestrict.lean Modified Mathlib/RingTheory/IntegralClosure/IntegrallyClosed.lean - theorem IsIntegrallyClosed.of_localization_maximal Deleted Mathlib/RingTheory/LocalProperties.lean - theorem Ideal.eq_of_localization_maximal - theorem Ideal.le_of_localization_maximal - theorem IsLocalization.exists_smul_mem_of_mem_adjoin - theorem IsLocalization.lift_mem_adjoin_finsetIntegerMultiple - theorem IsLocalization.smul_mem_finsetIntegerMultiple_span - def LocalizationPreserves - theorem Module.Finite_of_isLocalization - def OfLocalizationMaximal - def RingHom.ContainsIdentities - theorem RingHom.HoldsForLocalizationAway.containsIdentities - theorem RingHom.HoldsForLocalizationAway.of_bijective - def RingHom.HoldsForLocalizationAway - theorem RingHom.LocalizationPreserves.away - def RingHom.LocalizationPreserves - def RingHom.OfLocalizationFiniteSpan - def RingHom.OfLocalizationFiniteSpanTarget - def RingHom.OfLocalizationPrime - def RingHom.OfLocalizationSpan - theorem RingHom.OfLocalizationSpanTarget.ofIsLocalization - def RingHom.OfLocalizationSpanTarget - theorem RingHom.PropertyIsLocal.HoldsForLocalizationAway - theorem RingHom.PropertyIsLocal.ofLocalizationSpan - theorem RingHom.PropertyIsLocal.respectsIso - structure RingHom.PropertyIsLocal - theorem RingHom.StableUnderComposition.stableUnderCompositionWithLocalizationAway - def RingHom.StableUnderCompositionWithLocalizationAway - theorem RingHom.ofLocalizationSpanTarget_iff_finite - theorem RingHom.ofLocalizationSpan_iff_finite - theorem eq_zero_of_localization - theorem finiteType_ofLocalizationSpan - theorem finite_ofLocalizationSpan - theorem ideal_eq_bot_of_localization' - theorem ideal_eq_bot_of_localization - theorem isIntegrallyClosed_ofLocalizationMaximal - theorem isReduced_ofLocalizationMaximal - theorem localizationPreserves_surjective - theorem localization_away_map_finite - theorem localization_away_map_finiteType - theorem localization_finite - theorem localization_finiteType - theorem localization_isReduced - theorem multiple_mem_adjoin_of_mem_localization_adjoin - theorem multiple_mem_span_of_mem_localization_span - theorem surjective_localRingHom_of_surjective - theorem surjective_ofLocalizationSpan - theorem surjective_respectsIso Added Mathlib/RingTheory/LocalProperties/Basic.lean + theorem Ideal.eq_of_localization_maximal + theorem Ideal.le_of_localization_maximal + def LocalizationPreserves + def OfLocalizationMaximal + def RingHom.ContainsIdentities + theorem RingHom.HoldsForLocalizationAway.containsIdentities + theorem RingHom.HoldsForLocalizationAway.of_bijective + def RingHom.HoldsForLocalizationAway + theorem RingHom.LocalizationPreserves.away + def RingHom.LocalizationPreserves + def RingHom.OfLocalizationFiniteSpan + def RingHom.OfLocalizationFiniteSpanTarget + def RingHom.OfLocalizationPrime + def RingHom.OfLocalizationSpan + theorem RingHom.OfLocalizationSpanTarget.ofIsLocalization + def RingHom.OfLocalizationSpanTarget + theorem RingHom.PropertyIsLocal.HoldsForLocalizationAway + theorem RingHom.PropertyIsLocal.ofLocalizationSpan + theorem RingHom.PropertyIsLocal.respectsIso + structure RingHom.PropertyIsLocal + theorem RingHom.StableUnderComposition.stableUnderCompositionWithLocalizationAway + def RingHom.StableUnderCompositionWithLocalizationAway + theorem RingHom.ofLocalizationSpanTarget_iff_finite + theorem RingHom.ofLocalizationSpan_iff_finite + theorem eq_zero_of_localization + theorem ideal_eq_bot_of_localization' + theorem ideal_eq_bot_of_localization Added Mathlib/RingTheory/LocalProperties/IntegrallyClosed.lean + theorem IsIntegrallyClosed.of_localization_maximal + theorem isIntegrallyClosed_ofLocalizationMaximal Added Mathlib/RingTheory/LocalProperties/Reduced.lean + theorem isReduced_localizationPreserves + theorem isReduced_ofLocalizationMaximal Modified Mathlib/RingTheory/Localization/Finiteness.lean Modified Mathlib/RingTheory/RingHom/Finite.lean + theorem IsLocalization.smul_mem_finsetIntegerMultiple_span + theorem Module.Finite_of_isLocalization + theorem RingHom.finite_localizationPreserves + theorem RingHom.finite_ofLocalizationSpan + theorem RingHom.localization_away_map_finite + theorem multiple_mem_adjoin_of_mem_localization_adjoin + theorem multiple_mem_span_of_mem_localization_span Modified Mathlib/RingTheory/RingHom/FiniteType.lean + theorem RingHom.IsLocalization.exists_smul_mem_of_mem_adjoin + theorem RingHom.IsLocalization.lift_mem_adjoin_finsetIntegerMultiple + theorem RingHom.finiteType_localizationPreserves + theorem RingHom.finiteType_ofLocalizationSpan + theorem RingHom.localization_away_map_finiteType Modified Mathlib/RingTheory/RingHom/Surjective.lean + theorem RingHom.surjective_localRingHom_of_surjective + theorem RingHom.surjective_localizationPreserves 2024-09-24 13:23:52 60ff730 chore(.github): add cross references between autogenerated files and master file (#17090) ESTIMATED CHANGES Modified .github/build.in.yml Modified .github/workflows/bors.yml Modified .github/workflows/build.yml Modified .github/workflows/build_fork.yml Modified .github/workflows/mk_build_yml.sh 2024-09-24 12:27:38 a6954b3 chore(Order/Group): golf (#17079) ... using lemmas like `monotone_int_of_le_succ` ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Group/Basic.lean +/- theorem zpow_mono_right +/- theorem zpow_right_strictAnti +/- theorem zpow_right_strictMono 2024-09-24 12:27:37 c01c9ce feat(CategoryTheory): The whiskering functor preserves identity and composition of functors (#16971) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Whiskering.lean + def CategoryTheory.whiskeringLeftObjCompIso + def CategoryTheory.whiskeringLeftObjIdIso + theorem CategoryTheory.whiskeringLeft_obj_comp + theorem CategoryTheory.whiskeringLeft_obj_id + def CategoryTheory.whiskeringRightObjCompIso + theorem CategoryTheory.whiskeringRight_obj_comp + theorem CategoryTheory.whiskeringRight_obj_id + def CategoryTheory.wiskeringRightObjIdIso 2024-09-24 11:40:12 70a5565 refactor: Make `mem_ker` be simp (#17021) Do this for `MonoidHom.mem_ker`, `MonoidHom.mem_mker`, `RingHom.mem_ker`. This matches `LinearMap.mem_ker`. From LeanAPAP ESTIMATED CHANGES Modified Mathlib/Algebra/Category/Grp/Kernels.lean Modified Mathlib/Algebra/Group/Subgroup/Basic.lean +/- theorem MonoidHom.mem_ker Modified Mathlib/Algebra/Group/Submonoid/Operations.lean +/- theorem MonoidHom.mem_mker Modified Mathlib/Algebra/Lie/Submodule.lean +/- theorem LieModuleHom.comp_ker_incl +/- theorem LieModuleHom.mem_ker Modified Mathlib/GroupTheory/Abelianization.lean Modified Mathlib/GroupTheory/PresentedGroup.lean Modified Mathlib/GroupTheory/QuotientGroup/Basic.lean Modified Mathlib/GroupTheory/Torsion.lean Modified Mathlib/RingTheory/Henselian.lean Modified Mathlib/RingTheory/Ideal/Maps.lean +/- theorem Ideal.RingHom.mem_ker Modified Mathlib/RingTheory/Ideal/QuotientOperations.lean Modified Mathlib/RingTheory/IsAdjoinRoot.lean Modified Mathlib/RingTheory/Kaehler/Basic.lean Modified Mathlib/RingTheory/Localization/Algebra.lean Modified Mathlib/RingTheory/Polynomial/Basic.lean Modified Mathlib/RingTheory/Smooth/Kaehler.lean 2024-09-24 09:50:41 9348dae chore(SetTheory/Ordinal/Arithmetic): deprecate `ne_iSup_iff_lt_iSup` (#16997) As Yaël [explains](https://github.com/leanprover-community/mathlib4/pull/15820#discussion_r1740447705), this is just an application of `LE.le.lt_iff_ne`. ESTIMATED CHANGES Modified Mathlib/SetTheory/Ordinal/Arithmetic.lean 2024-09-24 08:53:43 2d315a5 feat(CharP): `Int.cast` is injective on `Ico 0 p` (#17063) and generalise `Fin.charP` ESTIMATED CHANGES Modified Mathlib/Algebra/CharP/Defs.lean + theorem CharP.intCast_injOn_Ico Modified Mathlib/Data/Fin/Basic.lean +/- theorem Fin.natCast_self 2024-09-24 08:19:35 f9a6642 feat: a property satisfied almost everywhere is satisfied on a dense subset (#17055) A property satisfied almost everywhere is satisfied on a dense subset. ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Measure/OpenPos.lean + theorem MeasureTheory.Measure.dense_of_ae 2024-09-24 07:14:52 c15e46e chore(Monoid/Unbundled/Pow): cleanup (#17013) ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Monoid/Unbundled/Pow.lean +/- theorem Left.one_le_pow_of_le +/- theorem Left.pow_le_one_of_le +/- theorem Left.pow_lt_one_of_lt +/- theorem Right.pow_le_one_of_le +/- theorem Right.pow_lt_one_of_lt - theorem one_le_pow_of_one_le' +/- theorem one_lt_pow' - theorem pow_le_one' +/- theorem pow_le_pow_left' - theorem pow_lt_one' +/- theorem pow_lt_pow_right' + theorem pow_right_monotone +/- theorem pow_right_strictMono' 2024-09-24 07:14:50 18506a8 doc: typo in `properVAdd_iff_continuousVadd_ultrafilter_tendsto` (#17008) Just a typo in the doc. ESTIMATED CHANGES Modified Mathlib/Topology/Algebra/ProperAction.lean 2024-09-24 07:14:49 ac554e7 chore(Order/InitialSeg): `init` → `mem_range_of_rel` (#16994) We rename some `init` theorems that had very vague names beforehand, and we state them in terms of (the definitionally equal) `Set.range`. ESTIMATED CHANGES Modified Mathlib/Order/InitialSeg.lean + theorem InitialSeg.exists_eq_iff_rel - theorem InitialSeg.init - theorem InitialSeg.init_iff + theorem InitialSeg.mem_range_of_rel + theorem PrincipalSeg.exists_eq_iff_rel - theorem PrincipalSeg.init - theorem PrincipalSeg.init_iff + theorem PrincipalSeg.mem_range_of_rel Modified Mathlib/SetTheory/Ordinal/Arithmetic.lean Modified Mathlib/SetTheory/Ordinal/Basic.lean 2024-09-24 07:14:48 4d111f3 feat(Order/WellFounded): `StrictMono.not_bddAbove_range` (#16960) A strict monotonic function in an unbounded well-order has an unbounded range. ESTIMATED CHANGES Modified Mathlib/Order/SuccPred/Archimedean.lean - theorem StrictAnti.not_bddAbove_range - theorem StrictAnti.not_bddBelow_range + theorem StrictAnti.not_bddBelow_range_of_isPredArchimedean + theorem StrictAnti.not_bddBelow_range_of_isSuccArchimedean - theorem StrictMono.not_bddAbove_range + theorem StrictMono.not_bddAbove_range_of_isSuccArchimedean - theorem StrictMono.not_bddBelow_range + theorem StrictMono.not_bddBelow_range_of_isPredArchimedean Modified Mathlib/Order/WellFounded.lean + theorem StrictMono.not_bddAbove_range_of_wellFoundedLT + theorem StrictMono.not_bddBelow_range_of_wellFoundedGT 2024-09-24 06:31:29 30c481f chore: update name in copyrights (#17074) ESTIMATED CHANGES Modified Archive/Examples/IfNormalization/Statement.lean Modified Archive/Examples/IfNormalization/WithoutAesop.lean Modified Archive/Examples/MersennePrimes.lean Modified LongestPole/Main.lean Modified LongestPole/SpeedCenterJson.lean Modified Mathlib/Algebra/Category/AlgebraCat/Basic.lean Modified Mathlib/Algebra/Category/AlgebraCat/Limits.lean Modified Mathlib/Algebra/Category/FGModuleCat/Limits.lean Modified Mathlib/Algebra/Category/Grp/Adjunctions.lean Modified Mathlib/Algebra/Category/Grp/Biproducts.lean Modified Mathlib/Algebra/Category/Grp/Colimits.lean Modified Mathlib/Algebra/Category/Grp/Images.lean Modified Mathlib/Algebra/Category/Grp/Limits.lean Modified Mathlib/Algebra/Category/Grp/ZModuleEquivalence.lean Modified Mathlib/Algebra/Category/Grp/Zero.lean Modified Mathlib/Algebra/Category/ModuleCat/Adjunctions.lean Modified Mathlib/Algebra/Category/ModuleCat/Algebra.lean Modified Mathlib/Algebra/Category/ModuleCat/Biproducts.lean Modified Mathlib/Algebra/Category/ModuleCat/Colimits.lean Modified Mathlib/Algebra/Category/ModuleCat/EpiMono.lean Modified Mathlib/Algebra/Category/ModuleCat/Images.lean Modified Mathlib/Algebra/Category/ModuleCat/Limits.lean Modified Mathlib/Algebra/Category/ModuleCat/Monoidal/Basic.lean Modified Mathlib/Algebra/Category/ModuleCat/Monoidal/Closed.lean Modified Mathlib/Algebra/Category/ModuleCat/Monoidal/Symmetric.lean Modified Mathlib/Algebra/Category/ModuleCat/Presheaf.lean Modified Mathlib/Algebra/Category/ModuleCat/Products.lean Modified Mathlib/Algebra/Category/ModuleCat/Projective.lean Modified Mathlib/Algebra/Category/ModuleCat/Simple.lean Modified Mathlib/Algebra/Category/ModuleCat/Tannaka.lean Modified Mathlib/Algebra/Category/MonCat/Basic.lean Modified Mathlib/Algebra/Category/MonCat/Colimits.lean Modified Mathlib/Algebra/Category/MonCat/Limits.lean Modified Mathlib/Algebra/Category/Ring/Adjunctions.lean Modified Mathlib/Algebra/Category/Ring/Basic.lean Modified Mathlib/Algebra/Category/Ring/Colimits.lean Modified Mathlib/Algebra/Category/Ring/Limits.lean Modified Mathlib/Algebra/FreeAlgebra.lean Modified Mathlib/Algebra/Group/Commute/Hom.lean Modified Mathlib/Algebra/Group/Hom/Basic.lean Modified Mathlib/Algebra/Group/Hom/Defs.lean Modified Mathlib/Algebra/Group/Hom/End.lean Modified Mathlib/Algebra/Group/Hom/Instances.lean Modified Mathlib/Algebra/Group/ULift.lean Modified Mathlib/Algebra/GroupWithZero/ULift.lean Modified Mathlib/Algebra/HierarchyDesign.lean Modified Mathlib/Algebra/Homology/Additive.lean Modified Mathlib/Algebra/Homology/Augment.lean Modified Mathlib/Algebra/Homology/ComplexShape.lean Modified Mathlib/Algebra/Homology/DifferentialObject.lean Modified Mathlib/Algebra/Homology/HomologicalBicomplex.lean Modified Mathlib/Algebra/Homology/HomologicalComplex.lean Modified Mathlib/Algebra/Homology/Homotopy.lean Modified Mathlib/Algebra/Homology/HomotopyCategory.lean Modified Mathlib/Algebra/Homology/ImageToKernel.lean Modified Mathlib/Algebra/Homology/LocalCohomology.lean Modified Mathlib/Algebra/Homology/QuasiIso.lean Modified Mathlib/Algebra/Homology/Single.lean Modified Mathlib/Algebra/Module/Algebra.lean Modified Mathlib/Algebra/Module/ULift.lean Modified Mathlib/Algebra/MonoidAlgebra/Basic.lean Modified Mathlib/Algebra/MonoidAlgebra/Defs.lean Modified Mathlib/Algebra/MvPolynomial/Polynomial.lean Modified Mathlib/Algebra/Order/Algebra.lean Modified Mathlib/Algebra/Order/Group/Cone.lean Modified Mathlib/Algebra/Order/Interval/Set/Instances.lean Modified Mathlib/Algebra/Order/Star/Basic.lean Modified Mathlib/Algebra/Order/Sub/Prod.lean Modified Mathlib/Algebra/Polynomial/AlgebraMap.lean Modified Mathlib/Algebra/Polynomial/Basic.lean Modified Mathlib/Algebra/Polynomial/Coeff.lean Modified Mathlib/Algebra/Polynomial/Degree/Definitions.lean Modified Mathlib/Algebra/Polynomial/Degree/Lemmas.lean Modified Mathlib/Algebra/Polynomial/Derivative.lean Modified Mathlib/Algebra/Polynomial/Div.lean Modified Mathlib/Algebra/Polynomial/Eval.lean Modified Mathlib/Algebra/Polynomial/FieldDivision.lean Modified Mathlib/Algebra/Polynomial/Identities.lean Modified Mathlib/Algebra/Polynomial/Induction.lean Modified Mathlib/Algebra/Polynomial/Inductions.lean Modified Mathlib/Algebra/Polynomial/Monic.lean Modified Mathlib/Algebra/Polynomial/Monomial.lean Modified Mathlib/Algebra/Polynomial/RingDivision.lean Modified Mathlib/Algebra/Polynomial/Roots.lean Modified Mathlib/Algebra/Ring/ULift.lean Modified Mathlib/Algebra/RingQuot.lean Modified Mathlib/Algebra/Star/Basic.lean Modified Mathlib/Algebra/Star/CHSH.lean Modified Mathlib/Algebra/Star/Subalgebra.lean Modified Mathlib/AlgebraicGeometry/Scheme.lean Modified Mathlib/AlgebraicGeometry/Spec.lean Modified Mathlib/AlgebraicGeometry/StructureSheaf.lean Modified Mathlib/AlgebraicTopology/MooreComplex.lean Modified Mathlib/AlgebraicTopology/SimplexCategory.lean Modified Mathlib/AlgebraicTopology/SimplicialObject.lean Modified Mathlib/AlgebraicTopology/SimplicialSet.lean Modified Mathlib/AlgebraicTopology/SingularSet.lean Modified Mathlib/Analysis/Convex/Caratheodory.lean Modified Mathlib/Analysis/Normed/Group/SemiNormedGrp/Kernels.lean Modified Mathlib/Analysis/SpecialFunctions/Bernstein.lean Modified Mathlib/Analysis/VonNeumannAlgebra/Basic.lean Modified Mathlib/CategoryTheory/Abelian/Basic.lean Modified Mathlib/CategoryTheory/Abelian/Ext.lean Modified Mathlib/CategoryTheory/Abelian/FunctorCategory.lean Modified Mathlib/CategoryTheory/Abelian/Images.lean Modified Mathlib/CategoryTheory/Abelian/InjectiveResolution.lean Modified Mathlib/CategoryTheory/Abelian/LeftDerived.lean Modified Mathlib/CategoryTheory/Abelian/Opposite.lean Modified Mathlib/CategoryTheory/Abelian/ProjectiveResolution.lean Modified Mathlib/CategoryTheory/Abelian/RightDerived.lean Modified Mathlib/CategoryTheory/Abelian/Transfer.lean Modified Mathlib/CategoryTheory/Adjunction/FullyFaithful.lean Modified Mathlib/CategoryTheory/Adjunction/Restrict.lean Modified Mathlib/CategoryTheory/Bicategory/End.lean Modified Mathlib/CategoryTheory/Bicategory/SingleObj.lean Modified Mathlib/CategoryTheory/Category/Basic.lean Modified Mathlib/CategoryTheory/Category/Cat/Limit.lean Modified Mathlib/CategoryTheory/Category/GaloisConnection.lean Modified Mathlib/CategoryTheory/Category/Pairwise.lean Modified Mathlib/CategoryTheory/Category/Preorder.lean Modified Mathlib/CategoryTheory/Category/Quiv.lean Modified Mathlib/CategoryTheory/Category/RelCat.lean Modified Mathlib/CategoryTheory/Closed/Monoidal.lean Modified Mathlib/CategoryTheory/CommSq.lean Modified Mathlib/CategoryTheory/Comma/Basic.lean Modified Mathlib/CategoryTheory/Comma/StructuredArrow.lean Modified Mathlib/CategoryTheory/ConcreteCategory/Basic.lean Modified Mathlib/CategoryTheory/ConcreteCategory/Bundled.lean Modified Mathlib/CategoryTheory/ConcreteCategory/BundledHom.lean Modified Mathlib/CategoryTheory/ConcreteCategory/ReflectsIso.lean Modified Mathlib/CategoryTheory/Core.lean Modified Mathlib/CategoryTheory/DifferentialObject.lean Modified Mathlib/CategoryTheory/DiscreteCategory.lean Modified Mathlib/CategoryTheory/Elements.lean Modified Mathlib/CategoryTheory/Elementwise.lean Modified Mathlib/CategoryTheory/Endofunctor/Algebra.lean Modified Mathlib/CategoryTheory/Endomorphism.lean Modified Mathlib/CategoryTheory/Enriched/Basic.lean Modified Mathlib/CategoryTheory/EpiMono.lean Modified Mathlib/CategoryTheory/EqToHom.lean Modified Mathlib/CategoryTheory/Equivalence.lean Modified Mathlib/CategoryTheory/EssentiallySmall.lean Modified Mathlib/CategoryTheory/Filtered/Basic.lean Modified Mathlib/CategoryTheory/FinCategory/AsType.lean Modified Mathlib/CategoryTheory/FinCategory/Basic.lean Modified Mathlib/CategoryTheory/FullSubcategory.lean Modified Mathlib/CategoryTheory/Functor/Basic.lean Modified Mathlib/CategoryTheory/Functor/Category.lean Modified Mathlib/CategoryTheory/Functor/Const.lean Modified Mathlib/CategoryTheory/Functor/Currying.lean Modified Mathlib/CategoryTheory/Functor/FullyFaithful.lean Modified Mathlib/CategoryTheory/Functor/Functorial.lean Modified Mathlib/CategoryTheory/Functor/Hom.lean Modified Mathlib/CategoryTheory/GradedObject.lean Modified Mathlib/CategoryTheory/Grothendieck.lean Modified Mathlib/CategoryTheory/Groupoid.lean Modified Mathlib/CategoryTheory/Iso.lean Modified Mathlib/CategoryTheory/Limits/ColimitLimit.lean Modified Mathlib/CategoryTheory/Limits/ConcreteCategory/Basic.lean Modified Mathlib/CategoryTheory/Limits/Cones.lean Modified Mathlib/CategoryTheory/Limits/Constructions/LimitsOfProductsAndEqualizers.lean Modified Mathlib/CategoryTheory/Limits/Constructions/ZeroObjects.lean Modified Mathlib/CategoryTheory/Limits/FilteredColimitCommutesFiniteLimit.lean Modified Mathlib/CategoryTheory/Limits/Final.lean Modified Mathlib/CategoryTheory/Limits/Fubini.lean Modified Mathlib/CategoryTheory/Limits/FunctorCategory/Basic.lean Modified Mathlib/CategoryTheory/Limits/HasLimits.lean Modified Mathlib/CategoryTheory/Limits/IsLimit.lean Modified Mathlib/CategoryTheory/Limits/Lattice.lean Modified Mathlib/CategoryTheory/Limits/Opposites.lean Modified Mathlib/CategoryTheory/Limits/Pi.lean Modified Mathlib/CategoryTheory/Limits/Preserves/Basic.lean Modified Mathlib/CategoryTheory/Limits/Preserves/Filtered.lean Modified Mathlib/CategoryTheory/Limits/Preserves/Limits.lean Modified Mathlib/CategoryTheory/Limits/Preserves/Shapes/Kernels.lean Modified Mathlib/CategoryTheory/Limits/Preserves/Shapes/Products.lean Modified Mathlib/CategoryTheory/Limits/Shapes/BinaryProducts.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Biproducts.lean Modified Mathlib/CategoryTheory/Limits/Shapes/ConcreteCategory.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Equalizers.lean Modified Mathlib/CategoryTheory/Limits/Shapes/FiniteLimits.lean Modified Mathlib/CategoryTheory/Limits/Shapes/FiniteProducts.lean Modified Mathlib/CategoryTheory/Limits/Shapes/FunctorCategory.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Images.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Kernels.lean Modified Mathlib/CategoryTheory/Limits/Shapes/NormalMono/Basic.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Products.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Pullback/Assoc.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Pullback/CommSq.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Pullback/Cospan.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Pullback/HasPullback.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Pullback/Iso.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Pullback/Mono.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Pullback/Pasting.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Pullback/PullbackCone.lean Modified Mathlib/CategoryTheory/Limits/Shapes/RegularMono.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Terminal.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Types.lean Modified Mathlib/CategoryTheory/Limits/Shapes/ZeroMorphisms.lean Modified Mathlib/CategoryTheory/Limits/Shapes/ZeroObjects.lean Modified Mathlib/CategoryTheory/Limits/Types.lean Modified Mathlib/CategoryTheory/Limits/TypesFiltered.lean Modified Mathlib/CategoryTheory/Limits/Unit.lean Modified Mathlib/CategoryTheory/Limits/Yoneda.lean Modified Mathlib/CategoryTheory/Linear/Basic.lean Modified Mathlib/CategoryTheory/Linear/FunctorCategory.lean Modified Mathlib/CategoryTheory/Linear/LinearFunctor.lean Modified Mathlib/CategoryTheory/Linear/Yoneda.lean Modified Mathlib/CategoryTheory/Monad/Adjunction.lean Modified Mathlib/CategoryTheory/Monad/Algebra.lean Modified Mathlib/CategoryTheory/Monad/Basic.lean Modified Mathlib/CategoryTheory/Monad/Limits.lean Modified Mathlib/CategoryTheory/Monoidal/Bimod.lean Modified Mathlib/CategoryTheory/Monoidal/Braided/Basic.lean Modified Mathlib/CategoryTheory/Monoidal/Braided/Opposite.lean Modified Mathlib/CategoryTheory/Monoidal/Category.lean Modified Mathlib/CategoryTheory/Monoidal/Center.lean Modified Mathlib/CategoryTheory/Monoidal/CoherenceLemmas.lean Modified Mathlib/CategoryTheory/Monoidal/CommMon_.lean Modified Mathlib/CategoryTheory/Monoidal/Discrete.lean Modified Mathlib/CategoryTheory/Monoidal/End.lean Modified Mathlib/CategoryTheory/Monoidal/Functor.lean Modified Mathlib/CategoryTheory/Monoidal/FunctorCategory.lean Modified Mathlib/CategoryTheory/Monoidal/Functorial.lean Modified Mathlib/CategoryTheory/Monoidal/Internal/FunctorCategory.lean Modified Mathlib/CategoryTheory/Monoidal/Internal/Limits.lean Modified Mathlib/CategoryTheory/Monoidal/Internal/Module.lean Modified Mathlib/CategoryTheory/Monoidal/Internal/Types.lean Modified Mathlib/CategoryTheory/Monoidal/Limits.lean Modified Mathlib/CategoryTheory/Monoidal/Linear.lean Modified Mathlib/CategoryTheory/Monoidal/Mod_.lean Modified Mathlib/CategoryTheory/Monoidal/Mon_.lean Modified Mathlib/CategoryTheory/Monoidal/NaturalTransformation.lean Modified Mathlib/CategoryTheory/Monoidal/OfChosenFiniteProducts/Basic.lean Modified Mathlib/CategoryTheory/Monoidal/OfChosenFiniteProducts/Symmetric.lean Modified Mathlib/CategoryTheory/Monoidal/OfHasFiniteProducts.lean Modified Mathlib/CategoryTheory/Monoidal/Opposite.lean Modified Mathlib/CategoryTheory/Monoidal/Preadditive.lean Modified Mathlib/CategoryTheory/Monoidal/Rigid/FunctorCategory.lean Modified Mathlib/CategoryTheory/Monoidal/Rigid/OfEquivalence.lean Modified Mathlib/CategoryTheory/Monoidal/Tor.lean Modified Mathlib/CategoryTheory/Monoidal/Transport.lean Modified Mathlib/CategoryTheory/Monoidal/Types/Basic.lean Modified Mathlib/CategoryTheory/Monoidal/Types/Coyoneda.lean Modified Mathlib/CategoryTheory/Monoidal/Types/Symmetric.lean Modified Mathlib/CategoryTheory/NatIso.lean Modified Mathlib/CategoryTheory/NatTrans.lean Modified Mathlib/CategoryTheory/Noetherian.lean Modified Mathlib/CategoryTheory/Opposites.lean Modified Mathlib/CategoryTheory/PEmpty.lean Modified Mathlib/CategoryTheory/PUnit.lean Modified Mathlib/CategoryTheory/PathCategory.lean Modified Mathlib/CategoryTheory/Pi/Basic.lean Modified Mathlib/CategoryTheory/Preadditive/AdditiveFunctor.lean Modified Mathlib/CategoryTheory/Preadditive/Biproducts.lean Modified Mathlib/CategoryTheory/Preadditive/HomOrthogonal.lean Modified Mathlib/CategoryTheory/Preadditive/InjectiveResolution.lean Modified Mathlib/CategoryTheory/Preadditive/Mat.lean Modified Mathlib/CategoryTheory/Preadditive/Opposite.lean Modified Mathlib/CategoryTheory/Preadditive/Projective.lean Modified Mathlib/CategoryTheory/Preadditive/ProjectiveResolution.lean Modified Mathlib/CategoryTheory/Preadditive/Schur.lean Modified Mathlib/CategoryTheory/Preadditive/SingleObj.lean Modified Mathlib/CategoryTheory/Preadditive/Yoneda/Injective.lean Modified Mathlib/CategoryTheory/Preadditive/Yoneda/Projective.lean Modified Mathlib/CategoryTheory/Products/Associator.lean Modified Mathlib/CategoryTheory/Products/Basic.lean Modified Mathlib/CategoryTheory/Products/Bifunctor.lean Modified Mathlib/CategoryTheory/Shift/Basic.lean Modified Mathlib/CategoryTheory/Simple.lean Modified Mathlib/CategoryTheory/Subobject/Basic.lean Modified Mathlib/CategoryTheory/Subobject/FactorThru.lean Modified Mathlib/CategoryTheory/Subobject/Lattice.lean Modified Mathlib/CategoryTheory/Subobject/Limits.lean Modified Mathlib/CategoryTheory/Subobject/MonoOver.lean Modified Mathlib/CategoryTheory/Subobject/Types.lean Modified Mathlib/CategoryTheory/Subobject/WellPowered.lean Modified Mathlib/CategoryTheory/Sums/Associator.lean Modified Mathlib/CategoryTheory/Sums/Basic.lean Modified Mathlib/CategoryTheory/Thin.lean Modified Mathlib/CategoryTheory/Types.lean Modified Mathlib/CategoryTheory/UnivLE.lean Modified Mathlib/CategoryTheory/Whiskering.lean Modified Mathlib/CategoryTheory/Yoneda.lean Modified Mathlib/Combinatorics/Quiver/Basic.lean Modified Mathlib/Combinatorics/Quiver/Path.lean Modified Mathlib/Control/EquivFunctor.lean Modified Mathlib/Control/EquivFunctor/Instances.lean Modified Mathlib/Control/ULift.lean Modified Mathlib/Data/Complex/Order.lean Modified Mathlib/Data/Countable/Small.lean Modified Mathlib/Data/Finset/Fin.lean Modified Mathlib/Data/Finset/Functor.lean Modified Mathlib/Data/Finsupp/Basic.lean Modified Mathlib/Data/Finsupp/Defs.lean Modified Mathlib/Data/Finsupp/Pointwise.lean Modified Mathlib/Data/List/EditDistance/Bounds.lean Modified Mathlib/Data/List/EditDistance/Defs.lean Modified Mathlib/Data/List/EditDistance/Estimator.lean Modified Mathlib/Data/List/FinRange.lean Modified Mathlib/Data/List/Intervals.lean Modified Mathlib/Data/List/Lattice.lean Modified Mathlib/Data/List/Range.lean Modified Mathlib/Data/MLList/BestFirst.lean Modified Mathlib/Data/MLList/Dedup.lean Modified Mathlib/Data/MLList/DepthFirst.lean Modified Mathlib/Data/MLList/IO.lean Modified Mathlib/Data/MLList/Split.lean Modified Mathlib/Data/Matrix/Basis.lean Modified Mathlib/Data/Matrix/DMatrix.lean Modified Mathlib/Data/Nat/Count.lean Modified Mathlib/Data/Nat/Digits.lean Modified Mathlib/Data/Nat/Nth.lean Modified Mathlib/Data/Opposite.lean Modified Mathlib/Data/PSigma/Order.lean Modified Mathlib/Data/Prod/Lex.lean Modified Mathlib/Data/Set/Operations.lean Modified Mathlib/Data/Vector/Zip.lean Modified Mathlib/Deprecated/HashMap.lean Modified Mathlib/Deprecated/Subgroup.lean Modified Mathlib/Geometry/RingedSpace/PresheafedSpace.lean Modified Mathlib/Geometry/RingedSpace/PresheafedSpace/HasColimits.lean Modified Mathlib/Geometry/RingedSpace/SheafedSpace.lean Modified Mathlib/Geometry/RingedSpace/Stalks.lean Modified Mathlib/GroupTheory/Coset/Basic.lean Modified Mathlib/GroupTheory/Coset/Card.lean Modified Mathlib/Lean/CoreM.lean Modified Mathlib/Lean/Expr.lean Modified Mathlib/Lean/Expr/Basic.lean Modified Mathlib/Lean/Expr/ReplaceRec.lean Modified Mathlib/Lean/LocalContext.lean Modified Mathlib/Lean/Meta/Basic.lean Modified Mathlib/Lean/Meta/DiscrTree.lean Modified Mathlib/Lean/Meta/Simp.lean Modified Mathlib/Lean/Name.lean Modified Mathlib/LinearAlgebra/Dimension/Basic.lean Modified Mathlib/LinearAlgebra/Dimension/Constructions.lean Modified Mathlib/LinearAlgebra/Dimension/DivisionRing.lean Modified Mathlib/LinearAlgebra/Dimension/Finite.lean Modified Mathlib/LinearAlgebra/Dimension/StrongRankCondition.lean Modified Mathlib/LinearAlgebra/InvariantBasisNumber.lean Modified Mathlib/LinearAlgebra/Matrix/Charpoly/Basic.lean Modified Mathlib/LinearAlgebra/Matrix/InvariantBasisNumber.lean Modified Mathlib/LinearAlgebra/TensorProduct/Tower.lean Modified Mathlib/Logic/Equiv/Functor.lean Modified Mathlib/Logic/Small/Basic.lean Modified Mathlib/Logic/Small/Defs.lean Modified Mathlib/Logic/Small/Group.lean Modified Mathlib/Logic/Small/List.lean Modified Mathlib/Logic/Small/Module.lean Modified Mathlib/Logic/Small/Ring.lean Modified Mathlib/Logic/UnivLE.lean Modified Mathlib/NumberTheory/LucasLehmer.lean Modified Mathlib/Order/Estimator.lean Modified Mathlib/Order/Interval/Finset/Basic.lean Modified Mathlib/Order/Interval/Set/Image.lean Modified Mathlib/Order/PartialSups.lean Modified Mathlib/RepresentationTheory/Action/Basic.lean Modified Mathlib/RepresentationTheory/Action/Concrete.lean Modified Mathlib/RepresentationTheory/Action/Limits.lean Modified Mathlib/RepresentationTheory/Action/Monoidal.lean Modified Mathlib/RepresentationTheory/FDRep.lean Modified Mathlib/RepresentationTheory/Maschke.lean Modified Mathlib/RepresentationTheory/Rep.lean Modified Mathlib/RingTheory/Fintype.lean Modified Mathlib/RingTheory/MatrixAlgebra.lean Modified Mathlib/RingTheory/Polynomial/Bernstein.lean Modified Mathlib/RingTheory/Polynomial/IntegralNormalization.lean Modified Mathlib/RingTheory/Polynomial/Pochhammer.lean Modified Mathlib/RingTheory/PolynomialAlgebra.lean Modified Mathlib/RingTheory/TensorProduct/Basic.lean Modified Mathlib/SetTheory/Game/Basic.lean Modified Mathlib/SetTheory/Game/Domineering.lean Modified Mathlib/SetTheory/Game/PGame.lean Modified Mathlib/SetTheory/Game/Short.lean Modified Mathlib/SetTheory/Game/State.lean Modified Mathlib/SetTheory/Surreal/Basic.lean Modified Mathlib/SetTheory/Surreal/Multiplication.lean Modified Mathlib/Tactic/Abel.lean Modified Mathlib/Tactic/ApplyCongr.lean Modified Mathlib/Tactic/ApplyFun.lean Modified Mathlib/Tactic/CategoryTheory/Coherence.lean Modified Mathlib/Tactic/CategoryTheory/Elementwise.lean Modified Mathlib/Tactic/CategoryTheory/MonoidalComp.lean Modified Mathlib/Tactic/CategoryTheory/Reassoc.lean Modified Mathlib/Tactic/CategoryTheory/Slice.lean Modified Mathlib/Tactic/Common.lean Modified Mathlib/Tactic/Constructor.lean Modified Mathlib/Tactic/Convert.lean Modified Mathlib/Tactic/FinCases.lean Modified Mathlib/Tactic/Generalize.lean Modified Mathlib/Tactic/Hint.lean Modified Mathlib/Tactic/IntervalCases.lean Modified Mathlib/Tactic/NoncommRing.lean Modified Mathlib/Tactic/Propose.lean Modified Mathlib/Tactic/Relation/Symm.lean Modified Mathlib/Tactic/RewriteSearch.lean Modified Mathlib/Tactic/Says.lean Modified Mathlib/Tactic/SlimCheck.lean Modified Mathlib/Tactic/SuccessIfFailWithMsg.lean Modified Mathlib/Topology/Algebra/Algebra.lean Modified Mathlib/Topology/Algebra/Algebra/Rat.lean Modified Mathlib/Topology/Algebra/Field.lean Modified Mathlib/Topology/Category/TopCat/Adjunctions.lean Modified Mathlib/Topology/Category/TopCat/Basic.lean Modified Mathlib/Topology/Category/TopCat/Limits/Basic.lean Modified Mathlib/Topology/Category/TopCat/Limits/Cofiltered.lean Modified Mathlib/Topology/Category/TopCat/Limits/Products.lean Modified Mathlib/Topology/Category/TopCat/Limits/Pullbacks.lean Modified Mathlib/Topology/Category/TopCat/OpenNhds.lean Modified Mathlib/Topology/Category/TopCat/Opens.lean Modified Mathlib/Topology/Category/TopCommRingCat.lean Modified Mathlib/Topology/Category/UniformSpace.lean Modified Mathlib/Topology/ContinuousFunction/Algebra.lean Modified Mathlib/Topology/ContinuousFunction/Compact.lean Modified Mathlib/Topology/ContinuousFunction/Ordered.lean Modified Mathlib/Topology/ContinuousFunction/Polynomial.lean Modified Mathlib/Topology/ContinuousFunction/StoneWeierstrass.lean Modified Mathlib/Topology/ContinuousFunction/Weierstrass.lean Modified Mathlib/Topology/Sheaves/Forget.lean Modified Mathlib/Topology/Sheaves/Limits.lean Modified Mathlib/Topology/Sheaves/LocalPredicate.lean Modified Mathlib/Topology/Sheaves/Presheaf.lean Modified Mathlib/Topology/Sheaves/PresheafOfFunctions.lean Modified Mathlib/Topology/Sheaves/Sheaf.lean Modified Mathlib/Topology/Sheaves/SheafCondition/EqualizerProducts.lean Modified Mathlib/Topology/Sheaves/SheafCondition/OpensLeCover.lean Modified Mathlib/Topology/Sheaves/SheafCondition/PairwiseIntersections.lean Modified Mathlib/Topology/Sheaves/SheafOfFunctions.lean Modified Mathlib/Topology/Sheaves/Sheafify.lean Modified Mathlib/Topology/Sheaves/Stalks.lean Modified Mathlib/Topology/UnitInterval.lean Modified Mathlib/Util/AddRelatedDecl.lean Modified Mathlib/Util/AssertExists.lean Modified Mathlib/Util/CountHeartbeats.lean Modified Mathlib/Util/LongNames.lean Modified Mathlib/Util/Qq.lean Modified Mathlib/Util/SynthesizeUsing.lean Modified docs/100.yaml Modified test/interval_cases.lean Modified test/solve_by_elim/basic.lean Modified test/solve_by_elim/instances.lean 2024-09-24 06:31:28 d6fde79 feat(NumberTheory/PrimeCounting): surjective and tendsto (#17006) ESTIMATED CHANGES Modified Mathlib/Data/Nat/Nth.lean + theorem Nat.surjective_count_of_infinite_setOf Modified Mathlib/NumberTheory/PrimeCounting.lean +/- theorem Nat.add_two_le_nth_prime + theorem Nat.primeCounting_sub_one +/- theorem Nat.primesBelow_card_eq_primeCounting' + theorem Nat.surjective_primeCounting' + theorem Nat.surjective_primeCounting + theorem Nat.tendsto_primeCounting' + theorem Nat.tensto_primeCounting 2024-09-24 06:31:26 f4a9481 feat(SetTheory/*): intervals of Cardinal/Ordinal/Nimber are small (#16999) ESTIMATED CHANGES Modified Mathlib/SetTheory/Cardinal/Basic.lean Modified Mathlib/SetTheory/Ordinal/Arithmetic.lean Modified Mathlib/SetTheory/Ordinal/Basic.lean Modified Mathlib/SetTheory/Ordinal/Nimber.lean 2024-09-24 06:31:25 1558c09 chore(SetTheory/Ordinal/Basic): `lift.initialSeg` → `liftInitialSeg` (#16995) ESTIMATED CHANGES Modified Mathlib/SetTheory/Ordinal/Basic.lean - def Ordinal.lift.initialSeg +/- theorem Ordinal.lift.initialSeg_coe - def Ordinal.lift.principalSeg +/- theorem Ordinal.lift.principalSeg_top + def Ordinal.liftInitialSeg + theorem Ordinal.liftInitialSeg_coe + def Ordinal.liftPrincipalSeg + theorem Ordinal.liftPrincipalSeg_coe + theorem Ordinal.liftPrincipalSeg_top' + theorem Ordinal.liftPrincipalSeg_top 2024-09-24 06:31:24 50ab296 chore(AlexandrovDiscrete): move `exterior` to new files (#16957) I'm going to use `exterior` in files that don't need to know about `AlexandrovDiscrete`. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Topology/AlexandrovDiscrete.lean - theorem IsCompact.exterior_iff - theorem IsOpen.exterior_eq - theorem IsOpen.exterior_subset - theorem Set.Finite.isCompact_exterior - def exterior - theorem exterior_def - theorem exterior_empty - theorem exterior_eq_empty - theorem exterior_eq_exterior_iff_nhdsSet - theorem exterior_exterior - theorem exterior_iUnion - theorem exterior_minimal - theorem exterior_mono - theorem exterior_sUnion - theorem exterior_singleton_eq_ker_nhds - theorem exterior_subset_exterior - theorem exterior_subset_exterior_iff_nhdsSet - theorem exterior_union - theorem exterior_univ - theorem mem_exterior - theorem mem_exterior_iff_specializes - theorem mem_exterior_singleton - theorem nhdsSet_exterior - theorem specializes_iff_exterior_subset - theorem subset_exterior - theorem subset_exterior_iff Added Mathlib/Topology/Compactness/Exterior.lean + theorem IsCompact.exterior_iff + theorem Set.Finite.isCompact_exterior Modified Mathlib/Topology/Defs/Filter.lean + def exterior Added Mathlib/Topology/Exterior.lean + theorem IsOpen.exterior_eq + theorem IsOpen.exterior_subset + theorem exterior_def + theorem exterior_empty + theorem exterior_eq_empty + theorem exterior_eq_exterior_iff_nhdsSet + theorem exterior_exterior + theorem exterior_iUnion + theorem exterior_minimal + theorem exterior_mono + theorem exterior_sUnion + theorem exterior_singleton_eq_ker_nhds + theorem exterior_subset_exterior + theorem exterior_subset_exterior_iff_nhdsSet + theorem exterior_union + theorem exterior_univ + theorem mem_exterior + theorem mem_exterior_iff_specializes + theorem mem_exterior_singleton + theorem nhdsSet_exterior + theorem specializes_iff_exterior_subset + theorem subset_exterior + theorem subset_exterior_iff 2024-09-24 06:31:23 643916d chore(SetTheory/Cardinal/Basic): organize file (#16359) This PR moves related theorems together, and adds captions for each section. Superfluous `section`, `open`, `universe` and `variable` are deleted. We also move the proof of the well-ordering theorem from the `Ordinal/Basic` file to here, where it makes more sense and can be potentially used to prove other basic results. This has the nice effect of removing a bunch of imports to the file. No theorem statements were modified, aside from the very minor change of correcting `∀` to `Π` in `prod` and `mk_pi`. ESTIMATED CHANGES Modified Mathlib/Combinatorics/SimpleGraph/Regularity/Uniform.lean Modified Mathlib/Data/DFinsupp/WellFounded.lean Modified Mathlib/SetTheory/Cardinal/Basic.lean +/- theorem Cardinal.mk_pi + def WellOrderingRel + def embeddingToCardinal + theorem nonempty_embedding_to_cardinal Modified Mathlib/SetTheory/Ordinal/Basic.lean - def WellOrderingRel - def embeddingToCardinal - theorem nonempty_embedding_to_cardinal Modified Mathlib/Topology/EMetricSpace/Paracompact.lean Modified Mathlib/Topology/PartitionOfUnity.lean 2024-09-24 06:06:02 4b28fd7 feat: define `HasSummableGeomSeries` to unify results between normed field and complete normed algebras (#17002) Currently, several analogous results are proved separately in complete normed algebras, and in normed fields. For instance, the fact that inversion is differentiable is called `differentiableAt_inv'` in the former, and `differentiableAt_inv` in the latter, with similar proofs relying on the convergence of geometric series, due to completeness in the former and to the existence of the inverse in the latter. We unify these results by defining a typeclass `HasSummableGeomSeries` saying that `∑ x ^ n` converges for all `x` with norm `< 1`. We show that this is satisfied both in complete normed rings and in normed fields. And we show that many results follow solely from this assumption, deduplicating statements and proofs. Along the way, we show that inversion is analytic on rings with summable geometric series, and deduce in particular that it is strictly differentiable, clearing an existing TODO. This adds a few imports (importing analytic functions in files where they were not needed before), but with the upcoming refactor of smooth functions, analytic functions will in any case need to be imported earlier on, so this doesn't look like a real issue to me. ESTIMATED CHANGES Modified Mathlib/Analysis/Analytic/Constructions.lean + theorem analyticAt_inverse + theorem analyticAt_inverse_one_sub +/- theorem formalMultilinearSeries_geometric_apply_norm + theorem formalMultilinearSeries_geometric_apply_norm_le +/- theorem formalMultilinearSeries_geometric_radius + theorem hasFPowerSeriesOnBall_inverse_one_sub + theorem one_le_formalMultilinearSeries_geometric_radius Modified Mathlib/Analysis/Calculus/Deriv/Inv.lean - theorem Differentiable.inv - theorem DifferentiableAt.inv - theorem DifferentiableOn.inv - theorem DifferentiableWithinAt.inv - theorem differentiableAt_inv + theorem differentiableAt_inv_iff - theorem differentiableOn_inv - theorem differentiableWithinAt_inv + theorem hasStrictFDerivAt_inv Modified Mathlib/Analysis/Calculus/DiffContOnCl.lean Modified Mathlib/Analysis/Calculus/Dslope.lean Modified Mathlib/Analysis/Calculus/FDeriv/Analytic.lean + theorem AnalyticAt.hasStrictFDerivAt Modified Mathlib/Analysis/Calculus/FDeriv/Mul.lean - theorem Differentiable.inv' + theorem Differentiable.inv - theorem DifferentiableAt.inv' + theorem DifferentiableAt.inv - theorem DifferentiableOn.inv' + theorem DifferentiableOn.inv - theorem DifferentiableWithinAt.inv' + theorem DifferentiableWithinAt.inv - theorem differentiableAt_inv' + theorem differentiableAt_inv - theorem differentiableOn_inv' + theorem differentiableOn_inv - theorem differentiableWithinAt_inv' + theorem differentiableWithinAt_inv + theorem hasStrictFDerivAt_inv' + theorem hasStrictFDerivAt_ring_inverse Modified Mathlib/Analysis/Normed/Algebra/Spectrum.lean +/- theorem spectrum.hasFPowerSeriesOnBall_inverse_one_sub_smul Modified Mathlib/Analysis/Normed/Ring/Units.lean - def Units.oneSub Modified Mathlib/Analysis/NormedSpace/Multilinear/Basic.lean + theorem ContinuousMultilinearMap.norm_mkPiAlgebraFin_le Modified Mathlib/Analysis/SpecificLimits/Normed.lean - theorem NormedRing.summable_geometric_of_norm_lt_one - theorem NormedRing.tsum_geometric_of_norm_lt_one + def Units.oneSub + theorem geom_series_eq_inverse + theorem hasSum_choose_mul_geometric_of_norm_lt_one' + theorem hasSum_coe_mul_geometric_of_norm_lt_one' +/- theorem hasSum_coe_mul_geometric_of_norm_lt_one + theorem hasSum_geom_series_inverse + theorem isUnit_one_sub_of_norm_lt_one +/- theorem mul_neg_geom_series +/- theorem summable_choose_mul_geometric_of_norm_lt_one +/- theorem summable_descFactorial_mul_geometric_of_norm_lt_one +/- theorem summable_geometric_of_norm_lt_one +/- theorem summable_norm_geometric_of_norm_lt_one +/- theorem summable_norm_mul_geometric_of_norm_lt_one +/- theorem summable_norm_pow_mul_geometric_of_norm_lt_one +/- theorem summable_pow_mul_geometric_of_norm_lt_one + theorem tsum_choose_mul_geometric_of_norm_lt_one' + theorem tsum_coe_mul_geometric_of_norm_lt_one' +/- theorem tsum_coe_mul_geometric_of_norm_lt_one + theorem tsum_geometric_le_of_norm_lt_one Modified Mathlib/NumberTheory/LSeries/AbstractFuncEq.lean Modified Mathlib/Tactic/FunProp/Differentiable.lean 2024-09-24 05:56:29 88dd555 feat(Condensed): discrete condensed sets are given by locally constant maps (#15321) This PR proves that under suitable conditions, the functor from the category of sets to the category of sheaves for the coherent topology on `CompHausLike P`, given by mapping a set to the sheaf of locally constant maps to it, is left adjoint to the "underlying set" functor (evaluation at the point). We apply this to prove that the constant sheaf functor into (light) condensed sets is isomorphic to the functor of sheaves of locally constant maps described above. This is the first part of the characterization of discrete condensed objects, see #14027. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Condensed/Discrete/LocallyConstant.lean + theorem CompHausLike.LocallyConstant.adjunction_left_triangle + def CompHausLike.LocallyConstant.componentHom + def CompHausLike.LocallyConstant.fiber + def CompHausLike.LocallyConstant.functor + def CompHausLike.LocallyConstant.functorToPresheaves + theorem CompHausLike.LocallyConstant.incl_comap + theorem CompHausLike.LocallyConstant.incl_of_counitAppApp + def CompHausLike.LocallyConstant.locallyConstantIsoContinuousMap + theorem CompHausLike.LocallyConstant.presheaf_ext + theorem CompHausLike.LocallyConstant.sigmaComparison_comp_sigmaIso + def CompHausLike.LocallyConstant.sigmaIncl + def CompHausLike.LocallyConstant.unit 2024-09-24 04:03:15 09caad2 chore: update Mathlib dependencies 2024-09-24 (#17052) This PR updates the Mathlib dependencies. ESTIMATED CHANGES Modified lake-manifest.json 2024-09-24 02:37:38 7252e9d ci: add workflow_dispatch to scheduled workflows (#16862) This will allow anyone with write access to [trigger these workflows manually](https://docs.github.com/en/actions/managing-workflow-runs-and-deployments/managing-workflow-runs/manually-running-a-workflow) without waiting for the scheduled time. Useful for re-running if something was broken and for testing. I also added / updated comments giving the cron schedules in words (using https://crontab.guru). [Zulip](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/Technical.20Debt.20Counters/near/470626800) ESTIMATED CHANGES Modified .github/workflows/dependent-issues.yml Modified .github/workflows/lean4checker.yml Modified .github/workflows/merge_conflicts.yml Modified .github/workflows/nightly_bump_toolchain.yml Modified .github/workflows/nightly_merge_master.yml Modified .github/workflows/nolints.yml Modified .github/workflows/technical_debt_metrics.yml Modified .github/workflows/update_dependencies.yml 2024-09-24 01:34:20 7fdf3ba chore: remove non-ascii whitespace (#17068) Preliminary cleanup for the "unwanted unicode linter" added in #16215. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Adjunction/Opposites.lean Modified Mathlib/CategoryTheory/Adjunction/Triple.lean Modified Mathlib/CategoryTheory/Closed/Monoidal.lean Modified Mathlib/CategoryTheory/Sites/ConstantSheaf.lean Modified Mathlib/Logic/Function/FiberPartition.lean Modified Mathlib/Topology/Category/CompHausLike/Basic.lean Modified Mathlib/Topology/Category/CompHausLike/SigmaComparison.lean Modified Mathlib/Topology/Category/LightProfinite/Extend.lean Modified Mathlib/Topology/Category/Profinite/Extend.lean 2024-09-24 01:34:19 2ba4ba3 fix: remove self-cancelling `set_option ... in` (#17054) While possibly confusing, `set_option ... in section` does not extend past `section`. ESTIMATED CHANGES Modified Mathlib/Algebra/Ring/Parity.lean 2024-09-24 00:42:18 fd58796 feat: semi-uniqueness of limits in seminormed spaces (#17066) [Zulip thread](https://leanprover.zulipchat.com/#narrow/stream/217875-Is-there-code-for-X.3F/topic/Tendsto.20in.20seminormed.20spaces/near/472351143) ESTIMATED CHANGES Modified Mathlib/Topology/EMetricSpace/Basic.lean Modified Mathlib/Topology/MetricSpace/Pseudo/Basic.lean + theorem Metric.inseparable_iff_nndist + theorem tendsto_nhds_unique_dist Modified Mathlib/Topology/Separation.lean + theorem Inseparable.of_nhds_neBot + theorem tendsto_nhds_unique_inseparable 2024-09-24 00:42:16 97987b2 chore(UniqueFactorizationDomain): drop `pow_right_injective` (#17012) Use more general lemmas instead ESTIMATED CHANGES Modified Mathlib/Algebra/Associated/Basic.lean + theorem pow_inj_of_not_isUnit + theorem pow_injective_of_not_isUnit - theorem pow_injective_of_not_unit Modified Mathlib/RingTheory/ChainOfDivisors.lean Modified Mathlib/RingTheory/DedekindDomain/Ideal.lean Modified Mathlib/RingTheory/UniqueFactorizationDomain.lean - theorem UniqueFactorizationMonoid.pow_eq_pow_iff - theorem UniqueFactorizationMonoid.pow_right_injective 2024-09-24 00:42:15 87edf3c chore(Data/Finset): fix aesop finsetNonempty set (#16927) All of these examples used `safe apply` for a rewrite lemma, and thus weren't actually used by `aesop` for finsetNonempty (and thus positivity). ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Pointwise/Finset/Basic.lean Modified Mathlib/Data/Finset/Basic.lean Modified Mathlib/Data/Finset/Image.lean Modified Mathlib/Data/Finset/NAry.lean Modified Mathlib/Data/Finset/Pi.lean Modified Mathlib/Data/Finset/Powerset.lean Modified Mathlib/Data/Finset/Prod.lean Modified Mathlib/Data/Finset/Sigma.lean Modified Mathlib/Data/Finset/Sups.lean Modified Mathlib/Data/Finset/Sym.lean Modified Mathlib/Data/Fintype/Basic.lean Modified Mathlib/Data/Fintype/Pi.lean Modified Mathlib/Order/Interval/Finset/Basic.lean +/- theorem Finset.nonempty_Iic +/- theorem Finset.nonempty_Iio 2024-09-23 23:58:37 7bfd6ed chore: stop using 'old-style' `tfae_have` syntax (#11000) Banishes "Mathlib `have`" style syntax for `tfae_have` (but does not officially deprecate it). Since we now have the chance to supply a term after `tfae_have ... :=`, we remove one-line `exact`s where possible, and convert `intro`s and some `rintros` into match alternatives. Most single-line `fun`s are preserved. ESTIMATED CHANGES Modified Mathlib/Algebra/Exact.lean Modified Mathlib/Algebra/Homology/ShortComplex/ExactFunctor.lean Modified Mathlib/Algebra/Order/ToIntervalMod.lean Modified Mathlib/Analysis/BoxIntegral/Box/Basic.lean Modified Mathlib/Analysis/InnerProductSpace/Basic.lean Modified Mathlib/Analysis/LocallyConvex/WithSeminorms.lean Modified Mathlib/Analysis/NormedSpace/OperatorNorm/NormedSpace.lean Modified Mathlib/Analysis/RCLike/Basic.lean Modified Mathlib/Analysis/SpecificLimits/Normed.lean Modified Mathlib/CategoryTheory/Abelian/Exact.lean Modified Mathlib/CategoryTheory/Bicategory/Kan/Adjunction.lean Modified Mathlib/FieldTheory/Galois.lean Modified Mathlib/FieldTheory/KummerExtension.lean Modified Mathlib/GroupTheory/Nilpotent.lean Modified Mathlib/LinearAlgebra/Eigenspace/Zero.lean Modified Mathlib/MeasureTheory/Group/Action.lean Modified Mathlib/NumberTheory/FLT/Basic.lean Modified Mathlib/Order/CompactlyGenerated/Basic.lean Modified Mathlib/Order/Height.lean Modified Mathlib/Order/WellFoundedSet.lean Modified Mathlib/RingTheory/Bezout.lean Modified Mathlib/RingTheory/DiscreteValuationRing/TFAE.lean Modified Mathlib/RingTheory/Flat/EquationalCriterion.lean Modified Mathlib/RingTheory/Henselian.lean Modified Mathlib/RingTheory/LocalRing/RingHom/Basic.lean Modified Mathlib/RingTheory/Valuation/Basic.lean Modified Mathlib/RingTheory/Valuation/ValuationRing.lean Modified Mathlib/SetTheory/Ordinal/Topology.lean Modified Mathlib/Topology/Algebra/Group/SubmonoidClosure.lean Modified Mathlib/Topology/Category/CompHaus/EffectiveEpi.lean Modified Mathlib/Topology/Category/Profinite/EffectiveEpi.lean Modified Mathlib/Topology/Category/Stonean/EffectiveEpi.lean Modified Mathlib/Topology/Inseparable.lean Modified Mathlib/Topology/LocallyClosed.lean Modified Mathlib/Topology/LocallyConstant/Basic.lean Modified Mathlib/Topology/NoetherianSpace.lean Modified Mathlib/Topology/Order/LeftRightNhds.lean Modified Mathlib/Topology/Separation.lean Modified Mathlib/Topology/UniformSpace/UniformConvergence.lean 2024-09-23 23:48:48 2625464 chore(scripts/create-adaptation-pr): Add automatic mode using zulip-send (#17060) ESTIMATED CHANGES Modified scripts/create-adaptation-pr.sh 2024-09-23 21:06:06 3b44012 feat: The computable functions are closed under if-then-else definitions with computable predicates (#17039) As discussed at https://leanprover.zulipchat.com/#narrow/stream/217875-Is-there-code-for-X.3F/topic/by.20decide.20implies.20Computable/near/471964724 ESTIMATED CHANGES Modified Mathlib/Computability/Halting.lean + theorem ComputablePred.ite 2024-09-23 20:26:00 0ad1d17 feat: `a⁺ = b⁺ ∧ a⁻ = b⁻ ↔ a = b` (#17061) ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Group/PosPart.lean + theorem leOnePart_lt + theorem oneLePart_leOnePart_inj + theorem oneLePart_leOnePart_injective + theorem oneLePart_lt 2024-09-23 19:41:01 c133269 feat(Order/SuccPred/Limit): `IsSuccPrelimit.le_iff_forall_le` (#17026) ESTIMATED CHANGES Modified Mathlib/Order/SuccPred/Limit.lean + theorem Order.IsPredPrelimit.le_iff_forall_le + theorem Order.IsPredPrelimit.lt_iff_exists_lt + theorem Order.IsSuccPrelimit.le_iff_forall_le + theorem Order.IsSuccPrelimit.lt_iff_exists_lt 2024-09-23 18:16:12 5b806f5 refactor: Unsimp `div_pow`/`div_zpow` (#17019) ... and additive versions. These lemmas are not affine (`n` appears twice on the RHS and only once on the LHS). Also note that `mul_pow` and `mul_zpow` are analogous but not simp. From LeanAPAP ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Basic.lean Modified Mathlib/Analysis/Analytic/Basic.lean Modified Mathlib/Analysis/SpecificLimits/Normed.lean Modified Mathlib/Data/Real/GoldenRatio.lean Modified Mathlib/FieldTheory/Differential/Basic.lean Modified Mathlib/LinearAlgebra/RootSystem/Defs.lean Modified Mathlib/Topology/Algebra/Field.lean 2024-09-23 18:06:28 8192b1a feature(Analysis/Normed/Module/Dual): Add a few polar lemmas (#16426) Adds a few trivial polar lemmas. CC: @urkud ESTIMATED CHANGES Modified Mathlib/Analysis/LocallyConvex/Polar.lean + theorem LinearMap.polar_nonempty Modified Mathlib/Analysis/Normed/Module/Dual.lean + theorem NormedSpace.polar_empty + theorem NormedSpace.polar_nonempty + theorem NormedSpace.polar_zero + theorem NormedSpace.zero_mem_polar 2024-09-23 17:07:28 b978dc4 doc: fix a typo in étale algebra definition (#17056) ESTIMATED CHANGES Modified Mathlib/RingTheory/Etale/Basic.lean 2024-09-23 16:51:21 7e01848 feat(NumberField/CanonicalEmbedding/FundamentalCone): Prove equivalence with principal ideals (#12333) We prove that there is an equiv between the nonzero integral points in the fundamental cone and the nonzero integral ideals of `K` and that this equiv preserves norm. This PR is part of the proof of the Analytic Class Number Formula. ESTIMATED CHANGES Modified Mathlib/NumberTheory/NumberField/CanonicalEmbedding/FundamentalCone.lean + theorem NumberField.mixedEmbedding.fundamentalCone.card_isPrincipal_norm_eq_mul_torsion + theorem NumberField.mixedEmbedding.fundamentalCone.card_isPrincipal_norm_le_mul_torsion + def NumberField.mixedEmbedding.fundamentalCone.integralPointEquiv + def NumberField.mixedEmbedding.fundamentalCone.integralPointEquivNorm + theorem NumberField.mixedEmbedding.fundamentalCone.integralPointEquivNorm_apply_fst + theorem NumberField.mixedEmbedding.fundamentalCone.integralPointEquiv_apply_fst + def NumberField.mixedEmbedding.fundamentalCone.integralPointQuotEquivAssociates + theorem NumberField.mixedEmbedding.fundamentalCone.integralPointQuotEquivAssociates_apply + def NumberField.mixedEmbedding.fundamentalCone.integralPointToAssociates + theorem NumberField.mixedEmbedding.fundamentalCone.integralPointToAssociates_apply + theorem NumberField.mixedEmbedding.fundamentalCone.integralPointToAssociates_eq_iff + theorem NumberField.mixedEmbedding.fundamentalCone.integralPointToAssociates_surjective + theorem NumberField.mixedEmbedding.fundamentalCone.integralPoint_torsionSMul_stabilizer 2024-09-23 15:47:58 2aa39ca feat: add `map_i[I]nf` for sub(semi)ring, subalgebra, subfield etc. (#15113) ... which require that the map in question is injective (this automatically holds for fields). Added for: - sub(semi)group, submonoid, and their additive counterpart - sub(semi)ring, (star)subalgebra, and their non-unital counterpart - subfield and intermediate fields. Also add `(coe|mem)_iInf` for subfield and (non-unital)subsemiring. ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/NonUnitalSubalgebra.lean + theorem NonUnitalAlgebra.map_iInf + theorem NonUnitalAlgebra.map_inf Modified Mathlib/Algebra/Algebra/Subalgebra/Basic.lean + theorem Algebra.map_iInf + theorem Algebra.map_inf Modified Mathlib/Algebra/Field/Subfield.lean + theorem Subfield.coe_iInf + theorem Subfield.map_iInf + theorem Subfield.map_inf + theorem Subfield.mem_iInf Modified Mathlib/Algebra/Group/Subgroup/Basic.lean + theorem Subgroup.map_iInf + theorem Subgroup.map_inf Modified Mathlib/Algebra/Group/Submonoid/Operations.lean + theorem Submonoid.map_iInf + theorem Submonoid.map_inf Modified Mathlib/Algebra/Group/Subsemigroup/Operations.lean + theorem Subsemigroup.map_iInf + theorem Subsemigroup.map_inf Modified Mathlib/Algebra/Ring/Subring/Basic.lean + theorem Subring.map_iInf + theorem Subring.map_inf Modified Mathlib/Algebra/Ring/Subsemiring/Basic.lean + theorem Subsemiring.coe_iInf + theorem Subsemiring.map_iInf + theorem Subsemiring.map_inf + theorem Subsemiring.mem_iInf Modified Mathlib/Algebra/Star/NonUnitalSubalgebra.lean + theorem NonUnitalStarAlgebra.map_iInf + theorem NonUnitalStarAlgebra.map_inf Modified Mathlib/Algebra/Star/Subalgebra.lean + theorem StarSubalgebra.map_iInf + theorem StarSubalgebra.map_inf Modified Mathlib/FieldTheory/Adjoin.lean + theorem IntermediateField.map_iInf + theorem IntermediateField.map_inf Modified Mathlib/RingTheory/NonUnitalSubring/Basic.lean + theorem NonUnitalSubring.map_iInf + theorem NonUnitalSubring.map_inf Modified Mathlib/RingTheory/NonUnitalSubsemiring/Basic.lean + theorem NonUnitalSubsemiring.coe_iInf + theorem NonUnitalSubsemiring.map_iInf + theorem NonUnitalSubsemiring.map_inf + theorem NonUnitalSubsemiring.mem_iInf 2024-09-23 14:56:15 305ddf1 feat: maximal upper/minimal lower bounds of finset elements (#16970) Originally motivated by the Carleson project. We rename `Finite.exists_ge_minimal` to `Finite.exists_minimal_le` and add `Finset` and `Set.Finite` versions. ESTIMATED CHANGES Modified Mathlib/Data/Fintype/Order.lean - theorem Finite.exists_ge_minimal +/- theorem Finite.exists_le_maximal + theorem Finite.exists_minimal_le + theorem Finset.exists_le_maximal + theorem Finset.exists_minimal_le + theorem Set.Finite.exists_le_maximal + theorem Set.Finite.exists_minimal_le Modified Mathlib/Order/Minimal.lean +/- theorem setOf_maximal_subset 2024-09-23 14:47:27 9c7175d feat(CategoryTheory): `MonoidalClosed` instance on functors to `Type` (#13710) This PR defines an instance of `MonoidalClosed` on `C ⥤ Type max w v u` where `C : Type u` with `[Category.{v} C]`, and `w` is an arbitrary universe. An explicit internal hom functor is constructed, and is proved to be a right adjoint to `tensorLeft`. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Closed/FunctorToTypes.lean + def CategoryTheory.FunctorToTypes.adj + def CategoryTheory.FunctorToTypes.functorHomEquiv + def CategoryTheory.FunctorToTypes.rightAdj + def CategoryTheory.FunctorToTypes.rightAdj_map Modified Mathlib/CategoryTheory/Functor/FunctorHom.lean 2024-09-23 13:56:36 0c560e4 chore(Data/Finset): move non-lattice lemma out of lattice file (#17048) This lemma doesn't require finset lattice machinery to prove, and is out-of-place in its current location. Thus, we move it alongside other `Finset.range` lemmas. This is in part so that this lemma can be used without importing more of mathlib, and in part to help with a split of the lattice file, which would leave this particular lemma essentially homeless. ESTIMATED CHANGES Modified Mathlib/Data/Finset/Basic.lean + theorem Finset.Finset.exists_nat_subset_range Modified Mathlib/Data/Finset/Lattice.lean - theorem Finset.exists_nat_subset_range 2024-09-23 13:56:35 3eedc3b feat(RingTheory/Valuation): add one lemma `isEquiv_iff_val_lt_val` (#16764) Add a single lemma `Valuation.isEquiv_iff_val_lt_val`. ESTIMATED CHANGES Modified Mathlib/RingTheory/Valuation/Basic.lean + theorem Valuation.isEquiv_iff_val_lt_val 2024-09-23 13:07:24 596cf19 chore: update Mathlib dependencies 2024-09-23 (#17050) This PR updates the Mathlib dependencies. ESTIMATED CHANGES Modified lake-manifest.json 2024-09-23 12:22:53 9a329fb feat: `⌈a⌉ < 2 * a` (#17024) From LeanAPAP ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Floor.lean + theorem Int.ceil_div_ceil_inv_sub_one + theorem Int.ceil_le_mul + theorem Int.ceil_le_two_mul + theorem Int.ceil_lt_iff + theorem Int.ceil_lt_mul + theorem Int.ceil_lt_two_mul + theorem Int.div_two_lt_floor + theorem Int.le_ceil_iff + theorem Int.mul_lt_floor + theorem Nat.ceil_le_mul + theorem Nat.ceil_le_two_mul + theorem Nat.ceil_lt_mul + theorem Nat.ceil_lt_two_mul + theorem Nat.div_two_lt_floor + theorem Nat.mul_lt_floor Modified Mathlib/Algebra/Order/Ring/Cast.lean 2024-09-23 11:56:11 ac537a4 chore: generalize `IsBoundedBilinearMap` to seminormed spaces (#17011) The claim in `Mathlib/Analysis/NormedSpace/OperatorNorm/NormedSpace.lean` that > This file contains statements about operator norm for which it really matters that the > underlying space has a norm (rather than just a seminorm). was not entirely true. The main trick is to case on whether the norm of an element is zero, rather than on that element itself being zero. Unfortunately this causes some minor elaboration issues downstream, but they are easy to work around. ESTIMATED CHANGES Modified Mathlib/Analysis/Calculus/ContDiff/Basic.lean Modified Mathlib/Analysis/Calculus/FDeriv/Mul.lean Modified Mathlib/Analysis/InnerProductSpace/Calculus.lean Modified Mathlib/Analysis/Normed/Operator/BoundedLinearMaps.lean +/- theorem ContinuousLinearMap.mulLeftRight_isBoundedBilinear +/- structure IsBoundedLinearMap +/- theorem isBoundedLinearMap_prod_multilinear Modified Mathlib/Analysis/NormedSpace/OperatorNorm/Bilinear.lean + theorem ContinuousLinearMap.nnnorm_smulRight_apply + theorem ContinuousLinearMap.norm_smulRightL_apply + theorem ContinuousLinearMap.norm_smulRight_apply + def ContinuousLinearMap.smulRightL Modified Mathlib/Analysis/NormedSpace/OperatorNorm/NormedSpace.lean - theorem ContinuousLinearMap.nnnorm_smulRight_apply - theorem ContinuousLinearMap.norm_smulRightL_apply - theorem ContinuousLinearMap.norm_smulRight_apply - def ContinuousLinearMap.smulRightL 2024-09-23 11:30:09 20d470b refactor: switch final use of Batteries.HashMap to Std.HashMap (#17042) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Std/Data/HashMap.lean + def Std.HashMap.mapVal Modified Mathlib/Tactic/Linarith/Datatypes.lean Modified Mathlib/Tactic/Linarith/Frontend.lean Modified Mathlib/Tactic/Linarith/Oracle/FourierMotzkin.lean +/- def Linarith.CompSource.flatten Modified Mathlib/Tactic/Linarith/Oracle/SimplexAlgorithm.lean +/- def Linarith.SimplexAlgorithm.postprocess Modified Mathlib/Tactic/Linarith/Verification.lean 2024-09-23 09:33:46 09c50fb feat: `a * a⁻¹ ≤ 1` (#17023) From LeanAPAP ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Field/Defs.lean + theorem inv_mul_le_one + theorem inv_mul_left_le + theorem inv_mul_right_le + theorem le_inv_mul_left + theorem le_inv_mul_right + theorem le_mul_inv_left + theorem le_mul_inv_right + theorem mul_inv_le_one + theorem mul_inv_left_le + theorem mul_inv_right_le 2024-09-23 08:50:51 b4dda71 chore(*): Use non-greek variable names here and there (#17035) ... for monoids, rings, and fields. ESTIMATED CHANGES Modified Mathlib/Algebra/Associated/OrderedCommMonoid.lean Modified Mathlib/Algebra/Field/Basic.lean +/- theorem add_div' +/- theorem add_div +/- theorem add_div_eq_mul_add_div +/- theorem div_add' +/- theorem div_add_div +/- theorem div_add_div_same +/- theorem ofDual_ratCast +/- theorem ofLex_ratCast +/- theorem toDual_ratCast +/- theorem toLex_ratCast Modified Mathlib/Algebra/Field/Defs.lean +/- theorem NNRat.cast_def +/- theorem NNRat.smul_def +/- theorem NNRat.smul_one_eq_cast 2024-09-23 08:50:49 5d4874c refactor: Make `Finset.sum_le_sum_of_subset_of_nonneg` be gcongr (#17022) From LeanAPAP ESTIMATED CHANGES Modified Mathlib/Algebra/Order/BigOperators/Group/Finset.lean Modified Mathlib/Analysis/Asymptotics/SpecificAsymptotics.lean Modified Mathlib/Analysis/SpecialFunctions/Bernstein.lean 2024-09-23 08:41:16 6fd58d5 doc(Algebra/AlgebraicCard): update docstring (#17031) ESTIMATED CHANGES Modified Mathlib/Algebra/AlgebraicCard.lean 2024-09-23 03:11:12 9890065 feat(Counterexamples/GameMultiplication): pre-game product cannot be lifted to games (#15764) We show the existence of pre-games `x₁, x₂, y` with `x₁ ≈ x₂` but `x₁ * y ≉ x₂ * y`. ESTIMATED CHANGES Modified Counterexamples.lean Added Counterexamples/GameMultiplication.lean + theorem Counterexample.PGame.mul_not_lift + theorem Counterexample.PGame.neg_star' + def Counterexample.PGame.star' + theorem Counterexample.PGame.star'_equiv_star + theorem Counterexample.PGame.star'_mul_star_lf + theorem Counterexample.PGame.star_sq Modified Mathlib/SetTheory/Game/PGame.lean + theorem SetTheory.PGame.star_lf_zero + theorem SetTheory.PGame.zero_lf_star 2024-09-23 00:11:10 78c142c feat(Algebra/Group/Equiv/TypeTags): moving `Multiplicative` inside pi types (#17040) Add equivalences to move `Multiplicative` and `Additive` into the codomain of a pi type, both dependent and non-dependent. ```lean Multiplicative (∀ i : ι, K i) ≃* (∀ i : ι, Multiplicative (K i)) Multiplicative (ι → G) ≃* (ι → Multiplicative G) Additive (∀ i : ι, K i) ≃+ (∀ i : ι, Additive (K i)) Additive (ι → G) ≃+ (ι → Additive G) ``` Also add corresponding `Prod` equivalences. From AperiodicMonotilesLean. ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Equiv/TypeTags.lean + def AddEquiv.piAdditive + def AddEquiv.prodAdditive + def MulEquiv.piMultiplicative + def MulEquiv.prodMultiplicative 2024-09-22 18:19:50 ed1a8a0 feat: `Fintype.prod_ite_mem` (#17017) This specializes the existing `Finset.prod_ite_mem`. From LeanAPAP ESTIMATED CHANGES Modified Mathlib/Algebra/BigOperators/Group/Finset.lean + theorem Fintype.prod_ite_mem Modified Mathlib/Algebra/Module/BigOperators.lean Modified Mathlib/Combinatorics/SetFamily/FourFunctions.lean 2024-09-22 15:36:18 da16ebc feat(Finset): `(a • s).dens = s.dens` (#17020) From LeanAPAP ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Pointwise/Finset/Basic.lean + theorem Finset.dens_smul_finset 2024-09-22 00:14:25 ba3db16 chore(scripts): update nolints.json (#17010) I am happy to remove some nolints for you! ESTIMATED CHANGES Modified scripts/nolints.json 2024-09-21 17:09:53 831db37 chore: reorganize RingEquiv declarations (#16908) The API for the various `*Equiv` types is inconsistent both in what results are exposed and how they are organized. Previously, in #16867, we started improving the latter, by organizing results into sections for `Mul/AddEquiv` and `AlgEquiv`, and putting the same results in the same order within those. This PR updates RingEquiv to follow the same structure. ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Equiv/Basic.lean Modified Mathlib/Algebra/Ring/Equiv.lean 2024-09-21 12:33:48 ddb07e5 feat(Order/ConditionallyCompleteLattice/Basic): `not_mem_of_lt_csInf'` (#16988) ESTIMATED CHANGES Modified Mathlib/Order/ConditionallyCompleteLattice/Basic.lean + theorem not_mem_of_lt_csInf' 2024-09-21 12:33:47 94533cc feat: There are only countably many computable functions (#16935) Adding a brief proof that there are countably many computable functions to @digama0 's file. This is a key basic result in computability theory. ESTIMATED CHANGES Modified Mathlib/Computability/PartrecCode.lean 2024-09-21 12:24:58 d0789f1 doc(ArchimedeanDensely): fix a typo (#16969) ESTIMATED CHANGES Modified Mathlib/GroupTheory/ArchimedeanDensely.lean 2024-09-21 11:41:45 db728c7 feat(CategoryTheory/Filtered): Finality of StructuredArrow.pre (#16728) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Comma/StructuredArrow.lean + def CategoryTheory.CostructuredArrow.preEquivalence.functor + def CategoryTheory.CostructuredArrow.preEquivalence.inverse + def CategoryTheory.CostructuredArrow.preEquivalence + def CategoryTheory.StructuredArrow.preEquivalence.functor + def CategoryTheory.StructuredArrow.preEquivalence.inverse + def CategoryTheory.StructuredArrow.preEquivalence Modified Mathlib/CategoryTheory/Limits/Final.lean 2024-09-21 08:59:13 93c912f chore(Algebra/Basic): drop an unneeded instance (#16987) Deletions: - NoZeroSMulDivisors.Algebra.noZeroSMulDivisors This instance was weaker than `GroupWithZero.toNoZeroSMulDivisors`, see also [Zulip](https://leanprover.zulipchat.com/#narrow/stream/116395-maths/topic/.E2.9C.94.20NoZeroSMulDivisors.2EAlgebra.2EnoZeroSMulDivisors) ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/Basic.lean Modified Mathlib/Algebra/Module/Basic.lean 2024-09-20 20:19:10 7954196 chore(Tactic/GCongr): new file for `@[gcongr] leanInitLemma` (#16788) Also add some missing attrs. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Order/GroupWithZero/Unbundled.lean Modified Mathlib/Algebra/Order/Module/OrderedSMul.lean Modified Mathlib/Analysis/Normed/Group/Seminorm.lean Modified Mathlib/Data/Int/ModEq.lean Modified Mathlib/Data/List/Infix.lean Modified Mathlib/Data/NNReal/Basic.lean Modified Mathlib/Data/Nat/Defs.lean Modified Mathlib/Data/Nat/Factorial/Basic.lean Modified Mathlib/Order/Lattice.lean Modified Mathlib/Tactic.lean Modified Mathlib/Tactic/GCongr.lean Added Mathlib/Tactic/GCongr/CoreAttrs.lean Modified scripts/noshake.json 2024-09-20 19:31:10 555be78 feat(Data/Finset): card_eq_succ in terms of cons (#16951) Also add `cons_ne_empty` and make it simp, also to match `insert_ne_empty` ESTIMATED CHANGES Modified Mathlib/Data/Finset/Basic.lean + theorem Finset.cons_ne_empty Modified Mathlib/Data/Finset/Card.lean + theorem Finset.card_eq_succ_iff_cons 2024-09-20 18:56:41 f8da9a5 feat(Order/Group): add `zpow_right_strictAnti` (#16937) Also use it to golf `Subgroup.mem_closure_singleton_iff_existsUnique_zpow`. ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Group/Basic.lean + theorem zpow_right_strictAnti Modified Mathlib/Algebra/Order/ToIntervalMod.lean Modified Mathlib/GroupTheory/ArchimedeanDensely.lean Modified Mathlib/MeasureTheory/Integral/Periodic.lean Modified Mathlib/Topology/Instances/AddCircle.lean 2024-09-20 16:59:27 1912fa5 chore: move things around in the `Analytic` folder (#16972) We move some things in the `Analytic` folder, particularly in and out of `Basic`. Notably * The fact that the addition and subtraction are analytic is moved from `Basic` to `Constructions`, where there are already the same facts for multiplication and scalar multiplication * Congruence lemmas are moved from `Within` to `Basic` * Uniqueness of power series is moved from `Basic` to the (already existing file!) `Uniqueness` * Order of imports is swapped between `Calculus.FDeriv.Analytic` and `Analytic.Within`. We also add a few docstrings to the files to show their structure. This gives a more principled hierarchy, better suited to the addition of future lemmas. This PR is just moving things around, no statement has been added or removed. ESTIMATED CHANGES Modified Mathlib/Analysis/Analytic/Basic.lean - theorem AnalyticAt.add - theorem AnalyticAt.neg - theorem AnalyticAt.sub - theorem AnalyticOn.add - theorem AnalyticOn.neg - theorem AnalyticOn.sub - theorem AnalyticWithinAt.add + theorem AnalyticWithinAt.congr + theorem AnalyticWithinAt.congr_of_eventuallyEq - theorem AnalyticWithinAt.neg - theorem AnalyticWithinAt.sub - theorem AnalyticWithinOn.add + theorem AnalyticWithinOn.congr + theorem AnalyticWithinOn.mono - theorem AnalyticWithinOn.neg - theorem AnalyticWithinOn.sub - theorem Asymptotics.IsBigO.continuousMultilinearMap_apply_eq_zero - theorem HasFPowerSeriesAt.add - theorem HasFPowerSeriesAt.apply_eq_zero - theorem HasFPowerSeriesAt.eq_formalMultilinearSeries - theorem HasFPowerSeriesAt.eq_formalMultilinearSeries_of_eventually - theorem HasFPowerSeriesAt.eq_zero - theorem HasFPowerSeriesAt.eq_zero_of_eventually - theorem HasFPowerSeriesAt.neg - theorem HasFPowerSeriesAt.sub - theorem HasFPowerSeriesOnBall.add - theorem HasFPowerSeriesOnBall.exchange_radius - theorem HasFPowerSeriesOnBall.neg - theorem HasFPowerSeriesOnBall.r_eq_top_of_exists - theorem HasFPowerSeriesOnBall.sub - theorem HasFPowerSeriesWithinAt.add + theorem HasFPowerSeriesWithinAt.congr - theorem HasFPowerSeriesWithinAt.neg - theorem HasFPowerSeriesWithinAt.sub - theorem HasFPowerSeriesWithinOnBall.add + theorem HasFPowerSeriesWithinOnBall.congr - theorem HasFPowerSeriesWithinOnBall.neg - theorem HasFPowerSeriesWithinOnBall.sub - theorem analyticAt_const - theorem analyticOn_const - theorem analyticWithinAt_const - theorem analyticWithinOn_const - theorem hasFPowerSeriesAt_const - theorem hasFPowerSeriesOnBall_const Modified Mathlib/Analysis/Analytic/CPolynomial.lean Modified Mathlib/Analysis/Analytic/ChangeOrigin.lean Modified Mathlib/Analysis/Analytic/Constructions.lean + theorem AnalyticAt.add + theorem AnalyticAt.neg + theorem AnalyticAt.sub + theorem AnalyticOn.add + theorem AnalyticOn.neg + theorem AnalyticOn.sub + theorem AnalyticWithinAt.add + theorem AnalyticWithinAt.neg + theorem AnalyticWithinAt.sub + theorem AnalyticWithinOn.add + theorem AnalyticWithinOn.neg + theorem AnalyticWithinOn.sub + theorem HasFPowerSeriesAt.add + theorem HasFPowerSeriesAt.neg + theorem HasFPowerSeriesAt.sub + theorem HasFPowerSeriesOnBall.add + theorem HasFPowerSeriesOnBall.neg + theorem HasFPowerSeriesOnBall.sub + theorem HasFPowerSeriesWithinAt.add + theorem HasFPowerSeriesWithinAt.neg + theorem HasFPowerSeriesWithinAt.sub + theorem HasFPowerSeriesWithinOnBall.add + theorem HasFPowerSeriesWithinOnBall.neg + theorem HasFPowerSeriesWithinOnBall.sub + theorem analyticAt_const + theorem analyticOn_const + theorem analyticWithinAt_const + theorem analyticWithinOn_const + theorem hasFPowerSeriesAt_const + theorem hasFPowerSeriesOnBall_const Modified Mathlib/Analysis/Analytic/Uniqueness.lean + theorem Asymptotics.IsBigO.continuousMultilinearMap_apply_eq_zero + theorem HasFPowerSeriesAt.apply_eq_zero + theorem HasFPowerSeriesAt.eq_formalMultilinearSeries + theorem HasFPowerSeriesAt.eq_formalMultilinearSeries_of_eventually + theorem HasFPowerSeriesAt.eq_zero + theorem HasFPowerSeriesAt.eq_zero_of_eventually + theorem HasFPowerSeriesOnBall.exchange_radius + theorem HasFPowerSeriesOnBall.r_eq_top_of_exists Modified Mathlib/Analysis/Analytic/Within.lean - theorem AnalyticWithinAt.congr - theorem AnalyticWithinAt.congr_of_eventuallyEq - theorem AnalyticWithinAt.contDiffWithinAt - theorem AnalyticWithinOn.congr - theorem AnalyticWithinOn.contDiffOn - theorem AnalyticWithinOn.continuousOn - theorem AnalyticWithinOn.mono - theorem HasFPowerSeriesWithinAt.congr - theorem HasFPowerSeriesWithinOnBall.congr Modified Mathlib/Analysis/Calculus/FDeriv/Analytic.lean + theorem AnalyticWithinAt.contDiffWithinAt + theorem AnalyticWithinOn.contDiffOn Modified Mathlib/Analysis/Complex/CauchyIntegral.lean Modified Mathlib/Geometry/Manifold/AnalyticManifold.lean 2024-09-20 12:45:46 87c9362 doc: Add Gödel's Incompleteness Theorem to Freek's list (#16968) Add formalized proofs of Gödel's first and second incompleteness theorem to Freek Wiedijk's list. I may have the wrong notation to describe multiple theorems, please tell me if it is. ESTIMATED CHANGES Modified docs/100.yaml 2024-09-20 12:33:49 124ab81 feat(NumberField/CanonicalEmbedding/FundamentalCone): Define the subset of integral points (#16921) Define `fundamentalCone.integralPoint` which is the subset of points in the `fundamentalCone` that are images of algebraic integers. We prove in particular that there is an action of the torsion on `integralPoint` that preserves the norm. This PR is part of the proof of the Analytic Class Number Formula. ESTIMATED CHANGES Modified Mathlib/NumberTheory/NumberField/CanonicalEmbedding/Basic.lean + theorem NumberField.mixedEmbedding.span_latticeBasis Modified Mathlib/NumberTheory/NumberField/CanonicalEmbedding/FundamentalCone.lean + theorem NumberField.mixedEmbedding.fundamentalCone.exists_unique_preimage_of_integralPoint + theorem NumberField.mixedEmbedding.fundamentalCone.exists_unitSMul_mem_integralPoint + def NumberField.mixedEmbedding.fundamentalCone.intNorm + theorem NumberField.mixedEmbedding.fundamentalCone.intNorm_coe + def NumberField.mixedEmbedding.fundamentalCone.integralPoint + theorem NumberField.mixedEmbedding.fundamentalCone.integralPoint_ne_zero + theorem NumberField.mixedEmbedding.fundamentalCone.mem_integralPoint + theorem NumberField.mixedEmbedding.fundamentalCone.mixedEmbedding_preimageOfIntegralPoint + def NumberField.mixedEmbedding.fundamentalCone.preimageOfIntegralPoint + theorem NumberField.mixedEmbedding.fundamentalCone.preimageOfIntegralPoint_mixedEmbedding + def NumberField.mixedEmbedding.fundamentalCone.quotIntNorm + theorem NumberField.mixedEmbedding.fundamentalCone.quotIntNorm_apply + theorem NumberField.mixedEmbedding.fundamentalCone.torsion_unitSMul_mem_integralPoint 2024-09-20 11:49:27 a2208a9 chore: pi_bounds cleanup, add mathematica script (#16930) * Rewrites the `pi_(lower|upper)_bound` tactics to allow some more general input * Clean up outdated porting notes * Add a mathematica script so people can go further if they want * Rename the pi bound theorems to have names like `pi_gt_d6` since the existing names do not scale well * `pi_gt_314` -> `pi_gt_d2` * `pi_lt_315` -> `pi_lt_d2` * `pi_gt_31415` -> `pi_gt_d4` * `pi_lt_31416` -> `pi_lt_d4` * `pi_gt_3141592` -> `pi_gt_d6` * `pi_lt_3141593` -> `pi_lt_d6` * Add a 20-digit calculation of pi [on request](https://leanprover.zulipchat.com/#narrow/stream/217875-Is-there-code-for-X.3F/topic/Code.20to.20generate.20the.20pi.20bound.20witnesses/near/470184223) since this file is not slow anymore ESTIMATED CHANGES Modified Mathlib/Data/Real/Pi/Bounds.lean - theorem Real.pi_gt_3141592 - theorem Real.pi_gt_31415 - theorem Real.pi_gt_314 + theorem Real.pi_gt_d20 + theorem Real.pi_gt_d2 + theorem Real.pi_gt_d4 + theorem Real.pi_gt_d6 +/- theorem Real.pi_gt_sqrtTwoAddSeries - theorem Real.pi_lt_3141593 - theorem Real.pi_lt_31416 - theorem Real.pi_lt_315 + theorem Real.pi_lt_d20 + theorem Real.pi_lt_d2 + theorem Real.pi_lt_d4 + theorem Real.pi_lt_d6 + theorem Real.pi_lt_four 2024-09-20 08:39:38 33b95b3 feat: a measurable cylinder is measurable (#16939) Add this easy lemma. ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Constructions/Cylinders.lean + theorem MeasurableSet.of_mem_measurableCylinders 2024-09-20 03:37:39 6dcd0d9 feat: `tfae_have ... :=` syntax (#10653) This PR refactors `tfae_have` in terms of `have`, thus supporting all the syntax that `have` supports. We can now also write: ```lean example : TFAE [P, Q, R] := by tfae_have 1 → 2 := sorry tfae_have 2 → 1 | p => f p tfae_have ⟨mp, mpr⟩ : 2 ↔ 3 := sorry ... ``` Previously, `tfae_have` exclusively pushed a new goal to the top of the goal list, requiring that the result be proved via tactic. This PR does not deprecate or remove the "old-style" syntax, but does de-document it. The removal of old-style syntax is done in #11000. This tees us up for a `tfae` block tactic (#10991, #11003). See [Zulip](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/tfae_have.201.20.E2.86.92.202.20.3A.3D.20syntax). ESTIMATED CHANGES Modified Mathlib/Tactic/TFAE.lean +/- def Mathlib.Tactic.TFAE.elabIndex + def Mathlib.Tactic.TFAE.elabTFAEType - def Mathlib.Tactic.TFAE.mkImplType - def Mathlib.Tactic.TFAE.mkTFAEHypName + def Mathlib.Tactic.TFAE.mkTFAEId - def Mathlib.Tactic.TFAE.tfaeHaveCore Modified scripts/noshake.json Modified test/tfae.lean 2024-09-20 03:09:41 94db679 feat(Topology/UniformSpace): `Subtype.isComplete_iff` (#16730) In the style of `Subtype.isCompact_iff` ESTIMATED CHANGES Modified Mathlib/Topology/UniformSpace/UniformEmbedding.lean + theorem Subtype.isComplete_iff + theorem UniformEmbedding.isComplete_iff + theorem UniformInducing.isComplete_iff 2024-09-20 02:10:14 c01cdb4 chore: use List.eraseDups in simps (#16234) ESTIMATED CHANGES Modified Mathlib/Combinatorics/Quiver/Path.lean Modified Mathlib/Data/List/EditDistance/Defs.lean Modified Mathlib/Tactic/Simps/Basic.lean 2024-09-20 01:19:01 85cefec chore(Data/Finset): change nonempty_cons to cons_nonempty (#16952) In analogy with insert_nonempty (and other Finset nonempty lemmata), this should be named `cons_nonempty` rather than `nonempty_cons`. ESTIMATED CHANGES Modified Mathlib/Data/Finset/Basic.lean + theorem Finset.cons_nonempty - theorem Finset.nonempty_cons Modified Mathlib/Data/Finset/Lattice.lean 2024-09-20 00:43:00 0f3d1c6 chore: revert holder -> hoelder (#16955) Per https://leanprover.zulipchat.com/#narrow/stream/116290-rss/topic/Recent.20Commits.20to.20mathlib4.3Amaster/near/471490433 ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/MeasureTheory/Measure/Hausdorff.lean - theorem HoelderOnWith.hausdorffMeasure_image_le + theorem HolderOnWith.hausdorffMeasure_image_le Renamed Mathlib/Order/JordanHoelder.lean to Mathlib/Order/JordanHolder.lean - theorem CompositionSeries.jordan_hoelder + theorem CompositionSeries.jordan_holder - theorem JordanHoelderLattice.IsMaximal.iso_refl - theorem JordanHoelderLattice.isMaximal_inf_right_of_isMaximal_sup - theorem JordanHoelderLattice.isMaximal_of_eq_inf - theorem JordanHoelderLattice.second_iso_of_eq + theorem JordanHolderLattice.IsMaximal.iso_refl + theorem JordanHolderLattice.isMaximal_inf_right_of_isMaximal_sup + theorem JordanHolderLattice.isMaximal_of_eq_inf + theorem JordanHolderLattice.second_iso_of_eq Modified Mathlib/RingTheory/SimpleModule.lean - def JordanHoelderModule.Iso - theorem JordanHoelderModule.iso_symm - theorem JordanHoelderModule.iso_trans - theorem JordanHoelderModule.second_iso + def JordanHolderModule.Iso + theorem JordanHolderModule.iso_symm + theorem JordanHolderModule.iso_trans + theorem JordanHolderModule.second_iso Modified Mathlib/Topology/MetricSpace/HausdorffDimension.lean - theorem HoelderOnWith.dimH_image_le - theorem HoelderWith.dimH_image_le - theorem HoelderWith.dimH_range_le + theorem HolderOnWith.dimH_image_le + theorem HolderWith.dimH_image_le + theorem HolderWith.dimH_range_le Renamed Mathlib/Topology/MetricSpace/Hoelder.lean to Mathlib/Topology/MetricSpace/Holder.lean - theorem HoelderOnWith.comp - theorem HoelderOnWith.comp_hoelderWith - theorem HoelderOnWith.ediam_image_inter_le - theorem HoelderOnWith.ediam_image_inter_le_of_le - theorem HoelderOnWith.ediam_image_le - theorem HoelderOnWith.ediam_image_le_of_le - theorem HoelderOnWith.ediam_image_le_of_subset - theorem HoelderOnWith.ediam_image_le_of_subset_of_le - theorem HoelderOnWith.edist_le - theorem HoelderOnWith.edist_le_of_le - def HoelderOnWith - theorem HoelderWith.add - theorem HoelderWith.comp - theorem HoelderWith.comp_hoelderOnWith - theorem HoelderWith.const - theorem HoelderWith.dist_le - theorem HoelderWith.dist_le_of_le - theorem HoelderWith.ediam_image_le - theorem HoelderWith.edist_le - theorem HoelderWith.edist_le_of_le - theorem HoelderWith.mono - theorem HoelderWith.nndist_le - theorem HoelderWith.nndist_le_of_le - theorem HoelderWith.of_isEmpty - theorem HoelderWith.smul - theorem HoelderWith.zero - def HoelderWith + theorem HolderOnWith.comp + theorem HolderOnWith.comp_holderWith + theorem HolderOnWith.ediam_image_inter_le + theorem HolderOnWith.ediam_image_inter_le_of_le + theorem HolderOnWith.ediam_image_le + theorem HolderOnWith.ediam_image_le_of_le + theorem HolderOnWith.ediam_image_le_of_subset + theorem HolderOnWith.ediam_image_le_of_subset_of_le + theorem HolderOnWith.edist_le + theorem HolderOnWith.edist_le_of_le + def HolderOnWith + theorem HolderWith.add + theorem HolderWith.comp + theorem HolderWith.comp_holderOnWith + theorem HolderWith.const + theorem HolderWith.dist_le + theorem HolderWith.dist_le_of_le + theorem HolderWith.ediam_image_le + theorem HolderWith.edist_le + theorem HolderWith.edist_le_of_le + theorem HolderWith.mono + theorem HolderWith.nndist_le + theorem HolderWith.nndist_le_of_le + theorem HolderWith.of_isEmpty + theorem HolderWith.smul + theorem HolderWith.zero + def HolderWith - theorem Set.Subsingleton.HoelderOnWith + theorem Set.Subsingleton.holderOnWith - theorem hoelderOnWith_empty - theorem hoelderOnWith_one - theorem hoelderOnWith_singleton - theorem hoelderOnWith_univ - theorem hoelderWith_id - theorem hoelderWith_one - theorem hoelderWith_zero_iff + theorem holderOnWith_empty + theorem holderOnWith_one + theorem holderOnWith_singleton + theorem holderOnWith_univ + theorem holderWith_id + theorem holderWith_one + theorem holderWith_zero_iff Modified docs/overview.yaml Modified docs/undergrad.yaml Modified scripts/nolints.json 2024-09-19 20:54:07 f0308a5 feat: separable measure and sufficient condition for Lp spaces to be second-countable (#12519) Define the notion of measure-dense family in a measure space, and the notion of separable measure. Prove that if a measure is separable and E is a second-countable `NormedAddCommGroup`, then the corresponding Lp space is second-countable. True in particular when the measurable space is countably generated and the measure is s-finite. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/MeasureTheory/Measure/SeparableMeasure.lean + theorem MeasureTheory.Measure.MeasureDense.fin_meas + theorem MeasureTheory.Measure.MeasureDense.fin_meas_approx + theorem MeasureTheory.Measure.MeasureDense.indicatorConstLp_subset_closure + theorem MeasureTheory.Measure.MeasureDense.nonempty' + theorem MeasureTheory.Measure.MeasureDense.nonempty + theorem MeasureTheory.Measure.MeasureDense.of_generateFrom_isSetAlgebra_finite + theorem MeasureTheory.Measure.MeasureDense.of_generateFrom_isSetAlgebra_sigmaFinite + structure MeasureTheory.Measure.MeasureDense + theorem MeasureTheory.exists_countable_measureDense + theorem MeasureTheory.isSeparable_of_sigmaFinite + theorem MeasureTheory.measureDense_measurableSet 2024-09-19 20:23:04 c8f01e7 feat: definition of a simple ring (#14503) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/RingTheory/SimpleRing/Basic.lean + theorem IsSimpleRing.isField_center + theorem IsSimpleRing.of_eq_bot_or_eq_top + theorem IsSimpleRing.one_mem_of_ne_bot + theorem IsSimpleRing.one_mem_of_ne_zero_mem + theorem isSimpleRing_iff_isField Added Mathlib/RingTheory/SimpleRing/Defs.lean Modified Mathlib/RingTheory/TwoSidedIdeal/Basic.lean Modified Mathlib/RingTheory/TwoSidedIdeal/Lattice.lean + theorem TwoSidedIdeal.one_mem_iff 2024-09-19 18:58:35 025dd76 feat(NumberTheory/LSeries): completed L-functions (#16894) Define the completed L-function for a function on `ZMod N`, and prove its functional equation. ESTIMATED CHANGES Modified Mathlib/NumberTheory/LSeries/ZMod.lean + theorem ZMod.LFunction_apply_zero_of_even + theorem ZMod.LFunction_def_even + theorem ZMod.LFunction_def_odd + theorem ZMod.LFunction_eq_completed_div_gammaFactor_even + theorem ZMod.LFunction_eq_completed_div_gammaFactor_odd + theorem ZMod.LFunction_neg_two_mul_nat_add_one + theorem ZMod.LFunction_neg_two_mul_nat_sub_one + theorem ZMod.completedLFunction_def_even + theorem ZMod.completedLFunction_def_odd + theorem ZMod.completedLFunction_eq + theorem ZMod.completedLFunction_modOne_eq + theorem ZMod.completedLFunction_one_sub_even + theorem ZMod.completedLFunction_one_sub_odd + theorem ZMod.completedLFunction_zero + theorem ZMod.differentiableAt_completedLFunction + theorem ZMod.differentiable_completedLFunction + theorem ZMod.differentiable_completedLFunction₀ 2024-09-19 18:37:51 7d7d3bf feat(Topology/AlexandrovDiscrete): generalize some lemmas (#16932) - add `mem_exterior_iff_specializes`; - prove `IsCompact.exterior_iff`; - drop `[AlexandrovDiscrete _]` assumption in some lemmas. ESTIMATED CHANGES Modified Mathlib/Topology/AlexandrovDiscrete.lean + theorem IsCompact.exterior_iff - theorem IsOpen.exterior_subset_iff +/- theorem Set.Finite.isCompact_exterior + theorem exterior_eq_exterior_iff_nhdsSet +/- theorem exterior_exterior + theorem exterior_iUnion + theorem exterior_sUnion +/- theorem exterior_subset_exterior + theorem exterior_subset_exterior_iff_nhdsSet +/- theorem exterior_union + theorem mem_exterior_iff_specializes + theorem mem_exterior_singleton 2024-09-19 18:27:53 5543748 chore(Probability/Kernel): split Kernel.Basic (#16931) Kernel.Basic becomes 3 files: - Kernel.Defs with definitions of kernels and classes of kernels - Kernel.Basic with definitions of basic kernels (deterministic, const...) - Kernel.Integral with lemmas about Bochner integrals against those basic kernels I also created a new file Independence.Integrable because the split revealed that Independence.Basic depended on the definition of Lp spaces and integrability only through two lemmas. I added one lemma, `integral_restrict` (in Kernel.Integral), because all kernels had lemmas about integral and setIntegral except that one for which the integral lemma was missing. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Probability/Independence/Basic.lean - theorem MeasureTheory.Integrable.isProbabilityMeasure_of_indepFun - theorem MeasureTheory.Memℒp.isProbabilityMeasure_of_indepFun Added Mathlib/Probability/Independence/Integrable.lean + theorem MeasureTheory.Integrable.isProbabilityMeasure_of_indepFun + theorem MeasureTheory.Memℒp.isProbabilityMeasure_of_indepFun Modified Mathlib/Probability/Independence/Kernel.lean Modified Mathlib/Probability/Kernel/Basic.lean - theorem ProbabilityTheory.IsFiniteKernel.bound_lt_top - theorem ProbabilityTheory.IsFiniteKernel.bound_ne_top - theorem ProbabilityTheory.Kernel.IsFiniteKernel.integrable - theorem ProbabilityTheory.Kernel.IsMarkovKernel.integrable - theorem ProbabilityTheory.Kernel.IsSFiniteKernel.finset_sum - theorem ProbabilityTheory.Kernel.add_apply - theorem ProbabilityTheory.Kernel.apply_congr_of_mem_measurableAtom - def ProbabilityTheory.Kernel.coeAddHom - theorem ProbabilityTheory.Kernel.coe_add - theorem ProbabilityTheory.Kernel.coe_finset_sum - theorem ProbabilityTheory.Kernel.coe_mk - theorem ProbabilityTheory.Kernel.coe_nsmul - theorem ProbabilityTheory.Kernel.coe_zero - theorem ProbabilityTheory.Kernel.ext - theorem ProbabilityTheory.Kernel.ext_fun - theorem ProbabilityTheory.Kernel.ext_fun_iff - theorem ProbabilityTheory.Kernel.ext_iff' - theorem ProbabilityTheory.Kernel.finset_sum_apply' - theorem ProbabilityTheory.Kernel.finset_sum_apply - theorem ProbabilityTheory.Kernel.integral_congr_ae₂ - theorem ProbabilityTheory.Kernel.integral_const - theorem ProbabilityTheory.Kernel.integral_deterministic' - theorem ProbabilityTheory.Kernel.integral_deterministic - theorem ProbabilityTheory.Kernel.integral_piecewise - theorem ProbabilityTheory.Kernel.isSFiniteKernel_sum - theorem ProbabilityTheory.Kernel.isSFiniteKernel_sum_of_denumerable - theorem ProbabilityTheory.Kernel.kernel_sum_seq - theorem ProbabilityTheory.Kernel.measurable - theorem ProbabilityTheory.Kernel.measure_le_bound - theorem ProbabilityTheory.Kernel.measure_sum_seq - theorem ProbabilityTheory.Kernel.nsmul_apply - theorem ProbabilityTheory.Kernel.setIntegral_const - theorem ProbabilityTheory.Kernel.setIntegral_deterministic' - theorem ProbabilityTheory.Kernel.setIntegral_deterministic - theorem ProbabilityTheory.Kernel.setIntegral_piecewise - theorem ProbabilityTheory.Kernel.setIntegral_restrict - theorem ProbabilityTheory.Kernel.sum_add - theorem ProbabilityTheory.Kernel.sum_apply' - theorem ProbabilityTheory.Kernel.sum_apply - theorem ProbabilityTheory.Kernel.sum_comm - theorem ProbabilityTheory.Kernel.sum_fintype - theorem ProbabilityTheory.Kernel.sum_zero - theorem ProbabilityTheory.Kernel.zero_apply - structure ProbabilityTheory.Kernel - theorem ProbabilityTheory.eq_zero_or_isMarkovKernel - theorem ProbabilityTheory.isFiniteKernel_of_le Added Mathlib/Probability/Kernel/Defs.lean + theorem ProbabilityTheory.IsFiniteKernel.bound_lt_top + theorem ProbabilityTheory.IsFiniteKernel.bound_ne_top + theorem ProbabilityTheory.Kernel.IsSFiniteKernel.finset_sum + theorem ProbabilityTheory.Kernel.add_apply + theorem ProbabilityTheory.Kernel.apply_congr_of_mem_measurableAtom + def ProbabilityTheory.Kernel.coeAddHom + theorem ProbabilityTheory.Kernel.coe_add + theorem ProbabilityTheory.Kernel.coe_finset_sum + theorem ProbabilityTheory.Kernel.coe_mk + theorem ProbabilityTheory.Kernel.coe_nsmul + theorem ProbabilityTheory.Kernel.coe_zero + theorem ProbabilityTheory.Kernel.ext + theorem ProbabilityTheory.Kernel.ext_fun + theorem ProbabilityTheory.Kernel.ext_fun_iff + theorem ProbabilityTheory.Kernel.ext_iff' + theorem ProbabilityTheory.Kernel.finset_sum_apply' + theorem ProbabilityTheory.Kernel.finset_sum_apply + theorem ProbabilityTheory.Kernel.isSFiniteKernel_sum + theorem ProbabilityTheory.Kernel.isSFiniteKernel_sum_of_denumerable + theorem ProbabilityTheory.Kernel.kernel_sum_seq + theorem ProbabilityTheory.Kernel.measurable + theorem ProbabilityTheory.Kernel.measure_le_bound + theorem ProbabilityTheory.Kernel.measure_sum_seq + theorem ProbabilityTheory.Kernel.nsmul_apply + theorem ProbabilityTheory.Kernel.sum_add + theorem ProbabilityTheory.Kernel.sum_apply' + theorem ProbabilityTheory.Kernel.sum_apply + theorem ProbabilityTheory.Kernel.sum_comm + theorem ProbabilityTheory.Kernel.sum_fintype + theorem ProbabilityTheory.Kernel.sum_zero + theorem ProbabilityTheory.Kernel.zero_apply + structure ProbabilityTheory.Kernel + theorem ProbabilityTheory.eq_zero_or_isMarkovKernel + theorem ProbabilityTheory.isFiniteKernel_of_le Added Mathlib/Probability/Kernel/Integral.lean + theorem ProbabilityTheory.Kernel.IsFiniteKernel.integrable + theorem ProbabilityTheory.Kernel.IsMarkovKernel.integrable + theorem ProbabilityTheory.Kernel.integral_congr_ae₂ + theorem ProbabilityTheory.Kernel.integral_const + theorem ProbabilityTheory.Kernel.integral_deterministic' + theorem ProbabilityTheory.Kernel.integral_deterministic + theorem ProbabilityTheory.Kernel.integral_piecewise + theorem ProbabilityTheory.Kernel.integral_restrict + theorem ProbabilityTheory.Kernel.setIntegral_const + theorem ProbabilityTheory.Kernel.setIntegral_deterministic' + theorem ProbabilityTheory.Kernel.setIntegral_deterministic + theorem ProbabilityTheory.Kernel.setIntegral_piecewise + theorem ProbabilityTheory.Kernel.setIntegral_restrict Modified Mathlib/Probability/Kernel/MeasurableIntegral.lean Modified Mathlib/Probability/StrongLaw.lean 2024-09-19 18:18:21 f71d180 feat(AlgebraicGeometry/EllipticCurve/Projective): implement group operation polynomials for projective coordinates (#9417) Define auxiliary polynomials for the secant-and-tangent negation `neg` and addition `add` on `Fin 3 -> F`. Note that the group operations are defined from scratch instead of pulling back the group operations from the affine case, as this will be more convenient for rewriting and allows them to be defined over a ring. I don't see an easy way to define an analogous `slope` function as in `Affine` when there are now `Z`-coordinates in the polynomials. This is the second in a series of four PRs leading to #8485 ESTIMATED CHANGES Modified Mathlib/AlgebraicGeometry/EllipticCurve/Projective.lean + theorem WeierstrassCurve.Projective.Y_eq_iff' + theorem WeierstrassCurve.Projective.Y_eq_negY_of_Y_eq + theorem WeierstrassCurve.Projective.Y_eq_of_Y_ne' + theorem WeierstrassCurve.Projective.Y_eq_of_Y_ne + theorem WeierstrassCurve.Projective.Y_ne_negY_of_Y_ne' + theorem WeierstrassCurve.Projective.Y_ne_negY_of_Y_ne + theorem WeierstrassCurve.Projective.Y_sub_Y_add_Y_sub_negY + theorem WeierstrassCurve.Projective.Y_sub_Y_mul_Y_sub_negY + def WeierstrassCurve.Projective.addU + theorem WeierstrassCurve.Projective.addU_ne_zero_of_Y_ne + theorem WeierstrassCurve.Projective.addU_of_Z_eq_zero_left + theorem WeierstrassCurve.Projective.addU_of_Z_eq_zero_right + theorem WeierstrassCurve.Projective.addU_smul + def WeierstrassCurve.Projective.addX + theorem WeierstrassCurve.Projective.addXYZ_X + theorem WeierstrassCurve.Projective.addXYZ_Y + theorem WeierstrassCurve.Projective.addXYZ_Z + theorem WeierstrassCurve.Projective.addXYZ_of_X_eq + theorem WeierstrassCurve.Projective.addXYZ_of_Z_eq_zero_left + theorem WeierstrassCurve.Projective.addXYZ_of_Z_eq_zero_right + theorem WeierstrassCurve.Projective.addXYZ_of_Z_ne_zero + theorem WeierstrassCurve.Projective.addXYZ_self + theorem WeierstrassCurve.Projective.addXYZ_smul + theorem WeierstrassCurve.Projective.addX_eq' + theorem WeierstrassCurve.Projective.addX_eq + theorem WeierstrassCurve.Projective.addX_of_X_eq + theorem WeierstrassCurve.Projective.addX_of_Z_eq_zero_left + theorem WeierstrassCurve.Projective.addX_of_Z_eq_zero_right + theorem WeierstrassCurve.Projective.addX_of_Z_ne_zero + theorem WeierstrassCurve.Projective.addX_self + theorem WeierstrassCurve.Projective.addX_smul + def WeierstrassCurve.Projective.addY + theorem WeierstrassCurve.Projective.addY_of_X_eq' + theorem WeierstrassCurve.Projective.addY_of_X_eq + theorem WeierstrassCurve.Projective.addY_of_Z_eq_zero_left + theorem WeierstrassCurve.Projective.addY_of_Z_eq_zero_right + theorem WeierstrassCurve.Projective.addY_of_Z_ne_zero + theorem WeierstrassCurve.Projective.addY_self + theorem WeierstrassCurve.Projective.addY_smul + def WeierstrassCurve.Projective.addZ + theorem WeierstrassCurve.Projective.addZ_eq' + theorem WeierstrassCurve.Projective.addZ_eq + theorem WeierstrassCurve.Projective.addZ_ne_zero_of_X_ne + theorem WeierstrassCurve.Projective.addZ_of_X_eq + theorem WeierstrassCurve.Projective.addZ_of_Z_eq_zero_left + theorem WeierstrassCurve.Projective.addZ_of_Z_eq_zero_right + theorem WeierstrassCurve.Projective.addZ_self + theorem WeierstrassCurve.Projective.addZ_smul +/- theorem WeierstrassCurve.Projective.comp_fin3 + theorem WeierstrassCurve.Projective.dblU_eq + theorem WeierstrassCurve.Projective.dblU_ne_zero_of_Y_eq + theorem WeierstrassCurve.Projective.dblU_of_Z_eq_zero + theorem WeierstrassCurve.Projective.dblU_smul + theorem WeierstrassCurve.Projective.dblXYZ_X + theorem WeierstrassCurve.Projective.dblXYZ_Y + theorem WeierstrassCurve.Projective.dblXYZ_Z + theorem WeierstrassCurve.Projective.dblXYZ_of_Y_eq + theorem WeierstrassCurve.Projective.dblXYZ_of_Z_eq_zero + theorem WeierstrassCurve.Projective.dblXYZ_of_Z_ne_zero + theorem WeierstrassCurve.Projective.dblXYZ_smul + theorem WeierstrassCurve.Projective.dblX_eq' + theorem WeierstrassCurve.Projective.dblX_eq + theorem WeierstrassCurve.Projective.dblX_of_Y_eq + theorem WeierstrassCurve.Projective.dblX_of_Z_eq_zero + theorem WeierstrassCurve.Projective.dblX_of_Z_ne_zero + theorem WeierstrassCurve.Projective.dblX_smul + theorem WeierstrassCurve.Projective.dblY_of_Y_eq' + theorem WeierstrassCurve.Projective.dblY_of_Y_eq + theorem WeierstrassCurve.Projective.dblY_of_Z_eq_zero + theorem WeierstrassCurve.Projective.dblY_of_Z_ne_zero + theorem WeierstrassCurve.Projective.dblY_smul + def WeierstrassCurve.Projective.dblZ + theorem WeierstrassCurve.Projective.dblZ_ne_zero_of_Y_ne' + theorem WeierstrassCurve.Projective.dblZ_ne_zero_of_Y_ne + theorem WeierstrassCurve.Projective.dblZ_of_Y_eq + theorem WeierstrassCurve.Projective.dblZ_of_Z_eq_zero + theorem WeierstrassCurve.Projective.dblZ_smul + theorem WeierstrassCurve.Projective.isUnit_addU_of_Y_ne + theorem WeierstrassCurve.Projective.isUnit_addZ_of_X_ne + theorem WeierstrassCurve.Projective.isUnit_dblU_of_Y_eq + theorem WeierstrassCurve.Projective.isUnit_dblZ_of_Y_ne' + theorem WeierstrassCurve.Projective.isUnit_dblZ_of_Y_ne + def WeierstrassCurve.Projective.negAddY + theorem WeierstrassCurve.Projective.negAddY_eq' + theorem WeierstrassCurve.Projective.negAddY_eq + theorem WeierstrassCurve.Projective.negAddY_of_X_eq' + theorem WeierstrassCurve.Projective.negAddY_of_X_eq + theorem WeierstrassCurve.Projective.negAddY_of_Z_eq_zero_left + theorem WeierstrassCurve.Projective.negAddY_of_Z_eq_zero_right + theorem WeierstrassCurve.Projective.negAddY_of_Z_ne_zero + theorem WeierstrassCurve.Projective.negAddY_self + theorem WeierstrassCurve.Projective.negAddY_smul + theorem WeierstrassCurve.Projective.negDblY_eq' + theorem WeierstrassCurve.Projective.negDblY_eq + theorem WeierstrassCurve.Projective.negDblY_of_Y_eq' + theorem WeierstrassCurve.Projective.negDblY_of_Y_eq + theorem WeierstrassCurve.Projective.negDblY_of_Z_eq_zero + theorem WeierstrassCurve.Projective.negDblY_of_Z_ne_zero + theorem WeierstrassCurve.Projective.negDblY_smul + def WeierstrassCurve.Projective.negY + theorem WeierstrassCurve.Projective.negY_eq + theorem WeierstrassCurve.Projective.negY_of_Z_eq_zero + theorem WeierstrassCurve.Projective.negY_of_Z_ne_zero + theorem WeierstrassCurve.Projective.negY_smul + theorem WeierstrassCurve.Projective.nonsingular_iff_of_Y_eq_negY 2024-09-19 18:05:57 db69768 feat(CategoryTheory/Galois): prerequisites for essential surjectivity (#16948) This PR collects prerequisites for the essential surjectivity of fiber functors in a Galois category. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Galois/Basic.lean + theorem CategoryTheory.PreGaloisCategory.mulAction_naturality Modified Mathlib/CategoryTheory/Galois/Examples.lean Modified Mathlib/CategoryTheory/Galois/GaloisObjects.lean + theorem CategoryTheory.PreGaloisCategory.stabilizer_normal_of_isGalois Modified Mathlib/RepresentationTheory/Action/Basic.lean + theorem Action.hom_inv_hom + theorem Action.inv_hom_hom Modified Mathlib/RepresentationTheory/Action/Concrete.lean + def Action.FintypeCat.quotientToEndHom + theorem Action.FintypeCat.quotientToEndHom_mk + def Action.FintypeCat.quotientToQuotientOfLE + theorem Action.FintypeCat.quotientToQuotientOfLE_hom_mk + def Action.FintypeCat.toEndHom + theorem Action.FintypeCat.toEndHom_apply + theorem Action.FintypeCat.toEndHom_trivial_of_mem 2024-09-19 17:19:13 84c1496 chore: remove `autoImplicit` in `Tactic.Ring.Basic` (#16154) ESTIMATED CHANGES Modified Mathlib/Control/Random.lean Modified Mathlib/Tactic/Ring/Basic.lean Modified Mathlib/Tactic/ToExpr.lean 2024-09-19 16:35:30 de8baae doc(Order/Interval/Finset): correct typo (#16942) Fix typo in docstring for `lt_iff_transGen_covBy` ESTIMATED CHANGES Modified Mathlib/Order/Interval/Finset/Basic.lean 2024-09-19 16:02:25 1458edb feat(RingTheory): composition of presentations (#16727) Given an `R`-algebra `S` and an `S`-algebra `T` with presentations `P` and `Q` we construct the canonical `R`-presentation of `T`. This contribution was created as part of the AIM workshop "Formalizing algebraic geometry" in June 2024. ESTIMATED CHANGES Modified Mathlib/Algebra/MvPolynomial/Equiv.lean + theorem MvPolynomial.sumAlgEquiv_comp_rename_inl + theorem MvPolynomial.sumAlgEquiv_comp_rename_inr Modified Mathlib/RingTheory/Ideal/Maps.lean + theorem Ideal.AlgHom.comap_ker + theorem Ideal.Ideal.comap_map_of_surjective' + theorem Ideal.comap_comapₐ + theorem Ideal.comap_map_of_bijective + theorem Ideal.map_mapₐ Modified Mathlib/RingTheory/Polynomial/Basic.lean + theorem MvPolynomial.ker_mapAlgHom Modified Mathlib/RingTheory/Presentation.lean + theorem Algebra.Presentation.comp_relation_map 2024-09-19 14:09:28 c7d8aad feat: Multiset lemmas (#15645) ESTIMATED CHANGES Modified Mathlib/Data/Multiset/Basic.lean + theorem Multiset.inter_add_sub_of_add_eq_add + theorem Multiset.mem_sub + theorem Multiset.sub_singleton 2024-09-19 13:48:56 8e9838b chore: Rename `Holder` to `Hoelder` in file names (#16947) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/MeasureTheory/Measure/Hausdorff.lean Renamed Mathlib/Order/JordanHolder.lean to Mathlib/Order/JordanHoelder.lean Modified Mathlib/RingTheory/SimpleModule.lean + def JordanHoelderModule.Iso + theorem JordanHoelderModule.iso_symm + theorem JordanHoelderModule.iso_trans + theorem JordanHoelderModule.second_iso - def JordanHolderModule.Iso - theorem JordanHolderModule.iso_symm - theorem JordanHolderModule.iso_trans - theorem JordanHolderModule.second_iso Renamed Mathlib/Topology/MetricSpace/Holder.lean to Mathlib/Topology/MetricSpace/Hoelder.lean 2024-09-19 13:06:16 4a7a860 chore: update Mathlib dependencies 2024-09-19 (#16945) This PR updates the Mathlib dependencies. ESTIMATED CHANGES Modified lake-manifest.json 2024-09-19 12:35:29 0e7d554 chore: rename `Holder` to `Hoelder` (#16870) As indicated by https://en.wikipedia.org/wiki/Germanic_umlaut#Substitution, Hölder should be transcribed to Hoelder in ASCII. ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Measure/Hausdorff.lean + theorem HoelderOnWith.hausdorffMeasure_image_le - theorem HolderOnWith.hausdorffMeasure_image_le Modified Mathlib/Order/JordanHolder.lean + theorem CompositionSeries.jordan_hoelder - theorem CompositionSeries.jordan_holder + theorem JordanHoelderLattice.IsMaximal.iso_refl + theorem JordanHoelderLattice.isMaximal_inf_right_of_isMaximal_sup + theorem JordanHoelderLattice.isMaximal_of_eq_inf + theorem JordanHoelderLattice.second_iso_of_eq - theorem JordanHolderLattice.IsMaximal.iso_refl - theorem JordanHolderLattice.isMaximal_inf_right_of_isMaximal_sup - theorem JordanHolderLattice.isMaximal_of_eq_inf - theorem JordanHolderLattice.second_iso_of_eq Modified Mathlib/RingTheory/SimpleModule.lean Modified Mathlib/Topology/MetricSpace/HausdorffDimension.lean + theorem HoelderOnWith.dimH_image_le + theorem HoelderWith.dimH_image_le + theorem HoelderWith.dimH_range_le - theorem HolderOnWith.dimH_image_le - theorem HolderWith.dimH_image_le - theorem HolderWith.dimH_range_le Modified Mathlib/Topology/MetricSpace/Holder.lean + theorem HoelderOnWith.comp + theorem HoelderOnWith.comp_hoelderWith + theorem HoelderOnWith.ediam_image_inter_le + theorem HoelderOnWith.ediam_image_inter_le_of_le + theorem HoelderOnWith.ediam_image_le + theorem HoelderOnWith.ediam_image_le_of_le + theorem HoelderOnWith.ediam_image_le_of_subset + theorem HoelderOnWith.ediam_image_le_of_subset_of_le + theorem HoelderOnWith.edist_le + theorem HoelderOnWith.edist_le_of_le + def HoelderOnWith + theorem HoelderWith.add + theorem HoelderWith.comp + theorem HoelderWith.comp_hoelderOnWith + theorem HoelderWith.const + theorem HoelderWith.dist_le + theorem HoelderWith.dist_le_of_le + theorem HoelderWith.ediam_image_le + theorem HoelderWith.edist_le + theorem HoelderWith.edist_le_of_le + theorem HoelderWith.mono + theorem HoelderWith.nndist_le + theorem HoelderWith.nndist_le_of_le + theorem HoelderWith.of_isEmpty + theorem HoelderWith.smul + theorem HoelderWith.zero + def HoelderWith - theorem HolderOnWith.comp - theorem HolderOnWith.comp_holderWith - theorem HolderOnWith.ediam_image_inter_le - theorem HolderOnWith.ediam_image_inter_le_of_le - theorem HolderOnWith.ediam_image_le - theorem HolderOnWith.ediam_image_le_of_le - theorem HolderOnWith.ediam_image_le_of_subset - theorem HolderOnWith.ediam_image_le_of_subset_of_le - theorem HolderOnWith.edist_le - theorem HolderOnWith.edist_le_of_le - def HolderOnWith - theorem HolderWith.add - theorem HolderWith.comp - theorem HolderWith.comp_holderOnWith - theorem HolderWith.const - theorem HolderWith.dist_le - theorem HolderWith.dist_le_of_le - theorem HolderWith.ediam_image_le - theorem HolderWith.edist_le - theorem HolderWith.edist_le_of_le - theorem HolderWith.mono - theorem HolderWith.nndist_le - theorem HolderWith.nndist_le_of_le - theorem HolderWith.of_isEmpty - theorem HolderWith.smul - theorem HolderWith.zero - def HolderWith + theorem Set.Subsingleton.HoelderOnWith - theorem Set.Subsingleton.holderOnWith + theorem hoelderOnWith_empty + theorem hoelderOnWith_one + theorem hoelderOnWith_singleton + theorem hoelderOnWith_univ + theorem hoelderWith_id + theorem hoelderWith_one + theorem hoelderWith_zero_iff - theorem holderOnWith_empty - theorem holderOnWith_one - theorem holderOnWith_singleton - theorem holderOnWith_univ - theorem holderWith_id - theorem holderWith_one - theorem holderWith_zero_iff Modified docs/overview.yaml Modified docs/undergrad.yaml Modified scripts/nolints.json 2024-09-19 11:58:39 3f70ca8 chore: generalise the binary rearrangement inequality (#16940) ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Module/Defs.lean +/- theorem smul_add_smul_le_smul_add_smul' +/- theorem smul_add_smul_le_smul_add_smul +/- theorem smul_add_smul_lt_smul_add_smul' +/- theorem smul_add_smul_lt_smul_add_smul 2024-09-19 11:58:38 b359218 feat(Topology): the partition of a space into fibers of a function (#15527) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Logic/Function/FiberPartition.lean + theorem Function.Fiber.eq_fiber_image + theorem Function.Fiber.fiber_nonempty + theorem Function.Fiber.image_eq_image_mk + theorem Function.Fiber.map_eq_image + theorem Function.Fiber.map_preimage_eq_image + theorem Function.Fiber.map_preimage_eq_image_map + theorem Function.Fiber.mem_iff_eq_image + def Function.Fiber.mk + def Function.Fiber.mkSelf + theorem Function.Fiber.mk_image + def Function.Fiber Added Mathlib/Topology/FiberPartition.lean + def TopologicalSpace.Fiber.sigmaIncl + def TopologicalSpace.Fiber.sigmaInclIncl + def TopologicalSpace.Fiber.sigmaIsoHom + theorem TopologicalSpace.Fiber.sigmaIsoHom_inj + theorem TopologicalSpace.Fiber.sigmaIsoHom_surj 2024-09-19 11:11:32 fa4fb4c chore: update Mathlib dependencies 2024-09-19 (#16941) This PR updates the Mathlib dependencies. ESTIMATED CHANGES Modified lake-manifest.json 2024-09-19 10:59:00 53bac4a chore(AlgebraicGeometry): weaken assumptions on local ring hom properties (#16897) Currently for a property of ring homomorphisms `P`, the predicate `RingHom.PropertyIsLocal P` requires `P` to be stable under composition. This predicate is meant to capture the requirements to guarantee that `affineLocally P` is local on the source and on the target. But for the latter it is sufficient to ask that `P` is stable under composition with localization maps away from one element. Hence we replace `StableUnderComposition P` and `HoldsForLocalizationAway P` with `StableUnderCompositionWithLocalizationAway P`. Before this change, every `P` satisfying `RingHom.PropertyIsLocal` was satisfied by all identities and localization maps away from one element. In particular `affineLocally P` was satisfied by all open immersions. Now this is no longer automatic, since `P` does not necessarily contain identities. This change is necessary to apply the `HasRingHomProperty` API to the class of ring homomorphisms that are standard smooth of a fixed relative dimension `n > 0`, since these are not stable under composition (the compositions add up), but are stable under composition with localization maps. This change turns some `instance`s into `theorem`s and hence slightly reduces automation. The fallout is relatively small. ESTIMATED CHANGES Modified Mathlib/AlgebraicGeometry/Morphisms/FinitePresentation.lean Modified Mathlib/AlgebraicGeometry/Morphisms/FiniteType.lean Modified Mathlib/AlgebraicGeometry/Morphisms/RingHomProperties.lean + theorem AlgebraicGeometry.HasRingHomProperty.containsIdentities + theorem AlgebraicGeometry.HasRingHomProperty.isMultiplicative +/- theorem AlgebraicGeometry.HasRingHomProperty.of_isOpenImmersion + theorem AlgebraicGeometry.HasRingHomProperty.stableUnderComposition Modified Mathlib/RingTheory/LocalProperties.lean + def RingHom.ContainsIdentities + theorem RingHom.HoldsForLocalizationAway.containsIdentities + theorem RingHom.PropertyIsLocal.HoldsForLocalizationAway + theorem RingHom.StableUnderComposition.stableUnderCompositionWithLocalizationAway + def RingHom.StableUnderCompositionWithLocalizationAway Modified Mathlib/RingTheory/RingHom/FinitePresentation.lean Modified Mathlib/RingTheory/RingHom/FiniteType.lean 2024-09-19 09:56:31 094c514 doc(BigOperators): Explain the order of rewriting between `Finset.prod_product` and `Finset.prod_product'` (#16760) ESTIMATED CHANGES Modified Mathlib/Algebra/BigOperators/Group/Finset.lean Modified Mathlib/Data/Fintype/BigOperators.lean 2024-09-19 09:24:45 d31ca85 feat: some lemmas about polynomial roots (#16933) ESTIMATED CHANGES Modified Mathlib/Algebra/Polynomial/Roots.lean + theorem Polynomial.aroots_map + theorem Polynomial.mem_rootSet_of_injective + theorem Polynomial.mem_roots_map_of_injective 2024-09-19 09:24:43 0689c56 feat: IntermediateField.adjoinRootEquivAdjoin_symm_apply_gen (#16923) ESTIMATED CHANGES Modified Mathlib/FieldTheory/Adjoin.lean + theorem IntermediateField.adjoinRootEquivAdjoin_symm_apply_gen 2024-09-19 08:44:21 74fc63f feat(LocallyCompact): generalize `*Embedding.locallyCompactSpace` (#16291) to `Inducing` maps ESTIMATED CHANGES Modified Mathlib/Topology/Compactness/LocallyCompact.lean + theorem Inducing.locallyCompactSpace 2024-09-19 08:44:20 9ba8575 feat(FieldTheory/Separable): Add lemmas of elementwise `IsSeparable` (#14404) Add lemmas of elementwise `IsSeparable` decomposed from `Algebra.IsSeparable` lemmas. Add `Field.isSeparable_neg`, `Field.isSeparable_sub` ESTIMATED CHANGES Modified Mathlib/FieldTheory/PurelyInseparable.lean Modified Mathlib/FieldTheory/Separable.lean + theorem AlgEquiv.Algebra.isSeparable + theorem AlgEquiv.Algebra.isSeparable_iff - theorem AlgEquiv.isSeparable +/- theorem AlgEquiv.isSeparable_iff +/- theorem Algebra.IsSeparable.of_algHom +/- theorem Algebra.IsSeparable.of_equiv_equiv + theorem IsSeparable.of_algHom + theorem IsSeparable.of_equiv_equiv + theorem IsSeparable.of_integral - theorem IsSeparable.of_isScalarTower + theorem IsSeparable.tower_bot + theorem IsSeparable.tower_top + theorem isSeparable_algebraMap Modified Mathlib/FieldTheory/SeparableClosure.lean Modified Mathlib/FieldTheory/SeparableDegree.lean + theorem Field.isSeparable_neg + theorem Field.isSeparable_sub 2024-09-19 07:48:53 1552fec feat: generalize `Set.restrict_apply` to dependent functions (#16928) Generalize `Set.restrict_apply` to dependent functions. ESTIMATED CHANGES Modified Mathlib/Data/Set/Function.lean +/- theorem Set.restrict_apply 2024-09-19 06:45:48 46c490a chore: bump Mathlib dependencies (#16934) ESTIMATED CHANGES Modified Mathlib/Data/String/Basic.lean Modified Mathlib/Tactic/Bound/Attribute.lean Modified lake-manifest.json Modified test/propose.lean 2024-09-19 05:29:40 f2c6dd5 doc(Order/SuccPred/Limit): update comments (#16901) ESTIMATED CHANGES Modified Mathlib/Order/SuccPred/Limit.lean 2024-09-19 04:26:50 c16a940 feat: closures of convex sets in locally convex spaces with the same continuous linear functionals (#16859) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/LocallyConvex/WeakSpace.lean + theorem Convex.toWeakSpace_closure + theorem LinearEquiv.image_closure_of_convex' + theorem LinearEquiv.image_closure_of_convex + theorem LinearMap.image_closure_of_convex Modified Mathlib/Topology/Algebra/Module/WeakBilin.lean Modified Mathlib/Topology/Algebra/Module/WeakDual.lean - def continuousLinearMapToWeakSpace - theorem continuousLinearMapToWeakSpace_bijective - theorem continuousLinearMapToWeakSpace_eq_toWeakSpace + def toWeakSpaceCLM + theorem toWeakSpaceCLM_bijective + theorem toWeakSpaceCLM_eq_toWeakSpace +/- theorem topDualPairing_apply 2024-09-18 22:25:32 6b33760 chore(SetTheory/Game/Nim): redefine `grundyValue` as an infimum (#16874) We redefine `grundyValue` as an infimum instead of using `Ordinal.mex`, and we give it a better API. This is a preliminary step before deprecating `Ordinal.mex` altogether - there's no point in using it since we can just use `Inf sᶜ` instead. ESTIMATED CHANGES Modified Mathlib/SetTheory/Game/Nim.lean - theorem SetTheory.PGame.exists_grundyValue_left_of_lt + theorem SetTheory.PGame.exists_grundyValue_moveLeft_of_lt + theorem SetTheory.PGame.exists_grundyValue_moveRight_of_lt - theorem SetTheory.PGame.exists_grundyValue_right_of_lt + theorem SetTheory.PGame.grundyValue_eq_sInf_moveLeft + theorem SetTheory.PGame.grundyValue_eq_sInf_moveRight + theorem SetTheory.PGame.grundyValue_le_of_forall_moveLeft + theorem SetTheory.PGame.grundyValue_le_of_forall_moveRight - theorem SetTheory.PGame.grundyValue_ne_left + theorem SetTheory.PGame.grundyValue_ne_moveLeft + theorem SetTheory.PGame.grundyValue_ne_moveRight - theorem SetTheory.PGame.grundyValue_ne_right +/- theorem SetTheory.PGame.grundyValue_nim_add_nim + theorem SetTheory.PGame.le_grundyValue_of_Iio_subset_moveLeft + theorem SetTheory.PGame.le_grundyValue_of_Iio_subset_moveRight 2024-09-18 22:25:31 81fe23e feat(MvPowerSeries.LexOrder): lexicographic order of multivariate power series (#14981) Define the order of multivariate power series with respect to the lexicographic order on monomials. Prove that the ring of multivariate power series over a domain is a domain. Extension to some rings of Hahn series ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Order/Basic.lean + def LinearOrder.swap Modified Mathlib/RingTheory/HahnSeries/PowerSeries.lean Added Mathlib/RingTheory/MvPowerSeries/LexOrder.lean + theorem MvPowerSeries.coeff_eq_zero_of_lt_lexOrder + theorem MvPowerSeries.coeff_mul_of_add_lexOrder + theorem MvPowerSeries.coeff_ne_zero_of_lexOrder + theorem MvPowerSeries.exists_finsupp_eq_lexOrder_of_ne_zero + theorem MvPowerSeries.le_lexOrder_iff + theorem MvPowerSeries.le_lexOrder_mul + theorem MvPowerSeries.lexOrder_def_of_ne_zero + theorem MvPowerSeries.lexOrder_eq_top_iff_eq_zero + theorem MvPowerSeries.lexOrder_le_of_coeff_ne_zero + theorem MvPowerSeries.lexOrder_mul + theorem MvPowerSeries.lexOrder_zero + theorem MvPowerSeries.min_lexOrder_le Modified Mathlib/RingTheory/MvPowerSeries/NoZeroDivisors.lean 2024-09-18 22:16:33 f5c515a feat(CategoryTheory/Galois): universal property of fundamental group (#16673) We introduce a universal property for the automorphism group of a fiber functor for any topological group. In the further development of the Galois categories API, an arbitrary topological group satisfying this universal property shall be used in the place of `Aut F`, to prepare for later usages of this API in the case of e.g. `G` being the absolute Galois group of a field `k` and `F` being the fiber functor of the category of finite, étale `k`-algebras. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/CategoryTheory/Galois/Decomposition.lean + theorem CategoryTheory.PreGaloisCategory.natTrans_ext_of_isGalois Added Mathlib/CategoryTheory/Galois/IsFundamentalgroup.lean + theorem CategoryTheory.PreGaloisCategory.IsFundamentalGroup.non_trivial + theorem CategoryTheory.PreGaloisCategory.action_ext_of_isGalois + theorem CategoryTheory.PreGaloisCategory.isPretransitive_of_surjective + def CategoryTheory.PreGaloisCategory.toAut + theorem CategoryTheory.PreGaloisCategory.toAutHomeo_apply + theorem CategoryTheory.PreGaloisCategory.toAutMulEquiv_apply + theorem CategoryTheory.PreGaloisCategory.toAutMulEquiv_isHomeomorph + theorem CategoryTheory.PreGaloisCategory.toAut_bijective + theorem CategoryTheory.PreGaloisCategory.toAut_continuous + theorem CategoryTheory.PreGaloisCategory.toAut_hom_app_apply + theorem CategoryTheory.PreGaloisCategory.toAut_injective_of_non_trivial + theorem CategoryTheory.PreGaloisCategory.toAut_isHomeomorph + theorem CategoryTheory.PreGaloisCategory.toAut_surjective_isGalois + theorem CategoryTheory.PreGaloisCategory.toAut_surjective_isGalois_finite_family + theorem CategoryTheory.PreGaloisCategory.toAut_surjective_of_isPretransitive Modified Mathlib/CategoryTheory/Galois/Topology.lean 2024-09-18 21:33:18 617f330 feat(SetTheory/Ordinal/Basic): added ord_zero_iff lemma (#16912) Prove `ord_zero_iff`. ESTIMATED CHANGES Modified Mathlib/SetTheory/Ordinal/Basic.lean + theorem Cardinal.ord_eq_one + theorem Cardinal.ord_eq_zero + theorem Cardinal.ord_inj 2024-09-18 18:31:00 38dfa07 chore: avoid Finset dependency in Algebra.Algebra.Defs (#16893) ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/Basic.lean + theorem algebraMap.coe_prod + theorem algebraMap.coe_sum Modified Mathlib/Algebra/Algebra/Defs.lean - theorem algebraMap.coe_prod - theorem algebraMap.coe_sum 2024-09-18 18:30:59 ee33a2f chore: tidy various files (#16718) ESTIMATED CHANGES Modified Archive/Imo/Imo1987Q1.lean Modified Mathlib/Algebra/Algebra/Operations.lean Modified Mathlib/Algebra/BigOperators/Finsupp.lean Modified Mathlib/Algebra/BigOperators/Ring.lean Modified Mathlib/Algebra/Group/Subgroup/Basic.lean Modified Mathlib/Algebra/Group/Subgroup/MulOpposite.lean Modified Mathlib/Algebra/Group/Submonoid/MulOpposite.lean Modified Mathlib/Algebra/Lie/EngelSubalgebra.lean Modified Mathlib/Algebra/Lie/OfAssociative.lean Modified Mathlib/Algebra/Lie/Solvable.lean Modified Mathlib/Algebra/Order/Star/Conjneg.lean Modified Mathlib/Algebra/Ring/Subring/MulOpposite.lean Modified Mathlib/Algebra/Ring/Subsemiring/MulOpposite.lean Modified Mathlib/Analysis/SpecialFunctions/Log/ENNRealLog.lean Modified Mathlib/Combinatorics/SimpleGraph/Walk.lean Modified Mathlib/Data/ENat/Basic.lean Modified Mathlib/MeasureTheory/Measure/MeasureSpace.lean Modified Mathlib/Order/RelSeries.lean Modified Mathlib/Order/ScottContinuity.lean Modified Mathlib/Order/SuccPred/LinearLocallyFinite.lean +/- theorem LinearOrder.isSuccArchimedean_iff_isPredArchimedean Modified Mathlib/Probability/Kernel/Composition.lean Modified Mathlib/RingTheory/Valuation/ValExtension.lean Modified Mathlib/Topology/Algebra/Module/Alternating/Topology.lean Modified Mathlib/Topology/OmegaCompletePartialOrder.lean Modified Mathlib/Topology/Order/Monotone.lean 2024-09-18 17:46:03 51a9d75 chore(SuccPred/Basic): minor golf (#16905) ESTIMATED CHANGES Modified Mathlib/Order/SuccPred/Basic.lean +/- theorem Order.le_succ_iterate 2024-09-18 17:04:01 95af9be feat: Composition.blocksFun_le (#16814) ESTIMATED CHANGES Modified Mathlib/Algebra/Order/BigOperators/Group/List.lean + theorem List.le_prod_of_mem Modified Mathlib/Combinatorics/Enumerative/Composition.lean + theorem Composition.blocksFun_le 2024-09-18 16:52:48 a5f2999 chore(SetTheory/Ordinal/NaturalOps): fix argument implicitness (#16900) ESTIMATED CHANGES Modified Mathlib/SetTheory/Ordinal/NaturalOps.lean +/- theorem NatOrdinal.toOrdinal_eq_one +/- theorem NatOrdinal.toOrdinal_eq_zero +/- theorem NatOrdinal.toOrdinal_max +/- theorem NatOrdinal.toOrdinal_min 2024-09-18 16:41:55 3896897 feat: generalize projective module results to semirings (#16741) ESTIMATED CHANGES Modified Mathlib/Algebra/Module/Projective.lean 2024-09-18 15:38:02 ca613b5 doc(Algebra/CharP/CharAndCard): correct documentation of not_isUnit_prime_of_dvd_card (#16924) ESTIMATED CHANGES Modified Mathlib/Algebra/CharP/CharAndCard.lean 2024-09-18 12:50:52 4599860 feat(NumberTheory/LSeries): polish some results on ZMod L-series (#16913) Strengthen functional equation for L-series of a function mod N so it holds at s = 1 as well (in cases where s = 1 is not a pole). Also some minor stylistic cleanup / golfing. ESTIMATED CHANGES Modified Mathlib/NumberTheory/LSeries/ZMod.lean +/- theorem ZMod.LFunction_dft +/- theorem ZMod.LFunction_one_sub 2024-09-18 12:50:51 211cd6b feat: add AlgEquiv.symm_apply_eq (#16898) ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/Equiv.lean + theorem AlgEquiv.eq_symm_apply + theorem AlgEquiv.symm_apply_eq 2024-09-18 11:42:23 7476878 feat(RingTheory/StandardSmooth): base change of standard smooth algebras (#16853) Shows that being standard smooth is stable under base change. This contribution was created as part of the AIM workshop "Formalizing algebraic geometry" in June 2024. ESTIMATED CHANGES Modified Mathlib/RingTheory/Presentation.lean Modified Mathlib/RingTheory/Smooth/StandardSmooth.lean + theorem Algebra.PreSubmersivePresentation.baseChange_jacobian Modified Mathlib/RingTheory/TensorProduct/MvPolynomial.lean + theorem MvPolynomial.aeval_one_tmul 2024-09-18 11:42:22 f85eaad feat(MeasureTheory): generalize `measure_iUnion_eq_iSup` (#16390) ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Decomposition/UnsignedHahn.lean Modified Mathlib/MeasureTheory/Integral/Lebesgue.lean Modified Mathlib/MeasureTheory/Integral/SetIntegral.lean Modified Mathlib/MeasureTheory/Measure/MeasureSpace.lean + theorem Antitone.measure_iUnion + theorem Directed.measure_iUnion +/- theorem MeasureTheory.measure_iUnion_congr_of_subset - theorem MeasureTheory.measure_iUnion_eq_iSup' - theorem MeasureTheory.measure_iUnion_eq_iSup + theorem MeasureTheory.measure_iUnion_eq_iSup_accumulate +/- theorem MeasureTheory.measure_iUnion_toMeasurable +/- theorem MeasureTheory.tendsto_measure_Ici_atBot +/- theorem MeasureTheory.tendsto_measure_Ico_atTop +/- theorem MeasureTheory.tendsto_measure_Iic_atTop +/- theorem MeasureTheory.tendsto_measure_Ioc_atBot - theorem MeasureTheory.tendsto_measure_iUnion' - theorem MeasureTheory.tendsto_measure_iUnion + theorem MeasureTheory.tendsto_measure_iUnion_accumulate + theorem MeasureTheory.tendsto_measure_iUnion_atBot + theorem MeasureTheory.tendsto_measure_iUnion_atTop + theorem Monotone.measure_iUnion Modified Mathlib/MeasureTheory/Measure/Regular.lean Modified Mathlib/MeasureTheory/Measure/Restrict.lean Modified Mathlib/Probability/Kernel/Disintegration/CDFToKernel.lean Modified Mathlib/Probability/Kernel/Disintegration/CondCDF.lean Modified Mathlib/Probability/Kernel/Disintegration/Density.lean Modified Mathlib/Probability/StrongLaw.lean 2024-09-18 11:42:21 d25f655 feat: add smul_prod lemmas (#8807) From #6718. ESTIMATED CHANGES Modified Mathlib/Algebra/BigOperators/GroupWithZero/Action.lean + theorem Finset.prod_smul + theorem Finset.smul_prod' +/- theorem Finset.smul_prod + theorem List.smul_prod' +/- theorem List.smul_prod + theorem Multiset.smul_prod' +/- theorem Multiset.smul_prod + theorem smul_finprod' - theorem smul_finprod Modified Mathlib/Algebra/Polynomial/GroupRingAction.lean 2024-09-18 10:16:00 e9dae23 feat: rewrite cylinders and projective families of measures in terms of `Finset.restrict` (#16327) Rewrite cylinders and projective families of measures in terms of `Finset.restrict`. This avoids type ascription, and allows to rewrite a restriction as the composition of two restrictions, which is helpful when manipulating projective families. ESTIMATED CHANGES Modified Mathlib/Data/Finset/Pi.lean + theorem Finset.restrict_def + theorem Finset.restrict₂_def Modified Mathlib/Data/Set/Function.lean + theorem Set.restrict_def + theorem Set.restrict₂_def Modified Mathlib/MeasureTheory/Constructions/Cylinders.lean Modified Mathlib/MeasureTheory/Constructions/Projective.lean 2024-09-18 09:37:36 a985046 feat (LinearAlgebra/RootSystem) : Construct root systems from bilinear forms on reflexive modules (#16722) This PR defines a function that takes a reflexive module `M` equipped with a bilinear form over a commutative ring, and produces a root pairing whose weight space is `M` and whose roots are the reflective vectors. This is a generalization of the standard construction of root systems from integral lattices. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/LinearAlgebra/PerfectPairing.lean + theorem IsReflexive.toPerfectPairingDual_apply Added Mathlib/LinearAlgebra/RootSystem/OfBilinear.lean + theorem LinearMap.IsReflective.apply_self_mul_coroot_apply + def LinearMap.IsReflective.coroot + theorem LinearMap.IsReflective.coroot_apply_self + theorem LinearMap.IsReflective.isOrthogonal_reflection + theorem LinearMap.IsReflective.of_dvd_two + theorem LinearMap.IsReflective.reflective_reflection + theorem LinearMap.IsReflective.smul_coroot + structure LinearMap.IsReflective + def RootPairing.ofBilinear Modified Mathlib/LinearAlgebra/SesquilinearForm.lean + theorem LinearEquiv.isAdjointPair_symm_iff + def LinearMap.IsOrthogonal + theorem LinearMap.isOrthogonal_of_forall_apply_same 2024-09-18 09:20:57 36a333a feat(Analysis/Fourier/ZMod): DFT preserves even/odd functions (#16911) ESTIMATED CHANGES Modified Mathlib/Algebra/Group/EvenFunction.lean + theorem Function.Odd.map_zero + theorem Function.Odd.sum_eq_zero +/- theorem Function.zero_of_even_and_odd Modified Mathlib/Analysis/Fourier/ZMod.lean + theorem ZMod.dft_even_iff + theorem ZMod.dft_odd_iff 2024-09-18 08:24:12 474d429 chore: update Mathlib dependencies 2024-09-18 (#16909) This PR updates the Mathlib dependencies. ESTIMATED CHANGES Modified lake-manifest.json 2024-09-18 08:24:10 1cf58af feat(Combinatorics/SimpleGraph): add `Fintype` instance for `Path` (#13810) ESTIMATED CHANGES Modified Mathlib/Combinatorics/SimpleGraph/Connectivity/WalkCounting.lean - theorem SimpleGraph.Walk.mem_finsetWalkLength_iff_length_eq + theorem SimpleGraph.coe_finsetWalkLengthLT_eq + def SimpleGraph.finsetWalkLengthLT + theorem SimpleGraph.mem_finsetWalkLengthLT_iff + theorem SimpleGraph.mem_finsetWalkLength_iff 2024-09-18 07:39:09 f518a55 feat: lemmas on permutations, cycles, etc. (#9602) This PR establishes various lemmas in the theory of permutation groups, pertaining to the supports, cycle decompositions, and the conjugation action of `ConjAct (Equiv.Perm α)` on `Equiv.Perm α` This lemmas stem out PR #9359 and are used there to compute the cardinalities of the conjugacy classes of permutations. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/GroupTheory/Perm/Basic.lean + theorem Equiv.Perm.ofSubtype_subtypePerm_of_mem + theorem Equiv.Perm.ofSubtype_subtypePerm_of_not_mem Added Mathlib/GroupTheory/Perm/ConjAct.lean + theorem Equiv.Perm.cycleFactorsFinset_conj + theorem Equiv.Perm.cycleFactorsFinset_conj_eq + theorem Equiv.Perm.mem_conj_support + theorem Equiv.Perm.mem_cycleFactorsFinset_conj' Modified Mathlib/GroupTheory/Perm/Cycle/Basic.lean + theorem Equiv.Perm.IsCycle.commute_iff' + theorem Equiv.Perm.IsCycle.commute_iff + theorem Equiv.Perm.IsCycle.nonempty_support + theorem Equiv.Perm.cycle_zpow_mem_support_iff + def Equiv.Perm.subtypePermOfSupport + theorem Equiv.Perm.subtypePerm_apply_pow_of_mem + theorem Equiv.Perm.subtypePerm_apply_zpow_of_mem + def Equiv.Perm.subtypePerm_of_support_le + theorem Equiv.Perm.zpow_eq_ofSubtype_subtypePerm_iff Modified Mathlib/GroupTheory/Perm/Cycle/Factors.lean + theorem Equiv.Perm.IsCycle.forall_commute_iff + theorem Equiv.Perm.commute_iff_of_mem_cycleFactorsFinset + theorem Equiv.Perm.commute_of_mem_cycleFactorsFinset_commute + theorem Equiv.Perm.eq_cycleOf_of_mem_cycleFactorsFinset_iff + theorem Equiv.Perm.mem_cycleFactorsFinset_conj + theorem Equiv.Perm.mem_cycleFactorsFinset_support + theorem Equiv.Perm.mem_support_cycle_of_cycle + theorem Equiv.Perm.self_mem_cycle_factors_commute + theorem Equiv.Perm.subtypePerm_on_cycleFactorsFinset + theorem Equiv.Perm.zpow_eq_zpow_on_iff Modified Mathlib/GroupTheory/Perm/Support.lean + theorem Equiv.Perm.isInvariant_of_support_le + theorem Equiv.Perm.mem_support_iff_of_commute + theorem Equiv.Perm.ofSubtype_eq_iff 2024-09-18 06:51:45 c5befd4 chore(SetTheory/Cardinal/Basic): `Cardinal.IsLimit` → `IsSuccLimit` (#16899) ESTIMATED CHANGES Modified Mathlib/SetTheory/Cardinal/Basic.lean + theorem Cardinal.aleph0_le_of_isSuccLimit + theorem Cardinal.exists_eq_of_iSup_eq_of_not_isSuccLimit + theorem Cardinal.isSuccLimit_aleph0 + theorem Cardinal.ne_zero_of_isSuccLimit + theorem Cardinal.not_isSuccLimit_natCast + theorem Cardinal.not_isSuccLimit_of_lt_aleph0 Modified Mathlib/SetTheory/Cardinal/Cofinality.lean + theorem Cardinal.IsStrongLimit.aleph0_le Modified Mathlib/SetTheory/Cardinal/Ordinal.lean +/- theorem Cardinal.add_le_add_iff_of_lt_aleph0 2024-09-18 06:15:52 5b61ee9 feat(GroupTheory/Archimedean): `LinearOrderedCommGroupWithZero.discrete_or_denselyOrdered` (#15846) ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Archimedean/Basic.lean Modified Mathlib/GroupTheory/ArchimedeanDensely.lean + theorem LinearOrderedCommGroupWithZero.discrete_or_denselyOrdered 2024-09-18 05:13:51 48d8b1d CI: fix mk_all (#16896) This should fix the `mk_all` step in CI that leaves through PRs that do not import all files. ESTIMATED CHANGES Modified .github/build.in.yml Modified .github/workflows/bors.yml Modified .github/workflows/build.yml Modified .github/workflows/build_fork.yml 2024-09-18 01:47:00 6a73625 feat(CategoryTheory): proof producing coherence tactic (#16852) See [Zulip](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/Proof.20producing.20coherence.20tactic.20for.20monoidal.20categories). ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/CategoryTheory/Bicategory/Adjunction.lean - def CategoryTheory.Bicategory.leftZigzag - def CategoryTheory.Bicategory.leftZigzagIso - def CategoryTheory.Bicategory.rightZigzag - def CategoryTheory.Bicategory.rightZigzagIso Modified Mathlib/CategoryTheory/Bicategory/Kan/Adjunction.lean Modified Mathlib/CategoryTheory/Monoidal/Bimod.lean Modified Mathlib/CategoryTheory/Monoidal/Braided/Basic.lean Modified Mathlib/CategoryTheory/Monoidal/Center.lean Modified Mathlib/CategoryTheory/Monoidal/CoherenceLemmas.lean Modified Mathlib/CategoryTheory/Monoidal/Comon_.lean Modified Mathlib/CategoryTheory/Monoidal/Hopf_.lean Modified Mathlib/CategoryTheory/Monoidal/Mon_.lean Modified Mathlib/CategoryTheory/Monoidal/Opposite.lean Modified Mathlib/CategoryTheory/Monoidal/Rigid/Basic.lean Modified Mathlib/CategoryTheory/Monoidal/Rigid/Braided.lean Modified Mathlib/Tactic.lean Modified Mathlib/Tactic/CategoryTheory/BicategoricalComp.lean - def CategoryTheory.bicategoricalIso Added Mathlib/Tactic/CategoryTheory/Bicategory/Basic.lean + def Mathlib.Tactic.Bicategory.bicategory + def Mathlib.Tactic.Bicategory.bicategoryNf Added Mathlib/Tactic/CategoryTheory/Bicategory/Datatypes.lean + structure Mathlib.Tactic.Bicategory.Context + theorem Mathlib.Tactic.Bicategory.StructuralOfExpr_bicategoricalComp + def Mathlib.Tactic.Bicategory.comp? + def Mathlib.Tactic.Bicategory.id₁? + def Mathlib.Tactic.Bicategory.mkContext? + def Mathlib.Tactic.Bicategory.srcExpr + def Mathlib.Tactic.Bicategory.srcExprOfIso + theorem Mathlib.Tactic.Bicategory.structuralIsoOfExpr_comp + theorem Mathlib.Tactic.Bicategory.structuralIsoOfExpr_whiskerLeft + theorem Mathlib.Tactic.Bicategory.structuralIsoOfExpr_whiskerRight + theorem Mathlib.Tactic.Bicategory.structuralIso_inv + def Mathlib.Tactic.Bicategory.tgtExpr + def Mathlib.Tactic.Bicategory.tgtExprOfIso Added Mathlib/Tactic/CategoryTheory/Bicategory/Normalize.lean + theorem Mathlib.Tactic.Bicategory.evalComp_cons + theorem Mathlib.Tactic.Bicategory.evalComp_nil_cons + theorem Mathlib.Tactic.Bicategory.evalComp_nil_nil + theorem Mathlib.Tactic.Bicategory.evalWhiskerLeft_comp + theorem Mathlib.Tactic.Bicategory.evalWhiskerLeft_id + theorem Mathlib.Tactic.Bicategory.evalWhiskerLeft_nil + theorem Mathlib.Tactic.Bicategory.evalWhiskerLeft_of_cons + theorem Mathlib.Tactic.Bicategory.evalWhiskerRightAux_of + theorem Mathlib.Tactic.Bicategory.evalWhiskerRight_comp + theorem Mathlib.Tactic.Bicategory.evalWhiskerRight_cons_of_of + theorem Mathlib.Tactic.Bicategory.evalWhiskerRight_cons_whisker + theorem Mathlib.Tactic.Bicategory.evalWhiskerRight_id + theorem Mathlib.Tactic.Bicategory.evalWhiskerRight_nil + theorem Mathlib.Tactic.Bicategory.eval_bicategoricalComp + theorem Mathlib.Tactic.Bicategory.eval_comp + theorem Mathlib.Tactic.Bicategory.eval_monoidalComp + theorem Mathlib.Tactic.Bicategory.eval_of + theorem Mathlib.Tactic.Bicategory.eval_whiskerLeft + theorem Mathlib.Tactic.Bicategory.eval_whiskerRight Added Mathlib/Tactic/CategoryTheory/Bicategory/PureCoherence.lean + theorem Mathlib.Tactic.Bicategory.mk_eq_of_naturality + theorem Mathlib.Tactic.Bicategory.naturality_associator + theorem Mathlib.Tactic.Bicategory.naturality_comp + theorem Mathlib.Tactic.Bicategory.naturality_id + theorem Mathlib.Tactic.Bicategory.naturality_inv + theorem Mathlib.Tactic.Bicategory.naturality_leftUnitor + theorem Mathlib.Tactic.Bicategory.naturality_rightUnitor + theorem Mathlib.Tactic.Bicategory.naturality_whiskerLeft + theorem Mathlib.Tactic.Bicategory.naturality_whiskerRight + theorem Mathlib.Tactic.Bicategory.of_normalize_eq + def Mathlib.Tactic.Bicategory.pureCoherence Modified Mathlib/Tactic/CategoryTheory/BicategoryCoherence.lean Modified Mathlib/Tactic/CategoryTheory/Coherence.lean Added Mathlib/Tactic/CategoryTheory/Coherence/Basic.lean + def Mathlib.Tactic.BicategoryLike.List.splitEvenOdd + def Mathlib.Tactic.BicategoryLike.main + theorem Mathlib.Tactic.BicategoryLike.mk_eq + theorem Mathlib.Tactic.BicategoryLike.mk_eq_of_cons + def Mathlib.Tactic.BicategoryLike.normalForm + def Mathlib.Tactic.BicategoryLike.ofNormalizedEq Added Mathlib/Tactic/CategoryTheory/Coherence/Datatypes.lean + structure Mathlib.Tactic.BicategoryLike.Atom + structure Mathlib.Tactic.BicategoryLike.AtomIso + structure Mathlib.Tactic.BicategoryLike.Atom₁ + structure Mathlib.Tactic.BicategoryLike.CoherenceHom + def Mathlib.Tactic.BicategoryLike.CoherenceM.run + structure Mathlib.Tactic.BicategoryLike.IsoLift + def Mathlib.Tactic.BicategoryLike.MonadMor₂Iso.associatorM' + def Mathlib.Tactic.BicategoryLike.MonadMor₂Iso.coherenceHomM' + def Mathlib.Tactic.BicategoryLike.MonadMor₂Iso.id₂M' + def Mathlib.Tactic.BicategoryLike.MonadMor₂Iso.leftUnitorM' + def Mathlib.Tactic.BicategoryLike.MonadMor₂Iso.rightUnitorM' + def Mathlib.Tactic.BicategoryLike.Mor₁.e + def Mathlib.Tactic.BicategoryLike.Mor₁.src + def Mathlib.Tactic.BicategoryLike.Mor₁.tgt + def Mathlib.Tactic.BicategoryLike.Mor₁.toList + inductive Mathlib.Tactic.BicategoryLike.Mor₁ + def Mathlib.Tactic.BicategoryLike.Mor₂.e + def Mathlib.Tactic.BicategoryLike.Mor₂.isoLift? + def Mathlib.Tactic.BicategoryLike.Mor₂.srcM + def Mathlib.Tactic.BicategoryLike.Mor₂.tgtM + inductive Mathlib.Tactic.BicategoryLike.Mor₂ + def Mathlib.Tactic.BicategoryLike.Mor₂Iso.e + def Mathlib.Tactic.BicategoryLike.Mor₂Iso.srcM + def Mathlib.Tactic.BicategoryLike.Mor₂Iso.tgtM + inductive Mathlib.Tactic.BicategoryLike.Mor₂Iso + def Mathlib.Tactic.BicategoryLike.NormalizedHom.consM + def Mathlib.Tactic.BicategoryLike.NormalizedHom.e + def Mathlib.Tactic.BicategoryLike.NormalizedHom.src + def Mathlib.Tactic.BicategoryLike.NormalizedHom.tgt + inductive Mathlib.Tactic.BicategoryLike.NormalizedHom + def Mathlib.Tactic.BicategoryLike.Obj.e + structure Mathlib.Tactic.BicategoryLike.Obj + structure Mathlib.Tactic.BicategoryLike.State + def Mathlib.Tactic.BicategoryLike.StructuralAtom.e + def Mathlib.Tactic.BicategoryLike.StructuralAtom.srcM + def Mathlib.Tactic.BicategoryLike.StructuralAtom.tgtM + inductive Mathlib.Tactic.BicategoryLike.StructuralAtom + def Mathlib.Tactic.BicategoryLike.mkContext + def Mathlib.Tactic.BicategoryLike.normalizedHom.nilM Added Mathlib/Tactic/CategoryTheory/Coherence/Normalize.lean + structure Mathlib.Tactic.BicategoryLike.Eval.Result + def Mathlib.Tactic.BicategoryLike.HorizontalComp.e + def Mathlib.Tactic.BicategoryLike.HorizontalComp.srcM + def Mathlib.Tactic.BicategoryLike.HorizontalComp.tgtM + inductive Mathlib.Tactic.BicategoryLike.HorizontalComp + def Mathlib.Tactic.BicategoryLike.Mor₂Iso.isStructural + def Mathlib.Tactic.BicategoryLike.NormalExpr.associatorInvM + def Mathlib.Tactic.BicategoryLike.NormalExpr.associatorM + def Mathlib.Tactic.BicategoryLike.NormalExpr.e + def Mathlib.Tactic.BicategoryLike.NormalExpr.idM + def Mathlib.Tactic.BicategoryLike.NormalExpr.leftUnitorInvM + def Mathlib.Tactic.BicategoryLike.NormalExpr.leftUnitorM + def Mathlib.Tactic.BicategoryLike.NormalExpr.ofAtomM + def Mathlib.Tactic.BicategoryLike.NormalExpr.ofM + def Mathlib.Tactic.BicategoryLike.NormalExpr.rightUnitorInvM + def Mathlib.Tactic.BicategoryLike.NormalExpr.rightUnitorM + def Mathlib.Tactic.BicategoryLike.NormalExpr.srcM + def Mathlib.Tactic.BicategoryLike.NormalExpr.tgtM + def Mathlib.Tactic.BicategoryLike.NormalExpr.toList + inductive Mathlib.Tactic.BicategoryLike.NormalExpr + def Mathlib.Tactic.BicategoryLike.WhiskerLeft.e + def Mathlib.Tactic.BicategoryLike.WhiskerLeft.srcM + def Mathlib.Tactic.BicategoryLike.WhiskerLeft.tgtM + inductive Mathlib.Tactic.BicategoryLike.WhiskerLeft + def Mathlib.Tactic.BicategoryLike.WhiskerRight.e + def Mathlib.Tactic.BicategoryLike.WhiskerRight.srcM + def Mathlib.Tactic.BicategoryLike.WhiskerRight.tgtM + inductive Mathlib.Tactic.BicategoryLike.WhiskerRight + def Mathlib.Tactic.BicategoryLike.eval + def Mathlib.Tactic.BicategoryLike.evalComp + def Mathlib.Tactic.BicategoryLike.evalCompNil + def Mathlib.Tactic.BicategoryLike.evalWhiskerLeft + def Mathlib.Tactic.BicategoryLike.traceProof Added Mathlib/Tactic/CategoryTheory/Coherence/PureCoherence.lean + structure Mathlib.Tactic.BicategoryLike.Normalize.Result + def Mathlib.Tactic.BicategoryLike.normalize + def Mathlib.Tactic.BicategoryLike.pureCoherence Deleted Mathlib/Tactic/CategoryTheory/Monoidal.lean - def Mathlib.Tactic.Monoidal.Atom.src - def Mathlib.Tactic.Monoidal.Atom.tgt - structure Mathlib.Tactic.Monoidal.Atom - structure Mathlib.Tactic.Monoidal.Atom₁ - structure Mathlib.Tactic.Monoidal.Context - def Mathlib.Tactic.Monoidal.Mor₁.e - def Mathlib.Tactic.Monoidal.Mor₁.toList - inductive Mathlib.Tactic.Monoidal.Mor₁ - def Mathlib.Tactic.Monoidal.NormalExpr.associator - def Mathlib.Tactic.Monoidal.NormalExpr.associatorInv - def Mathlib.Tactic.Monoidal.NormalExpr.e - def Mathlib.Tactic.Monoidal.NormalExpr.leftUnitor - def Mathlib.Tactic.Monoidal.NormalExpr.leftUnitorInv - def Mathlib.Tactic.Monoidal.NormalExpr.of - def Mathlib.Tactic.Monoidal.NormalExpr.ofExpr - def Mathlib.Tactic.Monoidal.NormalExpr.rightUnitor - def Mathlib.Tactic.Monoidal.NormalExpr.rightUnitorInv - def Mathlib.Tactic.Monoidal.NormalExpr.src - def Mathlib.Tactic.Monoidal.NormalExpr.tgt - def Mathlib.Tactic.Monoidal.NormalExpr.toList - inductive Mathlib.Tactic.Monoidal.NormalExpr - structure Mathlib.Tactic.Monoidal.Result - def Mathlib.Tactic.Monoidal.Structural.src - def Mathlib.Tactic.Monoidal.Structural.tgt - inductive Mathlib.Tactic.Monoidal.Structural - def Mathlib.Tactic.Monoidal.StructuralAtom.e - def Mathlib.Tactic.Monoidal.StructuralAtom.src - def Mathlib.Tactic.Monoidal.StructuralAtom.tgt - inductive Mathlib.Tactic.Monoidal.StructuralAtom - def Mathlib.Tactic.Monoidal.WhiskerLeftExpr.e - def Mathlib.Tactic.Monoidal.WhiskerLeftExpr.src - def Mathlib.Tactic.Monoidal.WhiskerLeftExpr.tgt - inductive Mathlib.Tactic.Monoidal.WhiskerLeftExpr - def Mathlib.Tactic.Monoidal.WhiskerRightExpr.e - def Mathlib.Tactic.Monoidal.WhiskerRightExpr.src - def Mathlib.Tactic.Monoidal.WhiskerRightExpr.tgt - inductive Mathlib.Tactic.Monoidal.WhiskerRightExpr - theorem Mathlib.Tactic.Monoidal.evalComp_cons - theorem Mathlib.Tactic.Monoidal.evalComp_nil_cons - theorem Mathlib.Tactic.Monoidal.evalComp_nil_nil - theorem Mathlib.Tactic.Monoidal.evalWhiskerLeft_comp - theorem Mathlib.Tactic.Monoidal.evalWhiskerLeft_id - theorem Mathlib.Tactic.Monoidal.evalWhiskerLeft_nil - theorem Mathlib.Tactic.Monoidal.evalWhiskerLeft_of_cons - theorem Mathlib.Tactic.Monoidal.evalWhiskerRight_comp - theorem Mathlib.Tactic.Monoidal.evalWhiskerRight_cons_of_of - theorem Mathlib.Tactic.Monoidal.evalWhiskerRight_cons_whisker - theorem Mathlib.Tactic.Monoidal.evalWhiskerRight_id - theorem Mathlib.Tactic.Monoidal.evalWhiskerRight_nil - theorem Mathlib.Tactic.Monoidal.eval_comp - theorem Mathlib.Tactic.Monoidal.eval_monoidalComp - theorem Mathlib.Tactic.Monoidal.eval_of - theorem Mathlib.Tactic.Monoidal.eval_whiskerLeft - theorem Mathlib.Tactic.Monoidal.eval_whiskerRight - def Mathlib.Tactic.Monoidal.isTensorObj? - def Mathlib.Tactic.Monoidal.isTensorUnit? - def Mathlib.Tactic.Monoidal.mkContext? - def Mathlib.Tactic.Monoidal.src - def Mathlib.Tactic.Monoidal.structuralAtom? - def Mathlib.Tactic.Monoidal.structuralOfMonoidalComp - def Mathlib.Tactic.Monoidal.tgt - def mkEq - theorem mk_eq Added Mathlib/Tactic/CategoryTheory/Monoidal/Basic.lean + def Mathlib.Tactic.Monoidal.monoidal + def Mathlib.Tactic.Monoidal.monoidalNf Added Mathlib/Tactic/CategoryTheory/Monoidal/Datatypes.lean + structure Mathlib.Tactic.Monoidal.Context + theorem Mathlib.Tactic.Monoidal.StructuralOfExpr_monoidalComp + def Mathlib.Tactic.Monoidal.comp? + def Mathlib.Tactic.Monoidal.id₁? + def Mathlib.Tactic.Monoidal.mkContext? + def Mathlib.Tactic.Monoidal.srcExpr + def Mathlib.Tactic.Monoidal.srcExprOfIso + theorem Mathlib.Tactic.Monoidal.structuralIsoOfExpr_comp + theorem Mathlib.Tactic.Monoidal.structuralIsoOfExpr_horizontalComp + theorem Mathlib.Tactic.Monoidal.structuralIsoOfExpr_whiskerLeft + theorem Mathlib.Tactic.Monoidal.structuralIsoOfExpr_whiskerRight + def Mathlib.Tactic.Monoidal.synthMonoidalError + def Mathlib.Tactic.Monoidal.tgtExpr + def Mathlib.Tactic.Monoidal.tgtExprOfIso Added Mathlib/Tactic/CategoryTheory/Monoidal/Normalize.lean + theorem Mathlib.Tactic.Monoidal.evalComp_cons + theorem Mathlib.Tactic.Monoidal.evalComp_nil_cons + theorem Mathlib.Tactic.Monoidal.evalComp_nil_nil + theorem Mathlib.Tactic.Monoidal.evalHorizontalCompAux'_of_whisker + theorem Mathlib.Tactic.Monoidal.evalHorizontalCompAux'_whisker + theorem Mathlib.Tactic.Monoidal.evalHorizontalCompAux_cons + theorem Mathlib.Tactic.Monoidal.evalHorizontalCompAux_of + theorem Mathlib.Tactic.Monoidal.evalHorizontalComp_cons_cons + theorem Mathlib.Tactic.Monoidal.evalHorizontalComp_cons_nil + theorem Mathlib.Tactic.Monoidal.evalHorizontalComp_nil_cons + theorem Mathlib.Tactic.Monoidal.evalHorizontalComp_nil_nil + theorem Mathlib.Tactic.Monoidal.evalWhiskerLeft_comp + theorem Mathlib.Tactic.Monoidal.evalWhiskerLeft_id + theorem Mathlib.Tactic.Monoidal.evalWhiskerLeft_nil + theorem Mathlib.Tactic.Monoidal.evalWhiskerLeft_of_cons + theorem Mathlib.Tactic.Monoidal.evalWhiskerRightAux_cons + theorem Mathlib.Tactic.Monoidal.evalWhiskerRightAux_of + theorem Mathlib.Tactic.Monoidal.evalWhiskerRight_comp + theorem Mathlib.Tactic.Monoidal.evalWhiskerRight_cons_of + theorem Mathlib.Tactic.Monoidal.evalWhiskerRight_cons_of_of + theorem Mathlib.Tactic.Monoidal.evalWhiskerRight_cons_whisker + theorem Mathlib.Tactic.Monoidal.evalWhiskerRight_id + theorem Mathlib.Tactic.Monoidal.evalWhiskerRight_nil + theorem Mathlib.Tactic.Monoidal.eval_comp + theorem Mathlib.Tactic.Monoidal.eval_monoidalComp + theorem Mathlib.Tactic.Monoidal.eval_of + theorem Mathlib.Tactic.Monoidal.eval_tensorHom + theorem Mathlib.Tactic.Monoidal.eval_whiskerLeft + theorem Mathlib.Tactic.Monoidal.eval_whiskerRight Added Mathlib/Tactic/CategoryTheory/Monoidal/PureCoherence.lean + theorem Mathlib.Tactic.Monoidal.mk_eq_of_naturality + theorem Mathlib.Tactic.Monoidal.naturality_associator + theorem Mathlib.Tactic.Monoidal.naturality_comp + theorem Mathlib.Tactic.Monoidal.naturality_id + theorem Mathlib.Tactic.Monoidal.naturality_inv + theorem Mathlib.Tactic.Monoidal.naturality_leftUnitor + theorem Mathlib.Tactic.Monoidal.naturality_rightUnitor + theorem Mathlib.Tactic.Monoidal.naturality_tensorHom + theorem Mathlib.Tactic.Monoidal.naturality_whiskerLeft + theorem Mathlib.Tactic.Monoidal.naturality_whiskerRight + theorem Mathlib.Tactic.Monoidal.of_normalize_eq + def Mathlib.Tactic.Monoidal.pureCoherence Modified Mathlib/Tactic/Widget/StringDiagram.lean + def Mathlib.Tactic.BicategoryLike.HorizontalComp.nodes + def Mathlib.Tactic.BicategoryLike.NormalExpr.nodes + def Mathlib.Tactic.BicategoryLike.NormalExpr.nodesAux + def Mathlib.Tactic.BicategoryLike.NormalExpr.strands + def Mathlib.Tactic.BicategoryLike.WhiskerLeft.nodes + def Mathlib.Tactic.BicategoryLike.WhiskerRight.nodes + def Mathlib.Tactic.BicategoryLike.pairs + def Mathlib.Tactic.BicategoryLike.topNodes - def Mathlib.Tactic.Monoidal.NormalExpr.nodes - def Mathlib.Tactic.Monoidal.NormalExpr.nodesAux - def Mathlib.Tactic.Monoidal.NormalExpr.strands - def Mathlib.Tactic.Monoidal.WhiskerLeftExpr.nodes - def Mathlib.Tactic.Monoidal.WhiskerRightExpr.nodes - def Mathlib.Tactic.Monoidal.pairs + def Mathlib.Tactic.Widget.StringDiagram.Kind.name + inductive Mathlib.Tactic.Widget.StringDiagram.Kind +/- def Mathlib.Tactic.Widget.StringDiagram.Node.srcList +/- def Mathlib.Tactic.Widget.StringDiagram.Node.tarList - def Mathlib.Tactic.Widget.StringDiagram.fromExpr + def Mathlib.Tactic.Widget.StringDiagram.mkKind +/- def Mathlib.Tactic.Widget.StringDiagram.mkStringDiagram - def Mathlib.Tactic.Widget.StringDiagram.topNodes Modified scripts/noshake.json Added test/CategoryTheory/Bicategory/Basic.lean Added test/CategoryTheory/Bicategory/Normalize.lean Deleted test/CategoryTheory/Monoidal.lean Added test/CategoryTheory/Monoidal/Basic.lean Added test/CategoryTheory/Monoidal/Normalize.lean Modified test/StringDiagram.lean 2024-09-18 01:17:38 d7e322a feat(List/Enum): add lemmas about `∀ x ∈ l.enum, p x` etc (#16789) ESTIMATED CHANGES Modified Mathlib/Data/List/Enum.lean + theorem List.exists_mem_enum + theorem List.exists_mem_enumFrom + theorem List.forall_mem_enum + theorem List.forall_mem_enumFrom 2024-09-18 01:02:31 f1027bc feat(Filter/Ker): prove `ker_iSup` etc (#16632) ESTIMATED CHANGES Modified Mathlib/Order/Filter/Ker.lean + theorem Filter.ker_iSup + theorem Filter.ker_sSup + theorem Filter.ker_sup 2024-09-17 23:58:31 fb04c4b feat(Normed/Field): `completeSpace_iff_isComplete_closedBall` (#15777) On the way to locally complete K iff complete O(K) Also add some helper lemmas about uniform continuity of multiplication by a constant with a variant for rings (via smul) instead of UniformGroup (which fields are not). ESTIMATED CHANGES Modified Mathlib/Analysis/Normed/Field/Basic.lean + theorem NormedDivisionRing.discreteTopology_unit_closedBall_eq_univ + theorem NormedDivisionRing.norm_eq_one_iff_ne_zero_of_discrete + theorem NormedDivisionRing.norm_le_one_of_discrete Modified Mathlib/Analysis/Normed/Field/Lemmas.lean + theorem NormedField.completeSpace_iff_isComplete_closedBall + theorem NormedField.discreteTopology_of_bddAbove_range_norm + theorem NormedField.discreteTopology_or_nontriviallyNormedField Modified Mathlib/Analysis/Normed/Group/Uniform.lean + theorem CauchySeq.mul_norm_bddAbove Modified Mathlib/Topology/Algebra/UniformGroup.lean + theorem UniformContinuous.const_mul + theorem UniformContinuous.div_const + theorem UniformContinuous.mul_const + theorem uniformContinuous_div_const + theorem uniformContinuous_mul_left + theorem uniformContinuous_mul_right Modified Mathlib/Topology/Algebra/UniformMulAction.lean + theorem UniformContinuous.const_mul' + theorem UniformContinuous.div_const' + theorem UniformContinuous.mul_const' + theorem uniformContinuous_div_const' + theorem uniformContinuous_mul_left' + theorem uniformContinuous_mul_right' 2024-09-17 23:02:48 1928609 chore(SetTheory/Cardinal/Basic): inline `mul_comm` into instance (#16851) We also make the arguments of `power_zero`, `power_one`, and `power_add` explicit. ESTIMATED CHANGES Modified Mathlib/SetTheory/Cardinal/Basic.lean +/- theorem Cardinal.power_add +/- theorem Cardinal.power_one +/- theorem Cardinal.power_zero 2024-09-17 21:38:31 3b220c5 feat(RingTheory/StandardSmooth): ring isomorphisms are standard smooth (#16869) We show that any `R`-algebra `S` where `algebraMap R S` is bijective, is standard smooth by constructing an explicit submersive presentation. This contribution was created as part of the AIM workshop "Formalizing algebraic geometry" in June 2024. ESTIMATED CHANGES Modified Mathlib/Algebra/MvPolynomial/Equiv.lean + theorem MvPolynomial.aeval_injective_iff_of_isEmpty Modified Mathlib/RingTheory/AlgebraicIndependent.lean Modified Mathlib/RingTheory/Generators.lean Modified Mathlib/RingTheory/Presentation.lean + theorem Algebra.Presentation.id_dimension + theorem Algebra.Presentation.ofBijectiveAlgebraMap_dimension Modified Mathlib/RingTheory/Smooth/StandardSmooth.lean + theorem Algebra.IsStandardSmoothOfRelativeDimension.of_algebraMap_bijective + theorem Algebra.PreSubmersivePresentation.ofBijectiveAlgebraMap_jacobian 2024-09-17 19:29:30 60e4a87 chore: split the `change origin` part from `Analytic.Basic` (#16891) Just moving things around, no mathematical change. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Analysis/Analytic/Basic.lean - theorem AnalyticAt.eventually_analyticAt - theorem AnalyticAt.exists_ball_analyticOn - theorem AnalyticAt.exists_mem_nhds_analyticOn - theorem FormalMultilinearSeries.analyticAt_changeOrigin - def FormalMultilinearSeries.changeOrigin - def FormalMultilinearSeries.changeOriginIndexEquiv - def FormalMultilinearSeries.changeOriginSeries - def FormalMultilinearSeries.changeOriginSeriesTerm - theorem FormalMultilinearSeries.changeOriginSeriesTerm_apply - theorem FormalMultilinearSeries.changeOriginSeriesTerm_changeOriginIndexEquiv_symm - theorem FormalMultilinearSeries.changeOriginSeries_summable_aux₁ - theorem FormalMultilinearSeries.changeOriginSeries_summable_aux₂ - theorem FormalMultilinearSeries.changeOriginSeries_summable_aux₃ - theorem FormalMultilinearSeries.changeOrigin_eval - theorem FormalMultilinearSeries.changeOrigin_radius - def FormalMultilinearSeries.derivSeries - theorem FormalMultilinearSeries.hasFPowerSeriesOnBall_changeOrigin - theorem FormalMultilinearSeries.le_changeOriginSeries_radius - theorem FormalMultilinearSeries.nnnorm_changeOriginSeriesTerm - theorem FormalMultilinearSeries.nnnorm_changeOriginSeriesTerm_apply_le - theorem FormalMultilinearSeries.nnnorm_changeOriginSeries_apply_le_tsum - theorem FormalMultilinearSeries.nnnorm_changeOriginSeries_le_tsum - theorem FormalMultilinearSeries.nnnorm_changeOrigin_le - theorem FormalMultilinearSeries.norm_changeOriginSeriesTerm - theorem HasFPowerSeriesOnBall.analyticAt_of_mem - theorem HasFPowerSeriesOnBall.analyticOn - theorem HasFPowerSeriesOnBall.changeOrigin - theorem isOpen_analyticAt Modified Mathlib/Analysis/Analytic/CPolynomial.lean Added Mathlib/Analysis/Analytic/ChangeOrigin.lean + theorem AnalyticAt.eventually_analyticAt + theorem AnalyticAt.exists_ball_analyticOn + theorem AnalyticAt.exists_mem_nhds_analyticOn + theorem FormalMultilinearSeries.analyticAt_changeOrigin + def FormalMultilinearSeries.changeOrigin + def FormalMultilinearSeries.changeOriginIndexEquiv + def FormalMultilinearSeries.changeOriginSeries + def FormalMultilinearSeries.changeOriginSeriesTerm + theorem FormalMultilinearSeries.changeOriginSeriesTerm_apply + theorem FormalMultilinearSeries.changeOriginSeriesTerm_changeOriginIndexEquiv_symm + theorem FormalMultilinearSeries.changeOriginSeries_summable_aux₁ + theorem FormalMultilinearSeries.changeOriginSeries_summable_aux₂ + theorem FormalMultilinearSeries.changeOriginSeries_summable_aux₃ + theorem FormalMultilinearSeries.changeOrigin_eval + theorem FormalMultilinearSeries.changeOrigin_radius + def FormalMultilinearSeries.derivSeries + theorem FormalMultilinearSeries.hasFPowerSeriesOnBall_changeOrigin + theorem FormalMultilinearSeries.le_changeOriginSeries_radius + theorem FormalMultilinearSeries.nnnorm_changeOriginSeriesTerm + theorem FormalMultilinearSeries.nnnorm_changeOriginSeriesTerm_apply_le + theorem FormalMultilinearSeries.nnnorm_changeOriginSeries_apply_le_tsum + theorem FormalMultilinearSeries.nnnorm_changeOriginSeries_le_tsum + theorem FormalMultilinearSeries.nnnorm_changeOrigin_le + theorem FormalMultilinearSeries.norm_changeOriginSeriesTerm + theorem HasFPowerSeriesOnBall.analyticAt_of_mem + theorem HasFPowerSeriesOnBall.analyticOn + theorem HasFPowerSeriesOnBall.changeOrigin + theorem isOpen_analyticAt Modified Mathlib/Analysis/Analytic/Uniqueness.lean Modified Mathlib/Analysis/Normed/Algebra/Exponential.lean 2024-09-17 19:29:29 a55e4c1 chore(GroupWithZero,Valuation): move `ℤₘ₀` notation earlier, under Multiplicative scope (#16873) Change the name of scope containing `ℤₘ₀` from `DiscreteValuation` to `Multiplicative`. ESTIMATED CHANGES Modified Mathlib/Algebra/Order/GroupWithZero/Canonical.lean Modified Mathlib/FieldTheory/RatFunc/AsPolynomial.lean Modified Mathlib/NumberTheory/FunctionField.lean Modified Mathlib/RingTheory/DedekindDomain/AdicValuation.lean Modified Mathlib/RingTheory/DedekindDomain/FiniteAdeleRing.lean Modified Mathlib/RingTheory/DedekindDomain/SelmerGroup.lean Modified Mathlib/RingTheory/DiscreteValuationRing/TFAE.lean Modified Mathlib/RingTheory/LaurentSeries.lean Modified Mathlib/RingTheory/Valuation/AlgebraInstances.lean Modified Mathlib/RingTheory/Valuation/Basic.lean 2024-09-17 19:29:28 907973b chore: reorganize AlgEquiv/MulEquiv declarations (#16867) The API for the various `*Equiv` types is inconsistent both in what results are exposed and how they are organized. This PR takes a first step towards improving the latter, by organizing results into sections for `Mul/AddEquiv` and `AlgEquiv`, and putting the same results in the same order within those. This organization could easily be extended to other similar types after this PR. ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/Equiv.lean Modified Mathlib/Algebra/Group/Equiv/Basic.lean 2024-09-17 19:29:26 b6e4c52 chore(VectorMeasure): move `ComplexMeasure` to `Complex` (#16833) ... to reduce dependencies. ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Measure/Complex.lean Modified Mathlib/MeasureTheory/Measure/VectorMeasure.lean 2024-09-17 19:29:25 78022fe feat(MeasureTheory/Borel): add `nullMeasurable_Ixx` (#16829) ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Constructions/BorelSpace/Order.lean + theorem nullMeasurableSet_Icc + theorem nullMeasurableSet_Ici + theorem nullMeasurableSet_Ico + theorem nullMeasurableSet_Iic + theorem nullMeasurableSet_Iio + theorem nullMeasurableSet_Ioc + theorem nullMeasurableSet_Ioi + theorem nullMeasurableSet_Ioo Modified Mathlib/MeasureTheory/Constructions/BorelSpace/Real.lean Modified Mathlib/MeasureTheory/Constructions/UnitInterval.lean Modified Mathlib/MeasureTheory/Decomposition/UnsignedHahn.lean Modified Mathlib/MeasureTheory/Integral/Layercake.lean Modified Mathlib/MeasureTheory/Integral/Periodic.lean Modified Mathlib/MeasureTheory/Measure/MeasureSpace.lean Modified Mathlib/MeasureTheory/Measure/NullMeasurable.lean Modified Mathlib/MeasureTheory/Measure/Regular.lean Modified Mathlib/MeasureTheory/Measure/Stieltjes.lean Modified Mathlib/MeasureTheory/Measure/Typeclasses.lean Modified Mathlib/Probability/Kernel/Disintegration/CDFToKernel.lean 2024-09-17 19:29:24 f926760 chore(Data/Finset/Image): simplify proof of filter_mem_image_eq_image (#16821) Simplify this proof - it's really just a combination of three existing facts. The lemma `filter_mem_image_eq_image` is used nowhere in mathlib, so I wouldn't have an objection to deleting it instead... ESTIMATED CHANGES Modified Mathlib/Algebra/BigOperators/Finprod.lean Modified Mathlib/Data/Finset/Image.lean +/- theorem Finset.fiber_nonempty_iff_mem_image 2024-09-17 19:29:23 c358712 feat(List): add `exists_mem_iff_getElem` (#16786) ... and similarly for `forall`. ESTIMATED CHANGES Modified Mathlib/Data/List/Basic.lean + theorem List.exists_mem_iff_getElem + theorem List.forall_mem_iff_getElem 2024-09-17 19:29:22 7e5fb31 feat(NumberField/CanonicalEmbedding): Define the fundamental cone for the action of the units of a number field (#12268) Let `K` be a number field of signature `(r₁, r₂)`. This PR defines the fundamental cone: it is a cone in the mixed space that is a fundamental domain for the action of `(𝓞 K)ˣ` modulo torsion. In a later PR #12333, we prove that points in the fundamental cone coming from `(𝓞 K)` modulo torsion are in a norm-preserving correspondence with the non-zero principal ideals of `(𝓞 K)`. This PR is part of the proof of the Analytic Class Number Formula. ESTIMATED CHANGES Modified Mathlib/Algebra/Module/ZLattice/Basic.lean Modified Mathlib/NumberTheory/NumberField/CanonicalEmbedding/Basic.lean + theorem NumberField.mixedEmbedding.mixedEmbedding_apply_ofIsComplex + theorem NumberField.mixedEmbedding.mixedEmbedding_apply_ofIsReal Modified Mathlib/NumberTheory/NumberField/CanonicalEmbedding/FundamentalCone.lean + theorem NumberField.mixedEmbedding.fundamentalCone.exists_unit_smul_mem + theorem NumberField.mixedEmbedding.fundamentalCone.mem_of_normAtPlace_eq + theorem NumberField.mixedEmbedding.fundamentalCone.normAtPlace_pos_of_mem + theorem NumberField.mixedEmbedding.fundamentalCone.norm_pos_of_mem + theorem NumberField.mixedEmbedding.fundamentalCone.smul_mem_iff_mem + theorem NumberField.mixedEmbedding.fundamentalCone.smul_mem_of_mem + theorem NumberField.mixedEmbedding.fundamentalCone.torsion_smul_mem_of_mem + theorem NumberField.mixedEmbedding.fundamentalCone.unit_smul_mem_iff_mem_torsion + def NumberField.mixedEmbedding.fundamentalCone Modified Mathlib/NumberTheory/NumberField/Units/DirichletTheorem.lean + def NumberField.Units.dirichletUnitTheorem.basisUnitLattice + theorem NumberField.Units.dirichletUnitTheorem.logEmbedding_fundSystem +/- theorem NumberField.Units.dirichletUnitTheorem.log_le_of_logEmbedding_le Modified Mathlib/NumberTheory/NumberField/Units/Regulator.lean 2024-09-17 18:34:20 fe83e80 feat: Expectation of a function over a finset (#15883) Define the expectation of a function `f : ι → M` over a finset `s : Finset ι` as `∑ i ∈ s, f i` divided by `s.card`. Naïvely, this requires `M` to be a semifield but, since `s.card⁻¹` is rational, we can get away with assuming `M` to be a `NNRat`-module. This generality is important to talk about expectation of functions. From LeanAPAP ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/BigOperators/Expect.lean + def BigOperators.delabFinsetExpect + theorem Finset.card_mul_expect + theorem Finset.card_smul_expect + theorem Finset.exists_ne_zero_of_expect_ne_zero + def Finset.expect + theorem Finset.expectWith_congr + theorem Finset.expect_add_distrib + theorem Finset.expect_add_expect_comm + theorem Finset.expect_bij' + theorem Finset.expect_bij + theorem Finset.expect_boole_mul' + theorem Finset.expect_boole_mul + theorem Finset.expect_comm + theorem Finset.expect_congr + theorem Finset.expect_const + theorem Finset.expect_const_zero + theorem Finset.expect_dite_eq' + theorem Finset.expect_dite_eq + theorem Finset.expect_div + theorem Finset.expect_empty + theorem Finset.expect_eq_single_of_mem + theorem Finset.expect_eq_sum_div_card + theorem Finset.expect_eq_zero + theorem Finset.expect_equiv + theorem Finset.expect_image + theorem Finset.expect_inv_index + theorem Finset.expect_ite_eq' + theorem Finset.expect_ite_eq + theorem Finset.expect_ite_zero + theorem Finset.expect_mul + theorem Finset.expect_mul_expect + theorem Finset.expect_nbij' + theorem Finset.expect_nbij + theorem Finset.expect_neg_distrib + theorem Finset.expect_neg_index + theorem Finset.expect_pow + theorem Finset.expect_product' + theorem Finset.expect_product + theorem Finset.expect_singleton + theorem Finset.expect_sub_distrib + theorem Finset.expect_sum_comm + theorem Finset.expect_univ + theorem Finset.mul_expect + theorem Finset.smul_expect + theorem Fintype.card_mul_expect + theorem Fintype.card_smul_expect + theorem Fintype.expect_bijective + theorem Fintype.expect_const + theorem Fintype.expect_dite_eq' + theorem Fintype.expect_dite_eq + theorem Fintype.expect_eq_sum_div_card + theorem Fintype.expect_equiv + theorem Fintype.expect_ite_eq' + theorem Fintype.expect_ite_eq + theorem Fintype.expect_ite_zero + theorem Fintype.expect_one + theorem algebraMap.coe_expect + theorem map_expect Modified Mathlib/Data/Finset/Basic.lean 2024-09-17 16:36:02 a5f5e46 chore: Make `Finset.prod_product` and `Fintype.prod_prod_type` more uniform (#16884) Make more variables explicit in the rewriting lemmas. Unsimp `Fintype.prod_prod_type` since `Finset.prod_product` is not simp. ESTIMATED CHANGES Modified Mathlib/Algebra/BigOperators/Group/Finset.lean +/- theorem Finset.prod_product' +/- theorem Finset.prod_product +/- theorem Finset.prod_product_right' +/- theorem Finset.prod_product_right Modified Mathlib/Algebra/MonoidAlgebra/Defs.lean Modified Mathlib/Data/Fintype/BigOperators.lean +/- theorem Fintype.prod_prod_type' +/- theorem Fintype.prod_prod_type +/- theorem Fintype.prod_prod_type_right' +/- theorem Fintype.prod_prod_type_right Modified Mathlib/Data/Matrix/Composition.lean Modified Mathlib/LinearAlgebra/Matrix/Trace.lean Modified Mathlib/RingTheory/MatrixAlgebra.lean 2024-09-17 16:36:00 d1b7ef7 chore: update Mathlib dependencies 2024-09-17 (#16876) This PR updates the Mathlib dependencies. ESTIMATED CHANGES Modified lake-manifest.json 2024-09-17 16:35:59 cb9a71d feat: `Fintype (Finpartition s)` for `s : Finset α` (#16598) ESTIMATED CHANGES Modified Mathlib/Order/Partition/Finpartition.lean 2024-09-17 16:35:58 99bc050 chore: Rename `Topology.RestrictGenTopology` to `Topology.RestrictGen` (#16087) The predicate will soon be renamed from `RestrictGenTopology` to `Topology.IsRestrictGen`. ESTIMATED CHANGES Modified Mathlib.lean Renamed Mathlib/Topology/RestrictGenTopology.lean to Mathlib/Topology/RestrictGen.lean Modified Mathlib/Topology/UniformSpace/UniformConvergenceTopology.lean 2024-09-17 15:51:13 eb17e51 chore: remove unnecessary NeBot assumptions (#16847) I analysed all the use of NeBot assumptions (that a filter needs to be non-empty). I found 10 lemmas where this assumption was unnecessary, and removed it (with some modification of the proofs when necessary). When possible, I simplified the proofs which use those lemmas. Unrelated: I cleaned up some lemmas I encountered which had universal quantifiers/chains of implications in their conclusions, using additional assumptions instead. ESTIMATED CHANGES Modified Mathlib/Analysis/Calculus/SmoothSeries.lean Modified Mathlib/Analysis/Calculus/UniformLimitsDeriv.lean Modified Mathlib/MeasureTheory/Integral/Indicator.lean +/- theorem MeasureTheory.tendsto_measure_of_tendsto_indicator +/- theorem MeasureTheory.tendsto_measure_of_tendsto_indicator_of_isFiniteMeasure Modified Mathlib/MeasureTheory/Measure/Portmanteau.lean Modified Mathlib/Topology/Algebra/Order/LiminfLimsup.lean +/- theorem limsInf_nhds +/- theorem limsSup_eq_of_le_nhds +/- theorem limsup_const_sub +/- theorem limsup_sub_const Modified Mathlib/Topology/Instances/ENNReal.lean +/- theorem ENNReal.liminf_const_sub +/- theorem ENNReal.limsup_const_sub +/- theorem ENNReal.limsup_sub_const Modified Mathlib/Topology/Order/IsLUB.lean +/- theorem IsGLB.isLUB_of_tendsto +/- theorem IsGLB.nhdsWithin_neBot +/- theorem IsLUB.isGLB_of_tendsto +/- theorem isGLB_of_mem_nhds Modified Mathlib/Topology/UniformSpace/UniformConvergence.lean +/- theorem UniformCauchySeqOn.tendstoUniformlyOn_of_tendsto +/- theorem UniformCauchySeqOnFilter.tendstoUniformlyOnFilter_of_tendsto 2024-09-17 15:51:12 2f37c5d feat(Topology/Group/Profinite): Define Profinite Groups (#16648) Define Profinite Groups ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Category/Grp/FiniteGrp.lean + structure FiniteAddGrp + def FiniteGrp.of + def FiniteGrp.ofHom + theorem FiniteGrp.ofHom_apply + structure FiniteGrp Added Mathlib/Topology/Algebra/Category/ProfiniteGrp.lean + structure ProfiniteAddGrp + theorem ProfiniteGrp.coe_comp + theorem ProfiniteGrp.coe_id + theorem ProfiniteGrp.coe_of + def ProfiniteGrp.of + def ProfiniteGrp.ofFiniteGrp + def ProfiniteGrp.pi + structure ProfiniteGrp Modified Mathlib/Topology/Algebra/Group/SubmonoidClosure.lean Modified Mathlib/Topology/Category/Profinite/Basic.lean + def Profinite.pi 2024-09-17 15:51:10 3ed4028 feat(Fin): lt_sub_iff, rev_{add,sub} (#13962) Helper lemmas in digit expansions ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Fin/Basic.lean + theorem Fin.add_lt_left_iff + theorem Fin.lt_one_iff + theorem Fin.lt_sub_iff + theorem Fin.rev_add + theorem Fin.rev_sub + theorem Fin.sub_le_iff 2024-09-17 14:06:26 9801c67 chore: add missing file to `Mathlib.lean` (#16892) ESTIMATED CHANGES Modified Mathlib.lean 2024-09-17 11:41:36 9a321de feat(Topology/Order): Sierpiński space classifies open sets of Scott topology (#16826) This PR shows that the Sierpiński topology coincides with the upper topology on `Prop`, and hence with the Scott topology (since `Prop` is a complete linear order). This observation reveals that a subset of a preorder is open in the Scott topology if and only if its characteristic function is Scott continuous. ESTIMATED CHANGES Modified Mathlib/Order/Interval/Set/Basic.lean + theorem Set.Ici_False + theorem Set.Ici_True + theorem Set.Iic_False + theorem Set.Iic_True + theorem Set.Iio_False + theorem Set.Iio_True + theorem Set.Ioi_False + theorem Set.Ioi_True Modified Mathlib/Topology/Order.lean + theorem generateFrom_insert_empty Modified Mathlib/Topology/Order/LowerUpperTopology.lean Modified Mathlib/Topology/Order/ScottTopology.lean + theorem Topology.IsScott.isOpen_iff_scottContinuous_mem 2024-09-17 11:41:35 610ec98 chore: split Topology.Algebra.Module.WeakDual (#16489) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Analysis/Fourier/RiemannLebesgueLemma.lean Modified Mathlib/Analysis/LocallyConvex/Polar.lean Modified Mathlib/Analysis/LocallyConvex/WeakDual.lean Modified Mathlib/Analysis/Normed/Module/WeakDual.lean Added Mathlib/Topology/Algebra/Module/WeakBilin.lean + theorem WeakBilin.coeFn_continuous + theorem WeakBilin.continuous_of_continuous_eval + theorem WeakBilin.embedding + theorem WeakBilin.eval_continuous + theorem WeakBilin.tendsto_iff_forall_eval_tendsto + def WeakBilin Modified Mathlib/Topology/Algebra/Module/WeakDual.lean - theorem WeakBilin.coeFn_continuous - theorem WeakBilin.continuous_of_continuous_eval - theorem WeakBilin.embedding - theorem WeakBilin.eval_continuous - theorem WeakBilin.tendsto_iff_forall_eval_tendsto - def WeakBilin 2024-09-17 10:56:40 f18da2b feat(Order/InitialSeg): Subsingleton (α ≃o β) on well-orders (#16882) This allows us to generalize an instance which stated this for `Fin n`. We also generalize `StrictMono.range_inj` for maps into preorders. ESTIMATED CHANGES Modified Mathlib/Data/Finset/Sort.lean Modified Mathlib/Order/Fin/Basic.lean Modified Mathlib/Order/Hom/Set.lean +/- theorem OrderEmbedding.range_inj Modified Mathlib/Order/WellFounded.lean 2024-09-17 09:53:42 b755dda feat(RingTheory/IntegralClosure/IsIntegralClosure/Basic): add isIntegral_iff_of_equiv (#15738) ESTIMATED CHANGES Modified Mathlib/RingTheory/IntegralClosure/Algebra/Basic.lean + theorem mem_integralClosure_iff Modified Mathlib/RingTheory/IntegralClosure/IsIntegral/Basic.lean + theorem RingEquiv.isIntegral_iff 2024-09-17 09:53:41 c479ef2 feat(Algebra/Ring/Subring/IntPolynomiall): add intPolynomial (#15733) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Ring/Subring/IntPolynomial.lean + def Polynomial.int + theorem Polynomial.int_coeff_eq + theorem Polynomial.int_eval₂_eq + theorem Polynomial.int_leadingCoeff_eq + theorem Polynomial.int_monic_iff + theorem Polynomial.int_natDegree 2024-09-17 09:07:17 ae7e499 feat(SetTheory/Ordinal/Arithmetic): the complement of a small set of ordinals is unbounded (#16875) ESTIMATED CHANGES Modified Mathlib/Logic/Small/Set.lean + theorem small_univ_iff Modified Mathlib/SetTheory/Ordinal/Arithmetic.lean + theorem Ordinal.not_bddAbove_compl_of_small 2024-09-17 09:07:16 0bdd5fa chore(ModelTheory/Equivalence): Cleanup of `FirstOrder.Language.Theory.SemanticallyEquivalent` (#16799) Moves the definition and API of `FirstOrder.Language.Theory.SemanticallyEquivalent` to a new file, `Mathlib/ModelTheory/Equivalence.lean`, anticipating further development Cleans up the use of the namespace `FirstOrder.Language.Theory.SemanticallyEquivalent` Defines the notation `φ ⇔[T] ψ` for `T.SemanticallyEquivalent φ ψ` Other moving files, moving variables, introducing notation, and editing documentation, no changes were made. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/ModelTheory/Complexity.lean Added Mathlib/ModelTheory/Equivalence.lean + theorem FirstOrder.Language.BoundedFormula.all_semanticallyEquivalent_not_ex_not + theorem FirstOrder.Language.BoundedFormula.ex_semanticallyEquivalent_not_all_not + theorem FirstOrder.Language.BoundedFormula.imp_semanticallyEquivalent_not_sup + theorem FirstOrder.Language.BoundedFormula.inf_semanticallyEquivalent_not_sup_not + theorem FirstOrder.Language.BoundedFormula.semanticallyEquivalent_all_liftAt + theorem FirstOrder.Language.BoundedFormula.semanticallyEquivalent_not_not + theorem FirstOrder.Language.BoundedFormula.sup_semanticallyEquivalent_not_inf_not + theorem FirstOrder.Language.Formula.imp_semanticallyEquivalent_not_sup + theorem FirstOrder.Language.Formula.inf_semanticallyEquivalent_not_sup_not + theorem FirstOrder.Language.Formula.semanticallyEquivalent_not_not + theorem FirstOrder.Language.Formula.sup_semanticallyEquivalent_not_inf_not + theorem FirstOrder.Language.Theory.SemanticallyEquivalent.models_sentence_iff + theorem FirstOrder.Language.Theory.SemanticallyEquivalent.realize_bd_iff + theorem FirstOrder.Language.Theory.SemanticallyEquivalent.realize_iff + def FirstOrder.Language.Theory.SemanticallyEquivalent + def FirstOrder.Language.Theory.semanticallyEquivalentSetoid Modified Mathlib/ModelTheory/Satisfiability.lean - theorem FirstOrder.Language.BoundedFormula.all_semanticallyEquivalent_not_ex_not - theorem FirstOrder.Language.BoundedFormula.ex_semanticallyEquivalent_not_all_not - theorem FirstOrder.Language.BoundedFormula.imp_semanticallyEquivalent_not_sup - theorem FirstOrder.Language.BoundedFormula.inf_semanticallyEquivalent_not_sup_not - theorem FirstOrder.Language.BoundedFormula.semanticallyEquivalent_all_liftAt - theorem FirstOrder.Language.BoundedFormula.semanticallyEquivalent_not_not - theorem FirstOrder.Language.BoundedFormula.sup_semanticallyEquivalent_not_inf_not - theorem FirstOrder.Language.Formula.imp_semanticallyEquivalent_not_sup - theorem FirstOrder.Language.Formula.inf_semanticallyEquivalent_not_sup_not - theorem FirstOrder.Language.Formula.semanticallyEquivalent_not_not - theorem FirstOrder.Language.Formula.sup_semanticallyEquivalent_not_inf_not - theorem FirstOrder.Language.Theory.SemanticallyEquivalent.models_sentence_iff - theorem FirstOrder.Language.Theory.SemanticallyEquivalent.realize_bd_iff - theorem FirstOrder.Language.Theory.SemanticallyEquivalent.realize_iff - theorem FirstOrder.Language.Theory.SemanticallyEquivalent.refl - theorem FirstOrder.Language.Theory.SemanticallyEquivalent.symm - theorem FirstOrder.Language.Theory.SemanticallyEquivalent.trans - def FirstOrder.Language.Theory.SemanticallyEquivalent - def FirstOrder.Language.Theory.semanticallyEquivalentSetoid 2024-09-17 08:32:36 e7b3fc0 feat(RingTheory): `Valuation.Integers.not_denselyOrdered_of_isPrincipalIdealRing` (#15939) On the way to the iff when the range of valuation on nonzeros is `MulArchimedean`. ESTIMATED CHANGES Modified Mathlib/RingTheory/Ideal/Basic.lean + theorem Ideal.mem_of_dvd Modified Mathlib/RingTheory/Valuation/Integers.lean + theorem Valuation.Integers.isPrincipal_iff_exists_isGreatest + theorem Valuation.Integers.not_denselyOrdered_of_isPrincipalIdealRing 2024-09-17 07:27:38 e4699df feat(Order/WellFounded): Generalize `StrictMono.id_le` (#16706) This PR does the following: - We merge `StrictMono.id_le` with its previously existing proof for a well-founded linear order, and use the `WellFoundedLT` typeclass rather than having a `WellFounded (· < ·)` argument. - We rename `eq_strictMono_iff_eq_range` to the more idiomatic `StrictMono.range_inj` and golf it slightly by using `Set.InjOn`. - We prove order duals of these theorems. ESTIMATED CHANGES Modified Mathlib/Data/Nat/Nth.lean Modified Mathlib/Order/Hom/Set.lean + theorem OrderEmbedding.range_inj Modified Mathlib/Order/Monotone/Basic.lean - theorem StrictMono.id_le Modified Mathlib/Order/WellFounded.lean + theorem Set.range_injOn_strictAnti + theorem Set.range_injOn_strictMono + theorem StrictAnti.range_inj + theorem StrictMono.apply_le + theorem StrictMono.id_le + theorem StrictMono.le_apply + theorem StrictMono.le_id + theorem StrictMono.range_inj +/- theorem WellFounded.eq_strictMono_iff_eq_range +/- theorem WellFounded.min_le +/- theorem WellFounded.self_le_of_strictMono Modified Mathlib/SetTheory/Ordinal/Arithmetic.lean + theorem Ordinal.IsNormal.id_le + theorem Ordinal.IsNormal.le_apply Modified Mathlib/SetTheory/Ordinal/Exponential.lean Modified Mathlib/SetTheory/Ordinal/FixedPoint.lean Modified Mathlib/SetTheory/Ordinal/Principal.lean 2024-09-17 02:57:05 ab21cb1 feat: define `Filter.absorbing` (#15215) Also prove that a set is von Neumann bounded iff `Filter.absorbing 𝕜 S ≤ 𝓝 0`. These lemmas make it easy to simplify ` IsVonNBounded 𝕜 S`, provided that we have `𝓝 0 = ⨅ (a1 a2 ... ak), 𝓟 (f a1 a2 ... ak)`, even if the family of sets in the RHS is not directed, so `Filter.HasBasis` is false. ESTIMATED CHANGES Modified Mathlib/Analysis/LocallyConvex/Bounded.lean + theorem Bornology.isVonNBounded_iff_absorbing_le Modified Mathlib/Topology/Bornology/Absorbs.lean + def Filter.absorbing + theorem Filter.mem_absorbing +/- theorem Set.Finite.absorbs_biInter +/- theorem Set.Finite.absorbs_sInter +/- theorem absorbs_iInter +/- theorem absorbs_iff_eventually_cobounded_mapsTo +/- theorem absorbs_inter +/- theorem absorbs_zero_iff 2024-09-17 01:03:27 23e9a3e feat(AlgegraicTopology): the category of simplicial objects is simplicial (#16861) For any category `C`, the category `SimplicialObject C` is simplicial. In particular, the category of simplicial sets is simplicial. ESTIMATED CHANGES Modified Mathlib/AlgebraicTopology/SimplexCategory.lean Added Mathlib/AlgebraicTopology/SimplicialCategory/SimplicialObject.lean 2024-09-17 00:54:39 b9b0429 chore(Archive/IMO/1962Q1): better hypothesis names (#16845) Do not use `h1` for a hypothesis that doesn't involve the number `1`. Also, lemmas for this IMO solution are now `lemma` and the word `digits` is plural. ESTIMATED CHANGES Modified Archive/Imo/Imo1962Q1.lean - theorem Imo1962Q1.case_0_digit + theorem Imo1962Q1.case_0_digits - theorem Imo1962Q1.case_1_digit + theorem Imo1962Q1.case_1_digits - theorem Imo1962Q1.case_2_digit + theorem Imo1962Q1.case_2_digits - theorem Imo1962Q1.case_3_digit + theorem Imo1962Q1.case_3_digits - theorem Imo1962Q1.case_4_digit + theorem Imo1962Q1.case_4_digits - theorem Imo1962Q1.case_5_digit + theorem Imo1962Q1.case_5_digits +/- theorem Imo1962Q1.case_more_digits - theorem Imo1962Q1.helper_5_digit +/- theorem Imo1962Q1.no_smaller_solutions +/- theorem Imo1962Q1.satisfied_by_153846 +/- theorem Imo1962Q1.without_digits 2024-09-16 23:59:51 97fc480 chore(VectorMeasure): drop `T2Space` assumption here and there (#16832) ESTIMATED CHANGES Modified Mathlib/Data/Set/Pairwise/Basic.lean + theorem Pairwise.disjoint_extend_bot +/- theorem pairwise_disjoint_mono +/- theorem pairwise_disjoint_on +/- theorem pairwise_disjoint_on_bool Modified Mathlib/MeasureTheory/Decomposition/SignedHahn.lean Modified Mathlib/MeasureTheory/Measure/VectorMeasure.lean +/- theorem MeasureTheory.VectorMeasure.hasSum_of_disjoint_iUnion +/- theorem MeasureTheory.VectorMeasure.of_disjoint_iUnion +/- theorem MeasureTheory.VectorMeasure.of_disjoint_iUnion_nat 2024-09-16 19:54:57 6be3e57 chore: update Mathlib dependencies 2024-09-16 (#16860) This PR updates the Mathlib dependencies. ESTIMATED CHANGES Modified lake-manifest.json 2024-09-16 18:53:01 712527c feat(Order/SuccPred): transfer SuccOrder and friends over OrderIsos (#16785) ESTIMATED CHANGES Modified Mathlib/Order/SuccPred/Archimedean.lean Modified Mathlib/Order/SuccPred/Basic.lean 2024-09-16 18:44:40 daa19b6 feat(Analysis/Normed/Field): ProperSpace of WeaklyLocallyCompact (#16731) Shortcut definition that doesn't require the generalization to any `NormedSpace` over such a field Shake the p-adic proper space proof. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/Normed/Field/ProperSpace.lean + theorem ProperSpace.of_nontriviallyNormedField_of_weaklyLocallyCompactSpace Modified Mathlib/NumberTheory/Padics/ProperSpace.lean 2024-09-16 17:23:45 47053c5 feat: a continuous linear map into continuous multilinear maps is analytic (#16844) Also move the fact that continuous linear maps are analytic to the proper place, i.e., in `Analytic.CPolynomial` instead of `Calculus.FDeriv.Analytic`. ESTIMATED CHANGES Modified Mathlib/Analysis/Analytic/CPolynomial.lean + theorem ContinuousLinearMap.analyticAt_uncurry_of_multilinear + theorem ContinuousLinearMap.analyticOn_uncurry_of_multilinear + theorem ContinuousLinearMap.analyticWithinAt_uncurry_of_multilinear + theorem ContinuousLinearMap.analyticWithinOn_uncurry_of_multilinear + theorem ContinuousLinearMap.continuousAt_uncurry_of_multilinear + theorem ContinuousLinearMap.continuousOn_uncurry_of_multilinear + theorem ContinuousLinearMap.continuousWithinAt_uncurry_of_multilinear + theorem ContinuousLinearMap.continuous_uncurry_of_multilinear + theorem ContinuousLinearMap.cpolynomialAt_uncurry_of_multilinear + theorem ContinuousLinearMap.cpolyomialOn_uncurry_of_multilinear + theorem ContinuousMultilinearMap.analyticAt + theorem ContinuousMultilinearMap.analyticOn + theorem ContinuousMultilinearMap.analyticWithinAt + theorem ContinuousMultilinearMap.analyticWithinOn + theorem ContinuousMultilinearMap.cpolynomialAt + theorem ContinuousMultilinearMap.cpolyomialOn Modified Mathlib/Analysis/Calculus/FDeriv/Analytic.lean Modified Mathlib/Analysis/NormedSpace/Multilinear/Curry.lean + theorem ContinuousLinearMap.continuousMultilinearMapOption_apply_eq_self 2024-09-16 17:23:44 007dfde feat: more API for `AnalyticWithinAt` (#16843) The PR adds versions for `AnalyticWithinAt` of many lemmas that were already available for `AnalyticAt` (and sometimes deduces the `AnalyticAt` versions from the `AnalyticWithinAt`). It is a little long, but mostly trivial without any real mathematical content. ESTIMATED CHANGES Modified Mathlib/Analysis/Analytic/Basic.lean + theorem AnalyticWithinAt.add + theorem AnalyticWithinAt.neg + theorem AnalyticWithinAt.sub + theorem AnalyticWithinOn.add + theorem AnalyticWithinOn.neg + theorem AnalyticWithinOn.sub + theorem HasFPowerSeriesWithinAt.add + theorem HasFPowerSeriesWithinAt.neg + theorem HasFPowerSeriesWithinAt.sub + theorem HasFPowerSeriesWithinOnBall.add + theorem HasFPowerSeriesWithinOnBall.neg + theorem HasFPowerSeriesWithinOnBall.sub + theorem analyticWithinAt_const + theorem analyticWithinOn_const Modified Mathlib/Analysis/Analytic/Constructions.lean + theorem AnalyticAt.comp₂_analyticWithinAt + theorem AnalyticWithinAt.comp₂ + theorem AnalyticWithinAt.curry_left + theorem AnalyticWithinAt.curry_right + theorem AnalyticWithinAt.div + theorem AnalyticWithinAt.inv + theorem AnalyticWithinAt.mul + theorem AnalyticWithinAt.pow + theorem AnalyticWithinAt.prod + theorem AnalyticWithinAt.smul + theorem AnalyticWithinOn.comp₂ + theorem AnalyticWithinOn.curry_left + theorem AnalyticWithinOn.curry_right + theorem AnalyticWithinOn.div + theorem AnalyticWithinOn.inv + theorem AnalyticWithinOn.mul + theorem AnalyticWithinOn.pow + theorem AnalyticWithinOn.prod + theorem AnalyticWithinOn.smul + theorem Finset.analyticWithinAt_prod + theorem Finset.analyticWithinAt_sum + theorem Finset.analyticWithinOn_prod + theorem Finset.analyticWithinOn_sum + theorem HasFPowerSeriesWithinAt.prod + theorem HasFPowerSeriesWithinOnBall.prod + theorem analyticAt_pi_iff + theorem analyticOn_pi_iff + theorem analyticWithinAt_pi_iff + theorem analyticWithinOn_pi_iff Modified Mathlib/Analysis/Analytic/IsolatedZeros.lean Modified Mathlib/Analysis/Analytic/Linear.lean +/- theorem analyticAt_fst +/- theorem analyticAt_id +/- theorem analyticAt_snd +/- theorem analyticOn_fst +/- theorem analyticOn_id +/- theorem analyticOn_snd + theorem analyticWithinAt_fst + theorem analyticWithinAt_id + theorem analyticWithinAt_snd + theorem analyticWithinOn_fst + theorem analyticWithinOn_id + theorem analyticWithinOn_snd Modified Mathlib/Analysis/Analytic/Meromorphic.lean +/- theorem MeromorphicAt.id Modified Mathlib/Analysis/Analytic/Polynomial.lean Modified Mathlib/Analysis/Analytic/Within.lean - theorem AnalyticWithinAt.prod - theorem AnalyticWithinOn.prod - theorem HasFPowerSeriesWithinAt.prod - theorem HasFPowerSeriesWithinOnBall.prod Modified Mathlib/Geometry/Manifold/AnalyticManifold.lean 2024-09-16 17:23:42 374f1fb chore(AlgebraicGeometry/EllipticCurve/Weierstrass): change the ext lemma for `EllipticCurve` (#16828) Now it doesn't require that the discriminant is equal. This is like `Units.ext`. ESTIMATED CHANGES Modified Mathlib/AlgebraicGeometry/EllipticCurve/Weierstrass.lean + theorem EllipticCurve.ext + theorem EllipticCurve.toWeierstrassCurve_injective 2024-09-16 17:23:41 fc1c0e8 feat(ModelTheory/Order): The theory of dense linear orders is countably categorical, and thus complete (#16804) `FirstOrder.Language.aleph0_categorical_dlo` shows that the theory of dense linear orders is `ℵ₀`-categorical, as a consequence of Fraïssé theory. As a consequence, it is complete. To aid in calculations (such as needed for deducing completeness) involving the cardinality of a theory, `FirstOrder.Language.Symbols` is made into an `abbrev`. ESTIMATED CHANGES Modified Mathlib/ModelTheory/Basic.lean - def FirstOrder.Language.Symbols +/- theorem FirstOrder.Language.empty_card Modified Mathlib/ModelTheory/Fraisse.lean Modified Mathlib/ModelTheory/Order.lean + theorem FirstOrder.Language.aleph0_categorical_dlo + theorem FirstOrder.Language.dlo_isComplete +/- theorem FirstOrder.Language.isFraisseLimit_of_countable_nonempty_dlo + theorem FirstOrder.Language.order.card_eq_one 2024-09-16 17:23:40 3dd7baf feat(NumberField/CanonicalEmbedding/FundamencalCone): define the logMap (#16763) We define a map from the mixed space to the log space (The space used in the proof of Dirichlet theorem). By taking the inverse image of a fundamental domain of the unit lattice, we will get the fundamental cone, see #12268. This PR is part of the proof of the Analytic Class Number Formula. ESTIMATED CHANGES Modified Mathlib/NumberTheory/NumberField/CanonicalEmbedding/Basic.lean + theorem NumberField.mixedEmbedding.norm_eq_of_normAtPlace_eq Modified Mathlib/NumberTheory/NumberField/CanonicalEmbedding/FundamentalCone.lean + def NumberField.mixedEmbedding.logMap + theorem NumberField.mixedEmbedding.logMap_apply + theorem NumberField.mixedEmbedding.logMap_apply_of_norm_one + theorem NumberField.mixedEmbedding.logMap_eq_logEmbedding + theorem NumberField.mixedEmbedding.logMap_eq_of_normAtPlace_eq + theorem NumberField.mixedEmbedding.logMap_mul + theorem NumberField.mixedEmbedding.logMap_one + theorem NumberField.mixedEmbedding.logMap_real + theorem NumberField.mixedEmbedding.logMap_real_smul + theorem NumberField.mixedEmbedding.logMap_torsion_smul + theorem NumberField.mixedEmbedding.logMap_unit_smul + theorem NumberField.mixedEmbedding.logMap_zero 2024-09-16 17:23:39 7f6525c feat(Order/SuccPred/Limit): induction principles for `IsSuccLimit` and `IsPredLimit` (#16719) ESTIMATED CHANGES Modified Mathlib/Order/SuccPred/Limit.lean + theorem Order.isPredLimitRecOn_of_isMax + theorem Order.isPredLimitRecOn_of_isPredLimit + theorem Order.isPredLimitRecOn_pred + theorem Order.isPredLimitRecOn_pred_of_not_isMin - theorem Order.isPredPrelimitRecOn_limit + theorem Order.isPredPrelimitRecOn_of_isPredPrelimit - theorem Order.isPredPrelimitRecOn_pred' + theorem Order.isPredPrelimitRecOn_pred_of_not_isMin + theorem Order.isSuccLimitRecOn_of_isMin + theorem Order.isSuccLimitRecOn_of_isSuccLimit + theorem Order.isSuccLimitRecOn_succ + theorem Order.isSuccLimitRecOn_succ_of_not_isMax - theorem Order.isSuccPrelimitRecOn_limit + theorem Order.isSuccPrelimitRecOn_of_isSuccPrelimit - theorem Order.isSuccPrelimitRecOn_succ' + theorem Order.isSuccPrelimitRecOn_succ_of_not_isMax + theorem PredOrder.limitRecOn_isMax + theorem PredOrder.limitRecOn_of_isPredLimit + theorem PredOrder.limitRecOn_pred + theorem PredOrder.limitRecOn_pred_of_not_isMin - theorem PredOrder.prelimitRecOn_limit + theorem PredOrder.prelimitRecOn_of_isPredPrelimit - theorem PredOrder.prelimitRecOn_pred' + theorem PredOrder.prelimitRecOn_pred_of_not_isMin + theorem SuccOrder.limitRecOn_isMin + theorem SuccOrder.limitRecOn_of_isSuccLimit + theorem SuccOrder.limitRecOn_succ + theorem SuccOrder.limitRecOn_succ_of_not_isMax - theorem SuccOrder.prelimitRecOn_limit + theorem SuccOrder.prelimitRecOn_of_isSuccPrelimit - theorem SuccOrder.prelimitRecOn_succ' + theorem SuccOrder.prelimitRecOn_succ_of_not_isMax Modified Mathlib/SetTheory/Ordinal/Arithmetic.lean 2024-09-16 17:23:37 885954c feat(CategorTheory/Galois): stabilizers form a neighborhood basis of the identity (#16668) If `F` is a fiber functor, then the stabilizers of the `Aut F`-action on the fibers of all Galois objects form a neighborhood basis of the topology of `Aut F`. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Galois/Basic.lean Modified Mathlib/CategoryTheory/Galois/Topology.lean + theorem CategoryTheory.PreGaloisCategory.exists_set_ker_evaluation_subset_of_isOpen + theorem CategoryTheory.PreGaloisCategory.nhds_one_has_basis_stabilizers Modified Mathlib/CategoryTheory/Limits/FintypeCat.lean + theorem CategoryTheory.Limits.FintypeCat.jointly_surjective + theorem CategoryTheory.Limits.FintypeCat.productEquiv_apply + theorem CategoryTheory.Limits.FintypeCat.productEquiv_symm_comp_π_apply Modified Mathlib/Topology/Algebra/MulAction.lean + theorem stabilizer_isOpen 2024-09-16 17:23:36 86a4bd3 feat(SetTheory/Ordinal/Nimber): Initial development of nimbers (#16088) For the moment, we only prove that they form an additive commutative group. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/SetTheory/Ordinal/Nimber.lean + theorem Nimber.add_cancel_left + theorem Nimber.add_cancel_right + theorem Nimber.add_def + theorem Nimber.add_eq_zero + theorem Nimber.add_le_of_forall_ne + theorem Nimber.add_ne_zero_iff + theorem Nimber.add_self + theorem Nimber.add_trichotomy + theorem Nimber.bot_eq_zero + theorem Nimber.exists_of_lt_add + theorem Nimber.induction + theorem Nimber.lt_wf + theorem Nimber.succ_def + def Nimber.toOrdinal + theorem Nimber.toOrdinal_eq_one + theorem Nimber.toOrdinal_eq_zero + theorem Nimber.toOrdinal_max + theorem Nimber.toOrdinal_min + theorem Nimber.toOrdinal_one + theorem Nimber.toOrdinal_symm_eq + theorem Nimber.toOrdinal_toNimber + theorem Nimber.toOrdinal_zero + def Nimber + def Ordinal.toNimber + theorem Ordinal.toNimber_eq_one + theorem Ordinal.toNimber_eq_zero + theorem Ordinal.toNimber_max + theorem Ordinal.toNimber_min + theorem Ordinal.toNimber_one + theorem Ordinal.toNimber_symm_eq + theorem Ordinal.toNimber_toOrdinal + theorem Ordinal.toNimber_zero + theorem not_small_nimber 2024-09-16 17:23:35 cedc99c feat(Order/SuccPred/TypeTags): `SuccOrder (Multiplicative X)` and friends (#15940) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Order/SuccPred/TypeTags.lean + theorem Order.pred_ofAdd + theorem Order.pred_ofMul + theorem Order.pred_toAdd + theorem Order.pred_toMul + theorem Order.succ_ofAdd + theorem Order.succ_ofMul + theorem Order.succ_toAdd + theorem Order.succ_toMul 2024-09-16 17:23:34 1410abf refactor(SetTheory/Ordinal/Arithmetic): Ditch `Ordinal.sup` (#15820) `Ordinal.sup` is just `iSup` with more restricted universes. This is the first part in a series of refactors aimed at putting the ordinal API in line with the API of other lattices. Theorems like `le_iSup` were kept as protected theorems within the `Ordinal` namespace, as they can be useful when you do know that the input type lives in a smaller universe. That said, using them indiscriminately will make the universes in theorems stricter than they need to be. I kept `sup` within the API for `bsup`, `lsub`, `blsub`, and `mex`, as I plan to refactor those individually in the near future. ESTIMATED CHANGES Modified Mathlib/Order/ConditionallyCompleteLattice/Basic.lean + theorem csSup_le_csSup' Modified Mathlib/SetTheory/Cardinal/Cofinality.lean + theorem Cardinal.iSup_lt_ord_lift_of_isRegular + theorem Cardinal.iSup_lt_ord_of_isRegular + theorem Ordinal.cof_iSup_le + theorem Ordinal.cof_iSup_le_lift + theorem Ordinal.iSup_lt_ord + theorem Ordinal.iSup_lt_ord_lift + theorem Ordinal.iSup_sequence_lt_omega1 Modified Mathlib/SetTheory/Ordinal/Arithmetic.lean +/- theorem Ordinal.IsNormal.apply_omega + theorem Ordinal.IsNormal.map_iSup +/- theorem Ordinal.bddAbove_of_small + theorem Ordinal.iSup_add_nat + theorem Ordinal.iSup_eq_of_range_eq + theorem Ordinal.iSup_eq_zero_iff + theorem Ordinal.iSup_mul_nat + theorem Ordinal.iSup_natCast + theorem Ordinal.iSup_sum + theorem Ordinal.ne_iSup_iff_lt_iSup + theorem Ordinal.succ_lt_iSup_of_ne_iSup +/- theorem Ordinal.sup_eq_of_range_eq + theorem Ordinal.unbounded_range_of_le_iSup Modified Mathlib/SetTheory/Ordinal/Exponential.lean + theorem Ordinal.iSup_pow Modified Mathlib/SetTheory/Ordinal/FixedPoint.lean + theorem Ordinal.iSup_iterate_eq_nfp +/- def Ordinal.nfpFamily +/- theorem Ordinal.nfpFamily_monotone +/- theorem Ordinal.nfp_id Modified Mathlib/SetTheory/Ordinal/Topology.lean + theorem Ordinal.isClosed_iff_iSup + theorem Ordinal.mem_closure_iff_iSup + theorem Ordinal.mem_iff_iSup_of_isClosed Modified Mathlib/SetTheory/ZFC/Rank.lean 2024-09-16 17:23:32 db1926d feat(SetTheory/Game/Birthday): Define birthday of a game (#15716) The updated module description explains how this differs from the birthday of a pre-game. ESTIMATED CHANGES Modified Mathlib/SetTheory/Game/Basic.lean + theorem SetTheory.Game.zero_def + theorem SetTheory.PGame.quot_natCast Modified Mathlib/SetTheory/Game/Birthday.lean + theorem SetTheory.Game.birthday_add_le + theorem SetTheory.Game.birthday_eq_pGameBirthday + theorem SetTheory.Game.birthday_eq_zero + theorem SetTheory.Game.birthday_natCast + theorem SetTheory.Game.birthday_neg + theorem SetTheory.Game.birthday_ofNat + theorem SetTheory.Game.birthday_one + theorem SetTheory.Game.birthday_ordinalToGame + theorem SetTheory.Game.birthday_quot_le_pGameBirthday + theorem SetTheory.Game.birthday_star + theorem SetTheory.Game.birthday_sub_le + theorem SetTheory.Game.birthday_zero + theorem SetTheory.Game.le_birthday + theorem SetTheory.Game.neg_birthday_le +/- theorem SetTheory.PGame.birthday_add - theorem SetTheory.PGame.birthday_add_nat - theorem SetTheory.PGame.birthday_add_one - theorem SetTheory.PGame.birthday_add_zero - theorem SetTheory.PGame.birthday_nat_add + theorem SetTheory.PGame.birthday_neg - theorem SetTheory.PGame.birthday_one_add + theorem SetTheory.PGame.birthday_ordinalToPGame + theorem SetTheory.PGame.birthday_sub - theorem SetTheory.PGame.birthday_zero_add - theorem SetTheory.PGame.neg_birthday - theorem SetTheory.PGame.toPGame_birthday Modified Mathlib/SetTheory/Game/Ordinal.lean + theorem Ordinal.toGame_natCast + theorem Ordinal.toPGame_natCast Modified Mathlib/SetTheory/Game/PGame.lean Modified Mathlib/SetTheory/Ordinal/NaturalOps.lean 2024-09-16 16:20:33 bde8067 Explicit dependency and update for LeanSearchClient (#16857) As Reservoir has not picked up LeanSearchClient (yet), lakefile has been changed with an explicit url. The manifest has been correspondingly updated. ESTIMATED CHANGES Modified lake-manifest.json Modified lakefile.lean 2024-09-16 14:35:01 a03152b chore: split Algebra.MonoidAlgebra.Basic (#16531) It's not the best justified split ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/FreeAlgebra.lean Modified Mathlib/Algebra/MonoidAlgebra/Basic.lean - theorem AddMonoidAlgebra.induction_on - theorem AddMonoidAlgebra.intCast_def - def AddMonoidAlgebra.liftNC - def AddMonoidAlgebra.liftNCRingHom - theorem AddMonoidAlgebra.liftNC_mul - theorem AddMonoidAlgebra.liftNC_one - theorem AddMonoidAlgebra.liftNC_single - theorem AddMonoidAlgebra.liftNC_smul - def AddMonoidAlgebra.mapDomainRingHom - theorem AddMonoidAlgebra.mapDomain_mul - theorem AddMonoidAlgebra.mapDomain_one - theorem AddMonoidAlgebra.mapDomain_single - theorem AddMonoidAlgebra.mapDomain_sum - theorem AddMonoidAlgebra.mul_apply - theorem AddMonoidAlgebra.mul_apply_antidiagonal - theorem AddMonoidAlgebra.mul_def - theorem AddMonoidAlgebra.mul_single_apply - theorem AddMonoidAlgebra.mul_single_apply_aux - theorem AddMonoidAlgebra.mul_single_apply_of_not_exists_add - theorem AddMonoidAlgebra.mul_single_zero_apply - theorem AddMonoidAlgebra.natCast_def - def AddMonoidAlgebra.of' - theorem AddMonoidAlgebra.of'_apply - theorem AddMonoidAlgebra.of'_commute - theorem AddMonoidAlgebra.of'_eq_of - def AddMonoidAlgebra.of - def AddMonoidAlgebra.ofMagma - theorem AddMonoidAlgebra.of_apply - theorem AddMonoidAlgebra.of_injective - theorem AddMonoidAlgebra.one_def - theorem AddMonoidAlgebra.opRingEquiv_single - theorem AddMonoidAlgebra.opRingEquiv_symm_single - theorem AddMonoidAlgebra.prod_single - theorem AddMonoidAlgebra.ringHom_ext' - theorem AddMonoidAlgebra.ringHom_ext - def AddMonoidAlgebra.singleHom - def AddMonoidAlgebra.singleZeroRingHom - theorem AddMonoidAlgebra.single_add - theorem AddMonoidAlgebra.single_apply - theorem AddMonoidAlgebra.single_commute_single - theorem AddMonoidAlgebra.single_eq_zero - theorem AddMonoidAlgebra.single_mul_apply - theorem AddMonoidAlgebra.single_mul_apply_aux - theorem AddMonoidAlgebra.single_mul_apply_of_not_exists_add - theorem AddMonoidAlgebra.single_mul_single - theorem AddMonoidAlgebra.single_pow - theorem AddMonoidAlgebra.single_zero - theorem AddMonoidAlgebra.single_zero_mul_apply - theorem AddMonoidAlgebra.sum_single - theorem AddMonoidAlgebra.sum_single_index - def AddMonoidAlgebra - def MonoidAlgebra.comapDistribMulActionSelf - theorem MonoidAlgebra.induction_on - theorem MonoidAlgebra.intCast_def - def MonoidAlgebra.liftNC - def MonoidAlgebra.liftNCRingHom - theorem MonoidAlgebra.liftNC_mul - theorem MonoidAlgebra.liftNC_one - theorem MonoidAlgebra.liftNC_single - theorem MonoidAlgebra.liftNC_smul - def MonoidAlgebra.mapDomainRingHom - theorem MonoidAlgebra.mapDomain_mul - theorem MonoidAlgebra.mapDomain_one - theorem MonoidAlgebra.mapDomain_sum - def MonoidAlgebra.mul' - theorem MonoidAlgebra.mul_apply - theorem MonoidAlgebra.mul_apply_antidiagonal - theorem MonoidAlgebra.mul_apply_left - theorem MonoidAlgebra.mul_apply_right - theorem MonoidAlgebra.mul_def - theorem MonoidAlgebra.mul_single_apply - theorem MonoidAlgebra.mul_single_apply_aux - theorem MonoidAlgebra.mul_single_apply_of_not_exists_mul - theorem MonoidAlgebra.mul_single_one_apply - theorem MonoidAlgebra.natCast_def - def MonoidAlgebra.of - def MonoidAlgebra.ofMagma - theorem MonoidAlgebra.of_commute - theorem MonoidAlgebra.of_injective - theorem MonoidAlgebra.one_def - theorem MonoidAlgebra.opRingEquiv_single - theorem MonoidAlgebra.opRingEquiv_symm_single - theorem MonoidAlgebra.prod_single - theorem MonoidAlgebra.ringHom_ext' - theorem MonoidAlgebra.ringHom_ext - def MonoidAlgebra.singleHom - def MonoidAlgebra.singleOneRingHom - theorem MonoidAlgebra.single_add - theorem MonoidAlgebra.single_apply - theorem MonoidAlgebra.single_commute - theorem MonoidAlgebra.single_commute_single - theorem MonoidAlgebra.single_eq_zero - theorem MonoidAlgebra.single_mul_apply - theorem MonoidAlgebra.single_mul_apply_aux - theorem MonoidAlgebra.single_mul_apply_of_not_exists_mul - theorem MonoidAlgebra.single_mul_single - theorem MonoidAlgebra.single_one_comm - theorem MonoidAlgebra.single_one_mul_apply - theorem MonoidAlgebra.single_pow - theorem MonoidAlgebra.single_zero - theorem MonoidAlgebra.smul_of - def MonoidAlgebra.submoduleOfSMulMem - theorem MonoidAlgebra.sum_single - theorem MonoidAlgebra.sum_single_index - def MonoidAlgebra Added Mathlib/Algebra/MonoidAlgebra/Defs.lean + theorem AddMonoidAlgebra.induction_on + theorem AddMonoidAlgebra.intCast_def + def AddMonoidAlgebra.liftNC + def AddMonoidAlgebra.liftNCRingHom + theorem AddMonoidAlgebra.liftNC_mul + theorem AddMonoidAlgebra.liftNC_one + theorem AddMonoidAlgebra.liftNC_single + theorem AddMonoidAlgebra.liftNC_smul + def AddMonoidAlgebra.mapDomainRingHom + theorem AddMonoidAlgebra.mapDomain_mul + theorem AddMonoidAlgebra.mapDomain_one + theorem AddMonoidAlgebra.mapDomain_single + theorem AddMonoidAlgebra.mapDomain_sum + theorem AddMonoidAlgebra.mul_apply + theorem AddMonoidAlgebra.mul_apply_antidiagonal + theorem AddMonoidAlgebra.mul_def + theorem AddMonoidAlgebra.mul_single_apply + theorem AddMonoidAlgebra.mul_single_apply_aux + theorem AddMonoidAlgebra.mul_single_apply_of_not_exists_add + theorem AddMonoidAlgebra.mul_single_zero_apply + theorem AddMonoidAlgebra.natCast_def + def AddMonoidAlgebra.of' + theorem AddMonoidAlgebra.of'_apply + theorem AddMonoidAlgebra.of'_commute + theorem AddMonoidAlgebra.of'_eq_of + def AddMonoidAlgebra.of + def AddMonoidAlgebra.ofMagma + theorem AddMonoidAlgebra.of_apply + theorem AddMonoidAlgebra.of_injective + theorem AddMonoidAlgebra.one_def + theorem AddMonoidAlgebra.opRingEquiv_single + theorem AddMonoidAlgebra.opRingEquiv_symm_single + theorem AddMonoidAlgebra.prod_single + theorem AddMonoidAlgebra.ringHom_ext' + theorem AddMonoidAlgebra.ringHom_ext + def AddMonoidAlgebra.singleHom + def AddMonoidAlgebra.singleZeroRingHom + theorem AddMonoidAlgebra.single_add + theorem AddMonoidAlgebra.single_apply + theorem AddMonoidAlgebra.single_commute_single + theorem AddMonoidAlgebra.single_eq_zero + theorem AddMonoidAlgebra.single_mul_apply + theorem AddMonoidAlgebra.single_mul_apply_aux + theorem AddMonoidAlgebra.single_mul_apply_of_not_exists_add + theorem AddMonoidAlgebra.single_mul_single + theorem AddMonoidAlgebra.single_pow + theorem AddMonoidAlgebra.single_zero + theorem AddMonoidAlgebra.single_zero_mul_apply + theorem AddMonoidAlgebra.sum_single + theorem AddMonoidAlgebra.sum_single_index + def AddMonoidAlgebra + def MonoidAlgebra.comapDistribMulActionSelf + theorem MonoidAlgebra.induction_on + theorem MonoidAlgebra.intCast_def + def MonoidAlgebra.liftNC + def MonoidAlgebra.liftNCRingHom + theorem MonoidAlgebra.liftNC_mul + theorem MonoidAlgebra.liftNC_one + theorem MonoidAlgebra.liftNC_single + theorem MonoidAlgebra.liftNC_smul + def MonoidAlgebra.mapDomainRingHom + theorem MonoidAlgebra.mapDomain_mul + theorem MonoidAlgebra.mapDomain_one + theorem MonoidAlgebra.mapDomain_sum + def MonoidAlgebra.mul' + theorem MonoidAlgebra.mul_apply + theorem MonoidAlgebra.mul_apply_antidiagonal + theorem MonoidAlgebra.mul_apply_left + theorem MonoidAlgebra.mul_apply_right + theorem MonoidAlgebra.mul_def + theorem MonoidAlgebra.mul_single_apply + theorem MonoidAlgebra.mul_single_apply_aux + theorem MonoidAlgebra.mul_single_apply_of_not_exists_mul + theorem MonoidAlgebra.mul_single_one_apply + theorem MonoidAlgebra.natCast_def + def MonoidAlgebra.of + def MonoidAlgebra.ofMagma + theorem MonoidAlgebra.of_commute + theorem MonoidAlgebra.of_injective + theorem MonoidAlgebra.one_def + theorem MonoidAlgebra.opRingEquiv_single + theorem MonoidAlgebra.opRingEquiv_symm_single + theorem MonoidAlgebra.prod_single + theorem MonoidAlgebra.ringHom_ext' + theorem MonoidAlgebra.ringHom_ext + def MonoidAlgebra.singleHom + def MonoidAlgebra.singleOneRingHom + theorem MonoidAlgebra.single_add + theorem MonoidAlgebra.single_apply + theorem MonoidAlgebra.single_commute + theorem MonoidAlgebra.single_commute_single + theorem MonoidAlgebra.single_eq_zero + theorem MonoidAlgebra.single_mul_apply + theorem MonoidAlgebra.single_mul_apply_aux + theorem MonoidAlgebra.single_mul_apply_of_not_exists_mul + theorem MonoidAlgebra.single_mul_single + theorem MonoidAlgebra.single_one_comm + theorem MonoidAlgebra.single_one_mul_apply + theorem MonoidAlgebra.single_pow + theorem MonoidAlgebra.single_zero + theorem MonoidAlgebra.smul_of + def MonoidAlgebra.submoduleOfSMulMem + theorem MonoidAlgebra.sum_single + theorem MonoidAlgebra.sum_single_index + def MonoidAlgebra Modified Mathlib/Algebra/MonoidAlgebra/Division.lean Modified Mathlib/Algebra/MonoidAlgebra/Grading.lean Modified Mathlib/Algebra/MonoidAlgebra/Ideal.lean Modified Mathlib/Algebra/MonoidAlgebra/NoZeroDivisors.lean Modified Mathlib/Algebra/MonoidAlgebra/Support.lean Modified Mathlib/Algebra/MvPolynomial/Basic.lean Modified Mathlib/Algebra/Polynomial/AlgebraMap.lean Modified Mathlib/Algebra/Polynomial/Basic.lean Modified Mathlib/Algebra/Polynomial/DenomsClearable.lean Modified Mathlib/Algebra/Polynomial/Eval.lean Modified test/Polynomial.lean 2024-09-16 14:01:59 15b775c fix(technical-debt-metrics.sh): make compatible with set -u (#16854) ...by using [parameter default values](https://www.gnu.org/savannah-checkouts/gnu/bash/manual/bash.html#Shell-Parameter-Expansion) per [the bash strict mode page](http://redsymbol.net/articles/unofficial-bash-strict-mode/#solution-positional-parameters). Fallout from #16566. See [Zulip](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/Technical.20Debt.20Counters/near/470576612). ESTIMATED CHANGES Modified scripts/technical-debt-metrics.sh 2024-09-16 12:43:56 1b1a091 refactor(Mathlib/CategoryTheory/Monoidal/Transport): remove `simps` at `transport` (#16819) We get better simp normal forms not by unfolding `transport` but instead putting `simps!` at the definition that uses `transport`. The compiling time is also improved. ESTIMATED CHANGES Modified Mathlib/Algebra/Category/CoalgebraCat/ComonEquivalence.lean Modified Mathlib/CategoryTheory/Monoidal/Comon_.lean Modified Mathlib/CategoryTheory/Monoidal/Transport.lean + def CategoryTheory.Monoidal.induced Modified Mathlib/RepresentationTheory/Action/Monoidal.lean - theorem Action.associator_hom_hom - theorem Action.associator_inv_hom - theorem Action.leftUnitor_hom_hom - theorem Action.leftUnitor_inv_hom - theorem Action.rightUnitor_hom_hom - theorem Action.rightUnitor_inv_hom - theorem Action.tensorUnit_rho - theorem Action.tensorUnit_v + theorem Action.tensorUnit_ρ' + theorem Action.tensorUnit_ρ - theorem Action.tensor_hom - theorem Action.tensor_rho - theorem Action.tensor_v + theorem Action.tensor_ρ' + theorem Action.tensor_ρ - theorem Action.whiskerLeft_hom - theorem Action.whiskerRight_hom Modified Mathlib/RepresentationTheory/Character.lean - theorem FDRep.char_tensor' Modified Mathlib/RepresentationTheory/GroupCohomology/Resolution.lean Modified Mathlib/RepresentationTheory/Rep.lean 2024-09-16 12:17:00 0a7fa4c chore: use `Matrix.of` in `Matrix.vandermonde`. (#16850) ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/Vandermonde.lean +/- def Matrix.vandermonde 2024-09-16 11:39:38 f14a30e feat(SetTheory/Cardinal/Basic): Prove power_sum, power of an infinite sum (#16795) Prove `power_sum`, a generalization of `power_add` for `Cardinal.sum`. ESTIMATED CHANGES Modified Mathlib/SetTheory/Cardinal/Basic.lean + theorem Cardinal.induction_on_pi + theorem Cardinal.mk_sigma_arrow + theorem Cardinal.power_sum 2024-09-16 11:07:26 d389f3c feat(RingTheory/IntegralClosure/IntegrallyClosed): `IsIntegrallyClosed` is a local property (#16558) Prove that `IsIntegrallyClosed` is a local property, i.e., an integral domain `R` is integral closed if `Rₘ` is integral closed for any maximal ideal `m` of `R`. ESTIMATED CHANGES Modified Mathlib/RingTheory/IntegralClosure/IntegrallyClosed.lean + theorem IsIntegrallyClosed.of_localization_maximal Modified Mathlib/RingTheory/LocalProperties.lean + theorem isIntegrallyClosed_ofLocalizationMaximal Modified Mathlib/RingTheory/Localization/Basic.lean + theorem IsLocalization.eq_mk'_of_mul_eq Modified Mathlib/RingTheory/Localization/LocalizationLocalization.lean + theorem IsLocalization.mk'_eq_algebraMap_mk'_of_submonoid_le 2024-09-16 10:17:07 dfad299 refactor(SetTheory/Cardinal/Ordinal): make `Cardinal.aleph'` an order iso (#16220) We deprecate `alephIdx.initialSeg`, `alephIdx`, `alephIdx.relIso`, `Aleph'.relIso`, and `aleph'Equiv`, which were just stating this idea in slightly different ways. We also make `Cardinal.aleph` an order embedding. ESTIMATED CHANGES Modified Mathlib/SetTheory/Cardinal/Ordinal.lean +/- def Cardinal.aleph' + theorem Cardinal.aleph'_max +/- theorem Cardinal.aleph'_succ +/- theorem Cardinal.aleph'_zero +/- def Cardinal.aleph + theorem Cardinal.aleph_eq_aleph' + theorem Cardinal.aleph_max +/- theorem Cardinal.aleph_succ +/- theorem Cardinal.aleph_zero +/- theorem Cardinal.max_aleph_eq 2024-09-16 09:18:31 8192978 feat: more definitions for the restriction of a dependent function (#16328) If `f` is a function restricted to a set `t` and `s ⊆ t`, define its restriction to `s`. Add similar definitions with finsets and restrictions to Iic intervals. Prove measurability and continuity. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Data/Finset/Pi.lean + def Finset.restrict + def Finset.restrict₂ + theorem Finset.restrict₂_comp_restrict + theorem Finset.restrict₂_comp_restrict₂ Modified Mathlib/Data/Set/Function.lean + def Set.restrict₂ + theorem Set.restrict₂_comp_restrict + theorem Set.restrict₂_comp_restrict₂ Modified Mathlib/MeasureTheory/MeasurableSpace/Basic.lean + theorem Finset.measurable_restrict + theorem Finset.measurable_restrict_apply + theorem Finset.measurable_restrict₂ + theorem Finset.measurable_restrict₂_apply + theorem Set.measurable_restrict + theorem Set.measurable_restrict_apply + theorem Set.measurable_restrict₂ + theorem Set.measurable_restrict₂_apply Added Mathlib/MeasureTheory/MeasurableSpace/PreorderRestrict.lean + theorem Preorder.measurable_frestrictLe + theorem Preorder.measurable_frestrictLe₂ + theorem Preorder.measurable_restrictLe + theorem Preorder.measurable_restrictLe₂ Added Mathlib/Order/Restriction.lean + def Preorder.frestrictLe + theorem Preorder.frestrictLe_apply + def Preorder.frestrictLe₂ + theorem Preorder.frestrictLe₂_apply + theorem Preorder.frestrictLe₂_comp_frestrictLe + theorem Preorder.frestrictLe₂_comp_frestrictLe₂ + def Preorder.restrictLe + theorem Preorder.restrictLe_apply + def Preorder.restrictLe₂ + theorem Preorder.restrictLe₂_apply + theorem Preorder.restrictLe₂_comp_restrictLe + theorem Preorder.restrictLe₂_comp_restrictLe₂ Modified Mathlib/Topology/Constructions.lean + theorem Finset.continuous_restrict + theorem Finset.continuous_restrict_apply + theorem Finset.continuous_restrict₂ + theorem Finset.continuous_restrict₂_apply + theorem Pi.continuous_restrict_apply + theorem Pi.continuous_restrict₂ + theorem Pi.continuous_restrict₂_apply Added Mathlib/Topology/PreorderRestrict.lean + theorem Preorder.continuous_frestrictLe + theorem Preorder.continuous_frestrictLe₂ + theorem Preorder.continuous_restrictLe + theorem Preorder.continuous_restrictLe₂ 2024-09-16 08:22:33 0f63081 feat: missing basic API lemmas (#16842) ESTIMATED CHANGES Modified Mathlib/Data/Fin/Basic.lean + theorem Fin.cast_eq_zero + theorem Fin.cast_injective Modified Mathlib/Data/Fintype/Card.lean + theorem Fin.val_eq_val_of_heq Modified Mathlib/Data/Set/Function.lean + theorem Function.apply_eq_of_range_eq_singleton Modified Mathlib/NumberTheory/Cyclotomic/PrimitiveRoots.lean Modified Mathlib/Order/Fin/Basic.lean + theorem Fin.cast_strictMono Modified Mathlib/SetTheory/Cardinal/Finite.lean + theorem Nat.card_range_of_injective + theorem Nat.card_univ Modified Mathlib/Topology/Algebra/Module/Basic.lean + theorem ContinuousLinearMap.comp_finset_sum + theorem ContinuousLinearMap.finset_sum_comp Modified Mathlib/Topology/Algebra/Module/Multilinear/Basic.lean +/- def ContinuousMultilinearMap.toContinuousLinearMap 2024-09-16 06:56:33 cc2c528 chore: Add gcongr attribute to Submodule.(co)map_mono (#16830) ESTIMATED CHANGES Modified Mathlib/Algebra/Module/Submodule/Map.lean 2024-09-16 05:18:53 2a811d0 ci: move workflow check into actionlint, add reviewdog suggestions (#16805) There was a step in our main CI workflow that checks that `bors.yml`, `build.yml` and `build_fork.yml` generated properly from the source in `build.in.yml`. However, this check is only necessary for the (very rare) PRs which touch files in `.github/`. For that reason, I've moved the check into the actionlint workflow, which has a `paths` filter restricting to PRs touching those files. While looking at this, I also realized that we can get reviewdog to automatically suggest fixes, so I added some steps to enable it for both actionlint and the workflow check. Finally, to simplify things, the workflow now only runs for `pull_request` events. ESTIMATED CHANGES Modified .github/build.in.yml Modified .github/workflows/actionlint.yml Modified .github/workflows/bors.yml Modified .github/workflows/build.yml Modified .github/workflows/build_fork.yml 2024-09-16 03:10:07 d76d7eb chore: remove duplicate ToExpr Fin instance (#16405) This is already provided in Lean. ESTIMATED CHANGES Modified Mathlib/Data/Fin/Basic.lean 2024-09-16 02:13:50 14a4ece chore: final cleanup of `Mathlib.Init` (#16796) * Move the `trans` attributes on `Iff` and `HEq` in `Init.Logic` to `Logic.Basic`. * Move the six undeprecated relation definitions in the same file to `Order.Defs`. * Remove the `refl` attribute on `Iff.refl` – it has been upstreamed in leanprover/lean4#5329. This concludes the cleanup of `Mathlib.Init`. ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Semiconj/Defs.lean Modified Mathlib/Init/Logic.lean - def AntiSymmetric - theorem Equivalence.reflexive - theorem Equivalence.symmetric - theorem Equivalence.transitive - theorem InvImage.irreflexive - theorem InvImage.trans - def Irreflexive - def Reflexive - def Symmetric - def Total - def Transitive Modified Mathlib/Logic/Basic.lean Modified Mathlib/Logic/Function/Basic.lean Modified Mathlib/ModelTheory/Semantics.lean Modified Mathlib/Order/Defs.lean + def AntiSymmetric + theorem Equivalence.reflexive + theorem Equivalence.symmetric + theorem Equivalence.transitive + theorem InvImage.irreflexive + theorem InvImage.trans + def Irreflexive + def Reflexive + def Symmetric + def Total + def Transitive Modified Mathlib/Order/MinMax.lean 2024-09-16 00:43:38 4eed1a9 chore: add reference to CanonM in AtomM (#16621) ESTIMATED CHANGES Modified Mathlib/Util/AtomM.lean 2024-09-16 00:14:46 605d02e feat: analyticity of functions in pi spaces (#16753) ESTIMATED CHANGES Modified Mathlib/Analysis/Analytic/Constructions.lean + theorem AnalyticAt.pi + theorem AnalyticOn.pi + theorem AnalyticWithinAt.pi + theorem AnalyticWithinOn.pi + theorem FormalMultilinearSeries.le_radius_pi + theorem FormalMultilinearSeries.radius_pi_eq_iInf + theorem FormalMultilinearSeries.radius_pi_le + theorem HasFPowerSeriesAt.pi + theorem HasFPowerSeriesOnBall.pi + theorem HasFPowerSeriesWithinAt.pi + theorem HasFPowerSeriesWithinOnBall.pi + theorem hasFPowerSeriesAt_pi_iff + theorem hasFPowerSeriesOnBall_pi_iff + theorem hasFPowerSeriesWithinAt_pi_iff + theorem hasFPowerSeriesWithinOnBall_pi_iff Modified Mathlib/Analysis/Calculus/FormalMultilinearSeries.lean + def FormalMultilinearSeries.pi 2024-09-15 23:33:16 2f80b44 chore: split `linear_combination` (#16831) Split the lemmas in `Mathlib.Tactic.LinearCombination` into a new file, `Mathlib.Tactic.LinearCombination.Lemmas`. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Tactic.lean Modified Mathlib/Tactic/LinearCombination.lean - theorem Mathlib.Tactic.LinearCombination.add_pf - theorem Mathlib.Tactic.LinearCombination.c_mul_pf - theorem Mathlib.Tactic.LinearCombination.eq_of_add - theorem Mathlib.Tactic.LinearCombination.eq_of_add_pow - theorem Mathlib.Tactic.LinearCombination.eq_of_sub - theorem Mathlib.Tactic.LinearCombination.pf_div_c - theorem Mathlib.Tactic.LinearCombination.pf_mul_c Added Mathlib/Tactic/LinearCombination/Lemmas.lean + theorem Mathlib.Tactic.LinearCombination.add_pf + theorem Mathlib.Tactic.LinearCombination.c_mul_pf + theorem Mathlib.Tactic.LinearCombination.eq_of_add + theorem Mathlib.Tactic.LinearCombination.eq_of_add_pow + theorem Mathlib.Tactic.LinearCombination.eq_of_sub + theorem Mathlib.Tactic.LinearCombination.pf_div_c + theorem Mathlib.Tactic.LinearCombination.pf_mul_c Modified scripts/noshake.json 2024-09-15 20:20:18 481029b feat(Logic/Function): add `Function.extend_const` (#16825) ESTIMATED CHANGES Modified Mathlib/Logic/Function/Basic.lean + theorem Function.extend_const 2024-09-15 19:00:30 93d2fbb feat(Dynamics/Ergodic): ergodicity of `(a * ·)` (#16577) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Dynamics/Ergodic/Action/OfMinimal.lean + theorem DenseRange.zpow_of_ergodic_mul_left + theorem ErgodicSMul.trans_isMinimal + theorem MonoidHom.ergodic_of_dense_iUnion_preimage_one + theorem MonoidHom.preErgodic_of_dense_iUnion_preimage_one + theorem aeconst_of_dense_aestabilizer_smul + theorem aeconst_of_dense_setOf_preimage_smul_ae + theorem aeconst_of_dense_setOf_preimage_smul_eq + theorem ergodic_mul_left_iff_denseRange_zpow + theorem ergodic_mul_left_of_denseRange_pow + theorem ergodic_mul_left_of_denseRange_zpow + theorem ergodic_smul_of_denseRange_pow + theorem ergodic_smul_of_denseRange_zpow 2024-09-15 18:40:03 36b6e27 feat: drop completeness assumption for composition of analytic functions within sets (#16752) ESTIMATED CHANGES Modified Mathlib/Analysis/Analytic/Basic.lean + theorem HasFPowerSeriesOnBall.tendsto_partialSum + theorem HasFPowerSeriesOnBall.tendsto_partialSum_prod + theorem HasFPowerSeriesWithinOnBall.tendsto_partialSum + theorem HasFPowerSeriesWithinOnBall.tendsto_partialSum_prod Modified Mathlib/Analysis/Analytic/Composition.lean + theorem AnalyticAt.comp_analyticWithinAt + theorem AnalyticAt.comp_analyticWithinAt_of_eq + theorem AnalyticOn.comp_analyticWithinOn + theorem AnalyticWithinAt.comp + theorem AnalyticWithinAt.comp_of_eq + theorem AnalyticWithinOn.comp + theorem HasFPowerSeriesWithinAt.comp Modified Mathlib/Analysis/Analytic/Within.lean - theorem AnalyticWithinAt.comp - theorem AnalyticWithinOn.comp Modified Mathlib/Geometry/Manifold/AnalyticManifold.lean 2024-09-15 18:31:32 e3812e6 fix(scripts/update_nolints_CI.sh): add missing quote (#16806) This was missed in the review of #16417 and has been causing the update nolints job to [fail](https://github.com/leanprover-community/mathlib4/actions/runs/10755388285/job/29827004999#step:12:13). ESTIMATED CHANGES Modified scripts/update_nolints_CI.sh 2024-09-15 16:10:31 8e3dd65 feat(Order/Interval/Set/Monotone): strictMono_of_pred_lt (#16813) Add `strictMono_of_pred_lt` and `strictAnti_of_lt_pred`. ESTIMATED CHANGES Modified Mathlib/Order/Interval/Set/Monotone.lean + theorem strictAnti_of_lt_pred - theorem strictAnti_of_pred_lt + theorem strictAnti_of_succ_lt + theorem strictMono_of_pred_lt 2024-09-15 16:10:30 1699305 feat(GroupTheory/Perm): composition of permutations is 1 iff they are inverses (#16032) ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Basic.lean + theorem mul_eq_one_iff_eq_inv' + theorem mul_eq_one_iff_inv_eq' Modified Mathlib/Logic/Equiv/Defs.lean + theorem Equiv.eq_symm_iff_trans_eq_refl + theorem Equiv.symm_eq_iff_trans_eq_refl + theorem Equiv.trans_eq_refl_iff_eq_symm + theorem Equiv.trans_eq_refl_iff_symm_eq Modified test/RewriteSearch/Polynomial.lean 2024-09-15 15:14:44 b657f45 feat(Data/Set/Image): the image of a nontrivial set is nontrivial (#16823) Add two lemmas about the image of a nontrivial set under a function injective _on that set_: existing lemmas only work for globally injective functions. Also add a local variable so lemma statements can be condensed, since the variable `f` was used in many statements. ESTIMATED CHANGES Modified Mathlib/Data/Set/Image.lean + theorem Set.InjOn.image_nontrivial_iff +/- theorem Set.Nontrivial.image + theorem Set.Nontrivial.image_of_injOn +/- theorem Set.Nontrivial.preimage +/- theorem Set.Subsingleton.preimage +/- theorem Set.image_nontrivial +/- theorem Set.nontrivial_of_preimage +/- theorem Set.subsingleton_of_image +/- theorem Set.subsingleton_of_preimage 2024-09-15 14:46:49 b42b371 feat(Algebra/Group/Pointwise): lower bound cardinality of s / s (#16820) ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Pointwise/Finset/Basic.lean + theorem Finset.card_le_card_div_self 2024-09-15 13:34:53 80f223f fix: correct curry/uncurry confusion in (Continuous)MultilinearMap (#15530) As I wrote in [this Zulip thread](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/ContinuousMultilinearMap.20curry.2Funcurry), the inconsistent use of curry/uncurry in MultilinearMap and ContinuousMultilinearMap is confusing. I hope this PR will be accepted to correct it and make my life a little easier :) Moves: - multilinearCurryLeftEquiv ... -> (multilinearCurryLeftEquiv ...).symm - (multilinearCurryLeftEquiv ...).symm -> multilinearCurryLeftEquiv - multilinearCurryRightEquiv ... -> (multilinearCurryRightEquiv ...).symm - (multilinearCurryRightEquiv ...).symm -> multilinearCurryRightEquiv ... - continuousMultilinearCurryLeftEquiv ... -> (continuousMultilinearCurryLeftEquiv ...).symm - (continuousMultilinearCurryLeftEquiv ...).symm -> continuousMultilinearCurryLeftEquiv ... - continuousMultilinearCurryLeftEquiv_apply -> continuousMultilinearCurryLeftEquiv_symm_apply - continuousMultilinearCurryLeftEquiv_symm_apply -> continuousMultilinearCurryLeftEquiv_apply - continuousMultilinearCurryRightEquiv ... -> (continuousMultilinearCurryRightEquiv ...).symm - (continuousMultilinearCurryRightEquiv ...).symm -> continuousMultilinearCurryRightEquiv ... - continuousMultilinearCurryRightEquiv_apply -> continuousMultilinearCurryRightEquiv_symm_apply - continuousMultilinearCurryRightEquiv_symm_apply -> continuousMultilinearCurryRightEquiv_apply - continuousMultilinearCurryRightEquiv' ... -> (continuousMultilinearCurryRightEquiv' ...).symm - (continuousMultilinearCurryRightEquiv' ...).symm -> continuousMultilinearCurryRightEquiv' ... - continuousMultilinearCurryRightEquiv_apply' -> continuousMultilinearCurryRightEquiv_symm_apply' - continuousMultilinearCurryRightEquiv_symm_apply' -> continuousMultilinearCurryRightEquiv_apply' - ContinuousMultilinearMap.curry0 -> ContinuousMultilinearMap.uncurry0 - ContinuousMultilinearMap.uncurry0 -> ContinuousMultilinearMap.curry0 - ContinuousMultilinearMap.curry0_apply -> ContinuousMultilinearMap.uncurry0_apply - ContinuousMultilinearMap.uncurry0_apply -> ContinuousMultilinearMap.curry0_apply - apply_zero_curry0 -> apply_zero_uncurry0 - curry0_norm -> uncurry0_norm - uncurry0_norm -> curry0_norm ESTIMATED CHANGES Modified Mathlib/Analysis/Analytic/Linear.lean Modified Mathlib/Analysis/Calculus/ContDiff/Basic.lean Modified Mathlib/Analysis/Calculus/ContDiff/Defs.lean Modified Mathlib/Analysis/Calculus/ContDiff/FTaylorSeries.lean Modified Mathlib/Analysis/Calculus/FDeriv/Analytic.lean Modified Mathlib/Analysis/Calculus/FormalMultilinearSeries.lean Modified Mathlib/Analysis/Calculus/SmoothSeries.lean Modified Mathlib/Analysis/Fourier/FourierTransformDeriv.lean Modified Mathlib/Analysis/NormedSpace/Multilinear/Curry.lean - theorem ContinuousMultilinearMap.apply_zero_curry0 + theorem ContinuousMultilinearMap.apply_zero_uncurry0 +/- def ContinuousMultilinearMap.curry0 +/- theorem ContinuousMultilinearMap.curry0_apply +/- theorem ContinuousMultilinearMap.curry0_norm +/- def ContinuousMultilinearMap.uncurry0 +/- theorem ContinuousMultilinearMap.uncurry0_apply +/- theorem ContinuousMultilinearMap.uncurry0_norm +/- theorem continuousMultilinearCurryLeftEquiv_symm_apply +/- def continuousMultilinearCurryRightEquiv' +/- theorem continuousMultilinearCurryRightEquiv_apply' +/- theorem continuousMultilinearCurryRightEquiv_symm_apply' +/- theorem continuousMultilinearCurryRightEquiv_symm_apply Modified Mathlib/LinearAlgebra/Multilinear/Basic.lean Modified Mathlib/LinearAlgebra/Multilinear/FiniteDimensional.lean 2024-09-15 12:19:33 1586ddb chore(Combinatorics): typo in Composition (#16811) ESTIMATED CHANGES Modified Mathlib/Combinatorics/Enumerative/Composition.lean 2024-09-15 12:10:55 6eb11d8 feat: FinEnum { x : α // x ∈ xs } (#16815) ESTIMATED CHANGES Modified Mathlib/Data/FinEnum.lean 2024-09-15 09:18:16 036e956 chore(*): fix `Decidable`, `Fintype`/`Finite` (#16807) ESTIMATED CHANGES Modified Mathlib/Algebra/Group/AddChar.lean +/- theorem AddChar.sum_eq_ite Modified Mathlib/Combinatorics/SimpleGraph/Basic.lean Modified Mathlib/Combinatorics/SimpleGraph/Connectivity/WalkCounting.lean +/- theorem SimpleGraph.ConnectedComponent.odd_card_supp_iff_odd_subcomponents Modified Mathlib/Combinatorics/SimpleGraph/Matching.lean +/- theorem SimpleGraph.ConnectedComponent.even_card_of_isPerfectMatching +/- theorem SimpleGraph.ConnectedComponent.odd_matches_node_outside +/- theorem SimpleGraph.exists_maximal_isMatchingFree Modified Mathlib/Data/Matrix/Rank.lean +/- theorem Matrix.rank_add_rank_le_card_of_mul_eq_zero Modified Mathlib/NumberTheory/JacobiSum/Basic.lean 2024-09-15 08:25:57 a219fbf refactor: `Logic.OpClass` (#16748) Put `IsSymmOp`, `LeftCommutative` and `RightCommutative` under a new file `Logic.OpClass`. This has the effect of completely deprecating `Init.Algebra.Classes`. All remaining undeprecated `Init` code now consists of attributes and relational definitions in `Init.Logic`. One instance that is not needed anywhere in mathlib and that would cause a dependency of `Logic.OpClass` on `Order.Defs` has been removed. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Data/List/Basic.lean Modified Mathlib/Data/List/Zip.lean Modified Mathlib/Init/Algebra/Classes.lean - theorem IsSymmOp.flip_eq Modified Mathlib/Init/Logic.lean Modified Mathlib/Logic/Function/Basic.lean Added Mathlib/Logic/OpClass.lean + theorem IsSymmOp.flip_eq Modified Mathlib/Order/MinMax.lean 2024-09-15 08:05:20 c41029c feat: TendstoUniformly.tendsto_of_eventually_tendsto (#16803) From PrimeNumberTheoremAnd. ESTIMATED CHANGES Modified Mathlib/Topology/UniformSpace/UniformConvergence.lean + theorem TendstoUniformly.tendsto_of_eventually_tendsto + theorem TendstoUniformlyOnFilter.tendsto_of_eventually_tendsto 2024-09-15 07:39:46 9447d94 feat(NumberField/CanonicalEmbedding): define an action of the units on the mixed space (#16762) Define an action of the units on the mixed space of a number field. In a latter PR #12268, we construct a cone in the mixed space that is a fundamental domain for the action of the units modulo torsion. This PR is part of the proof of the Analytic Class Number Formula. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/NumberTheory/NumberField/CanonicalEmbedding/Basic.lean + theorem NumberField.mixedEmbedding.exists_normAtPlace_ne_zero_iff + theorem NumberField.mixedEmbedding.forall_normAtPlace_eq_zero_iff - theorem NumberField.mixedEmbedding.normAtPlace_eq_zero + theorem NumberField.mixedEmbedding.norm_unit Modified Mathlib/NumberTheory/NumberField/CanonicalEmbedding/ConvexBody.lean Added Mathlib/NumberTheory/NumberField/CanonicalEmbedding/FundamentalCone.lean + theorem NumberField.mixedEmbedding.norm_unit_smul + theorem NumberField.mixedEmbedding.unit_smul_eq_iff_mul_eq + theorem NumberField.mixedEmbedding.unit_smul_eq_zero 2024-09-15 05:08:03 85bc257 chore(SetTheory/Game/Nim): golf proof of Sprague-Grundy (#16349) We also add some useful auxiliary lemmas. ESTIMATED CHANGES Modified Mathlib/SetTheory/Game/Nim.lean +/- theorem SetTheory.PGame.equiv_nim_grundyValue + theorem SetTheory.PGame.exists_grundyValue_left_of_lt + theorem SetTheory.PGame.exists_grundyValue_right_of_lt +/- theorem SetTheory.PGame.grundyValue_eq_mex_right + theorem SetTheory.PGame.grundyValue_ne_left + theorem SetTheory.PGame.grundyValue_ne_right 2024-09-15 03:51:47 2bac012 chore: relax typeclass assumptions on `Algebra.IsSeparable.of_finite` (#16791) ESTIMATED CHANGES Modified Mathlib/FieldTheory/Separable.lean 2024-09-15 03:24:05 cc716df fix(build.in.yml): escape special characters in quotes (#16808) Followup to #14077 which was causing the build mathlib step to not actually run the build, e.g. see [this log](https://github.com/leanprover-community/mathlib4/actions/runs/10867195275/job/30155685083#step:11:32). [Zulip](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/CI.20failing). ESTIMATED CHANGES Modified .github/build.in.yml Modified .github/workflows/bors.yml Modified .github/workflows/build.yml Modified .github/workflows/build_fork.yml 2024-09-14 20:08:52 13018a2 feat(CI): use `mk_all` twice (#14077) Once to create the import all files without failing, the second time actually checking. [Zulip](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/PR.20fail.3A.20Error.3A.20Process.20completed.20with.20exit.20code.201.2E/near/446419185) ESTIMATED CHANGES Modified .github/build.in.yml Modified .github/workflows/bors.yml Modified .github/workflows/build.yml Modified .github/workflows/build_fork.yml 2024-09-14 19:04:35 521a2df feat: monoidal category structure on coalgebras (#11976) Monoidal category structure on coalgebras, using the definitions in `Mathlib.RingTheory.Coalgebra.TensorProduct` added in #11975 ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Category/CoalgebraCat/ComonEquivalence.lean Added Mathlib/Algebra/Category/CoalgebraCat/Monoidal.lean 2024-09-14 18:38:41 3199172 feat(Order/Interval/Set/Monotone): strictMono_of_lt_succ (#16732) Prove `strictMono_of_lt_succ` and `strictAnti_of_pred_lt` for archimedean orders. ESTIMATED CHANGES Modified Mathlib/Order/Interval/Set/Monotone.lean + theorem strictAnti_of_pred_lt + theorem strictMono_of_lt_succ 2024-09-14 13:49:05 9143697 chore(Combinatorics/SimpleGraph/Connectivity): remove commented code (#16798) remove accidentally committed commented code ESTIMATED CHANGES Modified Mathlib/Combinatorics/SimpleGraph/Connectivity/WalkCounting.lean 2024-09-14 12:37:45 d27a23a feat(CategoryTheory/Monoidal/Functor): add lemmas (#16778) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Iso.lean Modified Mathlib/CategoryTheory/Monoidal/Functor.lean + theorem CategoryTheory.MonoidalFunctor.map_associator + theorem CategoryTheory.MonoidalFunctor.map_associator_inv 2024-09-14 12:37:44 d3dbb49 chore: flatten arguments of `tensor_μ` (#16739) ESTIMATED CHANGES Modified Mathlib/Algebra/Category/ModuleCat/Monoidal/Symmetric.lean Modified Mathlib/CategoryTheory/Monoidal/Braided/Basic.lean +/- def CategoryTheory.tensor_μ Modified Mathlib/CategoryTheory/Monoidal/Braided/Opposite.lean Modified Mathlib/CategoryTheory/Monoidal/Comon_.lean Modified Mathlib/CategoryTheory/Monoidal/Mon_.lean 2024-09-14 12:16:16 37e06d7 chore(MeasureTheory): add `[simp]` attribute to `measure_lt_top` and `measure_ne_top` (#16793) This is particularly useful when working only with probability measures, as observed when preparing teaching material. The PR does not change much in Mathlib (if a `simp` could have used the new simp lemmas but didn't, it was non-terminal and then got turned into a `simp only` and we don't see any effect). ESTIMATED CHANGES Modified Mathlib/Analysis/BoxIntegral/Integrability.lean Modified Mathlib/MeasureTheory/Measure/HasOuterApproxClosed.lean Modified Mathlib/MeasureTheory/Measure/Typeclasses.lean 2024-09-14 11:25:00 20ceaf4 feat(List): add `List.Disjoint.of_map` (#16787) ... and `List.Disjoint.map_iff`. ESTIMATED CHANGES Modified Mathlib/Data/List/Basic.lean + theorem List.Disjoint.map_iff + theorem List.Disjoint.of_map 2024-09-14 10:19:19 6b259d1 refactor(Archive/Arithcc): avoid defEq abuse (#16754) the `rfl` was a bit of a defeq abuse: The goal was `StateEqRs a b` for definitely different terms `a` and `b`, but it was still using `StateEqRs.refl a`, because then after unfolding `StateEqRs` and doing a bit of computation the proof held. This would break once https://github.com/leanprover/lean4/pull/3714 lands, and is a bit fishy in any case so let's just let `simp` handle it. ESTIMATED CHANGES Modified Archive/Arithcc.lean 2024-09-14 09:22:40 c4edb0e refactor: make `(Left|Right)Commutative` typeclasses (#16751) `LeftCommutative` and `RightCommutative` are currently pure definitions, but they are used in other declarations as if they were typeclasses. As they are not actually typeclasses they have to be passed in explicitly, which causes unnecessary repetition and code bloat. This PR makes them typeclasses and adds supporting instances: two converted from the theorems `left_comm` and `right_comm` and two others extracted from `Data.Multiset.Basic`. In #16748 they will be moved with the very structurally similar typeclass `IsSymmOp` out of `Init.Logic` to a new file. The shaking of this PR revealed some uses of lemmas deprecated in #16438 but not caught by the linter. We fix these too. ESTIMATED CHANGES Modified Mathlib/Algebra/BigOperators/Group/Multiset.lean Modified Mathlib/Algebra/Group/Basic.lean +/- theorem mul_left_comm +/- theorem mul_right_comm Modified Mathlib/Algebra/Polynomial/BigOperators.lean Modified Mathlib/Data/Finmap.lean Modified Mathlib/Data/Finset/NoncommProd.lean +/- theorem Multiset.noncommFoldr_eq_foldr Modified Mathlib/Data/List/Basic.lean Modified Mathlib/Data/List/Perm.lean +/- theorem List.Perm.foldl_eq +/- theorem List.Perm.foldr_eq Modified Mathlib/Data/Multiset/Basic.lean +/- theorem Multiset.coe_foldl +/- theorem Multiset.coe_foldr +/- theorem Multiset.coe_foldr_swap +/- def Multiset.foldl +/- theorem Multiset.foldl_add +/- theorem Multiset.foldl_cons +/- theorem Multiset.foldl_induction' +/- theorem Multiset.foldl_induction +/- theorem Multiset.foldl_swap +/- theorem Multiset.foldl_zero +/- def Multiset.foldr +/- theorem Multiset.foldr_add +/- theorem Multiset.foldr_cons +/- theorem Multiset.foldr_induction' +/- theorem Multiset.foldr_induction +/- theorem Multiset.foldr_singleton +/- theorem Multiset.foldr_swap +/- theorem Multiset.foldr_zero +/- theorem Multiset.sub_eq_fold_erase Modified Mathlib/Data/Multiset/Fold.lean Modified Mathlib/Init/Algebra/Classes.lean Modified Mathlib/Init/Logic.lean - def LeftCommutative - def RightCommutative - theorem left_comm - theorem right_comm Modified Mathlib/Logic/Function/Basic.lean Modified Mathlib/Order/Defs.lean +/- theorem max_left_comm +/- theorem min_left_comm Modified Mathlib/Order/MinMax.lean +/- theorem Max.left_comm +/- theorem Max.right_comm +/- theorem max_left_commutative +/- theorem min_left_commutative +/- theorem min_right_comm Modified Mathlib/Tactic/CC.lean Modified Mathlib/Tactic/CC/Addition.lean Modified scripts/nolints.json 2024-09-14 09:13:50 0e1cd2e feat(Mathlib/FieldTheory): define differential fields (#14860) Define logarithmic derivatives and prove some properties. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/FieldTheory/Differential/Basic.lean + def Differential.logDeriv + theorem Differential.logDeriv_algebraMap + theorem Differential.logDeriv_div + theorem Differential.logDeriv_eq_zero + theorem Differential.logDeriv_mul + theorem Differential.logDeriv_multisetProd + theorem Differential.logDeriv_one + theorem Differential.logDeriv_pow + theorem Differential.logDeriv_prod + theorem Differential.logDeriv_prod_of_eq_zero + theorem Differential.logDeriv_zero + theorem algebraMap.coe_logDeriv 2024-09-14 08:37:00 9e2a933 feat(Algebra/Category/AlgebraCat/Monoidal): remove heavy defeqs (#16776) Remove heavy defeqs detected in [zulip](https://leanprover.zulipchat.com/#narrow/stream/116395-maths/topic/Heavy.20rfl). Alternatives for `forget₂_map_associator_hom` and `forget₂_map_associator_inv` are provided in #16778. ESTIMATED CHANGES Modified Mathlib/Algebra/Category/AlgebraCat/Monoidal.lean - theorem AlgebraCat.forget₂_map_associator_hom - theorem AlgebraCat.forget₂_map_associator_inv Modified Mathlib/LinearAlgebra/TensorProduct/Basic.lean + theorem TensorProduct.ext₃ 2024-09-14 08:36:59 aa90d83 feat(Order/LiminfLimsup): reinstate lemmas (#16765) ESTIMATED CHANGES Modified Mathlib/Order/LiminfLimsup.lean + theorem BddAbove.isBoundedUnder_of_range + theorem BddBelow.isBoundedUnder_of_range 2024-09-14 07:51:44 f19f21c feat(Algebra/GroupWithZero): MulEquiv between WithZero (units) and the base group with zero (#16615) Also MulEquivs that add or remove WithZero on both sides And some basic WithOne/WithZero API ESTIMATED CHANGES Modified Mathlib/Algebra/Group/WithOne/Defs.lean + theorem WithOne.recOneCoe_coe + theorem WithOne.recOneCoe_one Modified Mathlib/Algebra/GroupWithZero/WithZero.lean + def WithZero.withZeroUnitsEquiv 2024-09-14 06:53:46 1ea941a feat (Order/BoundedOrder): add bot_lt_of_gt (#16660) ESTIMATED CHANGES Modified Mathlib/Order/BoundedOrder.lean + theorem bot_lt_of_lt + theorem lt_top_of_lt 2024-09-14 05:31:47 b95daa5 chore: tidy/move/deprecate `Init.Logic` and `IsSymmOp` more (#16757) * Move `EmptyRelation` to `Order.Defs` (and use `Type*, Sort*` throughout the latter file while I'm at it). * Deprecate the two `InvImage` theorems and three `Equivalence` theorems in `Init.Logic` and fix the few uses of them. * Align `IsSymmOp` with the new typeclasses of #16751, i.e. make its `α` and `β` arguments implicit. There were a number of uses of `IsSymmOp` where `Std.Commutative` could also be used; make those changes. ESTIMATED CHANGES Modified Mathlib/Algebra/Order/GroupWithZero/Unbundled.lean Modified Mathlib/Algebra/Order/Monoid/Unbundled/Basic.lean Modified Mathlib/Algebra/Order/Monoid/Unbundled/Defs.lean +/- theorem contravariant_flip_iff +/- theorem covariant_flip_iff Modified Mathlib/Algebra/Order/Sub/Defs.lean Modified Mathlib/Data/List/Zip.lean Modified Mathlib/Init/Algebra/Classes.lean + theorem IsSymmOp.flip_eq Modified Mathlib/Init/Logic.lean - def EmptyRelation +/- theorem Equivalence.reflexive +/- theorem Equivalence.symmetric +/- theorem Equivalence.transitive Modified Mathlib/Logic/Equiv/Basic.lean Modified Mathlib/Logic/Function/Basic.lean - theorem IsSymmOp.flip_eq Modified Mathlib/Logic/Relation.lean Modified Mathlib/Order/Defs.lean + def EmptyRelation +/- def maxDefault +/- def minDefault Modified Mathlib/Order/RelClasses.lean 2024-09-14 05:03:42 9785e5e chore: Minor hypothesis changes, and a small lemma allowing `ContinuousSMul` to descend an `IsScalarTower` (#16777) The main contribution here is `IsScalarTower.continuousSMul`, which is then used in the `Separation.lean` file to improve the geometric Hahn Banach proofs for `RCLike` fields. ESTIMATED CHANGES Modified Mathlib/Analysis/NormedSpace/HahnBanach/Separation.lean +/- theorem RCLike.re_extendTo𝕜'ₗ Modified Mathlib/Topology/Algebra/MulAction.lean + theorem IsScalarTower.continuousSMul 2024-09-14 03:36:13 784d620 feat(Algebra/Algebra/Hom): add lemmas about toNatAlgHom and toIntAlgHom (#16790) ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/Hom.lean +/- def RingHom.toIntAlgHom + theorem RingHom.toIntAlgHom_apply + theorem RingHom.toIntAlgHom_coe +/- theorem RingHom.toIntAlgHom_injective + theorem RingHom.toNatAlgHom_apply + theorem RingHom.toNatAlgHom_coe 2024-09-14 02:37:52 5e8abb7 feat(CategoryTheory/EqToHom): simp lemmas for heq + eqToHom (#16779) Some basic lemmas for working with `HEq` in `eqToHom` composites. Co-Authored-By: Emily Riehl and Pietro Monticone <38562595+pitmonticone@users.noreply.github.com> ESTIMATED CHANGES Modified Mathlib/AlgebraicTopology/FundamentalGroupoid/InducedMaps.lean Modified Mathlib/CategoryTheory/EqToHom.lean - theorem CategoryTheory.Functor.conj_eqToHom_iff_heq + theorem CategoryTheory.comp_eqToHom_heq + theorem CategoryTheory.comp_eqToHom_heq_iff + theorem CategoryTheory.conj_eqToHom_iff_heq' + theorem CategoryTheory.conj_eqToHom_iff_heq + theorem CategoryTheory.eqToHom_comp_heq + theorem CategoryTheory.eqToHom_comp_heq_iff + theorem CategoryTheory.heq_comp + theorem CategoryTheory.heq_comp_eqToHom_iff + theorem CategoryTheory.heq_eqToHom_comp_iff 2024-09-13 20:11:28 bb7a63b chore: deprecate `Ordering.orElse` for `.then` (#12068) `Ordering.orElse` is a duplicate of `Ordering.then` from Init. Similarly, `toRel` is a duplicate of `Compares`. (`cmp` is also a duplicate of `compareOfLessAndEq`, but it's used quite heavily and the new name is a bit...) ESTIMATED CHANGES Modified Mathlib/Data/Ordering/Basic.lean + def Ordering.Compares + theorem Ordering.compares_eq + theorem Ordering.compares_gt + theorem Ordering.compares_lt - def Ordering.orElse - def Ordering.toRel Modified Mathlib/Order/Compare.lean - def Ordering.Compares - theorem Ordering.compares_eq - theorem Ordering.compares_gt - theorem Ordering.compares_lt +/- theorem Ordering.orElse_eq_lt +/- theorem Ordering.swap_orElse Modified Mathlib/Order/Defs.lean +/- theorem compare_iff Modified Mathlib/SetTheory/Ordinal/Notation.lean 2024-09-13 18:49:51 02e27eb feat(Algebra/Group/Pi/Lemmas): add Pi.mulSingle_pow (#16774) add two lemmas of the form `Pi.mulSingle_pow` ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Pi/Lemmas.lean + theorem Pi.mulSingle_pow + theorem Pi.mulSingle_zpow 2024-09-13 18:34:08 fb3ad74 chore: remove unnecessary import (#16568) ESTIMATED CHANGES Modified Mathlib/Topology/Category/TopCat/EffectiveEpi.lean 2024-09-13 11:21:00 7dc3569 docs(Combinatorics/SimpleGraph): line breaks and ends of sentences (#16759) ESTIMATED CHANGES Modified Mathlib/Combinatorics/SimpleGraph/Acyclic.lean Modified Mathlib/Combinatorics/SimpleGraph/Basic.lean Modified Mathlib/Combinatorics/SimpleGraph/Clique.lean Modified Mathlib/Combinatorics/SimpleGraph/Coloring.lean 2024-09-13 10:46:46 9cceedd style(Algebra/Groups/Defs): remove an extra space (#16756) ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Defs.lean 2024-09-13 09:21:18 8dc7c80 refactor: downgrade `linear_combination` (#15899) This PR drops support from several operations from the `linear_combination` tactic: - multiplication of two hypotheses - division by a hypothesis - inversion of a hypothesis - addition or subtraction of a constant and a hypothesis The first three operations are removed in order to make `linear_combination` perform only genuinely linear operations; this makes the tactic more predictable and also allows for more flexibility in refactors/reimplementations. The last operation is removed because, after of the removal of the other three, it is redundant (adding a constant to both sides of an equation doesn't change the difference of the two sides). The old operations are still available using the `congr(...)` term elaborator or using the legacy `linear_combination'` tactic. A side effect that be seen in `Mathlib/AlgebraicGeometry/EllipticCurve/Weierstrass.lean` is that elaboration changes slightly; previously `⁻¹` was one of the supported operations *on hypotheses*, so `⁻¹` got handled differently *in constants* too. In that example, previously the atom which got pre-elaborated was `C'.u`; now the atom which gets pre-elaborated is `C'.u⁻¹`. Discussion on [Zulip](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/Narrowing.20the.20scope.20of.20.60linear_combination.60) ESTIMATED CHANGES Modified Mathlib/AlgebraicGeometry/EllipticCurve/Jacobian.lean Modified Mathlib/AlgebraicGeometry/EllipticCurve/Weierstrass.lean Modified Mathlib/Tactic/LinearCombination'.lean Modified Mathlib/Tactic/LinearCombination.lean - theorem Mathlib.Tactic.LinearCombination.c_add_pf - theorem Mathlib.Tactic.LinearCombination.c_div_pf - theorem Mathlib.Tactic.LinearCombination.c_sub_pf - theorem Mathlib.Tactic.LinearCombination.div_pf - theorem Mathlib.Tactic.LinearCombination.inv_pf - theorem Mathlib.Tactic.LinearCombination.mul_pf - theorem Mathlib.Tactic.LinearCombination.pf_add_c - theorem Mathlib.Tactic.LinearCombination.pf_sub_c Modified test/linear_combination.lean 2024-09-13 07:28:02 c3c78bb chore: refactor `ZLattice` to `Submodule ℤ` (#16604) For some reason, `ZLattice` is an `AddSubgroup`, but it appears that life would be simpler if it were a `Submodule ℤ`. it is also consistent with the `ZSpan` construction of `ℤ`-lattices. This is what this PR does. See also [this](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/.60Zlattice.60.20as.20.60.E2.84.A4.60-submodules/near/468598590) Zulip thread. This PR is part of the proof of the Analytic Class Number Formula. ESTIMATED CHANGES Modified Mathlib/Algebra/Module/ZLattice/Basic.lean - theorem ZLattice.FG + theorem Zlattice.FG Modified Mathlib/Algebra/Module/ZLattice/Covolume.lean +/- theorem ZLattice.covolume_eq_det Modified Mathlib/MeasureTheory/Group/Defs.lean Modified Mathlib/NumberTheory/NumberField/CanonicalEmbedding/ConvexBody.lean Modified Mathlib/NumberTheory/NumberField/Units/DirichletTheorem.lean 2024-09-13 06:50:52 cdc54f3 feat(Algebra/Group/Pointwise): lower bound cardinality of s * s (#16745) ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Pointwise/Finset/Basic.lean + theorem Finset.card_le_card_mul_self' + theorem Finset.card_le_card_mul_self 2024-09-13 06:50:50 0fc9f19 feat(Algebra/Group): define even and odd functions (#16446) Define predicates `Function.Even` and `Function.Odd` for functions satisfying `f (-x) = f x` resp. `f (-x) = -(f x)`, and prove some simple properties of these. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Group/EvenFunction.lean + theorem Function.Even.add + theorem Function.Even.comp_odd + theorem Function.Even.const + theorem Function.Even.const_smul + theorem Function.Even.left_comp + theorem Function.Even.mul_even + theorem Function.Even.mul_odd + theorem Function.Even.smul_even + theorem Function.Even.smul_odd + theorem Function.Even.zero + theorem Function.Odd.add + theorem Function.Odd.comp_odd + theorem Function.Odd.const_smul + theorem Function.Odd.mul_even + theorem Function.Odd.mul_odd + theorem Function.Odd.smul_even + theorem Function.Odd.smul_odd + theorem Function.Odd.zero + theorem Function.zero_of_even_and_odd 2024-09-13 06:50:49 3e5f265 feat(CategoryTheory): Improve the infrastructure around the `liftToFinset` construction (#16326) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Limits/Constructions/Filtered.lean +/- def CategoryTheory.Limits.CoproductsFromFiniteFiltered.liftToFinset + def CategoryTheory.Limits.CoproductsFromFiniteFiltered.liftToFinsetColimIso + theorem CategoryTheory.Limits.CoproductsFromFiniteFiltered.liftToFinsetColimIso_aux +/- def CategoryTheory.Limits.CoproductsFromFiniteFiltered.liftToFinsetColimitCocone + def CategoryTheory.Limits.CoproductsFromFiniteFiltered.liftToFinsetObj 2024-09-13 05:51:39 bf6378e chore: update LeanSearchClient github repo (#16750) ESTIMATED CHANGES Modified lakefile.lean 2024-09-13 05:51:38 fafb199 feat: run `intros` before side goal discharger in `gcongr` (#16747) As [suggested](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/gcongr.2C.20forall.2C.20and.20positivity/near/469424238) by @sgouezel. ESTIMATED CHANGES Modified Mathlib/Analysis/Fourier/FourierTransformDeriv.lean Modified Mathlib/Analysis/NormedSpace/Multilinear/Basic.lean Modified Mathlib/Tactic/GCongr/Core.lean Modified test/GCongr/inequalities.lean 2024-09-13 04:26:23 8ce5644 chore: deprecate plain `Commutative, Associative` (#16749) …in favour of `Std.Commutative` and `Std.Associative`. Also reorder `Init.Logic` so that non-deprecated code is at the top, and remove redundant `[symm]` attributes. ESTIMATED CHANGES Modified Mathlib/Algebra/BigOperators/Group/List.lean Modified Mathlib/Data/Finset/Sups.lean Modified Mathlib/Data/List/Basic.lean +/- theorem List.foldl1_eq_foldr1 +/- theorem List.foldl_eq_foldr +/- theorem List.foldl_eq_of_comm_of_assoc Modified Mathlib/GroupTheory/CommutingProbability.lean Modified Mathlib/Init/Logic.lean Modified Mathlib/Order/Basic.lean +/- theorem associative_of_commutative_of_le Modified Mathlib/Order/MinMax.lean +/- theorem max_associative +/- theorem max_commutative +/- theorem max_left_commutative +/- theorem min_associative +/- theorem min_commutative +/- theorem min_left_commutative Modified Mathlib/Order/RelIso/Basic.lean Modified Mathlib/Order/WithBot.lean 2024-09-13 04:03:47 4e40837 feat(NumberTheory/JacobiSum/Basic): add two more results (#16734) This continues the series of PRs on Jacobi sums. ESTIMATED CHANGES Modified Mathlib/NumberTheory/JacobiSum/Basic.lean + theorem jacobiSum_eq_gaussSum_mul_gaussSum_div_gaussSum + theorem jacobiSum_mul_jacobiSum_inv 2024-09-13 03:40:34 580f59e chore: remove `autoImplicit` from `Logic.UnivLE` (#16690) Split from #16154. ESTIMATED CHANGES Modified Mathlib/Logic/UnivLE.lean - theorem Small.trans_univLE.{u, + theorem Small.trans_univLE 2024-09-13 00:04:50 d0afdfd chore: fix docstring of `HeytingAlgebra.himp_bot` (#16587) fix docstring of `HeytingAlgebra.himp_bot` ESTIMATED CHANGES Modified Mathlib/Order/Heyting/Basic.lean 2024-09-12 22:13:17 56da879 chore: Move pointwise finset lemmas under `Algebra` (#16744) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Algebra/Operations.lean Renamed Mathlib/Data/Finset/Pointwise/Basic.lean to Mathlib/Algebra/Group/Pointwise/Finset/Basic.lean Renamed Mathlib/Data/Finset/Pointwise/Interval.lean to Mathlib/Algebra/Group/Pointwise/Finset/Interval.lean Renamed Mathlib/Data/Finset/Pointwise/Card.lean to Mathlib/Algebra/Group/Pointwise/Finset/NatCard.lean Modified Mathlib/Algebra/Group/UniqueProds/Basic.lean Modified Mathlib/Algebra/MonoidAlgebra/Support.lean Modified Mathlib/Algebra/Order/Antidiag/Pi.lean Modified Mathlib/Algebra/Pointwise/Stabilizer.lean Modified Mathlib/Combinatorics/Additive/ETransform.lean Modified Mathlib/Combinatorics/Additive/Energy.lean Modified Mathlib/Combinatorics/Additive/PluenneckeRuzsa.lean Modified Mathlib/Combinatorics/Additive/RuzsaCovering.lean Modified Mathlib/Data/DFinsupp/Interval.lean Modified Mathlib/Data/Finset/Finsupp.lean Modified Mathlib/Data/Finset/NatDivisors.lean 2024-09-12 20:44:54 0829f93 chore(scripts/get_tlabel.sh): use 'CI' and 'IMO' labels for maintainer merge (#16726) ESTIMATED CHANGES Modified scripts/get_tlabel.sh 2024-09-12 19:09:42 9c09710 feat(Tactic/CategoryTheory/ToApp): Add `to_app` attribute (#16119) This PR adds the attribute `to_app`, which generates new declarations similar to how `reassoc` works. The point is the following: given a lemma about an equality of 2-morphisms in some bicategory, `to_app` specializes this lemma so that the equality is taking place in `Cat`, then it applies `NatTrans.congr_app` and simplifies the resulting expression. Lemmas of this form are useful to apply when working with a (simplified) expression of 1-morphisms in a category where parts (but not all) of this expression consists of components of natural transformations. So this attribute makes it easier to apply purely bicategorical lemmas in such situations. A situation where I think that this is useful is when working with pseudofunctors valued in `Cat`. See the branch `bicategory-grothendieck-functoriality` for an example of where these automatically generated declarations are used. I think it might also be useful for 2-yoneda, as the pseudofunctors there are valued in `Cat` also. Much of the code has been copied from `reassoc`. However, a new definition `toCatExpr` is added to specialize the lemma so that the equality is taking place in `Cat`. One also needs some amount of extra preprocessing to properly deal with universes (since `Cat` has a different dependence on universes than an arbitrary bicategory). ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/CategoryTheory/Bicategory/Functor/Lax.lean Modified Mathlib/CategoryTheory/Bicategory/Functor/Oplax.lean Modified Mathlib/CategoryTheory/Bicategory/Functor/Pseudofunctor.lean Modified Mathlib/CategoryTheory/Bicategory/NaturalTransformation/Oplax.lean Modified Mathlib/Tactic.lean Added Mathlib/Tactic/CategoryTheory/ToApp.lean + def CategoryTheory.catAppSimp + def CategoryTheory.toAppExpr + def CategoryTheory.toCatExpr Modified scripts/noshake.json Added test/CategoryTheory/ToApp.lean + theorem CategoryTheory.ToAppTest.pentagon_hom_hom_inv_inv_hom + theorem CategoryTheory.ToAppTest.testThm + theorem CategoryTheory.ToAppTest.whiskerLeft_hom_inv 2024-09-12 18:54:02 e6bff57 feat(Ergodic/Conservative): add `Conservative.measureRestrict` (#16126) ESTIMATED CHANGES Modified Mathlib/Dynamics/Ergodic/Conservative.lean + theorem MeasureTheory.Conservative.measureRestrict + theorem MeasureTheory.Conservative.of_absolutelyContinuous 2024-09-12 17:39:12 2f662a4 chore(LinearAlgebra): prepare library for API refactor (#16738) This PR adds equation lemmas for several concepts around eigenspaces, eigenvectors, and eigenvalues, and uses these lemmas in the rest of the library. The result is an improved API boundary which allows for a refactor (and generalization) of the definitions in follow up work. ESTIMATED CHANGES Modified Mathlib/Algebra/Lie/Sl2.lean Modified Mathlib/Algebra/Lie/Weights/Basic.lean Modified Mathlib/Algebra/Lie/Weights/Linear.lean Modified Mathlib/LinearAlgebra/Eigenspace/Basic.lean + theorem Module.End.eigenspace_def + theorem Module.End.genEigenrange_def + theorem Module.End.genEigenspace_def + theorem Module.End.hasEigenvalue_iff + theorem Module.End.hasEigenvector_iff + theorem Module.End.hasGenEigenvalue_iff + theorem Module.End.hasGenEigenvector_iff + theorem Module.End.maxGenEigenspace_def Modified Mathlib/LinearAlgebra/Eigenspace/Minpoly.lean Modified Mathlib/LinearAlgebra/Eigenspace/Semisimple.lean Modified Mathlib/LinearAlgebra/Eigenspace/Triangularizable.lean Modified Mathlib/LinearAlgebra/Eigenspace/Zero.lean Modified Mathlib/LinearAlgebra/Matrix/Gershgorin.lean 2024-09-12 17:39:11 718a757 feat(CategoryTheory/Galois): generalize transitivity to arbitrary universes (#16664) The construction of the isomorphism of `Aut F` with the inverse limit of the automorphism groups of the Galois objects restricts the target category of `F` to be `FintypeCat.{v}` where `v` is the `Hom`-universe of `C`. Still, the transitivity of the action of `Aut F` on the fibers of connected objects can be generalized to arbitrary `F : C ⥤ FintypeCat.{w}` by post-composing with an equivalence `FintypeCat.{v} ≌ FintypeCat.{w}`. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/FintypeCat.lean + theorem FintypeCat.uSwitchEquiv_naturality + theorem FintypeCat.uSwitchEquiv_symm_naturality + theorem FintypeCat.uSwitch_map_uSwitch_map + theorem FunctorToFintypeCat.naturality Modified Mathlib/CategoryTheory/Galois/Action.lean Modified Mathlib/CategoryTheory/Galois/Basic.lean Modified Mathlib/CategoryTheory/Galois/Examples.lean Modified Mathlib/CategoryTheory/Galois/GaloisObjects.lean Modified Mathlib/CategoryTheory/Galois/Prorepresentability.lean +/- structure CategoryTheory.PreGaloisCategory.PointedGaloisObject Modified Mathlib/Logic/Equiv/TransferInstance.lean + theorem Finite.exists_type_univ_nonempty_mulEquiv - theorem Finite.exists_type_zero_nonempty_mulEquiv 2024-09-12 16:41:21 24f0179 chore: match the definition of `AnalyticWithinAt` with `ContDiffWithinAt` (#16725) The current definition of `AnalyticWithinAt` in a set `s` at a point `x` requires good behavior inside `s`, and continuity within `s` at `x` (because good behavior at `x` is important). In `ContDiffWithinAt`, where the issues are similar, one requires instead good behavior inside `insert x s`. Those two points of view are equivalent, but the latter is often more convenient (just one field to check, more uniform proofs). In this PR, we switch the definition of `AnalyticWithinAt` to the latter approach. We also expand a little bit the API around `AnalyticWithinAt`, by tweaking theorems that required `AnalyticAt` to require `AnalyticWithinAt`, and deduce `AnalyticAt` versions from `AnalyticWithinAt` versions. For this, a few statements have to be moved from the file `Analytic.Within.lean` to `Analytic.Basic.lean`. There is no real new statement or new proof in this PR, but it opens the way to further improvements. ESTIMATED CHANGES Modified Mathlib/Analysis/Analytic/Basic.lean + theorem AnalyticAt.analyticWithinAt +/- theorem AnalyticOn.add + theorem AnalyticOn.analyticWithinOn +/- theorem AnalyticOn.congr' +/- theorem AnalyticOn.congr +/- theorem AnalyticOn.neg +/- theorem AnalyticOn.sub + theorem AnalyticWithinAt.mono + theorem HasFPowerSeriesAt.hasFPowerSeriesWithinAt +/- theorem HasFPowerSeriesAt.isBigO_sub_partialSum_pow +/- theorem HasFPowerSeriesOnBall.coeff_zero + theorem HasFPowerSeriesOnBall.hasFPowerSeriesWithinOnBall +/- theorem HasFPowerSeriesOnBall.image_sub_sub_deriv_le + theorem HasFPowerSeriesWithinAt.analyticWithinAt + theorem HasFPowerSeriesWithinAt.coeff_zero + theorem HasFPowerSeriesWithinAt.isBigO_image_sub_norm_mul_norm_sub + theorem HasFPowerSeriesWithinAt.isBigO_sub_partialSum_pow + theorem HasFPowerSeriesWithinAt.mono + theorem HasFPowerSeriesWithinOnBall.analyticWithinAt + theorem HasFPowerSeriesWithinOnBall.coeff_zero + theorem HasFPowerSeriesWithinOnBall.hasFPowerSeriesWithinAt + theorem HasFPowerSeriesWithinOnBall.hasSum_sub + theorem HasFPowerSeriesWithinOnBall.image_sub_sub_deriv_le + theorem HasFPowerSeriesWithinOnBall.isBigO_image_sub_image_sub_deriv_principal + theorem HasFPowerSeriesWithinOnBall.mono + theorem HasFPowerSeriesWithinOnBall.of_le + theorem HasFPowerSeriesWithinOnBall.radius_pos + theorem HasFPowerSeriesWithinOnBall.tendstoLocallyUniformlyOn' + theorem HasFPowerSeriesWithinOnBall.tendstoLocallyUniformlyOn + theorem HasFPowerSeriesWithinOnBall.tendstoUniformlyOn' + theorem HasFPowerSeriesWithinOnBall.tendstoUniformlyOn + theorem HasFPowerSeriesWithinOnBall.uniform_geometric_approx' + theorem HasFPowerSeriesWithinOnBall.uniform_geometric_approx +/- theorem analyticOn_congr' +/- theorem analyticOn_congr + theorem analyticWithinAt_univ + theorem analyticWithinOn_univ + theorem hasFPowerSeriesWithinAt_univ + theorem hasFPowerSeriesWithinOnBall_univ Modified Mathlib/Analysis/Analytic/Within.lean - theorem AnalyticAt.analyticWithinAt - theorem AnalyticOn.analyticWithinOn +/- theorem AnalyticWithinAt.congr +/- theorem AnalyticWithinAt.congr_of_eventuallyEq - theorem AnalyticWithinAt.continuousWithinAt - theorem AnalyticWithinAt.exists_analyticAt - theorem AnalyticWithinAt.mono +/- theorem AnalyticWithinOn.congr + theorem HasFPowerSeriesWithinAt.congr - theorem HasFPowerSeriesWithinAt.continuousWithinAt - theorem HasFPowerSeriesWithinAt.mono + theorem HasFPowerSeriesWithinOnBall.congr - theorem HasFPowerSeriesWithinOnBall.mono +/- theorem IsOpen.analyticWithinOn_iff_analyticOn + theorem analyticWithinAt_iff_exists_analyticAt' - theorem analyticWithinAt_univ - theorem analyticWithinOn_univ - theorem hasFPowerSeriesWithinAt_univ - theorem hasFPowerSeriesWithinOnBall_univ Modified Mathlib/Data/Set/Function.lean + theorem Set.MapsTo.insert Modified Mathlib/Geometry/Manifold/AnalyticManifold.lean 2024-09-12 16:24:18 862c665 chore: namespace lemmas to `CStarAlgebra` instead of `CStarRing` (#16653) This changes the namespace from `CStarRing` to `CStarAlgebra` for any lemmas whose hypotheses imply `Module ℂ A`. We reserve `CStarRing` for lemmas pertaining only to the normed ring structure, but which do not involve the `ℂ`-algebra structure. ESTIMATED CHANGES Modified Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Instances.lean + def CStarAlgebra.spectralOrder + theorem CStarAlgebra.spectralOrderedRing - def CStarRing.spectralOrder - theorem CStarRing.spectralOrderedRing Modified Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Order.lean + theorem CStarAlgebra.conjugate_le_norm_smul' + theorem CStarAlgebra.conjugate_le_norm_smul + theorem CStarAlgebra.inv_le_iff + theorem CStarAlgebra.inv_le_one + theorem CStarAlgebra.inv_le_one_iff_one_le + theorem CStarAlgebra.isClosed_nonneg + theorem CStarAlgebra.isUnit_of_le + theorem CStarAlgebra.le_inv_iff + theorem CStarAlgebra.le_one_of_one_le_inv + theorem CStarAlgebra.mul_star_le_algebraMap_norm_sq + theorem CStarAlgebra.nnnorm_le_iff_of_nonneg + theorem CStarAlgebra.nnnorm_le_natCast_iff_of_nonneg + theorem CStarAlgebra.nnnorm_le_one_iff_of_nonneg + theorem CStarAlgebra.nnnorm_mem_spectrum_of_nonneg + theorem CStarAlgebra.norm_le_iff_le_algebraMap + theorem CStarAlgebra.norm_le_natCast_iff_of_nonneg + theorem CStarAlgebra.norm_le_norm_of_nonneg_of_le + theorem CStarAlgebra.norm_le_one_iff_of_nonneg + theorem CStarAlgebra.norm_mem_spectrum_of_nonneg + theorem CStarAlgebra.norm_or_neg_norm_mem_spectrum + theorem CStarAlgebra.one_le_inv_iff_le_one + theorem CStarAlgebra.rpow_neg_one_le_one + theorem CStarAlgebra.rpow_neg_one_le_rpow_neg_one + theorem CStarAlgebra.star_mul_le_algebraMap_norm_sq - theorem CStarRing.conjugate_le_norm_smul' - theorem CStarRing.conjugate_le_norm_smul - theorem CStarRing.inv_le_iff - theorem CStarRing.inv_le_one - theorem CStarRing.inv_le_one_iff_one_le - theorem CStarRing.isClosed_nonneg - theorem CStarRing.isUnit_of_le - theorem CStarRing.le_inv_iff - theorem CStarRing.le_one_of_one_le_inv - theorem CStarRing.mul_star_le_algebraMap_norm_sq - theorem CStarRing.nnnorm_le_iff_of_nonneg - theorem CStarRing.nnnorm_le_natCast_iff_of_nonneg - theorem CStarRing.nnnorm_le_one_iff_of_nonneg - theorem CStarRing.nnnorm_mem_spectrum_of_nonneg - theorem CStarRing.norm_le_iff_le_algebraMap - theorem CStarRing.norm_le_natCast_iff_of_nonneg - theorem CStarRing.norm_le_norm_of_nonneg_of_le - theorem CStarRing.norm_le_one_iff_of_nonneg - theorem CStarRing.norm_mem_spectrum_of_nonneg - theorem CStarRing.norm_or_neg_norm_mem_spectrum - theorem CStarRing.one_le_inv_iff_le_one - theorem CStarRing.rpow_neg_one_le_one - theorem CStarRing.rpow_neg_one_le_rpow_neg_one - theorem CStarRing.star_mul_le_algebraMap_norm_sq Modified Mathlib/Analysis/CStarAlgebra/Module/Constructions.lean Modified Mathlib/Analysis/CStarAlgebra/Module/Defs.lean 2024-09-12 14:29:21 185d800 feat(CategoryTheory/Abelian): AB4 and AB5 axioms (#6504) Joint work with @IsaacHernando and Coleton Kotch. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Category/Grp/AB5.lean Added Mathlib/CategoryTheory/Abelian/GrothendieckAxioms.lean Modified Mathlib/CategoryTheory/Adjunction/Limits.lean Modified Mathlib/CategoryTheory/Limits/Filtered.lean 2024-09-12 10:52:11 776511a feat(CategoryTheory/Filtered): finality and initiality of projections on (co)structured arrow cats (#16680) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Filtered/Final.lean 2024-09-12 10:52:09 0ca9b83 feat: lint on (syntactically) duplicate imports (#16384) Motivation: PR #16273 ESTIMATED CHANGES Modified Mathlib/Tactic/Linter/TextBased.lean + def Mathlib.Linter.TextBased.duplicateImportsLinter 2024-09-12 10:52:08 dc64441 feat: Prop-valued version of `RCLike` structure for normed fields (#16383) Motivation: I want a typeclass to be able to say that some classes of functions have symmetric second derivative wrt some normed field (this is a key point when defining the Lie algebra of a Lie group). Over R or C, this is true for C^2 functions. Over a general field, this is true for analytic functions. A first step is to have a typeclass saying whether a given normed field is R or C, implemented in this PR. ESTIMATED CHANGES Modified Mathlib/Analysis/Calculus/MeanValue.lean Modified Mathlib/Analysis/Calculus/SmoothSeries.lean Modified Mathlib/Analysis/Calculus/UniformLimitsDeriv.lean +/- theorem difference_quotients_converge_uniformly Modified Mathlib/Analysis/NormedSpace/HahnBanach/Extension.lean Modified Mathlib/Analysis/RCLike/Basic.lean 2024-09-12 09:57:01 2f55b8c chore: deprecate 14 `Init.Logic` lemmas (#16721) Deprecate * `(and,or,iff)_(true,false)_iff` and `(true,false)_(and_or_iff)_iff` for the lemmas without `_iff`, which are in core * `iff_self_iff` for `iff_self` in core * `not_or_of_not` for `not_or_intro` in core The vast majority of their uses are as simp/rw lemmas, for which the core versions work equally well. ESTIMATED CHANGES Modified Archive/Imo/Imo1994Q1.lean Modified Archive/Imo/Imo1998Q2.lean Modified Archive/MiuLanguage/DecisionSuf.lean Modified Archive/Wiedijk100Theorems/AscendingDescendingSequences.lean Modified Archive/Wiedijk100Theorems/BallotProblem.lean Modified Archive/Wiedijk100Theorems/CubingACube.lean Modified Archive/Wiedijk100Theorems/FriendshipGraphs.lean Modified Archive/Wiedijk100Theorems/Partition.lean Modified Counterexamples/Phillips.lean Modified Mathlib/Algebra/BigOperators/Group/Finset.lean Modified Mathlib/Algebra/CharZero/Lemmas.lean Modified Mathlib/Algebra/GCDMonoid/Basic.lean Modified Mathlib/Algebra/Group/Pointwise/Set.lean Modified Mathlib/Algebra/Group/Subgroup/Basic.lean +/- theorem MonoidHom.ker_fst +/- theorem MonoidHom.ker_snd Modified Mathlib/Algebra/Group/Subgroup/Pointwise.lean Modified Mathlib/Algebra/Group/Submonoid/Operations.lean +/- theorem MonoidHom.mker_fst +/- theorem MonoidHom.mker_snd Modified Mathlib/Algebra/GroupWithZero/Basic.lean Modified Mathlib/Algebra/Lie/CartanSubalgebra.lean Modified Mathlib/Algebra/Lie/Submodule.lean Modified Mathlib/Algebra/Module/Basic.lean Modified Mathlib/Algebra/Module/Submodule/Map.lean Modified Mathlib/Algebra/MvPolynomial/Division.lean Modified Mathlib/Algebra/MvPolynomial/Rename.lean Modified Mathlib/Algebra/MvPolynomial/Variables.lean Modified Mathlib/Algebra/Order/BigOperators/Group/Finset.lean Modified Mathlib/Algebra/Order/CauSeq/Basic.lean Modified Mathlib/Algebra/Order/Field/Basic.lean Modified Mathlib/Algebra/Order/Floor.lean Modified Mathlib/Algebra/Order/Ring/Abs.lean Modified Mathlib/Algebra/Polynomial/AlgebraMap.lean Modified Mathlib/Algebra/Polynomial/BigOperators.lean Modified Mathlib/Algebra/Polynomial/Coeff.lean Modified Mathlib/Algebra/Polynomial/Derivative.lean Modified Mathlib/Algebra/Polynomial/Div.lean Modified Mathlib/Algebra/Polynomial/FieldDivision.lean Modified Mathlib/Algebra/Polynomial/HasseDeriv.lean Modified Mathlib/Algebra/Polynomial/UnitTrinomial.lean Modified Mathlib/Algebra/Ring/Int.lean Modified Mathlib/Algebra/Squarefree/Basic.lean Modified Mathlib/Algebra/Star/NonUnitalSubalgebra.lean Modified Mathlib/AlgebraicTopology/AlternatingFaceMapComplex.lean Modified Mathlib/AlgebraicTopology/DoldKan/Degeneracies.lean Modified Mathlib/AlgebraicTopology/SimplexCategory.lean Modified Mathlib/Analysis/Analytic/Basic.lean Modified Mathlib/Analysis/Analytic/Composition.lean Modified Mathlib/Analysis/Asymptotics/Asymptotics.lean Modified Mathlib/Analysis/Asymptotics/Theta.lean Modified Mathlib/Analysis/BoundedVariation.lean Modified Mathlib/Analysis/BoxIntegral/Box/SubboxInduction.lean Modified Mathlib/Analysis/BoxIntegral/Partition/Basic.lean Modified Mathlib/Analysis/BoxIntegral/Partition/Split.lean Modified Mathlib/Analysis/Calculus/BumpFunction/FiniteDimension.lean Modified Mathlib/Analysis/Calculus/ContDiff/Basic.lean Modified Mathlib/Analysis/Calculus/ContDiff/Defs.lean Modified Mathlib/Analysis/Calculus/FDeriv/Measurable.lean Modified Mathlib/Analysis/Calculus/InverseFunctionTheorem/ApproximatesLinearOn.lean Modified Mathlib/Analysis/Complex/Arg.lean Modified Mathlib/Analysis/Complex/UpperHalfPlane/Basic.lean Modified Mathlib/Analysis/Complex/UpperHalfPlane/Metric.lean Modified Mathlib/Analysis/Convex/Caratheodory.lean Modified Mathlib/Analysis/Convex/Combination.lean Modified Mathlib/Analysis/Convex/Segment.lean Modified Mathlib/Analysis/Convex/Side.lean Modified Mathlib/Analysis/Convex/StrictConvexBetween.lean Modified Mathlib/Analysis/Convolution.lean Modified Mathlib/Analysis/Distribution/SchwartzSpace.lean Modified Mathlib/Analysis/InnerProductSpace/Basic.lean Modified Mathlib/Analysis/InnerProductSpace/LinearPMap.lean Modified Mathlib/Analysis/InnerProductSpace/OfNorm.lean Modified Mathlib/Analysis/InnerProductSpace/PiL2.lean Modified Mathlib/Analysis/InnerProductSpace/Projection.lean Modified Mathlib/Analysis/InnerProductSpace/TwoDim.lean Modified Mathlib/Analysis/LocallyConvex/ContinuousOfBounded.lean Modified Mathlib/Analysis/LocallyConvex/WeakDual.lean Modified Mathlib/Analysis/MeanInequalities.lean Modified Mathlib/Analysis/MeanInequalitiesPow.lean Modified Mathlib/Analysis/Normed/Algebra/Spectrum.lean Modified Mathlib/Analysis/Normed/Module/Ray.lean Modified Mathlib/Analysis/PSeries.lean Modified Mathlib/Analysis/Seminorm.lean Modified Mathlib/Analysis/SpecialFunctions/Complex/Arg.lean Modified Mathlib/Analysis/SpecialFunctions/Gamma/Beta.lean Modified Mathlib/Analysis/SpecialFunctions/Integrals.lean Modified Mathlib/Analysis/SpecialFunctions/PolarCoord.lean Modified Mathlib/Analysis/SpecialFunctions/Pow/NNReal.lean Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Angle.lean Modified Mathlib/Analysis/SpecificLimits/FloorPow.lean Modified Mathlib/Analysis/SpecificLimits/Normed.lean Modified Mathlib/CategoryTheory/Limits/FilteredColimitCommutesFiniteLimit.lean Modified Mathlib/CategoryTheory/Sites/LocallySurjective.lean Modified Mathlib/CategoryTheory/Sites/Subsheaf.lean Modified Mathlib/Combinatorics/Additive/Energy.lean Modified Mathlib/Combinatorics/Configuration.lean Modified Mathlib/Combinatorics/SetFamily/KruskalKatona.lean Modified Mathlib/Combinatorics/SimpleGraph/Acyclic.lean Modified Mathlib/Combinatorics/SimpleGraph/Basic.lean Modified Mathlib/Combinatorics/SimpleGraph/Clique.lean Modified Mathlib/Combinatorics/SimpleGraph/Connectivity/WalkCounting.lean Modified Mathlib/Combinatorics/SimpleGraph/DegreeSum.lean Modified Mathlib/Combinatorics/SimpleGraph/IncMatrix.lean Modified Mathlib/Combinatorics/SimpleGraph/Path.lean Modified Mathlib/Combinatorics/SimpleGraph/Regularity/Increment.lean Modified Mathlib/Combinatorics/SimpleGraph/Subgraph.lean Modified Mathlib/Combinatorics/SimpleGraph/Trails.lean Modified Mathlib/Combinatorics/SimpleGraph/Walk.lean Modified Mathlib/Computability/Reduce.lean Modified Mathlib/Computability/RegularExpressions.lean Modified Mathlib/Computability/TMToPartrec.lean Modified Mathlib/Computability/TuringMachine.lean Modified Mathlib/Control/LawfulFix.lean Modified Mathlib/Data/Fin/Tuple/NatAntidiagonal.lean Modified Mathlib/Data/FinEnum.lean Modified Mathlib/Data/Finmap.lean Modified Mathlib/Data/Finset/Basic.lean Modified Mathlib/Data/Finset/Card.lean Modified Mathlib/Data/Finset/Lattice.lean Modified Mathlib/Data/Finset/Pointwise/Basic.lean Modified Mathlib/Data/Finset/Union.lean Modified Mathlib/Data/Finset/Update.lean Modified Mathlib/Data/Finsupp/Basic.lean Modified Mathlib/Data/Finsupp/Defs.lean Modified Mathlib/Data/Fintype/Basic.lean Modified Mathlib/Data/Fintype/Card.lean Modified Mathlib/Data/Fintype/Fin.lean Modified Mathlib/Data/Int/GCD.lean Modified Mathlib/Data/List/Basic.lean Modified Mathlib/Data/List/Chain.lean Modified Mathlib/Data/List/Cycle.lean Modified Mathlib/Data/List/FinRange.lean Modified Mathlib/Data/List/Forall2.lean Modified Mathlib/Data/List/Lattice.lean Modified Mathlib/Data/List/Lemmas.lean Modified Mathlib/Data/List/NatAntidiagonal.lean Modified Mathlib/Data/List/Perm.lean Modified Mathlib/Data/List/Range.lean Modified Mathlib/Data/List/ReduceOption.lean Modified Mathlib/Data/List/Sections.lean Modified Mathlib/Data/Multiset/Basic.lean Modified Mathlib/Data/Multiset/Fintype.lean Modified Mathlib/Data/Nat/Bits.lean Modified Mathlib/Data/Nat/Factorization/Basic.lean Modified Mathlib/Data/Nat/Factorization/PrimePow.lean Modified Mathlib/Data/Nat/Lattice.lean Modified Mathlib/Data/Nat/Nth.lean Modified Mathlib/Data/Nat/PartENat.lean Modified Mathlib/Data/Nat/Periodic.lean Modified Mathlib/Data/Nat/Prime/Basic.lean Modified Mathlib/Data/Nat/Prime/Defs.lean Modified Mathlib/Data/Nat/Squarefree.lean Modified Mathlib/Data/Nat/Totient.lean Modified Mathlib/Data/PEquiv.lean Modified Mathlib/Data/PFunctor/Univariate/M.lean Modified Mathlib/Data/Set/Basic.lean Modified Mathlib/Data/Set/Countable.lean Modified Mathlib/Data/Set/Pairwise/Basic.lean Modified Mathlib/Data/Set/Prod.lean Modified Mathlib/Data/Set/Sigma.lean +/- theorem Set.empty_sigma +/- theorem Set.sigma_empty +/- theorem Set.univ_sigma_univ Modified Mathlib/Data/Set/Subsingleton.lean Modified Mathlib/Data/Sym/Sym2.lean Modified Mathlib/Data/Vector3.lean Modified Mathlib/Data/ZMod/Basic.lean Modified Mathlib/FieldTheory/Cardinality.lean Modified Mathlib/FieldTheory/Finite/Basic.lean Modified Mathlib/FieldTheory/IsAlgClosed/Classification.lean Modified Mathlib/Geometry/Euclidean/Angle/Oriented/Affine.lean Modified Mathlib/Geometry/Euclidean/Basic.lean Modified Mathlib/Geometry/Euclidean/Circumcenter.lean Modified Mathlib/Geometry/Manifold/ContMDiff/Basic.lean Modified Mathlib/Geometry/Manifold/Instances/Real.lean Modified Mathlib/Geometry/Manifold/LocalInvariantProperties.lean Modified Mathlib/Geometry/Manifold/VectorBundle/FiberwiseLinear.lean Modified Mathlib/GroupTheory/CoprodI.lean Modified Mathlib/GroupTheory/DoubleCoset.lean Modified Mathlib/GroupTheory/FreeAbelianGroupFinsupp.lean Modified Mathlib/GroupTheory/Index.lean Modified Mathlib/GroupTheory/Nilpotent.lean Modified Mathlib/GroupTheory/Perm/Basic.lean Modified Mathlib/GroupTheory/Perm/Cycle/Factors.lean Modified Mathlib/GroupTheory/Perm/Sign.lean Modified Mathlib/GroupTheory/Perm/Support.lean Modified Mathlib/GroupTheory/SpecificGroups/Cyclic.lean Modified Mathlib/Init/Logic.lean - theorem not_or_of_not Modified Mathlib/LinearAlgebra/Basis/Cardinality.lean Modified Mathlib/LinearAlgebra/FinsuppVectorSpace.lean Modified Mathlib/LinearAlgebra/FreeModule/PID.lean Modified Mathlib/LinearAlgebra/Lagrange.lean Modified Mathlib/LinearAlgebra/LinearPMap.lean Modified Mathlib/LinearAlgebra/Matrix/Determinant/Basic.lean Modified Mathlib/LinearAlgebra/Matrix/Polynomial.lean Modified Mathlib/LinearAlgebra/Matrix/Transvection.lean Modified Mathlib/LinearAlgebra/Multilinear/Basic.lean Modified Mathlib/LinearAlgebra/Prod.lean Modified Mathlib/LinearAlgebra/Ray.lean Modified Mathlib/LinearAlgebra/TensorProduct/Basic.lean Modified Mathlib/Logic/Denumerable.lean Modified Mathlib/Logic/Equiv/Option.lean Modified Mathlib/MeasureTheory/Constructions/BorelSpace/Order.lean Modified Mathlib/MeasureTheory/Constructions/BorelSpace/Real.lean Modified Mathlib/MeasureTheory/Constructions/Prod/Integral.lean Modified Mathlib/MeasureTheory/Covering/Besicovitch.lean Modified Mathlib/MeasureTheory/Covering/BesicovitchVectorSpace.lean Modified Mathlib/MeasureTheory/Covering/DensityTheorem.lean Modified Mathlib/MeasureTheory/Covering/Differentiation.lean Modified Mathlib/MeasureTheory/Decomposition/SignedHahn.lean Modified Mathlib/MeasureTheory/Function/AEEqOfIntegral.lean Modified Mathlib/MeasureTheory/Function/ConditionalExpectation/Basic.lean Modified Mathlib/MeasureTheory/Function/ConditionalExpectation/CondexpL1.lean Modified Mathlib/MeasureTheory/Function/ContinuousMapDense.lean Modified Mathlib/MeasureTheory/Function/ConvergenceInMeasure.lean Modified Mathlib/MeasureTheory/Function/Jacobian.lean Modified Mathlib/MeasureTheory/Function/L1Space.lean Modified Mathlib/MeasureTheory/Function/LocallyIntegrable.lean Modified Mathlib/MeasureTheory/Function/LpSeminorm/Basic.lean Modified Mathlib/MeasureTheory/Function/LpSeminorm/ChebyshevMarkov.lean Modified Mathlib/MeasureTheory/Function/SimpleFunc.lean Modified Mathlib/MeasureTheory/Function/SimpleFuncDenseLp.lean Modified Mathlib/MeasureTheory/Function/StronglyMeasurable/Basic.lean Modified Mathlib/MeasureTheory/Function/UniformIntegrable.lean Modified Mathlib/MeasureTheory/Group/Measure.lean Modified Mathlib/MeasureTheory/Group/Prod.lean Modified Mathlib/MeasureTheory/Integral/Bochner.lean Modified Mathlib/MeasureTheory/Integral/FundThmCalculus.lean Modified Mathlib/MeasureTheory/Integral/IntegrableOn.lean Modified Mathlib/MeasureTheory/Integral/IntervalIntegral.lean Modified Mathlib/MeasureTheory/Integral/Layercake.lean Modified Mathlib/MeasureTheory/Integral/Lebesgue.lean Modified Mathlib/MeasureTheory/Integral/SetIntegral.lean Modified Mathlib/MeasureTheory/Integral/SetToL1.lean Modified Mathlib/MeasureTheory/Integral/VitaliCaratheodory.lean Modified Mathlib/MeasureTheory/Measure/AEMeasurable.lean Modified Mathlib/MeasureTheory/Measure/AddContent.lean Modified Mathlib/MeasureTheory/Measure/Haar/Basic.lean Modified Mathlib/MeasureTheory/Measure/Lebesgue/EqHaar.lean Modified Mathlib/MeasureTheory/Measure/MeasureSpace.lean Modified Mathlib/MeasureTheory/Measure/Regular.lean Modified Mathlib/MeasureTheory/Measure/Stieltjes.lean Modified Mathlib/MeasureTheory/Measure/WithDensity.lean Modified Mathlib/MeasureTheory/PiSystem.lean Modified Mathlib/MeasureTheory/SetSemiring.lean Modified Mathlib/ModelTheory/Encoding.lean Modified Mathlib/ModelTheory/Satisfiability.lean Modified Mathlib/ModelTheory/Semantics.lean Modified Mathlib/ModelTheory/Substructures.lean Modified Mathlib/ModelTheory/Syntax.lean Modified Mathlib/NumberTheory/ArithmeticFunction.lean Modified Mathlib/NumberTheory/Bernoulli.lean Modified Mathlib/NumberTheory/Divisors.lean Modified Mathlib/NumberTheory/LegendreSymbol/GaussEisensteinLemmas.lean Modified Mathlib/NumberTheory/LegendreSymbol/QuadraticChar/Basic.lean Modified Mathlib/NumberTheory/LegendreSymbol/QuadraticChar/GaussSum.lean Modified Mathlib/NumberTheory/MulChar/Basic.lean Modified Mathlib/NumberTheory/Multiplicity.lean Modified Mathlib/NumberTheory/Padics/PadicIntegers.lean Modified Mathlib/NumberTheory/Padics/PadicNorm.lean Modified Mathlib/NumberTheory/Pell.lean Modified Mathlib/NumberTheory/Zsqrtd/Basic.lean Modified Mathlib/Order/Bounds/Basic.lean Modified Mathlib/Order/CompactlyGenerated/Basic.lean Modified Mathlib/Order/Compare.lean Modified Mathlib/Order/Cover.lean Modified Mathlib/Order/Defs.lean Modified Mathlib/Order/Directed.lean Modified Mathlib/Order/Filter/AtTopBot.lean Modified Mathlib/Order/Filter/Bases.lean Modified Mathlib/Order/Filter/Basic.lean Modified Mathlib/Order/Filter/Lift.lean Modified Mathlib/Order/Filter/Pointwise.lean Modified Mathlib/Order/Filter/Prod.lean Modified Mathlib/Order/Fin/Tuple.lean Modified Mathlib/Order/InitialSeg.lean Modified Mathlib/Order/Interval/Finset/Basic.lean +/- theorem Finset.left_mem_Icc +/- theorem Finset.left_mem_Ico +/- theorem Finset.right_mem_Icc +/- theorem Finset.right_mem_Ioc Modified Mathlib/Order/Interval/Set/UnorderedInterval.lean Modified Mathlib/Order/LiminfLimsup.lean Modified Mathlib/Order/ModularLattice.lean Modified Mathlib/Order/RelClasses.lean Modified Mathlib/Order/SupIndep.lean Modified Mathlib/Order/WellFoundedSet.lean Modified Mathlib/Probability/Distributions/Uniform.lean Modified Mathlib/Probability/Kernel/Composition.lean Modified Mathlib/Probability/Kernel/Disintegration/CDFToKernel.lean Modified Mathlib/Probability/Kernel/IntegralCompProd.lean Modified Mathlib/Probability/Kernel/MeasurableIntegral.lean Modified Mathlib/Probability/Martingale/Convergence.lean Modified Mathlib/Probability/Martingale/OptionalSampling.lean Modified Mathlib/Probability/Martingale/Upcrossing.lean Modified Mathlib/Probability/Moments.lean Modified Mathlib/Probability/Process/HittingTime.lean Modified Mathlib/Probability/Process/Stopping.lean Modified Mathlib/Probability/StrongLaw.lean Modified Mathlib/Probability/Variance.lean Modified Mathlib/RingTheory/Algebraic.lean Modified Mathlib/RingTheory/Coprime/Ideal.lean Modified Mathlib/RingTheory/DedekindDomain/FiniteAdeleRing.lean Modified Mathlib/RingTheory/DedekindDomain/Ideal.lean Modified Mathlib/RingTheory/DedekindDomain/IntegralClosure.lean Modified Mathlib/RingTheory/DiscreteValuationRing/Basic.lean Modified Mathlib/RingTheory/HahnSeries/Multiplication.lean Modified Mathlib/RingTheory/HahnSeries/Summable.lean Modified Mathlib/RingTheory/Ideal/AssociatedPrime.lean Modified Mathlib/RingTheory/Ideal/Operations.lean Modified Mathlib/RingTheory/Jacobson.lean Modified Mathlib/RingTheory/LocalRing/Basic.lean Modified Mathlib/RingTheory/Localization/AtPrime.lean Modified Mathlib/RingTheory/Multiplicity.lean Modified Mathlib/RingTheory/MvPolynomial/Ideal.lean Modified Mathlib/RingTheory/MvPolynomial/Tower.lean Modified Mathlib/RingTheory/MvPowerSeries/Basic.lean Modified Mathlib/RingTheory/Polynomial/Basic.lean Modified Mathlib/RingTheory/Polynomial/Cyclotomic/Eval.lean Modified Mathlib/RingTheory/Polynomial/Dickson.lean Modified Mathlib/RingTheory/Polynomial/Selmer.lean Modified Mathlib/RingTheory/Polynomial/Tower.lean Modified Mathlib/RingTheory/RootsOfUnity/Basic.lean Modified Mathlib/RingTheory/UniqueFactorizationDomain.lean Modified Mathlib/RingTheory/WittVector/MulCoeff.lean Modified Mathlib/RingTheory/WittVector/StructurePolynomial.lean Modified Mathlib/RingTheory/WittVector/WittPolynomial.lean Modified Mathlib/SetTheory/Cardinal/Basic.lean Modified Mathlib/SetTheory/Cardinal/Divisibility.lean Modified Mathlib/SetTheory/Ordinal/Arithmetic.lean Modified Mathlib/SetTheory/Ordinal/Notation.lean Modified Mathlib/SetTheory/Ordinal/Principal.lean Modified Mathlib/SetTheory/ZFC/Basic.lean Modified Mathlib/Tactic/CC/Lemmas.lean Modified Mathlib/Testing/SlimCheck/Functions.lean Modified Mathlib/Topology/Algebra/Field.lean Modified Mathlib/Topology/Algebra/Valued/NormedValued.lean Modified Mathlib/Topology/Algebra/Valued/ValuedField.lean Modified Mathlib/Topology/Basic.lean Modified Mathlib/Topology/Bornology/Constructions.lean Modified Mathlib/Topology/Category/Compactum.lean Modified Mathlib/Topology/Category/TopCat/Limits/Konig.lean Modified Mathlib/Topology/Compactness/Compact.lean Modified Mathlib/Topology/Connected/Basic.lean Modified Mathlib/Topology/Constructions.lean Modified Mathlib/Topology/ContinuousOn.lean Modified Mathlib/Topology/EMetricSpace/Defs.lean Modified Mathlib/Topology/EMetricSpace/Diam.lean Modified Mathlib/Topology/FiberBundle/Basic.lean Modified Mathlib/Topology/FiberBundle/Constructions.lean Modified Mathlib/Topology/FiberBundle/Trivialization.lean Modified Mathlib/Topology/Instances/ENNReal.lean Modified Mathlib/Topology/Maps/Basic.lean Modified Mathlib/Topology/MetricSpace/Completion.lean Modified Mathlib/Topology/MetricSpace/GromovHausdorff.lean Modified Mathlib/Topology/MetricSpace/PiNat.lean Modified Mathlib/Topology/MetricSpace/Pseudo/Defs.lean Modified Mathlib/Topology/Metrizable/Uniformity.lean Modified Mathlib/Topology/Order/IntermediateValue.lean Modified Mathlib/Topology/PartialHomeomorph.lean Modified Mathlib/Topology/Sober.lean Modified Mathlib/Topology/StoneCech.lean Modified Mathlib/Topology/UniformSpace/Cauchy.lean Modified Mathlib/Topology/UniformSpace/UniformConvergence.lean 2024-09-12 09:56:59 97fb621 chore: split Analysis.ContDiff.Defs into two files (#16720) The first file contains everything about iterated derivatives and Taylor series, the second one introduces the predicates `ContDiff` and friends. No statement added or erased, just moving around. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Analysis/Calculus/ContDiff/Defs.lean - theorem Filter.EventuallyEq.iteratedFDerivWithin' - theorem Filter.EventuallyEq.iteratedFDerivWithin_eq - theorem HasCompactSupport.iteratedFDeriv - theorem HasFTaylorSeriesUpTo.continuous - theorem HasFTaylorSeriesUpTo.differentiable - theorem HasFTaylorSeriesUpTo.eq_iteratedFDeriv - theorem HasFTaylorSeriesUpTo.hasFDerivAt - theorem HasFTaylorSeriesUpTo.hasFTaylorSeriesUpToOn - theorem HasFTaylorSeriesUpTo.ofLe - theorem HasFTaylorSeriesUpTo.zero_eq' - structure HasFTaylorSeriesUpTo - theorem HasFTaylorSeriesUpToOn.congr - theorem HasFTaylorSeriesUpToOn.continuousOn - theorem HasFTaylorSeriesUpToOn.differentiableAt - theorem HasFTaylorSeriesUpToOn.differentiableOn - theorem HasFTaylorSeriesUpToOn.eq_iteratedFDerivWithin_of_uniqueDiffOn - theorem HasFTaylorSeriesUpToOn.eventually_hasFDerivAt - theorem HasFTaylorSeriesUpToOn.hasFDerivAt - theorem HasFTaylorSeriesUpToOn.hasFDerivWithinAt - theorem HasFTaylorSeriesUpToOn.mono - theorem HasFTaylorSeriesUpToOn.of_le - theorem HasFTaylorSeriesUpToOn.shift_of_succ - theorem HasFTaylorSeriesUpToOn.zero_eq' - structure HasFTaylorSeriesUpToOn - theorem fderivWithin_iteratedFDerivWithin - theorem fderiv_iteratedFDeriv - def ftaylorSeries - def ftaylorSeriesWithin - theorem ftaylorSeriesWithin_univ - theorem hasFTaylorSeriesUpToOn_succ_iff_left - theorem hasFTaylorSeriesUpToOn_succ_iff_right - theorem hasFTaylorSeriesUpToOn_top_iff' - theorem hasFTaylorSeriesUpToOn_top_iff - theorem hasFTaylorSeriesUpToOn_univ_iff - theorem hasFTaylorSeriesUpToOn_zero_iff - theorem hasFTaylorSeriesUpTo_succ_iff_right - theorem hasFTaylorSeriesUpTo_top_iff' - theorem hasFTaylorSeriesUpTo_top_iff - theorem hasFTaylorSeriesUpTo_zero_iff - theorem iteratedFDerivWithin_congr - theorem iteratedFDerivWithin_congr_set - theorem iteratedFDerivWithin_eventually_congr_set' - theorem iteratedFDerivWithin_eventually_congr_set - theorem iteratedFDerivWithin_inter' - theorem iteratedFDerivWithin_inter - theorem iteratedFDerivWithin_inter_open - theorem iteratedFDerivWithin_of_isOpen - theorem iteratedFDerivWithin_one_apply - theorem iteratedFDerivWithin_succ_apply_left - theorem iteratedFDerivWithin_succ_apply_right - theorem iteratedFDerivWithin_succ_eq_comp_left - theorem iteratedFDerivWithin_succ_eq_comp_right - theorem iteratedFDerivWithin_two_apply - theorem iteratedFDerivWithin_univ - theorem iteratedFDerivWithin_zero_apply - theorem iteratedFDerivWithin_zero_eq - theorem iteratedFDerivWithin_zero_eq_comp - theorem iteratedFDeriv_one_apply - theorem iteratedFDeriv_succ_apply_left - theorem iteratedFDeriv_succ_apply_right - theorem iteratedFDeriv_succ_eq_comp_left - theorem iteratedFDeriv_succ_eq_comp_right - theorem iteratedFDeriv_two_apply - theorem iteratedFDeriv_zero_apply - theorem iteratedFDeriv_zero_eq_comp - theorem norm_fderivWithin_iteratedFDerivWithin - theorem norm_fderiv_iteratedFDeriv - theorem norm_iteratedFDerivWithin_fderivWithin - theorem norm_iteratedFDerivWithin_zero - theorem norm_iteratedFDeriv_fderiv - theorem norm_iteratedFDeriv_zero - theorem support_iteratedFDeriv_subset - theorem tsupport_iteratedFDeriv_subset Added Mathlib/Analysis/Calculus/ContDiff/FTaylorSeries.lean + theorem Filter.EventuallyEq.iteratedFDerivWithin' + theorem Filter.EventuallyEq.iteratedFDerivWithin_eq + theorem HasCompactSupport.iteratedFDeriv + theorem HasFTaylorSeriesUpTo.continuous + theorem HasFTaylorSeriesUpTo.differentiable + theorem HasFTaylorSeriesUpTo.eq_iteratedFDeriv + theorem HasFTaylorSeriesUpTo.hasFDerivAt + theorem HasFTaylorSeriesUpTo.hasFTaylorSeriesUpToOn + theorem HasFTaylorSeriesUpTo.ofLe + theorem HasFTaylorSeriesUpTo.zero_eq' + structure HasFTaylorSeriesUpTo + theorem HasFTaylorSeriesUpToOn.congr + theorem HasFTaylorSeriesUpToOn.continuousOn + theorem HasFTaylorSeriesUpToOn.differentiableAt + theorem HasFTaylorSeriesUpToOn.differentiableOn + theorem HasFTaylorSeriesUpToOn.eq_iteratedFDerivWithin_of_uniqueDiffOn + theorem HasFTaylorSeriesUpToOn.eventually_hasFDerivAt + theorem HasFTaylorSeriesUpToOn.hasFDerivAt + theorem HasFTaylorSeriesUpToOn.hasFDerivWithinAt + theorem HasFTaylorSeriesUpToOn.mono + theorem HasFTaylorSeriesUpToOn.of_le + theorem HasFTaylorSeriesUpToOn.shift_of_succ + theorem HasFTaylorSeriesUpToOn.zero_eq' + structure HasFTaylorSeriesUpToOn + theorem fderivWithin_iteratedFDerivWithin + theorem fderiv_iteratedFDeriv + def ftaylorSeries + def ftaylorSeriesWithin + theorem ftaylorSeriesWithin_univ + theorem hasFTaylorSeriesUpToOn_succ_iff_left + theorem hasFTaylorSeriesUpToOn_succ_iff_right + theorem hasFTaylorSeriesUpToOn_top_iff' + theorem hasFTaylorSeriesUpToOn_top_iff + theorem hasFTaylorSeriesUpToOn_univ_iff + theorem hasFTaylorSeriesUpToOn_zero_iff + theorem hasFTaylorSeriesUpTo_succ_iff_right + theorem hasFTaylorSeriesUpTo_top_iff' + theorem hasFTaylorSeriesUpTo_top_iff + theorem hasFTaylorSeriesUpTo_zero_iff + theorem iteratedFDerivWithin_congr + theorem iteratedFDerivWithin_congr_set + theorem iteratedFDerivWithin_eventually_congr_set' + theorem iteratedFDerivWithin_eventually_congr_set + theorem iteratedFDerivWithin_inter' + theorem iteratedFDerivWithin_inter + theorem iteratedFDerivWithin_inter_open + theorem iteratedFDerivWithin_of_isOpen + theorem iteratedFDerivWithin_one_apply + theorem iteratedFDerivWithin_succ_apply_left + theorem iteratedFDerivWithin_succ_apply_right + theorem iteratedFDerivWithin_succ_eq_comp_left + theorem iteratedFDerivWithin_succ_eq_comp_right + theorem iteratedFDerivWithin_two_apply + theorem iteratedFDerivWithin_univ + theorem iteratedFDerivWithin_zero_apply + theorem iteratedFDerivWithin_zero_eq + theorem iteratedFDerivWithin_zero_eq_comp + theorem iteratedFDeriv_one_apply + theorem iteratedFDeriv_succ_apply_left + theorem iteratedFDeriv_succ_apply_right + theorem iteratedFDeriv_succ_eq_comp_left + theorem iteratedFDeriv_succ_eq_comp_right + theorem iteratedFDeriv_two_apply + theorem iteratedFDeriv_zero_apply + theorem iteratedFDeriv_zero_eq_comp + theorem norm_fderivWithin_iteratedFDerivWithin + theorem norm_fderiv_iteratedFDeriv + theorem norm_iteratedFDerivWithin_fderivWithin + theorem norm_iteratedFDerivWithin_zero + theorem norm_iteratedFDeriv_fderiv + theorem norm_iteratedFDeriv_zero + theorem support_iteratedFDeriv_subset + theorem tsupport_iteratedFDeriv_subset 2024-09-12 09:29:03 a709017 feat(Algebra/OpenSubgroup): quotient of compact group by open subgroup is finite (#16671) Shows that the quotient of a compact topological group by an open subgroup is finite. ESTIMATED CHANGES Modified Mathlib/Topology/Algebra/Group/Basic.lean Modified Mathlib/Topology/Algebra/OpenSubgroup.lean + theorem Subgroup.discreteTopology + theorem Subgroup.isClosed_of_isOpen + theorem Subgroup.quotient_finite_of_isOpen' + theorem Subgroup.quotient_finite_of_isOpen + theorem Subgroup.subgroupOf_isOpen 2024-09-12 09:29:02 317d5fd feat(CategoryTheory/Monoidal): string diagram command (#15929) Add the `#string_diagram` command. For example, ```lean #string_diagram MonoidalCategory.whisker_exchange ``` displays the string diagram for the exchange law of the left and right whiskerings, and ```lean variable {C : Type u} [Category.{v} C] [MonoidalCategory.{v} C] [BraidedCategory.{v} C] (X Y : C) in #string_diagram (β_ X Y).hom ``` displays the string diagram for the braiding when importing the braided category file. ESTIMATED CHANGES Modified Mathlib/Tactic/CategoryTheory/Monoidal.lean Modified Mathlib/Tactic/Widget/StringDiagram.lean + def Mathlib.Tactic.Widget.StringDiagram.elabStringDiagramCmd Modified test/StringDiagram.lean 2024-09-12 08:50:07 2c64747 feat(Data/Nat/Bitwise): more symmetric statement of `Nat.xor_trichotomy` (#16693) We state `Nat.xor_trichotomy` in a more symmetric form. We golf most of the proof and change most `simp` to `rw`. Note that this makes the proof of `lt_xor_cases` (which is useful in the current form for Sprague-Grundy) slightly longer. ESTIMATED CHANGES Modified Mathlib/Data/Nat/Bitwise.lean +/- theorem Nat.lt_xor_cases +/- theorem Nat.xor_trichotomy 2024-09-12 08:03:53 b589cdd chore: include LeanSearchClient in the cache (#16717) ESTIMATED CHANGES Modified Cache/IO.lean 2024-09-12 07:15:29 002afcf feat: `Small.{u}` sets are closed under various operations (#11126) This PR adds lemmas showing that sets constructed by applying basic set operations to small sets are themselves small. We now have corresponding `Small ↥s` versions of almost all of the `Finite ↥s` instances in the `Finite.Set` namespace. ESTIMATED CHANGES Modified Mathlib/Logic/Small/Basic.lean Modified Mathlib/Logic/Small/Set.lean + theorem small_biInter + theorem small_empty + theorem small_iInter + theorem small_pair + theorem small_sInter + theorem small_single +/- theorem small_subset 2024-09-12 06:16:12 7eb3f52 feat: generalize Module.Free.ChooseBasisIndex.fintype and Module.Finite.matrix to semirings (#16700) ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/FreeModule/Finite/Basic.lean 2024-09-12 06:16:11 06a043e feat(Combinatorics/Configuration): Projective planes over fields (#16684) This PR constructs projective planes over fields (in particular, finite projective planes). ESTIMATED CHANGES Modified Mathlib/Combinatorics/Configuration.lean + theorem Configuration.ofField.crossProduct_eq_zero_of_dotProduct_eq_zero + theorem Configuration.ofField.eq_or_eq_of_orthogonal + theorem Configuration.ofField.mem_iff Modified Mathlib/Data/Matrix/Rank.lean + theorem LinearIndependent.rank_matrix + theorem Matrix.rank_add_rank_le_card_of_mul_eq_zero 2024-09-12 06:16:10 25ed326 chore: remove some unnecessary `have`s (#16659) drive-by: convert some `convert` into `exact`. ESTIMATED CHANGES Modified Mathlib/Analysis/Calculus/ContDiff/Basic.lean Modified Mathlib/Analysis/Calculus/ContDiff/Defs.lean Modified Mathlib/Analysis/InnerProductSpace/Orthogonal.lean Modified Mathlib/Analysis/InnerProductSpace/Projection.lean Modified Mathlib/CategoryTheory/Groupoid/Subgroupoid.lean Modified Mathlib/CategoryTheory/Monoidal/Internal/Module.lean Modified Mathlib/Data/Real/GoldenRatio.lean Modified Mathlib/FieldTheory/IsAlgClosed/AlgebraicClosure.lean Modified Mathlib/LinearAlgebra/LinearIndependent.lean Modified Mathlib/MeasureTheory/Constructions/Pi.lean Modified Mathlib/MeasureTheory/Measure/ProbabilityMeasure.lean Modified Mathlib/NumberTheory/PythagoreanTriples.lean Modified Mathlib/Order/Interval/Set/SurjOn.lean Modified Mathlib/RingTheory/FinitePresentation.lean Modified Mathlib/SetTheory/Ordinal/Notation.lean Modified Mathlib/Topology/Algebra/Module/Basic.lean Modified Mathlib/Topology/Algebra/UniformConvergence.lean Modified test/ProdAssoc.lean 2024-09-12 06:16:09 381b26a feat(Order/SuccPred/Limit): `IsSuccLimit` (#16499) The matter of whether `0` is or not a limit element (of the ordinals/cardinals) is a highly contentious one. To bridge this gap, we redefine `IsSuccLimit` so as to explicitly exclude minimal elements. A previous PR had already renamed the weaker notion to `IsSuccPrelimit`. Future PRs will introduce the usual limit induction principles, and deprecate `Cardinal.IsLimit` and `Ordinal.IsLimit`. ESTIMATED CHANGES Modified Mathlib/Order/SuccPred/Basic.lean + theorem Order.not_isMax_pred + theorem Order.not_isMin_succ Modified Mathlib/Order/SuccPred/Limit.lean + theorem Order.IsPredLimit.lt_pred + theorem Order.IsPredLimit.lt_pred_iff + theorem Order.IsPredLimit.ne_top + theorem Order.IsPredLimit.pred_ne + def Order.IsPredLimit + theorem Order.IsPredPrelimit.isMax_of_noMin + theorem Order.IsPredPrelimit.isPredLimit + theorem Order.IsPredPrelimit.isPredLimit_of_not_isMax +/- theorem Order.IsPredPrelimit.lt_pred +/- theorem Order.IsPredPrelimit.lt_pred_iff +/- theorem Order.IsPredPrelimit.pred_ne + theorem Order.IsSuccLimit.ne_bot + theorem Order.IsSuccLimit.succ_lt + theorem Order.IsSuccLimit.succ_lt_iff + theorem Order.IsSuccLimit.succ_ne + def Order.IsSuccLimit +/- theorem Order.IsSuccPrelimit.isMin_of_noMax + theorem Order.IsSuccPrelimit.isSuccLimit + theorem Order.IsSuccPrelimit.isSuccLimit_of_not_isMin + theorem Order.isPredLimit_iff + theorem Order.isPredLimit_toDual_iff + theorem Order.isPredPrelimit_iff_isPredLimit + theorem Order.isPredPrelimit_iff_isPredLimit_of_not_isMax +/- theorem Order.isPredPrelimit_iff_lt_pred +/- theorem Order.isPredPrelimit_iff_of_noMin + theorem Order.isPredPrelimit_iff_pred_ne +/- theorem Order.isPredPrelimit_of_pred_lt + theorem Order.isSuccLimit_iff + theorem Order.isSuccLimit_toDual_iff + theorem Order.isSuccPrelimit_iff_isSuccLimit + theorem Order.isSuccPrelimit_iff_isSuccLimit_of_not_isMin +/- theorem Order.isSuccPrelimit_iff_of_noMax +/- theorem Order.mem_range_pred_of_not_isPredPrelimit +/- theorem Order.mem_range_pred_or_isPredPrelimit +/- theorem Order.mem_range_succ_of_not_isSuccPrelimit +/- theorem Order.mem_range_succ_or_isSuccPrelimit + theorem Order.not_isPredLimit + theorem Order.not_isPredLimit_iff + theorem Order.not_isPredLimit_of_noMin + theorem Order.not_isPredLimit_of_not_isPredPrelimit + theorem Order.not_isPredLimit_pred + theorem Order.not_isPredLimit_pred_of_not_isMin + theorem Order.not_isPredLimit_top +/- theorem Order.not_isPredPrelimit + theorem Order.not_isPredPrelimit_iff' +/- theorem Order.not_isPredPrelimit_iff +/- theorem Order.not_isPredPrelimit_of_noMin +/- theorem Order.not_isPredPrelimit_pred +/- theorem Order.not_isPredPrelimit_pred_of_not_isMin + theorem Order.not_isSuccLimit + theorem Order.not_isSuccLimit_bot + theorem Order.not_isSuccLimit_iff + theorem Order.not_isSuccLimit_of_noMax + theorem Order.not_isSuccLimit_succ + theorem Order.not_isSuccLimit_succ_of_not_isMax +/- theorem Order.not_isSuccPrelimit +/- theorem Order.not_isSuccPrelimit_iff' +/- theorem Order.not_isSuccPrelimit_iff +/- theorem Order.not_isSuccPrelimit_of_noMax +/- theorem Order.not_isSuccPrelimit_succ_of_not_isMax Modified Mathlib/SetTheory/Cardinal/Basic.lean Modified Mathlib/SetTheory/Ordinal/Arithmetic.lean 2024-09-12 06:16:07 bb2f2f9 feat: improve `subst_hom_lift` macro (#16304) Previously this macro was defined in a very naive way, and only took idents as arguments. Now it can handle more complicated arguments, e.g. if the function `f` is of the form `F.map g` for some functor `F` ESTIMATED CHANGES Modified Mathlib/CategoryTheory/FiberedCategory/HomLift.lean Added test/CategoryTheory/SubstHomLift.lean 2024-09-12 05:45:27 05bd9c4 chore(SetTheory/Ordinal/Arithmetic): hide implementation details (#16703) We private some lemmas which expose implementation details of functions. ESTIMATED CHANGES Modified Mathlib/SetTheory/Ordinal/Arithmetic.lean - theorem Ordinal.div_def - theorem Ordinal.div_nonempty - theorem Ordinal.sub_nonempty Modified Mathlib/SetTheory/Ordinal/NaturalOps.lean - theorem Ordinal.nmul_nonempty 2024-09-12 05:45:26 6bdc363 feat(SetTheory/Ordinal/Basic): prove linear order instance earlier (#16401) We show that for any two well-orders, one is an initial segment of the other, without relying on ordinal addition or anything of the sort. By doing this, we can move the `LinearOrder` instance on ordinals right next to the partial order one. ESTIMATED CHANGES Modified Mathlib/Order/InitialSeg.lean +/- theorem InitialSeg.leLT_apply +/- theorem InitialSeg.ltOrEq_apply_left +/- theorem InitialSeg.ltOrEq_apply_right Modified Mathlib/SetTheory/Ordinal/Basic.lean 2024-09-12 05:36:25 7e96235 feat(Algebra/Order/Archimedean/Submonoid): `SubmonoidClass.instMulArchimedean` (#16430) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Order/Archimedean/Submonoid.lean 2024-09-12 04:36:36 086be1c feat: catch non-zero exit code from print-style-output (#16709) This would have caught #16699 earlier. ESTIMATED CHANGES Modified Mathlib/Tactic/Linter/TextBased.lean 2024-09-12 04:36:35 40052ab feat: #leansearch command (#16695) We add a dependenct to `LeanSearchClient`, which provides syntax for search using the [leansearch API](https://leansearch.net/) from within Lean. This allows search for Lean tactics and theorems using natural language. LeanSearchClient provide syntax to make a query and generate `TryThis` options to click or use a code action to use the results. The queries are of three forms: * `Command` syntax: `#leansearch "search query"` as a command. * `Term` syntax: `#leansearch "search query"` as a term. * `Tactic` syntax: `#leansearch "search query"` as a tactic. In all cases results are displayed in the Lean Infoview and clicking these replaces the query text. In the cases of a query for tact ics only valid tactics are displayed. ## Examples The following are examples of using the leansearch API. The search is triggered when the sentence ends with a full stop (period) or a question mark. ### Query Command ```lean #leansearch "If a natural number n is less than m, then the successor of n is less than the successor of m" ``` ### Query Term ```lean example := #leansearch "If a natural number n is less than m, then the successor of n is less than the successor of m" ``` ### Query Tactic Note that only valid tactics are displayed. ```lean example : 3 ≤ 5 := by #leansearch "If a natural number n is less than m, then the successor of n is less than the successor of m" ``` ESTIMATED CHANGES Modified Mathlib/Tactic/Common.lean Modified lake-manifest.json Modified lakefile.lean 2024-09-12 03:40:10 d813c09 chore: deprecate all but `IsSymmOp` in `Init.Algebra.Classes` (#16698) * Remove commented-out code and the deprecations from February. * Deprecate `IsLeftCancel` and `IsRightCancel` as they are only used for two instances, both in `Logic.Equiv`. * Update and clean up the module header to reflect all this. Only `IsSymmOp` is left undeprecated now. ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Defs.lean Modified Mathlib/Init/Algebra/Classes.lean Modified Mathlib/Logic/Equiv/Basic.lean Modified scripts/nolints.json 2024-09-12 01:45:50 b9bbf9b chore: namespace `rsuffices` (#16708) `rsuffices` should be globally available as a tactic, but having it available as an un-namespaced term of type `ParserDescr` is silly. ESTIMATED CHANGES Modified Mathlib/Tactic/RSuffices.lean 2024-09-11 20:04:33 216c754 chore: update Mathlib dependencies 2024-09-11 (#16714) This PR updates the Mathlib dependencies. ESTIMATED CHANGES Modified lake-manifest.json 2024-09-11 18:10:19 d1657b5 fix: please the long line linter in check-yaml (#16697) The new long line linter reaches into `scripts.check-yaml` as well and emits a warning. It is innocuous, but the fix is also easy! ESTIMATED CHANGES Modified scripts/check-yaml.lean +/- def databases 2024-09-11 15:57:50 0c868b6 feat(Lie): make `CommutatorRing` a `NonUnitalNonAssocRing` (#16702) This PR makes `CommutatorRing` a `NonUnitalNonAssocRing`, instead of just a `NonUnitalNonAssocSemiring` ESTIMATED CHANGES Modified Mathlib/Algebra/Lie/NonUnitalNonAssocAlgebra.lean 2024-09-11 15:57:49 d6fe193 feat(Data/Set/Finite): added lemmas about cardinality of finite sets (#15652) Added some lemmas in preparation for Tuttes theorem ESTIMATED CHANGES Modified Mathlib/Data/Set/Card.lean + theorem Set.even_card_insert_iff + theorem Set.odd_card_insert_iff + theorem Set.one_lt_ncard_of_nonempty_of_even 2024-09-11 15:20:58 ef7e491 feat(GroupTheory/GroupAction/Quotient): `equivSubgroupOrbitsQuotientGroup` (#15506) Add the equivalence: ```lean /-- Given a group acting freely and transitively, an equivalence between the orbits under the action of a subgroup and the quotient group. -/ @[to_additive "Given an additive group acting freely and transitively, an equivalence between the orbits under the action of an additive subgroup and the quotient group."] noncomputable def equivSubgroupOrbitsQuotientGroup [IsPretransitive α β] (free : ∀ y : β, MulAction.stabilizer α y = ⊥) (H : Subgroup α) : orbitRel.Quotient H β ≃ α ⧸ H where ``` (note: this equivalence is parametrized by the `variable (x : β)` defined earlier in the file). From AperiodicMonotilesLean. ESTIMATED CHANGES Modified Mathlib/GroupTheory/GroupAction/Quotient.lean 2024-09-11 14:35:29 5d603d7 feat(Algebra/BigOperators/Associated): add lemma divisor_closure_eq_closure (#11888) We add `divisor_closure_eq_closure`: Let x, y be elements of a `CancelCommMonoidWithZero`. If x * y can be written as a product of units and prime elements, then x can be written as a product of units and prime elements. We later use `divisor_closure_eq_closure` to prove Kaplansky's criterion (which we plan to add in a future PR). ESTIMATED CHANGES Modified Mathlib/Algebra/BigOperators/Associated.lean + theorem divisor_closure_eq_closure 2024-09-11 12:15:23 ef71a8c feat(Algebra/Polynomial/Derivation): coefficient-wise derivation on a polynomial (#14702) Define `Derivation.coeffwise`, which applies the derivation to the a polynomial coefficient-wise. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/RingTheory/Derivation/MapCoeffs.lean + theorem Derivation.apply_aeval_eq' + theorem Derivation.apply_aeval_eq + theorem Derivation.apply_eval_eq + def Derivation.mapCoeffs + theorem Derivation.mapCoeffs_C + theorem Derivation.mapCoeffs_X + theorem Derivation.mapCoeffs_apply + theorem Derivation.mapCoeffs_monomial 2024-09-11 09:59:35 53d5e93 fix: make print-style-errors.sh robust against file names with quotes (#16699) Notably, any file after Mathlib/Tactic/LinearCombination'.lean in the find output was not linted. ESTIMATED CHANGES Modified scripts/print-style-errors.sh 2024-09-11 05:42:31 4b83244 chore: deprecate `dif_ctx_congr`, move `if_(ctx_)congr` (#16692) The few uses of `dif_ctx_congr` can all be replaced without increasing the line count. The other two `ite` congruence lemmas are moved to `Logic.Basic`. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Preadditive/Mat.lean Modified Mathlib/FieldTheory/Minpoly/Basic.lean Modified Mathlib/Init/Logic.lean - theorem if_congr - theorem if_ctx_congr Modified Mathlib/Logic/Basic.lean + theorem if_congr + theorem if_ctx_congr Modified Mathlib/RingTheory/Coprime/Ideal.lean 2024-09-11 04:48:03 0e1a0b8 chore: remove variables from LinearAlgebra.FreeModule.Finite.Basic (#16662) The current setup with an unused variable (N) and one theorem overriding the ambient variables, as well as a namespace that's explicitly overridden in two of the three results within it, is confusing. It is clearer to explicitly spell out the arguments to each declaration. ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/FreeModule/Finite/Basic.lean +/- theorem Module.Finite.of_basis 2024-09-11 04:48:01 82ae4e3 feat: MonoidHom.div_mem_ker_iff (#16642) ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Subgroup/Basic.lean + theorem MonoidHom.div_mem_ker_iff 2024-09-11 04:48:00 202f489 feat(Algebra/BigOperators): product of MulHom over nonempty multisets (#16602) ESTIMATED CHANGES Modified Mathlib/Algebra/BigOperators/Group/Multiset.lean + theorem Multiset.prod_hom_ne_zero + theorem Multiset.prod_hom₂_ne_zero + theorem map_multiset_ne_zero_prod 2024-09-11 04:47:59 d46e364 feat(FieldTheory/{SeparableDegree|PurelyInseparable}): generalize some results on purely inseparable extension to non-commutative case (#16585) - generalize the result on separable degree of minpoly to non-commutative case - generalize the definition and basic property of purely inseparable extension to non-commutative case This PR is potentially usable in #16525. ESTIMATED CHANGES Modified Mathlib/FieldTheory/PurelyInseparable.lean +/- theorem Algebra.IsAlgebraic.isPurelyInseparable_of_isSepClosed +/- theorem IntermediateField.eq_bot_of_isPurelyInseparable_of_isSeparable +/- theorem IsPurelyInseparable.isAlgebraic +/- theorem IsPurelyInseparable.pow_mem + theorem Subalgebra.eq_bot_of_isPurelyInseparable_of_isSeparable +/- theorem isPurelyInseparable_iff_pow_mem +/- theorem separableClosure.eq_bot_iff +/- theorem separableClosure.eq_bot_of_isPurelyInseparable Modified Mathlib/FieldTheory/SeparableDegree.lean 2024-09-11 03:54:01 e992840 chore: move `ExistsUnique`, `Xor'` out of `Init.Logic` (#16691) As well as deprecate another unused lemma. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Data/Bool/Basic.lean Modified Mathlib/Data/Vector3.lean Modified Mathlib/Init/Logic.lean - theorem ExistsUnique.elim - theorem ExistsUnique.exists - theorem ExistsUnique.intro - theorem ExistsUnique.unique - def ExistsUnique - def Mathlib.Notation.isExplicitBinderSingular - def Mathlib.Notation.unexpandExistsUnique - def Xor' - theorem existsUnique_congr - theorem exists_unique_of_exists_of_unique Modified Mathlib/Logic/Basic.lean - theorem ExistsUnique.elim₂ - theorem ExistsUnique.exists₂ - theorem ExistsUnique.intro₂ - theorem ExistsUnique.unique₂ + def Xor' - theorem exists_unique_const - theorem exists_unique_eq' - theorem exists_unique_eq - theorem exists_unique_false - theorem exists_unique_iff_exists - theorem exists_unique_prop - theorem exists_unique_prop_of_true Added Mathlib/Logic/ExistsUnique.lean + theorem ExistsUnique.elim + theorem ExistsUnique.elim₂ + theorem ExistsUnique.exists + theorem ExistsUnique.exists₂ + theorem ExistsUnique.intro + theorem ExistsUnique.intro₂ + theorem ExistsUnique.unique + theorem ExistsUnique.unique₂ + def ExistsUnique + def Mathlib.Notation.isExplicitBinderSingular + def Mathlib.Notation.unexpandExistsUnique + theorem existsUnique_congr + theorem exists_unique_const + theorem exists_unique_eq' + theorem exists_unique_eq + theorem exists_unique_false + theorem exists_unique_iff_exists + theorem exists_unique_of_exists_of_unique + theorem exists_unique_prop + theorem exists_unique_prop_of_true Modified Mathlib/Logic/Function/Basic.lean Modified Mathlib/Tactic/ITauto.lean Modified scripts/nolints.json Modified scripts/noshake.json 2024-09-11 03:54:00 cb6040d feat(ModelTheory/Satisfiability): Fix universe on ModelsBoundedFormula, derive consequences for models in all universes (#16676) Redefines `ModelsBoundedFormula` to require a formula to be true in all models of a higher universe Derives that `ModelsBoundedFormula` implies a formula is true in models in all universes from properties of satisfiability (ultimately derived from Löwenheim-Skolem) ESTIMATED CHANGES Modified Mathlib/ModelTheory/Satisfiability.lean + theorem FirstOrder.Language.Theory.ModelsBoundedFormula.realize_boundedFormula + theorem FirstOrder.Language.Theory.ModelsBoundedFormula.realize_formula + theorem FirstOrder.Language.Theory.SemanticallyEquivalent.models_sentence_iff +/- theorem FirstOrder.Language.Theory.SemanticallyEquivalent.realize_bd_iff +/- theorem FirstOrder.Language.Theory.SemanticallyEquivalent.realize_iff + theorem FirstOrder.Language.Theory.models_formula_iff_onTheory_models_equivSentence + theorem FirstOrder.Language.Theory.models_toFormula_iff 2024-09-11 03:53:58 00efa9f feat(Filter/Prod): add `comap_prodMap_prod` (#16564) ESTIMATED CHANGES Modified Mathlib/Order/Filter/Prod.lean + theorem Filter.comap_prodMap_prod + theorem Filter.prod_eq_inf 2024-09-11 03:05:12 720235a Revert "perf: synth order of `SMul` hierarchy (#16646)" (#16689) This reverts commit 0c4fb559fa78d288beb01e7b550e376d709c1dd4 from #16646, per suggestion at https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/Ways.20to.20speed.20up.20Mathlib/near/469226699. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Algebra/Defs.lean Modified Mathlib/Algebra/Group/Action/Defs.lean Modified Mathlib/Algebra/GroupWithZero/Action/Defs.lean Modified Mathlib/Algebra/Module/Defs.lean Modified Mathlib/Algebra/Ring/Action/Basic.lean Modified Mathlib/Algebra/SMulWithZero.lean Modified Mathlib/Analysis/Normed/Module/Basic.lean Modified Mathlib/RingTheory/Bialgebra/Basic.lean Deleted Mathlib/Util/SetSynthOrder.lean - def Lean.Meta.Instances.setSynthOrder Modified scripts/noshake.json 2024-09-11 02:46:49 2312300 chore: make inner product notation `⟪x, y⟫_𝕜` scoped in namespace `InnerProductSpace` (#16672) There is a conflict between the [Lean-3-style notation `⟪x, y⟫_𝕜` for inner product](https://github.com/leanprover-community/mathlib4/blob/2eb00cae7edccf4e54238db2cb4b0a7dff59fbdd/Mathlib/Analysis/InnerProductSpace/Basic.lean#L85) and the (Lean 4) [notation `x |_ₗ U ⟪e⟫` for `TopCat.Presheaf.restrict`](https://github.com/leanprover-community/mathlib4/blob/2eb00cae7edccf4e54238db2cb4b0a7dff59fbdd/Mathlib/Topology/Sheaves/Presheaf.lean#L113) that leads to a syntax error in line 125 of [`Topology/Sheaves/Presheaf.lean`](https://github.com/leanprover-community/mathlib4/blob/2eb00cae7edccf4e54238db2cb4b0a7dff59fbdd/Mathlib/Topology/Sheaves/Presheaf.lean#L125) when these notations are simultaneously in effect: ``` x |_ₗ U ⟪e⟫ -- ^ unexpected token '⟫'; expected ',' ``` This limitation blocks PR #12502. See [this Zulip discussion](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/Notation.20conflict.20in.20CW-complex.20PR) for details. We resolve the notation conflict by making the inner product notation `⟪x, y⟫_𝕜` scoped in namespace `InnerProductSpace` and then adding `open scoped InnerProductSpace` wherever the notation is used. ESTIMATED CHANGES Modified Mathlib/Analysis/CStarAlgebra/Module/Constructions.lean Modified Mathlib/Analysis/CStarAlgebra/Module/Defs.lean Modified Mathlib/Analysis/Convex/Cone/InnerDual.lean Modified Mathlib/Analysis/Convex/Cone/Pointed.lean Modified Mathlib/Analysis/Convex/Cone/Proper.lean Modified Mathlib/Analysis/InnerProductSpace/Basic.lean Modified Mathlib/Analysis/InnerProductSpace/PiL2.lean Modified Mathlib/Analysis/InnerProductSpace/Projection.lean Modified Mathlib/Analysis/InnerProductSpace/Rayleigh.lean Modified Mathlib/Analysis/InnerProductSpace/StarOrder.lean Modified Mathlib/Analysis/InnerProductSpace/Symmetric.lean Modified Mathlib/Analysis/InnerProductSpace/WeakOperatorTopology.lean Modified Mathlib/Geometry/Manifold/Instances/Sphere.lean 2024-09-11 01:02:10 d01becb perf: mark generic `simp` lemmas with low priority (#16679) This takes some of the most common `simp` lemmas for hom classes (e.g., `map_one`, `map_zero`, `map_add`, `map_mul`, etc.) and marks them with priority `low`. The motivation is that these lemmas, by necessity, have very weak discrimination tree keys, so they apply very widely. However, when they match but fail to apply (as in the `TCSynth.lean` test file; last entry), they force type class synthesis to traverse almost the entirety of the hom class hierarchy looking for a match. This is a significant expenditure, so avoiding it when necessary is useful. This seems to give reasonable performance gains, and the fallout from the priority seems to be quite minimal. In particular, one can restore the old behavior locally just by adding the relevant lemmas to the list passed to `simp`, (e.g., `simp [map_zero]`). This is needed only very rarely across Mathlib. ESTIMATED CHANGES Modified Counterexamples/MapFloor.lean Modified Mathlib/Algebra/Algebra/Quasispectrum.lean Modified Mathlib/Algebra/GCDMonoid/Basic.lean Modified Mathlib/Algebra/Group/Hom/Defs.lean Modified Mathlib/Algebra/Lie/Killing.lean Modified Mathlib/Analysis/Complex/Basic.lean Modified Mathlib/Analysis/Normed/Group/HomCompletion.lean Modified Mathlib/Analysis/SpecialFunctions/Bernstein.lean Modified Mathlib/CategoryTheory/Galois/Prorepresentability.lean Modified Mathlib/Data/ZMod/Units.lean Modified Mathlib/LinearAlgebra/AffineSpace/Basis.lean Modified Mathlib/LinearAlgebra/Matrix/Charpoly/Coeff.lean Modified Mathlib/LinearAlgebra/Reflection.lean Modified Mathlib/LinearAlgebra/RootSystem/Basic.lean Modified Mathlib/LinearAlgebra/RootSystem/Defs.lean Modified Mathlib/LinearAlgebra/RootSystem/Hom.lean Modified Mathlib/MeasureTheory/Integral/FundThmCalculus.lean Modified Mathlib/NumberTheory/DirichletCharacter/Basic.lean Modified Mathlib/NumberTheory/LucasLehmer.lean Modified Mathlib/RingTheory/PiTensorProduct.lean Modified test/TCSynth.lean 2024-09-11 00:28:43 a8f1816 feat: star monomorphisms between C⋆-algebras are isometric (#16599) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Algebra/Unitization.lean + def Unitization.starMap + theorem Unitization.starMap_comp + theorem Unitization.starMap_id + theorem Unitization.starMap_injective + theorem Unitization.starMap_inl + theorem Unitization.starMap_inr + theorem Unitization.starMap_surjective Modified Mathlib/Algebra/Star/SelfAdjoint.lean Added Mathlib/Analysis/CStarAlgebra/Hom.lean + theorem IsSelfAdjoint.map_spectrum_real + theorem NonUnitalStarAlgHom.isometry + theorem NonUnitalStarAlgHom.nnnorm_map + theorem NonUnitalStarAlgHom.norm_map 2024-09-10 23:43:02 8ca782e chore: Move `NonUnitalNonAssocSemiring.toDistribSMul` (#16440) It belongs better in this file. ESTIMATED CHANGES Modified Mathlib/Algebra/SMulWithZero.lean Modified Mathlib/GroupTheory/GroupAction/Ring.lean Modified Mathlib/RingTheory/HahnSeries/Multiplication.lean 2024-09-10 22:04:54 c4e39cc chore: update Mathlib dependencies 2024-09-10 (#16686) This PR updates the Mathlib dependencies. ESTIMATED CHANGES Modified lake-manifest.json 2024-09-10 20:59:08 7d0666d perf: reorder `extends` of monoid-like typeclasses (#16638) ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Defs.lean Modified Mathlib/Algebra/Group/Opposite.lean Modified Mathlib/Algebra/Group/Prod.lean 2024-09-10 20:36:27 077376e chore: remove (syntactically) duplicate import (#16681) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Sites/Adjunction.lean 2024-09-10 20:02:25 53df23f chore: update Mathlib dependencies 2024-09-10 (#16682) This PR updates the Mathlib dependencies. ESTIMATED CHANGES Modified lake-manifest.json 2024-09-10 18:35:57 7e58ec9 feat: Dot product and cross product on projective space (#15187) This PR defines the dot product and cross product on projective space. This will be used to define finite projective planes. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/LinearAlgebra/CrossProduct.lean + theorem crossProduct_ne_zero_iff_linearIndependent Added Mathlib/LinearAlgebra/Projectivization/Constructions.lean + def Projectivization.cross + theorem Projectivization.cross_comm + theorem Projectivization.cross_mk + theorem Projectivization.cross_mk_of_cross_eq_zero + theorem Projectivization.cross_mk_of_cross_ne_zero + theorem Projectivization.cross_mk_of_ne + theorem Projectivization.cross_orthogonal_left + theorem Projectivization.cross_orthogonal_right + theorem Projectivization.cross_self + theorem Projectivization.exists_not_orthogonal_self + theorem Projectivization.exists_not_self_orthogonal + theorem Projectivization.mk_eq_mk_iff_crossProduct_eq_zero + def Projectivization.orthogonal + theorem Projectivization.orthogonal_comm + theorem Projectivization.orthogonal_cross_left + theorem Projectivization.orthogonal_cross_right + theorem Projectivization.orthogonal_mk 2024-09-10 17:34:22 0dfdf3d chore: deprecate most of `Init.Logic` (#16438) And bunch up the non-deprecated declarations. ESTIMATED CHANGES Modified Mathlib/Algebra/GradedMonoid.lean Modified Mathlib/Algebra/Group/Action/Prod.lean Modified Mathlib/Algebra/GroupWithZero/Action/Prod.lean Modified Mathlib/Algebra/Homology/LocalCohomology.lean Modified Mathlib/Algebra/Order/Ring/WithTop.lean Modified Mathlib/Algebra/Polynomial/Div.lean Modified Mathlib/Analysis/BoxIntegral/Partition/Filter.lean Modified Mathlib/Combinatorics/SetFamily/KruskalKatona.lean Modified Mathlib/Combinatorics/SimpleGraph/Triangle/Basic.lean Modified Mathlib/Data/Fin/Tuple/Basic.lean Modified Mathlib/Data/Fintype/Perm.lean Modified Mathlib/Data/Fintype/Quotient.lean Modified Mathlib/Data/List/Basic.lean Modified Mathlib/Data/Nat/Bits.lean Modified Mathlib/Data/Ordmap/Ordnode.lean Modified Mathlib/Data/Ordmap/Ordset.lean Modified Mathlib/Data/Set/Prod.lean Modified Mathlib/GroupTheory/Perm/Sign.lean Modified Mathlib/Init/Algebra/Classes.lean Modified Mathlib/Init/Logic.lean - theorem heq_prop - theorem not_of_eq_false Modified Mathlib/Logic/Basic.lean +/- theorem by_contradiction Modified Mathlib/Logic/Function/Basic.lean Modified Mathlib/Logic/Nontrivial/Defs.lean Modified Mathlib/Logic/Unique.lean Modified Mathlib/NumberTheory/FermatPsp.lean Modified Mathlib/Order/Basic.lean Modified Mathlib/SetTheory/Game/Short.lean Modified Mathlib/Tactic/CC/Lemmas.lean Modified test/DefEqTransformations.lean Modified test/cases.lean Modified test/solve_by_elim/basic.lean 2024-09-10 17:17:26 0a23df4 feat (RingTheory/Valuation): add class IsValExtension (#14342) Add typeclass `IsValExtension` and related lemmas. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/RingTheory/Valuation/ValExtension.lean + theorem IsValExtension.algebraMap_injective + theorem IsValExtension.ofComapInteger + theorem IsValExtension.val_algebraMap + theorem IsValExtension.val_map_eq_iff + theorem IsValExtension.val_map_eq_one_iff + theorem IsValExtension.val_map_le_iff + theorem IsValExtension.val_map_le_one_iff + theorem IsValExtension.val_map_lt_iff + theorem IsValExtension.val_map_lt_one_iff + theorem IsValExtension.val_smul 2024-09-10 16:36:48 27c6e68 chore: update Mathlib dependencies 2024-09-10 (#16665) This PR updates the Mathlib dependencies. ESTIMATED CHANGES Modified lake-manifest.json 2024-09-10 16:36:47 608beec chore(CategoryTheory/Galois): split out definition from `Full` file (#16661) Reorganizes the `Full` file to collect definition and boilerplate code about `functorToAction` in separate file. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Galois/Action.lean + def CategoryTheory.PreGaloisCategory.functorToAction + theorem CategoryTheory.PreGaloisCategory.functorToAction_comp_forget₂_eq + theorem CategoryTheory.PreGaloisCategory.functorToAction_map Modified Mathlib/CategoryTheory/Galois/Full.lean - def CategoryTheory.PreGaloisCategory.functorToAction - theorem CategoryTheory.PreGaloisCategory.functorToAction_comp_forget₂_eq 2024-09-10 16:36:45 0c4fb55 perf: synth order of `SMul` hierarchy (#16646) A lower mixin type class can lead to surprisingly heavy typeclass searches. This PR attempts to add shortcuts for SMul and see the effect on performance. Try stronger type classes first so that it doesn't always need to search the entire algebraic typeclass hierarchy. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Algebra/Defs.lean Modified Mathlib/Algebra/Group/Action/Defs.lean Modified Mathlib/Algebra/GroupWithZero/Action/Defs.lean Modified Mathlib/Algebra/Module/Defs.lean Modified Mathlib/Algebra/Ring/Action/Basic.lean Modified Mathlib/Algebra/SMulWithZero.lean Modified Mathlib/Analysis/Normed/Module/Basic.lean Modified Mathlib/RingTheory/Bialgebra/Basic.lean Added Mathlib/Util/SetSynthOrder.lean + def Lean.Meta.Instances.setSynthOrder Modified scripts/noshake.json 2024-09-10 16:36:44 d38ca09 feat(NumberTheory/JacobiSum/Basic): more Jacobi sum values (#16227) This adds more results on Jacobi sums. ESTIMATED CHANGES Modified Mathlib/NumberTheory/JacobiSum/Basic.lean + theorem jacobiSum_mul_nontrivial + theorem jacobiSum_nontrivial_inv + theorem jacobiSum_one_nontrivial 2024-09-10 16:36:43 410eaaa feat(GroupTheory/Archimedean): multiplicativize to also LinearOrderedCommGroup (#15824) ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Subgroup/Order.lean - theorem abs_mem_iff + theorem mabs_mem_iff Modified Mathlib/GroupTheory/Archimedean.lean - theorem AddSubgroup.cyclic_of_isolated_zero - theorem AddSubgroup.cyclic_of_min - theorem AddSubgroup.exists_isLeast_pos + theorem Subgroup.cyclic_of_isolated_one + theorem Subgroup.cyclic_of_min + theorem Subgroup.exists_isLeast_one_lt Modified Mathlib/GroupTheory/ArchimedeanDensely.lean - theorem AddSubgroup.isLeast_closure_iff_eq_abs +/- theorem LinearOrderedAddCommGroup.discrete_or_denselyOrdered + theorem LinearOrderedCommGroup.discrete_or_denselyOrdered + theorem Subgroup.isLeast_of_closure_iff_eq_mabs 2024-09-10 16:36:41 ef5ccac feat: tensor products of coalgebras (#11975) Given two `R`-coalgebras `M, N`, we can define a natural comultiplication map `Δ : M ⊗[R] N → (M ⊗[R] N) ⊗[R] (M ⊗[R] N)` and counit map `ε : M ⊗[R] N → R` induced by the comultiplication and counit maps of `M` and `N`. These `Δ, ε` are declared as linear maps in `TensorProduct.instCoalgebraStruct` in `Mathlib.RingTheory.Coalgebra.Basic`. In this PR we show that `Δ, ε` satisfy the axioms of a coalgebra, and also define other data in the monoidal structure on `R`-coalgebras, like the tensor product of two coalgebra morphisms as a coalgebra morphism. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Category/CoalgebraCat/ComonEquivalence.lean Modified Mathlib/RingTheory/Coalgebra/Basic.lean + theorem Coalgebra.sum_counit_tmul_map_eq + theorem Coalgebra.sum_map_tmul_counit_eq + theorem Coalgebra.sum_map_tmul_tmul_eq + theorem Coalgebra.sum_tmul_tmul_eq Modified Mathlib/RingTheory/Coalgebra/Equiv.lean + theorem CoalgEquiv.apply_symm_apply + theorem CoalgEquiv.coe_symm_toLinearEquiv + theorem CoalgEquiv.symm_apply_apply + def CoalgEquiv.toCoalgebra Modified Mathlib/RingTheory/Coalgebra/Hom.lean - theorem Coalgebra.sum_tmul_apply_counit_eq - theorem Coalgebra.sum_tmul_counit_apply_eq Added Mathlib/RingTheory/Coalgebra/TensorProduct.lean + theorem Coalgebra.TensorProduct.assoc_symm_tmul + theorem Coalgebra.TensorProduct.assoc_tmul + theorem Coalgebra.TensorProduct.assoc_toLinearEquiv + theorem Coalgebra.TensorProduct.lid_symm_apply + theorem Coalgebra.TensorProduct.lid_tmul + theorem Coalgebra.TensorProduct.lid_toLinearEquiv + theorem Coalgebra.TensorProduct.map_tmul + theorem Coalgebra.TensorProduct.map_toLinearMap + theorem Coalgebra.TensorProduct.rid_symm_apply + theorem Coalgebra.TensorProduct.rid_tmul + theorem Coalgebra.TensorProduct.rid_toLinearEquiv 2024-09-10 16:27:37 7953b15 feat(CategoryTheory/Filtered): finality of diagonal functor on a filtered category (#16678) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Filtered/Final.lean +/- theorem CategoryTheory.Functor.final_of_isFiltered_of_pUnit +/- theorem CategoryTheory.Functor.initial_of_isCofiltered_pUnit 2024-09-10 15:56:20 efd07fb chore: fix lint on master (#16677) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Adjunction/Limits.lean Modified Mathlib/CategoryTheory/Adjunction/Restrict.lean 2024-09-10 15:21:05 65a6ba8 chore(AtTopBot): split (#16611) - move lemmas depending on ordered monoids to new files; - rewrite some proofs about `Nat` to use `Nat`-specific lemmas. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/QuadraticDiscriminant.lean Modified Mathlib/Analysis/SpecificLimits/Basic.lean Modified Mathlib/Analysis/SpecificLimits/Normed.lean Modified Mathlib/Analysis/Subadditive.lean Modified Mathlib/CategoryTheory/CofilteredSystem.lean Modified Mathlib/Combinatorics/Hindman.lean Modified Mathlib/Order/Filter/AtTopBot.lean - theorem Filter.Tendsto.atBot_div_const - theorem Filter.Tendsto.atBot_mul_atBot - theorem Filter.Tendsto.atBot_mul_atTop - theorem Filter.Tendsto.atBot_mul_const - theorem Filter.Tendsto.atBot_mul_const_of_neg - theorem Filter.Tendsto.atTop_div_const - theorem Filter.Tendsto.atTop_div_const_of_neg - theorem Filter.Tendsto.atTop_mul_atBot - theorem Filter.Tendsto.atTop_mul_atTop - theorem Filter.Tendsto.atTop_mul_const - theorem Filter.Tendsto.atTop_mul_const_of_neg - theorem Filter.Tendsto.atTop_of_const_mul - theorem Filter.Tendsto.atTop_of_mul_const - theorem Filter.Tendsto.const_mul_atBot - theorem Filter.Tendsto.const_mul_atBot_of_neg - theorem Filter.Tendsto.const_mul_atTop - theorem Filter.Tendsto.const_mul_atTop_of_neg - theorem Filter.Tendsto.nsmul_atBot - theorem Filter.Tendsto.nsmul_atTop - theorem Filter.comap_abs_atTop - theorem Filter.comap_neg_atBot - theorem Filter.comap_neg_atTop - theorem Filter.map_atTop_finset_prod_le_of_prod_eq - theorem Filter.map_neg_atBot - theorem Filter.map_neg_atTop - theorem Filter.not_tendsto_pow_atTop_atBot - theorem Filter.tendsto_abs_atBot_atTop - theorem Filter.tendsto_abs_atTop_atTop - theorem Filter.tendsto_atBot_add - theorem Filter.tendsto_atBot_add_const_left - theorem Filter.tendsto_atBot_add_const_right - theorem Filter.tendsto_atBot_add_left_of_ge' - theorem Filter.tendsto_atBot_add_left_of_ge - theorem Filter.tendsto_atBot_add_nonpos_left' - theorem Filter.tendsto_atBot_add_nonpos_left - theorem Filter.tendsto_atBot_add_nonpos_right' - theorem Filter.tendsto_atBot_add_nonpos_right - theorem Filter.tendsto_atBot_add_right_of_ge' - theorem Filter.tendsto_atBot_add_right_of_ge - theorem Filter.tendsto_atBot_of_add_bdd_below_left' - theorem Filter.tendsto_atBot_of_add_bdd_below_left - theorem Filter.tendsto_atBot_of_add_bdd_below_right' - theorem Filter.tendsto_atBot_of_add_bdd_below_right - theorem Filter.tendsto_atBot_of_add_const_left - theorem Filter.tendsto_atBot_of_add_const_right - theorem Filter.tendsto_atTop_add - theorem Filter.tendsto_atTop_add_const_left - theorem Filter.tendsto_atTop_add_const_right - theorem Filter.tendsto_atTop_add_left_of_le' - theorem Filter.tendsto_atTop_add_left_of_le - theorem Filter.tendsto_atTop_add_nonneg_left' - theorem Filter.tendsto_atTop_add_nonneg_left - theorem Filter.tendsto_atTop_add_nonneg_right' - theorem Filter.tendsto_atTop_add_nonneg_right - theorem Filter.tendsto_atTop_add_right_of_le' - theorem Filter.tendsto_atTop_add_right_of_le - theorem Filter.tendsto_atTop_of_add_bdd_above_left' - theorem Filter.tendsto_atTop_of_add_bdd_above_left - theorem Filter.tendsto_atTop_of_add_bdd_above_right' - theorem Filter.tendsto_atTop_of_add_bdd_above_right - theorem Filter.tendsto_atTop_of_add_const_left - theorem Filter.tendsto_atTop_of_add_const_right - theorem Filter.tendsto_const_mul_atBot_iff - theorem Filter.tendsto_const_mul_atBot_iff_neg - theorem Filter.tendsto_const_mul_atBot_iff_pos - theorem Filter.tendsto_const_mul_atBot_of_neg - theorem Filter.tendsto_const_mul_atBot_of_pos - theorem Filter.tendsto_const_mul_atTop_iff - theorem Filter.tendsto_const_mul_atTop_iff_neg - theorem Filter.tendsto_const_mul_atTop_iff_pos - theorem Filter.tendsto_const_mul_atTop_of_neg - theorem Filter.tendsto_const_mul_atTop_of_pos - theorem Filter.tendsto_const_mul_pow_atBot_iff - theorem Filter.tendsto_const_mul_pow_atTop - theorem Filter.tendsto_const_mul_pow_atTop_iff - theorem Filter.tendsto_div_const_atBot_iff - theorem Filter.tendsto_div_const_atBot_iff_neg - theorem Filter.tendsto_div_const_atBot_iff_pos - theorem Filter.tendsto_div_const_atBot_of_neg - theorem Filter.tendsto_div_const_atBot_of_pos - theorem Filter.tendsto_div_const_atTop_iff - theorem Filter.tendsto_div_const_atTop_iff_neg - theorem Filter.tendsto_div_const_atTop_iff_pos - theorem Filter.tendsto_div_const_atTop_of_neg - theorem Filter.tendsto_div_const_atTop_of_pos - theorem Filter.tendsto_mul_const_atBot_iff - theorem Filter.tendsto_mul_const_atBot_iff_neg - theorem Filter.tendsto_mul_const_atBot_iff_pos - theorem Filter.tendsto_mul_const_atBot_of_neg - theorem Filter.tendsto_mul_const_atBot_of_pos - theorem Filter.tendsto_mul_const_atTop_iff - theorem Filter.tendsto_mul_const_atTop_iff_neg - theorem Filter.tendsto_mul_const_atTop_iff_pos - theorem Filter.tendsto_mul_const_atTop_of_neg - theorem Filter.tendsto_mul_const_atTop_of_pos - theorem Filter.tendsto_mul_self_atTop - theorem Filter.tendsto_neg_atBot_atTop - theorem Filter.tendsto_neg_atBot_iff - theorem Filter.tendsto_neg_atTop_atBot - theorem Filter.tendsto_neg_atTop_iff - theorem Filter.tendsto_neg_const_mul_pow_atTop - theorem Filter.tendsto_pow_atTop - theorem Filter.tendsto_pow_atTop_iff - theorem Filter.tendsto_zpow_atTop_atTop - theorem Filter.zero_pow_eventuallyEq - theorem Function.Injective.map_atTop_finset_prod_eq - theorem exists_le_mul_self - theorem exists_lt_mul_self Renamed Mathlib/Order/Filter/Archimedean.lean to Mathlib/Order/Filter/AtTopBot/Archimedean.lean Added Mathlib/Order/Filter/AtTopBot/BigOperators.lean + theorem Filter.map_atTop_finset_prod_le_of_prod_eq + theorem Function.Injective.map_atTop_finset_prod_eq Added Mathlib/Order/Filter/AtTopBot/Field.lean + theorem Filter.Tendsto.atBot_div_const + theorem Filter.Tendsto.atBot_mul_const + theorem Filter.Tendsto.atBot_mul_const_of_neg + theorem Filter.Tendsto.atTop_div_const + theorem Filter.Tendsto.atTop_div_const_of_neg + theorem Filter.Tendsto.atTop_mul_const + theorem Filter.Tendsto.atTop_mul_const_of_neg + theorem Filter.Tendsto.const_mul_atBot + theorem Filter.Tendsto.const_mul_atBot_of_neg + theorem Filter.Tendsto.const_mul_atTop + theorem Filter.Tendsto.const_mul_atTop_of_neg + theorem Filter.tendsto_const_mul_atBot_iff + theorem Filter.tendsto_const_mul_atBot_iff_neg + theorem Filter.tendsto_const_mul_atBot_iff_pos + theorem Filter.tendsto_const_mul_atBot_of_neg + theorem Filter.tendsto_const_mul_atBot_of_pos + theorem Filter.tendsto_const_mul_atTop_iff + theorem Filter.tendsto_const_mul_atTop_iff_neg + theorem Filter.tendsto_const_mul_atTop_iff_pos + theorem Filter.tendsto_const_mul_atTop_of_neg + theorem Filter.tendsto_const_mul_atTop_of_pos + theorem Filter.tendsto_const_mul_pow_atBot_iff + theorem Filter.tendsto_const_mul_pow_atTop + theorem Filter.tendsto_const_mul_pow_atTop_iff + theorem Filter.tendsto_div_const_atBot_iff + theorem Filter.tendsto_div_const_atBot_iff_neg + theorem Filter.tendsto_div_const_atBot_iff_pos + theorem Filter.tendsto_div_const_atBot_of_neg + theorem Filter.tendsto_div_const_atBot_of_pos + theorem Filter.tendsto_div_const_atTop_iff + theorem Filter.tendsto_div_const_atTop_iff_neg + theorem Filter.tendsto_div_const_atTop_iff_pos + theorem Filter.tendsto_div_const_atTop_of_neg + theorem Filter.tendsto_div_const_atTop_of_pos + theorem Filter.tendsto_mul_const_atBot_iff + theorem Filter.tendsto_mul_const_atBot_iff_neg + theorem Filter.tendsto_mul_const_atBot_iff_pos + theorem Filter.tendsto_mul_const_atBot_of_neg + theorem Filter.tendsto_mul_const_atBot_of_pos + theorem Filter.tendsto_mul_const_atTop_iff + theorem Filter.tendsto_mul_const_atTop_iff_neg + theorem Filter.tendsto_mul_const_atTop_iff_pos + theorem Filter.tendsto_mul_const_atTop_of_neg + theorem Filter.tendsto_mul_const_atTop_of_pos + theorem Filter.tendsto_neg_const_mul_pow_atTop + theorem Filter.tendsto_zpow_atTop_atTop Added Mathlib/Order/Filter/AtTopBot/Group.lean + theorem Filter.comap_abs_atTop + theorem Filter.comap_neg_atBot + theorem Filter.comap_neg_atTop + theorem Filter.map_neg_atBot + theorem Filter.map_neg_atTop + theorem Filter.tendsto_abs_atBot_atTop + theorem Filter.tendsto_abs_atTop_atTop + theorem Filter.tendsto_atBot_add_const_left + theorem Filter.tendsto_atBot_add_const_right + theorem Filter.tendsto_atBot_add_left_of_ge' + theorem Filter.tendsto_atBot_add_left_of_ge + theorem Filter.tendsto_atBot_add_right_of_ge' + theorem Filter.tendsto_atBot_add_right_of_ge + theorem Filter.tendsto_atTop_add_const_left + theorem Filter.tendsto_atTop_add_const_right + theorem Filter.tendsto_atTop_add_left_of_le' + theorem Filter.tendsto_atTop_add_left_of_le + theorem Filter.tendsto_atTop_add_right_of_le' + theorem Filter.tendsto_atTop_add_right_of_le + theorem Filter.tendsto_neg_atBot_atTop + theorem Filter.tendsto_neg_atBot_iff + theorem Filter.tendsto_neg_atTop_atBot + theorem Filter.tendsto_neg_atTop_iff Renamed Mathlib/Order/Filter/ModEq.lean to Mathlib/Order/Filter/AtTopBot/ModEq.lean Added Mathlib/Order/Filter/AtTopBot/Monoid.lean + theorem Filter.Tendsto.nsmul_atBot + theorem Filter.Tendsto.nsmul_atTop + theorem Filter.tendsto_atBot_add + theorem Filter.tendsto_atBot_add_nonpos_left' + theorem Filter.tendsto_atBot_add_nonpos_left + theorem Filter.tendsto_atBot_add_nonpos_right' + theorem Filter.tendsto_atBot_add_nonpos_right + theorem Filter.tendsto_atBot_of_add_bdd_below_left' + theorem Filter.tendsto_atBot_of_add_bdd_below_left + theorem Filter.tendsto_atBot_of_add_bdd_below_right' + theorem Filter.tendsto_atBot_of_add_bdd_below_right + theorem Filter.tendsto_atBot_of_add_const_left + theorem Filter.tendsto_atBot_of_add_const_right + theorem Filter.tendsto_atTop_add + theorem Filter.tendsto_atTop_add_nonneg_left' + theorem Filter.tendsto_atTop_add_nonneg_left + theorem Filter.tendsto_atTop_add_nonneg_right' + theorem Filter.tendsto_atTop_add_nonneg_right + theorem Filter.tendsto_atTop_of_add_bdd_above_left' + theorem Filter.tendsto_atTop_of_add_bdd_above_left + theorem Filter.tendsto_atTop_of_add_bdd_above_right' + theorem Filter.tendsto_atTop_of_add_bdd_above_right + theorem Filter.tendsto_atTop_of_add_const_left + theorem Filter.tendsto_atTop_of_add_const_right Added Mathlib/Order/Filter/AtTopBot/Ring.lean + theorem Filter.Tendsto.atBot_mul_atBot + theorem Filter.Tendsto.atBot_mul_atTop + theorem Filter.Tendsto.atTop_mul_atBot + theorem Filter.Tendsto.atTop_mul_atTop + theorem Filter.Tendsto.atTop_of_const_mul + theorem Filter.Tendsto.atTop_of_mul_const + theorem Filter.not_tendsto_pow_atTop_atBot + theorem Filter.tendsto_mul_self_atTop + theorem Filter.tendsto_pow_atTop + theorem Filter.tendsto_pow_atTop_iff + theorem Filter.zero_pow_eventuallyEq + theorem exists_le_mul_self + theorem exists_lt_mul_self Modified Mathlib/Order/Filter/EventuallyConst.lean Modified Mathlib/Order/Filter/FilterProduct.lean Modified Mathlib/Order/Filter/IndicatorFunction.lean Modified Mathlib/Order/Filter/Pointwise.lean Modified Mathlib/Order/LiminfLimsup.lean Modified Mathlib/Order/Nat.lean Modified Mathlib/Topology/Algebra/Group/SubmonoidClosure.lean Modified Mathlib/Topology/Algebra/InfiniteSum/Defs.lean Modified Mathlib/Topology/Algebra/Order/Field.lean Modified Mathlib/Topology/Algebra/Order/LiminfLimsup.lean Modified Mathlib/Topology/Basic.lean Modified Mathlib/Topology/Compactness/Compact.lean Modified Mathlib/Topology/Constructions.lean Modified Mathlib/Topology/ContinuousOn.lean Modified Mathlib/Topology/Instances/Int.lean Modified Mathlib/Topology/Order/LeftRightNhds.lean Modified Mathlib/Topology/Sequences.lean Modified Mathlib/Topology/UniformSpace/Cauchy.lean 2024-09-10 14:11:15 dc471f0 feat(RingTheory.LocalRing.ResidueField.Basic): add finite_of_finite (#15725) ESTIMATED CHANGES Modified Mathlib/RingTheory/LocalRing/ResidueField/Basic.lean + theorem LocalRing.ResidueField.finite_of_finite 2024-09-10 12:58:19 87d75f9 feat(Algebra/Polynomial/Splits): show that evaluating a split polynomial is the same as looking at the product of the roots (#16601) ESTIMATED CHANGES Modified Mathlib/Algebra/Polynomial/Splits.lean + theorem Polynomial.aeval_eq_prod_aroots_sub_of_monic_of_splits + theorem Polynomial.aeval_eq_prod_aroots_sub_of_splits + theorem Polynomial.eval_eq_prod_roots_sub_of_monic_of_splits_id + theorem Polynomial.eval_eq_prod_roots_sub_of_splits_id 2024-09-10 12:58:18 9d81c96 chore(Algebra/Group/Pointwise/Set): Incorporate lemmas from `Data.Set.Pointwise.SMul` (#16487) All these lemmas can be moved earlier at no cost. ESTIMATED CHANGES Modified Mathlib/Algebra/AddTorsor.lean Modified Mathlib/Algebra/Group/Pointwise/Set.lean + theorem Set.Nonempty.of_smul_left + theorem Set.Nonempty.of_smul_right + theorem Set.Nonempty.of_vsub_left + theorem Set.Nonempty.of_vsub_right + theorem Set.Nonempty.smul + theorem Set.Nonempty.smul_set + theorem Set.Nonempty.vsub + theorem Set.empty_smul + theorem Set.empty_vsub + theorem Set.iInter_smul_subset + theorem Set.iInter_vsub_subset + theorem Set.iInter₂_smul_subset + theorem Set.iInter₂_vsub_subset + theorem Set.iUnion_smul + theorem Set.iUnion_smul_left_image + theorem Set.iUnion_smul_right_image + theorem Set.iUnion_smul_set + theorem Set.iUnion_vsub + theorem Set.iUnion_vsub_left_image + theorem Set.iUnion_vsub_right_image + theorem Set.iUnion₂_smul + theorem Set.iUnion₂_vsub + theorem Set.image2_smul + theorem Set.image2_vsub + theorem Set.image_smul + theorem Set.image_smul_comm + theorem Set.image_smul_prod + theorem Set.image_vsub_prod + theorem Set.inter_smul_subset + theorem Set.inter_smul_union_subset_union + theorem Set.inter_vsub_subset + theorem Set.inter_vsub_union_subset_union + theorem Set.mem_smul + theorem Set.mem_smul_set + theorem Set.mem_vsub + theorem Set.range_smul + theorem Set.range_smul_range + theorem Set.singleton_smul + theorem Set.singleton_smul_singleton + theorem Set.singleton_vsub + theorem Set.singleton_vsub_singleton + theorem Set.smul_empty + theorem Set.smul_eq_empty + theorem Set.smul_iInter_subset + theorem Set.smul_iInter₂_subset + theorem Set.smul_iUnion + theorem Set.smul_iUnion₂ + theorem Set.smul_inter_subset + theorem Set.smul_mem_smul + theorem Set.smul_mem_smul_set + theorem Set.smul_nonempty + theorem Set.smul_set_empty + theorem Set.smul_set_eq_empty + theorem Set.smul_set_iInter_subset + theorem Set.smul_set_iInter₂_subset + theorem Set.smul_set_iUnion + theorem Set.smul_set_iUnion₂ + theorem Set.smul_set_inter_subset + theorem Set.smul_set_mono + theorem Set.smul_set_nonempty + theorem Set.smul_set_range + theorem Set.smul_set_singleton + theorem Set.smul_set_subset_iff + theorem Set.smul_set_subset_smul + theorem Set.smul_set_union + theorem Set.smul_singleton + theorem Set.smul_subset_iff + theorem Set.smul_subset_smul + theorem Set.smul_subset_smul_left + theorem Set.smul_subset_smul_right + theorem Set.smul_union + theorem Set.union_smul + theorem Set.union_smul_inter_subset_union + theorem Set.union_vsub + theorem Set.union_vsub_inter_subset_union + theorem Set.vsub_empty + theorem Set.vsub_eq_empty + theorem Set.vsub_iInter_subset + theorem Set.vsub_iInter₂_subset + theorem Set.vsub_iUnion + theorem Set.vsub_iUnion₂ + theorem Set.vsub_inter_subset + theorem Set.vsub_mem_vsub + theorem Set.vsub_nonempty + theorem Set.vsub_self_mono + theorem Set.vsub_singleton + theorem Set.vsub_subset_iff + theorem Set.vsub_subset_vsub + theorem Set.vsub_subset_vsub_left + theorem Set.vsub_subset_vsub_right + theorem Set.vsub_union Modified Mathlib/Algebra/Order/Module/Pointwise.lean Modified Mathlib/Algebra/Order/Pointwise.lean Modified Mathlib/Combinatorics/Additive/AP/Three/Defs.lean Modified Mathlib/Data/Finset/Pointwise/Basic.lean Modified Mathlib/Data/Finset/SMulAntidiagonal.lean Modified Mathlib/Data/Real/Pointwise.lean Modified Mathlib/Data/Set/Pointwise/Finite.lean Modified Mathlib/Data/Set/Pointwise/SMul.lean - theorem Set.Nonempty.of_smul_left - theorem Set.Nonempty.of_smul_right - theorem Set.Nonempty.of_vsub_left - theorem Set.Nonempty.of_vsub_right - theorem Set.Nonempty.smul - theorem Set.Nonempty.smul_set - theorem Set.Nonempty.vsub - theorem Set.empty_smul - theorem Set.empty_vsub - theorem Set.iInter_smul_subset - theorem Set.iInter_vsub_subset - theorem Set.iInter₂_smul_subset - theorem Set.iInter₂_vsub_subset - theorem Set.iUnion_smul - theorem Set.iUnion_smul_left_image - theorem Set.iUnion_smul_right_image - theorem Set.iUnion_smul_set - theorem Set.iUnion_vsub - theorem Set.iUnion_vsub_left_image - theorem Set.iUnion_vsub_right_image - theorem Set.iUnion₂_smul - theorem Set.iUnion₂_vsub - theorem Set.image2_smul - theorem Set.image2_vsub - theorem Set.image_smul - theorem Set.image_smul_comm - theorem Set.image_smul_prod - theorem Set.image_vsub_prod - theorem Set.inter_smul_subset - theorem Set.inter_smul_union_subset_union - theorem Set.inter_vsub_subset - theorem Set.inter_vsub_union_subset_union - theorem Set.mem_smul - theorem Set.mem_smul_set - theorem Set.mem_vsub - theorem Set.range_smul - theorem Set.range_smul_range - theorem Set.singleton_smul - theorem Set.singleton_smul_singleton - theorem Set.singleton_vsub - theorem Set.singleton_vsub_singleton - theorem Set.smul_empty - theorem Set.smul_eq_empty - theorem Set.smul_iInter_subset - theorem Set.smul_iInter₂_subset - theorem Set.smul_iUnion - theorem Set.smul_iUnion₂ - theorem Set.smul_inter_subset - theorem Set.smul_mem_smul - theorem Set.smul_mem_smul_set - theorem Set.smul_nonempty - theorem Set.smul_set_empty - theorem Set.smul_set_eq_empty - theorem Set.smul_set_iInter_subset - theorem Set.smul_set_iInter₂_subset - theorem Set.smul_set_iUnion - theorem Set.smul_set_iUnion₂ - theorem Set.smul_set_inter_subset - theorem Set.smul_set_mono - theorem Set.smul_set_nonempty - theorem Set.smul_set_range - theorem Set.smul_set_singleton - theorem Set.smul_set_subset_iff - theorem Set.smul_set_subset_smul - theorem Set.smul_set_union - theorem Set.smul_singleton - theorem Set.smul_subset_iff - theorem Set.smul_subset_smul - theorem Set.smul_subset_smul_left - theorem Set.smul_subset_smul_right - theorem Set.smul_union - theorem Set.union_smul - theorem Set.union_smul_inter_subset_union - theorem Set.union_vsub - theorem Set.union_vsub_inter_subset_union - theorem Set.vsub_empty - theorem Set.vsub_eq_empty - theorem Set.vsub_iInter_subset - theorem Set.vsub_iInter₂_subset - theorem Set.vsub_iUnion - theorem Set.vsub_iUnion₂ - theorem Set.vsub_inter_subset - theorem Set.vsub_mem_vsub - theorem Set.vsub_nonempty - theorem Set.vsub_self_mono - theorem Set.vsub_singleton - theorem Set.vsub_subset_iff - theorem Set.vsub_subset_vsub - theorem Set.vsub_subset_vsub_left - theorem Set.vsub_subset_vsub_right - theorem Set.vsub_union Modified Mathlib/GroupTheory/GroupAction/Pointwise.lean Modified Mathlib/GroupTheory/GroupAction/Support.lean 2024-09-10 12:58:17 f7eae0a refactor(CategoryTheory/Adjunction): switch to unit-counit definition of adjunction (#16317) This makes the lemmas `homEquiv_unit` and `homEquiv_counit` definitional equalities. This results in a reduction in `erw`s and makes automation work slightly better. ESTIMATED CHANGES Modified Mathlib/Algebra/Category/Grp/Adjunctions.lean +/- def CommGrp.forget₂CommMonAdj +/- def Grp.forget₂MonAdj Modified Mathlib/Algebra/Category/ModuleCat/ChangeOfRings.lean Modified Mathlib/Algebra/Category/ModuleCat/Monoidal/Closed.lean Modified Mathlib/Algebra/Category/ModuleCat/Presheaf/Sheafification.lean + theorem PresheafOfModules.sheaififcationAdjunction_homEquiv_apply Modified Mathlib/AlgebraicGeometry/GammaSpecAdjunction.lean +/- def AlgebraicGeometry.ΓSpec.adjunction +/- def AlgebraicGeometry.ΓSpec.locallyRingedSpaceAdjunction Modified Mathlib/CategoryTheory/Adjunction/Basic.lean + structure CategoryTheory.Adjunction.CoreHomEquivUnitCounit +/- def CategoryTheory.Adjunction.comp + theorem CategoryTheory.Adjunction.comp_homEquiv + theorem CategoryTheory.Adjunction.eq_unit_comp_map_iff + def CategoryTheory.Adjunction.homEquiv - theorem CategoryTheory.Adjunction.left_triangle_components + def CategoryTheory.Adjunction.mk' + theorem CategoryTheory.Adjunction.mk'_homEquiv + theorem CategoryTheory.Adjunction.mkOfHomEquiv_homEquiv +/- def CategoryTheory.Adjunction.mkOfUnitCounit - theorem CategoryTheory.Adjunction.right_triangle_components + theorem CategoryTheory.Adjunction.unit_comp_map_eq_iff +/- def CategoryTheory.Equivalence.toAdjunction Modified Mathlib/CategoryTheory/Adjunction/Comma.lean Modified Mathlib/CategoryTheory/Adjunction/Limits.lean +/- def CategoryTheory.Adjunction.functorialityAdjunction' +/- def CategoryTheory.Adjunction.functorialityAdjunction Modified Mathlib/CategoryTheory/Adjunction/Mates.lean Modified Mathlib/CategoryTheory/Adjunction/Opposites.lean Modified Mathlib/CategoryTheory/Adjunction/Restrict.lean Modified Mathlib/CategoryTheory/Adjunction/Whiskering.lean Modified Mathlib/CategoryTheory/Category/Cat/Adjunction.lean +/- def CategoryTheory.Cat.connectedComponentsTypeToCatAdj +/- def CategoryTheory.Cat.typeToCatObjectsAdj Modified Mathlib/CategoryTheory/Closed/Cartesian.lean Modified Mathlib/CategoryTheory/Closed/FunctorCategory.lean Modified Mathlib/CategoryTheory/Closed/Ideal.lean Modified Mathlib/CategoryTheory/Closed/Monoidal.lean +/- theorem CategoryTheory.MonoidalClosed.uncurry_eq Modified Mathlib/CategoryTheory/Closed/Types.lean Modified Mathlib/CategoryTheory/Functor/EpiMono.lean Modified Mathlib/CategoryTheory/Limits/HasLimits.lean +/- def CategoryTheory.Limits.colimConstAdj +/- def CategoryTheory.Limits.constLimAdj Modified Mathlib/CategoryTheory/Monoidal/Functor.lean Modified Mathlib/CategoryTheory/Monoidal/NaturalTransformation.lean Modified Mathlib/CategoryTheory/Monoidal/Subcategory.lean Modified Mathlib/CategoryTheory/Sites/Adjunction.lean Modified Mathlib/CategoryTheory/Sites/ConstantSheaf.lean Modified Mathlib/CategoryTheory/Skeletal.lean +/- def CategoryTheory.ThinSkeleton.lowerAdjunction Modified Mathlib/Condensed/Light/TopCatAdjunction.lean Modified Mathlib/Condensed/TopCatAdjunction.lean Modified Mathlib/RepresentationTheory/Rep.lean Modified Mathlib/Topology/Category/TopCat/Adjunctions.lean +/- def TopCat.adj₁ +/- def TopCat.adj₂ Modified Mathlib/Topology/Category/TopCat/OpenNhds.lean +/- def IsOpenMap.adjunctionNhds Modified Mathlib/Topology/Category/TopCat/Opens.lean Modified Mathlib/Topology/Order/Category/FrameAdjunction.lean +/- def Locale.adjunctionTopToLocalePT Modified Mathlib/Topology/Sheaves/Skyscraper.lean - def StalkSkyscraperPresheafAdjunctionAuxs.fromStalk - theorem StalkSkyscraperPresheafAdjunctionAuxs.fromStalk_to_skyscraper - theorem StalkSkyscraperPresheafAdjunctionAuxs.to_skyscraper_fromStalk 2024-09-10 12:32:00 e64b85d feat(Lie/Derivation): general Leibniz rule for Lie derivatives (#16641) This PR adds the general Leibniz rule for Lie derivatives ESTIMATED CHANGES Modified Mathlib/Algebra/BigOperators/Intervals.lean + theorem Finset.prod_Ico_add_right_sub_eq + theorem Finset.prod_range_eq_mul_Ico Modified Mathlib/Algebra/Lie/Derivation/Basic.lean + theorem LieDerivation.iterate_apply_lie' + theorem LieDerivation.iterate_apply_lie 2024-09-10 11:35:48 c1d27f1 docs(GroupTheory/SpecificGroups/Cyclic): change "Cycle" to "Cyclic" (#16605) Two declaration about _cyclic_ groups had "cycle" in their name. This PR rename them. ESTIMATED CHANGES Modified Mathlib/GroupTheory/PGroup.lean Modified Mathlib/GroupTheory/SpecificGroups/Cyclic.lean - def commGroupOfCycleCenterQuotient + def commGroupOfCyclicCenterQuotient 2024-09-10 11:35:46 b337ebd feat(FermatLastTheorem): Add a relaxed variant of FLT allowing nonzero unit solutions (#16060) Adds a variant `FermatLastTheoremWith'` of FLT for general commutative semirings, allowing nonzero unit solutions and their multiples. ESTIMATED CHANGES Modified Mathlib/NumberTheory/FLT/Basic.lean + theorem FermatLastTheoremWith'.fermatLastTheoremWith + def FermatLastTheoremWith' + theorem FermatLastTheoremWith.fermatLastTheoremWith' + theorem fermatLastTheoremWith'_iff_fermatLastTheoremWith + theorem fermatLastTheoremWith'_nat_int_tfae + theorem fermatLastTheoremWith'_of_field 2024-09-10 10:43:01 435bca7 feat(Data/Nat/Choose): add basic lemmas (#16448) Adds basic lemmas for writing `Nat.choose` as a sum of two previous `Nat.choose`. ESTIMATED CHANGES Modified Mathlib/Data/Nat/Choose/Basic.lean + theorem Nat.choose_eq_choose_pred_add + theorem Nat.choose_succ_left + theorem Nat.choose_succ_right 2024-09-10 10:43:00 18adea1 feat(Topology/ContinuousFunction/Bounded): add the ideal of compactly supported functions (#12629) add the ideal of compactly supported function and introduce the notations. Motivation: the space of compactly supported functions may have different topologies. For the uniform norm, it was suggested to define it as a subtype of `α →ᵇ γ` [on Zulip](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/variations.20of.20Urysohn's.20lemma/near/436722420) Maybe I should add a similar subtype to `ZeroAtInfty`. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/RingTheory/TwoSidedIdeal/Lattice.lean + theorem TwoSidedIdeal.mem_top Modified Mathlib/Topology/ContinuousFunction/Bounded.lean Added Mathlib/Topology/ContinuousFunction/BoundedCompactlySupported.lean + def compactlySupported + theorem compactlySupported_eq_top + theorem compactlySupported_eq_top_iff + theorem compactlySupported_eq_top_of_isCompact + theorem exist_norm_eq + theorem mem_compactlySupported + theorem norm_lt_iff_of_compactlySupported + theorem norm_lt_iff_of_nonempty_compactlySupported + def ofCompactSupport + theorem ofCompactSupport_mem Modified Mathlib/Topology/Support.lean 2024-09-10 10:16:23 6ff2f9b chore(Tactic.StacksAttribute): add kerodon to stacks tag attribute (#16643) Requested for the infinity-cosmos project [Zulip](https://leanprover.zulipchat.com/#narrow/stream/455414-Infinity-Cosmos/topic/help.20with.20Kerodon.20tags) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Category/Basic.lean Modified Mathlib/Tactic/StacksAttribute.lean - def Lean.PrettyPrinter.Parenthesizer.Lean.Environment.getSortedStackProjectDeclNames - def Lean.PrettyPrinter.Parenthesizer.Lean.Environment.getSortedStackProjectTags + def Lean.PrettyPrinter.Parenthesizer.Mathlib.StacksTag.traceStacksTags - structure Mathlib.Stacks.Tag - def Mathlib.Stacks.addTagEntry - def Mathlib.Stacks.stacksTag - def Mathlib.Stacks.stacksTagFn - def Mathlib.Stacks.stacksTagNoAntiquot + inductive Mathlib.StacksTag.Database + structure Mathlib.StacksTag.Tag + def Mathlib.StacksTag.addTagEntry + def Mathlib.StacksTag.stacksTagFn + def Mathlib.StacksTag.stacksTagNoAntiquot + def Mathlib.StacksTag.stacksTagParser Modified scripts/noshake.json Modified test/StacksAttribute.lean 2024-09-10 09:38:06 3bebc67 feat(NumberField/CanonicalEmbedding): make the `mixedSpace` explicit (#16634) For `K`, a number field, the mixed space is the space `ℝ^r₁ × ℂ^r₂` where `(r₁, r₂)` is the signature of `K`. This space is heavily used in the files about the canonical embedding but was never explicit (only used a notation). For further developments (and just to make things clearer), I think it is better to define it explicitly. This is what is done in this PR. ESTIMATED CHANGES Modified Mathlib/NumberTheory/NumberField/CanonicalEmbedding/Basic.lean +/- theorem NumberField.mixedEmbedding.mem_span_fractionalIdealLatticeBasis +/- theorem NumberField.mixedEmbedding.mem_span_latticeBasis +/- theorem NumberField.mixedEmbedding.nnnorm_eq_sup_normAtPlace +/- def NumberField.mixedEmbedding.normAtPlace +/- theorem NumberField.mixedEmbedding.normAtPlace_add_le +/- theorem NumberField.mixedEmbedding.normAtPlace_apply_isComplex +/- theorem NumberField.mixedEmbedding.normAtPlace_apply_isReal +/- theorem NumberField.mixedEmbedding.normAtPlace_eq_zero +/- theorem NumberField.mixedEmbedding.normAtPlace_neg +/- theorem NumberField.mixedEmbedding.normAtPlace_nonneg +/- theorem NumberField.mixedEmbedding.normAtPlace_smul +/- theorem NumberField.mixedEmbedding.norm_eq_sup'_normAtPlace +/- theorem NumberField.mixedEmbedding.norm_eq_zero_iff' +/- theorem NumberField.mixedEmbedding.norm_smul +/- def NumberField.mixedEmbedding.stdBasis +/- theorem NumberField.mixedEmbedding.stdBasis_apply_ofIsComplex_fst +/- theorem NumberField.mixedEmbedding.stdBasis_apply_ofIsComplex_snd +/- theorem NumberField.mixedEmbedding.stdBasis_apply_ofIsReal Modified Mathlib/NumberTheory/NumberField/CanonicalEmbedding/ConvexBody.lean +/- theorem NumberField.mixedEmbedding.convexBodyLT'_neg_mem +/- theorem NumberField.mixedEmbedding.convexBodyLT_neg_mem +/- theorem NumberField.mixedEmbedding.convexBodySumFun_add_le +/- theorem NumberField.mixedEmbedding.convexBodySumFun_apply' +/- theorem NumberField.mixedEmbedding.convexBodySumFun_apply +/- theorem NumberField.mixedEmbedding.convexBodySumFun_eq_zero_iff +/- theorem NumberField.mixedEmbedding.convexBodySumFun_neg +/- theorem NumberField.mixedEmbedding.convexBodySumFun_nonneg +/- theorem NumberField.mixedEmbedding.convexBodySumFun_smul +/- theorem NumberField.mixedEmbedding.convexBodySum_neg_mem +/- theorem NumberField.mixedEmbedding.norm_le_convexBodySumFun 2024-09-10 09:38:05 99998e1 feat(CategoryTheory/Galois): any fiber functor of a Galois category is full (#16478) More precisely, for a fiber functor `F`, the induced functor to the category of finite `Aut F`-sets is full. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/CategoryTheory/Galois/Examples.lean Added Mathlib/CategoryTheory/Galois/Full.lean + theorem CategoryTheory.PreGaloisCategory.exists_lift_of_mono + theorem CategoryTheory.PreGaloisCategory.exists_lift_of_mono_of_isConnected + def CategoryTheory.PreGaloisCategory.functorToAction + theorem CategoryTheory.PreGaloisCategory.functorToAction_comp_forget₂_eq Modified Mathlib/CategoryTheory/Limits/Preserves/Shapes/BinaryProducts.lean 2024-09-10 08:39:37 a5f50bc feat: generalize Module.Finite.finite_basis to semirings (#16655) ESTIMATED CHANGES Modified Mathlib/RingTheory/Finiteness.lean +/- theorem Module.Finite.finite_basis 2024-09-10 08:39:36 71f079f chore: update Mathlib dependencies 2024-09-10 (#16654) This PR updates the Mathlib dependencies. ESTIMATED CHANGES Modified lake-manifest.json 2024-09-10 07:48:06 b876d96 chore: add custom message for long lines containing `"` (#16652) As reported on [Zulip](https://leanprover.zulipchat.com/#narrow/stream/113488-general/topic/stacks.20tags/near/468961679) ESTIMATED CHANGES Modified Mathlib/Tactic/Linter/Lint.lean Modified test/Lint.lean 2024-09-10 07:29:25 ba03483 feat(CategoryTheory/MonoidalComp): change `IsIso` to `Iso` (#16554) I'm planning a rewrite of the coherence tactics (a series of PR starting from #16562), and this PR is preparation for that. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Monoidal/Rigid/Basic.lean Modified Mathlib/CategoryTheory/Monoidal/Rigid/Braided.lean Modified Mathlib/Tactic/CategoryTheory/Coherence.lean Modified Mathlib/Tactic/CategoryTheory/Monoidal.lean Modified Mathlib/Tactic/CategoryTheory/MonoidalComp.lean - def CategoryTheory.monoidalIso 2024-09-10 07:29:24 8f73f3e feat(CategoryTheory/Galois): topology of fundamental group (#16441) Introduces a natural pro-finite topology on the fundamental group of a fiber functor. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/CategoryTheory/FintypeCat.lean Added Mathlib/CategoryTheory/Galois/Topology.lean + def CategoryTheory.PreGaloisCategory.autEmbedding + theorem CategoryTheory.PreGaloisCategory.autEmbedding_apply + theorem CategoryTheory.PreGaloisCategory.autEmbedding_closedEmbedding + theorem CategoryTheory.PreGaloisCategory.autEmbedding_injective + theorem CategoryTheory.PreGaloisCategory.autEmbedding_range + theorem CategoryTheory.PreGaloisCategory.autEmbedding_range_isClosed + theorem CategoryTheory.PreGaloisCategory.aut_discreteTopology + theorem CategoryTheory.PreGaloisCategory.obj_discreteTopology 2024-09-10 07:15:47 7bce019 feat(MvPolynomial/Symmetric): the fundamental theorem (#6593) Proves that in a polynomial ring in n variables over a commutative ring, the subalgebra of symmetric polynomials is freely generated by the first n elementary symmetric polynomials. This is expressed as an isomorphism with the symmetric subalgebra with the polynomials in n variables, `MvPolynomial.equiv_symmetricSubalgebra`. Moves `Symmetric.lean` (renamed to `Defs.lean`), `NewtonIdentities.lean` to a new `Symmetric` folder where the new `FundamentalTheorem.lean` file also lives. ESTIMATED CHANGES Modified Mathlib.lean Renamed Mathlib/RingTheory/MvPolynomial/Symmetric.lean to Mathlib/RingTheory/MvPolynomial/Symmetric/Defs.lean Added Mathlib/RingTheory/MvPolynomial/Symmetric/FundamentalTheorem.lean + def Fin.accumulate + theorem Fin.accumulate_injective + theorem Fin.accumulate_invAccumulate + theorem Fin.accumulate_last + theorem Fin.accumulate_rec + def Fin.invAccumulate + theorem MvPolynomial.IsSymmetric.antitone_supDegree + theorem MvPolynomial.esymmAlgHomMonomial_add + theorem MvPolynomial.esymmAlgHomMonomial_single + theorem MvPolynomial.esymmAlgHomMonomial_single_one + theorem MvPolynomial.esymmAlgHom_apply + theorem MvPolynomial.esymmAlgHom_fin_bijective + theorem MvPolynomial.esymmAlgHom_fin_injective + theorem MvPolynomial.esymmAlgHom_fin_surjective + theorem MvPolynomial.esymmAlgHom_injective + theorem MvPolynomial.esymmAlgHom_surjective + theorem MvPolynomial.esymmAlgHom_zero + theorem MvPolynomial.isSymmetric_esymmAlgHomMonomial + theorem MvPolynomial.leadingCoeff_esymmAlgHomMonomial + theorem MvPolynomial.monic_esymm + theorem MvPolynomial.rename_esymmAlgHom + theorem MvPolynomial.supDegree_esymm + theorem MvPolynomial.supDegree_esymmAlgHomMonomial Renamed Mathlib/RingTheory/MvPolynomial/NewtonIdentities.lean to Mathlib/RingTheory/MvPolynomial/Symmetric/NewtonIdentities.lean Modified Mathlib/RingTheory/Polynomial/Vieta.lean Modified scripts/noshake.json 2024-09-10 06:46:15 77f9800 fix: generalize basis_finite_of_finite_spans to semirings (#16636) Also remove some unused variables. ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/Basis/Cardinality.lean 2024-09-10 04:54:57 f3bb26d feat(Data.Fin): Add lemma `Fin.sub_succ_le_sub_of_le` (#15817) ESTIMATED CHANGES Modified Mathlib/Data/Fin/Basic.lean + theorem Fin.sub_succ_le_sub_of_le 2024-09-10 03:09:21 16981db feat: `limsup u ⊤ = ⨆ i, u i` in a conditionally complete lattice (#16135) From LeanAPAP ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Function/EssSup.lean Modified Mathlib/Order/CompleteLattice.lean + theorem sInf_upperBounds_eq_csSup + theorem sSup_lowerBounds_eq_sInf Modified Mathlib/Order/ConditionallyCompleteLattice/Basic.lean + theorem csInf_upperBounds_eq_csSup - theorem csInf_upper_bounds_eq_csSup + theorem csSup_lowerBounds_eq_csInf - theorem csSup_lower_bounds_eq_csInf Modified Mathlib/Order/Filter/Basic.lean +/- theorem Filter.EventuallyEq.eventually + theorem Filter.eventuallyEq_top Modified Mathlib/Order/LiminfLimsup.lean - theorem Filter.liminf_top + theorem Filter.liminf_top_eq_ciInf + theorem Filter.liminf_top_eq_iInf - theorem Filter.limsInf_principal + theorem Filter.limsInf_principal_eq_csSup + theorem Filter.limsInf_principal_eq_sInf - theorem Filter.limsSup_principal + theorem Filter.limsSup_principal_eq_csSup + theorem Filter.limsSup_principal_eq_sSup - theorem Filter.limsup_top + theorem Filter.limsup_top_eq_ciSup + theorem Filter.limsup_top_eq_iSup 2024-09-09 21:54:25 645d65f refactor: deprecate `StarAlgHomClass` and similar as they just duplicate `StarHomClass` (#16591) When `FunLike` (and `EquivLike`) was unbundled from all the hom classes, it was necessary to make `StarAlgHomClass` (and similarly `NonUnitalStarAlgHomClass` and `StarAlgEquivClass`) and its un-starred counterparts an argument instead of extending that class. The net effect of this was that these classes became duplicates of `StarHomClass` with stricter type class assumptions. This PR deprecates all of these classes in favor of `StarHomClass` alone. ESTIMATED CHANGES Modified Mathlib/Algebra/Star/NonUnitalSubalgebra.lean Modified Mathlib/Algebra/Star/StarAlgHom.lean +/- def NonUnitalStarAlgHomClass.toNonUnitalStarAlgHom Modified Mathlib/Algebra/Star/Subalgebra.lean Modified Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Unique.lean Modified Mathlib/Analysis/CStarAlgebra/Spectrum.lean - theorem AlgHomClass.instStarAlgHomClass + theorem AlgHomClass.instStarHomClass Modified Mathlib/Topology/Algebra/StarSubalgebra.lean 2024-09-09 20:37:20 d9a27f6 perf: speed up fg_induction (#16635) This takes it down from 10 seconds to .05-.10 seconds locally. The culprit was apply_assumption. ESTIMATED CHANGES Modified Mathlib/RingTheory/Finiteness.lean 2024-09-09 19:54:58 1fa672e chore(Filter/Basic): use `abbrev` (#16624) Otherwise `coframeMinimalAxioms.toCompleteLattice = instCompleteLatticeFilter` isn't `with_reducible_and_instances rfl`. ESTIMATED CHANGES Modified Mathlib/Order/Filter/Basic.lean - def Filter.coframeMinimalAxioms 2024-09-09 18:32:04 9d2de1a feat: Pi.{zero,one}_{mono,anti} (#16630) ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Pi/Lemmas.lean + theorem Pi.one_anti + theorem Pi.one_mono 2024-09-09 16:04:40 23abd25 feat(ModelTheory/Order): Countable dense linear orders are Fraïssé limits of the class of finite linear orders (#16538) `FirstOrder.Language.IsExtensionPair_iff_exists_embedding_closure_singleton_sup` is a characterization of `FirstOrder.Language.IsExtensionPair` in terms of extending the domain of an embedding. `FirstOrder.Language.isFraisseLimit_of_countable_nonempty_dlo` shows that any countable nonempty model of the theory of linear orders is a Fraïssé limit of the class of finite models of the theory of linear orders. `FirstOrder.Language.isFraisse_finite_linear_order` shows that the class of finite models of the theory of linear orders is Fraïssé. ESTIMATED CHANGES Modified Mathlib/ModelTheory/Order.lean + theorem FirstOrder.Language.denselyOrdered_of_dlo + theorem FirstOrder.Language.dlo_age + theorem FirstOrder.Language.dlo_isExtensionPair + theorem FirstOrder.Language.isFraisseLimit_of_countable_nonempty_dlo + theorem FirstOrder.Language.isFraisse_finite_linear_order + theorem FirstOrder.Language.noBotOrder_of_dlo + theorem FirstOrder.Language.noTopOrder_of_dlo Modified Mathlib/ModelTheory/PartialEquiv.lean - theorem FirstOrder.Language.IsExtensionPair_iff_cod + theorem FirstOrder.Language.isExtensionPair_iff_cod + theorem FirstOrder.Language.isExtensionPair_iff_exists_embedding_closure_singleton_sup Modified Mathlib/ModelTheory/Substructures.lean Modified Mathlib/Order/CountableDenseLinearOrder.lean +/- theorem Order.exists_between_finsets + theorem Order.exists_orderEmbedding_insert 2024-09-09 15:40:16 8a7bcf9 chore: minimize some imports (#16600) ESTIMATED CHANGES Modified Mathlib/Analysis/Complex/CauchyIntegral.lean Modified Mathlib/Analysis/Complex/UpperHalfPlane/Basic.lean Modified Mathlib/Analysis/Convex/StrictConvexSpace.lean Modified Mathlib/Analysis/Normed/Algebra/Exponential.lean Modified Mathlib/CategoryTheory/CofilteredSystem.lean Modified Mathlib/CategoryTheory/Filtered/Basic.lean Modified Mathlib/CategoryTheory/Generator.lean Modified Mathlib/CategoryTheory/Groupoid/FreeGroupoid.lean Modified Mathlib/CategoryTheory/Limits/Constructions/LimitsOfProductsAndEqualizers.lean Modified Mathlib/CategoryTheory/Limits/Presheaf.lean Modified Mathlib/CategoryTheory/Sites/Sieves.lean Modified Mathlib/Combinatorics/HalesJewett.lean Modified Mathlib/Geometry/Manifold/AnalyticManifold.lean Modified Mathlib/LinearAlgebra/Matrix/BilinearForm.lean Modified Mathlib/MeasureTheory/Group/Measure.lean Modified Mathlib/NumberTheory/Bernoulli.lean Modified Mathlib/NumberTheory/FLT/Basic.lean Modified Mathlib/NumberTheory/LucasLehmer.lean Modified Mathlib/RepresentationTheory/Action/Monoidal.lean Modified Mathlib/RepresentationTheory/Basic.lean 2024-09-09 15:40:15 8079b7f feat(Topology/Group): density of submonoid/subgroup closure (#16521) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Topology/Algebra/Group/SubmonoidClosure.lean + theorem closure_range_zpow_eq_pow + theorem closure_submonoidClosure_eq_closure_subgroupClosure + theorem denseRange_zpow_iff_pow + theorem dense_submonoidClosure_iff_subgroupClosure + theorem mapClusterPt_atTop_pow_iff_mem_topologicalClosure_zpowers + theorem mapClusterPt_atTop_pow_tfae + theorem mapClusterPt_atTop_zpow_iff_pow + theorem mapClusterPt_inv_atTop_pow + theorem mapClusterPt_one_atTop_pow + theorem mapClusterPt_self_atTop_pow + theorem mapClusterPt_self_zpow_atTop_pow + theorem topologicalClosure_subgroupClosure_toSubmonoid 2024-09-09 14:40:01 f9e5fd4 chore(Order/SuccPred/Limit): improve induction principles (#16575) This PR does the following: - We define `isSuccPrelimitRecOn` without using tactics, which allows us to golf a proof slightly. - We define `prelimitRecOn` using `cast` instead of `Eq.subst`, which is more idiomatic. - We introduce variants of `prelimitRecOn_succ` for orders without maximum elements. - Better variable management throughout. ESTIMATED CHANGES Modified Mathlib/Order/SuccPred/Limit.lean +/- theorem Order.isPredPrelimitRecOn_limit +/- theorem Order.isPredPrelimitRecOn_pred' +/- theorem Order.isSuccPrelimitRecOn_limit +/- theorem Order.isSuccPrelimitRecOn_succ' +/- theorem Order.isSuccPrelimitRecOn_succ +/- theorem PredOrder.prelimitRecOn_limit + theorem PredOrder.prelimitRecOn_pred' +/- theorem PredOrder.prelimitRecOn_pred +/- theorem SuccOrder.prelimitRecOn_limit + theorem SuccOrder.prelimitRecOn_succ' +/- theorem SuccOrder.prelimitRecOn_succ Modified Mathlib/SetTheory/Ordinal/Arithmetic.lean 2024-09-09 14:26:45 035936f chore: use "bash strict mode" in some shell scripts (#16566) If a script produces an error, it should rather do so loudly than silently. See http://redsymbol.net/articles/unofficial-bash-strict-mode/ for an explanation of this incantation. This PR has the "easy" cases, where no change to the remaining script was necessary. ESTIMATED CHANGES Modified .github/workflows/mk_build_yml.sh Modified scripts/init_creation.sh Modified scripts/install_debian.sh Modified scripts/install_macos.sh Modified scripts/lint-bib.sh Modified scripts/print-style-errors.sh Modified scripts/technical-debt-metrics.sh Modified scripts/update_nolints_CI.sh 2024-09-09 13:06:43 b305ebf feat(Algebra/Order/Units): LinearOrderedCommGroup Units (#16616) When ambient monoid is LinearOrderedCommMonoid Thus supporting LinearOrderedCommGroupWithZero too ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Group/Units.lean 2024-09-09 12:18:42 a057331 feat:(CategoryTheory): `C ⥤ D` is enriched over `C ⥤ Type` (#13841) This PR shows that `C ⥤ D` is enriched over `C ⥤ Type max v' v u` where `C : Type u` with `[Category.{v} C]` and `[Category.{v'} D]`. To do this, a hom-object is constructed for functors `F G : C ⥤ D`. Applies in particular to simplicial objects being enriched over simplicial sets. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Functor/FunctorHom.lean + theorem CategoryTheory.Enriched.Functor.associator_hom_apply + theorem CategoryTheory.Enriched.Functor.associator_inv_apply + theorem CategoryTheory.Enriched.Functor.functorHom_whiskerLeft_natTransEquiv_symm_app + theorem CategoryTheory.Enriched.Functor.natTransEquiv_symm_app_app_apply + theorem CategoryTheory.Enriched.Functor.natTransEquiv_symm_whiskerRight_functorHom_app + theorem CategoryTheory.Enriched.Functor.whiskerLeft_app_apply + theorem CategoryTheory.Enriched.Functor.whiskerRight_app_apply + def CategoryTheory.Functor.HomObj.comp + theorem CategoryTheory.Functor.HomObj.congr_app + def CategoryTheory.Functor.HomObj.id + def CategoryTheory.Functor.HomObj.map + def CategoryTheory.Functor.HomObj.ofNatTrans + structure CategoryTheory.Functor.HomObj + def CategoryTheory.Functor.functorHom + def CategoryTheory.Functor.functorHomEquiv + theorem CategoryTheory.Functor.functorHom_ext + def CategoryTheory.Functor.homObjEquiv + def CategoryTheory.Functor.homObjFunctor + def CategoryTheory.Functor.natTransEquiv 2024-09-09 12:00:24 44a3cb9 feat(FiberedCategory/Fibered): define prefibered categories (#13416) We define the notion of prefibered categories, as in SGA 1 VI 6.1, and add some basic API. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/FiberedCategory/Fibered.lean + theorem CategoryTheory.IsPreFibered.pullbackObj_proj 2024-09-09 11:11:03 9c3e691 chore: bump dependencies (#16625) ESTIMATED CHANGES Modified Mathlib/Data/List/Basic.lean - theorem List.length_modifyNth - theorem List.length_modifyNthTail Modified lake-manifest.json 2024-09-09 09:33:05 2eb00ca refactor(Ergodic): redefine using `EventuallyConst` (#16281) ESTIMATED CHANGES Modified Mathlib/Dynamics/Ergodic/Action/Basic.lean Modified Mathlib/Dynamics/Ergodic/AddCircle.lean Modified Mathlib/Dynamics/Ergodic/Ergodic.lean +/- structure Ergodic + theorem PreErgodic.ae_empty_or_univ +/- structure PreErgodic - theorem QuasiErgodic.ae_empty_or_univ' + theorem QuasiErgodic.aeconst_set₀ +/- structure QuasiErgodic 2024-09-09 08:37:59 bf5819b chore: uniformize copyright statements (#16608) Found by the linter at #16574. ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Semiconj/Defs.lean Modified Mathlib/Algebra/Group/Semiconj/Units.lean Modified Mathlib/Data/Seq/Computation.lean Modified Mathlib/Deprecated/HashMap.lean Modified Mathlib/GroupTheory/QuotientGroup/Basic.lean Modified Mathlib/GroupTheory/QuotientGroup/Finite.lean Modified Mathlib/Tactic/FunProp/StateList.lean 2024-09-09 08:37:58 eac55c0 feat (LinearAlgebra/RootPairing): define RootPairingCat (#16295) This PR defines a category of root pairings, roughly following the treatment of morphisms of root data in SGA3 Exp.21 Sec.6. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Lie/Weights/RootSystem.lean - theorem LieAlgebra.IsKilling.rootSystem_toLin_apply + theorem LieAlgebra.IsKilling.rootSystem_toPerfectPairing_apply Modified Mathlib/LinearAlgebra/PerfectPairing.lean + theorem PerfectPairing.flip_apply_apply +/- theorem PerfectPairing.flip_flip + theorem PerfectPairing.toLin_apply Modified Mathlib/LinearAlgebra/RootSystem/Basic.lean Modified Mathlib/LinearAlgebra/RootSystem/Defs.lean +/- def RootPairing.pairing + theorem RootPairing.reflection_perm_involutive + theorem RootPairing.reflection_perm_self + theorem RootPairing.reflection_perm_symm +/- theorem RootPairing.root_coroot_eq_pairing + theorem RootPairing.toLin_toPerfectPairing Added Mathlib/LinearAlgebra/RootSystem/Hom.lean + def RootPairing.Hom.comp + theorem RootPairing.Hom.comp_assoc + theorem RootPairing.Hom.comp_id + def RootPairing.Hom.id + theorem RootPairing.Hom.id_comp + def RootPairing.Hom.reflection + structure RootPairing.Hom Added Mathlib/LinearAlgebra/RootSystem/RootPairingCat.lean + structure RootPairingCat 2024-09-09 07:09:41 85d6c78 chore: rename `Zlattice` -> `ZLattice` (#16622) Also, with the same logic, the namespace `Zspan` has be renamed `ZSpan`. ESTIMATED CHANGES Modified Mathlib.lean Renamed Mathlib/Algebra/Module/Zlattice/Basic.lean to Mathlib/Algebra/Module/ZLattice/Basic.lean + def Basis.ofZLatticeBasis + theorem Basis.ofZLatticeBasis_apply + theorem Basis.ofZLatticeBasis_repr_apply + theorem Basis.ofZLatticeBasis_span - def Basis.ofZlatticeBasis - theorem Basis.ofZlatticeBasis_apply - theorem Basis.ofZlatticeBasis_repr_apply - theorem Basis.ofZlatticeBasis_span + theorem ZLattice.FG + theorem ZLattice.isAddFundamentalDomain + theorem ZLattice.module_finite + theorem ZLattice.module_free + theorem ZLattice.rank + def ZSpan.ceil + theorem ZSpan.ceil_eq_self_of_mem + theorem ZSpan.coe_floor_self + theorem ZSpan.coe_fract_self + theorem ZSpan.discreteTopology_pi_basisFun + theorem ZSpan.exist_unique_vadd_mem_fundamentalDomain + def ZSpan.floor + theorem ZSpan.floor_eq_self_of_mem + def ZSpan.fract + def ZSpan.fractRestrict + theorem ZSpan.fractRestrict_apply + theorem ZSpan.fractRestrict_surjective + theorem ZSpan.fract_add_ZSpan + theorem ZSpan.fract_apply + theorem ZSpan.fract_eq_fract + theorem ZSpan.fract_eq_self + theorem ZSpan.fract_fract + theorem ZSpan.fract_mem_fundamentalDomain + theorem ZSpan.fract_zSpan_add + def ZSpan.fundamentalDomain + theorem ZSpan.fundamentalDomain_ae_parallelepiped + theorem ZSpan.fundamentalDomain_isBounded + theorem ZSpan.fundamentalDomain_measurableSet + theorem ZSpan.fundamentalDomain_pi_basisFun + theorem ZSpan.fundamentalDomain_reindex + theorem ZSpan.fundamentalDomain_subset_parallelepiped + theorem ZSpan.isZLattice + theorem ZSpan.map_fundamentalDomain + theorem ZSpan.measure_fundamentalDomain + theorem ZSpan.measure_fundamentalDomain_ne_zero + theorem ZSpan.mem_fundamentalDomain + theorem ZSpan.norm_fract_le + theorem ZSpan.quotientEquiv.symm_apply + def ZSpan.quotientEquiv + theorem ZSpan.quotientEquiv_apply_mk + theorem ZSpan.repr_ceil_apply + theorem ZSpan.repr_floor_apply + theorem ZSpan.repr_fract_apply + theorem ZSpan.span_top + theorem ZSpan.vadd_mem_fundamentalDomain + theorem ZSpan.volume_fundamentalDomain - theorem Zlattice.FG - theorem Zlattice.isAddFundamentalDomain - theorem Zlattice.module_finite - theorem Zlattice.module_free - theorem Zlattice.rank - def Zspan.ceil - theorem Zspan.ceil_eq_self_of_mem - theorem Zspan.coe_floor_self - theorem Zspan.coe_fract_self - theorem Zspan.discreteTopology_pi_basisFun - theorem Zspan.exist_unique_vadd_mem_fundamentalDomain - def Zspan.floor - theorem Zspan.floor_eq_self_of_mem - def Zspan.fract - def Zspan.fractRestrict - theorem Zspan.fractRestrict_apply - theorem Zspan.fractRestrict_surjective - theorem Zspan.fract_add_zspan - theorem Zspan.fract_apply - theorem Zspan.fract_eq_fract - theorem Zspan.fract_eq_self - theorem Zspan.fract_fract - theorem Zspan.fract_mem_fundamentalDomain - theorem Zspan.fract_zspan_add - def Zspan.fundamentalDomain - theorem Zspan.fundamentalDomain_ae_parallelepiped - theorem Zspan.fundamentalDomain_isBounded - theorem Zspan.fundamentalDomain_measurableSet - theorem Zspan.fundamentalDomain_pi_basisFun - theorem Zspan.fundamentalDomain_reindex - theorem Zspan.fundamentalDomain_subset_parallelepiped - theorem Zspan.isZlattice - theorem Zspan.map_fundamentalDomain - theorem Zspan.measure_fundamentalDomain - theorem Zspan.measure_fundamentalDomain_ne_zero - theorem Zspan.mem_fundamentalDomain - theorem Zspan.norm_fract_le - theorem Zspan.quotientEquiv.symm_apply - def Zspan.quotientEquiv - theorem Zspan.quotientEquiv_apply_mk - theorem Zspan.repr_ceil_apply - theorem Zspan.repr_floor_apply - theorem Zspan.repr_fract_apply - theorem Zspan.span_top - theorem Zspan.vadd_mem_fundamentalDomain - theorem Zspan.volume_fundamentalDomain Renamed Mathlib/Algebra/Module/Zlattice/Covolume.lean to Mathlib/Algebra/Module/ZLattice/Covolume.lean + def ZLattice.covolume + theorem ZLattice.covolume_eq_det + theorem ZLattice.covolume_eq_det_mul_measure + theorem ZLattice.covolume_eq_measure_fundamentalDomain + theorem ZLattice.covolume_ne_zero + theorem ZLattice.covolume_pos - def Zlattice.covolume - theorem Zlattice.covolume_eq_det - theorem Zlattice.covolume_eq_det_mul_measure - theorem Zlattice.covolume_eq_measure_fundamentalDomain - theorem Zlattice.covolume_ne_zero - theorem Zlattice.covolume_pos Modified Mathlib/NumberTheory/NumberField/CanonicalEmbedding/Basic.lean Modified Mathlib/NumberTheory/NumberField/CanonicalEmbedding/ConvexBody.lean Modified Mathlib/NumberTheory/NumberField/Discriminant.lean Modified Mathlib/NumberTheory/NumberField/Units/DirichletTheorem.lean Modified Mathlib/NumberTheory/NumberField/Units/Regulator.lean +/- def NumberField.Units.regulator +/- theorem NumberField.Units.regulator_ne_zero +/- theorem NumberField.Units.regulator_pos 2024-09-09 06:05:49 f7f80c2 chore: update Mathlib dependencies 2024-09-09 (#16620) This PR updates the Mathlib dependencies. ESTIMATED CHANGES Modified lake-manifest.json 2024-09-09 02:15:52 8c811c9 fix: `Finpartition.atomise` should not have `[Fintype α]` (#16617) Noticed by @b-mehta. ESTIMATED CHANGES Modified Mathlib/Order/Partition/Finpartition.lean 2024-09-09 01:17:17 5f1b34c feat(Algebra/Order/BigOperators): prove lemmas for `List.prod` and `Multiset.prod` on `CommMonoidWithZero` (#16573) Also relax typeclass assumptions on `prod_nonneg`. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Order/BigOperators/GroupWithZero/List.lean + theorem List.one_le_prod + theorem List.prod_map_le_prod_map₀ + theorem List.prod_map_lt_prod_map + theorem List.prod_nonneg + theorem List.prod_pos Added Mathlib/Algebra/Order/BigOperators/GroupWithZero/Multiset.lean + theorem Multiset.one_le_prod + theorem Multiset.prod_map_le_prod_map₀ + theorem Multiset.prod_map_lt_prod_map + theorem Multiset.prod_nonneg + theorem Multiset.prod_pos Modified Mathlib/Algebra/Order/BigOperators/Ring/List.lean +/- theorem CanonicallyOrderedCommSemiring.list_prod_pos - theorem List.prod_pos Modified Mathlib/Algebra/Order/BigOperators/Ring/Multiset.lean +/- theorem CanonicallyOrderedCommSemiring.multiset_prod_pos - theorem Multiset.prod_nonneg 2024-09-09 01:17:15 be23ec9 chore(Tactic/CategoryTheory): fix meta code for monoidal categories (#15335) Several bug fixes and simple refactoring. The main changes: - `Monoidal.lean`: In `structural?`, the number of arguments in `getAppFnArgs` matching was wrong (I only considered explicit ones there). Infact, `structural?` is no longer needed since the matching is performed in `eval`. Now the `monoidalCoherence` is `StructuralAtom`, not `Structural`. - `Coherence.lean`: Unfolding `MonoidalCoherence.hom` by `dsimp` at the beginning of the coherence tactic. ESTIMATED CHANGES Modified Mathlib/Tactic/CategoryTheory/BicategoryCoherence.lean Modified Mathlib/Tactic/CategoryTheory/Coherence.lean Modified Mathlib/Tactic/CategoryTheory/Monoidal.lean - def Mathlib.Tactic.Monoidal.WhiskerLeftExpr.atom - def Mathlib.Tactic.Monoidal.WhiskerRightExpr.atom Modified Mathlib/Tactic/Widget/StringDiagram.lean +/- def Mathlib.Tactic.Monoidal.pairs Modified scripts/noshake.json Modified test/CategoryTheory/Coherence.lean Modified test/CategoryTheory/Monoidal.lean 2024-09-09 01:17:14 dbed408 feat: more API for AddMonoidAlgebra.supDegree / leadingCoeff / Monic (#7173) Infrastructure for working with [monomial orders](https://en.wikipedia.org/wiki/Monomial_order) on MvPolynomial rings. The lexicographic order is used in #6593 (proof of the fundamental theorem of symmetric polynomials) ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Subsemigroup/Basic.lean +/- theorem Subsemigroup.coe_set_mk Modified Mathlib/Algebra/Group/Subsemigroup/Operations.lean + theorem MulHom.srange_mk Modified Mathlib/Algebra/MonoidAlgebra/Degree.lean + theorem AddMonoidAlgebra.Monic.leadingCoeff_mul_eq_left + theorem AddMonoidAlgebra.Monic.leadingCoeff_mul_eq_right + theorem AddMonoidAlgebra.Monic.mul + theorem AddMonoidAlgebra.Monic.ne_zero + theorem AddMonoidAlgebra.Monic.pow + theorem AddMonoidAlgebra.Monic.supDegree_mul + theorem AddMonoidAlgebra.Monic.supDegree_mul_of_ne_zero_left + theorem AddMonoidAlgebra.Monic.supDegree_mul_of_ne_zero_right + theorem AddMonoidAlgebra.Monic.supDegree_pow + def AddMonoidAlgebra.Monic + theorem AddMonoidAlgebra.apply_supDegree_add_supDegree + theorem AddMonoidAlgebra.exists_supDegree_mem_support + theorem AddMonoidAlgebra.leadingCoeff_add_eq_left + theorem AddMonoidAlgebra.leadingCoeff_add_eq_right + theorem AddMonoidAlgebra.leadingCoeff_eq_zero + theorem AddMonoidAlgebra.leadingCoeff_mul + theorem AddMonoidAlgebra.leadingCoeff_single + theorem AddMonoidAlgebra.leadingCoeff_zero + theorem AddMonoidAlgebra.monic_one + theorem AddMonoidAlgebra.sum_ne_zero_of_injOn_supDegree' + theorem AddMonoidAlgebra.sum_ne_zero_of_injOn_supDegree + theorem AddMonoidAlgebra.supDegree_add_eq_left + theorem AddMonoidAlgebra.supDegree_add_eq_right + theorem AddMonoidAlgebra.supDegree_eq_of_isMaxOn + theorem AddMonoidAlgebra.supDegree_eq_of_max + theorem AddMonoidAlgebra.supDegree_leadingCoeff_sum_eq + theorem AddMonoidAlgebra.supDegree_mem_range + theorem AddMonoidAlgebra.supDegree_mem_support + theorem AddMonoidAlgebra.supDegree_mul + theorem AddMonoidAlgebra.supDegree_sub_lt_of_leadingCoeff_eq + theorem AddMonoidAlgebra.supDegree_sum_lt Modified Mathlib/Algebra/MvPolynomial/Variables.lean + theorem MvPolynomial.leadingCoeff_toLex + theorem MvPolynomial.leadingCoeff_toLex_C + theorem MvPolynomial.supDegree_toLex_C Modified Mathlib/Order/Filter/Extr.lean + theorem inf_eq_of_isMinOn + theorem inf_eq_of_min + theorem sup_eq_of_isMaxOn + theorem sup_eq_of_max 2024-09-09 00:57:20 0c4fd28 feat(Analysis/SpecialFunctions/Pow/NNReal): Specialise some lemmas to natural/integers powers (#16248) ... and lemmas about negative real powers From LeanAPAP ESTIMATED CHANGES Modified Mathlib/Analysis/FunctionalSpaces/SobolevInequality.lean Modified Mathlib/Analysis/MeanInequalities.lean Modified Mathlib/Analysis/MeanInequalitiesPow.lean Modified Mathlib/Analysis/Normed/Lp/ProdLp.lean Modified Mathlib/Analysis/SpecialFunctions/ContinuousFunctionalCalculus/Rpow.lean Modified Mathlib/Analysis/SpecialFunctions/Pow/Asymptotics.lean Modified Mathlib/Analysis/SpecialFunctions/Pow/Continuity.lean Modified Mathlib/Analysis/SpecialFunctions/Pow/NNReal.lean +/- theorem ENNReal.coe_rpow_of_ne_zero +/- theorem ENNReal.coe_rpow_of_nonneg +/- theorem ENNReal.toNNReal_rpow + theorem NNReal.le_rpow_inv_iff_of_neg + theorem NNReal.le_rpow_inv_iff_of_pos + theorem NNReal.lt_rpow_inv_iff_of_neg + theorem NNReal.lt_rpow_inv_iff_of_pos +/- theorem NNReal.rpow_add' + theorem NNReal.rpow_add_intCast' + theorem NNReal.rpow_add_intCast + theorem NNReal.rpow_add_natCast' + theorem NNReal.rpow_add_natCast + theorem NNReal.rpow_add_one' + theorem NNReal.rpow_add_one + theorem NNReal.rpow_eq_zero + theorem NNReal.rpow_intCast_mul + theorem NNReal.rpow_inv_le_iff_of_neg + theorem NNReal.rpow_inv_le_iff_of_pos + theorem NNReal.rpow_inv_lt_iff_of_neg + theorem NNReal.rpow_inv_lt_iff_of_pos + theorem NNReal.rpow_le_rpow_iff_of_neg + theorem NNReal.rpow_le_rpow_of_nonpos + theorem NNReal.rpow_lt_rpow_iff_of_neg + theorem NNReal.rpow_lt_rpow_of_neg + theorem NNReal.rpow_mul_intCast + theorem NNReal.rpow_mul_natCast +/- theorem NNReal.rpow_natCast + theorem NNReal.rpow_natCast_mul +/- theorem NNReal.rpow_neg + theorem NNReal.rpow_one_add' + theorem NNReal.rpow_one_sub' +/- theorem NNReal.rpow_sub' + theorem NNReal.rpow_sub_intCast' + theorem NNReal.rpow_sub_intCast + theorem NNReal.rpow_sub_natCast' + theorem NNReal.rpow_sub_natCast + theorem NNReal.rpow_sub_one' + theorem NNReal.rpow_sub_one Modified Mathlib/MeasureTheory/Function/LpSeminorm/Basic.lean Modified Mathlib/MeasureTheory/Function/LpSpace.lean Modified Mathlib/MeasureTheory/Function/UniformIntegrable.lean Modified Mathlib/MeasureTheory/Measure/Hausdorff.lean Modified Mathlib/NumberTheory/Liouville/Measure.lean Modified Mathlib/Topology/MetricSpace/HausdorffDimension.lean Modified Mathlib/Topology/MetricSpace/Holder.lean 2024-09-09 00:18:03 7ebd1b2 chore(Combinatorics/Additive): improve doc and add missing lemmas (#16609) ESTIMATED CHANGES Modified Mathlib/Combinatorics/Additive/FreimanHom.lean + theorem IsMulFreimanHom.congr + theorem IsMulFreimanIso.congr + theorem isMulFreimanHom_empty + theorem isMulFreimanHom_one_iff + theorem isMulFreimanHom_zero_iff + theorem isMulFreimanIso_one_iff + theorem isMulFreimanIso_two + theorem isMulFreimanIso_zero_iff 2024-09-08 23:21:23 74692d1 chore(List/Basic): add `getElem` lemmas (#16082) - add `List.head_eq_getElem_zero`; - add `List.getElem_cons`, deprecate `List.get_cons`; - add `List.getElem_succ_scanl`, deprecate `List.get_succ_scanl`; - use `getElem` lemmas for some deprecated `alias`es. ESTIMATED CHANGES Modified Mathlib/Data/List/Basic.lean + theorem List.getElem_cons + theorem List.getElem_succ_scanl + theorem List.head_eq_getElem_zero Modified Mathlib/Data/List/Lemmas.lean 2024-09-08 21:52:35 7b6e74c feat: topology on `ContinuousAlternatingMap`s (#16374) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Topology/Algebra/ConstMulAction.lean + theorem Inducing.continuousConstSMul Added Mathlib/Topology/Algebra/Module/Alternating/Topology.lean + def ContinuousAlternatingMap.apply + theorem ContinuousAlternatingMap.apply_apply + theorem ContinuousAlternatingMap.completeSpace + theorem ContinuousAlternatingMap.continuous_coe_fun + theorem ContinuousAlternatingMap.continuous_eval_const + theorem ContinuousAlternatingMap.continuous_restrictScalars + theorem ContinuousAlternatingMap.continuous_toContinuousMultilinearMap + theorem ContinuousAlternatingMap.embedding_restrictScalars + theorem ContinuousAlternatingMap.embedding_toContinuousMultilinearMap + theorem ContinuousAlternatingMap.hasBasis_nhds_zero + theorem ContinuousAlternatingMap.hasBasis_nhds_zero_of_basis + theorem ContinuousAlternatingMap.hasSum_eval + def ContinuousAlternatingMap.restrictScalarsCLM + theorem ContinuousAlternatingMap.tsum_eval + theorem ContinuousAlternatingMap.uniformContinuous_coe_fun + theorem ContinuousAlternatingMap.uniformContinuous_eval_const + theorem ContinuousAlternatingMap.uniformContinuous_restrictScalars + theorem ContinuousAlternatingMap.uniformContinuous_toContinuousMultilinearMap + theorem ContinuousAlternatingMap.uniformEmbedding_restrictScalars + theorem ContinuousAlternatingMap.uniformEmbedding_toContinuousMultilinearMap 2024-09-08 20:57:27 009cfba doc(Algebra.Lie.NonUnitalNonAssocAlgebra): add documentation linking Lie algebras and NonUnitalNonAssociative rings (#16467) Add some docs about `CommutatorRing` pointing back and forth between `CommutatorRing`s and `NonAssociative` rings. ESTIMATED CHANGES Modified Mathlib/Algebra/Lie/NonUnitalNonAssocAlgebra.lean Modified Mathlib/Algebra/Ring/Defs.lean 2024-09-08 13:32:34 3fecb24 feat(Combinatorics/SimpleGraph): define the line graph of a simple graph (#16276) This is pretty bare-bones for now. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Combinatorics/SimpleGraph/LineGraph.lean + def SimpleGraph.lineGraph + theorem SimpleGraph.lineGraph_adj_iff_exists + theorem SimpleGraph.lineGraph_bot 2024-09-08 12:47:00 3e01fe2 chore(Order/SuccPred/Basic): Move succ/pred being archimedean to a different file (#16559) Also prove `le_total_of_ge, le_total_of_le, lt_or_le_of_ge, lt_or_le_of_le`. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Data/Nat/SuccPred.lean Modified Mathlib/Order/Interval/Set/Monotone.lean Added Mathlib/Order/SuccPred/Archimedean.lean + theorem LE.le.exists_pred_iterate + theorem LE.le.exists_succ_iterate + theorem Pred.rec + theorem Pred.rec_iff + theorem Pred.rec_linear + theorem Pred.rec_top + theorem StrictAnti.not_bddAbove_range + theorem StrictAnti.not_bddBelow_range + theorem StrictMono.not_bddAbove_range + theorem StrictMono.not_bddBelow_range + theorem Succ.rec + theorem Succ.rec_bot + theorem Succ.rec_iff + theorem Succ.rec_linear + theorem SuccOrder.forall_ne_bot_iff + theorem exists_pred_iterate_iff_le + theorem exists_pred_iterate_or + theorem exists_succ_iterate_iff_le + theorem exists_succ_iterate_or + theorem pred_max + theorem pred_min + theorem succ_max + theorem succ_min Modified Mathlib/Order/SuccPred/Basic.lean - theorem LE.le.exists_pred_iterate - theorem LE.le.exists_succ_iterate - theorem Pred.rec - theorem Pred.rec_iff - theorem Pred.rec_linear - theorem Pred.rec_top - theorem StrictAnti.not_bddAbove_range - theorem StrictAnti.not_bddBelow_range - theorem StrictMono.not_bddAbove_range - theorem StrictMono.not_bddBelow_range - theorem Succ.rec - theorem Succ.rec_bot - theorem Succ.rec_iff - theorem Succ.rec_linear - theorem SuccOrder.forall_ne_bot_iff - theorem exists_pred_iterate_iff_le - theorem exists_pred_iterate_or - theorem exists_succ_iterate_iff_le - theorem exists_succ_iterate_or - theorem pred_max - theorem pred_min - theorem succ_max - theorem succ_min Modified Mathlib/Order/SuccPred/IntervalSucc.lean Modified Mathlib/Order/SuccPred/Limit.lean Modified Mathlib/Order/SuccPred/LinearLocallyFinite.lean Modified Mathlib/Order/SuccPred/Relation.lean 2024-09-08 11:17:40 48b2de3 chore: rename invOf lemmas to match inv lemmas (#16590) This follows on from #11530 In each case, I've added an `example` with the `Group` lemma, to make it easier to keep the names in sync. ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Invertible/Defs.lean + theorem invOf_mul_cancel_left' + theorem invOf_mul_cancel_left + theorem invOf_mul_cancel_right' + theorem invOf_mul_cancel_right +/- theorem invOf_mul_self - theorem invOf_mul_self_assoc' - theorem invOf_mul_self_assoc +/- theorem invOf_one + theorem mul_invOf_cancel_left' + theorem mul_invOf_cancel_left + theorem mul_invOf_cancel_right' + theorem mul_invOf_cancel_right - theorem mul_invOf_mul_self_cancel' - theorem mul_invOf_mul_self_cancel +/- theorem mul_invOf_self - theorem mul_invOf_self_assoc' - theorem mul_invOf_self_assoc - theorem mul_mul_invOf_self_cancel' - theorem mul_mul_invOf_self_cancel Modified Mathlib/Algebra/Symmetrized.lean Modified Mathlib/Data/Matrix/Invertible.lean Modified Mathlib/LinearAlgebra/Matrix/SchurComplement.lean Modified Mathlib/Tactic/NormNum/Basic.lean Modified Mathlib/Tactic/NormNum/Ineq.lean 2024-09-08 10:55:22 2bbfacf feat(Holder): basic lemmas for `HolderWith` (#16411) ESTIMATED CHANGES Modified Mathlib/Topology/MetricSpace/Holder.lean + theorem HolderWith.add + theorem HolderWith.const + theorem HolderWith.mono + theorem HolderWith.of_isEmpty + theorem HolderWith.smul + theorem HolderWith.zero + theorem holderWith_zero_iff 2024-09-08 09:20:35 b63d3d7 feat: Nat.log is less than or equal to Real.logb (#16450) We add ``` lemma nat_log_le_real_logb {a b : ℕ} (_ : 0 < a) : Nat.log b a ≤ Real.logb b a ``` and remove some `(hb : 1 < b)` not needed hypotheses in previous lemmas ESTIMATED CHANGES Modified Mathlib/Analysis/SpecialFunctions/Log/Base.lean +/- theorem Real.ceil_logb_natCast +/- theorem Real.floor_logb_natCast + theorem Real.logb_one_left + theorem Real.logb_zero_left + theorem Real.natLog_le_logb Modified Mathlib/Data/Int/Log.lean + theorem Int.clog_one_left + theorem Int.clog_zero_left + theorem Int.log_one_left + theorem Int.log_zero_left 2024-09-08 06:47:50 12972e5 feat: star algebra homomorphisms commute with the continuous functional calculus (#16588) ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/Quasispectrum.lean + theorem NonUnitalAlgHom.quasispectrum_apply_subset' + theorem NonUnitalAlgHom.quasispectrum_apply_subset Modified Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/NonUnital.lean + theorem cfcₙHom_continuous Modified Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Unique.lean + theorem NonUnitalStarAlgHom.map_cfcₙ + theorem NonUnitalStarAlgHomClass.map_cfcₙ + theorem StarAlgHom.map_cfc + theorem StarAlgHomClass.map_cfc Modified Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Unital.lean + theorem cfcHom_continuous Modified Mathlib/Topology/CompactOpen.lean Modified Mathlib/Topology/ContinuousFunction/ContinuousMapZero.lean + theorem ContinuousMapZero.continuous_comp_left 2024-09-08 06:38:44 a5f9131 docs(Archive/IMO/2011Q5): replace non-Lean notation in comment (#16581) Use `f n` instead of `f(n)` for function application. ESTIMATED CHANGES Modified Archive/Imo/Imo2011Q5.lean 2024-09-08 05:53:33 d17749b chore(Filter/Basic): add `EventuallyEq.of_eq` (#16576) ESTIMATED CHANGES Modified Mathlib/Order/Filter/Basic.lean + theorem Filter.EventuallyEq.of_eq 2024-09-08 04:56:27 ee90236 feat(Algebra/Algebra/Basic): prove `algebraMap_eq_zero_iff` for `NoZeroSMulDivisors` (#16582) ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/Basic.lean + theorem NoZeroSMulDivisors.algebraMap_eq_one_iff + theorem NoZeroSMulDivisors.algebraMap_eq_zero_iff Modified Mathlib/FieldTheory/RatFunc/Basic.lean +/- theorem RatFunc.algebraMap_eq_zero_iff +/- theorem RatFunc.algebraMap_ne_zero Modified Mathlib/NumberTheory/FunctionField.lean Modified Mathlib/NumberTheory/NumberField/Basic.lean +/- theorem NumberField.RingOfIntegers.coe_eq_zero_iff 2024-09-08 03:59:06 29aaa17 feat: generalize `ContinuousMultilinearMap.restrictScalarsLinear` (#16110) ... from normed spaces to topological spaces. Also drop the `Fintype` assumption. ESTIMATED CHANGES Modified Mathlib/Analysis/NormedSpace/Multilinear/Basic.lean - theorem ContinuousMultilinearMap.continuous_restrictScalars - def ContinuousMultilinearMap.restrictScalarsLinear Modified Mathlib/Topology/Algebra/Module/Multilinear/Topology.lean + theorem ContinuousMultilinearMap.continuous_restrictScalars + theorem ContinuousMultilinearMap.embedding_restrictScalars + def ContinuousMultilinearMap.restrictScalarsLinear + theorem ContinuousMultilinearMap.uniformContinuous_restrictScalars + theorem ContinuousMultilinearMap.uniformEmbedding_restrictScalars 2024-09-08 03:35:31 b98cba3 chore(Archive/IMO/2013Q5): tiny superficial polishing (#16583) ESTIMATED CHANGES Modified Archive/Imo/Imo2013Q5.lean 2024-09-08 02:37:32 2eaa4fd chore(Combinatorics/Additive): correct docstrings (#16529) Fix incorrect or misleading docstrings. Adjust to_additive setup for APFree, following the comment in #12682. ESTIMATED CHANGES Modified Mathlib/Combinatorics/Additive/AP/Three/Defs.lean +/- theorem ThreeGPFree.eq_right Modified Mathlib/Tactic/ToAdditive/Frontend.lean 2024-09-07 22:19:05 75f3daf chore: rename `IsSelfAdjoint.{starHom_apply → map}` (#16589) ESTIMATED CHANGES Modified Mathlib/Algebra/Star/SelfAdjoint.lean + theorem IsSelfAdjoint.map - theorem IsSelfAdjoint.starHom_apply + theorem isSelfAdjoint_map - theorem isSelfAdjoint_starHom_apply Modified Mathlib/Analysis/CStarAlgebra/Spectrum.lean 2024-09-07 21:48:38 01c407b feat(Topology): lemas about `MapClusterPt` (#16572) Also reuse `variable`s and make some arguments implicit. ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Measure/EverywherePos.lean Modified Mathlib/Topology/Basic.lean + theorem Filter.HasBasis.clusterPt_iff_frequently + theorem Filter.HasBasis.mapClusterPt_iff_frequently + theorem Filter.Tendsto.mapClusterPt + theorem MapClusterPt.continuousAt_comp + theorem MapClusterPt.mono + theorem MapClusterPt.of_comp + theorem MapClusterPt.tendsto_comp' + theorem MapClusterPt.tendsto_comp +/- theorem mapClusterPt_comp +/- theorem mapClusterPt_def +/- theorem mapClusterPt_iff +/- theorem mapClusterPt_iff_ultrafilter +/- theorem mapClusterPt_of_comp Modified Mathlib/Topology/Constructions.lean + theorem MapClusterPt.curry_prodMap + theorem MapClusterPt.prodMap Modified Mathlib/Topology/UniformSpace/Cauchy.lean 2024-09-07 16:04:17 2969d01 feat(Topology/Group): add `nhds_inv` (#16565) ESTIMATED CHANGES Modified Mathlib/Topology/Algebra/Group/Basic.lean + theorem nhds_inv 2024-09-07 15:05:50 697358a feat(ContinuousFunctionalCalculus): The restriction of a non-unital CFC is equal to the original one (#16287) Using the non-unital CFC over `ℂ` for a function `f : ℝ → ℝ` is the same as using the non-unital CFC over `ℝ` for the same function, and likewise for `ℝ` vs `ℝ≥0`. We already had this for the unital CFC. ESTIMATED CHANGES Modified Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Instances.lean + theorem cfcₙHom_nnreal_eq_restrict + theorem cfcₙHom_real_eq_restrict + theorem cfcₙ_nnreal_eq_real + theorem cfcₙ_real_eq_complex 2024-09-07 14:24:53 e56ed5b feat(AtTopBot): drop unneeded assumptions (#16571) Drop unneeded `IsDirected` assumptions in several lemmas. ESTIMATED CHANGES Modified Mathlib/Order/Filter/AtTopBot.lean + theorem Filter.Frequently.forall_exists_of_atBot + theorem Filter.Frequently.forall_exists_of_atTop +/- theorem Filter.atTop_basis' +/- theorem Filter.atTop_eq_generate_Ici 2024-09-07 13:01:51 59b0224 chore: remove scripts/fix-by-linebreaks.sh (#16563) This script is currently unused; it was created during and for the port, and its functionality is incorporated into lint-style.py. ESTIMATED CHANGES Deleted scripts/fix-by-linebreaks.sh 2024-09-07 12:08:38 ee66920 feat(Algebra/BigOperators): add lemmas for product of MulHom over nonempty lists (#16536) Also remove the porting note since the Lean 3 proof works. Golf that proof too. ESTIMATED CHANGES Modified Mathlib/Algebra/BigOperators/Group/List.lean + theorem List.prod_hom_nonempty + theorem List.prod_hom₂_nonempty 2024-09-07 09:03:58 19b4c40 feat(AtTopBot): generalize more to `Preorder` (#16548) - Generalize `Filter.map_atTop_eq_of_gc` and corollaries to a `Preorder`. - Add `Nat.map_cast_int_atTop`. ESTIMATED CHANGES Modified Mathlib/Order/Filter/AtTopBot.lean +/- theorem Filter.atBot_Iic_eq +/- theorem Filter.atBot_Iio_eq +/- theorem Filter.atTop_Ici_eq +/- theorem Filter.atTop_Ioi_eq +/- theorem Filter.map_atBot_eq_of_gc + theorem Filter.map_atBot_eq_of_gc_preorder +/- theorem Filter.map_atTop_eq_of_gc + theorem Filter.map_atTop_eq_of_gc_preorder +/- theorem Filter.map_val_Ici_atTop +/- theorem Filter.map_val_Iic_atBot +/- theorem Filter.map_val_Iio_atBot +/- theorem Filter.map_val_Ioi_atTop +/- theorem Filter.map_val_atTop_of_Ici_subset +/- theorem Filter.tendsto_Ici_atTop +/- theorem Filter.tendsto_Iic_atBot +/- theorem Filter.tendsto_Iio_atBot +/- theorem Filter.tendsto_Ioi_atTop +/- theorem Filter.tendsto_comp_val_Ici_atTop +/- theorem Filter.tendsto_comp_val_Iic_atBot +/- theorem Filter.tendsto_comp_val_Iio_atBot +/- theorem Filter.tendsto_comp_val_Ioi_atTop + theorem Nat.map_cast_int_atTop 2024-09-07 09:03:57 05f2511 feat(ModelTheory): A default FGEquiv between empty substructures (#16533) Makes `FirstOrder.Language.Constants` an `abbrev` Provides an `IsEmpty` instance for the substructure `⊥` in a language without constants. Provides an `Inhabited` instance for `FirstOrder.Language.FGEquiv` between any two structures in a language without constants or 0-ary relations - the default is an isomorphism between `⊥` substructures. ESTIMATED CHANGES Modified Mathlib/ModelTheory/Basic.lean Modified Mathlib/ModelTheory/FinitelyGenerated.lean Modified Mathlib/ModelTheory/PartialEquiv.lean Modified Mathlib/ModelTheory/Substructures.lean + theorem FirstOrder.Language.Substructure.closure_eq_of_isRelational + theorem FirstOrder.Language.Substructure.closure_insert + theorem FirstOrder.Language.Substructure.mem_closure_iff_of_isRelational 2024-09-07 09:03:56 0c58344 feat(KrullDimension): Order.height_eq_index_of_length_eq_height_last (#16500) This pulls the next interesting lemma off the too-large PR #15524, and towards that creates useful `height_le` and `length_le_height` lemmas to show inequalities involving `height`. From the Carleson project. ESTIMATED CHANGES Modified Mathlib/Order/KrullDimension.lean + theorem Order.height_eq_iSup_last_eq + theorem Order.height_eq_index_of_length_eq_height_last +/- theorem Order.height_le + theorem Order.height_le_iff' + theorem Order.height_le_iff + theorem Order.index_le_height 2024-09-07 09:03:54 080e48f fix: make `Equiv.Perm.cycleFactors` able to be reduced (#16482) There was a `let` in the definition that was doing cases on an `And` before constructing the return value, which caused reduction to get stuck, since that would require the proofs to reduce to `And.intro` constructors. Moving the splitting of the `And` into the subproofs fixes this. ESTIMATED CHANGES Modified Mathlib/GroupTheory/Perm/Cycle/Factors.lean 2024-09-07 08:37:58 ce32dd9 feat(Category/Basic): make `mono_comp` and `epi_comp` instances and golf proofs (#16530) This PR attempts to make `mono_comp` and `epi_comp` instances. ESTIMATED CHANGES Modified Mathlib/Algebra/Category/ModuleCat/Sheaf/Generators.lean Modified Mathlib/Algebra/Homology/HomologySequenceLemmas.lean Modified Mathlib/Algebra/Homology/ImageToKernel.lean Modified Mathlib/Algebra/Homology/ShortComplex/HomologicalComplex.lean Modified Mathlib/CategoryTheory/Abelian/DiagramLemmas/Four.lean Modified Mathlib/CategoryTheory/Abelian/NonPreadditive.lean Modified Mathlib/CategoryTheory/Category/Basic.lean + theorem CategoryTheory.cancel_epi_assoc_iff + theorem CategoryTheory.cancel_mono_assoc_iff - theorem CategoryTheory.epi_comp +/- theorem CategoryTheory.epi_of_epi - theorem CategoryTheory.mono_comp +/- theorem CategoryTheory.mono_of_mono Modified Mathlib/CategoryTheory/Closed/Cartesian.lean Modified Mathlib/CategoryTheory/Functor/EpiMono.lean Modified Mathlib/CategoryTheory/GlueData.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Images.lean Modified Mathlib/CategoryTheory/Limits/Shapes/StrongEpi.lean Modified Mathlib/CategoryTheory/MorphismProperty/Basic.lean Modified Mathlib/CategoryTheory/Simple.lean Modified Mathlib/CategoryTheory/Subobject/Limits.lean Modified Mathlib/CategoryTheory/Subobject/MonoOver.lean 2024-09-07 07:39:53 f90f083 chore: remove unnecessary import (#16561) ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/TensorProduct/Graded/Internal.lean 2024-09-06 22:51:06 5695a9f feat(Algebra/Order/SuccPred): typeclass for `succ x = x + 1` (#16484) We create the `SuccAddOrder` typeclass for `SuccOrder`s satisfying `succ x = x + 1`. The instances of this are `ℕ`, `ℤ`, `ℕ∞`, and `Ordinal` (as well as the type alias `NatOrdinal`). On such types, `x + 1` should be the preferred form to write `succ x`. This typeclass avoids the need of having to rewrite `x + 1` as `succ x` and back just to apply the common lemmas on `SuccOrder`. Moreover, there's been talk on [Zulip](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/weaker.20SuccOrder.2FPredOrder/near/467548394) about generalizing `Order.succ` and `Order.pred` to arbitrary preorders. This would make it so that we could no longer set the def-eq `succ x = x + 1`, but having this typeclass means that's not really an issue. We dually define the `PredSubOrder` typeclass for `pred x = x - 1`. This one is admittedly quite more niche, with the only instances being `ℕ` and `ℤ`. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Order/SuccPred.lean + theorem Order.add_one_le_iff + theorem Order.add_one_le_iff_of_not_isMax + theorem Order.add_one_le_of_lt + theorem Order.covBy_add_one + theorem Order.covBy_iff_add_one_eq + theorem Order.covBy_iff_sub_one_eq + theorem Order.le_of_lt_add_one + theorem Order.le_of_sub_one_lt + theorem Order.le_sub_one_iff + theorem Order.le_sub_one_iff_of_not_isMin + theorem Order.le_sub_one_of_lt + theorem Order.lt_add_one_iff + theorem Order.lt_add_one_iff_of_not_isMax + theorem Order.lt_one_iff_nonpos + theorem Order.not_isMax_zero + theorem Order.one_le_iff_pos + theorem Order.pred_eq_sub_one + theorem Order.pred_iterate + theorem Order.sub_one_covBy + theorem Order.sub_one_lt_iff + theorem Order.sub_one_lt_iff_of_not_isMin + theorem Order.sub_one_wcovBy + theorem Order.succ_eq_add_one + theorem Order.succ_iterate + theorem Order.wcovBy_add_one Modified Mathlib/Analysis/Calculus/ContDiff/Defs.lean Modified Mathlib/Analysis/Calculus/SmoothSeries.lean Modified Mathlib/Analysis/Fourier/FourierTransformDeriv.lean Modified Mathlib/Combinatorics/SimpleGraph/Coloring.lean Modified Mathlib/Combinatorics/SimpleGraph/ConcreteColorings.lean Modified Mathlib/Combinatorics/SimpleGraph/Diam.lean Modified Mathlib/Combinatorics/SimpleGraph/Hasse.lean Modified Mathlib/Combinatorics/SimpleGraph/Metric.lean Modified Mathlib/Data/ENat/Basic.lean +/- theorem ENat.succ_def Modified Mathlib/Data/Int/SuccPred.lean - theorem Int.pred_iterate +/- theorem Int.sub_one_covBy - theorem Int.succ_iterate Modified Mathlib/Data/Nat/SuccPred.lean - theorem Nat.pred_iterate - theorem Nat.succ_iterate Modified Mathlib/Order/KonigLemma.lean Modified Mathlib/SetTheory/Ordinal/Basic.lean - theorem Ordinal.one_le_iff_pos Modified Mathlib/SetTheory/Ordinal/NaturalOps.lean +/- theorem NatOrdinal.add_one_eq_succ Modified Mathlib/Topology/Instances/ENat.lean 2024-09-06 21:42:55 7757799 refactor(Order/SuccPred/Limit): `IsSuccLimit` → `IsSuccPrelimit` (#16518) A future PR will redefine `IsSuccLimit` as a non-minimal `IsSuccPrelimit`. This matches standard usage for ordinals and cardinals. The "pre-" in the name was chosen by analogy to e.g. `PreconnectedSpace`. Every theorem that previously used `isSuccLimit` in its name is deprecated. Some of these will be overwritten once `IsSuccLimit` is defined. ESTIMATED CHANGES Modified Mathlib/Order/SuccPred/CompleteLinearOrder.lean - theorem IsGLB.exists_of_nonempty_of_not_isPredLimit + theorem IsGLB.exists_of_nonempty_of_not_isPredPrelimit - theorem IsGLB.exists_of_not_isPredLimit + theorem IsGLB.exists_of_not_isPredPrelimit - theorem IsGLB.mem_of_nonempty_of_not_isPredLimit + theorem IsGLB.mem_of_nonempty_of_not_isPredPrelimit - theorem IsGLB.mem_of_not_isPredLimit + theorem IsGLB.mem_of_not_isPredPrelimit - theorem IsLUB.exists_of_nonempty_of_not_isSuccLimit + theorem IsLUB.exists_of_nonempty_of_not_isSuccPrelimit - theorem IsLUB.exists_of_not_isSuccLimit + theorem IsLUB.exists_of_not_isSuccPrelimit - theorem IsLUB.mem_of_nonempty_of_not_isSuccLimit + theorem IsLUB.mem_of_nonempty_of_not_isSuccPrelimit - theorem IsLUB.mem_of_not_isSuccLimit + theorem IsLUB.mem_of_not_isSuccPrelimit - theorem csInf_mem_of_not_isPredLimit + theorem csInf_mem_of_not_isPredPrelimit - theorem csSup_mem_of_not_isSuccLimit' - theorem csSup_mem_of_not_isSuccLimit + theorem csSup_mem_of_not_isSuccPrelimit' + theorem csSup_mem_of_not_isSuccPrelimit - theorem exists_eq_ciInf_of_not_isPredLimit + theorem exists_eq_ciInf_of_not_isPredPrelimit - theorem exists_eq_ciSup_of_not_isSuccLimit' - theorem exists_eq_ciSup_of_not_isSuccLimit + theorem exists_eq_ciSup_of_not_isSuccPrelimit' + theorem exists_eq_ciSup_of_not_isSuccPrelimit - theorem exists_eq_iInf_of_not_isPredLimit + theorem exists_eq_iInf_of_not_isPredPrelimit - theorem exists_eq_iSup_of_not_isSuccLimit + theorem exists_eq_iSup_of_not_isSuccPrelimit - theorem sInf_mem_of_not_isPredLimit + theorem sInf_mem_of_not_isPredPrelimit - theorem sSup_mem_of_not_isSuccLimit + theorem sSup_mem_of_not_isSuccPrelimit Modified Mathlib/Order/SuccPred/Limit.lean - theorem Order.IsPredLimit.lt_pred - theorem Order.IsPredLimit.lt_pred_iff - theorem Order.IsPredLimit.pred_ne - def Order.IsPredLimit + theorem Order.IsPredPrelimit.lt_pred + theorem Order.IsPredPrelimit.lt_pred_iff + theorem Order.IsPredPrelimit.pred_ne + def Order.IsPredPrelimit - theorem Order.IsSuccLimit.isMin_of_noMax - theorem Order.IsSuccLimit.succ_lt - theorem Order.IsSuccLimit.succ_lt_iff - theorem Order.IsSuccLimit.succ_ne - def Order.IsSuccLimit + theorem Order.IsSuccPrelimit.isMin_of_noMax + theorem Order.IsSuccPrelimit.succ_lt + theorem Order.IsSuccPrelimit.succ_lt_iff + theorem Order.IsSuccPrelimit.succ_ne + def Order.IsSuccPrelimit - theorem Order.isPredLimitRecOn_limit - theorem Order.isPredLimitRecOn_pred' - theorem Order.isPredLimitRecOn_pred - theorem Order.isPredLimit_iff - theorem Order.isPredLimit_iff_lt_pred - theorem Order.isPredLimit_iff_of_noMin - theorem Order.isPredLimit_of_dense - theorem Order.isPredLimit_of_pred_lt - theorem Order.isPredLimit_of_pred_ne - theorem Order.isPredLimit_toDual_iff - theorem Order.isPredLimit_top + theorem Order.isPredPrelimitRecOn_limit + theorem Order.isPredPrelimitRecOn_pred' + theorem Order.isPredPrelimitRecOn_pred + theorem Order.isPredPrelimit_iff + theorem Order.isPredPrelimit_iff_lt_pred + theorem Order.isPredPrelimit_iff_of_noMin + theorem Order.isPredPrelimit_of_dense + theorem Order.isPredPrelimit_of_pred_lt + theorem Order.isPredPrelimit_of_pred_ne + theorem Order.isPredPrelimit_toDual_iff + theorem Order.isPredPrelimit_top - theorem Order.isSuccLimitRecOn_limit - theorem Order.isSuccLimitRecOn_succ' - theorem Order.isSuccLimitRecOn_succ - theorem Order.isSuccLimit_bot - theorem Order.isSuccLimit_iff - theorem Order.isSuccLimit_iff_of_noMax - theorem Order.isSuccLimit_iff_succ_lt - theorem Order.isSuccLimit_iff_succ_ne - theorem Order.isSuccLimit_of_dense - theorem Order.isSuccLimit_of_succ_lt - theorem Order.isSuccLimit_of_succ_ne - theorem Order.isSuccLimit_toDual_iff + theorem Order.isSuccPrelimitRecOn_limit + theorem Order.isSuccPrelimitRecOn_succ' + theorem Order.isSuccPrelimitRecOn_succ + theorem Order.isSuccPrelimit_bot + theorem Order.isSuccPrelimit_iff + theorem Order.isSuccPrelimit_iff_of_noMax + theorem Order.isSuccPrelimit_iff_succ_lt + theorem Order.isSuccPrelimit_iff_succ_ne + theorem Order.isSuccPrelimit_of_dense + theorem Order.isSuccPrelimit_of_succ_lt + theorem Order.isSuccPrelimit_of_succ_ne + theorem Order.isSuccPrelimit_toDual_iff - theorem Order.mem_range_pred_of_not_isPredLimit + theorem Order.mem_range_pred_of_not_isPredPrelimit - theorem Order.mem_range_pred_or_isPredLimit + theorem Order.mem_range_pred_or_isPredPrelimit - theorem Order.mem_range_succ_of_not_isSuccLimit + theorem Order.mem_range_succ_of_not_isSuccPrelimit - theorem Order.mem_range_succ_or_isSuccLimit + theorem Order.mem_range_succ_or_isSuccPrelimit - theorem Order.not_isPredLimit - theorem Order.not_isPredLimit_iff - theorem Order.not_isPredLimit_iff_exists_covBy - theorem Order.not_isPredLimit_of_noMin - theorem Order.not_isPredLimit_pred - theorem Order.not_isPredLimit_pred_of_not_isMin + theorem Order.not_isPredPrelimit + theorem Order.not_isPredPrelimit_iff + theorem Order.not_isPredPrelimit_iff_exists_covBy + theorem Order.not_isPredPrelimit_of_noMin + theorem Order.not_isPredPrelimit_pred + theorem Order.not_isPredPrelimit_pred_of_not_isMin - theorem Order.not_isSuccLimit - theorem Order.not_isSuccLimit_iff' - theorem Order.not_isSuccLimit_iff - theorem Order.not_isSuccLimit_iff_exists_covBy - theorem Order.not_isSuccLimit_of_noMax - theorem Order.not_isSuccLimit_succ - theorem Order.not_isSuccLimit_succ_of_not_isMax + theorem Order.not_isSuccPrelimit + theorem Order.not_isSuccPrelimit_iff' + theorem Order.not_isSuccPrelimit_iff + theorem Order.not_isSuccPrelimit_iff_exists_covBy + theorem Order.not_isSuccPrelimit_of_noMax + theorem Order.not_isSuccPrelimit_succ + theorem Order.not_isSuccPrelimit_succ_of_not_isMax - theorem PredOrder.limitRecOn_limit - theorem PredOrder.limitRecOn_pred + theorem PredOrder.prelimitRecOn_limit + theorem PredOrder.prelimitRecOn_pred - theorem SuccOrder.limitRecOn_limit - theorem SuccOrder.limitRecOn_succ + theorem SuccOrder.prelimitRecOn_limit + theorem SuccOrder.prelimitRecOn_succ Modified Mathlib/SetTheory/Cardinal/Basic.lean - theorem Cardinal.exists_eq_of_iSup_eq_of_not_isSuccLimit + theorem Cardinal.exists_eq_of_iSup_eq_of_not_isSuccPrelimit - theorem Cardinal.isSuccLimit_aleph0 - theorem Cardinal.isSuccLimit_zero + theorem Cardinal.isSuccPrelimit_aleph0 + theorem Cardinal.isSuccPrelimit_zero Modified Mathlib/SetTheory/Cardinal/Cofinality.lean +/- theorem Cardinal.isStrongLimit_beth Modified Mathlib/SetTheory/Ordinal/Arithmetic.lean - theorem Ordinal.IsLimit.isSuccLimit + theorem Ordinal.IsLimit.isSuccPrelimit - theorem Ordinal.isSuccLimit_zero + theorem Ordinal.isSuccPrelimit_zero 2024-09-06 20:15:29 b0bb2ea feat: `ℤ_[p]` is totally bounded and compact; `ℚ_[p]` is locally compact (#16505) Prove that the padic integers, `ℤ_[p]`, are totally bounded and compact, and that the padic numbers, `ℚ_[p]`, are locally compact. This was requested [on zulip](https://leanprover.zulipchat.com/#narrow/stream/217875-Is-there-code-for-X.3F/topic/Zp.20is.20compact.3F). ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/NumberTheory/Padics/ProperSpace.lean + theorem PadicInt.totallyBounded_univ 2024-09-06 19:00:51 a4b56a0 feat(Combinatorics/SimpleGraph): add miscellaneous lemmas (#16294) ESTIMATED CHANGES Modified Mathlib/Combinatorics/SimpleGraph/Dart.lean + theorem SimpleGraph.Dart.fst_ne_snd + theorem SimpleGraph.Dart.snd_ne_fst Modified Mathlib/Combinatorics/SimpleGraph/Walk.lean + theorem SimpleGraph.Walk.getLast_darts_snd + theorem SimpleGraph.Walk.getLast_support + theorem SimpleGraph.Walk.head_darts_fst + theorem SimpleGraph.Walk.head_support 2024-09-06 17:25:05 8f25b64 chore: update Mathlib dependencies 2024-09-06 (#16540) This PR updates the Mathlib dependencies. ESTIMATED CHANGES Modified lake-manifest.json 2024-09-06 17:25:04 247ff18 chore(SetTheory/Game/Impartial): cleanup proofs (#16517) We clean up remnants of the Lean 3 `termination_by` syntax, as well as some exposed setoid API. ESTIMATED CHANGES Modified Mathlib/SetTheory/Game/Basic.lean +/- theorem SetTheory.PGame.quot_add +/- theorem SetTheory.PGame.quot_mul_zero +/- theorem SetTheory.PGame.quot_neg + theorem SetTheory.PGame.quot_one +/- theorem SetTheory.PGame.quot_sub + theorem SetTheory.PGame.quot_zero +/- theorem SetTheory.PGame.quot_zero_mul Modified Mathlib/SetTheory/Game/Impartial.lean +/- theorem SetTheory.PGame.Impartial.impartial_congr +/- theorem SetTheory.PGame.Impartial.mk'_add_self +/- theorem SetTheory.PGame.Impartial.mk'_neg_equiv_self +/- theorem SetTheory.PGame.Impartial.nonneg +/- theorem SetTheory.PGame.Impartial.nonpos +/- def SetTheory.PGame.ImpartialAux +/- theorem SetTheory.PGame.impartialAux_def 2024-09-06 16:27:00 329f679 feat(Order/Hom): `denselyOrdered_iff_of_orderIsoClass` (#16427) Also add a DenselyOrdered of subsingleton types And additional API for order isos: `map_inv_le_map_inv_iff` `map_inv_lt_map_inv_iff` ESTIMATED CHANGES Modified Mathlib/Order/Basic.lean + theorem Subsingleton.instDenselyOrdered Modified Mathlib/Order/Hom/Basic.lean + theorem denselyOrdered_iff_of_orderIsoClass + theorem map_inv_le_map_inv_iff + theorem map_inv_lt_map_inv_iff 2024-09-06 16:26:59 e2b3fd1 feat(Topology/Baire): add basics of Baire measurability (#14774) Add the notion of Baire measurability for sets in a topological space, analogous to null measurability for sets in a measure space. A follow-up PR will add the Kuratowski-Ulam theorem. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Topology/Baire/BaireMeasurable.lean + theorem BaireMeasurableSet.biInter + theorem BaireMeasurableSet.biUnion + theorem BaireMeasurableSet.compl + theorem BaireMeasurableSet.congr + theorem BaireMeasurableSet.diff + theorem BaireMeasurableSet.iInter + theorem BaireMeasurableSet.iUnion + theorem BaireMeasurableSet.iff_residualEq_isOpen + theorem BaireMeasurableSet.inter + theorem BaireMeasurableSet.of_compl + theorem BaireMeasurableSet.of_mem_residual + theorem BaireMeasurableSet.preimage + theorem BaireMeasurableSet.residualEq_isOpen + theorem BaireMeasurableSet.sInter + theorem BaireMeasurableSet.sUnion + theorem BaireMeasurableSet.union + def BaireMeasurableSet + theorem Homeomorph.residual_map_eq + theorem IsMeagre.baireMeasurableSet + theorem IsMeagre.preimage_of_isOpenMap + theorem IsOpen.baireMeasurableSet + theorem MeasurableSet.baireMeasurableSet + theorem MeasurableSet.residualEq_isOpen + theorem tendsto_residual_of_isOpenMap Modified Mathlib/Topology/LocallyClosed.lean + theorem coborder_eq_union_closure_compl + theorem dense_coborder 2024-09-06 15:31:03 ca6172c chore: fix spelling mistakes (#16537) ESTIMATED CHANGES Modified Mathlib/Analysis/InnerProductSpace/Projection.lean Modified Mathlib/MeasureTheory/Function/ConvergenceInMeasure.lean Modified Mathlib/MeasureTheory/Function/UniformIntegrable.lean Modified Mathlib/Order/Filter/Interval.lean Modified Mathlib/SetTheory/ZFC/Rank.lean Modified Mathlib/Tactic/Linter/FlexibleLinter.lean Modified Mathlib/Topology/UrysohnsLemma.lean 2024-09-06 11:13:32 24fce2d chore: address more adaptation notes from leanprover/lean4#5020 (#16528) We make miscellaneous changes to either remove or clarify `adaptation_notes` coming from leanprover/lean4#5020. ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Subgroup/MulOpposite.lean Modified Mathlib/Combinatorics/SimpleGraph/Matching.lean Modified Mathlib/GroupTheory/SpecificGroups/Cyclic.lean Modified Mathlib/ModelTheory/PartialEquiv.lean Modified Mathlib/Topology/MetricSpace/Polish.lean Modified Mathlib/Topology/Sets/Opens.lean 2024-09-06 09:40:35 fd286d4 chore: split Algebra.Group.UniqueProds, to reduce imports (#16527) This import was unnecessarily pulling a lot of linear algebra into places it wasn't needed. ESTIMATED CHANGES Modified Counterexamples/ZeroDivisorsInAddMonoidAlgebras.lean Modified Mathlib.lean Renamed Mathlib/Algebra/Group/UniqueProds.lean to Mathlib/Algebra/Group/UniqueProds/Basic.lean Added Mathlib/Algebra/Group/UniqueProds/VectorSpace.lean Modified Mathlib/Algebra/Module/Torsion.lean Modified Mathlib/Algebra/MonoidAlgebra/NoZeroDivisors.lean Modified Mathlib/LinearAlgebra/FreeAlgebra.lean 2024-09-06 09:20:07 3733a7d feat: the top-dimensional Hausdorff measure is a Haar measure (#16524) ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Measure/Hausdorff.lean 2024-09-06 09:20:06 8c0caec feat(MeasurePreserving): add `aeconst_comp` (#16271) ESTIMATED CHANGES Modified Mathlib/Dynamics/Ergodic/MeasurePreserving.lean + theorem MeasureTheory.MeasurePreserving.aeconst_comp + theorem MeasureTheory.MeasurePreserving.aeconst_preimage 2024-09-06 08:34:23 3080756 chore(AddCircle): drop a `nolint` (#16519) It's no longer relevant. ESTIMATED CHANGES Modified Mathlib/Topology/Instances/AddCircle.lean 2024-09-06 08:34:22 cf412fc refactor(ModelTheory): Remove `FirstOrder.Language.mk₂` and related constructors (#16369) Redefines `FirstOrder.Language.constantsOn` to not use `FirstOrder.Language.mk₂` Removes `FirstOrder.Language.mk₂` and related constructors, and lemmas about them These constructors were set up to define first-order languages and structures with symbols of at most binary arity. While they provided a unifying framework for constructing all specific examples of first-order languages in mathlib so far, working with them was not as simple (at least in Lean4) as defining the function and relation symbol type sequences (of type `ℕ → Type u`) as `inductive`s, as seen first with `FirstOrder.Language.ring`. Once the last use case of these constructors, `FirstOrder.Language.constantsOn`, turned out to be at least as easy to define and work with without the constructors, there seems to be no remaining reason to keep them around. Their main advantage was that they required relatively little knowledge of Lean syntax to use, but now there are several examples of inductive `FirstOrder.Language` definitions to use as templates. Deletions: - FirstOrder.Language.RelMap₂ - FirstOrder.Language.Sequence₂ - FirstOrder.Language.Structure.mk₂ - FirstOrder.Language.card_mk₂ - FirstOrder.Language.constants_mk₂ - FirstOrder.Language.funMap_apply₀ - FirstOrder.Language.funMap_apply₁ - FirstOrder.Language.funMap_apply₂ - FirstOrder.Language.funMap₂ - FirstOrder.Language.inhabited₀ - FirstOrder.Language.inhabited₁ - FirstOrder.Language.inhabited₂ - FirstOrder.Language.isAlgebraic_mk₂ - FirstOrder.Language.isRelational_mk₂ - FirstOrder.Language.lift_mk - FirstOrder.Language.mk₂_funext - FirstOrder.Language.relMap_apply₁ - FirstOrder.Language.relMap_apply₂ - FirstOrder.Language.subsingleton_mk₂_functions - FirstOrder.Language.subsingleton_mk₂_relations - FirstOrder.Language.sum_card - FirstOrder.Language.mk₂ ESTIMATED CHANGES Modified Mathlib/ModelTheory/Basic.lean - def FirstOrder.Language.RelMap₂ - theorem FirstOrder.Language.Structure.funMap_apply₀ - theorem FirstOrder.Language.Structure.funMap_apply₁ - theorem FirstOrder.Language.Structure.funMap_apply₂ - theorem FirstOrder.Language.Structure.relMap_apply₁ - theorem FirstOrder.Language.Structure.relMap_apply₂ - theorem FirstOrder.Language.card_mk₂ - theorem FirstOrder.Language.constants_mk₂ - def FirstOrder.Language.funMap₂ - theorem FirstOrder.Sequence₂.lift_mk - theorem FirstOrder.Sequence₂.sum_card - def FirstOrder.Sequence₂ Modified Mathlib/ModelTheory/Definability.lean Modified Mathlib/ModelTheory/LanguageMap.lean +/- def FirstOrder.Language.LHom.constantsOnMap - theorem FirstOrder.Language.LHom.mk₂_funext +/- theorem FirstOrder.Language.card_constantsOn +/- def FirstOrder.Language.constantsOn.structure +/- def FirstOrder.Language.constantsOn + def FirstOrder.Language.constantsOnFunc Modified Mathlib/ModelTheory/Semantics.lean 2024-09-06 08:34:21 407c15b feat(Topology): 2 lemmas about `nhdsAdjoint` (#16363) ESTIMATED CHANGES Modified Mathlib/Topology/Order.lean + theorem coinduced_nhdsAdjoint + theorem continuous_nhdsAdjoint_dom 2024-09-06 08:34:20 754844d chore(RingTheory/UniqueFactorizationDomain): make `WfDvdMonoid α` an abbreviation for `IsWellFounded α DvdNotUnit` (#16145) We also rewrite some `WellFounded ((· < ·) : α → α → Prop)` lemmas in terms of the much less clunky `WellFoundedLT α`. ESTIMATED CHANGES Modified Mathlib/RingTheory/DedekindDomain/Ideal.lean Modified Mathlib/RingTheory/Polynomial/Basic.lean Modified Mathlib/RingTheory/UniqueFactorizationDomain.lean + theorem WfDvdMonoid.of_wellFoundedLT_associates + theorem WfDvdMonoid.wellFoundedLT_associates + theorem wellFounded_dvdNotUnit 2024-09-06 08:34:19 c7cbb88 feat(SetTheory/ZFC): Add `PSet.rank` and `ZFSet.rank` (#15977) Add ordinal ranks of `PSet` and `ZFSet`. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/SetTheory/ZFC/Rank.lean + theorem PSet.le_succ_rank_sUnion + theorem PSet.lt_rank_iff + theorem PSet.rank_congr + theorem PSet.rank_empty + theorem PSet.rank_eq_wfRank + theorem PSet.rank_insert + theorem PSet.rank_le_iff + theorem PSet.rank_lt_of_mem + theorem PSet.rank_mono + theorem PSet.rank_pair + theorem PSet.rank_powerset + theorem PSet.rank_sUnion_le + theorem PSet.rank_singleton + theorem ZFSet.le_succ_rank_sUnion + theorem ZFSet.lt_rank_iff + theorem ZFSet.rank_empty + theorem ZFSet.rank_eq_wfRank + theorem ZFSet.rank_insert + theorem ZFSet.rank_le_iff + theorem ZFSet.rank_lt_of_mem + theorem ZFSet.rank_mono + theorem ZFSet.rank_pair + theorem ZFSet.rank_powerset + theorem ZFSet.rank_range + theorem ZFSet.rank_sUnion_le + theorem ZFSet.rank_singleton + theorem ZFSet.rank_union 2024-09-06 08:34:18 3a640cf chore(Topology/Sets): add `simp(s)` lemmas (#15955) ESTIMATED CHANGES Modified Mathlib/Topology/Sets/Closeds.lean + theorem TopologicalSpace.Closeds.mem_closure Modified Mathlib/Topology/Sets/Opens.lean +/- theorem TopologicalSpace.Opens.gc +/- def TopologicalSpace.Opens.gi + theorem TopologicalSpace.Opens.mem_comap + theorem TopologicalSpace.Opens.mem_interior 2024-09-06 08:34:17 e0b63f4 feat(Algebra/EuclideanDomain/Defs): add `IsWellFounded` instance (#15796) This does add an import, but it's a very early one at that. ESTIMATED CHANGES Modified Mathlib/Algebra/EuclideanDomain/Defs.lean 2024-09-06 08:34:16 49c7342 feat(Topology/Group): add `QuotientGroup.dense{pre,}image_mk` (#15576) ESTIMATED CHANGES Modified Mathlib/Topology/Algebra/Group/Basic.lean + theorem QuotientGroup.dense_image_mk + theorem QuotientGroup.dense_preimage_mk 2024-09-06 07:37:12 6356761 feat: rewrite the windows line ending linter in Lean (#16332) This linter is different from the other text-based linters, as it does not operate on the output of `IO.FS.lines`: since Lean 4.11, that function treats windows and unix line endings the same, hence its result is not useful here. Instead, we read the file contents and use `crlfToLf` to detect windows endings. We consciously do not convert this to a syntax-based linter: if a file has bad line endings, it is plausible that many line endings are unexpected, and the best fix is automatic (not manual, as a syntax linter would prompt one to). This is the first text-based linter which includes an automatic fix: hence, we also add the corresponding infrastructure to perform such fixes in general. ESTIMATED CHANGES Modified Mathlib/Tactic/Linter/TextBased.lean Modified scripts/lint-style.lean Modified scripts/lint-style.py 2024-09-06 06:04:33 fd6c311 fix(fun_prop): improved handling of terms mixing lambdas and lets (#16371) fun_prop: Improved handling of lets and fvars - improved handling of terms mixing lambdas and lets - make sure that fvars are unfolded only when necessary ESTIMATED CHANGES Modified Mathlib/Tactic/FunProp/Core.lean Modified Mathlib/Tactic/FunProp/FunctionData.lean Modified Mathlib/Tactic/FunProp/ToBatteries.lean + def Mathlib.Meta.FunProp.betaThroughLet + def Mathlib.Meta.FunProp.headBetaThroughLet Modified test/fun_prop_dev.lean 2024-09-06 05:33:56 e1b4f2d chore(SetTheory/Ordinal/Basic): tweak ordinal `simp` lemmas (#15722) Add back some `simp` lemmas lost during porting, fully remove others: - `type_preimage` is simp normal, so the awkward `type_preimage_aux` isn't needed. - Same with `type_uLift`, and the universe annotations aren't needed (but they might be wanted anyways, that could be a separate PR for that whole section of the file) - The porting notes for `lift_umax`, `lift_umax'`, and `lift_id'` were moved into the docstring. - Remove porting note for `typein_le_typein'`, golf proof to `by simp` (do we want to do this?) - Remove `simp` from `enum_le_enum` as it in fact never applies (and is in the list of hot simp theorems that never work). ESTIMATED CHANGES Modified Mathlib/SetTheory/Ordinal/Basic.lean - theorem Ordinal.type_preimage_aux - theorem Ordinal.type_uLift_aux 2024-09-06 01:46:46 f35c1df chore: bump `importGraph` dependency (#16506) Bump `lake exe graph`. ESTIMATED CHANGES 2024-09-06 01:46:45 ed24dd8 refactor(Measure): move Borel-Cantelli, generalize (#16397) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/MeasureTheory/Function/ConvergenceInMeasure.lean Modified Mathlib/MeasureTheory/Measure/MeasureSpace.lean - theorem MeasureTheory.liminf_ae_eq_of_forall_ae_eq - theorem MeasureTheory.limsup_ae_eq_of_forall_ae_eq - theorem MeasureTheory.measure_liminf_eq_zero - theorem MeasureTheory.measure_limsup_eq_zero Modified Mathlib/MeasureTheory/Measure/Restrict.lean - theorem MeasureTheory.ae_eventually_not_mem - theorem MeasureTheory.measure_setOf_frequently_eq_zero Added Mathlib/MeasureTheory/OuterMeasure/BorelCantelli.lean + theorem MeasureTheory.ae_eventually_not_mem + theorem MeasureTheory.ae_finite_setOf_mem + theorem MeasureTheory.liminf_ae_eq_of_forall_ae_eq + theorem MeasureTheory.limsup_ae_eq_of_forall_ae_eq + theorem MeasureTheory.measure_liminf_atTop_eq_zero + theorem MeasureTheory.measure_liminf_cofinite_eq_zero + theorem MeasureTheory.measure_limsup_atTop_eq_zero + theorem MeasureTheory.measure_limsup_cofinite_eq_zero + theorem MeasureTheory.measure_setOf_frequently_eq_zero 2024-09-06 01:15:24 1c51e10 feat(Algebra/Polynomial/Basic): miscellaneous basic lemmas on polynomials (#16372) ESTIMATED CHANGES Modified Mathlib/Algebra/Polynomial/Basic.lean + theorem Polynomial.X_ne_C + theorem Polynomial.coeff_monomial_of_ne + theorem Polynomial.coeff_monomial_same + theorem Polynomial.monomial_eq_monomial_iff Modified Mathlib/Algebra/Polynomial/Lifts.lean Modified Mathlib/RingTheory/Polynomial/Basic.lean + theorem Polynomial.coeffs_monomial 2024-09-06 00:43:26 b67303d fix(add_label_from_*): whitelist bots, create workflow for review comments (#16515) Currently leanprover-community-mathlib4-bot and leanprover-community-bot-assistant write `bors merge` on PRs but the PRs do not get the ready-to-merge label because the workflow checks that the user has admin permissions. This usually wouldn't matter, but our "update dependencies" workflow uses the "ready-to-merge" label to determine whether to push another commit to its branch, so for example [this PR](https://github.com/leanprover-community/mathlib4/pull/16508#issuecomment-2331777031) got canceled by a bot push when it was already on the bors queue. In this PR I whitelist these two bots, and also take the opportunity to update these old workflows, replacing some outdated actions with the permission checking action we're using in the "bot fix style" workflows. One side effect is that these workflows will now run in forks if CI is enabled, which I think is (1) not a problem (2) probably extremely rare. (Anyone who wants them to work properly in their fork will need to create a repo secret named "TRIAGE_TOKEN" with public_repo permissions.) Finally, I create the until-now-missing workflow that responds to review comments. ESTIMATED CHANGES Modified .github/workflows/add_label_from_comment.yml Modified .github/workflows/add_label_from_review.yml Added .github/workflows/add_label_from_review_comment.yml 2024-09-06 00:43:25 d24a090 fix(fun_prop): make `fun_prop` to see through abbrev (#16512) Make `fun_prop` to see through `abbreb` definitions For example([zulip thread](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/abbrev.20and.20fun_prop)) ``` import Mathlib variable {α : Type*} [MeasurableSpace α] lemma foo : Measurable (id : α → α) := by fun_prop -- works abbrev my_id (α : Type*) [MeasurableSpace α] : α → α := id lemma bar : Measurable (my_id α) := by fun_prop -- fails ``` This PR makes `bar` provable by `fun_prop` (Also fixed one trace message) ESTIMATED CHANGES Modified Mathlib/Tactic/FunProp/Core.lean Modified Mathlib/Tactic/FunProp/FunctionData.lean Modified Mathlib/Tactic/FunProp/Mor.lean Modified test/fun_prop_dev.lean + theorem Mor.toFun_Con + structure Mor 2024-09-06 00:43:24 7d4c27b chore: rearrange imports between valuation rings and discrete valuation rings (#16498) Imports hopped back and forth between `RingTheory/DiscreteValuationRing` and `RingTheory/Valuation`. Now we make DVRs depend on valuation rings in the import graph, by moving one instance about DVRs out of `RingTheory/Valuation/ValuationRing.lean` into the folder on DVRs. ESTIMATED CHANGES Modified Mathlib/RingTheory/DiscreteValuationRing/Basic.lean Modified Mathlib/RingTheory/DiscreteValuationRing/TFAE.lean Modified Mathlib/RingTheory/Valuation/ValuationRing.lean 2024-09-06 00:34:00 1172b41 feat(ModelTheory/Order): Translate order-preserving maps in and out of model theory (#16493) Provides instances of `Language.order.(Strong)HomClass` for classes of order-preserving maps Shows that elements of a `Language.order.HomClass` are monotone (strictly if injective) ESTIMATED CHANGES Modified Mathlib/ModelTheory/Order.lean + theorem FirstOrder.Language.HomClass.monotone + theorem FirstOrder.Language.HomClass.strictMono + theorem FirstOrder.Language.StrongHomClass.toOrderIsoClass 2024-09-05 23:22:06 ad40d93 chore(TopologicalSpace.Opens): introduce `Opens.inclusion` (#16513) 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'`. ESTIMATED CHANGES Modified Mathlib/AlgebraicGeometry/AffineScheme.lean Modified Mathlib/AlgebraicGeometry/OpenImmersion.lean Modified Mathlib/AlgebraicGeometry/Restrict.lean Modified Mathlib/Geometry/Manifold/ChartedSpace.lean Modified Mathlib/Geometry/Manifold/ContMDiff/Basic.lean Modified Mathlib/Geometry/Manifold/LocalInvariantProperties.lean Modified Mathlib/Geometry/Manifold/Sheaf/Basic.lean Modified Mathlib/Geometry/Manifold/Sheaf/LocallyRingedSpace.lean Modified Mathlib/Geometry/RingedSpace/PresheafedSpace.lean Modified Mathlib/Topology/Category/TopCat/OpenNhds.lean +/- theorem TopologicalSpace.OpenNhds.openEmbedding Modified Mathlib/Topology/Category/TopCat/Opens.lean + theorem TopologicalSpace.Opens.coe_inclusion' - theorem TopologicalSpace.Opens.coe_inclusion + def TopologicalSpace.Opens.inclusion' + theorem TopologicalSpace.Opens.inclusion'_map_eq_top + theorem TopologicalSpace.Opens.inclusion'_top_functor - def TopologicalSpace.Opens.inclusion - theorem TopologicalSpace.Opens.inclusion_map_eq_top - theorem TopologicalSpace.Opens.inclusion_top_functor +/- theorem TopologicalSpace.Opens.openEmbedding + theorem TopologicalSpace.Opens.set_range_forget_map_inclusion' - theorem TopologicalSpace.Opens.set_range_forget_map_inclusion Modified Mathlib/Topology/Gluing.lean Modified Mathlib/Topology/Sets/Opens.lean 2024-09-05 22:51:50 05afde3 feat(Order/InitialSeg): a non-surjective initial segment is a principal segment (#16358) We had a statement `InitialSeg.eq_or_principal` saying essentially this, but not actually constructing the embedding. ESTIMATED CHANGES Modified Mathlib/Order/InitialSeg.lean + theorem InitialSeg.toPrincipalSeg_apply 2024-09-05 21:50:17 23475ea feat(SetTheory/Ordinal/NaturalOps): add missing instances (#16083) ESTIMATED CHANGES Modified Mathlib/SetTheory/Ordinal/NaturalOps.lean + theorem NatOrdinal.bot_eq_zero 2024-09-05 20:53:19 dcdf5aa feat(Filter): `IsCountablyGenerated (atTop : Filter (α × β))` (#16388) ESTIMATED CHANGES Modified Mathlib/Order/Filter/AtTopBot.lean 2024-09-05 20:53:18 3fbe1a0 feat: Add LinearOrderedCommMonoidWithZero and lemmas for unitInterval (#15436) ESTIMATED CHANGES Modified Mathlib/Topology/UnitInterval.lean + theorem unitInterval.coe_lt_one +/- theorem unitInterval.coe_ne_one +/- theorem unitInterval.coe_ne_zero + theorem unitInterval.coe_pos + theorem unitInterval.eq_one_or_eq_zero_of_le_mul + theorem unitInterval.le_symm_comm + theorem unitInterval.lt_symm_comm + theorem unitInterval.symm_eq_one + theorem unitInterval.symm_eq_zero + theorem unitInterval.symm_inj + theorem unitInterval.symm_le_comm + theorem unitInterval.symm_le_symm + theorem unitInterval.symm_lt_comm + theorem unitInterval.symm_lt_symm 2024-09-05 20:53:17 1a5a717 feat: flexible linter and tests (#11821) A linter for "flexible" tactic. The "flexible" linter makes sure that a "rigid" tactic (such as `rw`) does not act on the output of a "flexible" tactic (such as `simp`). This is an evolution of the "non-terminal `simp`" linter. Zulip threads: * [non-terminal `simp`](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/.60simp.60.20followers) * [flexible vs rigid](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/flexible.20vs.20rigid.20tactics) [Here is a gist](https://gist.github.com/adomani/2f7afc4bc515da47c3ff5c6e3f3bbbed) with the linter warnings from a previous run. In #11822, the linter runs on most of mathlib and you can see in the output of CI what issues it flags. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Tactic.lean Modified Mathlib/Tactic/Linter.lean Added Mathlib/Tactic/Linter/FlexibleLinter.lean + def Lean.Elab.TacticInfo.goalsCreatedBy + def Lean.Elab.TacticInfo.goalsTargetedBy + def Mathlib.Linter.Flexible.Stained.toFMVarId + inductive Mathlib.Linter.Flexible.Stained + def Mathlib.Linter.Flexible.extractCtxAndGoals + def Mathlib.Linter.Flexible.flexible + def Mathlib.Linter.Flexible.flexibleLinter + def Mathlib.Linter.Flexible.getFVarIdCandidates + def Mathlib.Linter.Flexible.getStained! + def Mathlib.Linter.Flexible.getStained + def Mathlib.Linter.Flexible.persistFVars + def Mathlib.Linter.Flexible.reallyPersist + def Mathlib.Linter.Flexible.stoppers + def Mathlib.Linter.Flexible.toStained + def Mathlib.Linter.Flexible.usesGoal? + def Mathlib.Linter.flexible? Added test/FlexibleLinter.lean 2024-09-05 19:53:33 f1e24dd feat(Logic/Basic): add ite_or (#16477) ite_and existed but ite_or did not, which is useful and also nice to have for the sake of completeness. ESTIMATED CHANGES Modified Mathlib/Logic/Basic.lean + theorem ite_or 2024-09-05 19:53:32 58a129d feat: ENat.toNat_{zero,one} (#16356) ESTIMATED CHANGES Modified Mathlib/Combinatorics/SimpleGraph/Diam.lean Modified Mathlib/Data/ENat/Basic.lean + theorem ENat.toNat_one + theorem ENat.toNat_zero Modified Mathlib/Data/Set/Card.lean 2024-09-05 19:53:31 9ebb98c chore(Topology/Group): golf (#15531) ESTIMATED CHANGES Modified Mathlib/GroupTheory/Coset/Basic.lean + theorem QuotientGroup.preimage_image_mk_eq_mul Modified Mathlib/Topology/Algebra/Group/Basic.lean 2024-09-05 18:55:02 c99d499 doc: Better explain `initialize_simps_projections` (#16290) The current docstring mentions `simpsAttr` in the very first sentence, but not `simps`. This striked me as odd as the former is an implementation detail while the latter is the actual useful interface. ESTIMATED CHANGES Modified Mathlib/Tactic/Simps/Basic.lean 2024-09-05 15:25:10 19f7187 feat(Algebra/Order): rewrite positive cones to use substructure pattern (#15975) * Rewrite (positive) cones in groups and rings to extend `Submonoid` and `Subsemiring`, respectively. This makes them easier to work with in applications. * Add multiplicative versions of cones in groups. * Add `nonneg` constructor for cones from ordered groups/rings. * Weaken definition of cones in rings slightly (previous definition was nonstandard due to nonstandard definition of linearly ordered ring) -- to compensate, a new fact (ordered domain is strictly ordered domain) has been added. ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Group/Cone.lean - structure AddCommGroup.PositiveCone - structure AddCommGroup.TotalPositiveCone + structure AddGroupCone + theorem GroupCone.coe_oneLE + theorem GroupCone.mem_oneLE + def GroupCone.oneLE + theorem GroupCone.oneLE_toSubmonoid + structure GroupCone - def LinearOrderedAddCommGroup.mkOfPositiveCone + def LinearOrderedCommGroup.mkOfCone - def OrderedAddCommGroup.mkOfPositiveCone + def OrderedCommGroup.mkOfCone Modified Mathlib/Algebra/Order/Ring/Basic.lean Modified Mathlib/Algebra/Order/Ring/Cone.lean + def LinearOrderedRing.mkOfCone - def LinearOrderedRing.mkOfPositiveCone + def OrderedRing.mkOfCone - theorem Ring.PositiveCone.one_pos - structure Ring.PositiveCone - structure Ring.TotalPositiveCone + theorem RingCone.coe_nonneg + theorem RingCone.mem_nonneg + def RingCone.nonneg + theorem RingCone.nonneg_toAddGroupCone + theorem RingCone.nonneg_toSubsemiring + structure RingCone - def StrictOrderedRing.mkOfPositiveCone 2024-09-05 14:33:43 0445181 chore: update Mathlib dependencies 2024-09-05 (#16508) This PR updates the Mathlib dependencies. ESTIMATED CHANGES Modified lake-manifest.json 2024-09-05 13:49:10 14a255b feat(Filer): generalize `exists_seq_monotone_tendsto_atTop_atTop` (#16389) from `[SemilatticeSup α]` to `[Preorder α] [IsDirected α (· ≤ ·)]`. ESTIMATED CHANGES Modified Mathlib/Order/Filter/AtTopBot.lean +/- theorem Filter.exists_seq_antitone_tendsto_atTop_atBot +/- theorem Filter.exists_seq_monotone_tendsto_atTop_atTop 2024-09-05 13:49:09 66787e8 feat(ModelTheory/Order): From order to structure and back (#16373) Makes `FirstOrder.Language.orderStructure` a `def` instead of an instance Provides `def`s to turn `L.Structure`s in ordered languages modelling the relevant theories into `LE`, `Preorder`, `PartialOrder`, and `LinearOrder`. ESTIMATED CHANGES Modified Mathlib/ModelTheory/Order.lean +/- theorem FirstOrder.Language.Term.realize_lt + def FirstOrder.Language.leOfStructure + def FirstOrder.Language.linearOrderOfModels + theorem FirstOrder.Language.order.relation_eq_leSymb +/- def FirstOrder.Language.orderLHom - theorem FirstOrder.Language.orderLHom_apply + def FirstOrder.Language.orderStructure +/- theorem FirstOrder.Language.orderedStructure_iff + def FirstOrder.Language.partialOrderOfModels + def FirstOrder.Language.preorderOfModels +/- theorem FirstOrder.Language.realize_noBotOrder +/- theorem FirstOrder.Language.realize_noBotOrder_iff +/- theorem FirstOrder.Language.realize_noTopOrder +/- theorem FirstOrder.Language.realize_noTopOrder_iff - theorem FirstOrder.Language.relMap_leSymb 2024-09-05 13:49:07 a111324 feat(MorphismProperty/Presheaf): Add basic properties of relatively representable morphisms (#16141) This PR adds some basic properties of the morphism property "relatively representable". ESTIMATED CHANGES Modified Mathlib/CategoryTheory/MorphismProperty/Representable.lean + theorem CategoryTheory.Functor.relativelyRepresentable.isomorphisms_le + theorem CategoryTheory.Functor.relativelyRepresentable.map + theorem CategoryTheory.Functor.relativelyRepresentable.of_isIso + theorem CategoryTheory.Functor.relativelyRepresentable.stableUnderBaseChange 2024-09-05 13:49:06 24f2f21 feat(Topology/ENat): multiplication is continuous (#15949) Also prove that subtraction is continuous away from `(⊤, ⊤)`. ESTIMATED CHANGES Modified Mathlib/Topology/Instances/ENat.lean + theorem ENat.tendsto_nhds_top_iff_natCast_lt + theorem Filter.Tendsto.enatSub 2024-09-05 13:49:05 b5068b8 feat(Algebra/Homology/Embedding): relation between `K ⟶ L.extend e` and `K.restriction e ⟶ L` (#15768) Given an embedding `e : Embedding c c'` of complex shapes satisfying `e.IsRelIff`, we obtain a bijection `e.homEquiv` between the type of morphisms `K ⟶ L.extend e` (with `K : HomologicalComplex C c'` and `L : HomologicalComplex C c`) and the subtype of morphisms `φ : K.restriction e ⟶ L` which satisfy a certain condition `e.HasLift φ`. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Homology/Embedding/HomEquiv.lean + def ComplexShape.Embedding.HasLift + theorem ComplexShape.Embedding.epi_liftExtend_f_iff + theorem ComplexShape.Embedding.homRestrict.comm + theorem ComplexShape.Embedding.homRestrict.f_eq + theorem ComplexShape.Embedding.homRestrict_f + theorem ComplexShape.Embedding.homRestrict_hasLift + theorem ComplexShape.Embedding.homRestrict_liftExtend + theorem ComplexShape.Embedding.homRestrict_precomp + theorem ComplexShape.Embedding.isIso_liftExtend_f_iff + theorem ComplexShape.Embedding.liftExtend.comm + theorem ComplexShape.Embedding.liftExtend.f_eq + theorem ComplexShape.Embedding.liftExtend_f + theorem ComplexShape.Embedding.liftExtend_homRestrict + theorem ComplexShape.Embedding.mono_liftExtend_f_iff 2024-09-05 13:49:03 e02e60e refactor(Topology/Group): reorganize section about quotient groups (#15529) - move `TopologicalGroup.exists_antitone_basis_nhds_one` up out of the section about quotient groups; - use `namespace QuotientGroup`; - rename `topologicalGroup_quotient` to `QuotientGroup.instTopologicalGroup`, turn the old name into a deprecated alias; - generalize `QuotientGroup.nhds_one_isCountablyGenerated` to `QuotientGroup.instFirstCountableTopology`. ESTIMATED CHANGES Modified Mathlib/Topology/Algebra/Group/Basic.lean +/- theorem QuotientGroup.isOpenMap_coe +/- theorem QuotientGroup.nhds_eq + theorem QuotientGroup.nhds_one_isCountablyGenerated + theorem QuotientGroup.quotientMap_mk +/- theorem TopologicalGroup.exists_antitone_basis_nhds_one + theorem topologicalGroup_quotient Modified Mathlib/Topology/Algebra/Module/Basic.lean 2024-09-05 13:22:06 3f81e05 chore: split out Topology.EMetricSpace.Pi (#16507) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Topology/EMetricSpace/Basic.lean - theorem edist_le_pi_edist - theorem edist_pi_const - theorem edist_pi_const_le - theorem edist_pi_def - theorem edist_pi_le_iff Modified Mathlib/Topology/EMetricSpace/Diam.lean Added Mathlib/Topology/EMetricSpace/Pi.lean + theorem edist_le_pi_edist + theorem edist_pi_const + theorem edist_pi_const_le + theorem edist_pi_def + theorem edist_pi_le_iff Modified Mathlib/Topology/MetricSpace/Pseudo/Pi.lean 2024-09-05 11:40:53 3e18f17 feat(GroupTheory/ArchimedeanDensely): `LinearOrderedAddCommGroup.discrete_or_denselyOrdered` (#15659) Classify linearly ordered archimedean additive groups, either they are discrete (order isomorphic to Int) or densely ordered. Also add some simple lemmas about the closure subgroup. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Group/Subgroup/Basic.lean + theorem Subgroup.mem_closure_singleton_self Modified Mathlib/Algebra/Group/Subgroup/Order.lean + theorem MulEquiv.strictMono_subsemigroupCongr + theorem MulEquiv.strictMono_symm + theorem Subsemigroup.strictMono_topEquiv Modified Mathlib/Algebra/Group/Subgroup/Pointwise.lean + theorem Subgroup.closure_singleton_inv Modified Mathlib/Algebra/Group/Subgroup/ZPowers.lean + theorem AddSubgroup.closure_singleton_int_one_eq_top + theorem AddSubgroup.zmultiples_one_eq_top Modified Mathlib/Algebra/Order/Group/Basic.lean + theorem zpow_right_inj Added Mathlib/GroupTheory/ArchimedeanDensely.lean + theorem AddSubgroup.isLeast_closure_iff_eq_abs + theorem LinearOrderedAddCommGroup.discrete_or_denselyOrdered + theorem Subgroup.mem_closure_singleton_iff_existsUnique_zpow Modified Mathlib/Logic/Equiv/Set.lean + theorem Equiv.Set.Equiv.strictMono_setCongr 2024-09-05 11:08:23 ff38cf1 chore(CategoryTheory/Sites): simplify definition of adjunction between sheaf categories (#16501) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Sites/Adjunction.lean + theorem CategoryTheory.Sheaf.adjunction_counit_app_val + theorem CategoryTheory.Sheaf.adjunction_unit_app_val - def CategoryTheory.Sheaf.composeEquiv 2024-09-05 10:53:37 280e811 chore(CategoryTheory/Sites): remove an `erw` (#16502) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Sites/PreservesSheafification.lean 2024-09-05 10:13:32 f9affb4 feat(KrullDimension): height refactor, initial stuff (#16480) This refactors and extends the definition of `height`. Notable changes: * Everything put into `namespace Order` * Type of `krullDim` changed from `WithBot (WithTop Nat)` to `WithBot ENat`. * Type of `height` changed from `WithBot (WithTop Nat)` to `ENat`. * Definition of `height` via `LTSeries` rather than krullDim From the Carleson project. ESTIMATED CHANGES Modified Mathlib/Order/KrullDimension.lean + theorem Order.height_le + theorem Order.height_mono + theorem Order.krullDim_eq_bot_of_isEmpty + theorem Order.krullDim_eq_iSup_height + theorem Order.krullDim_eq_iSup_length + theorem Order.krullDim_eq_length_of_finiteDimensionalOrder + theorem Order.krullDim_eq_of_orderIso + theorem Order.krullDim_eq_top_of_infiniteDimensionalOrder + theorem Order.krullDim_eq_zero_of_unique + theorem Order.krullDim_le_of_strictComono_and_surj + theorem Order.krullDim_le_of_strictMono + theorem Order.krullDim_nonneg_of_nonempty + theorem Order.krullDim_orderDual + theorem Order.length_le_height + theorem Order.length_le_height_last - theorem height_mono - theorem krullDim_eq_bot_of_isEmpty - theorem krullDim_eq_iSup_height - theorem krullDim_eq_length_of_finiteDimensionalOrder - theorem krullDim_eq_of_orderIso - theorem krullDim_eq_top_of_infiniteDimensionalOrder - theorem krullDim_eq_zero_of_unique - theorem krullDim_le_of_strictComono_and_surj - theorem krullDim_le_of_strictMono - theorem krullDim_nonneg_of_nonempty - theorem krullDim_orderDual Modified Mathlib/Topology/KrullDimension.lean 2024-09-05 09:21:21 994908e chore: fixes for the multiGoal linter (#16331) ESTIMATED CHANGES Modified Mathlib/Analysis/SpecialFunctions/BinaryEntropy.lean Modified Mathlib/Analysis/SpecialFunctions/Log/ENNRealLog.lean Modified Mathlib/Data/List/Lemmas.lean Modified Mathlib/Data/Multiset/Basic.lean Modified Mathlib/Data/Rat/Cast/CharZero.lean Modified Mathlib/Data/ZMod/Basic.lean Modified Mathlib/MeasureTheory/Function/AEEqFun.lean Modified Mathlib/Order/KonigLemma.lean Modified Mathlib/Topology/Homeomorph.lean 2024-09-05 09:21:19 b3c28ca feat(LTSeries): apply_add_index_le_apply_add_index_{int,nat} (#15383) from the Carleson project. ESTIMATED CHANGES Modified Mathlib/Order/RelSeries.lean + theorem LTSeries.apply_add_index_le_apply_add_index_int + theorem LTSeries.apply_add_index_le_apply_add_index_nat + theorem LTSeries.head_add_length_le_int + theorem LTSeries.head_add_length_le_nat 2024-09-05 08:22:53 9f9fa6c fix: disable the longFile linter in downstream projects (#16481) [Reported on Zulip](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/long.20file.20linter) ESTIMATED CHANGES Modified Mathlib/Tactic/Linter/Lint.lean Modified lakefile.lean 2024-09-05 08:22:51 f91e789 feat(Order/Max): basic `IsMin` / `IsBot` lemmas (#16453) ESTIMATED CHANGES Modified Mathlib/Order/Directed.lean +/- theorem exists_lt_of_directed_ge +/- theorem exists_lt_of_directed_le Modified Mathlib/Order/Max.lean 2024-09-05 08:22:50 7a1843a chore(CategoryTheory/Adjunction): address porting notes in `Reflective` file (#16089) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Adjunction/Reflective.lean - def CategoryTheory.equivEssImageOfReflective_counitIso_app - theorem CategoryTheory.equivEssImageOfReflective_map_counitIso_app_hom - theorem CategoryTheory.equivEssImageOfReflective_map_counitIso_app_inv Modified Mathlib/CategoryTheory/EssentialImage.lean + theorem CategoryTheory.Functor.essImage_ext 2024-09-05 07:28:57 d6ca7ae refactor(Order/OmegaCompletePartialOrder): Unify concepts of Scott Continuity (#13201) We currently have two related but different concepts of Scott Continuity in Mathlib - `ScottContinuous` in `Order/Bounds/Basic` and `OmegaCompletePartialOrder.Continuous'` in `Order/OmegaCompletePartialOrder`. We previously showed (#6831) that `ScottContinuous` implies `OmegaCompletePartialOrder.Continuous'` (in general the converse isn't true). This PR gives a more general definition of Scott Continuity, `ScottContinuousOn` which specialises to `ScottContinuous` and something equivalent to `OmegaCompletePartialOrder.Continuous'` to give a more satisfactory unification of the concepts. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Control/LawfulFix.lean + theorem Part.fix_eq_of_ωScottContinuous + theorem Part.fix_eq_ωSup_of_ωScottContinuous + theorem Part.ωScottContinuous_toUnitMono +/- theorem Pi.uncurry_curry_continuous + theorem Pi.uncurry_curry_ωScottContinuous + theorem Pi.ωScottContinuous_curry + theorem Pi.ωScottContinuous_uncurry Modified Mathlib/LinearAlgebra/Span.lean Modified Mathlib/Order/Bounds/Basic.lean - def ScottContinuous Modified Mathlib/Order/Category/OmegaCompletePartialOrder.lean Modified Mathlib/Order/Directed.lean Modified Mathlib/Order/FixedPoints.lean +/- theorem fixedPoints.gfp_eq_sInf_iterate +/- theorem fixedPoints.lfp_eq_sSup_iterate Modified Mathlib/Order/OmegaCompletePartialOrder.lean + theorem CompleteLattice.ωScottContinuous.bot + theorem CompleteLattice.ωScottContinuous.iSup + theorem CompleteLattice.ωScottContinuous.inf + theorem CompleteLattice.ωScottContinuous.prodMk + theorem CompleteLattice.ωScottContinuous.sSup + theorem CompleteLattice.ωScottContinuous.sup + theorem CompleteLattice.ωScottContinuous.top + def OmegaCompletePartialOrder.Chain.pair + theorem OmegaCompletePartialOrder.Chain.pair_succ + theorem OmegaCompletePartialOrder.Chain.pair_zero + theorem OmegaCompletePartialOrder.Chain.pair_zip_pair + theorem OmegaCompletePartialOrder.Chain.range_pair +/- theorem OmegaCompletePartialOrder.ContinuousHom.coe_mk +/- def OmegaCompletePartialOrder.ContinuousHom.comp +/- theorem OmegaCompletePartialOrder.ContinuousHom.comp_assoc +/- def OmegaCompletePartialOrder.ContinuousHom.const +/- def OmegaCompletePartialOrder.ContinuousHom.id + theorem OmegaCompletePartialOrder.ContinuousHom.ωScottContinuous.bind + theorem OmegaCompletePartialOrder.ContinuousHom.ωScottContinuous.map + theorem OmegaCompletePartialOrder.ContinuousHom.ωScottContinuous.seq + theorem OmegaCompletePartialOrder.flip₁_continuous' + theorem OmegaCompletePartialOrder.flip₂_continuous' + theorem OmegaCompletePartialOrder.ωScottContinuous.apply₂ + theorem OmegaCompletePartialOrder.ωScottContinuous.comp + theorem OmegaCompletePartialOrder.ωScottContinuous.const + theorem OmegaCompletePartialOrder.ωScottContinuous.id + theorem OmegaCompletePartialOrder.ωScottContinuous.isLUB + theorem OmegaCompletePartialOrder.ωScottContinuous.map_ωSup + theorem OmegaCompletePartialOrder.ωScottContinuous.monotone + theorem OmegaCompletePartialOrder.ωScottContinuous.of_apply₂ + def OmegaCompletePartialOrder.ωScottContinuous + theorem OmegaCompletePartialOrder.ωScottContinuous_iff_apply₂ + theorem OmegaCompletePartialOrder.ωScottContinuous_iff_map_ωSup_of_orderHom + theorem OmegaCompletePartialOrder.ωScottContinuous_iff_monotone_map_ωSup +/- theorem OmegaCompletePartialOrder.ωSup_le_iff - theorem Pi.OmegaCompletePartialOrder.flip₁_continuous' - theorem Pi.OmegaCompletePartialOrder.flip₂_continuous' + theorem ScottContinuous.ωScottContinuous Added Mathlib/Order/ScottContinuity.lean + theorem ScottContinuous.id + theorem ScottContinuous.scottContinuousOn + def ScottContinuous + theorem ScottContinuousOn.id + theorem ScottContinuousOn.mono + theorem ScottContinuousOn.prodMk + theorem ScottContinuousOn.sup₂ + def ScottContinuousOn + theorem scottContinuousOn_univ Modified Mathlib/Topology/OmegaCompletePartialOrder.lean +/- theorem Scott.IsOpen.isUpperSet +/- theorem Scott.isOpen_univ Modified Mathlib/Topology/Order/ScottTopology.lean 2024-09-05 06:53:13 0f3e468 feat(Nat/log): Nat.log 2 = Nat.log2 and linear bound on Nat.log (#15096) There is a `Nat.log2` function in Lean (Init/Data/Nat/Log2.lean), which corresponds to the floor log base 2 over Nat. This PR proves this connection and uses it to show that `Nat.log b n ≤ n` as a simple upper bound on Nat.log. ESTIMATED CHANGES Modified Mathlib/Data/Nat/Log.lean + theorem Nat.log2_eq_log_two + theorem Nat.log_le_self + theorem Nat.log_lt_self 2024-09-05 06:25:38 b3947ed feat(Order/SuccPred/LinearLocallyFinite): IsSuccArchimedean ↔ IsPredArchimedean on linear orders (#16460) This result is immediate from dualizing existing results. We also add a few missing (duplicate) instances for discoverability. ESTIMATED CHANGES Modified Mathlib/Order/SuccPred/LinearLocallyFinite.lean + theorem LinearOrder.isSuccArchimedean_iff_isPredArchimedean 2024-09-05 06:16:39 6272b2b fix(update_dependencies.yml): use correct branch ref and write to output (not env) (#16497) Follow-up to #16494. Actually tested this time. ESTIMATED CHANGES Modified .github/workflows/update_dependencies.yml 2024-09-05 06:02:05 af6a640 fix(*.yml): robustify checks for line endings (#16456) Currently the bots sometimes end up failing to apply the `ready to merge` label due to this, see e.g. [this comment](https://github.com/leanprover-community/mathlib4/pull/16452#issuecomment-2326786879) and [the corresponding run](https://github.com/leanprover-community/mathlib4/actions/runs/10685754793). The underlying issue is probably the same as that was causing ghost maintainer merges which was fixed in #14663, so I've applied the same change to the remaining workflow files where this was a potential issue. I found one other place in labels_from_comment.yml which was relying on line endings being `\r\n` so I've fixed that by using a regex that allows for both `\r\n` and `\n`. ESTIMATED CHANGES Modified .github/workflows/add_label_from_comment.yml Modified .github/workflows/add_label_from_review.yml Modified .github/workflows/labels_from_comment.yml 2024-09-05 05:04:22 a469295 chore(Order/SuccPred/Limit): organize induction principles (#16459) We put all of our induction principles at the end of the file, and standardize both argument order and naming. We also golf `PredOrder.limitRecOn` by defining it in terms of `SuccOrder.limitRecOn` on the dual order. ESTIMATED CHANGES Modified Mathlib/Order/SuccPred/Limit.lean +/- theorem Order.isPredLimitRecOn_limit +/- theorem Order.isPredLimitRecOn_pred' +/- theorem Order.isPredLimitRecOn_pred +/- theorem Order.isSuccLimitRecOn_limit +/- theorem Order.isSuccLimitRecOn_succ' +/- theorem Order.isSuccLimitRecOn_succ +/- theorem PredOrder.limitRecOn_limit +/- theorem PredOrder.limitRecOn_pred +/- theorem SuccOrder.limitRecOn_limit +/- theorem SuccOrder.limitRecOn_succ Modified Mathlib/SetTheory/Ordinal/Arithmetic.lean 2024-09-05 05:04:21 a5cfc0b feat(ModelTheory/Order): Golf and implication instances on theories of orders (#16341) Shows a series of implications that models of stronger theories of orders are also models of weaker ones Redefines some theories of orders using `insert` Proves lemmas for handling theories defined with `insert`, simplifying a few proofs about order theories ESTIMATED CHANGES Modified Mathlib/ModelTheory/Complexity.lean + theorem FirstOrder.Language.Theory.IsUniversal.insert Modified Mathlib/ModelTheory/Order.lean Modified Mathlib/ModelTheory/Semantics.lean + theorem FirstOrder.Language.Theory.model_insert_iff 2024-09-05 05:04:20 9612ce1 fix: make `mkRichHCongr` reduce at default transparency (#16121) Without this, `with_reducible congr!` could fail because `getFunInfoNArgs` always operates at default transparency, and the assumption is that `mkRichHCongr` will see the same arity as recorded in the resulting `FunInfo`. The fix is to use `whnfD` instead of `whnf` when creating the double telescope. ESTIMATED CHANGES Modified Mathlib/Lean/Meta/CongrTheorems.lean Modified test/congr.lean + def F.A + def F.B + def F + theorem bug 2024-09-05 04:39:04 e5a9dc0 chore: split Analysis.Normed.Field.Basic (#16479) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Analysis/Asymptotics/Asymptotics.lean Modified Mathlib/Analysis/LocallyConvex/WeakDual.lean Modified Mathlib/Analysis/Normed/Field/Basic.lean - theorem AddChar.norm_apply - def DilationEquiv.mulLeft - def DilationEquiv.mulRight - theorem Filter.Tendsto.zero_mul_isBoundedUnder_le - theorem Filter.comap_mul_left_cobounded - theorem Filter.comap_mul_right_cobounded - theorem Filter.inv_cobounded₀ - theorem Filter.inv_nhdsWithin_ne_zero - theorem Filter.isBoundedUnder_le_mul_tendsto_zero - theorem Filter.map_mul_left_cobounded - theorem Filter.map_mul_right_cobounded - theorem Filter.tendsto_inv₀_cobounded' - theorem Filter.tendsto_inv₀_cobounded - theorem Filter.tendsto_inv₀_nhdsWithin_ne_zero - theorem Filter.tendsto_mul_left_cobounded - theorem Filter.tendsto_mul_right_cobounded - theorem NNReal.lipschitzWith_sub - theorem NormedField.denseRange_nnnorm - theorem antilipschitzWith_mul_left - theorem antilipschitzWith_mul_right Modified Mathlib/Analysis/Normed/Field/InfiniteSum.lean Added Mathlib/Analysis/Normed/Field/Lemmas.lean + theorem AddChar.norm_apply + def DilationEquiv.mulLeft + def DilationEquiv.mulRight + theorem Filter.Tendsto.zero_mul_isBoundedUnder_le + theorem Filter.comap_mul_left_cobounded + theorem Filter.comap_mul_right_cobounded + theorem Filter.inv_cobounded₀ + theorem Filter.inv_nhdsWithin_ne_zero + theorem Filter.isBoundedUnder_le_mul_tendsto_zero + theorem Filter.map_mul_left_cobounded + theorem Filter.map_mul_right_cobounded + theorem Filter.tendsto_inv₀_cobounded' + theorem Filter.tendsto_inv₀_cobounded + theorem Filter.tendsto_inv₀_nhdsWithin_ne_zero + theorem Filter.tendsto_mul_left_cobounded + theorem Filter.tendsto_mul_right_cobounded + theorem NNReal.lipschitzWith_sub + theorem NormedField.denseRange_nnnorm + theorem antilipschitzWith_mul_left + theorem antilipschitzWith_mul_right Modified Mathlib/Analysis/Normed/Field/UnitBall.lean Modified Mathlib/Analysis/Normed/Module/Basic.lean Modified Mathlib/Analysis/Normed/MulAction.lean Modified Mathlib/Analysis/Normed/Operator/ContinuousLinearMap.lean Modified Mathlib/Analysis/Normed/Order/Basic.lean Modified Mathlib/Analysis/Normed/Ring/Seminorm.lean Modified Mathlib/Analysis/NormedSpace/Int.lean Modified Mathlib/Analysis/SumOverResidueClass.lean Modified Mathlib/NumberTheory/LegendreSymbol/GaussEisensteinLemmas.lean Modified Mathlib/NumberTheory/Ostrowski.lean Modified Mathlib/NumberTheory/Padics/PadicNumbers.lean Modified Mathlib/NumberTheory/Zsqrtd/QuadraticReciprocity.lean Modified Mathlib/Topology/Algebra/Polynomial.lean Modified Mathlib/Topology/Algebra/Valued/NormedValued.lean Modified Mathlib/Topology/Bornology/BoundedOperation.lean Modified Mathlib/Topology/MetricSpace/CauSeqFilter.lean Modified Mathlib/Topology/MetricSpace/Polish.lean 2024-09-05 04:30:33 c3e9dfa chore: deprecate unused MLList material, which has moved to a separate repo (#16057) This material is unused in Mathlib, and now exists in a separate repo at https://github.com/semorrison/lean-monadic-list ESTIMATED CHANGES Modified Mathlib/Data/MLList/Dedup.lean Modified Mathlib/Data/MLList/DepthFirst.lean Modified Mathlib/Data/MLList/IO.lean Modified Mathlib/Data/MLList/Split.lean Deleted test/MLList.lean - def F - def append - def half_or_fail - def l1 - def l2 - def ll Deleted test/search/DepthFirst.lean 2024-09-05 04:21:53 7cf4e68 fix(update_dependencies.yml): actually get and use the sha of the branch (#16494) The bot has been ignoring the `ready-to-merge` label on the update dependencies PR (cf. #16491 and e.g. [this run](https://github.com/leanprover-community/mathlib4/actions/runs/10712268074/job/29702381709)). The issue seems to be the following: the workflow is triggered by the `cron` event, so the "Get PR and labels" step cannot actually find the PR without us providing a `sha` ref. So in this PR we try to get and provide that `sha` in an additional step. ESTIMATED CHANGES Modified .github/workflows/update_dependencies.yml 2024-09-05 04:21:52 d56b03b fix(*_comment.yml): fix uses of github.event.issue.pull_request (#16241) In our Github actions workflows which react to comments, there were several instances of `github.event.issue.pull_request != null` to check whether the comment was posted on a PR. However, this always returns `true`, so these workflows could in principle be triggered to run by someone writing comments on issues rather than PRs. The [Github actions documentation](https://docs.github.com/en/actions/writing-workflows/choosing-when-your-workflow-runs/events-that-trigger-workflows#issue_comment-on-issues-only-or-pull-requests-only) suggests just using `github.event.issue.pull_request` in conditionals, so I've replaced the incorrect tests with that. There was also a usage of `toJSON(github.event.issue.pull_request) != null` which even if correct is overcomplicated, so I fixed that as well. ESTIMATED CHANGES Modified .github/workflows/add_label_from_comment.yml Modified .github/workflows/labels_from_comment.yml Modified .github/workflows/maintainer_merge_comment.yml 2024-09-05 03:30:03 822913c chore: deprime `induction'` with at least two underscores (#16470) Found by searching for ` induction'.*? _.*? _` and fixed manually. Most of these are in the `ModelTheory` folder. ESTIMATED CHANGES Modified Archive/Arithcc.lean Modified Archive/MiuLanguage/DecisionNec.lean Modified Mathlib/Algebra/Group/Pointwise/Set.lean Modified Mathlib/Algebra/Module/Submodule/Pointwise.lean Modified Mathlib/Algebra/Order/BigOperators/Group/Multiset.lean Modified Mathlib/Algebra/Polynomial/Laurent.lean Modified Mathlib/Algebra/Polynomial/Module/Basic.lean Modified Mathlib/Analysis/Calculus/FDeriv/Analytic.lean Modified Mathlib/Analysis/NormedSpace/PiTensorProduct/InjectiveSeminorm.lean Modified Mathlib/CategoryTheory/Bicategory/Coherence.lean Modified Mathlib/CategoryTheory/PathCategory.lean Modified Mathlib/CategoryTheory/Sites/Coherent/CoherentTopology.lean Modified Mathlib/CategoryTheory/Sites/Coherent/RegularTopology.lean Modified Mathlib/CategoryTheory/Subobject/Lattice.lean Modified Mathlib/Combinatorics/SimpleGraph/LapMatrix.lean Modified Mathlib/Computability/RegularExpressions.lean Modified Mathlib/Computability/TMToPartrec.lean Modified Mathlib/Control/Fold.lean Modified Mathlib/Data/LazyList/Basic.lean Modified Mathlib/Data/List/Basic.lean Modified Mathlib/Data/List/Chain.lean Modified Mathlib/Data/List/Duplicate.lean Modified Mathlib/Data/List/Forall2.lean Modified Mathlib/Data/List/Join.lean Modified Mathlib/Data/List/NodupEquivFin.lean Modified Mathlib/Data/List/Perm.lean Modified Mathlib/Data/List/Sigma.lean Modified Mathlib/Data/Multiset/Basic.lean Modified Mathlib/Data/Multiset/Lattice.lean Modified Mathlib/Data/Multiset/Powerset.lean Modified Mathlib/Data/Nat/Digits.lean Modified Mathlib/Data/PFun.lean Modified Mathlib/Data/Seq/Computation.lean Modified Mathlib/Data/Set/Constructions.lean Modified Mathlib/Data/Set/Finite.lean Modified Mathlib/Data/TypeVec.lean Modified Mathlib/Deprecated/Subgroup.lean Modified Mathlib/GroupTheory/CoprodI.lean Modified Mathlib/LinearAlgebra/Matrix/ZPow.lean Modified Mathlib/MeasureTheory/MeasurableSpace/Card.lean Modified Mathlib/MeasureTheory/PiSystem.lean Modified Mathlib/MeasureTheory/SetSemiring.lean Modified Mathlib/ModelTheory/Complexity.lean Modified Mathlib/ModelTheory/Encoding.lean Modified Mathlib/ModelTheory/Quotients.lean Modified Mathlib/ModelTheory/Semantics.lean Modified Mathlib/ModelTheory/Syntax.lean Modified Mathlib/ModelTheory/Ultraproducts.lean Modified Mathlib/Order/Filter/CardinalInter.lean Modified Mathlib/Order/Filter/CountableInter.lean Modified Mathlib/RingTheory/Kaehler/Polynomial.lean Modified Mathlib/RingTheory/Regular/RegularSequence.lean Modified Mathlib/SetTheory/Game/Basic.lean Modified Mathlib/SetTheory/Game/PGame.lean Modified Mathlib/SetTheory/Lists.lean Modified Mathlib/SetTheory/Ordinal/Arithmetic.lean Modified Mathlib/SetTheory/Ordinal/Notation.lean 2024-09-05 02:08:31 4e2bf52 chore: update Mathlib dependencies 2024-09-05 (#16491) This PR updates the Mathlib dependencies. ESTIMATED CHANGES Modified lake-manifest.json 2024-09-05 01:57:36 fa8cab9 docs(CompHausLike): add more detailed documentation (#16473) ESTIMATED CHANGES Modified Mathlib/Topology/Category/CompHaus/Basic.lean Modified Mathlib/Topology/Category/CompHausLike/Basic.lean Modified Mathlib/Topology/Category/LightProfinite/Basic.lean Modified Mathlib/Topology/Category/Profinite/Basic.lean Modified Mathlib/Topology/Category/Stonean/Basic.lean 2024-09-05 01:57:35 b133761 feat: in a C⋆-algebra, `b⁻¹ ≤ a⁻¹ ↔ a ≤ b` for nonnegative `a b : Aˣ` (#16364) ESTIMATED CHANGES Modified Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Order.lean + theorem CFC.conjugate_rpow_neg_one_half + theorem CStarRing.inv_le_iff + theorem CStarRing.inv_le_one + theorem CStarRing.inv_le_one_iff_one_le + theorem CStarRing.isUnit_of_le + theorem CStarRing.le_inv_iff + theorem CStarRing.le_one_of_one_le_inv + theorem CStarRing.one_le_inv_iff_le_one + theorem CStarRing.rpow_neg_one_le_one + theorem CStarRing.rpow_neg_one_le_rpow_neg_one + theorem le_iff_norm_sqrt_mul_rpow + theorem le_iff_norm_sqrt_mul_sqrt_inv 2024-09-05 00:27:33 77f1a31 refactor: remove `simp` priority from theorem (#16429) The simplifier used to always unfold the definition of the function `List.modifyHead` because it had the `simp` attribute. This behavior hindered the simplifier from using lemmas about the function. To fix this issue, I opened leanprover-community/batteries#790 and it was merged on May 10. Now, the `simp` priority in the theorem `List.modifyHead_modifyHead` is no longer needed. leanprover-community/batteries#756 was supposed to remove the priority from it while also moving it from Mathlib to Batteries. But the pull request hasn't been merged for almost five months, hence this PR. ESTIMATED CHANGES Modified Mathlib/Data/List/Basic.lean 2024-09-05 00:27:32 a123055 chore: remove `style-exceptions.txt` (#16417) This file has been recording exceptions to the text-based style linters in `lint-style.py` and `Linter/TextBased`. The length of this file is meant to reach zero - and now, it indeed has. :tada: Some of the linter errors were easy to fix (and just required sustained effort), such as some misformatted author lines or missing module documentation. The main remaining entries were exceptions for the "long file linter", which has been rewritten as a syntax linter (in #15610 and #16299). Exceptions are now tracked as `set_option linter.style.longFile ` instead, obviating the need for this file. This implies the need for a file with transient style exceptions is gone. All of the remaining text-based linters should not be introduced in new code. For *permanent* exceptions, the file `nolints-style.txt` continues to exist; that file must (intentionally) be updated by hand. [zulip discussion](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/RFC.3A.20remove.20.60scripts.2Fstyle-exceptions.2Etxt.60) ESTIMATED CHANGES Modified .github/workflows/nolints.yml Modified Mathlib/Tactic/Linter/TextBased.lean - inductive Mathlib.Linter.TextBased.OutputSetting +/- def Mathlib.Linter.TextBased.lintModules Modified scripts/lint-style.lean Modified scripts/lint-style.py Modified scripts/nolints-style.txt Modified scripts/print-style-errors.sh Deleted scripts/style-exceptions.txt Modified scripts/update_nolints_CI.sh 2024-09-05 00:27:30 2d7e178 feat: Register more @[bound] lemmas for floor, ceil, and log (#16039) `Int.ceil_lt_add_one` and `Real.log_pos` came up in https://github.com/girving/ray, and I've registered a variety of nearby lemmas. ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Floor.lean +/- theorem Int.ceil_le_ceil +/- theorem Int.floor_le_floor +/- theorem Nat.ceil_le_ceil +/- theorem Nat.floor_le_floor Modified Mathlib/Analysis/SpecialFunctions/Log/Basic.lean 2024-09-04 22:48:58 622c662 chore: move style linters to the style namespace (#16265) Redone version of #15971. ESTIMATED CHANGES Modified Mathlib/Data/QPF/Multivariate/Basic.lean Modified Mathlib/Tactic/Linter/Lint.lean - def Mathlib.Linter.CDotLinter.cdotLinter - def Mathlib.Linter.LongLine.longLineLinter - def Mathlib.Linter.MissingEnd.missingEndLinter + def Mathlib.Linter.Style.cdotLinter + def Mathlib.Linter.Style.longLine.longLineLinter + def Mathlib.Linter.Style.missingEnd.missingEndLinter Modified lakefile.lean Modified test/Lint.lean Modified test/RewriteSearch/Basic.lean Modified test/Use.lean Modified test/fun_prop.lean Modified test/fun_prop_dev.lean Modified test/polyrith.lean 2024-09-04 22:22:22 5ba359d feat: `H →L[ℂ] H` is a `StarOrderedRing` when `H` is a Hilbert space (#16462) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Analysis/InnerProductSpace/Positive.lean + theorem ContinuousLinearMap.antilipschitz_of_forall_le_inner_map + theorem ContinuousLinearMap.isUnit_of_forall_le_norm_inner_map Added Mathlib/Analysis/InnerProductSpace/StarOrder.lean + theorem ContinuousLinearMap.IsPositive.spectrumRestricts + theorem ContinuousLinearMap.instStarOrderedRingRCLike 2024-09-04 21:53:49 0cf4af7 refactor(ModelTheory): Redefine order and graph languages to use inductive definitions instead of `Language.mk₂` (#16367) Redefines order and graph languages using the same style of inductive definition as `Language.ring` ESTIMATED CHANGES Modified Mathlib/ModelTheory/Graph.lean - def FirstOrder.Language.adj + inductive FirstOrder.Language.graphRel +/- def SimpleGraph.structure Modified Mathlib/ModelTheory/Order.lean + theorem FirstOrder.Language.order.forall_relations +/- def FirstOrder.Language.orderLHom + theorem FirstOrder.Language.orderLHom_apply + inductive FirstOrder.Language.orderRel 2024-09-04 18:26:59 22f19a6 chore: Split `Data.Set.Pointwise.Basic` (#16442) ... into * `Algebra.Group.Pointwise.Set` for `Group` properties * `Algebra.GroupWithZero.Pointwise.Set` for `GroupWithZero` properties * `Algebra.Ring.Pointwise.Set` for `HasDistribNeg` and `Distrib` properties Other files under `Data.Set.Pointwise` will follow later ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Bounds.lean Renamed Mathlib/Data/Set/Pointwise/Basic.lean to Mathlib/Algebra/Group/Pointwise/Set.lean - theorem Set.Nonempty.div_zero - theorem Set.Nonempty.mul_zero - theorem Set.Nonempty.zero_div - theorem Set.Nonempty.zero_mul - theorem Set.add_mul_subset - theorem Set.div_zero_subset - theorem Set.mul_add_subset - theorem Set.mul_zero_subset - theorem Set.zero_div_subset - theorem Set.zero_mul_subset Added Mathlib/Algebra/GroupWithZero/Pointwise/Set.lean + theorem Set.Nonempty.div_zero + theorem Set.Nonempty.mul_zero + theorem Set.Nonempty.zero_div + theorem Set.Nonempty.zero_mul + theorem Set.div_zero_subset + theorem Set.mul_zero_subset + theorem Set.zero_div_subset + theorem Set.zero_mul_subset Modified Mathlib/Algebra/Order/Interval/Basic.lean Added Mathlib/Algebra/Ring/Pointwise/Set.lean + theorem Set.add_mul_subset + theorem Set.mul_add_subset Modified Mathlib/Algebra/Ring/Subring/Pointwise.lean Modified Mathlib/Algebra/Ring/Subsemiring/Pointwise.lean Modified Mathlib/Algebra/Star/Conjneg.lean Modified Mathlib/Algebra/Star/Pointwise.lean Modified Mathlib/Combinatorics/Additive/Dissociation.lean Modified Mathlib/Combinatorics/Additive/FreimanHom.lean Modified Mathlib/Combinatorics/SimpleGraph/Circulant.lean Modified Mathlib/Data/Finset/MulAntidiagonal.lean Modified Mathlib/Data/Finset/Pointwise/Basic.lean Modified Mathlib/Data/Set/Pointwise/BigOperators.lean Modified Mathlib/Data/Set/Pointwise/BoundedMul.lean Modified Mathlib/Data/Set/Pointwise/Interval.lean Modified Mathlib/Data/Set/Pointwise/ListOfFn.lean Modified Mathlib/Data/Set/Pointwise/SMul.lean Modified Mathlib/Data/Set/Semiring.lean Modified Mathlib/Topology/Order/LeftRightNhds.lean Modified scripts/noshake.json 2024-09-04 12:44:16 df80b0d fix: mm use github.event.pull_request.number (#16476) The `maintainer merge` action from *comment* works with `github.event.issue.number`, but the actions from review (comment or body) probably require `github.event.pull_request.number`. ESTIMATED CHANGES Modified .github/workflows/maintainer_merge_review.yml Modified .github/workflows/maintainer_merge_review_comment.yml 2024-09-04 11:42:27 9a8bfbe chore(CategoryTheory/Sites): remove unused lemmas and simplify some proofs in Sites.Discrete (#16385) This PR does the following - Renames `Sheaf.IsDiscrete` to `Sheaf.IsConstant` and changes the definition to being in the essential image of the constant sheaf functor instead of requiring the counit to be an isomorphism. - Removes two lemmas from the file `Sites.Discrete` which were essentially duplicates of other ones, and simplifies a proof to be able to remove an auxiliary lemma. - Moves the remaining contets of `Sites.Discrete` to the file `Sites.ConstantSheaf`. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/CategoryTheory/Sites/ConstantSheaf.lean + theorem CategoryTheory.Sheaf.isConstant_congr + theorem CategoryTheory.Sheaf.isConstant_iff_forget + theorem CategoryTheory.Sheaf.isConstant_iff_isIso_counit_app' + theorem CategoryTheory.Sheaf.isConstant_iff_isIso_counit_app + theorem CategoryTheory.Sheaf.isConstant_iff_mem_essImage + theorem CategoryTheory.Sheaf.isConstant_iff_of_equivalence + theorem CategoryTheory.Sheaf.isConstant_of_forget + theorem CategoryTheory.Sheaf.isConstant_of_isIso_counit_app + theorem CategoryTheory.Sheaf.isConstant_of_iso + theorem CategoryTheory.Sheaf.mem_essImage_of_isConstant + theorem CategoryTheory.constantCommuteCompose_hom_app_val - theorem CategoryTheory.constantSheafAdj_counit_app + theorem CategoryTheory.constantSheafAdj_counit_w Deleted Mathlib/CategoryTheory/Sites/Discrete.lean - theorem CategoryTheory.Sheaf.constantCommuteComposeApp_comp_counit - theorem CategoryTheory.Sheaf.isDiscrete_iff_forget - theorem CategoryTheory.Sheaf.isDiscrete_iff_isIso_counit_app - theorem CategoryTheory.Sheaf.isDiscrete_iff_mem_essImage' - theorem CategoryTheory.Sheaf.isDiscrete_iff_mem_essImage - theorem CategoryTheory.Sheaf.isDiscrete_iff_of_equivalence - theorem CategoryTheory.Sheaf.isDiscrete_of_iso - theorem CategoryTheory.Sheaf.sheafComposeNatIso_app_counit - theorem CategoryTheory.Sheaf.sheafCompose_reflects_discrete 2024-09-04 10:38:45 836a022 chore: remove @[simp] from PSigma.forall (#16469) Per [zulip](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/Infrastructure.20for.20tracking.20frequently.20applied.20simp.20theorems/near/467195964). ESTIMATED CHANGES Modified Mathlib/Data/Sigma/Basic.lean 2024-09-04 10:38:44 1b14d3d feat(ModelTheory): Lefschetz principle for AlgClosed Fields (#6617) The main question here was how to integrate the model theoretic classes with the normal type classes. The solution was the `CompatibleRing` class, and to apply a theorem about the model theory of Alg Closed Fields to a literal Alg Closed field, all you have to do is `letI := compatibleRingOfRing K`. Everything else can then be done by type class search. Going the other way, from a model theoretic field to a normal field is a bit more difficult, but I think people will do this more rarely, particularly with a complete theory like `ACF p`. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/ModelTheory/Algebra/Field/IsAlgClosed.lean + theorem FirstOrder.Field.ACF_categorical + theorem FirstOrder.Field.ACF_isComplete + theorem FirstOrder.Field.ACF_isSatisfiable + theorem FirstOrder.Field.ACF_zero_realize_iff_finite_ACF_prime_not_realize + theorem FirstOrder.Field.ACF_zero_realize_iff_infinite_ACF_prime_realize + theorem FirstOrder.Field.finite_ACF_prime_not_realize_of_ACF_zero_realize + def FirstOrder.Field.genericMonicPoly + theorem FirstOrder.Field.isAlgClosed_of_model_ACF + theorem FirstOrder.Field.lift_genericMonicPoly + theorem FirstOrder.Field.modelField_of_modelACF + theorem FirstOrder.Field.realize_genericMonicPolyHasRoot + def FirstOrder.Language.Theory.ACF 2024-09-04 09:43:30 ca494e4 feat(ModelTheory): Better uses of `IsAlgebraic` and `IsRelational` (#16323) Redefines `IsAlgebraic` and `IsRelational` as `abbrev`s, removing the need for some explicit instances. The constructors for `Structure`, `LHom` and `LHom.IsExpansionOn` will, by default, skip the definition on relations in algebraic languages and the definition on functions in relational languages. ESTIMATED CHANGES Modified Mathlib/ModelTheory/Algebra/Ring/Basic.lean Modified Mathlib/ModelTheory/Basic.lean +/- def FirstOrder.Language.emptyStructure Modified Mathlib/ModelTheory/Graph.lean Modified Mathlib/ModelTheory/LanguageMap.lean Modified Mathlib/ModelTheory/Substructures.lean 2024-09-04 09:43:29 55fda0c feat(ModelTheory/Fraisse): Shows that any countably infinite structure in the empty language is a Fraïssé limit (#16194) Shows that any countably infinite structure in the empty language is the Fraïssé limit of the class of finite structures, which is thus a Fraïssé class ESTIMATED CHANGES Modified Mathlib/ModelTheory/Fraisse.lean + theorem FirstOrder.Language.empty.isFraisseLimit_of_countable_infinite + theorem FirstOrder.Language.empty.isFraisse_finite Modified Mathlib/ModelTheory/Substructures.lean 2024-09-04 09:43:28 96ca7db feat(RelSeries): LTSeries.range (#15555) from the Carleson project ESTIMATED CHANGES Modified Mathlib/Order/RelSeries.lean + theorem LTSeries.head_range + theorem LTSeries.last_range + theorem LTSeries.length_range + def LTSeries.range + theorem LTSeries.range_apply 2024-09-04 09:34:19 5bd8bde chore(ModelTheory/Order): Reorganization for future refactoring (#16338) Reorganizes the file `ModelTheory/Order` to allow for future refactoring, including making `orderStructure` no longer an instance. The new organization puts purely syntactical constructions first, and then separates out a separate section of results that use order instances to model-theoretic facts and data. This will make it easier to make `orderStructure` not a global instance, and introduce instances going the other direction, from model-theoretic instances to orders. ESTIMATED CHANGES Modified Mathlib/ModelTheory/Order.lean +/- theorem FirstOrder.Language.Term.realize_le +/- theorem FirstOrder.Language.Term.realize_lt +/- theorem FirstOrder.Language.orderLHom_leSymb +/- theorem FirstOrder.Language.realize_denselyOrdered +/- theorem FirstOrder.Language.realize_denselyOrdered_iff +/- theorem FirstOrder.Language.relMap_leSymb 2024-09-04 08:40:36 8ffca2e chore: remove a superfluous by in `GroupTheory.Perm.Cycle.Factors` (#16465) ESTIMATED CHANGES Modified Mathlib/GroupTheory/Perm/Cycle/Factors.lean +/- def Equiv.Perm.cycleFactorsAux 2024-09-04 07:24:29 ee3c840 feat: use junk value in `Kernel.map`, new class `IsZeroOrMarkovKernel` (#16403) Followup to #16130, doing this at the level of kernels instead of measures. ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Constructions/Polish/EmbeddingReal.lean + theorem MeasureTheory.measurable_embeddingReal Modified Mathlib/MeasureTheory/MeasurableSpace/Basic.lean Modified Mathlib/Probability/Independence/Basic.lean +/- theorem ProbabilityTheory.IndepSets.indep' +/- theorem ProbabilityTheory.IndepSets.indep +/- theorem ProbabilityTheory.indepSet_empty_left +/- theorem ProbabilityTheory.indepSet_empty_right +/- theorem ProbabilityTheory.indep_bot_left +/- theorem ProbabilityTheory.indep_bot_right +/- theorem ProbabilityTheory.indep_iSup_of_antitone +/- theorem ProbabilityTheory.indep_iSup_of_monotone Modified Mathlib/Probability/Independence/Kernel.lean Modified Mathlib/Probability/Kernel/Basic.lean + theorem ProbabilityTheory.eq_zero_or_isMarkovKernel Modified Mathlib/Probability/Kernel/Composition.lean + theorem ProbabilityTheory.Kernel.IsMarkovKernel.map + theorem ProbabilityTheory.Kernel.fst_eq +/- theorem ProbabilityTheory.Kernel.fst_map_prod + theorem ProbabilityTheory.Kernel.mapOfMeasurable_eq_map +/- theorem ProbabilityTheory.Kernel.map_apply +/- theorem ProbabilityTheory.Kernel.map_id' +/- theorem ProbabilityTheory.Kernel.map_id + theorem ProbabilityTheory.Kernel.map_of_not_measurable +/- theorem ProbabilityTheory.Kernel.map_prodMkLeft +/- theorem ProbabilityTheory.Kernel.map_prodMkRight +/- theorem ProbabilityTheory.Kernel.map_zero + theorem ProbabilityTheory.Kernel.snd_eq +/- theorem ProbabilityTheory.Kernel.snd_map_prod +/- theorem ProbabilityTheory.Kernel.sum_map_seq + theorem ProbabilityTheory.Kernel.swapRight_eq Modified Mathlib/Probability/Kernel/Disintegration/StandardBorel.lean Modified Mathlib/Probability/Kernel/Disintegration/Unique.lean Modified Mathlib/Probability/Kernel/RadonNikodym.lean 2024-09-04 06:34:11 f760ba9 chore(RingTheory/TensorProduct/Basic): Remove deprecated lemma (#16468) This was the only lemma needing the `LinearAlgebra.FiniteDimensional.Defs` import. Came up on [Zulip](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/lake.20exe.20graph.20--from.20Mathlib.2EGroupTheory.2EPerm.2ECycle.2EFactors) ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/TensorProduct/RightExactness.lean Modified Mathlib/LinearAlgebra/TensorProduct/Subalgebra.lean Modified Mathlib/RingTheory/IntegralClosure/IsIntegralClosure/Basic.lean Modified Mathlib/RingTheory/TensorProduct/Basic.lean - theorem Subalgebra.finiteDimensional_sup 2024-09-04 05:45:14 57e84d6 refactor: handle semirings differently in `linear_combination` (#16103) This PR adjusts the `linear_combination` tactic to treat semirings and rings uniformly. **Previously,** semirings could only be treated using the `linear_combination2` variant, whose scope is problems such as ```lean a b : ℕ h1 : 3 * a = b + 5 h2 : b + 3 = 2 * a ⊢ 3 * a + b + 3 = 2 * a + b + 5 ``` in which the LHS and RHS of the goal can be produced as the same linear combination of the hypotheses: this problem is solved with `linear_combination2 h1 + h2` because `3 * a + b + 3 = (3 * a) + (b + 3)` and `2 * a + b + 5 = (b + 5) + (2 * a)`. To solve more generic linear-reasoning problems like ```lean a b : ℕ h1 : 3 * a = b + 5 h2 : b + 3 = 2 * a ⊢ a = 2 ``` it was necessary to pad the LHS and RHS with constants until they reached that form: ```lean example {a b : ℕ} (h1 : 3 * a = b + 5) (h2 : b + 3 = 2 * a) : a = 2 := by apply add_right_cancel (b := 2 * a + b + 3) linear_combination2 h1 + h2 ``` **This PR** rewrites the `linear_combination` implementation to avoid negation, so that problems such as the above can be solved in semirings without explicit padding. For example, previously the tactic solved the above problem *over true rings* by reducing to the goal ```lean a - 2 - (3 * a + (b + 3) - (b + 5 + 2 * a)) = 0 ``` (which is solved by the normalization tactic `ring1`). By instead reducing to the subtraction-free goal ```lean a + (b + 5 + 2 * a) = 2 + (3 * a + (b + 3)) ``` the logic works over semirings as well. Thus this now works: ```lean example {a b : ℕ} (h1 : 3 * a = b + 5) (h2 : b + 3 = 2 * a) : a = 2 := by linear_combination h1 + h2 ``` Similarly, previously reversing an equality required the syntax `←`: ```lean example {a : ℕ} (h : a = 3) : 3 = a := by linear_combination2 (← h) ``` But reversing an equality is the same as formally negating it, so by implementing negation of hypotheses *throughout* as equation-reversal, we can eliminate this special syntax and instead use the same syntax that works over true rings: ```lean example {a : ℕ} (h : a = 3) : 3 = a := by linear_combination -h ``` (The syntax `←` continues to be required in the backwards-compatible `linear_combination'` and `linear_combination2` variants.) ESTIMATED CHANGES Modified Mathlib/Tactic/LinearCombination.lean +/- theorem Mathlib.Tactic.LinearCombination.eq_of_add + theorem Mathlib.Tactic.LinearCombination.eq_of_sub - theorem Mathlib.Tactic.LinearCombination.eq_trans₃ - theorem Mathlib.Tactic.LinearCombination.neg_pf - theorem Mathlib.Tactic.LinearCombination.sub_pf Modified test/linear_combination.lean 2024-09-04 05:09:10 9f572fc feat: Conjugation-negation operator (#16181) This is a fundamental operator in discrete Fourier analysis. For example, it is the operator relating convolution and difference convolution: https://yaeldillies.github.io/LeanAPAP/docs/LeanAPAP/Prereqs/Convolution/Discrete/Defs.html#conv_conjneg From LeanAPAP ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Order/Ring/Star.lean Renamed Mathlib/Algebra/Star/Order.lean to Mathlib/Algebra/Order/Star/Basic.lean Added Mathlib/Algebra/Order/Star/Conjneg.lean + theorem conjneg_neg' + theorem conjneg_nonneg + theorem conjneg_nonpos + theorem conjneg_pos Modified Mathlib/Algebra/Star/CHSH.lean Added Mathlib/Algebra/Star/Conjneg.lean + def conjneg + def conjnegRingHom + theorem conjneg_add + theorem conjneg_apply + theorem conjneg_bijective + theorem conjneg_conj + theorem conjneg_conjneg + theorem conjneg_eq_one + theorem conjneg_eq_zero + theorem conjneg_inj + theorem conjneg_injective + theorem conjneg_involutive + theorem conjneg_mul + theorem conjneg_ne_conjneg + theorem conjneg_ne_one + theorem conjneg_ne_zero + theorem conjneg_neg + theorem conjneg_one + theorem conjneg_prod + theorem conjneg_sub + theorem conjneg_sum + theorem conjneg_surjective + theorem conjneg_zero + theorem sum_conjneg + theorem support_conjneg Modified Mathlib/Analysis/Analytic/Basic.lean Modified Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Unital.lean Modified Mathlib/Analysis/Calculus/LocalExtr/Polynomial.lean Modified Mathlib/Analysis/RCLike/Basic.lean Modified Mathlib/Data/Complex/Exponential.lean Modified Mathlib/Data/Int/Star.lean Modified Mathlib/Data/Nat/BitIndices.lean Modified Mathlib/Data/Rat/Star.lean Modified Mathlib/Data/Real/StarOrdered.lean Modified Mathlib/LinearAlgebra/Matrix/DotProduct.lean 2024-09-04 05:09:09 c450e30 feat(Topology/Order/Group): zmultiples aren't dense (#15550) ESTIMATED CHANGES Modified Mathlib/Topology/Algebra/Order/Group.lean + theorem denseRange_zsmul_iff_surjective + theorem not_denseRange_zsmul 2024-09-04 04:03:47 5cc2778 chore: remove adaptation notes about aesop (#16461) This removes some adaptation notes and restores original proofs and tests, now that the regression in Aesop has been fixed. ESTIMATED CHANGES Modified Mathlib/Analysis/SpecialFunctions/Log/Basic.lean Modified Mathlib/CategoryTheory/Category/ULift.lean Modified test/Bound/bound.lean 2024-09-04 01:36:01 2675050 chore(Combinatorics/SimpleGraph): remove sndOfNotNil (#16352) Readd the refactorings to sndOfNotNil and tail The changes in 17b10a9d3d309648fbbad36a565603835fcef157 were accidentally reverted in 5025874dc5f9f8dd1598190e60ef20dda7b42566 This PR reintroduces the changes. The patch applied cleanly, except for some small conflict in `Hamiltonian.lean` which I fixed. ESTIMATED CHANGES Modified Mathlib/Combinatorics/SimpleGraph/Acyclic.lean Modified Mathlib/Combinatorics/SimpleGraph/Connectivity/Subgraph.lean Modified Mathlib/Combinatorics/SimpleGraph/Hamiltonian.lean Modified Mathlib/Combinatorics/SimpleGraph/Path.lean +/- theorem SimpleGraph.Walk.IsPath.tail Modified Mathlib/Combinatorics/SimpleGraph/Walk.lean + theorem SimpleGraph.Walk.adj_getVert_one - theorem SimpleGraph.Walk.adj_sndOfNotNil - theorem SimpleGraph.Walk.cons_getVert - theorem SimpleGraph.Walk.cons_getVert_succ - theorem SimpleGraph.Walk.cons_sndOfNotNil +/- theorem SimpleGraph.Walk.cons_tail_eq + def SimpleGraph.Walk.drop + theorem SimpleGraph.Walk.getVert_cons + theorem SimpleGraph.Walk.getVert_cons_one + theorem SimpleGraph.Walk.getVert_cons_succ + theorem SimpleGraph.Walk.getVert_copy - theorem SimpleGraph.Walk.getVert_one +/- theorem SimpleGraph.Walk.getVert_tail + theorem SimpleGraph.Walk.not_nil_iff_lt_length - def SimpleGraph.Walk.sndOfNotNil +/- theorem SimpleGraph.Walk.support_tail + theorem SimpleGraph.Walk.support_tail_of_not_nil +/- def SimpleGraph.Walk.tail + theorem SimpleGraph.Walk.tail_cons_eq + theorem SimpleGraph.Walk.tail_cons_nil - theorem SimpleGraph.Walk.tail_support_eq_support_tail 2024-09-04 01:36:00 7c21c72 feat(Algebra/Group/Submonoid/Operations): `injective_codRestrict` (#15700) Add a lemma `MonoidHom.injective_codRestrict` ```lean @[to_additive (attr := simp)] lemma injective_codRestrict {S} [SetLike S N] [SubmonoidClass S N] (f : M →* N) (s : S) (h : ∀ x, f x ∈ s) : Function.Injective (f.codRestrict s h) ↔ Function.Injective f := ``` whose proof is taken from that of `AlgHom.injective_codRestrict`. From AperiodicMonotilesLean. ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Submonoid/Operations.lean + theorem MonoidHom.injective_codRestrict 2024-09-04 01:35:59 5bb23da feat: the completion of a normed and completable topological field is a normed field (#15064) This PR contains the result that the `UniformSpace.Completion` of a normed and completable topological field is also a normed field. This has been split from the larger PR #13577. ESTIMATED CHANGES Modified Mathlib/Analysis/Normed/Module/Completion.lean 2024-09-04 01:26:00 8056127 feat: the set of nonnegative elements in a C⋆-algebra is closed (#16457) ESTIMATED CHANGES Modified Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Order.lean + theorem CStarRing.isClosed_nonneg 2024-09-03 21:02:12 91d1555 doc(ModelTheory/PartialEquiv): Improved docstring for partial equivalences in model theory (#16422) Adds `FGEquiv` and `IsExtensionPair` to the list of definitions Adds `embedding_from_cg` and `equiv_from_cg` to the list of results Adds David Wärn to the author list, given the inspiration from the file `Order/CountableDenseLinearOrder` ESTIMATED CHANGES Modified Mathlib/ModelTheory/PartialEquiv.lean 2024-09-03 17:59:10 b804674 feat(MeasurableSpace): `Set.ncard` is measurable (#16205) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/MeasureTheory/MeasurableSpace/Basic.lean + theorem ENat.measurable_iff Modified Mathlib/MeasureTheory/MeasurableSpace/Defs.lean Modified Mathlib/MeasureTheory/MeasurableSpace/Instances.lean Added Mathlib/MeasureTheory/MeasurableSpace/NCard.lean + theorem measurable_encard + theorem measurable_ncard 2024-09-03 16:29:08 e1258e0 feat(MeasurableSpace): SeparatesPoints -> MeasurableSingletonClass (#16288) - If a σ-algebra on a countable type separates points, then singletons are measurable. - Generalize a lemma from `T1Space` to `T0Space`. ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Constructions/BorelSpace/Basic.lean +/- theorem borel_eq_top_of_countable Modified Mathlib/MeasureTheory/MeasurableSpace/CountablyGenerated.lean 2024-09-03 15:39:55 b8e23f0 feat(Combinatorics/SimpleGraph): darts and edges are injective for walks, length of paths and trails are bounded (#15541) Provide theorems stating that `SimpleGraph.Walk.darts` and `SimpleGraph.Walk.edges` are injective functions, and that the length of `SimpleGraph.Walk.IsTrail` and `SimpleGraph.Walk.IsPath` is bounded for finite graphs. ESTIMATED CHANGES Modified Mathlib/Combinatorics/SimpleGraph/Path.lean + theorem SimpleGraph.Walk.IsTrail.length_le_card_edgeFinset Modified Mathlib/Combinatorics/SimpleGraph/Walk.lean + theorem SimpleGraph.Walk.darts_injective + theorem SimpleGraph.Walk.edges_injective 2024-09-03 15:14:47 58c6844 chore: update Mathlib dependencies 2024-09-03 (#16452) This PR updates the Mathlib dependencies. ESTIMATED CHANGES 2024-09-03 14:56:18 9085386 chore: update Mathlib dependencies 2024-09-03 (#16449) This PR updates the Mathlib dependencies. ESTIMATED CHANGES Modified lake-manifest.json 2024-09-03 14:23:17 fa387e3 feat: an ideal, with the operations induced from its parent ring, forms a non-unital subring (#15986) feat: an ideal, with the operations induced from its parent ring, forms a non-unital subring ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/RingTheory/Ideal/Operations.lean Added Mathlib/RingTheory/TwoSidedIdeal/Instances.lean 2024-09-03 14:14:25 ffc63b4 chore: move `build.yml.in` to `../build.in.yml` (#16439) The main motivation is to use the "correct" extension and get syntax highlighting and better editing experience for this file! The reason to move it one dir up, is that otherwise it gets picked up by GitHub CI as a possible workflow. ESTIMATED CHANGES Renamed .github/workflows/build.yml.in to .github/build.in.yml Modified .github/workflows/bors.yml Modified .github/workflows/build.yml Modified .github/workflows/build_fork.yml Modified .github/workflows/mk_build_yml.sh 2024-09-03 13:17:35 351bb94 feat(CategoryTheory): Characterization of Structured Arrows of Diagonal and Projections (#15838) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Comma/Over.lean + def CategoryTheory.CostructuredArrow.ofCostructuredArrowProjEquivalence.functor + def CategoryTheory.CostructuredArrow.ofCostructuredArrowProjEquivalence.inverse + def CategoryTheory.CostructuredArrow.ofCostructuredArrowProjEquivalence + def CategoryTheory.CostructuredArrow.ofDiagEquivalence' + def CategoryTheory.CostructuredArrow.ofDiagEquivalence.functor + def CategoryTheory.CostructuredArrow.ofDiagEquivalence.inverse + def CategoryTheory.CostructuredArrow.ofDiagEquivalence + def CategoryTheory.StructuredArrow.ofDiagEquivalence' + def CategoryTheory.StructuredArrow.ofDiagEquivalence.functor + def CategoryTheory.StructuredArrow.ofDiagEquivalence.inverse + def CategoryTheory.StructuredArrow.ofDiagEquivalence + def CategoryTheory.StructuredArrow.ofStructuredArrowProjEquivalence.functor + def CategoryTheory.StructuredArrow.ofStructuredArrowProjEquivalence.inverse + def CategoryTheory.StructuredArrow.ofStructuredArrowProjEquivalence 2024-09-03 12:21:06 3a97fe9 fix: count long files, instead of printing all of them (#16418) Reported on [Zulip](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/Technical.20Debt.20Counters/near/466993718) ESTIMATED CHANGES Modified scripts/technical-debt-metrics.sh 2024-09-03 11:21:56 8525fd6 chore: remove an `erw` (#16445) ESTIMATED CHANGES Modified Mathlib/RingTheory/FractionalIdeal/Operations.lean 2024-09-03 10:20:46 fa76f8b feat: the product of boundaryless manifolds is boundaryless (#14972) To facilitate this change, performs some preliminary clean-up to this file. - Rename `boundary_eq_complement_interior` to `compl_interior` and flip its direction. (Happy to add a deprecation warning if desired.) - Add the analogous lemma `ModelWithCorners.compl_boundary` - Add `Boundaryless.iff_boundary_eq_empty`: `M` is boundaryless iff its boundary is empty - Trivially generalise the lemma about the boundary of product manifolds to `BoundarylessManifold` (not just the model being boundaryless). - Move these lemmas into the `ModelWithCorners` namespace, where they arguably belong. Extracted from my in-progress bordism theory branch. ESTIMATED CHANGES Modified Mathlib/Geometry/Manifold/InteriorBoundary.lean +/- theorem BoundarylessManifold.isInteriorPoint +/- theorem ModelWithCorners.Boundaryless.boundary_eq_empty + theorem ModelWithCorners.Boundaryless.iff_boundary_eq_empty + theorem ModelWithCorners.Boundaryless.of_boundary_eq_empty - theorem ModelWithCorners.boundary_eq_complement_interior + theorem ModelWithCorners.boundary_of_boundaryless_left + theorem ModelWithCorners.boundary_of_boundaryless_right +/- theorem ModelWithCorners.boundary_prod + theorem ModelWithCorners.compl_boundary + theorem ModelWithCorners.compl_interior +/- theorem ModelWithCorners.interior_eq_univ +/- theorem ModelWithCorners.interior_prod - theorem boundary_of_boundaryless_left - theorem boundary_of_boundaryless_right 2024-09-03 09:13:48 ba7dc41 fix: do not get cache if Mathlib.Init is unavailable (#16437) You can see a few attempts and tests #16435: the final commits test what happens with and without cache for `Mathlib.Init`. Reported on [Zulip](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/.2316028.20.28checking.20if.20the.20cache.20is.20cold.20in.20CI.29.20seems.20broken.3F) ESTIMATED CHANGES Modified .github/workflows/bors.yml Modified .github/workflows/build.yml Modified .github/workflows/build.yml.in Modified .github/workflows/build_fork.yml 2024-09-03 09:13:46 b9353a7 chore: move `Init.Data.List.Lemmas` to `Data.List.Defs` (#16434) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Data/List/Basic.lean Modified Mathlib/Data/List/Defs.lean + theorem List.length_mapAccumr + theorem List.length_mapAccumr₂ + def List.mapAccumr + def List.mapAccumr₂ + theorem List.mem_cons_eq + theorem List.not_exists_mem_nil Modified Mathlib/Data/List/Lemmas.lean Modified Mathlib/Data/Vector/Defs.lean Deleted Mathlib/Init/Data/List/Lemmas.lean - theorem List.length_mapAccumr - theorem List.length_mapAccumr₂ - def List.mapAccumr - def List.mapAccumr₂ - theorem List.mem_cons_eq - theorem List.not_exists_mem_nil Modified scripts/noshake.json 2024-09-03 09:13:45 9ca5d4d feat(CategoryTheory/Adjunction): dualize adjoint lifting theorem (#16066) This PR renames the file `CategoryTheory.Adjunction.Lifting` to `CategoryTheory.Adjunction.Lifting.Left` and dualizes it in a new file `CategoryTheory.Adjunction.Lifting.Right` to lift right adjoints through comonads. It also changes some names in the original file which didn't follow naming conventions, as well as renaming the implementation namespace. ESTIMATED CHANGES Modified Mathlib.lean Renamed Mathlib/CategoryTheory/Adjunction/Lifting.lean to Mathlib/CategoryTheory/Adjunction/Lifting/Left.lean - def CategoryTheory.LiftAdjoint.counitCoequalises - def CategoryTheory.LiftAdjoint.otherMap + def CategoryTheory.LiftLeftAdjoint.counitCoequalises + def CategoryTheory.LiftLeftAdjoint.otherMap - theorem CategoryTheory.adjointSquareLift - theorem CategoryTheory.adjointTriangleLift + theorem CategoryTheory.isRightAdjoint_square_lift + theorem CategoryTheory.isRightAdjoint_square_lift_monadic + theorem CategoryTheory.isRightAdjoint_triangle_lift + theorem CategoryTheory.isRightAdjoint_triangle_lift_monadic - theorem CategoryTheory.monadicAdjointSquareLift - theorem CategoryTheory.monadicAdjointTriangleLift Added Mathlib/CategoryTheory/Adjunction/Lifting/Right.lean + def CategoryTheory.LiftRightAdjoint.otherMap + def CategoryTheory.LiftRightAdjoint.unitEqualises + theorem CategoryTheory.isLeftAdjoint_square_lift + theorem CategoryTheory.isLeftAdjoint_square_lift_comonadic + theorem CategoryTheory.isLeftAdjoint_triangle_lift + theorem CategoryTheory.isLeftAdjoint_triangle_lift_comonadic 2024-09-03 09:13:44 79c4b69 feat(Topology/CompHaus): sigma-comparison map (#15525) This PR defines the map `CompHausLike.sigmaComparison` associated to a presheaf `X` on `CompHausLike P`, and a finite family `S₁,...,Sₙ` of spaces in `CompHausLike P`, where `P` is stable under taking finite disjoint unions. The map `sigmaComparison` is the canonical map `X(S₁ ⊔ ... ⊔ Sₙ) ⟶ X(S₁) × ... × X(Sₙ)` induced by the inclusion maps `Sᵢ ⟶ S₁ ⊔ ... ⊔ Sₙ`, and it is an isomorphism when `X` preserves finite products. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Topology/Category/CompHausLike/SigmaComparison.lean + def CompHausLike.sigmaComparison + theorem CompHausLike.sigmaComparison_eq_comp_isos 2024-09-03 09:13:42 ce66aa0 feat(Order/Lattice): add Monotone.of_map_inf_le_left etc (#15508) - Add `Monotone.of_map_inf_le_left` etc. - Use `Monotone.of_left_le_map_sup` to reorganize the proof of `SimpleFunc.lintegral_mono`. - Add `gcongr` attrs. ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Function/SimpleFunc.lean + theorem MeasureTheory.SimpleFunc.lintegral_mono_fun + theorem MeasureTheory.SimpleFunc.lintegral_mono_measure + theorem MeasureTheory.SimpleFunc.map_fst_pair + theorem MeasureTheory.SimpleFunc.map_snd_pair Modified Mathlib/MeasureTheory/Integral/Lebesgue.lean Modified Mathlib/Order/Lattice.lean + theorem Monotone.of_le_map_sup + theorem Monotone.of_left_le_map_sup + theorem Monotone.of_map_inf_le + theorem Monotone.of_map_inf_le_left 2024-09-03 08:22:07 82e0419 chore: bump batteries (#16436) ESTIMATED CHANGES Modified Mathlib/Data/ByteArray.lean - def String.toAsciiByteArray Modified lake-manifest.json 2024-09-03 08:22:06 dd41227 docs(Bicategory/Functor): fix some nolint doc entries and porting notes (#16424) Adds documentation to structures, and removes some no longer necessary porting notes. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Bicategory/Functor/Lax.lean Modified Mathlib/CategoryTheory/Bicategory/Functor/Oplax.lean 2024-09-03 08:22:05 d48a1f2 feat: remove many `IsMarkovKernel` and `IsProbabilityMeasure` assumptions (#16399) These follow from independence assumptions that are made in the statements. ESTIMATED CHANGES Modified Mathlib/Probability/BorelCantelli.lean Modified Mathlib/Probability/Independence/Basic.lean + theorem ProbabilityTheory.iIndep.isProbabilityMeasure +/- theorem ProbabilityTheory.iIndepSet.indep_generateFrom_le +/- theorem ProbabilityTheory.iIndepSet.indep_generateFrom_le_nat +/- theorem ProbabilityTheory.iIndepSet.indep_generateFrom_lt +/- theorem ProbabilityTheory.iIndepSet.indep_generateFrom_of_disjoint + theorem ProbabilityTheory.iIndepSet.isProbabilityMeasure +/- theorem ProbabilityTheory.iIndepSets.iIndep + theorem ProbabilityTheory.iIndepSets.isProbabilityMeasure +/- theorem ProbabilityTheory.indepSets_piiUnionInter_of_disjoint +/- theorem ProbabilityTheory.indep_iSup_of_disjoint Modified Mathlib/Probability/Independence/Kernel.lean + theorem ProbabilityTheory.Kernel.iIndep.ae_isProbabilityMeasure +/- theorem ProbabilityTheory.Kernel.iIndepFun.ae_isProbabilityMeasure +/- theorem ProbabilityTheory.Kernel.iIndepFun.indepFun_finset +/- theorem ProbabilityTheory.Kernel.iIndepFun.indepFun_prod_mk +/- theorem ProbabilityTheory.Kernel.iIndepFun.indepFun_prod_mk_prod_mk + theorem ProbabilityTheory.Kernel.iIndepFun_congr + theorem ProbabilityTheory.Kernel.iIndepFun_zero_right +/- theorem ProbabilityTheory.Kernel.iIndepSet.indep_generateFrom_le +/- theorem ProbabilityTheory.Kernel.iIndepSet.indep_generateFrom_le_nat +/- theorem ProbabilityTheory.Kernel.iIndepSet.indep_generateFrom_lt +/- theorem ProbabilityTheory.Kernel.iIndepSet.indep_generateFrom_of_disjoint + theorem ProbabilityTheory.Kernel.iIndepSet_congr + theorem ProbabilityTheory.Kernel.iIndepSet_zero_right + theorem ProbabilityTheory.Kernel.iIndepSets.ae_isProbabilityMeasure +/- theorem ProbabilityTheory.Kernel.iIndepSets.iIndep + theorem ProbabilityTheory.Kernel.iIndepSets_congr + theorem ProbabilityTheory.Kernel.iIndepSets_zero_right + theorem ProbabilityTheory.Kernel.iIndep_congr + theorem ProbabilityTheory.Kernel.iIndep_zero_right + theorem ProbabilityTheory.Kernel.indepFun_congr + theorem ProbabilityTheory.Kernel.indepFun_zero_left + theorem ProbabilityTheory.Kernel.indepFun_zero_right + theorem ProbabilityTheory.Kernel.indepSet_congr + theorem ProbabilityTheory.Kernel.indepSet_zero_left + theorem ProbabilityTheory.Kernel.indepSet_zero_right + theorem ProbabilityTheory.Kernel.indepSets_congr +/- theorem ProbabilityTheory.Kernel.indepSets_piiUnionInter_of_disjoint + theorem ProbabilityTheory.Kernel.indepSets_zero_left + theorem ProbabilityTheory.Kernel.indepSets_zero_right + theorem ProbabilityTheory.Kernel.indep_congr +/- theorem ProbabilityTheory.Kernel.indep_iSup_of_disjoint + theorem ProbabilityTheory.Kernel.indep_zero_left + theorem ProbabilityTheory.Kernel.indep_zero_right Modified Mathlib/Probability/Independence/ZeroOne.lean + theorem ProbabilityTheory.Kernel.measure_eq_zero_or_one_of_indepSet_self' +/- theorem ProbabilityTheory.Kernel.measure_eq_zero_or_one_of_indepSet_self +/- theorem ProbabilityTheory.indep_biSup_compl +/- theorem ProbabilityTheory.indep_biSup_limsup +/- theorem ProbabilityTheory.indep_iSup_directed_limsup +/- theorem ProbabilityTheory.indep_iSup_limsup +/- theorem ProbabilityTheory.indep_limsup_atBot_self +/- theorem ProbabilityTheory.indep_limsup_atTop_self +/- theorem ProbabilityTheory.indep_limsup_self +/- theorem ProbabilityTheory.measure_zero_or_one_of_measurableSet_limsup +/- theorem ProbabilityTheory.measure_zero_or_one_of_measurableSet_limsup_atBot +/- theorem ProbabilityTheory.measure_zero_or_one_of_measurableSet_limsup_atTop Modified Mathlib/Probability/Kernel/Basic.lean + theorem ProbabilityTheory.Kernel.exists_ae_eq_isMarkovKernel 2024-09-03 07:25:35 b191738 doc: remove title of empty section (#16432) The dropLast section is empty. ESTIMATED CHANGES Modified Mathlib/Data/List/Basic.lean 2024-09-03 07:25:34 d7a2249 feat(LocallyIntegrable): generalize locallyIntegrableOn_iff (#16324) Drop a `T2Space` assumption and assume `IsLocallyClosed` instead of `IsClosed s ∨ IsOpen s`. ESTIMATED CHANGES Modified Mathlib/Analysis/MellinTransform.lean Modified Mathlib/MeasureTheory/Function/LocallyIntegrable.lean +/- theorem MeasureTheory.locallyIntegrableOn_iff Modified Mathlib/Topology/Basic.lean + theorem IsClosed.isLocallyClosed + theorem IsOpen.isLocallyClosed Modified Mathlib/Topology/LocallyClosed.lean - theorem IsClosed.isLocallyClosed - theorem IsOpen.isLocallyClosed 2024-09-03 07:00:43 70e99da feat(AddChar): Additive group structure and double dual embedding (#15441) This PR constructs the additive group structure on `AddChar A G` (a copy of its multiplicative group structure) and leverages it to define the double dual embedding as a morphism `A →+ AddChar (AddChar A M) M`. From LeanAPAP ESTIMATED CHANGES Modified Mathlib/Algebra/Group/AddChar.lean + theorem AddChar.add_apply + theorem AddChar.coe_add + theorem AddChar.coe_nsmul + theorem AddChar.coe_prod + theorem AddChar.coe_sum + theorem AddChar.coe_zero + theorem AddChar.div_apply' + theorem AddChar.div_apply + def AddChar.doubleDualEmb + theorem AddChar.doubleDualEmb_apply + theorem AddChar.eq_zero_iff +/- theorem AddChar.inv_apply' +/- theorem AddChar.inv_apply +/- theorem AddChar.mul_apply + theorem AddChar.mul_eq_add + theorem AddChar.ne_zero_iff + theorem AddChar.neg_apply' + theorem AddChar.neg_apply + theorem AddChar.nsmul_apply + theorem AddChar.one_eq_zero +/- theorem AddChar.pow_apply + theorem AddChar.pow_eq_nsmul + theorem AddChar.prod_apply + theorem AddChar.prod_eq_sum + theorem AddChar.sub_apply' + theorem AddChar.sub_apply + theorem AddChar.sum_apply + theorem AddChar.sum_eq_ite + theorem AddChar.sum_eq_zero_iff_ne_zero + theorem AddChar.sum_ne_zero_iff_eq_zero + theorem AddChar.zero_apply 2024-09-03 05:37:03 4810f3e chore: merge bump/v4.12.0 and move toolchain to v4.12.0-rc1 (#16433) ESTIMATED CHANGES Modified .github/workflows/lean4checker.yml Modified Archive/Examples/IfNormalization/WithoutAesop.lean Modified Archive/Imo/Imo1987Q1.lean Modified Archive/MiuLanguage/DecisionNec.lean Modified Archive/MiuLanguage/DecisionSuf.lean Modified Archive/Wiedijk100Theorems/BallotProblem.lean Modified Archive/Wiedijk100Theorems/FriendshipGraphs.lean Modified Archive/Wiedijk100Theorems/Konigsberg.lean Modified Archive/Wiedijk100Theorems/Partition.lean Modified Archive/ZagierTwoSquares.lean Modified Counterexamples/CliffordAlgebraNotInjective.lean Modified Counterexamples/MonicNonRegular.lean Modified Counterexamples/SorgenfreyLine.lean Modified Mathlib.lean Modified Mathlib/Algebra/Algebra/Operations.lean Modified Mathlib/Algebra/BigOperators/Finsupp.lean Modified Mathlib/Algebra/BigOperators/Group/List.lean Modified Mathlib/Algebra/ContinuedFractions/Computation/Translations.lean Modified Mathlib/Algebra/Free.lean Modified Mathlib/Algebra/FreeAlgebra.lean Modified Mathlib/Algebra/Group/Subgroup/Basic.lean +/- theorem Subgroup.mk_eq_one Modified Mathlib/Algebra/Group/Subgroup/MulOpposite.lean Modified Mathlib/Algebra/Group/Submonoid/Operations.lean Modified Mathlib/Algebra/Group/Submonoid/Units.lean Modified Mathlib/Algebra/Group/Subsemigroup/Operations.lean Modified Mathlib/Algebra/Homology/ExactSequence.lean Modified Mathlib/Algebra/Homology/Homotopy.lean Modified Mathlib/Algebra/Lie/CartanExists.lean Modified Mathlib/Algebra/Lie/Classical.lean Modified Mathlib/Algebra/Lie/Derivation/Killing.lean Modified Mathlib/Algebra/Lie/DirectSum.lean Modified Mathlib/Algebra/Lie/Engel.lean Modified Mathlib/Algebra/Lie/EngelSubalgebra.lean Modified Mathlib/Algebra/Lie/IdealOperations.lean Modified Mathlib/Algebra/Lie/Nilpotent.lean Modified Mathlib/Algebra/Lie/OfAssociative.lean Modified Mathlib/Algebra/Lie/Semisimple/Basic.lean Modified Mathlib/Algebra/Lie/Solvable.lean Modified Mathlib/Algebra/Lie/Subalgebra.lean Modified Mathlib/Algebra/Lie/Submodule.lean +/- theorem LieSubmodule.coe_bracket Modified Mathlib/Algebra/Lie/TensorProduct.lean Modified Mathlib/Algebra/Lie/TraceForm.lean Modified Mathlib/Algebra/Lie/Weights/Basic.lean Modified Mathlib/Algebra/Lie/Weights/Cartan.lean Modified Mathlib/Algebra/Lie/Weights/Chain.lean Modified Mathlib/Algebra/Lie/Weights/Killing.lean Modified Mathlib/Algebra/Lie/Weights/Linear.lean Modified Mathlib/Algebra/Module/Submodule/Basic.lean Modified Mathlib/Algebra/Module/Submodule/Ker.lean Modified Mathlib/Algebra/Module/Submodule/Pointwise.lean Modified Mathlib/Algebra/Module/Torsion.lean Modified Mathlib/Algebra/MvPolynomial/Basic.lean Modified Mathlib/Algebra/MvPolynomial/Division.lean Modified Mathlib/Algebra/MvPolynomial/Expand.lean Modified Mathlib/Algebra/MvPolynomial/Rename.lean Modified Mathlib/Algebra/Order/Ring/Unbundled/Rat.lean Modified Mathlib/Algebra/Polynomial/AlgebraMap.lean Modified Mathlib/Algebra/Polynomial/Coeff.lean Modified Mathlib/Algebra/Polynomial/Induction.lean Modified Mathlib/Algebra/Ring/CentroidHom.lean Modified Mathlib/Algebra/Ring/Subring/Basic.lean Modified Mathlib/Algebra/TrivSqZeroExt.lean Modified Mathlib/AlgebraicGeometry/AffineScheme.lean Modified Mathlib/AlgebraicGeometry/PrimeSpectrum/Basic.lean Modified Mathlib/AlgebraicGeometry/ProjectiveSpectrum/Scheme.lean Modified Mathlib/AlgebraicGeometry/ProjectiveSpectrum/Topology.lean Modified Mathlib/AlgebraicTopology/DoldKan/Degeneracies.lean Modified Mathlib/AlgebraicTopology/DoldKan/Faces.lean Modified Mathlib/AlgebraicTopology/DoldKan/FunctorGamma.lean Modified Mathlib/AlgebraicTopology/DoldKan/Normalized.lean Modified Mathlib/AlgebraicTopology/ExtraDegeneracy.lean Modified Mathlib/Analysis/Analytic/Basic.lean Modified Mathlib/Analysis/Analytic/Composition.lean Modified Mathlib/Analysis/Analytic/Inverse.lean Modified Mathlib/Analysis/Asymptotics/SpecificAsymptotics.lean Modified Mathlib/Analysis/Asymptotics/Theta.lean Modified Mathlib/Analysis/BoxIntegral/Box/Basic.lean Modified Mathlib/Analysis/BoxIntegral/Partition/Additive.lean Modified Mathlib/Analysis/BoxIntegral/Partition/Basic.lean Modified Mathlib/Analysis/BoxIntegral/Partition/Tagged.lean Modified Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Basic.lean Modified Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Restrict.lean Modified Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Unitary.lean Modified Mathlib/Analysis/Calculus/ContDiff/Basic.lean Modified Mathlib/Analysis/Calculus/Deriv/Slope.lean Modified Mathlib/Analysis/Calculus/Deriv/ZPow.lean Modified Mathlib/Analysis/Calculus/FDeriv/Basic.lean Modified Mathlib/Analysis/Calculus/FDeriv/Bilinear.lean Modified Mathlib/Analysis/Calculus/FDeriv/Symmetric.lean Modified Mathlib/Analysis/Calculus/LineDeriv/Basic.lean Modified Mathlib/Analysis/Calculus/LineDeriv/IntegrationByParts.lean Modified Mathlib/Analysis/Complex/AbsMax.lean Modified Mathlib/Analysis/Complex/PhragmenLindelof.lean Modified Mathlib/Analysis/Complex/Polynomial/Basic.lean Modified Mathlib/Analysis/Complex/TaylorSeries.lean Modified Mathlib/Analysis/Convex/Combination.lean Modified Mathlib/Analysis/Convex/GaugeRescale.lean Modified Mathlib/Analysis/Convex/Intrinsic.lean Modified Mathlib/Analysis/Convex/SimplicialComplex/Basic.lean Modified Mathlib/Analysis/Convex/StoneSeparation.lean Modified Mathlib/Analysis/Distribution/AEEqOfIntegralContDiff.lean Modified Mathlib/Analysis/FunctionalSpaces/SobolevInequality.lean Modified Mathlib/Analysis/LocallyConvex/Basic.lean Modified Mathlib/Analysis/LocallyConvex/Bounded.lean Modified Mathlib/Analysis/Normed/Field/Basic.lean Modified Mathlib/Analysis/Normed/Group/Bounded.lean Modified Mathlib/Analysis/Normed/Group/Hom.lean Modified Mathlib/Analysis/Normed/Lp/PiLp.lean Modified Mathlib/Analysis/Normed/Lp/ProdLp.lean Modified Mathlib/Analysis/Normed/Lp/lpSpace.lean Modified Mathlib/Analysis/Normed/Ring/Units.lean Modified Mathlib/Analysis/NormedSpace/PiTensorProduct/InjectiveSeminorm.lean Modified Mathlib/Analysis/ODE/PicardLindelof.lean Modified Mathlib/Analysis/SpecialFunctions/Exp.lean Modified Mathlib/Analysis/SpecialFunctions/Gamma/Basic.lean Modified Mathlib/Analysis/SpecialFunctions/Gaussian/GaussianIntegral.lean Modified Mathlib/Analysis/SpecialFunctions/Log/Basic.lean Modified Mathlib/Analysis/SpecialFunctions/Log/Deriv.lean Modified Mathlib/Analysis/SpecialFunctions/Pow/Continuity.lean Modified Mathlib/CategoryTheory/Bicategory/Free.lean Modified Mathlib/CategoryTheory/Category/PartialFun.lean Modified Mathlib/CategoryTheory/Category/ULift.lean Modified Mathlib/CategoryTheory/ConnectedComponents.lean Modified Mathlib/CategoryTheory/GradedObject/Monoidal.lean Modified Mathlib/CategoryTheory/GradedObject/Trifunctor.lean Modified Mathlib/CategoryTheory/Idempotents/FunctorExtension.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Biproducts.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Countable.lean Modified Mathlib/CategoryTheory/Linear/FunctorCategory.lean Modified Mathlib/CategoryTheory/Sites/Grothendieck.lean Modified Mathlib/CategoryTheory/Triangulated/Functor.lean Modified Mathlib/CategoryTheory/WithTerminal.lean Modified Mathlib/Combinatorics/Additive/Energy.lean Modified Mathlib/Combinatorics/Configuration.lean Modified Mathlib/Combinatorics/Derangements/Finite.lean Modified Mathlib/Combinatorics/Enumerative/Composition.lean Modified Mathlib/Combinatorics/Enumerative/DyckWord.lean Modified Mathlib/Combinatorics/Hall/Basic.lean Modified Mathlib/Combinatorics/SetFamily/AhlswedeZhang.lean Modified Mathlib/Combinatorics/SimpleGraph/Connectivity/WalkCounting.lean Modified Mathlib/Combinatorics/SimpleGraph/Ends/Defs.lean Modified Mathlib/Combinatorics/SimpleGraph/Finite.lean Modified Mathlib/Combinatorics/SimpleGraph/LapMatrix.lean Modified Mathlib/Combinatorics/SimpleGraph/Matching.lean Modified Mathlib/Combinatorics/SimpleGraph/Trails.lean Modified Mathlib/Combinatorics/SimpleGraph/Triangle/Tripartite.lean Modified Mathlib/Computability/AkraBazzi/AkraBazzi.lean Modified Mathlib/Computability/Halting.lean Modified Mathlib/Computability/Language.lean Modified Mathlib/Computability/PartrecCode.lean Modified Mathlib/Computability/RegularExpressions.lean Modified Mathlib/Computability/TMToPartrec.lean Modified Mathlib/Computability/TuringMachine.lean Modified Mathlib/Control/Applicative.lean Modified Mathlib/Control/Basic.lean Modified Mathlib/Control/Bitraversable/Instances.lean Modified Mathlib/Control/Bitraversable/Lemmas.lean Modified Mathlib/Control/Fold.lean Modified Mathlib/Control/LawfulFix.lean Modified Mathlib/Data/Bool/Basic.lean - theorem Bool.exists_bool' - theorem Bool.exists_bool - theorem Bool.forall_bool' - theorem Bool.forall_bool Modified Mathlib/Data/Fin/Basic.lean Modified Mathlib/Data/Fin/Tuple/Basic.lean Modified Mathlib/Data/Finmap.lean Modified Mathlib/Data/Finset/Basic.lean Modified Mathlib/Data/Finset/Image.lean Modified Mathlib/Data/Finset/Lattice.lean Modified Mathlib/Data/Finset/NoncommProd.lean Modified Mathlib/Data/Finset/Pointwise/Basic.lean Modified Mathlib/Data/Finsupp/Basic.lean Modified Mathlib/Data/Finsupp/Weight.lean Modified Mathlib/Data/Fintype/Fin.lean Modified Mathlib/Data/Fintype/Order.lean Modified Mathlib/Data/Fintype/Perm.lean Modified Mathlib/Data/Int/Defs.lean Modified Mathlib/Data/LazyList/Basic.lean Modified Mathlib/Data/List/AList.lean Modified Mathlib/Data/List/Basic.lean - theorem List.Sublist.of_cons_cons - theorem List.append_left_eq_self - theorem List.append_right_eq_self - theorem List.drop_tail - theorem List.eq_nil_of_sublist_nil - def List.foldlRecOn - theorem List.foldlRecOn_nil - def List.foldrRecOn - theorem List.foldrRecOn_cons - theorem List.foldrRecOn_nil - theorem List.getElem?_eq - theorem List.getElem_reverse - theorem List.getLast?_cons_cons - theorem List.isEmpty_iff_eq_nil - theorem List.reverse_inj - theorem List.self_eq_append_left - theorem List.self_eq_append_right - theorem List.tail_append_of_ne_nil - theorem List.tail_replicate - theorem List.tail_sublist - theorem List.take_cons Modified Mathlib/Data/List/Chain.lean Modified Mathlib/Data/List/Count.lean Modified Mathlib/Data/List/Cycle.lean +/- def Cycle.Mem Modified Mathlib/Data/List/Dedup.lean Modified Mathlib/Data/List/DropRight.lean Modified Mathlib/Data/List/Enum.lean +/- theorem List.mem_enum_iff_get? Modified Mathlib/Data/List/FinRange.lean Modified Mathlib/Data/List/Indexes.lean - theorem List.findIdx_eq - theorem List.findIdx_eq_length - theorem List.findIdx_le_length - theorem List.findIdx_lt_length - theorem List.le_findIdx_of_not - theorem List.lt_findIdx_of_not - theorem List.not_of_lt_findIdx Modified Mathlib/Data/List/Infix.lean - theorem List.IsPrefix.getElem - theorem List.IsPrefix.head_eq - theorem List.IsPrefix.ne_nil - theorem List.dropLast_prefix - theorem List.dropLast_sublist - theorem List.dropLast_subset - theorem List.dropWhile_suffix - theorem List.drop_sublist_drop_left - theorem List.infix_rfl - theorem List.mem_of_mem_suffix - theorem List.prefix_concat - theorem List.prefix_concat_iff - theorem List.prefix_iff_eq_append - theorem List.prefix_iff_eq_take - theorem List.prefix_rfl - theorem List.prefix_take_iff - theorem List.prefix_take_le_iff - theorem List.suffix_iff_eq_append - theorem List.suffix_iff_eq_drop - theorem List.suffix_rfl - theorem List.tail_suffix - theorem List.takeWhile_prefix Modified Mathlib/Data/List/Join.lean - theorem List.bind_eq_nil - theorem List.eq_iff_join_eq - theorem List.join_eq_nil - theorem List.join_filter_ne_nil - theorem List.join_filter_not_isEmpty - theorem List.join_singleton - theorem List.sublist_join Modified Mathlib/Data/List/Lemmas.lean - theorem List.getElem_reverse' Modified Mathlib/Data/List/Nodup.lean Modified Mathlib/Data/List/OfFn.lean Modified Mathlib/Data/List/Pairwise.lean - theorem List.Pairwise.pmap - theorem List.pairwise_of_forall_mem_list - theorem List.pairwise_pmap Modified Mathlib/Data/List/Perm.lean Modified Mathlib/Data/List/Permutation.lean Modified Mathlib/Data/List/Range.lean Modified Mathlib/Data/List/Rotate.lean Modified Mathlib/Data/List/Sigma.lean Modified Mathlib/Data/List/Sort.lean + theorem List.length_mergeSort' - theorem List.length_mergeSort + theorem List.map_mergeSort' - theorem List.map_mergeSort + theorem List.mem_mergeSort' - theorem List.mem_mergeSort + def List.mergeSort' + theorem List.mergeSort'_cons_cons + theorem List.mergeSort'_eq_insertionSort + theorem List.mergeSort'_eq_self + theorem List.mergeSort'_nil + theorem List.mergeSort'_singleton - def List.mergeSort - theorem List.mergeSort_cons_cons - theorem List.mergeSort_eq_insertionSort - theorem List.mergeSort_eq_self - theorem List.mergeSort_nil - theorem List.mergeSort_singleton + theorem List.perm_mergeSort' - theorem List.perm_mergeSort + theorem List.sorted_mergeSort' - theorem List.sorted_mergeSort Modified Mathlib/Data/List/Sublists.lean Modified Mathlib/Data/MLList/DepthFirst.lean Modified Mathlib/Data/Matrix/Basic.lean Modified Mathlib/Data/Multiset/Basic.lean +/- def Multiset.Mem Modified Mathlib/Data/Multiset/Functor.lean Modified Mathlib/Data/Multiset/Powerset.lean Modified Mathlib/Data/Multiset/Sections.lean Modified Mathlib/Data/Multiset/Sort.lean +/- theorem Multiset.coe_sort Modified Mathlib/Data/NNReal/Basic.lean Modified Mathlib/Data/Nat/Bits.lean Modified Mathlib/Data/Nat/Bitwise.lean - theorem Nat.testBit_two_pow - theorem Nat.testBit_two_pow_of_ne - theorem Nat.testBit_two_pow_self Modified Mathlib/Data/Nat/Cast/Defs.lean Modified Mathlib/Data/Nat/Defs.lean Modified Mathlib/Data/Nat/Digits.lean Modified Mathlib/Data/Nat/Factorization/Basic.lean Modified Mathlib/Data/Nat/Factorization/Induction.lean Modified Mathlib/Data/Nat/Notation.lean Modified Mathlib/Data/Nat/Squarefree.lean Modified Mathlib/Data/Option/Basic.lean - theorem Option.get_map Modified Mathlib/Data/Ordering/Lemmas.lean Modified Mathlib/Data/Ordmap/Ordnode.lean Modified Mathlib/Data/Ordmap/Ordset.lean Modified Mathlib/Data/PEquiv.lean Modified Mathlib/Data/PFun.lean Modified Mathlib/Data/PFunctor/Multivariate/W.lean Modified Mathlib/Data/PFunctor/Univariate/M.lean Modified Mathlib/Data/Part.lean Modified Mathlib/Data/Prod/Basic.lean - theorem Prod.«exists» - theorem Prod.«forall» Modified Mathlib/Data/QPF/Multivariate/Constructions/Fix.lean Modified Mathlib/Data/QPF/Univariate/Basic.lean Modified Mathlib/Data/Real/Pi/Wallis.lean Modified Mathlib/Data/Semiquot.lean Modified Mathlib/Data/Seq/Computation.lean Modified Mathlib/Data/Seq/Parallel.lean Modified Mathlib/Data/Seq/Seq.lean Modified Mathlib/Data/Seq/WSeq.lean Modified Mathlib/Data/Set/Basic.lean - def Set.inclusion Modified Mathlib/Data/Set/Card.lean Modified Mathlib/Data/Set/Countable.lean Modified Mathlib/Data/Set/Defs.lean Modified Mathlib/Data/Set/Enumerate.lean Modified Mathlib/Data/Set/Finite.lean Modified Mathlib/Data/Set/List.lean Modified Mathlib/Data/Set/Pairwise/Lattice.lean Modified Mathlib/Data/Set/Pointwise/Basic.lean Modified Mathlib/Data/Set/Prod.lean Modified Mathlib/Data/Set/UnionLift.lean Modified Mathlib/Data/SetLike/Basic.lean Modified Mathlib/Data/Stream/Defs.lean Modified Mathlib/Data/Stream/Init.lean Modified Mathlib/Data/String/Basic.lean Modified Mathlib/Data/Sum/Basic.lean Modified Mathlib/Data/Sum/Interval.lean Modified Mathlib/Data/Sym/Basic.lean Modified Mathlib/Data/Sym/Sym2.lean Modified Mathlib/Data/Vector/Basic.lean Modified Mathlib/Deprecated/Subring.lean Modified Mathlib/Dynamics/Circle/RotationNumber/TranslationNumber.lean Modified Mathlib/Dynamics/OmegaLimit.lean Modified Mathlib/FieldTheory/Adjoin.lean Modified Mathlib/FieldTheory/Finite/Basic.lean Modified Mathlib/FieldTheory/Fixed.lean Modified Mathlib/FieldTheory/Galois.lean Modified Mathlib/FieldTheory/IntermediateField/Basic.lean Modified Mathlib/FieldTheory/Minpoly/MinpolyDiv.lean Modified Mathlib/FieldTheory/NormalClosure.lean Modified Mathlib/FieldTheory/Perfect.lean Modified Mathlib/FieldTheory/PurelyInseparable.lean Modified Mathlib/Geometry/Euclidean/Sphere/Basic.lean Modified Mathlib/Geometry/Manifold/AnalyticManifold.lean Modified Mathlib/Geometry/Manifold/ChartedSpace.lean Modified Mathlib/Geometry/Manifold/ContMDiff/Basic.lean +/- theorem smooth_inclusion Modified Mathlib/Geometry/Manifold/ContMDiff/Product.lean Modified Mathlib/Geometry/Manifold/ContMDiffMFDeriv.lean Modified Mathlib/Geometry/Manifold/Diffeomorph.lean Modified Mathlib/Geometry/Manifold/LocalInvariantProperties.lean Modified Mathlib/Geometry/Manifold/MFDeriv/SpecificFunctions.lean Modified Mathlib/Geometry/Manifold/Sheaf/Basic.lean Modified Mathlib/Geometry/Manifold/Sheaf/LocallyRingedSpace.lean Modified Mathlib/Geometry/Manifold/VectorBundle/Basic.lean Modified Mathlib/GroupTheory/Congruence/Basic.lean Modified Mathlib/GroupTheory/Coset/Basic.lean Modified Mathlib/GroupTheory/Coxeter/Inversion.lean Modified Mathlib/GroupTheory/DoubleCoset.lean Modified Mathlib/GroupTheory/FreeGroup/Basic.lean +/- theorem FreeGroup.Red.Step.sublist Modified Mathlib/GroupTheory/GroupAction/Basic.lean Modified Mathlib/GroupTheory/GroupAction/Blocks.lean Modified Mathlib/GroupTheory/GroupAction/FixingSubgroup.lean Modified Mathlib/GroupTheory/GroupAction/Quotient.lean Modified Mathlib/GroupTheory/HNNExtension.lean Modified Mathlib/GroupTheory/OrderOfElement.lean +/- theorem orderOf_eq_card_powers Modified Mathlib/GroupTheory/Perm/Cycle/Type.lean Modified Mathlib/GroupTheory/Perm/Sign.lean Modified Mathlib/GroupTheory/PushoutI.lean Modified Mathlib/GroupTheory/QuotientGroup/Basic.lean Modified Mathlib/GroupTheory/SchurZassenhaus.lean Modified Mathlib/GroupTheory/Solvable.lean Modified Mathlib/GroupTheory/SpecificGroups/Cyclic.lean Modified Mathlib/GroupTheory/SpecificGroups/Dihedral.lean Modified Mathlib/GroupTheory/SpecificGroups/Quaternion.lean Modified Mathlib/GroupTheory/Sylow.lean Modified Mathlib/GroupTheory/Torsion.lean Modified Mathlib/Lean/Expr/Basic.lean Modified Mathlib/Lean/Thunk.lean Modified Mathlib/LinearAlgebra/AffineSpace/AffineSubspace.lean Modified Mathlib/LinearAlgebra/AffineSpace/Matrix.lean Modified Mathlib/LinearAlgebra/Alternating/Basic.lean Modified Mathlib/LinearAlgebra/Alternating/DomCoprod.lean Modified Mathlib/LinearAlgebra/DFinsupp.lean Modified Mathlib/LinearAlgebra/Dimension/Constructions.lean Modified Mathlib/LinearAlgebra/Dimension/DivisionRing.lean Modified Mathlib/LinearAlgebra/Dimension/Finite.lean Modified Mathlib/LinearAlgebra/Dimension/FreeAndStrongRankCondition.lean Modified Mathlib/LinearAlgebra/Dimension/RankNullity.lean Modified Mathlib/LinearAlgebra/Eigenspace/Matrix.lean Modified Mathlib/LinearAlgebra/ExteriorAlgebra/Basic.lean Modified Mathlib/LinearAlgebra/FiniteDimensional/Defs.lean Modified Mathlib/LinearAlgebra/FreeModule/PID.lean Modified Mathlib/LinearAlgebra/LinearDisjoint.lean Modified Mathlib/LinearAlgebra/LinearIndependent.lean Modified Mathlib/LinearAlgebra/Matrix/Adjugate.lean Modified Mathlib/LinearAlgebra/Matrix/Charpoly/Coeff.lean Modified Mathlib/LinearAlgebra/Matrix/HermitianFunctionalCalculus.lean Modified Mathlib/LinearAlgebra/Matrix/SpecialLinearGroup.lean Modified Mathlib/LinearAlgebra/Matrix/Transvection.lean Modified Mathlib/LinearAlgebra/Prod.lean Modified Mathlib/LinearAlgebra/QuadraticForm/Basic.lean Modified Mathlib/LinearAlgebra/Ray.lean Modified Mathlib/LinearAlgebra/Reflection.lean Modified Mathlib/LinearAlgebra/TensorAlgebra/ToTensorPower.lean Modified Mathlib/Logic/Basic.lean - theorem exists₂_imp Modified Mathlib/Logic/Encodable/Lattice.lean Modified Mathlib/Logic/Equiv/Basic.lean Modified Mathlib/Logic/Equiv/Embedding.lean Modified Mathlib/Logic/Equiv/List.lean Modified Mathlib/Logic/Equiv/Option.lean Modified Mathlib/Logic/Function/Defs.lean - theorem Function.comp_const - theorem Function.const_comp Modified Mathlib/Logic/IsEmpty.lean Modified Mathlib/Logic/Nonempty.lean - theorem nonempty_Prop Modified Mathlib/Logic/Relation.lean - theorem Relation.TransGen.trans Modified Mathlib/MeasureTheory/Constructions/BorelSpace/Order.lean Modified Mathlib/MeasureTheory/Constructions/Prod/Integral.lean Modified Mathlib/MeasureTheory/Group/FundamentalDomain.lean Modified Mathlib/MeasureTheory/Group/Measure.lean Modified Mathlib/MeasureTheory/Group/Prod.lean Modified Mathlib/MeasureTheory/Integral/Bochner.lean Modified Mathlib/MeasureTheory/Integral/DivergenceTheorem.lean Modified Mathlib/MeasureTheory/MeasurableSpace/Basic.lean Modified Mathlib/MeasureTheory/Measure/Haar/Disintegration.lean Modified Mathlib/MeasureTheory/Measure/Lebesgue/Integral.lean Modified Mathlib/MeasureTheory/Measure/MeasureSpace.lean Modified Mathlib/MeasureTheory/Measure/Typeclasses.lean Modified Mathlib/ModelTheory/ElementaryMaps.lean Modified Mathlib/ModelTheory/Encoding.lean Modified Mathlib/ModelTheory/PartialEquiv.lean Modified Mathlib/ModelTheory/Semantics.lean Modified Mathlib/ModelTheory/Skolem.lean Modified Mathlib/ModelTheory/Ultraproducts.lean Modified Mathlib/NumberTheory/BernoulliPolynomials.lean Modified Mathlib/NumberTheory/Cyclotomic/CyclotomicCharacter.lean Modified Mathlib/NumberTheory/Cyclotomic/PrimitiveRoots.lean Modified Mathlib/NumberTheory/Cyclotomic/Rat.lean Modified Mathlib/NumberTheory/Dioph.lean Modified Mathlib/NumberTheory/Harmonic/EulerMascheroni.lean Modified Mathlib/NumberTheory/Harmonic/ZetaAsymp.lean Modified Mathlib/NumberTheory/KummerDedekind.lean Modified Mathlib/NumberTheory/LSeries/Dirichlet.lean Modified Mathlib/NumberTheory/LegendreSymbol/GaussEisensteinLemmas.lean Modified Mathlib/NumberTheory/LegendreSymbol/JacobiSymbol.lean Modified Mathlib/NumberTheory/LegendreSymbol/QuadraticChar/Basic.lean Modified Mathlib/NumberTheory/ModularForms/EisensteinSeries/Defs.lean Modified Mathlib/NumberTheory/MulChar/Lemmas.lean Modified Mathlib/NumberTheory/NumberField/CanonicalEmbedding/ConvexBody.lean Modified Mathlib/NumberTheory/NumberField/Units/Regulator.lean Modified Mathlib/Order/CompleteLattice.lean Modified Mathlib/Order/CompleteSublattice.lean Modified Mathlib/Order/Defs.lean Modified Mathlib/Order/Filter/AtTopBot.lean Modified Mathlib/Order/Filter/Bases.lean Modified Mathlib/Order/Filter/Basic.lean Modified Mathlib/Order/Filter/EventuallyConst.lean Modified Mathlib/Order/Filter/FilterProduct.lean Modified Mathlib/Order/Filter/Germ/Basic.lean Modified Mathlib/Order/Filter/Lift.lean Modified Mathlib/Order/Filter/NAry.lean Modified Mathlib/Order/Filter/Pointwise.lean Modified Mathlib/Order/Filter/Prod.lean Modified Mathlib/Order/Filter/SmallSets.lean Modified Mathlib/Order/Filter/Ultrafilter.lean Modified Mathlib/Order/Hom/CompleteLattice.lean Modified Mathlib/Order/Ideal.lean Modified Mathlib/Order/Interval/Basic.lean Modified Mathlib/Order/Interval/Finset/Defs.lean Modified Mathlib/Order/Interval/Set/Basic.lean Modified Mathlib/Order/LiminfLimsup.lean Modified Mathlib/Order/OmegaCompletePartialOrder.lean Modified Mathlib/Order/Partition/Finpartition.lean +/- theorem Finpartition.mem_part Modified Mathlib/Order/RelSeries.lean Modified Mathlib/Order/SemiconjSup.lean Modified Mathlib/Order/SupIndep.lean Modified Mathlib/Probability/Distributions/Gaussian.lean Modified Mathlib/Probability/Independence/Kernel.lean Modified Mathlib/Probability/Kernel/IntegralCompProd.lean Modified Mathlib/Probability/Martingale/Upcrossing.lean Modified Mathlib/Probability/ProbabilityMassFunction/Constructions.lean +/- theorem PMF.map_comp Modified Mathlib/RingTheory/AdicCompletion/Basic.lean Modified Mathlib/RingTheory/AdicCompletion/Exactness.lean Modified Mathlib/RingTheory/AlgebraicIndependent.lean Modified Mathlib/RingTheory/Binomial.lean Modified Mathlib/RingTheory/Congruence/Basic.lean Modified Mathlib/RingTheory/DedekindDomain/AdicValuation.lean Modified Mathlib/RingTheory/DedekindDomain/FiniteAdeleRing.lean Modified Mathlib/RingTheory/DedekindDomain/Ideal.lean Modified Mathlib/RingTheory/DedekindDomain/PID.lean Modified Mathlib/RingTheory/DedekindDomain/SelmerGroup.lean Modified Mathlib/RingTheory/FiniteType.lean Modified Mathlib/RingTheory/FractionalIdeal/Operations.lean Modified Mathlib/RingTheory/Generators.lean Modified Mathlib/RingTheory/Ideal/Basic.lean Modified Mathlib/RingTheory/Ideal/Cotangent.lean Modified Mathlib/RingTheory/Ideal/Operations.lean Modified Mathlib/RingTheory/IntegralClosure/IsIntegralClosure/Basic.lean Modified Mathlib/RingTheory/IsAdjoinRoot.lean Modified Mathlib/RingTheory/Kaehler/Basic.lean Modified Mathlib/RingTheory/LaurentSeries.lean Modified Mathlib/RingTheory/LittleWedderburn.lean Modified Mathlib/RingTheory/LocalProperties.lean Modified Mathlib/RingTheory/LocalRing/Module.lean Modified Mathlib/RingTheory/Localization/Algebra.lean Modified Mathlib/RingTheory/Localization/Finiteness.lean Modified Mathlib/RingTheory/MvPolynomial/Tower.lean Modified Mathlib/RingTheory/Nilpotent/Lemmas.lean Modified Mathlib/RingTheory/Polynomial/Cyclotomic/Roots.lean Modified Mathlib/RingTheory/Polynomial/Eisenstein/IsIntegral.lean Modified Mathlib/RingTheory/PrimeSpectrum.lean Modified Mathlib/RingTheory/PrincipalIdealDomain.lean Modified Mathlib/RingTheory/Regular/IsSMulRegular.lean Modified Mathlib/RingTheory/Regular/RegularSequence.lean +/- theorem Ideal.ofList_singleton Modified Mathlib/RingTheory/RingHom/FinitePresentation.lean Modified Mathlib/RingTheory/RootsOfUnity/Minpoly.lean Modified Mathlib/RingTheory/Smooth/Kaehler.lean Modified Mathlib/RingTheory/UniqueFactorizationDomain.lean +/- def Associates.FactorSetMem +/- theorem Associates.factorSetMem_eq_mem Modified Mathlib/RingTheory/Valuation/AlgebraInstances.lean Modified Mathlib/RingTheory/Valuation/ValuationSubring.lean Modified Mathlib/RingTheory/WittVector/IsPoly.lean Modified Mathlib/RingTheory/WittVector/MulCoeff.lean Modified Mathlib/RingTheory/WittVector/MulP.lean Modified Mathlib/RingTheory/WittVector/WittPolynomial.lean Modified Mathlib/SetTheory/Cardinal/Basic.lean Modified Mathlib/SetTheory/Lists.lean Modified Mathlib/SetTheory/Ordinal/Arithmetic.lean Modified Mathlib/SetTheory/ZFC/Basic.lean Modified Mathlib/Tactic/Cases.lean Modified Mathlib/Tactic/Explode/Datatypes.lean Modified Mathlib/Tactic/FinCases.lean Modified Mathlib/Tactic/Find.lean Modified Mathlib/Tactic/FunProp/Core.lean Modified Mathlib/Tactic/GCongr/Core.lean Modified Mathlib/Tactic/GeneralizeProofs.lean Modified Mathlib/Tactic/Linarith/Oracle/SimplexAlgorithm/Datatypes.lean Modified Mathlib/Tactic/Linter/HashCommandLinter.lean Modified Mathlib/Tactic/Linter/UnusedTactic.lean Modified Mathlib/Tactic/MinImports.lean Modified Mathlib/Tactic/Recover.lean Modified Mathlib/Tactic/Sat/FromLRAT.lean +/- def Mathlib.Tactic.Sat.Parser.parseDimacs +/- def Mathlib.Tactic.Sat.Parser.parseInt +/- def Mathlib.Tactic.Sat.Parser.parseLRAT +/- def Mathlib.Tactic.Sat.Parser.parseNat Modified Mathlib/Tactic/Simps/Basic.lean Modified Mathlib/Tactic/SplitIfs.lean Modified Mathlib/Tactic/StacksAttribute.lean Modified Mathlib/Tactic/TFAE.lean Modified Mathlib/Tactic/ToAdditive/Frontend.lean Modified Mathlib/Testing/SlimCheck/Functions.lean Modified Mathlib/Topology/Algebra/Constructions.lean Modified Mathlib/Topology/Algebra/FilterBasis.lean Modified Mathlib/Topology/Algebra/Group/Basic.lean Modified Mathlib/Topology/Algebra/GroupWithZero.lean Modified Mathlib/Topology/Algebra/InfiniteSum/Group.lean Modified Mathlib/Topology/Algebra/InfiniteSum/NatInt.lean Modified Mathlib/Topology/Algebra/Module/Alternating/Basic.lean Modified Mathlib/Topology/Algebra/Module/Multilinear/Bounded.lean Modified Mathlib/Topology/Algebra/Module/StrongTopology.lean Modified Mathlib/Topology/Algebra/Monoid.lean Modified Mathlib/Topology/Algebra/MulAction.lean Modified Mathlib/Topology/Algebra/Order/Compact.lean Modified Mathlib/Topology/Algebra/Order/Field.lean Modified Mathlib/Topology/Algebra/UniformGroup.lean Modified Mathlib/Topology/Algebra/WithZeroTopology.lean Modified Mathlib/Topology/Bases.lean Modified Mathlib/Topology/CompactOpen.lean Modified Mathlib/Topology/Connected/PathConnected.lean Modified Mathlib/Topology/Constructions.lean Modified Mathlib/Topology/ContinuousFunction/Compact.lean Modified Mathlib/Topology/ContinuousOn.lean Modified Mathlib/Topology/DenseEmbedding.lean Modified Mathlib/Topology/FiberBundle/Basic.lean Modified Mathlib/Topology/FiberBundle/Constructions.lean Modified Mathlib/Topology/FiberBundle/Trivialization.lean Modified Mathlib/Topology/Filter.lean Modified Mathlib/Topology/Homotopy/Basic.lean Modified Mathlib/Topology/Instances/ENNReal.lean Modified Mathlib/Topology/Instances/EReal.lean Modified Mathlib/Topology/Instances/Rat.lean Modified Mathlib/Topology/List.lean Modified Mathlib/Topology/LocalAtTarget.lean Modified Mathlib/Topology/LocallyFinite.lean Modified Mathlib/Topology/MetricSpace/GromovHausdorff.lean Modified Mathlib/Topology/MetricSpace/Polish.lean Modified Mathlib/Topology/MetricSpace/Pseudo/Defs.lean Modified Mathlib/Topology/Metrizable/Uniformity.lean Modified Mathlib/Topology/OmegaCompletePartialOrder.lean Modified Mathlib/Topology/PartialHomeomorph.lean Modified Mathlib/Topology/Separation.lean +/- theorem IsClosed.HasSeparatingCover Modified Mathlib/Topology/Sequences.lean Modified Mathlib/Topology/Sheaves/Operations.lean Modified Mathlib/Topology/UniformSpace/AbstractCompletion.lean Modified Mathlib/Topology/UniformSpace/Ascoli.lean Modified Mathlib/Topology/UniformSpace/Basic.lean Modified Mathlib/Topology/UniformSpace/Cauchy.lean Modified Mathlib/Topology/UniformSpace/Compact.lean Modified Mathlib/Topology/UniformSpace/CompactConvergence.lean Modified Mathlib/Topology/UniformSpace/Completion.lean Modified Mathlib/Topology/UniformSpace/Pi.lean Modified Mathlib/Topology/UniformSpace/Separation.lean Modified Mathlib/Topology/UniformSpace/UniformEmbedding.lean Modified Mathlib/Util/AssertExistsExt.lean Modified Mathlib/Util/CompileInductive.lean Modified Mathlib/Util/Delaborators.lean Modified Mathlib/Util/Export.lean Modified Mathlib/Util/LongNames.lean Modified Mathlib/Util/MemoFix.lean Modified Mathlib/Util/Notation3.lean Modified Mathlib/Util/Superscript.lean Deleted Mathlib/Util/Time.lean - def timeCmdElab Modified Shake/Main.lean +/- def Edits +/- def calcNeeds +/- def getExplanations Modified lake-manifest.json Modified lakefile.lean Modified lean-toolchain Modified test/AssertExists.lean Modified test/Bound/bound.lean Modified test/TermBeta.lean Modified test/delabLinearIndependent.lean Modified test/fun_prop_dev.lean +/- theorem Lin_const Modified test/interactiveUnfold.lean Modified test/propose.lean Modified test/set_like.lean Modified test/toAdditive.lean 2024-09-03 02:31:30 c55f481 feat: maintainer merge `generic` posts `maintainer merge` (#16416) Right now, `maintainer merge`ing a PR that does not have a unique `t-label` posts in `maintainer merge: generic`. This PR changes the topic to `maintainer merge`. Suggested by Yaël. ESTIMATED CHANGES Modified scripts/get_tlabel.sh 2024-09-03 01:40:13 5b1766b feat(Data/List/Forall2): Add lemmas about List.map and SublistForall₂ (#15884) Add lemmas about the interaction of List.map with SublistForall₂, analogous to `forall₂_map_left_iff` and `forall₂_map_right_iff`. ESTIMATED CHANGES Modified Mathlib/Data/List/Forall2.lean + theorem List.sublistForall₂_map_left_iff + theorem List.sublistForall₂_map_right_iff 2024-09-02 23:30:59 4bb220d chore: deprecate `Init.Data.Nat.Lemmas` (#16096) ESTIMATED CHANGES Modified Archive/Arithcc.lean Modified Mathlib/Algebra/Order/Floor.lean Modified Mathlib/Algebra/Order/Ring/Nat.lean Modified Mathlib/Data/Fintype/Basic.lean Modified Mathlib/Data/Nat/Defs.lean + def Nat.twoStepInduction Modified Mathlib/Data/Nat/Dist.lean Modified Mathlib/Data/Nat/Fib/Basic.lean Modified Mathlib/Data/Nat/GCD/Basic.lean Modified Mathlib/Data/Nat/Log.lean Modified Mathlib/Init/Data/Nat/Lemmas.lean - theorem Nat.eq_zero_of_mul_eq_zero - def Nat.twoStepInduction Modified Mathlib/Order/Defs.lean Modified Mathlib/Order/Fin/Basic.lean Modified test/ExtractGoal.lean Modified test/MoveAdd.lean Modified test/byContra.lean Modified test/notation3.lean 2024-09-02 19:45:56 ab33bb5 feat: add Complex.isIntegral_{int,rat}_I (#16259) Eventually to be used to show that π is transcendental. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/Complex/IsIntegral.lean + theorem Complex.isIntegral_int_I + theorem Complex.isIntegral_rat_I 2024-09-02 19:04:13 714a7d2 feat(Algebra/Module/Submodule/Map): `map_toAddSubgroup` (#16169) Add the lemma ```lean lemma map_toAddSubgroup (f : M →ₗ[R] M₂) (p : Submodule R M) : (p.map f).toAddSubgroup = p.toAddSubgroup.map (f : M →+ M₂) := ``` analogous to the existing `map_toAddSubmonoid`. From AperiodicMonotilesLean. ESTIMATED CHANGES Modified Mathlib/Algebra/Module/Submodule/Map.lean + theorem Submodule.map_toAddSubgroup 2024-09-02 18:48:54 fad5680 feature(Analysis/Normed/Module/Dual): Polar of the open ball (#16070) The polar of an open ball at the origin is also the closed dual ball at the origin. I think one would normally use the bipolar theorem to prove this, which I don't think we have yet. ESTIMATED CHANGES Modified Mathlib/Analysis/Normed/Module/Dual.lean + theorem NormedSpace.polar_ball 2024-09-02 17:50:52 404524a chore: move `Init.Data.Quot` to `Logic.Relation` (#16378) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/RingQuot.lean +/- theorem RingQuot.eqvGen_rel_eq Modified Mathlib/CategoryTheory/Groupoid/FreeGroupoid.lean Modified Mathlib/CategoryTheory/Limits/Final.lean Modified Mathlib/CategoryTheory/Limits/IsConnected.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Types.lean Modified Mathlib/CategoryTheory/Limits/Types.lean Modified Mathlib/CategoryTheory/Limits/TypesFiltered.lean Modified Mathlib/Data/PFunctor/Multivariate/M.lean Modified Mathlib/Data/Quot.lean Modified Mathlib/Data/Setoid/Basic.lean +/- theorem Quot.subsingleton_iff +/- theorem Setoid.eqvGen_idem +/- theorem Setoid.eqvGen_of_setoid +/- def Setoid.gi +/- theorem Setoid.sSup_def +/- theorem Setoid.sup_def Modified Mathlib/FieldTheory/PerfectClosure.lean Modified Mathlib/GroupTheory/FreeGroup/Basic.lean Deleted Mathlib/Init/Data/Quot.lean - def EqvGen.Setoid - theorem EqvGen.is_equivalence - inductive EqvGen - theorem Quot.eqvGen_exact - theorem Quot.eqvGen_sound Modified Mathlib/Logic/Relation.lean - theorem EqvGen.mono + theorem Quot.eqvGen_exact + theorem Quot.eqvGen_sound + theorem Relation.EqvGen.is_equivalence + theorem Relation.EqvGen.mono + def Relation.EqvGen.setoid + inductive Relation.EqvGen Modified Mathlib/Topology/Gluing.lean 2024-09-02 17:50:51 fcc5e1e feat(lint-style): rewrite focusing dot check in Lean (#15017) as a syntax linter, extending `adomani`'s `cdot` syntax linter. ESTIMATED CHANGES Modified Mathlib/Tactic/Linter/Lint.lean Modified scripts/lint-style.py Modified scripts/nolints-style.txt Modified test/Lint.lean 2024-09-02 17:15:07 02af595 feat: Intrinsic interior of a spanning set (#16090) From LeanCamCombi ESTIMATED CHANGES Modified Mathlib/Analysis/Convex/Intrinsic.lean + theorem intrinsicClosure_eq_closure_of_span + theorem intrinsicClosure_univ + theorem intrinsicFrontier_eq_frontier_of_span + theorem intrinsicFrontier_univ + theorem intrinsicInterior_eq_interior_of_span + theorem intrinsicInterior_univ 2024-09-02 17:15:06 f215b3b feat(ContinuousFunctionalCalculus): add lemmas for automation and simp/aesop tags (#16050) This PR adds various aesop tags related to the continuous functional calculus. It also introduces the specialized aesop ruleset `CFC` for lemmas that would be unsuitable for the default ruleset. It also adds a proof that the exponential of a self-adjoint operator is positive. ESTIMATED CHANGES Modified Mathlib/Algebra/Star/Order.lean + theorem conjugate_le_conjugate_of_nonneg + theorem conjugate_nonneg_of_nonneg Modified Mathlib/Algebra/Star/SelfAdjoint.lean + theorem IsSelfAdjoint.conjugate_self Modified Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/NonUnital.lean + theorem cfcₙ_nonneg_of_predicate Modified Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Unital.lean + theorem cfc_nonneg_of_predicate Modified Mathlib/Analysis/Normed/Algebra/Exponential.lean Modified Mathlib/Analysis/SpecialFunctions/ContinuousFunctionalCalculus/ExpLog.lean +/- theorem CFC.real_exp_eq_normedSpace_exp + theorem IsSelfAdjoint.exp_nonneg Modified Mathlib/Tactic/ContinuousFunctionalCalculus.lean 2024-09-02 17:15:05 d28df11 feat(SetTheory/Ordinal/Arithmetic): `a * b / (a * c) = b / c` and `(x * y) % (x * z) = x * (y % z)` (#15927) Equalities like these prop up in the lemmas about the Cantor normal form. ESTIMATED CHANGES Modified Mathlib/SetTheory/Ordinal/Arithmetic.lean + theorem Ordinal.mul_add_div_mul + theorem Ordinal.mul_add_mod_mul + theorem Ordinal.mul_div_mul_cancel + theorem Ordinal.mul_mod_mul 2024-09-02 16:21:28 3631f17 feat(SetTheory/Cardinal/Continuum): `x ^ ℵ₀ = 𝔠` for `2 ≤ x ≤ 𝔠` (#16342) We also make sure `ℵ₀` and `𝔠` notation is used throughout the file. ESTIMATED CHANGES Modified Mathlib/SetTheory/Cardinal/Continuum.lean +/- theorem Cardinal.aleph0_power_aleph0 +/- theorem Cardinal.continuum_power_aleph0 +/- theorem Cardinal.nat_power_aleph0 + theorem Cardinal.power_aleph0_of_le_continuum 2024-09-02 16:21:26 9a12ff4 feat: `⨅ i, s i < ⊤ ↔ ∃ i, s i < ⊤` (#16320) From LeanAPAP ESTIMATED CHANGES Modified Mathlib/Order/CompleteLattice.lean + theorem bot_lt_iSup + theorem iInf_lt_top 2024-09-02 16:21:25 5419cda feat: add expMonoidHom_apply simp lemmas (#16262) ESTIMATED CHANGES Modified Mathlib/Data/Complex/Exponential.lean 2024-09-02 16:21:24 eeb6a33 chore: split FieldTheory/Tower (#15689) The results in this file were unrelated (and had disjoint import requirements!) so I've separated them. The doc-string was badly out of date before I came along, so I've replaced it. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Algebra/Subalgebra/IsSimpleOrder.lean + theorem Subalgebra.isSimpleOrder_of_finrank_prime Modified Mathlib/Algebra/CharP/IntermediateField.lean Modified Mathlib/FieldTheory/Adjoin.lean Modified Mathlib/FieldTheory/Fixed.lean Modified Mathlib/FieldTheory/IntermediateField/Algebraic.lean Modified Mathlib/FieldTheory/NormalClosure.lean Modified Mathlib/FieldTheory/Tower.lean - theorem FiniteDimensional.Subalgebra.isSimpleOrder_of_finrank_prime - theorem FiniteDimensional.left - theorem FiniteDimensional.right + theorem Module.Finite.left + theorem Module.Finite.right Modified Mathlib/LinearAlgebra/Eigenspace/Triangularizable.lean Modified Mathlib/LinearAlgebra/FreeModule/Finite/Matrix.lean 2024-09-02 15:27:55 f8afc33 chore(VectorBundle/Hom): drop an unneeded instance (#16380) ESTIMATED CHANGES Modified Mathlib/Topology/VectorBundle/Hom.lean 2024-09-02 15:27:53 08825db feat: add `OuterMeasure.ofFunction_eq_iInf_mem` (#15296) ESTIMATED CHANGES Modified Mathlib/MeasureTheory/OuterMeasure/OfFunction.lean + theorem MeasureTheory.OuterMeasure.ofFunction_eq_iInf_mem 2024-09-02 15:27:52 67ce578 feat(ConditionallyCompleteLattice/Finset): ciSup_mem on list/multiset/finset (#15284) As well as toDual_csSup And simpler lemmas when on ConditionallyCompleteLinearOrderBot ESTIMATED CHANGES Modified Mathlib/Order/CompleteLattice.lean +/- theorem ofDual_iInf +/- theorem ofDual_iSup +/- theorem ofDual_sInf +/- theorem ofDual_sSup +/- theorem toDual_iInf +/- theorem toDual_iSup +/- theorem toDual_sInf +/- theorem toDual_sSup Modified Mathlib/Order/ConditionallyCompleteLattice/Finset.lean + theorem Finset.Nonempty.ciSup_eq_max'_image + theorem Finset.Nonempty.ciSup_mem_image + theorem Finset.ciInf_eq_min'_image + theorem Finset.ciInf_mem_image + theorem Finset.ciSup_eq_max'_image + theorem Finset.ciSup_mem_image + theorem List.iInf_mem_map_of_exists_le_sInf_empty + theorem List.iSup_mem_map_of_exists_sSup_empty_le + theorem List.iSup_mem_map_of_ne_nil + theorem Multiset.iInf_mem_map_of_exists_le_sInf_empty + theorem Multiset.iSup_mem_map_of_exists_sSup_empty_le + theorem Multiset.iSup_mem_map_of_ne_zero + theorem Set.Finite.ciInf_mem_image + theorem Set.Finite.ciSup_lt_iff + theorem Set.Finite.ciSup_mem_image + theorem Set.Finite.lt_ciInf_iff + theorem Set.Nonempty.ciSup_lt_iff + theorem Set.Nonempty.ciSup_mem_image 2024-09-02 14:29:00 1672b1b feat: Binary version of `iSup_eq_top` (#16322) ESTIMATED CHANGES Modified Mathlib/Data/Sigma/Basic.lean - theorem PSigma.exists' + theorem PSigma.«exists» Modified Mathlib/Order/CompleteLattice.lean + theorem iInf_psigma' + theorem iInf_psigma + theorem iInf₂_eq_bot + theorem iSup_psigma' + theorem iSup_psigma + theorem iSup₂_eq_top 2024-09-02 14:12:06 28101aa fix: double braces in maintainer merge (#16415) ESTIMATED CHANGES Modified .github/workflows/maintainer_merge_comment.yml Modified .github/workflows/maintainer_merge_review.yml Modified .github/workflows/maintainer_merge_review_comment.yml 2024-09-02 14:12:02 24d82a0 chore: update GrantBirki/comment action (#16413) I saw some deprecation warnings and thought to update this action. ESTIMATED CHANGES Modified .github/workflows/bors.yml Modified .github/workflows/build.yml Modified .github/workflows/build.yml.in Modified .github/workflows/build_fork.yml Modified .github/workflows/maintainer_merge_comment.yml Modified .github/workflows/maintainer_merge_review.yml Modified .github/workflows/maintainer_merge_review_comment.yml 2024-09-02 14:00:37 171d7e0 feat: `‖I‖₊ = 1` (#16407) From LeanAPAP ESTIMATED CHANGES Modified Mathlib/Analysis/Complex/Basic.lean + theorem Complex.nnnorm_I 2024-09-02 13:40:16 bd5475a feat: parser for Stacks Project Tags (#16230) Introduce a parser for Stacks Projects Tags: it accepts 4-character sequences of digits and uppercase letter, giving meaningful errors for shorter/empty sequences. See [this Zulip thread](https://leanprover.zulipchat.com/#narrow/stream/113488-general/topic/stacks.20tags/near/465662710) for the issues with the previous implementation of the attribute and, in particular, parsing `0BR2` as a tag. ESTIMATED CHANGES Modified Mathlib/Tactic/StacksAttribute.lean - def Lean.Environment.getSortedStackProjectDeclNames - def Lean.Environment.getSortedStackProjectTags + def Lean.PrettyPrinter.Formatter.stacksTagNoAntiquot.formatter + def Lean.PrettyPrinter.Parenthesizer.Lean.Environment.getSortedStackProjectDeclNames + def Lean.PrettyPrinter.Parenthesizer.Lean.Environment.getSortedStackProjectTags + def Lean.PrettyPrinter.Parenthesizer.stacksTagAntiquot.parenthesizer + def Lean.TSyntax.getStacksTag + def Mathlib.Stacks.stacksTag + def Mathlib.Stacks.stacksTagFn + def Mathlib.Stacks.stacksTagNoAntiquot Modified test/StacksAttribute.lean + def captureException 2024-09-02 13:31:33 2075c8d fix: use GH_TOKEN in maintainer merge (#16412) This should really be the last fix! :smile: ESTIMATED CHANGES Modified .github/workflows/maintainer_merge_comment.yml Modified .github/workflows/maintainer_merge_review.yml Modified .github/workflows/maintainer_merge_review_comment.yml 2024-09-02 12:41:39 0194b29 fix: add secret to maintainer merge (#16404) Hopefully, this is the last fix to the `maintainer merge` update: it adds a secret to the action, so that `gh` can retrieve the PR labels. ESTIMATED CHANGES Modified .github/workflows/maintainer_merge_comment.yml Modified .github/workflows/maintainer_merge_review.yml Modified .github/workflows/maintainer_merge_review_comment.yml 2024-09-02 12:32:41 468314b fix({bot_fix_style*,lint_and_suggest}.yml): don't use continue-on-error (#16330) These workflows had linting steps which were expected to fail with nonzero exit codes and then have those failures ignored by the (step-level) [`continue-on-error` setting](https://docs.github.com/en/actions/writing-workflows/workflow-syntax-for-github-actions#jobsjob_idstepscontinue-on-error). This setting only allows the workflow to continue executing; the error still shows up as a red x in the step, and also causes the entire job to fail, unless [`continue-on-error` is set at the job level](https://docs.github.com/en/actions/writing-workflows/workflow-syntax-for-github-actions#jobsjob_idcontinue-on-error), which we ended up doing for the "bot fix style" workflows. With this setting active, the job will succeed regardless of any errors that occur, which has the downside that errors in other steps might not get noticed. In #16301 the exit code was changed for `lint-style --fix` making the step-level `continue-on-error` setting unnecessary for those linting steps. In this PR I: - add `|| true` to the end of other such linting steps so that their exit codes are also ignored, which let me - remove all step-level `continue-on-error` settings, which let me - remove all job-level `continue-on-error` settings In summary, error reporting for these workflows will now be much more informative. ESTIMATED CHANGES Modified .github/workflows/bot_fix_style_comment.yaml Modified .github/workflows/bot_fix_style_review.yaml Modified .github/workflows/bot_fix_style_review_comment.yaml Modified .github/workflows/lint_and_suggest_pr.yml 2024-09-02 10:52:19 c04874b feat(AlgebraicGeometry): morphisms locally of finite presentation (#14053) Define morphisms locally of finite presentation. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/AlgebraicGeometry/Morphisms/FinitePresentation.lean + theorem AlgebraicGeometry.locallyOfFinitePresentation_stableUnderBaseChange 2024-09-02 07:30:49 00df099 feat: `‖c - a * b‖ ≤ ‖c - a‖ + ‖1 - b‖` when `‖a‖ ≤ 1` (#16318) This inequality is particularly useful when `c = 1` and `‖a‖ = ‖b‖ = 1` as it then shows that chord length is a metric on the unit circle. From LeanAPAP ESTIMATED CHANGES Modified Mathlib/Analysis/Normed/Field/Basic.lean + theorem nnnorm_sub_mul_le' + theorem nnnorm_sub_mul_le + theorem norm_sub_mul_le' + theorem norm_sub_mul_le 2024-09-02 07:21:36 e244abe fix: maintainer merge checkout master (#16400) Besides checking out master, this PR also moves a `$` to its correct place! ESTIMATED CHANGES Modified .github/workflows/maintainer_merge_comment.yml Modified .github/workflows/maintainer_merge_review.yml Modified .github/workflows/maintainer_merge_review_comment.yml Modified scripts/get_tlabel.sh 2024-09-02 07:21:35 197868c feat: remove completeness assumption in the formula for `∑ n, n * r ^ n` (#15270) Currently, the formula `∑ n, n * r ^ n = r / (1 - r) ^ 2` in a field assumes that the field is complete to get summability of the series from the summability of the norms. However, as `∑ r ^ n` is converging (to `1 / (1 - r)`), the summability of the Cauchy product is automatic thanks to a variation around results we already have, so completeness can be removed. In the same way, `∑ n ^ k * r ^ n` is summable without completeness assumptions. The proof is a little bit indirect (first get summability of `∑ n, (n + k).choose k * r ^ n` for each `k`, as this is `(∑ r ^ n) ^ k`, and then deduce the other one), but it gives the nice formula `∑ n, (n + k).choose k * r ^ n = 1 / (1 - r) ^ k` along the way, which is nice to have. This is a preliminary PR before unifying several results between `[NormedRing R] [CompleteSpace R]` and `[NontriviallyNormedField R]`, which are proved twice with very similar arguments at several places in mathlib. ESTIMATED CHANGES Modified Mathlib/Algebra/BigOperators/Fin.lean + theorem Fin.prod_snoc Modified Mathlib/Algebra/Polynomial/Degree/Lemmas.lean + theorem Polynomial.natDegree_comp_eq_of_mul_ne_zero Modified Mathlib/Algebra/Polynomial/RingDivision.lean +/- theorem Polynomial.Monic.comp_X_sub_C Modified Mathlib/Analysis/Normed/Field/InfiniteSum.lean + theorem hasSum_sum_range_mul_of_summable_norm' + theorem hasSum_sum_range_mul_of_summable_norm + theorem summable_mul_of_summable_norm' + theorem summable_sum_mul_antidiagonal_of_summable_norm' + theorem summable_sum_mul_range_of_summable_norm' + theorem tsum_mul_tsum_eq_tsum_sum_antidiagonal_of_summable_norm' + theorem tsum_mul_tsum_eq_tsum_sum_range_of_summable_norm' + theorem tsum_mul_tsum_of_summable_norm' Modified Mathlib/Analysis/SpecificLimits/Normed.lean + theorem hasSum_choose_mul_geometric_of_norm_lt_one +/- theorem hasSum_coe_mul_geometric_of_norm_lt_one + theorem summable_choose_mul_geometric_of_norm_lt_one + theorem summable_descFactorial_mul_geometric_of_norm_lt_one + theorem summable_norm_geometric_of_norm_lt_one + theorem summable_norm_mul_geometric_of_norm_lt_one +/- theorem summable_pow_mul_geometric_of_norm_lt_one + theorem tsum_choose_mul_geometric_of_norm_lt_one +/- theorem tsum_coe_mul_geometric_of_norm_lt_one Modified Mathlib/Data/Nat/Choose/Bounds.lean + theorem Nat.choose_le_descFactorial +/- theorem Nat.choose_le_pow + theorem Nat.choose_le_pow_div Modified Mathlib/Data/Nat/Choose/Sum.lean + theorem Nat.sum_range_add_choose Modified Mathlib/Order/Filter/AtTopBot.lean + theorem Filter.tendsto_finset_prod_atTop 2024-09-02 05:41:16 f43d692 ci: determine Zulip maintainer merge topic from PR labels (#16296) ESTIMATED CHANGES Modified .github/workflows/maintainer_merge_comment.yml Modified .github/workflows/maintainer_merge_review.yml Modified .github/workflows/maintainer_merge_review_comment.yml Added scripts/get_tlabel.sh 2024-09-02 03:25:06 8edf04f chore: update Mathlib dependencies 2024-09-02 (#16395) This PR updates the Mathlib dependencies. ESTIMATED CHANGES 2024-09-02 03:07:16 20c7314 chore: bump toolchain to v4.11.0 (#16396) ESTIMATED CHANGES Modified .github/workflows/lean4checker.yml Modified lake-manifest.json Modified lean-toolchain 2024-09-02 00:34:55 2e00350 chore(scripts/mk_all): split a long line (#16393) ESTIMATED CHANGES Modified scripts/mk_all.lean 2024-09-02 00:34:54 003d3b4 feat(Data/List/Change): add forwards induction for List.Chain and List.Chain' (#16346) Moves: - List.Chain.induction -> List.Chain.backwards_induction - List.Chain.induction_head -> List.Chain.backwards_induction_head ESTIMATED CHANGES Modified Mathlib/CategoryTheory/ConnectedComponents.lean Modified Mathlib/Data/List/Chain.lean + theorem List.Chain'.chain + theorem List.Chain'.induction + theorem List.Chain'.iterate_eq_of_apply_eq + theorem List.Chain.backwards_induction + theorem List.Chain.backwards_induction_head - theorem List.Chain.induction_head 2024-09-01 23:38:26 1810857 fix(Linter/Textbased): account for different path separators in path comparison (#16329) The previous code considered two exceptions different if they used different path separators (such as when running on Windows, with the exceptions file being created on a Linux system). Compare the set of path components instead: this is agnostic to the path separator used. The mk_all script had a similar issue (see #13845, making the sorting of files platform-independent, in the face of different path separators which sort differently): its solution (sorting module names instead) would also work here, but is less pretty, as it the conversion to module names is in the IO monad. Comparing path components works just fine in our context. ESTIMATED CHANGES Modified Mathlib/Tactic/Linter/TextBased.lean 2024-09-01 23:38:25 3bea0ec chore: remove the text-based long file linter (#16299) It is superseded by the longFile syntax linter now. ESTIMATED CHANGES Modified Mathlib/Tactic/Linter/TextBased.lean +/- def Mathlib.Linter.TextBased.StyleError.errorMessage - def Mathlib.Linter.TextBased.allLinters +/- def Mathlib.Linter.TextBased.lintFile Modified scripts/lint-style.py Modified scripts/technical-debt-metrics.sh 2024-09-01 23:19:59 780bdc8 chore(dependent-issues.yml): bump to final unreleased version of action (#16370) The dependent-issues workflow uses up a bunch of our Github API quota since it tries to check the status of *every single open PR* and [thus frequently fails](https://github.com/leanprover-community/mathlib4/actions/workflows/dependent-issues.yml). It turns out the [`z0al/dependent-issues`](https://github.com/z0al/dependent-issues) action that it depends on has been archived, however the maintainer was kind enough to merge [a PR](https://github.com/z0al/dependent-issues/pull/546) which makes the action only check PRs with the "blocked-by-other-PR" label, which significantly reduces the API usage. In this PR, I replace the `v1` tag (which was pointing to [an older version of the action](https://github.com/z0al/dependent-issues/releases/tag/v1.5.2)) with the ref of [the final commit](https://github.com/z0al/dependent-issues/commit/75d554cd9494b6e1766bc9d08a81c26444ad5c5a) to the dependent-issues action repo. (I checked the forks of the action and it didn't seem that any of them had taken up the mantle of successor.) I've checked the diff of the abovementioned fix to the dependent-issues action and tested this lightly in my fork of mathlib4 and the code does do what it says on the tin. ESTIMATED CHANGES Modified .github/workflows/dependent-issues.yml 2024-09-01 19:41:47 bceec04 feat(Order/SuccPred/Basic): relax typeclass assumptions on `IsWellOrder.toIsPredArchimedean` (#16377) Make `IsWellOrder.toIsPredArchimedean` and `IsWellOrder.toIsSuccArchimedean` work with non-linear orders. ESTIMATED CHANGES Modified Mathlib/Order/SuccPred/Basic.lean 2024-09-01 19:41:45 8668457 feat(Order/Hom/Lattice): add `Subtype.val` as lattice homs (#16270) ESTIMATED CHANGES Modified Mathlib/Order/Hom/Lattice.lean + def BoundedLatticeHom.subtypeVal + theorem BoundedLatticeHom.subtypeVal_apply + theorem BoundedLatticeHom.subtypeVal_coe + def InfHom.subtypeVal + theorem InfHom.subtypeVal_apply + theorem InfHom.subtypeVal_coe + def InfTopHom.subtypeVal + theorem InfTopHom.subtypeVal_apply + theorem InfTopHom.subtypeVal_coe + def LatticeHom.subtypeVal + theorem LatticeHom.subtypeVal_apply + theorem LatticeHom.subtypeVal_coe + def SupBotHom.subtypeVal + theorem SupBotHom.subtypeVal_apply + theorem SupBotHom.subtypeVal_coe + def SupHom.subtypeVal + theorem SupHom.subtypeVal_apply + theorem SupHom.subtypeVal_coe 2024-09-01 19:15:07 5c196c6 chore(Algebra/Order/Monoid/Submonoid): Don't import `GroupWithZero` (#16381) Move `Submonoid.pos` to a new file `Algebra.Order.GroupWithZero.Submonoid`. Credit Chris for https://github.com/leanprover-community/mathlib3/pull/8466 ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Order/GroupWithZero/Submonoid.lean + theorem Submonoid.mem_pos + def Submonoid.pos Modified Mathlib/Algebra/Order/Monoid/Submonoid.lean - theorem Submonoid.mem_pos - def Submonoid.pos Modified Mathlib/Algebra/Ring/Subring/Units.lean 2024-09-01 13:44:00 06d443e feat(NumberTheory/LSeries): analytic continuation of Dirichlet L-series (#13997) We prove analytic continuation of the L-function of any periodic function on the naturals, including Dirichlet characters. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Analysis/SumOverResidueClass.lean + theorem Nat.sumByResidueClasses Modified Mathlib/Data/ZMod/Basic.lean + def Nat.residueClassesEquiv Modified Mathlib/NumberTheory/EulerProduct/DirichletLSeries.lean Modified Mathlib/NumberTheory/LSeries/Basic.lean + theorem LSeries.term_of_ne_zero' Added Mathlib/NumberTheory/LSeries/DirichletContinuation.lean + theorem DirichletCharacter.LFunction_eq_LSeries + theorem DirichletCharacter.LFunction_modOne_eq + theorem DirichletCharacter.differentiableAt_LFunction + theorem DirichletCharacter.differentiable_LFunction Modified Mathlib/NumberTheory/LSeries/HurwitzZeta.lean Modified Mathlib/NumberTheory/LSeries/HurwitzZetaEven.lean Modified Mathlib/NumberTheory/LSeries/HurwitzZetaOdd.lean Added Mathlib/NumberTheory/LSeries/ZMod.lean + theorem ZMod.LFunction_dft + theorem ZMod.LFunction_eq_LSeries + theorem ZMod.LFunction_modOne_eq + theorem ZMod.LFunction_one_sub + theorem ZMod.LFunction_residue_one + theorem ZMod.LFunction_stdAddChar_eq_expZeta + theorem ZMod.LSeriesSummable_of_one_lt_re + theorem ZMod.differentiableAt_LFunction + theorem ZMod.differentiable_LFunction_of_sum_zero Modified scripts/style-exceptions.txt 2024-09-01 12:42:18 624b492 feat: subset lemmas for `Finset` intervals (#16300) `Finset` version for `Ici_subset_Ici`, `Ioi_subset_Ioi`, `Iic_subset_Iic` and `Iio_subset_Iio`. ESTIMATED CHANGES Modified Mathlib/Analysis/InnerProductSpace/GramSchmidtOrtho.lean Modified Mathlib/Order/Interval/Finset/Basic.lean + theorem Finset.Ici_subset_Ici + theorem Finset.Iic_subset_Iic + theorem Finset.Iio_subset_Iio + theorem Finset.Ioi_subset_Ioi 2024-09-01 12:32:33 fc86070 chore(Measure): add `gcongr` lemmas (#16379) ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Constructions/Prod/Basic.lean + theorem MeasureTheory.Measure.fst_mono + theorem MeasureTheory.Measure.snd_mono Modified Mathlib/MeasureTheory/Measure/Restrict.lean + theorem MeasureTheory.Measure.restrict_mono_measure + theorem MeasureTheory.Measure.restrict_mono_set Modified Mathlib/Probability/Kernel/Disintegration/CondCDF.lean +/- theorem MeasureTheory.Measure.IicSnd_le_fst 2024-09-01 12:18:10 28e7b45 chore(Probability/Kernel): golf `measurable_compProdFun` (#16302) `measurable_compProdFun` is a statement about s-finite kernels, and used an auxiliary lemma `measurable_compProdFun_of_finite` for finite kernels. However, due to changes elsewhere, the proof of `measurable_compProdFun_of_finite` now works for s-finite kernels directly. `measurable_compProdFun_of_finite` is renamed to `measurable_compProdFun` and the old `measurable_compProdFun` is removed. This PR also contains a few cosmetic changes in the lemmas about `compProdFun` (fix a few linebreaks from mathport, replace `=>` by `↦`, etc.) ESTIMATED CHANGES Modified Mathlib/Probability/Kernel/Composition.lean - theorem ProbabilityTheory.Kernel.measurable_compProdFun_of_finite 2024-09-01 01:42:29 63cced2 chore(Analysis/SpecialFunctions): deduplicate and golf trig bounds (#16275) Remove the duplication of trig lemmas, introduced in a previous PR. Golf existing trig bounds. Add further bounds. Make the names more consistent throughout. ESTIMATED CHANGES Modified Mathlib/Analysis/Complex/Angle.lean Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Bounds.lean + theorem Real.abs_sin_le_abs + theorem Real.abs_sin_lt_abs + theorem Real.cos_le_one_sub_mul_cos_sq - theorem Real.cos_quadratic_upper_bound + theorem Real.le_sin_mul + theorem Real.lt_sin_mul + theorem Real.mul_abs_le_abs_sin + theorem Real.mul_le_sin + theorem Real.mul_lt_sin + theorem Real.one_add_mul_le_cos + theorem Real.one_sub_mul_le_cos + theorem Real.one_sub_sq_div_two_lt_cos - theorem Real.one_sub_two_div_pi_mul_le_cos + theorem Real.sin_le_mul - theorem Real.sin_le_two_div_pi_mul + theorem Real.sin_sq_le_sq + theorem Real.sin_sq_lt_sq - theorem Real.two_div_pi_mul_le_sin Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Complex.lean - theorem Real.le_sin_mul - theorem Real.lt_sin_mul - theorem Real.mul_le_sin - theorem Real.mul_lt_sin Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/ComplexDeriv.lean Modified Mathlib/NumberTheory/Harmonic/GammaDeriv.lean 2024-09-01 00:15:59 1cc0616 chore(scripts): update nolints.json and style-exceptions.txt (#16376) I am happy to remove some nolints for you! ESTIMATED CHANGES Modified scripts/nolints.json Modified scripts/style-exceptions.txt 2024-08-31 23:13:01 116cb4e fix(lint-style.py): recognise all kinds of style exceptions (#16297) Currently, some style exceptions emitted by the `lint-style.py` script are not recognised by that same script. This can lead to confusing behaviour. That said, all current exceptions should rather be fixed than excepted - so this is unlikely to be an issue in practice. ESTIMATED CHANGES Modified scripts/lint-style.py 2024-08-31 22:06:49 d7b8b43 feat: add ofNNReal_toNNReal (#16357) ESTIMATED CHANGES Modified Mathlib/Data/ENNReal/Basic.lean + theorem ENNReal.ofNNReal_toNNReal Modified Mathlib/Probability/Kernel/RadonNikodym.lean 2024-08-31 21:14:53 8f50110 feat: relate `∀ x ∈ spectrum ℝ≥0 a, x ≤ r` to the `ℝ`-spectrum (#16340) ESTIMATED CHANGES Modified Mathlib/Analysis/Normed/Algebra/Spectrum.lean + theorem QuasispectrumRestricts.le_nnreal_iff + theorem QuasispectrumRestricts.lt_nnreal_iff + theorem SpectrumRestricts.le_nnreal_iff + theorem SpectrumRestricts.lt_nnreal_iff + theorem SpectrumRestricts.nnreal_le_iff + theorem SpectrumRestricts.nnreal_lt_iff 2024-08-31 21:14:52 2597629 fix: don't resynthesize type class arguments in `fun_prop` (#15842) `fun_prop` was resynthesizing type class arguments the same way as `simp` used to do. It seems to cause just troubles and seemingly no benefit so let's remove it from `fun_prop` too. ESTIMATED CHANGES Modified Mathlib/Tactic/FunProp/Core.lean +/- def Mathlib.Meta.FunProp.synthesizeArgs +/- def Mathlib.Meta.FunProp.tryTheoremCore Modified test/fun_prop_dev.lean + theorem Dif_Con + theorem Dif_apply + theorem Dif_applyDep + theorem Dif_comp + theorem Dif_const + theorem Dif_id + theorem Dif_pi + def f4 + theorem f4_dif 2024-08-31 20:17:19 dae5d2d feat: add a `simp` lemma: `Units.zero_not_mem_spectrum` (#16339) ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/Spectrum.lean + theorem Units.zero_not_mem_spectrum 2024-08-31 20:17:18 e60050d feat: add `bot_not_mem_iff` for `OrderBot` (#16336) ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Monoid/Canonical/Defs.lean + theorem one_not_mem_iff Modified Mathlib/Order/BoundedOrder.lean + theorem bot_not_mem_iff + theorem top_not_mem_iff 2024-08-31 20:08:11 a07b93e feat(Topology/Profinite): extending cones in `Profinite` and `LightProfinite` (#14382) Let `(Sᵢ)_{i : I}` be a family of finite sets indexed by a cofiltered category `I` and let `S` be its limit in `Profinite`. Let `G` be a functor from `Profinite` to a category `C` and suppose that `G` preserves the limit described above. Suppose further that the projection maps `S ⟶ Sᵢ` are epimorphic for all `i`. Then `G.obj S` is isomorphic to a limit indexed by `StructuredArrow S toProfinite` (see `Profinite.Extend.isLimitCone`). We also provide the dual result for a functor of the form `G : Profiniteᵒᵖ ⥤ C`. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Topology/Category/LightProfinite/Basic.lean Added Mathlib/Topology/Category/LightProfinite/Extend.lean + def LightProfinite.Extend.cocone + def LightProfinite.Extend.cone + def LightProfinite.Extend.functor + def LightProfinite.Extend.functorOp + theorem LightProfinite.Extend.functorOp_final + theorem LightProfinite.Extend.functor_initial + def LightProfinite.Extend.isColimitCocone + def LightProfinite.Extend.isLimitCone + def LightProfinite.asLimitCone' Added Mathlib/Topology/Category/Profinite/Extend.lean + def Profinite.Extend.cocone + def Profinite.Extend.cone + def Profinite.Extend.functor + def Profinite.Extend.functorOp + theorem Profinite.Extend.functorOp_final + theorem Profinite.Extend.functor_initial + def Profinite.Extend.isColimitCocone + def Profinite.Extend.isLimitCone + theorem Profinite.exists_hom 2024-08-31 18:37:50 553bf20 feat(lint_and_suggest_pr.yml): mention the "bot fix style" command in the reviewdog comments (#16365) Cf. [Zulip](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/reviewdog/near/466505584) ESTIMATED CHANGES Modified .github/workflows/lint_and_suggest_pr.yml 2024-08-31 18:37:49 2b3a9f7 chore(Init/Data/Quot): better naming (#16252) `Quot.exact` ↦ `Quot.eqvGen_exact` `Quot.EqvGen_sound` ↦ `Quot.eqvGen_sound` ESTIMATED CHANGES Modified Mathlib/Algebra/Category/Grp/FilteredColimits.lean Modified Mathlib/Algebra/Category/ModuleCat/FilteredColimits.lean Modified Mathlib/Algebra/Category/MonCat/FilteredColimits.lean Modified Mathlib/CategoryTheory/Groupoid/FreeGroupoid.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Types.lean Modified Mathlib/Data/PFunctor/Multivariate/M.lean Modified Mathlib/Data/Quot.lean Modified Mathlib/FieldTheory/PerfectClosure.lean Modified Mathlib/GroupTheory/FreeGroup/Basic.lean Modified Mathlib/Init/Data/Quot.lean - theorem Quot.EqvGen_sound + theorem Quot.eqvGen_exact + theorem Quot.eqvGen_sound - theorem Quot.exact 2024-08-31 17:54:35 12bff7f docs(Order/ConditionallyCompleteLattice/Basic): improve docs (#16353) ESTIMATED CHANGES Modified Mathlib/Order/ConditionallyCompleteLattice/Basic.lean 2024-08-31 15:30:27 a2abea1 feat: in a unital C⋆-algebra, `‖a‖ ≤ r ↔ a ≤ r • 1`, and related lemmas (#16266) ESTIMATED CHANGES Modified Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Order.lean + theorem CFC.exists_pos_algebraMap_le_iff +/- theorem CStarRing.conjugate_le_norm_smul' +/- theorem CStarRing.conjugate_le_norm_smul + theorem CStarRing.nnnorm_le_iff_of_nonneg + theorem CStarRing.nnnorm_le_natCast_iff_of_nonneg + theorem CStarRing.nnnorm_le_one_iff_of_nonneg +/- theorem CStarRing.nnnorm_mem_spectrum_of_nonneg + theorem CStarRing.norm_le_iff_le_algebraMap + theorem CStarRing.norm_le_natCast_iff_of_nonneg +/- theorem CStarRing.norm_le_norm_of_nonneg_of_le + theorem CStarRing.norm_le_one_iff_of_nonneg +/- theorem CStarRing.norm_mem_spectrum_of_nonneg +/- theorem CStarRing.norm_or_neg_norm_mem_spectrum + theorem cfc_nnreal_le_iff Modified Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Unital.lean + theorem CFC.le_one + theorem CFC.le_one_iff + theorem CFC.one_le + theorem CFC.one_le_iff + theorem algebraMap_le_cfc_iff + theorem algebraMap_le_iff_le_spectrum + theorem cfc_le_algebraMap_iff + theorem cfc_le_one_iff + theorem le_algebraMap_iff_spectrum_le + theorem one_le_cfc_iff Modified Mathlib/Topology/Instances/NNReal.lean + theorem ContinuousOn.ofReal_map_toNNReal 2024-08-31 14:49:07 816c3ce fix(update_dependencies.yml): restore order of install elan and checkout repo (#16366) In #16335, I swapped the order of checking out the repo and installing `elan`. That seems to have caused the bot to try to push `elan-init` to `master` in #16360. I've reverted that here. ESTIMATED CHANGES Modified .github/workflows/update_dependencies.yml 2024-08-31 14:29:03 0121bb2 chore(update_dependencies*.yml): switch to a new access token (#16354) It's better if the NIGHTLY_TESTING token is reserved for the nightly-testing-* branches. This should also hopefully help with API limits. ESTIMATED CHANGES Modified .github/workflows/update_dependencies.yml Modified .github/workflows/update_dependencies_zulip.yml 2024-08-31 14:29:02 dbb26bf feat: any element satisfying the predicate of a continuous functional calculus has nonempty spectrum (#16343) In particular, this gives us that the `ℝ`-spectrum of selfadjoint elements and the `ℝ≥0`-spectrum of nonnegative elements in a C⋆-algebra are nonempty. ESTIMATED CHANGES Modified Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Instances.lean + theorem IsSelfAdjoint.spectrum_nonempty + theorem NNReal.spectrum_nonempty Modified Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Unital.lean + theorem CFC.spectrum_nonempty 2024-08-31 14:29:01 3241969 chore(Computability/ContextFreeGrammar): change the definition `Langu… (#16268) …age.IsContextFree` for consistency with #13554 ESTIMATED CHANGES Modified Mathlib/Computability/ContextFreeGrammar.lean 2024-08-31 14:29:00 b5690db chore: Namespace `UniformSpace.ball` API (#16113) All these lemmas have pretty generic names ESTIMATED CHANGES Modified Mathlib/Topology/UniformSpace/Basic.lean +/- def UniformSpace.ball + theorem UniformSpace.ball_eq_of_symmetry + theorem UniformSpace.ball_inter + theorem UniformSpace.ball_inter_left + theorem UniformSpace.ball_inter_right + theorem UniformSpace.ball_mono + theorem UniformSpace.ball_subset_of_comp_subset +/- theorem UniformSpace.isClosed_ball +/- theorem UniformSpace.isOpen_ball + theorem UniformSpace.mem_ball_comp +/- theorem UniformSpace.mem_ball_self + theorem UniformSpace.mem_ball_symmetry + theorem UniformSpace.mem_comp_comp + theorem UniformSpace.mem_comp_of_mem_ball - theorem ball_eq_of_symmetry - theorem ball_inter - theorem ball_inter_left - theorem ball_inter_right - theorem ball_mono - theorem ball_subset_of_comp_subset - theorem mem_ball_comp - theorem mem_ball_symmetry - theorem mem_comp_comp - theorem mem_comp_of_mem_ball Modified Mathlib/Topology/UniformSpace/UniformEmbedding.lean 2024-08-31 13:47:18 ef88579 feat(ENNReal): Scalar multiplication by `NNReal` is finite (#16319) From LeanAPAP ESTIMATED CHANGES Modified Mathlib/Analysis/CStarAlgebra/Module/Defs.lean Modified Mathlib/Analysis/Normed/Group/Quotient.lean Modified Mathlib/Data/ENNReal/Operations.lean + theorem ENNReal.nnreal_smul_lt_top + theorem ENNReal.nnreal_smul_lt_top_iff + theorem ENNReal.nnreal_smul_ne_top + theorem ENNReal.nnreal_smul_ne_top_iff Modified Mathlib/Data/NNReal/Basic.lean + theorem NNReal.mk_one + theorem NNReal.mk_zero Modified Mathlib/Data/Real/Sqrt.lean +/- theorem Real.sqrt_nonneg 2024-08-31 13:37:06 9ba7971 chore: fix spelling mistakes in probability files (#16238) ESTIMATED CHANGES Modified Mathlib/Probability/Kernel/IntegralCompProd.lean Modified Mathlib/Probability/Kernel/RadonNikodym.lean Modified Mathlib/Probability/Martingale/BorelCantelli.lean Modified Mathlib/Probability/Martingale/Convergence.lean Modified Mathlib/Probability/Martingale/OptionalStopping.lean Modified Mathlib/Probability/Process/Stopping.lean Modified Mathlib/Probability/StrongLaw.lean 2024-08-31 10:09:38 9748aeb feat(Data/Finsupp/Defs): Support of `f + single a b` (#16076) ESTIMATED CHANGES Modified Mathlib/Data/Finsupp/Defs.lean + theorem Finsupp.support_add_single + theorem Finsupp.support_single_add 2024-08-31 07:38:11 3fbbef3 fix(update_dependencies.yml): fix typo in action (#16345) This should fix [these errors](https://github.com/leanprover-community/mathlib4/actions/runs/10640763528/job/29500994383#step:1:36). ESTIMATED CHANGES Modified .github/workflows/update_dependencies.yml 2024-08-30 23:38:02 44e298c fix(update_dependencies.yml): do not run if the PR already has the ready-to-merge label (#16335) This should prevent cases where the bot repeatedly cancels bors batches as in #16286 ESTIMATED CHANGES Modified .github/workflows/update_dependencies.yml 2024-08-30 23:06:01 f43fa2a chore: update Mathlib dependencies 2024-08-30 (#16333) This PR updates the Mathlib dependencies. ESTIMATED CHANGES Modified lake-manifest.json 2024-08-30 18:52:49 968aead feat: (Analysis.InnerProductSpace) Decomposition of Finite-Dimensional Inner Product Space as Direct Sum of Simultaneous Eigenspaces of Commuting Symmetric Operators (#15012) Introduced `Mathlib.Analysis.InnerProductSpace.Simultaneous.lean` as a receptacle for results concerning simultaneous eigenspace decomposition results for tuples of commuting symmetric operators on (finite-dimensional) Hilbert space. Includes decomposition of finite-dimensional Hilbert space as internal direct sum of simultaneous eigenspaces of a commuting pair of symmetric operators. Co-Authored by: Jack Cheverton Co-Authored by: Samyak Dhar Tuladhar ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/InnerProductSpace/JointEigenspace.lean + theorem LinearMap.IsSymmetric.directSum_isInteral_of_commute + theorem LinearMap.IsSymmetric.eigenspace_inf_eigenspace + theorem LinearMap.IsSymmetric.eigenspace_invariant_of_commute + theorem LinearMap.IsSymmetric.iSup_eigenspace_inf_eigenspace + theorem LinearMap.IsSymmetric.iSup_iSup_eigenspace_inf_eigenspace_eq_top + theorem LinearMap.IsSymmetric.orthogonalFamily_eigenspace_inf_eigenspace 2024-08-30 18:39:19 813f45d chore: fix spelling mistakes in set theory files (#16280) ESTIMATED CHANGES Modified Mathlib/SetTheory/Cardinal/CountableCover.lean Modified Mathlib/SetTheory/Game/Basic.lean Modified Mathlib/SetTheory/Game/Nim.lean Modified Mathlib/SetTheory/Ordinal/FixedPointApproximants.lean 2024-08-30 18:03:21 673f6c8 feat: A star group is a star `ℤ`-module (#16246) From LeanAPAP ESTIMATED CHANGES Modified Mathlib/Algebra/Star/Basic.lean +/- theorem star_nsmul +/- theorem star_zsmul 2024-08-30 17:51:38 bd170f9 chore: update Mathlib dependencies 2024-08-30 (#16286) This PR updates the Mathlib dependencies. ESTIMATED CHANGES Modified lake-manifest.json 2024-08-30 16:41:40 37b3e83 chore(Group/Measure): drop a `T2Space` assumption (#16284) ESTIMATED CHANGES Modified Mathlib/Analysis/Fourier/RiemannLebesgueLemma.lean Modified Mathlib/MeasureTheory/Group/Measure.lean - theorem ContinuousLinearEquiv.isAddHaarMeasure_map Modified Mathlib/MeasureTheory/Measure/Haar/NormedSpace.lean 2024-08-30 16:12:55 67b2936 chore(CategoryTheory/Sites): remove some `erw`s (#16312) ...also a few unnecessary `dsimps` and other cleanup ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Sites/Adjunction.lean Modified Mathlib/CategoryTheory/Sites/Coherent/Comparison.lean Modified Mathlib/CategoryTheory/Sites/Coherent/ExtensiveSheaves.lean Modified Mathlib/CategoryTheory/Sites/Coherent/ExtensiveTopology.lean Modified Mathlib/CategoryTheory/Sites/Coherent/LocallySurjective.lean Modified Mathlib/CategoryTheory/Sites/CompatiblePlus.lean Modified Mathlib/CategoryTheory/Sites/ConcreteSheafification.lean Modified Mathlib/CategoryTheory/Sites/EqualizerSheafCondition.lean Modified Mathlib/CategoryTheory/Sites/Equivalence.lean Modified Mathlib/CategoryTheory/Sites/Limits.lean Modified Mathlib/CategoryTheory/Sites/LocallyInjective.lean Modified Mathlib/CategoryTheory/Sites/Plus.lean Modified Mathlib/CategoryTheory/Sites/Sheaf.lean Modified Mathlib/CategoryTheory/Sites/SheafHom.lean Modified Mathlib/CategoryTheory/Sites/Sheafification.lean Modified Mathlib/CategoryTheory/Sites/Subsheaf.lean 2024-08-30 15:20:19 d83c091 chore: removes non-breaking spaces (U+00a0) (#16257) Removes all non-breaking spaces (U+00a0) from Mathlib. This is in preparation for using the "unicode linter" (#16215), which would (as of now) disallow non-printing characters except for space (U+0020) and linefeed (U+000A). ESTIMATED CHANGES Modified Mathlib/Algebra/Category/ModuleCat/Free.lean Modified Mathlib/CategoryTheory/Adjunction/Opposites.lean Modified Mathlib/CategoryTheory/Adjunction/Unique.lean Modified Mathlib/CategoryTheory/Closed/Types.lean Modified Mathlib/CategoryTheory/EffectiveEpi/Basic.lean Modified Mathlib/CategoryTheory/EffectiveEpi/Comp.lean Modified Mathlib/CategoryTheory/EffectiveEpi/Coproduct.lean Modified Mathlib/CategoryTheory/EffectiveEpi/Enough.lean Modified Mathlib/CategoryTheory/EffectiveEpi/Extensive.lean Modified Mathlib/CategoryTheory/EffectiveEpi/RegularEpi.lean Modified Mathlib/CategoryTheory/Groupoid/Subgroupoid.lean Modified Mathlib/CategoryTheory/Limits/Final/ParallelPair.lean Modified Mathlib/CategoryTheory/Limits/Opposites.lean Modified Mathlib/CategoryTheory/Limits/Preserves/Ulift.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Countable.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Products.lean Modified Mathlib/CategoryTheory/Monad/Adjunction.lean Modified Mathlib/CategoryTheory/Sites/Coherent/Equivalence.lean Modified Mathlib/CategoryTheory/Sites/Coherent/ExtensiveSheaves.lean Modified Mathlib/CategoryTheory/Sites/Coherent/LocallySurjective.lean Modified Mathlib/CategoryTheory/Sites/Coherent/ReflectsPrecoherent.lean Modified Mathlib/CategoryTheory/Sites/Coherent/ReflectsPreregular.lean Modified Mathlib/CategoryTheory/Sites/Coherent/RegularSheaves.lean Modified Mathlib/CategoryTheory/Sites/Coherent/SheafComparison.lean Modified Mathlib/CategoryTheory/Sites/ConstantSheaf.lean Modified Mathlib/CategoryTheory/Sites/Discrete.lean Modified Mathlib/CategoryTheory/Sites/EqualizerSheafCondition.lean Modified Mathlib/CategoryTheory/Sites/IsSheafFor.lean Modified Mathlib/CategoryTheory/Sites/LeftExact.lean Modified Mathlib/CategoryTheory/Sites/Preserves.lean Modified Mathlib/CategoryTheory/Sites/SheafOfTypes.lean Modified Mathlib/CategoryTheory/Sites/Sheafification.lean Modified Mathlib/CategoryTheory/Sites/Whiskering.lean Modified Mathlib/Combinatorics/Quiver/Symmetric.lean Modified Mathlib/Combinatorics/SimpleGraph/Path.lean Modified Mathlib/Combinatorics/SimpleGraph/Walk.lean Modified Mathlib/Condensed/Discrete/Basic.lean Modified Mathlib/Condensed/Equivalence.lean Modified Mathlib/Condensed/Explicit.lean Modified Mathlib/Condensed/Functors.lean Modified Mathlib/Condensed/Light/Explicit.lean Modified Mathlib/Condensed/Light/Functors.lean Modified Mathlib/Condensed/Light/TopCatAdjunction.lean Modified Mathlib/Condensed/Light/TopComparison.lean Modified Mathlib/Condensed/TopCatAdjunction.lean Modified Mathlib/Condensed/TopComparison.lean Modified Mathlib/Data/Matroid/Restrict.lean Modified Mathlib/LinearAlgebra/LinearIndependent.lean Modified Mathlib/LinearAlgebra/Matrix/PosDef.lean Modified Mathlib/MeasureTheory/Decomposition/SignedHahn.lean Modified Mathlib/MeasureTheory/Integral/DominatedConvergence.lean Modified Mathlib/NumberTheory/Harmonic/GammaDeriv.lean Modified Mathlib/NumberTheory/Harmonic/ZetaAsymp.lean Modified Mathlib/NumberTheory/LSeries/RiemannZeta.lean Modified Mathlib/NumberTheory/ModularForms/JacobiTheta/Bounds.lean Modified Mathlib/NumberTheory/ModularForms/JacobiTheta/TwoVariable.lean Modified Mathlib/SetTheory/Game/PGame.lean Modified Mathlib/Topology/Algebra/OpenSubgroup.lean Modified Mathlib/Topology/Category/CompHaus/Basic.lean Modified Mathlib/Topology/Category/CompHausLike/Basic.lean Modified Mathlib/Topology/Category/CompHausLike/Limits.lean Modified Mathlib/Topology/Category/CompactlyGenerated.lean Modified Mathlib/Topology/Category/LightProfinite/AsLimit.lean Modified Mathlib/Topology/Category/LightProfinite/Basic.lean Modified Mathlib/Topology/Category/LightProfinite/Sequence.lean Modified Mathlib/Topology/Category/Profinite/EffectiveEpi.lean Modified Mathlib/Topology/Category/Profinite/Nobeling.lean Modified Mathlib/Topology/Category/Profinite/Product.lean Modified Mathlib/Topology/Category/Stonean/Adjunctions.lean Modified Mathlib/Topology/Category/Stonean/Basic.lean Modified Mathlib/Topology/Category/Stonean/EffectiveEpi.lean Modified Mathlib/Topology/Category/TopCat/EffectiveEpi.lean Modified Mathlib/Topology/Category/TopCat/Limits/Products.lean Modified Mathlib/Topology/Category/TopCat/OpenNhds.lean Modified Mathlib/Topology/Category/TopCat/Yoneda.lean Modified Mathlib/Topology/Compactness/CompactlyGeneratedSpace.lean Modified Mathlib/Topology/Connected/PathConnected.lean Modified Mathlib/Topology/Connected/Separation.lean Modified Mathlib/Topology/ContinuousFunction/Basic.lean Modified Mathlib/Topology/DiscreteQuotient.lean Modified Mathlib/Topology/LocallyConstant/Algebra.lean Modified Mathlib/Topology/LocallyConstant/Basic.lean Modified Mathlib/Topology/StoneCech.lean Modified Mathlib/Topology/UniformSpace/Compact.lean 2024-08-30 15:20:18 405a9bd feat: `(a • b) * c • d = (a * c) • (b * d)` (#16245) From LeanAPAP ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/Operations.lean Modified Mathlib/Algebra/Group/Action/Defs.lean + theorem mul_smul_mul_comm - theorem smul_mul_smul + theorem smul_mul_smul_comm Modified Mathlib/Algebra/Group/Action/Prod.lean Modified Mathlib/Algebra/Group/Action/Units.lean Modified Mathlib/Algebra/MonoidAlgebra/Basic.lean Modified Mathlib/Algebra/SMulWithZero.lean Modified Mathlib/Algebra/Star/Order.lean Modified Mathlib/Algebra/TrivSqZeroExt.lean Modified Mathlib/Analysis/Normed/Algebra/Exponential.lean Modified Mathlib/Data/Complex/Module.lean Modified Mathlib/LinearAlgebra/CliffordAlgebra/Equivs.lean Modified Mathlib/LinearAlgebra/CliffordAlgebra/EvenEquiv.lean Modified Mathlib/RingTheory/Binomial.lean Modified Mathlib/RingTheory/Coprime/Basic.lean Modified Mathlib/RingTheory/LittleWedderburn.lean Modified Mathlib/RingTheory/TensorProduct/Basic.lean 2024-08-30 15:20:17 1cfd2a4 feat (MeasureTheory.Decoposition.RadonNikodym): `integral_toReal_rnDeriv'` (#15545) Add `integral_toReal_rnDeriv'`, an alternative version of `integral_toReal_rnDeriv` for the non absolutely continuous case. ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Decomposition/RadonNikodym.lean + theorem MeasureTheory.Measure.integral_toReal_rnDeriv' 2024-08-30 15:20:15 c35a036 feat(AlgebraicGeometry/EllipticCurve/Projective): add API for equations and nonsingularity (#14210) This is the projective version of #13060 and is completely analogous to the current Jacobian file. ESTIMATED CHANGES Modified Mathlib/AlgebraicGeometry/EllipticCurve/Jacobian.lean Modified Mathlib/AlgebraicGeometry/EllipticCurve/Projective.lean + theorem WeierstrassCurve.Projective.X_eq_iff + theorem WeierstrassCurve.Projective.X_eq_of_equiv + theorem WeierstrassCurve.Projective.X_eq_zero_of_Z_eq_zero + theorem WeierstrassCurve.Projective.Y_eq_iff + theorem WeierstrassCurve.Projective.Y_eq_of_equiv + theorem WeierstrassCurve.Projective.Y_ne_zero_of_Z_eq_zero + theorem WeierstrassCurve.Projective.Z_eq_zero_of_equiv + theorem WeierstrassCurve.Projective.comp_fin3 +/- theorem WeierstrassCurve.Projective.equation_iff + theorem WeierstrassCurve.Projective.equation_of_Z_eq_zero + theorem WeierstrassCurve.Projective.equation_of_Z_ne_zero + theorem WeierstrassCurve.Projective.equation_of_equiv + theorem WeierstrassCurve.Projective.equation_smul - theorem WeierstrassCurve.Projective.equation_smul_iff +/- theorem WeierstrassCurve.Projective.equation_some +/- theorem WeierstrassCurve.Projective.equation_zero + theorem WeierstrassCurve.Projective.equiv_iff_eq_of_Z_eq' + theorem WeierstrassCurve.Projective.equiv_iff_eq_of_Z_eq + theorem WeierstrassCurve.Projective.equiv_of_X_eq_of_Y_eq +/- theorem WeierstrassCurve.Projective.equiv_zero_of_Z_eq_zero +/- theorem WeierstrassCurve.Projective.eval_polynomial +/- theorem WeierstrassCurve.Projective.eval_polynomialX + theorem WeierstrassCurve.Projective.eval_polynomialX_of_Z_ne_zero + theorem WeierstrassCurve.Projective.eval_polynomialY_of_Z_ne_zero +/- theorem WeierstrassCurve.Projective.eval_polynomialZ + theorem WeierstrassCurve.Projective.eval_polynomial_of_Z_ne_zero +/- theorem WeierstrassCurve.Projective.fin3_def + theorem WeierstrassCurve.Projective.fin3_def_ext + theorem WeierstrassCurve.Projective.isUnit_Y_of_Z_eq_zero +/- theorem WeierstrassCurve.Projective.nonsingularLift_iff - theorem WeierstrassCurve.Projective.nonsingularLift_zero' +/- theorem WeierstrassCurve.Projective.nonsingularLift_zero - theorem WeierstrassCurve.Projective.nonsingular_affine_of_Z_ne_zero +/- theorem WeierstrassCurve.Projective.nonsingular_iff - theorem WeierstrassCurve.Projective.nonsingular_iff_affine_of_Z_ne_zero + theorem WeierstrassCurve.Projective.nonsingular_iff_of_Z_ne_zero + theorem WeierstrassCurve.Projective.nonsingular_of_Z_eq_zero + theorem WeierstrassCurve.Projective.nonsingular_of_Z_ne_zero - theorem WeierstrassCurve.Projective.nonsingular_of_affine_of_Z_ne_zero +/- theorem WeierstrassCurve.Projective.nonsingular_of_equiv + theorem WeierstrassCurve.Projective.nonsingular_smul - theorem WeierstrassCurve.Projective.nonsingular_smul_iff +/- theorem WeierstrassCurve.Projective.nonsingular_some - theorem WeierstrassCurve.Projective.nonsingular_zero' +/- theorem WeierstrassCurve.Projective.nonsingular_zero + theorem WeierstrassCurve.Projective.not_equiv_of_X_ne + theorem WeierstrassCurve.Projective.not_equiv_of_Y_ne + theorem WeierstrassCurve.Projective.not_equiv_of_Z_eq_zero_left + theorem WeierstrassCurve.Projective.not_equiv_of_Z_eq_zero_right +/- theorem WeierstrassCurve.Projective.polynomialX_eq +/- theorem WeierstrassCurve.Projective.polynomialY_eq +/- theorem WeierstrassCurve.Projective.polynomialZ_eq +/- theorem WeierstrassCurve.Projective.polynomial_relation + theorem WeierstrassCurve.Projective.smul_eq + theorem WeierstrassCurve.Projective.smul_equiv +/- theorem WeierstrassCurve.Projective.smul_fin3 +/- theorem WeierstrassCurve.Projective.smul_fin3_ext 2024-08-30 15:20:14 139e088 fix(CI): make the `update-nolints` workflow work (#13498) - fetch the whole repository (with history) when checking it out - fix a repeated typo mathlib -> mathlib4 - the workflow token has been switched to a bot account - also silence a noisy `git fetch` step which was filling up the logs with unrelated branch names ESTIMATED CHANGES Modified .github/workflows/nolints.yml Modified scripts/update_nolints_CI.sh 2024-08-30 14:08:41 144d94d chore: bump toolchain to v4.11.0-rc3 (#16240) ESTIMATED CHANGES Modified Mathlib/Tactic/Linter/AdmitLinter.lean Modified Mathlib/Tactic/Linter/GlobalAttributeIn.lean Modified Mathlib/Tactic/Linter/HashCommandLinter.lean Modified Mathlib/Tactic/Linter/Lint.lean Modified Mathlib/Tactic/Linter/OldObtain.lean Modified Mathlib/Tactic/Linter/RefineLinter.lean Modified Mathlib/Tactic/Linter/Style.lean Modified Mathlib/Tactic/Linter/UnusedTactic.lean Modified Mathlib/Tactic/Variable.lean Modified lean-toolchain 2024-08-30 14:08:40 755d1eb chore(ModelTheory): Add @[simps] to functions creating maps from `HomClass` instances (#16193) Adds `@[simps]` tag to `HomClass.toHom`, `StrongHomClass.toEmbedding`, `StrongHomClass.toEquiv` ESTIMATED CHANGES Modified Mathlib/ModelTheory/Basic.lean +/- def FirstOrder.Language.HomClass.toHom +/- def FirstOrder.Language.StrongHomClass.toEmbedding +/- def FirstOrder.Language.StrongHomClass.toEquiv 2024-08-30 13:02:48 03ff531 chore: fix 11 spelling mistakes spread across various Mathlib/ subdirectories (#16309) ESTIMATED CHANGES Modified Mathlib/Algebra/Homology/BifunctorAssociator.lean Modified Mathlib/AlgebraicTopology/DoldKan/Equivalence.lean Modified Mathlib/CategoryTheory/Closed/Cartesian.lean Modified Mathlib/CategoryTheory/MorphismProperty/Representable.lean Modified Mathlib/Combinatorics/Colex.lean Modified Mathlib/Combinatorics/SetFamily/Compression/UV.lean Modified Mathlib/Logic/Equiv/PartialEquiv.lean Modified Mathlib/Order/IsWellOrderLimitElement.lean Modified Mathlib/RepresentationTheory/FDRep.lean Modified Mathlib/Testing/SlimCheck/Sampleable.lean 2024-08-30 13:02:47 214359e chore: fix spelling mistakes in field theory files (#16308) ESTIMATED CHANGES Modified Mathlib/FieldTheory/Adjoin.lean Modified Mathlib/FieldTheory/Finite/GaloisField.lean Modified Mathlib/FieldTheory/PurelyInseparable.lean 2024-08-30 13:02:46 2511669 chore: fix spelling mistakes in group theory files (#16307) ESTIMATED CHANGES Modified Mathlib/GroupTheory/HNNExtension.lean 2024-08-30 13:02:45 b48dd6e fix(lint-style): return zero exit code when updating or fixing style … (#16301) …errors ESTIMATED CHANGES Modified scripts/lint-style.lean 2024-08-30 13:02:44 1d34c99 feat(Haar/Unique): generalize `measurePreserving_zpow` (#16285) ... to a continuous surjective `MonoidHom`. ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Measure/Haar/Unique.lean + theorem MonoidHom.measurePreserving 2024-08-30 13:02:43 5c93cb8 feat(Set,MeasurableSpace): lemmas about `{s | s.Finite}` (#16195) For a countable type `α`, - `{s : Set α | s.Finite}` is countable, hence measurable; - `{s : Set α | s.Infinite}` is measurable. ESTIMATED CHANGES Modified Mathlib/Data/Set/Countable.lean + theorem Set.Countable.setOf_finite Modified Mathlib/MeasureTheory/MeasurableSpace/Basic.lean + theorem MeasurableSet.sep_finite + theorem MeasurableSet.sep_infinite + theorem MeasurableSet.setOf_finite + theorem MeasurableSet.setOf_infinite 2024-08-30 13:02:41 b05a865 feat(CategoryTheory/Adjunction): left adjoint in adjoint triple is fully faithful iff right adjoint is (#16167) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Adjunction/Triple.lean + theorem CategoryTheory.Adjunction.isIso_unit_iff_isIso_counit Modified Mathlib/CategoryTheory/Functor/FullyFaithful.lean 2024-08-30 13:02:40 793502f chore(Probability/Kernel): `initialize_simps_projections` (#15442) Move `initialize_simps_projections` few lines down so that `simps` uses `FunLike.coe` instead of `CoeFn.coeFn`. Add `Kernel.coe_mk`. ESTIMATED CHANGES Modified Mathlib/Probability/Kernel/Basic.lean + theorem ProbabilityTheory.Kernel.coe_mk 2024-08-30 11:38:28 3fb4b74 feat(Polynomial): Equivalence between monic polynomials of degree n and `degreeLT n` (#16037) ESTIMATED CHANGES Modified Mathlib/RingTheory/Polynomial/Basic.lean + def Polynomial.monicEquivDegreeLT 2024-08-30 11:38:27 a4f11e4 feat(Order): A continuous monotone function `f` maps `sSup s` to `sSup (f '' s)` (#15926) This PR shows several lemmas related to the PR title. Note that we already have several lemmas in this direction, but they have very strong hypotheses (like `Monotone f` when `MonotoneOn f s` would do). We also remove several duplicated lemmas and replace them with deprecated aliases. ESTIMATED CHANGES Modified Mathlib/Topology/Algebra/Order/LiminfLimsup.lean Modified Mathlib/Topology/Instances/ENNReal.lean Modified Mathlib/Topology/Order/Monotone.lean +/- theorem Antitone.map_ciInf_of_continuousAt +/- theorem Antitone.map_ciSup_of_continuousAt +/- theorem Antitone.map_csInf_of_continuousAt +/- theorem Antitone.map_csSup_of_continuousAt - theorem Antitone.map_iInf_of_continuousAt' - theorem Antitone.map_iSup_of_continuousAt' - theorem Antitone.map_sInf_of_continuousAt' - theorem Antitone.map_sSup_of_continuousAt' + theorem AntitoneOn.map_csInf_of_continuousWithinAt + theorem AntitoneOn.map_csSup_of_continuousWithinAt + theorem AntitoneOn.map_sInf_of_continuousWithinAt + theorem AntitoneOn.map_sSup_of_continuousWithinAt +/- theorem Monotone.map_ciInf_of_continuousAt +/- theorem Monotone.map_ciSup_of_continuousAt +/- theorem Monotone.map_csInf_of_continuousAt +/- theorem Monotone.map_csSup_of_continuousAt - theorem Monotone.map_iInf_of_continuousAt' - theorem Monotone.map_iSup_of_continuousAt' - theorem Monotone.map_sInf_of_continuousAt' - theorem Monotone.map_sSup_of_continuousAt' + theorem MonotoneOn.map_csInf_of_continuousWithinAt + theorem MonotoneOn.map_csSup_of_continuousWithinAt + theorem MonotoneOn.map_sInf_of_continuousWithinAt + theorem MonotoneOn.map_sSup_of_continuousWithinAt 2024-08-30 10:36:34 7635fb7 feat(Algebra/Order/Hom): `Order(Add)MonoidIso` (#16165) ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Hom/Monoid.lean + structure OrderAddMonoidIso + theorem OrderMonoidIso.cancel_left + theorem OrderMonoidIso.cancel_right + theorem OrderMonoidIso.coe_mk + theorem OrderMonoidIso.coe_mulEquiv + theorem OrderMonoidIso.coe_orderIso + theorem OrderMonoidIso.coe_refl + theorem OrderMonoidIso.coe_trans + theorem OrderMonoidIso.coe_trans_mulEquiv + theorem OrderMonoidIso.coe_trans_orderIso + theorem OrderMonoidIso.ext + def OrderMonoidIso.mk' + theorem OrderMonoidIso.mk_coe + theorem OrderMonoidIso.refl_trans + theorem OrderMonoidIso.toFun_eq_coe + theorem OrderMonoidIso.toMulEquiv_eq_coe + theorem OrderMonoidIso.toMulEquiv_injective + def OrderMonoidIso.toOrderIso + theorem OrderMonoidIso.toOrderIso_eq_coe + theorem OrderMonoidIso.toOrderIso_injective + def OrderMonoidIso.trans + theorem OrderMonoidIso.trans_apply + theorem OrderMonoidIso.trans_assoc + theorem OrderMonoidIso.trans_refl + structure OrderMonoidIso + def OrderMonoidIsoClass.toOrderMonoidIso 2024-08-30 10:36:32 4086a45 feat: the longFile linter (#15610) The "longFile" linter is a syntax linter. It emits a warning on files which are longer than a certain number of lines (1500 by default). A value of `0` silences the linter entirely. This PR also modifies the `TextBased` `fileTooLong` linter: now it only lints files that do not contain `set_option linter.style.longFile `, and removes the exceptions that are now covered by the "longFile" linter. The `TextBased` longFile linter stays (for now), though it is going to be removed soon. ESTIMATED CHANGES Modified Mathlib/Algebra/BigOperators/Group/Finset.lean Modified Mathlib/Algebra/Group/Subgroup/Basic.lean Modified Mathlib/Algebra/MonoidAlgebra/Basic.lean Modified Mathlib/Algebra/MvPolynomial/Basic.lean Modified Mathlib/Algebra/Order/Floor.lean Modified Mathlib/AlgebraicGeometry/EllipticCurve/Jacobian.lean Modified Mathlib/Analysis/Asymptotics/Asymptotics.lean Modified Mathlib/Analysis/Calculus/ContDiff/Basic.lean Modified Mathlib/Analysis/Calculus/ContDiff/Defs.lean Modified Mathlib/Analysis/InnerProductSpace/Basic.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Biproducts.lean Modified Mathlib/Computability/TMToPartrec.lean Modified Mathlib/Computability/TuringMachine.lean Modified Mathlib/Data/DFinsupp/Basic.lean Modified Mathlib/Data/Fin/Basic.lean Modified Mathlib/Data/Finset/Basic.lean Modified Mathlib/Data/Finset/Lattice.lean Modified Mathlib/Data/Finset/Pointwise/Basic.lean Modified Mathlib/Data/Finsupp/Basic.lean Modified Mathlib/Data/List/Basic.lean Modified Mathlib/Data/Matrix/Basic.lean Modified Mathlib/Data/Multiset/Basic.lean Modified Mathlib/Data/Num/Lemmas.lean Modified Mathlib/Data/Ordmap/Ordset.lean Modified Mathlib/Data/Real/EReal.lean Modified Mathlib/Data/Seq/WSeq.lean Modified Mathlib/Data/Set/Basic.lean Modified Mathlib/Data/Set/Finite.lean Modified Mathlib/Data/Set/Function.lean Modified Mathlib/Data/Set/Lattice.lean Modified Mathlib/LinearAlgebra/AffineSpace/AffineSubspace.lean Modified Mathlib/LinearAlgebra/Dual.lean Modified Mathlib/LinearAlgebra/Multilinear/Basic.lean Modified Mathlib/Logic/Equiv/Basic.lean Modified Mathlib/MeasureTheory/Function/LpSpace.lean Modified Mathlib/MeasureTheory/Function/StronglyMeasurable/Basic.lean Modified Mathlib/MeasureTheory/Integral/Bochner.lean Modified Mathlib/MeasureTheory/Integral/FundThmCalculus.lean Modified Mathlib/MeasureTheory/Integral/Lebesgue.lean Modified Mathlib/MeasureTheory/Integral/SetIntegral.lean Modified Mathlib/MeasureTheory/Integral/SetToL1.lean Modified Mathlib/MeasureTheory/Measure/MeasureSpace.lean Modified Mathlib/MeasureTheory/Measure/Typeclasses.lean Modified Mathlib/Order/CompleteLattice.lean Modified Mathlib/Order/ConditionallyCompleteLattice/Basic.lean Modified Mathlib/Order/Filter/AtTopBot.lean Modified Mathlib/Order/Filter/Basic.lean Modified Mathlib/Order/Hom/Lattice.lean Modified Mathlib/Order/Interval/Set/Basic.lean Modified Mathlib/Order/LiminfLimsup.lean Modified Mathlib/Order/UpperLower/Basic.lean Modified Mathlib/RingTheory/UniqueFactorizationDomain.lean Modified Mathlib/SetTheory/Cardinal/Basic.lean Modified Mathlib/SetTheory/Game/PGame.lean Modified Mathlib/SetTheory/Ordinal/Arithmetic.lean Modified Mathlib/SetTheory/ZFC/Basic.lean Modified Mathlib/Tactic/CC/Addition.lean Modified Mathlib/Tactic/Linter/Lint.lean + def Mathlib.Linter.Style.longFile.longFileLinter Modified Mathlib/Tactic/Linter/TextBased.lean Modified Mathlib/Tactic/ToAdditive/Frontend.lean Modified Mathlib/Topology/Algebra/Group/Basic.lean Modified Mathlib/Topology/Algebra/Module/Basic.lean Modified Mathlib/Topology/Basic.lean Modified Mathlib/Topology/Category/Profinite/Nobeling.lean Modified Mathlib/Topology/Constructions.lean Modified Mathlib/Topology/ContinuousFunction/Bounded.lean Modified Mathlib/Topology/Instances/ENNReal.lean Modified Mathlib/Topology/Separation.lean Modified Mathlib/Topology/UniformSpace/Basic.lean Modified scripts/lint-style.py Modified scripts/style-exceptions.txt Modified scripts/technical-debt-metrics.sh Modified test/Lint.lean 2024-08-30 10:14:10 283ca40 chore(MeasureTheory): generalize to `NullMeasurableSet` (#16279) Generalize some lemmas from `MeasurableSet`s to `NullMeasurableSet`s. ESTIMATED CHANGES Modified Mathlib/Analysis/Convex/Measure.lean Modified Mathlib/Dynamics/Ergodic/Ergodic.lean +/- theorem Ergodic.ae_empty_or_univ_of_ae_le_preimage' +/- theorem Ergodic.ae_empty_or_univ_of_ae_le_preimage +/- theorem Ergodic.ae_empty_or_univ_of_image_ae_le' +/- theorem Ergodic.ae_empty_or_univ_of_image_ae_le +/- theorem Ergodic.ae_empty_or_univ_of_preimage_ae_le' +/- theorem Ergodic.ae_empty_or_univ_of_preimage_ae_le Modified Mathlib/MeasureTheory/Constructions/BorelSpace/Basic.lean + theorem IsCompact.nullMeasurableSet Modified Mathlib/MeasureTheory/Constructions/BorelSpace/Metric.lean Modified Mathlib/MeasureTheory/Constructions/BorelSpace/Order.lean Modified Mathlib/MeasureTheory/Constructions/BorelSpace/Real.lean Modified Mathlib/MeasureTheory/Covering/Besicovitch.lean Modified Mathlib/MeasureTheory/Decomposition/UnsignedHahn.lean Modified Mathlib/MeasureTheory/Function/Egorov.lean Modified Mathlib/MeasureTheory/Group/AddCircle.lean Modified Mathlib/MeasureTheory/Group/Measure.lean Modified Mathlib/MeasureTheory/Integral/SetIntegral.lean Modified Mathlib/MeasureTheory/Measure/ContinuousPreimage.lean Modified Mathlib/MeasureTheory/Measure/Haar/Unique.lean Modified Mathlib/MeasureTheory/Measure/Lebesgue/EqHaar.lean Modified Mathlib/MeasureTheory/Measure/LevyProkhorovMetric.lean Modified Mathlib/MeasureTheory/Measure/MeasureSpace.lean +/- theorem MeasureTheory.ae_eq_of_ae_subset_of_measure_ge +/- theorem MeasureTheory.ae_eq_of_subset_of_measure_ge +/- theorem MeasureTheory.measure_add_diff +/- theorem MeasureTheory.measure_diff' +/- theorem MeasureTheory.measure_diff +/- theorem MeasureTheory.measure_diff_le_iff_le_add +/- theorem MeasureTheory.measure_diff_lt_of_lt_add +/- theorem MeasureTheory.measure_iInter_eq_iInf +/- theorem MeasureTheory.measure_symmDiff_eq Modified Mathlib/MeasureTheory/Measure/Regular.lean Modified Mathlib/MeasureTheory/Measure/Restrict.lean Modified Mathlib/MeasureTheory/Measure/Stieltjes.lean Modified Mathlib/MeasureTheory/Measure/Typeclasses.lean Modified Mathlib/MeasureTheory/Order/UpperLower.lean Modified Mathlib/NumberTheory/WellApproximable.lean Modified Mathlib/Probability/Independence/Kernel.lean Modified Mathlib/Probability/Kernel/Disintegration/CDFToKernel.lean Modified Mathlib/Probability/Kernel/Disintegration/CondCDF.lean Modified Mathlib/Probability/Kernel/Disintegration/Density.lean Modified Mathlib/Probability/Kernel/MeasurableIntegral.lean 2024-08-30 10:14:09 c34aad5 chore: Make measurability of sets/functions in discrete spaces available with anonymous dot notation (#16136) From LeanAPAP ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Constructions/BorelSpace/Basic.lean Modified Mathlib/MeasureTheory/Group/Arithmetic.lean Modified Mathlib/MeasureTheory/MeasurableSpace/Basic.lean Modified Mathlib/MeasureTheory/MeasurableSpace/Defs.lean + theorem Measurable.of_discrete + theorem MeasurableSet.of_discrete +/- theorem measurableSet_discrete +/- theorem measurable_discrete Modified Mathlib/MeasureTheory/Measure/MeasureSpaceDef.lean + theorem AEMeasurable.of_discrete 2024-08-30 08:52:04 1a194ab chore: fix spelling mistakes in analysis files (#16274) ESTIMATED CHANGES Modified Mathlib/Analysis/Analytic/Within.lean Modified Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Unital.lean Modified Mathlib/Analysis/CStarAlgebra/Unitization.lean Modified Mathlib/Analysis/Complex/TaylorSeries.lean Modified Mathlib/Analysis/Convex/Gauge.lean Modified Mathlib/Analysis/InnerProductSpace/Adjoint.lean Modified Mathlib/Analysis/InnerProductSpace/Projection.lean Modified Mathlib/Analysis/SpecialFunctions/Gamma/Beta.lean 2024-08-30 08:52:03 e2edf75 chore: remove duplicate imports from five files (#16273) ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Kleene.lean Modified Mathlib/Algebra/Order/Pi.lean Modified Mathlib/CategoryTheory/Preadditive/Projective.lean Modified Mathlib/RingTheory/Flat/Basic.lean Modified Mathlib/Tactic/PushNeg.lean 2024-08-30 08:52:02 badfa9c style: some formatting fixes (#16263) Found by the pedantic linter. ESTIMATED CHANGES Modified Counterexamples/CliffordAlgebraNotInjective.lean Modified LongestPole/SpeedCenterJson.lean Modified Mathlib/Algebra/Algebra/Hom.lean Modified Mathlib/Algebra/Algebra/NonUnitalHom.lean Modified Mathlib/Algebra/Algebra/Spectrum.lean Modified Mathlib/Algebra/BigOperators/Finprod.lean Modified Mathlib/Algebra/BigOperators/Group/Finset.lean +/- theorem Finset.prod_pow_eq_pow_sum Modified Mathlib/Algebra/BigOperators/Ring.lean Modified Mathlib/Algebra/Category/Grp/Limits.lean Modified Mathlib/Algebra/Category/ModuleCat/Presheaf/Abelian.lean Modified Mathlib/Algebra/ContinuedFractions/Basic.lean Modified Mathlib/Algebra/EuclideanDomain/Defs.lean Modified Mathlib/Algebra/Field/Subfield.lean Modified Mathlib/Algebra/FreeAlgebra.lean Modified Mathlib/Algebra/GCDMonoid/Basic.lean Modified Mathlib/Algebra/Group/Basic.lean Modified Mathlib/Algebra/Group/Hom/Basic.lean Modified Mathlib/Algebra/Group/Indicator.lean Modified Mathlib/Algebra/Group/Subgroup/Basic.lean Modified Mathlib/Algebra/Group/Subgroup/Finite.lean Modified Mathlib/Algebra/Group/Submonoid/Basic.lean Modified Mathlib/Algebra/Group/Submonoid/Membership.lean Modified Mathlib/Algebra/Group/Submonoid/Units.lean Modified Mathlib/Algebra/Group/Subsemigroup/Basic.lean Modified Mathlib/Algebra/Homology/Embedding/TruncGE.lean +/- theorem HomologicalComplex.truncGE'_d_eq Modified Mathlib/Algebra/Homology/HomologySequence.lean Modified Mathlib/Algebra/Homology/HomotopyCategory/MappingCone.lean Modified Mathlib/Algebra/Homology/ShortComplex/LeftHomology.lean Modified Mathlib/Algebra/Homology/ShortComplex/Preadditive.lean +/- def CategoryTheory.ShortComplex.Homotopy.unop Modified Mathlib/Algebra/Homology/ShortComplex/RightHomology.lean Modified Mathlib/Algebra/Jordan/Basic.lean Modified Mathlib/Algebra/Lie/Subalgebra.lean Modified Mathlib/Algebra/Module/Injective.lean Modified Mathlib/Algebra/Module/Submodule/Basic.lean Modified Mathlib/Algebra/Module/Submodule/Bilinear.lean Modified Mathlib/Algebra/MonoidAlgebra/ToDirectSum.lean Modified Mathlib/Algebra/MvPolynomial/Basic.lean Modified Mathlib/Algebra/MvPolynomial/Variables.lean Modified Mathlib/Algebra/NeZero.lean Modified Mathlib/Algebra/Order/Antidiag/Pi.lean +/- theorem Finset.piAntidiag_cons Modified Mathlib/Algebra/Order/Floor.lean +/- theorem natCast_ceil_eq_intCast_ceil Modified Mathlib/Algebra/Order/Group/Defs.lean Modified Mathlib/Algebra/Order/Module/Defs.lean Modified Mathlib/Algebra/Order/Monoid/Unbundled/MinMax.lean +/- theorem fn_min_mul_fn_max Modified Mathlib/Algebra/Order/Ring/Unbundled/Basic.lean Modified Mathlib/Algebra/Polynomial/Basic.lean Modified Mathlib/Algebra/Polynomial/Module/Basic.lean Modified Mathlib/Algebra/Polynomial/Reverse.lean Modified Mathlib/Algebra/Quandle.lean Modified Mathlib/Algebra/Quaternion.lean Modified Mathlib/Algebra/Ring/Subring/Basic.lean Modified Mathlib/Algebra/Star/Basic.lean Modified Mathlib/Algebra/Star/StarAlgHom.lean Modified Mathlib/AlgebraicGeometry/Cover/Open.lean Modified Mathlib/AlgebraicGeometry/Morphisms/Basic.lean Modified Mathlib/AlgebraicGeometry/Restrict.lean Modified Mathlib/AlgebraicGeometry/Spec.lean Modified Mathlib/AlgebraicTopology/SimplexCategory.lean Modified Mathlib/AlgebraicTopology/SplitSimplicialObject.lean Modified Mathlib/Analysis/Analytic/CPolynomial.lean Modified Mathlib/Analysis/Analytic/Composition.lean Modified Mathlib/Analysis/BoundedVariation.lean Modified Mathlib/Analysis/BoxIntegral/Basic.lean Modified Mathlib/Analysis/BoxIntegral/Box/Basic.lean Modified Mathlib/Analysis/BoxIntegral/DivergenceTheorem.lean Modified Mathlib/Analysis/BoxIntegral/Integrability.lean Modified Mathlib/Analysis/BoxIntegral/Partition/Split.lean Modified Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Unital.lean Modified Mathlib/Analysis/CStarAlgebra/Matrix.lean Modified Mathlib/Analysis/Calculus/Conformal/NormedSpace.lean Modified Mathlib/Analysis/Calculus/ContDiff/Basic.lean Modified Mathlib/Analysis/Calculus/InverseFunctionTheorem/FDeriv.lean Modified Mathlib/Analysis/Calculus/LocalExtr/Rolle.lean Modified Mathlib/Analysis/Calculus/ParametricIntervalIntegral.lean Modified Mathlib/Analysis/Complex/AbsMax.lean Modified Mathlib/Analysis/Convex/Cone/InnerDual.lean Modified Mathlib/Analysis/Convex/Gauge.lean Modified Mathlib/Analysis/Distribution/SchwartzSpace.lean Modified Mathlib/Analysis/InnerProductSpace/Basic.lean Modified Mathlib/Analysis/InnerProductSpace/Projection.lean Modified Mathlib/Analysis/MeanInequalities.lean Modified Mathlib/Analysis/Normed/Algebra/Unitization.lean Modified Mathlib/Analysis/Normed/Field/Basic.lean Modified Mathlib/Analysis/Normed/Group/Completeness.lean Modified Mathlib/Analysis/Normed/Group/Hom.lean Modified Mathlib/Analysis/Normed/Lp/LpEquiv.lean +/- theorem coe_addEquiv_lpPiLp Modified Mathlib/Analysis/Normed/Lp/PiLp.lean Modified Mathlib/Analysis/Normed/Lp/WithLp.lean Modified Mathlib/Analysis/Normed/Operator/Banach.lean Modified Mathlib/Analysis/Normed/Operator/WeakOperatorTopology.lean Modified Mathlib/Analysis/Normed/Ring/Seminorm.lean Modified Mathlib/Analysis/Normed/Ring/SeminormFromBounded.lean Modified Mathlib/Analysis/Normed/Ring/Units.lean Modified Mathlib/Analysis/NormedSpace/OperatorNorm/Bilinear.lean Modified Mathlib/Analysis/NormedSpace/OperatorNorm/Completeness.lean Modified Mathlib/Analysis/RCLike/Basic.lean Modified Mathlib/Analysis/SpecialFunctions/BinaryEntropy.lean Modified Mathlib/Analysis/SpecialFunctions/Complex/Log.lean +/- theorem Real.HasSum_rexp_HasProd Modified Mathlib/Analysis/SpecialFunctions/Gamma/Beta.lean Modified Mathlib/Analysis/SpecialFunctions/Gaussian/FourierTransform.lean Modified Mathlib/Analysis/SpecialFunctions/Pow/Real.lean +/- theorem Real.pow_lt_iff_lt_log Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Complex.lean Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/EulerSineProd.lean Modified Mathlib/Analysis/SpecificLimits/Basic.lean Modified Mathlib/Analysis/SpecificLimits/Normed.lean Modified Mathlib/CategoryTheory/Abelian/Exact.lean Modified Mathlib/CategoryTheory/Abelian/Transfer.lean +/- theorem CategoryTheory.AbelianOfAdjunction.coimageIsoImage_hom Modified Mathlib/CategoryTheory/Adjunction/AdjointFunctorTheorems.lean Modified Mathlib/CategoryTheory/Comma/Arrow.lean Modified Mathlib/CategoryTheory/Comma/Basic.lean Modified Mathlib/CategoryTheory/Comma/Over.lean Modified Mathlib/CategoryTheory/Comma/StructuredArrow.lean Modified Mathlib/CategoryTheory/ConnectedComponents.lean +/- def CategoryTheory.ConnectedComponents.liftFunctor Modified Mathlib/CategoryTheory/Extensive.lean Modified Mathlib/CategoryTheory/Filtered/Small.lean Modified Mathlib/CategoryTheory/FullSubcategory.lean Modified Mathlib/CategoryTheory/Functor/Derived/RightDerived.lean Modified Mathlib/CategoryTheory/Galois/GaloisObjects.lean Modified Mathlib/CategoryTheory/Galois/Prorepresentability.lean Modified Mathlib/CategoryTheory/GradedObject/Trifunctor.lean Modified Mathlib/CategoryTheory/Groupoid/Subgroupoid.lean Modified Mathlib/CategoryTheory/Idempotents/FunctorCategories.lean Modified Mathlib/CategoryTheory/Limits/Cones.lean Modified Mathlib/CategoryTheory/Limits/HasLimits.lean Modified Mathlib/CategoryTheory/Limits/Opposites.lean Modified Mathlib/CategoryTheory/Limits/Preserves/Shapes/Biproducts.lean Modified Mathlib/CategoryTheory/Limits/Preserves/Shapes/Kernels.lean +/- def CategoryTheory.Limits.CokernelCofork.mapIsColimit Modified Mathlib/CategoryTheory/Limits/Shapes/Biproducts.lean Modified Mathlib/CategoryTheory/Limits/Shapes/CombinedProducts.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Countable.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Equalizers.lean Modified Mathlib/CategoryTheory/Limits/Shapes/FiniteLimits.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Pullback/Mono.lean Modified Mathlib/CategoryTheory/Limits/Shapes/SingleObj.lean Modified Mathlib/CategoryTheory/Limits/Shapes/WideEqualizers.lean Modified Mathlib/CategoryTheory/Limits/TypesFiltered.lean Modified Mathlib/CategoryTheory/Localization/CalculusOfFractions.lean Modified Mathlib/CategoryTheory/Localization/CalculusOfFractions/Fractions.lean Modified Mathlib/CategoryTheory/Localization/DerivabilityStructure/Constructor.lean Modified Mathlib/CategoryTheory/Localization/HasLocalization.lean Modified Mathlib/CategoryTheory/Localization/Predicate.lean Modified Mathlib/CategoryTheory/Monad/Adjunction.lean +/- theorem CategoryTheory.Adjunction.isIso_unit_of_iso Modified Mathlib/CategoryTheory/Monad/Basic.lean Modified Mathlib/CategoryTheory/Monad/Comonadicity.lean Modified Mathlib/CategoryTheory/Monad/Monadicity.lean Modified Mathlib/CategoryTheory/MorphismProperty/Basic.lean Modified Mathlib/CategoryTheory/Opposites.lean Modified Mathlib/CategoryTheory/Products/Unitor.lean Modified Mathlib/CategoryTheory/Shift/Localization.lean Modified Mathlib/CategoryTheory/Shift/ShiftedHom.lean Modified Mathlib/CategoryTheory/Sites/Sheafification.lean Modified Mathlib/CategoryTheory/Sites/Sieves.lean Modified Mathlib/CategoryTheory/Sites/Subsheaf.lean Modified Mathlib/CategoryTheory/SmallObject/Construction.lean Modified Mathlib/CategoryTheory/Sums/Basic.lean Modified Mathlib/CategoryTheory/Widesubcategory.lean Modified Mathlib/Combinatorics/Enumerative/Composition.lean Modified Mathlib/Combinatorics/Enumerative/Partition.lean Modified Mathlib/Combinatorics/SimpleGraph/Metric.lean Modified Mathlib/Combinatorics/SimpleGraph/Regularity/Energy.lean Modified Mathlib/Computability/AkraBazzi/AkraBazzi.lean Modified Mathlib/Computability/Primrec.lean Modified Mathlib/Condensed/Basic.lean +/- theorem CondensedSet.hom_naturality_apply Modified Mathlib/Condensed/Light/Basic.lean +/- theorem LightCondSet.hom_naturality_apply Modified Mathlib/Condensed/Light/Module.lean +/- theorem LightCondMod.hom_naturality_apply Modified Mathlib/Condensed/Module.lean +/- theorem CondensedMod.hom_naturality_apply Modified Mathlib/Control/Functor/Multivariate.lean Modified Mathlib/Control/Random.lean Modified Mathlib/Control/Traversable/Basic.lean Modified Mathlib/Control/Traversable/Equiv.lean Modified Mathlib/Data/Analysis/Topology.lean Modified Mathlib/Data/Bool/Basic.lean +/- theorem Bool.toNat_beq_one +/- theorem Bool.toNat_bne_one Modified Mathlib/Data/DFinsupp/Basic.lean Modified Mathlib/Data/Fin/Basic.lean Modified Mathlib/Data/Finmap.lean Modified Mathlib/Data/Finset/PiInduction.lean Modified Mathlib/Data/Finset/Preimage.lean Modified Mathlib/Data/Fintype/Basic.lean Modified Mathlib/Data/Int/Bitwise.lean Modified Mathlib/Data/List/Pi.lean Modified Mathlib/Data/Matrix/ColumnRowPartitioned.lean +/- theorem Matrix.toRows₁_fromRows +/- theorem Matrix.toRows₂_fromRows Modified Mathlib/Data/Matrix/Composition.lean Modified Mathlib/Data/Matroid/Basic.lean Modified Mathlib/Data/Matroid/Map.lean Modified Mathlib/Data/Matroid/Restrict.lean Modified Mathlib/Data/Multiset/Basic.lean Modified Mathlib/Data/Nat/Bits.lean Modified Mathlib/Data/Nat/Cast/Defs.lean Modified Mathlib/Data/Nat/Digits.lean Modified Mathlib/Data/Nat/Factorization/Basic.lean Modified Mathlib/Data/Nat/Upto.lean Modified Mathlib/Data/PFun.lean Modified Mathlib/Data/PFunctor/Multivariate/M.lean Modified Mathlib/Data/PNat/Xgcd.lean Modified Mathlib/Data/Prod/Lex.lean Modified Mathlib/Data/Real/EReal.lean Modified Mathlib/Data/Real/Hyperreal.lean Modified Mathlib/Data/Rel.lean +/- theorem Function.graph_id Modified Mathlib/Data/Seq/Computation.lean Modified Mathlib/Data/Seq/Seq.lean Modified Mathlib/Data/Seq/WSeq.lean Modified Mathlib/Data/Set/Function.lean Modified Mathlib/Data/Setoid/Partition.lean Modified Mathlib/Data/Stream/Init.lean Modified Mathlib/Data/Vector/Defs.lean Modified Mathlib/Data/ZMod/Basic.lean Modified Mathlib/Dynamics/Ergodic/Conservative.lean Modified Mathlib/FieldTheory/Extension.lean Modified Mathlib/FieldTheory/Finite/GaloisField.lean Modified Mathlib/FieldTheory/Galois.lean Modified Mathlib/FieldTheory/IntermediateField/Algebraic.lean Modified Mathlib/FieldTheory/PolynomialGaloisGroup.lean Modified Mathlib/FieldTheory/RatFunc/Defs.lean Modified Mathlib/Geometry/Euclidean/Circumcenter.lean Modified Mathlib/Geometry/Manifold/Instances/Sphere.lean Modified Mathlib/Geometry/Manifold/IntegralCurve.lean Modified Mathlib/Geometry/Manifold/SmoothManifoldWithCorners.lean Modified Mathlib/Geometry/RingedSpace/OpenImmersion.lean Modified Mathlib/Geometry/RingedSpace/PresheafedSpace/HasColimits.lean Modified Mathlib/GroupTheory/FreeGroup/IsFreeGroup.lean Modified Mathlib/GroupTheory/GroupAction/Hom.lean Modified Mathlib/GroupTheory/GroupAction/SubMulAction.lean Modified Mathlib/GroupTheory/HNNExtension.lean Modified Mathlib/GroupTheory/MonoidLocalization/MonoidWithZero.lean +/- theorem Submonoid.LocalizationMap.subsingleton Modified Mathlib/GroupTheory/PushoutI.lean Modified Mathlib/GroupTheory/SemidirectProduct.lean Modified Mathlib/GroupTheory/Sylow.lean Modified Mathlib/InformationTheory/Hamming.lean Modified Mathlib/Init/Logic.lean +/- def LeftCommutative Modified Mathlib/LinearAlgebra/AffineSpace/ContinuousAffineEquiv.lean +/- theorem ContinuousAffineEquiv.symm_apply_eq Modified Mathlib/LinearAlgebra/CliffordAlgebra/Even.lean Modified Mathlib/LinearAlgebra/Dual.lean Modified Mathlib/LinearAlgebra/Matrix/Charpoly/LinearMap.lean Modified Mathlib/LinearAlgebra/Matrix/GeneralLinearGroup/Defs.lean Modified Mathlib/LinearAlgebra/Matrix/LDL.lean Modified Mathlib/LinearAlgebra/Matrix/SchurComplement.lean Modified Mathlib/LinearAlgebra/Matrix/SesquilinearForm.lean Modified Mathlib/LinearAlgebra/Matrix/Spectrum.lean Modified Mathlib/LinearAlgebra/Matrix/ToLin.lean Modified Mathlib/LinearAlgebra/QuadraticForm/QuadraticModuleCat.lean Modified Mathlib/LinearAlgebra/SesquilinearForm.lean Modified Mathlib/LinearAlgebra/TensorProduct/Basic.lean +/- theorem TensorProduct.lift_comp_comm_eq Modified Mathlib/Logic/Embedding/Set.lean Modified Mathlib/Logic/Encodable/Basic.lean Modified Mathlib/Logic/Equiv/Basic.lean Modified Mathlib/Logic/Equiv/Defs.lean Modified Mathlib/MeasureTheory/Constructions/BorelSpace/Basic.lean Modified Mathlib/MeasureTheory/Function/AEEqFun.lean Modified Mathlib/MeasureTheory/Function/ContinuousMapDense.lean Modified Mathlib/MeasureTheory/Function/LpSpace.lean Modified Mathlib/MeasureTheory/Function/SimpleFunc.lean Modified Mathlib/MeasureTheory/Group/Action.lean Modified Mathlib/MeasureTheory/Group/GeometryOfNumbers.lean Modified Mathlib/MeasureTheory/Integral/Bochner.lean Modified Mathlib/MeasureTheory/Integral/IntegralEqImproper.lean Modified Mathlib/MeasureTheory/Integral/Lebesgue.lean Modified Mathlib/MeasureTheory/Measure/Complex.lean Modified Mathlib/MeasureTheory/Measure/FiniteMeasureProd.lean Modified Mathlib/MeasureTheory/OuterMeasure/Caratheodory.lean Modified Mathlib/MeasureTheory/OuterMeasure/OfFunction.lean Modified Mathlib/ModelTheory/Basic.lean Modified Mathlib/ModelTheory/Fraisse.lean Modified Mathlib/ModelTheory/LanguageMap.lean Modified Mathlib/ModelTheory/Skolem.lean Modified Mathlib/NumberTheory/ArithmeticFunction.lean Modified Mathlib/NumberTheory/Cyclotomic/CyclotomicCharacter.lean +/- theorem ModularCyclotomicCharacter.unique Modified Mathlib/NumberTheory/FLT/Basic.lean +/- theorem dvd_c_of_prime_of_dvd_a_of_dvd_b_of_FLT Modified Mathlib/NumberTheory/FLT/Three.lean Modified Mathlib/NumberTheory/LSeries/RiemannZeta.lean Modified Mathlib/NumberTheory/Liouville/LiouvilleWith.lean Modified Mathlib/NumberTheory/Modular.lean Modified Mathlib/NumberTheory/ModularForms/EisensteinSeries/UniformConvergence.lean Modified Mathlib/NumberTheory/MulChar/Basic.lean Modified Mathlib/NumberTheory/NumberField/CanonicalEmbedding/Basic.lean +/- theorem NumberField.mixedEmbedding.normAtPlace_nonneg Modified Mathlib/NumberTheory/NumberField/CanonicalEmbedding/ConvexBody.lean Modified Mathlib/NumberTheory/NumberField/Embeddings.lean Modified Mathlib/NumberTheory/NumberField/FractionalIdeal.lean +/- theorem NumberField.det_basisOfFractionalIdeal_eq_absNorm Modified Mathlib/NumberTheory/Padics/PadicIntegers.lean Modified Mathlib/Order/Basic.lean Modified Mathlib/Order/CompleteLatticeIntervals.lean Modified Mathlib/Order/ConditionallyCompleteLattice/Basic.lean Modified Mathlib/Order/Directed.lean Modified Mathlib/Order/Filter/Bases.lean Modified Mathlib/Order/Filter/Ultrafilter.lean Modified Mathlib/Order/Hom/Basic.lean Modified Mathlib/Order/KonigLemma.lean Modified Mathlib/Order/Lattice.lean Modified Mathlib/Order/ModularLattice.lean Modified Mathlib/Order/Monotone/Monovary.lean Modified Mathlib/Order/OmegaCompletePartialOrder.lean Modified Mathlib/Order/Partition/Finpartition.lean Modified Mathlib/Order/RelClasses.lean Modified Mathlib/Order/RelSeries.lean Modified Mathlib/Order/SuccPred/Basic.lean Modified Mathlib/Order/SymmDiff.lean Modified Mathlib/Order/Synonym.lean Modified Mathlib/Order/WellFoundedSet.lean Modified Mathlib/Probability/Distributions/Exponential.lean Modified Mathlib/Probability/Distributions/Gaussian.lean Modified Mathlib/Probability/Independence/Basic.lean Modified Mathlib/Probability/Kernel/Disintegration/CondCDF.lean Modified Mathlib/RingTheory/Adjoin/Basic.lean Modified Mathlib/RingTheory/AdjoinRoot.lean Modified Mathlib/RingTheory/Bialgebra/Equiv.lean Modified Mathlib/RingTheory/Bialgebra/Hom.lean Modified Mathlib/RingTheory/Coalgebra/Equiv.lean Modified Mathlib/RingTheory/Coalgebra/Hom.lean Modified Mathlib/RingTheory/DedekindDomain/Factorization.lean +/- theorem FractionalIdeal.count_inv Modified Mathlib/RingTheory/EssentialFiniteness.lean Modified Mathlib/RingTheory/Generators.lean Modified Mathlib/RingTheory/GradedAlgebra/Basic.lean Modified Mathlib/RingTheory/HahnSeries/PowerSeries.lean Modified Mathlib/RingTheory/HahnSeries/Valuation.lean Modified Mathlib/RingTheory/Ideal/Basic.lean Modified Mathlib/RingTheory/Kaehler/Basic.lean Modified Mathlib/RingTheory/LaurentSeries.lean Modified Mathlib/RingTheory/MvPolynomial/WeightedHomogeneous.lean Modified Mathlib/RingTheory/Nakayama.lean Modified Mathlib/RingTheory/NonUnitalSubring/Basic.lean Modified Mathlib/RingTheory/Polynomial/Basic.lean Modified Mathlib/RingTheory/Polynomial/Content.lean Modified Mathlib/RingTheory/PowerSeries/Order.lean Modified Mathlib/RingTheory/Presentation.lean Modified Mathlib/SetTheory/Ordinal/Arithmetic.lean Modified Mathlib/SetTheory/Surreal/Multiplication.lean +/- theorem SetTheory.PGame.Equiv.mul_congr_right Modified Mathlib/Tactic/CC/Datatypes.lean Modified Mathlib/Tactic/CategoryTheory/Reassoc.lean Modified Mathlib/Tactic/DefEqTransformations.lean Modified Mathlib/Tactic/FunProp/ContDiff.lean Modified Mathlib/Tactic/FunProp/Core.lean Modified Mathlib/Tactic/FunProp/Mor.lean +/- def Mathlib.Meta.FunProp.Mor.whnf Modified Mathlib/Tactic/FunProp/Types.lean Modified Mathlib/Tactic/GeneralizeProofs.lean Modified Mathlib/Tactic/HelpCmd.lean Modified Mathlib/Tactic/IrreducibleDef.lean Modified Mathlib/Tactic/Linarith/Preprocessing.lean Modified Mathlib/Tactic/Peel.lean Modified Mathlib/Tactic/SlimCheck.lean Modified Mathlib/Tactic/TermCongr.lean Modified Mathlib/Testing/SlimCheck/Gen.lean Modified Mathlib/Testing/SlimCheck/Sampleable.lean Modified Mathlib/Topology/Algebra/Algebra.lean +/- theorem ContinuousAlgHom.snd_comp_prod Modified Mathlib/Topology/Algebra/InfiniteSum/Module.lean Modified Mathlib/Topology/Algebra/InfiniteSum/NatInt.lean Modified Mathlib/Topology/Algebra/Module/Basic.lean Modified Mathlib/Topology/Algebra/Module/CharacterSpace.lean Modified Mathlib/Topology/Algebra/Ring/Basic.lean Modified Mathlib/Topology/Algebra/UniformGroup.lean Modified Mathlib/Topology/Bases.lean Modified Mathlib/Topology/Basic.lean Modified Mathlib/Topology/Category/Profinite/Basic.lean Modified Mathlib/Topology/Category/Profinite/Nobeling.lean Modified Mathlib/Topology/Category/Stonean/Basic.lean Modified Mathlib/Topology/Compactness/Lindelof.lean Modified Mathlib/Topology/Constructions.lean Modified Mathlib/Topology/ContinuousFunction/Basic.lean Modified Mathlib/Topology/ContinuousFunction/Ordered.lean Modified Mathlib/Topology/DiscreteSubset.lean Modified Mathlib/Topology/EMetricSpace/Basic.lean Modified Mathlib/Topology/FiberBundle/Trivialization.lean Modified Mathlib/Topology/Instances/NNReal.lean Modified Mathlib/Topology/LocallyConstant/Algebra.lean Modified Mathlib/Topology/MetricSpace/Cauchy.lean Modified Mathlib/Topology/MetricSpace/Defs.lean Modified Mathlib/Topology/MetricSpace/GromovHausdorff.lean Modified Mathlib/Topology/MetricSpace/Isometry.lean Modified Mathlib/Topology/MetricSpace/Pseudo/Defs.lean Modified Mathlib/Topology/NhdsSet.lean Modified Mathlib/Topology/Order/UpperLowerSetTopology.lean Modified Mathlib/Topology/PartialHomeomorph.lean Modified Mathlib/Topology/Separation.lean Modified Mathlib/Topology/Sheaves/Presheaf.lean Modified Mathlib/Topology/Specialization.lean Modified Mathlib/Topology/Spectral/Hom.lean Modified Mathlib/Topology/TietzeExtension.lean Modified Mathlib/Topology/UniformSpace/Basic.lean Modified Mathlib/Topology/UniformSpace/CompactConvergence.lean Modified Mathlib/Topology/VectorBundle/Basic.lean Modified test/StringDiagram.lean Modified test/UnusedTactic.lean Modified test/Zify.lean Modified test/finsupp_notation.lean Modified test/instance_diamonds.lean Modified test/polyrith.lean Modified test/recover.lean Modified test/set_like.lean 2024-08-30 06:35:11 f49cbbb chore: lint spaces in a theorem statement (#16292) ESTIMATED CHANGES Modified Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Integral.lean 2024-08-30 01:03:47 5c9109f feat: disjoint union of topological spaces is commutative and associative (#15982) These results are fully analogous to existing results about products, but are missing in mathlib. While at it, also add the four-way commutativity `sumSumSumComm`, whose product analogue is already in mathlib. Extracted from the bordism theory branch (which wants to prove smooth analogues of these results). ESTIMATED CHANGES Modified Mathlib/Logic/Equiv/Basic.lean + def Equiv.sumSumSumComm + theorem Equiv.sumSumSumComm_symm Modified Mathlib/Topology/Constructions.lean + theorem continuous_sum_swap Modified Mathlib/Topology/Homeomorph.lean + theorem Homeomorph.coe_emptySum + theorem Homeomorph.coe_sumComm + theorem Homeomorph.continuous_sumAssoc + theorem Homeomorph.continuous_sumAssoc_symm + def Homeomorph.emptySum + theorem Homeomorph.prodAssoc_toEquiv + def Homeomorph.prodProdProdComm + theorem Homeomorph.prodProdProdComm_symm + def Homeomorph.sumAssoc + theorem Homeomorph.sumAssoc_toEquiv + def Homeomorph.sumComm + theorem Homeomorph.sumComm_symm + def Homeomorph.sumEmpty + def Homeomorph.sumSumSumComm + theorem Homeomorph.sumSumSumComm_symm + theorem Homeomorph.sumSumSumComm_toEquiv 2024-08-30 00:21:25 ea3ee6a chore: rename Finsupp.total (#16277) to `Finsupp.linearCombination`. ESTIMATED CHANGES Modified Archive/Sensitivity.lean Modified Mathlib/Algebra/Algebra/Subalgebra/Operations.lean Modified Mathlib/Algebra/Category/ModuleCat/Projective.lean Modified Mathlib/Algebra/DirectSum/Module.lean Modified Mathlib/Algebra/Lie/BaseChange.lean Modified Mathlib/Algebra/Module/FinitePresentation.lean Modified Mathlib/Algebra/Module/Projective.lean Modified Mathlib/AlgebraicGeometry/StructureSheaf.lean Modified Mathlib/Analysis/InnerProductSpace/Basic.lean - theorem DFinsupp.inner_sum - theorem DFinsupp.sum_inner - theorem Finsupp.inner_sum - theorem Finsupp.sum_inner - theorem OrthogonalFamily.inner_sum - theorem Orthonormal.inner_sum Modified Mathlib/Analysis/InnerProductSpace/Projection.lean Modified Mathlib/Data/Finsupp/Defs.lean Modified Mathlib/Data/Finsupp/Weight.lean Modified Mathlib/FieldTheory/Fixed.lean Modified Mathlib/FieldTheory/IsAlgClosed/AlgebraicClosure.lean Modified Mathlib/FieldTheory/PurelyInseparable.lean Modified Mathlib/LinearAlgebra/AffineSpace/Combination.lean Modified Mathlib/LinearAlgebra/Basis/Basic.lean Modified Mathlib/LinearAlgebra/Basis/Bilinear.lean Modified Mathlib/LinearAlgebra/Basis/Cardinality.lean Modified Mathlib/LinearAlgebra/Basis/Defs.lean +/- theorem Basis.coe_repr_symm + theorem Basis.linearCombination_repr + theorem Basis.repr_linearCombination +/- theorem Basis.repr_symm_apply - theorem Basis.repr_total - theorem Basis.total_repr Modified Mathlib/LinearAlgebra/BilinearForm/Hom.lean Modified Mathlib/LinearAlgebra/BilinearForm/Orthogonal.lean Modified Mathlib/LinearAlgebra/DFinsupp.lean Modified Mathlib/LinearAlgebra/Dimension/Constructions.lean Modified Mathlib/LinearAlgebra/Dimension/DivisionRing.lean Modified Mathlib/LinearAlgebra/Dimension/Finite.lean Modified Mathlib/LinearAlgebra/Dimension/StrongRankCondition.lean Modified Mathlib/LinearAlgebra/Dual.lean + theorem Basis.linearCombination_coord + theorem Basis.linearCombination_dualBasis + theorem Basis.toDual_linearCombination_left + theorem Basis.toDual_linearCombination_right - theorem Basis.toDual_total_left - theorem Basis.toDual_total_right - theorem Basis.total_coord - theorem Basis.total_dualBasis +/- theorem Module.DualBases.lc_def Modified Mathlib/LinearAlgebra/Finsupp.lean + theorem Finsupp.apply_linearCombination + theorem Finsupp.apply_linearCombination_id - theorem Finsupp.apply_total - theorem Finsupp.apply_total_id + def Finsupp.linearCombination + def Finsupp.linearCombinationOn + theorem Finsupp.linearCombinationOn_range + theorem Finsupp.linearCombination_apply + theorem Finsupp.linearCombination_apply_of_mem_supported + theorem Finsupp.linearCombination_comapDomain + theorem Finsupp.linearCombination_comp + theorem Finsupp.linearCombination_comp_lmapDomain + theorem Finsupp.linearCombination_embDomain + theorem Finsupp.linearCombination_eq_fintype_linearCombination + theorem Finsupp.linearCombination_eq_fintype_linearCombination_apply + theorem Finsupp.linearCombination_equivMapDomain + theorem Finsupp.linearCombination_fin_zero + theorem Finsupp.linearCombination_id_surjective + theorem Finsupp.linearCombination_linearCombination + theorem Finsupp.linearCombination_mapDomain + theorem Finsupp.linearCombination_onFinset + theorem Finsupp.linearCombination_option + theorem Finsupp.linearCombination_range + theorem Finsupp.linearCombination_single + theorem Finsupp.linearCombination_surjective + theorem Finsupp.linearCombination_unique + theorem Finsupp.linearCombination_zero + theorem Finsupp.linearCombination_zero_apply + theorem Finsupp.lmapDomain_linearCombination - theorem Finsupp.lmapDomain_total + theorem Finsupp.mem_span_iff_linearCombination - theorem Finsupp.mem_span_iff_total + theorem Finsupp.mem_span_image_iff_linearCombination - theorem Finsupp.mem_span_image_iff_total + theorem Finsupp.range_linearCombination - theorem Finsupp.range_total + theorem Finsupp.span_eq_range_linearCombination - theorem Finsupp.span_eq_range_total + theorem Finsupp.span_image_eq_map_linearCombination - theorem Finsupp.span_image_eq_map_total - theorem Finsupp.totalOn_range - theorem Finsupp.total_apply - theorem Finsupp.total_apply_of_mem_supported - theorem Finsupp.total_comapDomain - theorem Finsupp.total_comp - theorem Finsupp.total_comp_lmapDomain - theorem Finsupp.total_embDomain - theorem Finsupp.total_eq_fintype_total - theorem Finsupp.total_eq_fintype_total_apply - theorem Finsupp.total_equivMapDomain - theorem Finsupp.total_fin_zero - theorem Finsupp.total_id_surjective - theorem Finsupp.total_mapDomain - theorem Finsupp.total_onFinset - theorem Finsupp.total_option - theorem Finsupp.total_range - theorem Finsupp.total_single - theorem Finsupp.total_surjective - theorem Finsupp.total_total - theorem Finsupp.total_unique - theorem Finsupp.total_zero - theorem Finsupp.total_zero_apply + theorem Fintype.linearCombination_apply + theorem Fintype.linearCombination_apply_single + theorem Fintype.range_linearCombination - theorem Fintype.range_total - theorem Fintype.total_apply - theorem Fintype.total_apply_single + theorem LinearMap.map_finsupp_linearCombination - theorem LinearMap.map_finsupp_total + theorem Span.finsupp_linearCombination_repr - theorem Span.finsupp_total_repr Modified Mathlib/LinearAlgebra/FreeModule/Basic.lean Modified Mathlib/LinearAlgebra/LinearDisjoint.lean Modified Mathlib/LinearAlgebra/LinearIndependent.lean + def LinearIndependent.linearCombinationEquiv + theorem LinearIndependent.linearCombinationEquiv_apply_coe + theorem LinearIndependent.linearCombination_comp_repr + theorem LinearIndependent.linearCombination_ne_of_not_mem_support + theorem LinearIndependent.linearCombination_repr - def LinearIndependent.totalEquiv - theorem LinearIndependent.totalEquiv_apply_coe - theorem LinearIndependent.total_comp_repr - theorem LinearIndependent.total_ne_of_not_mem_support - theorem LinearIndependent.total_repr + theorem linearIndependent_iff_injective_linearCombination - theorem linearIndependent_iff_injective_total + theorem linearIndependent_iff_linearCombinationOn - theorem linearIndependent_iff_totalOn Modified Mathlib/LinearAlgebra/Matrix/Charpoly/LinearMap.lean Modified Mathlib/LinearAlgebra/Matrix/GeneralLinearGroup/Card.lean Modified Mathlib/LinearAlgebra/QuadraticForm/Basis.lean Modified Mathlib/LinearAlgebra/SesquilinearForm.lean Modified Mathlib/LinearAlgebra/TensorAlgebra/Basis.lean Modified Mathlib/LinearAlgebra/TensorProduct/Submodule.lean Modified Mathlib/LinearAlgebra/TensorProduct/Vanishing.lean Modified Mathlib/NumberTheory/KummerDedekind.lean Modified Mathlib/RepresentationTheory/GroupCohomology/Hilbert90.lean Modified Mathlib/RepresentationTheory/GroupCohomology/Resolution.lean Modified Mathlib/RingTheory/Adjoin/Basic.lean Modified Mathlib/RingTheory/Adjoin/FG.lean Modified Mathlib/RingTheory/AlgebraicIndependent.lean Modified Mathlib/RingTheory/Artinian.lean Modified Mathlib/RingTheory/Filtration.lean Modified Mathlib/RingTheory/Finiteness.lean Modified Mathlib/RingTheory/Flat/EquationalCriterion.lean Modified Mathlib/RingTheory/GradedAlgebra/HomogeneousIdeal.lean Modified Mathlib/RingTheory/Ideal/Basic.lean Modified Mathlib/RingTheory/Ideal/Operations.lean Modified Mathlib/RingTheory/Kaehler/Basic.lean + theorem KaehlerDifferential.derivationQuotKerTotal_lift_comp_linearCombination - theorem KaehlerDifferential.derivationQuotKerTotal_lift_comp_total + theorem KaehlerDifferential.linearCombination_surjective - theorem KaehlerDifferential.total_surjective Modified Mathlib/RingTheory/Kaehler/Polynomial.lean Modified Mathlib/RingTheory/LocalRing/Module.lean Modified Mathlib/RingTheory/MvPolynomial/Homogeneous.lean Modified Mathlib/RingTheory/MvPolynomial/WeightedHomogeneous.lean Modified Mathlib/RingTheory/Noetherian.lean Modified Mathlib/RingTheory/Polynomial/Basic.lean Modified Mathlib/RingTheory/PowerBasis.lean Modified Mathlib/RingTheory/RingHom/FinitePresentation.lean Modified Mathlib/RingTheory/RingHom/FiniteType.lean Modified Mathlib/RingTheory/RingHom/Surjective.lean Modified Mathlib/RingTheory/SimpleModule.lean Modified Mathlib/RingTheory/Unramified/Finite.lean Modified Mathlib/Topology/Category/Profinite/Nobeling.lean 2024-08-30 00:10:32 99771c3 chore: update Mathlib dependencies 2024-08-29 (#16261) This PR updates the Mathlib dependencies. ESTIMATED CHANGES Modified lake-manifest.json 2024-08-29 21:20:44 b03feaa feat(ContinuousFunctionalCalculus): show that the non-unital CFC commutes with integration (#16255) This PR shows that `cfcₙ (fun r => ∫ x, f x r ∂μ) a = ∫ x, cfcₙ(f x) a ∂μ` under appropriate conditions. Note that #16013 (already merged) showed the corresponding result for the unital CFC. ESTIMATED CHANGES Modified Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Integral.lean +/- theorem cfcHom_integral +/- theorem cfcL_integral + theorem cfcₙHom_integral + theorem cfcₙL_integral + theorem cfcₙ_integral' + theorem cfcₙ_integral Modified Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/NonUnital.lean Modified Mathlib/MeasureTheory/Integral/SetIntegral.lean +/- theorem ContinuousMap.integral_apply + theorem ContinuousMapZero.integral_apply 2024-08-29 21:20:42 b280d91 feat(Data.ZMod): More lemmas about `ZMod.val` (#14327) ESTIMATED CHANGES Modified Mathlib/Combinatorics/Schnirelmann.lean Modified Mathlib/Data/Nat/Defs.lean + theorem Nat.one_mod_eq_one +/- theorem Nat.one_mod_of_ne_one Modified Mathlib/Data/ZMod/Basic.lean + theorem ZMod.val_cast_zmod_lt + theorem ZMod.val_eq_one + theorem ZMod.val_mul_iff_lt + theorem ZMod.val_pos + theorem ZMod.val_pow + theorem ZMod.val_pow_le Modified scripts/style-exceptions.txt 2024-08-29 19:52:31 0844193 feat: `NNReal.coe_nnqsmul` (#16247) From LeanAPAP ESTIMATED CHANGES Modified Mathlib/Data/NNReal/Basic.lean + theorem NNReal.coe_nnqsmul 2024-08-29 19:52:29 c995ab6 feat (Algebra/Module/Submodule/Equiv) : add apply_ofBijective_symm_apply (#16200) This PR adds a version of the immediately previous lemma with the order of map and inverse reversed. ESTIMATED CHANGES Modified Mathlib/Algebra/Module/Submodule/Equiv.lean + theorem LinearEquiv.apply_ofBijective_symm_apply 2024-08-29 19:52:28 802301f feat: prove that a meromorphic function is eventually analytic (#14820) Prove that a meromorphic function at a point is analytic on a punctured neighborhood of it, and that a meromorphic function on a set is analytic on a codiscrete subset of it. ESTIMATED CHANGES Modified Mathlib/Analysis/Analytic/Meromorphic.lean + theorem MeromorphicAt.eventually_analyticAt + theorem MeromorphicOn.eventually_codiscreteWithin_analyticAt 2024-08-29 18:57:21 caab70e chore: remove the text-based line length linter (#16269) It is superseded by the longLine syntax linter, which is imported transitively in every file. ESTIMATED CHANGES Modified Mathlib/Tactic/Linter/TextBased.lean - def Mathlib.Linter.TextBased.checkFileLength Modified scripts/style-exceptions.txt 2024-08-29 18:57:19 f0104a0 feat(CategoryTheory.Bicategory.Strict): remove simp attribute from `associator_eqToIso` (#16251) Context: https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/.60comp_id.60.20in.20.60Cat.60/near/444866404 ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Bicategory/LocallyDiscrete.lean Modified Mathlib/CategoryTheory/Bicategory/Strict.lean 2024-08-29 18:57:18 606cfb3 feat(CategoryTheory/Monoida): add lemmas for `tensorIso` (#15681) Also rename `CategoryTheory.tensorIso` to `CategoryTheory.MonoidalCategory.tensorIso`. ESTIMATED CHANGES Modified Mathlib/Algebra/Category/AlgebraCat/Monoidal.lean Modified Mathlib/CategoryTheory/Monoidal/Category.lean + def CategoryTheory.MonoidalCategory.tensorIso + theorem CategoryTheory.MonoidalCategory.tensorIso_def' + theorem CategoryTheory.MonoidalCategory.tensorIso_def - def CategoryTheory.tensorIso Modified Mathlib/LinearAlgebra/QuadraticForm/QuadraticModuleCat/Monoidal.lean 2024-08-29 16:54:34 92f9ab8 feat (MeasureTheory.Integral): Generalize lemmas to `setIntegral` and `setLIntegral` (#15551) Add versions of existing lemmas for integrals restricted to a set, in particular: - `setIntegral_rnDeriv_smul`. - `setIntegral_zero_measure`. - `setLIntegral_eq_zero_iff'` and `setLIntegral_eq_zero_iff`. ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Decomposition/RadonNikodym.lean + theorem MeasureTheory.setIntegral_rnDeriv_smul Modified Mathlib/MeasureTheory/Integral/Bochner.lean + theorem MeasureTheory.setIntegral_zero_measure Modified Mathlib/MeasureTheory/Integral/Lebesgue.lean + theorem MeasureTheory.setLIntegral_eq_zero_iff' + theorem MeasureTheory.setLIntegral_eq_zero_iff 2024-08-29 16:54:33 37864dd feat(EReal): rework limsup_add properties (#15261) Rework of properties about iSup/iInf/limsup/liminf and addition in extended reals: - A key property about addition and order has been abstracted away in Data.Real.Ereal. Three new lemmas `add_le_of_forall_lt_add_top`, `add_le_of_forall_lt_add`, `le_add_of_forall_gt_add`. The first one is private (generalized by the second one). - These new lemmas allow for _very_ streamlined proofs of `add_liminf_le_liminf_add` and `limsup_add_le_add_limsup` in Topology.instances.EReal. I've also deleted a few intermediate lemmas which are not needed anymore. - These new lemmas also allow for short proofs of a few more useful lemmas: `add_iInf_le_iInf_add`, `iSup_add_le_add_iSup` about Inf/Sup, and `limsup_add_liminf_le_limsup_add`, `liminf_add_le_limsup_add_liminf` about limsup/liminf. ESTIMATED CHANGES Modified Mathlib/Data/Real/EReal.lean + theorem EReal.add_le_of_forall_add_le - theorem EReal.ge_iff_le_forall_real_lt + theorem EReal.ge_of_forall_gt_iff_ge + theorem EReal.le_add_of_forall_le_add - theorem EReal.le_iff_le_forall_real_gt + theorem EReal.le_of_forall_lt_iff_le Modified Mathlib/Order/WithBot.lean + theorem WithBot.forall_le_iff_eq_bot + theorem WithBot.ge_of_forall_gt_iff_ge + theorem WithBot.le_of_forall_lt_iff_le + theorem WithTop.forall_ge_iff_eq_top + theorem WithTop.forall_gt_iff_eq_top - theorem WithTop.forall_lt_iff_eq_top + theorem WithTop.ge_of_forall_gt_iff_ge + theorem WithTop.le_of_forall_lt_iff_le Modified Mathlib/Topology/Instances/EReal.lean + theorem EReal.add_iInf_le_iInf_add + theorem EReal.iSup_add_le_add_iSup + theorem EReal.liminf_add_le_limsup_add_liminf - theorem EReal.liminf_le_liminf +/- theorem EReal.limsup_add_le_add_limsup + theorem EReal.limsup_add_liminf_le_limsup_add - theorem EReal.limsup_add_lt_of_lt - theorem EReal.limsup_le_limsup 2024-08-29 15:19:39 015472f chore: import enabled mathlib syntax linters in `Mathlib.Init` (#15845) These linters are meant to run on all of mathlib, but they need to be imported in order to run on a given file. Hence, move them to `Mathlib.Init`, which has precisely this purpose. All linters moved in this PR are syntax linters (which need to be imported to run) which are enabled by default. Linters missing from this list include - Linter/Textbased (which is not syntax-based) - Linter/MinImports (which is off by default) - Linter/HaveLet (which is disabled right now) All linters only have imports in `Lean`, except for `Linter/Lint` (which imports `Batteries.Tactic.Lint` to define an environment linter). This import could be avoided by splitting the environment linters into a different file; there is no need to import these syntax linters this early. ESTIMATED CHANGES Modified Mathlib/Init.lean Modified Mathlib/Tactic/Linter.lean Modified Mathlib/Tactic/Linter/GlobalAttributeIn.lean Modified Mathlib/Tactic/Linter/HashCommandLinter.lean Modified Mathlib/Tactic/Linter/Lint.lean Modified Mathlib/Tactic/Linter/OldObtain.lean Modified Mathlib/Tactic/Linter/RefineLinter.lean Modified Mathlib/Tactic/Linter/Style.lean Modified Mathlib/Tactic/Linter/UnusedTactic.lean Modified Mathlib/Tactic/Subsingleton.lean Modified Mathlib/Util/SleepHeartbeats.lean Modified test/Change.lean Modified test/Check.lean Modified test/Clear!.lean Modified test/ClearExcept.lean Modified test/Clear_.lean Modified test/DefEqTransformations.lean Modified test/DeriveToExpr.lean Modified test/ExtractGoal.lean Modified test/ExtractLets.lean Modified test/GuardGoalNums.lean Modified test/GuardHypNums.lean Modified test/HashCommandLinter.lean Modified test/Lint.lean Modified test/MfldSetTac.lean Modified test/MinImports.lean Modified test/SimpRw.lean Modified test/SplitIfs.lean Modified test/TermBeta.lean Modified test/TypeCheck.lean Modified test/UnsetOption.lean Modified test/Use.lean Modified test/basicTactics.lean Modified test/casesm.lean Modified test/convert.lean Modified test/fail_if_no_progress.lean Modified test/fun_prop_dev.lean Modified test/itauto.lean Modified test/meta.lean Modified test/notation3.lean Modified test/recover.lean Modified test/says.lean Modified test/symm.lean Modified test/trace.lean Modified test/trans.lean 2024-08-29 15:19:38 3be9b86 feat: asymptotics on product filters (#10352) Content from PNT. [Motivating example](https://github.com/AlexKontorovich/PrimeNumberTheoremAnd/blob/15f08ef06df37286bf8636b4573e84f69994aa4b/PrimeNumberTheoremAnd/PerronFormula.lean#L385-L503) is asymptotics of an integral along x, as y -> some filter. ESTIMATED CHANGES Modified Mathlib/Analysis/Asymptotics/Asymptotics.lean Modified Mathlib/Analysis/Asymptotics/Theta.lean + theorem Asymptotics.isTheta_bot Modified Mathlib/MeasureTheory/Integral/Asymptotics.lean + theorem Asymptotics.IsBigO.eventually_integrableOn + theorem Asymptotics.IsBigO.set_integral_isBigO 2024-08-29 15:09:14 6ce4187 feat(Computability): define `Language.IsRegular` (#13554) This PR defines a predicate `Language.IsRegular` in a similar way `Language.IsContextFree` is defined. ESTIMATED CHANGES Modified Mathlib/Computability/DFA.lean + def Language.IsRegular 2024-08-29 14:12:42 a9c2d4f chore: use builtin `HashMap` in `cc` tactic (#16235) ESTIMATED CHANGES Modified Mathlib/Tactic/CC/Addition.lean Modified Mathlib/Tactic/CC/Datatypes.lean Modified Mathlib/Tactic/Linarith/Datatypes.lean Modified Mathlib/Tactic/Sat/FromLRAT.lean 2024-08-29 13:30:37 6da6b55 chore: update Mathlib dependencies 2024-08-29 (#16243) This PR updates the Mathlib dependencies. ESTIMATED CHANGES Modified lake-manifest.json 2024-08-29 12:34:34 9427959 feat: Conditioning an event by itself (#16249) From LeanAPAP ESTIMATED CHANGES Modified Mathlib/Probability/ConditionalProbability.lean + theorem ProbabilityTheory.cond_apply_self 2024-08-29 12:34:33 fc60554 feat: generalize tower instances for `ℚ` (#16233) Also add them for `ℚ≥0` by blind copy-paste. ESTIMATED CHANGES Modified Mathlib/Algebra/Module/Rat.lean + theorem map_nnratCast_smul + theorem map_nnrat_smul + theorem nnratCast_smul_eq 2024-08-29 12:34:32 cc59ee8 chore: move some IsIntegral results earlier (#16229) The first section of `Mathlib.RingTheory.IntegralClosure.IsIntegralClosure.Basic` contained results that could just as easily go into earlier files. ESTIMATED CHANGES Modified Mathlib/RingTheory/IntegralClosure/Algebra/Basic.lean + theorem Algebra.IsIntegral.of_injective + theorem RingHom.Finite.to_isIntegral + theorem isIntegral_of_noetherian + theorem isIntegral_of_smul_mem_submodule + theorem isIntegral_of_submodule_noetherian Modified Mathlib/RingTheory/IntegralClosure/IsIntegral/Basic.lean + theorem IsIntegral.map_of_comp_eq + theorem IsIntegral.of_subring + theorem IsIntegral.tower_top + theorem fg_adjoin_of_finite + theorem isIntegral_algEquiv + theorem isIntegral_algebraMap_iff + theorem isIntegral_iff_isIntegral_closure_finite + theorem isNoetherian_adjoin_finset + theorem map_isIntegral_int Modified Mathlib/RingTheory/IntegralClosure/IsIntegralClosure/Basic.lean - theorem Algebra.IsIntegral.of_injective - theorem IsIntegral.map_of_comp_eq - theorem IsIntegral.of_subring - theorem IsIntegral.tower_top - theorem RingHom.Finite.to_isIntegral - theorem fg_adjoin_of_finite - theorem isIntegral_algEquiv - theorem isIntegral_algebraMap_iff - theorem isIntegral_iff_isIntegral_closure_finite - theorem isIntegral_of_noetherian - theorem isIntegral_of_smul_mem_submodule - theorem isIntegral_of_submodule_noetherian - theorem isNoetherian_adjoin_finset - theorem map_isIntegral_int 2024-08-29 12:34:31 923cc7a feat(Order/*): `CovBy` and `OrderIso` (#16222) We show that order isomorphisms map maximum elements, the covering relation, and successors. ESTIMATED CHANGES Modified Mathlib/Order/Cover.lean + theorem OrderEmbedding.covBy_of_apply + theorem OrderEmbedding.wcovBy_of_apply + theorem OrderIso.map_covBy + theorem OrderIso.map_wcovBy Modified Mathlib/Order/Hom/Basic.lean + theorem OrderIso.isMax_apply + theorem OrderIso.isMin_apply Modified Mathlib/Order/SuccPred/Basic.lean + theorem OrderIso.map_pred + theorem OrderIso.map_succ 2024-08-29 12:34:30 afff9c9 feat(Countable): prove `Countable ENat` (#16218) ESTIMATED CHANGES Modified Mathlib/Data/Countable/Basic.lean 2024-08-29 12:34:28 3eea635 feat(RCLike): `nnnorm` lemmas (#16144) From LeanAPAP ESTIMATED CHANGES Modified Mathlib/Analysis/Complex/AbelLimit.lean Modified Mathlib/Analysis/Complex/Basic.lean - theorem Complex.nnnorm_int + theorem Complex.nnnorm_intCast - theorem Complex.nnnorm_nat + theorem Complex.nnnorm_natCast + theorem Complex.nnnorm_nnratCast + theorem Complex.nnnorm_ofNat + theorem Complex.nnnorm_ratCast +/- theorem Complex.nnnorm_real - theorem Complex.norm_int + theorem Complex.norm_intCast - theorem Complex.norm_nat + theorem Complex.norm_natCast + theorem Complex.norm_nnratCast + theorem Complex.norm_ofNat - theorem Complex.norm_rat + theorem Complex.norm_ratCast +/- theorem Complex.norm_real Modified Mathlib/Analysis/Normed/Group/Basic.lean +/- theorem Real.nnnorm_natCast + theorem Real.nnnorm_nnratCast + theorem Real.nnnorm_ofNat +/- theorem Real.nnnorm_two +/- theorem Real.norm_natCast + theorem Real.norm_nnratCast + theorem Real.norm_ofNat +/- theorem Real.norm_two Modified Mathlib/Analysis/RCLike/Basic.lean + theorem RCLike.nnnorm_conj + theorem RCLike.nnnorm_natCast + theorem RCLike.nnnorm_nnqsmul + theorem RCLike.nnnorm_nnratCast + theorem RCLike.nnnorm_nsmul + theorem RCLike.nnnorm_ofNat + theorem RCLike.nnnorm_two +/- theorem RCLike.norm_conj + theorem RCLike.norm_nnqsmul + theorem RCLike.norm_nnratCast +/- theorem RCLike.norm_two + theorem RCLike.ofReal_nnratCast Modified Mathlib/Analysis/SpecialFunctions/Complex/LogBounds.lean Modified Mathlib/NumberTheory/NumberField/Discriminant.lean 2024-08-29 12:34:27 465b54f chore: Rename `GroupTheory.GroupAction.Group` to `Algebra.BigOperators.GroupWithZero.Action` (#15983) ESTIMATED CHANGES Modified Mathlib.lean Renamed Mathlib/GroupTheory/GroupAction/BigOperators.lean to Mathlib/Algebra/BigOperators/GroupWithZero/Action.lean Modified Mathlib/Algebra/Module/BigOperators.lean Modified Mathlib/Algebra/TrivSqZeroExt.lean Modified Mathlib/Data/DFinsupp/Basic.lean Modified Mathlib/Data/Matrix/Basic.lean Modified Mathlib/LinearAlgebra/Pi.lean 2024-08-29 10:45:13 66bb69d chore: split out Data.Nat.Sqrt (#16237) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Group/Nat.lean Modified Mathlib/Data/Int/Sqrt.lean Modified Mathlib/Data/Nat/Defs.lean - theorem Nat.eq_sqrt' - theorem Nat.eq_sqrt - theorem Nat.exists_mul_self' - theorem Nat.exists_mul_self - theorem Nat.le_sqrt' - theorem Nat.le_sqrt - theorem Nat.le_three_of_sqrt_eq_one - theorem Nat.lt_succ_sqrt' - theorem Nat.lt_succ_sqrt - theorem Nat.not_exists_sq' - theorem Nat.not_exists_sq - theorem Nat.sqrt.iter_sq_le - theorem Nat.sqrt.lt_iter_succ_sq - theorem Nat.sqrt_add_eq' - theorem Nat.sqrt_add_eq - theorem Nat.sqrt_eq' - theorem Nat.sqrt_eq - theorem Nat.sqrt_eq_zero - theorem Nat.sqrt_le' - theorem Nat.sqrt_le - theorem Nat.sqrt_le_add - theorem Nat.sqrt_le_self - theorem Nat.sqrt_le_sqrt - theorem Nat.sqrt_lt' - theorem Nat.sqrt_lt - theorem Nat.sqrt_lt_self - theorem Nat.sqrt_mul_sqrt_lt_succ' - theorem Nat.sqrt_mul_sqrt_lt_succ - theorem Nat.sqrt_one - theorem Nat.sqrt_pos - theorem Nat.sqrt_succ_le_succ_sqrt - theorem Nat.sqrt_zero - theorem Nat.succ_le_succ_sqrt' - theorem Nat.succ_le_succ_sqrt Modified Mathlib/Data/Nat/Pairing.lean Added Mathlib/Data/Nat/Sqrt.lean + theorem Nat.eq_sqrt' + theorem Nat.eq_sqrt + theorem Nat.exists_mul_self' + theorem Nat.exists_mul_self + theorem Nat.le_sqrt' + theorem Nat.le_sqrt + theorem Nat.le_three_of_sqrt_eq_one + theorem Nat.lt_succ_sqrt' + theorem Nat.lt_succ_sqrt + theorem Nat.not_exists_sq' + theorem Nat.not_exists_sq + theorem Nat.sqrt.iter_sq_le + theorem Nat.sqrt.lt_iter_succ_sq + theorem Nat.sqrt_add_eq' + theorem Nat.sqrt_add_eq + theorem Nat.sqrt_eq' + theorem Nat.sqrt_eq + theorem Nat.sqrt_eq_zero + theorem Nat.sqrt_le' + theorem Nat.sqrt_le + theorem Nat.sqrt_le_add + theorem Nat.sqrt_le_self + theorem Nat.sqrt_le_sqrt + theorem Nat.sqrt_lt' + theorem Nat.sqrt_lt + theorem Nat.sqrt_lt_self + theorem Nat.sqrt_mul_sqrt_lt_succ' + theorem Nat.sqrt_mul_sqrt_lt_succ + theorem Nat.sqrt_one + theorem Nat.sqrt_pos + theorem Nat.sqrt_succ_le_succ_sqrt + theorem Nat.sqrt_zero + theorem Nat.succ_le_succ_sqrt' + theorem Nat.succ_le_succ_sqrt 2024-08-29 10:45:12 c4170dc chore: remove two unused imports (#16236) ESTIMATED CHANGES Modified Mathlib/Data/List/ProdSigma.lean Modified Mathlib/Data/List/Range.lean 2024-08-29 08:05:55 11329ef feat: the space of continuous maps is complete if the target is complete (#16224) ESTIMATED CHANGES Modified Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Instances.lean Modified Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/NonUnital.lean Modified Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Restrict.lean Modified Mathlib/Topology/ContinuousFunction/Compact.lean Modified Mathlib/Topology/RestrictGenTopology.lean + theorem RestrictGenTopology.isCompact_of_weaklyLocallyCompact + theorem RestrictGenTopology.of_nhds Modified Mathlib/Topology/UniformSpace/CompactConvergence.lean + theorem ContinuousMap.completeSpace_of_restrictGenTopology + theorem ContinuousMap.range_toUniformOnFunIsCompact 2024-08-29 07:15:22 a93d39d chore: deprime `induction` and `cases` up to `Algebra.Lie` (#16189) ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/Basic.lean Modified Mathlib/Algebra/Algebra/Subalgebra/Pointwise.lean Modified Mathlib/Algebra/Algebra/Subalgebra/Unitization.lean Modified Mathlib/Algebra/Algebra/Unitization.lean Modified Mathlib/Algebra/Associated/Basic.lean Modified Mathlib/Algebra/BigOperators/Associated.lean Modified Mathlib/Algebra/BigOperators/Fin.lean Modified Mathlib/Algebra/BigOperators/Finsupp.lean Modified Mathlib/Algebra/BigOperators/Group/Finset.lean Modified Mathlib/Algebra/BigOperators/Group/List.lean Modified Mathlib/Algebra/BigOperators/Group/Multiset.lean Modified Mathlib/Algebra/BigOperators/GroupWithZero/Finset.lean Modified Mathlib/Algebra/BigOperators/Intervals.lean Modified Mathlib/Algebra/BigOperators/Ring.lean Modified Mathlib/Algebra/BigOperators/Ring/List.lean Modified Mathlib/Algebra/Category/Grp/FilteredColimits.lean Modified Mathlib/Algebra/Category/ModuleCat/ChangeOfRings.lean Modified Mathlib/Algebra/Category/ModuleCat/FilteredColimits.lean Modified Mathlib/Algebra/Category/MonCat/Colimits.lean Modified Mathlib/Algebra/Category/MonCat/FilteredColimits.lean Modified Mathlib/Algebra/Category/Ring/FilteredColimits.lean Modified Mathlib/Algebra/CharP/ExpChar.lean Modified Mathlib/Algebra/CharP/LocalRing.lean Modified Mathlib/Algebra/ContinuedFractions/Computation/ApproximationCorollaries.lean Modified Mathlib/Algebra/ContinuedFractions/Computation/Approximations.lean Modified Mathlib/Algebra/ContinuedFractions/Computation/TerminatesIffRat.lean Modified Mathlib/Algebra/ContinuedFractions/Computation/Translations.lean Modified Mathlib/Algebra/ContinuedFractions/ConvergentsEquiv.lean Modified Mathlib/Algebra/DirectLimit.lean Modified Mathlib/Algebra/DirectSum/Decomposition.lean Modified Mathlib/Algebra/DirectSum/Ring.lean Modified Mathlib/Algebra/EuclideanDomain/Basic.lean Modified Mathlib/Algebra/GCDMonoid/Basic.lean Modified Mathlib/Algebra/GCDMonoid/Finset.lean Modified Mathlib/Algebra/GCDMonoid/Multiset.lean Modified Mathlib/Algebra/GCDMonoid/Nat.lean Modified Mathlib/Algebra/GeomSum.lean Modified Mathlib/Algebra/Group/NatPowAssoc.lean Modified Mathlib/Algebra/Group/Subgroup/Finite.lean Modified Mathlib/Algebra/Group/Submonoid/Membership.lean Modified Mathlib/Algebra/Lie/Engel.lean Modified Mathlib/Algebra/Lie/Submodule.lean Modified Mathlib/Algebra/Lie/TraceForm.lean Modified Mathlib/Algebra/Lie/UniversalEnveloping.lean Modified Mathlib/Algebra/Lie/Weights/Basic.lean Modified Mathlib/Algebra/Lie/Weights/Chain.lean Modified Mathlib/Algebra/Periodic.lean Modified Mathlib/Algebra/Quandle.lean Modified Mathlib/Algebra/TrivSqZeroExt.lean 2024-08-29 06:53:48 4fd26e9 feat: add a new class `IsZeroOrProbabilityMeasure` (#16130) The need for this class has shown up in PFR: when conditioning on a set, one gets a measure which is either zero or a probability measure, and many results that hold for probability measures also hold trivially for the zero measure. ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Measure/MeasureSpace.lean + theorem MeasureTheory.Measure.comap_zero +/- theorem MeasureTheory.OuterMeasure.toMeasure_zero Modified Mathlib/MeasureTheory/Measure/Typeclasses.lean + theorem MeasureTheory.eq_zero_or_isProbabilityMeasure + theorem MeasureTheory.isZeroOrProbabilityMeasure_iff +/- theorem MeasureTheory.one_le_prob_iff +/- theorem MeasureTheory.prob_le_one Modified Mathlib/Probability/CDF.lean Modified Mathlib/Probability/CondCount.lean Modified Mathlib/Probability/ConditionalProbability.lean Modified Mathlib/Probability/Independence/ZeroOne.lean Modified Mathlib/Probability/Moments.lean +/- theorem ProbabilityTheory.centralMoment_one +/- theorem ProbabilityTheory.cgf_zero +/- theorem ProbabilityTheory.iIndepFun.cgf_sum +/- theorem ProbabilityTheory.iIndepFun.integrable_exp_mul_sum +/- theorem ProbabilityTheory.iIndepFun.mgf_sum Modified scripts/style-exceptions.txt 2024-08-29 06:44:43 f29bd08 chore: turn `induction'` into `induction` (#16182) This PR turns `induction'` (soon to be deprecated) into `induction`. ESTIMATED CHANGES Modified Mathlib/Algebra/FreeAlgebra.lean Modified Mathlib/Algebra/Group/Conj.lean Modified Mathlib/Algebra/Lie/CartanSubalgebra.lean Modified Mathlib/Algebra/Lie/Nilpotent.lean Modified Mathlib/Algebra/Lie/Solvable.lean Modified Mathlib/Algebra/Module/LinearMap/End.lean Modified Mathlib/Algebra/Module/Submodule/Map.lean Modified Mathlib/Algebra/Order/Ring/Basic.lean Modified Mathlib/Algebra/Polynomial/Basic.lean Modified Mathlib/Algebra/Polynomial/Degree/Lemmas.lean Modified Mathlib/Algebra/Polynomial/Derivative.lean Modified Mathlib/Algebra/Polynomial/Eval.lean Modified Mathlib/Algebra/Quandle.lean 2024-08-29 06:34:38 8cebd9e revert accidental pushes to master (#16242) ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Nat.lean Modified Mathlib/Data/Int/Sqrt.lean Modified Mathlib/Data/Nat/Defs.lean + theorem Nat.eq_sqrt' + theorem Nat.eq_sqrt + theorem Nat.exists_mul_self' + theorem Nat.exists_mul_self + theorem Nat.le_sqrt' + theorem Nat.le_sqrt + theorem Nat.le_three_of_sqrt_eq_one + theorem Nat.lt_succ_sqrt' + theorem Nat.lt_succ_sqrt + theorem Nat.not_exists_sq' + theorem Nat.not_exists_sq + theorem Nat.sqrt.iter_sq_le + theorem Nat.sqrt.lt_iter_succ_sq + theorem Nat.sqrt_add_eq' + theorem Nat.sqrt_add_eq + theorem Nat.sqrt_eq' + theorem Nat.sqrt_eq + theorem Nat.sqrt_eq_zero + theorem Nat.sqrt_le' + theorem Nat.sqrt_le + theorem Nat.sqrt_le_add + theorem Nat.sqrt_le_self + theorem Nat.sqrt_le_sqrt + theorem Nat.sqrt_lt' + theorem Nat.sqrt_lt + theorem Nat.sqrt_lt_self + theorem Nat.sqrt_mul_sqrt_lt_succ' + theorem Nat.sqrt_mul_sqrt_lt_succ + theorem Nat.sqrt_one + theorem Nat.sqrt_pos + theorem Nat.sqrt_succ_le_succ_sqrt + theorem Nat.sqrt_zero + theorem Nat.succ_le_succ_sqrt' + theorem Nat.succ_le_succ_sqrt Modified Mathlib/Data/Nat/Pairing.lean Deleted Mathlib/Data/Nat/Sqrt.lean - theorem Nat.eq_sqrt' - theorem Nat.eq_sqrt - theorem Nat.exists_mul_self' - theorem Nat.exists_mul_self - theorem Nat.le_sqrt' - theorem Nat.le_sqrt - theorem Nat.le_three_of_sqrt_eq_one - theorem Nat.lt_succ_sqrt' - theorem Nat.lt_succ_sqrt - theorem Nat.not_exists_sq' - theorem Nat.not_exists_sq - theorem Nat.sqrt.iter_sq_le - theorem Nat.sqrt.lt_iter_succ_sq - theorem Nat.sqrt_add_eq' - theorem Nat.sqrt_add_eq - theorem Nat.sqrt_eq' - theorem Nat.sqrt_eq - theorem Nat.sqrt_eq_zero - theorem Nat.sqrt_le' - theorem Nat.sqrt_le - theorem Nat.sqrt_le_add - theorem Nat.sqrt_le_self - theorem Nat.sqrt_le_sqrt - theorem Nat.sqrt_lt' - theorem Nat.sqrt_lt - theorem Nat.sqrt_lt_self - theorem Nat.sqrt_mul_sqrt_lt_succ' - theorem Nat.sqrt_mul_sqrt_lt_succ - theorem Nat.sqrt_one - theorem Nat.sqrt_pos - theorem Nat.sqrt_succ_le_succ_sqrt - theorem Nat.sqrt_zero - theorem Nat.succ_le_succ_sqrt' - theorem Nat.succ_le_succ_sqrt 2024-08-29 14:40:09+10:00 f0887ab chore: split out Data.Nat.Sqrt ESTIMATED CHANGES Added Mathlib/Data/Nat/Sqrt.lean + theorem Nat.eq_sqrt' + theorem Nat.eq_sqrt + theorem Nat.exists_mul_self' + theorem Nat.exists_mul_self + theorem Nat.le_sqrt' + theorem Nat.le_sqrt + theorem Nat.le_three_of_sqrt_eq_one + theorem Nat.lt_succ_sqrt' + theorem Nat.lt_succ_sqrt + theorem Nat.not_exists_sq' + theorem Nat.not_exists_sq + theorem Nat.sqrt.iter_sq_le + theorem Nat.sqrt.lt_iter_succ_sq + theorem Nat.sqrt_add_eq' + theorem Nat.sqrt_add_eq + theorem Nat.sqrt_eq' + theorem Nat.sqrt_eq + theorem Nat.sqrt_eq_zero + theorem Nat.sqrt_le' + theorem Nat.sqrt_le + theorem Nat.sqrt_le_add + theorem Nat.sqrt_le_self + theorem Nat.sqrt_le_sqrt + theorem Nat.sqrt_lt' + theorem Nat.sqrt_lt + theorem Nat.sqrt_lt_self + theorem Nat.sqrt_mul_sqrt_lt_succ' + theorem Nat.sqrt_mul_sqrt_lt_succ + theorem Nat.sqrt_one + theorem Nat.sqrt_pos + theorem Nat.sqrt_succ_le_succ_sqrt + theorem Nat.sqrt_zero + theorem Nat.succ_le_succ_sqrt' + theorem Nat.succ_le_succ_sqrt 2024-08-29 14:40:04+10:00 89c51aa chore: split out Data.Nat.Sqrt ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Nat.lean Modified Mathlib/Data/Int/Sqrt.lean Modified Mathlib/Data/Nat/Defs.lean - theorem Nat.eq_sqrt' - theorem Nat.eq_sqrt - theorem Nat.exists_mul_self' - theorem Nat.exists_mul_self - theorem Nat.le_sqrt' - theorem Nat.le_sqrt - theorem Nat.le_three_of_sqrt_eq_one - theorem Nat.lt_succ_sqrt' - theorem Nat.lt_succ_sqrt - theorem Nat.not_exists_sq' - theorem Nat.not_exists_sq - theorem Nat.sqrt.iter_sq_le - theorem Nat.sqrt.lt_iter_succ_sq - theorem Nat.sqrt_add_eq' - theorem Nat.sqrt_add_eq - theorem Nat.sqrt_eq' - theorem Nat.sqrt_eq - theorem Nat.sqrt_eq_zero - theorem Nat.sqrt_le' - theorem Nat.sqrt_le - theorem Nat.sqrt_le_add - theorem Nat.sqrt_le_self - theorem Nat.sqrt_le_sqrt - theorem Nat.sqrt_lt' - theorem Nat.sqrt_lt - theorem Nat.sqrt_lt_self - theorem Nat.sqrt_mul_sqrt_lt_succ' - theorem Nat.sqrt_mul_sqrt_lt_succ - theorem Nat.sqrt_one - theorem Nat.sqrt_pos - theorem Nat.sqrt_succ_le_succ_sqrt - theorem Nat.sqrt_zero - theorem Nat.succ_le_succ_sqrt' - theorem Nat.succ_le_succ_sqrt Modified Mathlib/Data/Nat/Pairing.lean 2024-08-29 03:11:08 076f780 ci(bot_fix_style_*.yml): rename and use specialized token (#16232) cf. [Zulip](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/reviewdog/near/465582023) ESTIMATED CHANGES Modified .github/workflows/bot_fix_style_comment.yaml Renamed .github/workflows/bot_fix_review.yaml to .github/workflows/bot_fix_style_review.yaml Renamed .github/workflows/bot_fix_review_comment.yaml to .github/workflows/bot_fix_style_review_comment.yaml 2024-08-29 03:11:07 5b11a94 chore: do not directly import `Tactic.Cases` (#16198) This entails replacing not only `induction'` by its unprimed variant, but also `cases'` by `cases/rcases/obtain`. This reduces the number of imports for some files. ESTIMATED CHANGES Modified Mathlib/Algebra/CharZero/Defs.lean Modified Mathlib/Algebra/Group/Basic.lean Modified Mathlib/Algebra/Group/Nat.lean Modified Mathlib/Algebra/Group/Semiconj/Defs.lean Modified Mathlib/Algebra/Order/Monoid/Unbundled/MinMax.lean Modified Mathlib/Algebra/Order/Monoid/Unbundled/Pow.lean Modified Mathlib/Algebra/Order/Ring/Unbundled/Basic.lean Modified Mathlib/Combinatorics/Quiver/Arborescence.lean Modified Mathlib/Combinatorics/Quiver/Basic.lean Modified Mathlib/Combinatorics/Quiver/Path.lean Modified Mathlib/Combinatorics/Quiver/SingleObj.lean Modified Mathlib/Combinatorics/Quiver/Symmetric.lean Modified Mathlib/Data/DList/Defs.lean +/- theorem Batteries.DList.toList_append Modified Mathlib/Data/Int/Defs.lean Modified Mathlib/Data/Nat/Bits.lean Modified Mathlib/Data/Nat/Defs.lean Modified Mathlib/Data/Nat/Find.lean Modified Mathlib/Data/Nat/Log.lean Modified Mathlib/Data/Nat/PSub.lean Modified Mathlib/Data/Nat/Set.lean Modified Mathlib/Data/Nat/Size.lean Modified Mathlib/Data/Ordmap/Ordnode.lean Modified Mathlib/Data/PEquiv.lean Modified Mathlib/Data/Set/Function.lean Modified Mathlib/Data/Set/Image.lean Modified Mathlib/Data/Set/List.lean Modified Mathlib/Data/Set/Prod.lean Modified Mathlib/Data/Sum/Order.lean Modified Mathlib/Init/Data/List/Lemmas.lean Modified Mathlib/Lean/Meta/CongrTheorems.lean Modified Mathlib/Logic/Equiv/Option.lean Modified Mathlib/Logic/Equiv/Set.lean Modified Mathlib/Logic/Relation.lean Modified Mathlib/Order/Basic.lean Modified Mathlib/Order/Bounded.lean Modified Mathlib/Order/Bounds/Basic.lean Modified Mathlib/Order/Compare.lean Modified Mathlib/Order/Hom/Order.lean Modified Mathlib/Order/Interval/Set/Basic.lean Modified Mathlib/Order/Iterate.lean Modified Mathlib/Order/Monotone/Basic.lean Modified Mathlib/Order/RelClasses.lean Modified Mathlib/Order/RelIso/Basic.lean Modified Mathlib/Order/WellFounded.lean Modified Mathlib/Order/WithBot.lean 2024-08-29 01:14:58 331465f chore(Order): move some defs to a new file (#16202) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Data/ENat/Basic.lean - def ENat.recTopCoe - theorem ENat.recTopCoe_coe - theorem ENat.recTopCoe_top - def ENat Modified Mathlib/Data/PNat/Defs.lean - def PNat.val - def PNat Modified Mathlib/Data/Set/Image.lean Modified Mathlib/Order/Interval/Set/WithBotTop.lean Modified Mathlib/Order/Notation.lean Added Mathlib/Order/TypeTags.lean + def ENat.recTopCoe + theorem ENat.recTopCoe_coe + theorem ENat.recTopCoe_top + def ENat + def PNat.val + def PNat + def WithBot.recBotCoe + theorem WithBot.recBotCoe_bot + theorem WithBot.recBotCoe_coe + def WithBot.some + def WithBot + def WithTop.recTopCoe + theorem WithTop.recTopCoe_coe + theorem WithTop.recTopCoe_top + def WithTop.some + def WithTop Modified Mathlib/Order/WithBot.lean - def WithBot.recBotCoe - theorem WithBot.recBotCoe_bot - theorem WithBot.recBotCoe_coe - def WithBot.some - def WithBot - def WithTop.recTopCoe - theorem WithTop.recTopCoe_coe - theorem WithTop.recTopCoe_top - def WithTop.some - def WithTop Modified test/lift.lean 2024-08-29 01:14:57 b3e3fe2 feat(Analysis/Fourier/ZMod): more API for discrete Fourier transform (#14535) Define the discrete Fourier transform as a `LinearEquiv`, rather than just a map; and prove the Fourier inversion formula, as well as a bunch of more routine lemmas. ESTIMATED CHANGES Modified Mathlib/Analysis/Fourier/FourierTransform.lean + theorem Fourier.fourierIntegral_const_smul - theorem Fourier.fourierIntegral_smul_const + theorem VectorFourier.fourierIntegral_const_smul - theorem VectorFourier.fourierIntegral_smul_const Modified Mathlib/Analysis/Fourier/ZMod.lean +/- theorem ZMod.dft_apply + theorem ZMod.dft_apply_zero + theorem ZMod.dft_comp_neg + theorem ZMod.dft_comp_unitMul + theorem ZMod.dft_const_mul + theorem ZMod.dft_const_smul +/- theorem ZMod.dft_def + theorem ZMod.dft_dft + theorem ZMod.dft_eq_fourier + theorem ZMod.dft_mul_const + theorem ZMod.dft_smul_const + theorem ZMod.invDFT_apply' + theorem ZMod.invDFT_apply + theorem ZMod.invDFT_def' + theorem ZMod.invDFT_def 2024-08-29 00:16:08 172492c chore: move linter.setOption to the style namespace (#16212) Extracted from #15971. ESTIMATED CHANGES Modified Mathlib/Tactic/Linter/Style.lean - def Mathlib.Linter.Style.SetOption.is_set_option - def Mathlib.Linter.Style.SetOption.parse_set_option - def Mathlib.Linter.Style.SetOption.setOptionLinter + def Mathlib.Linter.Style.setOption.is_set_option + def Mathlib.Linter.Style.setOption.parse_set_option + def Mathlib.Linter.Style.setOption.setOptionLinter Modified lakefile.lean Modified test/Explode.lean Modified test/LibrarySearch/basic.lean Modified test/LintStyle.lean Modified test/Recall.lean Modified test/delabLinearIndependent.lean Modified test/vec_notation.lean 2024-08-28 23:53:44 6eb5bd6 chore: fix spelling mistakes in measure theory files (#16223) ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Constructions/BorelSpace/Basic.lean Modified Mathlib/MeasureTheory/Constructions/Polish/Basic.lean Modified Mathlib/MeasureTheory/Function/AEEqOfIntegral.lean Modified Mathlib/MeasureTheory/Function/ConditionalExpectation/CondexpL1.lean Modified Mathlib/MeasureTheory/Integral/Layercake.lean Modified Mathlib/MeasureTheory/MeasurableSpace/CountablyGenerated.lean Modified Mathlib/MeasureTheory/Measure/LevyProkhorovMetric.lean Modified Mathlib/MeasureTheory/Measure/Typeclasses.lean Modified Mathlib/MeasureTheory/OuterMeasure/OfFunction.lean 2024-08-28 23:44:50 d698fee chore: fix spelling mistakes in archive and test files (#16226) ESTIMATED CHANGES Modified Archive/Imo/Imo1988Q6.lean Modified Archive/MiuLanguage/DecisionSuf.lean Modified test/AssertImported.lean Modified test/fun_prop2.lean Modified test/fun_prop_dev.lean 2024-08-28 23:33:09 9cba5ed chore: update Mathlib dependencies 2024-08-28 (#16228) This PR updates the Mathlib dependencies. ESTIMATED CHANGES Modified lake-manifest.json 2024-08-28 23:07:52 b03f5f0 docs: add tag url to Stacks tags (#16225) Modify slightly the summary printed by `#stacks_tags`, in particular showing the tag url. [Zulip discussion](https://leanprover.zulipchat.com/#narrow/stream/113488-general/topic/stacks.20tags/near/465682195) ESTIMATED CHANGES Modified Mathlib/Tactic/StacksAttribute.lean Modified test/StacksAttribute.lean 2024-08-28 22:15:28 549d732 doc(Topology/Algebra/InfiniteSums/Def): fix typo and clarify docstrings (#16231) Fix typos for missing "if" and "it" in documentation for tprod and tsum. Included mention that conditionally convergent infinite sum/prods will default to 0/1 respectively. ESTIMATED CHANGES Modified Mathlib/Topology/Algebra/InfiniteSum/Defs.lean 2024-08-28 17:02:31 acef93c feat: linter for `admit` (use `sorry` instead) (#15667) The "admit" linter flags usages of the `admit` tactic. The tactics `admit` and `sorry` are synonyms. The use of `sorry` is much more common and should be preferred. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Tactic.lean Added Mathlib/Tactic/Linter/AdmitLinter.lean + def Mathlib.Linter.AdmitLinter.admitLinter + def Mathlib.Linter.AdmitLinter.getAdmit Added test/AdmitLinter.lean 2024-08-28 16:23:29 22246af chore: make two arguments of Finsupp.total implicit (#16221) See discussion at https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/Finsupp.2Etotal. ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/Subalgebra/Operations.lean Modified Mathlib/Algebra/Module/FinitePresentation.lean Modified Mathlib/Algebra/Module/Projective.lean Modified Mathlib/Analysis/InnerProductSpace/Basic.lean Modified Mathlib/Analysis/InnerProductSpace/Projection.lean Modified Mathlib/Data/Finsupp/Weight.lean Modified Mathlib/LinearAlgebra/Basis/Basic.lean Modified Mathlib/LinearAlgebra/Basis/Cardinality.lean Modified Mathlib/LinearAlgebra/Basis/Defs.lean +/- theorem Basis.coe_repr_symm +/- theorem Basis.repr_symm_apply +/- theorem Basis.repr_total +/- theorem Basis.total_repr Modified Mathlib/LinearAlgebra/DFinsupp.lean Modified Mathlib/LinearAlgebra/Dimension/StrongRankCondition.lean Modified Mathlib/LinearAlgebra/Dual.lean +/- theorem Module.DualBases.lc_def Modified Mathlib/LinearAlgebra/Finsupp.lean +/- theorem Finsupp.range_total +/- theorem Finsupp.span_eq_range_total +/- theorem Finsupp.total_apply +/- theorem Finsupp.total_eq_fintype_total_apply +/- theorem Finsupp.total_fin_zero +/- theorem Finsupp.total_range +/- theorem Finsupp.total_single +/- theorem Finsupp.total_unique +/- theorem Finsupp.total_zero +/- theorem Finsupp.total_zero_apply Modified Mathlib/LinearAlgebra/LinearDisjoint.lean Modified Mathlib/LinearAlgebra/LinearIndependent.lean +/- theorem LinearIndependent.total_repr Modified Mathlib/LinearAlgebra/TensorAlgebra/Basis.lean Modified Mathlib/LinearAlgebra/TensorProduct/Submodule.lean Modified Mathlib/LinearAlgebra/TensorProduct/Vanishing.lean Modified Mathlib/RepresentationTheory/GroupCohomology/Hilbert90.lean Modified Mathlib/RepresentationTheory/GroupCohomology/Resolution.lean Modified Mathlib/RingTheory/AlgebraicIndependent.lean Modified Mathlib/RingTheory/Artinian.lean Modified Mathlib/RingTheory/Finiteness.lean Modified Mathlib/RingTheory/Flat/EquationalCriterion.lean Modified Mathlib/RingTheory/Ideal/Operations.lean Modified Mathlib/RingTheory/Kaehler/Basic.lean Modified Mathlib/RingTheory/Kaehler/Polynomial.lean Modified Mathlib/RingTheory/LocalRing/Module.lean Modified Mathlib/RingTheory/Unramified/Finite.lean 2024-08-28 12:05:20 f5292c8 feat(NumberTheory/JacobiSum/Basic): add file (def., basic API) (#15743) This adds a new folder `NumberTheory/JacobiSum` and a first file `Basic.lean` in it, which defines the *Jacobi sum* of two multiplicative characters (on a finite commutative ring with values in another commutative ring) and provides some first results. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/NumberTheory/JacobiSum/Basic.lean + def jacobiSum + theorem jacobiSum_comm + theorem jacobiSum_eq_sum_sdiff + theorem jacobiSum_one_one + theorem jacobiSum_ringHomComp + theorem jacobiSum_trivial_trivial 2024-08-28 11:38:17 79ef749 feat: a finite sum of finite measures is finite (#16213) From LeanAPAP ESTIMATED CHANGES Modified Mathlib/Data/ENNReal/Operations.lean +/- theorem ENNReal.sum_eq_top +/- theorem ENNReal.sum_lt_top Modified Mathlib/MeasureTheory/Measure/Typeclasses.lean 2024-08-28 10:46:08 33d4a4a chore(Pow/Real): fix lemma names about `Nat.cast`/`Int.cast` (#16214) From LeanAPAP ESTIMATED CHANGES Modified Mathlib/Analysis/SpecialFunctions/Pow/Real.lean - theorem Real.rpow_add_int' - theorem Real.rpow_add_int + theorem Real.rpow_add_intCast' + theorem Real.rpow_add_intCast - theorem Real.rpow_add_nat' - theorem Real.rpow_add_nat + theorem Real.rpow_add_natCast' + theorem Real.rpow_add_natCast - theorem Real.rpow_sub_int' - theorem Real.rpow_sub_int + theorem Real.rpow_sub_intCast' + theorem Real.rpow_sub_intCast - theorem Real.rpow_sub_nat' - theorem Real.rpow_sub_nat + theorem Real.rpow_sub_natCast' + theorem Real.rpow_sub_natCast 2024-08-28 09:54:12 d0a9ca9 chore: reduce imports for Data.Nat.GCD.Basic (#16201) ESTIMATED CHANGES Modified Mathlib/Data/Nat/GCD/Basic.lean 2024-08-28 09:23:57 c8013cf chore: fix spelling mistakes in algebraic geometry files (#16208) ESTIMATED CHANGES Modified Mathlib/AlgebraicGeometry/AffineScheme.lean Modified Mathlib/AlgebraicGeometry/FunctionField.lean Modified Mathlib/AlgebraicGeometry/GammaSpecAdjunction.lean Modified Mathlib/AlgebraicGeometry/Morphisms/RingHomProperties.lean Modified Mathlib/AlgebraicGeometry/OpenImmersion.lean Modified Mathlib/AlgebraicGeometry/ProjectiveSpectrum/Topology.lean Modified Mathlib/AlgebraicGeometry/Properties.lean Modified Mathlib/AlgebraicGeometry/Restrict.lean Modified Mathlib/AlgebraicGeometry/Scheme.lean Modified Mathlib/AlgebraicGeometry/Spec.lean 2024-08-28 08:57:29 d1f5051 feat: `1 - x⁻¹ ≤ log x` (#16209) This inequality is surprisingly tricky to prove. `(2⁻¹ + x)⁻¹ ≤ log (1 + x⁻¹)` also holds but requires actual analysis to prove, and all I want is a numerical lower bound on `log (65 / 64)`. From LeanAPAP ESTIMATED CHANGES Modified Mathlib/Analysis/SpecialFunctions/Log/Basic.lean + theorem Real.one_sub_inv_le_log_of_pos 2024-08-28 05:50:17 e5cd4b4 chore: fix spelling mistakes in geometry files (#16206) chore: fix spelling mistakes in geometry files ESTIMATED CHANGES Modified Mathlib/Geometry/Euclidean/Angle/Oriented/Basic.lean Modified Mathlib/Geometry/Manifold/Algebra/LeftInvariantDerivation.lean Modified Mathlib/Geometry/Manifold/Algebra/LieGroup.lean Modified Mathlib/Geometry/Manifold/Algebra/SmoothFunctions.lean Modified Mathlib/Geometry/Manifold/DerivationBundle.lean Modified Mathlib/Geometry/Manifold/MFDeriv/Basic.lean Modified Mathlib/Geometry/Manifold/SmoothManifoldWithCorners.lean Modified Mathlib/Geometry/RingedSpace/LocallyRingedSpace.lean Modified Mathlib/Geometry/RingedSpace/PresheafedSpace/Gluing.lean 2024-08-28 03:44:52 5e87714 feat(MorphismProperty/Presheaf): Define relatively representable morphisms (#16140) This PR defines relatively representable morphisms, and adds some basic API. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/MorphismProperty/Representable.lean + theorem CategoryTheory.Functor.relativelyRepresentable.hom_ext' + theorem CategoryTheory.Functor.relativelyRepresentable.hom_ext + theorem CategoryTheory.Functor.relativelyRepresentable.isPullback' + theorem CategoryTheory.Functor.relativelyRepresentable.isPullback + theorem CategoryTheory.Functor.relativelyRepresentable.isPullback_of_map + theorem CategoryTheory.Functor.relativelyRepresentable.lift'_fst + theorem CategoryTheory.Functor.relativelyRepresentable.lift'_snd + theorem CategoryTheory.Functor.relativelyRepresentable.lift_fst + theorem CategoryTheory.Functor.relativelyRepresentable.lift_snd + theorem CategoryTheory.Functor.relativelyRepresentable.map_fst' + theorem CategoryTheory.Functor.relativelyRepresentable.symmetry_fst + theorem CategoryTheory.Functor.relativelyRepresentable.symmetry_snd + theorem CategoryTheory.Functor.relativelyRepresentable.symmetry_symmetry + theorem CategoryTheory.Functor.relativelyRepresentable.w' + theorem CategoryTheory.Functor.relativelyRepresentable.w + def CategoryTheory.Functor.relativelyRepresentable 2024-08-28 03:12:14 28bae8a chore: fix spelling mistakes in number theory files (#16197) chore: fix spelling mistakes in number theory files ESTIMATED CHANGES Modified Mathlib/NumberTheory/Bertrand.lean Modified Mathlib/NumberTheory/Cyclotomic/PrimitiveRoots.lean Modified Mathlib/NumberTheory/LSeries/Convolution.lean Modified Mathlib/NumberTheory/ModularForms/EisensteinSeries/MDifferentiable.lean Modified Mathlib/NumberTheory/ModularForms/JacobiTheta/TwoVariable.lean Modified Mathlib/NumberTheory/NumberField/Discriminant.lean Modified Mathlib/NumberTheory/NumberField/Norm.lean Modified Mathlib/NumberTheory/NumberField/Units/Basic.lean Modified Mathlib/NumberTheory/NumberField/Units/Regulator.lean Modified Mathlib/NumberTheory/PrimeCounting.lean Modified Mathlib/NumberTheory/WellApproximable.lean 2024-08-28 00:34:43 0935a3e chore: update Mathlib dependencies 2024-08-28 (#16204) This PR updates the Mathlib dependencies. ESTIMATED CHANGES Modified lake-manifest.json 2024-08-28 00:04:44 f9ab5e7 feat(ContinuousFunctionalCalculus): Show that integration commutes with the CFC (#16013) This PR shows that `cfc (fun r => ∫ x, f x r ∂μ) a = ∫ x, cfc (f x) a ∂μ` under appropriate conditions. The continuity condition given here is enough for most applications (I think) and reasonably easy to apply for the integral representations this is meant for, but I would be open to suggestions. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Integral.lean + theorem cfcHom_integral + theorem cfcL_integral + theorem cfc_integral' + theorem cfc_integral Modified Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Unital.lean + theorem cfc_eq_cfcL 2024-08-27 23:34:20 50a89e2 chore(Linter/TextBased): namespace declarations (#16203) Currently, all declarations of the text-based linters live in the root namespace; this can cause conflicts (and is to be used sparingly anyway). ESTIMATED CHANGES Modified Mathlib/Tactic/Linter/TextBased.lean - inductive BroadImports - inductive ComparisonResult - def ErrorContext.find?_comparable - structure ErrorContext - inductive ErrorFormat + inductive Mathlib.Linter.TextBased.BroadImports + inductive Mathlib.Linter.TextBased.ComparisonResult + def Mathlib.Linter.TextBased.ErrorContext.find?_comparable + structure Mathlib.Linter.TextBased.ErrorContext + inductive Mathlib.Linter.TextBased.ErrorFormat + inductive Mathlib.Linter.TextBased.OutputSetting + def Mathlib.Linter.TextBased.StyleError.errorCode + def Mathlib.Linter.TextBased.StyleError.errorMessage + inductive Mathlib.Linter.TextBased.StyleError + def Mathlib.Linter.TextBased.allLinters + def Mathlib.Linter.TextBased.broadImportsLinter + def Mathlib.Linter.TextBased.checkFileLength + def Mathlib.Linter.TextBased.compare + def Mathlib.Linter.TextBased.copyrightHeaderLinter + def Mathlib.Linter.TextBased.formatErrors + def Mathlib.Linter.TextBased.isCorrectAuthorsLine + def Mathlib.Linter.TextBased.lintFile + def Mathlib.Linter.TextBased.lintModules + def Mathlib.Linter.TextBased.outputMessage + def Mathlib.Linter.TextBased.parse?_errorContext + def Mathlib.Linter.TextBased.parseStyleExceptions - inductive OutputSetting - def StyleError.errorCode - def StyleError.errorMessage - inductive StyleError - def allLinters - def broadImportsLinter - def checkFileLength - def compare - def copyrightHeaderLinter - def formatErrors - def isCorrectAuthorsLine - def lintFile - def lintModules - def outputMessage - def parse?_errorContext - def parseStyleExceptions Modified scripts/lint-style.lean 2024-08-27 22:52:57 9bb231a chore: update Mathlib dependencies 2024-08-27 (#16199) This PR updates the Mathlib dependencies. ESTIMATED CHANGES Modified lake-manifest.json 2024-08-27 21:15:51 0fb4c97 chore: add the stacks attribute and extension (#16191) This extends the simple attribute of #16179 with an environment extension that tracks also the declaration names and tags. The `#stacks_tags` command retrieves all declarations that have the `stacks` attribute. For each found declaration, it prints a line ``` 'declaration_name' corresponds to tag 'declaration_tag'. ``` The variant `#stacks_tags!` also adds the theorem statement after each summary line. [Zulip thread](https://leanprover.zulipchat.com/#narrow/stream/113488-general/topic/stacks.20tags) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Tactic.lean Added Mathlib/Tactic/StacksAttribute.lean + def Lean.Environment.getSortedStackProjectDeclNames + def Lean.Environment.getSortedStackProjectTags + structure Mathlib.Stacks.Tag + def Mathlib.Stacks.addTagEntry Added test/StacksAttribute.lean + theorem X.tagged 2024-08-27 20:26:04 fa7fd3c chore(ModelTheory): Tweaks involving the empty language (#16192) Makes `FirstOrder.Language.emptyStructure` a `def` instead of an `instance` Removes `def`s that could be accomplished with `StrongHomClass.toEmbedding` and `StrongHomClass.toEquiv` ESTIMATED CHANGES Modified Mathlib/ModelTheory/Basic.lean - def Embedding.empty - def Equiv.empty + def FirstOrder.Language.emptyStructure - theorem FirstOrder.Language.toEmbedding_embedding_empty - theorem FirstOrder.Language.toEquiv_equiv_empty - theorem FirstOrder.Language.toFun_embedding_empty - theorem FirstOrder.Language.toFun_equiv_empty Modified Mathlib/ModelTheory/Satisfiability.lean 2024-08-27 20:26:03 7b52ff5 feat(NNReal/ENNReal): More basic lemmas (#16133) Add a few simple lemmas, make some existing distributivity lemmas simp, make it so that lemmas proving `≠ ⊤` take `≠ ⊤` assumptions and lemmas proving `< ⊤` take `< ⊤` assumptions. From LeanAPAP ESTIMATED CHANGES Modified Archive/Wiedijk100Theorems/BallotProblem.lean Modified Mathlib/Algebra/BigOperators/WithTop.lean + theorem WithBot.bot_lt_prod + theorem WithBot.prod_ne_bot +/- theorem WithTop.prod_lt_top + theorem WithTop.prod_ne_top + theorem WithTop.sum_eq_top - theorem WithTop.sum_eq_top_iff +/- theorem WithTop.sum_lt_top - theorem WithTop.sum_lt_top_iff + theorem WithTop.sum_ne_top Modified Mathlib/Algebra/Order/Monoid/Unbundled/WithTop.lean + theorem WithTop.natCast_lt_top Modified Mathlib/Algebra/Order/Ring/WithTop.lean - theorem WithBot.bot_lt_mul' +/- theorem WithBot.bot_lt_mul + theorem WithBot.mul_ne_bot - theorem WithTop.mul_lt_top' +/- theorem WithTop.mul_lt_top + theorem WithTop.mul_ne_top Modified Mathlib/Analysis/MeanInequalities.lean Modified Mathlib/Analysis/MeanInequalitiesPow.lean Modified Mathlib/Analysis/Normed/Lp/PiLp.lean Modified Mathlib/Analysis/NormedSpace/ENorm.lean Modified Mathlib/Analysis/PSeries.lean Modified Mathlib/Analysis/SpecialFunctions/JapaneseBracket.lean Modified Mathlib/Analysis/SpecialFunctions/Pow/NNReal.lean Modified Mathlib/Data/ENNReal/Basic.lean + theorem ENNReal.natCast_lt_top +/- theorem ENNReal.toNNReal_coe Modified Mathlib/Data/ENNReal/Inv.lean Modified Mathlib/Data/ENNReal/Operations.lean +/- theorem ENNReal.mul_lt_top +/- theorem ENNReal.mul_ne_top +/- theorem ENNReal.prod_lt_top + theorem ENNReal.prod_ne_top + theorem ENNReal.sum_eq_top - theorem ENNReal.sum_eq_top_iff +/- theorem ENNReal.sum_lt_top - theorem ENNReal.sum_lt_top_iff + theorem ENNReal.sum_ne_top Modified Mathlib/Data/ENNReal/Real.lean +/- theorem ENNReal.toNNReal_div +/- theorem ENNReal.toNNReal_inv +/- theorem ENNReal.toReal_div +/- theorem ENNReal.toReal_inv Modified Mathlib/Data/Fintype/Order.lean Modified Mathlib/Data/NNReal/Basic.lean +/- theorem NNReal.coe_nsmul + theorem NNReal.iSup_eq_zero Modified Mathlib/MeasureTheory/Constructions/HaarToSphere.lean Modified Mathlib/MeasureTheory/Constructions/Pi.lean Modified Mathlib/MeasureTheory/Constructions/Prod/Basic.lean Modified Mathlib/MeasureTheory/Function/ConditionalExpectation/CondexpL2.lean Modified Mathlib/MeasureTheory/Function/L1Space.lean Modified Mathlib/MeasureTheory/Function/LpSeminorm/Basic.lean Modified Mathlib/MeasureTheory/Function/LpSeminorm/ChebyshevMarkov.lean Modified Mathlib/MeasureTheory/Function/LpSeminorm/CompareExp.lean Modified Mathlib/MeasureTheory/Function/LpSeminorm/TriangleInequality.lean Modified Mathlib/MeasureTheory/Function/SimpleFunc.lean Modified Mathlib/MeasureTheory/Function/SimpleFuncDenseLp.lean Modified Mathlib/MeasureTheory/Function/StronglyMeasurable/Basic.lean Modified Mathlib/MeasureTheory/Group/Measure.lean Modified Mathlib/MeasureTheory/Integral/BoundedContinuousFunction.lean Modified Mathlib/MeasureTheory/Integral/Lebesgue.lean Modified Mathlib/MeasureTheory/Integral/MeanInequalities.lean Modified Mathlib/MeasureTheory/Integral/SetToL1.lean Modified Mathlib/MeasureTheory/Measure/Count.lean Modified Mathlib/MeasureTheory/Measure/Haar/Disintegration.lean Modified Mathlib/MeasureTheory/Measure/MeasureSpaceDef.lean Modified Mathlib/MeasureTheory/Measure/Typeclasses.lean Modified Mathlib/NumberTheory/NumberField/CanonicalEmbedding/ConvexBody.lean Modified Mathlib/Probability/BorelCantelli.lean Modified Mathlib/Probability/Distributions/Uniform.lean Modified Mathlib/Probability/Independence/Conditional.lean Modified Mathlib/Probability/Integration.lean Modified Mathlib/Probability/Kernel/Composition.lean Modified Mathlib/Probability/Kernel/WithDensity.lean Modified Mathlib/Probability/Martingale/Convergence.lean Modified Mathlib/Topology/EMetricSpace/Lipschitz.lean Modified Mathlib/Topology/Instances/ENNReal.lean Modified Mathlib/Topology/MetricSpace/Antilipschitz.lean - theorem AntilipschitzWith.edist_lt_top Modified Mathlib/Topology/MetricSpace/Contracting.lean 2024-08-27 20:26:01 977b134 feat(SetTheory/Ordinal/NaturalOps): fix bad names (#15992) `nmul_le_nmul_of_nonneg_left` and `nmul_le_nmul_of_nonneg_right` are dumb since all natural ordinals are non-negative. `mul_le_nmul` should have been in the ordinal namespace (like `add_le_nadd`). ESTIMATED CHANGES Modified Mathlib/SetTheory/Ordinal/NaturalOps.lean - theorem NatOrdinal.mul_le_nmul + theorem Ordinal.mul_le_nmul + theorem Ordinal.nmul_le_nmul_left - theorem Ordinal.nmul_le_nmul_of_nonneg_left - theorem Ordinal.nmul_le_nmul_of_nonneg_right + theorem Ordinal.nmul_le_nmul_right 2024-08-27 20:26:00 d237181 feat(Subgroup/MulOpposite): add Normal instance (#15497) - add `op_injective`,`op_inj`,`op_eq_bot`,`op_eq_top`; - add `op_normalizer`, `op_normal`, `Normal.op`, `Normal.of_op`, `op.instNormal`; - similarly for `unop`. ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Subgroup/MulOpposite.lean + theorem Subgroup.normal_op + theorem Subgroup.normal_unop + theorem Subgroup.op_eq_bot + theorem Subgroup.op_eq_top +/- theorem Subgroup.op_inf + theorem Subgroup.op_inj + theorem Subgroup.op_injective + theorem Subgroup.op_normalizer +/- theorem Subgroup.op_top + theorem Subgroup.unop_eq_bot + theorem Subgroup.unop_eq_top +/- theorem Subgroup.unop_inf + theorem Subgroup.unop_inj + theorem Subgroup.unop_injective + theorem Subgroup.unop_normalizer +/- theorem Subgroup.unop_top Modified Mathlib/Algebra/Group/Submonoid/MulOpposite.lean + theorem Submonoid.op_eq_bot + theorem Submonoid.op_eq_top +/- theorem Submonoid.op_inf + theorem Submonoid.op_inj + theorem Submonoid.op_injective +/- theorem Submonoid.op_top + theorem Submonoid.unop_eq_bot + theorem Submonoid.unop_eq_top +/- theorem Submonoid.unop_inf + theorem Submonoid.unop_inj + theorem Submonoid.unop_injective +/- theorem Submonoid.unop_top Modified Mathlib/Algebra/Ring/Subring/MulOpposite.lean + theorem Subring.op_eq_bot + theorem Subring.op_eq_top +/- theorem Subring.op_inf + theorem Subring.op_inj + theorem Subring.op_injective +/- theorem Subring.op_top + theorem Subring.unop_eq_bot + theorem Subring.unop_eq_top +/- theorem Subring.unop_inf + theorem Subring.unop_inj + theorem Subring.unop_injective +/- theorem Subring.unop_top Modified Mathlib/Algebra/Ring/Subsemiring/MulOpposite.lean + theorem Subsemiring.op_eq_bot + theorem Subsemiring.op_eq_top +/- theorem Subsemiring.op_inf + theorem Subsemiring.op_inj + theorem Subsemiring.op_injective +/- theorem Subsemiring.op_top + theorem Subsemiring.unop_eq_bot + theorem Subsemiring.unop_eq_top +/- theorem Subsemiring.unop_inf + theorem Subsemiring.unop_inj + theorem Subsemiring.unop_injective +/- theorem Subsemiring.unop_top 2024-08-27 19:30:40 6e2fa8b chore: remove `autoImplicit` from `Archive, Cache, Data` (#16187) Split from #16154 – this PR contains just the less contentious changes. Four non-test files will remain after this. ESTIMATED CHANGES Modified Archive/Examples/IfNormalization/Result.lean +/- theorem IfExpr.eval_ite_ite +/- theorem IfExpr.eval_lit +/- theorem IfExpr.eval_var Modified Archive/Examples/IfNormalization/WithoutAesop.lean +/- theorem IfExpr.eval_ite_ite' Modified Cache/IO.lean Modified Cache/Requests.lean +/- def Cache.Requests.formatError Modified Mathlib/Data/MLList/BestFirst.lean Modified Mathlib/Data/Vector/Basic.lean +/- theorem Mathlib.Vector.mapAccumr_cons +/- theorem Mathlib.Vector.mapAccumr₂_cons Modified Mathlib/Data/Vector/Defs.lean +/- def Mathlib.Vector.mapAccumr₂ Modified Mathlib/Data/Vector/MapLemmas.lean +/- theorem Mathlib.Vector.mapAccumr_map +/- theorem Mathlib.Vector.map_mapAccumr Modified Mathlib/Data/Vector/Snoc.lean +/- theorem Mathlib.Vector.mapAccumr_nil +/- theorem Mathlib.Vector.mapAccumr_snoc +/- theorem Mathlib.Vector.mapAccumr₂_nil +/- theorem Mathlib.Vector.map_snoc +/- theorem Mathlib.Vector.map₂_snoc Modified Mathlib/Deprecated/HashMap.lean Modified Mathlib/Topology/MetricSpace/Gluing.lean 2024-08-27 19:30:39 a8c57d8 chore(SetTheory/Ordinal/Exponential): use `pow` instead of `opow` (#16180) The theorem `sup_opow_nat` gets renamed in #15820, so I won't rename it here. ESTIMATED CHANGES Modified Mathlib/SetTheory/Ordinal/Exponential.lean + theorem Ordinal.opow_natCast +/- theorem Ordinal.sup_opow_nat Modified Mathlib/SetTheory/Ordinal/FixedPoint.lean Modified Mathlib/SetTheory/Ordinal/Notation.lean 2024-08-27 19:30:37 e5701f2 chore(Data/Set): make names consistent (#16155) Currently we have `Set.symmDiff_nonempty`, `Finset.sdiff_nonempty`, `Finset.symmDiff_nonempty` and `Set.diff_nonempty_of_ncard_lt_ncard`. `Set.nonempty_diff` does not follow the pattern of all of the others, and thus is changed. ESTIMATED CHANGES Modified Mathlib/Analysis/Complex/CauchyIntegral.lean Modified Mathlib/Data/Set/Basic.lean + theorem Set.diff_nonempty - theorem Set.nonempty_diff Modified Mathlib/Topology/UniformSpace/Cauchy.lean 2024-08-27 19:21:40 446df2a chore: fix spelling mistakes in linear algebra files (#16196) chore: fix spelling mistakes in linear algebra files ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/AffineSpace/AffineMap.lean Modified Mathlib/LinearAlgebra/CliffordAlgebra/Basic.lean Modified Mathlib/LinearAlgebra/CliffordAlgebra/Prod.lean Modified Mathlib/LinearAlgebra/ExteriorAlgebra/Basic.lean Modified Mathlib/LinearAlgebra/Matrix/Charpoly/Univ.lean Modified Mathlib/LinearAlgebra/Matrix/GeneralLinearGroup/Card.lean Modified Mathlib/LinearAlgebra/Matrix/PosDef.lean Modified Mathlib/LinearAlgebra/Matrix/SchurComplement.lean Modified Mathlib/LinearAlgebra/QuadraticForm/Basic.lean Modified Mathlib/LinearAlgebra/TensorAlgebra/Basic.lean Modified Mathlib/LinearAlgebra/TensorPower.lean Modified Mathlib/LinearAlgebra/TensorProduct/Graded/Internal.lean 2024-08-27 19:10:21 b766d49 feat: run style linters in fix mode and push a commit when "bot fix style" is posted in a PR comment (#15781) The bot is triggered when writes "bot fix style" on a PR, either in an ordinary comment, a review comment, or a review. It then checks if the author has "write" privileges (or above) and if so, will react with a 🚀 emoji on the triggering comment and then lint and push a commit to the PR branch. Note that this uses the NIGHTLY_TESTING secret. See [Zulip](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/reviewdog/near/460017984). ESTIMATED CHANGES Added .github/workflows/bot_fix_review.yaml Added .github/workflows/bot_fix_review_comment.yaml Added .github/workflows/bot_fix_style_comment.yaml Modified .github/workflows/lint_and_suggest_pr.yml 2024-08-27 18:38:19 ef5a761 chore(SetTheory/Ordinal/*): `o.out.α` → `o.toType` (#16161) It's often desirable to get a concrete type in universe `Type u` that's order isomorphic to `o : Ordinal.{u}`. The way we've done this is by using the non-documented `(Quotient.out o).α`. We rename this to `Ordinal.toType o` for discoverability, and to hide what frankly should remain an implementation detail. This also entails renaming a bunch of theorems that made reference to `out` in some form. ESTIMATED CHANGES Modified Mathlib/MeasureTheory/MeasurableSpace/Card.lean +/- def MeasurableSpace.generateMeasurableRec Modified Mathlib/SetTheory/Cardinal/Cofinality.lean Modified Mathlib/SetTheory/Cardinal/Ordinal.lean +/- theorem Cardinal.noMaxOrder Modified Mathlib/SetTheory/Game/Nim.lean +/- theorem SetTheory.PGame.leftMoves_nim +/- theorem SetTheory.PGame.moveLeft_nim' +/- theorem SetTheory.PGame.nim_def +/- theorem SetTheory.PGame.rightMoves_nim Modified Mathlib/SetTheory/Game/Ordinal.lean +/- theorem Ordinal.toPGame_def +/- theorem Ordinal.toPGame_leftMoves Modified Mathlib/SetTheory/Ordinal/Arithmetic.lean +/- def Ordinal.familyOfBFamily +/- theorem Ordinal.lsub_typein - theorem Ordinal.out_no_max_of_succ_lt + theorem Ordinal.toType_noMax_of_succ_lt Modified Mathlib/SetTheory/Ordinal/Basic.lean - theorem Cardinal.card_typein_out_lt + theorem Cardinal.card_typein_toType_lt - theorem Cardinal.mk_Iio_ord_out_α + theorem Cardinal.mk_Iio_ord_toType - theorem Cardinal.mk_ord_out + theorem Cardinal.mk_ord_toType - theorem Cardinal.mk_ordinal_out + theorem Cardinal.mk_toType +/- theorem Ordinal.enum_zero_le' +/- theorem Ordinal.eq_zero_of_out_empty - def Ordinal.initialSegOut + def Ordinal.initialSegToType +/- theorem Ordinal.le_enum_succ +/- theorem Ordinal.ne_zero_of_out_nonempty - theorem Ordinal.one_out_eq + theorem Ordinal.one_toType_eq - def Ordinal.outOrderBotOfPos - theorem Ordinal.out_empty_iff_eq_zero - theorem Ordinal.out_nonempty_iff_ne_zero - def Ordinal.principalSegOut + def Ordinal.principalSegToType + def Ordinal.toType + def Ordinal.toTypeOrderBotOfPos + theorem Ordinal.toType_empty_iff_eq_zero + theorem Ordinal.toType_nonempty_iff_ne_zero +/- theorem Ordinal.type_lt +/- theorem Ordinal.type_out +/- theorem Ordinal.typein_le_typein' +/- theorem Ordinal.typein_le_typein +/- theorem Ordinal.typein_lt_self - theorem Ordinal.typein_one_out + theorem Ordinal.typein_one_toType Modified Mathlib/SetTheory/Ordinal/FixedPoint.lean Modified Mathlib/SetTheory/Ordinal/Topology.lean 2024-08-27 18:38:17 ee10f3e feat(FiberedCategory/Cocartesian): define cocartesian & strongly cocartesian morphisms (#14051) This PR adds cocartesian & strongly cocartesian morphisms, and provides some basic API. This is just the opposite versions of cartesian & strongly cartesian morphisms, and the code is just copied from that file with the arrows reversed. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/CategoryTheory/FiberedCategory/Cartesian.lean Added Mathlib/CategoryTheory/FiberedCategory/Cocartesian.lean + theorem CategoryTheory.Functor.IsCocartesian.fac + theorem CategoryTheory.Functor.IsCocartesian.map_self + theorem CategoryTheory.Functor.IsCocartesian.map_uniq + theorem CategoryTheory.Functor.IsStronglyCocartesian.fac + theorem CategoryTheory.Functor.IsStronglyCocartesian.isIso_of_base_isIso + theorem CategoryTheory.Functor.IsStronglyCocartesian.map_comp_map + theorem CategoryTheory.Functor.IsStronglyCocartesian.map_self + theorem CategoryTheory.Functor.IsStronglyCocartesian.map_uniq + theorem CategoryTheory.Functor.IsStronglyCocartesian.universal_property 2024-08-27 16:57:57 cc33cb3 feat: Actions on and by an order synonym (#15813) Complete the API about actions on and by `OrderDual`/`Lex`. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Order/Group/Action/Synonym.lean Added Mathlib/Algebra/Order/GroupWithZero/Action/Synonym.lean Modified Mathlib/Algebra/Order/Module/Defs.lean Modified Mathlib/Algebra/Order/Module/Synonym.lean Modified Mathlib/Algebra/Order/Monovary.lean Modified Mathlib/Algebra/Order/Rearrangement.lean Modified Mathlib/Analysis/Convex/Basic.lean Modified Mathlib/Analysis/Convex/Star.lean Modified Mathlib/LinearAlgebra/AffineSpace/Ordered.lean Modified scripts/noshake.json 2024-08-27 16:57:56 afa0e97 chore(Logic/Equiv/Fin): Tidy tuple equivalences (#14665) The names here were all over the place and there were missing versions. Harmonise the names and add the missing versions. ESTIMATED CHANGES Modified Archive/Wiedijk100Theorems/CubingACube.lean Modified Mathlib/Algebra/MvPolynomial/Equiv.lean Modified Mathlib/CategoryTheory/Monoidal/Types/Basic.lean Modified Mathlib/Data/Countable/Basic.lean Modified Mathlib/Data/Fin/Tuple/Basic.lean + theorem Fin.exists_iff_castSucc + theorem Fin.exists_iff_succAbove + theorem Fin.forall_iff_castSucc +/- theorem Fin.forall_iff_succAbove Modified Mathlib/Data/Fin/Tuple/Finset.lean Modified Mathlib/Data/Fin/VecNotation.lean Modified Mathlib/Logic/Equiv/Fin.lean + def Fin.consEquiv + def Fin.insertNthEquiv + theorem Fin.insertNthEquiv_last + theorem Fin.insertNthEquiv_zero + def Fin.snocEquiv Modified Mathlib/MeasureTheory/Integral/Pi.lean Modified Mathlib/MeasureTheory/Integral/TorusIntegral.lean Modified Mathlib/MeasureTheory/MeasurableSpace/Embedding.lean Modified Mathlib/MeasureTheory/OuterMeasure/Induced.lean Modified Mathlib/Order/Fin/Tuple.lean + def Fin.consOrderIso + def Fin.insertNthOrderIso + theorem Fin.insertNthOrderIso_last + theorem Fin.insertNthOrderIso_zero + def Fin.snocOrderIso Modified Mathlib/RepresentationTheory/Action/Monoidal.lean Modified Mathlib/RepresentationTheory/GroupCohomology/LowDegree.lean Modified Mathlib/RepresentationTheory/GroupCohomology/Resolution.lean Modified Mathlib/RingTheory/Regular/RegularSequence.lean 2024-08-27 16:27:49 ca2b360 feat(ModelTheory): Universal and existential formulas (#16008) Defines universal and existential formulas Proves preservation results for universal and existential formulas As an application, shows that substructures of models of the theory of linear orders are also models of the theory of linear orders. ESTIMATED CHANGES Modified Mathlib/ModelTheory/Complexity.lean + theorem FirstOrder.Language.BoundedFormula.IsAtomic.isExistential + theorem FirstOrder.Language.BoundedFormula.IsAtomic.isUniversal + theorem FirstOrder.Language.BoundedFormula.IsExistential.realize_embedding + inductive FirstOrder.Language.BoundedFormula.IsExistential + theorem FirstOrder.Language.BoundedFormula.IsQF.isExistential + theorem FirstOrder.Language.BoundedFormula.IsQF.isUniversal + theorem FirstOrder.Language.BoundedFormula.IsUniversal.realize_embedding + inductive FirstOrder.Language.BoundedFormula.IsUniversal + theorem FirstOrder.Language.Relations.isAtomic + theorem FirstOrder.Language.Relations.isQF + theorem FirstOrder.Language.Theory.IsUniversal.models_of_embedding Modified Mathlib/ModelTheory/Order.lean 2024-08-27 16:27:48 09c79c3 feat: Add/improve lemmas on `Set`/`Subgroup` equality (#14365) ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Subgroup/Finite.lean + theorem Subgroup.card_le_of_le + theorem Subgroup.eq_of_le_of_card_ge +/- theorem Subgroup.eq_top_of_card_eq Modified Mathlib/Data/Finite/Card.lean + theorem Set.eq_top_of_card_le_of_finite 2024-08-27 16:27:46 3c4341f feat: add basic `Digraph` file (#14091) Added the file `Basic.lean` which includes the basic definition of a digraph along with some basic theorems. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Combinatorics/Digraph/Basic.lean + theorem Digraph.adj_inj + theorem Digraph.adj_injective + theorem Digraph.bot_adj + theorem Digraph.compl_adj + def Digraph.completeBipartiteGraph + theorem Digraph.completeDigraph_eq_top + theorem Digraph.emptyDigraph_eq_bot + theorem Digraph.iInf_adj + theorem Digraph.iSup_adj + theorem Digraph.inf_adj + theorem Digraph.isSubgraph_eq_le + def Digraph.mk' + theorem Digraph.sInf_adj + theorem Digraph.sSup_adj + theorem Digraph.sdiff_adj + theorem Digraph.sup_adj + theorem Digraph.top_adj + structure Digraph 2024-08-27 15:47:38 45b5b90 chore: remove duplicate Decidable instance for Nat.Coprime (#16184) This instance is already present in Batteries. ESTIMATED CHANGES Modified Mathlib/Data/Nat/Factors.lean Modified Mathlib/Data/Nat/GCD/Basic.lean Modified Mathlib/Data/Nat/Prime/Defs.lean Modified Mathlib/Data/Rat/Encodable.lean Modified Mathlib/Dynamics/PeriodicPts.lean 2024-08-27 15:47:37 a7117bf feat: When `NNRat.cast` is less/greater than `1` (#16137) From LeanAPAP ESTIMATED CHANGES Modified Mathlib/Data/Rat/Cast/Order.lean + theorem NNRat.cast_le_ofNat + theorem NNRat.cast_le_one + theorem NNRat.cast_lt_ofNat + theorem NNRat.cast_lt_one + theorem NNRat.ofNat_le_cast + theorem NNRat.ofNat_lt_cast + theorem NNRat.one_le_cast + theorem NNRat.one_lt_cast 2024-08-27 15:47:36 8bda9a0 feat: `ExistsAddOfLE` lemmas (#13950) Add a few convenient versions of `le_iff_exists_add`. From LeanAPAP ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Monoid/Unbundled/ExistsOfLE.lean + theorem exists_one_le_mul_of_le +/- theorem exists_one_lt_mul_of_lt' + theorem le_iff_exists_one_le_mul + theorem lt_iff_exists_one_lt_mul Modified Mathlib/Algebra/Order/Ring/Unbundled/Basic.lean - theorem le_iff_exists_nonneg_add Modified Mathlib/Data/Int/Star.lean Modified Mathlib/Data/Rat/Star.lean 2024-08-27 14:29:10 a0f40a6 feat: create aliases and lemmas for `CovariantClass α α (· * ·) (· ≤ ·)` etc (#13467) The first step towards removing `CovariantClass` and `ContravariantClass`. ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Monoid/Unbundled/Defs.lean + theorem Group.mulLeftReflectLE_of_mulLeftMono + theorem Group.mulLeftReflectLT_of_mulLeftStrictMono + theorem Group.mulRightReflectLE_of_mulRightMono + theorem Group.mulRightReflectLT_of_mulRightStrictMono + theorem mulLeftMono_of_mulLeftStrictMono + theorem mulLeftReflectLT_of_mulLeftMono + theorem mulLeftStrictMono_of_mulLeftReflectLE + theorem mulRightMono_of_mulLeftMono + theorem mulRightMono_of_mulRightStrictMono + theorem mulRightReflectLE_of_mulLeftReflectLE + theorem mulRightReflectLT_of_mulLeftReflectLT + theorem mulRightReflectLT_of_mulRightMono + theorem mulRightStrictMono_of_mulLeftStrictMono + theorem mulRightStrictMono_of_mulRightReflectLE 2024-08-27 13:20:42 4526492 chore: remove `autoImplicit` from `Logic.Equiv.Basic` (#16172) Split from #16154. ESTIMATED CHANGES Modified Mathlib/Logic/Basic.lean +/- theorem heq_rec_iff_heq +/- theorem rec_heq_iff_heq +/- theorem rec_heq_of_heq Modified Mathlib/Logic/Equiv/Basic.lean +/- theorem Equiv.Perm.sumCongr_apply +/- theorem Equiv.Perm.sumCongr_refl +/- theorem Equiv.Perm.sumCongr_symm +/- theorem Equiv.Perm.sumCongr_trans +/- theorem Equiv.coe_prodUnique +/- theorem Equiv.coe_sigmaUnique +/- theorem Equiv.coe_subtypeEquiv_eq_map +/- theorem Equiv.coe_uniqueProd +/- theorem Equiv.emptySum_apply_inr +/- def Equiv.listEquivOfEquiv +/- def Equiv.ofFiberEquiv +/- theorem Equiv.optionEquivSumPUnit_coe +/- theorem Equiv.optionEquivSumPUnit_none +/- theorem Equiv.optionEquivSumPUnit_some +/- theorem Equiv.optionEquivSumPUnit_symm_inl +/- theorem Equiv.optionEquivSumPUnit_symm_inr +/- theorem Equiv.piCongrLeft_sum_inl +/- theorem Equiv.piCongrLeft_sum_inr +/- def Equiv.piCurry +/- theorem Equiv.piCurry_apply +/- theorem Equiv.piCurry_symm_apply +/- def Equiv.piOptionEquivProd +/- def Equiv.pprodEquivProd +/- def Equiv.pprodProd +/- theorem Equiv.prodComm_apply +/- def Equiv.prodCongr +/- theorem Equiv.prodCongr_symm +/- def Equiv.prodPProd +/- def Equiv.prodPiEquivSumPi +/- def Equiv.prodProdProdComm +/- theorem Equiv.prodProdProdComm_symm +/- def Equiv.prodSubtypeFstEquivSubtypeProd +/- def Equiv.prodSumDistrib +/- theorem Equiv.prodSumDistrib_apply_left +/- theorem Equiv.prodSumDistrib_apply_right +/- theorem Equiv.prodSumDistrib_symm_apply_left +/- theorem Equiv.prodSumDistrib_symm_apply_right +/- theorem Equiv.prodUnique_apply +/- theorem Equiv.prodUnique_symm_apply +/- def Equiv.psumSum +/- def Equiv.sigmaOptionEquivOfSome +/- def Equiv.sigmaProdDistrib +/- def Equiv.sigmaSubtypeEquivOfSubset +/- def Equiv.sigmaSumDistrib +/- theorem Equiv.sigmaUnique_apply +/- theorem Equiv.sigmaUnique_symm_apply +/- def Equiv.subtypeCongr +/- def Equiv.subtypeProdEquivProd +/- def Equiv.subtypeProdEquivSigmaSubtype +/- def Equiv.subtypeSigmaEquiv +/- def Equiv.subtypeSubtypeEquivSubtype +/- def Equiv.subtypeSum +/- def Equiv.subtypeUnivEquiv +/- theorem Equiv.sumArrowEquivProdArrow_apply_fst +/- theorem Equiv.sumArrowEquivProdArrow_apply_snd +/- theorem Equiv.sumArrowEquivProdArrow_symm_apply_inl +/- theorem Equiv.sumArrowEquivProdArrow_symm_apply_inr +/- theorem Equiv.sumAssoc_apply_inl_inl +/- theorem Equiv.sumAssoc_apply_inl_inr +/- theorem Equiv.sumAssoc_apply_inr +/- theorem Equiv.sumCompl_apply_inl +/- theorem Equiv.sumCompl_apply_inr +/- theorem Equiv.sumCompl_apply_symm_of_neg +/- theorem Equiv.sumCompl_apply_symm_of_pos +/- def Equiv.sumCongr +/- theorem Equiv.sumCongr_refl +/- theorem Equiv.sumCongr_symm +/- theorem Equiv.sumCongr_trans +/- theorem Equiv.sumEmpty_apply_inl +/- def Equiv.sumEquivSigmaBool +/- def Equiv.sumPSum +/- def Equiv.sumPiEquivProdPi +/- theorem Equiv.sumProdDistrib_apply_left +/- theorem Equiv.sumProdDistrib_apply_right +/- theorem Equiv.sumProdDistrib_symm_apply_left +/- theorem Equiv.sumProdDistrib_symm_apply_right +/- theorem Equiv.ulift_symm_down +/- theorem Equiv.uniqueProd_apply +/- theorem Equiv.uniqueProd_symm_apply +/- def subsingletonProdSelfEquiv 2024-08-27 12:47:57 dc72d4c chore: fix spelling mistakes in ring theory files (#16176) ESTIMATED CHANGES Modified Mathlib/RingTheory/Bialgebra/Basic.lean Modified Mathlib/RingTheory/DedekindDomain/PID.lean Modified Mathlib/RingTheory/Derivation/DifferentialRing.lean Modified Mathlib/RingTheory/Flat/Stability.lean Modified Mathlib/RingTheory/Generators.lean Modified Mathlib/RingTheory/GradedAlgebra/Basic.lean Modified Mathlib/RingTheory/GradedAlgebra/HomogeneousLocalization.lean Modified Mathlib/RingTheory/GradedAlgebra/Radical.lean Modified Mathlib/RingTheory/Kaehler/Basic.lean Modified Mathlib/RingTheory/LocalRing/Module.lean Modified Mathlib/RingTheory/OreLocalization/Ring.lean Modified Mathlib/RingTheory/Polynomial/GaussLemma.lean Modified Mathlib/RingTheory/PrimeSpectrum.lean Modified Mathlib/RingTheory/Regular/RegularSequence.lean Modified Mathlib/RingTheory/RingHom/FiniteType.lean 2024-08-27 12:32:10 bf10470 feat: generalize universes in `preservesFiniteProductsOfPreservesBinaryAndTerminal` (#16178) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Limits/Constructions/FiniteProductsOfBinaryProducts.lean +/- def CategoryTheory.preservesFiniteCoproductsOfPreservesBinaryAndInitial +/- def CategoryTheory.preservesFiniteProductsOfPreservesBinaryAndTerminal 2024-08-27 11:16:40 d158637 feat(Data/Finset): add singleton_inter (#16174) Two simple lemmas that are very useful for rewrites especially inside summations. ESTIMATED CHANGES Modified Mathlib/Data/Finset/Basic.lean + theorem Finset.inter_singleton + theorem Finset.singleton_inter 2024-08-27 11:16:39 32d4568 feat(Data/ZMod/Quotient): `index_zmultiples` (#16170) Add the lemma: ```lean @[simp] lemma index_zmultiples (a : ℤ) : (AddSubgroup.zmultiples a).index = a.natAbs := by ``` From AperiodicMonotilesLean. ESTIMATED CHANGES Modified Mathlib/Data/ZMod/Quotient.lean + theorem Int.index_zmultiples 2024-08-27 11:07:03 f5539c6 feat(Combinatorics/SimpleGraph): Add lemma about number of odd subcomponents (#15539) Added lemma that the number of odd components contained within a component in a bigger graph is odd iff the bigger component is odd. In preparation for Tuttes. ESTIMATED CHANGES Modified Mathlib/Combinatorics/SimpleGraph/Connectivity/WalkCounting.lean + theorem SimpleGraph.ConnectedComponent.odd_card_supp_iff_odd_subcomponents + theorem SimpleGraph.disjiUnion_supp_toFinset_eq_supp_toFinset Modified Mathlib/Combinatorics/SimpleGraph/Path.lean + theorem SimpleGraph.ConnectedComponent.biUnion_supp_eq_supp + theorem SimpleGraph.ConnectedComponent.connectedComponentMk_supp_subset_supp + theorem SimpleGraph.ConnectedComponent.top_supp_eq_univ 2024-08-27 09:51:54 45e815c refactor(Order/SuccPred): Remove `le_of_lt_succ` and `le_of_pred_lt` from `SuccOrder`/`PredOrder` (#15881) See disccusion on Zulip: https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/weaker.20SuccOrder.2FPredOrder ESTIMATED CHANGES Modified Mathlib/Data/ENat/Basic.lean +/- theorem ENat.succ_def Modified Mathlib/Data/Int/SuccPred.lean Modified Mathlib/Data/Nat/SuccPred.lean Modified Mathlib/Order/Interval/Set/Monotone.lean Modified Mathlib/Order/SuccPred/Basic.lean + theorem Order.Icc_subset_Ico_succ_right + theorem Order.Icc_subset_Ico_succ_right_of_not_isMax + theorem Order.Icc_subset_Ioc_pred_left + theorem Order.Icc_subset_Ioc_pred_left_of_not_isMin + theorem Order.Ici_subset_Ioi_pred + theorem Order.Ici_subset_Ioi_pred_of_not_isMin + theorem Order.Ico_subset_Ioo_pred_left + theorem Order.Ico_subset_Ioo_pred_left_of_not_isMin + theorem Order.Iic_subset_Iio_succ + theorem Order.Iic_subset_Iio_succ_of_not_isMax + theorem Order.Ioc_subset_Ioo_succ_right + theorem Order.Ioc_subset_Ioo_succ_right_of_not_isMax +/- theorem Order.le_of_lt_succ +/- theorem Order.le_of_pred_lt + theorem Order.lt_succ_of_le + theorem Order.lt_succ_of_le_of_not_isMax + theorem Order.pred_le_pred_of_le + theorem Order.pred_le_pred_of_not_isMin_of_le + theorem Order.pred_lt_of_le + theorem Order.pred_lt_of_not_isMin_of_le + theorem Order.pred_lt_pred + theorem Order.succ_lt_succ +/- def PredOrder.ofCore - def PredOrder.ofLePredIffOfPredLePred - def SuccOrder.ofSuccLeIffOfLeLtSucc +/- theorem WithBot.pred_coe - theorem WithBot.pred_coe_bot + theorem WithBot.pred_coe_of_isMin - theorem WithBot.pred_coe_of_ne_bot + theorem WithBot.pred_coe_of_not_isMin +/- theorem WithTop.succ_coe + theorem WithTop.succ_coe_of_isMax - theorem WithTop.succ_coe_of_ne_top + theorem WithTop.succ_coe_of_not_isMax - theorem WithTop.succ_coe_top Modified Mathlib/Order/SuccPred/CompleteLinearOrder.lean Modified Mathlib/Order/SuccPred/Limit.lean +/- theorem Order.isPredLimitRecOn_pred +/- theorem Order.isSuccLimitRecOn_succ +/- theorem PredOrder.limitRecOn_pred +/- theorem SuccOrder.limitRecOn_succ Modified Mathlib/Order/SuccPred/LinearLocallyFinite.lean Modified Mathlib/Topology/Instances/Discrete.lean +/- theorem bot_topologicalSpace_eq_generateFrom_of_pred_succOrder +/- theorem discreteTopology_iff_orderTopology_of_pred_succ' 2024-08-27 08:46:03 ba7a809 feat: turn off bad simp lemmas (#16175) Removes some bad `simp` lemmas as identified by @mattrobball at https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/Infrastructure.20for.20tracking.20frequently.20applied.20simp.20theorems/near/459926416 ESTIMATED CHANGES Modified Mathlib/AlgebraicGeometry/Morphisms/RingHomProperties.lean Modified Mathlib/CategoryTheory/Generator.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Biproducts.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Products.lean Modified Mathlib/Data/Fintype/Sigma.lean Modified Mathlib/Data/List/Sigma.lean Modified Mathlib/Data/Set/Sigma.lean Modified Mathlib/Data/Sigma/Basic.lean Modified Mathlib/Data/ULift.lean 2024-08-27 07:26:54 99d679b chore: fix spelling mistakes in data files (#16173) chore: fix spelling mistakes in data files ESTIMATED CHANGES Modified Mathlib/Data/Finsupp/ToDFinsupp.lean Modified Mathlib/Data/Fintype/Basic.lean Modified Mathlib/Data/Fintype/BigOperators.lean Modified Mathlib/Data/MLList/BestFirst.lean Modified Mathlib/Data/Matrix/ColumnRowPartitioned.lean Modified Mathlib/Data/Matroid/Basic.lean Modified Mathlib/Data/Nat/Nth.lean 2024-08-27 03:21:02 9d7806d chore: update Mathlib dependencies 2024-08-27 (#16171) This PR updates the Mathlib dependencies. ESTIMATED CHANGES Modified lake-manifest.json 2024-08-27 00:43:26 948f204 chore: fork `linear_combination` to `linear_combination'` (#16166) This PR makes a copy `linear_combination'` of the tactic `linear_combination`. The primed version will be left as-is for backward compatibility, while the unprimed version will soon undergo some opinionated refactors. This PR also makes some [minor corrections](https://github.com/leanprover-community/mathlib4/pull/16166/commits/f9d81202eece1b0878c08d55497ad64ed63a7faf) to the module docstring (of both versions). [Zulip](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/Narrowing.20the.20scope.20of.20.60linear_combination.60/near/465256437) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Tactic.lean Added Mathlib/Tactic/LinearCombination'.lean + inductive Mathlib.Tactic.LinearCombination'.Expanded + theorem Mathlib.Tactic.LinearCombination'.add_pf + theorem Mathlib.Tactic.LinearCombination'.c_add_pf + theorem Mathlib.Tactic.LinearCombination'.c_div_pf + theorem Mathlib.Tactic.LinearCombination'.c_mul_pf + theorem Mathlib.Tactic.LinearCombination'.c_sub_pf + theorem Mathlib.Tactic.LinearCombination'.div_pf + def Mathlib.Tactic.LinearCombination'.elabLinearCombination' + theorem Mathlib.Tactic.LinearCombination'.eq_of_add + theorem Mathlib.Tactic.LinearCombination'.eq_of_add_pow + theorem Mathlib.Tactic.LinearCombination'.eq_trans₃ + theorem Mathlib.Tactic.LinearCombination'.inv_pf + theorem Mathlib.Tactic.LinearCombination'.mul_pf + theorem Mathlib.Tactic.LinearCombination'.neg_pf + theorem Mathlib.Tactic.LinearCombination'.pf_add_c + theorem Mathlib.Tactic.LinearCombination'.pf_div_c + theorem Mathlib.Tactic.LinearCombination'.pf_mul_c + theorem Mathlib.Tactic.LinearCombination'.pf_sub_c + theorem Mathlib.Tactic.LinearCombination'.sub_pf Modified Mathlib/Tactic/LinearCombination.lean Modified Mathlib/Tactic/Linter/UnusedTactic.lean Added test/linear_combination'.lean + def g 2024-08-27 00:13:48 f1c0334 feat(Algebra/Order/Archimedean): multiplicativize Archimedean (#15589) This allows one to talk about finding powers greater than some element for ordered monoids. Before, this was only available for ordered semirings. This is to later install the instance on valuation groups (`LinearOrderedCommGroupWithZero`). Install the instance on NNRat and NNReal (though they are ordered semirings). Also, add some missing instances about the nonnegative submonoid. ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Archimedean/Basic.lean + theorem existsUnique_add_zpow_mem_Ioc - theorem existsUnique_add_zsmul_mem_Ico - theorem existsUnique_add_zsmul_mem_Ioc + theorem existsUnique_div_zpow_mem_Ico + theorem existsUnique_mul_zpow_mem_Ico + theorem existsUnique_sub_zpow_mem_Ioc - theorem existsUnique_sub_zsmul_mem_Ico - theorem existsUnique_sub_zsmul_mem_Ioc + theorem existsUnique_zpow_near_of_one_lt' + theorem existsUnique_zpow_near_of_one_lt - theorem existsUnique_zsmul_near_of_pos' - theorem existsUnique_zsmul_near_of_pos - theorem exists_lt_nsmul + theorem exists_lt_pow Modified Mathlib/Algebra/Order/Nonneg/Ring.lean Modified Mathlib/Data/NNReal/Basic.lean 2024-08-26 23:29:12 cbe86e0 feat(ModelTheory/Complexity): Preservation theorems for atomic and quantifier-free formulas (#16108) Adds a bit of extra API for quantifier-free formulas Proves some preservation theorems of atomic and quantifier-free formulas with respect to certain classes of maps, including embeddings ESTIMATED CHANGES Modified Mathlib/ModelTheory/Complexity.lean + theorem FirstOrder.Language.BoundedFormula.IsAtomic.realize_comp + theorem FirstOrder.Language.BoundedFormula.IsAtomic.realize_comp_of_injective - theorem FirstOrder.Language.BoundedFormula.IsQF.castLE + theorem FirstOrder.Language.BoundedFormula.IsQF.inf - theorem FirstOrder.Language.BoundedFormula.IsQF.liftAt +/- theorem FirstOrder.Language.BoundedFormula.IsQF.not + theorem FirstOrder.Language.BoundedFormula.IsQF.realize_embedding - theorem FirstOrder.Language.BoundedFormula.IsQF.relabel + theorem FirstOrder.Language.BoundedFormula.IsQF.sup + theorem FirstOrder.Language.BoundedFormula.IsQF.top 2024-08-26 16:52:59 b5f7e1c feat: add `abbrev`s to `decl_diff` (#16158) Prompted by #16169. ESTIMATED CHANGES Modified scripts/declarations_diff.sh 2024-08-26 16:52:58 a16c276 feat(Analysis/SpecialFunctions/Pow/Real): Specialise some lemmas to natural/integers powers (#15859) From LeanAPAP ESTIMATED CHANGES Modified Mathlib/Analysis/SpecialFunctions/Pow/Real.lean + theorem Real.le_log_of_pow_le + theorem Real.le_log_of_rpow_le + theorem Real.le_log_of_zpow_le + theorem Real.le_pow_iff_log_le + theorem Real.le_pow_of_log_le +/- theorem Real.le_rpow_iff_log_le +/- theorem Real.le_rpow_of_log_le + theorem Real.le_zpow_iff_log_le + theorem Real.le_zpow_of_log_le + theorem Real.lt_log_of_pow_lt + theorem Real.lt_log_of_rpow_lt + theorem Real.lt_log_of_zpow_lt + theorem Real.lt_pow_iff_log_lt + theorem Real.lt_pow_of_log_lt +/- theorem Real.lt_rpow_iff_log_lt +/- theorem Real.lt_rpow_of_log_lt + theorem Real.lt_zpow_iff_log_lt + theorem Real.lt_zpow_of_log_lt + theorem Real.pow_le_iff_le_log + theorem Real.pow_le_of_le_log + theorem Real.pow_lt_iff_lt_log + theorem Real.pow_lt_of_lt_log + theorem Real.rpow_le_iff_le_log + theorem Real.rpow_le_of_le_log + theorem Real.rpow_lt_iff_lt_log + theorem Real.rpow_lt_of_lt_log + theorem Real.zpow_le_iff_le_log + theorem Real.zpow_le_of_le_log + theorem Real.zpow_lt_iff_lt_log + theorem Real.zpow_lt_of_lt_log 2024-08-26 16:52:57 395a5ae feat: Monoid with zero version of `one_lt_of_lt_mul_left` (#15857) From LeanAPAP ESTIMATED CHANGES Modified Mathlib/Algebra/Order/GroupWithZero/Unbundled.lean + theorem one_le_of_le_mul_left₀ + theorem one_le_of_le_mul_right₀ + theorem one_lt_of_lt_mul_left₀ + theorem one_lt_of_lt_mul_right₀ 2024-08-26 16:09:23 ea40e70 chore(Order/Interval/Finset/Defs): Clean up namespaces (#15831) Some lemmas were accidentally dropped in the `Prod` or root namespace ESTIMATED CHANGES Modified Mathlib/Order/Interval/Finset/Box.lean Modified Mathlib/Order/Interval/Finset/Defs.lean + theorem Finset.Icc_ofDual + theorem Finset.Icc_prod_def + theorem Finset.Icc_product_Icc + theorem Finset.Icc_toDual + theorem Finset.Ici_ofDual + theorem Finset.Ici_prod_def + theorem Finset.Ici_product_Ici + theorem Finset.Ici_toDual + theorem Finset.Ico_ofDual + theorem Finset.Ico_toDual + theorem Finset.Iic_ofDual + theorem Finset.Iic_prod_def + theorem Finset.Iic_product_Iic + theorem Finset.Iic_toDual + theorem Finset.Iio_ofDual + theorem Finset.Iio_toDual + theorem Finset.Ioc_ofDual + theorem Finset.Ioc_toDual + theorem Finset.Ioi_ofDual + theorem Finset.Ioi_toDual + theorem Finset.Ioo_ofDual + theorem Finset.Ioo_toDual + theorem Finset.card_Icc_prod + theorem Finset.card_Ici_prod + theorem Finset.card_Iic_prod + theorem Finset.card_uIcc_prod + theorem Finset.uIcc_prod_def + theorem Finset.uIcc_product_uIcc - theorem Icc_ofDual - theorem Icc_toDual - theorem Ici_ofDual - theorem Ici_toDual - theorem Ico_ofDual - theorem Ico_toDual - theorem Iic_ofDual - theorem Iic_toDual - theorem Iio_ofDual - theorem Iio_toDual - theorem Ioc_ofDual - theorem Ioc_toDual - theorem Ioi_ofDual - theorem Ioi_toDual - theorem Ioo_ofDual - theorem Ioo_toDual - theorem Prod.Icc_eq - theorem Prod.Icc_mk_mk - theorem Prod.card_Icc - theorem Prod.card_uIcc - theorem Prod.uIcc_eq - theorem Prod.uIcc_mk_mk 2024-08-26 15:01:33 9b51ed2 chore: delete `Init.Quot` (#16149) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Data/Fintype/Card.lean Modified Mathlib/Data/List/Cycle.lean Modified Mathlib/Data/Multiset/Basic.lean Modified Mathlib/Data/Quot.lean Deleted Mathlib/Init/Quot.lean - theorem Quotient.mk'_eq_mk Modified Mathlib/Logic/Equiv/List.lean 2024-08-26 15:01:32 d744716 chore(CategoryTheory/Adjunction): address a few porting notes in `Opposites` file (#16091) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Adjunction/Opposites.lean 2024-08-26 15:01:31 501c833 chore(CategoryTheory/Adjunction): clean up file `Adjunction.Basic` (#16071) Removes a bunch of porting notes and simplifies some proofs. Also removes the `simp` attributes from the `homEquiv_naturality` lemmas. These were bad `simp` lemmas because they can interfere with the `simp` lemmas `homEquiv_unit` and `homEquiv_counit`. Removing them doesn't break anything throughout all of mathlib. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Adjunction/Basic.lean - theorem CategoryTheory.Adjunction.CoreHomEquiv.homEquiv_naturality_left_aux - theorem CategoryTheory.Adjunction.CoreHomEquiv.homEquiv_naturality_right_symm_aux 2024-08-26 14:39:54 791fdaa chore: fix spelling mistakes in category theory files (#16153) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/EffectiveEpi/Basic.lean Modified Mathlib/CategoryTheory/FiberedCategory/BasedCategory.lean Modified Mathlib/CategoryTheory/FiberedCategory/HomLift.lean Modified Mathlib/CategoryTheory/Galois/Prorepresentability.lean Modified Mathlib/CategoryTheory/GradedObject/Trifunctor.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Pullback/HasPullback.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Pullback/PullbackCone.lean Modified Mathlib/CategoryTheory/Localization/Prod.lean Modified Mathlib/CategoryTheory/Localization/Resolution.lean Modified Mathlib/CategoryTheory/Monoidal/Free/Coherence.lean Modified Mathlib/CategoryTheory/Preadditive/Biproducts.lean Modified Mathlib/CategoryTheory/Shift/Quotient.lean Modified Mathlib/CategoryTheory/Sites/Coherent/CoherentSheaves.lean Modified Mathlib/CategoryTheory/Sites/Coherent/RegularSheaves.lean Modified Mathlib/CategoryTheory/Sites/Coherent/SheafComparison.lean Modified Mathlib/CategoryTheory/Sites/Preserves.lean Modified Mathlib/CategoryTheory/Square.lean Modified Mathlib/CategoryTheory/WithTerminal.lean 2024-08-26 13:45:59 9295e9f refactor: Generalise ordered field lemmas to ordered groups with zero (#16036) Also generalise `LinearOrderedCommGroupWithZero` lemmas, add a few missing ones and unify the names. Note that this doesn't generalise all eligible lemmas as there are too many for a single PR. Unify: * `le_div_iff` → `le_div_iff₀` * `le_div_iff'` → `le_div_iff₀'` * `div_le_iff` → `div_le_iff₀` * `div_le_iff'` → `div_le_iff₀'` * `mul_le_one₀` → `mul_le_one'` * `one_le_mul₀` → `one_le_mul'` From LeanAPAP ESTIMATED CHANGES Modified Archive/Imo/Imo1972Q5.lean Modified Archive/Imo/Imo1986Q5.lean Modified Archive/Imo/Imo2006Q3.lean Modified Archive/Imo/Imo2024Q1.lean Modified Archive/OxfordInvariants/Summer2021/Week3P1.lean Modified Archive/Wiedijk100Theorems/BuffonsNeedle.lean Modified Counterexamples/Phillips.lean Modified Mathlib.lean Modified Mathlib/Algebra/Order/Field/Basic.lean - theorem div_le_comm₀ - theorem div_le_iff' - theorem div_le_iff +/- theorem div_le_one - theorem le_div_iff' - theorem le_div_iff +/- theorem one_le_div Modified Mathlib/Algebra/Order/Field/Power.lean Deleted Mathlib/Algebra/Order/Field/Unbundled/Basic.lean - theorem div_nonneg - theorem div_nonpos_of_nonneg_of_nonpos - theorem div_nonpos_of_nonpos_of_nonneg - theorem div_pos - theorem inv_lt_zero - theorem inv_nonneg - theorem inv_nonpos - theorem inv_pos - theorem one_div_neg - theorem one_div_nonneg - theorem one_div_nonpos - theorem one_div_pos - theorem zpow_nonneg - theorem zpow_pos_of_pos Modified Mathlib/Algebra/Order/Floor.lean Modified Mathlib/Algebra/Order/GroupWithZero/Canonical.lean - theorem div_le_div₀ - theorem div_le_iff₀ - theorem inv_le_one₀ - theorem le_div_iff₀ - theorem le_mul_inv_iff₀ +/- theorem le_of_le_mul_right - theorem mul_inv_le_iff₀ +/- theorem mul_le_mul_left₀ +/- theorem mul_lt_right₀ - theorem one_le_inv₀ Modified Mathlib/Algebra/Order/GroupWithZero/Unbundled.lean + theorem Antitone.const_mul + theorem Antitone.mul_const + theorem Monotone.const_mul + theorem Monotone.mul + theorem Monotone.mul_const + theorem Monotone.mul_strictMono + theorem StrictAnti.const_mul + theorem StrictAnti.mul_const + theorem StrictMono.const_mul + theorem StrictMono.mul + theorem StrictMono.mul_const + theorem StrictMono.mul_monotone + theorem div_le_comm₀ + theorem div_le_div₀ + theorem div_le_iff₀' + theorem div_le_iff₀ + theorem div_le_one₀ + theorem div_nonneg + theorem div_nonpos_of_nonneg_of_nonpos + theorem div_nonpos_of_nonpos_of_nonneg + theorem div_pos + theorem inv_le_one₀ + theorem inv_mul_le_iff₀ + theorem inv_mul_le_one₀ + theorem inv_neg'' + theorem inv_nonneg + theorem inv_nonpos + theorem inv_pos + theorem le_div_comm₀ + theorem le_div_iff₀' + theorem le_div_iff₀ + theorem le_inv_mul_iff₀ + theorem le_mul_inv_iff₀ + theorem lt_mul_left + theorem lt_mul_right + theorem lt_mul_self + theorem monotone_mul_left_of_nonneg + theorem monotone_mul_right_of_nonneg + theorem mul_inv_le_iff₀ + theorem mul_le_one + theorem mul_lt_one_of_nonneg_of_lt_one_left + theorem mul_lt_one_of_nonneg_of_lt_one_right + theorem mul_self_lt_mul_self + theorem one_div_neg + theorem one_div_nonneg + theorem one_div_nonpos + theorem one_div_pos + theorem one_le_div₀ + theorem one_le_inv_mul₀ + theorem one_le_inv₀ + theorem one_le_mul_of_one_le_of_one_le + theorem one_lt_mul_of_le_of_lt + theorem one_lt_mul_of_lt_of_le + theorem pow_le_of_le_one + theorem pow_le_pow_of_le_one + theorem pow_nonneg + theorem pow_pos + theorem sq_le + theorem strictMonoOn_mul_self + theorem strictMono_mul_left_of_pos + theorem strictMono_mul_right_of_pos + theorem zpow_nonneg + theorem zpow_pos_of_pos Modified Mathlib/Algebra/Order/Module/Defs.lean Modified Mathlib/Algebra/Order/Nonneg/Field.lean Modified Mathlib/Algebra/Order/Pointwise.lean Modified Mathlib/Algebra/Order/Positive/Field.lean Modified Mathlib/Algebra/Order/Ring/Unbundled/Basic.lean - theorem Antitone.const_mul - theorem Antitone.mul_const - theorem Monotone.const_mul - theorem Monotone.mul - theorem Monotone.mul_const - theorem Monotone.mul_strictMono - theorem StrictAnti.const_mul - theorem StrictAnti.mul_const - theorem StrictMono.const_mul - theorem StrictMono.mul - theorem StrictMono.mul_const - theorem StrictMono.mul_monotone - theorem lt_mul_left - theorem lt_mul_right - theorem lt_mul_self - theorem monotone_mul_left_of_nonneg - theorem monotone_mul_right_of_nonneg - theorem mul_le_one - theorem mul_lt_one_of_nonneg_of_lt_one_left - theorem mul_lt_one_of_nonneg_of_lt_one_right - theorem mul_self_lt_mul_self - theorem one_le_mul_of_one_le_of_one_le - theorem one_lt_mul_of_le_of_lt - theorem one_lt_mul_of_lt_of_le - theorem pow_le_of_le_one - theorem pow_le_pow_of_le_one - theorem pow_nonneg - theorem pow_pos - theorem sq_le - theorem strictMonoOn_mul_self - theorem strictMono_mul_left_of_pos - theorem strictMono_mul_right_of_pos Modified Mathlib/Analysis/Analytic/Basic.lean Modified Mathlib/Analysis/Asymptotics/Asymptotics.lean Modified Mathlib/Analysis/BoxIntegral/Basic.lean Modified Mathlib/Analysis/Calculus/BumpFunction/FiniteDimension.lean Modified Mathlib/Analysis/Calculus/BumpFunction/Normed.lean Modified Mathlib/Analysis/Calculus/FDeriv/Measurable.lean Modified Mathlib/Analysis/Calculus/InverseFunctionTheorem/ApproximatesLinearOn.lean Modified Mathlib/Analysis/Calculus/MeanValue.lean Modified Mathlib/Analysis/Complex/AbsMax.lean Modified Mathlib/Analysis/Complex/Angle.lean Modified Mathlib/Analysis/Complex/Schwarz.lean Modified Mathlib/Analysis/Complex/UpperHalfPlane/Metric.lean Modified Mathlib/Analysis/Convex/Body.lean Modified Mathlib/Analysis/Convex/Caratheodory.lean Modified Mathlib/Analysis/Convex/Gauge.lean Modified Mathlib/Analysis/Convex/Normed.lean Modified Mathlib/Analysis/Convex/Slope.lean Modified Mathlib/Analysis/Convex/Uniform.lean Modified Mathlib/Analysis/Distribution/SchwartzSpace.lean Modified Mathlib/Analysis/Hofer.lean Modified Mathlib/Analysis/LocallyConvex/Polar.lean Modified Mathlib/Analysis/LocallyConvex/WithSeminorms.lean Modified Mathlib/Analysis/MeanInequalities.lean Modified Mathlib/Analysis/MeanInequalitiesPow.lean Modified Mathlib/Analysis/Normed/Affine/MazurUlam.lean Modified Mathlib/Analysis/Normed/Group/Hom.lean Modified Mathlib/Analysis/Normed/Group/Uniform.lean Modified Mathlib/Analysis/Normed/Ring/SeminormFromBounded.lean Modified Mathlib/Analysis/NormedSpace/Multilinear/Basic.lean Modified Mathlib/Analysis/NormedSpace/OperatorNorm/Basic.lean Modified Mathlib/Analysis/NormedSpace/OperatorNorm/NormedSpace.lean Modified Mathlib/Analysis/Seminorm.lean Modified Mathlib/Analysis/SpecialFunctions/Bernstein.lean Modified Mathlib/Analysis/SpecialFunctions/Complex/Arctan.lean Modified Mathlib/Analysis/SpecialFunctions/Complex/Arg.lean Modified Mathlib/Analysis/SpecialFunctions/Complex/LogBounds.lean Modified Mathlib/Analysis/SpecialFunctions/Exp.lean Modified Mathlib/Analysis/SpecialFunctions/Gamma/BohrMollerup.lean Modified Mathlib/Analysis/SpecialFunctions/Log/Monotone.lean Modified Mathlib/Analysis/SpecialFunctions/Pow/Complex.lean Modified Mathlib/Analysis/SpecialFunctions/Pow/Real.lean Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Angle.lean Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Arctan.lean Modified Mathlib/Analysis/SpecificLimits/Basic.lean Modified Mathlib/Analysis/SpecificLimits/FloorPow.lean Modified Mathlib/Analysis/SpecificLimits/Normed.lean Modified Mathlib/Combinatorics/Additive/AP/Three/Behrend.lean Modified Mathlib/Combinatorics/Additive/PluenneckeRuzsa.lean Modified Mathlib/Combinatorics/Schnirelmann.lean Modified Mathlib/Combinatorics/SetFamily/LYM.lean Modified Mathlib/Combinatorics/SimpleGraph/Density.lean Modified Mathlib/Combinatorics/SimpleGraph/Regularity/Bound.lean Modified Mathlib/Combinatorics/SimpleGraph/Regularity/Chunk.lean Modified Mathlib/Combinatorics/SimpleGraph/Regularity/Increment.lean Modified Mathlib/Combinatorics/SimpleGraph/Regularity/Lemma.lean Modified Mathlib/Combinatorics/SimpleGraph/Regularity/Uniform.lean Modified Mathlib/Combinatorics/SimpleGraph/Triangle/Removal.lean Modified Mathlib/Computability/AkraBazzi/AkraBazzi.lean Modified Mathlib/Computability/AkraBazzi/GrowsPolynomially.lean Modified Mathlib/Data/Complex/Abs.lean Modified Mathlib/Data/Complex/Exponential.lean Modified Mathlib/Data/Int/CardIntervalMod.lean Modified Mathlib/Data/NNRat/Lemmas.lean Modified Mathlib/Data/NNReal/Basic.lean - theorem NNReal.div_le_iff +/- theorem NNReal.mul_le_iff_le_inv Modified Mathlib/Data/Nat/Cast/Order/Field.lean Modified Mathlib/Data/Nat/Choose/Bounds.lean Modified Mathlib/Data/Real/Archimedean.lean Modified Mathlib/Data/Real/Pi/Bounds.lean Modified Mathlib/Data/Real/Pi/Wallis.lean Modified Mathlib/Data/Real/Sign.lean Modified Mathlib/Data/Set/Pointwise/Interval.lean Modified Mathlib/Dynamics/Circle/RotationNumber/TranslationNumber.lean Modified Mathlib/GroupTheory/CommutingProbability.lean Modified Mathlib/MeasureTheory/Covering/Besicovitch.lean Modified Mathlib/MeasureTheory/Covering/BesicovitchVectorSpace.lean Modified Mathlib/MeasureTheory/Group/AddCircle.lean Modified Mathlib/MeasureTheory/Integral/CircleIntegral.lean Modified Mathlib/MeasureTheory/Integral/DivergenceTheorem.lean Modified Mathlib/MeasureTheory/Measure/Haar/Basic.lean Modified Mathlib/NumberTheory/DiophantineApproximation.lean Modified Mathlib/NumberTheory/LSeries/AbstractFuncEq.lean Modified Mathlib/NumberTheory/LSeries/Basic.lean Modified Mathlib/NumberTheory/Liouville/Basic.lean Modified Mathlib/NumberTheory/ModularForms/EisensteinSeries/UniformConvergence.lean Modified Mathlib/NumberTheory/NumberField/CanonicalEmbedding/ConvexBody.lean Modified Mathlib/NumberTheory/NumberField/Discriminant.lean Modified Mathlib/NumberTheory/Padics/PadicNumbers.lean Modified Mathlib/NumberTheory/Rayleigh.lean Modified Mathlib/Order/Filter/AtTopBot.lean Modified Mathlib/Probability/Moments.lean Modified Mathlib/RingTheory/DedekindDomain/FiniteAdeleRing.lean Modified Mathlib/RingTheory/DedekindDomain/SelmerGroup.lean Modified Mathlib/RingTheory/LaurentSeries.lean Modified Mathlib/RingTheory/RootsOfUnity/Complex.lean Modified Mathlib/RingTheory/Valuation/Basic.lean Modified Mathlib/Tactic/CancelDenoms/Core.lean Modified Mathlib/Topology/Algebra/PontryaginDual.lean Modified Mathlib/Topology/Algebra/WithZeroTopology.lean Modified Mathlib/Topology/Homotopy/HSpaces.lean Modified Mathlib/Topology/MetricSpace/Contracting.lean Modified Mathlib/Topology/MetricSpace/Polish.lean Modified Mathlib/Topology/Metrizable/Uniformity.lean Modified Mathlib/Topology/UnitInterval.lean 2024-08-26 13:45:56 8e866f7 feat(ModelTheory): Substructure-closure and finite generation in relational languages (#16010) Shows that in relational languages, all sets are closed as substructures. As a consequence, finiteness is the same as finite generation. ESTIMATED CHANGES Modified Mathlib/ModelTheory/FinitelyGenerated.lean + theorem FirstOrder.Language.Structure.FG.finite + theorem FirstOrder.Language.Structure.FG.of_finite + theorem FirstOrder.Language.Structure.fg_iff_finite + theorem FirstOrder.Language.Substructure.FG.finite + theorem FirstOrder.Language.Substructure.FG.of_finite + theorem FirstOrder.Language.Substructure.fg_iff_finite Modified Mathlib/ModelTheory/Substructures.lean + theorem FirstOrder.Language.Substructure.mem_closed_iff + theorem FirstOrder.Language.Substructure.mem_closed_of_isRelational 2024-08-26 13:16:12 5d1d19d feat(Topology/UrysohnsLemma): add a variation of Urysohn's lemma for T2Space (#12459) prove a version of Urysohn's lemma and separation lemmas needed for them. - In a `T2Space X`, for a closed set `t` and a relatively compact open set `s` such that `t ⊆ s`, there is a continuous function `f` supported in `s`, `f x = 1` on `t` and `0 ≤ f x ≤ 1`. Motivation: this will be used in #12290. ESTIMATED CHANGES Modified Mathlib/Topology/Separation.lean + theorem IsCompact.disjoint_nhdsSet_nhds + theorem IsCompact.separation_of_not_mem + theorem SeparatedNhds.of_isClosed_isCompact_closure_compl_isClosed Modified Mathlib/Topology/UrysohnsLemma.lean + theorem Urysohns.CU.disjoint_C_support_lim + theorem exists_tsupport_one_of_isOpen_isClosed 2024-08-26 13:16:10 f276328 feat: bijection between Dyck words and rooted binary trees (#9781) ESTIMATED CHANGES Modified Mathlib/Combinatorics/Enumerative/DyckWord.lean + def DyckWord.IsNested + theorem DyckWord.card_dyckWord_semilength_eq_catalan +/- def DyckWord.denest +/- theorem DyckWord.denest_nest + def DyckWord.equivTree + def DyckWord.equivTreesOfNumNodesEq - theorem DyckWord.firstReturn_nest_add + theorem DyckWord.insidePart_add + theorem DyckWord.insidePart_nest - theorem DyckWord.insidePart_nest_add + theorem DyckWord.le_add_self + theorem DyckWord.le_of_suffix + theorem DyckWord.nest_denest + theorem DyckWord.outsidePart_add + theorem DyckWord.outsidePart_nest - theorem DyckWord.outsidePart_nest_add + theorem DyckWord.semilength_eq_numNodes_equivTree - theorem DyckWord.zero_le 2024-08-26 12:01:50 f1ae38a feat: the lambdaSyntax linter (#15896) The mathlib style guide states clearly that using \lambda for anonymous functions is disallowed, and the fun keyword is preferred. This linter enforces this. ESTIMATED CHANGES Modified Mathlib/Tactic/Linter/Lint.lean +/- def Mathlib.Linter.CDotLinter.cdotLinter +/- def Mathlib.Linter.DupNamespaceLinter.dupNamespace + def Mathlib.Linter.Style.lambdaSyntax.findLambdaSyntax + def Mathlib.Linter.Style.lambdaSyntax.lambdaSyntaxLinter Modified lakefile.lean Modified test/Lint.lean + def foo 2024-08-26 11:52:46 9969491 feat(RingTheory/Valuation/AlgebraInstances): add instances (#15734) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/RingTheory/Valuation/AlgebraInstances.lean + theorem ValuationSubring.algebraMap_injective + theorem ValuationSubring.integralClosure_algebraMap_injective + theorem ValuationSubring.isIntegral_of_mem_ringOfIntegers' + theorem ValuationSubring.isIntegral_of_mem_ringOfIntegers 2024-08-26 11:39:00 70e05eb feat(RingTheory.Valuation.Minpoly): add valuation lemmas (#15736) We prove some results about valuations of zero coefficients of minimal polynomials. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/RingTheory/Valuation/Basic.lean + theorem Valuation.ne_zero_of_isUnit + theorem Valuation.ne_zero_of_unit Added Mathlib/RingTheory/Valuation/Minpoly.lean + theorem Valuation.coeff_zero_minpoly + theorem Valuation.pow_coeff_zero_ne_zero_of_unit 2024-08-26 10:46:40 52fdd96 chore: tidy various files (#16132) ESTIMATED CHANGES Modified Archive/Sensitivity.lean +/- theorem Sensitivity.f_squared Modified Counterexamples/Phillips.lean Modified Mathlib/Algebra/BigOperators/Group/Finset.lean Modified Mathlib/Algebra/ContinuedFractions/Computation/CorrectnessTerminating.lean Modified Mathlib/AlgebraicTopology/DoldKan/HomotopyEquivalence.lean Modified Mathlib/AlgebraicTopology/DoldKan/PInfty.lean Modified Mathlib/CategoryTheory/Category/Cat/Adjunction.lean Modified Mathlib/Combinatorics/SimpleGraph/Diam.lean Modified Mathlib/Data/Finset/Lattice.lean Modified Mathlib/Data/List/Sort.lean +/- theorem List.mem_insertionSort Modified Mathlib/Data/Set/Card.lean Modified Mathlib/LinearAlgebra/Trace.lean Modified Mathlib/MeasureTheory/Decomposition/Exhaustion.lean Modified Mathlib/ModelTheory/Fraisse.lean Modified Mathlib/ModelTheory/PartialEquiv.lean +/- theorem FirstOrder.Language.DirectLimit.le_partialEquivLimit Modified Mathlib/Order/SuccPred/Basic.lean Modified Mathlib/Order/SuccPred/LinearLocallyFinite.lean Modified Mathlib/Probability/Kernel/MeasureCompProd.lean Modified Mathlib/Probability/Martingale/Upcrossing.lean Modified Mathlib/RingTheory/Derivation/ToSquareZero.lean Modified Mathlib/RingTheory/Ideal/Maps.lean Modified Mathlib/RingTheory/MvPolynomial/Localization.lean Modified Mathlib/RingTheory/WittVector/IsPoly.lean Modified Mathlib/Topology/Algebra/InfiniteSum/Ring.lean Modified Mathlib/Topology/Algebra/Order/LiminfLimsup.lean Modified Mathlib/Topology/Order/LowerUpperTopology.lean 2024-08-26 10:46:38 cf2e934 feat: generalise LinearEquiv.curry to R-modules (#16123) Generalise statement of `LinearEquiv.curry` from `(ι × κ) → R ≃ₗ[R] ι → κ → R` to `(ι × κ) → M ≃ₗ[R] ι → κ → M` with `M` an `R`-module. ESTIMATED CHANGES Modified Mathlib/Algebra/Module/Equiv/Basic.lean +/- theorem LinearEquiv.coe_curry +/- theorem LinearEquiv.coe_curry_symm 2024-08-26 10:46:37 882e7d4 feat: A convex function bounded on a set is bounded on its convex hull (#16118) This is a version of the maximum principle for convex functions. Also make the existing maximum principles more syntactically general for ease of use. This syntactic generalisation is useful because often the domain on which a function is continuous is a ball, a half-space, an interval... which is merely a superset of the set on which we want to apply the maximum principle. Before this PR, one therefore has to restrict the convexity of a function from its natural domain to the set on which we want to apply the maximum principle. This is unnecessarily cumbersome. ESTIMATED CHANGES Modified Mathlib/Analysis/Convex/Jensen.lean + theorem ConcaveOn.bddBelow_convexHull +/- theorem ConcaveOn.exists_le_of_centerMass +/- theorem ConcaveOn.exists_le_of_mem_convexHull +/- theorem ConcaveOn.min_le_of_mem_Icc +/- theorem ConcaveOn.min_le_of_mem_segment + theorem ConvexOn.bddAbove_convexHull +/- theorem ConvexOn.exists_ge_of_centerMass +/- theorem ConvexOn.exists_ge_of_mem_convexHull + theorem ConvexOn.inf_le_of_mem_convexHull +/- theorem ConvexOn.le_max_of_mem_Icc +/- theorem ConvexOn.le_max_of_mem_segment + theorem ConvexOn.le_sup_of_mem_convexHull - theorem inf_le_of_mem_convexHull - theorem le_sup_of_mem_convexHull Modified Mathlib/Analysis/Convex/Normed.lean Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Bounds.lean 2024-08-26 10:46:36 7156387 feat: A function is eventually bounded above/below iff it's eventually `BddAbove`/`BddBelow` (#16117) Translate between two statements that are "obviously the same" ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Integral/BoundedContinuousFunction.lean Modified Mathlib/Order/LiminfLimsup.lean +/- theorem BddAbove.isBoundedUnder +/- theorem BddBelow.isBoundedUnder + theorem Filter.isBoundedUnder_iff_eventually_bddAbove + theorem Filter.isBoundedUnder_iff_eventually_bddBelow 2024-08-26 10:46:35 c8c57e0 feat: Local lipschitzness under pointwise operations (#16115) ESTIMATED CHANGES Modified Mathlib/Analysis/BoundedVariation.lean Modified Mathlib/Analysis/Normed/Group/Pointwise.lean Modified Mathlib/Analysis/Normed/Group/Uniform.lean + theorem LipschitzOnWith.div + theorem LipschitzOnWith.mul +/- theorem LipschitzWith.div - theorem LipschitzWith.mul' + theorem LipschitzWith.mul + theorem LocallyLipschitz.div + theorem LocallyLipschitz.mul + theorem LocallyLipschitzOn.div + theorem LocallyLipschitzOn.mul + theorem locallyLipschitzOn_inv_iff Modified Mathlib/Analysis/ODE/Gronwall.lean Modified Mathlib/Analysis/ODE/PicardLindelof.lean Modified Mathlib/MeasureTheory/Measure/Hausdorff.lean Modified Mathlib/Topology/EMetricSpace/Lipschitz.lean Modified Mathlib/Topology/MetricSpace/HausdorffDimension.lean 2024-08-26 10:46:34 966a3ce refactor(Dual): drop a `DecidableEq` assumption (#16109) Split `DualBases.eval` into `eval_same` and `eval_of_ne` to avoid a `DecidableEq` assumption. ESTIMATED CHANGES Modified Archive/Sensitivity.lean Modified Mathlib/LinearAlgebra/Dual.lean +/- theorem Module.DualBases.coe_dualBasis +/- def Module.DualBases.coeffs +/- theorem Module.DualBases.coeffs_apply 2024-08-26 10:46:33 d6507ed refactor(ModelTheory): Prove preservation results at the level of `HomClass` and `StrongHomClass` (#16107) Prove results about various kinds of first-order maps preserving the values of terms and formulas at a level of higher generality, in terms of `HomClass` or `StrongHomClass` and `EquivLike`. ESTIMATED CHANGES Modified Mathlib/ModelTheory/Bundled.lean Modified Mathlib/ModelTheory/ElementaryMaps.lean Modified Mathlib/ModelTheory/Satisfiability.lean Modified Mathlib/ModelTheory/Semantics.lean - theorem FirstOrder.Language.Embedding.realize_term - theorem FirstOrder.Language.Equiv.elementarilyEquivalent - theorem FirstOrder.Language.Equiv.realize_boundedFormula - theorem FirstOrder.Language.Equiv.realize_formula - theorem FirstOrder.Language.Equiv.realize_sentence - theorem FirstOrder.Language.Equiv.realize_term - theorem FirstOrder.Language.Equiv.theory_model - theorem FirstOrder.Language.Hom.realize_term + theorem FirstOrder.Language.HomClass.realize_term + theorem FirstOrder.Language.StrongHomClass.elementarilyEquivalent + theorem FirstOrder.Language.StrongHomClass.realize_boundedFormula + theorem FirstOrder.Language.StrongHomClass.realize_formula + theorem FirstOrder.Language.StrongHomClass.realize_sentence + theorem FirstOrder.Language.StrongHomClass.theory_model Modified Mathlib/ModelTheory/Substructures.lean 2024-08-26 10:46:31 90273ce chore: fix spelling mistakes in create-adaptation-pr.sh and commutative.sty (#16101) ESTIMATED CHANGES Modified scripts/create-adaptation-pr.sh Modified widget/src/penrose/commutative.sty 2024-08-26 10:46:30 7374f53 fix: typo in finsuppScalarRight docstring (#16097) ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/DirectSum/Finsupp.lean 2024-08-26 10:46:29 7f1ee42 feat: add lemmas for ofComplex evaluations outside UpperHalfPlane (#16005) This is useful in many places to remove `(hz : 0 < z.im)` hypotheses. ESTIMATED CHANGES Modified Mathlib/Analysis/Complex/UpperHalfPlane/Topology.lean +/- theorem UpperHalfPlane.comp_ofComplex + theorem UpperHalfPlane.comp_ofComplex_of_im_le_zero + theorem UpperHalfPlane.comp_ofComplex_of_im_pos + theorem UpperHalfPlane.ofComplex_apply_eq_ite + theorem UpperHalfPlane.ofComplex_apply_eq_of_im_nonpos + theorem UpperHalfPlane.ofComplex_apply_of_im_nonpos 2024-08-26 10:46:28 b588412 feat(Algebra/Homology): the associator isomorphism for homological complexes, in each degree (#15740) We start constructing an associator isomorphism for the action of compositions of bifunctors on homological complexes. In this PR, assuming we have an isomorphism of trifunctors `associator : bifunctorComp₁₂ F₁₂ G ≅ bifunctorComp₂₃ F G₂₃`, we obtain an isomorphism in each degree: `(mapBifunctor (mapBifunctor K₁ K₂ F₁₂ c₁₂) K₃ G c₄).X j ≅ (mapBifunctor K₁ (mapBifunctor K₂ K₃ G₂₃ c₂₃) F c₄).X j`. In future PRs, we shall study the differentials on these complexes and show that it gives an isomorphism of complexes. In particular, this shall give the associator isomorphism for the tensor product of homological complexes (PR #15695). ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Homology/BifunctorAssociator.lean + theorem HomologicalComplex.mapBifunctor₁₂.hom_ext + theorem HomologicalComplex.mapBifunctor₁₂.ιOrZero_eq + theorem HomologicalComplex.mapBifunctor₁₂.ιOrZero_eq_zero + theorem HomologicalComplex.mapBifunctor₁₂.ι_eq + theorem HomologicalComplex.mapBifunctor₁₂.ι_mapBifunctor₁₂Desc 2024-08-26 10:46:27 d2c834b chore(SetTheory/Ordinal/*): make `Ordinal.enum` an order isomorphism (#5582) Suggested at https://github.com/leanprover-community/mathlib/pull/18547#discussion_r1149673778 Cons: This will cause goals of the form `o ∈ {o : Ordinal | o < type r}` rather than `o < type r`. ESTIMATED CHANGES Modified Mathlib/MeasureTheory/MeasurableSpace/Card.lean Modified Mathlib/SetTheory/Cardinal/Cofinality.lean Modified Mathlib/SetTheory/Cardinal/Ordinal.lean Modified Mathlib/SetTheory/Ordinal/Arithmetic.lean Modified Mathlib/SetTheory/Ordinal/Basic.lean +/- def Ordinal.enum - def Ordinal.enumIso +/- theorem Ordinal.enum_inj +/- theorem Ordinal.enum_le_enum' +/- theorem Ordinal.enum_le_enum +/- theorem Ordinal.enum_lt_enum +/- theorem Ordinal.one_out_eq Modified Mathlib/Topology/Category/Profinite/Nobeling.lean +/- theorem Profinite.NobelingProof.Products.prop_of_isGood 2024-08-26 09:52:03 dee9f4f feat: `a / b * (c / a) = c / b` for `CommGroupWithZero` (#16111) Moves: * `div_mul_div_cancel` → `div_mul_div_cancel₀` * `div_mul_div_cancel'` → `div_mul_div_cancel` * `div_mul_div_cancel''` → `div_mul_div_cancel'` * `div_div_div_cancel_right` → `div_div_div_cancel_right₀` * `div_div_div_cancel_right'` → `div_div_div_cancel_right` Add the missing `div_mul_div_cancel₀'`. ESTIMATED CHANGES Modified Mathlib/Algebra/BigOperators/Group/List.lean Modified Mathlib/Algebra/Group/Basic.lean - theorem div_div_div_cancel_right' + theorem div_div_div_cancel_right - theorem div_mul_div_cancel'' +/- theorem div_mul_div_cancel' + theorem div_mul_div_cancel Modified Mathlib/Algebra/GroupWithZero/Units/Basic.lean - theorem div_div_div_cancel_right + theorem div_div_div_cancel_right₀ - theorem div_mul_div_cancel + theorem div_mul_div_cancel₀' + theorem div_mul_div_cancel₀ Modified Mathlib/Algebra/Order/Hom/Basic.lean Modified Mathlib/Analysis/BoxIntegral/Box/Basic.lean Modified Mathlib/Analysis/Convex/GaugeRescale.lean Modified Mathlib/Analysis/Normed/Group/Basic.lean Modified Mathlib/Analysis/SpecialFunctions/Complex/Arg.lean Modified Mathlib/Analysis/SpecialFunctions/Log/Base.lean Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Bounds.lean Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Complex.lean Modified Mathlib/Analysis/Subadditive.lean Modified Mathlib/Combinatorics/Additive/PluenneckeRuzsa.lean Modified Mathlib/Combinatorics/SimpleGraph/Density.lean Modified Mathlib/Combinatorics/SimpleGraph/Regularity/Lemma.lean Modified Mathlib/Data/Nat/Cast/Field.lean Modified Mathlib/Topology/Algebra/UniformGroup.lean 2024-08-26 08:30:00 ec00a8f chore: update Mathlib dependencies 2024-08-26 (#16151) This PR updates the Mathlib dependencies. ESTIMATED CHANGES Modified lake-manifest.json 2024-08-26 06:52:40 d011eb1 feat(Measure/Typeclasses): prove `≪` both ways (#16146) - Rename `exists_absolutelyContinuous_isFiniteMeasure` to `exists_isFiniteMeasure_absolutelyContinuous` to match the statement. - Prove `ν ≪ μ`, not only `μ ≪ ν`. - Turn the old lemma into a deprecated alias. ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Covering/Besicovitch.lean Modified Mathlib/MeasureTheory/Decomposition/Exhaustion.lean Modified Mathlib/MeasureTheory/Measure/Typeclasses.lean + theorem MeasureTheory.exists_isFiniteMeasure_absolutelyContinuous 2024-08-26 05:44:20 18cb858 chore: reorder lakefile to put dependencies first (#16081) The lakefile options configuration has grown long enough that the dependencies were off the first screen. Since I change these often (and, I guess logically they do come first!), I'd like to move them to the top. ESTIMATED CHANGES Modified lakefile.lean 2024-08-26 02:53:53 8e8377e chore: remove unintentionally repeated words and characters (#16147) ESTIMATED CHANGES Modified Mathlib/Algebra/Homology/ComplexShapeSigns.lean Modified Mathlib/Algebra/Module/Defs.lean Modified Mathlib/Algebra/Module/LinearMap/Defs.lean Modified Mathlib/Analysis/LocallyConvex/Polar.lean Modified Mathlib/Analysis/Normed/Group/SemiNormedGrp/Kernels.lean Modified Mathlib/CategoryTheory/Functor/FullyFaithful.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Countable.lean Modified Mathlib/CategoryTheory/SingleObj.lean Modified Mathlib/Data/Matroid/Closure.lean Modified Mathlib/GroupTheory/HNNExtension.lean Modified Mathlib/GroupTheory/MonoidLocalization/Basic.lean Modified Mathlib/GroupTheory/Perm/Cycle/Type.lean Modified Mathlib/GroupTheory/QuotientGroup/Basic.lean Modified Mathlib/LinearAlgebra/PiTensorProduct.lean Modified Mathlib/LinearAlgebra/RootSystem/Basic.lean Modified Mathlib/Logic/Godel/GodelBetaFunction.lean Modified Mathlib/MeasureTheory/Integral/Lebesgue.lean Modified Mathlib/MeasureTheory/Measure/ContinuousPreimage.lean Modified Mathlib/MeasureTheory/Measure/Haar/Quotient.lean Modified Mathlib/MeasureTheory/Measure/MeasureSpace.lean Modified Mathlib/MeasureTheory/Measure/Regular.lean Modified Mathlib/NumberTheory/FLT/Three.lean Modified Mathlib/NumberTheory/LSeries/RiemannZeta.lean Modified Mathlib/NumberTheory/NumberField/House.lean Modified Mathlib/Order/CompleteLattice.lean Modified Mathlib/Probability/Kernel/Basic.lean Modified Mathlib/Probability/Kernel/Disintegration/CDFToKernel.lean Modified Mathlib/Probability/Kernel/Disintegration/Integral.lean Modified Mathlib/RepresentationTheory/GroupCohomology/LowDegree.lean Modified Mathlib/RingTheory/Polynomial/Hermite/Basic.lean Modified Mathlib/Tactic/Explode.lean Modified Mathlib/Tactic/Linter/MinImports.lean Modified Mathlib/Tactic/Linter/TextBased.lean Modified Mathlib/Tactic/ToAdditive/Frontend.lean Modified Mathlib/Topology/Algebra/ConstMulAction.lean Modified Mathlib/Topology/Compactness/Lindelof.lean Modified Mathlib/Topology/DiscreteSubset.lean Modified Mathlib/Topology/MetricSpace/Bounded.lean 2024-08-26 00:19:32 fb8f2f9 feat(UniformSpace.Basic): define product of uniformities (#14718) Define a product of uniformities (`UniformityProd`) and prove a couple of lemmas (`ball_prod`, and the dubiously-named `UniformityProd_of_uniform_prod`). The goal is to make the manipulation of uniformities in product spaces more user-friendly. The statement of another lemmas is reworded to use UniformityProd. I also reformulated a few lemmas to make them easier to grasp in the documentation. [Zulip thread](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/Product.20of.20entourages/near/449906080) Edit: Paging Patrick, since you contributed to this file. ESTIMATED CHANGES Modified Mathlib/Topology/UniformSpace/Basic.lean + theorem Filter.HasBasis.uniformity_prod + theorem ball_entourageProd + def entourageProd + theorem entourageProd_mem_uniformity + theorem entourageProd_subset + theorem mem_entourageProd - theorem mem_uniform_prod 2024-08-25 19:19:18 2cae759 chore: fix spelling mistakes in topology files (#16127) ESTIMATED CHANGES Modified Mathlib/Topology/Algebra/ProperAction.lean Modified Mathlib/Topology/Algebra/Valued/ValuedField.lean Modified Mathlib/Topology/Category/LightProfinite/Basic.lean Modified Mathlib/Topology/Category/Profinite/Nobeling.lean Modified Mathlib/Topology/Category/Sequential.lean Modified Mathlib/Topology/ContinuousFunction/Sigma.lean Modified Mathlib/Topology/ContinuousFunction/ZeroAtInfty.lean Modified Mathlib/Topology/EMetricSpace/Lipschitz.lean Modified Mathlib/Topology/FiberBundle/Trivialization.lean Modified Mathlib/Topology/MetricSpace/Sequences.lean Modified Mathlib/Topology/Sheaves/SheafOfFunctions.lean Modified Mathlib/Topology/StoneCech.lean Modified Mathlib/Topology/UniformSpace/Ascoli.lean Modified Mathlib/Topology/UniformSpace/Equicontinuity.lean 2024-08-25 14:14:42 9b07fb6 feat(Dynamics.TopologicalEntropy): add CoverEntropy (#15753) Second PR in a sequence to implement the notion of topological entropy for maps using Bowen-Dinaburg's formalism. This file defines a notion of topological entropy for transformations of a uniform space, using covers. - [x] Dynamical uniformities - [x] Topological entropy via covers - [ ] Topological entropy via nets - [ ] Behaviour under morphisms - [ ] Behaviour for subsets and unions - [ ] Behaviour under products - [ ] Full shift Things get more serious. The first file was pretty short; this one is the longest. Paging @pitmonticone @sgouezel ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Dynamics/TopologicalEntropy/CoverEntropy.lean + theorem Dynamics.IsDynCoverOf.coverEntropyEnt_le_log_card_div + theorem Dynamics.IsDynCoverOf.iterate_le_pow + theorem Dynamics.IsDynCoverOf.nonempty + theorem Dynamics.IsDynCoverOf.nonempty_inter + theorem Dynamics.IsDynCoverOf.of_entourage_subset + theorem Dynamics.IsDynCoverOf.of_le + def Dynamics.IsDynCoverOf + theorem Dynamics.coverEntropyEnt_antitone + theorem Dynamics.coverEntropyEnt_empty + theorem Dynamics.coverEntropyEnt_finite_of_isCompact_invariant + theorem Dynamics.coverEntropyEnt_le_coverEntropy + theorem Dynamics.coverEntropyEnt_le_coverEntropyInfEnt + theorem Dynamics.coverEntropyEnt_le_log_coverMincard_div + theorem Dynamics.coverEntropyEnt_nonneg + theorem Dynamics.coverEntropyEnt_univ + theorem Dynamics.coverEntropyInfEnt_antitone + theorem Dynamics.coverEntropyInfEnt_empty + theorem Dynamics.coverEntropyInfEnt_le_coverEntropyEnt + theorem Dynamics.coverEntropyInfEnt_le_coverEntropyInf + theorem Dynamics.coverEntropyInfEnt_nonneg + theorem Dynamics.coverEntropyInfEnt_univ + theorem Dynamics.coverEntropyInf_antitone + theorem Dynamics.coverEntropyInf_empty + theorem Dynamics.coverEntropyInf_eq_coverEntropy + theorem Dynamics.coverEntropyInf_eq_iSup_basis + theorem Dynamics.coverEntropyInf_le_coverEntropy + theorem Dynamics.coverEntropyInf_nonneg + theorem Dynamics.coverEntropy_antitone + theorem Dynamics.coverEntropy_empty + theorem Dynamics.coverEntropy_eq_iSup_basis + theorem Dynamics.coverEntropy_nonneg + theorem Dynamics.coverMincard_antitone + theorem Dynamics.coverMincard_empty + theorem Dynamics.coverMincard_eq_zero_iff + theorem Dynamics.coverMincard_finite_iff + theorem Dynamics.coverMincard_finite_of_isCompact_invariant + theorem Dynamics.coverMincard_finite_of_isCompact_uniformContinuous + theorem Dynamics.coverMincard_le_card + theorem Dynamics.coverMincard_le_pow + theorem Dynamics.coverMincard_monotone_time + theorem Dynamics.coverMincard_mul_le_pow + theorem Dynamics.coverMincard_univ + theorem Dynamics.coverMincard_zero + theorem Dynamics.exists_isDynCoverOf_of_isCompact_invariant + theorem Dynamics.exists_isDynCoverOf_of_isCompact_uniformContinuous + theorem Dynamics.isDynCoverOf_empty + theorem Dynamics.isDynCoverOf_univ + theorem Dynamics.isDynCoverOf_zero + theorem Dynamics.log_coverMincard_iterate_le + theorem Dynamics.log_coverMincard_le_add + theorem Dynamics.log_coverMincard_nonneg + theorem Dynamics.nonempty_inter_of_coverMincard + theorem Dynamics.one_le_coverMincard_iff 2024-08-25 14:14:41 d74bd1e feat (MeasureTheory.Decomposition.Lebesgue): `measure_sub_singularPart` and `measure_sub_rnDeriv` (#15540) Add `measure_sub_singularPart` and `measure_sub_rnDeriv`, they are the versions of `singularPart_add_rnDeriv` where the absolutely continuous part or the mutually singular part are isolated in the equality. ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Decomposition/Lebesgue.lean + theorem MeasureTheory.Measure.measure_sub_rnDeriv + theorem MeasureTheory.Measure.measure_sub_singularPart Modified Mathlib/MeasureTheory/Function/Jacobian.lean 2024-08-25 13:48:44 ef80ec4 feat: remove the assumption that the measure is a probability in the strong law of large numbers (#16131) Indeed, there is an independence assumption around, which implies that either the functions we're considering are zero (and the result is trivial) or the measure is a probability. ESTIMATED CHANGES Modified Mathlib/Data/ENNReal/Inv.lean Modified Mathlib/MeasureTheory/Function/LpSeminorm/Basic.lean +/- def MeasureTheory.eLpNorm + theorem MeasureTheory.eLpNorm_eq_zero_of_ae_zero Modified Mathlib/MeasureTheory/Function/LpSeminorm/ChebyshevMarkov.lean + theorem MeasureTheory.Memℒp.meas_ge_lt_top' + theorem MeasureTheory.Memℒp.meas_ge_lt_top Modified Mathlib/Probability/Independence/Basic.lean + theorem MeasureTheory.Integrable.isProbabilityMeasure_of_indepFun + theorem MeasureTheory.Memℒp.isProbabilityMeasure_of_indepFun + theorem ProbabilityTheory.IndepSet.measure_inter_eq_mul + theorem ProbabilityTheory.iIndepSet.meas_biInter Modified Mathlib/Probability/Independence/Kernel.lean + theorem ProbabilityTheory.Kernel.IndepSet.measure_inter_eq_mul + theorem ProbabilityTheory.Kernel.iIndepSet.meas_biInter Modified Mathlib/Probability/StrongLaw.lean +/- theorem ProbabilityTheory.strong_law_ae +/- theorem ProbabilityTheory.strong_law_ae_real 2024-08-25 13:48:43 b1ee9a9 chore(MeasureSpace): generalize to `NullMeasurableSet` (#16104) ESTIMATED CHANGES Modified Mathlib/Dynamics/Ergodic/Ergodic.lean Modified Mathlib/MeasureTheory/Measure/MeasureSpace.lean +/- theorem MeasureTheory.NullMeasurableSet.preimage 2024-08-25 13:48:42 091f5d3 feat: The norm of a complex-valued `AddChar` (#15433) From LeanAPAP ESTIMATED CHANGES Modified Mathlib/Algebra/Group/AddChar.lean + theorem AddChar.coe_ne_zero Modified Mathlib/Analysis/Normed/Field/Basic.lean + theorem AddChar.norm_apply Modified Mathlib/Analysis/RCLike/Basic.lean + theorem AddChar.inv_apply_eq_conj + theorem AddChar.map_neg_eq_conj 2024-08-25 12:51:37 bd9ce04 feat: The counting measure is nonzero (#16139) ... and other simple measure theory lemmas From LeanAPAP ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Measure/Count.lean + theorem MeasureTheory.Measure.count_ne_zero'' + theorem MeasureTheory.Measure.count_univ Modified Mathlib/MeasureTheory/Measure/Dirac.lean + theorem MeasureTheory.Measure.dirac_ne_zero Modified Mathlib/MeasureTheory/Measure/MeasureSpace.lean +/- theorem MeasureTheory.Measure.ae_smul_measure_eq +/- theorem MeasureTheory.Measure.ae_smul_measure_iff + theorem MeasureTheory.Measure.sum_eq_zero 2024-08-25 12:38:02 1e574d7 feat: remove `Nonempty` assumption in `condexpKernel` (#16138) ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Function/ConditionalExpectation/AEMeasurable.lean + theorem MeasureTheory.AEStronglyMeasurable'.of_subsingleton' + theorem MeasureTheory.AEStronglyMeasurable'.of_subsingleton Modified Mathlib/Probability/Independence/Conditional.lean Modified Mathlib/Probability/Independence/ZeroOne.lean +/- theorem ProbabilityTheory.condIndep_biSup_compl +/- theorem ProbabilityTheory.condIndep_biSup_limsup +/- theorem ProbabilityTheory.condIndep_iSup_limsup +/- theorem ProbabilityTheory.condIndep_limsup_atBot_self +/- theorem ProbabilityTheory.condIndep_limsup_atTop_self +/- theorem ProbabilityTheory.condIndep_limsup_self +/- theorem ProbabilityTheory.condexp_zero_or_one_of_measurableSet_limsup +/- theorem ProbabilityTheory.condexp_zero_or_one_of_measurableSet_limsup_atBot +/- theorem ProbabilityTheory.condexp_zero_or_one_of_measurableSet_limsup_atTop Modified Mathlib/Probability/Kernel/Condexp.lean +/- theorem ProbabilityTheory.condexpKernel_apply_eq_condDistrib + theorem ProbabilityTheory.condexpKernel_eq 2024-08-25 10:42:14 d0e15f3 feat: Density of the image of a finset under a bijection (#16129) From LeanAPAP ESTIMATED CHANGES Modified Mathlib/Data/Finset/Density.lean + theorem Finset.dens_image 2024-08-25 10:33:24 fb857aa refactor: Make it so that `sqrt` lemmas don't turn equalities around (#16134) From LeanAPAP ESTIMATED CHANGES Modified Archive/Imo/Imo1959Q2.lean Modified Archive/Imo/Imo1960Q2.lean Modified Mathlib/Analysis/InnerProductSpace/Basic.lean Modified Mathlib/Analysis/InnerProductSpace/PiL2.lean Modified Mathlib/Analysis/SpecialFunctions/Exp.lean Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Basic.lean Modified Mathlib/Data/Real/Sqrt.lean + theorem Real.sqrt_eq_iff_eq_mul_self + theorem Real.sqrt_eq_iff_eq_sq +/- theorem Real.sqrt_eq_iff_mul_self_eq 2024-08-25 09:29:30 55eed64 chore(CategoryTheory/Sites): address a bunch of porting notes (#16092) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Sites/Canonical.lean Modified Mathlib/CategoryTheory/Sites/Coherent/CoherentTopology.lean Modified Mathlib/CategoryTheory/Sites/Coherent/ExtensiveTopology.lean Modified Mathlib/CategoryTheory/Sites/Coherent/RegularTopology.lean Modified Mathlib/CategoryTheory/Sites/CompatibleSheafification.lean Modified Mathlib/CategoryTheory/Sites/ConcreteSheafification.lean - def CategoryTheory.GrothendieckTopology.sheafificationIsoPresheafToSheafCompSheafToPreasheaf Modified Mathlib/CategoryTheory/Sites/CoverLifting.lean Modified Mathlib/CategoryTheory/Sites/Coverage.lean Modified Mathlib/CategoryTheory/Sites/DenseSubsite.lean Modified Mathlib/CategoryTheory/Sites/Equivalence.lean Modified Mathlib/CategoryTheory/Sites/Grothendieck.lean +/- theorem CategoryTheory.GrothendieckTopology.Cover.condition - def CategoryTheory.GrothendieckTopology.Cover.sieve +/- theorem CategoryTheory.GrothendieckTopology.ext + theorem CategoryTheory.GrothendieckTopology.mem_sieves_iff_coe Modified Mathlib/CategoryTheory/Sites/InducedTopology.lean Modified Mathlib/CategoryTheory/Sites/LeftExact.lean Modified Mathlib/CategoryTheory/Sites/Pullback.lean Modified Mathlib/CategoryTheory/Sites/Subsheaf.lean Modified Mathlib/CategoryTheory/Sites/Types.lean 2024-08-25 06:43:03 bf2d126 feat: Direct sum of additive characters (#15432) Define the direct sum of additive characters as an `AddChar (⨁ i, G i) R`. From LeanAPAP ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/DirectSum/AddChar.lean + def AddChar.directSum + theorem AddChar.directSum_injective 2024-08-24 23:33:13 d24b834 feat(BalancedCoreHull): generalize TC assumptions (#16125) Generalize some theorems from `NormedField` to `NormedDivisionRing`. ESTIMATED CHANGES Modified Mathlib/Analysis/LocallyConvex/BalancedCoreHull.lean 2024-08-24 21:35:19 1b5b163 chore: fix spelling mistakes in tactic files (#16124) ESTIMATED CHANGES Modified Mathlib/Tactic/AdaptationNote.lean Modified Mathlib/Tactic/CC/Addition.lean Modified Mathlib/Tactic/CC/Datatypes.lean Modified Mathlib/Tactic/CancelDenoms/Core.lean Modified Mathlib/Tactic/CongrExclamation.lean Modified Mathlib/Tactic/DeriveTraversable.lean Modified Mathlib/Tactic/FBinop.lean Modified Mathlib/Tactic/FunProp/Core.lean Modified Mathlib/Tactic/FunProp/FunctionData.lean Modified Mathlib/Tactic/FunProp/Mor.lean Modified Mathlib/Tactic/FunProp/RefinedDiscrTree.lean Modified Mathlib/Tactic/FunProp/Types.lean Modified Mathlib/Tactic/Linarith/Oracle/SimplexAlgorithm/PositiveVector.lean Modified Mathlib/Tactic/Positivity/Core.lean Modified Mathlib/Tactic/ProdAssoc.lean Modified Mathlib/Tactic/Simps/Basic.lean Modified Mathlib/Tactic/Subsingleton.lean Modified Mathlib/Tactic/SuppressCompilation.lean Modified Mathlib/Tactic/TermCongr.lean Modified Mathlib/Tactic/Widget/StringDiagram.lean 2024-08-24 21:35:18 2f94560 feat(Logic/Equiv): involutions are inverses of themselves (#16011) This lemma is ported from to lean4 from Kyle Miller's [repo](https://github.com/kmill/lean-graphs). It is used while proving a lemma about combinatorial maps. ESTIMATED CHANGES Modified Mathlib/Logic/Equiv/Basic.lean + theorem Function.Involutive.symm_eq_self_of_involutive Modified Mathlib/Logic/Function/Basic.lean + theorem Function.Involutive.leftInverse_iff 2024-08-24 20:50:09 5f2b93e doc(Data/Finset/Lattice): fix typos in docstrings (#16100) In the docstrings of `Finset.min'` and `Finset.max'` a hypothesis named `H` was referred to as `h`. Even though the text was consistent, I think it is confusing when the docstring uses a different name compared to the definition. ESTIMATED CHANGES Modified Mathlib/Data/Finset/Lattice.lean 2024-08-24 18:34:36 5e408b0 feat(Data/Finset/Sort): Every finite linear order embeds into every infinite linear order (#16044) Constructs `Fintype.orderIsoOfFin` along the lines of `Finset.orderIsoOfFin` Shows that every finite linear order embeds into every infinite linear order ESTIMATED CHANGES Modified Mathlib/Data/Finset/Sort.lean + def Fintype.orderIsoFinOfCardEq + theorem nonempty_orderEmbedding_of_finite_infinite 2024-08-24 18:11:40 2a0605d chore: Rename `Real.RCLike` to `Real.instRCLike` (#16114) ... to avoid the obvious name clash ESTIMATED CHANGES Modified Mathlib/Analysis/RCLike/Basic.lean 2024-08-24 16:50:48 8b65e4b feat(Topology/DiscreteSubset): prove lemmas about the codiscrete filter, and define codiscreteWithin (#14837) Prove lemmas about the codiscrete filter. ESTIMATED CHANGES Modified Mathlib/Topology/DiscreteSubset.lean +/- def Filter.codiscrete + def Filter.codiscreteWithin + theorem mem_codiscrete' + theorem mem_codiscrete + theorem mem_codiscreteWithin + theorem mem_codiscreteWithin_accPt + theorem mem_codiscrete_accPt + theorem mem_codiscrete_subtype_iff_mem_codiscreteWithin 2024-08-24 15:01:22 bf50e1f feat(Analysis/SpecialFunctions/Complex/Log): Exponential tsum is tprod (#15378) Taking cexp of an infinite sum of logs gives a tprod. ESTIMATED CHANGES Modified Mathlib/Analysis/SpecialFunctions/Complex/Log.lean + theorem Complex.HasSum_cexp_HasProd + theorem Complex.cexp_tsum_eq_tprod + theorem Complex.summable_cexp_multipliable + theorem Real.HasSum_rexp_HasProd + theorem Real.rexp_tsum_eq_tprod + theorem Real.summable_cexp_multipliable 2024-08-24 13:23:17 bf43443 feat: The Kruskal-Katona theorem (#15000) Prove the Kruskal-Katona theorem. From LeanCamCombi ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Combinatorics/SetFamily/KruskalKatona.lean + theorem Finset.Colex.shadow_initSeg + theorem Finset.UV.isInitSeg_of_compressed + theorem Finset.UV.toColex_compress_lt_toColex + theorem Finset.iterated_kk + theorem Finset.kruskal_katona Modified Mathlib/Combinatorics/SetFamily/Shadow.lean + theorem Finset.shadow_mono 2024-08-24 10:15:52 b990f0e chore(CategoryTheory/Category): address some porting notes (#16095) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Category/Pairwise.lean Modified Mathlib/CategoryTheory/Category/PartialFun.lean Modified Mathlib/CategoryTheory/Category/Preorder.lean - theorem CategoryTheory.leOfHom_homOfLE 2024-08-24 09:53:12 326efbc chore(CategoryTheory/Limits): remove two porting notes (#16093) This appears to have been a bug in the `simpNF` linter which is now fixed ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Limits/IsLimit.lean 2024-08-23 21:19:36 ca6a6fd feat(CategoryTheory/Sites): constructors for Mayer-Vietoris squares (#14867) In this PR, we give constructors for Mayer-Vietoris squares, which allows the construction of these squares in the case of topological spaces. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Category/Grp/Adjunctions.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Pullback/Square.lean + theorem CategoryTheory.Square.IsPullback.flip + theorem CategoryTheory.Square.IsPullback.mono_f₁₂ + theorem CategoryTheory.Square.IsPullback.mono_f₁₃ + theorem CategoryTheory.Square.IsPushout.epi_f₂₄ + theorem CategoryTheory.Square.IsPushout.epi_f₃₄ + theorem CategoryTheory.Square.IsPushout.flip Modified Mathlib/CategoryTheory/Limits/Shapes/Types.lean Modified Mathlib/CategoryTheory/MorphismProperty/Limits.lean + theorem CategoryTheory.MorphismProperty.StableUnderBaseChange.monomorphisms + theorem CategoryTheory.MorphismProperty.StableUnderCobaseChange.epimorphisms Modified Mathlib/CategoryTheory/Sites/MayerVietorisSquare.lean + theorem CategoryTheory.GrothendieckTopology.MayerVietorisSquare.isPushoutAddCommGrpFreeSheaf + theorem CategoryTheory.Sheaf.isPullback_square_op_map_yoneda_presheafToSheaf_yoneda_iff Modified Mathlib/CategoryTheory/Sites/Sieves.lean Modified Mathlib/CategoryTheory/Square.lean + def CategoryTheory.NatTrans.mapSquare + def CategoryTheory.Square.mapFunctor Added Mathlib/Topology/Sheaves/MayerVietoris.lean 2024-08-23 17:13:33 6e23e47 feat: first return of a Dyck word (#15864) Second part of #9781. This also includes a `PartialOrder` instance on Dyck words directly reflecting the tree bijection, that in turn allows a `positivity` extension for `firstReturn`. ESTIMATED CHANGES Modified Mathlib/Combinatorics/Enumerative/DyckWord.lean +/- theorem DyckWord.cons_tail_dropLast_concat + theorem DyckWord.count_D_lt_count_U_of_lt_firstReturn + theorem DyckWord.count_take_firstReturn_add_one +/- def DyckWord.denest +/- theorem DyckWord.denest_nest + def DyckWord.firstReturn + theorem DyckWord.firstReturn_add + theorem DyckWord.firstReturn_lt_length + theorem DyckWord.firstReturn_nest + theorem DyckWord.firstReturn_nest_add + theorem DyckWord.firstReturn_pos + theorem DyckWord.firstReturn_zero +/- theorem DyckWord.getLast_eq_D +/- theorem DyckWord.head_eq_U + theorem DyckWord.infix_of_le + def DyckWord.insidePart + theorem DyckWord.insidePart_nest_add + theorem DyckWord.insidePart_zero + theorem DyckWord.monotone_semilength + theorem DyckWord.nest_insidePart_add_outsidePart + theorem DyckWord.nest_ne_zero + def DyckWord.outsidePart + theorem DyckWord.outsidePart_nest_add + theorem DyckWord.outsidePart_zero + theorem DyckWord.semilength_insidePart_add_semilength_outsidePart_add_one + theorem DyckWord.semilength_insidePart_lt + theorem DyckWord.semilength_outsidePart_lt + theorem DyckWord.strictMono_semilength + theorem DyckWord.toList_ne_nil + theorem DyckWord.zero_le + def Mathlib.Meta.Positivity.evalDyckWordFirstReturn 2024-08-23 16:44:53 d52e93c chore(CategoryTheory/Adjunction): add a todo to deduplicate API in `Unique` file (#16086) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Adjunction/Unique.lean 2024-08-23 15:37:50 a6f0112 feat(Order/Cover): add lemmas about `WithTop`/`WithBot` (#15487) ESTIMATED CHANGES Modified Mathlib/Order/Cover.lean + theorem WithBot.bot_covBy_coe + theorem WithBot.bot_wcovBy_coe + theorem WithBot.coe_covBy_coe + theorem WithBot.coe_wcovBy_coe + theorem WithTop.coe_covBy_coe + theorem WithTop.coe_covBy_top + theorem WithTop.coe_wcovBy_coe + theorem WithTop.coe_wcovBy_top Modified Mathlib/Order/Interval/Set/Basic.lean - theorem IsMax.Ioi_eq - theorem IsMin.Iio_eq + theorem Set.Iio_eq_empty_iff + theorem Set.Ioi_eq_empty_iff 2024-08-23 15:37:49 c606ebd feat(CategoryTheory): sheaf categories are cartesian closed (#15262) ... under some assumptions on the target category. We apply this to conclude that condensed sets and light condensed sets are cartesian closed. This is adapted from work done at the Copenhagen masterclass on formalisation of condensed mathematics in 2023. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Category/ModuleCat/Presheaf/Limits.lean Modified Mathlib/AlgebraicTopology/SimplicialObject.lean Modified Mathlib/CategoryTheory/Adjunction/AdjointFunctorTheorems.lean Modified Mathlib/CategoryTheory/ChosenFiniteProducts/FunctorCategory.lean Modified Mathlib/CategoryTheory/Closed/Cartesian.lean Modified Mathlib/CategoryTheory/Closed/Types.lean + def CategoryTheory.cartesianClosedFunctorToTypes Modified Mathlib/CategoryTheory/EssentiallySmall.lean Modified Mathlib/CategoryTheory/Extensive.lean Modified Mathlib/CategoryTheory/Galois/Prorepresentability.lean Modified Mathlib/CategoryTheory/Limits/ColimitLimit.lean Renamed Mathlib/CategoryTheory/Limits/FunctorCategory.lean to Mathlib/CategoryTheory/Limits/FunctorCategory/Basic.lean Renamed Mathlib/CategoryTheory/Limits/FunctorCategoryEpiMono.lean to Mathlib/CategoryTheory/Limits/FunctorCategory/EpiMono.lean Added Mathlib/CategoryTheory/Limits/FunctorCategory/Finite.lean Modified Mathlib/CategoryTheory/Limits/FunctorToTypes.lean Modified Mathlib/CategoryTheory/Limits/Preserves/FunctorCategory.lean Modified Mathlib/CategoryTheory/Limits/Presheaf.lean Modified Mathlib/CategoryTheory/Limits/Shapes/FunctorCategory.lean Modified Mathlib/CategoryTheory/Limits/Shapes/FunctorToTypes.lean Modified Mathlib/CategoryTheory/Limits/VanKampen.lean Modified Mathlib/CategoryTheory/Limits/Yoneda.lean Added Mathlib/CategoryTheory/Sites/CartesianClosed.lean Modified Mathlib/CategoryTheory/Sites/Sheafification.lean Modified Mathlib/CategoryTheory/Sites/Subsheaf.lean Added Mathlib/Condensed/CartesianClosed.lean Added Mathlib/Condensed/Light/CartesianClosed.lean Added Mathlib/Condensed/Light/Limits.lean Modified Mathlib/RepresentationTheory/Action/Basic.lean Modified Mathlib/Topology/Sheaves/Limits.lean 2024-08-23 14:42:50 5a4b605 chore(List): migrate more to `getElem` (#16084) ESTIMATED CHANGES Modified Mathlib/Data/List/Iterate.lean Modified Mathlib/Testing/SlimCheck/Gen.lean 2024-08-23 14:42:49 26df4ca chore: improve statement of a couple of lemmas about monic polynomials (#16019) The statement of `monic_X_pow_add` and `monic_X_pow_sub` have been changed to have `n` in the statement instead of `n + 1`. ESTIMATED CHANGES Modified Mathlib/Algebra/Polynomial/Monic.lean +/- theorem Polynomial.monic_X_pow_add +/- theorem Polynomial.monic_X_pow_add_C +/- theorem Polynomial.monic_X_pow_sub 2024-08-23 14:42:48 3f803c4 feat(Data/List/Sigma): Lemmas relating `List.dlookup` and `List.map` (#15928) ESTIMATED CHANGES Modified Mathlib/Data/List/Sigma.lean + theorem List.dlookup_map + theorem List.dlookup_map₁ + theorem List.dlookup_map₂ 2024-08-23 14:42:47 50c45c0 feat(Order/SuccPred/Limit): `mem_range_succ_or_isSuccLimit` (#15905) ESTIMATED CHANGES Modified Mathlib/Order/SuccPred/Limit.lean + theorem Order.mem_range_pred_or_isPredLimit + theorem Order.mem_range_succ_or_isSuccLimit 2024-08-23 14:42:46 66a5b12 feat(Order/WellFounded): WellFoundedLT.toOrderBot (#15902) A non-empty well-founded linear order has a bottom element. ESTIMATED CHANGES Modified Mathlib/Order/WellFounded.lean 2024-08-23 14:42:45 a6864a3 feat(RingTheory/Artinian): make `IsArtinian` an abbreviation for `WellFoundedLT` (#15797) We also tweak the `IsNoetherian` API analogously. This all improves code legibility quite a bit, and allows instance inference to be useful. ESTIMATED CHANGES Modified Mathlib/Algebra/DirectSum/LinearMap.lean +/- theorem LinearMap.trace_eq_zero_of_mapsTo_ne Modified Mathlib/Algebra/Lie/Engel.lean Modified Mathlib/Algebra/Lie/Nilpotent.lean Modified Mathlib/Algebra/Lie/Solvable.lean Modified Mathlib/Algebra/Lie/Subalgebra.lean - theorem LieSubalgebra.wellFounded_of_noetherian Modified Mathlib/Algebra/Lie/Submodule.lean + theorem LieSubmodule.wellFoundedLT_of_isArtinian - theorem LieSubmodule.wellFounded_of_isArtinian - theorem LieSubmodule.wellFounded_of_noetherian Modified Mathlib/Algebra/Lie/Weights/Basic.lean Modified Mathlib/AlgebraicGeometry/PrimeSpectrum/Noetherian.lean Modified Mathlib/LinearAlgebra/Eigenspace/Basic.lean Modified Mathlib/Order/ModularLattice.lean Modified Mathlib/Order/RelIso/Basic.lean Modified Mathlib/RingTheory/Artinian.lean +/- theorem IsArtinian.finite_of_linearIndependent - theorem IsArtinian.wellFounded_submodule_lt + theorem isArtinian_iff - theorem isArtinian_iff_wellFounded Modified Mathlib/RingTheory/Bezout.lean Modified Mathlib/RingTheory/DedekindDomain/Ideal.lean Modified Mathlib/RingTheory/Localization/Submodule.lean Modified Mathlib/RingTheory/Noetherian.lean + theorem isNoetherian_iff' + theorem isNoetherian_iff - theorem isNoetherian_iff_wellFounded - theorem wellFounded_submodule_gt Modified Mathlib/RingTheory/Polynomial/Basic.lean Modified Mathlib/RingTheory/UniqueFactorizationDomain.lean 2024-08-23 14:42:44 9a55ce7 feat(Set/Prod): add `dcomp_image_pi` (#15694) ESTIMATED CHANGES Modified Mathlib/Data/Set/Prod.lean + theorem Set.dcomp_image_pi + theorem Set.dcomp_image_univ_pi 2024-08-23 14:42:42 8738ebf feat(FieldTheory/Normal): Intersection of normal extensions is normal (#15290) This PR proves that an intersection of normal extensions is normal (we already have that a compositum of normal extensions is normal). ESTIMATED CHANGES Modified Mathlib/FieldTheory/Normal.lean Modified Mathlib/FieldTheory/SplittingField/IsSplittingField.lean + theorem IntermediateField.splits_iff_mem 2024-08-23 14:42:41 c378552 feat(Algebra/Homology): the Ext class of a short exact sequence (#14793) In this PR, we construct the class in `Ext S.X₃ S.X₁ 1` that is attached to a short exact short complex `S` in an abelian category. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Homology/DerivedCategory/Basic.lean + theorem DerivedCategory.singleFunctorsPostcompQIso_hom_hom + theorem DerivedCategory.singleFunctorsPostcompQIso_inv_hom Renamed Mathlib/Algebra/Homology/DerivedCategory/Ext.lean to Mathlib/Algebra/Homology/DerivedCategory/Ext/Basic.lean + theorem CategoryTheory.Abelian.Ext.comp_assoc_of_second_deg_zero + theorem CategoryTheory.Abelian.Ext.comp_assoc_of_third_deg_zero Added Mathlib/Algebra/Homology/DerivedCategory/Ext/ExtClass.lean + theorem CategoryTheory.ShortComplex.ShortExact.comp_extClass + theorem CategoryTheory.ShortComplex.ShortExact.extClass_comp + theorem CategoryTheory.ShortComplex.ShortExact.extClass_hom Modified Mathlib/CategoryTheory/Localization/SmallHom.lean + theorem CategoryTheory.Localization.hasSmallLocalizedHom_iff_source + theorem CategoryTheory.Localization.hasSmallLocalizedHom_iff_target Modified Mathlib/CategoryTheory/Localization/SmallShiftedHom.lean + theorem CategoryTheory.Localization.hasSmallLocalizedShiftedHom_iff_source + theorem CategoryTheory.Localization.hasSmallLocalizedShiftedHom_iff_target Modified Mathlib/CategoryTheory/Shift/Localization.lean + theorem CategoryTheory.MorphismProperty.shift Modified Mathlib/CategoryTheory/Sites/SheafCohomology/Basic.lean Modified Mathlib/CategoryTheory/Triangulated/Yoneda.lean 2024-08-23 12:36:44 faaca26 chore(Idempotents): use `Pairwise` (#15260) Also generalize a few lemmas from `[Fintype I]` to `{s : Finset I}`. ESTIMATED CHANGES Modified Mathlib/RingTheory/Idempotents.lean +/- theorem CompleteOrthogonalIdempotents.prod_one_sub +/- theorem OrthogonalIdempotents.isIdempotentElem_sum + theorem OrthogonalIdempotents.mul_sum_of_mem + theorem OrthogonalIdempotents.mul_sum_of_not_mem +/- theorem OrthogonalIdempotents.prod_one_sub 2024-08-23 10:19:32 b0278f5 chore(CategoryTheory/Adjunction): fix some formatting issues in `Mates` file (#16073) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Adjunction/Mates.lean +/- theorem CategoryTheory.conjugateEquiv_symm_comm 2024-08-23 10:19:31 f00a41a feat(Order/Group): a nontrivial densely linear ordered group isn't cyclic (#15547) ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Group/Basic.lean + theorem not_isCyclic_of_denselyOrdered 2024-08-23 10:19:29 b851847 chore(Init/Order): Rework files (#15228) Merge `Init.Order.Lemmas` and the part of `Init.Algebra.Classes` about relations into `Order.Defs`. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Group/Commute/Defs.lean Modified Mathlib/Data/DFinsupp/Lex.lean Modified Mathlib/Data/Finsupp/Lex.lean Modified Mathlib/Data/List/Nodup.lean Modified Mathlib/Data/Ordering/Lemmas.lean Modified Mathlib/Data/Prod/Lex.lean Modified Mathlib/Init/Algebra/Classes.lean - theorem antisymm - theorem asymm - theorem asymm_of - theorem irrefl - theorem irrefl_of - theorem not_lt_of_lt - theorem refl - theorem refl_of - theorem symm - theorem symm_of - theorem total_of - theorem trans - theorem trans_of - theorem trichotomous - theorem trichotomous_of Deleted Mathlib/Init/Order/LinearOrder.lean - theorem eq_max - theorem eq_min - theorem le_max_left - theorem le_max_right - theorem le_min - theorem lt_min - theorem max_assoc - theorem max_comm - theorem max_def - theorem max_eq_left - theorem max_eq_left_of_lt - theorem max_eq_right - theorem max_eq_right_of_lt - theorem max_le - theorem max_left_comm - theorem max_lt - theorem max_self - theorem min_assoc - theorem min_comm - theorem min_def - theorem min_eq_left - theorem min_eq_left_of_lt - theorem min_eq_right - theorem min_eq_right_of_lt - theorem min_le_left - theorem min_le_right - theorem min_left_comm - theorem min_self Modified Mathlib/Logic/Basic.lean Modified Mathlib/Logic/Function/Basic.lean Modified Mathlib/Order/Basic.lean Modified Mathlib/Order/Defs.lean + theorem antisymm + theorem asymm + theorem asymm_of + theorem eq_max + theorem eq_min + theorem irrefl + theorem irrefl_of + theorem le_max_left + theorem le_max_right + theorem le_min + theorem lt_min + theorem max_assoc + theorem max_comm + theorem max_def + theorem max_eq_left + theorem max_eq_left_of_lt + theorem max_eq_right + theorem max_eq_right_of_lt + theorem max_le + theorem max_left_comm + theorem max_lt + theorem max_self + theorem min_assoc + theorem min_comm + theorem min_def + theorem min_eq_left + theorem min_eq_left_of_lt + theorem min_eq_right + theorem min_eq_right_of_lt + theorem min_le_left + theorem min_le_right + theorem min_left_comm + theorem min_self + theorem refl + theorem refl_of + theorem symm + theorem symm_of + theorem total_of + theorem trans + theorem trans_of + theorem trichotomous + theorem trichotomous_of Modified Mathlib/Order/Lattice.lean Modified Mathlib/Order/RelClasses.lean Modified Mathlib/SetTheory/Game/Nim.lean Modified Mathlib/Tactic/MoveAdd.lean 2024-08-23 10:19:28 223cb8d feat: Intercalate a simplex between a point and a neighborhood (#14660) ... in finite dimensions. ESTIMATED CHANGES Modified Mathlib/Analysis/Convex/Normed.lean + theorem exists_mem_interior_convexHull_affineBasis 2024-08-23 10:19:27 5d83073 feat: `IsHomeomorph` predicate (#12533) Define an `IsHomeomorph` predicate for maps between topological spaces to complement the existing bundled `Homeomorph` API. ESTIMATED CHANGES Modified Mathlib/Topology/Constructions.lean + theorem IsOpenMap.sumMap Modified Mathlib/Topology/Homeomorph.lean + theorem IsHomeomorph.comp + theorem IsHomeomorph.pi_map + theorem IsHomeomorph.prodMap + theorem IsHomeomorph.sigmaMap + theorem IsHomeomorph.sumMap + structure IsHomeomorph + theorem isHomeomorph_iff_continuous_bijective + theorem isHomeomorph_iff_continuous_isClosedMap_bijective + theorem isHomeomorph_iff_embedding_surjective + theorem isHomeomorph_iff_exists_homeomorph + theorem isHomeomorph_iff_exists_inverse Modified Mathlib/Topology/Maps/Proper/Basic.lean +/- theorem isProperMap_id 2024-08-23 10:19:25 05827b1 feat: algebraic operations on `SeparationQuotient _` (#12329) I need this to drop `[T2Space _]` assumptions here and there. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Topology/Algebra/SeparationQuotient.lean + theorem SeparationQuotient.exists_out_continuousLinearMap + def SeparationQuotient.mkCLM + theorem SeparationQuotient.mkCLM_comp_outCLM + def SeparationQuotient.mkMonoidHom + theorem SeparationQuotient.mk_comp_outCLM + theorem SeparationQuotient.mk_div + theorem SeparationQuotient.mk_intCast + theorem SeparationQuotient.mk_inv + theorem SeparationQuotient.mk_mul + theorem SeparationQuotient.mk_natCast + theorem SeparationQuotient.mk_ofNat + theorem SeparationQuotient.mk_outCLM + theorem SeparationQuotient.mk_pow + theorem SeparationQuotient.mk_smul + theorem SeparationQuotient.mk_zpow + theorem SeparationQuotient.outCLM_embedding + theorem SeparationQuotient.outCLM_injective + theorem SeparationQuotient.outCLM_uniformContinuous + theorem SeparationQuotient.outCLM_uniformEmbedding + theorem SeparationQuotient.outCLM_uniformInducing Modified Mathlib/Topology/Inseparable.lean + theorem SeparationQuotient.mk_one 2024-08-23 09:30:30 b44ac12 chore: Don't simplify `Odd n` to `¬ Even n`, but the other way around (#16024) This is simply not simpler From LeanAPAP ESTIMATED CHANGES Modified Archive/Wiedijk100Theorems/Konigsberg.lean Modified Archive/Wiedijk100Theorems/PerfectNumbers.lean - theorem Theorems100.odd_mersenne_succ Modified Mathlib/Algebra/BigOperators/Ring/Nat.lean Modified Mathlib/Algebra/Field/Power.lean Modified Mathlib/Algebra/GeomSum.lean Modified Mathlib/Algebra/Order/Field/Power.lean Modified Mathlib/Algebra/Order/Ring/Abs.lean Modified Mathlib/Algebra/Order/Ring/Int.lean Modified Mathlib/Algebra/Order/Ring/Nat.lean Modified Mathlib/Algebra/Ring/Int.lean +/- theorem Int.even_or_odd +/- theorem Int.ne_of_odd_add + theorem Int.not_even_iff_odd + theorem Int.not_odd_iff_even +/- theorem Int.odd_iff_not_even +/- theorem Int.odd_mul Modified Mathlib/Algebra/Ring/NegOnePow.lean Modified Mathlib/Algebra/Ring/Parity.lean +/- theorem Nat.ne_of_odd_add + theorem Nat.not_even_iff_odd + theorem Nat.not_odd_iff_even +/- theorem Nat.odd_iff_not_even +/- theorem Nat.odd_mul Modified Mathlib/Analysis/SpecialFunctions/Complex/LogBounds.lean Modified Mathlib/Combinatorics/SimpleGraph/ConcreteColorings.lean Modified Mathlib/Combinatorics/SimpleGraph/DegreeSum.lean Modified Mathlib/Combinatorics/SimpleGraph/Matching.lean Modified Mathlib/Combinatorics/SimpleGraph/Trails.lean Modified Mathlib/Data/Nat/Factorization/Basic.lean Modified Mathlib/Data/Nat/Prime/Basic.lean Modified Mathlib/FieldTheory/KummerExtension.lean Modified Mathlib/GroupTheory/CommutingProbability.lean Modified Mathlib/GroupTheory/Coxeter/Basic.lean Modified Mathlib/GroupTheory/FixedPointFree.lean Modified Mathlib/LinearAlgebra/Matrix/Determinant/Basic.lean Modified Mathlib/NumberTheory/Cyclotomic/Discriminant.lean Modified Mathlib/NumberTheory/Cyclotomic/PrimitiveRoots.lean Modified Mathlib/NumberTheory/EllipticDivisibilitySequence.lean Modified Mathlib/NumberTheory/LucasLehmer.lean + theorem mersenne_odd Modified Mathlib/NumberTheory/Multiplicity.lean Modified Mathlib/NumberTheory/NumberField/Embeddings.lean Modified Mathlib/NumberTheory/Primorial.lean Modified Mathlib/NumberTheory/SumTwoSquares.lean Modified Mathlib/RingTheory/Polynomial/Cyclotomic/Eval.lean Modified Mathlib/RingTheory/Polynomial/Hermite/Basic.lean 2024-08-23 06:29:26 cae1b27 feat(Filter/Pointwise): add `one_prod` and `prod_one` (#15862) Similar lemmas about `pure` are already in the default `simp` set. ESTIMATED CHANGES Modified Mathlib/Order/Filter/Pointwise.lean + theorem Filter.one_prod + theorem Filter.prod_one 2024-08-23 04:17:40 444fb14 feat: toAdditive to transfer MatcherInfo data (#16026) so that printing the definitions shows `match … with` properly, and meta code looking for matchers work. Fixes an item on #1074 ESTIMATED CHANGES Modified Mathlib/Tactic/ToAdditive/Frontend.lean 2024-08-23 04:06:43 1699b55 feat(Algebra/Polynomial/Bivariate): add lemmas for bivariate polynomials (#14579) ESTIMATED CHANGES Modified Mathlib/Algebra/Polynomial/Bivariate.lean +/- theorem Polynomial.evalEvalRingHom_eq + theorem Polynomial.evalEval_CC + theorem Polynomial.evalEval_add + theorem Polynomial.evalEval_dvd + theorem Polynomial.evalEval_finset_sum + theorem Polynomial.evalEval_intCast + theorem Polynomial.evalEval_list_prod + theorem Polynomial.evalEval_mul + theorem Polynomial.evalEval_multiset_prod + theorem Polynomial.evalEval_natCast + theorem Polynomial.evalEval_neg + theorem Polynomial.evalEval_one + theorem Polynomial.evalEval_pow + theorem Polynomial.evalEval_prod + theorem Polynomial.evalEval_smul + theorem Polynomial.evalEval_sub + theorem Polynomial.evalEval_sum + theorem Polynomial.evalEval_surjective + theorem Polynomial.evalEval_zero +/- theorem Polynomial.eval₂_evalRingHom 2024-08-23 03:53:40 b597254 feat(RingTheory/Derivation): define `Differential` and `DifferentialAlgebra` typeclasses (#14699) Define a typeclass `Differential` of `CommRing`s with a chosen `Derivation`, a notation for that derivation, and a `DifferentialAlgebra` for `Algerba`s on differential rings whose `algebraMap` commutes with the derivation. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/RingTheory/Derivation/Basic.lean Added Mathlib/RingTheory/Derivation/DifferentialRing.lean + def Differential.equiv + theorem DifferentialAlgebra.equiv + theorem algebraMap.coe_deriv + def delabDeriv + theorem mem_range_of_deriv_eq_zero 2024-08-23 02:52:33 08b234f chore(SimpleGraph): fix `DecidableEq`/`Fintype` assumptions (#16079) Found by a linter in #10235 Mostly repeats @grunweg's #15306 accidentally reverted by @semorrison's #15726 ESTIMATED CHANGES Modified Mathlib/Combinatorics/SimpleGraph/Connectivity/WalkCounting.lean +/- theorem SimpleGraph.odd_card_iff_odd_components Modified Mathlib/Combinatorics/SimpleGraph/Turan.lean +/- theorem SimpleGraph.IsTuranMaximal.card_parts +/- theorem SimpleGraph.IsTuranMaximal.card_parts_le +/- theorem SimpleGraph.IsTuranMaximal.degree_eq_card_sub_part_card +/- theorem SimpleGraph.IsTuranMaximal.isEquipartition +/- theorem SimpleGraph.IsTuranMaximal.iso +/- theorem SimpleGraph.IsTuranMaximal.not_adj_iff_part_eq 2024-08-23 01:24:32 e6c72d0 refactor: remove `C⋆ᵐᵒᵈ` for C⋆-algebras and inner product spaces (#16048) ESTIMATED CHANGES Modified Mathlib/Analysis/CStarAlgebra/Module/Constructions.lean - def WithCStarModule.equivOfInnerₗᵢ - def WithCStarModule.equivₗᵢ +/- theorem WithCStarModule.inner_def - theorem WithCStarModule.inner_eq_inner - theorem WithCStarModule.norm_equiv - theorem WithCStarModule.norm_equiv_of_inner Modified Mathlib/Analysis/CStarAlgebra/Module/Synonym.lean 2024-08-23 01:02:07 7d69c22 chore: update Mathlib dependencies 2024-08-23 (#16069) This PR updates the Mathlib dependencies. ESTIMATED CHANGES Modified lake-manifest.json 2024-08-22 23:39:11 b48de69 fix: error positioning in `linear_combination` (#16072) A tweak to `linear_combination` so that when the default normalization tactic fails, the "red underlines" appear on the `linear_combination` call itself, rather than just on the "by" at the start of the proof. For example, compare before/after on this example: ```lean import Mathlib example {a : ℤ} (h : a = 1) : a = 2 := by linear_combination h ``` Zulip discussion: https://leanprover.zulipchat.com/#narrow/stream/270676-lean4/topic/Propagating.20errors.20through.20Unhygienic.2Erun ESTIMATED CHANGES Modified Mathlib/Tactic/LinearCombination.lean +/- def Mathlib.Tactic.LinearCombination.elabLinearCombination 2024-08-22 16:12:36 459ad77 feat(RingTheory/Flat/Basic): if a subalgebra is flat, then it's also flat as a submodule (#15360) ESTIMATED CHANGES Modified Mathlib/RingTheory/Flat/Basic.lean 2024-08-22 13:53:00 b35703f feat(Category/Cat): add API lemmas (#16064) This PR adds more API lemmas about the bicategory of categories `Cat`. These are added as `simp` is not able to use the corresponding `NatTrans` lemmas when working with 2-morphisms in the bicategory `Cat`. Due to this some proofs in `CategoryTheory/Grothendieck` can be golfed. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Category/Cat.lean + theorem CategoryTheory.Cat.comp_app + theorem CategoryTheory.Cat.eqToHom_app + theorem CategoryTheory.Cat.id_app + theorem CategoryTheory.Cat.id_obj Modified Mathlib/CategoryTheory/Grothendieck.lean 2024-08-22 13:52:59 24d5f11 chore (GCDMonoid.Nat): avoid bundled ordered algebra and move `Init.Data.Int.Order` (#15152) We swap out some bundled ordered algebra API calls for native `Nat` and `Int` ones. We also add one. This allows us to avoid needing bundled ordered algebra in this file and pushes its import further downstream. Since it touches `Init.Data.Int.Order`, we rename it `Data.Int.Order.Basic`. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/GCDMonoid/Nat.lean +/- theorem Int.nonneg_of_normalize_eq_self Modified Mathlib/Algebra/Order/Ring/Unbundled/Rat.lean Modified Mathlib/Data/Int/GCD.lean Renamed Mathlib/Init/Data/Int/Order.lean to Mathlib/Data/Int/Order/Basic.lean + theorem Int.mul_nonneg_of_nonneg_or_nonpos + theorem Int.nonneg_or_nonpos_of_mul_nonneg Modified Mathlib/Data/Nat/Factors.lean Modified Mathlib/Data/Nat/GCD/Basic.lean Modified Mathlib/Data/Nat/Prime/Defs.lean Modified Mathlib/Data/PNat/Defs.lean Modified Mathlib/Order/Monotone/Basic.lean Modified Mathlib/Tactic/Linarith/Lemmas.lean Modified Mathlib/Tactic/Positivity.lean Modified scripts/noshake.json 2024-08-22 13:52:57 06e67b6 feat(Algebra): additive `n`-torsion subgroups (#11742) For an `AddCommGroup` `A` and an integer `n`, - Define `AddSubgroup.torsionBy A n` using `Submodule.torsionBy`; - Define a scoped notation `A[n]`. Additionally, for a natural number `n`, - Equip `A[n]` with a `ZMod n`-module structure. ESTIMATED CHANGES Modified Mathlib/Algebra/Module/Torsion.lean + theorem AddSubgroup.torsionBy.mod_self_nsmul' + theorem AddSubgroup.torsionBy.mod_self_nsmul + theorem AddSubgroup.torsionBy.neg + theorem AddSubgroup.torsionBy.nsmul + theorem AddSubgroup.torsionBy.nsmul_iff + def AddSubgroup.torsionBy.zmodModule + def AddSubgroup.torsionBy 2024-08-22 12:56:31 3670510 chore(Order/Defs): Cleanup (#16059) ESTIMATED CHANGES Modified Mathlib/Order/Basic.lean - theorem not_le_of_lt - theorem not_lt_of_le Modified Mathlib/Order/Defs.lean +/- theorem Decidable.eq_or_lt_of_le +/- theorem Decidable.le_iff_lt_or_eq +/- theorem Decidable.lt_or_eq_of_le +/- theorem compare_eq_iff_eq +/- theorem compare_ge_iff_ge +/- theorem compare_gt_iff_gt +/- theorem compare_iff +/- theorem compare_le_iff_le +/- theorem compare_lt_iff_lt +/- theorem eq_or_lt_of_not_lt +/- theorem ge_trans +/- theorem gt_irrefl +/- theorem gt_of_ge_of_gt +/- theorem gt_of_gt_of_ge +/- theorem gt_trans +/- theorem le_antisymm +/- theorem le_antisymm_iff +/- theorem le_iff_lt_or_eq +/- theorem le_of_eq +/- theorem le_of_eq_or_lt +/- theorem le_of_lt +/- theorem le_of_lt_or_eq +/- theorem le_of_not_ge +/- theorem le_of_not_gt +/- theorem le_of_not_le +/- theorem le_of_not_lt +/- theorem le_or_gt +/- theorem le_or_lt +/- theorem le_refl +/- theorem le_rfl +/- theorem le_total +/- theorem le_trans +/- theorem lt_asymm +/- theorem lt_iff_le_not_le +/- theorem lt_iff_not_ge +/- theorem lt_irrefl +/- theorem lt_of_le_not_le +/- theorem lt_of_le_of_lt +/- theorem lt_of_le_of_ne +/- theorem lt_of_lt_of_le +/- theorem lt_of_not_ge +/- theorem lt_or_eq_of_le +/- theorem lt_or_ge +/- theorem lt_or_gt_of_ne +/- theorem lt_or_le +/- theorem lt_trans +/- theorem lt_trichotomy +/- theorem ne_iff_lt_or_gt +/- theorem ne_of_gt +/- theorem ne_of_lt +/- theorem not_le +/- theorem not_le_of_gt + theorem not_le_of_lt +/- theorem not_lt +/- theorem not_lt_of_ge - theorem not_lt_of_gt + theorem not_lt_of_le 2024-08-22 12:56:29 139bf41 chore: polishing the IMO solution 2024Q1 (#15714) ESTIMATED CHANGES Modified Archive/Imo/Imo2024Q1.lean +/- theorem Imo2024Q1.Condition.mem_Ico_n_of_mem_Ioo 2024-08-22 12:00:14 add4983 docs: fix some outdated paths related to `Equiv` (#16051) These paths refer to files and folders that used to exist but not anymore due to refactors such as [mathlib3#12929](https://github.com/leanprover-community/mathlib3/pull/12929) and [mathlib3#8095](https://github.com/leanprover-community/mathlib4/pull/8095). ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Aut.lean Modified Mathlib/Algebra/Ring/Aut.lean Modified Mathlib/Data/Finset/Basic.lean Modified Mathlib/GroupTheory/Perm/Finite.lean Modified Mathlib/Logic/Equiv/Basic.lean 2024-08-22 10:11:41 8983ae2 chore: fix spelling mistakes in algebra files (#16056) ESTIMATED CHANGES Modified Mathlib/Algebra/AddConstMap/Basic.lean Modified Mathlib/Algebra/Algebra/Equiv.lean Modified Mathlib/Algebra/Category/CoalgebraCat/ComonEquivalence.lean Modified Mathlib/Algebra/FreeAlgebra.lean Modified Mathlib/Algebra/Group/Defs.lean Modified Mathlib/Algebra/Group/InjSurj.lean Modified Mathlib/Algebra/Homology/DerivedCategory/HomologySequence.lean Modified Mathlib/Algebra/Homology/Embedding/Basic.lean Modified Mathlib/Algebra/Homology/ShortComplex/Preadditive.lean Modified Mathlib/Algebra/Jordan/Basic.lean Modified Mathlib/Algebra/Lie/Semisimple/Basic.lean Modified Mathlib/Algebra/Module/Equiv/Defs.lean Modified Mathlib/Algebra/Module/Hom.lean Modified Mathlib/Algebra/MonoidAlgebra/ToDirectSum.lean Modified Mathlib/Algebra/Order/Ring/Star.lean Modified Mathlib/Algebra/Ring/CompTypeclasses.lean Modified Mathlib/Algebra/Ring/Equiv.lean Modified Mathlib/Algebra/Star/StarAlgHom.lean Modified Mathlib/Algebra/Star/StarRingHom.lean 2024-08-22 10:11:40 907d7e7 feat(Polynomial): eraseLead_add_of_degree_lt_left (#16035) ESTIMATED CHANGES Modified Mathlib/Algebra/Polynomial/EraseLead.lean + theorem Polynomial.eraseLead_add_of_degree_lt_left + theorem Polynomial.eraseLead_add_of_degree_lt_right 2024-08-22 09:16:23 dcbd379 fix: disable the haveLet linter (#16058) At least, until I fix a bug, reported both on [Mathlib](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/haveLet.20linter.20crashing.20under.20.60byAsSorry.60) and on projects depending on [Mathlib](https://leanprover.zulipchat.com/#narrow/stream/412902-Polynomial-Freiman-Ruzsa-conjecture/topic/Outstanding.20tasks.2C.20version.202.2E0/near/464281461). ESTIMATED CHANGES Modified Mathlib/Tactic/Linter/HaveLetLinter.lean Modified test/HaveLetLinter.lean 2024-08-22 08:20:24 7c426f6 chore: Fix mistakes in user-facing error and trace messages (#16046) chore: Fix mistakes in user-facing error and trace messages ESTIMATED CHANGES Modified Mathlib/Tactic/FunProp/Core.lean Modified Mathlib/Tactic/Subsingleton.lean 2024-08-22 08:20:22 87e5ef3 chore: tag more differentiability lemmas about `log` with `fun_prop` (#16027) From LeanAPAP ESTIMATED CHANGES Modified Mathlib/Analysis/SpecialFunctions/Log/Deriv.lean +/- theorem Real.differentiableAt_log 2024-08-22 08:20:21 51a8e47 feat(CategoryTheory): Beck's comonadicity theorem (#14238) Prove Beck's comonadicity theorem by dualizing everything in [CategoryTheory.Monad.Monadicity](https://leanprover-community.github.io/mathlib4_docs/Mathlib/CategoryTheory/Monad/Monadicity.html). This contribution was created as part of the AIM workshop "Formalizing Algebraic Geometry" in June 2024. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/CategoryTheory/Monad/Adjunction.lean Added Mathlib/CategoryTheory/Monad/Comonadicity.lean + def CategoryTheory.Comonad.ComonadicityInternal.comparisonAdjunction + theorem CategoryTheory.Comonad.ComonadicityInternal.comparisonAdjunction_counit_f + theorem CategoryTheory.Comonad.ComonadicityInternal.comparisonAdjunction_counit_f_aux + theorem CategoryTheory.Comonad.ComonadicityInternal.comparisonAdjunction_unit_app + def CategoryTheory.Comonad.ComonadicityInternal.comparisonRightAdjointHomEquiv + def CategoryTheory.Comonad.ComonadicityInternal.comparisonRightAdjointObj + def CategoryTheory.Comonad.ComonadicityInternal.counitFork + def CategoryTheory.Comonad.ComonadicityInternal.counitLimitOfPreservesEqualizer + def CategoryTheory.Comonad.ComonadicityInternal.rightAdjointComparison + def CategoryTheory.Comonad.ComonadicityInternal.unitEqualizerOfCoreflectsEqualizer + def CategoryTheory.Comonad.ComonadicityInternal.unitFork + theorem CategoryTheory.Comonad.ComonadicityInternal.unitFork_ι + def CategoryTheory.Comonad.comonadicOfCreatesFSplitEqualizers + def CategoryTheory.Comonad.comonadicOfHasPreservesCoreflexiveEqualizersOfReflectsIsomorphisms + def CategoryTheory.Comonad.comonadicOfHasPreservesFSplitEqualizersOfReflectsIsomorphisms + def CategoryTheory.Comonad.comonadicOfHasPreservesReflectsFSplitEqualizers + def CategoryTheory.Comonad.createsFSplitEqualizersOfComonadic Modified Mathlib/CategoryTheory/Monad/Monadicity.lean 2024-08-22 06:36:20 7ed205e feat: Define `AnalyticManifold` as a charted space compatible with `analyticGroupoid` (#10853) 1. Change the definition of `analyticGroupoid` to mean analytic everywhere including on the boundary, using the recently added `AnalyticWithinAt` def. 2. Define `AnalyticManifold` as a charted space compatible with `analyticGroupoid`. In finite dimensions `AnalyticManifold` is equivalent to `SmoothManifoldWithCorners`, so an alternative option would be to leave this out and prove the necessary correspondence via Osgood's theorem. However, we don't have Osgood's theorem yet, and it's nice to have a version that works arbitrarily. ESTIMATED CHANGES Modified Mathlib/Geometry/Manifold/AnalyticManifold.lean + theorem analyticGroupoid_prod + def analyticPregroupoid + theorem mem_analyticGroupoid +/- theorem mem_analyticGroupoid_of_boundaryless 2024-08-22 06:26:34 ebfb180 chore: import Batteries.Tactic.Basic (#16055) ESTIMATED CHANGES Modified Mathlib/Tactic/Common.lean 2024-08-22 00:46:06 25040ca feat(Data/Finsupp/Defs): generalize `Finsupp.apply_single` (#16042) ESTIMATED CHANGES Modified Mathlib/Data/Finsupp/Defs.lean + theorem Finsupp.apply_single' +/- theorem Finsupp.apply_single 2024-08-21 23:05:25 5652cc6 feat(Data/List/Sigma): Lemmas relating `List.dlookup` and `List.append` (#15951) ESTIMATED CHANGES Modified Mathlib/Data/List/Sigma.lean + theorem List.dlookup_append 2024-08-21 22:09:43 ed47632 chore: update Mathlib dependencies 2024-08-21 (#16043) This PR updates the Mathlib dependencies. ESTIMATED CHANGES Modified lake-manifest.json 2024-08-21 22:09:42 4dbcdfc feat(Polynomial): natDegree_add_eq_left_of_degree_lt (#16031) ESTIMATED CHANGES Modified Mathlib/Algebra/Polynomial/Degree/Definitions.lean + theorem Polynomial.natDegree_add_eq_left_of_degree_lt + theorem Polynomial.natDegree_add_eq_right_of_degree_lt 2024-08-21 22:09:40 d2a5d73 chore(CI): skip full `cache get` if cache looks completely cold (#16028) if the current toolchain has never been built on the CI, then spending close to 4mins to look for each mathlib file is wasteful. So this checks the existence a cache file for some file in `batteries` (I picked `Batteries.WF`). If that is not present, then very likely the current toolchain has not been tested yet, and we can skip the full `lake cache`. This speeds up mostly new `pr-testing` CI branches, or after a push to the lean PR. ESTIMATED CHANGES Modified .github/workflows/bors.yml Modified .github/workflows/build.yml Modified .github/workflows/build.yml.in Modified .github/workflows/build_fork.yml 2024-08-21 22:09:40 3e89282 feat(Order/Hom): add `OrderEmbedding.withBotCoe` (#15479) ... and the `WithTop` version. ESTIMATED CHANGES Modified Mathlib/Order/Hom/Basic.lean 2024-08-21 21:42:55 fc10eda feat: Polynomial.eraseLead_degree_lt (#16030) ESTIMATED CHANGES Modified Mathlib/Algebra/Polynomial/EraseLead.lean + theorem Polynomial.degree_eraseLead_lt 2024-08-21 19:57:00 e3f20b6 feat: `assert_not_exists` and `assert_not_imported` checks (#16002) This PR "completes" the checks implied by `assert_not_exists` and `assert_not_imported`: at the time of using one of those commands, the declarations/imports are not present in the environment. Now, each time that one of the commands above is used, the information is recorded in the environment, so that running `#check_assertions` reports the status of each one. If `#check_assertions` finds that something is still missing, then it emits a warning, otherwise it just logs the report. The `#check_assertions!` variant is silent unless some declaration/import is missing and, in that case, it only prints what is missing. This is useful for testing. There is also the extra file `test/AssertImported.lean` consisting of ```lean import Mathlib #check_assertions! ``` to make sure that CI fails if there are non-existing imports/declarations. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Util/AssertExists.lean Added Mathlib/Util/AssertExistsExt.lean + def Lean.Environment.getSortedAssertExists + structure Mathlib.AssertNotExist.AssertExists + def Mathlib.AssertNotExist.addDeclEntry Modified test/AssertExists.lean + theorem Nats Added test/AssertImported.lean 2024-08-21 18:43:00 5138518 chore: Deprecate unused relation classes (#16022) This is cruft from Lean 3 core that was never cleaned up ESTIMATED CHANGES Modified Mathlib/Data/List/Lex.lean Modified Mathlib/Init/Algebra/Classes.lean Modified Mathlib/Order/Defs.lean Modified Mathlib/Order/RelClasses.lean Modified Mathlib/SetTheory/Ordinal/Notation.lean 2024-08-21 18:42:59 00e250b chore(Algebra/Prod): add `Prod.mk_one_one` (#15922) - Normalize `(1, 1) ` and `(0, 0)` to `1` and `0`, respectively. - Add `Polynomial.mul_coeff_one` Moves: - PerfectClosure.mk_zero_zero -> PefectClosure.mk_zero - PerfectClosure.mk_zero -> PerfectClosure.mk_zero_right ESTIMATED CHANGES Modified Counterexamples/CanonicallyOrderedCommSemiringTwoMul.lean Modified Mathlib/Algebra/Algebra/NonUnitalHom.lean Modified Mathlib/Algebra/Group/Prod.lean + theorem Prod.mk_one_one Modified Mathlib/Algebra/Group/Subgroup/Basic.lean Modified Mathlib/Algebra/Group/Submonoid/Operations.lean Modified Mathlib/Algebra/Group/Subsemigroup/Operations.lean Modified Mathlib/Algebra/Polynomial/Coeff.lean + theorem Polynomial.mul_coeff_one Modified Mathlib/Algebra/Polynomial/Div.lean Modified Mathlib/Algebra/Polynomial/Monic.lean Modified Mathlib/FieldTheory/PerfectClosure.lean +/- theorem PerfectClosure.mk_zero + theorem PerfectClosure.mk_zero_right - theorem PerfectClosure.mk_zero_zero Modified Mathlib/LinearAlgebra/CliffordAlgebra/Prod.lean Modified Mathlib/LinearAlgebra/Span.lean +/- theorem Submodule.prod_bot Modified Mathlib/RingTheory/WittVector/Defs.lean Modified Mathlib/Topology/Algebra/Module/Basic.lean 2024-08-21 17:45:14 43162ab feat(Prod.Basic/UniformSpace.Basic): Two lemmas about swap. (#16004) A special case of lemma `map_comp_swap` in `Data.Prod.Basic` is restated in terms of `Function.Semiconj`. ~~Also, with little surprise, `swap` is uniformly continuous.~~ ESTIMATED CHANGES Modified Mathlib/Data/Prod/Basic.lean + theorem Function.Semiconj.swap_map 2024-08-21 16:12:39 740b170 feat: `a ^ (m - n : ℤ) = a ^ m / a ^ n` for `m n : ℕ` (#16029) This is a very common special case of `zpow_sub` which is particularly useful for rewriting backwards without having to hit everything with `zpow_natCast` From LeanAPAP ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Basic.lean + theorem zpow_natCast_sub_natCast + theorem zpow_natCast_sub_one + theorem zpow_one_sub_natCast Modified Mathlib/Algebra/GroupWithZero/Units/Basic.lean + theorem zpow_natCast_sub_natCast₀ + theorem zpow_natCast_sub_one₀ + theorem zpow_one_sub_natCast₀ 2024-08-21 15:34:59 9dc25c2 chore(Data/Nat/Choose/Sum): clean up (#15935) ESTIMATED CHANGES Modified Mathlib/Data/Nat/Choose/Sum.lean +/- theorem Nat.choose_middle_le_pow +/- theorem Nat.sum_range_choose +/- theorem Nat.sum_range_choose_halfway 2024-08-21 14:51:20 93828f4 chore(*): use `rfl` for more proofs (#16033) ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/Equiv.lean +/- theorem AlgEquiv.arrowCongr_refl +/- theorem AlgEquiv.autCongr_refl +/- theorem AlgEquiv.equivCongr_refl +/- theorem AlgEquiv.toLinearEquiv_ofLinearEquiv Modified Mathlib/Algebra/Algebra/Hom.lean Modified Mathlib/Algebra/Algebra/NonUnitalSubalgebra.lean Modified Mathlib/Algebra/Algebra/Subalgebra/Basic.lean Modified Mathlib/Algebra/Lie/Basic.lean +/- theorem LieHom.comp_id +/- theorem LieHom.id_comp Modified Mathlib/Algebra/Module/LinearMap/Defs.lean Modified Mathlib/LinearAlgebra/Multilinear/Basic.lean Modified Mathlib/ModelTheory/Substructures.lean 2024-08-21 11:51:20 559b6a5 feat(Mathlib.RingTheory.FractionalIdeal.Extended): Define extensions of fractional ideals (#14216) Define the extension of a fractional ideal along a ring homomorphism, and prove some basic facts about extensions. This PR is part 2/4 of a proof of `isDedekindDomain_iff_isDedekindDomainDvr`. Part 1: #14099 Part 3: #14237 Part 4: #14242 - [x] depends on: #14099 ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/RingTheory/FractionalIdeal/Basic.lean + theorem FractionalIdeal.mem_add Added Mathlib/RingTheory/FractionalIdeal/Extended.lean + theorem FractionalIdeal.coe_extended_eq_span + def FractionalIdeal.extended + theorem FractionalIdeal.extended_add + theorem FractionalIdeal.extended_mul + theorem FractionalIdeal.extended_one + theorem FractionalIdeal.extended_zero + theorem FractionalIdeal.mem_extended_iff 2024-08-21 11:26:03 8b4a3e5 feat(Archive/Imo): formalize IMO 1961q3 (#9883) ESTIMATED CHANGES Modified Archive.lean Added Archive/Imo/Imo1961Q3.lean + theorem Imo1961Q3 Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Basic.lean + theorem Real.abs_cos_int_mul_pi 2024-08-21 08:17:43 22e3994 chore: more byAsSorry backports (#15972) ESTIMATED CHANGES Modified Mathlib/Algebra/Category/ModuleCat/ChangeOfRings.lean +/- def ModuleCat.restrictScalarsComp'App +/- def ModuleCat.restrictScalarsId'App Modified Mathlib/Algebra/Category/ModuleCat/Differentials/Presheaf.lean +/- def PresheafOfModules.Derivation'.mk Modified Mathlib/Algebra/Category/ModuleCat/Presheaf.lean Modified Mathlib/Algebra/Category/ModuleCat/Presheaf/Sheafify.lean +/- def PresheafOfModules.sheafifyMap Modified Mathlib/Algebra/Category/ModuleCat/Sheaf/ChangeOfRings.lean Modified Mathlib/Algebra/Lie/InvariantForm.lean +/- def LieAlgebra.InvariantForm.orthogonal Modified Mathlib/Algebra/Module/Zlattice/Basic.lean Modified Mathlib/AlgebraicGeometry/EllipticCurve/Group.lean Modified Mathlib/AlgebraicGeometry/ProjectiveSpectrum/Scheme.lean +/- def AlgebraicGeometry.ProjIsoSpecTopComponent.FromSpec.carrier Modified Mathlib/Analysis/ConstantSpeed.lean Modified Mathlib/Analysis/InnerProductSpace/Basic.lean Modified Mathlib/Analysis/InnerProductSpace/LaxMilgram.lean Modified Mathlib/Analysis/InnerProductSpace/l2Space.lean Modified Mathlib/CategoryTheory/Preadditive/Schur.lean Modified Mathlib/Data/Complex/FiniteDimensional.lean Modified Mathlib/Data/Fin/Basic.lean Modified Mathlib/Data/Int/Interval.lean Modified Mathlib/Data/List/DropRight.lean Modified Mathlib/Data/List/Nodup.lean Modified Mathlib/Data/List/Range.lean Modified Mathlib/Data/Matrix/Kronecker.lean Modified Mathlib/Data/NNReal/Basic.lean Modified Mathlib/Data/Set/Function.lean Modified Mathlib/FieldTheory/KummerExtension.lean +/- def adjoinRootXPowSubCEquiv Modified Mathlib/FieldTheory/PerfectClosure.lean Modified Mathlib/Geometry/Manifold/ContMDiff/NormedSpace.lean Modified Mathlib/Geometry/Manifold/MFDeriv/Atlas.lean Modified Mathlib/Geometry/RingedSpace/OpenImmersion.lean +/- def AlgebraicGeometry.PresheafedSpace.IsOpenImmersion.toSheafedSpace Modified Mathlib/LinearAlgebra/FiniteDimensional.lean Modified Mathlib/LinearAlgebra/Lagrange.lean +/- theorem Lagrange.X_sub_C_dvd_nodal Modified Mathlib/LinearAlgebra/TensorProduct/RightExactness.lean Modified Mathlib/MeasureTheory/Function/L1Space.lean Modified Mathlib/MeasureTheory/Function/L2Space.lean Modified Mathlib/MeasureTheory/Group/Prod.lean Modified Mathlib/MeasureTheory/Measure/Haar/Unique.lean Modified Mathlib/NumberTheory/Cyclotomic/Gal.lean Modified Mathlib/NumberTheory/Cyclotomic/Rat.lean +/- theorem IsPrimitiveRoot.subOneIntegralPowerBasis'_gen Modified Mathlib/Probability/ProbabilityMassFunction/Integrals.lean Modified Mathlib/RepresentationTheory/GroupCohomology/LowDegree.lean Modified Mathlib/RingTheory/AdicCompletion/Exactness.lean +/- theorem AdicCompletion.map_surjective Modified Mathlib/RingTheory/Adjoin/Field.lean Modified Mathlib/RingTheory/DedekindDomain/Ideal.lean Modified Mathlib/RingTheory/IsAdjoinRoot.lean +/- def IsAdjoinRoot.lift Modified Mathlib/RingTheory/SimpleModule.lean Modified Mathlib/RingTheory/WittVector/Compare.lean Modified Mathlib/SetTheory/Game/Short.lean 2024-08-21 08:08:51 2db1a34 chore: robustify FromLRAT proof (#16017) Just an unsqueezed simp that broke on an adaptation branch. ESTIMATED CHANGES Modified Mathlib/Tactic/Sat/FromLRAT.lean 2024-08-21 07:40:16 ed125a4 chore: split FieldTheory/IntermediateField (#15692) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/CharP/IntermediateField.lean Modified Mathlib/FieldTheory/Adjoin.lean Added Mathlib/FieldTheory/IntermediateField/Algebraic.lean + theorem IntermediateField.eq_of_le_of_finrank_eq' + theorem IntermediateField.eq_of_le_of_finrank_eq + theorem IntermediateField.eq_of_le_of_finrank_le' + theorem IntermediateField.eq_of_le_of_finrank_le + theorem IntermediateField.finrank_eq_finrank_subalgebra + theorem IntermediateField.isAlgebraic_iff + theorem IntermediateField.isIntegral_iff + theorem IntermediateField.minpoly_eq + theorem IntermediateField.rank_eq_rank_subalgebra + theorem IntermediateField.toSubalgebra_eq_iff + theorem mem_subalgebraEquivIntermediateField + theorem mem_subalgebraEquivIntermediateField_symm + def subalgebraEquivIntermediateField Renamed Mathlib/FieldTheory/IntermediateField.lean to Mathlib/FieldTheory/IntermediateField/Basic.lean - theorem IntermediateField.eq_of_le_of_finrank_eq' - theorem IntermediateField.eq_of_le_of_finrank_eq - theorem IntermediateField.eq_of_le_of_finrank_le' - theorem IntermediateField.eq_of_le_of_finrank_le - theorem IntermediateField.finrank_eq_finrank_subalgebra - theorem IntermediateField.isAlgebraic_iff - theorem IntermediateField.isIntegral_iff - theorem IntermediateField.minpoly_eq - theorem IntermediateField.rank_eq_rank_subalgebra - theorem IntermediateField.toSubalgebra_eq_iff - theorem mem_subalgebraEquivIntermediateField - theorem mem_subalgebraEquivIntermediateField_symm - def subalgebraEquivIntermediateField Modified Mathlib/FieldTheory/NormalClosure.lean Modified Mathlib/FieldTheory/SplittingField/IsSplittingField.lean Modified Mathlib/LinearAlgebra/JordanChevalley.lean Modified Mathlib/RingTheory/LittleWedderburn.lean Modified Mathlib/Topology/Instances/Complex.lean 2024-08-21 04:58:20 40f53e8 chore: update Mathlib dependencies 2024-08-21 (#16016) This PR updates the Mathlib dependencies. ESTIMATED CHANGES Modified lake-manifest.json 2024-08-21 02:48:34 dcea622 chore: cleanup some List lemmas (#15718) ESTIMATED CHANGES Modified Mathlib/Computability/Primrec.lean + theorem Primrec.list_getElem? Modified Mathlib/Data/List/Enum.lean +/- theorem List.mem_enum_iff_get? Modified Mathlib/Data/List/Infix.lean 2024-08-21 02:33:55 db0355c feature(Analysis/Normed/Module/Dual): Lemma used in proof of Banach-Dieudonneé theorem (#15776) Adds a lemma implicit in the proof of Bourbaki, TVS IV.24, §5 Theorem 1 (Banach-Dieudonneé theorem) (See also Lemma 12.2 from Conway, A Course in Functional Analysis for the Banach space version). ESTIMATED CHANGES Modified Mathlib/Analysis/LocallyConvex/Polar.lean + theorem LinearMap.mem_polar_singleton + theorem LinearMap.polar_singleton + theorem LinearMap.sInter_polar_finite_subset_eq_polar Modified Mathlib/Analysis/Normed/Module/Dual.lean + theorem NormedSpace.mem_polar_singleton + theorem NormedSpace.polar_singleton + theorem NormedSpace.sInter_polar_eq_closedBall Modified docs/references.bib 2024-08-21 01:15:42 2f2d64b chore: deprecate Data/ByteArray (#15957) https://github.com/leanprover-community/batteries/pull/851 provides a replacement in Batteries. It is not an exact replacement, so I have not given suggestion in the deprecation statements, and instead added an pointer to the new file in the module doc. ESTIMATED CHANGES Modified Mathlib/Data/ByteArray.lean Modified scripts/noshake.json 2024-08-20 22:47:31 eb4b942 feat: monoid action on finprod (#14483) ESTIMATED CHANGES Modified Mathlib/GroupTheory/GroupAction/BigOperators.lean + theorem smul_finprod 2024-08-20 21:56:32 37018f9 feat: `SMulWithZero` instance on `MulOpposite` (#15984) ESTIMATED CHANGES Modified Mathlib/Algebra/GroupWithZero/Action/Opposite.lean 2024-08-20 21:56:31 ddec2bc feat: interactions between `List.map` and sorting lists (#15952) If the function preserves the relation on the list, then the sorting algorithms are unaffected. ESTIMATED CHANGES Modified Mathlib/Data/List/Sort.lean + theorem List.length_insertionSort + theorem List.map_insertionSort + theorem List.map_merge + theorem List.map_mergeSort + theorem List.map_orderedInsert + theorem List.map_split + theorem List.mem_insertionSort + theorem List.mem_mergeSort + theorem List.mem_split_iff Modified Mathlib/Data/Multiset/Sort.lean + theorem Multiset.map_sort 2024-08-20 21:47:30 fe13253 feat(SetTheory/ZFC): Add `mem_` theorems for `PSet` (#16006) There are `mem_insert_iff`, `mem_singleton`, `mem_pair` and `mem_sep` theorems for `ZFSet` but no `PSet` version. This PR adds them and uses them to simplify proofs in `ZFSet`. ESTIMATED CHANGES Modified Mathlib/SetTheory/ZFC/Basic.lean + theorem PSet.mem_insert + theorem PSet.mem_insert_iff + theorem PSet.mem_insert_of_mem + theorem PSet.mem_of_subset + theorem PSet.mem_pair + theorem PSet.mem_sep + theorem PSet.mem_singleton + theorem PSet.subset_iff 2024-08-20 21:16:35 03f82cb feat: `Prod.fst` and `Prod.snd` are quotient maps (#15956) ESTIMATED CHANGES Modified Mathlib/Topology/Constructions.lean + theorem quotientMap_fst + theorem quotientMap_snd 2024-08-20 19:55:55 5d15134 chore(Data.NNRat.Defs): split file into unbundled and bundled ordered algebra (#15072) We split off the `CanonicallyOrderedCommSemiring`, `CanonicallyLinearOrderedAddCommMonoid`, and `OrderedSub` instances on `NNRat` to `Data.NNRat.Order` leaving the remainder independent of bundled ordered algebra classes. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Order/Ring/Unbundled/Rat.lean Modified Mathlib/Data/Finset/Density.lean Modified Mathlib/Data/NNRat/Defs.lean +/- theorem NNRat.mk_natCast + theorem NNRat.nonpos_iff_eq_zero +/- theorem NNRat.num_pos Added Mathlib/Data/NNRat/Order.lean Modified Mathlib/Tactic/Positivity/Basic.lean 2024-08-20 19:19:04 f904bf8 chore: Better names for `(⌊a⌋₊ : α) = ⌊a⌋` again (#16001) Also remove the six months old deprecated names ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Floor.lean + theorem Int.natCast_ceil_eq_ceil + theorem Int.natCast_floor_eq_floor - theorem Int.ofNat_ceil_eq_ceil - theorem Int.ofNat_floor_eq_floor 2024-08-20 17:33:59 431ff4c fix: remove stale comment (#15995) ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Submonoid/Operations.lean Modified Mathlib/Algebra/Lie/Submodule.lean Modified Mathlib/CategoryTheory/ConcreteCategory/Basic.lean Modified Mathlib/Logic/Embedding/Basic.lean Modified Mathlib/Topology/Algebra/Module/Basic.lean Modified Mathlib/Topology/Bornology/Hom.lean 2024-08-20 16:31:40 bc3ab3e feat: Set.iUnion over Sum (#15565) ESTIMATED CHANGES Modified Mathlib/Data/Set/Lattice.lean + theorem Set.iInter_sum + theorem Set.iUnion_sum 2024-08-20 16:16:26 b72af9f chore: remove porting note (#15997) ESTIMATED CHANGES Modified Mathlib/Analysis/Fourier/FourierTransform.lean 2024-08-20 14:26:01 aa8d81b feat(CategoryTheory/Elements): taking a functor to its category of elements is functorial (#15784) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Elements.lean + def CategoryTheory.Functor.elementsFunctor + def CategoryTheory.NatTrans.mapElements 2024-08-20 13:02:23 182970f chore(Real.Sqrt): remove commented out code (#15976) This survived a previous cleanup attempt #11909. ESTIMATED CHANGES Modified Mathlib/Data/Real/Sqrt.lean 2024-08-20 10:06:19 5f2879a feat(CategoryTheory/Monoidal): `Cat` is monoidal with the cartesian product of categories (#15258) feat(CategoryTheory/Monoidal): Cat, the category of categories, is monoidal with the cartesian product of categories Co-authored-by : atopaz@fastmail.com Co-authored-by : yael.dillies@gmail.com ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/ChosenFiniteProducts/Cat.lean + def CategoryTheory.Cat.chosenTerminalIsTerminal + def CategoryTheory.Cat.isLimitProdCone + def CategoryTheory.Cat.prodCone + theorem CategoryTheory.Monoidal.associator_hom + theorem CategoryTheory.Monoidal.associator_inv + theorem CategoryTheory.Monoidal.leftUnitor_hom + theorem CategoryTheory.Monoidal.leftUnitor_inv + theorem CategoryTheory.Monoidal.rightUnitor_hom + theorem CategoryTheory.Monoidal.rightUnitor_inv + theorem CategoryTheory.Monoidal.tensorHom + theorem CategoryTheory.Monoidal.tensorObj + theorem CategoryTheory.Monoidal.tensorUnit + theorem CategoryTheory.Monoidal.whiskerLeft + theorem CategoryTheory.Monoidal.whiskerLeft_fst + theorem CategoryTheory.Monoidal.whiskerLeft_snd + theorem CategoryTheory.Monoidal.whiskerRight + theorem CategoryTheory.Monoidal.whiskerRight_fst + theorem CategoryTheory.Monoidal.whiskerRight_snd 2024-08-20 09:14:51 191cdcc chore: remove unneeded termination hints (#15988) ESTIMATED CHANGES Modified Mathlib/Data/ByteArray.lean Modified Mathlib/Data/Nat/Choose/Basic.lean Modified Mathlib/Data/Nat/Defs.lean Modified Mathlib/SetTheory/Game/Birthday.lean Modified Mathlib/Tactic/FunProp/RefinedDiscrTree.lean 2024-08-20 08:44:43 63c2523 chore: remove >1 year deprecations (#15958) This isn't everything with >1year deprecation ages: unfortunately lots is still actually in use! ESTIMATED CHANGES Modified Mathlib/Algebra/BigOperators/Group/List.lean Modified Mathlib/Algebra/Module/Defs.lean - theorem two_smul' Modified Mathlib/Algebra/Ring/Int.lean - theorem Int.not_even_bit1 Modified Mathlib/Analysis/Convex/Gauge.lean - theorem gauge_ball' Modified Mathlib/Analysis/Normed/Affine/Isometry.lean Modified Mathlib/Data/List/Sort.lean - theorem List.monotone_iff_ofFn_sorted Modified Mathlib/SetTheory/Lists.lean - def Lists.Equiv.decidableMeas Modified Mathlib/Topology/Algebra/Order/Compact.lean - theorem ContinuousOn.exists_forall_ge' - theorem ContinuousOn.exists_forall_le' - theorem IsCompact.exists_forall_ge - theorem IsCompact.exists_forall_le - theorem IsCompact.exists_isLocalMinOn_mem_subset Modified Mathlib/Topology/PartialHomeomorph.lean - theorem PartialHomeomorph.eq_of_partialEquiv_eq Modified docs/overview.yaml 2024-08-20 08:16:09 ad5fca8 chore: split off Defs from `Padics/PadicVal` (#15020) Split `NumberTheory/Padics/PadicVal.lean` into minimal `PadicVal/Defs` that suffices for import in `Factorization/Defs` and `NumberTheory/Multiplicity`, and `PadicVal/Basic`. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Data/Nat/Factorization/Basic.lean Modified Mathlib/Data/Nat/Factorization/Defs.lean Modified Mathlib/Data/Nat/Totient.lean Modified Mathlib/GroupTheory/CommutingProbability.lean Modified Mathlib/GroupTheory/Exponent.lean Modified Mathlib/NumberTheory/Multiplicity.lean Modified Mathlib/NumberTheory/Padics/PadicNorm.lean Renamed Mathlib/NumberTheory/Padics/PadicVal.lean to Mathlib/NumberTheory/Padics/PadicVal/Basic.lean - theorem le_multiplicity_iff_replicate_subperm_primeFactorsList - theorem le_padicValNat_iff_replicate_subperm_primeFactorsList - theorem padicValNat.eq_zero_iff - def padicValNat - theorem padicValNat_def' - theorem padicValNat_def Added Mathlib/NumberTheory/Padics/PadicVal/Defs.lean + theorem le_multiplicity_iff_replicate_subperm_primeFactorsList + theorem le_padicValNat_iff_replicate_subperm_primeFactorsList + theorem padicValNat.eq_zero_iff + def padicValNat + theorem padicValNat_def' + theorem padicValNat_def Modified Mathlib/NumberTheory/SumTwoSquares.lean Modified Mathlib/RingTheory/Polynomial/Cyclotomic/Eval.lean Modified test/MaxPowDiv.lean 2024-08-20 03:46:06 2b86f5b chore(SpecialFunctions): re-instate many simp lemmas (#15875) Remove some now-addressed porting notes; re-instate a few more lemmas which were formerly marked as simp. ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Integral/IntervalIntegral.lean 2024-08-20 02:02:43 e0c470a chore: remove `nthLe` (#15965) From #15958. ESTIMATED CHANGES Modified Mathlib/Data/List/Basic.lean + theorem List.dropWhile_get_zero_not - theorem List.dropWhile_nthLe_zero_not +/- theorem List.eq_cons_of_length_one - theorem List.ext_nthLe + theorem List.get_cons + theorem List.get_tail - theorem List.mem_iff_nthLe - def List.nthLe - theorem List.nthLe_append_right - theorem List.nthLe_cons - theorem List.nthLe_cons_aux - theorem List.nthLe_cons_length - theorem List.nthLe_get? - theorem List.nthLe_map' - theorem List.nthLe_map - theorem List.nthLe_map_rev - theorem List.nthLe_mem - theorem List.nthLe_of_mem - theorem List.nthLe_pmap - theorem List.nthLe_reverse' - theorem List.nthLe_reverse - theorem List.nthLe_singleton - theorem List.nthLe_succ_scanl - theorem List.nthLe_tail - theorem List.nthLe_zero_scanl +/- theorem List.takeWhile_eq_nil_iff Modified Mathlib/Data/List/Cycle.lean +/- theorem List.next_get - theorem List.next_nthLe + theorem List.prev_get - theorem List.prev_nthLe Modified Mathlib/Data/List/DropRight.lean Modified Mathlib/Data/List/Forall2.lean - theorem List.Forall₂.nthLe - theorem List.forall₂_iff_nthLe - theorem List.forall₂_of_length_eq_of_nthLe Modified Mathlib/Data/List/Indexes.lean + theorem List.get_mapIdx - theorem List.nthLe_mapIdx Modified Mathlib/Data/List/Infix.lean - theorem List.nth_le_inits - theorem List.nth_le_tails Modified Mathlib/Data/List/InsertNth.lean - theorem List.nthLe_insertNth_add_succ - theorem List.nthLe_insertNth_of_lt - theorem List.nthLe_insertNth_self Modified Mathlib/Data/List/Join.lean - theorem List.drop_take_succ_eq_cons_nthLe Modified Mathlib/Data/List/Nodup.lean - theorem List.Nodup.nthLe_inj_iff - theorem List.nodup_iff_nthLe_inj Modified Mathlib/Data/List/NodupEquivFin.lean - theorem List.duplicate_iff_exists_distinct_nthLe Modified Mathlib/Data/List/OfFn.lean - theorem List.nthLe_ofFn' - theorem List.nthLe_ofFn - theorem List.ofFn_nthLe Modified Mathlib/Data/List/Pairwise.lean - theorem List.pairwise_iff_nthLe Modified Mathlib/Data/List/Perm.lean - theorem List.nthLe_permutations'Aux Modified Mathlib/Data/List/Range.lean + theorem List.getElem_range'_1 - theorem List.nthLe_finRange - theorem List.nthLe_range' - theorem List.nthLe_range'_1 - theorem List.nthLe_range Modified Mathlib/Data/List/Rotate.lean + theorem List.get_rotate_one - theorem List.nthLe_rotate' - theorem List.nthLe_rotate - theorem List.nthLe_rotate_one Modified Mathlib/Data/List/Sort.lean - theorem List.Sorted.rel_nthLe_of_le - theorem List.Sorted.rel_nthLe_of_lt Modified Mathlib/Data/List/Zip.lean - theorem List.nthLe_zip - theorem List.nthLe_zipWith Modified Mathlib/Data/Multiset/Basic.lean Modified Mathlib/GroupTheory/Perm/Cycle/Concrete.lean - theorem Equiv.Perm.nthLe_toList - theorem Equiv.Perm.toList_nthLe_zero Modified Mathlib/GroupTheory/Perm/List.lean - theorem List.formPerm_apply_lt - theorem List.formPerm_apply_nthLe - theorem List.formPerm_apply_nthLe_length - theorem List.formPerm_apply_nthLe_zero - theorem List.formPerm_pow_apply_nthLe 2024-08-20 00:18:27 35c50a5 feat(Data/Nat/Factorial): add descFactorial_le and descFactorial_mul_descFactorial (#15758) Add two basic theorems involving falling factorials. Note that `descFactorial_mul_descFactorial` collapses to `Nat.factorial_mul_descFactorial` when `m = n`. ESTIMATED CHANGES Modified Mathlib/Data/Nat/Factorial/Basic.lean + theorem Nat.descFactorial_le + theorem Nat.descFactorial_mul_descFactorial 2024-08-20 00:18:26 7ad9746 feat(LinearAlgebra/CliffordAlgebra): port SpinGroup (#9111) In this PR, we define `lipschitzGroup`, `pinGroup` and `spinGroup`, and prove some basic lemmas. Ported from leanprover-community/mathlib/pull/16040. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/LinearAlgebra/CliffordAlgebra/SpinGroup.lean + theorem lipschitzGroup.coe_mem_iff_mem + theorem lipschitzGroup.conjAct_smul_range_ι + theorem lipschitzGroup.conjAct_smul_ι_mem_range_ι + theorem lipschitzGroup.involute_act_ι_mem_range_ι + def lipschitzGroup + theorem pinGroup.coe_mul_star_self + theorem pinGroup.coe_star + theorem pinGroup.coe_star_mul_self + theorem pinGroup.conjAct_smul_range_ι + theorem pinGroup.conjAct_smul_ι_mem_range_ι + theorem pinGroup.involute_act_ι_mem_range_ι + theorem pinGroup.mem_iff + theorem pinGroup.mem_lipschitzGroup + theorem pinGroup.mem_unitary + theorem pinGroup.mul_star_self + theorem pinGroup.mul_star_self_of_mem + theorem pinGroup.star_eq_inv' + theorem pinGroup.star_eq_inv + theorem pinGroup.star_mem + theorem pinGroup.star_mem_iff + theorem pinGroup.star_mul_self + theorem pinGroup.star_mul_self_of_mem + def pinGroup.toUnits + theorem pinGroup.toUnits_injective + theorem pinGroup.units_mem_iff + theorem pinGroup.units_mem_lipschitzGroup + def pinGroup + theorem spinGroup.coe_mul_star_self + theorem spinGroup.coe_star + theorem spinGroup.coe_star_mul_self + theorem spinGroup.conjAct_smul_range_ι + theorem spinGroup.conjAct_smul_ι_mem_range_ι + theorem spinGroup.involute_act_ι_mem_range_ι + theorem spinGroup.involute_eq + theorem spinGroup.mem_even + theorem spinGroup.mem_iff + theorem spinGroup.mem_pin + theorem spinGroup.mul_star_self + theorem spinGroup.mul_star_self_of_mem + theorem spinGroup.star_eq_inv' + theorem spinGroup.star_eq_inv + theorem spinGroup.star_mem + theorem spinGroup.star_mem_iff + theorem spinGroup.star_mul_self + theorem spinGroup.star_mul_self_of_mem + def spinGroup.toUnits + theorem spinGroup.toUnits_injective + theorem spinGroup.units_involute_act_eq_conjAct + theorem spinGroup.units_mem_lipschitzGroup + def spinGroup Modified docs/references.bib 2024-08-19 21:13:05 b281bae feat(Data/List): Some auxiliary lemmas of `List` (#15536) Add some auxiliary lemmas of `List`, in preparation of the already finished proof of Bondy-Chvátal theorem. ESTIMATED CHANGES Modified Mathlib/Data/List/Lemmas.lean + theorem List.getElem_reverse' + theorem List.getElem_tail + theorem List.getLast_tail + theorem List.tail_reverse_eq_reverse_dropLast Modified Mathlib/Data/List/Rotate.lean + theorem List.IsRotated.cons_getLast_dropLast + theorem List.IsRotated.dropLast_tail 2024-08-19 19:49:53 be86c99 feat (LinearAlgebra/RootSystem/Defs): define Weyl group (#15702) This PR defines the Weyl group of a root pairing, and its permutation representation on the indexing set of roots. ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Subgroup/Pointwise.lean + theorem Subgroup.smul_mem_of_mem_closure_of_mem Modified Mathlib/LinearAlgebra/RootSystem/Defs.lean + theorem RootPairing.coreflection_inv + theorem RootPairing.coreflection_sq + theorem RootPairing.exists_root_eq_smul_of_mem_weylGroup + theorem RootPairing.mem_range_coroot_of_mem_range_coreflection_of_mem_range_coroot + theorem RootPairing.mem_range_root_of_mem_range_reflection_of_mem_range_root + theorem RootPairing.pairing_smul_coroot_eq + theorem RootPairing.pairing_smul_root_eq + theorem RootPairing.range_weylGroupToPerm + theorem RootPairing.reflection_inv + theorem RootPairing.reflection_mem_weylGroup + theorem RootPairing.reflection_perm_eq_reflection_perm_iff_of_isSMulRegular + theorem RootPairing.reflection_perm_eq_reflection_perm_iff_of_span + theorem RootPairing.reflection_perm_inv + theorem RootPairing.reflection_perm_sq + theorem RootPairing.reflection_sq + theorem RootPairing.two_nsmul_reflection_eq_of_perm_eq + def RootPairing.weylGroup + def RootPairing.weylGroupToPerm + theorem RootPairing.weylGroupToPerm_apply_reflection + theorem RootSystem.reflection_perm_eq_reflection_perm_iff 2024-08-19 19:49:52 89c72c4 feat: the pullback of a completable topological field is a completable topological field (#15068) This PR contains results showing that the pullback of a completable topological field under a uniform inducing ring homomorphism is a completable topological field. ESTIMATED CHANGES Modified Mathlib/Topology/Algebra/UniformField.lean + theorem UniformInducing.completableTopField 2024-08-19 19:19:36 40f4321 feat(Circle): More basic lemmas (#15880) From LeanAPAP ESTIMATED CHANGES Modified Mathlib/Analysis/Complex/Circle.lean + theorem Circle.coe_eq_one + theorem Circle.coe_exp + theorem Circle.coe_inj + theorem Circle.coe_injective - theorem Circle.exp_apply + theorem Circle.ext Modified Mathlib/Analysis/Fourier/AddCircle.lean Modified Mathlib/Analysis/Normed/Algebra/Exponential.lean + theorem Pi.coe_exp - theorem Pi.exp_apply Modified Mathlib/Analysis/SpecialFunctions/Complex/Circle.lean + theorem Circle.exp_eq_one + theorem Circle.exp_int_mul_two_pi + theorem Circle.exp_two_pi_mul_int Modified Mathlib/Analysis/SpecialFunctions/Complex/CircleAddChar.lean 2024-08-19 19:19:35 c4433ff feat: constructions of Hilbert C⋆-modules (#15765) In this file we define the following constructions of `CStarModule`s where `A` denotes a C⋆-algebra. Note that for each type `E`, the instance is declared on the type synonym `WithCStarModule E` (with the notation `C⋆ᵐᵒᵈ E`), instead of on `E` itself. 1. `A` as a `CStarModule` over itself. 2. `E × F` as a `CStarModule` over `A`, when `E` and `F` are themselves `CStarModule`s over `A`. 3. `Π i : ι, E i` as a `CStarModule` over `A`, when each `E i` is a `CStarModule` over `A` and `ι` is a `Fintype`. 4. `E` as a `CStarModule` over `ℂ`, when `E` is an `InnerProductSpace` over `ℂ`. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Order/BigOperators/Ring/Finset.lean + theorem Finset.sum_sq_le_sq_sum_of_nonneg Added Mathlib/Analysis/CStarAlgebra/Module/Constructions.lean + def WithCStarModule.equivOfInnerₗᵢ + def WithCStarModule.equivₗᵢ + theorem WithCStarModule.inner_def + theorem WithCStarModule.inner_eq_inner + theorem WithCStarModule.inner_single_left + theorem WithCStarModule.inner_single_right + theorem WithCStarModule.max_le_prod_norm + theorem WithCStarModule.norm_apply_le_norm + theorem WithCStarModule.norm_equiv + theorem WithCStarModule.norm_equiv_le_norm_pi + theorem WithCStarModule.norm_equiv_le_norm_prod + theorem WithCStarModule.norm_equiv_of_inner + theorem WithCStarModule.norm_single + theorem WithCStarModule.pi_inner + theorem WithCStarModule.pi_norm + theorem WithCStarModule.pi_norm_le_sum_norm + theorem WithCStarModule.pi_norm_sq + theorem WithCStarModule.prod_inner + theorem WithCStarModule.prod_norm + theorem WithCStarModule.prod_norm_le_norm_add + theorem WithCStarModule.prod_norm_sq 2024-08-19 18:48:06 56b132b chore: remove unnecessary uses of CategoryTheory.Equivalence.mk (#15919) An equivalence of categories consists of a functor, an inverse, and unit and counit isomorphisms which satisfy the same compatibilities as for adjoint functors. However, certain equivalences are constructed via the constructor `Equivalence.mk` which does not assume these compatibilities: by changing the unit isomorphism, it is possible to satisfy the compatibility. When only the existence of an equivalence matters, we may certainly use `Equivalence.mk` (e.g. inside proofs). However, the more we develop the library, the more we may need to unfold the definitions of unit/counit isomorphisms (as it happened in #12728). Then, I would suggest that we refrain from using `Equivalence.mk` as much as possible. In this PR, most uses of `Equivalence.mk` are removed: in most cases, the compatibilities satisfied by adjunctions were easy to prove. ESTIMATED CHANGES Modified Mathlib/Algebra/Category/Grp/EquivalenceGroupAddGroup.lean +/- def commGroupAddCommGroupEquivalence +/- def groupAddGroupEquivalence Modified Mathlib/AlgebraicTopology/FundamentalGroupoid/PUnit.lean +/- def FundamentalGroupoid.punitEquivDiscretePUnit Modified Mathlib/AlgebraicTopology/SimplicialObject.lean Modified Mathlib/CategoryTheory/Category/Bipointed.lean +/- def Bipointed.swapEquiv Modified Mathlib/CategoryTheory/Category/PartialFun.lean Modified Mathlib/CategoryTheory/Category/TwoP.lean Modified Mathlib/CategoryTheory/Closed/Zero.lean +/- def CategoryTheory.equivPUnit Modified Mathlib/CategoryTheory/Comma/Basic.lean +/- def CategoryTheory.Comma.mapLeftIso +/- def CategoryTheory.Comma.mapRightIso Modified Mathlib/CategoryTheory/Comma/StructuredArrow.lean Modified Mathlib/CategoryTheory/DiscreteCategory.lean Modified Mathlib/CategoryTheory/Elements.lean - theorem CategoryTheory.CategoryOfElements.from_toCostructuredArrow_eq + def CategoryTheory.CategoryOfElements.isoMk +/- def CategoryTheory.CategoryOfElements.structuredArrowEquivalence - theorem CategoryTheory.CategoryOfElements.to_fromCostructuredArrow_eq Modified Mathlib/CategoryTheory/EssentiallySmall.lean Modified Mathlib/CategoryTheory/FinCategory/AsType.lean Modified Mathlib/CategoryTheory/Functor/Currying.lean +/- def CategoryTheory.currying Modified Mathlib/CategoryTheory/Limits/ConeCategory.lean +/- def CategoryTheory.Limits.Cocone.equivStructuredArrow +/- def CategoryTheory.Limits.Cone.equivCostructuredArrow Modified Mathlib/CategoryTheory/Limits/Fubini.lean Modified Mathlib/CategoryTheory/Products/Associator.lean +/- def CategoryTheory.prod.associativity Modified Mathlib/CategoryTheory/Products/Basic.lean +/- def CategoryTheory.Prod.braiding Modified Mathlib/CategoryTheory/Sites/Types.lean Modified Mathlib/CategoryTheory/Sums/Associator.lean +/- def CategoryTheory.sum.associativity Modified Mathlib/CategoryTheory/Sums/Basic.lean +/- def CategoryTheory.Sum.Swap.equivalence Modified Mathlib/Order/Category/FinPartOrd.lean +/- def FinPartOrd.dualEquiv 2024-08-19 18:48:05 387efd0 feat (Topology.Order): Generalize `Monotone.tendsto_nhdsWithin_Iio` (#15470) `Monotone.tendsto_nhdsWithin_Iio` and `Monotone.tendsto_nhdsWithin_Ioi` assume monotonicity on the whole space, but it is sufficient for the function to be monotone on an interval. - Add `MonotoneOn.tendsto_nhdsWithin_Ioo_left`, `MonotoneOn.tendsto_nhdsWithin_Ioo_right`, `MonotoneOn.tendsto_nhdsWithin_Iio` and `MonotoneOn.tendsto_nhdsWithin_Ioi`. - Simplify the proof of `Monotone.tendsto_nhdsWithin_Iio` using `MonotoneOn.tendsto_nhdsWithin_Iio`. ESTIMATED CHANGES Modified Mathlib/Topology/Order/Monotone.lean + theorem Antitone.tendsto_nhdsWithin_Iio + theorem Antitone.tendsto_nhdsWithin_Ioi + theorem AntitoneOn.tendsto_nhdsWithin_Iio + theorem AntitoneOn.tendsto_nhdsWithin_Ioi + theorem AntitoneOn.tendsto_nhdsWithin_Ioo_left + theorem AntitoneOn.tendsto_nhdsWithin_Ioo_right + theorem MonotoneOn.tendsto_nhdsWithin_Iio + theorem MonotoneOn.tendsto_nhdsWithin_Ioi + theorem MonotoneOn.tendsto_nhdsWithin_Ioo_left + theorem MonotoneOn.tendsto_nhdsWithin_Ioo_right 2024-08-19 17:32:53 c3c6a63 feat(CategoryTheory): Braided one-side Rigid categories are (two-side) Rigid (#14140) This proves that Braided one-side Rigid categories are Rigid. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Monoidal/Rigid/Braided.lean + def CategoryTheory.BraidedCategory.exactPairing_swap + def CategoryTheory.BraidedCategory.hasLeftDualOfHasRightDual + def CategoryTheory.BraidedCategory.hasRightDualOfHasLeftDual Modified Mathlib/RepresentationTheory/FDRep.lean Modified scripts/noshake.json 2024-08-19 17:32:52 53c8ce8 feat: Kleene's fixed point theorem (#13075) Add the fixed point theorem for (omega) complete partial orders and Kleene's fixed point theorem for complete lattices. ESTIMATED CHANGES Modified Mathlib/Order/FixedPoints.lean + theorem fixedPoints.gfp_eq_sInf_iterate + theorem fixedPoints.lfp_eq_sSup_iterate Modified Mathlib/Order/OmegaCompletePartialOrder.lean + def OmegaCompletePartialOrder.fixedPoints.iterateChain + theorem OmegaCompletePartialOrder.fixedPoints.ωSup_iterate_le_fixedPoint + theorem OmegaCompletePartialOrder.fixedPoints.ωSup_iterate_le_prefixedPoint + theorem OmegaCompletePartialOrder.fixedPoints.ωSup_iterate_mem_fixedPoint 2024-08-19 15:57:54 e9f0599 fix: disable the dollarSyntax linter by default (#15970) And move the linter to the Style namespace. ESTIMATED CHANGES Modified Mathlib/Tactic/Linter/Lint.lean - def Mathlib.Linter.DollarSyntaxLinter.dollarSyntaxLinter - def Mathlib.Linter.DollarSyntaxLinter.findDollarSyntax + def Mathlib.Linter.Style.dollarSyntax.dollarSyntaxLinter + def Mathlib.Linter.Style.dollarSyntax.findDollarSyntax Modified lakefile.lean 2024-08-19 15:57:53 4ef08cf feat(Topology/Order): add `isOpen_sSup_iff` (#15959) ESTIMATED CHANGES Modified Mathlib/Topology/Order.lean + theorem isClosed_sSup_iff + theorem isOpen_sSup_iff 2024-08-19 15:57:51 53b833f feat(Finset/Density): A few more lemmas (#15877) From LeanAPAP ESTIMATED CHANGES Modified Mathlib/Data/Finset/Density.lean + theorem Finset.card_mul_dens + theorem Finset.dens_le_one + theorem Finset.dens_map_equiv + theorem Finset.dens_mul_card + theorem Finset.natCast_card_mul_nnratCast_dens + theorem Finset.nnratCast_dens + theorem Finset.nnratCast_dens_mul_natCast_card 2024-08-19 14:22:15 48fd37e chore(Homeomorph): add `simps` (#15948) ESTIMATED CHANGES Modified Mathlib/Topology/Homeomorph.lean + theorem Homeomorph.homeomorphOfContinuousOpen_apply + theorem Homeomorph.homeomorphOfContinuousOpen_symm_apply 2024-08-19 14:22:14 a1d25b4 chore(Equiv/Basic): update `simps` lemmas (#15945) - add lemmas for `Equiv.sigmaProdDistrib`; - `Equiv.prodCongrLeft'_symm_apply` is no longer a `simp` lemma; I think that we shouldn't introduce `▸`s in `simp`; - instead, `Equiv.prodCongrLeft'_symm_apply_apply` is a `simp` lemma. ESTIMATED CHANGES Modified Mathlib/Analysis/Normed/Lp/PiLp.lean Modified Mathlib/Logic/Equiv/Basic.lean 2024-08-19 14:22:13 1660447 feat: the reverse of two lists is disjoint iff the lists are disjoint (#12194) ESTIMATED CHANGES Modified Mathlib/Data/List/Basic.lean + theorem List.Perm.disjoint_left + theorem List.Perm.disjoint_right + theorem List.disjoint_reverse_left + theorem List.disjoint_reverse_right 2024-08-19 13:15:51 9e23bfc chore: replace last uses of `lambda` instead of `fun` (#15973) Split out from #15896. ESTIMATED CHANGES Modified Mathlib/Analysis/Analytic/Composition.lean Modified Mathlib/CategoryTheory/Bicategory/NaturalTransformation/Strong.lean Modified Mathlib/Data/Real/Sqrt.lean Modified Mathlib/Lean/Meta/CongrTheorems.lean Modified Mathlib/Order/Filter/NAry.lean Modified Mathlib/RingTheory/UniqueFactorizationDomain.lean Modified Mathlib/Tactic/FunProp/ToBatteries.lean Modified Mathlib/Tactic/NormNum/Prime.lean Modified Mathlib/Tactic/Simps/Basic.lean Modified Mathlib/Tactic/Simps/NotationClass.lean +/- def Simps.copyFirst +/- def Simps.copySecond +/- def Simps.defaultfindArgs +/- def Simps.findCoercionArgs +/- def Simps.findOneArgs +/- def Simps.findZeroArgs +/- def Simps.nsmulArgs +/- def Simps.zsmulArgs 2024-08-19 11:42:23 b3ae244 chore: move `Init.Set` to `Data.Set.Defs` (#15967) ESTIMATED CHANGES Modified Counterexamples/Girard.lean Modified Mathlib.lean Modified Mathlib/Control/Functor.lean Modified Mathlib/Data/Finset/Basic.lean Modified Mathlib/Data/Fintype/Basic.lean Renamed Mathlib/Init/Set.lean to Mathlib/Data/Set/Defs.lean Modified Mathlib/Data/Set/Functor.lean Modified Mathlib/Data/Set/Image.lean Modified Mathlib/Logic/Function/Basic.lean Modified Mathlib/Logic/Pairwise.lean Modified Mathlib/Order/Interval/Finset/Defs.lean Modified Mathlib/Tactic/PushNeg.lean Modified test/lift.lean 2024-08-19 11:42:22 ce632a0 chore: correct `open` -> `open scoped` (#15933) If a file contains two subsequent lines `open X Y Z` and `open P Q R`, most likely one of these is meant to be `open scoped`: as I understand it, this is a mistake during the port, where `open_locale` ought to have get translated as `open scoped` (and not `open`). We fix a few of these: sometimes, the other `open`s are used now, in which case we merge these statements. If some item occurs as both open and open scoped, we delete the latter (as `open` implies the effects of `open scoped`). Let me be bold and label this as technical debt: as fixing a late (and mostly benign) mis-port. ESTIMATED CHANGES Modified Mathlib/Algebra/BigOperators/Group/Finset.lean Modified Mathlib/Algebra/ContinuedFractions/Computation/ApproximationCorollaries.lean Modified Mathlib/Algebra/Group/Subgroup/Basic.lean Modified Mathlib/Algebra/Lie/Weights/Basic.lean Modified Mathlib/Algebra/Polynomial/Basic.lean Modified Mathlib/Analysis/Analytic/CPolynomial.lean Modified Mathlib/Analysis/Analytic/Constructions.lean Modified Mathlib/Analysis/Analytic/Linear.lean Modified Mathlib/Analysis/Asymptotics/Asymptotics.lean Modified Mathlib/Analysis/BoxIntegral/Box/Basic.lean Modified Mathlib/Analysis/BoxIntegral/Partition/Additive.lean Modified Mathlib/Analysis/BoxIntegral/Partition/Basic.lean Modified Mathlib/Analysis/BoxIntegral/Partition/Filter.lean Modified Mathlib/Analysis/BoxIntegral/Partition/Split.lean Modified Mathlib/Analysis/Calculus/Deriv/Add.lean Modified Mathlib/Analysis/Calculus/Deriv/Comp.lean Modified Mathlib/Analysis/Calculus/Deriv/Inv.lean Modified Mathlib/Analysis/Calculus/Deriv/Inverse.lean Modified Mathlib/Analysis/SpecialFunctions/Gamma/Deligne.lean Modified Mathlib/Computability/Halting.lean Modified Mathlib/Computability/Primrec.lean Modified Mathlib/Data/DFinsupp/Notation.lean Modified Mathlib/Data/Fin/VecNotation.lean Modified Mathlib/Data/Finsupp/Notation.lean Modified Mathlib/Data/Matrix/Notation.lean Modified Mathlib/Dynamics/Circle/RotationNumber/TranslationNumber.lean Modified Mathlib/GroupTheory/Perm/Cycle/Type.lean Modified Mathlib/GroupTheory/Subgroup/Center.lean Modified Mathlib/GroupTheory/Subgroup/Centralizer.lean Modified Mathlib/LinearAlgebra/BilinearForm/TensorProduct.lean Modified Mathlib/LinearAlgebra/CliffordAlgebra/Contraction.lean Modified Mathlib/LinearAlgebra/Eigenspace/Matrix.lean Modified Mathlib/LinearAlgebra/Matrix/Charpoly/Coeff.lean Modified Mathlib/LinearAlgebra/QuadraticForm/Basic.lean Modified Mathlib/LinearAlgebra/QuadraticForm/QuadraticModuleCat.lean Modified Mathlib/LinearAlgebra/QuadraticForm/QuadraticModuleCat/Monoidal.lean Modified Mathlib/LinearAlgebra/QuadraticForm/TensorProduct.lean Modified Mathlib/LinearAlgebra/Reflection.lean Modified Mathlib/Logic/Equiv/List.lean 2024-08-19 11:42:21 50a1bf0 chore: backports from byAsSorry (#15759) A few backports to `master` from the `byAsSorry` branch. ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/Subalgebra/Basic.lean +/- def AlgHom.equalizer Modified Mathlib/Algebra/BigOperators/Group/List.lean Modified Mathlib/Algebra/DirectLimit.lean +/- def Module.DirectLimit.lift +/- def Ring.DirectLimit.lift Modified Mathlib/Algebra/Group/Subsemigroup/Operations.lean +/- def Subsemigroup.gciMapComap Modified Mathlib/Algebra/Homology/DerivedCategory/HomologySequence.lean Modified Mathlib/Algebra/Homology/HomologySequence.lean Modified Mathlib/Algebra/Homology/HomotopyCategory/MappingCone.lean Modified Mathlib/Algebra/Homology/HomotopyCategory/Pretriangulated.lean +/- theorem CochainComplex.mappingCone.map_comp Modified Mathlib/Algebra/Homology/HomotopyCofiber.lean Modified Mathlib/Algebra/Polynomial/Module/AEval.lean +/- def Module.AEval.mapSubmodule Modified Mathlib/Analysis/Analytic/Basic.lean Modified Mathlib/Analysis/Analytic/CPolynomial.lean Modified Mathlib/Analysis/Analytic/IsolatedZeros.lean Modified Mathlib/Analysis/Calculus/ContDiff/Basic.lean Modified Mathlib/Analysis/Convex/Caratheodory.lean Modified Mathlib/Analysis/LocallyConvex/Barrelled.lean Modified Mathlib/Analysis/Normed/Operator/BoundedLinearMaps.lean Modified Mathlib/Analysis/RCLike/Basic.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Pullback/Pasting.lean Modified Mathlib/Combinatorics/SimpleGraph/Path.lean Modified Mathlib/Data/Complex/Exponential.lean Modified Mathlib/Data/Complex/Module.lean Modified Mathlib/Data/Finset/Sort.lean Modified Mathlib/Data/List/GetD.lean Modified Mathlib/Data/List/ToFinsupp.lean Modified Mathlib/FieldTheory/RatFunc/Basic.lean Modified Mathlib/GroupTheory/PGroup.lean Modified Mathlib/LinearAlgebra/Dimension/Finite.lean Modified Mathlib/LinearAlgebra/FiniteDimensional/Defs.lean Modified Mathlib/LinearAlgebra/Matrix/Transvection.lean Modified Mathlib/MeasureTheory/Constructions/EventuallyMeasurable.lean +/- def EventuallyMeasurableSet +/- def EventuallyMeasurableSpace Modified Mathlib/MeasureTheory/Constructions/Polish/Basic.lean Modified Mathlib/MeasureTheory/Constructions/Prod/Basic.lean Modified Mathlib/MeasureTheory/Integral/Lebesgue.lean Modified Mathlib/MeasureTheory/Measure/AEDisjoint.lean Modified Mathlib/MeasureTheory/OuterMeasure/OfFunction.lean Modified Mathlib/ModelTheory/DirectLimit.lean +/- def FirstOrder.Language.DirectLimit.lift Modified Mathlib/NumberTheory/Padics/PadicIntegers.lean Modified Mathlib/NumberTheory/Padics/PadicNumbers.lean Modified Mathlib/NumberTheory/PellMatiyasevic.lean Modified Mathlib/NumberTheory/Zsqrtd/Basic.lean Modified Mathlib/RingTheory/Derivation/Basic.lean Modified Mathlib/RingTheory/Derivation/ToSquareZero.lean +/- def derivationToSquareZeroOfLift +/- def liftOfDerivationToSquareZero Modified Mathlib/RingTheory/Int/Basic.lean Modified Mathlib/RingTheory/IntegralDomain.lean Modified Mathlib/RingTheory/Localization/NumDen.lean Modified Mathlib/SetTheory/Ordinal/Topology.lean Modified Mathlib/Topology/Category/Profinite/Nobeling.lean +/- def Profinite.NobelingProof.GoodProducts.sum_equiv +/- def Profinite.NobelingProof.spanCone +/- def Profinite.NobelingProof.spanCone_isLimit +/- def Profinite.NobelingProof.spanFunctor Modified Mathlib/Topology/Category/Profinite/Product.lean +/- def Profinite.indexCone +/- def Profinite.indexFunctor Modified Mathlib/Topology/MetricSpace/GromovHausdorffRealized.lean Modified Mathlib/Topology/Sheaves/SheafCondition/OpensLeCover.lean +/- def TopCat.Presheaf.generateEquivalenceOpensLe +/- def TopCat.Presheaf.generateEquivalenceOpensLe_functor' +/- def TopCat.Presheaf.generateEquivalenceOpensLe_inverse' +/- def TopCat.Presheaf.isLimitOpensLeEquivGenerate₁ +/- def TopCat.Presheaf.whiskerIsoMapGenerateCocone Modified Mathlib/Topology/UnitInterval.lean 2024-08-19 11:09:50 c138fdc chore: no need to pass autoParam to simp or dsimp (#15968) and with https://github.com/leanprover/lean4/pull/4154 it actually complains, so let's remove them now. ESTIMATED CHANGES Modified Mathlib/Algebra/Category/ModuleCat/Monoidal/Basic.lean Modified Mathlib/CategoryTheory/DifferentialObject.lean Modified Mathlib/CategoryTheory/Elements.lean Modified Mathlib/Data/List/Intervals.lean Modified Mathlib/Topology/Sheaves/Presheaf.lean 2024-08-19 09:50:28 7cae1b4 chore: enable the setOption, longLine, missingEnd linters globally (#15521) With Lean 4.11.0-rc1, downstream projects can disable these linters by setting (e.g.) linter.setOption false in their `lakefile.lean`. ESTIMATED CHANGES Modified Mathlib/Tactic/Linter/Lint.lean Modified Mathlib/Tactic/Linter/Style.lean 2024-08-19 09:50:27 aa93a5e chore(test/CategoryTheory/Elementwise): use `MonCat` (#15219) This addresses a TODO from the port. One test only works with an erw and rfl; help from an expert fixing this is welcome. Remove one set_option which did not do anything. ESTIMATED CHANGES Modified test/CategoryTheory/Elementwise.lean +/- theorem ElementwiseTest.bar''' +/- theorem ElementwiseTest.bar'' +/- theorem ElementwiseTest.bar' 2024-08-19 08:56:46 8333413 chore(GroupTheory/GroupAction/Group): Delete (#15806) All lemmas can be moved to earlier files ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/GroupWithZero/Action/Defs.lean + theorem Commute.smul_left_iff₀ + theorem Commute.smul_right_iff₀ + def DistribMulAction.toAddEquiv₀ + def Equiv.smulRight + theorem eq_inv_smul_iff₀ + theorem inv_smul_eq_iff₀ + theorem inv_smul_smul₀ + theorem smul_eq_zero_iff_eq + theorem smul_inv_smul₀ + theorem smul_ne_zero_iff_ne Modified Mathlib/Algebra/GroupWithZero/Action/Prod.lean Modified Mathlib/Algebra/GroupWithZero/Action/Units.lean + theorem IsUnit.smul_eq_zero Modified Mathlib/Algebra/Module/Basic.lean Modified Mathlib/Algebra/Order/Module/Defs.lean Modified Mathlib/Algebra/Order/Module/OrderedSMul.lean Modified Mathlib/Algebra/Ring/Action/Group.lean Modified Mathlib/Data/Finsupp/Basic.lean Modified Mathlib/Data/Set/Pointwise/SMul.lean Modified Mathlib/GroupTheory/GroupAction/Basic.lean Deleted Mathlib/GroupTheory/GroupAction/Group.lean - theorem Commute.smul_left_iff₀ - theorem Commute.smul_right_iff₀ - def DistribMulAction.toAddEquiv₀ - def Equiv.smulRight - theorem IsUnit.smul_eq_zero - theorem eq_inv_smul_iff₀ - theorem inv_smul_eq_iff₀ - theorem inv_smul_smul₀ - theorem smul_eq_zero_iff_eq - theorem smul_inv_smul₀ - theorem smul_ne_zero_iff_ne 2024-08-19 07:42:04 a7939a5 chore(Data/Set): move Defs.lean to Operations.lean (#15964) This frees up `Data/Set/Defs.lean` so that we can later move `Init/Set.lean` to `Data/Set/Defs.lean`. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Ring/Parity.lean Modified Mathlib/CategoryTheory/Types.lean Modified Mathlib/Data/Set/Basic.lean Renamed Mathlib/Data/Set/Defs.lean to Mathlib/Data/Set/Operations.lean Modified Mathlib/Data/Set/Opposite.lean Modified Mathlib/Lean/Expr/ExtraRecognizers.lean Modified Mathlib/Order/Estimator.lean Modified Mathlib/Order/Monotone/Monovary.lean Modified Mathlib/Order/SetNotation.lean Modified scripts/noshake.json 2024-08-19 07:42:03 98b8c75 chore(SetTheory/Ordinal/Principal): clean up formatting (#15953) This PR does the following: - Clean up some term mode sorcery. - Use the `ω` notation throughout. - Remove unneeded parentheses. - Indent proofs correctly. ESTIMATED CHANGES Modified Mathlib/SetTheory/Ordinal/Principal.lean +/- theorem Ordinal.Principal.iterate_lt +/- theorem Ordinal.add_absorp +/- theorem Ordinal.add_omega +/- theorem Ordinal.add_omega_opow +/- theorem Ordinal.mul_lt_omega_opow +/- theorem Ordinal.mul_omega +/- theorem Ordinal.mul_omega_dvd +/- theorem Ordinal.mul_omega_opow_opow +/- theorem Ordinal.nfp_le_of_principal + theorem Ordinal.not_principal_iff +/- theorem Ordinal.op_eq_self_of_principal +/- theorem Ordinal.opow_omega +/- theorem Ordinal.principal_add_omega +/- theorem Ordinal.principal_add_omega_opow +/- theorem Ordinal.principal_iff_principal_swap +/- theorem Ordinal.principal_mul_omega +/- theorem Ordinal.principal_mul_omega_opow_opow +/- theorem Ordinal.principal_mul_two +/- theorem Ordinal.principal_one_iff +/- theorem Ordinal.principal_opow_omega + theorem Ordinal.principal_swap_iff +/- theorem Ordinal.principal_zero 2024-08-19 07:42:01 97d3cbd chore(tests/oldObtain): minor clean-ups (#15932) Rename the test to `oldObtain`, which better matches the others. And only disable the linter *once* in that file. ESTIMATED CHANGES Renamed test/old_obtain.lean to test/oldObtain.lean 2024-08-19 07:42:00 80afba9 feat: generalise `mul_eq_one` etc. to cancellative monoids (#15921) More specifically `eq_one_of_mul_right`, `eq_one_of_mul_left`, `mul_eq_one` and a new simple corollary `mul_ne_one`. The `[Left|Right]CancelMonoid` versions are protected and the `CancelMonoid` versions are primed. This is part of #15864. Note that these theorems cannot be generalised to `[Monoid α]` – see https://math.stackexchange.com/a/4535529/357390 for a counterexample monoid. ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Units.lean + theorem eq_one_of_mul_left' + theorem eq_one_of_mul_right' + theorem mul_eq_one' + theorem mul_ne_one' + theorem mul_ne_one 2024-08-19 07:41:59 5f6e1ba feat: the dollarSyntax linter (#15909) Lint against being `$` used in place of the canonical `<|`: this is documented in the mathlib style guide. ESTIMATED CHANGES Modified Mathlib/Analysis/SpecialFunctions/BinaryEntropy.lean Modified Mathlib/Tactic/Linter/Lint.lean + def Mathlib.Linter.DollarSyntaxLinter.dollarSyntaxLinter + def Mathlib.Linter.DollarSyntaxLinter.findDollarSyntax Modified test/Lint.lean 2024-08-19 07:41:58 047121f feat(Order/SuccPred/Basic): `succ_eq_sInf` (#15907) We prove that the successor of an element is the infimum of those greater than it, both in a complete lattice and a conditionally complete lattice with no maxima. ESTIMATED CHANGES Modified Mathlib/Order/SuccPred/Basic.lean + theorem Order.pred_eq_csSup +/- theorem Order.pred_eq_iSup + theorem Order.pred_eq_sSup + theorem Order.succ_eq_csInf +/- theorem Order.succ_eq_iInf + theorem Order.succ_eq_sInf 2024-08-19 07:41:57 6312441 feat(Order/SuccPred/CompleteLinearOrder): `ConditionallyCompleteLinearOrder.toSuccOrder` (#15863) Every complete linear order with well-founded `<` is a successor order. We also change some `LinearOrder α` + `IsWellOrder α (<)` to `LinearOrder α` + `WellFoundedLT α`. Note that these instances are mathematically equivalent, but the former has redundant assumptions. ESTIMATED CHANGES Modified Mathlib/Order/ConditionallyCompleteLattice/Basic.lean Modified Mathlib/Order/SuccPred/CompleteLinearOrder.lean Modified Mathlib/SetTheory/Cardinal/Basic.lean Modified Mathlib/SetTheory/Ordinal/Basic.lean 2024-08-19 07:41:56 5ce383e feat(CategoryTheory/Limits): epi/mono in functor categories (#15770) In this file, we obtain new versions of lemmas `NatTrans.mono_iff_mono_app` (resp. `NatTrans.epi_iff_epi_app`) when the category has pullbacks (resp. pushouts). The previous versions of these lemmas were deduced from the existence of adjunctions which relied on the existence of (co)products. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/CategoryTheory/Adjunction/Evaluation.lean + theorem CategoryTheory.NatTrans.epi_iff_epi_app' - theorem CategoryTheory.NatTrans.epi_iff_epi_app + theorem CategoryTheory.NatTrans.mono_iff_mono_app' - theorem CategoryTheory.NatTrans.mono_iff_mono_app Added Mathlib/CategoryTheory/Limits/FunctorCategoryEpiMono.lean + theorem CategoryTheory.NatTrans.epi_iff_epi_app + theorem CategoryTheory.NatTrans.mono_iff_mono_app Modified Mathlib/CategoryTheory/Sites/Subsheaf.lean Modified Mathlib/Topology/Sheaves/Stalks.lean 2024-08-19 06:38:47 1ad9a86 feat: reset options using moreServerArgs (#15616) The change sets the default value of several linters to be false, so that they are not imposed on dependencies of mathlib, but sets them on for mathlib. #15521 removes the ad-hoc crippling of some of the linters, to prevent them from acting on downstream projects. Even though #15521 is not technically a dependency of this one, it probably makes sense to not merge #15521 before this one (and it should definitely be merged simultaneously/just after this one!). The [Zulip discussion](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/Improper.20firing.20of.20linter.2Ehashcommand/near/457284896) about this settled on the following choices for global vs mathlib-only linter options: Global: * `globalAttributeIn` * `haveLetLinter` * `dupNamespace` * `unusedTacticLinter` Mathlib local: * `hashCommandLinter` * `missingEndLinter` * `cdotLinter` * `longLineLinter` * `oldObtainLinter` * `refineLinter` * `setOptionLinter` ESTIMATED CHANGES Modified Mathlib/Tactic/Linter/HashCommandLinter.lean Modified Mathlib/Tactic/Linter/Lint.lean Modified Mathlib/Tactic/Linter/OldObtain.lean Modified Mathlib/Tactic/Linter/RefineLinter.lean Modified Mathlib/Tactic/Linter/Style.lean Modified lakefile.lean Modified test/HashCommandLinter.lean 2024-08-19 06:12:30 5aad62f chore(scripts/create-adaptation-pr.sh): better merge conflict handling (#15962) This PR improves the way the script for creating nightly-testing adaptation PRs is handling merge conflicts. If the only conflicts are in `lean-toolchain` and `lake-manifest.json`, then the script will automatically resolve them and commit the changes. If there are more conflicts or uncommitted files, the script will loop until all conflicts are resolved and committed. In the script, there are three places where merge conflicts can occur: in the second case, the script does not require the user to commit, since the script prepares a commit message itself. This commit is allowed to be empty, to handle cases where the user inadvertently already committed, or in general to prevent the commit command from failing. ESTIMATED CHANGES Modified scripts/create-adaptation-pr.sh 2024-08-19 05:28:47 d2c9466 feat: `Fintype (LTSeries α)` if `Fintype α` (#15960) From the Carleson project. ESTIMATED CHANGES Modified Mathlib/Order/RelSeries.lean + def LTSeries.injStrictMono + theorem LTSeries.length_lt_card 2024-08-19 05:28:46 26c015d chore(Archive): remove most bare open Classical (#15835) A few files remain, which use it pretty pervasively: I was not sure if removing it there would have been an improvement. ESTIMATED CHANGES Modified Archive/Imo/Imo1986Q5.lean Modified Archive/Sensitivity.lean Modified Archive/Wiedijk100Theorems/AscendingDescendingSequences.lean Modified Archive/Wiedijk100Theorems/FriendshipGraphs.lean Modified Archive/Wiedijk100Theorems/SumOfPrimeReciprocalsDiverges.lean 2024-08-19 04:34:29 6dfa77d chore: deprecate some duplicate list lemmas (#15683) ESTIMATED CHANGES Modified Mathlib/Data/Bool/AllAny.lean - theorem List.all_iff_forall - theorem List.any_iff_exists +/- theorem List.any_iff_exists_prop Modified Mathlib/Data/List/EditDistance/Estimator.lean Modified Mathlib/Init/Data/List/Lemmas.lean 2024-08-19 02:21:08 74ed769 fix(lint-style): make sure Python style errors fail the linting step; fix --fix mode (#15954) We need to pass any --fix flag down to `lint-style.py`; this detail got lost along the rewrite. While at it, tweak the formatting of error messages slightly: avoid an extra newline after the Python output, and pluralise errors more correctly. ESTIMATED CHANGES Modified Mathlib/Geometry/Manifold/Instances/Real.lean Modified Mathlib/Tactic/Linter/TextBased.lean Modified scripts/print-style-errors.sh 2024-08-19 00:56:24 c2bdf1c feat: add a `DecidableEq` instance to `FirstOrder.Language.Term` (#15821) [Zulip thread](https://leanprover.zulipchat.com/#narrow/stream/113488-general/topic/.60Fin.20n.20-.3E.20a.60.20decidability/near/462419034) ESTIMATED CHANGES Modified Mathlib/ModelTheory/Syntax.lean 2024-08-19 00:00:54 5315a73 chore: protect Finset.ext_iff (#15698) This replaces the manual implementation by one generated by the ext attribute for consistency. ESTIMATED CHANGES Modified Mathlib/Algebra/BigOperators/Ring.lean Modified Mathlib/Data/Finset/Basic.lean +/- theorem Finset.Finset.filter_inj' +/- theorem Finset.Finset.filter_inj +/- theorem Finset.ext - theorem Finset.ext_iff Modified Mathlib/Data/Finset/Image.lean Modified Mathlib/Data/Finset/Sum.lean +/- theorem Finset.disjSum_eq_empty Modified Mathlib/Data/Fintype/Basic.lean +/- theorem Finset.eq_univ_iff_forall Modified Mathlib/Order/Interval/Finset/Basic.lean 2024-08-18 22:27:06 5dccde4 feat(GroupTheory/Index): `index_toAddSubgroup` (#15946) Add `simp` lemmas relating indexes of additive and multiplicative subgroups, as converted with `Subgroup.toAddSubgroup` and `AddSubgroup.toSubgroup`, all proved with `rfl`. From AperiodicMonotilesLean. ESTIMATED CHANGES Modified Mathlib/GroupTheory/Index.lean + theorem AddSubgroup.index_toSubgroup + theorem AddSubgroup.relindex_toSubgroup + theorem Subgroup.index_toAddSubgroup + theorem Subgroup.relindex_toAddSubgroup 2024-08-18 04:33:07 bbc4793 chore: remove bare open Classical, part 6 (#15837) ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/Trace.lean +/- theorem LinearMap.trace_mul_comm Modified Mathlib/Order/Filter/Ultrafilter.lean Modified Mathlib/Order/SuccPred/Basic.lean Modified Mathlib/Order/Zorn.lean Modified Mathlib/SetTheory/Cardinal/Finsupp.lean +/- theorem Cardinal.mk_multiset_of_countable +/- theorem Cardinal.mk_multiset_of_nonempty Modified Mathlib/Topology/Algebra/InfiniteSum/Order.lean +/- theorem isLUB_hasProd' Modified Mathlib/Topology/Algebra/InfiniteSum/Ring.lean +/- theorem Commute.tsum_right +/- theorem tsum_mul_left +/- theorem tsum_mul_right Modified Mathlib/Topology/Algebra/Module/Basic.lean Modified Mathlib/Topology/Algebra/Module/LinearPMap.lean Modified Mathlib/Topology/Algebra/Monoid.lean Modified Mathlib/Topology/Algebra/Order/LiminfLimsup.lean Modified Mathlib/Topology/Algebra/Valued/ValuationTopology.lean 2024-08-18 03:53:40 c309f80 feat(Filter): add disjoint_comap_iff_map etc (#15924) These are simple corollaries of `Filter.push_pull`. ESTIMATED CHANGES Modified Mathlib/Order/Filter/Basic.lean + theorem Filter.disjoint_comap_iff_map' + theorem Filter.disjoint_comap_iff_map + theorem Filter.neBot_inf_comap_iff_map' + theorem Filter.neBot_inf_comap_iff_map 2024-08-18 01:14:25 6ad8df9 feat: Binary entropy (#9734) Define the (Shannon) binary and q-ary entropy functions. The binary entropy function is used in information theory; for example, in Shannon's theorems. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Group/Basic.lean + theorem inv_div_comm Added Mathlib/Analysis/SpecialFunctions/BinaryEntropy.lean + theorem Real.binEntropy_continuous + theorem Real.binEntropy_eq_log_two + theorem Real.binEntropy_eq_negMulLog_add_negMulLog_one_sub' + theorem Real.binEntropy_eq_negMulLog_add_negMulLog_one_sub + theorem Real.binEntropy_eq_zero + theorem Real.binEntropy_le_log_two + theorem Real.binEntropy_lt_log_two + theorem Real.binEntropy_neg_of_neg + theorem Real.binEntropy_neg_of_one_lt + theorem Real.binEntropy_nonneg + theorem Real.binEntropy_nonpos_of_nonpos + theorem Real.binEntropy_nonpos_of_one_le + theorem Real.binEntropy_one + theorem Real.binEntropy_one_sub + theorem Real.binEntropy_pos + theorem Real.binEntropy_strictAntiOn + theorem Real.binEntropy_strictMonoOn + theorem Real.binEntropy_two_inv + theorem Real.binEntropy_two_inv_add + theorem Real.binEntropy_zero + theorem Real.deriv2_binEntropy + theorem Real.deriv2_qaryEntropy + theorem Real.deriv_binEntropy + theorem Real.deriv_qaryEntropy + theorem Real.differentiableAt_binEntropy + theorem Real.differentiableAt_binEntropy_iff_ne_zero_one + theorem Real.differentiableAt_qaryEntropy + theorem Real.hasDerivAt_binEntropy + theorem Real.hasDerivAt_qaryEntropy + theorem Real.not_continuousAt_deriv_qaryEntropy_one + theorem Real.not_continuousAt_deriv_qaryEntropy_zero + theorem Real.qaryEntropy_continuous + theorem Real.qaryEntropy_neg_of_neg + theorem Real.qaryEntropy_nonneg + theorem Real.qaryEntropy_nonpos_of_nonpos + theorem Real.qaryEntropy_one + theorem Real.qaryEntropy_pos + theorem Real.qaryEntropy_strictAntiOn + theorem Real.qaryEntropy_strictMonoOn + theorem Real.qaryEntropy_two + theorem Real.qaryEntropy_zero + theorem Real.strictConcaveOn_qaryEntropy + theorem Real.strictConcave_binEntropy Modified Mathlib/Analysis/SpecialFunctions/Log/Deriv.lean Modified Mathlib/Analysis/SpecialFunctions/Log/NegMulLog.lean + theorem Real.Continuous.mul_log +/- theorem Real.continuous_negMulLog 2024-08-17 22:56:48 afd4d84 feat: interior, closure and frontier of Euclidean half-spaces (#15890) Preparatory lemmas towards proving that the real interval $[x,y]$ has boundary {x,y} as a smooth manifold. ESTIMATED CHANGES Modified Mathlib/Geometry/Manifold/Instances/Real.lean +/- theorem EuclideanHalfSpace.ext +/- def EuclideanHalfSpace + theorem closure_halfspace + theorem frontier_halfspace + theorem frontier_range_modelWithCornersEuclideanHalfSpace + theorem interior_halfspace + theorem interior_range_modelWithCornersEuclideanHalfSpace +/- def modelWithCornersEuclideanHalfSpace +/- theorem range_euclideanHalfSpace + theorem range_modelWithCornersEuclideanHalfSpace 2024-08-17 20:49:19 f94496f chore: follow the "reducible non-instances" library note (#15850) This marks some non-instance `def`s as `abbrev`s, per the relevant library note. Without this, we're placing default transparency roadblocks whenever these `def`s get used to create specific `instance`s on types. ESTIMATED CHANGES Modified Mathlib/Analysis/Normed/Module/Basic.lean - def NormedAlgebra.restrictScalars - def NormedSpace.restrictScalars Modified Mathlib/Topology/EMetricSpace/Defs.lean - def EMetricSpace.induced - def EMetricSpace.replaceUniformity - def PseudoEMetricSpace.induced - def PseudoEMetricSpace.replaceUniformity Modified Mathlib/Topology/MetricSpace/Defs.lean - def MetricSpace.replaceBornology - def MetricSpace.replaceUniformity Modified Mathlib/Topology/MetricSpace/Pseudo/Defs.lean 2024-08-17 20:08:55 220ac01 chore(*): use `rfl` to prove `symm_symm` (#15923) ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/Equiv.lean +/- theorem AlgEquiv.symm_symm Modified Mathlib/Algebra/Homology/ComplexShape.lean +/- theorem ComplexShape.symm_symm Modified Mathlib/Algebra/Lie/Basic.lean +/- theorem LieEquiv.symm_symm +/- theorem LieModuleEquiv.symm_symm Modified Mathlib/Algebra/Module/Equiv/Defs.lean +/- theorem LinearEquiv.symm_symm Modified Mathlib/Algebra/Order/Hom/Ring.lean +/- theorem OrderRingIso.symm_symm Modified Mathlib/Algebra/Ring/Equiv.lean +/- theorem RingEquiv.symm_symm Modified Mathlib/Algebra/Star/StarAlgHom.lean +/- theorem StarAlgEquiv.symm_symm Modified Mathlib/Algebra/Star/StarRingHom.lean +/- theorem StarRingEquiv.symm_symm Modified Mathlib/Analysis/Normed/Affine/Isometry.lean +/- theorem AffineIsometryEquiv.symm_symm Modified Mathlib/Analysis/Normed/Operator/LinearIsometry.lean +/- theorem LinearIsometryEquiv.symm_symm Modified Mathlib/CategoryTheory/Iso.lean +/- theorem CategoryTheory.Iso.symm_symm_eq Modified Mathlib/Data/PEquiv.lean +/- theorem PEquiv.symm_symm Modified Mathlib/LinearAlgebra/AffineSpace/ContinuousAffineEquiv.lean +/- theorem ContinuousAffineEquiv.symm_symm Modified Mathlib/LinearAlgebra/TensorProduct/Graded/Internal.lean Modified Mathlib/Logic/Equiv/Defs.lean +/- theorem Equiv.symm_symm +/- theorem Equiv.symm_symm_apply Modified Mathlib/Logic/Equiv/PartialEquiv.lean +/- theorem PartialEquiv.symm_symm Modified Mathlib/Order/Hom/Basic.lean +/- theorem OrderIso.symm_symm Modified Mathlib/Topology/Algebra/Module/Basic.lean +/- theorem ContinuousLinearEquiv.symm_symm Modified Mathlib/Topology/VectorBundle/Hom.lean 2024-08-17 19:58:35 d5fafd0 feat: Real-valued double counting (#15917) Generalise the existing double counting arguments to real numbers. This is useful to avoid dealing with floors and ceils everywhere. From LeanAPAP ESTIMATED CHANGES Modified Mathlib/Combinatorics/Enumerative/DoubleCounting.lean + theorem Finset.card_nsmul_le_card_nsmul' + theorem Finset.card_nsmul_le_card_nsmul + theorem Finset.card_nsmul_lt_card_nsmul_of_le_of_lt' + theorem Finset.card_nsmul_lt_card_nsmul_of_le_of_lt + theorem Finset.card_nsmul_lt_card_nsmul_of_lt_of_le' + theorem Finset.card_nsmul_lt_card_nsmul_of_lt_of_le 2024-08-17 16:10:13 ee9adf2 feat(CategoryTheory/ConnectedComponents) : extracted a definition from Cat to be used by categories in general (#15873) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Category/Cat/Adjunction.lean Modified Mathlib/CategoryTheory/ConnectedComponents.lean + def CategoryTheory.Functor.mapConnectedComponents + theorem CategoryTheory.Functor.mapConnectedComponents_mk 2024-08-17 15:48:55 6d0b009 feat(CategoryTheory/Products) : cartesian product functor between functor categories (#15920) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Products/Basic.lean + def CategoryTheory.prodFunctor 2024-08-17 15:02:13 aae0e91 chore(Algebra/Lie): rename weightSpace to genWeightspace (#15911) There are two variants of the concept of weight space, similar to the two concepts of eigenspace and generalized eigenspace. This PR renames `weightSpace` to `genWeightSpace` so that the name `weightSpace` can be reused for the version of weight spaces using non-generalized eigenspaces. Moves: - coe_lie_shiftedWeightSpace_apply -> coe_lie_shiftedgenWeightSpace_apply - coe_weightSpaceOf_zero -> coe_genWeightSpaceOf_zero - coe_weightSpace_of_top -> coe_genWeightSpace_of_top - comap_weightSpace_eq_of_injective -> comap_genWeightSpace_eq_of_injective - disjoint_weightSpace -> disjoint_genWeightSpace - disjoint_weightSpaceOf -> disjoint_genWeightSpaceOf - eq_zero_of_mem_weightSpace_mem_posFitting -> eq_zero_of_mem_genWeightSpace_mem_posFitting - eventually_weightSpace_smul_add_eq_bot -> eventually_genWeightSpace_smul_add_eq_bot - exists_weightSpace_le_ker_of_isNoetherian -> exists_genWeightSpace_le_ker_of_isNoetherian - exists_weightSpace_smul_add_eq_bot -> exists_genWeightSpace_smul_add_eq_bot - exists_weightSpace_zero_le_ker_of_isNoetherian -> exists_genWeightSpace_zero_le_ker_of_isNoetherian - exists₂_weightSpace_smul_add_eq_bot -> exists₂_genWeightSpace_smul_add_eq_bot - finite_weightSpaceOf_ne_bot -> finite_genWeightSpaceOf_ne_bot - finite_weightSpace_ne_bot -> finite_genWeightSpace_ne_bot - iSup_ucs_eq_weightSpace_zero -> iSup_ucs_eq_genWeightSpace_zero - iSup_ucs_le_weightSpace_zero -> iSup_ucs_le_genWeightSpace_zero - iSup_weightSpaceOf_eq_top -> iSup_genWeightSpaceOf_eq_top - iSup_weightSpace_eq_top -> iSup_genWeightSpace_eq_top - iSup_weightSpace_eq_top' -> iSup_genWeightSpace_eq_top' - independent_weightSpace -> independent_genWeightSpace - independent_weightSpace' -> independent_genWeightSpace' - independent_weightSpaceOf -> independent_genWeightSpaceOf - injOn_weightSpace -> injOn_genWeightSpace - isCompl_weightSpaceOf_zero_posFittingCompOf -> isCompl_genWeightSpaceOf_zero_posFittingCompOf - isCompl_weightSpace_zero_posFittingComp -> isCompl_genWeightSpace_zero_posFittingComp - isNilpotent_toEnd_weightSpace_zero -> isNilpotent_toEnd_genWeightSpace_zero - lie_mem_weightSpaceChain_of_weightSpace_eq_bot_left -> lie_mem_genWeightSpaceChain_of_genWeightSpace_eq_bot_left - lie_mem_weightSpaceChain_of_weightSpace_eq_bot_right -> lie_mem_genWeightSpaceChain_of_genWeightSpace_eq_bot_right - lie_mem_weightSpace_of_mem_weightSpace -> lie_mem_genWeightSpace_of_mem_genWeightSpace - map_weightSpace_eq -> map_genWeightSpace_eq - map_weightSpace_eq_of_injective -> map_genWeightSpace_eq_of_injective - map_weightSpace_le -> map_genWeightSpace_le - mapsTo_toEnd_weightSpace_add_of_mem_rootSpace -> mapsTo_toEnd_genWeightSpace_add_of_mem_rootSpace - mem_weightSpace -> mem_genWeightSpace - mem_weightSpaceOf -> mem_genWeightSpaceOf - rootSpace_comap_eq_weightSpace -> rootSpace_comap_eq_genWeightSpace - shiftedWeightSpace -> shiftedgenWeightSpace - traceForm_eq_sum_weightSpaceOf -> traceForm_eq_sum_genWeightSpaceOf - traceForm_weightSpace_eq -> traceForm_genWeightSpace_eq - trace_comp_toEnd_weightSpace_eq -> trace_comp_toEnd_genWeightSpace_eq - trace_toEnd_weightSpace -> trace_toEnd_genWeightSpace - trace_toEnd_weightSpaceChain_eq_zero -> trace_toEnd_genWeightSpaceChain_eq_zero - weightSpace -> genWeightSpace - weightSpaceChain -> genWeightSpaceChain - weightSpaceChain_def -> genWeightSpaceChain_def - weightSpaceChain_def' -> genWeightSpaceChain_def' - weightSpaceChain_neg -> genWeightSpaceChain_neg - weightSpaceOf -> genWeightSpaceOf - weightSpaceOf_ne_bot -> genWeightSpaceOf_ne_bot - weightSpace_add_chainTop -> genWeightSpace_add_chainTop - weightSpace_chainBotCoeff_sub_one_zsmul_sub -> genWeightSpace_chainBotCoeff_sub_one_zsmul_sub - weightSpace_chainTopCoeff_add_one_nsmul_add -> genWeightSpace_chainTopCoeff_add_one_nsmul_add - weightSpace_chainTopCoeff_add_one_zsmul_add -> genWeightSpace_chainTopCoeff_add_one_zsmul_add - weightSpace_le_weightSpaceChain -> genWeightSpace_le_genWeightSpaceChain - weightSpace_le_weightSpaceOf -> genWeightSpace_le_genWeightSpaceOf - weightSpace_ne_bot -> genWeightSpace_ne_bot - weightSpace_neg_add_chainBot -> genWeightSpace_neg_add_chainBot - weightSpace_neg_zsmul_add_ne_bot -> genWeightSpace_neg_zsmul_add_ne_bot - weightSpace_nsmul_add_ne_bot_of_le -> genWeightSpace_nsmul_add_ne_bot_of_le - weightSpace_weightSpaceOf_map_incl -> genWeightSpace_genWeightSpaceOf_map_incl - weightSpace_zero_normalizer_eq_self -> genWeightSpace_zero_normalizer_eq_self - weightSpace_zsmul_add_ne_bot -> genWeightSpace_zsmul_add_ne_bot - zero_lt_finrank_weightSpace -> zero_lt_finrank_genWeightSpace - zero_weightSpace_eq_top_of_nilpotent -> zero_genWeightSpace_eq_top_of_nilpotent - zero_weightSpace_eq_top_of_nilpotent' -> zero_genWeightSpace_eq_top_of_nilpotent' ESTIMATED CHANGES Modified Mathlib/Algebra/Lie/TraceForm.lean + theorem LieModule.eq_zero_of_mem_genWeightSpace_mem_posFitting - theorem LieModule.eq_zero_of_mem_weightSpace_mem_posFitting + theorem LieModule.traceForm_eq_sum_genWeightSpaceOf - theorem LieModule.traceForm_eq_sum_weightSpaceOf + theorem LieModule.traceForm_genWeightSpace_eq - theorem LieModule.traceForm_weightSpace_eq Modified Mathlib/Algebra/Lie/Weights/Basic.lean +/- theorem LieModule.Weight.coe_zero +/- def LieModule.Weight.equivSetOf + theorem LieModule.Weight.genWeightSpaceOf_ne_bot + theorem LieModule.Weight.genWeightSpace_ne_bot +/- theorem LieModule.Weight.isNonZero_iff_ne_zero +/- theorem LieModule.Weight.isZero_iff_eq_zero +/- theorem LieModule.Weight.isZero_zero - theorem LieModule.Weight.weightSpaceOf_ne_bot - theorem LieModule.Weight.weightSpace_ne_bot +/- theorem LieModule.Weight.zero_apply + theorem LieModule.coe_genWeightSpaceOf_zero + theorem LieModule.coe_genWeightSpace_of_top - theorem LieModule.coe_weightSpaceOf_zero - theorem LieModule.coe_weightSpace_of_top + theorem LieModule.comap_genWeightSpace_eq_of_injective - theorem LieModule.comap_weightSpace_eq_of_injective + theorem LieModule.disjoint_genWeightSpace + theorem LieModule.disjoint_genWeightSpaceOf - theorem LieModule.disjoint_weightSpace - theorem LieModule.disjoint_weightSpaceOf + theorem LieModule.exists_genWeightSpace_le_ker_of_isNoetherian + theorem LieModule.exists_genWeightSpace_zero_le_ker_of_isNoetherian - theorem LieModule.exists_weightSpace_le_ker_of_isNoetherian - theorem LieModule.exists_weightSpace_zero_le_ker_of_isNoetherian + theorem LieModule.finite_genWeightSpaceOf_ne_bot + theorem LieModule.finite_genWeightSpace_ne_bot - theorem LieModule.finite_weightSpaceOf_ne_bot - theorem LieModule.finite_weightSpace_ne_bot + def LieModule.genWeightSpace + def LieModule.genWeightSpaceOf + theorem LieModule.genWeightSpace_genWeightSpaceOf_map_incl + theorem LieModule.genWeightSpace_le_genWeightSpaceOf + theorem LieModule.genWeightSpace_zero_normalizer_eq_self + theorem LieModule.iSup_genWeightSpaceOf_eq_top + theorem LieModule.iSup_genWeightSpace_eq_top' + theorem LieModule.iSup_genWeightSpace_eq_top + theorem LieModule.iSup_ucs_eq_genWeightSpace_zero - theorem LieModule.iSup_ucs_eq_weightSpace_zero + theorem LieModule.iSup_ucs_le_genWeightSpace_zero - theorem LieModule.iSup_ucs_le_weightSpace_zero - theorem LieModule.iSup_weightSpaceOf_eq_top - theorem LieModule.iSup_weightSpace_eq_top' - theorem LieModule.iSup_weightSpace_eq_top + theorem LieModule.independent_genWeightSpace' + theorem LieModule.independent_genWeightSpace + theorem LieModule.independent_genWeightSpaceOf - theorem LieModule.independent_weightSpace' - theorem LieModule.independent_weightSpace - theorem LieModule.independent_weightSpaceOf + theorem LieModule.injOn_genWeightSpace - theorem LieModule.injOn_weightSpace + theorem LieModule.isCompl_genWeightSpaceOf_zero_posFittingCompOf + theorem LieModule.isCompl_genWeightSpace_zero_posFittingComp - theorem LieModule.isCompl_weightSpaceOf_zero_posFittingCompOf - theorem LieModule.isCompl_weightSpace_zero_posFittingComp + theorem LieModule.isNilpotent_toEnd_genWeightSpace_zero - theorem LieModule.isNilpotent_toEnd_weightSpace_zero + theorem LieModule.map_genWeightSpace_eq + theorem LieModule.map_genWeightSpace_eq_of_injective + theorem LieModule.map_genWeightSpace_le - theorem LieModule.map_weightSpace_eq - theorem LieModule.map_weightSpace_eq_of_injective - theorem LieModule.map_weightSpace_le + theorem LieModule.mem_genWeightSpace + theorem LieModule.mem_genWeightSpaceOf - theorem LieModule.mem_weightSpace - theorem LieModule.mem_weightSpaceOf + theorem LieModule.trace_toEnd_genWeightSpace - theorem LieModule.trace_toEnd_weightSpace - def LieModule.weightSpace - def LieModule.weightSpaceOf - theorem LieModule.weightSpace_le_weightSpaceOf - theorem LieModule.weightSpace_weightSpaceOf_map_incl - theorem LieModule.weightSpace_zero_normalizer_eq_self + theorem LieModule.zero_genWeightSpace_eq_top_of_nilpotent' + theorem LieModule.zero_genWeightSpace_eq_top_of_nilpotent - theorem LieModule.zero_weightSpace_eq_top_of_nilpotent' - theorem LieModule.zero_weightSpace_eq_top_of_nilpotent Modified Mathlib/Algebra/Lie/Weights/Cartan.lean + theorem LieAlgebra.lie_mem_genWeightSpace_of_mem_genWeightSpace - theorem LieAlgebra.lie_mem_weightSpace_of_mem_weightSpace + theorem LieAlgebra.mapsTo_toEnd_genWeightSpace_add_of_mem_rootSpace - theorem LieAlgebra.mapsTo_toEnd_weightSpace_add_of_mem_rootSpace + theorem LieAlgebra.rootSpace_comap_eq_genWeightSpace - theorem LieAlgebra.rootSpace_comap_eq_weightSpace Modified Mathlib/Algebra/Lie/Weights/Chain.lean +/- theorem LieModule.chainTop_isNonZero' + theorem LieModule.eventually_genWeightSpace_smul_add_eq_bot - theorem LieModule.eventually_weightSpace_smul_add_eq_bot + theorem LieModule.exists_genWeightSpace_smul_add_eq_bot - theorem LieModule.exists_weightSpace_smul_add_eq_bot + theorem LieModule.exists₂_genWeightSpace_smul_add_eq_bot - theorem LieModule.exists₂_weightSpace_smul_add_eq_bot + def LieModule.genWeightSpaceChain + theorem LieModule.genWeightSpaceChain_def' + theorem LieModule.genWeightSpaceChain_def + theorem LieModule.genWeightSpaceChain_neg + theorem LieModule.genWeightSpace_add_chainTop + theorem LieModule.genWeightSpace_chainBotCoeff_sub_one_zsmul_sub + theorem LieModule.genWeightSpace_chainTopCoeff_add_one_nsmul_add + theorem LieModule.genWeightSpace_chainTopCoeff_add_one_zsmul_add + theorem LieModule.genWeightSpace_le_genWeightSpaceChain + theorem LieModule.genWeightSpace_neg_add_chainBot + theorem LieModule.genWeightSpace_neg_zsmul_add_ne_bot + theorem LieModule.genWeightSpace_nsmul_add_ne_bot_of_le + theorem LieModule.genWeightSpace_zsmul_add_ne_bot + theorem LieModule.lie_mem_genWeightSpaceChain_of_genWeightSpace_eq_bot_left + theorem LieModule.lie_mem_genWeightSpaceChain_of_genWeightSpace_eq_bot_right - theorem LieModule.lie_mem_weightSpaceChain_of_weightSpace_eq_bot_left - theorem LieModule.lie_mem_weightSpaceChain_of_weightSpace_eq_bot_right + theorem LieModule.trace_toEnd_genWeightSpaceChain_eq_zero - theorem LieModule.trace_toEnd_weightSpaceChain_eq_zero - def LieModule.weightSpaceChain - theorem LieModule.weightSpaceChain_def' - theorem LieModule.weightSpaceChain_def - theorem LieModule.weightSpaceChain_neg - theorem LieModule.weightSpace_add_chainTop - theorem LieModule.weightSpace_chainBotCoeff_sub_one_zsmul_sub - theorem LieModule.weightSpace_chainTopCoeff_add_one_nsmul_add - theorem LieModule.weightSpace_chainTopCoeff_add_one_zsmul_add - theorem LieModule.weightSpace_le_weightSpaceChain - theorem LieModule.weightSpace_neg_add_chainBot - theorem LieModule.weightSpace_neg_zsmul_add_ne_bot - theorem LieModule.weightSpace_nsmul_add_ne_bot_of_le - theorem LieModule.weightSpace_zsmul_add_ne_bot Modified Mathlib/Algebra/Lie/Weights/Killing.lean Modified Mathlib/Algebra/Lie/Weights/Linear.lean + theorem LieModule.shiftedGenWeightSpace.coe_lie_shiftedGenWeightSpace_apply + def LieModule.shiftedGenWeightSpace.shift + theorem LieModule.shiftedGenWeightSpace.toEnd_eq + def LieModule.shiftedGenWeightSpace - theorem LieModule.shiftedWeightSpace.coe_lie_shiftedWeightSpace_apply - def LieModule.shiftedWeightSpace.shift - theorem LieModule.shiftedWeightSpace.toEnd_eq - def LieModule.shiftedWeightSpace + theorem LieModule.trace_comp_toEnd_genWeightSpace_eq - theorem LieModule.trace_comp_toEnd_weightSpace_eq + theorem LieModule.zero_lt_finrank_genWeightSpace - theorem LieModule.zero_lt_finrank_weightSpace Modified Mathlib/Algebra/Lie/Weights/RootSystem.lean 2024-08-17 13:18:00 67d7502 chore(Algebra.Order.Ring.Rat): split into unbundled and bundled ordered algebra results (#15071) We split off all but the `LinearOrderedCommRing` and the inferred `OrderedAddCommMonoid` instances on `Rat` into `Algebra.Order.Ring.Unbundled.Rat` as these results do not require bundled ordered algebra classes. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Order/Ring/Rat.lean - theorem NNRat.cast_ofScientific - theorem Rat.abs_def - theorem Rat.divInt_nonneg - theorem Rat.divInt_nonneg_iff_of_pos_right - theorem Rat.div_lt_div_iff_mul_lt_mul - theorem Rat.lt_one_iff_num_lt_denom - theorem Rat.mkRat_nonneg - theorem Rat.num_neg - theorem Rat.num_nonpos - theorem Rat.num_pos - theorem Rat.ofScientific_nonneg Added Mathlib/Algebra/Order/Ring/Unbundled/Rat.lean + theorem NNRat.cast_ofScientific + theorem Rat.abs_def + theorem Rat.divInt_nonneg + theorem Rat.divInt_nonneg_iff_of_pos_right + theorem Rat.div_lt_div_iff_mul_lt_mul + theorem Rat.lt_one_iff_num_lt_denom + theorem Rat.mkRat_nonneg + theorem Rat.num_neg + theorem Rat.num_nonpos + theorem Rat.num_pos + theorem Rat.ofScientific_nonneg Modified Mathlib/Data/FP/Basic.lean Modified Mathlib/Data/Int/Star.lean Modified Mathlib/Data/NNRat/Defs.lean +/- def NNRat.divNat Modified Mathlib/Data/Rat/Cast/Lemmas.lean 2024-08-17 12:07:39 fb7b6b7 chore (Data.Multiset.Basic): avoid bundled ordered algebra for basic results on multisets (#14477) `Data.Multiset.Basic` is a fairly low-level file. Currently, it imports `Algebra.Order.Monoid.Defs` to establish that multisets on a type are an `StrictOrderedAddCancelCommMonoid` and uses that classes API in a dozen places. Unfortunately, this also adds, to this file and all that import it, the projections from the ordered monoids defined in `Algebra.Order.Monoid.Defs` as instances for Lean to try when synthesizing a `CommMonoid` impacting performance. This PR moves the ordered monoid instances to a new file `Data.Multiset.OrderedMonoid` and makes minor changes to `Basic` to avoid this import. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/BigOperators/Group/Finset.lean +/- theorem Finset.prod_erase_lt_of_one_lt +/- theorem Finset.sum_range_tsub Modified Mathlib/Algebra/Order/Antidiag/Prod.lean Modified Mathlib/Algebra/Order/BigOperators/Group/Finset.lean Modified Mathlib/Algebra/Order/Field/Pi.lean Modified Mathlib/Algebra/Order/Ring/Canonical.lean Modified Mathlib/Algebra/Order/Sub/Basic.lean - theorem AddHom.le_map_tsub - theorem AddMonoidHom.le_map_tsub + theorem Even.tsub - theorem OrderIso.map_tsub + theorem add_tsub_cancel_iff_le + theorem add_tsub_eq_max - theorem le_mul_tsub - theorem le_tsub_mul + theorem tsub_add_cancel_iff_le + theorem tsub_add_eq_max + theorem tsub_add_min + theorem tsub_eq_tsub_min + theorem tsub_eq_zero_iff_le + theorem tsub_le_self + theorem tsub_le_tsub_iff_left + theorem tsub_lt_of_lt + theorem tsub_lt_self + theorem tsub_lt_self_iff + theorem tsub_lt_tsub_iff_left_of_le + theorem tsub_lt_tsub_iff_right + theorem tsub_min + theorem tsub_pos_iff_lt + theorem tsub_pos_iff_not_le + theorem tsub_pos_of_lt + theorem tsub_right_inj + theorem tsub_self + theorem tsub_self_add + theorem tsub_tsub_eq_min + theorem zero_tsub Renamed Mathlib/Algebra/Order/Sub/Canonical.lean to Mathlib/Algebra/Order/Sub/Unbundled/Basic.lean - theorem Even.tsub - theorem add_tsub_cancel_iff_le - theorem add_tsub_eq_max - theorem tsub_add_cancel_iff_le - theorem tsub_add_eq_max - theorem tsub_add_min - theorem tsub_eq_tsub_min - theorem tsub_eq_zero_iff_le - theorem tsub_le_self - theorem tsub_le_tsub_iff_left - theorem tsub_lt_of_lt - theorem tsub_lt_self - theorem tsub_lt_self_iff - theorem tsub_lt_tsub_iff_left_of_le - theorem tsub_lt_tsub_iff_right - theorem tsub_min - theorem tsub_pos_iff_lt - theorem tsub_pos_iff_not_le - theorem tsub_pos_of_lt - theorem tsub_right_inj - theorem tsub_self - theorem tsub_self_add - theorem tsub_tsub_eq_min - theorem zero_tsub Added Mathlib/Algebra/Order/Sub/Unbundled/Hom.lean + theorem AddHom.le_map_tsub + theorem AddMonoidHom.le_map_tsub + theorem OrderIso.map_tsub + theorem le_mul_tsub + theorem le_tsub_mul Modified Mathlib/Data/Fin/Tuple/NatAntidiagonal.lean Modified Mathlib/Data/Finset/Basic.lean Modified Mathlib/Data/Finset/Fold.lean Modified Mathlib/Data/Finset/Lattice.lean +/- theorem Finset.nsmul_inf' +/- theorem Finset.nsmul_sup' Modified Mathlib/Data/Finset/MulAntidiagonal.lean Modified Mathlib/Data/Finset/NatAntidiagonal.lean Modified Mathlib/Data/Int/Interval.lean Modified Mathlib/Data/Multiset/Antidiagonal.lean Modified Mathlib/Data/Multiset/Basic.lean Modified Mathlib/Data/Multiset/Nodup.lean Added Mathlib/Data/Multiset/OrderedMonoid.lean Modified Mathlib/Data/PNat/Factors.lean Modified Mathlib/Data/Set/MulAntidiagonal.lean +/- theorem Set.MulAntidiagonal.finite_of_isWF Modified Mathlib/GroupTheory/MonoidLocalization/Order.lean Modified Mathlib/RingTheory/HahnSeries/Basic.lean +/- theorem HahnSeries.order_le_of_coeff_ne_zero Modified Mathlib/Tactic/Monotonicity/Lemmas.lean 2024-08-17 09:33:35 b2af0a8 style: replace `$` with `<|` (#15913) The mathlib style guide requires using `<|` instead of `$`. The linter in #15909 will enforce this. ESTIMATED CHANGES Modified LongestPole/Main.lean Modified Mathlib/Algebra/Associated/Basic.lean Modified Mathlib/Algebra/BigOperators/Group/Finset.lean Modified Mathlib/Algebra/Field/Basic.lean Modified Mathlib/Algebra/Field/Opposite.lean Modified Mathlib/Algebra/Group/Action/Defs.lean Modified Mathlib/Algebra/Group/Basic.lean Modified Mathlib/Algebra/Group/Hom/Defs.lean Modified Mathlib/Algebra/GroupWithZero/Basic.lean +/- theorem ne_zero_pow Modified Mathlib/Algebra/GroupWithZero/Center.lean Modified Mathlib/Algebra/GroupWithZero/Hom.lean Modified Mathlib/Algebra/GroupWithZero/NonZeroDivisors.lean Modified Mathlib/Algebra/Homology/ShortComplex/ExactFunctor.lean Modified Mathlib/Algebra/MvPolynomial/Degrees.lean Modified Mathlib/Algebra/Order/Antidiag/Pi.lean Modified Mathlib/Algebra/Order/CauSeq/Basic.lean Modified Mathlib/Algebra/Order/CauSeq/BigOperators.lean Modified Mathlib/Algebra/Order/Floor/Div.lean Modified Mathlib/Algebra/Order/Group/Basic.lean Modified Mathlib/Algebra/Order/Group/PosPart.lean Modified Mathlib/Algebra/Order/Module/Algebra.lean Modified Mathlib/Algebra/Order/Module/Rat.lean Modified Mathlib/Algebra/Order/Monoid/Canonical/Defs.lean Modified Mathlib/Algebra/Order/Ring/Abs.lean Modified Mathlib/Algebra/Order/Ring/Basic.lean Modified Mathlib/Algebra/Order/Ring/Unbundled/Basic.lean Modified Mathlib/Algebra/Order/Ring/WithTop.lean Modified Mathlib/Algebra/Polynomial/Degree/TrailingDegree.lean Modified Mathlib/Algebra/Polynomial/EraseLead.lean Modified Mathlib/Algebra/Polynomial/RingDivision.lean Modified Mathlib/Algebra/Ring/Hom/Defs.lean Modified Mathlib/Algebra/Ring/Parity.lean Modified Mathlib/AlgebraicGeometry/Modules/Tilde.lean Modified Mathlib/AlgebraicGeometry/Stalk.lean Modified Mathlib/Analysis/CStarAlgebra/Multiplier.lean Modified Mathlib/Analysis/Calculus/Deriv/Shift.lean Modified Mathlib/Analysis/Convex/Combination.lean Modified Mathlib/Analysis/Convex/Cone/Closure.lean Modified Mathlib/Analysis/Convex/Deriv.lean Modified Mathlib/Analysis/InnerProductSpace/TwoDim.lean Modified Mathlib/Analysis/MeanInequalities.lean Modified Mathlib/Analysis/Normed/Field/Basic.lean Modified Mathlib/Analysis/Normed/Order/UpperLower.lean Modified Mathlib/Analysis/RCLike/Basic.lean Modified Mathlib/Analysis/SpecialFunctions/Complex/Arg.lean Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Bounds.lean Modified Mathlib/CategoryTheory/Category/PartialFun.lean Modified Mathlib/CategoryTheory/Limits/ConcreteCategory/WithAlgebraicStructures.lean Modified Mathlib/Combinatorics/Additive/AP/Three/Defs.lean Modified Mathlib/Combinatorics/Additive/Corner/Defs.lean Modified Mathlib/Combinatorics/Additive/Corner/Roth.lean Modified Mathlib/Combinatorics/Additive/Dissociation.lean Modified Mathlib/Combinatorics/Additive/Energy.lean Modified Mathlib/Combinatorics/Additive/ErdosGinzburgZiv.lean Modified Mathlib/Combinatorics/Additive/FreimanHom.lean Modified Mathlib/Combinatorics/Colex.lean Modified Mathlib/Combinatorics/SetFamily/AhlswedeZhang.lean +/- theorem Finset.truncatedInf_empty +/- theorem Finset.truncatedSup_empty Modified Mathlib/Combinatorics/SimpleGraph/Basic.lean Modified Mathlib/Combinatorics/SimpleGraph/Coloring.lean Modified Mathlib/Combinatorics/SimpleGraph/Connectivity/WalkCounting.lean Modified Mathlib/Combinatorics/SimpleGraph/Hamiltonian.lean Modified Mathlib/Combinatorics/SimpleGraph/Regularity/Uniform.lean Modified Mathlib/Combinatorics/SimpleGraph/Triangle/Basic.lean Modified Mathlib/Combinatorics/SimpleGraph/Triangle/Counting.lean Modified Mathlib/Combinatorics/SimpleGraph/Triangle/Removal.lean Modified Mathlib/Combinatorics/SimpleGraph/Triangle/Tripartite.lean Modified Mathlib/Computability/Primrec.lean Modified Mathlib/Data/Complex/Abs.lean Modified Mathlib/Data/Fin/Basic.lean Modified Mathlib/Data/Fin/Tuple/Curry.lean Modified Mathlib/Data/Fin/Tuple/Finset.lean Modified Mathlib/Data/Finset/Basic.lean Modified Mathlib/Data/Finset/Card.lean Modified Mathlib/Data/Finset/Density.lean Modified Mathlib/Data/Finset/Powerset.lean Modified Mathlib/Data/Fintype/BigOperators.lean Modified Mathlib/Data/Int/Star.lean Modified Mathlib/Data/List/Perm.lean Modified Mathlib/Data/List/Range.lean Modified Mathlib/Data/Matrix/Composition.lean Modified Mathlib/Data/Multiset/Basic.lean Modified Mathlib/Data/Multiset/Bind.lean Modified Mathlib/Data/Multiset/Fintype.lean Modified Mathlib/Data/NNRat/Defs.lean Modified Mathlib/Data/Nat/Cast/Basic.lean Modified Mathlib/Data/Nat/Cast/Order/Field.lean Modified Mathlib/Data/Nat/Choose/Lucas.lean Modified Mathlib/Data/Nat/Defs.lean +/- theorem Nat.lt_one_iff +/- theorem Nat.mul_left_eq_self_iff +/- theorem Nat.mul_right_eq_self_iff Modified Mathlib/Data/Nat/Factorial/Basic.lean Modified Mathlib/Data/Nat/Factorization/Root.lean Modified Mathlib/Data/Nat/Find.lean Modified Mathlib/Data/Nat/Log.lean +/- theorem Nat.log_zero_left Modified Mathlib/Data/Real/ConjExponents.lean Modified Mathlib/Data/Real/Sqrt.lean Modified Mathlib/Data/Set/Function.lean Modified Mathlib/Data/Set/Image.lean Modified Mathlib/FieldTheory/IsAlgClosed/AlgebraicClosure.lean Modified Mathlib/FieldTheory/SplittingField/Construction.lean Modified Mathlib/Geometry/Euclidean/Angle/Unoriented/Affine.lean +/- theorem EuclideanGeometry.angle_self_of_ne Modified Mathlib/GroupTheory/FiniteAbelian.lean Modified Mathlib/GroupTheory/OrderOfElement.lean Modified Mathlib/GroupTheory/Perm/Basic.lean Modified Mathlib/LinearAlgebra/AffineSpace/FiniteDimensional.lean Modified Mathlib/LinearAlgebra/Matrix/ZPow.lean Modified Mathlib/LinearAlgebra/Prod.lean Modified Mathlib/LinearAlgebra/Ray.lean Modified Mathlib/Logic/Equiv/Defs.lean Modified Mathlib/Logic/Godel/GodelBetaFunction.lean Modified Mathlib/MeasureTheory/Constructions/BorelSpace/Metric.lean Modified Mathlib/MeasureTheory/Constructions/EventuallyMeasurable.lean Modified Mathlib/MeasureTheory/Function/Intersectivity.lean Modified Mathlib/MeasureTheory/MeasurableSpace/CountablyGenerated.lean Modified Mathlib/MeasureTheory/Measure/FiniteMeasure.lean Modified Mathlib/MeasureTheory/Measure/Haar/Quotient.lean Modified Mathlib/MeasureTheory/Measure/ProbabilityMeasure.lean Modified Mathlib/MeasureTheory/Order/UpperLower.lean Modified Mathlib/MeasureTheory/OuterMeasure/AE.lean Modified Mathlib/NumberTheory/NumberField/Units/Basic.lean Modified Mathlib/Order/Antichain.lean Modified Mathlib/Order/Basic.lean Modified Mathlib/Order/BooleanAlgebra.lean Modified Mathlib/Order/Category/BoolAlg.lean Modified Mathlib/Order/Directed.lean Modified Mathlib/Order/Filter/AtTopBot.lean Modified Mathlib/Order/Filter/CountableSeparatingOn.lean Modified Mathlib/Order/Filter/Curry.lean Modified Mathlib/Order/Interval/Finset/Nat.lean Modified Mathlib/Order/Interval/Set/Image.lean Modified Mathlib/Order/Part.lean Modified Mathlib/Order/RelSeries.lean Modified Mathlib/Order/SuccPred/Basic.lean Modified Mathlib/Order/SupClosed.lean Modified Mathlib/Order/UpperLower/Basic.lean Modified Mathlib/RingTheory/Flat/Basic.lean Modified Mathlib/RingTheory/Flat/CategoryTheory.lean +/- theorem Module.Flat.lTensor_shortComplex_exact +/- theorem Module.Flat.rTensor_shortComplex_exact Modified Mathlib/RingTheory/HahnSeries/Summable.lean Modified Mathlib/RingTheory/Ideal/Operations.lean Modified Mathlib/RingTheory/Polynomial/Bernstein.lean Modified Mathlib/RingTheory/Polynomial/Cyclotomic/Expand.lean Modified Mathlib/RingTheory/TwoSidedIdeal/Basic.lean Modified Mathlib/RingTheory/TwoSidedIdeal/Lattice.lean Modified Mathlib/RingTheory/WittVector/DiscreteValuationRing.lean Modified Mathlib/RingTheory/WittVector/InitTail.lean Modified Mathlib/SetTheory/Game/Basic.lean Modified Mathlib/SetTheory/Game/PGame.lean Modified Mathlib/Tactic/Cases.lean Modified Mathlib/Tactic/FunProp/RefinedDiscrTree.lean Modified Mathlib/Tactic/Positivity/Basic.lean Modified Mathlib/Tactic/Widget/InteractiveUnfold.lean Modified Mathlib/Topology/Basic.lean Modified Mathlib/Topology/Inseparable.lean Modified Mathlib/Topology/Order/Bornology.lean Modified Mathlib/Topology/Order/IntermediateValue.lean 2024-08-17 07:09:37 3805ed6 chore: update Mathlib dependencies 2024-08-17 (#15912) This PR updates the Mathlib dependencies. ESTIMATED CHANGES Modified lake-manifest.json 2024-08-17 05:53:55 c1cb845 feat: absolute continuity of `Measure.compProd` (#11273) For `μ ν : Measure α` and `κ η : Kernel α β`, - If `μ ≪ ν` and `∀ᵐ a ∂μ, κ a ≪ η a`, then `μ ⊗ₘ κ ≪ ν ⊗ₘ η` - If `μ ⊗ₘ κ ≪ ν ⊗ₘ η`, and `κ` is everywhere nonzero then `μ ≪ ν` Also remove a few s-finite assumptions in the `Probability/Kernel/MeasureCompProd` file. ESTIMATED CHANGES Modified Mathlib/Probability/Kernel/Composition.lean +/- theorem ProbabilityTheory.Kernel.ae_compProd_of_ae_ae Modified Mathlib/Probability/Kernel/MeasureCompProd.lean + theorem MeasureTheory.Measure.absolutelyContinuous_compProd + theorem MeasureTheory.Measure.absolutelyContinuous_compProd_left + theorem MeasureTheory.Measure.absolutelyContinuous_compProd_right + theorem MeasureTheory.Measure.absolutelyContinuous_of_compProd +/- theorem MeasureTheory.Measure.ae_compProd_of_ae_ae +/- theorem MeasureTheory.Measure.compProd_add_left +/- theorem MeasureTheory.Measure.compProd_add_right +/- theorem MeasureTheory.Measure.compProd_congr 2024-08-17 03:44:13 f2a46e0 chore: bump dependencies (#15908) ESTIMATED CHANGES Modified Mathlib/Combinatorics/Enumerative/Composition.lean Modified Mathlib/Data/List/Basic.lean - theorem List.splitAt_eq_take_drop Modified lake-manifest.json 2024-08-17 01:15:00 fd0dba7 feat(ModelTheory): More general ways of deriving `DecidableEq` for logic symbols (#15901) Replaces two `DecidableEq` instances in `ModelTheory/Ring/Basic` with more general instances. ESTIMATED CHANGES Modified Mathlib/ModelTheory/Algebra/Ring/Basic.lean Modified Mathlib/ModelTheory/Basic.lean 2024-08-17 00:16:30 0dd5858 docs(Algebra/Group/Subgroup): Add note about other induction paths on groups (#15903) I thought `Subgroup.closure_induction_left` didn't exist but it did (in a separate file), so I add a note about it. ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Subgroup/Basic.lean 2024-08-16 23:11:54 e8679e4 chore(tests): fix linter warnings (#15872) Fix long lines, remove unused tactics and add missing end commands. The remaining changes are silencing linters in `tests`, which cannot be backported. Split out from #15845. ESTIMATED CHANGES Modified Mathlib/Data/Option/Basic.lean Modified Mathlib/Tactic/Convert.lean Modified Mathlib/Tactic/FunProp/Core.lean Modified Mathlib/Tactic/FunProp/Types.lean Modified Mathlib/Tactic/Linter/TextBased.lean Modified test/Clean.lean Modified test/DefEqTransformations.lean Modified test/InferParam.lean Modified test/TermCongr.lean Modified test/Use.lean Modified test/convert.lean Modified test/notation3.lean 2024-08-16 23:11:52 45d8a0f chore: clean up List/Indexes (#15825) There had been a bit of a mess here of shims connecting back to a Lean 3 era definition. Rip it all out, replacing the proofs that required these shims, and deprecate the now unneeded mess. ESTIMATED CHANGES Modified Mathlib/Data/List/Basic.lean + theorem List.getElem?_eq Modified Mathlib/Data/List/Indexes.lean + theorem List.getElem?_mapIdx + theorem List.getElem?_mapIdx_go +/- theorem List.length_mapIdx + theorem List.length_mapIdx_go 2024-08-16 23:11:51 61b9d5e chore: avoid importing `Cardinal` in basic group theory (#15646) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Category/Grp/Colimits.lean Modified Mathlib/Algebra/Category/Grp/EpiMono.lean Modified Mathlib/Algebra/CharZero/Quotient.lean Modified Mathlib/Algebra/ModEq.lean Modified Mathlib/Algebra/Order/ToIntervalMod.lean Modified Mathlib/Algebra/Periodic.lean Modified Mathlib/Algebra/Pointwise/Stabilizer.lean Modified Mathlib/Data/ZMod/Basic.lean Modified Mathlib/GroupTheory/Abelianization.lean Renamed Mathlib/GroupTheory/Commutator.lean to Mathlib/GroupTheory/Commutator/Basic.lean - theorem Subgroup.commutator_pi_pi_of_finite Added Mathlib/GroupTheory/Commutator/Finite.lean + theorem Subgroup.commutator_pi_pi_of_finite Modified Mathlib/GroupTheory/CommutingProbability.lean Renamed Mathlib/GroupTheory/Coset.lean to Mathlib/GroupTheory/Coset/Basic.lean - theorem Subgroup.card_comap_dvd_of_injective - theorem Subgroup.card_dvd_of_injective - theorem Subgroup.card_dvd_of_le - theorem Subgroup.card_eq_card_quotient_mul_card_subgroup - theorem Subgroup.card_quotient_dvd_card - theorem Subgroup.card_subgroup_dvd_card Added Mathlib/GroupTheory/Coset/Card.lean + theorem Subgroup.card_comap_dvd_of_injective + theorem Subgroup.card_dvd_of_injective + theorem Subgroup.card_dvd_of_le + theorem Subgroup.card_eq_card_quotient_mul_card_subgroup + theorem Subgroup.card_quotient_dvd_card + theorem Subgroup.card_subgroup_dvd_card Modified Mathlib/GroupTheory/Coxeter/Basic.lean Modified Mathlib/GroupTheory/Divisible.lean Modified Mathlib/GroupTheory/DoubleCoset.lean Modified Mathlib/GroupTheory/Finiteness.lean Added Mathlib/GroupTheory/GroupAction/CardCommute.lean + theorem card_comm_eq_card_conjClasses_mul_card Modified Mathlib/GroupTheory/GroupAction/Quotient.lean - theorem card_comm_eq_card_conjClasses_mul_card Modified Mathlib/GroupTheory/Index.lean Modified Mathlib/GroupTheory/Nilpotent.lean Modified Mathlib/GroupTheory/OrderOfElement.lean Modified Mathlib/GroupTheory/PresentedGroup.lean Renamed Mathlib/GroupTheory/QuotientGroup.lean to Mathlib/GroupTheory/QuotientGroup/Basic.lean Added Mathlib/GroupTheory/QuotientGroup/Finite.lean Modified Mathlib/GroupTheory/SpecificGroups/Alternating.lean Modified Mathlib/GroupTheory/SpecificGroups/Dihedral.lean Modified Mathlib/LinearAlgebra/Alternating/DomCoprod.lean Modified Mathlib/LinearAlgebra/Quotient.lean Modified Mathlib/MeasureTheory/MeasurableSpace/Basic.lean Modified Mathlib/RingTheory/ClassGroup.lean Modified Mathlib/Topology/Algebra/Group/Basic.lean Modified Mathlib/Topology/Algebra/InfiniteSum/Group.lean Modified Mathlib/Topology/Algebra/InfiniteSum/Nonarchimedean.lean Modified Mathlib/Topology/Algebra/Ring/Basic.lean 2024-08-16 23:11:50 ff84cbd feat: better proof of spectral permanence (#15603) This uses a much cleaner argument than the previous one in order to prove the *spectral permanence* property of C*-algebras. The argument now goes through some generic results for Banach algebras, a corollary of which applies to selfadjoint elements. The old results which led to spectral permanence have been removed, although the spectral permanence results themselves remain unchanged (except that they have been moved into `Analysis.CStarAlgebra.Spectrum` from `Analysis.CStarAlgebra.ContinuousFunctionalCalculus.Basic`, which seems a better home). Some module documentation has also been updated. ESTIMATED CHANGES Modified Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Basic.lean - theorem StarSubalgebra.coe_isUnit - theorem StarSubalgebra.isUnit_coe_inv_mem - theorem StarSubalgebra.mem_spectrum_iff - theorem StarSubalgebra.spectrum_eq - theorem elementalStarAlgebra.isUnit_of_isUnit_of_isStarNormal - theorem spectrum_star_mul_self_of_isStarNormal Modified Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Instances.lean Modified Mathlib/Analysis/CStarAlgebra/Spectrum.lean + theorem IsSelfAdjoint.im_eq_zero_of_mem_spectrum + theorem IsSelfAdjoint.isConnected_spectrum_compl +/- theorem IsSelfAdjoint.mem_spectrum_eq_re +/- theorem IsSelfAdjoint.val_re_map_spectrum + theorem StarSubalgebra.coe_isUnit + theorem StarSubalgebra.mem_spectrum_iff + theorem StarSubalgebra.spectrum_eq +/- theorem selfAdjoint.mem_spectrum_eq_re +/- theorem selfAdjoint.val_re_map_spectrum Modified Mathlib/Analysis/Complex/UpperHalfPlane/Topology.lean + theorem Complex.isConnected_of_lowerHalfPlane + theorem Complex.isConnected_of_upperHalfPlane Modified Mathlib/Analysis/Normed/Algebra/Spectrum.lean + theorem Subalgebra.spectrum_eq_of_isPreconnected_compl 2024-08-16 22:15:43 d3a9d9c chore: Let `gcongr` know about `Nat.cast_lt` (#15879) From LeanAPAP ESTIMATED CHANGES Modified Mathlib/Computability/AkraBazzi/AkraBazzi.lean Modified Mathlib/Data/Nat/Cast/Order/Basic.lean + theorem GCongr.natCast_lt_natCast 2024-08-16 22:15:42 abe811a doc: update docstring of MonoidHomClass (#15804) Fix typo Coauthored by: @alissa-tung ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Hom/Defs.lean 2024-08-16 22:06:34 537997c chore(scripts): script for adaptation PRs should not bail on merge conflicts (#15886) - **chore(scripts/create-adaptation-pr): don't bail on merge conflicts** - **enumerate steps in conflict resolution** ESTIMATED CHANGES Modified scripts/create-adaptation-pr.sh 2024-08-16 19:53:03 2245787 fix(Filter/Pointwise): fix additive name (#15900) ESTIMATED CHANGES Modified Mathlib/Order/Filter/Pointwise.lean 2024-08-16 17:37:55 249c536 feat: Doubling and difference constants of two finsets (#15882) Define the doubling and difference constants of two finsets in a group. The doubling and difference constants being small are one way to measure how close a set is from being a subgroup. This makes it a central concept in additive combinatorics and related fields. From LeanAPAP ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Combinatorics/Additive/DoublingConst.lean + theorem Finset.card_mul_cast_addConst + theorem Finset.card_mul_cast_divConst + theorem Finset.card_mul_cast_mulConst + theorem Finset.card_mul_cast_subConst + theorem Finset.card_mul_divConst + theorem Finset.card_mul_mulConst + theorem Finset.cast_addConst + theorem Finset.cast_addConst_mul_card + theorem Finset.cast_divConst + theorem Finset.cast_divConst_mul_card + theorem Finset.cast_mulConst + theorem Finset.cast_mulConst_mul_card + theorem Finset.cast_subConst + theorem Finset.cast_subConst_mul_card + def Finset.divConst + theorem Finset.divConst_empty_left + theorem Finset.divConst_empty_right + theorem Finset.divConst_inv_left + theorem Finset.divConst_inv_right + theorem Finset.divConst_le_inv_dens + theorem Finset.divConst_le_mulConst_sq + theorem Finset.divConst_mul_card + def Finset.mulConst + theorem Finset.mulConst_empty_left + theorem Finset.mulConst_empty_right + theorem Finset.mulConst_inv_left + theorem Finset.mulConst_inv_right + theorem Finset.mulConst_le_divConst_sq + theorem Finset.mulConst_le_inv_dens + theorem Finset.mulConst_mul_card 2024-08-16 17:25:41 d1f6634 chore(.github/workflows/nightly_detect_failure.yml): fix the sha hash (#15888) The sha hash was only printed to the github env if the git tag "nightly-testing-${version}" did not yet exist. We move this out of the if clause, so that it is always printed. ESTIMATED CHANGES Modified .github/workflows/nightly_detect_failure.yml 2024-08-16 16:22:01 ab340af chore: turn `induction'` into `induction` (#15889) This PR turns `induction'` (soon to be deprecated) into `induction` and golfs a few proofs. ESTIMATED CHANGES Modified Mathlib/Algebra/Ring/Hom/Defs.lean Modified Mathlib/AlgebraicTopology/DoldKan/NReflectsIso.lean Modified Mathlib/Analysis/Analytic/Meromorphic.lean Modified Mathlib/Analysis/Calculus/Taylor.lean Modified Mathlib/Analysis/Convex/SpecificFunctions/Deriv.lean Modified Mathlib/Analysis/Convolution.lean Modified Mathlib/Analysis/Distribution/SchwartzSpace.lean Modified Mathlib/Analysis/Hofer.lean Modified Mathlib/Analysis/PSeries.lean Modified Mathlib/Analysis/SpecialFunctions/Gamma/Basic.lean 2024-08-16 16:22:00 9ab6a77 chore(Logic): remove bare open Classical (#15836) ESTIMATED CHANGES Modified Mathlib/Logic/Denumerable.lean +/- theorem Nat.Subtype.exists_succ Modified Mathlib/Logic/Nontrivial/Basic.lean Modified Mathlib/Logic/Nontrivial/Defs.lean Modified Mathlib/Logic/Small/Basic.lean Modified Mathlib/Logic/Small/Defs.lean 2024-08-16 15:43:26 f191832 chore: Rename `eventually_of_forall` to `Eventually.of_forall` (#15444) … and `frequently_of_forall` to `Frequently.of_forall` ESTIMATED CHANGES Modified Counterexamples/Phillips.lean Modified Mathlib/Analysis/Analytic/Basic.lean Modified Mathlib/Analysis/Analytic/Constructions.lean Modified Mathlib/Analysis/Asymptotics/AsymptoticEquivalent.lean Modified Mathlib/Analysis/Asymptotics/Asymptotics.lean Modified Mathlib/Analysis/Asymptotics/SuperpolynomialDecay.lean Modified Mathlib/Analysis/BoxIntegral/Box/SubboxInduction.lean Modified Mathlib/Analysis/BoxIntegral/Integrability.lean Modified Mathlib/Analysis/BoxIntegral/Partition/Filter.lean Modified Mathlib/Analysis/Calculus/BumpFunction/Convolution.lean Modified Mathlib/Analysis/Calculus/BumpFunction/Normed.lean Modified Mathlib/Analysis/Calculus/ContDiff/RCLike.lean Modified Mathlib/Analysis/Calculus/Deriv/Comp.lean Modified Mathlib/Analysis/Calculus/Deriv/Inv.lean Modified Mathlib/Analysis/Calculus/FDeriv/Basic.lean Modified Mathlib/Analysis/Calculus/FDeriv/Comp.lean Modified Mathlib/Analysis/Calculus/FDeriv/Equiv.lean Modified Mathlib/Analysis/Calculus/FDeriv/Symmetric.lean Modified Mathlib/Analysis/Calculus/InverseFunctionTheorem/ApproximatesLinearOn.lean Modified Mathlib/Analysis/Calculus/LHopital.lean Modified Mathlib/Analysis/Calculus/LocalExtr/Basic.lean Modified Mathlib/Analysis/Calculus/Rademacher.lean Modified Mathlib/Analysis/Calculus/TangentCone.lean Modified Mathlib/Analysis/Complex/AbsMax.lean Modified Mathlib/Analysis/Complex/Hadamard.lean Modified Mathlib/Analysis/Complex/LocallyUniformLimit.lean Modified Mathlib/Analysis/Complex/PhragmenLindelof.lean Modified Mathlib/Analysis/Convex/Integral.lean Modified Mathlib/Analysis/Convolution.lean Modified Mathlib/Analysis/Distribution/SchwartzSpace.lean Modified Mathlib/Analysis/Fourier/AddCircle.lean Modified Mathlib/Analysis/Fourier/FourierTransformDeriv.lean Modified Mathlib/Analysis/Fourier/RiemannLebesgueLemma.lean Modified Mathlib/Analysis/FunctionalSpaces/SobolevInequality.lean Modified Mathlib/Analysis/InnerProductSpace/l2Space.lean Modified Mathlib/Analysis/LocallyConvex/Bounded.lean Modified Mathlib/Analysis/LocallyConvex/WithSeminorms.lean Modified Mathlib/Analysis/MellinTransform.lean Modified Mathlib/Analysis/Normed/Algebra/Spectrum.lean Modified Mathlib/Analysis/Normed/Field/Basic.lean Modified Mathlib/Analysis/Normed/Group/AddTorsor.lean Modified Mathlib/Analysis/Normed/Group/Basic.lean Modified Mathlib/Analysis/Normed/Group/InfiniteSum.lean Modified Mathlib/Analysis/Normed/Lp/lpSpace.lean Modified Mathlib/Analysis/Normed/Module/FiniteDimension.lean Modified Mathlib/Analysis/Normed/Operator/BoundedLinearMaps.lean Modified Mathlib/Analysis/NormedSpace/FunctionSeries.lean Modified Mathlib/Analysis/NormedSpace/OperatorNorm/Completeness.lean Modified Mathlib/Analysis/SpecialFunctions/Exp.lean Modified Mathlib/Analysis/SpecialFunctions/Gamma/Beta.lean Modified Mathlib/Analysis/SpecialFunctions/Gamma/BohrMollerup.lean Modified Mathlib/Analysis/SpecialFunctions/Gaussian/FourierTransform.lean Modified Mathlib/Analysis/SpecialFunctions/Gaussian/GaussianIntegral.lean Modified Mathlib/Analysis/SpecialFunctions/Gaussian/PoissonSummation.lean Modified Mathlib/Analysis/SpecialFunctions/ImproperIntegrals.lean Modified Mathlib/Analysis/SpecialFunctions/JapaneseBracket.lean Modified Mathlib/Analysis/SpecialFunctions/Polynomials.lean Modified Mathlib/Analysis/SpecialFunctions/Pow/Asymptotics.lean Modified Mathlib/Analysis/SpecialFunctions/Pow/Continuity.lean Modified Mathlib/Analysis/SpecificLimits/Basic.lean Modified Mathlib/Analysis/SpecificLimits/Normed.lean Modified Mathlib/Computability/AkraBazzi/AkraBazzi.lean Modified Mathlib/Dynamics/OmegaLimit.lean Modified Mathlib/MeasureTheory/Constructions/BorelSpace/Metrizable.lean Modified Mathlib/MeasureTheory/Constructions/Prod/Basic.lean Modified Mathlib/MeasureTheory/Constructions/Prod/Integral.lean Modified Mathlib/MeasureTheory/Covering/Differentiation.lean Modified Mathlib/MeasureTheory/Covering/LiminfLimsup.lean Modified Mathlib/MeasureTheory/Decomposition/Lebesgue.lean Modified Mathlib/MeasureTheory/Decomposition/SignedHahn.lean Modified Mathlib/MeasureTheory/Function/AEEqOfIntegral.lean Modified Mathlib/MeasureTheory/Function/ConditionalExpectation/AEMeasurable.lean Modified Mathlib/MeasureTheory/Function/ConditionalExpectation/Basic.lean Modified Mathlib/MeasureTheory/Function/ConditionalExpectation/CondexpL1.lean Modified Mathlib/MeasureTheory/Function/ConditionalExpectation/Real.lean Modified Mathlib/MeasureTheory/Function/ConvergenceInMeasure.lean Modified Mathlib/MeasureTheory/Function/Intersectivity.lean Modified Mathlib/MeasureTheory/Function/Jacobian.lean Modified Mathlib/MeasureTheory/Function/L1Space.lean Modified Mathlib/MeasureTheory/Function/L2Space.lean Modified Mathlib/MeasureTheory/Function/LpOrder.lean Modified Mathlib/MeasureTheory/Function/LpSeminorm/Basic.lean Modified Mathlib/MeasureTheory/Function/LpSeminorm/CompareExp.lean Modified Mathlib/MeasureTheory/Function/LpSeminorm/TriangleInequality.lean Modified Mathlib/MeasureTheory/Function/LpSpace.lean Modified Mathlib/MeasureTheory/Function/LpSpace/ContinuousCompMeasurePreserving.lean Modified Mathlib/MeasureTheory/Function/SimpleFuncDenseLp.lean Modified Mathlib/MeasureTheory/Function/StronglyMeasurable/Basic.lean Modified Mathlib/MeasureTheory/Function/UniformIntegrable.lean Modified Mathlib/MeasureTheory/Group/FundamentalDomain.lean Modified Mathlib/MeasureTheory/Group/Prod.lean Modified Mathlib/MeasureTheory/Integral/Average.lean Modified Mathlib/MeasureTheory/Integral/Bochner.lean Modified Mathlib/MeasureTheory/Integral/BoundedContinuousFunction.lean Modified Mathlib/MeasureTheory/Integral/CircleIntegral.lean Modified Mathlib/MeasureTheory/Integral/DivergenceTheorem.lean Modified Mathlib/MeasureTheory/Integral/DominatedConvergence.lean Modified Mathlib/MeasureTheory/Integral/IntegrableOn.lean Modified Mathlib/MeasureTheory/Integral/IntegralEqImproper.lean Modified Mathlib/MeasureTheory/Integral/IntervalIntegral.lean Modified Mathlib/MeasureTheory/Integral/Layercake.lean Modified Mathlib/MeasureTheory/Integral/Lebesgue.lean Modified Mathlib/MeasureTheory/Integral/PeakFunction.lean Modified Mathlib/MeasureTheory/Integral/Periodic.lean Modified Mathlib/MeasureTheory/Integral/SetIntegral.lean Modified Mathlib/MeasureTheory/Integral/SetToL1.lean Modified Mathlib/MeasureTheory/Integral/VitaliCaratheodory.lean Modified Mathlib/MeasureTheory/Measure/AEMeasurable.lean Modified Mathlib/MeasureTheory/Measure/ContinuousPreimage.lean Modified Mathlib/MeasureTheory/Measure/DiracProba.lean Modified Mathlib/MeasureTheory/Measure/EverywherePos.lean Modified Mathlib/MeasureTheory/Measure/FiniteMeasure.lean Modified Mathlib/MeasureTheory/Measure/Haar/Disintegration.lean Modified Mathlib/MeasureTheory/Measure/Haar/Unique.lean Modified Mathlib/MeasureTheory/Measure/HasOuterApproxClosed.lean Modified Mathlib/MeasureTheory/Measure/Hausdorff.lean Modified Mathlib/MeasureTheory/Measure/Lebesgue/EqHaar.lean Modified Mathlib/MeasureTheory/Measure/Lebesgue/Integral.lean Modified Mathlib/MeasureTheory/Measure/LevyProkhorovMetric.lean Modified Mathlib/MeasureTheory/Measure/MeasureSpace.lean Modified Mathlib/MeasureTheory/Measure/Portmanteau.lean Modified Mathlib/MeasureTheory/Measure/Restrict.lean Modified Mathlib/MeasureTheory/Measure/Stieltjes.lean Modified Mathlib/MeasureTheory/Order/UpperLower.lean Modified Mathlib/MeasureTheory/OuterMeasure/AE.lean Modified Mathlib/NumberTheory/Harmonic/ZetaAsymp.lean Modified Mathlib/NumberTheory/ModularForms/EisensteinSeries/MDifferentiable.lean Modified Mathlib/NumberTheory/WellApproximable.lean Modified Mathlib/Order/Filter/AtTopBot.lean Modified Mathlib/Order/Filter/Basic.lean + theorem Filter.Eventually.of_forall + theorem Filter.Frequently.of_forall - theorem Filter.eventually_of_forall - theorem Filter.frequently_of_forall Modified Mathlib/Order/Filter/ENNReal.lean Modified Mathlib/Order/Filter/FilterProduct.lean Modified Mathlib/Order/Filter/Germ/Basic.lean Modified Mathlib/Order/Filter/Germ/OrderedMonoid.lean Modified Mathlib/Order/Filter/IndicatorFunction.lean Modified Mathlib/Order/Filter/Interval.lean Modified Mathlib/Order/Filter/ModEq.lean Modified Mathlib/Order/Filter/Ring.lean Modified Mathlib/Order/LiminfLimsup.lean Modified Mathlib/Probability/BorelCantelli.lean Modified Mathlib/Probability/ConditionalExpectation.lean Modified Mathlib/Probability/Distributions/Exponential.lean Modified Mathlib/Probability/Independence/Kernel.lean Modified Mathlib/Probability/Kernel/Composition.lean Modified Mathlib/Probability/Kernel/CondDistrib.lean Modified Mathlib/Probability/Kernel/Disintegration/CDFToKernel.lean Modified Mathlib/Probability/Kernel/Disintegration/Density.lean Modified Mathlib/Probability/Kernel/Disintegration/Integral.lean Modified Mathlib/Probability/Kernel/IntegralCompProd.lean Modified Mathlib/Probability/Kernel/MeasurableIntegral.lean Modified Mathlib/Probability/Martingale/Basic.lean Modified Mathlib/Probability/Martingale/BorelCantelli.lean Modified Mathlib/Probability/Martingale/OptionalSampling.lean Modified Mathlib/Probability/Martingale/Upcrossing.lean Modified Mathlib/Probability/StrongLaw.lean Modified Mathlib/Probability/Variance.lean Modified Mathlib/Tactic/Peel.lean Modified Mathlib/Topology/Algebra/InfiniteSum/Group.lean Modified Mathlib/Topology/Algebra/InfiniteSum/Order.lean Modified Mathlib/Topology/Algebra/Module/Basic.lean Modified Mathlib/Topology/Algebra/Monoid.lean Modified Mathlib/Topology/Algebra/Order/Floor.lean Modified Mathlib/Topology/Algebra/Order/LiminfLimsup.lean Modified Mathlib/Topology/Basic.lean Modified Mathlib/Topology/Bornology/Absorbs.lean Modified Mathlib/Topology/ContinuousFunction/Bounded.lean Modified Mathlib/Topology/ContinuousFunction/Weierstrass.lean Modified Mathlib/Topology/ContinuousFunction/ZeroAtInfty.lean Modified Mathlib/Topology/ContinuousOn.lean Modified Mathlib/Topology/DenseEmbedding.lean Modified Mathlib/Topology/Germ.lean Modified Mathlib/Topology/Instances/ENNReal.lean Modified Mathlib/Topology/Instances/EReal.lean Modified Mathlib/Topology/LocallyConstant/Basic.lean Modified Mathlib/Topology/Maps/Proper/Basic.lean Modified Mathlib/Topology/Maps/Proper/UniversallyClosed.lean Modified Mathlib/Topology/MetricSpace/Lipschitz.lean Modified Mathlib/Topology/MetricSpace/Pseudo/Lemmas.lean Modified Mathlib/Topology/MetricSpace/Sequences.lean Modified Mathlib/Topology/Order/Basic.lean Modified Mathlib/Topology/Order/MonotoneConvergence.lean Modified Mathlib/Topology/Order/OrderClosed.lean Modified Mathlib/Topology/RestrictGenTopology.lean Modified Mathlib/Topology/Semicontinuous.lean Modified Mathlib/Topology/Sequences.lean Modified Mathlib/Topology/UniformSpace/Ascoli.lean Modified Mathlib/Topology/UniformSpace/Equicontinuity.lean 2024-08-16 15:43:25 355dce7 feat: topology on `ENat` (#15380) this is ported from Peter Nelson's [Matroid](https://github.com/apnelson1/Matroid) project ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Topology/Instances/ENat.lean + theorem ENat.embedding_natCast + theorem ENat.isOpen_singleton + theorem ENat.mem_nhds_iff + theorem ENat.mem_nhds_natCast_iff + theorem ENat.nhds_natCast + theorem ENat.openEmbedding_natCast + theorem ENat.range_natCast 2024-08-16 15:12:56 55e1bed refactor(Topology/Maps): use `structure` for `QuotientMap` (#15887) ESTIMATED CHANGES Modified Mathlib/Topology/Defs/Induced.lean + structure QuotientMap - def QuotientMap Modified Mathlib/Topology/Maps/Basic.lean 2024-08-16 14:45:32 d03203d feat: define `rpow` and `sqrt` based on the continuous functional calculus (#15377) This PR defines `CFC.nnrpow`, `CFC.sqrt` and `CFC.rpow` based on the continuous functional calculus. We define two separate versions `CFC.nnrpow` (based on the non-unital calculus) and `CFC.rpow` (unital) due to what happens at 0. Since `NNReal.rpow 0 0 = 1`, this means that this function does not map zero to zero when the exponent is zero, and hence `CFC.nnrpow a 0 = 0` whereas `CFC.rpow a 0 = 1`. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Unital.lean + theorem CFC.inv_nonneg + theorem CFC.inv_nonneg_of_nonneg Added Mathlib/Analysis/SpecialFunctions/ContinuousFunctionalCalculus/Rpow.lean + theorem CFC.mul_self_eq + theorem CFC.nnrpow_add + theorem CFC.nnrpow_def + theorem CFC.nnrpow_eq_pow + theorem CFC.nnrpow_eq_rpow + theorem CFC.nnrpow_inv_eq + theorem CFC.nnrpow_inv_nnrpow + theorem CFC.nnrpow_nnrpow + theorem CFC.nnrpow_nnrpow_inv + theorem CFC.nnrpow_nonneg + theorem CFC.nnrpow_one + theorem CFC.nnrpow_sqrt + theorem CFC.nnrpow_sqrt_two + theorem CFC.nnrpow_three + theorem CFC.nnrpow_two + theorem CFC.nnrpow_zero + theorem CFC.one_rpow + theorem CFC.rpow_add + theorem CFC.rpow_algebraMap + theorem CFC.rpow_def + theorem CFC.rpow_eq_pow + theorem CFC.rpow_intCast + theorem CFC.rpow_mul_rpow_neg + theorem CFC.rpow_natCast + theorem CFC.rpow_neg + theorem CFC.rpow_neg_mul_rpow + theorem CFC.rpow_neg_one_eq_inv + theorem CFC.rpow_nonneg + theorem CFC.rpow_one + theorem CFC.rpow_rpow + theorem CFC.rpow_rpow_of_exponent_nonneg + theorem CFC.rpow_sqrt + theorem CFC.rpow_sqrt_nnreal + theorem CFC.rpow_zero + theorem CFC.sq_sqrt + theorem CFC.sqrt_algebraMap + theorem CFC.sqrt_eq_cfc + theorem CFC.sqrt_eq_iff + theorem CFC.sqrt_eq_nnrpow + theorem CFC.sqrt_eq_rpow + theorem CFC.sqrt_mul_self + theorem CFC.sqrt_mul_sqrt_self + theorem CFC.sqrt_nnrpow + theorem CFC.sqrt_nnrpow_two + theorem CFC.sqrt_nonneg + theorem CFC.sqrt_one + theorem CFC.sqrt_rpow + theorem CFC.sqrt_rpow_nnreal + theorem CFC.sqrt_sq + theorem CFC.sqrt_unique + theorem CFC.sqrt_zero + theorem CFC.zero_nnrpow + theorem CFC.zero_rpow + theorem NNReal.continuous_nnrpow_const + theorem NNReal.nnrpow_def Modified Mathlib/Analysis/SpecialFunctions/Pow/Continuity.lean + theorem NNReal.continuousOn_rpow_const + theorem NNReal.continuousOn_rpow_const_compl_zero Modified Mathlib/Analysis/SpecialFunctions/Pow/NNReal.lean + theorem NNReal.rpow_intCast 2024-08-16 13:44:39 7e532b5 chore: add missing end (#15868) Fix mathlib for running the missingEnd linter everywhere. Prerequiste to #15845. ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Hom/CompTypeclasses.lean Modified Mathlib/Algebra/Order/Monoid/OrderDual.lean Modified Mathlib/Algebra/Order/Monoid/Unbundled/OrderDual.lean Modified Mathlib/Algebra/Order/Ring/Unbundled/Basic.lean Modified Mathlib/Data/Array/Defs.lean Modified Mathlib/Data/Int/Defs.lean Modified Mathlib/Data/List/GetD.lean Modified Mathlib/Data/MLList/IO.lean Modified Mathlib/Data/MLList/Split.lean Modified Mathlib/Data/Nat/Find.lean Modified Mathlib/Data/Option/Defs.lean Modified Mathlib/Init/Data/Int/Order.lean Modified Mathlib/Lean/Elab/Term.lean Modified Mathlib/Lean/Exception.lean Modified Mathlib/Lean/GoalsLocation.lean Modified Mathlib/Lean/Json.lean Modified Mathlib/Lean/Meta/KAbstractPositions.lean Modified Mathlib/Lean/PrettyPrinter/Delaborator.lean Modified Mathlib/Logic/Function/CompTypeclasses.lean Modified Mathlib/Tactic/Abel.lean Modified Mathlib/Tactic/ApplyAt.lean Modified Mathlib/Tactic/ApplyFun.lean Modified Mathlib/Tactic/ApplyWith.lean Modified Mathlib/Tactic/ArithMult.lean Modified Mathlib/Tactic/Basic.lean Modified Mathlib/Tactic/Bound/Attribute.lean Modified Mathlib/Tactic/Cases.lean Modified Mathlib/Tactic/CasesM.lean Modified Mathlib/Tactic/CategoryTheory/BicategoryCoherence.lean Modified Mathlib/Tactic/CategoryTheory/Coherence.lean Modified Mathlib/Tactic/Check.lean Modified Mathlib/Tactic/Choose.lean Modified Mathlib/Tactic/ClearExcept.lean Modified Mathlib/Tactic/ClearExclamation.lean Modified Mathlib/Tactic/Clear_.lean Modified Mathlib/Tactic/Coe.lean Modified Mathlib/Tactic/CongrM.lean Modified Mathlib/Tactic/Conv.lean Modified Mathlib/Tactic/Core.lean Modified Mathlib/Tactic/ExistsI.lean Modified Mathlib/Tactic/Explode.lean Modified Mathlib/Tactic/Explode/Datatypes.lean Modified Mathlib/Tactic/Explode/Pretty.lean Modified Mathlib/Tactic/ExtractGoal.lean Modified Mathlib/Tactic/FailIfNoProgress.lean Modified Mathlib/Tactic/FieldSimp.lean Modified Mathlib/Tactic/Find.lean Modified Mathlib/Tactic/FunProp/Attr.lean Modified Mathlib/Tactic/FunProp/Core.lean Modified Mathlib/Tactic/FunProp/Decl.lean Modified Mathlib/Tactic/FunProp/Elab.lean Modified Mathlib/Tactic/FunProp/FunctionData.lean Modified Mathlib/Tactic/FunProp/Mor.lean Modified Mathlib/Tactic/FunProp/RefinedDiscrTree.lean Modified Mathlib/Tactic/FunProp/StateList.lean Modified Mathlib/Tactic/FunProp/Theorems.lean Modified Mathlib/Tactic/FunProp/ToBatteries.lean Modified Mathlib/Tactic/FunProp/Types.lean Modified Mathlib/Tactic/GCongr/Core.lean Modified Mathlib/Tactic/GCongr/ForwardAttr.lean Modified Mathlib/Tactic/GeneralizeProofs.lean Modified Mathlib/Tactic/Group.lean Modified Mathlib/Tactic/Have.lean Modified Mathlib/Tactic/HaveI.lean Modified Mathlib/Tactic/HelpCmd.lean Modified Mathlib/Tactic/ITauto.lean Modified Mathlib/Tactic/InferParam.lean Modified Mathlib/Tactic/Inhabit.lean Modified Mathlib/Tactic/IntervalCases.lean Modified Mathlib/Tactic/IrreducibleDef.lean Modified Mathlib/Tactic/Linarith/Oracle/SimplexAlgorithm/PositiveVector.lean Modified Mathlib/Tactic/LinearCombination.lean Modified Mathlib/Tactic/Linter/HaveLetLinter.lean Modified Mathlib/Tactic/MkIffOfInductiveProp.lean Modified Mathlib/Tactic/ModCases.lean Modified Mathlib/Tactic/Monotonicity/Attr.lean Modified Mathlib/Tactic/Monotonicity/Basic.lean Modified Mathlib/Tactic/MoveAdd.lean Modified Mathlib/Tactic/Nontriviality/Core.lean Modified Mathlib/Tactic/NormNum/Core.lean Modified Mathlib/Tactic/NormNum/Result.lean Modified Mathlib/Tactic/NthRewrite.lean Modified Mathlib/Tactic/PPWithUniv.lean Modified Mathlib/Tactic/Peel.lean Modified Mathlib/Tactic/Polyrith.lean Modified Mathlib/Tactic/Positivity/Core.lean Modified Mathlib/Tactic/Propose.lean Modified Mathlib/Tactic/PushNeg.lean Modified Mathlib/Tactic/Qify.lean Modified Mathlib/Tactic/Recall.lean Modified Mathlib/Tactic/Recover.lean Modified Mathlib/Tactic/Relation/Rfl.lean Modified Mathlib/Tactic/Relation/Symm.lean Modified Mathlib/Tactic/Relation/Trans.lean Modified Mathlib/Tactic/Rename.lean Modified Mathlib/Tactic/RenameBVar.lean Modified Mathlib/Tactic/Replace.lean Modified Mathlib/Tactic/RewriteSearch.lean Modified Mathlib/Tactic/Rify.lean Modified Mathlib/Tactic/Ring/Basic.lean Modified Mathlib/Tactic/Ring/PNat.lean Modified Mathlib/Tactic/Ring/RingNF.lean Modified Mathlib/Tactic/Sat/FromLRAT.lean Modified Mathlib/Tactic/Says.lean Modified Mathlib/Tactic/ScopedNS.lean Modified Mathlib/Tactic/Set.lean Modified Mathlib/Tactic/SimpIntro.lean Modified Mathlib/Tactic/SimpRw.lean Modified Mathlib/Tactic/SplitIfs.lean Modified Mathlib/Tactic/Substs.lean Modified Mathlib/Tactic/SuccessIfFailWithMsg.lean Modified Mathlib/Tactic/SwapVar.lean Modified Mathlib/Tactic/TFAE.lean Modified Mathlib/Tactic/Tauto.lean Modified Mathlib/Tactic/TermCongr.lean Modified Mathlib/Tactic/TryThis.lean Modified Mathlib/Tactic/Use.lean Modified Mathlib/Tactic/Variable.lean Modified Mathlib/Tactic/WLOG.lean Modified Mathlib/Tactic/Widget/Calc.lean Modified Mathlib/Tactic/Widget/CommDiag.lean Modified Mathlib/Tactic/Widget/InteractiveUnfold.lean Modified Mathlib/Tactic/Zify.lean Modified Mathlib/Util/AddRelatedDecl.lean Modified Mathlib/Util/AssertExists.lean Modified Mathlib/Util/AtomM.lean Modified Mathlib/Util/CountHeartbeats.lean Modified Mathlib/Util/IncludeStr.lean Modified Mathlib/Util/Notation3.lean Modified Mathlib/Util/Superscript.lean Modified Mathlib/Util/Tactic.lean Modified Mathlib/Util/TermBeta.lean Modified Mathlib/Util/WhatsNew.lean Modified Mathlib/Util/WithWeakNamespace.lean 2024-08-16 13:44:38 9b07aee chore: Rename `nonzero_of_invertible` to `Invertible.ne_zero` (#15860) From LeanAPAP ESTIMATED CHANGES Modified Archive/Wiedijk100Theorems/SolutionOfCubic.lean Modified Mathlib/Algebra/CharP/Invertible.lean Modified Mathlib/Algebra/GroupWithZero/Invertible.lean + theorem Invertible.ne_zero - theorem nonzero_of_invertible Modified Mathlib/Algebra/Ring/Invertible.lean Modified Mathlib/LinearAlgebra/AffineSpace/Combination.lean Modified Mathlib/RingTheory/WittVector/WittPolynomial.lean Modified Mathlib/Tactic/NormNum/Result.lean 2024-08-16 13:44:36 4ecf882 chore: fix some to_additive technical debt (#15852) ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Basic.lean Modified Mathlib/Algebra/Group/Defs.lean Modified Mathlib/Algebra/Group/InjSurj.lean Modified Mathlib/Algebra/Group/Opposite.lean Modified Mathlib/Algebra/Group/Pi/Basic.lean Modified Mathlib/Algebra/Order/Group/Synonym.lean Modified Mathlib/Algebra/Order/Hom/Basic.lean Modified Mathlib/Algebra/Order/Monoid/Unbundled/Basic.lean Modified Mathlib/Combinatorics/Additive/RuzsaCovering.lean Modified Mathlib/Data/Finset/Pointwise/Basic.lean Modified Mathlib/Data/Set/Pointwise/Basic.lean - theorem Set.nsmul_univ Modified Mathlib/Logic/Small/Group.lean - theorem equivShrink_add - theorem equivShrink_neg - theorem equivShrink_sub - theorem equivShrink_symm_add - theorem equivShrink_symm_neg - theorem equivShrink_symm_sub - theorem equivShrink_symm_zero Modified Mathlib/MeasureTheory/Group/FundamentalDomain.lean Modified Mathlib/MeasureTheory/Group/Measure.lean Modified Mathlib/Order/Filter/Pointwise.lean Modified Mathlib/Tactic/ToAdditive/Frontend.lean Modified Mathlib/Topology/Support.lean Modified scripts/style-exceptions.txt 2024-08-16 13:44:35 b899e71 refactor: Restrict scope of `radical` to `UniqueFactorizationDomain` (#15826) Restrict scope of radical as suggested in [this comment](https://github.com/leanprover-community/mathlib4/pull/14873#discussion_r1716948063) by @YaelDillies. ESTIMATED CHANGES Modified Mathlib/RingTheory/Radical.lean + def UniqueFactorizationMonoid.primeFactors + theorem UniqueFactorizationMonoid.primeFactors_pow + def UniqueFactorizationMonoid.radical + theorem UniqueFactorizationMonoid.radical_dvd_self + theorem UniqueFactorizationMonoid.radical_eq_of_associated + theorem UniqueFactorizationMonoid.radical_mul_unit + theorem UniqueFactorizationMonoid.radical_of_prime + theorem UniqueFactorizationMonoid.radical_one_eq + theorem UniqueFactorizationMonoid.radical_pow + theorem UniqueFactorizationMonoid.radical_pow_of_prime + theorem UniqueFactorizationMonoid.radical_unit_eq_one + theorem UniqueFactorizationMonoid.radical_unit_mul + theorem UniqueFactorizationMonoid.radical_zero_eq - def primeFactors - theorem primeFactors_pow - def radical - theorem radical_dvd_self - theorem radical_eq_of_associated - theorem radical_mul_unit - theorem radical_of_prime - theorem radical_one_eq - theorem radical_pow - theorem radical_pow_of_prime - theorem radical_unit_eq_one - theorem radical_unit_mul - theorem radical_zero_eq 2024-08-16 13:44:34 e610482 chore(SetTheory/Ordinal/NaturalOps): cleanup termination_by (#15745) We simplify some of the proofs and definitions that use `termination_by` by moving the arguments before the colon. The diff might seem large, but all I really did besides that was reindent proofs. ESTIMATED CHANGES Modified Mathlib/SetTheory/Ordinal/NaturalOps.lean +/- theorem Ordinal.nadd_comm +/- theorem Ordinal.nmul_assoc +/- theorem Ordinal.nmul_comm +/- theorem Ordinal.nmul_nadd 2024-08-16 13:44:33 9c20287 feat(Topology/Order/LowerUpperTopology): Scott and Upper topologies coincide on a complete linear order (#12234) This PR shows that the subbasis used to define the lower (upper) topology together with the universal set form a basis for the lower (upper) topology on a linear order. When the linear order is complete, the subbasis with the universal set is the topology. A consequence of this result is that the Scott and upper topologies coincide on a complete linear order. ESTIMATED CHANGES Modified Mathlib/Topology/Order/LowerUpperTopology.lean + theorem Topology.IsLower.isTopologicalBasis_insert_univ_subbasis + theorem Topology.IsLower.isTopologicalSpace_basis + theorem Topology.IsUpper.isTopologicalBasis_insert_univ_subbasis + theorem Topology.IsUpper.isTopologicalSpace_basis Modified Mathlib/Topology/Order/ScottTopology.lean +/- theorem Topology.IsScott.isOpen_iff_Iic_compl_or_univ + theorem Topology.IsScott.scott_eq_upper_of_completeLinearOrder 2024-08-16 12:54:30 1fa16c8 chore: Fix precedence of `~r` infix for `IsRotated` (#15876) ESTIMATED CHANGES Modified Mathlib/Data/List/Rotate.lean 2024-08-16 12:54:29 5df12ec perf (Site.DenseSubsite): speed up file (#15350) `rintro` and `obtain` are misbehaving here in a way `rcases` is not. We cut the instructions by ~40% by prefacing some `rintro` calls with a `dsimp` and by replacing `obtain`s with `have; rcases`. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Sites/DenseSubsite.lean 2024-08-16 12:15:08 fc16569 feat: A subgroup of a `ZMod`-module is a `ZMod`-module (#15866) From LeanAPAP ESTIMATED CHANGES Modified Mathlib/Data/ZMod/Basic.lean + theorem AddSubgroupClass.coe_zmod_smul + theorem smulMemClass + theorem zmod_smul_mem 2024-08-16 10:35:29 f66c0d7 feat (MeasureTheory.Decomposition.RadonNicodym): `rnDeriv_mul_rnDeriv'` (#15548) Add `rnDeriv_mul_rnDeriv'`, an alternative version of `rnDeriv_mul_rnDeriv`. The difference is that the new version requires the absolute continuity of the second measure wrt the third (as opposed to the first wrt the second), but the thesis is true a.e. wrt the second measure (as opposed to wrt the third). ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Decomposition/RadonNikodym.lean + theorem MeasureTheory.Measure.rnDeriv_mul_rnDeriv' 2024-08-16 09:35:32 3913a5e feat(NNRat): More basic lemmas (#15047) From LeanAPAP ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/Rat.lean + theorem NNRat.cast_smul_eq_nnqsmul + theorem Rat.cast_smul_eq_qsmul +/- theorem algebraMap_rat_rat Modified Mathlib/Analysis/SpecialFunctions/Log/Basic.lean Modified Mathlib/Data/NNRat/Defs.lean Modified Mathlib/Data/Rat/Cast/CharZero.lean + def NNRat.castHom + theorem NNRat.cast_add + theorem NNRat.cast_div + theorem NNRat.cast_divNat + theorem NNRat.cast_eq_zero + theorem NNRat.cast_inj + theorem NNRat.cast_injective + theorem NNRat.cast_inv + theorem NNRat.cast_mul + theorem NNRat.cast_ne_zero + theorem NNRat.cast_zpow + theorem NNRat.coe_castHom +/- theorem Rat.cast_add +/- theorem Rat.cast_div +/- theorem Rat.cast_eq_zero +/- theorem Rat.cast_inj +/- theorem Rat.cast_injective +/- theorem Rat.cast_inv +/- theorem Rat.cast_mul +/- theorem Rat.cast_ne_zero - theorem Rat.cast_pow +/- theorem Rat.cast_sub +/- theorem Rat.cast_zpow + theorem Rat.coe_castHom - theorem Rat.coe_cast_hom Modified Mathlib/Data/Rat/Cast/Defs.lean - theorem MonoidWithZeroHom.ext_rat' - theorem MonoidWithZeroHom.ext_rat - theorem MonoidWithZeroHom.ext_rat_on_pnat + theorem MonoidWithZeroHomClass.ext_nnrat' + theorem MonoidWithZeroHomClass.ext_nnrat + theorem MonoidWithZeroHomClass.ext_nnrat_on_pnat + theorem MonoidWithZeroHomClass.ext_rat' + theorem MonoidWithZeroHomClass.ext_rat + theorem MonoidWithZeroHomClass.ext_rat_on_pnat Modified Mathlib/Data/Rat/Cast/Lemmas.lean + theorem Rat.cast_pow Modified Mathlib/NumberTheory/Bernoulli.lean Modified Mathlib/NumberTheory/PythagoreanTriples.lean Modified test/TCSynth.lean Added test/instance_diamonds/algebra_rat.lean 2024-08-16 08:13:03 a6b7481 feat: Essential supremum according to the counting measure (#15403) ... is just the usual supremum From LeanAPAP ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Function/EssSup.lean + theorem essInf_count + theorem essInf_eq_iInf + theorem essSup_count + theorem essSup_eq_iSup Modified Mathlib/MeasureTheory/Function/LpSeminorm/Basic.lean + theorem MeasureTheory.eLpNormEssSup_count + theorem MeasureTheory.eLpNormEssSup_eq_iSup Modified Mathlib/MeasureTheory/Function/StronglyMeasurable/Basic.lean + theorem MeasureTheory.AEStronglyMeasurable.of_finite Modified Mathlib/MeasureTheory/OuterMeasure/AE.lean + theorem MeasureTheory.ae_eq_comm +/- theorem MeasureTheory.ae_eq_refl + theorem MeasureTheory.ae_eq_rfl + theorem MeasureTheory.ae_eq_top Modified Mathlib/Order/Filter/Basic.lean + theorem Filter.eventuallyEq_comm Modified Mathlib/Order/LiminfLimsup.lean + theorem Filter.liminf_top + theorem Filter.limsup_top 2024-08-16 08:13:02 45ee234 feat(Measure/ContinuousPreimage): new file (#15367) - move `tendsto_measure_symmDiff_preimage_nhds_zero` to a new file; - prove that `{z | f z ⁻¹' t =ᵐ[μ] s}` is a closed set, if `f` continuously depends on `z`. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/MeasureTheory/Function/LpSpace/ContinuousCompMeasurePreserving.lean - theorem MeasureTheory.tendsto_measure_symmDiff_preimage_nhds_zero Added Mathlib/MeasureTheory/Measure/ContinuousPreimage.lean + theorem MeasureTheory.isClosed_setOf_preimage_ae_eq + theorem MeasureTheory.tendsto_measure_symmDiff_preimage_nhds_zero 2024-08-16 08:13:01 c9122d8 chore: a clean-up of files on finite measures, probability measures, and portmanteau theorem (#12822) ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Measure/FiniteMeasure.lean +/- theorem MeasureTheory.FiniteMeasure.apply_mono +/- theorem MeasureTheory.FiniteMeasure.continuous_mass +/- def MeasureTheory.FiniteMeasure.mass +/- theorem MeasureTheory.FiniteMeasure.mass_nonzero_iff + theorem MeasureTheory.FiniteMeasure.null_iff_toMeasure_null + theorem MeasureTheory.FiniteMeasure.tendsto_iff_weakDual_tendsto - theorem MeasureTheory.FiniteMeasure.tendsto_iff_weak_star_tendsto +/- theorem MeasureTheory.FiniteMeasure.toMeasure_add +/- theorem MeasureTheory.FiniteMeasure.toMeasure_zero +/- theorem MeasureTheory.FiniteMeasure.val_eq_toMeasure +/- theorem MeasureTheory.FiniteMeasure.zero_mass Modified Mathlib/MeasureTheory/Measure/Portmanteau.lean Modified Mathlib/MeasureTheory/Measure/ProbabilityMeasure.lean + theorem MeasureTheory.ProbabilityMeasure.null_iff_toMeasure_null +/- def MeasureTheory.ProbabilityMeasure.toFiniteMeasure +/- theorem MeasureTheory.ProbabilityMeasure.toWeakDualBCNN_continuous +/- theorem MeasureTheory.ProbabilityMeasure.val_eq_to_measure 2024-08-16 07:51:37 07a0ae9 feat(Measure/Restrict): add `QuasiMeasurePreserving.restrict` (#15661) ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Measure/Restrict.lean + theorem MeasureTheory.Measure.QuasiMeasurePreserving.restrict 2024-08-16 05:48:26 9045ac0 feat(ModelTheory): Fraïssé limits are unique (#9967) Prove that Fraïsse limits are unique up to equivalence. ESTIMATED CHANGES Modified Mathlib/ModelTheory/DirectLimit.lean Modified Mathlib/ModelTheory/Fraisse.lean + theorem FirstOrder.Language.IsFraisseLimit.nonempty_equiv + theorem FirstOrder.Language.IsUltrahomogeneous.extend_embedding + theorem FirstOrder.Language.age.fg_substructure + theorem FirstOrder.Language.age.has_representative_as_substructure + theorem FirstOrder.Language.isUltrahomogeneous_iff_IsExtensionPair Modified Mathlib/ModelTheory/Substructures.lean + theorem FirstOrder.Language.Substructure.closure_iUnion - theorem FirstOrder.Language.Substructure.closure_unionᵢ + theorem FirstOrder.Language.Substructure.iSup_eq_closure + theorem FirstOrder.Language.Substructure.mem_iSup_of_directed + theorem FirstOrder.Language.Substructure.mem_sSup_of_directedOn 2024-08-16 05:39:21 76ccc39 feat: Dyck words up to semilength (#14162) First part of #9781. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Combinatorics/Enumerative/DyckWord.lean + theorem DyckStep.dichotomy + inductive DyckStep + theorem DyckWord.cons_tail_dropLast_concat + def DyckWord.denest + theorem DyckWord.denest_nest + def DyckWord.drop + theorem DyckWord.getLast_eq_D + theorem DyckWord.head_eq_U + def DyckWord.nest + def DyckWord.semilength + theorem DyckWord.semilength_add + theorem DyckWord.semilength_eq_count_D + theorem DyckWord.semilength_nest + theorem DyckWord.semilength_zero + def DyckWord.take + theorem DyckWord.toList_eq_nil + theorem DyckWord.two_mul_semilength_eq_length + structure DyckWord 2024-08-16 01:08:23 dc5804b feat: `ZMod.forall`, `ZMod.exists` (#15861) From LeanAPAP ESTIMATED CHANGES Modified Mathlib/Data/ZMod/Basic.lean + theorem ZMod.«exists» + theorem ZMod.«forall» 2024-08-16 01:08:22 ab90329 chore: Fix implicitness of `floor_le_floor` (#15856) ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Floor.lean +/- theorem Int.ceil_le_ceil +/- theorem Int.floor_le_floor +/- theorem Nat.ceil_le_ceil +/- theorem Nat.floor_le_floor 2024-08-16 01:08:21 f2871ac chore: splitting up metric spaces files (#15790) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Analysis/BoxIntegral/Box/Basic.lean Modified Mathlib/Analysis/Convex/Extrema.lean Modified Mathlib/Analysis/Oscillation.lean Modified Mathlib/InformationTheory/Hamming.lean Modified Mathlib/Topology/EMetricSpace/Basic.lean - def EMetric.ball - theorem EMetric.ball_disjoint - theorem EMetric.ball_eq_empty_iff - theorem EMetric.ball_mem_nhds - theorem EMetric.ball_prod_same - theorem EMetric.ball_subset - theorem EMetric.ball_subset_ball - theorem EMetric.ball_subset_closedBall - theorem EMetric.ball_zero - def EMetric.closedBall - theorem EMetric.closedBall_mem_nhds - theorem EMetric.closedBall_prod_same - theorem EMetric.closedBall_subset_closedBall - theorem EMetric.closedBall_top - theorem EMetric.diam_ball - theorem EMetric.diam_closedBall - theorem EMetric.diam_empty - theorem EMetric.diam_eq_sSup - theorem EMetric.diam_eq_zero_iff - theorem EMetric.diam_iUnion_mem_option - theorem EMetric.diam_image_le_iff - theorem EMetric.diam_insert - theorem EMetric.diam_le - theorem EMetric.diam_le_iff - theorem EMetric.diam_mono - theorem EMetric.diam_one - theorem EMetric.diam_pair - theorem EMetric.diam_pi_le_of_le - theorem EMetric.diam_pos_iff' - theorem EMetric.diam_pos_iff - theorem EMetric.diam_singleton - theorem EMetric.diam_subsingleton - theorem EMetric.diam_triple - theorem EMetric.diam_union' - theorem EMetric.diam_union - def EMetric.edistLtTopSetoid - theorem EMetric.edist_le_diam_of_mem - theorem EMetric.edist_le_of_diam_le - theorem EMetric.exists_ball_subset_ball - theorem EMetric.isClosed_ball_top - theorem EMetric.isOpen_ball - theorem EMetric.isOpen_iff - theorem EMetric.mem_ball' - theorem EMetric.mem_ball - theorem EMetric.mem_ball_comm - theorem EMetric.mem_ball_self - theorem EMetric.mem_closedBall' - theorem EMetric.mem_closedBall - theorem EMetric.mem_closedBall_comm - theorem EMetric.mem_closedBall_self - theorem EMetric.mem_closure_iff - theorem EMetric.mem_nhdsWithin_iff - theorem EMetric.mem_nhds_iff - theorem EMetric.nhdsWithin_basis_closed_eball - theorem EMetric.nhdsWithin_basis_eball - theorem EMetric.nhds_basis_closed_eball - theorem EMetric.nhds_basis_eball - theorem EMetric.nhds_eq - theorem EMetric.ordConnected_setOf_ball_subset - theorem EMetric.ordConnected_setOf_closedBall_subset - theorem EMetric.pos_of_mem_ball - theorem EMetric.subset_countable_closure_of_almost_dense_set - theorem EMetric.tendsto_atTop - theorem EMetric.tendsto_nhds - theorem EMetric.tendsto_nhdsWithin_nhds - theorem EMetric.tendsto_nhdsWithin_nhdsWithin - theorem EMetric.tendsto_nhds_nhds - theorem EMetric.uniformContinuousOn_iff - theorem EMetric.uniformContinuous_iff - def EMetricSpace.induced - def EMetricSpace.replaceUniformity - theorem MulOpposite.edist_op - theorem MulOpposite.edist_unop - theorem Prod.edist_eq - def PseudoEMetricSpace.induced - def PseudoEMetricSpace.replaceUniformity - theorem Subtype.edist_eq - theorem TopologicalSpace.IsSeparable.exists_countable_dense_subset - theorem TopologicalSpace.IsSeparable.separableSpace - theorem ULift.edist_eq - theorem ULift.edist_up_up - theorem edist_congr - theorem edist_congr_left - theorem edist_congr_right - theorem edist_eq_zero - theorem edist_le_zero - theorem edist_mem_uniformity - theorem edist_ofAdd - theorem edist_ofDual - theorem edist_ofMul - theorem edist_pos - theorem edist_toAdd - theorem edist_toDual - theorem edist_toMul - theorem edist_triangle4 - theorem edist_triangle_left - theorem edist_triangle_right - theorem eq_of_forall_edist_le - theorem mem_uniformity_edist - def uniformSpaceOfEDist - theorem uniformSpace_edist - theorem uniformity_basis_edist' - theorem uniformity_basis_edist - theorem uniformity_basis_edist_inv_nat - theorem uniformity_basis_edist_inv_two_pow - theorem uniformity_basis_edist_le' - theorem uniformity_basis_edist_le - theorem uniformity_basis_edist_nnreal - theorem uniformity_basis_edist_nnreal_le - theorem uniformity_dist_of_mem_uniformity - theorem uniformity_edist - theorem uniformity_pseudoedist - theorem zero_eq_edist Added Mathlib/Topology/EMetricSpace/Defs.lean + def EMetric.ball + theorem EMetric.ball_disjoint + theorem EMetric.ball_eq_empty_iff + theorem EMetric.ball_mem_nhds + theorem EMetric.ball_prod_same + theorem EMetric.ball_subset + theorem EMetric.ball_subset_ball + theorem EMetric.ball_subset_closedBall + theorem EMetric.ball_zero + def EMetric.closedBall + theorem EMetric.closedBall_mem_nhds + theorem EMetric.closedBall_prod_same + theorem EMetric.closedBall_subset_closedBall + theorem EMetric.closedBall_top + def EMetric.edistLtTopSetoid + theorem EMetric.exists_ball_subset_ball + theorem EMetric.isClosed_ball_top + theorem EMetric.isOpen_ball + theorem EMetric.isOpen_iff + theorem EMetric.mem_ball' + theorem EMetric.mem_ball + theorem EMetric.mem_ball_comm + theorem EMetric.mem_ball_self + theorem EMetric.mem_closedBall' + theorem EMetric.mem_closedBall + theorem EMetric.mem_closedBall_comm + theorem EMetric.mem_closedBall_self + theorem EMetric.mem_closure_iff + theorem EMetric.mem_nhdsWithin_iff + theorem EMetric.mem_nhds_iff + theorem EMetric.nhdsWithin_basis_closed_eball + theorem EMetric.nhdsWithin_basis_eball + theorem EMetric.nhds_basis_closed_eball + theorem EMetric.nhds_basis_eball + theorem EMetric.nhds_eq + theorem EMetric.ordConnected_setOf_ball_subset + theorem EMetric.ordConnected_setOf_closedBall_subset + theorem EMetric.pos_of_mem_ball + theorem EMetric.subset_countable_closure_of_almost_dense_set + theorem EMetric.tendsto_atTop + theorem EMetric.tendsto_nhds + theorem EMetric.tendsto_nhdsWithin_nhds + theorem EMetric.tendsto_nhdsWithin_nhdsWithin + theorem EMetric.tendsto_nhds_nhds + theorem EMetric.uniformContinuousOn_iff + theorem EMetric.uniformContinuous_iff + def EMetricSpace.induced + def EMetricSpace.replaceUniformity + theorem MulOpposite.edist_op + theorem MulOpposite.edist_unop + theorem Prod.edist_eq + def PseudoEMetricSpace.induced + def PseudoEMetricSpace.replaceUniformity + theorem Subtype.edist_eq + theorem TopologicalSpace.IsSeparable.exists_countable_dense_subset + theorem TopologicalSpace.IsSeparable.separableSpace + theorem ULift.edist_eq + theorem ULift.edist_up_up + theorem edist_congr + theorem edist_congr_left + theorem edist_congr_right + theorem edist_eq_zero + theorem edist_le_zero + theorem edist_mem_uniformity + theorem edist_ofAdd + theorem edist_ofDual + theorem edist_ofMul + theorem edist_pos + theorem edist_toAdd + theorem edist_toDual + theorem edist_toMul + theorem edist_triangle4 + theorem edist_triangle_left + theorem edist_triangle_right + theorem eq_of_forall_edist_le + theorem mem_uniformity_edist + def uniformSpaceOfEDist + theorem uniformSpace_edist + theorem uniformity_basis_edist' + theorem uniformity_basis_edist + theorem uniformity_basis_edist_inv_nat + theorem uniformity_basis_edist_inv_two_pow + theorem uniformity_basis_edist_le' + theorem uniformity_basis_edist_le + theorem uniformity_basis_edist_nnreal + theorem uniformity_basis_edist_nnreal_le + theorem uniformity_dist_of_mem_uniformity + theorem uniformity_edist + theorem uniformity_pseudoedist + theorem zero_eq_edist Added Mathlib/Topology/EMetricSpace/Diam.lean + theorem EMetric.diam_ball + theorem EMetric.diam_closedBall + theorem EMetric.diam_empty + theorem EMetric.diam_eq_sSup + theorem EMetric.diam_eq_zero_iff + theorem EMetric.diam_iUnion_mem_option + theorem EMetric.diam_image_le_iff + theorem EMetric.diam_insert + theorem EMetric.diam_le + theorem EMetric.diam_le_iff + theorem EMetric.diam_mono + theorem EMetric.diam_one + theorem EMetric.diam_pair + theorem EMetric.diam_pi_le_of_le + theorem EMetric.diam_pos_iff' + theorem EMetric.diam_pos_iff + theorem EMetric.diam_singleton + theorem EMetric.diam_subsingleton + theorem EMetric.diam_triple + theorem EMetric.diam_union' + theorem EMetric.diam_union + theorem EMetric.edist_le_diam_of_mem + theorem EMetric.edist_le_of_diam_le Modified Mathlib/Topology/EMetricSpace/Lipschitz.lean Modified Mathlib/Topology/EMetricSpace/Paracompact.lean Modified Mathlib/Topology/Instances/Discrete.lean Modified Mathlib/Topology/Instances/ENNReal.lean Modified Mathlib/Topology/Instances/Int.lean Modified Mathlib/Topology/Instances/Nat.lean Modified Mathlib/Topology/Instances/RatLemmas.lean Modified Mathlib/Topology/Instances/Real.lean Modified Mathlib/Topology/MetricSpace/Basic.lean - theorem Metric.closedBall_zero - theorem Metric.sphere_zero - theorem Metric.subsingleton_closedBall - theorem Metric.subsingleton_sphere - theorem MetricSpace.ext - def MetricSpace.ofDistTopology - def MetricSpace.replaceBornology - theorem MetricSpace.replaceBornology_eq - theorem MetricSpace.replaceTopology_eq - def MetricSpace.replaceUniformity - theorem MetricSpace.replaceUniformity_eq - theorem dist_eq_zero - theorem dist_le_zero - theorem dist_ne_zero - theorem dist_ofAdd - theorem dist_ofDual - theorem dist_ofMul - theorem dist_pos - theorem dist_toAdd - theorem dist_toDual - theorem dist_toMul - theorem eq_of_dist_eq_zero - theorem eq_of_forall_dist_le - theorem eq_of_nndist_eq_zero - theorem nndist_eq_zero - theorem nndist_ofAdd - theorem nndist_ofDual - theorem nndist_ofMul - theorem nndist_toAdd - theorem nndist_toDual - theorem nndist_toMul - theorem zero_eq_dist - theorem zero_eq_nndist Modified Mathlib/Topology/MetricSpace/Bounded.lean Modified Mathlib/Topology/MetricSpace/Cauchy.lean Added Mathlib/Topology/MetricSpace/Defs.lean + theorem Metric.closedBall_zero + theorem Metric.sphere_zero + theorem Metric.subsingleton_closedBall + theorem Metric.subsingleton_sphere + theorem MetricSpace.ext + def MetricSpace.ofDistTopology + def MetricSpace.replaceBornology + theorem MetricSpace.replaceBornology_eq + theorem MetricSpace.replaceTopology_eq + def MetricSpace.replaceUniformity + theorem MetricSpace.replaceUniformity_eq + theorem dist_eq_zero + theorem dist_le_zero + theorem dist_ne_zero + theorem dist_ofAdd + theorem dist_ofDual + theorem dist_ofMul + theorem dist_pos + theorem dist_toAdd + theorem dist_toDual + theorem dist_toMul + theorem eq_of_dist_eq_zero + theorem eq_of_forall_dist_le + theorem eq_of_nndist_eq_zero + theorem nndist_eq_zero + theorem nndist_ofAdd + theorem nndist_ofDual + theorem nndist_ofMul + theorem nndist_toAdd + theorem nndist_toDual + theorem nndist_toMul + theorem zero_eq_dist + theorem zero_eq_nndist Modified Mathlib/Topology/MetricSpace/Equicontinuity.lean Modified Mathlib/Topology/MetricSpace/MetricSeparated.lean Modified Mathlib/Topology/MetricSpace/ProperSpace.lean Added Mathlib/Topology/MetricSpace/Pseudo/Basic.lean + theorem IsCompact.isSeparable + theorem Metric.controlled_of_uniformEmbedding + theorem Metric.exists_ball_inter_eq_singleton_of_mem_discrete + theorem Metric.exists_closedBall_inter_eq_singleton_of_discrete + theorem Metric.finite_approx_of_totallyBounded + theorem Metric.inseparable_iff + theorem Metric.secondCountable_of_almost_dense_set + theorem Metric.tendstoLocallyUniformlyOn_iff + theorem Metric.tendstoLocallyUniformly_iff + theorem Metric.tendstoUniformlyOnFilter_iff + theorem Metric.tendstoUniformlyOn_iff + theorem Metric.tendstoUniformly_iff + theorem Metric.totallyBounded_iff + theorem Metric.totallyBounded_of_finite_discretization + theorem cauchySeq_iff_tendsto_dist_atTop_0 + theorem dist_le_Ico_sum_dist + theorem dist_le_Ico_sum_of_dist_le + theorem dist_le_range_sum_dist + theorem dist_le_range_sum_of_dist_le Modified Mathlib/Topology/MetricSpace/Pseudo/Constructions.lean - theorem Fin.dist_insertNth_insertNth - theorem Fin.nndist_insertNth_insertNth - theorem ball_pi' - theorem ball_pi - theorem closedBall_pi' - theorem closedBall_pi - theorem dist_le_pi_dist - theorem dist_pi_const - theorem dist_pi_const_le - theorem dist_pi_def - theorem dist_pi_eq_iff - theorem dist_pi_le_iff' - theorem dist_pi_le_iff - theorem dist_pi_lt_iff - theorem nndist_le_pi_nndist - theorem nndist_pi_const - theorem nndist_pi_const_le - theorem nndist_pi_def - theorem nndist_pi_eq_iff - theorem nndist_pi_le_iff - theorem nndist_pi_lt_iff - theorem sphere_pi Modified Mathlib/Topology/MetricSpace/Pseudo/Defs.lean - theorem IsCompact.isSeparable - theorem Metric.controlled_of_uniformEmbedding - theorem Metric.exists_ball_inter_eq_singleton_of_mem_discrete - theorem Metric.exists_closedBall_inter_eq_singleton_of_discrete - theorem Metric.finite_approx_of_totallyBounded - theorem Metric.inseparable_iff - theorem Metric.secondCountable_of_almost_dense_set - theorem Metric.tendstoLocallyUniformlyOn_iff - theorem Metric.tendstoLocallyUniformly_iff - theorem Metric.tendstoUniformlyOnFilter_iff - theorem Metric.tendstoUniformlyOn_iff - theorem Metric.tendstoUniformly_iff - theorem Metric.totallyBounded_iff - theorem Metric.totallyBounded_of_finite_discretization - theorem cauchySeq_iff_tendsto_dist_atTop_0 - theorem dist_le_Ico_sum_dist - theorem dist_le_Ico_sum_of_dist_le - theorem dist_le_range_sum_dist - theorem dist_le_range_sum_of_dist_le Modified Mathlib/Topology/MetricSpace/Pseudo/Lemmas.lean - theorem Real.dist_le_of_mem_Icc - theorem Real.dist_le_of_mem_Icc_01 - theorem Real.dist_le_of_mem_pi_Icc - theorem Real.dist_le_of_mem_uIcc - theorem Real.dist_left_le_of_mem_uIcc - theorem Real.dist_right_le_of_mem_uIcc Added Mathlib/Topology/MetricSpace/Pseudo/Pi.lean + theorem Fin.dist_insertNth_insertNth + theorem Fin.nndist_insertNth_insertNth + theorem ball_pi' + theorem ball_pi + theorem closedBall_pi' + theorem closedBall_pi + theorem dist_le_pi_dist + theorem dist_pi_const + theorem dist_pi_const_le + theorem dist_pi_def + theorem dist_pi_eq_iff + theorem dist_pi_le_iff' + theorem dist_pi_le_iff + theorem dist_pi_lt_iff + theorem nndist_le_pi_nndist + theorem nndist_pi_const + theorem nndist_pi_const_le + theorem nndist_pi_def + theorem nndist_pi_eq_iff + theorem nndist_pi_le_iff + theorem nndist_pi_lt_iff + theorem sphere_pi Added Mathlib/Topology/MetricSpace/Pseudo/Real.lean + theorem Real.dist_le_of_mem_Icc + theorem Real.dist_le_of_mem_Icc_01 + theorem Real.dist_le_of_mem_pi_Icc + theorem Real.dist_le_of_mem_uIcc + theorem Real.dist_left_le_of_mem_uIcc + theorem Real.dist_right_le_of_mem_uIcc Modified Mathlib/Topology/Metrizable/Uniformity.lean 2024-08-16 01:08:20 925a304 feat: Finset builder notation (#11582) Define elaborators (but no delaborators) to elaborate the following notations to a `Finset`: In `Data.Finset.Basic`, * `{x ∈ s | p x}` In `Data.Fintype.Basic`, * `{x | p x}` * `{x : α | p x}` * `{x ∉ s | p x}` * `{x ≠ a | p x}` In `Order.Interval.Finset.Basic`, * `{x ≤ a | p x}` * `{x ≥ a | p x}` * `{x < a | p x}` * `{x > a | p x}` The general heuristic for deciding whether to elaborate a given notation as a `Set` or `Finset` is: * Check whether the expected type is `Finset ?α`. * If it is, elaborate as a `Finset`. * If it isn't, check whether the expected type of `s` in the notation is `Finset ?α`. * If it is, elaborate as a `Finset`. * If it isn't or there is no `s` in the notation, elaborate as a `Set`. There is currently a gotcha that elaboration to `Set` is highly preferred because we can't postpone metavariable and override the set elaborator without breaking many existing uses of set builder notation. See [Zulip](https://leanprover.zulipchat.com/#narrow/stream/113488-general/topic/.7Bx.20.E2.88.88.20s.20.7C.20p.20x.7D.20notation.20for.20finset). ESTIMATED CHANGES Modified Mathlib/Combinatorics/Enumerative/DoubleCounting.lean +/- theorem Finset.coe_bipartiteAbove +/- theorem Finset.coe_bipartiteBelow Modified Mathlib/Data/Finset/Basic.lean - def Equiv.Finset.union - theorem Equiv.Finset.union_symm_inl - theorem Equiv.Finset.union_symm_inr - def Equiv.piFinsetUnion + def Finset.Equiv.Finset.union + theorem Finset.Equiv.Finset.union_symm_inl + theorem Finset.Equiv.Finset.union_symm_inr + def Finset.Equiv.piFinsetUnion + theorem Finset.Finset.Nonempty.not_empty_toList + theorem Finset.Finset.Nonempty.toList_ne_nil + def Finset.Finset.choose + def Finset.Finset.chooseX + theorem Finset.Finset.choose_mem + theorem Finset.Finset.choose_property + theorem Finset.Finset.choose_spec + theorem Finset.Finset.coe_filter + theorem Finset.Finset.coe_range + theorem Finset.Finset.coe_toList + theorem Finset.Finset.disjoint_filter + theorem Finset.Finset.disjoint_filter_filter' + theorem Finset.Finset.disjoint_filter_filter + theorem Finset.Finset.disjoint_filter_filter_neg + theorem Finset.Finset.empty_toList + theorem Finset.Finset.exists_list_nodup_eq + theorem Finset.Finset.exists_mem_empty_iff + theorem Finset.Finset.exists_mem_insert + theorem Finset.Finset.filter_False + theorem Finset.Finset.filter_True + theorem Finset.Finset.filter_and + theorem Finset.Finset.filter_and_not + theorem Finset.Finset.filter_comm + theorem Finset.Finset.filter_congr + theorem Finset.Finset.filter_congr_decidable + theorem Finset.Finset.filter_cons + theorem Finset.Finset.filter_cons_of_neg + theorem Finset.Finset.filter_cons_of_pos + theorem Finset.Finset.filter_const + theorem Finset.Finset.filter_disj_union + theorem Finset.Finset.filter_empty + theorem Finset.Finset.filter_eq' + theorem Finset.Finset.filter_eq + theorem Finset.Finset.filter_eq_empty_iff + theorem Finset.Finset.filter_eq_self + theorem Finset.Finset.filter_erase + theorem Finset.Finset.filter_false_of_mem + theorem Finset.Finset.filter_filter + theorem Finset.Finset.filter_inj' + theorem Finset.Finset.filter_inj + theorem Finset.Finset.filter_insert + theorem Finset.Finset.filter_inter + theorem Finset.Finset.filter_inter_distrib + theorem Finset.Finset.filter_inter_filter_neg_eq + theorem Finset.Finset.filter_mem_eq_inter + theorem Finset.Finset.filter_ne' + theorem Finset.Finset.filter_ne + theorem Finset.Finset.filter_nonempty_iff + theorem Finset.Finset.filter_not + theorem Finset.Finset.filter_or + theorem Finset.Finset.filter_singleton + theorem Finset.Finset.filter_ssubset + theorem Finset.Finset.filter_subset + theorem Finset.Finset.filter_subset_filter + theorem Finset.Finset.filter_true_of_mem + theorem Finset.Finset.filter_union + theorem Finset.Finset.filter_union_filter_neg_eq + theorem Finset.Finset.filter_union_filter_of_codisjoint + theorem Finset.Finset.filter_union_right + theorem Finset.Finset.filter_val + theorem Finset.Finset.forall_mem_empty_iff + theorem Finset.Finset.forall_mem_insert + theorem Finset.Finset.forall_of_forall_insert + theorem Finset.Finset.inter_filter + theorem Finset.Finset.mem_filter + theorem Finset.Finset.mem_of_mem_filter + theorem Finset.Finset.mem_range + theorem Finset.Finset.mem_range_le + theorem Finset.Finset.mem_range_sub_ne_zero + theorem Finset.Finset.mem_range_succ_iff + theorem Finset.Finset.mem_toList + theorem Finset.Finset.monotone_filter_left + theorem Finset.Finset.monotone_filter_right + theorem Finset.Finset.nodup_toList + theorem Finset.Finset.nonempty_range_iff + theorem Finset.Finset.nonempty_range_succ + theorem Finset.Finset.not_mem_range_self + theorem Finset.Finset.pairwise_cons' + theorem Finset.Finset.pairwise_cons + theorem Finset.Finset.pairwise_subtype_iff_pairwise_finset' + theorem Finset.Finset.pairwise_subtype_iff_pairwise_finset + def Finset.Finset.range + theorem Finset.Finset.range_add_one + theorem Finset.Finset.range_eq_empty_iff + theorem Finset.Finset.range_filter_eq + theorem Finset.Finset.range_mono + theorem Finset.Finset.range_nontrivial + theorem Finset.Finset.range_one + theorem Finset.Finset.range_subset + theorem Finset.Finset.range_succ + theorem Finset.Finset.range_val + theorem Finset.Finset.range_zero + theorem Finset.Finset.sdiff_eq_filter + theorem Finset.Finset.sdiff_eq_self + theorem Finset.Finset.self_mem_range_succ + theorem Finset.Finset.subset_coe_filter_of_subset_forall + theorem Finset.Finset.subset_union_elim + theorem Finset.Finset.toList_cons + theorem Finset.Finset.toList_empty + theorem Finset.Finset.toList_eq_nil + theorem Finset.Finset.toList_eq_singleton_iff + theorem Finset.Finset.toList_insert + theorem Finset.Finset.toList_singleton + theorem Finset.Finset.toList_toFinset + theorem Finset.Finset.val_le_iff_val_subset + theorem Finset.Finset.val_toFinset + theorem Finset.List.coe_toFinset + theorem Finset.List.disjoint_toFinset_iff_disjoint + theorem Finset.List.mem_toFinset + theorem Finset.List.perm_of_nodup_nodup_toFinset_eq + theorem Finset.List.toFinset.ext + theorem Finset.List.toFinset.ext_iff + def Finset.List.toFinset + theorem Finset.List.toFinset_append + theorem Finset.List.toFinset_coe + theorem Finset.List.toFinset_cons + theorem Finset.List.toFinset_eq + theorem Finset.List.toFinset_eq_empty_iff + theorem Finset.List.toFinset_eq_iff_perm_dedup + theorem Finset.List.toFinset_eq_of_perm + theorem Finset.List.toFinset_filter + theorem Finset.List.toFinset_inter + theorem Finset.List.toFinset_nil + theorem Finset.List.toFinset_nonempty_iff + theorem Finset.List.toFinset_replicate_of_ne_zero + theorem Finset.List.toFinset_reverse + theorem Finset.List.toFinset_surj_on + theorem Finset.List.toFinset_surjective + theorem Finset.List.toFinset_union + theorem Finset.List.toFinset_val + def Finset.Mathlib.Meta.elabFinsetBuilderSep + def Finset.Mathlib.Meta.knownToBeFinsetNotSet + def Finset.Mathlib.Meta.proveFinsetNonempty + theorem Finset.Multiset.Nodup.toFinset_inj + theorem Finset.Multiset.disjoint_toFinset + theorem Finset.Multiset.mem_toFinset + def Finset.Multiset.toFinset + theorem Finset.Multiset.toFinset_add + theorem Finset.Multiset.toFinset_cons + theorem Finset.Multiset.toFinset_dedup + theorem Finset.Multiset.toFinset_eq + theorem Finset.Multiset.toFinset_eq_empty + theorem Finset.Multiset.toFinset_eq_singleton_iff + theorem Finset.Multiset.toFinset_filter + theorem Finset.Multiset.toFinset_inter + theorem Finset.Multiset.toFinset_nonempty + theorem Finset.Multiset.toFinset_nsmul + theorem Finset.Multiset.toFinset_singleton + theorem Finset.Multiset.toFinset_ssubset + theorem Finset.Multiset.toFinset_subset + theorem Finset.Multiset.toFinset_union + theorem Finset.Multiset.toFinset_val + theorem Finset.Multiset.toFinset_zero - theorem Finset.Nonempty.not_empty_toList - theorem Finset.Nonempty.toList_ne_nil - def Finset.choose - def Finset.chooseX - theorem Finset.choose_mem - theorem Finset.choose_property - theorem Finset.choose_spec - theorem Finset.coe_filter + theorem Finset.coe_notMemRangeEquiv + theorem Finset.coe_notMemRangeEquiv_symm - theorem Finset.coe_range - theorem Finset.coe_toList - theorem Finset.disjoint_filter - theorem Finset.disjoint_filter_filter' - theorem Finset.disjoint_filter_filter - theorem Finset.disjoint_filter_filter_neg - theorem Finset.empty_toList - theorem Finset.exists_list_nodup_eq - theorem Finset.exists_mem_empty_iff - theorem Finset.exists_mem_insert - theorem Finset.filter_False - theorem Finset.filter_True - theorem Finset.filter_and - theorem Finset.filter_and_not - theorem Finset.filter_comm - theorem Finset.filter_congr - theorem Finset.filter_congr_decidable - theorem Finset.filter_cons - theorem Finset.filter_cons_of_neg - theorem Finset.filter_cons_of_pos - theorem Finset.filter_const - theorem Finset.filter_disj_union - theorem Finset.filter_empty - theorem Finset.filter_eq' - theorem Finset.filter_eq - theorem Finset.filter_eq_empty_iff - theorem Finset.filter_eq_self - theorem Finset.filter_erase - theorem Finset.filter_false_of_mem - theorem Finset.filter_filter - theorem Finset.filter_inj' - theorem Finset.filter_inj - theorem Finset.filter_insert - theorem Finset.filter_inter - theorem Finset.filter_inter_distrib - theorem Finset.filter_inter_filter_neg_eq - theorem Finset.filter_mem_eq_inter - theorem Finset.filter_ne' - theorem Finset.filter_ne - theorem Finset.filter_nonempty_iff - theorem Finset.filter_not - theorem Finset.filter_or - theorem Finset.filter_singleton - theorem Finset.filter_ssubset - theorem Finset.filter_subset - theorem Finset.filter_subset_filter - theorem Finset.filter_true_of_mem - theorem Finset.filter_union - theorem Finset.filter_union_filter_neg_eq - theorem Finset.filter_union_filter_of_codisjoint - theorem Finset.filter_union_right - theorem Finset.filter_val - theorem Finset.forall_mem_empty_iff - theorem Finset.forall_mem_insert - theorem Finset.forall_of_forall_insert - theorem Finset.inter_filter - theorem Finset.mem_filter - theorem Finset.mem_of_mem_filter - theorem Finset.mem_range - theorem Finset.mem_range_le - theorem Finset.mem_range_sub_ne_zero - theorem Finset.mem_range_succ_iff - theorem Finset.mem_toList - theorem Finset.monotone_filter_left - theorem Finset.monotone_filter_right - theorem Finset.nodup_toList - theorem Finset.nonempty_range_iff - theorem Finset.nonempty_range_succ + def Finset.notMemRangeEquiv - theorem Finset.not_mem_range_self - theorem Finset.pairwise_cons' - theorem Finset.pairwise_cons - theorem Finset.pairwise_subtype_iff_pairwise_finset' - theorem Finset.pairwise_subtype_iff_pairwise_finset - def Finset.range - theorem Finset.range_add_one - theorem Finset.range_eq_empty_iff - theorem Finset.range_filter_eq - theorem Finset.range_mono - theorem Finset.range_nontrivial - theorem Finset.range_one - theorem Finset.range_subset - theorem Finset.range_succ - theorem Finset.range_val - theorem Finset.range_zero - theorem Finset.sdiff_eq_filter - theorem Finset.sdiff_eq_self - theorem Finset.self_mem_range_succ - theorem Finset.subset_coe_filter_of_subset_forall - theorem Finset.subset_union_elim - theorem Finset.toList_cons - theorem Finset.toList_empty - theorem Finset.toList_eq_nil - theorem Finset.toList_eq_singleton_iff - theorem Finset.toList_insert - theorem Finset.toList_singleton - theorem Finset.toList_toFinset - theorem Finset.val_le_iff_val_subset - theorem Finset.val_toFinset - theorem List.coe_toFinset - theorem List.disjoint_toFinset_iff_disjoint - theorem List.mem_toFinset - theorem List.perm_of_nodup_nodup_toFinset_eq - theorem List.toFinset.ext - theorem List.toFinset.ext_iff - def List.toFinset - theorem List.toFinset_append - theorem List.toFinset_coe - theorem List.toFinset_cons - theorem List.toFinset_eq - theorem List.toFinset_eq_empty_iff - theorem List.toFinset_eq_iff_perm_dedup - theorem List.toFinset_eq_of_perm - theorem List.toFinset_filter - theorem List.toFinset_inter - theorem List.toFinset_nil - theorem List.toFinset_nonempty_iff - theorem List.toFinset_replicate_of_ne_zero - theorem List.toFinset_reverse - theorem List.toFinset_surj_on - theorem List.toFinset_surjective - theorem List.toFinset_union - theorem List.toFinset_val - def Mathlib.Meta.proveFinsetNonempty - theorem Multiset.Nodup.toFinset_inj - theorem Multiset.disjoint_toFinset - theorem Multiset.mem_toFinset - def Multiset.toFinset - theorem Multiset.toFinset_add - theorem Multiset.toFinset_cons - theorem Multiset.toFinset_dedup - theorem Multiset.toFinset_eq - theorem Multiset.toFinset_eq_empty - theorem Multiset.toFinset_eq_singleton_iff - theorem Multiset.toFinset_filter - theorem Multiset.toFinset_inter - theorem Multiset.toFinset_nonempty - theorem Multiset.toFinset_nsmul - theorem Multiset.toFinset_singleton - theorem Multiset.toFinset_ssubset - theorem Multiset.toFinset_subset - theorem Multiset.toFinset_union - theorem Multiset.toFinset_val - theorem Multiset.toFinset_zero - theorem coe_notMemRangeEquiv - theorem coe_notMemRangeEquiv_symm - def notMemRangeEquiv Modified Mathlib/Data/Fintype/Basic.lean + def Mathlib.Meta.elabFinsetBuilderSetOf Modified Mathlib/FieldTheory/ChevalleyWarning.lean Modified Mathlib/Init/Set.lean + def Mathlib.Meta.elabSetBuilder + def Mathlib.Meta.setOf.unexpander + def Mathlib.Meta.setOfPatternMatchUnexpander - def Set.setOf.unexpander - def Set.setOfPatternMatchUnexpander Modified Mathlib/Order/Interval/Finset/Defs.lean + def Mathlib.Meta.elabFinsetBuilderIxx Modified scripts/nolints.json Modified scripts/style-exceptions.txt Added test/finset_builder.lean 2024-08-16 00:11:46 902c3a5 chore: remove unnecessary references to Nat.zero_eq (#15858) The induction tactics no longer put a Nat.zero into the context. ESTIMATED CHANGES Modified Archive/Sensitivity.lean Modified Counterexamples/Phillips.lean Modified Mathlib/Algebra/ContinuedFractions/Computation/CorrectnessTerminating.lean Modified Mathlib/Algebra/ContinuedFractions/Computation/Translations.lean Modified Mathlib/Algebra/CubicDiscriminant.lean Modified Mathlib/Algebra/GeomSum.lean Modified Mathlib/Algebra/Homology/Augment.lean Modified Mathlib/Algebra/Homology/LocalCohomology.lean Modified Mathlib/Algebra/Lie/CartanExists.lean Modified Mathlib/Algebra/Lie/Engel.lean Modified Mathlib/Algebra/Lie/Nilpotent.lean Modified Mathlib/Algebra/Lie/Solvable.lean Modified Mathlib/Algebra/Module/LinearMap/End.lean Modified Mathlib/Algebra/Order/CauSeq/Basic.lean Modified Mathlib/Algebra/Polynomial/Eval.lean Modified Mathlib/Algebra/Polynomial/FieldDivision.lean Modified Mathlib/Algebra/Polynomial/Laurent.lean Modified Mathlib/Algebra/Polynomial/Roots.lean Modified Mathlib/Algebra/Polynomial/Smeval.lean Modified Mathlib/AlgebraicTopology/DoldKan/Decomposition.lean Modified Mathlib/AlgebraicTopology/DoldKan/HomotopyEquivalence.lean Modified Mathlib/AlgebraicTopology/DoldKan/PInfty.lean Modified Mathlib/AlgebraicTopology/SimplexCategory.lean Modified Mathlib/Analysis/Analytic/Basic.lean Modified Mathlib/Analysis/Analytic/Constructions.lean Modified Mathlib/Analysis/Analytic/Meromorphic.lean Modified Mathlib/Analysis/Asymptotics/SuperpolynomialDecay.lean Modified Mathlib/Analysis/BoxIntegral/Box/SubboxInduction.lean Modified Mathlib/Analysis/CStarAlgebra/Basic.lean Modified Mathlib/Analysis/Calculus/ContDiff/Basic.lean Modified Mathlib/Analysis/Calculus/ContDiff/Bounds.lean Modified Mathlib/Analysis/Calculus/ContDiff/Defs.lean Modified Mathlib/Analysis/Calculus/Deriv/ZPow.lean Modified Mathlib/Analysis/Calculus/FormalMultilinearSeries.lean Modified Mathlib/Analysis/Calculus/IteratedDeriv/Lemmas.lean Modified Mathlib/Analysis/Fourier/FourierTransformDeriv.lean Modified Mathlib/Analysis/InnerProductSpace/OfNorm.lean Modified Mathlib/Analysis/Normed/Algebra/Spectrum.lean Modified Mathlib/Analysis/Normed/Field/Basic.lean Modified Mathlib/Analysis/Normed/Operator/Banach.lean Modified Mathlib/Analysis/SpecialFunctions/Gamma/Basic.lean Modified Mathlib/Analysis/Subadditive.lean Modified Mathlib/CategoryTheory/ComposableArrows.lean Modified Mathlib/CategoryTheory/Sites/Sheaf.lean Modified Mathlib/Computability/AkraBazzi/GrowsPolynomially.lean Modified Mathlib/Computability/TuringMachine.lean Modified Mathlib/Data/Fin/Basic.lean Modified Mathlib/Data/Fin/VecNotation.lean Modified Mathlib/Data/List/Cycle.lean Modified Mathlib/Data/Nat/Hyperoperation.lean Modified Mathlib/Data/Nat/Totient.lean Modified Mathlib/Data/Num/Lemmas.lean Modified Mathlib/Data/PNat/Factors.lean Modified Mathlib/Data/Seq/Computation.lean Modified Mathlib/Data/Set/Enumerate.lean Modified Mathlib/Data/Set/MemPartition.lean Modified Mathlib/Data/Set/Pointwise/Finite.lean Modified Mathlib/Data/Vector/Basic.lean Modified Mathlib/Data/ZMod/Basic.lean Modified Mathlib/FieldTheory/PerfectClosure.lean Modified Mathlib/GroupTheory/FiniteAbelian.lean Modified Mathlib/GroupTheory/Nilpotent.lean Modified Mathlib/GroupTheory/Perm/Closure.lean Modified Mathlib/GroupTheory/Perm/Cycle/Concrete.lean Modified Mathlib/GroupTheory/Perm/Cycle/Factors.lean Modified Mathlib/LinearAlgebra/Eigenspace/Zero.lean Modified Mathlib/LinearAlgebra/Matrix/Transvection.lean Modified Mathlib/MeasureTheory/Covering/Besicovitch.lean Modified Mathlib/MeasureTheory/Function/SimpleFunc.lean Modified Mathlib/MeasureTheory/Group/Arithmetic.lean Modified Mathlib/MeasureTheory/Group/Measure.lean Modified Mathlib/MeasureTheory/Integral/Pi.lean Modified Mathlib/MeasureTheory/MeasurableSpace/CountablyGenerated.lean Modified Mathlib/ModelTheory/Semantics.lean Modified Mathlib/NumberTheory/Cyclotomic/Rat.lean Modified Mathlib/NumberTheory/DiophantineApproximation.lean Modified Mathlib/NumberTheory/LSeries/Deriv.lean Modified Mathlib/NumberTheory/LSeries/Linearity.lean Modified Mathlib/NumberTheory/Multiplicity.lean Modified Mathlib/NumberTheory/Pell.lean Modified Mathlib/Order/Interval/Finset/Nat.lean Modified Mathlib/Order/RelSeries.lean Modified Mathlib/Order/SuccPred/Basic.lean Modified Mathlib/Order/SuccPred/LinearLocallyFinite.lean Modified Mathlib/Probability/Martingale/Convergence.lean Modified Mathlib/Probability/Martingale/Upcrossing.lean Modified Mathlib/RingTheory/AdicCompletion/Basic.lean Modified Mathlib/RingTheory/Binomial.lean Modified Mathlib/RingTheory/GradedAlgebra/HomogeneousLocalization.lean Modified Mathlib/RingTheory/HahnSeries/Summable.lean Modified Mathlib/RingTheory/Henselian.lean Modified Mathlib/RingTheory/Polynomial/Pochhammer.lean Modified Mathlib/RingTheory/PowerSeries/Basic.lean Modified Mathlib/RingTheory/WittVector/FrobeniusFractionField.lean Modified Mathlib/RingTheory/WittVector/Identities.lean Modified Mathlib/RingTheory/WittVector/IsPoly.lean Modified Mathlib/RingTheory/WittVector/StructurePolynomial.lean Modified Mathlib/RingTheory/WittVector/Verschiebung.lean Modified Mathlib/SetTheory/Surreal/Dyadic.lean Modified Mathlib/Tactic/Attr/Core.lean Modified Mathlib/Topology/MetricSpace/Closeds.lean 2024-08-16 00:11:45 44df4ba feat: add some convenience lemmas for `spectrum` and `inv` (#15855) ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/Spectrum.lean + theorem spectrum.inv₀_mem_iff + theorem spectrum.inv₀_mem_inv_iff 2024-08-16 00:11:44 b3b0e2d chore: better failures for `linear_combination` (#15791) The implementation of `linear_combination` is as a macro performing effectively `refine ******; ring`. If the term provided to `refine` fails to elaborate, Lean inserts sorries where needed and then continues on to `ring`. This produces a confusing error message. For example, the problem ```lean example (x y : ℤ) (h1 : x * y + 2 * x = 1) (h2 : x = y) : x * y + 2 * x = 1 := by linear_combination h1 + (0 : ℝ) * h2 ``` produces both the "true" error message ``` application type mismatch Mathlib.Tactic.LinearCombination.c_mul_pf h2 0 argument 0 has type ℝ : Type but is expected to have type ℤ : Type ``` and the "tactic is confused because it persevered when it shouldn't have" error message ``` ring failed, ring expressions not equal x y : ℤ h1 : x * y + 2 * x = 1 h2 : x = y ⊢ -(x * sorryAx ℤ true) + y * sorryAx ℤ true = 0 ``` This PR fixes this by strategically inserting a `Term.withoutErrToSorry`. In examples such as the above, it now stops after the `refine`, so the second error message does not appear. ESTIMATED CHANGES Modified Mathlib/Tactic/LinearCombination.lean Modified test/linear_combination.lean 2024-08-15 23:53:44 7a3e697 feat: remove `lint-style.sh` (#15051) In detail, this PR - moves the executable bit check into the .yml files, instead of the shell script - adds a `--fix` flag to `lint-style`, for fixing style errors (when possible) - moves calling `lint-style.py` into `lake exe lint-style`, and - switches the CI workflow to call `lake exe lint-style` instead, and removes `lint-style.sh` Ideally, `lint-style.py` will be completely rewritten in Lean soon, so this calling of an external process is only temporary. Helps with #14539. ESTIMATED CHANGES Modified .github/workflows/bors.yml Modified .github/workflows/build.yml Modified .github/workflows/build.yml.in Modified .github/workflows/build_fork.yml Modified .github/workflows/lint_and_suggest_pr.yml Modified Mathlib/Tactic/Linter/TextBased.lean +/- def lintModules Modified scripts/lint-style.lean Deleted scripts/lint-style.sh Modified scripts/print-style-errors.sh 2024-08-15 22:11:06 c98ad2f feat(Combinatorics/SimpleGraph): Define diameter of simple graphs and provide basic lemmas related to it (#12058) This defines the diameter of a simple graph, and provides a basic API for it. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Combinatorics/SimpleGraph/Diam.lean + theorem SimpleGraph.diam_anti_of_ediam_ne_top + theorem SimpleGraph.diam_bot + theorem SimpleGraph.diam_def + theorem SimpleGraph.diam_eq_one + theorem SimpleGraph.diam_eq_zero + theorem SimpleGraph.diam_eq_zero_of_ediam_eq_top + theorem SimpleGraph.diam_eq_zero_of_not_connected + theorem SimpleGraph.diam_top + theorem SimpleGraph.dist_le_diam + theorem SimpleGraph.ediam_anti + theorem SimpleGraph.ediam_bot + theorem SimpleGraph.ediam_def + theorem SimpleGraph.ediam_eq_one + theorem SimpleGraph.ediam_eq_top + theorem SimpleGraph.ediam_eq_top_of_not_connected + theorem SimpleGraph.ediam_eq_top_of_not_preconnected + theorem SimpleGraph.ediam_eq_zero_iff_subsingleton + theorem SimpleGraph.ediam_eq_zero_of_subsingleton + theorem SimpleGraph.ediam_le_iff + theorem SimpleGraph.ediam_le_of_edist_le + theorem SimpleGraph.ediam_ne_top_of_diam_ne_zero + theorem SimpleGraph.ediam_ne_zero + theorem SimpleGraph.ediam_ne_zero_iff_nontrivial + theorem SimpleGraph.ediam_top + theorem SimpleGraph.edist_le_ediam + theorem SimpleGraph.exists_dist_eq_diam + theorem SimpleGraph.exists_edist_eq_ediam_of_finite + theorem SimpleGraph.exists_edist_eq_ediam_of_ne_top + theorem SimpleGraph.nontrivial_of_diam_ne_zero + theorem SimpleGraph.nontrivial_of_ediam_ne_zero + theorem SimpleGraph.subsingleton_of_ediam_eq_zero Modified Mathlib/Data/ENat/Lattice.lean + theorem ENat.exists_eq_iSup_of_lt_top + theorem ENat.exists_eq_iSup₂_of_lt_top Modified Mathlib/Order/ConditionallyCompleteLattice/Finset.lean + theorem exists_eq_ciInf_of_finite + theorem exists_eq_ciSup_of_finite 2024-08-15 19:17:44 b73e0ac feat(CategoryTheory/Category/RelCat): Make `rel_iso_iff` universe polymorphic. (#15854) Make `rel_iso_iff` universe polymorphic by changing `C := Type` to `C := Type u`. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Category/RelCat.lean 2024-08-15 19:17:43 14cabf6 CI: add deprecated files to tech debts counters (#15853) Adds information about the `Deprecated` folder to the technical debt report. [Asked on Zulip](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/Technical.20Debt.20Counters/near/462615354) ESTIMATED CHANGES Modified scripts/technical-debt-metrics.sh 2024-08-15 18:22:13 a2c3bef fix: silence `aesop` in `cfc_cont_tac` (#15847) If `aesop` fails to discharge a goal in one branch of `fun_prop`, as implemened in `cfc_cont_tac`, it can emit a warning saying it failed to close the goal. If `fun_prop (disch := aesop)` then *succeeds* in a later branch of the same call, then the proof succeeds, but the warning is still emitted, causing the file to be noisy. Even worse, because this is called as an `autoParam`, there is no syntax in the file on which to emit the warning, so it just gets emitted at the top of the file. This changes the configuration of `aesop` to `warnOnNonterminal := false` when used in `cfc_cont_tac`. Note: this won't affect debugging or proof writing, because in that case the user will need to disable the use of the `autoParam` anyway by writing their own terms (or `fun_prop` calls). ESTIMATED CHANGES Modified Mathlib/Tactic/ContinuousFunctionalCalculus.lean 2024-08-15 17:44:48 5b6785c chore: fix a few typos in docstrings (#15834) ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/Subalgebra/Basic.lean Modified Mathlib/AlgebraicGeometry/ProjectiveSpectrum/Scheme.lean Modified Mathlib/AlgebraicTopology/SingularSet.lean Modified Mathlib/Topology/Algebra/Nonarchimedean/Bases.lean 2024-08-15 17:24:11 25706a5 feat: Compute derivative of `fun x ↦ f (a - x)` (#15828) ... and similar. Also generalise existing lemmas to not require differentiability assumptions. ESTIMATED CHANGES Modified Mathlib/Analysis/Calculus/Deriv/Add.lean + theorem differentiableAt_comp_add_const + theorem differentiableAt_comp_const_add + theorem differentiableAt_comp_const_sub + theorem differentiableAt_comp_neg - theorem differentiableAt_comp_neg_iff + theorem differentiableAt_comp_sub_const + theorem differentiableAt_iff_comp_add_const + theorem differentiableAt_iff_comp_const_add + theorem differentiableAt_iff_comp_const_sub + theorem differentiableAt_iff_comp_neg + theorem differentiableAt_iff_comp_sub_const Modified Mathlib/Analysis/Calculus/Deriv/Shift.lean +/- theorem HasDerivAt.comp_add_const +/- theorem HasDerivAt.comp_const_add + theorem HasDerivAt.comp_const_sub + theorem HasDerivAt.comp_sub_const +/- theorem deriv_comp_add_const +/- theorem deriv_comp_const_add + theorem deriv_comp_const_sub +/- theorem deriv_comp_neg + theorem deriv_comp_sub_const Modified Mathlib/NumberTheory/Harmonic/GammaDeriv.lean 2024-08-15 17:24:10 6572a1f feat(RelSeries): eraseLast_last_rel_last (#15386) from the Carleson project ESTIMATED CHANGES Modified Mathlib/Order/RelSeries.lean + theorem LTSeries.head_le_last + theorem RelSeries.eraseLast_last_rel_last 2024-08-15 16:43:06 28a935c chore(Algebra/Ring/Semireal/Defs): relax `IsSemireal` typeclass constraint (#15844) Typeclass constraint on instance of `IsSemireal` relaxed from `LinearOrderedField` to `LinearOrderedRing`. This instance requires `LinearOrderedSemiring` and well as negation, so this is now the most general instance possible. ESTIMATED CHANGES Modified Mathlib/Algebra/Ring/Semireal/Defs.lean 2024-08-15 15:27:03 8e91009 chore: Fix statement of `eq_iff_not_lt_of_le` (#15829) The statement said `(a ≤ b → b = a) ↔ ¬a < b` instead of the intended `a ≤ b → (b = a ↔ ¬a < b)`. While both are true, the latter is the more useful one. Also pull out a `PartialOrder` section. ESTIMATED CHANGES Modified Mathlib/Order/Basic.lean +/- theorem Ne.le_iff_lt +/- theorem Ne.not_le_or_not_le +/- theorem eq_iff_le_not_lt +/- theorem eq_iff_not_lt_of_le +/- theorem eq_of_ge_of_not_gt +/- theorem eq_of_le_of_not_lt +/- theorem eq_or_gt_of_le +/- theorem eq_or_lt_of_le +/- theorem gt_or_eq_of_le +/- theorem le_iff_eq_or_lt +/- theorem lt_iff_le_and_ne +/- theorem ne_iff_lt_iff_le 2024-08-15 15:27:02 7307bae chore: create Mathlib.Init (#15811) This PR creates the `Mathlib.Init` file. This file is intended to be imported by virtually all `Mathlib` files. This PR also imports `Mathlib.Init` in all `Mathlib` files that import no `Mathlib` file. In the long run, some very basic files, some tactics and some linters will be imported in `Mathlib.Init`, so that the commands defined there would be available as widely as possible in `Mathlib`. There is also the file `scripts/init_creation.sh` that contains the instructions to regenerate the `Mathlib/Init.lean` file. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/HierarchyDesign.lean Modified Mathlib/CategoryTheory/Category/Init.lean Modified Mathlib/CategoryTheory/ConcreteCategory/Bundled.lean Modified Mathlib/Combinatorics/SimpleGraph/Init.lean Modified Mathlib/Control/Combinators.lean Modified Mathlib/Control/ULift.lean Modified Mathlib/Data/Array/Defs.lean Modified Mathlib/Data/Array/ExtractLemmas.lean Modified Mathlib/Data/ByteArray.lean Modified Mathlib/Data/Finset/Attr.lean Modified Mathlib/Data/Int/Align.lean Modified Mathlib/Data/Int/Notation.lean Modified Mathlib/Data/List/Monad.lean Modified Mathlib/Data/MLList/Dedup.lean Modified Mathlib/Data/MLList/IO.lean Modified Mathlib/Data/Matroid/Init.lean Modified Mathlib/Data/Nat/Notation.lean Modified Mathlib/Data/Ordering/Basic.lean Modified Mathlib/Data/String/Defs.lean Modified Mathlib/Data/Sym/Sym2/Init.lean Modified Mathlib/Deprecated/Aliases.lean Modified Mathlib/Deprecated/HashMap.lean Added Mathlib/Init.lean Modified Mathlib/Init/Data/Quot.lean Modified Mathlib/Init/Quot.lean Modified Mathlib/Init/Set.lean Modified Mathlib/Lean/Elab/Term.lean Modified Mathlib/Lean/EnvExtension.lean Modified Mathlib/Lean/Exception.lean Modified Mathlib/Lean/Expr/Basic.lean Modified Mathlib/Lean/GoalsLocation.lean Modified Mathlib/Lean/Json.lean Modified Mathlib/Lean/LocalContext.lean Modified Mathlib/Lean/Message.lean Modified Mathlib/Lean/Meta.lean Modified Mathlib/Lean/Meta/Basic.lean Modified Mathlib/Lean/Meta/DiscrTree.lean Modified Mathlib/Lean/Meta/KAbstractPositions.lean Modified Mathlib/Lean/Meta/Simp.lean Modified Mathlib/Lean/Name.lean Modified Mathlib/Lean/PrettyPrinter/Delaborator.lean Modified Mathlib/Lean/Thunk.lean Modified Mathlib/Tactic/AdaptationNote.lean Modified Mathlib/Tactic/ApplyWith.lean Modified Mathlib/Tactic/ArithMult/Init.lean Modified Mathlib/Tactic/Attr/Register.lean Modified Mathlib/Tactic/Bound/Init.lean Modified Mathlib/Tactic/CasesM.lean Modified Mathlib/Tactic/Change.lean Modified Mathlib/Tactic/Check.lean Modified Mathlib/Tactic/Clean.lean Modified Mathlib/Tactic/ClearExcept.lean Modified Mathlib/Tactic/ClearExclamation.lean Modified Mathlib/Tactic/Clear_.lean Modified Mathlib/Tactic/Coe.lean Modified Mathlib/Tactic/Constructor.lean Modified Mathlib/Tactic/Continuity/Init.lean Modified Mathlib/Tactic/Conv.lean Modified Mathlib/Tactic/Eqns.lean Modified Mathlib/Tactic/Eval.lean Modified Mathlib/Tactic/ExistsI.lean Modified Mathlib/Tactic/Explode/Datatypes.lean Modified Mathlib/Tactic/ExtendDoc.lean Modified Mathlib/Tactic/ExtractGoal.lean Modified Mathlib/Tactic/FailIfNoProgress.lean Modified Mathlib/Tactic/Find.lean Modified Mathlib/Tactic/FunProp/Decl.lean Modified Mathlib/Tactic/FunProp/StateList.lean Modified Mathlib/Tactic/FunProp/ToBatteries.lean Modified Mathlib/Tactic/GCongr/ForwardAttr.lean Modified Mathlib/Tactic/Generalize.lean Modified Mathlib/Tactic/GuardGoalNums.lean Modified Mathlib/Tactic/GuardHypNums.lean Modified Mathlib/Tactic/Have.lean Modified Mathlib/Tactic/HaveI.lean Modified Mathlib/Tactic/HelpCmd.lean Modified Mathlib/Tactic/InferParam.lean Modified Mathlib/Tactic/Lemma.lean Modified Mathlib/Tactic/Linarith/Oracle/SimplexAlgorithm/Datatypes.lean Modified Mathlib/Tactic/Linter/GlobalAttributeIn.lean Modified Mathlib/Tactic/Linter/HashCommandLinter.lean Modified Mathlib/Tactic/Linter/HaveLetLinter.lean Modified Mathlib/Tactic/Linter/Lint.lean Modified Mathlib/Tactic/Linter/OldObtain.lean Modified Mathlib/Tactic/Linter/RefineLinter.lean Modified Mathlib/Tactic/Linter/Style.lean Modified Mathlib/Tactic/Linter/UnusedTactic.lean Modified Mathlib/Tactic/Measurability/Init.lean Modified Mathlib/Tactic/MinImports.lean Modified Mathlib/Tactic/Monotonicity/Attr.lean Modified Mathlib/Tactic/NthRewrite.lean Modified Mathlib/Tactic/Observe.lean Modified Mathlib/Tactic/PPWithUniv.lean Modified Mathlib/Tactic/ProjectionNotation.lean Modified Mathlib/Tactic/Recall.lean Modified Mathlib/Tactic/Recover.lean Modified Mathlib/Tactic/ReduceModChar/Ext.lean Modified Mathlib/Tactic/Relation/Rfl.lean Modified Mathlib/Tactic/Relation/Symm.lean Modified Mathlib/Tactic/Rename.lean Modified Mathlib/Tactic/Says.lean Modified Mathlib/Tactic/Set.lean Modified Mathlib/Tactic/SetLike.lean Modified Mathlib/Tactic/SimpIntro.lean Modified Mathlib/Tactic/SimpRw.lean Modified Mathlib/Tactic/Simps/NotationClass.lean Modified Mathlib/Tactic/Spread.lean Modified Mathlib/Tactic/Substs.lean Modified Mathlib/Tactic/SuccessIfFailWithMsg.lean Modified Mathlib/Tactic/SudoSetOption.lean Modified Mathlib/Tactic/SuppressCompilation.lean Modified Mathlib/Tactic/Trace.lean Modified Mathlib/Tactic/TryThis.lean Modified Mathlib/Tactic/TypeCheck.lean Modified Mathlib/Tactic/TypeStar.lean Modified Mathlib/Tactic/UnsetOption.lean Modified Mathlib/Tactic/Use.lean Modified Mathlib/Tactic/Variable.lean Modified Mathlib/Tactic/Widget/SelectInsertParamsClass.lean Modified Mathlib/Topology/Sheaves/Init.lean Modified Mathlib/Util/AddRelatedDecl.lean Modified Mathlib/Util/AssertExists.lean Modified Mathlib/Util/AssertNoSorry.lean Modified Mathlib/Util/AtomM.lean Modified Mathlib/Util/CompileInductive.lean Modified Mathlib/Util/CountHeartbeats.lean Modified Mathlib/Util/Delaborators.lean Modified Mathlib/Util/DischargerAsTactic.lean Modified Mathlib/Util/Export.lean Modified Mathlib/Util/GetAllModules.lean Modified Mathlib/Util/IncludeStr.lean Modified Mathlib/Util/MemoFix.lean Modified Mathlib/Util/Qq.lean Modified Mathlib/Util/SleepHeartbeats.lean Modified Mathlib/Util/Superscript.lean Modified Mathlib/Util/SynthesizeUsing.lean Modified Mathlib/Util/Tactic.lean Modified Mathlib/Util/TermBeta.lean Modified Mathlib/Util/Time.lean Modified Mathlib/Util/WhatsNew.lean Modified Mathlib/Util/WithWeakNamespace.lean Added scripts/init_creation.sh Modified scripts/nolints-style.txt Modified scripts/noshake.json Modified scripts/style-exceptions.txt 2024-08-15 15:27:00 2d973ca chore: add docstrings to some tactic items (#15751) Remove a couple of nolint entries. The `cases'` docstring has essentially been copied from the module docstring; the other entries are new. ESTIMATED CHANGES Modified Mathlib/Tactic/Basic.lean Modified Mathlib/Tactic/Cases.lean Modified Mathlib/Tactic/Rename.lean Modified scripts/nolints.json 2024-08-15 15:26:59 17196af feat: symmetric monoidal structure on graded objects (#7389) In this PR, we construct the braiding for the monoidal structure on graded objects (#14457). We show it is symmetric if the original category is symmetric. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/CategoryTheory/GradedObject/Bifunctor.lean Added Mathlib/CategoryTheory/GradedObject/Braiding.lean + theorem CategoryTheory.GradedObject.Monoidal.braiding_naturality_left + theorem CategoryTheory.GradedObject.Monoidal.braiding_naturality_right + theorem CategoryTheory.GradedObject.Monoidal.hexagon_forward + theorem CategoryTheory.GradedObject.Monoidal.hexagon_reverse + theorem CategoryTheory.GradedObject.Monoidal.symmetry 2024-08-15 14:22:42 318082b fix: remove check for `olean`s in `assert_not_imported` (#15839) See [Zulip](https://leanprover.zulipchat.com/#narrow/stream/217875-Is-there-code-for-X.3F/topic/assert_not_imported) for a discussion of the issues arising from looking for `olean`s, rather than `lean`s. As a test, this PR also incorporates some uses of `assert_not_imported` to verify that CI and `!bench` work! ESTIMATED CHANGES Modified Mathlib/Algebra/BigOperators/Group/List.lean Modified Mathlib/Algebra/Field/Defs.lean Modified Mathlib/Data/List/Chain.lean Modified Mathlib/Data/List/GetD.lean Modified Mathlib/Util/AssertExists.lean Modified test/AssertExists.lean 2024-08-15 14:22:40 6ac635f feat: Add partialSups lemmas (#15291) ESTIMATED CHANGES Modified Mathlib/MeasureTheory/SetSemiring.lean + theorem MeasureTheory.IsSetRing.disjointed_mem + theorem MeasureTheory.IsSetRing.partialSups_mem Modified Mathlib/Order/PartialSups.lean +/- theorem partialSups_eq_biSup + theorem partialSups_eq_biUnion_range + theorem partialSups_eq_sUnion_image + theorem partialSups_monotone 2024-08-15 14:22:39 665c7ae feat(MeasureTheory): method of exhaustion (#14471) If `μ, ν` are two measures with `ν` s-finite, then there exists a set `s` such that `μ` is sigma-finite on `s`, and for all sets `t ⊆ sᶜ`, either `ν t = 0` or `μ t = ∞`. The technique used to obtain this result is what Halmos calls the "method of exhaustion". We use this to prove that if `μ ≪ ν` and `ν` is s-finite, then `μ` is s-finite. This PR also moves the definition of `sigmaFiniteSet` to the new file and refactors it with the new definition `sigmaFiniteSetWRT`. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/MeasureTheory/Decomposition/Exhaustion.lean + def MeasureTheory.Measure.sigmaFiniteSet + def MeasureTheory.Measure.sigmaFiniteSetGE + def MeasureTheory.Measure.sigmaFiniteSetWRT' + def MeasureTheory.Measure.sigmaFiniteSetWRT + theorem MeasureTheory.exists_isSigmaFiniteSet_measure_ge + theorem MeasureTheory.measurableSet_sigmaFiniteSet + theorem MeasureTheory.measurableSet_sigmaFiniteSetGE + theorem MeasureTheory.measurableSet_sigmaFiniteSetWRT' + theorem MeasureTheory.measurableSet_sigmaFiniteSetWRT + theorem MeasureTheory.measure_compl_sigmaFiniteSet + theorem MeasureTheory.measure_compl_sigmaFiniteSetWRT + theorem MeasureTheory.measure_compl_sigmaFiniteSet_eq_zero_iff_sigmaFinite + theorem MeasureTheory.measure_eq_top_of_subset_compl_sigmaFiniteSetWRT' + theorem MeasureTheory.measure_eq_top_of_subset_compl_sigmaFiniteSetWRT'_of_measurableSet + theorem MeasureTheory.measure_eq_top_of_subset_compl_sigmaFiniteSetWRT + theorem MeasureTheory.measure_eq_zero_or_top_of_subset_compl_sigmaFiniteSet + theorem MeasureTheory.measure_sigmaFiniteSetGE_ge + theorem MeasureTheory.measure_sigmaFiniteSetGE_le + theorem MeasureTheory.measure_sigmaFiniteSetWRT' + theorem MeasureTheory.restrict_compl_sigmaFiniteSetWRT + theorem MeasureTheory.restrict_compl_sigmaFiniteSet_eq_zero_or_top + theorem MeasureTheory.sigmaFinite_of_measure_compl_sigmaFiniteSet_eq_zero + theorem MeasureTheory.sigmaFinite_restrict_sigmaFiniteSetGE + theorem MeasureTheory.sigmaFinite_restrict_sigmaFiniteSetWRT' + theorem MeasureTheory.tendsto_measure_sigmaFiniteSetGE Modified Mathlib/MeasureTheory/Measure/Typeclasses.lean Modified Mathlib/MeasureTheory/Measure/WithDensity.lean + theorem MeasureTheory.sFinite_of_absolutelyContinuous Modified Mathlib/MeasureTheory/Measure/WithDensityFinite.lean - def MeasureTheory.Measure.sigmaFiniteSet - theorem MeasureTheory.measurableSet_sigmaFiniteSet - theorem MeasureTheory.measure_compl_sigmaFiniteSet - theorem MeasureTheory.measure_compl_sigmaFiniteSet_eq_zero_iff_sigmaFinite - theorem MeasureTheory.measure_eq_zero_or_top_of_subset_compl_sigmaFiniteSet - theorem MeasureTheory.restrict_compl_sigmaFiniteSet_eq_zero_or_top - theorem MeasureTheory.sigmaFinite_of_measure_compl_sigmaFiniteSet_eq_zero - theorem MeasureTheory.toFinite_withDensity_restrict_sigmaFiniteSet 2024-08-15 13:31:07 277c23c chore: `LinearOrderedSemiring α → LinearOrderedCancelAddCommMonoid α` (#15814) This was accidentally about `LinearOrderedCommSemiring`, probably due to confusion over which operation the `Comm` in the name refers to. ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Ring/Defs.lean 2024-08-15 12:19:31 3e38319 fix(lint-style.py): do not barf on new copyright exceptions (#15833) ESTIMATED CHANGES Modified scripts/lint-style.py 2024-08-15 12:19:30 74ee7bb chore: Deprecate `Real.mul_pos` (#15830) This is a special of the more general `mul_pos` ESTIMATED CHANGES Modified Mathlib/Analysis/MeanInequalities.lean Modified Mathlib/Analysis/SpecialFunctions/Log/ENNRealLog.lean Modified Mathlib/Data/Real/Basic.lean Modified Mathlib/MeasureTheory/Measure/LevyProkhorovMetric.lean 2024-08-15 12:19:29 006e993 chore(scripts/macos_install.sh): avoid using `brew` completely (#15276) This script is intended as a single step for a beginner user to get started with Lean. As such, we should avoid third-party packages from package managers whose provenance can be dubious. We should also avoid requiring the user to install a lot of software. We have already removed homebrew from the `elan` install. This PR removes it from the VS Code step as well, avoiding the dependency on `brew` completely. We download from the official Microsoft site instead. ESTIMATED CHANGES Modified scripts/install_macos.sh 2024-08-15 12:19:28 ebc084f chore: cleanup in Mathlib/Init/* (#15188) This moves some content out of `Init`, deprecates some material that was ported from Lean 3 but is used nowhere, and removes some attributes and instances which are duplicated from Lean or Batteries. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/GroupWithZero/Semiconj.lean Modified Mathlib/Analysis/Asymptotics/Asymptotics.lean Modified Mathlib/Data/Fin/Basic.lean Modified Mathlib/Data/Fintype/Basic.lean Modified Mathlib/Data/List/Basic.lean + theorem List.le_eq_not_gt Modified Mathlib/Data/List/Defs.lean + def List.getLastI + def List.headI + theorem List.headI_cons + theorem List.headI_nil Modified Mathlib/Data/List/GetD.lean Modified Mathlib/Data/List/Intervals.lean Renamed Mathlib/Init/Data/List/Instances.lean to Mathlib/Data/List/Monad.lean Modified Mathlib/Data/Nat/Bits.lean Modified Mathlib/Data/Nat/Choose/Multinomial.lean Modified Mathlib/Data/Nat/Digits.lean Modified Mathlib/Data/Prod/Basic.lean + def Prod.mk.injArrow Modified Mathlib/Data/Prod/PProd.lean + def PProd.mk.injArrow Modified Mathlib/Data/Sigma/Basic.lean Modified Mathlib/Data/Stream/Init.lean Added Mathlib/Deprecated/Combinator.lean + def Combinator.I + def Combinator.K + def Combinator.S Modified Mathlib/FieldTheory/KummerExtension.lean Deleted Mathlib/Init/Classical.lean - theorem Classical.cases - theorem Classical.cases_on - theorem Classical.cases_true_false - theorem Classical.eq_false_or_eq_true Deleted Mathlib/Init/Core.lean - def Combinator.I - def Combinator.K - def Combinator.S - def PProd.mk.injArrow - def Prod.mk.injArrow Modified Mathlib/Init/Data/Int/Order.lean - theorem Int.mul_neg_eq_neg_mul_symm - theorem Int.neg_mul_eq_neg_mul_symm Deleted Mathlib/Init/Data/List/Basic.lean - def List.getLastI - def List.headI - theorem List.headI_cons - theorem List.headI_nil - theorem List.le_eq_not_gt Modified Mathlib/Init/Data/Nat/Lemmas.lean +/- theorem Nat.eq_zero_of_mul_eq_zero Deleted Mathlib/Init/Data/Sigma/Basic.lean - theorem ex_of_psig Deleted Mathlib/Init/Data/Sigma/Lex.lean - theorem PSigma.lex_wf - theorem PSigma.revLex_wf - theorem PSigma.skipLeft_wf Modified Mathlib/Init/Logic.lean Modified Mathlib/Init/Quot.lean Modified Mathlib/LinearAlgebra/AffineSpace/FiniteDimensional.lean Modified Mathlib/Logic/Basic.lean + theorem Classical.cases + theorem Classical.cases_on + theorem Classical.cases_true_false + theorem Classical.eq_false_or_eq_true Modified Mathlib/Logic/Equiv/Basic.lean Modified Mathlib/NumberTheory/Cyclotomic/Basic.lean Modified Mathlib/NumberTheory/Pell.lean Modified Mathlib/Order/Fin/Basic.lean Modified Mathlib/Order/RelClasses.lean + theorem WellFounded.psigma_lex + theorem WellFounded.psigma_revLex + theorem WellFounded.psigma_skipLeft Modified Mathlib/Order/WellFoundedSet.lean Modified Mathlib/SetTheory/Cardinal/SchroederBernstein.lean Modified Mathlib/SetTheory/Ordinal/Notation.lean Modified Mathlib/Tactic/Group.lean Modified Mathlib/Testing/SlimCheck/Sampleable.lean Modified test/RewriteSearch/Polynomial.lean 2024-08-15 11:25:40 75cc36e chore: Golf `prod_involution` (#15832) ... and extract `prod_ite_zero` from the proof of `prod_boole` ESTIMATED CHANGES Modified Mathlib/Algebra/BigOperators/Group/Finset.lean +/- theorem Finset.prod_involution + theorem Finset.prod_ninvolution Modified Mathlib/Algebra/BigOperators/GroupWithZero/Finset.lean + theorem Finset.prod_ite_zero + theorem Fintype.prod_ite_zero 2024-08-15 10:50:26 e024d5c chore: do not set release-ci label upon failed PR test (#15775) with https://github.com/leanprover/lean4/pull/5022 the need for this should have disappeared ESTIMATED CHANGES Modified scripts/lean-pr-testing-comments.sh 2024-08-15 09:43:33 4154233 feat(CategoryTheory): `IsIso.comp_isIso` with explicit arguments (#15678) Often when one wants to prove that a composition is an isomorphism, one proves that each component is. The instance `IsIso.comp_isIso` can be annoying to because of its instance arguments, this PR adds a lemma `IsIso.comp_isIso'` which is exactly the same as the instance, but with explicit arguments. This avoids having to guess the correct number of underscores in `@IsIso.comp_isIso` or doing `apply ( config := { allowSynthFailures := true } ) IsIso.comp_isIso` ESTIMATED CHANGES Modified Mathlib/AlgebraicGeometry/AffineScheme.lean Modified Mathlib/AlgebraicGeometry/Morphisms/Affine.lean Modified Mathlib/AlgebraicGeometry/Spec.lean Modified Mathlib/CategoryTheory/Iso.lean + theorem CategoryTheory.IsIso.comp_isIso' Modified Mathlib/CategoryTheory/Sites/Plus.lean Modified Mathlib/CategoryTheory/Sites/Preserves.lean Modified Mathlib/Geometry/RingedSpace/OpenImmersion.lean 2024-08-15 09:43:32 c66e20e feat: add NNReal.isOpen_Ico_zero (#15295) Similar to the lemma `ENNReal.isOpen_Ico_zero` already in Mathlib. ESTIMATED CHANGES Modified Mathlib/Topology/Instances/NNReal.lean + theorem NNReal.isOpen_Ico_zero 2024-08-15 09:43:31 d49e552 feat: Add `IsCaratheodory` lemmas (#15265) Add `isCaratheodory_diff`, `isCaratheodory_partialSups` and `isCaratheodory_disjointed`. Generalize `isCaratheodory_iUnion_nat`. ESTIMATED CHANGES Modified Mathlib/MeasureTheory/OuterMeasure/Caratheodory.lean + theorem MeasureTheory.OuterMeasure.isCaratheodory_diff + theorem MeasureTheory.OuterMeasure.isCaratheodory_disjointed + theorem MeasureTheory.OuterMeasure.isCaratheodory_iUnion - theorem MeasureTheory.OuterMeasure.isCaratheodory_iUnion_nat + theorem MeasureTheory.OuterMeasure.isCaratheodory_iUnion_of_disjoint + theorem MeasureTheory.OuterMeasure.isCaratheodory_partialSups 2024-08-15 08:47:54 b664cf6 Fix typo of author name (#15818) ESTIMATED CHANGES Modified Mathlib/RingTheory/Radical.lean 2024-08-15 08:47:53 c0aa462 feat(mk_all): import Batteries in Mathlib.lean (#15810) Add a special case for Mathlib to add `import Batteries` to `Mathlib.lean` ESTIMATED CHANGES Modified Mathlib.lean Modified scripts/lint-style.lean Modified scripts/mk_all.lean 2024-08-15 08:47:52 7bf7fe1 chore: tidy various files (#15807) ESTIMATED CHANGES Modified Mathlib/Algebra/Category/Grp/EquivalenceGroupAddGroup.lean Modified Mathlib/Algebra/Category/ModuleCat/Abelian.lean Modified Mathlib/Algebra/Group/Semiconj/Defs.lean Modified Mathlib/Algebra/Group/Semiconj/Units.lean Modified Mathlib/Algebra/Module/Defs.lean Modified Mathlib/Algebra/Order/Archimedean/Hom.lean Modified Mathlib/AlgebraicGeometry/PrimeSpectrum/Basic.lean Modified Mathlib/Analysis/InnerProductSpace/Basic.lean +/- theorem InnerProductSpace.Core.inner_smul_ofReal_left +/- theorem InnerProductSpace.Core.inner_smul_ofReal_right Modified Mathlib/Data/Finset/Image.lean +/- theorem Finset.disjoint_range_addLeftEmbedding Modified Mathlib/Data/Int/Interval.lean Modified Mathlib/Geometry/RingedSpace/OpenImmersion.lean Modified Mathlib/GroupTheory/OrderOfElement.lean Modified Mathlib/LinearAlgebra/BilinearForm/Properties.lean Modified Mathlib/LinearAlgebra/QuadraticForm/Basic.lean Modified Mathlib/MeasureTheory/Integral/PeakFunction.lean Modified Mathlib/ModelTheory/PartialEquiv.lean Modified Mathlib/NumberTheory/Padics/PadicNumbers.lean Modified Mathlib/Order/RelIso/Basic.lean Modified Mathlib/RingTheory/MvPolynomial/Symmetric.lean +/- def MvPolynomial.msymm Modified Mathlib/RingTheory/Trace/Basic.lean Modified Mathlib/Topology/Maps/Basic.lean 2024-08-15 08:47:51 58d407b feat: add the `WithCStarModule` type synonym (#15763) It is often the case that we want to construct a `CStarModule` instance on a type that is already endowed with a norm, and it has a different norm which makes it into a `CStarModule`. For this reason, we create a type synonym `WithCStarModule` which is endowed with the requisite `CStarModule` instance. We also introduce the scoped notation `C⋆ᵐᵒᵈ` for this type synonym. The common use cases are, when `A` is a C⋆-algebra: + `A` itself over `A` + `E × F` where `E` and `F` are `CStarModule`s over `A` + `Π i, E i` where `E i` is a `CStarModule` over `A` and `i : ι` with `ι` a `Fintype` + `E` where `E` is an `InnerProductSpace` over `ℂ` The `WithCStarModule` synonym is of vital importance, especially because the `CStarModule` class marks `A` as an `outParam`. Indeed, we want to infer `A` from the type of `E`, but, as with modules, a type `E` can be a `CStarModule` over different C⋆-algebras. For example, note that if `A` is a C⋆-algebra, then so is `A × A`, and therefore we may consider both `A` and `A × A` as `CStarModule`s over themselves, respectively. However, we may *also* consider `A × A` as a `CStarModule` over `A`. However, by utilizing the type synonym, these actually correspond to *different types*, namely: + `A` as a `CStarModule` over `A` corresponds to `C⋆ᵐᵒᵈ A` + `A × A` as a `CStarModule` over `A × A` corresponds to `C⋆ᵐᵒᵈ (A × A)` + `A × A` as a `CStarModule` over `A` corresponds to `C⋆ᵐᵒᵈ (C⋆ᵐᵒᵈ A × C⋆ᵐᵒᵈ A)` ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Analysis/CStarAlgebra/Module/Defs.lean - theorem CStarModule.inner_self_eq_norm_sq Added Mathlib/Analysis/CStarAlgebra/Module/Synonym.lean + theorem WithCStarModule.add_apply + theorem WithCStarModule.add_fst + theorem WithCStarModule.add_snd + def WithCStarModule.equiv + theorem WithCStarModule.equiv_add + theorem WithCStarModule.equiv_fst + theorem WithCStarModule.equiv_neg + theorem WithCStarModule.equiv_pi_apply + theorem WithCStarModule.equiv_smul + theorem WithCStarModule.equiv_snd + theorem WithCStarModule.equiv_sub + theorem WithCStarModule.equiv_symm_add + theorem WithCStarModule.equiv_symm_fst + theorem WithCStarModule.equiv_symm_neg + theorem WithCStarModule.equiv_symm_pi_apply + theorem WithCStarModule.equiv_symm_smul + theorem WithCStarModule.equiv_symm_snd + theorem WithCStarModule.equiv_symm_sub + theorem WithCStarModule.equiv_symm_zero + theorem WithCStarModule.equiv_zero + def WithCStarModule.linearEquiv + theorem WithCStarModule.neg_apply + theorem WithCStarModule.neg_fst + theorem WithCStarModule.neg_snd + theorem WithCStarModule.smul_apply + theorem WithCStarModule.smul_fst + theorem WithCStarModule.smul_snd + theorem WithCStarModule.sub_apply + theorem WithCStarModule.sub_fst + theorem WithCStarModule.sub_snd + def WithCStarModule.uniformEquiv + theorem WithCStarModule.zero_apply + theorem WithCStarModule.zero_fst + theorem WithCStarModule.zero_snd + def WithCStarModule 2024-08-15 08:47:50 e9deae4 chore(SetTheory/Ordinal/FixedPoint): Make sure simp lemma has a reasonable key (#15721) This is the second most called `simp` lemma and never succeeds (see [Zulip](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/Infrastructure.20for.20tracking.20frequently.20applied.20simp.20theorems/near/459926416)]. It's also way too specific to be reasonably useful outside of the file itself. Also did some pretty minor cleanup. ESTIMATED CHANGES Modified Mathlib/SetTheory/Ordinal/FixedPoint.lean +/- theorem Ordinal.sup_iterate_eq_nfp 2024-08-15 07:49:31 9c8aa09 chore: remove a porting note and simplify (#15819) The old proof seems to work again. Also tidies some related proofs. ESTIMATED CHANGES Modified Mathlib/Data/Set/Image.lean Modified Mathlib/Logic/Equiv/Set.lean 2024-08-15 00:43:09 08ecf4c chore(Algebra/Order/Floor): relax LinearOrderedSemiring to OrderedSemiring (#14911) ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Floor.lean 2024-08-14 22:14:17 0458ef8 chore(Data/Nat/Factorial): replace all `induction'` by `induction` (#15757) ESTIMATED CHANGES Modified Mathlib/Data/Nat/Factorial/Basic.lean 2024-08-14 20:11:45 7a75f1d chore: revert #15782 (#15816) This breaks the speedcenter. Let's pull it back until we can get it figured out. ESTIMATED CHANGES Modified Mathlib/Algebra/BigOperators/Group/List.lean Modified Mathlib/Algebra/Field/Defs.lean Modified Mathlib/Data/List/Chain.lean Modified Mathlib/Data/List/GetD.lean 2024-08-14 19:25:54 e6c0872 doc(Tactic): expand `ring` and `ring_nf` docstrings (#15691) Copy some explanations from other comments into the actual `ring_nf` docstring. Add details to `ring` docstring. ESTIMATED CHANGES Modified Mathlib/Tactic/Ring/RingNF.lean 2024-08-14 18:28:24 508aeb0 chore: update Mathlib dependencies 2024-08-14 (#15803) This PR updates the Mathlib dependencies. ESTIMATED CHANGES Modified lake-manifest.json 2024-08-14 16:23:34 6786d49 chore: turn `induction'` into `induction` (#15767) - [x] turn the (soon to be deprecated) `induction'` into `induction` - [x] golf a few proofs ESTIMATED CHANGES Modified Counterexamples/Phillips.lean Modified Mathlib/Algebra/Algebra/Operations.lean Modified Mathlib/Algebra/BigOperators/Fin.lean Modified Mathlib/Algebra/BigOperators/Group/Finset.lean Modified Mathlib/Algebra/ContinuedFractions/Computation/CorrectnessTerminating.lean Modified Mathlib/Algebra/ContinuedFractions/TerminatedStable.lean Modified Mathlib/Algebra/DirectSum/Internal.lean Modified Mathlib/Algebra/DirectSum/Ring.lean Modified Mathlib/Algebra/Group/Basic.lean Modified Mathlib/Algebra/GroupWithZero/Basic.lean Modified Mathlib/Algebra/Lie/Solvable.lean Modified Mathlib/Algebra/MvPolynomial/Funext.lean Modified Mathlib/Algebra/Polynomial/Degree/Definitions.lean Modified Mathlib/Algebra/Polynomial/Derivative.lean Modified Mathlib/Algebra/Polynomial/EraseLead.lean Modified Mathlib/Algebra/Polynomial/Expand.lean Modified Mathlib/Algebra/Polynomial/Induction.lean Modified Mathlib/Algebra/Polynomial/Reverse.lean Modified Mathlib/Algebra/Polynomial/Roots.lean Modified Mathlib/Algebra/Ring/CentroidHom.lean Modified Mathlib/Algebra/Ring/Subsemiring/Basic.lean Modified Mathlib/Algebra/Tropical/Basic.lean Modified Mathlib/Analysis/Analytic/IsolatedZeros.lean Modified Mathlib/Analysis/Asymptotics/Asymptotics.lean Modified Mathlib/Analysis/Calculus/ContDiff/Defs.lean Modified Mathlib/Analysis/Calculus/FDeriv/Analytic.lean Modified Mathlib/Analysis/Calculus/FDeriv/Comp.lean Modified Mathlib/Analysis/Calculus/IteratedDeriv/Defs.lean Modified Mathlib/Analysis/Normed/Algebra/Exponential.lean Modified Mathlib/Analysis/Normed/Group/Basic.lean Modified Mathlib/Analysis/Normed/Operator/Banach.lean Modified Mathlib/Analysis/ODE/PicardLindelof.lean Modified Mathlib/Analysis/PSeries.lean Modified Mathlib/Analysis/SpecialFunctions/ExpDeriv.lean Modified Mathlib/Analysis/SpecialFunctions/Gamma/Basic.lean Modified Mathlib/Analysis/SpecialFunctions/Log/Basic.lean Modified Mathlib/CategoryTheory/Extensive.lean Modified Mathlib/CategoryTheory/Sites/Sheaf.lean Modified Mathlib/Combinatorics/Hindman.lean Modified Mathlib/Computability/Language.lean Modified Mathlib/Computability/Primrec.lean Modified Mathlib/Computability/TMToPartrec.lean Modified Mathlib/Data/Vector/Mem.lean Modified Mathlib/GroupTheory/GroupAction/Ring.lean Modified Mathlib/GroupTheory/Perm/Closure.lean Modified Mathlib/GroupTheory/Perm/Fin.lean Modified Mathlib/GroupTheory/Solvable.lean Modified Mathlib/LinearAlgebra/ExteriorAlgebra/Basic.lean Modified Mathlib/LinearAlgebra/TensorProduct/Basic.lean Modified Mathlib/SetTheory/Surreal/Dyadic.lean Modified Mathlib/Topology/Algebra/Module/Basic.lean Modified Mathlib/Topology/TietzeExtension.lean Modified Mathlib/Topology/UrysohnsLemma.lean 2024-08-14 16:13:54 ebcf89d feat(CategoryTheory): Finality of the forget functor on over and under categories (#15799) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Filtered/Final.lean 2024-08-14 14:16:40 5e8e4a2 doc(Tactic): expand `clear*` docstring (#15731) Add details and example to `clear*` docstring. ESTIMATED CHANGES Modified Mathlib/Tactic/ClearExcept.lean 2024-08-14 14:16:39 cc30a7e chore: protect Measure.add_sub_cancel (#15707) ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Function/Jacobian.lean Modified Mathlib/MeasureTheory/Measure/Sub.lean - theorem MeasureTheory.Measure.add_sub_cancel 2024-08-14 14:06:30 f494f96 feat(ModelTheory/FinitelyGenerated): only countably many morphisms from a cg structure to a countable one (#11177) Prove that there are only countably many morphisms from a countably generated structure, to a countable one. ESTIMATED CHANGES Modified Mathlib/ModelTheory/FinitelyGenerated.lean + theorem FirstOrder.Language.Structure.FG.countable_embedding + theorem FirstOrder.Language.Structure.FG.countable_hom + theorem FirstOrder.Language.Structure.cg_of_countable + theorem FirstOrder.Language.Substructure.cg_of_countable + theorem FirstOrder.Language.Substructure.countable_fg_substructures_of_countable Modified Mathlib/ModelTheory/PartialEquiv.lean + theorem FirstOrder.Language.DirectLimit.cod_partialEquivLimit + theorem FirstOrder.Language.DirectLimit.dom_partialEquivLimit + theorem FirstOrder.Language.DirectLimit.le_partialEquivLimit + theorem FirstOrder.Language.DirectLimit.partialEquivLimit_comp_inclusion + def FirstOrder.Language.FGEquiv.symm + def FirstOrder.Language.IsExtensionPair.definedAtLeft + def FirstOrder.Language.IsExtensionPair.definedAtRight + def FirstOrder.Language.IsExtensionPair + theorem FirstOrder.Language.IsExtensionPair_iff_cod + theorem FirstOrder.Language.PartialEquiv.dom_fg_iff_cod_fg + theorem FirstOrder.Language.countable_self_fgequiv_of_countable + theorem FirstOrder.Language.embedding_from_cg + theorem FirstOrder.Language.equiv_between_cg Modified Mathlib/ModelTheory/Substructures.lean + theorem FirstOrder.Language.Substructure.subtype_comp_inclusion 2024-08-14 13:56:09 a08417b doc(Algebra/Quaternion): add docstring for `imI`, `imJ`, `imK` (#15789) ESTIMATED CHANGES Modified Mathlib/Algebra/Quaternion.lean Modified scripts/nolints.json 2024-08-14 13:46:22 7565a8d feat(RingTheory/Radical): Radical of an element in a unique factorization normalization monoid (#14873) For a unique factorization normalization monoid, define a radical of an element as a product of normalized prime factors (without duplication). ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/RingTheory/Radical.lean + def primeFactors + theorem primeFactors_pow + def radical + theorem radical_dvd_self + theorem radical_eq_of_associated + theorem radical_mul_unit + theorem radical_of_prime + theorem radical_one_eq + theorem radical_pow + theorem radical_pow_of_prime + theorem radical_unit_eq_one + theorem radical_unit_mul + theorem radical_zero_eq 2024-08-14 12:57:00 e6273ed feat (Algebra/Order/Group): `mulIndicator_le_mulIndicator'` (#15437) Add `mulIndicator_le_mulIndicator'`, a generalization of `mulIndicator_le_mulIndicator`. ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Group/Indicator.lean + theorem Set.mulIndicator_le_mulIndicator' 2024-08-14 12:25:08 b74124c refactor(Condensed): reorganize TopComparison (#15401) Define a general functor from `TopCat` to sheaves on `CompHausLike P` satisfying some properties, and redefine `topCatToCondensedSet` and `topCatToLightCondSet` in terms of that functor. ESTIMATED CHANGES Modified Mathlib/Condensed/Light/TopCatAdjunction.lean Modified Mathlib/Condensed/Light/TopComparison.lean Modified Mathlib/Condensed/TopCatAdjunction.lean Modified Mathlib/Condensed/TopComparison.lean + def TopCat.toSheafCompHausLike 2024-08-14 11:19:47 c9eabb1 chore(ConcreteCategory/Bundled): remove outdated comment about Bundled.map (#15221) the definition is not reducible, so apparently this is fine. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/ConcreteCategory/Bundled.lean - def CategoryTheory.Bundled.map 2024-08-14 10:13:14 ca93110 chore: cleanup in List/Infix (#15792) ESTIMATED CHANGES Modified Mathlib/Data/List/Infix.lean +/- theorem List.prefix_take_le_iff 2024-08-14 10:13:13 85ffadc chore: inline `getLinterHash`* (#15771) A copy-paste error that propagated to almost all linters -- [pointed out by Eric](https://github.com/leanprover-community/mathlib4/pull/15724#discussion_r1715138669). Resolved by inlining the corresponding definition. In the case of the `refine'` linter, I also recycled one doc-string and removed a `refine` namespace since every declaration already had `refine` in its name anyway. ESTIMATED CHANGES Modified Mathlib/Tactic/Linter/HashCommandLinter.lean - def Mathlib.Linter.HashCommandLinter.getLinterHash Modified Mathlib/Tactic/Linter/Lint.lean - def Mathlib.Linter.CDotLinter.getLinterHash - def Mathlib.Linter.DupNamespaceLinter.getLinterDupNamespace - def Mathlib.Linter.LongLine.getLinterHash - def Mathlib.Linter.MissingEnd.getLinterHash Modified Mathlib/Tactic/Linter/MinImports.lean - def Mathlib.Linter.MinImports.getLinterHash Modified Mathlib/Tactic/Linter/OldObtain.lean - def Mathlib.Linter.Style.getLinterHash Modified Mathlib/Tactic/Linter/RefineLinter.lean + def Mathlib.Linter.getRefine' - def Mathlib.Linter.refine.getLinterHash - def Mathlib.Linter.refine.getRefine' - def Mathlib.Linter.refine.refineLinter + def Mathlib.Linter.refineLinter Modified Mathlib/Tactic/Linter/Style.lean - def Mathlib.Linter.Style.SetOption.getLinterHash Modified Mathlib/Tactic/Linter/UnusedTactic.lean - def Mathlib.Linter.UnusedTactic.getLinterHash 2024-08-14 10:13:12 d69f843 chore: protect TensorProduct.{map_one, map_mul} (#15754) It's quite common to use the root ones, even with the TensorProduct namespace opened. ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/TensorProduct/Basic.lean - theorem TensorProduct.map_mul - theorem TensorProduct.map_one Modified Mathlib/LinearAlgebra/TensorProduct/Graded/Internal.lean Modified Mathlib/RepresentationTheory/Basic.lean Modified Mathlib/RingTheory/Bialgebra/Hom.lean Modified Mathlib/RingTheory/Generators.lean Modified Mathlib/RingTheory/IsTensorProduct.lean Modified Mathlib/RingTheory/Kaehler/CotangentComplex.lean Modified Mathlib/RingTheory/Presentation.lean Modified Mathlib/RingTheory/Smooth/Kaehler.lean Modified Mathlib/RingTheory/TensorProduct/Basic.lean 2024-08-14 10:13:10 e2c80d4 chore(Geometry): remove remaining `open Classical` (#15669) ESTIMATED CHANGES Modified Mathlib/Geometry/Euclidean/Basic.lean Modified Mathlib/Geometry/Euclidean/Circumcenter.lean Modified Mathlib/Geometry/Euclidean/MongePoint.lean Modified Mathlib/Geometry/Euclidean/Triangle.lean Modified Mathlib/Geometry/Manifold/LocalInvariantProperties.lean Modified Mathlib/Geometry/Manifold/MFDeriv/Defs.lean Modified Mathlib/Geometry/Manifold/PartitionOfUnity.lean Modified Mathlib/Geometry/Manifold/WhitneyEmbedding.lean 2024-08-14 10:13:09 3158e96 chore: ensure Batteries is built in lake test (#15635) ESTIMATED CHANGES Modified scripts/test.lean 2024-08-14 09:17:23 787495f fix: `assert_not_exists` takes at least one input (#15795) [Reported on Zulip](https://leanprover.zulipchat.com/#narrow/stream/217875-Is-there-code-for-X.3F/topic/assert_not_imported/near/462220460). ESTIMATED CHANGES Modified Mathlib/Util/AssertExists.lean 2024-08-14 09:17:21 35b04e0 chore(SetTheory/Ordinal/FixedPoint): Rewrite dumb theorems about zero function (#15755) Two theorems referred to the function `fun x => 0 * x`, which is just the zero function. Also, added applied versions of theorems referring to function equality. ESTIMATED CHANGES Modified Mathlib/SetTheory/Ordinal/FixedPoint.lean - theorem Ordinal.deriv_mul_zero +/- theorem Ordinal.deriv_zero + theorem Ordinal.deriv_zero_left + theorem Ordinal.deriv_zero_right + theorem Ordinal.nfp_zero + theorem Ordinal.nfp_zero_left - theorem Ordinal.nfp_zero_mul 2024-08-14 09:17:20 2c151ad perf(Algebra.GradedMonoid): scope theorem with weak keys (#15628) The keys for this theorem are `HSMul.hSMul _ _ _ _ _ _` so will be attempted on any term which has an `SMul` in it. ESTIMATED CHANGES Modified Mathlib/Algebra/GradedMonoid.lean 2024-08-14 09:17:19 063d5f4 fix: add `all` flag to import summary script (#15583) Summary of the PR * Add the `all` flag to the import diff script: running ```bash ./scripts/import_trans_difference.sh all ``` will not limit the output to ~~200 modified files~~ ~130k characters, but will print the whole import diff. * Increase the size cut-off for printing the full output of the `import-diff script` to roughly half the size allowed in GitHub comments. * Add a comment that you can run the script locally. The script switches over between commits and creates new files to store the information that it gathers from the various steps and can be intrusive: the automation is designed more to be ran in CI, with a fresh clone, than locally with possibly uncommitted changes, so I am not too sure that this is a good idea. #15584 shows the new script in action: the printed comment there exceeds the previous limits of the script. [Zulip discussion](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/There.20are.201617.20files.20with.20changed.20transitive.20imports.20.2E.2E.2E) ESTIMATED CHANGES Modified scripts/import_trans_difference.sh 2024-08-14 09:17:18 a7e0ad1 feat(CategoryTheory/Monoidal): Hopf monoids (#13317) Defines Hopf monoids in a braided category. Proves two facts (antipode is an antihomomorphism, morphisms intertwine antipode) that are not yet proved for unbundled Hopf algebras. Once we prove `Hopf_ (ModuleCat R)` is equivalent to `HopfAlgebraCat` (having defined that!), we will get those two facts for free. We should also check later that `Hopf_ C` in a cartesian monoidal category is equivalent `GroupObject_ C` (being defined independently elsewhere). - [x] depends on: #13313 - [x] depends on: #13312 (probably doesn't actually depend, but I don't want to sort out the git history now) - [x] depends on: #13315 ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/CategoryTheory/Monoidal/Bimon_.lean + theorem Bimon_.compatibility + theorem Bimon_.comul_assoc_flip_hom + theorem Bimon_.comul_assoc_hom + theorem Bimon_.comul_counit_hom + theorem Bimon_.counit_comul_hom + theorem Bimon_.hom_comul_hom + theorem Bimon_.hom_counit_hom + theorem Bimon_.mul_counit + theorem Bimon_.one_comul + def Bimon_.to_trivial + def Bimon_.trivial + def Bimon_.trivial_to Modified Mathlib/CategoryTheory/Monoidal/Comon_.lean Added Mathlib/CategoryTheory/Monoidal/Hopf_.lean + theorem Hopf_.antipode_antipode + theorem Hopf_.antipode_comul + theorem Hopf_.antipode_comul₁ + theorem Hopf_.antipode_comul₂ + theorem Hopf_.antipode_counit + theorem Hopf_.hom_antipode + theorem Hopf_.mul_antipode + theorem Hopf_.mul_antipode₁ + theorem Hopf_.mul_antipode₂ + theorem Hopf_.one_antipode + structure Hopf_ Modified Mathlib/CategoryTheory/Monoidal/Mon_.lean Modified Mathlib/RingTheory/HopfAlgebra.lean 2024-08-14 07:23:54 077d38e chore: use `assert_not_exists` (#15782) The first location was suggested in #15732; now we can do this. The other locations had comments also suggesting such functionality: they referred to an outdated module name, which we correct. ESTIMATED CHANGES Modified Mathlib/Algebra/BigOperators/Group/List.lean Modified Mathlib/Algebra/Field/Defs.lean Modified Mathlib/Data/List/Chain.lean Modified Mathlib/Data/List/GetD.lean 2024-08-14 07:09:09 81ab12f perf(CategoryTheory.ComposableArrows): use `suppress_compilation` on `opEquivalence` (#15593) This declaration now takes ~4s to compile on my machine after moving to `v4.11.0-rc1`. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/ComposableArrows.lean 2024-08-14 03:37:18 86a406a feat (MeasureTheory.Decomposition.RadonNikodym): `rnDeriv_le_one_iff_le` (#15473) Add `rnDeriv_le_one_iff_le` and `rnDeriv_eq_one_iff_eq`. ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Decomposition/RadonNikodym.lean +/- theorem MeasureTheory.Measure.inv_rnDeriv_aux + theorem MeasureTheory.Measure.rnDeriv_eq_one_iff_eq +/- theorem MeasureTheory.Measure.rnDeriv_eq_zero_of_mutuallySingular + theorem MeasureTheory.Measure.rnDeriv_le_one_iff_le +/- theorem MeasureTheory.Measure.rnDeriv_pos' +/- theorem MeasureTheory.Measure.rnDeriv_withDensity_right_of_absolutelyContinuous 2024-08-14 02:32:36 8c531e2 chore(assert_not_exists): tweak message (#15783) Also, upgrade the warning about a non-existing module to an error. ESTIMATED CHANGES Modified Mathlib/Util/AssertExists.lean Modified test/AssertExists.lean 2024-08-14 02:32:35 f4aca62 chore: remove now-obsolete nolint entries for mathport syntax stubs (#15752) With `Mathport/Syntax.lean` being removed, there is no reason to keep the corresponding nolint entries. ESTIMATED CHANGES Modified scripts/nolints.json 2024-08-14 01:35:47 4525315 chore: delete `Init.Data.Fin.Basic` (#15762) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Data/Fin/Basic.lean Modified Mathlib/Data/List/Nodup.lean Modified Mathlib/Data/List/Range.lean Deleted Mathlib/Init/Data/Fin/Basic.lean - theorem Fin.eq_of_veq - theorem Fin.ne_of_vne - theorem Fin.veq_of_eq - theorem Fin.vne_of_ne 2024-08-14 00:10:36 15f92d5 chore(Combinatorics/SimpleGraph): rename and add `gcongr` tag to distance lemmas (#15780) ESTIMATED CHANGES Modified Mathlib/Combinatorics/SimpleGraph/Metric.lean - theorem SimpleGraph.dist_le_subgraph_dist + theorem SimpleGraph.edist_anti - theorem SimpleGraph.edist_le_subgraph_edist 2024-08-13 22:03:43 d694ae6 chore: update Mathlib dependencies 2024-08-13 (#15778) This PR updates the Mathlib dependencies. ESTIMATED CHANGES Modified lake-manifest.json 2024-08-13 21:38:08 cf3f2a5 chore: backports for leanprover/lean4#4814 (part 35) (#15606) This one is a bit awkward / done badly. I reordered theorems in order to avoid pulling in `SmoothManifoldWithCorners` unnecessarily, but I didn't preserve the section headings properly. :-( ESTIMATED CHANGES 2024-08-13 19:42:50 d7ada26 feat: add `assert_not_imported` command (#15769) This PR introduces the new command `assert_not_imported m₁ m₂ ... mₙ`. The command checks that each one of the modules `m₁ m₂ ... mₙ` are not among the transitive imports of the current file. It also checks that each one of `m₁ m₂ ... mₙ` is actually the name of an existing module, just one that is not currently imported! [Zulip thread](https://leanprover.zulipchat.com/#narrow/stream/217875-Is-there-code-for-X.3F/topic/assert_not_imported) ESTIMATED CHANGES Modified Mathlib/Util/AssertExists.lean Added test/AssertExists.lean 2024-08-13 17:25:05 173d2e1 feat: convenience lemmas for replacing the uniformity and bornology via bilipschitz equivalence (#15760) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Topology/MetricSpace/Bilipschitz.lean + theorem bornology_eq_of_bilipschitz + theorem isBounded_iff_of_bilipschitz + theorem uniformity_eq_of_bilipschitz 2024-08-13 17:15:38 6fdfc95 feat: results on the spectrum of elements in closed subalgebras of Banach algebras (#14925) The main result is well-known. Let `S` be a closed subalgebra of a Banach algebra `A`. If `x : S`, then the spectrum of `x` (in `S`) is the spectrum of `↑x : A` (in `A`) along with whichever, necessarily bounded, components of the complement (of the `A` spectrum) it happens to intersect. Along the way we prove a few other useful results. For example, the boundary of the spectrum of `x` (in `S`) is a subset of the boundary of the spectrum of `↑x : A` (in `A`). ESTIMATED CHANGES Modified Mathlib/Analysis/Normed/Algebra/Spectrum.lean + theorem Subalgebra.frontier_spectrum + theorem Subalgebra.frontier_subset_frontier + theorem Subalgebra.isUnit_of_isUnit_val_of_eventually + theorem Subalgebra.spectrum_isBounded_connectedComponentIn + theorem Subalgebra.spectrum_sUnion_connectedComponentIn 2024-08-13 14:39:33 7034a1c feat(CategoryTheory): Being representably flat is closed under isos (#15772) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Functor/Flat.lean + theorem CategoryTheory.RepresentablyFlat.of_iso 2024-08-13 14:20:40 ae4c62f chore: move `Analysis.CStarAlgebra.{Module ⇒ Module.Defs}` (#15761) we will shortly be adding more files to this folder. ESTIMATED CHANGES Modified Mathlib.lean Renamed Mathlib/Analysis/CStarAlgebra/Module.lean to Mathlib/Analysis/CStarAlgebra/Module/Defs.lean 2024-08-13 13:38:58 2ea5e24 chore: backports from nightly-testing-2024-08-12 (#15756) ESTIMATED CHANGES Modified Cache/Hashing.lean Modified Cache/IO.lean Modified Mathlib/Analysis/BoundedVariation.lean Modified Mathlib/Analysis/BoxIntegral/Partition/Filter.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Countable.lean Modified Mathlib/LinearAlgebra/ExteriorAlgebra/Basic.lean Modified Mathlib/LinearAlgebra/Pi.lean +/- def LinearMap.lsum Modified Mathlib/RingTheory/Coprime/Lemmas.lean Modified Mathlib/RingTheory/Localization/Basic.lean +/- theorem IsLocalization.map_units_map_submonoid Modified Mathlib/Tactic/FunProp/RefinedDiscrTree.lean Modified Mathlib/Tactic/FunProp/Theorems.lean Modified Mathlib/Topology/Instances/RatLemmas.lean 2024-08-13 11:31:29 42db034 chore: use double backticks for explicit names, if possible (#15173) This PR is very likely not exhaustive: the next step to finding these more exhaustively would be to write an intelligent linter. (I found these using a simple text-based linter, which has still too many false positive). ESTIMATED CHANGES Modified Mathlib/Lean/Meta/DiscrTree.lean Modified Mathlib/Tactic/Abel.lean Modified Mathlib/Tactic/DeriveFintype.lean Modified Mathlib/Tactic/DeriveToExpr.lean Modified Mathlib/Tactic/Widget/CongrM.lean Modified Mathlib/Tactic/Widget/GCongr.lean Modified Mathlib/Tactic/Widget/SelectInsertParamsClass.lean 2024-08-13 09:26:53 421a092 chore(SetTheory/Game/PGame): simplify ofLists API (#15766) The equation `(ofLists L R).LeftMoves = ULift (Fin L.length)` (ditto for `RightMoves`) is entirely def-eq in Lean 4. As such, `toOfListsLeftMoves` doesn't solve the same problem that other `toXLeftMoves` equivalences do, which is provide this correspondence without having to tediously figure out how to rewrite the equality. We instead turn this into an abbreviation for `ULift.up` and `ULift.down`, which has the nice side effect of making `simp` much more capable of simplifying equations involving `ofLists`. ESTIMATED CHANGES Modified Mathlib/SetTheory/Game/PGame.lean - def SetTheory.PGame.toOfListsLeftMoves - def SetTheory.PGame.toOfListsRightMoves 2024-08-13 09:26:52 c074e33 chore(Topology): remove more bare open Classical (#15671) The only remaining occurrences are in Topology/Algebra. ESTIMATED CHANGES Modified Mathlib/Topology/Category/Compactum.lean Modified Mathlib/Topology/Category/Profinite/CofilteredLimit.lean Modified Mathlib/Topology/Connected/PathConnected.lean Modified Mathlib/Topology/ContinuousFunction/Bounded.lean Modified Mathlib/Topology/ContinuousFunction/Compact.lean Modified Mathlib/Topology/EMetricSpace/Basic.lean Modified Mathlib/Topology/FiberBundle/Constructions.lean Modified Mathlib/Topology/Instances/EReal.lean Modified Mathlib/Topology/Instances/NNReal.lean +/- theorem NNReal.coe_tsum Modified Mathlib/Topology/Instances/Real.lean Modified Mathlib/Topology/LocallyConstant/Basic.lean Modified Mathlib/Topology/MetricSpace/CantorScheme.lean Modified Mathlib/Topology/MetricSpace/CauSeqFilter.lean Modified Mathlib/Topology/MetricSpace/Closeds.lean Modified Mathlib/Topology/MetricSpace/Contracting.lean Modified Mathlib/Topology/MetricSpace/Dilation.lean Modified Mathlib/Topology/MetricSpace/Gluing.lean Modified Mathlib/Topology/MetricSpace/PiNat.lean Modified Mathlib/Topology/MetricSpace/ThickenedIndicator.lean Modified Mathlib/Topology/OmegaCompletePartialOrder.lean Modified Mathlib/Topology/Order/MonotoneConvergence.lean Modified Mathlib/Topology/UniformSpace/Compact.lean Modified Mathlib/Topology/UniformSpace/Completion.lean Modified Mathlib/Topology/UniformSpace/Separation.lean Modified Mathlib/Topology/VectorBundle/Basic.lean Modified Mathlib/Topology/VectorBundle/Constructions.lean 2024-08-13 09:26:51 4c9b452 refactor: Make `circle` a type `Circle` (#15116) See https://github.com/leanprover-community/mathlib4/wiki/Tradeoffs-of-concrete-types-defined-as-subobjects for context ESTIMATED CHANGES Modified Mathlib/Analysis/Complex/Circle.lean + theorem Circle.abs_coe + def Circle.coeHom + theorem Circle.coe_div + theorem Circle.coe_inv + theorem Circle.coe_inv_eq_conj + theorem Circle.coe_mul + theorem Circle.coe_ne_zero + theorem Circle.coe_one + def Circle.exp + def Circle.expHom + theorem Circle.exp_add + theorem Circle.exp_apply + theorem Circle.exp_neg + theorem Circle.exp_sub + theorem Circle.exp_zero + theorem Circle.normSq_coe + def Circle.ofConjDivSelf + theorem Circle.smul_def + def Circle.toUnits + theorem Circle.toUnits_apply + def Circle - theorem abs_coe_circle - def circle.ofConjDivSelf - def circle.toUnits - theorem circle.toUnits_apply - theorem circle_def - theorem coe_div_circle - theorem coe_inv_circle - theorem coe_inv_circle_eq_conj - def expMapCircle - def expMapCircleHom - theorem expMapCircle_add - theorem expMapCircle_apply - theorem expMapCircle_neg - theorem expMapCircle_sub - theorem expMapCircle_zero +/- theorem mem_circle_iff_normSq - theorem ne_zero_of_mem_circle - theorem normSq_eq_of_mem_circle - theorem norm_circle_smul Modified Mathlib/Analysis/Complex/Isometry.lean +/- theorem det_rotation +/- theorem linearEquiv_det_rotation +/- def rotation +/- def rotationOf +/- theorem rotationOf_rotation +/- theorem rotation_apply +/- theorem rotation_ne_conjLIE +/- theorem rotation_symm +/- theorem rotation_trans +/- theorem toMatrix_rotation Modified Mathlib/Analysis/Complex/UnitDisc/Basic.lean +/- theorem Complex.UnitDisc.coe_smul_circle Modified Mathlib/Analysis/Fourier/AddCircle.lean Modified Mathlib/Analysis/Fourier/FourierTransform.lean +/- theorem Real.continuous_fourierChar Modified Mathlib/Analysis/Fourier/FourierTransformDeriv.lean Modified Mathlib/Analysis/Fourier/PoissonSummation.lean Modified Mathlib/Analysis/Fourier/RiemannLebesgueLemma.lean Modified Mathlib/Analysis/Normed/Field/UnitBall.lean Modified Mathlib/Analysis/SpecialFunctions/Complex/Circle.lean +/- theorem AddCircle.homeomorphCircle'_apply_mk +/- theorem AddCircle.scaled_exp_map_periodic +/- theorem AddCircle.toCircle_apply_mk + theorem Circle.arg_eq_arg + theorem Circle.arg_exp + theorem Circle.exp_add_two_pi + theorem Circle.exp_arg + theorem Circle.exp_eq_exp + theorem Circle.exp_sub_two_pi + theorem Circle.exp_two_pi + theorem Circle.injective_arg + theorem Circle.invOn_arg_exp + theorem Circle.leftInverse_exp_arg + theorem Circle.periodic_exp + theorem Circle.surjOn_exp_neg_pi_pi - theorem Real.Angle.arg_expMapCircle + theorem Real.Angle.arg_toCircle - theorem Real.Angle.coe_expMapCircle + theorem Real.Angle.coe_toCircle - theorem Real.Angle.expMapCircle_add - theorem Real.Angle.expMapCircle_coe - theorem Real.Angle.expMapCircle_neg - theorem Real.Angle.expMapCircle_zero + theorem Real.Angle.toCircle_add + theorem Real.Angle.toCircle_coe + theorem Real.Angle.toCircle_neg + theorem Real.Angle.toCircle_zero - theorem arg_expMapCircle - theorem circle.arg_eq_arg - theorem circle.injective_arg - theorem expMapCircle_add_two_pi - theorem expMapCircle_arg - theorem expMapCircle_eq_expMapCircle - theorem expMapCircle_sub_two_pi - theorem expMapCircle_two_pi - theorem invOn_arg_expMapCircle + theorem isLocalHomeomorph_circleExp - theorem isLocalHomeomorph_expMapCircle - theorem leftInverse_expMapCircle_arg - theorem periodic_expMapCircle - theorem surjOn_expMapCircle_neg_pi_pi Modified Mathlib/Analysis/SpecialFunctions/Complex/CircleAddChar.lean +/- theorem ZMod.injective_toCircle Modified Mathlib/Geometry/Euclidean/Angle/Oriented/Rotation.lean Modified Mathlib/Geometry/Manifold/Instances/Sphere.lean + theorem contMDiff_circleExp - theorem contMDiff_expMapCircle Modified Mathlib/Topology/Algebra/PontryaginDual.lean Modified test/TCSynth.lean 2024-08-13 09:00:40 b113092 feat: Scaling of affine bases (#14863) Given a group `G` acting on the ring `k`, provide the `G`-action over the `k`-affine bases of a `k`-module `V`. ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/AffineSpace/Basis.lean + theorem AffineBasis.basisOf_smul + theorem AffineBasis.coe_smul + theorem AffineBasis.coord_smul + theorem AffineBasis.reindex_smul Modified Mathlib/LinearAlgebra/AffineSpace/Combination.lean + theorem Finset.weightedVSubOfPoint_smul + theorem Finset.weightedVSub_smul Modified Mathlib/LinearAlgebra/AffineSpace/Independent.lean + theorem affineIndependent_smul Modified Mathlib/LinearAlgebra/AffineSpace/Pointwise.lean +/- theorem AffineSubspace.coe_pointwise_vadd + theorem AffineSubspace.coe_smul + theorem AffineSubspace.direction_smul + theorem AffineSubspace.smul_bot + theorem AffineSubspace.smul_eq_map + theorem AffineSubspace.smul_mem_smul_iff + theorem AffineSubspace.smul_mem_smul_iff_of_isUnit + theorem AffineSubspace.smul_mem_smul_iff₀ + theorem AffineSubspace.smul_span + theorem AffineSubspace.smul_top 2024-08-13 08:09:53 ee3fc23 chore(Algebra/Group/Aut): Do not import `MonoidWithZero` (#15430) Move what needs it to a new file `Algebra.GroupWithZero.Action.Basic` which will eventually contain more content coming from `Algebra.SMulWithZero`. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Group/Aut.lean Added Mathlib/Algebra/GroupWithZero/Action/Basic.lean + def DistribMulAction.toAddAut + def DistribMulAction.toAddEquiv + theorem IsUnit.smul_sub_iff_sub_inv_smul + def MulDistribMulAction.toMulAut + def MulDistribMulAction.toMulEquiv + def arrowMulDistribMulAction + def mulAutArrow + def smulMonoidWithZeroHom Modified Mathlib/Algebra/Module/Equiv/Basic.lean Modified Mathlib/Algebra/Ring/Action/Group.lean Modified Mathlib/Algebra/Ring/AddAut.lean Modified Mathlib/Algebra/SMulWithZero.lean - def smulMonoidWithZeroHom Modified Mathlib/Data/DFinsupp/Basic.lean Modified Mathlib/Data/Set/Pointwise/SMul.lean Modified Mathlib/GroupTheory/GroupAction/Group.lean - def DistribMulAction.toAddAut - def DistribMulAction.toAddEquiv - theorem IsUnit.smul_sub_iff_sub_inv_smul - def MulDistribMulAction.toMulAut - def MulDistribMulAction.toMulEquiv - def arrowMulDistribMulAction - def mulAutArrow Modified Mathlib/RingTheory/Nilpotent/Basic.lean 2024-08-13 07:46:35 34f13c7 chore: use down-stream existing declarations when `assert_not_exists`ing them (#15732) Another PR stemming from the future `assertNotExists` linter. ESTIMATED CHANGES Modified Mathlib/Algebra/Field/Defs.lean Modified Mathlib/Data/Finset/Basic.lean Modified Mathlib/Data/Nat/Cast/Basic.lean 2024-08-13 06:06:56 08d60f6 chore: move more `assert_not_exists` up (#15747) ESTIMATED CHANGES Modified Mathlib/Algebra/Ring/Center.lean Modified Mathlib/CategoryTheory/ConcreteCategory/Basic.lean Modified Mathlib/CategoryTheory/Monoidal/Tor.lean Modified Mathlib/Computability/TuringMachine.lean Modified Mathlib/Data/Fin/Basic.lean Modified Mathlib/Data/Fintype/BigOperators.lean Modified Mathlib/Data/List/InsertNth.lean Modified Mathlib/Data/Multiset/FinsetOps.lean Modified Mathlib/Data/Set/Pointwise/Basic.lean Modified Mathlib/Data/Vector/Defs.lean Modified Mathlib/NumberTheory/Wilson.lean Modified Mathlib/Topology/Bornology/Absorbs.lean 2024-08-12 23:05:08 08570c4 feat: `Matrix.PosDef` on diagonal and numeric matrices (#13974) The main result here is `PosDef (diagonal d) ↔ ∀ i, 0 < d i`, everything else is just special or less interesting cases. ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/Matrix/DotProduct.lean + theorem Matrix.dotProduct_self_star_nonneg + theorem Matrix.dotProduct_self_star_pos_iff + theorem Matrix.dotProduct_star_self_nonneg + theorem Matrix.dotProduct_star_self_pos_iff Modified Mathlib/LinearAlgebra/Matrix/Hermitian.lean + theorem Matrix.isHermitian_intCast + theorem Matrix.isHermitian_natCast Modified Mathlib/LinearAlgebra/Matrix/PosDef.lean + theorem Matrix.posDef_diagonal_iff + theorem Matrix.posDef_intCast_iff + theorem Matrix.posDef_natCast_iff 2024-08-12 22:49:32 577bed1 feat(CategoryTheory/Adjunction): `typeToCat` is right adjoint to `connectedComponents` functor (#15614) The embedding of `Type` into `Cat`, which views a set as a discrete category, is right adjoint to the functor `connectedComponents : Cat -> Set` which maps a category to its set of connected components. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Category/Cat/Adjunction.lean + def CategoryTheory.Cat.connectedComponents + def CategoryTheory.Cat.connectedComponentsTypeToCatAdj Modified Mathlib/CategoryTheory/ConnectedComponents.lean + def CategoryTheory.ConnectedComponents.functorToDiscrete + def CategoryTheory.ConnectedComponents.liftFunctor + def CategoryTheory.ConnectedComponents.typeToCatHomEquiv Modified Mathlib/CategoryTheory/IsConnected.lean + theorem CategoryTheory.eq_of_zag + theorem CategoryTheory.eq_of_zigzag 2024-08-12 22:22:14 7a462dc feat(SetTheory/Game/Ordinal): game product of ordinals is natural product (#15690) I also flipped and renamed `toPGame_nadd` at the request of Yaël. ESTIMATED CHANGES Modified Mathlib/SetTheory/Game/Basic.lean Modified Mathlib/SetTheory/Game/Ordinal.lean + theorem Ordinal.toGame_nadd + theorem Ordinal.toGame_nmul - theorem Ordinal.toPGame_add - theorem Ordinal.toPGame_add_mk' + theorem Ordinal.toPGame_nadd + theorem Ordinal.toPGame_nmul 2024-08-12 21:17:59 68d96e1 chore: add comment to a borderline `set_option maxHeartbeats` (#15655) count_heartbeats reports `192105`, which is very close to the limit. Found by the linter #13653. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Monoidal/Bimon_.lean 2024-08-12 20:23:09 3654a23 chore: more fixes for the flexible linter (#15318) ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/Subalgebra/Unitization.lean Modified Mathlib/Algebra/Group/Subgroup/Finite.lean Modified Mathlib/Algebra/Module/Submodule/Map.lean Modified Mathlib/Algebra/Order/Antidiag/Pi.lean Modified Mathlib/Algebra/Polynomial/Degree/Definitions.lean Modified Mathlib/Algebra/Polynomial/Div.lean Modified Mathlib/Analysis/Analytic/Inverse.lean Modified Mathlib/CategoryTheory/Adjunction/Mates.lean Modified Mathlib/CategoryTheory/Limits/Bicones.lean Modified Mathlib/CategoryTheory/Limits/Final.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Multiequalizer.lean Modified Mathlib/CategoryTheory/Localization/Bousfield.lean Modified Mathlib/CategoryTheory/Subobject/Lattice.lean Modified Mathlib/Combinatorics/Enumerative/Composition.lean Modified Mathlib/Data/DFinsupp/Basic.lean Modified Mathlib/Data/List/Cycle.lean Modified Mathlib/Data/List/Sym.lean Modified Mathlib/Data/PFunctor/Multivariate/M.lean Modified Mathlib/Data/PNat/Xgcd.lean Modified Mathlib/Data/Set/Card.lean Modified Mathlib/Data/ZMod/Basic.lean Modified Mathlib/GroupTheory/CoprodI.lean Modified Mathlib/GroupTheory/Coxeter/Inversion.lean Modified Mathlib/GroupTheory/Perm/Sign.lean Modified Mathlib/GroupTheory/Perm/Support.lean Modified Mathlib/LinearAlgebra/Finsupp.lean Modified Mathlib/LinearAlgebra/LinearPMap.lean Modified Mathlib/LinearAlgebra/SesquilinearForm.lean Modified Mathlib/LinearAlgebra/Span.lean Modified Mathlib/LinearAlgebra/StdBasis.lean Modified Mathlib/MeasureTheory/Function/SimpleFunc.lean Modified Mathlib/MeasureTheory/MeasurableSpace/Embedding.lean Modified Mathlib/MeasureTheory/Measure/AEDisjoint.lean Modified Mathlib/MeasureTheory/Measure/MeasureSpace.lean Modified Mathlib/NumberTheory/Dioph.lean Modified Mathlib/NumberTheory/Divisors.lean Modified Mathlib/NumberTheory/PellMatiyasevic.lean Modified Mathlib/Order/LiminfLimsup.lean Modified Mathlib/RingTheory/Multiplicity.lean Modified Mathlib/RingTheory/MvPowerSeries/Trunc.lean Modified Mathlib/RingTheory/PowerSeries/Order.lean Modified Mathlib/SetTheory/Ordinal/Notation.lean Modified Mathlib/Topology/Category/Profinite/Nobeling.lean Modified Mathlib/Topology/Connected/Clopen.lean Modified Mathlib/Topology/Connected/PathConnected.lean Modified Mathlib/Topology/ContinuousOn.lean Modified Mathlib/Topology/Order/LeftRightLim.lean Modified Mathlib/Topology/UniformSpace/Cauchy.lean Modified Mathlib/Topology/UniformSpace/Equicontinuity.lean 2024-08-12 20:23:08 38dc174 feat(StrongTopology): generalize `ContinuousLinearMap.restrictScalarsL` (#15285) ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Action/Pi.lean + theorem Pi.smul_def' Modified Mathlib/Analysis/LocallyConvex/Bounded.lean + theorem Bornology.IsVonNBounded.extend_scalars + theorem Bornology.IsVonNBounded.of_subsingleton Modified Mathlib/Analysis/NormedSpace/OperatorNorm/Basic.lean - theorem ContinuousLinearMap.coe_restrictScalarsL - theorem ContinuousLinearMap.coe_restrict_scalarsL' - def ContinuousLinearMap.restrictScalarsL Modified Mathlib/Topology/Algebra/Module/StrongTopology.lean + theorem ContinuousLinearMap.coe_restrictScalarsL + theorem ContinuousLinearMap.coe_restrict_scalarsL' + theorem ContinuousLinearMap.continuous_restrictScalars + theorem ContinuousLinearMap.embedding_restrictScalars + def ContinuousLinearMap.restrictScalarsL + theorem ContinuousLinearMap.uniformContinuous_restrictScalars + theorem ContinuousLinearMap.uniformEmbedding_restrictScalars + theorem ContinuousLinearMap.uniformEmbedding_toUniformOnFun Modified Mathlib/Topology/Bornology/Absorbs.lean 2024-08-12 19:34:22 3697f51 chore(MeasurePreserving): rename a lemma (#15742) There is no `volume` in the statement. ESTIMATED CHANGES Modified Mathlib/Dynamics/Ergodic/MeasurePreserving.lean + theorem MeasureTheory.MeasurePreserving.exists_mem_iterate_mem_of_measure_univ_lt_mul_measure - theorem MeasureTheory.MeasurePreserving.exists_mem_iterate_mem_of_volume_lt_mul_volume 2024-08-12 19:34:21 1c91039 perf(CharP/CharZero): scope simp theorems with weak keys (#15631) These have keys like `HAdd.hAdd _ _ _ _ _ _` but are specific to characteristic two and zero. ESTIMATED CHANGES Modified Mathlib/Algebra/CharP/Two.lean Modified Mathlib/Algebra/CharZero/Lemmas.lean + theorem CharZero.eq_neg_self_iff + theorem CharZero.neg_eq_self_iff - theorem eq_neg_self_iff - theorem neg_eq_self_iff Modified Mathlib/Analysis/Complex/Isometry.lean Modified Mathlib/Geometry/Euclidean/Triangle.lean Modified Mathlib/NumberTheory/LSeries/HurwitzZetaOdd.lean Modified Mathlib/NumberTheory/LSeries/RiemannZeta.lean Modified Mathlib/NumberTheory/LegendreSymbol/Basic.lean Modified Mathlib/NumberTheory/LegendreSymbol/JacobiSymbol.lean Modified Mathlib/NumberTheory/LegendreSymbol/QuadraticChar/Basic.lean Modified Mathlib/NumberTheory/Pell.lean 2024-08-12 19:34:20 9e8eaf9 feat(Dynamics): add TopologicalEntropy.DynamicalUniformity (#14938) First PR in a sequence to implement the notion of topological entropy for maps using Bowen-Dinaburg's formalism. This file describes a notion of _dynamical uniformities_, which generalizes dynamical balls in metric spaces. - [x] Dynamical uniformities - [ ] Topological entropy via covers - [ ] Topological entropy via nets - [ ] Behaviour for subsets - [ ] Behaviour under morphisms - [ ] Behaviour under union - [ ] Behaviour under products - [ ] Full shift This file is pretty short; the next ones are more involved. Paging @pitmonticone @sgouezel ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Dynamics/TopologicalEntropy/DynamicalEntourage.lean + def Dynamics.dynEntourage + theorem Dynamics.dynEntourage_antitone + theorem Dynamics.dynEntourage_comp_subset + theorem Dynamics.dynEntourage_eq_inter_Ico + theorem Dynamics.dynEntourage_mem_uniformity + theorem Dynamics.dynEntourage_monotone + theorem Dynamics.dynEntourage_one + theorem Dynamics.dynEntourage_univ + theorem Dynamics.dynEntourage_zero + theorem Dynamics.idRel_subset_dynEntourage + theorem Dynamics.mem_ball_dynEntourage + theorem Dynamics.mem_ball_dynEntourage_comp + theorem Dynamics.mem_dynEntourage + theorem Function.Semiconj.preimage_dynEntourage + theorem SymmetricRel.dynEntourage + theorem isOpen.dynEntourage 2024-08-12 18:29:50 ef99038 chore: move to v4.11.0-rc2 (new `variable` command) (#15726) ESTIMATED CHANGES Modified Archive/Imo/Imo1981Q3.lean Modified Archive/Imo/Imo1986Q5.lean Modified Archive/Imo/Imo2024Q1.lean Modified Archive/Imo/Imo2024Q2.lean Modified Archive/Imo/Imo2024Q6.lean Modified Archive/Wiedijk100Theorems/BuffonsNeedle.lean Modified Archive/Wiedijk100Theorems/CubingACube.lean Modified Archive/Wiedijk100Theorems/FriendshipGraphs.lean Modified Mathlib/Algebra/Associated/Basic.lean +/- theorem Prime.dvd_of_dvd_pow +/- theorem Prime.dvd_or_dvd +/- theorem Prime.isPrimal Modified Mathlib/Algebra/Category/ModuleCat/Free.lean Modified Mathlib/Algebra/Category/ModuleCat/Presheaf/Sheafify.lean Modified Mathlib/Algebra/Divisibility/Units.lean Modified Mathlib/Algebra/Group/Submonoid/Operations.lean +/- def Submonoid.giMapComap Modified Mathlib/Algebra/Group/Subsemigroup/Operations.lean +/- def Subsemigroup.gciMapComap Modified Mathlib/Algebra/GroupWithZero/InjSurj.lean Modified Mathlib/Algebra/Homology/BifunctorFlip.lean Modified Mathlib/Algebra/Homology/DerivedCategory/HomologySequence.lean Modified Mathlib/Algebra/Homology/Embedding/IsSupported.lean Modified Mathlib/Algebra/Homology/HomologySequence.lean Modified Mathlib/Algebra/Homology/HomologySequenceLemmas.lean +/- theorem HomologicalComplex.HomologySequence.composableArrows₂_exact Modified Mathlib/Algebra/Homology/HomotopyCategory/ShortExact.lean Modified Mathlib/Algebra/Homology/HomotopyCofiber.lean - theorem HomologicalComplex.cylinder.πCompι₀Homotopy.biprod_lift_id_sub_id Modified Mathlib/Algebra/Homology/Localization.lean +/- theorem HomologicalComplexUpToQuasiIso.Q_inverts_homotopyEquivalences Modified Mathlib/Algebra/Homology/ShortComplex/HomologicalComplex.lean - theorem ChainComplex.isIso_descOpcycles_iff - theorem ChainComplex.isoHomologyι₀_inv_naturality - theorem CochainComplex.isIso_liftCycles_iff - theorem CochainComplex.isoHomologyπ₀_inv_naturality + theorem HomologicalComplex.ChainComplex.isIso_descOpcycles_iff + theorem HomologicalComplex.ChainComplex.isoHomologyι₀_inv_naturality + theorem HomologicalComplex.CochainComplex.isIso_liftCycles_iff + theorem HomologicalComplex.CochainComplex.isoHomologyπ₀_inv_naturality + theorem HomologicalComplex.HomologicalComplex.cyclesIsoSc'_hom_iCycles + theorem HomologicalComplex.HomologicalComplex.cyclesIsoSc'_inv_iCycles + theorem HomologicalComplex.HomologicalComplex.homologyIsoSc'_hom_ι + theorem HomologicalComplex.HomologicalComplex.homologyIsoSc'_inv_ι + theorem HomologicalComplex.HomologicalComplex.homologyMap_add + theorem HomologicalComplex.HomologicalComplex.homologyMap_neg + theorem HomologicalComplex.HomologicalComplex.homologyMap_sub + theorem HomologicalComplex.HomologicalComplex.opcyclesIsoSc'_inv_fromOpcycles + theorem HomologicalComplex.HomologicalComplex.pOpcycles_opcyclesIsoSc'_hom + theorem HomologicalComplex.HomologicalComplex.pOpcycles_opcyclesIsoSc'_inv + theorem HomologicalComplex.HomologicalComplex.toCycles_cyclesIsoSc'_hom + theorem HomologicalComplex.HomologicalComplex.π_homologyIsoSc'_hom + theorem HomologicalComplex.HomologicalComplex.π_homologyIsoSc'_inv - theorem HomologicalComplex.cyclesIsoSc'_hom_iCycles - theorem HomologicalComplex.cyclesIsoSc'_inv_iCycles - theorem HomologicalComplex.homologyIsoSc'_hom_ι - theorem HomologicalComplex.homologyIsoSc'_inv_ι - theorem HomologicalComplex.homologyMap_add - theorem HomologicalComplex.homologyMap_neg - theorem HomologicalComplex.homologyMap_sub - theorem HomologicalComplex.opcyclesIsoSc'_inv_fromOpcycles - theorem HomologicalComplex.pOpcycles_opcyclesIsoSc'_hom - theorem HomologicalComplex.pOpcycles_opcyclesIsoSc'_inv - theorem HomologicalComplex.toCycles_cyclesIsoSc'_hom - theorem HomologicalComplex.π_homologyIsoSc'_hom - theorem HomologicalComplex.π_homologyIsoSc'_inv Modified Mathlib/Algebra/Homology/TotalComplex.lean Modified Mathlib/Algebra/Lie/Abelian.lean Modified Mathlib/Algebra/Lie/Engel.lean Modified Mathlib/Algebra/Lie/InvariantForm.lean +/- theorem LinearMap.BilinForm.lieInvariant_iff Modified Mathlib/Algebra/Lie/Nilpotent.lean Modified Mathlib/Algebra/Lie/Rank.lean Modified Mathlib/Algebra/Lie/Sl2.lean Modified Mathlib/Algebra/Lie/TraceForm.lean +/- theorem LieModule.isLieAbelian_of_ker_traceForm_eq_bot +/- theorem LieModule.lowerCentralSeries_one_inf_center_le_ker_traceForm +/- theorem LieModule.traceForm_eq_sum_weightSpaceOf +/- theorem LieModule.traceForm_eq_zero_of_isNilpotent +/- theorem LieModule.traceForm_weightSpace_eq Modified Mathlib/Algebra/Lie/Weights/Basic.lean +/- def LieModule.weightSpaceOf Modified Mathlib/Algebra/Lie/Weights/Chain.lean Modified Mathlib/Algebra/Module/LocalizedModule.lean Modified Mathlib/Algebra/Module/PID.lean Modified Mathlib/Algebra/Module/Submodule/EqLocus.lean Modified Mathlib/Algebra/Module/Submodule/Localization.lean Modified Mathlib/Algebra/Module/Submodule/Map.lean Modified Mathlib/Algebra/MonoidAlgebra/Degree.lean Modified Mathlib/Algebra/Order/Pointwise.lean Modified Mathlib/Algebra/Order/Ring/Unbundled/Basic.lean Modified Mathlib/Algebra/Order/ToIntervalMod.lean Modified Mathlib/Algebra/Polynomial/EraseLead.lean +/- theorem Polynomial.two_le_natDegree_of_nextCoeff_eraseLead Modified Mathlib/Algebra/Polynomial/Expand.lean Modified Mathlib/Algebra/Polynomial/RingDivision.lean +/- theorem Polynomial.aeval_ne_zero_of_isCoprime Modified Mathlib/Algebra/Ring/Divisibility/Basic.lean +/- theorem MulEquiv.decompositionMonoid +/- theorem map_dvd_iff Modified Mathlib/Algebra/Ring/Hom/Defs.lean Modified Mathlib/Algebra/Ring/InjSurj.lean Modified Mathlib/Algebra/Star/NonUnitalSubalgebra.lean +/- theorem NonUnitalStarAlgebra.comap_top +/- theorem NonUnitalStarAlgebra.map_bot +/- theorem NonUnitalStarAlgebra.map_sup +/- theorem NonUnitalStarAlgebra.map_top +/- theorem NonUnitalStarAlgebra.range_top_iff_surjective +/- theorem NonUnitalStarSubalgebra.center_eq_top Modified Mathlib/AlgebraicGeometry/AffineScheme.lean Modified Mathlib/AlgebraicGeometry/Morphisms/RingHomProperties.lean Modified Mathlib/AlgebraicGeometry/Noetherian.lean Modified Mathlib/AlgebraicGeometry/PrimeSpectrum/TensorProduct.lean Modified Mathlib/AlgebraicGeometry/ProjectiveSpectrum/Scheme.lean Modified Mathlib/AlgebraicGeometry/Pullbacks.lean Modified Mathlib/AlgebraicTopology/FundamentalGroupoid/InducedMaps.lean Modified Mathlib/Analysis/Analytic/Meromorphic.lean Modified Mathlib/Analysis/BoundedVariation.lean Modified Mathlib/Analysis/BoxIntegral/Partition/Filter.lean +/- def BoxIntegral.IntegrationParams.toFilteriUnion Modified Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Instances.lean Modified Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/NonUnital.lean Modified Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Unital.lean Modified Mathlib/Analysis/CStarAlgebra/Module.lean Modified Mathlib/Analysis/Calculus/FDeriv/Analytic.lean Modified Mathlib/Analysis/Calculus/FDeriv/Symmetric.lean Modified Mathlib/Analysis/Calculus/InverseFunctionTheorem/Deriv.lean Modified Mathlib/Analysis/Calculus/IteratedDeriv/Lemmas.lean Modified Mathlib/Analysis/Calculus/MeanValue.lean Modified Mathlib/Analysis/Calculus/Rademacher.lean +/- theorem LipschitzWith.ae_lineDifferentiableAt +/- theorem LipschitzWith.hasFderivAt_of_hasLineDerivAt_of_closure Modified Mathlib/Analysis/Complex/Angle.lean Modified Mathlib/Analysis/Complex/Hadamard.lean Modified Mathlib/Analysis/Complex/TaylorSeries.lean Modified Mathlib/Analysis/Complex/Tietze.lean Modified Mathlib/Analysis/Convex/Function.lean Modified Mathlib/Analysis/Distribution/SchwartzSpace.lean +/- theorem SchwartzMap.integrable_pow_mul_iteratedFDeriv Modified Mathlib/Analysis/Fourier/AddCircle.lean Modified Mathlib/Analysis/InnerProductSpace/Basic.lean +/- theorem OrthogonalFamily.inner_right_dfinsupp Modified Mathlib/Analysis/InnerProductSpace/Calculus.lean Modified Mathlib/Analysis/InnerProductSpace/LinearPMap.lean Modified Mathlib/Analysis/InnerProductSpace/l2Space.lean Modified Mathlib/Analysis/LocallyConvex/Barrelled.lean Modified Mathlib/Analysis/Normed/Affine/Isometry.lean Modified Mathlib/Analysis/Normed/Algebra/Exponential.lean Modified Mathlib/Analysis/Normed/Algebra/Spectrum.lean Modified Mathlib/Analysis/Normed/Module/Basic.lean +/- theorem norm_zsmul Modified Mathlib/Analysis/Normed/Operator/Banach.lean Modified Mathlib/Analysis/Normed/Ring/SeminormFromConst.lean Modified Mathlib/Analysis/NormedSpace/BallAction.lean Modified Mathlib/Analysis/NormedSpace/RCLike.lean Modified Mathlib/Analysis/ODE/Gronwall.lean Modified Mathlib/Analysis/ODE/PicardLindelof.lean +/- theorem PicardLindelof.exists_fixed +/- theorem PicardLindelof.exists_solution Modified Mathlib/Analysis/SpecialFunctions/Log/Base.lean Modified Mathlib/Analysis/SpecialFunctions/Pow/Integral.lean Modified Mathlib/Analysis/SpecificLimits/Basic.lean Modified Mathlib/Analysis/Subadditive.lean Modified Mathlib/CategoryTheory/Abelian/DiagramLemmas/Four.lean Modified Mathlib/CategoryTheory/Abelian/Exact.lean Modified Mathlib/CategoryTheory/Abelian/ProjectiveResolution.lean Modified Mathlib/CategoryTheory/CofilteredSystem.lean Modified Mathlib/CategoryTheory/ComposableArrows.lean Modified Mathlib/CategoryTheory/Functor/Derived/RightDerived.lean Modified Mathlib/CategoryTheory/Functor/FullyFaithful.lean +/- theorem CategoryTheory.Functor.FullyFaithful.isIso_of_isIso_map Modified Mathlib/CategoryTheory/Functor/KanExtension/Basic.lean +/- theorem CategoryTheory.Functor.hasLeftExtension_iff_postcomp₁ +/- theorem CategoryTheory.Functor.hasRightExtension_iff_postcomp₁ Modified Mathlib/CategoryTheory/Functor/KanExtension/Pointwise.lean +/- theorem CategoryTheory.Functor.LeftExtension.IsPointwiseLeftKanExtension.hom_ext +/- theorem CategoryTheory.Functor.RightExtension.IsPointwiseRightKanExtension.hom_ext Modified Mathlib/CategoryTheory/Galois/Decomposition.lean Modified Mathlib/CategoryTheory/Galois/Prorepresentability.lean +/- theorem CategoryTheory.PreGaloisCategory.AutGalois.π_surjective Modified Mathlib/CategoryTheory/GradedObject.lean Modified Mathlib/CategoryTheory/GradedObject/Trifunctor.lean Modified Mathlib/CategoryTheory/GradedObject/Unitor.lean +/- theorem CategoryTheory.GradedObject.mapBifunctor_triangle Modified Mathlib/CategoryTheory/Limits/Final.lean Modified Mathlib/CategoryTheory/Limits/MonoCoprod.lean Modified Mathlib/CategoryTheory/Limits/Preserves/Shapes/Square.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Types.lean Modified Mathlib/CategoryTheory/Limits/Types.lean Modified Mathlib/CategoryTheory/Localization/Adjunction.lean Modified Mathlib/CategoryTheory/Localization/Bousfield.lean Modified Mathlib/CategoryTheory/Localization/CalculusOfFractions.lean Modified Mathlib/CategoryTheory/Localization/CalculusOfFractions/Preadditive.lean Modified Mathlib/CategoryTheory/Localization/Equivalence.lean Modified Mathlib/CategoryTheory/Localization/FiniteProducts.lean Modified Mathlib/CategoryTheory/Localization/LocalizerMorphism.lean Modified Mathlib/CategoryTheory/Localization/SmallHom.lean Modified Mathlib/CategoryTheory/Localization/SmallShiftedHom.lean Modified Mathlib/CategoryTheory/Localization/Triangulated.lean Modified Mathlib/CategoryTheory/Preadditive/AdditiveFunctor.lean Modified Mathlib/CategoryTheory/Sites/Coherent/ReflectsPrecoherent.lean Modified Mathlib/CategoryTheory/Sites/Coherent/ReflectsPreregular.lean Modified Mathlib/CategoryTheory/Sites/CoverLifting.lean Modified Mathlib/CategoryTheory/Sites/CoverPreserving.lean Modified Mathlib/CategoryTheory/Sites/CoversTop.lean Modified Mathlib/CategoryTheory/Sites/DenseSubsite.lean +/- theorem CategoryTheory.Functor.IsCoverDense.Types.naturality +/- theorem CategoryTheory.Functor.IsCoverDense.Types.naturality_apply +/- theorem CategoryTheory.Functor.IsCoverDense.Types.pushforwardFamily_apply +/- theorem CategoryTheory.Functor.IsCoverDense.ext +/- theorem CategoryTheory.Functor.IsCoverDense.functorPullback_pushforward_covering +/- theorem CategoryTheory.Functor.IsDenseSubsite.coverPreserving +/- theorem CategoryTheory.Functor.IsDenseSubsite.equalizer_mem +/- theorem CategoryTheory.Functor.IsDenseSubsite.imageSieve_mem Modified Mathlib/CategoryTheory/Sites/Equivalence.lean +/- theorem CategoryTheory.GrothendieckTopology.PreservesSheafification.transport +/- theorem CategoryTheory.GrothendieckTopology.WEqualsLocallyBijective.transport Modified Mathlib/CategoryTheory/Sites/IsSheafOneHypercover.lean +/- theorem CategoryTheory.GrothendieckTopology.OneHypercoverFamily.IsSheafIff.fac +/- theorem CategoryTheory.GrothendieckTopology.OneHypercoverFamily.IsSheafIff.hom_ext +/- theorem CategoryTheory.GrothendieckTopology.OneHypercoverFamily.exists_oneHypercover +/- theorem CategoryTheory.GrothendieckTopology.OneHypercoverFamily.isSheaf_iff Modified Mathlib/CategoryTheory/Sites/LocallyInjective.lean Modified Mathlib/CategoryTheory/Sites/MayerVietorisSquare.lean Modified Mathlib/CategoryTheory/Sites/Preserves.lean +/- theorem CategoryTheory.Presieve.firstMap_eq_secondMap +/- def CategoryTheory.Presieve.preservesProductOfIsSheafFor Modified Mathlib/CategoryTheory/Sites/Sheaf.lean Modified Mathlib/CategoryTheory/Sites/SheafHom.lean +/- theorem CategoryTheory.PresheafHom.IsSheafFor.app_cond +/- theorem CategoryTheory.PresheafHom.IsSheafFor.exists_app Modified Mathlib/CategoryTheory/Triangulated/HomologicalFunctor.lean Modified Mathlib/CategoryTheory/Triangulated/Pretriangulated.lean Modified Mathlib/CategoryTheory/Triangulated/Subcategory.lean Modified Mathlib/Combinatorics/Additive/AP/Three/Behrend.lean Modified Mathlib/Combinatorics/SimpleGraph/Maps.lean Modified Mathlib/Combinatorics/SimpleGraph/Operations.lean Modified Mathlib/Combinatorics/SimpleGraph/Triangle/Tripartite.lean Modified Mathlib/Combinatorics/SimpleGraph/Turan.lean +/- theorem SimpleGraph.IsTuranMaximal.nonempty_iso_turanGraph +/- theorem SimpleGraph.exists_isTuranMaximal +/- theorem SimpleGraph.turanGraph_cliqueFree Modified Mathlib/Combinatorics/SimpleGraph/Walk.lean Modified Mathlib/Computability/AkraBazzi/AkraBazzi.lean +/- theorem AkraBazziRecurrence.asympBound_def' +/- theorem AkraBazziRecurrence.asympBound_def Modified Mathlib/Computability/TuringMachine.lean +/- theorem Turing.TM1to1.tr_respects Modified Mathlib/Data/FunLike/Equiv.lean +/- theorem EquivLike.subsingleton_dom Modified Mathlib/Data/Int/CardIntervalMod.lean Modified Mathlib/Data/List/Basic.lean Modified Mathlib/Data/Real/ConjExponents.lean +/- theorem NNReal.IsConjExponent.conj_eq +/- theorem Real.IsConjExponent.conj_eq Modified Mathlib/Data/Set/Lattice.lean Modified Mathlib/Data/Set/Sigma.lean Modified Mathlib/Data/Set/UnionLift.lean Modified Mathlib/Data/Setoid/Partition.lean Modified Mathlib/Data/TwoPointing.lean Modified Mathlib/Data/Vector/MapLemmas.lean Modified Mathlib/Data/Vector/Snoc.lean Modified Mathlib/Deprecated/Group.lean +/- theorem IsGroupHom.comp +/- theorem IsGroupHom.injective_iff +/- theorem IsGroupHom.map_div +/- theorem IsGroupHom.map_inv +/- theorem IsMonoidHom.map_mul' Modified Mathlib/Deprecated/Subgroup.lean Modified Mathlib/Dynamics/Circle/RotationNumber/TranslationNumber.lean Modified Mathlib/FieldTheory/Extension.lean +/- theorem IntermediateField.exists_algHom_of_splits_of_aeval Modified Mathlib/FieldTheory/KummerExtension.lean +/- theorem exists_root_adjoin_eq_top_of_isCyclic Modified Mathlib/FieldTheory/Minpoly/MinpolyDiv.lean Modified Mathlib/FieldTheory/NormalClosure.lean Modified Mathlib/FieldTheory/PrimitiveElement.lean Modified Mathlib/FieldTheory/Separable.lean Modified Mathlib/Geometry/Euclidean/Inversion/Basic.lean Modified Mathlib/Geometry/Euclidean/Sphere/Basic.lean Modified Mathlib/Geometry/Manifold/Algebra/LieGroup.lean Modified Mathlib/Geometry/Manifold/Algebra/Monoid.lean Modified Mathlib/Geometry/Manifold/Complex.lean Modified Mathlib/Geometry/Manifold/ContMDiff/NormedSpace.lean Modified Mathlib/Geometry/Manifold/IntegralCurve.lean +/- theorem exists_isIntegralCurveAt_of_contMDiffAt +/- theorem exists_isIntegralCurveAt_of_contMDiffAt_boundaryless Modified Mathlib/Geometry/Manifold/LocalInvariantProperties.lean Modified Mathlib/Geometry/Manifold/MFDeriv/Atlas.lean Modified Mathlib/Geometry/Manifold/MFDeriv/Basic.lean Modified Mathlib/Geometry/Manifold/PartitionOfUnity.lean Modified Mathlib/Geometry/Manifold/VectorBundle/SmoothSection.lean Modified Mathlib/Geometry/Manifold/WhitneyEmbedding.lean +/- theorem SmoothBumpCovering.exists_immersion_euclidean Modified Mathlib/GroupTheory/CoprodI.lean +/- theorem Monoid.CoprodI.empty_of_word_prod_eq_one +/- theorem Monoid.CoprodI.lift_word_prod_nontrivial_of_head_card +/- theorem Monoid.CoprodI.lift_word_prod_nontrivial_of_head_eq_last +/- theorem Monoid.CoprodI.lift_word_prod_nontrivial_of_not_empty Modified Mathlib/GroupTheory/CosetCover.lean +/- theorem Submodule.exists_finiteIndex_of_cover Modified Mathlib/GroupTheory/Coxeter/Inversion.lean Modified Mathlib/GroupTheory/EckmannHilton.lean Modified Mathlib/GroupTheory/PGroup.lean Modified Mathlib/GroupTheory/SchurZassenhaus.lean Modified Mathlib/GroupTheory/SpecificGroups/Cyclic.lean Modified Mathlib/GroupTheory/Transfer.lean Modified Mathlib/LinearAlgebra/AffineSpace/Basis.lean Modified Mathlib/LinearAlgebra/BilinearForm/Properties.lean Modified Mathlib/LinearAlgebra/CliffordAlgebra/Contraction.lean Modified Mathlib/LinearAlgebra/CliffordAlgebra/Prod.lean Modified Mathlib/LinearAlgebra/Dimension/Localization.lean Modified Mathlib/LinearAlgebra/Dual.lean +/- theorem Module.Dual.eq_of_ker_eq_of_apply_eq Modified Mathlib/LinearAlgebra/LinearDisjoint.lean Modified Mathlib/LinearAlgebra/LinearPMap.lean Modified Mathlib/LinearAlgebra/Matrix/Block.lean Modified Mathlib/LinearAlgebra/Matrix/Charpoly/LinearMap.lean +/- theorem Matrix.Represents.eq Modified Mathlib/LinearAlgebra/Matrix/PosDef.lean +/- theorem Matrix.posSemidef_conjTranspose_mul_self +/- theorem Matrix.posSemidef_diagonal_iff +/- theorem Matrix.posSemidef_self_mul_conjTranspose Modified Mathlib/LinearAlgebra/PerfectPairing.lean Modified Mathlib/LinearAlgebra/Pi.lean +/- theorem LinearMap.lsum_apply +/- theorem LinearMap.pi_apply_eq_sum_univ Modified Mathlib/LinearAlgebra/RootSystem/Basic.lean Modified Mathlib/LinearAlgebra/RootSystem/RootPositive.lean Modified Mathlib/LinearAlgebra/Semisimple.lean Modified Mathlib/LinearAlgebra/SesquilinearForm.lean +/- theorem LinearMap.IsRefl.domRestrict Modified Mathlib/LinearAlgebra/Span.lean Modified Mathlib/LinearAlgebra/TensorProduct/RightExactness.lean Modified Mathlib/Logic/Basic.lean +/- theorem dite_prop_iff_and +/- theorem dite_prop_iff_or Modified Mathlib/Logic/Equiv/TransferInstance.lean Modified Mathlib/Logic/Function/Basic.lean Modified Mathlib/MeasureTheory/Constructions/HaarToSphere.lean Modified Mathlib/MeasureTheory/Covering/Differentiation.lean Modified Mathlib/MeasureTheory/Covering/VitaliFamily.lean Modified Mathlib/MeasureTheory/Function/ConditionalExpectation/Unique.lean Modified Mathlib/MeasureTheory/Function/SpecialFunctions/Basic.lean Modified Mathlib/MeasureTheory/Group/Action.lean Modified Mathlib/MeasureTheory/Group/FundamentalDomain.lean Modified Mathlib/MeasureTheory/Integral/CircleIntegral.lean +/- theorem circleIntegral.integral_eq_zero_of_hasDerivWithinAt' +/- theorem circleIntegral.integral_eq_zero_of_hasDerivWithinAt +/- theorem circleIntegral.integral_smul_const Modified Mathlib/MeasureTheory/Integral/IntegralEqImproper.lean +/- theorem MeasureTheory.aecover_Icc +/- theorem MeasureTheory.aecover_Ici +/- theorem MeasureTheory.aecover_Iic Modified Mathlib/MeasureTheory/Integral/IntervalIntegral.lean +/- theorem ContinuousLinearMap.intervalIntegral_comp_comm +/- theorem intervalIntegral.integral_const' +/- theorem intervalIntegral.integral_const +/- theorem intervalIntegral.integral_const_of_cdf Modified Mathlib/MeasureTheory/Integral/Periodic.lean Modified Mathlib/MeasureTheory/Integral/SetIntegral.lean +/- theorem ContinuousMap.integral_apply Modified Mathlib/MeasureTheory/Integral/TorusIntegral.lean +/- theorem torusIntegral_dim0 +/- theorem torusIntegral_succ +/- theorem torusIntegral_succAbove Modified Mathlib/MeasureTheory/Measure/Haar/Quotient.lean Modified Mathlib/MeasureTheory/Measure/Lebesgue/VolumeOfBalls.lean +/- theorem MeasureTheory.volume_sum_rpow_lt_one Modified Mathlib/MeasureTheory/Measure/Restrict.lean Modified Mathlib/MeasureTheory/OuterMeasure/Induced.lean +/- theorem MeasureTheory.OuterMeasure.trim_anti_measurableSpace Modified Mathlib/ModelTheory/Substructures.lean Modified Mathlib/NumberTheory/Cyclotomic/Basic.lean Modified Mathlib/NumberTheory/Cyclotomic/PrimitiveRoots.lean +/- theorem IsPrimitiveRoot.dvd_of_isCyclotomicExtension +/- theorem IsPrimitiveRoot.exists_neg_pow_of_isOfFinOrder +/- theorem IsPrimitiveRoot.exists_pow_or_neg_mul_pow_of_isOfFinOrder Modified Mathlib/NumberTheory/Dioph.lean +/- theorem Dioph.pow_dioph Modified Mathlib/NumberTheory/DiophantineApproximation.lean +/- theorem Real.exists_rat_eq_convergent' Modified Mathlib/NumberTheory/EulerProduct/Basic.lean Modified Mathlib/NumberTheory/FLT/Three.lean Modified Mathlib/NumberTheory/LegendreSymbol/AddCharacter.lean Modified Mathlib/NumberTheory/LegendreSymbol/QuadraticReciprocity.lean +/- theorem ZMod.exists_sq_eq_neg_two_iff +/- theorem ZMod.exists_sq_eq_two_iff +/- theorem legendreSym.at_neg_two +/- theorem legendreSym.at_two Modified Mathlib/NumberTheory/Multiplicity.lean Modified Mathlib/NumberTheory/NumberField/Discriminant.lean Modified Mathlib/NumberTheory/NumberField/House.lean Modified Mathlib/NumberTheory/NumberField/Units/DirichletTheorem.lean Modified Mathlib/NumberTheory/Ostrowski.lean Modified Mathlib/NumberTheory/Padics/Hensel.lean Modified Mathlib/NumberTheory/Padics/RingHoms.lean +/- theorem PadicInt.lift_self Modified Mathlib/NumberTheory/PellMatiyasevic.lean Modified Mathlib/NumberTheory/PythagoreanTriples.lean +/- theorem PythagoreanTriple.eq +/- theorem PythagoreanTriple.mul +/- theorem PythagoreanTriple.symm Modified Mathlib/Order/Atoms.lean Modified Mathlib/Order/Bounds/Basic.lean +/- theorem Monotone.image_upperBounds_subset_upperBounds_image Modified Mathlib/Order/ConditionallyCompleteLattice/Basic.lean Modified Mathlib/Order/Extension/Well.lean Modified Mathlib/Order/GaloisConnection.lean +/- theorem GaloisConnection.l_sSup +/- theorem GaloisConnection.l_sup +/- theorem GaloisConnection.lowerBounds_u_image +/- theorem GaloisConnection.lt_iff_lt +/- theorem GaloisConnection.u_eq +/- theorem GaloisConnection.u_inf +/- theorem GaloisConnection.upperBounds_l_image Modified Mathlib/Order/Hom/Lattice.lean Modified Mathlib/Order/Interval/Finset/Fin.lean Modified Mathlib/Order/Interval/Set/Infinite.lean Modified Mathlib/Order/Interval/Set/OrdConnectedComponent.lean Modified Mathlib/Order/SupIndep.lean Modified Mathlib/Order/WellFounded.lean +/- theorem WellFounded.eq_strictMono_iff_eq_range +/- theorem WellFounded.self_le_of_strictMono Modified Mathlib/Probability/Kernel/Disintegration/MeasurableStieltjes.lean +/- theorem ProbabilityTheory.measurableSet_isRatStieltjesPoint Modified Mathlib/Probability/StrongLaw.lean Modified Mathlib/RingTheory/AdicCompletion/AsTensorProduct.lean +/- theorem AdicCompletion.ofTensorProductEquivOfFiniteNoetherian_symm_of +/- theorem AdicCompletion.ofTensorProduct_bijective_of_finite_of_isNoetherian +/- theorem AdicCompletion.ofTensorProduct_bijective_of_map_from_fin Modified Mathlib/RingTheory/AdicCompletion/Exactness.lean Modified Mathlib/RingTheory/Adjoin/PowerBasis.lean +/- theorem PowerBasis.repr_gen_pow_isIntegral +/- theorem PowerBasis.repr_mul_isIntegral +/- theorem PowerBasis.repr_pow_isIntegral Modified Mathlib/RingTheory/AlgebraicIndependent.lean Modified Mathlib/RingTheory/Artinian.lean Modified Mathlib/RingTheory/DedekindDomain/Ideal.lean Modified Mathlib/RingTheory/DedekindDomain/IntegralClosure.lean Modified Mathlib/RingTheory/DedekindDomain/PID.lean Modified Mathlib/RingTheory/Etale/Basic.lean Modified Mathlib/RingTheory/Ideal/Maps.lean - theorem AlgHom.coe_ideal_map - theorem AlgHom.coe_ker - def Algebra.idealMap + theorem Ideal.AlgHom.coe_ideal_map + theorem Ideal.AlgHom.coe_ker + def Ideal.Algebra.idealMap + theorem Ideal.Ideal.ker_le_comap + theorem Ideal.Ideal.map_eq_bot_iff_le_ker + theorem Ideal.Ideal.map_eq_bot_iff_of_injective + theorem Ideal.Ideal.map_eq_iff_sup_ker_eq_of_surjective + theorem Ideal.Ideal.map_isPrime_of_equiv + theorem Ideal.Ideal.map_isPrime_of_surjective + theorem Ideal.Ideal.map_radical_of_surjective + theorem Ideal.Ideal.map_sInf + theorem Ideal.RingHom.comap_ker + theorem Ideal.RingHom.eq_liftOfRightInverse + theorem Ideal.RingHom.injective_iff_ker_eq_bot + def Ideal.RingHom.ker + theorem Ideal.RingHom.ker_coe_equiv + theorem Ideal.RingHom.ker_eq + theorem Ideal.RingHom.ker_eq_bot_iff_eq_zero + theorem Ideal.RingHom.ker_eq_comap_bot + theorem Ideal.RingHom.ker_equiv + theorem Ideal.RingHom.ker_isMaximal_of_surjective + theorem Ideal.RingHom.ker_isPrime + theorem Ideal.RingHom.ker_ne_top + theorem Ideal.RingHom.ker_rangeRestrict + theorem Ideal.RingHom.ker_rangeSRestrict + def Ideal.RingHom.liftOfRightInverse + def Ideal.RingHom.liftOfRightInverseAux + theorem Ideal.RingHom.liftOfRightInverseAux_comp_apply + theorem Ideal.RingHom.liftOfRightInverse_comp + theorem Ideal.RingHom.liftOfRightInverse_comp_apply + theorem Ideal.RingHom.mem_ker + theorem Ideal.RingHom.not_one_mem_ker + theorem Ideal.RingHom.sub_mem_ker_iff +/- theorem Ideal.coe_comap +/- def Ideal.comap +/- theorem Ideal.comap_le_map_of_inv_on +/- theorem Ideal.comap_mono +/- theorem Ideal.comap_ne_top - theorem Ideal.ker_le_comap - theorem Ideal.map_eq_bot_iff_le_ker - theorem Ideal.map_eq_bot_iff_of_injective - theorem Ideal.map_eq_iff_sup_ker_eq_of_surjective - theorem Ideal.map_isPrime_of_equiv - theorem Ideal.map_isPrime_of_surjective +/- theorem Ideal.map_le_iff_le_comap - theorem Ideal.map_radical_of_surjective - theorem Ideal.map_sInf +/- theorem Ideal.mem_comap - theorem RingHom.comap_ker - theorem RingHom.eq_liftOfRightInverse - theorem RingHom.injective_iff_ker_eq_bot - def RingHom.ker - theorem RingHom.ker_coe_equiv - theorem RingHom.ker_eq - theorem RingHom.ker_eq_bot_iff_eq_zero - theorem RingHom.ker_eq_comap_bot - theorem RingHom.ker_equiv - theorem RingHom.ker_isMaximal_of_surjective - theorem RingHom.ker_isPrime - theorem RingHom.ker_ne_top - theorem RingHom.ker_rangeRestrict - theorem RingHom.ker_rangeSRestrict - def RingHom.liftOfRightInverse - def RingHom.liftOfRightInverseAux - theorem RingHom.liftOfRightInverseAux_comp_apply - theorem RingHom.liftOfRightInverse_comp - theorem RingHom.liftOfRightInverse_comp_apply - theorem RingHom.mem_ker - theorem RingHom.not_one_mem_ker - theorem RingHom.sub_mem_ker_iff Modified Mathlib/RingTheory/Ideal/MinimalPrime.lean Modified Mathlib/RingTheory/Ideal/Over.lean +/- theorem Ideal.map_eq_top_iff +/- theorem Ideal.map_eq_top_iff_of_ker_le Modified Mathlib/RingTheory/IntegralClosure/IntegralRestrict.lean Modified Mathlib/RingTheory/IsAdjoinRoot.lean Modified Mathlib/RingTheory/IsTensorProduct.lean Modified Mathlib/RingTheory/Jacobson.lean +/- theorem Ideal.Polynomial.isMaximal_comap_C_of_isMaximal Modified Mathlib/RingTheory/Localization/Basic.lean +/- theorem IsLocalization.at_units +/- theorem IsLocalization.eq_iff_eq +/- theorem IsLocalization.mk'_eq_iff_mk'_eq Modified Mathlib/RingTheory/Localization/Finiteness.lean Modified Mathlib/RingTheory/Localization/FractionRing.lean Modified Mathlib/RingTheory/Localization/Ideal.lean +/- theorem IsLocalization.map_comap Modified Mathlib/RingTheory/Localization/LocalizationLocalization.lean Modified Mathlib/RingTheory/Localization/Module.lean Modified Mathlib/RingTheory/Localization/NormTrace.lean Modified Mathlib/RingTheory/Localization/Submodule.lean Modified Mathlib/RingTheory/Perfection.lean +/- def Tilt Modified Mathlib/RingTheory/Polynomial/GaussLemma.lean +/- theorem Polynomial.isIntegrallyClosed_iff' Modified Mathlib/RingTheory/Polynomial/SeparableDegree.lean Modified Mathlib/RingTheory/QuotientNilpotent.lean Modified Mathlib/RingTheory/Regular/IsSMulRegular.lean Modified Mathlib/RingTheory/RootsOfUnity/Minpoly.lean Modified Mathlib/RingTheory/Smooth/Basic.lean Modified Mathlib/RingTheory/Smooth/Kaehler.lean Modified Mathlib/RingTheory/UniqueFactorizationDomain.lean Modified Mathlib/RingTheory/Unramified/Basic.lean +/- theorem Algebra.FormallyUnramified.of_isLocalization Modified Mathlib/RingTheory/Valuation/Integral.lean Modified Mathlib/RingTheory/WittVector/Truncated.lean +/- theorem TruncatedWittVector.iInf_ker_truncate +/- theorem TruncatedWittVector.truncate_surjective Modified Mathlib/Topology/Algebra/Module/FiniteDimension.lean +/- theorem FiniteDimensional.complete +/- theorem LinearMap.closedEmbedding_of_injective +/- theorem Submodule.closed_of_finiteDimensional +/- theorem closedEmbedding_smul_left +/- theorem isClosedMap_smul_left Modified Mathlib/Topology/Algebra/Monoid.lean Modified Mathlib/Topology/Algebra/MulAction.lean Modified Mathlib/Topology/Algebra/Nonarchimedean/Bases.lean Modified Mathlib/Topology/Algebra/UniformGroup.lean +/- theorem tendsto_div_comap_self Modified Mathlib/Topology/Category/Profinite/Nobeling.lean +/- theorem Profinite.NobelingProof.GoodProducts.linearIndependentEmpty +/- theorem Profinite.NobelingProof.GoodProducts.linearIndependentSingleton +/- theorem Profinite.NobelingProof.GoodProducts.linearIndependent_iff_union_smaller +/- theorem Profinite.NobelingProof.GoodProducts.span +/- theorem Profinite.NobelingProof.GoodProducts.spanFin +/- theorem Profinite.NobelingProof.GoodProducts.span_iff_products +/- theorem Profinite.NobelingProof.Products.evalCons +/- theorem Profinite.NobelingProof.Products.isGood_nil +/- theorem Profinite.NobelingProof.Products.lt_nil_empty +/- theorem Profinite.NobelingProof.Products.span_nil_eq_top +/- theorem Profinite.NobelingProof.list_prod_apply Modified Mathlib/Topology/Category/Stonean/Limits.lean Modified Mathlib/Topology/Connected/Clopen.lean Modified Mathlib/Topology/Covering.lean Modified Mathlib/Topology/LocalAtTarget.lean Modified Mathlib/Topology/MetricSpace/Contracting.lean Modified Mathlib/Topology/MetricSpace/Isometry.lean Modified Mathlib/Topology/Order/LawsonTopology.lean Modified Mathlib/Topology/Order/LeftRightLim.lean Modified Mathlib/Topology/SeparatedMap.lean +/- theorem IsLocallyInjective.comp_left +/- theorem IsLocallyInjective.isOpen_eqLocus +/- theorem IsSeparatedMap.comp_left +/- theorem IsSeparatedMap.constOn_of_comp +/- theorem IsSeparatedMap.eqOn_of_comp_eqOn +/- theorem IsSeparatedMap.eq_of_comp_eq +/- theorem IsSeparatedMap.isClosed_eqLocus Modified Mathlib/Topology/Separation.lean +/- theorem IsClosed.HasSeparatingCover +/- theorem Set.Finite.isGδ Modified Mathlib/Topology/StoneCech.lean Modified Mathlib/Topology/Support.lean +/- theorem HasCompactMulSupport.is_one_at_infty Modified Mathlib/Topology/UniformSpace/UniformEmbedding.lean Modified lean-toolchain Modified test/casesm.lean Modified test/fun_prop_dev.lean +/- structure ConHom +/- structure LinHom +/- theorem add_Con' +/- theorem add_Con +/- theorem add_Lin' +/- theorem add_Lin +/- def foo3 2024-08-12 17:47:56 c3a48ab feat(CategoryTheory): Composing `Comma.map` with `Comma.fst` and `Comma.snd` (#15730) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Comma/Basic.lean + def CategoryTheory.Comma.mapFst + def CategoryTheory.Comma.mapSnd + theorem CategoryTheory.Comma.map_fst + theorem CategoryTheory.Comma.map_snd 2024-08-12 16:50:11 795a856 chore: uncomment some now viable assert_not_exists (#15715) Per [zulip](https://leanprover.zulipchat.com/#narrow/stream/345428-mathlib-reviewers/topic/.60assert_not_exists.60.20at.20top.20or.20bottom.20of.20file.3F/near/459960523) discussion. ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/Defs.lean Modified Mathlib/Algebra/Associated/Basic.lean Modified Mathlib/Algebra/Group/Aut.lean Modified Mathlib/Algebra/Group/Conj.lean Modified Mathlib/Algebra/Group/ConjFinite.lean Modified Mathlib/Algebra/Group/Defs.lean Modified Mathlib/Algebra/Group/Hom/Instances.lean Modified Mathlib/Algebra/Group/Subgroup/Basic.lean Modified Mathlib/Algebra/Module/Basic.lean Modified Mathlib/Algebra/Order/CauSeq/Basic.lean Modified Mathlib/Algebra/Order/Group/Defs.lean Modified Mathlib/Algebra/Order/Group/Unbundled/Int.lean Modified Mathlib/Algebra/Order/Ring/Defs.lean Modified Mathlib/Algebra/Order/Ring/Unbundled/Basic.lean Modified Mathlib/Algebra/Ring/Center.lean Modified Mathlib/Algebra/Ring/Defs.lean Modified Mathlib/Algebra/Ring/Equiv.lean Modified Mathlib/Algebra/Ring/Hom/Defs.lean Modified Mathlib/Analysis/Normed/Field/Basic.lean Modified Mathlib/Analysis/Seminorm.lean Modified Mathlib/CategoryTheory/Limits/Yoneda.lean Modified Mathlib/Data/Complex/Basic.lean Modified Mathlib/Data/Fin/Basic.lean Modified Mathlib/Data/Finset/Basic.lean Modified Mathlib/Data/List/Basic.lean Modified Mathlib/Data/Nat/Factors.lean Modified Mathlib/FieldTheory/PolynomialGaloisGroup.lean Modified Mathlib/GroupTheory/Perm/Fin.lean Modified Mathlib/GroupTheory/Subgroup/Center.lean Modified Mathlib/GroupTheory/Submonoid/Center.lean Modified Mathlib/GroupTheory/Submonoid/Centralizer.lean Modified Mathlib/GroupTheory/Subsemigroup/Center.lean Modified Mathlib/GroupTheory/Subsemigroup/Centralizer.lean Modified Mathlib/LinearAlgebra/Basis/Basic.lean Modified Mathlib/LinearAlgebra/Basis/Defs.lean Modified Mathlib/MeasureTheory/Function/AEEqFun.lean Modified Mathlib/MeasureTheory/Function/SpecialFunctions/Basic.lean Modified Mathlib/MeasureTheory/Function/StronglyMeasurable/Basic.lean Modified Mathlib/NumberTheory/Wilson.lean Modified Mathlib/Order/CompleteLatticeIntervals.lean Modified Mathlib/Order/ConditionallyCompleteLattice/Basic.lean Modified Mathlib/Order/Hom/Basic.lean Modified Mathlib/Order/Interval/Finset/Nat.lean Modified Mathlib/Order/SemiconjSup.lean Modified Mathlib/Util/AssertExists.lean 2024-08-12 16:36:26 f2cd6ef doc: Add a note on how to use `CompactlyGeneratedSpace` (#15132) Following this discussion : https://leanprover.zulipchat.com/#narrow/stream/116395-maths/topic/Compactly.20generated.20spaces/near/453958229. Indicate that `CompactlyGeneratedSpace` should be used with an explicit universe parameter. ESTIMATED CHANGES Modified Mathlib/Topology/Category/CompactlyGenerated.lean 2024-08-12 15:39:15 d6d9c22 chore: remove unnecessary _root_ qualifications (#15704) ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Equiv/Basic.lean Modified Mathlib/Data/NNReal/Basic.lean Modified Mathlib/NumberTheory/KummerDedekind.lean Modified Mathlib/RingTheory/Algebraic.lean Modified Mathlib/RingTheory/ClassGroup.lean Modified Mathlib/RingTheory/Ideal/Norm.lean +/- theorem Ideal.absNorm_top Modified Mathlib/RingTheory/Kaehler/Basic.lean Modified Mathlib/RingTheory/Localization/Submodule.lean Modified Mathlib/RingTheory/MvPolynomial/Localization.lean Modified Mathlib/RingTheory/Polynomial/Eisenstein/IsIntegral.lean Modified Mathlib/RingTheory/RootsOfUnity/Basic.lean Modified Mathlib/RingTheory/TensorProduct/Basic.lean 2024-08-12 15:28:15 75da87b perf(Geometry/Manifold/Instances/Sphere): speed up (#15488) Speed up the file by 9% by doing the following - squeeze simps where the full form is short and this is a clear win - "squeeze" three really slow field_simp calls: replace them by the equivalent simp invocation and squeeze that - avoid one slow `convert` - squeeze two really slow nlinarith calls (they're still slow, but much better) - replace one congr! by congr This is a reduced version of #13456, which is hopefully less controversial. ESTIMATED CHANGES Modified Mathlib/Geometry/Manifold/Instances/Sphere.lean 2024-08-12 15:28:14 eb19004 perf(Geometry/Euclidean): squeeze slow field_simp calls (#13497) Replace them by the equivalent `simp` call and squeeze that. We leave `field_simp` calls slower than roughly 150ms in place. A few calls cannot easily be replaced; we leave these alone as well. Speeds up all affected files, including `Euclidean/Circumcenter` by 4%, `Inversion/Basic` by 27% and `Triangle` by 52%. ESTIMATED CHANGES Modified Mathlib/Geometry/Euclidean/Angle/Oriented/Basic.lean Modified Mathlib/Geometry/Euclidean/Angle/Unoriented/Basic.lean Modified Mathlib/Geometry/Euclidean/Circumcenter.lean Modified Mathlib/Geometry/Euclidean/Inversion/Basic.lean Modified Mathlib/Geometry/Euclidean/Inversion/ImageHyperplane.lean Modified Mathlib/Geometry/Euclidean/MongePoint.lean Modified Mathlib/Geometry/Euclidean/Sphere/Ptolemy.lean Modified Mathlib/Geometry/Euclidean/Triangle.lean 2024-08-12 15:04:35 2215b9e doc(Tactics): fix typo (#15739) Fix minor typo in `compute_degree` docstring. ESTIMATED CHANGES Modified Mathlib/Tactic/ComputeDegree.lean 2024-08-12 15:04:34 f57201f chore: deduplicate `inv_mul_cancel`/`mul_inv_cancel`, etc. (#15717) * `mul_left_inv`, `inv_mul_self` → `inv_mul_cancel` (for `Group`) * `mul_right_inv`, `mul_inv_self` → `mul_inv_cancel` * `add_left_neg`, `neg_add_self` → `neg_add_cancel` (for `AddGroup`) * `add_right_neg`, `add_neg_self` → `add_neg_cancel` * `inv_mul_cancel` → `inv_mul_cancel₀` (for `GroupWithZero`) * `mul_inv_cancel` → `mul_inv_cancel₀` ESTIMATED CHANGES Modified Archive/Imo/Imo2008Q3.lean Modified Archive/Imo/Imo2024Q2.lean Modified Archive/Imo/Imo2024Q6.lean Modified Archive/Wiedijk100Theorems/AreaOfACircle.lean Modified Archive/Wiedijk100Theorems/BuffonsNeedle.lean Modified Counterexamples/SorgenfreyLine.lean Modified Mathlib/Algebra/AddTorsor.lean Modified Mathlib/Algebra/Algebra/Equiv.lean Modified Mathlib/Algebra/BigOperators/Fin.lean Modified Mathlib/Algebra/BigOperators/Group/List.lean Modified Mathlib/Algebra/Category/Grp/Colimits.lean Modified Mathlib/Algebra/Category/Grp/EpiMono.lean Modified Mathlib/Algebra/Category/Grp/FilteredColimits.lean Modified Mathlib/Algebra/Category/ModuleCat/Presheaf.lean Modified Mathlib/Algebra/Category/Ring/Colimits.lean Modified Mathlib/Algebra/CharP/Basic.lean Modified Mathlib/Algebra/CharZero/Quotient.lean Modified Mathlib/Algebra/DirectLimit.lean Modified Mathlib/Algebra/Field/IsField.lean Modified Mathlib/Algebra/Field/MinimalAxioms.lean Modified Mathlib/Algebra/Field/Subfield.lean Modified Mathlib/Algebra/GeomSum.lean Modified Mathlib/Algebra/Group/Action/Defs.lean +/- theorem inv_smul_smul +/- theorem smul_inv_smul Modified Mathlib/Algebra/Group/Action/Units.lean Modified Mathlib/Algebra/Group/AddChar.lean Modified Mathlib/Algebra/Group/Aut.lean Modified Mathlib/Algebra/Group/Basic.lean +/- theorem div_self' Modified Mathlib/Algebra/Group/Conj.lean Modified Mathlib/Algebra/Group/Defs.lean + theorem inv_mul_cancel - theorem inv_mul_self + theorem mul_inv_cancel - theorem mul_inv_self - theorem mul_left_inv - theorem mul_right_inv Modified Mathlib/Algebra/Group/Fin/Basic.lean Modified Mathlib/Algebra/Group/Hom/Basic.lean Modified Mathlib/Algebra/Group/Hom/Defs.lean Modified Mathlib/Algebra/Group/Hom/Instances.lean Modified Mathlib/Algebra/Group/InjSurj.lean Modified Mathlib/Algebra/Group/Int.lean Modified Mathlib/Algebra/Group/Invertible/Defs.lean Modified Mathlib/Algebra/Group/MinimalAxioms.lean Modified Mathlib/Algebra/Group/Opposite.lean Modified Mathlib/Algebra/Group/Pi/Basic.lean Modified Mathlib/Algebra/Group/Prod.lean Modified Mathlib/Algebra/Group/Semiconj/Defs.lean Modified Mathlib/Algebra/Group/Subgroup/Basic.lean Modified Mathlib/Algebra/Group/Subgroup/Pointwise.lean Modified Mathlib/Algebra/Group/Submonoid/Membership.lean Modified Mathlib/Algebra/Group/TypeTags.lean Modified Mathlib/Algebra/Group/UniqueProds.lean Modified Mathlib/Algebra/Group/Units.lean +/- theorem Group.isUnit Modified Mathlib/Algebra/Group/Units/Equiv.lean Modified Mathlib/Algebra/Group/Units/Hom.lean Modified Mathlib/Algebra/GroupWithZero/Action/Defs.lean Modified Mathlib/Algebra/GroupWithZero/Basic.lean +/- theorem div_self_mul_self + theorem mul_inv_mul_cancel - theorem mul_inv_mul_self Modified Mathlib/Algebra/GroupWithZero/Defs.lean - theorem mul_inv_cancel + theorem mul_inv_cancel₀ Modified Mathlib/Algebra/GroupWithZero/InjSurj.lean Modified Mathlib/Algebra/GroupWithZero/Invertible.lean Modified Mathlib/Algebra/GroupWithZero/NeZero.lean - theorem inv_mul_cancel + theorem inv_mul_cancel₀ Modified Mathlib/Algebra/GroupWithZero/NonZeroDivisors.lean Modified Mathlib/Algebra/GroupWithZero/Opposite.lean Modified Mathlib/Algebra/GroupWithZero/Units/Basic.lean Modified Mathlib/Algebra/GroupWithZero/Units/Lemmas.lean Modified Mathlib/Algebra/GroupWithZero/WithZero.lean Modified Mathlib/Algebra/Homology/DerivedCategory/Ext.lean Modified Mathlib/Algebra/Homology/Homotopy.lean Modified Mathlib/Algebra/Homology/HomotopyCategory/DegreewiseSplit.lean Modified Mathlib/Algebra/Homology/HomotopyCategory/HomComplex.lean Modified Mathlib/Algebra/Homology/HomotopyCategory/MappingCone.lean Modified Mathlib/Algebra/Homology/HomotopyCategory/Pretriangulated.lean Modified Mathlib/Algebra/Homology/HomotopyCategory/Triangulated.lean Modified Mathlib/Algebra/Homology/ShortComplex/Preadditive.lean Modified Mathlib/Algebra/Lie/BaseChange.lean Modified Mathlib/Algebra/Lie/Weights/Cartan.lean Modified Mathlib/Algebra/Lie/Weights/Killing.lean Modified Mathlib/Algebra/Lie/Weights/RootSystem.lean Modified Mathlib/Algebra/Module/CharacterModule.lean Modified Mathlib/Algebra/Module/Defs.lean Modified Mathlib/Algebra/Module/Equiv/Basic.lean Modified Mathlib/Algebra/Module/LocalizedModule.lean Modified Mathlib/Algebra/Order/AddGroupWithTop.lean Modified Mathlib/Algebra/Order/CauSeq/Basic.lean Modified Mathlib/Algebra/Order/Field/Basic.lean Modified Mathlib/Algebra/Order/Floor.lean Modified Mathlib/Algebra/Order/Group/PosPart.lean Modified Mathlib/Algebra/Order/Group/Unbundled/Abs.lean Modified Mathlib/Algebra/Order/Group/Unbundled/Basic.lean Modified Mathlib/Algebra/Order/GroupWithZero/Canonical.lean Modified Mathlib/Algebra/Order/Positive/Field.lean Modified Mathlib/Algebra/Order/Ring/Cast.lean Modified Mathlib/Algebra/Order/ToIntervalMod.lean Modified Mathlib/Algebra/PUnitInstances/Algebra.lean Modified Mathlib/Algebra/Polynomial/Basic.lean Modified Mathlib/Algebra/Polynomial/CancelLeads.lean Modified Mathlib/Algebra/Polynomial/Degree/Lemmas.lean Modified Mathlib/Algebra/Polynomial/Eval.lean Modified Mathlib/Algebra/Polynomial/FieldDivision.lean Modified Mathlib/Algebra/Polynomial/Laurent.lean Modified Mathlib/Algebra/Polynomial/Smeval.lean Modified Mathlib/Algebra/Polynomial/Taylor.lean Modified Mathlib/Algebra/Quandle.lean Modified Mathlib/Algebra/Quaternion.lean Modified Mathlib/Algebra/Ring/Aut.lean Modified Mathlib/Algebra/Ring/Basic.lean Modified Mathlib/Algebra/Ring/BooleanRing.lean Modified Mathlib/Algebra/Ring/Defs.lean Modified Mathlib/Algebra/Ring/MinimalAxioms.lean Modified Mathlib/Algebra/Ring/Opposite.lean Modified Mathlib/Algebra/Ring/Subring/Basic.lean Modified Mathlib/Algebra/Ring/ULift.lean Modified Mathlib/Algebra/RingQuot.lean Modified Mathlib/Algebra/SMulWithZero.lean Modified Mathlib/Algebra/Star/CHSH.lean Modified Mathlib/Algebra/Star/Unitary.lean Modified Mathlib/Algebra/TrivSqZeroExt.lean Modified Mathlib/Algebra/Tropical/Basic.lean Modified Mathlib/AlgebraicGeometry/EllipticCurve/Group.lean Modified Mathlib/AlgebraicGeometry/EllipticCurve/Weierstrass.lean Modified Mathlib/AlgebraicTopology/AlternatingFaceMapComplex.lean Modified Mathlib/AlgebraicTopology/DoldKan/Degeneracies.lean Modified Mathlib/AlgebraicTopology/DoldKan/Faces.lean Modified Mathlib/AlgebraicTopology/ExtraDegeneracy.lean Modified Mathlib/Analysis/Analytic/Basic.lean Modified Mathlib/Analysis/Analytic/Meromorphic.lean Modified Mathlib/Analysis/Analytic/RadiusLiminf.lean Modified Mathlib/Analysis/Asymptotics/SpecificAsymptotics.lean Modified Mathlib/Analysis/Asymptotics/SuperpolynomialDecay.lean Modified Mathlib/Analysis/BoundedVariation.lean Modified Mathlib/Analysis/Calculus/BumpFunction/Normed.lean Modified Mathlib/Analysis/Calculus/ContDiff/Bounds.lean Modified Mathlib/Analysis/Calculus/FDeriv/Analytic.lean Modified Mathlib/Analysis/Calculus/FDeriv/Basic.lean Modified Mathlib/Analysis/Calculus/LineDeriv/Basic.lean Modified Mathlib/Analysis/Calculus/Rademacher.lean Modified Mathlib/Analysis/Calculus/TangentCone.lean Modified Mathlib/Analysis/Complex/OpenMapping.lean Modified Mathlib/Analysis/Convex/Between.lean Modified Mathlib/Analysis/Convex/Combination.lean Modified Mathlib/Analysis/Convex/Cone/Basic.lean Modified Mathlib/Analysis/Convex/Cone/Extension.lean Modified Mathlib/Analysis/Convex/Segment.lean Modified Mathlib/Analysis/Convex/Side.lean Modified Mathlib/Analysis/Convex/SpecificFunctions/Basic.lean Modified Mathlib/Analysis/Convex/Uniform.lean Modified Mathlib/Analysis/Fourier/AddCircle.lean Modified Mathlib/Analysis/Fourier/FourierTransform.lean Modified Mathlib/Analysis/FunctionalSpaces/SobolevInequality.lean Modified Mathlib/Analysis/InnerProductSpace/OfNorm.lean Modified Mathlib/Analysis/LocallyConvex/ContinuousOfBounded.lean Modified Mathlib/Analysis/Matrix.lean Modified Mathlib/Analysis/MeanInequalities.lean Modified Mathlib/Analysis/MeanInequalitiesPow.lean Modified Mathlib/Analysis/MellinInversion.lean Modified Mathlib/Analysis/MellinTransform.lean Modified Mathlib/Analysis/Normed/Affine/AddTorsor.lean Modified Mathlib/Analysis/Normed/Affine/Isometry.lean Modified Mathlib/Analysis/Normed/Algebra/Exponential.lean Modified Mathlib/Analysis/Normed/Field/Basic.lean Modified Mathlib/Analysis/Normed/Group/AddCircle.lean Modified Mathlib/Analysis/Normed/Group/Basic.lean Modified Mathlib/Analysis/Normed/Lp/PiLp.lean Modified Mathlib/Analysis/Normed/Lp/ProdLp.lean Modified Mathlib/Analysis/Normed/Lp/lpSpace.lean Modified Mathlib/Analysis/Normed/Module/Dual.lean Modified Mathlib/Analysis/Normed/MulAction.lean Modified Mathlib/Analysis/Normed/Operator/Banach.lean Modified Mathlib/Analysis/Normed/Operator/ContinuousLinearMap.lean Modified Mathlib/Analysis/Normed/Operator/LinearIsometry.lean Modified Mathlib/Analysis/Normed/Ring/Seminorm.lean Modified Mathlib/Analysis/Normed/Ring/SeminormFromConst.lean Modified Mathlib/Analysis/Normed/Ring/Units.lean Modified Mathlib/Analysis/NormedSpace/Connected.lean Modified Mathlib/Analysis/NormedSpace/HahnBanach/Extension.lean Modified Mathlib/Analysis/NormedSpace/HahnBanach/SeparatingDual.lean Modified Mathlib/Analysis/NormedSpace/OperatorNorm/Basic.lean Modified Mathlib/Analysis/NormedSpace/Pointwise.lean Modified Mathlib/Analysis/NormedSpace/RCLike.lean Modified Mathlib/Analysis/NormedSpace/Real.lean Modified Mathlib/Analysis/NormedSpace/RieszLemma.lean Modified Mathlib/Analysis/NormedSpace/SphereNormEquiv.lean Modified Mathlib/Analysis/RCLike/Basic.lean Modified Mathlib/Analysis/Seminorm.lean Modified Mathlib/Analysis/SpecialFunctions/Complex/Arctan.lean Modified Mathlib/Analysis/SpecialFunctions/Complex/LogBounds.lean Modified Mathlib/Analysis/SpecialFunctions/Gamma/Basic.lean Modified Mathlib/Analysis/SpecialFunctions/Gamma/Beta.lean Modified Mathlib/Analysis/SpecialFunctions/Gaussian/GaussianIntegral.lean Modified Mathlib/Analysis/SpecialFunctions/Integrals.lean Modified Mathlib/Analysis/SpecialFunctions/Log/Deriv.lean Modified Mathlib/Analysis/SpecialFunctions/Log/NegMulLog.lean Modified Mathlib/Analysis/SpecialFunctions/Pow/Complex.lean Modified Mathlib/Analysis/SpecialFunctions/Pow/NNReal.lean Modified Mathlib/Analysis/SpecialFunctions/Pow/Real.lean Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Series.lean Modified Mathlib/Analysis/SpecificLimits/Basic.lean Modified Mathlib/Analysis/SpecificLimits/FloorPow.lean Modified Mathlib/CategoryTheory/Abelian/Basic.lean Modified Mathlib/CategoryTheory/Abelian/NonPreadditive.lean + theorem CategoryTheory.NonPreadditiveAbelian.add_neg_cancel - theorem CategoryTheory.NonPreadditiveAbelian.add_neg_self + theorem CategoryTheory.NonPreadditiveAbelian.neg_add_cancel - theorem CategoryTheory.NonPreadditiveAbelian.neg_add_self Modified Mathlib/CategoryTheory/Endomorphism.lean Modified Mathlib/CategoryTheory/Galois/Examples.lean Modified Mathlib/CategoryTheory/Groupoid/VertexGroup.lean Modified Mathlib/CategoryTheory/Idempotents/Karoubi.lean Modified Mathlib/CategoryTheory/Localization/CalculusOfFractions/Preadditive.lean - theorem CategoryTheory.Localization.Preadditive.add'_left_neg' + theorem CategoryTheory.Localization.Preadditive.neg'_add'_self Modified Mathlib/CategoryTheory/Preadditive/Basic.lean Modified Mathlib/CategoryTheory/Preadditive/EilenbergMoore.lean Modified Mathlib/CategoryTheory/Preadditive/EndoFunctor.lean Modified Mathlib/CategoryTheory/Preadditive/FunctorCategory.lean Modified Mathlib/CategoryTheory/Quotient/Preadditive.lean Modified Mathlib/CategoryTheory/Shift/Basic.lean + theorem CategoryTheory.shift_shiftFunctorCompIsoId_add_neg_cancel_hom_app + theorem CategoryTheory.shift_shiftFunctorCompIsoId_add_neg_cancel_inv_app - theorem CategoryTheory.shift_shiftFunctorCompIsoId_add_neg_self_hom_app - theorem CategoryTheory.shift_shiftFunctorCompIsoId_add_neg_self_inv_app + theorem CategoryTheory.shift_shiftFunctorCompIsoId_neg_add_cancel_hom_app + theorem CategoryTheory.shift_shiftFunctorCompIsoId_neg_add_cancel_inv_app - theorem CategoryTheory.shift_shiftFunctorCompIsoId_neg_add_self_hom_app - theorem CategoryTheory.shift_shiftFunctorCompIsoId_neg_add_self_inv_app Modified Mathlib/CategoryTheory/SingleObj.lean Modified Mathlib/CategoryTheory/Sites/NonabelianCohomology/H1.lean Modified Mathlib/CategoryTheory/Triangulated/HomologicalFunctor.lean Modified Mathlib/CategoryTheory/Triangulated/Opposite.lean Modified Mathlib/CategoryTheory/Triangulated/Rotate.lean Modified Mathlib/CategoryTheory/Triangulated/TStructure/Basic.lean Modified Mathlib/CategoryTheory/Triangulated/TriangleShift.lean Modified Mathlib/Combinatorics/Additive/AP/Three/Behrend.lean Modified Mathlib/Combinatorics/SetFamily/AhlswedeZhang.lean Modified Mathlib/Combinatorics/SetFamily/CauchyDavenport.lean Modified Mathlib/Computability/AkraBazzi/AkraBazzi.lean Modified Mathlib/Computability/AkraBazzi/GrowsPolynomially.lean Modified Mathlib/Data/Complex/Basic.lean Modified Mathlib/Data/Complex/Exponential.lean Modified Mathlib/Data/DFinsupp/NeLocus.lean Modified Mathlib/Data/ENNReal/Inv.lean Modified Mathlib/Data/ENNReal/Operations.lean Modified Mathlib/Data/Finsupp/NeLocus.lean Modified Mathlib/Data/Matrix/Rank.lean Modified Mathlib/Data/NNReal/Basic.lean Modified Mathlib/Data/Nat/Choose/Sum.lean Modified Mathlib/Data/Nat/Totient.lean Modified Mathlib/Data/Num/Lemmas.lean Modified Mathlib/Data/Rat/Cast/Defs.lean Modified Mathlib/Data/Rat/Defs.lean Modified Mathlib/Data/Rat/Star.lean Modified Mathlib/Data/Real/Archimedean.lean Modified Mathlib/Data/Real/Basic.lean Modified Mathlib/Data/Real/GoldenRatio.lean Modified Mathlib/Data/Real/Hyperreal.lean Modified Mathlib/Data/Real/Irrational.lean Modified Mathlib/Data/ZMod/Basic.lean Modified Mathlib/Data/ZMod/Defs.lean Modified Mathlib/Deprecated/Group.lean Modified Mathlib/Deprecated/Subgroup.lean Modified Mathlib/Deprecated/Subring.lean Modified Mathlib/Dynamics/Flow.lean Modified Mathlib/Dynamics/Newton.lean Modified Mathlib/FieldTheory/AbelRuffini.lean Modified Mathlib/FieldTheory/Finite/Basic.lean Modified Mathlib/FieldTheory/Minpoly/Field.lean Modified Mathlib/FieldTheory/MvPolynomial.lean Modified Mathlib/FieldTheory/PerfectClosure.lean Modified Mathlib/FieldTheory/RatFunc/Basic.lean Modified Mathlib/Geometry/Euclidean/Angle/Oriented/Basic.lean Modified Mathlib/Geometry/Euclidean/Angle/Unoriented/Affine.lean Modified Mathlib/Geometry/Euclidean/Basic.lean Modified Mathlib/Geometry/Manifold/Algebra/SmoothFunctions.lean Modified Mathlib/Geometry/Manifold/Instances/Sphere.lean Modified Mathlib/Geometry/Manifold/Sheaf/LocallyRingedSpace.lean Modified Mathlib/GroupTheory/Complement.lean Modified Mathlib/GroupTheory/Congruence/Basic.lean Modified Mathlib/GroupTheory/Coprod/Basic.lean + theorem Monoid.Coprod.con_inv_mul_cancel - theorem Monoid.Coprod.con_mul_left_inv Modified Mathlib/GroupTheory/CoprodI.lean Modified Mathlib/GroupTheory/Coset.lean Modified Mathlib/GroupTheory/CosetCover.lean Modified Mathlib/GroupTheory/DoubleCoset.lean Modified Mathlib/GroupTheory/FreeGroup/Basic.lean Modified Mathlib/GroupTheory/GroupAction/Basic.lean Modified Mathlib/GroupTheory/GroupAction/ConjAct.lean Modified Mathlib/GroupTheory/GroupAction/Quotient.lean Modified Mathlib/GroupTheory/Index.lean Modified Mathlib/GroupTheory/Perm/Basic.lean Modified Mathlib/GroupTheory/Perm/Cycle/Basic.lean Modified Mathlib/GroupTheory/Perm/Cycle/Type.lean Modified Mathlib/GroupTheory/PushoutI.lean Modified Mathlib/GroupTheory/QuotientGroup.lean Modified Mathlib/GroupTheory/Schreier.lean Modified Mathlib/GroupTheory/SchurZassenhaus.lean Modified Mathlib/GroupTheory/SemidirectProduct.lean Modified Mathlib/GroupTheory/SpecificGroups/Cyclic.lean Modified Mathlib/GroupTheory/SpecificGroups/Dihedral.lean Modified Mathlib/GroupTheory/SpecificGroups/Quaternion.lean Modified Mathlib/GroupTheory/Submonoid/Inverses.lean Modified Mathlib/GroupTheory/Torsion.lean Modified Mathlib/GroupTheory/Transfer.lean Modified Mathlib/LinearAlgebra/AffineSpace/AffineEquiv.lean Modified Mathlib/LinearAlgebra/AffineSpace/AffineSubspace.lean Modified Mathlib/LinearAlgebra/AffineSpace/Combination.lean Modified Mathlib/LinearAlgebra/AffineSpace/Independent.lean Modified Mathlib/LinearAlgebra/AffineSpace/Midpoint.lean Modified Mathlib/LinearAlgebra/Alternating/DomCoprod.lean Modified Mathlib/LinearAlgebra/CliffordAlgebra/Contraction.lean Modified Mathlib/LinearAlgebra/Dimension/DivisionRing.lean Modified Mathlib/LinearAlgebra/Dual.lean Modified Mathlib/LinearAlgebra/Lagrange.lean Modified Mathlib/LinearAlgebra/LinearIndependent.lean Modified Mathlib/LinearAlgebra/Matrix/Charpoly/Coeff.lean Modified Mathlib/LinearAlgebra/Matrix/GeneralLinearGroup/Defs.lean Modified Mathlib/LinearAlgebra/Matrix/SchurComplement.lean Modified Mathlib/LinearAlgebra/Matrix/SpecialLinearGroup.lean Modified Mathlib/LinearAlgebra/Multilinear/Basic.lean Modified Mathlib/LinearAlgebra/Orientation.lean Modified Mathlib/LinearAlgebra/QuadraticForm/Basic.lean Modified Mathlib/LinearAlgebra/QuadraticForm/Complex.lean Modified Mathlib/LinearAlgebra/SymplecticGroup.lean Modified Mathlib/LinearAlgebra/TensorProduct/Basic.lean Modified Mathlib/LinearAlgebra/UnitaryGroup.lean Modified Mathlib/MeasureTheory/Covering/BesicovitchVectorSpace.lean Modified Mathlib/MeasureTheory/Decomposition/Lebesgue.lean Modified Mathlib/MeasureTheory/Function/ConditionalExpectation/Basic.lean Modified Mathlib/MeasureTheory/Function/ConditionalExpectation/Real.lean Modified Mathlib/MeasureTheory/Function/LpSeminorm/Basic.lean Modified Mathlib/MeasureTheory/Function/LpSeminorm/CompareExp.lean Modified Mathlib/MeasureTheory/Function/LpSpace.lean Modified Mathlib/MeasureTheory/Function/StronglyMeasurable/Basic.lean Modified Mathlib/MeasureTheory/Function/StronglyMeasurable/Lemmas.lean Modified Mathlib/MeasureTheory/Function/UniformIntegrable.lean Modified Mathlib/MeasureTheory/Integral/CircleIntegral.lean Modified Mathlib/MeasureTheory/Integral/Gamma.lean Modified Mathlib/MeasureTheory/Integral/LebesgueNormedSpace.lean Modified Mathlib/MeasureTheory/Integral/PeakFunction.lean Modified Mathlib/MeasureTheory/Measure/Haar/NormedSpace.lean Modified Mathlib/MeasureTheory/Measure/Haar/Unique.lean Modified Mathlib/MeasureTheory/Measure/Hausdorff.lean Modified Mathlib/MeasureTheory/Measure/Lebesgue/Basic.lean Modified Mathlib/MeasureTheory/Measure/Lebesgue/EqHaar.lean Modified Mathlib/MeasureTheory/Measure/MeasureSpace.lean Modified Mathlib/MeasureTheory/Measure/ProbabilityMeasure.lean Modified Mathlib/MeasureTheory/Measure/Tilted.lean Modified Mathlib/ModelTheory/Algebra/Field/Basic.lean Modified Mathlib/NumberTheory/ArithmeticFunction.lean Modified Mathlib/NumberTheory/ClassNumber/Finite.lean Modified Mathlib/NumberTheory/Cyclotomic/Three.lean Modified Mathlib/NumberTheory/Dioph.lean Modified Mathlib/NumberTheory/GaussSum.lean Modified Mathlib/NumberTheory/Harmonic/GammaDeriv.lean Modified Mathlib/NumberTheory/LSeries/AbstractFuncEq.lean Modified Mathlib/NumberTheory/LSeries/HurwitzZetaEven.lean Modified Mathlib/NumberTheory/LSeries/MellinEqDirichlet.lean Modified Mathlib/NumberTheory/LegendreSymbol/AddCharacter.lean Modified Mathlib/NumberTheory/LegendreSymbol/Basic.lean Modified Mathlib/NumberTheory/LegendreSymbol/QuadraticChar/Basic.lean Modified Mathlib/NumberTheory/Liouville/LiouvilleWith.lean Modified Mathlib/NumberTheory/Modular.lean Modified Mathlib/NumberTheory/ModularForms/EisensteinSeries/Defs.lean Modified Mathlib/NumberTheory/ModularForms/JacobiTheta/TwoVariable.lean Modified Mathlib/NumberTheory/ModularForms/SlashActions.lean Modified Mathlib/NumberTheory/MulChar/Basic.lean Modified Mathlib/NumberTheory/NumberField/CanonicalEmbedding/ConvexBody.lean Modified Mathlib/NumberTheory/NumberField/Discriminant.lean Modified Mathlib/NumberTheory/NumberField/Units/DirichletTheorem.lean Modified Mathlib/NumberTheory/Padics/Hensel.lean Modified Mathlib/NumberTheory/Padics/PadicIntegers.lean Modified Mathlib/NumberTheory/Padics/PadicVal.lean Modified Mathlib/NumberTheory/Pell.lean Modified Mathlib/NumberTheory/PellMatiyasevic.lean Modified Mathlib/NumberTheory/Wilson.lean Modified Mathlib/NumberTheory/Zsqrtd/Basic.lean Modified Mathlib/NumberTheory/Zsqrtd/QuadraticReciprocity.lean Modified Mathlib/Order/Filter/FilterProduct.lean Modified Mathlib/Order/Filter/Germ/Basic.lean Modified Mathlib/Order/RelIso/Group.lean Modified Mathlib/Probability/Distributions/Gaussian.lean Modified Mathlib/Probability/Kernel/RadonNikodym.lean Modified Mathlib/Probability/Variance.lean Modified Mathlib/RepresentationTheory/Action/Basic.lean Modified Mathlib/RepresentationTheory/Action/Limits.lean Modified Mathlib/RepresentationTheory/Action/Monoidal.lean Modified Mathlib/RepresentationTheory/GroupCohomology/LowDegree.lean Modified Mathlib/RepresentationTheory/Maschke.lean Modified Mathlib/RepresentationTheory/Rep.lean Modified Mathlib/RingTheory/Algebraic.lean Modified Mathlib/RingTheory/Binomial.lean Modified Mathlib/RingTheory/Coprime/Basic.lean Modified Mathlib/RingTheory/DedekindDomain/Different.lean Modified Mathlib/RingTheory/DedekindDomain/Factorization.lean Modified Mathlib/RingTheory/DedekindDomain/Ideal.lean Modified Mathlib/RingTheory/Derivation/Basic.lean Modified Mathlib/RingTheory/FractionalIdeal/Operations.lean Modified Mathlib/RingTheory/FreeCommRing.lean Modified Mathlib/RingTheory/FreeRing.lean Modified Mathlib/RingTheory/HahnSeries/Addition.lean Modified Mathlib/RingTheory/HahnSeries/Summable.lean Modified Mathlib/RingTheory/Henselian.lean Modified Mathlib/RingTheory/Ideal/Maps.lean Modified Mathlib/RingTheory/LaurentSeries.lean Modified Mathlib/RingTheory/Localization/NumDen.lean Modified Mathlib/RingTheory/MvPowerSeries/Inverse.lean Modified Mathlib/RingTheory/OreLocalization/Basic.lean Modified Mathlib/RingTheory/OreLocalization/Ring.lean Modified Mathlib/RingTheory/Polynomial/Dickson.lean Modified Mathlib/RingTheory/Polynomial/GaussLemma.lean Modified Mathlib/RingTheory/Valuation/Integers.lean Modified Mathlib/RingTheory/Valuation/ValuationRing.lean Modified Mathlib/RingTheory/Valuation/ValuationSubring.lean Modified Mathlib/SetTheory/Game/Basic.lean Modified Mathlib/SetTheory/Game/Impartial.lean Modified Mathlib/SetTheory/Game/PGame.lean - theorem SetTheory.PGame.add_left_neg_equiv - theorem SetTheory.PGame.add_left_neg_le_zero + theorem SetTheory.PGame.add_neg_cancel_equiv + theorem SetTheory.PGame.add_neg_cancel_le_zero - theorem SetTheory.PGame.add_right_neg_equiv - theorem SetTheory.PGame.add_right_neg_le_zero + theorem SetTheory.PGame.neg_add_cancel_equiv + theorem SetTheory.PGame.neg_add_cancel_le_zero - theorem SetTheory.PGame.zero_le_add_left_neg + theorem SetTheory.PGame.zero_le_add_neg_cancel - theorem SetTheory.PGame.zero_le_add_right_neg + theorem SetTheory.PGame.zero_le_neg_add_cancel Modified Mathlib/SetTheory/Surreal/Basic.lean Modified Mathlib/Tactic/Group.lean Modified Mathlib/Topology/Algebra/ContinuousMonoidHom.lean Modified Mathlib/Topology/Algebra/Field.lean Modified Mathlib/Topology/Algebra/Group/Basic.lean Modified Mathlib/Topology/Algebra/GroupCompletion.lean Modified Mathlib/Topology/Algebra/Module/Basic.lean Modified Mathlib/Topology/Algebra/Module/Cardinality.lean Modified Mathlib/Topology/Algebra/Module/FiniteDimension.lean Modified Mathlib/Topology/Algebra/UniformField.lean Modified Mathlib/Topology/Algebra/Valued/ValuedField.lean Modified Mathlib/Topology/Connected/PathConnected.lean Modified Mathlib/Topology/ContinuousFunction/Ideals.lean Modified Mathlib/Topology/Instances/AddCircle.lean Modified Mathlib/Topology/MetricSpace/DilationEquiv.lean Modified Mathlib/Topology/MetricSpace/GromovHausdorff.lean Modified Mathlib/Topology/MetricSpace/IsometricSMul.lean Modified Mathlib/Topology/MetricSpace/Isometry.lean 2024-08-12 15:04:33 9bb9d9e fix(fun_prop): few bug fixes for fun_prop (#11092) Bug fixes 1. Fix infinite loop triggered by `(by fun_prop : ?m)` 2. Support for multiple lambda theorems. For example `ContinuousOn` has multiple versions of composition theorem. 3. Support for special constant lambda theorem. For example `IsLinearMap R fun _ => 0` should be registered as constant lambda theorem 4. Improved error messages when trying `fun_prop` on non-fun_prop goal 5. Improved error messages when missing lambda theorems ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/MeasureTheory/Constructions/BorelSpace/Basic.lean Modified Mathlib/Tactic.lean Modified Mathlib/Tactic/FunProp.lean Deleted Mathlib/Tactic/FunProp/AEMeasurable.lean Modified Mathlib/Tactic/FunProp/Attr.lean Modified Mathlib/Tactic/FunProp/Core.lean + def Mathlib.Meta.FunProp.applyApplyRule +/- def Mathlib.Meta.FunProp.applyConstRule +/- def Mathlib.Meta.FunProp.applyIdRule +/- def Mathlib.Meta.FunProp.applyPiRule - def Mathlib.Meta.FunProp.applyProjRule Modified Mathlib/Tactic/FunProp/Decl.lean + def Mathlib.Meta.FunProp.isFunPropGoal Modified Mathlib/Tactic/FunProp/Elab.lean Modified Mathlib/Tactic/FunProp/FunctionData.lean Modified Mathlib/Tactic/FunProp/Theorems.lean - def Mathlib.Meta.FunProp.getLambdaTheorem + def Mathlib.Meta.FunProp.getLambdaTheorems Modified Mathlib/Tactic/FunProp/Types.lean - def Mathlib.Meta.FunProp.Config.addThm - def Mathlib.Meta.FunProp.Config.increaseDepth + def Mathlib.Meta.FunProp.Context.increaseTransitionDepth + structure Mathlib.Meta.FunProp.Context - def Mathlib.Meta.FunProp.previouslyUsedThm + def Mathlib.Meta.FunProp.withIncreasedTransitionDepth - def Mathlib.Meta.FunProp.withTheorem Modified test/fun_prop2.lean Modified test/fun_prop_dev.lean - theorem Con_let + theorem Lin_const + theorem MultipleLambdaTheorems.Con_comp'' + theorem MultipleLambdaTheorems.Con_comp' + theorem chabam + def f1 + def f2 + def f3 + theorem f3_lin 2024-08-12 14:21:50 e04c5f0 feat(Algebra/Homology): signs for the associativity compatibility of the total complex (#15719) This PR introduces a typeclass `ComplexShape.Associative` which takes as inputs six complex shapes `c₁`, `c₂`, `c₃`, `c₁₂`, `c₂₃` and `c`, and asserts compatibilities of signs for the associativity of the total complex of a triple complex. It shall also be used in the construction of the associator isomorphism for the tensor product of homological complexes. ESTIMATED CHANGES Modified Mathlib/Algebra/Homology/ComplexShapeSigns.lean + theorem ComplexShape.assoc + theorem ComplexShape.associative_ε₁_eq_mul + theorem ComplexShape.associative_ε₂_eq_mul + theorem ComplexShape.associative_ε₂_ε₁ + def ComplexShape.r + def ComplexShape.ρ₁₂ + def ComplexShape.ρ₂₃ Modified Mathlib/Algebra/Homology/TotalComplexShift.lean 2024-08-12 13:31:36 639e997 feat(CategoryTheory/Sites): gluing of sections for Mayer-Vietoris squares (#14957) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Limits/Preserves/Shapes/Square.lean + theorem CategoryTheory.Square.IsPullback.iff_of_equiv + theorem CategoryTheory.Square.IsPullback.map_iff + theorem CategoryTheory.Square.IsPullback.of_equiv + theorem CategoryTheory.Square.IsPullback.of_map + theorem CategoryTheory.Square.IsPushout.map_iff + theorem CategoryTheory.Square.IsPushout.of_map Modified Mathlib/CategoryTheory/Sites/MayerVietorisSquare.lean + theorem CategoryTheory.GrothendieckTopology.MayerVietorisSquare.SheafCondition.bijective_toPullbackObj + theorem CategoryTheory.GrothendieckTopology.MayerVietorisSquare.SheafCondition.ext + theorem CategoryTheory.GrothendieckTopology.MayerVietorisSquare.SheafCondition.map_f₂₄_op_glue + theorem CategoryTheory.GrothendieckTopology.MayerVietorisSquare.SheafCondition.map_f₃₄_op_glue + def CategoryTheory.GrothendieckTopology.MayerVietorisSquare.SheafCondition + theorem CategoryTheory.GrothendieckTopology.MayerVietorisSquare.sheafCondition_iff_bijective_toPullbackObj + theorem CategoryTheory.GrothendieckTopology.MayerVietorisSquare.sheafCondition_iff_comp_coyoneda + theorem CategoryTheory.GrothendieckTopology.MayerVietorisSquare.sheafCondition_of_sheaf 2024-08-12 13:31:34 46a72de feat(Ergodic): the left action of a group on itself is ergodic (#14596) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Dynamics/Ergodic/Action/Regular.lean Modified Mathlib/MeasureTheory/Constructions/Prod/Basic.lean + theorem MeasureTheory.Measure.ae_ae_comm + theorem MeasureTheory.Measure.ae_prod_iff_ae_ae 2024-08-12 13:06:56 f9b79d6 chore(SetTheory/Game/PGame): Add note on `NatCast` (#15713) I explain that this is not in fact the usual definition for natural numbers as games (a fact that just cost me a few hours of dev time...) ESTIMATED CHANGES Modified Mathlib/SetTheory/Game/PGame.lean 2024-08-12 13:06:54 40b6b14 feat(Algebra/Homology): develop the API for the action of bifunctors on homological complexes (#15712) ESTIMATED CHANGES Modified Mathlib/Algebra/Homology/Bifunctor.lean + theorem HomologicalComplex.mapBifunctor.d_eq + theorem HomologicalComplex.mapBifunctor.d₁_eq' + theorem HomologicalComplex.mapBifunctor.d₁_eq + theorem HomologicalComplex.mapBifunctor.d₁_eq_zero' + theorem HomologicalComplex.mapBifunctor.d₁_eq_zero + theorem HomologicalComplex.mapBifunctor.d₂_eq' + theorem HomologicalComplex.mapBifunctor.d₂_eq + theorem HomologicalComplex.mapBifunctor.d₂_eq_zero' + theorem HomologicalComplex.mapBifunctor.d₂_eq_zero + theorem HomologicalComplex.mapBifunctor.hom_ext + theorem HomologicalComplex.mapBifunctor.ι_D₁ + theorem HomologicalComplex.mapBifunctor.ι_D₂ + theorem HomologicalComplex.ι_mapBifunctorDesc Modified Mathlib/Algebra/Homology/BifunctorHomotopy.lean Modified Mathlib/Algebra/Homology/TotalComplex.lean Modified Mathlib/Algebra/Homology/TotalComplexShift.lean Modified Mathlib/Algebra/Homology/TotalComplexSymmetry.lean Modified Mathlib/CategoryTheory/GradedObject/Trifunctor.lean +/- theorem CategoryTheory.GradedObject.mapBifunctorBifunctor₂₃MapObj_ext +/- theorem CategoryTheory.GradedObject.mapBifunctor₁₂BifunctorMapObj_ext + theorem CategoryTheory.GradedObject.ι_mapBifunctorBifunctor₂₃Desc + theorem CategoryTheory.GradedObject.ι_mapBifunctor₁₂BifunctorDesc 2024-08-12 13:06:52 a83f96c chore: Fix enccard typo in Cardinal file (#15709) Fix typo in theorem name Moves: - Function.Embedding.enccard_le -> Function.Embedding.encard_le ESTIMATED CHANGES Modified Mathlib/Data/Set/Card.lean + theorem Function.Embedding.encard_le - theorem Function.Embedding.enccard_le 2024-08-12 13:06:50 58d29b1 feat(Combinatorics/SimpleGraph/Matching): Add matching free graphs (#15357) Add supporting lemmas for graphs free of matchings in preperation for Tuttes theorem ESTIMATED CHANGES Modified Mathlib/Combinatorics/SimpleGraph/Matching.lean + theorem SimpleGraph.IsMatchingFree.mono + def SimpleGraph.IsMatchingFree + theorem SimpleGraph.exists_maximal_isMatchingFree Modified Mathlib/Data/Fintype/Order.lean + theorem Finite.exists_ge_minimal + theorem Finite.exists_le_maximal 2024-08-12 13:06:49 ac8cc94 feat(Algebra/Homology): action of the flip of a bifunctor on homological complexes (#11713) We construct an isomorphism `mapBifunctor K₂ K₁ F.flip c ≅ mapBifunctor K₁ K₂ F c` when `F` is a bifunctor, and `K₁` and `K₂` are two homological complexes. This is under the assumption of a certain instance of `TotalComplexShapeSymmetry` which provides compatible signs for this isomorphism. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Homology/BifunctorFlip.lean + theorem HomologicalComplex.hasMapBifunctor_flip_iff + theorem HomologicalComplex.mapBifunctorFlipIso_flip Modified Mathlib/Algebra/Homology/ComplexShapeSigns.lean + def ComplexShape.symmetryEquiv + def TotalComplexShapeSymmetry.symmetry Modified Mathlib/Algebra/Homology/TotalComplexSymmetry.lean + theorem HomologicalComplex₂.flip_hasTotal_iff Modified Mathlib/CategoryTheory/Limits/Preserves/Shapes/Zero.lean 2024-08-12 12:57:15 b1f62bd chore: remove unused argument from Behrend.map_injOn (#15735) ESTIMATED CHANGES Modified Mathlib/Combinatorics/Additive/AP/Three/Behrend.lean 2024-08-12 11:58:20 a9c4c79 chore: update Mathlib dependencies 2024-08-12 (#15728) ESTIMATED CHANGES Modified Mathlib/Data/Bool/Basic.lean Modified Mathlib/Data/Option/NAry.lean Modified Mathlib/Init/Set.lean Modified Mathlib/Logic/Function/Basic.lean Modified Mathlib/Tactic/ByContra.lean Modified Mathlib/Tactic/DeprecateMe.lean Modified Mathlib/Tactic/ITauto.lean Modified Mathlib/Tactic/Linarith/Oracle/SimplexAlgorithm/Datatypes.lean Modified Mathlib/Tactic/Linarith/Oracle/SimplexAlgorithm/PositiveVector.lean Modified Mathlib/Tactic/Widget/InteractiveUnfold.lean Modified lake-manifest.json Modified scripts/noshake.json 2024-08-12 10:18:59 81b928c feat(CategoryTheory): Equivalence between certain comma categories and products (#15648) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Closed/Cartesian.lean Modified Mathlib/CategoryTheory/Closed/Zero.lean Modified Mathlib/CategoryTheory/Comma/Basic.lean + def CategoryTheory.Comma.equivProd + def CategoryTheory.Comma.fromProd + def CategoryTheory.Comma.toIdPUnitEquiv + theorem CategoryTheory.Comma.toIdPUnitEquiv_functor_iso + def CategoryTheory.Comma.toPUnitIdEquiv + theorem CategoryTheory.Comma.toPUnitIdEquiv_functor_iso Modified Mathlib/CategoryTheory/Dialectica/Monoidal.lean Modified Mathlib/CategoryTheory/Monoidal/OfHasFiniteProducts.lean 2024-08-12 10:09:28 815eabc feat(CategoryTheory): Finality of functors from filtered categories into PUnit (#15641) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Filtered/Final.lean + theorem CategoryTheory.Functor.final_of_isFiltered_of_pUnit + theorem CategoryTheory.Functor.initial_of_isCofiltered_pUnit 2024-08-12 04:26:19 2c4b300 chore: move files into new `Analysis.Normed.Affine` (#15184) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Analysis/Calculus/AddTorsor/AffineMap.lean Modified Mathlib/Analysis/Calculus/AddTorsor/Coord.lean Modified Mathlib/Analysis/Convex/Intrinsic.lean Modified Mathlib/Analysis/Convex/Measure.lean Modified Mathlib/Analysis/Convex/Normed.lean Modified Mathlib/Analysis/Convex/StrictConvexBetween.lean Modified Mathlib/Analysis/Convex/StrictConvexSpace.lean Renamed Mathlib/Analysis/NormedSpace/AddTorsor.lean to Mathlib/Analysis/Normed/Affine/AddTorsor.lean Renamed Mathlib/Analysis/NormedSpace/AddTorsorBases.lean to Mathlib/Analysis/Normed/Affine/AddTorsorBases.lean Renamed Mathlib/Analysis/NormedSpace/ContinuousAffineMap.lean to Mathlib/Analysis/Normed/Affine/ContinuousAffineMap.lean Renamed Mathlib/Analysis/NormedSpace/AffineIsometry.lean to Mathlib/Analysis/Normed/Affine/Isometry.lean Renamed Mathlib/Analysis/NormedSpace/MazurUlam.lean to Mathlib/Analysis/Normed/Affine/MazurUlam.lean Modified Mathlib/Analysis/Normed/Module/FiniteDimension.lean Modified Mathlib/Analysis/Normed/Operator/Banach.lean Modified Mathlib/Geometry/Euclidean/Angle/Unoriented/Affine.lean Modified Mathlib/LinearAlgebra/AffineSpace/AffineMap.lean Modified Mathlib/LinearAlgebra/AffineSpace/AffineSubspace.lean Modified Mathlib/Topology/UrysohnsLemma.lean 2024-08-12 04:09:17 267c64b feat (MeasureTheory-Probabilty): Congruence lemma for double integrals. (#15460) - Add `ProbabilityTheory.Kernel.integral_congr_ae₂` and `MeasureTheory.integral_congr_ae₂`. ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Integral/Bochner.lean + theorem MeasureTheory.integral_congr_ae₂ Modified Mathlib/Probability/Kernel/Basic.lean + theorem ProbabilityTheory.Kernel.integral_congr_ae₂ 2024-08-12 02:13:44 e5d297f chore(*): use `getElem` instead of `List.get`/`List.nthLe` (#15455) Deletions: - List.toFinsupp_apply_lt' ESTIMATED CHANGES Modified Mathlib/Algebra/BigOperators/Fin.lean Modified Mathlib/Algebra/BigOperators/Group/List.lean Modified Mathlib/Analysis/Analytic/Composition.lean Modified Mathlib/Analysis/Calculus/FDeriv/Mul.lean Modified Mathlib/Combinatorics/Young/YoungDiagram.lean Modified Mathlib/Data/Finset/Sort.lean Modified Mathlib/Data/List/Basic.lean + theorem List.erase_getElem Modified Mathlib/Data/List/GetD.lean +/- theorem List.getD_eq_get + theorem List.getD_eq_getElem + theorem List.getI_eq_getElem Modified Mathlib/Data/List/ToFinsupp.lean +/- theorem List.toFinsupp_apply_fin - theorem List.toFinsupp_apply_lt' +/- theorem List.toFinsupp_apply_lt Modified Mathlib/Data/Nat/Nth.lean Modified Mathlib/GroupTheory/Coxeter/Inversion.lean Modified Mathlib/LinearAlgebra/Matrix/Transvection.lean + theorem Matrix.Pivot.listTransvecCol_getElem + theorem Matrix.Pivot.listTransvecRow_getElem Modified Mathlib/Order/RelSeries.lean Modified Mathlib/RingTheory/Regular/RegularSequence.lean Modified Mathlib/SetTheory/Game/PGame.lean 2024-08-12 00:35:48 055d766 feat(GroupTheory/GroupAction/Basic): `orbitRel_subgroupOf` (#15505) Add the lemma ```lean @[to_additive] lemma orbitRel_subgroupOf (H K : Subgroup G) : orbitRel (H.subgroupOf K) α = orbitRel (H ⊓ K : Subgroup G) α := by ``` From AperiodicMonotilesLean. ESTIMATED CHANGES Modified Mathlib/GroupTheory/GroupAction/Basic.lean + theorem MulAction.orbitRel_subgroupOf 2024-08-11 23:33:42 5285372 chore(SetTheory/Game/Basic): fix Game.PGame namespace (#15708) We move the `Fuzzy` definition so that the `PGame` namespace doesn't need to be opened twice. We also move the infix notation definition a bit later down the file. ESTIMATED CHANGES Modified Mathlib/SetTheory/Game/Basic.lean - theorem SetTheory.Game.PGame.equiv_iff_game_eq - theorem SetTheory.Game.PGame.fuzzy_iff_game_fuzzy - theorem SetTheory.Game.PGame.le_iff_game_le - theorem SetTheory.Game.PGame.lf_iff_game_lf - theorem SetTheory.Game.PGame.lt_iff_game_lt +/- theorem SetTheory.Game.not_le +/- theorem SetTheory.Game.not_lf + theorem SetTheory.PGame.equiv_iff_game_eq + theorem SetTheory.PGame.fuzzy_iff_game_fuzzy + theorem SetTheory.PGame.le_iff_game_le + theorem SetTheory.PGame.lf_iff_game_lf + theorem SetTheory.PGame.lt_iff_game_lt Modified Mathlib/SetTheory/Game/Impartial.lean 2024-08-11 23:33:41 c13b15d feat(GroupTheory/Index): `exists_pow_mem_of_index_ne_zero` (#15701) Add the lemma ```lean @[to_additive] lemma exists_pow_mem_of_index_ne_zero (h : H.index ≠ 0) (a : G) : ∃ n, 0 < n ∧ n ≤ H.index ∧ a ^ n ∈ H := by ``` and three similar lemmas. These are essentially more general versions of `sq_mem_of_index_two` for arbitrary finite index. From AperiodicMonotilesLean. ESTIMATED CHANGES Modified Mathlib/GroupTheory/Index.lean + theorem Subgroup.exists_pow_mem_of_index_ne_zero + theorem Subgroup.exists_pow_mem_of_relindex_ne_zero + theorem Subgroup.pow_mem_of_index_ne_zero_of_dvd + theorem Subgroup.pow_mem_of_relindex_ne_zero_of_dvd 2024-08-11 23:33:40 0b82895 feat(Algebra/Group/Subgroup/Basic): `inclusion_inj` (#15699) Add the lemma ```lean @[to_additive (attr := simp)] lemma inclusion_inj {H K : Subgroup G} (h : H ≤ K) {x y : H} : inclusion h x = inclusion h y ↔ x = y := (inclusion_injective h).eq_iff ``` following usual practice for injectivity lemmas. From AperiodicMonotilesLean. ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Subgroup/Basic.lean + theorem Subgroup.inclusion_inj 2024-08-11 23:33:39 d14d0e5 chore: clean up some naming around `Matrix.stdBasisMatrix` (#15693) `std_basis` is a lean3-ism. In future we might want to rename this to `Matrix.single`. ESTIMATED CHANGES Modified Mathlib/Data/Matrix/Basis.lean + theorem Matrix.matrix_eq_sum_stdBasisMatrix - theorem Matrix.matrix_eq_sum_std_basis + theorem Matrix.stdBasisMatrix_eq_single_vecMulVec_single Modified Mathlib/RingTheory/MatrixAlgebra.lean + theorem matrixEquivTensor_apply_stdBasisMatrix - theorem matrixEquivTensor_apply_std_basis Modified Mathlib/RingTheory/PolynomialAlgebra.lean 2024-08-11 23:33:38 f121f99 chore(SetTheory/Surreal/Multiplication): fix typos (#15685) Fix some small typos and re-wrap a few lines. ESTIMATED CHANGES Modified Mathlib/SetTheory/Surreal/Multiplication.lean 2024-08-11 23:33:36 13fd246 feat(NumberTheory/GaussSum): add two results (#15680) This adds ```lean lemma gaussSum_mul {R : Type u} [CommRing R] [Fintype R] {R' : Type v} [CommRing R'] (χ φ : MulChar R R') (ψ : AddChar R R') : gaussSum χ ψ * gaussSum φ ψ = ∑ t : R, ∑ x : R, χ x * φ (t - x) * ψ t ``` and ```lean lemma gaussSum_ne_zero_of_nontrivial {R : Type u} [Field R] [Fintype R] {R' : Type v} [CommRing R'] [IsDomain R'] (h : (Fintype.card R : R') ≠ 0) {χ : MulChar R R'} (hχ : χ ≠ 1) {ψ : AddChar R R'} (hψ : ψ.IsPrimitive) : gaussSum χ ψ ≠ 0 ``` which will be needed in results on Jacobi sums (coming soon). ESTIMATED CHANGES Modified Mathlib/NumberTheory/GaussSum.lean + theorem gaussSum_mul + theorem gaussSum_ne_zero_of_nontrivial 2024-08-11 23:33:35 444c41c fix: typo in the cdot linter typing suggestion (#15677) (This was previously showing cdot itself as how to type it). ESTIMATED CHANGES Modified Mathlib/Tactic/Linter/Lint.lean Modified test/Lint.lean 2024-08-11 23:33:34 8410437 chore(MeasureTheory/Group): move defs to `Defs` (#15673) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/MeasureTheory/Group/Action.lean Added Mathlib/MeasureTheory/Group/Defs.lean Modified Mathlib/MeasureTheory/Group/Measure.lean 2024-08-11 23:33:33 52db037 chore(AEDisjoint): generalize 2 lemmas to `Sort*` (#15662) ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Measure/AEDisjoint.lean +/- theorem MeasureTheory.AEDisjoint.iUnion_left_iff +/- theorem MeasureTheory.AEDisjoint.iUnion_right_iff 2024-08-11 23:33:32 e5667e5 feat(Integral): lemma about integrating a function `X → C(Y, E)` (#15627) Given a function `f : X → C(Y, E)`, we have that `(∫ x, f x ∂μ) y = ∫ x, f x y ∂μ`. ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Integral/SetIntegral.lean + theorem ContinuousMap.integral_apply 2024-08-11 23:33:31 48d7a95 feat(QuotientGroup): add `QuotientAddGroup.mk_{nat,int}_mul` (#15596) ESTIMATED CHANGES Modified Mathlib/GroupTheory/QuotientGroup.lean + theorem QuotientAddGroup.mk_int_mul + theorem QuotientAddGroup.mk_nat_mul 2024-08-11 23:33:29 e848aee refactor(Cyclic): redefine, move definition (#15544) Redefine `IsCyclic` without `Subgroup` dependency, move the definition to `Algebra/Group/Defs`. ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Defs.lean + theorem exists_zpow_surjective Modified Mathlib/GroupTheory/SpecificGroups/Cyclic.lean + theorem IsCyclic.exists_generator Modified Mathlib/Logic/Function/Defs.lean 2024-08-11 23:33:28 14de547 chore(Integral/Lebesgue): reorganize `lintegral_sum_measure` (#15502) Previously, we proved `lintegral_sum_measure`, then deduced special cases. The proof of `lintegral_sum_measure` essentially contained reduction to `lintegral_add_measure`, so I prove it first, then deduce `lintegral_finset_sum_measure`, then `lintegral_sum_measure`. ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Function/SimpleFunc.lean + theorem MeasureTheory.SimpleFunc.lintegral_finset_sum Modified Mathlib/MeasureTheory/Integral/Lebesgue.lean +/- theorem MeasureTheory.lintegral_add_measure +/- theorem MeasureTheory.lintegral_finset_sum_measure 2024-08-11 23:33:27 3486eab chore: Missing `Ring` and `CommRing` instances for graded rings (#15492) The analogous `Semiring` versions already exist. ESTIMATED CHANGES Modified Mathlib/Algebra/DirectSum/Ring.lean 2024-08-11 23:33:26 ddc3dc1 feat(Analysis/Complex/ReImTopology): Uniform continuity of re im (#15411) We show that re and im are uniformly continuous and then use this to show that re/im parts of a uniform limit converge uniformly. ESTIMATED CHANGES Modified Mathlib/Analysis/Complex/Basic.lean + theorem Complex.uniformlyContinous_im + theorem Complex.uniformlyContinous_re Modified Mathlib/Analysis/Complex/ReImTopology.lean 2024-08-11 23:33:25 b51014c feat(Algebra/Ring): add `RingEquiv` versions of splitting and product equivalences (#15075) Add `RingEquiv` versions of `Equiv.piCongrLeft`, `Equiv.piEquivPiSubtypeProd`, and `Equiv.prodCongr`. This has been split from the larger PR #13577. ESTIMATED CHANGES Modified Mathlib/Algebra/Ring/Equiv.lean + theorem RingEquiv.coe_prodCongr + def RingEquiv.piCongrLeft' + theorem RingEquiv.piCongrLeft'_symm + def RingEquiv.piCongrLeft + def RingEquiv.piEquivPiSubtypeProd + def RingEquiv.prodCongr 2024-08-11 22:38:58 8b3112e chore: turn `induction'` into `induction` (#15697) This PR substitutes the (soon to be deprecated) `induction'` with `induction`. ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Support.lean Modified Mathlib/Algebra/Polynomial/Basic.lean Modified Mathlib/Algebra/Polynomial/Div.lean Modified Mathlib/Algebra/Polynomial/Laurent.lean Modified Mathlib/Algebra/Polynomial/Monic.lean Modified Mathlib/Algebra/Regular/SMul.lean Modified Mathlib/Analysis/Asymptotics/SuperpolynomialDecay.lean Modified Mathlib/Analysis/SpecialFunctions/Gamma/Basic.lean Modified Mathlib/Analysis/SpecialFunctions/Gamma/BohrMollerup.lean Modified Mathlib/CategoryTheory/Triangulated/Pretriangulated.lean Modified Mathlib/Combinatorics/Derangements/Finite.lean Modified Mathlib/FieldTheory/Finite/Basic.lean Modified Mathlib/GroupTheory/Perm/Basic.lean Modified Mathlib/GroupTheory/Perm/Cycle/Factors.lean Modified Mathlib/GroupTheory/Perm/List.lean Modified Mathlib/GroupTheory/Solvable.lean Modified Mathlib/NumberTheory/Padics/PadicVal.lean Modified Mathlib/RingTheory/Binomial.lean 2024-08-11 22:04:38 1c0bc97 fix: add year (#15703) Ruben mentioned this year in #15256 since he found https://github.com/leanprover-community/mathlib3/pull/6395. ESTIMATED CHANGES Modified Mathlib/Topology/EMetricSpace/Paracompact.lean 2024-08-11 21:00:25 85e0f4e chore: final cleanup of Mathport (#15630) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Data/PSigma/Order.lean Modified Mathlib/Data/Quot.lean Modified Mathlib/Data/Set/Notation.lean Modified Mathlib/Data/Sigma/Order.lean Modified Mathlib/Data/Vector3.lean Modified Mathlib/Mathport/README.md Deleted Mathlib/Mathport/Syntax.lean Modified Mathlib/Order/SetNotation.lean Renamed Mathlib/Mathport/Notation.lean to Mathlib/Util/Notation3.lean Modified test/notation3.lean 2024-08-11 20:16:27 5bb47cd feat(Combinatorics/SimpleGraph): bot is not connected (#15675) ESTIMATED CHANGES Modified Mathlib/Combinatorics/SimpleGraph/Path.lean + theorem SimpleGraph.bot_not_connected + theorem SimpleGraph.bot_not_preconnected + theorem SimpleGraph.bot_preconnected + theorem SimpleGraph.bot_preconnected_iff_subsingleton 2024-08-11 19:24:47 d59c78e chore: uniformize some author names (#15256) I simply went for similarities: maybe some of these merges are actually different authors with very similar names! Suggested by the list in [this Zulip message](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/copyright.20header.20line.20lint/near/454640469). ESTIMATED CHANGES Modified Archive/Hairer.lean Modified Archive/Sensitivity.lean Modified Mathlib/Algebra/Bounds.lean Modified Mathlib/Algebra/Field/Basic.lean Modified Mathlib/Algebra/Field/Defs.lean Modified Mathlib/Algebra/Field/IsField.lean Modified Mathlib/Algebra/Field/Power.lean Modified Mathlib/Algebra/Group/Fin/Basic.lean Modified Mathlib/Algebra/MonoidAlgebra/Basic.lean Modified Mathlib/Algebra/Order/Field/Basic.lean Modified Mathlib/Algebra/Order/Field/Canonical/Basic.lean Modified Mathlib/Algebra/Order/Field/Canonical/Defs.lean Modified Mathlib/Algebra/Order/Field/Defs.lean Modified Mathlib/Algebra/Order/Field/InjSurj.lean Modified Mathlib/Algebra/Order/Field/Power.lean Modified Mathlib/Algebra/Order/Field/Unbundled/Basic.lean Modified Mathlib/Algebra/Order/Interval/Set/Monoid.lean Modified Mathlib/Algebra/Order/Invertible.lean Modified Mathlib/Algebra/Order/Monoid/Unbundled/Pow.lean Modified Mathlib/Algebra/Polynomial/Derivation.lean Modified Mathlib/Algebra/Star/Rat.lean Modified Mathlib/Analysis/Analytic/Linear.lean Modified Mathlib/Analysis/Asymptotics/Theta.lean Modified Mathlib/Analysis/Calculus/DiffContOnCl.lean Modified Mathlib/Analysis/Calculus/InverseFunctionTheorem/Deriv.lean Modified Mathlib/Analysis/Complex/AbsMax.lean Modified Mathlib/Analysis/Complex/Convex.lean Modified Mathlib/Analysis/Complex/Liouville.lean Modified Mathlib/Analysis/Complex/Schwarz.lean Modified Mathlib/Analysis/Complex/UpperHalfPlane/Topology.lean Modified Mathlib/Analysis/Convex/Basic.lean Modified Mathlib/Analysis/Convex/Combination.lean Modified Mathlib/Analysis/Convex/Complex.lean Modified Mathlib/Analysis/Convex/Hull.lean Modified Mathlib/Analysis/Convex/Integral.lean Modified Mathlib/Analysis/Convex/Jensen.lean Modified Mathlib/Analysis/Convex/Slope.lean Modified Mathlib/Analysis/Normed/Module/Completion.lean Modified Mathlib/Analysis/NormedSpace/ENorm.lean Modified Mathlib/Analysis/ODE/PicardLindelof.lean Modified Mathlib/Analysis/PSeries.lean Modified Mathlib/Analysis/SpecialFunctions/Complex/Circle.lean Modified Mathlib/Analysis/SpecialFunctions/Sqrt.lean Modified Mathlib/Analysis/SpecificLimits/Basic.lean Modified Mathlib/Analysis/SpecificLimits/Normed.lean Modified Mathlib/CategoryTheory/Endofunctor/Algebra.lean Modified Mathlib/CategoryTheory/Sites/Coherent/CoherentTopology.lean Modified Mathlib/CategoryTheory/Sites/Grothendieck.lean Modified Mathlib/CategoryTheory/Sites/Sieves.lean Modified Mathlib/Condensed/Equivalence.lean Modified Mathlib/Control/Monad/Writer.lean Modified Mathlib/Data/Bool/Set.lean Modified Mathlib/Data/Finsupp/AList.lean Modified Mathlib/Data/Finsupp/Weight.lean Modified Mathlib/Data/List/NodupEquivFin.lean Modified Mathlib/Data/Set/BoolIndicator.lean Modified Mathlib/Data/Set/Pointwise/BoundedMul.lean Modified Mathlib/Data/Set/Pointwise/Interval.lean Modified Mathlib/Data/Sum/Basic.lean Modified Mathlib/Dynamics/Circle/RotationNumber/TranslationNumber.lean Modified Mathlib/Dynamics/Minimal.lean Modified Mathlib/Dynamics/PeriodicPts.lean Modified Mathlib/Geometry/Euclidean/Inversion/Basic.lean Modified Mathlib/Geometry/Manifold/PartitionOfUnity.lean Modified Mathlib/Geometry/Manifold/WhitneyEmbedding.lean Modified Mathlib/Lean/Exception.lean Modified Mathlib/Lean/Expr/Basic.lean Modified Mathlib/Lean/Expr/ReplaceRec.lean Modified Mathlib/LinearAlgebra/AffineSpace/AffineEquiv.lean Modified Mathlib/LinearAlgebra/AffineSpace/Ordered.lean Modified Mathlib/LinearAlgebra/AffineSpace/Slope.lean Modified Mathlib/MeasureTheory/Function/Floor.lean Modified Mathlib/MeasureTheory/Group/Action.lean Modified Mathlib/MeasureTheory/Group/FundamentalDomain.lean Modified Mathlib/MeasureTheory/Group/MeasurableEquiv.lean Modified Mathlib/MeasureTheory/Group/Pointwise.lean Modified Mathlib/MeasureTheory/Integral/Average.lean Modified Mathlib/MeasureTheory/Integral/FundThmCalculus.lean Modified Mathlib/MeasureTheory/Integral/IntervalIntegral.lean Modified Mathlib/MeasureTheory/MeasurableSpace/CountablyGenerated.lean Modified Mathlib/MeasureTheory/Measure/Regular.lean Modified Mathlib/NumberTheory/Cyclotomic/PrimitiveRoots.lean Modified Mathlib/NumberTheory/Liouville/LiouvilleWith.lean Modified Mathlib/NumberTheory/Liouville/Measure.lean Modified Mathlib/NumberTheory/Ostrowski.lean Modified Mathlib/Order/Birkhoff.lean Modified Mathlib/Order/Filter/CountableInter.lean Modified Mathlib/Order/Filter/Germ/Basic.lean Modified Mathlib/Order/Filter/Germ/OrderedMonoid.lean Modified Mathlib/Order/Filter/Interval.lean Modified Mathlib/Order/Filter/Pi.lean Modified Mathlib/Order/Filter/Prod.lean Modified Mathlib/Order/Interval/Set/OrdConnected.lean Modified Mathlib/Order/Interval/Set/ProjIcc.lean Modified Mathlib/Order/Interval/Set/WithBotTop.lean Modified Mathlib/Order/Iterate.lean Modified Mathlib/Order/OrdContinuous.lean Modified Mathlib/Order/RelClasses.lean Modified Mathlib/Order/SemiconjSup.lean Modified Mathlib/RingTheory/PowerSeries/WellKnown.lean Modified Mathlib/SetTheory/Cardinal/ENat.lean Modified Mathlib/Tactic/FunProp/Attr.lean Modified Mathlib/Tactic/FunProp/Core.lean Modified Mathlib/Tactic/FunProp/Decl.lean Modified Mathlib/Tactic/FunProp/Elab.lean Modified Mathlib/Tactic/FunProp/FunctionData.lean Modified Mathlib/Tactic/FunProp/Mor.lean Modified Mathlib/Tactic/FunProp/Theorems.lean Modified Mathlib/Tactic/FunProp/ToBatteries.lean Modified Mathlib/Tactic/FunProp/Types.lean Modified Mathlib/Tactic/Polyrith.lean Modified Mathlib/Tactic/TypeStar.lean Modified Mathlib/Topology/Algebra/GroupWithZero.lean Modified Mathlib/Topology/Algebra/Order/Archimedean.lean Modified Mathlib/Topology/Algebra/UniformMulAction.lean Modified Mathlib/Topology/Bornology/Constructions.lean Modified Mathlib/Topology/EMetricSpace/Paracompact.lean Modified Mathlib/Topology/Inseparable.lean Modified Mathlib/Topology/Instances/Irrational.lean Modified Mathlib/Topology/MetricSpace/Holder.lean Modified Mathlib/Topology/MetricSpace/ShrinkingLemma.lean Modified Mathlib/Topology/Order/Category/FrameAdjunction.lean Modified Mathlib/Topology/Order/ExtrClosure.lean Modified Mathlib/Topology/Order/IntermediateValue.lean Modified Mathlib/Topology/Order/MonotoneContinuity.lean Modified Mathlib/Topology/TietzeExtension.lean Modified Mathlib/Topology/UrysohnsLemma.lean Modified Mathlib/Topology/VectorBundle/Basic.lean Modified Mathlib/Util/MemoFix.lean Modified test/Set.lean 2024-08-11 18:43:44 22e0c3b chore: reduce Cardinal imports (#15579) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/MvPolynomial/Cardinal.lean Modified Mathlib/Algebra/Polynomial/Cardinal.lean Modified Mathlib/LinearAlgebra/Dimension/Free.lean Modified Mathlib/SetTheory/Cardinal/Basic.lean - theorem Cardinal.mk_finsupp_lift_of_fintype - theorem Cardinal.mk_finsupp_of_fintype Added Mathlib/SetTheory/Cardinal/Finsupp.lean + theorem Cardinal.mk_finsupp_lift_of_fintype + theorem Cardinal.mk_finsupp_lift_of_infinite' + theorem Cardinal.mk_finsupp_lift_of_infinite + theorem Cardinal.mk_finsupp_nat + theorem Cardinal.mk_finsupp_of_fintype + theorem Cardinal.mk_finsupp_of_infinite' + theorem Cardinal.mk_finsupp_of_infinite + theorem Cardinal.mk_multiset_of_countable + theorem Cardinal.mk_multiset_of_infinite + theorem Cardinal.mk_multiset_of_isEmpty + theorem Cardinal.mk_multiset_of_nonempty Modified Mathlib/SetTheory/Cardinal/Ordinal.lean - theorem Cardinal.mk_finsupp_lift_of_infinite' - theorem Cardinal.mk_finsupp_lift_of_infinite - theorem Cardinal.mk_finsupp_nat - theorem Cardinal.mk_finsupp_of_infinite' - theorem Cardinal.mk_finsupp_of_infinite - theorem Cardinal.mk_multiset_of_countable - theorem Cardinal.mk_multiset_of_infinite - theorem Cardinal.mk_multiset_of_isEmpty - theorem Cardinal.mk_multiset_of_nonempty 2024-08-11 16:11:42 c78e688 chore: remove unused `set_option in` (#15653) Found by the linter #13653. ESTIMATED CHANGES Modified Mathlib/Analysis/PSeries.lean Modified Mathlib/Analysis/SpecialFunctions/Log/Deriv.lean Modified Mathlib/Analysis/SpecialFunctions/Stirling.lean Modified Mathlib/Combinatorics/SimpleGraph/Regularity/Chunk.lean Modified Mathlib/Data/Complex/ExponentialBounds.lean Modified Mathlib/MeasureTheory/Covering/BesicovitchVectorSpace.lean Modified Mathlib/MeasureTheory/Measure/Haar/OfBasis.lean Modified Mathlib/NumberTheory/Cyclotomic/Discriminant.lean Modified Mathlib/NumberTheory/ModularForms/SlashActions.lean Modified Mathlib/RingTheory/RootsOfUnity/Complex.lean 2024-08-11 16:02:34 f76c72a chore: Frattini no longer needs Fintype.ofFinite (#15687) ESTIMATED CHANGES Modified Mathlib/GroupTheory/Frattini.lean 2024-08-11 11:38:08 0b0394f chore(Filter/Pi): add missing `*` in `Type*` (#15684) ESTIMATED CHANGES Modified Mathlib/Order/Filter/Pi.lean +/- theorem Filter.hasBasis_pi 2024-08-11 10:40:56 7bb6e8b refactor: deprecate stdBasis (#15660) Deprecate stdBasis in favor of its duplicate LinearMap.single. Also changes the binder types in the later. Note the `simp` normal form of an applied (or even simply coerced to function) `LinearMap.single` is a `Pi.single`, as discussed during the community meeting. See the [Zulip discussion](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/LinearMap.2EstdBasis/near/457515331). ESTIMATED CHANGES Modified Mathlib/Analysis/Calculus/TangentCone.lean Modified Mathlib/Analysis/Normed/Lp/PiLp.lean Modified Mathlib/Data/Matrix/Basic.lean + theorem Matrix.dotProduct_single_one + theorem Matrix.mulVec_single_one + theorem Matrix.single_one_dotProduct + theorem Matrix.single_one_vecMul Modified Mathlib/Data/Matrix/Rank.lean Modified Mathlib/LinearAlgebra/AffineSpace/AffineMap.lean +/- theorem AffineMap.pi_ext_nonempty' Modified Mathlib/LinearAlgebra/Basis/Defs.lean Modified Mathlib/LinearAlgebra/FinsuppVectorSpace.lean + theorem Basis.equivFun_symm_single Modified Mathlib/LinearAlgebra/Matrix/Basis.lean Modified Mathlib/LinearAlgebra/Matrix/BilinearForm.lean - theorem LinearMap.BilinForm.toMatrixAux_stdBasis + theorem Matrix.toBilin'Aux_single - theorem Matrix.toBilin'Aux_stdBasis + theorem Matrix.toBilin'_single Modified Mathlib/LinearAlgebra/Matrix/Diagonal.lean + theorem Matrix.diagonal_comp_single Modified Mathlib/LinearAlgebra/Matrix/DotProduct.lean Modified Mathlib/LinearAlgebra/Matrix/SesquilinearForm.lean + theorem Matrix.toLinearMap₂'Aux_single - theorem Matrix.toLinearMap₂'Aux_stdBasis + theorem Matrix.toLinearMap₂'_single + theorem Matrix.toLinearMapₛₗ₂'_single Modified Mathlib/LinearAlgebra/Matrix/ToLin.lean Modified Mathlib/LinearAlgebra/Pi.lean +/- theorem LinearMap.coe_single + theorem LinearMap.disjoint_single_single + theorem LinearMap.iInf_ker_proj_le_iSup_range_single + theorem LinearMap.iSup_range_single + theorem LinearMap.iSup_range_single_eq_iInf_ker_proj + theorem LinearMap.iSup_range_single_le_iInf_ker_proj + theorem LinearMap.ker_single +/- theorem LinearMap.pi_ext' + theorem LinearMap.proj_comp_single + theorem LinearMap.proj_comp_single_ne + theorem LinearMap.proj_comp_single_same + theorem LinearMap.single_apply + theorem LinearMap.single_eq_pi_diag Modified Mathlib/LinearAlgebra/QuadraticForm/Complex.lean Modified Mathlib/LinearAlgebra/QuadraticForm/Prod.lean Modified Mathlib/LinearAlgebra/QuadraticForm/Real.lean Modified Mathlib/LinearAlgebra/QuotientPi.lean Modified Mathlib/LinearAlgebra/StdBasis.lean +/- theorem LinearMap.iSup_range_stdBasis +/- theorem LinearMap.proj_comp_stdBasis +/- theorem LinearMap.stdBasis_eq_pi_diag +/- theorem Pi.basisFun_apply + theorem Pi.basis_repr_single + theorem Pi.linearIndependent_single Modified Mathlib/MeasureTheory/Measure/Lebesgue/EqHaar.lean Modified Mathlib/RingTheory/AdjoinRoot.lean Modified Mathlib/RingTheory/Finiteness.lean Modified Mathlib/RingTheory/Flat/EquationalCriterion.lean Modified Mathlib/RingTheory/MvPowerSeries/Basic.lean Modified Mathlib/RingTheory/SimpleModule.lean 2024-08-11 05:10:28 ce6b0a9 refactor: Unify the different versions of `mul_eq_one` (#14996) Replace `mul_eq_one_iff` and `Associates.mul_eq_one_iff` by a single lemma `mul_eq_one`. Rename `mul_eq_one_iff'` to `mul_eq_one_iff_of_one_le`. Similarly for the additive versions. ESTIMATED CHANGES Modified Archive/Wiedijk100Theorems/BallotProblem.lean Modified Mathlib/Algebra/Associated/Basic.lean - theorem Associates.mul_eq_one_iff - theorem Associates.units_eq_one Modified Mathlib/Algebra/BigOperators/Associated.lean Modified Mathlib/Algebra/Order/BigOperators/Group/Finset.lean Modified Mathlib/Algebra/Order/Monoid/Canonical/Defs.lean - theorem mul_eq_one_iff Modified Mathlib/Algebra/Order/Monoid/Unbundled/Basic.lean - theorem mul_eq_one_iff' + theorem mul_eq_one_iff_of_one_le Modified Mathlib/Algebra/Order/Ring/Unbundled/Basic.lean Modified Mathlib/Algebra/Polynomial/Monic.lean Modified Mathlib/Algebra/Polynomial/RingDivision.lean Modified Mathlib/Algebra/Quaternion.lean Modified Mathlib/AlgebraicTopology/DoldKan/FunctorGamma.lean Modified Mathlib/Analysis/BoundedVariation.lean Modified Mathlib/Analysis/Convex/Basic.lean Modified Mathlib/Analysis/MeanInequalitiesPow.lean Modified Mathlib/Combinatorics/Enumerative/Composition.lean Modified Mathlib/Data/Finsupp/Antidiagonal.lean Modified Mathlib/Data/Nat/Factorization/Basic.lean Modified Mathlib/Data/Nat/WithBot.lean Modified Mathlib/Data/Ordmap/Ordset.lean Modified Mathlib/Geometry/Euclidean/Angle/Unoriented/RightAngle.lean Modified Mathlib/LinearAlgebra/QuadraticForm/Prod.lean Modified Mathlib/MeasureTheory/Covering/Besicovitch.lean Modified Mathlib/MeasureTheory/Decomposition/Jordan.lean Modified Mathlib/MeasureTheory/Decomposition/SignedLebesgue.lean Modified Mathlib/MeasureTheory/Measure/Restrict.lean Modified Mathlib/NumberTheory/Bernoulli.lean Modified Mathlib/NumberTheory/Zsqrtd/Basic.lean Modified Mathlib/RingTheory/Coprime/Basic.lean Modified Mathlib/RingTheory/GradedAlgebra/Basic.lean Modified Mathlib/RingTheory/PowerSeries/Order.lean Modified Mathlib/RingTheory/UniqueFactorizationDomain.lean Modified Mathlib/SetTheory/Cardinal/Divisibility.lean 2024-08-11 04:28:48 bc89bc5 chore(SetTheory/Ordinal): remove bare open Classical (#15670) ESTIMATED CHANGES Modified Mathlib/SetTheory/Cardinal/Basic.lean +/- theorem Cardinal.mk_sum_compl Modified Mathlib/SetTheory/Cardinal/Cofinality.lean Modified Mathlib/SetTheory/Cardinal/Ordinal.lean +/- theorem Cardinal.mk_finset_of_infinite +/- theorem Cardinal.mk_multiset_of_countable +/- theorem Cardinal.mk_multiset_of_nonempty Modified Mathlib/SetTheory/Ordinal/Arithmetic.lean +/- theorem Ordinal.lift_pred +/- theorem Ordinal.lt_pred +/- theorem Ordinal.pred_le_self +/- theorem Ordinal.zero_or_succ_or_limit Modified Mathlib/SetTheory/Ordinal/Basic.lean Modified Mathlib/SetTheory/Ordinal/Exponential.lean 2024-08-11 03:09:08 06bc0d1 chore(CategoryTheory/Monoidal): fix duplicate lemmas (#15682) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/GradedObject/Monoidal.lean Modified Mathlib/CategoryTheory/Monoidal/Category.lean - theorem CategoryTheory.MonoidalCategory.whiskerLeft_whiskerLeft_associator_inv 2024-08-10 22:22:37 19796ee feat(ContinuousMapZero): add norm structure on `C(X, R)₀` (#15664) This PR adds a norm structure on `C(X, R)₀`. This is needed to work with integral representations of functions defined via the non-unital continuous functional calculus. ESTIMATED CHANGES Modified Mathlib/Topology/ContinuousFunction/ContinuousMapZero.lean + def ContinuousMapZero.evalCLM + theorem ContinuousMapZero.evalCLM_apply + def ContinuousMapZero.toContinuousMapCLM 2024-08-10 20:14:37 0077925 feat (LinearAlgebra/RootSystem) : infinitely many roots when two are parallel (#15582) This PR has a proof that if two roots are linearly independent and "parallel" (meaning their pairings multiply to 4), then the root system containing them is infinite. This is mostly done by refactoring an existing proof. ESTIMATED CHANGES Modified Mathlib/Algebra/Module/Torsion.lean + theorem infinite_range_add_nsmul_iff + theorem infinite_range_add_smul_iff Modified Mathlib/LinearAlgebra/Reflection.lean + theorem Module.infinite_range_reflection_reflection_iterate_iff + theorem Module.reflection_reflection_iterate Modified Mathlib/LinearAlgebra/RootSystem/Basic.lean + theorem RootPairing.infinite_of_linearly_independent_coxeterWeight_four 2024-08-10 17:43:53 3dd071b chore: turn some `induction'` to `induction` (#15663) This PR turns some (soon to be deprecated?) `induction'` into `induction`. ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/Basic.lean Modified Mathlib/Algebra/Associated/Basic.lean Modified Mathlib/Algebra/BigOperators/Group/Finset.lean Modified Mathlib/Algebra/Group/Int.lean Modified Mathlib/Algebra/Group/Nat.lean Modified Mathlib/Algebra/Group/Semiconj/Defs.lean Modified Mathlib/Algebra/Lie/Sl2.lean Modified Mathlib/Algebra/Module/Defs.lean Modified Mathlib/Algebra/Module/Submodule/LinearMap.lean Modified Mathlib/Algebra/MvPolynomial/Variables.lean Modified Mathlib/Algebra/Order/CauSeq/Basic.lean Modified Mathlib/Algebra/Order/Group/Nat.lean Modified Mathlib/Algebra/Polynomial/Basic.lean Modified Mathlib/Algebra/Polynomial/Eval.lean Modified Mathlib/Algebra/Polynomial/FieldDivision.lean Modified Mathlib/Algebra/Polynomial/Smeval.lean Modified Mathlib/Algebra/TrivSqZeroExt.lean Modified Mathlib/RingTheory/Ideal/Basic.lean Modified Mathlib/RingTheory/MvPowerSeries/Basic.lean Modified Mathlib/RingTheory/Polynomial/Hermite/Basic.lean Modified Mathlib/RingTheory/Polynomial/Pochhammer.lean 2024-08-10 15:38:38 ac1484f chore: cleanup Init imports (#15638) ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Defs.lean Modified Mathlib/Init/Data/List/Basic.lean Modified Mathlib/Init/Data/List/Lemmas.lean Modified Mathlib/Init/Data/Nat/Lemmas.lean Modified Mathlib/Lean/Expr/Basic.lean Modified Mathlib/Tactic/Core.lean Modified Mathlib/Tactic/ExtractLets.lean Modified Mathlib/Tactic/WLOG.lean Modified test/cases.lean Modified test/meta.lean 2024-08-10 12:31:39 ee220de perf(Algebra.Ring.BooleanRing): scope simp theorems with weak keys but complex parameters (#15611) The keys of these are the form `HAdd.hAdd _ _ _ _ _ _` etc. but they require a typeclass search for `BooleanRing` which extends `Ring`. As they are only meant to apply to `BooleanRing`s, we add a namespace and scope them to `BooleanRing`. ESTIMATED CHANGES Modified Mathlib/Algebra/Ring/BooleanRing.lean + theorem BooleanRing.add_eq_zero' + theorem BooleanRing.add_self + theorem BooleanRing.mul_add_mul + theorem BooleanRing.mul_one_add_self + theorem BooleanRing.neg_eq + theorem BooleanRing.sub_eq_add - theorem add_eq_zero' - theorem add_self - theorem mul_add_mul - theorem mul_one_add_self - theorem mul_self - theorem neg_eq - theorem sub_eq_add 2024-08-10 09:16:38 c1f09cd chore: deprecate MulEquiv.map_mul, AddEquiv.map_add (#15615) ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Aut.lean Modified Mathlib/Algebra/Group/Conj.lean Modified Mathlib/Algebra/Group/Equiv/Basic.lean Modified Mathlib/Algebra/Group/Equiv/TypeTags.lean Modified Mathlib/Algebra/Group/Opposite.lean Modified Mathlib/Algebra/Group/Prod.lean Modified Mathlib/Algebra/Group/Submonoid/Membership.lean Modified Mathlib/CategoryTheory/Conj.lean Modified Mathlib/Data/DFinsupp/Basic.lean Modified Mathlib/Data/Finsupp/Multiset.lean Modified Mathlib/Data/Matrix/Basic.lean Modified Mathlib/Deprecated/Group.lean Modified Mathlib/GroupTheory/Commensurable.lean Modified Mathlib/GroupTheory/MonoidLocalization/Basic.lean Modified Mathlib/GroupTheory/Subgroup/Center.lean Modified Mathlib/RingTheory/UniqueFactorizationDomain.lean 2024-08-10 08:13:06 a43394c feat: Generalize statements about deriv of MulLog (#14594) Uses non-differentiability to generalize statements about deriv of MulLog ESTIMATED CHANGES Modified Mathlib/Analysis/SpecialFunctions/Log/NegMulLog.lean +/- theorem Real.deriv2_mul_log +/- theorem Real.deriv2_negMulLog + theorem Real.deriv_mul_log_zero + theorem Real.differentiableAt_negMulLog_iff + theorem Real.not_DifferentiableAt_log_mul_zero + theorem Real.not_continuousAt_deriv_mul_log_zero Modified Mathlib/Topology/Basic.lean + theorem not_continuousAt_of_tendsto 2024-08-10 06:09:17 6a9aca0 chore(CategoryTheory): tidy file Sites/Discrete (#15658) Fix typos in docstrings and use `isIso_of_reflects_iso` instead of `ReflectsIsomorphisms.reflects` ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Sites/Discrete.lean 2024-08-10 03:36:09 e15449d chore: split LinearAlgebra.Basis (#15639) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/DirectSum/Module.lean Modified Mathlib/Algebra/Polynomial/Roots.lean Modified Mathlib/Analysis/Normed/Operator/LinearIsometry.lean Modified Mathlib/LinearAlgebra/AffineSpace/Basis.lean Modified Mathlib/LinearAlgebra/Alternating/Basic.lean Added Mathlib/LinearAlgebra/Basis/Basic.lean + theorem Basis.basis_singleton_iff + theorem Basis.coe_finTwoProd_repr + theorem Basis.coe_mk + theorem Basis.coe_mkFinCons + theorem Basis.coe_mkFinConsOfLE + theorem Basis.coe_sumCoords_eq_finsum + theorem Basis.coord_unitsSMul + theorem Basis.eq_bot_of_rank_eq_zero + theorem Basis.finTwoProd_one + theorem Basis.finTwoProd_zero + def Basis.groupSMul + theorem Basis.groupSMul_apply + theorem Basis.groupSMul_span_eq_top + def Basis.isUnitSMul + theorem Basis.isUnitSMul_apply + theorem Basis.maximal + theorem Basis.mem_center_iff + theorem Basis.mem_span_iff_repr_mem + theorem Basis.mk_apply + theorem Basis.mk_coord_apply + theorem Basis.mk_coord_apply_eq + theorem Basis.mk_coord_apply_ne + theorem Basis.mk_repr + theorem Basis.prod_apply + theorem Basis.prod_apply_inl_fst + theorem Basis.prod_apply_inl_snd + theorem Basis.prod_apply_inr_fst + theorem Basis.prod_apply_inr_snd + theorem Basis.prod_repr_inl + theorem Basis.prod_repr_inr + theorem Basis.repr_unitsSMul + theorem Basis.restrictScalars_apply + theorem Basis.restrictScalars_repr_apply + def Basis.unitsSMul + theorem Basis.unitsSMul_apply + theorem Basis.units_smul_span_eq_top + def Submodule.inductionOnRankAux Modified Mathlib/LinearAlgebra/Basis/Bilinear.lean Added Mathlib/LinearAlgebra/Basis/Cardinality.lean + theorem basis_finite_of_finite_spans + theorem infinite_basis_le_maximal_linearIndependent' + theorem infinite_basis_le_maximal_linearIndependent + theorem union_support_maximal_linearIndependent_eq_range_basis Renamed Mathlib/LinearAlgebra/Basis.lean to Mathlib/LinearAlgebra/Basis/Defs.lean - theorem Basis.basis_singleton_iff - theorem Basis.coe_finTwoProd_repr - theorem Basis.coe_mk - theorem Basis.coe_mkFinCons - theorem Basis.coe_mkFinConsOfLE - theorem Basis.coe_sumCoords_eq_finsum - theorem Basis.coord_unitsSMul - theorem Basis.eq_bot_of_rank_eq_zero - theorem Basis.finTwoProd_one - theorem Basis.finTwoProd_zero - def Basis.groupSMul - theorem Basis.groupSMul_apply - theorem Basis.groupSMul_span_eq_top - def Basis.isUnitSMul - theorem Basis.isUnitSMul_apply - theorem Basis.maximal - theorem Basis.mem_center_iff - theorem Basis.mem_span_iff_repr_mem - theorem Basis.mk_apply - theorem Basis.mk_coord_apply - theorem Basis.mk_coord_apply_eq - theorem Basis.mk_coord_apply_ne - theorem Basis.mk_repr - theorem Basis.prod_apply - theorem Basis.prod_apply_inl_fst - theorem Basis.prod_apply_inl_snd - theorem Basis.prod_apply_inr_fst - theorem Basis.prod_apply_inr_snd - theorem Basis.prod_repr_inl - theorem Basis.prod_repr_inr - theorem Basis.repr_unitsSMul - theorem Basis.restrictScalars_apply - theorem Basis.restrictScalars_repr_apply - def Basis.unitsSMul - theorem Basis.unitsSMul_apply - theorem Basis.units_smul_span_eq_top - def Submodule.inductionOnRankAux - theorem basis_finite_of_finite_spans - theorem infinite_basis_le_maximal_linearIndependent' - theorem infinite_basis_le_maximal_linearIndependent - theorem union_support_maximal_linearIndependent_eq_range_basis Modified Mathlib/LinearAlgebra/Basis/Flag.lean Modified Mathlib/LinearAlgebra/Basis/VectorSpace.lean Modified Mathlib/LinearAlgebra/BilinearForm/Hom.lean Modified Mathlib/LinearAlgebra/FreeAlgebra.lean Modified Mathlib/LinearAlgebra/FreeModule/Basic.lean Modified Mathlib/LinearAlgebra/Matrix/DotProduct.lean Modified Mathlib/LinearAlgebra/Multilinear/Basis.lean Modified Mathlib/LinearAlgebra/SesquilinearForm.lean Modified Mathlib/LinearAlgebra/StdBasis.lean Modified Mathlib/RingTheory/Adjoin/Basic.lean Modified Mathlib/RingTheory/AlgebraTower.lean Modified Mathlib/RingTheory/Finiteness.lean Modified Mathlib/RingTheory/Ideal/Basis.lean Modified Mathlib/RingTheory/Localization/Module.lean Modified Mathlib/RingTheory/MvPolynomial/WeightedHomogeneous.lean 2024-08-09 22:59:12 d8159b9 feat: define ergodic actions (#14952) Also prove that a function is ergodic iff the corresponding `IterateMulAct` action is ergodic. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Dynamics/Ergodic/Action/Basic.lean + theorem ErgodicSMul.of_aestabilizer + theorem MeasureTheory.aeconst_of_forall_preimage_smul_ae_eq + theorem MeasureTheory.aeconst_of_forall_smul_ae_eq + theorem MeasureTheory.ergodicSMul_iterateMulAct + theorem MulAction.aeconst_of_aestabilizer_eq_top Modified Mathlib/GroupTheory/GroupAction/IterateAct.lean Modified Mathlib/MeasureTheory/Group/Action.lean + theorem MeasureTheory.MeasurePreserving.smulInvariantMeasure_iterateMulAct + theorem MeasureTheory.smulInvariantMeasure_iterateMulAct Modified Mathlib/MeasureTheory/Group/Arithmetic.lean + theorem Measurable.measurableSMul₂_iterateMulAct + theorem measurableSMul_iterateMulAct + theorem measurableSMul₂_iterateMulAct Modified Mathlib/MeasureTheory/MeasurableSpace/Instances.lean 2024-08-09 20:24:59 82bb2e0 chore: add a space after `notation3` for prettier printing (#15515) The change means that `notation3 ...` gets pretty-printed with a space after `notation3`, instead of collapsing the following whitespaces into nothing. Discovered in the process of writing a "pretty-formatted" linter. ESTIMATED CHANGES Modified Mathlib/Mathport/Notation.lean 2024-08-09 19:53:23 23c8f16 feat(MeasureTheory): add `ae_restrict_of_forall_mem` (#15625) I found myself repeatedly needing this lemma. ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Measure/Restrict.lean + theorem MeasureTheory.ae_restrict_of_forall_mem 2024-08-09 17:52:17 f66b157 chore: cleaning up deprecations (#15637) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Data/String/Defs.lean Added Mathlib/Deprecated/Aliases.lean Renamed Mathlib/Data/HashMap.lean to Mathlib/Deprecated/HashMap.lean 2024-08-09 15:52:59 96a6efb feat(Analysis/SpecialFunctions/Complex/LogBounds): Add some log bounds (#15376) Add some basic bounds on complex logs that are useful for bounding infinite sums/products. ESTIMATED CHANGES Modified Mathlib/Analysis/SpecialFunctions/Complex/LogBounds.lean + theorem Complex.norm_log_one_add_half_le_self + theorem Complex.norm_log_one_add_le 2024-08-09 14:59:48 6e0804c chore: backports for leanprover/lean4#4814 (part 39) (#15636) ESTIMATED CHANGES Modified Mathlib/Data/DFinsupp/Basic.lean +/- theorem DFinsupp.comapDomain_single +/- theorem DFinsupp.sigmaUncurry_add +/- theorem DFinsupp.sigmaUncurry_apply +/- theorem DFinsupp.sigmaUncurry_single +/- theorem DFinsupp.sigmaUncurry_smul +/- theorem DFinsupp.sigmaUncurry_zero +/- theorem DFinsupp.subtypeDomain_finsupp_sum +/- theorem DFinsupp.subtypeDomain_sum +/- theorem DFinsupp.sum_apply Modified Mathlib/Data/DFinsupp/Notation.lean 2024-08-09 14:59:46 4d65f9e perf: `to_additive (attr := reducible)` -> `abbrev` (#15476) ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Action/Defs.lean - def Function.Surjective.mulActionLeft - def MulAction.compHom - def SMul.comp Modified Mathlib/Algebra/Group/InjSurj.lean Modified Mathlib/Algebra/Group/MinimalAxioms.lean - def Group.ofLeftAxioms - def Group.ofRightAxioms Modified Mathlib/Algebra/Order/Group/InjSurj.lean - def Function.Injective.linearOrderedCommGroup - def Function.Injective.orderedCommGroup Modified Mathlib/Algebra/Order/Monoid/Basic.lean - def Function.Injective.linearOrderedCancelCommMonoid - def Function.Injective.linearOrderedCommMonoid - def Function.Injective.orderedCancelCommMonoid - def Function.Injective.orderedCommMonoid Modified Mathlib/Analysis/Normed/Group/Basic.lean - def GroupNorm.toNormedCommGroup - def GroupNorm.toNormedGroup - def GroupSeminorm.toSeminormedCommGroup - def GroupSeminorm.toSeminormedGroup - def NormedCommGroup.induced - def NormedCommGroup.ofMulDist' - def NormedCommGroup.ofMulDist - def NormedCommGroup.ofSeparation - def NormedGroup.induced - def NormedGroup.ofMulDist' - def NormedGroup.ofMulDist - def NormedGroup.ofSeparation - def SeminormedCommGroup.induced - def SeminormedCommGroup.ofMulDist' - def SeminormedCommGroup.ofMulDist - def SeminormedGroup.induced - def SeminormedGroup.ofMulDist' - def SeminormedGroup.ofMulDist Modified Mathlib/GroupTheory/EckmannHilton.lean - def EckmannHilton.commGroup - def EckmannHilton.commMonoid Modified Mathlib/GroupTheory/Exponent.lean - def commMonoidOfExponentTwo Modified Mathlib/GroupTheory/GroupAction/Basic.lean - def MulAction.orbitRel.Quotient Modified Mathlib/GroupTheory/MonoidLocalization/Basic.lean - def Localization.Away.monoidOf - def Localization.Away - def Submonoid.LocalizationMap.AwayMap Modified Mathlib/GroupTheory/SpecificGroups/KleinFour.lean - def IsKleinFour.mulEquiv Modified Mathlib/Logic/Equiv/TransferInstance.lean Modified Mathlib/MeasureTheory/Measure/Haar/Basic.lean 2024-08-09 14:31:43 c0ec063 feat: add lemma relating Set.encard to tsum over ennreal (#15214) two lemmas: `s.tsum (1:ENNReal) = s.encard` and `s.tsum c = s.encard * c`, where `c:ENNReal` and `s : Set α`. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Data/Set/Card.lean Added Mathlib/Topology/Algebra/InfiniteSum/ENNReal.lean + theorem ENNReal.tsum_set_const_eq + theorem ENNReal.tsum_set_one_eq 2024-08-09 14:31:42 7dc099d feat(Topology/Instances): the only closed subfield of the field of real numbers is the real numbers itself (#15094) This PR contains the result that the only closed subfield of the field of real numbers is the field of real numbers itself. Split off from the larger PR #13577. ESTIMATED CHANGES Modified Mathlib/Topology/Instances/Real.lean + theorem Real.subfield_eq_of_closed 2024-08-09 13:42:47 4ce28eb chore(Algebra): turn `induction'` into `induction` (#15642) This PR turns the (soon to be deprecated?) `induction'` into `induction`. ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/Operations.lean Modified Mathlib/Algebra/BigOperators/Group/List.lean Modified Mathlib/Algebra/ContinuedFractions/Computation/Translations.lean 2024-08-09 12:27:50 74b685e fix: variables in TuringMachine.lean (#15422) This is work by @digama0 that I'm backport from the lean-pr-testing-4814 branch. ESTIMATED CHANGES Modified Mathlib/Computability/TuringMachine.lean +/- structure Turing.TM0.Cfg +/- def Turing.TM0.Reaches +/- def Turing.TM0.init +/- structure Turing.TM1.Cfg +/- def Turing.TM1.step +/- def Turing.TM1.stepAux +/- def Turing.TM1to0.trCfg +/- theorem Turing.TM1to0.tr_eval +/- theorem Turing.TM1to0.tr_respects +/- theorem Turing.TM1to1.exists_enc_dec +/- theorem Turing.TM1to1.tr_supports +/- theorem Turing.TM2to1.tr_respects_aux₂ 2024-08-09 11:40:09 dc29147 chore (Algebra.Order.Group.Int): split file into unbundled and bundled ordered algebra (#15069) All but ~5 lines of this file did not require bundled ordered algebra classes. We split them off into `Algebra.Order.Group.Unbundled.Int` leaving the `LinearOrderedAddCommGroup` instance. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/EuclideanDomain/Int.lean Modified Mathlib/Algebra/GCDMonoid/Nat.lean Modified Mathlib/Algebra/Order/Group/Int.lean - theorem Int.abs_ediv_le_abs - theorem Int.abs_eq_natAbs - theorem Int.abs_le_one_iff - theorem Int.abs_lt_one_iff - theorem Int.abs_natCast - theorem Int.abs_sign_of_nonzero - theorem Int.ediv_eq_zero_of_lt_abs - theorem Int.emod_abs - theorem Int.emod_lt - theorem Int.le_self_sq - theorem Int.natAbs_abs - theorem Int.natAbs_le_self_sq - theorem Int.natAbs_sub_ne_zero_iff - theorem Int.natAbs_sub_pos_iff - theorem Int.natCast_natAbs - theorem Int.natCast_strictMono - theorem Int.one_le_abs - theorem Int.sign_mul_abs - theorem zpow_abs_eq_one Added Mathlib/Algebra/Order/Group/Unbundled/Int.lean + theorem Int.abs_ediv_le_abs + theorem Int.abs_eq_natAbs + theorem Int.abs_le_one_iff + theorem Int.abs_lt_one_iff + theorem Int.abs_natCast + theorem Int.abs_sign_of_nonzero + theorem Int.ediv_eq_zero_of_lt_abs + theorem Int.emod_abs + theorem Int.emod_lt + theorem Int.le_self_sq + theorem Int.natAbs_abs + theorem Int.natAbs_le_self_sq + theorem Int.natAbs_sub_ne_zero_iff + theorem Int.natAbs_sub_pos_iff + theorem Int.natCast_natAbs + theorem Int.natCast_strictMono + theorem Int.one_le_abs + theorem Int.sign_mul_abs + theorem zpow_abs_eq_one Modified Mathlib/Algebra/Order/Ring/Abs.lean Modified Mathlib/Algebra/Order/Ring/Cast.lean Modified Mathlib/Algebra/Order/Ring/Int.lean Modified Mathlib/Data/Int/Interval.lean Modified Mathlib/Data/Int/Star.lean 2024-08-09 08:00:05 a528f20 feat(GroupTheory/GroupExtension/Defs): define group extensions (#15049) Mainly defines: - `structure GroupExtension N E G`: group extensions as short exact sequences `1 → N → E → G → 1` - `structure GroupExtension.Equiv S S'`: equivalences of two group extensions `S : GroupExtension N E G` and `S' : GroupExtension N E' G` - `structure GroupExtension.Splitting S`: splittings of a group extension `S` - `def SemidirectProduct.toGroupExtension (φ : G →* MulAut N)`: the group extension associated with the semidirect product, `1 → N → N ⋊[φ] G → G → 1` ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/GroupTheory/GroupExtension/Defs.lean + structure AddGroupExtension.Equiv + structure AddGroupExtension.Splitting + structure AddGroupExtension + structure GroupExtension.Equiv + def GroupExtension.IsConj + structure GroupExtension.Splitting + theorem GroupExtension.inl_conjAct_comm + theorem GroupExtension.rightHom_comp_inl + theorem GroupExtension.rightHom_inl + structure GroupExtension + def SemidirectProduct.inr_splitting + def SemidirectProduct.toGroupExtension + theorem SemidirectProduct.toGroupExtension_inl + theorem SemidirectProduct.toGroupExtension_rightHom 2024-08-09 07:41:27 6148791 fix(lint-style): correct error message (#15438) ESTIMATED CHANGES Modified Mathlib/Tactic/Linter/TextBased.lean 2024-08-09 06:50:18 cd6bbdf chore(AtTopBot): drop a `Nonempty` assumption (#15634) ... in `atTop_basis'` and `atBot_basis'`. ESTIMATED CHANGES Modified Mathlib/Order/Filter/AtTopBot.lean 2024-08-09 04:16:20 c37e54b chore: update Mathlib dependencies 2024-08-09 (#15633) This PR updates the Mathlib dependencies. ESTIMATED CHANGES Modified lake-manifest.json 2024-08-09 03:04:29 bc37ac3 chore(Algebra/Ring/SumsOfSquares, Algebra/Ring/Semireal): name convension (#15621) ESTIMATED CHANGES Modified Mathlib/Algebra/Ring/Semireal/Defs.lean Modified Mathlib/Algebra/Ring/SumsOfSquares.lean + theorem AddSubmonoid.closure_isSquare + theorem IsSumSq.add + theorem IsSumSq.nonneg + inductive IsSumSq - theorem SquaresAddClosure - theorem SquaresInSumSq - def SumSqIn - theorem isSumSq.add - theorem isSumSq.nonneg - inductive isSumSq + theorem mem_sumSqIn_of_isSquare + def sumSqIn 2024-08-09 02:35:33 00d93f9 feat: add `OrderedSMul ℝ A` instance for `StarOrderedRing A` (#15391) This instance is already available in the scope `ComplexOrder`, but for `ℝ` that is unnecesary, so we make it a global instance. This instance could be moved earlier (so that we don't make use of `RCLike`), but it's probably not that important to do so. ESTIMATED CHANGES Modified Mathlib/Analysis/RCLike/Basic.lean 2024-08-09 02:03:51 1339db1 feat(Topology/Algebra): add `smul_mem_nhds_smul` (#15563) - add `smul_mem_nhds_smul_iff` and `smul_mem_nhds_smul`, deprecate `smul_mem_nhds`; - move 3 lemmas up in the import graph; - add `smul_mem_nhds_self`; - rename `set_smul_mem_nhds_smul_iff` to `smul_mem_nhds_smul_iff₀`, deprecate the old lemma; - similarly with `set_smul_mem_nhds_smul` and `smul_mem_nhds_smul₀`; ESTIMATED CHANGES Modified Mathlib/Analysis/LocallyConvex/ContinuousOfBounded.lean Modified Mathlib/MeasureTheory/Measure/Haar/Unique.lean Modified Mathlib/Topology/Algebra/ConstMulAction.lean + theorem IsOpen.smul_left - theorem set_smul_mem_nhds_smul_iff + theorem smul_mem_nhds_self + theorem smul_mem_nhds_smul_iff + theorem smul_mem_nhds_smul_iff₀ + theorem subset_interior_smul_right Modified Mathlib/Topology/Algebra/Group/Basic.lean - theorem IsOpen.smul_left - theorem smul_mem_nhds - theorem subset_interior_smul_right Modified Mathlib/Topology/Algebra/Group/OpenMapping.lean Modified Mathlib/Topology/Maps/Basic.lean + theorem OpenEmbedding.image_mem_nhds 2024-08-09 00:58:25 8a8bd68 chore: backports for leanprover/lean4#4814 (part 38) (#15618) ESTIMATED CHANGES Modified Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/NonUnital.lean +/- theorem StarOrderedRing.nonneg_iff_quasispectrum_nonneg +/- theorem cfcₙHom_nonneg_iff +/- theorem cfcₙ_nonneg_iff Modified Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Unital.lean +/- theorem StarOrderedRing.nonneg_iff_spectrum_nonneg +/- theorem Units.continuousOn_zpow₀_spectrum +/- theorem cfcHom_nonneg_iff +/- theorem cfc_const_one +/- theorem cfc_eq_cfc_iff_eqOn +/- theorem cfc_nonneg_iff +/- theorem cfc_one +/- theorem cfc_star_id +/- theorem isUnit_cfc_iff 2024-08-09 00:58:24 86d8be6 chore: backports for leanprover/lean4#4814 (part 34) (#15607) ESTIMATED CHANGES Modified Mathlib/Algebra/Lie/Derivation/Killing.lean +/- theorem LieDerivation.IsKilling.killingForm_restrict_range_ad Modified Mathlib/Algebra/Lie/Weights/Killing.lean - theorem LieAlgebra.IsKilling.restrict_killingForm + theorem LieAlgebra.restrict_killingForm Modified Mathlib/Algebra/Lie/Weights/RootSystem.lean +/- theorem LieAlgebra.IsKilling.chainBotCoeff_of_eq_zsmul_add +/- theorem LieAlgebra.IsKilling.chainBotCoeff_zero_right +/- theorem LieAlgebra.IsKilling.chainLength_zero_right +/- theorem LieAlgebra.IsKilling.chainTopCoeff_of_eq_zsmul_add +/- theorem LieAlgebra.IsKilling.chainTopCoeff_zero_right +/- theorem LieAlgebra.IsKilling.eq_neg_one_or_eq_zero_or_eq_one_of_eq_smul +/- theorem LieAlgebra.IsKilling.le_chainBotCoeff_of_rootSpace_ne_top +/- theorem LieAlgebra.IsKilling.rootSpace_neg_nsmul_add_chainTop_of_lt +/- theorem LieAlgebra.IsKilling.rootSpace_one_div_two_smul +/- theorem LieAlgebra.IsKilling.rootSpace_two_smul +/- theorem LieAlgebra.IsKilling.rootSpace_zsmul_add_ne_bot_iff +/- theorem LieAlgebra.IsKilling.rootSpace_zsmul_add_ne_bot_iff_mem Modified Mathlib/Analysis/BoxIntegral/Partition/Filter.lean +/- theorem BoxIntegral.IntegrationParams.MemBaseSet.exists_common_compl Modified Mathlib/Analysis/Calculus/BumpFunction/Normed.lean +/- theorem ContDiffBump.normed_le_div_measure_closedBall_rIn Modified Mathlib/Analysis/Calculus/ParametricIntervalIntegral.lean Modified Mathlib/Analysis/Convolution.lean +/- theorem MeasureTheory.integral_posConvolution Modified Mathlib/Analysis/Distribution/AEEqOfIntegralContDiff.lean +/- theorem ae_eq_zero_of_integral_smooth_smul_eq_zero Modified Mathlib/Analysis/Fourier/FourierTransform.lean Modified Mathlib/Analysis/Fourier/RiemannLebesgueLemma.lean Modified Mathlib/Analysis/NormedSpace/PiTensorProduct/InjectiveSeminorm.lean Modified Mathlib/Geometry/Manifold/BumpFunction.lean Modified Mathlib/Geometry/Manifold/ContMDiffMFDeriv.lean +/- theorem ContMDiffOn.contMDiffOn_tangentMapWithin +/- theorem TangentBundle.tangentMap_tangentBundle_pure Modified Mathlib/Geometry/Manifold/LocalDiffeomorph.lean Modified Mathlib/Geometry/Manifold/MFDeriv/UniqueDifferential.lean +/- theorem UniqueMDiffOn.uniqueDiffOn_inter_preimage Modified Mathlib/Geometry/Manifold/PartitionOfUnity.lean +/- structure SmoothBumpCovering Modified Mathlib/Geometry/Manifold/PoincareConjecture.lean Modified Mathlib/Geometry/Manifold/VectorBundle/Basic.lean Modified Mathlib/Geometry/Manifold/VectorBundle/Hom.lean Modified Mathlib/Geometry/Manifold/VectorBundle/SmoothSection.lean Modified Mathlib/MeasureTheory/Covering/Differentiation.lean Modified Mathlib/MeasureTheory/Decomposition/RadonNikodym.lean Modified Mathlib/MeasureTheory/Function/ConditionalExpectation/Basic.lean Modified Mathlib/MeasureTheory/Integral/Average.lean +/- theorem MeasureTheory.average_pair Modified Mathlib/MeasureTheory/Integral/Bochner.lean +/- theorem MeasureTheory.tendsto_integral_norm_approxOn_sub Modified Mathlib/MeasureTheory/Integral/FundThmCalculus.lean +/- theorem intervalIntegral.measure_integral_sub_linear_isLittleO_of_tendsto_ae +/- theorem intervalIntegral.measure_integral_sub_linear_isLittleO_of_tendsto_ae_of_ge' +/- theorem intervalIntegral.measure_integral_sub_linear_isLittleO_of_tendsto_ae_of_le' Modified Mathlib/MeasureTheory/Integral/IntervalAverage.lean Modified Mathlib/MeasureTheory/Measure/DiracProba.lean +/- theorem MeasureTheory.diracProba_diracProbaInverse +/- theorem MeasureTheory.embedding_diracProba Modified Mathlib/MeasureTheory/Measure/Haar/NormedSpace.lean +/- theorem MeasureTheory.integral_comp Modified Mathlib/MeasureTheory/Measure/LevyProkhorovMetric.lean +/- theorem MeasureTheory.ProbabilityMeasure.continuous_toLevyProkhorov +/- theorem MeasureTheory.SeparableSpace.exists_measurable_partition_diam_le +/- def MeasureTheory.homeomorph_probabilityMeasure_levyProkhorov +/- theorem MeasureTheory.levyProkhorov_eq_convergenceInDistribution Modified Mathlib/MeasureTheory/Measure/WithDensityVectorMeasure.lean +/- theorem MeasureTheory.Integrable.ae_eq_of_withDensityᵥ_eq +/- theorem MeasureTheory.Integrable.withDensityᵥ_eq_iff Modified Mathlib/Probability/Density.lean +/- theorem MeasureTheory.pdf.integral_pdf_smul Modified Mathlib/Probability/Independence/ZeroOne.lean +/- theorem ProbabilityTheory.indep_biSup_compl +/- theorem ProbabilityTheory.indep_biSup_limsup +/- theorem ProbabilityTheory.indep_iSup_directed_limsup +/- theorem ProbabilityTheory.indep_iSup_limsup +/- theorem ProbabilityTheory.indep_limsup_atBot_self +/- theorem ProbabilityTheory.indep_limsup_atTop_self +/- theorem ProbabilityTheory.indep_limsup_self +/- theorem ProbabilityTheory.measure_zero_or_one_of_measurableSet_limsup +/- theorem ProbabilityTheory.measure_zero_or_one_of_measurableSet_limsup_atBot +/- theorem ProbabilityTheory.measure_zero_or_one_of_measurableSet_limsup_atTop Modified Mathlib/Probability/Kernel/CondDistrib.lean Modified Mathlib/Probability/Kernel/Condexp.lean +/- theorem ProbabilityTheory.condexpKernel_ae_eq_condexp' +/- theorem ProbabilityTheory.condexpKernel_ae_eq_condexp +/- theorem ProbabilityTheory.condexpKernel_ae_eq_trim_condexp Modified Mathlib/Probability/Kernel/Disintegration/Basic.lean Modified Mathlib/Probability/Kernel/IntegralCompProd.lean 2024-08-09 00:58:22 0f7bb9c chore: backports for leanprover/lean4#4814 (part 33) (#15605) ESTIMATED CHANGES Modified Mathlib/Algebra/Homology/DerivedCategory/Ext.lean Modified Mathlib/Algebra/Lie/CartanExists.lean +/- theorem LieAlgebra.engel_isBot_of_isMin.lieCharpoly_coeff_natDegree +/- theorem LieAlgebra.engel_isBot_of_isMin.lieCharpoly_natDegree Modified Mathlib/Algebra/Lie/Killing.lean +/- theorem LieAlgebra.IsKilling.ideal_eq_bot_of_isLieAbelian Modified Mathlib/Algebra/Lie/Weights/Linear.lean +/- theorem LieModule.exists_forall_lie_eq_smul Modified Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Unitary.lean Modified Mathlib/Analysis/Calculus/FDeriv/Measurable.lean Modified Mathlib/Analysis/Fourier/AddCircle.lean Modified Mathlib/Analysis/NormedSpace/HahnBanach/Separation.lean +/- theorem RCLike.re_extendTo𝕜'ₗ Modified Mathlib/Combinatorics/SimpleGraph/LapMatrix.lean +/- theorem SimpleGraph.degree_eq_sum_if_adj Modified Mathlib/Geometry/Manifold/ContMDiff/NormedSpace.lean Modified Mathlib/Geometry/Manifold/ContMDiff/Product.lean Modified Mathlib/LinearAlgebra/Matrix/SchurComplement.lean Modified Mathlib/MeasureTheory/Constructions/BorelSpace/Real.lean +/- theorem exists_spanning_measurableSet_le Modified Mathlib/MeasureTheory/Constructions/Polish/Basic.lean Modified Mathlib/MeasureTheory/Function/ContinuousMapDense.lean +/- theorem BoundedContinuousFunction.toLp_denseRange +/- theorem ContinuousMap.toLp_denseRange +/- theorem MeasureTheory.Memℒp.exists_hasCompactSupport_eLpNorm_sub_le Modified Mathlib/MeasureTheory/Group/Integral.lean Modified Mathlib/MeasureTheory/Integral/Bochner.lean Modified Mathlib/MeasureTheory/Integral/BoundedContinuousFunction.lean +/- theorem BoundedContinuousFunction.integrable_of_nnreal +/- theorem BoundedContinuousFunction.integral_eq_integral_nnrealPart_sub +/- theorem BoundedContinuousFunction.measurable_coe_ennreal_comp +/- theorem BoundedContinuousFunction.toReal_lintegral_coe_eq_integral Modified Mathlib/MeasureTheory/Measure/Haar/InnerProductSpace.lean +/- theorem LinearIsometryEquiv.measurePreserving Modified Mathlib/NumberTheory/Cyclotomic/Basic.lean +/- theorem CyclotomicRing.algebraBase_injective Modified Mathlib/RingTheory/DedekindDomain/IntegralClosure.lean +/- theorem IsIntegralClosure.isLocalization +/- theorem IsIntegralClosure.isLocalization_of_isSeparable Modified Mathlib/RingTheory/Discriminant.lean +/- theorem Algebra.discr_eq_discr Modified Mathlib/RingTheory/Kaehler/Basic.lean Modified Mathlib/RingTheory/WittVector/MulCoeff.lean +/- theorem WittVector.mul_polyOfInterest_aux3 Modified Mathlib/Topology/Algebra/Algebra.lean 2024-08-09 00:58:21 0d96394 perf: eagerly elaborate leaf nodes in `linear_combination` (#15599) Since the arithmetic type is known from the equality goal, we can eagerly elaborate all leaf nodes in `expandLinearCombo` while also avoiding re-elaborating them when deciding whether they are proofs or not. This brings the elaboration of a complicated example (see tests) from 3.91s to 0.29s. The main issue is that large expressions can be slow to elaborate. In particular, exponentiation relies on the default instance mechanism, which appears can take quadratic time to resolve. Forcing the resolution of default instances within each coefficient of the linear combination bounds the default instance problems. This is similar to PR #15570, but it sticks with the syntax transformation paradigm. ESTIMATED CHANGES Modified Mathlib/Tactic/LinearCombination.lean + inductive Mathlib.Tactic.LinearCombination.Expanded Modified test/linear_combination.lean 2024-08-09 00:58:20 f248f7d chore: backports for leanprover/lean4#4814 (part 24) (#15520) ESTIMATED CHANGES Modified Mathlib/Algebra/Module/LinearMap/Polynomial.lean +/- theorem LinearMap.isNilRegular_iff_natTrailingDegree_charpoly_eq_nilRank +/- theorem LinearMap.nilRank_le_card Modified Mathlib/AlgebraicGeometry/EllipticCurve/Affine.lean +/- theorem WeierstrassCurve.Affine.addX_eq_addX_negY_sub +/- theorem WeierstrassCurve.Affine.addY_sub_negY_addY +/- theorem WeierstrassCurve.Affine.cyclic_sum_Y_mul_X_sub_X Modified Mathlib/Analysis/Calculus/InverseFunctionTheorem/FDeriv.lean Modified Mathlib/Analysis/Convex/Body.lean Modified Mathlib/Analysis/Convex/GaugeRescale.lean Modified Mathlib/Analysis/InnerProductSpace/Rayleigh.lean +/- theorem LinearMap.IsSymmetric.hasEigenvalue_iInf_of_finiteDimensional +/- theorem LinearMap.IsSymmetric.hasEigenvalue_iSup_of_finiteDimensional Modified Mathlib/Analysis/NormedSpace/HahnBanach/SeparatingDual.lean Modified Mathlib/Geometry/RingedSpace/PresheafedSpace/Gluing.lean Modified Mathlib/GroupTheory/PushoutI.lean +/- theorem Monoid.PushoutI.NormalWord.prod_injective +/- theorem Monoid.PushoutI.Reduced.eq_empty_of_mem_range +/- theorem Monoid.PushoutI.inf_of_range_eq_base_range Modified Mathlib/LinearAlgebra/BilinearForm/Orthogonal.lean +/- theorem LinearMap.BilinForm.inf_orthogonal_self_le_ker_restrict Modified Mathlib/LinearAlgebra/BilinearForm/TensorProduct.lean Modified Mathlib/LinearAlgebra/Charpoly/Basic.lean +/- theorem LinearMap.charpoly_natDegree +/- theorem LinearMap.minpoly_coeff_zero_of_injective Modified Mathlib/LinearAlgebra/CliffordAlgebra/BaseChange.lean Modified Mathlib/LinearAlgebra/Contraction.lean Modified Mathlib/LinearAlgebra/Orientation.lean +/- theorem Orientation.eq_or_eq_neg +/- theorem Orientation.map_eq_det_inv_smul +/- theorem Orientation.map_eq_iff_det_pos +/- theorem Orientation.ne_iff_eq_neg +/- def Orientation.someBasis +/- theorem Orientation.someBasis_orientation Modified Mathlib/LinearAlgebra/TensorProduct/Graded/Internal.lean Modified Mathlib/MeasureTheory/Function/AEEqFun.lean +/- theorem MeasureTheory.AEEqFun.compMeasurePreserving_toGerm +/- theorem MeasureTheory.AEEqFun.compQuasiMeasurePreserving_toGerm +/- theorem MeasureTheory.AEEqFun.comp_compQuasiMeasurePreserving Modified Mathlib/MeasureTheory/Function/SpecialFunctions/Arctan.lean +/- theorem Measurable.arctan Modified Mathlib/MeasureTheory/Integral/Lebesgue.lean +/- theorem MeasureTheory.tendsto_measure_of_ae_tendsto_indicator_of_isFiniteMeasure Modified Mathlib/MeasureTheory/Measure/AEMeasurable.lean +/- theorem aemeasurable_of_map_neZero Modified Mathlib/MeasureTheory/Measure/MeasureSpaceDef.lean +/- theorem MeasurableSpace.ae_induction_on_inter Modified Mathlib/MeasureTheory/Measure/OpenPos.lean Modified Mathlib/MeasureTheory/Order/Group/Lattice.lean +/- theorem measurable_leOnePart +/- theorem measurable_oneLePart Modified Mathlib/NumberTheory/Rayleigh.lean Modified Mathlib/NumberTheory/SiegelsLemma.lean +/- theorem Int.Matrix.exists_ne_zero_int_vec_norm_le' +/- theorem Int.Matrix.exists_ne_zero_int_vec_norm_le Modified Mathlib/RingTheory/AdicCompletion/Functoriality.lean +/- def AdicCompletion.sum +/- theorem AdicCompletion.sum_lof +/- theorem AdicCompletion.sum_of Modified Mathlib/RingTheory/Adjoin/Field.lean +/- theorem IsIntegral.mem_range_algHom_of_minpoly_splits +/- theorem IsIntegral.mem_range_algebraMap_of_minpoly_splits +/- theorem IsIntegral.minpoly_splits_tower_top' +/- theorem IsIntegral.minpoly_splits_tower_top Modified Mathlib/RingTheory/Algebraic.lean +/- theorem Algebra.IsAlgebraic.algHom_bijective +/- theorem Algebra.IsAlgebraic.algHom_bijective₂ +/- theorem Algebra.IsAlgebraic.bijective_of_isScalarTower Modified Mathlib/RingTheory/Artinian.lean Modified Mathlib/RingTheory/EssentialFiniteness.lean Modified Mathlib/RingTheory/IntegralClosure/Algebra/Basic.lean +/- theorem IsIntegral.smul Modified Mathlib/RingTheory/IntegralClosure/IntegrallyClosed.lean +/- theorem IsIntegrallyClosed.algebraMap_eq_of_integral +/- theorem IsIntegrallyClosed.exists_algebraMap_eq_of_isIntegral_pow +/- theorem IsIntegrallyClosed.integralClosure_eq_bot +/- theorem IsIntegrallyClosed.isIntegral_iff +/- theorem IsIntegrallyClosed.pow_dvd_pow_iff +/- theorem IsIntegrallyClosedIn.algebraMap_eq_of_integral +/- theorem IsIntegrallyClosedIn.exists_algebraMap_eq_of_isIntegral_pow +/- theorem IsIntegrallyClosedIn.integralClosure_eq_bot +/- theorem IsIntegrallyClosedIn.isIntegral_iff Modified Mathlib/RingTheory/Kaehler/CotangentComplex.lean Modified Mathlib/RingTheory/Localization/BaseChange.lean Modified Mathlib/RingTheory/PowerBasis.lean Modified Mathlib/RingTheory/Regular/RegularSequence.lean +/- theorem LinearEquiv.isRegular_congr +/- theorem LinearEquiv.isWeaklyRegular_congr Modified Mathlib/RingTheory/SurjectiveOnStalks.lean +/- theorem RingHom.surjectiveOnStalks_of_isLocalization Modified Mathlib/RingTheory/TensorProduct/MvPolynomial.lean Modified Mathlib/RingTheory/Trace/Defs.lean +/- theorem Algebra.traceForm_toMatrix +/- theorem Algebra.trace_algebraMap_of_basis Modified Mathlib/Topology/Compactness/CompactlyGeneratedSpace.lean +/- theorem compactlyGeneratedSpace_of_coinduced +/- theorem continuous_from_compactlyGenerated Modified Mathlib/Topology/ContinuousFunction/Ideals.lean Modified Mathlib/Topology/MetricSpace/GromovHausdorffRealized.lean Modified Mathlib/Topology/VectorBundle/Hom.lean +/- theorem Pretrivialization.continuousOn_continuousLinearMapCoordChange 2024-08-09 00:58:18 5c40331 fix: use `read` in the long line linter (#15180) Follow up from the [discussion on Zulip](https://leanprover.zulipchat.com/#narrow/stream/113488-general/topic/reading.20the.20.22visible.22.20file.2C.20rather.20than.20the.20saved.20one). As a consequence, the lean server should flag long lines among the imports. ESTIMATED CHANGES Modified Mathlib/Tactic/Linter/Lint.lean 2024-08-09 00:58:17 9101a5c refactor: polish `lint_style` and rename to lint-style (#14757) - Use upperCamelCase for all local variables, per the naming convention. - Rename the executable to lint-style, per [zulip](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/Naming.20convention/near/451072858). ESTIMATED CHANGES Modified .github/workflows/nolints.yml Modified Mathlib/Tactic/Linter/TextBased.lean +/- def checkFileLength Modified lakefile.lean Renamed scripts/lint_style.lean to scripts/lint-style.lean + def lintStyle - def lint_style +/- def main Modified scripts/lint-style.py Modified scripts/lint-style.sh Modified scripts/print-style-errors.sh 2024-08-08 23:56:34 e8110d4 chore: rm relaxedAutoImplicit from lakefile (#15604) The `relaxedAutoImplicit` option has no effect if `autoImplicit` is false, so this has no impact on most of mathlib. However, when enabling `autoImplicit` locally, it is annoying (and slightly non-discoverable) that one must also enable `relaxedAutoImplicit` in many cases to actually get auto-implicits. ESTIMATED CHANGES Modified Mathlib/Tactic/Ring/Basic.lean Modified lakefile.lean 2024-08-08 21:19:42 faf7c20 golf: found by the have vs let linter (#15595) The `have` vs `let` linter had flagged these `have` as "should be `let`s" and changing them made the proof simpler. ESTIMATED CHANGES Modified Mathlib/Analysis/Convolution.lean 2024-08-08 21:19:40 f1c8635 doc(Topology/../DomMulAct): improve docs (#15198) ESTIMATED CHANGES Modified Mathlib/Topology/Algebra/Constructions/DomMulAct.lean 2024-08-08 20:12:32 419ac86 perf(Data.Nat.Cast.Basic): de-simp theorem with weak keys (#15626) The keys are `DFunLike.coe _ _ _ _ _ _` which means we are trying to synthesize two `NonAssocSemiring`'s each time any expression has this as a subterm. ESTIMATED CHANGES Modified Archive/Wiedijk100Theorems/AbelRuffini.lean Modified Mathlib/Algebra/Star/CHSH.lean Modified Mathlib/AlgebraicGeometry/EllipticCurve/Jacobian.lean +/- theorem WeierstrassCurve.Jacobian.map_addX +/- theorem WeierstrassCurve.Jacobian.map_dblX Modified Mathlib/Analysis/InnerProductSpace/OfNorm.lean Modified Mathlib/Analysis/InnerProductSpace/Symmetric.lean Modified Mathlib/Data/Nat/Cast/Basic.lean 2024-08-08 20:12:31 961016c perf(NumberTheory.MulChar): scope simp theorem with weak keys (#15623) The keys for this `DFunLike.coe _ _ _ _ _ _` so applly to any expression that has a `DFunLike.coe` subexpression. ESTIMATED CHANGES Modified Mathlib/NumberTheory/MulChar/Basic.lean 2024-08-08 20:12:29 7801956 perf(RepresentationTheory.LowDegree): scope simp theorems with weak keys (#15622) Both of these have `HSMul.hSMul _ _ _ _ _ _` as keys so apply to any occurrence of scalar multiplication. ESTIMATED CHANGES Modified Mathlib/RepresentationTheory/GroupCohomology/LowDegree.lean +/- theorem groupCohomology.map_inv_of_isMulOneCocycle +/- theorem groupCohomology.map_inv_of_isOneCocycle 2024-08-08 20:12:28 3c03695 perf(CategoryTheory/Sites/Sheaf): speed up a slow proof (#15619) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Sites/Sheaf.lean 2024-08-08 20:12:27 a951fed fix: make `to_additive` deal with `abbrev` correctly (#15474) ESTIMATED CHANGES Modified Mathlib/Tactic/ToAdditive/Frontend.lean + def ToAdditive.setInlineAttribute Modified test/toAdditive.lean 2024-08-08 20:12:25 849267f feat(ContinuousCompMeasurePreserving): generalize to `NullMeasurableSet` (#15112) ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Function/LpSpace/ContinuousCompMeasurePreserving.lean Modified Mathlib/MeasureTheory/Measure/Regular.lean 2024-08-08 19:22:43 ec7748d perf(Module.LinearMap.Defs): de-simp `LinearMapClass.map_smul` (#15613) The keys for this are `@DFunLike.coe _ _ _ _ _ (@HSMul.hSMul _ _ _ _ _ _)` so it applies to *anything* of the form `↑f (a * b)` where `f` has a `DFunLike` instance. It builds and lints fine without this simp theorem. ESTIMATED CHANGES Modified Mathlib/Algebra/Module/LinearMap/Defs.lean 2024-08-08 18:23:35 61e3806 feat(Topology/../DomMulAct): add missing instances (#15199) ESTIMATED CHANGES Modified Mathlib/Topology/Algebra/Constructions/DomMulAct.lean Modified Mathlib/Topology/Compactness/LocallyCompact.lean 2024-08-08 18:23:33 4866b67 feat(Algebra/GeomSum): add two lemmas (#15050) Add missing lemma `x ^ m - 1 ∣ x ^ (m * n) - 1` for `x` both in `Nat` and `Ring`. ESTIMATED CHANGES Modified Mathlib/Algebra/GeomSum.lean + theorem nat_pow_one_sub_dvd_pow_mul_sub_one + theorem pow_one_sub_dvd_pow_mul_sub_one 2024-08-08 17:32:52 71182ad chore: backports for leanprover/lean4#4814 (part 37) (#15608) ESTIMATED CHANGES Modified Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Instances.lean Modified Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Restrict.lean Modified Mathlib/Analysis/Calculus/LineDeriv/IntegrationByParts.lean Modified Mathlib/Analysis/Complex/LocallyUniformLimit.lean +/- theorem Complex.cderiv_eq_deriv Modified Mathlib/Analysis/SpecialFunctions/ContinuousFunctionalCalculus/ExpLog.lean Modified Mathlib/MeasureTheory/Integral/PeakFunction.lean Modified Mathlib/NumberTheory/LSeries/AbstractFuncEq.lean +/- theorem WeakFEPair.f_modif_aux2 +/- theorem WeakFEPair.hasMellin 2024-08-08 17:32:51 ac92731 feat(MeasureTheory/../DomMulAct): action of `DomMulAct` on `Lp` is continuous (#15206) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/MeasureTheory/Constructions/BorelSpace/Basic.lean Added Mathlib/MeasureTheory/Function/LpSpace/DomAct/Continuous.lean 2024-08-08 17:32:49 066f498 feat(Order/Zorn): change zorn to use Maximal API (#14781) We change statements of Zorn's lemma to use the new `Maximal` API from #14721. The new definitions eliminate the need for separate `PartialOrder` and `Preorder` versions of Zorn's lemma, and slightly simplify most of its applications. The new statements of Zorn aren't defeq to the old ones, so a good number of files are touched, but very few theorem statements outside `Order.Zorn` itself are actually changed - most changes are small modifications of existing proofs. - [x] depends on: #14721 ESTIMATED CHANGES Modified Mathlib/Algebra/Module/Injective.lean Modified Mathlib/Analysis/Convex/Cone/Extension.lean Modified Mathlib/Analysis/Convex/KreinMilman.lean Modified Mathlib/Analysis/Convex/StoneSeparation.lean Modified Mathlib/Analysis/InnerProductSpace/Basic.lean Modified Mathlib/Data/Matroid/IndepAxioms.lean Modified Mathlib/FieldTheory/Extension.lean Modified Mathlib/GroupTheory/Sylow.lean Modified Mathlib/LinearAlgebra/LinearIndependent.lean Modified Mathlib/MeasureTheory/Covering/Vitali.lean Modified Mathlib/MeasureTheory/Measure/Haar/Unique.lean Modified Mathlib/Order/CompactlyGenerated/Basic.lean Modified Mathlib/Order/Extension/Linear.lean Modified Mathlib/Order/PrimeSeparator.lean Modified Mathlib/Order/Zorn.lean + theorem zorn_le + theorem zorn_le_nonempty + theorem zorn_le_nonempty_Ici₀ + theorem zorn_le_nonempty₀ + theorem zorn_le₀ - theorem zorn_nonempty_Ici₀ - theorem zorn_nonempty_partialOrder - theorem zorn_nonempty_partialOrder₀ - theorem zorn_nonempty_preorder - theorem zorn_nonempty_preorder₀ - theorem zorn_partialOrder - theorem zorn_partialOrder₀ - theorem zorn_preorder - theorem zorn_preorder₀ Modified Mathlib/Order/ZornAtoms.lean Modified Mathlib/RingTheory/AlgebraicIndependent.lean Modified Mathlib/RingTheory/Ideal/MinimalPrime.lean Modified Mathlib/RingTheory/Ideal/Operations.lean Modified Mathlib/RingTheory/PrincipalIdealDomain.lean Modified Mathlib/SetTheory/Cardinal/SchroederBernstein.lean Modified Mathlib/Topology/Algebra/Semigroup.lean Modified Mathlib/Topology/Compactness/Compact.lean Modified Mathlib/Topology/ExtremallyDisconnected.lean Modified Mathlib/Topology/Irreducible.lean Modified Mathlib/Topology/ShrinkingLemma.lean 2024-08-08 16:24:13 340c789 feat(Tactic/NthRewrite): Allow multiple occurrences (#15532) Allow `nth_rewrite` and `nth_rw` tactic to use multiple occurrences, such as `nth_rw 2 3 [p]`. ESTIMATED CHANGES Modified Mathlib/Tactic/NthRewrite.lean Modified test/NthRewrite.lean 2024-08-08 16:24:12 4fe4d4d feat: `(a₁ == a₂) = (b₁ == b₂) ↔ (a₁ = a₂ ↔ b₁ = b₂)` (#15229) This is useful to simplify `beq` away ESTIMATED CHANGES Modified Mathlib/Logic/Basic.lean + theorem beq_eq_beq 2024-08-08 16:24:10 182be4f feat: star algebra homomorphisms between non-unital C⋆-algebras are contractive (#14544) This generalizes the existing results for unital algebras to non-unital algebras by passing to the unitization within the proof. We have to add a `StarModule` hypothesis to recover the unital case, but this is minor. ESTIMATED CHANGES Modified Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Instances.lean Modified Mathlib/Analysis/CStarAlgebra/Spectrum.lean + theorem NonUnitalStarAlgHom.instContinuousLinearMapClassComplex + theorem NonUnitalStarAlgHom.nnnorm_apply_le + theorem NonUnitalStarAlgHom.norm_apply_le - theorem StarAlgHom.nnnorm_apply_le - theorem StarAlgHom.norm_apply_le 2024-08-08 15:42:10 2eea559 feat(RelSeries): reverse_reverse (#15601) from the Carleson project. ESTIMATED CHANGES Modified Mathlib/Order/RelSeries.lean + theorem RelSeries.reverse_reverse 2024-08-08 15:42:09 43a2b84 chore: add ascription for delicate-to-elaborate expression (#15597) The expression `2 • (Finsupp.single 0 1 : α →₀ F) = Finsupp.single 0 1` only accidentally elaborates. The binop elaborator fails to compute a "max type" for this, since the right-hand `Finsupp.single 0 1` does not have a fully specified type yet, so it falls back to a strategy where it propagates the LHS type to the RHS. However, the rest of the process then depends on the exact order that default instances are applied. If the default instances for the RHS apply first, it specializes to `ℕ →₀ ℕ` and elaboration fails, but if the LHS ones apply first, then the SMul manages to specialize to `ℕ → (α →₀ F) → (α →₀ F)`, and it succeeds. This came up while experimenting with performance improvements to the binop elaborator. ESTIMATED CHANGES Modified Counterexamples/ZeroDivisorsInAddMonoidAlgebras.lean 2024-08-08 15:42:07 54ff6aa chore: avoid import Cardinal unnecessarily (#15580) ESTIMATED CHANGES Modified Counterexamples/MapFloor.lean Modified Mathlib.lean Modified Mathlib/Algebra/Algebra/Operations.lean Modified Mathlib/Algebra/Algebra/Subalgebra/Basic.lean Modified Mathlib/Algebra/Algebra/Subalgebra/Operations.lean Modified Mathlib/Algebra/Group/UniqueProds.lean Modified Mathlib/Algebra/MonoidAlgebra/Support.lean Modified Mathlib/Algebra/Order/Antidiag/Pi.lean Modified Mathlib/Algebra/Pointwise/Stabilizer.lean Modified Mathlib/Algebra/Polynomial/Degree/Definitions.lean Modified Mathlib/Algebra/Polynomial/Degree/TrailingDegree.lean Modified Mathlib/Algebra/Vertex/HVertexOperator.lean Modified Mathlib/Combinatorics/Additive/ETransform.lean Modified Mathlib/Combinatorics/Additive/Energy.lean Modified Mathlib/Combinatorics/Additive/PluenneckeRuzsa.lean Modified Mathlib/Combinatorics/Additive/RuzsaCovering.lean Modified Mathlib/Data/Complex/Module.lean Modified Mathlib/Data/DFinsupp/Interval.lean Modified Mathlib/Data/Finset/Finsupp.lean Modified Mathlib/Data/Finset/NatDivisors.lean Renamed Mathlib/Data/Finset/Pointwise.lean to Mathlib/Data/Finset/Pointwise/Basic.lean - theorem Set.card_div_le - theorem Set.card_inv - theorem Set.card_mul_le - theorem Set.card_smul_set Added Mathlib/Data/Finset/Pointwise/Card.lean + theorem Set.card_div_le + theorem Set.card_inv + theorem Set.card_mul_le + theorem Set.card_smul_set Modified Mathlib/Data/Finset/Pointwise/Interval.lean Modified Mathlib/Data/Multiset/Interval.lean Modified Mathlib/RingTheory/HahnSeries/Multiplication.lean Modified scripts/style-exceptions.txt 2024-08-08 15:03:31 76dca29 perf(LinearAlgebra.Quotient): de-simp theorems with weak keys (#15591) For an example, the simp keys for `mk''_eq_mk` are `Quotient.mk'' _ _ _` meaning it will be tried on *anything* whose left-hand side reduces to `Quotient.mk''` regardless of the context. These are used a total of 6 times. ESTIMATED CHANGES Modified Mathlib/Algebra/Lie/Weights/Basic.lean Modified Mathlib/LinearAlgebra/Isomorphisms.lean Modified Mathlib/LinearAlgebra/Quotient.lean Modified Mathlib/LinearAlgebra/Semisimple.lean 2024-08-08 13:48:14 a180e02 chore: removing unused Mathport files (#15189) This does not yet remove `Mathport.Syntax`. We may want to preserve the information about unported tactics implicitly stored there (although this information is quite messy, in large part out of date, and in any case preserved in the git history if anyone wants to do the archaeology). ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Init/Logic.lean Deleted Mathlib/Mathport/Attributes.lean Modified Mathlib/Mathport/README.md Deleted Mathlib/Mathport/Rename.lean - structure Mathlib.Prelude.Rename.ImportEntry - structure Mathlib.Prelude.Rename.ImportState - structure Mathlib.Prelude.Rename.NameEntry - def Mathlib.Prelude.Rename.RenameMap.find? - def Mathlib.Prelude.Rename.RenameMap.insert - structure Mathlib.Prelude.Rename.RenameMap - def Mathlib.Prelude.Rename.addNameAlignment - def Mathlib.Prelude.Rename.elabAlign - def Mathlib.Prelude.Rename.elabAlignImport - def Mathlib.Prelude.Rename.elabLookup3 - def Mathlib.Prelude.Rename.elabNoAlign - def Mathlib.Prelude.Rename.ensureUnused - def Mathlib.Prelude.Rename.removeX - def Mathlib.Prelude.Rename.suspiciousLean3Name 2024-08-08 10:31:48 2edef7d chore: backports for leanprover/lean4#4814 (part 36) (#15612) ESTIMATED CHANGES Modified Archive/Imo/Imo1975Q1.lean +/- theorem imo1975_q1 Modified Archive/Imo/Imo2019Q2.lean +/- theorem Imo2019Q2.Imo2019q2Cfg.oangle_CQ₁Q_eq_oangle_CBA +/- theorem Imo2019Q2.Imo2019q2Cfg.oangle_CQ₁Q_sign_eq_oangle_CBA_sign +/- def Imo2019Q2.someOrientation +/- theorem imo2019_q2 Modified Archive/Imo/Imo2024Q2.lean Modified Archive/Wiedijk100Theorems/BuffonsNeedle.lean Modified Archive/Wiedijk100Theorems/CubingACube.lean Modified Archive/Wiedijk100Theorems/SolutionOfCubic.lean Modified Archive/ZagierTwoSquares.lean Modified Counterexamples/QuadraticForm.lean +/- theorem Counterexample.B_ne_zero +/- theorem Counterexample.isAlt_B Modified Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Order.lean Modified Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Unique.lean Modified Mathlib/Analysis/CStarAlgebra/Module.lean Modified Mathlib/Analysis/Fourier/FourierTransformDeriv.lean +/- theorem Real.pow_mul_norm_iteratedFDeriv_fourierIntegral_le Modified Mathlib/Analysis/FunctionalSpaces/SobolevInequality.lean +/- theorem MeasureTheory.GridLines.T_insert_le_T_lmarginal_singleton +/- theorem MeasureTheory.GridLines.T_lmarginal_antitone +/- theorem MeasureTheory.GridLines.T_univ +/- theorem MeasureTheory.lintegral_mul_prod_lintegral_pow_le +/- theorem MeasureTheory.lintegral_pow_le_pow_lintegral_fderiv_aux +/- theorem MeasureTheory.lintegral_prod_lintegral_pow_le Modified Mathlib/Geometry/Manifold/BumpFunction.lean Modified Mathlib/Geometry/Manifold/VectorBundle/Basic.lean Modified Mathlib/MeasureTheory/Function/StronglyMeasurable/Basic.lean Modified Mathlib/MeasureTheory/Integral/SetIntegral.lean Modified Mathlib/NumberTheory/Cyclotomic/Rat.lean Modified Mathlib/NumberTheory/Cyclotomic/Three.lean +/- theorem IsCyclotomicExtension.Rat.Three.Units.mem +/- theorem IsCyclotomicExtension.Rat.Three.eq_one_or_neg_one_of_unit_of_congruent +/- theorem IsCyclotomicExtension.Rat.Three.lambda_dvd_or_dvd_sub_one_or_dvd_add_one Modified Mathlib/NumberTheory/FLT/Three.lean +/- theorem FermatLastTheoremForThree_of_FermatLastTheoremThreeGen Modified Mathlib/NumberTheory/NumberField/Embeddings.lean +/- theorem NumberField.InfinitePlace.ComplexEmbedding.exists_comp_symm_eq_of_comp_eq +/- theorem NumberField.InfinitePlace.exists_smul_eq_of_comap_eq Modified Mathlib/NumberTheory/NumberField/EquivReindex.lean +/- theorem NumberField.det_of_basisMatrix_non_zero +/- theorem NumberField.inverse_basisMatrix_mulVec_eq_repr Modified Mathlib/NumberTheory/NumberField/House.lean Modified Mathlib/NumberTheory/NumberField/Units/DirichletTheorem.lean 2024-08-08 06:02:38 15720c7 chore: backports for leanprover/lean4#4814 (part 20) (#15440) see https://github.com/leanprover-community/mathlib4/pull/15245 ESTIMATED CHANGES Modified Mathlib/Algebra/Homology/HomotopyCategory/Pretriangulated.lean Modified Mathlib/Algebra/Homology/HomotopyCategory/Triangulated.lean Modified Mathlib/Algebra/Module/Torsion.lean +/- theorem Submodule.iSup_torsionBySet_ideal_eq_torsionBySet_iInf +/- theorem Submodule.iSup_torsionBy_eq_torsionBy_prod +/- theorem Submodule.supIndep_torsionBy +/- theorem Submodule.supIndep_torsionBySet_ideal Modified Mathlib/Analysis/Normed/Group/CocompactMap.lean +/- theorem CocompactMapClass.norm_le +/- theorem ContinuousMapClass.toCocompactMapClass_of_norm +/- theorem Filter.tendsto_cocompact_cocompact_of_norm Modified Mathlib/Analysis/Normed/Operator/LinearIsometry.lean Modified Mathlib/Analysis/Oscillation.lean +/- theorem IsCompact.uniform_oscillation +/- theorem IsCompact.uniform_oscillationWithin Modified Mathlib/CategoryTheory/Sites/Discrete.lean Modified Mathlib/CategoryTheory/Sites/InducedTopology.lean Modified Mathlib/GroupTheory/Frattini.lean +/- theorem frattini_le_comap_frattini_of_surjective Modified Mathlib/LinearAlgebra/Dimension/Constructions.lean +/- theorem Submodule.finrank_map_le Modified Mathlib/LinearAlgebra/Dimension/Finite.lean +/- theorem FiniteDimensional.finrank_zero_of_subsingleton +/- theorem LinearIndependent.finrank_eq_zero_of_infinite +/- theorem natCast_le_rank_iff +/- theorem natCast_le_rank_iff_finset Modified Mathlib/RingTheory/GradedAlgebra/HomogeneousLocalization.lean +/- theorem HomogeneousLocalization.val_neg Modified Mathlib/RingTheory/IntegralClosure/IsIntegral/Basic.lean +/- theorem IsIntegral.fg_adjoin_singleton +/- theorem IsIntegral.of_pow +/- theorem isIntegral_algHom_iff +/- theorem isIntegral_one +/- theorem isIntegral_zero Modified Mathlib/RingTheory/Valuation/ValuationRing.lean +/- theorem ValuationRing.of_integers Modified Mathlib/Topology/Algebra/Group/Basic.lean +/- theorem subset_mul_closure_one Modified Mathlib/Topology/Instances/Discrete.lean +/- theorem LinearOrder.bot_topologicalSpace_eq_generateFrom +/- theorem bot_topologicalSpace_eq_generateFrom_of_pred_succOrder Modified Mathlib/Topology/Sheaves/SheafCondition/Sites.lean +/- theorem TopCat.Sheaf.extend_hom_app +/- theorem TopCat.Sheaf.hom_ext +/- def TopCat.Sheaf.restrictHomEquivHom Modified Mathlib/Topology/UniformSpace/UniformConvergenceTopology.lean 2024-08-08 02:10:37 f786e14 chore: backports for leanprover/lean4#4814 (part 32) (#15577) ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/NonUnitalSubalgebra.lean +/- theorem NonUnitalAlgHom.map_adjoin +/- theorem NonUnitalAlgHom.map_adjoin_singleton +/- theorem NonUnitalAlgebra.comap_top +/- theorem NonUnitalAlgebra.map_bot +/- theorem NonUnitalAlgebra.map_sup +/- theorem NonUnitalAlgebra.range_top_iff_surjective Modified Mathlib/Algebra/DirectLimit.lean +/- def AddCommGroup.DirectLimit +/- def Module.DirectLimit Modified Mathlib/Algebra/DirectSum/Module.lean +/- theorem DirectSum.component.lof_self +/- theorem DirectSum.component.of +/- theorem DirectSum.lof_apply Modified Mathlib/Algebra/Lie/Abelian.lean Modified Mathlib/Algebra/Lie/Rank.lean +/- theorem LieAlgebra.isRegular_iff_coeff_polyCharpoly_rank_ne_zero +/- theorem LieAlgebra.isRegular_iff_natTrailingDegree_charpoly_eq_rank +/- theorem LieAlgebra.polyCharpoly_coeff_rank_ne_zero +/- theorem LieAlgebra.rank_eq_natTrailingDegree +/- theorem LieAlgebra.rank_le_card +/- theorem LieAlgebra.rank_le_finrank +/- theorem LieAlgebra.rank_le_natTrailingDegree_charpoly_ad +/- theorem LieModule.isRegular_iff_coeff_polyCharpoly_rank_ne_zero +/- theorem LieModule.isRegular_iff_natTrailingDegree_charpoly_eq_rank +/- theorem LieModule.polyCharpoly_coeff_rank_ne_zero +/- theorem LieModule.rank_eq_natTrailingDegree +/- theorem LieModule.rank_le_card +/- theorem LieModule.rank_le_finrank +/- theorem LieModule.rank_le_natTrailingDegree_charpoly_ad Modified Mathlib/Algebra/Module/PID.lean Modified Mathlib/Analysis/BoxIntegral/Partition/Filter.lean +/- theorem BoxIntegral.IntegrationParams.MemBaseSet.mono' +/- theorem BoxIntegral.IntegrationParams.MemBaseSet.mono Modified Mathlib/CategoryTheory/Triangulated/HomologicalFunctor.lean +/- theorem CategoryTheory.Functor.homologySequenceδ_naturality Modified Mathlib/Geometry/Manifold/ContMDiff/Defs.lean +/- theorem contMDiffAt_iff_contMDiffAt_nhds +/- theorem contMDiffAt_iff_contMDiffOn_nhds +/- theorem contMDiffAt_iff_source_of_mem_source +/- theorem contMDiffAt_iff_target_of_mem_source +/- theorem contMDiffOn_iff_source_of_mem_maximalAtlas +/- theorem contMDiffWithinAt_iff_contMDiffOn_nhds +/- theorem contMDiffWithinAt_iff_source_of_mem_maximalAtlas +/- theorem contMDiffWithinAt_iff_source_of_mem_source +/- theorem contMDiffWithinAt_iff_target_of_mem_source Modified Mathlib/LinearAlgebra/FreeModule/PID.lean Modified Mathlib/LinearAlgebra/TensorProduct/Graded/External.lean +/- theorem TensorProduct.gradedComm_algebraMap +/- theorem TensorProduct.gradedComm_algebraMap_tmul +/- theorem TensorProduct.gradedComm_one +/- theorem TensorProduct.gradedComm_one_tmul +/- theorem TensorProduct.gradedComm_tmul_algebraMap +/- theorem TensorProduct.gradedComm_tmul_one Modified Mathlib/MeasureTheory/Measure/Regular.lean Modified Mathlib/RingTheory/Generators.lean +/- theorem Algebra.Generators.Hom.comp_id +/- theorem Algebra.Generators.Hom.id_comp +/- theorem Algebra.Generators.Hom.toAlgHom_comp_apply Modified Mathlib/RingTheory/MvPolynomial/NewtonIdentities.lean 2024-08-08 01:59:27 f29176d chore: backports for leanprover/lean4#4814 (part 31) (#15575) ESTIMATED CHANGES Modified Mathlib/Analysis/NormedSpace/HahnBanach/Separation.lean Modified Mathlib/CategoryTheory/Triangulated/Yoneda.lean Modified Mathlib/MeasureTheory/Integral/Marginal.lean +/- theorem Measurable.lmarginal 2024-08-07 19:09:01 e860e3b chore: reduce imports in Order.Ring.Hom (#15581) ESTIMATED CHANGES Modified Archive/ZagierTwoSquares.lean Modified Counterexamples/MapFloor.lean Modified Mathlib.lean Modified Mathlib/Algebra/AddConstMap/Basic.lean Modified Mathlib/Algebra/ContinuedFractions/Computation/ApproximationCorollaries.lean Renamed Mathlib/Algebra/Order/Archimedean.lean to Mathlib/Algebra/Order/Archimedean/Basic.lean Added Mathlib/Algebra/Order/Archimedean/Hom.lean Modified Mathlib/Algebra/Order/CauSeq/BigOperators.lean Modified Mathlib/Algebra/Order/Chebyshev.lean Modified Mathlib/Algebra/Order/CompleteField.lean Modified Mathlib/Algebra/Order/Hom/Ring.lean Modified Mathlib/Algebra/Order/ToIntervalMod.lean Modified Mathlib/Algebra/Periodic.lean Modified Mathlib/Algebra/Polynomial/HasseDeriv.lean Modified Mathlib/Algebra/Ring/Subring/Order.lean Modified Mathlib/Combinatorics/Additive/PluenneckeRuzsa.lean Modified Mathlib/Data/Real/Archimedean.lean Modified Mathlib/Data/ZMod/Basic.lean Modified Mathlib/GroupTheory/Archimedean.lean Modified Mathlib/GroupTheory/Coxeter/Basic.lean Modified Mathlib/GroupTheory/Coxeter/Inversion.lean Modified Mathlib/GroupTheory/Coxeter/Length.lean Modified Mathlib/GroupTheory/Exponent.lean Modified Mathlib/ModelTheory/Fraisse.lean Modified Mathlib/NumberTheory/LucasLehmer.lean Modified Mathlib/Order/Filter/Archimedean.lean Modified Mathlib/RingTheory/Binomial.lean Modified Mathlib/RingTheory/Noetherian.lean Modified Mathlib/RingTheory/Valuation/Basic.lean Modified Mathlib/Topology/Algebra/Group/Basic.lean Modified Mathlib/Topology/Algebra/InfiniteSum/Order.lean Modified scripts/noshake.json 2024-08-07 18:10:50 bdfc2b3 chore: update Mathlib dependencies 2024-08-07 (#15594) This PR updates the Mathlib dependencies. ESTIMATED CHANGES Modified lake-manifest.json 2024-08-07 16:33:44 339689f chore: follow-up to #15498 (#15499) Make the same replacements elsewhere: blocks_fun -> blocksFun, size_up_to -> sizeUpTo ESTIMATED CHANGES Modified Mathlib/Analysis/Analytic/Inverse.lean Modified Mathlib/Combinatorics/Enumerative/Composition.lean 2024-08-07 16:33:42 a88cdb6 feat(RelSeries): head_singleton, last_singleton (#15384) from the Carleson project. ESTIMATED CHANGES Modified Mathlib/Order/RelSeries.lean + theorem RelSeries.head_singleton + theorem RelSeries.last_singleton 2024-08-07 16:22:37 8ad482a chore: update Mathlib dependencies 2024-08-07 (#15590) This PR updates the Mathlib dependencies. ESTIMATED CHANGES Modified lake-manifest.json 2024-08-07 16:11:46 2da5149 feat(Combinatorics/SimpleGraph): `dist_bot` and `dist_top` (#15465) ESTIMATED CHANGES Modified Mathlib/Combinatorics/SimpleGraph/Metric.lean + theorem SimpleGraph.dist_bot + theorem SimpleGraph.dist_top + theorem SimpleGraph.dist_top_of_ne + theorem SimpleGraph.edist_bot + theorem SimpleGraph.edist_bot_of_ne + theorem SimpleGraph.edist_top + theorem SimpleGraph.edist_top_of_ne Modified Mathlib/Combinatorics/SimpleGraph/Path.lean + theorem SimpleGraph.reachable_bot 2024-08-07 15:24:36 f0edccd chore: remove some useless `simp`s (#15588) They are just instantiating some metavariables that are incidentally there. ESTIMATED CHANGES Modified Mathlib/AlgebraicTopology/DoldKan/Degeneracies.lean Modified Mathlib/MeasureTheory/Order/UpperLower.lean Modified Mathlib/NumberTheory/WellApproximable.lean 2024-08-07 15:24:35 5c2ed94 doc(LinearAlgebra/FreeProduct): remove untrue TODOs (#15587) Neither TODO turned out to be mathematically true: `FreeProduct` imposes more structure than `FreeAlgebra`, specifically combining adjacent elements from the same algebra, and my categorical argument for the isomorphism with `PiTensorProduct` in the commutative case was faulty. ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/FreeProduct/Basic.lean 2024-08-07 14:53:42 6c05c5d feat(Calculus/MeanValue): A function is not differentiable if its derivative tends to infinity (#15200) This PR shows that a function `f : ℝ → ℝ` is not differentiable at a point if its derivative tends to infinity at that point. ESTIMATED CHANGES Modified Mathlib/Analysis/Calculus/MeanValue.lean + theorem exists_deriv_eq_slope' + theorem not_differentiableWithinAt_of_deriv_tendsto_atBot_Iio + theorem not_differentiableWithinAt_of_deriv_tendsto_atBot_Ioi + theorem not_differentiableWithinAt_of_deriv_tendsto_atTop_Iio + theorem not_differentiableWithinAt_of_deriv_tendsto_atTop_Ioi Modified Mathlib/Topology/Order/LeftRightNhds.lean + theorem nhdsWithin_Iio_basis 2024-08-07 14:38:51 e2938e0 chore: backports for leanprover/lean4#4814 (part 29) (#15572) ESTIMATED CHANGES Modified Mathlib/Geometry/Manifold/ContMDiff/Basic.lean +/- theorem contMDiffOn_openEmbedding_symm +/- theorem contMDiff_openEmbedding Modified Mathlib/NumberTheory/NumberField/Basic.lean Modified Mathlib/RingTheory/DedekindDomain/Different.lean +/- theorem FractionalIdeal.coe_dual +/- theorem FractionalIdeal.dual_le_dual +/- theorem FractionalIdeal.dual_mul_self +/- theorem FractionalIdeal.dual_ne_zero +/- theorem FractionalIdeal.le_dual_iff +/- theorem FractionalIdeal.le_dual_inv_aux +/- theorem FractionalIdeal.mem_dual +/- theorem FractionalIdeal.self_mul_dual +/- theorem map_equiv_traceDual Modified Mathlib/RingTheory/Ideal/Norm.lean +/- theorem Ideal.exists_mul_add_mem_pow_succ +/- theorem Ideal.mul_add_mem_pow_succ_unique +/- theorem cardQuot_pow_of_prime Modified Mathlib/RingTheory/IntegralClosure/IntegralRestrict.lean +/- theorem Algebra.map_intNormAux 2024-08-07 14:17:25 78791a5 feat(RelSeries): RelSeries.take and RelSeries.drop (#15557) from the Carleson project. ESTIMATED CHANGES Modified Mathlib/Order/RelSeries.lean + def RelSeries.drop + theorem RelSeries.head_drop + theorem RelSeries.head_take + theorem RelSeries.last_drop + theorem RelSeries.last_take + def RelSeries.take 2024-08-07 13:48:22 b9905c8 chore: backports for leanprover/lean4#4814 (part 26) (#15538) ESTIMATED CHANGES Modified Mathlib/Algebra/Jordan/Basic.lean +/- theorem two_nsmul_lie_lmul_lmul_add_eq_lie_lmul_lmul_add Modified Mathlib/Algebra/Lie/CartanMatrix.lean +/- def CartanMatrix.Relations.EF +/- def CartanMatrix.Relations.toIdeal +/- def CartanMatrix.Relations.toSet Modified Mathlib/Algebra/Lie/IdealOperations.lean +/- theorem LieSubmodule.comap_bracket_eq +/- theorem LieSubmodule.lieIdeal_oper_eq_linear_span' +/- theorem LieSubmodule.lieIdeal_oper_eq_linear_span +/- theorem LieSubmodule.map_bracket_eq Modified Mathlib/Algebra/Lie/Nilpotent.lean +/- theorem LieIdeal.coe_lcs_eq +/- theorem LieModule.lowerCentralSeriesLast_le_max_triv Modified Mathlib/Algebra/Lie/Quotient.lean Modified Mathlib/Analysis/InnerProductSpace/Spectrum.lean +/- theorem LinearMap.IsSymmetric.conj_eigenvalue_eq_self +/- theorem LinearMap.IsSymmetric.direct_sum_isInternal +/- theorem LinearMap.IsSymmetric.invariant_orthogonalComplement_eigenspace +/- theorem LinearMap.IsSymmetric.orthogonalComplement_iSup_eigenspaces +/- theorem LinearMap.IsSymmetric.orthogonalComplement_iSup_eigenspaces_eq_bot' +/- theorem LinearMap.IsSymmetric.orthogonalComplement_iSup_eigenspaces_eq_bot +/- theorem LinearMap.IsSymmetric.orthogonalComplement_iSup_eigenspaces_invariant +/- theorem LinearMap.IsSymmetric.orthogonalFamily_eigenspaces' +/- theorem LinearMap.IsSymmetric.orthogonalFamily_eigenspaces Modified Mathlib/Analysis/Normed/Lp/PiLp.lean +/- theorem PiLp.nnnorm_equiv_symm_single Modified Mathlib/FieldTheory/Laurent.lean Modified Mathlib/FieldTheory/Normal.lean +/- theorem AlgHom.fieldRange_of_normal Modified Mathlib/LinearAlgebra/JordanChevalley.lean Modified Mathlib/NumberTheory/RamificationInertia.lean +/- theorem Ideal.Quotient.algebraMap_quotient_of_ramificationIdx_neZero +/- def Ideal.Quotient.algebraQuotientOfRamificationIdxNeZero Modified Mathlib/RepresentationTheory/Character.lean 2024-08-07 13:48:21 dcd65e9 chore (Topology.Algebra.Algebra): name `DiscreteTopology.instContinuousSMul` and de-instance (#15339) This instance is reasonable mathematically but creates complexity in the typeclass search. It is currently not used so we de-instance it. ESTIMATED CHANGES Modified Mathlib/Topology/Algebra/Algebra.lean + theorem DiscreteTopology.instContinuousSMul 2024-08-07 12:49:12 765291c feat: have/let linter (#12190) The main PR for the `have` vs `let` linter. The `have` vs `let` linter emits a warning on `have`s introducing a hypothesis whose Type is not `Prop`. There are three settings: * `0` -- inactive; * `1` -- active only on noisy declarations; * `2` or more -- always active. The default value is `1`. The linter lints mathlib, but, by default, it is silent on complete proofs. #12157 is an experiment showing what changes the linter would suggest on mathlib. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Tactic.lean Modified Mathlib/Tactic/Linter.lean Added Mathlib/Tactic/Linter/HaveLetLinter.lean + def Mathlib.Linter.haveLet.InfoTree.foldInfoM + def Mathlib.Linter.haveLet.areProp_toFormat + def Mathlib.Linter.haveLet.haveLetLinter + def Mathlib.Linter.haveLet.isHave? + def Mathlib.Linter.haveLet.nonPropHaves Added test/HaveLetLinter.lean + theorem ghi 2024-08-07 11:50:09 aeb3c05 feat(Subgroup/IsCommutative): add instance for MonoidHom.range (#15370) This PR adds: - `instance Subgroup.commGroup_isCommutative [CommGroup G] (H : Subgroup G) : H.IsCommutative` for subgroups of an abelian group; and - `instance MonoidHom.range_isCommutative [CommGroup G] (f : G →* N) : f.range.IsCommutative`, for the range of a `MonoidHom` whose domain is abelian. It also adds a lemma `Subgroup.mul_comm_of_mem_isCommutative` to allow applying the commutativity without constructing terms of a `Subgroup`. (This lemma is included in this same PR as I mentioned it in the same Zulip thread, but is independent of the two instances above.) Please refer to the [Zulip thread](https://leanprover.zulipchat.com/#narrow/stream/217875-Is-there-code-for-X.3F/topic/CommGroup.20MonoidHom.2Erange.20if.20the.20domain.20is.20a.20CommGroup) for discussions. ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Subgroup/Basic.lean + theorem Subgroup.mul_comm_of_mem_isCommutative 2024-08-07 10:57:09 30dd0d4 chore: backports for leanprover/lean4#4814 (part 25) (#15537) ESTIMATED CHANGES Modified Mathlib/Algebra/Lie/Submodule.lean Modified Mathlib/AlgebraicGeometry/EllipticCurve/Jacobian.lean Modified Mathlib/Analysis/InnerProductSpace/Orientation.lean Modified Mathlib/Analysis/Normed/Algebra/TrivSqZeroExt.lean Modified Mathlib/Analysis/Normed/Algebra/UnitizationL1.lean Modified Mathlib/Analysis/Normed/Lp/PiLp.lean +/- def LinearIsometryEquiv.piLpCurry Modified Mathlib/Analysis/NormedSpace/DualNumber.lean Modified Mathlib/Combinatorics/Additive/Corner/Roth.lean Modified Mathlib/FieldTheory/Perfect.lean Modified Mathlib/Geometry/Manifold/InteriorBoundary.lean Modified Mathlib/LinearAlgebra/QuadraticForm/TensorProduct.lean Modified Mathlib/LinearAlgebra/Trace.lean Modified Mathlib/MeasureTheory/Constructions/Pi.lean +/- theorem MeasureTheory.measurePreserving_pi +/- theorem MeasureTheory.measurePreserving_piFinsetUnion +/- theorem MeasureTheory.volume_preserving_piFinsetUnion Modified Mathlib/MeasureTheory/Constructions/Prod/Basic.lean +/- theorem MeasureTheory.Measure.ae_ae_eq_curry_of_prod +/- theorem MeasureTheory.Measure.ae_ae_eq_of_ae_eq_uncurry Modified Mathlib/MeasureTheory/Group/Measure.lean Modified Mathlib/MeasureTheory/Measure/HasOuterApproxClosed.lean +/- theorem MeasureTheory.measure_of_cont_bdd_of_tendsto_indicator Modified Mathlib/RingTheory/Kaehler/Basic.lean +/- theorem KaehlerDifferential.kerTotal_map' +/- theorem KaehlerDifferential.kerTotal_map Modified Mathlib/RingTheory/Unramified/Finite.lean +/- theorem Algebra.FormallyUnramified.lmul_elem Modified Mathlib/RingTheory/WittVector/Basic.lean Modified Mathlib/RingTheory/WittVector/InitTail.lean Modified Mathlib/RingTheory/WittVector/Teichmuller.lean Modified Mathlib/RingTheory/WittVector/Verschiebung.lean +/- theorem WittVector.ghostComponent_verschiebungFun +/- theorem WittVector.ghostComponent_zero_verschiebungFun +/- theorem WittVector.verschiebung_isPoly Modified Mathlib/Topology/MetricSpace/GromovHausdorffRealized.lean +/- theorem GromovHausdorff.candidatesBDist_mem_candidatesB 2024-08-07 09:19:24 a38c21c chore: backports for leanprover/lean4#4814 (part 28) (#15549) ESTIMATED CHANGES Modified Mathlib/FieldTheory/IsPerfectClosure.lean +/- theorem PerfectRing.liftAux_self +/- theorem PerfectRing.liftAux_self_apply +/- theorem RingHom.pNilradical_le_ker_of_perfectRing 2024-08-07 08:06:52 9a5c301 feat (Probability.Kernel): Composition with a constant kernel. (#15461) Add `Kernel.const_comp` and `Kernel.const_comp'`. ESTIMATED CHANGES Modified Mathlib/Probability/Kernel/Composition.lean + theorem ProbabilityTheory.Kernel.const_comp' + theorem ProbabilityTheory.Kernel.const_comp 2024-08-07 08:06:51 ad4663c feat: norm_num ext for `Int.floor` (#13647) I tried this a while ago in https://github.com/leanprover-community/mathlib/pull/16502; this is now just one of the handlers from that PR. ESTIMATED CHANGES Modified Mathlib/Data/Rat/Floor.lean + def Rat.evalIntFloor +/- theorem Rat.floor_int_div_nat_eq_div + theorem Rat.isInt_intFloor + theorem Rat.isInt_intFloor_ofIsRat + theorem Rat.isNat_intFloor Modified test/norm_num_ext.lean 2024-08-07 07:08:10 9efc417 feat(RelSeries): {last,head}_reverse (#15556) from the Carleson project. ESTIMATED CHANGES Modified Mathlib/Order/RelSeries.lean + theorem RelSeries.head_reverse + theorem RelSeries.last_reverse 2024-08-07 07:08:09 dd6114f feat(Topology/Maps): preimage of a dense set (#15552) ... under an open map is dense. ESTIMATED CHANGES Modified Mathlib/Topology/Maps/Basic.lean 2024-08-07 07:08:08 99de650 chore: backports for leanprover/lean4#4814 (part 27) (#15543) ESTIMATED CHANGES Modified Mathlib/AlgebraicGeometry/Morphisms/Basic.lean 2024-08-07 07:08:07 a2aaae8 fix: `withMainContext` in `type_check` tactic (#15533) Fixing a problem about `type_check` tactic: If you don't use `withMainContext`, you can't use local hypotheses and definitions produced by tactics before the `type_check` tactic, only can use hypotheses written on `theorem` header. ESTIMATED CHANGES Modified Mathlib/Tactic/TypeCheck.lean Modified test/TypeCheck.lean 2024-08-07 07:08:06 45121e1 chore: backports for leanprover/lean4#4814 (part 23) (#15514) ESTIMATED CHANGES Modified Mathlib/Algebra/DirectSum/LinearMap.lean +/- theorem LinearMap.mapsTo_biSup_of_mapsTo +/- theorem LinearMap.trace_eq_sum_trace_restrict' +/- theorem LinearMap.trace_eq_sum_trace_restrict +/- theorem LinearMap.trace_eq_zero_of_mapsTo_ne Modified Mathlib/Analysis/Calculus/InverseFunctionTheorem/ApproximatesLinearOn.lean +/- theorem ApproximatesLinearOn.surjOn_closedBall_of_nonlinearRightInverse Modified Mathlib/Analysis/Calculus/LHopital.lean +/- theorem HasDerivAt.lhopital_zero_left_on_Ioc +/- theorem HasDerivAt.lhopital_zero_left_on_Ioo +/- theorem HasDerivAt.lhopital_zero_right_on_Ico +/- theorem HasDerivAt.lhopital_zero_right_on_Ioo +/- theorem deriv.lhopital_zero_left_on_Ioo +/- theorem deriv.lhopital_zero_right_on_Ico +/- theorem deriv.lhopital_zero_right_on_Ioo Modified Mathlib/Analysis/Matrix.lean Modified Mathlib/Condensed/Epi.lean Modified Mathlib/FieldTheory/Cardinality.lean Modified Mathlib/Geometry/Manifold/SmoothManifoldWithCorners.lean +/- theorem Manifold.locallyCompact_of_finiteDimensional Modified Mathlib/LinearAlgebra/BilinearForm/Properties.lean +/- theorem LinearMap.BilinForm.IsRefl.eq_zero +/- theorem LinearMap.BilinForm.IsSymm.isRefl +/- theorem LinearMap.BilinForm.dualBasis_dualBasis_flip +/- theorem LinearMap.BilinForm.dualBasis_repr_apply Modified Mathlib/RingTheory/IntegralClosure/IsIntegralClosure/Basic.lean +/- theorem Algebra.IsIntegral.of_injective Modified Mathlib/RingTheory/LocalRing/Module.lean +/- theorem LocalRing.split_injective_iff_lTensor_residueField_injective +/- theorem Module.free_of_lTensor_residueField_injective Modified Mathlib/RingTheory/Localization/Cardinality.lean +/- theorem IsLocalization.card +/- theorem IsLocalization.card_le 2024-08-07 07:08:04 0642317 chore: backports for leanprover/lean4#4814 (part 22) (#15511) ESTIMATED CHANGES Modified Mathlib/Algebra/Category/ModuleCat/Sheaf/Limits.lean +/- theorem PresheafOfModules.isSheaf_of_isLimit Modified Mathlib/Analysis/BoxIntegral/Partition/Filter.lean Modified Mathlib/Analysis/Convex/Radon.lean Modified Mathlib/Data/Matrix/ColumnRowPartitioned.lean +/- theorem Matrix.equiv_compl_fromColumns_mul_fromRows_eq_one_comm +/- theorem Matrix.fromBlocks_mul_fromRows +/- theorem Matrix.fromColumns_mulVec_sum_elim +/- theorem Matrix.fromColumns_mul_fromBlocks +/- theorem Matrix.fromColumns_mul_fromRows +/- theorem Matrix.fromColumns_mul_fromRows_eq_one_comm +/- theorem Matrix.fromRows_mul +/- theorem Matrix.fromRows_mulVec +/- theorem Matrix.fromRows_mul_fromColumns +/- theorem Matrix.mul_fromColumns +/- theorem Matrix.sum_elim_vecMul_fromRows +/- theorem Matrix.vecMul_fromColumns Modified Mathlib/LinearAlgebra/Matrix/NonsingularInverse.lean +/- theorem Matrix.mulVec_surjective_iff_exists_right_inverse +/- theorem Matrix.vecMul_surjective_iff_exists_left_inverse Modified Mathlib/LinearAlgebra/Matrix/SesquilinearForm.lean Modified Mathlib/LinearAlgebra/QuadraticForm/Basic.lean +/- theorem QuadraticMap.PosDef.add Modified Mathlib/RepresentationTheory/Maschke.lean +/- theorem LinearMap.conjugate_i +/- theorem LinearMap.equivariantProjection_condition Modified Mathlib/RingTheory/SimpleModule.lean +/- theorem IsSemisimpleModule.congr +/- theorem LinearMap.isSemisimpleModule_iff_of_bijective Modified Mathlib/RingTheory/TensorProduct/Basic.lean +/- theorem Algebra.TensorProduct.congr_trans +/- theorem Algebra.TensorProduct.map_comp Modified Mathlib/Topology/MetricSpace/Perfect.lean +/- theorem Perfect.exists_nat_bool_injection +/- theorem Perfect.small_diam_splitting Modified Mathlib/Topology/TietzeExtension.lean +/- theorem ContinuousMap.exists_extension' +/- theorem ContinuousMap.exists_extension +/- theorem ContinuousMap.exists_extension_forall_mem +/- theorem ContinuousMap.exists_forall_mem_restrict_eq +/- theorem ContinuousMap.exists_restrict_eq 2024-08-07 07:08:03 cfba247 chore: backports for leanprover/lean4#4814 (part 21) (#15510) ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/Subalgebra/Rank.lean Modified Mathlib/Algebra/Category/Grp/Injective.lean Modified Mathlib/Algebra/Module/CharacterModule.lean Modified Mathlib/Algebra/Star/NonUnitalSubalgebra.lean +/- theorem NonUnitalStarAlgebra.span_eq_toSubmodule Modified Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Unital.lean +/- theorem cfc_const_one +/- theorem cfc_eq_cfc_iff_eqOn +/- theorem cfc_id' +/- theorem cfc_id +/- theorem cfc_map_spectrum +/- theorem cfc_one +/- theorem cfc_star_id Modified Mathlib/Analysis/CStarAlgebra/Unitization.lean Modified Mathlib/Analysis/Normed/Algebra/Unitization.lean +/- theorem Unitization.uniformEmbedding_addEquiv Modified Mathlib/Analysis/NormedSpace/Multilinear/Basic.lean Modified Mathlib/Analysis/NormedSpace/OperatorNorm/Bilinear.lean Modified Mathlib/Analysis/NormedSpace/PiTensorProduct/ProjectiveSeminorm.lean Modified Mathlib/CategoryTheory/Sites/Coherent/Equivalence.lean +/- theorem CategoryTheory.Equivalence.precoherent +/- theorem CategoryTheory.Equivalence.precoherent_isSheaf_iff +/- theorem CategoryTheory.Equivalence.preregular +/- theorem CategoryTheory.Equivalence.preregular_isSheaf_iff +/- def CategoryTheory.Equivalence.sheafCongrPrecoherent +/- def CategoryTheory.Equivalence.sheafCongrPreregular Modified Mathlib/LinearAlgebra/AffineSpace/ContinuousAffineEquiv.lean Modified Mathlib/LinearAlgebra/FiniteDimensional/Defs.lean +/- theorem Subalgebra.eq_of_le_of_finrank_eq +/- theorem Subalgebra.eq_of_le_of_finrank_le Modified Mathlib/RingTheory/AdicCompletion/Functoriality.lean +/- theorem AdicCompletion.map_ext Modified Mathlib/RingTheory/FractionalIdeal/Operations.lean +/- def FractionalIdeal.adjoinIntegral +/- theorem FractionalIdeal.adjoinIntegral_coe +/- theorem FractionalIdeal.isFractional_adjoin_integral +/- theorem FractionalIdeal.isFractional_of_fg +/- theorem FractionalIdeal.mem_adjoinIntegral_self Modified Mathlib/Topology/Algebra/Algebra.lean Modified Mathlib/Topology/Algebra/InfiniteSum/NatInt.lean Modified Mathlib/Topology/Algebra/InfiniteSum/Real.lean +/- theorem summable_prod_of_nonneg +/- theorem summable_sigma_of_nonneg Modified Mathlib/Topology/Algebra/Module/Basic.lean Modified Mathlib/Topology/ContinuousFunction/Compact.lean Modified Mathlib/Topology/ContinuousFunction/CompactlySupported.lean Modified Mathlib/Topology/ContinuousFunction/ContinuousMapZero.lean +/- theorem ContinuousMapZero.toContinuousMap_injective Modified Mathlib/Topology/Instances/AddCircle.lean +/- theorem AddCircle.continuousAt_equivIco +/- theorem AddCircle.continuousAt_equivIoc +/- def AddCircle.homeoIccQuot +/- theorem continuousAt_toIcoMod +/- theorem continuousAt_toIocMod +/- theorem toIcoMod_eventuallyEq_toIocMod Modified Mathlib/Topology/Instances/ENNReal.lean +/- theorem cauchySeq_of_edist_le_of_summable Modified Mathlib/Topology/MetricSpace/Gluing.lean +/- def Metric.glueMetricApprox 2024-08-07 07:08:02 20f7e68 feat(RelSeries): {head,last}_map (#15387) from the Carleson project ESTIMATED CHANGES Modified Mathlib/Order/RelSeries.lean + theorem LTSeries.head_map + theorem LTSeries.last_map + theorem RelSeries.head_map + theorem RelSeries.last_map 2024-08-07 06:03:41 97719f5 chore(Data/Set/Basic): predicate is equal to membership in setOf. (#15554) We add a lemma stating that for `p : α -> Prop` we have `p = (· ∈ {a | p a})`. This lemma fills a gap that came up a couple of times when adapting `minimals` to the new `Minimal`, the alternative being an awkward `show`/`change` or `funext`. (See [this example from mathlib](https://github.com/leanprover-community/mathlib4/pull/14721#pullrequestreview-2208354111) (@j-loreaux 's first comment) and [this example](https://github.com/fpvandoorn/carleson/pull/109/files#r1705631209) from the Carleson project) ESTIMATED CHANGES Modified Mathlib/Data/Set/Basic.lean + theorem Set.eq_mem_setOf 2024-08-07 06:03:40 c0d0e84 chore: backports for leanprover/lean4#4814 (part 18) (#15431) see https://github.com/leanprover-community/mathlib4/pull/15245 ESTIMATED CHANGES Modified Mathlib/Algebra/Homology/ShortComplex/ConcreteCategory.lean +/- theorem CategoryTheory.ShortComplex.ShortExact.injective_f +/- theorem CategoryTheory.ShortComplex.ShortExact.surjective_g Modified Mathlib/CategoryTheory/Galois/Prorepresentability.lean +/- theorem CategoryTheory.PreGaloisCategory.AutGalois.π_surjective Modified Mathlib/CategoryTheory/Triangulated/HomologicalFunctor.lean Modified Mathlib/Geometry/Manifold/LocalInvariantProperties.lean Modified Mathlib/RingTheory/FractionalIdeal/Basic.lean Modified Mathlib/RingTheory/Ideal/Maps.lean +/- theorem Ideal.comap_le_map_of_inv_on +/- theorem Ideal.map_le_comap_of_inv_on +/- theorem Ideal.map_le_comap_of_inverse Modified Mathlib/Topology/Category/TopCat/Limits/Cofiltered.lean +/- theorem TopCat.isTopologicalBasis_cofiltered_limit Modified Mathlib/Topology/Covering.lean +/- theorem IsCoveringMap.constOn_of_comp +/- theorem IsCoveringMap.eqOn_of_comp_eqOn Modified Mathlib/Topology/Sets/Closeds.lean Modified Mathlib/Topology/StoneCech.lean Modified Mathlib/Topology/UniformSpace/Cauchy.lean +/- theorem SequentiallyComplete.le_nhds_of_seq_tendsto_nhds +/- theorem SequentiallyComplete.seq_is_cauchySeq +/- theorem cauchy_comap_uniformSpace 2024-08-07 05:28:34 53f5571 chore: backports for leanprover/lean4#4814 (part 17) (#15429) see https://github.com/leanprover-community/mathlib4/pull/15245 ESTIMATED CHANGES Modified Mathlib/Algebra/CharP/ExpChar.lean Modified Mathlib/Algebra/Polynomial/AlgebraMap.lean Modified Mathlib/Algebra/Polynomial/Degree/Lemmas.lean Modified Mathlib/Algebra/Polynomial/Module/Basic.lean Modified Mathlib/Algebra/Polynomial/Smeval.lean Modified Mathlib/Algebra/Quaternion.lean +/- theorem QuaternionAlgebra.coe_smul +/- theorem QuaternionAlgebra.smul_im Modified Mathlib/GroupTheory/HNNExtension.lean Modified Mathlib/GroupTheory/PushoutI.lean Modified Mathlib/RingTheory/Adjoin/Basic.lean +/- theorem Algebra.adjoin_top Modified Mathlib/RingTheory/Derivation/ToSquareZero.lean +/- def derivationToSquareZeroEquivLift +/- def derivationToSquareZeroOfLift +/- theorem derivationToSquareZeroOfLift_apply +/- def liftOfDerivationToSquareZero +/- theorem liftOfDerivationToSquareZero_mk_apply Modified Mathlib/RingTheory/Idempotents.lean +/- theorem CompleteOrthogonalIdempotents.map +/- theorem OrthogonalIdempotents.embedding +/- theorem OrthogonalIdempotents.isIdempotentElem_sum +/- theorem OrthogonalIdempotents.map +/- theorem OrthogonalIdempotents.option Modified Mathlib/RingTheory/MvPolynomial/NewtonIdentities.lean Modified Mathlib/RingTheory/PowerSeries/WellKnown.lean Modified Mathlib/RingTheory/PrincipalIdealDomain.lean Modified Mathlib/RingTheory/UniqueFactorizationDomain.lean +/- theorem Associates.count_eq_zero_of_ne +/- theorem Associates.count_factors_eq_find_of_dvd_pow +/- theorem Associates.count_mul +/- theorem Associates.count_mul_of_coprime' +/- theorem Associates.count_mul_of_coprime +/- theorem Associates.count_of_coprime +/- theorem Associates.count_pow +/- theorem Associates.count_self +/- theorem Associates.dvd_count_of_dvd_count_mul +/- theorem Associates.dvd_count_pow +/- theorem Associates.eq_pow_count_factors_of_dvd_pow +/- theorem Associates.is_pow_of_dvd_count Modified Mathlib/RingTheory/WittVector/WittPolynomial.lean Modified Mathlib/Tactic/ComputeDegree.lean +/- theorem Mathlib.Tactic.ComputeDegree.coeff_congr +/- theorem Mathlib.Tactic.ComputeDegree.coeff_congr_lhs 2024-08-07 03:16:57 4bb053f chore: backports for leanprover/lean4#4814 (part 30) (#15574) ESTIMATED CHANGES Modified Mathlib/Order/Filter/AtTopBot.lean +/- theorem Filter.atBot_basis_Iio +/- theorem Filter.atTop_basis +/- theorem Filter.atTop_basis_Ioi +/- theorem Filter.hasAntitoneBasis_atTop +/- theorem Filter.inf_map_atTop_neBot_iff 2024-08-07 02:12:24 c7dfc55 chore(Geometry/Manifold): split variable statements (#15439) Make sure to perform binder annotation updates and declaring new variables in separate variable commands. This is currently recommended because of leanprover/lean4#2789: mixing these can yield confusing errors. Found by a linter in #15400. ESTIMATED CHANGES Modified Mathlib/Analysis/NormedSpace/OperatorNorm/Prod.lean Modified Mathlib/Geometry/Manifold/BumpFunction.lean Modified Mathlib/Geometry/Manifold/ChartedSpace.lean Modified Mathlib/Geometry/Manifold/ContMDiff/Basic.lean Modified Mathlib/Geometry/Manifold/PartitionOfUnity.lean Modified Mathlib/Geometry/Manifold/VectorBundle/Basic.lean Modified Mathlib/Geometry/Manifold/VectorBundle/Tangent.lean Modified Mathlib/Topology/FiberBundle/Basic.lean Modified Mathlib/Topology/FiberBundle/Trivialization.lean 2024-08-07 02:12:23 e2aa79d feat: Measurability of functions w.r.t supremums of sigma-algebras (#15326) From GibbsMeasure ESTIMATED CHANGES Modified Mathlib/MeasureTheory/MeasurableSpace/Basic.lean + theorem Measurable.iSup' + theorem Measurable.sup_of_left + theorem Measurable.sup_of_right 2024-08-07 01:50:26 fdbc629 feat: modify `AEEqFun.cast` so that it chooses constant functions (#12949) ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Function/AEEqFun.lean + theorem MeasureTheory.AEEqFun.coeFn_const_eq + theorem MeasureTheory.AEEqFun.coeFn_one_eq 2024-08-07 01:32:34 af4faba feat(Analysis/InnerProductSpace/Basic): add PreInnerProductSpace (#14024) add the structure `PreInnerProductSpace`, which does not assume `definite` for the inner product, with a proof of the Cauchy-Schwarz inequality using the discriminant. Motivation: Such structures arise very often in applications, and by quotienting the kernel one obtains `InnerProductSpace.Core`. I duplicated most of the proofs from the namespace `InnerProductSpace.Core` and put them under the namespace `PreInnerProductSpace` . Is there a better way? ESTIMATED CHANGES Modified Mathlib/Analysis/InnerProductSpace/Basic.lean + theorem InnerProductSpace.Core.cauchy_schwarz_aux' +/- theorem InnerProductSpace.Core.cauchy_schwarz_aux + theorem InnerProductSpace.Core.inner_self_of_eq_zero + theorem InnerProductSpace.Core.inner_smul_ofReal_left + theorem InnerProductSpace.Core.inner_smul_ofReal_right + theorem InnerProductSpace.Core.ne_zero_of_inner_self_ne_zero + theorem InnerProductSpace.Core.normSq_eq_zero_of_eq_zero + theorem InnerProductSpace.Core.re_inner_smul_ofReal_smul_self + def InnerProductSpace.Core.toPreInner' + def InnerProductSpace.Core.toSeminormedAddCommGroup + def InnerProductSpace.Core.toSeminormedSpace +/- def InnerProductSpace.complexToReal +/- def InnerProductSpace.ofCore +/- def OrthogonalFamily + structure PreInnerProductSpace.Core + def PreInnerProductSpace.toCore +/- theorem inner_map_complex Modified Mathlib/LinearAlgebra/Matrix/PosDef.lean Modified scripts/style-exceptions.txt 2024-08-06 23:04:27 c2f3c7e chore(Order/Filter/AtTopBot): Generalise from semilattices to directed orders (#15252) Many lemmas requiring `[SemilatticeSup α]` actually only need `[Preorder α] [IsDirected α (· ≤ ·)]`. ESTIMATED CHANGES Modified Mathlib/Order/Filter/AtTopBot.lean - theorem Filter.Eventually.exists_forall_of_atBot - theorem Filter.Eventually.exists_forall_of_atTop - theorem Filter.Frequently.forall_exists_of_atBot - theorem Filter.Frequently.forall_exists_of_atTop +/- theorem Filter.HasAntitoneBasis.comp_mono +/- theorem Filter.Tendsto.prod_atBot +/- theorem Filter.Tendsto.prod_atTop +/- theorem Filter.Tendsto.prod_map_prod_atBot +/- theorem Filter.Tendsto.prod_map_prod_atTop +/- theorem Filter.atBot_basis' +/- theorem Filter.atBot_basis + theorem Filter.atBot_basis_Iio' + theorem Filter.atBot_basis_Iio +/- theorem Filter.atBot_countable_basis +/- theorem Filter.atBot_neBot +/- theorem Filter.atTop_basis' +/- theorem Filter.atTop_basis +/- theorem Filter.atTop_basis_Ioi' +/- theorem Filter.atTop_basis_Ioi +/- theorem Filter.atTop_countable_basis +/- theorem Filter.atTop_eq_generate_Ici +/- theorem Filter.atTop_neBot +/- theorem Filter.eventually_atBot +/- theorem Filter.eventually_atBot_curry +/- theorem Filter.eventually_atBot_prod_self' +/- theorem Filter.eventually_atBot_prod_self +/- theorem Filter.eventually_atTop +/- theorem Filter.eventually_atTop_curry +/- theorem Filter.eventually_atTop_prod_self' +/- theorem Filter.eventually_atTop_prod_self +/- theorem Filter.exists_eventually_atBot +/- theorem Filter.exists_eventually_atTop +/- theorem Filter.exists_le_of_tendsto_atBot +/- theorem Filter.exists_le_of_tendsto_atTop +/- theorem Filter.exists_lt_of_tendsto_atBot +/- theorem Filter.exists_lt_of_tendsto_atTop +/- theorem Filter.frequently_atBot' +/- theorem Filter.frequently_atBot +/- theorem Filter.frequently_atTop' +/- theorem Filter.frequently_atTop +/- theorem Filter.hasAntitoneBasis_atTop +/- theorem Filter.inf_map_atBot_neBot_iff +/- theorem Filter.inf_map_atTop_neBot_iff +/- theorem Filter.map_atBot_eq +/- theorem Filter.map_atTop_eq +/- theorem Filter.mem_atBot_sets +/- theorem Filter.mem_atTop_sets +/- theorem Filter.tendsto_atBot' +/- theorem Filter.tendsto_atBot_atBot +/- theorem Filter.tendsto_atBot_atBot_iff_of_monotone +/- theorem Filter.tendsto_atBot_atTop +/- theorem Filter.tendsto_atBot_atTop_iff_of_antitone +/- theorem Filter.tendsto_atBot_diagonal +/- theorem Filter.tendsto_atBot_principal +/- theorem Filter.tendsto_atTop' +/- theorem Filter.tendsto_atTop_atBot +/- theorem Filter.tendsto_atTop_atBot_iff_of_antitone +/- theorem Filter.tendsto_atTop_atTop +/- theorem Filter.tendsto_atTop_atTop_iff_of_monotone +/- theorem Filter.tendsto_atTop_diagonal +/- theorem Filter.tendsto_atTop_principal +/- theorem Filter.unbounded_of_tendsto_atBot' +/- theorem Filter.unbounded_of_tendsto_atBot +/- theorem Filter.unbounded_of_tendsto_atTop' +/- theorem Filter.unbounded_of_tendsto_atTop Modified Mathlib/Topology/MetricSpace/Cauchy.lean 2024-08-06 23:04:26 48415a3 feat(Tactic.Bound): Add a `bound` tactic for inequalities by structure (#10562) `bound` proves inequalities that follow "obviously by structure", assuming nonnegativity or positivity of subterms where necessary. It is built on top of Aesop. It has significant overlap with `positivity` and `gcongr`, but can also switch back and forth between those modes (such as when proving `0 < a * b - a * c` from `0 < a`, `c < b`). Zulip discussion: https://leanprover.zulipchat.com/#narrow/stream/239415-metaprogramming-.2F-tactics/topic/.60bound.60.20mixes.20.60gcongr.60.20and.20.60positivity.60/near/412120380 ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Order/AbsoluteValue.lean Modified Mathlib/Algebra/Order/BigOperators/Group/Finset.lean Modified Mathlib/Algebra/Order/Field/Basic.lean + theorem Bound.div_lt_one_of_pos_of_lt + theorem Bound.one_lt_div_of_pos_of_lt Modified Mathlib/Algebra/Order/Floor.lean Modified Mathlib/Algebra/Order/Ring/Basic.lean + theorem Bound.le_self_pow_of_pos + theorem Bound.pow_le_pow_right_of_le_one_or_one_le Modified Mathlib/Analysis/Analytic/Basic.lean Modified Mathlib/Analysis/Normed/Group/Basic.lean Modified Mathlib/Analysis/Normed/MulAction.lean Modified Mathlib/Analysis/SpecialFunctions/Log/Basic.lean Modified Mathlib/Analysis/SpecialFunctions/Pow/Real.lean + theorem Real.rpow_le_rpow_of_exponent_le_or_ge Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Basic.lean Modified Mathlib/Data/Complex/Abs.lean Modified Mathlib/Data/Complex/Exponential.lean Modified Mathlib/Data/ENNReal/Real.lean Modified Mathlib/Data/NNReal/Basic.lean +/- theorem NNReal.coe_nonneg Modified Mathlib/Data/Nat/Log.lean Modified Mathlib/Data/Real/Sqrt.lean Modified Mathlib/Tactic.lean Added Mathlib/Tactic/Bound.lean + theorem Mathlib.Tactic.Bound.Nat.cast_pos_of_pos + theorem Mathlib.Tactic.Bound.Nat.one_le_cast_of_le + def Mathlib.Tactic.Bound.boundConfig + def Mathlib.Tactic.Bound.boundLinarith + def Mathlib.Tactic.Bound.boundNormNum + theorem Mathlib.Tactic.Bound.le_max_of_le_left_or_le_right + theorem Mathlib.Tactic.Bound.lt_max_of_lt_left_or_lt_right + theorem Mathlib.Tactic.Bound.min_le_of_left_le_or_right_le + theorem Mathlib.Tactic.Bound.min_lt_of_left_lt_or_right_lt + theorem Mathlib.Tactic.Bound.mul_lt_mul_left_of_pos_of_lt + theorem Mathlib.Tactic.Bound.mul_lt_mul_right_of_pos_of_lt Added Mathlib/Tactic/Bound/Attribute.lean + def Mathlib.Tactic.Bound.declPriority + def Mathlib.Tactic.Bound.ineqPriority + def Mathlib.Tactic.Bound.isZero + def Mathlib.Tactic.Bound.scoreToConfig + def Mathlib.Tactic.Bound.typePriority Added Mathlib/Tactic/Bound/Init.lean Modified Mathlib/Tactic/GCongr/Core.lean Modified Mathlib/Topology/MetricSpace/Pseudo/Defs.lean Modified scripts/noshake.json Added test/Bound/attribute.lean Added test/Bound/bound.lean + theorem test_unknown_identifier 2024-08-06 22:27:23 fe874da feat(GroupTheory/Index): `index_eq_zero_iff_infinite` (#15504) Add the trivial, but apparently missing, lemma: ```lean @[to_additive] lemma index_eq_zero_iff_infinite : H.index = 0 ↔ Infinite (G ⧸ H) := by ``` From AperiodicMonotilesLean. ESTIMATED CHANGES Modified Mathlib/GroupTheory/Index.lean + theorem Subgroup.index_eq_zero_iff_infinite 2024-08-06 21:08:21 82f8269 feat: Miscellaneous small ENNReal lemmas. (#13938) `ENNReal.*`: `.toNNReal_toReal_eq`, `.sub_add_eq_add_sub`, `.zpow_neg`, `.zpow_sub`, `.tendsto_pow_atTop_nhds_top` + instance `MeasurableSMul₂ ℝ≥0 ℝ≥0∞` ESTIMATED CHANGES Modified Mathlib/Analysis/SpecificLimits/Basic.lean Modified Mathlib/Data/ENNReal/Basic.lean + theorem ENNReal.coe_toNNReal_eq_toReal + theorem ENNReal.toNNReal_toReal_eq Modified Mathlib/Data/ENNReal/Inv.lean Modified Mathlib/Data/ENNReal/Operations.lean Modified Mathlib/MeasureTheory/Constructions/BorelSpace/Real.lean 2024-08-06 20:43:02 c7cfd15 chore: update Mathlib dependencies 2024-08-06 (#15562) This PR updates the Mathlib dependencies. ESTIMATED CHANGES Modified lake-manifest.json 2024-08-06 19:16:43 e0ea301 chore(Algebra/GeomSum): turn `induction'` into `induction` (#15561) This PR turns the (soon to be deprecated) `induction'` into `induction`. ESTIMATED CHANGES Modified Mathlib/Algebra/GeomSum.lean 2024-08-06 17:59:07 37940a3 feat(Data.List): Add `List.nodup_permutations_iff` (#15512) ESTIMATED CHANGES Modified Mathlib/Data/List/Perm.lean + theorem List.nodup_permutations_iff + theorem List.permutations_take_two 2024-08-06 17:59:06 0a376d7 feat (MeaureTheory): `measure_univ_le_add_compl` (#15467) Add `measure_univ_le_add_compl`. ESTIMATED CHANGES Modified Mathlib/MeasureTheory/OuterMeasure/Basic.lean + theorem MeasureTheory.measure_univ_le_add_compl 2024-08-06 17:15:42 b3472b6 feat(ENat): CompleteLinearOrder (WithBot ENat) (#15558) from the Carleson project. ESTIMATED CHANGES Modified Mathlib/Data/ENat/Lattice.lean 2024-08-06 16:17:37 1d8b373 chore: update Mathlib dependencies 2024-08-06 (#15553) This PR updates the Mathlib dependencies. ESTIMATED CHANGES Modified lake-manifest.json 2024-08-06 14:46:28 31cb252 doc(Probability/Notation): tell user to open ProbabilityTheory to use these notations (#15542) Previously this requirement was not documented anywhere apart from the source. ESTIMATED CHANGES Modified Mathlib/Probability/Notation.lean 2024-08-06 10:53:52 780b09c chore(ZMod/Basic): move two lemmas (#15446) Move the lemmas `val_eq_zero` and `val_intCast` up. Necessary for proving some lemmas without using `ModEq`. ESTIMATED CHANGES Modified Mathlib/Data/ZMod/Basic.lean 2024-08-06 09:11:29 04b5a7b feat(ZPowers): add `zpowers_inv` and `zmultiples_neg` (#15534) ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Subgroup/ZPowers.lean + theorem Subgroup.zpowers_inv 2024-08-06 09:11:28 c82a357 feat(ModelTheory/Substructures): define equivalences between substructures and prove simple results (#11175) Define partial equivalences between structures. A partial equivalence between structures `M` and `N` is a subobject of `M` and a subobject of `N` along with an equivalence between. This is useful to build an actual equivalence between `M` and `N`. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/ModelTheory/PartialEquiv.lean + theorem FirstOrder.Language.Embedding.toEmbedding_toPartialEquiv + theorem FirstOrder.Language.Embedding.toPartialEquiv_injective + theorem FirstOrder.Language.Embedding.toPartialEquiv_toEmbedding + theorem FirstOrder.Language.PartialEquiv.codRestrict_le + theorem FirstOrder.Language.PartialEquiv.cod_le_cod + theorem FirstOrder.Language.PartialEquiv.domRestrict_le + theorem FirstOrder.Language.PartialEquiv.dom_le_dom + theorem FirstOrder.Language.PartialEquiv.ext + theorem FirstOrder.Language.PartialEquiv.ext_iff + theorem FirstOrder.Language.PartialEquiv.le_codRestrict + theorem FirstOrder.Language.PartialEquiv.le_def + theorem FirstOrder.Language.PartialEquiv.le_domRestrict + theorem FirstOrder.Language.PartialEquiv.le_iff + theorem FirstOrder.Language.PartialEquiv.le_trans + theorem FirstOrder.Language.PartialEquiv.monotone_cod + theorem FirstOrder.Language.PartialEquiv.monotone_dom + theorem FirstOrder.Language.PartialEquiv.monotone_symm + theorem FirstOrder.Language.PartialEquiv.subtype_toEquiv_inclusion + def FirstOrder.Language.PartialEquiv.symm + theorem FirstOrder.Language.PartialEquiv.symm_apply + theorem FirstOrder.Language.PartialEquiv.symm_le_iff + theorem FirstOrder.Language.PartialEquiv.symm_le_symm + theorem FirstOrder.Language.PartialEquiv.symm_symm + def FirstOrder.Language.PartialEquiv.toEmbedding + def FirstOrder.Language.PartialEquiv.toEmbeddingOfEqTop + theorem FirstOrder.Language.PartialEquiv.toEmbeddingOfEqTop__apply + theorem FirstOrder.Language.PartialEquiv.toEmbedding_apply + def FirstOrder.Language.PartialEquiv.toEquivOfEqTop + theorem FirstOrder.Language.PartialEquiv.toEquivOfEqTop_toEmbedding + theorem FirstOrder.Language.PartialEquiv.toEquiv_inclusion + theorem FirstOrder.Language.PartialEquiv.toEquiv_inclusion_apply + structure FirstOrder.Language.PartialEquiv Modified Mathlib/ModelTheory/Substructures.lean 2024-08-06 08:17:02 b1b3aa6 fix: `Int.cast_smul_eq_nsmul` → `Int.cast_smul_eq_zsmul` (#15528) This is a recently-introduced typo. The lemma is about `ℤ` not `ℕ`. ESTIMATED CHANGES Modified Mathlib/Algebra/Lie/Sl2.lean Modified Mathlib/Algebra/Lie/Weights/RootSystem.lean Modified Mathlib/Algebra/Module/Defs.lean - theorem Int.cast_smul_eq_nsmul + theorem Int.cast_smul_eq_zsmul +/- theorem zsmul_eq_smul_cast Modified Mathlib/Algebra/Module/Rat.lean Modified Mathlib/Algebra/Module/Zlattice/Basic.lean Modified Mathlib/Algebra/Star/CHSH.lean Modified Mathlib/Analysis/Distribution/SchwartzSpace.lean Modified Mathlib/Analysis/NormedSpace/Connected.lean Modified Mathlib/Data/ZMod/IntUnitsPower.lean Modified Mathlib/Data/ZMod/Module.lean Modified Mathlib/LinearAlgebra/TensorProduct/Graded/External.lean Modified Mathlib/LinearAlgebra/TensorProduct/Graded/Internal.lean Modified Mathlib/RepresentationTheory/GroupCohomology/Resolution.lean Modified Mathlib/RingTheory/Derivation/Basic.lean 2024-08-06 08:17:00 1d4f2c1 fix: undo the accidental revert of #11877 in #11807 (#15523) A bad merge in #11807 causes the change from #11877 (removing `import ProofWidgets`) to be reverted. ESTIMATED CHANGES Modified Mathlib/Tactic/Common.lean Modified Mathlib/Tactic/Widget/StringDiagram.lean 2024-08-06 08:16:59 5bc5222 fix: put `Nat.primeCounting` in a narrower scope (#15519) Without this, it is not possible to mix `!` notation for factorial and `π` notation for `Real.pi`. More precisely; while the following works in `Mathlib/Analysis/SpecialFunctions/Stirling.lean` ```lean lemma factorial_isEquivalent_stirling : (fun n ↦ n ! : ℕ → ℝ) ~[atTop] fun n ↦ Real.sqrt (2 * n * π) * (n / exp 1) ^ n := by ``` it produces an error about ambiguous syntax in a standalone file with `import Mathlib`: ```lean import Mathlib open scoped Real Nat Asymptotics open Real lemma factorial_isEquivalent_stirling : (fun n ↦ n ! : ℕ → ℝ) ~[atTop] fun n ↦ Real.sqrt (2 * n * π) * (n / exp 1) ^ n := by ``` Follows on from #13473 ESTIMATED CHANGES Modified Mathlib/NumberTheory/PrimeCounting.lean 2024-08-06 08:16:58 26fa8d8 chore: tidy various files (#15516) ESTIMATED CHANGES Modified Mathlib/Algebra/Module/LinearMap/Polynomial.lean Modified Mathlib/Algebra/Module/Zlattice/Basic.lean Modified Mathlib/Algebra/Module/Zlattice/Covolume.lean Modified Mathlib/Algebra/MvPolynomial/Degrees.lean Modified Mathlib/Algebra/Order/Group/Unbundled/Abs.lean Modified Mathlib/Algebra/Order/GroupWithZero/Canonical.lean Modified Mathlib/Algebra/Order/Interval/Basic.lean Modified Mathlib/AlgebraicGeometry/PrimeSpectrum/Basic.lean Modified Mathlib/Analysis/Analytic/Within.lean Modified Mathlib/Analysis/LocallyConvex/Barrelled.lean Modified Mathlib/CategoryTheory/Sites/Coherent/Equivalence.lean Modified Mathlib/CategoryTheory/Sites/MayerVietorisSquare.lean Modified Mathlib/Combinatorics/Additive/ErdosGinzburgZiv.lean Modified Mathlib/Combinatorics/SimpleGraph/Metric.lean Modified Mathlib/Data/Matrix/Basis.lean Modified Mathlib/Data/Num/Lemmas.lean Modified Mathlib/Data/Set/Finite.lean +/- theorem Set.Finite.preimage' Modified Mathlib/Data/TypeVec.lean Modified Mathlib/Geometry/RingedSpace/OpenImmersion.lean Modified Mathlib/GroupTheory/CosetCover.lean Modified Mathlib/GroupTheory/PGroup.lean Modified Mathlib/GroupTheory/Perm/Cycle/Concrete.lean Modified Mathlib/GroupTheory/SpecificGroups/Cyclic.lean Modified Mathlib/LinearAlgebra/Matrix/ToLin.lean Modified Mathlib/MeasureTheory/Measure/Haar/InnerProductSpace.lean Modified Mathlib/Probability/ConditionalProbability.lean Modified Mathlib/Probability/Kernel/Basic.lean Modified Mathlib/RingTheory/Finiteness.lean Modified Mathlib/RingTheory/Flat/Stability.lean Modified Mathlib/RingTheory/Kaehler/CotangentComplex.lean Modified Mathlib/RingTheory/MvPolynomial/Homogeneous.lean Modified Mathlib/RingTheory/MvPolynomial/WeightedHomogeneous.lean Modified Mathlib/RingTheory/PrimeSpectrum.lean Modified Mathlib/SetTheory/Ordinal/Notation.lean 2024-08-06 08:16:57 c63fd8a feat(Combinatorics/SimpleGraph): Add definition of circulant graph and cycle graph (#15501) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Combinatorics/SimpleGraph/Circulant.lean + def SimpleGraph.circulantGraph + theorem SimpleGraph.circulantGraph_adj_translate + theorem SimpleGraph.circulantGraph_eq_erase_zero + theorem SimpleGraph.circulantGraph_eq_symm + def SimpleGraph.cycleGraph + theorem SimpleGraph.cycleGraph_adj' + theorem SimpleGraph.cycleGraph_adj + theorem SimpleGraph.cycleGraph_connected + theorem SimpleGraph.cycleGraph_degree_three_le + theorem SimpleGraph.cycleGraph_degree_two_le + theorem SimpleGraph.cycleGraph_neighborFinset + theorem SimpleGraph.cycleGraph_neighborSet + theorem SimpleGraph.cycleGraph_one_adj + theorem SimpleGraph.cycleGraph_one_eq_bot + theorem SimpleGraph.cycleGraph_one_eq_top + theorem SimpleGraph.cycleGraph_preconnected + theorem SimpleGraph.cycleGraph_three_eq_top + theorem SimpleGraph.cycleGraph_two_eq_top + theorem SimpleGraph.cycleGraph_zero_adj + theorem SimpleGraph.cycleGraph_zero_eq_bot + theorem SimpleGraph.cycleGraph_zero_eq_top + theorem SimpleGraph.pathGraph_le_cycleGraph 2024-08-06 08:06:33 cea57e0 feat(CategoryTheory/Adjunction): `typeToCat` is left adjoint to `Cat.objects` (#15375) The embedding of `Type` into `Cat`, which views a set as a discrete category, is left adjoint to the functor `Cat.objects : Cat -> Set` mapping a category to its set of objects ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Category/Cat/Adjunction.lean + def CategoryTheory.Cat.typeToCatObjectsAdj 2024-08-06 05:13:08 b1409cd chore: include bare 'open Classical' in tech debt metrics (#15490) And remove one commented counter: there is now a lint against deprecations without a date, so keeping it is probably not useful. ESTIMATED CHANGES Modified scripts/technical-debt-metrics.sh 2024-08-06 05:13:07 6fdbc7e chore: backports for leanprover/lean4#4814 (part 19) (#15434) see https://github.com/leanprover-community/mathlib4/pull/15245 ESTIMATED CHANGES Modified Mathlib/GroupTheory/PGroup.lean +/- theorem IsPGroup.card_center_eq_prime_pow +/- theorem IsPGroup.nonempty_fixed_point_of_prime_not_dvd_card Modified Mathlib/RingTheory/Binomial.lean +/- theorem Ring.smeval_ascPochhammer_int_ofNat +/- theorem Ring.smeval_ascPochhammer_nat_cast Modified Mathlib/RingTheory/DiscreteValuationRing/Basic.lean +/- theorem DiscreteValuationRing.HasUnitMulPowIrreducibleFactorization.toUniqueFactorizationMonoid +/- theorem DiscreteValuationRing.HasUnitMulPowIrreducibleFactorization.unique_irreducible Modified Mathlib/RingTheory/Filtration.lean +/- theorem Ideal.Filtration.Stable.exists_pow_smul_eq +/- theorem Ideal.Filtration.Stable.exists_pow_smul_eq_of_ge Modified Mathlib/RingTheory/MvPolynomial/Homogeneous.lean +/- theorem MvPolynomial.homogeneousSubmodule_eq_finsupp_supported +/- theorem MvPolynomial.homogeneousSubmodule_mul +/- theorem MvPolynomial.mem_homogeneousSubmodule Modified Mathlib/RingTheory/Polynomial/Eisenstein/Basic.lean +/- theorem Polynomial.IsEisensteinAt.coeff_mem +/- theorem Polynomial.IsEisensteinAt.irreducible +/- theorem Polynomial.IsEisensteinAt.isWeaklyEisensteinAt +/- theorem Polynomial.IsWeaklyEisensteinAt.map +/- theorem Polynomial.IsWeaklyEisensteinAt.pow_natDegree_le_of_aeval_zero_of_monic_mem_map +/- theorem Polynomial.IsWeaklyEisensteinAt.pow_natDegree_le_of_root_of_monic_mem Modified Mathlib/RingTheory/RootsOfUnity/Basic.lean +/- theorem IsPrimitiveRoot.eq_orderOf +/- theorem IsPrimitiveRoot.ne_one +/- theorem IsPrimitiveRoot.pow_eq_one_iff_dvd +/- theorem IsPrimitiveRoot.pow_ne_one_of_pos_of_lt +/- theorem IsPrimitiveRoot.pow_of_coprime +/- theorem IsPrimitiveRoot.sub_one_ne_zero Modified Mathlib/Topology/Sequences.lean +/- theorem SequentialSpace.coinduced 2024-08-06 05:13:06 bff8114 feat(CategoryTheory/Limits/ConcreteCategory): prove some results for concrete category with extra algebraic structures (#15315) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Category/Grp/Abelian.lean Modified Mathlib/Algebra/Category/Grp/Limits.lean Renamed Mathlib/CategoryTheory/Limits/ConcreteCategory.lean to Mathlib/CategoryTheory/Limits/ConcreteCategory/Basic.lean Added Mathlib/CategoryTheory/Limits/ConcreteCategory/WithAlgebraicStructures.lean + theorem CategoryTheory.Limits.Concrete.colimit_no_zero_smul_divisor + theorem CategoryTheory.Limits.Concrete.colimit_rep_eq_zero Modified Mathlib/CategoryTheory/Limits/Shapes/ConcreteCategory.lean Modified Mathlib/Topology/Category/TopCat/Limits/Products.lean 2024-08-06 05:13:04 50ebd3b feat(RingTheory/Coalgebra/*): add basics about sweedler notation (#12109) Though the name is called sweedler notation, no new notations are actually introduced. This PR is actually about expanding tensor product. ESTIMATED CHANGES Modified Mathlib/RingTheory/Coalgebra/Basic.lean + def Coalgebra.Repr.arbitrary + structure Coalgebra.Repr + theorem Coalgebra.sum_counit_tmul_eq + theorem Coalgebra.sum_tmul_counit_eq Modified Mathlib/RingTheory/Coalgebra/Hom.lean + def Coalgebra.Repr.induced + theorem Coalgebra.sum_tmul_apply_counit_eq + theorem Coalgebra.sum_tmul_counit_apply_eq Modified Mathlib/RingTheory/HopfAlgebra.lean + theorem HopfAlgebra.sum_antipode_mul_eq + theorem HopfAlgebra.sum_antipode_mul_eq_smul + theorem HopfAlgebra.sum_mul_antipode_eq + theorem HopfAlgebra.sum_mul_antipode_eq_smul 2024-08-06 05:02:33 123eb21 feat(CategoryTheory): opposite functors preserving finite products (#15518) If `F` preserves finite coproducts, then `F.op` preserves finite products, and the seven other variants for `leftOp`, `unop` etc. Also remove some lean3-isms from docstrings ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Limits/Preserves/Opposites.lean + def CategoryTheory.Limits.preservesFiniteCoproductsLeftOp + def CategoryTheory.Limits.preservesFiniteCoproductsOp + def CategoryTheory.Limits.preservesFiniteCoproductsRightOp + def CategoryTheory.Limits.preservesFiniteCoproductsUnop + def CategoryTheory.Limits.preservesFiniteProductsLeftOp + def CategoryTheory.Limits.preservesFiniteProductsOp + def CategoryTheory.Limits.preservesFiniteProductsRightOp + def CategoryTheory.Limits.preservesFiniteProductsUnop 2024-08-06 04:16:35 994b33b chore(*): rename `Cstar*` to `CStar*` (#15495) Moves: - Cstar* -> CStar* ESTIMATED CHANGES Modified Mathlib.lean Renamed Mathlib/Analysis/CstarAlgebra/Basic.lean to Mathlib/Analysis/CStarAlgebra/Basic.lean + theorem CStarRing.mul_star_self_eq_zero_iff + theorem CStarRing.mul_star_self_ne_zero_iff + theorem CStarRing.nnnorm_self_mul_star + theorem CStarRing.nnnorm_star_mul_self + theorem CStarRing.norm_coe_unitary + theorem CStarRing.norm_coe_unitary_mul + theorem CStarRing.norm_mem_unitary_mul + theorem CStarRing.norm_mul_coe_unitary + theorem CStarRing.norm_mul_mem_unitary + theorem CStarRing.norm_of_mem_unitary + theorem CStarRing.norm_one + theorem CStarRing.norm_self_mul_star + theorem CStarRing.norm_star_mul_self' + theorem CStarRing.norm_star_mul_self + theorem CStarRing.norm_unitary_smul + theorem CStarRing.star_mul_self_eq_zero_iff + theorem CStarRing.star_mul_self_ne_zero_iff - theorem CstarRing.mul_star_self_eq_zero_iff - theorem CstarRing.mul_star_self_ne_zero_iff - theorem CstarRing.nnnorm_self_mul_star - theorem CstarRing.nnnorm_star_mul_self - theorem CstarRing.norm_coe_unitary - theorem CstarRing.norm_coe_unitary_mul - theorem CstarRing.norm_mem_unitary_mul - theorem CstarRing.norm_mul_coe_unitary - theorem CstarRing.norm_mul_mem_unitary - theorem CstarRing.norm_of_mem_unitary - theorem CstarRing.norm_one - theorem CstarRing.norm_self_mul_star - theorem CstarRing.norm_star_mul_self' - theorem CstarRing.norm_star_mul_self - theorem CstarRing.norm_unitary_smul - theorem CstarRing.star_mul_self_eq_zero_iff - theorem CstarRing.star_mul_self_ne_zero_iff +/- theorem IsSelfAdjoint.nnnorm_pow_two_pow +/- theorem selfAdjoint.nnnorm_pow_two_pow Renamed Mathlib/Analysis/CstarAlgebra/ContinuousFunctionalCalculus/Basic.lean to Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Basic.lean Renamed Mathlib/Analysis/CstarAlgebra/ContinuousFunctionalCalculus/Instances.lean to Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Instances.lean + def CStarRing.spectralOrder + theorem CStarRing.spectralOrderedRing - def CstarRing.spectralOrder - theorem CstarRing.spectralOrderedRing Renamed Mathlib/Analysis/CstarAlgebra/ContinuousFunctionalCalculus/NonUnital.lean to Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/NonUnital.lean Renamed Mathlib/Analysis/CstarAlgebra/ContinuousFunctionalCalculus/Order.lean to Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Order.lean + theorem CStarRing.conjugate_le_norm_smul' + theorem CStarRing.conjugate_le_norm_smul + theorem CStarRing.mul_star_le_algebraMap_norm_sq + theorem CStarRing.nnnorm_mem_spectrum_of_nonneg + theorem CStarRing.norm_le_norm_of_nonneg_of_le + theorem CStarRing.norm_mem_spectrum_of_nonneg + theorem CStarRing.norm_or_neg_norm_mem_spectrum + theorem CStarRing.star_mul_le_algebraMap_norm_sq - theorem CstarRing.conjugate_le_norm_smul' - theorem CstarRing.conjugate_le_norm_smul - theorem CstarRing.mul_star_le_algebraMap_norm_sq - theorem CstarRing.nnnorm_mem_spectrum_of_nonneg - theorem CstarRing.norm_le_norm_of_nonneg_of_le - theorem CstarRing.norm_mem_spectrum_of_nonneg - theorem CstarRing.norm_or_neg_norm_mem_spectrum - theorem CstarRing.star_mul_le_algebraMap_norm_sq Renamed Mathlib/Analysis/CstarAlgebra/ContinuousFunctionalCalculus/Restrict.lean to Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Restrict.lean Renamed Mathlib/Analysis/CstarAlgebra/ContinuousFunctionalCalculus/Unique.lean to Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Unique.lean Renamed Mathlib/Analysis/CstarAlgebra/ContinuousFunctionalCalculus/Unital.lean to Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Unital.lean Renamed Mathlib/Analysis/CstarAlgebra/ContinuousFunctionalCalculus/Unitary.lean to Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Unitary.lean Renamed Mathlib/Analysis/CstarAlgebra/Exponential.lean to Mathlib/Analysis/CStarAlgebra/Exponential.lean Renamed Mathlib/Analysis/CstarAlgebra/GelfandDuality.lean to Mathlib/Analysis/CStarAlgebra/GelfandDuality.lean Renamed Mathlib/Analysis/CstarAlgebra/Matrix.lean to Mathlib/Analysis/CStarAlgebra/Matrix.lean + theorem Matrix.instCStarRing - theorem Matrix.instCstarRing Renamed Mathlib/Analysis/CstarAlgebra/Module.lean to Mathlib/Analysis/CStarAlgebra/Module.lean + theorem CStarModule.continuous_inner + theorem CStarModule.innerSL_apply + theorem CStarModule.inner_add_left + theorem CStarModule.inner_mul_inner_swap_le + theorem CStarModule.inner_neg_left + theorem CStarModule.inner_neg_right + theorem CStarModule.inner_op_smul_left + theorem CStarModule.inner_self_eq_norm_sq + theorem CStarModule.inner_smul_left_complex + theorem CStarModule.inner_smul_left_real + theorem CStarModule.inner_smul_right_real + theorem CStarModule.inner_sub_left + theorem CStarModule.inner_sub_right + theorem CStarModule.inner_sum_left + theorem CStarModule.inner_sum_right + theorem CStarModule.inner_zero_left + theorem CStarModule.inner_zero_right + def CStarModule.innerₛₗ + theorem CStarModule.innerₛₗ_apply + theorem CStarModule.isSelfAdjoint_inner_self + theorem CStarModule.norm_eq_csSup + theorem CStarModule.norm_inner_le + theorem CStarModule.norm_sq_eq + theorem CStarModule.norm_zero_iff + theorem CStarModule.normedSpaceCore - theorem CstarModule.continuous_inner - theorem CstarModule.innerSL_apply - theorem CstarModule.inner_add_left - theorem CstarModule.inner_mul_inner_swap_le - theorem CstarModule.inner_neg_left - theorem CstarModule.inner_neg_right - theorem CstarModule.inner_op_smul_left - theorem CstarModule.inner_self_eq_norm_sq - theorem CstarModule.inner_smul_left_complex - theorem CstarModule.inner_smul_left_real - theorem CstarModule.inner_smul_right_real - theorem CstarModule.inner_sub_left - theorem CstarModule.inner_sub_right - theorem CstarModule.inner_sum_left - theorem CstarModule.inner_sum_right - theorem CstarModule.inner_zero_left - theorem CstarModule.inner_zero_right - def CstarModule.innerₛₗ - theorem CstarModule.innerₛₗ_apply - theorem CstarModule.isSelfAdjoint_inner_self - theorem CstarModule.norm_eq_csSup - theorem CstarModule.norm_inner_le - theorem CstarModule.norm_sq_eq - theorem CstarModule.norm_zero_iff - theorem CstarModule.normedSpaceCore Renamed Mathlib/Analysis/CstarAlgebra/Multiplier.lean to Mathlib/Analysis/CStarAlgebra/Multiplier.lean Renamed Mathlib/Analysis/CstarAlgebra/Spectrum.lean to Mathlib/Analysis/CStarAlgebra/Spectrum.lean Renamed Mathlib/Analysis/CstarAlgebra/Unitization.lean to Mathlib/Analysis/CStarAlgebra/Unitization.lean Modified Mathlib/Analysis/InnerProductSpace/Adjoint.lean Modified Mathlib/Analysis/Matrix.lean Modified Mathlib/Analysis/Normed/Lp/lpSpace.lean Modified Mathlib/Analysis/NormedSpace/OperatorNorm/Mul.lean Modified Mathlib/Analysis/Quaternion.lean Modified Mathlib/Analysis/RCLike/Basic.lean Modified Mathlib/Analysis/SpecialFunctions/ContinuousFunctionalCalculus/ExpLog.lean Modified Mathlib/Analysis/VonNeumannAlgebra/Basic.lean Modified Mathlib/LinearAlgebra/Matrix/HermitianFunctionalCalculus.lean Modified Mathlib/LinearAlgebra/Matrix/Spectrum.lean Modified Mathlib/MeasureTheory/Function/ContinuousMapDense.lean Modified Mathlib/Topology/ContinuousFunction/Bounded.lean Modified Mathlib/Topology/ContinuousFunction/Compact.lean Modified Mathlib/Topology/ContinuousFunction/ZeroAtInfty.lean Modified scripts/noshake.json Modified test/TCSynth.lean 2024-08-06 02:26:11 89f95ee chore(Perm/List): `List.get` -> `getElem` (#15477) Deprecate `List.get` lemmas, use `getElem` versions in proofs. ESTIMATED CHANGES Modified Mathlib/GroupTheory/Perm/Cycle/Basic.lean Modified Mathlib/GroupTheory/Perm/Cycle/Concrete.lean Modified Mathlib/GroupTheory/Perm/List.lean +/- theorem List.formPerm_apply_getElem +/- theorem List.formPerm_pow_apply_getElem 2024-08-05 22:14:34 604cb36 feat(Analysis/SpecialFunctions/Exp): cexp is uniformlyContinuousOn (#15379) We show that the complex exponential is uniformly continuous on left half planes. ESTIMATED CHANGES Modified Mathlib/Analysis/SpecialFunctions/Exp.lean + theorem UniformlyContinuousOn.cexp 2024-08-05 21:07:09 95197cb chore: generalize tower instances for Module.End (#14991) This now matches the generality of `Module.End.instAlgebra`, meaning that the generality is available to `M/R/S` not just `A/R/S`. [Context](https://leanprover.zulipchat.com/#narrow/stream/217875-Is-there-code-for-X.3F/topic/Quadratic.20forms.20with.20values.20in.20a.20larger.20ring/near/452999484) on Zulip. ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/Equiv.lean Modified Mathlib/Algebra/Module/Equiv/Basic.lean Modified Mathlib/Algebra/Module/LinearMap/End.lean 2024-08-05 20:15:14 2d01c49 feat(Combinatorics/SimpleGraph): distance of vertices in a subgraph (#15464) ESTIMATED CHANGES Modified Mathlib/Combinatorics/SimpleGraph/Metric.lean + theorem SimpleGraph.dist_le_subgraph_dist + theorem SimpleGraph.edist_le_subgraph_edist 2024-08-05 16:52:46 124f27e refactor(Order/Minimal): change minimality to a predicate (#14721) This PR changes the notion of minimality from being a set with an unbundled relation `r` (i.e. having type signature `minimals (r : α → α → Prop) (s : Set α) : Set α`) to being a predicate with a bundled order relation in a typeclass: `Minimal [LE α] (P : α → Prop) : α → Prop`. It also does the same for maximality. This is hopefully an improvement, for a few reasons : * ergonomic API with dot notation (eg `Minimal.eq_of_le`, `Minimal.not_lt`), * no need to specify a particular relation explicitly (no use of `minimals`/`maximals` for a relation that was not defeq to `LE.le` currently appears anywhere in mathlib), * the potential in future to unify ad hoc notions of min/maximality appearing in various locations in mathlib (eg `zorn_preorder`, `Sylow.is_maximal'` to name a couple of random examples). Since this change removes the definitions `minimals` and `maximals` and all their API, it required a total overhaul of the contents of `Order.Minimal`, and necessarily required updating all uses of `maximals`/`minimals` elsewhere. There were not all too many of these; this PR is designed to be the smallest it could be while making this change. The changes required outside `Order.Minimal` were: - redefinition of `Ideal.minimalPrimes` in `RingTheory/Ideal/MinimalPrime` to use `Minimal` rather than `minimals`, with the necessary minor changes to proofs that used the old definition, including in `AlgebraicGeometry/PrimeSpectrum/Basic`. - redefinition of `irreducibleComponents` in `Topology/Irreducible` to use `Minimal` rather than `minimals`, with necessary minor changes to proofs that used the old definition. - updating of the maximality used in the definition of a matroid in `Data/Matroid/Basic` from `maximals` to `Maximal`, with the necessary changes to everywhere in `Data/Matroid/*` that a matroid was specified using the definition directly. - the necessary changes to two lemmas in `Data/Finset/Lattice` that used `minimals`/`maximals` in the statements. I attempted to clean up the API in `Order.Minimal` to work smoothly with the new definitions, but numerous judgment calls were needed; I removed a few lemmas about `maximals/minimals` that were used nowhere, and seemed unlikely to be useful with the new definition. Comment is welcome! ESTIMATED CHANGES Modified Mathlib/AlgebraicGeometry/PrimeSpectrum/Basic.lean Modified Mathlib/Data/Finset/Lattice.lean + theorem Finset.maximal_iff_forall_insert - theorem Finset.mem_maximals_iff_forall_insert - theorem Finset.mem_minimals_iff_forall_erase + theorem Finset.minimal_iff_forall_diff_singleton Modified Mathlib/Data/Matroid/Basic.lean +/- theorem Matroid.Indep.base_of_maximal + theorem Matroid.Indep.exists_insert_of_not_maximal - theorem Matroid.Indep.exists_insert_of_not_mem_maximals + theorem Matroid.base_compl_iff_maximal_disjoint_base - theorem Matroid.base_compl_iff_mem_maximals_disjoint_base +/- theorem Matroid.base_iff_maximal_indep + theorem Matroid.basis_iff_maximal - theorem Matroid.basis_iff_mem_maximals - theorem Matroid.basis_iff_mem_maximals_Prop - theorem Matroid.setOf_base_eq_maximals_setOf_indep - theorem Matroid.setOf_basis_eq Modified Mathlib/Data/Matroid/Constructions.lean +/- theorem Matroid.uniqueBaseOn_basis_iff +/- theorem Matroid.uniqueBaseOn_inter_basis Modified Mathlib/Data/Matroid/Dual.lean Modified Mathlib/Data/Matroid/IndepAxioms.lean Modified Mathlib/Data/Matroid/Map.lean Modified Mathlib/Data/Matroid/Restrict.lean +/- theorem Matroid.Basis.restrict_base Modified Mathlib/Data/Matroid/Sum.lean Modified Mathlib/Order/Minimal.lean + theorem IsAntichain.eq_setOf_maximal + theorem IsAntichain.eq_setOf_minimal - theorem IsAntichain.max_maximals - theorem IsAntichain.max_minimals + theorem IsAntichain.maximal_mem_iff + theorem IsAntichain.maximal_mem_lowerClosure_iff_mem - theorem IsAntichain.maximals_eq - theorem IsAntichain.maximals_lowerClosure + theorem IsAntichain.minimal_mem_iff + theorem IsAntichain.minimal_mem_upperClosure_iff_mem - theorem IsAntichain.minimals_eq - theorem IsAntichain.minimals_upperClosure + theorem IsGreatest.maximal + theorem IsGreatest.maximal_iff - theorem IsGreatest.maximals_eq - theorem IsGreatest.mem_maximals - theorem IsLeast.mem_minimals + theorem IsLeast.minimal + theorem IsLeast.minimal_iff - theorem IsLeast.minimals_eq + theorem Maximal.and_left + theorem Maximal.and_right + theorem Maximal.eq_of_ge + theorem Maximal.eq_of_le + theorem Maximal.eq_of_subset + theorem Maximal.eq_of_superset + theorem Maximal.le_of_ge + theorem Maximal.mem_of_prop_insert + theorem Maximal.mono + theorem Maximal.not_gt + theorem Maximal.not_prop_of_gt + theorem Maximal.not_prop_of_ssuperset + theorem Maximal.not_ssuperset + theorem Maximal.or + theorem Maximal.prop + def Maximal + theorem Minimal.and_left + theorem Minimal.and_right + theorem Minimal.eq_of_ge + theorem Minimal.eq_of_le + theorem Minimal.eq_of_subset + theorem Minimal.eq_of_superset + theorem Minimal.le_of_le + theorem Minimal.mono + theorem Minimal.not_lt + theorem Minimal.not_mem_of_prop_diff_singleton + theorem Minimal.not_prop_of_lt + theorem Minimal.not_prop_of_ssubset + theorem Minimal.not_ssubset + theorem Minimal.or + theorem Minimal.prop + def Minimal + theorem OrderEmbedding.image_setOf_maximal + theorem OrderEmbedding.image_setOf_minimal + theorem OrderEmbedding.inter_preimage_setOf_maximal_eq_of_subset + theorem OrderEmbedding.inter_preimage_setOf_minimal_eq_of_subset + theorem OrderEmbedding.maximal_apply_iff + theorem OrderEmbedding.maximal_apply_mem_inter_range_iff + theorem OrderEmbedding.maximal_mem_image + theorem OrderEmbedding.maximal_mem_image_iff + theorem OrderEmbedding.minimal_apply_mem_iff + theorem OrderEmbedding.minimal_apply_mem_inter_range_iff + theorem OrderEmbedding.minimal_mem_image + theorem OrderEmbedding.minimal_mem_image_iff + theorem OrderIso.image_setOf_maximal + theorem OrderIso.image_setOf_minimal - def OrderIso.mapMaximals - def OrderIso.mapMinimals + def OrderIso.mapSetOfMaximal + def OrderIso.mapSetOfMinimal + theorem OrderIso.map_maximal_mem - theorem OrderIso.map_mem_maximals + theorem OrderIso.map_minimal_mem - def OrderIso.maximalsIsoMinimals - def OrderIso.minimalsIsoMaximals + def OrderIso.setOfMaximalIsoSetOfMinimal + def OrderIso.setOfMinimalIsoSetOfMaximal - theorem RelEmbedding.image_maximals_eq - theorem RelEmbedding.image_minimals_eq - theorem RelEmbedding.inter_preimage_maximals_eq - theorem RelEmbedding.inter_preimage_maximals_eq_of_subset - theorem RelEmbedding.inter_preimage_minimals_eq - theorem RelEmbedding.inter_preimage_minimals_eq_of_subset - theorem RelEmbedding.maximals_preimage_eq - theorem RelEmbedding.minimals_preimage_eq - theorem RelIso.maximals_preimage_eq - theorem RelIso.minimals_preimage_eq + theorem Set.Subsingleton.maximal_mem_iff - theorem Set.Subsingleton.maximals_eq + theorem Set.Subsingleton.minimal_mem_iff - theorem Set.Subsingleton.minimals_eq + theorem Set.exists_diff_singleton_of_not_minimal + theorem Set.exists_insert_of_not_maximal + theorem Set.maximal_iff_forall_insert + theorem Set.maximal_iff_forall_ssuperset - theorem Set.mem_maximals_iff_forall_insert - theorem Set.mem_minimals_iff_forall_diff_singleton + theorem Set.minimal_iff_forall_diff_singleton + theorem Set.minimal_iff_forall_ssubset - theorem eq_of_mem_maximals - theorem eq_of_mem_minimals + theorem image_antitone_setOf_maximal + theorem image_antitone_setOf_maximal_mem + theorem image_antitone_setOf_minimal + theorem image_antitone_setOf_minimal_mem - theorem image_maximals_of_rel_iff_rel - theorem image_maximals_univ - theorem image_minimals_of_rel_iff_rel - theorem image_minimals_univ + theorem image_monotone_setOf_maximal + theorem image_monotone_setOf_maximal_mem + theorem image_monotone_setOf_minimal + theorem image_monotone_setOf_minimal_mem - theorem inter_maximals_preimage_inter_eq_of_rel_iff_rel_on - theorem inter_maximals_subset - theorem inter_minimals_preimage_inter_eq_of_rel_iff_rel_on - theorem inter_minimals_subset - theorem inter_preimage_maximals_eq_of_rel_iff_rel_on_of_subset - theorem inter_preimage_minimals_eq_of_rel_iff_rel_on_of_subset - theorem map_mem_maximals - theorem map_mem_maximals_iff - theorem map_mem_minimals - theorem map_mem_minimals_iff + theorem maximal_and_iff_left_of_imp + theorem maximal_and_iff_right_of_imp + theorem maximal_eq_iff + theorem maximal_false + theorem maximal_ge_iff + theorem maximal_gt_iff + theorem maximal_iff + theorem maximal_iff_eq + theorem maximal_iff_forall_gt + theorem maximal_iff_isMax + theorem maximal_iff_maximal_of_imp_of_forall + theorem maximal_le_iff + theorem maximal_maximal + theorem maximal_mem_Icc + theorem maximal_mem_Ioc + theorem maximal_mem_iff + theorem maximal_mem_image_antitone + theorem maximal_mem_image_antitone_iff + theorem maximal_mem_image_monotone + theorem maximal_mem_image_monotone_iff + theorem maximal_subset_iff' + theorem maximal_subset_iff + theorem maximal_subtype + theorem maximal_toDual + theorem maximal_true + theorem maximal_true_subtype - def maximals - theorem maximals_Icc - theorem maximals_Iic - theorem maximals_Ioc - theorem maximals_antichain - theorem maximals_empty - theorem maximals_eq_maximals_of_subset_of_forall - theorem maximals_eq_minimals - theorem maximals_idem - theorem maximals_inter_subset - theorem maximals_mono - theorem maximals_of_symm - theorem maximals_singleton - theorem maximals_subset - theorem maximals_swap - theorem maximals_union - theorem mem_maximals_iff - theorem mem_maximals_iff_forall_lt_not_mem' - theorem mem_maximals_iff_forall_lt_not_mem - theorem mem_maximals_iff_forall_ssubset_not_mem - theorem mem_maximals_setOf_iff - theorem mem_minimals_iff - theorem mem_minimals_iff_forall_lt_not_mem' - theorem mem_minimals_iff_forall_lt_not_mem - theorem mem_minimals_iff_forall_ssubset_not_mem - theorem mem_minimals_setOf_iff + theorem minimal_and_iff_left_of_imp + theorem minimal_and_iff_right_of_imp + theorem minimal_eq_iff + theorem minimal_false + theorem minimal_ge_iff + theorem minimal_iff + theorem minimal_iff_eq + theorem minimal_iff_forall_lt + theorem minimal_iff_isMin + theorem minimal_iff_minimal_of_imp_of_forall + theorem minimal_le_iff + theorem minimal_lt_iff + theorem minimal_mem_Icc + theorem minimal_mem_Ico + theorem minimal_mem_iff + theorem minimal_mem_image_antitone + theorem minimal_mem_image_antitone_iff + theorem minimal_mem_image_monotone + theorem minimal_mem_image_monotone_iff + theorem minimal_minimal + theorem minimal_subset_iff' + theorem minimal_subset_iff + theorem minimal_subtype + theorem minimal_toDual + theorem minimal_true + theorem minimal_true_subtype - def minimals - theorem minimals_Icc - theorem minimals_Ici - theorem minimals_Ico - theorem minimals_antichain - theorem minimals_empty - theorem minimals_eq_minimals_of_subset_of_forall - theorem minimals_idem - theorem minimals_inter_subset - theorem minimals_mono - theorem minimals_of_symm - theorem minimals_singleton - theorem minimals_subset - theorem minimals_swap - theorem minimals_union + theorem not_maximal_iff + theorem not_maximal_iff_exists_gt + theorem not_maximal_subset_iff + theorem not_minimal_iff + theorem not_minimal_iff_exists_lt + theorem not_minimal_subset_iff + theorem setOf_maximal_antichain + theorem setOf_maximal_subset + theorem setOf_minimal_antichain + theorem setOf_minimal_subset Modified Mathlib/RingTheory/Ideal/MinimalPrime.lean +/- theorem minimalPrimes_eq_minimals Modified Mathlib/Topology/Irreducible.lean 2024-08-05 16:02:55 d167cb0 feat: add `mul_self_tsub_mul_self` (#15494) ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Ring/Canonical.lean + theorem mul_self_tsub_mul_self + theorem mul_self_tsub_one + theorem sq_tsub_sq 2024-08-05 13:16:25 fcfce35 chore: remove some open Classical, part 3 (#15417) See #15371. ESTIMATED CHANGES Modified Mathlib/Algebra/Order/CompleteField.lean Modified Mathlib/Analysis/Analytic/Composition.lean Modified Mathlib/Analysis/Analytic/Inverse.lean Modified Mathlib/Analysis/Analytic/Linear.lean Modified Mathlib/Analysis/Analytic/RadiusLiminf.lean Modified Mathlib/Analysis/BoxIntegral/Basic.lean +/- theorem BoxIntegral.integral_neg Modified Mathlib/Analysis/BoxIntegral/Box/SubboxInduction.lean Modified Mathlib/Analysis/BoxIntegral/DivergenceTheorem.lean Modified Mathlib/Analysis/BoxIntegral/Integrability.lean Modified Mathlib/Analysis/BoxIntegral/Partition/Measure.lean Modified Mathlib/Analysis/Calculus/ContDiff/Basic.lean Modified Mathlib/Analysis/Calculus/ContDiff/Bounds.lean Modified Mathlib/Analysis/Calculus/Deriv/Basic.lean Modified Mathlib/Analysis/Calculus/Deriv/Mul.lean Modified Mathlib/Analysis/Calculus/Deriv/Polynomial.lean Modified Mathlib/Analysis/Calculus/Dslope.lean +/- theorem dslope_of_ne +/- theorem dslope_same Modified Mathlib/Analysis/Calculus/InverseFunctionTheorem/ApproximatesLinearOn.lean Modified Mathlib/Analysis/Calculus/InverseFunctionTheorem/FDeriv.lean Modified Mathlib/Analysis/Calculus/IteratedDeriv/Defs.lean Modified Mathlib/Analysis/Calculus/LocalExtr/Basic.lean +/- theorem IsLocalMax.deriv_eq_zero +/- theorem IsLocalMax.fderiv_eq_zero +/- theorem IsLocalMin.deriv_eq_zero +/- theorem IsLocalMin.fderiv_eq_zero Modified Mathlib/Analysis/Calculus/LocalExtr/LineDeriv.lean Modified Mathlib/Analysis/Calculus/MeanValue.lean Modified Mathlib/Analysis/Complex/UpperHalfPlane/Basic.lean Modified Mathlib/Analysis/Convex/Deriv.lean Modified Mathlib/Analysis/InnerProductSpace/Calculus.lean Modified Mathlib/Analysis/InnerProductSpace/l2Space.lean +/- theorem HilbertBasis.finite_spans_dense +/- theorem Orthonormal.linearIsometryEquiv_symm_apply_single_one +/- theorem lp.inner_single_left +/- theorem lp.inner_single_right Modified Mathlib/Analysis/Normed/Module/FiniteDimension.lean Modified Mathlib/Analysis/NormedSpace/OperatorNorm/Basic.lean Modified Mathlib/Analysis/NormedSpace/OperatorNorm/Bilinear.lean Modified Mathlib/Analysis/NormedSpace/OperatorNorm/Completeness.lean Modified Mathlib/Analysis/NormedSpace/OperatorNorm/Mul.lean Modified Mathlib/Analysis/NormedSpace/OperatorNorm/NormedSpace.lean Modified Mathlib/Analysis/ODE/Gronwall.lean Modified Mathlib/Analysis/SpecialFunctions/Bernstein.lean Modified Mathlib/Analysis/SpecialFunctions/Exp.lean Modified Mathlib/Analysis/SpecialFunctions/ExpDeriv.lean Modified Mathlib/Analysis/SpecialFunctions/Pow/Deriv.lean Modified Mathlib/Analysis/SpecialFunctions/SmoothTransition.lean Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Deriv.lean Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/InverseDeriv.lean Modified Mathlib/CategoryTheory/Groupoid/FreeGroupoid.lean Modified Mathlib/Data/Complex/Exponential.lean Modified Mathlib/FieldTheory/AbelRuffini.lean Modified Mathlib/FieldTheory/Adjoin.lean Modified Mathlib/FieldTheory/Finite/Polynomial.lean Modified Mathlib/FieldTheory/IsAlgClosed/AlgebraicClosure.lean Modified Mathlib/FieldTheory/IsAlgClosed/Basic.lean Modified Mathlib/FieldTheory/Minpoly/IsIntegrallyClosed.lean Modified Mathlib/FieldTheory/PrimitiveElement.lean Modified Mathlib/FieldTheory/SeparableClosure.lean Modified Mathlib/FieldTheory/SeparableDegree.lean +/- theorem Polynomial.natSepDegree_eq_of_isAlgClosed +/- theorem Polynomial.natSepDegree_eq_of_splits Modified Mathlib/FieldTheory/SplittingField/Construction.lean Modified Mathlib/FieldTheory/SplittingField/IsSplittingField.lean +/- theorem Polynomial.IsSplittingField.finiteDimensional Modified Mathlib/Geometry/Manifold/BumpFunction.lean Modified Mathlib/LinearAlgebra/TensorProduct/Subalgebra.lean Modified Mathlib/LinearAlgebra/TensorProduct/Vanishing.lean Modified Mathlib/MeasureTheory/Constructions/BorelSpace/Real.lean Modified Mathlib/MeasureTheory/Function/UnifTight.lean Modified Mathlib/RingTheory/DedekindDomain/FiniteAdeleRing.lean Modified Mathlib/RingTheory/MvPolynomial/Localization.lean 2024-08-05 12:37:02 38886f7 chore(GroupTheory/Coset): deprecate some lemma (#15482) They were different in mathlib3 because of coercions. ESTIMATED CHANGES Modified Mathlib/Algebra/Order/ToIntervalMod.lean Modified Mathlib/Algebra/Pointwise/Stabilizer.lean Modified Mathlib/Analysis/Fourier/AddCircle.lean Modified Mathlib/Analysis/SpecialFunctions/Complex/Circle.lean Modified Mathlib/Data/ZMod/Quotient.lean Modified Mathlib/GroupTheory/Commensurable.lean Modified Mathlib/GroupTheory/Complement.lean Modified Mathlib/GroupTheory/Coset.lean - theorem QuotientGroup.eq' - theorem QuotientGroup.induction_on' Modified Mathlib/GroupTheory/GroupAction/Quotient.lean Modified Mathlib/GroupTheory/QuotientGroup.lean Modified Mathlib/GroupTheory/Torsion.lean Modified Mathlib/LinearAlgebra/Alternating/DomCoprod.lean Modified Mathlib/NumberTheory/LSeries/HurwitzZetaEven.lean Modified Mathlib/NumberTheory/LSeries/HurwitzZetaOdd.lean Modified Mathlib/Topology/Instances/AddCircle.lean 2024-08-05 11:02:59 5ff8d60 chore: update lean4checker version (#15517) ESTIMATED CHANGES Modified .github/workflows/lean4checker.yml 2024-08-05 10:13:01 4d93d88 refactor: use consistent names for forgetful smul structures (#15500) Moves: - `AddCommMonoid.natModule` -> `AddCommMonoid.toNatModule` - `AddCommGroup.intModule` -> `AddCommGroup.toIntModule` - `algebraNat` -> `Semiring.toNatAlgebra` - `algebraInt` -> `Ring.toIntAlgebra` - `algebraRat` -> `DivisionRing.toRatAlgebra` - `AddCommGroup.natModule.unique` -> `AddCommMonoid.uniqueNatModule` - `AddCommGroup.intModule.unique` -> `AddCommGroup.uniqueIntModule` The premise here is that the conversion from `AddCommGroup` to `AddCommMonoid` is not really any different from converting from `AddCommGroup` to `Module ℤ`; and so both should be named with the `to*` naming convention. Tihs also brings the naming of the `Module` and `Algebra` instances into alignment. I chose `toNatModule` instead of `toModuleNat` to match the prose, ℕ-module. This fits a common naming convention if you view `Module` as infix, as we do with various other lean functions without actual infix notation. ESTIMATED CHANGES Modified Counterexamples/Pseudoelement.lean Modified Mathlib/Algebra/Algebra/Basic.lean Modified Mathlib/Algebra/Algebra/Rat.lean Modified Mathlib/Algebra/Category/Grp/ZModuleEquivalence.lean Modified Mathlib/Algebra/CharP/Algebra.lean Modified Mathlib/Algebra/FreeAlgebra.lean Modified Mathlib/Algebra/Module/Defs.lean - def AddCommGroup.intModule.unique + def AddCommGroup.uniqueIntModule - def AddCommMonoid.natModule.unique + def AddCommMonoid.uniqueNatModule Modified Mathlib/Algebra/Module/LinearMap/Defs.lean Modified Mathlib/Data/ZMod/Module.lean Modified Mathlib/LinearAlgebra/CliffordAlgebra/Basic.lean Modified Mathlib/LinearAlgebra/TensorAlgebra/Basic.lean Modified Mathlib/LinearAlgebra/TensorProduct/Basic.lean Modified Mathlib/NumberTheory/Cyclotomic/Basic.lean Modified Mathlib/NumberTheory/NumberField/Basic.lean Modified Mathlib/RingTheory/GradedAlgebra/Basic.lean Modified Mathlib/RingTheory/OreLocalization/Ring.lean Modified Mathlib/RingTheory/TensorProduct/Basic.lean Modified Mathlib/Topology/Algebra/Algebra/Rat.lean Modified test/instance_diamonds.lean Modified test/instance_diamonds/FieldTheory/IsAlgClosed/AlgebraicClosure.lean Modified test/instance_diamonds/FieldTheory/SplittingField/Construction.lean 2024-08-05 08:52:12 5025874 chore: move toolchain to v4.11.0-rc1 (#15513) ESTIMATED CHANGES Modified Archive/MiuLanguage/DecisionNec.lean Modified Archive/MiuLanguage/DecisionSuf.lean Modified Archive/Wiedijk100Theorems/BallotProblem.lean Modified Archive/Wiedijk100Theorems/Partition.lean Modified LongestPole/Main.lean Modified Mathlib.lean Modified Mathlib/Algebra/Algebra/Equiv.lean Modified Mathlib/Algebra/Algebra/Hom.lean - theorem AlgHom.ext_iff Modified Mathlib/Algebra/Algebra/NonUnitalHom.lean - theorem NonUnitalAlgHom.ext_iff Modified Mathlib/Algebra/BigOperators/Fin.lean Modified Mathlib/Algebra/BigOperators/Group/List.lean - theorem List.length_join Modified Mathlib/Algebra/Category/BialgebraCat/Basic.lean Modified Mathlib/Algebra/Category/CoalgebraCat/Basic.lean Modified Mathlib/Algebra/Category/HopfAlgebraCat/Basic.lean Modified Mathlib/Algebra/Category/ModuleCat/Basic.lean Modified Mathlib/Algebra/Category/ModuleCat/Sheaf.lean Modified Mathlib/Algebra/CharP/Defs.lean Modified Mathlib/Algebra/CubicDiscriminant.lean Modified Mathlib/Algebra/DirectSum/Module.lean Modified Mathlib/Algebra/Free.lean Modified Mathlib/Algebra/Group/Action/Defs.lean Modified Mathlib/Algebra/Group/Equiv/Basic.lean - theorem MulEquiv.ext_iff Modified Mathlib/Algebra/Group/Units.lean Modified Mathlib/Algebra/GroupWithZero/Units/Basic.lean Modified Mathlib/Algebra/Homology/DerivedCategory/Ext.lean Modified Mathlib/Algebra/Homology/HomotopyCategory/HomComplex.lean Modified Mathlib/Algebra/Homology/ShortComplex/Basic.lean Modified Mathlib/Algebra/Lie/Basic.lean - theorem LieHom.ext_iff - theorem LieModuleHom.ext_iff Modified Mathlib/Algebra/Lie/DirectSum.lean Modified Mathlib/Algebra/Lie/Weights/Basic.lean + theorem LieModule.Weight.ext_iff' Modified Mathlib/Algebra/Module/Defs.lean Modified Mathlib/Algebra/Module/Equiv/Defs.lean - theorem LinearEquiv.ext_iff Modified Mathlib/Algebra/Module/Injective.lean Modified Mathlib/Algebra/Module/LinearMap/Defs.lean - theorem LinearMap.ext_ring_iff Modified Mathlib/Algebra/MvPolynomial/Basic.lean Modified Mathlib/Algebra/Order/BigOperators/Group/List.lean Modified Mathlib/Algebra/Order/Interval/Basic.lean Modified Mathlib/Algebra/Order/Monoid/Unbundled/Basic.lean Modified Mathlib/Algebra/Quaternion.lean - theorem Quaternion.ext_iff Modified Mathlib/Algebra/Ring/Equiv.lean Modified Mathlib/Algebra/Ring/Ext.lean - theorem CommRing.ext_iff - theorem CommSemiring.ext_iff - theorem Distrib.ext_iff - theorem NonAssocRing.ext_iff - theorem NonAssocSemiring.ext_iff - theorem NonUnitalCommRing.ext_iff - theorem NonUnitalCommSemiring.ext_iff - theorem NonUnitalNonAssocCommRing.ext_iff - theorem NonUnitalNonAssocCommSemiring.ext_iff - theorem NonUnitalNonAssocRing.ext_iff - theorem NonUnitalNonAssocSemiring.ext_iff - theorem NonUnitalRing.ext_iff - theorem NonUnitalSemiring.ext_iff - theorem Ring.ext_iff - theorem Semiring.ext_iff Modified Mathlib/Algebra/Ring/Hom/Defs.lean Modified Mathlib/Algebra/Ring/Subring/Basic.lean Modified Mathlib/Algebra/Star/StarAlgHom.lean - theorem StarAlgEquiv.ext_iff Modified Mathlib/Algebra/Star/StarRingHom.lean - theorem StarRingEquiv.ext_iff Modified Mathlib/AlgebraicGeometry/Limits.lean Modified Mathlib/AlgebraicGeometry/PrimeSpectrum/Basic.lean Modified Mathlib/AlgebraicGeometry/ProjectiveSpectrum/Scheme.lean Modified Mathlib/AlgebraicGeometry/Scheme.lean Modified Mathlib/AlgebraicGeometry/Spec.lean Modified Mathlib/AlgebraicTopology/FundamentalGroupoid/InducedMaps.lean Modified Mathlib/AlgebraicTopology/SimplicialObject.lean Modified Mathlib/AlgebraicTopology/SimplicialSet.lean Modified Mathlib/Analysis/Analytic/Composition.lean Modified Mathlib/Analysis/BoxIntegral/Partition/Filter.lean Modified Mathlib/Analysis/Calculus/FormalMultilinearSeries.lean Modified Mathlib/Analysis/Complex/UpperHalfPlane/Basic.lean Modified Mathlib/Analysis/Convex/SimplicialComplex/Basic.lean Modified Mathlib/Analysis/InnerProductSpace/WeakOperatorTopology.lean - theorem ContinuousLinearMapWOT.ext_inner_iff Modified Mathlib/Analysis/Normed/Group/Hom.lean Modified Mathlib/Analysis/Normed/Lp/lpSpace.lean Modified Mathlib/Analysis/Normed/Operator/WeakOperatorTopology.lean Modified Mathlib/Analysis/NormedSpace/ENorm.lean - theorem ENorm.ext_iff Modified Mathlib/CategoryTheory/Bicategory/Coherence.lean Modified Mathlib/CategoryTheory/Bicategory/LocallyDiscrete.lean Modified Mathlib/CategoryTheory/Category/Basic.lean Modified Mathlib/CategoryTheory/Category/Bipointed.lean Modified Mathlib/CategoryTheory/Category/PartialFun.lean Modified Mathlib/CategoryTheory/Category/Pointed.lean Modified Mathlib/CategoryTheory/Category/TwoP.lean Modified Mathlib/CategoryTheory/Comma/Arrow.lean Modified Mathlib/CategoryTheory/Comma/Basic.lean Modified Mathlib/CategoryTheory/Comma/Presheaf.lean Modified Mathlib/CategoryTheory/Comma/StructuredArrow.lean Modified Mathlib/CategoryTheory/ConnectedComponents.lean Modified Mathlib/CategoryTheory/Dialectica/Basic.lean Modified Mathlib/CategoryTheory/DifferentialObject.lean Modified Mathlib/CategoryTheory/Endofunctor/Algebra.lean Modified Mathlib/CategoryTheory/Filtered/Small.lean Modified Mathlib/CategoryTheory/Functor/Category.lean +/- theorem CategoryTheory.NatTrans.ext' Modified Mathlib/CategoryTheory/Galois/Prorepresentability.lean Modified Mathlib/CategoryTheory/GradedObject/Monoidal.lean Modified Mathlib/CategoryTheory/Grothendieck.lean Modified Mathlib/CategoryTheory/GuitartExact/Basic.lean Modified Mathlib/CategoryTheory/Idempotents/Karoubi.lean Modified Mathlib/CategoryTheory/IsConnected.lean Modified Mathlib/CategoryTheory/Limits/Preserves/Ulift.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Biproducts.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Images.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Types.lean Modified Mathlib/CategoryTheory/Limits/Types.lean - theorem CategoryTheory.Limits.Types.limit_ext_iff Modified Mathlib/CategoryTheory/Limits/VanKampen.lean Modified Mathlib/CategoryTheory/Localization/Resolution.lean Modified Mathlib/CategoryTheory/Monad/Algebra.lean +/- theorem CategoryTheory.Comonad.Coalgebra.Hom.ext' +/- theorem CategoryTheory.Monad.Algebra.Hom.ext' Modified Mathlib/CategoryTheory/Monad/Basic.lean Modified Mathlib/CategoryTheory/Monad/Coequalizer.lean Modified Mathlib/CategoryTheory/Monad/Equalizer.lean Modified Mathlib/CategoryTheory/Monoidal/Bimod.lean Modified Mathlib/CategoryTheory/Monoidal/Bimon_.lean Modified Mathlib/CategoryTheory/Monoidal/Braided/Basic.lean Modified Mathlib/CategoryTheory/Monoidal/CommMon_.lean Modified Mathlib/CategoryTheory/Monoidal/Comon_.lean +/- theorem Comon_.ext Modified Mathlib/CategoryTheory/Monoidal/Free/Coherence.lean Modified Mathlib/CategoryTheory/Monoidal/Mod_.lean Modified Mathlib/CategoryTheory/Monoidal/Mon_.lean Modified Mathlib/CategoryTheory/Monoidal/NaturalTransformation.lean Modified Mathlib/CategoryTheory/Monoidal/Rigid/Basic.lean Modified Mathlib/CategoryTheory/MorphismProperty/IsInvertedBy.lean Modified Mathlib/CategoryTheory/PathCategory.lean Modified Mathlib/CategoryTheory/Quotient.lean Modified Mathlib/CategoryTheory/Shift/SingleFunctors.lean +/- theorem CategoryTheory.SingleFunctors.hom_ext Modified Mathlib/CategoryTheory/Sites/ConcreteSheafification.lean Modified Mathlib/CategoryTheory/Sites/CoverLifting.lean Modified Mathlib/CategoryTheory/Sites/Coverage.lean Modified Mathlib/CategoryTheory/Sites/DenseSubsite.lean Modified Mathlib/CategoryTheory/Sites/Limits.lean Modified Mathlib/CategoryTheory/Sites/Pretopology.lean Modified Mathlib/CategoryTheory/Sites/Sheaf.lean Modified Mathlib/CategoryTheory/Sites/SheafOfTypes.lean Modified Mathlib/CategoryTheory/Sites/Sieves.lean Modified Mathlib/CategoryTheory/Sites/Subsheaf.lean Modified Mathlib/CategoryTheory/Sites/Types.lean Modified Mathlib/CategoryTheory/Sites/Whiskering.lean Modified Mathlib/CategoryTheory/Square.lean Modified Mathlib/CategoryTheory/Subobject/Basic.lean Modified Mathlib/CategoryTheory/Thin.lean Modified Mathlib/CategoryTheory/Triangulated/Basic.lean Modified Mathlib/CategoryTheory/Yoneda.lean Modified Mathlib/Combinatorics/Colex.lean Modified Mathlib/Combinatorics/Enumerative/Composition.lean Modified Mathlib/Combinatorics/Enumerative/Partition.lean Modified Mathlib/Combinatorics/Quiver/Basic.lean Modified Mathlib/Combinatorics/SimpleGraph/Acyclic.lean Modified Mathlib/Combinatorics/SimpleGraph/Basic.lean Modified Mathlib/Combinatorics/SimpleGraph/Connectivity/Subgraph.lean Modified Mathlib/Combinatorics/SimpleGraph/Hamiltonian.lean Modified Mathlib/Combinatorics/SimpleGraph/Maps.lean +/- theorem SimpleGraph.comap_id Modified Mathlib/Combinatorics/SimpleGraph/Path.lean +/- theorem SimpleGraph.Walk.IsPath.tail Modified Mathlib/Combinatorics/SimpleGraph/Subgraph.lean Modified Mathlib/Combinatorics/SimpleGraph/Walk.lean - theorem SimpleGraph.Walk.adj_getVert_one + theorem SimpleGraph.Walk.adj_sndOfNotNil + theorem SimpleGraph.Walk.cons_getVert + theorem SimpleGraph.Walk.cons_getVert_succ + theorem SimpleGraph.Walk.cons_sndOfNotNil +/- theorem SimpleGraph.Walk.cons_tail_eq - def SimpleGraph.Walk.drop - theorem SimpleGraph.Walk.getVert_cons - theorem SimpleGraph.Walk.getVert_cons_one - theorem SimpleGraph.Walk.getVert_cons_succ - theorem SimpleGraph.Walk.getVert_copy + theorem SimpleGraph.Walk.getVert_one +/- theorem SimpleGraph.Walk.getVert_tail - theorem SimpleGraph.Walk.not_nil_iff_lt_length + def SimpleGraph.Walk.sndOfNotNil +/- theorem SimpleGraph.Walk.support_tail - theorem SimpleGraph.Walk.support_tail_of_not_nil +/- def SimpleGraph.Walk.tail - theorem SimpleGraph.Walk.tail_cons_eq - theorem SimpleGraph.Walk.tail_cons_nil + theorem SimpleGraph.Walk.tail_support_eq_support_tail Modified Mathlib/Computability/Primrec.lean Modified Mathlib/Control/Traversable/Basic.lean - theorem ApplicativeTransformation.ext_iff Modified Mathlib/Data/Complex/Basic.lean Modified Mathlib/Data/Fin/Tuple/NatAntidiagonal.lean Modified Mathlib/Data/Finmap.lean Modified Mathlib/Data/Finset/Basic.lean +/- theorem Finset.empty_toList Modified Mathlib/Data/Finsupp/Defs.lean Modified Mathlib/Data/Fintype/Fin.lean Modified Mathlib/Data/List/AList.lean Modified Mathlib/Data/List/Basic.lean - theorem List.Sublist.map - theorem List.attach_eq_nil - theorem List.attach_map_coe' - theorem List.attach_map_val' - theorem List.attach_map_val - theorem List.attach_nil + theorem List.filter_subset' - theorem List.filter_subset - theorem List.foldl_join - theorem List.foldr_join - theorem List.get?_pmap - theorem List.getElem?_pmap - theorem List.getElem_eq_getElem? - theorem List.getElem_pmap - theorem List.getLast?_append +/- theorem List.getLast_concat' - theorem List.getLast_cons - theorem List.getLast_pmap - theorem List.getLast_reverse - theorem List.get_pmap - theorem List.head?_append - theorem List.head_mem - theorem List.head_replicate - theorem List.length_attach - theorem List.length_pmap - theorem List.map_pmap - theorem List.mem_attach + theorem List.mem_getLast?_append_of_mem_getLast? + theorem List.mem_head?_append_of_mem_head? - theorem List.mem_pmap - theorem List.pmap_append' - theorem List.pmap_append - theorem List.pmap_congr - theorem List.pmap_eq_map - theorem List.pmap_eq_map_attach - theorem List.pmap_eq_nil - theorem List.pmap_map - theorem List.reverse_eq_iff - theorem List.sublist_replicate_iff - theorem List.takeWhile_cons_of_neg - theorem List.takeWhile_cons_of_pos Modified Mathlib/Data/List/Chain.lean Modified Mathlib/Data/List/Count.lean - theorem List.countP_attach - theorem List.count_attach - theorem List.length_filter_lt_length_iff_exists Modified Mathlib/Data/List/Cycle.lean Modified Mathlib/Data/List/Destutter.lean Modified Mathlib/Data/List/DropRight.lean Modified Mathlib/Data/List/EditDistance/Defs.lean Modified Mathlib/Data/List/Enum.lean - theorem List.enumFrom_append - theorem List.enumFrom_cons' - theorem List.enumFrom_eq_nil - theorem List.enumFrom_map - theorem List.enumFrom_map_snd - theorem List.enumFrom_singleton - theorem List.enum_append - theorem List.enum_cons' - theorem List.enum_eq_nil - theorem List.enum_map - theorem List.enum_map_snd - theorem List.enum_singleton - theorem List.fst_lt_add_of_mem_enumFrom - theorem List.fst_lt_of_mem_enum - theorem List.getElem?_enum - theorem List.getElem?_enumFrom - theorem List.getElem_enum - theorem List.getElem_enumFrom - theorem List.le_fst_of_mem_enumFrom - theorem List.map_fst_add_enumFrom_eq_enumFrom - theorem List.map_fst_add_enum_eq_enumFrom - theorem List.mem_enumFrom - theorem List.snd_mem_of_mem_enum - theorem List.snd_mem_of_mem_enumFrom Modified Mathlib/Data/List/Forall2.lean Modified Mathlib/Data/List/GetD.lean Modified Mathlib/Data/List/Indexes.lean Modified Mathlib/Data/List/Intervals.lean Modified Mathlib/Data/List/Iterate.lean Modified Mathlib/Data/List/Join.lean - theorem List.join_append - theorem List.join_concat +/- theorem List.join_eq_nil - theorem List.join_join - theorem List.join_reverse - theorem List.reverse_join Modified Mathlib/Data/List/Lattice.lean Modified Mathlib/Data/List/NatAntidiagonal.lean Modified Mathlib/Data/List/Nodup.lean - theorem List.Nodup.erase - theorem List.Nodup.erase_eq_filter - theorem List.Nodup.mem_erase_iff - theorem List.Nodup.not_mem_erase - theorem List.forall_mem_ne - theorem List.nodup_cons - theorem List.nodup_nil - theorem List.nodup_replicate Modified Mathlib/Data/List/OfFn.lean Modified Mathlib/Data/List/Perm.lean +/- theorem List.subperm_cons_self Modified Mathlib/Data/List/Range.lean - theorem List.enumFrom_eq_zip_range' - theorem List.enum_eq_zip_range - theorem List.nodup_iota - theorem List.nodup_range' - theorem List.nodup_range - theorem List.pairwise_gt_iota - theorem List.pairwise_le_range - theorem List.pairwise_lt_range' - theorem List.pairwise_lt_range - theorem List.range'_one - theorem List.take_range - theorem List.unzip_enumFrom_eq_prod - theorem List.unzip_enum_eq_prod Modified Mathlib/Data/List/Rotate.lean Modified Mathlib/Data/List/Sigma.lean Modified Mathlib/Data/List/Sort.lean Modified Mathlib/Data/List/Sublists.lean Modified Mathlib/Data/List/Sym.lean Modified Mathlib/Data/List/TFAE.lean Modified Mathlib/Data/List/Zip.lean - theorem List.getElem?_zipWith' - theorem List.getElem?_zipWith_eq_some - theorem List.getElem?_zip_eq_some - theorem List.getElem_zip - theorem List.getElem_zipWith - theorem List.lt_length_left_of_zip - theorem List.lt_length_left_of_zipWith - theorem List.lt_length_right_of_zip - theorem List.lt_length_right_of_zipWith - theorem List.map_prod_left_eq_zip - theorem List.map_prod_right_eq_zip - theorem List.mem_zip - theorem List.unzip_eq_map - theorem List.unzip_left - theorem List.unzip_right - theorem List.unzip_zip - theorem List.unzip_zip_left - theorem List.unzip_zip_right - theorem List.zipWith_comm - theorem List.zipWith_comm_of_comm - theorem List.zipWith_distrib_reverse - theorem List.zipWith_same - theorem List.zip_of_prod - theorem List.zip_unzip Modified Mathlib/Data/Multiset/Basic.lean +/- theorem Multiset.count_replicate +/- theorem Multiset.empty_toList Modified Mathlib/Data/Multiset/FinsetOps.lean Modified Mathlib/Data/Multiset/Nodup.lean Modified Mathlib/Data/Multiset/Powerset.lean Modified Mathlib/Data/NNRat/Defs.lean - theorem NNRat.ext_iff Modified Mathlib/Data/NNReal/Basic.lean Modified Mathlib/Data/Nat/Defs.lean - theorem Nat.and_forall_succ - theorem Nat.or_exists_succ Modified Mathlib/Data/Nat/Nth.lean Modified Mathlib/Data/Option/Basic.lean - theorem Option.get!_none - theorem Option.get!_some - theorem Option.isSome_map Modified Mathlib/Data/PEquiv.lean - theorem PEquiv.ext_iff Modified Mathlib/Data/Prod/Basic.lean Modified Mathlib/Data/Seq/Seq.lean - def Stream'.Seq.ofLazyList + def Stream'.Seq.ofMLList Modified Mathlib/Data/Set/Basic.lean Modified Mathlib/Data/Set/Image.lean Modified Mathlib/Data/Set/List.lean Modified Mathlib/Data/Set/Pairwise/Basic.lean Modified Mathlib/Data/Sigma/Basic.lean + theorem PSigma.exists' - theorem PSigma.ext_iff - theorem PSigma.subtype_ext_iff - theorem PSigma.«exists» - theorem Sigma.subtype_ext_iff Modified Mathlib/Data/Sigma/Order.lean Modified Mathlib/Data/String/Defs.lean Modified Mathlib/Data/String/Lemmas.lean Modified Mathlib/Data/Subtype.lean Modified Mathlib/Data/Sym/Basic.lean Modified Mathlib/Data/ULift.lean - theorem ULift.ext_iff Modified Mathlib/Data/Vector/Zip.lean Modified Mathlib/Dynamics/Circle/RotationNumber/TranslationNumber.lean Modified Mathlib/Geometry/Euclidean/Angle/Sphere.lean Modified Mathlib/Geometry/Euclidean/Circumcenter.lean Modified Mathlib/Geometry/Euclidean/Sphere/Basic.lean Modified Mathlib/Geometry/Manifold/MFDeriv/Basic.lean Modified Mathlib/Geometry/RingedSpace/LocallyRingedSpace.lean Modified Mathlib/Geometry/RingedSpace/LocallyRingedSpace/HasColimits.lean Modified Mathlib/Geometry/RingedSpace/OpenImmersion.lean Modified Mathlib/Geometry/RingedSpace/PresheafedSpace.lean Modified Mathlib/Geometry/RingedSpace/PresheafedSpace/HasColimits.lean Modified Mathlib/Geometry/RingedSpace/SheafedSpace.lean +/- theorem AlgebraicGeometry.SheafedSpace.ext Modified Mathlib/GroupTheory/Congruence/Basic.lean Modified Mathlib/GroupTheory/CoprodI.lean Modified Mathlib/GroupTheory/Coxeter/Inversion.lean Modified Mathlib/GroupTheory/GroupAction/Hom.lean - theorem DistribMulActionHom.ext_iff - theorem DistribMulActionHom.ext_ring_iff - theorem MulSemiringActionHom.ext_iff Modified Mathlib/GroupTheory/HNNExtension.lean Modified Mathlib/GroupTheory/MonoidLocalization/Basic.lean Modified Mathlib/GroupTheory/PushoutI.lean - theorem Monoid.PushoutI.NormalWord.ext_iff Modified Mathlib/GroupTheory/SemidirectProduct.lean Modified Mathlib/GroupTheory/Sylow.lean - theorem Sylow.ext_iff Deleted Mathlib/Init/Data/Nat/GCD.lean - theorem Nat.gcd_def Modified Mathlib/Lean/Name.lean +/- def allNamesByModule Modified Mathlib/LinearAlgebra/AffineSpace/AffineMap.lean - theorem AffineMap.ext_iff Modified Mathlib/LinearAlgebra/AffineSpace/AffineSubspace.lean Modified Mathlib/LinearAlgebra/AffineSpace/ContinuousAffineEquiv.lean - theorem ContinuousAffineEquiv.ext_iff Modified Mathlib/LinearAlgebra/AffineSpace/Independent.lean - theorem Affine.Simplex.ext_iff Modified Mathlib/LinearAlgebra/Alternating/Basic.lean Modified Mathlib/LinearAlgebra/BilinearForm/Basic.lean - theorem LinearMap.BilinForm.ext_iff Modified Mathlib/LinearAlgebra/CliffordAlgebra/Even.lean Modified Mathlib/LinearAlgebra/CliffordAlgebra/EvenEquiv.lean Modified Mathlib/LinearAlgebra/LinearPMap.lean Modified Mathlib/LinearAlgebra/Multilinear/Basic.lean Modified Mathlib/LinearAlgebra/Pi.lean - theorem LinearMap.pi_ext'_iff Modified Mathlib/LinearAlgebra/QuadraticForm/Basic.lean - theorem QuadraticMap.ext_iff Modified Mathlib/LinearAlgebra/QuadraticForm/QuadraticModuleCat.lean Modified Mathlib/LinearAlgebra/TensorPower.lean Modified Mathlib/Logic/Basic.lean - theorem exists_eq_right' - theorem exists_or_eq_left' - theorem exists_or_eq_left - theorem exists_or_eq_right' - theorem exists_or_eq_right - theorem exists_prop_congr - theorem exists_prop_of_true - theorem exists_true_left Modified Mathlib/Logic/Embedding/Basic.lean - theorem Function.Embedding.ext_iff Modified Mathlib/Logic/Equiv/Basic.lean Modified Mathlib/Logic/Equiv/Defs.lean - theorem Equiv.ext_iff Modified Mathlib/Logic/Nontrivial/Basic.lean Modified Mathlib/Logic/Relation.lean - theorem Acc.TransGen - inductive Relation.TransGen - theorem WellFounded.transGen - theorem acc_transGen_iff Modified Mathlib/Mathport/Syntax.lean Modified Mathlib/MeasureTheory/Decomposition/Jordan.lean Modified Mathlib/MeasureTheory/Function/AEEqFun.lean - theorem MeasureTheory.AEEqFun.ext_iff Modified Mathlib/MeasureTheory/Function/ConditionalExpectation/AEMeasurable.lean Modified Mathlib/MeasureTheory/Function/Jacobian.lean Modified Mathlib/MeasureTheory/Function/LpSpace.lean - theorem MeasureTheory.Lp.ext_iff Modified Mathlib/MeasureTheory/MeasurableSpace/Defs.lean - theorem MeasurableSpace.ext_iff Modified Mathlib/MeasureTheory/Measure/AddContent.lean Modified Mathlib/MeasureTheory/Measure/MeasureSpaceDef.lean - theorem MeasureTheory.Measure.ext_iff Modified Mathlib/ModelTheory/Basic.lean - theorem FirstOrder.Language.Embedding.ext_iff - theorem FirstOrder.Language.Equiv.ext_iff - theorem FirstOrder.Language.Hom.ext_iff Modified Mathlib/ModelTheory/ElementaryMaps.lean - theorem FirstOrder.Language.ElementaryEmbedding.ext_iff Modified Mathlib/ModelTheory/Encoding.lean Modified Mathlib/NumberTheory/ArithmeticFunction.lean - theorem ArithmeticFunction.ext_iff Modified Mathlib/NumberTheory/ModularForms/Basic.lean Modified Mathlib/NumberTheory/MulChar/Basic.lean - theorem MulChar.ext_iff Modified Mathlib/NumberTheory/NumberField/Basic.lean - theorem NumberField.RingOfIntegers.ext_iff Modified Mathlib/NumberTheory/Pell.lean Modified Mathlib/NumberTheory/Zsqrtd/Basic.lean Modified Mathlib/Order/Filter/Basic.lean Modified Mathlib/Order/RelClasses.lean Modified Mathlib/Order/RelIso/Basic.lean - theorem RelEmbedding.ext_iff - theorem RelHom.ext_iff - theorem RelIso.ext_iff Modified Mathlib/Order/RelSeries.lean Modified Mathlib/Probability/ConditionalExpectation.lean Modified Mathlib/Probability/Kernel/Basic.lean Modified Mathlib/Probability/ProbabilityMassFunction/Basic.lean - theorem PMF.ext_iff Modified Mathlib/RepresentationTheory/Action/Basic.lean Modified Mathlib/RepresentationTheory/Rep.lean Modified Mathlib/RingTheory/AdicCompletion/Basic.lean - theorem AdicCompletion.AdicCauchySequence.ext_iff - theorem AdicCompletion.ext_iff Modified Mathlib/RingTheory/Bialgebra/Equiv.lean - theorem BialgEquiv.ext_iff Modified Mathlib/RingTheory/Bialgebra/Hom.lean - theorem BialgHom.ext_iff Modified Mathlib/RingTheory/Coalgebra/Equiv.lean - theorem CoalgEquiv.ext_iff Modified Mathlib/RingTheory/Coalgebra/Hom.lean - theorem CoalgHom.ext_iff Modified Mathlib/RingTheory/DedekindDomain/Factorization.lean Modified Mathlib/RingTheory/DedekindDomain/Ideal.lean Modified Mathlib/RingTheory/Filtration.lean Modified Mathlib/RingTheory/HahnSeries/Basic.lean Modified Mathlib/RingTheory/HahnSeries/Multiplication.lean Modified Mathlib/RingTheory/IsTensorProduct.lean Modified Mathlib/RingTheory/MaximalSpectrum.lean Modified Mathlib/RingTheory/MvPowerSeries/Basic.lean Modified Mathlib/RingTheory/PowerSeries/Basic.lean Modified Mathlib/RingTheory/PrimeSpectrum.lean Modified Mathlib/RingTheory/Valuation/Basic.lean - theorem AddValuation.ext_iff - theorem Valuation.ext_iff Modified Mathlib/RingTheory/WittVector/Defs.lean - theorem WittVector.ext_iff Modified Mathlib/RingTheory/WittVector/Truncated.lean - theorem TruncatedWittVector.ext_iff Modified Mathlib/SetTheory/ZFC/Basic.lean - theorem Class.ext_iff - theorem ZFSet.ext_iff Modified Mathlib/Tactic/Abel.lean Modified Mathlib/Tactic/Attr/Core.lean Modified Mathlib/Tactic/Linter/Lint.lean Modified Mathlib/Tactic/Linter/UnusedTactic.lean Modified Mathlib/Tactic/TFAE.lean Modified Mathlib/Tactic/Widget/Calc.lean Modified Mathlib/Tactic/Widget/Conv.lean Modified Mathlib/Testing/SlimCheck/Functions.lean +/- def SlimCheck.InjectiveFunction.sliceSizes Modified Mathlib/Testing/SlimCheck/Testable.lean Modified Mathlib/Topology/Algebra/Algebra.lean - theorem ContinuousAlgHom.ext_iff Modified Mathlib/Topology/Algebra/ContinuousAffineMap.lean - theorem ContinuousAffineMap.ext_iff Modified Mathlib/Topology/Algebra/Module/Alternating/Basic.lean - theorem ContinuousAlternatingMap.ext_iff Modified Mathlib/Topology/Algebra/Module/Basic.lean Modified Mathlib/Topology/Algebra/Module/Multilinear/Basic.lean - theorem ContinuousMultilinearMap.ext_iff Modified Mathlib/Topology/Basic.lean Modified Mathlib/Topology/Bornology/Basic.lean - theorem Bornology.ext_iff Modified Mathlib/Topology/Category/TopCat/OpenNhds.lean Modified Mathlib/Topology/ContinuousFunction/StoneWeierstrass.lean Modified Mathlib/Topology/LocallyConstant/Basic.lean - theorem LocallyConstant.ext_iff Modified Mathlib/Topology/MetricSpace/Dilation.lean - theorem Dilation.ext_iff Modified Mathlib/Topology/Metrizable/Uniformity.lean Modified Mathlib/Topology/PartialHomeomorph.lean Modified Mathlib/Topology/Sheaves/Sheaf.lean Modified Mathlib/Topology/Sheaves/SheafCondition/OpensLeCover.lean Modified Mathlib/Topology/Sheaves/Skyscraper.lean Modified Mathlib/Topology/ShrinkingLemma.lean Modified Mathlib/Topology/UniformSpace/Basic.lean Modified Mathlib/Util/AssertNoSorry.lean Modified Mathlib/Util/LongNames.lean +/- def printNameHashMap Modified lake-manifest.json Modified lakefile.lean Modified lean-toolchain Modified scripts/check-yaml.lean Modified scripts/noshake.json Modified test/DeriveToExpr.lean Modified test/TCSynth.lean Modified test/Use.lean Modified test/Variable.lean Modified test/eval_elab.lean Modified test/jacobiSym.lean 2024-08-05 08:52:10 145e6ba chore(CstarAlgebra/Module): drop `DecidableEq` assumptions (#15489) Also reuse `map_sum` instead of proving by induction. ESTIMATED CHANGES Modified Mathlib/Analysis/CstarAlgebra/Module.lean +/- theorem CstarModule.inner_sum_left +/- theorem CstarModule.inner_sum_right 2024-08-05 08:52:09 f74b424 feat(ConditionallyCompleteLattice): ciSup_image, ciSup_or', and other iSup-like lemmas (#15271) ESTIMATED CHANGES Modified Mathlib/Order/ConditionallyCompleteLattice/Basic.lean + theorem ciInf_image + theorem ciInf_subtype'' + theorem ciInf_subtype' + theorem ciInf_subtype + theorem ciSup_image + theorem ciSup_or' + theorem ciSup_subtype'' + theorem ciSup_subtype' + theorem ciSup_subtype + theorem csInf_image + theorem csSup_image 2024-08-05 06:34:16 8c4038b chore: backports for leanprover/lean4#4814 (part 2) (#15246) See #15245 ESTIMATED CHANGES Modified Mathlib/Algebra/Ring/InjSurj.lean Modified Mathlib/Data/FunLike/Equiv.lean Modified Mathlib/Data/List/Basic.lean +/- theorem List.foldr_eq_of_comm' Modified Mathlib/Data/Nat/Find.lean 2024-08-05 05:35:00 d56e389 chore(*): `Cdf` → `CDF` (#15496) ESTIMATED CHANGES Modified Mathlib.lean Renamed Mathlib/Probability/Cdf.lean to Mathlib/Probability/CDF.lean Modified Mathlib/Probability/Distributions/Exponential.lean Modified Mathlib/Probability/Distributions/Gamma.lean Renamed Mathlib/Probability/Kernel/Disintegration/CdfToKernel.lean to Mathlib/Probability/Kernel/Disintegration/CDFToKernel.lean Renamed Mathlib/Probability/Kernel/Disintegration/CondCdf.lean to Mathlib/Probability/Kernel/Disintegration/CondCDF.lean Modified Mathlib/Probability/Kernel/Disintegration/StandardBorel.lean 2024-08-05 05:22:30 94a5464 chore: fix comments in Mathlib/Analysis/Analytic/Composition.lean (#15498) ESTIMATED CHANGES Modified Mathlib/Analysis/Analytic/Composition.lean 2024-08-05 03:02:55 39adedf chore: backports for leanprover/lean4#4814 (part 16) (#15427) see https://github.com/leanprover-community/mathlib4/pull/15245 ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/NonUnitalSubalgebra.lean Modified Mathlib/Algebra/Algebra/Quasispectrum.lean Modified Mathlib/Algebra/Algebra/Unitization.lean +/- theorem Unitization.starLift_symm_apply_apply Modified Mathlib/Algebra/DirectSum/Internal.lean +/- theorem Submodule.setLike.coe_galgebra_toFun Modified Mathlib/Algebra/DirectSum/Module.lean +/- theorem DirectSum.linearEquivFunOnFintype_lof +/- theorem DirectSum.linearEquivFunOnFintype_symm_single Modified Mathlib/Algebra/Homology/Embedding/TruncGE.lean Modified Mathlib/Algebra/Homology/HomotopyCofiber.lean +/- theorem HomologicalComplex.homotopyCofiber.descSigma_ext_iff Modified Mathlib/Algebra/Lie/Subalgebra.lean Modified Mathlib/Algebra/Module/Submodule/Pointwise.lean Modified Mathlib/Algebra/MonoidAlgebra/Basic.lean +/- theorem AddMonoidAlgebra.of'_commute Modified Mathlib/Algebra/MonoidAlgebra/Degree.lean +/- theorem AddMonoidAlgebra.apply_add_of_supDegree_le +/- theorem AddMonoidAlgebra.le_infDegree_mul +/- theorem AddMonoidAlgebra.supDegree_mul_le Modified Mathlib/Algebra/MvPolynomial/Basic.lean +/- theorem MvPolynomial.eval_eval₂ Modified Mathlib/Algebra/Star/NonUnitalSubalgebra.lean Modified Mathlib/Algebra/TrivSqZeroExt.lean Modified Mathlib/Analysis/Convex/Cone/Basic.lean Modified Mathlib/Analysis/Convex/Mul.lean +/- theorem ConcaveOn.smul' +/- theorem ConcaveOn.smul_convexOn +/- theorem ConvexOn.smul'' +/- theorem ConvexOn.smul_concaveOn' Modified Mathlib/CategoryTheory/Abelian/LeftDerived.lean +/- theorem CategoryTheory.ProjectiveResolution.fromLeftDerivedZero'_naturality +/- theorem CategoryTheory.ProjectiveResolution.pOpcycles_comp_fromLeftDerivedZero' Modified Mathlib/CategoryTheory/Abelian/ProjectiveResolution.lean Modified Mathlib/CategoryTheory/Abelian/RightDerived.lean +/- theorem CategoryTheory.InjectiveResolution.toRightDerivedZero'_comp_iCycles +/- theorem CategoryTheory.InjectiveResolution.toRightDerivedZero'_naturality Modified Mathlib/CategoryTheory/Galois/Decomposition.lean Modified Mathlib/CategoryTheory/Galois/GaloisObjects.lean +/- theorem CategoryTheory.PreGaloisCategory.comp_autMap_apply Modified Mathlib/CategoryTheory/Localization/Triangulated.lean Modified Mathlib/Combinatorics/SimpleGraph/AdjMatrix.lean Modified Mathlib/Combinatorics/SimpleGraph/DegreeSum.lean Modified Mathlib/Combinatorics/SimpleGraph/IncMatrix.lean +/- theorem SimpleGraph.incMatrix_mul_transpose_diag +/- theorem SimpleGraph.sum_incMatrix_apply Modified Mathlib/Combinatorics/SimpleGraph/Matching.lean +/- theorem SimpleGraph.ConnectedComponent.even_card_of_isPerfectMatching Modified Mathlib/Combinatorics/SimpleGraph/StronglyRegular.lean +/- theorem SimpleGraph.IsSRGWith.param_eq Modified Mathlib/Combinatorics/SimpleGraph/Turan.lean +/- theorem SimpleGraph.IsTuranMaximal.card_parts +/- theorem SimpleGraph.IsTuranMaximal.card_parts_le +/- theorem SimpleGraph.IsTuranMaximal.degree_eq_card_sub_part_card +/- theorem SimpleGraph.IsTuranMaximal.isEquipartition +/- theorem SimpleGraph.IsTuranMaximal.iso +/- theorem SimpleGraph.IsTuranMaximal.not_adj_iff_part_eq Modified Mathlib/Data/Matrix/Basic.lean Modified Mathlib/LinearAlgebra/DFinsupp.lean +/- theorem CompleteLattice.Independent.linearIndependent +/- theorem CompleteLattice.independent_iff_linearIndependent_of_ne_zero +/- theorem DFinsupp.coprodMap_apply Modified Mathlib/LinearAlgebra/Finsupp.lean +/- theorem Finsupp.LinearEquiv.finsuppUnique_symm_apply +/- theorem Submodule.mulLeftMap_eq_mulRightMap_of_commute Modified Mathlib/LinearAlgebra/Matrix/DotProduct.lean +/- theorem Matrix.conjTranspose_mul_self_eq_zero +/- theorem Matrix.conjTranspose_mul_self_mul_eq_zero +/- theorem Matrix.mul_conjTranspose_mul_self_eq_zero +/- theorem Matrix.mul_self_mul_conjTranspose_eq_zero +/- theorem Matrix.self_mul_conjTranspose_eq_zero +/- theorem Matrix.self_mul_conjTranspose_mul_eq_zero Modified Mathlib/LinearAlgebra/Matrix/ToLin.lean Modified Mathlib/LinearAlgebra/QuotientPi.lean Modified Mathlib/LinearAlgebra/TensorProduct/Basic.lean Modified Mathlib/LinearAlgebra/TensorProduct/Basis.lean Modified Mathlib/LinearAlgebra/TensorProduct/Tower.lean Modified Mathlib/NumberTheory/MulChar/Basic.lean +/- theorem MulChar.coe_toMonoidHom Modified Mathlib/RingTheory/HahnSeries/Multiplication.lean +/- theorem HahnModule.of_symm_smul Modified Mathlib/RingTheory/Valuation/Integers.lean Modified Mathlib/Topology/Compactness/Compact.lean +/- theorem IsCompact.mem_nhdsSet_prod_of_forall +/- theorem IsCompact.mem_prod_nhdsSet_of_forall +/- theorem IsCompact.nhdsSet_prod_eq_biSup +/- theorem IsCompact.prod_nhdsSet_eq_biSup +/- theorem IsCompact.tendsto_nhds_of_unique_mapClusterPt +/- theorem tendsto_nhds_of_unique_mapClusterPt Modified Mathlib/Topology/Connected/TotallyDisconnected.lean Modified Mathlib/Topology/DenseEmbedding.lean +/- theorem DenseEmbedding.dense_image +/- theorem DenseEmbedding.inj_iff +/- theorem DenseEmbedding.to_embedding +/- theorem DenseInducing.closure_range +/- theorem DenseInducing.extend_eq +/- theorem DenseInducing.extend_eq_at' +/- theorem DenseInducing.extend_eq_at +/- theorem DenseInducing.extend_eq_of_tendsto Modified Mathlib/Topology/DiscreteSubset.lean Modified Mathlib/Topology/Order/ProjIcc.lean Modified Mathlib/Topology/Separation.lean +/- theorem Filter.Tendsto.eventually_ne +/- theorem t1Space_antitone Modified Mathlib/Topology/ShrinkingLemma.lean +/- theorem ShrinkingLemma.PartialRefinement.exists_gt Modified Mathlib/Topology/UniformSpace/Separation.lean +/- theorem Filter.Tendsto.inseparable_iff_uniformity 2024-08-04 14:32:22 1f03949 feat: Real.exists_natCast_add_one_le_pow_of_one_le (#15074) Necessary for arguments in approaching a power from above ESTIMATED CHANGES Modified Mathlib/Data/Nat/Cast/Order/Ring.lean + theorem Nat.mul_le_pow + theorem Nat.two_mul_sq_add_one_le_two_pow_two_mul Modified Mathlib/Data/Real/Archimedean.lean + theorem Real.exists_natCast_add_one_lt_pow_of_one_lt Modified Mathlib/Data/Real/Basic.lean + theorem Real.mul_add_one_le_add_one_pow 2024-08-04 13:29:41 4c53d76 chore(RingTheory/Coprime/Lemmas): remove obsolete porting note (#15336) ESTIMATED CHANGES Modified Mathlib/RingTheory/Coprime/Lemmas.lean 2024-08-04 13:29:40 26b8d0d chore: run fix-comments.py on all of mathlib (#15222) ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/Unitization.lean Modified Mathlib/Algebra/Category/Grp/Adjunctions.lean Modified Mathlib/Algebra/Category/Grp/EquivalenceGroupAddGroup.lean Modified Mathlib/Algebra/Category/ModuleCat/Abelian.lean Modified Mathlib/Algebra/Category/ModuleCat/Differentials/Presheaf.lean Modified Mathlib/Algebra/Group/Semiconj/Defs.lean Modified Mathlib/Algebra/Group/Semiconj/Units.lean Modified Mathlib/Algebra/MvPolynomial/Basic.lean Modified Mathlib/Algebra/Vertex/HVertexOperator.lean Modified Mathlib/AlgebraicGeometry/ProjectiveSpectrum/StructureSheaf.lean Modified Mathlib/Analysis/Analytic/Composition.lean Modified Mathlib/Analysis/Convolution.lean Modified Mathlib/Analysis/CstarAlgebra/Exponential.lean Modified Mathlib/Analysis/Normed/Algebra/Exponential.lean Modified Mathlib/Analysis/Normed/Algebra/MatrixExponential.lean Modified Mathlib/Analysis/Normed/Algebra/TrivSqZeroExt.lean Modified Mathlib/Analysis/Normed/Group/InfiniteSum.lean Modified Mathlib/Analysis/SpecialFunctions/Exponential.lean Modified Mathlib/CategoryTheory/Abelian/Ext.lean Modified Mathlib/CategoryTheory/Category/RelCat.lean Modified Mathlib/CategoryTheory/Groupoid/Subgroupoid.lean Modified Mathlib/CategoryTheory/Linear/Yoneda.lean Modified Mathlib/Computability/TMToPartrec.lean Modified Mathlib/Control/Monad/Writer.lean Modified Mathlib/Data/Finset/NAry.lean Modified Mathlib/Data/Finset/Union.lean Modified Mathlib/Data/Int/Interval.lean Modified Mathlib/Data/Nat/Squarefree.lean Modified Mathlib/Data/Quot.lean Modified Mathlib/Data/Real/Pi/Bounds.lean Modified Mathlib/Data/ZMod/Algebra.lean Modified Mathlib/FieldTheory/Finite/Polynomial.lean Modified Mathlib/Geometry/RingedSpace/LocallyRingedSpace.lean Modified Mathlib/Geometry/RingedSpace/LocallyRingedSpace/HasColimits.lean Modified Mathlib/Geometry/RingedSpace/OpenImmersion.lean Modified Mathlib/Init/Data/Nat/Lemmas.lean Modified Mathlib/Lean/Meta/CongrTheorems.lean Modified Mathlib/LinearAlgebra/Eigenspace/Triangularizable.lean Modified Mathlib/LinearAlgebra/Multilinear/Basis.lean Modified Mathlib/LinearAlgebra/QuadraticForm/Basic.lean Modified Mathlib/Logic/Equiv/Array.lean Modified Mathlib/Logic/Nontrivial/Defs.lean Modified Mathlib/MeasureTheory/Covering/BesicovitchVectorSpace.lean Modified Mathlib/MeasureTheory/Function/LpSeminorm/Basic.lean Modified Mathlib/MeasureTheory/Integral/PeakFunction.lean Modified Mathlib/NumberTheory/ModularForms/CongruenceSubgroups.lean Modified Mathlib/Order/Circular.lean Modified Mathlib/Order/Filter/Bases.lean Modified Mathlib/Order/RelIso/Basic.lean Modified Mathlib/Probability/Kernel/Disintegration/CondCdf.lean Modified Mathlib/RepresentationTheory/Action/Basic.lean Modified Mathlib/RepresentationTheory/Action/Concrete.lean Modified Mathlib/RepresentationTheory/Action/Monoidal.lean Modified Mathlib/RingTheory/Adjoin/Field.lean Modified Mathlib/RingTheory/DedekindDomain/Basic.lean Modified Mathlib/RingTheory/DedekindDomain/FiniteAdeleRing.lean Modified Mathlib/RingTheory/Derivation/Basic.lean Modified Mathlib/RingTheory/Derivation/ToSquareZero.lean Modified Mathlib/RingTheory/LocalProperties.lean Modified Mathlib/RingTheory/Localization/BaseChange.lean Modified Mathlib/RingTheory/Polynomial/Bernstein.lean Modified Mathlib/RingTheory/Trace/Basic.lean Modified Mathlib/RingTheory/Valuation/Basic.lean Modified Mathlib/RingTheory/WittVector/Compare.lean Modified Mathlib/RingTheory/WittVector/IsPoly.lean Modified Mathlib/Tactic/Conv.lean Modified Mathlib/Testing/SlimCheck/Functions.lean Modified Mathlib/Testing/SlimCheck/Sampleable.lean Modified Mathlib/Topology/Algebra/Ring/Basic.lean Modified Mathlib/Topology/Category/TopCat/Opens.lean Modified Mathlib/Topology/FiberBundle/Constructions.lean Modified Mathlib/Topology/MetricSpace/GromovHausdorff.lean Modified Mathlib/Topology/Sheaves/Forget.lean Modified Mathlib/Topology/Sheaves/PresheafOfFunctions.lean 2024-08-04 13:29:38 78fb0af feat(LightCondensed): characterise epimorphisms in light condensed sets and modules (#13495) This PR characterises epimorphisms in light condensed sets and modules as the locally surjective morphisms. Here, the condition of locally surjective is phrased in terms of continuous surjections of light profinite sets. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Condensed/Light/Epi.lean + theorem LightCondMod.epi_iff_locallySurjective_on_lightProfinite + theorem LightCondSet.epi_iff_locallySurjective_on_lightProfinite + theorem LightCondensed.isLocallySurjective_iff_locallySurjective_on_lightProfinite 2024-08-04 12:42:11 0b65351 chore(Topology): remove some uses of open Classical (#15481) ESTIMATED CHANGES Modified Mathlib/Topology/Algebra/Algebra.lean Modified Mathlib/Topology/Algebra/Group/Basic.lean Modified Mathlib/Topology/Algebra/Group/Compact.lean Modified Mathlib/Topology/Algebra/StarSubalgebra.lean Modified Mathlib/Topology/Algebra/UniformField.lean Modified Mathlib/Topology/Algebra/UniformGroup.lean Modified Mathlib/Topology/Algebra/UniformRing.lean Modified Mathlib/Topology/Clopen.lean Modified Mathlib/Topology/Compactness/Compact.lean Modified Mathlib/Topology/Compactness/LocallyCompact.lean Modified Mathlib/Topology/Compactness/SigmaCompact.lean +/- theorem CompactExhaustion.find_shiftr +/- theorem CompactExhaustion.mem_find +/- theorem CompactExhaustion.mem_iff_find_le Modified Mathlib/Topology/Connected/Basic.lean Modified Mathlib/Topology/Connected/Clopen.lean Modified Mathlib/Topology/Constructions.lean Modified Mathlib/Topology/ExtremallyDisconnected.lean Modified Mathlib/Topology/FiberBundle/Trivialization.lean Modified Mathlib/Topology/Instances/ENNReal.lean Modified Mathlib/Topology/Irreducible.lean Modified Mathlib/Topology/MetricSpace/GromovHausdorff.lean Modified Mathlib/Topology/MetricSpace/GromovHausdorffRealized.lean Modified Mathlib/Topology/PartitionOfUnity.lean +/- theorem BumpCovering.coe_single Modified Mathlib/Topology/Separation.lean Modified Mathlib/Topology/ShrinkingLemma.lean Modified Mathlib/Topology/UniformSpace/Cauchy.lean Modified Mathlib/Topology/UniformSpace/UniformConvergenceTopology.lean Modified Mathlib/Topology/UnitInterval.lean 2024-08-04 12:42:10 ae960ed feat(ENat): iSup_eq_zero (#15345) from the Carleson project ESTIMATED CHANGES Modified Mathlib/Data/ENat/Lattice.lean + theorem ENat.iSup_eq_zero 2024-08-04 12:42:09 ba4c368 feat(ENat): not_lt_zero, coe_lt_top (#15342) from the Carleson project ESTIMATED CHANGES Modified Mathlib/Data/ENat/Basic.lean + theorem ENat.coe_lt_top + theorem ENat.not_lt_zero 2024-08-04 12:42:07 766dd62 chore: remove fix-comments.py (#15242) This script has served its purpose during the port; now that all align information has been removed from mathlib, it is not useful for other projects either. Projects which wish to use such functionality should check out the v3-eol tag and use the script from that commit. ESTIMATED CHANGES Deleted scripts/fix-comments.py 2024-08-04 12:42:06 776ac28 feat(RingTheory/Smooth): Correspondence between square-zero lifts and retractions of the conormal sequence. (#14138) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/RingTheory/Ideal/Cotangent.lean + theorem Ideal.Cotangent.smul_eq_zero_of_mem + theorem Ideal.isTorsionBySet_cotangent Added Mathlib/RingTheory/Smooth/Kaehler.lean + def derivationOfSectionOfKerSqZero + theorem isScalarTower_of_section_of_ker_sqZero + def retractionKerToTensorEquivSection + def retractionOfSectionOfKerSqZero + theorem retractionOfSectionOfKerSqZero_comp_kerToTensor + theorem retractionOfSectionOfKerSqZero_tmul_D + def sectionOfRetractionKerToTensorAux + theorem sectionOfRetractionKerToTensorAux_algebraMap + theorem sectionOfRetractionKerToTensorAux_prop + theorem sectionOfRetractionKerToTensor_algebraMap + theorem toAlgHom_comp_sectionOfRetractionKerToTensor + theorem toAlgHom_comp_sectionOfRetractionKerToTensorAux 2024-08-04 11:42:45 cdba113 feat: add `tsub_eq_tsub_of_add_eq_add` (#15484) ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Sub/Defs.lean + theorem tsub_eq_tsub_of_add_eq_add 2024-08-04 11:42:44 b29f5cc chore(VitaliFamily): rename `α` → `X` (#15428) The module docstring uses `X` while the code used `α`. ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Covering/VitaliFamily.lean +/- theorem Filter.HasBasis.vitaliFamily +/- theorem VitaliFamily.FineSubfamilyOn.covering_mem +/- theorem VitaliFamily.FineSubfamilyOn.covering_mem_family +/- theorem VitaliFamily.FineSubfamilyOn.index_countable +/- theorem VitaliFamily.FineSubfamilyOn.index_subset +/- theorem VitaliFamily.FineSubfamilyOn.measure_le_tsum +/- theorem VitaliFamily.FineSubfamilyOn.measure_le_tsum_of_absolutelyContinuous +/- def VitaliFamily.FineSubfamilyOn +/- theorem VitaliFamily.eventually_filterAt_iff +/- theorem VitaliFamily.eventually_filterAt_measurableSet +/- theorem VitaliFamily.eventually_filterAt_mem_setsAt +/- theorem VitaliFamily.eventually_filterAt_subset_closedBall +/- theorem VitaliFamily.eventually_filterAt_subset_of_nhds +/- def VitaliFamily.filterAt +/- theorem VitaliFamily.filterAt_basis_closedBall +/- theorem VitaliFamily.fineSubfamilyOn_of_frequently +/- theorem VitaliFamily.frequently_filterAt_iff +/- theorem VitaliFamily.mem_filterAt_iff +/- def VitaliFamily.mono +/- theorem VitaliFamily.tendsto_filterAt_iff +/- structure VitaliFamily 2024-08-04 11:42:43 9b1d3da feat(WithBot): un{bot,top}_{eq,lt}_iff (#15421) this adds analogues to the existing unbot_le_iff lemmas. From the Carleson project. ESTIMATED CHANGES Modified Mathlib/Order/WithBot.lean + theorem WithBot.eq_unbot_iff + theorem WithBot.lt_unbot_iff + theorem WithBot.unbot_eq_iff + theorem WithBot.unbot_lt_iff + theorem WithTop.eq_untop_iff + theorem WithTop.lt_untop_iff + theorem WithTop.untop_eq_iff + theorem WithTop.untop_lt_iff 2024-08-04 11:42:42 34cfdc4 chore(ModelTheory): Fix Model Theory docstrings (#15408) Updates the style on docstrings of files in the Model Theory folder to better match the current style guide. ESTIMATED CHANGES Modified Mathlib/ModelTheory/Algebra/Field/Basic.lean Modified Mathlib/ModelTheory/Algebra/Field/CharP.lean Modified Mathlib/ModelTheory/Algebra/Ring/Basic.lean Modified Mathlib/ModelTheory/Algebra/Ring/FreeCommRing.lean Modified Mathlib/ModelTheory/Basic.lean Modified Mathlib/ModelTheory/Bundled.lean Modified Mathlib/ModelTheory/Complexity.lean Modified Mathlib/ModelTheory/Definability.lean Modified Mathlib/ModelTheory/DirectLimit.lean Modified Mathlib/ModelTheory/ElementaryMaps.lean Modified Mathlib/ModelTheory/ElementarySubstructures.lean Modified Mathlib/ModelTheory/Encoding.lean Modified Mathlib/ModelTheory/FinitelyGenerated.lean Modified Mathlib/ModelTheory/Fraisse.lean Modified Mathlib/ModelTheory/Graph.lean Modified Mathlib/ModelTheory/LanguageMap.lean Modified Mathlib/ModelTheory/Order.lean Modified Mathlib/ModelTheory/Quotients.lean Modified Mathlib/ModelTheory/Satisfiability.lean Modified Mathlib/ModelTheory/Semantics.lean Modified Mathlib/ModelTheory/Skolem.lean Modified Mathlib/ModelTheory/Substructures.lean Modified Mathlib/ModelTheory/Syntax.lean Modified Mathlib/ModelTheory/Types.lean Modified Mathlib/ModelTheory/Ultraproducts.lean 2024-08-04 11:42:40 16631a0 refactor(Combinatorics/SimpleGraph): remove sndOfNotNil in favour of getVert 1 (#15237) This allows to leave out the not-nil hypothesis, in addition to not needing it for the definition of tail. ESTIMATED CHANGES Modified Mathlib/Combinatorics/SimpleGraph/Acyclic.lean Modified Mathlib/Combinatorics/SimpleGraph/Connectivity/Subgraph.lean Modified Mathlib/Combinatorics/SimpleGraph/Hamiltonian.lean Modified Mathlib/Combinatorics/SimpleGraph/Path.lean +/- theorem SimpleGraph.Walk.IsPath.tail Modified Mathlib/Combinatorics/SimpleGraph/Walk.lean + theorem SimpleGraph.Walk.adj_getVert_one - theorem SimpleGraph.Walk.adj_sndOfNotNil - theorem SimpleGraph.Walk.cons_getVert - theorem SimpleGraph.Walk.cons_getVert_succ - theorem SimpleGraph.Walk.cons_sndOfNotNil +/- theorem SimpleGraph.Walk.cons_tail_eq + def SimpleGraph.Walk.drop + theorem SimpleGraph.Walk.getVert_cons + theorem SimpleGraph.Walk.getVert_cons_one + theorem SimpleGraph.Walk.getVert_cons_succ + theorem SimpleGraph.Walk.getVert_copy - theorem SimpleGraph.Walk.getVert_one +/- theorem SimpleGraph.Walk.getVert_tail + theorem SimpleGraph.Walk.not_nil_iff_lt_length - def SimpleGraph.Walk.sndOfNotNil +/- theorem SimpleGraph.Walk.support_tail + theorem SimpleGraph.Walk.support_tail_of_not_nil +/- def SimpleGraph.Walk.tail + theorem SimpleGraph.Walk.tail_cons_eq + theorem SimpleGraph.Walk.tail_cons_nil - theorem SimpleGraph.Walk.tail_support_eq_support_tail 2024-08-04 10:58:32 79df738 feat (MeasureTheory): `Measure.add_sub_cancel` (#15468) Add `Measure.add_sub_cancel`. ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Function/Jacobian.lean Modified Mathlib/MeasureTheory/Measure/Sub.lean + theorem MeasureTheory.Measure.add_sub_cancel 2024-08-04 10:58:31 64580bf chore: Address todo in `Data/Matrix/Rank.lean` (#15191) This PR addresses a todo in `Data/Matrix/Rank.lean`, generalizing from `LinearOrderedField` to `Field` as suggested by this old Zulip thread: https://leanprover.zulipchat.com/#narrow/stream/116395-maths/topic/row.20rank.20equals.20column.20rank/near/350462992 ESTIMATED CHANGES Modified Mathlib/Data/Matrix/Rank.lean +/- theorem Matrix.rank_eq_finrank_span_row +/- theorem Matrix.rank_self_mul_transpose +/- theorem Matrix.rank_transpose 2024-08-04 10:58:30 f758d8b chore: move more files into `Analysis.Normed.Algebra` (#15168) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Analysis/CstarAlgebra/Exponential.lean Renamed Mathlib/Analysis/NormedSpace/Exponential.lean to Mathlib/Analysis/Normed/Algebra/Exponential.lean Renamed Mathlib/Analysis/NormedSpace/MatrixExponential.lean to Mathlib/Analysis/Normed/Algebra/MatrixExponential.lean Renamed Mathlib/Analysis/NormedSpace/QuaternionExponential.lean to Mathlib/Analysis/Normed/Algebra/QuaternionExponential.lean Modified Mathlib/Analysis/Normed/Algebra/Spectrum.lean Modified Mathlib/Analysis/Normed/Algebra/TrivSqZeroExt.lean Modified Mathlib/Analysis/SpecialFunctions/Exponential.lean 2024-08-04 10:58:29 7445812 feat: if one set is clopen in another, then it is the union of connected components in the larger set (#14927) ESTIMATED CHANGES Modified Mathlib/Topology/Connected/Clopen.lean + theorem IsClopen.biUnion_connectedComponentIn + theorem isClopen_preimage_val 2024-08-04 10:58:27 3bd273a feat(GroupTheory/Index): finite quotient lemmas (#14921) Add some lemmas about finiteness of `MulAction.orbitRel.Quotient` for actions by a subgroup of finite index. From AperiodicMonotilesLean. ESTIMATED CHANGES Modified Mathlib/GroupTheory/Index.lean + theorem Subgroup.finite_quotient_of_finite_quotient_of_index_ne_zero + theorem Subgroup.finite_quotient_of_pretransitive_of_index_ne_zero 2024-08-04 10:58:26 cbbb5d7 feat(Limits/Shapes/Pullback): add more pasting lemmas (#14414) This PR does the following: 1. Rewrites the current pasting lemmas so that they take any `PullbackCone` as input, and not just one obtained through `PullbackCone.mk`. 2. Adds vertical pasting lemmas 3. Adds some missing pasting lemmas in terms of the `HasPullbacks`/`HasPushouts` API (e.g. `pullbackRightPullbackSndIso`). This contribution was inspired by the AIM workshop "Formalizing algebraic geometry" in June 2024. ESTIMATED CHANGES Modified Mathlib/AlgebraicGeometry/Pullbacks.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Diagonal.lean + theorem CategoryTheory.Limits.pullbackDiagonalMapIso.hom_fst + theorem CategoryTheory.Limits.pullbackDiagonalMapIso.hom_snd + theorem CategoryTheory.Limits.pullbackDiagonalMapIso.inv_fst + theorem CategoryTheory.Limits.pullbackDiagonalMapIso.inv_snd_fst + theorem CategoryTheory.Limits.pullbackDiagonalMapIso.inv_snd_snd - theorem CategoryTheory.Limits.pullbackDiagonalMapIso_hom_fst - theorem CategoryTheory.Limits.pullbackDiagonalMapIso_hom_snd - theorem CategoryTheory.Limits.pullbackDiagonalMapIso_inv_fst - theorem CategoryTheory.Limits.pullbackDiagonalMapIso_inv_snd_fst - theorem CategoryTheory.Limits.pullbackDiagonalMapIso_inv_snd_snd Modified Mathlib/CategoryTheory/Limits/Shapes/Pullback/Assoc.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Pullback/CommSq.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Pullback/Mono.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Pullback/Pasting.lean + def CategoryTheory.Limits.PullbackCone.pasteVertFlip + def CategoryTheory.Limits.PushoutCocone.pasteVertFlip - def CategoryTheory.Limits.bigSquareIsPullback - def CategoryTheory.Limits.bigSquareIsPushout + def CategoryTheory.Limits.botSquareIsPushout + theorem CategoryTheory.Limits.inl_pushoutRightPushoutInlIso_hom + theorem CategoryTheory.Limits.inl_pushoutRightPushoutInlIso_inv + theorem CategoryTheory.Limits.inr_inl_pushoutRightPushoutInlIso_hom + theorem CategoryTheory.Limits.inr_inr_pushoutRightPushoutInlIso_hom + theorem CategoryTheory.Limits.inr_pushoutRightPushoutInlIso_inv +/- def CategoryTheory.Limits.leftSquareIsPullback + def CategoryTheory.Limits.pasteHorizIsPullback + def CategoryTheory.Limits.pasteHorizIsPullbackEquiv + def CategoryTheory.Limits.pasteHorizIsPushout + def CategoryTheory.Limits.pasteHorizIsPushoutEquiv + def CategoryTheory.Limits.pasteVertIsPullback + def CategoryTheory.Limits.pasteVertIsPullbackEquiv + def CategoryTheory.Limits.pasteVertIsPushout + def CategoryTheory.Limits.pasteVertIsPushoutEquiv + def CategoryTheory.Limits.pullbackLeftPullbackSndIso + theorem CategoryTheory.Limits.pullbackLeftPullbackSndIso_hom_fst + theorem CategoryTheory.Limits.pullbackLeftPullbackSndIso_hom_snd + theorem CategoryTheory.Limits.pullbackLeftPullbackSndIso_inv_fst + theorem CategoryTheory.Limits.pullbackLeftPullbackSndIso_inv_fst_snd + theorem CategoryTheory.Limits.pullbackLeftPullbackSndIso_inv_snd_snd +/- def CategoryTheory.Limits.rightSquareIsPushout + def CategoryTheory.Limits.topSquareIsPullback 2024-08-04 10:22:14 2a92c20 doc(Cyclotomic/Basic): fix theorem docstring (#15337) ESTIMATED CHANGES Modified Mathlib/NumberTheory/Cyclotomic/Basic.lean 2024-08-04 10:22:13 d027c3a feat: add simp lemmas for explicit matrix traces (#15330) ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/Matrix/Trace.lean + theorem Matrix.trace_fin_one_of + theorem Matrix.trace_fin_three_of + theorem Matrix.trace_fin_two_of 2024-08-04 10:22:11 240d6ed feat: Complete homogeneous and monomial symmetric polynomials (#12572) Implement complete homogeneous and monomial symmetric polynomials. ESTIMATED CHANGES Modified Mathlib/RingTheory/MvPolynomial/NewtonIdentities.lean Modified Mathlib/RingTheory/MvPolynomial/Symmetric.lean +/- theorem MvPolynomial.aeval_esymm_eq_multiset_esymm +/- theorem MvPolynomial.degrees_esymm + def MvPolynomial.esymmPart + theorem MvPolynomial.esymmPart_indiscrete + theorem MvPolynomial.esymmPart_zero + theorem MvPolynomial.esymm_one + def MvPolynomial.hsymm + def MvPolynomial.hsymmPart + theorem MvPolynomial.hsymmPart_indiscrete + theorem MvPolynomial.hsymmPart_zero + theorem MvPolynomial.hsymm_isSymmetric + theorem MvPolynomial.hsymm_one + theorem MvPolynomial.hsymm_zero + theorem MvPolynomial.map_hsymm + def MvPolynomial.msymm + theorem MvPolynomial.msymm_isSymmetric + theorem MvPolynomial.msymm_one + theorem MvPolynomial.msymm_zero + def MvPolynomial.psumPart + theorem MvPolynomial.psumPart_indiscrete + theorem MvPolynomial.psumPart_zero - theorem MvPolynomial.psum_def +/- theorem MvPolynomial.psum_one +/- theorem MvPolynomial.psum_zero + theorem MvPolynomial.rename_hsymm + theorem MvPolynomial.rename_msymm +/- theorem MvPolynomial.support_esymm'' +/- theorem MvPolynomial.support_esymm' +/- theorem MvPolynomial.support_esymm +/- def MvPolynomial.symmetricSubalgebra 2024-08-04 10:11:14 f9701f4 feat(NumberTheory/Padics): Q_p and Z_p have an ultrametric (#15078) ESTIMATED CHANGES Modified Mathlib/NumberTheory/Padics/PadicIntegers.lean Modified Mathlib/NumberTheory/Padics/PadicNumbers.lean Modified Mathlib/Topology/MetricSpace/Ultra/Basic.lean 2024-08-03 20:26:03 10a631f chore(Fintype/Perm): use `getElem` in a proof (#15475) ESTIMATED CHANGES Modified Mathlib/Data/Fintype/Perm.lean 2024-08-03 17:12:42 d631146 feat(Finset/Image): generalize `disjoint_range_addLeftEmbedding` (#15423) and `disjoint_range_addRightEmbedding`. ESTIMATED CHANGES Modified Mathlib/Data/Finset/Image.lean +/- theorem Finset.disjoint_range_addLeftEmbedding +/- theorem Finset.disjoint_range_addRightEmbedding 2024-08-03 13:28:20 6695aaa chore: backports for leanprover/lean4#4814 (part 14) (#15406) ESTIMATED CHANGES Modified Mathlib/Algebra/MonoidAlgebra/Degree.lean +/- theorem AddMonoidAlgebra.apply_eq_zero_of_not_le_supDegree Modified Mathlib/Algebra/Star/Subalgebra.lean Modified Mathlib/LinearAlgebra/Dimension/Basic.lean Modified Mathlib/LinearAlgebra/Matrix/ToLin.lean +/- theorem LinearMap.toMatrix_prodMap +/- theorem Matrix.vecMul_stdBasis Modified Mathlib/Topology/AlexandrovDiscrete.lean +/- theorem Inducing.alexandrovDiscrete Modified Mathlib/Topology/Compactness/SigmaCompact.lean 2024-08-03 10:01:55 484c019 chore: remove some uses of `open Classical`, part 2 (#15413) See #15371. ESTIMATED CHANGES Modified Mathlib/Algebra/Category/AlgebraCat/Basic.lean Modified Mathlib/Algebra/Category/AlgebraCat/Limits.lean Modified Mathlib/Algebra/Category/FGModuleCat/Basic.lean Modified Mathlib/Algebra/Category/FGModuleCat/Limits.lean Modified Mathlib/Algebra/Category/Grp/Adjunctions.lean Modified Mathlib/Algebra/Category/Grp/FilteredColimits.lean Modified Mathlib/Algebra/Category/ModuleCat/Adjunctions.lean Modified Mathlib/Algebra/Category/ModuleCat/FilteredColimits.lean Modified Mathlib/Algebra/Category/MonCat/FilteredColimits.lean Modified Mathlib/Algebra/Category/Ring/Adjunctions.lean Modified Mathlib/Algebra/Category/Ring/Colimits.lean Modified Mathlib/Algebra/Category/Ring/Constructions.lean Modified Mathlib/Algebra/Category/Ring/FilteredColimits.lean Modified Mathlib/Algebra/EuclideanDomain/Defs.lean Modified Mathlib/Algebra/Field/IsField.lean Modified Mathlib/Algebra/Group/Subgroup/Basic.lean Modified Mathlib/Algebra/GroupWithZero/Basic.lean +/- theorem mul_eq_zero_of_ne_zero_imp_eq_zero Modified Mathlib/Algebra/GroupWithZero/Commute.lean Modified Mathlib/Algebra/GroupWithZero/Units/Basic.lean Modified Mathlib/Algebra/Homology/ComplexShape.lean Modified Mathlib/Algebra/Homology/DifferentialObject.lean Modified Mathlib/Algebra/Homology/Homotopy.lean Modified Mathlib/Algebra/Homology/HomotopyCategory.lean Modified Mathlib/Algebra/Homology/ImageToKernel.lean Modified Mathlib/Algebra/Module/DedekindDomain.lean +/- theorem Submodule.isInternal_prime_power_torsion +/- theorem Submodule.isInternal_prime_power_torsion_of_is_torsion_by_ideal Modified Mathlib/Algebra/Module/PID.lean +/- theorem Submodule.isInternal_prime_power_torsion_of_pid Modified Mathlib/Algebra/MonoidAlgebra/Degree.lean +/- theorem AddMonoidAlgebra.sup_support_add_le Modified Mathlib/Algebra/MvPolynomial/Rename.lean Modified Mathlib/Algebra/Order/CauSeq/Completion.lean Modified Mathlib/Algebra/Order/CompleteField.lean Modified Mathlib/Algebra/Order/GroupWithZero/Synonym.lean Modified Mathlib/AlgebraicGeometry/EllipticCurve/Affine.lean Modified Mathlib/AlgebraicGeometry/EllipticCurve/Jacobian.lean Modified Mathlib/AlgebraicGeometry/Limits.lean Modified Mathlib/AlgebraicGeometry/PrimeSpectrum/Basic.lean Modified Mathlib/AlgebraicGeometry/PrimeSpectrum/Maximal.lean Modified Mathlib/AlgebraicGeometry/StructureSheaf.lean Modified Mathlib/AlgebraicTopology/TopologicalSimplex.lean Modified Mathlib/Analysis/Analytic/Basic.lean Modified Mathlib/Analysis/ConstantSpeed.lean Modified Mathlib/Analysis/Hofer.lean Modified Mathlib/Analysis/MeanInequalities.lean Modified Mathlib/Analysis/MeanInequalitiesPow.lean Modified Mathlib/Analysis/Seminorm.lean Modified Mathlib/Dynamics/Circle/RotationNumber/TranslationNumber.lean Modified Mathlib/Dynamics/Ergodic/Conservative.lean Modified Mathlib/FieldTheory/AbelRuffini.lean Modified Mathlib/FieldTheory/Finiteness.lean Modified Mathlib/FieldTheory/Fixed.lean Modified Mathlib/FieldTheory/IsPerfectClosure.lean Modified Mathlib/FieldTheory/IsSepClosed.lean Modified Mathlib/FieldTheory/KrullTopology.lean Modified Mathlib/FieldTheory/Laurent.lean Modified Mathlib/FieldTheory/MvPolynomial.lean Modified Mathlib/FieldTheory/Normal.lean Modified Mathlib/FieldTheory/PrimitiveElement.lean Modified Mathlib/FieldTheory/Separable.lean +/- theorem Polynomial.count_roots_le_one +/- theorem Polynomial.multiplicity_le_one_of_separable +/- theorem Polynomial.nodup_roots +/- theorem Polynomial.separable_gcd_left +/- theorem Polynomial.separable_gcd_right Modified Mathlib/FieldTheory/SeparableClosure.lean Modified Mathlib/MeasureTheory/Group/Prod.lean Modified Mathlib/MeasureTheory/Integral/Bochner.lean Modified Mathlib/MeasureTheory/Integral/IntegrableOn.lean Modified Mathlib/MeasureTheory/Integral/Lebesgue.lean Modified Mathlib/MeasureTheory/Integral/Marginal.lean Modified Mathlib/MeasureTheory/Integral/MeanInequalities.lean Modified Mathlib/MeasureTheory/Integral/SetToL1.lean +/- theorem MeasureTheory.SimpleFunc.setToSimpleFunc_eq_sum_filter Modified Mathlib/MeasureTheory/MeasurableSpace/CountablyGenerated.lean Modified Mathlib/MeasureTheory/MeasurableSpace/Defs.lean +/- theorem measurableSet_insert Modified Mathlib/MeasureTheory/MeasurableSpace/Embedding.lean Modified Mathlib/MeasureTheory/Measure/AEMeasurable.lean Modified Mathlib/MeasureTheory/Measure/Complex.lean Modified Mathlib/MeasureTheory/Measure/Dirac.lean +/- theorem MeasureTheory.Measure.map_dirac Modified Mathlib/MeasureTheory/Measure/GiryMonad.lean Modified Mathlib/MeasureTheory/Measure/Haar/Basic.lean Modified Mathlib/MeasureTheory/Measure/Lebesgue/Basic.lean Modified Mathlib/MeasureTheory/Measure/Stieltjes.lean Modified Mathlib/MeasureTheory/Measure/VectorMeasure.lean Modified Mathlib/MeasureTheory/Measure/WithDensityVectorMeasure.lean Modified Mathlib/MeasureTheory/OuterMeasure/Caratheodory.lean Modified Mathlib/MeasureTheory/OuterMeasure/Induced.lean Modified Mathlib/MeasureTheory/OuterMeasure/OfFunction.lean Modified Mathlib/MeasureTheory/OuterMeasure/Operations.lean Modified Mathlib/RingTheory/DedekindDomain/Ideal.lean +/- theorem count_le_of_ideal_ge +/- theorem irreducible_pow_sup +/- theorem irreducible_pow_sup_of_ge +/- theorem irreducible_pow_sup_of_le +/- theorem sup_eq_prod_inf_factors 2024-08-03 09:06:17 321e94e doc: tweak documention of the longLine linter (#15458) ESTIMATED CHANGES Modified Mathlib/Tactic/Linter/Lint.lean 2024-08-03 02:06:31 eaef110 feat(Data/Set/Finite): union of infinitely many sets is infinite (#15447) We add three separate versions of the statement that the union of an infinite collection of sets is infinite. ESTIMATED CHANGES Modified Mathlib/Data/Set/Finite.lean + theorem Set.Infinite.biUnion + theorem Set.Infinite.sUnion + theorem Set.infinite_iUnion 2024-08-02 21:35:03 2f5275c feat: `RCLike` versions of Hahn-Banach separation theorems (#15416) Generalized first definition in `Mathlib.Analysis.NormedSpace.Extend`, and used this to prove `RCLike` generalizations of Hahn-Banach separation theorems. ESTIMATED CHANGES Modified Mathlib/Analysis/NormedSpace/Extend.lean Modified Mathlib/Analysis/NormedSpace/HahnBanach/Separation.lean + theorem RCLike.geometric_hahn_banach_closed_compact + theorem RCLike.geometric_hahn_banach_closed_point + theorem RCLike.geometric_hahn_banach_compact_closed + theorem RCLike.geometric_hahn_banach_open + theorem RCLike.geometric_hahn_banach_open_open + theorem RCLike.geometric_hahn_banach_open_point + theorem RCLike.geometric_hahn_banach_point_closed + theorem RCLike.geometric_hahn_banach_point_open + theorem RCLike.geometric_hahn_banach_point_point + theorem RCLike.iInter_halfspaces_eq + theorem RCLike.re_extendTo𝕜'ₗ + theorem RCLike.separate_convex_open_set 2024-08-02 19:53:57 9756867 feat(AlgebraicGeometry/Limits): Spec preserves finite coproducts (#14428) ESTIMATED CHANGES Modified Mathlib/AlgebraicGeometry/Gluing.lean Modified Mathlib/AlgebraicGeometry/Limits.lean + def AlgebraicGeometry.coprodIsoSigma + def AlgebraicGeometry.coprodMk + theorem AlgebraicGeometry.coprodMk_inl + theorem AlgebraicGeometry.coprodMk_inr + def AlgebraicGeometry.coprodOpenCover.{w} + def AlgebraicGeometry.coprodSpec + theorem AlgebraicGeometry.coprodSpec_apply + theorem AlgebraicGeometry.coprodSpec_coprodMk + theorem AlgebraicGeometry.coprodSpec_inl + theorem AlgebraicGeometry.coprodSpec_inr + theorem AlgebraicGeometry.isCompl_opensRange_inl_inr + theorem AlgebraicGeometry.isCompl_range_inl_inr + theorem AlgebraicGeometry.isIso_stalkMap_coprodSpec + def AlgebraicGeometry.sigmaSpec + theorem AlgebraicGeometry.ι_left_coprodIsoSigma_inv + theorem AlgebraicGeometry.ι_right_coprodIsoSigma_inv + theorem AlgebraicGeometry.ι_sigmaSpec Modified Mathlib/AlgebraicGeometry/OpenImmersion.lean + theorem AlgebraicGeometry.IsOpenImmersion.of_isLocalization - theorem AlgebraicGeometry.Scheme.IsOpenImmersion.of_isLocalization Modified Mathlib/AlgebraicGeometry/Scheme.lean Modified Mathlib/CategoryTheory/Limits/Opposites.lean + theorem CategoryTheory.Limits.fst_opProdIsoCoprod_hom + theorem CategoryTheory.Limits.inl_opProdIsoCoprod_inv + theorem CategoryTheory.Limits.inr_opProdIsoCoprod_inv + def CategoryTheory.Limits.opProdIsoCoprod + theorem CategoryTheory.Limits.opProdIsoCoprod_hom_fst + theorem CategoryTheory.Limits.opProdIsoCoprod_hom_snd + theorem CategoryTheory.Limits.opProdIsoCoprod_inv_inl + theorem CategoryTheory.Limits.opProdIsoCoprod_inv_inr + theorem CategoryTheory.Limits.snd_opProdIsoCoprod_hom 2024-08-02 14:42:18 7669be1 feat: Scalar multiplication of an indicator function (#15311) from GibbsMeasure ESTIMATED CHANGES Modified Mathlib/Algebra/Module/Basic.lean + theorem Set.smul_indicator_one_apply 2024-08-02 08:59:13 01959f9 feat(CategoryTheory): wide subcategories (#15374) This PR introduces the notion of wide subcategory. The API is in parallel with that of full subcategories. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Widesubcategory.lean + def CategoryTheory.InducedWideCategory + theorem CategoryTheory.WideSubcategory.comp_def + theorem CategoryTheory.WideSubcategory.id_def + structure CategoryTheory.WideSubcategory + def CategoryTheory.wideInducedFunctor + theorem CategoryTheory.wideSubcategoryInclusion.map + theorem CategoryTheory.wideSubcategoryInclusion.obj + def CategoryTheory.wideSubcategoryInclusion 2024-08-02 08:48:24 9c39e72 feat: rewrite updating style-exceptions in Lean (#14697) Rewrite the `update-style-exceptions` script in Lean, by adding an --update flag to `lint_style`: in this mode, the script will remove any exceptions which are no longer needed, add new entries for any current error, and try to leave existing entries untouched. (With one exception: if a "file too long" error still applies, but the file is currently at least 200 lines shorter, we update it to the new entry.) ESTIMATED CHANGES Modified .github/workflows/nolints.yml Modified Mathlib/Tactic/Linter/TextBased.lean + inductive ComparisonResult + def ErrorContext.find?_comparable + inductive OutputSetting - def StyleError.normalise + def compare +/- def lintModules Modified scripts/lint-style.py Modified scripts/lint_style.lean Added scripts/print-style-errors.sh Deleted scripts/update-style-exceptions.sh 2024-08-02 08:25:29 2802293 Fix documentation (#15435) docs: fix typo in the documentation ESTIMATED CHANGES Modified Mathlib/Analysis/Complex/Basic.lean 2024-08-02 07:08:50 6d1096a chore: backports for leanprover/lean4#4814 (part 13) (#15397) see https://github.com/leanprover-community/mathlib4/pull/15245 ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Antidiag/Finsupp.lean +/- theorem Finset.finsuppAntidiag_insert Modified Mathlib/CategoryTheory/Galois/Basic.lean Modified Mathlib/Data/Nat/Choose/Multinomial.lean +/- theorem Finset.sum_pow +/- theorem Finset.sum_pow_of_commute Modified Mathlib/GroupTheory/Abelianization.lean +/- def MulEquiv.abelianizationCongr +/- theorem abelianizationCongr_of +/- theorem abelianizationCongr_symm +/- theorem abelianizationCongr_trans Modified Mathlib/GroupTheory/GroupAction/Basic.lean +/- theorem MulAction.stabilizer_smul_eq_right Modified Mathlib/GroupTheory/GroupAction/Quotient.lean Modified Mathlib/GroupTheory/NoncommPiCoprod.lean +/- theorem MonoidHom.injective_noncommPiCoprod_of_independent +/- def MonoidHom.noncommPiCoprodEquiv +/- theorem MonoidHom.noncommPiCoprod_mulSingle +/- theorem MonoidHom.noncommPiCoprod_range +/- theorem Subgroup.noncommPiCoprod_mulSingle Modified Mathlib/GroupTheory/OrderOfElement.lean +/- theorem Nat.Coprime.pow_left_bijective +/- theorem Subgroup.orderOf_le_card +/- theorem Submonoid.orderOf_le_card +/- theorem pow_mod_natCard +/- theorem zpow_mod_natCard Modified Mathlib/GroupTheory/Perm/Cycle/Factors.lean +/- theorem Equiv.Perm.Disjoint.cycleOf_mul_distrib +/- theorem Equiv.Perm.IsCycle.cycleOf_eq +/- theorem Equiv.Perm.SameCycle.cycleOf_apply +/- theorem Equiv.Perm.SameCycle.cycleOf_eq +/- theorem Equiv.Perm.cycleOf_apply_of_not_sameCycle +/- theorem Equiv.Perm.cycleOf_mul_of_apply_right_eq_self Modified Mathlib/GroupTheory/PresentedGroup.lean +/- theorem PresentedGroup.closure_rels_subset_ker +/- theorem PresentedGroup.toGroup.of +/- theorem PresentedGroup.toGroup.unique +/- def PresentedGroup.toGroup +/- theorem PresentedGroup.to_group_eq_one_of_mem_closure Modified Mathlib/SetTheory/Cardinal/Ordinal.lean Modified Mathlib/SetTheory/Surreal/Multiplication.lean +/- theorem SetTheory.PGame.Equiv.mul_congr +/- theorem SetTheory.PGame.Equiv.mul_congr_left +/- theorem SetTheory.PGame.Equiv.mul_congr_right +/- theorem SetTheory.PGame.Numeric.mul +/- theorem SetTheory.PGame.Numeric.mul_pos +/- theorem SetTheory.PGame.P24 +/- theorem SetTheory.PGame.P3_of_lt_of_lt Modified Mathlib/Topology/Bases.lean +/- theorem TopologicalSpace.SecondCountableTopology.mk' +/- theorem TopologicalSpace.secondCountableTopology_iInf +/- theorem TopologicalSpace.secondCountableTopology_induced Modified Mathlib/Topology/Clopen.lean +/- theorem Set.Finite.isClopen_biInter +/- theorem Set.Finite.isClopen_biUnion +/- theorem isClopen_biInter_finset +/- theorem isClopen_biUnion_finset +/- theorem isClopen_iInter_of_finite +/- theorem isClopen_iUnion_of_finite Modified scripts/style-exceptions.txt 2024-08-02 07:08:49 5e31476 fix(CategoryTheory): move a general lemma about created limits to the correct file (#15264) This lemma was accidentally in a file about light profinite sets, but is a completely general category-theoretic statement. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Limits/Creates.lean + theorem CategoryTheory.liftedLimitMapsToOriginal_inv_map_π Modified Mathlib/Topology/Category/LightProfinite/AsLimit.lean - theorem LightProfinite.map_liftedLimit 2024-08-02 06:24:05 b941d5e chore: backports for leanprover/lean4#4814 (part 12) (#15396) see https://github.com/leanprover-community/mathlib4/pull/15245 ESTIMATED CHANGES Modified Mathlib/Algebra/BigOperators/Finsupp.lean +/- theorem Finsupp.sum_sum_index' Modified Mathlib/Algebra/Homology/Embedding/Restriction.lean Modified Mathlib/Algebra/Lie/Basic.lean Modified Mathlib/Algebra/Module/Submodule/Range.lean +/- theorem Submodule.coe_mapIic_apply +/- def Submodule.mapIic Modified Mathlib/CategoryTheory/Limits/FinallySmall.lean +/- theorem CategoryTheory.finallySmall_of_final_of_essentiallySmall +/- theorem CategoryTheory.finallySmall_of_final_of_finallySmall +/- theorem CategoryTheory.initiallySmall_of_initial_of_essentiallySmall +/- theorem CategoryTheory.initiallySmall_of_initial_of_initiallySmall Modified Mathlib/CategoryTheory/Limits/Presheaf.lean Modified Mathlib/CategoryTheory/Localization/DerivabilityStructure/Constructor.lean +/- theorem CategoryTheory.LocalizerMorphism.IsRightDerivabilityStructure.mk' Modified Mathlib/CategoryTheory/Shift/InducedShiftSequence.lean Modified Mathlib/CategoryTheory/Sites/Adjunction.lean +/- def CategoryTheory.Sheaf.adjunction +/- def CategoryTheory.Sheaf.composeEquiv Modified Mathlib/CategoryTheory/Sites/CoverLifting.lean +/- def CategoryTheory.Functor.pushforwardContinuousSheafificationCompatibility Modified Mathlib/Data/Finite/Card.lean +/- theorem Set.Finite.eq_of_subset_of_card_le Modified Mathlib/Data/Finset/Pointwise.lean +/- def Finset.imageMulHom +/- theorem Finset.image_mul +/- theorem Finset.inf_mul_left +/- theorem Finset.inf_mul_right +/- theorem Finset.isUnit_iff_singleton_aux +/- theorem Finset.le_inf_mul +/- theorem Finset.sup_mul_le +/- theorem Finset.sup_mul_left +/- theorem Finset.sup_mul_right Modified Mathlib/Data/Int/CardIntervalMod.lean Modified Mathlib/Data/Matroid/Basic.lean +/- theorem Matroid.ExchangeProperty.antichain +/- theorem Matroid.ExchangeProperty.encard_base_eq +/- theorem Matroid.ExchangeProperty.encard_diff_eq Modified Mathlib/LinearAlgebra/Multilinear/Basic.lean +/- theorem MultilinearMap.domDomRestrict_aux +/- theorem MultilinearMap.domDomRestrict_aux_right +/- theorem MultilinearMap.iteratedFDeriv_aux Modified Mathlib/MeasureTheory/MeasurableSpace/Basic.lean +/- theorem measurable_uniqueElim Modified Mathlib/MeasureTheory/MeasurableSpace/Embedding.lean Modified Mathlib/Topology/Constructions.lean +/- theorem Filter.Tendsto.fst_nhds +/- theorem Filter.Tendsto.snd_nhds +/- theorem prod_induced_induced Modified Mathlib/Topology/ContinuousOn.lean +/- theorem continuousOn_to_generateFrom_iff 2024-08-01 22:59:42 35ccd78 fix(lint-style): mention the correct size limit in 'file too long' errors (#15414) The previous error message (for github consumption) was wrong in two ways: - it would always print the size limit, even when there was no previous exception for this file - it would print the *new* limit, not the previous one To fix this, we need to make an existing limit part of the error data. ESTIMATED CHANGES Modified Mathlib/Tactic/Linter/TextBased.lean 2024-08-01 21:35:56 246247f chore: update Mathlib dependencies 2024-08-01 (#15405) This PR updates the Mathlib dependencies. ESTIMATED CHANGES Modified lake-manifest.json 2024-08-01 20:50:36 e318dc8 refactor(Condensed): merge files about discreteness (#15402) ESTIMATED CHANGES Modified Mathlib.lean Deleted Mathlib/Condensed/Discrete.lean Added Mathlib/Condensed/Discrete/Basic.lean Deleted Mathlib/Condensed/Light/Discrete.lean 2024-08-01 20:21:09 adcc6aa feat(Topology/ENNReal): `zpow` is continuous (#15381) Also add some `fun_prop` attrs ESTIMATED CHANGES Modified Mathlib/Topology/Instances/ENNReal.lean - theorem ENNReal.continuous_pow 2024-08-01 19:38:46 dea069e chore(Turan): remove superfluous DecidableEq assumption (#15280) Found by the DecidableEq linter in #10235. ESTIMATED CHANGES Modified Mathlib/Combinatorics/SimpleGraph/Turan.lean +/- theorem SimpleGraph.IsTuranMaximal.card_parts +/- theorem SimpleGraph.IsTuranMaximal.card_parts_le +/- theorem SimpleGraph.IsTuranMaximal.degree_eq_card_sub_part_card +/- def SimpleGraph.IsTuranMaximal.finpartition +/- theorem SimpleGraph.IsTuranMaximal.isEquipartition +/- theorem SimpleGraph.IsTuranMaximal.iso +/- theorem SimpleGraph.IsTuranMaximal.not_adj_iff_part_eq 2024-08-01 19:15:26 cde7590 chore: three more Fintype -> Finite replacements (#15283) Found by the linter in #10235. ESTIMATED CHANGES Modified Mathlib/Data/Finset/Density.lean +/- theorem Finset.dens_filter_add_dens_filter_not_eq_dens Modified Mathlib/Data/Fintype/CardEmbedding.lean +/- theorem Fintype.card_embedding_eq_of_infinite Modified Mathlib/LinearAlgebra/Matrix/GeneralLinearGroup/Card.lean 2024-08-01 17:52:43 852c1ad feat: notations to specify sigma algebras for integrability, measures and kernels (#15316) from GibbsMeasure ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Function/L1Space.lean Modified Mathlib/MeasureTheory/MeasurableSpace/Defs.lean Modified Mathlib/MeasureTheory/Measure/MeasureSpaceDef.lean Modified Mathlib/Probability/Kernel/Basic.lean 2024-08-01 17:52:42 f2107dd fix: generalize AlgEquiv.coe_mk (#15243) ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/Equiv.lean +/- theorem AlgEquiv.coe_mk Modified Mathlib/RingTheory/IsAdjoinRoot.lean Modified Mathlib/RingTheory/Norm/Basic.lean 2024-08-01 17:52:41 3f10dd7 chore: remove Data/Buffer/Basic (#15241) This was an empty placeholder created for the porting dashboard: we can remove it now. ESTIMATED CHANGES Modified Mathlib.lean Deleted Mathlib/Data/Buffer/Basic.lean 2024-08-01 16:59:35 f05779e chore: remove unnecessary implicit arguments in MonoidWithZeroHom.coe_copy (#15248) It's perfectly fine for these to just be instance implicit arguments. ESTIMATED CHANGES Modified Mathlib/Algebra/GroupWithZero/Hom.lean +/- theorem MonoidWithZeroHom.coe_copy +/- theorem MonoidWithZeroHom.copy_eq 2024-08-01 16:02:41 45697ce chore: backports for leanprover/lean4#4814 (part 11) (#15394) see https://github.com/leanprover-community/mathlib4/pull/15245 ESTIMATED CHANGES Modified Mathlib/Algebra/Ring/Subsemiring/Basic.lean Modified Mathlib/CategoryTheory/Sites/PreservesSheafification.lean +/- theorem CategoryTheory.GrothendieckTopology.preservesSheafification_iff_of_adjunctions Modified Mathlib/Combinatorics/Colex.lean +/- theorem Finset.Colex.ofColex_top +/- theorem Finset.Colex.toColex_univ Modified Mathlib/Combinatorics/SetFamily/AhlswedeZhang.lean +/- theorem Finset.map_truncatedSup Modified Mathlib/Combinatorics/SetFamily/FourFunctions.lean +/- theorem collapse_modular Modified Mathlib/Combinatorics/SimpleGraph/Density.lean +/- theorem Rel.card_interedges_comm +/- theorem Rel.mk_mem_interedges_comm Modified Mathlib/Combinatorics/SimpleGraph/Hamiltonian.lean +/- theorem SimpleGraph.Walk.IsHamiltonianCycle.length_eq Modified Mathlib/Data/Finset/Sups.lean +/- theorem Finset.image_compl Modified Mathlib/Data/Fintype/BigOperators.lean +/- theorem Fintype.card_filter_piFinset_eq +/- theorem Fintype.card_filter_piFinset_eq_of_mem +/- theorem Fintype.card_pi Modified Mathlib/Data/List/EditDistance/Defs.lean +/- theorem suffixLevenshtein_cons₁_aux Modified Mathlib/Data/Sym/Card.lean Modified Mathlib/Order/BooleanGenerators.lean Modified Mathlib/Order/CompactlyGenerated/Basic.lean Modified Mathlib/Order/Filter/Interval.lean Modified Mathlib/RingTheory/HahnSeries/Basic.lean +/- theorem HahnSeries.leadingCoeff_eq +/- theorem HahnSeries.suppBddBelow_supp_PWO Modified Mathlib/RingTheory/Nilpotent/Defs.lean +/- theorem Commute.isNilpotent_mul_left +/- theorem Commute.isNilpotent_mul_right Modified Mathlib/RingTheory/NonUnitalSubsemiring/Basic.lean Modified Mathlib/Topology/Maps/Basic.lean +/- theorem OpenEmbedding.continuousAt_iff +/- theorem OpenEmbedding.tendsto_nhds_iff Modified Mathlib/Topology/NhdsSet.lean Modified Mathlib/Topology/Order/Bornology.lean 2024-08-01 16:02:40 786a050 chore: backports for leanprover/lean4#4814 (part 9) (#15389) see https://github.com/leanprover-community/mathlib4/pull/15245 ESTIMATED CHANGES Modified Mathlib/Algebra/BigOperators/Ring.lean +/- theorem Commute.sum_left +/- theorem Commute.sum_right +/- theorem Finset.prod_add_ordered +/- theorem Finset.sum_pow' +/- theorem Fintype.prod_sum Modified Mathlib/Algebra/BigOperators/WithTop.lean Modified Mathlib/Algebra/ContinuedFractions/Computation/TerminatesIffRat.lean +/- theorem GenContFract.IntFractPair.coe_of_rat_eq +/- theorem GenContFract.IntFractPair.coe_stream'_rat_eq +/- theorem GenContFract.IntFractPair.coe_stream_nth_rat_eq +/- theorem GenContFract.coe_of_h_rat_eq +/- theorem GenContFract.coe_of_rat_eq +/- theorem GenContFract.coe_of_s_get?_rat_eq +/- theorem GenContFract.coe_of_s_rat_eq Modified Mathlib/Algebra/GroupWithZero/NonZeroDivisors.lean Modified Mathlib/Algebra/Order/Ring/Unbundled/Basic.lean Modified Mathlib/Analysis/Normed/Group/Seminorm.lean Modified Mathlib/CategoryTheory/Abelian/Transfer.lean +/- def CategoryTheory.AbelianOfAdjunction.coimageIsoImage +/- def CategoryTheory.AbelianOfAdjunction.coimageIsoImageAux +/- theorem CategoryTheory.AbelianOfAdjunction.coimageIsoImage_hom +/- def CategoryTheory.AbelianOfAdjunction.cokernelIso +/- theorem CategoryTheory.AbelianOfAdjunction.hasCokernels +/- theorem CategoryTheory.AbelianOfAdjunction.hasKernels Modified Mathlib/CategoryTheory/GlueData.lean Modified Mathlib/CategoryTheory/Localization/StructuredArrow.lean +/- theorem CategoryTheory.Localization.induction_costructuredArrow +/- theorem CategoryTheory.Localization.induction_structuredArrow Modified Mathlib/CategoryTheory/Shift/Localization.lean Modified Mathlib/Combinatorics/SimpleGraph/Finite.lean +/- theorem SimpleGraph.deleteFar_iff Modified Mathlib/Combinatorics/SimpleGraph/Operations.lean Modified Mathlib/Computability/RegularExpressions.lean Modified Mathlib/Data/Finset/NAry.lean +/- theorem Finset.image₂_assoc Modified Mathlib/Data/Finset/Sym.lean +/- theorem Finset.image_diag_union_image_offDiag Modified Mathlib/Data/Fintype/Pi.lean +/- theorem Finset.Nonempty.piFinset_const Modified Mathlib/GroupTheory/GroupAction/Basic.lean +/- theorem MulAction.le_stabilizer_smul_right Modified Mathlib/GroupTheory/Perm/ClosureSwap.lean Modified Mathlib/Order/Birkhoff.lean +/- theorem OrderEmbedding.birkhoffSet_apply Modified Mathlib/Order/Interval/Finset/Basic.lean Modified Mathlib/Order/Interval/Finset/Box.lean Modified Mathlib/Order/Interval/Finset/Defs.lean +/- theorem Finset.map_subtype_embedding_Ici +/- theorem Finset.map_subtype_embedding_Iic +/- theorem Finset.map_subtype_embedding_Iio +/- theorem Finset.map_subtype_embedding_Ioi Modified Mathlib/Order/Interval/Finset/Nat.lean +/- theorem Nat.cauchy_induction +/- theorem Nat.cauchy_induction_two_mul +/- theorem Nat.decreasing_induction_of_infinite +/- theorem Nat.decreasing_induction_of_not_bddAbove Modified Mathlib/Order/LiminfLimsup.lean Modified Mathlib/Topology/Basic.lean +/- theorem TopologicalSpace.ext_iff_isClosed +/- theorem TopologicalSpace.ext_iff_nhds Modified Mathlib/Topology/Order.lean +/- theorem continuous_discrete_rng 2024-08-01 15:33:58 a33cf03 feat: `StarModule ℝ E` implies `StarModule ℝ≥0 E` (#15392) ESTIMATED CHANGES Modified Mathlib/Data/NNReal/Star.lean 2024-08-01 14:36:47 19f233e feat: Adds a variant of lemma about eigenvectors. (#15404) ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/Eigenspace/Basic.lean + theorem Module.End.eigenvectors_linearIndependent' 2024-08-01 14:36:45 227496b chore: avoid yoda comparisons (#15399) As recommended in the Lean 4.10 release blog, prefer comparisons `(· == a)` over `(a == ·)`. ESTIMATED CHANGES Modified Mathlib/Tactic/CC/Addition.lean 2024-08-01 14:36:44 4410f36 feat: `gcongr` with `Finset.coe_subset` (#15312) from GibbsMeasure ESTIMATED CHANGES Modified Mathlib/Data/Finset/Basic.lean 2024-08-01 14:36:43 bc5f69e doc(Tactic/HelpCmd): fix typo (option -> attribute) (#15307) ESTIMATED CHANGES Modified Mathlib/Tactic/HelpCmd.lean 2024-08-01 13:36:39 1308f95 feat: Upper bound on multinomial coefficients with even exponent (#15338) From LeanAPAP ESTIMATED CHANGES Modified Mathlib/Data/Nat/Choose/Multinomial.lean + theorem Nat.multinomial_two_mul_le_mul_multinomial Modified Mathlib/Data/Nat/Defs.lean 2024-08-01 10:24:04 0139a89 feat(IntermediateValue): add `IsFixedPt` corollaries (#15395) Motivated by https://github.com/b-mehta/sharkovsky Also move the definition of `Function.IsFixedPt` to `Logic/Function/Defs`. ESTIMATED CHANGES Modified Mathlib/Dynamics/FixedPoints/Basic.lean - def Function.IsFixedPt Modified Mathlib/Logic/Function/Defs.lean + def Function.IsFixedPt Modified Mathlib/Topology/Order/IntermediateValue.lean + theorem exists_mem_Icc_isFixedPt + theorem exists_mem_Icc_isFixedPt_of_mapsTo + theorem exists_mem_uIcc_isFixedPt +/- theorem intermediate_value_uIcc +/- theorem isPreconnected_uIcc 2024-08-01 09:23:33 2df7d94 chore: backports for leanprover/lean4#4814 (part 10) (#15390) see https://github.com/leanprover-community/mathlib4/pull/15245 ESTIMATED CHANGES Modified Mathlib/CategoryTheory/GradedObject/Monoidal.lean 2024-08-01 09:13:24 8de1883 feat(Topology): add API for compactly generated spaces (#15203) Define compactly generated topological spaces, which are spaces whose topology is coinduced by continuous maps whose domain is compact Hausdorff. Prove basic properties and instances. Provide instances for sequential spaces and Hausdorff weakly locally compact spaces. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Topology/Category/CompactlyGenerated.lean - def TopologicalSpace.compactlyGenerated - theorem continuous_from_compactlyGenerated - theorem continuous_from_uCompactlyGeneratedSpace - theorem eq_compactlyGenerated - theorem uCompactlyGeneratedSpace_of_continuous_maps Added Mathlib/Topology/Compactness/CompactlyGeneratedSpace.lean + theorem CompactlyGeneratedSpace.isClosed' + theorem CompactlyGeneratedSpace.isClosed + theorem CompactlyGeneratedSpace.isOpen' + theorem CompactlyGeneratedSpace.isOpen + def TopologicalSpace.compactlyGenerated + theorem UCompactlyGeneratedSpace.isClosed + theorem UCompactlyGeneratedSpace.isOpen + theorem compactlyGeneratedSpace_of_coinduced + theorem compactlyGeneratedSpace_of_continuous_maps + theorem compactlyGeneratedSpace_of_isClosed + theorem compactlyGeneratedSpace_of_isClosed_of_t2 + theorem compactlyGeneratedSpace_of_isOpen + theorem compactlyGeneratedSpace_of_isOpen_of_t2 + theorem continuous_from_compactlyGenerated + theorem continuous_from_compactlyGeneratedSpace + theorem continuous_from_uCompactlyGeneratedSpace + theorem eq_compactlyGenerated + theorem uCompactlyGeneratedSpace_of_coinduced + theorem uCompactlyGeneratedSpace_of_continuous_maps + theorem uCompactlyGeneratedSpace_of_isClosed + theorem uCompactlyGeneratedSpace_of_isOpen 2024-08-01 08:35:57 26269fb refactor(Topology/Category): unify some definitions of subcategories of compact Hausdorff spaces (#12930) This PR unifies the definitions of the categories `CompHaus`, `Profinite`, `Stonean`, and `LightProfinite` by defining a structure `CompHausLike P` depending on a predicate `P` on topological spaces. Many of the properties of these categories of compact Hausdorff spaces are shared between them and this approach reduces duplication of boilerplate code, in particular the explicit constructions of certain limits and colimits. ESTIMATED CHANGES Modified Mathlib/Topology/Category/CompHaus/EffectiveEpi.lean - def CompHaus.struct Modified Mathlib/Topology/Category/CompHaus/Limits.lean - theorem CompHaus.Sigma.ι_comp_toFiniteCoproduct - def CompHaus.coproductHomeoCoproduct - def CompHaus.coproductIsoCoproduct - def CompHaus.finiteCoproduct.desc - theorem CompHaus.finiteCoproduct.hom_ext - def CompHaus.finiteCoproduct.isColimit - def CompHaus.finiteCoproduct.ι - theorem CompHaus.finiteCoproduct.ι_desc - theorem CompHaus.finiteCoproduct.ι_desc_apply - theorem CompHaus.finiteCoproduct.ι_injective - theorem CompHaus.finiteCoproduct.ι_jointly_surjective - def CompHaus.finiteCoproduct - def CompHaus.isTerminalPUnit - theorem CompHaus.pullback.condition - def CompHaus.pullback.cone - def CompHaus.pullback.fst - theorem CompHaus.pullback.hom_ext - def CompHaus.pullback.isLimit - def CompHaus.pullback.lift - theorem CompHaus.pullback.lift_fst - theorem CompHaus.pullback.lift_snd - def CompHaus.pullback.snd - def CompHaus.pullback - def CompHaus.pullbackHomeoPullback - def CompHaus.pullbackIsoPullback - theorem CompHaus.pullback_fst_eq - theorem CompHaus.pullback_snd_eq Modified Mathlib/Topology/Category/LightProfinite/EffectiveEpi.lean Modified Mathlib/Topology/Category/Profinite/EffectiveEpi.lean - def Profinite.struct Modified Mathlib/Topology/Category/Stonean/EffectiveEpi.lean - def Stonean.struct 2024-08-01 08:19:11 d37ebdd chore: update Mathlib dependencies 2024-08-01 (#15393) This PR updates the Mathlib dependencies. ESTIMATED CHANGES Modified lake-manifest.json 2024-08-01 08:01:45 b2d7c49 chore(MeasureTheory/Prod): minor golf, add a docstring (#15353) ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Constructions/Prod/Basic.lean 2024-08-01 07:51:36 180c2e0 chore: report commits in nightly testing bot (#15145) ESTIMATED CHANGES Modified .github/workflows/nightly_detect_failure.yml 2024-08-01 04:29:16 c96401c refactor(Topology/Category): use `CompHausLike` API for limits in `Profinite` and `Stonean` (#15363) ESTIMATED CHANGES Modified Mathlib/Topology/Category/Profinite/Limits.lean - theorem Profinite.Sigma.ι_comp_toFiniteCoproduct - def Profinite.coproductHomeoCoproduct - def Profinite.coproductIsoCoproduct - def Profinite.finiteCoproduct.desc - theorem Profinite.finiteCoproduct.hom_ext - def Profinite.finiteCoproduct.isColimit - def Profinite.finiteCoproduct.ι - theorem Profinite.finiteCoproduct.ι_desc - theorem Profinite.finiteCoproduct.ι_desc_apply - theorem Profinite.finiteCoproduct.ι_injective - theorem Profinite.finiteCoproduct.ι_jointly_surjective - def Profinite.finiteCoproduct - theorem Profinite.pullback.condition - def Profinite.pullback.cone - def Profinite.pullback.fst - theorem Profinite.pullback.hom_ext - def Profinite.pullback.isLimit - def Profinite.pullback.lift - theorem Profinite.pullback.lift_fst - theorem Profinite.pullback.lift_snd - def Profinite.pullback.snd - def Profinite.pullback - def Profinite.pullbackHomeoPullback - def Profinite.pullbackIsoPullback - theorem Profinite.pullback_fst_eq - theorem Profinite.pullback_snd_eq Modified Mathlib/Topology/Category/Stonean/Limits.lean - theorem Stonean.HasPullbackOpenEmbedding - theorem Stonean.Sigma.openEmbedding_ι - def Stonean.coproductIsoCoproduct - def Stonean.createsPullbacksOfOpenEmbedding + theorem Stonean.extremallyDisconnected_preimage + theorem Stonean.extremallyDisconnected_pullback - def Stonean.finiteCoproduct.desc - theorem Stonean.finiteCoproduct.hom_ext - def Stonean.finiteCoproduct.isColimit - theorem Stonean.finiteCoproduct.openEmbedding_ι - def Stonean.finiteCoproduct.ι - theorem Stonean.finiteCoproduct.ι_desc - def Stonean.finiteCoproduct - theorem Stonean.pullback.condition - def Stonean.pullback.cone - def Stonean.pullback.fst - theorem Stonean.pullback.hom_ext - def Stonean.pullback.isLimit - def Stonean.pullback.lift - theorem Stonean.pullback.lift_fst - theorem Stonean.pullback.lift_snd - def Stonean.pullback.snd - def Stonean.pullback - def Stonean.pullbackIsoPullback 2024-08-01 04:08:26 81a4038 refactor: remove some dependence on `circle` in C⋆-algebras (#15343) ESTIMATED CHANGES Modified Mathlib/Analysis/CstarAlgebra/ContinuousFunctionalCalculus/Instances.lean Modified Mathlib/Analysis/CstarAlgebra/ContinuousFunctionalCalculus/NonUnital.lean Modified Mathlib/Analysis/CstarAlgebra/ContinuousFunctionalCalculus/Unital.lean Modified Mathlib/Analysis/CstarAlgebra/ContinuousFunctionalCalculus/Unitary.lean + theorem cfc_unitary_iff - theorem mem_unitary_of_spectrum_subset_circle + theorem mem_unitary_of_spectrum_subset_unitary - theorem spectrum_subset_circle_of_mem_unitary + theorem spectrum_subset_unitary_of_mem_unitary - theorem unitary_iff_isStarNormal_and_spectrum_subset_circle + theorem unitary_iff_isStarNormal_and_spectrum_subset_unitary 2024-08-01 03:42:29 a8a6183 feat(CstarAlgebra): define Hilbert C⋆-modules (#15244) This PR defines [Hilbert C⋆-modules](https://en.wikipedia.org/wiki/Hilbert_C*-module). A Hilbert C⋆-module is a complex module `E` together with a right `A`-module structure, where `A` is a C⋆-algebra, and with an "inner product" that takes values in `A`. This inner product satisfies the Cauchy-Schwarz inequality, and induces a norm that makes `E` a normed vector space. This is a stepping stone towards proving that matrices with entries in a C⋆-algebra are a C⋆-algebra, which is in turn needed to define completely positive maps. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/CstarAlgebra/Module.lean + theorem CstarModule.continuous_inner + theorem CstarModule.innerSL_apply + theorem CstarModule.inner_add_left + theorem CstarModule.inner_mul_inner_swap_le + theorem CstarModule.inner_neg_left + theorem CstarModule.inner_neg_right + theorem CstarModule.inner_op_smul_left + theorem CstarModule.inner_self_eq_norm_sq + theorem CstarModule.inner_smul_left_complex + theorem CstarModule.inner_smul_left_real + theorem CstarModule.inner_smul_right_real + theorem CstarModule.inner_sub_left + theorem CstarModule.inner_sub_right + theorem CstarModule.inner_sum_left + theorem CstarModule.inner_sum_right + theorem CstarModule.inner_zero_left + theorem CstarModule.inner_zero_right + def CstarModule.innerₛₗ + theorem CstarModule.innerₛₗ_apply + theorem CstarModule.isSelfAdjoint_inner_self + theorem CstarModule.norm_eq_csSup + theorem CstarModule.norm_inner_le + theorem CstarModule.norm_sq_eq + theorem CstarModule.norm_zero_iff + theorem CstarModule.normedSpaceCore 2024-08-01 02:49:41 5745d77 chore: backports for leanprover/lean4#4814 (part 8) (#15349) see https://github.com/leanprover-community/mathlib4/pull/15245 ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Archimedean.lean Modified Mathlib/Algebra/Order/Module/Defs.lean Modified Mathlib/Algebra/Order/Ring/Cast.lean Modified Mathlib/CategoryTheory/DifferentialObject.lean Modified Mathlib/CategoryTheory/GradedObject.lean +/- theorem CategoryTheory.GradedObject.hasMap_comp +/- theorem CategoryTheory.GradedObject.mapMap_comp Modified Mathlib/CategoryTheory/Limits/Shapes/BinaryProducts.lean Modified Mathlib/CategoryTheory/Localization/CalculusOfFractions.lean +/- theorem CategoryTheory.MorphismProperty.LeftFraction.Localization.Hom.map_mk +/- def CategoryTheory.MorphismProperty.LeftFraction.comp₀ +/- theorem CategoryTheory.MorphismProperty.LeftFraction.comp₀_rel +/- theorem CategoryTheory.MorphismProperty.LeftFraction.map_compatibility +/- theorem CategoryTheory.MorphismProperty.LeftFraction.map_eq +/- theorem CategoryTheory.MorphismProperty.LeftFraction.map_eq_of_map_eq +/- theorem CategoryTheory.MorphismProperty.equivalenceLeftFractionRel Modified Mathlib/CategoryTheory/Shift/Basic.lean Modified Mathlib/CategoryTheory/SmallObject/Iteration.lean Modified Mathlib/RingTheory/Coprime/Basic.lean +/- theorem IsRelPrime.add_mul_left_left +/- theorem IsRelPrime.add_mul_left_right +/- theorem IsRelPrime.add_mul_right_left +/- theorem IsRelPrime.add_mul_right_right +/- theorem IsRelPrime.mul_add_left_left +/- theorem IsRelPrime.mul_add_left_right +/- theorem IsRelPrime.mul_add_right_left +/- theorem IsRelPrime.mul_add_right_right +/- theorem IsRelPrime.neg_left +/- theorem IsRelPrime.neg_right +/- theorem isCoprime_mul_unit_left +/- theorem isCoprime_mul_unit_left_left +/- theorem isCoprime_mul_unit_left_right +/- theorem isCoprime_mul_unit_right +/- theorem isCoprime_mul_unit_right_left +/- theorem isCoprime_mul_unit_right_right 2024-08-01 02:03:27 e76ade8 feat(ContinuousOn): add `ContinuousOn.iterate` (#15388) From https://github.com/b-mehta/sharkovsky/ ESTIMATED CHANGES Modified Mathlib/Topology/ContinuousOn.lean 2024-08-01 02:03:26 35ff6b8 feat(Separation): add `IsClosed.isClosed_eq` (#15382) Named similarly to `IsClosed.isClosed_le`. From https://github.com/b-mehta/sharkovsky. ESTIMATED CHANGES Modified Mathlib/Topology/Separation.lean 2024-08-01 01:16:36 d862d98 chore(MvPowerSeries/Basic): remove superfluous DecidableEq (#15302) Found by the linter in #10235. ESTIMATED CHANGES Modified Mathlib/RingTheory/MvPowerSeries/Basic.lean +/- theorem MvPowerSeries.coeff_eq_zero_of_constantCoeff_nilpotent 2024-08-01 01:16:35 1f6c167 chore(Data/Finsupp/Defs): remove superfluous DecidableEq (#15301) Found by the linter in #10235. ESTIMATED CHANGES Modified Mathlib/Data/Finsupp/Defs.lean +/- theorem Finsupp.support_update_subset 2024-08-01 00:14:52 83173e4 chore: backport some changes for lean v4.11.0 (#15368) ESTIMATED CHANGES Modified Mathlib/AlgebraicGeometry/Cover/Open.lean Modified Mathlib/AlgebraicGeometry/Properties.lean Modified Mathlib/Analysis/Normed/Operator/WeakOperatorTopology.lean - theorem ContinuousLinearMapWOT.ext_dual_iff Modified Mathlib/Analysis/NormedSpace/Pointwise.lean Modified Mathlib/CategoryTheory/IsomorphismClasses.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Pullback/Assoc.lean Modified Mathlib/CategoryTheory/Thin.lean Modified Mathlib/Combinatorics/Additive/PluenneckeRuzsa.lean Modified Mathlib/Combinatorics/SimpleGraph/Trails.lean Modified Mathlib/Computability/TuringMachine.lean Modified Mathlib/Data/Fin/Basic.lean +/- theorem Fin.castSucc_zero' Modified Mathlib/Data/LazyList/Basic.lean Modified Mathlib/Data/List/Chain.lean Modified Mathlib/Data/List/DropRight.lean Modified Mathlib/Order/Chain.lean Modified Mathlib/Probability/Kernel/Basic.lean - theorem ProbabilityTheory.Kernel.ext_iff Modified Mathlib/Probability/Kernel/RadonNikodym.lean Modified Mathlib/RingTheory/HahnSeries/Addition.lean Modified Mathlib/RingTheory/HahnSeries/Basic.lean Modified Mathlib/RingTheory/HahnSeries/Multiplication.lean - theorem HahnModule.ext_iff Modified Mathlib/RingTheory/MvPowerSeries/Basic.lean - theorem MvPowerSeries.ext_iff Modified Mathlib/RingTheory/PowerSeries/Basic.lean - theorem PowerSeries.ext_iff Modified Mathlib/RingTheory/PowerSeries/WellKnown.lean Modified Mathlib/SetTheory/ZFC/Basic.lean Modified Mathlib/Topology/Category/Profinite/Nobeling.lean +/- theorem Profinite.NobelingProof.GoodProducts.span_iff_products 2024-08-01 00:14:51 00f0e13 chore(DirectSum/Algebra): remove superfluous DecidableEq (#15304) Found by the linter in #10235. ESTIMATED CHANGES Modified Mathlib/Algebra/DirectSum/Algebra.lean Modified Mathlib/Algebra/DirectSum/Internal.lean Modified Mathlib/LinearAlgebra/TensorPower.lean 2024-08-01 00:14:49 0cafb4a chore: robustifying for debug.byAsSorry (part 14) (#15247) ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/Quasispectrum.lean +/- theorem QuasispectrumRestricts.algebraMap_image +/- theorem QuasispectrumRestricts.apply_mem +/- theorem QuasispectrumRestricts.image +/- theorem QuasispectrumRestricts.subset_preimage +/- theorem SpectrumRestricts.algebraMap_image +/- theorem SpectrumRestricts.apply_mem +/- theorem SpectrumRestricts.image +/- theorem SpectrumRestricts.subset_preimage Modified Mathlib/Algebra/Polynomial/AlgebraMap.lean +/- theorem Polynomial.aeval_apply_smul_mem_of_le_comap Modified Mathlib/LinearAlgebra/Basis.lean +/- def Basis.mapCoeffs Modified Mathlib/LinearAlgebra/SesquilinearForm.lean +/- theorem LinearMap.IsAlt.isRefl +/- theorem LinearMap.IsAlt.neg +/- theorem LinearMap.IsAlt.ortho_comm Modified Mathlib/ModelTheory/Substructures.lean +/- def FirstOrder.Language.LHom.substructureReduct +/- def FirstOrder.Language.Substructure.gciMapComap 2024-08-01 00:14:48 a904cfd chore: backports for leanprover/lean4#4814 (part 1) (#15245) The new variables inclusion mechanism https://github.com/leanprover/lean4/pull/4814 is going to require many changes to Mathlib. Some of these changes are to make sure typeclass hypotheses are not unnecessarily included. This is achieved either by using `section` to bound `variable [...]`, using `variable ... in`, or reordering theorems. (I think you can see all three being using here.) Other changes require adding `include ...` to include variables that the new mechanism won't automatically include. These changes can't be backported to master, and instead are accumulating on the `lean-pr-testing-4814` branch. ESTIMATED CHANGES Modified Mathlib/Control/Lawful.lean +/- theorem ExceptT.run_monadLift Modified Mathlib/Control/Traversable/Basic.lean Modified Mathlib/Init/Algebra/Classes.lean Modified Mathlib/Logic/Basic.lean Modified Mathlib/Logic/Function/Basic.lean Modified Mathlib/Order/Defs.lean +/- theorem le_imp_le_of_lt_imp_lt Modified Mathlib/Tactic/PushNeg.lean 2024-07-31 23:15:35 67f52fe chore: backports for leanprover/lean4#4814 (part 6) (#15313) See https://github.com/leanprover-community/mathlib4/pull/15245 ESTIMATED CHANGES Modified Mathlib/Algebra/BigOperators/Group/Multiset.lean +/- theorem Multiset.prod_hom' +/- theorem Multiset.prod_hom +/- theorem Multiset.prod_hom_rel +/- theorem Multiset.prod_hom₂ +/- theorem Multiset.prod_map_prod_map Modified Mathlib/Algebra/Module/Basic.lean Modified Mathlib/Algebra/Module/Defs.lean Modified Mathlib/Algebra/Order/Group/Lattice.lean +/- theorem inf_div +/- theorem inf_mul +/- theorem mul_inf +/- theorem mul_sup +/- theorem sup_div +/- theorem sup_mul Modified Mathlib/Algebra/Order/Group/Unbundled/Abs.lean Modified Mathlib/Algebra/Order/Group/Unbundled/Basic.lean Modified Mathlib/Algebra/Order/Hom/Monoid.lean +/- theorem strictMono_iff_map_pos Modified Mathlib/Algebra/Order/Monoid/Unbundled/MinMax.lean Modified Mathlib/Algebra/Order/Sub/Canonical.lean +/- theorem Even.tsub +/- theorem tsub_tsub_eq_add_tsub_of_le Modified Mathlib/Data/Finset/Basic.lean Modified Mathlib/Data/Finset/Pi.lean Modified Mathlib/Data/Fintype/Basic.lean Modified Mathlib/Data/Multiset/Basic.lean +/- theorem Multiset.sub_filter_eq_filter_not Modified Mathlib/Data/Nat/Cast/Order/Basic.lean Modified Mathlib/Tactic/CategoryTheory/Coherence.lean Modified Mathlib/Tactic/CategoryTheory/Monoidal.lean 2024-07-31 23:04:48 037c8b9 chore: update Mathlib dependencies 2024-07-31 (#15372) This PR updates the Mathlib dependencies. ESTIMATED CHANGES Modified lake-manifest.json 2024-07-31 21:06:31 e6d4b05 feat(Order/KonigLemma): Kőnig's infinity lemma (#12273) This PR proves Kőnig's infinity lemma in terms of covers in a strongly atomic order, and it gives a common formulation for directed systems, which is useful for applications such as Ramsey theory. One of the things we needed is a `Fintype` instance for `RelEmbedding r s`. This would have caused a bad diamond with `SimpleGraph.Hom.instFintype`, so instead we remove the latter and provide their common generalization `RelHom.instFintype` in `Fintype.Pi`. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Combinatorics/SimpleGraph/Maps.lean Modified Mathlib/Data/Fintype/Card.lean + theorem Infinite.sigma_of_right Modified Mathlib/Data/Fintype/Pi.lean Added Mathlib/Order/KonigLemma.lean + theorem GradeMinOrder.exists_nat_orderEmbedding_of_forall_covby_finite + theorem exists_orderEmbedding_covby_of_forall_covby_finite + theorem exists_orderEmbedding_covby_of_forall_covby_finite_of_bot + theorem exists_seq_covby_of_forall_covby_finite + theorem exists_seq_forall_proj_of_forall_finite Modified Mathlib/Order/RelIso/Basic.lean + theorem RelEmbedding.toEmbedding_inj + theorem RelEmbedding.toEmbedding_injective 2024-07-31 20:15:02 c4b7ae4 feat(LegendreSymbol/AddCharacter): std add char of ZMod N is primitive (#14495) The standard additive character of `ZMod N` is a primitive character. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Analysis/Fourier/ZMod.lean Modified Mathlib/Analysis/SpecialFunctions/Complex/Circle.lean + theorem AddCircle.toCircle_zero - theorem ZMod.stdAddChar_apply - theorem ZMod.stdAddChar_coe - theorem ZMod.toCircle_apply - theorem ZMod.toCircle_intCast - theorem ZMod.toCircle_natCast Added Mathlib/Analysis/SpecialFunctions/Complex/CircleAddChar.lean + theorem ZMod.injective_stdAddChar + theorem ZMod.injective_toCircle + theorem ZMod.isPrimitive_stdAddChar + theorem ZMod.stdAddChar_apply + theorem ZMod.stdAddChar_coe + theorem ZMod.toCircle_apply + theorem ZMod.toCircle_intCast + theorem ZMod.toCircle_natCast 2024-07-31 19:18:11 d487a5f Chore: Remove some uses of `open Classical` (#15371) It is dangerous to `open Classical`, as it can hide that some theorem statements would be better stated with explicit decidability assumptions. This PR removes a few of them, using instead `classical` in proofs and `open Classical in ...` when needed for the statement. ESTIMATED CHANGES Modified Mathlib/Algebra/BigOperators/Finprod.lean Modified Mathlib/Analysis/NormedSpace/OperatorNorm/NNNorm.lean Modified Mathlib/Control/Fix.lean Modified Mathlib/Data/PFun.lean Modified Mathlib/MeasureTheory/Constructions/BorelSpace/Basic.lean Modified Mathlib/MeasureTheory/Constructions/BorelSpace/Metric.lean Modified Mathlib/MeasureTheory/Constructions/BorelSpace/Metrizable.lean Modified Mathlib/MeasureTheory/Constructions/BorelSpace/Order.lean Modified Mathlib/MeasureTheory/Constructions/Prod/Basic.lean Modified Mathlib/MeasureTheory/Covering/Vitali.lean Modified Mathlib/MeasureTheory/Decomposition/UnsignedHahn.lean Modified Mathlib/MeasureTheory/Function/AEEqFun.lean Modified Mathlib/MeasureTheory/Function/AEMeasurableSequence.lean Modified Mathlib/MeasureTheory/Measure/Count.lean Modified Mathlib/MeasureTheory/Measure/MeasureSpace.lean +/- theorem MeasureTheory.measure_if Modified Mathlib/MeasureTheory/Measure/MeasureSpaceDef.lean Modified Mathlib/MeasureTheory/OuterMeasure/Basic.lean Modified Mathlib/MeasureTheory/PiSystem.lean Modified Mathlib/ModelTheory/Types.lean Modified Mathlib/NumberTheory/ClassNumber/Finite.lean Modified Mathlib/NumberTheory/Divisors.lean Modified Mathlib/NumberTheory/FLT/Four.lean Modified Mathlib/NumberTheory/KummerDedekind.lean +/- theorem KummerDedekind.multiplicity_factors_map_eq_multiplicity Modified Mathlib/NumberTheory/NumberField/Basic.lean Modified Mathlib/NumberTheory/Padics/Hensel.lean Modified Mathlib/NumberTheory/Padics/PadicIntegers.lean Modified Mathlib/NumberTheory/Padics/PadicNumbers.lean +/- theorem PadicSeq.norm_equiv +/- theorem PadicSeq.norm_mul +/- theorem PadicSeq.norm_nonarchimedean +/- theorem PadicSeq.norm_nonneg Modified Mathlib/NumberTheory/PythagoreanTriples.lean Modified Mathlib/NumberTheory/RamificationInertia.lean +/- theorem Ideal.IsDedekindDomain.ramificationIdx_eq_factors_count +/- theorem Ideal.IsDedekindDomain.ramificationIdx_eq_normalizedFactors_count +/- theorem Ideal.ramificationIdx_eq_find Modified Mathlib/NumberTheory/SumFourSquares.lean Modified Mathlib/Order/Atoms.lean Modified Mathlib/Order/Birkhoff.lean Modified Mathlib/Order/Chain.lean Modified Mathlib/Order/CompleteLatticeIntervals.lean Modified Mathlib/Order/ConditionallyCompleteLattice/Basic.lean Modified Mathlib/Order/CountableDenseLinearOrder.lean Modified Mathlib/Order/Extension/Linear.lean Modified Mathlib/Order/Filter/Basic.lean Modified Mathlib/Order/Filter/FilterProduct.lean Modified Mathlib/Order/Filter/Lift.lean Modified Mathlib/Order/Filter/Pi.lean Modified Mathlib/Order/Interval/Set/Basic.lean Modified Mathlib/Order/LiminfLimsup.lean Modified Mathlib/Order/OmegaCompletePartialOrder.lean Modified Mathlib/Order/WellFounded.lean Modified Mathlib/Order/Zorn.lean Modified Mathlib/RingTheory/DedekindDomain/SelmerGroup.lean Modified Mathlib/RingTheory/DiscreteValuationRing/Basic.lean Modified Mathlib/RingTheory/Flat/EquationalCriterion.lean Modified Mathlib/RingTheory/FractionalIdeal/Operations.lean +/- theorem FractionalIdeal.one_div_spanSingleton Modified Mathlib/RingTheory/HahnSeries/Basic.lean +/- theorem HahnSeries.single_coeff_of_ne +/- theorem HahnSeries.single_coeff_same +/- theorem HahnSeries.support_single_of_ne +/- theorem HahnSeries.support_single_subset Modified Mathlib/RingTheory/HahnSeries/Multiplication.lean Modified Mathlib/RingTheory/HahnSeries/PowerSeries.lean Modified Mathlib/RingTheory/HahnSeries/Summable.lean Modified Mathlib/RingTheory/Ideal/Quotient.lean Modified Mathlib/RingTheory/IntegralClosure/IsIntegral/Basic.lean Modified Mathlib/RingTheory/LocalRing/Basic.lean Modified Mathlib/RingTheory/Localization/Finiteness.lean Modified Mathlib/RingTheory/OreLocalization/Ring.lean Modified Mathlib/SetTheory/Cardinal/SchroederBernstein.lean 2024-07-31 19:18:09 b66c970 feat: gcongr works with eta and proofs (#15364) * `gcongr` now recognizes eta-expanded variables as variables * `gcongr` now recognizes all proofs as "defeq" even if the proofs have different types (in e.g. `Finset.sup'_mono` * Give a bit more information in the error message when not accepting a `gcongr`-lemma. ESTIMATED CHANGES Modified Mathlib/Algebra/Order/BigOperators/Group/Finset.lean - theorem GCongr.prod_le_prod' - theorem GCongr.prod_lt_prod_of_nonempty' Modified Mathlib/Algebra/Order/BigOperators/Ring/Finset.lean - theorem GCongr.prod_le_prod Modified Mathlib/Combinatorics/Schnirelmann.lean Modified Mathlib/Data/Finset/Basic.lean Modified Mathlib/Data/Finset/Lattice.lean - theorem GCongr.finset_inf'_mono - theorem GCongr.finset_sup'_le Modified Mathlib/MeasureTheory/Integral/Lebesgue.lean Modified Mathlib/Tactic/GCongr/Core.lean Modified test/GCongr/inequalities.lean 2024-07-31 19:18:08 cdcd883 chore(SimpleFunc): use `FunLike` (#6642) ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Function/SimpleFunc.lean +/- theorem MeasureTheory.SimpleFunc.coe_injective + theorem MeasureTheory.SimpleFunc.coe_mk +/- theorem MeasureTheory.SimpleFunc.ext Modified Mathlib/MeasureTheory/Integral/Bochner.lean 2024-07-31 18:23:43 0a71779 chore: remove obsolete comments about @[congr] (#15299) Some of these have been commented out since this file was added to mathlib 3, others refer to theorems that have been upstreamed. In any case, they are not actionable. ESTIMATED CHANGES Modified Mathlib/Data/List/Perm.lean 2024-07-31 16:34:07 a3e5a28 refactor(Topology/Category): use `CompHausLike` API for limits in `LightProfinite` (#15362) ESTIMATED CHANGES Modified Mathlib/Topology/Category/LightProfinite/EffectiveEpi.lean - def LightProfinite.EffectiveEpi.struct Modified Mathlib/Topology/Category/LightProfinite/Limits.lean - theorem LightProfinite.Sigma.ι_comp_toFiniteCoproduct - def LightProfinite.coproductHomeoCoproduct - def LightProfinite.coproductIsoCoproduct - def LightProfinite.finiteCoproduct.desc - theorem LightProfinite.finiteCoproduct.hom_ext - def LightProfinite.finiteCoproduct.isColimit - def LightProfinite.finiteCoproduct.ι - theorem LightProfinite.finiteCoproduct.ι_desc - theorem LightProfinite.finiteCoproduct.ι_desc_apply - theorem LightProfinite.finiteCoproduct.ι_injective - theorem LightProfinite.finiteCoproduct.ι_jointly_surjective - def LightProfinite.finiteCoproduct - def LightProfinite.isTerminalPUnit - theorem LightProfinite.pullback.condition - def LightProfinite.pullback.cone - def LightProfinite.pullback.fst - theorem LightProfinite.pullback.hom_ext - def LightProfinite.pullback.isLimit - def LightProfinite.pullback.lift - theorem LightProfinite.pullback.lift_fst - theorem LightProfinite.pullback.lift_snd - def LightProfinite.pullback.snd - def LightProfinite.pullback - def LightProfinite.pullbackHomeoPullback - def LightProfinite.pullbackIsoPullback - theorem LightProfinite.pullback_fst_eq - theorem LightProfinite.pullback_snd_eq 2024-07-31 16:34:06 feb80cf feat(CategoryTheory): add some instances for essentially small sites (#13486) This PR proves that the properties `PreservesSheafification` and `WEqualsLocallyBijective` hold for an essentially small site if they hold for an equivalent small site. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Sites/Coherent/Equivalence.lean Modified Mathlib/CategoryTheory/Sites/DenseSubsite.lean + theorem CategoryTheory.Functor.functorPushforward_mem_iff Modified Mathlib/CategoryTheory/Sites/Equivalence.lean - theorem CategoryTheory.Equivalence.coverPreserving + theorem CategoryTheory.Equivalence.eq_inducedTopology_of_isDenseSubsite - theorem CategoryTheory.Equivalence.eq_inducedTopology_of_transports + theorem CategoryTheory.GrothendieckTopology.PreservesSheafification.transport Modified Mathlib/CategoryTheory/Sites/InducedTopology.lean + theorem CategoryTheory.Functor.mem_inducedTopology_sieves_iff Modified Mathlib/CategoryTheory/Sites/Sieves.lean + theorem CategoryTheory.Sieve.functorPushforward_equivalence_eq_pullback + theorem CategoryTheory.Sieve.pullback_functorPushforward_equivalence_eq 2024-07-31 15:51:01 ee09f89 feat(ENat): lt_add_one_iff (#15341) from the Carleson project ESTIMATED CHANGES Modified Mathlib/Data/ENat/Basic.lean + theorem ENat.lt_add_one_iff 2024-07-31 14:10:54 61c938b feat(ENat): sSup_mem_of_Nonempty_of_lt_top (#15347) Lemma statement due to Gareth Ma. More discussion at https://leanprover.zulipchat.com/#narrow/stream/217875-Is-there-code-for-X.3F/topic/ENat.2EiSup_eq_coe_iff from the Carleson project ESTIMATED CHANGES Modified Mathlib/Data/ENat/Lattice.lean + theorem ENat.finite_of_sSup_lt_top + theorem ENat.sSup_eq_top_of_infinite + theorem ENat.sSup_mem_of_Nonempty_of_lt_top 2024-07-31 13:46:32 9610549 fix(ContinuousFunctionalCalculus): generalize a section from `Field R` to `Semifield R` (#15351) This PR generalizes the section that proves that `cfcₙ` is equivalent to `cfc` to `Semifield R` from `Field R`. This is crucial because this needs to work for `ℝ≥0`. ESTIMATED CHANGES Modified Mathlib/Analysis/CstarAlgebra/ContinuousFunctionalCalculus/NonUnital.lean 2024-07-31 13:08:31 c62c3b3 refactor(Topology/Category): preparation for switching to new API for limits in CompHaus (#15359) ESTIMATED CHANGES Modified Mathlib/Topology/Category/CompHausLike/EffectiveEpi.lean + theorem CompHausLike.precoherent Modified Mathlib/Topology/Category/CompHausLike/Limits.lean 2024-07-31 12:36:47 b5a3f48 chore: update lean4checker version (#15365) ESTIMATED CHANGES Modified .github/workflows/lean4checker.yml 2024-07-31 12:12:02 5040d99 chore: update Mathlib dependencies 2024-07-31 (#15354) This PR updates the Mathlib dependencies. ESTIMATED CHANGES 2024-07-31 11:08:55 a719ba5 chore: bump toolchain to v4.10.0 (#15361) ESTIMATED CHANGES Modified lake-manifest.json Modified lean-toolchain 2024-07-31 10:31:17 6b4579a fix: allow markdown in declarations_diff (#15356) This is mostly aesthetical: with the extra line break, the markdown parser kicks in, notices the backticks `` ` `` and interprets them as code. Otherwise, it prints the literal backticks. ESTIMATED CHANGES Modified scripts/declarations_diff.sh 2024-07-31 09:27:50 012ddf4 chore: improve some ext_iff lemmas (#15340) These will be auto-generated by `@[ext]` in lean v4.11; this prepares us for that change. ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Units.lean - theorem Units.ext_iff Modified Mathlib/Algebra/Homology/DerivedCategory/Ext.lean - theorem CategoryTheory.Abelian.Ext.ext_iff Modified Mathlib/Algebra/Homology/HomotopyCategory/HomComplex.lean - theorem CochainComplex.HomComplex.Cocycle.ext_iff Modified Mathlib/Algebra/Lie/Weights/Basic.lean - theorem LieModule.Weight.ext_iff Modified Mathlib/Algebra/Module/LinearMap/Defs.lean - theorem LinearMap.ext_iff Modified Mathlib/Algebra/MvPolynomial/Basic.lean - theorem MvPolynomial.ext_iff Modified Mathlib/Algebra/Ring/Hom/Defs.lean - theorem NonUnitalRingHom.ext_iff - theorem RingHom.ext_iff Modified Mathlib/Analysis/Complex/UpperHalfPlane/Metric.lean Modified Mathlib/Analysis/Normed/Group/Hom.lean - theorem NormedAddGroupHom.ext_iff Modified Mathlib/Data/Complex/Basic.lean - theorem Complex.ext_iff Modified Mathlib/Data/Finsupp/Defs.lean - theorem Finsupp.unique_ext_iff Modified Mathlib/Data/List/AList.lean - theorem AList.ext_iff Modified Mathlib/Data/Prod/Basic.lean - theorem Prod.ext_iff Modified Mathlib/Data/Set/Basic.lean - theorem Set.ext_iff Modified Mathlib/Data/Sigma/Basic.lean - theorem Sigma.ext_iff Modified Mathlib/Data/Subtype.lean - theorem Subtype.ext_iff Modified Mathlib/Dynamics/Circle/RotationNumber/TranslationNumber.lean - theorem CircleDeg1Lift.ext_iff Modified Mathlib/GroupTheory/GroupAction/Hom.lean - theorem MulActionHom.ext_iff Modified Mathlib/GroupTheory/MonoidLocalization/Basic.lean - theorem Submonoid.LocalizationMap.ext_iff Modified Mathlib/LinearAlgebra/Alternating/Basic.lean - theorem AlternatingMap.ext_iff Modified Mathlib/LinearAlgebra/Multilinear/Basic.lean - theorem MultilinearMap.ext_iff Modified Mathlib/Logic/Equiv/Defs.lean - theorem Equiv.Perm.ext_iff Modified Mathlib/Order/Filter/Basic.lean Modified Mathlib/Topology/Algebra/Module/Basic.lean - theorem ContinuousLinearMap.ext_iff - theorem ContinuousLinearMap.ext_ring_iff 2024-07-31 09:27:49 591bab0 feat(FieldTheory/IntermediateField): add `Subfield.extendScalars` (#15148) ... which can be viewed as an inverse to `IntermediateField.toSubfield`. This is similar to `IntermediateField.extendScalars`. ESTIMATED CHANGES Modified Mathlib/FieldTheory/IntermediateField.lean +/- def IntermediateField.extendScalars + theorem Subfield.coe_extendScalars + def Subfield.extendScalars.orderIso + def Subfield.extendScalars + theorem Subfield.extendScalars_injective + theorem Subfield.extendScalars_le_extendScalars_iff + theorem Subfield.extendScalars_le_iff + theorem Subfield.extendScalars_toSubfield + theorem Subfield.le_extendScalars_iff + theorem Subfield.mem_extendScalars 2024-07-31 09:13:22 12ecba7 chore(LpSpace): minor golf (#15348) Reuse a proof. ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Function/LpSpace.lean 2024-07-31 09:13:20 f9821a6 chore: split conj into two files to streamline imports (#15300) This splits the file CategoryTheory.Conj into CategoryTheory.HomCongr and CategoryTheory.Conj. The point is that the latter requires much heavier imports than the former, while the former is all that is needed for CategoryTheory.Adjunction.Mates, which is used elsewhere. While making those changes, I added one theorem to the HomCongr file: * A theorem `map_isoCongr` which parallels the existing `map_homCongr`. The proof is by `ext; simp` once the existing `isoCongr` is tagged with simps. In parallel, I've tagged the definition `homCongr` with simps and removed the theorem `homCongr_apply` which is automatically generated by simps. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/CategoryTheory/Adjunction/Mates.lean Modified Mathlib/CategoryTheory/Adjunction/Reflective.lean Modified Mathlib/CategoryTheory/Adjunction/Restrict.lean Modified Mathlib/CategoryTheory/Closed/Zero.lean Modified Mathlib/CategoryTheory/Conj.lean - theorem CategoryTheory.Functor.map_homCongr - def CategoryTheory.Iso.homCongr - theorem CategoryTheory.Iso.homCongr_apply - theorem CategoryTheory.Iso.homCongr_comp - theorem CategoryTheory.Iso.homCongr_refl - theorem CategoryTheory.Iso.homCongr_symm - theorem CategoryTheory.Iso.homCongr_trans - def CategoryTheory.Iso.isoCongr - def CategoryTheory.Iso.isoCongrLeft - def CategoryTheory.Iso.isoCongrRight Added Mathlib/CategoryTheory/HomCongr.lean + theorem CategoryTheory.Functor.map_homCongr + theorem CategoryTheory.Functor.map_isoCongr + def CategoryTheory.Iso.homCongr + theorem CategoryTheory.Iso.homCongr_comp + theorem CategoryTheory.Iso.homCongr_refl + theorem CategoryTheory.Iso.homCongr_symm + theorem CategoryTheory.Iso.homCongr_trans + def CategoryTheory.Iso.isoCongr + def CategoryTheory.Iso.isoCongrLeft + def CategoryTheory.Iso.isoCongrRight Modified Mathlib/CategoryTheory/Limits/IsConnected.lean Modified Mathlib/CategoryTheory/Localization/HomEquiv.lean 2024-07-31 09:13:19 7f9cbc0 feat(AlgebraicGeometry): Define preimmersions. (#14748) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/AlgebraicGeometry/Morphisms/ClosedImmersion.lean + theorem AlgebraicGeometry.IsClosedImmersion.iff_isPreimmersion + theorem AlgebraicGeometry.IsClosedImmersion.of_isPreimmersion - theorem AlgebraicGeometry.IsClosedImmersion.surjective_stalkMap Added Mathlib/AlgebraicGeometry/Morphisms/Preimmersion.lean + theorem AlgebraicGeometry.IsPreimmersion.comp_iff + theorem AlgebraicGeometry.IsPreimmersion.of_comp + theorem AlgebraicGeometry.Scheme.Hom.embedding + theorem AlgebraicGeometry.Scheme.Hom.stalkMap_surjective + theorem AlgebraicGeometry.isPreimmersion_eq_inf Modified Mathlib/Geometry/RingedSpace/SheafedSpace.lean + theorem AlgebraicGeometry.SheafedSpace.hom_stalk_ext + theorem AlgebraicGeometry.SheafedSpace.mono_of_base_injective_of_stalk_epi 2024-07-31 08:12:19 9c47f21 feat(RingTheory/Kaehler): Cotangent complex associated to an embedding into affine space. (#14859) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Exact.lean + theorem Function.Exact.inl_snd + theorem Function.Exact.inr_fst Modified Mathlib/LinearAlgebra/Dual.lean Modified Mathlib/LinearAlgebra/TensorProduct/Basis.lean + def Basis.baseChange + theorem Basis.baseChange_apply + theorem Basis.baseChange_repr_tmul +/- theorem Basis.tensorProduct_apply' +/- theorem Basis.tensorProduct_apply +/- theorem Basis.tensorProduct_repr_tmul_apply Modified Mathlib/LinearAlgebra/TensorProduct/Matrix.lean Modified Mathlib/RingTheory/Generators.lean + theorem Algebra.Generators.Cotangent.map_comp + theorem Algebra.Generators.Cotangent.map_id + theorem Algebra.Generators.Cotangent.val_sub + theorem Algebra.Generators.Hom.toAlgHom_comp_apply + theorem Algebra.Generators.Hom.toAlgHom_id + theorem Algebra.Generators.Hom.toAlgHom_monomial Added Mathlib/RingTheory/Kaehler/CotangentComplex.lean + theorem Algebra.Generators.Cotangent.map_sub_map + def Algebra.Generators.CotangentSpace.map + theorem Algebra.Generators.CotangentSpace.map_comp + theorem Algebra.Generators.CotangentSpace.map_comp_apply + theorem Algebra.Generators.CotangentSpace.map_comp_cotangentComplex + theorem Algebra.Generators.CotangentSpace.map_cotangentComplex + theorem Algebra.Generators.CotangentSpace.map_id + theorem Algebra.Generators.CotangentSpace.map_sub_map + theorem Algebra.Generators.CotangentSpace.map_tmul + theorem Algebra.Generators.CotangentSpace.repr_map + def Algebra.Generators.Hom.sub + def Algebra.Generators.Hom.subToKer + theorem Algebra.Generators.Hom.sub_aux + theorem Algebra.Generators.Hom.sub_one_tmul + theorem Algebra.Generators.Hom.sub_tmul + def Algebra.Generators.cotangentComplex + theorem Algebra.Generators.cotangentComplex_mk + def Algebra.Generators.cotangentSpaceBasis + theorem Algebra.Generators.cotangentSpaceBasis_apply + theorem Algebra.Generators.cotangentSpaceBasis_repr_one_tmul + theorem Algebra.Generators.cotangentSpaceBasis_repr_tmul + theorem Algebra.Generators.exact_cotangentComplex_toKaehler + theorem Algebra.Generators.toKaehler_cotangentSpaceBasis + theorem Algebra.Generators.toKaehler_surjective 2024-07-31 10:11:44+02:00 0ca50c6 start ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/Operations.lean Modified Mathlib/Algebra/BigOperators/Finsupp.lean +/- theorem Finsupp.sum_sum_index' Modified Mathlib/Algebra/DirectLimit.lean 2024-07-31 06:44:15 1aef860 feat: add `comap_map` for sub(semi)ring, subalgebra, subfield and intermediate fields (#15193) Generalizes `Subgroup.comap_map_eq`, `Subgroup.comap_map_eq_self`, `Subgroup.comap_map_eq_self_of_injective`, and `Subgroup.map_comap_eq`, `Subgroup.map_comap_eq_self`, `Subgroup.map_comap_eq_self_of_surjective`. ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/Subalgebra/Basic.lean + theorem Subalgebra.comap_map_eq_self_of_injective + theorem Subalgebra.map_comap_eq + theorem Subalgebra.map_comap_eq_self + theorem Subalgebra.map_comap_eq_self_of_surjective Modified Mathlib/Algebra/Field/Subfield.lean + theorem Subfield.comap_map + theorem Subfield.map_comap_eq + theorem Subfield.map_comap_eq_self + theorem Subfield.map_comap_eq_self_of_surjective Modified Mathlib/Algebra/Group/Submonoid/Operations.lean + theorem Submonoid.map_comap_eq + theorem Submonoid.map_comap_eq_self Modified Mathlib/Algebra/Group/Subsemigroup/Operations.lean + theorem Subsemigroup.map_comap_eq + theorem Subsemigroup.map_comap_eq_self Modified Mathlib/Algebra/Ring/Subring/Basic.lean + theorem Subring.comap_map_eq + theorem Subring.comap_map_eq_self + theorem Subring.comap_map_eq_self_of_injective + theorem Subring.map_comap_eq + theorem Subring.map_comap_eq_self + theorem Subring.map_comap_eq_self_of_surjective Modified Mathlib/Algebra/Ring/Subsemiring/Basic.lean + theorem Subsemiring.comap_map_eq_self_of_injective + theorem Subsemiring.map_comap_eq + theorem Subsemiring.map_comap_eq_self + theorem Subsemiring.map_comap_eq_self_of_surjective Modified Mathlib/FieldTheory/Adjoin.lean + theorem IntermediateField.comap_map + theorem IntermediateField.map_comap_eq + theorem IntermediateField.map_comap_eq_self + theorem IntermediateField.map_comap_eq_self_of_surjective Modified Mathlib/RingTheory/Adjoin/Basic.lean + theorem Subalgebra.comap_map_eq + theorem Subalgebra.comap_map_eq_self 2024-07-31 06:44:14 1409ad6 feat(Data/Matroid/Sum): Sums of matroids (#15061) This PR defines the sum of a pair or collection of matroids, and gives basic API. The material in `Matroid/Map` makes this both more general and shorter than #12380 , which got a bit snarled up in review. - [x] depends on: #15060 - [x] depends on: #15057 ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Data/Matroid/Sum.lean + theorem Matroid.Base.eq_union_image_of_disjointSum + theorem Matroid.Finitary.sigma + theorem Matroid.Finitary.sum' + theorem Matroid.Indep.eq_union_image_of_disjointSum + theorem Matroid.disjointSigma_base_iff + theorem Matroid.disjointSigma_basis_iff + theorem Matroid.disjointSigma_ground_eq + theorem Matroid.disjointSigma_indep_iff + def Matroid.disjointSum + theorem Matroid.disjointSum_base_iff + theorem Matroid.disjointSum_basis_iff + theorem Matroid.disjointSum_ground_eq + theorem Matroid.disjointSum_indep_iff + theorem Matroid.sigma_base_iff + theorem Matroid.sigma_basis_iff + theorem Matroid.sigma_ground_eq + theorem Matroid.sigma_indep_iff + theorem Matroid.sum'_base_iff + theorem Matroid.sum'_basis_iff + theorem Matroid.sum'_ground_eq + theorem Matroid.sum'_indep_iff + theorem Matroid.sum_base_iff + theorem Matroid.sum_basis_iff + theorem Matroid.sum_ground + theorem Matroid.sum_indep_iff 2024-07-31 06:44:12 2c270fa refactor(Topology/Category): refactor LightProfinite.Basic (#13912) This is the second part of the refactor of CompHaus and friends (refactoring the definition of `LightProfinite` in terms of `CompHausLike`, see #12930 for the end result) ESTIMATED CHANGES Modified Mathlib/Topology/Category/LightProfinite/AsLimit.lean Modified Mathlib/Topology/Category/LightProfinite/Basic.lean - theorem LightProfinite.coe_comp - theorem LightProfinite.coe_id - def LightProfinite.homeoOfIso - def LightProfinite.isoEquivHomeo - def LightProfinite.isoOfHomeo - theorem LightProfinite.mono_iff_injective - def LightProfinite.of - theorem LightProfinite.toCompHaus_comp_toTop - def LightProfinite.toTopCat - def LightProfinite.toTopCatFullyFaithful - structure LightProfinite - def lightProfiniteToCompHaus - def lightProfiniteToCompHausFullyFaithful - def lightToProfinite - def lightToProfiniteFullyFaithful Modified Mathlib/Topology/Category/LightProfinite/Limits.lean +/- def LightProfinite.pullbackHomeoPullback 2024-07-31 06:33:46 09e1ab3 chore(MeasureTheory): Rename `snorm` to `eLpNorm` (#15177) 1. `eLpNorm` for "extended Lp norm" is much more descriptive than `snorm` for "seminorm" 2. I need a `NNReal`-valued version of it, which I am planning to call `nnLpNorm`. ESTIMATED CHANGES Modified Mathlib/Analysis/FunctionalSpaces/SobolevInequality.lean + def MeasureTheory.eLpNormLESNormFDerivOfEqInnerConst + theorem MeasureTheory.eLpNorm_le_eLpNorm_fderiv + theorem MeasureTheory.eLpNorm_le_eLpNorm_fderiv_of_eq + theorem MeasureTheory.eLpNorm_le_eLpNorm_fderiv_of_eq_inner + theorem MeasureTheory.eLpNorm_le_eLpNorm_fderiv_of_le + theorem MeasureTheory.eLpNorm_le_eLpNorm_fderiv_one - def MeasureTheory.snormLESNormFDerivOfEqInnerConst - theorem MeasureTheory.snorm_le_snorm_fderiv - theorem MeasureTheory.snorm_le_snorm_fderiv_of_eq - theorem MeasureTheory.snorm_le_snorm_fderiv_of_eq_inner - theorem MeasureTheory.snorm_le_snorm_fderiv_of_le - theorem MeasureTheory.snorm_le_snorm_fderiv_one Modified Mathlib/MeasureTheory/Function/ConditionalExpectation/AEMeasurable.lean Modified Mathlib/MeasureTheory/Function/ConditionalExpectation/CondexpL2.lean + theorem MeasureTheory.eLpNorm_condexpL2_le - theorem MeasureTheory.snorm_condexpL2_le Modified Mathlib/MeasureTheory/Function/ConditionalExpectation/Real.lean + theorem MeasureTheory.eLpNorm_one_condexp_le_eLpNorm - theorem MeasureTheory.snorm_one_condexp_le_snorm Modified Mathlib/MeasureTheory/Function/ContinuousMapDense.lean + theorem MeasureTheory.Memℒp.exists_boundedContinuous_eLpNorm_sub_le - theorem MeasureTheory.Memℒp.exists_boundedContinuous_snorm_sub_le + theorem MeasureTheory.Memℒp.exists_hasCompactSupport_eLpNorm_sub_le - theorem MeasureTheory.Memℒp.exists_hasCompactSupport_snorm_sub_le + theorem MeasureTheory.exists_continuous_eLpNorm_sub_le_of_closed - theorem MeasureTheory.exists_continuous_snorm_sub_le_of_closed Modified Mathlib/MeasureTheory/Function/ConvergenceInMeasure.lean + theorem MeasureTheory.tendstoInMeasure_of_tendsto_eLpNorm + theorem MeasureTheory.tendstoInMeasure_of_tendsto_eLpNorm_of_ne_top + theorem MeasureTheory.tendstoInMeasure_of_tendsto_eLpNorm_of_stronglyMeasurable + theorem MeasureTheory.tendstoInMeasure_of_tendsto_eLpNorm_top - theorem MeasureTheory.tendstoInMeasure_of_tendsto_snorm - theorem MeasureTheory.tendstoInMeasure_of_tendsto_snorm_of_ne_top - theorem MeasureTheory.tendstoInMeasure_of_tendsto_snorm_of_stronglyMeasurable - theorem MeasureTheory.tendstoInMeasure_of_tendsto_snorm_top Modified Mathlib/MeasureTheory/Function/Intersectivity.lean Modified Mathlib/MeasureTheory/Function/L1Space.lean Modified Mathlib/MeasureTheory/Function/L2Space.lean + theorem MeasureTheory.L2.eLpNorm_inner_lt_top + theorem MeasureTheory.L2.eLpNorm_rpow_two_norm_lt_top + theorem MeasureTheory.L2.integral_inner_eq_sq_eLpNorm - theorem MeasureTheory.L2.integral_inner_eq_sq_snorm - theorem MeasureTheory.L2.snorm_inner_lt_top - theorem MeasureTheory.L2.snorm_rpow_two_norm_lt_top Modified Mathlib/MeasureTheory/Function/LpOrder.lean Modified Mathlib/MeasureTheory/Function/LpSeminorm/Basic.lean + theorem MeasurableEmbedding.eLpNormEssSup_map_measure + theorem MeasurableEmbedding.eLpNorm_map_measure - theorem MeasurableEmbedding.snormEssSup_map_measure - theorem MeasurableEmbedding.snorm_map_measure + theorem MeasureTheory.AEEqFun.eLpNorm_compMeasurePreserving - theorem MeasureTheory.AEEqFun.snorm_compMeasurePreserving + theorem MeasureTheory.Memℒp.eLpNorm_lt_top + theorem MeasureTheory.Memℒp.eLpNorm_ne_top + theorem MeasureTheory.Memℒp.exists_eLpNorm_indicator_compl_lt - theorem MeasureTheory.Memℒp.exists_snorm_indicator_compl_lt - theorem MeasureTheory.Memℒp.snorm_lt_top - theorem MeasureTheory.Memℒp.snorm_ne_top + theorem MeasureTheory.ae_bdd_liminf_atTop_of_eLpNorm_bdd - theorem MeasureTheory.ae_bdd_liminf_atTop_of_snorm_bdd + theorem MeasureTheory.ae_bdd_liminf_atTop_rpow_of_eLpNorm_bdd - theorem MeasureTheory.ae_bdd_liminf_atTop_rpow_of_snorm_bdd + theorem MeasureTheory.ae_eq_zero_of_eLpNorm'_eq_zero - theorem MeasureTheory.ae_eq_zero_of_snorm'_eq_zero + theorem MeasureTheory.ae_le_eLpNormEssSup - theorem MeasureTheory.ae_le_snormEssSup + theorem MeasureTheory.coe_nnnorm_ae_le_eLpNormEssSup - theorem MeasureTheory.coe_nnnorm_ae_le_snormEssSup + def MeasureTheory.eLpNorm' + theorem MeasureTheory.eLpNorm'_congr_ae + theorem MeasureTheory.eLpNorm'_congr_nnnorm_ae + theorem MeasureTheory.eLpNorm'_congr_norm_ae + theorem MeasureTheory.eLpNorm'_const' + theorem MeasureTheory.eLpNorm'_const + theorem MeasureTheory.eLpNorm'_const_of_isProbabilityMeasure + theorem MeasureTheory.eLpNorm'_const_smul + theorem MeasureTheory.eLpNorm'_const_smul_le + theorem MeasureTheory.eLpNorm'_eq_zero_iff + theorem MeasureTheory.eLpNorm'_eq_zero_of_ae_zero' + theorem MeasureTheory.eLpNorm'_eq_zero_of_ae_zero + theorem MeasureTheory.eLpNorm'_exponent_zero + theorem MeasureTheory.eLpNorm'_le_nnreal_smul_eLpNorm'_of_ae_le_mul + theorem MeasureTheory.eLpNorm'_measure_zero_of_exponent_zero + theorem MeasureTheory.eLpNorm'_measure_zero_of_neg + theorem MeasureTheory.eLpNorm'_measure_zero_of_pos + theorem MeasureTheory.eLpNorm'_mono_ae + theorem MeasureTheory.eLpNorm'_mono_measure + theorem MeasureTheory.eLpNorm'_mono_nnnorm_ae + theorem MeasureTheory.eLpNorm'_neg + theorem MeasureTheory.eLpNorm'_norm + theorem MeasureTheory.eLpNorm'_norm_rpow + theorem MeasureTheory.eLpNorm'_smul_measure + theorem MeasureTheory.eLpNorm'_zero' + theorem MeasureTheory.eLpNorm'_zero + def MeasureTheory.eLpNorm + def MeasureTheory.eLpNormEssSup + theorem MeasureTheory.eLpNormEssSup_congr_ae + theorem MeasureTheory.eLpNormEssSup_const + theorem MeasureTheory.eLpNormEssSup_const_smul + theorem MeasureTheory.eLpNormEssSup_const_smul_le + theorem MeasureTheory.eLpNormEssSup_eq_zero_iff + theorem MeasureTheory.eLpNormEssSup_le_nnreal_smul_eLpNormEssSup_of_ae_le_mul + theorem MeasureTheory.eLpNormEssSup_le_of_ae_bound + theorem MeasureTheory.eLpNormEssSup_le_of_ae_nnnorm_bound + theorem MeasureTheory.eLpNormEssSup_lt_top_of_ae_bound + theorem MeasureTheory.eLpNormEssSup_lt_top_of_ae_nnnorm_bound + theorem MeasureTheory.eLpNormEssSup_map_measure + theorem MeasureTheory.eLpNormEssSup_measure_zero + theorem MeasureTheory.eLpNormEssSup_mono_measure + theorem MeasureTheory.eLpNormEssSup_mono_nnnorm_ae + theorem MeasureTheory.eLpNormEssSup_piecewise + theorem MeasureTheory.eLpNormEssSup_smul_measure + theorem MeasureTheory.eLpNormEssSup_zero + theorem MeasureTheory.eLpNorm_comp_measurePreserving + theorem MeasureTheory.eLpNorm_congr_ae + theorem MeasureTheory.eLpNorm_congr_nnnorm_ae + theorem MeasureTheory.eLpNorm_congr_norm_ae + theorem MeasureTheory.eLpNorm_const' + theorem MeasureTheory.eLpNorm_const + theorem MeasureTheory.eLpNorm_const_lt_top_iff + theorem MeasureTheory.eLpNorm_const_smul + theorem MeasureTheory.eLpNorm_const_smul_le + theorem MeasureTheory.eLpNorm_eq_eLpNorm' + theorem MeasureTheory.eLpNorm_eq_lintegral_rpow_nnnorm + theorem MeasureTheory.eLpNorm_eq_zero_and_zero_of_ae_le_mul_neg + theorem MeasureTheory.eLpNorm_eq_zero_iff + theorem MeasureTheory.eLpNorm_exponent_top + theorem MeasureTheory.eLpNorm_exponent_zero + theorem MeasureTheory.eLpNorm_indicator_eq_restrict + theorem MeasureTheory.eLpNorm_indicator_sub_indicator + theorem MeasureTheory.eLpNorm_le_add_measure_left + theorem MeasureTheory.eLpNorm_le_add_measure_right + theorem MeasureTheory.eLpNorm_le_mul_eLpNorm_of_ae_le_mul + theorem MeasureTheory.eLpNorm_le_nnreal_smul_eLpNorm_of_ae_le_mul + theorem MeasureTheory.eLpNorm_le_of_ae_bound + theorem MeasureTheory.eLpNorm_le_of_ae_nnnorm_bound + theorem MeasureTheory.eLpNorm_lt_top_iff_lintegral_rpow_nnnorm_lt_top + theorem MeasureTheory.eLpNorm_map_measure + theorem MeasureTheory.eLpNorm_measure_zero + theorem MeasureTheory.eLpNorm_mono + theorem MeasureTheory.eLpNorm_mono_ae + theorem MeasureTheory.eLpNorm_mono_ae_real + theorem MeasureTheory.eLpNorm_mono_measure + theorem MeasureTheory.eLpNorm_mono_nnnorm + theorem MeasureTheory.eLpNorm_mono_nnnorm_ae + theorem MeasureTheory.eLpNorm_mono_real + theorem MeasureTheory.eLpNorm_neg + theorem MeasureTheory.eLpNorm_nnreal_eq_eLpNorm' + theorem MeasureTheory.eLpNorm_nnreal_eq_lintegral + theorem MeasureTheory.eLpNorm_nnreal_pow_eq_lintegral + theorem MeasureTheory.eLpNorm_norm + theorem MeasureTheory.eLpNorm_norm_rpow + theorem MeasureTheory.eLpNorm_one_add_measure + theorem MeasureTheory.eLpNorm_one_eq_lintegral_nnnorm + theorem MeasureTheory.eLpNorm_one_smul_measure + theorem MeasureTheory.eLpNorm_restrict_eq_of_support_subset + theorem MeasureTheory.eLpNorm_restrict_le + theorem MeasureTheory.eLpNorm_smul_measure_of_ne_top + theorem MeasureTheory.eLpNorm_smul_measure_of_ne_zero + theorem MeasureTheory.eLpNorm_top_piecewise + theorem MeasureTheory.eLpNorm_zero' + theorem MeasureTheory.eLpNorm_zero + theorem MeasureTheory.le_eLpNorm_of_bddBelow - theorem MeasureTheory.le_snorm_of_bddBelow + theorem MeasureTheory.lintegral_rpow_nnnorm_eq_rpow_eLpNorm' - theorem MeasureTheory.lintegral_rpow_nnnorm_eq_rpow_snorm' + theorem MeasureTheory.lintegral_rpow_nnnorm_lt_top_of_eLpNorm'_lt_top + theorem MeasureTheory.lintegral_rpow_nnnorm_lt_top_of_eLpNorm_lt_top - theorem MeasureTheory.lintegral_rpow_nnnorm_lt_top_of_snorm'_lt_top - theorem MeasureTheory.lintegral_rpow_nnnorm_lt_top_of_snorm_lt_top + theorem MeasureTheory.meas_eLpNormEssSup_lt - theorem MeasureTheory.meas_snormEssSup_lt - def MeasureTheory.snorm' - theorem MeasureTheory.snorm'_congr_ae - theorem MeasureTheory.snorm'_congr_nnnorm_ae - theorem MeasureTheory.snorm'_congr_norm_ae - theorem MeasureTheory.snorm'_const' - theorem MeasureTheory.snorm'_const - theorem MeasureTheory.snorm'_const_of_isProbabilityMeasure - theorem MeasureTheory.snorm'_const_smul - theorem MeasureTheory.snorm'_const_smul_le - theorem MeasureTheory.snorm'_eq_zero_iff - theorem MeasureTheory.snorm'_eq_zero_of_ae_zero' - theorem MeasureTheory.snorm'_eq_zero_of_ae_zero - theorem MeasureTheory.snorm'_exponent_zero - theorem MeasureTheory.snorm'_le_nnreal_smul_snorm'_of_ae_le_mul - theorem MeasureTheory.snorm'_measure_zero_of_exponent_zero - theorem MeasureTheory.snorm'_measure_zero_of_neg - theorem MeasureTheory.snorm'_measure_zero_of_pos - theorem MeasureTheory.snorm'_mono_ae - theorem MeasureTheory.snorm'_mono_measure - theorem MeasureTheory.snorm'_mono_nnnorm_ae - theorem MeasureTheory.snorm'_neg - theorem MeasureTheory.snorm'_norm - theorem MeasureTheory.snorm'_norm_rpow - theorem MeasureTheory.snorm'_smul_measure - theorem MeasureTheory.snorm'_zero' - theorem MeasureTheory.snorm'_zero - def MeasureTheory.snorm - def MeasureTheory.snormEssSup - theorem MeasureTheory.snormEssSup_congr_ae - theorem MeasureTheory.snormEssSup_const - theorem MeasureTheory.snormEssSup_const_smul - theorem MeasureTheory.snormEssSup_const_smul_le - theorem MeasureTheory.snormEssSup_eq_zero_iff - theorem MeasureTheory.snormEssSup_le_nnreal_smul_snormEssSup_of_ae_le_mul - theorem MeasureTheory.snormEssSup_le_of_ae_bound - theorem MeasureTheory.snormEssSup_le_of_ae_nnnorm_bound - theorem MeasureTheory.snormEssSup_lt_top_of_ae_bound - theorem MeasureTheory.snormEssSup_lt_top_of_ae_nnnorm_bound - theorem MeasureTheory.snormEssSup_map_measure - theorem MeasureTheory.snormEssSup_measure_zero - theorem MeasureTheory.snormEssSup_mono_measure - theorem MeasureTheory.snormEssSup_mono_nnnorm_ae - theorem MeasureTheory.snormEssSup_piecewise - theorem MeasureTheory.snormEssSup_smul_measure - theorem MeasureTheory.snormEssSup_zero - theorem MeasureTheory.snorm_comp_measurePreserving - theorem MeasureTheory.snorm_congr_ae - theorem MeasureTheory.snorm_congr_nnnorm_ae - theorem MeasureTheory.snorm_congr_norm_ae - theorem MeasureTheory.snorm_const' - theorem MeasureTheory.snorm_const - theorem MeasureTheory.snorm_const_lt_top_iff - theorem MeasureTheory.snorm_const_smul - theorem MeasureTheory.snorm_const_smul_le - theorem MeasureTheory.snorm_eq_lintegral_rpow_nnnorm - theorem MeasureTheory.snorm_eq_snorm' - theorem MeasureTheory.snorm_eq_zero_and_zero_of_ae_le_mul_neg - theorem MeasureTheory.snorm_eq_zero_iff - theorem MeasureTheory.snorm_exponent_top - theorem MeasureTheory.snorm_exponent_zero - theorem MeasureTheory.snorm_indicator_eq_restrict - theorem MeasureTheory.snorm_indicator_sub_indicator - theorem MeasureTheory.snorm_le_add_measure_left - theorem MeasureTheory.snorm_le_add_measure_right - theorem MeasureTheory.snorm_le_mul_snorm_of_ae_le_mul - theorem MeasureTheory.snorm_le_nnreal_smul_snorm_of_ae_le_mul - theorem MeasureTheory.snorm_le_of_ae_bound - theorem MeasureTheory.snorm_le_of_ae_nnnorm_bound - theorem MeasureTheory.snorm_lt_top_iff_lintegral_rpow_nnnorm_lt_top - theorem MeasureTheory.snorm_map_measure - theorem MeasureTheory.snorm_measure_zero - theorem MeasureTheory.snorm_mono - theorem MeasureTheory.snorm_mono_ae - theorem MeasureTheory.snorm_mono_ae_real - theorem MeasureTheory.snorm_mono_measure - theorem MeasureTheory.snorm_mono_nnnorm - theorem MeasureTheory.snorm_mono_nnnorm_ae - theorem MeasureTheory.snorm_mono_real - theorem MeasureTheory.snorm_neg - theorem MeasureTheory.snorm_nnreal_eq_lintegral - theorem MeasureTheory.snorm_nnreal_eq_snorm' - theorem MeasureTheory.snorm_nnreal_pow_eq_lintegral - theorem MeasureTheory.snorm_norm - theorem MeasureTheory.snorm_norm_rpow - theorem MeasureTheory.snorm_one_add_measure - theorem MeasureTheory.snorm_one_eq_lintegral_nnnorm - theorem MeasureTheory.snorm_one_smul_measure - theorem MeasureTheory.snorm_restrict_eq_of_support_subset - theorem MeasureTheory.snorm_restrict_le - theorem MeasureTheory.snorm_smul_measure_of_ne_top - theorem MeasureTheory.snorm_smul_measure_of_ne_zero - theorem MeasureTheory.snorm_top_piecewise - theorem MeasureTheory.snorm_zero' - theorem MeasureTheory.snorm_zero Modified Mathlib/MeasureTheory/Function/LpSeminorm/ChebyshevMarkov.lean + theorem MeasureTheory.meas_ge_le_mul_pow_eLpNorm - theorem MeasureTheory.meas_ge_le_mul_pow_snorm + theorem MeasureTheory.mul_meas_ge_le_pow_eLpNorm' + theorem MeasureTheory.mul_meas_ge_le_pow_eLpNorm - theorem MeasureTheory.mul_meas_ge_le_pow_snorm' - theorem MeasureTheory.mul_meas_ge_le_pow_snorm + theorem MeasureTheory.pow_mul_meas_ge_le_eLpNorm - theorem MeasureTheory.pow_mul_meas_ge_le_snorm Modified Mathlib/MeasureTheory/Function/LpSeminorm/CompareExp.lean + theorem MeasureTheory.eLpNorm'_le_eLpNorm'_mul_eLpNorm' + theorem MeasureTheory.eLpNorm'_le_eLpNorm'_mul_rpow_measure_univ + theorem MeasureTheory.eLpNorm'_le_eLpNorm'_of_exponent_le + theorem MeasureTheory.eLpNorm'_le_eLpNormEssSup + theorem MeasureTheory.eLpNorm'_le_eLpNormEssSup_mul_rpow_measure_univ + theorem MeasureTheory.eLpNorm'_lt_top_of_eLpNorm'_lt_top_of_exponent_le + theorem MeasureTheory.eLpNorm'_smul_le_mul_eLpNorm' + theorem MeasureTheory.eLpNorm_le_eLpNorm_mul_eLpNorm'_of_norm + theorem MeasureTheory.eLpNorm_le_eLpNorm_mul_eLpNorm_of_nnnorm + theorem MeasureTheory.eLpNorm_le_eLpNorm_mul_eLpNorm_top + theorem MeasureTheory.eLpNorm_le_eLpNorm_mul_rpow_measure_univ + theorem MeasureTheory.eLpNorm_le_eLpNorm_of_exponent_le + theorem MeasureTheory.eLpNorm_le_eLpNorm_top_mul_eLpNorm + theorem MeasureTheory.eLpNorm_smul_le_eLpNorm_mul_eLpNorm_top + theorem MeasureTheory.eLpNorm_smul_le_eLpNorm_top_mul_eLpNorm + theorem MeasureTheory.eLpNorm_smul_le_mul_eLpNorm - theorem MeasureTheory.snorm'_le_snorm'_mul_rpow_measure_univ - theorem MeasureTheory.snorm'_le_snorm'_mul_snorm' - theorem MeasureTheory.snorm'_le_snorm'_of_exponent_le - theorem MeasureTheory.snorm'_le_snormEssSup - theorem MeasureTheory.snorm'_le_snormEssSup_mul_rpow_measure_univ - theorem MeasureTheory.snorm'_lt_top_of_snorm'_lt_top_of_exponent_le - theorem MeasureTheory.snorm'_smul_le_mul_snorm' - theorem MeasureTheory.snorm_le_snorm_mul_rpow_measure_univ - theorem MeasureTheory.snorm_le_snorm_mul_snorm'_of_norm - theorem MeasureTheory.snorm_le_snorm_mul_snorm_of_nnnorm - theorem MeasureTheory.snorm_le_snorm_mul_snorm_top - theorem MeasureTheory.snorm_le_snorm_of_exponent_le - theorem MeasureTheory.snorm_le_snorm_top_mul_snorm - theorem MeasureTheory.snorm_smul_le_mul_snorm - theorem MeasureTheory.snorm_smul_le_snorm_mul_snorm_top - theorem MeasureTheory.snorm_smul_le_snorm_top_mul_snorm Modified Mathlib/MeasureTheory/Function/LpSeminorm/TriangleInequality.lean + theorem MeasureTheory.eLpNorm'_add_le + theorem MeasureTheory.eLpNorm'_add_le_of_le_one + theorem MeasureTheory.eLpNorm'_sum_le + theorem MeasureTheory.eLpNormEssSup_add_le + theorem MeasureTheory.eLpNorm_add_le' + theorem MeasureTheory.eLpNorm_add_le + theorem MeasureTheory.eLpNorm_add_lt_top + theorem MeasureTheory.eLpNorm_sub_le' + theorem MeasureTheory.eLpNorm_sub_le + theorem MeasureTheory.eLpNorm_sum_le - theorem MeasureTheory.snorm'_add_le - theorem MeasureTheory.snorm'_add_le_of_le_one - theorem MeasureTheory.snorm'_sum_le - theorem MeasureTheory.snormEssSup_add_le - theorem MeasureTheory.snorm_add_le' - theorem MeasureTheory.snorm_add_le - theorem MeasureTheory.snorm_add_lt_top - theorem MeasureTheory.snorm_sub_le' - theorem MeasureTheory.snorm_sub_le - theorem MeasureTheory.snorm_sum_le Modified Mathlib/MeasureTheory/Function/LpSeminorm/Trim.lean + theorem MeasureTheory.eLpNorm'_trim + theorem MeasureTheory.eLpNormEssSup_trim + theorem MeasureTheory.eLpNorm_trim + theorem MeasureTheory.eLpNorm_trim_ae - theorem MeasureTheory.snorm'_trim - theorem MeasureTheory.snormEssSup_trim - theorem MeasureTheory.snorm_trim - theorem MeasureTheory.snorm_trim_ae Modified Mathlib/MeasureTheory/Function/LpSpace.lean + theorem MeasureTheory.Lp.ae_tendsto_of_cauchy_eLpNorm' + theorem MeasureTheory.Lp.ae_tendsto_of_cauchy_eLpNorm - theorem MeasureTheory.Lp.ae_tendsto_of_cauchy_snorm' - theorem MeasureTheory.Lp.ae_tendsto_of_cauchy_snorm +/- theorem MeasureTheory.Lp.coeFn_mk +/- theorem MeasureTheory.Lp.coe_mk +/- theorem MeasureTheory.Lp.coe_nnnorm_toLp +/- theorem MeasureTheory.Lp.dist_def + theorem MeasureTheory.Lp.eLpNorm'_lim_eq_lintegral_liminf + theorem MeasureTheory.Lp.eLpNorm'_lim_le_liminf_eLpNorm' + theorem MeasureTheory.Lp.eLpNorm_exponent_top_lim_eq_essSup_liminf + theorem MeasureTheory.Lp.eLpNorm_exponent_top_lim_le_liminf_eLpNorm_exponent_top + theorem MeasureTheory.Lp.eLpNorm_lim_le_liminf_eLpNorm + theorem MeasureTheory.Lp.eLpNorm_lt_top + theorem MeasureTheory.Lp.eLpNorm_ne_top +/- theorem MeasureTheory.Lp.edist_def +/- theorem MeasureTheory.Lp.edist_toLp_zero + theorem MeasureTheory.Lp.mem_Lp_iff_eLpNorm_lt_top - theorem MeasureTheory.Lp.mem_Lp_iff_snorm_lt_top +/- theorem MeasureTheory.Lp.nnnorm_coe_ennreal +/- theorem MeasureTheory.Lp.nnnorm_def +/- theorem MeasureTheory.Lp.norm_def +/- theorem MeasureTheory.Lp.norm_toLp - theorem MeasureTheory.Lp.snorm'_lim_eq_lintegral_liminf - theorem MeasureTheory.Lp.snorm'_lim_le_liminf_snorm' - theorem MeasureTheory.Lp.snorm_exponent_top_lim_eq_essSup_liminf - theorem MeasureTheory.Lp.snorm_exponent_top_lim_le_liminf_snorm_exponent_top - theorem MeasureTheory.Lp.snorm_lim_le_liminf_snorm - theorem MeasureTheory.Lp.snorm_lt_top - theorem MeasureTheory.Lp.snorm_ne_top + theorem MeasureTheory.Memℒp.eLpNorm_mk_lt_top - theorem MeasureTheory.Memℒp.snorm_mk_lt_top + theorem MeasureTheory.eLpNormEssSup_indicator_const_eq + theorem MeasureTheory.eLpNormEssSup_indicator_const_le + theorem MeasureTheory.eLpNormEssSup_indicator_eq_eLpNormEssSup_restrict + theorem MeasureTheory.eLpNormEssSup_indicator_le + theorem MeasureTheory.eLpNorm_aeeqFun + theorem MeasureTheory.eLpNorm_indicator_const' + theorem MeasureTheory.eLpNorm_indicator_const + theorem MeasureTheory.eLpNorm_indicator_const_le + theorem MeasureTheory.eLpNorm_indicator_const₀ + theorem MeasureTheory.eLpNorm_indicator_eq_eLpNorm_restrict + theorem MeasureTheory.eLpNorm_indicator_le + theorem MeasureTheory.exists_eLpNorm_indicator_le - theorem MeasureTheory.exists_snorm_indicator_le - theorem MeasureTheory.snormEssSup_indicator_const_eq - theorem MeasureTheory.snormEssSup_indicator_const_le - theorem MeasureTheory.snormEssSup_indicator_eq_snormEssSup_restrict - theorem MeasureTheory.snormEssSup_indicator_le - theorem MeasureTheory.snorm_aeeqFun - theorem MeasureTheory.snorm_indicator_const' - theorem MeasureTheory.snorm_indicator_const - theorem MeasureTheory.snorm_indicator_const_le - theorem MeasureTheory.snorm_indicator_const₀ - theorem MeasureTheory.snorm_indicator_eq_snorm_restrict - theorem MeasureTheory.snorm_indicator_le Modified Mathlib/MeasureTheory/Function/SimpleFuncDenseLp.lean + theorem MeasureTheory.Memℒp.exists_simpleFunc_eLpNorm_sub_lt - theorem MeasureTheory.Memℒp.exists_simpleFunc_snorm_sub_lt + theorem MeasureTheory.SimpleFunc.tendsto_approxOn_Lp_eLpNorm - theorem MeasureTheory.SimpleFunc.tendsto_approxOn_Lp_snorm + theorem MeasureTheory.SimpleFunc.tendsto_approxOn_range_Lp_eLpNorm - theorem MeasureTheory.SimpleFunc.tendsto_approxOn_range_Lp_snorm Modified Mathlib/MeasureTheory/Function/UnifTight.lean Modified Mathlib/MeasureTheory/Function/UniformIntegrable.lean + theorem MeasureTheory.Memℒp.eLpNormEssSup_indicator_norm_ge_eq_zero + theorem MeasureTheory.Memℒp.eLpNorm_indicator_le' + theorem MeasureTheory.Memℒp.eLpNorm_indicator_le + theorem MeasureTheory.Memℒp.eLpNorm_indicator_le_of_meas + theorem MeasureTheory.Memℒp.eLpNorm_indicator_norm_ge_le + theorem MeasureTheory.Memℒp.eLpNorm_indicator_norm_ge_pos_le - theorem MeasureTheory.Memℒp.snormEssSup_indicator_norm_ge_eq_zero - theorem MeasureTheory.Memℒp.snorm_indicator_le' - theorem MeasureTheory.Memℒp.snorm_indicator_le - theorem MeasureTheory.Memℒp.snorm_indicator_le_of_meas - theorem MeasureTheory.Memℒp.snorm_indicator_norm_ge_le - theorem MeasureTheory.Memℒp.snorm_indicator_norm_ge_pos_le + theorem MeasureTheory.eLpNorm_indicator_le_of_bound + theorem MeasureTheory.eLpNorm_sub_le_of_dist_bdd - theorem MeasureTheory.snorm_indicator_le_of_bound - theorem MeasureTheory.snorm_sub_le_of_dist_bdd Modified Mathlib/MeasureTheory/Integral/Bochner.lean + theorem MeasureTheory.Memℒp.eLpNorm_eq_integral_rpow_norm - theorem MeasureTheory.Memℒp.snorm_eq_integral_rpow_norm + theorem MeasureTheory.eLpNorm_one_le_of_le' + theorem MeasureTheory.eLpNorm_one_le_of_le - theorem MeasureTheory.snorm_one_le_of_le' - theorem MeasureTheory.snorm_one_le_of_le Modified Mathlib/MeasureTheory/Integral/Lebesgue.lean Modified Mathlib/MeasureTheory/Integral/MeanInequalities.lean + theorem ENNReal.fun_eq_funMulInvSnorm_mul_eLpNorm - theorem ENNReal.fun_eq_funMulInvSnorm_mul_snorm + theorem ENNReal.lintegral_rpow_add_le_add_eLpNorm_mul_lintegral_rpow_add - theorem ENNReal.lintegral_rpow_add_le_add_snorm_mul_lintegral_rpow_add Modified Mathlib/MeasureTheory/Integral/SetIntegral.lean Modified Mathlib/MeasureTheory/Integral/SetToL1.lean Modified Mathlib/Probability/IdentDistrib.lean + theorem ProbabilityTheory.IdentDistrib.eLpNorm_eq - theorem ProbabilityTheory.IdentDistrib.snorm_eq Modified Mathlib/Probability/Kernel/Disintegration/CdfToKernel.lean Modified Mathlib/Probability/Kernel/Disintegration/Density.lean + theorem ProbabilityTheory.Kernel.eLpNorm_densityProcess_le + theorem ProbabilityTheory.Kernel.eLpNorm_density_le - theorem ProbabilityTheory.Kernel.snorm_densityProcess_le - theorem ProbabilityTheory.Kernel.snorm_density_le + theorem ProbabilityTheory.Kernel.tendsto_eLpNorm_one_densityProcess_limitProcess + theorem ProbabilityTheory.Kernel.tendsto_eLpNorm_one_restrict_densityProcess_limitProcess - theorem ProbabilityTheory.Kernel.tendsto_snorm_one_densityProcess_limitProcess - theorem ProbabilityTheory.Kernel.tendsto_snorm_one_restrict_densityProcess_limitProcess Modified Mathlib/Probability/Martingale/BorelCantelli.lean + theorem MeasureTheory.Submartingale.stoppedValue_leastGE_eLpNorm_le' + theorem MeasureTheory.Submartingale.stoppedValue_leastGE_eLpNorm_le - theorem MeasureTheory.Submartingale.stoppedValue_leastGE_snorm_le' - theorem MeasureTheory.Submartingale.stoppedValue_leastGE_snorm_le Modified Mathlib/Probability/Martingale/Convergence.lean + theorem MeasureTheory.Integrable.tendsto_eLpNorm_condexp - theorem MeasureTheory.Integrable.tendsto_snorm_condexp + theorem MeasureTheory.Martingale.eq_condexp_of_tendsto_eLpNorm - theorem MeasureTheory.Martingale.eq_condexp_of_tendsto_snorm + theorem MeasureTheory.Submartingale.tendsto_eLpNorm_one_limitProcess - theorem MeasureTheory.Submartingale.tendsto_snorm_one_limitProcess + theorem MeasureTheory.tendsto_eLpNorm_condexp - theorem MeasureTheory.tendsto_snorm_condexp Modified Mathlib/Probability/Process/Filtration.lean + theorem MeasureTheory.Filtration.memℒp_limitProcess_of_eLpNorm_bdd - theorem MeasureTheory.Filtration.memℒp_limitProcess_of_snorm_bdd Modified Mathlib/Probability/StrongLaw.lean Modified Mathlib/Probability/Variance.lean 2024-07-31 06:03:29 0c8f6eb chore(ModelTheory/Complexity): move quantifier complexity into a new file (#15275) Several important files in the model theory library touch on quantifier complexity of formulas, an idea that is not yet used for anything else in `mathlib`. This PR moves all quantifier complexity content to a new file, `ModelTheory/Complexity` and improves the documentation of these concepts. This will hopefully make these basic files more legible and easier to refactor. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/ModelTheory/Complexity.lean + theorem FirstOrder.Language.BoundedFormula.IsAtomic.castLE + theorem FirstOrder.Language.BoundedFormula.IsAtomic.isPrenex + theorem FirstOrder.Language.BoundedFormula.IsAtomic.isQF + theorem FirstOrder.Language.BoundedFormula.IsAtomic.liftAt + theorem FirstOrder.Language.BoundedFormula.IsAtomic.relabel + inductive FirstOrder.Language.BoundedFormula.IsAtomic + theorem FirstOrder.Language.BoundedFormula.IsPrenex.castLE + theorem FirstOrder.Language.BoundedFormula.IsPrenex.induction_on_all_not + theorem FirstOrder.Language.BoundedFormula.IsPrenex.liftAt + theorem FirstOrder.Language.BoundedFormula.IsPrenex.relabel + inductive FirstOrder.Language.BoundedFormula.IsPrenex + theorem FirstOrder.Language.BoundedFormula.IsQF.castLE + theorem FirstOrder.Language.BoundedFormula.IsQF.induction_on_inf_not + theorem FirstOrder.Language.BoundedFormula.IsQF.induction_on_sup_not + theorem FirstOrder.Language.BoundedFormula.IsQF.isPrenex + theorem FirstOrder.Language.BoundedFormula.IsQF.liftAt + theorem FirstOrder.Language.BoundedFormula.IsQF.not + theorem FirstOrder.Language.BoundedFormula.IsQF.relabel + theorem FirstOrder.Language.BoundedFormula.IsQF.toPrenexImp + theorem FirstOrder.Language.BoundedFormula.IsQF.toPrenexImpRight + inductive FirstOrder.Language.BoundedFormula.IsQF + theorem FirstOrder.Language.BoundedFormula.induction_on_all_ex + theorem FirstOrder.Language.BoundedFormula.induction_on_exists_not + theorem FirstOrder.Language.BoundedFormula.isPrenex_toPrenexImp + theorem FirstOrder.Language.BoundedFormula.isPrenex_toPrenexImpRight + theorem FirstOrder.Language.BoundedFormula.isQF_bot + theorem FirstOrder.Language.BoundedFormula.not_all_isAtomic + theorem FirstOrder.Language.BoundedFormula.not_all_isQF + theorem FirstOrder.Language.BoundedFormula.not_ex_isAtomic + theorem FirstOrder.Language.BoundedFormula.not_ex_isQF + theorem FirstOrder.Language.BoundedFormula.realize_toPrenex + theorem FirstOrder.Language.BoundedFormula.realize_toPrenexImp + theorem FirstOrder.Language.BoundedFormula.realize_toPrenexImpRight + theorem FirstOrder.Language.BoundedFormula.semanticallyEquivalent_toPrenex + def FirstOrder.Language.BoundedFormula.toPrenex + def FirstOrder.Language.BoundedFormula.toPrenexImp + def FirstOrder.Language.BoundedFormula.toPrenexImpRight + theorem FirstOrder.Language.BoundedFormula.toPrenex_isPrenex + theorem FirstOrder.Language.Formula.isAtomic_graph Modified Mathlib/ModelTheory/Satisfiability.lean - theorem FirstOrder.Language.BoundedFormula.IsQF.induction_on_inf_not - theorem FirstOrder.Language.BoundedFormula.IsQF.induction_on_sup_not - theorem FirstOrder.Language.BoundedFormula.induction_on_all_ex - theorem FirstOrder.Language.BoundedFormula.induction_on_exists_not - theorem FirstOrder.Language.BoundedFormula.semanticallyEquivalent_toPrenex Modified Mathlib/ModelTheory/Semantics.lean - theorem FirstOrder.Language.BoundedFormula.realize_toPrenex - theorem FirstOrder.Language.BoundedFormula.realize_toPrenexImp - theorem FirstOrder.Language.BoundedFormula.realize_toPrenexImpRight Modified Mathlib/ModelTheory/Syntax.lean - theorem FirstOrder.Language.BoundedFormula.IsAtomic.castLE - theorem FirstOrder.Language.BoundedFormula.IsAtomic.isPrenex - theorem FirstOrder.Language.BoundedFormula.IsAtomic.isQF - theorem FirstOrder.Language.BoundedFormula.IsAtomic.liftAt - theorem FirstOrder.Language.BoundedFormula.IsAtomic.relabel - inductive FirstOrder.Language.BoundedFormula.IsAtomic - theorem FirstOrder.Language.BoundedFormula.IsPrenex.castLE - theorem FirstOrder.Language.BoundedFormula.IsPrenex.induction_on_all_not - theorem FirstOrder.Language.BoundedFormula.IsPrenex.liftAt - theorem FirstOrder.Language.BoundedFormula.IsPrenex.relabel - inductive FirstOrder.Language.BoundedFormula.IsPrenex - theorem FirstOrder.Language.BoundedFormula.IsQF.castLE - theorem FirstOrder.Language.BoundedFormula.IsQF.isPrenex - theorem FirstOrder.Language.BoundedFormula.IsQF.liftAt - theorem FirstOrder.Language.BoundedFormula.IsQF.not - theorem FirstOrder.Language.BoundedFormula.IsQF.relabel - theorem FirstOrder.Language.BoundedFormula.IsQF.toPrenexImp - theorem FirstOrder.Language.BoundedFormula.IsQF.toPrenexImpRight - inductive FirstOrder.Language.BoundedFormula.IsQF - theorem FirstOrder.Language.BoundedFormula.isPrenex_toPrenexImp - theorem FirstOrder.Language.BoundedFormula.isPrenex_toPrenexImpRight - theorem FirstOrder.Language.BoundedFormula.isQF_bot - theorem FirstOrder.Language.BoundedFormula.not_all_isAtomic - theorem FirstOrder.Language.BoundedFormula.not_all_isQF - theorem FirstOrder.Language.BoundedFormula.not_ex_isAtomic - theorem FirstOrder.Language.BoundedFormula.not_ex_isQF - def FirstOrder.Language.BoundedFormula.toPrenex - def FirstOrder.Language.BoundedFormula.toPrenexImp - def FirstOrder.Language.BoundedFormula.toPrenexImpRight - theorem FirstOrder.Language.BoundedFormula.toPrenex_isPrenex - theorem FirstOrder.Language.Formula.isAtomic_graph 2024-07-31 05:14:53 4235d67 feat: Lemmas specialised to `piFinset fun _ : Fin n ↦ s` (#15329) Those lemmas are specifically useful for rewriting backwards when the indexing type doesn't matter (and also sometimes useful forwardly). From LeanAPAP ESTIMATED CHANGES Modified Mathlib/Data/Fintype/BigOperators.lean + theorem Fintype.card_piFinset_const + theorem Fintype.card_pi_const Modified Mathlib/Data/Fintype/Pi.lean + theorem Finset.Nonempty.piFinset_const 2024-07-31 03:44:36 c934de6 chore: backports for leanprover/lean4#4814 (part 9) (#15352) see https://github.com/leanprover-community/mathlib4/pull/15245 ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Subgroup/Basic.lean +/- theorem ConjClasses.mem_noncenter Modified Mathlib/Algebra/Homology/ShortComplex/Homology.lean +/- theorem CategoryTheory.ShortComplex.LeftHomologyData.homologyIso_hom_comp_leftHomologyIso_inv +/- theorem CategoryTheory.ShortComplex.LeftHomologyData.homologyπ_comp_homologyIso_hom +/- theorem CategoryTheory.ShortComplex.LeftHomologyData.leftHomologyIso_hom_comp_homologyIso_inv +/- theorem CategoryTheory.ShortComplex.LeftHomologyData.π_comp_homologyIso_inv +/- theorem CategoryTheory.ShortComplex.RightHomologyData.homologyIso_hom_comp_rightHomologyIso_inv +/- theorem CategoryTheory.ShortComplex.RightHomologyData.homologyIso_hom_comp_ι +/- theorem CategoryTheory.ShortComplex.RightHomologyData.homologyIso_inv_comp_homologyι +/- theorem CategoryTheory.ShortComplex.RightHomologyData.rightHomologyIso_hom_comp_homologyIso_inv Modified Mathlib/Algebra/Homology/ShortComplex/QuasiIso.lean Modified Mathlib/CategoryTheory/EffectiveEpi/Preserves.lean Modified Mathlib/CategoryTheory/Limits/ConcreteCategory.lean Modified Mathlib/CategoryTheory/Limits/Elements.lean Modified Mathlib/CategoryTheory/Limits/HasLimits.lean Modified Mathlib/CategoryTheory/Limits/Opposites.lean +/- theorem CategoryTheory.Limits.desc_op_comp_opCoproductIsoProduct_hom +/- theorem CategoryTheory.Limits.opCoproductIsoProduct_inv_comp_ι +/- theorem CategoryTheory.Limits.opProductIsoCoproduct_inv_comp_lift +/- theorem CategoryTheory.Limits.π_comp_opProductIsoCoproduct_hom Modified Mathlib/CategoryTheory/Limits/TypesFiltered.lean Modified Mathlib/CategoryTheory/Localization/CalculusOfFractions/Fractions.lean +/- theorem CategoryTheory.MorphismProperty.LeftFraction₂Rel.fst +/- theorem CategoryTheory.MorphismProperty.LeftFraction₂Rel.snd Modified Mathlib/CategoryTheory/Localization/LocalizerMorphism.lean Modified Mathlib/CategoryTheory/Localization/Prod.lean +/- theorem CategoryTheory.Localization.StrictUniversalPropertyFixedTarget.prod_fac₁ Modified Mathlib/CategoryTheory/Monad/Limits.lean Modified Mathlib/CategoryTheory/SmallObject/Construction.lean Modified Mathlib/Control/LawfulFix.lean +/- theorem Pi.uncurry_curry_continuous Modified Mathlib/Control/Traversable/Instances.lean +/- theorem Option.naturality Modified Mathlib/Data/Finset/Basic.lean +/- theorem Finset.Nonempty.exists_cons_eq Modified Mathlib/Data/Finset/Lattice.lean +/- theorem Finset.nsmul_inf' +/- theorem Finset.nsmul_sup' Modified Mathlib/Data/Set/Finite.lean +/- theorem Set.Finite.injOn_iff_bijOn_of_mapsTo +/- theorem Set.Finite.surjOn_iff_bijOn_of_mapsTo Modified Mathlib/GroupTheory/GroupAction/Pointwise.lean Modified Mathlib/GroupTheory/Perm/Support.lean Modified Mathlib/Logic/Denumerable.lean Modified Mathlib/Logic/Encodable/Basic.lean +/- theorem Encodable.decode_prod_val Modified Mathlib/Order/Closure.lean Modified Mathlib/Order/Grade.lean +/- theorem GradeOrder.wellFoundedGT +/- theorem GradeOrder.wellFoundedLT +/- theorem grade_mono Modified Mathlib/Order/IsWellOrderLimitElement.lean Modified Mathlib/Order/Minimal.lean Modified Mathlib/Tactic/Ring/Basic.lean +/- theorem Mathlib.Tactic.Ring.of_eq 2024-07-31 02:43:56 7c70ad9 chore: move Init.Order.Defs to Order.Defs (#15210) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/NeZero.lean Modified Mathlib/Data/Bool/Basic.lean Modified Mathlib/Data/Char.lean Modified Mathlib/Init/Data/Int/Order.lean Modified Mathlib/Init/Order/LinearOrder.lean Modified Mathlib/Logic/Nontrivial/Basic.lean Renamed Mathlib/Init/Order/Defs.lean to Mathlib/Order/Defs.lean Modified Mathlib/Order/Lattice.lean Modified Mathlib/Tactic/GCongr/Core.lean Modified Mathlib/Tactic/PushNeg.lean Modified scripts/noshake.json Modified test/push_neg.lean 2024-07-31 01:56:00 59d4157 chore (Algebra.Order.Ring.Unbundled.Basic): inline typeclass assumptions (#15334) We improve the generality of the results here by using inlined typeclass assumptions. It also makes this file comport better with the new variable inclusion mechanism. See [Zulip](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/New.20variable.20inclusion.20mechanism). ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Ring/Unbundled/Basic.lean +/- theorem Antitone.const_mul +/- theorem Antitone.const_mul_of_nonpos +/- theorem Antitone.mul +/- theorem Antitone.mul_const +/- theorem Antitone.mul_const_of_nonpos +/- theorem Antitone.mul_monotone +/- theorem Monotone.const_mul +/- theorem Monotone.const_mul_of_nonpos +/- theorem Monotone.mul +/- theorem Monotone.mul_antitone +/- theorem Monotone.mul_const +/- theorem Monotone.mul_const_of_nonpos +/- theorem Monotone.mul_strictMono +/- theorem StrictAnti.const_mul +/- theorem StrictAnti.const_mul_of_neg +/- theorem StrictAnti.mul_const +/- theorem StrictAnti.mul_const_of_neg +/- theorem StrictMono.const_mul +/- theorem StrictMono.const_mul_of_neg +/- theorem StrictMono.mul +/- theorem StrictMono.mul_const +/- theorem StrictMono.mul_const_of_neg +/- theorem StrictMono.mul_monotone +/- theorem Units.inv_neg +/- theorem Units.inv_pos +/- theorem add_le_mul' +/- theorem add_le_mul +/- theorem add_le_mul_of_left_le_right +/- theorem add_le_mul_of_right_le_left +/- theorem add_le_mul_two_add +/- theorem antitone_mul_left +/- theorem antitone_mul_right +/- theorem cmp_mul_neg_left +/- theorem cmp_mul_neg_right +/- theorem cmp_mul_pos_left +/- theorem cmp_mul_pos_right +/- theorem eq_zero_of_mul_self_add_mul_self_eq_zero +/- theorem le_iff_exists_nonneg_add +/- theorem le_mul_of_le_one_left +/- theorem le_mul_of_le_one_right +/- theorem le_of_mul_le_of_one_le +/- theorem lt_mul_left +/- theorem lt_mul_of_lt_one_left +/- theorem lt_mul_of_lt_one_right +/- theorem lt_mul_right +/- theorem lt_mul_self +/- theorem lt_of_mul_lt_mul_of_nonpos_left +/- theorem lt_of_mul_lt_mul_of_nonpos_right +/- theorem lt_two_mul_self +/- theorem max_mul_of_nonneg +/- theorem min_mul_of_nonneg +/- theorem monotone_mul_left_of_nonneg +/- theorem monotone_mul_right_of_nonneg +/- theorem mul_add_mul_le_mul_add_mul' +/- theorem mul_add_mul_le_mul_add_mul +/- theorem mul_add_mul_lt_mul_add_mul' +/- theorem mul_add_mul_lt_mul_add_mul +/- theorem mul_le_mul_left_of_neg +/- theorem mul_le_mul_of_nonneg_of_nonpos' +/- theorem mul_le_mul_of_nonneg_of_nonpos +/- theorem mul_le_mul_of_nonpos_left +/- theorem mul_le_mul_of_nonpos_of_nonneg' +/- theorem mul_le_mul_of_nonpos_of_nonneg +/- theorem mul_le_mul_of_nonpos_of_nonpos' +/- theorem mul_le_mul_of_nonpos_of_nonpos +/- theorem mul_le_mul_of_nonpos_right +/- theorem mul_le_mul_right_of_neg +/- theorem mul_le_of_one_le_left +/- theorem mul_le_of_one_le_right +/- theorem mul_le_one +/- theorem mul_lt_mul_left_of_neg +/- theorem mul_lt_mul_of_neg_left +/- theorem mul_lt_mul_of_neg_right +/- theorem mul_lt_mul_right_of_neg +/- theorem mul_lt_of_one_lt_left +/- theorem mul_lt_of_one_lt_right +/- theorem mul_lt_one_of_nonneg_of_lt_one_left +/- theorem mul_lt_one_of_nonneg_of_lt_one_right +/- theorem mul_max_of_nonneg +/- theorem mul_min_of_nonneg +/- theorem mul_neg_iff +/- theorem mul_nonneg_iff +/- theorem mul_nonneg_iff_left_nonneg_of_pos +/- theorem mul_nonneg_iff_neg_imp_nonpos +/- theorem mul_nonneg_iff_of_pos_left +/- theorem mul_nonneg_iff_of_pos_right +/- theorem mul_nonneg_iff_pos_imp_nonneg +/- theorem mul_nonneg_iff_right_nonneg_of_pos +/- theorem mul_nonneg_of_nonpos_of_nonpos +/- theorem mul_nonneg_of_three +/- theorem mul_nonpos_iff +/- theorem mul_nonpos_iff_neg_imp_nonneg +/- theorem mul_nonpos_iff_pos_imp_nonpos +/- theorem mul_pos_iff +/- theorem mul_pos_of_neg_of_neg +/- theorem mul_self_add_mul_self_eq_zero +/- theorem mul_self_inj +/- theorem mul_self_le_mul_self_iff +/- theorem mul_self_le_mul_self_of_le_of_neg_le +/- theorem mul_self_lt_mul_self +/- theorem mul_self_lt_mul_self_iff +/- theorem mul_self_nonneg +/- theorem mul_self_pos +/- theorem neg_iff_pos_of_mul_neg +/- theorem neg_one_lt_zero +/- theorem nonneg_and_nonneg_or_nonpos_and_nonpos_of_mul_nonneg +/- theorem nonneg_le_nonneg_of_sq_le_sq +/- theorem nonneg_of_mul_nonneg_left +/- theorem nonneg_of_mul_nonneg_right +/- theorem nonneg_of_mul_nonpos_left +/- theorem nonneg_of_mul_nonpos_right +/- theorem nonpos_of_mul_nonneg_left +/- theorem nonpos_of_mul_nonneg_right +/- theorem nonpos_of_mul_nonpos_left +/- theorem nonpos_of_mul_nonpos_right +/- theorem one_le_mul_of_one_le_of_one_le +/- theorem one_lt_mul_of_le_of_lt +/- theorem one_lt_mul_of_lt_of_le +/- theorem pos_iff_neg_of_mul_neg +/- theorem pos_of_mul_neg_left +/- theorem pos_of_mul_neg_right +/- theorem pow_le_of_le_one +/- theorem pow_le_pow_of_le_one +/- theorem pow_nonneg +/- theorem pow_pos +/- theorem sign_cases_of_C_mul_pow_nonneg +/- theorem sq_le +/- theorem sq_nonneg +/- theorem strictAnti_mul_left +/- theorem strictAnti_mul_right +/- theorem strictMonoOn_mul_self +/- theorem strictMono_mul_left_of_pos +/- theorem strictMono_mul_right_of_pos +/- theorem sub_one_lt +/- theorem two_mul_le_add_sq 2024-07-31 01:05:54 876ccfb chore: backports for leanprover/lean4#4814 (part 7) (#15332) see https://github.com/leanprover-community/mathlib4/pull/15245 ESTIMATED CHANGES Modified Mathlib/Algebra/Module/LinearMap/Defs.lean +/- theorem IsLinearMap.map_neg +/- theorem IsLinearMap.map_sub +/- theorem IsLinearMap.map_zero +/- def IsLinearMap.mk' +/- theorem IsLinearMap.mk'_apply Modified Mathlib/Algebra/Order/Group/PosPart.lean Modified Mathlib/Data/Set/Lattice.lean Modified Mathlib/Order/Interval/Set/OrdConnectedComponent.lean Modified Mathlib/SetTheory/ZFC/Basic.lean +/- theorem ZFSet.choice_isFunc +/- theorem ZFSet.choice_mem +/- theorem ZFSet.choice_mem_aux 2024-07-30 19:21:45 ce4bc7a chore: fix Lean 3 names in comments, related to presheaves (#15308) Rename - presheaf -> Presheaf - opens -> Opens - supr -> iSup - pairwise -> pairwise - and a few more ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Category/Pairwise.lean Modified Mathlib/CategoryTheory/Functor/Flat.lean Modified Mathlib/Topology/Sheaves/Forget.lean Modified Mathlib/Topology/Sheaves/SheafCondition/EqualizerProducts.lean Modified Mathlib/Topology/Sheaves/SheafCondition/PairwiseIntersections.lean Modified Mathlib/Topology/Sheaves/SheafCondition/UniqueGluing.lean 2024-07-30 18:20:59 ad356e5 chore(Topology/LocallyClosed): move around (#15323) - move definitions to `Topology/Defs/Basic`; - move the last lemma to `Topology/LocalAtTarget`. ESTIMATED CHANGES Modified Mathlib/Topology/Defs/Basic.lean + def IsLocallyClosed + def coborder Modified Mathlib/Topology/LocalAtTarget.lean + theorem isLocallyClosed_iff_coe_preimage_of_iSup_eq_top Modified Mathlib/Topology/LocallyClosed.lean - def IsLocallyClosed - def coborder - theorem isLocallyClosed_iff_coe_preimage_of_iSup_eq_top 2024-07-30 17:49:45 b0a0fca feat: string diagram widget (#10581) Add the widget to display string diagram of monoidal category morphism. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Tactic.lean Modified Mathlib/Tactic/CategoryTheory/Monoidal.lean - def Mathlib.Tactic.Monoidal.mkContext + def Mathlib.Tactic.Monoidal.mkContext? Added Mathlib/Tactic/Widget/StringDiagram.lean + def Mathlib.Tactic.Monoidal.NormalExpr.nodes + def Mathlib.Tactic.Monoidal.NormalExpr.nodesAux + def Mathlib.Tactic.Monoidal.NormalExpr.strands + def Mathlib.Tactic.Monoidal.WhiskerLeftExpr.nodes + def Mathlib.Tactic.Monoidal.WhiskerRightExpr.nodes + def Mathlib.Tactic.Monoidal.pairs + structure Mathlib.Tactic.Widget.StringDiagram.AtomNode + structure Mathlib.Tactic.Widget.StringDiagram.IdNode + def Mathlib.Tactic.Widget.StringDiagram.Node.e + def Mathlib.Tactic.Widget.StringDiagram.Node.hPosSrc + def Mathlib.Tactic.Widget.StringDiagram.Node.hPosTar + def Mathlib.Tactic.Widget.StringDiagram.Node.srcList + def Mathlib.Tactic.Widget.StringDiagram.Node.tarList + def Mathlib.Tactic.Widget.StringDiagram.Node.toPenroseVar + def Mathlib.Tactic.Widget.StringDiagram.Node.vPos + inductive Mathlib.Tactic.Widget.StringDiagram.Node + structure Mathlib.Tactic.Widget.StringDiagram.PenroseVar + def Mathlib.Tactic.Widget.StringDiagram.Strand.toPenroseVar + def Mathlib.Tactic.Widget.StringDiagram.Strand.vPos + structure Mathlib.Tactic.Widget.StringDiagram.Strand + def Mathlib.Tactic.Widget.StringDiagram.StringDiagram + def Mathlib.Tactic.Widget.StringDiagram.addConstructor + def Mathlib.Tactic.Widget.StringDiagram.addPenroseVar + def Mathlib.Tactic.Widget.StringDiagram.dsl + def Mathlib.Tactic.Widget.StringDiagram.fromExpr + def Mathlib.Tactic.Widget.StringDiagram.mkEqHtml + def Mathlib.Tactic.Widget.StringDiagram.mkStringDiagram + def Mathlib.Tactic.Widget.StringDiagram.rpc + def Mathlib.Tactic.Widget.StringDiagram.stringEqM? + def Mathlib.Tactic.Widget.StringDiagram.stringM? + def Mathlib.Tactic.Widget.StringDiagram.stringMorOrEqM? + def Mathlib.Tactic.Widget.StringDiagram.stringPresenter + def Mathlib.Tactic.Widget.StringDiagram.sty + def Mathlib.Tactic.Widget.StringDiagram.topNodes Modified scripts/noshake.json Added test/StringDiagram.lean + theorem left_triangle + theorem yang_baxter'' + theorem yang_baxter' + theorem yang_baxter Added widget/src/penrose/monoidal.dsl Added widget/src/penrose/monoidal.sty 2024-07-30 17:21:12 21128b8 chore: Generalise `Pi.exists_forall_pos_add_lt` to monoids (#15327) ... as spotted by Yury. ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Field/Pi.lean 2024-07-30 17:21:11 31fb8cf chore: rename is_limit -> isLimit in a local variable (#15309) It refers to a `IsLimit` hypothesis: probably, this name is still a leftover from mathlib3. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Limits/Shapes/Products.lean 2024-07-30 16:56:27 db8dc84 feat: Monotonicity of multiplication by positive rationals (#15328) From LeanAPAP ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Order/Module/Rat.lean + theorem abs_nnqsmul + theorem abs_qsmul 2024-07-30 16:56:25 99914c5 chore(LocallyConvex/Bounded): rename `variable`s (#15289) Instead of introducing a normed field `𝕜` and a nontrivially normed field `𝕝`, prove a theorem for a normed field, then assume that `𝕜` is a nontrivially normed field. ESTIMATED CHANGES Modified Mathlib/Analysis/LocallyConvex/Bounded.lean +/- theorem Bornology.IsVonNBounded.smul_tendsto_zero +/- theorem Bornology.isVonNBounded_iff_smul_tendsto_zero +/- theorem Bornology.isVonNBounded_of_smul_tendsto_zero 2024-07-30 16:56:24 245de8a chore(NormedSpace/Multilinear): drop `DecidableEq` assumptions (#15268) ESTIMATED CHANGES Modified Mathlib/Analysis/NormedSpace/Multilinear/Basic.lean +/- theorem ContinuousMultilinearMap.iteratedFDerivComponent_apply +/- theorem ContinuousMultilinearMap.norm_iteratedFDerivComponent_le 2024-07-30 16:32:12 c26d054 chore(Corner/Defs): Fix copy-pasta (#15325) Some brain (mine) was non functioning at the time of writing. ESTIMATED CHANGES Modified Mathlib/Combinatorics/Additive/Corner/Defs.lean 2024-07-30 16:32:10 a9b9583 chore: update Mathlib dependencies 2024-07-30 (#15317) This PR updates the Mathlib dependencies. ESTIMATED CHANGES Modified lake-manifest.json 2024-07-30 16:32:09 e7b14b1 refactor(Topology/Category): refactor Stonean.Basic (#13911) This is the second part of the refactor of CompHaus and friends (refactoring the definition of `Stonean` in terms of `CompHausLike`, see #12930 for the end result) ESTIMATED CHANGES Modified Mathlib/Topology/Category/Stonean/Adjunctions.lean - theorem Stonean.mono_iff_injective Modified Mathlib/Topology/Category/Stonean/Basic.lean +/- def CompHaus.presentation.π - def Stonean.fullyFaithfulToCompHaus - def Stonean.homeoOfIso - def Stonean.isoEquivHomeo - def Stonean.isoOfHomeo - def Stonean.of - def Stonean.toCompHaus - def Stonean.toProfinite - structure Stonean Modified Mathlib/Topology/Category/Stonean/EffectiveEpi.lean Modified Mathlib/Topology/Category/Stonean/Limits.lean 2024-07-30 16:14:35 53c5e95 feat(CategoryTheory): preservation of pullback/pushout squares (#15044) The main result in this PR is that a commutative square `sq : Square C` is a pullback square iff it is mapped to a pullback square in the category of types when we apply the functor `coyoneda.obj X` for any `X : Cᵒᵖ`. In order to do this, it is shown that the proprety `Square.IsPullback` is preserved when a functor preserving this pullback is applied. A similar result is obtained for pushout squares, which required developing the "opposites" API for squares. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Limits/Preserves/Shapes/Square.lean + theorem CategoryTheory.Square.IsPullback.map + theorem CategoryTheory.Square.IsPushout.map + theorem CategoryTheory.Square.isPullback_iff_map_coyoneda_isPullback + theorem CategoryTheory.Square.isPushout_iff_op_map_yoneda_isPullback Modified Mathlib/CategoryTheory/Limits/Shapes/Pullback/Square.lean + theorem CategoryTheory.Square.IsPullback.op + theorem CategoryTheory.Square.IsPullback.unop + theorem CategoryTheory.Square.IsPushout.op + theorem CategoryTheory.Square.IsPushout.unop Modified Mathlib/CategoryTheory/Limits/Shapes/Types.lean + def CategoryTheory.Limits.Types.PullbackCone.toPullbackObj Modified Mathlib/CategoryTheory/Square.lean + def CategoryTheory.Square.opEquivalence + def CategoryTheory.Square.opFunctor + def CategoryTheory.Square.unopFunctor 2024-07-30 15:11:48 9b81e4d docs(MkIffOfInductiveProp): fix typos (#15324) ESTIMATED CHANGES Modified Mathlib/Tactic/MkIffOfInductiveProp.lean 2024-07-30 15:11:47 3cf5b30 chore(VitaliFamily): fix `open`/`open scoped` (#15320) ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Covering/VitaliFamily.lean 2024-07-30 15:11:46 a38e187 chore: style adjustments (#15319) ESTIMATED CHANGES Modified Mathlib/Data/Nat/Fib/Basic.lean 2024-07-30 15:11:45 0bc17f8 chore(TensorProduct/RightExactness): move three lemmas to Algebra/Exact (#15032) The location was suggested by #find_home. This addresses a porting TODO. ESTIMATED CHANGES Modified Mathlib/Algebra/Exact.lean + theorem LinearMap.exact_map_mkQ_range + theorem LinearMap.exact_subtype_ker_map + theorem LinearMap.exact_subtype_mkQ Modified Mathlib/LinearAlgebra/TensorProduct/RightExactness.lean - theorem LinearMap.exact_map_mkQ_range - theorem LinearMap.exact_subtype_ker_map - theorem LinearMap.exact_subtype_mkQ 2024-07-30 13:32:35 df2eea5 chore: backports for leanprover/lean4#4814 (part 5) (#15310) See https://github.com/leanprover-community/mathlib4/pull/15245 ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Pi/Lemmas.lean Modified Mathlib/Algebra/Group/Support.lean +/- theorem Function.mulSupport_extend_one +/- theorem Function.mulSupport_extend_one_subset Modified Mathlib/Algebra/Module/Defs.lean +/- theorem Nat.noZeroSMulDivisors +/- theorem NoZeroSMulDivisors.int_of_charZero +/- theorem neg_eq_self +/- theorem neg_ne_self +/- theorem self_eq_neg +/- theorem self_ne_neg +/- theorem two_nsmul_eq_zero Modified Mathlib/CategoryTheory/Adjunction/FullyFaithful.lean +/- theorem CategoryTheory.Adjunction.isEquivalence_left_of_isEquivalence_right +/- theorem CategoryTheory.Adjunction.isEquivalence_right_of_isEquivalence_left Modified Mathlib/CategoryTheory/Localization/Predicate.lean +/- theorem CategoryTheory.AreEqualizedByLocalization.map_eq +/- theorem CategoryTheory.Localization.Lifting.compLeft_iso +/- theorem CategoryTheory.Localization.faithful_whiskeringLeft +/- theorem CategoryTheory.Localization.full_whiskeringLeft +/- theorem CategoryTheory.Localization.natTrans_ext +/- def CategoryTheory.Localization.whiskeringLeftFunctor' Modified Mathlib/Order/Booleanisation.lean Modified Mathlib/Order/Monotone/Basic.lean 2024-07-30 13:16:25 48bbda4 feat(Algebra/Category/Ring): Add dsimp lemmas for `CommRingCat`. (#15297) ESTIMATED CHANGES Modified Mathlib/Algebra/Category/Ring/Basic.lean + theorem CommRingCat.comp_apply + theorem CommRingCat.forget_obj Modified Mathlib/AlgebraicGeometry/AffineScheme.lean Modified Mathlib/AlgebraicGeometry/Morphisms/RingHomProperties.lean Modified Mathlib/AlgebraicGeometry/Spec.lean 2024-07-30 12:37:45 254c0af chore(HahnBanach/SeparatingDual): Finite -> Fintype (#15305) Found by the linter in #10235. ESTIMATED CHANGES Modified Mathlib/Analysis/NormedSpace/HahnBanach/SeparatingDual.lean 2024-07-30 12:27:53 2a73834 chore(Combinatorics): remove superfluous use of DecidableEq (#15306) Found by the linter in #10235. ESTIMATED CHANGES Modified Mathlib/Combinatorics/SimpleGraph/LapMatrix.lean Modified Mathlib/Combinatorics/SimpleGraph/Matching.lean +/- theorem SimpleGraph.ConnectedComponent.even_card_of_isPerfectMatching 2024-07-30 12:11:37 812748c chore(scripts/create-adaptation-pr): abort whenever command fails (#15298) ESTIMATED CHANGES Modified scripts/create-adaptation-pr.sh 2024-07-30 11:18:19 0f83d87 feat(Analysis.Normed.Ring.SeminormFromConst): add seminormFromConst (#14361) We prove [BGR, Proposition 1.3.2/2] : starting from a power-multiplicative seminorm on a commutative ring `R` and a nonzero `c : R`, we create a new power-multiplicative seminorm for which `c` is multiplicative. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/Normed/Ring/SeminormFromConst.lean + def normFromConst + def seminormFromConst' + def seminormFromConst + theorem seminormFromConstRingNormOfField_def + theorem seminormFromConst_apply_c + theorem seminormFromConst_apply_of_isMul + theorem seminormFromConst_bddBelow + theorem seminormFromConst_const_mul + theorem seminormFromConst_def + theorem seminormFromConst_isLimit + theorem seminormFromConst_isMul_of_isMul + theorem seminormFromConst_isNonarchimedean + theorem seminormFromConst_isPowMul + theorem seminormFromConst_le_seminorm + theorem seminormFromConst_one + theorem seminormFromConst_one_le + def seminormFromConst_seq + theorem seminormFromConst_seq_antitone + theorem seminormFromConst_seq_def + theorem seminormFromConst_seq_nonneg + theorem seminormFromConst_seq_one + theorem seminormFromConst_seq_zero Modified Mathlib/Data/Real/Basic.lean +/- def IsNonarchimedean + def IsPowMul 2024-07-30 09:34:55 be03141 feat: add `Pairwise.pairwiseDisjoint` (#15292) `Pairwise (Disjoint on f)` implies `s.PairwiseDisjoint f` for any set `s`. ESTIMATED CHANGES Modified Mathlib/Data/Set/Pairwise/Basic.lean + theorem Pairwise.pairwiseDisjoint 2024-07-30 08:44:27 71d4424 chore(GroupTheory/GroupAction/Quotient): fix to_additive names (#15293) ESTIMATED CHANGES Modified Mathlib/GroupTheory/GroupAction/Quotient.lean 2024-07-30 08:44:26 c1478df chore(DirectSum): drop `DecidableEq` assumption (#15287) ESTIMATED CHANGES Modified Mathlib/Algebra/DirectSum/Basic.lean +/- theorem DirectSum.coeAddMonoidHom_eq_dfinsupp_sum +/- theorem DirectSum.finite_support +/- theorem DirectSum.support_subset 2024-07-30 08:33:33 7cd5c43 chore(NumberTheory): drop some `DecidableEq` assumptions (#15288) ESTIMATED CHANGES Modified Mathlib/NumberTheory/MulChar/Lemmas.lean +/- theorem MulChar.apply_mem_rootsOfUnity +/- theorem MulChar.exists_mulChar_orderOf_eq_card_units Modified Mathlib/NumberTheory/NumberField/House.lean Modified Mathlib/NumberTheory/SiegelsLemma.lean 2024-07-30 08:33:31 74f1093 feat(Combinatorics/SimpleGraph/Connectivity): getVert lemmas (#14977) Add some lemmas about `SimpleGraph.Walk.getVert`. In preparation for Tutte's theorem. ESTIMATED CHANGES Modified Mathlib/Combinatorics/SimpleGraph/Connectivity/Subgraph.lean + theorem SimpleGraph.Walk.toSubgraph_adj_getVert + theorem SimpleGraph.Walk.toSubgraph_adj_iff Modified Mathlib/Combinatorics/SimpleGraph/Walk.lean + theorem SimpleGraph.Walk.cons_getVert + theorem SimpleGraph.Walk.cons_getVert_succ + theorem SimpleGraph.Walk.cons_sndOfNotNil + theorem SimpleGraph.Walk.getVert_one + theorem SimpleGraph.Walk.getVert_tail + theorem SimpleGraph.Walk.mem_support_iff_exists_getVert + theorem SimpleGraph.Walk.notNilRec_cons + theorem SimpleGraph.Walk.tail_cons + theorem SimpleGraph.Walk.tail_support_eq_support_tail 2024-07-30 08:12:24 8e3c880 feat(MeasurePreserving): use `NullMeasurableSet` (#15098) ESTIMATED CHANGES Modified Mathlib/Dynamics/Ergodic/Conservative.lean Modified Mathlib/Dynamics/Ergodic/Ergodic.lean Modified Mathlib/Dynamics/Ergodic/MeasurePreserving.lean Modified Mathlib/MeasureTheory/Constructions/Pi.lean Modified Mathlib/MeasureTheory/Function/LpSpace.lean Modified Mathlib/MeasureTheory/Function/LpSpace/ContinuousCompMeasurePreserving.lean Modified Mathlib/MeasureTheory/Measure/Lebesgue/VolumeOfBalls.lean Modified Mathlib/NumberTheory/NumberField/CanonicalEmbedding/Basic.lean Modified Mathlib/NumberTheory/NumberField/CanonicalEmbedding/ConvexBody.lean 2024-07-30 05:32:07 38c577d feat(algebra/hom/centroid): Centre of the Centroid of a *-ring is a *-ring (#6595) This PR shows that the centre of the centroid of a *-ring is a *-ring. Previously submitted to mathlib as https://github.com/leanprover-community/mathlib/pull/18096 ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Ring/CentroidHom.lean +/- def CentroidHom.centerToCentroid + def CentroidHom.centerToCentroidCenter + theorem CentroidHom.centerToCentroidCenter_apply Added Mathlib/Algebra/Star/CentroidHom.lean + def CentroidHom.centerStarEmbedding + def CentroidHom.starCenterIsoCentroid + theorem CentroidHom.starCenterIsoCentroid_apply + theorem CentroidHom.starCenterIsoCentroid_symm_apply_coe + def CentroidHom.starCenterToCentroid + def CentroidHom.starCenterToCentroidCenter + theorem CentroidHom.starCenterToCentroid_apply + def CentroidHom.starRingOfCommCentroidHom + theorem CentroidHom.star_apply + theorem CentroidHom.star_centerToCentroidCenter 2024-07-30 05:14:52 2609c03 refactor(Combinatorics/SimpleGraph): move `Walk` to its own file (#15171) split `Path` and higher into a separate file from `Walk` ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Combinatorics/SimpleGraph/Acyclic.lean Modified Mathlib/Combinatorics/SimpleGraph/Clique.lean Modified Mathlib/Combinatorics/SimpleGraph/Connectivity/Subgraph.lean Modified Mathlib/Combinatorics/SimpleGraph/Connectivity/WalkCounting.lean Modified Mathlib/Combinatorics/SimpleGraph/Ends/Defs.lean Modified Mathlib/Combinatorics/SimpleGraph/Hamiltonian.lean Modified Mathlib/Combinatorics/SimpleGraph/Metric.lean Added Mathlib/Combinatorics/SimpleGraph/Path.lean + theorem SimpleGraph.Connected.map + theorem SimpleGraph.Connected.set_univ_walk_nonempty + structure SimpleGraph.Connected + theorem SimpleGraph.ConnectedComponent.connectedComponentMk_eq_of_adj + theorem SimpleGraph.ConnectedComponent.connectedComponentMk_mem + def SimpleGraph.ConnectedComponent.isoEquivSupp + theorem SimpleGraph.ConnectedComponent.iso_image_comp_eq_map_iff_eq_comp + theorem SimpleGraph.ConnectedComponent.iso_inv_image_comp_eq_iff_eq_map + def SimpleGraph.ConnectedComponent.map + theorem SimpleGraph.ConnectedComponent.map_comp + theorem SimpleGraph.ConnectedComponent.map_id + theorem SimpleGraph.ConnectedComponent.map_mk + theorem SimpleGraph.ConnectedComponent.mem_coe_supp_of_adj + theorem SimpleGraph.ConnectedComponent.mem_supp_iff + def SimpleGraph.ConnectedComponent.recOn + def SimpleGraph.ConnectedComponent.supp + theorem SimpleGraph.ConnectedComponent.supp_inj + theorem SimpleGraph.ConnectedComponent.supp_injective + def SimpleGraph.ConnectedComponent + def SimpleGraph.IsBridge + def SimpleGraph.Iso.connectedComponentEquiv + theorem SimpleGraph.Iso.connectedComponentEquiv_refl + theorem SimpleGraph.Iso.connectedComponentEquiv_symm + theorem SimpleGraph.Iso.connectedComponentEquiv_trans + theorem SimpleGraph.Iso.connected_iff + theorem SimpleGraph.Iso.preconnected_iff + theorem SimpleGraph.Iso.reachable_iff + theorem SimpleGraph.Iso.symm_apply_reachable + theorem SimpleGraph.Path.cons_isCycle + theorem SimpleGraph.Path.count_edges_eq_one + theorem SimpleGraph.Path.count_support_eq_one + theorem SimpleGraph.Path.loop_eq + theorem SimpleGraph.Path.mapEmbedding_injective + theorem SimpleGraph.Path.map_injective + theorem SimpleGraph.Path.mk'_mem_edges_singleton + theorem SimpleGraph.Path.nodup_support + theorem SimpleGraph.Path.not_mem_edges_of_loop + def SimpleGraph.Path.reverse + def SimpleGraph.Path.singleton + theorem SimpleGraph.Preconnected.map + theorem SimpleGraph.Preconnected.set_univ_walk_nonempty + theorem SimpleGraph.Preconnected.subsingleton_connectedComponent + def SimpleGraph.Preconnected + def SimpleGraph.Reachable + theorem SimpleGraph.Walk.IsCircuit.not_nil + structure SimpleGraph.Walk.IsCircuit + theorem SimpleGraph.Walk.IsCycle.ne_bot + theorem SimpleGraph.Walk.IsCycle.not_nil + theorem SimpleGraph.Walk.IsCycle.not_of_nil + theorem SimpleGraph.Walk.IsCycle.three_le_length + structure SimpleGraph.Walk.IsCycle + theorem SimpleGraph.Walk.IsPath.length_lt + theorem SimpleGraph.Walk.IsPath.mk' + theorem SimpleGraph.Walk.IsPath.nil + theorem SimpleGraph.Walk.IsPath.of_append_left + theorem SimpleGraph.Walk.IsPath.of_append_right + theorem SimpleGraph.Walk.IsPath.of_cons + theorem SimpleGraph.Walk.IsPath.reverse + theorem SimpleGraph.Walk.IsPath.tail + structure SimpleGraph.Walk.IsPath + theorem SimpleGraph.Walk.IsTrail.count_edges_eq_one + theorem SimpleGraph.Walk.IsTrail.count_edges_le_one + theorem SimpleGraph.Walk.IsTrail.nil + theorem SimpleGraph.Walk.IsTrail.of_append_left + theorem SimpleGraph.Walk.IsTrail.of_append_right + theorem SimpleGraph.Walk.IsTrail.of_cons + theorem SimpleGraph.Walk.IsTrail.reverse + structure SimpleGraph.Walk.IsTrail + def SimpleGraph.Walk.bypass + theorem SimpleGraph.Walk.bypass_copy + theorem SimpleGraph.Walk.bypass_eq_self_of_length_le + theorem SimpleGraph.Walk.bypass_isPath + theorem SimpleGraph.Walk.cons_isCycle_iff + theorem SimpleGraph.Walk.cons_isPath_iff + theorem SimpleGraph.Walk.cons_isTrail_iff + theorem SimpleGraph.Walk.darts_bypass_subset + theorem SimpleGraph.Walk.darts_toPath_subset + theorem SimpleGraph.Walk.edges_bypass_subset + theorem SimpleGraph.Walk.edges_toPath_subset + theorem SimpleGraph.Walk.isCircuit_copy + theorem SimpleGraph.Walk.isCycle_copy + theorem SimpleGraph.Walk.isCycle_def + theorem SimpleGraph.Walk.isPath_copy + theorem SimpleGraph.Walk.isPath_def + theorem SimpleGraph.Walk.isPath_iff_eq_nil + theorem SimpleGraph.Walk.isPath_reverse_iff + theorem SimpleGraph.Walk.isTrail_copy + theorem SimpleGraph.Walk.length_bypass_le + theorem SimpleGraph.Walk.mapLe_isCycle + theorem SimpleGraph.Walk.mapLe_isPath + theorem SimpleGraph.Walk.mapLe_isTrail + theorem SimpleGraph.Walk.map_isCycle_iff_of_injective + theorem SimpleGraph.Walk.map_isPath_iff_of_injective + theorem SimpleGraph.Walk.map_isPath_of_injective + theorem SimpleGraph.Walk.map_isTrail_iff_of_injective + theorem SimpleGraph.Walk.reverse_isTrail_iff + theorem SimpleGraph.Walk.support_bypass_subset + theorem SimpleGraph.Walk.support_toPath_subset + theorem SimpleGraph.Walk.toDeleteEdges_copy + def SimpleGraph.Walk.toPath + theorem SimpleGraph.adj_and_reachable_delete_edges_iff_exists_cycle + def SimpleGraph.connectedComponentMk + theorem SimpleGraph.connected_iff_exists_forall_reachable + theorem SimpleGraph.iUnion_connectedComponentSupp + theorem SimpleGraph.isBridge_iff + theorem SimpleGraph.isBridge_iff_adj_and_forall_cycle_not_mem + theorem SimpleGraph.isBridge_iff_adj_and_forall_walk_mem_edges + theorem SimpleGraph.isBridge_iff_mem_and_forall_cycle_not_mem + theorem SimpleGraph.not_reachable_iff_isEmpty_walk + theorem SimpleGraph.pairwise_disjoint_supp_connectedComponent + def SimpleGraph.reachableSetoid + theorem SimpleGraph.reachable_comm + theorem SimpleGraph.reachable_deleteEdges_iff_exists_cycle.aux + theorem SimpleGraph.reachable_delete_edges_iff_exists_walk + theorem SimpleGraph.reachable_iff_nonempty_univ + theorem SimpleGraph.reachable_iff_reflTransGen + theorem SimpleGraph.reachable_is_equivalence + theorem SimpleGraph.top_connected + theorem SimpleGraph.top_preconnected Modified Mathlib/Combinatorics/SimpleGraph/Prod.lean Modified Mathlib/Combinatorics/SimpleGraph/Trails.lean Modified Mathlib/Combinatorics/SimpleGraph/Walk.lean - theorem SimpleGraph.Connected.map - theorem SimpleGraph.Connected.set_univ_walk_nonempty - structure SimpleGraph.Connected - theorem SimpleGraph.ConnectedComponent.connectedComponentMk_eq_of_adj - theorem SimpleGraph.ConnectedComponent.connectedComponentMk_mem - def SimpleGraph.ConnectedComponent.isoEquivSupp - theorem SimpleGraph.ConnectedComponent.iso_image_comp_eq_map_iff_eq_comp - theorem SimpleGraph.ConnectedComponent.iso_inv_image_comp_eq_iff_eq_map - def SimpleGraph.ConnectedComponent.map - theorem SimpleGraph.ConnectedComponent.map_comp - theorem SimpleGraph.ConnectedComponent.map_id - theorem SimpleGraph.ConnectedComponent.map_mk - theorem SimpleGraph.ConnectedComponent.mem_coe_supp_of_adj - theorem SimpleGraph.ConnectedComponent.mem_supp_iff - def SimpleGraph.ConnectedComponent.recOn - def SimpleGraph.ConnectedComponent.supp - theorem SimpleGraph.ConnectedComponent.supp_inj - theorem SimpleGraph.ConnectedComponent.supp_injective - def SimpleGraph.ConnectedComponent - def SimpleGraph.IsBridge - def SimpleGraph.Iso.connectedComponentEquiv - theorem SimpleGraph.Iso.connectedComponentEquiv_refl - theorem SimpleGraph.Iso.connectedComponentEquiv_symm - theorem SimpleGraph.Iso.connectedComponentEquiv_trans - theorem SimpleGraph.Iso.connected_iff - theorem SimpleGraph.Iso.preconnected_iff - theorem SimpleGraph.Iso.reachable_iff - theorem SimpleGraph.Iso.symm_apply_reachable - theorem SimpleGraph.Path.cons_isCycle - theorem SimpleGraph.Path.count_edges_eq_one - theorem SimpleGraph.Path.count_support_eq_one - theorem SimpleGraph.Path.loop_eq - theorem SimpleGraph.Path.mapEmbedding_injective - theorem SimpleGraph.Path.map_injective - theorem SimpleGraph.Path.mk'_mem_edges_singleton - theorem SimpleGraph.Path.nodup_support - theorem SimpleGraph.Path.not_mem_edges_of_loop - def SimpleGraph.Path.reverse - def SimpleGraph.Path.singleton - theorem SimpleGraph.Preconnected.map - theorem SimpleGraph.Preconnected.set_univ_walk_nonempty - theorem SimpleGraph.Preconnected.subsingleton_connectedComponent - def SimpleGraph.Preconnected - def SimpleGraph.Reachable - theorem SimpleGraph.Walk.IsCircuit.not_nil - structure SimpleGraph.Walk.IsCircuit - theorem SimpleGraph.Walk.IsCycle.ne_bot - theorem SimpleGraph.Walk.IsCycle.not_nil - theorem SimpleGraph.Walk.IsCycle.not_of_nil - theorem SimpleGraph.Walk.IsCycle.three_le_length - structure SimpleGraph.Walk.IsCycle - theorem SimpleGraph.Walk.IsPath.length_lt - theorem SimpleGraph.Walk.IsPath.mk' - theorem SimpleGraph.Walk.IsPath.nil - theorem SimpleGraph.Walk.IsPath.of_append_left - theorem SimpleGraph.Walk.IsPath.of_append_right - theorem SimpleGraph.Walk.IsPath.of_cons - theorem SimpleGraph.Walk.IsPath.reverse - theorem SimpleGraph.Walk.IsPath.tail - structure SimpleGraph.Walk.IsPath - theorem SimpleGraph.Walk.IsTrail.count_edges_eq_one - theorem SimpleGraph.Walk.IsTrail.count_edges_le_one - theorem SimpleGraph.Walk.IsTrail.nil - theorem SimpleGraph.Walk.IsTrail.of_append_left - theorem SimpleGraph.Walk.IsTrail.of_append_right - theorem SimpleGraph.Walk.IsTrail.of_cons - theorem SimpleGraph.Walk.IsTrail.reverse - structure SimpleGraph.Walk.IsTrail - def SimpleGraph.Walk.bypass - theorem SimpleGraph.Walk.bypass_copy - theorem SimpleGraph.Walk.bypass_eq_self_of_length_le - theorem SimpleGraph.Walk.bypass_isPath - theorem SimpleGraph.Walk.cons_isCycle_iff - theorem SimpleGraph.Walk.cons_isPath_iff - theorem SimpleGraph.Walk.cons_isTrail_iff - theorem SimpleGraph.Walk.darts_bypass_subset - theorem SimpleGraph.Walk.darts_toPath_subset - theorem SimpleGraph.Walk.edges_bypass_subset - theorem SimpleGraph.Walk.edges_toPath_subset - theorem SimpleGraph.Walk.isCircuit_copy - theorem SimpleGraph.Walk.isCycle_copy - theorem SimpleGraph.Walk.isCycle_def - theorem SimpleGraph.Walk.isPath_copy - theorem SimpleGraph.Walk.isPath_def - theorem SimpleGraph.Walk.isPath_iff_eq_nil - theorem SimpleGraph.Walk.isPath_reverse_iff - theorem SimpleGraph.Walk.isTrail_copy - theorem SimpleGraph.Walk.length_bypass_le - theorem SimpleGraph.Walk.mapLe_isCycle - theorem SimpleGraph.Walk.mapLe_isPath - theorem SimpleGraph.Walk.mapLe_isTrail - theorem SimpleGraph.Walk.map_isCycle_iff_of_injective - theorem SimpleGraph.Walk.map_isPath_iff_of_injective - theorem SimpleGraph.Walk.map_isPath_of_injective - theorem SimpleGraph.Walk.map_isTrail_iff_of_injective - theorem SimpleGraph.Walk.reverse_isTrail_iff - theorem SimpleGraph.Walk.support_bypass_subset - theorem SimpleGraph.Walk.support_toPath_subset - theorem SimpleGraph.Walk.toDeleteEdges_copy - def SimpleGraph.Walk.toPath - theorem SimpleGraph.adj_and_reachable_delete_edges_iff_exists_cycle - def SimpleGraph.connectedComponentMk - theorem SimpleGraph.connected_iff_exists_forall_reachable - theorem SimpleGraph.iUnion_connectedComponentSupp - theorem SimpleGraph.isBridge_iff - theorem SimpleGraph.isBridge_iff_adj_and_forall_cycle_not_mem - theorem SimpleGraph.isBridge_iff_adj_and_forall_walk_mem_edges - theorem SimpleGraph.isBridge_iff_mem_and_forall_cycle_not_mem - theorem SimpleGraph.not_reachable_iff_isEmpty_walk - theorem SimpleGraph.pairwise_disjoint_supp_connectedComponent - def SimpleGraph.reachableSetoid - theorem SimpleGraph.reachable_comm - theorem SimpleGraph.reachable_deleteEdges_iff_exists_cycle.aux - theorem SimpleGraph.reachable_delete_edges_iff_exists_walk - theorem SimpleGraph.reachable_iff_nonempty_univ - theorem SimpleGraph.reachable_iff_reflTransGen - theorem SimpleGraph.reachable_is_equivalence - theorem SimpleGraph.top_connected - theorem SimpleGraph.top_preconnected Modified scripts/style-exceptions.txt 2024-07-30 03:18:28 43adf29 chore: update Mathlib dependencies 2024-07-30 (#15281) This PR updates the Mathlib dependencies. ESTIMATED CHANGES Modified lake-manifest.json 2024-07-30 02:04:06 31b40b4 feat (LinearAlgebra/RootSystem/RootPositive) : Root-positive bilinear forms (#15155) This PR introduces a Prop-valued mixin class for root pairings, specifying that a bilinear form on weight space is symmetric, reflection-invariant, and gives roots a strictly positive norm. Given a root-positive norm, one obtains sign-compatibilities between the form and the canonical pairing between roots and coroots. Root-positive forms show up naturally in Kac-Moody Lie algebras (without the name), and the canonical polarization on a finite root pairing induces a root-positive form. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/LinearAlgebra/RootSystem/RootPositive.lean + theorem RootPairing.apply_root_root_zero_iff + theorem RootPairing.coxeterWeight_non_neg + theorem RootPairing.coxeterWeight_zero_iff_isOrthogonal + theorem RootPairing.pairing_zero_iff + theorem RootPairing.two_mul_apply_root_root + theorem RootPairing.zero_lt_apply_root_root_iff + theorem RootPairing.zero_lt_pairing_iff 2024-07-30 01:09:55 ee1fbad chore: backports for leanprover/lean4#4814 (part 4) (#15255) See https://github.com/leanprover-community/mathlib4/pull/15245 ESTIMATED CHANGES Modified Mathlib/Algebra/Ring/Commute.lean Modified Mathlib/AlgebraicTopology/DoldKan/Compatibility.lean +/- theorem AlgebraicTopology.DoldKan.Compatibility.equivalenceCounitIso_eq +/- theorem AlgebraicTopology.DoldKan.Compatibility.equivalenceUnitIso_eq Modified Mathlib/CategoryTheory/Adjunction/Basic.lean +/- theorem CategoryTheory.Adjunction.isLeftAdjoint +/- theorem CategoryTheory.Adjunction.isRightAdjoint Modified Mathlib/CategoryTheory/EffectiveEpi/Comp.lean Modified Mathlib/CategoryTheory/EssentialImage.lean Modified Mathlib/CategoryTheory/FiberedCategory/Cartesian.lean Modified Mathlib/CategoryTheory/Localization/Predicate.lean +/- theorem CategoryTheory.Localization.essSurj Modified Mathlib/Data/Fin/Tuple/Basic.lean Modified Mathlib/Data/Int/Cast/Lemmas.lean +/- theorem AddMonoidHom.apply_int +/- def zmultiplesAddHom +/- theorem zmultiplesAddHom_apply +/- theorem zmultiplesAddHom_symm_apply +/- def zmultiplesHom +/- theorem zmultiplesHom_apply +/- theorem zmultiplesHom_symm_apply Modified Mathlib/Data/List/AList.lean Modified Mathlib/Data/List/Indexes.lean +/- theorem List.mapIdxMGo_eq_mapIdxMAuxSpec +/- theorem List.mapIdxM_eq_mmap_enum Modified Mathlib/Data/List/Sigma.lean +/- theorem List.sizeOf_dedupKeys +/- theorem List.sizeOf_kerase Modified Mathlib/Data/List/Sort.lean Modified Mathlib/Data/Nat/Cast/Basic.lean +/- theorem AddMonoidHom.apply_nat +/- def multiplesAddHom +/- theorem multiplesAddHom_apply +/- theorem multiplesAddHom_symm_apply +/- def multiplesHom +/- theorem multiplesHom_apply +/- theorem multiplesHom_symm_apply Modified Mathlib/Data/Vector/Basic.lean Modified Mathlib/Order/Bounds/Basic.lean +/- theorem AntitoneOn.image_lowerBounds_subset_upperBounds_image +/- theorem AntitoneOn.image_upperBounds_subset_lowerBounds_image +/- theorem AntitoneOn.map_bddAbove +/- theorem AntitoneOn.map_bddBelow +/- theorem AntitoneOn.map_isGreatest +/- theorem AntitoneOn.map_isLeast +/- theorem AntitoneOn.mem_lowerBounds_image +/- theorem AntitoneOn.mem_lowerBounds_image_self +/- theorem AntitoneOn.mem_upperBounds_image +/- theorem AntitoneOn.mem_upperBounds_image_self +/- theorem MonotoneOn.image_lowerBounds_subset_lowerBounds_image +/- theorem MonotoneOn.map_bddAbove +/- theorem MonotoneOn.map_bddBelow +/- theorem MonotoneOn.map_isGreatest +/- theorem MonotoneOn.map_isLeast +/- theorem MonotoneOn.mem_lowerBounds_image +/- theorem MonotoneOn.mem_lowerBounds_image_self +/- theorem MonotoneOn.mem_upperBounds_image +/- theorem MonotoneOn.mem_upperBounds_image_self Modified Mathlib/Order/CompleteLattice.lean +/- theorem sSup_eq_bot' Modified Mathlib/Order/Interval/Set/Image.lean Modified Mathlib/Order/Part.lean Modified Mathlib/Tactic/CategoryTheory/MonoidalComp.lean 2024-07-30 00:15:49 9f4987a chore(Algebra): remove superfluous DecidableEq hypotheses (#15278) Found by the linter in #10235. ESTIMATED CHANGES Modified Mathlib/Algebra/BigOperators/Finsupp.lean +/- theorem Finsupp.prod_mul_eq_prod_mul_of_exists Modified Mathlib/Algebra/BigOperators/Group/Finset.lean +/- theorem Finset.prod_mul_eq_prod_mul_of_exists Modified Mathlib/Algebra/DirectSum/Basic.lean +/- theorem DirectSum.support_subset 2024-07-30 00:15:48 d78ec33 chore: replace zip_with -> zipWith in lemma names (#15218) ESTIMATED CHANGES Modified Mathlib/Data/List/Perm.lean Modified Mathlib/Data/List/Zip.lean + theorem List.get?_zipWith' + theorem List.get?_zipWith_eq_some - theorem List.get?_zip_with - theorem List.get?_zip_with_eq_some + theorem List.getElem?_zipWith' + theorem List.getElem?_zipWith_eq_some - theorem List.getElem?_zip_with - theorem List.getElem?_zip_with_eq_some 2024-07-30 00:05:14 190a331 chore(Combinatorics/HalesJewett): replace Fintype -> Finite (#15279) Found by the linter in #10235. ESTIMATED CHANGES Modified Mathlib/Combinatorics/HalesJewett.lean +/- theorem Combinatorics.Subspace.exists_mono_in_high_dimension_fin 2024-07-29 21:21:20 ba4821d lRevert "Add a bot posting event reminders on Zulip" (#15272) This was pushed to master by accident This reverts commit 924277adf1e97d31a15cb23a9bfc9a78062d6b48. ESTIMATED CHANGES Deleted .github/workflows/calendar.yml Deleted scripts/leanCal.py 2024-07-29 21:02:54 d56fbc3 refactor(Combinatorics/SimpleGraph): rename `Connectivity.lean` to `Walk.lean` (#15273) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Combinatorics/SimpleGraph/Acyclic.lean Modified Mathlib/Combinatorics/SimpleGraph/Clique.lean Modified Mathlib/Combinatorics/SimpleGraph/Connectivity/Subgraph.lean Modified Mathlib/Combinatorics/SimpleGraph/Connectivity/WalkCounting.lean Modified Mathlib/Combinatorics/SimpleGraph/Ends/Defs.lean Modified Mathlib/Combinatorics/SimpleGraph/Hamiltonian.lean Modified Mathlib/Combinatorics/SimpleGraph/Metric.lean Modified Mathlib/Combinatorics/SimpleGraph/Prod.lean Modified Mathlib/Combinatorics/SimpleGraph/Trails.lean Renamed Mathlib/Combinatorics/SimpleGraph/Connectivity.lean to Mathlib/Combinatorics/SimpleGraph/Walk.lean Modified scripts/style-exceptions.txt 2024-07-29 20:50:13 f5703e8 chore(AlgebraicGeometry): Rename `openCoverOfSuprEqTop` to `openCoverOfISupEqTop` (#15079) ESTIMATED CHANGES Modified Mathlib/AlgebraicGeometry/Morphisms/Basic.lean Modified Mathlib/AlgebraicGeometry/Morphisms/Constructors.lean Modified Mathlib/AlgebraicGeometry/Morphisms/RingHomProperties.lean Modified Mathlib/AlgebraicGeometry/Restrict.lean + def AlgebraicGeometry.Scheme.openCoverOfISupEqTop - def AlgebraicGeometry.Scheme.openCoverOfSuprEqTop 2024-07-29 19:04:19 1700864 style: remove more trailing semicolons (#15011) ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Group/Int.lean Modified Mathlib/CategoryTheory/Limits/Preserves/Shapes/Pullbacks.lean Modified Mathlib/Computability/Partrec.lean 2024-07-29 18:29:50 a01f1cc refactor(AlgebraicGeometry): stalk maps (#15070) Introduces `Scheme.Hom.stalkMap` and `LocallyRingedSpace.Hom.stalkMap` with the API copied from presheafed spaces. Removes `LocallyRingedSpace.stalk` and `LocallyRingedSpace.ΓToStalk`. Instead uses `Presheaf.stalk` and `Presheaf.germ` directly. ESTIMATED CHANGES Modified Mathlib/AlgebraicGeometry/AffineScheme.lean + def AlgebraicGeometry.Scheme.arrowStalkMapSpecIso + theorem AlgebraicGeometry.Scheme.localRingHom_comp_stalkIso Modified Mathlib/AlgebraicGeometry/GammaSpecAdjunction.lean - def AlgebraicGeometry.LocallyRingedSpace.ΓToStalk - theorem AlgebraicGeometry.LocallyRingedSpace.ΓToStalk_stalkMap - theorem AlgebraicGeometry.LocallyRingedSpace.ΓToStalk_stalkMap_apply Modified Mathlib/AlgebraicGeometry/Gluing.lean Modified Mathlib/AlgebraicGeometry/Morphisms/ClosedImmersion.lean Modified Mathlib/AlgebraicGeometry/Morphisms/Constructors.lean Modified Mathlib/AlgebraicGeometry/Morphisms/OpenImmersion.lean Modified Mathlib/AlgebraicGeometry/OpenImmersion.lean Modified Mathlib/AlgebraicGeometry/ProjectiveSpectrum/Scheme.lean Modified Mathlib/AlgebraicGeometry/Properties.lean Modified Mathlib/AlgebraicGeometry/Restrict.lean + theorem AlgebraicGeometry.Scheme.Opens.germ_stalkIso_hom' + theorem AlgebraicGeometry.Scheme.Opens.germ_stalkIso_inv Modified Mathlib/AlgebraicGeometry/Scheme.lean + def AlgebraicGeometry.Scheme.Hom.stalkMap + theorem AlgebraicGeometry.Scheme.iso_hom_val_base_inv_val_base + theorem AlgebraicGeometry.Scheme.iso_hom_val_base_inv_val_base_apply + theorem AlgebraicGeometry.Scheme.iso_inv_val_base_hom_val_base + theorem AlgebraicGeometry.Scheme.iso_inv_val_base_hom_val_base_apply + theorem AlgebraicGeometry.Scheme.stalkMap_comp + theorem AlgebraicGeometry.Scheme.stalkMap_congr + theorem AlgebraicGeometry.Scheme.stalkMap_congr_hom + theorem AlgebraicGeometry.Scheme.stalkMap_congr_point + theorem AlgebraicGeometry.Scheme.stalkMap_germ' + theorem AlgebraicGeometry.Scheme.stalkMap_germ'_apply + theorem AlgebraicGeometry.Scheme.stalkMap_germ + theorem AlgebraicGeometry.Scheme.stalkMap_germ_apply + theorem AlgebraicGeometry.Scheme.stalkMap_hom_inv + theorem AlgebraicGeometry.Scheme.stalkMap_hom_inv_apply + theorem AlgebraicGeometry.Scheme.stalkMap_id + theorem AlgebraicGeometry.Scheme.stalkMap_inv_hom + theorem AlgebraicGeometry.Scheme.stalkMap_inv_hom_apply + theorem AlgebraicGeometry.Scheme.stalkSpecializes_stalkMap + theorem AlgebraicGeometry.Scheme.stalkSpecializes_stalkMap_apply Modified Mathlib/AlgebraicGeometry/Spec.lean Modified Mathlib/AlgebraicGeometry/Stalk.lean Modified Mathlib/Geometry/RingedSpace/LocallyRingedSpace.lean + theorem AlgebraicGeometry.LocallyRingedSpace.iso_hom_val_base_inv_val_base + theorem AlgebraicGeometry.LocallyRingedSpace.iso_hom_val_base_inv_val_base_apply + theorem AlgebraicGeometry.LocallyRingedSpace.iso_inv_val_base_hom_val_base + theorem AlgebraicGeometry.LocallyRingedSpace.iso_inv_val_base_hom_val_base_apply + def AlgebraicGeometry.LocallyRingedSpace.restrictStalkIso + theorem AlgebraicGeometry.LocallyRingedSpace.restrictStalkIso_hom_eq_germ + theorem AlgebraicGeometry.LocallyRingedSpace.restrictStalkIso_hom_eq_germ_apply + theorem AlgebraicGeometry.LocallyRingedSpace.restrictStalkIso_inv_eq_germ + theorem AlgebraicGeometry.LocallyRingedSpace.restrictStalkIso_inv_eq_germ_apply + theorem AlgebraicGeometry.LocallyRingedSpace.restrictStalkIso_inv_eq_ofRestrict + theorem AlgebraicGeometry.LocallyRingedSpace.stalkMap_comp + theorem AlgebraicGeometry.LocallyRingedSpace.stalkMap_congr + theorem AlgebraicGeometry.LocallyRingedSpace.stalkMap_congr_hom + theorem AlgebraicGeometry.LocallyRingedSpace.stalkMap_congr_point + theorem AlgebraicGeometry.LocallyRingedSpace.stalkMap_germ' + theorem AlgebraicGeometry.LocallyRingedSpace.stalkMap_germ'_apply + theorem AlgebraicGeometry.LocallyRingedSpace.stalkMap_germ + theorem AlgebraicGeometry.LocallyRingedSpace.stalkMap_germ_apply + theorem AlgebraicGeometry.LocallyRingedSpace.stalkMap_hom_inv + theorem AlgebraicGeometry.LocallyRingedSpace.stalkMap_hom_inv_apply + theorem AlgebraicGeometry.LocallyRingedSpace.stalkMap_id + theorem AlgebraicGeometry.LocallyRingedSpace.stalkMap_inv_hom + theorem AlgebraicGeometry.LocallyRingedSpace.stalkMap_inv_hom_apply + theorem AlgebraicGeometry.LocallyRingedSpace.stalkSpecializes_stalkMap + theorem AlgebraicGeometry.LocallyRingedSpace.stalkSpecializes_stalkMap_apply Modified Mathlib/Geometry/RingedSpace/LocallyRingedSpace/HasColimits.lean Modified Mathlib/Geometry/RingedSpace/LocallyRingedSpace/ResidueField.lean Modified Mathlib/Geometry/RingedSpace/OpenImmersion.lean Modified Mathlib/Geometry/RingedSpace/Stalks.lean + def AlgebraicGeometry.PresheafedSpace.Hom.stalkMap - def AlgebraicGeometry.PresheafedSpace.stalkMap Modified Mathlib/Topology/Sheaves/Stalks.lean + theorem TopCat.Presheaf.map_germ_eq_Γgerm + def TopCat.Presheaf.Γgerm + theorem TopCat.Presheaf.Γgerm_res_apply 2024-07-29 17:43:43 bb85073 docs(Topology): add tag to one-point compactification (#15266) ESTIMATED CHANGES Modified Mathlib/Topology/Compactification/OnePoint.lean 2024-07-29 17:43:42 4196dc8 feat: define logarithmic derivatives (#12804) We define the logarithmic derivative of a function as `f'/f` and then prove some basic facts about this. Specifially some things that will be needed for the Mittag-Leffler Expansion for Cotangent Function. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/Calculus/LogDeriv.lean + def logDeriv + theorem logDeriv_apply + theorem logDeriv_comp + theorem logDeriv_const + theorem logDeriv_const_mul + theorem logDeriv_eq_zero_of_not_differentiableAt + theorem logDeriv_fun_pow + theorem logDeriv_fun_zpow + theorem logDeriv_id' + theorem logDeriv_id + theorem logDeriv_inv + theorem logDeriv_mul + theorem logDeriv_mul_const + theorem logDeriv_pow + theorem logDeriv_prod + theorem logDeriv_zpow Modified Mathlib/Analysis/Complex/LocallyUniformLimit.lean + theorem Complex.logDeriv_tendsto Modified Mathlib/Analysis/SpecialFunctions/Complex/LogDeriv.lean + theorem Complex.deriv_log_comp_eq_logDeriv Modified Mathlib/Analysis/SpecialFunctions/Log/Deriv.lean + theorem Real.deriv_log_comp_eq_logDeriv Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Deriv.lean + theorem Complex.LogDeriv_exp + theorem Complex.logDeriv_cos + theorem Complex.logDeriv_cosh + theorem Complex.logDeriv_sin + theorem Real.LogDeriv_exp + theorem Real.logDeriv_cos + theorem Real.logDeriv_cosh + theorem Real.logDeriv_sin Modified Mathlib/Data/Complex/Exponential.lean + theorem Complex.cot_conj + theorem Complex.cot_eq_cos_div_sin + theorem Complex.ofReal_cot + theorem Complex.ofReal_cot_ofReal_re 2024-07-29 17:16:33 36b887b feat(LiminfLimsup): drop unneeded `DecidableEq` assumptions (#15267) ESTIMATED CHANGES Modified Mathlib/Order/LiminfLimsup.lean +/- theorem Filter.isBoundedUnder_ge_sum +/- theorem Filter.isBoundedUnder_le_sum +/- theorem Filter.isBoundedUnder_sum 2024-07-29 16:50:02 fdd94c0 feat(Order/Minimal): generalize PartialOrder to Preorder where possible (#15196) from the Carleson project. ESTIMATED CHANGES Modified Mathlib/Order/Minimal.lean +/- theorem IsAntichain.maximals_lowerClosure +/- theorem IsAntichain.minimals_upperClosure +/- theorem IsGreatest.maximals_eq +/- theorem IsGreatest.mem_maximals +/- theorem IsLeast.mem_minimals +/- theorem IsLeast.minimals_eq +/- theorem mem_maximals_iff_forall_lt_not_mem +/- theorem mem_minimals_iff_forall_lt_not_mem 2024-07-29 18:43:11+02:00 924277a Add a bot posting event reminders on Zulip ESTIMATED CHANGES Added .github/workflows/calendar.yml Added scripts/leanCal.py 2024-07-29 13:52:10 54129d0 feat(Mathlib/NumberTheory/FLT/Basic): expand module docstring. (#15263) Add historical references and reference to ongoing formalisation of FLT. ESTIMATED CHANGES Modified Mathlib/NumberTheory/FLT/Basic.lean Modified docs/references.bib 2024-07-29 07:19:44 a1db8c7 chore: backports for leanprover/lean4#4814 (part 3) (#15249) See https://github.com/leanprover-community/mathlib4/pull/15245 ESTIMATED CHANGES Modified Mathlib/Algebra/GroupWithZero/Divisibility.lean Modified Mathlib/Algebra/GroupWithZero/Units/Lemmas.lean +/- theorem eq_on_inv₀ Modified Mathlib/CategoryTheory/Functor/FullyFaithful.lean Modified Mathlib/Combinatorics/Quiver/Covering.lean Modified Mathlib/Control/Monad/Cont.lean Modified Mathlib/Control/Monad/Writer.lean Modified Mathlib/Data/List/Count.lean Modified Mathlib/Order/Hom/Basic.lean +/- theorem OrderIso.complementedLattice +/- theorem OrderIso.complementedLattice_iff Modified Mathlib/Order/WithBot.lean 2024-07-29 07:19:43 1d08024 feat: Rename `CompactlyGeneratedSpace` to `UCompactlyGeneratedSpace` (#15201) `CompactlyGeneratedSpace` is defined in `Mathlib.Topology.Category.CompactlyGenerated`. Due to functors considerations, the definition involves a free universe parameter, which is not desirable for topological purposes. Therefore we rename `CompactlyGeneratedSpace` to `UCompactlyGeneratedSpace` so that `CompactlyGeneratedSpace` can be defined as a special case. This was discussed [here](https://leanprover.zulipchat.com/#narrow/stream/116395-maths/topic/Compactly.20generated.20spaces/near/453957506). ESTIMATED CHANGES Modified Mathlib/Condensed/TopCatAdjunction.lean +/- def CondensedSet.compactlyGeneratedAdjunctionCounitHomeo Modified Mathlib/Topology/Category/CompactlyGenerated.lean - theorem compactlyGeneratedSpace_of_continuous_maps - theorem continuous_from_compactlyGeneratedSpace + theorem continuous_from_uCompactlyGeneratedSpace +/- theorem eq_compactlyGenerated + theorem uCompactlyGeneratedSpace_of_continuous_maps 2024-07-29 07:19:42 bc33405 feat(Data/Matroid/Map): add missing lemmas (#15060) We add a few missing lemmas, mostly about `Matroid.Basis`, in `Matroid/Map`, and also fix a couple of typos in the same file. ESTIMATED CHANGES Modified Mathlib/Data/Matroid/Map.lean + theorem Matroid.mapEmbedding_base_iff + theorem Matroid.mapEmbedding_basis_iff + theorem Matroid.mapEquiv_basis_iff + theorem Matroid.restrictSubtype_base_iff + theorem Matroid.restrictSubtype_basis_iff + theorem Matroid.restrictSubtype_ground_base_iff + theorem Matroid.restrictSubtype_ground_basis_iff 2024-07-29 07:19:40 29fe1f7 feat: The multinomial theorem in terms of `piAntidiag` (#14998) Prove that `(∑ i in s, f i) ^ n = ∑ k in piAntidiag s n, multinomial s k * ∏ i in s, f i ^ k i`. We already have a version of this for `Finset.sym`, so I am also adding machinery to deduce one from the other. I however haven't managed to do that. From LeanAPAP ESTIMATED CHANGES Modified Mathlib/Algebra/BigOperators/Group/Finset.lean + theorem Multiset.mem_sum +/- theorem Multiset.sum_count_eq + theorem Multiset.sum_count_eq_card Modified Mathlib/Algebra/Order/Antidiag/Pi.lean + theorem Finset.map_sym_eq_piAntidiag Modified Mathlib/Data/Multiset/Basic.lean + theorem Multiset.count_injective +/- theorem Multiset.mem_nsmul + theorem Multiset.mem_nsmul_of_ne_zero Modified Mathlib/Data/Nat/Choose/Multinomial.lean + theorem Finset.sum_pow_eq_sum_piAntidiag + theorem Finset.sum_pow_eq_sum_piAntidiag_of_commute +/- theorem Finset.sum_pow_of_commute Modified Mathlib/Data/Sym/Basic.lean + theorem Sym.coe_mk + theorem Sym.«exists» + theorem Sym.«forall» 2024-07-29 06:28:27 91e63eb chore: more fixes for the flexible linter (#15130) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Limits/Shapes/Diagonal.lean Modified Mathlib/Combinatorics/SetFamily/LYM.lean Modified Mathlib/Combinatorics/SimpleGraph/Coloring.lean Modified Mathlib/Computability/Halting.lean Modified Mathlib/Computability/Partrec.lean Modified Mathlib/Computability/PartrecCode.lean Modified Mathlib/Computability/Primrec.lean Modified Mathlib/Computability/RegularExpressions.lean Modified Mathlib/Computability/TMToPartrec.lean Modified Mathlib/Computability/TuringMachine.lean Modified Mathlib/Data/FinEnum.lean Modified Mathlib/Data/Fintype/Basic.lean Modified Mathlib/Data/Fintype/Quotient.lean Modified Mathlib/Data/LazyList/Basic.lean Modified Mathlib/Data/List/AList.lean Modified Mathlib/Data/List/Basic.lean Modified Mathlib/Data/List/Lattice.lean Modified Mathlib/Data/List/ReduceOption.lean Modified Mathlib/Data/Nat/ChineseRemainder.lean Modified Mathlib/Data/Nat/Pairing.lean Modified Mathlib/Data/Nat/Prime/Defs.lean Modified Mathlib/Data/Nat/Squarefree.lean Modified Mathlib/Data/Num/Lemmas.lean Modified Mathlib/Data/Ordmap/Ordset.lean Modified Mathlib/Data/PFun.lean Modified Mathlib/Data/Semiquot.lean Modified Mathlib/Data/Seq/Computation.lean Modified Mathlib/Data/Seq/WSeq.lean Modified Mathlib/Data/TypeVec.lean Modified Mathlib/Data/Vector3.lean Modified Mathlib/Deprecated/Subgroup.lean Modified Mathlib/GroupTheory/FreeGroup/Basic.lean Modified Mathlib/GroupTheory/Perm/Cycle/Concrete.lean Modified Mathlib/LinearAlgebra/Finsupp.lean Modified Mathlib/LinearAlgebra/LinearIndependent.lean Modified Mathlib/NumberTheory/PellMatiyasevic.lean Modified Mathlib/Order/ConditionallyCompleteLattice/Basic.lean Modified Mathlib/Order/Interval/Set/Pi.lean Modified Mathlib/Order/Rel/GaloisConnection.lean Modified Mathlib/Probability/ConditionalProbability.lean Modified Mathlib/RingTheory/Polynomial/Bernstein.lean Modified Mathlib/SetTheory/Cardinal/Cofinality.lean Modified Mathlib/SetTheory/Game/Nim.lean Modified Mathlib/Tactic/NormNum/Eq.lean 2024-07-29 05:46:40 c0604e0 chore: replace forall intro in UnsignedHahn (#15205) This file (and specifically [MeasureTheory.hahn_decomposition](https://leanprover-community.github.io/mathlib4_docs/Mathlib/MeasureTheory/Decomposition/UnsignedHahn.html#MeasureTheory.hahn_decomposition), the only declaration that it contains) stumps a linter that looks for "collapsible" pairs `forall`/`intro`. `have d_split` used to have a `MeasurableSet s` assumption, but it was unnecessary and I removed it. Strictly speaking, this was not needed for my purpose, but I noticed it thanks to the linter. ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Decomposition/UnsignedHahn.lean 2024-07-29 04:45:57 188a242 CI: install elan in `lint_and_suggest`, suggest import changes (#15250) The `lint` step in [this action](https://github.com/leanprover-community/mathlib4/actions/runs/10137312257/job/28027367787?pr=15250) used to fail. Also added reviewdog suggestion to propose adding missing `import`s in "import all" files. #15251 tests that the step can fail and the reviewdog suggests changes to `Mathlib.lean`. [Zulip thread](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/silent.20CI.20lint.20error/near/454527007) ESTIMATED CHANGES Modified .github/workflows/lint_and_suggest_pr.yml 2024-07-29 03:09:52 2159435 feat: Define `AnalyticWithinAt` and `AnalyticWithinOn` (#13971) Unlike `ContinuousOn`, which allows arbitrary behavior outside of the set, `AnalyticOn` requires the function to be analytic in a neighborhood of the set. This is inconvenient for analytic manifolds with boundary, as we want analyticity for functions meaningful only up to the boundary. Here we add `AnalyticWithinAt` and `AnalyticWithinOn` with the natural definitions. The one subtlety is that we explicitly require `ContinuousWithinAt` in `AnalyticWithinAt`, as otherwise the natural definition does not imply a nice value of the function at the point. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Analysis/Analytic/Basic.lean + def AnalyticWithinAt + def AnalyticWithinOn + def HasFPowerSeriesWithinAt + structure HasFPowerSeriesWithinOnBall Added Mathlib/Analysis/Analytic/Within.lean + theorem AnalyticAt.analyticWithinAt + theorem AnalyticOn.analyticWithinOn + theorem AnalyticWithinAt.comp + theorem AnalyticWithinAt.congr + theorem AnalyticWithinAt.congr_of_eventuallyEq + theorem AnalyticWithinAt.contDiffWithinAt + theorem AnalyticWithinAt.continuousWithinAt + theorem AnalyticWithinAt.exists_analyticAt + theorem AnalyticWithinAt.mono + theorem AnalyticWithinAt.prod + theorem AnalyticWithinOn.comp + theorem AnalyticWithinOn.congr + theorem AnalyticWithinOn.contDiffOn + theorem AnalyticWithinOn.continuousOn + theorem AnalyticWithinOn.mono + theorem AnalyticWithinOn.prod + theorem HasFPowerSeriesWithinAt.continuousWithinAt + theorem HasFPowerSeriesWithinAt.mono + theorem HasFPowerSeriesWithinAt.prod + theorem HasFPowerSeriesWithinOnBall.mono + theorem HasFPowerSeriesWithinOnBall.prod + theorem IsOpen.analyticWithinOn_iff_analyticOn + theorem analyticWithinAt_iff_exists_analyticAt + theorem analyticWithinAt_of_singleton_mem + theorem analyticWithinAt_univ + theorem analyticWithinOn_of_locally_analyticWithinOn + theorem analyticWithinOn_univ + theorem hasFPowerSeriesWithinAt_iff_exists_hasFPowerSeriesAt + theorem hasFPowerSeriesWithinAt_univ + theorem hasFPowerSeriesWithinOnBall_iff_exists_hasFPowerSeriesOnBall + theorem hasFPowerSeriesWithinOnBall_univ 2024-07-29 01:34:14 e670f86 fix: re-add the `TextBased` long line linter (#15190) As pointed out on [Zulip](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/Long.20lines.20linter.20regression), the `TextBased` long line linter should not have been removed. There are two advantages to having also the `TextBased` linter: * if you accidentally submit code with long lines, the `TextBased` linter will tell you of all long lines at once; * the linter can only flag lines on files that import the linter, while the `TextBased` linter crawls all `.lean` files in `Mathlib`. ESTIMATED CHANGES Modified Mathlib/Tactic/Linter/TextBased.lean + def checkFileLength Modified scripts/lint-style.py Modified scripts/style-exceptions.txt 2024-07-28 23:33:41 04e2348 chore: robustifying for debug.byAsSorry (part 13) (#15197) ESTIMATED CHANGES Modified Mathlib/Algebra/Homology/CommSq.lean Modified Mathlib/CategoryTheory/GradedObject.lean +/- theorem CategoryTheory.GradedObject.hasMap_of_iso Modified Mathlib/CategoryTheory/Limits/EpiMono.lean +/- theorem CategoryTheory.epi_iff_inl_eq_inr +/- theorem CategoryTheory.epi_iff_isIso_inl +/- theorem CategoryTheory.epi_iff_isIso_inr +/- theorem CategoryTheory.mono_iff_fst_eq_snd +/- theorem CategoryTheory.mono_iff_isIso_fst +/- theorem CategoryTheory.mono_iff_isIso_snd Modified Mathlib/CategoryTheory/Quotient/Linear.lean +/- def CategoryTheory.Quotient.Linear.module' +/- def CategoryTheory.Quotient.Linear.module +/- def CategoryTheory.Quotient.Linear.smul +/- theorem CategoryTheory.Quotient.Linear.smul_eq +/- def CategoryTheory.Quotient.linear Modified Mathlib/CategoryTheory/Quotient/Preadditive.lean +/- def CategoryTheory.Quotient.Preadditive.add +/- def CategoryTheory.Quotient.Preadditive.neg +/- theorem CategoryTheory.Quotient.functor_additive +/- def CategoryTheory.Quotient.preadditive Modified Mathlib/Combinatorics/Young/YoungDiagram.lean Modified Mathlib/SetTheory/Cardinal/Ordinal.lean +/- theorem Cardinal.mk_embedding_eq_arrow_of_le +/- theorem Cardinal.mk_embedding_eq_arrow_of_lift_le +/- theorem Cardinal.mk_equiv_eq_arrow_of_eq +/- theorem Cardinal.mk_equiv_eq_arrow_of_lift_eq +/- theorem Cardinal.mk_equiv_of_eq +/- theorem Cardinal.mk_equiv_of_lift_eq +/- theorem Cardinal.mk_surjective_eq_arrow_of_le +/- theorem Cardinal.mk_surjective_eq_arrow_of_lift_le Modified Mathlib/SetTheory/Surreal/Multiplication.lean +/- theorem Surreal.Multiplication.P1_of_ih +/- theorem Surreal.Multiplication.ih1 +/- theorem Surreal.Multiplication.ih1_swap +/- theorem Surreal.Multiplication.ih4 +/- theorem Surreal.Multiplication.ih₁₂ +/- theorem Surreal.Multiplication.ih₂₁ +/- theorem Surreal.Multiplication.mulOption_lt +/- theorem Surreal.Multiplication.mulOption_lt_of_lt +/- theorem Surreal.Multiplication.numeric_mul_option +/- theorem Surreal.Multiplication.numeric_of_ih +/- theorem Surreal.Multiplication.numeric_option_mul +/- theorem Surreal.Multiplication.numeric_option_mul_option Modified Mathlib/Topology/Algebra/OpenSubgroup.lean +/- theorem Subgroup.isOpen_mono +/- theorem Subgroup.isOpen_of_mem_nhds +/- theorem Subgroup.isOpen_of_one_mem_interior +/- theorem Subgroup.isOpen_of_openSubgroup Modified Mathlib/Topology/Algebra/UniformField.lean 2024-07-28 23:22:41 e026b77 chore(ModelTheory/Encoding): improve the encoding of formulas to avoid `sizeOf` (#15209) Edits the decoding of lists into first-order formulas, so that the proof of well-foundedness is easier and no longer invokes `sizeOf`. ESTIMATED CHANGES Modified Mathlib/ModelTheory/Encoding.lean +/- def FirstOrder.Language.BoundedFormula.listDecode + theorem FirstOrder.Language.BoundedFormula.sigmaAll_apply + theorem FirstOrder.Language.BoundedFormula.sigmaImp_apply +/- def FirstOrder.Language.Term.listDecode 2024-07-28 21:26:37 9ca8f83 fix: the long line linter only acts on mathlib (#15226) [Zulip](https://leanprover.zulipchat.com/#narrow/stream/144837-PR-reviews/topic/.2315097.20the.20long.20line.20linter.20as.20a.20syntax.20linter/near/453908911) ESTIMATED CHANGES Modified Mathlib/Tactic/Linter/Lint.lean 2024-07-28 21:09:13 663a7b8 chore(InnerProductSpace/PiL2): `Fintype m` -> `Finite m` (#15232) ESTIMATED CHANGES Modified Mathlib/Analysis/InnerProductSpace/PiL2.lean +/- theorem Matrix.toEuclideanLin_eq_toLin +/- theorem Matrix.toEuclideanLin_eq_toLin_orthonormal 2024-07-28 20:59:26 be90435 docs: add module docs for `declarations_diff` (#15195) This PR adds documentation to the `declarations_diff` script. Consequence of #15149. ESTIMATED CHANGES Modified scripts/declarations_diff.sh 2024-07-28 20:36:28 80fec67 doc: add a warning that `comap` is zero for non-injective functions (#15220) ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Measure/MeasureSpace.lean 2024-07-28 19:58:52 0394393 feat: proper group actions (#11746) We define proper action of a group on a topological space, and we prove that in this case the quotient space is T2. We prove that if a Hausdorff group acts properly on $X$, then $X$ is Hausdorff. We also give equivalent definitions of proper action using ultrafilters and show the transfer of proper action to a closed subgroup. We show that if $X \times X$ is Hausdorff and compactly generated then the action is properly discontinuous if and only if it is continuous in the second variable and proper in the sense defined here. The "compactly generated" assumption is to be rephrased with typeclass inference in the future. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Topology/Algebra/ProperAction.lean + theorem FirstCountableTopology.properlyDiscontinuousSMul_iff_properSMul + theorem WeaklyLocallyCompactSpace.properlyDiscontinuousSMul_iff_properSMul + theorem properSMul_iff_continuousSMul_ultrafilter_tendsto + theorem properSMul_iff_continuousSMul_ultrafilter_tendsto_t2 + theorem properSMul_of_closedEmbedding + theorem properlyDiscontinuousSMul_iff_properSMul + theorem t2Space_of_properSMul_of_t2Group + theorem t2Space_quotient_mulAction_of_properSMul 2024-07-28 19:09:17 65c21dc chore(RingTheory): fix `DecidableEq` and `Fintype` vs `Finite` (#15236) ESTIMATED CHANGES Modified Mathlib/RingTheory/AdicCompletion/AsTensorProduct.lean +/- theorem AdicCompletion.ofTensorProduct_bijective_of_pi_of_fintype Modified Mathlib/RingTheory/Flat/EquationalCriterion.lean +/- theorem Module.Flat.exists_factorization_of_apply_eq_zero Modified Mathlib/RingTheory/Idempotents.lean +/- theorem OrthogonalIdempotents.isIdempotentElem_sum +/- theorem OrthogonalIdempotents.lift_of_isNilpotent_ker +/- theorem OrthogonalIdempotents.option +/- theorem OrthogonalIdempotents.surjective_pi 2024-07-28 19:09:15 45c24fb chore(Matrix/RowCol): `Inhabited` -> `Nonempty` (#15235) ESTIMATED CHANGES Modified Mathlib/Data/Matrix/RowCol.lean +/- theorem Matrix.col_eq_zero +/- theorem Matrix.col_inj +/- theorem Matrix.col_injective +/- theorem Matrix.row_eq_zero +/- theorem Matrix.row_inj +/- theorem Matrix.row_injective 2024-07-28 19:09:14 05d6576 chore(SobolevInequality): drop a `DecidableEq` assumption (#15230) ESTIMATED CHANGES Modified Mathlib/Analysis/FunctionalSpaces/SobolevInequality.lean 2024-07-28 19:09:13 145c77a feat(Topology/Algebra/Algebra): add ContinuousAlgHom (#12800) We add the type `ContinuousAlgHom` for continuous algebra homomorphisms. ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/Prod.lean + def AlgHom.prodMap Modified Mathlib/Algebra/Algebra/Subalgebra/Basic.lean + theorem AlgHom.eqOn_sup +/- def AlgHom.equalizer + theorem AlgHom.equalizer_eq_top + theorem AlgHom.equalizer_same + theorem AlgHom.equalizer_toSubmodule + theorem AlgHom.ext_on_codisjoint + theorem AlgHom.le_equalizer +/- theorem AlgHom.mem_equalizer Modified Mathlib/RingTheory/Adjoin/Basic.lean + theorem AlgHom.eqOn_adjoin_iff Modified Mathlib/RingTheory/AdjoinRoot.lean Modified Mathlib/Topology/Algebra/Algebra.lean + def ContinuousAlgHom.Simps.apply + def ContinuousAlgHom.Simps.coe + def ContinuousAlgHom.codRestrict + theorem ContinuousAlgHom.coe_codRestrict + theorem ContinuousAlgHom.coe_codRestrict_apply + theorem ContinuousAlgHom.coe_coe + theorem ContinuousAlgHom.coe_comp' + theorem ContinuousAlgHom.coe_comp + theorem ContinuousAlgHom.coe_copy + theorem ContinuousAlgHom.coe_eq_id + theorem ContinuousAlgHom.coe_fst' + theorem ContinuousAlgHom.coe_fst + theorem ContinuousAlgHom.coe_id' + theorem ContinuousAlgHom.coe_id + theorem ContinuousAlgHom.coe_inj + theorem ContinuousAlgHom.coe_mk' + theorem ContinuousAlgHom.coe_mk + theorem ContinuousAlgHom.coe_mul + theorem ContinuousAlgHom.coe_pow + theorem ContinuousAlgHom.coe_prod + theorem ContinuousAlgHom.coe_prodMap' + theorem ContinuousAlgHom.coe_prodMap + theorem ContinuousAlgHom.coe_rangeRestrict + theorem ContinuousAlgHom.coe_restrictScalars' + theorem ContinuousAlgHom.coe_restrictScalars + theorem ContinuousAlgHom.coe_snd' + theorem ContinuousAlgHom.coe_snd + def ContinuousAlgHom.comp + theorem ContinuousAlgHom.comp_apply + theorem ContinuousAlgHom.comp_assoc + theorem ContinuousAlgHom.comp_id + def ContinuousAlgHom.copy + theorem ContinuousAlgHom.copy_eq + theorem ContinuousAlgHom.eqOn_closure_adjoin + theorem ContinuousAlgHom.ext + theorem ContinuousAlgHom.ext_iff + theorem ContinuousAlgHom.ext_on + theorem ContinuousAlgHom.ext_ring + theorem ContinuousAlgHom.ext_ring_iff + def ContinuousAlgHom.fst + theorem ContinuousAlgHom.fst_comp_prod + theorem ContinuousAlgHom.fst_prod_snd + theorem ContinuousAlgHom.id_apply + theorem ContinuousAlgHom.id_comp + theorem ContinuousAlgHom.map_smul_of_tower + theorem ContinuousAlgHom.mul_apply + theorem ContinuousAlgHom.mul_def + theorem ContinuousAlgHom.one_apply + theorem ContinuousAlgHom.one_def + def ContinuousAlgHom.prodEquiv + def ContinuousAlgHom.prodMap + theorem ContinuousAlgHom.prod_apply + def ContinuousAlgHom.rangeRestrict + def ContinuousAlgHom.restrictScalars + def ContinuousAlgHom.snd + theorem ContinuousAlgHom.snd_comp_prod + def ContinuousAlgHom.toAlgHomMonoidHom + theorem ContinuousAlgHom.toAlgHom_eq_coe + structure ContinuousAlgHom + theorem DenseRange.topologicalClosure_map_subalgebra + theorem Subalgebra.coe_valA' + theorem Subalgebra.coe_valA +/- def Subalgebra.topologicalClosure +/- theorem Subalgebra.topologicalClosure_coe + theorem Subalgebra.topologicalClosure_map + def Subalgebra.valA + theorem Subalgebra.valA_apply + theorem Submodule.range_valA Modified Mathlib/Topology/ContinuousFunction/Polynomial.lean 2024-07-28 18:21:53 812fe71 chore(Combinatorics): drop some `DecidableEq` assumptions (#15233) ESTIMATED CHANGES Modified Mathlib/Combinatorics/HalesJewett.lean +/- theorem Combinatorics.Subspace.exists_mono_in_high_dimension Modified Mathlib/Combinatorics/SimpleGraph/Clique.lean +/- theorem SimpleGraph.cliqueFree_map_iff +/- theorem SimpleGraph.isNClique_map_iff Modified Mathlib/Combinatorics/SimpleGraph/Triangle/Basic.lean +/- theorem SimpleGraph.FarFromTriangleFree.cliqueFinset_nonempty Modified Mathlib/Data/Fintype/Shrink.lean 2024-07-28 18:21:52 f839c3e chore(Topology/Algebra/UniformConvergence): golf (#15216) ESTIMATED CHANGES Modified Mathlib/Topology/Algebra/UniformConvergence.lean 2024-07-28 18:21:51 480bf95 chore: Move `DistribMulAction` on `Opposite`, `Pi`, `Prod`, `Sum`, `Sigma`, `Units` (#14937) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Algebra/NonUnitalHom.lean Renamed Mathlib/GroupTheory/GroupAction/Pi.lean to Mathlib/Algebra/GroupWithZero/Action/Pi.lean Renamed Mathlib/GroupTheory/GroupAction/Prod.lean to Mathlib/Algebra/GroupWithZero/Action/Prod.lean Renamed Mathlib/GroupTheory/GroupAction/Units.lean to Mathlib/Algebra/GroupWithZero/Action/Units.lean Modified Mathlib/Algebra/GroupWithZero/Units/Lemmas.lean Modified Mathlib/Algebra/Module/Defs.lean Modified Mathlib/Algebra/Module/Pi.lean Modified Mathlib/Algebra/Module/Prod.lean Modified Mathlib/Algebra/Order/Floor/Div.lean Modified Mathlib/Data/DFinsupp/Basic.lean Modified Mathlib/Data/Int/AbsoluteValue.lean Modified Mathlib/GroupTheory/GroupAction/Group.lean Modified Mathlib/RingTheory/Coprime/Basic.lean Modified test/instance_diamonds.lean 2024-07-28 18:21:50 70c21a9 feat(GroupAction/IterateAct): new file (#14891) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/GroupTheory/GroupAction/IterateAct.lean + structure IterateAddAct + theorem IterateMulAct.mk_smul + structure IterateMulAct 2024-07-28 18:01:02 5211b31 chore(Convex/Combination): use `Finite`, not `Fintype` (#15227) ESTIMATED CHANGES Modified Mathlib/Analysis/Convex/Combination.lean 2024-07-28 18:01:01 c9b4c44 chore(NumberField/Discriminant): golf (#15223) Use `calc` to golf a proof and improve readability. ESTIMATED CHANGES Modified Mathlib/NumberTheory/NumberField/Discriminant.lean 2024-07-28 17:51:03 ca528de chore(Convex/Radon): drop `DecidableEq` assumptions (#15234) ESTIMATED CHANGES Modified Mathlib/Analysis/Convex/Radon.lean 2024-07-28 17:32:33 ff20ec3 chore: normalise authors line in copyright header (#15231) Two test files used 'Author', but had multiple authors. This is both absurd and violates the style guide. ESTIMATED CHANGES Modified test/MfldSetTac.lean Modified test/push_neg.lean 2024-07-28 16:59:53 caac5b1 feat: topology on ring of finite adeles. (#14176) Use `SubmodulesRingBasis` to put a topology on the finite adeles. ESTIMATED CHANGES Modified Mathlib/RingTheory/DedekindDomain/AdicValuation.lean + theorem IsDedekindDomain.HeightOneSpectrum.adicCompletion.mul_nonZeroDivisor_mem_adicCompletionIntegers + theorem IsDedekindDomain.HeightOneSpectrum.coe_mem_adicCompletionIntegers + theorem IsDedekindDomain.HeightOneSpectrum.intValuationDef_zero + theorem IsDedekindDomain.HeightOneSpectrum.not_mem_adicCompletionIntegers + theorem IsDedekindDomain.HeightOneSpectrum.valuation_eq_intValuationDef + theorem IsDedekindDomain.HeightOneSpectrum.valuedAdicCompletion_eq_valuation' + theorem IsDedekindDomain.HeightOneSpectrum.valuedAdicCompletion_eq_valuation Modified Mathlib/RingTheory/DedekindDomain/FiniteAdeleRing.lean + theorem DedekindDomain.FiniteAdeleRing.exists_finiteIntegralAdele_iff + theorem DedekindDomain.FiniteAdeleRing.mul_nonZeroDivisor_mem_finiteIntegralAdeles + theorem DedekindDomain.FiniteAdeleRing.submodulesRingBasis 2024-07-28 16:06:19 07ede50 feat: The Erdős–Ginzburg–Ziv theorem (#14000) Prove the Erdős–Ginzburg–Ziv theorem as a corollary of Chevalley-Warning. This theorem states that among any (not necessarily distinct) `2 * n - 1` elements of `ZMod n`, we can find `n` elements of sum zero. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/MvPolynomial/Degrees.lean + theorem MvPolynomial.totalDegree_finsetSum_le Added Mathlib/Combinatorics/Additive/ErdosGinzburgZiv.lean + theorem Int.erdos_ginzburg_ziv + theorem Int.erdos_ginzburg_ziv_multiset + theorem ZMod.erdos_ginzburg_ziv + theorem ZMod.erdos_ginzburg_ziv_multiset Modified Mathlib/Data/Multiset/Fintype.lean +/- theorem Multiset.image_toEnumFinset_fst + theorem Multiset.map_fst_le_of_subset_toEnumFinset +/- theorem Multiset.map_toEnumFinset_fst +/- theorem Multiset.toEnumFinset_filter_eq Modified Mathlib/Data/Nat/Factorization/Induction.lean + theorem Nat.prime_composite_induction + theorem induction_on_primes Modified Mathlib/RingTheory/UniqueFactorizationDomain.lean - theorem induction_on_primes 2024-07-28 12:04:51 578cdce feat(Bicategory/Functor): add more API for functors of bicategories (#15194) This PR adds some API for using different versions/rearrangements of the defining properties of lax/oplax/pseudo-functors ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Bicategory/Functor/Oplax.lean + theorem CategoryTheory.OplaxFunctor.mapComp_assoc_left + theorem CategoryTheory.OplaxFunctor.mapComp_assoc_right Modified Mathlib/CategoryTheory/Bicategory/Functor/Pseudofunctor.lean + theorem CategoryTheory.Pseudofunctor.mapComp_assoc_left_hom + theorem CategoryTheory.Pseudofunctor.mapComp_assoc_left_inv + theorem CategoryTheory.Pseudofunctor.mapComp_assoc_right_hom + theorem CategoryTheory.Pseudofunctor.mapComp_assoc_right_inv + theorem CategoryTheory.Pseudofunctor.mapComp_id_left + theorem CategoryTheory.Pseudofunctor.mapComp_id_left_hom + theorem CategoryTheory.Pseudofunctor.mapComp_id_left_inv + theorem CategoryTheory.Pseudofunctor.mapComp_id_right + theorem CategoryTheory.Pseudofunctor.mapComp_id_right_hom + theorem CategoryTheory.Pseudofunctor.mapComp_id_right_inv + theorem CategoryTheory.Pseudofunctor.whiskerLeftIso_mapId + theorem CategoryTheory.Pseudofunctor.whiskerLeft_mapId_hom + theorem CategoryTheory.Pseudofunctor.whiskerLeft_mapId_inv + theorem CategoryTheory.Pseudofunctor.whiskerRightIso_mapId + theorem CategoryTheory.Pseudofunctor.whiskerRight_mapId_hom + theorem CategoryTheory.Pseudofunctor.whiskerRight_mapId_inv 2024-07-28 10:33:19 65b8389 chore(MeasureTheory/Constructions/Polish): split off embedding into the reals (#15208) Credit Rémy for https://github.com/leanprover-community/mathlib3/pull/18881 ESTIMATED CHANGES Modified Mathlib.lean Renamed Mathlib/MeasureTheory/Constructions/Polish.lean to Mathlib/MeasureTheory/Constructions/Polish/Basic.lean - def MeasureTheory.embeddingReal - theorem MeasureTheory.exists_measurableEmbedding_real - theorem MeasureTheory.exists_nat_measurableEquiv_range_coe_fin_of_finite - theorem MeasureTheory.exists_subset_real_measurableEquiv - theorem MeasureTheory.measurableEmbedding_embeddingReal - theorem MeasureTheory.measurableEquiv_range_coe_nat_of_infinite_of_countable Added Mathlib/MeasureTheory/Constructions/Polish/EmbeddingReal.lean + def MeasureTheory.embeddingReal + theorem MeasureTheory.exists_measurableEmbedding_real + theorem MeasureTheory.exists_nat_measurableEquiv_range_coe_fin_of_finite + theorem MeasureTheory.exists_subset_real_measurableEquiv + theorem MeasureTheory.measurableEmbedding_embeddingReal + theorem MeasureTheory.measurableEquiv_range_coe_nat_of_infinite_of_countable Modified Mathlib/MeasureTheory/Function/Jacobian.lean Modified Mathlib/MeasureTheory/Integral/Periodic.lean Modified Mathlib/MeasureTheory/Measure/Haar/Quotient.lean Modified Mathlib/Probability/Kernel/Disintegration/MeasurableStieltjes.lean Modified Mathlib/Probability/Kernel/Disintegration/StandardBorel.lean Modified Mathlib/Probability/Martingale/Convergence.lean 2024-07-28 10:01:07 5644f0d style: Wrong capital letter (#15211) It should be `compactSpace` rather than `compactSPace`. ESTIMATED CHANGES Modified Mathlib/Topology/Compactness/Compact.lean 2024-07-27 23:23:26 85db8c7 feat: generalize `Int.cast_nonneg` and related lemmas (#15186) ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Ring/Cast.lean 2024-07-27 23:01:29 45689f0 chore: remove some obsolete porting notes mentioning noncomputable (#15172) - Two porting notes are obsolete: the `noncomputable` modifier could simply be removed. - A few others don't seem actionable. - lean4#2077 is fixed now: no point referencing this issue any more (The `noncomputable` needs to stay, as the definition relies on other noncomputable items.) ESTIMATED CHANGES Modified Mathlib/Analysis/CstarAlgebra/Multiplier.lean Modified Mathlib/Analysis/Quaternion.lean Modified Mathlib/CategoryTheory/Monoidal/Types/Coyoneda.lean Modified Mathlib/Computability/PartrecCode.lean Modified Mathlib/Computability/TMToPartrec.lean Modified Mathlib/Data/Analysis/Topology.lean Modified Mathlib/MeasureTheory/Measure/Haar/Basic.lean 2024-07-27 19:36:13 ed41c0c feat: `OfNat.ofNat n • x = n • x` and `Nat.cast n • x = n • x` (#14997) ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/Basic.lean - theorem intCast_smul Modified Mathlib/Algebra/Lie/Sl2.lean Modified Mathlib/Algebra/Lie/TraceForm.lean Modified Mathlib/Algebra/Lie/Weights/Chain.lean Modified Mathlib/Algebra/Lie/Weights/Killing.lean Modified Mathlib/Algebra/Lie/Weights/RootSystem.lean Modified Mathlib/Algebra/Module/Basic.lean Modified Mathlib/Algebra/Module/Defs.lean + theorem Int.cast_smul_eq_nsmul + theorem Nat.cast_smul_eq_nsmul +/- theorem Nat.noZeroSMulDivisors +/- theorem int_smul_eq_zsmul +/- theorem nat_smul_eq_nsmul +/- theorem nsmul_eq_smul_cast + theorem ofNat_smul_eq_nsmul +/- theorem zsmul_eq_smul_cast Modified Mathlib/Algebra/Module/Rat.lean Modified Mathlib/Algebra/Module/Zlattice/Basic.lean Modified Mathlib/Algebra/Star/CHSH.lean Modified Mathlib/Analysis/Asymptotics/SpecificAsymptotics.lean Modified Mathlib/Analysis/CstarAlgebra/ContinuousFunctionalCalculus/Instances.lean Modified Mathlib/Analysis/Distribution/SchwartzSpace.lean Modified Mathlib/Analysis/InnerProductSpace/NormPow.lean Modified Mathlib/Analysis/Normed/Algebra/TrivSqZeroExt.lean Modified Mathlib/Analysis/NormedSpace/AddTorsor.lean Modified Mathlib/Analysis/NormedSpace/Connected.lean Modified Mathlib/Analysis/NormedSpace/Exponential.lean Modified Mathlib/Analysis/RCLike/Basic.lean Modified Mathlib/Analysis/SpecialFunctions/ContinuousFunctionalCalculus/ExpLog.lean Modified Mathlib/CategoryTheory/Preadditive/EilenbergMoore.lean Modified Mathlib/CategoryTheory/Preadditive/EndoFunctor.lean Modified Mathlib/Data/ZMod/IntUnitsPower.lean Modified Mathlib/Data/ZMod/Module.lean Modified Mathlib/Dynamics/BirkhoffSum/Average.lean Modified Mathlib/GroupTheory/Torsion.lean Modified Mathlib/LinearAlgebra/QuadraticForm/Basic.lean Modified Mathlib/LinearAlgebra/TensorProduct/Graded/External.lean Modified Mathlib/LinearAlgebra/TensorProduct/Graded/Internal.lean Modified Mathlib/RepresentationTheory/GroupCohomology/Resolution.lean Modified Mathlib/RepresentationTheory/Invariants.lean Modified Mathlib/RepresentationTheory/Maschke.lean Modified Mathlib/RingTheory/Binomial.lean Modified Mathlib/RingTheory/Derivation/Basic.lean 2024-07-27 18:20:50 cfbc1bd chore(Polynomial/UnitTrinomial): Don't import the fundamental theorem of algebra (#15207) Split the one lemma that requires it to a new file `Analysis.Complex.Polynomial.UnitTrinomial`. Also move `Analysis.Complex.Polynomial` to `Analysis.Complex.Polynomial.Basic`. ESTIMATED CHANGES Modified Archive/Wiedijk100Theorems/AbelRuffini.lean Modified Mathlib.lean Modified Mathlib/Algebra/Polynomial/UnitTrinomial.lean - theorem Polynomial.IsUnitTrinomial.irreducible_of_coprime' Renamed Mathlib/Analysis/Complex/Polynomial.lean to Mathlib/Analysis/Complex/Polynomial/Basic.lean Added Mathlib/Analysis/Complex/Polynomial/UnitTrinomial.lean + theorem Polynomial.IsUnitTrinomial.irreducible_of_coprime' Modified Mathlib/Analysis/Normed/Algebra/Spectrum.lean Modified Mathlib/NumberTheory/LegendreSymbol/AddCharacter.lean Modified Mathlib/NumberTheory/NumberField/Embeddings.lean Modified Mathlib/RingTheory/Polynomial/Selmer.lean 2024-07-27 18:20:49 6d2289f feat: The subtype coercion associated to a closed subset is a closed map (#15202) Prove that the subtype coercion associated to a closed subset is a closed map. ESTIMATED CHANGES Modified Mathlib/Topology/Constructions.lean + theorem IsClosed.isClosedMap_subtype_val 2024-07-27 17:49:22 2f4b72e feat: ULift of a compact space is compact. (#15176) `ULift` of a compact space is compact. ESTIMATED CHANGES Modified Mathlib/Topology/Compactness/Compact.lean 2024-07-27 16:57:24 286821d chore: qualify uses of ext and ext_iff lemmas (#15106) These will become protected in lean v4.11; it is easier to land these preparations in advance. ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Action/Sigma.lean Modified Mathlib/Algebra/Group/Fin/Basic.lean Modified Mathlib/Algebra/Group/Prod.lean Modified Mathlib/Algebra/Group/Support.lean Modified Mathlib/Algebra/Group/Units.lean Modified Mathlib/Algebra/Homology/DerivedCategory/Ext.lean Modified Mathlib/Algebra/Homology/HomotopyCategory/HomComplex.lean Modified Mathlib/Algebra/Module/LinearMap/Defs.lean Modified Mathlib/Algebra/MvPolynomial/Basic.lean Modified Mathlib/Algebra/Order/Kleene.lean Modified Mathlib/Algebra/Order/Monoid/Prod.lean Modified Mathlib/Algebra/Ring/Commute.lean Modified Mathlib/Algebra/Ring/Hom/Defs.lean Modified Mathlib/Analysis/Complex/Conformal.lean Modified Mathlib/Analysis/Complex/Hadamard.lean Modified Mathlib/Analysis/Complex/Isometry.lean Modified Mathlib/Analysis/Complex/RealDeriv.lean Modified Mathlib/Analysis/Normed/Group/SemiNormedGrp/Completion.lean Modified Mathlib/Analysis/Normed/Module/Complemented.lean Modified Mathlib/Analysis/NormedSpace/Multilinear/Basic.lean Modified Mathlib/Analysis/SpecialFunctions/Complex/Arctan.lean Modified Mathlib/Analysis/SpecialFunctions/Complex/Arg.lean Modified Mathlib/Analysis/SpecialFunctions/Complex/Log.lean Modified Mathlib/Analysis/SpecialFunctions/Gamma/Beta.lean Modified Mathlib/Data/Complex/Basic.lean Modified Mathlib/Data/Fin/Basic.lean +/- theorem Fin.castAdd_inj +/- theorem Fin.castLT_eq_castPred +/- theorem Fin.castPred_castSucc +/- theorem Fin.castPred_one +/- theorem Fin.castPred_zero' +/- theorem Fin.castPred_zero +/- theorem Fin.pred_last +/- theorem Fin.succ_injective Modified Mathlib/Data/Finsupp/Defs.lean Modified Mathlib/Data/List/AList.lean Modified Mathlib/Data/Prod/Basic.lean Modified Mathlib/Data/Set/Basic.lean Modified Mathlib/Data/Set/Card.lean Modified Mathlib/Data/Set/NAry.lean Modified Mathlib/Data/Subtype.lean Modified Mathlib/Deprecated/Subgroup.lean Modified Mathlib/Dynamics/Circle/RotationNumber/TranslationNumber.lean Modified Mathlib/GroupTheory/GroupAction/Hom.lean Modified Mathlib/GroupTheory/MonoidLocalization/Basic.lean Modified Mathlib/GroupTheory/Perm/Basic.lean Modified Mathlib/GroupTheory/Perm/Cycle/Factors.lean Modified Mathlib/GroupTheory/Perm/Support.lean Modified Mathlib/LinearAlgebra/Alternating/Basic.lean Modified Mathlib/LinearAlgebra/BilinearForm/Properties.lean Modified Mathlib/LinearAlgebra/Charpoly/Basic.lean Modified Mathlib/LinearAlgebra/Dual.lean Modified Mathlib/LinearAlgebra/Multilinear/Basic.lean Modified Mathlib/LinearAlgebra/Span.lean Modified Mathlib/LinearAlgebra/TensorProduct/Tower.lean Modified Mathlib/LinearAlgebra/Trace.lean Modified Mathlib/Logic/Encodable/Lattice.lean Modified Mathlib/Logic/Equiv/PartialEquiv.lean Modified Mathlib/MeasureTheory/Measure/Stieltjes.lean Modified Mathlib/ModelTheory/Semantics.lean Modified Mathlib/NumberTheory/ArithmeticFunction.lean Modified Mathlib/NumberTheory/DirichletCharacter/Basic.lean Modified Mathlib/NumberTheory/MulChar/Basic.lean Modified Mathlib/Order/BoundedOrder.lean Modified Mathlib/Order/CompleteLattice.lean Modified Mathlib/Order/Fin/Basic.lean Modified Mathlib/Order/Interval/Set/UnorderedInterval.lean Modified Mathlib/RingTheory/ClassGroup.lean Modified Mathlib/RingTheory/MvPolynomial/Localization.lean Modified Mathlib/RingTheory/MvPowerSeries/Basic.lean Modified Mathlib/RingTheory/PowerSeries/Basic.lean Modified Mathlib/RingTheory/WittVector/Compare.lean Modified Mathlib/RingTheory/WittVector/Frobenius.lean Modified Mathlib/RingTheory/WittVector/InitTail.lean Modified Mathlib/SetTheory/ZFC/Basic.lean Modified Mathlib/Topology/Algebra/Module/Basic.lean Modified Mathlib/Topology/Constructions.lean Modified Mathlib/Topology/ContinuousOn.lean Modified Mathlib/Topology/MetricSpace/Dilation.lean 2024-07-27 16:22:57 946985d feat: add `NormedSpace.Core` structure to easily define normed vector spaces (#13424) This PR introduces a `NormedSpace.Core` structure loosely based on `InnerProductSpace.Core`, which encapsulates the minimal axioms needed to show that a type forms a normed vector space, as found in textbooks. We then provide functions that take a `NormedSpace.Core` and produce instances of `NormedAddCommGroup` and `NormedSpace`. Note that as it stands, defining a normed vector space from scratch (i.e. on a type without a preexisting notion of distance) is surprisingly painful, we have to keep converting between norm and distance, and there are many redundant proofs to provide. Update (2024-07-25): This PR has now been significantly expanded to include tools to add a norm structure to a type that already has a uniformity or bornology. This involves "replacing" the uniformity/bornology induced by the norm by the preexisting one, while ensuring that the uniformity/bornology induced by the norm is a equal to the old one. (This is fairly common for e.g. matrices, where all reasonable norms induce the product uniformity.) ESTIMATED CHANGES Modified Mathlib/Analysis/Normed/Module/Basic.lean + structure NormedSpace.Core + structure SeminormedAddCommGroup.Core 2024-07-27 14:22:59 933a497 feat(Combinatorics/SimpleGraph): define `edist` and rewrite `dist` (#14582) Define `edist` as the extended distance between two vertices of a simple graph, belonging to `ENat`, and rewrite `dist` as the coercion of `edist` to `Nat` using `toNat`. Rewrite the API to meet these new definitions. ESTIMATED CHANGES Modified Mathlib/Combinatorics/SimpleGraph/Connectivity.lean + theorem SimpleGraph.Walk.reverse_bijective + theorem SimpleGraph.Walk.reverse_injective + theorem SimpleGraph.Walk.reverse_surjective Modified Mathlib/Combinatorics/SimpleGraph/Metric.lean +/- theorem SimpleGraph.Reachable.exists_path_of_dist +/- theorem SimpleGraph.Reachable.of_dist_ne_zero +/- theorem SimpleGraph.Walk.isPath_of_length_eq_dist +/- theorem SimpleGraph.dist_comm +/- theorem SimpleGraph.dist_eq_one_iff_adj + theorem SimpleGraph.dist_eq_sInf +/- theorem SimpleGraph.dist_eq_zero_iff_eq_or_not_reachable +/- theorem SimpleGraph.dist_eq_zero_of_not_reachable +/- theorem SimpleGraph.dist_le +/- theorem SimpleGraph.dist_ne_zero_iff_ne_and_reachable +/- theorem SimpleGraph.dist_self + theorem SimpleGraph.edist_comm + theorem SimpleGraph.edist_eq_one_iff_adj + theorem SimpleGraph.edist_eq_sInf + theorem SimpleGraph.edist_eq_top_of_not_reachable + theorem SimpleGraph.edist_eq_zero_iff + theorem SimpleGraph.edist_le + theorem SimpleGraph.edist_ne_top_iff_reachable + theorem SimpleGraph.edist_pos_of_ne + theorem SimpleGraph.edist_self +/- theorem SimpleGraph.exists_walk_of_dist_ne_zero + theorem SimpleGraph.exists_walk_of_edist_eq_coe + theorem SimpleGraph.exists_walk_of_edist_ne_top +/- theorem SimpleGraph.nonempty_of_pos_dist + theorem SimpleGraph.reachable_of_edist_ne_top Modified Mathlib/Data/ENat/Lattice.lean + theorem ENat.iInf_eq_top_of_isEmpty + theorem ENat.iInf_eq_zero + theorem ENat.iInf_toNat 2024-07-27 10:36:33 8fab0cc feat: `ZeroLEOneClass` for `StarOrderedRing` (#15185) ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Ring/Star.lean Modified Mathlib/Algebra/Star/Order.lean Modified Mathlib/Analysis/CstarAlgebra/ContinuousFunctionalCalculus/Unital.lean 2024-07-27 08:25:58 743021e chore: robustifying for debug.byAsSorry (part 12) (#15178) ESTIMATED CHANGES Modified Mathlib/Algebra/Polynomial/Div.lean Modified Mathlib/Data/ZMod/Basic.lean Modified Mathlib/GroupTheory/FixedPointFree.lean +/- theorem MonoidHom.FixedPointFree.coe_eq_inv_of_involutive +/- theorem MonoidHom.FixedPointFree.coe_eq_inv_of_sq_eq_one +/- def MonoidHom.FixedPointFree.commGroupOfInvolutive +/- theorem MonoidHom.FixedPointFree.commutatorMap_injective +/- theorem MonoidHom.FixedPointFree.commutatorMap_surjective +/- theorem MonoidHom.FixedPointFree.commute_all_of_involutive +/- theorem MonoidHom.FixedPointFree.odd_card_of_involutive +/- theorem MonoidHom.FixedPointFree.odd_orderOf_of_involutive +/- theorem MonoidHom.FixedPointFree.orderOf_ne_two_of_involutive +/- theorem MonoidHom.FixedPointFree.prod_pow_eq_one Modified Mathlib/GroupTheory/NoncommPiCoprod.lean +/- theorem MonoidHom.independent_range_of_coprime_order +/- theorem MonoidHom.noncommPiCoprod_range +/- theorem Subgroup.commute_subtype_of_commute +/- theorem Subgroup.independent_of_coprime_order +/- theorem Subgroup.injective_noncommPiCoprod_of_independent +/- def Subgroup.noncommPiCoprod +/- theorem Subgroup.noncommPiCoprod_mulSingle +/- theorem Subgroup.noncommPiCoprod_range Modified Mathlib/Order/WellFounded.lean +/- theorem WellFounded.eq_strictMono_iff_eq_range +/- theorem WellFounded.min_le +/- theorem WellFounded.self_le_of_strictMono Modified Mathlib/RingTheory/Localization/Ideal.lean +/- theorem IsLocalization.map_comap Modified Mathlib/SetTheory/Ordinal/Arithmetic.lean +/- theorem Ordinal.lift_isLimit Modified Mathlib/Topology/Algebra/Module/Star.lean 2024-07-27 08:25:57 6534c85 chore: robustifying for debug.byAsSorry (part 11) (#15169) ESTIMATED CHANGES Modified Mathlib/Algebra/Category/Grp/Kernels.lean Modified Mathlib/Algebra/Exact.lean +/- theorem Function.Exact.iff_of_ladder_addEquiv +/- theorem Function.Exact.of_ladder_addEquiv_of_exact' +/- theorem Function.Exact.of_ladder_addEquiv_of_exact Modified Mathlib/Algebra/Homology/ShortComplex/Exact.lean +/- theorem CategoryTheory.ShortComplex.Exact.desc' +/- theorem CategoryTheory.ShortComplex.Exact.g_desc +/- theorem CategoryTheory.ShortComplex.Exact.isIso_f' +/- theorem CategoryTheory.ShortComplex.Exact.isIso_fromOpcycles +/- theorem CategoryTheory.ShortComplex.Exact.isIso_g' +/- theorem CategoryTheory.ShortComplex.Exact.isIso_toCycles +/- theorem CategoryTheory.ShortComplex.Exact.lift' +/- theorem CategoryTheory.ShortComplex.Exact.lift_f +/- theorem CategoryTheory.ShortComplex.Exact.map_of_epi_of_preservesCokernel +/- theorem CategoryTheory.ShortComplex.Exact.map_of_mono_of_preservesKernel Modified Mathlib/Algebra/Polynomial/Inductions.lean Modified Mathlib/Algebra/Polynomial/Monic.lean +/- theorem Function.Injective.monic_map_iff +/- theorem Polynomial.degree_map_eq_of_injective +/- theorem Polynomial.leadingCoeff_map' +/- theorem Polynomial.leadingCoeff_of_injective +/- theorem Polynomial.monic_of_injective +/- theorem Polynomial.natDegree_map_eq_of_injective +/- theorem Polynomial.nextCoeff_map Modified Mathlib/Algebra/Star/RingQuot.lean +/- theorem RingQuot.Rel.star Modified Mathlib/Data/Finsupp/WellFounded.lean +/- theorem Finsupp.Lex.acc +/- theorem Finsupp.Lex.wellFounded' +/- theorem Finsupp.Lex.wellFounded Modified Mathlib/GroupTheory/OrderOfElement.lean +/- theorem Commute.isOfFinOrder_mul +/- theorem Commute.orderOf_dvd_lcm_mul +/- theorem Commute.orderOf_mul_dvd_lcm +/- theorem Commute.orderOf_mul_dvd_mul_orderOf +/- theorem Commute.orderOf_mul_eq_mul_orderOf_of_coprime +/- theorem Commute.orderOf_mul_eq_right_of_forall_prime_mul_dvd Modified Mathlib/RingTheory/Ideal/Maps.lean +/- theorem Ideal.comap_isMaximal_of_surjective +/- theorem Ideal.comap_le_comap_iff_of_surjective +/- theorem Ideal.comap_map_of_surjective +/- theorem Ideal.map_eq_top_or_isMaximal_of_surjective +/- def Ideal.orderEmbeddingOfSurjective +/- def Ideal.relIsoOfSurjective Modified Mathlib/RingTheory/Localization/FractionRing.lean 2024-07-27 08:25:55 e4a1af9 chore: robustifying for debug.byAsSorry (part 10) (#15164) ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/NonUnitalSubalgebra.lean Modified Mathlib/Algebra/Algebra/Subalgebra/Directed.lean +/- theorem Subalgebra.iSupLift_comp_inclusion +/- theorem Subalgebra.iSupLift_inclusion +/- theorem Subalgebra.iSupLift_mk +/- theorem Subalgebra.iSupLift_of_mem Modified Mathlib/Algebra/Polynomial/Basic.lean +/- theorem Polynomial.X_ne_zero Modified Mathlib/Algebra/Star/NonUnitalSubalgebra.lean Modified Mathlib/Data/DFinsupp/WellFounded.lean +/- theorem DFinsupp.Lex.acc +/- theorem DFinsupp.Lex.acc_of_single +/- theorem DFinsupp.Lex.acc_single +/- theorem DFinsupp.Lex.acc_zero +/- theorem DFinsupp.Lex.wellFounded' +/- theorem DFinsupp.Lex.wellFounded Modified Mathlib/Data/Set/UnionLift.lean Modified Mathlib/Order/Interval/Set/Pi.lean +/- theorem Set.pi_univ_Ico_subset +/- theorem Set.pi_univ_Iio_subset +/- theorem Set.pi_univ_Ioc_subset +/- theorem Set.pi_univ_Ioi_subset +/- theorem Set.pi_univ_Ioo_subset Modified Mathlib/RingTheory/Ideal/Quotient.lean Modified Mathlib/RingTheory/Localization/Basic.lean +/- theorem IsLocalization.map_units_map_submonoid Modified Mathlib/RingTheory/Valuation/Integers.lean +/- theorem Valuation.Integers.dvd_iff_le +/- theorem Valuation.Integers.dvd_of_le +/- theorem Valuation.Integers.eq_algebraMap_or_inv_eq_algebraMap +/- theorem Valuation.Integers.isUnit_of_one' +/- theorem Valuation.Integers.isUnit_of_one +/- theorem Valuation.Integers.le_iff_dvd +/- theorem Valuation.Integers.le_of_dvd +/- theorem Valuation.Integers.one_of_isUnit Modified Mathlib/Topology/Order/Basic.lean +/- theorem Dense.topology_eq_generateFrom +/- theorem Filter.Eventually.exists_Ioo_subset +/- theorem IsOpen.exists_Ioo_subset +/- theorem SecondCountableTopology.of_separableSpace_orderTopology +/- theorem Set.PairwiseDisjoint.countable_of_Ioo +/- theorem countable_image_gt_image_Iio +/- theorem countable_image_gt_image_Ioi +/- theorem countable_image_lt_image_Iio +/- theorem countable_image_lt_image_Ioi +/- theorem countable_of_isolated_left' +/- theorem countable_setOf_covBy_left +/- theorem countable_setOf_covBy_right +/- theorem dense_iff_exists_between +/- theorem dense_of_exists_between +/- theorem exists_Icc_mem_subset_of_mem_nhds +/- theorem exists_Icc_mem_subset_of_mem_nhdsWithin_Ici +/- theorem exists_Icc_mem_subset_of_mem_nhdsWithin_Iic +/- theorem exists_Ico_subset_of_mem_nhds' +/- theorem exists_Ico_subset_of_mem_nhds +/- theorem exists_Ioc_subset_of_mem_nhds' +/- theorem exists_Ioc_subset_of_mem_nhds +/- theorem ge_mem_nhds +/- theorem gt_mem_nhds +/- theorem isOpen_gt' +/- theorem isOpen_iff_generate_intervals +/- theorem isOpen_lt' +/- theorem le_mem_nhds +/- theorem lt_mem_nhds +/- theorem mem_nhds_iff_exists_Ioo_subset' +/- theorem mem_nhds_iff_exists_Ioo_subset +/- theorem nhds_basis_Ioo' +/- theorem nhds_basis_Ioo +/- theorem nhds_eq_order +/- theorem nhds_order_unbounded +/- theorem order_separated +/- theorem pi_Iio_mem_nhds +/- theorem tendsto_of_tendsto_of_tendsto_of_le_of_le' +/- theorem tendsto_of_tendsto_of_tendsto_of_le_of_le +/- theorem tendsto_order +/- theorem tendsto_order_unbounded 2024-07-27 07:35:01 319e0a1 chore: robustifying for debug.byAsSorry (part 8) (#15149) See [zulip](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/Running.20Mathlib.20under.20.60set_option.20debug.2EbyAsSorry.60). ESTIMATED CHANGES Modified Mathlib/Algebra/IsPrimePow.lean Modified Mathlib/Algebra/Module/Submodule/Map.lean +/- def Submodule.comap +/- def Submodule.gciMapComap +/- def Submodule.giMapComap Modified Mathlib/Algebra/Order/CauSeq/BigOperators.lean Modified Mathlib/CategoryTheory/Functor/KanExtension/Pointwise.lean Modified Mathlib/CategoryTheory/GuitartExact/Basic.lean Modified Mathlib/CategoryTheory/Limits/MonoCoprod.lean +/- theorem CategoryTheory.Limits.MonoCoprod.mono_of_injective_aux Modified Mathlib/CategoryTheory/Limits/Types.lean +/- theorem CategoryTheory.Limits.Types.surjective_π_app_zero_of_surjective_map Modified Mathlib/CategoryTheory/Localization/LocalizerMorphism.lean +/- theorem CategoryTheory.LocalizerMorphism.isEquivalence_imp Modified Mathlib/CategoryTheory/Localization/Prod.lean Modified Mathlib/CategoryTheory/Sites/IsSheafFor.lean +/- theorem CategoryTheory.Presieve.Arrows.Compatible.exists_familyOfElements Modified Mathlib/Combinatorics/Enumerative/Composition.lean Modified Mathlib/Combinatorics/SimpleGraph/Connectivity.lean Modified Mathlib/Combinatorics/SimpleGraph/Density.lean +/- theorem Rel.edgeDensity_comm +/- theorem Rel.swap_mem_interedges_iff Modified Mathlib/Data/Real/ConjExponents.lean +/- theorem NNReal.IsConjExponent.conj_eq +/- theorem Real.IsConjExponent.conj_eq Modified Mathlib/GroupTheory/MonoidLocalization/Basic.lean Modified Mathlib/NumberTheory/Padics/PadicVal.lean Modified Mathlib/Order/Filter/Basic.lean +/- theorem Filter.comap_comm +/- theorem Filter.map_comm Modified Mathlib/RingTheory/OreLocalization/Ring.lean Modified Mathlib/SetTheory/Cardinal/Basic.lean 2024-07-27 07:13:08 3e862f1 chore: move files into new `Analysis.Normed.Operator` (#15182) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Analysis/Calculus/FDeriv/Linear.lean Modified Mathlib/Analysis/Calculus/FDeriv/Measurable.lean Modified Mathlib/Analysis/Calculus/InverseFunctionTheorem/ApproximatesLinearOn.lean Modified Mathlib/Analysis/CstarAlgebra/Basic.lean Modified Mathlib/Analysis/InnerProductSpace/Basic.lean Modified Mathlib/Analysis/InnerProductSpace/Symmetric.lean Modified Mathlib/Analysis/InnerProductSpace/WeakOperatorTopology.lean Modified Mathlib/Analysis/LocallyConvex/Barrelled.lean Modified Mathlib/Analysis/Normed/Module/Complemented.lean Modified Mathlib/Analysis/Normed/Module/Span.lean Renamed Mathlib/Analysis/NormedSpace/Banach.lean to Mathlib/Analysis/Normed/Operator/Banach.lean Renamed Mathlib/Analysis/NormedSpace/BanachSteinhaus.lean to Mathlib/Analysis/Normed/Operator/BanachSteinhaus.lean Renamed Mathlib/Analysis/NormedSpace/BoundedLinearMaps.lean to Mathlib/Analysis/Normed/Operator/BoundedLinearMaps.lean Renamed Mathlib/Analysis/NormedSpace/CompactOperator.lean to Mathlib/Analysis/Normed/Operator/Compact.lean Renamed Mathlib/Analysis/NormedSpace/ContinuousLinearMap.lean to Mathlib/Analysis/Normed/Operator/ContinuousLinearMap.lean Renamed Mathlib/Analysis/NormedSpace/LinearIsometry.lean to Mathlib/Analysis/Normed/Operator/LinearIsometry.lean Renamed Mathlib/Analysis/NormedSpace/WeakOperatorTopology.lean to Mathlib/Analysis/Normed/Operator/WeakOperatorTopology.lean Modified Mathlib/Analysis/NormedSpace/AffineIsometry.lean Modified Mathlib/Analysis/NormedSpace/ConformalLinearMap.lean Modified Mathlib/Analysis/NormedSpace/HahnBanach/SeparatingDual.lean Modified Mathlib/Analysis/NormedSpace/OperatorNorm/Basic.lean Modified Mathlib/Analysis/NormedSpace/OperatorNorm/Bilinear.lean Modified Mathlib/Analysis/RCLike/Basic.lean Modified Mathlib/MeasureTheory/Function/StronglyMeasurable/Lemmas.lean Modified Mathlib/Topology/ContinuousFunction/Bounded.lean Modified Mathlib/Topology/VectorBundle/Basic.lean Modified scripts/noshake.json 2024-07-27 06:01:37 80ee856 chore: move files into new `Analysis.Normed.Module` (#15183) ESTIMATED CHANGES Modified Archive/Imo/Imo1972Q5.lean Modified Archive/Sensitivity.lean Modified Mathlib.lean Modified Mathlib/Analysis/Analytic/Uniqueness.lean Modified Mathlib/Analysis/Asymptotics/SpecificAsymptotics.lean Modified Mathlib/Analysis/Asymptotics/Theta.lean Modified Mathlib/Analysis/Calculus/BumpFunction/Basic.lean Modified Mathlib/Analysis/Calculus/ContDiff/FiniteDimension.lean Modified Mathlib/Analysis/Calculus/FDeriv/Measurable.lean Modified Mathlib/Analysis/Calculus/Implicit.lean Modified Mathlib/Analysis/Calculus/InverseFunctionTheorem/FiniteDimensional.lean Modified Mathlib/Analysis/Calculus/Rademacher.lean Modified Mathlib/Analysis/Calculus/TangentCone.lean Modified Mathlib/Analysis/Complex/AbsMax.lean Modified Mathlib/Analysis/Complex/Conformal.lean Modified Mathlib/Analysis/Complex/Liouville.lean Modified Mathlib/Analysis/Convex/Body.lean Modified Mathlib/Analysis/Convex/StrictConvexSpace.lean Modified Mathlib/Analysis/CstarAlgebra/Basic.lean Modified Mathlib/Analysis/InnerProductSpace/Basic.lean Modified Mathlib/Analysis/InnerProductSpace/Dual.lean Modified Mathlib/Analysis/InnerProductSpace/NormPow.lean Modified Mathlib/Analysis/LocallyConvex/Basic.lean Modified Mathlib/Analysis/Normed/Algebra/Basic.lean Modified Mathlib/Analysis/Normed/Group/Quotient.lean Renamed Mathlib/Analysis/NormedSpace/Basic.lean to Mathlib/Analysis/Normed/Module/Basic.lean Renamed Mathlib/Analysis/NormedSpace/Complemented.lean to Mathlib/Analysis/Normed/Module/Complemented.lean Renamed Mathlib/Analysis/NormedSpace/Completion.lean to Mathlib/Analysis/Normed/Module/Completion.lean Renamed Mathlib/Analysis/NormedSpace/Dual.lean to Mathlib/Analysis/Normed/Module/Dual.lean Renamed Mathlib/Analysis/NormedSpace/FiniteDimension.lean to Mathlib/Analysis/Normed/Module/FiniteDimension.lean Renamed Mathlib/Analysis/NormedSpace/Ray.lean to Mathlib/Analysis/Normed/Module/Ray.lean Renamed Mathlib/Analysis/NormedSpace/Span.lean to Mathlib/Analysis/Normed/Module/Span.lean Renamed Mathlib/Analysis/NormedSpace/WeakDual.lean to Mathlib/Analysis/Normed/Module/WeakDual.lean Modified Mathlib/Analysis/NormedSpace/AddTorsor.lean Modified Mathlib/Analysis/NormedSpace/AddTorsorBases.lean Modified Mathlib/Analysis/NormedSpace/AffineIsometry.lean Modified Mathlib/Analysis/NormedSpace/BallAction.lean Modified Mathlib/Analysis/NormedSpace/ConformalLinearMap.lean Modified Mathlib/Analysis/NormedSpace/ENorm.lean Modified Mathlib/Analysis/NormedSpace/Extr.lean Modified Mathlib/Analysis/NormedSpace/OperatorNorm/Completeness.lean Modified Mathlib/Analysis/NormedSpace/OperatorNorm/NormedSpace.lean Modified Mathlib/Analysis/NormedSpace/Real.lean Modified Mathlib/Analysis/NormedSpace/SphereNormEquiv.lean Modified Mathlib/Analysis/NormedSpace/WeakOperatorTopology.lean Modified Mathlib/Analysis/PSeriesComplex.lean Modified Mathlib/Analysis/RCLike/Basic.lean Modified Mathlib/Analysis/RCLike/Lemmas.lean Modified Mathlib/Analysis/SpecificLimits/Normed.lean Modified Mathlib/Analysis/VonNeumannAlgebra/Basic.lean Modified Mathlib/Geometry/Manifold/SmoothManifoldWithCorners.lean Modified Mathlib/MeasureTheory/Function/AEEqOfIntegral.lean Modified Mathlib/MeasureTheory/Function/StronglyMeasurable/Basic.lean Modified Mathlib/MeasureTheory/Integral/FundThmCalculus.lean Modified Mathlib/MeasureTheory/Integral/LebesgueNormedSpace.lean Modified Mathlib/MeasureTheory/Measure/Haar/Disintegration.lean Modified Mathlib/NumberTheory/LSeries/Basic.lean Modified Mathlib/Topology/Algebra/ConstMulAction.lean Modified Mathlib/Topology/Algebra/InfiniteSum/Ring.lean Modified Mathlib/Topology/Algebra/Module/FiniteDimension.lean Modified Mathlib/Topology/ContinuousFunction/Bounded.lean Modified Mathlib/Topology/Germ.lean Modified scripts/noshake.json 2024-07-27 05:46:45 07aa534 feat: define the derived set (#14834) Define the derived set of a set, and prove some properties. Also prove `AccPt.map`. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Topology/DerivedSet.lean + theorem AccPt.map + theorem Continuous.image_derivedSet + theorem IsPreconnected.inter_derivedSet_nonempty + def derivedSet + theorem derivedSet_closure + theorem derivedSet_mono + theorem derivedSet_subset_closure + theorem derivedSet_union + theorem isClosed_derivedSet + theorem isClosed_iff_derivedSet_subset + theorem mem_derivedSet + theorem perfect_iff_eq_derivedSet + theorem preperfect_iff_subset_derivedSet Modified Mathlib/Topology/Perfect.lean + theorem IsPreconnected.preperfect_of_nontrivial 2024-07-27 00:45:34 926984f fix: add check for existing filepath (#15179) This should fix a problem with the online lean server [Reported on Zulip](https://leanprover.zulipchat.com/#narrow/stream/113488-general/topic/reading.20the.20.22visible.22.20file.2C.20rather.20than.20the.20saved.20one/near/454337536) ESTIMATED CHANGES Modified Mathlib/Tactic/Linter/Lint.lean 2024-07-26 21:05:01 30361bf feat: add `SMul` instances to `Basis` (#14945) [Zulip thread](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/Renaming.20.60Basis.2Esmul.60/near/452825113) for the naming clash. ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/Basis.lean + theorem Basis.coe_smul + theorem Basis.repr_smul + theorem Basis.smul_apply + theorem Basis.smul_eq_map Modified Mathlib/LinearAlgebra/Determinant.lean + theorem Basis.smul_det Modified Mathlib/LinearAlgebra/Matrix/Basis.lean + theorem Basis.toMatrix_smul_left Modified Mathlib/LinearAlgebra/Matrix/ToLin.lean + theorem Algebra.smul_leftMulMatrix + theorem LinearMap.toMatrix_smulBasis_left + theorem LinearMap.toMatrix_smulBasis_right 2024-07-26 20:04:50 beae9f4 doc(Topology/PartitionOfUnity): add missing documentation (#15175) ESTIMATED CHANGES Modified Mathlib/Topology/PartitionOfUnity.lean 2024-07-26 19:54:50 77616f4 feat: Convergence of coe to `OnePoint` (#15174) The coercion from `X` to `OnePoint X` tends to infinity along `coclosedCompact`. ESTIMATED CHANGES Modified Mathlib/Topology/Compactification/OnePoint.lean + theorem OnePoint.tendsto_coe_infty 2024-07-26 19:28:15 466a8e2 chore(BohrMollerup): move convexity lemmas to Analysis.Convex.Function (#15031) Addresses a porting TODO ESTIMATED CHANGES Modified Mathlib/Analysis/Convex/Function.lean + theorem ConcaveOn.add_const + theorem ConcaveOn.congr + theorem ConvexOn.add_const + theorem ConvexOn.congr + theorem StrictConcaveOn.add_const + theorem StrictConcaveOn.congr + theorem StrictConvexOn.add_const + theorem StrictConvexOn.congr Modified Mathlib/Analysis/SpecialFunctions/Gamma/BohrMollerup.lean - theorem ConcaveOn.add_const - theorem ConcaveOn.congr - theorem ConvexOn.add_const - theorem ConvexOn.congr - theorem StrictConcaveOn.add_const - theorem StrictConcaveOn.congr - theorem StrictConvexOn.add_const - theorem StrictConvexOn.congr 2024-07-26 17:44:33 fd199c5 chore: create `Analysis.CstarAlgebra` folder (#15165) ESTIMATED CHANGES Modified Mathlib.lean Renamed Mathlib/Analysis/NormedSpace/Star/Basic.lean to Mathlib/Analysis/CstarAlgebra/Basic.lean Renamed Mathlib/Analysis/NormedSpace/Star/ContinuousFunctionalCalculus.lean to Mathlib/Analysis/CstarAlgebra/ContinuousFunctionalCalculus/Basic.lean Renamed Mathlib/Analysis/NormedSpace/Star/ContinuousFunctionalCalculus/Instances.lean to Mathlib/Analysis/CstarAlgebra/ContinuousFunctionalCalculus/Instances.lean Renamed Mathlib/Topology/ContinuousFunction/NonUnitalFunctionalCalculus.lean to Mathlib/Analysis/CstarAlgebra/ContinuousFunctionalCalculus/NonUnital.lean Renamed Mathlib/Analysis/NormedSpace/Star/ContinuousFunctionalCalculus/Order.lean to Mathlib/Analysis/CstarAlgebra/ContinuousFunctionalCalculus/Order.lean Renamed Mathlib/Analysis/NormedSpace/Star/ContinuousFunctionalCalculus/Restrict.lean to Mathlib/Analysis/CstarAlgebra/ContinuousFunctionalCalculus/Restrict.lean Renamed Mathlib/Topology/ContinuousFunction/UniqueCFC.lean to Mathlib/Analysis/CstarAlgebra/ContinuousFunctionalCalculus/Unique.lean Renamed Mathlib/Topology/ContinuousFunction/FunctionalCalculus.lean to Mathlib/Analysis/CstarAlgebra/ContinuousFunctionalCalculus/Unital.lean Renamed Mathlib/Analysis/NormedSpace/Star/ContinuousFunctionalCalculus/Unitary.lean to Mathlib/Analysis/CstarAlgebra/ContinuousFunctionalCalculus/Unitary.lean Renamed Mathlib/Analysis/NormedSpace/Star/Exponential.lean to Mathlib/Analysis/CstarAlgebra/Exponential.lean Renamed Mathlib/Analysis/NormedSpace/Star/GelfandDuality.lean to Mathlib/Analysis/CstarAlgebra/GelfandDuality.lean Renamed Mathlib/Analysis/NormedSpace/Star/Matrix.lean to Mathlib/Analysis/CstarAlgebra/Matrix.lean Renamed Mathlib/Analysis/NormedSpace/Star/Multiplier.lean to Mathlib/Analysis/CstarAlgebra/Multiplier.lean Renamed Mathlib/Analysis/NormedSpace/Star/Spectrum.lean to Mathlib/Analysis/CstarAlgebra/Spectrum.lean Renamed Mathlib/Analysis/NormedSpace/Star/Unitization.lean to Mathlib/Analysis/CstarAlgebra/Unitization.lean Modified Mathlib/Analysis/Matrix.lean Modified Mathlib/Analysis/RCLike/Basic.lean Modified Mathlib/Analysis/SpecialFunctions/ContinuousFunctionalCalculus/ExpLog.lean Modified Mathlib/LinearAlgebra/Matrix/HermitianFunctionalCalculus.lean Modified Mathlib/LinearAlgebra/Matrix/Spectrum.lean Modified Mathlib/Topology/ContinuousFunction/Bounded.lean Modified scripts/noshake.json 2024-07-26 17:27:24 ec5a016 chore: update Mathlib dependencies 2024-07-26 (#15153) This PR updates the Mathlib dependencies. ESTIMATED CHANGES Modified lake-manifest.json 2024-07-26 16:58:01 f1c4f66 chore: move files into `Analysis.Normed.Lp` (#15166) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Analysis/InnerProductSpace/PiL2.lean Modified Mathlib/Analysis/InnerProductSpace/ProdL2.lean Modified Mathlib/Analysis/InnerProductSpace/l2Space.lean Modified Mathlib/Analysis/Matrix.lean Modified Mathlib/Analysis/Normed/Algebra/TrivSqZeroExt.lean Modified Mathlib/Analysis/Normed/Algebra/UnitizationL1.lean Renamed Mathlib/Analysis/NormedSpace/LpEquiv.lean to Mathlib/Analysis/Normed/Lp/LpEquiv.lean Renamed Mathlib/Analysis/NormedSpace/PiLp.lean to Mathlib/Analysis/Normed/Lp/PiLp.lean Renamed Mathlib/Analysis/NormedSpace/ProdLp.lean to Mathlib/Analysis/Normed/Lp/ProdLp.lean Renamed Mathlib/Analysis/NormedSpace/WithLp.lean to Mathlib/Analysis/Normed/Lp/WithLp.lean Renamed Mathlib/Analysis/NormedSpace/lpSpace.lean to Mathlib/Analysis/Normed/Lp/lpSpace.lean Modified Mathlib/Topology/MetricSpace/Kuratowski.lean 2024-07-26 16:47:28 6841e1d feat(CategoryTheory/Sites): definition of Mayer-Vietoris squares (#14959) This PR introduces the very basic definitions of Mayer-Vietoris squares. It shall be expanded in future PRs towards the construction of Mayer-Vietoris long exact sequences in sheaf cohomology. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Sites/MayerVietorisSquare.lean + structure CategoryTheory.GrothendieckTopology.MayerVietorisSquare Modified Mathlib/CategoryTheory/Square.lean + def CategoryTheory.Functor.mapSquare + def CategoryTheory.Square.map 2024-07-26 16:19:06 5f8040b chore: move `NormedSpace.Units` into `Normed.Ring` (#15163) ESTIMATED CHANGES Modified Mathlib.lean Renamed Mathlib/Analysis/NormedSpace/Units.lean to Mathlib/Analysis/Normed/Ring/Units.lean Modified Mathlib/Analysis/NormedSpace/BoundedLinearMaps.lean Modified Mathlib/Topology/ContinuousFunction/Ideals.lean Modified Mathlib/Topology/ContinuousFunction/Units.lean 2024-07-26 14:49:49 885c8b7 chore(Algebra/Module/Equiv): clean and golf (#15151) ESTIMATED CHANGES Modified Mathlib/Algebra/Module/Equiv/Basic.lean +/- theorem AddEquiv.toNatLinearEquiv_toAddEquiv Modified Mathlib/Algebra/Module/Equiv/Defs.lean +/- def LinearEquiv.toEquiv 2024-07-26 14:39:07 624027c chore: remove placeholder files (#15128) These were only created to mark the corresponding mathlib3 files as ported, and can safely be deleted now. ESTIMATED CHANGES Modified Mathlib.lean Deleted Mathlib/Data/Nat/PrimeNormNum.lean Deleted Mathlib/MeasureTheory/Tactic.lean Deleted Mathlib/Topology/Tactic.lean Modified test/measurability.lean 2024-07-26 12:50:24 ad0a80b refactor: Extract predicate for conditional kernels (#15105) Sometimes conditional kernels exist "by chance" and the existing `Measure.condKernel` and `Kernel.condKernel` definitions fail to capture this. This PR extracts the disintegration property of conditional kernels into two Prop-valued typeclasses `Measure.IsCondKernel` and `Kernel.IsCondKernel`. [Zulip](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/github.20permission/near/453644387) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Probability/Kernel/Basic.lean + theorem ProbabilityTheory.Kernel.apply_congr_of_mem_measurableAtom + theorem ProbabilityTheory.Kernel.isSFiniteKernel_const Modified Mathlib/Probability/Kernel/Composition.lean + theorem ProbabilityTheory.Kernel.isSFiniteKernel_prodMkLeft_unit + theorem ProbabilityTheory.Kernel.isSFiniteKernel_prodMkRight_unit Added Mathlib/Probability/Kernel/Disintegration/Basic.lean + theorem MeasureTheory.Measure.IsCondKernel.apply_of_ne_zero + theorem MeasureTheory.Measure.IsCondKernel.isMarkovKernel + theorem MeasureTheory.Measure.IsCondKernel.isProbabilityMeasure + theorem MeasureTheory.Measure.IsCondKernel.isSFiniteKernel + theorem MeasureTheory.Measure.disintegrate + theorem ProbabilityTheory.Kernel.condKernelCountable_apply + theorem ProbabilityTheory.Kernel.disintegrate Modified Mathlib/Probability/Kernel/Disintegration/Integral.lean Modified Mathlib/Probability/Kernel/Disintegration/StandardBorel.lean +/- theorem ProbabilityTheory.Kernel.compProd_fst_condKernel - def ProbabilityTheory.Kernel.condKernelCountable - theorem ProbabilityTheory.Kernel.condKernelCountable_apply +/- def ProbabilityTheory.Kernel.condKernelUnitBorel Modified Mathlib/Probability/Kernel/Disintegration/Unique.lean Modified Mathlib/Probability/Kernel/MeasureCompProd.lean + theorem MeasureTheory.Measure.compProd_of_not_isSFiniteKernel + theorem MeasureTheory.Measure.compProd_of_not_sfinite 2024-07-26 12:50:22 0856a51 chore: bump ProofWidgets4 to v0.0.40 (#15100) ESTIMATED CHANGES Modified lake-manifest.json Modified lakefile.lean 2024-07-26 11:21:57 7f05fec feat({Algebra/BigOperators,Combinatorics/SimpleGraph}): Odd cardinality of odd components (#14623) Added lemma to prove a graph on an odd number of nodes has an odd number of odd components, including supporting lemmas. In preparation for Tuttes theorem ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/BigOperators/Ring/Nat.lean + theorem Finset.even_sum_iff_even_card_odd + theorem Finset.odd_sum_iff_odd_card_odd Modified Mathlib/Combinatorics/SimpleGraph/Connectivity.lean + theorem SimpleGraph.iUnion_connectedComponentSupp + theorem SimpleGraph.pairwise_disjoint_supp_connectedComponent Modified Mathlib/Combinatorics/SimpleGraph/Connectivity/WalkCounting.lean + theorem SimpleGraph.odd_card_iff_odd_components Modified Mathlib/Combinatorics/SimpleGraph/Triangle/Basic.lean Modified Mathlib/Data/Set/Finite.lean + theorem Set.toFinset_iUnion 2024-07-26 10:22:05 75defd2 feat(RingTheory): Surjective on stalks ring homomorphisms. (#14377) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/AlgebraicGeometry/PrimeSpectrum/TensorProduct.lean + theorem PrimeSpectrum.continuous_tensorProductTo + theorem PrimeSpectrum.embedding_tensorProductTo_of_surjectiveOnStalks + theorem PrimeSpectrum.embedding_tensorProductTo_of_surjectiveOnStalks_aux + def PrimeSpectrum.tensorProductTo Added Mathlib/RingTheory/SurjectiveOnStalks.lean + theorem RingHom.SurjectiveOnStalks.baseChange + theorem RingHom.SurjectiveOnStalks.comp + theorem RingHom.SurjectiveOnStalks.exists_mul_eq_tmul + theorem RingHom.SurjectiveOnStalks.of_comp + def RingHom.SurjectiveOnStalks + theorem RingHom.surjectiveOnStalks_iff_forall_ideal + theorem RingHom.surjectiveOnStalks_iff_forall_maximal' + theorem RingHom.surjectiveOnStalks_iff_forall_maximal + theorem RingHom.surjectiveOnStalks_iff_of_isLocalRingHom + theorem RingHom.surjectiveOnStalks_of_exists_div + theorem RingHom.surjectiveOnStalks_of_isLocalization + theorem RingHom.surjectiveOnStalks_of_surjective + theorem RingHom.surjective_localRingHom_iff Modified Mathlib/Topology/Sets/Opens.lean + theorem TopologicalSpace.Opens.IsBasis.le_iff 2024-07-26 09:14:00 3f89457 doc: Forgotten capital letter (#15159) A capital letter was missing at the beginning of a sentence. ESTIMATED CHANGES Modified Mathlib/MeasureTheory/SetAlgebra.lean 2024-07-26 09:13:58 918df05 chore: robustifying for debug.byAsSorry (part 9) (#15150) See [zulip](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/Running.20Mathlib.20under.20.60set_option.20debug.2EbyAsSorry.60). ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/Basic.lean +/- def LinearEquiv.extendScalarsOfSurjective +/- def LinearMap.extendScalarsOfSurjectiveEquiv Modified Mathlib/Algebra/Algebra/Subalgebra/Directed.lean +/- theorem Subalgebra.coe_iSup_of_directed Modified Mathlib/Algebra/MonoidAlgebra/Basic.lean +/- def MonoidAlgebra.equivariantOfLinearOfComm Modified Mathlib/Analysis/Convex/Basic.lean Modified Mathlib/CategoryTheory/GradedObject/Unitor.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Biproducts.lean Modified Mathlib/CategoryTheory/Sites/Canonical.lean +/- def CategoryTheory.Sheaf.Subcanonical.yoneda Modified Mathlib/CategoryTheory/Sites/Continuous.lean +/- theorem CategoryTheory.Functor.isContinuous_of_preservesOneHypercovers Modified Mathlib/CategoryTheory/Sites/CoversTop.lean +/- theorem CategoryTheory.Presheaf.FamilyOfElementsOnObjects.IsCompatible.exists_unique_section +/- theorem CategoryTheory.Presheaf.FamilyOfElementsOnObjects.IsCompatible.familyOfElements_apply +/- theorem CategoryTheory.Presheaf.FamilyOfElementsOnObjects.IsCompatible.familyOfElements_isCompatible Modified Mathlib/CategoryTheory/Sites/Localization.lean +/- theorem CategoryTheory.GrothendieckTopology.W_adj_unit_app +/- theorem CategoryTheory.GrothendieckTopology.W_eq_inverseImage_isomorphisms_of_adjunction +/- theorem CategoryTheory.GrothendieckTopology.W_iff_isIso_map_of_adjunction Modified Mathlib/Combinatorics/SimpleGraph/Turan.lean +/- theorem SimpleGraph.IsTuranMaximal.degree_eq_of_not_adj +/- theorem SimpleGraph.IsTuranMaximal.nonempty_iso_turanGraph +/- theorem SimpleGraph.IsTuranMaximal.not_adj_trans Modified Mathlib/Data/Finite/Card.lean +/- theorem Set.Finite.card_lt_card Modified Mathlib/GroupTheory/QuotientGroup.lean Modified Mathlib/Order/Filter/FilterProduct.lean Modified Mathlib/RingTheory/HahnSeries/Summable.lean Modified Mathlib/RingTheory/Ideal/Basic.lean Modified Mathlib/RingTheory/Ideal/Maps.lean +/- theorem Ideal.comap_bot_le_of_injective +/- theorem Ideal.comap_bot_of_injective +/- theorem Ideal.comap_le_iff_le_map +/- theorem Ideal.map.isMaximal +/- def Ideal.relIsoOfBijective Modified Mathlib/SetTheory/Cardinal/ToNat.lean +/- theorem Cardinal.toNat_apply_of_lt_aleph0 Modified Mathlib/SetTheory/Ordinal/Basic.lean 2024-07-26 09:01:01 15ce681 chore: move files into `Analysis.Normed.Algebra` (#15146) ESTIMATED CHANGES Modified Mathlib.lean Renamed Mathlib/Analysis/NormedSpace/Algebra.lean to Mathlib/Analysis/Normed/Algebra/Basic.lean Renamed Mathlib/Analysis/NormedSpace/Spectrum.lean to Mathlib/Analysis/Normed/Algebra/Spectrum.lean Renamed Mathlib/Analysis/NormedSpace/TrivSqZeroExt.lean to Mathlib/Analysis/Normed/Algebra/TrivSqZeroExt.lean Renamed Mathlib/Analysis/NormedSpace/Unitization.lean to Mathlib/Analysis/Normed/Algebra/Unitization.lean Renamed Mathlib/Analysis/NormedSpace/UnitizationL1.lean to Mathlib/Analysis/Normed/Algebra/UnitizationL1.lean Modified Mathlib/Analysis/NormedSpace/DualNumber.lean Modified Mathlib/Analysis/NormedSpace/Star/ContinuousFunctionalCalculus/Restrict.lean Modified Mathlib/Analysis/NormedSpace/Star/GelfandDuality.lean Modified Mathlib/Analysis/NormedSpace/Star/Spectrum.lean Modified Mathlib/Analysis/NormedSpace/Star/Unitization.lean Modified Mathlib/Analysis/SpecialFunctions/ContinuousFunctionalCalculus/ExpLog.lean Modified Mathlib/Topology/ContinuousFunction/UniqueCFC.lean 2024-07-26 08:51:02 24977e6 feat(GroupTheory): covering a group by cosets (Lemma of B. H. Neumann) (#13047) Lemma of B. H. Neumann on covering a group by finitely many cosets of subgroups. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Data/Set/Finite.lean + theorem Set.Finite.preimage' Modified Mathlib/GroupTheory/Complement.lean + theorem Subgroup.MemLeftTransversals.finite_iff + theorem Subgroup.MemRightTransversals.finite_iff Added Mathlib/GroupTheory/CosetCover.lean + theorem Subgroup.exists_finiteIndex_of_leftCoset_cover + theorem Subgroup.exists_finiteIndex_of_leftCoset_cover_aux + theorem Subgroup.exists_index_le_card_of_leftCoset_cover + theorem Subgroup.exists_leftTransversal_of_FiniteIndex + theorem Subgroup.finiteIndex_of_leftCoset_cover_const + theorem Subgroup.index_le_of_leftCoset_cover_const + theorem Subgroup.leftCoset_cover_const_iff_surjOn + theorem Subgroup.leftCoset_cover_filter_FiniteIndex + theorem Subgroup.leftCoset_cover_filter_FiniteIndex_aux + theorem Subgroup.one_le_sum_inv_index_of_leftCoset_cover + theorem Subgroup.pairwiseDisjoint_leftCoset_cover_const_of_index_eq + theorem Subgroup.pairwiseDisjoint_leftCoset_cover_of_sum_inv_index_eq_one + theorem Submodule.exists_finiteIndex_of_cover + theorem Subspace.biUnion_ne_univ_of_ne_top + theorem Subspace.exists_eq_top_of_biUnion_eq_univ Modified Mathlib/GroupTheory/Index.lean + theorem Subgroup.finiteIndex_iInf' + theorem Subgroup.finiteIndex_iInf Modified docs/references.bib 2024-07-26 08:26:56 c387e3e feat(Algebra/Homology): the canonical truncation `truncGE` (#14734) We construct the canonical truncation `truncGE` of homological complexes relative to an embedding `e` of complex shapes which satisfies `e.IsTruncGE`. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Homology/Embedding/Boundary.lean - theorem ComplexShape.Embedding.BoundaryGE.false + theorem ComplexShape.Embedding.BoundaryGE.false_of_isTruncLE - theorem ComplexShape.Embedding.BoundaryLE.false + theorem ComplexShape.Embedding.BoundaryLE.false_of_isTruncGE Added Mathlib/Algebra/Homology/Embedding/TruncGE.lean + theorem HomologicalComplex.truncGE'.d_comp_d + theorem HomologicalComplex.truncGE'_d_eq + theorem HomologicalComplex.truncGE'_d_eq_fromOpcycles 2024-07-26 07:34:26 8ebaa76 feat(CategoryTheory/Limits): a pullback cone is limit iff it is so after the application of coyoneda.obj (#15157) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Limits/Preserves/Shapes/Pullbacks.lean + def CategoryTheory.Limits.PullbackCone.isLimitCoyonedaEquiv + def CategoryTheory.Limits.PullbackCone.isLimitMapConeEquiv + def CategoryTheory.Limits.PushoutCocone.isColimitMapCoconeEquiv + def CategoryTheory.Limits.PushoutCocone.isColimitYonedaEquiv Modified Mathlib/CategoryTheory/Limits/Yoneda.lean 2024-07-26 02:02:26 19a1471 chore: robustifying for debug.byAsSorry (part 5) (#15126) ESTIMATED CHANGES Modified Mathlib/Algebra/Order/CauSeq/Completion.lean +/- theorem CauSeq.Completion.inv_mk Modified Mathlib/CategoryTheory/Filtered/Basic.lean Modified Mathlib/CategoryTheory/Functor/KanExtension/Pointwise.lean +/- theorem CategoryTheory.Functor.LeftExtension.IsPointwiseLeftKanExtension.hom_ext +/- theorem CategoryTheory.Functor.RightExtension.IsPointwiseRightKanExtension.hom_ext Modified Mathlib/CategoryTheory/Limits/Constructions/FiniteProductsOfBinaryProducts.lean +/- theorem CategoryTheory.hasFiniteCoproducts_of_has_binary_and_initial +/- theorem CategoryTheory.hasFiniteProducts_of_has_binary_and_terminal Modified Mathlib/CategoryTheory/Limits/Constructions/LimitsOfProductsAndEqualizers.lean +/- def CategoryTheory.Limits.HasColimitOfHasCoproductsOfHasCoequalizers.buildColimit +/- def CategoryTheory.Limits.HasLimitOfHasProductsOfHasEqualizers.buildLimit Modified Mathlib/CategoryTheory/Limits/Constructions/Over/Products.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Pullback/Mono.lean Modified Mathlib/CategoryTheory/SmallObject/Construction.lean Modified Mathlib/Computability/Reduce.lean Modified Mathlib/Data/Set/Finite.lean Modified Mathlib/GroupTheory/Subgroup/Center.lean Modified Mathlib/Order/SuccPred/Basic.lean Modified Mathlib/RingTheory/Coprime/Basic.lean +/- theorem IsRelPrime.add_mul_left_left Modified Mathlib/Tactic/NormNum/OfScientific.lean 2024-07-26 01:01:55 8b4366d chore: robustifying for debug.byAsSorry (part 4) (#15125) ESTIMATED CHANGES Modified Mathlib/Algebra/CharZero/Lemmas.lean Modified Mathlib/Algebra/Field/Rat.lean Modified Mathlib/Algebra/Group/Subgroup/Basic.lean +/- theorem Subgroup.Normal.conj_mem' +/- theorem Subgroup.Normal.mem_comm +/- theorem Subgroup.Normal.mem_comm_iff Modified Mathlib/Algebra/Module/LinearMap/Defs.lean +/- def LinearMap.comp Modified Mathlib/Algebra/Order/Pi.lean Modified Mathlib/Algebra/Regular/SMul.lean Modified Mathlib/CategoryTheory/Functor/FullyFaithful.lean +/- theorem CategoryTheory.Functor.FullyFaithful.isIso_of_isIso_map Modified Mathlib/Computability/Partrec.lean Modified Mathlib/Data/Finset/PiInduction.lean Modified Mathlib/Data/Set/Finite.lean Modified Mathlib/GroupTheory/Congruence/Basic.lean Modified Mathlib/GroupTheory/Perm/List.lean Modified Mathlib/RingTheory/OreLocalization/Basic.lean +/- def OreLocalization.universalMulHom 2024-07-26 00:02:25 f8ffcfb chore: split `Topology.Connected.Basic` (#15144) This splits `Topology.Connected.Basic` approximately in half, into `Basic` and `Clopen`. This removes the `Mathlib.Topology.Clopen` import from `Basic`, and allows for one more file import from #14927 in the `Clopen` file. As far as declaration order goes, only the first 5 results in `Clopen` were moved "down" into the `Clopen` file, and only the last 4 results in `Basic` were moved "up" into the `Basic` file. Otherwise no changes except for new module documentation were made. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Topology/Connected/Basic.lean - theorem ConnectedComponents.coe_eq_coe' - theorem ConnectedComponents.coe_eq_coe - theorem ConnectedComponents.coe_ne_coe - theorem ConnectedComponents.continuous_coe - def ConnectedComponents.mk - theorem ConnectedComponents.quotientMap_coe - theorem ConnectedComponents.range_coe - theorem ConnectedComponents.surjective_coe - def ConnectedComponents - theorem Continuous.exists_lift_sigma - theorem IsClopen.biUnion_connectedComponent_eq - theorem IsClopen.connectedComponent_subset - theorem IsClopen.eq_univ - theorem IsPreconnected.induction₂' - theorem IsPreconnected.induction₂ - theorem IsPreconnected.subset_isClopen - theorem PreconnectedSpace.induction₂' - theorem PreconnectedSpace.induction₂ - theorem QuotientMap.image_connectedComponent - theorem QuotientMap.preimage_connectedComponent - theorem Sigma.isConnected_iff - theorem Sigma.isPreconnected_iff - theorem Sum.isConnected_iff - theorem Sum.isPreconnected_iff - def connectedComponentSetoid - theorem connectedComponent_subset_iInter_isClopen - theorem connectedComponents_preimage_image - theorem connectedComponents_preimage_singleton - theorem disjoint_or_subset_of_isClopen - theorem frontier_eq_empty_iff - theorem isClopen_iff - theorem isConnected_iff_sUnion_disjoint_open - theorem isPreconnected_iff_subset_of_disjoint - theorem isPreconnected_iff_subset_of_disjoint_closed - theorem isPreconnected_iff_subset_of_fully_disjoint_closed - theorem isPreconnected_of_forall_constant - theorem nonempty_frontier_iff - theorem nonempty_inter - theorem preconnectedSpace_of_forall_constant - theorem preimage_connectedComponent_connected - theorem subsingleton_of_disjoint_isClopen - theorem subsingleton_of_disjoint_isClosed_iUnion_eq_univ - theorem subsingleton_of_disjoint_isOpen_iUnion_eq_univ Added Mathlib/Topology/Connected/Clopen.lean + theorem ConnectedComponents.coe_eq_coe' + theorem ConnectedComponents.coe_eq_coe + theorem ConnectedComponents.coe_ne_coe + theorem ConnectedComponents.continuous_coe + def ConnectedComponents.mk + theorem ConnectedComponents.quotientMap_coe + theorem ConnectedComponents.range_coe + theorem ConnectedComponents.surjective_coe + def ConnectedComponents + theorem Continuous.exists_lift_sigma + theorem IsClopen.biUnion_connectedComponent_eq + theorem IsClopen.connectedComponent_subset + theorem IsClopen.eq_univ + theorem IsPreconnected.induction₂' + theorem IsPreconnected.induction₂ + theorem IsPreconnected.subset_isClopen + theorem PreconnectedSpace.induction₂' + theorem PreconnectedSpace.induction₂ + theorem QuotientMap.image_connectedComponent + theorem QuotientMap.preimage_connectedComponent + theorem Sigma.isConnected_iff + theorem Sigma.isPreconnected_iff + theorem Sum.isConnected_iff + theorem Sum.isPreconnected_iff + def connectedComponentSetoid + theorem connectedComponent_subset_iInter_isClopen + theorem connectedComponents_preimage_image + theorem connectedComponents_preimage_singleton + theorem disjoint_or_subset_of_isClopen + theorem frontier_eq_empty_iff + theorem isClopen_iff + theorem isConnected_iff_sUnion_disjoint_open + theorem isPreconnected_iff_subset_of_disjoint + theorem isPreconnected_iff_subset_of_disjoint_closed + theorem isPreconnected_iff_subset_of_fully_disjoint_closed + theorem isPreconnected_of_forall_constant + theorem nonempty_frontier_iff + theorem nonempty_inter + theorem preconnectedSpace_of_forall_constant + theorem preimage_connectedComponent_connected + theorem subsingleton_of_disjoint_isClopen + theorem subsingleton_of_disjoint_isClosed_iUnion_eq_univ + theorem subsingleton_of_disjoint_isOpen_iUnion_eq_univ Modified Mathlib/Topology/Connected/TotallyDisconnected.lean 2024-07-25 23:15:22 7a175e0 chore: enable workflow_dispatch for nightly_bump_toolchain (#15143) ESTIMATED CHANGES Modified .github/workflows/nightly_bump_toolchain.yml 2024-07-25 23:15:21 4461307 chore: bump nightly toolchain more often (#15142) ESTIMATED CHANGES Modified .github/workflows/nightly_bump_toolchain.yml 2024-07-25 23:15:20 812755d Chore: robustifying for debug.byAsSorry (part 7) (#15137) cf #15126 and #15133 ESTIMATED CHANGES Modified Mathlib/Algebra/BigOperators/Associated.lean +/- theorem Prime.exists_mem_finset_dvd +/- theorem Prime.exists_mem_multiset_dvd +/- theorem Prime.exists_mem_multiset_map_dvd Modified Mathlib/Algebra/Module/LinearMap/End.lean Modified Mathlib/Algebra/Order/Module/Defs.lean +/- theorem PosSMulMono.lift +/- theorem PosSMulReflectLE.lift +/- theorem PosSMulReflectLT.lift +/- theorem PosSMulStrictMono.lift +/- theorem SMulPosMono.lift +/- theorem SMulPosReflectLE.lift +/- theorem SMulPosReflectLT.lift +/- theorem SMulPosStrictMono.lift Modified Mathlib/Algebra/Ring/Divisibility/Lemmas.lean +/- theorem Commute.add_pow_dvd_pow_of_pow_eq_zero_left +/- theorem Commute.add_pow_dvd_pow_of_pow_eq_zero_right +/- theorem Commute.pow_dvd_add_pow_of_pow_eq_zero_left +/- theorem Commute.pow_dvd_add_pow_of_pow_eq_zero_right +/- theorem Commute.pow_dvd_pow_of_add_pow_eq_zero +/- theorem Commute.pow_dvd_pow_of_sub_pow_eq_zero +/- theorem Commute.pow_dvd_sub_pow_of_pow_eq_zero_left +/- theorem Commute.pow_dvd_sub_pow_of_pow_eq_zero_right Modified Mathlib/Algebra/Ring/Subring/Basic.lean Modified Mathlib/Data/Fintype/Order.lean +/- theorem Directed.finite_le +/- theorem Directed.finite_set_le Modified Mathlib/Data/Nat/PartENat.lean Modified Mathlib/Data/Real/Basic.lean Modified Mathlib/Order/BooleanGenerators.lean +/- theorem IsCompactlyGenerated.BooleanGenerators.atomistic +/- def IsCompactlyGenerated.BooleanGenerators.booleanAlgebra_of_sSup_eq_top +/- theorem IsCompactlyGenerated.BooleanGenerators.complementedLattice_of_sSup_eq_top +/- def IsCompactlyGenerated.BooleanGenerators.distribLattice_of_sSup_eq_top +/- theorem IsCompactlyGenerated.BooleanGenerators.eq_atoms_of_sSup_eq_top +/- theorem IsCompactlyGenerated.BooleanGenerators.isAtomistic_of_sSup_eq_top +/- theorem IsCompactlyGenerated.BooleanGenerators.mem_of_isAtom_of_le_sSup_atoms +/- theorem IsCompactlyGenerated.BooleanGenerators.mono +/- theorem IsCompactlyGenerated.BooleanGenerators.sSup_inter +/- theorem IsCompactlyGenerated.BooleanGenerators.sSup_le_sSup_iff_of_atoms Modified Mathlib/Order/Interval/Finset/Defs.lean +/- theorem Finset.map_subtype_embedding_Icc +/- theorem Finset.map_subtype_embedding_Ico +/- theorem Finset.map_subtype_embedding_Ioc +/- theorem Finset.map_subtype_embedding_Ioo Modified Mathlib/RingTheory/Nilpotent/Basic.lean +/- theorem Commute.add_pow_add_eq_zero_of_pow_eq_zero +/- theorem Commute.add_pow_eq_zero_of_add_le_succ_of_pow_eq_zero +/- theorem Commute.isNilpotent_add +/- theorem Commute.isNilpotent_sub 2024-07-25 23:15:19 7865b70 chore: more adaptations for debugAsSorry (#15133) ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Interval/Basic.lean Modified Mathlib/Order/Atoms.lean Modified Mathlib/Order/Interval/Finset/Nat.lean +/- theorem Nat.cauchy_induction' +/- theorem Nat.cauchy_induction_mul Modified Mathlib/Order/SuccPred/Relation.lean 2024-07-25 23:15:17 de49f39 feat(AlgebraicGeometry): Define affine morphisms (#13996) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/AlgebraicGeometry/AffineScheme.lean + theorem AlgebraicGeometry.iSup_basicOpen_of_span_eq_top Added Mathlib/AlgebraicGeometry/Morphisms/Affine.lean + def AlgebraicGeometry.affinePreimage + theorem AlgebraicGeometry.isAffineHom_stableUnderBaseChange + theorem AlgebraicGeometry.isAffineOpen.preimage + theorem AlgebraicGeometry.isAffineOpen_of_isAffineOpen_basicOpen + theorem AlgebraicGeometry.isAffineOpen_of_isAffineOpen_basicOpen_aux + theorem AlgebraicGeometry.isAffine_of_isAffineHom + theorem AlgebraicGeometry.isAffine_of_isAffineOpen_basicOpen Modified Mathlib/AlgebraicGeometry/Morphisms/QuasiSeparated.lean + theorem AlgebraicGeometry.isIso_ΓSpec_adjunction_unit_app_basicOpen Modified Mathlib/AlgebraicGeometry/PrimeSpectrum/Basic.lean + theorem PrimeSpectrum.iSup_basicOpen_eq_top_iff' + theorem PrimeSpectrum.iSup_basicOpen_eq_top_iff Modified Mathlib/RingTheory/Localization/Basic.lean 2024-07-25 22:15:44 0d37645 feat: the long line linter as a syntax linter (#15097) Tired of getting your PRs rejected by CI because of a long line? These days are over! The new `longLine` linter will highlight long lines, so your PRs will always be green! :smile: Besides adding the linter, the PR removes the code for the older `TextBased` linter and adds a few `set_option linter.longLine false`s in test files and in a single reference in `Mathlib.Data.QPF.Multivariate.Basic`. ESTIMATED CHANGES Modified Mathlib/Data/QPF/Multivariate/Basic.lean Modified Mathlib/Tactic/Linter/Lint.lean + def Mathlib.Linter.LongLine.getLinterHash + def Mathlib.Linter.LongLine.longLineLinter Modified Mathlib/Tactic/Linter/TextBased.lean - def checkFileLength Modified scripts/lint-style.py Modified scripts/style-exceptions.txt Modified test/Lint.lean Modified test/RewriteSearch/Basic.lean Modified test/cancel_denoms.lean Modified test/fun_prop.lean Modified test/linarith.lean Modified test/polyrith.lean 2024-07-25 22:15:43 e4bd83b feat: new file `Data/List/Pi` (#5549) The new APIs replace some definitions and lemmas in `Data.FinEnum`. This PR also provides more lemmas. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Data/FinEnum.lean - def FinEnum.Pi.cons - def FinEnum.Pi.tail - theorem FinEnum.mem_pi - def FinEnum.pi.enum - theorem FinEnum.pi.mem_enum - def FinEnum.pi + def List.Pi.enum + theorem List.Pi.mem_enum + theorem List.mem_pi_toList Modified Mathlib/Data/Finset/Pi.lean Added Mathlib/Data/List/Pi.lean + def List.Pi.cons + theorem List.Pi.cons_def + theorem List.Pi.cons_eta + theorem List.Pi.cons_map + theorem List.Pi.forall_rel_cons_ext + def List.Pi.head + def List.Pi.nil + def List.Pi.tail + theorem List.mem_pi + def List.pi + theorem List.pi_cons + theorem List.pi_nil + theorem Multiset.Pi.cons_coe + theorem Multiset.pi_coe Modified Mathlib/Data/Multiset/Pi.lean +/- def Multiset.Pi.cons + theorem Multiset.Pi.cons_eta +/- theorem Multiset.Pi.cons_injective + theorem Multiset.Pi.cons_map +/- theorem Multiset.Pi.cons_ne +/- theorem Multiset.Pi.cons_same +/- theorem Multiset.Pi.cons_swap +/- def Multiset.Pi.empty + theorem Multiset.Pi.forall_rel_cons_ext - theorem Multiset.pi.cons_eta 2024-07-25 21:15:11 5dcc88e chore: make `#where` command commonly available again (#15139) ESTIMATED CHANGES Modified Mathlib/Tactic/Common.lean 2024-07-25 20:13:49 9a79e43 refactor(CategoryTheory/Sites): Allow non-fully-faithful dense subsites. (#15056) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Sites/Coherent/SheafComparison.lean Modified Mathlib/CategoryTheory/Sites/DenseSubsite.lean + theorem CategoryTheory.Functor.IsCoverDense.Types.naturality + theorem CategoryTheory.Functor.IsCoverDense.Types.naturality_apply +/- theorem CategoryTheory.Functor.IsCoverDense.compatiblePreserving +/- theorem CategoryTheory.Functor.IsCoverDense.functorPullback_pushforward_covering +/- theorem CategoryTheory.Functor.IsCoverDense.isContinuous + theorem CategoryTheory.Functor.IsDenseSubsite.coverPreserving + theorem CategoryTheory.Functor.IsDenseSubsite.equalizer_mem + theorem CategoryTheory.Functor.IsDenseSubsite.imageSieve_mem + theorem CategoryTheory.Functor.IsDenseSubsite.isCoverDense + theorem CategoryTheory.Functor.IsDenseSubsite.isIso_ranCounit_app_of_isDenseSubsite + theorem CategoryTheory.Functor.IsDenseSubsite.isLocallyFaithful + theorem CategoryTheory.Functor.IsDenseSubsite.isLocallyFull Modified Mathlib/CategoryTheory/Sites/Discrete.lean Modified Mathlib/CategoryTheory/Sites/Equivalence.lean +/- theorem CategoryTheory.Equivalence.coverPreserving +/- theorem CategoryTheory.Equivalence.eq_inducedTopology_of_transports - theorem CategoryTheory.Equivalence.locallyCoverDense Modified Mathlib/CategoryTheory/Sites/InducedTopology.lean + def CategoryTheory.Functor.inducedTopology + theorem CategoryTheory.Functor.inducedTopology_coverPreserving - theorem CategoryTheory.Functor.locallyCoverDense_of_isCoverDense + theorem CategoryTheory.Functor.pushforward_cover_iff_cover_pullback - def CategoryTheory.LocallyCoverDense.inducedTopology - theorem CategoryTheory.LocallyCoverDense.inducedTopology_coverPreserving - theorem CategoryTheory.LocallyCoverDense.inducedTopology_isCocontinuous - theorem CategoryTheory.LocallyCoverDense.pushforward_cover_iff_cover_pullback - def CategoryTheory.LocallyCoverDense - theorem CategoryTheory.over_forget_locallyCoverDense 2024-07-25 19:55:35 9771c87 chore: update Mathlib dependencies 2024-07-25 (#15138) This PR updates the Mathlib dependencies. ESTIMATED CHANGES Modified lake-manifest.json 2024-07-25 18:06:13 63341a2 doc(BigOperators): Expand `Finset.sum` docstring (#15134) ... to mention the `∑ x, f x` notation. ESTIMATED CHANGES Modified Mathlib/Algebra/BigOperators/Group/Finset.lean 2024-07-25 17:03:12 799c0d4 feat(Analysis/Complex): If `a = ∑ i ∈ s, f i` and `b = ∑ i ∈ s, (‖f i‖ : ℂ)`, then `a ≤ b` (#15022) This is a bit of a weird statement, but it is really useful when one wants to expand `‖f i‖ = ‖g i‖ ^ 2 = g i * conj (g i)` and do further complex number manipulations. It also avoids having to prove `a = ∑ i ∈ s, f i` twice: once for showing `0 ≤ a` and once in the goal. From LeanAPAP ESTIMATED CHANGES Modified Mathlib/Analysis/Complex/Basic.lean + theorem Complex.le_of_eq_sum_of_eq_sum_norm 2024-07-25 12:14:06 cc49526 fix: `aesop_graph?` macro (#15124) `aesop_graph?` was invoking `aesop`, while it should have been invoking `aesop?`. ESTIMATED CHANGES Modified Mathlib/Combinatorics/SimpleGraph/Basic.lean 2024-07-25 11:52:16 918e1fb feat(Group/Measure): drop a `MeasurableMul` assumption (#15041) In fact, for `μ ≠ 0` the definition still implies that the multiplication is (a.e.) measurable, but Lean doesn't have to search for this instance now. ESTIMATED CHANGES Modified Mathlib/Dynamics/Ergodic/MeasurePreserving.lean + theorem MeasureTheory.MeasurePreserving.measure_preimage_equiv Modified Mathlib/MeasureTheory/Group/Measure.lean Modified Mathlib/MeasureTheory/Measure/Haar/InnerProductSpace.lean Modified Mathlib/MeasureTheory/Measure/MeasureSpace.lean + theorem MeasureTheory.Measure.measure_preimage_of_map_eq_self 2024-07-25 10:38:27 ca397b7 chore: robustifying for debug.byAsSorry (part 3) (#15120) cf #14993 and #15119 ESTIMATED CHANGES Modified Mathlib/Algebra/Associated/Basic.lean Modified Mathlib/Algebra/Field/Basic.lean Modified Mathlib/Algebra/Field/Opposite.lean Modified Mathlib/Algebra/Group/Submonoid/Operations.lean +/- def Submonoid.gciMapComap Modified Mathlib/Algebra/Order/Group/OrderIso.lean Modified Mathlib/Algebra/Order/Hom/Monoid.lean +/- theorem monotone_iff_map_nonneg +/- theorem strictMono_iff_map_pos Modified Mathlib/CategoryTheory/Category/GaloisConnection.lean Modified Mathlib/CategoryTheory/ComposableArrows.lean +/- def CategoryTheory.ComposableArrows.homMkSucc Modified Mathlib/CategoryTheory/Core.lean Modified Mathlib/CategoryTheory/FiberedCategory/HomLift.lean +/- theorem CategoryTheory.IsHomLift.codomain_eq +/- theorem CategoryTheory.IsHomLift.domain_eq Modified Mathlib/CategoryTheory/LiftingProperties/Adjunction.lean +/- def CategoryTheory.CommSq.leftAdjointLiftStructEquiv +/- theorem CategoryTheory.CommSq.left_adjoint +/- theorem CategoryTheory.CommSq.right_adjoint Modified Mathlib/Control/LawfulFix.lean +/- theorem Part.fix_eq Modified Mathlib/Data/Fintype/Card.lean Modified Mathlib/Deprecated/Group.lean Modified Mathlib/Order/Irreducible.lean 2024-07-25 09:37:45 a54cd21 chore: robustifying for debug.byAsSorry (part 2) (#15119) Followup to #14993. Hopefully these are all independently positive or neutral. These help get Mathlib compiling under `set_option debug.byAsSorry true`. ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Subsemigroup/Operations.lean +/- def Subsemigroup.gciMapComap Modified Mathlib/Algebra/Order/GroupWithZero/Canonical.lean Modified Mathlib/Algebra/Order/Monoid/Unbundled/Pow.lean Modified Mathlib/Algebra/Regular/Basic.lean Modified Mathlib/CategoryTheory/Adjunction/Basic.lean +/- def CategoryTheory.Adjunction.adjunctionOfEquivRight +/- def CategoryTheory.Adjunction.leftAdjointOfEquiv +/- def CategoryTheory.Adjunction.rightAdjointOfEquiv Modified Mathlib/CategoryTheory/Bicategory/Basic.lean Modified Mathlib/CategoryTheory/Endomorphism.lean Modified Mathlib/CategoryTheory/Quotient.lean +/- def CategoryTheory.Quotient.lift Modified Mathlib/Data/List/EditDistance/Defs.lean Modified Mathlib/Data/Multiset/Basic.lean Modified Mathlib/Order/Bounds/Basic.lean Modified Mathlib/Order/Interval/Set/Pi.lean Modified Mathlib/Order/Minimal.lean +/- theorem mem_minimals_iff Modified Mathlib/Order/ModularLattice.lean 2024-07-25 09:16:23 e0e1733 feat(Ergodic/Conservative): generalize to `NullMeasurableSet`s (#15086) - add `IsOpen.nullMeasurableSet` and `IsClosed.nullMeasurableSet`; - add `'` to the name of the field of `Conservative`; - add non-primed version that works for `NullMeasurableSet`s; - generalize other theorems in `Ergodic/Conservative` to `NullMeasurableSet`s. ESTIMATED CHANGES Modified Mathlib/Dynamics/Ergodic/Conservative.lean +/- theorem MeasureTheory.Conservative.ae_mem_imp_frequently_image_mem +/- theorem MeasureTheory.Conservative.exists_gt_measure_inter_ne_zero + theorem MeasureTheory.Conservative.exists_mem_iterate_mem +/- theorem MeasureTheory.Conservative.frequently_ae_mem_and_frequently_image_mem +/- theorem MeasureTheory.Conservative.frequently_measure_inter_ne_zero +/- theorem MeasureTheory.Conservative.inter_frequently_image_mem_ae_eq +/- theorem MeasureTheory.Conservative.measure_inter_frequently_image_mem_eq +/- theorem MeasureTheory.Conservative.measure_mem_forall_ge_image_not_mem_eq_zero Modified Mathlib/MeasureTheory/Constructions/BorelSpace/Basic.lean + theorem IsClosed.nullMeasurableSet + theorem IsOpen.nullMeasurableSet 2024-07-25 07:50:23 36582f6 chore: deprecate `sizeOf_dropSlice_lt` (#15118) As far as I can tell this lemma is not used anywhere. If it were needed somewhere, it would be better to proceed via `Sublist` in any case. As a consolation prize I've added the simpler lemma `length_dropSlice`. ESTIMATED CHANGES Modified Mathlib/Data/List/Basic.lean + theorem List.length_dropSlice + theorem List.length_dropSlice_lt 2024-07-25 07:50:22 054b1e5 feat: generalize constant 5 in Vitali covering (#15117) I would like to apply it for `\tau = 4`. ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Covering/Vitali.lean 2024-07-25 07:50:20 d89cf7a Feat(RingTheory/Flat): add localization of flat module is flat (#15023) add that localization of a flat module is flat. This contribution was created as part of the AIM workshop "Formalizing algebraic geometry" in June 2024. ESTIMATED CHANGES Modified Mathlib/RingTheory/Flat/Stability.lean + theorem Module.Flat.of_isLocalizedModule 2024-07-25 07:50:19 ec270f5 chore(Algebra/Order/GroupWithZero/Unbundled): resolving name inconsistencies (#9904) This PR allows the names to be clearly distinguished from versions that do not require positivity assumptions, but also become too long. Due to name conflicts, some similar lemmas have dissimilar names before this PR: ``` lean theorem mul_lt_mul_of_nonneg_of_pos [PosMulMono α] [MulPosStrictMono α] (h₁ : a < b) (h₂ : c ≤ d) (a0 : 0 ≤ a) (d0 : 0 < d) : a * c < b * d theorem mul_lt_mul_of_le_of_lt' [PosMulMono α] [MulPosStrictMono α] (h₁ : a < b) (h₂ : c ≤ d) (b0 : 0 ≤ b) (c0 : 0 < c) : a * c < b * d ``` | Statement | New name | Old name | | ESTIMATED CHANGES Modified Mathlib/Algebra/Order/BigOperators/Ring/Finset.lean Modified Mathlib/Algebra/Order/GroupWithZero/Unbundled.lean + theorem Left.mul_lt_mul_of_nonneg +/- theorem Left.neg_of_mul_neg_left +/- theorem Left.neg_of_mul_neg_right + theorem Right.mul_lt_mul_of_nonneg +/- theorem Right.neg_of_mul_neg_left +/- theorem Right.neg_of_mul_neg_right +/- theorem le_mul_of_le_mul_of_nonneg_left +/- theorem le_mul_of_le_mul_of_nonneg_right +/- theorem lt_mul_of_lt_mul_of_nonneg_left +/- theorem lt_mul_of_lt_mul_of_nonneg_right - theorem mul_le_mul - theorem mul_le_mul_of_le_of_le + theorem mul_le_mul_of_nonneg' + theorem mul_le_mul_of_nonneg +/- theorem mul_le_of_mul_le_of_nonneg_left +/- theorem mul_le_of_mul_le_of_nonneg_right - theorem mul_lt_mul_of_le_of_le' - theorem mul_lt_mul_of_le_of_lt' + theorem mul_lt_mul_of_le_of_lt_of_nonneg_of_pos + theorem mul_lt_mul_of_le_of_lt_of_pos_of_nonneg + theorem mul_lt_mul_of_lt_of_le_of_nonneg_of_pos + theorem mul_lt_mul_of_lt_of_le_of_pos_of_nonneg - theorem mul_lt_mul_of_lt_of_lt' - theorem mul_lt_mul_of_nonneg_of_pos + theorem mul_lt_mul_of_pos' + theorem mul_lt_mul_of_pos - theorem mul_lt_mul_of_pos_of_nonneg - theorem mul_lt_mul_of_pos_of_pos +/- theorem mul_lt_of_mul_lt_of_nonneg_left +/- theorem mul_lt_of_mul_lt_of_nonneg_right Modified Mathlib/Algebra/Order/Ring/Basic.lean Modified Mathlib/Algebra/Order/Ring/Canonical.lean Modified Mathlib/Algebra/Order/Ring/Unbundled/Basic.lean - theorem mul_lt_mul'' - theorem mul_lt_mul' - theorem mul_lt_mul - theorem neg_of_mul_neg_left - theorem neg_of_mul_neg_right Modified Mathlib/Analysis/Complex/Hadamard.lean 2024-07-25 07:39:57 a203779 feat(Topology/Sequences): preservation of sequential compactness under continuous functions (#14504) Add four lemmas about preservation of sequential compactness under (sequentially) continuous functions. [Zulip discussion](https://leanprover.zulipchat.com/#narrow/stream/217875-Is-there-code-for-X.3F/topic/Sequential.20compactness.20under.20sequentially.20cont.20functions/near/449031782) ESTIMATED CHANGES Modified Mathlib/Topology/Defs/Sequences.lean Modified Mathlib/Topology/Sequences.lean + theorem IsSeqCompact.image + theorem IsSeqCompact.range 2024-07-25 07:08:16 7eaaae5 chore(Tactic/CategoryTheory/Coherence): import non-meta coherence theorem (#15067) The definition of the coherence tactic do not require the non-meta coherence theorem, but it implicitly assumes the theorem when running the meta program. It would be confusing if the coherence tactic failed because you did import `Mathlib.Tactic.CategoryTheory.Coherence` but forgot to import `Mathlib.CategoryTheory.Monoidal.Free.Coherence`. This PR makes the first file import the second one (and similarly for the bicategory version). ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Bicategory/Adjunction.lean Modified Mathlib/CategoryTheory/Monoidal/Braided/Basic.lean Modified Mathlib/CategoryTheory/Monoidal/CoherenceLemmas.lean Modified Mathlib/CategoryTheory/Monoidal/Opposite.lean Modified Mathlib/CategoryTheory/Monoidal/Rigid/Basic.lean Modified Mathlib/Tactic/CategoryTheory/BicategoryCoherence.lean Modified Mathlib/Tactic/CategoryTheory/Coherence.lean Modified scripts/noshake.json Modified test/CategoryTheory/Coherence.lean 2024-07-25 01:10:45 daf323c feat(Data/Set/Basic, Order/RelClasses): add @[simp] to subset_refl and subset_empty_iff (#15110) As per the description. ESTIMATED CHANGES Modified Mathlib/Data/Finset/Basic.lean Modified Mathlib/Data/Set/Basic.lean Modified Mathlib/MeasureTheory/Decomposition/SignedHahn.lean Modified Mathlib/Order/Filter/CardinalInter.lean Modified Mathlib/Order/RelClasses.lean Modified Mathlib/Topology/Algebra/Group/Basic.lean 2024-07-25 00:13:12 11f1cf1 chore: long lines in tests (#15111) Hopefully, this is the last adaptation to the long line linter: it now reached the tests, so this should really be everything! ESTIMATED CHANGES Modified test/ComputeDegree.lean Modified test/FBinop.lean +/- def FBinopTests.DecSubObj.prod Modified test/LibrarySearch/basic.lean Modified test/Real.lean Modified test/RewriteSearch/Polynomial.lean Modified test/Simps.lean Modified test/apply_fun.lean Modified test/borelize.lean Modified test/congr.lean Modified test/fun_prop.lean Modified test/lift.lean Modified test/positivity.lean 2024-07-25 00:13:11 5e9604d feat(RingTheory/Idempotents): Lifting complete orthogonal idempotents along nil extensions (#14372) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/RingTheory/Idempotents.lean + theorem CompleteOrthogonalIdempotents.bijective_pi' + theorem CompleteOrthogonalIdempotents.bijective_pi + theorem CompleteOrthogonalIdempotents.equiv + theorem CompleteOrthogonalIdempotents.lift_of_isNilpotent_ker + theorem CompleteOrthogonalIdempotents.lift_of_isNilpotent_ker_aux + theorem CompleteOrthogonalIdempotents.map + theorem CompleteOrthogonalIdempotents.map_injective_iff + theorem CompleteOrthogonalIdempotents.of_isIdempotentElem + theorem CompleteOrthogonalIdempotents.of_ker_isNilpotent + theorem CompleteOrthogonalIdempotents.of_ker_isNilpotent_of_isMulCentral + theorem CompleteOrthogonalIdempotents.of_prod_one_sub + theorem CompleteOrthogonalIdempotents.of_subsingleton + theorem CompleteOrthogonalIdempotents.option + theorem CompleteOrthogonalIdempotents.pair_iff + theorem CompleteOrthogonalIdempotents.prod_one_sub + theorem CompleteOrthogonalIdempotents.single + theorem CompleteOrthogonalIdempotents.unique_iff + structure CompleteOrthogonalIdempotents + theorem OrthogonalIdempotents.embedding + theorem OrthogonalIdempotents.equiv + theorem OrthogonalIdempotents.iff_mul_eq + theorem OrthogonalIdempotents.isIdempotentElem_sum + theorem OrthogonalIdempotents.lift_of_isNilpotent_ker + theorem OrthogonalIdempotents.lift_of_isNilpotent_ker_aux + theorem OrthogonalIdempotents.map + theorem OrthogonalIdempotents.map_injective_iff + theorem OrthogonalIdempotents.mul_eq + theorem OrthogonalIdempotents.option + theorem OrthogonalIdempotents.prod_one_sub + theorem OrthogonalIdempotents.surjective_pi + theorem OrthogonalIdempotents.unique + structure OrthogonalIdempotents + theorem bijective_pi_of_isIdempotentElem + theorem eq_of_isNilpotent_sub_of_isIdempotentElem + theorem eq_of_isNilpotent_sub_of_isIdempotentElem_of_commute + theorem existsUnique_isIdempotentElem_eq_of_ker_isNilpotent + theorem exists_isIdempotentElem_eq_of_ker_isNilpotent + theorem exists_isIdempotentElem_mul_eq_zero_of_ker_isNilpotent + theorem exists_isIdempotentElem_mul_eq_zero_of_ker_isNilpotent_aux + theorem isIdempotentElem_one_sub_one_sub_pow_pow 2024-07-24 23:20:38 aa84124 chore: protect `congr_arg`'s and `congr_fun`'s (#15083) We already have `congr_arg` and `congr_fun` in the root namespace. ESTIMATED CHANGES Modified Mathlib/Algebra/Category/Grp/EpiMono.lean Modified Mathlib/Algebra/Group/Submonoid/Operations.lean Modified Mathlib/Algebra/Polynomial/DenomsClearable.lean Modified Mathlib/Algebra/Ring/Hom/Defs.lean - theorem RingHom.congr_arg - theorem RingHom.congr_fun Modified Mathlib/AlgebraicGeometry/Morphisms/RingHomProperties.lean Modified Mathlib/GroupTheory/Transfer.lean Modified Mathlib/LinearAlgebra/Alternating/Basic.lean - theorem AlternatingMap.congr_arg - theorem AlternatingMap.congr_fun Modified Mathlib/LinearAlgebra/PiTensorProduct.lean Modified Mathlib/Order/OmegaCompletePartialOrder.lean - theorem OmegaCompletePartialOrder.ContinuousHom.congr_arg - theorem OmegaCompletePartialOrder.ContinuousHom.congr_fun Modified Mathlib/Topology/Homotopy/Basic.lean - theorem ContinuousMap.Homotopy.congr_arg - theorem ContinuousMap.Homotopy.congr_fun Modified Mathlib/Topology/LocallyConstant/Basic.lean - theorem LocallyConstant.congr_arg - theorem LocallyConstant.congr_fun Modified Mathlib/Topology/MetricSpace/Dilation.lean - theorem Dilation.congr_arg - theorem Dilation.congr_fun 2024-07-24 18:12:13 43b64af fix(Tactic/Simps): Prevent `simps` from viewing `field_1` as a prefix of `field`. (#15095) Related zulip thread: https://leanprover.zulipchat.com/#narrow/stream/270676-lean4/topic/Custom.20name.20for.20projection.20in.20.60structure.20extends.60 ESTIMATED CHANGES Modified Mathlib/Tactic/Simps/Basic.lean Modified test/Simps.lean + structure UnderScoreDigit.Foo + structure UnderScoreDigit.Prod2 + structure UnderScoreDigit.Prod3 + structure UnderScoreDigit.Prod + def UnderScoreDigit.foo' + def UnderScoreDigit.foo + def UnderScoreDigit.myFoo 2024-07-24 17:37:45 b0f3a11 style: whitespace and long line (#15107) One of these was mentioned in the 100 vs 101 character lint, but I forgot about it. The shortening of the line in `Mathlib/Order/Rel/GaloisConnection.lean` was flagged by the long line linter. ESTIMATED CHANGES Modified Mathlib/Computability/AkraBazzi/AkraBazzi.lean Modified Mathlib/NumberTheory/LSeries/HurwitzZetaValues.lean Modified Mathlib/Order/Rel/GaloisConnection.lean 2024-07-24 16:47:25 465e6f3 feat(RingTheory.MvPolynomial.WeightedHomogeneous): add graded algebra structure (#14225) Given a weight `w : σ → M`, where `M` is an additive and commutative monoid, we endow the ring of multivariate polynomials `MvPolynomial σ R` with the structure of a graded algebra ESTIMATED CHANGES Modified Mathlib/Algebra/DirectSum/Basic.lean + theorem DirectSum.coeAddMonoidHom_eq_dfinsupp_sum + theorem DirectSum.finite_support + theorem DirectSum.mk_apply_of_mem + theorem DirectSum.mk_apply_of_not_mem + theorem DirectSum.support_subset Modified Mathlib/Algebra/DirectSum/Decomposition.lean Modified Mathlib/Algebra/DirectSum/Internal.lean Modified Mathlib/Algebra/DirectSum/Module.lean + theorem DirectSum.coeLinearMap_eq_dfinsupp_sum Modified Mathlib/Algebra/Lie/DirectSum.lean Modified Mathlib/Data/Finsupp/Weight.lean +/- theorem Finsupp.degree_eq_weight_one Modified Mathlib/RingTheory/AdicCompletion/Functoriality.lean Modified Mathlib/RingTheory/GradedAlgebra/Basic.lean Modified Mathlib/RingTheory/MvPolynomial/Homogeneous.lean + theorem MvPolynomial.HomogeneousSubmodule.gradedMonoid + theorem MvPolynomial.decomposition.decompose'_apply + theorem MvPolynomial.decomposition.decompose'_eq - theorem MvPolynomial.homogeneousComponent_homogeneous_polynomial + theorem MvPolynomial.homogeneousComponent_mem + theorem MvPolynomial.homogeneousComponent_of_mem + theorem MvPolynomial.totalDegree_eq_zero_iff Modified Mathlib/RingTheory/MvPolynomial/WeightedHomogeneous.lean + theorem MvPolynomial.DirectSum.coeAddMonoidHom_eq_support_sum + theorem MvPolynomial.DirectSum.coeLinearMap_eq_dfinsupp_sum + theorem MvPolynomial.DirectSum.coeLinearMap_eq_finsum + theorem MvPolynomial.WeightedHomogeneousSubmodule.gradedMonoid + def MvPolynomial.decompose' + theorem MvPolynomial.decompose'_apply + theorem MvPolynomial.weightedDecomposition.decompose'_apply + theorem MvPolynomial.weightedDecomposition.decompose'_eq + def MvPolynomial.weightedDecomposition + def MvPolynomial.weightedGradedAlgebra + theorem MvPolynomial.weightedHomogeneousComponent_directSum + theorem MvPolynomial.weightedHomogeneousComponent_eq_zero_of_not_mem + theorem MvPolynomial.weightedHomogeneousComponent_of_isWeightedHomogeneous_ne + theorem MvPolynomial.weightedHomogeneousComponent_of_isWeightedHomogeneous_same + theorem MvPolynomial.weightedHomogeneousComponent_of_mem - theorem MvPolynomial.weightedHomogeneousComponent_weighted_homogeneous_polynomial 2024-07-24 16:32:03 cfb75f6 chore: move `PartialOrder` on `PrimeSpectrum` to `RingTheory`. (#15108) ESTIMATED CHANGES Modified Mathlib/AlgebraicGeometry/PrimeSpectrum/Basic.lean - theorem PrimeSpectrum.asIdeal_le_asIdeal - theorem PrimeSpectrum.asIdeal_lt_asIdeal Modified Mathlib/RingTheory/PrimeSpectrum.lean + theorem PrimeSpectrum.asIdeal_le_asIdeal + theorem PrimeSpectrum.asIdeal_lt_asIdeal Modified Mathlib/RingTheory/Valuation/ValuationSubring.lean 2024-07-24 15:28:29 600a4fc perf(PiTensorProduct/InjectiveSeminorm): squeeze slow simp (#15102) Find using the 'flexible tactics' linter, but this fix is independently useful. Speeds up a simp from 4 to 0.1 seconds. ESTIMATED CHANGES Modified Mathlib/Analysis/NormedSpace/PiTensorProduct/InjectiveSeminorm.lean 2024-07-24 15:28:28 894061c chore: fix some non-flexible simps (#15101) Found by the "flexible tactics" linter in #11821: all simp`s changed are non-terminal in the sense of the linter. Yet, all of the fixes seem like neutral or improvements to me. ESTIMATED CHANGES Modified Mathlib/Algebra/Category/Ring/Constructions.lean Modified Mathlib/Algebra/FreeAlgebra.lean Modified Mathlib/Analysis/Calculus/ContDiff/Basic.lean Modified Mathlib/Analysis/Calculus/Deriv/Slope.lean Modified Mathlib/Analysis/Calculus/ParametricIntegral.lean Modified Mathlib/Analysis/Distribution/SchwartzSpace.lean Modified Mathlib/Analysis/FunctionalSpaces/SobolevInequality.lean Modified Mathlib/Analysis/InnerProductSpace/NormPow.lean Modified Mathlib/Analysis/InnerProductSpace/PiL2.lean Modified Mathlib/Analysis/Matrix.lean Modified Mathlib/Analysis/Normed/Field/Basic.lean Modified Mathlib/Analysis/NormedSpace/WeakOperatorTopology.lean Modified Mathlib/CategoryTheory/Preadditive/HomOrthogonal.lean Modified Mathlib/CategoryTheory/Sites/Coherent/LocallySurjective.lean Modified Mathlib/Data/List/Perm.lean Modified Mathlib/Data/Nat/Pairing.lean Modified Mathlib/Data/Real/Cardinality.lean Modified Mathlib/Geometry/Manifold/Instances/Sphere.lean Modified Mathlib/GroupTheory/Coset.lean Modified Mathlib/MeasureTheory/Function/LpSeminorm/TriangleInequality.lean Modified Mathlib/MeasureTheory/Function/LpSpace.lean Modified Mathlib/MeasureTheory/Function/SimpleFuncDenseLp.lean Modified Mathlib/MeasureTheory/Function/UnifTight.lean Modified Mathlib/MeasureTheory/Integral/Marginal.lean Modified Mathlib/MeasureTheory/Integral/MeanInequalities.lean Modified Mathlib/MeasureTheory/OuterMeasure/Induced.lean Modified Mathlib/MeasureTheory/OuterMeasure/Operations.lean Modified Mathlib/MeasureTheory/SetAlgebra.lean Modified Mathlib/NumberTheory/Dioph.lean Modified Mathlib/NumberTheory/NumberField/CanonicalEmbedding/ConvexBody.lean Modified Mathlib/NumberTheory/Padics/PadicNumbers.lean Modified Mathlib/NumberTheory/PellMatiyasevic.lean Modified Mathlib/Order/Filter/Cocardinal.lean Modified Mathlib/Order/Filter/Partial.lean Modified Mathlib/Order/OmegaCompletePartialOrder.lean Modified Mathlib/RingTheory/Generators.lean Modified Mathlib/RingTheory/TensorProduct/MvPolynomial.lean Modified Mathlib/SetTheory/Ordinal/Notation.lean Modified Mathlib/Topology/Category/Profinite/Nobeling.lean Modified Mathlib/Topology/MetricSpace/Closeds.lean Modified Mathlib/Topology/MetricSpace/PiNat.lean Modified Mathlib/Topology/Semicontinuous.lean Modified Mathlib/Topology/UniformSpace/Completion.lean 2024-07-24 14:53:57 df91bcc fix: shorten lines with 101 characters (#15104) Found by the long line syntax linter at #15097. ESTIMATED CHANGES Modified Mathlib/Algebra/ContinuedFractions/Computation/TerminatesIffRat.lean Modified Mathlib/Algebra/ContinuedFractions/Computation/Translations.lean Modified Mathlib/AlgebraicGeometry/AffineScheme.lean +/- theorem AlgebraicGeometry.Scheme.toΓSpec_image_zeroLocus_eq_of_isAffine Modified Mathlib/Analysis/NormedSpace/PiLp.lean Modified Mathlib/Analysis/NormedSpace/WeakOperatorTopology.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Diagonal.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Pullback/PullbackCone.lean Modified Mathlib/CategoryTheory/Limits/VanKampen.lean Modified Mathlib/CategoryTheory/Monad/Equalizer.lean +/- def CategoryTheory.Comonad.CofreeEqualizer.bottomMap Modified Mathlib/Computability/AkraBazzi/AkraBazzi.lean Modified Mathlib/Data/Finset/SMulAntidiagonal.lean +/- theorem Set.IsPWO.smul Modified Mathlib/Data/Matroid/Map.lean Modified Mathlib/FieldTheory/Galois.lean +/- theorem IsGalois.tfae Modified Mathlib/LinearAlgebra/AffineSpace/AffineEquiv.lean +/- theorem AffineEquiv.injective_pointReflection_left_of_injective_bit0 Modified Mathlib/LinearAlgebra/Matrix/SesquilinearForm.lean Modified Mathlib/LinearAlgebra/QuadraticForm/IsometryEquiv.lean Modified Mathlib/MeasureTheory/Function/Intersectivity.lean Modified Mathlib/MeasureTheory/Order/UpperLower.lean Modified Mathlib/NumberTheory/LSeries/HurwitzZetaValues.lean Modified Mathlib/RingTheory/AlgebraTower.lean + def Basis.smulTower Modified Mathlib/RingTheory/HahnSeries/Summable.lean Modified Mathlib/RingTheory/Smooth/StandardSmooth.lean Modified Mathlib/RingTheory/WittVector/Frobenius.lean Modified Mathlib/RingTheory/WittVector/WittPolynomial.lean Modified Mathlib/Topology/Homotopy/Product.lean 2024-07-24 14:53:56 afa017b chore(Kernel/Disintegration): Rename `Basic` to `StandardBorel` (#15103) We will soon add a new `Basic` file. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Probability/Kernel/Disintegration/Integral.lean Renamed Mathlib/Probability/Kernel/Disintegration/Basic.lean to Mathlib/Probability/Kernel/Disintegration/StandardBorel.lean 2024-07-24 14:53:55 83f4ae4 fix: parse header in `minImports` to improve reports (#15081) When reporting the summary of import changes, the `minImports` linter was using a text-based heuristic to determine the imports. Kyle explained how to get exact syntax information for the header and this PR uses that for error reporting. Note that there is no change to the linter, other than in how the report is printed. ESTIMATED CHANGES Modified Mathlib/Tactic/Linter/MinImports.lean 2024-07-24 14:53:53 c921ad4 feat: the Galois connection induced by an arbitrary relation (#14908) Define a Galois connection from an arbitrary relation and prove this induces inverse bijections between two sets of fixed points. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Order/Rel/GaloisConnection.lean + def Rel.equivFixedPoints + theorem Rel.gc_leftDual_rightDual + def Rel.leftDual + theorem Rel.leftDual_mem_rightFixedPoint + theorem Rel.leftDual_rightDual_le_of_le + def Rel.leftFixedPoints + def Rel.rightDual + theorem Rel.rightDual_leftDual_le_of_le + theorem Rel.rightDual_mem_leftFixedPoint + def Rel.rightFixedPoints 2024-07-24 14:17:21 b0acd6e feat(ZMod): Simple lemmas (#15076) From LeanAPAP ESTIMATED CHANGES Modified Mathlib/Data/ZMod/Basic.lean +/- theorem ZMod.coe_intCast + theorem ZMod.intCast_cast_add + theorem ZMod.intCast_cast_mul + theorem ZMod.intCast_cast_neg + theorem ZMod.intCast_cast_sub + theorem ZMod.lift_injective + theorem ZMod.mul_val_inv + theorem ZMod.val_inv_mul + theorem ZMod.val_one'' + theorem nsmul_zmod_val_inv_nsmul + theorem pow_pow_zmod_val_inv + theorem pow_zmod_val_inv_pow + theorem zmod_val_inv_nsmul_nsmul 2024-07-24 13:07:00 bbbb785 chore: address `elab_as_elim` workarounds (#15091) There were a number of places that eliminator elaboration was suppressed using the `(motive := _)` trick to be used in conjuction with `apply`, but it's generally clearer to use `induction`, `refine`, or, sometimes, `rintro` (for `Quot`). ESTIMATED CHANGES Modified Mathlib/AlgebraicGeometry/Morphisms/QuasiSeparated.lean Modified Mathlib/Data/QPF/Univariate/Basic.lean Modified Mathlib/Probability/Kernel/Composition.lean Modified Mathlib/RingTheory/Flat/EquationalCriterion.lean Modified Mathlib/Topology/Homotopy/Product.lean 2024-07-24 12:52:40 e56a205 refactor(RingTheory/Trace/Basic): remove `Field` assumptions (#15039) `[Module.Free R S] [Module.Finite R S]` replaces `[FiniteDimensional K L]` ESTIMATED CHANGES Modified Mathlib/RingTheory/Trace/Basic.lean Modified Mathlib/RingTheory/Trace/Defs.lean +/- theorem Algebra.trace_algebraMap +/- theorem Algebra.trace_comp_trace +/- theorem Algebra.trace_trace 2024-07-24 10:59:27 82a3b22 feat(Archive/Imo): IMO 2024 Q2 (#14920) Formalize IMO 2024 Q2. ESTIMATED CHANGES Modified Archive.lean Added Archive/Imo/Imo2024Q2.lean + theorem Imo2024Q2.Condition.N_le_large_n + theorem Imo2024Q2.Condition.N_le_large_n_0 + theorem Imo2024Q2.Condition.N_pos + theorem Imo2024Q2.Condition.N_spec + theorem Imo2024Q2.Condition.a_coprime_ab_add_one + theorem Imo2024Q2.Condition.a_eq_one + theorem Imo2024Q2.Condition.a_pos + theorem Imo2024Q2.Condition.ab_add_one_dvd_a_pow_large_n_0_add_b + theorem Imo2024Q2.Condition.ab_add_one_dvd_a_pow_large_n_add_b + theorem Imo2024Q2.Condition.ab_add_one_dvd_b_add_one + theorem Imo2024Q2.Condition.ab_add_one_dvd_b_pow_large_n_add_a + theorem Imo2024Q2.Condition.ab_add_one_dvd_g + theorem Imo2024Q2.Condition.b_eq_one + theorem Imo2024Q2.Condition.b_pos + theorem Imo2024Q2.Condition.dvd_g_of_le_N_of_dvd + theorem Imo2024Q2.Condition.dvd_large_n_0_sub_zero + theorem Imo2024Q2.Condition.dvd_large_n_sub_neg_one + theorem Imo2024Q2.Condition.g_pos + theorem Imo2024Q2.Condition.g_spec + theorem Imo2024Q2.Condition.gcd_eq_g + theorem Imo2024Q2.Condition.symm_large_n + theorem Imo2024Q2.Condition.symm_large_n_0 + def Imo2024Q2.Condition + theorem Imo2024Q2.dvd_pow_iff_of_dvd_sub + theorem Imo2024Q2.result + def Imo2024Q2.solutionSet 2024-07-24 10:24:26 60c76bf feat (Algebra/Ring): add `isSemireal` class for commutative rings (#14941) A semireal ring is a non-trivial commutative ring with unit `R` in which `-1 : R` is not a sum of squares. We add this notion to Mathlib and prove that linearly ordered fields are semireal rings. We also introduce the type of sums of squares in a type `R` endowed with an `Add R`, `Zero R` and `Mul R` instances. This contribution was created as part of the AIM workshop "Formalizing algebraic geometry" in June 2024. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Ring/Semireal/Defs.lean Added Mathlib/Algebra/Ring/SumsOfSquares.lean + theorem SquaresAddClosure + theorem SquaresInSumSq + def SumSqIn + theorem isSumSq.add + theorem isSumSq.nonneg + inductive isSumSq Modified docs/references.bib 2024-07-24 09:58:38 babbbb7 feat(CategoryTheory/Site): Locally fully-faithful functors into sites. (#15062) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/CategoryTheory/Limits/Presheaf.lean Added Mathlib/CategoryTheory/Sites/LocallyFullyFaithful.lean + theorem CategoryTheory.Functor.IsLocallyFaithful.ext + theorem CategoryTheory.Functor.IsLocallyFull.ext + theorem CategoryTheory.Functor.functorPushforward_equalizer_mem + theorem CategoryTheory.Functor.functorPushforward_imageSieve_mem + def CategoryTheory.Functor.imageSieve + theorem CategoryTheory.Functor.imageSieve_eq_imageSieve + theorem CategoryTheory.Functor.imageSieve_map + def CategoryTheory.Sieve.equalizer + theorem CategoryTheory.Sieve.equalizer_eq_equalizerSieve + theorem CategoryTheory.Sieve.equalizer_self Modified Mathlib/CategoryTheory/Yoneda.lean +/- def CategoryTheory.yonedaMap Modified docs/references.bib 2024-07-24 09:47:10 a6e9d0c feat(RingTheory): being finitely-presented is local (#15073) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/RingTheory/MvPolynomial/Basic.lean Added Mathlib/RingTheory/RingHom/FinitePresentation.lean + theorem RingHom.finitePresentation_holdsForLocalizationAway + theorem RingHom.finitePresentation_isLocal + theorem RingHom.finitePresentation_localizationPreserves + theorem RingHom.finitePresentation_ofLocalizationSpanTarget + theorem RingHom.finitePresentation_ofLocalizationSpanTarget_aux + theorem RingHom.finitePresentation_respectsIso + theorem RingHom.finitePresentation_stableUnderBaseChange + theorem RingHom.finitePresentation_stableUnderComposition 2024-07-24 09:19:48 805fac1 feat(Pullback/CommSq): add more pasting lemmas for `IsPullback` (#14985) This PR adds two (variants) of pasting lemmas in the `IsPullback` framework. These are variants where the second square has a morphism that is induced from the universal property of the first. This work was inspired by the AIM workshop "Formalizing algebraic geometry" in June 2024. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Limits/Shapes/Pullback/CommSq.lean + theorem CategoryTheory.IsPullback.hom_ext + theorem CategoryTheory.IsPullback.id_horiz + theorem CategoryTheory.IsPullback.id_vert + theorem CategoryTheory.IsPullback.isoIsPullback_hom_fst + theorem CategoryTheory.IsPullback.isoIsPullback_hom_snd + theorem CategoryTheory.IsPullback.isoIsPullback_inv_fst + theorem CategoryTheory.IsPullback.isoIsPullback_inv_snd + theorem CategoryTheory.IsPullback.lift_fst + theorem CategoryTheory.IsPullback.lift_snd + theorem CategoryTheory.IsPullback.of_bot' + theorem CategoryTheory.IsPullback.of_right' + theorem CategoryTheory.IsPushout.hom_ext + theorem CategoryTheory.IsPushout.id_horiz + theorem CategoryTheory.IsPushout.id_vert + theorem CategoryTheory.IsPushout.inl_desc + theorem CategoryTheory.IsPushout.inl_isoIsPushout_hom + theorem CategoryTheory.IsPushout.inl_isoIsPushout_inv + theorem CategoryTheory.IsPushout.inr_desc + theorem CategoryTheory.IsPushout.inr_isoIsPushout_hom + theorem CategoryTheory.IsPushout.inr_isoIsPushout_inv - theorem CategoryTheory.IsPushout.of_bot + theorem CategoryTheory.IsPushout.of_left' + theorem CategoryTheory.IsPushout.of_left - theorem CategoryTheory.IsPushout.of_right + theorem CategoryTheory.IsPushout.of_top' + theorem CategoryTheory.IsPushout.of_top 2024-07-24 08:31:39 5ef1789 feat(MeasureSpace): generalize pigeonhole to NullMeasurableSets (#15089) ESTIMATED CHANGES Modified Mathlib/Dynamics/Ergodic/MeasurePreserving.lean Modified Mathlib/MeasureTheory/Measure/MeasureSpace.lean +/- theorem MeasureTheory.tsum_measure_le_measure_univ 2024-07-24 08:31:37 eb17951 feat(ContinuousMapDense): weaken TC assumptions (#15085) Generalize from `T4Space α` to `[NormalSpace α] [R1Space α]`. ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Function/ContinuousMapDense.lean 2024-07-24 08:31:36 8ef2505 chore(Topology/LocallyClosed): use `X`/`Y` instead of `α`/`β` (#15084) ESTIMATED CHANGES Modified Mathlib/Topology/LocallyClosed.lean +/- theorem Continuous.preimage_coborder_subset +/- theorem Embedding.isLocallyClosed_iff +/- theorem Inducing.isLocallyClosed_iff +/- theorem IsLocallyClosed.image +/- theorem IsLocallyClosed.preimage +/- def IsLocallyClosed +/- theorem IsOpenMap.coborder_preimage_subset +/- theorem OpenEmbedding.coborder_preimage +/- def coborder +/- theorem coborder_preimage +/- theorem isLocallyClosed_iff_coe_preimage_of_iSup_eq_top +/- theorem isLocallyClosed_tfae 2024-07-24 08:31:35 0d4b665 refactor(AlgebraicGeometry): Restate `ΓRestrictAlgebra` in terms of `Γ(U, ⊤)`. (#15080) ESTIMATED CHANGES Modified Mathlib/AlgebraicGeometry/AffineScheme.lean Modified Mathlib/AlgebraicGeometry/Restrict.lean 2024-07-24 08:31:33 0ccc5ae chore (Algebra.Order.Group.Abs): split file into unbundled and bundled material (#15065) Currently `Algebra.Order.Group.Abs` imports `OrderedCommMonoid` and other bundled algebra classes despite much of the file using unbundled ordered algebra typeclasses. We split into `Algebra.Order.Group.Unbundled.Abs` and `Algebra.Order.Group.Abs` to separate the bundled and unbundled parts of the file and minimize imports downstream. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Group/Subgroup/Order.lean Modified Mathlib/Algebra/Order/Group/Abs.lean - def LatticeOrderedAddCommGroup.IsSolid - theorem LatticeOrderedAddCommGroup.isSolid_solidClosure - def LatticeOrderedAddCommGroup.solidClosure - theorem LatticeOrderedAddCommGroup.solidClosure_min - theorem Pi.abs_apply - theorem Pi.abs_def - def abs.unexpander - theorem eq_or_eq_inv_of_mabs_eq - theorem inf_sq_eq_mul_div_mabs_div - theorem inv_le_mabs - theorem inv_lt_of_mabs_lt - theorem inv_mabs_le - theorem inv_mabs_le_inv - theorem isSquare_mabs - theorem le_mabs - theorem le_mabs_self - theorem lt_mabs - theorem lt_of_mabs_lt - theorem m_Birkhoff_inequalities - def mabs.unexpander - def mabs - theorem mabs_by_cases - theorem mabs_choice - theorem mabs_div_comm - theorem mabs_div_sup_mul_mabs_div_inf - theorem mabs_eq_mabs - theorem mabs_eq_max_inv - theorem mabs_eq_one - theorem mabs_inf_div_inf_le_mabs - theorem mabs_inv - theorem mabs_le' - theorem mabs_le_mabs - theorem mabs_le_mabs_of_le_one - theorem mabs_le_mabs_of_one_le - theorem mabs_le_one - theorem mabs_lt - theorem mabs_mabs - theorem mabs_mabs_div_mabs_le - theorem mabs_mul_le - theorem mabs_ne_one - theorem mabs_of_le_one - theorem mabs_of_lt_one - theorem mabs_of_one_le - theorem mabs_of_one_lt - theorem mabs_one - theorem mabs_sup_div_sup_le_mabs - theorem max_div_min_eq_mabs' - theorem max_div_min_eq_mabs - theorem one_le_mabs - theorem one_le_mul_mabs - theorem one_lt_mabs - theorem one_lt_mabs_of_lt_one - theorem one_lt_mabs_pos_of_one_lt - theorem sup_div_inf_eq_mabs_div - theorem sup_sq_eq_mul_mul_mabs_div Modified Mathlib/Algebra/Order/Group/Indicator.lean Modified Mathlib/Algebra/Order/Group/PosPart.lean Added Mathlib/Algebra/Order/Group/Unbundled/Abs.lean + def LatticeOrderedAddCommGroup.IsSolid + theorem LatticeOrderedAddCommGroup.isSolid_solidClosure + def LatticeOrderedAddCommGroup.solidClosure + theorem LatticeOrderedAddCommGroup.solidClosure_min + theorem Pi.abs_apply + theorem Pi.abs_def + def abs.unexpander + theorem eq_or_eq_inv_of_mabs_eq + theorem inf_sq_eq_mul_div_mabs_div + theorem inv_le_mabs + theorem inv_lt_of_mabs_lt + theorem inv_mabs_le + theorem inv_mabs_le_inv + theorem isSquare_mabs + theorem le_mabs + theorem le_mabs_self + theorem lt_mabs + theorem lt_of_mabs_lt + theorem m_Birkhoff_inequalities + def mabs.unexpander + def mabs + theorem mabs_by_cases + theorem mabs_choice + theorem mabs_div_comm + theorem mabs_div_sup_mul_mabs_div_inf + theorem mabs_eq_mabs + theorem mabs_eq_max_inv + theorem mabs_eq_one + theorem mabs_inf_div_inf_le_mabs + theorem mabs_inv + theorem mabs_le' + theorem mabs_le_mabs + theorem mabs_le_mabs_of_le_one + theorem mabs_le_mabs_of_one_le + theorem mabs_le_one + theorem mabs_lt + theorem mabs_mabs + theorem mabs_mabs_div_mabs_le + theorem mabs_mul_le + theorem mabs_ne_one + theorem mabs_of_le_one + theorem mabs_of_lt_one + theorem mabs_of_one_le + theorem mabs_of_one_lt + theorem mabs_one + theorem mabs_sup_div_sup_le_mabs + theorem max_div_min_eq_mabs' + theorem max_div_min_eq_mabs + theorem one_le_mabs + theorem one_le_mul_mabs + theorem one_lt_mabs + theorem one_lt_mabs_of_lt_one + theorem one_lt_mabs_pos_of_one_lt + theorem sup_div_inf_eq_mabs_div + theorem sup_sq_eq_mul_mul_mabs_div Modified Mathlib/Data/Nat/Cast/Order/Ring.lean Modified Mathlib/RingTheory/Prime.lean 2024-07-24 08:17:42 d065779 chore: fix implicitness of SheafedSpace.ext (#15087) ESTIMATED CHANGES Modified Mathlib/AlgebraicGeometry/Scheme.lean Modified Mathlib/Geometry/RingedSpace/SheafedSpace.lean +/- theorem AlgebraicGeometry.SheafedSpace.ext 2024-07-24 05:38:20 d8788f0 feat(CategoryTheory/Sites): definition of sheaf cohomology (#14800) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Homology/DerivedCategory/Ext.lean Added Mathlib/CategoryTheory/Sites/SheafCohomology/Basic.lean + def CategoryTheory.Sheaf.H 2024-07-24 04:05:42 dea5c16 feat(CategoryTheory/Sites): Sieves under equivalences. (#15063) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Sites/Equivalence.lean Modified Mathlib/CategoryTheory/Sites/Grothendieck.lean + theorem CategoryTheory.GrothendieckTopology.pullback_mem_iff_of_isIso Modified Mathlib/CategoryTheory/Sites/Sieves.lean + theorem CategoryTheory.Sieve.comp_mem_iff + theorem CategoryTheory.Sieve.functorPushforward_functor + theorem CategoryTheory.Sieve.functorPushforward_inverse + theorem CategoryTheory.Sieve.mem_functorPushforward_functor + theorem CategoryTheory.Sieve.mem_functorPushforward_inverse 2024-07-24 01:44:42 6dc7ed9 chore: update Mathlib dependencies 2024-07-24 (#15042) This PR updates the Mathlib dependencies. ESTIMATED CHANGES Modified lake-manifest.json 2024-07-23 23:19:44 54e631e chore: update Batteries and deprecate LazyList (#15040) `LazyList` was deprecated in Batteries (with an indication to use `MLList` instead). The uses in Mathlib were trivial, as they were immediately forced to a `List` anyway. This PR deprecates the code about `LazyList`, and replaces the lazy-but-not-really code with strict versions. ESTIMATED CHANGES Modified Mathlib/Data/LazyList/Basic.lean +/- theorem LazyList.bind_singleton Modified Mathlib/Data/Seq/Seq.lean Modified Mathlib/Testing/SlimCheck/Functions.lean +/- def SlimCheck.InjectiveFunction.sliceSizes Modified lake-manifest.json 2024-07-23 21:13:41 4261f99 refactor(AlgebraicGeometry): Introduce `Scheme.Opens`. (#15001) Introduced `Scheme.Opens` as the type of open sets of a scheme. Provided `instance : CoeOut X.Opens Scheme` to replace the notation `X ∣_ᵤ U`, and renamed `Scheme.ιOpens` to `Scheme.Opens.ι` to enable dot notation. ESTIMATED CHANGES Modified Mathlib/AlgebraicGeometry/AffineScheme.lean +/- theorem AlgebraicGeometry.IsAffineOpen.appLE_eq_away_map +/- theorem AlgebraicGeometry.IsAffineOpen.exists_basicOpen_le +/- theorem AlgebraicGeometry.IsAffineOpen.isLocalization_of_eq_basicOpen +/- theorem AlgebraicGeometry.IsAffineOpen.map_fromSpec +/- theorem AlgebraicGeometry.IsAffineOpen.preimage_of_isIso - theorem AlgebraicGeometry.IsAffineOpen.ιOpens_basicOpen_preimage + theorem AlgebraicGeometry.IsAffineOpen.ι_basicOpen_preimage +/- def AlgebraicGeometry.IsAffineOpen +/- def AlgebraicGeometry.Scheme.affineOpens +/- def AlgebraicGeometry.affineOpensRestrict +/- theorem AlgebraicGeometry.iSup_affineOpens_eq_top +/- theorem AlgebraicGeometry.isAffineOpen_top Modified Mathlib/AlgebraicGeometry/Cover/Open.lean +/- theorem AlgebraicGeometry.Scheme.OpenCover.ext_elem +/- theorem AlgebraicGeometry.Scheme.isNilpotent_of_isNilpotent_cover - def AlgebraicGeometry.Scheme.openCoverOfSuprEqTop +/- theorem AlgebraicGeometry.Scheme.zero_of_zero_cover Modified Mathlib/AlgebraicGeometry/FunctionField.lean +/- theorem AlgebraicGeometry.IsAffineOpen.primeIdealOf_genericPoint +/- theorem AlgebraicGeometry.Scheme.germToFunctionField_injective +/- theorem AlgebraicGeometry.functionField_isFractionRing_of_isAffineOpen +/- theorem AlgebraicGeometry.germ_injective_of_isIntegral Modified Mathlib/AlgebraicGeometry/GammaSpecAdjunction.lean +/- theorem AlgebraicGeometry.ΓSpecIso_obj_hom Modified Mathlib/AlgebraicGeometry/Limits.lean +/- theorem AlgebraicGeometry.isAffineOpen_bot Modified Mathlib/AlgebraicGeometry/Morphisms/Basic.lean +/- theorem AlgebraicGeometry.IsLocalAtSource.iff_of_iSup_eq_top +/- theorem AlgebraicGeometry.IsLocalAtSource.of_iSup_eq_top +/- theorem AlgebraicGeometry.IsLocalAtTarget.iff_of_iSup_eq_top +/- theorem AlgebraicGeometry.IsLocalAtTarget.of_iSup_eq_top +/- theorem AlgebraicGeometry.IsLocalAtTarget.restrict Modified Mathlib/AlgebraicGeometry/Morphisms/Constructors.lean Modified Mathlib/AlgebraicGeometry/Morphisms/QuasiCompact.lean +/- theorem AlgebraicGeometry.Scheme.zeroLocus_eq_top_iff_subset_nilradical_of_isCompact +/- theorem AlgebraicGeometry.compact_open_induction_on +/- theorem AlgebraicGeometry.isCompact_basicOpen Modified Mathlib/AlgebraicGeometry/Morphisms/QuasiSeparated.lean +/- theorem AlgebraicGeometry.IsAffineOpen.isQuasiSeparated +/- theorem AlgebraicGeometry.exists_eq_pow_mul_of_isAffineOpen +/- theorem AlgebraicGeometry.exists_eq_pow_mul_of_isCompact_of_isQuasiSeparated +/- theorem AlgebraicGeometry.is_localization_basicOpen_of_qcqs Modified Mathlib/AlgebraicGeometry/Morphisms/RingHomProperties.lean Modified Mathlib/AlgebraicGeometry/Noetherian.lean +/- theorem AlgebraicGeometry.noetherianSpace_of_isAffineOpen Modified Mathlib/AlgebraicGeometry/OpenImmersion.lean +/- theorem AlgebraicGeometry.IsOpenImmersion.map_ΓIso_inv +/- def AlgebraicGeometry.IsOpenImmersion.ΓIso +/- theorem AlgebraicGeometry.IsOpenImmersion.ΓIso_hom_map +/- theorem AlgebraicGeometry.IsOpenImmersion.ΓIso_inv +/- theorem AlgebraicGeometry.Scheme.Hom.appIso_inv_appLE +/- theorem AlgebraicGeometry.Scheme.Hom.appIso_inv_naturality +/- theorem AlgebraicGeometry.Scheme.Hom.appLE_appIso_inv +/- theorem AlgebraicGeometry.Scheme.Hom.image_le_image_of_le +/- theorem AlgebraicGeometry.Scheme.Hom.image_preimage_eq_opensRange_inter +/- theorem AlgebraicGeometry.Scheme.Hom.opensFunctor_map_homOfLE +/- def AlgebraicGeometry.Scheme.Hom.opensRange +/- theorem AlgebraicGeometry.Scheme.Hom.preimage_image_eq +/- theorem AlgebraicGeometry.Scheme.image_basicOpen Modified Mathlib/AlgebraicGeometry/ProjectiveSpectrum/Scheme.lean Modified Mathlib/AlgebraicGeometry/Properties.lean +/- theorem AlgebraicGeometry.basicOpen_eq_bot_iff +/- theorem AlgebraicGeometry.eq_zero_of_basicOpen_eq_bot +/- theorem AlgebraicGeometry.map_injective_of_isIntegral +/- theorem AlgebraicGeometry.reduce_to_affine_global Modified Mathlib/AlgebraicGeometry/Restrict.lean + theorem AlgebraicGeometry.Scheme.Opens.eq_presheaf_map_eqToHom + theorem AlgebraicGeometry.Scheme.Opens.germ_stalkIso_hom + theorem AlgebraicGeometry.Scheme.Opens.nonempty_iff + theorem AlgebraicGeometry.Scheme.Opens.opensRange_ι + theorem AlgebraicGeometry.Scheme.Opens.range_ι + def AlgebraicGeometry.Scheme.Opens.stalkIso + def AlgebraicGeometry.Scheme.Opens.toScheme + theorem AlgebraicGeometry.Scheme.Opens.toScheme_carrier + theorem AlgebraicGeometry.Scheme.Opens.toScheme_presheaf_map + theorem AlgebraicGeometry.Scheme.Opens.toScheme_presheaf_obj + def AlgebraicGeometry.Scheme.Opens.topIso + def AlgebraicGeometry.Scheme.Opens.ι + theorem AlgebraicGeometry.Scheme.Opens.ι_app + theorem AlgebraicGeometry.Scheme.Opens.ι_appIso + theorem AlgebraicGeometry.Scheme.Opens.ι_appLE + theorem AlgebraicGeometry.Scheme.Opens.ι_app_self + theorem AlgebraicGeometry.Scheme.Opens.ι_image_basicOpen + theorem AlgebraicGeometry.Scheme.Opens.ι_image_top + theorem AlgebraicGeometry.Scheme.Opens.ι_preimage_self - theorem AlgebraicGeometry.Scheme.eq_restrict_presheaf_map_eqToHom +/- theorem AlgebraicGeometry.Scheme.map_basicOpen' - theorem AlgebraicGeometry.Scheme.map_basicOpen +/- theorem AlgebraicGeometry.Scheme.map_basicOpen_map - theorem AlgebraicGeometry.Scheme.ofRestrict_app_self + def AlgebraicGeometry.Scheme.openCoverOfSuprEqTop - def AlgebraicGeometry.Scheme.resTop +/- def AlgebraicGeometry.Scheme.restrictFunctor +/- theorem AlgebraicGeometry.Scheme.restrictFunctor_map_app +/- theorem AlgebraicGeometry.Scheme.restrictFunctor_map_app_aux +/- theorem AlgebraicGeometry.Scheme.restrictFunctor_map_base +/- theorem AlgebraicGeometry.Scheme.restrictFunctor_map_left +/- theorem AlgebraicGeometry.Scheme.restrictFunctor_map_ofRestrict +/- theorem AlgebraicGeometry.Scheme.restrictFunctor_obj_hom +/- theorem AlgebraicGeometry.Scheme.restrictFunctor_obj_left +/- def AlgebraicGeometry.Scheme.restrictIsoOfEq +/- def AlgebraicGeometry.Scheme.restrictRestrict +/- def AlgebraicGeometry.Scheme.restrictRestrictComm +/- theorem AlgebraicGeometry.Scheme.restrictRestrict_hom_restrict +/- theorem AlgebraicGeometry.Scheme.restrictRestrict_inv_restrict_restrict - theorem AlgebraicGeometry.Scheme.ιOpens_image_top + theorem AlgebraicGeometry.eqToHom_eq_homOfLE +/- theorem AlgebraicGeometry.image_morphismRestrict_preimage +/- theorem AlgebraicGeometry.isPullback_morphismRestrict +/- def AlgebraicGeometry.morphismRestrict +/- def AlgebraicGeometry.morphismRestrictEq +/- def AlgebraicGeometry.morphismRestrictRestrict +/- def AlgebraicGeometry.morphismRestrictRestrictBasicOpen +/- def AlgebraicGeometry.morphismRestrictStalkMap +/- theorem AlgebraicGeometry.morphismRestrict_app' +/- theorem AlgebraicGeometry.morphismRestrict_app +/- theorem AlgebraicGeometry.morphismRestrict_appLE +/- theorem AlgebraicGeometry.morphismRestrict_base_coe +/- theorem AlgebraicGeometry.morphismRestrict_id +/- theorem AlgebraicGeometry.morphismRestrict_val_base +/- theorem AlgebraicGeometry.morphismRestrict_ι - theorem AlgebraicGeometry.opensRange_ιOpens +/- def AlgebraicGeometry.opensRestrict +/- def AlgebraicGeometry.pullbackRestrictIsoRestrict +/- theorem AlgebraicGeometry.pullbackRestrictIsoRestrict_hom_restrict +/- theorem AlgebraicGeometry.pullbackRestrictIsoRestrict_inv_fst +/- theorem AlgebraicGeometry.Γ_map_morphismRestrict Modified Mathlib/AlgebraicGeometry/Scheme.lean +/- def AlgebraicGeometry.Scheme.Hom.appLE +/- theorem AlgebraicGeometry.Scheme.Hom.appLE_eq_app +/- theorem AlgebraicGeometry.Scheme.Hom.app_eq_appLE +/- theorem AlgebraicGeometry.Scheme.Spec_map_presheaf_map_eqToHom +/- theorem AlgebraicGeometry.Scheme.app_eq +/- def AlgebraicGeometry.Scheme.basicOpen +/- theorem AlgebraicGeometry.Scheme.basicOpen_appLE +/- theorem AlgebraicGeometry.Scheme.basicOpen_zero +/- theorem AlgebraicGeometry.Scheme.id_app +/- theorem AlgebraicGeometry.Scheme.inv_app +/- theorem AlgebraicGeometry.Scheme.mem_basicOpen_top' +/- theorem AlgebraicGeometry.Scheme.mem_zeroLocus_iff +/- theorem AlgebraicGeometry.Scheme.preimage_basicOpen + theorem AlgebraicGeometry.Scheme.preimage_comp +/- theorem AlgebraicGeometry.Scheme.presheaf_map_eqToHom_op +/- def AlgebraicGeometry.Scheme.zeroLocus +/- theorem AlgebraicGeometry.Scheme.zeroLocus_def +/- theorem AlgebraicGeometry.Scheme.zeroLocus_empty_eq_univ +/- theorem AlgebraicGeometry.Scheme.zeroLocus_isClosed +/- theorem AlgebraicGeometry.Scheme.zeroLocus_singleton Modified Mathlib/AlgebraicGeometry/Stalk.lean +/- theorem AlgebraicGeometry.IsAffineOpen.fromSpecStalk_eq 2024-07-23 19:33:24 d9ce431 refactor(AlgebraicGeometry): Introduce `HasRingHomProperty`. (#14992) `HasRingHomProperty P Q` is a type class asserting that `P` is local at the target and the source, and for `f : Spec B ⟶ Spec A`, it is equivalent to the ring hom property `Q` on `Γ(f)`. This replace the previous API `affineLocally` that is both slow and hard to use. This is then used to refactor `LocallyOfFiniteType` and to deduplicate code. ESTIMATED CHANGES Modified Mathlib/AlgebraicGeometry/Morphisms/Basic.lean + theorem AlgebraicGeometry.HasAffineProperty.isLocalAtSource Modified Mathlib/AlgebraicGeometry/Morphisms/Constructors.lean Modified Mathlib/AlgebraicGeometry/Morphisms/FiniteType.lean - theorem AlgebraicGeometry.LocallyOfFiniteType.affine_openCover_iff - theorem AlgebraicGeometry.LocallyOfFiniteType.source_openCover_iff - theorem AlgebraicGeometry.locallyOfFiniteType_eq + theorem AlgebraicGeometry.locallyOfFiniteType_stableUnderBaseChange Modified Mathlib/AlgebraicGeometry/Morphisms/RingHomProperties.lean + theorem AlgebraicGeometry.HasRingHomProperty.HasAffineProperty + theorem AlgebraicGeometry.HasRingHomProperty.Spec_iff + theorem AlgebraicGeometry.HasRingHomProperty.appLE + theorem AlgebraicGeometry.HasRingHomProperty.app_top + theorem AlgebraicGeometry.HasRingHomProperty.comp_of_isOpenImmersion + theorem AlgebraicGeometry.HasRingHomProperty.eq_affineLocally + theorem AlgebraicGeometry.HasRingHomProperty.iff_appLE + theorem AlgebraicGeometry.HasRingHomProperty.iff_of_iSup_eq_top + theorem AlgebraicGeometry.HasRingHomProperty.iff_of_isAffine + theorem AlgebraicGeometry.HasRingHomProperty.iff_of_source_openCover + theorem AlgebraicGeometry.HasRingHomProperty.of_comp + theorem AlgebraicGeometry.HasRingHomProperty.of_iSup_eq_top + theorem AlgebraicGeometry.HasRingHomProperty.of_isOpenImmersion + theorem AlgebraicGeometry.HasRingHomProperty.of_source_openCover + theorem AlgebraicGeometry.HasRingHomProperty.stableUnderBaseChange +/- theorem AlgebraicGeometry.affineLocally_iff_affineOpens_le +/- theorem AlgebraicGeometry.affineLocally_respectsIso - theorem AlgebraicGeometry.isOpenImmersionCat_comp_of_sourceAffineLocally - theorem AlgebraicGeometry.scheme_restrict_basicOpen_of_localizationPreserves +/- theorem AlgebraicGeometry.sourceAffineLocally_isLocal + theorem AlgebraicGeometry.sourceAffineLocally_morphismRestrict - theorem AlgebraicGeometry.sourceAffineLocally_of_source_open_cover_aux +/- theorem AlgebraicGeometry.sourceAffineLocally_respectsIso - theorem RingHom.PropertyIsLocal.affineLocally_isStableUnderComposition - theorem RingHom.PropertyIsLocal.affineLocally_of_comp - theorem RingHom.PropertyIsLocal.affineLocally_of_isOpenImmersion - theorem RingHom.PropertyIsLocal.affine_openCover_TFAE - theorem RingHom.PropertyIsLocal.affine_openCover_iff - theorem RingHom.PropertyIsLocal.hasAffinePropertyAffineLocally - theorem RingHom.PropertyIsLocal.isLocal_sourceAffineLocally - theorem RingHom.PropertyIsLocal.openCover_TFAE - theorem RingHom.PropertyIsLocal.sourceAffineLocally_comp_of_isOpenImmersion - theorem RingHom.PropertyIsLocal.sourceAffineLocally_of_source_openCover - theorem RingHom.PropertyIsLocal.source_affine_openCover_iff - theorem RingHom.PropertyIsLocal.source_openCover_iff - theorem RingHom.RespectsIso.basicOpen_iff - theorem RingHom.RespectsIso.basicOpen_iff_localization - theorem RingHom.RespectsIso.ofRestrict_morphismRestrict_iff + theorem RingHom.StableUnderBaseChange.pullback_fst_app_top - theorem RingHom.StableUnderBaseChange.Γ_pullback_fst Modified Mathlib/AlgebraicGeometry/Restrict.lean + def AlgebraicGeometry.Scheme.OpenCover.restrict + theorem AlgebraicGeometry.morphismRestrict_id Modified Mathlib/AlgebraicGeometry/Scheme.lean + theorem AlgebraicGeometry.Scheme.Hom.preimage_iSup + theorem AlgebraicGeometry.Scheme.Hom.preimage_iSup_eq_top Modified Mathlib/RingTheory/LocalProperties.lean + theorem RingHom.HoldsForLocalizationAway.of_bijective 2024-07-23 18:21:57 bf7d9e1 feat(Algebra): the free abelian group functor preserves monomorphisms (#15058) ESTIMATED CHANGES Modified Mathlib/Algebra/Category/Grp/Adjunctions.lean Modified Mathlib/CategoryTheory/Limits/Shapes/ZeroMorphisms.lean + theorem CategoryTheory.Limits.IsInitial.isZero + theorem CategoryTheory.Limits.IsTerminal.isZero 2024-07-23 17:13:22 c24e04d chore (Data.Nat.GCD.Basic): minimize imports (#15059) We avoid importing bundled ordered algebra classes by specializing to existing `Nat`-results, in this file about `Nat`. Then we run `#min_imports` to update the imports. ESTIMATED CHANGES Modified Mathlib/Data/Int/GCD.lean Modified Mathlib/Data/Nat/Choose/Dvd.lean Modified Mathlib/Data/Nat/Factors.lean Modified Mathlib/Data/Nat/GCD/Basic.lean Modified Mathlib/Data/Nat/Prime/Basic.lean Modified Mathlib/Data/Nat/Prime/Defs.lean 2024-07-23 15:36:09 c6677e1 fix(Data/Set/Sigma): address comments for #14961 (#15057) I mistakenly approved the merge for #14961 before addressing the comments. This changes the content of the PR slightly to address them. ESTIMATED CHANGES Modified Mathlib/Data/Set/Sigma.lean - theorem Set.univ_sigma_preimage + theorem Set.univ_sigma_preimage_mk 2024-07-23 15:36:08 0e06bab feat(Archive/Imo): IMO 2024 Q1 (#14841) Formalize IMO 2024 Q1. ESTIMATED CHANGES Modified Archive.lean Added Archive/Imo/Imo2024Q1.lean + theorem Imo2024Q1.Condition.mem_Ico_n_of_mem_Ioo + theorem Imo2024Q1.Condition.mem_Ico_one_of_mem_Ioo + def Imo2024Q1.Condition + theorem Imo2024Q1.condition_iff_of_mem_Ico + theorem Imo2024Q1.condition_sub_two_mul_int_iff + theorem Imo2024Q1.condition_toIcoMod_iff + theorem Imo2024Q1.condition_two_mul_int + theorem Imo2024Q1.not_condition_of_mem_Ioo + theorem Imo2024Q1.result + def Imo2024Q1.solutionSet 2024-07-23 15:36:06 127e9c5 feat: Combinatorial subspaces and multidimensional Hales-Jewett (#8304) This PR extends the Hales-Jewett theorem from combinatorial lines to higher-dimensional combinatorial subspaces. It's an example of a theorem proving its own generalisation. ESTIMATED CHANGES Modified Mathlib/Combinatorics/HalesJewett.lean - theorem Combinatorics.Line.apply + theorem Combinatorics.Line.apply_def - theorem Combinatorics.Line.apply_of_ne_none + theorem Combinatorics.Line.apply_some + theorem Combinatorics.Line.coe_apply + theorem Combinatorics.Line.coe_injective + def Combinatorics.Line.toFun + def Combinatorics.Line.toSubspace + def Combinatorics.Line.toSubspaceUnit + theorem Combinatorics.Line.toSubspaceUnit_apply + theorem Combinatorics.Line.toSubspaceUnit_isMono + theorem Combinatorics.Line.toSubspace_apply + theorem Combinatorics.Line.toSubspace_isMono + def Combinatorics.Subspace.IsMono + theorem Combinatorics.Subspace.apply_def + theorem Combinatorics.Subspace.apply_inl + theorem Combinatorics.Subspace.apply_inr + theorem Combinatorics.Subspace.coe_apply + theorem Combinatorics.Subspace.coe_injective + theorem Combinatorics.Subspace.exists_mono_in_high_dimension + theorem Combinatorics.Subspace.exists_mono_in_high_dimension_fin + def Combinatorics.Subspace.reindex + theorem Combinatorics.Subspace.reindex_apply + theorem Combinatorics.Subspace.reindex_isMono + def Combinatorics.Subspace.toFun + structure Combinatorics.Subspace 2024-07-23 14:47:57 d1dfbcb feat: Create a partition from an element of Sym (#14749) An element of Sym induces a partition given by the multiplicities of its elements. ESTIMATED CHANGES Modified Mathlib/Combinatorics/Enumerative/Partition.lean + def Nat.Partition.ofSym + def Nat.Partition.ofSymShapeEquiv + theorem Nat.Partition.ofSym_map + theorem Nat.Partition.ofSym_one Modified Mathlib/Data/Sym/Basic.lean + def Sym.oneEquiv 2024-07-23 14:14:13 22074eb chore(SpecialFunctions): remove more obsolete porting notes (#15034) The claimed proofs work now, or the porting note is not actionable. ESTIMATED CHANGES Modified Mathlib/Analysis/SpecialFunctions/Complex/Arg.lean Modified Mathlib/Analysis/SpecialFunctions/Exp.lean Modified Mathlib/Analysis/SpecialFunctions/SmoothTransition.lean Modified Mathlib/Analysis/SpecialFunctions/Stirling.lean Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Angle.lean Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/EulerSineProd.lean 2024-07-23 14:14:12 15fee0a feat(Data/Nat/Choose): Lucas' theorem (#8612) This PR proves Lucas' theorem, which states that $\binom{n}{k} \equiv \prod_i \binom{\lfloor n / p^i \rfloor \pmod{p}}{\lfloor k / p^i \rfloor \pmod{p}} \equiv \prod_i \binom{n_i}{k_i} \pmod{p}$, where $n_i$ and $k_i$ are the $i$-th base-$p$ digits of $n$ and $k$ respectively. This is proven by looking at Freshman's dream closely + induction ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/CharP/Basic.lean + theorem add_pow_eq_add_pow_mod_mul_pow_add_pow_div + theorem sub_pow_eq_sub_pow_mod_mul_pow_sub_pow_div Added Mathlib/Data/Nat/Choose/Lucas.lean + theorem Choose.choose_modEq_choose_mod_mul_choose_div + theorem Choose.choose_modEq_choose_mod_mul_choose_div_nat + theorem Choose.choose_modEq_choose_mul_prod_range_choose + theorem Choose.choose_modEq_prod_range_choose + theorem Choose.choose_modEq_prod_range_choose_nat 2024-07-23 13:52:28 add0ea7 feat: the `House` of an algebraic number (#14041) Let $K$ be an algebraic number field of degree $h,$ and let $\beta_1, \ldots , \beta_h$ be an integer basis, so that every integer in $K$ has the unique representation $a_1\beta_1 + \ldots + a_h\beta_h$ where $a_1, \ldots , a_h$ are rational integers. We shall denote by ${\overline{\hspace{-1pt}\smash[t]{|}\hspace{1pt}\alpha\hspace{1pt}\smash[t]{|}\hspace{-1pt}}}$ the maximum of the modulus of the conjugates $\alpha^{(i)}$ with $(1 \leq i \leq h)$ of $\alpha,$ that is $${\overline{\hspace{-1pt}\smash[t]{|}\hspace{1pt}\alpha\hspace{1pt}\smash[t]{|}\hspace{-1pt}}}= \max_{1 \leq i \leq h} \left|\alpha^{(i)}\right|.$$ In the following we let $c$ be a natural number depending on $K$ and its basis $\beta_1, \ldots , \beta_h.$ It can be shown that if $\alpha$ is an algebraic integer with $\alpha = a_1\beta_1 + \ldots + a_h\beta_h,$ then $$\left|a _i\right| \leq c \;{\overline{\hspace{-1pt}\smash[t]{|}\hspace{1pt}\alpha\hspace{1pt}\smash[t]{|}\hspace{-1pt}}}·$$ Reference : Keng, Hua Loo. "Introduction to Number Theory.", page 489, Springer-Verlag (1982) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/LinearAlgebra/Matrix/NonsingularInverse.lean + theorem Matrix.inv_mulVec_eq_vec Added Mathlib/NumberTheory/NumberField/EquivReindex.lean + theorem NumberField.canonicalEmbedding_eq_basisMatrix_mulVec + theorem NumberField.det_of_basisMatrix_non_zero + theorem NumberField.inverse_basisMatrix_mulVec_eq_repr Added Mathlib/NumberTheory/NumberField/House.lean + theorem NumberField.house.basis_repr_abs_le_const_mul_house + theorem NumberField.house.exists_ne_zero_int_vec_house_le + def NumberField.house + theorem NumberField.house_eq_sup' + theorem NumberField.house_intCast + theorem NumberField.house_mul_le + theorem NumberField.house_nonneg + theorem NumberField.house_sum_le_sum_house Modified docs/references.bib 2024-07-23 13:03:36 db2a487 fix: typo in docstring of `AccPt.mono` (#15054) ESTIMATED CHANGES Modified Mathlib/Topology/Basic.lean 2024-07-23 13:03:35 cdc5e65 chore(Finset): Rename `noncommProd_map` to `map_noncommProd` (#15048) This matches the naming of `map_multiset_prod` Moves: - Multiset.noncommProd_map_aux -> Multiset.map_noncommProd_aux - Multiset.noncommSum_map_aux -> Multiset.map_noncommSum_aux - Multiset.noncommProd_map -> Multiset.map_noncommProd - Multiset.noncommSum_map -> Multiset.map_noncommSum - Finset.noncommProd_map -> Finset.map_noncommProd - Finset.noncommSum_map -> Finset.map_noncommSum ESTIMATED CHANGES Modified Mathlib/Data/Finset/NoncommProd.lean + theorem Finset.map_noncommProd - theorem Finset.noncommProd_map + theorem Multiset.map_noncommProd - theorem Multiset.noncommProd_map Modified Mathlib/RingTheory/PiTensorProduct.lean 2024-07-23 12:07:18 3cd501d refactor: Make `Frame` extend `HeytingAlgebra` (#10560) It is mathematically true that a frame is a Heyting algebra. However we want nice defeqs, so we can't just provide an instance defining `himp` as some supremum. Instead, we need `Frame` to directly extend `HeytingAlgebra`. ESTIMATED CHANGES Modified Archive/Imo/Imo1998Q2.lean Modified Mathlib/Combinatorics/SimpleGraph/Finsubgraph.lean + theorem SimpleGraph.Finsubgraph.coe_compl + theorem SimpleGraph.Finsubgraph.coe_himp + theorem SimpleGraph.Finsubgraph.coe_hnot + theorem SimpleGraph.Finsubgraph.coe_sdiff +/- theorem SimpleGraph.Finsubgraph.coe_top Modified Mathlib/Combinatorics/SimpleGraph/Subgraph.lean + def SimpleGraph.Subgraph.completelyDistribLatticeMinimalAxioms Modified Mathlib/Data/Fintype/Order.lean Modified Mathlib/MeasureTheory/MeasurableSpace/Basic.lean Modified Mathlib/ModelTheory/Definability.lean Modified Mathlib/Order/BooleanAlgebra.lean Modified Mathlib/Order/CompleteBooleanAlgebra.lean + structure CompleteDistribLattice.MinimalAxioms + structure CompletelyDistribLattice.MinimalAxioms + theorem Order.Frame.MinimalAxioms.Order.Coframe.MinimalAxioms.CompleteDistribLattice.MinimalAxioms.CompletelyDistribLattice.MinimalAxioms.PUnit.sInf_eq + theorem Order.Frame.MinimalAxioms.Order.Coframe.MinimalAxioms.CompleteDistribLattice.MinimalAxioms.CompletelyDistribLattice.MinimalAxioms.PUnit.sSup_eq + theorem Order.Frame.MinimalAxioms.Order.Coframe.MinimalAxioms.CompleteDistribLattice.MinimalAxioms.CompletelyDistribLattice.MinimalAxioms.biInf_sup_biInf + theorem Order.Frame.MinimalAxioms.Order.Coframe.MinimalAxioms.CompleteDistribLattice.MinimalAxioms.CompletelyDistribLattice.MinimalAxioms.biSup_inf_biSup + theorem Order.Frame.MinimalAxioms.Order.Coframe.MinimalAxioms.CompleteDistribLattice.MinimalAxioms.CompletelyDistribLattice.MinimalAxioms.biSup_symmDiff_biSup_le + theorem Order.Frame.MinimalAxioms.Order.Coframe.MinimalAxioms.CompleteDistribLattice.MinimalAxioms.CompletelyDistribLattice.MinimalAxioms.compl_iInf + theorem Order.Frame.MinimalAxioms.Order.Coframe.MinimalAxioms.CompleteDistribLattice.MinimalAxioms.CompletelyDistribLattice.MinimalAxioms.compl_iSup + theorem Order.Frame.MinimalAxioms.Order.Coframe.MinimalAxioms.CompleteDistribLattice.MinimalAxioms.CompletelyDistribLattice.MinimalAxioms.compl_sInf' + theorem Order.Frame.MinimalAxioms.Order.Coframe.MinimalAxioms.CompleteDistribLattice.MinimalAxioms.CompletelyDistribLattice.MinimalAxioms.compl_sInf + theorem Order.Frame.MinimalAxioms.Order.Coframe.MinimalAxioms.CompleteDistribLattice.MinimalAxioms.CompletelyDistribLattice.MinimalAxioms.compl_sSup' + theorem Order.Frame.MinimalAxioms.Order.Coframe.MinimalAxioms.CompleteDistribLattice.MinimalAxioms.CompletelyDistribLattice.MinimalAxioms.compl_sSup + theorem Order.Frame.MinimalAxioms.Order.Coframe.MinimalAxioms.CompleteDistribLattice.MinimalAxioms.CompletelyDistribLattice.MinimalAxioms.disjoint_iSup_iff + theorem Order.Frame.MinimalAxioms.Order.Coframe.MinimalAxioms.CompleteDistribLattice.MinimalAxioms.CompletelyDistribLattice.MinimalAxioms.disjoint_iSup₂_iff + theorem Order.Frame.MinimalAxioms.Order.Coframe.MinimalAxioms.CompleteDistribLattice.MinimalAxioms.CompletelyDistribLattice.MinimalAxioms.disjoint_sSup_iff + theorem Order.Frame.MinimalAxioms.Order.Coframe.MinimalAxioms.CompleteDistribLattice.MinimalAxioms.CompletelyDistribLattice.MinimalAxioms.iInf_iSup_eq' + theorem Order.Frame.MinimalAxioms.Order.Coframe.MinimalAxioms.CompleteDistribLattice.MinimalAxioms.CompletelyDistribLattice.MinimalAxioms.iInf_iSup_eq + theorem Order.Frame.MinimalAxioms.Order.Coframe.MinimalAxioms.CompleteDistribLattice.MinimalAxioms.CompletelyDistribLattice.MinimalAxioms.iInf_sup_eq + theorem Order.Frame.MinimalAxioms.Order.Coframe.MinimalAxioms.CompleteDistribLattice.MinimalAxioms.CompletelyDistribLattice.MinimalAxioms.iInf_sup_iInf + theorem Order.Frame.MinimalAxioms.Order.Coframe.MinimalAxioms.CompleteDistribLattice.MinimalAxioms.CompletelyDistribLattice.MinimalAxioms.iInf_sup_of_antitone + theorem Order.Frame.MinimalAxioms.Order.Coframe.MinimalAxioms.CompleteDistribLattice.MinimalAxioms.CompletelyDistribLattice.MinimalAxioms.iInf_sup_of_monotone + theorem Order.Frame.MinimalAxioms.Order.Coframe.MinimalAxioms.CompleteDistribLattice.MinimalAxioms.CompletelyDistribLattice.MinimalAxioms.iInf₂_sup_eq + theorem Order.Frame.MinimalAxioms.Order.Coframe.MinimalAxioms.CompleteDistribLattice.MinimalAxioms.CompletelyDistribLattice.MinimalAxioms.iSup_disjoint_iff + theorem Order.Frame.MinimalAxioms.Order.Coframe.MinimalAxioms.CompleteDistribLattice.MinimalAxioms.CompletelyDistribLattice.MinimalAxioms.iSup_iInf_eq + theorem Order.Frame.MinimalAxioms.Order.Coframe.MinimalAxioms.CompleteDistribLattice.MinimalAxioms.CompletelyDistribLattice.MinimalAxioms.iSup_inf_eq + theorem Order.Frame.MinimalAxioms.Order.Coframe.MinimalAxioms.CompleteDistribLattice.MinimalAxioms.CompletelyDistribLattice.MinimalAxioms.iSup_inf_iSup + theorem Order.Frame.MinimalAxioms.Order.Coframe.MinimalAxioms.CompleteDistribLattice.MinimalAxioms.CompletelyDistribLattice.MinimalAxioms.iSup_inf_of_antitone + theorem Order.Frame.MinimalAxioms.Order.Coframe.MinimalAxioms.CompleteDistribLattice.MinimalAxioms.CompletelyDistribLattice.MinimalAxioms.iSup_inf_of_monotone + theorem Order.Frame.MinimalAxioms.Order.Coframe.MinimalAxioms.CompleteDistribLattice.MinimalAxioms.CompletelyDistribLattice.MinimalAxioms.iSup_symmDiff_iSup_le + theorem Order.Frame.MinimalAxioms.Order.Coframe.MinimalAxioms.CompleteDistribLattice.MinimalAxioms.CompletelyDistribLattice.MinimalAxioms.iSup₂_disjoint_iff + theorem Order.Frame.MinimalAxioms.Order.Coframe.MinimalAxioms.CompleteDistribLattice.MinimalAxioms.CompletelyDistribLattice.MinimalAxioms.iSup₂_inf_eq + theorem Order.Frame.MinimalAxioms.Order.Coframe.MinimalAxioms.CompleteDistribLattice.MinimalAxioms.CompletelyDistribLattice.MinimalAxioms.inf_iSup_eq + theorem Order.Frame.MinimalAxioms.Order.Coframe.MinimalAxioms.CompleteDistribLattice.MinimalAxioms.CompletelyDistribLattice.MinimalAxioms.inf_iSup₂_eq + theorem Order.Frame.MinimalAxioms.Order.Coframe.MinimalAxioms.CompleteDistribLattice.MinimalAxioms.CompletelyDistribLattice.MinimalAxioms.inf_sSup_eq + def Order.Frame.MinimalAxioms.Order.Coframe.MinimalAxioms.CompleteDistribLattice.MinimalAxioms.CompletelyDistribLattice.MinimalAxioms.of + theorem Order.Frame.MinimalAxioms.Order.Coframe.MinimalAxioms.CompleteDistribLattice.MinimalAxioms.CompletelyDistribLattice.MinimalAxioms.sInf_sup_eq + theorem Order.Frame.MinimalAxioms.Order.Coframe.MinimalAxioms.CompleteDistribLattice.MinimalAxioms.CompletelyDistribLattice.MinimalAxioms.sInf_sup_sInf + theorem Order.Frame.MinimalAxioms.Order.Coframe.MinimalAxioms.CompleteDistribLattice.MinimalAxioms.CompletelyDistribLattice.MinimalAxioms.sSup_disjoint_iff + theorem Order.Frame.MinimalAxioms.Order.Coframe.MinimalAxioms.CompleteDistribLattice.MinimalAxioms.CompletelyDistribLattice.MinimalAxioms.sSup_inf_eq + theorem Order.Frame.MinimalAxioms.Order.Coframe.MinimalAxioms.CompleteDistribLattice.MinimalAxioms.CompletelyDistribLattice.MinimalAxioms.sSup_inf_sSup + theorem Order.Frame.MinimalAxioms.Order.Coframe.MinimalAxioms.CompleteDistribLattice.MinimalAxioms.CompletelyDistribLattice.MinimalAxioms.sup_iInf_eq + theorem Order.Frame.MinimalAxioms.Order.Coframe.MinimalAxioms.CompleteDistribLattice.MinimalAxioms.CompletelyDistribLattice.MinimalAxioms.sup_iInf₂_eq + theorem Order.Frame.MinimalAxioms.Order.Coframe.MinimalAxioms.CompleteDistribLattice.MinimalAxioms.CompletelyDistribLattice.MinimalAxioms.sup_sInf_eq + def Order.Frame.MinimalAxioms.Order.Coframe.MinimalAxioms.CompleteDistribLattice.MinimalAxioms.of + theorem Order.Frame.MinimalAxioms.Order.Coframe.MinimalAxioms.iInf_sup_eq + def Order.Frame.MinimalAxioms.Order.Coframe.MinimalAxioms.of + theorem Order.Frame.MinimalAxioms.Order.Coframe.MinimalAxioms.sInf_sup_eq + theorem Order.Frame.MinimalAxioms.Order.Coframe.MinimalAxioms.sup_iInf_eq + theorem Order.Frame.MinimalAxioms.Order.Coframe.MinimalAxioms.sup_iInf₂_eq + theorem Order.Frame.MinimalAxioms.Order.Coframe.MinimalAxioms.sup_sInf_eq + theorem Order.Frame.MinimalAxioms.iSup_inf_eq + theorem Order.Frame.MinimalAxioms.inf_iSup_eq + theorem Order.Frame.MinimalAxioms.inf_iSup₂_eq + theorem Order.Frame.MinimalAxioms.inf_sSup_eq + def Order.Frame.MinimalAxioms.of + theorem Order.Frame.MinimalAxioms.sSup_inf_eq - theorem PUnit.sInf_eq - theorem PUnit.sSup_eq - theorem biInf_sup_biInf - theorem biSup_inf_biSup - theorem biSup_symmDiff_biSup_le - theorem compl_iInf - theorem compl_iSup - theorem compl_sInf' - theorem compl_sInf - theorem compl_sSup' - theorem compl_sSup - theorem disjoint_iSup_iff - theorem disjoint_iSup₂_iff - theorem disjoint_sSup_iff - theorem iInf_iSup_eq - theorem iInf_sup_eq - theorem iInf_sup_iInf - theorem iInf_sup_of_antitone - theorem iInf_sup_of_monotone - theorem iInf₂_sup_eq - theorem iSup_disjoint_iff - theorem iSup_iInf_eq +/- theorem iSup_iInf_le - theorem iSup_inf_eq - theorem iSup_inf_iSup - theorem iSup_inf_of_antitone - theorem iSup_inf_of_monotone - theorem iSup_symmDiff_iSup_le - theorem iSup₂_disjoint_iff - theorem iSup₂_inf_eq - theorem inf_iSup_eq - theorem inf_iSup₂_eq - theorem inf_sSup_eq - theorem sInf_sup_eq - theorem sInf_sup_sInf - theorem sSup_disjoint_iff - theorem sSup_inf_eq - theorem sSup_inf_sSup - theorem sup_iInf_eq - theorem sup_iInf₂_eq - theorem sup_sInf_eq Modified Mathlib/Order/CompleteLattice.lean + theorem iInf_ulift + theorem iInf_unique + theorem iSup_ulift + theorem iSup_unique Modified Mathlib/Order/Copy.lean Modified Mathlib/Order/Filter/Basic.lean + def Filter.coframeMinimalAxioms Modified Mathlib/Order/UpperLower/Basic.lean Modified Mathlib/Topology/Sets/Closeds.lean + def TopologicalSpace.Closeds.coframeMinimalAxioms Modified Mathlib/Topology/Sets/Compacts.lean Modified Mathlib/Topology/Sets/Opens.lean + def TopologicalSpace.Opens.frameMinimalAxioms 2024-07-23 10:46:07 670c001 chore: update style exceptions (#15052) I'm happy to remove some style exceptions for you. ESTIMATED CHANGES Modified scripts/style-exceptions.txt 2024-07-23 07:55:57 df0b4dd refactor(Probability): Make kernels a type (#15021) Turn `kernel : AddSubmonoid (α → MeasureTheory.Measure β)` into `Kernel : Type _`. This is similar to #12386 but here to gain access to dot notation rather than for performance reasons. ESTIMATED CHANGES Modified Mathlib/Probability/Independence/Basic.lean Modified Mathlib/Probability/Independence/Conditional.lean Modified Mathlib/Probability/Independence/Kernel.lean + theorem ProbabilityTheory.Kernel.Indep.indepSet_of_measurableSet + theorem ProbabilityTheory.Kernel.Indep.indepSets + theorem ProbabilityTheory.Kernel.Indep.symm + def ProbabilityTheory.Kernel.Indep + theorem ProbabilityTheory.Kernel.IndepFun.ae_eq + theorem ProbabilityTheory.Kernel.IndepFun.comp + theorem ProbabilityTheory.Kernel.IndepFun.meas_inter + theorem ProbabilityTheory.Kernel.IndepFun.neg_left + theorem ProbabilityTheory.Kernel.IndepFun.neg_right + def ProbabilityTheory.Kernel.IndepFun + def ProbabilityTheory.Kernel.IndepSet + theorem ProbabilityTheory.Kernel.IndepSets.bInter + theorem ProbabilityTheory.Kernel.IndepSets.bUnion + theorem ProbabilityTheory.Kernel.IndepSets.iInter + theorem ProbabilityTheory.Kernel.IndepSets.iUnion + theorem ProbabilityTheory.Kernel.IndepSets.indep' + theorem ProbabilityTheory.Kernel.IndepSets.indep + theorem ProbabilityTheory.Kernel.IndepSets.indepSet_of_mem + theorem ProbabilityTheory.Kernel.IndepSets.indep_aux + theorem ProbabilityTheory.Kernel.IndepSets.inter + theorem ProbabilityTheory.Kernel.IndepSets.symm + theorem ProbabilityTheory.Kernel.IndepSets.union + theorem ProbabilityTheory.Kernel.IndepSets.union_iff + def ProbabilityTheory.Kernel.IndepSets + theorem ProbabilityTheory.Kernel.iIndep.iIndepSets' + theorem ProbabilityTheory.Kernel.iIndep.iIndepSets + theorem ProbabilityTheory.Kernel.iIndep.indep + theorem ProbabilityTheory.Kernel.iIndep.meas_biInter + theorem ProbabilityTheory.Kernel.iIndep.meas_iInter + def ProbabilityTheory.Kernel.iIndep + theorem ProbabilityTheory.Kernel.iIndepFun.ae_isProbabilityMeasure + theorem ProbabilityTheory.Kernel.iIndepFun.indepFun + theorem ProbabilityTheory.Kernel.iIndepFun.indepFun_div_div + theorem ProbabilityTheory.Kernel.iIndepFun.indepFun_div_left + theorem ProbabilityTheory.Kernel.iIndepFun.indepFun_div_right + theorem ProbabilityTheory.Kernel.iIndepFun.indepFun_finset + theorem ProbabilityTheory.Kernel.iIndepFun.indepFun_finset_prod_of_not_mem + theorem ProbabilityTheory.Kernel.iIndepFun.indepFun_mul_left + theorem ProbabilityTheory.Kernel.iIndepFun.indepFun_mul_mul + theorem ProbabilityTheory.Kernel.iIndepFun.indepFun_mul_right + theorem ProbabilityTheory.Kernel.iIndepFun.indepFun_prod_mk + theorem ProbabilityTheory.Kernel.iIndepFun.indepFun_prod_mk_prod_mk + theorem ProbabilityTheory.Kernel.iIndepFun.indepFun_prod_range_succ + theorem ProbabilityTheory.Kernel.iIndepFun.meas_biInter + theorem ProbabilityTheory.Kernel.iIndepFun.meas_iInter + theorem ProbabilityTheory.Kernel.iIndepFun.of_subsingleton + def ProbabilityTheory.Kernel.iIndepFun + theorem ProbabilityTheory.Kernel.iIndepFun_iff_measure_inter_preimage_eq_mul + theorem ProbabilityTheory.Kernel.iIndepSet.iIndepFun_indicator + theorem ProbabilityTheory.Kernel.iIndepSet.indep_generateFrom_le + theorem ProbabilityTheory.Kernel.iIndepSet.indep_generateFrom_le_nat + theorem ProbabilityTheory.Kernel.iIndepSet.indep_generateFrom_lt + theorem ProbabilityTheory.Kernel.iIndepSet.indep_generateFrom_of_disjoint + def ProbabilityTheory.Kernel.iIndepSet + theorem ProbabilityTheory.Kernel.iIndepSet_iff_iIndepSets_singleton + theorem ProbabilityTheory.Kernel.iIndepSet_iff_meas_biInter + theorem ProbabilityTheory.Kernel.iIndepSets.iIndep + theorem ProbabilityTheory.Kernel.iIndepSets.iIndepSet_of_mem + theorem ProbabilityTheory.Kernel.iIndepSets.indepSets + theorem ProbabilityTheory.Kernel.iIndepSets.meas_biInter + theorem ProbabilityTheory.Kernel.iIndepSets.meas_iInter + theorem ProbabilityTheory.Kernel.iIndepSets.piiUnionInter_of_not_mem + def ProbabilityTheory.Kernel.iIndepSets + theorem ProbabilityTheory.Kernel.iIndepSets_singleton_iff + theorem ProbabilityTheory.Kernel.iIndep_comap_mem_iff + theorem ProbabilityTheory.Kernel.indepFun_iff_indepSet_preimage + theorem ProbabilityTheory.Kernel.indepFun_iff_measure_inter_preimage_eq_mul + theorem ProbabilityTheory.Kernel.indepSet_empty_left + theorem ProbabilityTheory.Kernel.indepSet_empty_right + theorem ProbabilityTheory.Kernel.indepSet_iff_indepSets_singleton + theorem ProbabilityTheory.Kernel.indepSet_iff_measure_inter_eq_mul + theorem ProbabilityTheory.Kernel.indepSets_of_indepSets_of_le_left + theorem ProbabilityTheory.Kernel.indepSets_of_indepSets_of_le_right + theorem ProbabilityTheory.Kernel.indepSets_piiUnionInter_of_disjoint + theorem ProbabilityTheory.Kernel.indepSets_singleton_iff + theorem ProbabilityTheory.Kernel.indep_bot_left + theorem ProbabilityTheory.Kernel.indep_bot_right + theorem ProbabilityTheory.Kernel.indep_iSup_of_antitone + theorem ProbabilityTheory.Kernel.indep_iSup_of_directed_le + theorem ProbabilityTheory.Kernel.indep_iSup_of_disjoint + theorem ProbabilityTheory.Kernel.indep_iSup_of_monotone + theorem ProbabilityTheory.Kernel.indep_iff_forall_indepSet + theorem ProbabilityTheory.Kernel.indep_of_indep_of_le_left + theorem ProbabilityTheory.Kernel.indep_of_indep_of_le_right - theorem ProbabilityTheory.kernel.Indep.indepSet_of_measurableSet - theorem ProbabilityTheory.kernel.Indep.indepSets - theorem ProbabilityTheory.kernel.Indep.symm - def ProbabilityTheory.kernel.Indep - theorem ProbabilityTheory.kernel.IndepFun.ae_eq - theorem ProbabilityTheory.kernel.IndepFun.comp - theorem ProbabilityTheory.kernel.IndepFun.meas_inter - theorem ProbabilityTheory.kernel.IndepFun.neg_left - theorem ProbabilityTheory.kernel.IndepFun.neg_right - def ProbabilityTheory.kernel.IndepFun - def ProbabilityTheory.kernel.IndepSet - theorem ProbabilityTheory.kernel.IndepSets.bInter - theorem ProbabilityTheory.kernel.IndepSets.bUnion - theorem ProbabilityTheory.kernel.IndepSets.iInter - theorem ProbabilityTheory.kernel.IndepSets.iUnion - theorem ProbabilityTheory.kernel.IndepSets.indep' - theorem ProbabilityTheory.kernel.IndepSets.indep - theorem ProbabilityTheory.kernel.IndepSets.indepSet_of_mem - theorem ProbabilityTheory.kernel.IndepSets.indep_aux - theorem ProbabilityTheory.kernel.IndepSets.inter - theorem ProbabilityTheory.kernel.IndepSets.symm - theorem ProbabilityTheory.kernel.IndepSets.union - theorem ProbabilityTheory.kernel.IndepSets.union_iff - def ProbabilityTheory.kernel.IndepSets - theorem ProbabilityTheory.kernel.iIndep.iIndepSets' - theorem ProbabilityTheory.kernel.iIndep.iIndepSets - theorem ProbabilityTheory.kernel.iIndep.indep - theorem ProbabilityTheory.kernel.iIndep.meas_biInter - theorem ProbabilityTheory.kernel.iIndep.meas_iInter - def ProbabilityTheory.kernel.iIndep - theorem ProbabilityTheory.kernel.iIndepFun.ae_isProbabilityMeasure - theorem ProbabilityTheory.kernel.iIndepFun.indepFun - theorem ProbabilityTheory.kernel.iIndepFun.indepFun_div_div - theorem ProbabilityTheory.kernel.iIndepFun.indepFun_div_left - theorem ProbabilityTheory.kernel.iIndepFun.indepFun_div_right - theorem ProbabilityTheory.kernel.iIndepFun.indepFun_finset - theorem ProbabilityTheory.kernel.iIndepFun.indepFun_finset_prod_of_not_mem - theorem ProbabilityTheory.kernel.iIndepFun.indepFun_mul_left - theorem ProbabilityTheory.kernel.iIndepFun.indepFun_mul_mul - theorem ProbabilityTheory.kernel.iIndepFun.indepFun_mul_right - theorem ProbabilityTheory.kernel.iIndepFun.indepFun_prod_mk - theorem ProbabilityTheory.kernel.iIndepFun.indepFun_prod_mk_prod_mk - theorem ProbabilityTheory.kernel.iIndepFun.indepFun_prod_range_succ - theorem ProbabilityTheory.kernel.iIndepFun.meas_biInter - theorem ProbabilityTheory.kernel.iIndepFun.meas_iInter - theorem ProbabilityTheory.kernel.iIndepFun.of_subsingleton - def ProbabilityTheory.kernel.iIndepFun - theorem ProbabilityTheory.kernel.iIndepFun_iff_measure_inter_preimage_eq_mul - theorem ProbabilityTheory.kernel.iIndepSet.iIndepFun_indicator - theorem ProbabilityTheory.kernel.iIndepSet.indep_generateFrom_le - theorem ProbabilityTheory.kernel.iIndepSet.indep_generateFrom_le_nat - theorem ProbabilityTheory.kernel.iIndepSet.indep_generateFrom_lt - theorem ProbabilityTheory.kernel.iIndepSet.indep_generateFrom_of_disjoint - def ProbabilityTheory.kernel.iIndepSet - theorem ProbabilityTheory.kernel.iIndepSet_iff_iIndepSets_singleton - theorem ProbabilityTheory.kernel.iIndepSet_iff_meas_biInter - theorem ProbabilityTheory.kernel.iIndepSets.iIndep - theorem ProbabilityTheory.kernel.iIndepSets.iIndepSet_of_mem - theorem ProbabilityTheory.kernel.iIndepSets.indepSets - theorem ProbabilityTheory.kernel.iIndepSets.meas_biInter - theorem ProbabilityTheory.kernel.iIndepSets.meas_iInter - theorem ProbabilityTheory.kernel.iIndepSets.piiUnionInter_of_not_mem - def ProbabilityTheory.kernel.iIndepSets - theorem ProbabilityTheory.kernel.iIndepSets_singleton_iff - theorem ProbabilityTheory.kernel.iIndep_comap_mem_iff - theorem ProbabilityTheory.kernel.indepFun_iff_indepSet_preimage - theorem ProbabilityTheory.kernel.indepFun_iff_measure_inter_preimage_eq_mul - theorem ProbabilityTheory.kernel.indepSet_empty_left - theorem ProbabilityTheory.kernel.indepSet_empty_right - theorem ProbabilityTheory.kernel.indepSet_iff_indepSets_singleton - theorem ProbabilityTheory.kernel.indepSet_iff_measure_inter_eq_mul - theorem ProbabilityTheory.kernel.indepSets_of_indepSets_of_le_left - theorem ProbabilityTheory.kernel.indepSets_of_indepSets_of_le_right - theorem ProbabilityTheory.kernel.indepSets_piiUnionInter_of_disjoint - theorem ProbabilityTheory.kernel.indepSets_singleton_iff - theorem ProbabilityTheory.kernel.indep_bot_left - theorem ProbabilityTheory.kernel.indep_bot_right - theorem ProbabilityTheory.kernel.indep_iSup_of_antitone - theorem ProbabilityTheory.kernel.indep_iSup_of_directed_le - theorem ProbabilityTheory.kernel.indep_iSup_of_disjoint - theorem ProbabilityTheory.kernel.indep_iSup_of_monotone - theorem ProbabilityTheory.kernel.indep_iff_forall_indepSet - theorem ProbabilityTheory.kernel.indep_of_indep_of_le_left - theorem ProbabilityTheory.kernel.indep_of_indep_of_le_right Modified Mathlib/Probability/Independence/ZeroOne.lean + theorem ProbabilityTheory.Kernel.indep_biSup_compl + theorem ProbabilityTheory.Kernel.indep_biSup_limsup + theorem ProbabilityTheory.Kernel.indep_iSup_directed_limsup + theorem ProbabilityTheory.Kernel.indep_iSup_limsup + theorem ProbabilityTheory.Kernel.indep_limsup_atBot_self + theorem ProbabilityTheory.Kernel.indep_limsup_atTop_self + theorem ProbabilityTheory.Kernel.indep_limsup_self + theorem ProbabilityTheory.Kernel.measure_eq_zero_or_one_of_indepSet_self + theorem ProbabilityTheory.Kernel.measure_eq_zero_or_one_or_top_of_indepSet_self + theorem ProbabilityTheory.Kernel.measure_zero_or_one_of_measurableSet_limsup + theorem ProbabilityTheory.Kernel.measure_zero_or_one_of_measurableSet_limsup_atBot + theorem ProbabilityTheory.Kernel.measure_zero_or_one_of_measurableSet_limsup_atTop - theorem ProbabilityTheory.kernel.indep_biSup_compl - theorem ProbabilityTheory.kernel.indep_biSup_limsup - theorem ProbabilityTheory.kernel.indep_iSup_directed_limsup - theorem ProbabilityTheory.kernel.indep_iSup_limsup - theorem ProbabilityTheory.kernel.indep_limsup_atBot_self - theorem ProbabilityTheory.kernel.indep_limsup_atTop_self - theorem ProbabilityTheory.kernel.indep_limsup_self - theorem ProbabilityTheory.kernel.measure_eq_zero_or_one_of_indepSet_self - theorem ProbabilityTheory.kernel.measure_eq_zero_or_one_or_top_of_indepSet_self - theorem ProbabilityTheory.kernel.measure_zero_or_one_of_measurableSet_limsup - theorem ProbabilityTheory.kernel.measure_zero_or_one_of_measurableSet_limsup_atBot - theorem ProbabilityTheory.kernel.measure_zero_or_one_of_measurableSet_limsup_atTop Modified Mathlib/Probability/Kernel/Basic.lean +/- theorem ProbabilityTheory.IsFiniteKernel.bound_lt_top +/- theorem ProbabilityTheory.IsFiniteKernel.bound_ne_top + theorem ProbabilityTheory.Kernel.IsFiniteKernel.integrable + theorem ProbabilityTheory.Kernel.IsMarkovKernel.comapRight + theorem ProbabilityTheory.Kernel.IsMarkovKernel.integrable + theorem ProbabilityTheory.Kernel.IsSFiniteKernel.finset_sum + theorem ProbabilityTheory.Kernel.add_apply + def ProbabilityTheory.Kernel.coeAddHom + theorem ProbabilityTheory.Kernel.coe_add + theorem ProbabilityTheory.Kernel.coe_finset_sum + theorem ProbabilityTheory.Kernel.coe_nsmul + theorem ProbabilityTheory.Kernel.coe_zero + theorem ProbabilityTheory.Kernel.comapRight_apply' + theorem ProbabilityTheory.Kernel.comapRight_apply + theorem ProbabilityTheory.Kernel.comapRight_id + def ProbabilityTheory.Kernel.const + theorem ProbabilityTheory.Kernel.const_add + theorem ProbabilityTheory.Kernel.const_apply + theorem ProbabilityTheory.Kernel.const_zero + theorem ProbabilityTheory.Kernel.deterministic_apply' + theorem ProbabilityTheory.Kernel.deterministic_apply + theorem ProbabilityTheory.Kernel.ext + theorem ProbabilityTheory.Kernel.ext_fun + theorem ProbabilityTheory.Kernel.ext_fun_iff + theorem ProbabilityTheory.Kernel.ext_iff' + theorem ProbabilityTheory.Kernel.ext_iff + theorem ProbabilityTheory.Kernel.finset_sum_apply' + theorem ProbabilityTheory.Kernel.finset_sum_apply + theorem ProbabilityTheory.Kernel.integral_const + theorem ProbabilityTheory.Kernel.integral_deterministic' + theorem ProbabilityTheory.Kernel.integral_deterministic + theorem ProbabilityTheory.Kernel.integral_piecewise + theorem ProbabilityTheory.Kernel.isSFiniteKernel_sum + theorem ProbabilityTheory.Kernel.isSFiniteKernel_sum_of_denumerable + theorem ProbabilityTheory.Kernel.kernel_sum_seq + theorem ProbabilityTheory.Kernel.lintegral_const + theorem ProbabilityTheory.Kernel.lintegral_deterministic' + theorem ProbabilityTheory.Kernel.lintegral_deterministic + theorem ProbabilityTheory.Kernel.lintegral_piecewise + theorem ProbabilityTheory.Kernel.lintegral_restrict + theorem ProbabilityTheory.Kernel.measurable + theorem ProbabilityTheory.Kernel.measure_le_bound + theorem ProbabilityTheory.Kernel.measure_sum_seq + theorem ProbabilityTheory.Kernel.nsmul_apply + def ProbabilityTheory.Kernel.ofFunOfCountable + def ProbabilityTheory.Kernel.piecewise + theorem ProbabilityTheory.Kernel.piecewise_apply' + theorem ProbabilityTheory.Kernel.piecewise_apply + theorem ProbabilityTheory.Kernel.restrict_apply' + theorem ProbabilityTheory.Kernel.restrict_apply + theorem ProbabilityTheory.Kernel.restrict_univ + theorem ProbabilityTheory.Kernel.setIntegral_const + theorem ProbabilityTheory.Kernel.setIntegral_deterministic' + theorem ProbabilityTheory.Kernel.setIntegral_deterministic + theorem ProbabilityTheory.Kernel.setIntegral_piecewise + theorem ProbabilityTheory.Kernel.setIntegral_restrict + theorem ProbabilityTheory.Kernel.setLIntegral_const + theorem ProbabilityTheory.Kernel.setLIntegral_deterministic' + theorem ProbabilityTheory.Kernel.setLIntegral_deterministic + theorem ProbabilityTheory.Kernel.setLIntegral_piecewise + theorem ProbabilityTheory.Kernel.setLIntegral_restrict + theorem ProbabilityTheory.Kernel.sum_add + theorem ProbabilityTheory.Kernel.sum_apply' + theorem ProbabilityTheory.Kernel.sum_apply + theorem ProbabilityTheory.Kernel.sum_comm + theorem ProbabilityTheory.Kernel.sum_const + theorem ProbabilityTheory.Kernel.sum_fintype + theorem ProbabilityTheory.Kernel.sum_zero + theorem ProbabilityTheory.Kernel.zero_apply + structure ProbabilityTheory.Kernel +/- theorem ProbabilityTheory.isFiniteKernel_of_le - theorem ProbabilityTheory.kernel.IsFiniteKernel.integrable - theorem ProbabilityTheory.kernel.IsMarkovKernel.comapRight - theorem ProbabilityTheory.kernel.IsMarkovKernel.integrable - theorem ProbabilityTheory.kernel.IsSFiniteKernel.finset_sum - def ProbabilityTheory.kernel.coeAddHom - theorem ProbabilityTheory.kernel.coeFn_add - theorem ProbabilityTheory.kernel.coeFn_zero - theorem ProbabilityTheory.kernel.coe_finset_sum - theorem ProbabilityTheory.kernel.comapRight_apply' - theorem ProbabilityTheory.kernel.comapRight_apply - theorem ProbabilityTheory.kernel.comapRight_id - def ProbabilityTheory.kernel.const - theorem ProbabilityTheory.kernel.const_add - theorem ProbabilityTheory.kernel.const_apply - theorem ProbabilityTheory.kernel.const_zero - theorem ProbabilityTheory.kernel.deterministic_apply' - theorem ProbabilityTheory.kernel.deterministic_apply - theorem ProbabilityTheory.kernel.ext - theorem ProbabilityTheory.kernel.ext_fun - theorem ProbabilityTheory.kernel.ext_fun_iff - theorem ProbabilityTheory.kernel.ext_iff' - theorem ProbabilityTheory.kernel.ext_iff - theorem ProbabilityTheory.kernel.finset_sum_apply' - theorem ProbabilityTheory.kernel.finset_sum_apply - theorem ProbabilityTheory.kernel.integral_const - theorem ProbabilityTheory.kernel.integral_deterministic' - theorem ProbabilityTheory.kernel.integral_deterministic - theorem ProbabilityTheory.kernel.integral_piecewise - theorem ProbabilityTheory.kernel.isSFiniteKernel_sum - theorem ProbabilityTheory.kernel.isSFiniteKernel_sum_of_denumerable - theorem ProbabilityTheory.kernel.kernel_sum_seq - theorem ProbabilityTheory.kernel.lintegral_const - theorem ProbabilityTheory.kernel.lintegral_deterministic' - theorem ProbabilityTheory.kernel.lintegral_deterministic - theorem ProbabilityTheory.kernel.lintegral_piecewise - theorem ProbabilityTheory.kernel.lintegral_restrict - theorem ProbabilityTheory.kernel.measure_le_bound - theorem ProbabilityTheory.kernel.measure_sum_seq - def ProbabilityTheory.kernel.ofFunOfCountable - def ProbabilityTheory.kernel.piecewise - theorem ProbabilityTheory.kernel.piecewise_apply' - theorem ProbabilityTheory.kernel.piecewise_apply - theorem ProbabilityTheory.kernel.restrict_apply' - theorem ProbabilityTheory.kernel.restrict_apply - theorem ProbabilityTheory.kernel.restrict_univ - theorem ProbabilityTheory.kernel.setIntegral_const - theorem ProbabilityTheory.kernel.setIntegral_deterministic' - theorem ProbabilityTheory.kernel.setIntegral_deterministic - theorem ProbabilityTheory.kernel.setIntegral_piecewise - theorem ProbabilityTheory.kernel.setIntegral_restrict - theorem ProbabilityTheory.kernel.setLIntegral_const - theorem ProbabilityTheory.kernel.setLIntegral_deterministic' - theorem ProbabilityTheory.kernel.setLIntegral_deterministic - theorem ProbabilityTheory.kernel.setLIntegral_piecewise - theorem ProbabilityTheory.kernel.setLIntegral_restrict - theorem ProbabilityTheory.kernel.sum_add - theorem ProbabilityTheory.kernel.sum_apply' - theorem ProbabilityTheory.kernel.sum_apply - theorem ProbabilityTheory.kernel.sum_comm - theorem ProbabilityTheory.kernel.sum_const - theorem ProbabilityTheory.kernel.sum_fintype - theorem ProbabilityTheory.kernel.sum_zero - theorem ProbabilityTheory.kernel.zero_apply Modified Mathlib/Probability/Kernel/Composition.lean + theorem ProbabilityTheory.Kernel.ae_ae_of_ae_compProd + theorem ProbabilityTheory.Kernel.ae_compProd_iff + theorem ProbabilityTheory.Kernel.ae_compProd_of_ae_ae + theorem ProbabilityTheory.Kernel.ae_kernel_lt_top + theorem ProbabilityTheory.Kernel.ae_null_of_compProd_null + def ProbabilityTheory.Kernel.comap + theorem ProbabilityTheory.Kernel.comapRight_compProd_id_prod + theorem ProbabilityTheory.Kernel.comap_apply' + theorem ProbabilityTheory.Kernel.comap_apply + theorem ProbabilityTheory.Kernel.comap_id' + theorem ProbabilityTheory.Kernel.comap_id + theorem ProbabilityTheory.Kernel.comap_map_comm + theorem ProbabilityTheory.Kernel.comap_zero + theorem ProbabilityTheory.Kernel.compProdFun_empty + theorem ProbabilityTheory.Kernel.compProdFun_eq_tsum + theorem ProbabilityTheory.Kernel.compProdFun_iUnion + theorem ProbabilityTheory.Kernel.compProdFun_tsum_left + theorem ProbabilityTheory.Kernel.compProdFun_tsum_right + theorem ProbabilityTheory.Kernel.compProd_add_left + theorem ProbabilityTheory.Kernel.compProd_add_right + theorem ProbabilityTheory.Kernel.compProd_apply + theorem ProbabilityTheory.Kernel.compProd_apply_eq_compProdFun + theorem ProbabilityTheory.Kernel.compProd_apply_univ_le + theorem ProbabilityTheory.Kernel.compProd_eq_sum_compProd + theorem ProbabilityTheory.Kernel.compProd_eq_sum_compProd_left + theorem ProbabilityTheory.Kernel.compProd_eq_sum_compProd_right + theorem ProbabilityTheory.Kernel.compProd_eq_tsum_compProd + theorem ProbabilityTheory.Kernel.compProd_null + theorem ProbabilityTheory.Kernel.compProd_of_not_isSFiniteKernel_left + theorem ProbabilityTheory.Kernel.compProd_of_not_isSFiniteKernel_right + theorem ProbabilityTheory.Kernel.compProd_restrict + theorem ProbabilityTheory.Kernel.compProd_restrict_left + theorem ProbabilityTheory.Kernel.compProd_restrict_right + theorem ProbabilityTheory.Kernel.compProd_zero_left + theorem ProbabilityTheory.Kernel.compProd_zero_right + theorem ProbabilityTheory.Kernel.comp_apply' + theorem ProbabilityTheory.Kernel.comp_apply + theorem ProbabilityTheory.Kernel.comp_assoc + theorem ProbabilityTheory.Kernel.comp_deterministic_eq_comap + theorem ProbabilityTheory.Kernel.comp_eq_snd_compProd + theorem ProbabilityTheory.Kernel.deterministic_comp_eq_map + theorem ProbabilityTheory.Kernel.fst_apply' + theorem ProbabilityTheory.Kernel.fst_apply + theorem ProbabilityTheory.Kernel.fst_compProd + theorem ProbabilityTheory.Kernel.fst_map_id_prod + theorem ProbabilityTheory.Kernel.fst_map_prod + theorem ProbabilityTheory.Kernel.fst_prod + theorem ProbabilityTheory.Kernel.fst_prodMkLeft + theorem ProbabilityTheory.Kernel.fst_prodMkRight + theorem ProbabilityTheory.Kernel.fst_swapRight + theorem ProbabilityTheory.Kernel.fst_zero + theorem ProbabilityTheory.Kernel.le_compProd_apply + theorem ProbabilityTheory.Kernel.lintegral_comap + theorem ProbabilityTheory.Kernel.lintegral_comp + theorem ProbabilityTheory.Kernel.lintegral_compProd' + theorem ProbabilityTheory.Kernel.lintegral_compProd + theorem ProbabilityTheory.Kernel.lintegral_compProd₀ + theorem ProbabilityTheory.Kernel.lintegral_fst + theorem ProbabilityTheory.Kernel.lintegral_prod + theorem ProbabilityTheory.Kernel.lintegral_prodMkLeft + theorem ProbabilityTheory.Kernel.lintegral_prodMkRight + theorem ProbabilityTheory.Kernel.lintegral_snd + theorem ProbabilityTheory.Kernel.lintegral_swapLeft + theorem ProbabilityTheory.Kernel.lintegral_swapRight + theorem ProbabilityTheory.Kernel.map_apply' + theorem ProbabilityTheory.Kernel.map_apply + theorem ProbabilityTheory.Kernel.map_const + theorem ProbabilityTheory.Kernel.map_id' + theorem ProbabilityTheory.Kernel.map_id + theorem ProbabilityTheory.Kernel.map_prodMkLeft + theorem ProbabilityTheory.Kernel.map_prodMkRight + theorem ProbabilityTheory.Kernel.map_zero + theorem ProbabilityTheory.Kernel.measurable_compProdFun + theorem ProbabilityTheory.Kernel.measurable_compProdFun_of_finite + def ProbabilityTheory.Kernel.prodMkLeft + theorem ProbabilityTheory.Kernel.prodMkLeft_add + theorem ProbabilityTheory.Kernel.prodMkLeft_apply' + theorem ProbabilityTheory.Kernel.prodMkLeft_apply + theorem ProbabilityTheory.Kernel.prodMkLeft_zero + def ProbabilityTheory.Kernel.prodMkRight + theorem ProbabilityTheory.Kernel.prodMkRight_add + theorem ProbabilityTheory.Kernel.prodMkRight_apply' + theorem ProbabilityTheory.Kernel.prodMkRight_apply + theorem ProbabilityTheory.Kernel.prodMkRight_zero + theorem ProbabilityTheory.Kernel.prod_apply' + theorem ProbabilityTheory.Kernel.prod_apply + theorem ProbabilityTheory.Kernel.prod_const + theorem ProbabilityTheory.Kernel.setLIntegral_compProd + theorem ProbabilityTheory.Kernel.setLIntegral_compProd_univ_left + theorem ProbabilityTheory.Kernel.setLIntegral_compProd_univ_right + theorem ProbabilityTheory.Kernel.snd_apply' + theorem ProbabilityTheory.Kernel.snd_apply + theorem ProbabilityTheory.Kernel.snd_map_prod + theorem ProbabilityTheory.Kernel.snd_map_prod_id + theorem ProbabilityTheory.Kernel.snd_prod + theorem ProbabilityTheory.Kernel.snd_prodMkLeft + theorem ProbabilityTheory.Kernel.snd_prodMkRight + theorem ProbabilityTheory.Kernel.snd_swapRight + theorem ProbabilityTheory.Kernel.snd_zero + theorem ProbabilityTheory.Kernel.sum_comap_seq + theorem ProbabilityTheory.Kernel.sum_map_seq + def ProbabilityTheory.Kernel.swapLeft + theorem ProbabilityTheory.Kernel.swapLeft_apply' + theorem ProbabilityTheory.Kernel.swapLeft_apply + theorem ProbabilityTheory.Kernel.swapLeft_prodMkLeft + theorem ProbabilityTheory.Kernel.swapLeft_prodMkRight + theorem ProbabilityTheory.Kernel.swapRight_apply' + theorem ProbabilityTheory.Kernel.swapRight_apply - theorem ProbabilityTheory.kernel.ae_ae_of_ae_compProd - theorem ProbabilityTheory.kernel.ae_compProd_iff - theorem ProbabilityTheory.kernel.ae_compProd_of_ae_ae - theorem ProbabilityTheory.kernel.ae_kernel_lt_top - theorem ProbabilityTheory.kernel.ae_null_of_compProd_null - def ProbabilityTheory.kernel.comap - theorem ProbabilityTheory.kernel.comapRight_compProd_id_prod - theorem ProbabilityTheory.kernel.comap_apply' - theorem ProbabilityTheory.kernel.comap_apply - theorem ProbabilityTheory.kernel.comap_id' - theorem ProbabilityTheory.kernel.comap_id - theorem ProbabilityTheory.kernel.comap_map_comm - theorem ProbabilityTheory.kernel.comap_zero - theorem ProbabilityTheory.kernel.compProdFun_empty - theorem ProbabilityTheory.kernel.compProdFun_eq_tsum - theorem ProbabilityTheory.kernel.compProdFun_iUnion - theorem ProbabilityTheory.kernel.compProdFun_tsum_left - theorem ProbabilityTheory.kernel.compProdFun_tsum_right - theorem ProbabilityTheory.kernel.compProd_add_left - theorem ProbabilityTheory.kernel.compProd_add_right - theorem ProbabilityTheory.kernel.compProd_apply - theorem ProbabilityTheory.kernel.compProd_apply_eq_compProdFun - theorem ProbabilityTheory.kernel.compProd_apply_univ_le - theorem ProbabilityTheory.kernel.compProd_eq_sum_compProd - theorem ProbabilityTheory.kernel.compProd_eq_sum_compProd_left - theorem ProbabilityTheory.kernel.compProd_eq_sum_compProd_right - theorem ProbabilityTheory.kernel.compProd_eq_tsum_compProd - theorem ProbabilityTheory.kernel.compProd_null - theorem ProbabilityTheory.kernel.compProd_of_not_isSFiniteKernel_left - theorem ProbabilityTheory.kernel.compProd_of_not_isSFiniteKernel_right - theorem ProbabilityTheory.kernel.compProd_restrict - theorem ProbabilityTheory.kernel.compProd_restrict_left - theorem ProbabilityTheory.kernel.compProd_restrict_right - theorem ProbabilityTheory.kernel.compProd_zero_left - theorem ProbabilityTheory.kernel.compProd_zero_right - theorem ProbabilityTheory.kernel.comp_apply' - theorem ProbabilityTheory.kernel.comp_apply - theorem ProbabilityTheory.kernel.comp_assoc - theorem ProbabilityTheory.kernel.comp_deterministic_eq_comap - theorem ProbabilityTheory.kernel.comp_eq_snd_compProd - theorem ProbabilityTheory.kernel.deterministic_comp_eq_map - theorem ProbabilityTheory.kernel.fst_apply' - theorem ProbabilityTheory.kernel.fst_apply - theorem ProbabilityTheory.kernel.fst_compProd - theorem ProbabilityTheory.kernel.fst_map_id_prod - theorem ProbabilityTheory.kernel.fst_map_prod - theorem ProbabilityTheory.kernel.fst_prod - theorem ProbabilityTheory.kernel.fst_prodMkLeft - theorem ProbabilityTheory.kernel.fst_prodMkRight - theorem ProbabilityTheory.kernel.fst_swapRight - theorem ProbabilityTheory.kernel.fst_zero - theorem ProbabilityTheory.kernel.le_compProd_apply - theorem ProbabilityTheory.kernel.lintegral_comap - theorem ProbabilityTheory.kernel.lintegral_comp - theorem ProbabilityTheory.kernel.lintegral_compProd' - theorem ProbabilityTheory.kernel.lintegral_compProd - theorem ProbabilityTheory.kernel.lintegral_compProd₀ - theorem ProbabilityTheory.kernel.lintegral_fst - theorem ProbabilityTheory.kernel.lintegral_prod - theorem ProbabilityTheory.kernel.lintegral_prodMkLeft - theorem ProbabilityTheory.kernel.lintegral_prodMkRight - theorem ProbabilityTheory.kernel.lintegral_snd - theorem ProbabilityTheory.kernel.lintegral_swapLeft - theorem ProbabilityTheory.kernel.lintegral_swapRight - theorem ProbabilityTheory.kernel.map_apply' - theorem ProbabilityTheory.kernel.map_apply - theorem ProbabilityTheory.kernel.map_const - theorem ProbabilityTheory.kernel.map_id' - theorem ProbabilityTheory.kernel.map_id - theorem ProbabilityTheory.kernel.map_prodMkLeft - theorem ProbabilityTheory.kernel.map_prodMkRight - theorem ProbabilityTheory.kernel.map_zero - theorem ProbabilityTheory.kernel.measurable_compProdFun - theorem ProbabilityTheory.kernel.measurable_compProdFun_of_finite - def ProbabilityTheory.kernel.prodMkLeft - theorem ProbabilityTheory.kernel.prodMkLeft_add - theorem ProbabilityTheory.kernel.prodMkLeft_apply' - theorem ProbabilityTheory.kernel.prodMkLeft_apply - theorem ProbabilityTheory.kernel.prodMkLeft_zero - def ProbabilityTheory.kernel.prodMkRight - theorem ProbabilityTheory.kernel.prodMkRight_add - theorem ProbabilityTheory.kernel.prodMkRight_apply' - theorem ProbabilityTheory.kernel.prodMkRight_apply - theorem ProbabilityTheory.kernel.prodMkRight_zero - theorem ProbabilityTheory.kernel.prod_apply' - theorem ProbabilityTheory.kernel.prod_apply - theorem ProbabilityTheory.kernel.prod_const - theorem ProbabilityTheory.kernel.setLIntegral_compProd - theorem ProbabilityTheory.kernel.setLIntegral_compProd_univ_left - theorem ProbabilityTheory.kernel.setLIntegral_compProd_univ_right - theorem ProbabilityTheory.kernel.snd_apply' - theorem ProbabilityTheory.kernel.snd_apply - theorem ProbabilityTheory.kernel.snd_map_prod - theorem ProbabilityTheory.kernel.snd_map_prod_id - theorem ProbabilityTheory.kernel.snd_prod - theorem ProbabilityTheory.kernel.snd_prodMkLeft - theorem ProbabilityTheory.kernel.snd_prodMkRight - theorem ProbabilityTheory.kernel.snd_swapRight - theorem ProbabilityTheory.kernel.snd_zero - theorem ProbabilityTheory.kernel.sum_comap_seq - theorem ProbabilityTheory.kernel.sum_map_seq - def ProbabilityTheory.kernel.swapLeft - theorem ProbabilityTheory.kernel.swapLeft_apply' - theorem ProbabilityTheory.kernel.swapLeft_apply - theorem ProbabilityTheory.kernel.swapLeft_prodMkLeft - theorem ProbabilityTheory.kernel.swapLeft_prodMkRight - theorem ProbabilityTheory.kernel.swapRight_apply' - theorem ProbabilityTheory.kernel.swapRight_apply Modified Mathlib/Probability/Kernel/CondDistrib.lean Modified Mathlib/Probability/Kernel/Condexp.lean Modified Mathlib/Probability/Kernel/Disintegration/Basic.lean + def ProbabilityTheory.Kernel.borelMarkovFromReal + theorem ProbabilityTheory.Kernel.borelMarkovFromReal_apply' + theorem ProbabilityTheory.Kernel.borelMarkovFromReal_apply + theorem ProbabilityTheory.Kernel.compProd_fst_borelMarkovFromReal + theorem ProbabilityTheory.Kernel.compProd_fst_borelMarkovFromReal_eq_comapRight_compProd + theorem ProbabilityTheory.Kernel.compProd_fst_condKernel + theorem ProbabilityTheory.Kernel.compProd_fst_condKernelBorel + theorem ProbabilityTheory.Kernel.compProd_fst_condKernelCountable + theorem ProbabilityTheory.Kernel.compProd_fst_condKernelReal + theorem ProbabilityTheory.Kernel.compProd_fst_condKernelUnitBorel + theorem ProbabilityTheory.Kernel.compProd_fst_condKernelUnitReal + def ProbabilityTheory.Kernel.condKernelBorel + def ProbabilityTheory.Kernel.condKernelCDF + def ProbabilityTheory.Kernel.condKernelCountable + theorem ProbabilityTheory.Kernel.condKernelCountable_apply + def ProbabilityTheory.Kernel.condKernelReal + def ProbabilityTheory.Kernel.condKernelUnitBorel + def ProbabilityTheory.Kernel.condKernelUnitReal + theorem ProbabilityTheory.Kernel.isCondKernelCDF_condKernelCDF + theorem ProbabilityTheory.Kernel.isRatCondKernelCDFAux_density_Iic + theorem ProbabilityTheory.Kernel.isRatCondKernelCDF_density_Iic - def ProbabilityTheory.kernel.borelMarkovFromReal - theorem ProbabilityTheory.kernel.borelMarkovFromReal_apply' - theorem ProbabilityTheory.kernel.borelMarkovFromReal_apply - theorem ProbabilityTheory.kernel.compProd_fst_borelMarkovFromReal - theorem ProbabilityTheory.kernel.compProd_fst_borelMarkovFromReal_eq_comapRight_compProd - theorem ProbabilityTheory.kernel.compProd_fst_condKernel - theorem ProbabilityTheory.kernel.compProd_fst_condKernelBorel - theorem ProbabilityTheory.kernel.compProd_fst_condKernelCountable - theorem ProbabilityTheory.kernel.compProd_fst_condKernelReal - theorem ProbabilityTheory.kernel.compProd_fst_condKernelUnitBorel - theorem ProbabilityTheory.kernel.compProd_fst_condKernelUnitReal - def ProbabilityTheory.kernel.condKernelBorel - def ProbabilityTheory.kernel.condKernelCDF - def ProbabilityTheory.kernel.condKernelCountable - theorem ProbabilityTheory.kernel.condKernelCountable_apply - def ProbabilityTheory.kernel.condKernelReal - def ProbabilityTheory.kernel.condKernelUnitBorel - def ProbabilityTheory.kernel.condKernelUnitReal - theorem ProbabilityTheory.kernel.isCondKernelCDF_condKernelCDF - theorem ProbabilityTheory.kernel.isRatCondKernelCDFAux_density_Iic - theorem ProbabilityTheory.kernel.isRatCondKernelCDF_density_Iic Modified Mathlib/Probability/Kernel/Disintegration/CdfToKernel.lean +/- structure ProbabilityTheory.IsCondKernelCDF +/- structure ProbabilityTheory.IsRatCondKernelCDF +/- structure ProbabilityTheory.IsRatCondKernelCDFAux Modified Mathlib/Probability/Kernel/Disintegration/CondCdf.lean Modified Mathlib/Probability/Kernel/Disintegration/Density.lean + theorem ProbabilityTheory.Kernel.adapted_densityProcess + theorem ProbabilityTheory.Kernel.condexp_densityProcess + def ProbabilityTheory.Kernel.density + def ProbabilityTheory.Kernel.densityProcess + theorem ProbabilityTheory.Kernel.densityProcess_antitone_kernel_right + theorem ProbabilityTheory.Kernel.densityProcess_def + theorem ProbabilityTheory.Kernel.densityProcess_empty + theorem ProbabilityTheory.Kernel.densityProcess_fst_univ + theorem ProbabilityTheory.Kernel.densityProcess_fst_univ_ae + theorem ProbabilityTheory.Kernel.densityProcess_le_one + theorem ProbabilityTheory.Kernel.densityProcess_mono_kernel_left + theorem ProbabilityTheory.Kernel.densityProcess_mono_set + theorem ProbabilityTheory.Kernel.densityProcess_nonneg + theorem ProbabilityTheory.Kernel.density_ae_eq_limitProcess + theorem ProbabilityTheory.Kernel.density_fst_univ + theorem ProbabilityTheory.Kernel.density_le_one + theorem ProbabilityTheory.Kernel.density_mono_set + theorem ProbabilityTheory.Kernel.density_nonneg + theorem ProbabilityTheory.Kernel.integrable_density + theorem ProbabilityTheory.Kernel.integrable_densityProcess + theorem ProbabilityTheory.Kernel.integral_density + theorem ProbabilityTheory.Kernel.integral_densityProcess + theorem ProbabilityTheory.Kernel.lintegral_density + theorem ProbabilityTheory.Kernel.martingale_densityProcess + theorem ProbabilityTheory.Kernel.meas_countablePartitionSet_le_of_fst_le + theorem ProbabilityTheory.Kernel.measurable_countableFiltration_densityProcess + theorem ProbabilityTheory.Kernel.measurable_density + theorem ProbabilityTheory.Kernel.measurable_densityProcess + theorem ProbabilityTheory.Kernel.measurable_densityProcess_aux + theorem ProbabilityTheory.Kernel.measurable_densityProcess_countableFiltration_aux + theorem ProbabilityTheory.Kernel.measurable_densityProcess_left + theorem ProbabilityTheory.Kernel.measurable_densityProcess_right + theorem ProbabilityTheory.Kernel.measurable_density_left + theorem ProbabilityTheory.Kernel.measurable_density_right + theorem ProbabilityTheory.Kernel.memL1_limitProcess_densityProcess + theorem ProbabilityTheory.Kernel.setIntegral_density + theorem ProbabilityTheory.Kernel.setIntegral_densityProcess + theorem ProbabilityTheory.Kernel.setIntegral_densityProcess_of_le + theorem ProbabilityTheory.Kernel.setIntegral_densityProcess_of_mem + theorem ProbabilityTheory.Kernel.setIntegral_density_of_measurableSet + theorem ProbabilityTheory.Kernel.setLIntegral_density + theorem ProbabilityTheory.Kernel.snorm_densityProcess_le + theorem ProbabilityTheory.Kernel.snorm_density_le + theorem ProbabilityTheory.Kernel.stronglyMeasurable_countableFiltration_densityProcess + theorem ProbabilityTheory.Kernel.tendsto_densityProcess_atTop_empty_of_antitone + theorem ProbabilityTheory.Kernel.tendsto_densityProcess_atTop_of_antitone + theorem ProbabilityTheory.Kernel.tendsto_densityProcess_fst_atTop_ae_of_monotone + theorem ProbabilityTheory.Kernel.tendsto_densityProcess_fst_atTop_univ_of_monotone + theorem ProbabilityTheory.Kernel.tendsto_densityProcess_limitProcess + theorem ProbabilityTheory.Kernel.tendsto_density_atTop_ae_of_antitone + theorem ProbabilityTheory.Kernel.tendsto_density_fst_atTop_ae_of_monotone + theorem ProbabilityTheory.Kernel.tendsto_integral_density_of_antitone + theorem ProbabilityTheory.Kernel.tendsto_integral_density_of_monotone + theorem ProbabilityTheory.Kernel.tendsto_m_density + theorem ProbabilityTheory.Kernel.tendsto_setIntegral_densityProcess + theorem ProbabilityTheory.Kernel.tendsto_snorm_one_densityProcess_limitProcess + theorem ProbabilityTheory.Kernel.tendsto_snorm_one_restrict_densityProcess_limitProcess - theorem ProbabilityTheory.kernel.adapted_densityProcess - theorem ProbabilityTheory.kernel.condexp_densityProcess - def ProbabilityTheory.kernel.density - def ProbabilityTheory.kernel.densityProcess - theorem ProbabilityTheory.kernel.densityProcess_antitone_kernel_right - theorem ProbabilityTheory.kernel.densityProcess_def - theorem ProbabilityTheory.kernel.densityProcess_empty - theorem ProbabilityTheory.kernel.densityProcess_fst_univ - theorem ProbabilityTheory.kernel.densityProcess_fst_univ_ae - theorem ProbabilityTheory.kernel.densityProcess_le_one - theorem ProbabilityTheory.kernel.densityProcess_mono_kernel_left - theorem ProbabilityTheory.kernel.densityProcess_mono_set - theorem ProbabilityTheory.kernel.densityProcess_nonneg - theorem ProbabilityTheory.kernel.density_ae_eq_limitProcess - theorem ProbabilityTheory.kernel.density_fst_univ - theorem ProbabilityTheory.kernel.density_le_one - theorem ProbabilityTheory.kernel.density_mono_set - theorem ProbabilityTheory.kernel.density_nonneg - theorem ProbabilityTheory.kernel.integrable_density - theorem ProbabilityTheory.kernel.integrable_densityProcess - theorem ProbabilityTheory.kernel.integral_density - theorem ProbabilityTheory.kernel.integral_densityProcess - theorem ProbabilityTheory.kernel.lintegral_density - theorem ProbabilityTheory.kernel.martingale_densityProcess - theorem ProbabilityTheory.kernel.meas_countablePartitionSet_le_of_fst_le - theorem ProbabilityTheory.kernel.measurable_countableFiltration_densityProcess - theorem ProbabilityTheory.kernel.measurable_density - theorem ProbabilityTheory.kernel.measurable_densityProcess - theorem ProbabilityTheory.kernel.measurable_densityProcess_aux - theorem ProbabilityTheory.kernel.measurable_densityProcess_countableFiltration_aux - theorem ProbabilityTheory.kernel.measurable_densityProcess_left - theorem ProbabilityTheory.kernel.measurable_densityProcess_right - theorem ProbabilityTheory.kernel.measurable_density_left - theorem ProbabilityTheory.kernel.measurable_density_right - theorem ProbabilityTheory.kernel.memL1_limitProcess_densityProcess - theorem ProbabilityTheory.kernel.setIntegral_density - theorem ProbabilityTheory.kernel.setIntegral_densityProcess - theorem ProbabilityTheory.kernel.setIntegral_densityProcess_of_le - theorem ProbabilityTheory.kernel.setIntegral_densityProcess_of_mem - theorem ProbabilityTheory.kernel.setIntegral_density_of_measurableSet - theorem ProbabilityTheory.kernel.setLIntegral_density - theorem ProbabilityTheory.kernel.snorm_densityProcess_le - theorem ProbabilityTheory.kernel.snorm_density_le - theorem ProbabilityTheory.kernel.stronglyMeasurable_countableFiltration_densityProcess - theorem ProbabilityTheory.kernel.tendsto_densityProcess_atTop_empty_of_antitone - theorem ProbabilityTheory.kernel.tendsto_densityProcess_atTop_of_antitone - theorem ProbabilityTheory.kernel.tendsto_densityProcess_fst_atTop_ae_of_monotone - theorem ProbabilityTheory.kernel.tendsto_densityProcess_fst_atTop_univ_of_monotone - theorem ProbabilityTheory.kernel.tendsto_densityProcess_limitProcess - theorem ProbabilityTheory.kernel.tendsto_density_atTop_ae_of_antitone - theorem ProbabilityTheory.kernel.tendsto_density_fst_atTop_ae_of_monotone - theorem ProbabilityTheory.kernel.tendsto_integral_density_of_antitone - theorem ProbabilityTheory.kernel.tendsto_integral_density_of_monotone - theorem ProbabilityTheory.kernel.tendsto_m_density - theorem ProbabilityTheory.kernel.tendsto_setIntegral_densityProcess - theorem ProbabilityTheory.kernel.tendsto_snorm_one_densityProcess_limitProcess - theorem ProbabilityTheory.kernel.tendsto_snorm_one_restrict_densityProcess_limitProcess Modified Mathlib/Probability/Kernel/Disintegration/Integral.lean Modified Mathlib/Probability/Kernel/Disintegration/Unique.lean + theorem ProbabilityTheory.Kernel.apply_eq_measure_condKernel_of_compProd_eq + theorem ProbabilityTheory.Kernel.condKernel_apply_eq_condKernel +/- theorem ProbabilityTheory.eq_condKernel_of_measure_eq_compProd' +/- theorem ProbabilityTheory.eq_condKernel_of_measure_eq_compProd - theorem ProbabilityTheory.kernel.apply_eq_measure_condKernel_of_compProd_eq - theorem ProbabilityTheory.kernel.condKernel_apply_eq_condKernel Modified Mathlib/Probability/Kernel/IntegralCompProd.lean + theorem ProbabilityTheory.Kernel.continuous_integral_integral + theorem ProbabilityTheory.Kernel.integral_fn_integral_add + theorem ProbabilityTheory.Kernel.integral_fn_integral_sub + theorem ProbabilityTheory.Kernel.integral_integral_add' + theorem ProbabilityTheory.Kernel.integral_integral_add + theorem ProbabilityTheory.Kernel.integral_integral_sub' + theorem ProbabilityTheory.Kernel.integral_integral_sub + theorem ProbabilityTheory.Kernel.lintegral_fn_integral_sub - theorem ProbabilityTheory.kernel.continuous_integral_integral - theorem ProbabilityTheory.kernel.integral_fn_integral_add - theorem ProbabilityTheory.kernel.integral_fn_integral_sub - theorem ProbabilityTheory.kernel.integral_integral_add' - theorem ProbabilityTheory.kernel.integral_integral_add - theorem ProbabilityTheory.kernel.integral_integral_sub' - theorem ProbabilityTheory.kernel.integral_integral_sub - theorem ProbabilityTheory.kernel.lintegral_fn_integral_sub Modified Mathlib/Probability/Kernel/Invariance.lean + theorem ProbabilityTheory.Kernel.Invariant.comp + theorem ProbabilityTheory.Kernel.Invariant.comp_const + theorem ProbabilityTheory.Kernel.Invariant.def + def ProbabilityTheory.Kernel.Invariant + theorem ProbabilityTheory.Kernel.bind_add + theorem ProbabilityTheory.Kernel.bind_smul + theorem ProbabilityTheory.Kernel.comp_const_apply_eq_bind + theorem ProbabilityTheory.Kernel.const_bind_eq_comp_const - theorem ProbabilityTheory.kernel.Invariant.comp - theorem ProbabilityTheory.kernel.Invariant.comp_const - theorem ProbabilityTheory.kernel.Invariant.def - def ProbabilityTheory.kernel.Invariant - theorem ProbabilityTheory.kernel.bind_add - theorem ProbabilityTheory.kernel.bind_smul - theorem ProbabilityTheory.kernel.comp_const_apply_eq_bind - theorem ProbabilityTheory.kernel.const_bind_eq_comp_const Modified Mathlib/Probability/Kernel/MeasurableIntegral.lean + theorem ProbabilityTheory.Kernel.measurable_kernel_prod_mk_left' + theorem ProbabilityTheory.Kernel.measurable_kernel_prod_mk_left + theorem ProbabilityTheory.Kernel.measurable_kernel_prod_mk_left_of_finite + theorem ProbabilityTheory.Kernel.measurable_kernel_prod_mk_right + theorem ProbabilityTheory.Kernel.measurable_lintegral_indicator_const - theorem ProbabilityTheory.kernel.measurable_kernel_prod_mk_left' - theorem ProbabilityTheory.kernel.measurable_kernel_prod_mk_left - theorem ProbabilityTheory.kernel.measurable_kernel_prod_mk_left_of_finite - theorem ProbabilityTheory.kernel.measurable_kernel_prod_mk_right - theorem ProbabilityTheory.kernel.measurable_lintegral_indicator_const Modified Mathlib/Probability/Kernel/MeasureCompProd.lean +/- def MeasureTheory.Measure.compProd +/- theorem MeasureTheory.Measure.compProd_add_left +/- theorem MeasureTheory.Measure.compProd_add_right +/- theorem MeasureTheory.Measure.compProd_zero_left +/- theorem MeasureTheory.Measure.compProd_zero_right +/- theorem MeasureTheory.Measure.dirac_unit_compProd Modified Mathlib/Probability/Kernel/RadonNikodym.lean + theorem ProbabilityTheory.Kernel.measurableSet_absolutelyContinuous + theorem ProbabilityTheory.Kernel.measurableSet_mutuallySingular + theorem ProbabilityTheory.Kernel.measurableSet_mutuallySingularSet + theorem ProbabilityTheory.Kernel.measurableSet_mutuallySingularSetSlice + theorem ProbabilityTheory.Kernel.measurable_rnDeriv + theorem ProbabilityTheory.Kernel.measurable_rnDerivAux + theorem ProbabilityTheory.Kernel.measurable_rnDerivAux_right + theorem ProbabilityTheory.Kernel.measurable_rnDeriv_right + theorem ProbabilityTheory.Kernel.measurable_singularPart_fun + theorem ProbabilityTheory.Kernel.measurable_singularPart_fun_right + theorem ProbabilityTheory.Kernel.measure_mutuallySingularSetSlice + theorem ProbabilityTheory.Kernel.mem_mutuallySingularSetSlice + def ProbabilityTheory.Kernel.mutuallySingularSet + def ProbabilityTheory.Kernel.mutuallySingularSetSlice + theorem ProbabilityTheory.Kernel.mutuallySingular_singularPart + theorem ProbabilityTheory.Kernel.not_mem_mutuallySingularSetSlice + def ProbabilityTheory.Kernel.rnDerivAux + theorem ProbabilityTheory.Kernel.rnDerivAux_le_one + theorem ProbabilityTheory.Kernel.rnDerivAux_nonneg + theorem ProbabilityTheory.Kernel.rnDeriv_add_singularPart + theorem ProbabilityTheory.Kernel.rnDeriv_def' + theorem ProbabilityTheory.Kernel.rnDeriv_eq_top_iff' + theorem ProbabilityTheory.Kernel.rnDeriv_eq_top_iff + theorem ProbabilityTheory.Kernel.setLIntegral_rnDerivAux + theorem ProbabilityTheory.Kernel.singularPart_compl_mutuallySingularSetSlice + theorem ProbabilityTheory.Kernel.singularPart_eq_zero_iff_absolutelyContinuous + theorem ProbabilityTheory.Kernel.singularPart_eq_zero_iff_apply_eq_zero + theorem ProbabilityTheory.Kernel.singularPart_eq_zero_iff_measure_eq_zero + theorem ProbabilityTheory.Kernel.singularPart_of_subset_compl_mutuallySingularSetSlice + theorem ProbabilityTheory.Kernel.singularPart_of_subset_mutuallySingularSetSlice + theorem ProbabilityTheory.Kernel.withDensity_one_sub_rnDerivAux + theorem ProbabilityTheory.Kernel.withDensity_rnDerivAux + theorem ProbabilityTheory.Kernel.withDensity_rnDeriv_eq_zero_iff_apply_eq_zero + theorem ProbabilityTheory.Kernel.withDensity_rnDeriv_eq_zero_iff_measure_eq_zero + theorem ProbabilityTheory.Kernel.withDensity_rnDeriv_eq_zero_iff_mutuallySingular + theorem ProbabilityTheory.Kernel.withDensity_rnDeriv_mutuallySingularSetSlice + theorem ProbabilityTheory.Kernel.withDensity_rnDeriv_of_subset_compl_mutuallySingularSetSlice + theorem ProbabilityTheory.Kernel.withDensity_rnDeriv_of_subset_mutuallySingularSetSlice - theorem ProbabilityTheory.kernel.measurableSet_absolutelyContinuous - theorem ProbabilityTheory.kernel.measurableSet_mutuallySingular - theorem ProbabilityTheory.kernel.measurableSet_mutuallySingularSet - theorem ProbabilityTheory.kernel.measurableSet_mutuallySingularSetSlice - theorem ProbabilityTheory.kernel.measurable_rnDeriv - theorem ProbabilityTheory.kernel.measurable_rnDerivAux - theorem ProbabilityTheory.kernel.measurable_rnDerivAux_right - theorem ProbabilityTheory.kernel.measurable_rnDeriv_right - theorem ProbabilityTheory.kernel.measurable_singularPart_fun - theorem ProbabilityTheory.kernel.measurable_singularPart_fun_right - theorem ProbabilityTheory.kernel.measure_mutuallySingularSetSlice - theorem ProbabilityTheory.kernel.mem_mutuallySingularSetSlice - def ProbabilityTheory.kernel.mutuallySingularSet - def ProbabilityTheory.kernel.mutuallySingularSetSlice - theorem ProbabilityTheory.kernel.mutuallySingular_singularPart - theorem ProbabilityTheory.kernel.not_mem_mutuallySingularSetSlice - def ProbabilityTheory.kernel.rnDerivAux - theorem ProbabilityTheory.kernel.rnDerivAux_le_one - theorem ProbabilityTheory.kernel.rnDerivAux_nonneg - theorem ProbabilityTheory.kernel.rnDeriv_add_singularPart - theorem ProbabilityTheory.kernel.rnDeriv_def' - theorem ProbabilityTheory.kernel.rnDeriv_eq_top_iff' - theorem ProbabilityTheory.kernel.rnDeriv_eq_top_iff - theorem ProbabilityTheory.kernel.setLIntegral_rnDerivAux - theorem ProbabilityTheory.kernel.singularPart_compl_mutuallySingularSetSlice - theorem ProbabilityTheory.kernel.singularPart_eq_zero_iff_absolutelyContinuous - theorem ProbabilityTheory.kernel.singularPart_eq_zero_iff_apply_eq_zero - theorem ProbabilityTheory.kernel.singularPart_eq_zero_iff_measure_eq_zero - theorem ProbabilityTheory.kernel.singularPart_of_subset_compl_mutuallySingularSetSlice - theorem ProbabilityTheory.kernel.singularPart_of_subset_mutuallySingularSetSlice - theorem ProbabilityTheory.kernel.withDensity_one_sub_rnDerivAux - theorem ProbabilityTheory.kernel.withDensity_rnDerivAux - theorem ProbabilityTheory.kernel.withDensity_rnDeriv_eq_zero_iff_apply_eq_zero - theorem ProbabilityTheory.kernel.withDensity_rnDeriv_eq_zero_iff_measure_eq_zero - theorem ProbabilityTheory.kernel.withDensity_rnDeriv_eq_zero_iff_mutuallySingular - theorem ProbabilityTheory.kernel.withDensity_rnDeriv_mutuallySingularSetSlice - theorem ProbabilityTheory.kernel.withDensity_rnDeriv_of_subset_compl_mutuallySingularSetSlice - theorem ProbabilityTheory.kernel.withDensity_rnDeriv_of_subset_mutuallySingularSetSlice Modified Mathlib/Probability/Kernel/WithDensity.lean + theorem ProbabilityTheory.Kernel.integral_withDensity + theorem ProbabilityTheory.Kernel.isFiniteKernel_withDensity_of_bounded + theorem ProbabilityTheory.Kernel.isSFiniteKernel_withDensity_of_isFiniteKernel + theorem ProbabilityTheory.Kernel.lintegral_withDensity + theorem ProbabilityTheory.Kernel.withDensity_add_left + theorem ProbabilityTheory.Kernel.withDensity_add_right + theorem ProbabilityTheory.Kernel.withDensity_kernel_sum + theorem ProbabilityTheory.Kernel.withDensity_of_not_measurable + theorem ProbabilityTheory.Kernel.withDensity_one' + theorem ProbabilityTheory.Kernel.withDensity_one + theorem ProbabilityTheory.Kernel.withDensity_sub_add_cancel + theorem ProbabilityTheory.Kernel.withDensity_tsum + theorem ProbabilityTheory.Kernel.withDensity_zero' + theorem ProbabilityTheory.Kernel.withDensity_zero - theorem ProbabilityTheory.kernel.integral_withDensity - theorem ProbabilityTheory.kernel.isFiniteKernel_withDensity_of_bounded - theorem ProbabilityTheory.kernel.isSFiniteKernel_withDensity_of_isFiniteKernel - theorem ProbabilityTheory.kernel.lintegral_withDensity - theorem ProbabilityTheory.kernel.withDensity_add_left - theorem ProbabilityTheory.kernel.withDensity_add_right - theorem ProbabilityTheory.kernel.withDensity_kernel_sum - theorem ProbabilityTheory.kernel.withDensity_of_not_measurable - theorem ProbabilityTheory.kernel.withDensity_one' - theorem ProbabilityTheory.kernel.withDensity_one - theorem ProbabilityTheory.kernel.withDensity_sub_add_cancel - theorem ProbabilityTheory.kernel.withDensity_tsum - theorem ProbabilityTheory.kernel.withDensity_zero' - theorem ProbabilityTheory.kernel.withDensity_zero 2024-07-23 07:33:40 4a01cef chore(NullMeasurable): remove TODO (#15043) This isn't true for σ-algebra larger than the null measurable sets. ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Measure/NullMeasurable.lean 2024-07-23 04:50:43 d388846 feat(MvPowerSeries.Basic): compute coefficients of powers of MvPowerSeries (#14865) `MvPowerSeries.coeff_pow` computes the coefficients of powers of power series `coeff_eq_zero_of_constantCoeff_nilpotent` shows that some coefficients of some powers of a power series are zero when the constant coefficient is nilpotent CoAuthored with María Inés de Frutos Fernández ESTIMATED CHANGES Modified Mathlib/RingTheory/MvPowerSeries/Basic.lean + theorem MvPowerSeries.coeff_eq_zero_of_constantCoeff_nilpotent + theorem MvPowerSeries.coeff_pow 2024-07-23 04:33:03 b821599 feat: the `minImports` linter (#14840) Introducing the "linter form" of `#min_imports in`. The linter is called `linter.minImports` and flags every command that increases the imports-so-far in the file. When it reaches the end of the file, it also reports which current imports are unneeded and which imports are missing to minimize the current imports. Here is an example. ```lean import Mathlib.Tactic.Linter.MinImports -- `import Mathlib.Data.Int.Notation` flagged as missing import Mathlib.Data.Nat.Notation -- flagged as unneeded import Mathlib.Data.Int.Defs -- flagged as unneeded -- Imports increased to [Lean.Parser.Command] set_option linter.minImports true -- Imports increased to [Mathlib.Tactic.Linter.MinImports] #reset_min_imports -- Imports increased to [Mathlib.Data.Int.Notation, Mathlib.Tactic.Linter.MinImports] #guard (0 : ℤ) = 0 ``` Test PR at #14839. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Tactic.lean Added Mathlib/Tactic/Linter/MinImports.lean + def Mathlib.Linter.MinImports.getLinterHash + def Mathlib.Linter.MinImports.minImportsLinter Modified Mathlib/Tactic/MinImports.lean + def Mathlib.Command.MinImports.previousInstName Modified test/MinImports.lean 2024-07-23 01:22:07 0649d7c feat(Data/Set/Sigma): univ sigma preimage eq self (#14961) This PR adds a single simp lemma stating that for `α : ι → Type*` and `(s : Set (Σ i, α i))`, we have `univ.sigma (fun i ↦ Sigma.mk i ⁻¹' s) = s`. ESTIMATED CHANGES Modified Mathlib/Data/Set/Sigma.lean + theorem Set.univ_sigma_preimage 2024-07-23 00:55:58 232c771 feat (RingTheory/HahnSeries/Multiplication): module structure on HahnModule (#10846) We add some theorems and instances for Hahn Modules, in particular, a `HahnSeries Γ R`-module structure on `HahnModule Γ R V` for `R` a semiring and `V` an `R`-module. Some HahnSeries Mul results are reduced to the corresponding SMul results. ESTIMATED CHANGES Modified Mathlib/Algebra/Order/AddTorsor.lean Modified Mathlib/Data/Finset/SMulAntidiagonal.lean - theorem Finset.SMulAntidiagonal_min_smul_min + theorem Finset.smulAntidiagonal_min_smul_min Modified Mathlib/RingTheory/HahnSeries/Multiplication.lean + theorem HahnModule.add_smul + theorem HahnModule.ext_iff +/- def HahnModule.of +/- theorem HahnModule.of_smul +/- theorem HahnModule.of_symm_smul + theorem HahnModule.one_smul' + theorem HahnModule.single_smul_coeff_add + theorem HahnModule.single_zero_smul_coeff + theorem HahnModule.single_zero_smul_eq_smul + theorem HahnModule.smul_add +/- theorem HahnModule.smul_coeff + theorem HahnModule.smul_coeff_order_add_order +/- theorem HahnModule.smul_coeff_right + theorem HahnModule.support_smul_subset_vadd_support' + theorem HahnModule.support_smul_subset_vadd_support + theorem HahnModule.zero_smul' + theorem HahnSeries.leadingCoeff_one Modified Mathlib/RingTheory/HahnSeries/Summable.lean +/- theorem HahnSeries.isUnit_iff 2024-07-22 23:57:39 de6c2cd chore: rename `Basis.smul` to `Basis.smulTower` (#15036) This makes room for a `SMul` instance and lemmas about it Moves: - `Basis.smul` -> `Basis.smulTower` - `Basis.smul_repr` -> `Basis.smulTower_repr` - `Basis.smul_repr_mk` -> `Basis.smulTower_repr_mk` - `Basis.smul_apply` -> `Basis.smulTower_apply` - `Basis.smul_leftMulMatrix` -> `Basis.smulTower_leftMulMatrix` - `Basis.smul_leftMulMatrix_algebraMap` -> `Basis.smulTower_leftMulMatrix_algebraMap` - `Basis.smul_leftMulMatrix_algebraMap_eq` -> `Basis.smulTower_leftMulMatrix_algebraMap_eq` - `Basis.smul_leftMulMatrix_algebraMap_ne` -> `Basis.smulTower_leftMulMatrix_algebraMap_ne` [Zulip thread](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/Renaming.20.60Basis.2Esmul.60/near/452825113) ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/Dimension/Free.lean Modified Mathlib/LinearAlgebra/Matrix/ToLin.lean + theorem Algebra.smulTower_leftMulMatrix + theorem Algebra.smulTower_leftMulMatrix_algebraMap + theorem Algebra.smulTower_leftMulMatrix_algebraMap_eq + theorem Algebra.smulTower_leftMulMatrix_algebraMap_ne - theorem Algebra.smul_leftMulMatrix - theorem Algebra.smul_leftMulMatrix_algebraMap - theorem Algebra.smul_leftMulMatrix_algebraMap_eq - theorem Algebra.smul_leftMulMatrix_algebraMap_ne Modified Mathlib/RingTheory/AlgebraTower.lean + theorem Basis.smulTower_apply + theorem Basis.smulTower_repr + theorem Basis.smulTower_repr_mk - theorem Basis.smul_apply - theorem Basis.smul_repr - theorem Basis.smul_repr_mk Modified Mathlib/RingTheory/Norm/Basic.lean Modified Mathlib/RingTheory/Trace/Defs.lean 2024-07-22 23:57:38 b304e16 chore: remove two obsolete porting notes (#15035) There's no need to backport anything to mathlib 3 any more. ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/Unitization.lean Modified Mathlib/Data/ZMod/Defs.lean 2024-07-22 23:15:27 c8e8e85 style: remove extraneous spaces around [ arguments (#15037) ESTIMATED CHANGES Modified Mathlib/Algebra/MonoidAlgebra/Grading.lean Modified Mathlib/Algebra/Order/Antidiag/Prod.lean Modified Mathlib/Algebra/Order/Archimedean.lean Modified Mathlib/Analysis/SpecialFunctions/Integrals.lean Modified Mathlib/Combinatorics/Additive/FreimanHom.lean Modified Mathlib/LinearAlgebra/Lagrange.lean Modified Mathlib/NumberTheory/NumberField/Discriminant.lean Modified Mathlib/Topology/Order/LawsonTopology.lean Modified test/Monotonicity.lean 2024-07-22 21:05:28 bd42e7c chore: normalize number of newlines before module docstring (#15029) This helps avoid some spurious diffs on `nightly-testing` and `bump` branches as we clean up from removing `#align`. ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/Rat.lean Modified Mathlib/Algebra/Category/Grp/Adjunctions.lean Modified Mathlib/Algebra/Homology/LocalCohomology.lean Modified Mathlib/Algebra/Polynomial/Degree/Definitions.lean Modified Mathlib/Analysis/Calculus/ContDiff/FiniteDimension.lean Modified Mathlib/Analysis/Convex/Cone/Extension.lean Modified Mathlib/Analysis/NormedSpace/BoundedLinearMaps.lean Modified Mathlib/Analysis/SpecialFunctions/Pow/Real.lean Modified Mathlib/Analysis/SumOverResidueClass.lean Modified Mathlib/CategoryTheory/Limits/Types.lean Modified Mathlib/CategoryTheory/Subterminal.lean Modified Mathlib/Combinatorics/Enumerative/Composition.lean Modified Mathlib/Data/DList/Basic.lean Modified Mathlib/Data/Finset/Pointwise/Interval.lean Modified Mathlib/Data/Finsupp/Weight.lean Modified Mathlib/Data/Matroid/Init.lean Modified Mathlib/Data/Rat/Cast/CharZero.lean Modified Mathlib/Data/Rat/Cast/Defs.lean Modified Mathlib/Data/Rat/Cast/Lemmas.lean Modified Mathlib/Data/Vector/Defs.lean Modified Mathlib/Data/Vector/MapLemmas.lean Modified Mathlib/GroupTheory/Perm/DomMulAct.lean Modified Mathlib/LinearAlgebra/Dimension/Finite.lean Modified Mathlib/MeasureTheory/Order/Group/Lattice.lean Modified Mathlib/NumberTheory/Harmonic/ZetaAsymp.lean Modified Mathlib/Order/Basic.lean Modified Mathlib/Order/PrimeSeparator.lean Modified Mathlib/RingTheory/Ideal/Pointwise.lean Modified Mathlib/RingTheory/PowerSeries/Trunc.lean Modified Mathlib/SetTheory/Ordinal/FixedPointApproximants.lean Modified Mathlib/Tactic/FunProp/Mor.lean Modified Mathlib/Tactic/Widget/CongrM.lean Modified Mathlib/Util/FormatTable.lean Modified Mathlib/Util/GetAllModules.lean 2024-07-22 19:50:35 93c07b2 chore: robustifying for debug.byAsSorry (#14993) These are some minor changes, which are think are positive or neutral in any case, that help Mathlib compile under `set_option debug.byAsSorry true` (an option that [arrived](https://github.com/leanprover/lean4/pull/4576) in v4.10 that turns all `by` blocks into sorries ESTIMATED CHANGES Modified Mathlib/Algebra/Divisibility/Basic.lean Modified Mathlib/Algebra/Divisibility/Units.lean +/- theorem IsUnit.dvd +/- theorem IsUnit.dvd_mul_left +/- theorem IsUnit.dvd_mul_right +/- theorem IsUnit.isPrimal +/- theorem IsUnit.mul_left_dvd +/- theorem IsUnit.mul_right_dvd Modified Mathlib/Algebra/Field/IsField.lean Modified Mathlib/Algebra/Field/MinimalAxioms.lean Modified Mathlib/Algebra/GroupWithZero/InjSurj.lean Modified Mathlib/Algebra/Order/Monoid/Unbundled/Basic.lean Modified Mathlib/Combinatorics/Quiver/Path.lean Modified Mathlib/Control/Applicative.lean Modified Mathlib/Control/Functor.lean Modified Mathlib/Data/List/Basic.lean +/- theorem List.foldl1_eq_foldr1 +/- theorem List.foldl_eq_foldr +/- theorem List.foldl_eq_of_comm_of_assoc +/- theorem List.getElem_indexOf Modified Mathlib/Data/List/EditDistance/Defs.lean +/- theorem Levenshtein.impl_cons_fst_zero Modified Mathlib/Data/List/OfFn.lean +/- theorem List.getElem_ofFn_go Modified Mathlib/Data/List/Zip.lean Modified Mathlib/Data/Nat/Defs.lean Modified Mathlib/GroupTheory/NoncommCoprod.lean +/- theorem MulHom.comp_noncommCoprod +/- def MulHom.noncommCoprod Modified Mathlib/Order/BooleanAlgebra.lean Modified Mathlib/Order/Bounds/Basic.lean +/- theorem Monotone.image_upperBounds_subset_upperBounds_image +/- theorem MonotoneOn.image_upperBounds_subset_upperBounds_image Modified Mathlib/Order/GaloisConnection.lean +/- theorem GaloisConnection.l_iSup +/- theorem GaloisConnection.l_iSup₂ +/- theorem GaloisConnection.l_sSup +/- theorem GaloisConnection.lowerBounds_u_image +/- theorem GaloisConnection.u_eq +/- theorem GaloisConnection.upperBounds_l_image Modified Mathlib/Order/RelIso/Basic.lean 2024-07-22 19:50:34 733640f feat(Topology/Algebra/Order/LiminfLimsup): generalize map liminf and map limsup lemmas (#14591) Generalize map liminf and map limsup lemmas. Instead of assuming boundedness in both directions, it suffices to assume boundedness in one direction and coboundedness in the other direction. ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Integral/BoundedContinuousFunction.lean Modified Mathlib/MeasureTheory/Measure/Portmanteau.lean Modified Mathlib/Order/LiminfLimsup.lean + theorem Antitone.frequently_ge_map_of_frequently_le + theorem Antitone.frequently_le_map_of_frequently_ge + theorem Antitone.isCoboundedUnder_ge_of_isCobounded + theorem Antitone.isCoboundedUnder_le_of_isCobounded + theorem Filter.IsCobounded.frequently_ge + theorem Filter.IsCobounded.frequently_le + theorem Filter.IsCobounded.of_frequently_ge + theorem Filter.IsCobounded.of_frequently_le + theorem Monotone.frequently_ge_map_of_frequently_ge + theorem Monotone.frequently_le_map_of_frequently_le + theorem Monotone.isCoboundedUnder_ge_of_isCobounded + theorem Monotone.isCoboundedUnder_le_of_isCobounded Modified Mathlib/Topology/Algebra/Order/LiminfLimsup.lean Modified Mathlib/Topology/Instances/ENNReal.lean 2024-07-22 19:09:53 5f23f7c feat(Filter): add `Filter.EventuallyEq.symmDiff` (#15016) ESTIMATED CHANGES Modified Mathlib/Order/Filter/Basic.lean 2024-07-22 17:39:53 407f293 chore(lint-style.sh): remove duplicate check for case clashes (#15027) The check_case action (run earlier in the same workflow step) runs the same check across the entire repository. ESTIMATED CHANGES Modified scripts/lint-style.sh 2024-07-22 17:39:52 d995afc feat(Data/Matroid/Closure): matroid closure and independence (#15025) A bunch of API for the interaction between matroid closure and independence/bases. ESTIMATED CHANGES Modified Mathlib/Data/Matroid/Closure.lean + theorem Matroid.Base.closure_eq + theorem Matroid.Base.closure_of_superset + theorem Matroid.Basis'.basis_closure_right + theorem Matroid.Basis'.closure_eq_closure + theorem Matroid.Basis.basis_closure_right + theorem Matroid.Basis.basis_of_closure_eq_closure + theorem Matroid.Basis.closure_eq_closure + theorem Matroid.Basis.closure_eq_right + theorem Matroid.Basis.eq_of_closure_subset + theorem Matroid.Basis.subset_closure + theorem Matroid.Indep.base_iff_ground_subset_closure + theorem Matroid.Indep.base_of_ground_subset_closure + theorem Matroid.Indep.basis_closure + theorem Matroid.Indep.basis_of_subset_of_subset_closure + theorem Matroid.Indep.closure_eq_setOf_basis_insert + theorem Matroid.Indep.closure_iInter_eq_biInter_closure_of_forall_subset + theorem Matroid.Indep.closure_inter_eq_inter_closure + theorem Matroid.Indep.closure_inter_eq_self_of_subset + theorem Matroid.Indep.closure_sInter_eq_biInter_closure_of_forall_subset + theorem Matroid.Indep.insert_basis_iff_mem_closure + theorem Matroid.Indep.insert_dep_iff + theorem Matroid.Indep.insert_diff_indep_iff + theorem Matroid.Indep.insert_indep_iff + theorem Matroid.Indep.insert_indep_iff_of_not_mem + theorem Matroid.Indep.mem_closure_iff' + theorem Matroid.Indep.mem_closure_iff + theorem Matroid.Indep.mem_closure_iff_of_not_mem + theorem Matroid.Indep.not_mem_closure_iff + theorem Matroid.Indep.not_mem_closure_iff_of_not_mem + theorem Matroid.base_iff_indep_closure_eq + theorem Matroid.basis'_iff_basis_closure + theorem Matroid.basis_iff_basis_closure_of_subset' + theorem Matroid.basis_iff_basis_closure_of_subset + theorem Matroid.basis_iff_indep_closure + theorem Matroid.basis_iff_indep_subset_closure + theorem Matroid.basis_union_iff_indep_closure + theorem Matroid.closure_biInter_eq_biInter_closure_of_biUnion_indep + theorem Matroid.closure_iInter_eq_iInter_closure_of_iUnion_indep + theorem Matroid.closure_sInter_eq_biInter_closure_of_sUnion_indep + theorem Matroid.empty_basis_iff + theorem Matroid.exists_basis_inter_ground_basis_closure + theorem Matroid.insert_indep_iff 2024-07-22 17:11:37 b9f14eb chore(LinearAlgebra/Matrix/Reindex): generalize `reindexAlgEquiv` (#14823) ESTIMATED CHANGES Modified Mathlib/Algebra/Lie/Classical.lean Modified Mathlib/LinearAlgebra/Matrix/Basis.lean Modified Mathlib/LinearAlgebra/Matrix/Reindex.lean +/- theorem Matrix.det_reindexAlgEquiv +/- def Matrix.reindexAlgEquiv +/- theorem Matrix.reindexAlgEquiv_apply +/- theorem Matrix.reindexAlgEquiv_mul +/- theorem Matrix.reindexAlgEquiv_refl +/- theorem Matrix.reindexAlgEquiv_symm Modified Mathlib/LinearAlgebra/Matrix/Transvection.lean 2024-07-22 15:55:24 63fc395 chore(SpecialFunctions): remove many obsolete porting notes about simp (#15015) Many @[simp] attributes can be added back now. ESTIMATED CHANGES Modified Mathlib/Analysis/SpecialFunctions/Integrals.lean Modified Mathlib/MeasureTheory/Integral/IntervalIntegral.lean 2024-07-22 15:39:22 d6c2f3e feat(RingTheory/Support): Define support of a module (#14507) We define the support of a module as a `Set (PrimeSpectrum R)`. We prove various results about it including `Supp M = ∅ ↔ M = 0` and that `Supp M` is closed for finite modules. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Module/LocalizedModule.lean + theorem LocalizedModule.mem_ker_mkLinearMap_iff + theorem LocalizedModule.subsingleton_iff + theorem LocalizedModule.subsingleton_iff_ker_eq_top Added Mathlib/AlgebraicGeometry/PrimeSpectrum/Module.lean + theorem LocalizedModule.subsingleton_iff_disjoint + theorem Module.isClosed_support + theorem Module.stableUnderSpecialization_support + theorem Module.support_subset_preimage_comap Added Mathlib/RingTheory/Support.lean + theorem LinearEquiv.support_eq + theorem LocalizedModule.exists_subsingleton_away + theorem LocalizedModule.subsingleton_iff_support_subset + theorem Module.annihilator_le_of_mem_support + theorem Module.mem_support_iff' + theorem Module.mem_support_iff + theorem Module.mem_support_iff_exists_annihilator + theorem Module.mem_support_iff_of_finite + theorem Module.mem_support_iff_of_span_eq_top + theorem Module.not_mem_support_iff' + theorem Module.not_mem_support_iff + def Module.support + theorem Module.support_eq_empty + theorem Module.support_eq_empty_iff + theorem Module.support_eq_zeroLocus + theorem Module.support_of_algebra + theorem Module.support_of_exact + theorem Module.support_of_noZeroSMulDivisors + theorem Module.support_subset_of_injective + theorem Module.support_subset_of_surjective 2024-07-22 14:24:47 fb97366 feat: add the `cdot` linter (#15010) The `cdot` linter is a syntax linter that flags uses of the "cdot" `·` that are achieved by typing a character different from `·`. For instance, a "plain" dot `.` is allowed syntax, but is flagged by the linter. ESTIMATED CHANGES Modified Mathlib/Combinatorics/Colex.lean Modified Mathlib/NumberTheory/LegendreSymbol/AddCharacter.lean Modified Mathlib/Tactic/Linter/Lint.lean + def Mathlib.Linter.CDotLinter.cdotLinter + def Mathlib.Linter.CDotLinter.getLinterHash + def Mathlib.Linter.findCDot + def Mathlib.Linter.isCDot? + def Mathlib.Linter.unwanted_cdot Modified test/Lint.lean 2024-07-22 14:24:46 409fa73 feat: continuity of primitives for parametric integrals (#11185) From the sphere eversion project and generalised by `sgouezel`. This is used in the sphere eversion project to show that averaging of loops is continuous (which will be PRed to mathlib at a later point). Co-authored by: @fpvandoorn (who write this code originally, I believe) ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Constructions/BorelSpace/Real.lean + theorem tendsto_measure_Icc + theorem tendsto_measure_Icc_nhdsWithin_right' + theorem tendsto_measure_Icc_nhdsWithin_right Modified Mathlib/MeasureTheory/Integral/DominatedConvergence.lean +/- theorem intervalIntegral.continuousAt_parametric_primitive_of_dominated + theorem intervalIntegral.continuous_parametric_intervalIntegral_of_continuous' + theorem intervalIntegral.continuous_parametric_intervalIntegral_of_continuous + theorem intervalIntegral.continuous_parametric_primitive_of_continuous Modified Mathlib/Topology/MetricSpace/Pseudo/Lemmas.lean + theorem Real.singleton_eq_inter_Icc Modified Mathlib/Topology/Order/LeftRight.lean + theorem nhdsWithin_right_sup_nhds_singleton 2024-07-22 14:10:31 6f1c52c chore: rename interval_integrable -> intervalIntegrable (#15013) I'm not sure if renaming private lemmas needs a deprecation; I'm happy to remove it again. ESTIMATED CHANGES Modified Mathlib/Analysis/SpecialFunctions/Gamma/Basic.lean 2024-07-22 12:33:25 5eea94d refactor: Make sure concrete Heyting algebras define their `himp` explicitly (#15005) There are a few structures in Mathlib which mathematically are Heyting algebras but do not actually define their Heyting implication, or define it implicitly as `x ⇨ y := y ⊔ xᶜ` when a nicer formula is available. This PR makes sure this is not the case. ESTIMATED CHANGES Modified Mathlib/Combinatorics/SimpleGraph/Finsubgraph.lean + theorem SimpleGraph.Finsubgraph.coe_bot + theorem SimpleGraph.Finsubgraph.coe_iInf + theorem SimpleGraph.Finsubgraph.coe_iSup + theorem SimpleGraph.Finsubgraph.coe_inf + theorem SimpleGraph.Finsubgraph.coe_sInf + theorem SimpleGraph.Finsubgraph.coe_sSup + theorem SimpleGraph.Finsubgraph.coe_sup + theorem SimpleGraph.Finsubgraph.coe_top Modified Mathlib/Combinatorics/SimpleGraph/Subgraph.lean + theorem SimpleGraph.Subgraph.verts_mono + theorem SimpleGraph.Subgraph.verts_monotone Modified Mathlib/MeasureTheory/MeasurableSpace/Basic.lean + theorem MeasurableSet.coe_himp Modified Mathlib/ModelTheory/Definability.lean + theorem FirstOrder.Language.DefinableSet.coe_himp + theorem Set.Definable.himp +/- theorem Set.Definable.image_comp_sum_inl_fin Modified Mathlib/Topology/Clopen.lean + theorem IsClopen.himp Modified Mathlib/Topology/Sets/Closeds.lean +/- theorem TopologicalSpace.Clopens.coe_bot +/- theorem TopologicalSpace.Clopens.coe_compl + theorem TopologicalSpace.Clopens.coe_himp +/- theorem TopologicalSpace.Clopens.coe_inf +/- theorem TopologicalSpace.Clopens.coe_sdiff +/- theorem TopologicalSpace.Clopens.coe_sup +/- theorem TopologicalSpace.Clopens.coe_top Modified Mathlib/Topology/Sets/Compacts.lean +/- theorem TopologicalSpace.CompactOpens.coe_bot +/- theorem TopologicalSpace.CompactOpens.coe_compl + theorem TopologicalSpace.CompactOpens.coe_himp +/- theorem TopologicalSpace.CompactOpens.coe_inf +/- theorem TopologicalSpace.CompactOpens.coe_sdiff +/- theorem TopologicalSpace.CompactOpens.coe_sup +/- theorem TopologicalSpace.CompactOpens.coe_top 2024-07-22 11:41:25 d25a507 chore: split off `Defs` and `Induction` from `Nat/Factorization/Basic` (#14960) `Nat/Factorization/Basic` has 900 lines and 5 imports. This PR reduces size and number of imported files in several downstream files by importing the minimal newly created `Nat/Factorization/Defs` or `Nat/Factorization/Induction` ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Analysis/SpecialFunctions/Log/Basic.lean Modified Mathlib/Data/Nat/Factorization/Basic.lean - theorem Nat.Prime.factorization_pos_of_dvd - theorem Nat.Prime.factorization_pow - theorem Nat.eq_of_factorization_eq - def Nat.factorization - def Nat.factorizationEquiv - theorem Nat.factorizationEquiv_apply - def Nat.factorizationLCMLeft - def Nat.factorizationLCMRight - theorem Nat.factorization_def - theorem Nat.factorization_eq_primeFactorsList_multiset - theorem Nat.factorization_eq_zero_iff - theorem Nat.factorization_eq_zero_of_non_prime - theorem Nat.factorization_eq_zero_of_not_dvd - theorem Nat.factorization_eq_zero_of_remainder - theorem Nat.factorization_inj - theorem Nat.factorization_le_iff_dvd - theorem Nat.factorization_mul - theorem Nat.factorization_mul_apply_of_coprime - theorem Nat.factorization_mul_of_coprime - theorem Nat.factorization_one - theorem Nat.factorization_pow - theorem Nat.factorization_prod - theorem Nat.factorization_prod_pow_eq_self - theorem Nat.factorization_zero - theorem Nat.factorization_zero_right - theorem Nat.multiplicative_factorization' - theorem Nat.multiplicative_factorization - theorem Nat.multiplicity_eq_factorization - theorem Nat.ord_proj_dvd - theorem Nat.pow_succ_factorization_not_dvd - theorem Nat.primeFactorsList_count_eq - theorem Nat.prod_pow_factorization_eq_self - def Nat.recOnMul - def Nat.recOnPosPrimePosCoprime - def Nat.recOnPrimeCoprime - def Nat.recOnPrimePow - theorem Nat.support_factorization Added Mathlib/Data/Nat/Factorization/Defs.lean + theorem Nat.Prime.factorization_pos_of_dvd + theorem Nat.Prime.factorization_pow + theorem Nat.eq_of_factorization_eq + def Nat.factorization + def Nat.factorizationEquiv + def Nat.factorizationLCMLeft + def Nat.factorizationLCMRight + theorem Nat.factorization_def + theorem Nat.factorization_eq_primeFactorsList_multiset + theorem Nat.factorization_eq_zero_iff + theorem Nat.factorization_eq_zero_of_non_prime + theorem Nat.factorization_eq_zero_of_not_dvd + theorem Nat.factorization_eq_zero_of_remainder + theorem Nat.factorization_inj + theorem Nat.factorization_le_iff_dvd + theorem Nat.factorization_mul + theorem Nat.factorization_mul_apply_of_coprime + theorem Nat.factorization_mul_of_coprime + theorem Nat.factorization_one + theorem Nat.factorization_pow + theorem Nat.factorization_prod + theorem Nat.factorization_prod_pow_eq_self + theorem Nat.factorization_zero + theorem Nat.factorization_zero_right + theorem Nat.multiplicity_eq_factorization + theorem Nat.ord_proj_dvd + theorem Nat.pow_succ_factorization_not_dvd + theorem Nat.primeFactorsList_count_eq + theorem Nat.prod_pow_factorization_eq_self + theorem Nat.support_factorization Added Mathlib/Data/Nat/Factorization/Induction.lean + theorem Nat.multiplicative_factorization' + theorem Nat.multiplicative_factorization + def Nat.recOnMul + def Nat.recOnPosPrimePosCoprime + def Nat.recOnPrimeCoprime + def Nat.recOnPrimePow Modified Mathlib/Data/Nat/Factorization/Root.lean Modified Mathlib/Data/Nat/Totient.lean Modified Mathlib/NumberTheory/ArithmeticFunction.lean Modified Mathlib/NumberTheory/SmoothNumbers.lean 2024-07-22 10:51:48 a4d3124 chore: tidy various files (#15008) ESTIMATED CHANGES Modified Mathlib/Algebra/BigOperators/Group/List.lean Modified Mathlib/Algebra/Homology/Embedding/Boundary.lean Modified Mathlib/Algebra/Module/Opposites.lean Modified Mathlib/Algebra/Order/Ring/Basic.lean Modified Mathlib/Analysis/Calculus/LocalExtr/Basic.lean Modified Mathlib/Analysis/Complex/Schwarz.lean Modified Mathlib/Analysis/Convex/Uniform.lean Modified Mathlib/Analysis/NormedSpace/MazurUlam.lean Modified Mathlib/Analysis/NormedSpace/Star/ContinuousFunctionalCalculus.lean Modified Mathlib/Analysis/NormedSpace/Star/ContinuousFunctionalCalculus/Order.lean Modified Mathlib/CategoryTheory/Abelian/Basic.lean Modified Mathlib/CategoryTheory/Grothendieck.lean Modified Mathlib/CategoryTheory/Sites/Subsheaf.lean Modified Mathlib/Combinatorics/SimpleGraph/AdjMatrix.lean Modified Mathlib/Control/Functor/Multivariate.lean Modified Mathlib/Data/Int/Order/Units.lean Modified Mathlib/Data/Nat/Choose/Sum.lean Modified Mathlib/Data/Rat/Defs.lean Modified Mathlib/Geometry/RingedSpace/OpenImmersion.lean Modified Mathlib/GroupTheory/CoprodI.lean Modified Mathlib/GroupTheory/MonoidLocalization/Order.lean Modified Mathlib/LinearAlgebra/Contraction.lean Modified Mathlib/LinearAlgebra/Matrix/Charpoly/Coeff.lean Modified Mathlib/LinearAlgebra/Matrix/HermitianFunctionalCalculus.lean Modified Mathlib/MeasureTheory/Function/UnifTight.lean Modified Mathlib/MeasureTheory/Integral/Gamma.lean Modified Mathlib/MeasureTheory/Integral/Pi.lean Modified Mathlib/MeasureTheory/Measure/Lebesgue/VolumeOfBalls.lean Modified Mathlib/NumberTheory/Bernoulli.lean Modified Mathlib/Order/InitialSeg.lean Modified Mathlib/Probability/Kernel/Disintegration/Density.lean Modified Mathlib/Probability/Kernel/Disintegration/Unique.lean Modified Mathlib/RingTheory/AdicCompletion/AsTensorProduct.lean Modified Mathlib/RingTheory/DedekindDomain/Different.lean Modified Mathlib/RingTheory/Multiplicity.lean Modified Mathlib/Tactic/MinImports.lean Modified Mathlib/Topology/Constructions.lean Modified Mathlib/Topology/MetricSpace/Ultra/Basic.lean +/- theorem IsUltrametricDist.mem_ball_iff 2024-07-22 10:51:46 bd4ef5b feat: cotangent q-expansion (#12770) Add the q-expansion of the cotangent function that will be needed for Eisenstein series q-expansions. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/Complex/UpperHalfPlane/Exp.lean + theorem UpperHalfPlane.abs_exp_two_pi_I_lt_one Added Mathlib/Analysis/SpecialFunctions/Trigonometric/Cotangent.lean + theorem Complex.cot_eq_exp_ratio + theorem Complex.cot_pi_eq_exp_ratio + theorem pi_mul_cot_pi_q_exp 2024-07-22 10:16:58 b87eb74 chore: reduce imports in 14 files under `GroupTheory` (#15004) Remove 32 imports from 14 files in `GroupTheory`, as hinted by `#min_imports` ESTIMATED CHANGES Modified Mathlib/GroupTheory/FixedPointFree.lean Modified Mathlib/GroupTheory/Frattini.lean Modified Mathlib/GroupTheory/FreeAbelianGroup.lean Modified Mathlib/GroupTheory/Index.lean Modified Mathlib/GroupTheory/NoncommPiCoprod.lean Modified Mathlib/GroupTheory/OrderOfElement.lean Modified Mathlib/GroupTheory/PGroup.lean Modified Mathlib/GroupTheory/PushoutI.lean Modified Mathlib/GroupTheory/Schreier.lean Modified Mathlib/GroupTheory/SchurZassenhaus.lean Modified Mathlib/GroupTheory/SemidirectProduct.lean Modified Mathlib/GroupTheory/Solvable.lean Modified Mathlib/GroupTheory/Torsion.lean Modified Mathlib/GroupTheory/Transfer.lean 2024-07-22 09:36:14 6f7474b feat(Order/Copy): Copy Heyting algebras (#15006) ESTIMATED CHANGES Modified Mathlib/Order/Copy.lean + def BiheytingAlgebra.copy + def CoheytingAlgebra.copy + def GeneralizedCoheytingAlgebra.copy + def GeneralizedHeytingAlgebra.copy + def HeytingAlgebra.copy + def OrderBot.copy + def OrderTop.copy 2024-07-22 09:09:27 262ae9e feat: Characterization of proper maps for Hausdorff and compactly generated spaces (#13635) A continuous map whose codomain is a Hausdorff and compactly generated space is proper if and only if the preimages of compact sets are compact. A Hausdorff and weakly locally compact space is compactly generated. A Hausdorff and sequential space is compactly generated. ESTIMATED CHANGES Modified Mathlib/Topology/Maps/Proper/Basic.lean + theorem SequentialSpace.isProperMap_iff_isCompact_preimage + theorem SequentialSpace.isProperMap_iff_tendsto_cocompact + theorem WeaklyLocallyCompactSpace.isProperMap_iff_isCompact_preimage + theorem WeaklyLocallyCompactSpace.isProperMap_iff_tendsto_cocompact + theorem compactlyGenerated_of_sequentialSpace + theorem compactlyGenerated_of_weaklyLocallyCompactSpace +/- theorem isProperMap_iff_isCompact_preimage +/- theorem isProperMap_iff_tendsto_cocompact 2024-07-22 08:59:04 fa5f4dc feat(LightCondensed): the fully faithful embedding of sequential spaces in light condensed sets (#14618) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Condensed/Light/TopCatAdjunction.lean + theorem LightCondSet.continuous_coinducingCoprod + def LightCondSet.lightCondSetToSequential + def LightCondSet.sequentialAdjunctionHomeo Modified Mathlib/Condensed/Light/TopComparison.lean Added Mathlib/Topology/Category/Sequential.lean + def Sequential.fullyFaithfulSequentialToTop + def Sequential.homeoOfIso + def Sequential.isoEquivHomeo + def Sequential.isoOfHomeo + def Sequential.of + def Sequential.sequentialToTop + structure Sequential 2024-07-22 08:48:24 d9566d6 feat(Condensed): the fully faithful embedding of compactly generated topological spaces in condensed sets (#14514) ESTIMATED CHANGES Modified Mathlib/Condensed/TopCatAdjunction.lean + def CondensedSet.compactlyGeneratedAdjunctionCounitHomeo + def CondensedSet.condensedSetToCompactlyGenerated + theorem CondensedSet.continuous_coinducingCoprod Modified Mathlib/Condensed/TopComparison.lean Modified Mathlib/Topology/Category/CompactlyGenerated.lean + theorem compactlyGeneratedSpace_of_continuous_maps 2024-07-22 08:26:40 94ad193 chore(Lean/Meta): import Batteries.CodeAction to enable hole code action (#15003) ESTIMATED CHANGES Modified Mathlib/Lean/Meta.lean 2024-07-22 07:17:32 18fafd2 feat(Topology/Algebra/PontryaginDual): Local Compactness of the Pontryagin Dual (#11335) This PR uses Arzela-Ascoli to prove local compactness of the Pontryagin dual. ESTIMATED CHANGES Modified Mathlib/Topology/Algebra/ContinuousMonoidHom.lean + theorem ContinuousMonoidHom.locallyCompactSpace_of_equicontinuousAt + theorem ContinuousMonoidHom.locallyCompactSpace_of_hasBasis Modified Mathlib/Topology/Algebra/PontryaginDual.lean 2024-07-22 07:07:46 6a94cbe chore(scripts/technical-debt-metrics): no longer report missing module docstrings (#15002) Because there are no missing module docstrings anymore! ESTIMATED CHANGES Modified scripts/technical-debt-metrics.sh 2024-07-22 05:54:06 0a67e5a chore(LiminfLimsup): fix namespaces (#14995) ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Measure/MeasureSpace.lean Modified Mathlib/NumberTheory/WellApproximable.lean Modified Mathlib/Order/LiminfLimsup.lean + theorem CompleteLatticeHom.apply_liminf_iterate + theorem CompleteLatticeHom.apply_limsup_iterate - theorem Filter.CompleteLatticeHom.apply_liminf_iterate - theorem Filter.CompleteLatticeHom.apply_limsup_iterate - theorem Filter.InfHom.le_apply_bliminf - theorem Filter.OrderIso.apply_bliminf - theorem Filter.OrderIso.apply_blimsup - theorem Filter.SupHom.apply_blimsup_le + theorem OrderIso.apply_bliminf + theorem OrderIso.apply_blimsup + theorem sInfHom.le_apply_bliminf + theorem sSupHom.apply_blimsup_le 2024-07-22 03:41:25 e41e510 chore(Mathlib/Init/Data/Ordering/*): move `Mathlib.Init.Data.Ordering` to `Mathlib.Data.Ordering` (#14984) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Order/Monoid/Unbundled/Basic.lean Renamed Mathlib/Init/Data/Ordering/Basic.lean to Mathlib/Data/Ordering/Basic.lean Renamed Mathlib/Init/Data/Ordering/Lemmas.lean to Mathlib/Data/Ordering/Lemmas.lean Modified Mathlib/Init/Order/Defs.lean Modified Mathlib/Order/Compare.lean Modified Mathlib/SetTheory/Ordinal/Notation.lean 2024-07-22 03:05:06 bec18f7 feat(ArithmeticFunction): more corollaries of `isMultiplicative_sigma` (#14597) ESTIMATED CHANGES Modified Mathlib/NumberTheory/ArithmeticFunction.lean + theorem ArithmeticFunction.sigma_apply_prime_pow + theorem ArithmeticFunction.sigma_one_apply_prime_pow + theorem Nat.Coprime.card_divisors_mul + theorem Nat.Coprime.sum_divisors_mul + theorem Nat.sum_divisors 2024-07-21 23:44:33 a5fb11c feat (Algebra/Order/AddTorsor) : Antidiagonals for SMul and VAdd, with finiteness properties (#14479) We introduce antidiagonals for scalar multiplication and vector addition, and show that they are finite for partially well-ordered input sets. We also add some results involving minima. This will be used in future PRs on Hahn modules and vertex operators. - [x] depends on: #14732 ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Order/AddTorsor.lean + theorem IsOrderedSMul.smul_le_smul + theorem Monotone.smul Added Mathlib/Data/Finset/SMulAntidiagonal.lean + theorem Finset.SMulAntidiagonal_min_smul_min + theorem Finset.isPWO_support_smulAntidiagonal + theorem Finset.mem_smulAntidiagonal + theorem Finset.smulAntidiagonal_mono_left + theorem Finset.smulAntidiagonal_mono_right + theorem Finset.support_smulAntidiagonal_subset_smul + theorem Set.IsPWO.smul + theorem Set.IsWF.min_smul + theorem Set.IsWF.smul Added Mathlib/Data/Set/SMulAntidiagonal.lean + theorem Set.SMulAntidiagonal.eq_of_fst_eq_fst + theorem Set.SMulAntidiagonal.eq_of_fst_le_fst_of_snd_le_snd + theorem Set.SMulAntidiagonal.eq_of_snd_eq_snd + theorem Set.SMulAntidiagonal.finite_of_isPWO + theorem Set.SMulAntidiagonal.fst_eq_fst_iff_snd_eq_snd + theorem Set.mem_smulAntidiagonal + def Set.smulAntidiagonal + theorem Set.smulAntidiagonal_mono_left + theorem Set.smulAntidiagonal_mono_right 2024-07-21 22:30:58 1de6cfb feat(RingTheory/Localization): localization of algebra maps and commutation with kernels (#14086) Adds API for localizing algebra maps, in general form and specialized to `IsLocalization.Away`. Also shows that localization commutes with kernels. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/RingTheory/Localization/Algebra.lean + def AlgHom.toKerIsLocalization + theorem AlgHom.toKerIsLocalization_apply + theorem AlgHom.toKerIsLocalization_isLocalizedModule + theorem IsLocalization.ker_map + theorem IsLocalization.mapₐ_coe + theorem IsLocalization.mapₐ_injective_of_injective + theorem IsLocalization.mapₐ_surjective_of_surjective + def RingHom.toKerIsLocalization + theorem RingHom.toKerIsLocalization_apply + theorem RingHom.toKerIsLocalization_isLocalizedModule Modified Mathlib/RingTheory/Localization/Finiteness.lean + theorem Module.Finite.Ideal.fg_of_localizationSpan + theorem Module.Finite.RingHom.ker_fg_of_localizationSpan 2024-07-21 21:46:20 f4aaf1c refactor(AlgebraicGeometry): Promote `invApp` to an iso. (#14868) ESTIMATED CHANGES Modified Mathlib/AlgebraicGeometry/AffineScheme.lean Modified Mathlib/AlgebraicGeometry/OpenImmersion.lean + theorem AlgebraicGeometry.IsOpenImmersion.app_eq_appIso_inv_app_of_comp_eq - theorem AlgebraicGeometry.IsOpenImmersion.app_eq_invApp_app_of_comp_eq + def AlgebraicGeometry.Scheme.Hom.appIso + theorem AlgebraicGeometry.Scheme.Hom.appIso_hom' + theorem AlgebraicGeometry.Scheme.Hom.appIso_hom + theorem AlgebraicGeometry.Scheme.Hom.appIso_inv_app + theorem AlgebraicGeometry.Scheme.Hom.appIso_inv_appLE + theorem AlgebraicGeometry.Scheme.Hom.appIso_inv_naturality + theorem AlgebraicGeometry.Scheme.Hom.appLE_appIso_inv - theorem AlgebraicGeometry.Scheme.Hom.appLE_invApp + theorem AlgebraicGeometry.Scheme.Hom.app_appIso_inv - theorem AlgebraicGeometry.Scheme.Hom.app_invApp - def AlgebraicGeometry.Scheme.Hom.invApp - theorem AlgebraicGeometry.Scheme.Hom.invApp_app - theorem AlgebraicGeometry.Scheme.Hom.invApp_naturality - theorem AlgebraicGeometry.Scheme.Hom.inv_invApp + theorem AlgebraicGeometry.Scheme.ofRestrict_appIso 2024-07-21 21:35:29 e684c7b feat: more compatibilities for `Functor.mapDerivedCategory` (#14192) ESTIMATED CHANGES Modified Mathlib/Algebra/Homology/DerivedCategory/ExactFunctor.lean + theorem CategoryTheory.Functor.mapDerivedCategoryFactorsh_hom_app Modified Mathlib/Algebra/Homology/Localization.lean + theorem CategoryTheory.Functor.mapHomologicalComplexUpToQuasiIsoFactorsh_hom_app + def CategoryTheory.Functor.mapHomologicalComplexUpToQuasiIsoLocalizerMorphism Modified Mathlib/CategoryTheory/Localization/LocalizerMorphism.lean 2024-07-21 19:24:42 f807a98 feat(MeasureTheory/Function): stronger version of Vitali's convergence theorem (#9163) Prove a stronger version of Vitali's convergence theorem, which does not require an `IsFiniteMeasure` hypothesis. Instead it uses a new uniform tightness hypothesis. The hypothesis `UnifTight` is implemented closely following the structure of the existing `UnifIntegrable`. ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Function/UnifTight.lean +/- theorem MeasureTheory.UnifTight.eventually_cofinite_indicator + theorem MeasureTheory.tendstoInMeasure_iff_tendsto_Lp + theorem MeasureTheory.tendsto_Lp_of_tendstoInMeasure + theorem MeasureTheory.tendsto_Lp_of_tendsto_ae Modified Mathlib/MeasureTheory/Function/UniformIntegrable.lean 2024-07-21 19:14:33 41dc4b4 docs: add info about `#min_imports in` (#14979) Just adding some known limitations and future plans for `#min_imports in`. ESTIMATED CHANGES Modified Mathlib/Tactic/MinImports.lean 2024-07-21 18:57:44 1f79bd0 chore(Mathlib/Init/Meta/WellFoundedTactic): remove `Mathlib.Init.Meta.WellFoundedTactic` (#14980) ESTIMATED CHANGES Modified Mathlib.lean Deleted Mathlib/Init/Meta/WellFoundedTactics.lean - theorem Nat.lt_add_of_zero_lt_left - theorem Nat.zero_lt_one_add 2024-07-21 18:30:02 9b782ff feat: IsBoundedUnder lemmas for addition and Finset.sum (#13966) ESTIMATED CHANGES Modified Mathlib/Order/LiminfLimsup.lean + theorem Filter.isBoundedUnder_ge_add + theorem Filter.isBoundedUnder_ge_sum + theorem Filter.isBoundedUnder_le_add + theorem Filter.isBoundedUnder_le_sum + theorem Filter.isBoundedUnder_sum 2024-07-21 17:29:22 67282de chore(Mathlib/Init/Data/Prod): remove `Mathlib.Init.Data.Prod` (#14978) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Data/Seq/Parallel.lean Modified Mathlib/GroupTheory/MonoidLocalization/Basic.lean Deleted Mathlib/Init/Data/Prod.lean Modified Mathlib/Util/CompileInductive.lean 2024-07-21 17:19:39 bfef45b fix: reformulate the message when there are too many files to display (#14982) The new message should make it clear that the import changes are not displayed because they are too many, not that the PR should be rejected because of this! Reported in #14471. ESTIMATED CHANGES Modified scripts/import_trans_difference.sh 2024-07-21 16:25:13 c5da640 feat(Order/Floor): `x - 1 / 2 < round x` (#14964) Adding a new theorem to Mathlib/Algebra/Order/Floor.lean : ``` theorem round_half_bot : a - (1 / 2 : ℚ) < round a := by rw [round_eq, show (a - 1 / 2 : ℚ) = (a + 1 / 2) - 1 by ring] exact Int.sub_one_lt_floor (a + 1 / 2) ``` ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Floor.lean + theorem round_le_add_half + theorem sub_half_lt_round 2024-07-21 16:08:54 aaa0f40 feat(CategoryTheory): commutative squares that are pushout or pullback squares (#14971) In this PR, we translate the `IsPushout/IsPullback` API for the objects of the category `Square C` of commutative squares in a category `C`. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Limits/Shapes/Pullback/Square.lean + theorem CategoryTheory.Square.IsPullback.iff_of_iso + theorem CategoryTheory.Square.IsPullback.mk + theorem CategoryTheory.Square.IsPullback.of_iso + theorem CategoryTheory.Square.IsPushout.iff_of_iso + theorem CategoryTheory.Square.IsPushout.mk + theorem CategoryTheory.Square.IsPushout.of_iso + theorem CategoryTheory.Square.isPullback_iff + theorem CategoryTheory.Square.isPushout_iff Modified Mathlib/CategoryTheory/Square.lean + def CategoryTheory.Square.evaluation₁ + def CategoryTheory.Square.evaluation₂ + def CategoryTheory.Square.evaluation₃ + def CategoryTheory.Square.evaluation₄ 2024-07-21 14:54:26 82e01e3 feat: the empty set is a smooth manifold (#14974) - Prove that an empty type is a charted space - An empty type is a smooth manifold over any pair (E, H) - The empty manifold is boundaryless Split out from my branch on bordism theory. ESTIMATED CHANGES Modified Mathlib/Geometry/Manifold/ChartedSpace.lean + def ChartedSpace.empty Modified Mathlib/Geometry/Manifold/InteriorBoundary.lean Modified Mathlib/Geometry/Manifold/SmoothManifoldWithCorners.lean 2024-07-21 13:59:44 2b52c92 refactor(Tactic/ToAdditive): avoid FindM, got removed in lean4 (#14970) this code was using an internal data type from Lean4 that was removed in https://github.com/leanprover/lean4/pull/4795 so let's inline the three lines that we need here. ESTIMATED CHANGES Modified Mathlib/Tactic/ToAdditive/Frontend.lean 2024-07-21 13:49:12 e64157d feat(Topology/Order/ScottTopology): Characterise the Scott Topology of a Complete Linear Order (#12175) This PR gives a convenient characterisation of the Scott Topology for a Complete Linear Order ESTIMATED CHANGES Modified Mathlib/Topology/Order/ScottTopology.lean + theorem Topology.IsScott.dirSupClosed_of_isClosed + theorem Topology.IsScott.isOpen_iff_Iic_compl_or_univ 2024-07-21 13:36:45 0241839 fix: handle nameless instances in `#min_imports in` (#14878) This PR makes `#min_imports in` process better "nameless" instances, as well as attributes in declarations. ESTIMATED CHANGES Modified Mathlib/Tactic/MinImports.lean + def Mathlib.Command.MinImports.getAllImports + def Mathlib.Command.MinImports.getAttrNames + def Mathlib.Command.MinImports.getAttrs + def Mathlib.Command.MinImports.getId + def Mathlib.Command.MinImports.getIds + def Mathlib.Command.MinImports.getIrredundantImports + def Mathlib.Command.MinImports.getSyntaxNodeKinds + def Mathlib.Command.MinImports.getVisited + def Mathlib.Command.MinImports.minImpsCore - def Mathlib.Command.MinImps.getAllImports - def Mathlib.Command.MinImps.getId - def Mathlib.Command.MinImps.getIrredundantImports - def Mathlib.Command.MinImps.getSyntaxNodeKinds - def Mathlib.Command.MinImps.getVisited - def Mathlib.Command.MinImps.minImpsCore Modified test/MinImports.lean 2024-07-21 13:06:20 be1d8af feat (Data.Finsupp.Weight) : general API for weights and size of finsupp (#14875) We collect various definitions and lemma that are presently used for multivariate polynomials to define/study their degree / weighted degree in a single file `Mathlib.Data.Finsupp.Weight`` The reason is that this API will also be used for multivariate power series. We have tried for some generality, but it is not the maximal one. Adds a`SMulPosMono ℕ M` instance for any `OrderedAddCommMonoid M` Co-authored-by María Inés de Frutos Fernández @mariainesdff Moves: - `MvPolynomial.degree -> Finsupp.degree` - `MvPolynomial.weightedDegree -> Finsupp.weight` - `MvPolynomial.degree_eq_zero_iff -> Finsupp.degree_eq_zero_iff` - `MvPolynomial.weightedDegree_one -> Finsupp.degree_eq_weight_one` - `MvPolynomial.weight_eq_zero_iff_eq_zero_iff -> Finsupp.weight_eq_zero_iff_eq_zero` ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Module/LinearMap/Polynomial.lean Added Mathlib/Data/Finsupp/Weight.lean + theorem Finsupp.NonTorsionWeight.ne_zero + def Finsupp.degree + theorem Finsupp.degree_eq_weight_one + theorem Finsupp.degree_eq_zero_iff + theorem Finsupp.degree_zero + theorem Finsupp.le_degree + theorem Finsupp.le_weight + theorem Finsupp.le_weight_of_ne_zero' + theorem Finsupp.le_weight_of_ne_zero + theorem Finsupp.nonTorsionWeight_of + theorem Finsupp.weight_apply + theorem Finsupp.weight_eq_zero_iff_eq_zero Modified Mathlib/RingTheory/MvPolynomial/Homogeneous.lean +/- theorem MvPolynomial.IsHomogeneous.coeff_eq_zero - def MvPolynomial.degree - theorem MvPolynomial.degree_eq_zero_iff +/- theorem MvPolynomial.isHomogeneous_monomial - theorem MvPolynomial.weightedDegree_one Modified Mathlib/RingTheory/MvPolynomial/WeightedHomogeneous.lean - def MvPolynomial.weightedDegree - theorem MvPolynomial.weightedDegree_apply 2024-07-21 12:45:19 6a18101 feat(CategoryTheory): the category of commutative squares (#14969) In this PR, we define a bundled version of `CommSq` which allows to consider commutative squares as objects in a category `Square C`. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Square.lean + def CategoryTheory.Square.Hom.comp + def CategoryTheory.Square.Hom.id + structure CategoryTheory.Square.Hom + def CategoryTheory.Square.arrowArrowEquivalence' + def CategoryTheory.Square.arrowArrowEquivalence + theorem CategoryTheory.Square.commSq + def CategoryTheory.Square.flip + def CategoryTheory.Square.flipEquivalence + def CategoryTheory.Square.flipFunctor + def CategoryTheory.Square.fromArrowArrowFunctor' + def CategoryTheory.Square.fromArrowArrowFunctor + theorem CategoryTheory.Square.hom_ext + def CategoryTheory.Square.isoMk + def CategoryTheory.Square.toArrowArrowFunctor' + def CategoryTheory.Square.toArrowArrowFunctor + structure CategoryTheory.Square 2024-07-21 11:54:37 e763101 feat(Algebra/Polynomial/Module/Basic): add lemmas about `equivPolynomial` and `equivPolynomialSelf` (#14966) ESTIMATED CHANGES Modified Mathlib/Algebra/Polynomial/Module/Basic.lean + theorem PolynomialModule.aeval_equivPolynomial + theorem PolynomialModule.equivPolynomialSelf_apply_eq + theorem PolynomialModule.equivPolynomial_single 2024-07-21 11:54:36 efa462e feat(RingTheory/Derivation/Basic): add `LinearEquiv.compDer` equivalents for `LinearMap.compDer` lemmas (#14965) Add `LinearEquiv.compDer` equivalents for `LinearMap.compDer` lemmas. ESTIMATED CHANGES Modified Mathlib/RingTheory/Derivation/Basic.lean + theorem Derivation.linearEquiv_coe_comp + theorem Derivation.linearEquiv_coe_to_linearMap_comp 2024-07-21 11:12:22 8b05e67 chore: reduce imports in 6 files under `GroupTheory` (#14973) Removes 17 imports in 6 files in `Mathlib/GroupTheory`. ESTIMATED CHANGES Modified Mathlib/GroupTheory/CommutingProbability.lean Modified Mathlib/GroupTheory/CoprodI.lean Modified Mathlib/GroupTheory/Divisible.lean Modified Mathlib/GroupTheory/DoubleCoset.lean Modified Mathlib/GroupTheory/Exponent.lean Modified Mathlib/GroupTheory/Finiteness.lean 2024-07-21 10:19:34 08f062a chore: tidy various files (#14968) ESTIMATED CHANGES Modified Mathlib/Algebra/Category/Ring/Colimits.lean +/- inductive RingCat.Colimits.Prequotient Modified Mathlib/Algebra/GeomSum.lean Modified Mathlib/Algebra/Group/Action/Basic.lean Modified Mathlib/Algebra/Lie/Weights/Cartan.lean Modified Mathlib/Algebra/Module/Submodule/Localization.lean Modified Mathlib/Algebra/Star/NonUnitalSubsemiring.lean Modified Mathlib/Algebra/Tropical/BigOperators.lean Modified Mathlib/Algebra/Vertex/HVertexOperator.lean Modified Mathlib/CategoryTheory/Bicategory/Coherence.lean Modified Mathlib/CategoryTheory/Bicategory/LocallyDiscrete.lean Modified Mathlib/Combinatorics/Colex.lean Modified Mathlib/Data/Nat/BitIndices.lean Modified Mathlib/Data/Set/Constructions.lean Modified Mathlib/Data/Set/Sups.lean Modified Mathlib/Data/Sum/Order.lean Modified Mathlib/Geometry/Manifold/InteriorBoundary.lean Modified Mathlib/GroupTheory/Coset.lean Modified Mathlib/GroupTheory/Perm/Cycle/Basic.lean Modified Mathlib/MeasureTheory/Function/ConditionalExpectation/Real.lean Modified Mathlib/MeasureTheory/Integral/IntervalIntegral.lean Modified Mathlib/MeasureTheory/Integral/Layercake.lean Modified Mathlib/MeasureTheory/Measure/Haar/OfBasis.lean Modified Mathlib/MeasureTheory/Measure/LevyProkhorovMetric.lean Modified Mathlib/NumberTheory/MulChar/Basic.lean Modified Mathlib/NumberTheory/SiegelsLemma.lean Modified Mathlib/Order/LiminfLimsup.lean Modified Mathlib/Probability/Distributions/Exponential.lean Modified Mathlib/RingTheory/Binomial.lean Modified Mathlib/RingTheory/HahnSeries/Summable.lean Modified Mathlib/RingTheory/MvPowerSeries/Inverse.lean Modified Mathlib/RingTheory/MvPowerSeries/NoZeroDivisors.lean Modified Mathlib/RingTheory/PowerSeries/Inverse.lean Modified Mathlib/RingTheory/Valuation/Basic.lean Modified Mathlib/RingTheory/WittVector/Verschiebung.lean Modified Mathlib/SetTheory/Cardinal/Finite.lean Modified Mathlib/Topology/Algebra/Valued/NormedValued.lean Modified Mathlib/Topology/Category/CompHaus/Basic.lean Modified Mathlib/Topology/Category/Compactum.lean Modified Mathlib/Topology/Instances/Irrational.lean Modified Mathlib/Topology/UniformSpace/AbstractCompletion.lean Modified Mathlib/Topology/UniformSpace/UniformEmbedding.lean 2024-07-21 08:55:43 7fd56cf chore: remove miscellaneous obsolete porting notes (#14963) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Functor/Basic.lean Modified Mathlib/Data/Finsupp/Multiset.lean Modified Mathlib/Data/Finsupp/Order.lean Modified Mathlib/Data/Int/Order/Lemmas.lean Modified Mathlib/Data/Nat/Order/Lemmas.lean Modified Mathlib/RingTheory/Coprime/Basic.lean 2024-07-21 06:51:03 e2c0892 feat(Combinatorics/SimpleGraph): lemmas for IsMatching (#12960) Supporting lemmas for deducing that a subgraph is a matching. Added in preparation for Tutte's theorem. ESTIMATED CHANGES Modified Mathlib/Combinatorics/SimpleGraph/Connectivity.lean Modified Mathlib/Combinatorics/SimpleGraph/Matching.lean + theorem SimpleGraph.Subgraph.IsMatching.coeSubgraph + theorem SimpleGraph.Subgraph.IsMatching.iSup + theorem SimpleGraph.Subgraph.IsMatching.map_ofLE + theorem SimpleGraph.Subgraph.IsMatching.subgraphOfAdj + theorem SimpleGraph.Subgraph.IsMatching.sup Modified Mathlib/Combinatorics/SimpleGraph/Subgraph.lean + theorem SimpleGraph.Subgraph.verts_coeSubgraph + theorem SimpleGraph.support_subgraphOfAdj 2024-07-21 03:56:11 81c06d9 chore: remove empty marker files (#14962) A few files were only created to mark the corresponding mathlib3 files as ported. They can safely be removed now. ESTIMATED CHANGES Modified Mathlib.lean Deleted Mathlib/Data/Rbmap/Basic.lean Deleted Mathlib/Data/Rbmap/Default.lean Deleted Mathlib/Data/Rbtree/Basic.lean Deleted Mathlib/Data/Rbtree/DefaultLt.lean Deleted Mathlib/Data/Rbtree/Find.lean Deleted Mathlib/Data/Rbtree/Init.lean Deleted Mathlib/Data/Rbtree/Insert.lean Deleted Mathlib/Data/Rbtree/Main.lean Deleted Mathlib/Data/Rbtree/MinMax.lean 2024-07-21 01:25:52 c8f5845 feat: define the weak operator topology (#14177) This PR defines the [weak operator topology](https://en.wikipedia.org/wiki/Weak_operator_topology) on maps between normed spaces and proves some of its basic properties. It creates a type copy of `E →L[𝕜] F` endowed with the WOT rather than the norm topology. Along the way, we define several lemmas that are useful for proving properties of a topology that is induced by a bundled hom. Note: I've defined the global notation `E →WOT[𝕜] F` for the type copy; I don't think this is likely to collide with anything else, but I can make it scoped if this is deemed preferable. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/InnerProductSpace/WeakOperatorTopology.lean + theorem ContinuousLinearMapWOT.ext_inner + theorem ContinuousLinearMapWOT.ext_inner_iff + theorem ContinuousLinearMapWOT.le_nhds_iff_forall_inner_apply_le_nhds + theorem ContinuousLinearMapWOT.tendsto_iff_forall_inner_apply_tendsto Modified Mathlib/Analysis/LocallyConvex/WithSeminorms.lean + theorem SeminormFamily.basisSets_mem_nhds Added Mathlib/Analysis/NormedSpace/WeakOperatorTopology.lean + theorem ContinuousLinearMap.continuous_toWOT + def ContinuousLinearMap.toWOT + def ContinuousLinearMap.toWOTCLM + theorem ContinuousLinearMap.toWOT_apply + theorem ContinuousLinearMapWOT.add_apply + theorem ContinuousLinearMapWOT.continuous_dual_apply + theorem ContinuousLinearMapWOT.continuous_inducingFn + theorem ContinuousLinearMapWOT.continuous_of_dual_apply_continuous + theorem ContinuousLinearMapWOT.embedding_inducingFn + theorem ContinuousLinearMapWOT.ext + theorem ContinuousLinearMapWOT.ext_dual + theorem ContinuousLinearMapWOT.ext_dual_iff + theorem ContinuousLinearMapWOT.ext_iff + theorem ContinuousLinearMapWOT.hasBasis_seminorms + def ContinuousLinearMapWOT.inducingFn + theorem ContinuousLinearMapWOT.le_nhds_iff_forall_dual_apply_le_nhds + theorem ContinuousLinearMapWOT.neg_apply + def ContinuousLinearMapWOT.seminorm + def ContinuousLinearMapWOT.seminormFamily + theorem ContinuousLinearMapWOT.smul_apply + theorem ContinuousLinearMapWOT.sub_apply + theorem ContinuousLinearMapWOT.tendsto_iff_forall_dual_apply_tendsto + theorem ContinuousLinearMapWOT.withSeminorms + theorem ContinuousLinearMapWOT.zero_apply + def ContinuousLinearMapWOT Modified Mathlib/Topology/Algebra/Group/Basic.lean + theorem ContinuousInv.induced Modified Mathlib/Topology/Algebra/Monoid.lean + theorem ContinuousMul.induced Modified Mathlib/Topology/Algebra/MulAction.lean + theorem ContinuousSMul.induced 2024-07-20 23:20:46 8973ec0 chore: remove unnecessary imports (#14956) More import reductions to debug the linter at #14840. ESTIMATED CHANGES Modified Mathlib/Condensed/Light/Module.lean Modified Mathlib/NumberTheory/LSeries/RiemannZeta.lean Modified Mathlib/Probability/Distributions/Geometric.lean Modified Mathlib/Probability/Distributions/Poisson.lean Modified Mathlib/RingTheory/FiniteType.lean Modified Mathlib/Topology/Category/Stonean/EffectiveEpi.lean 2024-07-20 19:55:05 1c7af91 chore(Data/Matroid/Closure): fix typo (#14958) We add a single newline character so that a two-item list in the docstring for matroid closure appears with the items on separate lines in docgen. ESTIMATED CHANGES Modified Mathlib/Data/Matroid/Closure.lean 2024-07-20 19:55:04 1141ca2 chore(GroupTheory/OrderOfElement): remove ' from `pow_ne_one_of_lt_orderOf'` (#14955) We change the name of `pow_ne_one_of_lt_orderOf'` to `pow_ne_one_of_lt_orderOf`. See [here](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/.E2.9C.94.20pow_ne_one_of_lt_orderOf/near/452855576) on Zulip. ESTIMATED CHANGES Modified Counterexamples/ZeroDivisorsInAddMonoidAlgebras.lean Modified Mathlib/GroupTheory/Exponent.lean Modified Mathlib/GroupTheory/OrderOfElement.lean - theorem pow_ne_one_of_lt_orderOf' + theorem pow_ne_one_of_lt_orderOf Modified Mathlib/RingTheory/RootsOfUnity/Basic.lean 2024-07-20 19:55:03 37c2c98 chore: delete `Mathlib.Data.Nat.SqrtNormNum` (#14953) ESTIMATED CHANGES Modified Mathlib.lean Deleted Mathlib/Data/Nat/SqrtNormNum.lean 2024-07-20 19:55:02 d7206db feat(Algebra/Homology): relation between pullback/pushout squares and kernels/cokernels in a preadditive category (#14951) In the particular case of abelian categories, one of the results in this PR is that a commutative square is a pullback square iff the corresponding sequence `0 ⟶ X₁ ⟶ X₂ ⊞ X₃ ⟶ X₄` is exact. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Homology/CommSq.lean 2024-07-20 19:55:00 7c3b212 feat(AlgebraicGeometry): Morphism properties local at the source. (#14946) ESTIMATED CHANGES Modified Mathlib/AlgebraicGeometry/Morphisms/Basic.lean + theorem AlgebraicGeometry.IsLocalAtSource.comp + theorem AlgebraicGeometry.IsLocalAtSource.iff_of_iSup_eq_top + theorem AlgebraicGeometry.IsLocalAtSource.iff_of_openCover + theorem AlgebraicGeometry.IsLocalAtSource.isLocalAtTarget + theorem AlgebraicGeometry.IsLocalAtSource.of_iSup_eq_top + theorem AlgebraicGeometry.IsLocalAtSource.of_isOpenImmersion + theorem AlgebraicGeometry.IsLocalAtSource.of_openCover 2024-07-20 19:54:59 6fdf993 feat(MeasureTheory/../Action): drop measurability assumptions (#14933) Also reorder arguments of `measure_preimage_smul` and `measure_smul`. ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Group/Action.lean +/- theorem MeasureTheory.measure_preimage_smul + theorem MeasureTheory.measure_preimage_smul_le + theorem MeasureTheory.measure_preimage_smul_null + theorem MeasureTheory.measure_preimage_smul_of_nullMeasurableSet +/- theorem MeasureTheory.measure_smul +/- theorem MeasureTheory.measure_smul_eq_zero_iff +/- theorem MeasureTheory.measure_smul_null + theorem MeasureTheory.tendsto_smul_ae Modified Mathlib/MeasureTheory/Group/FundamentalDomain.lean +/- theorem MeasureTheory.IsFundamentalDomain.measure_ne_zero Modified Mathlib/MeasureTheory/Measure/Haar/Quotient.lean 2024-07-20 19:54:58 5d26061 feat(CategoryTheory/Localization): induction principles for (co)structured arrows (#14717) In this file, we obtain a induction principles which allow to prove properties of (co)structured arrows for a localization functor. (This shall be used in the formalization of derived functors.) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/CategoryTheory/Localization/Construction.lean Modified Mathlib/CategoryTheory/Localization/Opposite.lean + theorem CategoryTheory.Localization.isoOfHom_op_inv + theorem CategoryTheory.Localization.isoOfHom_unop Modified Mathlib/CategoryTheory/Localization/Predicate.lean + theorem CategoryTheory.Localization.Construction.wInv_eq_isoOfHom_inv + theorem CategoryTheory.Localization.Construction.wIso_eq_isoOfHom Added Mathlib/CategoryTheory/Localization/StructuredArrow.lean + theorem CategoryTheory.Localization.induction_costructuredArrow + theorem CategoryTheory.Localization.induction_structuredArrow 2024-07-20 19:54:57 e66efa1 feat(Topology): define compactly generated topological spaces (#14508) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Topology/Category/CompactlyGenerated.lean + def CompactlyGenerated.compactlyGeneratedToTop + def CompactlyGenerated.fullyFaithfulCompactlyGeneratedToTop + def CompactlyGenerated.homeoOfIso + def CompactlyGenerated.isoEquivHomeo + def CompactlyGenerated.isoOfHomeo + def CompactlyGenerated.of + structure CompactlyGenerated + def TopologicalSpace.compactlyGenerated + theorem continuous_from_compactlyGenerated + theorem continuous_from_compactlyGeneratedSpace + theorem eq_compactlyGenerated 2024-07-20 18:53:31 4a4c913 chore: rename checkYaml to check-yaml (#14892) As discussed on [zulip](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/Naming.20convention/near/451072858), CLI tools should be named in kebap-case. ESTIMATED CHANGES Modified .github/workflows/bors.yml Modified .github/workflows/build.yml Modified .github/workflows/build.yml.in Modified .github/workflows/build_fork.yml Modified lakefile.lean Renamed scripts/checkYaml.lean to scripts/check-yaml.lean 2024-07-20 18:20:17 2474112 feat(MeasureTheory/Group): add lemmas about `Filter.EventuallyConst` (#14595) Add `MeasureTheory.eventuallyConst_smul_set_ae` and `MeasureTheory.eventuallyConst_inv_set_ae`. ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Group/Action.lean + theorem MeasureTheory.eventuallyConst_smul_set_ae Modified Mathlib/MeasureTheory/Group/Prod.lean + theorem MeasureTheory.eventuallyConst_inv_set_ae Modified Mathlib/Order/Filter/EventuallyConst.lean + theorem Filter.eventuallyConst_preimage 2024-07-20 16:56:23 f134399 chore: Move `DistribMulAction` on `Submonoid` instance (#14870) Move the instances that cannot be additivised from `Algebra.Group.Submonoid.Operations` to a new file `Algebra.Group.Submonoid.DistribMulAction`. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Group/Subgroup/Actions.lean Added Mathlib/Algebra/Group/Submonoid/DistribMulAction.lean Modified Mathlib/Algebra/Group/Submonoid/Operations.lean Modified Mathlib/Algebra/Ring/Action/Subobjects.lean Modified Mathlib/GroupTheory/Congruence/Basic.lean Modified Mathlib/RingTheory/OreLocalization/Basic.lean 2024-07-20 16:30:10 f044059 feat(RingTheory/Localization/NumDem): add lemmas (#14643) Add the lemmas `num_zero` and `num_eq_zero`, rewrite `isUnit_den_of_num_eq_zero` using `num_eq_zero`, and add two more lemmas, `associated_den_num_inv` and `associated_num_den_inv`. Moves: - isUnit_den_of_num_eq_zero -> isUnit_den_zero ESTIMATED CHANGES Modified Mathlib/RingTheory/Localization/NumDen.lean + theorem IsFractionRing.associated_den_num_inv + theorem IsFractionRing.associated_num_den_inv + theorem IsFractionRing.isUnit_den_iff + theorem IsFractionRing.isUnit_den_zero + theorem IsFractionRing.num_eq_zero + theorem IsFractionRing.num_zero Modified Mathlib/RingTheory/Polynomial/RationalRoot.lean 2024-07-20 16:12:28 f7d51b0 refactor(MeasureTheory.Function.UniformIntegrable): Rename Vitali convergence related theorems to reflect the IsFiniteMeasure hypothesis. (#14954) Renaming in preparation for the general version of Vitali's convergence theorem in #9163. ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Function/UniformIntegrable.lean - theorem MeasureTheory.tendstoInMeasure_iff_tendsto_Lp + theorem MeasureTheory.tendstoInMeasure_iff_tendsto_Lp_finite + theorem MeasureTheory.tendsto_Lp_finite_of_tendstoInMeasure + theorem MeasureTheory.tendsto_Lp_finite_of_tendsto_ae + theorem MeasureTheory.tendsto_Lp_finite_of_tendsto_ae_of_meas - theorem MeasureTheory.tendsto_Lp_of_tendstoInMeasure - theorem MeasureTheory.tendsto_Lp_of_tendsto_ae - theorem MeasureTheory.tendsto_Lp_of_tendsto_ae_of_meas Modified Mathlib/Probability/Martingale/Convergence.lean Modified Mathlib/Probability/StrongLaw.lean 2024-07-20 16:12:26 e45b708 feat(Archive/Imo): IMO 2024 Q6 (#14842) Formalize IMO 2024 Q6. ESTIMATED CHANGES Modified Archive.lean Added Archive/Imo/Imo2024Q6.lean + theorem Imo2024Q6.Aquaesulian.card_le_two + def Imo2024Q6.Aquaesulian + theorem Imo2024Q6.General.Aquaesulian.apply_apply_add + theorem Imo2024Q6.General.Aquaesulian.apply_neg_apply + theorem Imo2024Q6.General.Aquaesulian.apply_neg_apply_add + theorem Imo2024Q6.General.Aquaesulian.apply_neg_apply_neg + theorem Imo2024Q6.General.Aquaesulian.apply_neg_eq_neg_iff + theorem Imo2024Q6.General.Aquaesulian.apply_neg_of_apply_eq + theorem Imo2024Q6.General.Aquaesulian.apply_zero + theorem Imo2024Q6.General.Aquaesulian.card_le_two + theorem Imo2024Q6.General.Aquaesulian.eq_of_apply_eq_inl + theorem Imo2024Q6.General.Aquaesulian.g_two + theorem Imo2024Q6.General.Aquaesulian.injective + theorem Imo2024Q6.General.Aquaesulian.pair_lemma + theorem Imo2024Q6.General.Aquaesulian.u_eq_zero + theorem Imo2024Q6.General.Aquaesulian.u_eq_zero_or_v_eq_zero + def Imo2024Q6.General.Aquaesulian + theorem Imo2024Q6.add_fExample + theorem Imo2024Q6.apply_fExample_add_apply_of_fract_le + theorem Imo2024Q6.aquaesulian_fExample + theorem Imo2024Q6.aquaesulian_iff_general + theorem Imo2024Q6.card_range_fExample + def Imo2024Q6.fExample + theorem Imo2024Q6.fExample_add + theorem Imo2024Q6.fExample_int_add + theorem Imo2024Q6.fExample_of_mem_Ico + theorem Imo2024Q6.floor_fExample + theorem Imo2024Q6.fract_fExample + theorem imo2024q6 2024-07-20 15:54:41 5e0c71f feat(RingTheory/Powerseries): generalize `coeff_one_pow` (#14895) Removes the condition of `coeff_one_pow` that the constant coefficient must be 1. ESTIMATED CHANGES Modified Mathlib/RingTheory/PowerSeries/Basic.lean +/- theorem PowerSeries.coeff_one_pow Modified scripts/noshake.json 2024-07-20 15:54:39 7846d81 feat(FieldTheory/IntermediateField): add `restrict` (#14640) Add `IntermediateField.restrict`, which restricts the containing field of an intermediate field to another intermediate field which is greater than or equal to it. ESTIMATED CHANGES Modified Mathlib/FieldTheory/IntermediateField.lean + theorem IntermediateField.lift_le + theorem IntermediateField.lift_restrict + theorem IntermediateField.mem_lift + theorem IntermediateField.mem_restrict + def IntermediateField.restrict 2024-07-20 15:43:42 9654ac4 chore: speed up by changing `def` to `abbrev` in `RingTheory/PowerSeries/Basic` (#14913) Fixes a 7-10s build delay in `RingTheory/PowerSeries/Basic`, due to `convert` idling, by changing `def` to `abbrev`. Which uncovered a diamond (unwanted `RatFunc.instCoePolynomial`). https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/compiling.20behaviour.20within.20one.20file ESTIMATED CHANGES Modified Mathlib/RingTheory/LaurentSeries.lean +/- theorem RatFunc.coe_coe Modified Mathlib/RingTheory/PowerSeries/Basic.lean - def PowerSeries Modified Mathlib/RingTheory/PowerSeries/Inverse.lean 2024-07-20 12:58:04 7f521cb chore: reduce imports in 6 files under `GroupTheory` (#14949) remove 13 imports in 6 files under `GroupTheory`, with help of #min_imports ESTIMATED CHANGES Modified Mathlib/GroupTheory/Abelianization.lean Modified Mathlib/GroupTheory/Archimedean.lean Modified Mathlib/GroupTheory/Commensurable.lean Modified Mathlib/GroupTheory/Commutator.lean Modified Mathlib/GroupTheory/Nilpotent.lean Modified Mathlib/GroupTheory/Sylow.lean 2024-07-20 12:42:44 fea0190 feat(CategoryTheory): pushout/pullback squares are stable by isomorphisms (#14890) The properties `IsPushout` and `IsPullback` are stable by isomorphisms. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Limits/Shapes/Pullback/CommSq.lean + theorem CategoryTheory.IsPullback.of_iso + theorem CategoryTheory.IsPushout.of_iso 2024-07-20 11:58:18 84803dd chore: Rename the `Fintype (alternatingGroup α)` instance (#14948) It was called `_root_.fta`!! ESTIMATED CHANGES Modified Mathlib/GroupTheory/SpecificGroups/Alternating.lean 2024-07-20 11:58:16 3244d30 feat(CategoryTheory): all morphisms are mono and epi when Quiver.IsThin holds (#14936) In particular, in preorders, all morphisms are mono and epi. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Category/Basic.lean 2024-07-20 11:58:15 f26425b promoting the Grothendieck construction into a functor (#14387) This PR adds the functoriality of the Grothendieck construction by providing ``` map (α : F ⟶ G) : Grothendieck F ⥤ Grothendieck G ``` and then promotes the Grothendieck construction into a functor from the functor category `C ⥤ Cat` to the over category `Over C` in the category of categories: ``` def functor {E : Cat.{v,u}} : (E ⥤ Cat.{v,u}) ⥤ Over (T:= Cat.{v,u}) E ``` ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Grothendieck.lean + theorem CategoryTheory.Grothendieck.comp_fiber' + def CategoryTheory.Grothendieck.functor + theorem CategoryTheory.Grothendieck.functor_comp_forget + def CategoryTheory.Grothendieck.map + def CategoryTheory.Grothendieck.mapCompIso + def CategoryTheory.Grothendieck.mapIdIso + theorem CategoryTheory.Grothendieck.map_comp_eq + theorem CategoryTheory.Grothendieck.map_id_eq + theorem CategoryTheory.Grothendieck.map_map + theorem CategoryTheory.Grothendieck.map_obj 2024-07-20 11:05:55 70d3777 feat: `BilinForm.toQuadraticForm` is surjective in free modules (#14292) That is: if your module is free, you can always write `Q = B.toQuadraticMap`, which means that the base change exists. This doesn't go as far as changing `QuadraticForm.baseChange`, as this would trade one generality (`Invertible (2 : R)`) for another (`Module.Free R M`). ESTIMATED CHANGES Modified Counterexamples/CliffordAlgebraNotInjective.lean + theorem BilinMap.not_forall_toQuadraticMap_surjective.{v} - theorem QuadraticForm.not_forall_mem_range_toQuadraticForm.{v} Modified Mathlib.lean Modified Mathlib/Algebra/BigOperators/Group/Finset.lean + theorem Finset.sum_sym2_filter_not_isDiag Modified Mathlib/Data/Finset/Basic.lean + theorem Finset.filter_inj' Modified Mathlib/Data/Finset/Prod.lean + theorem Finset.offDiag_filter_lt_eq_filter_le Added Mathlib/Data/Sym/Sym2/Order.lean + def Sym2.inf + theorem Sym2.inf_mk + def Sym2.sortEquiv + def Sym2.sup + theorem Sym2.sup_mk Added Mathlib/LinearAlgebra/QuadraticForm/Basis.lean + theorem LinearMap.BilinMap.toQuadraticMap_surjective + theorem QuadraticMap.toBilin_apply + theorem QuadraticMap.toQuadraticMap_toBilin 2024-07-20 11:05:53 724e099 feat: The diagonal of a finset (#13899) From LeanAPAP ESTIMATED CHANGES Modified Mathlib/Data/Finset/Pi.lean + theorem Finset.card_piDiag + theorem Finset.mem_piDiag + def Finset.piDiag Modified Mathlib/Data/Fintype/Pi.lean + theorem Finset.piDiag_subset_piFinset + theorem Finset.piFinset_filter_const 2024-07-20 11:05:52 ef9d07a feat: add the refine linter, to flag uses of `refine'` (#11884) This PR introduces a linter to flag uses of `refine'`, suggesting to use `refine` instead. `refine` and `refine'` are similar tactics, but they handle meta-variable slightly differently. This means that they are not completely interchangeable, but `refine` is more readable and (heuristically) tends to be more efficient on average. This linter is an incentive to discourage uses of `refine'`, without being a ban. [Zulip discussion](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/Usage.20of.20refine'). ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Data/Matroid/Closure.lean Modified Mathlib/Tactic.lean Modified Mathlib/Tactic/Linter.lean Added Mathlib/Tactic/Linter/RefineLinter.lean + def Mathlib.Linter.refine.getLinterHash + def Mathlib.Linter.refine.getRefine' + def Mathlib.Linter.refine.refineLinter Added test/RefineLinter.lean 2024-07-20 10:12:17 552436c chore: reduce imports in 3 files under `Data` (#14944) Removes unnecessary imports. ESTIMATED CHANGES Modified Mathlib/Data/Finsupp/Basic.lean Modified Mathlib/Data/Nat/Factorization/Basic.lean Modified Mathlib/Data/Nat/Factors.lean 2024-07-20 10:12:15 8ddfa15 feat(Order/Interval/Finset/Nat): `Icc_insert_succ_left`, `Icc_insert_succ_right` (#14838) Add two more lemmas about inserting an element just before or after an interal in `ℕ`: ```lean lemma Icc_insert_succ_left (h : a ≤ b) : insert a (Icc (a + 1) b) = Icc a b := by lemma Icc_insert_succ_right (h : a ≤ b + 1) : insert (b + 1) (Icc a b) = Icc a (b + 1) := by ``` ESTIMATED CHANGES Modified Mathlib/Order/Interval/Finset/Nat.lean + theorem Nat.Icc_insert_succ_left + theorem Nat.Icc_insert_succ_right 2024-07-20 09:25:44 060b87c chore: adaptations for the multi-goal linter (#14939) ESTIMATED CHANGES Modified Mathlib/Algebra/Star/Order.lean Modified Mathlib/AlgebraicGeometry/Cover/Open.lean Modified Mathlib/AlgebraicGeometry/EllipticCurve/DivisionPolynomial/Degree.lean Modified Mathlib/AlgebraicGeometry/Noetherian.lean Modified Mathlib/Analysis/BoxIntegral/Basic.lean Modified Mathlib/Analysis/FunctionalSpaces/SobolevInequality.lean Modified Mathlib/CategoryTheory/FiberedCategory/HomLift.lean Modified Mathlib/Combinatorics/Additive/Corner/Roth.lean Modified Mathlib/Combinatorics/Additive/PluenneckeRuzsa.lean Modified Mathlib/Data/Nat/BitIndices.lean Modified Mathlib/FieldTheory/RatFunc/Basic.lean Modified Mathlib/GroupTheory/GroupAction/Basic.lean Modified Mathlib/LinearAlgebra/Matrix/GeneralLinearGroup/Card.lean Modified Mathlib/MeasureTheory/Constructions/Pi.lean Modified Mathlib/MeasureTheory/Function/ConditionalExpectation/Real.lean Modified Mathlib/MeasureTheory/Function/Intersectivity.lean Modified Mathlib/MeasureTheory/Measure/WithDensity.lean Modified Mathlib/MeasureTheory/Order/UpperLower.lean Modified Mathlib/NumberTheory/Harmonic/GammaDeriv.lean Modified Mathlib/NumberTheory/LSeries/HurwitzZetaValues.lean Modified Mathlib/NumberTheory/NumberField/Units/Regulator.lean Modified Mathlib/RingTheory/Binomial.lean Modified Mathlib/RingTheory/DedekindDomain/Ideal.lean Modified Mathlib/RingTheory/HahnSeries/Multiplication.lean Modified Mathlib/RingTheory/Kaehler/Basic.lean Modified Mathlib/RingTheory/LaurentSeries.lean Modified Mathlib/RingTheory/Polynomial/Wronskian.lean Modified Mathlib/RingTheory/PowerSeries/Basic.lean Modified Mathlib/RingTheory/Valuation/Basic.lean Modified Mathlib/SetTheory/Game/Basic.lean Modified Mathlib/Topology/Category/TopCat/Limits/Pullbacks.lean Modified Mathlib/Topology/Instances/EReal.lean 2024-07-20 07:03:20 2fc87a9 chore(*): use ⊕ notation for `Sum` (#14934) ESTIMATED CHANGES Modified Mathlib/Algebra/BigOperators/Group/Finset.lean +/- theorem Finset.prod_disj_sum Modified Mathlib/Algebra/Group/Action/Sum.lean +/- theorem Sum.smul_inl +/- theorem Sum.smul_inr Modified Mathlib/Algebra/Lie/Classical.lean +/- def LieAlgebra.Orthogonal.JD +/- def LieAlgebra.Orthogonal.PD +/- def LieAlgebra.Orthogonal.Pso +/- def LieAlgebra.Orthogonal.indefiniteDiagonal +/- def LieAlgebra.Orthogonal.so' +/- def LieAlgebra.Symplectic.sp Modified Mathlib/Algebra/MvPolynomial/Equiv.lean +/- def MvPolynomial.iterToSum +/- def MvPolynomial.sumAlgEquiv +/- def MvPolynomial.sumRingEquiv +/- def MvPolynomial.sumToIter Modified Mathlib/Analysis/NormedSpace/Multilinear/Curry.lean +/- def ContinuousMultilinearMap.currySum +/- def ContinuousMultilinearMap.currySumEquiv +/- theorem ContinuousMultilinearMap.currySum_apply Modified Mathlib/CategoryTheory/Extensive.lean Modified Mathlib/CategoryTheory/Limits/MonoCoprod.lean Modified Mathlib/CategoryTheory/Localization/Construction.lean Modified Mathlib/CategoryTheory/Pi/Basic.lean +/- def CategoryTheory.Pi.sum Modified Mathlib/CategoryTheory/Sums/Associator.lean +/- def CategoryTheory.sum.associativity +/- def CategoryTheory.sum.associator +/- def CategoryTheory.sum.inverseAssociator Modified Mathlib/CategoryTheory/Sums/Basic.lean +/- def CategoryTheory.Functor.sum' +/- def CategoryTheory.Functor.sum +/- def CategoryTheory.Sum.Swap.equivalence +/- def CategoryTheory.Sum.Swap.symmetry +/- def CategoryTheory.Sum.inl_ +/- def CategoryTheory.Sum.inr_ +/- def CategoryTheory.Sum.swap +/- theorem CategoryTheory.sum_comp_inl +/- theorem CategoryTheory.sum_comp_inr Modified Mathlib/Combinatorics/Derangements/Basic.lean Modified Mathlib/Combinatorics/HalesJewett.lean +/- def Combinatorics.Line.horizontal +/- def Combinatorics.Line.prod +/- def Combinatorics.Line.vertical Modified Mathlib/Combinatorics/Quiver/Covering.lean Modified Mathlib/Combinatorics/Quiver/Symmetric.lean Modified Mathlib/Combinatorics/SimpleGraph/Basic.lean +/- def completeBipartiteGraph Modified Mathlib/Computability/Halting.lean Modified Mathlib/Computability/Partrec.lean +/- theorem Computable.sum_casesOn +/- theorem Partrec.fix +/- theorem Partrec.fix_aux +/- theorem Partrec.sum_casesOn_left +/- theorem Partrec.sum_casesOn_right Modified Mathlib/Computability/Primrec.lean +/- theorem Primrec.sum_casesOn Modified Mathlib/Control/Basic.lean Modified Mathlib/Control/Bitraversable/Instances.lean +/- def Sum.bitraverse Modified Mathlib/Control/Traversable/Basic.lean Modified Mathlib/Data/FinEnum.lean Modified Mathlib/Data/Finite/Basic.lean +/- theorem Finite.sum_left +/- theorem Finite.sum_right Modified Mathlib/Data/Finite/Card.lean +/- theorem Finite.card_sum Modified Mathlib/Data/Finset/Sum.lean +/- def Finset.disjSum +/- theorem Finset.disjSum_mono_right Modified Mathlib/Data/Finsupp/Basic.lean +/- theorem Finsupp.fst_sumFinsuppAddEquivProdFinsupp +/- theorem Finsupp.fst_sumFinsuppEquivProdFinsupp +/- theorem Finsupp.snd_sumFinsuppAddEquivProdFinsupp +/- theorem Finsupp.snd_sumFinsuppEquivProdFinsupp +/- def Finsupp.sumElim +/- theorem Finsupp.sumElim_apply +/- def Finsupp.sumFinsuppAddEquivProdFinsupp +/- def Finsupp.sumFinsuppEquivProdFinsupp Modified Mathlib/Data/Fintype/BigOperators.lean +/- theorem Fintype.prod_sum_type Modified Mathlib/Data/Fintype/Card.lean Modified Mathlib/Data/Fintype/Sort.lean +/- def finSumEquivOfFinset Modified Mathlib/Data/Fintype/Sum.lean +/- theorem infinite_sum Modified Mathlib/Data/Matrix/Block.lean +/- def Matrix.IsTwoBlockDiagonal +/- theorem Matrix.dotProduct_block +/- theorem Matrix.ext_iff_blocks +/- theorem Matrix.fromBlocks_toBlocks +/- def Matrix.toBlocks₁₁ +/- def Matrix.toBlocks₁₂ +/- def Matrix.toBlocks₂₁ +/- def Matrix.toBlocks₂₂ Modified Mathlib/Data/Multiset/Sum.lean +/- def Multiset.disjSum Modified Mathlib/Data/Ordmap/Ordnode.lean Modified Mathlib/Data/PFun.lean +/- theorem PFun.dom_of_mem_fix +/- def PFun.fix +/- def PFun.fixInduction' +/- theorem PFun.fixInduction'_fwd +/- theorem PFun.fixInduction'_stop +/- def PFun.fixInduction +/- theorem PFun.fixInduction_spec +/- theorem PFun.fix_fwd +/- theorem PFun.fix_fwd_eq +/- theorem PFun.fix_stop +/- theorem PFun.mem_fix_iff Modified Mathlib/Data/PFunctor/Univariate/M.lean +/- def PFunctor.M.corec' Modified Mathlib/Data/Seq/Computation.lean +/- def Computation.Bind.g +/- def Computation.BisimO +/- def Computation.Corec.f +/- def Computation.corec +/- theorem Computation.corec_eq +/- def Computation.destruct +/- def Computation.lmap +/- def Computation.rmap Modified Mathlib/Data/Seq/Parallel.lean +/- def Computation.parallel.aux2 Modified Mathlib/Data/Seq/Seq.lean +/- def Stream'.Seq.toListOrStream Modified Mathlib/Data/Set/Finite.lean +/- theorem Set.finite_preimage_inl_and_inr Modified Mathlib/Data/Set/Image.lean +/- theorem Set.compl_range_inl +/- theorem Set.compl_range_inr +/- theorem Set.image_preimage_inl_union_image_preimage_inr +/- theorem Set.preimage_inl_range_inr +/- theorem Set.preimage_inr_range_inl +/- theorem Set.range_inl_inter_range_inr +/- theorem Set.range_inl_union_range_inr +/- theorem Set.range_inr_inter_range_inl +/- theorem Set.range_inr_union_range_inl +/- theorem Sum.range_eq Modified Mathlib/Data/Sign.lean Modified Mathlib/Data/Sum/Basic.lean +/- theorem Sum.inl_injective +/- theorem Sum.inr_injective +/- theorem Sum.update_elim_inl +/- theorem Sum.update_elim_inr +/- theorem Sum.update_inl_apply_inl +/- theorem Sum.update_inl_apply_inr +/- theorem Sum.update_inl_comp_inl +/- theorem Sum.update_inl_comp_inr +/- theorem Sum.update_inr_apply_inl +/- theorem Sum.update_inr_apply_inr +/- theorem Sum.update_inr_comp_inl +/- theorem Sum.update_inr_comp_inr +/- def Sum3.in₀ +/- def Sum3.in₁ +/- def Sum3.in₂ Modified Mathlib/Data/Sum/Interval.lean +/- def Finset.sumLexLift +/- def Finset.sumLift₂ +/- theorem Sum.Icc_inl_inl +/- theorem Sum.Icc_inr_inr +/- theorem Sum.Ico_inl_inl +/- theorem Sum.Ico_inr_inr +/- theorem Sum.Ioc_inl_inl +/- theorem Sum.Ioc_inr_inr +/- theorem Sum.Ioo_inl_inl +/- theorem Sum.Ioo_inr_inr Modified Mathlib/Data/Sum/Order.lean +/- def OrderIso.sumAssoc +/- def OrderIso.sumComm +/- def OrderIso.sumDualDistrib +/- theorem Sum.Lex.inl_bot +/- theorem Sum.Lex.inl_le_inl_iff +/- theorem Sum.Lex.inl_lt_inl_iff +/- theorem Sum.Lex.inr_le_inr_iff +/- theorem Sum.Lex.inr_top +/- theorem Sum.Lex.toLex_le_toLex +/- theorem Sum.Lex.toLex_lt_toLex +/- theorem Sum.Lex.toLex_mono +/- theorem Sum.Lex.toLex_strictMono +/- theorem Sum.inl_le_inl_iff +/- theorem Sum.inl_lt_inl_iff +/- theorem Sum.inl_mono +/- theorem Sum.inl_strictMono +/- theorem Sum.inr_le_inr_iff +/- theorem Sum.inr_lt_inr_iff +/- theorem Sum.inr_mono +/- theorem Sum.inr_strictMono +/- theorem Sum.le_def +/- theorem Sum.lt_def +/- theorem Sum.noMaxOrder_iff +/- theorem Sum.noMinOrder_iff +/- theorem Sum.swap_le_swap_iff +/- theorem Sum.swap_lt_swap_iff Modified Mathlib/Data/Sym/Basic.lean +/- def SymOptionSuccEquiv.decode +/- def SymOptionSuccEquiv.encode +/- theorem SymOptionSuccEquiv.encode_decode Modified Mathlib/Data/TwoPointing.lean Modified Mathlib/Data/W/Constructions.lean +/- def WType.ListαEquivPUnitSum +/- def WType.NatαEquivPUnitSumPUnit Modified Mathlib/FieldTheory/ChevalleyWarning.lean Modified Mathlib/GroupTheory/Perm/Basic.lean +/- def Equiv.Perm.sumCongrHom Modified Mathlib/GroupTheory/Perm/Finite.lean +/- theorem Equiv.Perm.perm_mapsTo_inl_iff_mapsTo_inr Modified Mathlib/GroupTheory/SpecificGroups/Dihedral.lean Modified Mathlib/GroupTheory/SpecificGroups/Quaternion.lean Modified Mathlib/LinearAlgebra/Alternating/DomCoprod.lean Modified Mathlib/LinearAlgebra/Basis.lean Modified Mathlib/LinearAlgebra/Basis/VectorSpace.lean Modified Mathlib/LinearAlgebra/Finsupp.lean +/- theorem Finsupp.fst_sumFinsuppLEquivProdFinsupp +/- theorem Finsupp.snd_sumFinsuppLEquivProdFinsupp +/- def Finsupp.sumFinsuppLEquivProdFinsupp Modified Mathlib/LinearAlgebra/LinearIndependent.lean +/- theorem linearIndependent_sum Modified Mathlib/LinearAlgebra/Matrix/Determinant/Basic.lean Modified Mathlib/LinearAlgebra/Matrix/SchurComplement.lean Modified Mathlib/LinearAlgebra/Matrix/Transvection.lean +/- def Matrix.Pivot.listTransvecCol +/- theorem Matrix.Pivot.listTransvecCol_mul_last_row +/- theorem Matrix.Pivot.listTransvecCol_mul_last_row_drop +/- def Matrix.Pivot.listTransvecRow +/- theorem Matrix.Pivot.mul_listTransvecRow_last_col +/- theorem Matrix.Pivot.mul_listTransvecRow_last_col_take +/- def Matrix.TransvectionStruct.sumInl Modified Mathlib/LinearAlgebra/Multilinear/Basic.lean +/- def MultilinearMap.currySum +/- theorem MultilinearMap.currySum_apply Modified Mathlib/LinearAlgebra/Multilinear/TensorProduct.lean Modified Mathlib/LinearAlgebra/Pi.lean +/- theorem LinearEquiv.sumArrowLequivProdArrow_apply_fst +/- theorem LinearEquiv.sumArrowLequivProdArrow_apply_snd Modified Mathlib/LinearAlgebra/PiTensorProduct.lean +/- def PiTensorProduct.tmulEquiv +/- theorem PiTensorProduct.tmulEquiv_symm_apply Modified Mathlib/LinearAlgebra/SymplecticGroup.lean +/- def Matrix.J +/- def Matrix.symplecticGroup +/- theorem SymplecticGroup.coe_inv' +/- theorem SymplecticGroup.inv_eq_symplectic_inv +/- theorem SymplecticGroup.mem_iff Modified Mathlib/Logic/Denumerable.lean Modified Mathlib/Logic/Embedding/Basic.lean +/- def Function.Embedding.inl +/- def Function.Embedding.inr +/- def Function.Embedding.sumMap Modified Mathlib/Logic/Encodable/Basic.lean +/- def Encodable.decodeSum +/- theorem Encodable.decode_sum_val +/- def Encodable.encodeSum +/- theorem Encodable.encode_inl +/- theorem Encodable.encode_inr Modified Mathlib/Logic/Equiv/Basic.lean +/- theorem Equiv.Perm.sumCongr_apply +/- theorem Equiv.Perm.sumCongr_refl +/- def Equiv.boolEquivPUnitSumPUnit +/- def Equiv.boolProdEquivSum +/- def Equiv.emptySum +/- def Equiv.intEquivNatSumNat +/- def Equiv.natEquivNatSumPUnit +/- def Equiv.natSumPUnitEquivNat +/- def Equiv.optionEquivSumPUnit +/- def Equiv.prodSumDistrib +/- def Equiv.psumCongr +/- def Equiv.psumEquivSum +/- def Equiv.sigmaNatSucc +/- def Equiv.sumArrowEquivProdArrow +/- theorem Equiv.sumArrowEquivProdArrow_apply_fst +/- theorem Equiv.sumArrowEquivProdArrow_apply_snd +/- def Equiv.sumAssoc +/- def Equiv.sumComm +/- def Equiv.sumCongr +/- theorem Equiv.sumCongr_refl +/- def Equiv.sumEmpty +/- def Equiv.sumEquivSigmaBool +/- def Equiv.sumProdDistrib Modified Mathlib/Logic/Equiv/Embedding.lean Modified Mathlib/Logic/Equiv/Fin.lean +/- def finSumFinEquiv Modified Mathlib/Logic/Equiv/Set.lean Modified Mathlib/Logic/IsEmpty.lean +/- theorem isEmpty_psum +/- theorem isEmpty_sum Modified Mathlib/Logic/Nonempty.lean +/- theorem nonempty_psum +/- theorem nonempty_sum Modified Mathlib/Logic/Nontrivial/Basic.lean Modified Mathlib/Logic/Small/Basic.lean Modified Mathlib/MeasureTheory/Constructions/BorelSpace/Real.lean +/- def ENNReal.ennrealEquivSum Modified Mathlib/MeasureTheory/MeasurableSpace/Embedding.lean +/- def MeasurableEquiv.Set.rangeInr +/- def MeasurableEquiv.sumCongr Modified Mathlib/ModelTheory/Basic.lean Modified Mathlib/ModelTheory/Definability.lean +/- theorem Set.Definable.image_comp_sum_inl_fin Modified Mathlib/ModelTheory/Encoding.lean +/- def FirstOrder.Language.BoundedFormula.listDecode +/- theorem FirstOrder.Language.Term.card_le +/- theorem FirstOrder.Language.Term.card_sigma +/- def FirstOrder.Language.Term.listDecode +/- def FirstOrder.Language.Term.listEncode Modified Mathlib/ModelTheory/Order.lean +/- def FirstOrder.Language.Term.le +/- def FirstOrder.Language.Term.lt +/- theorem FirstOrder.Language.Term.realize_le +/- theorem FirstOrder.Language.Term.realize_lt Modified Mathlib/ModelTheory/Semantics.lean +/- theorem FirstOrder.Language.BoundedFormula.realize_bdEqual +/- theorem FirstOrder.Language.BoundedFormula.realize_relabel +/- theorem FirstOrder.Language.BoundedFormula.realize_toFormula +/- theorem FirstOrder.Language.Term.realize_liftAt +/- theorem FirstOrder.Language.Term.realize_restrictVarLeft Modified Mathlib/ModelTheory/Syntax.lean +/- theorem FirstOrder.Language.BoundedFormula.IsQF.relabel +/- def FirstOrder.Language.BoundedFormula.constantsVarsEquiv +/- def FirstOrder.Language.BoundedFormula.mapTermRel +/- def FirstOrder.Language.BoundedFormula.mapTermRelEquiv +/- def FirstOrder.Language.BoundedFormula.relabel +/- def FirstOrder.Language.BoundedFormula.relabelAux +/- theorem FirstOrder.Language.BoundedFormula.relabel_all +/- theorem FirstOrder.Language.BoundedFormula.relabel_bot +/- theorem FirstOrder.Language.BoundedFormula.relabel_ex +/- theorem FirstOrder.Language.BoundedFormula.relabel_falsum +/- theorem FirstOrder.Language.BoundedFormula.relabel_imp +/- theorem FirstOrder.Language.BoundedFormula.relabel_not +/- theorem FirstOrder.Language.BoundedFormula.sum_elim_comp_relabelAux +/- def FirstOrder.Language.BoundedFormula.toFormula +/- def FirstOrder.Language.Relations.boundedFormula +/- def FirstOrder.Language.Relations.boundedFormula₁ +/- def FirstOrder.Language.Relations.boundedFormula₂ +/- def FirstOrder.Language.Term.bdEqual +/- def FirstOrder.Language.Term.constantsToVars +/- def FirstOrder.Language.Term.constantsVarsEquiv +/- def FirstOrder.Language.Term.constantsVarsEquivLeft +/- theorem FirstOrder.Language.Term.constantsVarsEquivLeft_apply +/- theorem FirstOrder.Language.Term.constantsVarsEquivLeft_symm_apply +/- def FirstOrder.Language.Term.liftAt +/- def FirstOrder.Language.Term.varFinsetLeft +/- def FirstOrder.Language.Term.varsToConstants Modified Mathlib/NumberTheory/Dioph.lean +/- theorem Dioph.ex_dioph Modified Mathlib/Order/BoundedOrder.lean Modified Mathlib/Order/CompleteLattice.lean +/- theorem iInf_sum +/- theorem iSup_sum Modified Mathlib/Order/CountableDenseLinearOrder.lean Modified Mathlib/Order/InitialSeg.lean Modified Mathlib/Order/JordanHolder.lean Modified Mathlib/RingTheory/FinitePresentation.lean Modified Mathlib/RingTheory/PrimeSpectrum.lean +/- def PrimeSpectrum.primeSpectrumProdOfSum Modified Mathlib/SetTheory/Cardinal/Basic.lean +/- theorem Cardinal.add_def +/- theorem Cardinal.mk_psum Modified Mathlib/SetTheory/Cardinal/Ordinal.lean Modified Mathlib/SetTheory/Game/Basic.lean Modified Mathlib/SetTheory/Game/PGame.lean +/- theorem SetTheory.PGame.leftMoves_add +/- theorem SetTheory.PGame.rightMoves_add +/- def SetTheory.PGame.toLeftMovesAdd +/- def SetTheory.PGame.toRightMovesAdd Modified Mathlib/SetTheory/Lists.lean Modified Mathlib/SetTheory/Ordinal/Arithmetic.lean +/- theorem Ordinal.lsub_sum +/- theorem Ordinal.sup_sum Modified Mathlib/SetTheory/Ordinal/Notation.lean +/- def ONote.FundamentalSequenceProp +/- def ONote.fundamentalSequence Modified Mathlib/Tactic/ComputeDegree.lean +/- def Mathlib.Tactic.ComputeDegree.twoHeadsArgs Modified Mathlib/Testing/SlimCheck/Testable.lean +/- def SlimCheck.TestResult.combine Modified Mathlib/Topology/Category/TopCat/Limits/Products.lean Modified Mathlib/Topology/Compactness/SigmaCompact.lean Modified Mathlib/Topology/Connected/Basic.lean +/- theorem Sum.isConnected_iff +/- theorem Sum.isPreconnected_iff Modified Mathlib/Topology/Connected/TotallyDisconnected.lean Modified Mathlib/Topology/Homeomorph.lean +/- def Homeomorph.prodSumDistrib +/- def Homeomorph.sigmaProdDistrib +/- def Homeomorph.sumCongr +/- def Homeomorph.sumProdDistrib Modified Mathlib/Topology/LocallyFinite.lean +/- theorem locallyFinite_sum Modified Mathlib/Topology/MetricSpace/Gluing.lean +/- theorem Metric.Sum.dist_eq +/- def Metric.glueDist +/- theorem Metric.isometry_inl +/- theorem Metric.isometry_inr Modified Mathlib/Topology/MetricSpace/GromovHausdorff.lean Modified Mathlib/Topology/UniformSpace/UniformEmbedding.lean 2024-07-20 07:03:19 8e10870 feat: generalize `spectrum.subset_subalgebra` to subalgebra classes (#14926) ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/Spectrum.lean +/- theorem spectrum.subset_subalgebra Modified Mathlib/Analysis/NormedSpace/Star/ContinuousFunctionalCalculus.lean 2024-07-20 06:46:35 92b41b1 feat(CategoryTheory/Limits): identification of the point of any limit pullback cone in Type (#14935) The pullback of two maps in `Type` was already described explicitly. We generalize the API to any limit pullback cone. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Limits/Shapes/Types.lean + theorem CategoryTheory.Limits.Types.PullbackCone.IsLimit.equivPullbackObj_apply_fst + theorem CategoryTheory.Limits.Types.PullbackCone.IsLimit.equivPullbackObj_apply_snd + theorem CategoryTheory.Limits.Types.PullbackCone.IsLimit.equivPullbackObj_symm_apply_fst + theorem CategoryTheory.Limits.Types.PullbackCone.IsLimit.equivPullbackObj_symm_apply_snd + theorem CategoryTheory.Limits.Types.PullbackCone.IsLimit.type_ext - def CategoryTheory.Limits.Types.Pushout' - theorem CategoryTheory.Limits.Types.Pushout.Rel'.symm - inductive CategoryTheory.Limits.Types.Pushout.Rel' - inductive CategoryTheory.Limits.Types.Pushout.Rel - def CategoryTheory.Limits.Types.Pushout.cocone - theorem CategoryTheory.Limits.Types.Pushout.condition - def CategoryTheory.Limits.Types.Pushout.equivPushout' - theorem CategoryTheory.Limits.Types.Pushout.equivalence_rel' - def CategoryTheory.Limits.Types.Pushout.inl - theorem CategoryTheory.Limits.Types.Pushout.inl_eq_inr_iff - theorem CategoryTheory.Limits.Types.Pushout.inl_rel'_inl_iff - theorem CategoryTheory.Limits.Types.Pushout.inl_rel'_inr_iff - def CategoryTheory.Limits.Types.Pushout.inr - theorem CategoryTheory.Limits.Types.Pushout.inr_rel'_inr_iff - def CategoryTheory.Limits.Types.Pushout.isColimitCocone - theorem CategoryTheory.Limits.Types.Pushout.quot_mk_eq_iff - def CategoryTheory.Limits.Types.Pushout + def CategoryTheory.Limits.Types.Types.Pushout' + theorem CategoryTheory.Limits.Types.Types.Pushout.Rel'.symm + inductive CategoryTheory.Limits.Types.Types.Pushout.Rel' + inductive CategoryTheory.Limits.Types.Types.Pushout.Rel + def CategoryTheory.Limits.Types.Types.Pushout.cocone + theorem CategoryTheory.Limits.Types.Types.Pushout.condition + def CategoryTheory.Limits.Types.Types.Pushout.equivPushout' + theorem CategoryTheory.Limits.Types.Types.Pushout.equivalence_rel' + def CategoryTheory.Limits.Types.Types.Pushout.inl + theorem CategoryTheory.Limits.Types.Types.Pushout.inl_eq_inr_iff + theorem CategoryTheory.Limits.Types.Types.Pushout.inl_rel'_inl_iff + theorem CategoryTheory.Limits.Types.Types.Pushout.inl_rel'_inr_iff + def CategoryTheory.Limits.Types.Types.Pushout.inr + theorem CategoryTheory.Limits.Types.Types.Pushout.inr_rel'_inr_iff + def CategoryTheory.Limits.Types.Types.Pushout.isColimitCocone + theorem CategoryTheory.Limits.Types.Types.Pushout.quot_mk_eq_iff + def CategoryTheory.Limits.Types.Types.Pushout + theorem CategoryTheory.Limits.Types.Types.pullbackIsoPullback_hom_fst + theorem CategoryTheory.Limits.Types.Types.pullbackIsoPullback_hom_snd + theorem CategoryTheory.Limits.Types.Types.pullbackIsoPullback_inv_fst + theorem CategoryTheory.Limits.Types.Types.pullbackIsoPullback_inv_fst_apply + theorem CategoryTheory.Limits.Types.Types.pullbackIsoPullback_inv_snd + theorem CategoryTheory.Limits.Types.Types.pullbackIsoPullback_inv_snd_apply + theorem CategoryTheory.Limits.Types.Types.pushoutCocone_inl_eq_inr_iff_of_isColimit + theorem CategoryTheory.Limits.Types.Types.pushoutCocone_inl_eq_inr_iff_of_iso + theorem CategoryTheory.Limits.Types.Types.pushoutCocone_inl_eq_inr_imp_of_iso - theorem CategoryTheory.Limits.Types.pullbackIsoPullback_hom_fst - theorem CategoryTheory.Limits.Types.pullbackIsoPullback_hom_snd - theorem CategoryTheory.Limits.Types.pullbackIsoPullback_inv_fst - theorem CategoryTheory.Limits.Types.pullbackIsoPullback_inv_fst_apply - theorem CategoryTheory.Limits.Types.pullbackIsoPullback_inv_snd - theorem CategoryTheory.Limits.Types.pullbackIsoPullback_inv_snd_apply - theorem CategoryTheory.Limits.Types.pushoutCocone_inl_eq_inr_iff_of_isColimit - theorem CategoryTheory.Limits.Types.pushoutCocone_inl_eq_inr_iff_of_iso - theorem CategoryTheory.Limits.Types.pushoutCocone_inl_eq_inr_imp_of_iso 2024-07-20 05:54:34 3d2c990 feat(Analysis.SpecificLimits.Basic): Add limit of C/n in EReal (#14918) Add lemma `EReal.tendsto_const_div_atTop_nhds_zero_nat`. Sorry for the new issue, I botched the merge conflict on the previous iteration. ESTIMATED CHANGES Modified Mathlib/Analysis/SpecificLimits/Basic.lean + theorem EReal.tendsto_const_div_atTop_nhds_zero_nat 2024-07-20 05:54:33 ed6e80c chore(Algebra/GroupWithZero/Action/Opposite): Move from `GroupTheory.GroupAction.Opposite` (#14871) ESTIMATED CHANGES Modified Mathlib.lean Renamed Mathlib/GroupTheory/GroupAction/Opposite.lean to Mathlib/Algebra/GroupWithZero/Action/Opposite.lean Modified Mathlib/Algebra/Module/Opposites.lean Modified Mathlib/LinearAlgebra/Matrix/SesquilinearForm.lean Modified test/right_actions.lean 2024-07-20 04:58:23 c15cedc chore: remove comments about dubious translations (#14924) ESTIMATED CHANGES Modified Mathlib/Control/Traversable/Basic.lean Modified Mathlib/Data/Analysis/Filter.lean Modified Mathlib/Data/List/Defs.lean Modified Mathlib/Data/Ordmap/Ordnode.lean Modified Mathlib/Data/Vector/Defs.lean Modified Mathlib/Init/Data/Nat/Lemmas.lean 2024-07-20 03:37:37 8f84584 chore(CategoryTheory/Monad): rename `η'` to `η` (#14886) There are no differences between `η'` and `η` (unit for the monad `T`) anymore as we have a syntactic tautology `T.toFunctor = T` in Lean 4. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Monad/Adjunction.lean Modified Mathlib/CategoryTheory/Monad/Basic.lean - def CategoryTheory.Comonad.Simps.coe - def CategoryTheory.Comonad.Simps.δ - def CategoryTheory.Comonad.Simps.ε - theorem CategoryTheory.Comonad.coassoc - theorem CategoryTheory.Comonad.left_counit - theorem CategoryTheory.Comonad.right_counit - def CategoryTheory.Comonad.δ - def CategoryTheory.Comonad.ε - def CategoryTheory.Monad.Simps.coe - def CategoryTheory.Monad.Simps.η - def CategoryTheory.Monad.Simps.μ - theorem CategoryTheory.Monad.assoc - theorem CategoryTheory.Monad.left_unit - theorem CategoryTheory.Monad.right_unit - def CategoryTheory.Monad.η - def CategoryTheory.Monad.μ Modified Mathlib/CategoryTheory/Monad/EquivMon.lean Modified Mathlib/CategoryTheory/Monad/Products.lean Modified Mathlib/CategoryTheory/Monad/Types.lean Modified Mathlib/MeasureTheory/Category/MeasCat.lean 2024-07-20 02:39:47 4552b48 chore: update Mathlib dependencies 2024-07-20 (#14930) This PR updates the Mathlib dependencies. ESTIMATED CHANGES Modified lake-manifest.json 2024-07-20 01:12:47 58e38c4 feat: interactive `unfold?` tactic (#12016) This PR defines an interactive unfolding tactic. It suggests a list of unfolds, and when you select one, it pastes a rewrite tactic of the form `rw [show current = unfolded from rfl]`. This is part of #11768, which is a library rewrite tactic that also suggests the unfolds from this PR. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Lean/GoalsLocation.lean + def Lean.SubExpr.GoalsLocation.location + def Lean.SubExpr.GoalsLocation.pos + def Lean.SubExpr.GoalsLocation.rootExpr Added Mathlib/Lean/Meta/KAbstractPositions.lean + def Lean.Meta.kabstractIsTypeCorrect + def Lean.Meta.kabstractPositions + def Lean.Meta.viewKAbstractSubExpr Modified Mathlib/Tactic.lean Added Mathlib/Tactic/Widget/InteractiveUnfold.lean + def Mathlib.Tactic.InteractiveUnfold.InteractiveUnfold.UnfoldComponent + def Mathlib.Tactic.InteractiveUnfold.InteractiveUnfold.elabUnfoldCommand + def Mathlib.Tactic.InteractiveUnfold.InteractiveUnfold.renderUnfolds + def Mathlib.Tactic.InteractiveUnfold.InteractiveUnfold.tacticString + def Mathlib.Tactic.InteractiveUnfold.filteredUnfolds + def Mathlib.Tactic.InteractiveUnfold.isUserFriendly + def Mathlib.Tactic.InteractiveUnfold.mkRewrite + def Mathlib.Tactic.InteractiveUnfold.pasteString + def Mathlib.Tactic.InteractiveUnfold.unfoldProjDefaultInst? Added test/interactiveUnfold.lean 2024-07-20 01:02:27 9417ef3 feat(Data/Matroid/Closure): matroid closure (#14197) This PR defines the closure of a set in a matroid, and provides some API. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Data/Matroid/Closure.lean + theorem Matroid.Flat.closure + theorem Matroid.Flat.iInter + structure Matroid.Flat + def Matroid.closure + theorem Matroid.closure_biUnion_closure_eq_closure_biUnion + theorem Matroid.closure_biUnion_closure_eq_closure_sUnion + theorem Matroid.closure_biUnion_congr + theorem Matroid.closure_closure + theorem Matroid.closure_closure_union_closure_eq_closure_union + theorem Matroid.closure_def' + theorem Matroid.closure_def + theorem Matroid.closure_empty_union_closure_eq + theorem Matroid.closure_eq_subtypeClosure + theorem Matroid.closure_ground + theorem Matroid.closure_iUnion_closure_eq_closure_iUnion + theorem Matroid.closure_iUnion_congr + theorem Matroid.closure_insert_closure_eq_closure_insert + theorem Matroid.closure_insert_eq_of_mem_closure + theorem Matroid.closure_inter_ground + theorem Matroid.closure_mono + theorem Matroid.closure_subset_closure + theorem Matroid.closure_subset_closure_iff_subset_closure + theorem Matroid.closure_subset_closure_of_subset_closure + theorem Matroid.closure_subset_ground + theorem Matroid.closure_union_closure_empty_eq + theorem Matroid.closure_union_closure_left_eq + theorem Matroid.closure_union_closure_right_eq + theorem Matroid.closure_univ + theorem Matroid.exists_of_closure_ssubset + theorem Matroid.flat_iff_isClosed + theorem Matroid.ground_flat + theorem Matroid.ground_subset_closure_iff + theorem Matroid.inter_ground_subset_closure + theorem Matroid.isClosed_iff_flat + theorem Matroid.mem_closure_iff_forall_mem_flat + theorem Matroid.mem_closure_of_mem' + theorem Matroid.mem_closure_of_mem + theorem Matroid.mem_closure_self + theorem Matroid.mem_ground_of_mem_closure + theorem Matroid.not_mem_of_mem_diff_closure + theorem Matroid.subset_closure + theorem Matroid.subset_closure_iff_forall_subset_flat + theorem Matroid.subset_closure_of_subset' + theorem Matroid.subset_closure_of_subset + def Matroid.subtypeClosure 2024-07-19 23:34:42 5815806 chore(Init): remove empty files (#14916) Several files in `Init` only contained #align information and are now empty. ESTIMATED CHANGES Modified Mathlib.lean Deleted Mathlib/Data/Fintype/Array.lean Deleted Mathlib/Init/Classes/Order.lean Deleted Mathlib/Init/Data/Buffer/Parser.lean Deleted Mathlib/Init/Data/Int/DivMod.lean Deleted Mathlib/Init/Data/Int/Lemmas.lean Deleted Mathlib/Init/Data/Nat/Basic.lean Deleted Mathlib/Init/Data/Nat/Div.lean Deleted Mathlib/Init/Data/Option/Basic.lean Deleted Mathlib/Init/Data/Option/Init/Lemmas.lean Deleted Mathlib/Init/Data/Option/Lemmas.lean Deleted Mathlib/Init/Data/Rat/Basic.lean Modified Mathlib/Init/Logic.lean Modified Mathlib/Logic/Basic.lean Modified Mathlib/Tactic/ITauto.lean Modified scripts/noshake.json Modified test/solve_by_elim/basic.lean 2024-07-19 22:46:17 b66dd13 feat (Algebra/Module/LinearMap/Defs): the identity map of the zero module is the zero map (#14922) Add a lemma about the identity map of the zero module. This contribution was created as part of the AIM workshop *Formalizing algebraic geometry* in June 2024. ESTIMATED CHANGES Modified Mathlib/Algebra/Module/LinearMap/Defs.lean + theorem LinearMap.identityMapOfZeroModuleIsZero 2024-07-19 21:51:19 b8a743c chore: reduce imports in several files (#14919) Found by using the output of #14840. ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Action/Defs.lean Modified Mathlib/Algebra/GroupWithZero/WithZero.lean Modified Mathlib/Algebra/Order/Interval/Set/Group.lean Modified Mathlib/Data/Int/Cast/Lemmas.lean Modified Mathlib/Data/Nat/Cast/Basic.lean Modified Mathlib/Data/Nat/Cast/Order/Basic.lean Modified Mathlib/Data/Set/Pairwise/Basic.lean Modified Mathlib/Tactic/CategoryTheory/Reassoc.lean 2024-07-19 21:51:18 b131f97 chore(Filter.Germ): split off bundled ordered algebra instances (#14881) We split `Order.Filter.Germ` into `Basic` and `OrderedMonoid` to allow for explicitly importing bundled ordered algebra instances when desired. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/MeasureTheory/Function/AEEqFun.lean Modified Mathlib/ModelTheory/Ultraproducts.lean Renamed Mathlib/Order/Filter/Germ.lean to Mathlib/Order/Filter/Germ/Basic.lean Added Mathlib/Order/Filter/Germ/OrderedMonoid.lean Modified Mathlib/Order/Filter/Ring.lean Modified Mathlib/Topology/Germ.lean 2024-07-19 20:48:42 614cbd1 chore(lint-style): remove references to #align (#14915) Now that #aligns have been removed from mathlib, the associated logic is also obsolete. ESTIMATED CHANGES Modified Mathlib/Tactic/Linter/TextBased.lean 2024-07-19 20:48:41 adeb0a5 chore: remove `import Mathlib.Mathport.Rename` (#14912) We remove all `import Mathlib.Mathport.Rename`. This is done using ```bash find . -name "*.lean" -exec sed -i '/^import Mathlib.Mathport.Rename/d' {} + ``` plus two fixing by hand of files that were missing various imports. ESTIMATED CHANGES Modified Mathlib/Algebra/Group/ZeroOne.lean Modified Mathlib/Algebra/HierarchyDesign.lean Modified Mathlib/Algebra/Quotient.lean Modified Mathlib/CategoryTheory/ConcreteCategory/Bundled.lean Modified Mathlib/Control/Combinators.lean Modified Mathlib/Control/Lawful.lean Modified Mathlib/Control/ULift.lean Modified Mathlib/Data/Bracket.lean Modified Mathlib/Data/DList/Defs.lean Modified Mathlib/Data/Fin/Fin2.lean Modified Mathlib/Data/HashMap.lean Modified Mathlib/Data/Int/Align.lean Modified Mathlib/Data/List/TFAE.lean Modified Mathlib/Data/MLList/DepthFirst.lean Modified Mathlib/Data/Num/Basic.lean Modified Mathlib/Data/Option/Defs.lean Modified Mathlib/Data/Rat/Init.lean Modified Mathlib/Data/Rbmap/Basic.lean Modified Mathlib/Data/Rbmap/Default.lean Modified Mathlib/Data/Rbtree/Basic.lean Modified Mathlib/Data/Rbtree/DefaultLt.lean Modified Mathlib/Data/Rbtree/Find.lean Modified Mathlib/Data/Rbtree/Insert.lean Modified Mathlib/Data/Rbtree/Main.lean Modified Mathlib/Data/Rbtree/MinMax.lean Modified Mathlib/Data/Stream/Defs.lean Modified Mathlib/Data/String/Defs.lean Modified Mathlib/Data/Tree/Basic.lean Modified Mathlib/Init/Classes/Order.lean Modified Mathlib/Init/Classical.lean Modified Mathlib/Init/Core.lean Modified Mathlib/Init/Data/Int/DivMod.lean Modified Mathlib/Init/Data/Int/Lemmas.lean Modified Mathlib/Init/Data/List/Basic.lean Modified Mathlib/Init/Data/List/Instances.lean Modified Mathlib/Init/Data/List/Lemmas.lean Modified Mathlib/Init/Data/Nat/Basic.lean Modified Mathlib/Init/Data/Nat/Div.lean Modified Mathlib/Init/Data/Nat/GCD.lean Modified Mathlib/Init/Data/Nat/Lemmas.lean Modified Mathlib/Init/Data/Option/Basic.lean Modified Mathlib/Init/Data/Option/Init/Lemmas.lean Modified Mathlib/Init/Data/Option/Lemmas.lean Modified Mathlib/Init/Data/Ordering/Basic.lean Modified Mathlib/Init/Data/Quot.lean Modified Mathlib/Init/Data/Rat/Basic.lean Modified Mathlib/Init/Data/Sigma/Lex.lean Modified Mathlib/Init/Logic.lean Modified Mathlib/Init/Meta/WellFoundedTactics.lean Modified Mathlib/Init/Order/Defs.lean Modified Mathlib/Init/Quot.lean Modified Mathlib/Init/Set.lean Modified Mathlib/Lean/Json.lean Modified Mathlib/Lean/Thunk.lean Modified Mathlib/Logic/Function/Defs.lean Modified Mathlib/Logic/Function/OfArity.lean Modified Mathlib/Order/Notation.lean Modified Mathlib/Tactic/CC/Datatypes.lean Modified Mathlib/Tactic/Common.lean Modified Mathlib/Tactic/Hint.lean Modified Mathlib/Tactic/Lift.lean Modified Mathlib/Tactic/ToLevel.lean Modified test/HashCommandLinter.lean Modified test/search/DepthFirst.lean 2024-07-19 18:48:55 41fc38b chore: reduce imports in Mathlib.CategoryTheory.Category.Grpd (#14917) Another #14840 import removal. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Category/Grpd.lean 2024-07-19 18:48:53 40c9de4 chore: reduce imports in Mathlib.Algebra.Group.Int (#14900) Found by `linter.minImports` (#14840). ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Int.lean 2024-07-19 18:48:52 736794f chore: Split and move RingTheory.Ideal.LocalRing (#14829) Currently, [LocalRing](https://leanprover-community.github.io/mathlib4_docs/Mathlib/RingTheory/Ideal/LocalRing.html#LocalRing) is defined in the (long) file `Mathlib.RingTheory.Ideal.LocalRing`. We also have a folder `Mathlib.RingTheory.LocalRing` that contains only one (advanced) file `Module`. The file `Mathlib.RingTheory.Ideal.LocalRing` is moved an splitted in several files. The new structure is ``` ├── RingTheory.LocalRing │ ├── MaximalIdeal │ │ ├── Defs │ │ ├── Basic │ ├── RingHom │ │ ├── Defs │ │ ├── Basic │ ├── ResidueField │ │ ├── Defs │ │ ├── Basic │ ├── Defs │ ├── Basic └── ... ``` ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Category/Ring/Instances.lean Modified Mathlib/Algebra/CharP/LocalRing.lean Modified Mathlib/Algebra/Polynomial/Expand.lean Modified Mathlib/AlgebraicGeometry/PrimeSpectrum/Basic.lean Modified Mathlib/FieldTheory/Tower.lean Modified Mathlib/Geometry/RingedSpace/LocallyRingedSpace/ResidueField.lean Modified Mathlib/LinearAlgebra/Dual.lean Modified Mathlib/NumberTheory/ClassNumber/AdmissibleCardPowDegree.lean Modified Mathlib/NumberTheory/MulChar/Lemmas.lean Modified Mathlib/RingTheory/AdjoinRoot.lean Modified Mathlib/RingTheory/DiscreteValuationRing/Basic.lean Modified Mathlib/RingTheory/Filtration.lean Modified Mathlib/RingTheory/Henselian.lean Modified Mathlib/RingTheory/Ideal/Cotangent.lean Deleted Mathlib/RingTheory/Ideal/LocalRing.lean - theorem LocalRing.ResidueField.algebraMap_eq - def LocalRing.ResidueField.lift - theorem LocalRing.ResidueField.lift_comp_residue - theorem LocalRing.ResidueField.lift_residue_apply - def LocalRing.ResidueField.map - def LocalRing.ResidueField.mapAut - theorem LocalRing.ResidueField.mapEquiv.symm - def LocalRing.ResidueField.mapEquiv - theorem LocalRing.ResidueField.mapEquiv_refl - theorem LocalRing.ResidueField.mapEquiv_trans - theorem LocalRing.ResidueField.map_comp - theorem LocalRing.ResidueField.map_comp_residue - theorem LocalRing.ResidueField.map_id - theorem LocalRing.ResidueField.map_id_apply - theorem LocalRing.ResidueField.map_map - theorem LocalRing.ResidueField.map_residue - theorem LocalRing.ResidueField.residue_smul - def LocalRing.ResidueField - theorem LocalRing.eq_maximalIdeal - theorem LocalRing.isField_iff_maximalIdeal_eq - theorem LocalRing.isLocalRingHom_residue - theorem LocalRing.isUnit_of_mem_nonunits_one_sub_self - theorem LocalRing.isUnit_one_sub_self_of_mem_nonunits - theorem LocalRing.isUnit_or_isUnit_of_isUnit_add - theorem LocalRing.isUnit_or_isUnit_one_sub_self - theorem LocalRing.jacobson_eq_maximalIdeal - theorem LocalRing.ker_eq_maximalIdeal - theorem LocalRing.ker_residue - theorem LocalRing.le_maximalIdeal - theorem LocalRing.local_hom_TFAE - def LocalRing.maximalIdeal - theorem LocalRing.maximalIdeal_eq_bot - theorem LocalRing.maximalIdeal_le_jacobson - theorem LocalRing.maximal_ideal_unique - theorem LocalRing.mem_maximalIdeal - theorem LocalRing.nonunits_add - theorem LocalRing.of_isUnit_or_isUnit_of_isUnit_add - theorem LocalRing.of_isUnit_or_isUnit_one_sub_self - theorem LocalRing.of_nonunits_add - theorem LocalRing.of_surjective' - theorem LocalRing.of_surjective - theorem LocalRing.of_unique_max_ideal - theorem LocalRing.of_unique_nonzero_prime - def LocalRing.residue - theorem LocalRing.residue_eq_zero_iff - theorem LocalRing.residue_ne_zero_iff_isUnit - theorem LocalRing.surjective_units_map_of_local_ringHom - theorem RingHom.domain_localRing - theorem isLocalRingHom_of_comp - theorem isUnit_map_iff - theorem isUnit_of_map_unit - theorem map_mem_nonunits_iff - theorem map_nonunit - theorem of_irreducible_map Added Mathlib/RingTheory/LocalRing/Basic.lean + theorem LocalRing.isUnit_of_mem_nonunits_one_sub_self + theorem LocalRing.isUnit_one_sub_self_of_mem_nonunits + theorem LocalRing.isUnit_or_isUnit_of_isUnit_add + theorem LocalRing.isUnit_or_isUnit_one_sub_self + theorem LocalRing.nonunits_add + theorem LocalRing.of_isUnit_or_isUnit_of_isUnit_add + theorem LocalRing.of_isUnit_or_isUnit_one_sub_self + theorem LocalRing.of_nonunits_add + theorem LocalRing.of_surjective' + theorem LocalRing.of_unique_max_ideal + theorem LocalRing.of_unique_nonzero_prime Added Mathlib/RingTheory/LocalRing/Defs.lean Added Mathlib/RingTheory/LocalRing/MaximalIdeal/Basic.lean + theorem LocalRing.eq_maximalIdeal + theorem LocalRing.isField_iff_maximalIdeal_eq + theorem LocalRing.jacobson_eq_maximalIdeal + theorem LocalRing.ker_eq_maximalIdeal + theorem LocalRing.le_maximalIdeal + theorem LocalRing.maximalIdeal_eq_bot + theorem LocalRing.maximalIdeal_le_jacobson + theorem LocalRing.maximal_ideal_unique + theorem LocalRing.mem_maximalIdeal Added Mathlib/RingTheory/LocalRing/MaximalIdeal/Defs.lean + def LocalRing.maximalIdeal Modified Mathlib/RingTheory/LocalRing/Module.lean Added Mathlib/RingTheory/LocalRing/ResidueField/Basic.lean + theorem LocalRing.ResidueField.algebraMap_eq + def LocalRing.ResidueField.lift + theorem LocalRing.ResidueField.lift_comp_residue + theorem LocalRing.ResidueField.lift_residue_apply + def LocalRing.ResidueField.map + def LocalRing.ResidueField.mapAut + theorem LocalRing.ResidueField.mapEquiv.symm + def LocalRing.ResidueField.mapEquiv + theorem LocalRing.ResidueField.mapEquiv_refl + theorem LocalRing.ResidueField.mapEquiv_trans + theorem LocalRing.ResidueField.map_comp + theorem LocalRing.ResidueField.map_comp_residue + theorem LocalRing.ResidueField.map_id + theorem LocalRing.ResidueField.map_id_apply + theorem LocalRing.ResidueField.map_map + theorem LocalRing.ResidueField.map_residue + theorem LocalRing.ResidueField.residue_smul + theorem LocalRing.isLocalRingHom_residue + theorem LocalRing.ker_residue + theorem LocalRing.residue_eq_zero_iff + theorem LocalRing.residue_ne_zero_iff_isUnit Added Mathlib/RingTheory/LocalRing/ResidueField/Defs.lean + def LocalRing.ResidueField + def LocalRing.residue Added Mathlib/RingTheory/LocalRing/RingHom/Basic.lean + theorem LocalRing.local_hom_TFAE + theorem LocalRing.of_surjective + theorem LocalRing.surjective_units_map_of_local_ringHom + theorem RingHom.domain_localRing + theorem isLocalRingHom_of_comp + theorem isUnit_map_iff + theorem isUnit_of_map_unit + theorem map_mem_nonunits_iff + theorem map_nonunit + theorem of_irreducible_map Added Mathlib/RingTheory/LocalRing/RingHom/Defs.lean Modified Mathlib/RingTheory/Localization/AtPrime.lean Modified Mathlib/RingTheory/Localization/Integral.lean Modified Mathlib/RingTheory/MvPowerSeries/Inverse.lean Modified Mathlib/RingTheory/Polynomial/Dickson.lean Modified Mathlib/RingTheory/PowerSeries/Inverse.lean Modified Mathlib/RingTheory/Regular/RegularSequence.lean Modified Mathlib/RingTheory/Valuation/RamificationGroup.lean Modified Mathlib/RingTheory/Valuation/ValuationRing.lean Modified Mathlib/RingTheory/Valuation/ValuationSubring.lean Modified Mathlib/Topology/Algebra/Module/FiniteDimension.lean 2024-07-19 17:46:46 4ba0c17 chore: remove comments mentioning #align (#14914) including a number of porting notes referring to now-deleted #align statements. ESTIMATED CHANGES Modified Mathlib/Algebra/Category/ModuleCat/Monoidal/Basic.lean Modified Mathlib/Algebra/Category/Ring/Basic.lean Modified Mathlib/Algebra/Field/Subfield.lean Modified Mathlib/Algebra/FreeAlgebra.lean Modified Mathlib/Algebra/Group/Commute/Defs.lean Modified Mathlib/Algebra/Group/Defs.lean Modified Mathlib/Algebra/Group/Equiv/Basic.lean Modified Mathlib/Algebra/Group/Subgroup/Basic.lean Modified Mathlib/Algebra/Group/WithOne/Basic.lean Modified Mathlib/Algebra/Module/LocalizedModule.lean Modified Mathlib/Algebra/Order/Hom/Basic.lean Modified Mathlib/Algebra/Order/Pi.lean Modified Mathlib/Algebra/Star/StarAlgHom.lean Modified Mathlib/Analysis/NormedSpace/LpEquiv.lean Modified Mathlib/Analysis/SpecialFunctions/Pow/Complex.lean Modified Mathlib/Analysis/SpecialFunctions/Pow/NNReal.lean Modified Mathlib/CategoryTheory/Abelian/FunctorCategory.lean Modified Mathlib/CategoryTheory/Adjunction/Basic.lean Modified Mathlib/CategoryTheory/Bicategory/Free.lean Modified Mathlib/CategoryTheory/Filtered/Basic.lean Modified Mathlib/CategoryTheory/Limits/Shapes/ZeroMorphisms.lean Modified Mathlib/CategoryTheory/Limits/Types.lean Modified Mathlib/CategoryTheory/Monad/Algebra.lean Modified Mathlib/CategoryTheory/Monad/Basic.lean Modified Mathlib/CategoryTheory/Subobject/Basic.lean Modified Mathlib/Combinatorics/HalesJewett.lean Modified Mathlib/Computability/Primrec.lean Modified Mathlib/Control/Applicative.lean Modified Mathlib/Control/LawfulFix.lean Modified Mathlib/Control/Traversable/Equiv.lean Modified Mathlib/Data/Fin/VecNotation.lean Modified Mathlib/Data/Finset/Basic.lean Modified Mathlib/Data/Int/Bitwise.lean Modified Mathlib/Data/Int/Defs.lean Modified Mathlib/Data/List/Defs.lean Modified Mathlib/Data/List/OfFn.lean Modified Mathlib/Data/Nat/Dist.lean Modified Mathlib/Data/Nat/Log.lean Modified Mathlib/Data/PSigma/Order.lean Modified Mathlib/Data/Sigma/Order.lean Modified Mathlib/Data/Stream/Defs.lean Modified Mathlib/Data/Vector/Basic.lean Modified Mathlib/Geometry/RingedSpace/SheafedSpace.lean Modified Mathlib/GroupTheory/FreeGroup/NielsenSchreier.lean Modified Mathlib/GroupTheory/GroupAction/Hom.lean Modified Mathlib/Init/Algebra/Classes.lean Modified Mathlib/Init/Classical.lean Modified Mathlib/Init/Core.lean Modified Mathlib/Init/Data/Fin/Basic.lean Modified Mathlib/Init/Data/Int/Order.lean Modified Mathlib/Init/Data/List/Basic.lean Modified Mathlib/Init/Data/List/Instances.lean Modified Mathlib/Init/Data/List/Lemmas.lean Modified Mathlib/Init/Data/Nat/GCD.lean Modified Mathlib/Init/Data/Nat/Lemmas.lean Modified Mathlib/Init/Data/Option/Lemmas.lean Modified Mathlib/Init/Data/Ordering/Basic.lean Modified Mathlib/Init/Data/Ordering/Lemmas.lean Modified Mathlib/Init/Data/Prod.lean Modified Mathlib/Init/Data/Quot.lean Modified Mathlib/Init/Data/Sigma/Basic.lean Modified Mathlib/Init/Data/Sigma/Lex.lean Modified Mathlib/Init/Logic.lean Modified Mathlib/Init/Meta/WellFoundedTactics.lean Modified Mathlib/Init/Order/Defs.lean Modified Mathlib/Init/Order/LinearOrder.lean Modified Mathlib/Init/Quot.lean Modified Mathlib/Init/Set.lean Modified Mathlib/LinearAlgebra/InvariantBasisNumber.lean Modified Mathlib/Logic/Equiv/Option.lean Modified Mathlib/Logic/Equiv/PartialEquiv.lean Modified Mathlib/Order/Category/FinBoolAlg.lean Modified Mathlib/Order/Heyting/Basic.lean Modified Mathlib/Order/JordanHolder.lean Modified Mathlib/Order/LiminfLimsup.lean Modified Mathlib/RepresentationTheory/Rep.lean Modified Mathlib/RingTheory/DedekindDomain/Ideal.lean Modified Mathlib/RingTheory/Localization/Ideal.lean Modified Mathlib/RingTheory/PowerSeries/Order.lean Modified Mathlib/RingTheory/RingInvo.lean Modified Mathlib/SetTheory/Cardinal/Basic.lean Modified Mathlib/SetTheory/Cardinal/Ordinal.lean Modified Mathlib/SetTheory/Ordinal/Exponential.lean Modified Mathlib/Topology/Algebra/Group/Basic.lean Modified Mathlib/Topology/Algebra/Ring/Ideal.lean Modified Mathlib/Topology/Homotopy/Product.lean Modified Mathlib/Topology/Sets/Opens.lean Modified Mathlib/Topology/VectorBundle/Basic.lean 2024-07-19 17:46:44 5473f37 chore: remove `#align`-oriented linters (#14909) Now that `#align`s have been removed, these linters and exceptions are obsolete. ESTIMATED CHANGES Modified Mathlib/Tactic/Linter/HashCommandLinter.lean Modified Mathlib/Tactic/Linter/Lint.lean - def Mathlib.Linter.OneLineAlignLinter.getLinterOneLineAlign - def Mathlib.Linter.OneLineAlignLinter.oneLineAlign Modified test/HashCommandLinter.lean - theorem fo₁ 2024-07-19 17:46:43 8b34afe chore: remove more easy autoImplicit (#14896) ESTIMATED CHANGES Modified Mathlib/Data/List/EditDistance/Bounds.lean Modified Mathlib/Data/List/EditDistance/Estimator.lean Modified Mathlib/Data/MLList/BestFirst.lean +/- structure BestFirstNode Modified Mathlib/Data/MLList/Dedup.lean Modified Mathlib/Data/MLList/DepthFirst.lean Modified Mathlib/Data/MLList/IO.lean Modified Mathlib/Data/MLList/Split.lean 2024-07-19 17:46:42 8b7cafa feat(Logic/Embedding/Set): Injections from subtypes of disjoint sets (#14195) For disjoint `s t : Set α`, there is a natural injection from `↑s ⊕ ↑t` to `α`. We provide this as an embedding, and do the same for an indexed family of pairwise disjoint sets. ESTIMATED CHANGES Modified Mathlib/Logic/Embedding/Set.lean + theorem Function.Embedding.coe_sigmaSet + theorem Function.Embedding.coe_sumSet + def Function.Embedding.sigmaSet + theorem Function.Embedding.sigmaSet_preimage + theorem Function.Embedding.sigmaSet_range + def Function.Embedding.sumSet + theorem Function.Embedding.sumSet_preimage_inl + theorem Function.Embedding.sumSet_preimage_inr + theorem Function.Embedding.sumSet_range 2024-07-19 17:33:04 3383476 feat: generalize Siegel's lemma to `A = 0` (#14852) The Wikipedia statement of Siegel's lemma did not contain the hypothesis `A != 0` in the lean formalization. A slight variant of the statement is still true if `A = 0`. The original statement is recovered under the assumption `A != 0`. ESTIMATED CHANGES Modified Mathlib/NumberTheory/SiegelsLemma.lean + theorem Int.Matrix.exists_ne_zero_int_vec_norm_le' +/- theorem Int.Matrix.exists_ne_zero_int_vec_norm_le +/- theorem Int.Matrix.one_le_norm_A_of_ne_zero 2024-07-19 14:40:56 cb4fdfb chore: last refine replacements (#14902) ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Antidiag/Pi.lean Modified Mathlib/Analysis/Calculus/ContDiff/Bounds.lean Modified Mathlib/Analysis/FunctionalSpaces/SobolevInequality.lean Modified Mathlib/Analysis/Normed/Order/UpperLower.lean Modified Mathlib/CategoryTheory/Localization/DerivabilityStructure/Constructor.lean Modified Mathlib/CategoryTheory/Shift/CommShift.lean Modified Mathlib/CategoryTheory/Triangulated/HomologicalFunctor.lean Modified Mathlib/CategoryTheory/Triangulated/Subcategory.lean Modified Mathlib/Data/Set/Function.lean Modified Mathlib/GroupTheory/Perm/List.lean Modified Mathlib/LinearAlgebra/DirectSum/TensorProduct.lean Modified Mathlib/LinearAlgebra/Matrix/PosDef.lean Modified Mathlib/Order/CompleteLattice.lean Modified Mathlib/RepresentationTheory/GroupCohomology/Resolution.lean Modified Mathlib/RingTheory/EssentialFiniteness.lean Modified Mathlib/RingTheory/LaurentSeries.lean Modified Mathlib/Topology/Support.lean 2024-07-19 14:02:55 1eae226 chore(workflows/nightly_detect_failure): only compare initial parts of messages (#14862) Comparing entire messages does not seem to work. Maybe because Zulip removed the trailing newline? Comparing the first 160 chars should be enough. ESTIMATED CHANGES Modified .github/workflows/nightly_detect_failure.yml 2024-07-19 14:02:54 869e6bb feat (LinearAlgebra/FreeProduct): introduce basic structure, universal property (#14858) Adds the free product of algebras, together with its universal property, in preparation for invoking it in a future `Category.AlgebraCat.FilteredColimits.lean`. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/LinearAlgebra/FreeProduct/Basic.lean + theorem DirectSum.induction_lon + theorem LinearAlgebra.FreeProduct.identify_one + def LinearAlgebra.FreeProduct.lift + theorem LinearAlgebra.FreeProduct.lift_comp_ι + theorem LinearAlgebra.FreeProduct.lift_unique + theorem LinearAlgebra.FreeProduct.lof_map_one + theorem LinearAlgebra.FreeProduct.mul_injections + def LinearAlgebra.FreeProduct.rel' + inductive LinearAlgebra.FreeProduct.rel + theorem LinearAlgebra.FreeProduct.rel_id + theorem LinearAlgebra.FreeProduct.ι_apply + def LinearAlgebra.FreeProduct + def LinearAlgebra.FreeProduct_ofPowers + def RingQuot.algEquiv_quot_algEquiv + def RingQuot.equiv_quot_equiv 2024-07-19 14:02:52 5768a1b feat(LightCondensed): the functor from `TopCat` to `LightCondSet` is a faithful right adjoint (#14506) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Condensed/Light/Basic.lean + theorem LightCondSet.hom_naturality_apply + theorem LightCondensed.comp_val + theorem LightCondensed.hom_ext + theorem LightCondensed.id_val Modified Mathlib/Condensed/Light/Module.lean + theorem LightCondMod.hom_naturality_apply Added Mathlib/Condensed/Light/TopCatAdjunction.lean + def LightCondSet.toTopCat + def LightCondSet.toTopCatMap + def LightCondSet.topCatAdjunctionCounit + def LightCondSet.topCatAdjunctionCounitEquiv + theorem LightCondSet.topCatAdjunctionCounit_bijective + def LightCondSet.topCatAdjunctionUnit + def lightCondSetToTopCat Modified Mathlib/Condensed/Light/TopComparison.lean 2024-07-19 13:53:20 2d49bad chore(scripts/create-adaptation-pr): do not squash merge (#14907) ESTIMATED CHANGES Modified scripts/create-adaptation-pr.sh 2024-07-19 13:40:11 465f26f chore: remove `#align` and `#align_import` statements (#14887) Per discussion on the maintainers list / meetings, we are now ready to remove `#align`, and it's time to do it! This PR is generated by running the following script: ``` find . -name "*.lean" -exec sed -i '' '/^set_option linter.uppercaseLean3 false/d' {} + find . -name "*.lean" -exec sed -i '' '/^set_option align.precheck false/d' {} + find . -name "*.lean" -exec sed -i '' -e '/^$/N;/^\n#align/d' -e '/^#align/d' {} + find . -name "*.lean" -exec sed -i '' -e '/^$/N;/^\n#noalign/d' -e '/^#noalign/d' {} + rm Mathlib/Init/Align.lean find . -name "*.lean" -exec sed -i '' '/^import Mathlib.Init.Align/d' {} + find . -name "*.lean" -exec sed -i '' -e '1{/^$/d;}' {} + ``` ESTIMATED CHANGES Modified Archive/Arithcc.lean Modified Archive/Examples/MersennePrimes.lean Modified Archive/Examples/PropEncodable.lean Modified Archive/Imo/Imo1959Q1.lean Modified Archive/Imo/Imo1960Q1.lean Modified Archive/Imo/Imo1962Q1.lean Modified Archive/Imo/Imo1962Q4.lean Modified Archive/Imo/Imo1964Q1.lean Modified Archive/Imo/Imo1969Q1.lean Modified Archive/Imo/Imo1972Q5.lean Modified Archive/Imo/Imo1975Q1.lean Modified Archive/Imo/Imo1977Q6.lean Modified Archive/Imo/Imo1981Q3.lean Modified Archive/Imo/Imo1987Q1.lean Modified Archive/Imo/Imo1988Q6.lean Modified Archive/Imo/Imo1994Q1.lean Modified Archive/Imo/Imo1998Q2.lean Modified Archive/Imo/Imo2001Q2.lean Modified Archive/Imo/Imo2001Q6.lean Modified Archive/Imo/Imo2005Q3.lean Modified Archive/Imo/Imo2005Q4.lean Modified Archive/Imo/Imo2006Q3.lean Modified Archive/Imo/Imo2006Q5.lean Modified Archive/Imo/Imo2008Q2.lean Modified Archive/Imo/Imo2008Q3.lean Modified Archive/Imo/Imo2008Q4.lean Modified Archive/Imo/Imo2011Q3.lean Modified Archive/Imo/Imo2011Q5.lean Modified Archive/Imo/Imo2013Q1.lean Modified Archive/Imo/Imo2013Q5.lean Modified Archive/Imo/Imo2019Q1.lean Modified Archive/Imo/Imo2019Q2.lean Modified Archive/Imo/Imo2019Q4.lean Modified Archive/Imo/Imo2020Q2.lean Modified Archive/Imo/Imo2021Q1.lean Modified Archive/MiuLanguage/Basic.lean Modified Archive/MiuLanguage/DecisionNec.lean Modified Archive/MiuLanguage/DecisionSuf.lean Modified Archive/OxfordInvariants/Summer2021/Week3P1.lean Modified Archive/Sensitivity.lean Modified Archive/Wiedijk100Theorems/AbelRuffini.lean Modified Archive/Wiedijk100Theorems/AreaOfACircle.lean Modified Archive/Wiedijk100Theorems/AscendingDescendingSequences.lean Modified Archive/Wiedijk100Theorems/BallotProblem.lean Modified Archive/Wiedijk100Theorems/BirthdayProblem.lean Modified Archive/Wiedijk100Theorems/CubingACube.lean Modified Archive/Wiedijk100Theorems/FriendshipGraphs.lean Modified Archive/Wiedijk100Theorems/HeronsFormula.lean Modified Archive/Wiedijk100Theorems/InverseTriangleSum.lean Modified Archive/Wiedijk100Theorems/Konigsberg.lean Modified Archive/Wiedijk100Theorems/Partition.lean Modified Archive/Wiedijk100Theorems/PerfectNumbers.lean Modified Archive/Wiedijk100Theorems/SolutionOfCubic.lean Modified Archive/Wiedijk100Theorems/SumOfPrimeReciprocalsDiverges.lean Modified Counterexamples/CanonicallyOrderedCommSemiringTwoMul.lean Modified Counterexamples/CharPZeroNeCharZero.lean Modified Counterexamples/Cyclotomic105.lean Modified Counterexamples/DirectSumIsInternal.lean Modified Counterexamples/Girard.lean Modified Counterexamples/HomogeneousPrimeNotPrime.lean Modified Counterexamples/LinearOrderWithPosMulPosEqZero.lean Modified Counterexamples/MapFloor.lean Modified Counterexamples/Phillips.lean Modified Counterexamples/Pseudoelement.lean Modified Counterexamples/QuadraticForm.lean Modified Counterexamples/SeminormLatticeNotDistrib.lean Modified Counterexamples/SorgenfreyLine.lean Modified Counterexamples/ZeroDivisorsInAddMonoidAlgebras.lean Modified Mathlib.lean Modified Mathlib/Algebra/AddTorsor.lean Modified Mathlib/Algebra/Algebra/Basic.lean Modified Mathlib/Algebra/Algebra/Bilinear.lean Modified Mathlib/Algebra/Algebra/Defs.lean Modified Mathlib/Algebra/Algebra/Equiv.lean Modified Mathlib/Algebra/Algebra/Field.lean Modified Mathlib/Algebra/Algebra/Hom.lean Modified Mathlib/Algebra/Algebra/Hom/Rat.lean Modified Mathlib/Algebra/Algebra/NonUnitalHom.lean Modified Mathlib/Algebra/Algebra/Operations.lean Modified Mathlib/Algebra/Algebra/Opposite.lean Modified Mathlib/Algebra/Algebra/Pi.lean Modified Mathlib/Algebra/Algebra/Prod.lean Modified Mathlib/Algebra/Algebra/Rat.lean Modified Mathlib/Algebra/Algebra/RestrictScalars.lean Modified Mathlib/Algebra/Algebra/Spectrum.lean Modified Mathlib/Algebra/Algebra/Subalgebra/Basic.lean Modified Mathlib/Algebra/Algebra/Subalgebra/Directed.lean Modified Mathlib/Algebra/Algebra/Subalgebra/Operations.lean Modified Mathlib/Algebra/Algebra/Subalgebra/Order.lean Modified Mathlib/Algebra/Algebra/Subalgebra/Pointwise.lean Modified Mathlib/Algebra/Algebra/Subalgebra/Prod.lean Modified Mathlib/Algebra/Algebra/Subalgebra/Tower.lean Modified Mathlib/Algebra/Algebra/Tower.lean Modified Mathlib/Algebra/Algebra/Unitization.lean Modified Mathlib/Algebra/AlgebraicCard.lean Modified Mathlib/Algebra/Associated/Basic.lean Modified Mathlib/Algebra/Associated/OrderedCommMonoid.lean Modified Mathlib/Algebra/BigOperators/Associated.lean Modified Mathlib/Algebra/BigOperators/Fin.lean Modified Mathlib/Algebra/BigOperators/Finprod.lean Modified Mathlib/Algebra/BigOperators/Finsupp.lean Modified Mathlib/Algebra/BigOperators/Group/Finset.lean Modified Mathlib/Algebra/BigOperators/Group/List.lean Modified Mathlib/Algebra/BigOperators/Group/Multiset.lean Modified Mathlib/Algebra/BigOperators/GroupWithZero/Finset.lean Modified Mathlib/Algebra/BigOperators/Intervals.lean Modified Mathlib/Algebra/BigOperators/Module.lean Modified Mathlib/Algebra/BigOperators/NatAntidiagonal.lean Modified Mathlib/Algebra/BigOperators/Option.lean Modified Mathlib/Algebra/BigOperators/Pi.lean Modified Mathlib/Algebra/BigOperators/Ring.lean Modified Mathlib/Algebra/BigOperators/Ring/List.lean Modified Mathlib/Algebra/BigOperators/Ring/Multiset.lean Modified Mathlib/Algebra/BigOperators/RingEquiv.lean Modified Mathlib/Algebra/BigOperators/WithTop.lean Modified Mathlib/Algebra/Bounds.lean Modified Mathlib/Algebra/Category/AlgebraCat/Basic.lean Modified Mathlib/Algebra/Category/AlgebraCat/Limits.lean Modified Mathlib/Algebra/Category/BoolRing.lean Modified Mathlib/Algebra/Category/FGModuleCat/Basic.lean Modified Mathlib/Algebra/Category/FGModuleCat/Limits.lean Modified Mathlib/Algebra/Category/Grp/AB5.lean Modified Mathlib/Algebra/Category/Grp/Abelian.lean Modified Mathlib/Algebra/Category/Grp/Adjunctions.lean Modified Mathlib/Algebra/Category/Grp/Basic.lean Modified Mathlib/Algebra/Category/Grp/Biproducts.lean Modified Mathlib/Algebra/Category/Grp/Colimits.lean Modified Mathlib/Algebra/Category/Grp/EpiMono.lean Modified Mathlib/Algebra/Category/Grp/EquivalenceGroupAddGroup.lean Modified Mathlib/Algebra/Category/Grp/FilteredColimits.lean Modified Mathlib/Algebra/Category/Grp/Images.lean Modified Mathlib/Algebra/Category/Grp/Injective.lean Modified Mathlib/Algebra/Category/Grp/Limits.lean Modified Mathlib/Algebra/Category/Grp/Preadditive.lean Modified Mathlib/Algebra/Category/Grp/Subobject.lean Modified Mathlib/Algebra/Category/Grp/ZModuleEquivalence.lean Modified Mathlib/Algebra/Category/Grp/Zero.lean Modified Mathlib/Algebra/Category/GrpWithZero.lean Modified Mathlib/Algebra/Category/ModuleCat/Abelian.lean Modified Mathlib/Algebra/Category/ModuleCat/Adjunctions.lean Modified Mathlib/Algebra/Category/ModuleCat/Algebra.lean Modified Mathlib/Algebra/Category/ModuleCat/Basic.lean Modified Mathlib/Algebra/Category/ModuleCat/Biproducts.lean Modified Mathlib/Algebra/Category/ModuleCat/ChangeOfRings.lean Modified Mathlib/Algebra/Category/ModuleCat/Colimits.lean Modified Mathlib/Algebra/Category/ModuleCat/EpiMono.lean Modified Mathlib/Algebra/Category/ModuleCat/FilteredColimits.lean Modified Mathlib/Algebra/Category/ModuleCat/Images.lean Modified Mathlib/Algebra/Category/ModuleCat/Kernels.lean Modified Mathlib/Algebra/Category/ModuleCat/Limits.lean Modified Mathlib/Algebra/Category/ModuleCat/Monoidal/Basic.lean Modified Mathlib/Algebra/Category/ModuleCat/Monoidal/Closed.lean Modified Mathlib/Algebra/Category/ModuleCat/Monoidal/Symmetric.lean Modified Mathlib/Algebra/Category/ModuleCat/Products.lean Modified Mathlib/Algebra/Category/ModuleCat/Projective.lean Modified Mathlib/Algebra/Category/ModuleCat/Simple.lean Modified Mathlib/Algebra/Category/ModuleCat/Subobject.lean Modified Mathlib/Algebra/Category/ModuleCat/Tannaka.lean Modified Mathlib/Algebra/Category/MonCat/Adjunctions.lean Modified Mathlib/Algebra/Category/MonCat/Basic.lean Modified Mathlib/Algebra/Category/MonCat/Colimits.lean Modified Mathlib/Algebra/Category/MonCat/FilteredColimits.lean Modified Mathlib/Algebra/Category/MonCat/Limits.lean Modified Mathlib/Algebra/Category/Ring/Adjunctions.lean Modified Mathlib/Algebra/Category/Ring/Basic.lean Modified Mathlib/Algebra/Category/Ring/Colimits.lean Modified Mathlib/Algebra/Category/Ring/Constructions.lean Modified Mathlib/Algebra/Category/Ring/FilteredColimits.lean Modified Mathlib/Algebra/Category/Ring/Instances.lean Modified Mathlib/Algebra/Category/Ring/Limits.lean Modified Mathlib/Algebra/Category/Semigrp/Basic.lean Modified Mathlib/Algebra/CharP/Algebra.lean Modified Mathlib/Algebra/CharP/Basic.lean Modified Mathlib/Algebra/CharP/CharAndCard.lean Modified Mathlib/Algebra/CharP/Defs.lean Modified Mathlib/Algebra/CharP/ExpChar.lean Modified Mathlib/Algebra/CharP/Invertible.lean Modified Mathlib/Algebra/CharP/LocalRing.lean Modified Mathlib/Algebra/CharP/MixedCharZero.lean Modified Mathlib/Algebra/CharP/Pi.lean Modified Mathlib/Algebra/CharP/Quotient.lean Modified Mathlib/Algebra/CharP/Reduced.lean Modified Mathlib/Algebra/CharP/Subring.lean Modified Mathlib/Algebra/CharP/Two.lean Modified Mathlib/Algebra/CharZero/Defs.lean Modified Mathlib/Algebra/CharZero/Infinite.lean Modified Mathlib/Algebra/CharZero/Lemmas.lean Modified Mathlib/Algebra/CharZero/Quotient.lean Modified Mathlib/Algebra/ContinuedFractions/Basic.lean Modified Mathlib/Algebra/ContinuedFractions/Computation/ApproximationCorollaries.lean Modified Mathlib/Algebra/ContinuedFractions/Computation/Approximations.lean Modified Mathlib/Algebra/ContinuedFractions/Computation/Basic.lean Modified Mathlib/Algebra/ContinuedFractions/Computation/CorrectnessTerminating.lean Modified Mathlib/Algebra/ContinuedFractions/Computation/TerminatesIffRat.lean Modified Mathlib/Algebra/ContinuedFractions/Computation/Translations.lean Modified Mathlib/Algebra/ContinuedFractions/ContinuantsRecurrence.lean Modified Mathlib/Algebra/ContinuedFractions/ConvergentsEquiv.lean Modified Mathlib/Algebra/ContinuedFractions/Determinant.lean Modified Mathlib/Algebra/ContinuedFractions/TerminatedStable.lean Modified Mathlib/Algebra/ContinuedFractions/Translations.lean Modified Mathlib/Algebra/CubicDiscriminant.lean Modified Mathlib/Algebra/DirectLimit.lean Modified Mathlib/Algebra/DirectSum/Algebra.lean Modified Mathlib/Algebra/DirectSum/Basic.lean Modified Mathlib/Algebra/DirectSum/Decomposition.lean Modified Mathlib/Algebra/DirectSum/Finsupp.lean Modified Mathlib/Algebra/DirectSum/Internal.lean Modified Mathlib/Algebra/DirectSum/Module.lean Modified Mathlib/Algebra/DirectSum/Ring.lean Modified Mathlib/Algebra/Divisibility/Basic.lean Modified Mathlib/Algebra/Divisibility/Units.lean Modified Mathlib/Algebra/DualNumber.lean Modified Mathlib/Algebra/DualQuaternion.lean Modified Mathlib/Algebra/EuclideanDomain/Basic.lean Modified Mathlib/Algebra/EuclideanDomain/Defs.lean Modified Mathlib/Algebra/EuclideanDomain/Field.lean Modified Mathlib/Algebra/EuclideanDomain/Int.lean Modified Mathlib/Algebra/Expr.lean Modified Mathlib/Algebra/Field/Basic.lean Modified Mathlib/Algebra/Field/Defs.lean Modified Mathlib/Algebra/Field/IsField.lean Modified Mathlib/Algebra/Field/Opposite.lean Modified Mathlib/Algebra/Field/Power.lean Modified Mathlib/Algebra/Field/Rat.lean Modified Mathlib/Algebra/Field/Subfield.lean Modified Mathlib/Algebra/Field/ULift.lean Modified Mathlib/Algebra/Free.lean Modified Mathlib/Algebra/FreeAlgebra.lean Modified Mathlib/Algebra/FreeMonoid/Basic.lean Modified Mathlib/Algebra/FreeMonoid/Count.lean Modified Mathlib/Algebra/FreeNonUnitalNonAssocAlgebra.lean Modified Mathlib/Algebra/GCDMonoid/Basic.lean Modified Mathlib/Algebra/GCDMonoid/Finset.lean Modified Mathlib/Algebra/GCDMonoid/IntegrallyClosed.lean Modified Mathlib/Algebra/GCDMonoid/Multiset.lean Modified Mathlib/Algebra/GCDMonoid/Nat.lean Modified Mathlib/Algebra/GeomSum.lean Modified Mathlib/Algebra/GradedMonoid.lean Modified Mathlib/Algebra/GradedMulAction.lean Modified Mathlib/Algebra/Group/Action/Basic.lean Modified Mathlib/Algebra/Group/Action/Defs.lean Modified Mathlib/Algebra/Group/Action/Opposite.lean Modified Mathlib/Algebra/Group/Action/Option.lean Modified Mathlib/Algebra/Group/Action/Pi.lean Modified Mathlib/Algebra/Group/Action/Prod.lean Modified Mathlib/Algebra/Group/Action/Sigma.lean Modified Mathlib/Algebra/Group/Action/Sum.lean Modified Mathlib/Algebra/Group/Action/Units.lean Modified Mathlib/Algebra/Group/AddChar.lean Modified Mathlib/Algebra/Group/Aut.lean Modified Mathlib/Algebra/Group/Basic.lean Modified Mathlib/Algebra/Group/Center.lean Modified Mathlib/Algebra/Group/Commutator.lean Modified Mathlib/Algebra/Group/Commute/Basic.lean Modified Mathlib/Algebra/Group/Commute/Defs.lean Modified Mathlib/Algebra/Group/Commute/Hom.lean Modified Mathlib/Algebra/Group/Commute/Units.lean Modified Mathlib/Algebra/Group/Conj.lean Modified Mathlib/Algebra/Group/ConjFinite.lean Modified Mathlib/Algebra/Group/Defs.lean Modified Mathlib/Algebra/Group/Embedding.lean Modified Mathlib/Algebra/Group/Equiv/Basic.lean Modified Mathlib/Algebra/Group/Equiv/TypeTags.lean Modified Mathlib/Algebra/Group/Even.lean Modified Mathlib/Algebra/Group/Ext.lean Modified Mathlib/Algebra/Group/Fin/Basic.lean Modified Mathlib/Algebra/Group/Fin/Tuple.lean Modified Mathlib/Algebra/Group/FiniteSupport.lean Modified Mathlib/Algebra/Group/Hom/Basic.lean Modified Mathlib/Algebra/Group/Hom/Defs.lean Modified Mathlib/Algebra/Group/Hom/End.lean Modified Mathlib/Algebra/Group/Hom/Instances.lean Modified Mathlib/Algebra/Group/Indicator.lean Modified Mathlib/Algebra/Group/InjSurj.lean Modified Mathlib/Algebra/Group/Int.lean Modified Mathlib/Algebra/Group/Invertible/Basic.lean Modified Mathlib/Algebra/Group/Invertible/Defs.lean Modified Mathlib/Algebra/Group/Nat.lean Modified Mathlib/Algebra/Group/Opposite.lean Modified Mathlib/Algebra/Group/Pi/Basic.lean Modified Mathlib/Algebra/Group/Pi/Lemmas.lean Modified Mathlib/Algebra/Group/Prod.lean Modified Mathlib/Algebra/Group/Semiconj/Basic.lean Modified Mathlib/Algebra/Group/Semiconj/Defs.lean Modified Mathlib/Algebra/Group/Semiconj/Units.lean Modified Mathlib/Algebra/Group/Subgroup/Actions.lean Modified Mathlib/Algebra/Group/Subgroup/Basic.lean Modified Mathlib/Algebra/Group/Subgroup/Finite.lean Modified Mathlib/Algebra/Group/Subgroup/MulOpposite.lean Modified Mathlib/Algebra/Group/Subgroup/Order.lean Modified Mathlib/Algebra/Group/Subgroup/Pointwise.lean Modified Mathlib/Algebra/Group/Subgroup/ZPowers.lean Modified Mathlib/Algebra/Group/Submonoid/Basic.lean Modified Mathlib/Algebra/Group/Submonoid/Membership.lean Modified Mathlib/Algebra/Group/Submonoid/Operations.lean Modified Mathlib/Algebra/Group/Submonoid/Pointwise.lean Modified Mathlib/Algebra/Group/Subsemigroup/Basic.lean Modified Mathlib/Algebra/Group/Subsemigroup/Membership.lean Modified Mathlib/Algebra/Group/Subsemigroup/Operations.lean Modified Mathlib/Algebra/Group/Support.lean Modified Mathlib/Algebra/Group/TypeTags.lean Modified Mathlib/Algebra/Group/ULift.lean Modified Mathlib/Algebra/Group/UniqueProds.lean Modified Mathlib/Algebra/Group/Units.lean Modified Mathlib/Algebra/Group/Units/Equiv.lean Modified Mathlib/Algebra/Group/Units/Hom.lean Modified Mathlib/Algebra/Group/WithOne/Basic.lean Modified Mathlib/Algebra/Group/WithOne/Defs.lean Modified Mathlib/Algebra/Group/ZeroOne.lean Modified Mathlib/Algebra/GroupPower/IterateHom.lean Modified Mathlib/Algebra/GroupWithZero/Action/Defs.lean Modified Mathlib/Algebra/GroupWithZero/Basic.lean Modified Mathlib/Algebra/GroupWithZero/Center.lean Modified Mathlib/Algebra/GroupWithZero/Commute.lean Modified Mathlib/Algebra/GroupWithZero/Conj.lean Modified Mathlib/Algebra/GroupWithZero/Defs.lean Modified Mathlib/Algebra/GroupWithZero/Divisibility.lean Modified Mathlib/Algebra/GroupWithZero/Hom.lean Modified Mathlib/Algebra/GroupWithZero/Indicator.lean Modified Mathlib/Algebra/GroupWithZero/InjSurj.lean Modified Mathlib/Algebra/GroupWithZero/Invertible.lean Modified Mathlib/Algebra/GroupWithZero/NeZero.lean Modified Mathlib/Algebra/GroupWithZero/NonZeroDivisors.lean Modified Mathlib/Algebra/GroupWithZero/Opposite.lean Modified Mathlib/Algebra/GroupWithZero/Pi.lean Modified Mathlib/Algebra/GroupWithZero/Prod.lean Modified Mathlib/Algebra/GroupWithZero/Semiconj.lean Modified Mathlib/Algebra/GroupWithZero/ULift.lean Modified Mathlib/Algebra/GroupWithZero/Units/Basic.lean Modified Mathlib/Algebra/GroupWithZero/Units/Equiv.lean Modified Mathlib/Algebra/GroupWithZero/Units/Lemmas.lean Modified Mathlib/Algebra/GroupWithZero/WithZero.lean Modified Mathlib/Algebra/HierarchyDesign.lean Modified Mathlib/Algebra/Homology/Additive.lean Modified Mathlib/Algebra/Homology/Augment.lean Modified Mathlib/Algebra/Homology/ComplexShape.lean Modified Mathlib/Algebra/Homology/DifferentialObject.lean Modified Mathlib/Algebra/Homology/Functor.lean Modified Mathlib/Algebra/Homology/HomologicalBicomplex.lean Modified Mathlib/Algebra/Homology/HomologicalComplex.lean Modified Mathlib/Algebra/Homology/Homotopy.lean Modified Mathlib/Algebra/Homology/HomotopyCategory.lean Modified Mathlib/Algebra/Homology/ImageToKernel.lean Modified Mathlib/Algebra/Homology/LocalCohomology.lean Modified Mathlib/Algebra/Homology/Opposite.lean Modified Mathlib/Algebra/Homology/QuasiIso.lean Modified Mathlib/Algebra/Homology/Single.lean Modified Mathlib/Algebra/IsPrimePow.lean Modified Mathlib/Algebra/Jordan/Basic.lean Modified Mathlib/Algebra/Lie/Abelian.lean Modified Mathlib/Algebra/Lie/BaseChange.lean Modified Mathlib/Algebra/Lie/Basic.lean Modified Mathlib/Algebra/Lie/CartanMatrix.lean Modified Mathlib/Algebra/Lie/CartanSubalgebra.lean Modified Mathlib/Algebra/Lie/Character.lean Modified Mathlib/Algebra/Lie/Classical.lean Modified Mathlib/Algebra/Lie/DirectSum.lean Modified Mathlib/Algebra/Lie/Engel.lean Modified Mathlib/Algebra/Lie/Free.lean Modified Mathlib/Algebra/Lie/IdealOperations.lean Modified Mathlib/Algebra/Lie/Matrix.lean Modified Mathlib/Algebra/Lie/Nilpotent.lean Modified Mathlib/Algebra/Lie/NonUnitalNonAssocAlgebra.lean Modified Mathlib/Algebra/Lie/Normalizer.lean Modified Mathlib/Algebra/Lie/OfAssociative.lean Modified Mathlib/Algebra/Lie/Quotient.lean Modified Mathlib/Algebra/Lie/Semisimple/Basic.lean Modified Mathlib/Algebra/Lie/Semisimple/Defs.lean Modified Mathlib/Algebra/Lie/SkewAdjoint.lean Modified Mathlib/Algebra/Lie/Solvable.lean Modified Mathlib/Algebra/Lie/Subalgebra.lean Modified Mathlib/Algebra/Lie/Submodule.lean Modified Mathlib/Algebra/Lie/TensorProduct.lean Modified Mathlib/Algebra/Lie/UniversalEnveloping.lean Modified Mathlib/Algebra/Lie/Weights/Basic.lean Modified Mathlib/Algebra/Lie/Weights/Cartan.lean Modified Mathlib/Algebra/LinearRecurrence.lean Modified Mathlib/Algebra/ModEq.lean Modified Mathlib/Algebra/Module/Algebra.lean Modified Mathlib/Algebra/Module/Basic.lean Modified Mathlib/Algebra/Module/BigOperators.lean Modified Mathlib/Algebra/Module/Bimodule.lean Modified Mathlib/Algebra/Module/DedekindDomain.lean Modified Mathlib/Algebra/Module/Defs.lean Modified Mathlib/Algebra/Module/Equiv/Basic.lean Modified Mathlib/Algebra/Module/Equiv/Defs.lean Modified Mathlib/Algebra/Module/GradedModule.lean Modified Mathlib/Algebra/Module/Hom.lean Modified Mathlib/Algebra/Module/Injective.lean Modified Mathlib/Algebra/Module/LinearMap/Basic.lean Modified Mathlib/Algebra/Module/LinearMap/Defs.lean Modified Mathlib/Algebra/Module/LinearMap/End.lean Modified Mathlib/Algebra/Module/LinearMap/Prod.lean Modified Mathlib/Algebra/Module/LinearMap/Rat.lean Modified Mathlib/Algebra/Module/LocalizedModule.lean Modified Mathlib/Algebra/Module/MinimalAxioms.lean Modified Mathlib/Algebra/Module/Opposites.lean Modified Mathlib/Algebra/Module/PID.lean Modified Mathlib/Algebra/Module/Pi.lean Modified Mathlib/Algebra/Module/PointwisePi.lean Modified Mathlib/Algebra/Module/Prod.lean Modified Mathlib/Algebra/Module/Projective.lean Modified Mathlib/Algebra/Module/Rat.lean Modified Mathlib/Algebra/Module/Submodule/Basic.lean Modified Mathlib/Algebra/Module/Submodule/Bilinear.lean Modified Mathlib/Algebra/Module/Submodule/EqLocus.lean Modified Mathlib/Algebra/Module/Submodule/Equiv.lean Modified Mathlib/Algebra/Module/Submodule/Ker.lean Modified Mathlib/Algebra/Module/Submodule/Lattice.lean Modified Mathlib/Algebra/Module/Submodule/LinearMap.lean Modified Mathlib/Algebra/Module/Submodule/Map.lean Modified Mathlib/Algebra/Module/Submodule/Order.lean Modified Mathlib/Algebra/Module/Submodule/Pointwise.lean Modified Mathlib/Algebra/Module/Submodule/Range.lean Modified Mathlib/Algebra/Module/Submodule/RestrictScalars.lean Modified Mathlib/Algebra/Module/Torsion.lean Modified Mathlib/Algebra/Module/ULift.lean Modified Mathlib/Algebra/Module/Zlattice/Basic.lean Modified Mathlib/Algebra/MonoidAlgebra/Basic.lean Modified Mathlib/Algebra/MonoidAlgebra/Degree.lean Modified Mathlib/Algebra/MonoidAlgebra/Division.lean Modified Mathlib/Algebra/MonoidAlgebra/Grading.lean Modified Mathlib/Algebra/MonoidAlgebra/Ideal.lean Modified Mathlib/Algebra/MonoidAlgebra/NoZeroDivisors.lean Modified Mathlib/Algebra/MonoidAlgebra/Support.lean Modified Mathlib/Algebra/MonoidAlgebra/ToDirectSum.lean Modified Mathlib/Algebra/MvPolynomial/Basic.lean Modified Mathlib/Algebra/MvPolynomial/Cardinal.lean Modified Mathlib/Algebra/MvPolynomial/Comap.lean Modified Mathlib/Algebra/MvPolynomial/CommRing.lean Modified Mathlib/Algebra/MvPolynomial/Counit.lean Modified Mathlib/Algebra/MvPolynomial/Degrees.lean Modified Mathlib/Algebra/MvPolynomial/Derivation.lean Modified Mathlib/Algebra/MvPolynomial/Division.lean Modified Mathlib/Algebra/MvPolynomial/Equiv.lean Modified Mathlib/Algebra/MvPolynomial/Expand.lean Modified Mathlib/Algebra/MvPolynomial/Funext.lean Modified Mathlib/Algebra/MvPolynomial/Invertible.lean Modified Mathlib/Algebra/MvPolynomial/Monad.lean Modified Mathlib/Algebra/MvPolynomial/PDeriv.lean Modified Mathlib/Algebra/MvPolynomial/Polynomial.lean Modified Mathlib/Algebra/MvPolynomial/Rename.lean Modified Mathlib/Algebra/MvPolynomial/Supported.lean Modified Mathlib/Algebra/MvPolynomial/Variables.lean Modified Mathlib/Algebra/NeZero.lean Modified Mathlib/Algebra/Opposites.lean Modified Mathlib/Algebra/Order/AbsoluteValue.lean Modified Mathlib/Algebra/Order/AddGroupWithTop.lean Modified Mathlib/Algebra/Order/Algebra.lean Modified Mathlib/Algebra/Order/Antidiag/Prod.lean Modified Mathlib/Algebra/Order/Archimedean.lean Modified Mathlib/Algebra/Order/BigOperators/Group/Finset.lean Modified Mathlib/Algebra/Order/BigOperators/Group/List.lean Modified Mathlib/Algebra/Order/BigOperators/Group/Multiset.lean Modified Mathlib/Algebra/Order/BigOperators/Ring/Finset.lean Modified Mathlib/Algebra/Order/BigOperators/Ring/List.lean Modified Mathlib/Algebra/Order/BigOperators/Ring/Multiset.lean Modified Mathlib/Algebra/Order/CauSeq/Basic.lean Modified Mathlib/Algebra/Order/CauSeq/BigOperators.lean Modified Mathlib/Algebra/Order/CauSeq/Completion.lean Modified Mathlib/Algebra/Order/Chebyshev.lean Modified Mathlib/Algebra/Order/CompleteField.lean Modified Mathlib/Algebra/Order/EuclideanAbsoluteValue.lean Modified Mathlib/Algebra/Order/Field/Basic.lean Modified Mathlib/Algebra/Order/Field/Canonical/Basic.lean Modified Mathlib/Algebra/Order/Field/Canonical/Defs.lean Modified Mathlib/Algebra/Order/Field/Defs.lean Modified Mathlib/Algebra/Order/Field/InjSurj.lean Modified Mathlib/Algebra/Order/Field/Pi.lean Modified Mathlib/Algebra/Order/Field/Power.lean Modified Mathlib/Algebra/Order/Field/Rat.lean Modified Mathlib/Algebra/Order/Field/Subfield.lean Modified Mathlib/Algebra/Order/Field/Unbundled/Basic.lean Modified Mathlib/Algebra/Order/Floor.lean Modified Mathlib/Algebra/Order/Group/Abs.lean Modified Mathlib/Algebra/Order/Group/Basic.lean Modified Mathlib/Algebra/Order/Group/Bounds.lean Modified Mathlib/Algebra/Order/Group/Cone.lean Modified Mathlib/Algebra/Order/Group/Defs.lean Modified Mathlib/Algebra/Order/Group/DenselyOrdered.lean Modified Mathlib/Algebra/Order/Group/Indicator.lean Modified Mathlib/Algebra/Order/Group/InjSurj.lean Modified Mathlib/Algebra/Order/Group/Instances.lean Modified Mathlib/Algebra/Order/Group/Int.lean Modified Mathlib/Algebra/Order/Group/Lattice.lean Modified Mathlib/Algebra/Order/Group/MinMax.lean Modified Mathlib/Algebra/Order/Group/Nat.lean Modified Mathlib/Algebra/Order/Group/OrderIso.lean Modified Mathlib/Algebra/Order/Group/PiLex.lean Modified Mathlib/Algebra/Order/Group/PosPart.lean Modified Mathlib/Algebra/Order/Group/Prod.lean Modified Mathlib/Algebra/Order/Group/Synonym.lean Modified Mathlib/Algebra/Order/Group/TypeTags.lean Modified Mathlib/Algebra/Order/Group/Unbundled/Basic.lean Modified Mathlib/Algebra/Order/Group/Units.lean Modified Mathlib/Algebra/Order/GroupWithZero/Canonical.lean Modified Mathlib/Algebra/Order/GroupWithZero/Synonym.lean Modified Mathlib/Algebra/Order/GroupWithZero/Unbundled.lean Modified Mathlib/Algebra/Order/Hom/Basic.lean Modified Mathlib/Algebra/Order/Hom/Monoid.lean Modified Mathlib/Algebra/Order/Hom/Ring.lean Modified Mathlib/Algebra/Order/Interval/Basic.lean Modified Mathlib/Algebra/Order/Interval/Finset.lean Modified Mathlib/Algebra/Order/Interval/Multiset.lean Modified Mathlib/Algebra/Order/Interval/Set/Group.lean Modified Mathlib/Algebra/Order/Interval/Set/Instances.lean Modified Mathlib/Algebra/Order/Interval/Set/Monoid.lean Modified Mathlib/Algebra/Order/Invertible.lean Modified Mathlib/Algebra/Order/Kleene.lean Modified Mathlib/Algebra/Order/Module/Defs.lean Modified Mathlib/Algebra/Order/Module/OrderedSMul.lean Modified Mathlib/Algebra/Order/Module/Pointwise.lean Modified Mathlib/Algebra/Order/Monoid/Basic.lean Modified Mathlib/Algebra/Order/Monoid/Canonical/Defs.lean Modified Mathlib/Algebra/Order/Monoid/Defs.lean Modified Mathlib/Algebra/Order/Monoid/NatCast.lean Modified Mathlib/Algebra/Order/Monoid/OrderDual.lean Modified Mathlib/Algebra/Order/Monoid/Prod.lean Modified Mathlib/Algebra/Order/Monoid/Submonoid.lean Modified Mathlib/Algebra/Order/Monoid/ToMulBot.lean Modified Mathlib/Algebra/Order/Monoid/TypeTags.lean Modified Mathlib/Algebra/Order/Monoid/Unbundled/Basic.lean Modified Mathlib/Algebra/Order/Monoid/Unbundled/Defs.lean Modified Mathlib/Algebra/Order/Monoid/Unbundled/ExistsOfLE.lean Modified Mathlib/Algebra/Order/Monoid/Unbundled/MinMax.lean Modified Mathlib/Algebra/Order/Monoid/Unbundled/OrderDual.lean Modified Mathlib/Algebra/Order/Monoid/Unbundled/Pow.lean Modified Mathlib/Algebra/Order/Monoid/Unbundled/WithTop.lean Modified Mathlib/Algebra/Order/Monoid/Units.lean Modified Mathlib/Algebra/Order/Monoid/WithTop.lean Modified Mathlib/Algebra/Order/Nonneg/Field.lean Modified Mathlib/Algebra/Order/Nonneg/Floor.lean Modified Mathlib/Algebra/Order/Nonneg/Ring.lean Modified Mathlib/Algebra/Order/Pi.lean Modified Mathlib/Algebra/Order/Pointwise.lean Modified Mathlib/Algebra/Order/Positive/Field.lean Modified Mathlib/Algebra/Order/Positive/Ring.lean Modified Mathlib/Algebra/Order/Rearrangement.lean Modified Mathlib/Algebra/Order/Ring/Abs.lean Modified Mathlib/Algebra/Order/Ring/Basic.lean Modified Mathlib/Algebra/Order/Ring/Canonical.lean Modified Mathlib/Algebra/Order/Ring/Cast.lean Modified Mathlib/Algebra/Order/Ring/Cone.lean Modified Mathlib/Algebra/Order/Ring/Defs.lean Modified Mathlib/Algebra/Order/Ring/Finset.lean Modified Mathlib/Algebra/Order/Ring/InjSurj.lean Modified Mathlib/Algebra/Order/Ring/Int.lean Modified Mathlib/Algebra/Order/Ring/Nat.lean Modified Mathlib/Algebra/Order/Ring/Pow.lean Modified Mathlib/Algebra/Order/Ring/Rat.lean Modified Mathlib/Algebra/Order/Ring/Synonym.lean Modified Mathlib/Algebra/Order/Ring/Unbundled/Basic.lean Modified Mathlib/Algebra/Order/Ring/Unbundled/Nonneg.lean Modified Mathlib/Algebra/Order/Ring/WithTop.lean Modified Mathlib/Algebra/Order/Sub/Basic.lean Modified Mathlib/Algebra/Order/Sub/Canonical.lean Modified Mathlib/Algebra/Order/Sub/Defs.lean Modified Mathlib/Algebra/Order/Sub/WithTop.lean Modified Mathlib/Algebra/Order/ToIntervalMod.lean Modified Mathlib/Algebra/Order/UpperLower.lean Modified Mathlib/Algebra/Order/ZeroLEOne.lean Modified Mathlib/Algebra/PEmptyInstances.lean Modified Mathlib/Algebra/PUnitInstances/Algebra.lean Modified Mathlib/Algebra/PUnitInstances/Module.lean Modified Mathlib/Algebra/PUnitInstances/Order.lean Modified Mathlib/Algebra/Periodic.lean Modified Mathlib/Algebra/Polynomial/AlgebraMap.lean Modified Mathlib/Algebra/Polynomial/Basic.lean Modified Mathlib/Algebra/Polynomial/BigOperators.lean Modified Mathlib/Algebra/Polynomial/CancelLeads.lean Modified Mathlib/Algebra/Polynomial/Cardinal.lean Modified Mathlib/Algebra/Polynomial/Coeff.lean Modified Mathlib/Algebra/Polynomial/Degree/CardPowDegree.lean Modified Mathlib/Algebra/Polynomial/Degree/Definitions.lean Modified Mathlib/Algebra/Polynomial/Degree/Lemmas.lean Modified Mathlib/Algebra/Polynomial/Degree/TrailingDegree.lean Modified Mathlib/Algebra/Polynomial/DenomsClearable.lean Modified Mathlib/Algebra/Polynomial/Derivative.lean Modified Mathlib/Algebra/Polynomial/Div.lean Modified Mathlib/Algebra/Polynomial/EraseLead.lean Modified Mathlib/Algebra/Polynomial/Eval.lean Modified Mathlib/Algebra/Polynomial/Expand.lean Modified Mathlib/Algebra/Polynomial/FieldDivision.lean Modified Mathlib/Algebra/Polynomial/GroupRingAction.lean Modified Mathlib/Algebra/Polynomial/HasseDeriv.lean Modified Mathlib/Algebra/Polynomial/Identities.lean Modified Mathlib/Algebra/Polynomial/Induction.lean Modified Mathlib/Algebra/Polynomial/Inductions.lean Modified Mathlib/Algebra/Polynomial/Laurent.lean Modified Mathlib/Algebra/Polynomial/Lifts.lean Modified Mathlib/Algebra/Polynomial/Mirror.lean Modified Mathlib/Algebra/Polynomial/Module/Basic.lean Modified Mathlib/Algebra/Polynomial/Monic.lean Modified Mathlib/Algebra/Polynomial/Monomial.lean Modified Mathlib/Algebra/Polynomial/PartialFractions.lean Modified Mathlib/Algebra/Polynomial/Reverse.lean Modified Mathlib/Algebra/Polynomial/RingDivision.lean Modified Mathlib/Algebra/Polynomial/Roots.lean Modified Mathlib/Algebra/Polynomial/Splits.lean Modified Mathlib/Algebra/Polynomial/Taylor.lean Modified Mathlib/Algebra/Polynomial/UnitTrinomial.lean Modified Mathlib/Algebra/QuadraticDiscriminant.lean Modified Mathlib/Algebra/Quandle.lean Modified Mathlib/Algebra/Quaternion.lean Modified Mathlib/Algebra/QuaternionBasis.lean Modified Mathlib/Algebra/Quotient.lean Modified Mathlib/Algebra/Regular/Basic.lean Modified Mathlib/Algebra/Regular/Pow.lean Modified Mathlib/Algebra/Regular/SMul.lean Modified Mathlib/Algebra/Ring/Action/Basic.lean Modified Mathlib/Algebra/Ring/Action/Field.lean Modified Mathlib/Algebra/Ring/Action/Group.lean Modified Mathlib/Algebra/Ring/Action/Invariant.lean Modified Mathlib/Algebra/Ring/Action/Subobjects.lean Modified Mathlib/Algebra/Ring/AddAut.lean Modified Mathlib/Algebra/Ring/Aut.lean Modified Mathlib/Algebra/Ring/Basic.lean Modified Mathlib/Algebra/Ring/BooleanRing.lean Modified Mathlib/Algebra/Ring/Center.lean Modified Mathlib/Algebra/Ring/Centralizer.lean Modified Mathlib/Algebra/Ring/CentroidHom.lean Modified Mathlib/Algebra/Ring/Commute.lean Modified Mathlib/Algebra/Ring/CompTypeclasses.lean Modified Mathlib/Algebra/Ring/Defs.lean Modified Mathlib/Algebra/Ring/Divisibility/Basic.lean Modified Mathlib/Algebra/Ring/Equiv.lean Modified Mathlib/Algebra/Ring/Fin.lean Modified Mathlib/Algebra/Ring/Hom/Basic.lean Modified Mathlib/Algebra/Ring/Hom/Defs.lean Modified Mathlib/Algebra/Ring/Idempotents.lean Modified Mathlib/Algebra/Ring/Identities.lean Modified Mathlib/Algebra/Ring/InjSurj.lean Modified Mathlib/Algebra/Ring/Int.lean Modified Mathlib/Algebra/Ring/Invertible.lean Modified Mathlib/Algebra/Ring/Nat.lean Modified Mathlib/Algebra/Ring/Opposite.lean Modified Mathlib/Algebra/Ring/Parity.lean Modified Mathlib/Algebra/Ring/Pi.lean Modified Mathlib/Algebra/Ring/Prod.lean Modified Mathlib/Algebra/Ring/Rat.lean Modified Mathlib/Algebra/Ring/Regular.lean Modified Mathlib/Algebra/Ring/Semiconj.lean Modified Mathlib/Algebra/Ring/Subring/Basic.lean Modified Mathlib/Algebra/Ring/Subring/Order.lean Modified Mathlib/Algebra/Ring/Subring/Pointwise.lean Modified Mathlib/Algebra/Ring/Subring/Units.lean Modified Mathlib/Algebra/Ring/Subsemiring/Basic.lean Modified Mathlib/Algebra/Ring/Subsemiring/Order.lean Modified Mathlib/Algebra/Ring/Subsemiring/Pointwise.lean Modified Mathlib/Algebra/Ring/ULift.lean Modified Mathlib/Algebra/Ring/Units.lean Modified Mathlib/Algebra/RingQuot.lean Modified Mathlib/Algebra/SMulWithZero.lean Modified Mathlib/Algebra/Squarefree/Basic.lean Modified Mathlib/Algebra/Star/Basic.lean Modified Mathlib/Algebra/Star/BigOperators.lean Modified Mathlib/Algebra/Star/CHSH.lean Modified Mathlib/Algebra/Star/Free.lean Modified Mathlib/Algebra/Star/Module.lean Modified Mathlib/Algebra/Star/Order.lean Modified Mathlib/Algebra/Star/Pi.lean Modified Mathlib/Algebra/Star/Pointwise.lean Modified Mathlib/Algebra/Star/Prod.lean Modified Mathlib/Algebra/Star/Rat.lean Modified Mathlib/Algebra/Star/RingQuot.lean Modified Mathlib/Algebra/Star/SelfAdjoint.lean Modified Mathlib/Algebra/Star/StarAlgHom.lean Modified Mathlib/Algebra/Star/Subalgebra.lean Modified Mathlib/Algebra/Star/Unitary.lean Modified Mathlib/Algebra/Symmetrized.lean Modified Mathlib/Algebra/TrivSqZeroExt.lean Modified Mathlib/Algebra/Tropical/Basic.lean Modified Mathlib/Algebra/Tropical/BigOperators.lean Modified Mathlib/Algebra/Tropical/Lattice.lean Modified Mathlib/AlgebraicGeometry/AffineScheme.lean Modified Mathlib/AlgebraicGeometry/Cover/Open.lean Modified Mathlib/AlgebraicGeometry/EllipticCurve/Affine.lean Modified Mathlib/AlgebraicGeometry/EllipticCurve/Group.lean Modified Mathlib/AlgebraicGeometry/EllipticCurve/Weierstrass.lean Modified Mathlib/AlgebraicGeometry/FunctionField.lean Modified Mathlib/AlgebraicGeometry/GammaSpecAdjunction.lean Modified Mathlib/AlgebraicGeometry/Gluing.lean Modified Mathlib/AlgebraicGeometry/Limits.lean Modified Mathlib/AlgebraicGeometry/Morphisms/Basic.lean Modified Mathlib/AlgebraicGeometry/Morphisms/Constructors.lean Modified Mathlib/AlgebraicGeometry/Morphisms/FiniteType.lean Modified Mathlib/AlgebraicGeometry/Morphisms/OpenImmersion.lean Modified Mathlib/AlgebraicGeometry/Morphisms/QuasiCompact.lean Modified Mathlib/AlgebraicGeometry/Morphisms/QuasiSeparated.lean Modified Mathlib/AlgebraicGeometry/Morphisms/RingHomProperties.lean Modified Mathlib/AlgebraicGeometry/Morphisms/UniversallyClosed.lean Modified Mathlib/AlgebraicGeometry/OpenImmersion.lean Modified Mathlib/AlgebraicGeometry/PrimeSpectrum/Basic.lean Modified Mathlib/AlgebraicGeometry/PrimeSpectrum/IsOpenComapC.lean Modified Mathlib/AlgebraicGeometry/PrimeSpectrum/Maximal.lean Modified Mathlib/AlgebraicGeometry/PrimeSpectrum/Noetherian.lean Modified Mathlib/AlgebraicGeometry/ProjectiveSpectrum/Scheme.lean Modified Mathlib/AlgebraicGeometry/ProjectiveSpectrum/StructureSheaf.lean Modified Mathlib/AlgebraicGeometry/ProjectiveSpectrum/Topology.lean Modified Mathlib/AlgebraicGeometry/Properties.lean Modified Mathlib/AlgebraicGeometry/Pullbacks.lean Modified Mathlib/AlgebraicGeometry/Restrict.lean Modified Mathlib/AlgebraicGeometry/Scheme.lean Modified Mathlib/AlgebraicGeometry/Spec.lean Modified Mathlib/AlgebraicGeometry/StructureSheaf.lean Modified Mathlib/AlgebraicTopology/AlternatingFaceMapComplex.lean Modified Mathlib/AlgebraicTopology/CechNerve.lean Modified Mathlib/AlgebraicTopology/DoldKan/Compatibility.lean Modified Mathlib/AlgebraicTopology/DoldKan/Decomposition.lean Modified Mathlib/AlgebraicTopology/DoldKan/Degeneracies.lean Modified Mathlib/AlgebraicTopology/DoldKan/Equivalence.lean Modified Mathlib/AlgebraicTopology/DoldKan/EquivalenceAdditive.lean Modified Mathlib/AlgebraicTopology/DoldKan/EquivalencePseudoabelian.lean Modified Mathlib/AlgebraicTopology/DoldKan/Faces.lean Modified Mathlib/AlgebraicTopology/DoldKan/FunctorGamma.lean Modified Mathlib/AlgebraicTopology/DoldKan/FunctorN.lean Modified Mathlib/AlgebraicTopology/DoldKan/GammaCompN.lean Modified Mathlib/AlgebraicTopology/DoldKan/Homotopies.lean Modified Mathlib/AlgebraicTopology/DoldKan/HomotopyEquivalence.lean Modified Mathlib/AlgebraicTopology/DoldKan/NCompGamma.lean Modified Mathlib/AlgebraicTopology/DoldKan/NReflectsIso.lean Modified Mathlib/AlgebraicTopology/DoldKan/Normalized.lean Modified Mathlib/AlgebraicTopology/DoldKan/Notations.lean Modified Mathlib/AlgebraicTopology/DoldKan/PInfty.lean Modified Mathlib/AlgebraicTopology/DoldKan/Projections.lean Modified Mathlib/AlgebraicTopology/DoldKan/SplitSimplicialObject.lean Modified Mathlib/AlgebraicTopology/ExtraDegeneracy.lean Modified Mathlib/AlgebraicTopology/FundamentalGroupoid/Basic.lean Modified Mathlib/AlgebraicTopology/FundamentalGroupoid/FundamentalGroup.lean Modified Mathlib/AlgebraicTopology/FundamentalGroupoid/InducedMaps.lean Modified Mathlib/AlgebraicTopology/FundamentalGroupoid/PUnit.lean Modified Mathlib/AlgebraicTopology/FundamentalGroupoid/Product.lean Modified Mathlib/AlgebraicTopology/FundamentalGroupoid/SimplyConnected.lean Modified Mathlib/AlgebraicTopology/MooreComplex.lean Modified Mathlib/AlgebraicTopology/Nerve.lean Modified Mathlib/AlgebraicTopology/SimplexCategory.lean Modified Mathlib/AlgebraicTopology/SimplicialObject.lean Modified Mathlib/AlgebraicTopology/SimplicialSet.lean Modified Mathlib/AlgebraicTopology/SingularSet.lean Modified Mathlib/AlgebraicTopology/SplitSimplicialObject.lean Modified Mathlib/AlgebraicTopology/TopologicalSimplex.lean Modified Mathlib/Analysis/Analytic/Basic.lean Modified Mathlib/Analysis/Analytic/Composition.lean Modified Mathlib/Analysis/Analytic/Inverse.lean Modified Mathlib/Analysis/Analytic/IsolatedZeros.lean Modified Mathlib/Analysis/Analytic/Linear.lean Modified Mathlib/Analysis/Analytic/RadiusLiminf.lean Modified Mathlib/Analysis/Analytic/Uniqueness.lean Modified Mathlib/Analysis/Asymptotics/AsymptoticEquivalent.lean Modified Mathlib/Analysis/Asymptotics/Asymptotics.lean Modified Mathlib/Analysis/Asymptotics/SpecificAsymptotics.lean Modified Mathlib/Analysis/Asymptotics/SuperpolynomialDecay.lean Modified Mathlib/Analysis/Asymptotics/Theta.lean Modified Mathlib/Analysis/BoundedVariation.lean Modified Mathlib/Analysis/BoxIntegral/Basic.lean Modified Mathlib/Analysis/BoxIntegral/Box/Basic.lean Modified Mathlib/Analysis/BoxIntegral/Box/SubboxInduction.lean Modified Mathlib/Analysis/BoxIntegral/DivergenceTheorem.lean Modified Mathlib/Analysis/BoxIntegral/Integrability.lean Modified Mathlib/Analysis/BoxIntegral/Partition/Additive.lean Modified Mathlib/Analysis/BoxIntegral/Partition/Basic.lean Modified Mathlib/Analysis/BoxIntegral/Partition/Filter.lean Modified Mathlib/Analysis/BoxIntegral/Partition/Measure.lean Modified Mathlib/Analysis/BoxIntegral/Partition/Split.lean Modified Mathlib/Analysis/BoxIntegral/Partition/SubboxInduction.lean Modified Mathlib/Analysis/BoxIntegral/Partition/Tagged.lean Modified Mathlib/Analysis/Calculus/AddTorsor/AffineMap.lean Modified Mathlib/Analysis/Calculus/AddTorsor/Coord.lean Modified Mathlib/Analysis/Calculus/BumpFunction/Basic.lean Modified Mathlib/Analysis/Calculus/BumpFunction/Convolution.lean Modified Mathlib/Analysis/Calculus/BumpFunction/FiniteDimension.lean Modified Mathlib/Analysis/Calculus/BumpFunction/InnerProduct.lean Modified Mathlib/Analysis/Calculus/BumpFunction/Normed.lean Modified Mathlib/Analysis/Calculus/Conformal/InnerProduct.lean Modified Mathlib/Analysis/Calculus/Conformal/NormedSpace.lean Modified Mathlib/Analysis/Calculus/ContDiff/Basic.lean Modified Mathlib/Analysis/Calculus/ContDiff/Bounds.lean Modified Mathlib/Analysis/Calculus/ContDiff/Defs.lean Modified Mathlib/Analysis/Calculus/ContDiff/FiniteDimension.lean Modified Mathlib/Analysis/Calculus/ContDiff/RCLike.lean Modified Mathlib/Analysis/Calculus/Darboux.lean Modified Mathlib/Analysis/Calculus/Deriv/Add.lean Modified Mathlib/Analysis/Calculus/Deriv/Basic.lean Modified Mathlib/Analysis/Calculus/Deriv/Comp.lean Modified Mathlib/Analysis/Calculus/Deriv/Inv.lean Modified Mathlib/Analysis/Calculus/Deriv/Inverse.lean Modified Mathlib/Analysis/Calculus/Deriv/Linear.lean Modified Mathlib/Analysis/Calculus/Deriv/Mul.lean Modified Mathlib/Analysis/Calculus/Deriv/Polynomial.lean Modified Mathlib/Analysis/Calculus/Deriv/Pow.lean Modified Mathlib/Analysis/Calculus/Deriv/Prod.lean Modified Mathlib/Analysis/Calculus/Deriv/Slope.lean Modified Mathlib/Analysis/Calculus/Deriv/Star.lean Modified Mathlib/Analysis/Calculus/Deriv/Support.lean Modified Mathlib/Analysis/Calculus/Deriv/ZPow.lean Modified Mathlib/Analysis/Calculus/DiffContOnCl.lean Modified Mathlib/Analysis/Calculus/Dslope.lean Modified Mathlib/Analysis/Calculus/FDeriv/Add.lean Modified Mathlib/Analysis/Calculus/FDeriv/Analytic.lean Modified Mathlib/Analysis/Calculus/FDeriv/Basic.lean Modified Mathlib/Analysis/Calculus/FDeriv/Bilinear.lean Modified Mathlib/Analysis/Calculus/FDeriv/Comp.lean Modified Mathlib/Analysis/Calculus/FDeriv/Equiv.lean Modified Mathlib/Analysis/Calculus/FDeriv/Extend.lean Modified Mathlib/Analysis/Calculus/FDeriv/Linear.lean Modified Mathlib/Analysis/Calculus/FDeriv/Measurable.lean Modified Mathlib/Analysis/Calculus/FDeriv/Mul.lean Modified Mathlib/Analysis/Calculus/FDeriv/Prod.lean Modified Mathlib/Analysis/Calculus/FDeriv/RestrictScalars.lean Modified Mathlib/Analysis/Calculus/FDeriv/Star.lean Modified Mathlib/Analysis/Calculus/FDeriv/Symmetric.lean Modified Mathlib/Analysis/Calculus/FormalMultilinearSeries.lean Modified Mathlib/Analysis/Calculus/Implicit.lean Modified Mathlib/Analysis/Calculus/InverseFunctionTheorem/ApproximatesLinearOn.lean Modified Mathlib/Analysis/Calculus/InverseFunctionTheorem/ContDiff.lean Modified Mathlib/Analysis/Calculus/InverseFunctionTheorem/Deriv.lean Modified Mathlib/Analysis/Calculus/InverseFunctionTheorem/FDeriv.lean Modified Mathlib/Analysis/Calculus/InverseFunctionTheorem/FiniteDimensional.lean Modified Mathlib/Analysis/Calculus/IteratedDeriv/Defs.lean Modified Mathlib/Analysis/Calculus/LHopital.lean Modified Mathlib/Analysis/Calculus/LagrangeMultipliers.lean Modified Mathlib/Analysis/Calculus/LocalExtr/Basic.lean Modified Mathlib/Analysis/Calculus/LocalExtr/Polynomial.lean Modified Mathlib/Analysis/Calculus/LocalExtr/Rolle.lean Modified Mathlib/Analysis/Calculus/MeanValue.lean Modified Mathlib/Analysis/Calculus/Monotone.lean Modified Mathlib/Analysis/Calculus/ParametricIntegral.lean Modified Mathlib/Analysis/Calculus/ParametricIntervalIntegral.lean Modified Mathlib/Analysis/Calculus/SmoothSeries.lean Modified Mathlib/Analysis/Calculus/TangentCone.lean Modified Mathlib/Analysis/Calculus/Taylor.lean Modified Mathlib/Analysis/Calculus/UniformLimitsDeriv.lean Modified Mathlib/Analysis/Complex/AbsMax.lean Modified Mathlib/Analysis/Complex/Arg.lean Modified Mathlib/Analysis/Complex/Basic.lean Modified Mathlib/Analysis/Complex/CauchyIntegral.lean Modified Mathlib/Analysis/Complex/Circle.lean Modified Mathlib/Analysis/Complex/Conformal.lean Modified Mathlib/Analysis/Complex/Isometry.lean Modified Mathlib/Analysis/Complex/Liouville.lean Modified Mathlib/Analysis/Complex/LocallyUniformLimit.lean Modified Mathlib/Analysis/Complex/OpenMapping.lean Modified Mathlib/Analysis/Complex/OperatorNorm.lean Modified Mathlib/Analysis/Complex/PhragmenLindelof.lean Modified Mathlib/Analysis/Complex/Polynomial.lean Modified Mathlib/Analysis/Complex/ReImTopology.lean Modified Mathlib/Analysis/Complex/RealDeriv.lean Modified Mathlib/Analysis/Complex/RemovableSingularity.lean Modified Mathlib/Analysis/Complex/Schwarz.lean Modified Mathlib/Analysis/Complex/UnitDisc/Basic.lean Modified Mathlib/Analysis/Complex/UpperHalfPlane/Basic.lean Modified Mathlib/Analysis/Complex/UpperHalfPlane/FunctionsBoundedAtInfty.lean Modified Mathlib/Analysis/Complex/UpperHalfPlane/Manifold.lean Modified Mathlib/Analysis/Complex/UpperHalfPlane/Metric.lean Modified Mathlib/Analysis/Complex/UpperHalfPlane/Topology.lean Modified Mathlib/Analysis/ConstantSpeed.lean Modified Mathlib/Analysis/Convex/Basic.lean Modified Mathlib/Analysis/Convex/Between.lean Modified Mathlib/Analysis/Convex/Body.lean Modified Mathlib/Analysis/Convex/Caratheodory.lean Modified Mathlib/Analysis/Convex/Combination.lean Modified Mathlib/Analysis/Convex/Complex.lean Modified Mathlib/Analysis/Convex/Cone/Basic.lean Modified Mathlib/Analysis/Convex/Cone/Closure.lean Modified Mathlib/Analysis/Convex/Cone/Extension.lean Modified Mathlib/Analysis/Convex/Cone/InnerDual.lean Modified Mathlib/Analysis/Convex/Cone/Proper.lean Modified Mathlib/Analysis/Convex/Contractible.lean Modified Mathlib/Analysis/Convex/Deriv.lean Modified Mathlib/Analysis/Convex/Exposed.lean Modified Mathlib/Analysis/Convex/Extrema.lean Modified Mathlib/Analysis/Convex/Extreme.lean Modified Mathlib/Analysis/Convex/Function.lean Modified Mathlib/Analysis/Convex/Gauge.lean Modified Mathlib/Analysis/Convex/Hull.lean Modified Mathlib/Analysis/Convex/Independent.lean Modified Mathlib/Analysis/Convex/Integral.lean Modified Mathlib/Analysis/Convex/Intrinsic.lean Modified Mathlib/Analysis/Convex/Jensen.lean Modified Mathlib/Analysis/Convex/Join.lean Modified Mathlib/Analysis/Convex/KreinMilman.lean Modified Mathlib/Analysis/Convex/Measure.lean Modified Mathlib/Analysis/Convex/Mul.lean Modified Mathlib/Analysis/Convex/Normed.lean Modified Mathlib/Analysis/Convex/PartitionOfUnity.lean Modified Mathlib/Analysis/Convex/Quasiconvex.lean Modified Mathlib/Analysis/Convex/Segment.lean Modified Mathlib/Analysis/Convex/Side.lean Modified Mathlib/Analysis/Convex/SimplicialComplex/Basic.lean Modified Mathlib/Analysis/Convex/Slope.lean Modified Mathlib/Analysis/Convex/SpecificFunctions/Basic.lean Modified Mathlib/Analysis/Convex/SpecificFunctions/Deriv.lean Modified Mathlib/Analysis/Convex/Star.lean Modified Mathlib/Analysis/Convex/StoneSeparation.lean Modified Mathlib/Analysis/Convex/Strict.lean Modified Mathlib/Analysis/Convex/StrictConvexBetween.lean Modified Mathlib/Analysis/Convex/StrictConvexSpace.lean Modified Mathlib/Analysis/Convex/Topology.lean Modified Mathlib/Analysis/Convex/Uniform.lean Modified Mathlib/Analysis/Convolution.lean Modified Mathlib/Analysis/Distribution/SchwartzSpace.lean Modified Mathlib/Analysis/Fourier/AddCircle.lean Modified Mathlib/Analysis/Fourier/FourierTransform.lean Modified Mathlib/Analysis/Fourier/PoissonSummation.lean Modified Mathlib/Analysis/Fourier/RiemannLebesgueLemma.lean Modified Mathlib/Analysis/Hofer.lean Modified Mathlib/Analysis/InnerProductSpace/Adjoint.lean Modified Mathlib/Analysis/InnerProductSpace/Basic.lean Modified Mathlib/Analysis/InnerProductSpace/Calculus.lean Modified Mathlib/Analysis/InnerProductSpace/ConformalLinearMap.lean Modified Mathlib/Analysis/InnerProductSpace/Dual.lean Modified Mathlib/Analysis/InnerProductSpace/EuclideanDist.lean Modified Mathlib/Analysis/InnerProductSpace/GramSchmidtOrtho.lean Modified Mathlib/Analysis/InnerProductSpace/LaxMilgram.lean Modified Mathlib/Analysis/InnerProductSpace/LinearPMap.lean Modified Mathlib/Analysis/InnerProductSpace/OfNorm.lean Modified Mathlib/Analysis/InnerProductSpace/Orientation.lean Modified Mathlib/Analysis/InnerProductSpace/Orthogonal.lean Modified Mathlib/Analysis/InnerProductSpace/PiL2.lean Modified Mathlib/Analysis/InnerProductSpace/Positive.lean Modified Mathlib/Analysis/InnerProductSpace/Projection.lean Modified Mathlib/Analysis/InnerProductSpace/Rayleigh.lean Modified Mathlib/Analysis/InnerProductSpace/Spectrum.lean Modified Mathlib/Analysis/InnerProductSpace/Symmetric.lean Modified Mathlib/Analysis/InnerProductSpace/TwoDim.lean Modified Mathlib/Analysis/InnerProductSpace/l2Space.lean Modified Mathlib/Analysis/LocallyConvex/AbsConvex.lean Modified Mathlib/Analysis/LocallyConvex/BalancedCoreHull.lean Modified Mathlib/Analysis/LocallyConvex/Basic.lean Modified Mathlib/Analysis/LocallyConvex/Bounded.lean Modified Mathlib/Analysis/LocallyConvex/ContinuousOfBounded.lean Modified Mathlib/Analysis/LocallyConvex/Polar.lean Modified Mathlib/Analysis/LocallyConvex/StrongTopology.lean Modified Mathlib/Analysis/LocallyConvex/WeakDual.lean Modified Mathlib/Analysis/LocallyConvex/WithSeminorms.lean Modified Mathlib/Analysis/Matrix.lean Modified Mathlib/Analysis/MeanInequalities.lean Modified Mathlib/Analysis/MeanInequalitiesPow.lean Modified Mathlib/Analysis/MellinTransform.lean Modified Mathlib/Analysis/Normed/Field/Basic.lean Modified Mathlib/Analysis/Normed/Field/InfiniteSum.lean Modified Mathlib/Analysis/Normed/Field/UnitBall.lean Modified Mathlib/Analysis/Normed/Group/AddCircle.lean Modified Mathlib/Analysis/Normed/Group/AddTorsor.lean Modified Mathlib/Analysis/Normed/Group/BallSphere.lean Modified Mathlib/Analysis/Normed/Group/Basic.lean Modified Mathlib/Analysis/Normed/Group/Bounded.lean Modified Mathlib/Analysis/Normed/Group/Completion.lean Modified Mathlib/Analysis/Normed/Group/Constructions.lean Modified Mathlib/Analysis/Normed/Group/ControlledClosure.lean Modified Mathlib/Analysis/Normed/Group/Hom.lean Modified Mathlib/Analysis/Normed/Group/HomCompletion.lean Modified Mathlib/Analysis/Normed/Group/InfiniteSum.lean Modified Mathlib/Analysis/Normed/Group/Int.lean Modified Mathlib/Analysis/Normed/Group/Pointwise.lean Modified Mathlib/Analysis/Normed/Group/Quotient.lean Modified Mathlib/Analysis/Normed/Group/Rat.lean Modified Mathlib/Analysis/Normed/Group/SemiNormedGrp.lean Modified Mathlib/Analysis/Normed/Group/SemiNormedGrp/Completion.lean Modified Mathlib/Analysis/Normed/Group/SemiNormedGrp/Kernels.lean Modified Mathlib/Analysis/Normed/Group/Seminorm.lean Modified Mathlib/Analysis/Normed/Group/Submodule.lean Modified Mathlib/Analysis/Normed/Group/Uniform.lean Modified Mathlib/Analysis/Normed/MulAction.lean Modified Mathlib/Analysis/Normed/Order/Basic.lean Modified Mathlib/Analysis/Normed/Order/Lattice.lean Modified Mathlib/Analysis/Normed/Order/UpperLower.lean Modified Mathlib/Analysis/Normed/Ring/Seminorm.lean Modified Mathlib/Analysis/NormedSpace/AddTorsor.lean Modified Mathlib/Analysis/NormedSpace/AddTorsorBases.lean Modified Mathlib/Analysis/NormedSpace/AffineIsometry.lean Modified Mathlib/Analysis/NormedSpace/Algebra.lean Modified Mathlib/Analysis/NormedSpace/BallAction.lean Modified Mathlib/Analysis/NormedSpace/Banach.lean Modified Mathlib/Analysis/NormedSpace/BanachSteinhaus.lean Modified Mathlib/Analysis/NormedSpace/Basic.lean Modified Mathlib/Analysis/NormedSpace/BoundedLinearMaps.lean Modified Mathlib/Analysis/NormedSpace/CompactOperator.lean Modified Mathlib/Analysis/NormedSpace/Complemented.lean Modified Mathlib/Analysis/NormedSpace/Completion.lean Modified Mathlib/Analysis/NormedSpace/ConformalLinearMap.lean Modified Mathlib/Analysis/NormedSpace/ContinuousAffineMap.lean Modified Mathlib/Analysis/NormedSpace/ContinuousLinearMap.lean Modified Mathlib/Analysis/NormedSpace/Dual.lean Modified Mathlib/Analysis/NormedSpace/DualNumber.lean Modified Mathlib/Analysis/NormedSpace/ENorm.lean Modified Mathlib/Analysis/NormedSpace/Exponential.lean Modified Mathlib/Analysis/NormedSpace/Extend.lean Modified Mathlib/Analysis/NormedSpace/Extr.lean Modified Mathlib/Analysis/NormedSpace/FiniteDimension.lean Modified Mathlib/Analysis/NormedSpace/FunctionSeries.lean Modified Mathlib/Analysis/NormedSpace/HahnBanach/Extension.lean Modified Mathlib/Analysis/NormedSpace/HahnBanach/Separation.lean Modified Mathlib/Analysis/NormedSpace/HomeomorphBall.lean Modified Mathlib/Analysis/NormedSpace/IndicatorFunction.lean Modified Mathlib/Analysis/NormedSpace/Int.lean Modified Mathlib/Analysis/NormedSpace/LinearIsometry.lean Modified Mathlib/Analysis/NormedSpace/LpEquiv.lean Modified Mathlib/Analysis/NormedSpace/MStructure.lean Modified Mathlib/Analysis/NormedSpace/MatrixExponential.lean Modified Mathlib/Analysis/NormedSpace/MazurUlam.lean Modified Mathlib/Analysis/NormedSpace/Multilinear/Basic.lean Modified Mathlib/Analysis/NormedSpace/Multilinear/Curry.lean Modified Mathlib/Analysis/NormedSpace/OperatorNorm/Asymptotics.lean Modified Mathlib/Analysis/NormedSpace/OperatorNorm/Basic.lean Modified Mathlib/Analysis/NormedSpace/OperatorNorm/Bilinear.lean Modified Mathlib/Analysis/NormedSpace/OperatorNorm/Completeness.lean Modified Mathlib/Analysis/NormedSpace/OperatorNorm/Mul.lean Modified Mathlib/Analysis/NormedSpace/OperatorNorm/NNNorm.lean Modified Mathlib/Analysis/NormedSpace/OperatorNorm/NormedSpace.lean Modified Mathlib/Analysis/NormedSpace/OperatorNorm/Prod.lean Modified Mathlib/Analysis/NormedSpace/PiLp.lean Modified Mathlib/Analysis/NormedSpace/Pointwise.lean Modified Mathlib/Analysis/NormedSpace/QuaternionExponential.lean Modified Mathlib/Analysis/NormedSpace/RCLike.lean Modified Mathlib/Analysis/NormedSpace/Ray.lean Modified Mathlib/Analysis/NormedSpace/Real.lean Modified Mathlib/Analysis/NormedSpace/RieszLemma.lean Modified Mathlib/Analysis/NormedSpace/Span.lean Modified Mathlib/Analysis/NormedSpace/Spectrum.lean Modified Mathlib/Analysis/NormedSpace/Star/Basic.lean Modified Mathlib/Analysis/NormedSpace/Star/ContinuousFunctionalCalculus.lean Modified Mathlib/Analysis/NormedSpace/Star/Exponential.lean Modified Mathlib/Analysis/NormedSpace/Star/GelfandDuality.lean Modified Mathlib/Analysis/NormedSpace/Star/Matrix.lean Modified Mathlib/Analysis/NormedSpace/Star/Multiplier.lean Modified Mathlib/Analysis/NormedSpace/Star/Spectrum.lean Modified Mathlib/Analysis/NormedSpace/Star/Unitization.lean Modified Mathlib/Analysis/NormedSpace/TrivSqZeroExt.lean Modified Mathlib/Analysis/NormedSpace/Units.lean Modified Mathlib/Analysis/NormedSpace/WeakDual.lean Modified Mathlib/Analysis/NormedSpace/WithLp.lean Modified Mathlib/Analysis/NormedSpace/lpSpace.lean Modified Mathlib/Analysis/ODE/Gronwall.lean Modified Mathlib/Analysis/ODE/PicardLindelof.lean Modified Mathlib/Analysis/PSeries.lean Modified Mathlib/Analysis/Quaternion.lean Modified Mathlib/Analysis/RCLike/Basic.lean Modified Mathlib/Analysis/RCLike/Lemmas.lean Modified Mathlib/Analysis/Seminorm.lean Modified Mathlib/Analysis/SpecialFunctions/Arsinh.lean Modified Mathlib/Analysis/SpecialFunctions/Bernstein.lean Modified Mathlib/Analysis/SpecialFunctions/CompareExp.lean Modified Mathlib/Analysis/SpecialFunctions/Complex/Arg.lean Modified Mathlib/Analysis/SpecialFunctions/Complex/Circle.lean Modified Mathlib/Analysis/SpecialFunctions/Complex/Log.lean Modified Mathlib/Analysis/SpecialFunctions/Complex/LogDeriv.lean Modified Mathlib/Analysis/SpecialFunctions/Exp.lean Modified Mathlib/Analysis/SpecialFunctions/ExpDeriv.lean Modified Mathlib/Analysis/SpecialFunctions/Exponential.lean Modified Mathlib/Analysis/SpecialFunctions/Gamma/Basic.lean Modified Mathlib/Analysis/SpecialFunctions/Gamma/Beta.lean Modified Mathlib/Analysis/SpecialFunctions/Gamma/BohrMollerup.lean Modified Mathlib/Analysis/SpecialFunctions/Gaussian/FourierTransform.lean Modified Mathlib/Analysis/SpecialFunctions/Gaussian/GaussianIntegral.lean Modified Mathlib/Analysis/SpecialFunctions/Gaussian/PoissonSummation.lean Modified Mathlib/Analysis/SpecialFunctions/ImproperIntegrals.lean Modified Mathlib/Analysis/SpecialFunctions/Integrals.lean Modified Mathlib/Analysis/SpecialFunctions/JapaneseBracket.lean Modified Mathlib/Analysis/SpecialFunctions/Log/Base.lean Modified Mathlib/Analysis/SpecialFunctions/Log/Basic.lean Modified Mathlib/Analysis/SpecialFunctions/Log/Deriv.lean Modified Mathlib/Analysis/SpecialFunctions/Log/Monotone.lean Modified Mathlib/Analysis/SpecialFunctions/NonIntegrable.lean Modified Mathlib/Analysis/SpecialFunctions/PolarCoord.lean Modified Mathlib/Analysis/SpecialFunctions/Polynomials.lean Modified Mathlib/Analysis/SpecialFunctions/Pow/Asymptotics.lean Modified Mathlib/Analysis/SpecialFunctions/Pow/Complex.lean Modified Mathlib/Analysis/SpecialFunctions/Pow/Continuity.lean Modified Mathlib/Analysis/SpecialFunctions/Pow/Deriv.lean Modified Mathlib/Analysis/SpecialFunctions/Pow/Integral.lean Modified Mathlib/Analysis/SpecialFunctions/Pow/NNReal.lean Modified Mathlib/Analysis/SpecialFunctions/Pow/Real.lean Modified Mathlib/Analysis/SpecialFunctions/SmoothTransition.lean Modified Mathlib/Analysis/SpecialFunctions/Sqrt.lean Modified Mathlib/Analysis/SpecialFunctions/Stirling.lean Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Angle.lean Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Arctan.lean Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/ArctanDeriv.lean Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Basic.lean Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Bounds.lean Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Chebyshev.lean Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Complex.lean Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/ComplexDeriv.lean Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Deriv.lean Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/EulerSineProd.lean Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Inverse.lean Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/InverseDeriv.lean Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Series.lean Modified Mathlib/Analysis/SpecificLimits/Basic.lean Modified Mathlib/Analysis/SpecificLimits/FloorPow.lean Modified Mathlib/Analysis/SpecificLimits/Normed.lean Modified Mathlib/Analysis/Subadditive.lean Modified Mathlib/Analysis/SumIntegralComparisons.lean Modified Mathlib/Analysis/VonNeumannAlgebra/Basic.lean Modified Mathlib/CategoryTheory/Abelian/Basic.lean Modified Mathlib/CategoryTheory/Abelian/DiagramLemmas/Four.lean Modified Mathlib/CategoryTheory/Abelian/Exact.lean Modified Mathlib/CategoryTheory/Abelian/Ext.lean Modified Mathlib/CategoryTheory/Abelian/FunctorCategory.lean Modified Mathlib/CategoryTheory/Abelian/Generator.lean Modified Mathlib/CategoryTheory/Abelian/Images.lean Modified Mathlib/CategoryTheory/Abelian/Injective.lean Modified Mathlib/CategoryTheory/Abelian/InjectiveResolution.lean Modified Mathlib/CategoryTheory/Abelian/LeftDerived.lean Modified Mathlib/CategoryTheory/Abelian/NonPreadditive.lean Modified Mathlib/CategoryTheory/Abelian/Opposite.lean Modified Mathlib/CategoryTheory/Abelian/Projective.lean Modified Mathlib/CategoryTheory/Abelian/ProjectiveResolution.lean Modified Mathlib/CategoryTheory/Abelian/Pseudoelements.lean Modified Mathlib/CategoryTheory/Abelian/RightDerived.lean Modified Mathlib/CategoryTheory/Abelian/Subobject.lean Modified Mathlib/CategoryTheory/Abelian/Transfer.lean Modified Mathlib/CategoryTheory/Action.lean Modified Mathlib/CategoryTheory/Adhesive.lean Modified Mathlib/CategoryTheory/Adjunction/AdjointFunctorTheorems.lean Modified Mathlib/CategoryTheory/Adjunction/Basic.lean Modified Mathlib/CategoryTheory/Adjunction/Comma.lean Modified Mathlib/CategoryTheory/Adjunction/Evaluation.lean Modified Mathlib/CategoryTheory/Adjunction/FullyFaithful.lean Modified Mathlib/CategoryTheory/Adjunction/Lifting.lean Modified Mathlib/CategoryTheory/Adjunction/Limits.lean Modified Mathlib/CategoryTheory/Adjunction/Mates.lean Modified Mathlib/CategoryTheory/Adjunction/Opposites.lean Modified Mathlib/CategoryTheory/Adjunction/Over.lean Modified Mathlib/CategoryTheory/Adjunction/Reflective.lean Modified Mathlib/CategoryTheory/Adjunction/Restrict.lean Modified Mathlib/CategoryTheory/Adjunction/Unique.lean Modified Mathlib/CategoryTheory/Adjunction/Whiskering.lean Modified Mathlib/CategoryTheory/Balanced.lean Modified Mathlib/CategoryTheory/Bicategory/Basic.lean Modified Mathlib/CategoryTheory/Bicategory/Coherence.lean Modified Mathlib/CategoryTheory/Bicategory/End.lean Modified Mathlib/CategoryTheory/Bicategory/Free.lean Modified Mathlib/CategoryTheory/Bicategory/Functor/Oplax.lean Modified Mathlib/CategoryTheory/Bicategory/Functor/Prelax.lean Modified Mathlib/CategoryTheory/Bicategory/Functor/Pseudofunctor.lean Modified Mathlib/CategoryTheory/Bicategory/FunctorBicategory.lean Modified Mathlib/CategoryTheory/Bicategory/LocallyDiscrete.lean Modified Mathlib/CategoryTheory/Bicategory/NaturalTransformation/Oplax.lean Modified Mathlib/CategoryTheory/Bicategory/SingleObj.lean Modified Mathlib/CategoryTheory/Bicategory/Strict.lean Modified Mathlib/CategoryTheory/Category/Basic.lean Modified Mathlib/CategoryTheory/Category/Bipointed.lean Modified Mathlib/CategoryTheory/Category/Cat.lean Modified Mathlib/CategoryTheory/Category/Cat/Limit.lean Modified Mathlib/CategoryTheory/Category/GaloisConnection.lean Modified Mathlib/CategoryTheory/Category/Grpd.lean Modified Mathlib/CategoryTheory/Category/KleisliCat.lean Modified Mathlib/CategoryTheory/Category/Pairwise.lean Modified Mathlib/CategoryTheory/Category/PartialFun.lean Modified Mathlib/CategoryTheory/Category/Pointed.lean Modified Mathlib/CategoryTheory/Category/Preorder.lean Modified Mathlib/CategoryTheory/Category/Quiv.lean Modified Mathlib/CategoryTheory/Category/RelCat.lean Modified Mathlib/CategoryTheory/Category/TwoP.lean Modified Mathlib/CategoryTheory/Category/ULift.lean Modified Mathlib/CategoryTheory/Closed/Cartesian.lean Modified Mathlib/CategoryTheory/Closed/Functor.lean Modified Mathlib/CategoryTheory/Closed/FunctorCategory.lean Modified Mathlib/CategoryTheory/Closed/Ideal.lean Modified Mathlib/CategoryTheory/Closed/Monoidal.lean Modified Mathlib/CategoryTheory/Closed/Types.lean Modified Mathlib/CategoryTheory/Closed/Zero.lean Modified Mathlib/CategoryTheory/CofilteredSystem.lean Modified Mathlib/CategoryTheory/CommSq.lean Modified Mathlib/CategoryTheory/Comma/Arrow.lean Modified Mathlib/CategoryTheory/Comma/Basic.lean Modified Mathlib/CategoryTheory/Comma/Over.lean Modified Mathlib/CategoryTheory/Comma/StructuredArrow.lean Modified Mathlib/CategoryTheory/ConcreteCategory/Basic.lean Modified Mathlib/CategoryTheory/ConcreteCategory/Bundled.lean Modified Mathlib/CategoryTheory/ConcreteCategory/BundledHom.lean Modified Mathlib/CategoryTheory/ConcreteCategory/Elementwise.lean Modified Mathlib/CategoryTheory/ConcreteCategory/EpiMono.lean Modified Mathlib/CategoryTheory/ConcreteCategory/ReflectsIso.lean Modified Mathlib/CategoryTheory/ConcreteCategory/UnbundledHom.lean Modified Mathlib/CategoryTheory/Conj.lean Modified Mathlib/CategoryTheory/ConnectedComponents.lean Modified Mathlib/CategoryTheory/Core.lean Modified Mathlib/CategoryTheory/DifferentialObject.lean Modified Mathlib/CategoryTheory/DiscreteCategory.lean Modified Mathlib/CategoryTheory/Elements.lean Modified Mathlib/CategoryTheory/Elementwise.lean Modified Mathlib/CategoryTheory/Endofunctor/Algebra.lean Modified Mathlib/CategoryTheory/Endomorphism.lean Modified Mathlib/CategoryTheory/Enriched/Basic.lean Modified Mathlib/CategoryTheory/EpiMono.lean Modified Mathlib/CategoryTheory/EqToHom.lean Modified Mathlib/CategoryTheory/Equivalence.lean Modified Mathlib/CategoryTheory/EssentialImage.lean Modified Mathlib/CategoryTheory/EssentiallySmall.lean Modified Mathlib/CategoryTheory/Extensive.lean Modified Mathlib/CategoryTheory/Filtered/Basic.lean Modified Mathlib/CategoryTheory/FinCategory/AsType.lean Modified Mathlib/CategoryTheory/FinCategory/Basic.lean Modified Mathlib/CategoryTheory/FintypeCat.lean Modified Mathlib/CategoryTheory/FullSubcategory.lean Modified Mathlib/CategoryTheory/Functor/Basic.lean Modified Mathlib/CategoryTheory/Functor/Category.lean Modified Mathlib/CategoryTheory/Functor/Const.lean Modified Mathlib/CategoryTheory/Functor/Currying.lean Modified Mathlib/CategoryTheory/Functor/EpiMono.lean Modified Mathlib/CategoryTheory/Functor/Flat.lean Modified Mathlib/CategoryTheory/Functor/FullyFaithful.lean Modified Mathlib/CategoryTheory/Functor/Functorial.lean Modified Mathlib/CategoryTheory/Functor/Hom.lean Modified Mathlib/CategoryTheory/Functor/ReflectsIso.lean Modified Mathlib/CategoryTheory/Generator.lean Modified Mathlib/CategoryTheory/GlueData.lean Modified Mathlib/CategoryTheory/GradedObject.lean Modified Mathlib/CategoryTheory/Grothendieck.lean Modified Mathlib/CategoryTheory/Groupoid.lean Modified Mathlib/CategoryTheory/Groupoid/Basic.lean Modified Mathlib/CategoryTheory/Groupoid/FreeGroupoid.lean Modified Mathlib/CategoryTheory/Groupoid/Subgroupoid.lean Modified Mathlib/CategoryTheory/Groupoid/VertexGroup.lean Modified Mathlib/CategoryTheory/Idempotents/Basic.lean Modified Mathlib/CategoryTheory/Idempotents/Biproducts.lean Modified Mathlib/CategoryTheory/Idempotents/FunctorCategories.lean Modified Mathlib/CategoryTheory/Idempotents/FunctorExtension.lean Modified Mathlib/CategoryTheory/Idempotents/HomologicalComplex.lean Modified Mathlib/CategoryTheory/Idempotents/Karoubi.lean Modified Mathlib/CategoryTheory/Idempotents/KaroubiKaroubi.lean Modified Mathlib/CategoryTheory/Idempotents/SimplicialObject.lean Modified Mathlib/CategoryTheory/IsConnected.lean Modified Mathlib/CategoryTheory/Iso.lean Modified Mathlib/CategoryTheory/IsomorphismClasses.lean Modified Mathlib/CategoryTheory/LiftingProperties/Adjunction.lean Modified Mathlib/CategoryTheory/LiftingProperties/Basic.lean Modified Mathlib/CategoryTheory/Limits/Bicones.lean Modified Mathlib/CategoryTheory/Limits/ColimitLimit.lean Modified Mathlib/CategoryTheory/Limits/Comma.lean Modified Mathlib/CategoryTheory/Limits/ConcreteCategory.lean Modified Mathlib/CategoryTheory/Limits/ConeCategory.lean Modified Mathlib/CategoryTheory/Limits/Cones.lean Modified Mathlib/CategoryTheory/Limits/Connected.lean Modified Mathlib/CategoryTheory/Limits/Constructions/BinaryProducts.lean Modified Mathlib/CategoryTheory/Limits/Constructions/EpiMono.lean Modified Mathlib/CategoryTheory/Limits/Constructions/Equalizers.lean Modified Mathlib/CategoryTheory/Limits/Constructions/Filtered.lean Modified Mathlib/CategoryTheory/Limits/Constructions/FiniteProductsOfBinaryProducts.lean Modified Mathlib/CategoryTheory/Limits/Constructions/LimitsOfProductsAndEqualizers.lean Modified Mathlib/CategoryTheory/Limits/Constructions/Over/Basic.lean Modified Mathlib/CategoryTheory/Limits/Constructions/Over/Connected.lean Modified Mathlib/CategoryTheory/Limits/Constructions/Over/Products.lean Modified Mathlib/CategoryTheory/Limits/Constructions/Pullbacks.lean Modified Mathlib/CategoryTheory/Limits/Constructions/WeaklyInitial.lean Modified Mathlib/CategoryTheory/Limits/Constructions/ZeroObjects.lean Modified Mathlib/CategoryTheory/Limits/Creates.lean Modified Mathlib/CategoryTheory/Limits/EssentiallySmall.lean Modified Mathlib/CategoryTheory/Limits/ExactFunctor.lean Modified Mathlib/CategoryTheory/Limits/Filtered.lean Modified Mathlib/CategoryTheory/Limits/FilteredColimitCommutesFiniteLimit.lean Modified Mathlib/CategoryTheory/Limits/Final.lean Modified Mathlib/CategoryTheory/Limits/Fubini.lean Modified Mathlib/CategoryTheory/Limits/FullSubcategory.lean Modified Mathlib/CategoryTheory/Limits/FunctorCategory.lean Modified Mathlib/CategoryTheory/Limits/HasLimits.lean Modified Mathlib/CategoryTheory/Limits/IsLimit.lean Modified Mathlib/CategoryTheory/Limits/Lattice.lean Modified Mathlib/CategoryTheory/Limits/MonoCoprod.lean Modified Mathlib/CategoryTheory/Limits/Opposites.lean Modified Mathlib/CategoryTheory/Limits/Over.lean Modified Mathlib/CategoryTheory/Limits/Pi.lean Modified Mathlib/CategoryTheory/Limits/Preserves/Basic.lean Modified Mathlib/CategoryTheory/Limits/Preserves/Filtered.lean Modified Mathlib/CategoryTheory/Limits/Preserves/Finite.lean Modified Mathlib/CategoryTheory/Limits/Preserves/FunctorCategory.lean Modified Mathlib/CategoryTheory/Limits/Preserves/Limits.lean Modified Mathlib/CategoryTheory/Limits/Preserves/Opposites.lean Modified Mathlib/CategoryTheory/Limits/Preserves/Shapes/BinaryProducts.lean Modified Mathlib/CategoryTheory/Limits/Preserves/Shapes/Biproducts.lean Modified Mathlib/CategoryTheory/Limits/Preserves/Shapes/Equalizers.lean Modified Mathlib/CategoryTheory/Limits/Preserves/Shapes/Images.lean Modified Mathlib/CategoryTheory/Limits/Preserves/Shapes/Kernels.lean Modified Mathlib/CategoryTheory/Limits/Preserves/Shapes/Products.lean Modified Mathlib/CategoryTheory/Limits/Preserves/Shapes/Pullbacks.lean Modified Mathlib/CategoryTheory/Limits/Preserves/Shapes/Terminal.lean Modified Mathlib/CategoryTheory/Limits/Preserves/Shapes/Zero.lean Modified Mathlib/CategoryTheory/Limits/Presheaf.lean Modified Mathlib/CategoryTheory/Limits/Shapes/BinaryProducts.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Biproducts.lean Modified Mathlib/CategoryTheory/Limits/Shapes/ConcreteCategory.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Diagonal.lean Modified Mathlib/CategoryTheory/Limits/Shapes/DisjointCoproduct.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Equalizers.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Equivalence.lean Modified Mathlib/CategoryTheory/Limits/Shapes/FiniteLimits.lean Modified Mathlib/CategoryTheory/Limits/Shapes/FiniteProducts.lean Modified Mathlib/CategoryTheory/Limits/Shapes/FunctorCategory.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Images.lean Modified Mathlib/CategoryTheory/Limits/Shapes/KernelPair.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Kernels.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Multiequalizer.lean Modified Mathlib/CategoryTheory/Limits/Shapes/NormalMono/Basic.lean Modified Mathlib/CategoryTheory/Limits/Shapes/NormalMono/Equalizers.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Products.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Pullback/Assoc.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Pullback/CommSq.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Pullback/Cospan.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Pullback/HasPullback.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Pullback/Iso.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Pullback/Mono.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Pullback/Pasting.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Pullback/PullbackCone.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Reflexive.lean Modified Mathlib/CategoryTheory/Limits/Shapes/RegularMono.lean Modified Mathlib/CategoryTheory/Limits/Shapes/SplitCoequalizer.lean Modified Mathlib/CategoryTheory/Limits/Shapes/StrictInitial.lean Modified Mathlib/CategoryTheory/Limits/Shapes/StrongEpi.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Terminal.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Types.lean Modified Mathlib/CategoryTheory/Limits/Shapes/WideEqualizers.lean Modified Mathlib/CategoryTheory/Limits/Shapes/WidePullbacks.lean Modified Mathlib/CategoryTheory/Limits/Shapes/ZeroMorphisms.lean Modified Mathlib/CategoryTheory/Limits/Shapes/ZeroObjects.lean Modified Mathlib/CategoryTheory/Limits/SmallComplete.lean Modified Mathlib/CategoryTheory/Limits/Types.lean Modified Mathlib/CategoryTheory/Limits/TypesFiltered.lean Modified Mathlib/CategoryTheory/Limits/Unit.lean Modified Mathlib/CategoryTheory/Limits/VanKampen.lean Modified Mathlib/CategoryTheory/Limits/Yoneda.lean Modified Mathlib/CategoryTheory/Linear/Basic.lean Modified Mathlib/CategoryTheory/Linear/FunctorCategory.lean Modified Mathlib/CategoryTheory/Linear/LinearFunctor.lean Modified Mathlib/CategoryTheory/Linear/Yoneda.lean Modified Mathlib/CategoryTheory/Localization/Construction.lean Modified Mathlib/CategoryTheory/Localization/Opposite.lean Modified Mathlib/CategoryTheory/Localization/Predicate.lean Modified Mathlib/CategoryTheory/Monad/Adjunction.lean Modified Mathlib/CategoryTheory/Monad/Algebra.lean Modified Mathlib/CategoryTheory/Monad/Basic.lean Modified Mathlib/CategoryTheory/Monad/Coequalizer.lean Modified Mathlib/CategoryTheory/Monad/EquivMon.lean Modified Mathlib/CategoryTheory/Monad/Kleisli.lean Modified Mathlib/CategoryTheory/Monad/Limits.lean Modified Mathlib/CategoryTheory/Monad/Monadicity.lean Modified Mathlib/CategoryTheory/Monad/Products.lean Modified Mathlib/CategoryTheory/Monad/Types.lean Modified Mathlib/CategoryTheory/Monoidal/Bimod.lean Modified Mathlib/CategoryTheory/Monoidal/Braided/Basic.lean Modified Mathlib/CategoryTheory/Monoidal/Category.lean Modified Mathlib/CategoryTheory/Monoidal/Center.lean Modified Mathlib/CategoryTheory/Monoidal/CoherenceLemmas.lean Modified Mathlib/CategoryTheory/Monoidal/CommMon_.lean Modified Mathlib/CategoryTheory/Monoidal/Discrete.lean Modified Mathlib/CategoryTheory/Monoidal/End.lean Modified Mathlib/CategoryTheory/Monoidal/Free/Basic.lean Modified Mathlib/CategoryTheory/Monoidal/Free/Coherence.lean Modified Mathlib/CategoryTheory/Monoidal/Functor.lean Modified Mathlib/CategoryTheory/Monoidal/FunctorCategory.lean Modified Mathlib/CategoryTheory/Monoidal/Functorial.lean Modified Mathlib/CategoryTheory/Monoidal/Internal/FunctorCategory.lean Modified Mathlib/CategoryTheory/Monoidal/Internal/Limits.lean Modified Mathlib/CategoryTheory/Monoidal/Internal/Module.lean Modified Mathlib/CategoryTheory/Monoidal/Internal/Types.lean Modified Mathlib/CategoryTheory/Monoidal/Limits.lean Modified Mathlib/CategoryTheory/Monoidal/Linear.lean Modified Mathlib/CategoryTheory/Monoidal/Mod_.lean Modified Mathlib/CategoryTheory/Monoidal/Mon_.lean Modified Mathlib/CategoryTheory/Monoidal/NaturalTransformation.lean Modified Mathlib/CategoryTheory/Monoidal/OfChosenFiniteProducts/Basic.lean Modified Mathlib/CategoryTheory/Monoidal/OfChosenFiniteProducts/Symmetric.lean Modified Mathlib/CategoryTheory/Monoidal/OfHasFiniteProducts.lean Modified Mathlib/CategoryTheory/Monoidal/Opposite.lean Modified Mathlib/CategoryTheory/Monoidal/Preadditive.lean Modified Mathlib/CategoryTheory/Monoidal/Rigid/Basic.lean Modified Mathlib/CategoryTheory/Monoidal/Rigid/FunctorCategory.lean Modified Mathlib/CategoryTheory/Monoidal/Rigid/OfEquivalence.lean Modified Mathlib/CategoryTheory/Monoidal/Skeleton.lean Modified Mathlib/CategoryTheory/Monoidal/Subcategory.lean Modified Mathlib/CategoryTheory/Monoidal/Tor.lean Modified Mathlib/CategoryTheory/Monoidal/Transport.lean Modified Mathlib/CategoryTheory/Monoidal/Types/Basic.lean Modified Mathlib/CategoryTheory/Monoidal/Types/Coyoneda.lean Modified Mathlib/CategoryTheory/Monoidal/Types/Symmetric.lean Modified Mathlib/CategoryTheory/MorphismProperty/Basic.lean Modified Mathlib/CategoryTheory/MorphismProperty/Composition.lean Modified Mathlib/CategoryTheory/MorphismProperty/Concrete.lean Modified Mathlib/CategoryTheory/MorphismProperty/IsInvertedBy.lean Modified Mathlib/CategoryTheory/MorphismProperty/Limits.lean Modified Mathlib/CategoryTheory/NatIso.lean Modified Mathlib/CategoryTheory/NatTrans.lean Modified Mathlib/CategoryTheory/Noetherian.lean Modified Mathlib/CategoryTheory/Opposites.lean Modified Mathlib/CategoryTheory/PEmpty.lean Modified Mathlib/CategoryTheory/PUnit.lean Modified Mathlib/CategoryTheory/PathCategory.lean Modified Mathlib/CategoryTheory/Pi/Basic.lean Modified Mathlib/CategoryTheory/Preadditive/AdditiveFunctor.lean Modified Mathlib/CategoryTheory/Preadditive/Basic.lean Modified Mathlib/CategoryTheory/Preadditive/Biproducts.lean Modified Mathlib/CategoryTheory/Preadditive/EilenbergMoore.lean Modified Mathlib/CategoryTheory/Preadditive/EndoFunctor.lean Modified Mathlib/CategoryTheory/Preadditive/FunctorCategory.lean Modified Mathlib/CategoryTheory/Preadditive/Generator.lean Modified Mathlib/CategoryTheory/Preadditive/HomOrthogonal.lean Modified Mathlib/CategoryTheory/Preadditive/Injective.lean Modified Mathlib/CategoryTheory/Preadditive/InjectiveResolution.lean Modified Mathlib/CategoryTheory/Preadditive/LeftExact.lean Modified Mathlib/CategoryTheory/Preadditive/Mat.lean Modified Mathlib/CategoryTheory/Preadditive/OfBiproducts.lean Modified Mathlib/CategoryTheory/Preadditive/Opposite.lean Modified Mathlib/CategoryTheory/Preadditive/Projective.lean Modified Mathlib/CategoryTheory/Preadditive/ProjectiveResolution.lean Modified Mathlib/CategoryTheory/Preadditive/Schur.lean Modified Mathlib/CategoryTheory/Preadditive/SingleObj.lean Modified Mathlib/CategoryTheory/Preadditive/Yoneda/Basic.lean Modified Mathlib/CategoryTheory/Preadditive/Yoneda/Injective.lean Modified Mathlib/CategoryTheory/Preadditive/Yoneda/Limits.lean Modified Mathlib/CategoryTheory/Preadditive/Yoneda/Projective.lean Modified Mathlib/CategoryTheory/Products/Associator.lean Modified Mathlib/CategoryTheory/Products/Basic.lean Modified Mathlib/CategoryTheory/Products/Bifunctor.lean Modified Mathlib/CategoryTheory/Quotient.lean Modified Mathlib/CategoryTheory/Shift/Basic.lean Modified Mathlib/CategoryTheory/Sigma/Basic.lean Modified Mathlib/CategoryTheory/Simple.lean Modified Mathlib/CategoryTheory/SingleObj.lean Modified Mathlib/CategoryTheory/Sites/Abelian.lean Modified Mathlib/CategoryTheory/Sites/Adjunction.lean Modified Mathlib/CategoryTheory/Sites/Canonical.lean Modified Mathlib/CategoryTheory/Sites/Closed.lean Modified Mathlib/CategoryTheory/Sites/CompatiblePlus.lean Modified Mathlib/CategoryTheory/Sites/CompatibleSheafification.lean Modified Mathlib/CategoryTheory/Sites/ConcreteSheafification.lean Modified Mathlib/CategoryTheory/Sites/Continuous.lean Modified Mathlib/CategoryTheory/Sites/CoverLifting.lean Modified Mathlib/CategoryTheory/Sites/CoverPreserving.lean Modified Mathlib/CategoryTheory/Sites/DenseSubsite.lean Modified Mathlib/CategoryTheory/Sites/EqualizerSheafCondition.lean Modified Mathlib/CategoryTheory/Sites/Grothendieck.lean Modified Mathlib/CategoryTheory/Sites/InducedTopology.lean Modified Mathlib/CategoryTheory/Sites/IsSheafFor.lean Modified Mathlib/CategoryTheory/Sites/LeftExact.lean Modified Mathlib/CategoryTheory/Sites/Limits.lean Modified Mathlib/CategoryTheory/Sites/LocallySurjective.lean Modified Mathlib/CategoryTheory/Sites/Plus.lean Modified Mathlib/CategoryTheory/Sites/PreservesSheafification.lean Modified Mathlib/CategoryTheory/Sites/Pretopology.lean Modified Mathlib/CategoryTheory/Sites/Pullback.lean Modified Mathlib/CategoryTheory/Sites/Sheaf.lean Modified Mathlib/CategoryTheory/Sites/SheafOfTypes.lean Modified Mathlib/CategoryTheory/Sites/Sheafification.lean Modified Mathlib/CategoryTheory/Sites/Sieves.lean Modified Mathlib/CategoryTheory/Sites/Spaces.lean Modified Mathlib/CategoryTheory/Sites/Subsheaf.lean Modified Mathlib/CategoryTheory/Sites/Types.lean Modified Mathlib/CategoryTheory/Sites/Whiskering.lean Modified Mathlib/CategoryTheory/Skeletal.lean Modified Mathlib/CategoryTheory/Subobject/Basic.lean Modified Mathlib/CategoryTheory/Subobject/Comma.lean Modified Mathlib/CategoryTheory/Subobject/FactorThru.lean Modified Mathlib/CategoryTheory/Subobject/Lattice.lean Modified Mathlib/CategoryTheory/Subobject/Limits.lean Modified Mathlib/CategoryTheory/Subobject/MonoOver.lean Modified Mathlib/CategoryTheory/Subobject/Types.lean Modified Mathlib/CategoryTheory/Subobject/WellPowered.lean Modified Mathlib/CategoryTheory/Subterminal.lean Modified Mathlib/CategoryTheory/Sums/Associator.lean Modified Mathlib/CategoryTheory/Sums/Basic.lean Modified Mathlib/CategoryTheory/Thin.lean Modified Mathlib/CategoryTheory/Triangulated/Basic.lean Modified Mathlib/CategoryTheory/Triangulated/Pretriangulated.lean Modified Mathlib/CategoryTheory/Triangulated/Rotate.lean Modified Mathlib/CategoryTheory/Triangulated/Triangulated.lean Modified Mathlib/CategoryTheory/Types.lean Modified Mathlib/CategoryTheory/Whiskering.lean Modified Mathlib/CategoryTheory/WithTerminal.lean Modified Mathlib/CategoryTheory/Yoneda.lean Modified Mathlib/Combinatorics/Additive/AP/Three/Behrend.lean Modified Mathlib/Combinatorics/Additive/AP/Three/Defs.lean Modified Mathlib/Combinatorics/Additive/ETransform.lean Modified Mathlib/Combinatorics/Additive/Energy.lean Modified Mathlib/Combinatorics/Additive/FreimanHom.lean Modified Mathlib/Combinatorics/Additive/PluenneckeRuzsa.lean Modified Mathlib/Combinatorics/Additive/RuzsaCovering.lean Modified Mathlib/Combinatorics/Colex.lean Modified Mathlib/Combinatorics/Configuration.lean Modified Mathlib/Combinatorics/Derangements/Basic.lean Modified Mathlib/Combinatorics/Derangements/Exponential.lean Modified Mathlib/Combinatorics/Derangements/Finite.lean Modified Mathlib/Combinatorics/Enumerative/Catalan.lean Modified Mathlib/Combinatorics/Enumerative/Composition.lean Modified Mathlib/Combinatorics/Enumerative/DoubleCounting.lean Modified Mathlib/Combinatorics/Enumerative/Partition.lean Modified Mathlib/Combinatorics/HalesJewett.lean Modified Mathlib/Combinatorics/Hall/Basic.lean Modified Mathlib/Combinatorics/Hall/Finite.lean Modified Mathlib/Combinatorics/Hindman.lean Modified Mathlib/Combinatorics/Pigeonhole.lean Modified Mathlib/Combinatorics/Quiver/Arborescence.lean Modified Mathlib/Combinatorics/Quiver/Basic.lean Modified Mathlib/Combinatorics/Quiver/Cast.lean Modified Mathlib/Combinatorics/Quiver/ConnectedComponent.lean Modified Mathlib/Combinatorics/Quiver/Covering.lean Modified Mathlib/Combinatorics/Quiver/Path.lean Modified Mathlib/Combinatorics/Quiver/Push.lean Modified Mathlib/Combinatorics/Quiver/SingleObj.lean Modified Mathlib/Combinatorics/Quiver/Subquiver.lean Modified Mathlib/Combinatorics/Quiver/Symmetric.lean Modified Mathlib/Combinatorics/SetFamily/Compression/Down.lean Modified Mathlib/Combinatorics/SetFamily/Compression/UV.lean Modified Mathlib/Combinatorics/SetFamily/HarrisKleitman.lean Modified Mathlib/Combinatorics/SetFamily/Intersecting.lean Modified Mathlib/Combinatorics/SetFamily/Kleitman.lean Modified Mathlib/Combinatorics/SetFamily/LYM.lean Modified Mathlib/Combinatorics/SetFamily/Shadow.lean Modified Mathlib/Combinatorics/SimpleGraph/Acyclic.lean Modified Mathlib/Combinatorics/SimpleGraph/AdjMatrix.lean Modified Mathlib/Combinatorics/SimpleGraph/Basic.lean Modified Mathlib/Combinatorics/SimpleGraph/Clique.lean Modified Mathlib/Combinatorics/SimpleGraph/Coloring.lean Modified Mathlib/Combinatorics/SimpleGraph/Connectivity.lean Modified Mathlib/Combinatorics/SimpleGraph/Connectivity/Subgraph.lean Modified Mathlib/Combinatorics/SimpleGraph/Connectivity/WalkCounting.lean Modified Mathlib/Combinatorics/SimpleGraph/Dart.lean Modified Mathlib/Combinatorics/SimpleGraph/DegreeSum.lean Modified Mathlib/Combinatorics/SimpleGraph/Density.lean Modified Mathlib/Combinatorics/SimpleGraph/Ends/Defs.lean Modified Mathlib/Combinatorics/SimpleGraph/Ends/Properties.lean Modified Mathlib/Combinatorics/SimpleGraph/Finite.lean Modified Mathlib/Combinatorics/SimpleGraph/Finsubgraph.lean Modified Mathlib/Combinatorics/SimpleGraph/Hasse.lean Modified Mathlib/Combinatorics/SimpleGraph/IncMatrix.lean Modified Mathlib/Combinatorics/SimpleGraph/Maps.lean Modified Mathlib/Combinatorics/SimpleGraph/Matching.lean Modified Mathlib/Combinatorics/SimpleGraph/Metric.lean Modified Mathlib/Combinatorics/SimpleGraph/Partition.lean Modified Mathlib/Combinatorics/SimpleGraph/Prod.lean Modified Mathlib/Combinatorics/SimpleGraph/Regularity/Bound.lean Modified Mathlib/Combinatorics/SimpleGraph/Regularity/Chunk.lean Modified Mathlib/Combinatorics/SimpleGraph/Regularity/Energy.lean Modified Mathlib/Combinatorics/SimpleGraph/Regularity/Equitabilise.lean Modified Mathlib/Combinatorics/SimpleGraph/Regularity/Increment.lean Modified Mathlib/Combinatorics/SimpleGraph/Regularity/Lemma.lean Modified Mathlib/Combinatorics/SimpleGraph/Regularity/Uniform.lean Modified Mathlib/Combinatorics/SimpleGraph/StronglyRegular.lean Modified Mathlib/Combinatorics/SimpleGraph/Subgraph.lean Modified Mathlib/Combinatorics/SimpleGraph/Trails.lean Modified Mathlib/Combinatorics/SimpleGraph/Triangle/Basic.lean Modified Mathlib/Combinatorics/Young/SemistandardTableau.lean Modified Mathlib/Combinatorics/Young/YoungDiagram.lean Modified Mathlib/Computability/Ackermann.lean Modified Mathlib/Computability/DFA.lean Modified Mathlib/Computability/Encoding.lean Modified Mathlib/Computability/EpsilonNFA.lean Modified Mathlib/Computability/Halting.lean Modified Mathlib/Computability/Language.lean Modified Mathlib/Computability/NFA.lean Modified Mathlib/Computability/Partrec.lean Modified Mathlib/Computability/PartrecCode.lean Modified Mathlib/Computability/Primrec.lean Modified Mathlib/Computability/Reduce.lean Modified Mathlib/Computability/RegularExpressions.lean Modified Mathlib/Computability/TMComputable.lean Modified Mathlib/Computability/TMToPartrec.lean Modified Mathlib/Computability/TuringMachine.lean Modified Mathlib/Control/Applicative.lean Modified Mathlib/Control/Basic.lean Modified Mathlib/Control/Bifunctor.lean Modified Mathlib/Control/Bitraversable/Basic.lean Modified Mathlib/Control/Bitraversable/Instances.lean Modified Mathlib/Control/Bitraversable/Lemmas.lean Modified Mathlib/Control/Combinators.lean Modified Mathlib/Control/EquivFunctor.lean Modified Mathlib/Control/EquivFunctor/Instances.lean Modified Mathlib/Control/Fix.lean Modified Mathlib/Control/Fold.lean Modified Mathlib/Control/Functor.lean Modified Mathlib/Control/Functor/Multivariate.lean Modified Mathlib/Control/Lawful.lean Modified Mathlib/Control/LawfulFix.lean Modified Mathlib/Control/Monad/Basic.lean Modified Mathlib/Control/Monad/Cont.lean Modified Mathlib/Control/Monad/Writer.lean Modified Mathlib/Control/Random.lean Modified Mathlib/Control/Traversable/Basic.lean Modified Mathlib/Control/Traversable/Equiv.lean Modified Mathlib/Control/Traversable/Instances.lean Modified Mathlib/Control/Traversable/Lemmas.lean Modified Mathlib/Control/ULift.lean Modified Mathlib/Control/ULiftable.lean Modified Mathlib/Data/Analysis/Filter.lean Modified Mathlib/Data/Analysis/Topology.lean Modified Mathlib/Data/Array/Lemmas.lean Modified Mathlib/Data/BitVec.lean Modified Mathlib/Data/Bool/AllAny.lean Modified Mathlib/Data/Bool/Basic.lean Modified Mathlib/Data/Bool/Count.lean Modified Mathlib/Data/Bool/Set.lean Modified Mathlib/Data/Bracket.lean Modified Mathlib/Data/Buffer/Basic.lean Modified Mathlib/Data/Bundle.lean Modified Mathlib/Data/Char.lean Modified Mathlib/Data/Complex/Abs.lean Modified Mathlib/Data/Complex/Basic.lean Modified Mathlib/Data/Complex/BigOperators.lean Modified Mathlib/Data/Complex/Cardinality.lean Modified Mathlib/Data/Complex/Determinant.lean Modified Mathlib/Data/Complex/Exponential.lean Modified Mathlib/Data/Complex/ExponentialBounds.lean Modified Mathlib/Data/Complex/FiniteDimensional.lean Modified Mathlib/Data/Complex/Module.lean Modified Mathlib/Data/Complex/Order.lean Modified Mathlib/Data/Complex/Orientation.lean Modified Mathlib/Data/Countable/Basic.lean Modified Mathlib/Data/Countable/Defs.lean Modified Mathlib/Data/Countable/Small.lean Modified Mathlib/Data/DFinsupp/Basic.lean Modified Mathlib/Data/DFinsupp/Interval.lean Modified Mathlib/Data/DFinsupp/Lex.lean Modified Mathlib/Data/DFinsupp/Multiset.lean Modified Mathlib/Data/DFinsupp/NeLocus.lean Modified Mathlib/Data/DFinsupp/Order.lean Modified Mathlib/Data/DFinsupp/WellFounded.lean Modified Mathlib/Data/DList/Basic.lean Modified Mathlib/Data/DList/Defs.lean Modified Mathlib/Data/DList/Instances.lean Modified Mathlib/Data/ENNReal/Basic.lean Modified Mathlib/Data/ENNReal/Inv.lean Modified Mathlib/Data/ENNReal/Operations.lean Modified Mathlib/Data/ENNReal/Real.lean Modified Mathlib/Data/ENat/Basic.lean Modified Mathlib/Data/ENat/Lattice.lean Modified Mathlib/Data/Erased.lean Modified Mathlib/Data/FP/Basic.lean Modified Mathlib/Data/Fin/Basic.lean Modified Mathlib/Data/Fin/Fin2.lean Modified Mathlib/Data/Fin/SuccPred.lean Modified Mathlib/Data/Fin/Tuple/Basic.lean Modified Mathlib/Data/Fin/Tuple/BubbleSortInduction.lean Modified Mathlib/Data/Fin/Tuple/NatAntidiagonal.lean Modified Mathlib/Data/Fin/Tuple/Reflection.lean Modified Mathlib/Data/Fin/Tuple/Sort.lean Modified Mathlib/Data/Fin/VecNotation.lean Modified Mathlib/Data/FinEnum.lean Modified Mathlib/Data/Finite/Basic.lean Modified Mathlib/Data/Finite/Card.lean Modified Mathlib/Data/Finite/Defs.lean Modified Mathlib/Data/Finite/Set.lean Modified Mathlib/Data/Finmap.lean Modified Mathlib/Data/Finset/Basic.lean Modified Mathlib/Data/Finset/Card.lean Modified Mathlib/Data/Finset/Fin.lean Modified Mathlib/Data/Finset/Finsupp.lean Modified Mathlib/Data/Finset/Fold.lean Modified Mathlib/Data/Finset/Functor.lean Modified Mathlib/Data/Finset/Image.lean Modified Mathlib/Data/Finset/Interval.lean Modified Mathlib/Data/Finset/Lattice.lean Modified Mathlib/Data/Finset/MulAntidiagonal.lean Modified Mathlib/Data/Finset/NAry.lean Modified Mathlib/Data/Finset/NatAntidiagonal.lean Modified Mathlib/Data/Finset/NoncommProd.lean Modified Mathlib/Data/Finset/Option.lean Modified Mathlib/Data/Finset/Order.lean Modified Mathlib/Data/Finset/PImage.lean Modified Mathlib/Data/Finset/Pairwise.lean Modified Mathlib/Data/Finset/Pi.lean Modified Mathlib/Data/Finset/PiInduction.lean Modified Mathlib/Data/Finset/Piecewise.lean Modified Mathlib/Data/Finset/Pointwise.lean Modified Mathlib/Data/Finset/Powerset.lean Modified Mathlib/Data/Finset/Preimage.lean Modified Mathlib/Data/Finset/Prod.lean Modified Mathlib/Data/Finset/Sigma.lean Modified Mathlib/Data/Finset/Slice.lean Modified Mathlib/Data/Finset/Sort.lean Modified Mathlib/Data/Finset/Sum.lean Modified Mathlib/Data/Finset/Sups.lean Modified Mathlib/Data/Finset/Sym.lean Modified Mathlib/Data/Finset/Union.lean Modified Mathlib/Data/Finsupp/AList.lean Modified Mathlib/Data/Finsupp/Antidiagonal.lean Modified Mathlib/Data/Finsupp/Basic.lean Modified Mathlib/Data/Finsupp/BigOperators.lean Modified Mathlib/Data/Finsupp/Defs.lean Modified Mathlib/Data/Finsupp/Fin.lean Modified Mathlib/Data/Finsupp/Fintype.lean Modified Mathlib/Data/Finsupp/Indicator.lean Modified Mathlib/Data/Finsupp/Interval.lean Modified Mathlib/Data/Finsupp/Lex.lean Modified Mathlib/Data/Finsupp/Multiset.lean Modified Mathlib/Data/Finsupp/NeLocus.lean Modified Mathlib/Data/Finsupp/Notation.lean Modified Mathlib/Data/Finsupp/Order.lean Modified Mathlib/Data/Finsupp/PWO.lean Modified Mathlib/Data/Finsupp/Pointwise.lean Modified Mathlib/Data/Finsupp/ToDFinsupp.lean Modified Mathlib/Data/Finsupp/WellFounded.lean Modified Mathlib/Data/Fintype/Array.lean Modified Mathlib/Data/Fintype/Basic.lean Modified Mathlib/Data/Fintype/BigOperators.lean Modified Mathlib/Data/Fintype/Card.lean Modified Mathlib/Data/Fintype/CardEmbedding.lean Modified Mathlib/Data/Fintype/Fin.lean Modified Mathlib/Data/Fintype/Lattice.lean Modified Mathlib/Data/Fintype/List.lean Modified Mathlib/Data/Fintype/Option.lean Modified Mathlib/Data/Fintype/Order.lean Modified Mathlib/Data/Fintype/Parity.lean Modified Mathlib/Data/Fintype/Perm.lean Modified Mathlib/Data/Fintype/Pi.lean Modified Mathlib/Data/Fintype/Powerset.lean Modified Mathlib/Data/Fintype/Prod.lean Modified Mathlib/Data/Fintype/Quotient.lean Modified Mathlib/Data/Fintype/Sigma.lean Modified Mathlib/Data/Fintype/Sort.lean Modified Mathlib/Data/Fintype/Sum.lean Modified Mathlib/Data/Fintype/Units.lean Modified Mathlib/Data/Fintype/Vector.lean Modified Mathlib/Data/FunLike/Basic.lean Modified Mathlib/Data/FunLike/Embedding.lean Modified Mathlib/Data/FunLike/Equiv.lean Modified Mathlib/Data/FunLike/Fintype.lean Modified Mathlib/Data/HashMap.lean Modified Mathlib/Data/Holor.lean Modified Mathlib/Data/Int/AbsoluteValue.lean Modified Mathlib/Data/Int/Align.lean Modified Mathlib/Data/Int/Associated.lean Modified Mathlib/Data/Int/Bitwise.lean Modified Mathlib/Data/Int/Cast/Basic.lean Modified Mathlib/Data/Int/Cast/Defs.lean Modified Mathlib/Data/Int/Cast/Field.lean Modified Mathlib/Data/Int/Cast/Lemmas.lean Modified Mathlib/Data/Int/Cast/Prod.lean Modified Mathlib/Data/Int/CharZero.lean Modified Mathlib/Data/Int/ConditionallyCompleteOrder.lean Modified Mathlib/Data/Int/Defs.lean Modified Mathlib/Data/Int/GCD.lean Modified Mathlib/Data/Int/Interval.lean Modified Mathlib/Data/Int/LeastGreatest.lean Modified Mathlib/Data/Int/Lemmas.lean Modified Mathlib/Data/Int/Log.lean Modified Mathlib/Data/Int/ModEq.lean Modified Mathlib/Data/Int/NatPrime.lean Modified Mathlib/Data/Int/Order/Lemmas.lean Modified Mathlib/Data/Int/Order/Units.lean Modified Mathlib/Data/Int/Range.lean Modified Mathlib/Data/Int/Sqrt.lean Modified Mathlib/Data/Int/SuccPred.lean Modified Mathlib/Data/LazyList/Basic.lean Modified Mathlib/Data/List/AList.lean Modified Mathlib/Data/List/Basic.lean Modified Mathlib/Data/List/Chain.lean Modified Mathlib/Data/List/Count.lean Modified Mathlib/Data/List/Cycle.lean Modified Mathlib/Data/List/Dedup.lean Modified Mathlib/Data/List/Defs.lean Modified Mathlib/Data/List/Destutter.lean Modified Mathlib/Data/List/DropRight.lean Modified Mathlib/Data/List/Duplicate.lean Modified Mathlib/Data/List/Enum.lean Modified Mathlib/Data/List/FinRange.lean Modified Mathlib/Data/List/Forall2.lean Modified Mathlib/Data/List/GetD.lean Modified Mathlib/Data/List/Indexes.lean Modified Mathlib/Data/List/Infix.lean Modified Mathlib/Data/List/InsertNth.lean Modified Mathlib/Data/List/Intervals.lean Modified Mathlib/Data/List/Join.lean Modified Mathlib/Data/List/Lattice.lean Modified Mathlib/Data/List/Lemmas.lean Modified Mathlib/Data/List/Lex.lean Modified Mathlib/Data/List/MinMax.lean Modified Mathlib/Data/List/NatAntidiagonal.lean Modified Mathlib/Data/List/Nodup.lean Modified Mathlib/Data/List/NodupEquivFin.lean Modified Mathlib/Data/List/OfFn.lean Modified Mathlib/Data/List/Pairwise.lean Modified Mathlib/Data/List/Palindrome.lean Modified Mathlib/Data/List/Perm.lean Modified Mathlib/Data/List/Permutation.lean Modified Mathlib/Data/List/Prime.lean Modified Mathlib/Data/List/ProdSigma.lean Modified Mathlib/Data/List/Range.lean Modified Mathlib/Data/List/ReduceOption.lean Modified Mathlib/Data/List/Rotate.lean Modified Mathlib/Data/List/Sections.lean Modified Mathlib/Data/List/Sigma.lean Modified Mathlib/Data/List/Sort.lean Modified Mathlib/Data/List/Sublists.lean Modified Mathlib/Data/List/TFAE.lean Modified Mathlib/Data/List/ToFinsupp.lean Modified Mathlib/Data/List/Zip.lean Modified Mathlib/Data/Matrix/Auto.lean Modified Mathlib/Data/Matrix/Basic.lean Modified Mathlib/Data/Matrix/Basis.lean Modified Mathlib/Data/Matrix/Block.lean Modified Mathlib/Data/Matrix/CharP.lean Modified Mathlib/Data/Matrix/DMatrix.lean Modified Mathlib/Data/Matrix/DualNumber.lean Modified Mathlib/Data/Matrix/Hadamard.lean Modified Mathlib/Data/Matrix/Invertible.lean Modified Mathlib/Data/Matrix/Kronecker.lean Modified Mathlib/Data/Matrix/Notation.lean Modified Mathlib/Data/Matrix/PEquiv.lean Modified Mathlib/Data/Matrix/Rank.lean Modified Mathlib/Data/Matrix/Reflection.lean Modified Mathlib/Data/Matrix/RowCol.lean Modified Mathlib/Data/Multiset/Antidiagonal.lean Modified Mathlib/Data/Multiset/Basic.lean Modified Mathlib/Data/Multiset/Bind.lean Modified Mathlib/Data/Multiset/Dedup.lean Modified Mathlib/Data/Multiset/FinsetOps.lean Modified Mathlib/Data/Multiset/Fintype.lean Modified Mathlib/Data/Multiset/Fold.lean Modified Mathlib/Data/Multiset/Functor.lean Modified Mathlib/Data/Multiset/Interval.lean Modified Mathlib/Data/Multiset/Lattice.lean Modified Mathlib/Data/Multiset/NatAntidiagonal.lean Modified Mathlib/Data/Multiset/Nodup.lean Modified Mathlib/Data/Multiset/Pi.lean Modified Mathlib/Data/Multiset/Powerset.lean Modified Mathlib/Data/Multiset/Range.lean Modified Mathlib/Data/Multiset/Sections.lean Modified Mathlib/Data/Multiset/Sort.lean Modified Mathlib/Data/Multiset/Sum.lean Modified Mathlib/Data/NNRat/BigOperators.lean Modified Mathlib/Data/NNRat/Defs.lean Modified Mathlib/Data/NNRat/Lemmas.lean Modified Mathlib/Data/NNReal/Basic.lean Modified Mathlib/Data/Nat/Bits.lean Modified Mathlib/Data/Nat/Bitwise.lean Modified Mathlib/Data/Nat/Cast/Basic.lean Modified Mathlib/Data/Nat/Cast/Commute.lean Modified Mathlib/Data/Nat/Cast/Defs.lean Modified Mathlib/Data/Nat/Cast/Field.lean Modified Mathlib/Data/Nat/Cast/NeZero.lean Modified Mathlib/Data/Nat/Cast/Order/Basic.lean Modified Mathlib/Data/Nat/Cast/Order/Field.lean Modified Mathlib/Data/Nat/Cast/Order/Ring.lean Modified Mathlib/Data/Nat/Cast/Prod.lean Modified Mathlib/Data/Nat/Cast/Synonym.lean Modified Mathlib/Data/Nat/Cast/WithTop.lean Modified Mathlib/Data/Nat/Choose/Basic.lean Modified Mathlib/Data/Nat/Choose/Bounds.lean Modified Mathlib/Data/Nat/Choose/Cast.lean Modified Mathlib/Data/Nat/Choose/Central.lean Modified Mathlib/Data/Nat/Choose/Dvd.lean Modified Mathlib/Data/Nat/Choose/Factorization.lean Modified Mathlib/Data/Nat/Choose/Multinomial.lean Modified Mathlib/Data/Nat/Choose/Sum.lean Modified Mathlib/Data/Nat/Choose/Vandermonde.lean Modified Mathlib/Data/Nat/Count.lean Modified Mathlib/Data/Nat/Defs.lean Modified Mathlib/Data/Nat/Digits.lean Modified Mathlib/Data/Nat/Dist.lean Modified Mathlib/Data/Nat/EvenOddRec.lean Modified Mathlib/Data/Nat/Factorial/Basic.lean Modified Mathlib/Data/Nat/Factorial/BigOperators.lean Modified Mathlib/Data/Nat/Factorial/Cast.lean Modified Mathlib/Data/Nat/Factorial/DoubleFactorial.lean Modified Mathlib/Data/Nat/Factorization/Basic.lean Modified Mathlib/Data/Nat/Factorization/PrimePow.lean Modified Mathlib/Data/Nat/Factors.lean Modified Mathlib/Data/Nat/Fib/Basic.lean Modified Mathlib/Data/Nat/Find.lean Modified Mathlib/Data/Nat/GCD/Basic.lean Modified Mathlib/Data/Nat/GCD/BigOperators.lean Modified Mathlib/Data/Nat/Hyperoperation.lean Modified Mathlib/Data/Nat/Lattice.lean Modified Mathlib/Data/Nat/Log.lean Modified Mathlib/Data/Nat/ModEq.lean Modified Mathlib/Data/Nat/Multiplicity.lean Modified Mathlib/Data/Nat/Nth.lean Modified Mathlib/Data/Nat/Order/Lemmas.lean Modified Mathlib/Data/Nat/PSub.lean Modified Mathlib/Data/Nat/Pairing.lean Modified Mathlib/Data/Nat/PartENat.lean Modified Mathlib/Data/Nat/Periodic.lean Modified Mathlib/Data/Nat/Prime/Basic.lean Modified Mathlib/Data/Nat/Prime/Defs.lean Modified Mathlib/Data/Nat/PrimeFin.lean Modified Mathlib/Data/Nat/PrimeNormNum.lean Modified Mathlib/Data/Nat/Set.lean Modified Mathlib/Data/Nat/Size.lean Modified Mathlib/Data/Nat/SqrtNormNum.lean Modified Mathlib/Data/Nat/Squarefree.lean Modified Mathlib/Data/Nat/SuccPred.lean Modified Mathlib/Data/Nat/Totient.lean Modified Mathlib/Data/Nat/Upto.lean Modified Mathlib/Data/Nat/WithBot.lean Modified Mathlib/Data/Num/Basic.lean Modified Mathlib/Data/Num/Bitwise.lean Modified Mathlib/Data/Num/Lemmas.lean Modified Mathlib/Data/Num/Prime.lean Modified Mathlib/Data/Opposite.lean Modified Mathlib/Data/Option/Basic.lean Modified Mathlib/Data/Option/Defs.lean Modified Mathlib/Data/Option/NAry.lean Modified Mathlib/Data/Ordmap/Ordnode.lean Modified Mathlib/Data/Ordmap/Ordset.lean Modified Mathlib/Data/PEquiv.lean Modified Mathlib/Data/PFun.lean Modified Mathlib/Data/PFunctor/Multivariate/Basic.lean Modified Mathlib/Data/PFunctor/Multivariate/M.lean Modified Mathlib/Data/PFunctor/Multivariate/W.lean Modified Mathlib/Data/PFunctor/Univariate/Basic.lean Modified Mathlib/Data/PFunctor/Univariate/M.lean Modified Mathlib/Data/PNat/Basic.lean Modified Mathlib/Data/PNat/Defs.lean Modified Mathlib/Data/PNat/Equiv.lean Modified Mathlib/Data/PNat/Factors.lean Modified Mathlib/Data/PNat/Find.lean Modified Mathlib/Data/PNat/Interval.lean Modified Mathlib/Data/PNat/Prime.lean Modified Mathlib/Data/PNat/Xgcd.lean Modified Mathlib/Data/PSigma/Order.lean Modified Mathlib/Data/Part.lean Modified Mathlib/Data/Pi/Interval.lean Modified Mathlib/Data/Prod/Basic.lean Modified Mathlib/Data/Prod/Lex.lean Modified Mathlib/Data/Prod/PProd.lean Modified Mathlib/Data/Prod/TProd.lean Modified Mathlib/Data/QPF/Multivariate/Basic.lean Modified Mathlib/Data/QPF/Multivariate/Constructions/Cofix.lean Modified Mathlib/Data/QPF/Multivariate/Constructions/Comp.lean Modified Mathlib/Data/QPF/Multivariate/Constructions/Const.lean Modified Mathlib/Data/QPF/Multivariate/Constructions/Fix.lean Modified Mathlib/Data/QPF/Multivariate/Constructions/Prj.lean Modified Mathlib/Data/QPF/Multivariate/Constructions/Quot.lean Modified Mathlib/Data/QPF/Multivariate/Constructions/Sigma.lean Modified Mathlib/Data/QPF/Univariate/Basic.lean Modified Mathlib/Data/Quot.lean Modified Mathlib/Data/Rat/BigOperators.lean Modified Mathlib/Data/Rat/Cast/CharZero.lean Modified Mathlib/Data/Rat/Cast/Defs.lean Modified Mathlib/Data/Rat/Cast/Lemmas.lean Modified Mathlib/Data/Rat/Cast/Order.lean Modified Mathlib/Data/Rat/Defs.lean Modified Mathlib/Data/Rat/Denumerable.lean Modified Mathlib/Data/Rat/Encodable.lean Modified Mathlib/Data/Rat/Floor.lean Modified Mathlib/Data/Rat/Init.lean Modified Mathlib/Data/Rat/Lemmas.lean Modified Mathlib/Data/Rat/Sqrt.lean Modified Mathlib/Data/Rat/Star.lean Modified Mathlib/Data/Rbmap/Basic.lean Modified Mathlib/Data/Rbmap/Default.lean Modified Mathlib/Data/Rbtree/Basic.lean Modified Mathlib/Data/Rbtree/DefaultLt.lean Modified Mathlib/Data/Rbtree/Find.lean Modified Mathlib/Data/Rbtree/Init.lean Modified Mathlib/Data/Rbtree/Insert.lean Modified Mathlib/Data/Rbtree/Main.lean Modified Mathlib/Data/Rbtree/MinMax.lean Modified Mathlib/Data/Real/Archimedean.lean Modified Mathlib/Data/Real/Basic.lean Modified Mathlib/Data/Real/Cardinality.lean Modified Mathlib/Data/Real/ConjExponents.lean Modified Mathlib/Data/Real/ENatENNReal.lean Modified Mathlib/Data/Real/EReal.lean Modified Mathlib/Data/Real/GoldenRatio.lean Modified Mathlib/Data/Real/Hyperreal.lean Modified Mathlib/Data/Real/Irrational.lean Modified Mathlib/Data/Real/Pi/Bounds.lean Modified Mathlib/Data/Real/Pi/Leibniz.lean Modified Mathlib/Data/Real/Pi/Wallis.lean Modified Mathlib/Data/Real/Pointwise.lean Modified Mathlib/Data/Real/Sign.lean Modified Mathlib/Data/Real/Sqrt.lean Modified Mathlib/Data/Rel.lean Modified Mathlib/Data/Semiquot.lean Modified Mathlib/Data/Seq/Computation.lean Modified Mathlib/Data/Seq/Parallel.lean Modified Mathlib/Data/Seq/Seq.lean Modified Mathlib/Data/Seq/WSeq.lean Modified Mathlib/Data/Set/Accumulate.lean Modified Mathlib/Data/Set/Basic.lean Modified Mathlib/Data/Set/BoolIndicator.lean Modified Mathlib/Data/Set/Card.lean Modified Mathlib/Data/Set/Constructions.lean Modified Mathlib/Data/Set/Countable.lean Modified Mathlib/Data/Set/Defs.lean Modified Mathlib/Data/Set/Enumerate.lean Modified Mathlib/Data/Set/Equitable.lean Modified Mathlib/Data/Set/Finite.lean Modified Mathlib/Data/Set/Function.lean Modified Mathlib/Data/Set/Functor.lean Modified Mathlib/Data/Set/Image.lean Modified Mathlib/Data/Set/Lattice.lean Modified Mathlib/Data/Set/List.lean Modified Mathlib/Data/Set/MulAntidiagonal.lean Modified Mathlib/Data/Set/NAry.lean Modified Mathlib/Data/Set/Opposite.lean Modified Mathlib/Data/Set/Pairwise/Basic.lean Modified Mathlib/Data/Set/Pairwise/Lattice.lean Modified Mathlib/Data/Set/Pointwise/Basic.lean Modified Mathlib/Data/Set/Pointwise/BigOperators.lean Modified Mathlib/Data/Set/Pointwise/BoundedMul.lean Modified Mathlib/Data/Set/Pointwise/Finite.lean Modified Mathlib/Data/Set/Pointwise/Interval.lean Modified Mathlib/Data/Set/Pointwise/Iterate.lean Modified Mathlib/Data/Set/Pointwise/ListOfFn.lean Modified Mathlib/Data/Set/Pointwise/SMul.lean Modified Mathlib/Data/Set/Pointwise/Support.lean Modified Mathlib/Data/Set/Prod.lean Modified Mathlib/Data/Set/Semiring.lean Modified Mathlib/Data/Set/Sigma.lean Modified Mathlib/Data/Set/Subsingleton.lean Modified Mathlib/Data/Set/Sups.lean Modified Mathlib/Data/Set/UnionLift.lean Modified Mathlib/Data/SetLike/Basic.lean Modified Mathlib/Data/SetLike/Fintype.lean Modified Mathlib/Data/Setoid/Basic.lean Modified Mathlib/Data/Setoid/Partition.lean Modified Mathlib/Data/Sigma/Basic.lean Modified Mathlib/Data/Sigma/Interval.lean Modified Mathlib/Data/Sigma/Lex.lean Modified Mathlib/Data/Sigma/Order.lean Modified Mathlib/Data/Sign.lean Modified Mathlib/Data/Stream/Defs.lean Modified Mathlib/Data/Stream/Init.lean Modified Mathlib/Data/String/Basic.lean Modified Mathlib/Data/String/Defs.lean Modified Mathlib/Data/Subtype.lean Modified Mathlib/Data/Sum/Basic.lean Modified Mathlib/Data/Sum/Interval.lean Modified Mathlib/Data/Sum/Order.lean Modified Mathlib/Data/Sym/Basic.lean Modified Mathlib/Data/Sym/Card.lean Modified Mathlib/Data/Sym/Sym2.lean Modified Mathlib/Data/Tree/Basic.lean Modified Mathlib/Data/Tree/Get.lean Modified Mathlib/Data/TwoPointing.lean Modified Mathlib/Data/TypeVec.lean Modified Mathlib/Data/ULift.lean Modified Mathlib/Data/Vector/Basic.lean Modified Mathlib/Data/Vector/Defs.lean Modified Mathlib/Data/Vector/Mem.lean Modified Mathlib/Data/Vector/Zip.lean Modified Mathlib/Data/Vector3.lean Modified Mathlib/Data/W/Basic.lean Modified Mathlib/Data/W/Cardinal.lean Modified Mathlib/Data/W/Constructions.lean Modified Mathlib/Data/ZMod/Algebra.lean Modified Mathlib/Data/ZMod/Basic.lean Modified Mathlib/Data/ZMod/Coprime.lean Modified Mathlib/Data/ZMod/Defs.lean Modified Mathlib/Data/ZMod/Parity.lean Modified Mathlib/Data/ZMod/Quotient.lean Modified Mathlib/Deprecated/Group.lean Modified Mathlib/Deprecated/Ring.lean Modified Mathlib/Deprecated/Subfield.lean Modified Mathlib/Deprecated/Subgroup.lean Modified Mathlib/Deprecated/Submonoid.lean Modified Mathlib/Deprecated/Subring.lean Modified Mathlib/Dynamics/Circle/RotationNumber/TranslationNumber.lean Modified Mathlib/Dynamics/Ergodic/AddCircle.lean Modified Mathlib/Dynamics/Ergodic/Conservative.lean Modified Mathlib/Dynamics/Ergodic/Ergodic.lean Modified Mathlib/Dynamics/Ergodic/MeasurePreserving.lean Modified Mathlib/Dynamics/FixedPoints/Basic.lean Modified Mathlib/Dynamics/FixedPoints/Topology.lean Modified Mathlib/Dynamics/Flow.lean Modified Mathlib/Dynamics/Minimal.lean Modified Mathlib/Dynamics/OmegaLimit.lean Modified Mathlib/Dynamics/PeriodicPts.lean Modified Mathlib/FieldTheory/AbelRuffini.lean Modified Mathlib/FieldTheory/Adjoin.lean Modified Mathlib/FieldTheory/AxGrothendieck.lean Modified Mathlib/FieldTheory/Cardinality.lean Modified Mathlib/FieldTheory/ChevalleyWarning.lean Modified Mathlib/FieldTheory/Extension.lean Modified Mathlib/FieldTheory/Finite/Basic.lean Modified Mathlib/FieldTheory/Finite/GaloisField.lean Modified Mathlib/FieldTheory/Finite/Polynomial.lean Modified Mathlib/FieldTheory/Finite/Trace.lean Modified Mathlib/FieldTheory/Finiteness.lean Modified Mathlib/FieldTheory/Fixed.lean Modified Mathlib/FieldTheory/Galois.lean Modified Mathlib/FieldTheory/IntermediateField.lean Modified Mathlib/FieldTheory/IsAlgClosed/AlgebraicClosure.lean Modified Mathlib/FieldTheory/IsAlgClosed/Basic.lean Modified Mathlib/FieldTheory/IsAlgClosed/Classification.lean Modified Mathlib/FieldTheory/IsAlgClosed/Spectrum.lean Modified Mathlib/FieldTheory/KrullTopology.lean Modified Mathlib/FieldTheory/Laurent.lean Modified Mathlib/FieldTheory/Minpoly/Basic.lean Modified Mathlib/FieldTheory/Minpoly/Field.lean Modified Mathlib/FieldTheory/Minpoly/IsIntegrallyClosed.lean Modified Mathlib/FieldTheory/MvPolynomial.lean Modified Mathlib/FieldTheory/Normal.lean Modified Mathlib/FieldTheory/NormalClosure.lean Modified Mathlib/FieldTheory/Perfect.lean Modified Mathlib/FieldTheory/PerfectClosure.lean Modified Mathlib/FieldTheory/PolynomialGaloisGroup.lean Modified Mathlib/FieldTheory/PrimitiveElement.lean Modified Mathlib/FieldTheory/RatFunc/AsPolynomial.lean Modified Mathlib/FieldTheory/RatFunc/Basic.lean Modified Mathlib/FieldTheory/RatFunc/Defs.lean Modified Mathlib/FieldTheory/RatFunc/Degree.lean Modified Mathlib/FieldTheory/Separable.lean Modified Mathlib/FieldTheory/SplittingField/Construction.lean Modified Mathlib/FieldTheory/SplittingField/IsSplittingField.lean Modified Mathlib/FieldTheory/Tower.lean Modified Mathlib/Geometry/Euclidean/Angle/Oriented/Affine.lean Modified Mathlib/Geometry/Euclidean/Angle/Oriented/Basic.lean Modified Mathlib/Geometry/Euclidean/Angle/Oriented/RightAngle.lean Modified Mathlib/Geometry/Euclidean/Angle/Oriented/Rotation.lean Modified Mathlib/Geometry/Euclidean/Angle/Sphere.lean Modified Mathlib/Geometry/Euclidean/Angle/Unoriented/Affine.lean Modified Mathlib/Geometry/Euclidean/Angle/Unoriented/Basic.lean Modified Mathlib/Geometry/Euclidean/Angle/Unoriented/Conformal.lean Modified Mathlib/Geometry/Euclidean/Angle/Unoriented/RightAngle.lean Modified Mathlib/Geometry/Euclidean/Basic.lean Modified Mathlib/Geometry/Euclidean/Circumcenter.lean Modified Mathlib/Geometry/Euclidean/Inversion/Basic.lean Modified Mathlib/Geometry/Euclidean/MongePoint.lean Modified Mathlib/Geometry/Euclidean/PerpBisector.lean Modified Mathlib/Geometry/Euclidean/Sphere/Basic.lean Modified Mathlib/Geometry/Euclidean/Sphere/Power.lean Modified Mathlib/Geometry/Euclidean/Sphere/Ptolemy.lean Modified Mathlib/Geometry/Euclidean/Sphere/SecondInter.lean Modified Mathlib/Geometry/Euclidean/Triangle.lean Modified Mathlib/Geometry/Manifold/Algebra/LeftInvariantDerivation.lean Modified Mathlib/Geometry/Manifold/Algebra/LieGroup.lean Modified Mathlib/Geometry/Manifold/Algebra/Monoid.lean Modified Mathlib/Geometry/Manifold/Algebra/SmoothFunctions.lean Modified Mathlib/Geometry/Manifold/Algebra/Structures.lean Modified Mathlib/Geometry/Manifold/BumpFunction.lean Modified Mathlib/Geometry/Manifold/ChartedSpace.lean Modified Mathlib/Geometry/Manifold/Complex.lean Modified Mathlib/Geometry/Manifold/ConformalGroupoid.lean Modified Mathlib/Geometry/Manifold/ContMDiff/Atlas.lean Modified Mathlib/Geometry/Manifold/ContMDiff/Basic.lean Modified Mathlib/Geometry/Manifold/ContMDiff/Defs.lean Modified Mathlib/Geometry/Manifold/ContMDiff/NormedSpace.lean Modified Mathlib/Geometry/Manifold/ContMDiff/Product.lean Modified Mathlib/Geometry/Manifold/ContMDiffMFDeriv.lean Modified Mathlib/Geometry/Manifold/ContMDiffMap.lean Modified Mathlib/Geometry/Manifold/DerivationBundle.lean Modified Mathlib/Geometry/Manifold/Diffeomorph.lean Modified Mathlib/Geometry/Manifold/Instances/Real.lean Modified Mathlib/Geometry/Manifold/Instances/Sphere.lean Modified Mathlib/Geometry/Manifold/Instances/UnitsOfNormedAlgebra.lean Modified Mathlib/Geometry/Manifold/LocalInvariantProperties.lean Modified Mathlib/Geometry/Manifold/MFDeriv/Atlas.lean Modified Mathlib/Geometry/Manifold/MFDeriv/Basic.lean Modified Mathlib/Geometry/Manifold/MFDeriv/Defs.lean Modified Mathlib/Geometry/Manifold/MFDeriv/FDeriv.lean Modified Mathlib/Geometry/Manifold/MFDeriv/SpecificFunctions.lean Modified Mathlib/Geometry/Manifold/MFDeriv/UniqueDifferential.lean Modified Mathlib/Geometry/Manifold/Metrizable.lean Modified Mathlib/Geometry/Manifold/PartitionOfUnity.lean Modified Mathlib/Geometry/Manifold/Sheaf/Basic.lean Modified Mathlib/Geometry/Manifold/SmoothManifoldWithCorners.lean Modified Mathlib/Geometry/Manifold/VectorBundle/Basic.lean Modified Mathlib/Geometry/Manifold/VectorBundle/FiberwiseLinear.lean Modified Mathlib/Geometry/Manifold/VectorBundle/Hom.lean Modified Mathlib/Geometry/Manifold/VectorBundle/Pullback.lean Modified Mathlib/Geometry/Manifold/VectorBundle/SmoothSection.lean Modified Mathlib/Geometry/Manifold/VectorBundle/Tangent.lean Modified Mathlib/Geometry/Manifold/WhitneyEmbedding.lean Modified Mathlib/Geometry/RingedSpace/Basic.lean Modified Mathlib/Geometry/RingedSpace/LocallyRingedSpace.lean Modified Mathlib/Geometry/RingedSpace/LocallyRingedSpace/HasColimits.lean Modified Mathlib/Geometry/RingedSpace/OpenImmersion.lean Modified Mathlib/Geometry/RingedSpace/PresheafedSpace.lean Modified Mathlib/Geometry/RingedSpace/PresheafedSpace/Gluing.lean Modified Mathlib/Geometry/RingedSpace/PresheafedSpace/HasColimits.lean Modified Mathlib/Geometry/RingedSpace/SheafedSpace.lean Modified Mathlib/Geometry/RingedSpace/Stalks.lean Modified Mathlib/GroupTheory/Abelianization.lean Modified Mathlib/GroupTheory/Archimedean.lean Modified Mathlib/GroupTheory/Commensurable.lean Modified Mathlib/GroupTheory/Commutator.lean Modified Mathlib/GroupTheory/CommutingProbability.lean Modified Mathlib/GroupTheory/Complement.lean Modified Mathlib/GroupTheory/Congruence/Basic.lean Modified Mathlib/GroupTheory/CoprodI.lean Modified Mathlib/GroupTheory/Coset.lean Modified Mathlib/GroupTheory/Divisible.lean Modified Mathlib/GroupTheory/DoubleCoset.lean Modified Mathlib/GroupTheory/EckmannHilton.lean Modified Mathlib/GroupTheory/Exponent.lean Modified Mathlib/GroupTheory/FiniteAbelian.lean Modified Mathlib/GroupTheory/Finiteness.lean Modified Mathlib/GroupTheory/FreeAbelianGroup.lean Modified Mathlib/GroupTheory/FreeAbelianGroupFinsupp.lean Modified Mathlib/GroupTheory/FreeGroup/Basic.lean Modified Mathlib/GroupTheory/FreeGroup/IsFreeGroup.lean Modified Mathlib/GroupTheory/FreeGroup/NielsenSchreier.lean Modified Mathlib/GroupTheory/GroupAction/Basic.lean Modified Mathlib/GroupTheory/GroupAction/BigOperators.lean Modified Mathlib/GroupTheory/GroupAction/ConjAct.lean Modified Mathlib/GroupTheory/GroupAction/Embedding.lean Modified Mathlib/GroupTheory/GroupAction/FixingSubgroup.lean Modified Mathlib/GroupTheory/GroupAction/Group.lean Modified Mathlib/GroupTheory/GroupAction/Hom.lean Modified Mathlib/GroupTheory/GroupAction/Opposite.lean Modified Mathlib/GroupTheory/GroupAction/Pi.lean Modified Mathlib/GroupTheory/GroupAction/Pointwise.lean Modified Mathlib/GroupTheory/GroupAction/Prod.lean Modified Mathlib/GroupTheory/GroupAction/Quotient.lean Modified Mathlib/GroupTheory/GroupAction/Ring.lean Modified Mathlib/GroupTheory/GroupAction/SubMulAction.lean Modified Mathlib/GroupTheory/GroupAction/SubMulAction/Pointwise.lean Modified Mathlib/GroupTheory/GroupAction/Support.lean Modified Mathlib/GroupTheory/GroupAction/Units.lean Modified Mathlib/GroupTheory/Index.lean Modified Mathlib/GroupTheory/MonoidLocalization/Basic.lean Modified Mathlib/GroupTheory/MonoidLocalization/MonoidWithZero.lean Modified Mathlib/GroupTheory/MonoidLocalization/Order.lean Modified Mathlib/GroupTheory/Nilpotent.lean Modified Mathlib/GroupTheory/NoncommPiCoprod.lean Modified Mathlib/GroupTheory/OrderOfElement.lean Modified Mathlib/GroupTheory/PGroup.lean Modified Mathlib/GroupTheory/Perm/Basic.lean Modified Mathlib/GroupTheory/Perm/Closure.lean Modified Mathlib/GroupTheory/Perm/Cycle/Basic.lean Modified Mathlib/GroupTheory/Perm/Cycle/Concrete.lean Modified Mathlib/GroupTheory/Perm/Cycle/Factors.lean Modified Mathlib/GroupTheory/Perm/Cycle/Type.lean Modified Mathlib/GroupTheory/Perm/Fin.lean Modified Mathlib/GroupTheory/Perm/Finite.lean Modified Mathlib/GroupTheory/Perm/List.lean Modified Mathlib/GroupTheory/Perm/Option.lean Modified Mathlib/GroupTheory/Perm/Sign.lean Modified Mathlib/GroupTheory/Perm/Subgroup.lean Modified Mathlib/GroupTheory/Perm/Support.lean Modified Mathlib/GroupTheory/Perm/ViaEmbedding.lean Modified Mathlib/GroupTheory/PresentedGroup.lean Modified Mathlib/GroupTheory/QuotientGroup.lean Modified Mathlib/GroupTheory/Schreier.lean Modified Mathlib/GroupTheory/SchurZassenhaus.lean Modified Mathlib/GroupTheory/SemidirectProduct.lean Modified Mathlib/GroupTheory/Solvable.lean Modified Mathlib/GroupTheory/SpecificGroups/Alternating.lean Modified Mathlib/GroupTheory/SpecificGroups/Cyclic.lean Modified Mathlib/GroupTheory/SpecificGroups/Dihedral.lean Modified Mathlib/GroupTheory/SpecificGroups/Quaternion.lean Modified Mathlib/GroupTheory/Subgroup/Center.lean Modified Mathlib/GroupTheory/Subgroup/Centralizer.lean Modified Mathlib/GroupTheory/Subgroup/Saturated.lean Modified Mathlib/GroupTheory/Subgroup/Simple.lean Modified Mathlib/GroupTheory/Submonoid/Center.lean Modified Mathlib/GroupTheory/Submonoid/Centralizer.lean Modified Mathlib/GroupTheory/Submonoid/Inverses.lean Modified Mathlib/GroupTheory/Subsemigroup/Center.lean Modified Mathlib/GroupTheory/Subsemigroup/Centralizer.lean Modified Mathlib/GroupTheory/Sylow.lean Modified Mathlib/GroupTheory/Torsion.lean Modified Mathlib/GroupTheory/Transfer.lean Modified Mathlib/InformationTheory/Hamming.lean Modified Mathlib/Init/Algebra/Classes.lean Deleted Mathlib/Init/Align.lean Modified Mathlib/Init/Classes/Order.lean Modified Mathlib/Init/Classical.lean Modified Mathlib/Init/Core.lean Modified Mathlib/Init/Data/Buffer/Parser.lean Modified Mathlib/Init/Data/Int/DivMod.lean Modified Mathlib/Init/Data/Int/Lemmas.lean Modified Mathlib/Init/Data/Int/Order.lean Modified Mathlib/Init/Data/List/Basic.lean Modified Mathlib/Init/Data/List/Instances.lean Modified Mathlib/Init/Data/List/Lemmas.lean Modified Mathlib/Init/Data/Nat/Basic.lean Modified Mathlib/Init/Data/Nat/Div.lean Modified Mathlib/Init/Data/Nat/GCD.lean Modified Mathlib/Init/Data/Nat/Lemmas.lean Modified Mathlib/Init/Data/Option/Basic.lean Modified Mathlib/Init/Data/Option/Init/Lemmas.lean Modified Mathlib/Init/Data/Option/Lemmas.lean Modified Mathlib/Init/Data/Ordering/Basic.lean Modified Mathlib/Init/Data/Ordering/Lemmas.lean Modified Mathlib/Init/Data/Quot.lean Modified Mathlib/Init/Data/Rat/Basic.lean Modified Mathlib/Init/Data/Sigma/Lex.lean Modified Mathlib/Init/Logic.lean Modified Mathlib/Init/Meta/WellFoundedTactics.lean Modified Mathlib/Init/Order/Defs.lean Modified Mathlib/Init/Order/LinearOrder.lean Modified Mathlib/Init/Quot.lean Modified Mathlib/Init/Set.lean Modified Mathlib/Lean/Json.lean Modified Mathlib/Lean/Thunk.lean Modified Mathlib/LinearAlgebra/AffineSpace/AffineEquiv.lean Modified Mathlib/LinearAlgebra/AffineSpace/AffineMap.lean Modified Mathlib/LinearAlgebra/AffineSpace/AffineSubspace.lean Modified Mathlib/LinearAlgebra/AffineSpace/Basic.lean Modified Mathlib/LinearAlgebra/AffineSpace/Basis.lean Modified Mathlib/LinearAlgebra/AffineSpace/Combination.lean Modified Mathlib/LinearAlgebra/AffineSpace/FiniteDimensional.lean Modified Mathlib/LinearAlgebra/AffineSpace/Independent.lean Modified Mathlib/LinearAlgebra/AffineSpace/Matrix.lean Modified Mathlib/LinearAlgebra/AffineSpace/Midpoint.lean Modified Mathlib/LinearAlgebra/AffineSpace/MidpointZero.lean Modified Mathlib/LinearAlgebra/AffineSpace/Ordered.lean Modified Mathlib/LinearAlgebra/AffineSpace/Pointwise.lean Modified Mathlib/LinearAlgebra/AffineSpace/Restrict.lean Modified Mathlib/LinearAlgebra/AffineSpace/Slope.lean Modified Mathlib/LinearAlgebra/Alternating/Basic.lean Modified Mathlib/LinearAlgebra/Alternating/DomCoprod.lean Modified Mathlib/LinearAlgebra/AnnihilatingPolynomial.lean Modified Mathlib/LinearAlgebra/Basis.lean Modified Mathlib/LinearAlgebra/Basis/Bilinear.lean Modified Mathlib/LinearAlgebra/Basis/VectorSpace.lean Modified Mathlib/LinearAlgebra/BilinearForm/Basic.lean Modified Mathlib/LinearAlgebra/BilinearForm/Hom.lean Modified Mathlib/LinearAlgebra/BilinearForm/Orthogonal.lean Modified Mathlib/LinearAlgebra/BilinearForm/Properties.lean Modified Mathlib/LinearAlgebra/BilinearForm/TensorProduct.lean Modified Mathlib/LinearAlgebra/BilinearMap.lean Modified Mathlib/LinearAlgebra/Charpoly/Basic.lean Modified Mathlib/LinearAlgebra/Charpoly/ToMatrix.lean Modified Mathlib/LinearAlgebra/CliffordAlgebra/Basic.lean Modified Mathlib/LinearAlgebra/CliffordAlgebra/Conjugation.lean Modified Mathlib/LinearAlgebra/CliffordAlgebra/Contraction.lean Modified Mathlib/LinearAlgebra/CliffordAlgebra/Equivs.lean Modified Mathlib/LinearAlgebra/CliffordAlgebra/Even.lean Modified Mathlib/LinearAlgebra/CliffordAlgebra/EvenEquiv.lean Modified Mathlib/LinearAlgebra/CliffordAlgebra/Fold.lean Modified Mathlib/LinearAlgebra/CliffordAlgebra/Grading.lean Modified Mathlib/LinearAlgebra/CliffordAlgebra/Inversion.lean Modified Mathlib/LinearAlgebra/CliffordAlgebra/Star.lean Modified Mathlib/LinearAlgebra/Coevaluation.lean Modified Mathlib/LinearAlgebra/Contraction.lean Modified Mathlib/LinearAlgebra/CrossProduct.lean Modified Mathlib/LinearAlgebra/DFinsupp.lean Modified Mathlib/LinearAlgebra/Determinant.lean Modified Mathlib/LinearAlgebra/Dimension/Basic.lean Modified Mathlib/LinearAlgebra/Dimension/Constructions.lean Modified Mathlib/LinearAlgebra/Dimension/DivisionRing.lean Modified Mathlib/LinearAlgebra/Dimension/Finite.lean Modified Mathlib/LinearAlgebra/Dimension/Finrank.lean Modified Mathlib/LinearAlgebra/Dimension/Free.lean Modified Mathlib/LinearAlgebra/Dimension/FreeAndStrongRankCondition.lean Modified Mathlib/LinearAlgebra/Dimension/LinearMap.lean Modified Mathlib/LinearAlgebra/Dimension/RankNullity.lean Modified Mathlib/LinearAlgebra/Dimension/StrongRankCondition.lean Modified Mathlib/LinearAlgebra/DirectSum/Finsupp.lean Modified Mathlib/LinearAlgebra/DirectSum/TensorProduct.lean Modified Mathlib/LinearAlgebra/Dual.lean Modified Mathlib/LinearAlgebra/Eigenspace/Basic.lean Modified Mathlib/LinearAlgebra/Eigenspace/Minpoly.lean Modified Mathlib/LinearAlgebra/Eigenspace/Triangularizable.lean Modified Mathlib/LinearAlgebra/ExteriorAlgebra/Basic.lean Modified Mathlib/LinearAlgebra/ExteriorAlgebra/Grading.lean Modified Mathlib/LinearAlgebra/ExteriorAlgebra/OfAlternating.lean Modified Mathlib/LinearAlgebra/FiniteDimensional.lean Modified Mathlib/LinearAlgebra/FiniteDimensional/Defs.lean Modified Mathlib/LinearAlgebra/Finsupp.lean Modified Mathlib/LinearAlgebra/FinsuppVectorSpace.lean Modified Mathlib/LinearAlgebra/FreeAlgebra.lean Modified Mathlib/LinearAlgebra/FreeModule/Basic.lean Modified Mathlib/LinearAlgebra/FreeModule/Determinant.lean Modified Mathlib/LinearAlgebra/FreeModule/Finite/Basic.lean Modified Mathlib/LinearAlgebra/FreeModule/Finite/Matrix.lean Modified Mathlib/LinearAlgebra/FreeModule/IdealQuotient.lean Modified Mathlib/LinearAlgebra/FreeModule/Norm.lean Modified Mathlib/LinearAlgebra/FreeModule/PID.lean Modified Mathlib/LinearAlgebra/FreeModule/StrongRankCondition.lean Modified Mathlib/LinearAlgebra/GeneralLinearGroup.lean Modified Mathlib/LinearAlgebra/InvariantBasisNumber.lean Modified Mathlib/LinearAlgebra/Isomorphisms.lean Modified Mathlib/LinearAlgebra/Lagrange.lean Modified Mathlib/LinearAlgebra/LinearIndependent.lean Modified Mathlib/LinearAlgebra/LinearPMap.lean Modified Mathlib/LinearAlgebra/Matrix/AbsoluteValue.lean Modified Mathlib/LinearAlgebra/Matrix/Adjugate.lean Modified Mathlib/LinearAlgebra/Matrix/Basis.lean Modified Mathlib/LinearAlgebra/Matrix/BilinearForm.lean Modified Mathlib/LinearAlgebra/Matrix/Block.lean Modified Mathlib/LinearAlgebra/Matrix/Charpoly/Basic.lean Modified Mathlib/LinearAlgebra/Matrix/Charpoly/Coeff.lean Modified Mathlib/LinearAlgebra/Matrix/Charpoly/Eigs.lean Modified Mathlib/LinearAlgebra/Matrix/Charpoly/FiniteField.lean Modified Mathlib/LinearAlgebra/Matrix/Charpoly/LinearMap.lean Modified Mathlib/LinearAlgebra/Matrix/Charpoly/Minpoly.lean Modified Mathlib/LinearAlgebra/Matrix/Circulant.lean Modified Mathlib/LinearAlgebra/Matrix/Determinant/Basic.lean Modified Mathlib/LinearAlgebra/Matrix/Diagonal.lean Modified Mathlib/LinearAlgebra/Matrix/DotProduct.lean Modified Mathlib/LinearAlgebra/Matrix/Dual.lean Modified Mathlib/LinearAlgebra/Matrix/FiniteDimensional.lean Modified Mathlib/LinearAlgebra/Matrix/GeneralLinearGroup/Basic.lean Modified Mathlib/LinearAlgebra/Matrix/GeneralLinearGroup/Defs.lean Modified Mathlib/LinearAlgebra/Matrix/Hermitian.lean Modified Mathlib/LinearAlgebra/Matrix/InvariantBasisNumber.lean Modified Mathlib/LinearAlgebra/Matrix/IsDiag.lean Modified Mathlib/LinearAlgebra/Matrix/LDL.lean Modified Mathlib/LinearAlgebra/Matrix/MvPolynomial.lean Modified Mathlib/LinearAlgebra/Matrix/Nondegenerate.lean Modified Mathlib/LinearAlgebra/Matrix/NonsingularInverse.lean Modified Mathlib/LinearAlgebra/Matrix/Orthogonal.lean Modified Mathlib/LinearAlgebra/Matrix/Permutation.lean Modified Mathlib/LinearAlgebra/Matrix/Polynomial.lean Modified Mathlib/LinearAlgebra/Matrix/PosDef.lean Modified Mathlib/LinearAlgebra/Matrix/Reindex.lean Modified Mathlib/LinearAlgebra/Matrix/SchurComplement.lean Modified Mathlib/LinearAlgebra/Matrix/SesquilinearForm.lean Modified Mathlib/LinearAlgebra/Matrix/SpecialLinearGroup.lean Modified Mathlib/LinearAlgebra/Matrix/Spectrum.lean Modified Mathlib/LinearAlgebra/Matrix/Symmetric.lean Modified Mathlib/LinearAlgebra/Matrix/ToLin.lean Modified Mathlib/LinearAlgebra/Matrix/ToLinearEquiv.lean Modified Mathlib/LinearAlgebra/Matrix/Trace.lean Modified Mathlib/LinearAlgebra/Matrix/Transvection.lean Modified Mathlib/LinearAlgebra/Matrix/ZPow.lean Modified Mathlib/LinearAlgebra/Multilinear/Basic.lean Modified Mathlib/LinearAlgebra/Multilinear/Basis.lean Modified Mathlib/LinearAlgebra/Multilinear/FiniteDimensional.lean Modified Mathlib/LinearAlgebra/Multilinear/TensorProduct.lean Modified Mathlib/LinearAlgebra/Orientation.lean Modified Mathlib/LinearAlgebra/Pi.lean Modified Mathlib/LinearAlgebra/PiTensorProduct.lean Modified Mathlib/LinearAlgebra/Prod.lean Modified Mathlib/LinearAlgebra/Projection.lean Modified Mathlib/LinearAlgebra/Projectivization/Basic.lean Modified Mathlib/LinearAlgebra/Projectivization/Independence.lean Modified Mathlib/LinearAlgebra/Projectivization/Subspace.lean Modified Mathlib/LinearAlgebra/QuadraticForm/Basic.lean Modified Mathlib/LinearAlgebra/QuadraticForm/Complex.lean Modified Mathlib/LinearAlgebra/QuadraticForm/Dual.lean Modified Mathlib/LinearAlgebra/QuadraticForm/IsometryEquiv.lean Modified Mathlib/LinearAlgebra/QuadraticForm/Prod.lean Modified Mathlib/LinearAlgebra/QuadraticForm/Real.lean Modified Mathlib/LinearAlgebra/Quotient.lean Modified Mathlib/LinearAlgebra/QuotientPi.lean Modified Mathlib/LinearAlgebra/Ray.lean Modified Mathlib/LinearAlgebra/SModEq.lean Modified Mathlib/LinearAlgebra/SesquilinearForm.lean Modified Mathlib/LinearAlgebra/Span.lean Modified Mathlib/LinearAlgebra/StdBasis.lean Modified Mathlib/LinearAlgebra/SymplecticGroup.lean Modified Mathlib/LinearAlgebra/TensorAlgebra/Basic.lean Modified Mathlib/LinearAlgebra/TensorAlgebra/Grading.lean Modified Mathlib/LinearAlgebra/TensorAlgebra/ToTensorPower.lean Modified Mathlib/LinearAlgebra/TensorPower.lean Modified Mathlib/LinearAlgebra/TensorProduct/Basic.lean Modified Mathlib/LinearAlgebra/TensorProduct/Basis.lean Modified Mathlib/LinearAlgebra/TensorProduct/Matrix.lean Modified Mathlib/LinearAlgebra/TensorProduct/Tower.lean Modified Mathlib/LinearAlgebra/Trace.lean Modified Mathlib/LinearAlgebra/UnitaryGroup.lean Modified Mathlib/LinearAlgebra/Vandermonde.lean Modified Mathlib/Logic/Basic.lean Modified Mathlib/Logic/Denumerable.lean Modified Mathlib/Logic/Embedding/Basic.lean Modified Mathlib/Logic/Embedding/Set.lean Modified Mathlib/Logic/Encodable/Basic.lean Modified Mathlib/Logic/Encodable/Lattice.lean Modified Mathlib/Logic/Equiv/Array.lean Modified Mathlib/Logic/Equiv/Basic.lean Modified Mathlib/Logic/Equiv/Defs.lean Modified Mathlib/Logic/Equiv/Embedding.lean Modified Mathlib/Logic/Equiv/Fin.lean Modified Mathlib/Logic/Equiv/Fintype.lean Modified Mathlib/Logic/Equiv/Functor.lean Modified Mathlib/Logic/Equiv/List.lean Modified Mathlib/Logic/Equiv/Nat.lean Modified Mathlib/Logic/Equiv/Option.lean Modified Mathlib/Logic/Equiv/PartialEquiv.lean Modified Mathlib/Logic/Equiv/Set.lean Modified Mathlib/Logic/Equiv/TransferInstance.lean Modified Mathlib/Logic/Function/Basic.lean Modified Mathlib/Logic/Function/Conjugate.lean Modified Mathlib/Logic/Function/Defs.lean Modified Mathlib/Logic/Function/Iterate.lean Modified Mathlib/Logic/Function/OfArity.lean Modified Mathlib/Logic/Function/ULift.lean Modified Mathlib/Logic/Hydra.lean Modified Mathlib/Logic/IsEmpty.lean Modified Mathlib/Logic/Lemmas.lean Modified Mathlib/Logic/Nonempty.lean Modified Mathlib/Logic/Nontrivial/Basic.lean Modified Mathlib/Logic/Nontrivial/Defs.lean Modified Mathlib/Logic/Pairwise.lean Modified Mathlib/Logic/Relation.lean Modified Mathlib/Logic/Relator.lean Modified Mathlib/Logic/Small/Basic.lean Modified Mathlib/Logic/Small/Defs.lean Modified Mathlib/Logic/Small/List.lean Modified Mathlib/Logic/Small/Set.lean Modified Mathlib/Logic/Unique.lean Modified Mathlib/MeasureTheory/Category/MeasCat.lean Modified Mathlib/MeasureTheory/Constructions/BorelSpace/Basic.lean Modified Mathlib/MeasureTheory/Constructions/BorelSpace/Complex.lean Modified Mathlib/MeasureTheory/Constructions/BorelSpace/ContinuousLinearMap.lean Modified Mathlib/MeasureTheory/Constructions/BorelSpace/Metric.lean Modified Mathlib/MeasureTheory/Constructions/BorelSpace/Metrizable.lean Modified Mathlib/MeasureTheory/Constructions/BorelSpace/Order.lean Modified Mathlib/MeasureTheory/Constructions/BorelSpace/Real.lean Modified Mathlib/MeasureTheory/Constructions/Pi.lean Modified Mathlib/MeasureTheory/Constructions/Polish.lean Modified Mathlib/MeasureTheory/Constructions/Prod/Basic.lean Modified Mathlib/MeasureTheory/Constructions/Prod/Integral.lean Modified Mathlib/MeasureTheory/Covering/Besicovitch.lean Modified Mathlib/MeasureTheory/Covering/BesicovitchVectorSpace.lean Modified Mathlib/MeasureTheory/Covering/DensityTheorem.lean Modified Mathlib/MeasureTheory/Covering/Differentiation.lean Modified Mathlib/MeasureTheory/Covering/LiminfLimsup.lean Modified Mathlib/MeasureTheory/Covering/OneDim.lean Modified Mathlib/MeasureTheory/Covering/Vitali.lean Modified Mathlib/MeasureTheory/Covering/VitaliFamily.lean Modified Mathlib/MeasureTheory/Decomposition/Jordan.lean Modified Mathlib/MeasureTheory/Decomposition/Lebesgue.lean Modified Mathlib/MeasureTheory/Decomposition/RadonNikodym.lean Modified Mathlib/MeasureTheory/Decomposition/SignedHahn.lean Modified Mathlib/MeasureTheory/Decomposition/SignedLebesgue.lean Modified Mathlib/MeasureTheory/Decomposition/UnsignedHahn.lean Modified Mathlib/MeasureTheory/Function/AEEqFun.lean Modified Mathlib/MeasureTheory/Function/AEEqOfIntegral.lean Modified Mathlib/MeasureTheory/Function/AEMeasurableOrder.lean Modified Mathlib/MeasureTheory/Function/AEMeasurableSequence.lean Modified Mathlib/MeasureTheory/Function/ConditionalExpectation/AEMeasurable.lean Modified Mathlib/MeasureTheory/Function/ConditionalExpectation/Basic.lean Modified Mathlib/MeasureTheory/Function/ConditionalExpectation/CondexpL1.lean Modified Mathlib/MeasureTheory/Function/ConditionalExpectation/CondexpL2.lean Modified Mathlib/MeasureTheory/Function/ConditionalExpectation/Indicator.lean Modified Mathlib/MeasureTheory/Function/ConditionalExpectation/Real.lean Modified Mathlib/MeasureTheory/Function/ConditionalExpectation/Unique.lean Modified Mathlib/MeasureTheory/Function/ContinuousMapDense.lean Modified Mathlib/MeasureTheory/Function/ConvergenceInMeasure.lean Modified Mathlib/MeasureTheory/Function/Egorov.lean Modified Mathlib/MeasureTheory/Function/EssSup.lean Modified Mathlib/MeasureTheory/Function/Floor.lean Modified Mathlib/MeasureTheory/Function/Jacobian.lean Modified Mathlib/MeasureTheory/Function/L1Space.lean Modified Mathlib/MeasureTheory/Function/L2Space.lean Modified Mathlib/MeasureTheory/Function/LocallyIntegrable.lean Modified Mathlib/MeasureTheory/Function/LpOrder.lean Modified Mathlib/MeasureTheory/Function/LpSeminorm/Basic.lean Modified Mathlib/MeasureTheory/Function/LpSeminorm/ChebyshevMarkov.lean Modified Mathlib/MeasureTheory/Function/LpSeminorm/CompareExp.lean Modified Mathlib/MeasureTheory/Function/LpSeminorm/TriangleInequality.lean Modified Mathlib/MeasureTheory/Function/LpSeminorm/Trim.lean Modified Mathlib/MeasureTheory/Function/LpSpace.lean Modified Mathlib/MeasureTheory/Function/SimpleFunc.lean Modified Mathlib/MeasureTheory/Function/SimpleFuncDense.lean Modified Mathlib/MeasureTheory/Function/SimpleFuncDenseLp.lean Modified Mathlib/MeasureTheory/Function/SpecialFunctions/Arctan.lean Modified Mathlib/MeasureTheory/Function/SpecialFunctions/Basic.lean Modified Mathlib/MeasureTheory/Function/SpecialFunctions/Inner.lean Modified Mathlib/MeasureTheory/Function/SpecialFunctions/RCLike.lean Modified Mathlib/MeasureTheory/Function/StronglyMeasurable/Basic.lean Modified Mathlib/MeasureTheory/Function/StronglyMeasurable/Inner.lean Modified Mathlib/MeasureTheory/Function/StronglyMeasurable/Lemmas.lean Modified Mathlib/MeasureTheory/Function/StronglyMeasurable/Lp.lean Modified Mathlib/MeasureTheory/Function/UniformIntegrable.lean Modified Mathlib/MeasureTheory/Group/AEStabilizer.lean Modified Mathlib/MeasureTheory/Group/Action.lean Modified Mathlib/MeasureTheory/Group/AddCircle.lean Modified Mathlib/MeasureTheory/Group/Arithmetic.lean Modified Mathlib/MeasureTheory/Group/FundamentalDomain.lean Modified Mathlib/MeasureTheory/Group/GeometryOfNumbers.lean Modified Mathlib/MeasureTheory/Group/Integral.lean Modified Mathlib/MeasureTheory/Group/LIntegral.lean Modified Mathlib/MeasureTheory/Group/MeasurableEquiv.lean Modified Mathlib/MeasureTheory/Group/Measure.lean Modified Mathlib/MeasureTheory/Group/Pointwise.lean Modified Mathlib/MeasureTheory/Group/Prod.lean Modified Mathlib/MeasureTheory/Integral/Average.lean Modified Mathlib/MeasureTheory/Integral/Bochner.lean Modified Mathlib/MeasureTheory/Integral/BoundedContinuousFunction.lean Modified Mathlib/MeasureTheory/Integral/CircleIntegral.lean Modified Mathlib/MeasureTheory/Integral/CircleTransform.lean Modified Mathlib/MeasureTheory/Integral/DivergenceTheorem.lean Modified Mathlib/MeasureTheory/Integral/DominatedConvergence.lean Modified Mathlib/MeasureTheory/Integral/ExpDecay.lean Modified Mathlib/MeasureTheory/Integral/FundThmCalculus.lean Modified Mathlib/MeasureTheory/Integral/IntegrableOn.lean Modified Mathlib/MeasureTheory/Integral/IntegralEqImproper.lean Modified Mathlib/MeasureTheory/Integral/IntervalAverage.lean Modified Mathlib/MeasureTheory/Integral/IntervalIntegral.lean Modified Mathlib/MeasureTheory/Integral/Layercake.lean Modified Mathlib/MeasureTheory/Integral/Lebesgue.lean Modified Mathlib/MeasureTheory/Integral/LebesgueNormedSpace.lean Modified Mathlib/MeasureTheory/Integral/MeanInequalities.lean Modified Mathlib/MeasureTheory/Integral/PeakFunction.lean Modified Mathlib/MeasureTheory/Integral/Periodic.lean Modified Mathlib/MeasureTheory/Integral/RieszMarkovKakutani.lean Modified Mathlib/MeasureTheory/Integral/SetIntegral.lean Modified Mathlib/MeasureTheory/Integral/SetToL1.lean Modified Mathlib/MeasureTheory/Integral/TorusIntegral.lean Modified Mathlib/MeasureTheory/Integral/VitaliCaratheodory.lean Modified Mathlib/MeasureTheory/MeasurableSpace/Basic.lean Modified Mathlib/MeasureTheory/MeasurableSpace/Card.lean Modified Mathlib/MeasureTheory/MeasurableSpace/CountablyGenerated.lean Modified Mathlib/MeasureTheory/MeasurableSpace/Defs.lean Modified Mathlib/MeasureTheory/MeasurableSpace/Embedding.lean Modified Mathlib/MeasureTheory/MeasurableSpace/Instances.lean Modified Mathlib/MeasureTheory/Measure/AEDisjoint.lean Modified Mathlib/MeasureTheory/Measure/AEMeasurable.lean Modified Mathlib/MeasureTheory/Measure/Complex.lean Modified Mathlib/MeasureTheory/Measure/Content.lean Modified Mathlib/MeasureTheory/Measure/Count.lean Modified Mathlib/MeasureTheory/Measure/Dirac.lean Modified Mathlib/MeasureTheory/Measure/Doubling.lean Modified Mathlib/MeasureTheory/Measure/FiniteMeasure.lean Modified Mathlib/MeasureTheory/Measure/GiryMonad.lean Modified Mathlib/MeasureTheory/Measure/Haar/Basic.lean Modified Mathlib/MeasureTheory/Measure/Haar/InnerProductSpace.lean Modified Mathlib/MeasureTheory/Measure/Haar/NormedSpace.lean Modified Mathlib/MeasureTheory/Measure/Haar/OfBasis.lean Modified Mathlib/MeasureTheory/Measure/Haar/Quotient.lean Modified Mathlib/MeasureTheory/Measure/Haar/Unique.lean Modified Mathlib/MeasureTheory/Measure/HasOuterApproxClosed.lean Modified Mathlib/MeasureTheory/Measure/Hausdorff.lean Modified Mathlib/MeasureTheory/Measure/Lebesgue/Basic.lean Modified Mathlib/MeasureTheory/Measure/Lebesgue/Complex.lean Modified Mathlib/MeasureTheory/Measure/Lebesgue/EqHaar.lean Modified Mathlib/MeasureTheory/Measure/Lebesgue/Integral.lean Modified Mathlib/MeasureTheory/Measure/MeasureSpace.lean Modified Mathlib/MeasureTheory/Measure/MeasureSpaceDef.lean Modified Mathlib/MeasureTheory/Measure/MutuallySingular.lean Modified Mathlib/MeasureTheory/Measure/NullMeasurable.lean Modified Mathlib/MeasureTheory/Measure/OpenPos.lean Modified Mathlib/MeasureTheory/Measure/Portmanteau.lean Modified Mathlib/MeasureTheory/Measure/ProbabilityMeasure.lean Modified Mathlib/MeasureTheory/Measure/Regular.lean Modified Mathlib/MeasureTheory/Measure/Restrict.lean Modified Mathlib/MeasureTheory/Measure/Stieltjes.lean Modified Mathlib/MeasureTheory/Measure/Sub.lean Modified Mathlib/MeasureTheory/Measure/Trim.lean Modified Mathlib/MeasureTheory/Measure/Typeclasses.lean Modified Mathlib/MeasureTheory/Measure/VectorMeasure.lean Modified Mathlib/MeasureTheory/Measure/WithDensity.lean Modified Mathlib/MeasureTheory/Measure/WithDensityVectorMeasure.lean Modified Mathlib/MeasureTheory/Order/Lattice.lean Modified Mathlib/MeasureTheory/Order/UpperLower.lean Modified Mathlib/MeasureTheory/OuterMeasure/AE.lean Modified Mathlib/MeasureTheory/OuterMeasure/Basic.lean Modified Mathlib/MeasureTheory/OuterMeasure/Caratheodory.lean Modified Mathlib/MeasureTheory/OuterMeasure/Defs.lean Modified Mathlib/MeasureTheory/OuterMeasure/Induced.lean Modified Mathlib/MeasureTheory/OuterMeasure/OfFunction.lean Modified Mathlib/MeasureTheory/OuterMeasure/Operations.lean Modified Mathlib/MeasureTheory/PiSystem.lean Modified Mathlib/MeasureTheory/Tactic.lean Modified Mathlib/ModelTheory/Basic.lean Modified Mathlib/ModelTheory/Bundled.lean Modified Mathlib/ModelTheory/Definability.lean Modified Mathlib/ModelTheory/DirectLimit.lean Modified Mathlib/ModelTheory/ElementaryMaps.lean Modified Mathlib/ModelTheory/ElementarySubstructures.lean Modified Mathlib/ModelTheory/Encoding.lean Modified Mathlib/ModelTheory/FinitelyGenerated.lean Modified Mathlib/ModelTheory/Fraisse.lean Modified Mathlib/ModelTheory/Graph.lean Modified Mathlib/ModelTheory/LanguageMap.lean Modified Mathlib/ModelTheory/Order.lean Modified Mathlib/ModelTheory/Quotients.lean Modified Mathlib/ModelTheory/Satisfiability.lean Modified Mathlib/ModelTheory/Semantics.lean Modified Mathlib/ModelTheory/Skolem.lean Modified Mathlib/ModelTheory/Substructures.lean Modified Mathlib/ModelTheory/Syntax.lean Modified Mathlib/ModelTheory/Types.lean Modified Mathlib/ModelTheory/Ultraproducts.lean Modified Mathlib/NumberTheory/ADEInequality.lean Modified Mathlib/NumberTheory/ArithmeticFunction.lean Modified Mathlib/NumberTheory/Basic.lean Modified Mathlib/NumberTheory/Bernoulli.lean Modified Mathlib/NumberTheory/BernoulliPolynomials.lean Modified Mathlib/NumberTheory/Bertrand.lean Modified Mathlib/NumberTheory/ClassNumber/AdmissibleAbs.lean Modified Mathlib/NumberTheory/ClassNumber/AdmissibleAbsoluteValue.lean Modified Mathlib/NumberTheory/ClassNumber/AdmissibleCardPowDegree.lean Modified Mathlib/NumberTheory/ClassNumber/Finite.lean Modified Mathlib/NumberTheory/ClassNumber/FunctionField.lean Modified Mathlib/NumberTheory/Cyclotomic/Basic.lean Modified Mathlib/NumberTheory/Cyclotomic/Discriminant.lean Modified Mathlib/NumberTheory/Cyclotomic/Gal.lean Modified Mathlib/NumberTheory/Cyclotomic/PrimitiveRoots.lean Modified Mathlib/NumberTheory/Cyclotomic/Rat.lean Modified Mathlib/NumberTheory/Dioph.lean Modified Mathlib/NumberTheory/DiophantineApproximation.lean Modified Mathlib/NumberTheory/Divisors.lean Modified Mathlib/NumberTheory/FLT/Four.lean Modified Mathlib/NumberTheory/FermatPsp.lean Modified Mathlib/NumberTheory/FrobeniusNumber.lean Modified Mathlib/NumberTheory/FunctionField.lean Modified Mathlib/NumberTheory/GaussSum.lean Modified Mathlib/NumberTheory/KummerDedekind.lean Modified Mathlib/NumberTheory/LSeries/Basic.lean Modified Mathlib/NumberTheory/LSeries/Dirichlet.lean Modified Mathlib/NumberTheory/LSeries/HurwitzZetaValues.lean Modified Mathlib/NumberTheory/LSeries/Linearity.lean Modified Mathlib/NumberTheory/LSeries/RiemannZeta.lean Modified Mathlib/NumberTheory/LegendreSymbol/AddCharacter.lean Modified Mathlib/NumberTheory/LegendreSymbol/Basic.lean Modified Mathlib/NumberTheory/LegendreSymbol/GaussEisensteinLemmas.lean Modified Mathlib/NumberTheory/LegendreSymbol/JacobiSymbol.lean Modified Mathlib/NumberTheory/LegendreSymbol/QuadraticChar/Basic.lean Modified Mathlib/NumberTheory/LegendreSymbol/QuadraticChar/GaussSum.lean Modified Mathlib/NumberTheory/LegendreSymbol/QuadraticReciprocity.lean Modified Mathlib/NumberTheory/LegendreSymbol/ZModChar.lean Modified Mathlib/NumberTheory/Liouville/Basic.lean Modified Mathlib/NumberTheory/Liouville/LiouvilleNumber.lean Modified Mathlib/NumberTheory/Liouville/LiouvilleWith.lean Modified Mathlib/NumberTheory/Liouville/Measure.lean Modified Mathlib/NumberTheory/Liouville/Residual.lean Modified Mathlib/NumberTheory/LucasLehmer.lean Modified Mathlib/NumberTheory/LucasPrimality.lean Modified Mathlib/NumberTheory/Modular.lean Modified Mathlib/NumberTheory/ModularForms/Basic.lean Modified Mathlib/NumberTheory/ModularForms/CongruenceSubgroups.lean Modified Mathlib/NumberTheory/ModularForms/JacobiTheta/Manifold.lean Modified Mathlib/NumberTheory/ModularForms/JacobiTheta/OneVariable.lean Modified Mathlib/NumberTheory/ModularForms/SlashActions.lean Modified Mathlib/NumberTheory/ModularForms/SlashInvariantForms.lean Modified Mathlib/NumberTheory/MulChar/Basic.lean Modified Mathlib/NumberTheory/Multiplicity.lean Modified Mathlib/NumberTheory/NumberField/Basic.lean Modified Mathlib/NumberTheory/NumberField/CanonicalEmbedding/Basic.lean Modified Mathlib/NumberTheory/NumberField/CanonicalEmbedding/ConvexBody.lean Modified Mathlib/NumberTheory/NumberField/ClassNumber.lean Modified Mathlib/NumberTheory/NumberField/Discriminant.lean Modified Mathlib/NumberTheory/NumberField/Embeddings.lean Modified Mathlib/NumberTheory/NumberField/Norm.lean Modified Mathlib/NumberTheory/NumberField/Units/Basic.lean Modified Mathlib/NumberTheory/NumberField/Units/DirichletTheorem.lean Modified Mathlib/NumberTheory/Padics/Hensel.lean Modified Mathlib/NumberTheory/Padics/PadicIntegers.lean Modified Mathlib/NumberTheory/Padics/PadicNorm.lean Modified Mathlib/NumberTheory/Padics/PadicNumbers.lean Modified Mathlib/NumberTheory/Padics/PadicVal.lean Modified Mathlib/NumberTheory/Padics/RingHoms.lean Modified Mathlib/NumberTheory/Pell.lean Modified Mathlib/NumberTheory/PellMatiyasevic.lean Modified Mathlib/NumberTheory/PrimeCounting.lean Modified Mathlib/NumberTheory/PrimesCongruentOne.lean Modified Mathlib/NumberTheory/Primorial.lean Modified Mathlib/NumberTheory/PythagoreanTriples.lean Modified Mathlib/NumberTheory/RamificationInertia.lean Modified Mathlib/NumberTheory/SumFourSquares.lean Modified Mathlib/NumberTheory/SumTwoSquares.lean Modified Mathlib/NumberTheory/VonMangoldt.lean Modified Mathlib/NumberTheory/WellApproximable.lean Modified Mathlib/NumberTheory/Wilson.lean Modified Mathlib/NumberTheory/ZetaValues.lean Modified Mathlib/NumberTheory/Zsqrtd/Basic.lean Modified Mathlib/NumberTheory/Zsqrtd/GaussianInt.lean Modified Mathlib/NumberTheory/Zsqrtd/QuadraticReciprocity.lean Modified Mathlib/NumberTheory/Zsqrtd/ToReal.lean Modified Mathlib/Order/Antichain.lean Modified Mathlib/Order/Antisymmetrization.lean Modified Mathlib/Order/Atoms.lean Modified Mathlib/Order/Atoms/Finite.lean Modified Mathlib/Order/Basic.lean Modified Mathlib/Order/BooleanAlgebra.lean Modified Mathlib/Order/Bounded.lean Modified Mathlib/Order/BoundedOrder.lean Modified Mathlib/Order/Bounds/Basic.lean Modified Mathlib/Order/Bounds/OrderIso.lean Modified Mathlib/Order/Category/BddDistLat.lean Modified Mathlib/Order/Category/BddLat.lean Modified Mathlib/Order/Category/BddOrd.lean Modified Mathlib/Order/Category/BoolAlg.lean Modified Mathlib/Order/Category/CompleteLat.lean Modified Mathlib/Order/Category/DistLat.lean Modified Mathlib/Order/Category/FinBddDistLat.lean Modified Mathlib/Order/Category/FinBoolAlg.lean Modified Mathlib/Order/Category/FinPartOrd.lean Modified Mathlib/Order/Category/Frm.lean Modified Mathlib/Order/Category/HeytAlg.lean Modified Mathlib/Order/Category/Lat.lean Modified Mathlib/Order/Category/LinOrd.lean Modified Mathlib/Order/Category/NonemptyFinLinOrd.lean Modified Mathlib/Order/Category/OmegaCompletePartialOrder.lean Modified Mathlib/Order/Category/PartOrd.lean Modified Mathlib/Order/Category/Preord.lean Modified Mathlib/Order/Category/Semilat.lean Modified Mathlib/Order/Chain.lean Modified Mathlib/Order/Circular.lean Modified Mathlib/Order/Closure.lean Modified Mathlib/Order/CompactlyGenerated/Basic.lean Modified Mathlib/Order/Compare.lean Modified Mathlib/Order/CompleteBooleanAlgebra.lean Modified Mathlib/Order/CompleteLattice.lean Modified Mathlib/Order/CompleteLatticeIntervals.lean Modified Mathlib/Order/Concept.lean Modified Mathlib/Order/ConditionallyCompleteLattice/Basic.lean Modified Mathlib/Order/ConditionallyCompleteLattice/Finset.lean Modified Mathlib/Order/ConditionallyCompleteLattice/Group.lean Modified Mathlib/Order/Copy.lean Modified Mathlib/Order/CountableDenseLinearOrder.lean Modified Mathlib/Order/Cover.lean Modified Mathlib/Order/Directed.lean Modified Mathlib/Order/Disjoint.lean Modified Mathlib/Order/Disjointed.lean Modified Mathlib/Order/Extension/Linear.lean Modified Mathlib/Order/Extension/Well.lean Modified Mathlib/Order/Filter/Archimedean.lean Modified Mathlib/Order/Filter/AtTopBot.lean Modified Mathlib/Order/Filter/Bases.lean Modified Mathlib/Order/Filter/Basic.lean Modified Mathlib/Order/Filter/Cofinite.lean Modified Mathlib/Order/Filter/CountableInter.lean Modified Mathlib/Order/Filter/Curry.lean Modified Mathlib/Order/Filter/ENNReal.lean Modified Mathlib/Order/Filter/Extr.lean Modified Mathlib/Order/Filter/FilterProduct.lean Modified Mathlib/Order/Filter/Germ.lean Modified Mathlib/Order/Filter/IndicatorFunction.lean Modified Mathlib/Order/Filter/Interval.lean Modified Mathlib/Order/Filter/Lift.lean Modified Mathlib/Order/Filter/ListTraverse.lean Modified Mathlib/Order/Filter/ModEq.lean Modified Mathlib/Order/Filter/NAry.lean Modified Mathlib/Order/Filter/Partial.lean Modified Mathlib/Order/Filter/Pi.lean Modified Mathlib/Order/Filter/Pointwise.lean Modified Mathlib/Order/Filter/Prod.lean Modified Mathlib/Order/Filter/Ring.lean Modified Mathlib/Order/Filter/SmallSets.lean Modified Mathlib/Order/Filter/Ultrafilter.lean Modified Mathlib/Order/Filter/ZeroAndBoundedAtFilter.lean Modified Mathlib/Order/Fin/Basic.lean Modified Mathlib/Order/Fin/Tuple.lean Modified Mathlib/Order/FixedPoints.lean Modified Mathlib/Order/GaloisConnection.lean Modified Mathlib/Order/GameAdd.lean Modified Mathlib/Order/Grade.lean Modified Mathlib/Order/Height.lean Modified Mathlib/Order/Heyting/Basic.lean Modified Mathlib/Order/Heyting/Boundary.lean Modified Mathlib/Order/Heyting/Hom.lean Modified Mathlib/Order/Heyting/Regular.lean Modified Mathlib/Order/Hom/Basic.lean Modified Mathlib/Order/Hom/Bounded.lean Modified Mathlib/Order/Hom/CompleteLattice.lean Modified Mathlib/Order/Hom/Lattice.lean Modified Mathlib/Order/Hom/Order.lean Modified Mathlib/Order/Hom/Set.lean Modified Mathlib/Order/Ideal.lean Modified Mathlib/Order/InitialSeg.lean Modified Mathlib/Order/Interval/Basic.lean Modified Mathlib/Order/Interval/Finset/Basic.lean Modified Mathlib/Order/Interval/Finset/Defs.lean Modified Mathlib/Order/Interval/Finset/Fin.lean Modified Mathlib/Order/Interval/Finset/Nat.lean Modified Mathlib/Order/Interval/Multiset.lean Modified Mathlib/Order/Interval/Set/Basic.lean Modified Mathlib/Order/Interval/Set/Disjoint.lean Modified Mathlib/Order/Interval/Set/Image.lean Modified Mathlib/Order/Interval/Set/Infinite.lean Modified Mathlib/Order/Interval/Set/IsoIoo.lean Modified Mathlib/Order/Interval/Set/Monotone.lean Modified Mathlib/Order/Interval/Set/OrdConnected.lean Modified Mathlib/Order/Interval/Set/OrdConnectedComponent.lean Modified Mathlib/Order/Interval/Set/OrderIso.lean Modified Mathlib/Order/Interval/Set/Pi.lean Modified Mathlib/Order/Interval/Set/ProjIcc.lean Modified Mathlib/Order/Interval/Set/SurjOn.lean Modified Mathlib/Order/Interval/Set/UnorderedInterval.lean Modified Mathlib/Order/Interval/Set/WithBotTop.lean Modified Mathlib/Order/Irreducible.lean Modified Mathlib/Order/Iterate.lean Modified Mathlib/Order/JordanHolder.lean Modified Mathlib/Order/Lattice.lean Modified Mathlib/Order/LatticeIntervals.lean Modified Mathlib/Order/LiminfLimsup.lean Modified Mathlib/Order/Max.lean Modified Mathlib/Order/MinMax.lean Modified Mathlib/Order/Minimal.lean Modified Mathlib/Order/ModularLattice.lean Modified Mathlib/Order/Monotone/Basic.lean Modified Mathlib/Order/Monotone/Extension.lean Modified Mathlib/Order/Monotone/Monovary.lean Modified Mathlib/Order/Monotone/Odd.lean Modified Mathlib/Order/Monotone/Union.lean Modified Mathlib/Order/Nat.lean Modified Mathlib/Order/Notation.lean Modified Mathlib/Order/OmegaCompletePartialOrder.lean Modified Mathlib/Order/OrdContinuous.lean Modified Mathlib/Order/OrderIsoNat.lean Modified Mathlib/Order/PFilter.lean Modified Mathlib/Order/Part.lean Modified Mathlib/Order/PartialSups.lean Modified Mathlib/Order/Partition/Equipartition.lean Modified Mathlib/Order/Partition/Finpartition.lean Modified Mathlib/Order/PiLex.lean Modified Mathlib/Order/PrimeIdeal.lean Modified Mathlib/Order/PropInstances.lean Modified Mathlib/Order/RelClasses.lean Modified Mathlib/Order/RelIso/Basic.lean Modified Mathlib/Order/RelIso/Group.lean Modified Mathlib/Order/RelIso/Set.lean Modified Mathlib/Order/SemiconjSup.lean Modified Mathlib/Order/SetNotation.lean Modified Mathlib/Order/SuccPred/Basic.lean Modified Mathlib/Order/SuccPred/IntervalSucc.lean Modified Mathlib/Order/SuccPred/Limit.lean Modified Mathlib/Order/SuccPred/LinearLocallyFinite.lean Modified Mathlib/Order/SuccPred/Relation.lean Modified Mathlib/Order/SupClosed.lean Modified Mathlib/Order/SupIndep.lean Modified Mathlib/Order/SymmDiff.lean Modified Mathlib/Order/Synonym.lean Modified Mathlib/Order/UpperLower/Basic.lean Modified Mathlib/Order/UpperLower/Hom.lean Modified Mathlib/Order/UpperLower/LocallyFinite.lean Modified Mathlib/Order/WellFounded.lean Modified Mathlib/Order/WellFoundedSet.lean Modified Mathlib/Order/WithBot.lean Modified Mathlib/Order/Zorn.lean Modified Mathlib/Order/ZornAtoms.lean Modified Mathlib/Probability/BorelCantelli.lean Modified Mathlib/Probability/CondCount.lean Modified Mathlib/Probability/ConditionalExpectation.lean Modified Mathlib/Probability/ConditionalProbability.lean Modified Mathlib/Probability/Density.lean Modified Mathlib/Probability/Distributions/Uniform.lean Modified Mathlib/Probability/IdentDistrib.lean Modified Mathlib/Probability/Independence/Basic.lean Modified Mathlib/Probability/Independence/ZeroOne.lean Modified Mathlib/Probability/Integration.lean Modified Mathlib/Probability/Kernel/Basic.lean Modified Mathlib/Probability/Kernel/Composition.lean Modified Mathlib/Probability/Kernel/CondDistrib.lean Modified Mathlib/Probability/Kernel/Condexp.lean Modified Mathlib/Probability/Kernel/Disintegration/Basic.lean Modified Mathlib/Probability/Kernel/Disintegration/CondCdf.lean Modified Mathlib/Probability/Kernel/Disintegration/Integral.lean Modified Mathlib/Probability/Kernel/IntegralCompProd.lean Modified Mathlib/Probability/Kernel/Invariance.lean Modified Mathlib/Probability/Kernel/MeasurableIntegral.lean Modified Mathlib/Probability/Kernel/WithDensity.lean Modified Mathlib/Probability/Martingale/Basic.lean Modified Mathlib/Probability/Martingale/BorelCantelli.lean Modified Mathlib/Probability/Martingale/Centering.lean Modified Mathlib/Probability/Martingale/Convergence.lean Modified Mathlib/Probability/Martingale/OptionalSampling.lean Modified Mathlib/Probability/Martingale/OptionalStopping.lean Modified Mathlib/Probability/Martingale/Upcrossing.lean Modified Mathlib/Probability/Moments.lean Modified Mathlib/Probability/Notation.lean Modified Mathlib/Probability/ProbabilityMassFunction/Basic.lean Modified Mathlib/Probability/ProbabilityMassFunction/Constructions.lean Modified Mathlib/Probability/ProbabilityMassFunction/Monad.lean Modified Mathlib/Probability/Process/Adapted.lean Modified Mathlib/Probability/Process/Filtration.lean Modified Mathlib/Probability/Process/HittingTime.lean Modified Mathlib/Probability/Process/Stopping.lean Modified Mathlib/Probability/StrongLaw.lean Modified Mathlib/Probability/Variance.lean Modified Mathlib/RepresentationTheory/Action/Basic.lean Modified Mathlib/RepresentationTheory/Action/Concrete.lean Modified Mathlib/RepresentationTheory/Action/Limits.lean Modified Mathlib/RepresentationTheory/Action/Monoidal.lean Modified Mathlib/RepresentationTheory/Basic.lean Modified Mathlib/RepresentationTheory/Character.lean Modified Mathlib/RepresentationTheory/FDRep.lean Modified Mathlib/RepresentationTheory/GroupCohomology/Basic.lean Modified Mathlib/RepresentationTheory/GroupCohomology/Resolution.lean Modified Mathlib/RepresentationTheory/Invariants.lean Modified Mathlib/RepresentationTheory/Maschke.lean Modified Mathlib/RepresentationTheory/Rep.lean Modified Mathlib/RingTheory/AdicCompletion/Basic.lean Modified Mathlib/RingTheory/Adjoin/Basic.lean Modified Mathlib/RingTheory/Adjoin/FG.lean Modified Mathlib/RingTheory/Adjoin/Field.lean Modified Mathlib/RingTheory/Adjoin/PowerBasis.lean Modified Mathlib/RingTheory/Adjoin/Tower.lean Modified Mathlib/RingTheory/AdjoinRoot.lean Modified Mathlib/RingTheory/AlgebraTower.lean Modified Mathlib/RingTheory/Algebraic.lean Modified Mathlib/RingTheory/AlgebraicIndependent.lean Modified Mathlib/RingTheory/Artinian.lean Modified Mathlib/RingTheory/Bezout.lean Modified Mathlib/RingTheory/ChainOfDivisors.lean Modified Mathlib/RingTheory/ClassGroup.lean Modified Mathlib/RingTheory/Complex.lean Modified Mathlib/RingTheory/Congruence/Basic.lean Modified Mathlib/RingTheory/Coprime/Basic.lean Modified Mathlib/RingTheory/Coprime/Ideal.lean Modified Mathlib/RingTheory/Coprime/Lemmas.lean Modified Mathlib/RingTheory/DedekindDomain/AdicValuation.lean Modified Mathlib/RingTheory/DedekindDomain/Basic.lean Modified Mathlib/RingTheory/DedekindDomain/Dvr.lean Modified Mathlib/RingTheory/DedekindDomain/Factorization.lean Modified Mathlib/RingTheory/DedekindDomain/FiniteAdeleRing.lean Modified Mathlib/RingTheory/DedekindDomain/Ideal.lean Modified Mathlib/RingTheory/DedekindDomain/IntegralClosure.lean Modified Mathlib/RingTheory/DedekindDomain/PID.lean Modified Mathlib/RingTheory/DedekindDomain/SInteger.lean Modified Mathlib/RingTheory/DedekindDomain/SelmerGroup.lean Modified Mathlib/RingTheory/Derivation/Basic.lean Modified Mathlib/RingTheory/Derivation/Lie.lean Modified Mathlib/RingTheory/Derivation/ToSquareZero.lean Modified Mathlib/RingTheory/DiscreteValuationRing/Basic.lean Modified Mathlib/RingTheory/DiscreteValuationRing/TFAE.lean Modified Mathlib/RingTheory/Discriminant.lean Modified Mathlib/RingTheory/EisensteinCriterion.lean Modified Mathlib/RingTheory/Etale/Basic.lean Modified Mathlib/RingTheory/EuclideanDomain.lean Modified Mathlib/RingTheory/Filtration.lean Modified Mathlib/RingTheory/FinitePresentation.lean Modified Mathlib/RingTheory/FiniteType.lean Modified Mathlib/RingTheory/Finiteness.lean Modified Mathlib/RingTheory/Fintype.lean Modified Mathlib/RingTheory/Flat/Basic.lean Modified Mathlib/RingTheory/FractionalIdeal/Basic.lean Modified Mathlib/RingTheory/FractionalIdeal/Operations.lean Modified Mathlib/RingTheory/FreeCommRing.lean Modified Mathlib/RingTheory/FreeRing.lean Modified Mathlib/RingTheory/GradedAlgebra/Basic.lean Modified Mathlib/RingTheory/GradedAlgebra/HomogeneousIdeal.lean Modified Mathlib/RingTheory/GradedAlgebra/HomogeneousLocalization.lean Modified Mathlib/RingTheory/GradedAlgebra/Radical.lean Modified Mathlib/RingTheory/HahnSeries/Addition.lean Modified Mathlib/RingTheory/HahnSeries/Basic.lean Modified Mathlib/RingTheory/HahnSeries/Multiplication.lean Modified Mathlib/RingTheory/HahnSeries/PowerSeries.lean Modified Mathlib/RingTheory/HahnSeries/Summable.lean Modified Mathlib/RingTheory/HahnSeries/Valuation.lean Modified Mathlib/RingTheory/Henselian.lean Modified Mathlib/RingTheory/Ideal/AssociatedPrime.lean Modified Mathlib/RingTheory/Ideal/Basic.lean Modified Mathlib/RingTheory/Ideal/Basis.lean Modified Mathlib/RingTheory/Ideal/Colon.lean Modified Mathlib/RingTheory/Ideal/Cotangent.lean Modified Mathlib/RingTheory/Ideal/IdempotentFG.lean Modified Mathlib/RingTheory/Ideal/IsPrimary.lean Modified Mathlib/RingTheory/Ideal/IsPrincipal.lean Modified Mathlib/RingTheory/Ideal/LocalRing.lean Modified Mathlib/RingTheory/Ideal/Maps.lean Modified Mathlib/RingTheory/Ideal/MinimalPrime.lean Modified Mathlib/RingTheory/Ideal/Norm.lean Modified Mathlib/RingTheory/Ideal/Operations.lean Modified Mathlib/RingTheory/Ideal/Over.lean Modified Mathlib/RingTheory/Ideal/Prod.lean Modified Mathlib/RingTheory/Ideal/Quotient.lean Modified Mathlib/RingTheory/Ideal/QuotientOperations.lean Modified Mathlib/RingTheory/Int/Basic.lean Modified Mathlib/RingTheory/IntegralClosure/Algebra/Basic.lean Modified Mathlib/RingTheory/IntegralClosure/Algebra/Defs.lean Modified Mathlib/RingTheory/IntegralClosure/IntegrallyClosed.lean Modified Mathlib/RingTheory/IntegralClosure/IsIntegral/Basic.lean Modified Mathlib/RingTheory/IntegralClosure/IsIntegral/Defs.lean Modified Mathlib/RingTheory/IntegralClosure/IsIntegralClosure/Basic.lean Modified Mathlib/RingTheory/IntegralClosure/IsIntegralClosure/Defs.lean Modified Mathlib/RingTheory/IntegralDomain.lean Modified Mathlib/RingTheory/IsAdjoinRoot.lean Modified Mathlib/RingTheory/IsTensorProduct.lean Modified Mathlib/RingTheory/Jacobson.lean Modified Mathlib/RingTheory/JacobsonIdeal.lean Modified Mathlib/RingTheory/Kaehler/Basic.lean Modified Mathlib/RingTheory/LaurentSeries.lean Modified Mathlib/RingTheory/LocalProperties.lean Modified Mathlib/RingTheory/Localization/AsSubring.lean Modified Mathlib/RingTheory/Localization/AtPrime.lean Modified Mathlib/RingTheory/Localization/Away/AdjoinRoot.lean Modified Mathlib/RingTheory/Localization/Away/Basic.lean Modified Mathlib/RingTheory/Localization/Basic.lean Modified Mathlib/RingTheory/Localization/Cardinality.lean Modified Mathlib/RingTheory/Localization/FractionRing.lean Modified Mathlib/RingTheory/Localization/Ideal.lean Modified Mathlib/RingTheory/Localization/Integer.lean Modified Mathlib/RingTheory/Localization/Integral.lean Modified Mathlib/RingTheory/Localization/InvSubmonoid.lean Modified Mathlib/RingTheory/Localization/LocalizationLocalization.lean Modified Mathlib/RingTheory/Localization/Module.lean Modified Mathlib/RingTheory/Localization/NormTrace.lean Modified Mathlib/RingTheory/Localization/NumDen.lean Modified Mathlib/RingTheory/Localization/Submodule.lean Modified Mathlib/RingTheory/MatrixAlgebra.lean Modified Mathlib/RingTheory/MaximalSpectrum.lean Modified Mathlib/RingTheory/Multiplicity.lean Modified Mathlib/RingTheory/MvPolynomial/Basic.lean Modified Mathlib/RingTheory/MvPolynomial/Homogeneous.lean Modified Mathlib/RingTheory/MvPolynomial/Ideal.lean Modified Mathlib/RingTheory/MvPolynomial/Symmetric.lean Modified Mathlib/RingTheory/MvPolynomial/Tower.lean Modified Mathlib/RingTheory/MvPolynomial/WeightedHomogeneous.lean Modified Mathlib/RingTheory/MvPowerSeries/Basic.lean Modified Mathlib/RingTheory/MvPowerSeries/Inverse.lean Modified Mathlib/RingTheory/MvPowerSeries/Trunc.lean Modified Mathlib/RingTheory/Nakayama.lean Modified Mathlib/RingTheory/Nilpotent/Basic.lean Modified Mathlib/RingTheory/Nilpotent/Defs.lean Modified Mathlib/RingTheory/Nilpotent/Lemmas.lean Modified Mathlib/RingTheory/Noetherian.lean Modified Mathlib/RingTheory/NonUnitalSubsemiring/Basic.lean Modified Mathlib/RingTheory/Norm/Basic.lean Modified Mathlib/RingTheory/Norm/Defs.lean Modified Mathlib/RingTheory/Nullstellensatz.lean Modified Mathlib/RingTheory/OreLocalization/Basic.lean Modified Mathlib/RingTheory/OreLocalization/OreSet.lean Modified Mathlib/RingTheory/OreLocalization/Ring.lean Modified Mathlib/RingTheory/Perfection.lean Modified Mathlib/RingTheory/Polynomial/Basic.lean Modified Mathlib/RingTheory/Polynomial/Bernstein.lean Modified Mathlib/RingTheory/Polynomial/Chebyshev.lean Modified Mathlib/RingTheory/Polynomial/Content.lean Modified Mathlib/RingTheory/Polynomial/Cyclotomic/Basic.lean Modified Mathlib/RingTheory/Polynomial/Cyclotomic/Eval.lean Modified Mathlib/RingTheory/Polynomial/Cyclotomic/Expand.lean Modified Mathlib/RingTheory/Polynomial/Cyclotomic/Roots.lean Modified Mathlib/RingTheory/Polynomial/Dickson.lean Modified Mathlib/RingTheory/Polynomial/Eisenstein/Basic.lean Modified Mathlib/RingTheory/Polynomial/Eisenstein/IsIntegral.lean Modified Mathlib/RingTheory/Polynomial/GaussLemma.lean Modified Mathlib/RingTheory/Polynomial/Hermite/Basic.lean Modified Mathlib/RingTheory/Polynomial/Hermite/Gaussian.lean Modified Mathlib/RingTheory/Polynomial/IntegralNormalization.lean Modified Mathlib/RingTheory/Polynomial/Opposites.lean Modified Mathlib/RingTheory/Polynomial/Pochhammer.lean Modified Mathlib/RingTheory/Polynomial/Quotient.lean Modified Mathlib/RingTheory/Polynomial/RationalRoot.lean Modified Mathlib/RingTheory/Polynomial/ScaleRoots.lean Modified Mathlib/RingTheory/Polynomial/Selmer.lean Modified Mathlib/RingTheory/Polynomial/SeparableDegree.lean Modified Mathlib/RingTheory/Polynomial/Tower.lean Modified Mathlib/RingTheory/Polynomial/Vieta.lean Modified Mathlib/RingTheory/PolynomialAlgebra.lean Modified Mathlib/RingTheory/PowerBasis.lean Modified Mathlib/RingTheory/PowerSeries/Basic.lean Modified Mathlib/RingTheory/PowerSeries/Inverse.lean Modified Mathlib/RingTheory/PowerSeries/Order.lean Modified Mathlib/RingTheory/PowerSeries/Trunc.lean Modified Mathlib/RingTheory/PowerSeries/WellKnown.lean Modified Mathlib/RingTheory/Prime.lean Modified Mathlib/RingTheory/PrimeSpectrum.lean Modified Mathlib/RingTheory/PrincipalIdealDomain.lean Modified Mathlib/RingTheory/QuotientNilpotent.lean Modified Mathlib/RingTheory/QuotientNoetherian.lean Modified Mathlib/RingTheory/ReesAlgebra.lean Modified Mathlib/RingTheory/RingHom/Finite.lean Modified Mathlib/RingTheory/RingHom/FiniteType.lean Modified Mathlib/RingTheory/RingHom/Integral.lean Modified Mathlib/RingTheory/RingHom/Surjective.lean Modified Mathlib/RingTheory/RingHomProperties.lean Modified Mathlib/RingTheory/RingInvo.lean Modified Mathlib/RingTheory/RootsOfUnity/Basic.lean Modified Mathlib/RingTheory/RootsOfUnity/Complex.lean Modified Mathlib/RingTheory/RootsOfUnity/Minpoly.lean Modified Mathlib/RingTheory/SimpleModule.lean Modified Mathlib/RingTheory/Smooth/Basic.lean Modified Mathlib/RingTheory/TensorProduct/Basic.lean Modified Mathlib/RingTheory/Trace/Basic.lean Modified Mathlib/RingTheory/Trace/Defs.lean Modified Mathlib/RingTheory/UniqueFactorizationDomain.lean Modified Mathlib/RingTheory/Unramified/Basic.lean Modified Mathlib/RingTheory/Unramified/Derivations.lean Modified Mathlib/RingTheory/Valuation/Basic.lean Modified Mathlib/RingTheory/Valuation/ExtendToLocalization.lean Modified Mathlib/RingTheory/Valuation/Integers.lean Modified Mathlib/RingTheory/Valuation/Integral.lean Modified Mathlib/RingTheory/Valuation/PrimeMultiplicity.lean Modified Mathlib/RingTheory/Valuation/Quotient.lean Modified Mathlib/RingTheory/Valuation/RamificationGroup.lean Modified Mathlib/RingTheory/Valuation/ValuationRing.lean Modified Mathlib/RingTheory/Valuation/ValuationSubring.lean Modified Mathlib/RingTheory/WittVector/Basic.lean Modified Mathlib/RingTheory/WittVector/Compare.lean Modified Mathlib/RingTheory/WittVector/Defs.lean Modified Mathlib/RingTheory/WittVector/DiscreteValuationRing.lean Modified Mathlib/RingTheory/WittVector/Domain.lean Modified Mathlib/RingTheory/WittVector/Frobenius.lean Modified Mathlib/RingTheory/WittVector/FrobeniusFractionField.lean Modified Mathlib/RingTheory/WittVector/Identities.lean Modified Mathlib/RingTheory/WittVector/InitTail.lean Modified Mathlib/RingTheory/WittVector/IsPoly.lean Modified Mathlib/RingTheory/WittVector/Isocrystal.lean Modified Mathlib/RingTheory/WittVector/MulCoeff.lean Modified Mathlib/RingTheory/WittVector/MulP.lean Modified Mathlib/RingTheory/WittVector/StructurePolynomial.lean Modified Mathlib/RingTheory/WittVector/Teichmuller.lean Modified Mathlib/RingTheory/WittVector/Truncated.lean Modified Mathlib/RingTheory/WittVector/Verschiebung.lean Modified Mathlib/RingTheory/WittVector/WittPolynomial.lean Modified Mathlib/RingTheory/ZMod.lean Modified Mathlib/SetTheory/Cardinal/Basic.lean Modified Mathlib/SetTheory/Cardinal/Cofinality.lean Modified Mathlib/SetTheory/Cardinal/Continuum.lean Modified Mathlib/SetTheory/Cardinal/Divisibility.lean Modified Mathlib/SetTheory/Cardinal/Finite.lean Modified Mathlib/SetTheory/Cardinal/Ordinal.lean Modified Mathlib/SetTheory/Cardinal/PartENat.lean Modified Mathlib/SetTheory/Cardinal/SchroederBernstein.lean Modified Mathlib/SetTheory/Cardinal/ToNat.lean Modified Mathlib/SetTheory/Game/Basic.lean Modified Mathlib/SetTheory/Game/Birthday.lean Modified Mathlib/SetTheory/Game/Domineering.lean Modified Mathlib/SetTheory/Game/Impartial.lean Modified Mathlib/SetTheory/Game/Nim.lean Modified Mathlib/SetTheory/Game/Ordinal.lean Modified Mathlib/SetTheory/Game/PGame.lean Modified Mathlib/SetTheory/Game/Short.lean Modified Mathlib/SetTheory/Game/State.lean Modified Mathlib/SetTheory/Lists.lean Modified Mathlib/SetTheory/Ordinal/Arithmetic.lean Modified Mathlib/SetTheory/Ordinal/Basic.lean Modified Mathlib/SetTheory/Ordinal/CantorNormalForm.lean Modified Mathlib/SetTheory/Ordinal/Exponential.lean Modified Mathlib/SetTheory/Ordinal/FixedPoint.lean Modified Mathlib/SetTheory/Ordinal/NaturalOps.lean Modified Mathlib/SetTheory/Ordinal/Notation.lean Modified Mathlib/SetTheory/Ordinal/Principal.lean Modified Mathlib/SetTheory/Ordinal/Topology.lean Modified Mathlib/SetTheory/Surreal/Basic.lean Modified Mathlib/SetTheory/Surreal/Dyadic.lean Modified Mathlib/SetTheory/ZFC/Basic.lean Modified Mathlib/SetTheory/ZFC/Ordinal.lean Modified Mathlib/Tactic/CC.lean Modified Mathlib/Tactic/CC/Datatypes.lean Modified Mathlib/Tactic/CancelDenoms/Core.lean Modified Mathlib/Tactic/CategoryTheory/BicategoricalComp.lean Modified Mathlib/Tactic/CategoryTheory/BicategoryCoherence.lean Modified Mathlib/Tactic/CategoryTheory/Coherence.lean Modified Mathlib/Tactic/DeriveTraversable.lean Modified Mathlib/Tactic/Group.lean Modified Mathlib/Tactic/ITauto.lean Modified Mathlib/Tactic/Lift.lean Modified Mathlib/Tactic/NormNum/BigOperators.lean Modified Mathlib/Tactic/NormNum/LegendreSymbol.lean Modified Mathlib/Tactic/NormNum/Prime.lean Modified Mathlib/Tactic/ToLevel.lean Modified Mathlib/Testing/SlimCheck/Functions.lean Modified Mathlib/Testing/SlimCheck/Gen.lean Modified Mathlib/Testing/SlimCheck/Sampleable.lean Modified Mathlib/Testing/SlimCheck/Testable.lean Modified Mathlib/Topology/Algebra/Affine.lean Modified Mathlib/Topology/Algebra/Algebra.lean Modified Mathlib/Topology/Algebra/Algebra/Rat.lean Modified Mathlib/Topology/Algebra/ConstMulAction.lean Modified Mathlib/Topology/Algebra/Constructions.lean Modified Mathlib/Topology/Algebra/ContinuousAffineMap.lean Modified Mathlib/Topology/Algebra/ContinuousMonoidHom.lean Modified Mathlib/Topology/Algebra/Equicontinuity.lean Modified Mathlib/Topology/Algebra/Field.lean Modified Mathlib/Topology/Algebra/FilterBasis.lean Modified Mathlib/Topology/Algebra/Group/Basic.lean Modified Mathlib/Topology/Algebra/Group/Compact.lean Modified Mathlib/Topology/Algebra/GroupCompletion.lean Modified Mathlib/Topology/Algebra/GroupWithZero.lean Modified Mathlib/Topology/Algebra/InfiniteSum/Basic.lean Modified Mathlib/Topology/Algebra/InfiniteSum/Constructions.lean Modified Mathlib/Topology/Algebra/InfiniteSum/Defs.lean Modified Mathlib/Topology/Algebra/InfiniteSum/Group.lean Modified Mathlib/Topology/Algebra/InfiniteSum/Module.lean Modified Mathlib/Topology/Algebra/InfiniteSum/NatInt.lean Modified Mathlib/Topology/Algebra/InfiniteSum/Order.lean Modified Mathlib/Topology/Algebra/InfiniteSum/Real.lean Modified Mathlib/Topology/Algebra/InfiniteSum/Ring.lean Modified Mathlib/Topology/Algebra/Localization.lean Modified Mathlib/Topology/Algebra/Module/Basic.lean Modified Mathlib/Topology/Algebra/Module/CharacterSpace.lean Modified Mathlib/Topology/Algebra/Module/Determinant.lean Modified Mathlib/Topology/Algebra/Module/FiniteDimension.lean Modified Mathlib/Topology/Algebra/Module/LinearPMap.lean Modified Mathlib/Topology/Algebra/Module/LocallyConvex.lean Modified Mathlib/Topology/Algebra/Module/Multilinear/Basic.lean Modified Mathlib/Topology/Algebra/Module/Multilinear/Topology.lean Modified Mathlib/Topology/Algebra/Module/Simple.lean Modified Mathlib/Topology/Algebra/Module/Star.lean Modified Mathlib/Topology/Algebra/Module/StrongTopology.lean Modified Mathlib/Topology/Algebra/Module/UniformConvergence.lean Modified Mathlib/Topology/Algebra/Module/WeakDual.lean Modified Mathlib/Topology/Algebra/Monoid.lean Modified Mathlib/Topology/Algebra/MulAction.lean Modified Mathlib/Topology/Algebra/Nonarchimedean/AdicTopology.lean Modified Mathlib/Topology/Algebra/Nonarchimedean/Bases.lean Modified Mathlib/Topology/Algebra/Nonarchimedean/Basic.lean Modified Mathlib/Topology/Algebra/OpenSubgroup.lean Modified Mathlib/Topology/Algebra/Order/Archimedean.lean Modified Mathlib/Topology/Algebra/Order/Compact.lean Modified Mathlib/Topology/Algebra/Order/Field.lean Modified Mathlib/Topology/Algebra/Order/Floor.lean Modified Mathlib/Topology/Algebra/Order/Group.lean Modified Mathlib/Topology/Algebra/Order/LiminfLimsup.lean Modified Mathlib/Topology/Algebra/Order/Rolle.lean Modified Mathlib/Topology/Algebra/Order/UpperLower.lean Modified Mathlib/Topology/Algebra/Polynomial.lean Modified Mathlib/Topology/Algebra/PontryaginDual.lean Modified Mathlib/Topology/Algebra/Ring/Basic.lean Modified Mathlib/Topology/Algebra/Ring/Ideal.lean Modified Mathlib/Topology/Algebra/Semigroup.lean Modified Mathlib/Topology/Algebra/Star.lean Modified Mathlib/Topology/Algebra/StarSubalgebra.lean Modified Mathlib/Topology/Algebra/UniformConvergence.lean Modified Mathlib/Topology/Algebra/UniformField.lean Modified Mathlib/Topology/Algebra/UniformFilterBasis.lean Modified Mathlib/Topology/Algebra/UniformGroup.lean Modified Mathlib/Topology/Algebra/UniformMulAction.lean Modified Mathlib/Topology/Algebra/UniformRing.lean Modified Mathlib/Topology/Algebra/Valued/ValuationTopology.lean Modified Mathlib/Topology/Algebra/Valued/ValuedField.lean Modified Mathlib/Topology/Algebra/WithZeroTopology.lean Modified Mathlib/Topology/Baire/CompleteMetrizable.lean Modified Mathlib/Topology/Baire/Lemmas.lean Modified Mathlib/Topology/Baire/LocallyCompactRegular.lean Modified Mathlib/Topology/Bases.lean Modified Mathlib/Topology/Basic.lean Modified Mathlib/Topology/Bornology/Absorbs.lean Modified Mathlib/Topology/Bornology/Basic.lean Modified Mathlib/Topology/Bornology/Constructions.lean Modified Mathlib/Topology/Bornology/Hom.lean Modified Mathlib/Topology/Category/Born.lean Modified Mathlib/Topology/Category/CompHaus/Basic.lean Modified Mathlib/Topology/Category/CompHaus/Projective.lean Modified Mathlib/Topology/Category/CompHausLike/Basic.lean Modified Mathlib/Topology/Category/Compactum.lean Modified Mathlib/Topology/Category/Locale.lean Modified Mathlib/Topology/Category/Profinite/AsLimit.lean Modified Mathlib/Topology/Category/Profinite/Basic.lean Modified Mathlib/Topology/Category/Profinite/CofilteredLimit.lean Modified Mathlib/Topology/Category/Profinite/Projective.lean Modified Mathlib/Topology/Category/TopCat/Adjunctions.lean Modified Mathlib/Topology/Category/TopCat/Basic.lean Modified Mathlib/Topology/Category/TopCat/EpiMono.lean Modified Mathlib/Topology/Category/TopCat/Limits/Basic.lean Modified Mathlib/Topology/Category/TopCat/Limits/Cofiltered.lean Modified Mathlib/Topology/Category/TopCat/Limits/Konig.lean Modified Mathlib/Topology/Category/TopCat/Limits/Products.lean Modified Mathlib/Topology/Category/TopCat/Limits/Pullbacks.lean Modified Mathlib/Topology/Category/TopCat/OpenNhds.lean Modified Mathlib/Topology/Category/TopCat/Opens.lean Modified Mathlib/Topology/Category/TopCommRingCat.lean Modified Mathlib/Topology/Category/UniformSpace.lean Modified Mathlib/Topology/Clopen.lean Modified Mathlib/Topology/CompactOpen.lean Modified Mathlib/Topology/Compactification/OnePoint.lean Modified Mathlib/Topology/Compactness/Compact.lean Modified Mathlib/Topology/Compactness/LocallyCompact.lean Modified Mathlib/Topology/Compactness/Paracompact.lean Modified Mathlib/Topology/Compactness/SigmaCompact.lean Modified Mathlib/Topology/Connected/Basic.lean Modified Mathlib/Topology/Connected/LocallyConnected.lean Modified Mathlib/Topology/Connected/PathConnected.lean Modified Mathlib/Topology/Connected/TotallyDisconnected.lean Modified Mathlib/Topology/Constructions.lean Modified Mathlib/Topology/ContinuousFunction/Algebra.lean Modified Mathlib/Topology/ContinuousFunction/Basic.lean Modified Mathlib/Topology/ContinuousFunction/Bounded.lean Modified Mathlib/Topology/ContinuousFunction/CocompactMap.lean Modified Mathlib/Topology/ContinuousFunction/Compact.lean Modified Mathlib/Topology/ContinuousFunction/Ideals.lean Modified Mathlib/Topology/ContinuousFunction/LocallyConstant.lean Modified Mathlib/Topology/ContinuousFunction/Ordered.lean Modified Mathlib/Topology/ContinuousFunction/Polynomial.lean Modified Mathlib/Topology/ContinuousFunction/StoneWeierstrass.lean Modified Mathlib/Topology/ContinuousFunction/T0Sierpinski.lean Modified Mathlib/Topology/ContinuousFunction/Units.lean Modified Mathlib/Topology/ContinuousFunction/Weierstrass.lean Modified Mathlib/Topology/ContinuousFunction/ZeroAtInfty.lean Modified Mathlib/Topology/ContinuousOn.lean Modified Mathlib/Topology/Covering.lean Modified Mathlib/Topology/Defs/Basic.lean Modified Mathlib/Topology/Defs/Filter.lean Modified Mathlib/Topology/Defs/Induced.lean Modified Mathlib/Topology/Defs/Sequences.lean Modified Mathlib/Topology/DenseEmbedding.lean Modified Mathlib/Topology/DiscreteQuotient.lean Modified Mathlib/Topology/EMetricSpace/Basic.lean Modified Mathlib/Topology/EMetricSpace/Lipschitz.lean Modified Mathlib/Topology/EMetricSpace/Paracompact.lean Modified Mathlib/Topology/ExtendFrom.lean Modified Mathlib/Topology/ExtremallyDisconnected.lean Modified Mathlib/Topology/FiberBundle/Basic.lean Modified Mathlib/Topology/FiberBundle/Constructions.lean Modified Mathlib/Topology/FiberBundle/IsHomeomorphicTrivialBundle.lean Modified Mathlib/Topology/FiberBundle/Trivialization.lean Modified Mathlib/Topology/Filter.lean Modified Mathlib/Topology/GDelta.lean Modified Mathlib/Topology/Gluing.lean Modified Mathlib/Topology/Hom/Open.lean Modified Mathlib/Topology/Homeomorph.lean Modified Mathlib/Topology/Homotopy/Basic.lean Modified Mathlib/Topology/Homotopy/Contractible.lean Modified Mathlib/Topology/Homotopy/Equiv.lean Modified Mathlib/Topology/Homotopy/HSpaces.lean Modified Mathlib/Topology/Homotopy/HomotopyGroup.lean Modified Mathlib/Topology/Homotopy/Path.lean Modified Mathlib/Topology/Homotopy/Product.lean Modified Mathlib/Topology/Inseparable.lean Modified Mathlib/Topology/Instances/AddCircle.lean Modified Mathlib/Topology/Instances/Complex.lean Modified Mathlib/Topology/Instances/Discrete.lean Modified Mathlib/Topology/Instances/ENNReal.lean Modified Mathlib/Topology/Instances/EReal.lean Modified Mathlib/Topology/Instances/Int.lean Modified Mathlib/Topology/Instances/Irrational.lean Modified Mathlib/Topology/Instances/Matrix.lean Modified Mathlib/Topology/Instances/NNReal.lean Modified Mathlib/Topology/Instances/Nat.lean Modified Mathlib/Topology/Instances/Rat.lean Modified Mathlib/Topology/Instances/RatLemmas.lean Modified Mathlib/Topology/Instances/Real.lean Modified Mathlib/Topology/Instances/RealVectorSpace.lean Modified Mathlib/Topology/Instances/Sign.lean Modified Mathlib/Topology/Instances/TrivSqZeroExt.lean Modified Mathlib/Topology/Irreducible.lean Modified Mathlib/Topology/IsLocalHomeomorph.lean Modified Mathlib/Topology/List.lean Modified Mathlib/Topology/LocalAtTarget.lean Modified Mathlib/Topology/LocallyConstant/Algebra.lean Modified Mathlib/Topology/LocallyConstant/Basic.lean Modified Mathlib/Topology/LocallyFinite.lean Modified Mathlib/Topology/Maps/Basic.lean Modified Mathlib/Topology/MetricSpace/Algebra.lean Modified Mathlib/Topology/MetricSpace/Antilipschitz.lean Modified Mathlib/Topology/MetricSpace/Basic.lean Modified Mathlib/Topology/MetricSpace/Bounded.lean Modified Mathlib/Topology/MetricSpace/CantorScheme.lean Modified Mathlib/Topology/MetricSpace/CauSeqFilter.lean Modified Mathlib/Topology/MetricSpace/Cauchy.lean Modified Mathlib/Topology/MetricSpace/Closeds.lean Modified Mathlib/Topology/MetricSpace/Completion.lean Modified Mathlib/Topology/MetricSpace/Contracting.lean Modified Mathlib/Topology/MetricSpace/Dilation.lean Modified Mathlib/Topology/MetricSpace/Equicontinuity.lean Modified Mathlib/Topology/MetricSpace/Gluing.lean Modified Mathlib/Topology/MetricSpace/GromovHausdorff.lean Modified Mathlib/Topology/MetricSpace/GromovHausdorffRealized.lean Modified Mathlib/Topology/MetricSpace/HausdorffDimension.lean Modified Mathlib/Topology/MetricSpace/HausdorffDistance.lean Modified Mathlib/Topology/MetricSpace/Holder.lean Modified Mathlib/Topology/MetricSpace/Infsep.lean Modified Mathlib/Topology/MetricSpace/IsometricSMul.lean Modified Mathlib/Topology/MetricSpace/Isometry.lean Modified Mathlib/Topology/MetricSpace/Kuratowski.lean Modified Mathlib/Topology/MetricSpace/Lipschitz.lean Modified Mathlib/Topology/MetricSpace/MetricSeparated.lean Modified Mathlib/Topology/MetricSpace/PartitionOfUnity.lean Modified Mathlib/Topology/MetricSpace/Perfect.lean Modified Mathlib/Topology/MetricSpace/PiNat.lean Modified Mathlib/Topology/MetricSpace/Polish.lean Modified Mathlib/Topology/MetricSpace/ProperSpace.lean Modified Mathlib/Topology/MetricSpace/ProperSpace/Lemmas.lean Modified Mathlib/Topology/MetricSpace/Pseudo/Constructions.lean Modified Mathlib/Topology/MetricSpace/Pseudo/Defs.lean Modified Mathlib/Topology/MetricSpace/Pseudo/Lemmas.lean Modified Mathlib/Topology/MetricSpace/Sequences.lean Modified Mathlib/Topology/MetricSpace/ShrinkingLemma.lean Modified Mathlib/Topology/MetricSpace/ThickenedIndicator.lean Modified Mathlib/Topology/MetricSpace/Thickening.lean Modified Mathlib/Topology/Metrizable/Basic.lean Modified Mathlib/Topology/Metrizable/Uniformity.lean Modified Mathlib/Topology/Metrizable/Urysohn.lean Modified Mathlib/Topology/NhdsSet.lean Modified Mathlib/Topology/NoetherianSpace.lean Modified Mathlib/Topology/OmegaCompletePartialOrder.lean Modified Mathlib/Topology/Order.lean Modified Mathlib/Topology/Order/Basic.lean Modified Mathlib/Topology/Order/Bornology.lean Modified Mathlib/Topology/Order/DenselyOrdered.lean Modified Mathlib/Topology/Order/ExtendFrom.lean Modified Mathlib/Topology/Order/ExtrClosure.lean Modified Mathlib/Topology/Order/Filter.lean Modified Mathlib/Topology/Order/Hom/Basic.lean Modified Mathlib/Topology/Order/Hom/Esakia.lean Modified Mathlib/Topology/Order/IntermediateValue.lean Modified Mathlib/Topology/Order/IsLUB.lean Modified Mathlib/Topology/Order/Lattice.lean Modified Mathlib/Topology/Order/LeftRight.lean Modified Mathlib/Topology/Order/LeftRightLim.lean Modified Mathlib/Topology/Order/LeftRightNhds.lean Modified Mathlib/Topology/Order/LocalExtr.lean Modified Mathlib/Topology/Order/LowerUpperTopology.lean Modified Mathlib/Topology/Order/Monotone.lean Modified Mathlib/Topology/Order/MonotoneContinuity.lean Modified Mathlib/Topology/Order/MonotoneConvergence.lean Modified Mathlib/Topology/Order/OrderClosed.lean Modified Mathlib/Topology/Order/Priestley.lean Modified Mathlib/Topology/Order/ProjIcc.lean Modified Mathlib/Topology/Order/T5.lean Modified Mathlib/Topology/Partial.lean Modified Mathlib/Topology/PartialHomeomorph.lean Modified Mathlib/Topology/PartitionOfUnity.lean Modified Mathlib/Topology/Perfect.lean Modified Mathlib/Topology/QuasiSeparated.lean Modified Mathlib/Topology/Semicontinuous.lean Modified Mathlib/Topology/Separation.lean Modified Mathlib/Topology/Sequences.lean Modified Mathlib/Topology/Sets/Closeds.lean Modified Mathlib/Topology/Sets/Compacts.lean Modified Mathlib/Topology/Sets/Opens.lean Modified Mathlib/Topology/Sets/Order.lean Modified Mathlib/Topology/Sheaves/Forget.lean Modified Mathlib/Topology/Sheaves/Functors.lean Modified Mathlib/Topology/Sheaves/Limits.lean Modified Mathlib/Topology/Sheaves/LocalPredicate.lean Modified Mathlib/Topology/Sheaves/LocallySurjective.lean Modified Mathlib/Topology/Sheaves/Operations.lean Modified Mathlib/Topology/Sheaves/PUnit.lean Modified Mathlib/Topology/Sheaves/Presheaf.lean Modified Mathlib/Topology/Sheaves/PresheafOfFunctions.lean Modified Mathlib/Topology/Sheaves/Sheaf.lean Modified Mathlib/Topology/Sheaves/SheafCondition/EqualizerProducts.lean Modified Mathlib/Topology/Sheaves/SheafCondition/OpensLeCover.lean Modified Mathlib/Topology/Sheaves/SheafCondition/PairwiseIntersections.lean Modified Mathlib/Topology/Sheaves/SheafCondition/Sites.lean Modified Mathlib/Topology/Sheaves/SheafCondition/UniqueGluing.lean Modified Mathlib/Topology/Sheaves/SheafOfFunctions.lean Modified Mathlib/Topology/Sheaves/Sheafify.lean Modified Mathlib/Topology/Sheaves/Skyscraper.lean Modified Mathlib/Topology/Sheaves/Stalks.lean Modified Mathlib/Topology/ShrinkingLemma.lean Modified Mathlib/Topology/Sober.lean Modified Mathlib/Topology/Spectral/Hom.lean Modified Mathlib/Topology/StoneCech.lean Modified Mathlib/Topology/Support.lean Modified Mathlib/Topology/Tactic.lean Modified Mathlib/Topology/TietzeExtension.lean Modified Mathlib/Topology/UniformSpace/AbsoluteValue.lean Modified Mathlib/Topology/UniformSpace/AbstractCompletion.lean Modified Mathlib/Topology/UniformSpace/Basic.lean Modified Mathlib/Topology/UniformSpace/Cauchy.lean Modified Mathlib/Topology/UniformSpace/Compact.lean Modified Mathlib/Topology/UniformSpace/CompactConvergence.lean Modified Mathlib/Topology/UniformSpace/CompareReals.lean Modified Mathlib/Topology/UniformSpace/CompleteSeparated.lean Modified Mathlib/Topology/UniformSpace/Completion.lean Modified Mathlib/Topology/UniformSpace/Equicontinuity.lean Modified Mathlib/Topology/UniformSpace/Equiv.lean Modified Mathlib/Topology/UniformSpace/Matrix.lean Modified Mathlib/Topology/UniformSpace/Pi.lean Modified Mathlib/Topology/UniformSpace/Separation.lean Modified Mathlib/Topology/UniformSpace/UniformConvergence.lean Modified Mathlib/Topology/UniformSpace/UniformConvergenceTopology.lean Modified Mathlib/Topology/UniformSpace/UniformEmbedding.lean Modified Mathlib/Topology/UnitInterval.lean Modified Mathlib/Topology/UrysohnsBounded.lean Modified Mathlib/Topology/UrysohnsLemma.lean Modified Mathlib/Topology/VectorBundle/Basic.lean Modified Mathlib/Topology/VectorBundle/Constructions.lean Modified Mathlib/Topology/VectorBundle/Hom.lean Modified test/HashCommandLinter.lean Modified test/instance_diamonds.lean Modified test/instance_diamonds/FieldTheory/IsAlgClosed/AlgebraicClosure.lean Modified test/instance_diamonds/FieldTheory/SplittingField/Construction.lean Modified test/nomatch.lean 2024-07-19 11:08:58 23c87df feat(AlgebraicGeometry): Being an isomorphism is local at the target. (#14882) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/AlgebraicGeometry/Morphisms/ClosedImmersion.lean Added Mathlib/AlgebraicGeometry/Morphisms/IsIso.lean + theorem AlgebraicGeometry.isomorphisms_eq_isOpenImmersion_inf_surjective + theorem AlgebraicGeometry.isomorphisms_eq_stalkwise Modified Mathlib/AlgebraicGeometry/Morphisms/OpenImmersion.lean + theorem AlgebraicGeometry.isOpenImmersion_eq_inf Added Mathlib/AlgebraicGeometry/Morphisms/UnderlyingMap.lean + theorem AlgebraicGeometry.Scheme.Hom.surjective + theorem AlgebraicGeometry.Surjective.comp_iff + theorem AlgebraicGeometry.Surjective.of_comp + theorem AlgebraicGeometry.surjective_eq_topologically Modified Mathlib/AlgebraicGeometry/Morphisms/UniversallyClosed.lean Modified Mathlib/Topology/LocalAtTarget.lean + theorem isOpenMap_iff_isOpenMap_of_iSup_eq_top Modified Mathlib/Topology/Sets/Opens.lean + theorem TopologicalSpace.Opens.mem_top 2024-07-19 10:46:21 1674b34 feat(MeasureTheory/Function): Uniform tightness of functions in Lp (#14646) Uniform tightness is a hypothesis necessary for the general version of the Vitali Convergence Theorem proven in #9163. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/MeasureTheory/Function/LpSeminorm/Basic.lean + theorem MeasureTheory.Memℒp.exists_snorm_indicator_compl_lt + theorem MeasureTheory.snorm_indicator_eq_restrict Added Mathlib/MeasureTheory/Function/UnifTight.lean + theorem MeasureTheory.UnifTight.eventually_cofinite_indicator + def MeasureTheory.UnifTight + theorem MeasureTheory.unifTight_congr_ae + theorem MeasureTheory.unifTight_const + theorem MeasureTheory.unifTight_finite + theorem MeasureTheory.unifTight_iff_ennreal + theorem MeasureTheory.unifTight_iff_real + theorem MeasureTheory.unifTight_of_subsingleton Modified Mathlib/MeasureTheory/Integral/Lebesgue.lean + theorem MeasureTheory.exists_measurable_le_setLintegral_eq_of_integrable + theorem MeasureTheory.exists_setLintegral_compl_lt Modified Mathlib/MeasureTheory/Measure/MeasureSpace.lean Modified scripts/style-exceptions.txt 2024-07-19 10:46:19 4c31303 feat(Bicategory/NaturalTransformation/Strong): define strong natural transformations (#14028) We define strong natural transformations of oplax functors, and provide API for going between strong and oplax natural transformations. We also move & rename the file `NaturalTransformation.lean`, which defines oplax natural transformations, to `NaturalTransformation/Oplax.lean`. This should make it easier to also add lax natural transformations in the future. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/CategoryTheory/Bicategory/FunctorBicategory.lean Renamed Mathlib/CategoryTheory/Bicategory/NaturalTransformation.lean to Mathlib/CategoryTheory/Bicategory/NaturalTransformation/Oplax.lean + structure CategoryTheory.OplaxNatTrans.StrongCore Added Mathlib/CategoryTheory/Bicategory/NaturalTransformation/Strong.lean + theorem CategoryTheory.StrongOplaxNatTrans.id.toOplax + def CategoryTheory.StrongOplaxNatTrans.id + def CategoryTheory.StrongOplaxNatTrans.mkOfOplax + def CategoryTheory.StrongOplaxNatTrans.toOplax + def CategoryTheory.StrongOplaxNatTrans.vcomp + theorem CategoryTheory.StrongOplaxNatTrans.whiskerLeft_naturality_comp + theorem CategoryTheory.StrongOplaxNatTrans.whiskerLeft_naturality_id + theorem CategoryTheory.StrongOplaxNatTrans.whiskerLeft_naturality_naturality + theorem CategoryTheory.StrongOplaxNatTrans.whiskerRight_naturality_comp + theorem CategoryTheory.StrongOplaxNatTrans.whiskerRight_naturality_id + theorem CategoryTheory.StrongOplaxNatTrans.whiskerRight_naturality_naturality + structure CategoryTheory.StrongOplaxNatTrans 2024-07-19 10:17:25 8cbc7c8 chore (test/Lint): remove `#align` test (#14901) This breaks testing for #14887 but can't be automated with `sed` so we remove it manually. ESTIMATED CHANGES Modified test/Lint.lean - theorem toAlign 2024-07-19 10:17:24 94690c5 chore: reduce imports in Mathlib.RingTheory.Polynomial.Basic (#14899) Found by `linter.minImports` (#14840). ESTIMATED CHANGES Modified Mathlib/RingTheory/Polynomial/Basic.lean 2024-07-19 09:45:03 23a781b chore (GroupTheory.MonoidLocalization): split file (#14877) We split `GroupTheory.MonoidLocalization` into `Basic`, `Order`, and `MonoidWithZero`. ESTIMATED CHANGES Modified Mathlib.lean Renamed Mathlib/GroupTheory/MonoidLocalization.lean to Mathlib/GroupTheory/MonoidLocalization/Basic.lean - theorem Localization.liftOn_zero - def Localization.mkOrderEmbedding - theorem Localization.mk_le_mk - theorem Localization.mk_lt_mk - theorem Localization.mk_zero - theorem Submonoid.LocalizationMap.sec_zero_fst - theorem Submonoid.LocalizationMap.subsingleton - theorem Submonoid.LocalizationMap.toMap_injective_iff - theorem Submonoid.LocalizationWithZeroMap.isLeftRegular_of_le_isCancelMulZero - theorem Submonoid.LocalizationWithZeroMap.leftCancelMulZero_of_le_isLeftRegular - def Submonoid.LocalizationWithZeroMap.toMonoidWithZeroHom - structure Submonoid.LocalizationWithZeroMap Added Mathlib/GroupTheory/MonoidLocalization/MonoidWithZero.lean + theorem Localization.liftOn_zero + theorem Localization.mk_zero + theorem Submonoid.LocalizationMap.sec_zero_fst + theorem Submonoid.LocalizationMap.subsingleton + theorem Submonoid.LocalizationMap.toMap_injective_iff + theorem Submonoid.LocalizationWithZeroMap.isLeftRegular_of_le_isCancelMulZero + theorem Submonoid.LocalizationWithZeroMap.leftCancelMulZero_of_le_isLeftRegular + def Submonoid.LocalizationWithZeroMap.toMonoidWithZeroHom + structure Submonoid.LocalizationWithZeroMap Added Mathlib/GroupTheory/MonoidLocalization/Order.lean + def Localization.mkOrderEmbedding + theorem Localization.mk_le_mk + theorem Localization.mk_lt_mk Modified Mathlib/RingTheory/Localization/Basic.lean Modified Mathlib/RingTheory/Localization/Integral.lean Modified Mathlib/Topology/Algebra/Localization.lean Modified scripts/noshake.json Modified scripts/style-exceptions.txt 2024-07-19 09:35:10 b6c5f73 feat(FiberedCategory/Cartesian): define strongly cartesian morphisms (#13410) We define strongly cartesian morphisms with respect to a functor `p : 𝒳 ⥤ 𝒮`, as in [02XK](https://stacks.math.columbia.edu/tag/02XK). We provide some basic API, and prove some basic properties. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/FiberedCategory/Cartesian.lean - theorem CategoryTheory.Functor.IsCartesian.eq_of_fac + theorem CategoryTheory.Functor.IsStronglyCartesian.fac + theorem CategoryTheory.Functor.IsStronglyCartesian.isIso_of_base_isIso + theorem CategoryTheory.Functor.IsStronglyCartesian.map_comp_map + theorem CategoryTheory.Functor.IsStronglyCartesian.map_self + theorem CategoryTheory.Functor.IsStronglyCartesian.map_uniq + theorem CategoryTheory.Functor.IsStronglyCartesian.universal_property 2024-07-19 08:53:06 2840afc feat(GroupTheory/GroupAction/Quotient): subgroup action orbit lemmas and equivs (#13583) Add some lemmas and equivs relating to orbits for and quotients by the action of a subgroup. From AperiodicMonotilesLean. ESTIMATED CHANGES Modified Mathlib/GroupTheory/GroupAction/Quotient.lean 2024-07-19 08:06:39 bb5c2ab chore(Tactic/Ring/Basic): reduce use of autoImplicit (#14709) ESTIMATED CHANGES Modified Mathlib/Tactic/Ring/Basic.lean +/- def Mathlib.Tactic.Ring.ExBase.toProd +/- def Mathlib.Tactic.Ring.ExProd.coeff +/- def Mathlib.Tactic.Ring.ExProd.evalInv +/- def Mathlib.Tactic.Ring.ExProd.toSum +/- inductive Mathlib.Tactic.Ring.ExProd +/- def Mathlib.Tactic.Ring.ExSum.evalInv +/- inductive Mathlib.Tactic.Ring.ExSum +/- theorem Mathlib.Tactic.Ring.add_congr +/- theorem Mathlib.Tactic.Ring.add_mul +/- theorem Mathlib.Tactic.Ring.add_pos_left +/- theorem Mathlib.Tactic.Ring.add_pos_right +/- theorem Mathlib.Tactic.Ring.cast_neg +/- theorem Mathlib.Tactic.Ring.cast_pos +/- theorem Mathlib.Tactic.Ring.cast_rat +/- theorem Mathlib.Tactic.Ring.coeff_mul +/- theorem Mathlib.Tactic.Ring.div_pf +/- def Mathlib.Tactic.Ring.evalAddOverlap +/- def Mathlib.Tactic.Ring.evalCast +/- def Mathlib.Tactic.Ring.evalDiv +/- def Mathlib.Tactic.Ring.evalMul +/- def Mathlib.Tactic.Ring.evalMul₁ +/- def Mathlib.Tactic.Ring.evalNSMul +/- def Mathlib.Tactic.Ring.evalNeg +/- def Mathlib.Tactic.Ring.evalNegProd +/- def Mathlib.Tactic.Ring.evalPow +/- def Mathlib.Tactic.Ring.evalPowAtom +/- def Mathlib.Tactic.Ring.evalPowProd +/- def Mathlib.Tactic.Ring.evalPowProdAtom +/- def Mathlib.Tactic.Ring.evalSub +/- def Mathlib.Tactic.Ring.extractCoeff +/- theorem Mathlib.Tactic.Ring.inv_add +/- theorem Mathlib.Tactic.Ring.mul_add +/- theorem Mathlib.Tactic.Ring.mul_congr +/- theorem Mathlib.Tactic.Ring.mul_exp_pos +/- theorem Mathlib.Tactic.Ring.mul_pf_left +/- theorem Mathlib.Tactic.Ring.mul_pf_right +/- theorem Mathlib.Tactic.Ring.mul_pow +/- theorem Mathlib.Tactic.Ring.mul_pp_pf_overlap +/- theorem Mathlib.Tactic.Ring.natCast_add +/- theorem Mathlib.Tactic.Ring.natCast_mul +/- theorem Mathlib.Tactic.Ring.nsmul_congr +/- theorem Mathlib.Tactic.Ring.pow_add +/- theorem Mathlib.Tactic.Ring.pow_bit0 +/- theorem Mathlib.Tactic.Ring.pow_bit1 +/- theorem Mathlib.Tactic.Ring.pow_congr +/- theorem Mathlib.Tactic.Ring.pow_nat +/- theorem Mathlib.Tactic.Ring.single_pow +/- theorem Mathlib.Tactic.Ring.smul_eq_cast +/- theorem Mathlib.Tactic.Ring.smul_nat +/- theorem Mathlib.Tactic.Ring.zero_pow 2024-07-19 06:15:00 b80dd1b chore: remove autoImplicit in five miscellaneous files (#14883) ESTIMATED CHANGES Modified Mathlib/Order/Estimator.lean Modified Mathlib/Tactic/Sat/FromLRAT.lean +/- theorem Sat.Clause.reify_and +/- theorem Sat.Clause.reify_one +/- theorem Sat.Fmla.proof_of_subsumes +/- theorem Sat.Fmla.refute +/- theorem Sat.Fmla.reify_one +/- theorem Sat.Fmla.reify_or +/- theorem Sat.Literal.reify_neg +/- theorem Sat.Literal.reify_pos +/- theorem Sat.Valuation.mk_implies Modified Mathlib/Testing/SlimCheck/Gen.lean +/- def SlimCheck.Gen.resize +/- def SlimCheck.Gen.run Modified Mathlib/Testing/SlimCheck/Sampleable.lean Modified Mathlib/Testing/SlimCheck/Testable.lean +/- def SlimCheck.TestResult.addVarInfo +/- def SlimCheck.Testable.slimTrace 2024-07-19 06:14:59 a3695b9 chore: Move universally closed characterisation of proper maps (#14848) Did you know that we need the Stone-Čech compactification to talk about sum of continuous functions? Me neither! Split `Topology.ProperMap` into * `Topology.Maps.Proper.Basic` for everything but the universally closed characterisation. * `Topology.Maps.Proper.UniversallyClosed` for the universally closed characterisation. Also move `Topology.Maps` to `Topology.Maps.Basic` to match. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Topology/Algebra/ProperConstSMul.lean Modified Mathlib/Topology/Constructions.lean Modified Mathlib/Topology/ContinuousFunction/Algebra.lean Renamed Mathlib/Topology/Maps.lean to Mathlib/Topology/Maps/Basic.lean Renamed Mathlib/Topology/ProperMap.lean to Mathlib/Topology/Maps/Proper/Basic.lean - theorem isProperMap_iff_isClosedMap_ultrafilter - theorem isProperMap_iff_universally_closed Added Mathlib/Topology/Maps/Proper/UniversallyClosed.lean + theorem isProperMap_iff_isClosedMap_ultrafilter + theorem isProperMap_iff_universally_closed Modified Mathlib/Topology/UniformSpace/CompactConvergence.lean 2024-07-19 05:13:59 b5f3b59 chore(Mathlib/Lean): remove use of autoImplicit (#14884) All eleven files in the Lean/ directory use autoImplicit, but only in a very minor way. Removing it seems easier than making this a permanent exception. ESTIMATED CHANGES Modified Mathlib/Lean/CoreM.lean +/- def CoreM.withImportModules Modified Mathlib/Lean/Elab/Tactic/Basic.lean +/- def Lean.Elab.Tactic.focusAndDoneWithScope Modified Mathlib/Lean/EnvExtension.lean Modified Mathlib/Lean/Exception.lean +/- def successIfFail Modified Mathlib/Lean/Expr/Basic.lean +/- def Lean.Expr.modifyAppArgM +/- def Lean.Expr.modifyArgM Modified Mathlib/Lean/Message.lean Modified Mathlib/Lean/Meta.lean Modified Mathlib/Lean/Meta/Basic.lean +/- def Lean.Meta.preservingMCtx Modified Mathlib/Lean/Meta/DiscrTree.lean Modified Mathlib/Lean/Meta/Simp.lean + def Lean.PHashSet.toList.{u} - def Lean.PHashSet.toList Modified Mathlib/Lean/Thunk.lean +/- theorem Thunk.prod_get_fst +/- theorem Thunk.prod_get_snd 2024-07-19 03:30:11 8af6748 chore: replace 'import Batteries' with finer imports (#14850) ESTIMATED CHANGES Modified .github/workflows/bors.yml Modified .github/workflows/build.yml Modified .github/workflows/build.yml.in Modified .github/workflows/build_fork.yml Modified Mathlib/Algebra/Group/Pi/Basic.lean Modified Mathlib/CategoryTheory/Limits/IsLimit.lean Modified Mathlib/CategoryTheory/Pi/Basic.lean Modified Mathlib/Combinatorics/Quiver/Symmetric.lean Modified Mathlib/Control/Bifunctor.lean Modified Mathlib/Control/Monad/Cont.lean Modified Mathlib/Control/Traversable/Basic.lean Modified Mathlib/Data/Fin/Basic.lean Modified Mathlib/Data/Fin/Tuple/Basic.lean Modified Mathlib/Data/List/Basic.lean Modified Mathlib/Data/List/Defs.lean Modified Mathlib/Data/List/Join.lean Modified Mathlib/Data/List/ProdSigma.lean Modified Mathlib/Data/List/Range.lean Modified Mathlib/Data/Nat/Find.lean Modified Mathlib/Data/PEquiv.lean Modified Mathlib/Data/PFun.lean Modified Mathlib/Data/Rat/Defs.lean Modified Mathlib/Data/Seq/Seq.lean Modified Mathlib/Data/Seq/WSeq.lean Modified Mathlib/Data/Set/Image.lean Modified Mathlib/Data/String/Lemmas.lean Modified Mathlib/Data/Sum/Basic.lean Modified Mathlib/Data/TwoPointing.lean Modified Mathlib/Logic/Function/Defs.lean Modified Mathlib/Order/Basic.lean Modified Mathlib/Order/RelClasses.lean Modified Mathlib/Tactic/Basic.lean Modified Mathlib/Tactic/CC/Addition.lean Modified Mathlib/Tactic/FunProp/Core.lean Modified Mathlib/Tactic/FunProp/Theorems.lean Modified Mathlib/Tactic/FunProp/Types.lean Modified Mathlib/Tactic/Lift.lean Modified Mathlib/Tactic/Linarith/Oracle/FourierMotzkin.lean Modified Mathlib/Tactic/RewriteSearch.lean Modified Mathlib/Tactic/Tauto.lean Modified Mathlib/Testing/SlimCheck/Functions.lean Modified Mathlib/Testing/SlimCheck/Gen.lean Modified scripts/noshake.json Modified test/Clean.lean Modified test/basicTactics.lean 2024-07-19 02:45:11 3fef63f chore: split Algebra/Module/Equiv (#14466) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Algebra/Basic.lean Modified Mathlib/Algebra/Category/ModuleCat/Basic.lean Modified Mathlib/Algebra/Lie/Basic.lean Renamed Mathlib/Algebra/Module/Equiv.lean to Mathlib/Algebra/Module/Equiv/Basic.lean - def LinearEquiv.Simps.apply - def LinearEquiv.Simps.symm_apply - theorem LinearEquiv.apply_symm_apply - theorem LinearEquiv.coe_coe - theorem LinearEquiv.coe_injective - theorem LinearEquiv.coe_mk - theorem LinearEquiv.coe_ofInvolutive - theorem LinearEquiv.coe_symm_mk - theorem LinearEquiv.coe_toAddEquiv - theorem LinearEquiv.coe_toEquiv - theorem LinearEquiv.coe_toEquiv_symm - theorem LinearEquiv.coe_toLinearMap - theorem LinearEquiv.coe_trans - theorem LinearEquiv.comp_coe - theorem LinearEquiv.comp_symm_eq - theorem LinearEquiv.comp_toLinearMap_symm_eq - theorem LinearEquiv.eq_comp_symm - theorem LinearEquiv.eq_comp_toLinearMap_symm - theorem LinearEquiv.eq_symm_apply - theorem LinearEquiv.eq_symm_comp - theorem LinearEquiv.eq_toLinearMap_symm_comp - theorem LinearEquiv.ext - theorem LinearEquiv.ext_iff - theorem LinearEquiv.invFun_eq_symm - theorem LinearEquiv.map_eq_zero_iff - theorem LinearEquiv.map_ne_zero_iff - theorem LinearEquiv.map_smul - theorem LinearEquiv.mk_coe' - theorem LinearEquiv.mk_coe - def LinearEquiv.ofInvolutive - def LinearEquiv.refl - theorem LinearEquiv.refl_apply - theorem LinearEquiv.refl_symm - theorem LinearEquiv.refl_toLinearMap - theorem LinearEquiv.refl_trans - theorem LinearEquiv.self_trans_symm - def LinearEquiv.symm - theorem LinearEquiv.symm_apply_apply - theorem LinearEquiv.symm_apply_eq - theorem LinearEquiv.symm_bijective - theorem LinearEquiv.symm_comp_eq - theorem LinearEquiv.symm_mk - theorem LinearEquiv.symm_symm - theorem LinearEquiv.symm_trans_apply - theorem LinearEquiv.symm_trans_self - theorem LinearEquiv.toAddMonoidHom_commutes - def LinearEquiv.toEquiv - theorem LinearEquiv.toEquiv_inj - theorem LinearEquiv.toEquiv_injective - theorem LinearEquiv.toFun_eq_coe - theorem LinearEquiv.toLinearMap_inj - theorem LinearEquiv.toLinearMap_injective - theorem LinearEquiv.toLinearMap_symm_comp_eq - def LinearEquiv.trans - theorem LinearEquiv.trans_apply - theorem LinearEquiv.trans_refl - theorem LinearEquiv.trans_symm - structure LinearEquiv - def RingEquiv.toSemilinearEquiv - def SemilinearEquivClass.semilinearEquiv Added Mathlib/Algebra/Module/Equiv/Defs.lean + def LinearEquiv.Simps.apply + def LinearEquiv.Simps.symm_apply + theorem LinearEquiv.apply_symm_apply + theorem LinearEquiv.coe_coe + theorem LinearEquiv.coe_injective + theorem LinearEquiv.coe_mk + theorem LinearEquiv.coe_ofInvolutive + theorem LinearEquiv.coe_symm_mk + theorem LinearEquiv.coe_toAddEquiv + theorem LinearEquiv.coe_toEquiv + theorem LinearEquiv.coe_toEquiv_symm + theorem LinearEquiv.coe_toLinearMap + theorem LinearEquiv.coe_trans + theorem LinearEquiv.comp_coe + theorem LinearEquiv.comp_symm_eq + theorem LinearEquiv.comp_toLinearMap_symm_eq + theorem LinearEquiv.eq_comp_symm + theorem LinearEquiv.eq_comp_toLinearMap_symm + theorem LinearEquiv.eq_symm_apply + theorem LinearEquiv.eq_symm_comp + theorem LinearEquiv.eq_toLinearMap_symm_comp + theorem LinearEquiv.ext + theorem LinearEquiv.ext_iff + theorem LinearEquiv.invFun_eq_symm + theorem LinearEquiv.map_eq_zero_iff + theorem LinearEquiv.map_ne_zero_iff + theorem LinearEquiv.map_smul + theorem LinearEquiv.mk_coe' + theorem LinearEquiv.mk_coe + def LinearEquiv.ofInvolutive + def LinearEquiv.refl + theorem LinearEquiv.refl_apply + theorem LinearEquiv.refl_symm + theorem LinearEquiv.refl_toLinearMap + theorem LinearEquiv.refl_trans + theorem LinearEquiv.self_trans_symm + def LinearEquiv.symm + theorem LinearEquiv.symm_apply_apply + theorem LinearEquiv.symm_apply_eq + theorem LinearEquiv.symm_bijective + theorem LinearEquiv.symm_comp_eq + theorem LinearEquiv.symm_mk + theorem LinearEquiv.symm_symm + theorem LinearEquiv.symm_trans_apply + theorem LinearEquiv.symm_trans_self + theorem LinearEquiv.toAddMonoidHom_commutes + def LinearEquiv.toEquiv + theorem LinearEquiv.toEquiv_inj + theorem LinearEquiv.toEquiv_injective + theorem LinearEquiv.toFun_eq_coe + theorem LinearEquiv.toLinearMap_inj + theorem LinearEquiv.toLinearMap_injective + theorem LinearEquiv.toLinearMap_symm_comp_eq + def LinearEquiv.trans + theorem LinearEquiv.trans_apply + theorem LinearEquiv.trans_refl + theorem LinearEquiv.trans_symm + structure LinearEquiv + def RingEquiv.toSemilinearEquiv + def SemilinearEquivClass.semilinearEquiv Modified Mathlib/Algebra/Module/LinearMap/Star.lean Modified Mathlib/Algebra/Module/Opposites.lean Modified Mathlib/Algebra/Module/Submodule/Lattice.lean Modified Mathlib/Algebra/Module/ULift.lean Modified Mathlib/Algebra/Star/Module.lean Modified Mathlib/CategoryTheory/Linear/Basic.lean Modified Mathlib/Data/Finsupp/ToDFinsupp.lean Modified Mathlib/LinearAlgebra/FiniteSpan.lean Modified Mathlib/LinearAlgebra/GeneralLinearGroup.lean Modified Mathlib/LinearAlgebra/Pi.lean Modified Mathlib/LinearAlgebra/Quotient.lean Modified Mathlib/LinearAlgebra/TensorProduct/Basic.lean Modified Mathlib/Topology/Algebra/UniformConvergence.lean Modified scripts/noshake.json 2024-07-19 02:26:17 819c2d4 feat(CategoryTheory): a sequential limit of surjections is surjective (#13507) We prove that in a concrete category whose forgetful functor preserves sequential limits, a sequential limit of surjections is surjective. Since this will be applied to `LightProfinite`, we provide the necessary instance to be able to apply this lemma as well. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Countable.lean Modified Mathlib/CategoryTheory/Limits/ConcreteCategory.lean +/- theorem CategoryTheory.Limits.Concrete.colimit_exists_of_rep_eq +/- theorem CategoryTheory.Limits.Concrete.colimit_exists_rep +/- theorem CategoryTheory.Limits.Concrete.colimit_rep_eq_iff_exists +/- theorem CategoryTheory.Limits.Concrete.colimit_rep_eq_of_exists +/- theorem CategoryTheory.Limits.Concrete.from_union_surjective_of_isColimit +/- theorem CategoryTheory.Limits.Concrete.isColimit_exists_of_rep_eq +/- theorem CategoryTheory.Limits.Concrete.isColimit_exists_rep +/- theorem CategoryTheory.Limits.Concrete.isColimit_rep_eq_iff_exists +/- theorem CategoryTheory.Limits.Concrete.isColimit_rep_eq_of_exists +/- theorem CategoryTheory.Limits.Concrete.isLimit_ext +/- theorem CategoryTheory.Limits.Concrete.limit_ext +/- theorem CategoryTheory.Limits.Concrete.small_sections_of_hasLimit + theorem CategoryTheory.Limits.Concrete.surjective_π_app_zero_of_surjective_map +/- theorem CategoryTheory.Limits.Concrete.to_product_injective_of_isLimit Modified Mathlib/CategoryTheory/Limits/Types.lean + theorem CategoryTheory.Limits.Types.surjective_π_app_zero_of_surjective_map + theorem CategoryTheory.Limits.Types.surjective_π_app_zero_of_surjective_map_aux Modified Mathlib/Topology/Category/LightProfinite/Basic.lean 2024-07-19 01:03:40 a33db4b chore: move attributes out of Init/Align.lean (#14880) ESTIMATED CHANGES Modified Mathlib/Algebra/Order/CauSeq/Basic.lean Modified Mathlib/Data/Setoid/Basic.lean Modified Mathlib/Init/Align.lean Modified scripts/noshake.json 2024-07-19 00:35:46 029e25c feat: add `PowerBasis.exists_smodEq` (#14422) We add `PowerBasis.exists_sModEq`. From `flt-regular`. ESTIMATED CHANGES Modified Mathlib/RingTheory/PowerBasis.lean + theorem PowerBasis.exists_gen_dvd_sub + theorem PowerBasis.exists_smodEq 2024-07-19 00:25:03 966e2d6 feat: define `AddConstEquiv` (#9726) Also revert some `scoped` modifiers on `simp`s. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/AddConstMap/Basic.lean +/- theorem AddConstMap.coe_mk +/- theorem AddConstMap.coe_mul +/- theorem AddConstMap.coe_one +/- theorem AddConstMap.coe_pow +/- theorem AddConstMap.comp_id +/- theorem AddConstMap.conjNeg_symm +/- theorem AddConstMap.id_comp +/- theorem AddConstMap.mk_coe + def AddConstMap.toEnd +/- theorem AddConstMap.toFun_eq_coe Added Mathlib/Algebra/AddConstMap/Equiv.lean + def AddConstEquiv.Simps.symm_apply + theorem AddConstEquiv.coe_toEquiv + def AddConstEquiv.equivUnits + theorem AddConstEquiv.ext + def AddConstEquiv.refl + theorem AddConstEquiv.refl_trans + theorem AddConstEquiv.self_trans_symm + def AddConstEquiv.symm + theorem AddConstEquiv.symm_refl + theorem AddConstEquiv.symm_symm + theorem AddConstEquiv.symm_trans_self + def AddConstEquiv.toAddConstMapHom + theorem AddConstEquiv.toEquiv_inj + theorem AddConstEquiv.toEquiv_injective + def AddConstEquiv.toPerm + def AddConstEquiv.trans + theorem AddConstEquiv.trans_refl + structure AddConstEquiv 2024-07-18 21:00:35 03960f7 feat(CstarRing): various lemmas related to the spectral order and the CFC (#13676) This PR proves various lemmas for C*-algebras, such as - if `a ≤ b`, then `‖a‖ ≤ ‖b‖` - `star a * b *a ≤ ‖b‖ • (star a * a)` - if `a` is positive, then `‖a‖ ∈ spectrum ℝ a`. It also puts an order instance on `Unitization ℂ A`, needed to prove the above. - [x] depends on: #13650 - [x] depends on: #13673 ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Algebra/Unitization.lean + theorem Unitization.inl_sub + theorem Unitization.inr_sub Modified Mathlib/Analysis/NormedSpace/Spectrum.lean + theorem NNReal.spectralRadius_mem_spectrum + theorem Real.spectralRadius_mem_spectrum + theorem Real.spectralRadius_mem_spectrum_or + theorem coe_mem_spectrum_real_of_nonneg Modified Mathlib/Analysis/NormedSpace/Star/ContinuousFunctionalCalculus/Instances.lean + theorem IsSelfAdjoint.coe_mem_spectrum_complex Modified Mathlib/Analysis/NormedSpace/Star/ContinuousFunctionalCalculus/Order.lean + theorem CstarRing.conjugate_le_norm_smul' + theorem CstarRing.conjugate_le_norm_smul + theorem CstarRing.mul_star_le_algebraMap_norm_sq + theorem CstarRing.nnnorm_mem_spectrum_of_nonneg + theorem CstarRing.norm_le_norm_of_nonneg_of_le + theorem CstarRing.norm_mem_spectrum_of_nonneg + theorem CstarRing.norm_or_neg_norm_mem_spectrum + theorem CstarRing.star_mul_le_algebraMap_norm_sq + theorem IsSelfAdjoint.toReal_spectralRadius_eq_norm + theorem Unitization.inr_le_iff + theorem Unitization.inr_nonneg_iff - theorem mul_star_le_algebraMap_norm_sq - theorem star_mul_le_algebraMap_norm_sq Modified Mathlib/Analysis/NormedSpace/Star/Spectrum.lean + theorem IsSelfAdjoint.toReal_spectralRadius_complex_eq_norm Modified Mathlib/Data/NNReal/Basic.lean + theorem NNReal.algebraMap_eq_coe Modified Mathlib/Tactic.lean Added Mathlib/Tactic/ContinuousFunctionalCalculus.lean Modified Mathlib/Topology/ContinuousFunction/FunctionalCalculus.lean + theorem StarOrderedRing.nonneg_iff_spectrum_nonneg Modified Mathlib/Topology/ContinuousFunction/NonUnitalFunctionalCalculus.lean + theorem StarOrderedRing.nonneg_iff_quasispectrum_nonneg Modified scripts/noshake.json 2024-07-18 19:47:06 e90f449 chore: remove spurious indent on set_option (#14879) ESTIMATED CHANGES Modified Mathlib/Data/Complex/Basic.lean 2024-07-18 19:47:05 f95f6a1 docs(Data/BitArray): fix doc creating style exception (#14872) Fix a doc string that was showing up too late. ESTIMATED CHANGES Modified Mathlib/Data/ByteArray.lean Modified scripts/style-exceptions.txt 2024-07-18 19:23:42 c0114eb chore: remove one superfluous `nolint defLemma` (#14610) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Limits/Shapes/Pullback/CommSq.lean 2024-07-18 19:23:41 086c4c3 feat(RingTheory/AdicCompletion): adic completion of Noetherian ring is flat (#14366) We show that the adic completion of a Noetherian ring `R` is flat. More precisely, we show that on finite modules over a Noetherian ring, tensoring a module `M` with the adic completion of `R` is the same as adically completing `M`. From this we conclude since adic completion on such modules is exact. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Limits/Shapes/Terminal.lean + theorem CategoryTheory.Limits.isIso_of_isInitial + theorem CategoryTheory.Limits.isIso_of_isTerminal Modified Mathlib/RingTheory/AdicCompletion/AsTensorProduct.lean + def AdicCompletion.lTensorKerIncl + def AdicCompletion.ofTensorProductEquivOfFiniteNoetherian + theorem AdicCompletion.ofTensorProductEquivOfFiniteNoetherian_apply + theorem AdicCompletion.ofTensorProductEquivOfFiniteNoetherian_symm_of + def AdicCompletion.ofTensorProductEquivOfPiFintype + theorem AdicCompletion.ofTensorProduct_bijective_of_finite_of_isNoetherian + theorem AdicCompletion.ofTensorProduct_bijective_of_map_from_fin - theorem AdicCompletion.ofTensorProduct_surjective_of_fg + theorem AdicCompletion.ofTensorProduct_surjective_of_finite + theorem AdicCompletion.tensor_map_id_left_eq_map + theorem AdicCompletion.tensor_map_id_left_injective_of_injective 2024-07-18 18:03:55 20d3080 feat(AlgebraicGeometry): closed immersions are local at the target (#14763) Shows that closed immersions are local at the target. ESTIMATED CHANGES Modified Mathlib/AlgebraicGeometry/AffineScheme.lean + def AlgebraicGeometry.arrowIsoSpecΓOfIsAffine Modified Mathlib/AlgebraicGeometry/Morphisms/Basic.lean Modified Mathlib/AlgebraicGeometry/Morphisms/ClosedImmersion.lean + theorem AlgebraicGeometry.IsClosedImmersion.eq_inf + theorem AlgebraicGeometry.IsClosedImmersion.of_surjective_of_isAffine Modified Mathlib/CategoryTheory/MorphismProperty/Basic.lean Modified Mathlib/RingTheory/LocalProperties.lean + theorem surjective_respectsIso 2024-07-18 16:46:06 0a87e06 feat(Data.Real.ENatENNReal/EReal): add a few coe lemmas (#14835) Add a few lemmas about coercion: - `toENNReal_coe_eq_iff`, `toENNReal_pow` in Data.Real.ENatENNReal - 9 lemmas about `natCast` into `EReal ` in Data.Real.EReal Allows a better handle on functions from ENat to ENNReal, as well as from Nat to EReal. ESTIMATED CHANGES Modified Mathlib/Data/Real/ENatENNReal.lean + theorem ENat.toENNReal_coe_eq_iff + theorem ENat.toENNReal_pow Modified Mathlib/Data/Real/EReal.lean + theorem EReal.coe_coe_eq_natCast + theorem EReal.natCast_div_le + theorem EReal.natCast_eq_iff + theorem EReal.natCast_le_iff + theorem EReal.natCast_lt_iff + theorem EReal.natCast_mul + theorem EReal.natCast_ne_bot + theorem EReal.natCast_ne_iff + theorem EReal.natCast_ne_top 2024-07-18 16:46:04 a14148b feat(Order/WellFounded): well-founded of strictly monotone (#14034) This PR is separated off from #12273, which no longer depends on it. We show that an order with a strictly monotone function into an order with WellFoundedLT is itself WellFoundedLT. We also add three dual variants, and provide an instance showing that a Nat-graded order is thus well-founded. ESTIMATED CHANGES Modified Mathlib/Order/Grade.lean + theorem GradeOrder.wellFoundedGT + theorem GradeOrder.wellFoundedLT Modified Mathlib/Order/WellFounded.lean + theorem StrictAnti.wellFoundedGT + theorem StrictAnti.wellFoundedLT + theorem StrictMono.wellFoundedGT + theorem StrictMono.wellFoundedLT 2024-07-18 16:07:39 84542b3 refactor(GroupTheory/Complement,SchurZassenhaus): Replace `Fintype.card` with `Nat.card` (#14856) We're in the home stretch! This PR switches over `GroupTheory/Complement` and `GroupTheory/SchurZassenhaus` from `Fintype.card` to `Nat.card`. ESTIMATED CHANGES Modified Mathlib/GroupTheory/Complement.lean +/- theorem Subgroup.IsComplement'.card_mul +/- theorem Subgroup.IsComplement.card_mul +/- theorem Subgroup.isComplement'_iff_card_mul_and_disjoint +/- theorem Subgroup.isComplement'_of_card_mul_and_disjoint +/- theorem Subgroup.isComplement'_of_coprime Modified Mathlib/GroupTheory/Nilpotent.lean Modified Mathlib/GroupTheory/OrderOfElement.lean +/- theorem inf_eq_bot_of_coprime Modified Mathlib/GroupTheory/SchurZassenhaus.lean - theorem Subgroup.exists_left_complement'_of_coprime_of_fintype - theorem Subgroup.exists_right_complement'_of_coprime_of_fintype 2024-07-18 15:27:34 28267f8 fix(RingTheory/LaurentSeries): fix two suggestions left (#14864) We fix two suggestions from #14418 that were accidentally forgotten. ESTIMATED CHANGES Modified Mathlib/RingTheory/LaurentSeries.lean 2024-07-18 14:25:02 be17999 chore: remove unused imports (#14849) These are all unused imports of files in Batteries, that are missed by `shake` because of `noshake`. ESTIMATED CHANGES Modified Mathlib/Control/Traversable/Basic.lean Modified Mathlib/Data/List/Defs.lean Modified Mathlib/Data/Nat/BitIndices.lean Modified Mathlib/Lean/Meta/Simp.lean Modified Mathlib/Tactic/ApplyCongr.lean Modified Mathlib/Tactic/FunProp/Core.lean Modified Mathlib/Tactic/FunProp/FunctionData.lean Modified Mathlib/Tactic/NormNum/Core.lean Modified Mathlib/Tactic/Widget/Calc.lean Modified Mathlib/Tactic/Widget/Conv.lean Modified Mathlib/Util/WhatsNew.lean 2024-07-18 14:25:01 32330d8 feat(Topology/Basic): add some `AccPt` lemmas (#14787) Add some lemmas about `AccPt`. ESTIMATED CHANGES Modified Mathlib/Topology/Basic.lean + theorem AccPt.clusterPt + theorem accPt_sup + theorem frequently_nhds_iff 2024-07-18 14:24:59 3e979fb feat(MetricSpace/Ultra): IsUltrametricDist and basic facts on open/closed sets in such spaces (#14433) TODO in future PRs - add "all triangles are isosceles" in such normed spaces - totally disconnected space - give instances of this to Z_p, Q_p, etc ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Topology/MetricSpace/Ultra/Basic.lean + theorem IsUltrametricDist.ball_eq_of_mem + theorem IsUltrametricDist.ball_eq_or_disjoint + theorem IsUltrametricDist.ball_subset_trichotomy + theorem IsUltrametricDist.closedBall_eq_of_mem + theorem IsUltrametricDist.closedBall_eq_or_disjoint + theorem IsUltrametricDist.closedBall_subset_trichotomy + theorem IsUltrametricDist.frontier_ball_eq_empty + theorem IsUltrametricDist.frontier_closedBall_eq_empty + theorem IsUltrametricDist.isClopen_ball + theorem IsUltrametricDist.isClopen_closedBall + theorem IsUltrametricDist.isClopen_sphere + theorem IsUltrametricDist.isClosed_ball + theorem IsUltrametricDist.isOpen_closedBall + theorem IsUltrametricDist.isOpen_sphere + theorem IsUltrametricDist.mem_ball_iff + theorem IsUltrametricDist.mem_closedBall_iff + theorem dist_triangle_max 2024-07-18 12:18:46 863c4af doc(Tactic): add remaining missing module docstrings (#14828) This fixes all `missing module docstring` exceptions except for `Data/ByteArray`. While in the area, remove some superfluous open statements or make minor formatting fixes. ESTIMATED CHANGES Modified Mathlib/Tactic/ApplyWith.lean Modified Mathlib/Tactic/Basic.lean Modified Mathlib/Tactic/ByContra.lean Modified Mathlib/Tactic/ClearExcept.lean Modified Mathlib/Tactic/Coe.lean Modified Mathlib/Tactic/Constructor.lean Modified Mathlib/Tactic/ExistsI.lean Modified Mathlib/Tactic/PushNeg.lean Modified Mathlib/Tactic/Recover.lean Modified Mathlib/Tactic/Rename.lean Modified Mathlib/Tactic/RenameBVar.lean Modified Mathlib/Tactic/Set.lean Modified Mathlib/Tactic/SimpRw.lean Modified Mathlib/Tactic/Substs.lean Modified Mathlib/Tactic/TypeCheck.lean Modified scripts/style-exceptions.txt Modified test/TypeCheck.lean 2024-07-18 12:08:25 65d6572 refactor(AlgebraicGeometry): Rework `Morphisms/Basic` to phase away from TFAEs (#14430) Previously the contents of `Morphism/Baisic` were all implementation detail that needed to be copied over to each new morphism class. In this PR we clean up the file and promote it into a proper interface of the API. We also phase away from TFAEs in favor of easier to use iff lemmas. We introduce the following two interfaces: ## `IsLocalAtTarget` - `AlgebraicGeometry.IsLocalAtTarget`: We say that `IsLocalAtTarget P` for `P : MorphismProperty Scheme` if 1. `P` respects isomorphisms. 2. If `P` holds for `f : X ⟶ Y`, then `P` holds for `f ∣_ U` for any open `U` of `Y`. 3. If `P` holds for `f ∣_ U` for an open cover `U` of `Y`, then `P` holds for `f`. For a morphism property `P` local at the target and `f : X ⟶ Y`, we provide these API lemmas: - `AlgebraicGeometry.IsLocalAtTarget.of_isPullback`: `P` is preserved under pullback along open immersions. - `AlgebraicGeometry.IsLocalAtTarget.restrict`: `P f → P (f ∣_ U)` for an open `U` of `Y`. - `AlgebraicGeometry.IsLocalAtTarget.iff_of_iSup_eq_top`: `P f ↔ ∀ i, P (f ∣_ U i)` for a family `U i` of open sets covering `Y`. - `AlgebraicGeometry.IsLocalAtTarget.iff_of_openCover`: `P f ↔ ∀ i, P (𝒰.pullbackHom f i)` for `𝒰 : Y.openCover`. ## `HasAffineProperty` - `AlgebraicGeometry.HasAffineProperty`: `HasAffineProperty P Q` is a type class asserting that `P` is local at the target, and over affine schemes, it is equivalent to `Q : AffineTargetMorphismProperty`. For `HasAffineProperty P Q` and `f : X ⟶ Y`, we provide these API lemmas: - `AlgebraicGeometry.HasAffineProperty.of_isPullback`: `P` is preserved under pullback along open immersions from affine schemes. - `AlgebraicGeometry.HasAffineProperty.restrict`: `P f → Q (f ∣_ U)` for affine `U` of `Y`. - `AlgebraicGeometry.HasAffineProperty.iff_of_iSup_eq_top`: `P f ↔ ∀ i, Q (f ∣_ U i)` for a family `U i` of affine open sets covering `Y`. - `AlgebraicGeometry.HasAffineProperty.iff_of_openCover`: `P f ↔ ∀ i, P (𝒰.pullbackHom f i)` for affine open covers `𝒰` of `Y`. - `AlgebraicGeometry.HasAffineProperty.stableUnderBaseChange_mk`: If `Q` is stable under affine base change, then `P` is stable under arbitrary base change. ESTIMATED CHANGES Modified Mathlib/Algebra/Category/Ring/Basic.lean + theorem CommRingCat.id_apply Modified Mathlib/AlgebraicGeometry/AffineScheme.lean + theorem AlgebraicGeometry.IsAffineOpen.preimage_of_isIso Modified Mathlib/AlgebraicGeometry/Cover/Open.lean + def AlgebraicGeometry.Scheme.OpenCover.pullbackCoverAffineRefinementObjIso + theorem AlgebraicGeometry.Scheme.OpenCover.pullbackCoverAffineRefinementObjIso_inv_map + theorem AlgebraicGeometry.Scheme.OpenCover.pullbackCoverAffineRefinementObjIso_inv_pullbackHom + def AlgebraicGeometry.Scheme.OpenCover.pullbackHom + theorem AlgebraicGeometry.Scheme.OpenCover.pullbackHom_map Modified Mathlib/AlgebraicGeometry/Morphisms/Basic.lean - theorem AlgebraicGeometry.AffineTargetMorphismProperty.IsLocal.affine_openCover_TFAE - theorem AlgebraicGeometry.AffineTargetMorphismProperty.IsLocal.affine_openCover_iff - theorem AlgebraicGeometry.AffineTargetMorphismProperty.IsLocal.affine_target_iff - theorem AlgebraicGeometry.AffineTargetMorphismProperty.IsLocal.stableUnderBaseChange - theorem AlgebraicGeometry.AffineTargetMorphismProperty.IsLocal.targetAffineLocally_isLocal - theorem AlgebraicGeometry.AffineTargetMorphismProperty.IsLocal.targetAffineLocally_pullback_fst_of_right_of_stableUnderBaseChange - structure AlgebraicGeometry.AffineTargetMorphismProperty.IsLocal + theorem AlgebraicGeometry.AffineTargetMorphismProperty.StableUnderBaseChange.mk + theorem AlgebraicGeometry.AffineTargetMorphismProperty.arrow_mk_iso_iff +/- theorem AlgebraicGeometry.AffineTargetMorphismProperty.cancel_left_of_respectsIso +/- theorem AlgebraicGeometry.AffineTargetMorphismProperty.cancel_right_of_respectsIso + theorem AlgebraicGeometry.AffineTargetMorphismProperty.ext - theorem AlgebraicGeometry.AffineTargetMorphismProperty.isLocalOfOpenCoverImply + def AlgebraicGeometry.AffineTargetMorphismProperty.of +/- theorem AlgebraicGeometry.AffineTargetMorphismProperty.respectsIso_mk +/- def AlgebraicGeometry.AffineTargetMorphismProperty.toProperty +/- theorem AlgebraicGeometry.AffineTargetMorphismProperty.toProperty_apply - theorem AlgebraicGeometry.CommRingCat.id_apply + theorem AlgebraicGeometry.HasAffineProperty.copy + theorem AlgebraicGeometry.HasAffineProperty.eq_targetAffineLocally + theorem AlgebraicGeometry.HasAffineProperty.iff_of_iSup_eq_top + theorem AlgebraicGeometry.HasAffineProperty.iff_of_isAffine + theorem AlgebraicGeometry.HasAffineProperty.iff_of_openCover + theorem AlgebraicGeometry.HasAffineProperty.of_iSup_eq_top + theorem AlgebraicGeometry.HasAffineProperty.of_isLocalAtTarget + theorem AlgebraicGeometry.HasAffineProperty.of_isPullback + theorem AlgebraicGeometry.HasAffineProperty.of_openCover + theorem AlgebraicGeometry.HasAffineProperty.restrict + theorem AlgebraicGeometry.HasAffineProperty.stableUnderBaseChange - theorem AlgebraicGeometry.IsAffineOpen.preimage_of_isIso + theorem AlgebraicGeometry.IsLocalAtTarget.iff_of_iSup_eq_top + theorem AlgebraicGeometry.IsLocalAtTarget.iff_of_openCover + theorem AlgebraicGeometry.IsLocalAtTarget.of_iSup_eq_top + theorem AlgebraicGeometry.IsLocalAtTarget.of_isPullback + theorem AlgebraicGeometry.IsLocalAtTarget.of_openCover + theorem AlgebraicGeometry.IsLocalAtTarget.restrict - theorem AlgebraicGeometry.PropertyIsLocalAtTarget.openCover_TFAE - theorem AlgebraicGeometry.PropertyIsLocalAtTarget.openCover_iff - structure AlgebraicGeometry.PropertyIsLocalAtTarget + theorem AlgebraicGeometry.of_targetAffineLocally_of_isPullback - theorem AlgebraicGeometry.propertyIsLocalAtTarget_of_morphismRestrict - theorem AlgebraicGeometry.targetAffineLocally_of_openCover Modified Mathlib/AlgebraicGeometry/Morphisms/Constructors.lean - theorem AlgebraicGeometry.AffineTargetMorphismProperty.IsLocal.diagonal - theorem AlgebraicGeometry.AffineTargetMorphismProperty.IsLocal.diagonal_affine_openCover_TFAE - theorem AlgebraicGeometry.AffineTargetMorphismProperty.diagonal_of_targetAffineLocally - def AlgebraicGeometry.AffineTargetMorphismProperty.of - theorem AlgebraicGeometry.AffineTargetMorphismProperty.of_isLocal_of_isLocalAtTarget - theorem AlgebraicGeometry.AffineTargetMorphismProperty.targetAffineLocally_of_eq_of_isLocalAtTarget + theorem AlgebraicGeometry.HasAffineProperty.diagonal_iff + theorem AlgebraicGeometry.HasAffineProperty.diagonal_of_diagonal_of_isPullback + theorem AlgebraicGeometry.HasAffineProperty.diagonal_of_openCover + theorem AlgebraicGeometry.HasAffineProperty.diagonal_of_openCover_diagonal - def AlgebraicGeometry.MorphismProperty.stalkwise - theorem AlgebraicGeometry.MorphismProperty.stalkwiseIsLocalAtTarget_of_respectsIso - theorem AlgebraicGeometry.MorphismProperty.stalkwise_respectsIso - def AlgebraicGeometry.MorphismProperty.topologically - theorem AlgebraicGeometry.MorphismProperty.topologically_isStableUnderComposition - theorem AlgebraicGeometry.MorphismProperty.topologically_iso_le - theorem AlgebraicGeometry.MorphismProperty.topologically_propertyIsLocalAtTarget - theorem AlgebraicGeometry.MorphismProperty.topologically_respectsIso - theorem AlgebraicGeometry.diagonal_targetAffineLocally_eq_targetAffineLocally - theorem AlgebraicGeometry.diagonal_targetAffineLocally_of_openCover + def AlgebraicGeometry.stalkwise + theorem AlgebraicGeometry.stalkwiseIsLocalAtTarget_of_respectsIso + theorem AlgebraicGeometry.stalkwise_respectsIso + def AlgebraicGeometry.topologically + theorem AlgebraicGeometry.topologically_isLocalAtTarget + theorem AlgebraicGeometry.topologically_isStableUnderComposition + theorem AlgebraicGeometry.topologically_iso_le + theorem AlgebraicGeometry.topologically_respectsIso - theorem AlgebraicGeometry.universally_isLocalAtTarget_of_morphismRestrict Modified Mathlib/AlgebraicGeometry/Morphisms/FiniteType.lean - theorem AlgebraicGeometry.LocallyOfFiniteType.openCover_iff Modified Mathlib/AlgebraicGeometry/Morphisms/OpenImmersion.lean - theorem AlgebraicGeometry.IsOpenImmersion.openCover_TFAE - theorem AlgebraicGeometry.IsOpenImmersion.openCover_iff - theorem AlgebraicGeometry.isOpenImmersion_isLocalAtTarget Modified Mathlib/AlgebraicGeometry/Morphisms/QuasiCompact.lean - def AlgebraicGeometry.QuasiCompact.affineProperty - theorem AlgebraicGeometry.QuasiCompact.affineProperty_isLocal - theorem AlgebraicGeometry.QuasiCompact.affineProperty_stableUnderBaseChange - theorem AlgebraicGeometry.QuasiCompact.affineProperty_toProperty - theorem AlgebraicGeometry.QuasiCompact.affine_openCover_iff - theorem AlgebraicGeometry.QuasiCompact.affine_openCover_tfae - theorem AlgebraicGeometry.QuasiCompact.isLocalAtTarget - theorem AlgebraicGeometry.QuasiCompact.openCover_iff - theorem AlgebraicGeometry.QuasiCompact.openCover_tfae - theorem AlgebraicGeometry.quasiCompact_eq_affineProperty - theorem AlgebraicGeometry.quasiCompact_iff_affineProperty +/- theorem AlgebraicGeometry.quasiCompact_stableUnderBaseChange Modified Mathlib/AlgebraicGeometry/Morphisms/QuasiSeparated.lean - def AlgebraicGeometry.QuasiSeparated.affineProperty - theorem AlgebraicGeometry.QuasiSeparated.affineProperty_isLocal - theorem AlgebraicGeometry.QuasiSeparated.affine_openCover_TFAE - theorem AlgebraicGeometry.QuasiSeparated.affine_openCover_iff - theorem AlgebraicGeometry.QuasiSeparated.isLocalAtTarget + theorem AlgebraicGeometry.QuasiSeparated.of_comp - theorem AlgebraicGeometry.QuasiSeparated.openCover_TFAE - theorem AlgebraicGeometry.QuasiSeparated.openCover_iff + theorem AlgebraicGeometry.quasiCompact_affineProperty_iff_quasiSeparatedSpace - theorem AlgebraicGeometry.quasiSeparatedOfComp - theorem AlgebraicGeometry.quasiSeparated_eq_affineProperty - theorem AlgebraicGeometry.quasiSeparated_eq_affineProperty_diagonal - theorem AlgebraicGeometry.quasi_compact_affineProperty_diagonal_eq - theorem AlgebraicGeometry.quasi_compact_affineProperty_iff_quasiSeparatedSpace Modified Mathlib/AlgebraicGeometry/Morphisms/RingHomProperties.lean + theorem RingHom.PropertyIsLocal.hasAffinePropertyAffineLocally - theorem RingHom.PropertyIsLocal.is_local_affineLocally Modified Mathlib/AlgebraicGeometry/Morphisms/UniversallyClosed.lean - theorem AlgebraicGeometry.UniversallyClosed.openCover_iff - theorem AlgebraicGeometry.universallyClosed_isLocalAtTarget Modified Mathlib/AlgebraicGeometry/Restrict.lean + def AlgebraicGeometry.Scheme.resTop Modified Mathlib/CategoryTheory/Limits/Shapes/Pullback/CommSq.lean + theorem CategoryTheory.IsPullback.of_id_fst + theorem CategoryTheory.IsPullback.of_id_snd + theorem CategoryTheory.IsPushout.of_id_fst + theorem CategoryTheory.IsPushout.of_id_snd 2024-07-18 10:47:39 db141d8 chore: separate dependent typeclass assumptions (#14746) Flagged by the linter at #14731. If you are reviewing, there is a challenge: sectioning off `IsDomain` from `IsDedekindDomain` means that a lemma that before this PR had both in scope and actually really used `IsDomain` has suddenly become "worse", since now it only has `IsDedekindDomain` in scope. I am thinking about how to automatically address this challenge, but for the moment, this is what there is! :smile: ESTIMATED CHANGES Modified Mathlib/RingTheory/DedekindDomain/Different.lean 2024-07-18 10:47:38 3050e82 feat(Algebra/Group/SemiconjBy): relating SemiconjBy to orderOf (#14674) this PR adds `SemiconjBy.orderOf_eq`, proving that semiconjugates have the same order. it also adds `SemiconjBy.eq_one_iff`, which is used to prove the previous statement. relevant zulip thread: https://leanprover.zulipchat.com/#narrow/stream/113489-new-members/topic/group.20problem ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Semiconj/Basic.lean + theorem SemiconjBy.eq_one_iff Modified Mathlib/GroupTheory/OrderOfElement.lean + theorem SemiconjBy.orderOf_eq 2024-07-18 10:47:37 3f9dc4a chore(CategoryTheory/Monoidal): oplax functors and comonoids (#13312) Oplax monoidal functors take comonoids to comonoids. Also, generalize constructions of limits in `Mon_` so limits of a particular shape in `C` are enough to give limits of that shape in `Mon_ C`. - [x] depends on: #13310 - [x] depends on: #13316 ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Monoidal/Comon_.lean Modified Mathlib/CategoryTheory/Monoidal/Internal/FunctorCategory.lean + def CategoryTheory.Monoidal.ComonFunctorCategoryEquivalence.counitIso + def CategoryTheory.Monoidal.ComonFunctorCategoryEquivalence.functor + def CategoryTheory.Monoidal.ComonFunctorCategoryEquivalence.functorObj + def CategoryTheory.Monoidal.ComonFunctorCategoryEquivalence.inverseObj - def CategoryTheory.Monoidal.MonFunctorCategoryEquivalence.Functor.obj - def CategoryTheory.Monoidal.MonFunctorCategoryEquivalence.Inverse.obj + def CategoryTheory.Monoidal.MonFunctorCategoryEquivalence.functorObj + def CategoryTheory.Monoidal.MonFunctorCategoryEquivalence.inverseObj + def CategoryTheory.Monoidal.comonFunctorCategoryEquivalence Modified Mathlib/CategoryTheory/Monoidal/Internal/Limits.lean Modified Mathlib/CategoryTheory/Monoidal/Limits.lean Added test/CategoryTheory/Mon_.lean 2024-07-18 09:55:28 93deccc feat(RingTheory/Derivation/Basic): add lemmas about the derivation of a fraction (#14857) Add lemmas about the derivation of a fraction in a field. ESTIMATED CHANGES Modified Mathlib/RingTheory/Derivation/Basic.lean + theorem Derivation.leibniz_div + theorem Derivation.leibniz_div_const +/- theorem Derivation.leibniz_inv + theorem Derivation.leibniz_zpow 2024-07-18 09:55:27 0e07f04 chore(Algebra/GroupWithZero/Opposite): Move instances from `Algebra.Ring.Opposite` (#14851) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/GroupWithZero/NonZeroDivisors.lean Added Mathlib/Algebra/GroupWithZero/Opposite.lean Modified Mathlib/Algebra/Module/Defs.lean Modified Mathlib/Algebra/Ring/Opposite.lean Modified Mathlib/Algebra/SMulWithZero.lean 2024-07-18 09:55:25 36e3f75 chore(Matrix/Transvection): add `length`/`get` lemmas (#14777) ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/Matrix/Transvection.lean + theorem Matrix.Pivot.length_listTransvecCol + theorem Matrix.Pivot.length_listTransvecRow + theorem Matrix.Pivot.listTransvecCol_get + theorem Matrix.Pivot.listTransvecRow_get 2024-07-18 09:08:36 a0e7e34 doc(README): Link to Gitpod (#14861) The link to https://gitpod.io/#https://github.com/leanprover-community/mathlib4 was present in the mathlib3 README. It is unclear why this was not ported. ESTIMATED CHANGES Modified README.md 2024-07-18 09:08:34 1ad1b3f feat(Algebra/Algebra/Defs): add missing coe lemmas for algebraMap (#14639) Add lemmas `algebraMap.coe_sub`, `algebraMap.coe_natCast` and `algebraMap.coe_smul` ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/Defs.lean + theorem algebraMap.coe_natCast + theorem algebraMap.coe_smul + theorem algebraMap.coe_sub 2024-07-18 09:08:33 6a293e3 perf(DirectSum.Ring): factor out data fields (#11329) During unification, we want Lean to unfold as little data as possible. Declaring instances with inlined data fields results in larger terms which need more checking. Here we factor out the `Mul` and `NatCast` instances. ESTIMATED CHANGES Modified Mathlib/Algebra/DirectSum/Ring.lean 2024-07-18 08:58:35 8aa2111 feat(Analysis.Normed.Ring.SeminormFromBounded): add SeminormFromBounded (#14359) We prove [BGR, Proposition 1.2.1/2] : given a nonzero additive group seminorm on a commutative ring `R` such that for some positive `c : ℝ` and every `x y : R`, the inequality `f (x * y) ≤ c * f x * f y)` is satisfied, we create a ring seminorm on `R`. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/Normed/Ring/SeminormFromBounded.lean + theorem map_mul_zero_of_map_zero + theorem map_one_ne_zero + theorem map_pow_ne_zero + def normFromBounded + def seminormFromBounded' + def seminormFromBounded + theorem seminormFromBounded_add + theorem seminormFromBounded_aux + theorem seminormFromBounded_bddAbove_range + theorem seminormFromBounded_eq_zero_iff + theorem seminormFromBounded_ge + theorem seminormFromBounded_isNonarchimedean + theorem seminormFromBounded_is_norm_iff + theorem seminormFromBounded_ker + theorem seminormFromBounded_le + theorem seminormFromBounded_mul + theorem seminormFromBounded_neg + theorem seminormFromBounded_nonneg + theorem seminormFromBounded_nonzero + theorem seminormFromBounded_of_mul_apply + theorem seminormFromBounded_of_mul_is_mul + theorem seminormFromBounded_of_mul_le + theorem seminormFromBounded_one + theorem seminormFromBounded_one_le + theorem seminormFromBounded_zero 2024-07-18 08:27:38 3109eab feat(Topology): stoneCechUnit injective for T35Space (#12536) The map`stoneCechUnit` is injective when the underlying space is a `T35Space`. ESTIMATED CHANGES Modified Mathlib/Topology/CompletelyRegular.lean + theorem injective_stoneCechUnit_of_t35Space + theorem separatesPoints_continuous_of_t35Space_Icc Modified Mathlib/Topology/StoneCech.lean + theorem eq_if_stoneCechUnit_eq 2024-07-18 07:43:44 098bb43 feat(MeasureTheory): adding setLintegral_compl and setIntegral_compl theorems. (#14853) Adding setLintegral_compl and setIntegral_compl theorems for convenience. setIntegral_compl is used immediately to simplify a few lines in Martingale.Convergence.lean. ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Integral/Lebesgue.lean + theorem MeasureTheory.setLintegral_compl Modified Mathlib/MeasureTheory/Integral/SetIntegral.lean + theorem MeasureTheory.setIntegral_compl Modified Mathlib/Probability/Martingale/Convergence.lean 2024-07-18 07:43:43 7cfc695 chore(Mathlib/Init/ZeroOne): rename `Mathlib.Init.ZeroOne` to `Mathlib.Algebra.Group.ZeroOne` (#14642) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Expr.lean Modified Mathlib/Algebra/Group/Defs.lean Renamed Mathlib/Init/ZeroOne.lean to Mathlib/Algebra/Group/ZeroOne.lean Modified Mathlib/Algebra/NeZero.lean Modified Mathlib/Data/Int/Defs.lean Modified Mathlib/Data/Num/Basic.lean Modified Mathlib/Data/Set/Basic.lean Modified Mathlib/Logic/Nonempty.lean Modified Mathlib/Tactic/ToAdditive.lean 2024-07-18 07:43:42 21afd96 feat: normed structure instances for SetLike subobjects (#14545) ESTIMATED CHANGES Modified Mathlib/Analysis/Normed/Field/Basic.lean Modified Mathlib/Analysis/Normed/Group/Basic.lean + theorem SubgroupClass.coe_norm Modified Mathlib/Analysis/Normed/Group/Submodule.lean Modified Mathlib/Analysis/NormedSpace/Basic.lean 2024-07-18 07:43:41 9ef349a feat: `#min_imports in` command (#14437) This PR introduces the `#min_imports in` command. Writing `#min_imports in stx` scans the syntax `stx` to find a collection of minimal imports that should be sufficient for `stx` to make sense. If `stx` is a command, then it also elaborates `stx`. If `stx` produces a declaration, then it also finds the imports implied by the declaration. Unlike the related `#find_home`, this command takes into account notation and tactic information. For instance, you can write ```lean import Mathlib #min_imports in lemma hi (n : ℕ) : n = n := by extract_goal; rfl -- import Mathlib.Tactic.ExtractGoal -- import Mathlib.Tactic.Lemma -- import Mathlib.Init.Data.Nat.Notation ``` and you can see that it notices `lemma`, `ℕ` and `extract_goal`. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Tactic.lean Added Mathlib/Tactic/MinImports.lean + def Mathlib.Command.MinImps.getAllImports + def Mathlib.Command.MinImps.getId + def Mathlib.Command.MinImps.getIrredundantImports + def Mathlib.Command.MinImps.getSyntaxNodeKinds + def Mathlib.Command.MinImps.getVisited + def Mathlib.Command.MinImps.minImpsCore Added test/MinImports.lean + theorem hi + theorem uses_norm_num 2024-07-18 07:43:39 03c6011 feat(RingTheory/LaurentSeries): add properties of the X-adic valuation on Laurent series (#14418) Add some properties conneccting the $X$-adic valuation of a Laurent series to the vanishing of its coefficients, together with explicit values of the valuation of some basic Laurent series. - [x] depends on: #13064 ESTIMATED CHANGES Modified Mathlib/FieldTheory/RatFunc/AsPolynomial.lean + theorem Polynomial.valuation_of_mk Modified Mathlib/FieldTheory/RatFunc/Basic.lean + theorem RatFunc.mk_eq_mk' Modified Mathlib/RingTheory/LaurentSeries.lean + theorem LaurentSeries.coeff_zero_of_lt_intValuation + theorem LaurentSeries.coeff_zero_of_lt_valuation + theorem LaurentSeries.eq_coeff_of_valuation_sub_lt + theorem LaurentSeries.intValuation_le_iff_coeff_lt_eq_zero + theorem LaurentSeries.val_le_one_iff_eq_coe + theorem LaurentSeries.valuation_X_pow + theorem LaurentSeries.valuation_le_iff_coeff_lt_eq_zero + theorem LaurentSeries.valuation_single_zpow + theorem RatFunc.valuation_eq_LaurentSeries_valuation 2024-07-18 05:31:42 5589a75 chore(UniqueFactorizationMonoid): make `ufm_of_decomposition_of_wfDvdMonoid` an instance (#14771) ESTIMATED CHANGES Modified Mathlib/RingTheory/UniqueFactorizationDomain.lean - theorem ufm_of_decomposition_of_wfDvdMonoid + theorem ufm_of_gcd_of_wfDvdMonoid 2024-07-18 04:27:50 966a472 feat(LpSpace/ContinuousCompMeasurePreserving): new file (#14500) Prove that the composition of an `L^p` function with a measure preserving continuous function is continuous in both arguments. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/MeasureTheory/Function/LpSpace.lean + theorem MeasureTheory.Lp.isometry_compMeasurePreserving Added Mathlib/MeasureTheory/Function/LpSpace/ContinuousCompMeasurePreserving.lean + theorem Continuous.compMeasurePreservingLp + theorem ContinuousAt.compMeasurePreservingLp + theorem ContinuousOn.compMeasurePreservingLp + theorem ContinuousWithinAt.compMeasurePreservingLp + theorem Filter.Tendsto.compMeasurePreservingLp + theorem MeasureTheory.Lp.compMeasurePreserving_continuous + theorem MeasureTheory.tendsto_measure_symmDiff_preimage_nhds_zero 2024-07-18 03:39:28 522cb54 feat(SetTheory/Cardinal/Finite): More missing `Nat.card` lemmas (#14854) Building on #14825, this PR adds some missing lemmas relating `Nat.card` and surjectivity. ESTIMATED CHANGES Modified Mathlib/SetTheory/Cardinal/Finite.lean +/- theorem Function.Injective.bijective_of_nat_card_le + theorem Function.Surjective.bijective_of_nat_card_le 2024-07-18 03:08:07 ac16584 chore(CategoryTheory/DiscreteCategory): add deprecation alias for #14722 (#14791) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/DiscreteCategory.lean 2024-07-18 01:57:58 2153e5e feat(AEStabilizer): new file (#14822) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/MeasureTheory/Group/AEStabilizer.lean + theorem MeasureTheory.inv_smul_ae_eq_self + theorem MeasureTheory.smul_ae_eq_self_of_mem_zpowers + def MulAction.aestabilizer + theorem MulAction.aestabilizer_congr + theorem MulAction.aestabilizer_empty + theorem MulAction.aestabilizer_of_aeconst + theorem MulAction.aestabilizer_univ + theorem MulAction.mem_aestabilizer + theorem MulAction.stabilizer_le_aestabilizer Modified Mathlib/MeasureTheory/Group/Action.lean - theorem MeasureTheory.inv_smul_ae_eq_self - theorem MeasureTheory.smul_ae_eq_self_of_mem_zpowers + theorem MeasureTheory.smul_set_ae_eq + theorem MeasureTheory.smul_set_ae_le - theorem MeasureTheory.vadd_ae_eq_self_of_mem_zmultiples Modified Mathlib/MeasureTheory/Group/AddCircle.lean 2024-07-18 01:47:02 e077c93 feat: interior and boundary of a product manifold (#14802) I intend to use these results for formalising the beginnings of bordism theory. ESTIMATED CHANGES Modified Mathlib/Geometry/Manifold/InteriorBoundary.lean + theorem ModelWithCorners.boundary_prod + theorem ModelWithCorners.interior_prod + theorem boundary_of_boundaryless_left + theorem boundary_of_boundaryless_right 2024-07-18 00:30:38 afd433b feat: Locally Lipschitz functions on a set (#13990) Define `LocallyLipschitzOn`, the restricted version of `LocallyLipschitz`. ESTIMATED CHANGES Modified Mathlib/Analysis/Calculus/FDeriv/Basic.lean Modified Mathlib/Analysis/Calculus/InverseFunctionTheorem/FiniteDimensional.lean Modified Mathlib/Analysis/Calculus/LineDeriv/Basic.lean Modified Mathlib/Analysis/Calculus/MeanValue.lean Modified Mathlib/Analysis/Calculus/Rademacher.lean Modified Mathlib/Analysis/NormedSpace/lpSpace.lean Modified Mathlib/Topology/Constructions.lean + theorem comap_nhdsWithin_range + theorem nhds_subtype_eq_comap_nhdsWithin Modified Mathlib/Topology/ContinuousOn.lean - theorem comap_nhdsWithin_range +/- theorem nhdsWithin_univ Modified Mathlib/Topology/EMetricSpace/Lipschitz.lean +/- theorem LipschitzOnWith.mono +/- def LipschitzOnWith +/- def LipschitzWith +/- def LocallyLipschitz + theorem LocallyLipschitzOn.mono + def LocallyLipschitzOn - theorem MapsTo.lipschitzOnWith_iff_restrict + theorem Set.MapsTo.lipschitzOnWith_iff_restrict +/- theorem lipschitzOnWith_empty +/- theorem lipschitzOnWith_iff_restrict + theorem lipschitzOnWith_restrict + theorem lipschitzOnWith_univ - theorem lipschitzOn_univ + theorem locallyLipschitzOn_empty + theorem locallyLipschitzOn_iff_restrict + theorem locallyLipschitzOn_univ Modified Mathlib/Topology/Instances/ENNReal.lean Modified Mathlib/Topology/MetricSpace/Holder.lean 2024-07-17 23:42:58 ef9f57c feat)List/MinMax): getD_maximum?_eq_unbot'_maximum (#14836) And also for minimum This links the two definitions ESTIMATED CHANGES Modified Mathlib/Data/List/MinMax.lean + theorem List.getD_maximum?_eq_unbot'_maximum + theorem List.getD_minimum?_eq_untop'_minimum 2024-07-17 22:37:41 b06cc0b chore: update Mathlib dependencies 2024-07-17 (#14847) This PR updates the Mathlib dependencies. ESTIMATED CHANGES Modified lake-manifest.json 2024-07-17 21:58:29 13f0f7a feat: Functor.mapDerivedCategory is a triangulated functor (#14153) In this PR, it is shown that an exact functor between abelian categories induces a triangulated functor between the corresponding derived categories. ESTIMATED CHANGES Modified Mathlib/Algebra/Homology/DerivedCategory/ExactFunctor.lean Modified Mathlib/CategoryTheory/Localization/Predicate.lean + theorem CategoryTheory.Localization.Lifting.compLeft_iso Modified Mathlib/CategoryTheory/Shift/Localization.lean + theorem CategoryTheory.Functor.commShiftOfLocalization.iso_hom_app + theorem CategoryTheory.Functor.commShiftOfLocalization.iso_inv_app + theorem CategoryTheory.Functor.commShiftOfLocalization_iso_hom_app + theorem CategoryTheory.Functor.commShiftOfLocalization_iso_inv_app Modified Mathlib/CategoryTheory/Triangulated/Functor.lean + theorem CategoryTheory.Functor.isTriangulated_iff_of_iso + theorem CategoryTheory.Functor.isTriangulated_of_iso + theorem CategoryTheory.Functor.isTriangulated_of_precomp + theorem CategoryTheory.Functor.isTriangulated_of_precomp_iso + def CategoryTheory.Functor.mapTriangleIdIso + theorem CategoryTheory.Functor.mem_mapTriangle_essImage_of_distinguished 2024-07-17 21:45:06 a365570 feat(Algebra/Homology): boundaries of embeddings of complex shapes (#14650) In this PR, we define the lower/upper boundaries of embeddings of complex shapes. These notions shall be important when constructing canonical truncations of homological complexes. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Homology/ComplexShape.lean + theorem ComplexShape.next_eq_self' + theorem ComplexShape.next_eq_self + theorem ComplexShape.prev_eq_self' + theorem ComplexShape.prev_eq_self Modified Mathlib/Algebra/Homology/Embedding/Basic.lean + theorem ComplexShape.Embedding.mem_next + theorem ComplexShape.Embedding.mem_prev Added Mathlib/Algebra/Homology/Embedding/Boundary.lean + theorem ComplexShape.Embedding.BoundaryGE.false + theorem ComplexShape.Embedding.BoundaryGE.not_mem + def ComplexShape.Embedding.BoundaryGE + theorem ComplexShape.Embedding.BoundaryLE.false + theorem ComplexShape.Embedding.BoundaryLE.not_mem + def ComplexShape.Embedding.BoundaryLE + theorem ComplexShape.Embedding.boundaryGE + theorem ComplexShape.Embedding.boundaryLE + theorem ComplexShape.Embedding.next_f_of_not_boundaryLE + theorem ComplexShape.Embedding.not_boundaryGE_next' + theorem ComplexShape.Embedding.not_boundaryGE_next + theorem ComplexShape.Embedding.not_boundaryLE_prev' + theorem ComplexShape.Embedding.not_boundaryLE_prev + theorem ComplexShape.Embedding.prev_f_of_not_boundaryGE + theorem ComplexShape.boundaryGE_embeddingUpIntGE_iff + theorem ComplexShape.boundaryLE_embeddingUpIntLE_iff 2024-07-17 21:15:28 068f9f4 refactor (Algebra/Order/AddTorsor) : Add multiplicative versions of everything, use to_additive (#14732) This PR adds multiplicative versions of the existing Prop-valued mixin classes relating vector addition to order. Also, we rename: - `OrderedVAdd` to `IsOrderedVAdd` - `CancelVAdd` to `IsCancelVAdd` - `OrderedCancelVAdd` to `IsOrderedCancelVAdd` ESTIMATED CHANGES Modified Mathlib/Algebra/Order/AddTorsor.lean + theorem SMul.smul_lt_smul_of_le_of_lt + theorem SMul.smul_lt_smul_of_lt_of_le - theorem VAdd.vadd_lt_vadd_of_le_of_lt - theorem VAdd.vadd_lt_vadd_of_lt_of_le Modified Mathlib/Algebra/Order/Module/OrderedSMul.lean 2024-07-17 20:56:27 595e638 feat: add `orthogonalComplement_eq_orthogonalComplement` (#14832) Included a lemma that asserts that two vector submodules of a vector space in a `RClike field' are equal if and only if their orthogonal complements are equal ESTIMATED CHANGES Modified Mathlib/Analysis/InnerProductSpace/Projection.lean + theorem orthogonalComplement_eq_orthogonalComplement 2024-07-17 20:56:26 de09fdc feat (Algebra/Vertex/HVertexOperator) : Composite heterogeneous vertex operators (#12998) This PR defines the composite of two heterogeneous vertex operators as a heterogeneous vertex operator, using iterated Hahn series. Composite vertex operators appear in some definitions of vertex algebras. ESTIMATED CHANGES Modified Mathlib/Algebra/Vertex/HVertexOperator.lean + def HVertexOperator.comp + def HVertexOperator.compHahnSeries + theorem HVertexOperator.compHahnSeries_add + theorem HVertexOperator.compHahnSeries_smul + theorem HVertexOperator.comp_coeff 2024-07-17 20:33:03 860abaa chore(aesop_cat): remove unused configuration (#14845) Removes configuration for `aesop_cat` that is apparently unused. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Category/Basic.lean - def Std.Tactic.Ext.extCore' 2024-07-17 20:33:02 0df982c chore(Combinatorics/SimpleGraph): Change `girth` to `egirth` and introduce `Nat`-valued `girth` (#13910) Makes statements about girth more natural, for example, turns `ENat.toNat G.girth ≤ 2 * G.diam + 1` to `G.girth ≤ 2 * G.diam + 1`. ESTIMATED CHANGES Modified Mathlib/Combinatorics/SimpleGraph/Girth.lean + theorem SimpleGraph.egirth_anti + theorem SimpleGraph.egirth_bot + theorem SimpleGraph.egirth_eq_top + theorem SimpleGraph.exists_egirth_eq_length +/- theorem SimpleGraph.girth_anti +/- theorem SimpleGraph.girth_bot - theorem SimpleGraph.girth_eq_top + theorem SimpleGraph.girth_eq_zero + theorem SimpleGraph.le_egirth - theorem SimpleGraph.le_girth + theorem SimpleGraph.three_le_egirth +/- theorem SimpleGraph.three_le_girth 2024-07-17 19:39:35 cb37444 doc: fix module documentation for `AntivaryOn` (#14833) Fix `MonovaryOn f g s`: `f` antivaries with `g` on `s`. to `AntivaryOn f g s`: `f` monovaries with `g` on `s`. ESTIMATED CHANGES Modified Mathlib/Order/Monotone/Monovary.lean 2024-07-17 19:39:34 e1de4a6 chore: remove porting notes 'in std' (#14625) These don't seem actionable at this point. ESTIMATED CHANGES Modified Mathlib/Data/List/Basic.lean Modified Mathlib/Geometry/RingedSpace/Stalks.lean 2024-07-17 18:39:41 5887c95 chore(CategoryTheory/Limits/Shapes): avoid constructing data with aesop (#14843) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Limits/Shapes/WidePullbacks.lean 2024-07-17 18:39:40 510d207 feat(Algebra/Module/LinearMap/Defs): add `restrictScalars` as a `LinearMap` (#14831) add some missing lemmas on `RestrictScalars` as a `Linear Map`. This contribution was created as part of the AIM workshop "Formalizing algebraic geometry" in June 2024. ESTIMATED CHANGES Modified Mathlib/Algebra/Module/LinearMap/Defs.lean + theorem LinearMap.restrictScalars_add + theorem LinearMap.restrictScalars_neg + theorem LinearMap.restrictScalars_smul + theorem LinearMap.restrictScalars_zero + def LinearMap.restrictScalarsₗ 2024-07-17 18:39:38 a79d64d feat: singletons are closed in T1 spaces (#14824) ESTIMATED CHANGES Modified Mathlib/Data/Set/Subsingleton.lean + theorem Set.Subsingleton.inter_singleton + theorem Set.Subsingleton.singleton_inter Modified Mathlib/Topology/Separation.lean + theorem Set.Subsingleton.isClosed + theorem isClosed_inter_singleton + theorem isClosed_singleton_inter 2024-07-17 18:39:37 bff6c19 feat(LpSpace): make `indicatorConstLp_inj` an `Iff` lemma (#14818) ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Function/LpSpace.lean Modified Mathlib/Order/Filter/IndicatorFunction.lean + theorem Filter.mulIndicator_const_eventuallyEq 2024-07-17 18:39:36 fa24923 chore(CategoryTheory/Bicategory): split the bicategorical composition (#14815) Similar to #11149. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/CategoryTheory/Bicategory/Adjunction.lean Modified Mathlib/Tactic.lean Added Mathlib/Tactic/CategoryTheory/BicategoricalComp.lean + def CategoryTheory.bicategoricalComp + theorem CategoryTheory.bicategoricalComp_refl + def CategoryTheory.bicategoricalIso + def CategoryTheory.bicategoricalIsoComp Modified Mathlib/Tactic/CategoryTheory/BicategoryCoherence.lean - def Mathlib.Tactic.BicategoryCoherence.bicategoricalComp - theorem Mathlib.Tactic.BicategoryCoherence.bicategoricalComp_refl - def Mathlib.Tactic.BicategoryCoherence.bicategoricalIso - def Mathlib.Tactic.BicategoryCoherence.bicategoricalIsoComp Modified Mathlib/Tactic/CategoryTheory/Coherence.lean Modified scripts/noshake.json 2024-07-17 18:39:35 8e49ce3 chore(Init/Data/Nat/Basic): drop lemmas about bit0/bit1 (#14762) Deletions: - nat.bit0_succ_eq - nat.zero_lt_bit0 - nat.zero_lt_bit1 - nat.bit0_ne_zero - nat.bit1_ne_zero ESTIMATED CHANGES Modified Mathlib/Data/Nat/Bits.lean - theorem Nat.bit0_mod_two - theorem Nat.bit1_mod_two - theorem Nat.pos_of_bit0_pos Modified Mathlib/Data/Nat/Size.lean Modified Mathlib/Data/Num/Lemmas.lean Modified Mathlib/Init/Data/Nat/Basic.lean Modified test/solve_by_elim/basic.lean 2024-07-17 18:39:33 51801a2 feat(Integral/Lebesgue): add `setLIntegral_biUnion_of_directed` (#14740) also drop some unneeded measurability assumptions. ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Function/ConditionalExpectation/CondexpL2.lean Modified Mathlib/MeasureTheory/Function/L1Space.lean Modified Mathlib/MeasureTheory/Function/SimpleFunc.lean + theorem MeasureTheory.SimpleFunc.lintegral_restrict_iUnion_of_directed Modified Mathlib/MeasureTheory/Integral/Lebesgue.lean - theorem MeasureTheory.lintegral_le_of_forall_fin_meas_le' - theorem MeasureTheory.lintegral_le_of_forall_fin_meas_le_of_measurable + theorem MeasureTheory.lintegral_le_of_forall_fin_meas_trim_le + theorem MeasureTheory.setLIntegral_iUnion_of_directed 2024-07-17 18:39:32 215311b move: Rename `GroupTheory.GroupAction.Defs` (#14706) This file is now only about `GroupWithZero` and affiliated. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Group/Aut.lean Modified Mathlib/Algebra/Group/Submonoid/Operations.lean Renamed Mathlib/GroupTheory/GroupAction/Defs.lean to Mathlib/Algebra/GroupWithZero/Action/Defs.lean Modified Mathlib/Algebra/Ring/Action/Basic.lean Modified Mathlib/Algebra/SMulWithZero.lean Modified Mathlib/Analysis/Complex/UpperHalfPlane/Basic.lean Modified Mathlib/GroupTheory/GroupAction/Basic.lean Modified Mathlib/GroupTheory/GroupAction/BigOperators.lean Modified Mathlib/GroupTheory/GroupAction/DomAct/Basic.lean Modified Mathlib/GroupTheory/GroupAction/Opposite.lean Modified Mathlib/GroupTheory/GroupAction/Pi.lean Modified Mathlib/GroupTheory/GroupAction/Prod.lean Modified Mathlib/GroupTheory/GroupAction/Units.lean Modified scripts/noshake.json 2024-07-17 18:39:31 5388b1c deduplicate pullback and baseChange (#14519) Deduplication of `Over.pullback` and `Over.baseChange`. `Over.baseChange` has been renamed to `Over.pullback` and `simp` lemmas added to `Over.pullback` and `Over.mapPullbackAdj`. ESTIMATED CHANGES Modified Mathlib/Algebra/Homology/HomologicalComplexLimits.lean Modified Mathlib/CategoryTheory/Adjunction/Over.lean - def CategoryTheory.Over.baseChange - def CategoryTheory.Over.mapAdjunction + def CategoryTheory.Over.mapPullbackAdj + def CategoryTheory.Over.pullback + def CategoryTheory.Over.pullbackComp + def CategoryTheory.Over.pullbackId + def CategoryTheory.Under.mapPushoutAdj + def CategoryTheory.Under.pullbackComp + def CategoryTheory.Under.pushout + def CategoryTheory.Under.pushoutId Modified Mathlib/CategoryTheory/Limits/Over.lean - def CategoryTheory.Over.mapPullbackAdj - def CategoryTheory.Over.pullback - def CategoryTheory.Over.pullbackComp - def CategoryTheory.Over.pullbackId - def CategoryTheory.Under.pushout Modified Mathlib/CategoryTheory/Limits/Shapes/Diagonal.lean Modified Mathlib/CategoryTheory/MorphismProperty/Limits.lean Modified Mathlib/CategoryTheory/Preadditive/Projective.lean Modified Mathlib/CategoryTheory/Subobject/Comma.lean Modified Mathlib/CategoryTheory/Subobject/MonoOver.lean 2024-07-17 17:39:27 ba665e3 chore (Algebra.Order.Field.Defs): split off results about unbundled ordered algebra (#14451) We should be able to use these results about unbundled ordered algebra without importing the heavy machinery of the bundled typeclasses. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Order/Field/Basic.lean Modified Mathlib/Algebra/Order/Field/Defs.lean - theorem div_nonneg - theorem div_nonpos_of_nonneg_of_nonpos - theorem div_nonpos_of_nonpos_of_nonneg - theorem div_pos - theorem inv_lt_zero - theorem inv_nonneg - theorem inv_nonpos - theorem inv_pos - theorem one_div_neg - theorem one_div_nonneg - theorem one_div_nonpos - theorem one_div_pos - theorem zpow_nonneg - theorem zpow_pos_of_pos Added Mathlib/Algebra/Order/Field/Unbundled/Basic.lean + theorem div_nonneg + theorem div_nonpos_of_nonneg_of_nonpos + theorem div_nonpos_of_nonpos_of_nonneg + theorem div_pos + theorem inv_lt_zero + theorem inv_nonneg + theorem inv_nonpos + theorem inv_pos + theorem one_div_neg + theorem one_div_nonneg + theorem one_div_nonpos + theorem one_div_pos + theorem zpow_nonneg + theorem zpow_pos_of_pos Modified Mathlib/Algebra/Order/Module/Defs.lean Modified Mathlib/Algebra/Order/Nonneg/Field.lean +/- theorem Nonneg.inv_mk Modified Mathlib/Algebra/Order/Positive/Field.lean Modified Mathlib/Data/NNRat/Lemmas.lean Modified Mathlib/Data/Real/Sign.lean Modified Mathlib/Data/Set/Pointwise/Interval.lean Modified Mathlib/Order/Filter/AtTopBot.lean Modified Mathlib/Tactic/CancelDenoms/Core.lean 2024-07-17 17:39:26 8d10ce3 feat(Algebra/Algebra/Basic) Extend scalars of linear maps along surjective ring homs. (#14373) ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/Basic.lean + def LinearEquiv.extendScalarsOfSurjective + theorem LinearEquiv.extendScalarsOfSurjective_apply + theorem LinearEquiv.extendScalarsOfSurjective_symm + def LinearMap.extendScalarsOfSurjectiveEquiv + theorem LinearMap.extendScalarsOfSurjective_apply 2024-07-17 17:39:25 eed648a refactor(Topology/Category): refactor Profinite.Basic (#13909) This is the second part of the refactor of CompHaus and friends (refactoring the definition of `Profinite` in terms of `CompHausLike`, see #12930 for the end result) ESTIMATED CHANGES Modified Mathlib/Topology/Category/LightProfinite/Basic.lean Modified Mathlib/Topology/Category/Profinite/AsLimit.lean Modified Mathlib/Topology/Category/Profinite/Basic.lean + def FintypeCat.toProfiniteFullyFaithful - theorem Profinite.coe_comp - theorem Profinite.coe_id - theorem Profinite.forget_ContinuousMap_mk - def Profinite.homeoOfIso - theorem Profinite.isClosedMap - theorem Profinite.isIso_of_bijective - def Profinite.isoEquivHomeo - def Profinite.isoOfHomeo - theorem Profinite.mono_iff_injective - def Profinite.of - def Profinite.toTopCat - theorem Profinite.to_compHausToTopCat - structure Profinite - def profiniteToCompHaus Modified Mathlib/Topology/Category/Profinite/CofilteredLimit.lean Modified Mathlib/Topology/Category/Profinite/Limits.lean +/- def Profinite.pullbackHomeoPullback Modified Mathlib/Topology/Category/Profinite/Nobeling.lean Modified Mathlib/Topology/Category/Profinite/Product.lean Modified Mathlib/Topology/Category/Stonean/Basic.lean 2024-07-17 17:39:23 11d3bd2 chore: Rename `Nat.factors` to `Nat.primeFactorsList` (#13832) `Nat.factors` was a very generic name that didn't emphasize that * It is a list * It is not all factors but only the prime ones ESTIMATED CHANGES Modified Archive/Wiedijk100Theorems/SumOfPrimeReciprocalsDiverges.lean Modified Mathlib/Data/Nat/Factorization/Basic.lean - theorem Nat.factorization_eq_factors_multiset +/- theorem Nat.factorization_eq_of_coprime_left +/- theorem Nat.factorization_eq_of_coprime_right + theorem Nat.factorization_eq_primeFactorsList_multiset - theorem Nat.factors_count_eq + theorem Nat.primeFactorsList_count_eq Modified Mathlib/Data/Nat/Factorization/PrimePow.lean Modified Mathlib/Data/Nat/Factors.lean - theorem Nat.Prime.factors_pow + theorem Nat.Prime.primeFactorsList_pow - theorem Nat.coprime_factors_disjoint + theorem Nat.coprime_primeFactorsList_disjoint - theorem Nat.dvd_of_factors_subperm - theorem Nat.dvd_of_mem_factors + theorem Nat.dvd_of_mem_primeFactorsList + theorem Nat.dvd_of_primeFactorsList_subperm - theorem Nat.eq_of_perm_factors + theorem Nat.eq_of_perm_primeFactorsList - def Nat.factors - theorem Nat.factors_add_two - theorem Nat.factors_chain' - theorem Nat.factors_chain - theorem Nat.factors_chain_2 - theorem Nat.factors_eq_nil - theorem Nat.factors_one - theorem Nat.factors_prime - theorem Nat.factors_sorted - theorem Nat.factors_sublist_of_dvd - theorem Nat.factors_sublist_right - theorem Nat.factors_subset_of_dvd - theorem Nat.factors_subset_right - theorem Nat.factors_two - theorem Nat.factors_unique - theorem Nat.factors_zero - theorem Nat.le_of_mem_factors + theorem Nat.le_of_mem_primeFactorsList - theorem Nat.mem_factors' - theorem Nat.mem_factors - theorem Nat.mem_factors_iff_dvd - theorem Nat.mem_factors_mul - theorem Nat.mem_factors_mul_left - theorem Nat.mem_factors_mul_of_coprime - theorem Nat.mem_factors_mul_right + theorem Nat.mem_primeFactorsList' + theorem Nat.mem_primeFactorsList + theorem Nat.mem_primeFactorsList_iff_dvd + theorem Nat.mem_primeFactorsList_mul + theorem Nat.mem_primeFactorsList_mul_left + theorem Nat.mem_primeFactorsList_mul_of_coprime + theorem Nat.mem_primeFactorsList_mul_right - theorem Nat.perm_factors_mul - theorem Nat.perm_factors_mul_of_coprime + theorem Nat.perm_primeFactorsList_mul + theorem Nat.perm_primeFactorsList_mul_of_coprime - theorem Nat.pos_of_mem_factors + theorem Nat.pos_of_mem_primeFactorsList + def Nat.primeFactorsList + theorem Nat.primeFactorsList_add_two + theorem Nat.primeFactorsList_chain' + theorem Nat.primeFactorsList_chain + theorem Nat.primeFactorsList_chain_2 + theorem Nat.primeFactorsList_eq_nil + theorem Nat.primeFactorsList_one + theorem Nat.primeFactorsList_prime + theorem Nat.primeFactorsList_sorted + theorem Nat.primeFactorsList_sublist_of_dvd + theorem Nat.primeFactorsList_sublist_right + theorem Nat.primeFactorsList_subset_of_dvd + theorem Nat.primeFactorsList_subset_right + theorem Nat.primeFactorsList_two + theorem Nat.primeFactorsList_unique + theorem Nat.primeFactorsList_zero - theorem Nat.prime_of_mem_factors + theorem Nat.prime_of_mem_primeFactorsList - theorem Nat.prod_factors + theorem Nat.prod_primeFactorsList - theorem Nat.replicate_subperm_factors_iff + theorem Nat.replicate_subperm_primeFactorsList_iff Modified Mathlib/Data/Nat/PrimeFin.lean - theorem Nat.mem_primeFactors_iff_mem_factors + theorem Nat.mem_primeFactors_iff_mem_primeFactorsList +/- def Nat.primeFactors +/- theorem Nat.toFinset_factors Modified Mathlib/Data/Nat/Squarefree.lean - theorem Nat.squarefree_iff_nodup_factors + theorem Nat.squarefree_iff_nodup_primeFactorsList - theorem Squarefree.nodup_factors + theorem Squarefree.nodup_primeFactorsList Modified Mathlib/Data/Nat/Totient.lean Modified Mathlib/Data/PNat/Factors.lean Modified Mathlib/GroupTheory/Exponent.lean Modified Mathlib/GroupTheory/PGroup.lean Modified Mathlib/NumberTheory/ArithmeticFunction.lean +/- theorem ArithmeticFunction.cardDistinctFactors_apply +/- theorem ArithmeticFunction.cardFactors_apply Modified Mathlib/NumberTheory/Cyclotomic/PrimitiveRoots.lean Modified Mathlib/NumberTheory/Divisors.lean + theorem Nat.primeFactors_eq_to_filter_divisors_prime + theorem Nat.primeFactors_filter_dvd_of_dvd - theorem Nat.prime_divisors_eq_to_filter_divisors_prime - theorem Nat.prime_divisors_filter_dvd_of_dvd Modified Mathlib/NumberTheory/LegendreSymbol/JacobiSymbol.lean Modified Mathlib/NumberTheory/Padics/PadicVal.lean - theorem le_multiplicity_iff_replicate_subperm_factors + theorem le_multiplicity_iff_replicate_subperm_primeFactorsList - theorem le_padicValNat_iff_replicate_subperm_factors + theorem le_padicValNat_iff_replicate_subperm_primeFactorsList Modified Mathlib/NumberTheory/SmoothNumbers.lean +/- def Nat.factoredNumbers +/- theorem Nat.mem_smoothNumbers +/- theorem Nat.prod_mem_smoothNumbers +/- def Nat.smoothNumbers Modified Mathlib/RingTheory/UniqueFactorizationDomain.lean +/- theorem Nat.factors_eq Modified docs/100.yaml 2024-07-17 17:39:22 edf379e feat: If `s ≤ t` in colex, then `s \ {a} ≤ t \ {min t}` in colex (#13827) This proof is a horrible case bash. I have already spent a significant amount of time optimising it. From LeanCamCombi ESTIMATED CHANGES Modified Mathlib/Combinatorics/Colex.lean + theorem Finset.Colex.cons_le_cons + theorem Finset.Colex.cons_lt_cons + theorem Finset.Colex.erase_le_erase + theorem Finset.Colex.erase_le_erase_min' + theorem Finset.Colex.erase_lt_erase + theorem Finset.Colex.insert_le_insert + theorem Finset.Colex.insert_lt_insert + theorem Finset.Colex.lt_iff_exists_filter_lt + theorem Finset.Colex.ofColex_top + theorem Finset.Colex.toColex_univ Modified Mathlib/Data/Finset/Basic.lean + theorem Finset.filter_inj 2024-07-17 17:39:21 540a3ad feat(LightProfinite): light profinite sets as sequential limits with surjective transition maps (#13333) Adds the file `LightProfinite/AsLimit` which mirrors `Profinite/AsLimit`. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/CategoryTheory/Countable.lean Added Mathlib/Topology/Category/LightProfinite/AsLimit.lean + def LightProfinite.asLimit + def LightProfinite.asLimitAux + def LightProfinite.asLimitCone + def LightProfinite.asLimitConeAux + def LightProfinite.isoMapCone + theorem LightProfinite.lightToProfinite_map_proj_eq + def LightProfinite.lim + theorem LightProfinite.map_liftedLimit + theorem LightProfinite.proj_comp_transitionMap' + theorem LightProfinite.proj_comp_transitionMap + theorem LightProfinite.proj_comp_transitionMapLE' + theorem LightProfinite.proj_comp_transitionMapLE + theorem LightProfinite.proj_surjective + theorem LightProfinite.surjective_transitionMap + theorem LightProfinite.surjective_transitionMapLE 2024-07-17 17:39:19 7d65c07 chore: Move order theory and algebra out of `Data.Fin.Tuple.Basic` (#13148) * Move the order theory in `Data.Fin.Tuple.Basic` to `Order.Fin.Basic` and a new file `Order.Fin.Tuple` * Move the content of `Data.Fin.Tuple.Monotone` to `Order.Fin.Tuple` * Move the algebra in `Data.Fin.Tuple.Basic` and `Data.Fin.VecNotation` to a new file `Algebra.Group.Fin.Tuple` ESTIMATED CHANGES Modified Archive/Imo/Imo1994Q1.lean Modified Mathlib.lean Modified Mathlib/Algebra/CharP/Defs.lean Renamed Mathlib/Algebra/Group/Fin.lean to Mathlib/Algebra/Group/Fin/Basic.lean Added Mathlib/Algebra/Group/Fin/Tuple.lean + theorem Fin.insertNth_div + theorem Fin.insertNth_div_same + theorem Fin.insertNth_mul + theorem Fin.insertNth_one_right + theorem Matrix.add_cons + theorem Matrix.cons_add + theorem Matrix.cons_add_cons + theorem Matrix.cons_eq_zero_iff + theorem Matrix.cons_nonzero_iff + theorem Matrix.cons_sub + theorem Matrix.cons_sub_cons + theorem Matrix.cons_zero_zero + theorem Matrix.empty_add_empty + theorem Matrix.empty_sub_empty + theorem Matrix.head_add + theorem Matrix.head_neg + theorem Matrix.head_sub + theorem Matrix.head_zero + theorem Matrix.neg_cons + theorem Matrix.neg_empty + theorem Matrix.smul_cons + theorem Matrix.smul_empty + theorem Matrix.sub_cons + theorem Matrix.tail_add + theorem Matrix.tail_neg + theorem Matrix.tail_sub + theorem Matrix.tail_zero + theorem Matrix.zero_empty Modified Mathlib/Algebra/Order/Antidiag/Pi.lean Modified Mathlib/Analysis/BoxIntegral/Box/Basic.lean Modified Mathlib/CategoryTheory/ComposableArrows.lean Modified Mathlib/Control/Random.lean Modified Mathlib/Data/Array/Lemmas.lean Modified Mathlib/Data/Fin/FlagRange.lean Modified Mathlib/Data/Fin/SuccPred.lean Modified Mathlib/Data/Fin/Tuple/Basic.lean - theorem Fin.insertNth_add - theorem Fin.insertNth_div - theorem Fin.insertNth_mem_Icc - theorem Fin.insertNth_mul - theorem Fin.insertNth_sub - theorem Fin.insertNth_sub_same - theorem Fin.insertNth_zero_right - theorem Fin.pi_lex_lt_cons_cons - theorem Fin.preimage_insertNth_Icc_of_mem - theorem Fin.preimage_insertNth_Icc_of_not_mem Modified Mathlib/Data/Fin/Tuple/BubbleSortInduction.lean Deleted Mathlib/Data/Fin/Tuple/Monotone.lean - theorem Antitone.vecCons - theorem Monotone.vecCons - theorem StrictAnti.vecCons - theorem StrictMono.vecCons - theorem antitone_vecCons - theorem antitone_vecEmpty - theorem liftFun_vecCons - theorem monotone_vecCons - theorem monotone_vecEmpty - theorem strictAnti_vecCons - theorem strictAnti_vecEmpty - theorem strictMono_vecCons - theorem strictMono_vecEmpty Modified Mathlib/Data/Fin/Tuple/NatAntidiagonal.lean Modified Mathlib/Data/Fin/VecNotation.lean - theorem Matrix.add_cons - theorem Matrix.cons_add - theorem Matrix.cons_add_cons - theorem Matrix.cons_eq_zero_iff - theorem Matrix.cons_nonzero_iff - theorem Matrix.cons_sub - theorem Matrix.cons_sub_cons - theorem Matrix.cons_zero_zero - theorem Matrix.empty_add_empty - theorem Matrix.empty_sub_empty - theorem Matrix.head_add - theorem Matrix.head_neg - theorem Matrix.head_sub - theorem Matrix.head_zero - theorem Matrix.neg_cons - theorem Matrix.neg_empty - theorem Matrix.smul_cons - theorem Matrix.smul_empty - theorem Matrix.sub_cons - theorem Matrix.tail_add - theorem Matrix.tail_neg - theorem Matrix.tail_sub - theorem Matrix.tail_zero - theorem Matrix.zero_empty Modified Mathlib/Data/Fintype/Card.lean Modified Mathlib/Data/List/FinRange.lean Modified Mathlib/Data/List/Indexes.lean Modified Mathlib/Data/List/OfFn.lean Modified Mathlib/Data/List/Sort.lean Modified Mathlib/Data/Matrix/Notation.lean Modified Mathlib/Data/ZMod/Defs.lean Modified Mathlib/Geometry/Euclidean/Angle/Oriented/Affine.lean Modified Mathlib/LinearAlgebra/AffineSpace/Independent.lean Modified Mathlib/LinearAlgebra/Matrix/Circulant.lean Modified Mathlib/LinearAlgebra/Pi.lean Modified Mathlib/Logic/Equiv/Fin.lean - def Fin.castLEOrderIso + def Fin.castLEquiv - def OrderIso.finTwoArrowIso - def OrderIso.piFinSuccAboveIso - def OrderIso.piFinTwoIso +/- def finSuccAboveEquiv Modified Mathlib/MeasureTheory/Integral/TorusIntegral.lean Modified Mathlib/NumberTheory/NumberField/Units/Regulator.lean Renamed Mathlib/Order/Fin.lean to Mathlib/Order/Fin/Basic.lean Added Mathlib/Order/Fin/Tuple.lean + theorem Antitone.vecCons + def Fin.castLEOrderIso + theorem Fin.insertNth_mem_Icc + theorem Fin.pi_lex_lt_cons_cons + theorem Fin.preimage_insertNth_Icc_of_mem + theorem Fin.preimage_insertNth_Icc_of_not_mem + theorem Monotone.vecCons + def OrderIso.finTwoArrowIso + def OrderIso.piFinSuccAboveIso + def OrderIso.piFinTwoIso + theorem StrictAnti.vecCons + theorem StrictMono.vecCons + theorem antitone_vecCons + theorem antitone_vecEmpty + def finSuccAboveOrderIso + theorem finSuccAboveOrderIso_apply + theorem finSuccAboveOrderIso_symm_apply_last + theorem finSuccAboveOrderIso_symm_apply_ne_last + theorem liftFun_vecCons + theorem monotone_vecCons + theorem monotone_vecEmpty + theorem strictAnti_vecCons + theorem strictAnti_vecEmpty + theorem strictMono_vecCons + theorem strictMono_vecEmpty Modified Mathlib/Order/Grade.lean Modified Mathlib/Order/RelSeries.lean Modified test/slim_check.lean 2024-07-17 17:08:45 5912219 feat(Polynomial/AlgebraMap): add `mapAlgHom` (#14814) Add `Polynomial.mapAlgHom` as an algebra homomorphism between two polynomial rings, extending `Polynomial.mapRingHom`. Provide supporting theorems for `mapAlgHom`. Moved `Polynomial.eval₂AlgHom'` to earlier in `AlgebraMap.lean` , so that I can provide a theorem linking `mapAlgHom` and `eval₂AlgHom'`, without having to put `mapAlgHom` stuff after `aeval`. ESTIMATED CHANGES Modified Mathlib/Algebra/Polynomial/AlgebraMap.lean + theorem Polynomial.coe_mapAlgEquiv + theorem Polynomial.coe_mapAlgHom + def Polynomial.mapAlgEquiv + theorem Polynomial.mapAlgEquiv_coe_ringHom + theorem Polynomial.mapAlgEquiv_comp + theorem Polynomial.mapAlgEquiv_id + def Polynomial.mapAlgHom + theorem Polynomial.mapAlgHom_coe_ringHom + theorem Polynomial.mapAlgHom_comp + theorem Polynomial.mapAlgHom_eq_eval₂AlgHom'_CAlgHom + theorem Polynomial.mapAlgHom_id 2024-07-17 15:24:01 ab9dec5 chore (Algebra.Order.WithTop): split into unbundled and bundled (#14531) Much of the results in `Algebra.Order.Monoid.WithTop` only depend on unbundled ordered algebra instance parameters. We split those results out into a new file `Algera.Order.Monoid.Unbundled.WithTop` leaving the facts about bundled ordered monoids. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/CharZero/Lemmas.lean Modified Mathlib/Algebra/Order/AddGroupWithTop.lean - def WithBot.addHom - theorem WithBot.add_bot - theorem WithBot.add_coe_eq_bot_iff - theorem WithBot.add_eq_bot - theorem WithBot.add_eq_coe - theorem WithBot.add_left_cancel - theorem WithBot.add_left_cancel_iff - theorem WithBot.add_ne_bot - theorem WithBot.add_right_cancel - theorem WithBot.add_right_cancel_iff - theorem WithBot.bot_add - theorem WithBot.bot_lt_add - theorem WithBot.bot_ne_natCast - theorem WithBot.bot_ne_ofNat - theorem WithBot.coe_add - theorem WithBot.coe_addHom - theorem WithBot.coe_add_eq_bot_iff - theorem WithBot.coe_eq_ofNat - theorem WithBot.coe_natCast - theorem WithBot.coe_nsmul - theorem WithBot.coe_ofNat - theorem WithBot.natCast_ne_bot - theorem WithBot.ofNat_eq_coe - theorem WithBot.ofNat_ne_bot - def WithTop.addHom - theorem WithTop.add_coe_eq_top_iff - theorem WithTop.add_eq_coe - theorem WithTop.add_eq_top - theorem WithTop.add_left_cancel - theorem WithTop.add_left_cancel_iff - theorem WithTop.add_lt_top - theorem WithTop.add_ne_top - theorem WithTop.add_right_cancel - theorem WithTop.add_right_cancel_iff - theorem WithTop.add_top - theorem WithTop.coe_add - theorem WithTop.coe_addHom - theorem WithTop.coe_add_eq_top_iff - theorem WithTop.coe_eq_ofNat - theorem WithTop.coe_natCast - theorem WithTop.coe_nsmul - theorem WithTop.coe_ofNat - theorem WithTop.natCast_ne_top - theorem WithTop.ofNat_eq_coe - theorem WithTop.ofNat_ne_top - theorem WithTop.top_add - theorem WithTop.top_ne_natCast - theorem WithTop.top_ne_ofNat - theorem WithTop.zero_lt_coe - theorem WithTop.zero_lt_top Modified Mathlib/Algebra/Order/Monoid/ToMulBot.lean Added Mathlib/Algebra/Order/Monoid/Unbundled/WithTop.lean + def WithBot.addHom + theorem WithBot.add_bot + theorem WithBot.add_coe_eq_bot_iff + theorem WithBot.add_eq_bot + theorem WithBot.add_eq_coe + theorem WithBot.add_left_cancel + theorem WithBot.add_left_cancel_iff + theorem WithBot.add_ne_bot + theorem WithBot.add_right_cancel + theorem WithBot.add_right_cancel_iff + theorem WithBot.bot_add + theorem WithBot.bot_lt_add + theorem WithBot.bot_ne_natCast + theorem WithBot.bot_ne_ofNat + theorem WithBot.bot_ne_one + theorem WithBot.coe_add + theorem WithBot.coe_addHom + theorem WithBot.coe_add_eq_bot_iff + theorem WithBot.coe_eq_ofNat + theorem WithBot.coe_eq_one + theorem WithBot.coe_le_one + theorem WithBot.coe_lt_one + theorem WithBot.coe_natCast + theorem WithBot.coe_nsmul + theorem WithBot.coe_ofNat + theorem WithBot.coe_one + theorem WithBot.natCast_ne_bot + theorem WithBot.ofNat_eq_coe + theorem WithBot.ofNat_ne_bot + theorem WithBot.one_eq_coe + theorem WithBot.one_le_coe + theorem WithBot.one_lt_coe + theorem WithBot.one_ne_bot + theorem WithBot.unbot_one' + theorem WithBot.unbot_one + def WithTop.addHom + theorem WithTop.add_coe_eq_top_iff + theorem WithTop.add_eq_coe + theorem WithTop.add_eq_top + theorem WithTop.add_left_cancel + theorem WithTop.add_left_cancel_iff + theorem WithTop.add_lt_top + theorem WithTop.add_ne_top + theorem WithTop.add_right_cancel + theorem WithTop.add_right_cancel_iff + theorem WithTop.add_top + theorem WithTop.coe_add + theorem WithTop.coe_addHom + theorem WithTop.coe_add_eq_top_iff + theorem WithTop.coe_eq_ofNat + theorem WithTop.coe_eq_one + theorem WithTop.coe_le_one + theorem WithTop.coe_lt_one + theorem WithTop.coe_natCast + theorem WithTop.coe_nsmul + theorem WithTop.coe_ofNat + theorem WithTop.coe_one + theorem WithTop.natCast_ne_top + theorem WithTop.ofNat_eq_coe + theorem WithTop.ofNat_ne_top + theorem WithTop.one_eq_coe + theorem WithTop.one_le_coe + theorem WithTop.one_lt_coe + theorem WithTop.one_ne_top + theorem WithTop.top_add + theorem WithTop.top_ne_natCast + theorem WithTop.top_ne_ofNat + theorem WithTop.top_ne_one + theorem WithTop.untop_one' + theorem WithTop.untop_one + theorem WithTop.zero_lt_coe + theorem WithTop.zero_lt_top Modified Mathlib/Algebra/Order/Monoid/WithTop.lean - theorem WithBot.bot_ne_one - theorem WithBot.coe_eq_one - theorem WithBot.coe_le_one - theorem WithBot.coe_lt_one - theorem WithBot.coe_one - theorem WithBot.one_eq_coe - theorem WithBot.one_le_coe - theorem WithBot.one_lt_coe - theorem WithBot.one_ne_bot - theorem WithBot.unbot_one' - theorem WithBot.unbot_one - theorem WithTop.coe_eq_one - theorem WithTop.coe_le_one - theorem WithTop.coe_lt_one - theorem WithTop.coe_one - theorem WithTop.one_eq_coe - theorem WithTop.one_le_coe - theorem WithTop.one_lt_coe - theorem WithTop.one_ne_top - theorem WithTop.top_ne_one - theorem WithTop.untop_one' - theorem WithTop.untop_one Modified Mathlib/Algebra/Order/Ring/WithTop.lean Modified Mathlib/Algebra/Order/Sub/WithTop.lean Modified Mathlib/Algebra/Tropical/Basic.lean Modified Mathlib/Data/Finset/Fold.lean Modified Mathlib/Data/Nat/Cast/WithTop.lean 2024-07-17 15:05:35 3ecbc03 chore: Split RingTheory.IntegralClosure (#14826) We create a new folder `RingTheory.IntegralClosure` and we move the relevant files (also doing some splitting). ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/GCDMonoid/IntegrallyClosed.lean Modified Mathlib/FieldTheory/Minpoly/Basic.lean Modified Mathlib/NumberTheory/FunctionField.lean Modified Mathlib/RingTheory/Algebraic.lean Modified Mathlib/RingTheory/Discriminant.lean Modified Mathlib/RingTheory/FractionalIdeal/Operations.lean Added Mathlib/RingTheory/IntegralClosure/Algebra/Basic.lean + theorem IsIntegral.neg + theorem IsIntegral.of_finite + theorem IsIntegral.of_mem_of_fg + theorem IsIntegral.smul + theorem RingHom.IsIntegralElem.add + theorem RingHom.IsIntegralElem.mul + theorem RingHom.IsIntegralElem.neg + theorem RingHom.IsIntegralElem.of_mem_closure + theorem RingHom.IsIntegralElem.sub + def integralClosure Added Mathlib/RingTheory/IntegralClosure/Algebra/Defs.lean + theorem Algebra.isIntegral_def Renamed Mathlib/RingTheory/IntegralRestrict.lean to Mathlib/RingTheory/IntegralClosure/IntegralRestrict.lean Renamed Mathlib/RingTheory/IntegrallyClosed.lean to Mathlib/RingTheory/IntegralClosure/IntegrallyClosed.lean Added Mathlib/RingTheory/IntegralClosure/IsIntegral/Basic.lean + theorem IsIntegral.fg_adjoin_singleton + theorem IsIntegral.map + theorem IsIntegral.of_pow + theorem RingHom.isIntegralElem_map + theorem RingHom.isIntegralElem_one + theorem RingHom.isIntegralElem_zero + theorem Submodule.span_range_natDegree_eq_adjoin + theorem isIntegral_algHom_iff + theorem isIntegral_algebraMap + theorem isIntegral_one + theorem isIntegral_zero Added Mathlib/RingTheory/IntegralClosure/IsIntegral/Defs.lean + def IsIntegral + def RingHom.IsIntegral + def RingHom.IsIntegralElem Renamed Mathlib/RingTheory/IntegralClosure.lean to Mathlib/RingTheory/IntegralClosure/IsIntegralClosure/Basic.lean - theorem Algebra.isIntegral_def - theorem IsIntegral.fg_adjoin_singleton - theorem IsIntegral.map - theorem IsIntegral.neg - theorem IsIntegral.of_finite - theorem IsIntegral.of_mem_of_fg - theorem IsIntegral.of_pow - theorem IsIntegral.smul - def IsIntegral - def RingHom.IsIntegral - theorem RingHom.IsIntegralElem.add - theorem RingHom.IsIntegralElem.mul - theorem RingHom.IsIntegralElem.neg - theorem RingHom.IsIntegralElem.of_mem_closure - theorem RingHom.IsIntegralElem.sub - def RingHom.IsIntegralElem - theorem RingHom.isIntegralElem_map - theorem RingHom.isIntegralElem_one - theorem RingHom.isIntegralElem_zero - theorem Submodule.span_range_natDegree_eq_adjoin - def integralClosure - theorem isIntegral_algHom_iff - theorem isIntegral_algebraMap - theorem isIntegral_one - theorem isIntegral_zero Added Mathlib/RingTheory/IntegralClosure/IsIntegralClosure/Defs.lean Modified Mathlib/RingTheory/Localization/Integral.lean Modified Mathlib/RingTheory/Polynomial/Eisenstein/IsIntegral.lean Modified Mathlib/RingTheory/Polynomial/GaussLemma.lean Modified Mathlib/RingTheory/Polynomial/RationalRoot.lean Modified Mathlib/RingTheory/RingHom/Integral.lean Modified Mathlib/RingTheory/Valuation/Integral.lean 2024-07-17 14:16:22 cac1f0d feat(FieldTheory/*): prove coprimality of polynomials in terms of roots (#14659) ESTIMATED CHANGES Modified Mathlib/Algebra/Polynomial/RingDivision.lean + theorem Polynomial.aeval_ne_zero_of_isCoprime Modified Mathlib/FieldTheory/IsAlgClosed/Basic.lean + theorem Polynomial.isCoprime_iff_aeval_ne_zero_of_isAlgClosed Modified Mathlib/FieldTheory/SplittingField/Construction.lean + theorem Polynomial.isCoprime_iff_aeval_ne_zero 2024-07-17 13:32:51 4430331 feat: missing Nat.card lemmas (#14825) ESTIMATED CHANGES Modified Mathlib/SetTheory/Cardinal/Finite.lean + theorem Function.Injective.bijective_of_nat_card_le + theorem Nat.card_eq_one_iff_exists 2024-07-17 13:32:50 cd4d483 chore(scripts/create-adaptation-pr.sh): fix bugs (#14819) ESTIMATED CHANGES Modified scripts/create-adaptation-pr.sh 2024-07-17 13:17:15 7cde1b3 fix: `maintainer merge` messages only once (#14830) Testing the doubled `maintainer merge` messages. The conclusion seems to be that `edited` triggers the action also when a comment is submitted as part of a review. The change proposed here likely means that editing a message to make it contain `maintainer merge` will not trigger a `maintainer merge` message, but will not double `maintainer merge` messages that are sent from a review that also adds comments. ESTIMATED CHANGES Modified .github/workflows/maintainer_merge_review.yml 2024-07-17 13:17:13 09d052b feat(Analysis/Analytic/Basic): add missing `AnalyticOn.neg` lemma (#14827) Add missing `AnalyticOn.neg` lemma. ESTIMATED CHANGES Modified Mathlib/Analysis/Analytic/Basic.lean + theorem AnalyticOn.neg 2024-07-17 12:28:18 bf1deba chore: swap the direction of some ext_iff lemmas (#14796) In lean 4.11, the @[ext] attribute will generate `ext_iff` lemmas automatically, following the mathlib convention of putting the 'plain' equality on the left hand side. Some existing lemmas didn't follow this convention; this PR changes that. ESTIMATED CHANGES Modified Mathlib/Analysis/Complex/UpperHalfPlane/Basic.lean + theorem UpperHalfPlane.ext_iff' - theorem UpperHalfPlane.ext_iff Modified Mathlib/Analysis/NormedSpace/Star/Unitization.lean Modified Mathlib/Data/Finmap.lean + theorem Finmap.ext_iff' - theorem Finmap.ext_iff Modified Mathlib/Data/NNReal/Basic.lean Modified Mathlib/GroupTheory/Congruence/Basic.lean - theorem Con.ext_iff Modified Mathlib/LinearAlgebra/AffineSpace/AffineSubspace.lean - theorem AffineSubspace.ext_iff Modified Mathlib/MeasureTheory/Decomposition/Jordan.lean Modified Mathlib/Topology/MetricSpace/Basic.lean 2024-07-17 12:28:17 d8041d9 chore (Algebra.Basic): split results on `Algebra`'s over `Rat` to a separate file (#14567) By putting dependencies on `LinearOrderedField Rat` in `Algebra.Basic`, we import too much unnecessary machinery and carry it downstream. This splits off the `LinearOrderedField Rat` declaration into `Algebra.Algebra.Rat`. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Algebra/Basic.lean - theorem RingHom.map_rat_algebraMap - theorem algebraMap_rat_rat Modified Mathlib/Algebra/Algebra/Hom.lean - theorem AlgHom.toRingHom_toRatAlgHom - def RingHom.equivRatAlgHom - def RingHom.toRatAlgHom - theorem RingHom.toRatAlgHom_toRingHom Added Mathlib/Algebra/Algebra/Hom/Rat.lean + theorem AlgHom.toRingHom_toRatAlgHom + def RingHom.equivRatAlgHom + def RingHom.toRatAlgHom + theorem RingHom.toRatAlgHom_toRingHom Added Mathlib/Algebra/Algebra/Rat.lean + theorem RingHom.map_rat_algebraMap + theorem algebraMap_rat_rat Modified Mathlib/Algebra/Homology/ExactSequence.lean Modified Mathlib/Algebra/Lie/Weights/RootSystem.lean Modified Mathlib/Algebra/TrivSqZeroExt.lean Modified Mathlib/Analysis/NormedSpace/Basic.lean Modified Mathlib/Data/Complex/FiniteDimensional.lean Modified Mathlib/Data/Complex/Module.lean Modified Mathlib/Data/Real/Irrational.lean Modified Mathlib/FieldTheory/IsAlgClosed/AlgebraicClosure.lean Modified Mathlib/FieldTheory/SplittingField/Construction.lean Modified Mathlib/NumberTheory/NumberField/Basic.lean Modified Mathlib/NumberTheory/NumberField/Embeddings.lean Modified Mathlib/RingTheory/PowerSeries/WellKnown.lean Modified Mathlib/Topology/Algebra/Algebra.lean Added Mathlib/Topology/Algebra/Algebra/Rat.lean Added test/instance_diamonds/Data/Complex/Module.lean Added test/instance_diamonds/FieldTheory/IsAlgClosed/AlgebraicClosure.lean Added test/instance_diamonds/FieldTheory/SplittingField/Construction.lean 2024-07-17 11:25:37 57d0101 fix: only run the missingEnd linter in mathlib and related projects (#14696) See [zulip discussion](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/linting.20for.20unclosed.20sections.3F). ESTIMATED CHANGES Modified Mathlib/Tactic/Linter/Lint.lean Modified Mathlib/Tactic/Linter/Style.lean 2024-07-17 10:07:26 29d0c94 feat: quadratic forms applied to sums decompose into quadratic and bilinear parts (#14215) ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/QuadraticForm/Basic.lean 2024-07-17 09:41:06 4615a01 chore(Mathlib/Tactic/ToAdditive/Frontend): isolate the `to_additive` attribute implementation in a new file `Tactic.ToAdditive.Frontend` (2/2) (#14750) Ideally, we want to move the `attribute [to_additive]` commands in `Init.ZeroOne` into `Tactic.ToAdditive` without any other changes. However, the `to_additive` attribute is initialized in the file and cannot be included in the same file. So it would be necessary to isolate the original `to_additive` attribute implementation in a new file `Tactic.ToAdditive.Frontend`, and create an new file `Tactic.ToAdditive` as a placeholder for the `attribute [to_additive]` commands in `Init.ZeroOne`. But if we put these two changes in the same PR, git cannot recognizes that `Tactic.ToAdditive` is renamed, so we split the PR. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Group/Defs.lean Modified Mathlib/Algebra/PEmptyInstances.lean Modified Mathlib/Data/TypeMax.lean Modified Mathlib/Init/ZeroOne.lean Modified Mathlib/Tactic.lean Added Mathlib/Tactic/ToAdditive.lean Modified scripts/noshake.json Modified test/DeprecateMe.lean Modified test/Lint.lean 2024-07-17 09:21:19 caed7dd chore(workflows/nightly_detect_failure): log messages (#14821) The friendly bot repeats itself for no good reason. We start logging messages to debug the issue. ESTIMATED CHANGES Modified .github/workflows/nightly_detect_failure.yml 2024-07-17 09:21:18 70b6992 feat: Generalize quadratic isometries to quadratic maps (#14719) Also `.prod` and `.pi`, since these are heavily entangled with `Isometry` and `IsometryEquiv`. Follows on from #7569. ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/CliffordAlgebra/Basic.lean +/- theorem CliffordAlgebra.map_id Modified Mathlib/LinearAlgebra/CliffordAlgebra/Equivs.lean Modified Mathlib/LinearAlgebra/CliffordAlgebra/Prod.lean Modified Mathlib/LinearAlgebra/QuadraticForm/Complex.lean Modified Mathlib/LinearAlgebra/QuadraticForm/Dual.lean Modified Mathlib/LinearAlgebra/QuadraticForm/Isometry.lean - theorem QuadraticForm.Isometry.coe_toLinearMap - def QuadraticForm.Isometry.comp - theorem QuadraticForm.Isometry.comp_assoc - theorem QuadraticForm.Isometry.comp_id - theorem QuadraticForm.Isometry.ext - def QuadraticForm.Isometry.id - theorem QuadraticForm.Isometry.id_comp - theorem QuadraticForm.Isometry.map_app - def QuadraticForm.Isometry.ofEq - theorem QuadraticForm.Isometry.ofEq_rfl - theorem QuadraticForm.Isometry.toLinearMap_comp - theorem QuadraticForm.Isometry.toLinearMap_injective - structure QuadraticForm.Isometry + theorem QuadraticMap.Isometry.coe_toLinearMap + def QuadraticMap.Isometry.comp + theorem QuadraticMap.Isometry.comp_assoc + theorem QuadraticMap.Isometry.comp_id + theorem QuadraticMap.Isometry.ext + def QuadraticMap.Isometry.id + theorem QuadraticMap.Isometry.id_comp + theorem QuadraticMap.Isometry.map_app + def QuadraticMap.Isometry.ofEq + theorem QuadraticMap.Isometry.ofEq_rfl + theorem QuadraticMap.Isometry.toLinearMap_comp + theorem QuadraticMap.Isometry.toLinearMap_injective + structure QuadraticMap.Isometry Modified Mathlib/LinearAlgebra/QuadraticForm/IsometryEquiv.lean - theorem QuadraticForm.Equivalent.refl - theorem QuadraticForm.Equivalent.symm - theorem QuadraticForm.Equivalent.trans - def QuadraticForm.Equivalent - theorem QuadraticForm.IsometryEquiv.coe_toLinearEquiv - theorem QuadraticForm.IsometryEquiv.map_app - def QuadraticForm.IsometryEquiv.refl - def QuadraticForm.IsometryEquiv.symm - def QuadraticForm.IsometryEquiv.toIsometry - def QuadraticForm.IsometryEquiv.trans - structure QuadraticForm.IsometryEquiv - def QuadraticForm.isometryEquivOfCompLinearEquiv + theorem QuadraticMap.Equivalent.refl + theorem QuadraticMap.Equivalent.symm + theorem QuadraticMap.Equivalent.trans + def QuadraticMap.Equivalent + theorem QuadraticMap.IsometryEquiv.coe_toLinearEquiv + theorem QuadraticMap.IsometryEquiv.map_app + def QuadraticMap.IsometryEquiv.refl + def QuadraticMap.IsometryEquiv.symm + def QuadraticMap.IsometryEquiv.toIsometry + def QuadraticMap.IsometryEquiv.trans + structure QuadraticMap.IsometryEquiv + def QuadraticMap.isometryEquivOfCompLinearEquiv Modified Mathlib/LinearAlgebra/QuadraticForm/Prod.lean - theorem QuadraticForm.Equivalent.pi - theorem QuadraticForm.Equivalent.prod - theorem QuadraticForm.IsOrtho.inl_inr - theorem QuadraticForm.IsOrtho.inr_inl - theorem QuadraticForm.IsOrtho.prod - def QuadraticForm.Isometry.fst - theorem QuadraticForm.Isometry.fst_comp_inl - theorem QuadraticForm.Isometry.fst_comp_inr - def QuadraticForm.Isometry.inl - def QuadraticForm.Isometry.inr - def QuadraticForm.Isometry.proj - theorem QuadraticForm.Isometry.proj_comp_single_of_ne - theorem QuadraticForm.Isometry.proj_comp_single_of_same - def QuadraticForm.Isometry.single - def QuadraticForm.Isometry.snd - theorem QuadraticForm.Isometry.snd_comp_inl - theorem QuadraticForm.Isometry.snd_comp_inr - def QuadraticForm.IsometryEquiv.pi - def QuadraticForm.IsometryEquiv.prod - def QuadraticForm.IsometryEquiv.prodComm - def QuadraticForm.IsometryEquiv.prodProdProdComm - theorem QuadraticForm.PosDef.prod - theorem QuadraticForm.Ring.associated_pi - theorem QuadraticForm.Ring.polarBilin_pi - theorem QuadraticForm.Ring.polar_pi - theorem QuadraticForm.anisotropic_of_pi - theorem QuadraticForm.anisotropic_of_prod - theorem QuadraticForm.associated_prod - theorem QuadraticForm.isOrtho_inl_inl_iff - theorem QuadraticForm.isOrtho_inr_inr_iff - theorem QuadraticForm.nonneg_pi_iff - theorem QuadraticForm.nonneg_prod_iff - def QuadraticForm.pi - theorem QuadraticForm.pi_apply - theorem QuadraticForm.pi_apply_single - theorem QuadraticForm.polarBilin_prod - theorem QuadraticForm.polar_prod - theorem QuadraticForm.posDef_pi_iff - theorem QuadraticForm.posDef_prod_iff - def QuadraticForm.prod + theorem QuadraticMap.Equivalent.pi + theorem QuadraticMap.Equivalent.prod + theorem QuadraticMap.IsOrtho.inl_inr + theorem QuadraticMap.IsOrtho.inr_inl + theorem QuadraticMap.IsOrtho.prod + def QuadraticMap.Isometry.fst + theorem QuadraticMap.Isometry.fst_comp_inl + theorem QuadraticMap.Isometry.fst_comp_inr + def QuadraticMap.Isometry.inl + def QuadraticMap.Isometry.inr + def QuadraticMap.Isometry.proj + theorem QuadraticMap.Isometry.proj_comp_single_of_ne + theorem QuadraticMap.Isometry.proj_comp_single_of_same + def QuadraticMap.Isometry.single + def QuadraticMap.Isometry.snd + theorem QuadraticMap.Isometry.snd_comp_inl + theorem QuadraticMap.Isometry.snd_comp_inr + def QuadraticMap.IsometryEquiv.pi + def QuadraticMap.IsometryEquiv.prod + def QuadraticMap.IsometryEquiv.prodComm + def QuadraticMap.IsometryEquiv.prodProdProdComm + theorem QuadraticMap.PosDef.prod + theorem QuadraticMap.Ring.associated_pi + theorem QuadraticMap.Ring.polarBilin_pi + theorem QuadraticMap.Ring.polar_pi + theorem QuadraticMap.anisotropic_of_pi + theorem QuadraticMap.anisotropic_of_prod + theorem QuadraticMap.associated_prod + theorem QuadraticMap.isOrtho_inl_inl_iff + theorem QuadraticMap.isOrtho_inr_inr_iff + theorem QuadraticMap.nonneg_pi_iff + theorem QuadraticMap.nonneg_prod_iff + def QuadraticMap.pi + theorem QuadraticMap.pi_apply + theorem QuadraticMap.pi_apply_single + theorem QuadraticMap.polarBilin_prod + theorem QuadraticMap.polar_prod + theorem QuadraticMap.posDef_pi_iff + theorem QuadraticMap.posDef_prod_iff + def QuadraticMap.prod Modified Mathlib/LinearAlgebra/QuadraticForm/QuadraticModuleCat.lean Modified Mathlib/LinearAlgebra/QuadraticForm/Real.lean Modified Mathlib/LinearAlgebra/QuadraticForm/TensorProduct/Isometries.lean - def QuadraticForm.Isometry.tmul - theorem QuadraticForm.Isometry.tmul_apply + def QuadraticMap.Isometry.tmul + theorem QuadraticMap.Isometry.tmul_apply 2024-07-17 09:11:22 a721a5b feat: matrices of matrices (#14512) Show that $M_n(M_p(R))$ is isomorphic to $M_{np}(R)$, and generalisations of this statement. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Data/Matrix/Composition.lean + def Matrix.comp + def Matrix.compAddEquiv + def Matrix.compAlgEquiv + def Matrix.compLinearEquiv + def Matrix.compRingEquiv 2024-07-17 07:53:41 7269094 feat(RingTheory/TwoSidedIdeal): add lattice structure to two-sided-ideals (#14456) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/RingTheory/TwoSidedIdeal/Basic.lean +/- theorem TwoSidedIdeal.le_iff + def TwoSidedIdeal.orderIsoRingCon + theorem TwoSidedIdeal.ringCon_injective + theorem TwoSidedIdeal.ringCon_le_iff Added Mathlib/RingTheory/TwoSidedIdeal/Lattice.lean + theorem TwoSidedIdeal.bot_ringCon + theorem TwoSidedIdeal.iInf_ringCon + theorem TwoSidedIdeal.iSup_ringCon + theorem TwoSidedIdeal.inf_ringCon + theorem TwoSidedIdeal.mem_bot + theorem TwoSidedIdeal.mem_iInf + theorem TwoSidedIdeal.mem_inf + theorem TwoSidedIdeal.mem_sInf + theorem TwoSidedIdeal.mem_sup + theorem TwoSidedIdeal.mem_sup_left + theorem TwoSidedIdeal.mem_sup_right + theorem TwoSidedIdeal.sInf_ringCon + theorem TwoSidedIdeal.sSup_ringCon + theorem TwoSidedIdeal.sup_ringCon + theorem TwoSidedIdeal.top_ringCon 2024-07-17 06:49:04 a350989 chore(Mathlib/Tactic/ToAdditive/Frontend): isolate the `to_additive` attribute implementation in a new file `Tactic.ToAdditive.Frontend` (1/2) (#14816) Ideally, we want to move the `attribute [to_additive]` commands in `Init.ZeroOne` into `Tactic.ToAdditive` without any other changes. However, the `to_additive` attribute is initialized in the file and cannot be included in the same file. So it would be necessary to isolate the original `to_additive` attribute implementation in a new file `Tactic.ToAdditive.Frontend`, and create an new file `Tactic.ToAdditive` as a placeholder for the `attribute [to_additive]` commands in `Init.ZeroOne`. But if we put these two changes in the same PR, git cannot recognizes that `Tactic.ToAdditive` is renamed, so we split the PR. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Group/Defs.lean Modified Mathlib/Algebra/PEmptyInstances.lean Modified Mathlib/Data/TypeMax.lean Modified Mathlib/Init/ZeroOne.lean Modified Mathlib/Tactic.lean Renamed Mathlib/Tactic/ToAdditive.lean to Mathlib/Tactic/ToAdditive/Frontend.lean Modified scripts/noshake.json Modified test/DeprecateMe.lean Modified test/Lint.lean 2024-07-17 06:20:26 26f108b refactor(GroupTheory/PGroup,Sylow): Replace Fintype.card with Nat.card (#14789) A lot of the group theory library still needs to be switched over from Fintype.card to Nat.card. This PR switches over GroupTheory/PGroup.lean and GroupTheory/Sylow (there was enough dependence between the two that it was simplest to do them together). ESTIMATED CHANGES Modified Mathlib/GroupTheory/Nilpotent.lean Modified Mathlib/GroupTheory/PGroup.lean +/- theorem IsPGroup.card_center_eq_prime_pow +/- theorem IsPGroup.card_modEq_card_fixedPoints +/- theorem IsPGroup.card_orbit +/- def IsPGroup.commGroupOfCardEqPrimeSq +/- theorem IsPGroup.commutative_of_card_eq_prime_sq +/- theorem IsPGroup.cyclic_center_quotient_of_card_eq_prime_sq +/- theorem IsPGroup.exists_fixed_point_of_prime_dvd_card_of_fixed_point +/- theorem IsPGroup.iff_card +/- theorem IsPGroup.nonempty_fixed_point_of_prime_not_dvd_card +/- theorem IsPGroup.nontrivial_iff_card +/- theorem IsPGroup.of_card Modified Mathlib/GroupTheory/Perm/Cycle/Type.lean + theorem exists_prime_orderOf_dvd_card' Modified Mathlib/GroupTheory/SchurZassenhaus.lean Modified Mathlib/GroupTheory/SpecificGroups/Cyclic.lean + theorem isCyclic_of_card_dvd_prime Modified Mathlib/GroupTheory/Sylow.lean +/- theorem QuotientGroup.card_preimage_mk +/- theorem Sylow.card_coprime_index +/- theorem Sylow.card_eq_multiplicity +/- theorem Sylow.card_normalizer_modEq_card +/- theorem Sylow.card_quotient_normalizer_modEq_card_quotient +/- theorem Sylow.coe_ofCard +/- theorem Sylow.dvd_card_of_dvd_card +/- theorem Sylow.exists_subgroup_card_pow_prime +/- theorem Sylow.exists_subgroup_card_pow_prime_le +/- theorem Sylow.exists_subgroup_card_pow_succ + theorem Sylow.finite_of_injective + theorem Sylow.finite_of_ker_is_pGroup +/- theorem Sylow.ne_bot_of_dvd_card +/- def Sylow.ofCard +/- theorem Sylow.pow_dvd_card_of_pow_dvd_card +/- theorem Sylow.prime_dvd_card_quotient_normalizer +/- theorem Sylow.prime_pow_dvd_card_normalizer +/- theorem card_sylow_dvd_index +/- theorem card_sylow_eq_card_quotient_normalizer +/- theorem card_sylow_eq_index_normalizer +/- theorem card_sylow_modEq_one +/- theorem not_dvd_card_sylow 2024-07-17 05:02:41 1e25356 chore(Init/Data/Nat/Lemmas): remove more bit01 lemmas (#14788) Deletions: - bit0_eq_zero - bit0_inj - bit0_le - bit0_le_bit - bit0_le_bit1_iff - bit0_lt - bit0_lt_bit0 - bit0_lt_bit1 - bit0_lt_bit1_iff - bit0_ne - bit0_ne_bit1 - bit0_ne_one - bit1_eq_succ_bit0 - bit1_inj - bit1_le - bit1_le_bit0_iff - bit1_lt - bit1_lt_bit0 - bit1_lt_bit0_iff - bit1_ne - bit1_ne_bit0 - bit1_ne_one - bit1_succ_eq - bit_le_bit1 - bit_lt_bit0 - one_le_bit0 - one_le_bit1 - one_lt_bit0 - one_lt_bit1 - one_ne_bit0 - one_ne_bit1 - zero_ne_bit0 - zero_ne_bit1 ESTIMATED CHANGES Modified Mathlib/Algebra/Polynomial/UnitTrinomial.lean Modified Mathlib/Data/Nat/Bits.lean - theorem Nat.bit0_le_bit1_iff - theorem Nat.bit0_le_bit - theorem Nat.bit0_lt_bit1_iff - theorem Nat.bit1_le_bit0_iff - theorem Nat.bit1_lt_bit0_iff - theorem Nat.bit_le_bit1 - theorem Nat.bit_lt_bit0 +/- theorem Nat.bit_lt_bit Modified Mathlib/Data/Nat/Bitwise.lean Modified Mathlib/Data/Nat/Size.lean Modified Mathlib/Data/Num/Lemmas.lean Modified Mathlib/Data/Num/Prime.lean Modified Mathlib/Init/Data/Nat/Lemmas.lean 2024-07-17 04:20:26 7b4fc5c feat(Filter/Basic): add `EventuallyEq.congr_{left,right}` (#14817) ESTIMATED CHANGES Modified Mathlib/Order/Filter/Basic.lean + theorem Filter.EventuallyEq.congr_left + theorem Filter.EventuallyEq.congr_right 2024-07-17 03:34:04 8257426 chore: downgrade priority of `SetLike.smul` instances (#14117) Searching through the `SetLike` hierarchy when we want specific data like `SMul` seems like something to avoided unless necessary. The current priorities of `900` seem to too high (recall default is `1000` and our low value is `100`). We change the values to `50`. ESTIMATED CHANGES Modified Mathlib/GroupTheory/GroupAction/SubMulAction.lean 2024-07-17 03:09:50 f27bf51 feat(ContinuousFunctionalCalculus): Define the real log based on the CFC (#14448) This PR defines `CFC.log` as `cfc Real.log`, and shows its basic properties, such as the fact that it's the inverse of `NormedSpace.exp ℝ`. Along the way, we also show that the exponential defined via the CFC is equal to `NormedSpace.exp`, which is defined via power series. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/SpecialFunctions/ContinuousFunctionalCalculus/ExpLog.lean + theorem CFC.complex_exp_eq_normedSpace_exp + theorem CFC.exp_eq_normedSpace_exp + theorem CFC.exp_log + theorem CFC.log_algebraMap + theorem CFC.log_exp + theorem CFC.log_one + theorem CFC.log_pow + theorem CFC.log_smul + theorem CFC.log_zero + theorem CFC.real_exp_eq_normedSpace_exp + theorem NormedSpace.exp_continuousMap_eq Modified Mathlib/Data/Complex/Exponential.lean Modified Mathlib/Topology/ContinuousFunction/FunctionalCalculus.lean + theorem cfc_add_const + theorem cfc_const_add 2024-07-17 02:03:29 eb28709 feat (RingTheory/Binomial): Chu-Vandermonde identity (#14808) A general version of Chu-Vandermonde: If `r` and `s` are commuting elements of a binomial ring, then `choose (r + s) k` equals the sum over `ij in antidiagonal k` of `choose r ij.1 * choose s ij.2`. ESTIMATED CHANGES Modified Mathlib/Algebra/Polynomial/Smeval.lean + theorem Polynomial.smeval_commute + theorem Polynomial.smeval_commute_left Modified Mathlib/RingTheory/Binomial.lean + theorem Ring.add_choose_eq + theorem Ring.descPochhammer_smeval_add 2024-07-16 23:35:04 d5307c0 feat(Order): Galois connection between `pred` and `succ` (#13505) This was a longstanding TODO. Kudos to Kevin for putting the pieces together! ESTIMATED CHANGES Modified Mathlib/Order/Cover.lean Modified Mathlib/Order/SuccPred/Basic.lean - theorem CovBy.pred_eq - theorem CovBy.succ_eq + theorem Order.gc_pred_succ + theorem Order.le_succ_of_wcovBy + theorem Order.le_succ_pred + theorem Order.pred_eq_of_covBy + theorem Order.pred_le_iff_le_succ + theorem Order.pred_le_of_wcovBy + theorem Order.pred_succ_le + theorem Order.succ_eq_of_covBy - theorem WCovBy.le_succ - theorem WCovBy.pred_le 2024-07-16 22:44:02 4d90b64 docs: fix bibitem of `Proofs from THE BOOK` (#14811) It was erroneously marked as `Article`, but it in in fact a book. The bibitem is corrected from the corresponding zbMath entry. ESTIMATED CHANGES Modified docs/references.bib 2024-07-16 22:44:01 bcd055b chore: (RingTheory/HahnSeries) : Move valuation material to new file (#14807) Valuation-theoretic material is moved to a separate file. Also, minor docstrings adjustments. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/RingTheory/HahnSeries/Summable.lean - def HahnSeries.addVal - theorem HahnSeries.addVal_apply - theorem HahnSeries.addVal_apply_of_ne - theorem HahnSeries.addVal_le_of_coeff_ne_zero Added Mathlib/RingTheory/HahnSeries/Valuation.lean + def HahnSeries.addVal + theorem HahnSeries.addVal_apply + theorem HahnSeries.addVal_apply_of_ne + theorem HahnSeries.addVal_le_of_coeff_ne_zero 2024-07-16 22:43:59 5eae12e chore: Move group lemmas out of `GroupTheory.GroupAction.Group` (#14705) The rest of the file is now purely about `GroupWithZero` and alike, and will be moved under `Algebra.GroupWithZero.Action` in a future PR. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Group/Action/Basic.lean + def AddAction.toPermHom + theorem IsUnit.smul_left_cancel + def MulAction.toPerm + def MulAction.toPermHom + theorem MulAction.toPerm_injective + def arrowAction + theorem invOf_smul_eq_iff + theorem invOf_smul_smul + theorem isUnit_smul_iff + theorem smul_eq_iff_eq_invOf_smul + theorem smul_eq_iff_eq_inv_smul + theorem smul_invOf_smul + theorem smul_left_cancel + theorem smul_left_cancel_iff Modified Mathlib/GroupTheory/GroupAction/Embedding.lean Modified Mathlib/GroupTheory/GroupAction/Group.lean - def AddAction.toPermHom - theorem IsUnit.smul_left_cancel - def MulAction.toPerm - def MulAction.toPermHom - theorem MulAction.toPerm_injective - def arrowAction - theorem invOf_smul_eq_iff - theorem invOf_smul_smul - theorem isUnit_smul_iff - theorem smul_eq_iff_eq_invOf_smul - theorem smul_eq_iff_eq_inv_smul - theorem smul_invOf_smul - theorem smul_left_cancel - theorem smul_left_cancel_iff Modified Mathlib/GroupTheory/Perm/Subgroup.lean 2024-07-16 22:43:58 126510d chore (Algebra.Order.Ring.Defs): split file and unbundle results (#14393) All of the theorems in `Algebra.Order.Ring.Defs` currently take bundled ordered algebraic typeclasses, eg `OrderedSemiring` as paramaters unecessarily. We unbundle the results keeping the algebra and order data/theorems separate and adding the mixin compatbility typeclasses as needed and place the theorems in `Algebra.Order.Ring.Unbundled.Basic`. As `Algebra.Order.Ring.Defs` and upstream resuls already allow us to pass from bundled classes to unbundled classes appropriately, we lose no uusability by doing this. We lessen dependecies and gain future flexibility. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Order/Interval/Set/Instances.lean +/- theorem Set.Ioc.coe_eq_one +/- theorem Set.Ioc.coe_ne_one +/- theorem Set.Ioc.coe_one +/- theorem Set.Ioc.le_one +/- theorem Set.Ioc.mk_one Modified Mathlib/Algebra/Order/Pi.lean Modified Mathlib/Algebra/Order/Positive/Ring.lean +/- theorem Positive.val_one Modified Mathlib/Algebra/Order/Ring/Defs.lean - theorem Antitone.const_mul - theorem Antitone.const_mul_of_nonpos - theorem Antitone.mul - theorem Antitone.mul_const - theorem Antitone.mul_const_of_nonpos - theorem Antitone.mul_monotone - theorem Monotone.const_mul - theorem Monotone.const_mul_of_nonpos - theorem Monotone.mul - theorem Monotone.mul_antitone - theorem Monotone.mul_const - theorem Monotone.mul_const_of_nonpos - theorem Monotone.mul_strictMono - theorem StrictAnti.const_mul - theorem StrictAnti.const_mul_of_neg - theorem StrictAnti.mul_const - theorem StrictAnti.mul_const_of_neg - theorem StrictMono.const_mul - theorem StrictMono.const_mul_of_neg - theorem StrictMono.mul - theorem StrictMono.mul_const - theorem StrictMono.mul_const_of_neg - theorem StrictMono.mul_monotone - theorem Units.inv_neg - theorem Units.inv_pos - theorem add_le_mul' - theorem add_le_mul - theorem add_le_mul_of_left_le_right - theorem add_le_mul_of_right_le_left - theorem add_le_mul_two_add - theorem add_one_le_two_mul - theorem antitone_mul_left - theorem antitone_mul_right - theorem cmp_mul_neg_left - theorem cmp_mul_neg_right - theorem cmp_mul_pos_left - theorem cmp_mul_pos_right - theorem eq_zero_of_mul_self_add_mul_self_eq_zero - theorem le_iff_exists_nonneg_add - theorem le_mul_of_le_one_left - theorem le_mul_of_le_one_right - theorem le_of_mul_le_of_one_le - theorem lt_mul_left - theorem lt_mul_of_lt_one_left - theorem lt_mul_of_lt_one_right - theorem lt_mul_right - theorem lt_mul_self - theorem lt_of_mul_lt_mul_of_nonpos_left - theorem lt_of_mul_lt_mul_of_nonpos_right - theorem lt_two_mul_self - theorem max_mul_mul_le_max_mul_max - theorem max_mul_of_nonneg - theorem min_mul_min_le_mul_min_min - theorem min_mul_of_nonneg - theorem monotone_mul_left_of_nonneg - theorem monotone_mul_right_of_nonneg - theorem mul_add_mul_le_mul_add_mul' - theorem mul_add_mul_le_mul_add_mul - theorem mul_add_mul_lt_mul_add_mul' - theorem mul_add_mul_lt_mul_add_mul - theorem mul_le_mul_left_of_neg - theorem mul_le_mul_of_nonneg_of_nonpos' - theorem mul_le_mul_of_nonneg_of_nonpos - theorem mul_le_mul_of_nonpos_left - theorem mul_le_mul_of_nonpos_of_nonneg' - theorem mul_le_mul_of_nonpos_of_nonneg - theorem mul_le_mul_of_nonpos_of_nonpos' - theorem mul_le_mul_of_nonpos_of_nonpos - theorem mul_le_mul_of_nonpos_right - theorem mul_le_mul_right_of_neg - theorem mul_le_of_one_le_left - theorem mul_le_of_one_le_right - theorem mul_le_one - theorem mul_lt_mul'' - theorem mul_lt_mul' - theorem mul_lt_mul - theorem mul_lt_mul_left_of_neg - theorem mul_lt_mul_of_neg_left - theorem mul_lt_mul_of_neg_right - theorem mul_lt_mul_right_of_neg - theorem mul_lt_of_one_lt_left - theorem mul_lt_of_one_lt_right - theorem mul_lt_one_of_nonneg_of_lt_one_left - theorem mul_lt_one_of_nonneg_of_lt_one_right - theorem mul_max_of_nonneg - theorem mul_min_of_nonneg - theorem mul_neg_iff - theorem mul_nonneg_iff - theorem mul_nonneg_iff_left_nonneg_of_pos - theorem mul_nonneg_iff_neg_imp_nonpos - theorem mul_nonneg_iff_of_pos_left - theorem mul_nonneg_iff_of_pos_right - theorem mul_nonneg_iff_pos_imp_nonneg - theorem mul_nonneg_iff_right_nonneg_of_pos - theorem mul_nonneg_of_nonpos_of_nonpos - theorem mul_nonneg_of_three - theorem mul_nonpos_iff - theorem mul_nonpos_iff_neg_imp_nonneg - theorem mul_nonpos_iff_pos_imp_nonpos - theorem mul_pos_iff - theorem mul_pos_of_neg_of_neg - theorem mul_self_add_mul_self_eq_zero - theorem mul_self_inj - theorem mul_self_le_mul_self_iff - theorem mul_self_le_mul_self_of_le_of_neg_le - theorem mul_self_lt_mul_self - theorem mul_self_lt_mul_self_iff - theorem mul_self_nonneg - theorem mul_self_pos - theorem neg_iff_pos_of_mul_neg - theorem neg_of_mul_neg_left - theorem neg_of_mul_neg_right - theorem neg_one_lt_zero - theorem nonneg_and_nonneg_or_nonpos_and_nonpos_of_mul_nonneg - theorem nonneg_le_nonneg_of_sq_le_sq - theorem nonneg_of_mul_nonneg_left - theorem nonneg_of_mul_nonneg_right - theorem nonneg_of_mul_nonpos_left - theorem nonneg_of_mul_nonpos_right - theorem nonpos_of_mul_nonneg_left - theorem nonpos_of_mul_nonneg_right - theorem nonpos_of_mul_nonpos_left - theorem nonpos_of_mul_nonpos_right - theorem one_le_mul_of_one_le_of_one_le - theorem one_lt_mul_of_le_of_lt - theorem one_lt_mul_of_lt_of_le - theorem pos_iff_neg_of_mul_neg - theorem pos_of_mul_neg_left - theorem pos_of_mul_neg_right - theorem pow_le_of_le_one - theorem pow_le_pow_of_le_one - theorem pow_nonneg - theorem pow_pos - theorem sign_cases_of_C_mul_pow_nonneg - theorem sq_le - theorem sq_nonneg - theorem strictAnti_mul_left - theorem strictAnti_mul_right - theorem strictMonoOn_mul_self - theorem strictMono_mul_left_of_pos - theorem strictMono_mul_right_of_pos - theorem sub_one_lt - theorem two_mul_le_add_sq Added Mathlib/Algebra/Order/Ring/Unbundled/Basic.lean + theorem Antitone.const_mul + theorem Antitone.const_mul_of_nonpos + theorem Antitone.mul + theorem Antitone.mul_const + theorem Antitone.mul_const_of_nonpos + theorem Antitone.mul_monotone + theorem Monotone.const_mul + theorem Monotone.const_mul_of_nonpos + theorem Monotone.mul + theorem Monotone.mul_antitone + theorem Monotone.mul_const + theorem Monotone.mul_const_of_nonpos + theorem Monotone.mul_strictMono + theorem StrictAnti.const_mul + theorem StrictAnti.const_mul_of_neg + theorem StrictAnti.mul_const + theorem StrictAnti.mul_const_of_neg + theorem StrictMono.const_mul + theorem StrictMono.const_mul_of_neg + theorem StrictMono.mul + theorem StrictMono.mul_const + theorem StrictMono.mul_const_of_neg + theorem StrictMono.mul_monotone + theorem Units.inv_neg + theorem Units.inv_pos + theorem add_le_mul' + theorem add_le_mul + theorem add_le_mul_of_left_le_right + theorem add_le_mul_of_right_le_left + theorem add_le_mul_two_add + theorem add_one_le_two_mul + theorem antitone_mul_left + theorem antitone_mul_right + theorem cmp_mul_neg_left + theorem cmp_mul_neg_right + theorem cmp_mul_pos_left + theorem cmp_mul_pos_right + theorem eq_zero_of_mul_self_add_mul_self_eq_zero + theorem le_iff_exists_nonneg_add + theorem le_mul_of_le_one_left + theorem le_mul_of_le_one_right + theorem le_of_mul_le_of_one_le + theorem lt_mul_left + theorem lt_mul_of_lt_one_left + theorem lt_mul_of_lt_one_right + theorem lt_mul_right + theorem lt_mul_self + theorem lt_of_mul_lt_mul_of_nonpos_left + theorem lt_of_mul_lt_mul_of_nonpos_right + theorem lt_two_mul_self + theorem max_mul_mul_le_max_mul_max + theorem max_mul_of_nonneg + theorem min_mul_of_nonneg + theorem monotone_mul_left_of_nonneg + theorem monotone_mul_right_of_nonneg + theorem mul_add_mul_le_mul_add_mul' + theorem mul_add_mul_le_mul_add_mul + theorem mul_add_mul_lt_mul_add_mul' + theorem mul_add_mul_lt_mul_add_mul + theorem mul_le_mul_left_of_neg + theorem mul_le_mul_of_nonneg_of_nonpos' + theorem mul_le_mul_of_nonneg_of_nonpos + theorem mul_le_mul_of_nonpos_left + theorem mul_le_mul_of_nonpos_of_nonneg' + theorem mul_le_mul_of_nonpos_of_nonneg + theorem mul_le_mul_of_nonpos_of_nonpos' + theorem mul_le_mul_of_nonpos_of_nonpos + theorem mul_le_mul_of_nonpos_right + theorem mul_le_mul_right_of_neg + theorem mul_le_of_one_le_left + theorem mul_le_of_one_le_right + theorem mul_le_one + theorem mul_lt_mul'' + theorem mul_lt_mul' + theorem mul_lt_mul + theorem mul_lt_mul_left_of_neg + theorem mul_lt_mul_of_neg_left + theorem mul_lt_mul_of_neg_right + theorem mul_lt_mul_right_of_neg + theorem mul_lt_of_one_lt_left + theorem mul_lt_of_one_lt_right + theorem mul_lt_one_of_nonneg_of_lt_one_left + theorem mul_lt_one_of_nonneg_of_lt_one_right + theorem mul_max_of_nonneg + theorem mul_min_of_nonneg + theorem mul_neg_iff + theorem mul_nonneg_iff + theorem mul_nonneg_iff_left_nonneg_of_pos + theorem mul_nonneg_iff_neg_imp_nonpos + theorem mul_nonneg_iff_of_pos_left + theorem mul_nonneg_iff_of_pos_right + theorem mul_nonneg_iff_pos_imp_nonneg + theorem mul_nonneg_iff_right_nonneg_of_pos + theorem mul_nonneg_of_nonpos_of_nonpos + theorem mul_nonneg_of_three + theorem mul_nonpos_iff + theorem mul_nonpos_iff_neg_imp_nonneg + theorem mul_nonpos_iff_pos_imp_nonpos + theorem mul_pos_iff + theorem mul_pos_of_neg_of_neg + theorem mul_self_add_mul_self_eq_zero + theorem mul_self_inj + theorem mul_self_le_mul_self_iff + theorem mul_self_le_mul_self_of_le_of_neg_le + theorem mul_self_lt_mul_self + theorem mul_self_lt_mul_self_iff + theorem mul_self_nonneg + theorem mul_self_pos + theorem neg_iff_pos_of_mul_neg + theorem neg_of_mul_neg_left + theorem neg_of_mul_neg_right + theorem neg_one_lt_zero + theorem nonneg_and_nonneg_or_nonpos_and_nonpos_of_mul_nonneg + theorem nonneg_le_nonneg_of_sq_le_sq + theorem nonneg_of_mul_nonneg_left + theorem nonneg_of_mul_nonneg_right + theorem nonneg_of_mul_nonpos_left + theorem nonneg_of_mul_nonpos_right + theorem nonpos_of_mul_nonneg_left + theorem nonpos_of_mul_nonneg_right + theorem nonpos_of_mul_nonpos_left + theorem nonpos_of_mul_nonpos_right + theorem one_le_mul_of_one_le_of_one_le + theorem one_lt_mul_of_le_of_lt + theorem one_lt_mul_of_lt_of_le + theorem pos_iff_neg_of_mul_neg + theorem pos_of_mul_neg_left + theorem pos_of_mul_neg_right + theorem pow_le_of_le_one + theorem pow_le_pow_of_le_one + theorem pow_nonneg + theorem pow_pos + theorem sign_cases_of_C_mul_pow_nonneg + theorem sq_le + theorem sq_nonneg + theorem strictAnti_mul_left + theorem strictAnti_mul_right + theorem strictMonoOn_mul_self + theorem strictMono_mul_left_of_pos + theorem strictMono_mul_right_of_pos + theorem sub_one_lt + theorem two_mul_le_add_sq 2024-07-16 22:33:43 6f640f8 feat(LinearAlgebra/TensorProduct/Subalgebra): some linear maps induced by multiplication for subalgebras (#14611) This is the follow-up of the PR #12498. It is used in the definition of linearly disjointness (#9651). ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/LinearAlgebra/TensorProduct/Subalgebra.lean + theorem Subalgebra.comm_trans_lTensorBot + theorem Subalgebra.comm_trans_rTensorBot + theorem Subalgebra.finrank_sup_le_of_free + def Subalgebra.lTensorBot + theorem Subalgebra.lTensorBot_one_tmul + theorem Subalgebra.lTensorBot_symm_apply + theorem Subalgebra.lTensorBot_tmul + def Subalgebra.mulMap' + theorem Subalgebra.mulMap'_surjective + def Subalgebra.mulMap + theorem Subalgebra.mulMap_bot_left_eq + theorem Subalgebra.mulMap_bot_right_eq + theorem Subalgebra.mulMap_comm + theorem Subalgebra.mulMap_range + theorem Subalgebra.mulMap_tmul + theorem Subalgebra.mulMap_toLinearMap + def Subalgebra.rTensorBot + theorem Subalgebra.rTensorBot_symm_apply + theorem Subalgebra.rTensorBot_tmul + theorem Subalgebra.rTensorBot_tmul_one + theorem Subalgebra.rank_sup_le_of_free + theorem Subalgebra.val_mulMap'_tmul Modified Mathlib/LinearAlgebra/TensorProduct/Submodule.lean 2024-07-16 22:20:50 5f69abe fix/docs: fix typo in example code (#14801) `EuclideanSpace` requires the field 𝕜 to be provided explicitly. ESTIMATED CHANGES Modified Mathlib/Geometry/Manifold/SmoothManifoldWithCorners.lean 2024-07-16 22:20:49 c2bcd26 refactor(Topology/Category): refactor CompHaus.Basic (#13908) This PR refactors the file `CompHaus.Basic` in terms of the new `CompHausLike` API. Other files are touched only to fix errors created by this refactor, they will be refactored later (in particular, the API for explicit limits will be mostly removed in favour of the general API for explicit limits in `CompHausLike`, see #12930). ESTIMATED CHANGES Modified Mathlib/Condensed/TopCatAdjunction.lean Modified Mathlib/Topology/Category/CompHaus/Basic.lean - theorem CompHaus.coe_of - def CompHaus.homeoOfIso - theorem CompHaus.isClosedMap - theorem CompHaus.isIso_of_bijective - def CompHaus.isoEquivHomeo - def CompHaus.isoOfHomeo - theorem CompHaus.mono_iff_injective - def CompHaus.of - structure CompHaus - def compHausToTop Modified Mathlib/Topology/Category/CompHaus/Limits.lean Modified Mathlib/Topology/Category/Compactum.lean Modified Mathlib/Topology/Category/LightProfinite/Basic.lean +/- def LightProfinite.homeoOfIso Modified Mathlib/Topology/Category/Profinite/Basic.lean +/- def Profinite.homeoOfIso Modified Mathlib/Topology/Category/Stonean/Basic.lean +/- def Stonean.homeoOfIso Modified Mathlib/Topology/Category/Stonean/Limits.lean 2024-07-16 21:32:39 64c256f chore (Algebra.Associated): avoid importing bundled ordered algebra classes (#14530) Right now we import `Mathlib.Algebra.Order.Monoid.Canonical.Defs` in `Mathlib.Algebra.Associated` for limited benefit. This PR removes this import. ESTIMATED CHANGES Modified Archive/Imo/Imo2001Q6.lean Modified Mathlib.lean Renamed Mathlib/Algebra/Associated.lean to Mathlib/Algebra/Associated/Basic.lean Added Mathlib/Algebra/Associated/OrderedCommMonoid.lean Modified Mathlib/Algebra/BigOperators/Associated.lean Modified Mathlib/Algebra/GCDMonoid/Basic.lean Modified Mathlib/Algebra/GroupWithZero/NonZeroDivisors.lean Modified Mathlib/Algebra/IsPrimePow.lean Modified Mathlib/Algebra/PUnitInstances/Module.lean Modified Mathlib/Algebra/PUnitInstances/Order.lean Modified Mathlib/Data/Int/Associated.lean Modified Mathlib/Data/List/Prime.lean Modified Mathlib/Data/Nat/Prime/Defs.lean Modified Mathlib/NumberTheory/Zsqrtd/Basic.lean Modified Mathlib/RingTheory/ChainOfDivisors.lean Modified Mathlib/RingTheory/Multiplicity.lean Modified Mathlib/RingTheory/Nilpotent/Basic.lean Modified Mathlib/RingTheory/Prime.lean Modified test/propose.lean 2024-07-16 20:24:48 3fc989a chore(Tactic): reduce autoImplicit, part 4 (#14805) After this, the only remaining uses are `Ring/Basic` (which is requires more work, hence shall get its own PR), `Sat/FromLRAT` and four single declarations in `ToExpr`. ESTIMATED CHANGES Modified Mathlib/Tactic/Linarith/Frontend.lean +/- def Linarith.ExprMultiMap.find +/- def Linarith.ExprMultiMap.insert Modified Mathlib/Tactic/Linarith/Lemmas.lean +/- theorem le_zero_of_zero_ge +/- theorem lt_zero_of_zero_gt Modified Mathlib/Tactic/Linarith/Parsing.lean +/- def List.findDefeq Modified Mathlib/Tactic/Linarith/Preprocessing.lean +/- theorem Linarith.without_one_mul Modified Mathlib/Tactic/Positivity/Basic.lean Modified Mathlib/Tactic/Positivity/Core.lean +/- def Mathlib.Meta.Positivity.Strictness.toString +/- def Mathlib.Meta.Positivity.catchNone +/- theorem Mathlib.Meta.Positivity.lt_of_le_of_ne' +/- theorem Mathlib.Meta.Positivity.nonneg_of_isNat +/- theorem Mathlib.Meta.Positivity.nonneg_of_isRat +/- theorem Mathlib.Meta.Positivity.nz_of_isNegNat +/- theorem Mathlib.Meta.Positivity.nz_of_isRat +/- def Mathlib.Meta.Positivity.orElse +/- theorem Mathlib.Meta.Positivity.pos_of_isNat +/- theorem Mathlib.Meta.Positivity.pos_of_isRat +/- def Mathlib.Meta.Positivity.throwNone +/- theorem ne_of_ne_of_eq' Modified Mathlib/Tactic/Relation/Trans.lean Modified Mathlib/Tactic/Ring/RingNF.lean Modified Mathlib/Tactic/ToExpr.lean 2024-07-16 20:24:47 6361297 feat(RingTheory/Valuation/Basic): add lemmas (#14641) Add `map_inv` to `Valuation` (previously it existed only for `AddValuation`), and add `map_div` for both. Additionally, add `AddValuation` versions of `map_add_eq_of_lt_right`, `map_add_eq_of_lt_left`, and `map_sub_eq` versions to both `Valuation` and `AddValuation`. ESTIMATED CHANGES Modified Mathlib/RingTheory/Valuation/Basic.lean + theorem AddValuation.map_add_eq_of_lt_left + theorem AddValuation.map_add_eq_of_lt_right + theorem AddValuation.map_div + theorem AddValuation.map_sub_eq_of_lt_left + theorem AddValuation.map_sub_eq_of_lt_right + theorem Valuation.map_div + theorem Valuation.map_inv + theorem Valuation.map_sub_eq_of_lt_left + theorem Valuation.map_sub_eq_of_lt_right 2024-07-16 20:24:46 14e44da feat(Algebra/BigOperators/Group/Finset): Lemma for product being a square (#14622) Added a small lemma that shows a product is a square if all the terms are squares ESTIMATED CHANGES Modified Mathlib/Algebra/BigOperators/Group/Finset.lean + theorem Finset.isSquare_prod 2024-07-16 20:08:12 11ef377 chore: allow adaptation script to proceed if CI is still running (#14813) ESTIMATED CHANGES Modified scripts/create-adaptation-pr.sh 2024-07-16 20:08:11 5c9710d chore(AlgebraCat): remove bad instance (#14804) See [zulip](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/category.20theory.20import.20breaks.20CommRing.20synthesis/near/449132250). ESTIMATED CHANGES Modified Mathlib/Algebra/Category/AlgebraCat/Basic.lean Added test/instances/CommRing_integralClosure.lean 2024-07-16 20:08:10 2422cb5 chore(Order): More simp lemmas (#13338) These lemmas are needed in #13201 ESTIMATED CHANGES Modified Mathlib/Order/Bounds/Basic.lean +/- theorem isGLB_singleton +/- theorem isGreatest_singleton +/- theorem isLUB_singleton +/- theorem isLeast_singleton Modified Mathlib/Order/CompleteLattice.lean - theorem monotone_sInf_of_monotone - theorem monotone_sSup_of_monotone Modified Mathlib/Order/Hom/Basic.lean + theorem OrderHom.mk_comp_mk 2024-07-16 19:50:54 58141c8 chore: typos in `create-adaptation-pr.sh`. (#14810) ESTIMATED CHANGES Modified scripts/create-adaptation-pr.sh 2024-07-16 19:50:53 9ed238f feat: category equivalence between coalgebras and comonoid objects (#11974) Given a commutative ring `R`, this PR defines the equivalence of categories between `R`-coalgebras and comonoid objects in the category of `R`-modules. We then use this to set up boilerplate for the monoidal structure on `R`-coalgebras defined in #11975 and #11976. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Category/CoalgebraCat/ComonEquivalence.lean + theorem CoalgebraCat.MonoidalCategoryAux.associator_hom_toLinearMap + theorem CoalgebraCat.MonoidalCategoryAux.comul_tensorObj + theorem CoalgebraCat.MonoidalCategoryAux.comul_tensorObj_tensorObj_left + theorem CoalgebraCat.MonoidalCategoryAux.comul_tensorObj_tensorObj_right + theorem CoalgebraCat.MonoidalCategoryAux.counit_tensorObj + theorem CoalgebraCat.MonoidalCategoryAux.counit_tensorObj_tensorObj_left + theorem CoalgebraCat.MonoidalCategoryAux.counit_tensorObj_tensorObj_right + theorem CoalgebraCat.MonoidalCategoryAux.leftUnitor_hom_toLinearMap + theorem CoalgebraCat.MonoidalCategoryAux.rightUnitor_hom_toLinearMap + theorem CoalgebraCat.MonoidalCategoryAux.tensorHom_toLinearMap + theorem CoalgebraCat.MonoidalCategoryAux.tensorObj_comul + def CoalgebraCat.ofComon + def CoalgebraCat.ofComonObj + def CoalgebraCat.toComon + def CoalgebraCat.toComonObj Modified Mathlib/Algebra/Category/ModuleCat/Monoidal/Basic.lean Modified Mathlib/Algebra/Category/ModuleCat/Monoidal/Symmetric.lean + theorem ModuleCat.MonoidalCategory.tensor_μ_apply + theorem ModuleCat.MonoidalCategory.tensor_μ_eq_tensorTensorTensorComm Modified Mathlib/CategoryTheory/Monoidal/Braided/Opposite.lean + theorem CategoryTheory.BraidedCategory.op_tensor_μ + theorem CategoryTheory.BraidedCategory.unop_tensor_μ Modified Mathlib/RingTheory/Coalgebra/Basic.lean 2024-07-16 18:44:06 52249e2 chore(workflows): add missing space in message (#14806) ESTIMATED CHANGES Modified .github/workflows/nightly_detect_failure.yml 2024-07-16 18:44:05 6649421 chore(Data.Complex): add `@[simp]` to `Complex.conj_ofReal` (#14648) This came up in #14601: it seems this `simp` lemma is missing, and as a consequence the `simp` set wouldn't converge. Zulip discussion: https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/Should.20docs.23Complex.2Econj_ofReal.20be.20.60.40.5Bsimp.5D.60.3F ESTIMATED CHANGES Modified Mathlib/Data/Complex/Basic.lean 2024-07-16 18:44:04 3cdee7b chore(Data/Stream/Init): use `ℕ` instead of `Nat` consistently (#14521) The file currently uses a mix of these: use the nice unicode character, since we can. ESTIMATED CHANGES Modified Mathlib/Data/Stream/Defs.lean +/- def Stream'.drop +/- def Stream'.nats Modified Mathlib/Data/Stream/Init.lean +/- theorem Stream'.append_take_drop +/- theorem Stream'.drop_const +/- theorem Stream'.drop_drop +/- theorem Stream'.drop_map +/- theorem Stream'.drop_succ +/- theorem Stream'.drop_zip +/- theorem Stream'.get?_take_succ +/- theorem Stream'.get_const +/- theorem Stream'.get_drop +/- theorem Stream'.get_even +/- theorem Stream'.get_inits +/- theorem Stream'.get_interleave_left +/- theorem Stream'.get_interleave_right +/- theorem Stream'.get_map +/- theorem Stream'.get_nats +/- theorem Stream'.get_odd +/- theorem Stream'.get_succ +/- theorem Stream'.get_succ_cons +/- theorem Stream'.get_succ_iterate' +/- theorem Stream'.get_succ_iterate +/- theorem Stream'.get_tails +/- theorem Stream'.get_unfolds_head_tail +/- theorem Stream'.get_zip +/- theorem Stream'.mem_of_get_eq +/- theorem Stream'.tail_drop +/- theorem Stream'.take_succ +/- theorem Stream'.take_theorem 2024-07-16 18:44:03 f0d08e6 refactor(LinearAlgebra/Matrix/SesquilinearForm): Sesquilinear Maps and Matrices (#9334) Some of the concepts in `LinearAlgebra/Matrix/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. A number of results in the `ToMatrix` section relating composition of maps to matrix multiplication could also be generalised, but they require a more genralised notion of matrix multiplication than we currently have available, so they are not included in the scope of this PR. Similarly for most of the results in the `Det` section. ESTIMATED CHANGES Modified Mathlib/Combinatorics/SimpleGraph/LapMatrix.lean Modified Mathlib/LinearAlgebra/Matrix/BilinearForm.lean Modified Mathlib/LinearAlgebra/Matrix/PosDef.lean Modified Mathlib/LinearAlgebra/Matrix/SesquilinearForm.lean +/- theorem LinearMap.toLinearMap₂'Aux_toMatrix₂Aux +/- theorem LinearMap.toMatrix'_toLinearMap₂' +/- theorem LinearMap.toMatrix'_toLinearMapₛₗ₂' +/- def LinearMap.toMatrix₂' +/- theorem LinearMap.toMatrix₂'_apply +/- theorem LinearMap.toMatrix₂Aux_apply +/- theorem LinearMap.toMatrix₂Aux_eq +/- theorem LinearMap.toMatrix₂_apply +/- theorem LinearMap.toMatrix₂_symm +/- theorem LinearMap.toMatrix₂_toLinearMap₂ +/- def LinearMap.toMatrixₛₗ₂' +/- theorem LinearMap.toMatrixₛₗ₂'_apply +/- def Matrix.toLinearMap₂' +/- def Matrix.toLinearMap₂'Aux +/- theorem Matrix.toLinearMap₂'Aux_stdBasis +/- theorem Matrix.toLinearMap₂'_apply' +/- theorem Matrix.toLinearMap₂'_apply +/- theorem Matrix.toLinearMap₂'_stdBasis +/- theorem Matrix.toLinearMap₂'_toMatrix' +/- theorem Matrix.toLinearMap₂_apply +/- theorem Matrix.toLinearMap₂_symm +/- theorem Matrix.toLinearMap₂_toMatrix₂ +/- def Matrix.toLinearMapₛₗ₂' +/- theorem Matrix.toLinearMapₛₗ₂'_apply +/- theorem Matrix.toLinearMapₛₗ₂'_aux_eq +/- theorem Matrix.toLinearMapₛₗ₂'_stdBasis +/- theorem Matrix.toLinearMapₛₗ₂'_toMatrix' +/- theorem Matrix.toMatrix₂Aux_toLinearMap₂'Aux Modified Mathlib/LinearAlgebra/QuadraticForm/Basic.lean 2024-07-16 16:36:13 81e5948 feat: add lemma not_mem_singleton_iff (#14443) The contrapositive (?) of the lemma ``` theorem mem_singleton_iff {a b : α} : a ∈ ({b} : Set α) ↔ a = b := Iff.rfl ``` was missing. This PR adds ``` @[simp] theorem not_mem_singleton_iff {a b : α} : a ∉ ({b} : Set α) ↔ a ≠ b := Iff.rfl ``` which can be useful in avoiding extra `have` statements in other proofs. ESTIMATED CHANGES Modified Mathlib/Data/Set/Basic.lean + theorem Set.not_mem_singleton_iff 2024-07-16 14:28:55 2f6e35a chore(Data/Bool): merge Init.Data.Bool.* into Data.Bool.Basic (#14769) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Analysis/BoxIntegral/Basic.lean Modified Mathlib/Data/Bool/Basic.lean + theorem Bool.and_eq_false_eq_eq_false_or_eq_false + theorem Bool.and_eq_true_eq_eq_true_and_eq_true + theorem Bool.bool_eq_false + theorem Bool.bool_iff_false + theorem Bool.coe_false + theorem Bool.coe_sort_false + theorem Bool.coe_sort_true + theorem Bool.coe_true + theorem Bool.coe_xor_iff + theorem Bool.decide_congr + theorem Bool.decide_false + theorem Bool.decide_false_iff + theorem Bool.decide_iff + theorem Bool.decide_true + theorem Bool.eq_false_eq_not_eq_true + theorem Bool.eq_false_of_not_eq_true + theorem Bool.eq_true_eq_not_eq_false + theorem Bool.eq_true_of_not_eq_false + theorem Bool.false_eq_true_eq_False + theorem Bool.not_eq_false_eq_eq_true + theorem Bool.not_eq_true_eq_eq_false + theorem Bool.of_decide_false + theorem Bool.of_decide_true + theorem Bool.or_eq_false_eq_eq_false_and_eq_false + theorem Bool.or_eq_true_eq_eq_true_or_eq_true + theorem Bool.true_eq_false_eq_False Deleted Mathlib/Init/Data/Bool/Basic.lean Deleted Mathlib/Init/Data/Bool/Lemmas.lean - theorem Bool.and_eq_false_eq_eq_false_or_eq_false - theorem Bool.and_eq_true_eq_eq_true_and_eq_true - theorem Bool.bool_eq_false - theorem Bool.bool_iff_false - theorem Bool.coe_false - theorem Bool.coe_sort_false - theorem Bool.coe_sort_true - theorem Bool.coe_true - theorem Bool.coe_xor_iff - theorem Bool.decide_congr - theorem Bool.decide_false - theorem Bool.decide_false_iff - theorem Bool.decide_iff - theorem Bool.decide_true - theorem Bool.eq_false_eq_not_eq_true - theorem Bool.eq_false_of_not_eq_true - theorem Bool.eq_true_eq_not_eq_false - theorem Bool.eq_true_of_not_eq_false - theorem Bool.false_eq_true_eq_False - theorem Bool.not_eq_false_eq_eq_true - theorem Bool.not_eq_true_eq_eq_false - theorem Bool.of_decide_false - theorem Bool.of_decide_true - theorem Bool.or_eq_false_eq_eq_false_and_eq_false - theorem Bool.or_eq_true_eq_eq_true_or_eq_true - theorem Bool.true_eq_false_eq_False Modified Mathlib/Logic/Equiv/Basic.lean Modified Mathlib/Logic/Equiv/Defs.lean Modified Mathlib/Order/Monotone/Basic.lean Modified Mathlib/Topology/Category/Profinite/Nobeling.lean Modified scripts/noshake.json 2024-07-16 13:47:18 1bb760c Simple, but useful formula representing a vector in an inner product space (#14184) feat: Add a simple but useful formula representing a vector in an inner product space Given a vector x and an orthonormal basis b in a finite-dimensional inner product space, this PR adds the following simple but useful formula representing x in terms of scalar products ∑ i, ⟪b i, x⟫_𝕜 • b i = x ESTIMATED CHANGES Modified Mathlib/Analysis/InnerProductSpace/PiL2.lean 2024-07-16 13:35:46 e244b2f ci(nightly_detect_failure): update reminder message to mention script (#14795) The script in scripts/create-adaptation-pr.sh can be used to semi-automatically create PRs from nightly-testing to the bump branch. The friendly bot now points to the script when posting a reminder. ESTIMATED CHANGES Modified .github/workflows/nightly_detect_failure.yml 2024-07-16 13:35:45 4f7e8e4 chore(scripts/create-adaptation-pr.sh): auto resolve certain merge conflicts (#14792) ESTIMATED CHANGES Modified scripts/create-adaptation-pr.sh 2024-07-16 13:25:42 74b6faa chore(scripts/create-adaptation-pr.sh): make script robust against changes on disk (#14794) This script needs to change branches regularly. By default shell scripts are not robust against changes to the script on disk. So if different branches have different versions of the script, unexpected things may happen. By wrapping the script in { # script content exit } we protect against such problems. ESTIMATED CHANGES Modified scripts/create-adaptation-pr.sh 2024-07-16 12:01:07 ba42417 feat(NumberTheory/SiegelsLemma): replace `Fin m` and `Fin n` with `Fintype α` and `Fintype β` (#14797) ESTIMATED CHANGES Modified Mathlib/NumberTheory/SiegelsLemma.lean +/- theorem Int.Matrix.exists_ne_zero_int_vec_norm_le 2024-07-16 12:01:06 2eda6f4 chore: unify `add_halves` and `add_halves'` (#14790) by generalizing to `DivisionSemiring` ESTIMATED CHANGES Modified Counterexamples/Pseudoelement.lean Modified Mathlib/Algebra/CharZero/Lemmas.lean - theorem add_halves' + theorem add_halves + theorem add_self_div_two - theorem half_add_self +/- theorem sub_half Modified Mathlib/Algebra/Order/Field/Basic.lean - theorem add_halves - theorem add_self_div_two Modified Mathlib/Algebra/Order/Floor.lean Modified Mathlib/Analysis/LocallyConvex/WithSeminorms.lean Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Inverse.lean Modified Mathlib/Combinatorics/SimpleGraph/LapMatrix.lean Modified Mathlib/Data/Complex/Exponential.lean Modified Mathlib/Geometry/Euclidean/MongePoint.lean Modified Mathlib/NumberTheory/LSeries/HurwitzZetaOdd.lean 2024-07-16 12:01:05 88aed88 feat (Mathlib/RingTheory/MvPowerSeries/NoZeroDivisors) : power series with constant coeff unit is a unit (#14454) Prove properties of the inverse of a power series over a general Ring. We prove that a multivariate power series is a unit iff its constant coefficient is a unit. The proof uses the construction of the inverse (which is a priori only a left inverse) and proves it is a right inverse. To that aim, we prove the more general result that if the constant coefficient of a multivariate power series is not a zero divisor, then the power series itself is not a zero divisor. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/RingTheory/MvPolynomial/Homogeneous.lean + theorem MvPolynomial.degree_eq_zero_iff Modified Mathlib/RingTheory/MvPowerSeries/Inverse.lean + theorem MvPowerSeries.invOfUnit_mul + theorem MvPowerSeries.isUnit_iff_constantCoeff Added Mathlib/RingTheory/MvPowerSeries/NoZeroDivisors.lean + theorem MvPowerSeries.mem_nonZeroDivisors_of_constantCoeff Modified Mathlib/RingTheory/PowerSeries/Inverse.lean + theorem PowerSeries.invOfUnit_mul + theorem PowerSeries.isUnit_iff_constantCoeff Modified docs/references.bib 2024-07-16 12:01:03 ab19216 feat: Functor.mapHomotopyCategory is a triangulated functor (#14084) In this PR, we show that if `F` is an additive functor, then the induced functor on the homotopy categories is a triangulated functor. ESTIMATED CHANGES Modified Mathlib/Algebra/Homology/HomotopyCategory/MappingCone.lean + theorem CochainComplex.mappingCone.mapHomologicalComplexXIso_eq + theorem CochainComplex.mappingCone.map_inr Modified Mathlib/Algebra/Homology/HomotopyCategory/Pretriangulated.lean + theorem CochainComplex.mappingCone.map_δ Modified Mathlib/Algebra/Homology/HomotopyCategory/Shift.lean 2024-07-16 11:03:49 e29855b chore(Data/Int/Defs): clear out Init/Data/Int/Basic (#14759) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Group/Defs.lean Renamed Mathlib/Init/Data/Int/Basic.lean to Mathlib/Data/Int/Align.lean - def Int.natMod Modified Mathlib/Data/Int/Defs.lean + def Int.natMod Added Mathlib/Data/Int/Notation.lean Modified Mathlib/Data/Num/Basic.lean Modified Mathlib/Init/Data/Int/Order.lean Modified Mathlib/Logic/Basic.lean Modified Mathlib/Tactic/Lift.lean Modified scripts/noshake.json 2024-07-16 10:21:22 faeefa5 feat(Algebra/Category/ModuleCat/{Presheaf, Sheaf}): forgetful functor from sheaves of modules over sheaf of ring R to sheaves of R(X)-module when X is initial (#14254) Let $R : C^{op} \to Ring$ be a sheaf of rings and $M$ a sheaf of $R$-modules. Then $M$ is naturally a sheaf of $R(\top)$-modules where $\top$ is an initial object. In the case of a sheafed space $X$, for any $x \in X$ and $M$ a sheaf of $\mathcal{O} _X$-modules, then $M$ is also a sheaf of $\Gamma(\mathcal{O} _X, X)$-modules; thus we can take stalks to naturally have that $M_x$ is a $\Gamma(\mathcal{O} _X, X)$-module. Thus we can use this construction to define $M_x$ as a module over $\mathcal{O} _{X, x}$. ESTIMATED CHANGES Modified Mathlib/Algebra/Category/ModuleCat/Presheaf.lean Modified Mathlib/Algebra/Category/ModuleCat/Sheaf.lean 2024-07-16 09:32:01 a81865a feat(CategoryTheory/Karoubi): cleanup (#14786) ESTIMATED CHANGES Modified Mathlib/AlgebraicTopology/DoldKan/NCompGamma.lean Modified Mathlib/AlgebraicTopology/DoldKan/NReflectsIso.lean Modified Mathlib/AlgebraicTopology/DoldKan/Normalized.lean Modified Mathlib/AlgebraicTopology/DoldKan/SplitSimplicialObject.lean Modified Mathlib/CategoryTheory/Idempotents/Biproducts.lean Modified Mathlib/CategoryTheory/Idempotents/Karoubi.lean + theorem CategoryTheory.Idempotents.Karoubi.id_f Modified Mathlib/CategoryTheory/Idempotents/KaroubiKaroubi.lean 2024-07-16 09:32:00 2070757 feat(CategoryTheory): Cat-valued functors induced by passing to Over/Under categories (#14656) This PR redefines but does not rename the natural isomorphisms `mapId` and `mapComp` for the composition functors associated to over or under categories. Originally these were defined using `isoRefl`. Now instead these are defined using `eqToIso` applied to equalities between the appropriate functors, which are also added here. These equalities are also used to define functors `T ⥤ Cat` and `Tᵒᵖ ⥤ Cat` sending an object `X` to `Over X` and `Under X` respectively. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Comma/Over.lean + theorem CategoryTheory.Over.eqToHom_left +/- def CategoryTheory.Over.mapComp + theorem CategoryTheory.Over.mapComp_eq + def CategoryTheory.Over.mapForget + theorem CategoryTheory.Over.mapForget_eq + def CategoryTheory.Over.mapFunctor +/- def CategoryTheory.Over.mapId + theorem CategoryTheory.Over.mapId_eq + theorem CategoryTheory.Under.eqToHom_right + theorem CategoryTheory.Under.mapComp_eq + def CategoryTheory.Under.mapForget + theorem CategoryTheory.Under.mapForget_eq + def CategoryTheory.Under.mapFunctor +/- def CategoryTheory.Under.mapId + theorem CategoryTheory.Under.mapId_eq 2024-07-16 09:12:33 90ef20a feat: prove Fermat's Last Theorem for `n=3` (#14653) We add `fermatLastTheoremThree`: Fermat's Last Theorem for `n=3`. From the flt3 project at LFTCM2024. ESTIMATED CHANGES Modified Mathlib/NumberTheory/FLT/Three.lean + theorem FermatLastTheoremForThreeGen.Solution.Solution'_descent_multiplicity + theorem FermatLastTheoremForThreeGen.Solution.Solution'_descent_multiplicity_lt - theorem FermatLastTheoremForThreeGen.Solution.eta_add_one_mul_neg_eta_eq_one + theorem FermatLastTheoremForThreeGen.Solution.exists_Solution_multiplicity_lt - theorem FermatLastTheoremForThreeGen.Solution.lambda_pow_dvd_a_add_b + theorem fermatLastTheoremThree 2024-07-16 09:12:32 20524cc chore: move 300 lines off Combinatorics/SimpleGraph/Connectivity (#14647) Move material about walks as subgraphs and walk-counting to separate files. Mostly import-directed; I'm not a graph theorist - please comment if this split doesn't make sense! ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Combinatorics/SimpleGraph/AdjMatrix.lean Modified Mathlib/Combinatorics/SimpleGraph/Connectivity.lean - theorem SimpleGraph.Walk.edgeSet_toSubgraph - theorem SimpleGraph.Walk.end_mem_verts_toSubgraph - theorem SimpleGraph.Walk.finite_neighborSet_toSubgraph - theorem SimpleGraph.Walk.mem_edges_toSubgraph - theorem SimpleGraph.Walk.mem_finsetWalkLength_iff_length_eq - theorem SimpleGraph.Walk.mem_verts_toSubgraph - theorem SimpleGraph.Walk.start_mem_verts_toSubgraph - theorem SimpleGraph.Walk.toSubgraph_append - theorem SimpleGraph.Walk.toSubgraph_cons_nil_eq_subgraphOfAdj - theorem SimpleGraph.Walk.toSubgraph_le_induce_support - theorem SimpleGraph.Walk.toSubgraph_map - theorem SimpleGraph.Walk.toSubgraph_reverse - theorem SimpleGraph.Walk.toSubgraph_rotate - theorem SimpleGraph.Walk.verts_toSubgraph - theorem SimpleGraph.card_set_walk_length_eq - theorem SimpleGraph.coe_finsetWalkLength_eq - def SimpleGraph.finsetWalkLength - theorem SimpleGraph.reachable_iff_exists_finsetWalkLength_nonempty - theorem SimpleGraph.set_walk_length_succ_eq - theorem SimpleGraph.set_walk_length_toFinset_eq - theorem SimpleGraph.set_walk_length_zero_eq_of_ne - theorem SimpleGraph.set_walk_self_length_zero_eq - def SimpleGraph.walkLengthTwoEquivCommonNeighbors Modified Mathlib/Combinatorics/SimpleGraph/Connectivity/Subgraph.lean + theorem SimpleGraph.Walk.edgeSet_toSubgraph + theorem SimpleGraph.Walk.end_mem_verts_toSubgraph + theorem SimpleGraph.Walk.finite_neighborSet_toSubgraph + theorem SimpleGraph.Walk.mem_edges_toSubgraph + theorem SimpleGraph.Walk.mem_verts_toSubgraph + theorem SimpleGraph.Walk.start_mem_verts_toSubgraph + theorem SimpleGraph.Walk.toSubgraph_append + theorem SimpleGraph.Walk.toSubgraph_cons_nil_eq_subgraphOfAdj + theorem SimpleGraph.Walk.toSubgraph_le_induce_support + theorem SimpleGraph.Walk.toSubgraph_map + theorem SimpleGraph.Walk.toSubgraph_reverse + theorem SimpleGraph.Walk.toSubgraph_rotate + theorem SimpleGraph.Walk.verts_toSubgraph Added Mathlib/Combinatorics/SimpleGraph/Connectivity/WalkCounting.lean + theorem SimpleGraph.Walk.mem_finsetWalkLength_iff_length_eq + theorem SimpleGraph.card_set_walk_length_eq + theorem SimpleGraph.coe_finsetWalkLength_eq + def SimpleGraph.finsetWalkLength + theorem SimpleGraph.reachable_iff_exists_finsetWalkLength_nonempty + theorem SimpleGraph.set_walk_length_succ_eq + theorem SimpleGraph.set_walk_length_toFinset_eq + theorem SimpleGraph.set_walk_length_zero_eq_of_ne + theorem SimpleGraph.set_walk_self_length_zero_eq + def SimpleGraph.walkLengthTwoEquivCommonNeighbors Modified Mathlib/Combinatorics/SimpleGraph/Matching.lean 2024-07-16 09:12:30 63ed47e feat(CategoryTheory): the monoidal category structure on graded objects (#14457) Under suitable conditions on a monoidal category `C`, we define an instance of `MonoidalCategory (GradedObject ℕ C)`. The construction is actually more general, and it shall be used in order to get monoidal category structures on homological complexes in future PRs. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/EffectiveEpi/Extensive.lean Modified Mathlib/CategoryTheory/GradedObject/Monoidal.lean + theorem CategoryTheory.GradedObject.Monoidal.left_tensor_tensorObj₃_ext + theorem CategoryTheory.GradedObject.Monoidal.pentagon + theorem CategoryTheory.GradedObject.Monoidal.pentagon_inv + theorem CategoryTheory.GradedObject.Monoidal.tensorObj₄_ext + theorem CategoryTheory.GradedObject.Monoidal.ιTensorObj₄_eq Modified Mathlib/CategoryTheory/Limits/Preserves/Finite.lean - def CategoryTheory.Limits.preservesFiniteCoproductsOfReflectsOfPreserves Modified Mathlib/CategoryTheory/Monoidal/Category.lean + theorem CategoryTheory.MonoidalCategory.whiskerLeft_whiskerLeft_associator_inv 2024-07-16 08:19:03 1c5837c chore: remove superfluous `ge_iff_le` (#14785) These were likely introduced by calling simp?, but are not necessary. This is fixed in https://github.com/leanprover/lean4/pull/4567, so now might be a good time for cleaning them up. ESTIMATED CHANGES Modified Mathlib/Algebra/BigOperators/Intervals.lean Modified Mathlib/Algebra/BigOperators/Module.lean Modified Mathlib/Algebra/GeomSum.lean Modified Mathlib/Algebra/Group/Submonoid/Membership.lean Modified Mathlib/Algebra/Homology/ExactSequence.lean Modified Mathlib/Algebra/Polynomial/Module/Basic.lean Modified Mathlib/Algebra/Polynomial/RingDivision.lean Modified Mathlib/Algebra/Tropical/BigOperators.lean Modified Mathlib/AlgebraicGeometry/Morphisms/QuasiCompact.lean Modified Mathlib/AlgebraicTopology/AlternatingFaceMapComplex.lean Modified Mathlib/AlgebraicTopology/SimplexCategory.lean Modified Mathlib/Analysis/Calculus/BumpFunction/FiniteDimension.lean Modified Mathlib/Analysis/Calculus/FDeriv/Measurable.lean Modified Mathlib/Analysis/Calculus/InverseFunctionTheorem/ApproximatesLinearOn.lean Modified Mathlib/Analysis/Complex/UpperHalfPlane/Topology.lean Modified Mathlib/Analysis/Fourier/FourierTransformDeriv.lean Modified Mathlib/Analysis/NormedSpace/ProdLp.lean Modified Mathlib/Analysis/NormedSpace/RieszLemma.lean Modified Mathlib/Analysis/NormedSpace/Unitization.lean Modified Mathlib/Combinatorics/Enumerative/Composition.lean Modified Mathlib/Combinatorics/SetFamily/LYM.lean Modified Mathlib/Combinatorics/SimpleGraph/Subgraph.lean Modified Mathlib/Computability/Ackermann.lean Modified Mathlib/Computability/AkraBazzi/AkraBazzi.lean Modified Mathlib/Computability/AkraBazzi/GrowsPolynomially.lean Modified Mathlib/Data/Fin/Tuple/Basic.lean Modified Mathlib/Data/Finite/Card.lean Modified Mathlib/Data/Finsupp/BigOperators.lean Modified Mathlib/Data/Int/ConditionallyCompleteOrder.lean Modified Mathlib/Data/List/Chain.lean Modified Mathlib/Data/List/MinMax.lean Modified Mathlib/Data/Multiset/Antidiagonal.lean Modified Mathlib/Data/Multiset/Powerset.lean Modified Mathlib/Data/Nat/Choose/Sum.lean Modified Mathlib/Data/Nat/Pairing.lean Modified Mathlib/Data/Real/EReal.lean Modified Mathlib/Data/Set/Sups.lean Modified Mathlib/Data/Sum/Lattice.lean Modified Mathlib/Data/Sum/Order.lean Modified Mathlib/LinearAlgebra/Dimension/Constructions.lean Modified Mathlib/LinearAlgebra/LinearPMap.lean Modified Mathlib/LinearAlgebra/Prod.lean Modified Mathlib/MeasureTheory/Constructions/Cylinders.lean Modified Mathlib/MeasureTheory/Function/ConvergenceInMeasure.lean Modified Mathlib/MeasureTheory/Function/Egorov.lean Modified Mathlib/MeasureTheory/Function/UniformIntegrable.lean Modified Mathlib/MeasureTheory/Integral/Bochner.lean Modified Mathlib/MeasureTheory/Integral/IntervalIntegral.lean Modified Mathlib/MeasureTheory/Integral/Layercake.lean Modified Mathlib/MeasureTheory/Measure/Haar/OfBasis.lean Modified Mathlib/MeasureTheory/Measure/LevyProkhorovMetric.lean Modified Mathlib/MeasureTheory/Measure/Portmanteau.lean Modified Mathlib/MeasureTheory/Measure/Stieltjes.lean Modified Mathlib/MeasureTheory/Measure/Typeclasses.lean Modified Mathlib/MeasureTheory/OuterMeasure/Caratheodory.lean Modified Mathlib/NumberTheory/ADEInequality.lean Modified Mathlib/NumberTheory/ArithmeticFunction.lean Modified Mathlib/NumberTheory/Bernoulli.lean Modified Mathlib/NumberTheory/FLT/Four.lean Modified Mathlib/Order/Atoms.lean Modified Mathlib/Order/ConditionallyCompleteLattice/Basic.lean Modified Mathlib/Order/Filter/Bases.lean Modified Mathlib/Order/Interval/Set/Basic.lean Modified Mathlib/Order/Interval/Set/Pi.lean Modified Mathlib/Order/OmegaCompletePartialOrder.lean Modified Mathlib/Order/RelSeries.lean Modified Mathlib/Probability/Distributions/Exponential.lean Modified Mathlib/Probability/Distributions/Gamma.lean Modified Mathlib/Probability/Independence/ZeroOne.lean Modified Mathlib/Probability/Kernel/Condexp.lean Modified Mathlib/Probability/Process/Stopping.lean Modified Mathlib/RingTheory/IntegralClosure.lean Modified Mathlib/RingTheory/MvPolynomial/Homogeneous.lean Modified Mathlib/RingTheory/Polynomial/ScaleRoots.lean Modified Mathlib/RingTheory/WittVector/Verschiebung.lean Modified Mathlib/SetTheory/Cardinal/Ordinal.lean Modified Mathlib/Topology/Algebra/InfiniteSum/Constructions.lean Modified Mathlib/Topology/Algebra/Order/LiminfLimsup.lean Modified Mathlib/Topology/Algebra/UniformGroup.lean Modified Mathlib/Topology/Algebra/Valued/NormedValued.lean Modified Mathlib/Topology/Algebra/Valued/ValuationTopology.lean Modified Mathlib/Topology/Basic.lean Modified Mathlib/Topology/ContinuousFunction/Ideals.lean Modified Mathlib/Topology/Instances/ENNReal.lean Modified Mathlib/Topology/Instances/Irrational.lean Modified Mathlib/Topology/MetricSpace/CauSeqFilter.lean Modified Mathlib/Topology/MetricSpace/Lipschitz.lean Modified Mathlib/Topology/MetricSpace/ThickenedIndicator.lean Modified Mathlib/Topology/UniformSpace/Cauchy.lean 2024-07-16 07:40:50 f0587c5 chore(Logic/Function/Defs): move file out of Init (#14754) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/CategoryTheory/Yoneda.lean Modified Mathlib/Control/Basic.lean Modified Mathlib/Control/Traversable/Basic.lean Modified Mathlib/Data/Bool/Basic.lean Modified Mathlib/Data/List/Defs.lean Modified Mathlib/Data/Option/NAry.lean Modified Mathlib/Data/Prod/Basic.lean Modified Mathlib/Data/Prod/PProd.lean Modified Mathlib/Data/Sigma/Basic.lean Modified Mathlib/Logic/Basic.lean +/- theorem Imp.swap - theorem PLift.down_inj - theorem PLift.down_injective - theorem ULift.down_inj - theorem ULift.down_injective +/- theorem forall_swap Modified Mathlib/Logic/Function/CompTypeclasses.lean Renamed Mathlib/Init/Function.lean to Mathlib/Logic/Function/Defs.lean Added Mathlib/Logic/Function/ULift.lean + theorem PLift.down_inj + theorem PLift.down_injective + theorem ULift.down_inj + theorem ULift.down_injective Modified Mathlib/Logic/Nonempty.lean Modified Mathlib/Logic/Nontrivial/Defs.lean Modified Mathlib/Logic/Relator.lean Modified Mathlib/Order/ULift.lean Modified Mathlib/Tactic/DeriveTraversable.lean Modified scripts/noshake.json Modified test/apply_fun.lean 2024-07-16 05:50:35 60750e1 feat(Measure/WithDensity): drop measurability assumption (#14736) - Show that for an s-finite measure, any function is equivalent to a measurable function in the sense of Lebesgue integrals over subsets. - Use it to drop measurability assumption and add an instance `Measure.withDensity.instSFinite`. ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Integral/Lebesgue.lean + theorem MeasureTheory.exists_measurable_le_forall_setLIntegral_eq Modified Mathlib/MeasureTheory/Measure/WithDensity.lean + theorem MeasureTheory.exists_measurable_le_withDensity_eq 2024-07-16 05:23:28 d81613c chore: remove unused lemmas about bit0/1 (#14707) Deletions: - bit0_mul - mul_bit0 - bit1_mul - mul_bit1 - Polynomial.natDegree_bit0 - Polynomial.natDegree_bit1 - Polynomial.bit0_comp - Polynomial.bit1_comp ESTIMATED CHANGES Modified Mathlib/Algebra/Polynomial/Degree/Lemmas.lean - theorem Polynomial.natDegree_bit0 - theorem Polynomial.natDegree_bit1 Modified Mathlib/Algebra/Tropical/Basic.lean 2024-07-16 05:03:37 75188d9 chore(Function/EssSup): use `ae_smul_measure_eq` (#14772) ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Function/EssSup.lean 2024-07-16 03:55:47 0f79c0c chore(Data/Nat/Notation): move Init/Data/Nat/Notation (#14761) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Data/Fin/Fin2.lean Modified Mathlib/Data/List/Defs.lean Added Mathlib/Data/Nat/Notation.lean Modified Mathlib/Data/Rat/Init.lean Modified Mathlib/Data/Stream/Defs.lean Modified Mathlib/Data/String/Lemmas.lean Modified Mathlib/Data/Tree/Basic.lean Modified Mathlib/Init/Data/Fin/Basic.lean Modified Mathlib/Init/Data/Int/Basic.lean Modified Mathlib/Init/Data/List/Basic.lean Modified Mathlib/Init/Data/Nat/Basic.lean Modified Mathlib/Init/Data/Nat/GCD.lean Deleted Mathlib/Init/Data/Nat/Notation.lean Modified Mathlib/Tactic/Linter/TextBased.lean Modified Mathlib/Tactic/TFAE.lean Modified Mathlib/Tactic/ToAdditive.lean Modified scripts/noshake.json Modified test/Expr.lean Modified test/apply_fun.lean Modified test/cases.lean 2024-07-16 01:36:25 f1a20a0 feat(CstarRing): weaken the definition of `CstarRing` from an equality to an inequality (#14737) This PR weakens the definition of `CstarRing` from `‖x⋆ * x‖ = ‖x‖ * ‖x‖` to `‖x‖ * ‖x‖ ≤ ‖x⋆ * x‖`. The "weaker" condition is then shown to be equivalent to the original one. ESTIMATED CHANGES Modified Mathlib/Analysis/InnerProductSpace/Adjoint.lean Modified Mathlib/Analysis/NormedSpace/Star/Basic.lean + theorem CstarRing.norm_star_mul_self Modified Mathlib/Analysis/NormedSpace/Star/Matrix.lean Modified Mathlib/Analysis/NormedSpace/Star/Multiplier.lean Modified Mathlib/Analysis/NormedSpace/Star/Unitization.lean Modified Mathlib/Analysis/NormedSpace/lpSpace.lean Modified Mathlib/Analysis/Quaternion.lean Modified Mathlib/Analysis/RCLike/Basic.lean Modified Mathlib/Topology/ContinuousFunction/Bounded.lean Modified Mathlib/Topology/ContinuousFunction/Compact.lean Modified Mathlib/Topology/ContinuousFunction/ZeroAtInfty.lean 2024-07-16 01:36:23 f6d581b chore(CategoryTheory/DiscreteCategory): remove discrete_fun_ma_eq_id, mv … (#14722) …discrete_functor_obj_eq_as Seems like `CategoryTheory.FreeMonoidalCategory.discrete_functor_map_eq_id` is an exact duplicate of `CategoryTheory.Discrete.functor_map`, except it was a simp lemma. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/DiscreteCategory.lean + theorem CategoryTheory.Discrete.functor_obj_eq_as Modified Mathlib/CategoryTheory/GradedObject.lean Modified Mathlib/CategoryTheory/Monoidal/Free/Coherence.lean - theorem CategoryTheory.FreeMonoidalCategory.discrete_functor_map_eq_id - theorem CategoryTheory.FreeMonoidalCategory.discrete_functor_obj_eq_as 2024-07-16 01:36:22 cc10d94 feat(GroupTheory/Coset): add equivalences of fibers of monoid homomorphisms (#14684) ESTIMATED CHANGES Modified Mathlib/GroupTheory/Coset.lean + def MonoidHom.fiberEquiv + def MonoidHom.fiberEquivKer + theorem MonoidHom.fiberEquivKer_apply + theorem MonoidHom.fiberEquivKer_symm_apply + theorem MonoidHom.fiberEquiv_apply + theorem MonoidHom.fiberEquiv_symm_apply 2024-07-16 01:36:21 e1a9e37 doc(Analysis/Convex): Update todo about extreme and exposed sets (#14655) These were badly outdated: 1. We now have intrinsic closure/interior/frontier. 2. There is indeed some more stuff in the `sperner_again` branch of mathlib3, which I have now ported to LeanCamCombi, but it is not so interesting. ESTIMATED CHANGES Modified Mathlib/Analysis/Convex/Exposed.lean Modified Mathlib/Analysis/Convex/Extreme.lean 2024-07-16 01:36:20 28946fe feat(Algebra/Homology): support of embeddings of complex shapes (#14649) In this PR, given embeddings of complex shapes, we define predicates for homological complexes that are supported (resp. strictly supported) on/outside this embedding. In future PRs, this shall be used in order to define cochain complexes that are cohomologically `≤` or `≥` a certain integer. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Homology/Embedding/Basic.lean + def ComplexShape.Embedding.op Added Mathlib/Algebra/Homology/Embedding/IsSupported.lean + theorem HomologicalComplex.IsStrictlySupportedOutside.isSupportedOutside + structure HomologicalComplex.IsStrictlySupportedOutside + structure HomologicalComplex.IsSupportedOutside + theorem HomologicalComplex.exactAt_of_isSupported + theorem HomologicalComplex.isStrictlySupported_of_iso + theorem HomologicalComplex.isSupported_of_iso + theorem HomologicalComplex.isZero_X_of_isStrictlySupported + theorem HomologicalComplex.isZero_iff_isStrictlySupported_and_isStrictlySupportedOutside Modified Mathlib/Algebra/Homology/HomologicalComplex.lean Modified Mathlib/Algebra/Homology/Opposite.lean Modified Mathlib/Algebra/Homology/ShortComplex/HomologicalComplex.lean + theorem HomologicalComplex.ExactAt.of_iso 2024-07-16 01:36:19 58023b5 feat:(Condensed): the functor from `TopCat` to `CondensedSet` is a faithful right adjoint. (#14455) Also adds some lemmas which improve automation in condensed mathematics. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Condensed/Basic.lean + theorem Condensed.comp_val + theorem Condensed.hom_ext + theorem Condensed.id_val + theorem CondensedSet.hom_naturality_apply Modified Mathlib/Condensed/Module.lean + theorem CondensedMod.hom_naturality_apply Added Mathlib/Condensed/TopCatAdjunction.lean + def CondensedSet.toTopCat + def CondensedSet.toTopCatMap + def CondensedSet.topCatAdjunctionCounit + def CondensedSet.topCatAdjunctionCounitEquiv + theorem CondensedSet.topCatAdjunctionCounit_bijective + def CondensedSet.topCatAdjunctionUnit + def condensedSetToTopCat Modified Mathlib/Condensed/TopComparison.lean 2024-07-16 01:36:17 4548076 fix (Algebra/Vertex/HVertexOperator): rm defeq abuse in coeff function (#13422) The coefficient function for heterogeneous vertex operators currently uses the HahnSeries coefficient function on a Hahn module, which is a type alias. This PR makes the use of the equivalence explicit. Also, we add a `HVertexOperator` namespace so various standard functions have cleaner names. ESTIMATED CHANGES Modified Mathlib/Algebra/Vertex/HVertexOperator.lean + def HVertexOperator.coeff + theorem HVertexOperator.coeff_inj + theorem HVertexOperator.coeff_isPWOsupport + theorem HVertexOperator.ext + def HVertexOperator.of_coeff - theorem VertexAlg.HetVertexOperator.ext - def VertexAlg.HetVertexOperator.of_coeff - def VertexAlg.coeff - theorem VertexAlg.coeff_inj - theorem VertexAlg.coeff_isPWOsupport 2024-07-16 00:30:50 f454820 chore(Topology/Algebra/ContinuousMonoidHom): Fix typo in docstring (#14775) ESTIMATED CHANGES Modified Mathlib/Topology/Algebra/ContinuousMonoidHom.lean 2024-07-16 00:30:49 80d5cab doc: add a couple of module docstrings (#14695) This covers about a third of the missing files in mathlib: the remaining files are `Data/ByteArray` or in the Tactic directory. ESTIMATED CHANGES Modified Mathlib/Data/String/Lemmas.lean Modified Mathlib/Lean/Exception.lean Modified Mathlib/Lean/Expr/ReplaceRec.lean Modified Mathlib/Lean/LocalContext.lean Modified Mathlib/Logic/Lemmas.lean Modified Mathlib/Mathport/Attributes.lean Modified Mathlib/Mathport/Rename.lean Modified scripts/style-exceptions.txt 2024-07-16 00:30:48 8864f7c refactor (RingTheory/HahnSeries/Summable) : Replace AddVal with orderTop (#14473) To prepare for moving strictly valuation-theoretic material into a separate file, we replace the additive valuation with its underlying function in most places. This will allow us to remove unnecessary `IsDomain R` hypotheses in the future. ESTIMATED CHANGES Modified Mathlib/RingTheory/HahnSeries/Multiplication.lean + theorem HahnSeries.orderTop_add_orderTop_le_orderTop_mul + theorem HahnSeries.orderTop_one Modified Mathlib/RingTheory/HahnSeries/Summable.lean +/- def HahnSeries.SummableFamily.powers +/- theorem HahnSeries.unit_aux 2024-07-16 00:30:47 a5fc1b2 chore (Algebra.Order.Monoid.Canonical.Defs): split off `ExistsAddOfLE` and `ExistsMulOfLE` (#14390) The type classes `ExistsAddOfLE` and `ExistsMulOfLE` are unbundled versions of canonical ordering. To use them properly and avoid bundled ordered algebraic classes, we should put them in a separate file. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Order/Group/DenselyOrdered.lean Modified Mathlib/Algebra/Order/GroupWithZero/Unbundled.lean Modified Mathlib/Algebra/Order/Interval/Set/Monoid.lean Modified Mathlib/Algebra/Order/Monoid/Canonical/Defs.lean - theorem exists_one_lt_mul_of_lt' - theorem le_iff_forall_one_lt_lt_mul' - theorem le_of_forall_one_lt_le_mul - theorem le_of_forall_one_lt_lt_mul' Added Mathlib/Algebra/Order/Monoid/Unbundled/ExistsOfLE.lean + theorem exists_one_lt_mul_of_lt' + theorem le_iff_forall_one_lt_lt_mul' + theorem le_of_forall_one_lt_le_mul + theorem le_of_forall_one_lt_lt_mul' Modified Mathlib/Algebra/Order/Pi.lean Modified Mathlib/Algebra/Order/Ring/Defs.lean 2024-07-16 00:30:46 01ffae0 refactor(Algebra/Star/Order): Use NonUnitalStarRingHom in Algebra.Star.Order (#13089) Refactor `Algebra.Star.Order` to use the new non-unital *-ring homomorphisms / isomorphisms introduced in #12924 ESTIMATED CHANGES Modified Mathlib/Algebra/Star/Order.lean - theorem NonUnitalRingHom.map_le_map_of_map_star + theorem NonUnitalStarRingHom.map_le_map_of_map_star 2024-07-16 00:30:44 8e2586a chore: move Nat.find/findGreatest into their own file (#11891) This lightens the very low-level `Mathlib/Data/Nat/Defs.lean` and `Mathlib/Init/Data/Nat/Lemmas.lean` a bit. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/CharP/Defs.lean Modified Mathlib/Algebra/Order/Ring/Nat.lean Modified Mathlib/Control/Fix.lean Modified Mathlib/Data/Char.lean Modified Mathlib/Data/Fin/Basic.lean Modified Mathlib/Data/Fin/Tuple/Basic.lean Modified Mathlib/Data/Int/Cast/Basic.lean Modified Mathlib/Data/Int/LeastGreatest.lean Modified Mathlib/Data/List/Intervals.lean Modified Mathlib/Data/Nat/Bits.lean Modified Mathlib/Data/Nat/Defs.lean - def Nat.findGreatest - theorem Nat.findGreatest_eq - theorem Nat.findGreatest_eq_iff - theorem Nat.findGreatest_eq_zero_iff - theorem Nat.findGreatest_is_greatest - theorem Nat.findGreatest_le - theorem Nat.findGreatest_mono - theorem Nat.findGreatest_mono_left - theorem Nat.findGreatest_mono_right - theorem Nat.findGreatest_of_ne_zero - theorem Nat.findGreatest_of_not - theorem Nat.findGreatest_pos - theorem Nat.findGreatest_spec - theorem Nat.findGreatest_succ - theorem Nat.findGreatest_zero - theorem Nat.find_add - theorem Nat.find_comp_succ - theorem Nat.find_eq_iff - theorem Nat.find_eq_zero - theorem Nat.find_le - theorem Nat.find_le_iff - theorem Nat.find_lt_iff - theorem Nat.find_mono - theorem Nat.find_pos - theorem Nat.le_findGreatest - theorem Nat.le_find_iff - theorem Nat.lt_find_iff Added Mathlib/Data/Nat/Find.lean + def Nat.findGreatest + theorem Nat.findGreatest_eq + theorem Nat.findGreatest_eq_iff + theorem Nat.findGreatest_eq_zero_iff + theorem Nat.findGreatest_is_greatest + theorem Nat.findGreatest_le + theorem Nat.findGreatest_mono + theorem Nat.findGreatest_mono_left + theorem Nat.findGreatest_mono_right + theorem Nat.findGreatest_of_ne_zero + theorem Nat.findGreatest_of_not + theorem Nat.findGreatest_pos + theorem Nat.findGreatest_spec + theorem Nat.findGreatest_succ + theorem Nat.findGreatest_zero + theorem Nat.find_add + theorem Nat.find_comp_succ + theorem Nat.find_eq_iff + theorem Nat.find_eq_zero + theorem Nat.find_le + theorem Nat.find_le_iff + theorem Nat.find_lt_iff + theorem Nat.find_mono + theorem Nat.find_pos + theorem Nat.le_findGreatest + theorem Nat.le_find_iff + theorem Nat.lt_find_iff Modified Mathlib/Data/Nat/Log.lean Modified Mathlib/Data/Nat/Order/Lemmas.lean Modified Mathlib/Data/Nat/PSub.lean Modified Mathlib/Data/PNat/Find.lean Modified Mathlib/Data/Seq/Computation.lean Modified Mathlib/Init/Data/Nat/Lemmas.lean Modified Mathlib/Logic/Encodable/Basic.lean 2024-07-15 23:26:21 8b65706 chore: bump dependencies (upstream LazyList) (#14778) Also adjusts names arguments to `LawfulMonad.mk'` to match their actual order. For some reason the motive now has to be specified explicitly. I'm not really interested in understanding why, however, because this file, in Batteries and Mathlib is about to be deprecated on the grounds that LazyList is not currently being used, is not actually useful in practice without VM support (it was ported from Mathlib3, where it did have such support), and MLList supplies much of the functionality. ESTIMATED CHANGES Modified Archive/Imo/Imo1998Q2.lean Modified Mathlib/Data/LazyList/Basic.lean - theorem LazyList.append_assoc - theorem LazyList.append_bind - theorem LazyList.append_nil - def LazyList.attach + theorem LazyList.bind_singleton - def LazyList.find - theorem LazyList.forall_mem_cons - def LazyList.init - def LazyList.interleave - def LazyList.interleaveAll - theorem LazyList.mem_cons - theorem LazyList.mem_nil - def LazyList.mfirst - def LazyList.pmap - def LazyList.reverse Modified Mathlib/Lean/Thunk.lean + theorem Thunk.get_mk + theorem Thunk.get_pure Modified lake-manifest.json Modified scripts/noshake.json 2024-07-15 23:26:20 dbfd435 chore: backport adaptations for nightly-2024-07-09 (#14773) From @Ruben-VandeVelde's suggestions at #14604. (There may be more to come in a separate PR as I didn't understand all of their suggestions.) ESTIMATED CHANGES Modified Mathlib/Data/Fin/Basic.lean Modified Mathlib/Data/Sigma/Lex.lean Modified Mathlib/RingTheory/DedekindDomain/Factorization.lean 2024-07-15 23:26:19 4b7d7ad chore: remove lemmas about bit0/bit1 (#14765) remove many occurences of set_option linter.deprecated false Deletions: - bit0_add - bit0_left - bit0_mul - bit0_neg - bit0_right - bit1_add - bit1_add' - bit1_left - bit1_mul - bit1_right - bit_le_bit1_iff - bit_le_bit_iff - bit_lt_bit_iff - I_pow_bit0 - I_pow_bit1 - mul_bit0 - mul_bit1 - neg_pow_bit0 - neg_pow_bit1 - one_le_bit0_iff - one_lt_bit0_iff - pow_bit0 - pow_bit0' - pow_bit1 - pow_bit1' - size_bit0 - size_bit1 ESTIMATED CHANGES Modified Mathlib/Algebra/AddTorsor.lean Modified Mathlib/Algebra/CharZero/Lemmas.lean Modified Mathlib/Algebra/Group/Basic.lean - theorem bit0_add - theorem bit0_neg - theorem bit1_add' - theorem bit1_add Modified Mathlib/Algebra/Group/Commute/Defs.lean - theorem pow_bit0' - theorem pow_bit0 - theorem pow_bit1' - theorem pow_bit1 Modified Mathlib/Algebra/Order/Ring/Basic.lean Modified Mathlib/Algebra/Order/Ring/Int.lean - theorem bit0_mul - theorem bit1_mul - theorem mul_bit0 - theorem mul_bit1 Modified Mathlib/Algebra/Ring/Commute.lean - theorem Commute.bit0_left - theorem Commute.bit0_right - theorem Commute.bit1_left - theorem Commute.bit1_right - theorem neg_pow_bit0 - theorem neg_pow_bit1 Modified Mathlib/Data/Complex/Basic.lean - theorem Complex.I_pow_bit0 - theorem Complex.I_pow_bit1 Modified Mathlib/Data/Fin/VecNotation.lean Modified Mathlib/Data/Int/Bitwise.lean Modified Mathlib/Data/Nat/Bits.lean Modified Mathlib/Data/Nat/Bitwise.lean Modified Mathlib/Data/Nat/Cast/Defs.lean Modified Mathlib/Data/Nat/EvenOddRec.lean Modified Mathlib/Data/Nat/Size.lean - theorem Nat.size_bit0 - theorem Nat.size_bit1 Modified Mathlib/Data/Num/Lemmas.lean Modified Mathlib/GroupTheory/SpecificGroups/Alternating.lean 2024-07-15 23:26:18 1f66a3e feat(to_additive): unfold lemmas generated by `simp` (#14628) * This removes a bunch of hacky code * Thanks to @kmill for the idea * Also fix a bug in the implementation of `@[to_additive (attr := to_additive, x)]` * The removed test tested for an implementation detail. The rest of the test file (and Mathlib) still passes, which shows that it still works as desired. ESTIMATED CHANGES Modified Mathlib/Lean/Meta/Simp.lean - def Lean.Meta.Simp.addSimpAttr - def Lean.Meta.Simp.addSimpAttrFromSyntax - def Lean.Meta.Simp.addSimpTheorem' - def Lean.Meta.Simp.mkSimpTheoremsFromConst' Modified Mathlib/Lean/Name.lean + def Lean.Meta.unfoldAuxLemmas + def Lean.Name.isAuxLemma Modified Mathlib/Tactic/ToAdditive.lean +/- def ToAdditive.findAuxDecls +/- def ToAdditive.reorderForall +/- def ToAdditive.reorderLambda Modified test/toAdditive.lean 2024-07-15 23:26:17 a28d6f3 feat(Analysis/LocallyConvex/Polar): Calculate the polar of a set closed under scalar multiplication (#14458) The polar of a set closed under scalar multiplication the set of functionals vanishing on the set. In particular this applies to submodules. Example application: #14369 ESTIMATED CHANGES Modified Mathlib/Analysis/LocallyConvex/Polar.lean + def LinearMap.polarSubmodule + theorem LinearMap.polar_subMulAction 2024-07-15 23:26:16 7125451 chore (Algebra.Order.Nonneg.Ring): split into unbundled and bundled ordered ring files (#14370) We split `Algebra.Order.Nonneg.Ring` into `Algebra.Order.Ring.Unbundled.Nonneg` which uses unbundled ordered algebra typeclasses, eg `CovariantClass`, and `Algebra.Order.Nonneg.Ring` which uses bundled class, eg `OrderedAddComm`. Using this we can avoid importing bundled ordered algebra classes until later downstream. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Order/Nonneg/Field.lean Modified Mathlib/Algebra/Order/Nonneg/Floor.lean Modified Mathlib/Algebra/Order/Nonneg/Module.lean Modified Mathlib/Algebra/Order/Nonneg/Ring.lean - theorem Nonneg.bot_eq - def Nonneg.coeAddMonoidHom - def Nonneg.coeRingHom - theorem Nonneg.coe_toNonneg - theorem Nonneg.mk_add_mk - theorem Nonneg.mk_eq_one - theorem Nonneg.mk_eq_zero - theorem Nonneg.mk_mul_mk - theorem Nonneg.mk_natCast - theorem Nonneg.mk_pow - theorem Nonneg.mk_sub_mk - theorem Nonneg.nsmul_coe - theorem Nonneg.nsmul_mk - def Nonneg.toNonneg - theorem Nonneg.toNonneg_coe - theorem Nonneg.toNonneg_le - theorem Nonneg.toNonneg_lt - theorem Nonneg.toNonneg_of_nonneg Added Mathlib/Algebra/Order/Ring/Unbundled/Nonneg.lean + theorem Nonneg.bot_eq + def Nonneg.coeAddMonoidHom + def Nonneg.coeRingHom + theorem Nonneg.coe_toNonneg + theorem Nonneg.mk_add_mk + theorem Nonneg.mk_eq_one + theorem Nonneg.mk_eq_zero + theorem Nonneg.mk_mul_mk + theorem Nonneg.mk_natCast + theorem Nonneg.mk_pow + theorem Nonneg.mk_sub_mk + theorem Nonneg.nsmul_coe + theorem Nonneg.nsmul_mk + theorem Nonneg.pow_nonneg + def Nonneg.toNonneg + theorem Nonneg.toNonneg_coe + theorem Nonneg.toNonneg_le + theorem Nonneg.toNonneg_lt + theorem Nonneg.toNonneg_of_nonneg Modified Mathlib/Data/NNRat/Defs.lean Modified Mathlib/Data/NNReal/Basic.lean 2024-07-15 21:28:05 643e0fa chore(Tactic): reduce use of autoImplicit, part 3 (#14770) ESTIMATED CHANGES Modified Mathlib/Tactic/Basic.lean +/- def Mathlib.Tactic.pushFVarAliasInfo Modified Mathlib/Tactic/CategoryTheory/BicategoryCoherence.lean +/- def Mathlib.Tactic.BicategoryCoherence.exception Modified Mathlib/Tactic/CategoryTheory/Coherence.lean +/- def Mathlib.Tactic.Coherence.exception Modified Mathlib/Tactic/CategoryTheory/Elementwise.lean +/- theorem Tactic.Elementwise.hom_elementwise Modified Mathlib/Tactic/FieldSimp.lean Modified Mathlib/Tactic/IntervalCases.lean +/- theorem Mathlib.Tactic.IntervalCases.le_of_not_le_of_le Modified Mathlib/Tactic/LinearCombination.lean Modified Mathlib/Tactic/ModCases.lean Modified Mathlib/Tactic/Polyrith.lean +/- def Mathlib.Tactic.Polyrith.Poly.sumM Modified Mathlib/Tactic/ReduceModChar.lean +/- theorem Tactic.ReduceModChar.CharP.isInt_of_mod Modified Mathlib/Tactic/Relation/Trans.lean +/- def Trans.het Modified Mathlib/Tactic/RewriteSearch.lean Modified Mathlib/Tactic/Ring/Basic.lean +/- def Mathlib.Tactic.Ring.ExBase.toProd +/- inductive Mathlib.Tactic.Ring.ExBase 2024-07-15 21:28:04 f972435 feat: the abelian group structure on Ext-groups in abelian categories (#14496) In this PR, we construct the abelian group structure on `Ext`-groups. ESTIMATED CHANGES Modified Mathlib/Algebra/Homology/DerivedCategory/Ext.lean + theorem CategoryTheory.Abelian.Ext.add_comp + theorem CategoryTheory.Abelian.Ext.add_hom + theorem CategoryTheory.Abelian.Ext.biprod_ext + theorem CategoryTheory.Abelian.Ext.comp_add + theorem CategoryTheory.Abelian.Ext.comp_mk₀_id + theorem CategoryTheory.Abelian.Ext.comp_neg + theorem CategoryTheory.Abelian.Ext.comp_zero + theorem CategoryTheory.Abelian.Ext.ext_iff + theorem CategoryTheory.Abelian.Ext.homAddEquiv_apply + theorem CategoryTheory.Abelian.Ext.mk₀_comp_mk₀ + theorem CategoryTheory.Abelian.Ext.mk₀_comp_mk₀_assoc + theorem CategoryTheory.Abelian.Ext.mk₀_hom + theorem CategoryTheory.Abelian.Ext.mk₀_id_comp + theorem CategoryTheory.Abelian.Ext.mk₀_zero + theorem CategoryTheory.Abelian.Ext.neg_comp + theorem CategoryTheory.Abelian.Ext.neg_hom + theorem CategoryTheory.Abelian.Ext.zero_comp + theorem CategoryTheory.Abelian.Ext.zero_hom Modified Mathlib/CategoryTheory/Localization/SmallShiftedHom.lean + theorem CategoryTheory.Localization.SmallShiftedHom.equiv_mk₀ Modified Mathlib/CategoryTheory/Shift/ShiftedHom.lean + theorem CategoryTheory.ShiftedHom.comp_neg + theorem CategoryTheory.ShiftedHom.mk₀_comp_mk₀ + theorem CategoryTheory.ShiftedHom.mk₀_comp_mk₀_assoc + theorem CategoryTheory.ShiftedHom.mk₀_zero + theorem CategoryTheory.ShiftedHom.neg_comp 2024-07-15 21:28:02 dccac13 feat(Algebra/Category/Ring/Colimits): category of (possibly non-commutative ring) has colimits (#14413) We already have that category of commutative rings has colimits, the same construction works for category of rings. ESTIMATED CHANGES Modified Mathlib/Algebra/Category/Ring/Colimits.lean + def RingCat.Colimits.ColimitType + inductive RingCat.Colimits.Prequotient + inductive RingCat.Colimits.Relation + def RingCat.Colimits.coconeFun + def RingCat.Colimits.coconeMorphism + theorem RingCat.Colimits.cocone_naturality + theorem RingCat.Colimits.cocone_naturality_components + def RingCat.Colimits.colimit + def RingCat.Colimits.colimitCocone + def RingCat.Colimits.colimitIsColimit + def RingCat.Colimits.colimitSetoid + def RingCat.Colimits.descFun + def RingCat.Colimits.descFunLift + def RingCat.Colimits.descMorphism + theorem RingCat.Colimits.quot_add + theorem RingCat.Colimits.quot_mul + theorem RingCat.Colimits.quot_neg + theorem RingCat.Colimits.quot_one + theorem RingCat.Colimits.quot_zero 2024-07-15 21:28:00 bce175d chore(scripts/create-adaptation-pr): add ci status check (#14410) ESTIMATED CHANGES Modified scripts/create-adaptation-pr.sh 2024-07-15 21:27:59 a2e9dd8 chore: split some lemmas out of Topology.MetricSpace.ProperSpace (#13834) This removes Mathlib.Topology.MetricSpace.ProperSpace from the longest pole. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Analysis/Complex/OpenMapping.lean Modified Mathlib/Analysis/InnerProductSpace/EuclideanDist.lean Modified Mathlib/Geometry/Manifold/BumpFunction.lean Modified Mathlib/Topology/MetricSpace/Bounded.lean Modified Mathlib/Topology/MetricSpace/ProperSpace.lean - theorem Metric.exists_isLocalMin_mem_ball - theorem exists_lt_subset_ball - theorem exists_pos_lt_subset_ball Added Mathlib/Topology/MetricSpace/ProperSpace/Lemmas.lean + theorem Metric.exists_isLocalMin_mem_ball + theorem exists_lt_subset_ball + theorem exists_pos_lt_subset_ball Modified Mathlib/Topology/MetricSpace/ShrinkingLemma.lean 2024-07-15 21:27:58 f3e70de refactor(Mathlib/Algebra/ContinuedFractions/*): generalize determinant formula for continued fraction computation to simple continued fraction (#13555) Determinant formula for continued fractions in Mathlib is specialized for continued fraction computation: ```lean theorem GenContFract.determinant (not_terminated_at_n : ¬(of v).TerminatedAt n) : (of v).numerators n * (of v).denominators (n + 1) - (of v).denominators n * (of v).numerators (n + 1) = (-1) ^ (n + 1) := determinant_aux <| Or.inr <| not_terminated_at_n ``` This formula can be generalized for arbitrary simple continued fractions, so we generalize: ```lean theorem SimpContFract.determinant (not_terminatedAt_n : ¬(↑s : GenContFract K).TerminatedAt n) : (↑s : GenContFract K).nums n * (↑s : GenContFract K).dens (n + 1) - (↑s : GenContFract K).dens n * (↑s : GenContFract K).nums (n + 1) = (-1) ^ (n + 1) ``` Also, this PR renames `Real.exists_genContFract_convs_eq_rat` to `Real.exists_convs_eq_rat` which is forgotten to rename in #13210. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/ContinuedFractions/Computation/ApproximationCorollaries.lean - def ContFract.of - theorem GenContFract.of_isSimpContFract - theorem SimpContFract.of_isContFract Modified Mathlib/Algebra/ContinuedFractions/Computation/Approximations.lean + def ContFract.of - theorem GenContFract.determinant - theorem GenContFract.determinant_aux + theorem GenContFract.of_isSimpContFract + theorem SimpContFract.of_isContFract Added Mathlib/Algebra/ContinuedFractions/Determinant.lean + theorem SimpContFract.determinant + theorem SimpContFract.determinant_aux Modified Mathlib/NumberTheory/DiophantineApproximation.lean + theorem Real.exists_convs_eq_rat - theorem Real.exists_genContFract_convs_eq_rat 2024-07-15 20:56:40 fd21dab chore: rename endOf linter to missingEnd (#14758) Per [zulip discussion](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/linting.20for.20unclosed.20sections.3F/near/451359224). ESTIMATED CHANGES Modified Mathlib/Tactic/Linter/Lint.lean - def Mathlib.Linter.EndOf.endOfLinter - def Mathlib.Linter.EndOf.getLinterHash + def Mathlib.Linter.MissingEnd.getLinterHash + def Mathlib.Linter.MissingEnd.missingEndLinter 2024-07-15 20:56:39 3b6fe37 feat(MeasureSpace): add `ae_smul_measure_eq` (#14576) ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Measure/MeasureSpace.lean + theorem MeasureTheory.Measure.ae_smul_measure_eq 2024-07-15 20:56:38 b84e04d feat(Group/Action): add `smul_ae` (#14575) - drop measurability assumption in `MeasureTheory.measure_smul_null`; - add `measure_smul_eq_zero_iff`, `smul_mem_ae`, and `smul_ae`. ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Group/Action.lean + theorem MeasureTheory.measure_smul_eq_zero_iff +/- theorem MeasureTheory.measure_smul_null + theorem MeasureTheory.smul_ae + theorem MeasureTheory.smul_mem_ae 2024-07-15 20:56:37 c623512 feat(Group/Prod): add `MeasureTheory.inv_ae` (#14574) Also add `@[simp]` to `measure_inv_null`. ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Group/Prod.lean + theorem MeasureTheory.inv_ae 2024-07-15 20:56:36 60a7755 feat(Function/LpSpace): continuity of `indicatorConstLp` in the set (#14489) ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Function/LpSpace.lean + theorem MeasureTheory.Lp.indicatorConstLp_compMeasurePreserving + theorem MeasureTheory.Lp.toLp_compMeasurePreserving + theorem MeasureTheory.Memℒp.toLp_val + theorem MeasureTheory.continuous_indicatorConstLp_set + theorem MeasureTheory.ennnorm_indicatorConstLp_le + theorem MeasureTheory.nnnorm_indicatorConstLp_le + theorem MeasureTheory.tendsto_indicatorConstLp_set 2024-07-15 20:56:35 627efab feat(Measure/Regular): add lemmas about compact closed sets (#14487) Other changes: - Prove that a measurable set can be approximated by an open set. - Migrate from `OuterRegular.measure_closure_of_isCompact` to `IsCompact.measure_closure`. While neither of these lemmas imply the other, all applications of the former lemma in Mathlib had all the assumptions for the latter. ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Measure/Content.lean Modified Mathlib/MeasureTheory/Measure/Haar/Basic.lean Modified Mathlib/MeasureTheory/Measure/Regular.lean + theorem MeasurableSet.exists_isCompact_isClosed_diff_lt + theorem MeasurableSet.exists_isCompact_isClosed_lt_add 2024-07-15 20:56:34 0d092ea feat(RingTheory/Unramified): Unramified + free => finite (#14478) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/RingTheory/Kaehler/Basic.lean + theorem KaehlerDifferential.ideal_fg Added Mathlib/RingTheory/Unramified/Finite.lean + theorem Algebra.FormallyUnramified.comp_sec + def Algebra.FormallyUnramified.elem + theorem Algebra.FormallyUnramified.finite_of_free + theorem Algebra.FormallyUnramified.finite_of_free_aux + theorem Algebra.FormallyUnramified.flat_of_restrictScalars + theorem Algebra.FormallyUnramified.iff_exists_tensorProduct + theorem Algebra.FormallyUnramified.lmul_elem + theorem Algebra.FormallyUnramified.one_tmul_mul_elem + theorem Algebra.FormallyUnramified.one_tmul_sub_tmul_one_mul_elem + theorem Algebra.FormallyUnramified.projective_of_restrictScalars + def Algebra.FormallyUnramified.sec Modified docs/references.bib 2024-07-15 20:56:32 2df4be3 feat(AlgebraicGeometry/Limits): Coproducts of Schemes (#14429) ESTIMATED CHANGES Modified Mathlib/AlgebraicGeometry/Limits.lean + def AlgebraicGeometry.disjointGlueData' + def AlgebraicGeometry.disjointGlueData + theorem AlgebraicGeometry.disjoint_opensRange_sigmaι + theorem AlgebraicGeometry.exists_sigmaι_eq + theorem AlgebraicGeometry.iSup_opensRange_sigmaι + def AlgebraicGeometry.sigmaIsoGlued + def AlgebraicGeometry.sigmaMk + theorem AlgebraicGeometry.sigmaMk_mk + def AlgebraicGeometry.sigmaOpenCover + theorem AlgebraicGeometry.sigmaι_eq_iff + def AlgebraicGeometry.toLocallyRingedSpaceCoproductCofan + def AlgebraicGeometry.toLocallyRingedSpaceCoproductCofanIsColimit + theorem AlgebraicGeometry.ι_sigmaIsoGlued_hom + theorem AlgebraicGeometry.ι_sigmaIsoGlued_inv Modified Mathlib/AlgebraicGeometry/OpenImmersion.lean + theorem AlgebraicGeometry.Scheme.IsOpenImmersion.of_isLocalization 2024-07-15 20:56:31 72f3c59 feat(RingTheory/Smooth): define standard smooth algebras (#14325) We define the notion of a submersive presentation and predicates when such a presentation is standard smooth. An algebra is called standard smooth if it admits a standard smooth presentation. This contribution was created as part of the AIM workshop "Formalizing algebraic geometry" in June 2024. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/RingTheory/Smooth/StandardSmooth.lean + theorem Algebra.IsStandardSmoothOfRelativeDimension.isStandardSmooth + theorem Algebra.PreSubmersivePresentation.card_relations_le_card_vars_of_isFinite + theorem Algebra.PreSubmersivePresentation.jacobiMatrix_apply + theorem Algebra.PreSubmersivePresentation.jacobian_eq_jacobiMatrix_det + structure Algebra.PreSubmersivePresentation + structure Algebra.SubmersivePresentation + def RingHom.IsStandardSmooth + theorem RingHom.IsStandardSmoothOfRelativeDimension.isStandardSmooth + def RingHom.IsStandardSmoothOfRelativeDimension 2024-07-15 20:56:30 6021377 feat(CategoryTheory/Sites): discrete sheaves (#13947) This PR defines the property of discreteness for sheaves. A discrete sheaf in this context is a sheaf `F` such that the counit `(F(*))^cst ⟶ F` is an isomorphism. Here `*` denotes a particular chosen terminal object of the defining site, and `cst` denotes the constant sheaf. We also prove that this property is invariant under equivalence of categories and that certain well-behaved "forgetful" functors preserve and reflect the property. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/CategoryTheory/Sites/ConstantSheaf.lean + theorem CategoryTheory.constantSheafAdj_counit_app Added Mathlib/CategoryTheory/Sites/Discrete.lean + theorem CategoryTheory.Sheaf.constantCommuteComposeApp_comp_counit + theorem CategoryTheory.Sheaf.isDiscrete_iff_forget + theorem CategoryTheory.Sheaf.isDiscrete_iff_isIso_counit_app + theorem CategoryTheory.Sheaf.isDiscrete_iff_mem_essImage' + theorem CategoryTheory.Sheaf.isDiscrete_iff_mem_essImage + theorem CategoryTheory.Sheaf.isDiscrete_iff_of_equivalence + theorem CategoryTheory.Sheaf.isDiscrete_of_iso + theorem CategoryTheory.Sheaf.sheafComposeNatIso_app_counit + theorem CategoryTheory.Sheaf.sheafCompose_reflects_discrete 2024-07-15 20:56:29 fb7d7c1 chore: set default cpus to 4 for devcontainer (#13816) Changes the default behavior for a mathlib4 codespace to be built with 4 cores (development with just 2 cores is not really reasonable, and I keep forgetting to change it manually when I spin up a new machine). ESTIMATED CHANGES Modified .devcontainer/devcontainer.json 2024-07-15 20:56:28 f53d6a1 refactor(GroupTheory/Index): Replace `Fintype.card` with `Nat.card` (#13630) A lot of the group theory library still needs to be switched over from `Fintype.card` to `Nat.card`. This PR switches over `GroupTheory/Index.lean`. I had to add a little noise to a few other files, but these will get cleaned up once those files are switched over later. In this file there were a few `Fintype.card` lemmas whose `Nat.card` lemmas already existed, so I deleted those rather than switching them over (they are not just redundant, but strictly weaker since they assume finiteness). ESTIMATED CHANGES Modified Mathlib/GroupTheory/Index.lean +/- theorem Subgroup.card_dvd_of_surjective +/- theorem Subgroup.dvd_index_map - theorem Subgroup.index_bot_eq_card +/- theorem Subgroup.index_comap +/- theorem Subgroup.index_comap_of_surjective +/- theorem Subgroup.index_dvd_card +/- theorem Subgroup.index_eq_card +/- theorem Subgroup.index_ker +/- theorem Subgroup.index_map +/- theorem Subgroup.index_map_dvd +/- theorem Subgroup.index_map_eq +/- theorem Subgroup.index_mul_card - theorem Subgroup.nat_card_dvd_of_injective - theorem Subgroup.nat_card_dvd_of_le - theorem Subgroup.nat_card_dvd_of_surjective - theorem Subgroup.relindex_bot_left_eq_card +/- theorem Subgroup.relindex_comap +/- theorem Subgroup.relindex_ker Modified Mathlib/GroupTheory/PGroup.lean Modified Mathlib/GroupTheory/Schreier.lean Modified Mathlib/GroupTheory/SchurZassenhaus.lean Modified Mathlib/GroupTheory/Sylow.lean Modified Mathlib/GroupTheory/Transfer.lean 2024-07-15 20:56:27 bcf9485 feat(FieldTheory/PolynomialGaloisGroup): Add `AlgEquivClass` instance for `Polynomial.gal` (#13575) This PR adds an `AlgEquivClass` instance for `Polynomial.gal`. ESTIMATED CHANGES Modified Mathlib/FieldTheory/PolynomialGaloisGroup.lean 2024-07-15 20:56:26 deae96b feat (RingTheory/Binomial) : Standard lemmas for Ring.choose (#13071) This PR has basic identities satisfied by general binomial coefficients, together with corresponding lemmas about evaluating Pochhammer polynomials. ESTIMATED CHANGES Modified Mathlib/RingTheory/Binomial.lean + theorem Ring.choose_add_smul_choose + theorem Ring.choose_eq_nat_choose + theorem Ring.choose_one_right' + theorem Ring.choose_one_right + theorem Ring.choose_smul_choose + theorem Ring.choose_succ_succ + theorem Ring.choose_zero_ite + theorem Ring.choose_zero_pos + theorem Ring.choose_zero_right' + theorem Ring.choose_zero_right + theorem Ring.choose_zero_succ + theorem Ring.descPochhammer_succ_succ_smeval 2024-07-15 20:56:24 cb0404f feat(Algebra/Star/NonUnitalSubsemiring): Add NonUnitalStarSubsemiring (#12938) Definitions and basic properties of non-unital star subsemirings ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Star/NonUnitalSubsemiring.lean + def NonUnitalStarSubsemiring.center + theorem NonUnitalStarSubsemiring.coe_copy + theorem NonUnitalStarSubsemiring.copy_eq + theorem NonUnitalStarSubsemiring.mem_carrier + structure NonUnitalStarSubsemiring + structure SubStarSemigroup Added Mathlib/Algebra/Star/Subsemiring.lean + def StarSubsemiring.center + theorem StarSubsemiring.coe_copy + theorem StarSubsemiring.coe_mk + theorem StarSubsemiring.coe_toSubsemiring + theorem StarSubsemiring.copy_eq + theorem StarSubsemiring.ext + theorem StarSubsemiring.mem_carrier + theorem StarSubsemiring.mem_toSubsemiring + theorem StarSubsemiring.toSubsemiring_inj + theorem StarSubsemiring.toSubsemiring_injective + theorem StarSubsemiring.toSubsemiring_le_iff + structure StarSubsemiring + def SubStarSemigroup.center 2024-07-15 20:56:23 4831f31 feat: the category of Hopf algebras (#12010) The category of Hopf algebras over a commutative ring. Mimics `Mathlib.LinearAlgebra.QuadraticForm.QuadraticModuleCat`. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Category/HopfAlgebraCat/Basic.lean + def BialgEquiv.toHopfAlgebraCatIso + theorem BialgEquiv.toHopfAlgebraCatIso_refl + theorem BialgEquiv.toHopfAlgebraCatIso_symm + theorem BialgEquiv.toHopfAlgebraCatIso_trans + def CategoryTheory.Iso.toHopfAlgEquiv + theorem CategoryTheory.Iso.toHopfAlgEquiv_refl + theorem CategoryTheory.Iso.toHopfAlgEquiv_symm + theorem CategoryTheory.Iso.toHopfAlgEquiv_toBialgHom + theorem CategoryTheory.Iso.toHopfAlgEquiv_trans + theorem HopfAlgebraCat.Hom.toBialgHom_injective + structure HopfAlgebraCat.Hom + theorem HopfAlgebraCat.forget₂_bialgebra_map + theorem HopfAlgebraCat.forget₂_bialgebra_obj + theorem HopfAlgebraCat.hom_ext + def HopfAlgebraCat.of + theorem HopfAlgebraCat.of_comul + theorem HopfAlgebraCat.of_counit + theorem HopfAlgebraCat.toBialgHom_comp + theorem HopfAlgebraCat.toBialgHom_id + structure HopfAlgebraCat 2024-07-15 19:24:32 f80e4f0 feat(AlgebraicGeometry): the 1-hypercover attached to a GlueData (#14690) Given `D : Scheme.GlueData`, we define the 1-hypercover of the scheme `D.glued` on the big Zariski site and use it in order to define a constructor for sections over `D.glued` of a sheaf of types over the big Zariski site. (Incidentally, the lemma `Sieve.sets_iff_generate` is renamed `Sieve.generate_le_iff`.) This contribution was created as part of the AIM workshop "Formalizing algebraic geometry" in June 2024. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/AlgebraicGeometry/GluingOneHypercover.lean + theorem AlgebraicGeometry.Scheme.GlueData.sheafValGluedMk_val Modified Mathlib/CategoryTheory/Sites/Coherent/RegularTopology.lean Modified Mathlib/CategoryTheory/Sites/Coverage.lean Modified Mathlib/CategoryTheory/Sites/Pretopology.lean Modified Mathlib/CategoryTheory/Sites/SheafOfTypes.lean Modified Mathlib/CategoryTheory/Sites/Sieves.lean + theorem CategoryTheory.Sieve.generate_le_iff - theorem CategoryTheory.Sieve.sets_iff_generate 2024-07-15 19:24:31 8ce347b chore(workflows): don't add or remove the 'awaiting-review' label (#14609) ESTIMATED CHANGES Modified .github/workflows/add_label_from_comment.yml Modified .github/workflows/add_label_from_review.yml Modified .github/workflows/labels_from_comment.yml 2024-07-15 19:24:29 6d9a547 feat(Topology/UniformSpace/AbstractCompletion):add comparison lemma (#12979) Add a lemma showing that composing the comparison maps with a continuous function to a T3 space satisfying some conditions yield the same function. Co-authored with : María Inés de Frutos Fernández @mariainesdff ESTIMATED CHANGES Modified Mathlib/Topology/UniformSpace/AbstractCompletion.lean + theorem AbstractCompletion.compare_comp_eq_compare 2024-07-15 18:29:40 2d6fcd3 chore: fix a typo in PolarCoord (#14767) ESTIMATED CHANGES Modified Mathlib/Analysis/SpecialFunctions/PolarCoord.lean + theorem Complex.polarCoord_symm_abs - theorem Complex.polardCoord_symm_abs Modified Mathlib/MeasureTheory/Integral/Gamma.lean 2024-07-15 18:29:39 265f941 chore(UniformEmbedding): add `UniformInducing.uniformInducing_iff` (#14742) ESTIMATED CHANGES Modified Mathlib/Topology/UniformSpace/UniformEmbedding.lean 2024-07-15 18:29:37 b891390 chore (Data.Fintype.Basic): de-simp `Fintype.univ_ofSubsingleton` (#14445) In principle, `Fintype.univ_ofSubsingleton` could be a `simp` theorem but it applies to any occurence of `univ` and requires unification of the (possibly very complex) `Fintype` instances. It appears to not be needed in `simp`. So we remove the attribute. We get some performance gains as a benefit. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Preadditive/Mat.lean Modified Mathlib/Data/Fintype/Basic.lean 2024-07-15 18:29:36 d6ac8e9 feat(NumberTheory/MulChar): extend API for multiplicative characters (#13939) This adds some more API lemmas for multiplicative characters. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/NumberTheory/MulChar/Basic.lean + theorem MulChar.ringHomComp_inv + theorem MulChar.ringHomComp_mul + theorem MulChar.ringHomComp_one + theorem MulChar.ringHomComp_pow Added Mathlib/NumberTheory/MulChar/Lemmas.lean + theorem MulChar.apply_mem_algebraAdjoin + theorem MulChar.apply_mem_algebraAdjoin_of_pow_eq_one + theorem MulChar.apply_mem_rootsOfUnity + theorem MulChar.apply_mem_rootsOfUnity_of_pow_eq_one + theorem MulChar.apply_mem_rootsOfUnity_orderOf + theorem MulChar.eq_iff + theorem MulChar.exists_apply_eq_pow + theorem MulChar.exists_mulChar_orderOf + theorem MulChar.exists_mulChar_orderOf_eq_card_units + theorem MulChar.ofRootOfUnity_spec + theorem MulChar.orderOf_dvd_card_sub_one + def MulChar.starComp + theorem MulChar.star_apply' + theorem MulChar.star_apply + theorem MulChar.star_eq_inv 2024-07-15 16:11:26 7052367 chore(Control): move files from Init/Control/ to Control/ (#14755) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Control/Basic.lean Renamed Mathlib/Init/Control/Combinators.lean to Mathlib/Control/Combinators.lean Renamed Mathlib/Init/Control/Lawful.lean to Mathlib/Control/Lawful.lean Modified Mathlib/Control/Monad/Cont.lean Modified Mathlib/Control/ULiftable.lean Modified Mathlib/Data/MLList/DepthFirst.lean Modified Mathlib/Data/Option/Basic.lean 2024-07-15 16:11:25 aed8ae9 chore(SetTheory/Lists): remove porting notes (#14743) One porting note in this file remains. ESTIMATED CHANGES Modified Mathlib/SetTheory/Lists.lean +/- theorem Lists'.toList_cons 2024-07-15 16:11:24 cb401f8 chore(Tactic/NormNum): remove autoImplicit (#14725) This is exhaustive ESTIMATED CHANGES Modified Mathlib/Tactic/NormNum/Basic.lean +/- theorem Mathlib.Meta.NormNum.eq_of_false +/- def Mathlib.Meta.NormNum.inferDivisionRing +/- theorem Mathlib.Meta.NormNum.isNat_ofNat +/- theorem Mathlib.Meta.NormNum.isRat_div +/- theorem Mathlib.Meta.NormNum.ne_of_false_of_true +/- theorem Mathlib.Meta.NormNum.ne_of_true_of_false Modified Mathlib/Tactic/NormNum/BigOperators.lean Modified Mathlib/Tactic/NormNum/Core.lean +/- def Mathlib.Meta.NormNum.NormNums.erase Modified Mathlib/Tactic/NormNum/DivMod.lean +/- theorem Mathlib.Meta.NormNum.isInt_ediv_neg Modified Mathlib/Tactic/NormNum/Eq.lean Modified Mathlib/Tactic/NormNum/Ineq.lean Modified Mathlib/Tactic/NormNum/Inv.lean +/- theorem Mathlib.Meta.NormNum.isInt_ratCast +/- theorem Mathlib.Meta.NormNum.isNat_ratCast +/- theorem Mathlib.Meta.NormNum.isRat_ratCast Modified Mathlib/Tactic/NormNum/OfScientific.lean Modified Mathlib/Tactic/NormNum/Pow.lean +/- theorem Mathlib.Meta.NormNum.IsNatPowT.trans +/- theorem Mathlib.Meta.NormNum.intPow_negOfNat_bit0 +/- theorem Mathlib.Meta.NormNum.intPow_negOfNat_bit1 Modified Mathlib/Tactic/NormNum/Result.lean +/- theorem Mathlib.Meta.NormNum.IsInt.to_raw_eq +/- theorem Mathlib.Meta.NormNum.IsNat.to_eq +/- theorem Mathlib.Meta.NormNum.IsNat.to_raw_eq +/- structure Mathlib.Meta.NormNum.IsNat +/- theorem Mathlib.Meta.NormNum.IsRat.to_raw_eq +/- def Mathlib.Meta.NormNum.Result.toRat +/- def Mathlib.Meta.NormNum.Result.toRatNZ +/- def Mathlib.Meta.NormNum.instAddMonoidWithOne +/- def Nat.rawCast Modified Mathlib/Util/Qq.lean +/- theorem Qq.QuotedDefEq.rfl 2024-07-15 16:11:23 23f4d4a feat(Mathlib/Topology/Bases): subbasis closed under intersection is a basis (#12221) We show that if a sub-basis is closed under finite intersections, then it is a basis for a topology. As a corollary, if a sub-basis is closed under intersections, then inserting the universal set gives a basis for the topology. An example application of this result is given in #12234 ESTIMATED CHANGES Modified Mathlib/Data/Set/Constructions.lean + theorem FiniteInter.mk₂ Modified Mathlib/Topology/Bases.lean + theorem TopologicalSpace.isTopologicalBasis_of_subbasis_of_finiteInter + theorem TopologicalSpace.isTopologicalBasis_of_subbasis_of_inter Modified Mathlib/Topology/Order.lean + theorem generateFrom_insert_of_generateOpen + theorem generateFrom_insert_univ 2024-07-15 14:00:12 863d11f chore(Inseparable): add `@[fun_prop, continuity]` (#14741) ESTIMATED CHANGES Modified Mathlib/Topology/Inseparable.lean 2024-07-15 14:00:11 9c748dc chore(Tactic): reduce use of Implicit, part 2 (#14726) ESTIMATED CHANGES Modified Mathlib/Tactic/Abel.lean +/- theorem Mathlib.Tactic.Abel.term_eq +/- theorem Mathlib.Tactic.Abel.termg_eq Modified Mathlib/Tactic/CongrExclamation.lean Modified Mathlib/Tactic/Core.lean Modified Mathlib/Tactic/FunProp/ToBatteries.lean Modified Mathlib/Tactic/Linarith/Verification.lean +/- def Linarith.addExprs' +/- def Linarith.mulExpr' Modified Mathlib/Tactic/Nontriviality/Core.lean +/- def Mathlib.Tactic.Nontriviality.nontrivialityByElim Modified Mathlib/Tactic/Propose.lean Modified Mathlib/Tactic/PushNeg.lean +/- theorem Mathlib.Tactic.PushNeg.empty_ne_eq_nonempty +/- theorem Mathlib.Tactic.PushNeg.ne_empty_eq_nonempty +/- theorem Mathlib.Tactic.PushNeg.not_nonempty_eq Modified Mathlib/Tactic/Relation/Symm.lean Modified Mathlib/Tactic/Relation/Trans.lean +/- def Trans.simple Modified Mathlib/Tactic/SuccessIfFailWithMsg.lean +/- def Mathlib.Tactic.successIfFailWithMessage Modified Mathlib/Tactic/SudoSetOption.lean Modified Mathlib/Tactic/TermCongr.lean +/- def Mathlib.Tactic.TermCongr.throwCongrEx Modified Mathlib/Tactic/ToAdditive.lean +/- def ToAdditive.additivizeLemmas +/- def ToAdditive.warnAttr +/- def ToAdditive.warnExt +/- def ToAdditive.warnParametricAttr Modified Mathlib/Tactic/ToLevel.lean Modified Mathlib/Tactic/UnsetOption.lean 2024-07-15 14:00:10 d164c95 chore: remove two mathport syntax stubs (#14693) The `hint` and `rw_search` tactics have been implemented by now. ESTIMATED CHANGES Modified Mathlib/Mathport/Syntax.lean Modified scripts/nolints.json 2024-07-15 14:00:09 0fd28df chore: update nolints.json (#14657) I'm happy to remove some nolints for you. ESTIMATED CHANGES Modified scripts/nolints.json 2024-07-15 14:00:07 0148727 chore/perf(Probability/MeasureTheory): use fun_prop for manual `measurability` calls (#13871) Replace manual `measurability` calls with `fun_prop`; replace `measurability` calls by `fun_prop` when possible. As a by-product, this tags a few more lemmas `fun_prop` and resolves all porting notes involving `measurability`. Follow- up to #13770. ESTIMATED CHANGES Modified Mathlib/Analysis/SpecialFunctions/JapaneseBracket.lean Modified Mathlib/MeasureTheory/Constructions/BorelSpace/Metric.lean Modified Mathlib/MeasureTheory/Decomposition/RadonNikodym.lean Modified Mathlib/MeasureTheory/Decomposition/SignedLebesgue.lean Modified Mathlib/MeasureTheory/Function/StronglyMeasurable/Basic.lean Modified Mathlib/MeasureTheory/Group/Arithmetic.lean Modified Mathlib/MeasureTheory/Group/Convolution.lean Modified Mathlib/MeasureTheory/Integral/CircleIntegral.lean Modified Mathlib/MeasureTheory/MeasurableSpace/Basic.lean Modified Mathlib/MeasureTheory/Order/UpperLower.lean Modified Mathlib/Probability/Independence/Basic.lean Modified Mathlib/Probability/Independence/Conditional.lean Modified Mathlib/Probability/Independence/Kernel.lean 2024-07-15 14:00:06 7fd9f29 feat(Combinatorics/Colex): binary expansions give the colexicographic order on `Finset Nat` (#12346) This PR fills in a todo in `Combinatorics/Colex` by providing the natural order isomorphism between `Nat` and `Colex Nat` that maps each `n` to the set of indices of ones in the binary expansion of `n`. We define `bitIndices n` to be the sorted list of indices of 1's in the binary expansion of `n`, and prove a few API lemmas for it. We then provide the corresponding bijection between `Nat` and `Finset Nat`. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Combinatorics/Colex.lean + def Finset.equivBitIndices + theorem Finset.geomSum_injective + theorem Finset.lt_geomSum_of_mem + def Finset.orderIsoColex + theorem Finset.toFinset_bitIndices_twoPowSum + theorem Finset.twoPowSum_toFinset_bitIndices Added Mathlib/Data/Nat/BitIndices.lean + def Nat.bitIndices + theorem Nat.bitIndices_bit_false + theorem Nat.bitIndices_bit_true + theorem Nat.bitIndices_one + theorem Nat.bitIndices_sorted + theorem Nat.bitIndices_twoPowsum + theorem Nat.bitIndices_two_mul + theorem Nat.bitIndices_two_mul_add_one + theorem Nat.bitIndices_two_pow + theorem Nat.bitIndices_two_pow_mul + theorem Nat.bitIndices_zero + theorem Nat.not_mem_bitIndices_self + theorem Nat.twoPowSum_bitIndices + theorem Nat.two_pow_le_of_mem_bitIndices 2024-07-15 11:16:53 8fb3ba5 doc(Mathlib/MeasureTheory/Integral/IntervalIntegral): fix capitalization (#14753) ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Integral/IntervalIntegral.lean 2024-07-15 11:16:52 32fc2e7 chore: remove bit0/bit1 and associated lemmas (#14745) This PR replaces `bit0 x` resp. `bit1 x` with: - `2 * x` resp. `2 * x + 1` if possible, or - `2 • x` resp. `2 • x + 1` if possible, or - `x + x` resp. `x + x + 1` as fallback. The versions `Num.bit0` and `Num.bit1` (as well as the `PosNum` and `ZNum` versions) are left alone. All lemmas that mention `bit0`/`bit1` have been adapted. A follow-up PR can remove these lemmas. Deletions: - bit0 - bit1 ESTIMATED CHANGES Modified Mathlib/Algebra/AddTorsor.lean +/- theorem Equiv.pointReflection_fixed_iff_of_injective_bit0 Modified Mathlib/Algebra/CharP/Two.lean - theorem CharTwo.bit0_apply_eq_zero - theorem CharTwo.bit0_eq_zero - theorem CharTwo.bit1_apply_eq_one - theorem CharTwo.bit1_eq_one Modified Mathlib/Algebra/CharZero/Lemmas.lean - theorem bit0_eq_zero - theorem bit0_ne_zero - theorem zero_eq_bit0 - theorem zero_ne_bit0 Modified Mathlib/Algebra/Group/Basic.lean +/- theorem bit0_add +/- theorem bit0_neg - theorem bit0_zero +/- theorem bit1_add' +/- theorem bit1_add - theorem bit1_zero Modified Mathlib/Algebra/Group/Commute/Defs.lean +/- theorem pow_bit0' +/- theorem pow_bit0 +/- theorem pow_bit1' +/- theorem pow_bit1 Modified Mathlib/Algebra/Module/Defs.lean +/- theorem two_smul' Modified Mathlib/Algebra/Order/Field/Power.lean - theorem zpow_bit0_abs Modified Mathlib/Algebra/Order/Ring/Basic.lean - theorem pow_bit0_nonneg - theorem pow_bit0_pos - theorem pow_bit0_pos_iff - theorem pow_bit1_neg_iff - theorem pow_bit1_nonneg_iff - theorem pow_bit1_nonpos_iff - theorem pow_bit1_pos_iff - theorem strictMono_pow_bit1 Modified Mathlib/Algebra/Order/Ring/Int.lean +/- theorem bit0_mul +/- theorem bit1_mul +/- theorem mul_bit0 +/- theorem mul_bit1 Modified Mathlib/Algebra/Polynomial/Degree/Lemmas.lean +/- theorem Polynomial.natDegree_bit0 +/- theorem Polynomial.natDegree_bit1 Modified Mathlib/Algebra/Polynomial/Eval.lean - theorem Polynomial.bit0_comp - theorem Polynomial.bit1_comp Modified Mathlib/Algebra/Ring/Commute.lean +/- theorem Commute.bit0_left +/- theorem Commute.bit0_right +/- theorem Commute.bit1_left +/- theorem Commute.bit1_right +/- theorem neg_pow_bit0 +/- theorem neg_pow_bit1 Modified Mathlib/Algebra/Ring/Defs.lean - theorem bit0_eq_two_mul Modified Mathlib/Algebra/Ring/Divisibility/Basic.lean - theorem two_dvd_bit0 - theorem two_dvd_bit1 Modified Mathlib/Algebra/Ring/Int.lean +/- theorem Int.not_even_bit1 Modified Mathlib/Algebra/Ring/Parity.lean +/- theorem Function.Involutive.iterate_bit0 +/- theorem Function.Involutive.iterate_bit1 - theorem Nat.bit0_div_bit0 - theorem Nat.bit0_div_two - theorem Nat.bit0_mod_bit0 - theorem Nat.bit1_div_bit0 - theorem Nat.bit1_div_two - theorem Nat.bit1_mod_bit0 +/- theorem Nat.not_even_bit1 - theorem even_bit0 - theorem odd_bit1 +/- theorem odd_iff_exists_bit1 Modified Mathlib/Algebra/Tropical/Basic.lean - theorem Tropical.bit0 Modified Mathlib/AlgebraicTopology/FundamentalGroupoid/Basic.lean Modified Mathlib/Analysis/Calculus/FDeriv/Symmetric.lean Modified Mathlib/Analysis/Complex/UpperHalfPlane/Metric.lean Modified Mathlib/Analysis/NormedSpace/AffineIsometry.lean Modified Mathlib/Analysis/SpecialFunctions/Gaussian/GaussianIntegral.lean Modified Mathlib/Data/Complex/Basic.lean +/- theorem Complex.I_pow_bit0 +/- theorem Complex.I_pow_bit1 Modified Mathlib/Data/FP/Basic.lean Modified Mathlib/Data/Fin/VecNotation.lean +/- theorem Matrix.vecAlt0_vecAppend +/- theorem Matrix.vecAlt1_vecAppend Modified Mathlib/Data/Int/Bitwise.lean - theorem Int.bit0_ne_bit1 - theorem Int.bit0_val - theorem Int.bit1_ne_bit0 - theorem Int.bit1_ne_zero - theorem Int.bit1_val - theorem Int.bodd_bit0 - theorem Int.bodd_bit1 Modified Mathlib/Data/Nat/Bits.lean +/- theorem Nat.bit0_bits - theorem Nat.bit0_eq_bit0 +/- theorem Nat.bit0_le_bit1_iff +/- theorem Nat.bit0_le_bit +/- theorem Nat.bit0_lt_bit1_iff +/- theorem Nat.bit0_mod_two - theorem Nat.bit0_val +/- theorem Nat.bit1_bits - theorem Nat.bit1_eq_bit1 - theorem Nat.bit1_eq_one +/- theorem Nat.bit1_le_bit0_iff +/- theorem Nat.bit1_lt_bit0_iff +/- theorem Nat.bit1_mod_two - theorem Nat.bit1_val +/- def Nat.bit +/- theorem Nat.bit_le_bit1 +/- theorem Nat.bit_lt_bit0 - theorem Nat.bodd_bit0 - theorem Nat.bodd_bit1 +/- theorem Nat.div2_bit0 +/- theorem Nat.div2_bit1 - theorem Nat.one_eq_bit1 +/- theorem Nat.pos_of_bit0_pos Modified Mathlib/Data/Nat/Bitwise.lean +/- theorem Nat.bit_false +/- theorem Nat.bit_true Modified Mathlib/Data/Nat/Cast/Defs.lean - theorem Nat.cast_bit0 - theorem Nat.cast_bit1 Modified Mathlib/Data/Nat/Defs.lean Modified Mathlib/Data/Nat/Digits.lean Modified Mathlib/Data/Nat/EvenOddRec.lean Modified Mathlib/Data/Nat/Fib/Basic.lean - theorem Nat.fib_bit0 - theorem Nat.fib_bit0_succ - theorem Nat.fib_bit1 - theorem Nat.fib_bit1_succ Modified Mathlib/Data/Nat/Multiplicity.lean Modified Mathlib/Data/Nat/Size.lean +/- theorem Nat.size_bit0 +/- theorem Nat.size_bit1 Modified Mathlib/Data/Num/Basic.lean Modified Mathlib/Data/Num/Lemmas.lean +/- theorem Num.bit0_of_bit0 +/- theorem Num.bit1_of_bit1 +/- theorem Num.bit_to_nat +/- theorem Num.castNum_shiftRight +/- theorem Num.cast_bit0 +/- theorem Num.cast_bit1 +/- theorem PosNum.bit0_of_bit0 +/- theorem PosNum.bit1_of_bit1 +/- theorem PosNum.bit_to_nat +/- theorem PosNum.cast_bit0 +/- theorem PosNum.cast_bit1 +/- theorem PosNum.divMod_to_nat_aux +/- theorem ZNum.bit0_of_bit0 +/- theorem ZNum.bit1_of_bit1 +/- theorem ZNum.cast_bit0 +/- theorem ZNum.cast_bit1 +/- theorem ZNum.cast_bitm1 Modified Mathlib/Data/Num/Prime.lean Modified Mathlib/GroupTheory/SpecificGroups/Alternating.lean Modified Mathlib/Init/Data/Nat/Basic.lean Modified Mathlib/Init/Data/Nat/Lemmas.lean Modified Mathlib/Init/ZeroOne.lean - def bit0 - def bit1 Modified Mathlib/LinearAlgebra/AffineSpace/AffineEquiv.lean +/- theorem AffineEquiv.injective_pointReflection_left_of_injective_bit0 +/- theorem AffineEquiv.pointReflection_fixed_iff_of_injective_bit0 Modified Mathlib/Logic/Denumerable.lean Modified Mathlib/Logic/Equiv/Nat.lean +/- theorem Equiv.natSumNatEquivNat_apply Modified Mathlib/Probability/StrongLaw.lean Modified Mathlib/RingTheory/PowerSeries/WellKnown.lean - theorem PowerSeries.coeff_cos_bit0 - theorem PowerSeries.coeff_cos_bit1 - theorem PowerSeries.coeff_sin_bit0 - theorem PowerSeries.coeff_sin_bit1 Modified Mathlib/SetTheory/Game/Short.lean Modified Mathlib/Tactic/Positivity/Basic.lean 2024-07-15 10:42:54 ba69382 feat(RingTheory/Localization): more API and kernels of localized maps (#14751) This PR adds various API lemmas on localization. In particular it computes the kernel of a localized map as the localization of the kernel. ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/Hom.lean + theorem Algebra.algebraMapSubmonoid_le_comap + theorem Algebra.algebraMapSubmonoid_map_eq Modified Mathlib/Algebra/Module/LocalizedModule.lean + theorem IsLocalizedModule.map_mk' Modified Mathlib/Algebra/Module/Submodule/Localization.lean + theorem LinearMap.ker_localizedMap_eq_localized'_ker + theorem LinearMap.localized'_ker_eq_ker_localizedMap + theorem LinearMap.toKerLocalized_isLocalizedModule + theorem Submodule.mem_localized' Modified Mathlib/GroupTheory/MonoidLocalization.lean + theorem Submonoid.LocalizationMap.map_surjective_of_surjective Modified Mathlib/RingTheory/Ideal/Maps.lean + def Algebra.idealMap Modified Mathlib/RingTheory/Localization/Away/Basic.lean + theorem IsLocalization.Away.mapₐ_apply + theorem IsLocalization.Away.mapₐ_injective_of_injective + theorem IsLocalization.Away.mapₐ_surjective_of_surjective Modified Mathlib/RingTheory/Localization/Basic.lean + theorem IsLocalization.map_surjective_of_surjective Modified Mathlib/RingTheory/Localization/Ideal.lean + theorem IsLocalization.mk'_mem_map_algebraMap_iff Modified Mathlib/RingTheory/Localization/Module.lean + theorem LinearMap.extendScalarsOfIsLocalization_apply' 2024-07-15 10:14:14 ad047c6 chore: split LinearAlgebra.FiniteDimensional (#14670) This splits out everything that only depends on `FieldTheory.Finiteness`. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Polynomial/Module/FiniteDimensional.lean Modified Mathlib/Data/Complex/FiniteDimensional.lean Modified Mathlib/Data/Matrix/Rank.lean Modified Mathlib/FieldTheory/Finite/Polynomial.lean Modified Mathlib/FieldTheory/Tower.lean Modified Mathlib/LinearAlgebra/Determinant.lean Modified Mathlib/LinearAlgebra/FiniteDimensional.lean - theorem FiniteDimensional.basisSingleton_apply - theorem FiniteDimensional.eq_of_le_of_finrank_eq - theorem FiniteDimensional.eq_of_le_of_finrank_le - theorem FiniteDimensional.exists_mul_eq_one - theorem FiniteDimensional.exists_relation_sum_zero_pos_coefficient_of_finrank_succ_lt_card - theorem FiniteDimensional.finiteDimensional_iff_of_rank_eq_nsmul - theorem FiniteDimensional.finite_of_finite - theorem FiniteDimensional.finrank_eq_card_basis' - theorem FiniteDimensional.finrank_eq_rank' - theorem FiniteDimensional.finrank_of_infinite_dimensional - theorem FiniteDimensional.of_fact_finrank_eq_succ - theorem FiniteDimensional.of_finite_basis - theorem FiniteDimensional.of_finrank_eq_succ - theorem FiniteDimensional.of_finrank_pos - theorem FiniteDimensional.of_fintype_basis - theorem FiniteDimensional.of_injective - theorem FiniteDimensional.of_rank_eq_nat - theorem FiniteDimensional.of_rank_eq_one - theorem FiniteDimensional.of_rank_eq_zero - theorem FiniteDimensional.of_surjective - theorem FiniteDimensional.range_basisSingleton - theorem FiniteDimensional.span_of_finite - theorem FiniteDimensional.trans - theorem LinearEquiv.coe_ofInjectiveEndo - theorem LinearEquiv.ofInjectiveEndo_left_inv - theorem LinearEquiv.ofInjectiveEndo_right_inv - theorem LinearIndependent.lt_aleph0_of_finiteDimensional - theorem LinearMap.comap_eq_sup_ker_of_disjoint - theorem LinearMap.comp_eq_id_comm - theorem LinearMap.finiteDimensional_of_surjective - theorem LinearMap.injOn_iff_surjOn - theorem LinearMap.injective_iff_surjective - theorem LinearMap.isUnit_iff_ker_eq_bot - theorem LinearMap.isUnit_iff_range_eq_top - theorem LinearMap.ker_comp_eq_of_commute_of_disjoint_ker - theorem LinearMap.ker_eq_bot_iff_range_eq_top - theorem LinearMap.ker_noncommProd_eq_of_supIndep_ker - theorem LinearMap.mul_eq_one_comm - theorem LinearMap.mul_eq_one_of_mul_eq_one - theorem LinearMap.surjective_of_injective - theorem Module.End.ker_pow_constant - theorem Set.finrank_mono - theorem Subalgebra.eq_of_le_of_finrank_eq - theorem Subalgebra.eq_of_le_of_finrank_le - theorem Subalgebra.finiteDimensional_bot - theorem Subalgebra.finiteDimensional_toSubmodule - theorem Submodule.eq_top_of_finrank_eq - theorem Submodule.fg_iff_finiteDimensional - theorem Submodule.finiteDimensional_of_le - theorem Submodule.finrank_mono - theorem exists_smul_eq_of_finrank_eq_one - theorem finrank_eq_one_iff_of_nonzero' - theorem finrank_eq_one_iff_of_nonzero - theorem finrank_span_singleton - theorem finrank_zero_iff_forall_zero - theorem surjective_of_nonzero_of_finrank_eq_one Added Mathlib/LinearAlgebra/FiniteDimensional/Defs.lean + theorem FiniteDimensional.basisSingleton_apply + theorem FiniteDimensional.eq_of_le_of_finrank_eq + theorem FiniteDimensional.eq_of_le_of_finrank_le + theorem FiniteDimensional.exists_mul_eq_one + theorem FiniteDimensional.exists_relation_sum_zero_pos_coefficient_of_finrank_succ_lt_card + theorem FiniteDimensional.finiteDimensional_iff_of_rank_eq_nsmul + theorem FiniteDimensional.finite_of_finite + theorem FiniteDimensional.finrank_eq_card_basis' + theorem FiniteDimensional.finrank_eq_rank' + theorem FiniteDimensional.finrank_of_infinite_dimensional + theorem FiniteDimensional.of_fact_finrank_eq_succ + theorem FiniteDimensional.of_finite_basis + theorem FiniteDimensional.of_finrank_eq_succ + theorem FiniteDimensional.of_finrank_pos + theorem FiniteDimensional.of_fintype_basis + theorem FiniteDimensional.of_injective + theorem FiniteDimensional.of_rank_eq_nat + theorem FiniteDimensional.of_rank_eq_one + theorem FiniteDimensional.of_rank_eq_zero + theorem FiniteDimensional.of_surjective + theorem FiniteDimensional.range_basisSingleton + theorem FiniteDimensional.span_of_finite + theorem FiniteDimensional.trans + theorem LinearEquiv.coe_ofInjectiveEndo + theorem LinearEquiv.ofInjectiveEndo_left_inv + theorem LinearEquiv.ofInjectiveEndo_right_inv + theorem LinearIndependent.lt_aleph0_of_finiteDimensional + theorem LinearMap.comap_eq_sup_ker_of_disjoint + theorem LinearMap.comp_eq_id_comm + theorem LinearMap.finiteDimensional_of_surjective + theorem LinearMap.injOn_iff_surjOn + theorem LinearMap.injective_iff_surjective + theorem LinearMap.isUnit_iff_ker_eq_bot + theorem LinearMap.isUnit_iff_range_eq_top + theorem LinearMap.ker_comp_eq_of_commute_of_disjoint_ker + theorem LinearMap.ker_eq_bot_iff_range_eq_top + theorem LinearMap.ker_noncommProd_eq_of_supIndep_ker + theorem LinearMap.mul_eq_one_comm + theorem LinearMap.mul_eq_one_of_mul_eq_one + theorem LinearMap.surjective_of_injective + theorem Module.End.ker_pow_constant + theorem Set.finrank_mono + theorem Subalgebra.eq_of_le_of_finrank_eq + theorem Subalgebra.eq_of_le_of_finrank_le + theorem Subalgebra.finiteDimensional_bot + theorem Subalgebra.finiteDimensional_toSubmodule + theorem Submodule.eq_top_of_finrank_eq + theorem Submodule.fg_iff_finiteDimensional + theorem Submodule.finiteDimensional_of_le + theorem Submodule.finrank_mono + theorem exists_smul_eq_of_finrank_eq_one + theorem finrank_eq_one_iff_of_nonzero' + theorem finrank_eq_one_iff_of_nonzero + theorem finrank_span_singleton + theorem finrank_zero_iff_forall_zero + theorem surjective_of_nonzero_of_finrank_eq_one Modified Mathlib/LinearAlgebra/Matrix/FiniteDimensional.lean Modified Mathlib/LinearAlgebra/Matrix/NonsingularInverse.lean Modified Mathlib/LinearAlgebra/Matrix/ToLinearEquiv.lean Modified Mathlib/LinearAlgebra/Projectivization/Basic.lean Modified Mathlib/LinearAlgebra/QuadraticForm/Basic.lean Modified Mathlib/NumberTheory/RamificationInertia.lean Modified Mathlib/RingTheory/Algebraic.lean Modified Mathlib/RingTheory/Ideal/Cotangent.lean Modified Mathlib/RingTheory/IntegralClosure.lean Modified Mathlib/RingTheory/LocalRing/Module.lean Modified Mathlib/RingTheory/Norm/Defs.lean Modified Mathlib/RingTheory/TensorProduct/Basic.lean Modified Mathlib/Topology/Instances/Complex.lean 2024-07-15 08:59:19 bd8361b feat(RingTheory/Algebraic): define `Algebra.Transcendental` and some lemmas (#14710) Define `Algebra.Transcendental`, analogous to `Algebra.IsAlgebraic`, and some lemmas. Also prove `transcendental_iff_injective`, a negated version of `isAlgebraic_iff_not_injective`. ESTIMATED CHANGES Modified Mathlib/RingTheory/Algebraic.lean + theorem Algebra.transcendental_def + theorem Algebra.transcendental_iff_not_isAlgebraic + theorem transcendental_iff_injective 2024-07-15 08:20:48 08bbfd6 feat(Topology/ENNReal): add `finset_sum_iSup` (#14738) Moves: - finset_sum_iSup_nat -> finsetSum_iSup_of_monotone ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Integral/Lebesgue.lean Modified Mathlib/Topology/Instances/ENNReal.lean + theorem ENNReal.finsetSum_iSup + theorem ENNReal.finsetSum_iSup_of_monotone - theorem ENNReal.finset_sum_iSup_nat +/- theorem ENNReal.iSup_add_iSup_of_monotone 2024-07-15 06:14:07 ce90d35 chore(Combinatorics/Additive/PluenneckeRuzsa): Use semantic lemma names (#13329) I, as the main author of those theorems, can never remember their names. Symbol-reading as a naming convention fails here because there are too many symbols to mention to * distinguish the series of results from other results in Mathlib * distinguish the different results within that series Using semantic names solves both issues quite nicely. ESTIMATED CHANGES Modified Mathlib/Combinatorics/Additive/PluenneckeRuzsa.lean - theorem Finset.card_add_nsmul_le - theorem Finset.card_div_mul_le_card_div_mul_card_div - theorem Finset.card_div_mul_le_card_mul_mul_card_div - theorem Finset.card_div_mul_le_card_mul_mul_card_mul - theorem Finset.card_mul_mul_card_le_card_mul_mul_card_mul - theorem Finset.card_mul_mul_le_card_div_mul_card_div - theorem Finset.card_mul_mul_le_card_div_mul_card_mul - theorem Finset.card_mul_mul_le_card_mul_mul_card_div - theorem Finset.card_mul_pow_le - theorem Finset.card_pow_div_pow_le' - theorem Finset.card_pow_div_pow_le - theorem Finset.card_pow_le' - theorem Finset.card_pow_le - theorem Finset.mul_pluennecke_petridis + theorem Finset.pluennecke_petridis_inequality_mul + theorem Finset.pluennecke_ruzsa_inequality_pow_div + theorem Finset.pluennecke_ruzsa_inequality_pow_div_pow_div + theorem Finset.pluennecke_ruzsa_inequality_pow_div_pow_mul + theorem Finset.pluennecke_ruzsa_inequality_pow_mul + theorem Finset.ruzsa_triangle_inequality_div_div_div + theorem Finset.ruzsa_triangle_inequality_div_mul_div + theorem Finset.ruzsa_triangle_inequality_div_mul_mul + theorem Finset.ruzsa_triangle_inequality_mul_div_div + theorem Finset.ruzsa_triangle_inequality_mul_div_mul + theorem Finset.ruzsa_triangle_inequality_mul_mul_div + theorem Finset.ruzsa_triangle_inequality_mul_mul_mul 2024-07-15 00:22:14 af10129 feat(Algebra/Polynomial/AlgebraMap): generalize one of the ring in `map_aeval_eq_aeval_map` to `Semiring` (#14735) ... it is not needed to be commutative. ESTIMATED CHANGES Modified Mathlib/Algebra/Polynomial/AlgebraMap.lean +/- theorem Polynomial.map_aeval_eq_aeval_map 2024-07-15 00:22:13 08c93a3 feat(LocalExtr/LineDeriv): new file (#14435) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Analysis/Calculus/LineDeriv/Basic.lean + theorem HasLineDerivWithinAt.hasLineDerivAt' Added Mathlib/Analysis/Calculus/LocalExtr/LineDeriv.lean + theorem IsExtrFilter.hasLineDerivAt_eq_zero + theorem IsExtrFilter.lineDeriv_eq_zero + theorem IsExtrOn.hasLineDerivAt_eq_zero + theorem IsExtrOn.hasLineDerivWithinAt_eq_zero + theorem IsExtrOn.lineDerivWithin_eq_zero + theorem IsExtrOn.lineDeriv_eq_zero + theorem IsLocalExtr.hasLineDerivAt_eq_zero + theorem IsLocalExtr.lineDeriv_eq_zero + theorem IsLocalMax.hasLineDerivAt_eq_zero + theorem IsLocalMax.lineDeriv_eq_zero + theorem IsLocalMin.hasLineDerivAt_eq_zero + theorem IsLocalMin.lineDeriv_eq_zero + theorem IsMaxOn.hasLineDerivAt_eq_zero + theorem IsMaxOn.hasLineDerivWithinAt_eq_zero + theorem IsMaxOn.lineDerivWithin_eq_zero + theorem IsMaxOn.lineDeriv_eq_zero + theorem IsMinOn.hasLineDerivAt_eq_zero + theorem IsMinOn.hasLineDerivWithinAt_eq_zero + theorem IsMinOn.lineDerivWithin_eq_zero + theorem IsMinOn.lineDeriv_eq_zero 2024-07-15 00:06:26 2611092 feat(MeasureTheory/Constructions/Pi): add `measurePreserving_pi` (#14185) See the Zulip [thread](https://leanprover.zulipchat.com/#narrow/stream/217875-Is-there-code-for-X.3F/topic/MeasureTheory.2EmeasurePreserving_pi/near/447399178) ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Constructions/Pi.lean + theorem MeasureTheory.measurePreserving_pi + theorem MeasureTheory.volume_preserving_pi 2024-07-14 23:18:11 75a4a8d chore (LinearAlgebra.Dimension): make `instNontrivial` a local instance (#14120) The universes are a bit strange in this since the only occurrence of one is in the `HasRankNullity` class. Since this isn't needed outside this file, we should probably make it `local`. ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/Dimension/RankNullity.lean + theorem nontrivial_of_hasRankNullity 2024-07-14 22:14:24 dcaa42f fix: don't create new branches (and PRs) in update_dependencies.yml (#14713) The bot has been [creating a bunch of PRs](https://github.com/leanprover-community/mathlib4/issues?q=is%3Aopen+label%3Aauto-merge-after-CI+chore%3A+update+Mathlib+dependencies). This is because the current workflow [adds a timestamp suffix to the branch name](https://github.com/leanprover-community/mathlib4/blob/0512d468dedbde988a3759fcb4118c07e1cd3185/.github/workflows/update_dependencies.yml), which is discouraged in the README of the [create-pull-request action that we're using](https://github.com/peter-evans/create-pull-request?tab=readme-ov-file#alternative-strategy ESTIMATED CHANGES Modified .github/workflows/update_dependencies.yml 2024-07-14 21:27:47 8111218 refactor(Mathlib/Data/DFinsupp/Basic): remove `Decidable` instances from some `DFinsupp` functions (#13235) This PR removes `Decidable` instances from these `DFinsupp` functions: 1. ```lean def DFinsupp.sigmaUncurry {ι : Type u} {α : ι → Type u_2} {δ : (i : ι) → α i → Type v} [(i : ι) → (j : α i) → Zero (δ i j)] [(i : ι) → DecidableEq (α i)] [(i : ι) → (j : α i) → Decidable (x ≠ 0)] (f : Π₀ (i : ι) (j : α i), δ i j) : Π₀ (i : (i : ι) × α i), δ i.fst i.snd def DFinsupp.sigmaCurryEquiv {ι : Type u} [DecidableEq ι] {α : ι → Type u_2} {δ : (i : ι) → α i → Type v} [(i : ι) → (j : α i) → Zero (δ i j)] [(i : ι) → DecidableEq (α i)] [(i : ι) → (j : α i) → Decidable (x ≠ 0)] : Π₀ (i : (i : ι) × α i), δ i.fst i.snd ≃ Π₀ (i : ι) (j : α i), δ i j ``` to ```lean def DFinsupp.sigmaUncurry {ι : Type u} {α : ι → Type u_2} {δ : (i : ι) → α i → Type v} [(i : ι) → (j : α i) → Zero (δ i j)] [DecidableEq ι] (f : Π₀ (i : ι) (j : α i), δ i j) : Π₀ (i : (i : ι) × α i), δ i.fst i.snd def DFinsupp.sigmaCurryEquiv {ι : Type u} {α : ι → Type u_2} {δ : (i : ι) → α i → Type v} [(i : ι) → (j : α i) → Zero (δ i j)] [DecidableEq ι] : Π₀ (i : (i : ι) × α i), δ i.fst i.snd ≃ Π₀ (i : ι) (j : α i), δ i j ``` We use `Trunc.finChoice` from #13025 to compute support with the only `DecidableEq ι` instance. 2. ```lean instance DFinsupp.decidableZero {ι : Type u} {β : ι → Type v} [DecidableEq ι] [(i : ι) → Zero (β i)] [(i : ι) → (x : β i) → Decidable (x ≠ 0)] (f : Π₀ (i : ι), β i) : Decidable (0 = f) ``` to ```lean instance DFinsupp.decidableZero {ι : Type u} {β : ι → Type v} [(i : ι) → Zero (β i)] [(i : ι) → (x : β i) → Decidable (x = 0)] (f : Π₀ (i : ι), β i) : Decidable (f = 0) ``` We remove the redundant `DecidableEq ι` instance. Additionally, We replace the `(i : ι) → (x : β i) → Decidable (x ≠ 0)` instance with `(i : ι) → (x : β i) → Decidable (x = 0)` because it's more principal, and swaps `f` and `0`. 3. ```lean noncomputable def DFinsupp.comapDomain {ι : Type u} {β : ι → Type v} [DecidableEq ι] {κ : Type u_1} [(i : ι) → Zero (β i)] (h : κ → ι) (hh : Function.Injective h) (f : Π₀ (i : ι), β i) : Π₀ (k : κ), β (h k) ``` to ```lean noncomputable def DFinsupp.comapDomain {ι : Type u} {β : ι → Type v} {κ : Type u_1} [(i : ι) → Zero (β i)] (h : κ → ι) (hh : Function.Injective h) (f : Π₀ (i : ι), β i) : Π₀ (k : κ), β (h k) ``` `DecidableEq ι` is required to compute unconstructive support so this is redundant. ESTIMATED CHANGES Modified Mathlib/Algebra/DirectSum/Basic.lean +/- def DirectSum.sigmaCurryEquiv +/- def DirectSum.sigmaUncurry +/- theorem DirectSum.sigmaUncurry_apply Modified Mathlib/Algebra/DirectSum/Module.lean +/- def DirectSum.sigmaLcurryEquiv + def DirectSum.sigmaLuncurry +/- theorem DirectSum.sigmaLuncurry_apply Modified Mathlib/Algebra/Module/PID.lean Modified Mathlib/Data/DFinsupp/Basic.lean +/- def DFinsupp.sigmaCurryEquiv +/- def DFinsupp.sigmaUncurry +/- theorem DFinsupp.sigmaUncurry_add +/- theorem DFinsupp.sigmaUncurry_apply +/- theorem DFinsupp.sigmaUncurry_single +/- theorem DFinsupp.sigmaUncurry_smul +/- theorem DFinsupp.sigmaUncurry_zero 2024-07-14 21:27:46 f7124c8 feat(Tactic/CategoryTheory): normalization in monoidal categories (#11133) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Tactic.lean Added Mathlib/Tactic/CategoryTheory/Monoidal.lean + def Mathlib.Tactic.Monoidal.Atom.src + def Mathlib.Tactic.Monoidal.Atom.tgt + structure Mathlib.Tactic.Monoidal.Atom + structure Mathlib.Tactic.Monoidal.Atom₁ + structure Mathlib.Tactic.Monoidal.Context + def Mathlib.Tactic.Monoidal.Mor₁.e + def Mathlib.Tactic.Monoidal.Mor₁.toList + inductive Mathlib.Tactic.Monoidal.Mor₁ + def Mathlib.Tactic.Monoidal.NormalExpr.associator + def Mathlib.Tactic.Monoidal.NormalExpr.associatorInv + def Mathlib.Tactic.Monoidal.NormalExpr.e + def Mathlib.Tactic.Monoidal.NormalExpr.leftUnitor + def Mathlib.Tactic.Monoidal.NormalExpr.leftUnitorInv + def Mathlib.Tactic.Monoidal.NormalExpr.of + def Mathlib.Tactic.Monoidal.NormalExpr.ofExpr + def Mathlib.Tactic.Monoidal.NormalExpr.rightUnitor + def Mathlib.Tactic.Monoidal.NormalExpr.rightUnitorInv + def Mathlib.Tactic.Monoidal.NormalExpr.src + def Mathlib.Tactic.Monoidal.NormalExpr.tgt + def Mathlib.Tactic.Monoidal.NormalExpr.toList + inductive Mathlib.Tactic.Monoidal.NormalExpr + structure Mathlib.Tactic.Monoidal.Result + def Mathlib.Tactic.Monoidal.Structural.src + def Mathlib.Tactic.Monoidal.Structural.tgt + inductive Mathlib.Tactic.Monoidal.Structural + def Mathlib.Tactic.Monoidal.StructuralAtom.e + def Mathlib.Tactic.Monoidal.StructuralAtom.src + def Mathlib.Tactic.Monoidal.StructuralAtom.tgt + inductive Mathlib.Tactic.Monoidal.StructuralAtom + def Mathlib.Tactic.Monoidal.WhiskerLeftExpr.atom + def Mathlib.Tactic.Monoidal.WhiskerLeftExpr.e + def Mathlib.Tactic.Monoidal.WhiskerLeftExpr.src + def Mathlib.Tactic.Monoidal.WhiskerLeftExpr.tgt + inductive Mathlib.Tactic.Monoidal.WhiskerLeftExpr + def Mathlib.Tactic.Monoidal.WhiskerRightExpr.atom + def Mathlib.Tactic.Monoidal.WhiskerRightExpr.e + def Mathlib.Tactic.Monoidal.WhiskerRightExpr.src + def Mathlib.Tactic.Monoidal.WhiskerRightExpr.tgt + inductive Mathlib.Tactic.Monoidal.WhiskerRightExpr + theorem Mathlib.Tactic.Monoidal.evalComp_cons + theorem Mathlib.Tactic.Monoidal.evalComp_nil_cons + theorem Mathlib.Tactic.Monoidal.evalComp_nil_nil + theorem Mathlib.Tactic.Monoidal.evalWhiskerLeft_comp + theorem Mathlib.Tactic.Monoidal.evalWhiskerLeft_id + theorem Mathlib.Tactic.Monoidal.evalWhiskerLeft_nil + theorem Mathlib.Tactic.Monoidal.evalWhiskerLeft_of_cons + theorem Mathlib.Tactic.Monoidal.evalWhiskerRight_comp + theorem Mathlib.Tactic.Monoidal.evalWhiskerRight_cons_of_of + theorem Mathlib.Tactic.Monoidal.evalWhiskerRight_cons_whisker + theorem Mathlib.Tactic.Monoidal.evalWhiskerRight_id + theorem Mathlib.Tactic.Monoidal.evalWhiskerRight_nil + theorem Mathlib.Tactic.Monoidal.eval_comp + theorem Mathlib.Tactic.Monoidal.eval_monoidalComp + theorem Mathlib.Tactic.Monoidal.eval_of + theorem Mathlib.Tactic.Monoidal.eval_whiskerLeft + theorem Mathlib.Tactic.Monoidal.eval_whiskerRight + def Mathlib.Tactic.Monoidal.isTensorObj? + def Mathlib.Tactic.Monoidal.isTensorUnit? + def Mathlib.Tactic.Monoidal.mkContext + def Mathlib.Tactic.Monoidal.src + def Mathlib.Tactic.Monoidal.structuralAtom? + def Mathlib.Tactic.Monoidal.structuralOfMonoidalComp + def Mathlib.Tactic.Monoidal.tgt + def mkEq + theorem mk_eq Added test/CategoryTheory/Monoidal.lean 2024-07-14 20:25:13 779a1e4 feat: Monotonicity of monadic operations on `Part` (#13337) Prove that `Part.bind`, `Part.map` and `seq` respect monotonicity of functions. Rename `OrderHom.bind` to `OrderHom.partBind`. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Order/Monotone/Basic.lean + theorem antitone_iff_apply₂ + theorem monotone_iff_apply₂ Modified Mathlib/Order/OmegaCompletePartialOrder.lean - def OrderHom.bind Added Mathlib/Order/Part.lean + theorem Antitone.partBind + theorem Antitone.partMap + theorem Antitone.partSeq + theorem Monotone.partBind + theorem Monotone.partMap + theorem Monotone.partSeq + def OrderHom.partBind 2024-07-14 20:14:51 47070fe chore: remove scripts/mk_all.sh (#14540) It has since been rewritten in Lean, and is unused. ESTIMATED CHANGES Deleted scripts/mk_all.sh 2024-07-14 20:04:57 7375696 feat: DFA.acceptsFrom, DFA.map, DFA.equiv (#11372) `acceptsFrom` is used in #11311 to define left quotients. ESTIMATED CHANGES Modified Mathlib/Computability/DFA.lean +/- def DFA.accepts + def DFA.acceptsFrom + theorem DFA.accepts_comap + theorem DFA.accepts_reindex + def DFA.comap + theorem DFA.comap_id + theorem DFA.comap_reindex +/- def DFA.evalFrom + theorem DFA.evalFrom_comap + theorem DFA.evalFrom_reindex + theorem DFA.eval_comap + theorem DFA.eval_reindex +/- theorem DFA.mem_accepts + theorem DFA.mem_acceptsFrom + def DFA.reindex + theorem DFA.reindex_refl + theorem DFA.symm_reindex 2024-07-14 18:02:00 71a2f3e feat: add perfectly normal (T_6) topological property (#13517) Introduces the final whole-number separation axiom: [perfectly normal](https://topology.pi-base.org/properties/P000015) / [$T_6$](https://topology.pi-base.org/properties/P000067). Includes a proof that perfectly normal implies completely normal (resp. $T_6$ implies $T_5$). Future work: show all pseudometrizable spaces are perfectly normal (resp. all metrizable spaces are $T_6$). ESTIMATED CHANGES Modified Mathlib/Topology/Basic.lean + theorem IsClosed.closure_interior_subset + theorem IsOpen.subset_interior_closure Modified Mathlib/Topology/Separation.lean + theorem Disjoint.hasSeparatingCover_closed_gdelta_right + theorem HasSeparatingCover.mono + theorem Set.hasSeparatingCover_empty_left + theorem Set.hasSeparatingCover_empty_right 2024-07-14 17:46:45 62bfebd feat(AlgebraicGeometry): add locally Noetherian and Noetherian schemes (#13972) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/AlgebraicGeometry/AffineScheme.lean + theorem AlgebraicGeometry.iSup_affineOpens_eq_top Added Mathlib/AlgebraicGeometry/Noetherian.lean + theorem AlgebraicGeometry.finite_irreducibleComponents_of_isNoetherian + theorem AlgebraicGeometry.isLocallyNoetherian_iff_of_affine_openCover + theorem AlgebraicGeometry.isLocallyNoetherian_iff_of_iSup_eq_top + theorem AlgebraicGeometry.isLocallyNoetherian_iff_openCover + theorem AlgebraicGeometry.isLocallyNoetherian_of_affine_cover + theorem AlgebraicGeometry.isLocallyNoetherian_of_isOpenImmersion + theorem AlgebraicGeometry.isNoetherianRing_of_away + theorem AlgebraicGeometry.isNoetherian_Spec + theorem AlgebraicGeometry.isNoetherian_iff_of_finite_affine_openCover + theorem AlgebraicGeometry.isNoetherian_iff_of_finite_iSup_eq_top + theorem AlgebraicGeometry.noetherianSpace_of_isAffine + theorem AlgebraicGeometry.noetherianSpace_of_isAffineOpen Modified Mathlib/AlgebraicGeometry/OpenImmersion.lean + def AlgebraicGeometry.IsOpenImmersion.ΓIsoTop Modified Mathlib/RingTheory/Localization/Ideal.lean + theorem IsLocalization.ideal_eq_iInf_comap_map_away 2024-07-14 16:48:25 db92cd6 feat(RingTheory/Derivation/Basic): add `coe_restrictScalars` lemma for derivations (#14730) Add `coe_restrictScalars` lemma for derivations. ESTIMATED CHANGES Modified Mathlib/RingTheory/Derivation/Basic.lean + theorem Derivation.coe_restrictScalars + theorem Derivation.restrictScalars_apply 2024-07-14 16:48:24 5a2e0a4 feat: induction principle for Multiplicative (#14729) ESTIMATED CHANGES Modified Mathlib/Algebra/Group/TypeTags.lean + def Additive.rec + def Multiplicative.rec 2024-07-14 15:55:53 df96365 feat(AlgebraicGeometry/Pullbacks): Fibred product of affine schemes. (#14711) This contribution was created as part of the AIM workshop "Formalizing algebraic geometry" in June 2024. ESTIMATED CHANGES Modified Mathlib/Algebra/Category/Ring/Constructions.lean +/- def CommRingCat.pushoutCocone +/- def CommRingCat.pushoutCoconeIsColimit Modified Mathlib/AlgebraicGeometry/Pullbacks.lean + def AlgebraicGeometry.pullbackSpecIso + theorem AlgebraicGeometry.pullbackSpecIso_hom_fst + theorem AlgebraicGeometry.pullbackSpecIso_hom_snd + theorem AlgebraicGeometry.pullbackSpecIso_inv_fst + theorem AlgebraicGeometry.pullbackSpecIso_inv_snd Modified Mathlib/RingTheory/RingHomProperties.lean 2024-07-14 15:55:52 23a58a8 feat(Topology/LocallyClosed): Define locally closed sets (#14396) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Topology/Basic.lean - theorem IsClosed.frontier_subset + theorem disjoint_frontier_iff_isOpen + theorem frontier_subset_iff_isClosed Modified Mathlib/Topology/Constructions.lean + theorem isClosed_preimage_val Added Mathlib/Topology/LocallyClosed.lean + theorem Continuous.preimage_coborder_subset + theorem Embedding.isLocallyClosed_iff + theorem Inducing.isLocallyClosed_iff + theorem IsClosed.isLocallyClosed + theorem IsLocallyClosed.image + theorem IsLocallyClosed.inter + theorem IsLocallyClosed.isOpen_preimage_val_closure + theorem IsLocallyClosed.preimage + def IsLocallyClosed + theorem IsOpen.isLocallyClosed + theorem IsOpenMap.coborder_preimage_subset + theorem OpenEmbedding.coborder_preimage + theorem closure_inter_coborder + def coborder + theorem coborder_eq_compl_frontier_iff + theorem coborder_eq_union_frontier_compl + theorem coborder_eq_univ_iff + theorem coborder_inter_closure + theorem coborder_preimage + theorem isClosed_preimage_val_coborder + theorem isLocallyClosed_iff_coe_preimage_of_iSup_eq_top + theorem isLocallyClosed_iff_isOpen_coborder + theorem isLocallyClosed_tfae + theorem subset_coborder 2024-07-14 15:55:51 9e5ed18 feat(UniformSpace/Cauchy): add lemmas about `TotallyBounded` (#13451) ESTIMATED CHANGES Modified Mathlib/Data/Set/Finite.lean + theorem Set.exists_subset_image_finite_and Modified Mathlib/Topology/Instances/Rat.lean Modified Mathlib/Topology/MetricSpace/Bounded.lean Modified Mathlib/Topology/UniformSpace/Cauchy.lean + theorem Set.Finite.totallyBounded + theorem Set.Subsingleton.totallyBounded + theorem TotallyBounded.subset + theorem totallyBounded_biUnion + theorem totallyBounded_closure +/- theorem totallyBounded_empty + theorem totallyBounded_iUnion + theorem totallyBounded_insert + theorem totallyBounded_sUnion + theorem totallyBounded_singleton - theorem totallyBounded_subset + theorem totallyBounded_union Modified Mathlib/Topology/UniformSpace/UniformEmbedding.lean + theorem totallyBounded_image_iff +/- theorem totallyBounded_preimage 2024-07-14 15:16:16 30dcbcc chore: remove two trivial mentions of autoImplicit (#14728) ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/Basis/VectorSpace.lean Modified Mathlib/Mathport/Rename.lean 2024-07-14 14:28:42 f8a8ae1 feat(Algebra/Module/Submodule/Pointwise): generalize singleton_set_smul (#14723) ESTIMATED CHANGES Modified Mathlib/Algebra/Module/Submodule/Pointwise.lean +/- theorem Submodule.singleton_set_smul 2024-07-14 12:16:19 a5dbb9d feat: Lemma for `fderiv` of scalar function (#14502) Adds lemma for simplifying the Fréchet derivative when applied to a function maping scalars to scalars. This (currently named `fderiv_deriv'`) is a special case of `fderiv_deriv`. Neither of `simp`, `fun_prop`, `aesop`, `exact?` , `apply?` currently seems to make progress on it. Possibly, it should be instead stated as `(fderiv 𝕜 f x : 𝕜 → 𝕜) = ((deriv f x) * ·)` if that makes it more likely to be applied by `simp`? I think it should be marked `@[simp]` because one would basically always prefer the right hand side to the left hand side of the equality. Does that make sense? I also think `fderiv_deriv` should be marked `@[simp]`, though maybe there is a reason why it isn't. Marking it such requires a change to the proof of `deriv_fderiv`, which was using a `simp` rather than a `simp only` (not a [non-terminal simp](https://leanprover-community.github.io/glossary.html#non-terminal-simp) but still to be avoided, I would assume?). Maybe other things are also likely to break, however, if those are added to simp? ESTIMATED CHANGES Modified Mathlib/Analysis/Calculus/Deriv/Basic.lean +/- theorem deriv_fderiv + theorem fderiv_eq_deriv_mul + theorem fderiv_eq_smul_deriv Modified Mathlib/Analysis/Calculus/IteratedDeriv/Defs.lean +/- theorem iteratedDeriv_one 2024-07-14 10:08:28 88432ae feat(Algebra/Homology/ShortComplex/ExactFunctor): relate preserving exact sequences and preserving finite (co)limits/homology (#14538) Let `F : C ⥤ D` be an additive functor between abelian categories: - `Functor.preservesFiniteLimits_tfae`: the following are equivalent: 1. for every short exact sequence `0 ⟶ A ⟶ B ⟶ C ⟶ 0`, `0 ⟶ F(A) ⟶ F(B) ⟶ F(C) ⟶ 0` is exact. 2. for every exact sequence `A ⟶ B ⟶ C` where `A ⟶ B` is mono, `F(A) ⟶ F(B) ⟶ F(C)` is exact and `F(A) ⟶ F(B)` is mono. 3. `F` preserves kernels. 4. `F` preserves finite limits. - `Functor.preservesFiniteColimits_tfae`: the following are equivalent: 1. for every short exact sequence `0 ⟶ A ⟶ B ⟶ C ⟶ 0`, `F(A) ⟶ F(B) ⟶ F(C) ⟶ 0` is exact. 2. for every exact sequence `A ⟶ B ⟶ C` where `B ⟶ C` is epi, `F(A) ⟶ F(B) ⟶ F(C)` is exact and `F(B) ⟶ F(C)` is epi. 3. `F` preserves cokernels. 4. `F` preserves finite colimits. - `Functor.exact_tfae`: the following are equivalent: 1. for every short exact sequence `0 ⟶ A ⟶ B ⟶ C ⟶ 0`, `0 ⟶ F(A) ⟶ F(B) ⟶ F(C) ⟶ 0` is exact. 2. for every exact sequence `A ⟶ B ⟶ C`, `F(A) ⟶ F(B) ⟶ F(C)` is exact. 3. `F` preserves homology. 4. `F` preserves both finite limits and finite colimits. ESTIMATED CHANGES Modified Mathlib/Algebra/Homology/ShortComplex/ExactFunctor.lean + theorem CategoryTheory.Functor.exact_tfae + theorem CategoryTheory.Functor.preservesEpimorphisms_of_preserves_shortExact_right + theorem CategoryTheory.Functor.preservesFiniteColimits_tfae + theorem CategoryTheory.Functor.preservesFiniteLimits_tfae + theorem CategoryTheory.Functor.preservesMonomorphisms_of_preserves_shortExact_left Modified Mathlib/CategoryTheory/Abelian/Exact.lean + theorem CategoryTheory.ShortComplex.exact_kernel 2024-07-14 09:21:31 36a8397 fix(lint_style): only print style errors once overall (#14724) The previous code meant that once an error was found, *all* errors so far would be printed after checking *every module*, leading to hundreds of repetitions of the same warning. ESTIMATED CHANGES Modified Mathlib/Tactic/Linter/TextBased.lean 2024-07-14 07:35:58 7e10259 feat(Algebra/Polynomial/Basic): transfer some `Finsupp` smul lemmas to polynomials (#14701) Add `sum_smul_index'` and `smul_sum` for polynomials. ESTIMATED CHANGES Modified Mathlib/Algebra/Polynomial/Basic.lean + theorem Polynomial.sum_smul_index' 2024-07-14 07:35:57 aee6b1e feat(PowerSeries): coefficients of series products (#14452) Add three elementary lemmas about coefficients of series products. ESTIMATED CHANGES Modified Mathlib/RingTheory/PowerSeries/Basic.lean + theorem PowerSeries.coeff_one_mul + theorem PowerSeries.coeff_one_pow + theorem PowerSeries.coeff_pow 2024-07-14 03:25:26 81fa779 feat(LineDeriv/QuadraticMap): new file (#14450) Line derivative of a quadratic form is given by its polar bilinear form. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/Calculus/LineDeriv/QuadraticMap.lean + theorem QuadraticMap.hasLineDerivAt + theorem QuadraticMap.lineDifferentiableAt Modified Mathlib/LinearAlgebra/QuadraticForm/Basic.lean 2024-07-14 02:03:12 670cd52 feat(SpecialFunctions.Log.ENNRealLog): remove a coercion in log_pow (#14714) The previous version of the lemma stated that `log (x ^ n) = (n : ℝ≥0∞) * log x`. Changed to `log (x ^ n) = n * log x`, removing a coercion. There are many different coercions from Nat, Real, etc. to EReal. I think statements should as much as possible use the "canonical" coercion, which from Nat to EReal is the AddMonoidWithOne coercion. Anything more complicated (here, going from Nat -> ENNReal -> EReal) gets quickly into coercion hell. ESTIMATED CHANGES Modified Mathlib/Analysis/SpecialFunctions/Log/ENNRealLog.lean +/- theorem ENNReal.log_pow Modified Mathlib/Analysis/SpecialFunctions/Log/ENNRealLogExp.lean 2024-07-14 01:52:51 cdb5bd6 feat(SetTheory/Surreal/Basic): add some lemmas for Surreal.mk (#14600) add some lemmas for Surreal.mk ESTIMATED CHANGES Modified Mathlib/SetTheory/Surreal/Basic.lean + theorem Surreal.mk_add + theorem Surreal.mk_eq_mk + theorem Surreal.mk_eq_zero + theorem Surreal.mk_lt_mk + theorem Surreal.mk_lt_mk_moveRight + theorem Surreal.mk_moveLeft_lt_mk + theorem Surreal.mk_sub + theorem Surreal.zero_def + theorem Surreal.zero_le_mk + theorem Surreal.zero_lt_mk 2024-07-14 01:52:50 2d55389 fix(SetTheory/Game/Basic): Fix the definition of surreal inverse (#14463) fix the definition of surreal inverse ESTIMATED CHANGES Modified Mathlib/SetTheory/Game/Basic.lean +/- def SetTheory.PGame.invVal +/- theorem SetTheory.PGame.invVal_isEmpty 2024-07-14 01:42:28 711980b feat(SetTheory/Game/PGame): inserting an option a game (#14517) inserting an option into a game ESTIMATED CHANGES Modified Mathlib/SetTheory/Game/PGame.lean + def SetTheory.PGame.insertLeft + theorem SetTheory.PGame.insertLeft_equiv_of_lf + def SetTheory.PGame.insertRight + theorem SetTheory.PGame.insertRight_equiv_of_lf + theorem SetTheory.PGame.insertRight_insertLeft + theorem SetTheory.PGame.insertRight_le + theorem SetTheory.PGame.le_insertLeft + theorem SetTheory.PGame.neg_insertLeft_neg + theorem SetTheory.PGame.neg_insertRight_neg Modified Mathlib/SetTheory/Surreal/Basic.lean + theorem SetTheory.PGame.insertLeft_numeric + theorem SetTheory.PGame.insertRight_numeric 2024-07-13 21:21:59 548ca52 feat(LocalExtr/Basic): add lemmas about `_ ∈ posTangentConeAt _ _` (#14434) ESTIMATED CHANGES Modified Mathlib/Analysis/Calculus/Darboux.lean Modified Mathlib/Analysis/Calculus/LocalExtr/Basic.lean +/- theorem IsLocalMaxOn.fderivWithin_eq_zero +/- theorem IsLocalMaxOn.fderivWithin_nonpos +/- theorem IsLocalMaxOn.hasFDerivWithinAt_eq_zero +/- theorem IsLocalMaxOn.hasFDerivWithinAt_nonpos +/- theorem IsLocalMinOn.fderivWithin_eq_zero +/- theorem IsLocalMinOn.fderivWithin_nonneg +/- theorem IsLocalMinOn.hasFDerivWithinAt_eq_zero +/- theorem IsLocalMinOn.hasFDerivWithinAt_nonneg + theorem mem_posTangentConeAt_of_frequently_mem - theorem mem_posTangentConeAt_of_segment_subset' +/- theorem mem_posTangentConeAt_of_segment_subset + theorem one_mem_posTangentConeAt_iff_frequently + theorem one_mem_posTangentConeAt_iff_mem_closure + theorem sub_mem_posTangentConeAt_of_segment_subset 2024-07-13 20:05:42 79741db feat(RingTheory/Flat): a module is flat iff tensoring preserves exact sequences (#14482) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/RingTheory/Flat/CategoryTheory.lean + theorem Module.Flat.iff_lTensor_preserves_shortComplex_exact + theorem Module.Flat.iff_rTensor_preserves_shortComplex_exact + theorem Module.Flat.lTensor_shortComplex_exact + theorem Module.Flat.rTensor_shortComplex_exact 2024-07-13 19:14:10 eed869b feat(Order.LiminfLimsup): add limsup_max (#14564) Add characterization of limsup and limsup of max. ESTIMATED CHANGES Modified Mathlib/Order/ConditionallyCompleteLattice/Basic.lean +/- theorem csInf_univ Modified Mathlib/Order/LiminfLimsup.lean + theorem Filter.le_liminf_iff + theorem Filter.le_limsup_iff + theorem Filter.liminf_le_iff + theorem Filter.limsup_le_iff + theorem isBoundedUnder_ge_finset_inf' + theorem isBoundedUnder_ge_finset_inf + theorem isBoundedUnder_le_finset_sup' + theorem isBoundedUnder_le_finset_sup + theorem isCoboundedUnder_ge_finset_inf' + theorem isCoboundedUnder_le_finset_sup' + theorem isCoboundedUnder_le_max + theorem liminf_finset_inf' + theorem liminf_finset_inf + theorem liminf_min + theorem limsup_finset_sup' + theorem limsup_finset_sup + theorem limsup_max Modified scripts/style-exceptions.txt 2024-07-13 18:48:36 100eb1d feat (RingTheory/HahnSeries) SMulZeroClass instances (#13421) This PR adds instances for `SMulZeroClass R (HahnSeries Γ R)` and `SMulZeroClass R (HahnModule Γ R V)`. Also, some minor variable cleanup. ESTIMATED CHANGES Modified Mathlib/RingTheory/HahnSeries/Addition.lean + theorem HahnSeries.orderTop_smul_not_lt Modified Mathlib/RingTheory/HahnSeries/Multiplication.lean +/- def HahnModule.of + theorem HahnModule.of_smul + theorem HahnModule.of_symm_smul +/- theorem HahnModule.smul_coeff_left +/- theorem HahnModule.smul_coeff_right 2024-07-13 18:20:07 dd161e4 feat(CategoryTheory/GlueData): New constructor for glue data. (#14548) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/GlueData.lean + def CategoryTheory.GlueData'.t'' + structure CategoryTheory.GlueData' + def CategoryTheory.GlueData.ofGlueData' Modified Mathlib/CategoryTheory/Limits/Shapes/Pullback/HasPullback.lean + theorem CategoryTheory.Limits.pullback.map_comp + theorem CategoryTheory.Limits.pullback.map_id + theorem CategoryTheory.Limits.pushout.map_comp + theorem CategoryTheory.Limits.pushout.map_id Modified Mathlib/CategoryTheory/Limits/Shapes/Pullback/Iso.lean + theorem CategoryTheory.Limits.pullback_inv_fst_snd_of_right_isIso + theorem CategoryTheory.Limits.pullback_inv_snd_fst_of_left_isIso + theorem CategoryTheory.Limits.pushout_inl_inv_inr_of_right_isIso + theorem CategoryTheory.Limits.pushout_inr_inv_inl_of_right_isIso 2024-07-13 17:36:50 98151c2 refactor(LinearAlgebra/QuadraticForm/Basic) : Generalise `QuadraticForm` to `QuadraticMap` (#7569) Most of the theory in `LinearAlgebra/QuadraticForm/Basic` also holds for Quadratic Maps with minimal modification. A quadratic form is just a special case of a quadratic map. To keep this PR to a reasonable size I have not attempted to generalise other files in `LinearAlgebra/QuadraticForm` - this can be done in subsequent PRs. To facilitate dot notation we also introduce `LinearMap.BilinMap` as an abbreviation for `M →ₗ[R] M →ₗ[R] N`. No attempt has been made to generalise all `BilinForm` results to `BilinMap` at this stage. Some results in `LinearAlgebra/QuadraticForm/Basic` are still stated for quadratic forms either because there was no obvious generalisation to quadratic maps, or the generalisation requires improvements elsewhere in Mathlib which can be considered in subsequent PRs. My motivation for introducing Quadratic Maps to Mathlib is that it would allow the definition of interesting non-associative structures such as quadratic Jordan Algebras and Jordan Pairs. ESTIMATED CHANGES Modified Counterexamples/CliffordAlgebraNotInjective.lean +/- theorem Q60596.Q_not_in_range_toQuadraticForm Modified Counterexamples/QuadraticForm.lean Modified Mathlib/LinearAlgebra/BilinearForm/TensorProduct.lean - theorem LinearMap.BilinForm.IsSymm.baseChange - theorem LinearMap.BilinForm.baseChange_tmul - def LinearMap.BilinForm.tensorDistrib - theorem LinearMap.BilinForm.tensorDistribEquiv_apply - theorem LinearMap.BilinForm.tensorDistribEquiv_tmul - theorem LinearMap.BilinForm.tensorDistribEquiv_toLinearMap - theorem LinearMap.BilinForm.tensorDistrib_tmul + theorem LinearMap.BilinMap.IsSymm.baseChange + theorem LinearMap.BilinMap.baseChange_tmul + def LinearMap.BilinMap.tensorDistrib + theorem LinearMap.BilinMap.tensorDistribEquiv_apply + theorem LinearMap.BilinMap.tensorDistribEquiv_tmul + theorem LinearMap.BilinMap.tensorDistribEquiv_toLinearMap + theorem LinearMap.BilinMap.tensorDistrib_tmul +/- theorem LinearMap.IsSymm.tmul Modified Mathlib/LinearAlgebra/BilinearMap.lean Modified Mathlib/LinearAlgebra/CliffordAlgebra/BaseChange.lean Modified Mathlib/LinearAlgebra/CliffordAlgebra/Basic.lean Modified Mathlib/LinearAlgebra/CliffordAlgebra/Contraction.lean +/- theorem CliffordAlgebra.changeForm.add_proof +/- theorem CliffordAlgebra.changeForm.neg_proof +/- theorem CliffordAlgebra.changeForm.zero_proof +/- def CliffordAlgebra.changeForm Modified Mathlib/LinearAlgebra/CliffordAlgebra/Equivs.lean Modified Mathlib/LinearAlgebra/CliffordAlgebra/EvenEquiv.lean Modified Mathlib/LinearAlgebra/CliffordAlgebra/Inversion.lean Modified Mathlib/LinearAlgebra/CliffordAlgebra/Prod.lean Modified Mathlib/LinearAlgebra/Matrix/PosDef.lean Modified Mathlib/LinearAlgebra/QuadraticForm/Basic.lean - theorem LinearMap.BilinForm.compQuadraticForm_polar - theorem LinearMap.BilinForm.compQuadraticForm_polarBilin +/- theorem LinearMap.BilinForm.exists_orthogonal_basis - theorem LinearMap.BilinForm.polarBilin_toQuadraticForm - theorem LinearMap.BilinForm.polar_toQuadraticForm +/- theorem LinearMap.BilinForm.separatingLeft_of_anisotropic - def LinearMap.BilinForm.toQuadraticForm - def LinearMap.BilinForm.toQuadraticFormAddMonoidHom - def LinearMap.BilinForm.toQuadraticFormLinearMap - theorem LinearMap.BilinForm.toQuadraticForm_add - theorem LinearMap.BilinForm.toQuadraticForm_apply - theorem LinearMap.BilinForm.toQuadraticForm_comp_same - theorem LinearMap.BilinForm.toQuadraticForm_eq_zero - theorem LinearMap.BilinForm.toQuadraticForm_isOrtho - theorem LinearMap.BilinForm.toQuadraticForm_list_sum - theorem LinearMap.BilinForm.toQuadraticForm_multiset_sum - theorem LinearMap.BilinForm.toQuadraticForm_neg - theorem LinearMap.BilinForm.toQuadraticForm_smul - theorem LinearMap.BilinForm.toQuadraticForm_sub - theorem LinearMap.BilinForm.toQuadraticForm_sum - theorem LinearMap.BilinForm.toQuadraticForm_zero + theorem LinearMap.BilinForm.toQuadraticMap_isOrtho + theorem LinearMap.BilinMap.polarBilin_toQuadraticMap + theorem LinearMap.BilinMap.polar_toQuadraticMap + def LinearMap.BilinMap.toQuadraticMap + def LinearMap.BilinMap.toQuadraticMapAddMonoidHom + def LinearMap.BilinMap.toQuadraticMapLinearMap + theorem LinearMap.BilinMap.toQuadraticMap_add + theorem LinearMap.BilinMap.toQuadraticMap_apply + theorem LinearMap.BilinMap.toQuadraticMap_comp_same + theorem LinearMap.BilinMap.toQuadraticMap_eq_zero + theorem LinearMap.BilinMap.toQuadraticMap_list_sum + theorem LinearMap.BilinMap.toQuadraticMap_multiset_sum + theorem LinearMap.BilinMap.toQuadraticMap_neg + theorem LinearMap.BilinMap.toQuadraticMap_smul + theorem LinearMap.BilinMap.toQuadraticMap_sub + theorem LinearMap.BilinMap.toQuadraticMap_sum + theorem LinearMap.BilinMap.toQuadraticMap_zero - def LinearMap.compQuadraticForm + def LinearMap.compQuadraticMap' + def LinearMap.compQuadraticMap + theorem LinearMap.compQuadraticMap_polar + theorem LinearMap.compQuadraticMap_polarBilin - def Matrix.toQuadraticForm' + def Matrix.toQuadraticMap' - theorem QuadraticForm.Anisotropic.eq_zero_iff - def QuadraticForm.Anisotropic - theorem QuadraticForm.IsOrtho.all - theorem QuadraticForm.IsOrtho.polar_eq_zero - theorem QuadraticForm.IsOrtho.zero_left - theorem QuadraticForm.IsOrtho.zero_right - def QuadraticForm.IsOrtho - theorem QuadraticForm.PosDef.add - theorem QuadraticForm.PosDef.anisotropic - theorem QuadraticForm.PosDef.nonneg - theorem QuadraticForm.PosDef.smul - def QuadraticForm.PosDef - theorem QuadraticForm.add_apply - theorem QuadraticForm.add_linMulLin - def QuadraticForm.associatedHom - theorem QuadraticForm.associated_apply - theorem QuadraticForm.associated_comp - theorem QuadraticForm.associated_eq_self_apply - theorem QuadraticForm.associated_isOrtho - theorem QuadraticForm.associated_isSymm - theorem QuadraticForm.associated_left_inverse - theorem QuadraticForm.associated_linMulLin - theorem QuadraticForm.associated_rightInverse - theorem QuadraticForm.associated_sq - theorem QuadraticForm.associated_toQuadraticForm - theorem QuadraticForm.basisRepr_apply - theorem QuadraticForm.basisRepr_eq_of_iIsOrtho - theorem QuadraticForm.choose_exists_companion - def QuadraticForm.coeFnAddMonoidHom - theorem QuadraticForm.coeFn_add - theorem QuadraticForm.coeFn_neg - theorem QuadraticForm.coeFn_smul - theorem QuadraticForm.coeFn_sub - theorem QuadraticForm.coeFn_sum - theorem QuadraticForm.coeFn_zero - theorem QuadraticForm.coe_associatedHom - theorem QuadraticForm.coe_copy - def QuadraticForm.comp - theorem QuadraticForm.comp_apply - theorem QuadraticForm.congr_fun - theorem QuadraticForm.copy_eq - def QuadraticForm.discr - theorem QuadraticForm.discr_comp - theorem QuadraticForm.discr_smul - def QuadraticForm.evalAddMonoidHom - theorem QuadraticForm.exists_companion - theorem QuadraticForm.exists_quadraticForm_ne_zero - theorem QuadraticForm.ext - theorem QuadraticForm.ext_iff - theorem QuadraticForm.isOrtho_comm - theorem QuadraticForm.isOrtho_def - theorem QuadraticForm.isOrtho_polarBilin - theorem QuadraticForm.isSymm_toMatrix' - def QuadraticForm.linMulLin - theorem QuadraticForm.linMulLinSelfPosDef - theorem QuadraticForm.linMulLin_add - theorem QuadraticForm.linMulLin_apply - theorem QuadraticForm.linMulLin_comp - theorem QuadraticForm.map_add_add_add_map - theorem QuadraticForm.map_add_self - theorem QuadraticForm.map_neg - theorem QuadraticForm.map_smul - theorem QuadraticForm.map_smul_of_tower - theorem QuadraticForm.map_sub - theorem QuadraticForm.ne_zero_of_not_isOrtho_self - theorem QuadraticForm.neg_apply - theorem QuadraticForm.not_anisotropic_iff_exists - def QuadraticForm.ofPolar - def QuadraticForm.polar - def QuadraticForm.polarBilin - theorem QuadraticForm.polarBilin_comp - theorem QuadraticForm.polarBilin_injective - theorem QuadraticForm.polar_add - theorem QuadraticForm.polar_add_left - theorem QuadraticForm.polar_add_left_iff - theorem QuadraticForm.polar_add_right - theorem QuadraticForm.polar_comm - theorem QuadraticForm.polar_comp - theorem QuadraticForm.polar_neg - theorem QuadraticForm.polar_neg_left - theorem QuadraticForm.polar_neg_right - theorem QuadraticForm.polar_self - theorem QuadraticForm.polar_smul - theorem QuadraticForm.polar_smul_left - theorem QuadraticForm.polar_smul_left_of_tower - theorem QuadraticForm.polar_smul_right - theorem QuadraticForm.polar_smul_right_of_tower - theorem QuadraticForm.polar_sub_left - theorem QuadraticForm.polar_sub_right - theorem QuadraticForm.polar_zero_left - theorem QuadraticForm.polar_zero_right - theorem QuadraticForm.posDef_iff_nonneg - theorem QuadraticForm.posDef_of_nonneg - def QuadraticForm.proj - theorem QuadraticForm.proj_apply - theorem QuadraticForm.separatingLeft_of_anisotropic - theorem QuadraticForm.smul_apply - def QuadraticForm.sq - theorem QuadraticForm.sub_apply - theorem QuadraticForm.sum_apply - theorem QuadraticForm.toFun_eq_coe - def QuadraticForm.toMatrix' - theorem QuadraticForm.toMatrix'_comp - theorem QuadraticForm.toMatrix'_smul - theorem QuadraticForm.toQuadraticForm_associated - theorem QuadraticForm.toQuadraticForm_polarBilin - theorem QuadraticForm.two_nsmul_associated - def QuadraticForm.weightedSumSquares - theorem QuadraticForm.weightedSumSquares_apply - theorem QuadraticForm.zero_apply - structure QuadraticForm + theorem QuadraticMap.Anisotropic.eq_zero_iff + def QuadraticMap.Anisotropic + theorem QuadraticMap.IsOrtho.all + theorem QuadraticMap.IsOrtho.polar_eq_zero + theorem QuadraticMap.IsOrtho.zero_left + theorem QuadraticMap.IsOrtho.zero_right + def QuadraticMap.IsOrtho + theorem QuadraticMap.PosDef.add + theorem QuadraticMap.PosDef.anisotropic + theorem QuadraticMap.PosDef.nonneg + theorem QuadraticMap.PosDef.smul + def QuadraticMap.PosDef + theorem QuadraticMap.add_apply + theorem QuadraticMap.add_linMulLin + def QuadraticMap.associatedHom + theorem QuadraticMap.associated_apply + theorem QuadraticMap.associated_comp + theorem QuadraticMap.associated_eq_self_apply + theorem QuadraticMap.associated_isOrtho + theorem QuadraticMap.associated_isSymm + theorem QuadraticMap.associated_left_inverse + theorem QuadraticMap.associated_linMulLin + theorem QuadraticMap.associated_rightInverse + theorem QuadraticMap.associated_sq + theorem QuadraticMap.associated_toQuadraticMap + theorem QuadraticMap.basisRepr_apply + theorem QuadraticMap.basisRepr_eq_of_iIsOrtho + theorem QuadraticMap.choose_exists_companion + def QuadraticMap.coeFnAddMonoidHom + theorem QuadraticMap.coeFn_add + theorem QuadraticMap.coeFn_neg + theorem QuadraticMap.coeFn_smul + theorem QuadraticMap.coeFn_sub + theorem QuadraticMap.coeFn_sum + theorem QuadraticMap.coeFn_zero + theorem QuadraticMap.coe_associatedHom + theorem QuadraticMap.coe_copy + def QuadraticMap.comp + theorem QuadraticMap.comp_apply + theorem QuadraticMap.congr_fun + theorem QuadraticMap.copy_eq + def QuadraticMap.discr + theorem QuadraticMap.discr_comp + theorem QuadraticMap.discr_smul + def QuadraticMap.evalAddMonoidHom + theorem QuadraticMap.exists_companion + theorem QuadraticMap.exists_quadraticForm_ne_zero + theorem QuadraticMap.ext + theorem QuadraticMap.ext_iff + theorem QuadraticMap.isOrtho_comm + theorem QuadraticMap.isOrtho_def + theorem QuadraticMap.isOrtho_polarBilin + theorem QuadraticMap.isSymm_toMatrix' + def QuadraticMap.linMulLin + theorem QuadraticMap.linMulLinSelfPosDef + theorem QuadraticMap.linMulLin_add + theorem QuadraticMap.linMulLin_apply + theorem QuadraticMap.linMulLin_comp + theorem QuadraticMap.map_add_add_add_map + theorem QuadraticMap.map_add_self + theorem QuadraticMap.map_neg + theorem QuadraticMap.map_smul + theorem QuadraticMap.map_smul_of_tower + theorem QuadraticMap.map_sub + theorem QuadraticMap.ne_zero_of_not_isOrtho_self + theorem QuadraticMap.neg_apply + theorem QuadraticMap.not_anisotropic_iff_exists + def QuadraticMap.ofPolar + def QuadraticMap.polar + def QuadraticMap.polarBilin + theorem QuadraticMap.polarBilin_comp + theorem QuadraticMap.polarBilin_injective + theorem QuadraticMap.polar_add + theorem QuadraticMap.polar_add_left + theorem QuadraticMap.polar_add_left_iff + theorem QuadraticMap.polar_add_right + theorem QuadraticMap.polar_comm + theorem QuadraticMap.polar_comp + theorem QuadraticMap.polar_neg + theorem QuadraticMap.polar_neg_left + theorem QuadraticMap.polar_neg_right + theorem QuadraticMap.polar_self + theorem QuadraticMap.polar_smul + theorem QuadraticMap.polar_smul_left + theorem QuadraticMap.polar_smul_left_of_tower + theorem QuadraticMap.polar_smul_right + theorem QuadraticMap.polar_smul_right_of_tower + theorem QuadraticMap.polar_sub_left + theorem QuadraticMap.polar_sub_right + theorem QuadraticMap.polar_zero_left + theorem QuadraticMap.polar_zero_right + theorem QuadraticMap.posDef_iff_nonneg + theorem QuadraticMap.posDef_of_nonneg + def QuadraticMap.proj + theorem QuadraticMap.proj_apply + def QuadraticMap.restrictScalars + theorem QuadraticMap.separatingLeft_of_anisotropic + theorem QuadraticMap.smul_apply + def QuadraticMap.sq + theorem QuadraticMap.sub_apply + theorem QuadraticMap.sum_apply + theorem QuadraticMap.toFun_eq_coe + def QuadraticMap.toMatrix' + theorem QuadraticMap.toMatrix'_comp + theorem QuadraticMap.toMatrix'_smul + theorem QuadraticMap.toQuadraticMap_associated + theorem QuadraticMap.toQuadraticMap_polarBilin + theorem QuadraticMap.two_nsmul_associated + def QuadraticMap.weightedSumSquares + theorem QuadraticMap.weightedSumSquares_apply + theorem QuadraticMap.zero_apply + structure QuadraticMap Modified Mathlib/LinearAlgebra/QuadraticForm/Complex.lean Modified Mathlib/LinearAlgebra/QuadraticForm/Dual.lean Modified Mathlib/LinearAlgebra/QuadraticForm/IsometryEquiv.lean Modified Mathlib/LinearAlgebra/QuadraticForm/Prod.lean Modified Mathlib/LinearAlgebra/QuadraticForm/QuadraticModuleCat/Monoidal.lean Modified Mathlib/LinearAlgebra/QuadraticForm/Real.lean Modified Mathlib/LinearAlgebra/QuadraticForm/TensorProduct.lean Modified Mathlib/LinearAlgebra/QuadraticForm/TensorProduct/Isometries.lean Modified docs/overview.yaml Modified docs/undergrad.yaml Modified scripts/nolints.json Modified test/TCSynth.lean 2024-07-13 16:27:04 b4502d4 feat: make nonZeroDivisors.coe_ne_zero simp (#14637) Make `nonZeroDivisors.ne_zero` `@[simp]` ESTIMATED CHANGES Modified Mathlib/Algebra/GroupWithZero/NonZeroDivisors.lean Modified Mathlib/RingTheory/FractionalIdeal/Norm.lean 2024-07-13 15:29:35 f445d48 feat(RingTheory/TensorProduct/Basic): Lifting linear maps to base change (#14374) ESTIMATED CHANGES Modified Mathlib/RingTheory/TensorProduct/Basic.lean + def LinearMap.liftBaseChangeEquiv + theorem LinearMap.liftBaseChangeEquiv_symm_apply + theorem LinearMap.liftBaseChange_comp + theorem LinearMap.liftBaseChange_one_tmul + theorem LinearMap.liftBaseChange_tmul + theorem LinearMap.range_liftBaseChange 2024-07-13 13:40:23 e860683 refactor: improvements to lint_style (#14676) To prepare for #14273; pulled out for easy of reviewing. Commits can be reviewed individually. ESTIMATED CHANGES Modified Mathlib/Tactic/Linter/TextBased.lean - def lintAllFiles +/- def lintFile + def lintModules Modified scripts/lint_style.lean 2024-07-13 13:40:22 4ffab45 style(Mathlib/Tactic/Congr!): rename `Congr!.lean` to `CongrExclamation.lean` to avoid the illegal character `!` (#13280) I renamed `Clear!.lean` to `ClearExclamation.lean` to avoid the illegal character in nixOS: `!` in #12757. However, there is another file which contains `!`. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Tactic.lean Modified Mathlib/Tactic/Common.lean Renamed Mathlib/Tactic/Congr!.lean to Mathlib/Tactic/CongrExclamation.lean Modified Mathlib/Tactic/Convert.lean Modified Mathlib/Tactic/TermCongr.lean Modified scripts/noshake.json Modified test/congr.lean 2024-07-13 12:38:22 433fb11 chore: remove autoImplicit in Util (#14694) All of them were easy to remove. Also remove on occurrence in Init/Logic which was not needed. ESTIMATED CHANGES Modified Mathlib/Init/Logic.lean Modified Mathlib/Util/AtomM.lean +/- def Mathlib.Tactic.AtomM.run Modified Mathlib/Util/Export.lean +/- def Lean.Export.runExportM Modified Mathlib/Util/MemoFix.lean Modified Mathlib/Util/Qq.lean +/- theorem Qq.QuotedDefEq.rfl Modified Mathlib/Util/Superscript.lean Modified Mathlib/Util/Tactic.lean Modified Mathlib/Util/WithWeakNamespace.lean +/- def Lean.Elab.Command.withWeakNamespace 2024-07-13 11:59:20 0512d46 doc: fix definition names in GCDMonoid.Basic (#14703) ESTIMATED CHANGES Modified Mathlib/Algebra/GCDMonoid/Basic.lean 2024-07-13 09:51:33 fa54a2c chore(Integral/Lebesgue): golf (#14700) Reuse `measure_eq_top_of_lintegral_ne_top` in the proof of `ae_lt_top'` ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Integral/Lebesgue.lean 2024-07-13 07:32:21 ce2899f feat: a replacement for `Nat.leRecOn'` that works with `induction` (#14431) Before this PR, we had: * `theorem Nat.le.rec`: induct on `a ≤ b`, but using an annoying `a.le b` spelling * `theorem Nat.le_induction`: induct on `a ≤ b` * `def Nat.leRecOn'`, which is `Nat.le.rec` that works in `Sort*` but does not work with the `induction` keyword. There are no lemmas about this definition. * `def Nat.leRecOn`, a weaker version of `Nat.leRecOn'` that also doesn't work with `induction`. There are lots of lemmas about this definition This PR introduces `Nat.leRec`, which is a `Sort*`-valued version of `Nat.le.rec`, with a signature that coincides in the `Prop` case. Where appropriate, the lemmas about `Nat.leRecOn` are recovered as special cases of lemmas about this new definition. `Nat.leRecOn'` is then deprecated, as it is strictly less useful than `Nat.leRec`. This also changes the signature of `Nat.decreasingInduction` to be usable with the `induction` tactic, with no deprecated alias since there are very few uses. `Nat.decreasingInduction'` is left alone, as it is unclear to me how to state it in a way understood by `induction`. ESTIMATED CHANGES Modified Mathlib/Data/Nat/Choose/Basic.lean Modified Mathlib/Data/Nat/Defs.lean +/- def Nat.decreasingInduction +/- theorem Nat.decreasingInduction_self +/- theorem Nat.decreasingInduction_succ' +/- theorem Nat.decreasingInduction_succ +/- theorem Nat.decreasingInduction_succ_left +/- theorem Nat.decreasingInduction_trans + def Nat.leRec +/- def Nat.leRecOn' +/- def Nat.leRecOn +/- theorem Nat.leRecOn_succ_left + theorem Nat.leRec_eq_leRec + theorem Nat.leRec_self + theorem Nat.leRec_succ' + theorem Nat.leRec_succ + theorem Nat.leRec_succ_left + theorem Nat.leRec_trans Modified Mathlib/FieldTheory/IsAlgClosed/AlgebraicClosure.lean Modified Mathlib/LinearAlgebra/Matrix/Transvection.lean Modified Mathlib/Order/Interval/Finset/Nat.lean 2024-07-13 02:59:28 9d09e65 docs(Data/Finset/Basic): fix docstring referring to other files (#14692) This PR fixes docstring referring to other files. Originally they were `Mathlib.XXX.XXX`, but according to doc-gen4, to make them work correctly, they should be `Mathlib/XXX/XXX.lean`. ESTIMATED CHANGES Modified Mathlib/Data/Finset/Basic.lean 2024-07-13 02:59:27 4bd8d80 docs: fix references.bib (#14689) This PR removes `\url` and `\_` commands in `references.bib`. The existence of them breaks https://github.com/leanprover/doc-gen4/pull/209. - The first is `howpublished = {\url{...}}`. I think it's better to use the standard `url` field. Meanwhile `howpublished` field is preserved since some bibtex parser complains about missing that field. - There are some `\_` in `url` and `doi` fields. I think it's better to replace them with `_`; there are already some `_` in `url` and `doi` fields of other bibitems. - There is `$K\_X$`, but which, after checking the original article, should be `$K_X$`. ESTIMATED CHANGES Modified docs/references.bib 2024-07-13 02:04:13 edcb1f9 chore: remove unused lemmas about bit0/1 (#14678) ESTIMATED CHANGES Modified Mathlib/Algebra/CharZero/Lemmas.lean - theorem bit0_eq_bit0 - theorem bit0_injective - theorem bit1_eq_bit1 - theorem bit1_eq_one - theorem bit1_injective - theorem one_eq_bit1 Modified Mathlib/Data/Fin/Basic.lean - theorem Fin.mk_bit0 - theorem Fin.mk_bit1 - theorem Fin.val_bit0 - theorem Fin.val_bit1 2024-07-13 01:16:09 44a0195 feat(GroupTheory/GroupAction): Add theorem for `smul` of `toConjAct` (#14673) Add the theorem `toConjAct_smul` as discussed in #13930. This shows that `toConjAct g • h` is equal to `g * h * g⁻¹`. ESTIMATED CHANGES Modified Mathlib/GroupTheory/GroupAction/ConjAct.lean + theorem ConjAct.toConjAct_smul 2024-07-13 01:16:07 8cf527b style: fix some double spaces (#14662) All remaining occurrences of ` : ` are about manually aligning things. This PR also found a few instances where this alignment was broken, and either removes the double spaces or restores the alignment. ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/NonUnitalHom.lean Modified Mathlib/Algebra/Algebra/Operations.lean Modified Mathlib/Algebra/Homology/HomologicalComplex.lean Modified Mathlib/Algebra/Homology/ShortComplex/SnakeLemma.lean Modified Mathlib/Algebra/Module/LocalizedModule.lean Modified Mathlib/Analysis/NormedSpace/PiTensorProduct/InjectiveSeminorm.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Countable.lean +/- theorem CategoryTheory.Limits.sequentialFunctor_map Modified Mathlib/Combinatorics/SetFamily/FourFunctions.lean +/- theorem collapse_of_mem Modified Mathlib/Computability/Encoding.lean Modified Mathlib/Data/Nat/SuccPred.lean Modified Mathlib/GroupTheory/PushoutI.lean Modified Mathlib/MeasureTheory/Integral/Bochner.lean Modified Mathlib/RingTheory/FreeCommRing.lean Modified Mathlib/RingTheory/Polynomial/Eisenstein/IsIntegral.lean Modified Mathlib/SetTheory/Ordinal/FixedPointApproximants.lean +/- theorem OrdinalApprox.gfp_mem_range_gfpApprox Modified Mathlib/Tactic/FunProp/Theorems.lean Modified Mathlib/Tactic/FunProp/Types.lean Modified Mathlib/Tactic/Linarith/Frontend.lean Modified Mathlib/Tactic/NormNum/Core.lean Modified Mathlib/Topology/Category/Stonean/Limits.lean +/- def Stonean.pullback.isLimit 2024-07-13 01:16:06 fb97564 refactor: give `edist_dist` a default value (#14651) ESTIMATED CHANGES Modified Mathlib/Analysis/Complex/UpperHalfPlane/Metric.lean Modified Mathlib/Analysis/Convex/Body.lean Modified Mathlib/Analysis/Normed/Group/AddTorsor.lean Modified Mathlib/InformationTheory/Hamming.lean Modified Mathlib/NumberTheory/Padics/PadicNumbers.lean Modified Mathlib/Topology/Algebra/Valued/NormedValued.lean Modified Mathlib/Topology/MetricSpace/Basic.lean Modified Mathlib/Topology/MetricSpace/Completion.lean Modified Mathlib/Topology/MetricSpace/Gluing.lean Modified Mathlib/Topology/MetricSpace/GromovHausdorff.lean Modified Mathlib/Topology/MetricSpace/PiNat.lean Modified Mathlib/Topology/MetricSpace/Pseudo/Defs.lean 2024-07-13 00:30:09 c6a9359 chore(BigOperators/Ring): generalize `Fintype.sum_mul_sum` (#14683) Moving the lemma generalizes the typeclass assumptions from `[CommSemiring α]` to `[NonUnitalNonAssocSemiring α]`. ESTIMATED CHANGES Modified Mathlib/Algebra/BigOperators/Ring.lean +/- theorem Fintype.sum_mul_sum 2024-07-12 23:56:50 8e7020a feat(MeasureTheory): drop measurability assumptions here and there (#14680) ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Constructions/Prod/Basic.lean Modified Mathlib/MeasureTheory/Decomposition/RadonNikodym.lean Modified Mathlib/MeasureTheory/Function/AEEqOfIntegral.lean - theorem MeasureTheory.ae_nonneg_of_forall_setIntegral_nonneg_of_stronglyMeasurable Modified Mathlib/MeasureTheory/Function/ConditionalExpectation/Real.lean Modified Mathlib/MeasureTheory/Integral/Lebesgue.lean +/- theorem MeasureTheory.setLIntegral_lt_top_of_isCompact + theorem MeasureTheory.setLIntegral_lt_top_of_le_nnreal +/- theorem MeasureTheory.setLIntegral_mono +/- theorem MeasureTheory.setLIntegral_mono_ae Modified Mathlib/MeasureTheory/Integral/SetIntegral.lean +/- theorem MeasureTheory.setIntegral_gt_gt Modified Mathlib/MeasureTheory/Measure/LogLikelihoodRatio.lean Modified Mathlib/MeasureTheory/Measure/Tilted.lean +/- theorem MeasureTheory.rnDeriv_tilted_left Modified Mathlib/MeasureTheory/Measure/WithDensity.lean - theorem MeasureTheory.SigmaFinite.withDensity - theorem MeasureTheory.SigmaFinite.withDensity_ofReal +/- theorem MeasureTheory.SigmaFinite.withDensity_of_ne_top' - theorem MeasureTheory.withDensity_eq_zero Modified Mathlib/MeasureTheory/Measure/WithDensityFinite.lean Modified Mathlib/Probability/Kernel/Disintegration/CondCdf.lean 2024-07-12 22:59:14 de62025 feat(Decomposition/Lebesgue): `SigmaFinite -> SFinite` (#14658) Also generalize `exists_absolutelyContinuous_isFiniteMeasure` and some downstream lemmas. Deletions: - MeasureTheory.Measure.restrict.instIsFiniteMeasure ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Covering/Besicovitch.lean +/- theorem Besicovitch.exists_closedBall_covering_tsum_measure_le +/- theorem Besicovitch.exists_disjoint_closedBall_covering_ae +/- theorem Besicovitch.exists_disjoint_closedBall_covering_ae_aux +/- theorem Besicovitch.tendsto_filterAt Modified Mathlib/MeasureTheory/Decomposition/Lebesgue.lean + theorem MeasureTheory.Measure.HaveLebesgueDecomposition.sfinite_of_isFiniteMeasure Modified Mathlib/MeasureTheory/Decomposition/RadonNikodym.lean +/- theorem MeasureTheory.Measure.rnDeriv_pos' Modified Mathlib/MeasureTheory/Integral/Layercake.lean Modified Mathlib/MeasureTheory/MeasurableSpace/Basic.lean Modified Mathlib/MeasureTheory/Measure/Lebesgue/Basic.lean +/- theorem volume_regionBetween_eq_lintegral Modified Mathlib/MeasureTheory/Measure/Portmanteau.lean +/- theorem MeasureTheory.exists_null_frontier_thickening +/- theorem MeasureTheory.exists_null_frontiers_thickening Modified Mathlib/MeasureTheory/Measure/Typeclasses.lean + theorem MeasureTheory.exists_absolutelyContinuous_isFiniteMeasure +/- theorem MeasureTheory.sum_restrict_disjointed_spanningSets Modified Mathlib/MeasureTheory/Measure/WithDensity.lean - theorem MeasureTheory.exists_absolutelyContinuous_isFiniteMeasure +/- theorem MeasureTheory.withDensity_tsum 2024-07-12 20:12:34 e539139 feat: Translation of affine bases (#14682) Provide the additive action of a module `V` over the `k`-affine bases of a `V`-torsor `P`. ESTIMATED CHANGES Modified Mathlib/Data/Set/Pointwise/SMul.lean + theorem Set.range_mul + theorem Set.range_smul +/- theorem Set.smul_set_range Modified Mathlib/LinearAlgebra/AffineSpace/Basis.lean + theorem AffineBasis.basisOf_vadd + theorem AffineBasis.coe_vadd + theorem AffineBasis.coord_vadd Modified Mathlib/LinearAlgebra/AffineSpace/Combination.lean + theorem Finset.weightedVSubOfPoint_vadd + theorem Finset.weightedVSub_vadd Modified Mathlib/LinearAlgebra/AffineSpace/Independent.lean + theorem affineIndependent_vadd Modified Mathlib/LinearAlgebra/AffineSpace/Pointwise.lean +/- theorem AffineSubspace.pointwise_vadd_bot + theorem AffineSubspace.pointwise_vadd_top 2024-07-12 17:57:16 4bbd5e4 chore: update Mathlib dependencies 2024-07-12 (#14681) This PR updates the Mathlib dependencies. ESTIMATED CHANGES 2024-07-12 17:57:15 c0af29f chore: Move more lemmas to `Algebra.Group.Action.Defs` (#14677) Those will be needed in a future file `Algebra.GroupWithZero.Action.Defs` ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Action/Defs.lean + theorem Commute.smul_left_iff + theorem Commute.smul_right_iff + theorem eq_inv_smul_iff + theorem inv_smul_eq_iff + theorem inv_smul_smul + theorem smul_inv + theorem smul_inv_smul + theorem smul_zpow Modified Mathlib/Dynamics/PeriodicPts.lean Modified Mathlib/GroupTheory/GroupAction/Group.lean - theorem Commute.smul_left_iff - theorem Commute.smul_right_iff - theorem eq_inv_smul_iff - theorem inv_smul_eq_iff - theorem inv_smul_smul - theorem smul_inv - theorem smul_inv_smul - theorem smul_zpow 2024-07-12 17:08:22 1968eab chore: update Mathlib dependencies 2024-07-12 (#14679) This PR updates the Mathlib dependencies. ESTIMATED CHANGES Modified lake-manifest.json 2024-07-12 15:32:33 d419680 chore: remove spaces in binders (#14664) These were found by the linter at #14379. ESTIMATED CHANGES Modified Mathlib/Algebra/RingQuot.lean Modified Mathlib/CategoryTheory/Bicategory/Functor/Lax.lean +/- theorem CategoryTheory.LaxFunctor.map₂_leftUnitor_hom Modified Mathlib/CategoryTheory/Comma/Over.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Equalizers.lean Modified Mathlib/GroupTheory/GroupAction/Hom.lean +/- theorem MulActionHom.comp_inverse' +/- theorem MulActionHom.inverse'_comp Modified Mathlib/MeasureTheory/Measure/Typeclasses.lean +/- theorem MeasureTheory.Measure.countable_meas_pos_of_disjoint_iUnion₀ Modified Mathlib/Order/Hom/CompleteLattice.lean Modified Mathlib/Topology/Algebra/InfiniteSum/NatInt.lean Modified test/congr.lean Modified test/hint.lean 2024-07-12 14:36:01 b355a7a feat: Lemmas `DifferentiableAt.add_iff_left`, `DifferentiableAt.add_iff_right` (#14593) Given a function differentiable at a point, the result of adding a second function is differentiable (there) iff the second function is differentiable (there). ESTIMATED CHANGES Modified Mathlib/Analysis/Calculus/FDeriv/Add.lean + theorem Differentiable.add_iff_left + theorem Differentiable.add_iff_right + theorem Differentiable.sub_iff_left + theorem Differentiable.sub_iff_right + theorem DifferentiableAt.add_iff_left + theorem DifferentiableAt.add_iff_right + theorem DifferentiableAt.sub_iff_left + theorem DifferentiableAt.sub_iff_right + theorem DifferentiableOn.add_iff_left + theorem DifferentiableOn.add_iff_right + theorem DifferentiableOn.sub_iff_left + theorem DifferentiableOn.sub_iff_right Modified Mathlib/Analysis/Calculus/FDeriv/Basic.lean Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/InverseDeriv.lean 2024-07-12 14:35:59 6bfe732 feat(AlgebraicGeometry/PrimeSpectrum): Prime spectrum of products of rings. (#14550) ESTIMATED CHANGES Modified Mathlib/AlgebraicGeometry/PrimeSpectrum/Basic.lean + def PrimeSpectrum.primeSpectrumProdHomeo + theorem PrimeSpectrum.primeSpectrumProd_symm_inl + theorem PrimeSpectrum.primeSpectrumProd_symm_inr Modified Mathlib/Topology/Constructions.lean + theorem isClosedMap_sum 2024-07-12 14:35:58 2f97af5 feat: basic results about `Finset.sym2` (#14212) ESTIMATED CHANGES Modified Mathlib/Data/Finset/Sym.lean + theorem Finset.sym2_cons + theorem Finset.sym2_image + theorem Finset.sym2_insert + theorem Finset.sym2_map Modified Mathlib/Data/List/Sym.lean + theorem List.dedup_sym2 + theorem List.map_mk_disjoint_sym2 + theorem List.map_mk_sublist_sym2 + theorem List.sym2_map Modified Mathlib/Data/Multiset/Sym.lean + theorem Multiset.dedup_sym2 + theorem Multiset.sym2_cons + theorem Multiset.sym2_map + theorem Multiset.sym2_zero Modified Mathlib/Data/Sym/Sym2.lean + def Function.Embedding.sym2Map + def Sym2.mkEmbedding 2024-07-12 14:35:57 c205716 feat(SpecialFunctions/Log): Add extended exp (#14107) We define an extended version of the exponential from `EReal` to `ENNReal` and prove some properties in relation to the extended log. - [x] Rename `ENNReal.lean` to `ENNRealLog.lean` - [x] Add `ENNRealExp.lean` - [x] Add `ENNRealLogExp.lean` See [this](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/Porting.20TopologicalEntropy.20into.20Mathlib/near/446665481) Zulip discussion. ESTIMATED CHANGES Modified Mathlib.lean Renamed Mathlib/Analysis/SpecialFunctions/Log/ENNReal.lean to Mathlib/Analysis/SpecialFunctions/Log/ENNRealLog.lean + theorem ENNReal.bot_lt_log_iff - theorem ENNReal.log_bot_lt_iff - theorem ENNReal.log_continuous +/- theorem ENNReal.log_eq_bot_iff +/- theorem ENNReal.log_eq_one_iff +/- theorem ENNReal.log_eq_top_iff - theorem ENNReal.log_homeomorph_apply +/- theorem ENNReal.log_injective + theorem ENNReal.log_inv - theorem ENNReal.log_le_iff_le + theorem ENNReal.log_le_log_iff - theorem ENNReal.log_le_one_iff + theorem ENNReal.log_le_zero_iff - theorem ENNReal.log_lt_iff_lt + theorem ENNReal.log_lt_log_iff - theorem ENNReal.log_lt_one_iff +/- theorem ENNReal.log_lt_top_iff + theorem ENNReal.log_lt_zero_iff +/- theorem ENNReal.log_monotone + theorem ENNReal.log_ofReal + theorem ENNReal.log_ofReal_of_pos +/- theorem ENNReal.log_one - theorem ENNReal.log_one_le_iff - theorem ENNReal.log_one_lt_iff - theorem ENNReal.log_orderIso_apply +/- theorem ENNReal.log_top +/- theorem ENNReal.log_zero + theorem ENNReal.zero_le_log_iff + theorem ENNReal.zero_lt_log_iff Added Mathlib/Analysis/SpecialFunctions/Log/ENNRealLogExp.lean + theorem ENNReal.continuous_exp + theorem ENNReal.continuous_log + theorem ENNReal.exp_log + theorem ENNReal.logHomeomorph_apply + theorem ENNReal.logHomeomorph_symm + def ENNReal.logOrderIso + theorem ENNReal.logOrderIso_apply + theorem ENNReal.logOrderIso_symm + theorem ENNReal.measurable_log + theorem EReal.expHomeomorph_apply + theorem EReal.expHomeomorph_symm + def EReal.expOrderIso + theorem EReal.expOrderIso_apply + theorem EReal.expOrderIso_symm + theorem EReal.exp_mul + theorem EReal.exp_nmul + theorem EReal.log_exp + theorem EReal.measurable_exp + theorem Measurable.ennreal_log + theorem Measurable.ereal_exp Added Mathlib/Analysis/SpecialFunctions/Log/ERealExp.lean + def EReal.exp + theorem EReal.exp_add + theorem EReal.exp_bot + theorem EReal.exp_coe + theorem EReal.exp_eq_top_iff + theorem EReal.exp_eq_zero_iff + theorem EReal.exp_le_exp_iff + theorem EReal.exp_le_one_iff + theorem EReal.exp_lt_exp_iff + theorem EReal.exp_lt_one_iff + theorem EReal.exp_lt_top_iff + theorem EReal.exp_monotone + theorem EReal.exp_neg + theorem EReal.exp_strictMono + theorem EReal.exp_top + theorem EReal.exp_zero + theorem EReal.one_le_exp_iff + theorem EReal.one_lt_exp_iff + theorem EReal.zero_lt_exp_iff Modified Mathlib/Topology/MetricSpace/Polish.lean 2024-07-12 14:35:56 f8516eb feat: Density of a finset (#11243) The density of a finite set in an ambient group is a quantity of great interest in combinatorics. This PR defines `Finset.dens s` for `s : Finset α` as the size of `s` divided by the size of `α`, with value in any semifield. The API lemmas are copied from `Finset.card` (but not all `Finset.card` lemmas are sensible `Finset.dens` lemmas). From LeanAPAP ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Data/Finset/Card.lean +/- theorem Finset.card_sdiff_add_card Added Mathlib/Data/Finset/Density.lean + def Finset.dens + theorem Finset.dens_cons + theorem Finset.dens_disjUnion + theorem Finset.dens_empty + theorem Finset.dens_eq_card_div_card + theorem Finset.dens_eq_one + theorem Finset.dens_eq_zero + theorem Finset.dens_filter_add_dens_filter_not_eq_dens + theorem Finset.dens_inter_add_dens_sdiff + theorem Finset.dens_inter_add_dens_union + theorem Finset.dens_le_dens + theorem Finset.dens_le_dens_sdiff_add_dens + theorem Finset.dens_lt_dens + theorem Finset.dens_map_le + theorem Finset.dens_mono + theorem Finset.dens_ne_one + theorem Finset.dens_ne_zero + theorem Finset.dens_pos + theorem Finset.dens_sdiff + theorem Finset.dens_sdiff_add_dens + theorem Finset.dens_sdiff_add_dens_eq_dens + theorem Finset.dens_sdiff_add_dens_inter + theorem Finset.dens_sdiff_comm + theorem Finset.dens_singleton + theorem Finset.dens_strictMono + theorem Finset.dens_union_add_dens_inter + theorem Finset.dens_union_le + theorem Finset.dens_union_of_disjoint + theorem Finset.dens_univ + theorem Finset.le_dens_sdiff Modified Mathlib/Tactic/Positivity/Finset.lean + def Mathlib.Meta.Positivity.evalFinsetDens Modified scripts/noshake.json 2024-07-12 13:34:20 d9e0e06 feat(AlgebraicGeometry/Modules/Tilde): construct the tilde sheaf associated to a module (#14231) This PR was done during the AIM workshop Formalizing Algebraic Geometry. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/AlgebraicGeometry/Modules/Tilde.lean + def ModuleCat.Tilde.isFraction + def ModuleCat.Tilde.isFractionPrelocal + def ModuleCat.Tilde.isLocallyFraction + theorem ModuleCat.Tilde.isLocallyFraction_pred + def ModuleCat.Tilde.sectionsSubmodule + theorem ModuleCat.Tilde.sections_smul_localizations_def + def ModuleCat.preTildeInAddCommGrp + def ModuleCat.tildeInAddCommGrp + def ModuleCat.tildeInType 2024-07-12 13:34:18 31c0e2a feat(LightProfinite): define `ℕ∪{∞}` as a light profinite set (#13358) - [x] depends on: #13319 - [x] depends on: #13355 ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Topology/Category/LightProfinite/Sequence.lean + theorem LightProfinite.closedEmbedding_natUnionInftyEmbedding + theorem LightProfinite.continuous_iff_convergent Modified Mathlib/Topology/Metrizable/Basic.lean 2024-07-12 13:34:17 12b4bd7 feat(Topology): restriction of a `QuotientMap` (#13228) ... to the preimage of an open set is a quotient map. ESTIMATED CHANGES Modified Mathlib/Data/Set/Function.lean + theorem Set.image_val_preimage_restrictPreimage + theorem Set.preimage_restrictPreimage + theorem Set.restrictPreimage_mk Modified Mathlib/Topology/Constructions.lean + theorem QuotientMap.restrictPreimage_isOpen Modified Mathlib/Topology/ContinuousOn.lean + theorem QuotientMap.continuousOn_isOpen_iff 2024-07-12 12:01:11 2b726f5 chore: remove `@[simp]` from `List.replicate_succ` (#14527) I may be tilting at windmills, but I've removed `@[simp]` from `List.replicate_succ` in Lean, and I think it results in slightly better simp normal forms in some situations. We don't yet have automatic post-Mathlib testing of simp normal forms, but I hope we will eventually. In the meantime, this removes an inconsistency by cancelling Mathlib's downstream addition of `@[simp]` to `List.replicate.succ`. Mathlib doesn't mind much. ESTIMATED CHANGES Modified Archive/Wiedijk100Theorems/BallotProblem.lean Modified Mathlib/Data/List/Basic.lean Modified Mathlib/Data/List/Duplicate.lean 2024-07-12 11:12:59 e0d8b5b chore: remove unused lemmas about bit0/1 (#14672) ESTIMATED CHANGES Modified Mathlib/Data/Int/Defs.lean - theorem Int.ofNat_bit0 - theorem Int.ofNat_bit1 Modified Mathlib/LinearAlgebra/Matrix/ZPow.lean - theorem Matrix.zpow_bit0' - theorem Matrix.zpow_bit0 - theorem Matrix.zpow_bit1' - theorem Matrix.zpow_bit1 2024-07-12 10:19:51 fffcdb5 fix: rewrite Int.eq_pow_of_mul_eq_pow_* lemmas in terms of Odd (#14671) ESTIMATED CHANGES Modified Mathlib/RingTheory/Int/Basic.lean - theorem Int.eq_pow_of_mul_eq_pow_bit1 - theorem Int.eq_pow_of_mul_eq_pow_bit1_left - theorem Int.eq_pow_of_mul_eq_pow_bit1_right + theorem Int.eq_pow_of_mul_eq_pow_odd + theorem Int.eq_pow_of_mul_eq_pow_odd_left + theorem Int.eq_pow_of_mul_eq_pow_odd_right 2024-07-12 09:29:44 8ba988d feat(RingTheory/AdicCompletion): comparison with tensor product (#14358) We construct the natural map `AdicCompletion I R ⊗[R] M →ₗ[AdicCompletion I R] AdicCompletion I M` for any `R`-module `M` and ideal `I` and show that it is an isomorphism for `M = R^n` and surjective if `M` is a finite `R`-module. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/SMulWithZero.lean + theorem Pi.single_apply_smul Added Mathlib/LinearAlgebra/TensorProduct/Pi.lean + theorem TensorProduct.piScalarRightHom_tmul + def TensorProduct.piScalarRightInv + theorem TensorProduct.piScalarRight_apply + theorem TensorProduct.piScalarRight_symm_single Modified Mathlib/LinearAlgebra/TensorProduct/Prod.lean Added Mathlib/RingTheory/AdicCompletion/AsTensorProduct.lean + def AdicCompletion.ofTensorProduct + def AdicCompletion.ofTensorProductBil + theorem AdicCompletion.ofTensorProduct_bijective_of_pi_of_fintype + theorem AdicCompletion.ofTensorProduct_naturality + theorem AdicCompletion.ofTensorProduct_surjective_of_fg + theorem AdicCompletion.ofTensorProduct_tmul 2024-07-12 08:45:03 f8b05dc chore(AEEqOfIntegral): weaken TC assumptions in 2 lemmas (#14668) .. from `T2Space` to `R1Space` ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Function/AEEqOfIntegral.lean Modified Mathlib/Topology/Compactness/SigmaCompact.lean + theorem iUnion_closure_compactCovering 2024-07-12 08:45:02 e2113ef chore: remove superfluous `intro`s (#14614) ESTIMATED CHANGES Modified Mathlib/Algebra/Module/Submodule/Pointwise.lean Modified Mathlib/CategoryTheory/Preadditive/Biproducts.lean Modified Mathlib/CategoryTheory/Preadditive/HomOrthogonal.lean Modified Mathlib/CategoryTheory/Sites/Grothendieck.lean Modified Mathlib/Data/List/Cycle.lean Modified Mathlib/LinearAlgebra/Matrix/Determinant/Basic.lean Modified Mathlib/Order/Filter/Cocardinal.lean Modified Mathlib/Order/Radical.lean Modified Mathlib/RingTheory/IsAdjoinRoot.lean Modified Mathlib/SetTheory/Lists.lean 2024-07-12 07:41:54 855a27b chore: move non `@[to_additive]` parts of `Algebra.Order.Monoid` and `Algebra.Order.Group` to a different file (#14667) Following the discussion on #14598, move `LinearOrderedAddCommMonoidWithTop`, `LinearOrderedAddCommGroupWithTop`, and associated theorems to `Algebra.Order.AddGroupWithTop`. ESTIMATED CHANGES Modified Counterexamples/OrderedCancelAddCommMonoidWithBounds.lean Modified Mathlib.lean Modified Mathlib/Algebra/CharZero/Lemmas.lean Added Mathlib/Algebra/Order/AddGroupWithTop.lean + def WithBot.addHom + theorem WithBot.add_bot + theorem WithBot.add_coe_eq_bot_iff + theorem WithBot.add_eq_bot + theorem WithBot.add_eq_coe + theorem WithBot.add_left_cancel + theorem WithBot.add_left_cancel_iff + theorem WithBot.add_ne_bot + theorem WithBot.add_right_cancel + theorem WithBot.add_right_cancel_iff + theorem WithBot.bot_add + theorem WithBot.bot_lt_add + theorem WithBot.bot_ne_natCast + theorem WithBot.bot_ne_ofNat + theorem WithBot.coe_add + theorem WithBot.coe_addHom + theorem WithBot.coe_add_eq_bot_iff + theorem WithBot.coe_eq_ofNat + theorem WithBot.coe_natCast + theorem WithBot.coe_nsmul + theorem WithBot.coe_ofNat + theorem WithBot.natCast_ne_bot + theorem WithBot.ofNat_eq_coe + theorem WithBot.ofNat_ne_bot + theorem WithTop.LinearOrderedAddCommGroup.coe_neg + theorem WithTop.LinearOrderedAddCommGroup.coe_sub + theorem WithTop.LinearOrderedAddCommGroup.neg_top + theorem WithTop.LinearOrderedAddCommGroup.sub_eq_top_iff + theorem WithTop.LinearOrderedAddCommGroup.sub_top + theorem WithTop.LinearOrderedAddCommGroup.top_sub + def WithTop.addHom + theorem WithTop.add_coe_eq_top_iff + theorem WithTop.add_eq_coe + theorem WithTop.add_eq_top + theorem WithTop.add_left_cancel + theorem WithTop.add_left_cancel_iff + theorem WithTop.add_lt_top + theorem WithTop.add_ne_top + theorem WithTop.add_right_cancel + theorem WithTop.add_right_cancel_iff + theorem WithTop.add_top + theorem WithTop.coe_add + theorem WithTop.coe_addHom + theorem WithTop.coe_add_eq_top_iff + theorem WithTop.coe_eq_ofNat + theorem WithTop.coe_natCast + theorem WithTop.coe_nsmul + theorem WithTop.coe_ofNat + theorem WithTop.natCast_ne_top + theorem WithTop.ofNat_eq_coe + theorem WithTop.ofNat_ne_top + theorem WithTop.top_add + theorem WithTop.top_ne_natCast + theorem WithTop.top_ne_ofNat + theorem WithTop.zero_lt_coe + theorem WithTop.zero_lt_top + theorem add_top + theorem top_add Modified Mathlib/Algebra/Order/Group/Defs.lean Deleted Mathlib/Algebra/Order/Group/WithTop.lean - theorem WithTop.LinearOrderedAddCommGroup.coe_neg - theorem WithTop.LinearOrderedAddCommGroup.coe_sub - theorem WithTop.LinearOrderedAddCommGroup.neg_top - theorem WithTop.LinearOrderedAddCommGroup.sub_eq_top_iff - theorem WithTop.LinearOrderedAddCommGroup.sub_top - theorem WithTop.LinearOrderedAddCommGroup.top_sub Modified Mathlib/Algebra/Order/GroupWithZero/Canonical.lean Modified Mathlib/Algebra/Order/Monoid/Defs.lean - theorem add_top - theorem top_add Modified Mathlib/Algebra/Order/Monoid/WithTop.lean - def WithBot.addHom - theorem WithBot.add_bot - theorem WithBot.add_coe_eq_bot_iff - theorem WithBot.add_eq_bot - theorem WithBot.add_eq_coe - theorem WithBot.add_left_cancel - theorem WithBot.add_left_cancel_iff - theorem WithBot.add_ne_bot - theorem WithBot.add_right_cancel - theorem WithBot.add_right_cancel_iff - theorem WithBot.bot_add - theorem WithBot.bot_lt_add - theorem WithBot.bot_ne_natCast - theorem WithBot.bot_ne_ofNat - theorem WithBot.coe_add - theorem WithBot.coe_addHom - theorem WithBot.coe_add_eq_bot_iff - theorem WithBot.coe_eq_ofNat - theorem WithBot.coe_natCast - theorem WithBot.coe_nsmul - theorem WithBot.coe_ofNat - theorem WithBot.natCast_ne_bot - theorem WithBot.ofNat_eq_coe - theorem WithBot.ofNat_ne_bot - def WithTop.addHom - theorem WithTop.add_coe_eq_top_iff - theorem WithTop.add_eq_coe - theorem WithTop.add_eq_top - theorem WithTop.add_left_cancel - theorem WithTop.add_left_cancel_iff - theorem WithTop.add_lt_top - theorem WithTop.add_ne_top - theorem WithTop.add_right_cancel - theorem WithTop.add_right_cancel_iff - theorem WithTop.add_top - theorem WithTop.coe_add - theorem WithTop.coe_addHom - theorem WithTop.coe_add_eq_top_iff - theorem WithTop.coe_eq_ofNat - theorem WithTop.coe_natCast - theorem WithTop.coe_nsmul - theorem WithTop.coe_ofNat - theorem WithTop.natCast_ne_top - theorem WithTop.ofNat_eq_coe - theorem WithTop.ofNat_ne_top - theorem WithTop.top_add - theorem WithTop.top_ne_natCast - theorem WithTop.top_ne_ofNat - theorem WithTop.zero_lt_coe - theorem WithTop.zero_lt_top Modified Mathlib/Algebra/Order/Ring/WithTop.lean Modified Mathlib/Algebra/Order/Sub/WithTop.lean Modified Mathlib/Algebra/PUnitInstances/Order.lean Modified Mathlib/Analysis/Analytic/Meromorphic.lean Modified Mathlib/Data/Finset/Fold.lean Modified Mathlib/Data/Nat/Cast/WithTop.lean Modified Mathlib/RingTheory/HahnSeries/Summable.lean 2024-07-12 06:55:27 41eb6f9 chore: Move `smooth_barycentric_coord` (#14666) Moving it to a new file `Analysis.Calculus.AddTorsor.Coord` significantly reduces the imports to `Analysis.NormedSpace.AddTorsorBases`. Also rename `Analysis.Calculus.AffineMap` to `Analysis.Calculus.AddTorsor.AffineMap`. ESTIMATED CHANGES Modified Mathlib.lean Renamed Mathlib/Analysis/Calculus/AffineMap.lean to Mathlib/Analysis/Calculus/AddTorsor/AffineMap.lean Added Mathlib/Analysis/Calculus/AddTorsor/Coord.lean + theorem smooth_barycentric_coord Modified Mathlib/Analysis/NormedSpace/AddTorsorBases.lean - theorem smooth_barycentric_coord 2024-07-12 04:44:31 f742b2a fix(maintainer_merge_*.yml): don't require \r in maintainer merge comment (#14663) I checked the raw form of some comments and they were missing the `\r`, so I'm pretty sure this is why some of them get ignored by the bots. ESTIMATED CHANGES Modified .github/workflows/maintainer_merge_comment.yml Modified .github/workflows/maintainer_merge_review.yml Modified .github/workflows/maintainer_merge_review_comment.yml 2024-07-12 04:44:30 e5b5b63 chore: remove several stray sections (#14620) - Topology/Separation: fix typo "section/end" - Mathlib/NumberTheory/LSeries/HurwitzZeta.lean: fix typo "namespace/end" In both cases, a second identical section resp. namespace was *opened* instead of closing the existing one. - Topology/ExtremallyDisconnected: remove superfluous anonymous section. The entire file is already inside a noncomputable section; this sections adds nothing on top. (The nested section is also processed as a noncomputable section.) - RingTheory/Bialgebra/Basic, RingTheory/HopfAlgebra: remove section CommRing in favour of the namespace CommRing a few lines later - ModuleCat/Sheaf/Colimits: remove duplicate namespace SheafOfModules - Probability/Distributions/Uniform.lean: this file is inside a noncomputable section already; a *second* such section (nested right under the first) was superfluous ESTIMATED CHANGES Modified Mathlib/Algebra/Category/ModuleCat/Sheaf/Colimits.lean Modified Mathlib/NumberTheory/LSeries/HurwitzZeta.lean Modified Mathlib/Probability/Distributions/Uniform.lean Modified Mathlib/RingTheory/Bialgebra/Basic.lean Modified Mathlib/RingTheory/HopfAlgebra.lean Modified Mathlib/Topology/ExtremallyDisconnected.lean Modified Mathlib/Topology/Separation.lean 2024-07-12 03:46:39 79b532c chore: remove unused lemmas about bit0/1 (#14661) ESTIMATED CHANGES Modified Mathlib/Data/Int/Cast/Basic.lean - theorem Int.cast_bit0 - theorem Int.cast_bit1 Modified Mathlib/Data/Matrix/Basic.lean - theorem Matrix.bit0_apply - theorem Matrix.bit1_apply - theorem Matrix.bit1_apply_eq - theorem Matrix.bit1_apply_ne Modified Mathlib/Data/Rat/Cast/CharZero.lean - theorem Rat.cast_bit0 - theorem Rat.cast_bit1 Modified Mathlib/RingTheory/MvPowerSeries/Basic.lean - theorem MvPolynomial.coe_bit0 - theorem MvPolynomial.coe_bit1 Modified Mathlib/RingTheory/PowerSeries/Basic.lean - theorem Polynomial.coe_bit0 - theorem Polynomial.coe_bit1 Modified Mathlib/SetTheory/Cardinal/Basic.lean - theorem Cardinal.lift_bit0 - theorem Cardinal.lift_bit1 - theorem Cardinal.power_bit0 - theorem Cardinal.power_bit1 2024-07-11 20:47:04 0679e1b chore(Data/Fin/Tuple/Basic): Fill in the API hole (partly) (#13568) As explained by the module doc, we are missing the `Fin.succAbove` equivalent of `Fin.tail`/`Fin.init`. In fact, it already exists as the second projection of `extractNth`, so this PR deletes `extractNth` and defines its second projection as a new function `removeNth`. ESTIMATED CHANGES Modified Mathlib/Data/Fin/Tuple/Basic.lean +/- theorem Fin.eq_insertNth_iff - theorem Fin.extractNth_insertNth +/- theorem Fin.insertNth_eq_iff - theorem Fin.insertNth_extractNth + theorem Fin.insertNth_removeNth + theorem Fin.insertNth_self_removeNth + def Fin.removeNth + theorem Fin.removeNth_insertNth + theorem Fin.removeNth_last + theorem Fin.removeNth_update + theorem Fin.removeNth_zero Modified Mathlib/Logic/Equiv/Fin.lean 2024-07-11 19:57:38 d718815 feat(Mathlib/Data/Matrix/Notation): delaborator for `!![a, b; c, d]` notation (#14376) ESTIMATED CHANGES Modified Mathlib/Data/Matrix/Notation.lean + def Matrix.delabMatrixNotation Modified test/matrix.lean 2024-07-11 19:41:36 9389bd0 rename: `no_lost_declarations` to `declarations_diff` and `short` as default option (#14105) This PR renames the `no_lost_declarations` script to `declarations_diff`, to better describe the effect of the script. It was originally intended as a script to make sure that "moving" PRs did not leave out any declaration, but is now used as a measure of the diff in declarations between PRs and master. The other change it does is to make the `short` option the default, as this is the most commonly used. |Old|New| |-|-| |`./scripts/no_lost_declarations.sh short`|`./scripts/declarations_diff.sh`| |`./scripts/no_lost_declarations.sh`|`./scripts/declarations_diff.sh long`| Mostly, these changes are invisible, as this script is used almost exclusively by CI, but the intention is that the change conveys better what script does to a human. ESTIMATED CHANGES Modified .github/workflows/PR_summary.yml Renamed scripts/no_lost_declarations.sh to scripts/declarations_diff.sh 2024-07-11 19:31:11 6ba2ff8 chore(RepresentationTheory): rename FdRep to FDRep (#14309) As discussed on [Zulip](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/Representation.20Theory.20API.20Improvement.20.281.3F.29/near/443728543) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/RepresentationTheory/Character.lean + theorem FDRep.average_char_eq_finrank_invariants + theorem FDRep.char_conj + theorem FDRep.char_dual + theorem FDRep.char_iso + theorem FDRep.char_linHom + theorem FDRep.char_mul_comm + theorem FDRep.char_one + theorem FDRep.char_orthonormal + theorem FDRep.char_tensor' + theorem FDRep.char_tensor + def FDRep.character - theorem FdRep.average_char_eq_finrank_invariants - theorem FdRep.char_conj - theorem FdRep.char_dual - theorem FdRep.char_iso - theorem FdRep.char_linHom - theorem FdRep.char_mul_comm - theorem FdRep.char_one - theorem FdRep.char_orthonormal - theorem FdRep.char_tensor' - theorem FdRep.char_tensor - def FdRep.character Renamed Mathlib/RepresentationTheory/FdRep.lean to Mathlib/RepresentationTheory/FDRep.lean + theorem FDRep.Iso.conj_ρ + theorem FDRep.dualTensorIsoLinHom_hom_hom + theorem FDRep.finrank_hom_simple_simple + def FDRep.forget₂HomLinearEquiv + theorem FDRep.forget₂_ρ + def FDRep.isoToLinearEquiv + def FDRep.of + def FDRep.ρ - theorem FdRep.Iso.conj_ρ - theorem FdRep.dualTensorIsoLinHom_hom_hom - theorem FdRep.finrank_hom_simple_simple - def FdRep.forget₂HomLinearEquiv - theorem FdRep.forget₂_ρ - def FdRep.isoToLinearEquiv - def FdRep.of - def FdRep.ρ Modified Mathlib/RepresentationTheory/Invariants.lean + def Representation.linHom.invariantsEquivFDRepHom - def Representation.linHom.invariantsEquivFdRepHom Modified docs/overview.yaml Modified docs/undergrad.yaml 2024-07-11 18:34:30 1da7f69 feat: the one-line-align linter (#14322) This linter makes sure that `#align` statements span a single line. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Closed/Functor.lean Modified Mathlib/Tactic/Linter/Lint.lean + def Mathlib.Linter.OneLineAlignLinter.getLinterOneLineAlign + def Mathlib.Linter.OneLineAlignLinter.oneLineAlign Modified test/Lint.lean + theorem toAlign 2024-07-11 17:04:57 8a1d23a feat: Product of convex hulls (#13952) From LeanCamCombi ESTIMATED CHANGES Modified Mathlib/Algebra/BigOperators/Ring.lean + theorem Fintype.prod_sum Modified Mathlib/Algebra/Module/BigOperators.lean +/- theorem Finset.sum_smul_sum + theorem Fintype.sum_smul_sum Modified Mathlib/Analysis/Convex/Combination.lean + theorem convexHull_pi + theorem mem_convexHull_iff_exists_fintype + theorem mem_convexHull_of_exists_fintype + theorem mem_convexHull_pi Modified Mathlib/Analysis/Convex/Hull.lean +/- theorem convexHull_neg +/- theorem convexHull_smul + theorem convexHull_vadd Modified Mathlib/GroupTheory/Perm/Cycle/Basic.lean 2024-07-11 16:37:48 2153d4a fix: handle duplicate constants in shake (#14417) Fixes an issue [reported on Zulip](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/check.20for.20unused.20imports.20doesn't.20stop/near/449087555), due to constants being declared multiple times (which was not previously legal). ESTIMATED CHANGES Modified Shake/Main.lean +/- def calcNeeds +/- def getExplanations 2024-07-11 16:02:21 82487ba chore(RingTheory/AdicCompletion): manual instances (#14534) Instead of inferring `AddCommGroup`, `Module`, etc. instances for `AdicCompletion I M` from being a submodule, we explicitly spell out the definitions to improve performance. Also marks some definitions as `noncomputable` to save time spent on compilation. See https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/Adic.20completion.20is.20slow. ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/SModEq.lean + theorem SModEq.neg + theorem SModEq.nsmul + theorem SModEq.pow + theorem SModEq.sub + theorem SModEq.zsmul Modified Mathlib/RingTheory/AdicCompletion/Algebra.lean + theorem AdicCompletion.transitionMap_map_pow Modified Mathlib/RingTheory/AdicCompletion/Basic.lean + def AdicCompletion.incl + theorem AdicCompletion.val_sum Modified Mathlib/RingTheory/AdicCompletion/Functoriality.lean - theorem AdicCompletion.val_sum 2024-07-11 15:48:21 3703193 feat(Bicategory/Functor/Lax): define lax functors (#14303) We define lax functors and provide ways to construct pseudofunctors from a given a lax functor. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Bicategory/Functor/Lax.lean + structure CategoryTheory.LaxFunctor.PseudoCore + def CategoryTheory.LaxFunctor.comp + def CategoryTheory.LaxFunctor.id + theorem CategoryTheory.LaxFunctor.mapComp_assoc_left + theorem CategoryTheory.LaxFunctor.mapComp_assoc_right + theorem CategoryTheory.LaxFunctor.map₂_leftUnitor_hom + theorem CategoryTheory.LaxFunctor.map₂_rightUnitor_hom + structure CategoryTheory.LaxFunctor Modified Mathlib/CategoryTheory/Bicategory/Functor/Oplax.lean Modified Mathlib/CategoryTheory/Bicategory/Functor/Pseudofunctor.lean + def CategoryTheory.Pseudofunctor.mkOfLax + def CategoryTheory.Pseudofunctor.toLax - theorem CategoryTheory.Pseudofunctor.to_oplax_map - theorem CategoryTheory.Pseudofunctor.to_oplax_mapComp - theorem CategoryTheory.Pseudofunctor.to_oplax_mapId - theorem CategoryTheory.Pseudofunctor.to_oplax_map₂ - theorem CategoryTheory.Pseudofunctor.to_oplax_obj Modified Mathlib/CategoryTheory/WithTerminal.lean 2024-07-11 15:24:21 8d61569 feat(Limits/Shapes/Pullback): Give pullback.fst and friends explicit parameters (#14526) This PR add changes `pullback.fst`, `pullback.fst`, `pushout.inr` and `pushout.inl` to have explicit parameters. ESTIMATED CHANGES Modified Mathlib/Algebra/Homology/ShortComplex/SnakeLemma.lean +/- theorem CategoryTheory.ShortComplex.SnakeInput.L₀X₂ToP_comp_pullback_snd +/- theorem CategoryTheory.ShortComplex.SnakeInput.snd_δ +/- theorem CategoryTheory.ShortComplex.SnakeInput.snd_δ_inr Modified Mathlib/AlgebraicGeometry/Cover/Open.lean Modified Mathlib/AlgebraicGeometry/Gluing.lean Modified Mathlib/AlgebraicGeometry/Morphisms/Basic.lean Modified Mathlib/AlgebraicGeometry/Morphisms/Constructors.lean Modified Mathlib/AlgebraicGeometry/Morphisms/FiniteType.lean Modified Mathlib/AlgebraicGeometry/Morphisms/OpenImmersion.lean Modified Mathlib/AlgebraicGeometry/Morphisms/QuasiCompact.lean Modified Mathlib/AlgebraicGeometry/Morphisms/QuasiSeparated.lean Modified Mathlib/AlgebraicGeometry/Morphisms/RingHomProperties.lean Modified Mathlib/AlgebraicGeometry/Morphisms/UniversallyClosed.lean Modified Mathlib/AlgebraicGeometry/OpenImmersion.lean Modified Mathlib/AlgebraicGeometry/Pullbacks.lean +/- theorem AlgebraicGeometry.Scheme.Pullback.t_fst_fst +/- theorem AlgebraicGeometry.Scheme.Pullback.t_snd Modified Mathlib/AlgebraicGeometry/Restrict.lean Modified Mathlib/CategoryTheory/Abelian/Basic.lean Modified Mathlib/CategoryTheory/Abelian/Pseudoelements.lean Modified Mathlib/CategoryTheory/Abelian/Refinements.lean Modified Mathlib/CategoryTheory/Adhesive.lean Modified Mathlib/CategoryTheory/Adjunction/Over.lean Modified Mathlib/CategoryTheory/EffectiveEpi/Coproduct.lean Modified Mathlib/CategoryTheory/EffectiveEpi/RegularEpi.lean Modified Mathlib/CategoryTheory/Extensive.lean Modified Mathlib/CategoryTheory/Galois/Basic.lean Modified Mathlib/CategoryTheory/Galois/Decomposition.lean Modified Mathlib/CategoryTheory/Generator.lean Modified Mathlib/CategoryTheory/GlueData.lean +/- theorem CategoryTheory.GlueData.t'_iji +/- theorem CategoryTheory.GlueData.t'_jii Modified Mathlib/CategoryTheory/Limits/Constructions/BinaryProducts.lean Modified Mathlib/CategoryTheory/Limits/Constructions/Equalizers.lean +/- theorem CategoryTheory.Limits.HasCoequalizersOfHasPushoutsAndBinaryCoproducts.pushoutInl_eq_pushout_inr Modified Mathlib/CategoryTheory/Limits/Constructions/ZeroObjects.lean Modified Mathlib/CategoryTheory/Limits/Opposites.lean Modified Mathlib/CategoryTheory/Limits/Over.lean Modified Mathlib/CategoryTheory/Limits/Preserves/Shapes/Pullbacks.lean +/- def CategoryTheory.Limits.isLimitOfHasPullbackOfPreservesLimit Modified Mathlib/CategoryTheory/Limits/Shapes/ConcreteCategory.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Diagonal.lean +/- theorem CategoryTheory.Limits.pullback.diagonal_fst +/- theorem CategoryTheory.Limits.pullback.diagonal_isKernelPair +/- theorem CategoryTheory.Limits.pullback.diagonal_snd Modified Mathlib/CategoryTheory/Limits/Shapes/Images.lean Modified Mathlib/CategoryTheory/Limits/Shapes/KernelPair.lean Modified Mathlib/CategoryTheory/Limits/Shapes/NormalMono/Equalizers.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Pullback/Assoc.lean +/- theorem CategoryTheory.Limits.inl_inl_pushoutAssoc_hom +/- theorem CategoryTheory.Limits.inl_inr_pushoutAssoc_inv +/- theorem CategoryTheory.Limits.inl_pushoutAssoc_inv +/- theorem CategoryTheory.Limits.inr_inl_pushoutAssoc_hom +/- theorem CategoryTheory.Limits.inr_inr_pushoutAssoc_inv +/- theorem CategoryTheory.Limits.inr_pushoutAssoc_hom +/- theorem CategoryTheory.Limits.pullbackAssoc_hom_fst +/- theorem CategoryTheory.Limits.pullbackAssoc_hom_snd_fst +/- theorem CategoryTheory.Limits.pullbackAssoc_hom_snd_snd +/- theorem CategoryTheory.Limits.pullbackAssoc_inv_fst_fst +/- theorem CategoryTheory.Limits.pullbackAssoc_inv_fst_snd +/- theorem CategoryTheory.Limits.pullbackAssoc_inv_snd Modified Mathlib/CategoryTheory/Limits/Shapes/Pullback/CommSq.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Pullback/HasPullback.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Pullback/Iso.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Pullback/Mono.lean +/- theorem CategoryTheory.Limits.fst_eq_snd_of_mono_eq +/- theorem CategoryTheory.Limits.inl_eq_inr_of_epi_eq Modified Mathlib/CategoryTheory/Limits/Shapes/Pullback/Pasting.lean Modified Mathlib/CategoryTheory/Limits/Shapes/RegularMono.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Types.lean Modified Mathlib/CategoryTheory/Limits/VanKampen.lean Modified Mathlib/CategoryTheory/MorphismProperty/Limits.lean Modified Mathlib/CategoryTheory/Sites/Coherent/Basic.lean Modified Mathlib/CategoryTheory/Sites/Coherent/Comparison.lean Modified Mathlib/CategoryTheory/Sites/Coherent/RegularSheaves.lean +/- theorem CategoryTheory.regularTopology.mapToEqualizer_eq_comp Modified Mathlib/CategoryTheory/Sites/EqualizerSheafCondition.lean +/- def CategoryTheory.Equalizer.Presieve.Arrows.firstMap +/- def CategoryTheory.Equalizer.Presieve.Arrows.secondMap Modified Mathlib/CategoryTheory/Sites/IsSheafFor.lean Modified Mathlib/CategoryTheory/Sites/OneHypercover.lean +/- theorem CategoryTheory.PreOneHypercover.sieve₁'_eq_sieve₁ Modified Mathlib/CategoryTheory/Sites/Pretopology.lean Modified Mathlib/CategoryTheory/Sites/Sheaf.lean Modified Mathlib/CategoryTheory/Sites/Sieves.lean Modified Mathlib/CategoryTheory/SmallObject/Construction.lean Modified Mathlib/CategoryTheory/Subobject/Basic.lean Modified Mathlib/CategoryTheory/Subobject/Lattice.lean Modified Mathlib/CategoryTheory/Subobject/MonoOver.lean Modified Mathlib/Condensed/TopComparison.lean Modified Mathlib/Geometry/RingedSpace/OpenImmersion.lean Modified Mathlib/Geometry/RingedSpace/PresheafedSpace/Gluing.lean Modified Mathlib/RingTheory/RingHomProperties.lean Modified Mathlib/Topology/Category/CompHaus/Limits.lean Modified Mathlib/Topology/Category/LightProfinite/Limits.lean Modified Mathlib/Topology/Category/Profinite/Limits.lean Modified Mathlib/Topology/Category/Stonean/Limits.lean Modified Mathlib/Topology/Category/TopCat/Limits/Pullbacks.lean Modified Mathlib/Topology/Gluing.lean 2024-07-11 14:59:29 1c61ab7 feat: add `endOf` linter (#14378) This linter emits a warning at the end of a file if there are unclosed `namespace`s or `section`s. All missing `end`s have been added (automatically) in #14621. Unlike #14352, this PR does leaves outermost `noncomputable section`s open. [Zulip thread](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/linting.20for.20unclosed.20sections.3F) ESTIMATED CHANGES Modified Mathlib/RingTheory/Polynomial/Wronskian.lean Modified Mathlib/Tactic/Linter/Lint.lean + def Mathlib.Linter.EndOf.endOfLinter + def Mathlib.Linter.EndOf.getLinterHash Modified test/Lint.lean 2024-07-11 14:18:12 33d2c7a feat(MeasureTheory): weaken assumptions from `SigmaFinite` to `SFinite` (#14638) - Weaken TC assumptions of many lemmas from `SigmaFinite` to `SFinite`. - Drop some `MeasurableSet` assumptions. ESTIMATED CHANGES Modified Mathlib/Analysis/Convolution.lean +/- theorem BddAbove.convolutionExistsAt +/- theorem MeasureTheory.convolution_congr +/- theorem MeasureTheory.integrable_posConvolution +/- theorem MeasureTheory.integral_posConvolution Modified Mathlib/MeasureTheory/Constructions/Prod/Integral.lean +/- theorem MeasureTheory.AEStronglyMeasurable.fst +/- theorem MeasureTheory.AEStronglyMeasurable.integral_prod_right' +/- theorem MeasureTheory.AEStronglyMeasurable.prod_mk_left +/- theorem MeasureTheory.AEStronglyMeasurable.snd +/- theorem MeasureTheory.Integrable.integral_norm_prod_right +/- theorem MeasureTheory.Integrable.integral_prod_right +/- theorem MeasureTheory.Integrable.prod_left_ae +/- theorem MeasureTheory.Integrable.prod_right_ae +/- theorem MeasureTheory.Integrable.swap +/- theorem MeasureTheory.StronglyMeasurable.integral_prod_left' +/- theorem MeasureTheory.StronglyMeasurable.integral_prod_left +/- theorem MeasureTheory.StronglyMeasurable.integral_prod_right' +/- theorem MeasureTheory.StronglyMeasurable.integral_prod_right +/- theorem MeasureTheory.integrable_prod_iff' +/- theorem MeasureTheory.integrable_swap_iff +/- theorem measurableSet_integrable Modified Mathlib/MeasureTheory/Group/Prod.lean +/- theorem MeasureTheory.ae_measure_preimage_mul_right_lt_top +/- theorem MeasureTheory.ae_measure_preimage_mul_right_lt_top_of_ne_zero +/- theorem MeasureTheory.measure_eq_div_smul +/- theorem MeasureTheory.measure_lintegral_div_measure +/- theorem MeasureTheory.measure_mul_measure_eq Modified Mathlib/MeasureTheory/Measure/Haar/Basic.lean Modified Mathlib/MeasureTheory/Measure/Haar/Quotient.lean 2024-07-11 14:02:11 e4e6ef5 chore: robustify proof in CategoryTheory.Limit.VanKampen (#14635) Defensive change preparing for https://github.com/leanprover/lean4/pull/4595. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Limits/VanKampen.lean 2024-07-11 13:27:23 945a24f chore: add source information to `maintainer merge` Zulip message (#14645) ESTIMATED CHANGES Modified .github/workflows/maintainer_merge_comment.yml Modified .github/workflows/maintainer_merge_review.yml Modified .github/workflows/maintainer_merge_review_comment.yml 2024-07-11 13:27:22 fc5e76e feat(ENNReal): `ENNReal.rpow_inv_lt_iff` (#14570) Self-contained PR filling an API gap for ENNReal. To be used in PR #9163. ESTIMATED CHANGES Modified Mathlib/Analysis/MeanInequalities.lean Modified Mathlib/Analysis/MeanInequalitiesPow.lean Modified Mathlib/Analysis/NormedSpace/PiLp.lean Modified Mathlib/Analysis/NormedSpace/ProdLp.lean Modified Mathlib/Analysis/SpecialFunctions/Pow/Continuity.lean Modified Mathlib/Analysis/SpecialFunctions/Pow/NNReal.lean + theorem ENNReal.le_rpow_inv_iff + theorem ENNReal.lt_rpow_inv_iff + theorem ENNReal.rpow_inv_le_iff + theorem ENNReal.rpow_inv_lt_iff + theorem NNReal.eq_rpow_inv_iff + theorem NNReal.le_rpow_inv_iff + theorem NNReal.lt_rpow_inv_iff + theorem NNReal.rpow_inv_eq_iff + theorem NNReal.rpow_inv_le_iff + theorem NNReal.rpow_inv_lt_iff Modified Mathlib/MeasureTheory/Function/LpSeminorm/Basic.lean Modified Mathlib/MeasureTheory/Function/LpSpace.lean Modified Mathlib/MeasureTheory/Function/SimpleFuncDenseLp.lean Modified Mathlib/MeasureTheory/Function/UniformIntegrable.lean 2024-07-11 11:51:43 9c8f423 chore: make `Algebra.cast` reducible (#14601) Make `Algebra.cast` `@[reducible]` ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/Defs.lean +/- def Algebra.cast Modified Mathlib/Algebra/Algebra/Field.lean +/- theorem algebraMap.lift_map_eq_zero_iff Modified Mathlib/Analysis/InnerProductSpace/Basic.lean Modified Mathlib/Analysis/InnerProductSpace/OfNorm.lean Modified Mathlib/Analysis/InnerProductSpace/Projection.lean Modified Mathlib/Analysis/InnerProductSpace/TwoDim.lean Modified Mathlib/Analysis/RCLike/Basic.lean Modified Mathlib/Analysis/SpecialFunctions/Pow/Real.lean 2024-07-11 10:12:25 276bb99 feat(RingTheory/Localization): Localization at an idempotent (#14551) ESTIMATED CHANGES Modified Mathlib/RingTheory/Localization/Away/Basic.lean + theorem IsLocalization.away_of_isIdempotentElem 2024-07-11 10:12:24 63c917a feat(Geometry/RingedSpace): Initial object in `LocallyRingedSpace` (#14549) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Limits/Shapes/StrictInitial.lean + def CategoryTheory.Limits.IsInitial.ofStrict + def CategoryTheory.Limits.IsTerminal.ofStrict Modified Mathlib/Geometry/RingedSpace/LocallyRingedSpace.lean + def AlgebraicGeometry.LocallyRingedSpace.empty + def AlgebraicGeometry.LocallyRingedSpace.emptyIsInitial + def AlgebraicGeometry.LocallyRingedSpace.emptyTo 2024-07-11 10:12:23 e6f5dff feat(Limits/Shapes/Pullback): Add API and golf proofs (#14524) This is PR adds some API to pullbacks, and golfs some proofs in those files. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Limits/Shapes/Pullback/HasPullback.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Pullback/Mono.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Pullback/PullbackCone.lean + def CategoryTheory.Limits.PullbackCone.eta +/- def CategoryTheory.Limits.PullbackCone.ext + def CategoryTheory.Limits.PullbackCone.mkSelfIsLimit + def CategoryTheory.Limits.PushoutCocone.eta +/- def CategoryTheory.Limits.PushoutCocone.ext + def CategoryTheory.Limits.PushoutCocone.mkSelfIsColimit 2024-07-11 10:12:21 1a3e2c4 feat(Mathlib.NumberTheory.FLT.Three): add various results (#14227) We add various results needed to prove flt3. From the flt3 project at LFTCM2024. ESTIMATED CHANGES Modified Mathlib/Algebra/GCDMonoid/Basic.lean Modified Mathlib/Algebra/Ring/Divisibility/Lemmas.lean + theorem dvd_mul_sub_mul_mul_gcd_of_dvd + theorem dvd_mul_sub_mul_mul_left_of_dvd + theorem dvd_mul_sub_mul_mul_right_of_dvd Modified Mathlib/NumberTheory/Cyclotomic/Three.lean + theorem IsCyclotomicExtension.Rat.Three.eta_sq Modified Mathlib/NumberTheory/FLT/Three.lean + theorem FermatLastTheoremForThreeGen.Solution.a_add_eta_mul_b + theorem FermatLastTheoremForThreeGen.Solution.associated_of_dvd_a_add_b_of_dvd_a_add_eta_mul_b + theorem FermatLastTheoremForThreeGen.Solution.associated_of_dvd_a_add_b_of_dvd_a_add_eta_sq_mul_b + theorem FermatLastTheoremForThreeGen.Solution.associated_of_dvd_a_add_eta_mul_b_of_dvd_a_add_eta_sq_mul_b + theorem FermatLastTheoremForThreeGen.Solution.eta_add_one_mul_neg_eta_eq_one + theorem FermatLastTheoremForThreeGen.Solution.lambda_dvd_a_add_eta_mul_b + theorem FermatLastTheoremForThreeGen.Solution.lambda_dvd_a_add_eta_sq_mul_b + theorem FermatLastTheoremForThreeGen.Solution.lambda_pow_dvd_a_add_b + theorem FermatLastTheoremForThreeGen.Solution.lambda_sq_not_dvd_a_add_eta_mul_b + theorem FermatLastTheoremForThreeGen.Solution.lambda_sq_not_dvd_a_add_eta_sq_mul_b Modified Mathlib/RingTheory/PrincipalIdealDomain.lean + theorem exists_associated_pow_of_associated_pow_mul 2024-07-11 10:12:19 34c81a7 feat(GroupTheory/GroupAction/Blocks): order iso between blocks and subgroups (#13995) This PR proves the order isomorphism between blocks containing a point and subgroups containing its stabilizer. ESTIMATED CHANGES Modified Mathlib/GroupTheory/GroupAction/Blocks.lean + theorem MulAction.IsBlock.of_orbit + theorem MulAction.IsBlock.orbit_stabilizer_eq + theorem MulAction.IsBlock.stabilizer_le + def MulAction.block_stabilizerOrderIso + theorem MulAction.stabilizer_orbit_eq 2024-07-11 10:12:18 f2c8d8b chore: add missing spaces around : (#13658) Created automatically; then I manually checked the diff and reverted bad changes. ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/NonUnitalHom.lean Modified Mathlib/Algebra/Algebra/Unitization.lean +/- def NonUnitalAlgHom.toAlgHom Modified Mathlib/Algebra/BigOperators/Module.lean Modified Mathlib/Algebra/Category/ModuleCat/Presheaf.lean +/- theorem PresheafOfModules.Hom.neg_app Modified Mathlib/Algebra/Field/Defs.lean Modified Mathlib/Algebra/GCDMonoid/Basic.lean Modified Mathlib/Algebra/GradedMonoid.lean Modified Mathlib/Algebra/Group/Basic.lean Modified Mathlib/Algebra/Group/Commute/Basic.lean Modified Mathlib/Algebra/Group/Commute/Defs.lean Modified Mathlib/Algebra/Group/NatPowAssoc.lean Modified Mathlib/Algebra/Group/Submonoid/Units.lean +/- theorem Subgroup.mem_ofUnits_iff_toUnits_mem +/- theorem Subgroup.mem_units_iff_val_mem +/- theorem Subgroup.ofUnits_inf +/- theorem Subgroup.ofUnits_inf_units +/- theorem Subgroup.ofUnits_sSup +/- theorem Subgroup.ofUnits_sup_units +/- theorem Submonoid.units_inf +/- theorem Submonoid.units_sInf Modified Mathlib/Algebra/Homology/HomologicalComplex.lean Modified Mathlib/Algebra/Homology/ShortComplex/SnakeLemma.lean - theorem CategoryTheory.ShortComplex.SnakeInput.exact_C₁_down: + theorem CategoryTheory.ShortComplex.SnakeInput.exact_C₁_down Modified Mathlib/Algebra/Lie/Basic.lean +/- structure LieHom Modified Mathlib/Algebra/Module/Defs.lean Modified Mathlib/Algebra/Module/LocalizedModule.lean Modified Mathlib/Algebra/Module/Submodule/Pointwise.lean Modified Mathlib/Algebra/Order/Field/Basic.lean Modified Mathlib/Algebra/Order/Floor.lean Modified Mathlib/Algebra/Order/Positive/Field.lean Modified Mathlib/Algebra/Polynomial/Smeval.lean +/- theorem Polynomial.smeval_at_natCast Modified Mathlib/AlgebraicTopology/SimplexCategory.lean +/- theorem SimplexCategory.comp_toOrderHom Modified Mathlib/Analysis/Complex/UpperHalfPlane/Basic.lean Modified Mathlib/Analysis/Convex/Jensen.lean Modified Mathlib/Analysis/Distribution/SchwartzSpace.lean Modified Mathlib/Analysis/Fourier/Inversion.lean Modified Mathlib/Analysis/Fourier/PoissonSummation.lean Modified Mathlib/Analysis/FunctionalSpaces/SobolevInequality.lean Modified Mathlib/Analysis/Normed/Group/Completeness.lean Modified Mathlib/Analysis/NormedSpace/HomeomorphBall.lean Modified Mathlib/Analysis/NormedSpace/MStructure.lean Modified Mathlib/Analysis/Oscillation.lean Modified Mathlib/Analysis/Seminorm.lean Modified Mathlib/Analysis/SpecialFunctions/Bernstein.lean Modified Mathlib/Analysis/SpecialFunctions/Complex/LogBounds.lean Modified Mathlib/Analysis/SpecialFunctions/Gaussian/GaussianIntegral.lean Modified Mathlib/Analysis/SpecialFunctions/Integrals.lean Modified Mathlib/Analysis/SpecialFunctions/Pow/Asymptotics.lean Modified Mathlib/Analysis/SpecialFunctions/Pow/Deriv.lean Modified Mathlib/Analysis/SpecialFunctions/Pow/Real.lean Modified Mathlib/Analysis/SpecialFunctions/Stirling.lean Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Angle.lean Modified Mathlib/Analysis/SpecificLimits/Basic.lean Modified Mathlib/CategoryTheory/Abelian/Exact.lean +/- theorem CategoryTheory.Abelian.tfae_epi Modified Mathlib/CategoryTheory/Bicategory/Functor/Prelax.lean +/- structure CategoryTheory.PrelaxFunctor Modified Mathlib/CategoryTheory/CommSq.lean Modified Mathlib/CategoryTheory/ComposableArrows.lean Modified Mathlib/CategoryTheory/FiberedCategory/HomLift.lean Modified Mathlib/CategoryTheory/Limits/FunctorCategory.lean Modified Mathlib/CategoryTheory/Limits/IsConnected.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Equalizers.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Kernels.lean Modified Mathlib/CategoryTheory/Limits/Shapes/NormalMono/Basic.lean +/- def CategoryTheory.NormalMono.lift' Modified Mathlib/CategoryTheory/Limits/Shapes/WidePullbacks.lean Modified Mathlib/CategoryTheory/Limits/Shapes/ZeroMorphisms.lean Modified Mathlib/CategoryTheory/Limits/Types.lean +/- theorem CategoryTheory.Limits.Types.hasLimit_iff_small_sections Modified Mathlib/CategoryTheory/Monad/Adjunction.lean +/- theorem CategoryTheory.Coreflective.comparison_full Modified Mathlib/CategoryTheory/Monoidal/Braided/Basic.lean +/- theorem CategoryTheory.tensor_μ_natural_left Modified Mathlib/CategoryTheory/Monoidal/Category.lean Modified Mathlib/CategoryTheory/Monoidal/Center.lean +/- theorem CategoryTheory.Center.whiskerRight_comm Modified Mathlib/CategoryTheory/Shift/CommShift.lean Modified Mathlib/CategoryTheory/Sites/Coherent/CoherentTopology.lean Modified Mathlib/CategoryTheory/Sites/LocallySurjective.lean Modified Mathlib/Combinatorics/SimpleGraph/Coloring.lean Modified Mathlib/Computability/AkraBazzi/AkraBazzi.lean +/- theorem AkraBazziRecurrence.eventually_asympBound_pos +/- theorem AkraBazziRecurrence.eventually_asympBound_r_pos +/- theorem AkraBazziRecurrence.eventually_b_le_r +/- theorem AkraBazziRecurrence.eventually_bi_mul_le_r +/- theorem AkraBazziRecurrence.eventually_log_b_mul_pos +/- theorem AkraBazziRecurrence.eventually_one_add_smoothingFn_nonneg +/- theorem AkraBazziRecurrence.eventually_one_add_smoothingFn_pos +/- theorem AkraBazziRecurrence.eventually_one_add_smoothingFn_r_pos +/- theorem AkraBazziRecurrence.eventually_one_sub_smoothingFn_nonneg +/- theorem AkraBazziRecurrence.eventually_one_sub_smoothingFn_pos +/- theorem AkraBazziRecurrence.eventually_one_sub_smoothingFn_pos_real +/- theorem AkraBazziRecurrence.eventually_one_sub_smoothingFn_r_pos +/- theorem AkraBazziRecurrence.eventually_r_ge +/- theorem AkraBazziRecurrence.eventually_r_le_b +/- theorem AkraBazziRecurrence.eventually_r_lt_n +/- theorem AkraBazziRecurrence.eventually_r_pos +/- theorem AkraBazziRecurrence.isEquivalent_one_add_smoothingFn_one +/- theorem AkraBazziRecurrence.isEquivalent_one_sub_smoothingFn_one +/- theorem AkraBazziRecurrence.isLittleO_self_div_log_id +/- theorem AkraBazziRecurrence.isLittleO_smoothingFn_one +/- theorem AkraBazziRecurrence.strictAntiOn_one_add_smoothingFn +/- theorem AkraBazziRecurrence.strictMonoOn_one_sub_smoothingFn Modified Mathlib/Computability/AkraBazzi/GrowsPolynomially.lean Modified Mathlib/Control/Fix.lean Modified Mathlib/Data/Complex/Basic.lean Modified Mathlib/Data/Fin/Basic.lean +/- theorem Fin.predAbove_castSucc_of_le Modified Mathlib/Data/Finset/Pointwise.lean Modified Mathlib/Data/Finsupp/Basic.lean +/- def Finsupp.filterAddHom Modified Mathlib/Data/Fintype/Basic.lean - theorem Finset.univ_nontrivial_iff: + theorem Finset.univ_nontrivial_iff Modified Mathlib/Data/Fintype/Perm.lean Modified Mathlib/Data/List/Defs.lean Modified Mathlib/Data/Matrix/Hadamard.lean Modified Mathlib/Data/Matrix/RowCol.lean +/- theorem Matrix.col_injective Modified Mathlib/Data/NNReal/Basic.lean Modified Mathlib/Data/Nat/Digits.lean Modified Mathlib/Data/Nat/Factorial/SuperFactorial.lean Modified Mathlib/Data/PFunctor/Multivariate/M.lean Modified Mathlib/Data/PNat/Basic.lean +/- theorem PNat.le_sub_one_of_lt Modified Mathlib/Data/QPF/Multivariate/Constructions/Cofix.lean Modified Mathlib/Data/Seq/Computation.lean Modified Mathlib/Data/Seq/Seq.lean Modified Mathlib/Data/Sign.lean Modified Mathlib/Data/Subtype.lean Modified Mathlib/Data/Vector/Basic.lean Modified Mathlib/Data/ZMod/Module.lean - theorem AddMonoidHom.toZModLinearMap_injective: + theorem AddMonoidHom.toZModLinearMap_injective Modified Mathlib/FieldTheory/Galois.lean Modified Mathlib/FieldTheory/IntermediateField.lean +/- theorem IntermediateField.gc_map_comap Modified Mathlib/Geometry/Euclidean/Triangle.lean Modified Mathlib/Geometry/Manifold/Instances/Sphere.lean Modified Mathlib/Geometry/Manifold/Sheaf/Smooth.lean Modified Mathlib/Geometry/Manifold/SmoothManifoldWithCorners.lean +/- theorem PartialHomeomorph.extend_left_inv' Modified Mathlib/GroupTheory/GroupAction/FixedPoints.lean +/- theorem MulAction.fixedBy_mem_fixedBy_of_commute +/- theorem MulAction.movedBy_mem_fixedBy_of_commute +/- theorem MulAction.smul_fixedBy Modified Mathlib/GroupTheory/GroupAction/Hom.lean Modified Mathlib/GroupTheory/HNNExtension.lean Modified Mathlib/GroupTheory/MonoidLocalization.lean Modified Mathlib/GroupTheory/OrderOfElement.lean Modified Mathlib/LinearAlgebra/AffineSpace/ContinuousAffineEquiv.lean +/- def ContinuousAffineEquiv.Simps.coe Modified Mathlib/LinearAlgebra/FiniteDimensional.lean Modified Mathlib/LinearAlgebra/LinearIndependent.lean Modified Mathlib/LinearAlgebra/Matrix/Determinant/Basic.lean Modified Mathlib/LinearAlgebra/Matrix/SpecialLinearGroup.lean +/- theorem Matrix.SpecialLinearGroup.isCoprime_col +/- theorem Matrix.SpecialLinearGroup.isCoprime_row Modified Mathlib/LinearAlgebra/PiTensorProduct.lean Modified Mathlib/LinearAlgebra/Projection.lean Modified Mathlib/LinearAlgebra/Span.lean Modified Mathlib/LinearAlgebra/TensorProduct/RightExactness.lean Modified Mathlib/Logic/Basic.lean Modified Mathlib/Logic/Encodable/Basic.lean Modified Mathlib/Logic/Equiv/Basic.lean Modified Mathlib/Logic/Function/Basic.lean Modified Mathlib/Logic/Nontrivial/Basic.lean Modified Mathlib/Logic/Nontrivial/Defs.lean Modified Mathlib/MeasureTheory/Function/ConditionalExpectation/Real.lean Modified Mathlib/MeasureTheory/Group/GeometryOfNumbers.lean Modified Mathlib/MeasureTheory/Integral/CircleIntegral.lean Modified Mathlib/MeasureTheory/Integral/DominatedConvergence.lean Modified Mathlib/MeasureTheory/Integral/Gamma.lean Modified Mathlib/MeasureTheory/Integral/IntervalIntegral.lean Modified Mathlib/MeasureTheory/Integral/Layercake.lean Modified Mathlib/MeasureTheory/Measure/Lebesgue/Integral.lean Modified Mathlib/MeasureTheory/Measure/Lebesgue/VolumeOfBalls.lean Modified Mathlib/MeasureTheory/Measure/Typeclasses.lean Modified Mathlib/NumberTheory/ADEInequality.lean Modified Mathlib/NumberTheory/ArithmeticFunction.lean +/- theorem ArithmeticFunction.prodPrimeFactors_apply Modified Mathlib/NumberTheory/Cyclotomic/Discriminant.lean Modified Mathlib/NumberTheory/Cyclotomic/Rat.lean Modified Mathlib/NumberTheory/FLT/Basic.lean +/- theorem isCoprime_of_gcd_eq_one_of_FLT Modified Mathlib/NumberTheory/FLT/Three.lean Modified Mathlib/NumberTheory/Harmonic/Bounds.lean Modified Mathlib/NumberTheory/LSeries/AbstractFuncEq.lean Modified Mathlib/NumberTheory/ModularForms/JacobiTheta/TwoVariable.lean Modified Mathlib/NumberTheory/NumberField/CanonicalEmbedding/Basic.lean Modified Mathlib/NumberTheory/NumberField/CanonicalEmbedding/ConvexBody.lean Modified Mathlib/NumberTheory/NumberField/ClassNumber.lean Modified Mathlib/NumberTheory/NumberField/Discriminant.lean Modified Mathlib/NumberTheory/NumberField/Embeddings.lean Modified Mathlib/NumberTheory/NumberField/Units/DirichletTheorem.lean Modified Mathlib/NumberTheory/SmoothNumbers.lean +/- def Nat.equivProdNatFactoredNumbers +/- theorem Nat.equivProdNatFactoredNumbers_apply' +/- theorem Nat.equivProdNatFactoredNumbers_apply +/- def Nat.equivProdNatSmoothNumbers +/- theorem Nat.equivProdNatSmoothNumbers_apply' +/- theorem Nat.equivProdNatSmoothNumbers_apply Modified Mathlib/Order/Compare.lean Modified Mathlib/Order/Filter/Archimedean.lean Modified Mathlib/Order/Interval/Finset/Nat.lean +/- theorem Nat.range_eq_Icc_zero_sub_one Modified Mathlib/Order/Monotone/Basic.lean Modified Mathlib/Probability/StrongLaw.lean Modified Mathlib/RingTheory/Binomial.lean +/- def Ring.choose Modified Mathlib/RingTheory/FractionalIdeal/Norm.lean Modified Mathlib/RingTheory/Ideal/Basic.lean Modified Mathlib/RingTheory/Polynomial/Chebyshev.lean Modified Mathlib/RingTheory/Polynomial/Pochhammer.lean Modified Mathlib/RingTheory/RingHomProperties.lean Modified Mathlib/RingTheory/UniqueFactorizationDomain.lean Modified Mathlib/RingTheory/Valuation/ValuationRing.lean Modified Mathlib/RingTheory/WittVector/Frobenius.lean Modified Mathlib/RingTheory/WittVector/WittPolynomial.lean Modified Mathlib/SetTheory/Cardinal/CountableCover.lean Modified Mathlib/SetTheory/Game/Basic.lean +/- theorem SetTheory.PGame.quot_neg_mul_neg Modified Mathlib/SetTheory/Ordinal/FixedPointApproximants.lean +/- theorem OrdinalApprox.gfpApprox_le Modified Mathlib/SetTheory/Ordinal/Notation.lean Modified Mathlib/Tactic/FunProp/ToBatteries.lean Modified Mathlib/Topology/Algebra/UniformField.lean Modified Mathlib/Topology/Category/CompHausLike/Limits.lean Modified Mathlib/Topology/Category/Profinite/Nobeling.lean Modified Mathlib/Topology/Compactness/Compact.lean Modified Mathlib/Topology/Compactness/PseudometrizableLindelof.lean Modified Mathlib/Topology/GDelta.lean +/- theorem IsMeagre.mono Modified Mathlib/Topology/Homotopy/Product.lean Modified Mathlib/Topology/Instances/CantorSet.lean +/- theorem isClosed_preCantorSet Modified Mathlib/Topology/Maps.lean +/- theorem Embedding.toOpenEmbedding_of_surjective Modified Mathlib/Topology/Order/Hom/Esakia.lean Modified Mathlib/Topology/Order/UpperLowerSetTopology.lean +/- theorem Topology.WithLowerSet.map_comp +/- theorem Topology.WithUpperSet.map_comp Modified Mathlib/Topology/Separation.lean +/- theorem IsClosed.HasSeparatingCover Modified Mathlib/Topology/Sheaves/Stalks.lean Modified Mathlib/Topology/Spectral/Hom.lean Modified Mathlib/Topology/UniformSpace/UniformConvergenceTopology.lean 2024-07-11 10:12:16 25864f5 feat: add a version of `Ideal.associatesEquivIsPrincipal` for generators that are non-zero-divisors (#12780) This PR defines the following equiv: ```lean def Ideal.associatesNonZeroDivisorsEquivIsPrincipal : Associates R⁰ ≃ {I : (Ideal R)⁰ // IsPrincipal (I : Ideal R)} ``` and also a `MulEquiv` version. ESTIMATED CHANGES Modified Mathlib/RingTheory/Ideal/IsPrincipal.lean + theorem Ideal.associatesNonZeroDivisorsEquivIsPrincipal_apply + theorem Ideal.associatesNonZeroDivisorsEquivIsPrincipal_coe + theorem Ideal.associatesNonZeroDivisorsEquivIsPrincipal_map_one + theorem Ideal.associatesNonZeroDivisorsEquivIsPrincipal_mul + def Ideal.isPrincipalNonZeroDivisorsSubmonoid Modified Mathlib/RingTheory/Ideal/Operations.lean + theorem Ideal.span_singleton_nonZeroDivisors 2024-07-11 09:23:14 a5e8286 feat: more lemmas about `List.dedup` and other lattice operations (#14282) Also the trivial `Multiset` wrappers. ESTIMATED CHANGES Modified Mathlib/Data/List/Dedup.lean + theorem List.Disjoint.dedup_append + theorem List.Disjoint.union_eq + theorem List.Subset.dedup_append_right + theorem List.dedup_map_of_injective Modified Mathlib/Data/List/Lattice.lean + theorem List.Subset.inter_eq_left + theorem List.Subset.union_eq_right + theorem List.inter_nil' Modified Mathlib/Data/Multiset/Dedup.lean + theorem List.Subset.dedup_append_left + theorem Multiset.Disjoint.dedup_add + theorem Multiset.Subset.dedup_add_left + theorem Multiset.Subset.dedup_add_right + theorem Multiset.dedup_map_of_injective Modified Mathlib/Data/Multiset/FinsetOps.lean + theorem Multiset.Disjoint.ndunion_eq + theorem Multiset.Subset.ndinter_eq_left + theorem Multiset.Subset.ndunion_eq_right 2024-07-11 08:58:41 f056c2f fix: remove an unused import; add a missing docstring bracket (#14629) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Limits/ConcreteCategory.lean 2024-07-11 08:27:14 250f71b feat: add polynomial Wronskian (#14243) Define wronskian for polynomials over commutative rings, and prove some basic properties. This is mainly for the porting of our (me and @jcpaik) formalization of [Mason-Stothers theorem](https://github.com/seewoo5/lean-poly-abc). We already discussed about this in [Zulip](https://leanprover.zulipchat.com/#narrow/stream/217875-Is-there-code-for-X.3F/topic/Ring.20with.20derivation/near/447378869). Especially, it may possible to improve as * Replace `CommRing` with `Ring` * or more generally, Wronskian can be defined over any ring with `Derivation`, and most of the theorems we proved should also hold in this context ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Polynomial/Degree/Definitions.lean + theorem Polynomial.degree_ne_bot Added Mathlib/RingTheory/Polynomial/Wronskian.lean + theorem Polynomial.degree_wronskian_lt_add + theorem Polynomial.isAlt_wronskianBilin + theorem Polynomial.natDegree_wronskian_lt_add + def Polynomial.wronskian + def Polynomial.wronskianBilin + theorem Polynomial.wronskianBilin_apply + theorem Polynomial.wronskian_add_left + theorem Polynomial.wronskian_add_right + theorem Polynomial.wronskian_eq_of_sum_zero + theorem Polynomial.wronskian_neg_eq + theorem Polynomial.wronskian_neg_left + theorem Polynomial.wronskian_neg_right + theorem Polynomial.wronskian_self_eq_zero + theorem Polynomial.wronskian_zero_left + theorem Polynomial.wronskian_zero_right 2024-07-11 08:13:55 ea58bd5 chore: robustify proof in CategoryTheory.GlueData (#14634) (With https://github.com/leanprover/lean4/pull/4595, `aesop` goes astray here, and this proof is better anyway.) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/GlueData.lean 2024-07-11 08:00:29 b7d36b6 chore(Analysis/Calculus/FDeriv/Extend): use Lean 4 naming scheme (#14632) Most of the declarations in this file are still named according to the Lean 3 naming scheme. ESTIMATED CHANGES Modified Mathlib/Analysis/Calculus/FDeriv/Extend.lean + theorem hasDerivWithinAt_Ici_of_tendsto_deriv + theorem hasDerivWithinAt_Iic_of_tendsto_deriv + theorem hasFDerivWithinAt_closure_of_tendsto_fderiv - theorem has_deriv_at_interval_left_endpoint_of_tendsto_deriv - theorem has_deriv_at_interval_right_endpoint_of_tendsto_deriv - theorem has_fderiv_at_boundary_of_tendsto_fderiv 2024-07-11 07:50:09 fba419c chore(CategoryTheory/Limits/Shapes/BinaryProducts): don't use tactics to construct data (#14636) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Limits/Shapes/BinaryProducts.lean 2024-07-11 01:10:39 4eb7373 chore (AlgebraicGeometry.PrimeSpectrum): move results not requiring Zariski topology to files in `RingTheory` (#14631) Results from `AlgebraicGeometry` are used back in `RingTheory` with many unecessary imports coming along with it. We move all possible results from `AlgebraicGeometry.PrimeSpectrum.Basic` and `AlgebraicGeometry.PrimeSpectrum.Noetherian` to a new file `RingTheory.PrimeSpectrum` and all possilbe results from `AlgebraicGeometry.PrimeSpectrum.Maximal` to a new file `RingTheory.MaximalSpectrum`. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Module/PID.lean Modified Mathlib/AlgebraicGeometry/PrimeSpectrum/Basic.lean - theorem PrimeSpectrum.coe_vanishingIdeal - theorem PrimeSpectrum.gc - theorem PrimeSpectrum.gc_set - theorem PrimeSpectrum.le_vanishingIdeal_zeroLocus - theorem PrimeSpectrum.mem_compl_zeroLocus_iff_not_mem - theorem PrimeSpectrum.mem_vanishingIdeal - theorem PrimeSpectrum.mem_zeroLocus - def PrimeSpectrum.primeSpectrumProdOfSum - theorem PrimeSpectrum.primeSpectrumProd_symm_inl_asIdeal - theorem PrimeSpectrum.primeSpectrumProd_symm_inr_asIdeal - theorem PrimeSpectrum.subset_vanishingIdeal_zeroLocus - theorem PrimeSpectrum.subset_zeroLocus_iff_le_vanishingIdeal - theorem PrimeSpectrum.subset_zeroLocus_iff_subset_vanishingIdeal - theorem PrimeSpectrum.subset_zeroLocus_vanishingIdeal - theorem PrimeSpectrum.sup_vanishingIdeal_le - theorem PrimeSpectrum.union_zeroLocus - def PrimeSpectrum.vanishingIdeal - theorem PrimeSpectrum.vanishingIdeal_anti_mono - theorem PrimeSpectrum.vanishingIdeal_empty - theorem PrimeSpectrum.vanishingIdeal_eq_top_iff - theorem PrimeSpectrum.vanishingIdeal_iUnion - theorem PrimeSpectrum.vanishingIdeal_singleton - theorem PrimeSpectrum.vanishingIdeal_union - theorem PrimeSpectrum.vanishingIdeal_zeroLocus_eq_radical - def PrimeSpectrum.zeroLocus - theorem PrimeSpectrum.zeroLocus_anti_mono - theorem PrimeSpectrum.zeroLocus_anti_mono_ideal - theorem PrimeSpectrum.zeroLocus_bUnion - theorem PrimeSpectrum.zeroLocus_bot - theorem PrimeSpectrum.zeroLocus_empty - theorem PrimeSpectrum.zeroLocus_empty_iff_eq_top - theorem PrimeSpectrum.zeroLocus_empty_of_one_mem - theorem PrimeSpectrum.zeroLocus_eq_top_iff - theorem PrimeSpectrum.zeroLocus_iSup - theorem PrimeSpectrum.zeroLocus_iUnion - theorem PrimeSpectrum.zeroLocus_iUnion₂ - theorem PrimeSpectrum.zeroLocus_inf - theorem PrimeSpectrum.zeroLocus_mul - theorem PrimeSpectrum.zeroLocus_pow - theorem PrimeSpectrum.zeroLocus_radical - theorem PrimeSpectrum.zeroLocus_singleton_mul - theorem PrimeSpectrum.zeroLocus_singleton_one - theorem PrimeSpectrum.zeroLocus_singleton_pow - theorem PrimeSpectrum.zeroLocus_singleton_zero - theorem PrimeSpectrum.zeroLocus_span - theorem PrimeSpectrum.zeroLocus_subset_zeroLocus_iff - theorem PrimeSpectrum.zeroLocus_subset_zeroLocus_singleton_iff - theorem PrimeSpectrum.zeroLocus_sup - theorem PrimeSpectrum.zeroLocus_union - theorem PrimeSpectrum.zeroLocus_univ - structure PrimeSpectrum Modified Mathlib/AlgebraicGeometry/PrimeSpectrum/Maximal.lean - theorem MaximalSpectrum.iInf_localization_eq_bot - def MaximalSpectrum.toPrimeSpectrum - theorem MaximalSpectrum.toPrimeSpectrum_injective - structure MaximalSpectrum - theorem PrimeSpectrum.iInf_localization_eq_bot Modified Mathlib/AlgebraicGeometry/PrimeSpectrum/Noetherian.lean - theorem PrimeSpectrum.exists_primeSpectrum_prod_le - theorem PrimeSpectrum.exists_primeSpectrum_prod_le_and_ne_bot_of_domain Modified Mathlib/RingTheory/DedekindDomain/Ideal.lean Added Mathlib/RingTheory/MaximalSpectrum.lean + theorem MaximalSpectrum.iInf_localization_eq_bot + def MaximalSpectrum.toPrimeSpectrum + theorem MaximalSpectrum.toPrimeSpectrum_injective + structure MaximalSpectrum + theorem PrimeSpectrum.iInf_localization_eq_bot Modified Mathlib/RingTheory/Nullstellensatz.lean Added Mathlib/RingTheory/PrimeSpectrum.lean + theorem PrimeSpectrum.coe_vanishingIdeal + theorem PrimeSpectrum.exists_primeSpectrum_prod_le + theorem PrimeSpectrum.exists_primeSpectrum_prod_le_and_ne_bot_of_domain + theorem PrimeSpectrum.gc + theorem PrimeSpectrum.gc_set + theorem PrimeSpectrum.le_vanishingIdeal_zeroLocus + theorem PrimeSpectrum.mem_compl_zeroLocus_iff_not_mem + theorem PrimeSpectrum.mem_vanishingIdeal + theorem PrimeSpectrum.mem_zeroLocus + def PrimeSpectrum.primeSpectrumProdOfSum + theorem PrimeSpectrum.primeSpectrumProd_symm_inl_asIdeal + theorem PrimeSpectrum.primeSpectrumProd_symm_inr_asIdeal + theorem PrimeSpectrum.subset_vanishingIdeal_zeroLocus + theorem PrimeSpectrum.subset_zeroLocus_iff_le_vanishingIdeal + theorem PrimeSpectrum.subset_zeroLocus_iff_subset_vanishingIdeal + theorem PrimeSpectrum.subset_zeroLocus_vanishingIdeal + theorem PrimeSpectrum.sup_vanishingIdeal_le + theorem PrimeSpectrum.union_zeroLocus + def PrimeSpectrum.vanishingIdeal + theorem PrimeSpectrum.vanishingIdeal_anti_mono + theorem PrimeSpectrum.vanishingIdeal_empty + theorem PrimeSpectrum.vanishingIdeal_eq_top_iff + theorem PrimeSpectrum.vanishingIdeal_iUnion + theorem PrimeSpectrum.vanishingIdeal_singleton + theorem PrimeSpectrum.vanishingIdeal_union + theorem PrimeSpectrum.vanishingIdeal_zeroLocus_eq_radical + def PrimeSpectrum.zeroLocus + theorem PrimeSpectrum.zeroLocus_anti_mono + theorem PrimeSpectrum.zeroLocus_anti_mono_ideal + theorem PrimeSpectrum.zeroLocus_bUnion + theorem PrimeSpectrum.zeroLocus_bot + theorem PrimeSpectrum.zeroLocus_empty + theorem PrimeSpectrum.zeroLocus_empty_iff_eq_top + theorem PrimeSpectrum.zeroLocus_empty_of_one_mem + theorem PrimeSpectrum.zeroLocus_eq_top_iff + theorem PrimeSpectrum.zeroLocus_iSup + theorem PrimeSpectrum.zeroLocus_iUnion + theorem PrimeSpectrum.zeroLocus_iUnion₂ + theorem PrimeSpectrum.zeroLocus_inf + theorem PrimeSpectrum.zeroLocus_mul + theorem PrimeSpectrum.zeroLocus_pow + theorem PrimeSpectrum.zeroLocus_radical + theorem PrimeSpectrum.zeroLocus_singleton_mul + theorem PrimeSpectrum.zeroLocus_singleton_one + theorem PrimeSpectrum.zeroLocus_singleton_pow + theorem PrimeSpectrum.zeroLocus_singleton_zero + theorem PrimeSpectrum.zeroLocus_span + theorem PrimeSpectrum.zeroLocus_subset_zeroLocus_iff + theorem PrimeSpectrum.zeroLocus_subset_zeroLocus_singleton_iff + theorem PrimeSpectrum.zeroLocus_sup + theorem PrimeSpectrum.zeroLocus_union + theorem PrimeSpectrum.zeroLocus_univ + structure PrimeSpectrum 2024-07-11 00:43:26 27e16a4 chore: protect `QuadraticForm.map_zero` (#14633) ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/QuadraticForm/Basic.lean - theorem QuadraticForm.map_zero 2024-07-10 23:59:30 fe8ed50 fix(nlinarith): make `findSquares` deterministic (#14586) Previously the order in which the assumptions were added was determined by `Expr` hashes, which while deterministic are not part of the user's mental model. This matters (see [Zulip](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/nlinarith.20is.20affected.20by.20.60example.60s/near/449994710)) because it then affects the order in which metavariables are unified. As a bonus(?), this now means that squares are now found up to reducible defeq. ESTIMATED CHANGES Modified Mathlib/Tactic/Linarith/Preprocessing.lean Modified test/linarith.lean 2024-07-10 22:15:51 fdc4c84 fix: rewrite update_dependencies_zulip action (#14630) ESTIMATED CHANGES Modified .github/workflows/update_dependencies_zulip.yml 2024-07-10 20:53:24 3162e25 docs(README): Rename "Emeritus maintainers" to "Past maintainers" (#14615) As discussed at the maintainers meeting. This more accurately reflects their position, in that they are not expected to remain involved in maintainer discussions. ESTIMATED CHANGES Modified README.md 2024-07-10 19:54:26 fb67f1e chore: fix two typos (#14624) ESTIMATED CHANGES Modified Mathlib/Analysis/FunctionalSpaces/SobolevInequality.lean Modified Mathlib/FieldTheory/Adjoin.lean 2024-07-10 19:54:24 84f4725 chore: close all open sections or namespaces at the end of each file (#14621) Automatically generated from the linter in #14378. #14620 contains a few manual tweaks; these PRs can be landed in any order (and the second one rebased on the first). ESTIMATED CHANGES Modified Archive/Examples/IfNormalization/Result.lean Modified Archive/Examples/IfNormalization/WithoutAesop.lean Modified Archive/Imo/Imo1959Q2.lean Modified Archive/Imo/Imo1960Q2.lean Modified Archive/Imo/Imo1986Q5.lean Modified Mathlib/Algebra/AddConstMap/Basic.lean Modified Mathlib/Algebra/Algebra/Subalgebra/Prod.lean Modified Mathlib/Algebra/Category/ModuleCat/ChangeOfRings.lean Modified Mathlib/Algebra/Category/ModuleCat/Sheaf/Colimits.lean Modified Mathlib/Algebra/GroupWithZero/Indicator.lean Modified Mathlib/Algebra/Homology/Homotopy.lean Modified Mathlib/Algebra/Homology/ShortComplex/Abelian.lean Modified Mathlib/Algebra/Lie/Derivation/Killing.lean Modified Mathlib/Algebra/Lie/TraceForm.lean Modified Mathlib/Algebra/Module/Submodule/Order.lean Modified Mathlib/Algebra/MvPolynomial/Polynomial.lean Modified Mathlib/Algebra/Order/BigOperators/Group/Multiset.lean Modified Mathlib/Algebra/Order/Nonneg/Floor.lean Modified Mathlib/Algebra/Order/Ring/Star.lean Modified Mathlib/Algebra/PUnitInstances/Algebra.lean Modified Mathlib/Algebra/PUnitInstances/Order.lean Modified Mathlib/Algebra/Polynomial/CancelLeads.lean Modified Mathlib/Algebra/Polynomial/Derivation.lean Modified Mathlib/Algebra/Polynomial/Smeval.lean Modified Mathlib/Algebra/Star/RingQuot.lean Modified Mathlib/Algebra/Vertex/HVertexOperator.lean Modified Mathlib/AlgebraicTopology/FundamentalGroupoid/Product.lean Modified Mathlib/Analysis/Calculus/InverseFunctionTheorem/FiniteDimensional.lean Modified Mathlib/Analysis/Complex/Convex.lean Modified Mathlib/Analysis/Convex/EGauge.lean Modified Mathlib/Analysis/Convex/Mul.lean Modified Mathlib/Analysis/Distribution/FourierSchwartz.lean Modified Mathlib/Analysis/NormedSpace/Exponential.lean Modified Mathlib/Analysis/NormedSpace/HomeomorphBall.lean Modified Mathlib/Analysis/NormedSpace/Span.lean Modified Mathlib/Analysis/SpecialFunctions/Complex/Circle.lean Modified Mathlib/CategoryTheory/Adjunction/Unique.lean Modified Mathlib/CategoryTheory/Bicategory/Functor/Oplax.lean Modified Mathlib/CategoryTheory/Bicategory/Functor/Prelax.lean Modified Mathlib/CategoryTheory/Category/Factorisation.lean Modified Mathlib/CategoryTheory/EffectiveEpi/Basic.lean Modified Mathlib/CategoryTheory/EffectiveEpi/Comp.lean Modified Mathlib/CategoryTheory/EffectiveEpi/Coproduct.lean Modified Mathlib/CategoryTheory/EffectiveEpi/Enough.lean Modified Mathlib/CategoryTheory/EffectiveEpi/Extensive.lean Modified Mathlib/CategoryTheory/EffectiveEpi/Preserves.lean Modified Mathlib/CategoryTheory/EffectiveEpi/RegularEpi.lean Modified Mathlib/CategoryTheory/FiberedCategory/Cartesian.lean Modified Mathlib/CategoryTheory/Limits/Final/ParallelPair.lean Modified Mathlib/CategoryTheory/Limits/FunctorCategory.lean Modified Mathlib/CategoryTheory/Limits/HasLimits.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Equalizers.lean Modified Mathlib/CategoryTheory/Sites/Coherent/CoherentSheaves.lean Modified Mathlib/CategoryTheory/Sites/Coherent/Comparison.lean Modified Mathlib/CategoryTheory/Sites/Coherent/Equivalence.lean Modified Mathlib/CategoryTheory/Sites/Coherent/ExtensiveTopology.lean Modified Mathlib/CategoryTheory/Sites/EqualizerSheafCondition.lean Modified Mathlib/CategoryTheory/Sites/IsSheafFor.lean Modified Mathlib/Combinatorics/SimpleGraph/Connectivity/Subgraph.lean Modified Mathlib/Combinatorics/SimpleGraph/Operations.lean Modified Mathlib/Data/Complex/Abs.lean Modified Mathlib/Data/Int/NatPrime.lean Modified Mathlib/Data/List/Enum.lean Modified Mathlib/Data/List/InsertNth.lean Modified Mathlib/Data/List/ReduceOption.lean Modified Mathlib/Data/Matrix/RowCol.lean Modified Mathlib/Data/Matroid/Basic.lean Modified Mathlib/Data/Matroid/Constructions.lean Modified Mathlib/Data/Matroid/Dual.lean Modified Mathlib/Data/Matroid/IndepAxioms.lean Modified Mathlib/Data/Matroid/Map.lean Modified Mathlib/Data/Nat/Cast/Field.lean Modified Mathlib/Data/Nat/MaxPowDiv.lean Modified Mathlib/Data/Nat/ModEq.lean Modified Mathlib/Data/Rat/Cast/Lemmas.lean Modified Mathlib/Data/Set/Card.lean Modified Mathlib/FieldTheory/RatFunc/Basic.lean Modified Mathlib/FieldTheory/RatFunc/Defs.lean Modified Mathlib/FieldTheory/RatFunc/Degree.lean Modified Mathlib/Geometry/Euclidean/Inversion/ImageHyperplane.lean Modified Mathlib/Geometry/RingedSpace/LocallyRingedSpace/ResidueField.lean Modified Mathlib/GroupTheory/Coprod/Basic.lean Modified Mathlib/GroupTheory/GroupAction/Basic.lean Modified Mathlib/GroupTheory/GroupAction/DomAct/Basic.lean Modified Mathlib/GroupTheory/GroupAction/Hom.lean Modified Mathlib/GroupTheory/Perm/Closure.lean Modified Mathlib/LinearAlgebra/Basis/Flag.lean Modified Mathlib/LinearAlgebra/BilinearForm/DualLattice.lean Modified Mathlib/LinearAlgebra/BilinearForm/Orthogonal.lean Modified Mathlib/LinearAlgebra/Dimension/Basic.lean Modified Mathlib/LinearAlgebra/Matrix/BilinearForm.lean Modified Mathlib/LinearAlgebra/Matrix/Determinant/Misc.lean Modified Mathlib/LinearAlgebra/Matrix/ProjectiveSpecialLinearGroup.lean Modified Mathlib/Mathport/Syntax.lean Modified Mathlib/MeasureTheory/Function/LpSeminorm/ChebyshevMarkov.lean Modified Mathlib/MeasureTheory/Function/LpSeminorm/CompareExp.lean Modified Mathlib/MeasureTheory/Function/LpSeminorm/TriangleInequality.lean Modified Mathlib/MeasureTheory/Group/Integral.lean Modified Mathlib/MeasureTheory/Integral/Asymptotics.lean Modified Mathlib/MeasureTheory/Integral/DominatedConvergence.lean Modified Mathlib/MeasureTheory/Integral/Marginal.lean Modified Mathlib/MeasureTheory/Measure/Count.lean Modified Mathlib/MeasureTheory/Measure/Dirac.lean Modified Mathlib/MeasureTheory/Measure/DiracProba.lean Modified Mathlib/MeasureTheory/Measure/EverywherePos.lean Modified Mathlib/MeasureTheory/OuterMeasure/AE.lean Modified Mathlib/MeasureTheory/OuterMeasure/Basic.lean Modified Mathlib/MeasureTheory/OuterMeasure/Caratheodory.lean Modified Mathlib/MeasureTheory/OuterMeasure/Defs.lean Modified Mathlib/MeasureTheory/OuterMeasure/Induced.lean Modified Mathlib/MeasureTheory/OuterMeasure/OfFunction.lean Modified Mathlib/MeasureTheory/OuterMeasure/Operations.lean Modified Mathlib/NumberTheory/Cyclotomic/Three.lean Modified Mathlib/NumberTheory/LSeries/AbstractFuncEq.lean Modified Mathlib/NumberTheory/LSeries/Dirichlet.lean Modified Mathlib/NumberTheory/LSeries/HurwitzZeta.lean Modified Mathlib/NumberTheory/ModularForms/Basic.lean Modified Mathlib/NumberTheory/ModularForms/EisensteinSeries/Basic.lean Modified Mathlib/NumberTheory/ModularForms/EisensteinSeries/Defs.lean Modified Mathlib/NumberTheory/ModularForms/EisensteinSeries/IsBoundedAtImInfty.lean Modified Mathlib/NumberTheory/ModularForms/EisensteinSeries/MDifferentiable.lean Modified Mathlib/NumberTheory/ModularForms/EisensteinSeries/UniformConvergence.lean Modified Mathlib/NumberTheory/MulChar/Basic.lean Modified Mathlib/NumberTheory/NumberField/FractionalIdeal.lean Modified Mathlib/NumberTheory/NumberField/Units/Basic.lean Modified Mathlib/NumberTheory/NumberField/Units/Regulator.lean Modified Mathlib/Order/Filter/CountableSeparatingOn.lean Modified Mathlib/Order/Filter/EventuallyConst.lean Modified Mathlib/Order/Filter/ListTraverse.lean Modified Mathlib/Order/Filter/Subsingleton.lean Modified Mathlib/Order/FixedPoints.lean Modified Mathlib/Order/Interval/Set/OrdConnected.lean Modified Mathlib/Order/Interval/Set/OrdConnectedComponent.lean Modified Mathlib/Order/PrimeSeparator.lean Modified Mathlib/Order/SemiconjSup.lean Modified Mathlib/Probability/Distributions/Exponential.lean Modified Mathlib/Probability/Distributions/Gamma.lean Modified Mathlib/Probability/Distributions/Uniform.lean Modified Mathlib/Probability/Kernel/Disintegration/MeasurableStieltjes.lean Modified Mathlib/Probability/ProbabilityMassFunction/Integrals.lean Modified Mathlib/RepresentationTheory/Rep.lean Modified Mathlib/RingTheory/AdicCompletion/Algebra.lean Modified Mathlib/RingTheory/AdicCompletion/Exactness.lean Modified Mathlib/RingTheory/Bialgebra/Basic.lean Modified Mathlib/RingTheory/EuclideanDomain.lean Modified Mathlib/RingTheory/FractionalIdeal/Norm.lean Modified Mathlib/RingTheory/HahnSeries/Addition.lean Modified Mathlib/RingTheory/HahnSeries/PowerSeries.lean Modified Mathlib/RingTheory/HopfAlgebra.lean Modified Mathlib/RingTheory/Ideal/IsPrincipal.lean Modified Mathlib/RingTheory/LocalRing/Module.lean Modified Mathlib/RingTheory/Localization/Finiteness.lean Modified Mathlib/RingTheory/Localization/Module.lean Modified Mathlib/RingTheory/Presentation.lean Modified Mathlib/RingTheory/RootsOfUnity/Lemmas.lean Modified Mathlib/RingTheory/Unramified/Derivations.lean Modified Mathlib/SetTheory/Cardinal/Ordinal.lean Modified Mathlib/SetTheory/Game/Basic.lean Modified Mathlib/SetTheory/Game/Birthday.lean Modified Mathlib/SetTheory/Game/Domineering.lean Modified Mathlib/SetTheory/Game/Impartial.lean Modified Mathlib/SetTheory/Game/Nim.lean Modified Mathlib/SetTheory/Game/PGame.lean Modified Mathlib/SetTheory/Game/Short.lean Modified Mathlib/SetTheory/Game/State.lean Modified Mathlib/Tactic/Abel.lean Modified Mathlib/Tactic/CategoryTheory/BicategoryCoherence.lean Modified Mathlib/Tactic/CategoryTheory/Coherence.lean Modified Mathlib/Tactic/CategoryTheory/MonoidalComp.lean Modified Mathlib/Tactic/FieldSimp.lean Modified Mathlib/Tactic/FinCases.lean Modified Mathlib/Tactic/Group.lean Modified Mathlib/Tactic/IntervalCases.lean Modified Mathlib/Tactic/Linarith/Datatypes.lean Modified Mathlib/Tactic/Linarith/Lemmas.lean Modified Mathlib/Tactic/LinearCombination.lean Modified Mathlib/Tactic/ModCases.lean Modified Mathlib/Tactic/NormNum/Basic.lean Modified Mathlib/Tactic/NormNum/BigOperators.lean Modified Mathlib/Tactic/NormNum/NatFib.lean Modified Mathlib/Tactic/NormNum/OfScientific.lean Modified Mathlib/Tactic/NormNum/Pow.lean Modified Mathlib/Tactic/NormNum/Prime.lean Modified Mathlib/Tactic/Peel.lean Modified Mathlib/Tactic/Polyrith.lean Modified Mathlib/Tactic/Positivity/Basic.lean Modified Mathlib/Tactic/Positivity/Core.lean Modified Mathlib/Tactic/Qify.lean Modified Mathlib/Tactic/RewriteSearch.lean Modified Mathlib/Tactic/Rify.lean Modified Mathlib/Tactic/Ring/Basic.lean Modified Mathlib/Tactic/Ring/PNat.lean Modified Mathlib/Tactic/Ring/RingNF.lean Modified Mathlib/Tactic/Widget/CommDiag.lean Modified Mathlib/Topology/Algebra/Module/Multilinear/Bounded.lean Modified Mathlib/Topology/Algebra/Order/Archimedean.lean Modified Mathlib/Topology/Bornology/Absorbs.lean Modified Mathlib/Topology/Category/TopCat/Limits/Basic.lean Modified Mathlib/Topology/Category/TopCat/Limits/Products.lean Modified Mathlib/Topology/Compactness/Compact.lean Modified Mathlib/Topology/Compactness/Lindelof.lean Modified Mathlib/Topology/ContinuousFunction/Sigma.lean Modified Mathlib/Topology/ContinuousOn.lean Modified Mathlib/Topology/ExtremallyDisconnected.lean Modified Mathlib/Topology/Metrizable/Urysohn.lean Modified Mathlib/Topology/Order/Basic.lean Modified Mathlib/Topology/Order/Hom/Basic.lean Modified Mathlib/Topology/Order/LawsonTopology.lean Modified Mathlib/Topology/Order/LeftRightNhds.lean Modified Mathlib/Topology/Separation.lean Modified test/CommDiag.lean Modified test/FBinop.lean Modified test/Lint.lean Modified test/TermCongr2.lean Modified test/Traversable.lean Modified test/congrm.lean 2024-07-10 18:31:06 15203ec chore: deprecate AlgHom.map_* lemmas (#14168) These are redundant. Unfortunately there's two cases involving `GradedAlgebra` where a direct replacement times out, so I ignored those for now. ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/Bilinear.lean Modified Mathlib/Algebra/Algebra/Hom.lean Modified Mathlib/Algebra/Algebra/Subalgebra/Basic.lean Modified Mathlib/Algebra/FreeAlgebra.lean Modified Mathlib/Algebra/Lie/UniversalEnveloping.lean Modified Mathlib/Algebra/Module/LocalizedModule.lean Modified Mathlib/Algebra/MonoidAlgebra/Grading.lean Modified Mathlib/Algebra/MvPolynomial/Basic.lean Modified Mathlib/Algebra/MvPolynomial/Funext.lean Modified Mathlib/Algebra/MvPolynomial/Monad.lean Modified Mathlib/Algebra/MvPolynomial/Rename.lean Modified Mathlib/Algebra/Polynomial/AlgebraMap.lean Modified Mathlib/Algebra/Polynomial/Expand.lean Modified Mathlib/Algebra/QuaternionBasis.lean Modified Mathlib/Algebra/RingQuot.lean Modified Mathlib/Algebra/TrivSqZeroExt.lean Modified Mathlib/Analysis/Complex/Polynomial.lean Modified Mathlib/CategoryTheory/Monoidal/Internal/Module.lean Modified Mathlib/Data/Complex/Module.lean Modified Mathlib/Data/Matrix/Basic.lean Modified Mathlib/FieldTheory/AbelRuffini.lean Modified Mathlib/FieldTheory/Finite/GaloisField.lean Modified Mathlib/FieldTheory/Finite/Polynomial.lean Modified Mathlib/FieldTheory/IsAlgClosed/AlgebraicClosure.lean Modified Mathlib/FieldTheory/IsAlgClosed/Spectrum.lean Modified Mathlib/FieldTheory/Minpoly/Basic.lean Modified Mathlib/FieldTheory/Minpoly/Field.lean Modified Mathlib/FieldTheory/Normal.lean Modified Mathlib/FieldTheory/Perfect.lean Modified Mathlib/LinearAlgebra/Charpoly/Basic.lean Modified Mathlib/LinearAlgebra/CliffordAlgebra/Basic.lean Modified Mathlib/LinearAlgebra/CliffordAlgebra/Conjugation.lean Modified Mathlib/LinearAlgebra/CliffordAlgebra/Equivs.lean Modified Mathlib/LinearAlgebra/CliffordAlgebra/Even.lean Modified Mathlib/LinearAlgebra/CliffordAlgebra/EvenEquiv.lean Modified Mathlib/LinearAlgebra/CliffordAlgebra/Fold.lean Modified Mathlib/LinearAlgebra/CliffordAlgebra/Grading.lean Modified Mathlib/LinearAlgebra/Eigenspace/Minpoly.lean Modified Mathlib/LinearAlgebra/ExteriorAlgebra/Basic.lean Modified Mathlib/LinearAlgebra/ExteriorAlgebra/Grading.lean Modified Mathlib/LinearAlgebra/JordanChevalley.lean Modified Mathlib/LinearAlgebra/Matrix/Adjugate.lean Modified Mathlib/LinearAlgebra/Matrix/Charpoly/Coeff.lean Modified Mathlib/LinearAlgebra/Matrix/ToLin.lean Modified Mathlib/LinearAlgebra/Semisimple.lean Modified Mathlib/LinearAlgebra/TensorAlgebra/Basic.lean Modified Mathlib/LinearAlgebra/TensorAlgebra/Grading.lean Modified Mathlib/LinearAlgebra/TensorAlgebra/ToTensorPower.lean Modified Mathlib/LinearAlgebra/TensorProduct/Graded/Internal.lean Modified Mathlib/NumberTheory/BernoulliPolynomials.lean Modified Mathlib/NumberTheory/ClassNumber/Finite.lean Modified Mathlib/NumberTheory/Cyclotomic/Basic.lean Modified Mathlib/NumberTheory/Cyclotomic/PrimitiveRoots.lean Modified Mathlib/NumberTheory/KummerDedekind.lean Modified Mathlib/RepresentationTheory/Basic.lean Modified Mathlib/RepresentationTheory/Rep.lean Modified Mathlib/RingTheory/AdjoinRoot.lean Modified Mathlib/RingTheory/Algebraic.lean Modified Mathlib/RingTheory/Bialgebra/Basic.lean Modified Mathlib/RingTheory/FiniteType.lean Modified Mathlib/RingTheory/FractionalIdeal/Operations.lean Modified Mathlib/RingTheory/GradedAlgebra/Basic.lean Modified Mathlib/RingTheory/Ideal/Cotangent.lean Modified Mathlib/RingTheory/Ideal/QuotientOperations.lean Modified Mathlib/RingTheory/IsAdjoinRoot.lean Modified Mathlib/RingTheory/IsTensorProduct.lean Modified Mathlib/RingTheory/LaurentSeries.lean Modified Mathlib/RingTheory/LocalProperties.lean Modified Mathlib/RingTheory/MatrixAlgebra.lean Modified Mathlib/RingTheory/MvPolynomial/Symmetric.lean Modified Mathlib/RingTheory/PolynomialAlgebra.lean Modified Mathlib/RingTheory/PowerBasis.lean Modified Mathlib/RingTheory/RootsOfUnity/Minpoly.lean Modified Mathlib/RingTheory/TensorProduct/Basic.lean Modified Mathlib/RingTheory/Trace/Defs.lean Modified Mathlib/RingTheory/WittVector/Defs.lean Modified Mathlib/RingTheory/WittVector/Frobenius.lean Modified Mathlib/RingTheory/WittVector/InitTail.lean Modified Mathlib/RingTheory/WittVector/IsPoly.lean Modified Mathlib/RingTheory/WittVector/MulCoeff.lean Modified Mathlib/RingTheory/WittVector/MulP.lean Modified Mathlib/RingTheory/WittVector/StructurePolynomial.lean Modified Mathlib/RingTheory/WittVector/WittPolynomial.lean 2024-07-10 18:10:46 0956b89 chore(PULL_REQUEST_TEMPLATE.md): add template for moves and deletions (#14559) ESTIMATED CHANGES Modified .github/PULL_REQUEST_TEMPLATE.md 2024-07-10 18:10:45 0d7d128 feat (Category Theory): redefine and extend mates (#13840) The mates bijection between natural transformations inhabiting a certain dual pairs of squares (the duality in the sense of a parallel pair of adjunctions) can be defined in a more direct way: using pasting composition on 2-cells. This pull request: (i) proposes a new definition of `Mates` to replace and rename the existing `transferNatTrans` (ii) proposes a new definition of `Conjugates` to replace and rename the existing `transferNatTransSelf` (iii) proves that the mates correspondence commutes with horizontal and vertical composition of squares, as well as some coherences relating mates to conjugates (iv) updates the files that depends on this, involving two new proofs about exponentiation in cartesian closed categories ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Adjunction/Mates.lean + def CategoryTheory.conjugateEquiv + theorem CategoryTheory.conjugateEquiv_adjunction_id + theorem CategoryTheory.conjugateEquiv_adjunction_id_symm + theorem CategoryTheory.conjugateEquiv_comm + theorem CategoryTheory.conjugateEquiv_comp + theorem CategoryTheory.conjugateEquiv_counit + theorem CategoryTheory.conjugateEquiv_counit_symm + theorem CategoryTheory.conjugateEquiv_id + theorem CategoryTheory.conjugateEquiv_mateEquiv_vcomp + theorem CategoryTheory.conjugateEquiv_of_iso + theorem CategoryTheory.conjugateEquiv_symm_comm + theorem CategoryTheory.conjugateEquiv_symm_comp + theorem CategoryTheory.conjugateEquiv_symm_id + theorem CategoryTheory.conjugateEquiv_symm_of_iso + theorem CategoryTheory.iterated_mateEquiv_conjugateEquiv + theorem CategoryTheory.iterated_mateEquiv_conjugateEquiv_symm + def CategoryTheory.leftAdjointConjugateSquare.vcomp + def CategoryTheory.leftAdjointSquare.comp + theorem CategoryTheory.leftAdjointSquare.comp_hvcomp + theorem CategoryTheory.leftAdjointSquare.comp_vhcomp + def CategoryTheory.leftAdjointSquare.hcomp + def CategoryTheory.leftAdjointSquare.vcomp + def CategoryTheory.leftAdjointSquareConjugate.vcomp + def CategoryTheory.mateEquiv + theorem CategoryTheory.mateEquiv_conjugateEquiv_vcomp + theorem CategoryTheory.mateEquiv_counit + theorem CategoryTheory.mateEquiv_counit_symm + theorem CategoryTheory.mateEquiv_hcomp + theorem CategoryTheory.mateEquiv_square + theorem CategoryTheory.mateEquiv_vcomp + def CategoryTheory.rightAdjointConjugateSquare.vcomp + def CategoryTheory.rightAdjointSquare.comp + theorem CategoryTheory.rightAdjointSquare.comp_hvcomp + theorem CategoryTheory.rightAdjointSquare.comp_vhcomp + def CategoryTheory.rightAdjointSquare.hcomp + def CategoryTheory.rightAdjointSquare.vcomp + def CategoryTheory.rightAdjointSquareConjugate.vcomp - def CategoryTheory.transferNatTrans - def CategoryTheory.transferNatTransSelf - theorem CategoryTheory.transferNatTransSelf_adjunction_id - theorem CategoryTheory.transferNatTransSelf_adjunction_id_symm - theorem CategoryTheory.transferNatTransSelf_comm - theorem CategoryTheory.transferNatTransSelf_comp - theorem CategoryTheory.transferNatTransSelf_counit - theorem CategoryTheory.transferNatTransSelf_id - theorem CategoryTheory.transferNatTransSelf_of_iso - theorem CategoryTheory.transferNatTransSelf_symm_comm - theorem CategoryTheory.transferNatTransSelf_symm_comp - theorem CategoryTheory.transferNatTransSelf_symm_id - theorem CategoryTheory.transferNatTransSelf_symm_of_iso - theorem CategoryTheory.transferNatTrans_counit + theorem CategoryTheory.unit_conjugateEquiv + theorem CategoryTheory.unit_conjugateEquiv_symm + theorem CategoryTheory.unit_mateEquiv + theorem CategoryTheory.unit_mateEquiv_symm - theorem CategoryTheory.unit_transferNatTrans - theorem CategoryTheory.unit_transferNatTransSelf Modified Mathlib/CategoryTheory/Closed/Cartesian.lean Modified Mathlib/CategoryTheory/Closed/Functor.lean Modified Mathlib/CategoryTheory/Closed/Monoidal.lean Modified Mathlib/CategoryTheory/Limits/Shapes/BinaryProducts.lean + theorem CategoryTheory.Limits.prodComparison_comp 2024-07-10 17:26:06 a145fff fix: add `assumption` to autoparam `isBoundedDefault` (#14617) Maybe, `applyc` in lean3 also tried `assumption`, so I added it here! [Zulip thread](https://leanprover.zulipchat.com/#narrow/stream/239415-metaprogramming-.2F-tactics/topic/isBoundedDefault.20not.20triggering) ESTIMATED CHANGES Modified Mathlib/Order/LiminfLimsup.lean Added test/IsBoundedDefault.lean 2024-07-10 17:26:05 8594e39 feat(`Data/Fintype/Order`): Slightly strengthen `Fin.completeLinearOrder`. (#14616) Adds a `CompleteLinearOrder` instance for `[NeZero n] Fin n`. ESTIMATED CHANGES Modified Mathlib/Data/Fintype/Order.lean 2024-07-10 17:26:04 825cb2c feat(CategoryTheory): (co)limits in the category of coalgebras (#14236) Shows that the forgetful functor `forget T : Coalgebra T ⥤ C` for a comonad `T : C ⥤ C` creates colimits and creates any limits which `T` preserves. This is used to show that `Coalgebra T` has any colimits which `C` has, and any limits which `C` has and `T` preserves. This is generalised to the case of a comonadic functor `D ⥤ C`. Dualises everything currently in [Mathlib.CategoryTheory.Monad.Limits](https://leanprover-community.github.io/mathlib4_docs/Mathlib/CategoryTheory/Monad/Limits.html). This contribution was created as part of the AIM workshop "Formalizing Algebraic Geometry" in June 2024. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Limits/Preserves/Shapes/Equalizers.lean Modified Mathlib/CategoryTheory/Monad/Adjunction.lean + theorem CategoryTheory.Coreflective.comparison_full Modified Mathlib/CategoryTheory/Monad/Limits.lean + def CategoryTheory.Comonad.ForgetCreatesColimits'.coconePoint + def CategoryTheory.Comonad.ForgetCreatesColimits'.liftedCocone + def CategoryTheory.Comonad.ForgetCreatesColimits'.liftedCoconeIsColimit + def CategoryTheory.Comonad.ForgetCreatesColimits'.newCocone + def CategoryTheory.Comonad.ForgetCreatesColimits'.γ + theorem CategoryTheory.Comonad.ForgetCreatesLimits'.commuting + def CategoryTheory.Comonad.ForgetCreatesLimits'.conePoint + def CategoryTheory.Comonad.ForgetCreatesLimits'.liftedCone + def CategoryTheory.Comonad.ForgetCreatesLimits'.liftedConeIsLimit + def CategoryTheory.Comonad.ForgetCreatesLimits'.newCone + def CategoryTheory.Comonad.ForgetCreatesLimits'.γ + theorem CategoryTheory.Comonad.forget_creates_limits_of_comonad_preserves + theorem CategoryTheory.Comonad.hasColimit_of_comp_forget_hasColimit + theorem CategoryTheory.hasColimit_of_coreflective + theorem CategoryTheory.hasColimitsOfShape_of_coreflective + theorem CategoryTheory.hasColimits_of_coreflective + theorem CategoryTheory.hasLimitsOfShape_of_coreflective + theorem CategoryTheory.hasLimits_of_coreflective 2024-07-10 17:26:02 62613d5 feat(Condensed): characterise epimorphisms in condensed sets and modules (#13478) This PR characterises epimorphisms in condensed sets and condensed `R`-modules for any ring `R`, as morphisms of sheaves which are objectwise surjective on `Stonean`. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Condensed/Epi.lean + theorem Condensed.epi_iff_locallySurjective_on_compHaus + theorem Condensed.epi_iff_surjective_on_stonean + theorem CondensedMod.epi_iff_locallySurjective_on_compHaus + theorem CondensedMod.epi_iff_surjective_on_stonean + theorem CondensedSet.epi_iff_locallySurjective_on_compHaus + theorem CondensedSet.epi_iff_surjective_on_stonean 2024-07-10 17:26:01 c6cc81d chore: Merge `Algebra.Group.Centralizer` into `Algebra.Group.Center` (#13034) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Group/Center.lean +/- theorem Set.center_eq_univ + theorem Set.center_subset_centralizer + def Set.centralizer + theorem Set.centralizer_centralizer_centralizer + theorem Set.centralizer_eq_top_iff_subset + theorem Set.centralizer_eq_univ + theorem Set.centralizer_subset + theorem Set.centralizer_univ +/- theorem Set.div_mem_center + theorem Set.div_mem_centralizer +/- theorem Set.invOf_mem_center +/- theorem Set.inv_mem_center + theorem Set.inv_mem_centralizer + theorem Set.mem_centralizer_iff +/- theorem Set.mul_mem_center + theorem Set.mul_mem_centralizer +/- theorem Set.one_mem_center + theorem Set.one_mem_centralizer +/- theorem Set.subset_center_units + theorem Set.subset_centralizer_centralizer +/- theorem Set.units_inv_mem_center Deleted Mathlib/Algebra/Group/Centralizer.lean - theorem Set.center_subset_centralizer - def Set.centralizer - theorem Set.centralizer_centralizer_centralizer - theorem Set.centralizer_eq_top_iff_subset - theorem Set.centralizer_eq_univ - theorem Set.centralizer_subset - theorem Set.centralizer_univ - theorem Set.div_mem_centralizer - theorem Set.inv_mem_centralizer - theorem Set.mem_centralizer_iff - theorem Set.mul_mem_centralizer - theorem Set.one_mem_centralizer - theorem Set.subset_centralizer_centralizer Modified Mathlib/Algebra/GroupWithZero/Center.lean +/- theorem Set.center_units_eq +/- theorem Set.center_units_subset +/- theorem Set.div_mem_centralizer₀ +/- theorem Set.inv_mem_centralizer₀ +/- theorem Set.zero_mem_center +/- theorem Set.zero_mem_centralizer Modified Mathlib/Algebra/Ring/Centralizer.lean Modified Mathlib/Algebra/Ring/CentroidHom.lean Modified Mathlib/Algebra/Ring/Subsemiring/Basic.lean Modified Mathlib/Algebra/Star/Center.lean Modified Mathlib/GroupTheory/Submonoid/Center.lean Modified Mathlib/GroupTheory/Subsemigroup/Centralizer.lean Modified Mathlib/RingTheory/NonUnitalSubsemiring/Basic.lean 2024-07-10 15:41:49 5b4d457 feat(Order/Atoms): strong atomicity typeclass (#14004) A strongly atomic preorder is one in which every nontrivial interval `[a,b]` contains an element covering `a`, or equivalently an order where every closed interval is atomic. We add a new typeclass `IsStronglyAtomic` to capture this. We provide instances of this typeclass for `SuccOrder`s, orders with `WellFoundedLT`, atomistic upper-modular lattices, complemented atomic modular lattices, and `OrdConnected` subtypes. We also show that such orders are atomic. We also provide the dual typeclass `IsStronglyCoatomic` and dual versions of all of the above. ESTIMATED CHANGES Modified Mathlib/Data/Fintype/Order.lean Modified Mathlib/GroupTheory/Sylow.lean Modified Mathlib/Order/Atoms.lean + theorem ComplementedLattice.isStronglyAtomic' + theorem ComplementedLattice.isStronglyAtomic + theorem ComplementedLattice.isStronglyCoatomic' + theorem ComplementedLattice.isStronglyCoatomic + theorem CompleteLattice.isStronglyAtomic + theorem CompleteLattice.isStronglyCoatomic + theorem IsStronglyAtomic.of_wellFounded_lt + theorem IsStronglyCoatomic.of_wellFounded_gt + theorem Set.OrdConnected.isStronglyAtomic + theorem Set.OrdConnected.isStronglyCoatomic + theorem exists_covBy_le_of_lt + theorem exists_le_covBy_of_lt + theorem isStronglyAtomic_dual_iff_is_stronglyCoatomic + theorem isStronglyCoatomic_dual_iff_is_stronglyAtomic Modified Mathlib/Order/Atoms/Finite.lean + theorem exists_covby_infinite_Ici_of_infinite_Ici + theorem exists_covby_infinite_Iic_of_infinite_Iic 2024-07-10 15:00:42 17a46b2 chore: update some style exceptions (#14607) ESTIMATED CHANGES Modified scripts/style-exceptions.txt 2024-07-10 15:00:41 d674e2e feat: more API for Function.Exact (#14520) If two diagrams involving additive maps are isomorphic, one is exact (in the sense of `Function.Exact`) iff the other is. In this PR, we also relate `Function.Exact` and `ShortComplex.Exact` in the categories of abelian groups and modules over a ring. ESTIMATED CHANGES Modified Mathlib/Algebra/Exact.lean + theorem AddMonoidHom.exact_iff + theorem AddMonoidHom.exact_of_comp_eq_zero_of_ker_le_range + theorem AddMonoidHom.exact_of_comp_of_mem_range + theorem Function.Exact.addMonoidHom_comp_eq_zero + theorem Function.Exact.addMonoidHom_ker_eq +/- theorem Function.Exact.apply_apply_eq_zero +/- theorem Function.Exact.comp_eq_zero +/- theorem Function.Exact.comp_injective + theorem Function.Exact.iff_of_ladder_addEquiv +/- theorem Function.Exact.of_comp_eq_zero_of_ker_in_range +/- theorem Function.Exact.of_comp_of_mem_range + theorem Function.Exact.of_ladder_addEquiv_of_exact' + theorem Function.Exact.of_ladder_addEquiv_of_exact +/- theorem LinearEquiv.conj_exact_iff_exact +/- theorem LinearMap.exact_iff +/- theorem LinearMap.exact_of_comp_eq_zero_of_ker_le_range +/- theorem LinearMap.exact_of_comp_of_mem_range Modified Mathlib/Algebra/Homology/ShortComplex/Ab.lean + theorem CategoryTheory.ShortComplex.ShortExact.ab_exact_iff_function_exact Modified Mathlib/Algebra/Homology/ShortComplex/ModuleCat.lean + theorem CategoryTheory.ShortComplex.ShortExact.moduleCat_exact_iff_function_exact 2024-07-10 14:09:16 db4233d chore: update Mathlib dependencies 2024-07-10 (#14612) This PR updates the Mathlib dependencies. ESTIMATED CHANGES Modified lake-manifest.json 2024-07-10 13:40:49 258d7ff chore(Data/List/Lex): remove attribute nolint defLemma (#14602) https://github.com/leanprover/lean4/pull/1866 is merged, so this can go. ESTIMATED CHANGES Modified Mathlib/Data/List/Lex.lean 2024-07-10 13:12:07 94bcc17 chore(scripts/create-adaptation-pr.sh): do not label PR (#14605) ESTIMATED CHANGES Modified scripts/create-adaptation-pr.sh 2024-07-10 11:07:53 c198452 doc(Nat/Nth): fix two typos (#14606) Fixes two typos in `Data/Nat/Nth.lean`. ESTIMATED CHANGES Modified Mathlib/Data/Nat/Nth.lean 2024-07-10 10:57:55 cf79f2e chore: remove Data/UnionFind (#14556) Its implementation has been improved in `lean4lean` and `batteries`; the mathlib implementation can be removed in favour of these. Searching github for 'import Mathlib.Data.UnionFind' only yields forks of mathlib (either explicit or manual); hence this seems safe to remove without a deprecation period. ESTIMATED CHANGES Modified Mathlib.lean Deleted Mathlib/Data/UnionFind.lean - theorem UFModel.Agrees.empty - theorem UFModel.Agrees.get_eq' - theorem UFModel.Agrees.get_eq - theorem UFModel.Agrees.mk' - theorem UFModel.Agrees.push - theorem UFModel.Agrees.set - theorem UFModel.Agrees.size_eq - inductive UFModel.Agrees - theorem UFModel.Models.empty - theorem UFModel.Models.parent_eq' - theorem UFModel.Models.parent_eq - theorem UFModel.Models.push - theorem UFModel.Models.rank_eq - theorem UFModel.Models.setParent - theorem UFModel.Models.size_eq - def UFModel.Models - def UFModel.empty - def UFModel.push - def UFModel.setParent - def UFModel.setParentBump - structure UFModel - structure UFNode - def UnionFind.empty - def UnionFind.find - def UnionFind.findAux - def UnionFind.link - theorem UnionFind.lt_rankMax' - theorem UnionFind.lt_rankMax - def UnionFind.mkEmpty - theorem UnionFind.model' - theorem UnionFind.parent_lt - def UnionFind.push - def UnionFind.rank - def UnionFind.rankMax - def UnionFind.rankMaxAux - theorem UnionFind.rank_eq - theorem UnionFind.rank_lt - def UnionFind.size - def UnionFind.union - structure UnionFind Modified scripts/nolints.json Modified scripts/style-exceptions.txt 2024-07-10 10:39:30 7bc13f8 feat(LinearAlgebra/LinearDisjoint): definition and properties of linearly disjoint of submodules (#12434) This is part 1 of #9651. We adapt the definitions in . Let `R` be a commutative ring, `S` be an `R`-algebra (not necessarily commutative). Two `R`-submodules `M` and `N` in `S` are linearly disjoint, if the natural `R`-linear map `M ⊗[R] N →ₗ[R] S` (`Submodule.mulMap M N`) induced by the multiplication in `S` is injective. The following is the first equivalent characterization of linearly disjointness: - `Submodule.LinearDisjoint.linearIndependent_left_of_flat`: if `M` and `N` are linearly disjoint, if `N` is a flat `R`-module, then for any family of `R`-linearly independent elements `{ m_i }` of `M`, they are also `N`-linearly independent, in the sense that the `R`-linear map from `ι →₀ N` to `S` which maps `{ n_i }` to the sum of `m_i * n_i` (`Submodule.mulLeftMap N m`) is injective. - `Submodule.LinearDisjoint.of_basis_left`: conversely, if `{ m_i }` is an `R`-basis of `M`, which is also `N`-linearly independent, then `M` and `N` are linearly disjoint. Dually, we have: - `Submodule.LinearDisjoint.linearIndependent_right_of_flat`: if `M` and `N` are linearly disjoint, if `M` is a flat `R`-module, then for any family of `R`-linearly independent elements `{ n_i }` of `N`, they are also `M`-linearly independent, in the sense that the `R`-linear map from `ι →₀ M` to `S` which maps `{ m_i }` to the sum of `m_i * n_i` (`Submodule.mulRightMap M n`) is injective. - `Submodule.LinearDisjoint.of_basis_right`: conversely, if `{ n_i }` is an `R`-basis of `N`, which is also `M`-linearly independent, then `M` and `N` are linearly disjoint. The following is the second equivalent characterization of linearly disjointness: - `Submodule.LinearDisjoint.linearIndependent_mul_of_flat`: if `M` and `N` are linearly disjoint, if one of `M` and `N` is flat, then for any family of `R`-linearly independent elements `{ m_i }` of `M`, and any family of `R`-linearly independent elements `{ n_j }` of `N`, the family `{ m_i * n_j }` in `S` is also `R`-linearly independent. - `Submodule.LinearDisjoint.of_basis_mul`: conversely, if `{ m_i }` is an `R`-basis of `M`, if `{ n_i }` is an `R`-basis of `N`, such that the family `{ m_i * n_j }` in `S` is `R`-linearly independent, then `M` and `N` are linearly disjoint. Other results: - `Submodule.LinearDisjoint.symm_of_commute`, `Submodule.linearDisjoint_symm_of_commute`: linearly disjoint is symmetric under some commutative conditions. - `Submodule.linearDisjoint_op`: linearly disjoint is preserved by taking multiplicative opposite. - `Submodule.LinearDisjoint.of_le_left_of_flat`, `Submodule.LinearDisjoint.of_le_right_of_flat`, `Submodule.LinearDisjoint.of_le_of_flat_left`, `Submodule.LinearDisjoint.of_le_of_flat_right`: linearly disjoint is preserved by taking submodules under some flatness conditions. - `Submodule.LinearDisjoint.of_linearDisjoint_fg_left`, `Submodule.LinearDisjoint.of_linearDisjoint_fg_right`, `Submodule.LinearDisjoint.of_linearDisjoint_fg`: conversely, if any finitely generated submodules of `M` and `N` are linearly disjoint, then `M` and `N` themselves are linearly disjoint. - `Submodule.LinearDisjoint.bot_left`, `Submodule.LinearDisjoint.bot_right`: the zero module is linearly disjoint with any other submodules. - `Submodule.LinearDisjoint.one_left`, `Submodule.LinearDisjoint.one_right`: the image of `R` in `S` is linearly disjoint with any other submodules. - `Submodule.LinearDisjoint.of_left_le_one_of_flat`, `Submodule.LinearDisjoint.of_right_le_one_of_flat`: if a submodule is contained in the image of `R` in `S`, then it is linearly disjoint with any other submodules, under some flatness conditions. - `Submodule.LinearDisjoint.not_linearIndependent_pair_of_commute_of_flat`, `Submodule.LinearDisjoint.rank_inf_le_one_of_commute_of_flat`: if `M` and `N` are linearly disjoint, if one of `M` and `N` is flat, then any two commutative elements contained in the intersection of `M` and `N` are not `R`-linearly independent (namely, their span is not `R ^ 2`). In particular, if any two elements in the intersection of `M` and `N` are commutative, then the rank of the intersection of `M` and `N` is at most one. - `Submodule.LinearDisjoint.rank_le_one_of_commute_of_flat_of_self`: if `M` and itself are linearly disjoint, if `M` is flat, if any two elements in `M` are commutative, then the rank of `M` is at most one. The results with name containing "of_commute" also have corresponding specified versions assuming `S` is commutative. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/LinearAlgebra/LinearDisjoint.lean + theorem Submodule.LinearDisjoint.bot_left + theorem Submodule.LinearDisjoint.bot_right + theorem Submodule.LinearDisjoint.linearIndependent_left_of_flat + theorem Submodule.LinearDisjoint.linearIndependent_mul_of_flat + theorem Submodule.LinearDisjoint.linearIndependent_mul_of_flat_left + theorem Submodule.LinearDisjoint.linearIndependent_mul_of_flat_right + theorem Submodule.LinearDisjoint.linearIndependent_right_of_flat + theorem Submodule.LinearDisjoint.not_linearIndependent_pair_of_commute_of_flat + theorem Submodule.LinearDisjoint.not_linearIndependent_pair_of_commute_of_flat_left + theorem Submodule.LinearDisjoint.not_linearIndependent_pair_of_commute_of_flat_right + theorem Submodule.LinearDisjoint.not_linearIndependent_pair_of_flat + theorem Submodule.LinearDisjoint.not_linearIndependent_pair_of_flat_left + theorem Submodule.LinearDisjoint.not_linearIndependent_pair_of_flat_right + theorem Submodule.LinearDisjoint.of_basis_left' + theorem Submodule.LinearDisjoint.of_basis_left + theorem Submodule.LinearDisjoint.of_basis_mul' + theorem Submodule.LinearDisjoint.of_basis_mul + theorem Submodule.LinearDisjoint.of_basis_right' + theorem Submodule.LinearDisjoint.of_basis_right + theorem Submodule.LinearDisjoint.of_le_left_of_flat + theorem Submodule.LinearDisjoint.of_le_of_flat_left + theorem Submodule.LinearDisjoint.of_le_of_flat_right + theorem Submodule.LinearDisjoint.of_le_right_of_flat + theorem Submodule.LinearDisjoint.of_left_le_one_of_flat + theorem Submodule.LinearDisjoint.of_linearDisjoint_fg + theorem Submodule.LinearDisjoint.of_linearDisjoint_fg_left + theorem Submodule.LinearDisjoint.of_linearDisjoint_fg_right + theorem Submodule.LinearDisjoint.of_right_le_one_of_flat + theorem Submodule.LinearDisjoint.of_subsingleton + theorem Submodule.LinearDisjoint.one_left + theorem Submodule.LinearDisjoint.one_right + theorem Submodule.LinearDisjoint.rank_inf_le_one_of_commute_of_flat + theorem Submodule.LinearDisjoint.rank_inf_le_one_of_commute_of_flat_left + theorem Submodule.LinearDisjoint.rank_inf_le_one_of_commute_of_flat_right + theorem Submodule.LinearDisjoint.rank_inf_le_one_of_flat + theorem Submodule.LinearDisjoint.rank_inf_le_one_of_flat_left + theorem Submodule.LinearDisjoint.rank_inf_le_one_of_flat_right + theorem Submodule.LinearDisjoint.rank_le_one_of_commute_of_flat_of_self + theorem Submodule.LinearDisjoint.rank_le_one_of_flat_of_self + theorem Submodule.LinearDisjoint.symm + theorem Submodule.LinearDisjoint.symm_of_commute + theorem Submodule.LinearDisjoint.val_mulMap_tmul + theorem Submodule.linearDisjoint_op + theorem Submodule.linearDisjoint_symm + theorem Submodule.linearDisjoint_symm_of_commute 2024-07-10 08:30:03 529a610 chore: add a `Repr` for `Sym2` (#14251) This matches the approach used by `Multiset` ESTIMATED CHANGES Modified Mathlib/Data/Sym/Sym2.lean 2024-07-09 23:50:31 e242f1e feat: add `denseRange_subtype_val` (#14592) Also add `MeasureTheory.Lp.simpleFunc.dense` ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Function/SimpleFuncDenseLp.lean Modified Mathlib/Topology/Basic.lean +/- theorem Dense.denseRange_val + theorem denseRange_subtype_val 2024-07-09 23:50:30 875fef3 chore: rename `ArithmeticFunction.card_divisors` -> `Nat.card_divisors` (#14589) Aesthetic preference, feel free to close if this doesn't make sense. ESTIMATED CHANGES Modified Mathlib/NumberTheory/ArithmeticFunction.lean +/- theorem ArithmeticFunction.card_divisors + theorem Nat.card_divisors 2024-07-09 23:50:28 b7deda7 feat(Logic/Basic): add `simp` lemma for `@Exists.choose _ (· = a) _` (#14419) and for the symmetric case. ESTIMATED CHANGES Modified Mathlib/Logic/Basic.lean + theorem Classical.choose_eq' + theorem Classical.choose_eq 2024-07-09 22:47:57 ca8d01b chore: homogenize TODO format (#14474) This makes sure that the by far most common way of declaring TODOs in module doc comments is also used by the few that deviated from that. This makes sure that it is easier to find those. Drive by: fix number of `#` for some other headings, to make doc strings more uniform. ESTIMATED CHANGES Modified Mathlib/Algebra/Group/NatPowAssoc.lean Modified Mathlib/Algebra/Group/PNatPowAssoc.lean Modified Mathlib/Algebra/Homology/DerivedCategory/SingleTriangle.lean Modified Mathlib/Algebra/Order/Module/Algebra.lean Modified Mathlib/Algebra/Polynomial/Smeval.lean Modified Mathlib/Algebra/Quandle.lean Modified Mathlib/Algebra/Vertex/HVertexOperator.lean Modified Mathlib/AlgebraicGeometry/Limits.lean Modified Mathlib/Analysis/InnerProductSpace/NormPow.lean Modified Mathlib/Analysis/LocallyConvex/AbsConvex.lean Modified Mathlib/Analysis/LocallyConvex/StrongTopology.lean Modified Mathlib/Analysis/NormedSpace/WeakDual.lean Modified Mathlib/Analysis/SpecialFunctions/Complex/LogBounds.lean Modified Mathlib/CategoryTheory/Bicategory/Adjunction.lean Modified Mathlib/CategoryTheory/CofilteredSystem.lean Modified Mathlib/CategoryTheory/Limits/Constructions/FiniteProductsOfBinaryProducts.lean Modified Mathlib/CategoryTheory/Limits/Constructions/LimitsOfProductsAndEqualizers.lean Modified Mathlib/CategoryTheory/Limits/IndYoneda.lean Modified Mathlib/Combinatorics/HalesJewett.lean Modified Mathlib/Combinatorics/Hall/Basic.lean Modified Mathlib/Combinatorics/SimpleGraph/Basic.lean Modified Mathlib/Combinatorics/SimpleGraph/Coloring.lean Modified Mathlib/Combinatorics/SimpleGraph/Metric.lean Modified Mathlib/Combinatorics/SimpleGraph/Subgraph.lean Modified Mathlib/Combinatorics/SimpleGraph/Trails.lean Modified Mathlib/Data/List/Sym.lean Modified Mathlib/Data/Nat/Pairing.lean Modified Mathlib/Data/Real/Pointwise.lean Modified Mathlib/Data/Rel.lean Modified Mathlib/GroupTheory/CommutingProbability.lean Modified Mathlib/LinearAlgebra/CliffordAlgebra/Prod.lean Modified Mathlib/LinearAlgebra/Matrix/SesquilinearForm.lean Modified Mathlib/LinearAlgebra/RootSystem/Basic.lean Modified Mathlib/LinearAlgebra/RootSystem/Defs.lean Modified Mathlib/MeasureTheory/Function/LpOrder.lean Modified Mathlib/MeasureTheory/Group/Arithmetic.lean Modified Mathlib/MeasureTheory/Integral/Indicator.lean Modified Mathlib/MeasureTheory/Integral/Marginal.lean Modified Mathlib/MeasureTheory/Measure/FiniteMeasureProd.lean Modified Mathlib/MeasureTheory/Measure/LevyProkhorovMetric.lean Modified Mathlib/NumberTheory/Cyclotomic/CyclotomicCharacter.lean Modified Mathlib/NumberTheory/WellApproximable.lean Modified Mathlib/Order/SuccPred/Limit.lean Modified Mathlib/Probability/Density.lean Modified Mathlib/Probability/Distributions/Uniform.lean Modified Mathlib/RepresentationTheory/Character.lean Modified Mathlib/RingTheory/ChainOfDivisors.lean Modified Mathlib/RingTheory/Henselian.lean Modified Mathlib/RingTheory/Ideal/AssociatedPrime.lean Modified Mathlib/RingTheory/IntegrallyClosed.lean Modified Mathlib/RingTheory/UniqueFactorizationDomain.lean Modified Mathlib/SetTheory/Ordinal/Principal.lean Modified Mathlib/SetTheory/Surreal/Basic.lean Modified Mathlib/SetTheory/ZFC/Ordinal.lean Modified Mathlib/Tactic/Linter/UnusedTactic.lean Modified Mathlib/Tactic/NormNum/BigOperators.lean Modified Mathlib/Topology/Bases.lean Modified Mathlib/Topology/Separation.lean 2024-07-09 22:47:56 d3f5dcd doc: fix some author fields in references (#14391) ESTIMATED CHANGES Modified docs/references.bib 2024-07-09 22:47:55 538a694 feat: additivize some Set.center results (#14331) ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Center.lean 2024-07-09 22:38:00 5e75b54 feat(LpSpace/DomAct): add a lemma + `@[to_additive]` (#14488) ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Function/LpSpace/DomAct/Basic.lean + theorem DomMulAct.mk_smul_indicatorConstLp 2024-07-09 20:20:47 cf0e331 chore: update Mathlib dependencies 2024-07-09 (#14584) This PR updates the Mathlib dependencies. ESTIMATED CHANGES Modified lake-manifest.json 2024-07-09 18:31:41 a42993d chore: update Mathlib dependencies 2024-07-09 (#14578) This PR updates the Mathlib dependencies. ESTIMATED CHANGES Modified lake-manifest.json 2024-07-09 18:31:40 91e7a94 Congruence subgroup namespace (#14573) Put congruence subgroups into their own namespace, so that things like `Gamma` don't live in the root namespace. ESTIMATED CHANGES Modified Mathlib/NumberTheory/ModularForms/CongruenceSubgroups.lean + def CongruenceSubgroup.Gamma0 + def CongruenceSubgroup.Gamma0Map + theorem CongruenceSubgroup.Gamma0_det + theorem CongruenceSubgroup.Gamma0_is_congruence + theorem CongruenceSubgroup.Gamma0_mem + def CongruenceSubgroup.Gamma1' + def CongruenceSubgroup.Gamma1 + theorem CongruenceSubgroup.Gamma1_in_Gamma0 + theorem CongruenceSubgroup.Gamma1_is_congruence + theorem CongruenceSubgroup.Gamma1_mem' + theorem CongruenceSubgroup.Gamma1_mem + theorem CongruenceSubgroup.Gamma1_to_Gamma0_mem + def CongruenceSubgroup.Gamma + theorem CongruenceSubgroup.Gamma_cong_eq_self + theorem CongruenceSubgroup.Gamma_is_cong_sub + theorem CongruenceSubgroup.Gamma_mem' + theorem CongruenceSubgroup.Gamma_mem + theorem CongruenceSubgroup.Gamma_normal + theorem CongruenceSubgroup.Gamma_one_top + theorem CongruenceSubgroup.Gamma_zero_bot + def CongruenceSubgroup.IsCongruenceSubgroup + theorem CongruenceSubgroup.ModularGroup_T_pow_mem_Gamma + theorem CongruenceSubgroup.conj_cong_is_cong + theorem CongruenceSubgroup.isCongruenceSubgroup_trans - def Gamma0 - def Gamma0Map - theorem Gamma0_det - theorem Gamma0_is_congruence - theorem Gamma0_mem - def Gamma1' - def Gamma1 - theorem Gamma1_in_Gamma0 - theorem Gamma1_is_congruence - theorem Gamma1_mem' - theorem Gamma1_mem - theorem Gamma1_to_Gamma0_mem - def Gamma - theorem Gamma_cong_eq_self - theorem Gamma_is_cong_sub - theorem Gamma_mem' - theorem Gamma_mem - theorem Gamma_normal - theorem Gamma_one_top - theorem Gamma_zero_bot - def IsCongruenceSubgroup - theorem ModularGroup_T_pow_mem_Gamma - theorem conj_cong_is_cong - theorem isCongruenceSubgroup_trans Modified Mathlib/NumberTheory/ModularForms/EisensteinSeries/Basic.lean Modified Mathlib/NumberTheory/ModularForms/EisensteinSeries/Defs.lean Modified Mathlib/NumberTheory/ModularForms/EisensteinSeries/IsBoundedAtImInfty.lean Modified Mathlib/NumberTheory/ModularForms/EisensteinSeries/MDifferentiable.lean Modified Mathlib/NumberTheory/ModularForms/EisensteinSeries/UniformConvergence.lean Modified Mathlib/NumberTheory/ModularForms/Identities.lean 2024-07-09 18:31:39 eb66911 refactor: removing the old homology API (#14569) The now redundant old homology API is removed. (It was already mostly unused.) The only slightly non-trivial changes are in `CategoryTheory.Abelian.Exact` where some definitions and proofs have been refactored. The proof that the category of abelian groups satisfies Grothendieck's AB5 axiom had to be moved to a separate file `Algebra.Category.Grp.AB5`. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Category/Grp/AB5.lean Modified Mathlib/Algebra/Category/Grp/Abelian.lean - theorem AddCommGrp.exact_iff Modified Mathlib/Algebra/Category/ModuleCat/Abelian.lean - theorem ModuleCat.exact_iff Modified Mathlib/Algebra/Homology/Additive.lean Deleted Mathlib/Algebra/Homology/Exact.lean - theorem CategoryTheory.Exact.epi_kernel_lift - structure CategoryTheory.Exact - theorem CategoryTheory.Functor.exact_of_exact_map - theorem CategoryTheory.Preadditive.exact_iff_exact_of_iso - theorem CategoryTheory.Preadditive.exact_iff_homology'_zero - theorem CategoryTheory.Preadditive.exact_of_iso_of_exact' - theorem CategoryTheory.Preadditive.exact_of_iso_of_exact - theorem CategoryTheory.comp_eq_zero_of_exact - theorem CategoryTheory.comp_eq_zero_of_image_eq_kernel - theorem CategoryTheory.epi_iff_exact_zero_right - theorem CategoryTheory.exact_comp_hom_inv_comp - theorem CategoryTheory.exact_comp_hom_inv_comp_iff - theorem CategoryTheory.exact_comp_inv_hom_comp - theorem CategoryTheory.exact_comp_iso - theorem CategoryTheory.exact_comp_mono - theorem CategoryTheory.exact_comp_mono_iff - theorem CategoryTheory.exact_epi_comp - theorem CategoryTheory.exact_epi_zero - theorem CategoryTheory.exact_iso_comp - theorem CategoryTheory.exact_kernelSubobject_arrow - theorem CategoryTheory.exact_kernel_ι - theorem CategoryTheory.exact_of_image_eq_kernel - theorem CategoryTheory.exact_of_zero - theorem CategoryTheory.exact_zero_left_of_mono - theorem CategoryTheory.exact_zero_mono - theorem CategoryTheory.fork_ι_comp_cofork_π - theorem CategoryTheory.imageToKernel_isIso_of_image_eq_kernel - theorem CategoryTheory.kernelSubobject_arrow_eq_zero_of_exact_zero_left - theorem CategoryTheory.kernel_comp_cokernel - theorem CategoryTheory.kernel_ι_eq_zero_of_exact_zero_left - theorem CategoryTheory.mono_iff_exact_zero_left Deleted Mathlib/Algebra/Homology/Homology.lean - def ChainComplex.homology'SuccIso - def ChainComplex.homology'ZeroIso - def CochainComplex.homology'SuccIso - def CochainComplex.homology'ZeroIso - def HomologicalComplex.boundariesIsoImage - theorem HomologicalComplex.boundaries_eq_bot - theorem HomologicalComplex.boundaries_eq_imageSubobject - theorem HomologicalComplex.boundaries_le_cycles' - def HomologicalComplex.cycles'IsoKernel - theorem HomologicalComplex.cycles'_eq_kernelSubobject - theorem HomologicalComplex.cycles_eq_top - def HomologicalComplex.homology'Iso - theorem HomologicalComplex.imageToKernel_as_boundariesToCycles' - def boundariesFunctor - def boundariesToCycles'NatTrans - theorem boundariesToCycles'_naturality - def cycles'Functor - theorem cycles'Map_arrow - theorem cycles'Map_comp - theorem cycles'Map_id - def gradedHomology'Functor - def homology'Functor Modified Mathlib/Algebra/Homology/Homotopy.lean - theorem homology'_map_eq_of_homotopy - def homologyObjIsoOfHomotopyEquiv Modified Mathlib/Algebra/Homology/HomotopyCategory.lean - def HomotopyCategory.homology'Factors - theorem HomotopyCategory.homology'Factors_hom_app - theorem HomotopyCategory.homology'Factors_inv_app - def HomotopyCategory.homology'Functor - theorem HomotopyCategory.homology'Functor_map_factors Modified Mathlib/Algebra/Homology/ImageToKernel.lean - theorem homology'.comp_right_eq_comp_left - theorem homology'.condition - def homology'.congr - def homology'.desc - theorem homology'.ext - def homology'.map - def homology'.mapIso - theorem homology'.map_comp - theorem homology'.map_desc - theorem homology'.map_id - def homology'.π - theorem homology'.π_desc - theorem homology'.π_map - theorem homology'.π_map_apply - def homology' - def homology'IsoCokernelImageToKernel' - def homology'IsoCokernelLift - def homology'OfZeroLeft - def homology'OfZeroRight - def homology'ZeroZero - theorem imageSubobjectMap_comp_imageToKernel Deleted Mathlib/Algebra/Homology/ModuleCat.lean - theorem ModuleCat.cycles'Map_toCycles' - theorem ModuleCat.cycles'_ext - theorem ModuleCat.homology'_ext' - theorem ModuleCat.homology'_ext Modified Mathlib/Algebra/Homology/Opposite.lean - def HomologicalComplex.homology'OpDef - def HomologicalComplex.homology'UnopDef - def homology'Op - def homology'Unop Modified Mathlib/Algebra/Homology/QuasiIso.lean - theorem CategoryTheory.Functor.quasiIso'_of_map_quasiIso' - theorem HomologicalComplex.Hom.fromSingle₀KernelAtZeroIso_inv_eq - theorem HomologicalComplex.Hom.from_single₀_exact_at_succ - theorem HomologicalComplex.Hom.from_single₀_exact_f_d_at_zero - theorem HomologicalComplex.Hom.from_single₀_mono_at_zero - theorem HomologicalComplex.Hom.toSingle₀CokernelAtZeroIso_hom_eq - theorem HomologicalComplex.Hom.to_single₀_epi_at_zero - theorem HomologicalComplex.Hom.to_single₀_exact_at_succ - theorem HomologicalComplex.Hom.to_single₀_exact_d_f_at_zero - theorem HomotopyEquiv.toQuasiIso' - theorem HomotopyEquiv.toQuasiIso'_inv - theorem quasiIso'_of_comp_left - theorem quasiIso'_of_comp_right Modified Mathlib/Algebra/Homology/ShortComplex/Ab.lean Modified Mathlib/Algebra/Homology/ShortComplex/Abelian.lean Modified Mathlib/Algebra/Homology/ShortComplex/Basic.lean Modified Mathlib/Algebra/Homology/ShortComplex/Exact.lean - theorem CategoryTheory.exact_iff_shortComplex_exact Modified Mathlib/Algebra/Homology/ShortComplex/HomologicalComplex.lean Modified Mathlib/Algebra/Homology/ShortComplex/ShortExact.lean Modified Mathlib/Algebra/Homology/SingleHomology.lean +/- theorem ChainComplex.exactAt_succ_single_obj +/- theorem CochainComplex.exactAt_succ_single_obj Modified Mathlib/CategoryTheory/Abelian/Exact.lean - theorem CategoryTheory.Abelian.Exact.op - theorem CategoryTheory.Abelian.Exact.op_iff - theorem CategoryTheory.Abelian.Exact.unop - theorem CategoryTheory.Abelian.Exact.unop_iff - theorem CategoryTheory.Abelian.cokernel.desc.inv - theorem CategoryTheory.Abelian.epi_iff_cokernel_π_eq_zero - theorem CategoryTheory.Abelian.exact_cokernel - theorem CategoryTheory.Abelian.exact_epi_comp_iff - theorem CategoryTheory.Abelian.exact_iff' - theorem CategoryTheory.Abelian.exact_iff - theorem CategoryTheory.Abelian.exact_iff_exact_coimage_π - theorem CategoryTheory.Abelian.exact_iff_exact_image_ι - theorem CategoryTheory.Abelian.exact_iff_image_eq_kernel - theorem CategoryTheory.Abelian.exact_of_is_cokernel - theorem CategoryTheory.Abelian.exact_of_is_kernel - theorem CategoryTheory.Abelian.exact_tfae - def CategoryTheory.Abelian.isColimitCoimage - def CategoryTheory.Abelian.isColimitImage - def CategoryTheory.Abelian.isColimitOfExactOfEpi - theorem CategoryTheory.Abelian.isIso_cokernel_desc_of_exact_of_epi - theorem CategoryTheory.Abelian.isIso_kernel_lift_of_exact_of_mono - def CategoryTheory.Abelian.isLimitImage' - def CategoryTheory.Abelian.isLimitImage - def CategoryTheory.Abelian.isLimitOfExactOfMono - theorem CategoryTheory.Abelian.kernel.lift.inv - theorem CategoryTheory.Abelian.mono_cokernel_desc_of_exact - theorem CategoryTheory.Abelian.mono_iff_kernel_ι_eq_zero +/- theorem CategoryTheory.Abelian.tfae_epi +/- theorem CategoryTheory.Abelian.tfae_mono - theorem CategoryTheory.Functor.map_exact - def CategoryTheory.Functor.preservesCokernelsOfMapExact - def CategoryTheory.Functor.preservesFiniteColimitsOfMapExact - def CategoryTheory.Functor.preservesFiniteColimitsOfPreservesEpisAndKernels - def CategoryTheory.Functor.preservesFiniteLimitsOfMapExact - def CategoryTheory.Functor.preservesFiniteLimitsOfPreservesMonosAndCokernels + def CategoryTheory.Functor.preservesHomologyOfMapExact + def CategoryTheory.Functor.preservesHomologyOfPreservesEpisAndKernels + def CategoryTheory.Functor.preservesHomologyOfPreservesMonosAndCokernels - def CategoryTheory.Functor.preservesKernelsOfMapExact - theorem CategoryTheory.Functor.preservesZeroMorphisms_of_map_exact + theorem CategoryTheory.Functor.reflects_exact_of_faithful + def CategoryTheory.ShortComplex.Exact.isColimitCoimage + def CategoryTheory.ShortComplex.Exact.isColimitImage + def CategoryTheory.ShortComplex.Exact.isLimitImage' + def CategoryTheory.ShortComplex.Exact.isLimitImage + theorem CategoryTheory.ShortComplex.exact_cokernel + theorem CategoryTheory.ShortComplex.exact_iff_epi_imageToKernel' + theorem CategoryTheory.ShortComplex.exact_iff_epi_imageToKernel + theorem CategoryTheory.ShortComplex.exact_iff_exact_coimage_π + theorem CategoryTheory.ShortComplex.exact_iff_exact_image_ι + theorem CategoryTheory.ShortComplex.exact_iff_image_eq_kernel + theorem CategoryTheory.ShortComplex.exact_iff_isIso_imageToKernel + theorem CategoryTheory.ShortComplex.exact_iff_of_forks Deleted Mathlib/CategoryTheory/Abelian/Homology.lean - theorem homology'.condition_ι - theorem homology'.condition_π' - def homology'.desc' - theorem homology'.hom_from_ext - theorem homology'.hom_to_ext - def homology'.lift - theorem homology'.lift_ι - theorem homology'.map_eq_desc'_lift_left - theorem homology'.map_eq_desc'_lift_right - theorem homology'.map_eq_lift_desc'_left - theorem homology'.map_eq_lift_desc'_right - theorem homology'.map_ι - def homology'.ι - def homology'.π' - theorem homology'.π'_desc' - theorem homology'.π'_eq_π - theorem homology'.π'_map - theorem homology'.π'_ι - def homology'IsoKernelDesc Modified Mathlib/CategoryTheory/Abelian/Injective.lean - def CategoryTheory.preservesFiniteColimitsPreadditiveYonedaObjOfInjective Modified Mathlib/CategoryTheory/Abelian/LeftDerived.lean Modified Mathlib/CategoryTheory/Abelian/Projective.lean Modified Mathlib/CategoryTheory/Abelian/Pseudoelements.lean +/- theorem CategoryTheory.Abelian.Pseudoelement.exact_of_pseudo_exact +/- theorem CategoryTheory.Abelian.Pseudoelement.pseudo_exact_of_exact Modified Mathlib/CategoryTheory/Abelian/RightDerived.lean Modified Mathlib/CategoryTheory/Preadditive/Injective.lean - theorem CategoryTheory.Injective.Exact.comp_desc - def CategoryTheory.Injective.Exact.desc Modified Mathlib/CategoryTheory/Preadditive/InjectiveResolution.lean Modified Mathlib/CategoryTheory/Preadditive/Projective.lean - def CategoryTheory.Exact.lift - theorem CategoryTheory.Exact.lift_comp Modified Mathlib/CategoryTheory/Preadditive/ProjectiveResolution.lean 2024-07-09 17:37:18 984c68d chore: bump toolchain to v4.10.0-rc2 (#14577) This only changes incremental compilation. ESTIMATED CHANGES Modified lake-manifest.json Modified lean-toolchain 2024-07-09 17:23:31 6b9e877 Chore: Rename files with Eisenstein series stuff. (#14572) Accidentally created a `Mathlib/NumberTheory/ModularForms/EisensteinSeries/ModularForm.lean` file name. Made it a Basic.lean file and made the previous into a Defs.lean ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/NumberTheory/ModularForms/EisensteinSeries/Basic.lean - def EisensteinSeries.eisSummand - theorem EisensteinSeries.eisSummand_SL2_apply - def EisensteinSeries.eisensteinSeries_SIF - theorem EisensteinSeries.eisensteinSeries_SIF_apply - theorem EisensteinSeries.eisensteinSeries_slash_apply - def EisensteinSeries.gammaSet - def EisensteinSeries.gammaSetEquiv - theorem EisensteinSeries.gammaSet_one_eq - def EisensteinSeries.gammaSet_one_equiv - theorem EisensteinSeries.pairwise_disjoint_gammaSet - theorem EisensteinSeries.vecMul_SL2_mem_gammaSet + def ModularForm.eisensteinSeries_MF - def eisensteinSeries Added Mathlib/NumberTheory/ModularForms/EisensteinSeries/Defs.lean + def EisensteinSeries.eisSummand + theorem EisensteinSeries.eisSummand_SL2_apply + def EisensteinSeries.eisensteinSeries_SIF + theorem EisensteinSeries.eisensteinSeries_SIF_apply + theorem EisensteinSeries.eisensteinSeries_slash_apply + def EisensteinSeries.gammaSet + def EisensteinSeries.gammaSetEquiv + theorem EisensteinSeries.gammaSet_one_eq + def EisensteinSeries.gammaSet_one_equiv + theorem EisensteinSeries.pairwise_disjoint_gammaSet + theorem EisensteinSeries.vecMul_SL2_mem_gammaSet + def eisensteinSeries Deleted Mathlib/NumberTheory/ModularForms/EisensteinSeries/ModularForm.lean - def ModularForm.eisensteinSeries_MF Modified Mathlib/NumberTheory/ModularForms/EisensteinSeries/UniformConvergence.lean 2024-07-09 17:23:30 9360fd0 feat(CategoryTheory/Triangulated): the Yoneda functors are homological (#14528) Let `C` be a pretriangulated category. In this PR, we show that the functors `preadditiveCoyoneda.obj A : C ⥤ AddCommGrp` for `A : Cᵒᵖ` and `preadditiveYoneda.obj B : Cᵒᵖ ⥤ AddCommGrp` for `B : C` are homological functors. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/CategoryTheory/Triangulated/Opposite.lean + theorem CategoryTheory.Functor.map_distinguished_op_exact Added Mathlib/CategoryTheory/Triangulated/Yoneda.lean + theorem CategoryTheory.Pretriangulated.preadditiveCoyoneda_homologySequenceδ_apply + theorem CategoryTheory.Pretriangulated.preadditiveYoneda_map_distinguished 2024-07-09 17:23:29 e272af2 chore: add test file to import everything (#14513) ESTIMATED CHANGES Added test/import_all.lean 2024-07-09 17:23:27 384c2eb feat(AlgebraicGeometry/Morphisms): stalkwise constructor and more API (#14328) Adds a `MorphismProperty.stalkwise` constructor for morphism properties of schemes from a property of ring homomorphisms. Also adds API for reducing proofs of stability under base change to affine situations for properties local at the target. ESTIMATED CHANGES Modified Mathlib/AlgebraicGeometry/Morphisms/Constructors.lean + def AlgebraicGeometry.AffineTargetMorphismProperty.of + theorem AlgebraicGeometry.AffineTargetMorphismProperty.of_isLocal_of_isLocalAtTarget + theorem AlgebraicGeometry.AffineTargetMorphismProperty.stableUnderBaseChange_of_stableUnderBaseChangeOnAffine_of_isLocalAtTarget + theorem AlgebraicGeometry.AffineTargetMorphismProperty.targetAffineLocally_of_eq_of_isLocalAtTarget + def AlgebraicGeometry.MorphismProperty.stalkwise + theorem AlgebraicGeometry.MorphismProperty.stalkwiseIsLocalAtTarget_of_respectsIso + theorem AlgebraicGeometry.MorphismProperty.stalkwise_respectsIso +/- def AlgebraicGeometry.MorphismProperty.topologically +/- theorem AlgebraicGeometry.MorphismProperty.topologically_isStableUnderComposition +/- theorem AlgebraicGeometry.MorphismProperty.topologically_iso_le +/- theorem AlgebraicGeometry.MorphismProperty.topologically_propertyIsLocalAtTarget +/- theorem AlgebraicGeometry.MorphismProperty.topologically_respectsIso Modified Mathlib/RingTheory/RingHomProperties.lean + def RingHom.toMorphismProperty + theorem RingHom.toMorphismProperty_respectsIso_iff 2024-07-09 16:27:40 579a86c feat(Fintype.Basic): Add two theorems supporting Auction Theory formalizations (#14163) This PR adds two missing theorems in `Mathlib.Data.Fintype.Basic`, which is in asisstant of the other PR of mine formalized some basic theorems in `GameTheory.AuctionTheory.Basic` . One may check the previous PR for Auction Theory here: #13248 I would sincerely appreciate a timely review of this PR, as I am eager to complete my first project on Auction Theory before my upcoming birthday. Thank you very much for your consideration and support! ESTIMATED CHANGES Modified Mathlib/Data/Fintype/Basic.lean + theorem Finset.univ_nontrivial + theorem Finset.univ_nontrivial_iff: 2024-07-09 15:53:10 69ea8a2 Remove Chris Hughes from maintainer list (#14207) I am resigning as a maintainer ESTIMATED CHANGES Modified README.md 2024-07-09 14:51:27 64a2226 chore(Data/Set): golf and add decidability of insert (#14529) Adds the insert version, golfs existing versions using `inferInstanceAs`. Makes the lemmas all consistent about using `Decidable` vs `DecidablePred`. These decidability instances are useful in downstream applications. ESTIMATED CHANGES Modified Mathlib/Data/Set/Basic.lean 2024-07-09 14:08:39 e90957e style(DedekindDomain/AdicValuation): fix some snake_case to lowerCamelCase (#14533) In some theorem names, `int_valuation` was still used instead of `intValuation`, and this PR fixes this. ESTIMATED CHANGES Modified Mathlib/RingTheory/DedekindDomain/AdicValuation.lean - theorem IsDedekindDomain.HeightOneSpectrum.IntValuation.le_max_iff_min_le - theorem IsDedekindDomain.HeightOneSpectrum.IntValuation.map_add_le_max' - theorem IsDedekindDomain.HeightOneSpectrum.IntValuation.map_mul' - theorem IsDedekindDomain.HeightOneSpectrum.IntValuation.map_one' - theorem IsDedekindDomain.HeightOneSpectrum.IntValuation.map_zero' + theorem IsDedekindDomain.HeightOneSpectrum.intValuation.le_max_iff_min_le + theorem IsDedekindDomain.HeightOneSpectrum.intValuation.map_add_le_max' + theorem IsDedekindDomain.HeightOneSpectrum.intValuation.map_mul' + theorem IsDedekindDomain.HeightOneSpectrum.intValuation.map_one' + theorem IsDedekindDomain.HeightOneSpectrum.intValuation.map_zero' + theorem IsDedekindDomain.HeightOneSpectrum.intValuation_exists_uniformizer + theorem IsDedekindDomain.HeightOneSpectrum.intValuation_le_one + theorem IsDedekindDomain.HeightOneSpectrum.intValuation_le_pow_iff_dvd + theorem IsDedekindDomain.HeightOneSpectrum.intValuation_lt_one_iff_dvd + theorem IsDedekindDomain.HeightOneSpectrum.intValuation_ne_zero' + theorem IsDedekindDomain.HeightOneSpectrum.intValuation_ne_zero + theorem IsDedekindDomain.HeightOneSpectrum.intValuation_zero_le - theorem IsDedekindDomain.HeightOneSpectrum.int_valuation_exists_uniformizer - theorem IsDedekindDomain.HeightOneSpectrum.int_valuation_le_one - theorem IsDedekindDomain.HeightOneSpectrum.int_valuation_le_pow_iff_dvd - theorem IsDedekindDomain.HeightOneSpectrum.int_valuation_lt_one_iff_dvd - theorem IsDedekindDomain.HeightOneSpectrum.int_valuation_ne_zero' - theorem IsDedekindDomain.HeightOneSpectrum.int_valuation_ne_zero - theorem IsDedekindDomain.HeightOneSpectrum.int_valuation_zero_le Modified Mathlib/RingTheory/DedekindDomain/FiniteAdeleRing.lean Modified Mathlib/RingTheory/DedekindDomain/SelmerGroup.lean 2024-07-09 13:58:48 7c9231f Eisenstein series are modular forms (#12604) We show Eisenstein series are modular forms. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/NumberTheory/ModularForms/EisensteinSeries/Basic.lean - def EisensteinSeries.eisensteinSeries + def eisensteinSeries Added Mathlib/NumberTheory/ModularForms/EisensteinSeries/ModularForm.lean + def ModularForm.eisensteinSeries_MF 2024-07-09 13:02:41 cb6bb1f chore: remove trailing semicolons (#14555) These have no effect. Changes were automatically generated and then manually tweaked. Sometimes, fix indentation of subsequent lines instead of using semicolons. ESTIMATED CHANGES Modified Mathlib/Algebra/Associated.lean Modified Mathlib/Algebra/BigOperators/Group/List.lean Modified Mathlib/Algebra/Free.lean Modified Mathlib/Algebra/Group/Pi/Lemmas.lean Modified Mathlib/Algebra/Group/Subgroup/Finite.lean Modified Mathlib/Algebra/Group/Submonoid/Operations.lean Modified Mathlib/Algebra/Group/Units.lean Modified Mathlib/Algebra/Lie/Free.lean Modified Mathlib/Algebra/Lie/Weights/Basic.lean Modified Mathlib/Algebra/Module/FinitePresentation.lean Modified Mathlib/Algebra/Module/LocalizedModule.lean Modified Mathlib/Algebra/Order/BigOperators/Group/Finset.lean Modified Mathlib/Algebra/Order/Group/Int.lean Modified Mathlib/Algebra/Order/Ring/Basic.lean Modified Mathlib/Algebra/Order/ToIntervalMod.lean Modified Mathlib/Algebra/Polynomial/Basic.lean Modified Mathlib/Algebra/Polynomial/Degree/CardPowDegree.lean Modified Mathlib/Algebra/Polynomial/Degree/Lemmas.lean Modified Mathlib/Algebra/Polynomial/Div.lean Modified Mathlib/Algebra/Polynomial/FieldDivision.lean Modified Mathlib/Algebra/Polynomial/Identities.lean Modified Mathlib/Algebra/Polynomial/RingDivision.lean Modified Mathlib/AlgebraicGeometry/Cover/Open.lean Modified Mathlib/AlgebraicGeometry/Morphisms/QuasiSeparated.lean Modified Mathlib/AlgebraicGeometry/Spec.lean Modified Mathlib/Analysis/Calculus/FDeriv/Measurable.lean Modified Mathlib/Analysis/Complex/PhragmenLindelof.lean Modified Mathlib/Analysis/Complex/Schwarz.lean Modified Mathlib/Analysis/InnerProductSpace/Basic.lean Modified Mathlib/Analysis/InnerProductSpace/PiL2.lean Modified Mathlib/Analysis/MeanInequalities.lean Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Angle.lean Modified Mathlib/CategoryTheory/Bicategory/Coherence.lean Modified Mathlib/CategoryTheory/Groupoid/Subgroupoid.lean Modified Mathlib/CategoryTheory/Limits/Constructions/Pullbacks.lean Modified Mathlib/CategoryTheory/Limits/Final.lean Modified Mathlib/CategoryTheory/Limits/Fubini.lean Modified Mathlib/CategoryTheory/Limits/HasLimits.lean +/- theorem CategoryTheory.Limits.limit.pre_pre Modified Mathlib/CategoryTheory/Limits/IsLimit.lean Modified Mathlib/CategoryTheory/Limits/Preserves/Shapes/Pullbacks.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Biproducts.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Equalizers.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Pullback/Mono.lean Modified Mathlib/CategoryTheory/Monoidal/OfChosenFiniteProducts/Basic.lean Modified Mathlib/CategoryTheory/Monoidal/OfChosenFiniteProducts/Symmetric.lean Modified Mathlib/CategoryTheory/Preadditive/Biproducts.lean Modified Mathlib/CategoryTheory/Shift/Basic.lean Modified Mathlib/Combinatorics/SimpleGraph/AdjMatrix.lean Modified Mathlib/Computability/Primrec.lean Modified Mathlib/Computability/TuringMachine.lean Modified Mathlib/Control/Functor/Multivariate.lean Modified Mathlib/Control/Monad/Cont.lean Modified Mathlib/Data/DFinsupp/Basic.lean Modified Mathlib/Data/Fin/Basic.lean Modified Mathlib/Data/Fintype/Card.lean Modified Mathlib/Data/Int/Bitwise.lean Modified Mathlib/Data/Int/Defs.lean Modified Mathlib/Data/Int/Order/Units.lean Modified Mathlib/Data/List/Indexes.lean Modified Mathlib/Data/List/Infix.lean Modified Mathlib/Data/List/Rotate.lean Modified Mathlib/Data/List/Sublists.lean Modified Mathlib/Data/Matrix/Kronecker.lean Modified Mathlib/Data/Multiset/Antidiagonal.lean Modified Mathlib/Data/Multiset/FinsetOps.lean Modified Mathlib/Data/Nat/Defs.lean Modified Mathlib/Data/Num/Lemmas.lean Modified Mathlib/Data/PFunctor/Multivariate/M.lean Modified Mathlib/Data/PFunctor/Multivariate/W.lean Modified Mathlib/Data/PNat/Prime.lean Modified Mathlib/Data/QPF/Multivariate/Constructions/Cofix.lean Modified Mathlib/Data/QPF/Multivariate/Constructions/Fix.lean Modified Mathlib/Data/QPF/Univariate/Basic.lean Modified Mathlib/Data/Rat/Defs.lean Modified Mathlib/Data/Set/Prod.lean Modified Mathlib/Data/Sum/Order.lean Modified Mathlib/Deprecated/Subgroup.lean Modified Mathlib/FieldTheory/Finite/Basic.lean Modified Mathlib/FieldTheory/Fixed.lean Modified Mathlib/FieldTheory/Normal.lean Modified Mathlib/FieldTheory/PurelyInseparable.lean Modified Mathlib/FieldTheory/SplittingField/IsSplittingField.lean Modified Mathlib/Geometry/Manifold/ChartedSpace.lean Modified Mathlib/Geometry/Manifold/ContMDiffMFDeriv.lean Modified Mathlib/GroupTheory/Coxeter/Length.lean Modified Mathlib/GroupTheory/FreeGroup/Basic.lean Modified Mathlib/GroupTheory/GroupAction/Quotient.lean Modified Mathlib/GroupTheory/Index.lean Modified Mathlib/GroupTheory/QuotientGroup.lean Modified Mathlib/LinearAlgebra/AffineSpace/AffineSubspace.lean Modified Mathlib/LinearAlgebra/AffineSpace/Independent.lean Modified Mathlib/LinearAlgebra/AffineSpace/Slope.lean Modified Mathlib/LinearAlgebra/CliffordAlgebra/EvenEquiv.lean Modified Mathlib/LinearAlgebra/LinearIndependent.lean Modified Mathlib/LinearAlgebra/Pi.lean Modified Mathlib/LinearAlgebra/Ray.lean Modified Mathlib/Logic/Relation.lean Modified Mathlib/MeasureTheory/Function/LpSeminorm/Basic.lean Modified Mathlib/MeasureTheory/Function/LpSeminorm/CompareExp.lean Modified Mathlib/MeasureTheory/Integral/Layercake.lean Modified Mathlib/MeasureTheory/Integral/SetToL1.lean Modified Mathlib/MeasureTheory/Integral/VitaliCaratheodory.lean Modified Mathlib/MeasureTheory/Measure/FiniteMeasure.lean Modified Mathlib/MeasureTheory/OuterMeasure/Induced.lean Modified Mathlib/ModelTheory/Algebra/Ring/Basic.lean Modified Mathlib/NumberTheory/ArithmeticFunction.lean Modified Mathlib/NumberTheory/Bernoulli.lean Modified Mathlib/NumberTheory/BernoulliPolynomials.lean Modified Mathlib/NumberTheory/Dioph.lean Modified Mathlib/NumberTheory/KummerDedekind.lean Modified Mathlib/NumberTheory/LegendreSymbol/JacobiSymbol.lean Modified Mathlib/NumberTheory/Liouville/LiouvilleWith.lean Modified Mathlib/NumberTheory/Ostrowski.lean Modified Mathlib/NumberTheory/Padics/Hensel.lean Modified Mathlib/Order/Cover.lean Modified Mathlib/Order/InitialSeg.lean Modified Mathlib/Order/Iterate.lean Modified Mathlib/Order/OmegaCompletePartialOrder.lean Modified Mathlib/Order/WellFoundedSet.lean Modified Mathlib/Probability/Independence/Kernel.lean Modified Mathlib/RepresentationTheory/Basic.lean Modified Mathlib/RingTheory/DiscreteValuationRing/TFAE.lean Modified Mathlib/RingTheory/Discriminant.lean Modified Mathlib/RingTheory/Ideal/AssociatedPrime.lean Modified Mathlib/RingTheory/Ideal/Basic.lean Modified Mathlib/RingTheory/Ideal/Operations.lean Modified Mathlib/RingTheory/Kaehler/Basic.lean Modified Mathlib/RingTheory/LocalRing/Module.lean Modified Mathlib/RingTheory/Multiplicity.lean Modified Mathlib/RingTheory/Polynomial/Chebyshev.lean Modified Mathlib/RingTheory/RingHom/FiniteType.lean Modified Mathlib/RingTheory/Valuation/ValuationSubring.lean Modified Mathlib/SetTheory/Game/PGame.lean Modified Mathlib/SetTheory/Game/Short.lean Modified Mathlib/SetTheory/Lists.lean Modified Mathlib/SetTheory/Ordinal/Arithmetic.lean Modified Mathlib/SetTheory/Ordinal/Principal.lean Modified Mathlib/Tactic/ByContra.lean Modified Mathlib/Topology/Bases.lean Modified Mathlib/Topology/Constructions.lean Modified Mathlib/Topology/ContinuousFunction/UniqueCFC.lean Modified Mathlib/Topology/FiberBundle/Basic.lean Modified Mathlib/Topology/Homotopy/HomotopyGroup.lean Modified Mathlib/Topology/MetricSpace/GromovHausdorff.lean Modified Mathlib/Topology/Order/Basic.lean Modified Mathlib/Topology/Sequences.lean Modified Mathlib/Topology/Sheaves/SheafCondition/EqualizerProducts.lean Modified Mathlib/Topology/Sheaves/Skyscraper.lean Modified Mathlib/Topology/UniformSpace/Basic.lean 2024-07-09 11:47:12 aa4fe4f chore: remove unused import from Data.Nat.Count (#14568) ESTIMATED CHANGES Modified Mathlib/Data/Nat/Count.lean 2024-07-09 11:47:11 bcbcbff fix: make the allowed unused tactics extensible (#14557) This PR allows to change the tactics that the unused tactic linter ignores. The main use-case is allowing `done` at the end of proofs, which is very useful for teaching purposes. See for instance [this Zulip thread](https://leanprover.zulipchat.com/#narrow/stream/113488-general/topic/Disable.20.60linter.2EunusedTactic.60.20warning.20for.20.60done.60). ESTIMATED CHANGES Modified Mathlib/Tactic/Linter/UnusedTactic.lean - def Mathlib.Linter.UnusedTactic.allowed Modified test/UnusedTactic.lean 2024-07-09 11:47:09 e0e0819 chore (Data.Nat.Cast.Field): split into unbundled and bundled results (#14536) We split off the results depending on `LinearOrderedSemifield` into a separate file. ESTIMATED CHANGES Modified Archive/OxfordInvariants/Summer2021/Week3P1.lean Modified Mathlib.lean Modified Mathlib/Algebra/CharZero/Lemmas.lean Modified Mathlib/Algebra/Order/Floor.lean Modified Mathlib/Algebra/Order/Monoid/Unbundled/Basic.lean Modified Mathlib/Combinatorics/SimpleGraph/Coloring.lean Modified Mathlib/Combinatorics/SimpleGraph/Regularity/Uniform.lean Modified Mathlib/Data/ENat/Basic.lean Modified Mathlib/Data/Int/Interval.lean Modified Mathlib/Data/Nat/Cast/Field.lean - theorem Nat.cast_div_le - theorem Nat.cast_inv_le_one - theorem Nat.inv_pos_of_nat - theorem Nat.one_div_le_one_div - theorem Nat.one_div_lt_one_div - theorem Nat.one_div_pos_of_nat Added Mathlib/Data/Nat/Cast/Order/Field.lean + theorem Nat.cast_div_le + theorem Nat.cast_inv_le_one + theorem Nat.inv_pos_of_nat + theorem Nat.one_div_le_one_div + theorem Nat.one_div_lt_one_div + theorem Nat.one_div_pos_of_nat 2024-07-09 11:47:08 a1a5967 chore: postpone Field past Algebra/Defs (#14465) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Algebra/Defs.lean - theorem algebraMap.coe_div - theorem algebraMap.coe_inj - theorem algebraMap.coe_inv - theorem algebraMap.coe_ratCast - theorem algebraMap.coe_zpow - theorem algebraMap.lift_map_eq_zero_iff Added Mathlib/Algebra/Algebra/Field.lean + theorem algebraMap.coe_div + theorem algebraMap.coe_inj + theorem algebraMap.coe_inv + theorem algebraMap.coe_ratCast + theorem algebraMap.coe_zpow + theorem algebraMap.lift_map_eq_zero_iff Modified Mathlib/Algebra/Field/Subfield.lean Modified Mathlib/Algebra/Ring/CentroidHom.lean Modified Mathlib/Analysis/RCLike/Basic.lean 2024-07-09 11:47:07 a01fca8 chore(Data): reduce use of autoImplicit (#14362) This is not exhaustive: there are about ten remaining files in this directory. `Data/Vector` may come in a follow-up PR (this is harder). ESTIMATED CHANGES Modified Mathlib/Data/Array/ExtractLemmas.lean +/- theorem Array.extract_eq_of_size_le_end +/- theorem Array.extract_extract Modified Mathlib/Data/ByteArray.lean +/- def ByteSlice.forIn.loop Modified Mathlib/Data/List/Range.lean +/- theorem List.indexOf_finRange +/- theorem List.range'_one Modified Mathlib/Data/Matroid/Basic.lean +/- theorem Matroid.Base.exchange +/- theorem Matroid.Base.exchange_mem +/- theorem Matroid.Base.finite_of_finite +/- theorem Matroid.Base.insert_not_base +/- theorem Matroid.Base.not_base_of_ssubset +/- theorem Matroid.ExchangeProperty.encard_diff_le_aux +/- theorem Matroid.Indep.base_of_forall_insert Modified Mathlib/Data/Stream/Defs.lean Modified Mathlib/Data/Stream/Init.lean +/- theorem Stream'.concat_take_get +/- theorem Stream'.dropLast_take +/- theorem Stream'.drop_tail' +/- theorem Stream'.get_tail +/- theorem Stream'.tail_drop' +/- theorem Stream'.take_succ_cons Modified Mathlib/Data/Sym/Basic.lean Modified Mathlib/Data/UnionFind.lean 2024-07-09 10:53:26 cc6cf67 chore(Control): reduce use of autoImplicit (#14560) Control/Random is left untouched for now; that file seems to use autoImplicits quite pervasively ESTIMATED CHANGES Modified Mathlib/Control/Monad/Basic.lean +/- def ReaderT.equiv +/- def StateT.equiv Modified Mathlib/Control/Monad/Writer.lean 2024-07-09 10:53:24 fccc94d chore (Algebra.PUnitInstances): split file into `Algebra`, `Order`, and `Module` instance files (#14461) When we need algebra structures on `PUnit`, we should be more surgical about what we are importing. ESTIMATED CHANGES Modified Counterexamples/CharPZeroNeCharZero.lean Modified Mathlib.lean Modified Mathlib/Algebra/Category/Grp/Basic.lean Modified Mathlib/Algebra/Category/ModuleCat/Basic.lean Modified Mathlib/Algebra/Category/MonCat/Basic.lean Modified Mathlib/Algebra/Module/Submodule/Lattice.lean Renamed Mathlib/Algebra/PUnitInstances.lean to Mathlib/Algebra/PUnitInstances/Algebra.lean - theorem PUnit.smul_eq Added Mathlib/Algebra/PUnitInstances/Module.lean + theorem PUnit.smul_eq Added Mathlib/Algebra/PUnitInstances/Order.lean Modified Mathlib/Algebra/Ring/BooleanRing.lean Modified Mathlib/Analysis/Normed/Group/Constructions.lean Modified Mathlib/CategoryTheory/Monoidal/Mon_.lean Modified Mathlib/GroupTheory/Coprod/Basic.lean 2024-07-09 09:58:21 41b65e6 fix: silence the `set_option` linter outside of mathlib (#14558) This PR makes the `set_option` linter only emit its warnings in files whose path begins with `Mathlib`, `test`, `Archive`, `Counterexamples`. Effectively, it should disable the linter on projects that are not mathlib. [Zulip thread](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/.60pp.2Emvars.60.20forbidden.3F/near/449962160) ESTIMATED CHANGES Modified Mathlib/Tactic/Linter/Style.lean 2024-07-09 09:58:20 fa8a27f chore: remove superfluous open statements (#14543) Not exhaustive: hand-minimized in a few selected files ESTIMATED CHANGES Modified Mathlib/Algebra/BigOperators/GroupWithZero/Finset.lean Modified Mathlib/Analysis/Distribution/FourierSchwartz.lean Modified Mathlib/Analysis/FunctionalSpaces/SobolevInequality.lean Modified Mathlib/CategoryTheory/Idempotents/Karoubi.lean Modified Mathlib/Combinatorics/Additive/Dissociation.lean Modified Mathlib/Combinatorics/SimpleGraph/Hamiltonian.lean Modified Mathlib/FieldTheory/KummerExtension.lean Modified Mathlib/GroupTheory/Congruence/BigOperators.lean Modified Mathlib/LinearAlgebra/Matrix/Permutation.lean Modified Mathlib/MeasureTheory/Function/Intersectivity.lean Modified Mathlib/NumberTheory/ModularForms/EisensteinSeries/IsBoundedAtImInfty.lean Modified Mathlib/NumberTheory/ModularForms/EisensteinSeries/MDifferentiable.lean Modified Mathlib/NumberTheory/NumberField/CanonicalEmbedding/Basic.lean Modified Mathlib/Probability/BorelCantelli.lean Modified Mathlib/RingTheory/Congruence/BigOperators.lean Modified Mathlib/RingTheory/Flat/EquationalCriterion.lean Modified Mathlib/RingTheory/RootsOfUnity/Basic.lean Modified Mathlib/Topology/ContinuousFunction/CompactlySupported.lean 2024-07-09 09:58:19 6ce9f7a chore: Split `RingTheory.Trace` and `RingTheory.Norm` (#14446) We split `RingTheory.Trace` in `RingTheory.Trace.Defs` and `RingTheory.Trace.Basic`. Similarly for `RingTheory.Norm`. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/FieldTheory/Finite/Trace.lean Modified Mathlib/FieldTheory/KummerExtension.lean Modified Mathlib/LinearAlgebra/FreeModule/Norm.lean Modified Mathlib/NumberTheory/ClassNumber/Finite.lean Modified Mathlib/NumberTheory/Cyclotomic/PrimitiveRoots.lean Modified Mathlib/NumberTheory/NumberField/Embeddings.lean Modified Mathlib/RingTheory/Complex.lean Modified Mathlib/RingTheory/DedekindDomain/IntegralClosure.lean Modified Mathlib/RingTheory/Discriminant.lean Modified Mathlib/RingTheory/Localization/NormTrace.lean Renamed Mathlib/RingTheory/Norm.lean to Mathlib/RingTheory/Norm/Basic.lean - theorem Algebra.norm_algebraMap_of_basis - theorem Algebra.norm_apply - theorem Algebra.norm_eq_matrix_det - theorem Algebra.norm_eq_one_of_not_exists_basis - theorem Algebra.norm_eq_one_of_not_module_finite Added Mathlib/RingTheory/Norm/Defs.lean + theorem Algebra.norm_algebraMap_of_basis + theorem Algebra.norm_apply + theorem Algebra.norm_eq_matrix_det + theorem Algebra.norm_eq_one_of_not_exists_basis + theorem Algebra.norm_eq_one_of_not_module_finite Modified Mathlib/RingTheory/NormTrace.lean Modified Mathlib/RingTheory/Polynomial/Eisenstein/IsIntegral.lean Renamed Mathlib/RingTheory/Trace.lean to Mathlib/RingTheory/Trace/Basic.lean - theorem Algebra.traceForm_apply - theorem Algebra.traceForm_isSymm - theorem Algebra.traceForm_toMatrix +/- theorem Algebra.traceForm_toMatrix_powerBasis - theorem Algebra.trace_algebraMap - theorem Algebra.trace_algebraMap_of_basis - theorem Algebra.trace_apply - theorem Algebra.trace_comp_trace - theorem Algebra.trace_comp_trace_of_basis - theorem Algebra.trace_eq_matrix_trace - theorem Algebra.trace_eq_zero_of_not_exists_basis - theorem Algebra.trace_prod - theorem Algebra.trace_prod_apply - theorem Algebra.trace_trace - theorem Algebra.trace_trace_of_basis Added Mathlib/RingTheory/Trace/Defs.lean + theorem Algebra.traceForm_apply + theorem Algebra.traceForm_isSymm + theorem Algebra.traceForm_toMatrix + theorem Algebra.trace_algebraMap + theorem Algebra.trace_algebraMap_of_basis + theorem Algebra.trace_apply + theorem Algebra.trace_comp_trace + theorem Algebra.trace_comp_trace_of_basis + theorem Algebra.trace_eq_matrix_trace + theorem Algebra.trace_eq_zero_of_not_exists_basis + theorem Algebra.trace_prod + theorem Algebra.trace_prod_apply + theorem Algebra.trace_trace + theorem Algebra.trace_trace_of_basis 2024-07-09 09:09:09 dfea83f chore: add missing spaces around = or := (#14554) Follow mathlib style slightly better: "Use spaces on both sides of ":", ":=" or infix operators." Automatically generated. Not exhaustive, as doing that everywhere has false positives with meta code. ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/NonUnitalHom.lean +/- def NonUnitalAlgHom.comp Modified Mathlib/Algebra/Category/ModuleCat/Sheaf/PushforwardContinuous.lean Modified Mathlib/Algebra/GradedMonoid.lean Modified Mathlib/Algebra/Group/Indicator.lean Modified Mathlib/Algebra/Group/Submonoid/Units.lean +/- theorem Submonoid.mul_mem_units Modified Mathlib/Algebra/Homology/BifunctorHomotopy.lean Modified Mathlib/Algebra/Homology/HomotopyCategory/HomComplexShift.lean Modified Mathlib/Algebra/Homology/HomotopyCategory/ShiftSequence.lean +/- theorem CochainComplex.ShiftSequence.shiftIso_hom_app +/- theorem CochainComplex.ShiftSequence.shiftIso_inv_app Modified Mathlib/Algebra/Homology/HomotopyCofiber.lean +/- theorem HomologicalComplex.homotopyCofiber.inlX_d' Modified Mathlib/Algebra/Homology/ShortComplex/Homology.lean - theorem CategoryTheory.ShortComplex.homologyπ_comp_leftHomologyIso_inv: + theorem CategoryTheory.ShortComplex.homologyπ_comp_leftHomologyIso_inv Modified Mathlib/Algebra/Order/Antidiag/Prod.lean +/- theorem Finset.swap_mem_antidiagonal Modified Mathlib/Algebra/Order/GroupWithZero/WithZero.lean Modified Mathlib/Algebra/Order/Ring/Defs.lean +/- theorem min_mul_min_le_mul_min_min Modified Mathlib/Algebra/Ring/Center.lean Modified Mathlib/Algebra/Ring/CentroidHom.lean Modified Mathlib/Algebra/Ring/Invertible.lean Modified Mathlib/AlgebraicGeometry/AffineScheme.lean +/- theorem AlgebraicGeometry.IsAffineOpen.map_fromSpec +/- theorem AlgebraicGeometry.IsAffineOpen.ιOpens_basicOpen_preimage Modified Mathlib/AlgebraicGeometry/ProjectiveSpectrum/Scheme.lean +/- theorem AlgebraicGeometry.ProjIsoSpecTopComponent.toSpec_bijective Modified Mathlib/Analysis/Calculus/FDeriv/Prod.lean Modified Mathlib/Analysis/Complex/Hadamard.lean +/- theorem Complex.HadamardThreeLines.interpStrip_eq_of_mem_verticalStrip Modified Mathlib/Analysis/FunctionalSpaces/SobolevInequality.lean Modified Mathlib/Analysis/NormedSpace/PiTensorProduct/InjectiveSeminorm.lean Modified Mathlib/CategoryTheory/Abelian/Ext.lean Modified Mathlib/CategoryTheory/Closed/Ideal.lean Modified Mathlib/CategoryTheory/ComposableArrows.lean Modified Mathlib/CategoryTheory/FiberedCategory/BasedCategory.lean Modified Mathlib/CategoryTheory/FiberedCategory/Cartesian.lean Modified Mathlib/CategoryTheory/FiberedCategory/HomLift.lean Modified Mathlib/CategoryTheory/Functor/Derived/RightDerived.lean +/- theorem CategoryTheory.Functor.rightDerived_fac_app Modified Mathlib/CategoryTheory/Functor/KanExtension/Pointwise.lean Modified Mathlib/CategoryTheory/Limits/Presheaf.lean Modified Mathlib/CategoryTheory/Limits/Shapes/FunctorToTypes.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Multiequalizer.lean Modified Mathlib/CategoryTheory/Localization/Predicate.lean +/- theorem CategoryTheory.areEqualizedByLocalization_iff Modified Mathlib/CategoryTheory/Monad/Adjunction.lean +/- theorem CategoryTheory.Reflective.comparison_full Modified Mathlib/CategoryTheory/Monoidal/Category.lean Modified Mathlib/CategoryTheory/Monoidal/Limits.lean Modified Mathlib/CategoryTheory/Preadditive/InjectiveResolution.lean +/- theorem CategoryTheory.InjectiveResolution.exact_succ Modified Mathlib/CategoryTheory/Preadditive/ProjectiveResolution.lean +/- theorem CategoryTheory.ProjectiveResolution.exact_succ Modified Mathlib/CategoryTheory/Quotient.lean Modified Mathlib/CategoryTheory/Shift/SingleFunctors.lean Modified Mathlib/CategoryTheory/Sites/Coverage.lean Modified Mathlib/CategoryTheory/Sites/PreservesSheafification.lean Modified Mathlib/CategoryTheory/Sums/Basic.lean Modified Mathlib/Combinatorics/Colex.lean Modified Mathlib/Combinatorics/SetFamily/Shatter.lean Modified Mathlib/Computability/AkraBazzi/AkraBazzi.lean Modified Mathlib/Computability/AkraBazzi/GrowsPolynomially.lean Modified Mathlib/Data/Finset/Lattice.lean +/- theorem Finset.sup'_mono Modified Mathlib/Data/Finset/Sups.lean Modified Mathlib/Data/Finsupp/Basic.lean +/- theorem Finsupp.prod_equivMapDomain Modified Mathlib/Data/Finsupp/Multiset.lean +/- theorem Finsupp.toMultiset_eq_iff Modified Mathlib/Data/List/Basic.lean Modified Mathlib/Data/List/DropRight.lean Modified Mathlib/Data/List/InsertNth.lean Modified Mathlib/Data/Matrix/Kronecker.lean Modified Mathlib/Data/Matroid/Basic.lean +/- theorem Matroid.basis_iff_mem_maximals +/- theorem Matroid.basis_iff_mem_maximals_Prop Modified Mathlib/Data/Matroid/Dual.lean +/- theorem Matroid.Base.inter_basis_iff_compl_inter_basis_dual Modified Mathlib/Data/Nat/Defs.lean Modified Mathlib/Data/Nat/Digits.lean +/- theorem Nat.self_div_pow_eq_ofDigits_drop Modified Mathlib/Data/Nat/Factorial/Basic.lean +/- theorem Nat.ascFactorial_of_sub Modified Mathlib/Dynamics/BirkhoffSum/NormedSpace.lean Modified Mathlib/FieldTheory/IntermediateField.lean +/- theorem IntermediateField.map_injective Modified Mathlib/Geometry/Manifold/LocalDiffeomorph.lean +/- theorem IsLocalDiffeomorphOn.isLocalHomeomorphOn Modified Mathlib/GroupTheory/Coxeter/Basic.lean Modified Mathlib/GroupTheory/Coxeter/Length.lean +/- theorem CoxeterSystem.lengthParity_simple Modified Mathlib/GroupTheory/MonoidLocalization.lean Modified Mathlib/GroupTheory/NoncommCoprod.lean +/- theorem MonoidHom.noncommCoprod_inl_inr Modified Mathlib/GroupTheory/Perm/DomMulAct.lean - theorem DomMulAct.stabilizer_card: + theorem DomMulAct.stabilizer_card Modified Mathlib/LinearAlgebra/AffineSpace/Independent.lean Modified Mathlib/LinearAlgebra/Finsupp.lean +/- theorem Finsupp.restrictDom_apply Modified Mathlib/LinearAlgebra/Matrix/GeneralLinearGroup/Card.lean Modified Mathlib/LinearAlgebra/Matrix/PosDef.lean Modified Mathlib/LinearAlgebra/Matrix/SpecialLinearGroup.lean +/- theorem IsCoprime.exists_SL2_col +/- theorem IsCoprime.exists_SL2_row Modified Mathlib/LinearAlgebra/Matrix/Spectrum.lean Modified Mathlib/LinearAlgebra/PiTensorProduct.lean Modified Mathlib/LinearAlgebra/QuadraticForm/Basic.lean Modified Mathlib/LinearAlgebra/QuadraticForm/TensorProduct/Isometries.lean +/- def QuadraticForm.tensorLId +/- def QuadraticForm.tensorRId Modified Mathlib/LinearAlgebra/TensorProduct/Basic.lean +/- theorem TensorProduct.map_comm Modified Mathlib/LinearAlgebra/TensorProduct/DirectLimit.lean +/- theorem TensorProduct.directLimitRight_tmul_of Modified Mathlib/LinearAlgebra/TensorProduct/Tower.lean +/- theorem TensorProduct.AlgebraTensorModule.leftComm_symm_tmul +/- theorem TensorProduct.AlgebraTensorModule.rightComm_symm_tmul Modified Mathlib/MeasureTheory/Constructions/Projective.lean Modified Mathlib/MeasureTheory/Integral/PeakFunction.lean Modified Mathlib/MeasureTheory/Measure/FiniteMeasureProd.lean Modified Mathlib/MeasureTheory/SetSemiring.lean Modified Mathlib/NumberTheory/ArithmeticFunction.lean Modified Mathlib/NumberTheory/LSeries/Dirichlet.lean +/- theorem LSeries.convolution_one_eq_convolution_zeta +/- theorem LSeries.one_convolution_eq_zeta_convolution Modified Mathlib/NumberTheory/ModularForms/JacobiTheta/TwoVariable.lean Modified Mathlib/NumberTheory/NumberField/CanonicalEmbedding/Basic.lean +/- theorem NumberField.mixedEmbedding.normAtPlace_apply_isReal Modified Mathlib/NumberTheory/NumberField/CanonicalEmbedding/ConvexBody.lean Modified Mathlib/NumberTheory/Padics/PadicVal.lean +/- theorem sub_one_mul_padicValNat_factorial Modified Mathlib/Order/Filter/Basic.lean +/- theorem Filter.EventuallyEq.pow_const Modified Mathlib/Order/LiminfLimsup.lean Modified Mathlib/Probability/Kernel/Disintegration/MeasurableStieltjes.lean Modified Mathlib/RingTheory/MvPolynomial/Homogeneous.lean +/- theorem MvPolynomial.IsHomogeneous.rename_isHomogeneous Modified Mathlib/RingTheory/MvPolynomial/WeightedHomogeneous.lean +/- theorem MvPolynomial.weightedDegree_apply Modified Mathlib/RingTheory/Polynomial/Nilpotent.lean +/- theorem Polynomial.isNilpotent_reflect_iff Modified Mathlib/RingTheory/TensorProduct/MvPolynomial.lean +/- theorem MvPolynomial.scalarRTensor_apply_X_tmul_apply +/- theorem MvPolynomial.scalarRTensor_apply_monomial_tmul +/- theorem MvPolynomial.scalarRTensor_apply_tmul_apply Modified Mathlib/RingTheory/UniqueFactorizationDomain.lean Modified Mathlib/SetTheory/Ordinal/FixedPointApproximants.lean Modified Mathlib/Tactic/FunProp/Core.lean Modified Mathlib/Tactic/FunProp/Elab.lean Modified Mathlib/Tactic/FunProp/FunctionData.lean Modified Mathlib/Tactic/FunProp/Theorems.lean Modified Mathlib/Tactic/Linter/UnusedTactic.lean +/- def Mathlib.Linter.UnusedTactic.allowed Modified Mathlib/Topology/Algebra/InfiniteSum/GroupCompletion.lean +/- theorem hasSum_iff_hasSum_compl Modified Mathlib/Topology/Category/Profinite/Limits.lean Modified Mathlib/Topology/Compactness/Lindelof.lean +/- theorem HereditarilyLindelof_LindelofSets Modified Mathlib/Topology/Inseparable.lean +/- theorem SeparationQuotient.continuousAt_lift Modified Mathlib/Topology/Instances/ENNReal.lean Modified Mathlib/Topology/Metrizable/Uniformity.lean Modified Mathlib/Topology/Separation.lean +/- theorem r1Space_iff_inseparable_or_disjoint_nhds 2024-07-09 09:09:07 9a393b3 chore(Topology/ContinuousFunction/Ordered) remove porting note (#14553) ESTIMATED CHANGES Modified Mathlib/Topology/ContinuousFunction/Ordered.lean 2024-07-09 09:09:06 4c13397 chore(AlgebraicGeometry/GammaSpecAdjunction): remove obsolete porting notes (#14552) ESTIMATED CHANGES Modified Mathlib/AlgebraicGeometry/GammaSpecAdjunction.lean 2024-07-09 08:19:45 860f0cb chore(Data.NNRat.Defs): reduce imports (#14541) A more straightforward proof and we can reduce the explicit imports for `Data.NNRat.Defs` by a third. ESTIMATED CHANGES Modified Mathlib/Data/Int/Star.lean Modified Mathlib/Data/NNRat/Defs.lean Modified Mathlib/Data/Nat/Digits.lean Modified Mathlib/Data/Nat/Fib/Basic.lean Modified Mathlib/Data/Nat/Hyperoperation.lean Modified Mathlib/Data/Nat/Nth.lean Modified Mathlib/Data/Num/Prime.lean Modified Mathlib/Data/Rat/Star.lean Modified Mathlib/NumberTheory/EllipticDivisibilitySequence.lean Modified scripts/noshake.json 2024-07-09 05:38:10 a90eae7 feat(Data/ENat): `sSup_eq_zero` and `sInf_eq_zero` (#14043) To make working with `ENat` easier. ESTIMATED CHANGES Modified Mathlib/Data/ENat/Basic.lean + theorem ENat.lt_one_iff_eq_zero Modified Mathlib/Data/ENat/Lattice.lean + theorem ENat.sInf_eq_zero + theorem ENat.sSup_eq_zero' + theorem ENat.sSup_eq_zero Modified Mathlib/Order/CompleteLattice.lean + theorem sSup_eq_bot' 2024-07-09 02:00:42 7277dce feat : define `ContinuousFunctionalCalculus` Instance for Hermitian Matrices over an RCLike Field (#13697) This file contains the requisite lemmas needed to define a `ContinuousFunctionalCalculus` for Hermitian Matrices over an RCLike Field. - [x] depends on: #13729 - [x] depends on: #13765 - [x] depends on : #13837 - [x] depends on : #13838 Co-Authored by @j-loreaux ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/LinearAlgebra/Matrix/HermitianFunctionalCalculus.lean + theorem Matrix.IsHermitian.cfcAux_id + theorem Matrix.IsHermitian.cfc_eq + theorem Matrix.IsHermitian.closedEmbedding_cfcAux + theorem Matrix.IsHermitian.eigenvalues_eq_spectrum_real + theorem Matrix.finite_real_spectrum 2024-07-09 01:42:13 6fa7913 chore: update Mathlib dependencies 2024-07-09 (#14547) This PR updates the Mathlib dependencies. ESTIMATED CHANGES 2024-07-09 01:26:10 6be67a1 chore: update Mathlib dependencies 2024-07-09 (#14546) This PR updates the Mathlib dependencies. ESTIMATED CHANGES Modified lake-manifest.json 2024-07-08 20:41:46 a788331 perf(Analysis/Convex/Segment): squeeze two slow simps (#14537) These simp calls take 1 and 0.6s, respectively: squeeze them instead. This regressed in #14516. ESTIMATED CHANGES Modified Mathlib/Analysis/Convex/Segment.lean 2024-07-08 20:11:07 c2853f3 feat(CategoryTheory/Adjunction): left adjoint is faithful iff unit is mono, etc. (#14490) We prove the full Lemma 4.5.13 in Riehl's *Category Theory in Context*, characterizing when a left/right adjoint is full, resp. faithful, resp fully faithful in terms of the unit/counit being various types of epi/mono/iso. Earlier we only had the statements for fully faithful functors. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Adjunction/FullyFaithful.lean + theorem CategoryTheory.Adjunction.faithful_L_of_mono_unit_app + theorem CategoryTheory.Adjunction.faithful_R_of_epi_counit_app + theorem CategoryTheory.Adjunction.full_L_of_isSplitEpi_unit_app + theorem CategoryTheory.Adjunction.full_R_of_isSplitMono_counit_app 2024-07-08 19:15:13 508d22f chore: removing unnecessary imports of Batteries.Logic (#14522) ESTIMATED CHANGES Modified Mathlib/Init/Data/Quot.lean Modified Mathlib/Tactic/Use.lean 2024-07-08 19:04:21 abfa378 feat(Combinatorics/SimpleGraph): vertices are not reachable iff set of walks between them is empty (#14315) This lemma came up while extending `SimpleGraph.dist` to `ENat`. ESTIMATED CHANGES Modified Mathlib/Combinatorics/SimpleGraph/Connectivity.lean + theorem SimpleGraph.not_reachable_iff_isEmpty_walk 2024-07-08 17:58:07 d78eeda chore: update Mathlib dependencies 2024-07-08 (#14525) This PR updates the Mathlib dependencies. ESTIMATED CHANGES 2024-07-08 17:58:06 ed825b9 chore: tidy various files (#14516) ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Group/PosPart.lean Modified Mathlib/Analysis/Convex/Segment.lean Modified Mathlib/Analysis/Convex/SpecificFunctions/Basic.lean Modified Mathlib/Analysis/SpecialFunctions/Gaussian/FourierTransform.lean Modified Mathlib/CategoryTheory/Adjunction/Reflective.lean Modified Mathlib/CategoryTheory/Monad/Adjunction.lean +/- def CategoryTheory.Adjunction.unitAsIsoOfIso Modified Mathlib/Control/Basic.lean Modified Mathlib/Control/Bitraversable/Instances.lean Modified Mathlib/Control/EquivFunctor.lean Modified Mathlib/Data/List/MinMax.lean Modified Mathlib/Data/Multiset/Powerset.lean Modified Mathlib/Data/Nat/Size.lean Modified Mathlib/Data/Rat/Defs.lean +/- theorem Rat.divInt_neg_one_one +/- theorem Rat.divInt_one_one Modified Mathlib/Data/Real/Basic.lean Modified Mathlib/Data/Sym/Basic.lean Modified Mathlib/Geometry/RingedSpace/LocallyRingedSpace.lean Modified Mathlib/GroupTheory/Coxeter/Basic.lean Modified Mathlib/LinearAlgebra/Finsupp.lean Modified Mathlib/MeasureTheory/Measure/Haar/Basic.lean Modified Mathlib/NumberTheory/KummerDedekind.lean Modified Mathlib/Order/PFilter.lean Modified Mathlib/Probability/Kernel/RadonNikodym.lean Modified Mathlib/Probability/Martingale/Convergence.lean Modified Mathlib/Probability/Martingale/Upcrossing.lean Modified Mathlib/RingTheory/Ideal/Pointwise.lean Modified Mathlib/RingTheory/Norm.lean Modified Mathlib/RingTheory/PiTensorProduct.lean Modified Mathlib/RingTheory/Polynomial/Basic.lean Modified Mathlib/RingTheory/RootsOfUnity/Basic.lean Modified Mathlib/RingTheory/Valuation/ValuationSubring.lean Modified Mathlib/Tactic/CategoryTheory/MonoidalComp.lean Modified Mathlib/Topology/Algebra/Valued/ValuedField.lean +/- def Valued.integer Modified Mathlib/Topology/Category/CompHausLike/Limits.lean Modified Mathlib/Topology/CompactOpen.lean 2024-07-08 17:58:05 7912bc0 chore(Subring): don't import ordered ring classes for basic things (#14126) Having the ordered ring hierarchy results available here results in extra effort for typeclass searches. ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Submonoid/Membership.lean Modified Mathlib/Algebra/Module/Submodule/Ker.lean Modified Mathlib/Algebra/Module/Submodule/Range.lean Modified Mathlib/Algebra/Order/Kleene.lean Modified Mathlib/Algebra/Ring/Subring/Basic.lean Modified Mathlib/Data/Int/Defs.lean + theorem Int.pow_right_injective Modified Mathlib/Data/Int/Order/Lemmas.lean - theorem Int.pow_right_injective 2024-07-08 17:08:11 86414a8 chore: update Mathlib dependencies 2024-07-08 (#14518) This PR updates the Mathlib dependencies. ESTIMATED CHANGES Modified lake-manifest.json 2024-07-08 17:08:10 2d5abb4 feat(ContinuousFunctionalCalculus): When `cfc` is applied to a function that maps zero to zero, it is equal to `cfcₙ` (#14432) This PR shows that `cfcₙ f a = cfc f a` whenever `f` maps zero to zero (and the usual continuity conditions apply). This required refactoring the proof that a unital CFC implies a non-unital one, since we need reuse the objects that were defined locally inside the proof. ESTIMATED CHANGES Modified Mathlib/Topology/ContinuousFunction/NonUnitalFunctionalCalculus.lean + theorem cfcₙHom_eq_cfcₙHom_of_cfcHom + theorem cfcₙHom_of_cfcHom_map_quasispectrum + theorem cfcₙ_eq_cfc + theorem closedEmbedding_cfcₙHom_of_cfcHom 2024-07-08 16:16:20 b9a098b feat: add lemma `List.prod_map_ite_eq` (#13023) Proves that the (product) sum of a list mapped through a function of the form `if x = a then ... else ...` is equal to the (product) sum over the list mapped through the else condition, (times) plus an additional factor about the number of times `a` appears. Upstreamed from [another project](https://github.com/BoltonBailey/formal-snarks-project). ESTIMATED CHANGES Modified Mathlib/Algebra/BigOperators/Group/List.lean + theorem List.prod_map_filter_mul_prod_map_filter_not + theorem List.prod_map_ite + theorem List.prod_map_ite_eq 2024-07-08 16:00:58 31d2477 chore: Added namespace Mathlib around Vector defs (#13407) This PR puts `Mathlib.Data.Vector`'s `Vector` type into the namespace `Mathlib`. This will help ensure that users of `Mathlib` and `Batteries` can use this Vector type and Batteries' upcoming Array based Vector type without name conflicts. Tasks: - [x] Put all Vector definitions, currently all of which are inside Mathlib/Data/Vector into the namespace `Mathlib`. ~~- [x] Add deprecation aliases for all `def`s, `theorem`s and `lemmas` thus namespaced.~~ NOTE : This is not possible because `alias` simply reintroduces naming conflicts. See the linked zulip discussion - [x] Fix breakages within Mathlib Discussion in [Zulip topic](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/Mathlib.20Vector.20namespace/near/441643042) ESTIMATED CHANGES Modified Mathlib/Computability/Halting.lean Modified Mathlib/Computability/Partrec.lean Modified Mathlib/Computability/Primrec.lean Modified Mathlib/Computability/TMToPartrec.lean Modified Mathlib/Computability/TuringMachine.lean Modified Mathlib/Data/Finite/Basic.lean Modified Mathlib/Data/Fintype/BigOperators.lean Modified Mathlib/Data/Fintype/Fin.lean Modified Mathlib/Data/Fintype/Vector.lean Modified Mathlib/Data/Num/Bitwise.lean Modified Mathlib/Data/Sym/Basic.lean Modified Mathlib/Data/Sym/Sym2.lean Modified Mathlib/Data/Vector/Basic.lean + theorem Mathlib.Vector.append_nil + def Mathlib.Vector.casesOn + def Mathlib.Vector.casesOn₂ + def Mathlib.Vector.casesOn₃ + theorem Mathlib.Vector.cons_val + theorem Mathlib.Vector.empty_toList_eq_ff + theorem Mathlib.Vector.eq_cons_iff + theorem Mathlib.Vector.eraseIdx_insertNth' + theorem Mathlib.Vector.eraseIdx_insertNth + theorem Mathlib.Vector.eraseIdx_val + theorem Mathlib.Vector.exists_eq_cons + theorem Mathlib.Vector.ext + theorem Mathlib.Vector.get_append_cons_succ + theorem Mathlib.Vector.get_append_cons_zero + theorem Mathlib.Vector.get_cons_nil + theorem Mathlib.Vector.get_cons_succ + theorem Mathlib.Vector.get_cons_zero + theorem Mathlib.Vector.get_eq_get + theorem Mathlib.Vector.get_map + theorem Mathlib.Vector.get_map₂ + theorem Mathlib.Vector.get_ofFn + theorem Mathlib.Vector.get_replicate + theorem Mathlib.Vector.get_set_eq_if + theorem Mathlib.Vector.get_set_of_ne + theorem Mathlib.Vector.get_set_same + theorem Mathlib.Vector.get_tail + theorem Mathlib.Vector.get_tail_succ + theorem Mathlib.Vector.get_zero + theorem Mathlib.Vector.head?_toList + theorem Mathlib.Vector.head_map + theorem Mathlib.Vector.head_ofFn + def Mathlib.Vector.inductionOn + theorem Mathlib.Vector.inductionOn_cons + theorem Mathlib.Vector.inductionOn_nil + def Mathlib.Vector.inductionOn₂ + def Mathlib.Vector.inductionOn₃ + def Mathlib.Vector.insertNth + theorem Mathlib.Vector.insertNth_comm + theorem Mathlib.Vector.insertNth_val + def Mathlib.Vector.last + theorem Mathlib.Vector.last_def + theorem Mathlib.Vector.length_val + def Mathlib.Vector.mOfFn + theorem Mathlib.Vector.mOfFn_pure + theorem Mathlib.Vector.mapAccumr_cons + theorem Mathlib.Vector.mapAccumr₂_cons + theorem Mathlib.Vector.map_id + theorem Mathlib.Vector.map₂_cons + theorem Mathlib.Vector.map₂_nil + theorem Mathlib.Vector.mk_toList + def Mathlib.Vector.mmap + theorem Mathlib.Vector.mmap_cons + theorem Mathlib.Vector.mmap_nil + theorem Mathlib.Vector.ne_cons_iff + theorem Mathlib.Vector.nodup_iff_injective_get + theorem Mathlib.Vector.not_empty_toList + theorem Mathlib.Vector.ofFn_get + theorem Mathlib.Vector.prod_set' + theorem Mathlib.Vector.prod_set + theorem Mathlib.Vector.replicate_succ + def Mathlib.Vector.reverse + theorem Mathlib.Vector.reverse_get_zero + theorem Mathlib.Vector.reverse_reverse + def Mathlib.Vector.scanl + theorem Mathlib.Vector.scanl_cons + theorem Mathlib.Vector.scanl_get + theorem Mathlib.Vector.scanl_head + theorem Mathlib.Vector.scanl_nil + theorem Mathlib.Vector.scanl_singleton + theorem Mathlib.Vector.scanl_val + def Mathlib.Vector.set + theorem Mathlib.Vector.singleton_tail + theorem Mathlib.Vector.tail_map + theorem Mathlib.Vector.tail_nil + theorem Mathlib.Vector.tail_ofFn + theorem Mathlib.Vector.tail_val + def Mathlib.Vector.toArray + theorem Mathlib.Vector.toList_empty + theorem Mathlib.Vector.toList_injective + theorem Mathlib.Vector.toList_map + theorem Mathlib.Vector.toList_ofFn + theorem Mathlib.Vector.toList_reverse + theorem Mathlib.Vector.toList_scanl + theorem Mathlib.Vector.toList_set + theorem Mathlib.Vector.toList_singleton - theorem Vector.append_nil - def Vector.casesOn - def Vector.casesOn₂ - def Vector.casesOn₃ - theorem Vector.cons_val - theorem Vector.empty_toList_eq_ff - theorem Vector.eq_cons_iff - theorem Vector.eraseIdx_insertNth' - theorem Vector.eraseIdx_insertNth - theorem Vector.eraseIdx_val - theorem Vector.exists_eq_cons - theorem Vector.ext - theorem Vector.get_append_cons_succ - theorem Vector.get_append_cons_zero - theorem Vector.get_cons_nil - theorem Vector.get_cons_succ - theorem Vector.get_cons_zero - theorem Vector.get_eq_get - theorem Vector.get_map - theorem Vector.get_map₂ - theorem Vector.get_ofFn - theorem Vector.get_replicate - theorem Vector.get_set_eq_if - theorem Vector.get_set_of_ne - theorem Vector.get_set_same - theorem Vector.get_tail - theorem Vector.get_tail_succ - theorem Vector.get_zero - theorem Vector.head?_toList - theorem Vector.head_map - theorem Vector.head_ofFn - def Vector.inductionOn - theorem Vector.inductionOn_cons - theorem Vector.inductionOn_nil - def Vector.inductionOn₂ - def Vector.inductionOn₃ - def Vector.insertNth - theorem Vector.insertNth_comm - theorem Vector.insertNth_val - def Vector.last - theorem Vector.last_def - theorem Vector.length_val - def Vector.mOfFn - theorem Vector.mOfFn_pure - theorem Vector.mapAccumr_cons - theorem Vector.mapAccumr₂_cons - theorem Vector.map_id - theorem Vector.map₂_cons - theorem Vector.map₂_nil - theorem Vector.mk_toList - def Vector.mmap - theorem Vector.mmap_cons - theorem Vector.mmap_nil - theorem Vector.ne_cons_iff - theorem Vector.nodup_iff_injective_get - theorem Vector.not_empty_toList - theorem Vector.ofFn_get - theorem Vector.prod_set' - theorem Vector.prod_set - theorem Vector.replicate_succ - def Vector.reverse - theorem Vector.reverse_get_zero - theorem Vector.reverse_reverse - def Vector.scanl - theorem Vector.scanl_cons - theorem Vector.scanl_get - theorem Vector.scanl_head - theorem Vector.scanl_nil - theorem Vector.scanl_singleton - theorem Vector.scanl_val - def Vector.set - theorem Vector.singleton_tail - theorem Vector.tail_map - theorem Vector.tail_nil - theorem Vector.tail_ofFn - theorem Vector.tail_val - def Vector.toArray - theorem Vector.toList_empty - theorem Vector.toList_injective - theorem Vector.toList_map - theorem Vector.toList_ofFn - theorem Vector.toList_reverse - theorem Vector.toList_scanl - theorem Vector.toList_set - theorem Vector.toList_singleton Modified Mathlib/Data/Vector/Defs.lean + def Mathlib.Vector.append + def Mathlib.Vector.cons + theorem Mathlib.Vector.cons_head_tail + def Mathlib.Vector.drop + def Mathlib.Vector.elim + def Mathlib.Vector.eraseIdx + def Mathlib.Vector.get + def Mathlib.Vector.head + theorem Mathlib.Vector.head_cons + def Mathlib.Vector.length + def Mathlib.Vector.map + def Mathlib.Vector.mapAccumr + def Mathlib.Vector.mapAccumr₂ + theorem Mathlib.Vector.map_cons + theorem Mathlib.Vector.map_nil + def Mathlib.Vector.map₂ + def Mathlib.Vector.nil + def Mathlib.Vector.ofFn + def Mathlib.Vector.replicate + def Mathlib.Vector.shiftLeftFill + def Mathlib.Vector.shiftRightFill + def Mathlib.Vector.tail + theorem Mathlib.Vector.tail_cons + def Mathlib.Vector.take + def Mathlib.Vector.toList + theorem Mathlib.Vector.toList_append + theorem Mathlib.Vector.toList_cons + theorem Mathlib.Vector.toList_drop + theorem Mathlib.Vector.toList_length + theorem Mathlib.Vector.toList_mk + theorem Mathlib.Vector.toList_nil + theorem Mathlib.Vector.toList_take + def Mathlib.Vector - def Vector.append - def Vector.cons - theorem Vector.cons_head_tail - def Vector.drop - def Vector.elim - def Vector.eraseIdx - def Vector.get - def Vector.head - theorem Vector.head_cons - def Vector.length - def Vector.map - def Vector.mapAccumr - def Vector.mapAccumr₂ - theorem Vector.map_cons - theorem Vector.map_nil - def Vector.map₂ - def Vector.nil - def Vector.ofFn - def Vector.replicate - def Vector.shiftLeftFill - def Vector.shiftRightFill - def Vector.tail - theorem Vector.tail_cons - def Vector.take - def Vector.toList - theorem Vector.toList_append - theorem Vector.toList_cons - theorem Vector.toList_drop - theorem Vector.toList_length - theorem Vector.toList_mk - theorem Vector.toList_nil - theorem Vector.toList_take - def Vector Modified Mathlib/Data/Vector/MapLemmas.lean + theorem Mathlib.Vector.mapAccumr_bisim + theorem Mathlib.Vector.mapAccumr_bisim_tail + theorem Mathlib.Vector.mapAccumr_eq_map + theorem Mathlib.Vector.mapAccumr_eq_map_of_constant_state + theorem Mathlib.Vector.mapAccumr_eq_map_of_unused_state + theorem Mathlib.Vector.mapAccumr_map + theorem Mathlib.Vector.mapAccumr_mapAccumr + theorem Mathlib.Vector.mapAccumr_mapAccumr₂ + theorem Mathlib.Vector.mapAccumr_redundant_pair + theorem Mathlib.Vector.mapAccumr₂_bisim + theorem Mathlib.Vector.mapAccumr₂_bisim_tail + theorem Mathlib.Vector.mapAccumr₂_comm + theorem Mathlib.Vector.mapAccumr₂_eq_map₂ + theorem Mathlib.Vector.mapAccumr₂_eq_map₂_of_constant_state + theorem Mathlib.Vector.mapAccumr₂_eq_map₂_of_unused_state + theorem Mathlib.Vector.mapAccumr₂_flip + theorem Mathlib.Vector.mapAccumr₂_mapAccumr_left + theorem Mathlib.Vector.mapAccumr₂_mapAccumr_right + theorem Mathlib.Vector.mapAccumr₂_mapAccumr₂_left_left + theorem Mathlib.Vector.mapAccumr₂_mapAccumr₂_left_right + theorem Mathlib.Vector.mapAccumr₂_mapAccumr₂_right_left + theorem Mathlib.Vector.mapAccumr₂_mapAccumr₂_right_right + theorem Mathlib.Vector.mapAccumr₂_redundant_pair + theorem Mathlib.Vector.mapAccumr₂_unused_input_left + theorem Mathlib.Vector.mapAccumr₂_unused_input_right + theorem Mathlib.Vector.map_map + theorem Mathlib.Vector.map_mapAccumr + theorem Mathlib.Vector.map_map₂ + theorem Mathlib.Vector.map₂_comm + theorem Mathlib.Vector.map₂_flip + theorem Mathlib.Vector.map₂_map_left + theorem Mathlib.Vector.map₂_map_right - theorem Vector.mapAccumr_bisim - theorem Vector.mapAccumr_bisim_tail - theorem Vector.mapAccumr_eq_map - theorem Vector.mapAccumr_eq_map_of_constant_state - theorem Vector.mapAccumr_eq_map_of_unused_state - theorem Vector.mapAccumr_map - theorem Vector.mapAccumr_mapAccumr - theorem Vector.mapAccumr_mapAccumr₂ - theorem Vector.mapAccumr_redundant_pair - theorem Vector.mapAccumr₂_bisim - theorem Vector.mapAccumr₂_bisim_tail - theorem Vector.mapAccumr₂_comm - theorem Vector.mapAccumr₂_eq_map₂ - theorem Vector.mapAccumr₂_eq_map₂_of_constant_state - theorem Vector.mapAccumr₂_eq_map₂_of_unused_state - theorem Vector.mapAccumr₂_flip - theorem Vector.mapAccumr₂_mapAccumr_left - theorem Vector.mapAccumr₂_mapAccumr_right - theorem Vector.mapAccumr₂_mapAccumr₂_left_left - theorem Vector.mapAccumr₂_mapAccumr₂_left_right - theorem Vector.mapAccumr₂_mapAccumr₂_right_left - theorem Vector.mapAccumr₂_mapAccumr₂_right_right - theorem Vector.mapAccumr₂_redundant_pair - theorem Vector.mapAccumr₂_unused_input_left - theorem Vector.mapAccumr₂_unused_input_right - theorem Vector.map_map - theorem Vector.map_mapAccumr - theorem Vector.map_map₂ - theorem Vector.map₂_comm - theorem Vector.map₂_flip - theorem Vector.map₂_map_left - theorem Vector.map₂_map_right Modified Mathlib/Data/Vector/Mem.lean + theorem Mathlib.Vector.get_mem + theorem Mathlib.Vector.head_mem + theorem Mathlib.Vector.mem_cons_iff + theorem Mathlib.Vector.mem_cons_of_mem + theorem Mathlib.Vector.mem_cons_self + theorem Mathlib.Vector.mem_iff_get + theorem Mathlib.Vector.mem_map_iff + theorem Mathlib.Vector.mem_map_succ_iff + theorem Mathlib.Vector.mem_of_mem_tail + theorem Mathlib.Vector.mem_succ_iff + theorem Mathlib.Vector.not_mem_map_zero + theorem Mathlib.Vector.not_mem_nil + theorem Mathlib.Vector.not_mem_zero - theorem Vector.get_mem - theorem Vector.head_mem - theorem Vector.mem_cons_iff - theorem Vector.mem_cons_of_mem - theorem Vector.mem_cons_self - theorem Vector.mem_iff_get - theorem Vector.mem_map_iff - theorem Vector.mem_map_succ_iff - theorem Vector.mem_of_mem_tail - theorem Vector.mem_succ_iff - theorem Vector.not_mem_map_zero - theorem Vector.not_mem_nil - theorem Vector.not_mem_zero Modified Mathlib/Data/Vector/Snoc.lean + theorem Mathlib.Vector.mapAccumr_nil + theorem Mathlib.Vector.mapAccumr_snoc + theorem Mathlib.Vector.mapAccumr₂_nil + theorem Mathlib.Vector.mapAccumr₂_snoc + theorem Mathlib.Vector.map_snoc + theorem Mathlib.Vector.map₂_snoc + theorem Mathlib.Vector.replicate_succ_to_snoc + def Mathlib.Vector.revCasesOn + def Mathlib.Vector.revInductionOn + def Mathlib.Vector.revInductionOn₂ + theorem Mathlib.Vector.reverse_cons + theorem Mathlib.Vector.reverse_snoc + def Mathlib.Vector.snoc + theorem Mathlib.Vector.snoc_cons + theorem Mathlib.Vector.snoc_nil - theorem Vector.mapAccumr_nil - theorem Vector.mapAccumr_snoc - theorem Vector.mapAccumr₂_nil - theorem Vector.mapAccumr₂_snoc - theorem Vector.map_snoc - theorem Vector.map₂_snoc - theorem Vector.replicate_succ_to_snoc - def Vector.revCasesOn - def Vector.revInductionOn - def Vector.revInductionOn₂ - theorem Vector.reverse_cons - theorem Vector.reverse_snoc - def Vector.snoc - theorem Vector.snoc_cons - theorem Vector.snoc_nil Modified Mathlib/Data/Vector/Zip.lean + theorem Mathlib.Vector.prod_mul_prod_eq_prod_zipWith + def Mathlib.Vector.zipWith + theorem Mathlib.Vector.zipWith_get + theorem Mathlib.Vector.zipWith_tail + theorem Mathlib.Vector.zipWith_toList - theorem Vector.prod_mul_prod_eq_prod_zipWith - def Vector.zipWith - theorem Vector.zipWith_get - theorem Vector.zipWith_tail - theorem Vector.zipWith_toList Modified Mathlib/GroupTheory/Perm/Cycle/Type.lean Modified Mathlib/Logic/Equiv/List.lean Modified Mathlib/Logic/Small/List.lean Modified Mathlib/SetTheory/Cardinal/Basic.lean Modified Mathlib/Topology/List.lean Modified test/NthRewrite.lean Modified test/cc.lean 2024-07-08 15:08:05 9c1bd94 chore(Imo/Imo1998Q2): remove resolved porting notes (#14505) ESTIMATED CHANGES Modified Archive/Imo/Imo1998Q2.lean 2024-07-08 14:54:14 60b7d34 chore: tidy three miscellaneous porting notes (#14511) One porting note seems clearly superfluous now. In another, make the note match the statement below it (some variable renaming had made them go out of sync). Fix a third porting note; to me, the new proof feels good enough. ESTIMATED CHANGES Modified Mathlib/Algebra/Category/Grp/Limits.lean Modified Mathlib/CategoryTheory/Sigma/Basic.lean +/- def CategoryTheory.Sigma.mapComp 2024-07-08 14:11:28 411ac5c refactor(.../ContinuousFunctionalCalculus/Instances): move `Unitary` to new file (#14475) Addresses a TODO in the code. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Analysis/NormedSpace/Star/ContinuousFunctionalCalculus/Instances.lean - theorem mem_unitary_of_spectrum_subset_circle - theorem spectrum_subset_circle_of_mem_unitary - theorem unitary_iff_isStarNormal_and_spectrum_subset_circle Added Mathlib/Analysis/NormedSpace/Star/ContinuousFunctionalCalculus/Unitary.lean + theorem mem_unitary_of_spectrum_subset_circle + theorem spectrum_subset_circle_of_mem_unitary + theorem unitary_iff_isStarNormal_and_spectrum_subset_circle 2024-07-08 13:05:24 d458505 Eisenstein series are bounded at infinity (#12456) We show the `IsBoundedAtImInfty` property for Eisenstein series. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/NumberTheory/ModularForms/EisensteinSeries/Basic.lean +/- def EisensteinSeries.eisSummand + theorem EisensteinSeries.eisensteinSeries_SIF_apply Added Mathlib/NumberTheory/ModularForms/EisensteinSeries/IsBoundedAtImInfty.lean + theorem EisensteinSeries.abs_le_tsum_abs + theorem EisensteinSeries.isBoundedAtImInfty_eisensteinSeries_SIF + theorem EisensteinSeries.summable_norm_eisSummand Modified Mathlib/NumberTheory/ModularForms/EisensteinSeries/MDifferentiable.lean 2024-07-08 11:32:07 ec3e05a chore(TwoSidedIdeal/Basic): apply forgotten review comments (#14462) After being delegated, I forgot to apply the suggestions from #13902 by @jcommelin .... ESTIMATED CHANGES Modified Mathlib/RingTheory/TwoSidedIdeal/Basic.lean +/- theorem TwoSidedIdeal.nsmul_mem +/- theorem TwoSidedIdeal.sub_mem +/- theorem TwoSidedIdeal.zsmul_mem 2024-07-08 10:25:33 9e47bd9 doc: fix diagram formatting (#14492) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Limits/Shapes/Diagonal.lean Modified Mathlib/CategoryTheory/Limits/Shapes/DisjointCoproduct.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Pullback/Assoc.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Pullback/HasPullback.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Pullback/Pasting.lean Modified Mathlib/CategoryTheory/Limits/Shapes/SplitEqualizer.lean Modified Mathlib/RingTheory/Etale/Basic.lean Modified Mathlib/RingTheory/Kaehler/Basic.lean Modified Mathlib/Topology/Category/TopCat/Limits/Pullbacks.lean 2024-07-08 08:11:51 f52111c chore: split EuclideanDomain.Instances (#14464) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Category/Grp/Injective.lean Renamed Mathlib/Algebra/EuclideanDomain/Instances.lean to Mathlib/Algebra/EuclideanDomain/Field.lean Added Mathlib/Algebra/EuclideanDomain/Int.lean Modified Mathlib/Algebra/Order/EuclideanAbsoluteValue.lean Modified Mathlib/Analysis/Complex/AbelLimit.lean Modified Mathlib/NumberTheory/FLT/Basic.lean Modified Mathlib/RingTheory/Adjoin/FG.lean Modified Mathlib/RingTheory/Int/Basic.lean Modified Mathlib/RingTheory/PrincipalIdealDomain.lean Modified Mathlib/RingTheory/Valuation/Integers.lean Modified Mathlib/RingTheory/ZMod.lean 2024-07-08 07:43:33 9595f15 doc (MvPolynomial): add blurb about `aeval` (#14481) Add short description of `aeval` to preamble, where it's missing. ESTIMATED CHANGES Modified Mathlib/Algebra/MvPolynomial/Basic.lean 2024-07-08 07:43:32 3a12919 chore: update `Finsupp.fun₀` comment after resolution of issue (#14468) The issue has been resolved, the panic is no longer there, but the doc-string can still only be modified in the file where it is defined. ESTIMATED CHANGES Modified Mathlib/Data/Finsupp/Notation.lean 2024-07-08 07:29:41 7dd2c4d feat(Analysis/BoxIntegral/Basic): a bounded, a.e. continuous function is integrable on a box (#13968) Prove that a function that is bounded and a.e. continuous within a box is integrable on that box. This generalizes integrable_of_continuousOn. As an intermediate step, define the oscillation of a function at a point x (and oscillationWithin for the oscillation at x within a specific subset). Also prove some lemmas about oscillation, namely that oscillation is 0 at a point if and only if the function is continuous there, and a statement about uniformity of oscillation on a compact set, with versions for oscillation and oscillationWithin. This is essentially the same as #13013, but I'm making a new PR because I messed up the other branch. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Analysis/BoxIntegral/Basic.lean + theorem BoxIntegral.integrable_of_bounded_and_ae_continuous + theorem BoxIntegral.integrable_of_bounded_and_ae_continuousWithinAt Modified Mathlib/Analysis/BoxIntegral/Integrability.lean + theorem MeasureTheory.AEContinuous.hasBoxIntegral Added Mathlib/Analysis/Oscillation.lean + theorem ContinuousAt.oscillation_eq_zero + theorem ContinuousWithinAt.oscillationWithin_eq_zero + theorem IsCompact.uniform_oscillation + theorem IsCompact.uniform_oscillationWithin + theorem Oscillation.eq_zero_iff_continuousAt + theorem OscillationWithin.eq_zero_iff_continuousWithinAt + theorem oscillationWithin_nhd_eq_oscillation + theorem oscillationWithin_univ_eq_oscillation 2024-07-08 04:22:32 8b3a950 fix: app unexpander for Opposite.op and pp_nodot for Opposite.unop (#14497) Also adds a test that `op`, `unop` and also `Functor.map` (since that was broken for a long time as well) are pretty-printed correctly. ESTIMATED CHANGES Modified Mathlib/Data/Opposite.lean Added test/CategoryTheory/PrettyPrinting.lean 2024-07-08 02:56:59 b8b8c3d chore: soften `set_option` linter message (#14491) [Zulip discussion](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/.60pp.2Emvars.60.20forbidden.3F/near/449666047) ESTIMATED CHANGES Modified Mathlib/Tactic/Linter/Style.lean Modified test/LintStyle.lean 2024-07-07 23:55:30 f58ec15 Removes non-printable characters U+200b and U+200c from docstrings (#14499) Mathlib contains a few non-printable unicode characters in some docstrings. I'm not sure why these were put in (some of them seem to have been ported from Mathlib 3 and it's hard to trace back where they were added first). The characters removed here are - U+200b (​zero width space) - U+200c (zero-width non-joiner) It might make sense to remove them, see the [Zulip discussion](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/Whitelist.20for.20Unicode.3F). If you review this PR, please also comment on whether you think a linter concerned with Unicode would be helpful. (e.g., warn on any *new* unicode characters being added to Mathlib, or, e.g., warn on any unicode characters being added that don't have a way to type using `\`) ESTIMATED CHANGES Modified Mathlib/Data/List/Defs.lean Modified Mathlib/Data/Matrix/Basis.lean 2024-07-07 23:06:21 a0ca23a feat: define topology on `DomMulAct _` (#14493) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Topology/Algebra/Constructions/DomMulAct.lean + theorem DomMulAct.closedEmbedding_mk + theorem DomMulAct.closedEmbedding_mk_symm + theorem DomMulAct.coe_mkHomeomorph + theorem DomMulAct.coe_mkHomeomorph_symm + theorem DomMulAct.comap_mk.symm_nhds + theorem DomMulAct.comap_mk_nhds + theorem DomMulAct.continuous_mk + theorem DomMulAct.continuous_mk_symm + theorem DomMulAct.embedding_mk + theorem DomMulAct.embedding_mk_symm + theorem DomMulAct.inducing_mk + theorem DomMulAct.inducing_mk_symm + theorem DomMulAct.map_mk_nhds + theorem DomMulAct.map_mk_symm_nhds + def DomMulAct.mkHomeomorph + theorem DomMulAct.openEmbedding_mk + theorem DomMulAct.openEmbedding_mk_symm + theorem DomMulAct.quotientMap_mk + theorem DomMulAct.quotientMap_mk_symm Modified Mathlib/Topology/Separation.lean + theorem Embedding.t25Space 2024-07-07 22:12:56 e92b4c2 feat(RingTheory/TwoSidedIdeal/Basic): two-sided-ideal as a bimodule (#14453) ESTIMATED CHANGES Modified Mathlib/RingTheory/TwoSidedIdeal/Basic.lean + def TwoSidedIdeal.coeAddMonoidHom + theorem TwoSidedIdeal.coe_mop_smul + theorem TwoSidedIdeal.coe_smul + def TwoSidedIdeal.subtype + def TwoSidedIdeal.subtypeMop 2024-07-07 21:24:50 e393bae chore: tidy various files (#14485) ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Action/Opposite.lean Modified Mathlib/Analysis/Convex/Radon.lean Modified Mathlib/CategoryTheory/Monad/Coequalizer.lean Modified Mathlib/CategoryTheory/Monad/Equalizer.lean Modified Mathlib/Combinatorics/SimpleGraph/Matching.lean Modified Mathlib/Data/LazyList/Basic.lean Modified Mathlib/Data/Matroid/Basic.lean Modified Mathlib/Data/Matroid/IndepAxioms.lean Modified Mathlib/Data/Nat/Prime/Defs.lean Modified Mathlib/Data/Real/EReal.lean Modified Mathlib/Data/Setoid/Basic.lean Modified Mathlib/FieldTheory/Fixed.lean Modified Mathlib/FieldTheory/RatFunc/AsPolynomial.lean Modified Mathlib/FieldTheory/Separable.lean +/- def IsSeparable Modified Mathlib/Geometry/Manifold/ContMDiff/Basic.lean Modified Mathlib/GroupTheory/Coxeter/Inversion.lean Modified Mathlib/GroupTheory/Perm/List.lean Modified Mathlib/LinearAlgebra/ExteriorAlgebra/OfAlternating.lean Modified Mathlib/LinearAlgebra/Reflection.lean Modified Mathlib/LinearAlgebra/RootSystem/Defs.lean +/- def RootPairing.pairing Modified Mathlib/MeasureTheory/Function/Intersectivity.lean Modified Mathlib/MeasureTheory/Order/UpperLower.lean Modified Mathlib/MeasureTheory/SetAlgebra.lean Modified Mathlib/RingTheory/DedekindDomain/Ideal.lean Modified Mathlib/RingTheory/EssentialFiniteness.lean Modified Mathlib/Testing/SlimCheck/Functions.lean Modified Mathlib/Topology/Category/LightProfinite/EffectiveEpi.lean Modified Mathlib/Topology/Compactification/OnePoint.lean Modified Mathlib/Topology/Instances/EReal.lean Modified Mathlib/Topology/RestrictGenTopology.lean Modified Mathlib/Topology/Sheaves/Skyscraper.lean Modified Mathlib/Topology/StoneCech.lean Modified Mathlib/Topology/UniformSpace/Basic.lean 2024-07-07 19:14:29 38e09f6 chore (BigOperators.Finsupp): avoid importing `Order.BigOperators.Ring.Finset` (#14336) This is one part of the import path from `Algebra.Order.Group.Defs` here and clearly unnecessary. ESTIMATED CHANGES Modified Mathlib/Algebra/BigOperators/Finsupp.lean +/- theorem Nat.prod_pow_pos_of_zero_not_mem_support Modified Mathlib/Algebra/MvPolynomial/Degrees.lean Modified Mathlib/Algebra/Order/Antidiag/Finsupp.lean Modified Mathlib/Analysis/Convex/Basic.lean Modified Mathlib/Analysis/Convex/Segment.lean Modified Mathlib/Combinatorics/Optimization/ValuedCSP.lean Modified Mathlib/Combinatorics/SimpleGraph/LapMatrix.lean +/- theorem SimpleGraph.posSemidef_lapMatrix Modified Mathlib/LinearAlgebra/Matrix/AbsoluteValue.lean Modified Mathlib/NumberTheory/Primorial.lean Modified scripts/noshake.json 2024-07-07 18:20:20 1462590 chore: update Mathlib dependencies 2024-07-07 (#14494) This PR updates the Mathlib dependencies. ESTIMATED CHANGES Modified lake-manifest.json 2024-07-07 18:10:55 b81e35d feat(Combinatorics/SimpleGraph): If a graph has a Walk starting and ending in the same vertex then the chromatic number is grater than two (#14409) ESTIMATED CHANGES Modified Mathlib/Combinatorics/SimpleGraph/ConcreteColorings.lean + theorem SimpleGraph.Walk.three_le_chromaticNumber_of_odd_loop 2024-07-07 14:44:11 70e5cb9 chore (Algebra.Order.Group.Defs): split out unbundled ordered algebra results to `Algebra.Order.Group.Unbundled.Basic` (#14380) Currently, you have to import bundled ordered algebra to use these facts about unbundled ordered algebra classes. This should be unnecessary. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Order/Group/Abs.lean Modified Mathlib/Algebra/Order/Group/Defs.lean - theorem Antitone.inv - theorem AntitoneOn.inv - theorem Left.inv_le_one_iff - theorem Left.inv_le_self - theorem Left.inv_lt_one_iff - theorem Left.inv_lt_self - theorem Left.one_le_inv_iff - theorem Left.one_lt_inv_iff - theorem Left.self_le_inv - theorem Left.self_lt_inv - theorem Monotone.inv - theorem MonotoneOn.inv - theorem Right.inv_le_one_iff - theorem Right.inv_le_self - theorem Right.inv_lt_one_iff - theorem Right.inv_lt_self - theorem Right.one_le_inv_iff - theorem Right.one_lt_inv_iff - theorem Right.self_le_inv - theorem Right.self_lt_inv - theorem StrictAnti.inv - theorem StrictAntiOn.inv - theorem StrictMono.inv - theorem StrictMonoOn.inv - theorem cmp_div_one' - theorem div_le_comm - theorem div_le_div'' - theorem div_le_div_flip - theorem div_le_div_iff' - theorem div_le_div_iff_left - theorem div_le_div_iff_right - theorem div_le_div_left' - theorem div_le_div_right' - theorem div_le_iff_le_mul' - theorem div_le_iff_le_mul - theorem div_le_inv_mul_iff - theorem div_le_one' - theorem div_le_self_iff - theorem div_lt_comm - theorem div_lt_div'' - theorem div_lt_div_iff' - theorem div_lt_div_iff_left - theorem div_lt_div_iff_right - theorem div_lt_div_left' - theorem div_lt_div_right' - theorem div_lt_iff_lt_mul' - theorem div_lt_iff_lt_mul - theorem div_lt_one' - theorem div_lt_self_iff - theorem inv_le_div_iff_le_mul' - theorem inv_le_div_iff_le_mul - theorem inv_le_iff_one_le_mul' - theorem inv_le_iff_one_le_mul - theorem inv_le_inv_iff - theorem inv_lt' - theorem inv_lt_div_iff_lt_mul' - theorem inv_lt_div_iff_lt_mul - theorem inv_lt_iff_one_lt_mul' - theorem inv_lt_iff_one_lt_mul - theorem inv_lt_inv_iff - theorem inv_mul_le_iff_le_mul' - theorem inv_mul_le_iff_le_mul - theorem inv_mul_le_one_iff - theorem inv_mul_lt_iff_lt_mul' - theorem inv_mul_lt_iff_lt_mul - theorem inv_mul_lt_one_iff - theorem inv_mul_lt_one_iff_lt - theorem le_div_comm - theorem le_div_iff_mul_le' - theorem le_div_iff_mul_le - theorem le_div_self_iff - theorem le_iff_forall_one_lt_lt_mul - theorem le_inv_iff_mul_le_one_left - theorem le_inv_iff_mul_le_one_right - theorem le_inv_mul_iff_le - theorem le_inv_mul_iff_mul_le - theorem le_mul_inv_iff_le - theorem le_mul_inv_iff_mul_le - theorem le_of_forall_one_lt_lt_mul - theorem lt_div_comm - theorem lt_div_iff_mul_lt' - theorem lt_div_iff_mul_lt - theorem lt_inv' - theorem lt_inv_iff_mul_lt_one' - theorem lt_inv_iff_mul_lt_one - theorem lt_inv_mul_iff_lt - theorem lt_inv_mul_iff_mul_lt - theorem lt_mul_inv_iff_lt - theorem lt_mul_inv_iff_mul_lt - theorem lt_or_lt_of_div_lt_div - theorem mul_inv_le_iff_le_mul' - theorem mul_inv_le_iff_le_mul - theorem mul_inv_le_inv_mul_iff - theorem mul_inv_le_mul_inv_iff' - theorem mul_inv_le_one_iff - theorem mul_inv_le_one_iff_le - theorem mul_inv_lt_iff_le_mul' - theorem mul_inv_lt_iff_lt_mul - theorem mul_inv_lt_inv_mul_iff - theorem mul_inv_lt_mul_inv_iff' - theorem mul_inv_lt_one_iff - theorem one_le_div' - theorem one_lt_div' Modified Mathlib/Algebra/Order/Group/DenselyOrdered.lean Modified Mathlib/Algebra/Order/Group/OrderIso.lean Added Mathlib/Algebra/Order/Group/Unbundled/Basic.lean + theorem Antitone.inv + theorem AntitoneOn.inv + theorem Left.inv_le_one_iff + theorem Left.inv_le_self + theorem Left.inv_lt_one_iff + theorem Left.inv_lt_self + theorem Left.one_le_inv_iff + theorem Left.one_lt_inv_iff + theorem Left.self_le_inv + theorem Left.self_lt_inv + theorem Monotone.inv + theorem MonotoneOn.inv + theorem Right.inv_le_one_iff + theorem Right.inv_le_self + theorem Right.inv_lt_one_iff + theorem Right.inv_lt_self + theorem Right.one_le_inv_iff + theorem Right.one_lt_inv_iff + theorem Right.self_le_inv + theorem Right.self_lt_inv + theorem StrictAnti.inv + theorem StrictAntiOn.inv + theorem StrictMono.inv + theorem StrictMonoOn.inv + theorem cmp_div_one' + theorem div_le_comm + theorem div_le_div'' + theorem div_le_div_flip + theorem div_le_div_iff' + theorem div_le_div_iff_left + theorem div_le_div_iff_right + theorem div_le_div_left' + theorem div_le_div_right' + theorem div_le_iff_le_mul' + theorem div_le_iff_le_mul + theorem div_le_inv_mul_iff + theorem div_le_one' + theorem div_le_self_iff + theorem div_lt_comm + theorem div_lt_div'' + theorem div_lt_div_iff' + theorem div_lt_div_iff_left + theorem div_lt_div_iff_right + theorem div_lt_div_left' + theorem div_lt_div_right' + theorem div_lt_iff_lt_mul' + theorem div_lt_iff_lt_mul + theorem div_lt_one' + theorem div_lt_self_iff + theorem inv_le_div_iff_le_mul' + theorem inv_le_div_iff_le_mul + theorem inv_le_iff_one_le_mul' + theorem inv_le_iff_one_le_mul + theorem inv_le_inv_iff + theorem inv_lt' + theorem inv_lt_div_iff_lt_mul' + theorem inv_lt_div_iff_lt_mul + theorem inv_lt_iff_one_lt_mul' + theorem inv_lt_iff_one_lt_mul + theorem inv_lt_inv_iff + theorem inv_mul_le_iff_le_mul' + theorem inv_mul_le_iff_le_mul + theorem inv_mul_le_one_iff + theorem inv_mul_lt_iff_lt_mul' + theorem inv_mul_lt_iff_lt_mul + theorem inv_mul_lt_one_iff + theorem inv_mul_lt_one_iff_lt + theorem le_div_comm + theorem le_div_iff_mul_le' + theorem le_div_iff_mul_le + theorem le_div_self_iff + theorem le_iff_forall_one_lt_lt_mul + theorem le_inv_iff_mul_le_one_left + theorem le_inv_iff_mul_le_one_right + theorem le_inv_mul_iff_le + theorem le_inv_mul_iff_mul_le + theorem le_mul_inv_iff_le + theorem le_mul_inv_iff_mul_le + theorem le_of_forall_one_lt_lt_mul + theorem lt_div_comm + theorem lt_div_iff_mul_lt' + theorem lt_div_iff_mul_lt + theorem lt_inv' + theorem lt_inv_iff_mul_lt_one' + theorem lt_inv_iff_mul_lt_one + theorem lt_inv_mul_iff_lt + theorem lt_inv_mul_iff_mul_lt + theorem lt_mul_inv_iff_lt + theorem lt_mul_inv_iff_mul_lt + theorem lt_or_lt_of_div_lt_div + theorem mul_inv_le_iff_le_mul' + theorem mul_inv_le_iff_le_mul + theorem mul_inv_le_inv_mul_iff + theorem mul_inv_le_mul_inv_iff' + theorem mul_inv_le_one_iff + theorem mul_inv_le_one_iff_le + theorem mul_inv_lt_iff_le_mul' + theorem mul_inv_lt_iff_lt_mul + theorem mul_inv_lt_inv_mul_iff + theorem mul_inv_lt_mul_inv_iff' + theorem mul_inv_lt_one_iff + theorem one_le_div' + theorem one_lt_div' Modified Mathlib/Algebra/Order/Monovary.lean Modified Mathlib/Order/ConditionallyCompleteLattice/Group.lean 2024-07-07 14:44:10 3e893b8 feat: definition of Ext-types in abelian categories (#13963) This PR defines Ext-types in general abelian categories by shrinking types of morphisms in the derived category. The abelian group structure shall be defined in a future PR. (When this API is developed further, it shall replace the current definition which applies only to categories with enough projectives.) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Homology/DerivedCategory/Basic.lean Added Mathlib/Algebra/Homology/DerivedCategory/Ext.lean + theorem CategoryTheory.Abelian.Ext.comp_assoc + theorem CategoryTheory.Abelian.Ext.comp_hom + theorem CategoryTheory.Abelian.Ext.ext + def CategoryTheory.Abelian.Ext + theorem CategoryTheory.hasExt_iff + theorem CategoryTheory.hasExt_of_hasDerivedCategory Modified Mathlib/Algebra/Homology/HomotopyCategory/ShiftSequence.lean + theorem CochainComplex.quasiIsoAt_shift_iff + theorem CochainComplex.quasiIso_shift_iff Modified Mathlib/CategoryTheory/Localization/SmallShiftedHom.lean + theorem CategoryTheory.Localization.hasSmallLocalizedShiftedHom_iff 2024-07-07 14:27:23 2aeb41c feat: API for multiequalizers in the category of types (#14340) In this PR, we give a concrete characterization of limit multiforks in the category of types. This contribution was created as part of the AIM workshop "Formalizing algebraic geometry" in June 2024. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Limits/Shapes/Types.lean + structure CategoryTheory.Limits.Types.MulticospanIndex.sections + def CategoryTheory.Limits.Types.MulticospanIndex.sectionsEquiv + theorem CategoryTheory.Limits.Types.Multifork.IsLimit.sectionsEquiv_apply_val + theorem CategoryTheory.Limits.Types.Multifork.IsLimit.sectionsEquiv_symm_apply_val + theorem CategoryTheory.Limits.Types.Multifork.isLimit_types_iff + def CategoryTheory.Limits.Types.Multifork.toSections + theorem CategoryTheory.Limits.Types.Multifork.toSections_fac 2024-07-07 12:05:00 5943c09 feat(Analysis/Fourier): discrete Fourier transform on `ZMod N` (#13353) We write down basic definitions for the discrete Fourier transform, and compute the Fourier transforms of primitive Dirichlet characters (a minor reformulation of a result from an earlier PR). ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/Fourier/ZMod.lean + theorem DirichletCharacter.fourierTransform_eq_gaussSum_mulShift + theorem DirichletCharacter.fourierTransform_eq_inv_mul_gaussSum + theorem ZMod.dft_apply + theorem ZMod.dft_def Modified Mathlib/Analysis/SpecialFunctions/Complex/Circle.lean + theorem ZMod.stdAddChar_apply + theorem ZMod.stdAddChar_coe + theorem ZMod.toCircle_apply + theorem ZMod.toCircle_intCast + theorem ZMod.toCircle_natCast Modified Mathlib/MeasureTheory/MeasurableSpace/Instances.lean Modified Mathlib/Topology/Instances/AddCircle.lean + theorem ZMod.toAddCircle_apply + theorem ZMod.toAddCircle_eq_zero + theorem ZMod.toAddCircle_inj + theorem ZMod.toAddCircle_injective + theorem ZMod.toAddCircle_intCast + theorem ZMod.toAddCircle_natCast Added Mathlib/Topology/Instances/ZMod.lean 2024-07-07 11:01:44 2d8571b feat: `QuadraticForm.baseChange` is unique when it exists (#14285) Proof adapted from @ScottCarnahan's [Zulip message](https://leanprover.zulipchat.com/#narrow/stream/217875-Is-there-code-for-X.3F/topic/Base.20change.20for.20bilinear.20maps.20and.20quadratic.20forms/near/375115826) ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/QuadraticForm/TensorProduct.lean + theorem QuadraticForm.baseChange_ext 2024-07-06 23:37:31 476f5f1 doc: add definition of upper/lower set to UpperSet, LowerSet (#14467) Explanations are there in the docstring to `IsUpperSet` and `IsLowerSet` but there's no reason they can't be here as well (indeed `UpperSet` came up in a Zulip discussion and the current docstring is in some sense content-free; perhaps the term is standard amongst order theorists but I didn't know what it meant and it's not hard to explain). ESTIMATED CHANGES Modified Mathlib/Order/UpperLower/Basic.lean 2024-07-06 23:05:55 bc4cc57 doc: add reassoc docstring (#14447) Add docstring for `@[reassoc]` attribute. ESTIMATED CHANGES Modified Mathlib/Tactic/CategoryTheory/Reassoc.lean 2024-07-06 21:21:23 8d3cecf feat(ENNReal/Real): +1 `@[gcongr]`, +2 lemmas (#14459) ESTIMATED CHANGES Modified Mathlib/Data/ENNReal/Real.lean + theorem ENNReal.le_toNNReal_of_coe_le + theorem ENNReal.toNNReal_lt_of_lt_coe 2024-07-06 19:49:17 9dc6a16 chore(Algebra/Lie): prerequisites for Lie's theorem (#14470) ESTIMATED CHANGES Modified Mathlib/Algebra/Lie/Abelian.lean Modified Mathlib/Algebra/Lie/Engel.lean Modified Mathlib/Algebra/Lie/IdealOperations.lean Modified Mathlib/Algebra/Lie/InvariantForm.lean Modified Mathlib/Algebra/Lie/Nilpotent.lean Modified Mathlib/Algebra/Lie/Semisimple/Basic.lean Modified Mathlib/Algebra/Lie/Solvable.lean + theorem LieAlgebra.derivedSeries_lt_top_of_solvable + theorem LieIdeal.derivedSeries_eq_top + theorem LieIdeal.derivedSeries_succ_eq_top_iff Modified Mathlib/Algebra/Lie/Submodule.lean + theorem LieIdeal.incl_injective Modified Mathlib/Algebra/Lie/Weights/Basic.lean Modified Mathlib/LinearAlgebra/Eigenspace/Triangularizable.lean + theorem Module.End.exists_hasEigenvalue_of_iSup_genEigenspace_eq_top Modified Mathlib/RingTheory/SimpleModule.lean 2024-07-06 14:51:35 06352df feat(CategoryTheory/Functor): refactoring Ran (#14291) This PR refactors the definition of the right Kan extension functor (`Functor.ran : (C ⥤ E) ⥤ (D ⥤ E)`) which sends a functor to its right Kan extension along a given functor `F : C ⥤ D`. It used to be defined under the existence of certain colimits. It is now part of the general Kan extension API. The only significant change in this PR is about showing that the right Kan extension functor associated to a cocontinuous functors between sites sends sheaves to sheaves (this is in the file `CategoryTheory.Sites.CoverLifting`). As this functor is no longer based on the limits API, the proofs had to be changed. In the new proof, we proceed directly with sheaves with values in a category `A` rather than translating the sheaf property in terms of sheaves of types. This PR is the dual counterpart of #10425 which refactored left Kan extensions. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/CategoryTheory/Adjunction/Basic.lean +/- def CategoryTheory.Adjunction.comp + theorem CategoryTheory.Adjunction.comp_counit_app + theorem CategoryTheory.Adjunction.comp_unit_app Modified Mathlib/CategoryTheory/Adjunction/Restrict.lean Modified Mathlib/CategoryTheory/Closed/Ideal.lean Modified Mathlib/CategoryTheory/Functor/KanExtension/Adjunction.lean Modified Mathlib/CategoryTheory/Functor/KanExtension/Pointwise.lean Deleted Mathlib/CategoryTheory/Limits/KanExtension.lean - def CategoryTheory.Ran.adjunction - def CategoryTheory.Ran.cone - def CategoryTheory.Ran.equiv - def CategoryTheory.Ran.loc - theorem CategoryTheory.Ran.reflective - def CategoryTheory.ran Modified Mathlib/CategoryTheory/Sites/Continuous.lean +/- def CategoryTheory.Functor.sheafPushforwardContinuous + def CategoryTheory.Functor.sheafPushforwardContinuousCompSheafToPresheafIso Modified Mathlib/CategoryTheory/Sites/CoverLifting.lean +/- def CategoryTheory.Functor.pushforwardContinuousSheafificationCompatibility +/- theorem CategoryTheory.Functor.pushforwardContinuousSheafificationCompatibility_hom_app_val + theorem CategoryTheory.Functor.sheafAdjunctionCocontinuous_counit_app_val + theorem CategoryTheory.Functor.sheafAdjunctionCocontinuous_homEquiv_apply_val + theorem CategoryTheory.Functor.sheafAdjunctionCocontinuous_unit_app_val + def CategoryTheory.Functor.sheafPushforwardCocontinuousCompSheafToPresheafIso +/- theorem CategoryTheory.Functor.toSheafify_pullbackSheafificationCompatibility + theorem CategoryTheory.RanIsSheafOfIsCocontinuous.fac' + theorem CategoryTheory.RanIsSheafOfIsCocontinuous.fac - def CategoryTheory.RanIsSheafOfIsCocontinuous.getSection - theorem CategoryTheory.RanIsSheafOfIsCocontinuous.getSection_commute - theorem CategoryTheory.RanIsSheafOfIsCocontinuous.getSection_isAmalgamation - theorem CategoryTheory.RanIsSheafOfIsCocontinuous.getSection_is_unique - def CategoryTheory.RanIsSheafOfIsCocontinuous.gluedLimitCone - theorem CategoryTheory.RanIsSheafOfIsCocontinuous.gluedLimitCone_π_app - def CategoryTheory.RanIsSheafOfIsCocontinuous.gluedSection - theorem CategoryTheory.RanIsSheafOfIsCocontinuous.gluedSection_isAmalgamation - theorem CategoryTheory.RanIsSheafOfIsCocontinuous.gluedSection_is_unique - theorem CategoryTheory.RanIsSheafOfIsCocontinuous.helper + theorem CategoryTheory.RanIsSheafOfIsCocontinuous.hom_ext + def CategoryTheory.RanIsSheafOfIsCocontinuous.isLimitMultifork + def CategoryTheory.RanIsSheafOfIsCocontinuous.lift + def CategoryTheory.RanIsSheafOfIsCocontinuous.liftAux + theorem CategoryTheory.RanIsSheafOfIsCocontinuous.liftAux_map' + theorem CategoryTheory.RanIsSheafOfIsCocontinuous.liftAux_map - def CategoryTheory.RanIsSheafOfIsCocontinuous.pulledbackFamily - theorem CategoryTheory.RanIsSheafOfIsCocontinuous.pulledbackFamily_apply Modified Mathlib/CategoryTheory/Sites/DenseSubsite.lean Modified Mathlib/CategoryTheory/Sites/Sheaf.lean + def CategoryTheory.Presheaf.IsSheaf.isLimitMultifork Modified Mathlib/CategoryTheory/Subobject/MonoOver.lean Modified Mathlib/Condensed/Solid.lean + def Condensed.profiniteSolidCounit + def Condensed.profiniteSolidIsPointwiseRightKanExtension 2024-07-06 12:37:46 139bf21 feat: min_mul_min_le_min_mul_mul (#14476) ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Monoid/Unbundled/Basic.lean Modified Mathlib/Algebra/Order/Ring/Defs.lean + theorem min_mul_min_le_mul_min_min 2024-07-06 10:45:26 e2cedee feat(CategoryTheory): triangulated functors are additive (#14436) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Triangulated/Functor.lean 2024-07-06 10:06:05 a347c63 refactor(Bicategory/Functor): refactor prelaxfunctors (#14098) This PR suggests a refactor (and renaming) of prelax functors. This is to provide more reusability of code between oplax functors, pseudofunctors (and soon) lax functors. This is done in the following way: - A new file is created called `Bicategory.Functor.Prelax`. - What (before this suggested refactor) was called `PrelaxFunctor`, is renamed to `LaxPrefunctor`. Recall that this is a prefunctor that is also equipped with a map `map₂` on 2-morphisms. - A new structure is added, taking over the name `PrelaxFunctor`, which additionally requires that the associated prefunctors between hom types are functors. In other words, `map₂` should respect identities and compositions. - Both `Pseudofunctor` and `OplaxFunctor` are updated to extend the new notion of `PrelaxFunctor`. Finally: Coercions have also been removed between these various structures. This is to prevent the following behaviour in the current library: given a pseudofunctor `F` the infoview will print `F.map` as `(↑F.toPrelaxfunctor).map` which makes long expressions unecessarily hard to read. The change is just like how `Functor` does not have a coercion to `PreFunctor`. This refactor will allow us to define `mapFunctor` and `map₂Iso` on the level of `PrelaxFunctor`s, which allows it to be reused for both `Pseudofunctor`s and `OplaxFunctor`s instead of having to be defined separately. A new constructors on this level has also been added, `PrelaxFunctor.mkOfHomFunctors`, that constructs a `PrelaxFunctor` given a map on types and functors between the corresponding hom types. This could for example be used to construct the pseudofunctor in the bicategorical yoneda lemma, by using the collection of functors `precomposing` (see `Bicategory.Basic`). The file `CategoryTheory/WithTerminal` has been edited just to fix the proof after these new changes. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/CategoryTheory/Bicategory/Functor/Oplax.lean +/- def CategoryTheory.OplaxFunctor.comp +/- def CategoryTheory.OplaxFunctor.id - def CategoryTheory.OplaxFunctor.mapFunctor - theorem CategoryTheory.OplaxFunctor.map₂_hom_inv - theorem CategoryTheory.OplaxFunctor.map₂_inv - theorem CategoryTheory.OplaxFunctor.map₂_inv_hom - def CategoryTheory.PrelaxFunctor.comp - def CategoryTheory.PrelaxFunctor.id - structure CategoryTheory.PrelaxFunctor Added Mathlib/CategoryTheory/Bicategory/Functor/Prelax.lean + def CategoryTheory.PrelaxFunctor.comp + def CategoryTheory.PrelaxFunctor.id + def CategoryTheory.PrelaxFunctor.mapFunctor + theorem CategoryTheory.PrelaxFunctor.map₂_hom_inv + theorem CategoryTheory.PrelaxFunctor.map₂_hom_inv_isIso + theorem CategoryTheory.PrelaxFunctor.map₂_inv + theorem CategoryTheory.PrelaxFunctor.map₂_inv_hom + theorem CategoryTheory.PrelaxFunctor.map₂_inv_hom_isIso + def CategoryTheory.PrelaxFunctor.mkOfHomFunctors + theorem CategoryTheory.PrelaxFunctor.mkOfHomFunctors_mapFunctor + structure CategoryTheory.PrelaxFunctor + def CategoryTheory.PrelaxFunctorStruct.comp + def CategoryTheory.PrelaxFunctorStruct.id + def CategoryTheory.PrelaxFunctorStruct.mkOfHomPrefunctors + structure CategoryTheory.PrelaxFunctorStruct Modified Mathlib/CategoryTheory/Bicategory/Functor/Pseudofunctor.lean +/- def CategoryTheory.Pseudofunctor.comp +/- def CategoryTheory.Pseudofunctor.id - def CategoryTheory.Pseudofunctor.mapFunctor - theorem CategoryTheory.Pseudofunctor.map₂_hom_inv - theorem CategoryTheory.Pseudofunctor.map₂_inv - theorem CategoryTheory.Pseudofunctor.map₂_inv_hom +/- def CategoryTheory.Pseudofunctor.mkOfOplax +/- def CategoryTheory.Pseudofunctor.toOplax + theorem CategoryTheory.Pseudofunctor.to_oplax_map + theorem CategoryTheory.Pseudofunctor.to_oplax_map₂ Modified Mathlib/CategoryTheory/Bicategory/LocallyDiscrete.lean - theorem CategoryTheory.OplaxFunctor.map₂_eqToHom + theorem CategoryTheory.PrelaxFunctor.map₂_eqToHom Modified Mathlib/CategoryTheory/WithTerminal.lean + def CategoryTheory.WithInitial.prelaxfunctor + def CategoryTheory.WithTerminal.prelaxfunctor 2024-07-06 09:03:52 9365912 feat: Sublattice generated by a product set (#13823) ... is the product of the sublattices generated by the sets. From LeanCamCombi ESTIMATED CHANGES Modified Mathlib/Data/Prod/Basic.lean + theorem Prod.map_id' +/- theorem Prod.map_id Modified Mathlib/Order/SupClosed.lean + theorem infClosure_prod + theorem latticeClosure_prod + theorem supClosure_prod 2024-07-06 08:39:01 c62bce9 feat: Bergelson's Intersectivity Lemma (#11143) Prove a weak version of the Bergelson intersectivity lemma. The proof gives the strong version, but we need natural density to state it. This is a prerequisite to Tao and Ziegler's recent paper [Infinite partial sumsets in the primes](https://arxiv.org/abs/2301.10303). ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/MeasureTheory/Function/Intersectivity.lean + theorem bergelson' + theorem bergelson Modified Mathlib/MeasureTheory/Integral/Average.lean Modified Mathlib/MeasureTheory/Integral/Lebesgue.lean +/- theorem MeasureTheory.limsup_lintegral_le Modified docs/references.bib 2024-07-06 08:16:29 acff73a chore: reduce imports in `change?` (#14469) ESTIMATED CHANGES Modified Mathlib/Tactic/Change.lean 2024-07-06 08:05:39 cbdd3bb chore(Probability/Independence/Kernel): remove superfluous `show`s (#14472) ESTIMATED CHANGES Modified Mathlib/Probability/Independence/Kernel.lean 2024-07-06 06:55:18 b9ad144 feat(RingTheory/EssentialFiniteness): Define essentially of finite type algebras (#13162) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/RingTheory/EssentialFiniteness.lean + theorem Algebra.EssFiniteType.adjoin_mem_finset + theorem Algebra.EssFiniteType.algHom_ext + theorem Algebra.EssFiniteType.aux + theorem Algebra.EssFiniteType.comp + theorem Algebra.EssFiniteType.comp_iff + def Algebra.EssFiniteType.finset + theorem Algebra.EssFiniteType.of_comp + theorem Algebra.EssFiniteType.of_id + theorem Algebra.EssFiniteType.of_isLocalization + def Algebra.EssFiniteType.submonoid + theorem Algebra.essFiniteType_cond_iff + theorem Algebra.essFiniteType_iff + theorem Algebra.essFiniteType_iff_exists_subalgebra 2024-07-06 04:54:08 8a82ae6 Feat(AlgebraicGeometry/FromSpecStalk): Given a scheme `X` and a point `x : X`, the canonical scheme morphism from `Spec(O_x)` to `X`. (#13885) In this pull request, we define: Given a scheme `X` and a point `x : X.carrier`, `AlgebraicGeometry.Scheme.fromSpecStalk X x` is the canonical scheme morphism from `Spec(O_x)` to `X`. This is helpful for constructing the canonical map from the spectrum of the residue field of a point to the original scheme. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/AlgebraicGeometry/AffineScheme.lean + theorem AlgebraicGeometry.IsAffineOpen.map_fromSpec + theorem AlgebraicGeometry.Scheme.isoSpec_hom_naturality + theorem AlgebraicGeometry.Scheme.isoSpec_inv_naturality Added Mathlib/AlgebraicGeometry/Stalk.lean + theorem AlgebraicGeometry.IsAffineOpen.fromSpecStalk_eq + theorem AlgebraicGeometry.IsAffineOpen.fromSpecStalk_eq_fromSpecStalk 2024-07-06 00:06:43 00d3311 chore(workflows/nightly_detect_failure): do not repeat bump reminder message (#14415) ESTIMATED CHANGES Modified .github/workflows/nightly_detect_failure.yml 2024-07-05 23:13:14 6c85414 chore: Golf `Finset.exists_subsuperset_card_eq` (#14425) Thanks Bhavik! ESTIMATED CHANGES Modified Mathlib/Data/Finset/Card.lean 2024-07-05 20:21:41 6adb24f feat (RingTheory/HahnSeries) : def leadingCoeff, orderTop lemmas (#12996) This PR defines a `leadingCoeff` function on Hahn series. For nonzero Hahn series, it returns the coefficient of the minimum element of support. For zero, it returns zero. This function generalizes `x.coeff x.order` to the setting where the exponent type does not have zero. ESTIMATED CHANGES Modified Mathlib/RingTheory/HahnSeries/Addition.lean + def HahnSeries.addOppositeEquiv + theorem HahnSeries.addOppositeEquiv_leadingCoeff + theorem HahnSeries.addOppositeEquiv_orderTop + theorem HahnSeries.addOppositeEquiv_support + theorem HahnSeries.addOppositeEquiv_symm_leadingCoeff + theorem HahnSeries.addOppositeEquiv_symm_orderTop + theorem HahnSeries.addOppositeEquiv_symm_support + theorem HahnSeries.leadingCoeff_add_eq_left + theorem HahnSeries.leadingCoeff_add_eq_right + theorem HahnSeries.leadingCoeff_sub + theorem HahnSeries.min_orderTop_le_orderTop_add + theorem HahnSeries.min_orderTop_le_orderTop_sub + theorem HahnSeries.orderTop_add_eq_left + theorem HahnSeries.orderTop_add_eq_right + theorem HahnSeries.orderTop_neg + theorem HahnSeries.orderTop_sub Modified Mathlib/RingTheory/HahnSeries/Basic.lean + def HahnSeries.leadingCoeff + theorem HahnSeries.leadingCoeff_eq + theorem HahnSeries.leadingCoeff_eq_iff + theorem HahnSeries.leadingCoeff_ne_iff + theorem HahnSeries.leadingCoeff_of_ne + theorem HahnSeries.leadingCoeff_of_single + theorem HahnSeries.leadingCoeff_zero + theorem HahnSeries.lt_orderTop_single + theorem HahnSeries.orderTop_single_le + theorem HahnSeries.zero_le_orderTop_iff + theorem HahnSeries.zero_lt_orderTop_iff + theorem HahnSeries.zero_lt_orderTop_of_order 2024-07-05 19:32:26 40b32a6 feat(CategoryTheory/Monoidal): convolution monoid (#13313) I'll use this shortly to prove basic properties of hopf monoids. - [x] depends on: #13316 ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Monoidal/Conv.lean + theorem CategoryTheory.Conv.mul_eq + theorem CategoryTheory.Conv.one_eq + def CategoryTheory.Conv 2024-07-05 18:40:32 d225149 feat(Analysis/Convex): Helly's convexity theorem (#7236) * Prove Helly's convexity theorem (including compact and set versions) and fix typos in `Analysis.Convex.Radon` * Add alias `Set.sInter_mono` in the style of `Set.sUnion_mono` * Mark `encard_coe_eq_coe_finsetCard` with `simp` and `norm_cast` ESTIMATED CHANGES Modified Mathlib/Analysis/Convex/Radon.lean + theorem Convex.helly_theorem' + theorem Convex.helly_theorem + theorem Convex.helly_theorem_compact' + theorem Convex.helly_theorem_compact + theorem Convex.helly_theorem_set' + theorem Convex.helly_theorem_set + theorem Convex.helly_theorem_set_compact' + theorem Convex.helly_theorem_set_compact + theorem Convex.radon_partition - theorem radon_partition Modified Mathlib/Data/Set/Card.lean +/- theorem Set.encard_coe_eq_coe_finsetCard Modified Mathlib/Data/Set/Lattice.lean 2024-07-05 18:16:07 363b817 feat(CategoryTheory/Bicategory): existence of Kan extensions (#10981) This PR introduces propositional type classes for the existence of left Kan extensions/lifts, mimicking `HasColimit` instance in the category theory library. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/CategoryTheory/Bicategory/Adjunction.lean + def CategoryTheory.Bicategory.Adjunction.ofIsLeftAdjoint + def CategoryTheory.Bicategory.Adjunction.ofIsRightAdjoint + theorem CategoryTheory.Bicategory.IsLeftAdjoint.mk + theorem CategoryTheory.Bicategory.IsRightAdjoint.mk + structure CategoryTheory.Bicategory.LeftAdjoint + structure CategoryTheory.Bicategory.RightAdjoint + def CategoryTheory.Bicategory.getLeftAdjoint + def CategoryTheory.Bicategory.getRightAdjoint + def CategoryTheory.Bicategory.leftAdjoint + def CategoryTheory.Bicategory.rightAdjoint Modified Mathlib/CategoryTheory/Bicategory/Extension.lean + def CategoryTheory.Bicategory.LeftExtension.ofCompId +/- theorem CategoryTheory.Bicategory.LeftExtension.w + def CategoryTheory.Bicategory.LeftExtension.whiskerHom +/- def CategoryTheory.Bicategory.LeftExtension.whiskerIdCancel + def CategoryTheory.Bicategory.LeftExtension.whiskerIso + def CategoryTheory.Bicategory.LeftExtension.whiskerOfCompIdIsoSelf + def CategoryTheory.Bicategory.LeftLift.ofIdComp +/- theorem CategoryTheory.Bicategory.LeftLift.w + def CategoryTheory.Bicategory.LeftLift.whiskerHom +/- def CategoryTheory.Bicategory.LeftLift.whiskerIdCancel + def CategoryTheory.Bicategory.LeftLift.whiskerIso + def CategoryTheory.Bicategory.LeftLift.whiskerOfIdCompIsoSelf Modified Mathlib/CategoryTheory/Bicategory/Kan/Adjunction.lean +/- def CategoryTheory.Bicategory.LeftExtension.IsAbsKan.adjunction +/- def CategoryTheory.Bicategory.LeftLift.IsAbsKan.adjunction + theorem CategoryTheory.Bicategory.isLeftAdjoint_TFAE + theorem CategoryTheory.Bicategory.isRightAdjoint_TFAE Added Mathlib/CategoryTheory/Bicategory/Kan/HasKan.lean + def CategoryTheory.Bicategory.Lan.CommuteWith.isKan + def CategoryTheory.Bicategory.Lan.CommuteWith.isKanWhisker + def CategoryTheory.Bicategory.Lan.CommuteWith.lanCompIso + def CategoryTheory.Bicategory.Lan.CommuteWith.lanCompIsoWhisker + theorem CategoryTheory.Bicategory.Lan.CommuteWith.lanCompIsoWhisker_hom_right + theorem CategoryTheory.Bicategory.Lan.CommuteWith.lanCompIsoWhisker_inv_right + theorem CategoryTheory.Bicategory.Lan.CommuteWith.of_isKan_whisker + theorem CategoryTheory.Bicategory.Lan.CommuteWith.of_lan_comp_iso + theorem CategoryTheory.Bicategory.Lan.existsUnique + def CategoryTheory.Bicategory.LanLift.CommuteWith.isKan + def CategoryTheory.Bicategory.LanLift.CommuteWith.isKanWhisker + def CategoryTheory.Bicategory.LanLift.CommuteWith.lanLiftCompIso + def CategoryTheory.Bicategory.LanLift.CommuteWith.lanLiftCompIsoWhisker + theorem CategoryTheory.Bicategory.LanLift.CommuteWith.lanLiftCompIsoWhisker_hom_right + theorem CategoryTheory.Bicategory.LanLift.CommuteWith.lanLiftCompIsoWhisker_inv_right + theorem CategoryTheory.Bicategory.LanLift.CommuteWith.of_isKan_whisker + theorem CategoryTheory.Bicategory.LanLift.CommuteWith.of_lanLift_comp_iso + theorem CategoryTheory.Bicategory.LanLift.existsUnique + theorem CategoryTheory.Bicategory.LeftExtension.IsAbsKan.hasAbsLeftKanExtension + theorem CategoryTheory.Bicategory.LeftExtension.IsKan.hasLeftKanExtension + theorem CategoryTheory.Bicategory.LeftLift.IsAbsKan.hasAbsLeftKanLift + theorem CategoryTheory.Bicategory.LeftLift.IsKan.hasLeftKanLift + def CategoryTheory.Bicategory.lan + def CategoryTheory.Bicategory.lanDesc + def CategoryTheory.Bicategory.lanIsKan + theorem CategoryTheory.Bicategory.lanIsKan_desc + def CategoryTheory.Bicategory.lanLeftExtension + theorem CategoryTheory.Bicategory.lanLeftExtension_extension + theorem CategoryTheory.Bicategory.lanLeftExtension_unit + def CategoryTheory.Bicategory.lanLift + def CategoryTheory.Bicategory.lanLiftDesc + def CategoryTheory.Bicategory.lanLiftIsKan + theorem CategoryTheory.Bicategory.lanLiftIsKan_desc + def CategoryTheory.Bicategory.lanLiftLeftLift + theorem CategoryTheory.Bicategory.lanLiftLeftLift_lift + theorem CategoryTheory.Bicategory.lanLiftLeftLift_unit + def CategoryTheory.Bicategory.lanLiftUnit + theorem CategoryTheory.Bicategory.lanLiftUnit_desc + def CategoryTheory.Bicategory.lanUnit + theorem CategoryTheory.Bicategory.lanUnit_desc Modified Mathlib/CategoryTheory/Bicategory/Kan/IsKan.lean + def CategoryTheory.Bicategory.LeftExtension.IsAbsKan.ofIsoAbsKan + def CategoryTheory.Bicategory.LeftExtension.IsKan.ofCompId + def CategoryTheory.Bicategory.LeftExtension.IsKan.ofIsoKan + def CategoryTheory.Bicategory.LeftExtension.IsKan.uniqueUpToIso + theorem CategoryTheory.Bicategory.LeftExtension.IsKan.uniqueUpToIso_hom_right + theorem CategoryTheory.Bicategory.LeftExtension.IsKan.uniqueUpToIso_inv_right + def CategoryTheory.Bicategory.LeftExtension.IsKan.whiskerOfCommute + def CategoryTheory.Bicategory.LeftLift.IsAbsKan.ofIsoAbsKan + def CategoryTheory.Bicategory.LeftLift.IsKan.ofIdComp + def CategoryTheory.Bicategory.LeftLift.IsKan.ofIsoKan + def CategoryTheory.Bicategory.LeftLift.IsKan.uniqueUpToIso + theorem CategoryTheory.Bicategory.LeftLift.IsKan.uniqueUpToIso_hom_right + theorem CategoryTheory.Bicategory.LeftLift.IsKan.uniqueUpToIso_inv_right + def CategoryTheory.Bicategory.LeftLift.IsKan.whiskerOfCommute Modified Mathlib/CategoryTheory/Comma/Basic.lean + def CategoryTheory.Comma.leftIso + def CategoryTheory.Comma.rightIso 2024-07-05 17:45:27 5f62f6b feat(CategoryTheory): the triangle identity for the tensor product of graded objects (#14343) In this PR, we construct the left and right unitors for the tensor product of graded objects and we obtain the triangle identity. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/GradedObject/Monoidal.lean + theorem CategoryTheory.GradedObject.Monoidal.leftUnitor_inv_apply + theorem CategoryTheory.GradedObject.Monoidal.leftUnitor_naturality + theorem CategoryTheory.GradedObject.Monoidal.rightUnitor_inv_apply + theorem CategoryTheory.GradedObject.Monoidal.rightUnitor_naturality + theorem CategoryTheory.GradedObject.Monoidal.triangle 2024-07-05 17:45:26 fd7e4de feat: make `discrete_of_t1_of_finite` an instance and rename (#14240) Also adds the lemma `Set.Finite.continuousOn` which seems to be missing. ESTIMATED CHANGES Modified Mathlib/NumberTheory/Liouville/Basic.lean Modified Mathlib/Topology/Algebra/Field.lean Modified Mathlib/Topology/Category/CompHaus/Basic.lean Modified Mathlib/Topology/Category/Profinite/Nobeling.lean Modified Mathlib/Topology/Separation.lean + theorem Set.Finite.continuousOn - theorem discrete_of_t1_of_finite 2024-07-05 15:27:06 d2e8846 feat(RingTheory/TwosidedIdeal/Basic): define two-sided-ideal (#13902) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/RingTheory/TwoSidedIdeal/Basic.lean + theorem TwoSidedIdeal.add_mem + def TwoSidedIdeal.coeOrderEmbedding + theorem TwoSidedIdeal.ext + theorem TwoSidedIdeal.le_iff + theorem TwoSidedIdeal.lt_iff + theorem TwoSidedIdeal.mem_iff + theorem TwoSidedIdeal.mem_mk' + def TwoSidedIdeal.mk' + theorem TwoSidedIdeal.mul_mem_left + theorem TwoSidedIdeal.mul_mem_right + theorem TwoSidedIdeal.neg_mem + theorem TwoSidedIdeal.nsmul_mem + theorem TwoSidedIdeal.rel_iff + theorem TwoSidedIdeal.sub_mem + theorem TwoSidedIdeal.zero_mem + theorem TwoSidedIdeal.zsmul_mem + structure TwoSidedIdeal 2024-07-05 15:12:22 1e27b81 feat: Cardinal of GLn with coefficients in a finite field (#14095) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/LinearAlgebra/LinearIndependent.lean + def equiv_linearIndependent Added Mathlib/LinearAlgebra/Matrix/GeneralLinearGroup/Card.lean + theorem Matrix.card_GL_field + theorem card_linearIndependent 2024-07-05 15:02:39 94db944 feat (Algebra/Order/AddTorsor) : OrderedVAdd, OrderedCancelVAdd (#11979) This PR introduces prop-valued mixins for vector addition operations that preserve or reflect order, and provides instances relating it to ordered commutative monoids and to covariant/contravariant classes. In a future PR, we expect to use this to generalize Hahn module structures, for example giving an `R((z))`-module structure to `z^s V((z))` for `V` an `R`-module. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Order/AddTorsor.lean + theorem VAdd.vadd_lt_vadd_of_le_of_lt + theorem VAdd.vadd_lt_vadd_of_lt_of_le 2024-07-05 14:52:53 a16b3ec chore(CategoryTheory/Sites): saturate -> Saturate (#14449) The old name didn't follow the naming convention, since it's a function taking values in `Prop` ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Sites/Coherent/CoherentTopology.lean Modified Mathlib/CategoryTheory/Sites/Coherent/Comparison.lean Modified Mathlib/CategoryTheory/Sites/Coherent/RegularTopology.lean Modified Mathlib/CategoryTheory/Sites/Coherent/SheafComparison.lean Modified Mathlib/CategoryTheory/Sites/Coverage.lean + inductive CategoryTheory.Coverage.Saturate - inductive CategoryTheory.Coverage.saturate 2024-07-05 13:49:17 fca0dc4 feat: dualising results in CategoryTheory.Functor.KanExtension.Adjunction (#14261) In this PR, we make a left/right synchronization of the API in the file `CategoryTheory.Functor.KanExtension.Adjunction`: missing definitions/lemmas for right Kan extensions are introduced. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Functor/KanExtension/Adjunction.lean + theorem CategoryTheory.Functor.isIso_ranAdjunction_unit_app_iff + theorem CategoryTheory.Functor.ranAdjunction_counit + theorem CategoryTheory.Functor.ranAdjunction_unit_app + theorem CategoryTheory.Functor.ranCounit_app_app_ranAdjunction_unit_app_app + theorem CategoryTheory.Functor.ranCounit_app_whiskerLeft_ranAdjunction_unit_app 2024-07-05 11:29:00 c655316 feat: add properties of the X-adic valuation on `PowerSeries K` (#13064) Add some properties of the $X$-adic valuation on the rings $K[X]$ and $K[[X]]$ when $K$ is a field. It is an intermediate step towards the proof that the $X$-adic completion of $K(X)$ is isomorphic to $K((X))$. ESTIMATED CHANGES Modified Mathlib/FieldTheory/RatFunc/AsPolynomial.lean + def Polynomial.idealX + theorem Polynomial.idealX_span + theorem Polynomial.valuation_X_eq_neg_one + theorem RatFunc.WithZero.valued_def Modified Mathlib/RingTheory/DedekindDomain/AdicValuation.lean + theorem IsDedekindDomain.HeightOneSpectrum.intValuation_apply + theorem IsDedekindDomain.HeightOneSpectrum.intValuation_singleton Modified Mathlib/RingTheory/LaurentSeries.lean + def PowerSeries.idealX + theorem PowerSeries.intValuation_X + theorem PowerSeries.intValuation_eq_of_coe Modified Mathlib/RingTheory/PowerSeries/Inverse.lean +/- theorem PowerSeries.X_eq_normalizeX +/- theorem PowerSeries.normUnit_X + theorem PowerSeries.normalized_count_X_eq_of_coe 2024-07-05 10:53:24 436f742 chore: update Mathlib dependencies 2024-07-05 (#14441) This PR updates the Mathlib dependencies. ESTIMATED CHANGES 2024-07-05 10:09:23 81bae1f chore: update Mathlib dependencies 2024-07-05 (#14440) This PR updates the Mathlib dependencies. ESTIMATED CHANGES Modified lake-manifest.json 2024-07-05 09:32:18 b387c54 chore: Split of GeneralLinearGroup (#14439) Split of `LinearAlgebra/Matrix/GeneralLinearGroup.lean` into `LinearAlgebra/Matrix/GeneralLinearGroup/Defs.lean` and `LinearAlgebra/Matrix/GeneralLinearGroup/Basic.lean`. This is motivated by PR #14095. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Analysis/Complex/Isometry.lean Modified Mathlib/Analysis/Complex/UpperHalfPlane/Basic.lean Added Mathlib/LinearAlgebra/Matrix/GeneralLinearGroup/Basic.lean + def Matrix.planeConformalMatrix Renamed Mathlib/LinearAlgebra/Matrix/GeneralLinearGroup.lean to Mathlib/LinearAlgebra/Matrix/GeneralLinearGroup/Defs.lean - def Matrix.planeConformalMatrix Modified Mathlib/LinearAlgebra/Matrix/ToLinearEquiv.lean Modified Mathlib/NumberTheory/Modular.lean Modified Mathlib/NumberTheory/ModularForms/SlashActions.lean 2024-07-05 09:16:55 56d9d0a chore(Mathlib/Data/Equiv/Functor): deduplicate `Functor.mapEquiv` (#14381) `Functor.map_equiv` in `Mathlib.Data.Equiv.Functor` is a duplication of `Functor.mapEquiv` in `Mathlib.Logic.Equiv.Functor` so should be removed. ESTIMATED CHANGES Modified Mathlib.lean Deleted Mathlib/Data/Equiv/Functor.lean - def Functor.map_equiv - theorem Functor.map_equiv_apply - theorem Functor.map_equiv_symm_apply 2024-07-05 09:16:54 46dd6da feat(RingTheory/LocalRing/Module): Finitely presented flat modules over local rings are free. (#14375) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/LinearAlgebra/TensorProduct/RightExactness.lean + theorem TensorProduct.mk_surjective Added Mathlib/RingTheory/LocalRing/Module.lean + theorem LocalRing.map_mkQ_eq + theorem LocalRing.map_mkQ_eq_top + theorem LocalRing.map_tensorProduct_mk_eq_top + theorem LocalRing.span_eq_top_of_tmul_eq_basis + theorem LocalRing.split_injective_iff_lTensor_residueField_injective + theorem LocalRing.subsingleton_tensorProduct + theorem Module.free_of_flat_of_localRing + theorem Module.free_of_lTensor_residueField_injective + theorem Module.free_of_maximalIdeal_rTensor_injective + theorem lTensor_injective_of_exact_of_exact_of_rTensor_injective 2024-07-05 09:16:52 a73319f feat: the associator isomorphism for graded objects (#14339) In this PR, we construct the associator isomorphism `tensorObj (tensorObj X₁ X₂) X₃ ≅ tensorObj X₁ (tensorObj X₂ X₃)` for graded objects indexed by an additive monoid. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/GradedObject/Monoidal.lean + theorem CategoryTheory.GradedObject.Monoidal.associator_naturality + def CategoryTheory.GradedObject.Monoidal.r₁₂₃ + theorem CategoryTheory.GradedObject.Monoidal.tensorObj₃'_ext + theorem CategoryTheory.GradedObject.Monoidal.tensorObj₃_ext + def CategoryTheory.GradedObject.Monoidal.triangleIndexData + theorem CategoryTheory.GradedObject.Monoidal.ιTensorObj₃'_associator_hom + theorem CategoryTheory.GradedObject.Monoidal.ιTensorObj₃'_eq + theorem CategoryTheory.GradedObject.Monoidal.ιTensorObj₃'_tensorHom + theorem CategoryTheory.GradedObject.Monoidal.ιTensorObj₃_associator_inv + theorem CategoryTheory.GradedObject.Monoidal.ιTensorObj₃_eq + theorem CategoryTheory.GradedObject.Monoidal.ιTensorObj₃_tensorHom + def CategoryTheory.GradedObject.Monoidal.ρ₁₂ + def CategoryTheory.GradedObject.Monoidal.ρ₂₃ 2024-07-05 09:16:51 e7abe8c feat(RingTheory/Flat/Basic): a module is flat iff tensoring is left exact (non-categorical formulation) (#14234) This is stated in terms of `Function.Exact` ESTIMATED CHANGES Modified Mathlib/Algebra/Exact.lean + theorem Function.Exact.comp_injective Modified Mathlib/RingTheory/Flat/Basic.lean + theorem Module.Flat.iff_lTensor_exact + theorem Module.Flat.iff_rTensor_exact + theorem Module.Flat.lTensor_exact + theorem Module.Flat.rTensor_exact 2024-07-05 09:16:50 215c891 chore(README): fix docs for building documentation locally (#14114) ESTIMATED CHANGES Modified README.md 2024-07-05 08:34:29 ce5dbaf fix: split `alias` in `no_lost_declarations` (#14388) This PR is a fix for the mislabeling reported in #13337. It "splits" ```lean [+-]alias ⟨d1, d2⟩ := d ``` into ```lean [+-]alias d1 := d [+-]alias d2 := d ``` before feeding it to the usual filter. Presumably, reproducing the `:= d` parts is irrelevant, but it looks nicer! ESTIMATED CHANGES Modified scripts/no_lost_declarations.sh 2024-07-05 08:34:28 6aadc05 chore: delete obsolete scripts (#14314) I appreciate this is somewhat scary, so happy to have careful review here (or to entertain other suggestions about how to proceed). After this, I would like to institute a policy that every script in `scripts/` must have a description in `scripts/README.md`. ESTIMATED CHANGES Deleted scripts/fix-line-breaks.py Deleted scripts/fix-lints.py Deleted scripts/run_port_status.sh 2024-07-05 08:34:27 a8fb807 feat: Antidiagonal as a `Finset (ι → μ)` (#13683) ESTIMATED CHANGES Modified Archive/Wiedijk100Theorems/Partition.lean Modified Mathlib/Algebra/Order/Antidiag/Finsupp.lean - def Finset.finAntidiagonal₀ +/- theorem Finset.finsuppAntidiag_empty +/- theorem Finset.finsuppAntidiag_empty_of_ne_zero +/- theorem Finset.finsuppAntidiag_empty_zero +/- theorem Finset.finsuppAntidiag_insert +/- theorem Finset.finsuppAntidiag_zero - theorem Finset.mem_finAntidiagonal₀' - theorem Finset.mem_finAntidiagonal₀ +/- theorem Finset.mem_finsuppAntidiag' +/- theorem Finset.mem_finsuppAntidiag +/- theorem Finset.mem_finsuppAntidiag_insert Modified Mathlib/Algebra/Order/Antidiag/Pi.lean + theorem Finset.finsetCongr_piAntidiag_eq_antidiag + theorem Finset.map_nsmul_piAntidiag + theorem Finset.map_nsmul_piAntidiag_univ + theorem Finset.mem_piAntidiag + theorem Finset.nsmul_piAntidiag + theorem Finset.nsmul_piAntidiag_univ + theorem Finset.pairwiseDisjoint_piAntidiag_map_addRightEmbedding + def Finset.piAntidiag + theorem Finset.piAntidiag_cons + theorem Finset.piAntidiag_empty + theorem Finset.piAntidiag_empty_of_ne_zero + theorem Finset.piAntidiag_empty_zero + theorem Finset.piAntidiag_insert + theorem Finset.piAntidiag_univ_fin_eq_antidiagonalTuple + theorem Finset.piAntidiag_zero Modified Mathlib/Data/Finsupp/Defs.lean + theorem Finsupp.coe_onFinset 2024-07-05 08:06:27 d66f005 feat(ENNReal/Inv): add lemmas about `a * a⁻¹` (#14423) Cherry-picked from #11143 and moved to reuse `ENNReal.div_self_le_one`. ESTIMATED CHANGES Modified Mathlib/Data/ENNReal/Inv.lean + theorem ENNReal.inv_mul_ne_top + theorem ENNReal.mul_inv_ne_top 2024-07-05 07:08:09 f1fb933 feat(Data/Set/Image): add `preimage_subset_of_surjOn` (#14421) Cherry-picked from #11143 and renamed. ESTIMATED CHANGES Modified Mathlib/Data/Set/Image.lean + theorem Set.preimage_subset_of_surjOn 2024-07-05 07:08:08 d5589aa chore(PULL_REQUEST_TEMPLATE.md): mention pull request life cycle etc (#14407) ESTIMATED CHANGES Modified .github/PULL_REQUEST_TEMPLATE.md 2024-07-05 07:08:07 bd38094 feat: small types of shifted hom in the localized category (#13926) If `C` is a category equipped with a shift by an additive monoid `M`, and `W : MorphismProperty C` is compatible with the shift, we define a type-class `HasSmallLocalizedShiftedHom.{w} W X Y` which says that all the types of morphisms from `X⟦a⟧` to `Y⟦b⟧` in the localized category are `w`-small for a certain universe. Then, we define types `SmallShiftedHom.{w} W X Y m : Type w` for all `m : M`, and endow these with a composition which transports the composition on the types `ShiftedHom (L.obj X) (L.obj Y) m` when `L : C ⥤ D` is any localization functor for `W`. This shall be used in the redefinition of `Ext`-groups in abelian categories. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Localization/SmallShiftedHom.lean + theorem CategoryTheory.Localization.SmallHom.equiv_shift + theorem CategoryTheory.Localization.SmallShiftedHom.comp_assoc + theorem CategoryTheory.Localization.SmallShiftedHom.equiv_comp + theorem CategoryTheory.Localization.SmallShiftedHom.equiv_shift' + theorem CategoryTheory.Localization.SmallShiftedHom.equiv_shift + def CategoryTheory.Localization.SmallShiftedHom + theorem CategoryTheory.Localization.hasSmallLocalizedHom_of_hasSmallLocalizedShiftedHom₀ Modified Mathlib/CategoryTheory/Shift/Localization.lean Modified Mathlib/CategoryTheory/Shift/ShiftedHom.lean + theorem CategoryTheory.ShiftedHom.comp_map + theorem CategoryTheory.ShiftedHom.id_map + def CategoryTheory.ShiftedHom.map + theorem CategoryTheory.ShiftedHom.map_comp 2024-07-05 07:08:06 cc796ed feat: the distinguished triangle attached to a short exact sequence in an abelian category (#13876) Given a short exact short complex `S` in an abelian category, we construct the associated distinguished triangle in the derived category: `(singleFunctor C 0).obj S.X₁ ⟶ (singleFunctor C 0).obj S.X₂ ⟶ (singleFunctor C 0).obj S.X₃ ⟶ ...` ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Homology/DerivedCategory/Basic.lean Added Mathlib/Algebra/Homology/DerivedCategory/SingleTriangle.lean + theorem CategoryTheory.ShortComplex.ShortExact.singleTriangle_distinguished Modified Mathlib/CategoryTheory/Shift/SingleFunctors.lean + def CategoryTheory.SingleFunctors.postcompFunctor + def CategoryTheory.SingleFunctors.postcompIsoOfIso + def CategoryTheory.SingleFunctors.postcompPostcompIso 2024-07-05 06:46:35 ee4303e chore: make MorphismProperty.RespectsIso a typeclass (#14353) Most of the properties of properties of morphisms should be made typeclasses. For example, `IsMultiplicative`, `HasTwoOutOfThreeProperty` are already typeclasses (because it is convenient for the localization of categories). In this PR, `MorphismProperty.RespectsIso` is made a typeclass. One of the reasons to do so is that it should ease the development of the notion of "representable" morphisms of presheaves #14208. Another is that most of the reasonable properties of morphisms which we encounter satisfy this property: we should not have to remember the names of lemmas which assert this trivial property! ESTIMATED CHANGES Modified Mathlib/Algebra/Homology/Localization.lean - theorem HomotopyCategory.respectsIso_quasiIso Modified Mathlib/Algebra/Homology/ShortComplex/ConcreteCategory.lean Modified Mathlib/Algebra/Homology/ShortComplex/Exact.lean Modified Mathlib/Algebra/Homology/ShortComplex/HomologicalComplex.lean Modified Mathlib/AlgebraicGeometry/Morphisms/Basic.lean + theorem AlgebraicGeometry.AffineTargetMorphismProperty.cancel_left_of_respectsIso + theorem AlgebraicGeometry.AffineTargetMorphismProperty.cancel_right_of_respectsIso - theorem AlgebraicGeometry.affine_cancel_left_isIso - theorem AlgebraicGeometry.affine_cancel_right_isIso - theorem AlgebraicGeometry.targetAffineLocally_respectsIso Modified Mathlib/AlgebraicGeometry/Morphisms/ClosedImmersion.lean - theorem AlgebraicGeometry.IsClosedImmersion.respectsIso Modified Mathlib/AlgebraicGeometry/Morphisms/Constructors.lean - theorem AlgebraicGeometry.AffineTargetMorphismProperty.diagonal_respectsIso Modified Mathlib/AlgebraicGeometry/Morphisms/FiniteType.lean - theorem AlgebraicGeometry.locallyOfFiniteType_respectsIso Modified Mathlib/AlgebraicGeometry/Morphisms/OpenImmersion.lean - theorem AlgebraicGeometry.isOpenImmersion_respectsIso Modified Mathlib/AlgebraicGeometry/Morphisms/QuasiCompact.lean - theorem AlgebraicGeometry.quasiCompact_respectsIso Modified Mathlib/AlgebraicGeometry/Morphisms/QuasiSeparated.lean - theorem AlgebraicGeometry.quasiSeparated_respectsIso Modified Mathlib/AlgebraicGeometry/Morphisms/RingHomProperties.lean +/- theorem AlgebraicGeometry.affineLocally_respectsIso Modified Mathlib/AlgebraicGeometry/Morphisms/Separated.lean - theorem AlgebraicGeometry.IsSeparated.respectsIso Modified Mathlib/AlgebraicGeometry/Morphisms/UniversallyClosed.lean - theorem AlgebraicGeometry.topologically_isClosedMap_respectsIso Modified Mathlib/CategoryTheory/Localization/Composition.lean Modified Mathlib/CategoryTheory/Localization/Equivalence.lean Modified Mathlib/CategoryTheory/Localization/LocalizerMorphism.lean Modified Mathlib/CategoryTheory/Localization/Prod.lean Modified Mathlib/CategoryTheory/MorphismProperty/Basic.lean - theorem CategoryTheory.MorphismProperty.RespectsIso.arrow_iso_iff - theorem CategoryTheory.MorphismProperty.RespectsIso.arrow_mk_iso_iff - theorem CategoryTheory.MorphismProperty.RespectsIso.cancel_left_isIso - theorem CategoryTheory.MorphismProperty.RespectsIso.cancel_right_isIso - theorem CategoryTheory.MorphismProperty.RespectsIso.epimorphisms - theorem CategoryTheory.MorphismProperty.RespectsIso.inverseImage - theorem CategoryTheory.MorphismProperty.RespectsIso.isoClosure_eq - theorem CategoryTheory.MorphismProperty.RespectsIso.isomorphisms - theorem CategoryTheory.MorphismProperty.RespectsIso.monomorphisms - theorem CategoryTheory.MorphismProperty.RespectsIso.op - theorem CategoryTheory.MorphismProperty.RespectsIso.unop - def CategoryTheory.MorphismProperty.RespectsIso + theorem CategoryTheory.MorphismProperty.arrow_iso_iff + theorem CategoryTheory.MorphismProperty.arrow_mk_iso_iff + theorem CategoryTheory.MorphismProperty.cancel_left_of_respectsIso + theorem CategoryTheory.MorphismProperty.cancel_right_of_respectsIso +/- theorem CategoryTheory.MorphismProperty.isoClosure_eq_iff + theorem CategoryTheory.MorphismProperty.isoClosure_eq_self +/- theorem CategoryTheory.MorphismProperty.isoClosure_le_iff - theorem CategoryTheory.MorphismProperty.isoClosure_respectsIso +/- theorem CategoryTheory.MorphismProperty.map_id +/- theorem CategoryTheory.MorphismProperty.map_le_iff - theorem CategoryTheory.MorphismProperty.map_respectsIso Modified Mathlib/CategoryTheory/MorphismProperty/Concrete.lean - theorem CategoryTheory.MorphismProperty.bijective_respectsIso - theorem CategoryTheory.MorphismProperty.injective_respectsIso - theorem CategoryTheory.MorphismProperty.surjective_respectsIso Modified Mathlib/CategoryTheory/MorphismProperty/IsInvertedBy.lean Modified Mathlib/CategoryTheory/MorphismProperty/Limits.lean - theorem CategoryTheory.MorphismProperty.RespectsIso.diagonal +/- theorem CategoryTheory.MorphismProperty.StableUnderBaseChange.diagonal +/- theorem CategoryTheory.MorphismProperty.StableUnderBaseChange.mk +/- theorem CategoryTheory.MorphismProperty.StableUnderCobaseChange.mk +/- theorem CategoryTheory.MorphismProperty.diagonal_isStableUnderComposition - theorem CategoryTheory.MorphismProperty.universally_respectsIso Modified Mathlib/CategoryTheory/Triangulated/Subcategory.lean - theorem CategoryTheory.Triangulated.Subcategory.respectsIso_W 2024-07-05 03:20:14 c174e12 feat (RingTheory/Binomial) : Multichoose at negative arguments (#13430) This PR adds some lemmas for evaluating Pochhammer polynomials and the multichoose function at negative arguments. This is preparation for identities involving generalized binomial coefficients. ESTIMATED CHANGES Modified Mathlib/Algebra/Polynomial/Smeval.lean + theorem Polynomial.smeval_neg_nat Modified Mathlib/RingTheory/Binomial.lean + theorem Ring.multichoose_neg_add + theorem Ring.multichoose_neg_of_lt + theorem Ring.multichoose_neg_self + theorem Ring.multichoose_neg_succ + theorem Ring.multichoose_succ_neg_natCast + theorem Ring.smeval_ascPochhammer_int_ofNat + theorem Ring.smeval_ascPochhammer_nat_cast + theorem Ring.smeval_ascPochhammer_neg_add + theorem Ring.smeval_ascPochhammer_neg_of_lt + theorem Ring.smeval_ascPochhammer_self_neg + theorem Ring.smeval_ascPochhammer_succ_neg 2024-07-04 21:43:30 afb95db chore(Probability/Kernel) Fix typo in `kernel.prod_const` (#14424) Generalize to where the measure μ doesn't need to be on the space α. I assume this was just a typo. ESTIMATED CHANGES Modified Mathlib/Probability/Kernel/Composition.lean +/- theorem ProbabilityTheory.kernel.prod_const 2024-07-04 21:43:29 8747d0c chore(Logic/Basic): deprecate `Classical.subtype_of_exists` (#14420) Also golf its only use in the library. ESTIMATED CHANGES Modified Mathlib/Logic/Basic.lean Modified Mathlib/SetTheory/Cardinal/Basic.lean 2024-07-04 21:34:03 0b5b064 chore: Move `MulAction` on `Opposite`, `Pi`, `Prod`, `Sum`, `Sigma`, `Units` (#13161) ... and add `assert_not_exists MonoidWithZero` everywhere. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/AddConstMap/Basic.lean Modified Mathlib/Algebra/Algebra/NonUnitalHom.lean Modified Mathlib/Algebra/BigOperators/Fin.lean Modified Mathlib/Algebra/BigOperators/Pi.lean Added Mathlib/Algebra/Group/Action/Opposite.lean + theorem MulOpposite.op_smul_eq_op_smul_op + theorem MulOpposite.smul_eq_mul_unop + theorem MulOpposite.unop_smul_eq_unop_smul_unop + theorem op_smul_eq_mul + theorem op_smul_mul + theorem op_smul_op_smul Renamed Mathlib/GroupTheory/GroupAction/Option.lean to Mathlib/Algebra/Group/Action/Option.lean Added Mathlib/Algebra/Group/Action/Pi.lean + theorem Function.extend_smul + theorem Function.update_smul + theorem Pi.faithfulSMul_at + theorem Pi.smul_apply' + theorem Set.piecewise_smul Added Mathlib/Algebra/Group/Action/Prod.lean + def MulAction.prodEquiv + theorem Prod.pow_def + theorem Prod.pow_fst + theorem Prod.pow_mk + theorem Prod.pow_snd + theorem Prod.pow_swap + theorem Prod.smul_def + theorem Prod.smul_fst + theorem Prod.smul_mk + theorem Prod.smul_snd + theorem Prod.smul_swap + def smulMonoidHom + def smulMulHom Renamed Mathlib/GroupTheory/GroupAction/Sigma.lean to Mathlib/Algebra/Group/Action/Sigma.lean Renamed Mathlib/GroupTheory/GroupAction/Sum.lean to Mathlib/Algebra/Group/Action/Sum.lean Added Mathlib/Algebra/Group/Action/Units.lean + theorem IsUnit.inv_smul + theorem IsUnit.smul + theorem Units.smul_def + theorem Units.smul_inv + theorem Units.smul_isUnit + theorem Units.smul_mk_apply + theorem Units.val_smul Modified Mathlib/Algebra/Group/Aut.lean Modified Mathlib/Algebra/Group/NatPowAssoc.lean Modified Mathlib/Algebra/Group/PNatPowAssoc.lean Modified Mathlib/Algebra/GroupPower/IterateHom.lean Modified Mathlib/Algebra/GroupWithZero/NonZeroDivisors.lean Modified Mathlib/Algebra/Module/Basic.lean Modified Mathlib/Algebra/Module/PointwisePi.lean Modified Mathlib/Algebra/Order/CauSeq/Basic.lean Modified Mathlib/Algebra/Order/Floor/Div.lean Modified Mathlib/Algebra/Ring/CentroidHom.lean Modified Mathlib/Algebra/SMulWithZero.lean Modified Mathlib/Algebra/Star/Basic.lean Modified Mathlib/Algebra/Star/Prod.lean Modified Mathlib/Data/Finset/Pointwise.lean Modified Mathlib/GroupTheory/GroupAction/Embedding.lean Modified Mathlib/GroupTheory/GroupAction/Opposite.lean - theorem MulOpposite.op_smul_eq_op_smul_op - theorem MulOpposite.smul_eq_mul_unop - theorem MulOpposite.unop_smul_eq_unop_smul_unop - theorem op_smul_eq_mul - theorem op_smul_mul - theorem op_smul_op_smul Modified Mathlib/GroupTheory/GroupAction/Pi.lean - theorem Function.extend_smul - theorem Function.update_smul - theorem Pi.faithfulSMul_at - theorem Pi.smul_apply' - theorem Set.piecewise_smul Modified Mathlib/GroupTheory/GroupAction/Prod.lean - def MulAction.prodEquiv - theorem Prod.pow_def - theorem Prod.pow_fst - theorem Prod.pow_mk - theorem Prod.pow_snd - theorem Prod.pow_swap - theorem Prod.smul_def - theorem Prod.smul_fst - theorem Prod.smul_mk - theorem Prod.smul_snd - theorem Prod.smul_swap - def smulMonoidHom - def smulMulHom Modified Mathlib/GroupTheory/GroupAction/Units.lean - theorem IsUnit.inv_smul - theorem IsUnit.smul - theorem Units.smul_def - theorem Units.smul_inv - theorem Units.smul_isUnit - theorem Units.smul_mk_apply - theorem Units.val_smul Modified Mathlib/RepresentationTheory/Action/Concrete.lean 2024-07-04 15:13:00 4d0428b feat(CategoryTheory): generalise uniqueness of Kan extensions (#14406) Kan extensions of isomorphic functors are isomorphic ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Functor/KanExtension/Basic.lean Modified Mathlib/CategoryTheory/Limits/Presheaf.lean 2024-07-04 14:02:58 202e9e0 feat: dualising results in CategoryTheory.Functor.KanExtension.Pointwise (#14258) In this PR, we make a left/right synchronization of the API in the file `CategoryTheory.Functor.KanExtension.Pointwise`: missing definitions/lemmas for pointwise right Kan extensions are introduced. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Functor/KanExtension/Pointwise.lean + theorem CategoryTheory.Functor.RightExtension.IsPointwiseRightKanExtension.hasPointwiseRightKanExtension + theorem CategoryTheory.Functor.RightExtension.IsPointwiseRightKanExtension.hasRightKanExtension + def CategoryTheory.Functor.RightExtension.IsPointwiseRightKanExtension.homTo + theorem CategoryTheory.Functor.RightExtension.IsPointwiseRightKanExtension.hom_ext + theorem CategoryTheory.Functor.RightExtension.IsPointwiseRightKanExtension.isIso_hom + theorem CategoryTheory.Functor.RightExtension.IsPointwiseRightKanExtension.isRightKanExtension + def CategoryTheory.Functor.RightExtension.IsPointwiseRightKanExtension.isUniversal + theorem CategoryTheory.Functor.RightExtension.IsPointwiseRightKanExtensionAt.hasPointwiseRightKanExtensionAt + theorem CategoryTheory.Functor.RightExtension.IsPointwiseRightKanExtensionAt.isIso_hom_app + def CategoryTheory.Functor.RightExtension.IsPointwiseRightKanExtensionAt + def CategoryTheory.Functor.RightExtension.coneAt + def CategoryTheory.Functor.RightExtension.coneAtFunctor + def CategoryTheory.Functor.RightExtension.isPointwiseRightKanExtensionAtEquivOfIso + def CategoryTheory.Functor.RightExtension.isPointwiseRightKanExtensionEquivOfIso 2024-07-04 14:02:57 1b306ae feat(CategoryTheory): Special equalizers associated to a comonad (#14171) Given a comonad, shows that any coalgebra is an equalizer (in the category of coalgebras) of cofree coalgebras, and shows this equalizer is coreflexive. Also constructs the Beck fork in the category of coalgebras, and shows the fork is coreflexive as well as a split equalizer (in particular, an equalizer). This dualises everything in [Mathlib.CategoryTheory.Monad.Coequalizer](https://leanprover-community.github.io/mathlib4_docs/Mathlib/CategoryTheory/Monad/Coequalizer.html). This contribution was created as part of the AIM workshop "Formalizing Algebraic Geometry" in June 2024. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/CategoryTheory/Monad/Coequalizer.lean Added Mathlib/CategoryTheory/Monad/Equalizer.lean + def CategoryTheory.Comonad.CofreeEqualizer.bottomMap + theorem CategoryTheory.Comonad.CofreeEqualizer.condition + def CategoryTheory.Comonad.CofreeEqualizer.topMap + def CategoryTheory.Comonad.CofreeEqualizer.ι + def CategoryTheory.Comonad.beckCoalgebraEqualizer + def CategoryTheory.Comonad.beckCoalgebraFork + def CategoryTheory.Comonad.beckEqualizer + theorem CategoryTheory.Comonad.beckEqualizer_lift + def CategoryTheory.Comonad.beckFork + theorem CategoryTheory.Comonad.beckFork_ι + def CategoryTheory.Comonad.beckSplitEqualizer 2024-07-04 14:02:56 f729583 feat(Topology/KrullDimension.lean): Krull dimension of a topological space (#13178) Define the Krull dimension of a topological space: the Krull dimension of a topological space is the supremum of lengths of chains of closed irreducible sets. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/AlgebraicGeometry/PrimeSpectrum/Basic.lean Added Mathlib/Topology/KrullDimension.lean Modified Mathlib/Topology/Sets/Closeds.lean + def TopologicalSpace.IrreducibleCloseds.Simps.coe + theorem TopologicalSpace.IrreducibleCloseds.coe_mk + def TopologicalSpace.IrreducibleCloseds.equivSubtype' + def TopologicalSpace.IrreducibleCloseds.equivSubtype + theorem TopologicalSpace.IrreducibleCloseds.isClosed + theorem TopologicalSpace.IrreducibleCloseds.isIrreducible + theorem TopologicalSpace.IrreducibleCloseds.mem_singleton + def TopologicalSpace.IrreducibleCloseds.orderIsoSubtype' + def TopologicalSpace.IrreducibleCloseds.orderIsoSubtype + def TopologicalSpace.IrreducibleCloseds.singleton + structure TopologicalSpace.IrreducibleCloseds Modified Mathlib/Topology/Sober.lean 2024-07-04 13:53:02 ae9ab3c refactor(Topology/Category): add CompHausLike.EffectiveEpi (#13907) This is the first part of the refactor of CompHaus and friends (adding the new API which will eventually be used to redefine the categories of compact Hausdorff spaces, see #12930) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Topology/Category/CompHausLike/EffectiveEpi.lean + def CompHausLike.effectiveEpiStruct + theorem CompHausLike.preregular 2024-07-04 13:06:45 085aa58 feat(FieldTheory/Separable): add elementwise `IsSeparable` and rename the old to `Algebra.IsSeparable` (#14232) Make `IsSeparable` more aligned with `IsIntegral`. Rename previous `IsSeparable` into `Algebra.IsSeparable` (like `Algebra.IsIntegral`), add notation `IsSeparable` for separablity of elements (like `IsIntegral`). Shorten statements using the new defined `IsSeparable`. Rename some shortened theorems. ESTIMATED CHANGES Modified Mathlib/FieldTheory/Adjoin.lean +/- theorem IntermediateField.card_algHom_adjoin_integral Modified Mathlib/FieldTheory/Fixed.lean Modified Mathlib/FieldTheory/Galois.lean +/- theorem IsGalois.separable +/- theorem isGalois_iff Modified Mathlib/FieldTheory/IsAlgClosed/Basic.lean Modified Mathlib/FieldTheory/IsSepClosed.lean Modified Mathlib/FieldTheory/Minpoly/MinpolyDiv.lean Modified Mathlib/FieldTheory/Perfect.lean Modified Mathlib/FieldTheory/PrimitiveElement.lean +/- theorem Field.primitive_element_inf_aux Modified Mathlib/FieldTheory/PurelyInseparable.lean +/- def Basis.mapPowExpCharPowOfIsSeparable +/- theorem Field.lift_rank_mul_lift_sepDegree_of_isSeparable +/- theorem Field.span_map_pow_expChar_pow_eq_top_of_isSeparable +/- theorem IntermediateField.adjoin_eq_adjoin_pow_expChar_of_isSeparable' +/- theorem IntermediateField.adjoin_eq_adjoin_pow_expChar_of_isSeparable +/- theorem IntermediateField.adjoin_eq_adjoin_pow_expChar_pow_of_isSeparable' +/- theorem IntermediateField.adjoin_eq_adjoin_pow_expChar_pow_of_isSeparable + theorem LinearIndependent.map_of_isPurelyInseparable_of_isSeparable - theorem LinearIndependent.map_of_isPurelyInseparable_of_separable + theorem LinearIndependent.map_pow_expChar_pow_of_isIntegral' +/- theorem LinearIndependent.map_pow_expChar_pow_of_isSeparable - theorem LinearIndependent.map_pow_expChar_pow_of_separable + theorem minpoly.map_eq_of_isSeparable_of_isPurelyInseparable - theorem minpoly.map_eq_of_separable_of_isPurelyInseparable +/- theorem perfectClosure.eq_bot_of_isSeparable +/- theorem perfectField_of_isSeparable_of_perfectField_top Modified Mathlib/FieldTheory/Separable.lean +/- theorem AlgEquiv.isSeparable +/- theorem AlgEquiv.isSeparable_iff +/- theorem AlgHom.card_of_powerBasis + theorem Algebra.IsSeparable.isIntegral + theorem Algebra.IsSeparable.isSeparable + theorem Algebra.IsSeparable.of_algHom + theorem Algebra.IsSeparable.of_equiv_equiv + theorem Algebra.isSeparable_iff + theorem Algebra.isSeparable_tower_bot_of_isSeparable + theorem Algebra.isSeparable_tower_top_of_isSeparable +/- theorem IsSeparable.isIntegral - theorem IsSeparable.of_algHom - theorem IsSeparable.of_equiv_equiv + theorem IsSeparable.of_isScalarTower - theorem IsSeparable.separable + def IsSeparable - theorem Polynomial.Separable.isIntegral - theorem Polynomial.Separable.map_minpoly - theorem isSeparable_iff - theorem isSeparable_tower_bot_of_isSeparable - theorem isSeparable_tower_top_of_isSeparable Modified Mathlib/FieldTheory/SeparableClosure.lean + theorem Algebra.IsSeparable.finInsepDegree_eq + theorem Algebra.IsSeparable.insepDegree_eq + theorem Algebra.IsSeparable.sepDegree_eq + theorem IntermediateField.isSeparable_adjoin_iff_isSeparable - theorem IntermediateField.isSeparable_adjoin_iff_separable - theorem IsSeparable.finInsepDegree_eq - theorem IsSeparable.insepDegree_eq - theorem IsSeparable.sepDegree_eq +/- theorem le_separableClosure' +/- theorem le_separableClosure +/- theorem separableClosure.eq_top_iff Modified Mathlib/FieldTheory/SeparableDegree.lean + theorem Algebra.IsSeparable.trans +/- theorem Field.finSepDegree_eq_finrank_of_isSeparable + theorem Field.isSeparable_add + theorem Field.isSeparable_algebraMap + theorem Field.isSeparable_inv + theorem Field.isSeparable_mul - theorem Field.separable_add - theorem Field.separable_algebraMap - theorem Field.separable_inv - theorem Field.separable_mul + theorem IntermediateField.isSeparable_adjoin_pair_of_isSeparable - theorem IntermediateField.isSeparable_adjoin_pair_of_separable + theorem IntermediateField.isSeparable_adjoin_simple_iff_isSeparable - theorem IntermediateField.isSeparable_adjoin_simple_iff_separable + theorem IntermediateField.isSeparable_of_mem_isSeparable - theorem IntermediateField.separable_of_mem_isSeparable + theorem IsSeparable.of_algebra_isSeparable_of_isSeparable - theorem IsSeparable.trans - theorem Polynomial.Separable.comap_minpoly_of_isSeparable Modified Mathlib/NumberTheory/ClassNumber/Finite.lean Modified Mathlib/NumberTheory/ClassNumber/FunctionField.lean Modified Mathlib/NumberTheory/Cyclotomic/Discriminant.lean Modified Mathlib/NumberTheory/FunctionField.lean Modified Mathlib/NumberTheory/NumberField/Embeddings.lean Modified Mathlib/NumberTheory/NumberField/Norm.lean +/- theorem RingOfIntegers.algebraMap_norm_algebraMap +/- theorem RingOfIntegers.coe_algebraMap_norm +/- theorem RingOfIntegers.coe_norm +/- theorem RingOfIntegers.norm_algebraMap +/- theorem RingOfIntegers.norm_norm Modified Mathlib/RingTheory/DedekindDomain/Different.lean Modified Mathlib/RingTheory/DedekindDomain/IntegralClosure.lean +/- theorem IsIntegralClosure.isLocalization_of_isSeparable +/- theorem IsIntegralClosure.range_le_span_dualBasis +/- theorem integralClosure_le_span_dualBasis Modified Mathlib/RingTheory/Discriminant.lean +/- theorem Algebra.discr_eq_det_embeddingsMatrixReindex_pow_two +/- theorem Algebra.discr_isUnit_of_basis +/- theorem Algebra.discr_mul_isIntegral_mem_adjoin +/- theorem Algebra.discr_not_zero_of_basis +/- theorem Algebra.discr_powerBasis_eq_norm +/- theorem Algebra.discr_powerBasis_eq_prod'' +/- theorem Algebra.discr_powerBasis_eq_prod' +/- theorem Algebra.discr_powerBasis_eq_prod Modified Mathlib/RingTheory/IntegralRestrict.lean +/- def Algebra.intNormAux +/- theorem Algebra.map_intNormAux Modified Mathlib/RingTheory/Norm.lean +/- theorem Algebra.isIntegral_norm +/- theorem Algebra.norm_eq_norm_adjoin +/- theorem Algebra.norm_eq_prod_embeddings +/- theorem Algebra.norm_eq_prod_roots +/- theorem Algebra.norm_norm Modified Mathlib/RingTheory/Polynomial/Eisenstein/IsIntegral.lean Modified Mathlib/RingTheory/Trace.lean +/- theorem Algebra.trace_ne_zero +/- theorem Algebra.trace_surjective +/- theorem det_traceForm_ne_zero +/- theorem det_traceMatrix_ne_zero' +/- theorem sum_embeddings_eq_finrank_mul +/- theorem traceForm_dualBasis_powerBasis_eq +/- theorem traceForm_nondegenerate +/- theorem trace_eq_sum_embeddings 2024-07-04 12:51:19 ac0ca96 feat(CategoryTheory/Sites): functors preserving 1-hypercovers are continuous (#13012) Given a functor `F : C ⥤ D` between categories equipped with Grothendieck topologies, the condition that `F` preserves covers (developed in the file `CategoryTheory.Sites.CoverPreserving`) does not obviously imply that `F` is a continuous functor (i.e. the precomposition with `F.op` of a sheaf is a sheaf). However, it becomes obvious if we require that `F` preserves 1-hypercovers of a suitable size. The general definitions involving continuous functors have been moved from `Sites.CoverPreserving` to a new file `Sites.Continuous`. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/CategoryTheory/Sites/CompatiblePlus.lean Added Mathlib/CategoryTheory/Sites/Continuous.lean + theorem CategoryTheory.Functor.isContinuous_comp' + theorem CategoryTheory.Functor.isContinuous_comp + theorem CategoryTheory.Functor.isContinuous_of_iso + theorem CategoryTheory.Functor.isContinuous_of_preservesOneHypercovers + theorem CategoryTheory.Functor.op_comp_isSheaf + theorem CategoryTheory.Functor.op_comp_isSheafOfTypes + theorem CategoryTheory.Functor.op_comp_isSheaf_of_preservesOneHypercovers + def CategoryTheory.Functor.sheafPushforwardContinuous + def CategoryTheory.GrothendieckTopology.OneHypercover.map + def CategoryTheory.PreOneHypercover.isLimitMapMultiforkEquiv + def CategoryTheory.PreOneHypercover.map Modified Mathlib/CategoryTheory/Sites/CoverLifting.lean Modified Mathlib/CategoryTheory/Sites/CoverPreserving.lean - theorem CategoryTheory.Functor.isContinuous_comp' - theorem CategoryTheory.Functor.isContinuous_comp - theorem CategoryTheory.Functor.isContinuous_of_iso - theorem CategoryTheory.Functor.op_comp_isSheaf - theorem CategoryTheory.Functor.op_comp_isSheafOfTypes - def CategoryTheory.Functor.sheafPushforwardContinuous Modified Mathlib/CategoryTheory/Sites/DenseSubsite.lean Modified Mathlib/CategoryTheory/Sites/Over.lean Modified Mathlib/CategoryTheory/Sites/Pullback.lean 2024-07-04 11:38:09 e8574fb feat(Topology/Instances/EReal): lemmas related to liminf and limsup (#14128) Changes: - [x] Add `liminf_le_liminf` - [x] Add `limsup_le_limsup` - [x] Add `limsup_add_le_lt₂` - [x] Add `limsup_add_bot_ne_top` - [x] Add `limsup_add_le_add_limsup` - [x] Add `ge_iff_le_forall_real_lt` - [x] Add `liminf_add_ge_gt₂` - [x] Add `liminf_add_top_ne_bot` - [x] Add `add_liminf_le_liminf_add` - [x] Add `limsup_le_iff` - [x] Add `limsup_le_const_forall` - [x] Add `const_le_limsup_forall` - [x] Add `liminf_le_const_forall` - [x] Add `const_le_liminf_forall` - [x] Add `limsup_max` ESTIMATED CHANGES Modified Mathlib/Data/Real/EReal.lean + theorem EReal.ge_iff_le_forall_real_lt + theorem EReal.max_neg_neg + theorem EReal.min_neg_neg + theorem EReal.neg_add + theorem EReal.neg_sub Modified Mathlib/Topology/Instances/EReal.lean + theorem EReal.add_liminf_le_liminf_add + theorem EReal.liminf_add_gt_of_gt + theorem EReal.liminf_add_top_of_ne_bot + theorem EReal.liminf_le_liminf + theorem EReal.liminf_neg + theorem EReal.limsup_add_bot_of_ne_top + theorem EReal.limsup_add_le_add_limsup + theorem EReal.limsup_add_le_of_le + theorem EReal.limsup_add_lt_of_lt + theorem EReal.limsup_le_iff + theorem EReal.limsup_le_limsup + theorem EReal.limsup_neg 2024-07-04 11:18:21 4c75f72 feat(Topology/Instances/EReal): add continuity of multiplication (#14329) This PR adds the continuity of multiplication. ESTIMATED CHANGES Modified Mathlib/Topology/Instances/EReal.lean + theorem EReal.continuousAt_mul 2024-07-04 10:15:33 fc6cf87 chore: update Mathlib dependencies 2024-07-04 (#14405) This PR updates the Mathlib dependencies. ESTIMATED CHANGES Modified lake-manifest.json 2024-07-04 06:52:14 dff9f5d feat(Combinatorics/SimpleGraph): interactions between ConnectedComponent and matchings (#11667) These are some supporting lemma's on the way to a proof of Tutte's theorem ESTIMATED CHANGES Modified Mathlib/Combinatorics/SimpleGraph/Connectivity.lean + theorem SimpleGraph.ConnectedComponent.mem_coe_supp_of_adj + def SimpleGraph.ConnectedComponent.recOn Modified Mathlib/Combinatorics/SimpleGraph/Matching.lean + theorem SimpleGraph.ConnectedComponent.even_card_of_isPerfectMatching + theorem SimpleGraph.ConnectedComponent.odd_matches_node_outside +/- theorem SimpleGraph.Subgraph.IsMatching.even_card + theorem SimpleGraph.Subgraph.IsMatching.induce_connectedComponent +/- theorem SimpleGraph.Subgraph.IsMatching.support_eq_verts +/- theorem SimpleGraph.Subgraph.IsMatching.toEdge.surjective +/- theorem SimpleGraph.Subgraph.IsMatching.toEdge_eq_of_adj +/- theorem SimpleGraph.Subgraph.IsMatching.toEdge_eq_toEdge_of_adj +/- def SimpleGraph.Subgraph.IsMatching +/- theorem SimpleGraph.Subgraph.IsPerfectMatching.even_card + theorem SimpleGraph.Subgraph.IsPerfectMatching.induce_connectedComponent_isMatching +/- def SimpleGraph.Subgraph.IsPerfectMatching +/- theorem SimpleGraph.Subgraph.isMatching_iff_forall_degree +/- theorem SimpleGraph.Subgraph.isPerfectMatching_iff_forall_degree Modified Mathlib/Combinatorics/SimpleGraph/Subgraph.lean 2024-07-04 06:28:48 1345527 feat(CategoryTheory/Functor): refactoring Lan (#10425) This PR refactors the definition of the left Kan extension functor (`Functor.lan : (C ⥤ E) ⥤ (D ⥤ E)`) which sends a functor to its left Kan extension along a given functor `F : C ⥤ D`. This definition used to be a construction based on the existence of suitable colimits. The new definition relies on the new general API for left Kan extensions. Then, `F.lan.obj G` is now defined as `leftKanExtension F G`. As a result, `(leftKanExtension F G).obj X` is no longer defined as colimit, but when it is known that `G` has a pointwise left Kan extension, it is shown that `leftKanExtension F G` is indeed a pointwise left Kan extension, which means that `(leftKanExtension F G).obj X` is the point of a certain colimit cocone. Then, in the downstream applications of this construction we have to use the API for colimit cocones rather that the colimit API. The file `CategoryTheory.Limits.Presheaf` is also significantly refactored: instead of reconstructing functors by using colimits, we make use of the left Kan extension API. As the pullback of presheaves is a left Kan extension, the file `Topology.Sheaves.Presheaf` is also refactored: the pushforward and pullback functors are redefined in a more direct manner. ESTIMATED CHANGES Modified Mathlib/AlgebraicGeometry/Morphisms/RingHomProperties.lean Modified Mathlib/AlgebraicGeometry/Scheme.lean Modified Mathlib/AlgebraicGeometry/Spec.lean Modified Mathlib/AlgebraicTopology/SingularSet.lean Modified Mathlib/CategoryTheory/Closed/Types.lean Modified Mathlib/CategoryTheory/Elements.lean + def CategoryTheory.CategoryOfElements.homMk + def CategoryTheory.Functor.Elements.initial + def CategoryTheory.Functor.Elements.isInitial Modified Mathlib/CategoryTheory/Functor/Flat.lean Modified Mathlib/CategoryTheory/Functor/KanExtension/Adjunction.lean Modified Mathlib/CategoryTheory/Functor/KanExtension/Pointwise.lean Modified Mathlib/CategoryTheory/Limits/Indization/IndObject.lean Modified Mathlib/CategoryTheory/Limits/IsLimit.lean + def CategoryTheory.Limits.IsColimit.homEquiv + theorem CategoryTheory.Limits.IsColimit.homEquiv_apply +/- def CategoryTheory.Limits.IsColimit.homIso Modified Mathlib/CategoryTheory/Limits/KanExtension.lean - def CategoryTheory.Lan.adjunction - def CategoryTheory.Lan.cocone - theorem CategoryTheory.Lan.coreflective - def CategoryTheory.Lan.equiv - def CategoryTheory.Lan.loc - def CategoryTheory.lan Modified Mathlib/CategoryTheory/Limits/Preserves/FunctorCategory.lean Modified Mathlib/CategoryTheory/Limits/Presheaf.lean - def CategoryTheory.ColimitAdj.Elements.initial - theorem CategoryTheory.ColimitAdj.extendAlongYoneda_map - theorem CategoryTheory.ColimitAdj.extendAlongYoneda_obj.hom_ext - theorem CategoryTheory.ColimitAdj.extendAlongYoneda_obj - def CategoryTheory.ColimitAdj.isInitial - def CategoryTheory.ColimitAdj.restrictYonedaHomEquiv - theorem CategoryTheory.ColimitAdj.restrictYonedaHomEquiv_natural - def CategoryTheory.ColimitAdj.restrictedYoneda - def CategoryTheory.ColimitAdj.restrictedYonedaYoneda + theorem CategoryTheory.Presheaf.coconeOfRepresentable_naturality + def CategoryTheory.Presheaf.compYonedaIsoYonedaCompLan.coconeApp + theorem CategoryTheory.Presheaf.compYonedaIsoYonedaCompLan.coconeApp_naturality + theorem CategoryTheory.Presheaf.compYonedaIsoYonedaCompLan.hom_ext + theorem CategoryTheory.Presheaf.compYonedaIsoYonedaCompLan.natTrans_app_yoneda_obj + theorem CategoryTheory.Presheaf.compYonedaIsoYonedaCompLan.presheafHom_naturality + theorem CategoryTheory.Presheaf.compYonedaIsoYonedaCompLan.yonedaEquiv_presheafHom_yoneda_obj + theorem CategoryTheory.Presheaf.compYonedaIsoYonedaCompLan.yonedaEquiv_ι_presheafHom + theorem CategoryTheory.Presheaf.compYonedaIsoYonedaCompLan_inv_app_app_apply_eq_id + theorem CategoryTheory.Presheaf.final_toCostructuredArrow_comp_pre + def CategoryTheory.Presheaf.functorToRepresentables + def CategoryTheory.Presheaf.isColimitTautologicalCocone + theorem CategoryTheory.Presheaf.isIso_of_isLeftKanExtension + theorem CategoryTheory.Presheaf.isLeftAdjoint_of_preservesColimits + theorem CategoryTheory.Presheaf.isLeftKanExtension_along_yoneda_iff + theorem CategoryTheory.Presheaf.isLeftKanExtension_of_preservesColimits + def CategoryTheory.Presheaf.restrictedYoneda + def CategoryTheory.Presheaf.restrictedYonedaHomEquiv' + def CategoryTheory.Presheaf.tautologicalCocone - theorem CategoryTheory.coconeOfRepresentable_naturality - theorem CategoryTheory.coconeOfRepresentable_pt - theorem CategoryTheory.coconeOfRepresentable_ι_app - theorem CategoryTheory.final_toCostructuredArrow_comp_pre - def CategoryTheory.functorToRepresentables - def CategoryTheory.isColimitTautologicalCocone - theorem CategoryTheory.isLeftAdjointOfPreservesColimits - def CategoryTheory.tautologicalCocone Modified Mathlib/CategoryTheory/Sites/Pullback.lean Modified Mathlib/CategoryTheory/Yoneda.lean + theorem CategoryTheory.hom_ext_yoneda + def CategoryTheory.yonedaMap + theorem CategoryTheory.yonedaMap_app_apply Modified Mathlib/Geometry/RingedSpace/LocallyRingedSpace/HasColimits.lean Modified Mathlib/Geometry/RingedSpace/OpenImmersion.lean + theorem AlgebraicGeometry.PresheafedSpace.IsOpenImmersion.c_iso' Modified Mathlib/Geometry/RingedSpace/PresheafedSpace.lean Modified Mathlib/Geometry/RingedSpace/PresheafedSpace/HasColimits.lean Modified Mathlib/Geometry/RingedSpace/Stalks.lean Modified Mathlib/Topology/Sheaves/Presheaf.lean - def TopCat.Presheaf.Pullback.id - theorem TopCat.Presheaf.Pullback.id_inv_app +/- def TopCat.Presheaf.Pushforward.comp +/- theorem TopCat.Presheaf.Pushforward.comp_eq +/- theorem TopCat.Presheaf.Pushforward.comp_hom_app +/- theorem TopCat.Presheaf.Pushforward.comp_inv_app +/- def TopCat.Presheaf.Pushforward.id +/- theorem TopCat.Presheaf.Pushforward.id_eq - theorem TopCat.Presheaf.Pushforward.id_hom_app' +/- theorem TopCat.Presheaf.Pushforward.id_hom_app - theorem TopCat.Presheaf.Pushforward.id_inv_app' + theorem TopCat.Presheaf.Pushforward.id_inv_app +/- theorem TopCat.Presheaf.id_pushforward - def TopCat.Presheaf.pullbackMap - def TopCat.Presheaf.pullbackObj - theorem TopCat.Presheaf.pullbackObj_eq_pullbackObj +/- def TopCat.Presheaf.pushforward - theorem TopCat.Presheaf.pushforwardEq_eq - theorem TopCat.Presheaf.pushforwardEq_rfl - def TopCat.Presheaf.pushforwardMap - def TopCat.Presheaf.pushforwardObj - theorem TopCat.Presheaf.pushforwardObj_map - theorem TopCat.Presheaf.pushforwardObj_obj - theorem TopCat.Presheaf.pushforward_eq'_hom_app Modified Mathlib/Topology/Sheaves/Stalks.lean + theorem TopCat.Presheaf.germToPullbackStalk_stalkPullbackHom + theorem TopCat.Presheaf.germ_stalkPullbackHom + theorem TopCat.Presheaf.germ_stalkPullbackInv + theorem TopCat.Presheaf.pullback_obj_obj_ext + theorem TopCat.Presheaf.pushforwardPullbackAdjunction_unit_app_app_germToPullbackStalk + theorem TopCat.Presheaf.pushforwardPullbackAdjunction_unit_pullback_map_germToPullbackStalk 2024-07-04 03:49:42 90e41c5 style(Mathlib/Algebra/ContinuedFractions/*): shorten names of declarations related to continued fractions (#13210) I'm constructing the homeomorphism between irrationals and Baire space using continued fractions, and found that names of declarations related to continued fractions are long. This PR shortens them e.g.: `GeneralizedContinuedFraction` -> `GenContFract` `SimpleContinuedFraction` -> `SimpContFract` `ContinuedFraction` -> `ContFract` `GeneralizedContinuedFraction.denominators` -> `GenContFract.dens` etc. ESTIMATED CHANGES Modified Mathlib/Algebra/ContinuedFractions/Basic.lean + def ContFract.ofInteger + def ContFract - def ContinuedFraction.ofInteger - def ContinuedFraction + def GenContFract.IsSimpContFract + def GenContFract.Pair.coeFn + theorem GenContFract.Pair.coe_toPair + def GenContFract.Pair.map + structure GenContFract.Pair + def GenContFract.TerminatedAt + def GenContFract.Terminates + def GenContFract.coeFn + theorem GenContFract.coe_toGenContFract + def GenContFract.conts + def GenContFract.contsAux + def GenContFract.convs' + def GenContFract.convs'Aux + def GenContFract.convs + def GenContFract.dens + def GenContFract.nextConts + def GenContFract.nextDen + def GenContFract.nextNum + def GenContFract.nums + def GenContFract.ofInteger + def GenContFract.partDens + def GenContFract.partNums + structure GenContFract - def GeneralizedContinuedFraction.IsSimpleContinuedFraction - def GeneralizedContinuedFraction.Pair.coeFn - theorem GeneralizedContinuedFraction.Pair.coe_toPair - def GeneralizedContinuedFraction.Pair.map - structure GeneralizedContinuedFraction.Pair - def GeneralizedContinuedFraction.TerminatedAt - def GeneralizedContinuedFraction.Terminates - def GeneralizedContinuedFraction.coeFn - theorem GeneralizedContinuedFraction.coe_toGeneralizedContinuedFraction - def GeneralizedContinuedFraction.continuants - def GeneralizedContinuedFraction.continuantsAux - def GeneralizedContinuedFraction.convergents' - def GeneralizedContinuedFraction.convergents'Aux - def GeneralizedContinuedFraction.convergents - def GeneralizedContinuedFraction.denominators - def GeneralizedContinuedFraction.nextContinuants - def GeneralizedContinuedFraction.nextDenominator - def GeneralizedContinuedFraction.nextNumerator - def GeneralizedContinuedFraction.numerators - def GeneralizedContinuedFraction.ofInteger - def GeneralizedContinuedFraction.partialDenominators - def GeneralizedContinuedFraction.partialNumerators - structure GeneralizedContinuedFraction + def SimpContFract.IsContFract + def SimpContFract.ofInteger + def SimpContFract - def SimpleContinuedFraction.IsContinuedFraction - def SimpleContinuedFraction.ofInteger - def SimpleContinuedFraction Modified Mathlib/Algebra/ContinuedFractions/Computation/ApproximationCorollaries.lean + def ContFract.of - def ContinuedFraction.of + theorem GenContFract.convs_succ + theorem GenContFract.of_convergence + theorem GenContFract.of_convergence_epsilon + theorem GenContFract.of_convs_eq_convs' + theorem GenContFract.of_isSimpContFract - theorem GeneralizedContinuedFraction.convergents_succ - theorem GeneralizedContinuedFraction.of_convergence - theorem GeneralizedContinuedFraction.of_convergence_epsilon - theorem GeneralizedContinuedFraction.of_convergents_eq_convergents' - theorem GeneralizedContinuedFraction.of_isSimpleContinuedFraction + theorem SimpContFract.of_isContFract - theorem SimpleContinuedFraction.of_isContinuedFraction Modified Mathlib/Algebra/ContinuedFractions/Computation/Approximations.lean + theorem GenContFract.IntFractPair.nth_stream_fr_lt_one + theorem GenContFract.IntFractPair.nth_stream_fr_nonneg + theorem GenContFract.IntFractPair.nth_stream_fr_nonneg_lt_one + theorem GenContFract.IntFractPair.one_le_succ_nth_stream_b + theorem GenContFract.IntFractPair.succ_nth_stream_b_le_nth_stream_fr_inv + theorem GenContFract.abs_sub_convergents_le' + theorem GenContFract.abs_sub_convs_le + theorem GenContFract.determinant + theorem GenContFract.determinant_aux + theorem GenContFract.exists_int_eq_of_partDen + theorem GenContFract.fib_le_of_contsAux_b + theorem GenContFract.le_of_succ_get?_den + theorem GenContFract.le_of_succ_succ_get?_contsAux_b + theorem GenContFract.of_den_mono + theorem GenContFract.of_one_le_get?_partDen + theorem GenContFract.of_partNum_eq_one + theorem GenContFract.of_partNum_eq_one_and_exists_int_partDen_eq + theorem GenContFract.sub_convs_eq + theorem GenContFract.succ_nth_fib_le_of_nth_den + theorem GenContFract.zero_le_of_contsAux_b + theorem GenContFract.zero_le_of_den - theorem GeneralizedContinuedFraction.IntFractPair.nth_stream_fr_lt_one - theorem GeneralizedContinuedFraction.IntFractPair.nth_stream_fr_nonneg - theorem GeneralizedContinuedFraction.IntFractPair.nth_stream_fr_nonneg_lt_one - theorem GeneralizedContinuedFraction.IntFractPair.one_le_succ_nth_stream_b - theorem GeneralizedContinuedFraction.IntFractPair.succ_nth_stream_b_le_nth_stream_fr_inv - theorem GeneralizedContinuedFraction.abs_sub_convergents_le' - theorem GeneralizedContinuedFraction.abs_sub_convergents_le - theorem GeneralizedContinuedFraction.determinant - theorem GeneralizedContinuedFraction.determinant_aux - theorem GeneralizedContinuedFraction.exists_int_eq_of_part_denom - theorem GeneralizedContinuedFraction.fib_le_of_continuantsAux_b - theorem GeneralizedContinuedFraction.le_of_succ_get?_denom - theorem GeneralizedContinuedFraction.le_of_succ_succ_get?_continuantsAux_b - theorem GeneralizedContinuedFraction.of_denom_mono - theorem GeneralizedContinuedFraction.of_one_le_get?_part_denom - theorem GeneralizedContinuedFraction.of_part_num_eq_one - theorem GeneralizedContinuedFraction.of_part_num_eq_one_and_exists_int_part_denom_eq - theorem GeneralizedContinuedFraction.sub_convergents_eq - theorem GeneralizedContinuedFraction.succ_nth_fib_le_of_nth_denom - theorem GeneralizedContinuedFraction.zero_le_of_continuantsAux_b - theorem GeneralizedContinuedFraction.zero_le_of_denom Modified Mathlib/Algebra/ContinuedFractions/Computation/Basic.lean + def GenContFract.IntFractPair.coeFn + theorem GenContFract.IntFractPair.coe_to_intFractPair + def GenContFract.IntFractPair.mapFr + theorem GenContFract.IntFractPair.stream_isSeq + structure GenContFract.IntFractPair - def GeneralizedContinuedFraction.IntFractPair.coeFn - theorem GeneralizedContinuedFraction.IntFractPair.coe_to_intFractPair - def GeneralizedContinuedFraction.IntFractPair.mapFr - theorem GeneralizedContinuedFraction.IntFractPair.stream_isSeq - structure GeneralizedContinuedFraction.IntFractPair Modified Mathlib/Algebra/ContinuedFractions/Computation/CorrectnessTerminating.lean + theorem GenContFract.compExactValue_correctness_of_stream_eq_some + theorem GenContFract.of_correctness_atTop_of_terminates + theorem GenContFract.of_correctness_of_nth_stream_eq_none + theorem GenContFract.of_correctness_of_terminatedAt + theorem GenContFract.of_correctness_of_terminates - theorem GeneralizedContinuedFraction.compExactValue_correctness_of_stream_eq_some - theorem GeneralizedContinuedFraction.of_correctness_atTop_of_terminates - theorem GeneralizedContinuedFraction.of_correctness_of_nth_stream_eq_none - theorem GeneralizedContinuedFraction.of_correctness_of_terminatedAt - theorem GeneralizedContinuedFraction.of_correctness_of_terminates Modified Mathlib/Algebra/ContinuedFractions/Computation/TerminatesIffRat.lean + theorem GenContFract.IntFractPair.coe_of_rat_eq + theorem GenContFract.IntFractPair.coe_stream'_rat_eq + theorem GenContFract.IntFractPair.coe_stream_nth_rat_eq + theorem GenContFract.IntFractPair.exists_nth_stream_eq_none_of_rat + theorem GenContFract.IntFractPair.of_inv_fr_num_lt_num_of_pos + theorem GenContFract.IntFractPair.stream_nth_fr_num_le_fr_num_sub_n_rat + theorem GenContFract.IntFractPair.stream_succ_nth_fr_num_lt_nth_fr_num_rat + theorem GenContFract.coe_of_h_rat_eq + theorem GenContFract.coe_of_rat_eq + theorem GenContFract.coe_of_s_get?_rat_eq + theorem GenContFract.coe_of_s_rat_eq + theorem GenContFract.exists_gcf_pair_rat_eq_nth_conts + theorem GenContFract.exists_rat_eq_nth_conv + theorem GenContFract.exists_rat_eq_nth_den + theorem GenContFract.exists_rat_eq_nth_num + theorem GenContFract.exists_rat_eq_of_terminates + theorem GenContFract.of_terminates_iff_of_rat_terminates + theorem GenContFract.terminates_iff_rat + theorem GenContFract.terminates_of_rat - theorem GeneralizedContinuedFraction.IntFractPair.coe_of_rat_eq - theorem GeneralizedContinuedFraction.IntFractPair.coe_stream'_rat_eq - theorem GeneralizedContinuedFraction.IntFractPair.coe_stream_nth_rat_eq - theorem GeneralizedContinuedFraction.IntFractPair.exists_nth_stream_eq_none_of_rat - theorem GeneralizedContinuedFraction.IntFractPair.of_inv_fr_num_lt_num_of_pos - theorem GeneralizedContinuedFraction.IntFractPair.stream_nth_fr_num_le_fr_num_sub_n_rat - theorem GeneralizedContinuedFraction.IntFractPair.stream_succ_nth_fr_num_lt_nth_fr_num_rat - theorem GeneralizedContinuedFraction.coe_of_h_rat_eq - theorem GeneralizedContinuedFraction.coe_of_rat_eq - theorem GeneralizedContinuedFraction.coe_of_s_get?_rat_eq - theorem GeneralizedContinuedFraction.coe_of_s_rat_eq - theorem GeneralizedContinuedFraction.exists_gcf_pair_rat_eq_nth_conts - theorem GeneralizedContinuedFraction.exists_rat_eq_nth_convergent - theorem GeneralizedContinuedFraction.exists_rat_eq_nth_denominator - theorem GeneralizedContinuedFraction.exists_rat_eq_nth_numerator - theorem GeneralizedContinuedFraction.exists_rat_eq_of_terminates - theorem GeneralizedContinuedFraction.of_terminates_iff_of_rat_terminates - theorem GeneralizedContinuedFraction.terminates_iff_rat - theorem GeneralizedContinuedFraction.terminates_of_rat Modified Mathlib/Algebra/ContinuedFractions/Computation/Translations.lean + theorem GenContFract.IntFractPair.exists_succ_get?_stream_of_gcf_of_get?_eq_some + theorem GenContFract.IntFractPair.exists_succ_nth_stream_of_fr_zero + theorem GenContFract.IntFractPair.get?_seq1_eq_succ_get?_stream + theorem GenContFract.IntFractPair.seq1_fst_eq_of + theorem GenContFract.IntFractPair.stream_eq_none_of_fr_eq_zero + theorem GenContFract.IntFractPair.stream_succ + theorem GenContFract.IntFractPair.stream_succ_of_int + theorem GenContFract.IntFractPair.stream_succ_of_some + theorem GenContFract.IntFractPair.stream_zero + theorem GenContFract.IntFractPair.succ_nth_stream_eq_none_iff + theorem GenContFract.IntFractPair.succ_nth_stream_eq_some_iff + theorem GenContFract.convs'_of_int + theorem GenContFract.convs'_succ + theorem GenContFract.get?_of_eq_some_of_get?_intFractPair_stream_fr_ne_zero + theorem GenContFract.get?_of_eq_some_of_succ_get?_intFractPair_stream + theorem GenContFract.of_h_eq_floor + theorem GenContFract.of_h_eq_intFractPair_seq1_fst_b + theorem GenContFract.of_s_head + theorem GenContFract.of_s_head_aux + theorem GenContFract.of_s_of_int + theorem GenContFract.of_s_succ + theorem GenContFract.of_s_tail + theorem GenContFract.of_terminatedAt_iff_intFractPair_seq1_terminatedAt + theorem GenContFract.of_terminatedAt_n_iff_succ_nth_intFractPair_stream_eq_none - theorem GeneralizedContinuedFraction.IntFractPair.exists_succ_get?_stream_of_gcf_of_get?_eq_some - theorem GeneralizedContinuedFraction.IntFractPair.exists_succ_nth_stream_of_fr_zero - theorem GeneralizedContinuedFraction.IntFractPair.get?_seq1_eq_succ_get?_stream - theorem GeneralizedContinuedFraction.IntFractPair.seq1_fst_eq_of - theorem GeneralizedContinuedFraction.IntFractPair.stream_eq_none_of_fr_eq_zero - theorem GeneralizedContinuedFraction.IntFractPair.stream_succ - theorem GeneralizedContinuedFraction.IntFractPair.stream_succ_of_int - theorem GeneralizedContinuedFraction.IntFractPair.stream_succ_of_some - theorem GeneralizedContinuedFraction.IntFractPair.stream_zero - theorem GeneralizedContinuedFraction.IntFractPair.succ_nth_stream_eq_none_iff - theorem GeneralizedContinuedFraction.IntFractPair.succ_nth_stream_eq_some_iff - theorem GeneralizedContinuedFraction.convergents'_of_int - theorem GeneralizedContinuedFraction.convergents'_succ - theorem GeneralizedContinuedFraction.get?_of_eq_some_of_get?_intFractPair_stream_fr_ne_zero - theorem GeneralizedContinuedFraction.get?_of_eq_some_of_succ_get?_intFractPair_stream - theorem GeneralizedContinuedFraction.of_h_eq_floor - theorem GeneralizedContinuedFraction.of_h_eq_intFractPair_seq1_fst_b - theorem GeneralizedContinuedFraction.of_s_head - theorem GeneralizedContinuedFraction.of_s_head_aux - theorem GeneralizedContinuedFraction.of_s_of_int - theorem GeneralizedContinuedFraction.of_s_succ - theorem GeneralizedContinuedFraction.of_s_tail - theorem GeneralizedContinuedFraction.of_terminatedAt_iff_intFractPair_seq1_terminatedAt - theorem GeneralizedContinuedFraction.of_terminatedAt_n_iff_succ_nth_intFractPair_stream_eq_none Modified Mathlib/Algebra/ContinuedFractions/ContinuantsRecurrence.lean + theorem GenContFract.contsAux_recurrence + theorem GenContFract.conts_recurrence + theorem GenContFract.conts_recurrenceAux + theorem GenContFract.dens_recurrence + theorem GenContFract.nums_recurrence - theorem GeneralizedContinuedFraction.continuantsAux_recurrence - theorem GeneralizedContinuedFraction.continuants_recurrence - theorem GeneralizedContinuedFraction.continuants_recurrenceAux - theorem GeneralizedContinuedFraction.denominators_recurrence - theorem GeneralizedContinuedFraction.numerators_recurrence Modified Mathlib/Algebra/ContinuedFractions/ConvergentsEquiv.lean + theorem GenContFract.contsAux_eq_contsAux_squashGCF_of_le + theorem GenContFract.convs_eq_convs' + def GenContFract.squashGCF + theorem GenContFract.squashGCF_eq_self_of_terminated + theorem GenContFract.squashGCF_nth_of_lt + def GenContFract.squashSeq + theorem GenContFract.squashSeq_eq_self_of_terminated + theorem GenContFract.squashSeq_nth_of_lt + theorem GenContFract.squashSeq_nth_of_not_terminated + theorem GenContFract.squashSeq_succ_n_tail_eq_squashSeq_tail_n + theorem GenContFract.succ_nth_conv'_eq_squashGCF_nth_conv' + theorem GenContFract.succ_nth_conv_eq_squashGCF_nth_conv + theorem GenContFract.succ_succ_nth_conv'Aux_eq_succ_nth_conv'Aux_squashSeq - theorem GeneralizedContinuedFraction.continuantsAux_eq_continuantsAux_squashGCF_of_le - theorem GeneralizedContinuedFraction.convergents_eq_convergents' - def GeneralizedContinuedFraction.squashGCF - theorem GeneralizedContinuedFraction.squashGCF_eq_self_of_terminated - theorem GeneralizedContinuedFraction.squashGCF_nth_of_lt - def GeneralizedContinuedFraction.squashSeq - theorem GeneralizedContinuedFraction.squashSeq_eq_self_of_terminated - theorem GeneralizedContinuedFraction.squashSeq_nth_of_lt - theorem GeneralizedContinuedFraction.squashSeq_nth_of_not_terminated - theorem GeneralizedContinuedFraction.squashSeq_succ_n_tail_eq_squashSeq_tail_n - theorem GeneralizedContinuedFraction.succ_nth_convergent'_eq_squashGCF_nth_convergent' - theorem GeneralizedContinuedFraction.succ_nth_convergent_eq_squashGCF_nth_convergent - theorem GeneralizedContinuedFraction.succ_succ_nth_convergent'_aux_eq_succ_nth_convergent'_aux_squashSeq Modified Mathlib/Algebra/ContinuedFractions/TerminatedStable.lean + theorem GenContFract.contsAux_stable_of_terminated + theorem GenContFract.contsAux_stable_step_of_terminated + theorem GenContFract.conts_stable_of_terminated + theorem GenContFract.convs'Aux_stable_of_terminated + theorem GenContFract.convs'Aux_stable_step_of_terminated + theorem GenContFract.convs'_stable_of_terminated + theorem GenContFract.convs_stable_of_terminated + theorem GenContFract.dens_stable_of_terminated + theorem GenContFract.nums_stable_of_terminated + theorem GenContFract.terminated_stable - theorem GeneralizedContinuedFraction.continuantsAux_stable_of_terminated - theorem GeneralizedContinuedFraction.continuantsAux_stable_step_of_terminated - theorem GeneralizedContinuedFraction.continuants_stable_of_terminated - theorem GeneralizedContinuedFraction.convergents'Aux_stable_of_terminated - theorem GeneralizedContinuedFraction.convergents'Aux_stable_step_of_terminated - theorem GeneralizedContinuedFraction.convergents'_stable_of_terminated - theorem GeneralizedContinuedFraction.convergents_stable_of_terminated - theorem GeneralizedContinuedFraction.denominators_stable_of_terminated - theorem GeneralizedContinuedFraction.numerators_stable_of_terminated - theorem GeneralizedContinuedFraction.terminated_stable Modified Mathlib/Algebra/ContinuedFractions/Translations.lean + theorem GenContFract.conv_eq_conts_a_div_conts_b + theorem GenContFract.conv_eq_num_div_den + theorem GenContFract.convs'Aux_succ_none + theorem GenContFract.convs'Aux_succ_some + theorem GenContFract.den_eq_conts_b + theorem GenContFract.exists_conts_a_of_num + theorem GenContFract.exists_conts_b_of_den + theorem GenContFract.exists_s_a_of_partNum + theorem GenContFract.exists_s_b_of_partDen + theorem GenContFract.first_contAux_eq_h_one + theorem GenContFract.first_cont_eq + theorem GenContFract.first_den_eq + theorem GenContFract.first_num_eq + theorem GenContFract.nth_cont_eq_succ_nth_contAux + theorem GenContFract.num_eq_conts_a + theorem GenContFract.partDen_eq_s_b + theorem GenContFract.partDen_none_iff_s_none + theorem GenContFract.partNum_eq_s_a + theorem GenContFract.partNum_none_iff_s_none + theorem GenContFract.second_contAux_eq + theorem GenContFract.terminatedAt_iff_partDen_none + theorem GenContFract.terminatedAt_iff_partNum_none + theorem GenContFract.terminatedAt_iff_s_none + theorem GenContFract.terminatedAt_iff_s_terminatedAt + theorem GenContFract.zeroth_contAux_eq_one_zero + theorem GenContFract.zeroth_cont_eq_h_one + theorem GenContFract.zeroth_conv'Aux_eq_zero + theorem GenContFract.zeroth_conv'_eq_h + theorem GenContFract.zeroth_conv_eq_h + theorem GenContFract.zeroth_den_eq_one + theorem GenContFract.zeroth_num_eq_h - theorem GeneralizedContinuedFraction.convergent_eq_conts_a_div_conts_b - theorem GeneralizedContinuedFraction.convergent_eq_num_div_denom - theorem GeneralizedContinuedFraction.convergents'Aux_succ_none - theorem GeneralizedContinuedFraction.convergents'Aux_succ_some - theorem GeneralizedContinuedFraction.denom_eq_conts_b - theorem GeneralizedContinuedFraction.exists_conts_a_of_num - theorem GeneralizedContinuedFraction.exists_conts_b_of_denom - theorem GeneralizedContinuedFraction.exists_s_a_of_part_num - theorem GeneralizedContinuedFraction.exists_s_b_of_part_denom - theorem GeneralizedContinuedFraction.first_continuant_aux_eq_h_one - theorem GeneralizedContinuedFraction.first_continuant_eq - theorem GeneralizedContinuedFraction.first_denominator_eq - theorem GeneralizedContinuedFraction.first_numerator_eq - theorem GeneralizedContinuedFraction.nth_cont_eq_succ_nth_cont_aux - theorem GeneralizedContinuedFraction.num_eq_conts_a - theorem GeneralizedContinuedFraction.part_denom_eq_s_b - theorem GeneralizedContinuedFraction.part_denom_none_iff_s_none - theorem GeneralizedContinuedFraction.part_num_eq_s_a - theorem GeneralizedContinuedFraction.part_num_none_iff_s_none - theorem GeneralizedContinuedFraction.second_continuant_aux_eq - theorem GeneralizedContinuedFraction.terminatedAt_iff_part_denom_none - theorem GeneralizedContinuedFraction.terminatedAt_iff_part_num_none - theorem GeneralizedContinuedFraction.terminatedAt_iff_s_none - theorem GeneralizedContinuedFraction.terminatedAt_iff_s_terminatedAt - theorem GeneralizedContinuedFraction.zeroth_continuant_aux_eq_one_zero - theorem GeneralizedContinuedFraction.zeroth_continuant_eq_h_one - theorem GeneralizedContinuedFraction.zeroth_convergent'_aux_eq_zero - theorem GeneralizedContinuedFraction.zeroth_convergent'_eq_h - theorem GeneralizedContinuedFraction.zeroth_convergent_eq_h - theorem GeneralizedContinuedFraction.zeroth_denominator_eq_one - theorem GeneralizedContinuedFraction.zeroth_numerator_eq_h Modified Mathlib/NumberTheory/DiophantineApproximation.lean - theorem Real.continued_fraction_convergent_eq_convergent + theorem Real.convs_eq_convergent - theorem Real.exists_continued_fraction_convergent_eq_rat + theorem Real.exists_genContFract_convs_eq_rat Modified docs/overview.yaml Modified scripts/nolints.json 2024-07-04 00:07:18 2192387 chore: update Mathlib dependencies 2024-07-03 (#14394) This PR updates the Mathlib dependencies. ESTIMATED CHANGES Modified lake-manifest.json 2024-07-03 23:30:51 c52fabc feat(ContinuousFunctionalCalculus): add several lemmas involving the CFC and `algebraMap` (#14065) This PR adds several lemmas about the interaction between the (non-unital) CFC and `algebraMap`. Several lemmas require some sort of nontriviality statement for the CFC (i.e. the predicate can't be false everywhere), I just stated it as an `hp : p 0` hypothesis in the lemma statements; it seems like the most convenient way in practice and probably the easiest to automate. ESTIMATED CHANGES Modified Mathlib/Analysis/NormedSpace/Star/ContinuousFunctionalCalculus/Instances.lean Modified Mathlib/Topology/ContinuousFunction/FunctionalCalculus.lean + theorem CFC.eq_algebraMap_of_spectrum_subset_singleton + theorem CFC.eq_one_of_spectrum_subset_one + theorem CFC.eq_zero_of_spectrum_subset_zero + theorem CFC.spectrum_algebraMap_eq + theorem CFC.spectrum_algebraMap_subset + theorem CFC.spectrum_one_eq + theorem CFC.spectrum_zero_eq + theorem cfc_algebraMap + theorem cfc_apply_one + theorem cfc_apply_zero - theorem eq_algebraMap_of_spectrum_subset_singleton - theorem eq_one_of_spectrum_subset_one - theorem eq_zero_of_spectrum_subset_zero Modified Mathlib/Topology/ContinuousFunction/NonUnitalFunctionalCalculus.lean + theorem CFC.eq_zero_of_quasispectrum_eq_zero + theorem CFC.quasispectrum_zero_eq + theorem cfcₙ_apply_zero - theorem eq_zero_of_quasispectrum_eq_zero 2024-07-03 22:34:30 343699a chore: remove ported tactic from Mathport syntax (#14385) `move_add`, `move_mul` and `move_oper` are all available in `Mathlib`. ESTIMATED CHANGES Modified Mathlib/Mathport/Syntax.lean 2024-07-03 22:25:02 e6737c3 chore: fix docstring (#14392) An unused finiteness assumption is removed from the docstring of a lemma. ESTIMATED CHANGES Modified Mathlib/AlgebraicGeometry/Cover/Open.lean 2024-07-03 14:53:34 ce981a6 chore: remove some whitespace and two other things (#14384) The fallout of an experiment (#14379) with linting whitespace. To keep the review interesting, I invite you to find the two changes that are not whitespace removal. ESTIMATED CHANGES Modified Mathlib/Algebra/CharP/MixedCharZero.lean Modified Mathlib/CategoryTheory/Limits/Shapes/FunctorToTypes.lean Modified Mathlib/Control/Random.lean +/- def Rand.next +/- def Rand.range +/- def Rand.split Modified Mathlib/Data/List/Range.lean Modified Mathlib/Data/Vector/Snoc.lean Modified Mathlib/FieldTheory/RatFunc/AsPolynomial.lean Modified Mathlib/FieldTheory/RatFunc/Degree.lean Modified Mathlib/Geometry/Manifold/Sheaf/Smooth.lean Modified Mathlib/GroupTheory/GroupAction/Opposite.lean Modified Mathlib/MeasureTheory/Constructions/Polish.lean Modified Mathlib/MeasureTheory/Measure/Haar/Unique.lean Modified Mathlib/NumberTheory/Bertrand.lean Modified Mathlib/NumberTheory/Ostrowski.lean Modified Mathlib/RingTheory/DedekindDomain/Ideal.lean Modified Mathlib/RingTheory/TensorProduct/MvPolynomial.lean +/- theorem MvPolynomial.scalarRTensor_apply_X_tmul_apply Modified Mathlib/Topology/Algebra/Algebra.lean Modified Mathlib/Topology/Algebra/WithZeroTopology.lean Modified Mathlib/Topology/Compactness/Lindelof.lean Modified test/lift.lean 2024-07-03 14:53:33 bf22adb chore(Mathlib/Init): remove autoImplicit (#14355) I know Mathlib/Init is mostly going to be removed ESTIMATED CHANGES Modified Mathlib/Init/Algebra/Classes.lean Modified Mathlib/Init/Control/Lawful.lean Modified Mathlib/Init/Core.lean Modified Mathlib/Init/Data/Bool/Lemmas.lean Modified Mathlib/Init/Data/List/Basic.lean Modified Mathlib/Init/Data/Ordering/Basic.lean +/- def Ordering.toRel Modified Mathlib/Init/Data/Prod.lean Modified Mathlib/Init/Data/Quot.lean Modified Mathlib/Init/Data/Sigma/Basic.lean +/- theorem ex_of_psig Modified Mathlib/Init/Logic.lean +/- theorem cast_proof_irrel Modified Mathlib/Init/Quot.lean Modified Mathlib/Init/Set.lean +/- def Set.image Modified Mathlib/Init/ZeroOne.lean 2024-07-03 14:53:32 1644a97 chore(FieldTheory): remove use of autoImplicit (#14354) ESTIMATED CHANGES Modified Mathlib/FieldTheory/Adjoin.lean 2024-07-03 13:56:44 b35dfa6 feat(Order/WithBot): add `forall_iff_eq_bot ` and `forall_iff_eq_top ` (#14169) - [x] Add `forall_iff_eq_bot ` - [x] Add `forall_iff_eq_top ` ESTIMATED CHANGES Modified Mathlib/Data/Option/Basic.lean + theorem Option.forall_some_ne_iff_eq_none Modified Mathlib/Order/WithBot.lean + theorem WithBot.forall_lt_iff_eq_bot + theorem WithBot.forall_ne_iff_eq_bot +/- theorem WithBot.ne_bot_iff_exists + theorem WithTop.forall_lt_iff_eq_top + theorem WithTop.forall_ne_iff_eq_top +/- theorem WithTop.ne_top_iff_exists 2024-07-03 12:53:41 ea932ed chore: note in Mathlib/Init/* about intention to move content and delete (#14383) As discussed at yesterday's maintainers meeting. ESTIMATED CHANGES Modified Mathlib/Init/Algebra/Classes.lean Modified Mathlib/Init/Align.lean Modified Mathlib/Init/Classes/Order.lean Modified Mathlib/Init/Classical.lean Modified Mathlib/Init/Control/Combinators.lean Modified Mathlib/Init/Control/Lawful.lean Modified Mathlib/Init/Core.lean Modified Mathlib/Init/Data/Bool/Basic.lean Modified Mathlib/Init/Data/Bool/Lemmas.lean Modified Mathlib/Init/Data/Fin/Basic.lean Modified Mathlib/Init/Data/Int/Basic.lean Modified Mathlib/Init/Data/Int/DivMod.lean Modified Mathlib/Init/Data/Int/Lemmas.lean Modified Mathlib/Init/Data/Int/Order.lean Modified Mathlib/Init/Data/List/Basic.lean Modified Mathlib/Init/Data/List/Instances.lean Modified Mathlib/Init/Data/List/Lemmas.lean Modified Mathlib/Init/Data/Nat/Basic.lean Modified Mathlib/Init/Data/Nat/Div.lean Modified Mathlib/Init/Data/Nat/GCD.lean Modified Mathlib/Init/Data/Nat/Lemmas.lean Modified Mathlib/Init/Data/Nat/Notation.lean Modified Mathlib/Init/Data/Option/Basic.lean Modified Mathlib/Init/Data/Option/Init/Lemmas.lean Modified Mathlib/Init/Data/Option/Lemmas.lean Modified Mathlib/Init/Data/Ordering/Basic.lean Modified Mathlib/Init/Data/Ordering/Lemmas.lean Modified Mathlib/Init/Data/Prod.lean Modified Mathlib/Init/Data/Quot.lean Modified Mathlib/Init/Data/Rat/Basic.lean Modified Mathlib/Init/Data/Sigma/Basic.lean Modified Mathlib/Init/Data/Sigma/Lex.lean Modified Mathlib/Init/Function.lean Modified Mathlib/Init/Logic.lean Modified Mathlib/Init/Meta/WellFoundedTactics.lean Modified Mathlib/Init/Order/Defs.lean Modified Mathlib/Init/Order/LinearOrder.lean Modified Mathlib/Init/Quot.lean Modified Mathlib/Init/Set.lean Modified Mathlib/Init/ZeroOne.lean 2024-07-03 11:27:08 c4d0126 chore: move iterate_prod_map to `Data.Prod.Basic` (#14367) The lemma [Function.iterate_prod_map](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Dynamics/PeriodicPts.html#Function.iterate_prod_map) is too fundamental to belong to a Dynamics folder. It is moved to Data.Prod.Basic. The name of the lemma is changed from `iterate_prod_map` to `Prod.map_iterate`, which is more coherent with the usual naming (see `Continuous.iterate`, `pow_iterate`...) and thus more searchable. ESTIMATED CHANGES Modified Mathlib/Data/Prod/Basic.lean + theorem Prod.map_iterate Modified Mathlib/Dynamics/PeriodicPts.lean - theorem Function.iterate_prod_map 2024-07-03 10:14:49 5d74b27 feat: the Dialectica category (#14274) Co-authored with Valeria de Paiva. This defines the category `Dial(C)` which is a categorical interpretation of Gödel's "Dialectica interpretation" of higher order arithmetic. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Dialectica/Basic.lean + structure CategoryTheory.Dial.Hom + theorem CategoryTheory.Dial.comp_le_lemma + theorem CategoryTheory.Dial.hom_ext + def CategoryTheory.Dial.isoMk + structure CategoryTheory.Dial Added Mathlib/CategoryTheory/Dialectica/Monoidal.lean + def CategoryTheory.Dial.associator + theorem CategoryTheory.Dial.associator_naturality + def CategoryTheory.Dial.braiding + theorem CategoryTheory.Dial.braiding_naturality_left + theorem CategoryTheory.Dial.braiding_naturality_right + theorem CategoryTheory.Dial.hexagon_forward + theorem CategoryTheory.Dial.hexagon_reverse + def CategoryTheory.Dial.leftUnitor + theorem CategoryTheory.Dial.leftUnitor_naturality + theorem CategoryTheory.Dial.pentagon + def CategoryTheory.Dial.rightUnitor + theorem CategoryTheory.Dial.rightUnitor_naturality + theorem CategoryTheory.Dial.symmetry + def CategoryTheory.Dial.tensorHom + def CategoryTheory.Dial.tensorObj + def CategoryTheory.Dial.tensorUnit + theorem CategoryTheory.Dial.tensor_comp + theorem CategoryTheory.Dial.tensor_id + theorem CategoryTheory.Dial.triangle Modified docs/references.bib 2024-07-03 09:27:44 a25f1f9 feat(Topology/Inseparable): Define `specializing` maps between topological spaces (#14001) A port of https://github.com/leanprover-community/mathlib/pull/17113 ESTIMATED CHANGES Modified Mathlib/Order/UpperLower/Basic.lean + theorem Relation.Fibration.isLowerSet_image + theorem Relation.Fibration.isUpperSet_image + theorem Relation.fibration_iff_image_Ici + theorem Relation.fibration_iff_image_Iic + theorem Relation.fibration_iff_isLowerSet_image + theorem Relation.fibration_iff_isLowerSet_image_Iic + theorem Relation.fibration_iff_isUpperSet_image + theorem Relation.fibration_iff_isUpperSet_image_Ici + theorem lowerClosure_eq + theorem upperClosure_eq Modified Mathlib/Topology/Inseparable.lean +/- theorem Continuous.specialization_monotone + theorem GeneralizingMap.stableUnderGeneralization_image + theorem GeneralizingMap.stableUnderGeneralization_range + def GeneralizingMap + theorem GeneralizingMap_iff_stableUnderGeneralization_image + theorem Inducing.generalizingMap + theorem Inducing.specializingMap + theorem IsClosed.stableUnderSpecialization + theorem IsClosedMap.specializingMap + theorem IsOpen.stableUnderGeneralization + theorem OpenEmbedding.generalizingMap + theorem SpecializingMap.stableUnderSpecialization_image + theorem SpecializingMap.stableUnderSpecialization_range + def SpecializingMap + theorem StableUnderGeneralization.preimage + def StableUnderGeneralization + theorem StableUnderSpecialization.preimage + def StableUnderSpecialization + theorem Union_closure_singleton_eq_iff + theorem closure_singleton_eq_Iic + theorem specializingMap_iff_closure_singleton + theorem specializingMap_iff_closure_singleton_subset + theorem specializingMap_iff_isClosed_image_closure_singleton + theorem specializingMap_iff_stableUnderSpecialization_image + theorem specializingMap_iff_stableUnderSpecialization_image_singleton + theorem stableUnderGeneralization_compl_iff + theorem stableUnderGeneralization_empty + theorem stableUnderGeneralization_iInter + theorem stableUnderGeneralization_iUnion + theorem stableUnderGeneralization_iff_exists_sInter_eq + theorem stableUnderGeneralization_sInter + theorem stableUnderGeneralization_sUnion + theorem stableUnderGeneralization_univ + theorem stableUnderSpecialization_compl_iff + theorem stableUnderSpecialization_empty + theorem stableUnderSpecialization_iInter + theorem stableUnderSpecialization_iUnion + theorem stableUnderSpecialization_iff_Union_eq + theorem stableUnderSpecialization_iff_exists_sUnion_eq + theorem stableUnderSpecialization_sInter + theorem stableUnderSpecialization_sUnion + theorem stableUnderSpecialization_univ 2024-07-03 09:27:43 bb3c342 feat (RingTheory/Valuation) : add lemmas about valuations and notations for valued (#13533) Add related lemmas about valuations. Add notations for integer, maximal ideal and residue field for valued field. Relocate files concerning `Valued` under a new folder Topology/Algebra/Valued. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/NumberTheory/FunctionField.lean Modified Mathlib/RingTheory/DedekindDomain/AdicValuation.lean Modified Mathlib/RingTheory/Ideal/LocalRing.lean Modified Mathlib/RingTheory/Valuation/Basic.lean + theorem Valuation.one_le_val_iff + theorem Valuation.val_eq_one_iff + theorem Valuation.val_le_one_iff + theorem Valuation.val_le_one_or_val_inv_le_one + theorem Valuation.val_le_one_or_val_inv_lt_one + theorem Valuation.val_lt_one_iff Modified Mathlib/RingTheory/Valuation/Integers.lean + theorem Valuation.Integers.eq_algebraMap_or_inv_eq_algebraMap + theorem Valuation.Integers.isUnit_of_one' Modified Mathlib/RingTheory/Valuation/ValuationRing.lean + theorem ValuationRing.isFractionRing_iff Modified Mathlib/RingTheory/Valuation/ValuationSubring.lean Renamed Mathlib/Topology/Algebra/NormedValued.lean to Mathlib/Topology/Algebra/Valued/NormedValued.lean Renamed Mathlib/Topology/Algebra/Valuation.lean to Mathlib/Topology/Algebra/Valued/ValuationTopology.lean Renamed Mathlib/Topology/Algebra/ValuedField.lean to Mathlib/Topology/Algebra/Valued/ValuedField.lean + def Valued.ResidueField + def Valued.integer + def Valued.maximalIdeal 2024-07-03 08:52:03 fcfd70e chore(Data/Nat): refactor import of `Nat/Prime` by `Nat/Factors` (#14357) Further reduce imports of full `Prime.lean`. Here, `Data.Nat.Factors` now imports only `Prime/Defs`. For this, four lemmas had to be added to `Prime/Defs` from `Prime/Basic`. Many modules import `Data.Nat.Factors`, so their dependencies on `Prime` theorems are now uncovered. Still, this change will reduce the amount of what is imported, in general. Motivation is a circular dependency that would prevent me from adding a lemma to `Prime/Basic`. ESTIMATED CHANGES Modified Mathlib/Data/Nat/Factors.lean Modified Mathlib/Data/Nat/Prime/Basic.lean - theorem Nat.Prime.eq_two_or_odd' - theorem Nat.Prime.eq_two_or_odd - theorem Nat.factors_lemma - theorem Nat.irreducible_iff_prime Modified Mathlib/Data/Nat/Prime/Defs.lean + theorem Nat.Prime.eq_two_or_odd' + theorem Nat.Prime.eq_two_or_odd + theorem Nat.factors_lemma + theorem Nat.irreducible_iff_prime Modified Mathlib/Data/Nat/PrimeFin.lean Modified Mathlib/NumberTheory/Divisors.lean Modified Mathlib/RingTheory/Int/Basic.lean 2024-07-03 06:10:44 17a95d6 feat(AlgebraicGeometry): residue field of a point and evaluation (#14302) Defines the residue field of a point of a locally ringed space and the corresponding evaluation map. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/AlgebraicGeometry/GammaSpecAdjunction.lean + theorem AlgebraicGeometry.LocallyRingedSpace.ΓToStalk_stalkMap + theorem AlgebraicGeometry.LocallyRingedSpace.ΓToStalk_stalkMap_apply Added Mathlib/Geometry/RingedSpace/LocallyRingedSpace/ResidueField.lean + def AlgebraicGeometry.LocallyRingedSpace.evaluation + theorem AlgebraicGeometry.LocallyRingedSpace.evaluation_eq_zero_iff_not_mem_basicOpen + theorem AlgebraicGeometry.LocallyRingedSpace.evaluation_naturality + theorem AlgebraicGeometry.LocallyRingedSpace.evaluation_naturality_apply + theorem AlgebraicGeometry.LocallyRingedSpace.evaluation_ne_zero_iff_mem_basicOpen + def AlgebraicGeometry.LocallyRingedSpace.residueField + def AlgebraicGeometry.LocallyRingedSpace.residueFieldMap + theorem AlgebraicGeometry.LocallyRingedSpace.residueFieldMap_comp + theorem AlgebraicGeometry.LocallyRingedSpace.residueFieldMap_id + theorem AlgebraicGeometry.LocallyRingedSpace.residue_comp_residueFieldMap_eq_stalkMap_comp_residue + def AlgebraicGeometry.LocallyRingedSpace.Γevaluation + theorem AlgebraicGeometry.LocallyRingedSpace.Γevaluation_eq_zero_iff_not_mem_basicOpen + theorem AlgebraicGeometry.LocallyRingedSpace.Γevaluation_naturality + theorem AlgebraicGeometry.LocallyRingedSpace.Γevaluation_naturality_apply + theorem AlgebraicGeometry.LocallyRingedSpace.Γevaluation_ne_zero_iff_mem_basicOpen Modified Mathlib/RingTheory/Ideal/LocalRing.lean + theorem LocalRing.ker_residue + theorem LocalRing.residue_eq_zero_iff + theorem LocalRing.residue_ne_zero_iff_isUnit 2024-07-03 06:10:43 15d0b10 doc: RingTheory/Generators clarification (#14290) ESTIMATED CHANGES Modified Mathlib/RingTheory/Generators.lean 2024-07-03 06:10:42 4900904 feat: the forget functor from ModuleCat to AddCommGrp reflects all limits (#14283) The forget functor from the category of modules to abelian groups reflects all limits (regardless of universes). This may reduce universe assumptions in #14254. This contribution was created as part of the AIM workshop "Formalizing algebraic geometry" in June 2024. ESTIMATED CHANGES Modified Mathlib/Algebra/Category/ModuleCat/Abelian.lean Modified Mathlib/Algebra/Category/ModuleCat/ChangeOfRings.lean Modified Mathlib/Algebra/Category/ModuleCat/Limits.lean +/- def ModuleCat.HasLimits.limitConeIsLimit 2024-07-03 05:48:30 a708114 feat(AlgebraicGeometry): zero locus of sections and characterisation of nilpotent elements (#14337) Introduces the zero locus of a set of sections on a ringed space and characterizes nilpotent sections over compact opens of a scheme in terms of basic opens and the zero locus. ESTIMATED CHANGES Modified Mathlib/AlgebraicGeometry/AffineScheme.lean - theorem AlgebraicGeometry.IsAffineOpen.fromSpec_image_top + theorem AlgebraicGeometry.Scheme.eq_zeroLocus_of_isClosed_of_isAffine + theorem AlgebraicGeometry.Scheme.toΓSpec_image_zeroLocus_eq_of_isAffine + theorem AlgebraicGeometry.Scheme.toΓSpec_preimage_zeroLocus_eq Modified Mathlib/AlgebraicGeometry/Cover/Open.lean + theorem AlgebraicGeometry.Scheme.OpenCover.ext_elem + theorem AlgebraicGeometry.Scheme.isNilpotent_of_isNilpotent_cover + theorem AlgebraicGeometry.Scheme.zero_of_zero_cover Modified Mathlib/AlgebraicGeometry/GammaSpecAdjunction.lean - theorem AlgebraicGeometry.LocallyRingedSpace.toΓSpec_preim_basicOpen_eq + theorem AlgebraicGeometry.LocallyRingedSpace.toΓSpec_preimage_basicOpen_eq + theorem AlgebraicGeometry.LocallyRingedSpace.toΓSpec_preimage_zeroLocus_eq Modified Mathlib/AlgebraicGeometry/Morphisms/QuasiCompact.lean + theorem AlgebraicGeometry.Scheme.isNilpotent_iff_basicOpen_eq_bot_of_isCompact + theorem AlgebraicGeometry.Scheme.zeroLocus_eq_top_iff_subset_nilradical_of_isCompact Modified Mathlib/AlgebraicGeometry/OpenImmersion.lean + theorem AlgebraicGeometry.IsOpenImmersion.map_ΓIso_inv + def AlgebraicGeometry.IsOpenImmersion.ΓIso + theorem AlgebraicGeometry.IsOpenImmersion.ΓIso_hom_map + theorem AlgebraicGeometry.IsOpenImmersion.ΓIso_inv + theorem AlgebraicGeometry.Scheme.Hom.appLE_invApp + theorem AlgebraicGeometry.Scheme.Hom.image_le_image_of_le + theorem AlgebraicGeometry.Scheme.Hom.image_preimage_eq_opensRange_inter + theorem AlgebraicGeometry.Scheme.Hom.image_top_eq_opensRange + theorem AlgebraicGeometry.Scheme.Hom.opensFunctor_map_homOfLE + theorem AlgebraicGeometry.Scheme.Hom.preimage_image_eq Modified Mathlib/AlgebraicGeometry/PrimeSpectrum/Basic.lean + theorem PrimeSpectrum.zeroLocus_eq_top_iff + theorem PrimeSpectrum.zeroLocus_iUnion₂ Modified Mathlib/AlgebraicGeometry/Restrict.lean + theorem AlgebraicGeometry.Scheme.ιOpens_image_top Modified Mathlib/AlgebraicGeometry/Scheme.lean + theorem AlgebraicGeometry.Scheme.Hom.appLE_eq_app + theorem AlgebraicGeometry.Scheme.basicOpen_appLE + theorem AlgebraicGeometry.Scheme.basicOpen_pow + theorem AlgebraicGeometry.Scheme.mem_zeroLocus_iff +/- theorem AlgebraicGeometry.Scheme.preimage_basicOpen + def AlgebraicGeometry.Scheme.zeroLocus + theorem AlgebraicGeometry.Scheme.zeroLocus_def + theorem AlgebraicGeometry.Scheme.zeroLocus_empty_eq_univ + theorem AlgebraicGeometry.Scheme.zeroLocus_isClosed + theorem AlgebraicGeometry.Scheme.zeroLocus_singleton Modified Mathlib/CategoryTheory/Category/Preorder.lean + theorem CategoryTheory.eqToHom_comp_homOfLE + theorem CategoryTheory.eqToHom_comp_homOfLE_op + theorem CategoryTheory.homOfLE_comp_eqToHom + theorem CategoryTheory.homOfLE_isIso_of_eq + theorem CategoryTheory.homOfLE_op_comp_eqToHom Modified Mathlib/Geometry/RingedSpace/Basic.lean + theorem AlgebraicGeometry.RingedSpace.basicOpen_pow + theorem AlgebraicGeometry.RingedSpace.mem_zeroLocus_iff + def AlgebraicGeometry.RingedSpace.zeroLocus + theorem AlgebraicGeometry.RingedSpace.zeroLocus_empty_eq_univ + theorem AlgebraicGeometry.RingedSpace.zeroLocus_isClosed + theorem AlgebraicGeometry.RingedSpace.zeroLocus_singleton Modified Mathlib/Geometry/RingedSpace/LocallyRingedSpace.lean + theorem AlgebraicGeometry.LocallyRingedSpace.basicOpen_eq_bot_of_isNilpotent Modified Mathlib/Topology/Category/TopCat/Opens.lean + theorem TopologicalSpace.Opens.map_homOfLE 2024-07-03 04:18:22 ffca4d8 feat: more import diff options (#14363) This PR adds more import-diff information to the PR summary. It introduces an extra collapsible tab containing the import change for *all* files for which there has been a change, sorted by decreasing change (first all the import increases and then all the decreases). See #14360 for an example of how the new diff tab looks like. This came up in [this Zulip discussion](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/import.20changes.20bot.20on.20PRs/near/447893584). ESTIMATED CHANGES Modified .github/workflows/PR_summary.yml Added scripts/import_trans_difference.sh 2024-07-03 02:57:46 e534406 chore(GroupTheory/MonoidLocalization): Change `Localization` to an abbrev of `OreLocalization`. (#13943) ESTIMATED CHANGES Modified Mathlib/AlgebraicGeometry/Morphisms/RingHomProperties.lean Modified Mathlib/FieldTheory/RatFunc/Basic.lean Modified Mathlib/GroupTheory/MonoidLocalization.lean +/- def Localization.mk +/- theorem Localization.mk_eq_mk_iff +/- theorem Localization.mk_one +/- theorem Localization.mk_pow +/- theorem Localization.mk_zero + theorem Localization.r_iff_oreEqv_r - def Localization Modified Mathlib/RingTheory/GradedAlgebra/HomogeneousLocalization.lean + theorem HomogeneousLocalization.val_nsmul + theorem HomogeneousLocalization.val_zsmul Modified Mathlib/RingTheory/Localization/Basic.lean +/- theorem Localization.neg_mk Modified Mathlib/RingTheory/Localization/FractionRing.lean Modified Mathlib/RingTheory/OreLocalization/Basic.lean +/- theorem OreLocalization.oreDiv_one_smul + theorem OreLocalization.smul_one_oreDiv_one_smul + theorem OreLocalization.smul_one_smul +/- theorem OreLocalization.smul_oreDiv + theorem OreLocalization.smul_oreDiv_one + theorem OreLocalization.zero_oreDiv' Modified Mathlib/RingTheory/OreLocalization/Ring.lean + theorem OreLocalization.nsmul_eq_nsmul + def OreLocalization.numeratorRingHom + theorem OreLocalization.zsmul_eq_zsmul Modified Mathlib/Topology/Algebra/Localization.lean Modified Mathlib/Topology/ContinuousFunction/UniqueCFC.lean 2024-07-03 02:41:02 11cb43e chore(Combinatorics): remove remaining use of autoImplicit (#14356) ESTIMATED CHANGES Modified Mathlib/Combinatorics/SimpleGraph/Prod.lean +/- theorem SimpleGraph.Walk.ofBoxProdLeft_boxProdLeft +/- theorem SimpleGraph.Walk.ofBoxProdLeft_boxProdRight +/- theorem SimpleGraph.boxProd_adj +/- theorem SimpleGraph.boxProd_adj_left +/- theorem SimpleGraph.boxProd_adj_right 2024-07-03 02:04:30 e66c5a9 chore (Data.Nat.Cast.Order): split into `Basic` and `Ring` (#14371) We split `Data.Nat.Cast.Order` into `Data.Nat.Cast.Order.Basic` which only uses unbundled ordered algebra classes and `Data.Nat.Cast.Order.Ring` which uses bundled ordered algebra classes. This avoids importing bundled ordered algebra until later downstream. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Order/Group/Nat.lean - theorem NeZero.one_le Modified Mathlib/Algebra/Order/Invertible.lean Modified Mathlib/Algebra/Order/Nonneg/Ring.lean Modified Mathlib/Algebra/Order/Ring/Abs.lean Modified Mathlib/Algebra/Order/Ring/Cast.lean Modified Mathlib/Algebra/Order/Ring/Pow.lean Modified Mathlib/Data/Nat/Cast/Field.lean Modified Mathlib/Data/Nat/Cast/NeZero.lean + theorem NeZero.one_le Renamed Mathlib/Data/Nat/Cast/Order.lean to Mathlib/Data/Nat/Cast/Order/Basic.lean - theorem Nat.abs_cast - theorem Nat.abs_ofNat - theorem Nat.cast_max - theorem Nat.cast_min - theorem Nat.cast_nonneg - theorem Nat.cast_pos - theorem Nat.cast_tsub - theorem Nat.ofNat_nonneg - theorem Nat.ofNat_pos' - theorem Nat.ofNat_pos Added Mathlib/Data/Nat/Cast/Order/Ring.lean + theorem Nat.abs_cast + theorem Nat.abs_ofNat + theorem Nat.cast_max + theorem Nat.cast_min + theorem Nat.cast_nonneg + theorem Nat.cast_pos + theorem Nat.cast_tsub + theorem Nat.ofNat_nonneg + theorem Nat.ofNat_pos' + theorem Nat.ofNat_pos Modified Mathlib/Data/Nat/Cast/SetInterval.lean Modified Mathlib/Data/Nat/Choose/Bounds.lean Modified Mathlib/ModelTheory/Algebra/Field/Basic.lean Modified Mathlib/SetTheory/Cardinal/Basic.lean Modified Mathlib/Tactic/Linarith/Lemmas.lean 2024-07-03 01:30:42 83e2503 chore: update Mathlib dependencies 2024-07-01 (#14320) This PR updates the Mathlib dependencies. ESTIMATED CHANGES 2024-07-03 01:14:13 475fdf4 chore(CategoryTheory/Limits/Shapes/Pullbacks): split into multiple files and add documentation (#14344) In this PR we split the file `CategoryTheory/Limits/Shapes/Pullbacks.lean` into 7 (!) smaller files and add documentation. This contribution was inspired by the AIM workshop "Formalizing algebraic geometry" in June 2024. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Category/Ring/Constructions.lean Modified Mathlib/AlgebraicGeometry/OpenImmersion.lean Modified Mathlib/CategoryTheory/Adjunction/Over.lean Modified Mathlib/CategoryTheory/EffectiveEpi/Coproduct.lean Modified Mathlib/CategoryTheory/Extensive.lean Modified Mathlib/CategoryTheory/Limits/Constructions/BinaryProducts.lean Modified Mathlib/CategoryTheory/Limits/Constructions/EpiMono.lean Modified Mathlib/CategoryTheory/Limits/Constructions/Equalizers.lean Modified Mathlib/CategoryTheory/Limits/Constructions/Over/Products.lean Modified Mathlib/CategoryTheory/Limits/Constructions/Pullbacks.lean Modified Mathlib/CategoryTheory/Limits/Constructions/ZeroObjects.lean Modified Mathlib/CategoryTheory/Limits/EpiMono.lean Modified Mathlib/CategoryTheory/Limits/Lattice.lean Modified Mathlib/CategoryTheory/Limits/Over.lean Modified Mathlib/CategoryTheory/Limits/Preserves/Shapes/Pullbacks.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Diagonal.lean Modified Mathlib/CategoryTheory/Limits/Shapes/DisjointCoproduct.lean Modified Mathlib/CategoryTheory/Limits/Shapes/FiniteLimits.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Images.lean Modified Mathlib/CategoryTheory/Limits/Shapes/KernelPair.lean Added Mathlib/CategoryTheory/Limits/Shapes/Pullback/Assoc.lean + theorem CategoryTheory.Limits.hasPullback_assoc + theorem CategoryTheory.Limits.hasPullback_assoc_symm + theorem CategoryTheory.Limits.hasPushout_assoc + theorem CategoryTheory.Limits.hasPushout_assoc_symm + theorem CategoryTheory.Limits.inl_inl_pushoutAssoc_hom + theorem CategoryTheory.Limits.inl_inr_pushoutAssoc_inv + theorem CategoryTheory.Limits.inl_pushoutAssoc_inv + theorem CategoryTheory.Limits.inr_inl_pushoutAssoc_hom + theorem CategoryTheory.Limits.inr_inr_pushoutAssoc_inv + theorem CategoryTheory.Limits.inr_pushoutAssoc_hom + def CategoryTheory.Limits.pullbackAssocIsPullback + def CategoryTheory.Limits.pullbackAssocSymmIsPullback + theorem CategoryTheory.Limits.pullbackAssoc_hom_fst + theorem CategoryTheory.Limits.pullbackAssoc_hom_snd_fst + theorem CategoryTheory.Limits.pullbackAssoc_hom_snd_snd + theorem CategoryTheory.Limits.pullbackAssoc_inv_fst_fst + theorem CategoryTheory.Limits.pullbackAssoc_inv_fst_snd + theorem CategoryTheory.Limits.pullbackAssoc_inv_snd + def CategoryTheory.Limits.pullbackPullbackLeftIsPullback + def CategoryTheory.Limits.pullbackPullbackRightIsPullback + def CategoryTheory.Limits.pushoutAssocIsPushout + def CategoryTheory.Limits.pushoutAssocSymmIsPushout + def CategoryTheory.Limits.pushoutPushoutLeftIsPushout + def CategoryTheory.Limits.pushoutPushoutRightIsPushout Renamed Mathlib/CategoryTheory/Limits/Shapes/CommSq.lean to Mathlib/CategoryTheory/Limits/Shapes/Pullback/CommSq.lean Added Mathlib/CategoryTheory/Limits/Shapes/Pullback/Cospan.lean + def CategoryTheory.Limits.WalkingCospan.ext + def CategoryTheory.Limits.WalkingSpan.ext + def CategoryTheory.Limits.cospan + def CategoryTheory.Limits.cospanCompIso + theorem CategoryTheory.Limits.cospanCompIso_app_left + theorem CategoryTheory.Limits.cospanCompIso_app_one + theorem CategoryTheory.Limits.cospanCompIso_app_right + theorem CategoryTheory.Limits.cospanCompIso_hom_app_left + theorem CategoryTheory.Limits.cospanCompIso_hom_app_one + theorem CategoryTheory.Limits.cospanCompIso_hom_app_right + theorem CategoryTheory.Limits.cospanCompIso_inv_app_left + theorem CategoryTheory.Limits.cospanCompIso_inv_app_one + theorem CategoryTheory.Limits.cospanCompIso_inv_app_right + def CategoryTheory.Limits.cospanExt + theorem CategoryTheory.Limits.cospanExt_app_left + theorem CategoryTheory.Limits.cospanExt_app_one + theorem CategoryTheory.Limits.cospanExt_app_right + theorem CategoryTheory.Limits.cospanExt_hom_app_left + theorem CategoryTheory.Limits.cospanExt_hom_app_one + theorem CategoryTheory.Limits.cospanExt_hom_app_right + theorem CategoryTheory.Limits.cospanExt_inv_app_left + theorem CategoryTheory.Limits.cospanExt_inv_app_one + theorem CategoryTheory.Limits.cospanExt_inv_app_right + theorem CategoryTheory.Limits.cospan_left + theorem CategoryTheory.Limits.cospan_map_id + theorem CategoryTheory.Limits.cospan_map_inl + theorem CategoryTheory.Limits.cospan_map_inr + theorem CategoryTheory.Limits.cospan_one + theorem CategoryTheory.Limits.cospan_right + def CategoryTheory.Limits.diagramIsoCospan + def CategoryTheory.Limits.diagramIsoSpan + def CategoryTheory.Limits.span + def CategoryTheory.Limits.spanCompIso + theorem CategoryTheory.Limits.spanCompIso_app_left + theorem CategoryTheory.Limits.spanCompIso_app_right + theorem CategoryTheory.Limits.spanCompIso_app_zero + theorem CategoryTheory.Limits.spanCompIso_hom_app_left + theorem CategoryTheory.Limits.spanCompIso_hom_app_right + theorem CategoryTheory.Limits.spanCompIso_hom_app_zero + theorem CategoryTheory.Limits.spanCompIso_inv_app_left + theorem CategoryTheory.Limits.spanCompIso_inv_app_right + theorem CategoryTheory.Limits.spanCompIso_inv_app_zero + def CategoryTheory.Limits.spanExt + theorem CategoryTheory.Limits.spanExt_app_left + theorem CategoryTheory.Limits.spanExt_app_one + theorem CategoryTheory.Limits.spanExt_app_right + theorem CategoryTheory.Limits.spanExt_hom_app_left + theorem CategoryTheory.Limits.spanExt_hom_app_right + theorem CategoryTheory.Limits.spanExt_hom_app_zero + theorem CategoryTheory.Limits.spanExt_inv_app_left + theorem CategoryTheory.Limits.spanExt_inv_app_right + theorem CategoryTheory.Limits.spanExt_inv_app_zero + theorem CategoryTheory.Limits.span_left + theorem CategoryTheory.Limits.span_map_fst + theorem CategoryTheory.Limits.span_map_id + theorem CategoryTheory.Limits.span_map_snd + theorem CategoryTheory.Limits.span_right + theorem CategoryTheory.Limits.span_zero Added Mathlib/CategoryTheory/Limits/Shapes/Pullback/HasPullback.lean + theorem CategoryTheory.Limits.PullbackCone.fst_limit_cone + theorem CategoryTheory.Limits.PullbackCone.snd_limit_cone + theorem CategoryTheory.Limits.PushoutCocone.inl_colimit_cocone + theorem CategoryTheory.Limits.PushoutCocone.inr_colimit_cocone + theorem CategoryTheory.Limits.hasPullback_symmetry + theorem CategoryTheory.Limits.hasPullbacks_of_hasLimit_cospan + theorem CategoryTheory.Limits.hasPushout_symmetry + theorem CategoryTheory.Limits.hasPushouts_of_hasColimit_span + theorem CategoryTheory.Limits.inl_comp_pushoutComparison + theorem CategoryTheory.Limits.inl_comp_pushoutSymmetry_hom + theorem CategoryTheory.Limits.inl_comp_pushoutSymmetry_inv + theorem CategoryTheory.Limits.inr_comp_pushoutComparison + theorem CategoryTheory.Limits.inr_comp_pushoutSymmetry_hom + theorem CategoryTheory.Limits.inr_comp_pushoutSymmetry_inv + theorem CategoryTheory.Limits.map_lift_pullbackComparison + theorem CategoryTheory.Limits.pullback.condition + def CategoryTheory.Limits.pullback.congrHom + theorem CategoryTheory.Limits.pullback.congrHom_inv + def CategoryTheory.Limits.pullback.desc' + theorem CategoryTheory.Limits.pullback.hom_ext + def CategoryTheory.Limits.pullback.lift' + theorem CategoryTheory.Limits.pullback.lift_fst + theorem CategoryTheory.Limits.pullback.lift_snd + theorem CategoryTheory.Limits.pullback.mapDesc_comp + def CategoryTheory.Limits.pullbackComparison + theorem CategoryTheory.Limits.pullbackComparison_comp_fst + theorem CategoryTheory.Limits.pullbackComparison_comp_snd + def CategoryTheory.Limits.pullbackIsPullback + def CategoryTheory.Limits.pullbackSymmetry + theorem CategoryTheory.Limits.pullbackSymmetry_hom_comp_fst + theorem CategoryTheory.Limits.pullbackSymmetry_hom_comp_snd + theorem CategoryTheory.Limits.pullbackSymmetry_inv_comp_fst + theorem CategoryTheory.Limits.pullbackSymmetry_inv_comp_snd + theorem CategoryTheory.Limits.pushout.condition + def CategoryTheory.Limits.pushout.congrHom + theorem CategoryTheory.Limits.pushout.congrHom_inv + theorem CategoryTheory.Limits.pushout.hom_ext + theorem CategoryTheory.Limits.pushout.inl_desc + theorem CategoryTheory.Limits.pushout.inr_desc + theorem CategoryTheory.Limits.pushout.mapLift_comp + def CategoryTheory.Limits.pushoutComparison + theorem CategoryTheory.Limits.pushoutComparison_map_desc + def CategoryTheory.Limits.pushoutIsPushout + def CategoryTheory.Limits.pushoutSymmetry + def CategoryTheory.Limits.walkingCospanOpEquiv + def CategoryTheory.Limits.walkingSpanOpEquiv Added Mathlib/CategoryTheory/Limits/Shapes/Pullback/Iso.lean + theorem CategoryTheory.Limits.hasPullback_of_left_iso + theorem CategoryTheory.Limits.hasPullback_of_right_iso + theorem CategoryTheory.Limits.hasPushout_of_left_iso + theorem CategoryTheory.Limits.hasPushout_of_right_iso + def CategoryTheory.Limits.pullbackConeOfLeftIso + def CategoryTheory.Limits.pullbackConeOfLeftIsoIsLimit + theorem CategoryTheory.Limits.pullbackConeOfLeftIso_fst + theorem CategoryTheory.Limits.pullbackConeOfLeftIso_snd + theorem CategoryTheory.Limits.pullbackConeOfLeftIso_x + theorem CategoryTheory.Limits.pullbackConeOfLeftIso_π_app_left + theorem CategoryTheory.Limits.pullbackConeOfLeftIso_π_app_none + theorem CategoryTheory.Limits.pullbackConeOfLeftIso_π_app_right + def CategoryTheory.Limits.pullbackConeOfRightIso + def CategoryTheory.Limits.pullbackConeOfRightIsoIsLimit + theorem CategoryTheory.Limits.pullbackConeOfRightIso_fst + theorem CategoryTheory.Limits.pullbackConeOfRightIso_snd + theorem CategoryTheory.Limits.pullbackConeOfRightIso_x + theorem CategoryTheory.Limits.pullbackConeOfRightIso_π_app_left + theorem CategoryTheory.Limits.pullbackConeOfRightIso_π_app_none + theorem CategoryTheory.Limits.pullbackConeOfRightIso_π_app_right + def CategoryTheory.Limits.pushoutCoconeOfLeftIso + def CategoryTheory.Limits.pushoutCoconeOfLeftIsoIsLimit + theorem CategoryTheory.Limits.pushoutCoconeOfLeftIso_inl + theorem CategoryTheory.Limits.pushoutCoconeOfLeftIso_inr + theorem CategoryTheory.Limits.pushoutCoconeOfLeftIso_x + theorem CategoryTheory.Limits.pushoutCoconeOfLeftIso_ι_app_left + theorem CategoryTheory.Limits.pushoutCoconeOfLeftIso_ι_app_none + theorem CategoryTheory.Limits.pushoutCoconeOfLeftIso_ι_app_right + def CategoryTheory.Limits.pushoutCoconeOfRightIso + def CategoryTheory.Limits.pushoutCoconeOfRightIsoIsLimit + theorem CategoryTheory.Limits.pushoutCoconeOfRightIso_inl + theorem CategoryTheory.Limits.pushoutCoconeOfRightIso_inr + theorem CategoryTheory.Limits.pushoutCoconeOfRightIso_x + theorem CategoryTheory.Limits.pushoutCoconeOfRightIso_ι_app_left + theorem CategoryTheory.Limits.pushoutCoconeOfRightIso_ι_app_none + theorem CategoryTheory.Limits.pushoutCoconeOfRightIso_ι_app_right Added Mathlib/CategoryTheory/Limits/Shapes/Pullback/Mono.lean + def CategoryTheory.Limits.PullbackCone.isLimitMkIdId + def CategoryTheory.Limits.PullbackCone.isLimitOfCompMono + def CategoryTheory.Limits.PullbackCone.isLimitOfFactors + theorem CategoryTheory.Limits.PullbackCone.mono_fst_of_is_pullback_of_mono + theorem CategoryTheory.Limits.PullbackCone.mono_of_isLimitMkIdId + theorem CategoryTheory.Limits.PullbackCone.mono_snd_of_is_pullback_of_mono + theorem CategoryTheory.Limits.PushoutCocone.epi_inl_of_is_pushout_of_epi + theorem CategoryTheory.Limits.PushoutCocone.epi_inr_of_is_pushout_of_epi + theorem CategoryTheory.Limits.PushoutCocone.epi_of_isColimitMkIdId + def CategoryTheory.Limits.PushoutCocone.isColimitMkIdId + def CategoryTheory.Limits.PushoutCocone.isColimitOfEpiComp + def CategoryTheory.Limits.PushoutCocone.isColimitOfFactors + theorem CategoryTheory.Limits.fst_eq_snd_of_mono_eq + theorem CategoryTheory.Limits.inl_eq_inr_of_epi_eq + theorem CategoryTheory.Limits.pullbackSymmetry_hom_of_mono_eq + theorem CategoryTheory.Limits.pullback_symmetry_hom_of_epi_eq Added Mathlib/CategoryTheory/Limits/Shapes/Pullback/Pasting.lean + def CategoryTheory.Limits.bigSquareIsPullback + def CategoryTheory.Limits.bigSquareIsPushout + theorem CategoryTheory.Limits.inl_inl_pushoutLeftPushoutInrIso_hom + theorem CategoryTheory.Limits.inl_pushoutLeftPushoutInrIso_inv + theorem CategoryTheory.Limits.inr_inl_pushoutLeftPushoutInrIso_hom + theorem CategoryTheory.Limits.inr_pushoutLeftPushoutInrIso_hom + theorem CategoryTheory.Limits.inr_pushoutLeftPushoutInrIso_inv + def CategoryTheory.Limits.leftSquareIsPullback + theorem CategoryTheory.Limits.pullbackRightPullbackFstIso_hom_fst + theorem CategoryTheory.Limits.pullbackRightPullbackFstIso_hom_snd + theorem CategoryTheory.Limits.pullbackRightPullbackFstIso_inv_fst + theorem CategoryTheory.Limits.pullbackRightPullbackFstIso_inv_snd_fst + theorem CategoryTheory.Limits.pullbackRightPullbackFstIso_inv_snd_snd + def CategoryTheory.Limits.rightSquareIsPushout Added Mathlib/CategoryTheory/Limits/Shapes/Pullback/PullbackCone.lean + def CategoryTheory.Limits.Cocone.ofPushoutCocone + def CategoryTheory.Limits.Cone.ofPullbackCone + theorem CategoryTheory.Limits.PullbackCone.IsLimit.hom_ext + def CategoryTheory.Limits.PullbackCone.IsLimit.lift' + def CategoryTheory.Limits.PullbackCone.IsLimit.lift + theorem CategoryTheory.Limits.PullbackCone.IsLimit.lift_fst + theorem CategoryTheory.Limits.PullbackCone.IsLimit.lift_snd + def CategoryTheory.Limits.PullbackCone.IsLimit.mk + theorem CategoryTheory.Limits.PullbackCone.condition + theorem CategoryTheory.Limits.PullbackCone.condition_one + theorem CategoryTheory.Limits.PullbackCone.equalizer_ext + def CategoryTheory.Limits.PullbackCone.ext + def CategoryTheory.Limits.PullbackCone.flip + def CategoryTheory.Limits.PullbackCone.flipFlipIso + def CategoryTheory.Limits.PullbackCone.flipIsLimit + theorem CategoryTheory.Limits.PullbackCone.flip_fst + theorem CategoryTheory.Limits.PullbackCone.flip_pt + theorem CategoryTheory.Limits.PullbackCone.flip_snd + def CategoryTheory.Limits.PullbackCone.isLimitAux' + def CategoryTheory.Limits.PullbackCone.isLimitAux + def CategoryTheory.Limits.PullbackCone.isLimitOfFlip + def CategoryTheory.Limits.PullbackCone.isoMk + def CategoryTheory.Limits.PullbackCone.mk + theorem CategoryTheory.Limits.PullbackCone.mk_fst + theorem CategoryTheory.Limits.PullbackCone.mk_snd + theorem CategoryTheory.Limits.PullbackCone.mk_π_app_left + theorem CategoryTheory.Limits.PullbackCone.mk_π_app_one + theorem CategoryTheory.Limits.PullbackCone.mk_π_app_right + def CategoryTheory.Limits.PullbackCone.ofCone + theorem CategoryTheory.Limits.PullbackCone.π_app_left + theorem CategoryTheory.Limits.PullbackCone.π_app_right + def CategoryTheory.Limits.PushoutCocone.IsColimit.desc' + def CategoryTheory.Limits.PushoutCocone.IsColimit.desc + theorem CategoryTheory.Limits.PushoutCocone.IsColimit.hom_ext + theorem CategoryTheory.Limits.PushoutCocone.IsColimit.inl_desc + theorem CategoryTheory.Limits.PushoutCocone.IsColimit.inr_desc + def CategoryTheory.Limits.PushoutCocone.IsColimit.mk + theorem CategoryTheory.Limits.PushoutCocone.coequalizer_ext + theorem CategoryTheory.Limits.PushoutCocone.condition + theorem CategoryTheory.Limits.PushoutCocone.condition_zero + def CategoryTheory.Limits.PushoutCocone.ext + def CategoryTheory.Limits.PushoutCocone.flip + def CategoryTheory.Limits.PushoutCocone.flipFlipIso + def CategoryTheory.Limits.PushoutCocone.flipIsColimit + theorem CategoryTheory.Limits.PushoutCocone.flip_inl + theorem CategoryTheory.Limits.PushoutCocone.flip_inr + theorem CategoryTheory.Limits.PushoutCocone.flip_pt + def CategoryTheory.Limits.PushoutCocone.isColimitAux' + def CategoryTheory.Limits.PushoutCocone.isColimitAux + def CategoryTheory.Limits.PushoutCocone.isColimitOfFlip + def CategoryTheory.Limits.PushoutCocone.isoMk + def CategoryTheory.Limits.PushoutCocone.mk + theorem CategoryTheory.Limits.PushoutCocone.mk_inl + theorem CategoryTheory.Limits.PushoutCocone.mk_inr + theorem CategoryTheory.Limits.PushoutCocone.mk_ι_app_left + theorem CategoryTheory.Limits.PushoutCocone.mk_ι_app_right + theorem CategoryTheory.Limits.PushoutCocone.mk_ι_app_zero + def CategoryTheory.Limits.PushoutCocone.ofCocone + theorem CategoryTheory.Limits.PushoutCocone.ι_app_left + theorem CategoryTheory.Limits.PushoutCocone.ι_app_right Deleted Mathlib/CategoryTheory/Limits/Shapes/Pullbacks.lean - def CategoryTheory.Limits.Cocone.ofPushoutCocone - def CategoryTheory.Limits.Cone.ofPullbackCone - theorem CategoryTheory.Limits.PullbackCone.IsLimit.hom_ext - def CategoryTheory.Limits.PullbackCone.IsLimit.lift' - def CategoryTheory.Limits.PullbackCone.IsLimit.lift - theorem CategoryTheory.Limits.PullbackCone.IsLimit.lift_fst - theorem CategoryTheory.Limits.PullbackCone.IsLimit.lift_snd - def CategoryTheory.Limits.PullbackCone.IsLimit.mk - theorem CategoryTheory.Limits.PullbackCone.condition - theorem CategoryTheory.Limits.PullbackCone.condition_one - theorem CategoryTheory.Limits.PullbackCone.equalizer_ext - def CategoryTheory.Limits.PullbackCone.ext - def CategoryTheory.Limits.PullbackCone.flip - def CategoryTheory.Limits.PullbackCone.flipFlipIso - def CategoryTheory.Limits.PullbackCone.flipIsLimit - theorem CategoryTheory.Limits.PullbackCone.flip_fst - theorem CategoryTheory.Limits.PullbackCone.flip_pt - theorem CategoryTheory.Limits.PullbackCone.flip_snd - theorem CategoryTheory.Limits.PullbackCone.fst_colimit_cocone - def CategoryTheory.Limits.PullbackCone.isLimitAux' - def CategoryTheory.Limits.PullbackCone.isLimitAux - def CategoryTheory.Limits.PullbackCone.isLimitMkIdId - def CategoryTheory.Limits.PullbackCone.isLimitOfCompMono - def CategoryTheory.Limits.PullbackCone.isLimitOfFactors - def CategoryTheory.Limits.PullbackCone.isLimitOfFlip - def CategoryTheory.Limits.PullbackCone.isoMk - def CategoryTheory.Limits.PullbackCone.mk - theorem CategoryTheory.Limits.PullbackCone.mk_fst - theorem CategoryTheory.Limits.PullbackCone.mk_snd - theorem CategoryTheory.Limits.PullbackCone.mk_π_app_left - theorem CategoryTheory.Limits.PullbackCone.mk_π_app_one - theorem CategoryTheory.Limits.PullbackCone.mk_π_app_right - theorem CategoryTheory.Limits.PullbackCone.mono_fst_of_is_pullback_of_mono - theorem CategoryTheory.Limits.PullbackCone.mono_of_isLimitMkIdId - theorem CategoryTheory.Limits.PullbackCone.mono_snd_of_is_pullback_of_mono - def CategoryTheory.Limits.PullbackCone.ofCone - theorem CategoryTheory.Limits.PullbackCone.snd_colimit_cocone - theorem CategoryTheory.Limits.PullbackCone.π_app_left - theorem CategoryTheory.Limits.PullbackCone.π_app_right - def CategoryTheory.Limits.PushoutCocone.IsColimit.desc' - def CategoryTheory.Limits.PushoutCocone.IsColimit.desc - theorem CategoryTheory.Limits.PushoutCocone.IsColimit.hom_ext - theorem CategoryTheory.Limits.PushoutCocone.IsColimit.inl_desc - theorem CategoryTheory.Limits.PushoutCocone.IsColimit.inr_desc - def CategoryTheory.Limits.PushoutCocone.IsColimit.mk - theorem CategoryTheory.Limits.PushoutCocone.coequalizer_ext - theorem CategoryTheory.Limits.PushoutCocone.condition - theorem CategoryTheory.Limits.PushoutCocone.condition_zero - theorem CategoryTheory.Limits.PushoutCocone.epi_inl_of_is_pushout_of_epi - theorem CategoryTheory.Limits.PushoutCocone.epi_inr_of_is_pushout_of_epi - theorem CategoryTheory.Limits.PushoutCocone.epi_of_isColimitMkIdId - def CategoryTheory.Limits.PushoutCocone.ext - def CategoryTheory.Limits.PushoutCocone.flip - def CategoryTheory.Limits.PushoutCocone.flipFlipIso - def CategoryTheory.Limits.PushoutCocone.flipIsColimit - theorem CategoryTheory.Limits.PushoutCocone.flip_inl - theorem CategoryTheory.Limits.PushoutCocone.flip_inr - theorem CategoryTheory.Limits.PushoutCocone.flip_pt - theorem CategoryTheory.Limits.PushoutCocone.inl_colimit_cocone - theorem CategoryTheory.Limits.PushoutCocone.inr_colimit_cocone - def CategoryTheory.Limits.PushoutCocone.isColimitAux' - def CategoryTheory.Limits.PushoutCocone.isColimitAux - def CategoryTheory.Limits.PushoutCocone.isColimitMkIdId - def CategoryTheory.Limits.PushoutCocone.isColimitOfEpiComp - def CategoryTheory.Limits.PushoutCocone.isColimitOfFactors - def CategoryTheory.Limits.PushoutCocone.isColimitOfFlip - def CategoryTheory.Limits.PushoutCocone.isoMk - def CategoryTheory.Limits.PushoutCocone.mk - theorem CategoryTheory.Limits.PushoutCocone.mk_inl - theorem CategoryTheory.Limits.PushoutCocone.mk_inr - theorem CategoryTheory.Limits.PushoutCocone.mk_ι_app_left - theorem CategoryTheory.Limits.PushoutCocone.mk_ι_app_right - theorem CategoryTheory.Limits.PushoutCocone.mk_ι_app_zero - def CategoryTheory.Limits.PushoutCocone.ofCocone - theorem CategoryTheory.Limits.PushoutCocone.ι_app_left - theorem CategoryTheory.Limits.PushoutCocone.ι_app_right - def CategoryTheory.Limits.WalkingCospan.ext - def CategoryTheory.Limits.WalkingSpan.ext - def CategoryTheory.Limits.bigSquareIsPullback - def CategoryTheory.Limits.bigSquareIsPushout - def CategoryTheory.Limits.cospan - def CategoryTheory.Limits.cospanCompIso - theorem CategoryTheory.Limits.cospanCompIso_app_left - theorem CategoryTheory.Limits.cospanCompIso_app_one - theorem CategoryTheory.Limits.cospanCompIso_app_right - theorem CategoryTheory.Limits.cospanCompIso_hom_app_left - theorem CategoryTheory.Limits.cospanCompIso_hom_app_one - theorem CategoryTheory.Limits.cospanCompIso_hom_app_right - theorem CategoryTheory.Limits.cospanCompIso_inv_app_left - theorem CategoryTheory.Limits.cospanCompIso_inv_app_one - theorem CategoryTheory.Limits.cospanCompIso_inv_app_right - def CategoryTheory.Limits.cospanExt - theorem CategoryTheory.Limits.cospanExt_app_left - theorem CategoryTheory.Limits.cospanExt_app_one - theorem CategoryTheory.Limits.cospanExt_app_right - theorem CategoryTheory.Limits.cospanExt_hom_app_left - theorem CategoryTheory.Limits.cospanExt_hom_app_one - theorem CategoryTheory.Limits.cospanExt_hom_app_right - theorem CategoryTheory.Limits.cospanExt_inv_app_left - theorem CategoryTheory.Limits.cospanExt_inv_app_one - theorem CategoryTheory.Limits.cospanExt_inv_app_right - theorem CategoryTheory.Limits.cospan_left - theorem CategoryTheory.Limits.cospan_map_id - theorem CategoryTheory.Limits.cospan_map_inl - theorem CategoryTheory.Limits.cospan_map_inr - theorem CategoryTheory.Limits.cospan_one - theorem CategoryTheory.Limits.cospan_right - def CategoryTheory.Limits.diagramIsoCospan - def CategoryTheory.Limits.diagramIsoSpan - theorem CategoryTheory.Limits.fst_eq_snd_of_mono_eq - theorem CategoryTheory.Limits.hasPullback_assoc - theorem CategoryTheory.Limits.hasPullback_assoc_symm - theorem CategoryTheory.Limits.hasPullback_of_left_iso - theorem CategoryTheory.Limits.hasPullback_of_right_iso - theorem CategoryTheory.Limits.hasPullback_symmetry - theorem CategoryTheory.Limits.hasPullbacks_of_hasLimit_cospan - theorem CategoryTheory.Limits.hasPushout_assoc - theorem CategoryTheory.Limits.hasPushout_assoc_symm - theorem CategoryTheory.Limits.hasPushout_of_left_iso - theorem CategoryTheory.Limits.hasPushout_of_right_iso - theorem CategoryTheory.Limits.hasPushout_symmetry - theorem CategoryTheory.Limits.hasPushouts_of_hasColimit_span - theorem CategoryTheory.Limits.inl_comp_pushoutComparison - theorem CategoryTheory.Limits.inl_comp_pushoutSymmetry_hom - theorem CategoryTheory.Limits.inl_comp_pushoutSymmetry_inv - theorem CategoryTheory.Limits.inl_eq_inr_of_epi_eq - theorem CategoryTheory.Limits.inl_inl_pushoutAssoc_hom - theorem CategoryTheory.Limits.inl_inl_pushoutLeftPushoutInrIso_hom - theorem CategoryTheory.Limits.inl_inr_pushoutAssoc_inv - theorem CategoryTheory.Limits.inl_pushoutAssoc_inv - theorem CategoryTheory.Limits.inl_pushoutLeftPushoutInrIso_inv - theorem CategoryTheory.Limits.inr_comp_pushoutComparison - theorem CategoryTheory.Limits.inr_comp_pushoutSymmetry_hom - theorem CategoryTheory.Limits.inr_comp_pushoutSymmetry_inv - theorem CategoryTheory.Limits.inr_inl_pushoutAssoc_hom - theorem CategoryTheory.Limits.inr_inl_pushoutLeftPushoutInrIso_hom - theorem CategoryTheory.Limits.inr_inr_pushoutAssoc_inv - theorem CategoryTheory.Limits.inr_pushoutAssoc_hom - theorem CategoryTheory.Limits.inr_pushoutLeftPushoutInrIso_hom - theorem CategoryTheory.Limits.inr_pushoutLeftPushoutInrIso_inv - def CategoryTheory.Limits.leftSquareIsPullback - theorem CategoryTheory.Limits.map_lift_pullbackComparison - theorem CategoryTheory.Limits.pullback.condition - def CategoryTheory.Limits.pullback.congrHom - theorem CategoryTheory.Limits.pullback.congrHom_inv - def CategoryTheory.Limits.pullback.desc' - theorem CategoryTheory.Limits.pullback.hom_ext - def CategoryTheory.Limits.pullback.lift' - theorem CategoryTheory.Limits.pullback.lift_fst - theorem CategoryTheory.Limits.pullback.lift_snd - theorem CategoryTheory.Limits.pullback.mapDesc_comp - def CategoryTheory.Limits.pullbackAssocIsPullback - def CategoryTheory.Limits.pullbackAssocSymmIsPullback - theorem CategoryTheory.Limits.pullbackAssoc_hom_fst - theorem CategoryTheory.Limits.pullbackAssoc_hom_snd_fst - theorem CategoryTheory.Limits.pullbackAssoc_hom_snd_snd - theorem CategoryTheory.Limits.pullbackAssoc_inv_fst_fst - theorem CategoryTheory.Limits.pullbackAssoc_inv_fst_snd - theorem CategoryTheory.Limits.pullbackAssoc_inv_snd - def CategoryTheory.Limits.pullbackComparison - theorem CategoryTheory.Limits.pullbackComparison_comp_fst - theorem CategoryTheory.Limits.pullbackComparison_comp_snd - def CategoryTheory.Limits.pullbackConeOfLeftIso - def CategoryTheory.Limits.pullbackConeOfLeftIsoIsLimit - theorem CategoryTheory.Limits.pullbackConeOfLeftIso_fst - theorem CategoryTheory.Limits.pullbackConeOfLeftIso_snd - theorem CategoryTheory.Limits.pullbackConeOfLeftIso_x - theorem CategoryTheory.Limits.pullbackConeOfLeftIso_π_app_left - theorem CategoryTheory.Limits.pullbackConeOfLeftIso_π_app_none - theorem CategoryTheory.Limits.pullbackConeOfLeftIso_π_app_right - def CategoryTheory.Limits.pullbackConeOfRightIso - def CategoryTheory.Limits.pullbackConeOfRightIsoIsLimit - theorem CategoryTheory.Limits.pullbackConeOfRightIso_fst - theorem CategoryTheory.Limits.pullbackConeOfRightIso_snd - theorem CategoryTheory.Limits.pullbackConeOfRightIso_x - theorem CategoryTheory.Limits.pullbackConeOfRightIso_π_app_left - theorem CategoryTheory.Limits.pullbackConeOfRightIso_π_app_none - theorem CategoryTheory.Limits.pullbackConeOfRightIso_π_app_right - def CategoryTheory.Limits.pullbackIsPullback - def CategoryTheory.Limits.pullbackPullbackLeftIsPullback - def CategoryTheory.Limits.pullbackPullbackRightIsPullback - theorem CategoryTheory.Limits.pullbackRightPullbackFstIso_hom_fst - theorem CategoryTheory.Limits.pullbackRightPullbackFstIso_hom_snd - theorem CategoryTheory.Limits.pullbackRightPullbackFstIso_inv_fst - theorem CategoryTheory.Limits.pullbackRightPullbackFstIso_inv_snd_fst - theorem CategoryTheory.Limits.pullbackRightPullbackFstIso_inv_snd_snd - def CategoryTheory.Limits.pullbackSymmetry - theorem CategoryTheory.Limits.pullbackSymmetry_hom_comp_fst - theorem CategoryTheory.Limits.pullbackSymmetry_hom_comp_snd - theorem CategoryTheory.Limits.pullbackSymmetry_hom_of_mono_eq - theorem CategoryTheory.Limits.pullbackSymmetry_inv_comp_fst - theorem CategoryTheory.Limits.pullbackSymmetry_inv_comp_snd - theorem CategoryTheory.Limits.pullback_symmetry_hom_of_epi_eq - theorem CategoryTheory.Limits.pushout.condition - def CategoryTheory.Limits.pushout.congrHom - theorem CategoryTheory.Limits.pushout.congrHom_inv - theorem CategoryTheory.Limits.pushout.hom_ext - theorem CategoryTheory.Limits.pushout.inl_desc - theorem CategoryTheory.Limits.pushout.inr_desc - theorem CategoryTheory.Limits.pushout.mapLift_comp - def CategoryTheory.Limits.pushoutAssocIsPushout - def CategoryTheory.Limits.pushoutAssocSymmIsPushout - def CategoryTheory.Limits.pushoutCoconeOfLeftIso - def CategoryTheory.Limits.pushoutCoconeOfLeftIsoIsLimit - theorem CategoryTheory.Limits.pushoutCoconeOfLeftIso_inl - theorem CategoryTheory.Limits.pushoutCoconeOfLeftIso_inr - theorem CategoryTheory.Limits.pushoutCoconeOfLeftIso_x - theorem CategoryTheory.Limits.pushoutCoconeOfLeftIso_ι_app_left - theorem CategoryTheory.Limits.pushoutCoconeOfLeftIso_ι_app_none - theorem CategoryTheory.Limits.pushoutCoconeOfLeftIso_ι_app_right - def CategoryTheory.Limits.pushoutCoconeOfRightIso - def CategoryTheory.Limits.pushoutCoconeOfRightIsoIsLimit - theorem CategoryTheory.Limits.pushoutCoconeOfRightIso_inl - theorem CategoryTheory.Limits.pushoutCoconeOfRightIso_inr - theorem CategoryTheory.Limits.pushoutCoconeOfRightIso_x - theorem CategoryTheory.Limits.pushoutCoconeOfRightIso_ι_app_left - theorem CategoryTheory.Limits.pushoutCoconeOfRightIso_ι_app_none - theorem CategoryTheory.Limits.pushoutCoconeOfRightIso_ι_app_right - def CategoryTheory.Limits.pushoutComparison - theorem CategoryTheory.Limits.pushoutComparison_map_desc - def CategoryTheory.Limits.pushoutIsPushout - def CategoryTheory.Limits.pushoutPushoutLeftIsPushout - def CategoryTheory.Limits.pushoutPushoutRightIsPushout - def CategoryTheory.Limits.pushoutSymmetry - def CategoryTheory.Limits.rightSquareIsPushout - def CategoryTheory.Limits.span - def CategoryTheory.Limits.spanCompIso - theorem CategoryTheory.Limits.spanCompIso_app_left - theorem CategoryTheory.Limits.spanCompIso_app_right - theorem CategoryTheory.Limits.spanCompIso_app_zero - theorem CategoryTheory.Limits.spanCompIso_hom_app_left - theorem CategoryTheory.Limits.spanCompIso_hom_app_right - theorem CategoryTheory.Limits.spanCompIso_hom_app_zero - theorem CategoryTheory.Limits.spanCompIso_inv_app_left - theorem CategoryTheory.Limits.spanCompIso_inv_app_right - theorem CategoryTheory.Limits.spanCompIso_inv_app_zero - def CategoryTheory.Limits.spanExt - theorem CategoryTheory.Limits.spanExt_app_left - theorem CategoryTheory.Limits.spanExt_app_one - theorem CategoryTheory.Limits.spanExt_app_right - theorem CategoryTheory.Limits.spanExt_hom_app_left - theorem CategoryTheory.Limits.spanExt_hom_app_right - theorem CategoryTheory.Limits.spanExt_hom_app_zero - theorem CategoryTheory.Limits.spanExt_inv_app_left - theorem CategoryTheory.Limits.spanExt_inv_app_right - theorem CategoryTheory.Limits.spanExt_inv_app_zero - theorem CategoryTheory.Limits.span_left - theorem CategoryTheory.Limits.span_map_fst - theorem CategoryTheory.Limits.span_map_id - theorem CategoryTheory.Limits.span_map_snd - theorem CategoryTheory.Limits.span_right - theorem CategoryTheory.Limits.span_zero - def CategoryTheory.Limits.walkingCospanOpEquiv - def CategoryTheory.Limits.walkingSpanOpEquiv Modified Mathlib/CategoryTheory/Limits/Shapes/RegularMono.lean Modified Mathlib/CategoryTheory/Limits/VanKampen.lean Modified Mathlib/CategoryTheory/MorphismProperty/Limits.lean Modified Mathlib/CategoryTheory/Sites/Grothendieck.lean Modified Mathlib/CategoryTheory/Sites/IsSheafFor.lean Modified Mathlib/CategoryTheory/Sites/Preserves.lean Modified Mathlib/CategoryTheory/Sites/Sieves.lean Modified Mathlib/CategoryTheory/SmallObject/Construction.lean Modified Mathlib/Topology/Category/CompHaus/Limits.lean Modified Mathlib/Topology/Category/Profinite/Limits.lean Modified scripts/noshake.json 2024-07-02 22:51:20 4180b90 refactor(LinearAlgebra,RingTheory): Replace `Fintype.card` with `Nat.card` (#13637) This PR replaces a few occurrences of `Fintype.card` with `Nat.card` in the `LinearAlgebra` and `RingTheory` folders. ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/Isomorphisms.lean +/- theorem Submodule.card_quotient_mul_card_quotient Modified Mathlib/LinearAlgebra/Quotient.lean +/- theorem Submodule.card_eq_card_quotient_mul_card Modified Mathlib/NumberTheory/Cyclotomic/Rat.lean Modified Mathlib/RingTheory/Ideal/Norm.lean +/- theorem Submodule.cardQuot_apply +/- theorem cardQuot_mul +/- theorem cardQuot_mul_of_coprime +/- theorem cardQuot_pow_of_prime 2024-07-02 19:19:44 7733e60 feat(CategoryTheory): Split equalizers (#14170) Defines what it means for a triple of morphisms `f g : X ⟶ Y`, `ι : W ⟶ X` to be a split equalizer. In addition, shows that every split equalizer is an equalizer and absolute. This dualises everything in [Mathlib.CategoryTheory.Limits.Shapes.SplitCoequalizer](https://leanprover-community.github.io/mathlib4_docs/Mathlib/CategoryTheory/Limits/Shapes/SplitCoequalizer.html). This contribution was created as part of the AIM workshop "Formalizing Algebraic Geometry" in June 2024. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/CategoryTheory/Limits/Shapes/SplitCoequalizer.lean Added Mathlib/CategoryTheory/Limits/Shapes/SplitEqualizer.lean + def CategoryTheory.IsSplitEqualizer.asFork + theorem CategoryTheory.IsSplitEqualizer.asFork_ι + def CategoryTheory.IsSplitEqualizer.isEqualizer + def CategoryTheory.IsSplitEqualizer.map + structure CategoryTheory.IsSplitEqualizer 2024-07-02 19:10:31 3a4610b refactor: enforce the predicate on the `ContinuousFunctionalCalculus` is nontrivial (#14100) add a condition to the unital and non-unital continuous functional calculus class which ensures that the predicate is nontrivial by requiring `p 0` to hold. This guarantees in unital algebras that `p (algebraMap R A r)` holds, which is about all one can expect given that sometimes `p := IsStarNormal`. ESTIMATED CHANGES Modified Mathlib/Analysis/NormedSpace/Star/ContinuousFunctionalCalculus/Instances.lean Modified Mathlib/Analysis/NormedSpace/Star/ContinuousFunctionalCalculus/Restrict.lean Modified Mathlib/Topology/ContinuousFunction/FunctionalCalculus.lean +/- theorem cfc_predicate + theorem cfc_predicate_algebraMap + theorem cfc_predicate_one + theorem cfc_predicate_zero Modified Mathlib/Topology/ContinuousFunction/NonUnitalFunctionalCalculus.lean +/- theorem cfcₙ_predicate + theorem cfcₙ_predicate_zero 2024-07-02 17:55:06 5db5b49 chore: rm scripts/check_silent.sh (#14347) Split out from #14314 as @grunweg wasn't certain of the impact. We no longer use this script (verified by `grep`), instead relying on `lake`s `--wfail` option. ESTIMATED CHANGES Deleted scripts/check_silent.sh 2024-07-02 17:55:05 82fbd1d feat: small types of morphisms in the localized category (#13639) Given a class of morphisms `W : MorphismProperty C`, and two objects `X` and `Y`, we introduce a type-class `HasSmallLocalizedHom.{w} W X Y` which expresses that in the localized category with respect to `W`, the type of morphisms from `X` to `Y` is `w`-small for a certain universe `w`. Under this assumption, we define `SmallHom.{w} W X Y : Type w` as the shrunk type. For any localization functor `L : C ⥤ D` for `W`, we provide a bijection `SmallHom.equiv.{w} W L : SmallHom.{w} W X Y ≃ (L.obj X ⟶ L.obj Y)` that is compatible with the composition of morphisms. This shall be used in the refactor of `Ext`-groups in abelian categories. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/CategoryTheory/Equivalence.lean + def CategoryTheory.Equivalence.fullyFaithfulFunctor + def CategoryTheory.Equivalence.fullyFaithfulInverse Added Mathlib/CategoryTheory/Localization/SmallHom.lean + theorem CategoryTheory.Localization.SmallHom.comp_assoc + theorem CategoryTheory.Localization.SmallHom.comp_mk_id + theorem CategoryTheory.Localization.SmallHom.equiv_comp + theorem CategoryTheory.Localization.SmallHom.equiv_equiv_symm + theorem CategoryTheory.Localization.SmallHom.equiv_mk + theorem CategoryTheory.Localization.SmallHom.equiv_mkInv + theorem CategoryTheory.Localization.SmallHom.mkInv_comp_mk + theorem CategoryTheory.Localization.SmallHom.mk_comp_mk + theorem CategoryTheory.Localization.SmallHom.mk_comp_mkInv + theorem CategoryTheory.Localization.SmallHom.mk_id_comp + def CategoryTheory.Localization.SmallHom + theorem CategoryTheory.Localization.hasSmallLocalizedHom_iff + theorem CategoryTheory.Localization.hasSmallLocalizedHom_iff_of_isos + theorem CategoryTheory.Localization.hasSmallLocalizedHom_of_isLocalization + theorem CategoryTheory.Localization.small_of_hasSmallLocalizedHom + theorem CategoryTheory.LocalizerMorphism.equiv_smallHomMap + theorem CategoryTheory.LocalizerMorphism.smallHomMap_comp 2024-07-02 17:45:48 d490030 chore: delete obsolete porting scripts (#14346) This is a more conservative version of #14314, deleting just the scripts that we should have deleted a year ago when the port finished. ESTIMATED CHANGES Deleted scripts/align-import.py Deleted scripts/align.py Deleted scripts/benchmark.sh Deleted scripts/make_port_status.py Deleted scripts/start_port.sh 2024-07-02 14:31:24 d180e67 refactor(Topology/Category): add CompHausLike.Limits (#13905) This is the first part of the refactor of CompHaus and friends (adding the new API which will eventually be used to redefine the categories of compact Hausdorff spaces, see https://github.com/leanprover-community/mathlib4/pull/12930) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Topology/Category/CompHausLike/Limits.lean + theorem CompHausLike.Sigma.openEmbedding_ι + theorem CompHausLike.finitaryExtensive + def CompHausLike.finiteCoproduct.desc + theorem CompHausLike.finiteCoproduct.hom_ext + def CompHausLike.finiteCoproduct.isColimit + theorem CompHausLike.finiteCoproduct.openEmbedding_ι + def CompHausLike.finiteCoproduct.ι + theorem CompHausLike.finiteCoproduct.ι_desc + theorem CompHausLike.finiteCoproduct.ι_desc_apply + theorem CompHausLike.finiteCoproduct.ι_injective + theorem CompHausLike.finiteCoproduct.ι_jointly_surjective + def CompHausLike.finiteCoproduct + theorem CompHausLike.hasPullbacksOfInclusions + def CompHausLike.isTerminalPUnit + theorem CompHausLike.pullback.condition + def CompHausLike.pullback.cone + def CompHausLike.pullback.fst + theorem CompHausLike.pullback.hom_ext + def CompHausLike.pullback.isLimit + def CompHausLike.pullback.lift + theorem CompHausLike.pullback.lift_fst + theorem CompHausLike.pullback.lift_snd + def CompHausLike.pullback.snd + def CompHausLike.pullback 2024-07-02 14:16:39 2f44fc3 feat: add pointwise actions on ideals (#13294) I've copied the API from `Subring`, but some proofs from there don't work here due to `Ideal.map` including an extra `Ideal.span`. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/RingTheory/Ideal/Pointwise.lean + theorem Ideal.mem_inv_pointwise_smul_iff + theorem Ideal.mem_pointwise_smul_iff_inv_smul_mem + theorem Ideal.pointwise_smul_def + theorem Ideal.pointwise_smul_eq_comap + theorem Ideal.pointwise_smul_le_pointwise_smul_iff + theorem Ideal.pointwise_smul_subset_iff + theorem Ideal.pointwise_smul_toAddSubGroup + theorem Ideal.pointwise_smul_toAddSubmonoid + theorem Ideal.smul_bot + theorem Ideal.smul_closure + theorem Ideal.smul_mem_pointwise_smul + theorem Ideal.smul_mem_pointwise_smul_iff + theorem Ideal.smul_sup + theorem Ideal.subset_pointwise_smul_iff 2024-07-02 12:44:05 6f4600c chore (Algebra.Order.Monoid.Unbundled): don't used bundled structured in unbundled (#14351) Using bundled ordered algebra in `Algebra.Order.Monoid.Unbundled.Pow` seems to defeat the purpose. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Bounds.lean Modified Mathlib/Algebra/Order/BigOperators/Group/List.lean Modified Mathlib/Algebra/Order/BigOperators/Group/Multiset.lean Modified Mathlib/Algebra/Order/Group/DenselyOrdered.lean Modified Mathlib/Algebra/Order/Monoid/OrderDual.lean Added Mathlib/Algebra/Order/Monoid/Unbundled/OrderDual.lean Modified Mathlib/Algebra/Order/Monoid/Unbundled/Pow.lean Modified Mathlib/Algebra/Order/Monoid/WithTop.lean Modified Mathlib/Order/ConditionallyCompleteLattice/Group.lean 2024-07-02 09:17:02 73d9fbb chore: remove obsolete porting notes (#14349) I should have removed these porting notes in * #13982, but the replacement had been done automatically. Luckily, Ruben noticed and flagged this while/after the PR was merging, but at a time when I did not have the capacity to revisit! ESTIMATED CHANGES Modified Mathlib/Algebra/Free.lean Modified Mathlib/Algebra/MvPolynomial/Supported.lean Modified Mathlib/Algebra/Order/Ring/WithTop.lean Modified Mathlib/Algebra/PUnitInstances.lean Modified Mathlib/Algebra/Ring/BooleanRing.lean Modified Mathlib/Algebra/Ring/CentroidHom.lean Modified Mathlib/Algebra/Star/Free.lean Modified Mathlib/Analysis/Quaternion.lean Modified Mathlib/Analysis/SpecialFunctions/Complex/Circle.lean Modified Mathlib/Analysis/SpecialFunctions/Complex/Log.lean Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Deriv.lean Modified Mathlib/CategoryTheory/EqToHom.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Multiequalizer.lean Modified Mathlib/Data/Complex/Basic.lean Modified Mathlib/Data/Complex/Exponential.lean Modified Mathlib/Data/ENat/Basic.lean Modified Mathlib/Data/Finset/Basic.lean Modified Mathlib/Data/Finset/Image.lean Modified Mathlib/Data/Finset/NatAntidiagonal.lean Modified Mathlib/Data/Finsupp/Antidiagonal.lean Modified Mathlib/Data/List/Basic.lean Modified Mathlib/Data/Matrix/Basic.lean Modified Mathlib/Data/Matrix/Notation.lean Modified Mathlib/Data/Multiset/Basic.lean Modified Mathlib/Data/Multiset/FinsetOps.lean Modified Mathlib/Data/NNRat/Defs.lean Modified Mathlib/Data/Sum/Interval.lean Modified Mathlib/Data/Vector/Defs.lean Modified Mathlib/Data/Vector3.lean Modified Mathlib/GroupTheory/FreeAbelianGroup.lean Modified Mathlib/GroupTheory/MonoidLocalization.lean Modified Mathlib/GroupTheory/OrderOfElement.lean Modified Mathlib/GroupTheory/Perm/Fin.lean Modified Mathlib/LinearAlgebra/BilinearForm/TensorProduct.lean Modified Mathlib/LinearAlgebra/CrossProduct.lean Modified Mathlib/LinearAlgebra/LinearPMap.lean Modified Mathlib/LinearAlgebra/TensorProduct/Graded/Internal.lean Modified Mathlib/MeasureTheory/Integral/CircleIntegral.lean Modified Mathlib/MeasureTheory/Integral/Periodic.lean Modified Mathlib/MeasureTheory/Measure/Stieltjes.lean Modified Mathlib/NumberTheory/KummerDedekind.lean Modified Mathlib/NumberTheory/ModularForms/CongruenceSubgroups.lean Modified Mathlib/SetTheory/Ordinal/Basic.lean Modified Mathlib/Topology/Category/UniformSpace.lean Modified Mathlib/Topology/VectorBundle/Basic.lean 2024-07-02 08:10:52 d88652e chore: delay imports of Rat/Field (#14326) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Module/Basic.lean - theorem map_ratCast_smul - theorem map_rat_smul - theorem ratCast_smul_eq Modified Mathlib/Algebra/Module/Defs.lean Modified Mathlib/Algebra/Module/Equiv.lean Modified Mathlib/Algebra/Module/LinearMap/Basic.lean - theorem AddMonoidHom.coe_toRatLinearMap - def AddMonoidHom.toRatLinearMap - theorem AddMonoidHom.toRatLinearMap_injective Modified Mathlib/Algebra/Module/LinearMap/Defs.lean Modified Mathlib/Algebra/Module/LinearMap/End.lean Added Mathlib/Algebra/Module/LinearMap/Rat.lean + theorem AddMonoidHom.coe_toRatLinearMap + def AddMonoidHom.toRatLinearMap + theorem AddMonoidHom.toRatLinearMap_injective Added Mathlib/Algebra/Module/Rat.lean + theorem map_ratCast_smul + theorem map_rat_smul + theorem ratCast_smul_eq Modified Mathlib/Algebra/Module/Submodule/Basic.lean Modified Mathlib/Algebra/Ring/Action/Basic.lean - theorem smul_inv'' Added Mathlib/Algebra/Ring/Action/Field.lean + theorem smul_inv'' Modified Mathlib/Algebra/Ring/Subring/Basic.lean Modified Mathlib/Algebra/Star/Basic.lean Modified Mathlib/Algebra/Star/Module.lean Modified Mathlib/Analysis/NormedSpace/Basic.lean Modified Mathlib/CategoryTheory/Linear/LinearFunctor.lean Modified Mathlib/FieldTheory/Fixed.lean Modified Mathlib/GroupTheory/GroupAction/ConjAct.lean Modified Mathlib/RingTheory/Valuation/ValuationSubring.lean Modified Mathlib/RingTheory/WittVector/Isocrystal.lean Modified Mathlib/Topology/Instances/RealVectorSpace.lean 2024-07-02 02:30:47 1247313 chore(Data/Nat): split Prime.lean (#14286) Splitting `Prime.lean` into `Defs`, `Basic`. The split aims at separation of defs and needed lemmas from everything else. With this split 13/18 Mathlib modules no longer import the whole `Prime.lean`. `Prime/Defs.lean` is about half the size. Motivation is a circular dependency that would prevent me from adding a lemma to `Prime.lean`. https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/split.20Nat.2FPrime.2Elean ESTIMATED CHANGES Modified Archive/Imo/Imo1959Q1.lean Modified Archive/Imo/Imo1988Q6.lean Modified Archive/Imo/Imo2008Q3.lean Modified Archive/Imo/Imo2019Q4.lean Modified Mathlib.lean Modified Mathlib/Algebra/CharP/Defs.lean Modified Mathlib/Algebra/CharP/ExpChar.lean Modified Mathlib/Algebra/Order/Floor/Prime.lean Modified Mathlib/Combinatorics/Schnirelmann.lean Modified Mathlib/Data/Int/NatPrime.lean Modified Mathlib/Data/Nat/Choose/Dvd.lean Modified Mathlib/Data/Nat/Factors.lean Modified Mathlib/Data/Nat/Multiplicity.lean Added Mathlib/Data/Nat/Prime/Basic.lean + theorem Int.prime_three + theorem Int.prime_two + theorem Nat.Prime.coprime_pow_of_not_dvd + theorem Nat.Prime.dvd_factorial + theorem Nat.Prime.dvd_iff_not_coprime + theorem Nat.Prime.dvd_mul_of_dvd_ne + theorem Nat.Prime.dvd_of_dvd_pow + theorem Nat.Prime.eq_one_of_pow + theorem Nat.Prime.eq_two_or_odd' + theorem Nat.Prime.eq_two_or_odd + theorem Nat.Prime.even_iff + theorem Nat.Prime.even_sub_one + theorem Nat.Prime.five_le_of_ne_two_of_ne_three + theorem Nat.Prime.mod_two_eq_one_iff_ne_two + theorem Nat.Prime.mul_eq_prime_sq_iff + theorem Nat.Prime.not_coprime_iff_dvd + theorem Nat.Prime.not_dvd_mul + theorem Nat.Prime.not_prime_pow' + theorem Nat.Prime.not_prime_pow + theorem Nat.Prime.odd_of_ne_two + theorem Nat.Prime.pow_eq_iff + theorem Nat.Prime.pow_inj + theorem Nat.Prime.pow_minFac + theorem Nat.Prime.pred_pos + theorem Nat.coprime_of_dvd' + theorem Nat.coprime_of_lt_prime + theorem Nat.coprime_or_dvd_of_prime + theorem Nat.coprime_pow_primes + theorem Nat.coprime_primes + theorem Nat.coprime_two_left + theorem Nat.coprime_two_right + theorem Nat.dvd_of_forall_prime_mul_dvd + theorem Nat.dvd_prime_pow + theorem Nat.eq_one_iff_not_exists_prime_dvd + theorem Nat.eq_or_coprime_of_le_prime + theorem Nat.eq_prime_pow_of_dvd_least_prime_pow + theorem Nat.exists_dvd_of_not_prime2 + theorem Nat.exists_dvd_of_not_prime + theorem Nat.exists_infinite_primes + theorem Nat.exists_mul_pow_lt_factorial + theorem Nat.exists_pow_lt_factorial + theorem Nat.exists_prime_mul_pow_lt_factorial + theorem Nat.factors_lemma + theorem Nat.irreducible_iff_prime + theorem Nat.ne_one_iff_exists_prime_dvd + theorem Nat.not_bddAbove_setOf_prime + theorem Nat.not_prime_iff_exists_dvd_lt + theorem Nat.not_prime_iff_exists_dvd_ne + theorem Nat.not_prime_of_dvd_of_lt + theorem Nat.not_prime_of_dvd_of_ne + theorem Nat.pow_minFac + theorem Nat.prime_iff_prime_int + theorem Nat.succ_dvd_or_succ_dvd_of_succ_sum_dvd_mul + theorem Nat.succ_pred_prime Renamed Mathlib/Data/Nat/Prime.lean to Mathlib/Data/Nat/Prime/Defs.lean - theorem Int.prime_three - theorem Int.prime_two - theorem Nat.Prime.coprime_pow_of_not_dvd - theorem Nat.Prime.dvd_factorial - theorem Nat.Prime.dvd_iff_not_coprime - theorem Nat.Prime.dvd_mul_of_dvd_ne - theorem Nat.Prime.dvd_of_dvd_pow - theorem Nat.Prime.eq_one_of_pow - theorem Nat.Prime.eq_two_or_odd' - theorem Nat.Prime.eq_two_or_odd - theorem Nat.Prime.even_iff - theorem Nat.Prime.even_sub_one - theorem Nat.Prime.five_le_of_ne_two_of_ne_three - theorem Nat.Prime.mod_two_eq_one_iff_ne_two - theorem Nat.Prime.mul_eq_prime_sq_iff - theorem Nat.Prime.not_coprime_iff_dvd - theorem Nat.Prime.not_dvd_mul - theorem Nat.Prime.not_prime_pow' - theorem Nat.Prime.not_prime_pow - theorem Nat.Prime.odd_of_ne_two - theorem Nat.Prime.pow_eq_iff - theorem Nat.Prime.pow_inj - theorem Nat.Prime.pow_minFac - theorem Nat.Prime.pred_pos - theorem Nat.coprime_of_dvd' - theorem Nat.coprime_of_lt_prime - theorem Nat.coprime_or_dvd_of_prime - theorem Nat.coprime_pow_primes - theorem Nat.coprime_primes - theorem Nat.coprime_two_left - theorem Nat.coprime_two_right - theorem Nat.dvd_of_forall_prime_mul_dvd - theorem Nat.dvd_prime_pow - theorem Nat.eq_one_iff_not_exists_prime_dvd - theorem Nat.eq_or_coprime_of_le_prime - theorem Nat.eq_prime_pow_of_dvd_least_prime_pow - theorem Nat.exists_dvd_of_not_prime2 - theorem Nat.exists_dvd_of_not_prime - theorem Nat.exists_infinite_primes - theorem Nat.exists_mul_pow_lt_factorial - theorem Nat.exists_pow_lt_factorial - theorem Nat.exists_prime_mul_pow_lt_factorial - theorem Nat.factors_lemma - theorem Nat.irreducible_iff_prime - theorem Nat.ne_one_iff_exists_prime_dvd - theorem Nat.not_bddAbove_setOf_prime - theorem Nat.not_prime_iff_exists_dvd_lt - theorem Nat.not_prime_iff_exists_dvd_ne - theorem Nat.not_prime_of_dvd_of_lt - theorem Nat.not_prime_of_dvd_of_ne - theorem Nat.pow_minFac - theorem Nat.prime_iff_prime_int - theorem Nat.succ_dvd_or_succ_dvd_of_succ_sum_dvd_mul - theorem Nat.succ_pred_prime Modified Mathlib/Data/Nat/PrimeNormNum.lean Modified Mathlib/Data/Num/Prime.lean Modified Mathlib/Data/PNat/Prime.lean Modified Mathlib/Dynamics/PeriodicPts.lean Modified Mathlib/FieldTheory/Tower.lean Modified Mathlib/Logic/Godel/GodelBetaFunction.lean Modified Mathlib/ModelTheory/Algebra/Field/CharP.lean Modified Mathlib/NumberTheory/Primorial.lean Modified Mathlib/Tactic/NormNum/Prime.lean Modified test/LibrarySearch/basic.lean Modified test/hint.lean Modified test/observe.lean Modified test/rewrites.lean Modified test/slim_check.lean 2024-07-02 02:03:24 d1415c6 feat(UniformConvergenceTopology): prove generic `UniformOnFun.continuousOn_eval₂` (#13532) Also use it to weaken TC assumptions in `ContinuousMultilinearMap.continuous_eval`. ESTIMATED CHANGES Modified Mathlib/Analysis/NormedSpace/Multilinear/Basic.lean +/- theorem ContinuousMultilinearMap.continuous_eval Modified Mathlib/Topology/UniformSpace/UniformConvergenceTopology.lean 2024-07-01 23:56:19 851ca53 chore (Module.LinearMap.End): avoid ordered algebra imports (#14335) We can just specialize to the results about `Nat` and avoid importing `Algebra.Order.Ring.Nat`. ESTIMATED CHANGES Modified Mathlib/Algebra/Module/LinearMap/End.lean 2024-07-01 23:56:18 f50ea92 chore (Set.Pointwise.Basic): avoid importing ordered rings (#14129) We shouldn't need to import ordered algebraic classes for basic properties of pointwise multiplication of sets. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Combinatorics/Additive/Dissociation.lean Modified Mathlib/Data/Set/Pointwise/Basic.lean - theorem Set.BddAbove.mul Added Mathlib/Data/Set/Pointwise/BoundedMul.lean + theorem Set.BddAbove.mul Modified Mathlib/Data/Set/Semiring.lean 2024-07-01 23:16:05 6706825 chore (Ring.Prod): move order instances on product rings (#14122) We shouldn't import the whole order hierarchy when we want ring instances on products. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Order/Kleene.lean Added Mathlib/Algebra/Order/Ring/Prod.lean Modified Mathlib/Algebra/Ring/Prod.lean Modified Mathlib/Order/Interval/Finset/Box.lean 2024-07-01 22:27:46 ed30efb chore (Data.Rat.Lemmas): avoid importing `OrderedCommMonoid` (#14341) We can avoid importing `Algebra.Order.Group.Defs` in `Data.Rat.Lemmas` if we use `Nat` versions of some lemmas and slightly modify one proof. ESTIMATED CHANGES Modified Mathlib/Data/Rat/Lemmas.lean 2024-07-01 22:27:45 9bb6489 feat: add `LinearMap.IsAlt.eq_of_add_add_eq_zero` (#14281) For an alternating form $B : M \times M \to R$ and $a, b, c \in M$ with $a + b+ c = 0$, we have $B(a, b) = B(b, c)$. This can be used to prove the same property of Wronskian: see #14243. ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/BilinearForm/Properties.lean + theorem LinearMap.BilinForm.IsAlt.eq_of_add_add_eq_zero Modified Mathlib/LinearAlgebra/SesquilinearForm.lean + theorem LinearMap.IsAlt.eq_of_add_add_eq_zero 2024-07-01 22:27:44 b32cc98 chore (Subgroup.Order): move ordered facts out of `Basic` and into `Order` (#14121) We don't want to import the order hierarchy without really needing it. ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Subgroup/Basic.lean - theorem MulEquiv.isCoatom_comap - theorem MulEquiv.isCoatom_map - theorem Subgroup.NormalizerCondition.normal_of_coatom - theorem Subgroup.isCoatom_comap_of_surjective - theorem abs_mem_iff Modified Mathlib/Algebra/Group/Subgroup/Order.lean + theorem Subgroup.NormalizerCondition.normal_of_coatom + theorem Subgroup.isCoatom_comap + theorem Subgroup.isCoatom_comap_of_surjective + theorem Subgroup.isCoatom_map + theorem abs_mem_iff Modified Mathlib/GroupTheory/Archimedean.lean Modified Mathlib/GroupTheory/Nilpotent.lean Modified Mathlib/GroupTheory/Subgroup/Simple.lean 2024-07-01 22:27:43 cf6699f feat(CategoryTheory): if LR is abstractly isomorphic to the identity functor, then the unit is an isomorphism. (#14017) This PR proves that to show that the unit of an adjunction `L ⊣ R` is an isomorphism (i.e. that L is fully faithful), it is enough to give an arbitrary isomorphism `L ⋙ R ≅ 𝟭 C`, and the dual result. To do this, we give a general way to transport (co)monad structures on functors along isomorphisms of functors. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Functor/Category.lean + theorem CategoryTheory.NatTrans.id_comm Modified Mathlib/CategoryTheory/Monad/Adjunction.lean + def CategoryTheory.Adjunction.counitAsIsoOfIso + theorem CategoryTheory.Adjunction.isIso_counit_of_iso + theorem CategoryTheory.Adjunction.isIso_unit_of_iso + def CategoryTheory.Adjunction.unitAsIsoOfIso Modified Mathlib/CategoryTheory/Monad/Basic.lean + def CategoryTheory.Comonad.transport + def CategoryTheory.Monad.transport 2024-07-01 20:25:52 4f76c65 feat: `convert_to ty at h` tactic (#14253) Extends `convert_to` to be able to operate on any location. When converting the type of a local hypothesis, new congruence goals come first. Suggested [on Zulip](https://leanprover.zulipchat.com/#narrow/stream/239415-metaprogramming-.2F-tactics/topic/.60convert_to.20at.60.20.2F.20non-definitional.20.60change.60/near/447601320). ESTIMATED CHANGES Modified Mathlib/Tactic/Convert.lean +/- def Lean.MVarId.convert + def Lean.MVarId.convertLocalDecl + def Mathlib.Tactic.elabTermForConvert Modified test/convert.lean 2024-07-01 20:25:51 e655d3b feat(Condensed): the functor from `TopCat` to `LightCondSet` (#13504) - [x] depends on: #13503 ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Condensed/Light/Functors.lean Added Mathlib/Condensed/Light/TopComparison.lean Modified Mathlib/Condensed/TopComparison.lean 2024-07-01 20:25:50 5f0c6af feat: `subsingleton` tactic (#12525) The `subsingleton` tactic tries to close equality goals by arguing that the underlying type is a subsingleton type. It might be via a `Subsingleton` instance (via `Subsingleton.elim`), but it also handles some cases where morally the types are subsingletons; for example, it can prove that two `BEq` instances are equal if they both have `LawfulBEq` instances. For heterogeneous equality, it tries the `HEq` version of proof irrelevance. This tactic avoids the issue where ```lean example (α : Sort _) (x y : α) : x = y := by apply Subsingleton.elim ``` is a "proof" that every type is trivial. Changing this to `by subsingleton` prevents it from assigning the universe level metavariable in `Sort _` to `0`. This tactic can accept a list of instances `subsingleton [inst1, inst2, ...]` to do something like `have := inst1; have := inst2; ...; subsingleton`, but it elaborates them in a lenient way (like `simp` arguments), and they can even be universe polymorphic. For example, `subsingleton [CharP.CharOne.subsingleton]` is allowed even though the type of `CharP.CharOne.subsingleton` is `Subsingleton ?R` with a number of pending instance problems. This PR also eliminates a number of uses of `Subsingleton.elim`, either by switching a `congr` to `congr!` or by using this new tactic. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/BigOperators/Fin.lean Modified Mathlib/Algebra/BigOperators/Group/Finset.lean Modified Mathlib/Algebra/Category/Grp/Zero.lean Modified Mathlib/Algebra/Category/ModuleCat/Basic.lean Modified Mathlib/Algebra/DirectLimit.lean Modified Mathlib/Algebra/Group/Units.lean +/- theorem units_eq_one Modified Mathlib/Algebra/Homology/HomologicalComplex.lean Modified Mathlib/Algebra/Lie/Engel.lean Modified Mathlib/Algebra/Order/Antidiag/Prod.lean Modified Mathlib/Algebra/PUnitInstances.lean Modified Mathlib/AlgebraicTopology/CechNerve.lean Modified Mathlib/AlgebraicTopology/ExtraDegeneracy.lean Modified Mathlib/CategoryTheory/Filtered/Basic.lean Modified Mathlib/CategoryTheory/Filtered/Final.lean Modified Mathlib/CategoryTheory/Functor/Flat.lean Modified Mathlib/CategoryTheory/Limits/Preserves/Basic.lean Modified Mathlib/CategoryTheory/Limits/Shapes/CommSq.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Products.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Types.lean Modified Mathlib/CategoryTheory/Limits/Shapes/ZeroMorphisms.lean Modified Mathlib/CategoryTheory/Limits/Shapes/ZeroObjects.lean Modified Mathlib/CategoryTheory/Preadditive/Biproducts.lean Modified Mathlib/CategoryTheory/Subterminal.lean +/- theorem CategoryTheory.isSubterminal_of_terminal Modified Mathlib/CategoryTheory/Thin.lean Modified Mathlib/Data/DFinsupp/Basic.lean Modified Mathlib/Data/Finsupp/AList.lean Modified Mathlib/Data/Finsupp/Defs.lean Modified Mathlib/Data/Fintype/Basic.lean Modified Mathlib/Data/Fintype/Card.lean Modified Mathlib/Data/List/Basic.lean Modified Mathlib/Data/Matrix/Kronecker.lean Modified Mathlib/Data/Set/Finite.lean Modified Mathlib/Data/ZMod/Basic.lean Modified Mathlib/FieldTheory/IsPerfectClosure.lean Modified Mathlib/LinearAlgebra/Dimension/Basic.lean Modified Mathlib/LinearAlgebra/Dimension/Finite.lean Modified Mathlib/LinearAlgebra/Matrix/Adjugate.lean Modified Mathlib/LinearAlgebra/Matrix/Charpoly/Minpoly.lean Modified Mathlib/LinearAlgebra/TensorProduct/DirectLimit.lean Modified Mathlib/Order/Filter/AtTopBot.lean Modified Mathlib/RingTheory/IntegralRestrict.lean Modified Mathlib/RingTheory/IsAdjoinRoot.lean Modified Mathlib/RingTheory/Localization/Basic.lean Modified Mathlib/RingTheory/PowerBasis.lean Modified Mathlib/RingTheory/Unramified/Basic.lean Modified Mathlib/SetTheory/Cardinal/Cofinality.lean Modified Mathlib/Tactic.lean Modified Mathlib/Tactic/Common.lean Added Mathlib/Tactic/Subsingleton.lean + def Lean.MVarId.subsingleton + def Lean.Meta.mkSubsingleton + def Lean.Meta.synthSubsingletonInst + def Mathlib.Tactic.elabSubsingletonInsts Modified Mathlib/Topology/Category/TopCat/Opens.lean Modified Mathlib/Topology/ContinuousFunction/Algebra.lean Modified Mathlib/Topology/ContinuousFunction/Weierstrass.lean Modified Mathlib/Topology/TietzeExtension.lean Modified scripts/noshake.json Added test/Subsingleton.lean + def fdef 2024-07-01 19:46:41 29dcec0 chore (Order.OmegaCompletePartialOrder): avoid importing ordered algebra (#14338) This seems to be a redundant import. ESTIMATED CHANGES Modified Mathlib/Order/OmegaCompletePartialOrder.lean 2024-07-01 17:37:33 aa30cf9 chore(Order): remove almost all autoImplicit (#14304) In two files, only reduce the scope of it; the other occurrences seem harder to remove. ESTIMATED CHANGES Modified Mathlib/Order/Atoms.lean +/- theorem Pi.isAtom_single +/- theorem atom_le_iSup +/- theorem iInf_le_coatom Modified Mathlib/Order/Bounds/OrderIso.lean Modified Mathlib/Order/CompleteBooleanAlgebra.lean Modified Mathlib/Order/Filter/AtTopBot.lean +/- theorem Filter.Tendsto.eventually_forall_ge_atTop +/- theorem Filter.Tendsto.eventually_forall_le_atBot +/- theorem Filter.prod_atBot_atBot_eq +/- theorem Filter.strictMono_subseq_of_tendsto_atTop +/- theorem Filter.tendsto_of_subseq_tendsto Modified Mathlib/Order/Filter/Bases.lean Modified Mathlib/Order/Filter/Basic.lean +/- theorem Filter.EventuallyEq.comp_tendsto +/- theorem Filter.filter_injOn_Iic_iff_injOn +/- theorem Filter.frequently_iff_neBot +/- theorem Filter.frequently_mem_iff_neBot +/- theorem Filter.map_mapsTo_Iic_iff_mapsTo +/- theorem Filter.map_surjOn_Iic_iff_surjOn +/- theorem Filter.pure_le_principal +/- theorem GCongr.Filter.comap_le_comap +/- theorem GCongr.Filter.map_le_map Modified Mathlib/Order/Filter/CountableSeparatingOn.lean Modified Mathlib/Order/InitialSeg.lean +/- theorem InitialSeg.map_rel_iff Modified Mathlib/Order/Interval/Finset/Defs.lean Modified Mathlib/Order/LiminfLimsup.lean +/- theorem Filter.IsBoundedUnder.isCoboundedUnder_flip Modified Mathlib/Order/Minimal.lean +/- theorem RelEmbedding.inter_preimage_maximals_eq_of_subset +/- theorem RelEmbedding.inter_preimage_minimals_eq_of_subset +/- theorem inter_maximals_preimage_inter_eq_of_rel_iff_rel_on +/- theorem inter_preimage_maximals_eq_of_rel_iff_rel_on_of_subset +/- theorem inter_preimage_minimals_eq_of_rel_iff_rel_on_of_subset +/- theorem mem_maximals_iff_forall_lt_not_mem' +/- theorem mem_maximals_iff_forall_lt_not_mem +/- theorem mem_maximals_iff_forall_ssubset_not_mem +/- theorem mem_maximals_setOf_iff +/- theorem mem_minimals_iff +/- theorem mem_minimals_iff_forall_lt_not_mem' +/- theorem mem_minimals_iff_forall_lt_not_mem +/- theorem mem_minimals_iff_forall_ssubset_not_mem +/- theorem mem_minimals_setOf_iff Modified Mathlib/Order/RelIso/Basic.lean +/- theorem RelEmbedding.coe_mk +/- theorem RelEmbedding.coe_toEmbedding +/- theorem RelEmbedding.coe_toRelHom 2024-07-01 17:37:31 0b88a97 feat(RingTheory.Binomial): Add BinomialRing instance for NNRat modules. (#13585) This PR adds an instance of BinomialRing for NNRat modules. ESTIMATED CHANGES Modified Mathlib/RingTheory/Binomial.lean 2024-07-01 15:55:48 9bfe41c chore(Data/Real/EReal): `theorem`s to `lemma`s (#14324) This PR turns some theorems into lemmas as suggested [here](https://github.com/leanprover-community/mathlib4/pull/14128#discussion_r1660572911). ESTIMATED CHANGES Modified Mathlib/Data/Real/EReal.lean +/- theorem EReal.add_sub_cancel_right +/- theorem EReal.antitone_div_right_of_nonpos +/- theorem EReal.bot_div_of_neg_ne_bot +/- theorem EReal.bot_div_of_pos_ne_top +/- theorem EReal.bot_mul_bot +/- theorem EReal.bot_mul_coe_of_neg +/- theorem EReal.bot_mul_coe_of_pos +/- theorem EReal.bot_mul_of_neg +/- theorem EReal.bot_mul_of_pos +/- theorem EReal.bot_mul_top +/- theorem EReal.coe_div +/- theorem EReal.coe_inv +/- theorem EReal.coe_mul_bot_of_neg +/- theorem EReal.coe_mul_bot_of_pos +/- theorem EReal.coe_mul_top_of_neg +/- theorem EReal.coe_mul_top_of_pos +/- theorem EReal.div_bot +/- theorem EReal.div_div +/- theorem EReal.div_eq_inv_mul +/- theorem EReal.div_le_div_right_of_nonneg +/- theorem EReal.div_le_div_right_of_nonpos +/- theorem EReal.div_le_iff_le_mul +/- theorem EReal.div_lt_div_right_of_neg +/- theorem EReal.div_lt_div_right_of_pos +/- theorem EReal.div_mul_cancel +/- theorem EReal.div_nonneg +/- theorem EReal.div_nonneg_of_nonpos_of_nonpos +/- theorem EReal.div_nonpos_of_nonneg_of_nonpos +/- theorem EReal.div_nonpos_of_nonpos_of_nonneg +/- theorem EReal.div_right_distrib_of_nonneg +/- theorem EReal.div_self +/- theorem EReal.div_top +/- theorem EReal.div_zero +/- theorem EReal.induction₂_neg_left +/- theorem EReal.induction₂_symm_neg +/- theorem EReal.inv_bot +/- theorem EReal.inv_inv +/- theorem EReal.inv_neg +/- theorem EReal.inv_neg_of_neg_ne_bot +/- theorem EReal.inv_nonneg_of_nonneg +/- theorem EReal.inv_nonpos_of_nonpos +/- theorem EReal.inv_pos_of_pos_ne_top +/- theorem EReal.inv_top +/- theorem EReal.inv_zero +/- theorem EReal.le_div_iff_mul_le +/- theorem EReal.le_iff_le_forall_real_gt +/- theorem EReal.left_distrib_of_nonneg +/- theorem EReal.monotone_div_right_of_nonneg +/- theorem EReal.mul_bot_of_neg +/- theorem EReal.mul_bot_of_pos +/- theorem EReal.mul_div +/- theorem EReal.mul_div_cancel +/- theorem EReal.mul_div_mul_cancel +/- theorem EReal.mul_div_right +/- theorem EReal.mul_inv +/- theorem EReal.mul_pos +/- theorem EReal.mul_top_of_neg +/- theorem EReal.mul_top_of_pos +/- theorem EReal.right_distrib_of_nonneg +/- theorem EReal.sign_mul_inv_abs' +/- theorem EReal.sign_mul_inv_abs +/- theorem EReal.strictAnti_div_right_of_neg +/- theorem EReal.strictMono_div_right_of_pos +/- theorem EReal.toReal_mul +/- theorem EReal.top_div_of_neg_ne_bot +/- theorem EReal.top_div_of_pos_ne_top +/- theorem EReal.top_mul_bot +/- theorem EReal.top_mul_coe_of_neg +/- theorem EReal.top_mul_coe_of_pos +/- theorem EReal.top_mul_of_neg +/- theorem EReal.top_mul_of_pos +/- theorem EReal.top_mul_top +/- theorem EReal.zero_div 2024-07-01 15:55:47 63bddcd chore(Data/PNat): drop `bit*` lemmas (#14217) Add `OfNat` lemmas instead. ESTIMATED CHANGES Modified Mathlib/Data/PNat/Basic.lean - theorem PNat.bit0_le_bit0 - theorem PNat.bit0_le_bit1 - theorem PNat.bit1_le_bit0 - theorem PNat.bit1_le_bit1 + theorem PNat.ofNat_inj + theorem PNat.ofNat_le_ofNat + theorem PNat.ofNat_lt_ofNat 2024-07-01 15:46:28 743032e fix(Topology/Stonean): remove wrong TODO from docstring (#14334) ESTIMATED CHANGES Modified Mathlib/Topology/Category/Stonean/Basic.lean 2024-07-01 14:30:25 20856f0 feat(CategoryTheory/Shift): more compatibilities for NatTrans.CommShift (#14187) In this file, we show various compatibilities for the commutation of natural transformations with shifts. In particular, if `F`, `G`, `H` are composable functors which commute with shifts on the categories, then the associator isomorphism `(F ⋙ G) ⋙ H ≅ F ⋙ (G ⋙ H)` commutes with the shifts. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Shift/CommShift.lean + theorem CategoryTheory.Functor.commShiftIso_id_hom_app + theorem CategoryTheory.Functor.commShiftIso_id_inv_app + theorem CategoryTheory.NatTrans.CommShift.verticalComposition 2024-07-01 13:36:27 8c7bc12 chore(ModelTheory): remove autoImplicit (#14323) And remove a duplicate `open` statement, while at it. ESTIMATED CHANGES Modified Mathlib/ModelTheory/Basic.lean 2024-07-01 13:36:26 67a63ca chore: namespace some `IsSelfAdjoint` lemmas (#14211) Per this [Zulip discussion](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/Naming.20convention/near/447491526) we choose to namespace (and protect) a few lemmas about `IsSelfAdjoint`. ESTIMATED CHANGES Modified Mathlib/Algebra/Star/Order.lean Modified Mathlib/Algebra/Star/SelfAdjoint.lean + theorem IsSelfAdjoint.add_star_self + theorem IsSelfAdjoint.star_add_self - theorem isSelfAdjoint_add_star_self - theorem isSelfAdjoint_intCast - theorem isSelfAdjoint_natCast - theorem isSelfAdjoint_nnratCast - theorem isSelfAdjoint_ofNat - theorem isSelfAdjoint_one - theorem isSelfAdjoint_ratCast - theorem isSelfAdjoint_star_add_self - theorem isSelfAdjoint_zero Modified Mathlib/Analysis/InnerProductSpace/Positive.lean Modified Mathlib/Analysis/NormedSpace/Star/ContinuousFunctionalCalculus/Instances.lean Modified Mathlib/LinearAlgebra/Matrix/Hermitian.lean 2024-07-01 13:36:25 2f324b4 chore: add exception for `Data.Set.Subset` to `noshake.json`. (#14196) We add `Data.Set.Subset` to the set of files ignored by the shake linter, which gives a false positive when this file is just imported for the notation. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Data/Matroid/Map.lean Modified Mathlib/Data/Set/Functor.lean - def Set.Notation.delab_set_image_subtype Added Mathlib/Data/Set/Notation.lean + def Set.Notation.delab_set_image_subtype Modified Mathlib/Data/Set/Subset.lean Modified scripts/noshake.json 2024-07-01 13:36:23 2d9a177 chore: move two lemmas about the exponent and the rank of groups (#14181) These are strictly speaking not specific to Schreier's lemma, but are only used there and bring in somewhat heavy imports. This change flips the longest pole in mathlib back to topology/analysis. ESTIMATED CHANGES Modified Mathlib/GroupTheory/Exponent.lean - theorem card_dvd_exponent_pow_rank' - theorem card_dvd_exponent_pow_rank Modified Mathlib/GroupTheory/Schreier.lean + theorem card_dvd_exponent_pow_rank' + theorem card_dvd_exponent_pow_rank Modified Mathlib/GroupTheory/SpecificGroups/Cyclic.lean 2024-07-01 13:36:22 050f5a8 feat: generalize `CompleteSpace (ContinuousMultilinearMap _ _ _)` to TVS (#13468) ESTIMATED CHANGES Modified Mathlib/Analysis/LocallyConvex/Bounded.lean + theorem Filter.Tendsto.isVonNBounded_range Modified Mathlib/Analysis/NormedSpace/Multilinear/Basic.lean Modified Mathlib/Topology/Algebra/Module/Multilinear/Topology.lean + theorem ContinuousMultilinearMap.completeSpace + theorem ContinuousMultilinearMap.range_toUniformOnFun Modified Mathlib/Topology/UniformSpace/UniformConvergenceTopology.lean + theorem UniformOnFun.uniformContinuous_eval 2024-07-01 13:36:21 a94c84c feat: quasi-coherent sheaves (#13464) In this PR, we define the notion of quasi-coherent sheaf: a sheaf of modules `M` over a sheaf of rings `R` (on a category `C` equipped with a Grothendieck topology) is quasi-coherent if, locally, it admits a presentation involving coproducts of copies of the restriction of `R`. We also introduce the notions of sheaves of modules of finite type/presentation. These are only definitions. No attempt is made yet to prove anything about this notion in the case of schemes! ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Category/ModuleCat/Sheaf.lean Modified Mathlib/Algebra/Category/ModuleCat/Sheaf/Generators.lean + structure SheafOfModules.LocalGeneratorsData Modified Mathlib/Algebra/Category/ModuleCat/Sheaf/PushforwardContinuous.lean Added Mathlib/Algebra/Category/ModuleCat/Sheaf/Quasicoherent.lean + structure SheafOfModules.Presentation + def SheafOfModules.QuasicoherentData.localGeneratorsData + structure SheafOfModules.QuasicoherentData Modified Mathlib/CategoryTheory/Sites/Sheaf.lean 2024-07-01 12:34:11 66e9755 chore(AlgebraicGeometry/Morphisms): split basic file (#14297) Moves constructors for properties from other properties in a new file. Removes `morphismRestrict_base` as it is a duplicate of `morphismRestrict_val_base`. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/AlgebraicGeometry/Morphisms/Basic.lean - theorem AlgebraicGeometry.AffineTargetMorphismProperty.IsLocal.diagonal - theorem AlgebraicGeometry.AffineTargetMorphismProperty.IsLocal.diagonal_affine_openCover_TFAE - def AlgebraicGeometry.AffineTargetMorphismProperty.diagonal - theorem AlgebraicGeometry.AffineTargetMorphismProperty.diagonal_of_targetAffineLocally - theorem AlgebraicGeometry.AffineTargetMorphismProperty.diagonal_respectsIso - def AlgebraicGeometry.MorphismProperty.topologically - theorem AlgebraicGeometry.MorphismProperty.topologically_isStableUnderComposition - theorem AlgebraicGeometry.MorphismProperty.topologically_iso_le - theorem AlgebraicGeometry.MorphismProperty.topologically_propertyIsLocalAtTarget - theorem AlgebraicGeometry.MorphismProperty.topologically_respectsIso - theorem AlgebraicGeometry.diagonal_targetAffineLocally_eq_targetAffineLocally - theorem AlgebraicGeometry.diagonal_targetAffineLocally_of_openCover - theorem AlgebraicGeometry.morphismRestrict_base - theorem AlgebraicGeometry.universally_isLocalAtTarget - theorem AlgebraicGeometry.universally_isLocalAtTarget_of_morphismRestrict Added Mathlib/AlgebraicGeometry/Morphisms/Constructors.lean + theorem AlgebraicGeometry.AffineTargetMorphismProperty.IsLocal.diagonal + theorem AlgebraicGeometry.AffineTargetMorphismProperty.IsLocal.diagonal_affine_openCover_TFAE + def AlgebraicGeometry.AffineTargetMorphismProperty.diagonal + theorem AlgebraicGeometry.AffineTargetMorphismProperty.diagonal_of_targetAffineLocally + theorem AlgebraicGeometry.AffineTargetMorphismProperty.diagonal_respectsIso + def AlgebraicGeometry.MorphismProperty.topologically + theorem AlgebraicGeometry.MorphismProperty.topologically_isStableUnderComposition + theorem AlgebraicGeometry.MorphismProperty.topologically_iso_le + theorem AlgebraicGeometry.MorphismProperty.topologically_propertyIsLocalAtTarget + theorem AlgebraicGeometry.MorphismProperty.topologically_respectsIso + theorem AlgebraicGeometry.diagonal_targetAffineLocally_eq_targetAffineLocally + theorem AlgebraicGeometry.diagonal_targetAffineLocally_of_openCover + theorem AlgebraicGeometry.universally_isLocalAtTarget + theorem AlgebraicGeometry.universally_isLocalAtTarget_of_morphismRestrict Modified Mathlib/AlgebraicGeometry/Morphisms/QuasiSeparated.lean Modified Mathlib/AlgebraicGeometry/Morphisms/UniversallyClosed.lean 2024-07-01 12:34:09 7137d2e feat: dualising results in CategoryTheory.Functor.KanExtension.Basic (#14256) In this PR, we make a left/right synchronization of the API in the file `CategoryTheory.Functor.KanExtension.Basic`: missing definitions/lemmas for right Kan extensions are introduced. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Functor/KanExtension/Basic.lean + theorem CategoryTheory.Functor.isRightKanExtension_iff_isIso 2024-07-01 12:34:08 60c9d3d feat(RingTheory/AdicCompletion): exactness properties of adic completions (#12650) Shows: - adic completion preserves surjectivity - adic completion is exact if the base ring is Noetherian and the modules are finitely generated. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Exact.lean + theorem Function.Exact.of_comp_eq_zero_of_ker_in_range Modified Mathlib/RingTheory/AdicCompletion/Basic.lean + theorem AdicCompletion.mk_zero_of Added Mathlib/RingTheory/AdicCompletion/Exactness.lean + theorem AdicCompletion.map_exact + theorem AdicCompletion.map_injective + theorem AdicCompletion.map_surjective Modified Mathlib/RingTheory/AdicCompletion/Functoriality.lean + theorem AdicCompletion.AdicCauchySequence.map_zero + theorem AdicCompletion.map_zero 2024-07-01 10:39:14 418029c chore: update Mathlib dependencies 2024-07-01 (#14321) This PR updates the Mathlib dependencies. ESTIMATED CHANGES 2024-07-01 10:39:13 dbf8589 chore: ensure all #align commands are on a single line (#14316) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Limits/Shapes/WideEqualizers.lean 2024-07-01 10:39:12 28955af chore(Algebra/Polynomial/Div): rename `mul_div_mod_by_monic_cancel_left` to `mul_divByMonic_cancel_left` (#14280) Rename `mul_div_mod_by_monic_cancel_left` to fit naming conventions and make the theorem easier to find. ESTIMATED CHANGES Modified Mathlib/Algebra/Polynomial/Div.lean + theorem Polynomial.mul_divByMonic_cancel_left - theorem Polynomial.mul_div_mod_by_monic_cancel_left 2024-07-01 10:39:11 1867358 fix(scripts/{lint_style,mk_all}): limit return value to 125 (#14272) so the executable's exit code can be used further in shell scripts, such as mathlib's CI. See https://unix.stackexchange.com/a/418802 for background why a maximum of 125 is safest (on Linux). ESTIMATED CHANGES Modified scripts/lint_style.lean Modified scripts/mk_all.lean 2024-07-01 10:39:10 e231a96 feat(Topology): transport the property of being extremally disconnected along a homeomorphism (#13903) ESTIMATED CHANGES Modified Mathlib/Topology/ExtremallyDisconnected.lean + theorem extremallyDisconnected_of_homeo 2024-07-01 10:39:09 0491229 perf(DoldKan/EquivalencePseudoabelian): use suppress_compilation (#13858) Compiling the file takes 14s; the computability is not used anywhere in mathlib. Speeds up the file by 78%. ESTIMATED CHANGES Modified Mathlib/AlgebraicTopology/DoldKan/EquivalencePseudoabelian.lean 2024-07-01 10:39:07 e743f36 chore(Polynomial/TrailingDegree): use `ENat.toNat`, golf (#13652) ESTIMATED CHANGES Modified Mathlib/Algebra/Polynomial/Degree/TrailingDegree.lean +/- theorem Polynomial.natTrailingDegree_le_natTrailingDegree +/- theorem Polynomial.natTrailingDegree_le_of_ne_zero +/- theorem Polynomial.natTrailingDegree_le_trailingDegree +/- theorem Polynomial.trailingDegree_eq_iff_natTrailingDegree_eq_of_pos +/- theorem Polynomial.trailingDegree_eq_zero Modified Mathlib/Data/Finset/Lattice.lean +/- theorem Finset.max'_eq_sup' +/- theorem Finset.min'_eq_inf' 2024-07-01 10:39:06 8ed158e style(Mathlib/Tactic/*): rename wrongly capitalized filenames (#13279) `Mathlib.Tactic.Congrm` → `Mathlib.Tactic.CongrM` `Mathlib.Tactic.Existsi` → `Mathlib.Tactic.ExistsI` `Mathlib.Tactic.Widget.Congrm` → `Mathlib.Tactic.Widget.CongrM` `Mathlib.Tactic.Widget.Gcongr` → `Mathlib.Tactic.Widget.GCongr` Also, we rename the namespaces and subroutines in these files. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Mathport/Syntax.lean Modified Mathlib/Tactic.lean Modified Mathlib/Tactic/Common.lean Renamed Mathlib/Tactic/Congrm.lean to Mathlib/Tactic/CongrM.lean Renamed Mathlib/Tactic/Existsi.lean to Mathlib/Tactic/ExistsI.lean Renamed Mathlib/Tactic/Widget/Congrm.lean to Mathlib/Tactic/Widget/CongrM.lean + def CongrMSelectionPanel.rpc + def CongrMSelectionPanel - def CongrmSelectionPanel.rpc - def CongrmSelectionPanel + def makeCongrMString - def makeCongrmString Renamed Mathlib/Tactic/Widget/Gcongr.lean to Mathlib/Tactic/Widget/GCongr.lean Modified scripts/noshake.json Modified scripts/style-exceptions.txt Renamed test/Existsi.lean to test/ExistsI.lean Modified test/congrm.lean Modified test/rsuffices.lean 2024-07-01 09:41:30 a261710 chore(SetTheory): remove use of autoImplicit (#14299) ESTIMATED CHANGES Modified Mathlib/SetTheory/Cardinal/CountableCover.lean Modified Mathlib/SetTheory/Cardinal/Finite.lean +/- theorem Nat.card_image_le +/- theorem Nat.card_image_of_injOn +/- theorem Nat.card_image_of_injective +/- theorem Nat.card_preimage_of_injOn +/- theorem Nat.card_preimage_of_injective Modified Mathlib/SetTheory/Cardinal/UnivLE.lean Modified Mathlib/SetTheory/Game/PGame.lean +/- theorem SetTheory.PGame.Subsequent.moveLeft_mk_left +/- theorem SetTheory.PGame.Subsequent.moveLeft_mk_right +/- theorem SetTheory.PGame.Subsequent.moveRight_mk_left +/- theorem SetTheory.PGame.Subsequent.moveRight_mk_right +/- theorem SetTheory.PGame.bddAbove_range_of_small +/- theorem SetTheory.PGame.bddBelow_range_of_small Modified Mathlib/SetTheory/Ordinal/NaturalOps.lean +/- theorem NatOrdinal.toOrdinal_max +/- theorem NatOrdinal.toOrdinal_min 2024-07-01 09:41:29 fdd6114 chore: update `install_macos.sh` so we use official channels (#13967) The cask `elan-init` can lag well behind the latest version of `elan` and doesn't benefit from any official support. ESTIMATED CHANGES Modified scripts/install_macos.sh 2024-07-01 09:41:28 c39dfba feat(Data): Option.get!_some and Option.get!_none (#13957) Analogous to the simp lemmas for `getD`, for example. ESTIMATED CHANGES Modified Mathlib/Data/Option/Basic.lean + theorem Option.get!_none + theorem Option.get!_some 2024-07-01 09:41:27 0b99fcc chore: move some lemmas to Algebra.GroupWithZero.Center (#13944) From #13034. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Group/Center.lean - theorem Set.center_units_eq - theorem Set.center_units_subset - theorem Set.div_mem_center₀ - theorem Set.inv_mem_center₀ - theorem Set.zero_mem_center Modified Mathlib/Algebra/Group/Centralizer.lean - theorem Set.div_mem_centralizer₀ - theorem Set.inv_mem_centralizer₀ - theorem Set.zero_mem_centralizer Added Mathlib/Algebra/GroupWithZero/Center.lean + theorem Set.center_units_eq + theorem Set.center_units_subset + theorem Set.div_mem_center₀ + theorem Set.div_mem_centralizer₀ + theorem Set.inv_mem_center₀ + theorem Set.inv_mem_centralizer₀ + theorem Set.zero_mem_center + theorem Set.zero_mem_centralizer Modified Mathlib/GroupTheory/Subgroup/Center.lean Modified Mathlib/RingTheory/NonUnitalSubsemiring/Basic.lean 2024-07-01 09:41:26 e176772 feat(CategoryTheory): characterise locally surjective morphisms in categories of coherent/regular/extensive sheaves (#13898) This PR provides simpler characterisations of the property of morphisms of coherent/regular/extensive sheaves of being locally surjective. In particular, it suffices to check the local surjectivity condition on effective epimorphisms for coherent and regular sheaves, and for extensive sheaves the property is equivalent to being surjective on objects. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Sites/Coherent/LocallySurjective.lean + theorem CategoryTheory.coherentTopology.isLocallySurjective_iff + theorem CategoryTheory.coherentTopology.presheafIsLocallySurjective_iff + theorem CategoryTheory.extensiveTopology.isLocallySurjective_iff + theorem CategoryTheory.extensiveTopology.presheafIsLocallySurjective_iff + theorem CategoryTheory.extensiveTopology.surjective_of_isLocallySurjective_sheafOfTypes + theorem CategoryTheory.regularTopology.isLocallySurjective_iff + theorem CategoryTheory.regularTopology.isLocallySurjective_sheafOfTypes Modified Mathlib/CategoryTheory/Sites/LocallySurjective.lean + theorem CategoryTheory.Presheaf.isLocallySurjective_of_le 2024-07-01 09:41:24 041fe1f feat(Geometry/Manifold): state generalized Poincaré conjecture (#13887) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Geometry/Manifold/Instances/Sphere.lean Added Mathlib/Geometry/Manifold/PoincareConjecture.lean + def ContinuousMap.HomotopyEquiv.NonemptyDiffeomorphSphere Modified scripts/noshake.json 2024-07-01 08:43:01 898cc8d chore: update Mathlib dependencies 2024-07-01 (#14317) This PR updates the Mathlib dependencies. ESTIMATED CHANGES Modified lake-manifest.json 2024-07-01 08:43:00 58877de feat(RingTheory): presentations of algebras (#14271) Adds basic API for presentations of algebras and constructors for localization and base change. This contribution was created as part of the AIM workshop "Formalizing algebraic geometry" in June 2024. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/RingTheory/Generators.lean + def Algebra.Generators.baseChange + theorem Algebra.Generators.ker_eq_ker_aeval_val + def Algebra.Generators.localizationAway Modified Mathlib/RingTheory/Localization/Away/Basic.lean + theorem IsLocalization.Away.sec_spec Modified Mathlib/RingTheory/Localization/Basic.lean + theorem IsLocalization.mk'_pow Modified Mathlib/RingTheory/MvPolynomial/Localization.lean + def IsLocalization.Away.auxHom + def IsLocalization.Away.auxInv + theorem IsLocalization.Away.mvPolynomialQuotientEquiv_apply Added Mathlib/RingTheory/Presentation.lean + theorem Algebra.Presentation.aeval_val_relation + def Algebra.Presentation.baseChange + theorem Algebra.Presentation.finitePresentation_of_isFinite + theorem Algebra.Presentation.ideal_fg_of_isFinite + theorem Algebra.Presentation.localizationAway_dimension_zero + def Algebra.Presentation.quotientEquiv + theorem Algebra.Presentation.quotientEquiv_mk + theorem Algebra.Presentation.quotientEquiv_symm + structure Algebra.Presentation 2024-07-01 08:42:58 f9f5cd9 chore(Algebra/Module/LinearMap): split into Basic and Defs (#14226) There is nothing fancy about the split; just everything that is okay with the minimal imports for the important definitions has stayed in Defs. Very happy if anyone wants to follow-up with fine-grained rearrangements. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Algebra/Defs.lean Modified Mathlib/Algebra/Module/CharacterModule.lean Modified Mathlib/Algebra/Module/Equiv.lean Modified Mathlib/Algebra/Module/LinearMap/Basic.lean - theorem AddMonoidHom.coe_toIntLinearMap - def AddMonoidHom.toIntLinearMap - theorem AddMonoidHom.toIntLinearMap_injective - def AddMonoidHom.toNatLinearMap - theorem AddMonoidHom.toNatLinearMap_injective - theorem DistribMulActionHom.coe_toLinearMap - def DistribMulActionHom.toLinearMap - theorem DistribMulActionHom.toLinearMap_injective - def DistribMulActionHom.toSemilinearMap - theorem Function.Injective.injective_linearMapComp_left - theorem Function.Surjective.injective_linearMapComp_right - theorem IsLinearMap.isLinearMap_neg - theorem IsLinearMap.isLinearMap_smul' - theorem IsLinearMap.isLinearMap_smul - theorem IsLinearMap.map_neg - theorem IsLinearMap.map_sub - theorem IsLinearMap.map_zero - def IsLinearMap.mk' - theorem IsLinearMap.mk'_apply - structure IsLinearMap - theorem LinearMap.add_apply - theorem LinearMap.add_comp - theorem LinearMap.cancel_left - theorem LinearMap.cancel_right - theorem LinearMap.coe_addHom_mk - theorem LinearMap.coe_coe - theorem LinearMap.coe_comp - theorem LinearMap.coe_copy - theorem LinearMap.coe_injective - theorem LinearMap.coe_mk - theorem LinearMap.coe_restrictScalars - theorem LinearMap.coe_semilinearMap - theorem LinearMap.coe_smul - theorem LinearMap.coe_toAddHom - def LinearMap.comp - theorem LinearMap.comp_add - theorem LinearMap.comp_apply - theorem LinearMap.comp_assoc - theorem LinearMap.comp_id - theorem LinearMap.comp_neg - theorem LinearMap.comp_smul - theorem LinearMap.comp_sub - theorem LinearMap.comp_zero - theorem LinearMap.copy_eq - theorem LinearMap.default_def - def LinearMap.evalAddMonoidHom - theorem LinearMap.ext - theorem LinearMap.ext_iff - theorem LinearMap.ext_ring - theorem LinearMap.ext_ring_iff - theorem LinearMap.ext_ring_op - def LinearMap.id' - theorem LinearMap.id'_coe - def LinearMap.id - theorem LinearMap.id_apply - theorem LinearMap.id_coe - theorem LinearMap.id_comp - def LinearMap.inverse - theorem LinearMap.isLinear - theorem LinearMap.isLinearMap_of_compatibleSMul - theorem LinearMap.isScalarTower_of_injective - theorem LinearMap.map_eq_zero_iff - theorem LinearMap.map_smul_of_tower - theorem LinearMap.mk_coe - theorem LinearMap.neg_apply - theorem LinearMap.neg_comp - def LinearMap.restrictScalars - theorem LinearMap.restrictScalars_apply - theorem LinearMap.restrictScalars_inj - theorem LinearMap.restrictScalars_injective - theorem LinearMap.smul_apply - theorem LinearMap.smul_comp - theorem LinearMap.sub_apply - theorem LinearMap.sub_comp - def LinearMap.toAddMonoidHom' - def LinearMap.toAddMonoidHom - theorem LinearMap.toAddMonoidHom_coe - theorem LinearMap.toAddMonoidHom_injective - def LinearMap.toDistribMulActionHom - theorem LinearMap.toFun_eq_coe - theorem LinearMap.toLinearMap_injective - theorem LinearMap.zero_apply - theorem LinearMap.zero_comp - structure LinearMap - def Module.compHom.toLinearMap - def RingHom.toSemilinearMap - theorem SemilinearMapClass.map_smul_inv - def SemilinearMapClass.semilinearMap Added Mathlib/Algebra/Module/LinearMap/Defs.lean + theorem AddMonoidHom.coe_toIntLinearMap + def AddMonoidHom.toIntLinearMap + theorem AddMonoidHom.toIntLinearMap_injective + def AddMonoidHom.toNatLinearMap + theorem AddMonoidHom.toNatLinearMap_injective + theorem DistribMulActionHom.coe_toLinearMap + def DistribMulActionHom.toLinearMap + theorem DistribMulActionHom.toLinearMap_injective + def DistribMulActionHom.toSemilinearMap + theorem Function.Injective.injective_linearMapComp_left + theorem Function.Surjective.injective_linearMapComp_right + theorem IsLinearMap.isLinearMap_neg + theorem IsLinearMap.isLinearMap_smul' + theorem IsLinearMap.isLinearMap_smul + theorem IsLinearMap.map_neg + theorem IsLinearMap.map_sub + theorem IsLinearMap.map_zero + def IsLinearMap.mk' + theorem IsLinearMap.mk'_apply + structure IsLinearMap + theorem LinearMap.add_apply + theorem LinearMap.add_comp + theorem LinearMap.cancel_left + theorem LinearMap.cancel_right + theorem LinearMap.coe_addHom_mk + theorem LinearMap.coe_coe + theorem LinearMap.coe_comp + theorem LinearMap.coe_copy + theorem LinearMap.coe_injective + theorem LinearMap.coe_mk + theorem LinearMap.coe_restrictScalars + theorem LinearMap.coe_semilinearMap + theorem LinearMap.coe_smul + theorem LinearMap.coe_toAddHom + def LinearMap.comp + theorem LinearMap.comp_add + theorem LinearMap.comp_apply + theorem LinearMap.comp_assoc + theorem LinearMap.comp_id + theorem LinearMap.comp_neg + theorem LinearMap.comp_smul + theorem LinearMap.comp_sub + theorem LinearMap.comp_zero + theorem LinearMap.copy_eq + theorem LinearMap.default_def + def LinearMap.evalAddMonoidHom + theorem LinearMap.ext + theorem LinearMap.ext_iff + theorem LinearMap.ext_ring + theorem LinearMap.ext_ring_iff + theorem LinearMap.ext_ring_op + def LinearMap.id' + theorem LinearMap.id'_coe + def LinearMap.id + theorem LinearMap.id_apply + theorem LinearMap.id_coe + theorem LinearMap.id_comp + def LinearMap.inverse + theorem LinearMap.isLinear + theorem LinearMap.isLinearMap_of_compatibleSMul + theorem LinearMap.isScalarTower_of_injective + theorem LinearMap.map_eq_zero_iff + theorem LinearMap.map_smul_of_tower + theorem LinearMap.mk_coe + theorem LinearMap.neg_apply + theorem LinearMap.neg_comp + def LinearMap.restrictScalars + theorem LinearMap.restrictScalars_apply + theorem LinearMap.restrictScalars_inj + theorem LinearMap.restrictScalars_injective + theorem LinearMap.smul_apply + theorem LinearMap.smul_comp + theorem LinearMap.sub_apply + theorem LinearMap.sub_comp + def LinearMap.toAddMonoidHom' + def LinearMap.toAddMonoidHom + theorem LinearMap.toAddMonoidHom_coe + theorem LinearMap.toAddMonoidHom_injective + def LinearMap.toDistribMulActionHom + theorem LinearMap.toFun_eq_coe + theorem LinearMap.toLinearMap_injective + theorem LinearMap.zero_apply + theorem LinearMap.zero_comp + structure LinearMap + def Module.compHom.toLinearMap + def RingHom.toSemilinearMap + theorem SemilinearMapClass.map_smul_inv + def SemilinearMapClass.semilinearMap Modified Mathlib/Algebra/Module/LinearMap/End.lean Modified Mathlib/Algebra/Module/LinearMap/Prod.lean Modified Mathlib/Algebra/Module/Submodule/Lattice.lean Modified Mathlib/Algebra/Module/ULift.lean Modified Mathlib/Algebra/Ring/CentroidHom.lean Modified Mathlib/Algebra/Star/Module.lean Modified Mathlib/Algebra/Vertex/HVertexOperator.lean Modified Mathlib/Analysis/InnerProductSpace/Basic.lean Modified Mathlib/CategoryTheory/Linear/Basic.lean Modified Mathlib/CategoryTheory/Linear/LinearFunctor.lean Modified Mathlib/Data/DFinsupp/Basic.lean Modified Mathlib/Data/Matrix/Basic.lean Modified Mathlib/LinearAlgebra/Eigenspace/Basic.lean Modified Mathlib/LinearAlgebra/LinearPMap.lean Modified Mathlib/LinearAlgebra/Reflection.lean Modified Mathlib/LinearAlgebra/SesquilinearForm.lean Modified Mathlib/RepresentationTheory/Basic.lean Modified Mathlib/RingTheory/HahnSeries/Addition.lean Modified scripts/noshake.json 2024-07-01 08:42:57 c5809f7 feat: the distinguished triangle in the derived category associated to a short exact sequence of cochain complexes (#13742) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Homology/DerivedCategory/Basic.lean + theorem DerivedCategory.mem_distTriang_iff Added Mathlib/Algebra/Homology/DerivedCategory/ShortExact.lean + theorem DerivedCategory.triangleOfSES_distinguished 2024-07-01 08:42:56 ec0fac8 feat(CategoryTheory/SmallObject): the category of transfinite iterations of a functor (#12211) In this PR, we construct the category of transfinite iterations of a functor. We show that there is at most one morphism between two objects in this category. In future PRs, we shall show (by transfinite induction) that there is exactly one (iso)morphism between two objects, and that there is always an object (that is unique up to a unique isomorphism). ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/SmallObject/Iteration.lean + def CategoryTheory.Functor.Iteration.Hom.comp + theorem CategoryTheory.Functor.Iteration.Hom.ext' + def CategoryTheory.Functor.Iteration.Hom.id + structure CategoryTheory.Functor.Iteration.Hom + def CategoryTheory.Functor.Iteration.coconeOfLE + theorem CategoryTheory.Functor.Iteration.mapSucc_eq + def CategoryTheory.Functor.Iteration.restrictionLT + theorem CategoryTheory.Functor.Iteration.restrictionLT_map + theorem CategoryTheory.Functor.Iteration.restrictionLT_obj + structure CategoryTheory.Functor.Iteration Modified Mathlib/Order/Monotone/Basic.lean + theorem monotone_inclusion_le_le_of_le + theorem monotone_inclusion_lt_le_of_le + theorem monotone_inclusion_lt_lt_of_le 2024-07-01 07:02:48 3ad5ad6 chore: deactivate Prop-dependent instances (#12987) See Zulip discussion at https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/Subgroups.20are.20empty/near/439227685 ESTIMATED CHANGES Modified Mathlib/Data/Finset/Powerset.lean + def Finset.decidableExistsOfDecidableSSubsets + def Finset.decidableForallOfDecidableSSubsets 2024-07-01 06:47:30 58d07ea chore(scripts/create-adaptations-pr.sh): more checks, more docs (#14228) ESTIMATED CHANGES Modified scripts/create-adaptation-pr.sh 2024-07-01 02:54:34 f5c3f06 chore: move toolchain to v4.10.0-rc1 and merge bump/v4.10.0 (#14311) ESTIMATED CHANGES Modified Archive/Examples/IfNormalization/Result.lean Modified Archive/Examples/IfNormalization/WithoutAesop.lean Modified Archive/Imo/Imo1960Q1.lean Modified Archive/Imo/Imo1994Q1.lean +/- theorem Imo1994Q1.tedious Modified Mathlib/Algebra/BigOperators/Fin.lean +/- theorem Fin.prod_univ_get Modified Mathlib/Algebra/BigOperators/Group/Finset.lean Modified Mathlib/Algebra/BigOperators/Group/List.lean + theorem List.drop_take_succ_join_eq_getElem Modified Mathlib/Algebra/BigOperators/Ring/Multiset.lean Modified Mathlib/Algebra/Category/ModuleCat/Basic.lean Modified Mathlib/Algebra/Category/Ring/Constructions.lean Modified Mathlib/Algebra/DirectLimit.lean Modified Mathlib/Algebra/GradedMonoid.lean Modified Mathlib/Algebra/Group/Fin.lean Modified Mathlib/Algebra/Group/Pi/Basic.lean Modified Mathlib/Algebra/Group/Pi/Lemmas.lean Modified Mathlib/Algebra/Homology/Homotopy.lean Modified Mathlib/Algebra/Homology/ImageToKernel.lean Modified Mathlib/Algebra/Homology/ShortComplex/Limits.lean Modified Mathlib/Algebra/Lie/Classical.lean Modified Mathlib/Algebra/Lie/DirectSum.lean Modified Mathlib/Algebra/Lie/Submodule.lean Modified Mathlib/Algebra/MvPolynomial/Equiv.lean Modified Mathlib/Algebra/TrivSqZeroExt.lean Modified Mathlib/AlgebraicGeometry/Morphisms/QuasiCompact.lean Modified Mathlib/AlgebraicGeometry/Morphisms/RingHomProperties.lean Modified Mathlib/AlgebraicGeometry/ProjectiveSpectrum/Scheme.lean Modified Mathlib/Analysis/Analytic/Composition.lean Modified Mathlib/Analysis/Calculus/ContDiff/Bounds.lean Modified Mathlib/Analysis/Calculus/FDeriv/Analytic.lean Modified Mathlib/Analysis/Calculus/FormalMultilinearSeries.lean Modified Mathlib/Analysis/Calculus/ParametricIntegral.lean Modified Mathlib/Analysis/Calculus/UniformLimitsDeriv.lean Modified Mathlib/Analysis/Fourier/PoissonSummation.lean Modified Mathlib/Analysis/InnerProductSpace/LinearPMap.lean Modified Mathlib/Analysis/NormedSpace/Multilinear/Basic.lean Modified Mathlib/Analysis/NormedSpace/OperatorNorm/Bilinear.lean Modified Mathlib/Analysis/NormedSpace/PiLp.lean +/- theorem PiLp.dist_eq_iSup +/- theorem PiLp.edist_eq_iSup +/- theorem PiLp.norm_eq_ciSup Modified Mathlib/Analysis/NormedSpace/ProdLp.lean +/- theorem WithLp.prod_norm_eq_sup Modified Mathlib/Analysis/NormedSpace/lpSpace.lean +/- theorem lp.norm_eq_ciSup Modified Mathlib/Analysis/ODE/PicardLindelof.lean Modified Mathlib/CategoryTheory/Abelian/Homology.lean Modified Mathlib/CategoryTheory/Category/PartialFun.lean Modified Mathlib/CategoryTheory/Closed/Monoidal.lean Modified Mathlib/CategoryTheory/ComposableArrows.lean Modified Mathlib/CategoryTheory/EffectiveEpi/Preserves.lean +/- theorem CategoryTheory.Functor.effectiveEpiFamily_of_map Modified Mathlib/CategoryTheory/Functor/KanExtension/Pointwise.lean Modified Mathlib/CategoryTheory/GradedObject.lean Modified Mathlib/CategoryTheory/Limits/HasLimits.lean Modified Mathlib/CategoryTheory/Limits/Preserves/Shapes/BinaryProducts.lean Modified Mathlib/CategoryTheory/Limits/Preserves/Shapes/Equalizers.lean Modified Mathlib/CategoryTheory/Limits/Preserves/Shapes/Kernels.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Images.lean Modified Mathlib/CategoryTheory/Localization/Construction.lean Modified Mathlib/CategoryTheory/Localization/Predicate.lean Modified Mathlib/CategoryTheory/Preadditive/Biproducts.lean Modified Mathlib/CategoryTheory/Sites/Adjunction.lean Modified Mathlib/CategoryTheory/Sites/Canonical.lean Modified Mathlib/CategoryTheory/Sites/CoverLifting.lean Modified Mathlib/CategoryTheory/Sites/CoversTop.lean Modified Mathlib/CategoryTheory/Sites/NonabelianCohomology/H1.lean Modified Mathlib/CategoryTheory/Sites/Sheaf.lean Modified Mathlib/Combinatorics/Additive/FreimanHom.lean Modified Mathlib/Combinatorics/Enumerative/Composition.lean +/- theorem Composition.blocks_pos' +/- theorem Composition.one_le_blocks' + theorem List.getElem_splitWrtComposition' + theorem List.getElem_splitWrtComposition + theorem List.getElem_splitWrtCompositionAux Modified Mathlib/Combinatorics/SimpleGraph/Coloring.lean Modified Mathlib/Combinatorics/SimpleGraph/Partition.lean Modified Mathlib/Combinatorics/SimpleGraph/Triangle/Basic.lean Modified Mathlib/Combinatorics/Young/YoungDiagram.lean +/- theorem YoungDiagram.get_rowLens Modified Mathlib/Computability/Partrec.lean Modified Mathlib/Computability/PartrecCode.lean Modified Mathlib/Computability/Primrec.lean Modified Mathlib/Computability/TuringMachine.lean Modified Mathlib/Control/Basic.lean Modified Mathlib/Control/LawfulFix.lean Modified Mathlib/Data/Fin/Basic.lean + theorem Fin.neg_def Modified Mathlib/Data/Fin/Tuple/NatAntidiagonal.lean Modified Mathlib/Data/FinEnum.lean Modified Mathlib/Data/Finset/Basic.lean Modified Mathlib/Data/Finset/Card.lean +/- theorem Finset.card_eq_zero Modified Mathlib/Data/Finset/Image.lean Modified Mathlib/Data/Finsupp/Basic.lean Modified Mathlib/Data/Finsupp/ToDFinsupp.lean Modified Mathlib/Data/Fintype/Basic.lean +/- theorem Fin.univ_image_get' + theorem Fin.univ_image_getElem' Modified Mathlib/Data/List/Basic.lean + theorem List.cons_getElem_drop_succ - theorem List.eq_nil_of_map_eq_nil - theorem List.foldl_map' - theorem List.foldr_map' + theorem List.getElem?_indexOf + theorem List.getElem?_length + theorem List.getElem?_pmap + theorem List.getElem?_scanl_zero + theorem List.getElem_attach + theorem List.getElem_eq_getElem? + theorem List.getElem_indexOf + theorem List.getElem_map_rev + theorem List.getElem_pmap + theorem List.getElem_reverse + theorem List.getElem_reverse_aux₂ + theorem List.getElem_scanl_zero + theorem List.getElem_set_of_ne + theorem List.getLast?_eq_none - theorem List.getLast?_isNone - theorem List.getLast_map +/- theorem List.get_reverse +/- theorem List.get_reverse_aux₂ - theorem List.head?_map +/- theorem List.indexOf_get - theorem List.join_replicate_nil - theorem List.map_bind - theorem List.map_concat - theorem List.map_congr - theorem List.map_const' - theorem List.map_const - theorem List.map_eq_foldr - theorem List.map_eq_map_iff - theorem List.map_eq_replicate_iff - theorem List.map_filter_eq_foldr - theorem List.map_id'' - theorem List.map_join - theorem List.map_replicate - theorem List.map_reverse +/- theorem List.replicate_left_inj - theorem List.replicate_one +/- theorem List.replicate_right_inj' - theorem List.replicate_zero - theorem List.reverse_replicate - theorem List.takeWhile_cons - theorem List.takeWhile_nil Modified Mathlib/Data/List/Cycle.lean Modified Mathlib/Data/List/EditDistance/Estimator.lean Modified Mathlib/Data/List/Enum.lean - theorem List.enum_cons - theorem List.enum_nil +/- theorem List.get?_enumFrom + theorem List.getElem?_enum + theorem List.getElem?_enumFrom + theorem List.getElem_enum + theorem List.getElem_enumFrom Modified Mathlib/Data/List/FinRange.lean Modified Mathlib/Data/List/GetD.lean +/- theorem List.getD_map - theorem List.getD_replicate_default_eq - theorem List.getD_singleton_default_eq + theorem List.getElem?_getD_replicate_default_eq + theorem List.getElem?_getD_singleton_default_eq Modified Mathlib/Data/List/Infix.lean + theorem List.IsPrefix.getElem + theorem List.getElem_inits + theorem List.getElem_tails - theorem List.insert_nil Modified Mathlib/Data/List/InsertNth.lean + theorem List.getElem_insertNth_add_succ + theorem List.getElem_insertNth_of_lt + theorem List.getElem_insertNth_self Modified Mathlib/Data/List/Intervals.lean Modified Mathlib/Data/List/Iterate.lean +/- theorem List.get?_iterate + theorem List.getElem?_iterate + theorem List.getElem_iterate Modified Mathlib/Data/List/Join.lean + theorem List.drop_take_succ_eq_cons_getElem + theorem List.drop_take_succ_join_eq_getElem' Modified Mathlib/Data/List/NatAntidiagonal.lean Modified Mathlib/Data/List/Nodup.lean +/- theorem List.Nodup.erase_get + theorem List.Nodup.erase_getElem + theorem List.Nodup.getElem_inj_iff + theorem List.indexOf_getElem + theorem List.nodup_iff_getElem?_ne_getElem? + theorem List.nodup_iff_injective_getElem Modified Mathlib/Data/List/NodupEquivFin.lean Modified Mathlib/Data/List/OfFn.lean +/- theorem List.get?_ofFn + theorem List.getElem?_ofFn + theorem List.getElem_ofFn + theorem List.getElem_ofFn_go + theorem List.ofFn_getElem + theorem List.ofFn_getElem_eq_map Modified Mathlib/Data/List/Perm.lean + theorem List.getElem_permutations'Aux Modified Mathlib/Data/List/Permutation.lean Modified Mathlib/Data/List/Range.lean + theorem List.getElem_finRange Modified Mathlib/Data/List/Rotate.lean + theorem List.getElem?_rotate + theorem List.getElem_cyclicPermutations + theorem List.getElem_rotate +/- theorem List.head?_rotate Modified Mathlib/Data/List/Sort.lean Modified Mathlib/Data/List/Sublists.lean Modified Mathlib/Data/List/ToFinsupp.lean Modified Mathlib/Data/List/Zip.lean + theorem List.getElem?_zip_eq_some + theorem List.getElem?_zip_with + theorem List.getElem?_zip_with_eq_some + theorem List.getElem_zip + theorem List.getElem_zipWith Modified Mathlib/Data/Matrix/Basic.lean Modified Mathlib/Data/Matrix/DMatrix.lean Modified Mathlib/Data/Multiset/Basic.lean + theorem Multiset.filter_map - theorem Multiset.map_filter Modified Mathlib/Data/Multiset/Fintype.lean Modified Mathlib/Data/Multiset/Powerset.lean Modified Mathlib/Data/Nat/ChineseRemainder.lean Modified Mathlib/Data/Nat/Defs.lean - theorem Nat.add_one_le_iff - theorem Nat.lt_add_one_iff Modified Mathlib/Data/Nat/Digits.lean Modified Mathlib/Data/Nat/Factorization/Basic.lean Modified Mathlib/Data/Nat/Nth.lean Modified Mathlib/Data/Ordmap/Ordset.lean Modified Mathlib/Data/Part.lean + theorem Part.toOption_eq_none - theorem Part.toOption_isNone Modified Mathlib/Data/Prod/Basic.lean + theorem Prod.map_apply' - theorem Prod.map_apply - theorem Prod.map_fst - theorem Prod.map_snd Modified Mathlib/Data/Set/List.lean +/- theorem Set.range_list_getD +/- theorem Set.range_list_getI Modified Mathlib/Data/String/Basic.lean Modified Mathlib/Data/Vector/Basic.lean Modified Mathlib/Data/Vector/Zip.lean Modified Mathlib/Dynamics/PeriodicPts.lean Modified Mathlib/FieldTheory/PrimitiveElement.lean Modified Mathlib/FieldTheory/SeparableClosure.lean Modified Mathlib/Geometry/Manifold/ContMDiff/Basic.lean Modified Mathlib/Geometry/Manifold/Instances/Real.lean Modified Mathlib/Geometry/Manifold/MFDeriv/SpecificFunctions.lean Modified Mathlib/GroupTheory/Coxeter/Inversion.lean Modified Mathlib/GroupTheory/Perm/Cycle/Concrete.lean Modified Mathlib/GroupTheory/Perm/Cycle/PossibleTypes.lean Modified Mathlib/GroupTheory/Perm/List.lean + theorem List.formPerm_apply_getElem + theorem List.formPerm_apply_getElem_length + theorem List.formPerm_apply_getElem_zero + theorem List.formPerm_apply_lt_getElem + theorem List.formPerm_pow_apply_getElem Modified Mathlib/GroupTheory/SchurZassenhaus.lean Modified Mathlib/GroupTheory/SpecificGroups/Alternating.lean Modified Mathlib/Init/Data/List/Instances.lean - theorem List.bind_assoc - theorem List.bind_singleton' - theorem List.bind_singleton - theorem List.map_eq_bind Modified Mathlib/Init/Data/Nat/Basic.lean - theorem Nat.add_one_pos Modified Mathlib/Lean/Expr/Basic.lean Modified Mathlib/Lean/Name.lean Modified Mathlib/LinearAlgebra/Dimension/Finite.lean Modified Mathlib/LinearAlgebra/ExteriorAlgebra/OfAlternating.lean Modified Mathlib/LinearAlgebra/Matrix/Adjugate.lean Modified Mathlib/LinearAlgebra/Matrix/Charpoly/Coeff.lean Modified Mathlib/LinearAlgebra/Matrix/SpecialLinearGroup.lean Modified Mathlib/LinearAlgebra/Matrix/Transvection.lean Modified Mathlib/LinearAlgebra/TensorProduct/Graded/Internal.lean Modified Mathlib/LinearAlgebra/TensorProduct/Matrix.lean Modified Mathlib/Logic/Basic.lean Modified Mathlib/MeasureTheory/Constructions/Pi.lean Modified Mathlib/MeasureTheory/Decomposition/Lebesgue.lean Modified Mathlib/MeasureTheory/Decomposition/RadonNikodym.lean Modified Mathlib/MeasureTheory/Group/FundamentalDomain.lean Modified Mathlib/MeasureTheory/Integral/Bochner.lean Modified Mathlib/MeasureTheory/Integral/CircleTransform.lean Modified Mathlib/ModelTheory/Definability.lean Modified Mathlib/ModelTheory/DirectLimit.lean Modified Mathlib/ModelTheory/Encoding.lean Modified Mathlib/ModelTheory/Fraisse.lean Modified Mathlib/NumberTheory/ClassNumber/AdmissibleAbsoluteValue.lean Modified Mathlib/NumberTheory/ClassNumber/Finite.lean Modified Mathlib/NumberTheory/FLT/Three.lean Modified Mathlib/NumberTheory/Harmonic/GammaDeriv.lean Modified Mathlib/NumberTheory/LucasLehmer.lean Modified Mathlib/NumberTheory/ModularForms/JacobiTheta/Bounds.lean Modified Mathlib/NumberTheory/Padics/PadicVal.lean Modified Mathlib/NumberTheory/RamificationInertia.lean Modified Mathlib/NumberTheory/SmoothNumbers.lean Modified Mathlib/Order/CompleteBooleanAlgebra.lean Modified Mathlib/Order/Concept.lean Modified Mathlib/Order/Filter/ENNReal.lean Modified Mathlib/Order/Filter/Ultrafilter.lean Modified Mathlib/Order/Heyting/Basic.lean Modified Mathlib/Order/Partition/Finpartition.lean Modified Mathlib/Probability/Density.lean Modified Mathlib/Probability/Distributions/Gaussian.lean Modified Mathlib/Probability/ProbabilityMassFunction/Monad.lean Modified Mathlib/Probability/Variance.lean Modified Mathlib/RingTheory/Filtration.lean Modified Mathlib/RingTheory/HahnSeries/Basic.lean Modified Mathlib/RingTheory/Localization/LocalizationLocalization.lean Modified Mathlib/RingTheory/MvPowerSeries/Basic.lean Modified Mathlib/RingTheory/OreLocalization/Basic.lean Modified Mathlib/RingTheory/OreLocalization/Ring.lean Modified Mathlib/RingTheory/PolynomialAlgebra.lean Modified Mathlib/RingTheory/WittVector/StructurePolynomial.lean Modified Mathlib/RingTheory/WittVector/Verschiebung.lean Modified Mathlib/SetTheory/Cardinal/Basic.lean +/- theorem Cardinal.lift_iInf +/- theorem Cardinal.lift_max +/- theorem Cardinal.lift_min +/- theorem Cardinal.lift_sInf +/- theorem Cardinal.lift_succ Modified Mathlib/SetTheory/Cardinal/Cofinality.lean Modified Mathlib/SetTheory/Cardinal/Continuum.lean Modified Mathlib/SetTheory/Cardinal/Ordinal.lean Modified Mathlib/SetTheory/Game/PGame.lean Modified Mathlib/SetTheory/Game/Short.lean Modified Mathlib/SetTheory/Ordinal/Arithmetic.lean Modified Mathlib/Tactic/ExtendDoc.lean Modified Mathlib/Tactic/HelpCmd.lean Modified Mathlib/Tactic/NormNum/BigOperators.lean Modified Mathlib/Testing/SlimCheck/Functions.lean Modified Mathlib/Topology/Algebra/GroupCompletion.lean Modified Mathlib/Topology/Algebra/InfiniteSum/Basic.lean Modified Mathlib/Topology/Category/Profinite/Nobeling.lean Modified Mathlib/Topology/Category/Profinite/Product.lean Modified Mathlib/Topology/Connected/PathConnected.lean Modified Mathlib/Topology/ContinuousFunction/Bounded.lean Modified Mathlib/Topology/ContinuousFunction/Ideals.lean Modified Mathlib/Topology/Covering.lean Modified Mathlib/Topology/FiberBundle/Constructions.lean Modified Mathlib/Topology/Gluing.lean Modified Mathlib/Topology/Homotopy/HomotopyGroup.lean Modified Mathlib/Topology/Instances/EReal.lean Modified Mathlib/Topology/MetricSpace/Completion.lean Modified Mathlib/Topology/MetricSpace/Isometry.lean Modified Mathlib/Topology/MetricSpace/Pseudo/Defs.lean Modified Mathlib/Topology/Metrizable/Uniformity.lean Modified Mathlib/Topology/Sheaves/Presheaf.lean Modified Mathlib/Topology/UniformSpace/Basic.lean Modified Mathlib/Topology/UniformSpace/Completion.lean Modified Mathlib/Topology/UniformSpace/UniformConvergence.lean Modified Mathlib/Topology/UniformSpace/UniformConvergenceTopology.lean Modified Mathlib/Topology/UniformSpace/UniformEmbedding.lean Modified Mathlib/Util/Superscript.lean Modified lake-manifest.json Modified lakefile.lean Modified lean-toolchain Modified scripts/nolints.json Modified scripts/noshake.json Modified test/CategoryTheory/Elementwise.lean Modified test/LibrarySearch/basic.lean Modified test/congr.lean Modified test/convert.lean 2024-07-01 02:02:25 f0957a7 chore: bump toolchain to v4.9.0 (#14307) ESTIMATED CHANGES Modified .github/workflows/lean4checker.yml Modified lake-manifest.json Modified lean-toolchain 2024-07-01 01:36:01 8a42f33 feat(LocallyConvex): add `isVonNBounded_union` etc (#14275) ESTIMATED CHANGES Modified Mathlib/Analysis/LocallyConvex/Bounded.lean + theorem Bornology.IsVonNBounded.of_boundedSpace + theorem Bornology.isVonNBounded_biUnion + theorem Bornology.isVonNBounded_iUnion + theorem Bornology.isVonNBounded_insert + theorem Bornology.isVonNBounded_sUnion + theorem Bornology.isVonNBounded_union 2024-07-01 00:30:56 3dd9564 feat: commutation with shifts of functors from quotient categories (#14087) When a relation on morphisms `r : HomRel C` is compatible with the shift by an additive monoid, and `F : C ⥤ D` is a functor which commutes with the shift and is compatible with `r`, then the induced functor `Quotient.lift r F _ : Quotient r ⥤ D` also commutes with the shift. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Quotient.lean + theorem CategoryTheory.Quotient.lift_obj_functor_obj Modified Mathlib/CategoryTheory/Shift/Quotient.lean + theorem CategoryTheory.Quotient.LiftCommShift.iso_hom_app + theorem CategoryTheory.Quotient.LiftCommShift.iso_inv_app 2024-07-01 00:30:54 5c4a35d feat(CategoryTheory/GradedObject): construction of the tensor product (#11703) In this PR, the tensor product of two graded objects is constructed. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/CategoryTheory/GradedObject/Bifunctor.lean + theorem CategoryTheory.GradedObject.ι_mapBifunctorMapObjDesc Added Mathlib/CategoryTheory/GradedObject/Monoidal.lean + theorem CategoryTheory.GradedObject.Monoidal.tensorHom_def + theorem CategoryTheory.GradedObject.Monoidal.tensorObj_ext + theorem CategoryTheory.GradedObject.Monoidal.tensor_comp + theorem CategoryTheory.GradedObject.Monoidal.tensor_id + theorem CategoryTheory.GradedObject.Monoidal.ι_tensorHom + theorem CategoryTheory.GradedObject.Monoidal.ι_tensorObjDesc 2024-06-30 23:36:49 454c405 feat(Order/Interval/Set): trivial generalization of a lemma about `UnorderedInterval` (#14199) - Add `uIoc_subset_uIcc` - Relax the hypothesis of `uIoc_of_lt` from a `<` to a `≤` and change the name of the lemma to `uIoc_of_ge` - Fix dependencies ESTIMATED CHANGES Modified Mathlib/Analysis/SpecialFunctions/Gaussian/FourierTransform.lean Modified Mathlib/Analysis/SpecialFunctions/Integrals.lean Modified Mathlib/MeasureTheory/Integral/IntervalAverage.lean Modified Mathlib/MeasureTheory/Integral/IntervalIntegral.lean Modified Mathlib/Order/Interval/Set/OrderEmbedding.lean Modified Mathlib/Order/Interval/Set/UnorderedInterval.lean + theorem Set.uIoc_of_ge - theorem Set.uIoc_of_lt + theorem Set.uIoc_subset_uIcc 2024-06-30 23:36:48 b1197d7 feat(ENat/Basic): add more `simp`/`gcongr` lemmas (#13651) ESTIMATED CHANGES Modified Mathlib/Data/ENat/Basic.lean + theorem ENat.one_ne_top + theorem ENat.toNat_le_of_le_coe + theorem ENat.toNat_le_toNat + theorem ENat.top_ne_one + theorem ENat.top_ne_zero + theorem ENat.zero_ne_top 2024-06-30 22:33:00 b52e4f8 chore(Logic): reduce use of autoImplicit (#14301) The remaining uses are - three declarations in Logic/Basic (which need it, somehow) - in UnivLE, where removing this yields funky errors related to explicit universe levels - in Logic/Equiv/Basic, which is a huge file; fixing it is less trivial ESTIMATED CHANGES Modified Mathlib/Logic/Basic.lean Modified Mathlib/Logic/Small/Group.lean Modified Mathlib/Logic/Small/Module.lean Modified Mathlib/Logic/Small/Ring.lean 2024-06-30 22:32:59 2c184a6 chore(RingTheory): remove use of autoImplicit (#14300) And delete one porting note which very surely seems non-actionable. ESTIMATED CHANGES Modified Mathlib/RingTheory/FinitePresentation.lean Modified Mathlib/RingTheory/Jacobson.lean Modified Mathlib/RingTheory/RingInvo.lean Modified Mathlib/RingTheory/WittVector/Isocrystal.lean 2024-06-30 22:32:58 8f96947 feat: also lint when debug options are set (#14294) For the same reason as the other existing options: these are not meant to stay in production code. ESTIMATED CHANGES Modified Mathlib/Tactic/Linter/Style.lean +/- def Mathlib.Linter.Style.SetOption.parse_set_option Modified test/LintStyle.lean 2024-06-30 22:15:55 c64a8cc chore(Topology): remove all but one use of autoImplicit (#14298) And remove superfluous open's in Order/ExtendFrom. ESTIMATED CHANGES Modified Mathlib/Topology/Algebra/ConstMulAction.lean +/- theorem isClosed_setOf_map_smul Modified Mathlib/Topology/Category/Stonean/Limits.lean Modified Mathlib/Topology/Order/ExtendFrom.lean Modified Mathlib/Topology/Sheaves/Presheaf.lean +/- theorem TopCat.Presheaf.comp_app +/- theorem TopCat.Presheaf.ext 2024-06-30 19:02:32 c1c6ecd feat: simple lemmas about fractional ideals (#14099) Prove five lemmas about fractional ideals (zero_mem, fg_of_isNoetherianRing, den_mem_inv, num_le_mul_inv, bot_lt_mul_inv). This is part 1/4 of a proof of `isDedekindDomain_iff_isDedekindDomainDvr`. Part 2: #14216 Part 3: #14237 Part 4: #14242 ESTIMATED CHANGES Modified Mathlib/RingTheory/DedekindDomain/Ideal.lean + theorem FractionalIdeal.bot_lt_mul_inv + theorem FractionalIdeal.den_mem_inv + theorem FractionalIdeal.num_le_mul_inv Modified Mathlib/RingTheory/FractionalIdeal/Basic.lean + theorem FractionalIdeal.fg_of_isNoetherianRing + theorem FractionalIdeal.zero_mem 2024-06-30 18:13:51 4e1da24 chore: register `Sym2` with `induction` (#14288) Split from #12605 Also cleans up some proofs that used `revert` instead of `induction`. ESTIMATED CHANGES Modified Mathlib/Combinatorics/SimpleGraph/DegreeSum.lean Modified Mathlib/Combinatorics/SimpleGraph/Finite.lean Modified Mathlib/Combinatorics/SimpleGraph/Matching.lean Modified Mathlib/Combinatorics/SimpleGraph/Subgraph.lean Modified Mathlib/Data/Sym/Sym2.lean Modified Mathlib/Order/GameAdd.lean 2024-06-30 17:16:38 8c938d7 feat(CategoryTheory): two more versions of the Yoneda lemma (#14295) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Types.lean + theorem CategoryTheory.uliftFunctor_obj Modified Mathlib/CategoryTheory/Yoneda.lean + def CategoryTheory.coyonedaCompYonedaObj + def CategoryTheory.largeCurriedCoyonedaLemma + def CategoryTheory.largeCurriedYonedaLemma + def CategoryTheory.yonedaOpCompYonedaObj 2024-06-30 14:36:48 b03e60c fix: setOption linter also recognises a bare `profiler` option (#14006) Fix a missing edge case in the linter, when an option name had only one component (as in the profiler option), and add a test. At the same time, rewrite the linter to use the `name` API (much nicer!), and perform two small clean-ups to the test file. ESTIMATED CHANGES Modified Mathlib/Tactic/Linter/Style.lean +/- def Mathlib.Linter.Style.SetOption.parse_set_option Renamed test/lint_style.lean to test/LintStyle.lean 2024-06-30 14:09:00 db17c10 feat(Data/Real/EReal): add inverse and division of `ENNReal`s (#14224) This PR adds API for inverse and division of extended reals. ESTIMATED CHANGES Modified Mathlib/Data/Real/EReal.lean + theorem EReal.antitone_div_right_of_nonpos + theorem EReal.bot_div_of_neg_ne_bot + theorem EReal.bot_div_of_pos_ne_top + theorem EReal.coe_div + theorem EReal.coe_inv + theorem EReal.div_bot + theorem EReal.div_div + theorem EReal.div_eq_inv_mul + theorem EReal.div_le_div_right_of_nonneg + theorem EReal.div_le_div_right_of_nonpos + theorem EReal.div_le_iff_le_mul + theorem EReal.div_lt_div_right_of_neg + theorem EReal.div_lt_div_right_of_pos + theorem EReal.div_mul_cancel + theorem EReal.div_nonneg + theorem EReal.div_nonneg_of_nonpos_of_nonpos + theorem EReal.div_nonpos_of_nonneg_of_nonpos + theorem EReal.div_nonpos_of_nonpos_of_nonneg + theorem EReal.div_right_distrib_of_nonneg + theorem EReal.div_self + theorem EReal.div_top + theorem EReal.div_zero + theorem EReal.inv_bot + theorem EReal.inv_inv + theorem EReal.inv_neg + theorem EReal.inv_neg_of_neg_ne_bot + theorem EReal.inv_nonneg_of_nonneg + theorem EReal.inv_nonpos_of_nonpos + theorem EReal.inv_pos_of_pos_ne_top + theorem EReal.inv_top + theorem EReal.inv_zero + theorem EReal.le_div_iff_mul_le + theorem EReal.monotone_div_right_of_nonneg + theorem EReal.mul_div + theorem EReal.mul_div_cancel + theorem EReal.mul_div_mul_cancel + theorem EReal.mul_div_right + theorem EReal.mul_inv + theorem EReal.sign_mul_inv_abs' + theorem EReal.sign_mul_inv_abs + theorem EReal.strictAnti_div_right_of_neg + theorem EReal.strictMono_div_right_of_pos + theorem EReal.top_div_of_neg_ne_bot + theorem EReal.top_div_of_pos_ne_top + theorem EReal.zero_div Modified scripts/style-exceptions.txt 2024-06-30 13:30:16 93eba12 feat: drop sfiniteness in a lemma on L^p norm for a restricted measure (#14289) ESTIMATED CHANGES Modified Mathlib/Analysis/FunctionalSpaces/SobolevInequality.lean Modified Mathlib/MeasureTheory/Function/EssSup.lean + theorem ENNReal.essSup_restrict_eq_of_support_subset Modified Mathlib/MeasureTheory/Function/LpSeminorm/Basic.lean + theorem MeasureTheory.snorm_restrict_eq_of_support_subset Modified Mathlib/MeasureTheory/Function/LpSpace.lean - theorem MeasureTheory.snorm_restrict_eq Modified Mathlib/MeasureTheory/Integral/Lebesgue.lean + theorem MeasureTheory.setLIntegral_eq_of_support_subset 2024-06-30 11:55:41 51ee181 doc:add some comments and stacks tags (#14239) Add some stacks tags to etale, flat, unramified etc morphisms. This contribution was created as part of the AIM workshop "Formalizing algebraic geometry" in June 2024. ESTIMATED CHANGES Modified Mathlib/RingTheory/Etale/Basic.lean Modified Mathlib/RingTheory/Smooth/Basic.lean Modified Mathlib/RingTheory/Unramified/Basic.lean 2024-06-30 11:33:47 7b0de83 chore: golf `EReal` inductions (#14287) These are no longer needed after #13264 ESTIMATED CHANGES Modified Mathlib/Data/Real/EReal.lean 2024-06-30 09:39:14 fe1669a chore: delay imports of Star (part 2) (#14221) ESTIMATED CHANGES Modified Archive/Imo/Imo1986Q5.lean Modified Archive/Imo/Imo2008Q4.lean Modified Mathlib.lean Modified Mathlib/Analysis/Normed/Group/Seminorm.lean Modified Mathlib/Analysis/NormedSpace/LinearIsometry.lean Modified Mathlib/Combinatorics/SimpleGraph/LapMatrix.lean Modified Mathlib/Data/Complex/Basic.lean Modified Mathlib/Data/Complex/Module.lean Modified Mathlib/Data/ENNReal/Basic.lean Renamed Mathlib/Data/Real/NNReal.lean to Mathlib/Data/NNReal/Basic.lean Added Mathlib/Data/NNReal/Star.lean Modified Mathlib/Data/Real/Basic.lean Modified Mathlib/Data/Real/Star.lean Added Mathlib/Data/Real/StarOrdered.lean Modified Mathlib/RingTheory/Valuation/RankOne.lean Modified Mathlib/Topology/ContinuousFunction/StarOrdered.lean Modified Mathlib/Topology/Instances/NNReal.lean Modified Mathlib/Topology/Instances/Real.lean Modified scripts/noshake.json 2024-06-30 09:39:13 69ed7ba chore: register `TensorProduct` with `induction_eliminator` (#14204) Split from #12605 ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/DirectSum/Finsupp.lean Modified Mathlib/LinearAlgebra/TensorProduct/Basic.lean Modified Mathlib/LinearAlgebra/TensorProduct/Finiteness.lean Modified Mathlib/LinearAlgebra/TensorProduct/RightExactness.lean Modified Mathlib/LinearAlgebra/TensorProduct/Submodule.lean Modified Mathlib/RingTheory/Finiteness.lean Modified Mathlib/RingTheory/IsTensorProduct.lean Modified Mathlib/RingTheory/Kaehler/Basic.lean Modified Mathlib/RingTheory/MatrixAlgebra.lean Modified Mathlib/RingTheory/RingHom/Surjective.lean Modified Mathlib/RingTheory/TensorProduct/Basic.lean 2024-06-30 08:43:13 d465284 chore: add `cases_eliminator` and `induction_eliminator` to some simple types (#14205) Namely: * `AList` * `Cycle` * `ConjAct` * `Projectivization` * `Lex` * `NatOrdinal` * `WithLawson` * `WithLower` * `WithUpper` * `WithScott` * `WithUpperSet` * `WithLowerSet` * `Speicalization` (which had an incorrectly-stated induction principle) These are just for the cases which have docstrings of the form "Use as `induction .* using .*`". Inspired by #12605. ESTIMATED CHANGES Modified Mathlib/Data/List/AList.lean Modified Mathlib/Data/List/Cycle.lean Modified Mathlib/GroupTheory/GroupAction/ConjAct.lean Modified Mathlib/LinearAlgebra/Projectivization/Basic.lean Modified Mathlib/Order/Synonym.lean Modified Mathlib/SetTheory/Ordinal/NaturalOps.lean Modified Mathlib/Topology/Order/LawsonTopology.lean Modified Mathlib/Topology/Order/LowerUpperTopology.lean Modified Mathlib/Topology/Order/ScottTopology.lean Modified Mathlib/Topology/Order/UpperLowerSetTopology.lean Modified Mathlib/Topology/Specialization.lean 2024-06-30 08:05:28 7d9b08c feat(Bicategory/Functor): add `OplaxFunctor.map₂Iso` and `Pseudofunctor.map₂Iso` (#13900) This PR adds `OplaxFunctor.map₂Iso` and `Pseudofunctor.map₂Iso`, analogous to `Functor.mapIso`, and develops the corresponding API. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Bicategory/Functor/Oplax.lean + theorem CategoryTheory.OplaxFunctor.map₂_hom_inv + theorem CategoryTheory.OplaxFunctor.map₂_inv + theorem CategoryTheory.OplaxFunctor.map₂_inv_hom Modified Mathlib/CategoryTheory/Bicategory/Functor/Pseudofunctor.lean + theorem CategoryTheory.Pseudofunctor.map₂_hom_inv + theorem CategoryTheory.Pseudofunctor.map₂_inv + theorem CategoryTheory.Pseudofunctor.map₂_inv_hom 2024-06-30 07:15:05 754ba19 chore: cleanup some simp sets (#14279) ESTIMATED CHANGES Modified Mathlib/Algebra/BigOperators/Fin.lean Modified Mathlib/Algebra/BigOperators/Group/List.lean Modified Mathlib/Algebra/ContinuedFractions/Computation/Approximations.lean Modified Mathlib/Algebra/Group/Fin.lean Modified Mathlib/Algebra/Group/Hom/Instances.lean Modified Mathlib/Algebra/MvPolynomial/Basic.lean Modified Mathlib/Algebra/Periodic.lean Modified Mathlib/Algebra/Polynomial/Basic.lean Modified Mathlib/Combinatorics/Additive/FreimanHom.lean Modified Mathlib/Combinatorics/Enumerative/Catalan.lean Modified Mathlib/Combinatorics/Enumerative/Composition.lean Modified Mathlib/Computability/PartrecCode.lean Modified Mathlib/Computability/Primrec.lean Modified Mathlib/Data/Finset/Image.lean Modified Mathlib/Data/List/Cycle.lean Modified Mathlib/Data/List/Indexes.lean Modified Mathlib/Data/List/NatAntidiagonal.lean Modified Mathlib/Data/Nat/Choose/Basic.lean Modified Mathlib/Data/Nat/Defs.lean Modified Mathlib/Data/Nat/Factorization/Basic.lean Modified Mathlib/Data/Nat/Multiplicity.lean Modified Mathlib/Data/Nat/PSub.lean Modified Mathlib/Data/PNat/Xgcd.lean Modified Mathlib/GroupTheory/Perm/List.lean Modified Mathlib/NumberTheory/Bernoulli.lean Modified Mathlib/Topology/Algebra/Module/Basic.lean 2024-06-30 07:04:13 c2d8686 feat(SetTheory/Game/PGame): equiv_def and missing Trans instances (#14277) add equiv_def and missing Trans instances to PGame ESTIMATED CHANGES Modified Mathlib/SetTheory/Game/PGame.lean + theorem SetTheory.PGame.equiv_def 2024-06-30 04:52:00 3415a86 feat: unused tactic linter (#11308) The `unusedTactic` linter emits a warning if a tactic does nothing. Previous PRs (see below) removed all the "unused tactics" that the linter flagged. Here is an overview of this PR: * the linter is defined in `Mathlib/Tactic/Linter/UnusedTactic.lean`; * the file `Mathlib/GroupTheory/Perm/Cycle/Concrete.lean` contains the "only" `set_option` to opt out of the linter, since it defines notation that uses `decide` that the notation itself does not use; * 17 test files that have surgically opted out of the linter; * noise to import the new file, place it low in the import hierarchy and update `noshake`. PRs removing some unused tactics: * #11333 * #11351 * #11365 * #11379 [Zulip thread](https://leanprover.zulipchat.com/#narrow/stream/113488-general/topic/pointless.20tactic.20linter) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/AlgebraicGeometry/Restrict.lean Modified Mathlib/Analysis/FunctionalSpaces/SobolevInequality.lean Modified Mathlib/GroupTheory/Perm/Cycle/Concrete.lean Modified Mathlib/SetTheory/Surreal/Multiplication.lean Modified Mathlib/Tactic.lean Modified Mathlib/Tactic/Linter.lean Added Mathlib/Tactic/Linter/UnusedTactic.lean + def Mathlib.Linter.UnusedTactic.addIgnoreTacticKind + def Mathlib.Linter.UnusedTactic.allowed + def Mathlib.Linter.UnusedTactic.getLinterHash + def Mathlib.Linter.UnusedTactic.getNames + def Mathlib.Linter.UnusedTactic.isIgnoreTacticKind + def Mathlib.Linter.UnusedTactic.unusedTacticLinter Modified scripts/noshake.json Modified test/Group.lean Modified test/RewriteSearch/Polynomial.lean Added test/UnusedTactic.lean + def why2 Modified test/Zify.lean Modified test/congr.lean Modified test/linarith.lean Modified test/norm_num.lean Modified test/peel.lean 2024-06-29 22:58:41 0b163fd feat: define `RestrictGenTopology` (#13452) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Topology/Constructions.lean Modified Mathlib/Topology/Defs/Induced.lean + structure RestrictGenTopology Added Mathlib/Topology/RestrictGenTopology.lean + theorem RestrictGenTopology.isCompact_of_seq + theorem RestrictGenTopology.of_continuous_prop + theorem RestrictGenTopology.of_isClosed + theorem RestrictGenTopology.of_seq Modified Mathlib/Topology/UniformSpace/UniformConvergenceTopology.lean + theorem UniformOnFun.isClosed_setOf_continuous 2024-06-29 22:33:38 0f25a6c feat (RingTheory/Binomial) : Multichoose lemmata (#13428) This PR has some basic lemmas for the `Ring.multichoose` function. They are generalizations of corresponding lemmas for `Nat.multichoose`. ESTIMATED CHANGES Modified Mathlib/RingTheory/Binomial.lean + theorem Ring.ascPochhammer_succ_succ + theorem Ring.multichoose_one + theorem Ring.multichoose_one_right' + theorem Ring.multichoose_one_right + theorem Ring.multichoose_succ_succ + theorem Ring.multichoose_two + theorem Ring.multichoose_zero_right' + theorem Ring.multichoose_zero_right + theorem Ring.multichoose_zero_succ 2024-06-29 20:54:30 71e4ce6 fix: move SobolevInequality.lean (#14264) * Forgot to incorporate 1 review comment from #14165 ESTIMATED CHANGES Modified Mathlib.lean Renamed Mathlib/MeasureTheory/Integral/SobolevInequality.lean to Mathlib/Analysis/FunctionalSpaces/SobolevInequality.lean 2024-06-29 17:35:34 03cf112 feat: remove completeness assumption in Sobolev inequality (#14262) ESTIMATED CHANGES Modified Mathlib/Analysis/Normed/Group/Completion.lean + theorem UniformSpace.Completion.nnnorm_coe Modified Mathlib/MeasureTheory/Integral/IntegralEqImproper.lean + theorem HasCompactSupport.ennnorm_le_lintegral_Ici_deriv Modified Mathlib/MeasureTheory/Integral/SobolevInequality.lean +/- theorem MeasureTheory.lintegral_prod_lintegral_pow_le 2024-06-29 15:21:14 85d5f96 chore: rename set_lintegral to setLIntegral throughout mathlib (#14260) The old naming is a remnant of Lean 3. The change has already been made for the Bochner integral, from `set_integral` to `setIntegral`. ESTIMATED CHANGES Modified Mathlib/Analysis/SpecialFunctions/JapaneseBracket.lean Modified Mathlib/MeasureTheory/Constructions/HaarToSphere.lean Modified Mathlib/MeasureTheory/Constructions/Prod/Basic.lean Modified Mathlib/MeasureTheory/Covering/Differentiation.lean Modified Mathlib/MeasureTheory/Decomposition/Lebesgue.lean Modified Mathlib/MeasureTheory/Decomposition/RadonNikodym.lean + theorem MeasureTheory.Measure.setLIntegral_rnDeriv' + theorem MeasureTheory.Measure.setLIntegral_rnDeriv + theorem MeasureTheory.Measure.setLIntegral_rnDeriv_le - theorem MeasureTheory.Measure.set_lintegral_rnDeriv' - theorem MeasureTheory.Measure.set_lintegral_rnDeriv - theorem MeasureTheory.Measure.set_lintegral_rnDeriv_le + theorem MeasureTheory.setLIntegral_rnDeriv_mul - theorem MeasureTheory.set_lintegral_rnDeriv_mul Modified Mathlib/MeasureTheory/Function/AEEqOfIntegral.lean + theorem MeasureTheory.AEMeasurable.ae_eq_of_forall_setLIntegral_eq - theorem MeasureTheory.AEMeasurable.ae_eq_of_forall_set_lintegral_eq + theorem MeasureTheory.ae_eq_of_forall_setLIntegral_eq_of_sigmaFinite + theorem MeasureTheory.ae_eq_of_forall_setLIntegral_eq_of_sigmaFinite₀ - theorem MeasureTheory.ae_eq_of_forall_set_lintegral_eq_of_sigmaFinite - theorem MeasureTheory.ae_eq_of_forall_set_lintegral_eq_of_sigmaFinite₀ + theorem MeasureTheory.ae_le_of_forall_setLIntegral_le_of_sigmaFinite + theorem MeasureTheory.ae_le_of_forall_setLIntegral_le_of_sigmaFinite₀ - theorem MeasureTheory.ae_le_of_forall_set_lintegral_le_of_sigmaFinite - theorem MeasureTheory.ae_le_of_forall_set_lintegral_le_of_sigmaFinite₀ Modified Mathlib/MeasureTheory/Function/ConditionalExpectation/CondexpL2.lean + theorem MeasureTheory.setLIntegral_nnnorm_condexpIndSMul_le + theorem MeasureTheory.setLIntegral_nnnorm_condexpL2_indicator_le - theorem MeasureTheory.set_lintegral_nnnorm_condexpIndSMul_le - theorem MeasureTheory.set_lintegral_nnnorm_condexpL2_indicator_le Modified Mathlib/MeasureTheory/Function/ConditionalExpectation/Real.lean Modified Mathlib/MeasureTheory/Function/Jacobian.lean Modified Mathlib/MeasureTheory/Function/LpSeminorm/Basic.lean Modified Mathlib/MeasureTheory/Function/LpSpace.lean Modified Mathlib/MeasureTheory/Group/FundamentalDomain.lean + theorem MeasureTheory.IsFundamentalDomain.setLIntegral_eq_tsum' + theorem MeasureTheory.IsFundamentalDomain.setLIntegral_eq_tsum - theorem MeasureTheory.IsFundamentalDomain.set_lintegral_eq_tsum' - theorem MeasureTheory.IsFundamentalDomain.set_lintegral_eq_tsum Modified Mathlib/MeasureTheory/Group/Prod.lean Modified Mathlib/MeasureTheory/Integral/Average.lean Modified Mathlib/MeasureTheory/Integral/Bochner.lean Modified Mathlib/MeasureTheory/Integral/IntegrableOn.lean + theorem MeasureTheory.IntegrableOn.setLIntegral_lt_top - theorem MeasureTheory.IntegrableOn.set_lintegral_lt_top Modified Mathlib/MeasureTheory/Integral/Layercake.lean Modified Mathlib/MeasureTheory/Integral/Lebesgue.lean + theorem MeasureTheory.MeasurePreserving.setLIntegral_comp_emb + theorem MeasureTheory.MeasurePreserving.setLIntegral_comp_preimage + theorem MeasureTheory.MeasurePreserving.setLIntegral_comp_preimage_emb - theorem MeasureTheory.MeasurePreserving.set_lintegral_comp_emb - theorem MeasureTheory.MeasurePreserving.set_lintegral_comp_preimage - theorem MeasureTheory.MeasurePreserving.set_lintegral_comp_preimage_emb + theorem MeasureTheory.exists_pos_setLIntegral_lt_of_measure_lt - theorem MeasureTheory.exists_pos_set_lintegral_lt_of_measure_lt + theorem MeasureTheory.setLIntegral_congr + theorem MeasureTheory.setLIntegral_congr_fun + theorem MeasureTheory.setLIntegral_const + theorem MeasureTheory.setLIntegral_const_lt_top + theorem MeasureTheory.setLIntegral_dirac' + theorem MeasureTheory.setLIntegral_dirac + theorem MeasureTheory.setLIntegral_empty + theorem MeasureTheory.setLIntegral_eq_const + theorem MeasureTheory.setLIntegral_le_lintegral + theorem MeasureTheory.setLIntegral_lt_top_of_bddAbove + theorem MeasureTheory.setLIntegral_lt_top_of_isCompact + theorem MeasureTheory.setLIntegral_map + theorem MeasureTheory.setLIntegral_max + theorem MeasureTheory.setLIntegral_measure_zero + theorem MeasureTheory.setLIntegral_mono' + theorem MeasureTheory.setLIntegral_mono + theorem MeasureTheory.setLIntegral_mono_ae' + theorem MeasureTheory.setLIntegral_mono_ae + theorem MeasureTheory.setLIntegral_one + theorem MeasureTheory.setLIntegral_smul_measure + theorem MeasureTheory.setLIntegral_strict_mono + theorem MeasureTheory.setLIntegral_subtype + theorem MeasureTheory.setLIntegral_univ - theorem MeasureTheory.set_lintegral_congr - theorem MeasureTheory.set_lintegral_congr_fun - theorem MeasureTheory.set_lintegral_const - theorem MeasureTheory.set_lintegral_const_lt_top - theorem MeasureTheory.set_lintegral_dirac' - theorem MeasureTheory.set_lintegral_dirac - theorem MeasureTheory.set_lintegral_empty - theorem MeasureTheory.set_lintegral_eq_const - theorem MeasureTheory.set_lintegral_le_lintegral - theorem MeasureTheory.set_lintegral_lt_top_of_bddAbove - theorem MeasureTheory.set_lintegral_lt_top_of_isCompact - theorem MeasureTheory.set_lintegral_map - theorem MeasureTheory.set_lintegral_max - theorem MeasureTheory.set_lintegral_measure_zero - theorem MeasureTheory.set_lintegral_mono' - theorem MeasureTheory.set_lintegral_mono - theorem MeasureTheory.set_lintegral_mono_ae' - theorem MeasureTheory.set_lintegral_mono_ae - theorem MeasureTheory.set_lintegral_one - theorem MeasureTheory.set_lintegral_smul_measure - theorem MeasureTheory.set_lintegral_strict_mono - theorem MeasureTheory.set_lintegral_subtype - theorem MeasureTheory.set_lintegral_univ + theorem MeasureTheory.tendsto_setLIntegral_zero - theorem MeasureTheory.tendsto_set_lintegral_zero Modified Mathlib/MeasureTheory/Integral/SetIntegral.lean Modified Mathlib/MeasureTheory/Measure/Tilted.lean + theorem MeasureTheory.setLIntegral_tilted' + theorem MeasureTheory.setLIntegral_tilted - theorem MeasureTheory.set_lintegral_tilted' - theorem MeasureTheory.set_lintegral_tilted Modified Mathlib/MeasureTheory/Measure/WithDensity.lean + theorem MeasureTheory.setLIntegral_withDensity_eq_lintegral_mul₀' + theorem MeasureTheory.setLIntegral_withDensity_eq_lintegral_mul₀ + theorem MeasureTheory.setLIntegral_withDensity_eq_setLIntegral_mul + theorem MeasureTheory.setLIntegral_withDensity_eq_setLIntegral_mul_non_measurable + theorem MeasureTheory.setLIntegral_withDensity_eq_setLIntegral_mul_non_measurable₀' + theorem MeasureTheory.setLIntegral_withDensity_eq_setLIntegral_mul_non_measurable₀ - theorem MeasureTheory.set_lintegral_withDensity_eq_lintegral_mul₀' - theorem MeasureTheory.set_lintegral_withDensity_eq_lintegral_mul₀ - theorem MeasureTheory.set_lintegral_withDensity_eq_set_lintegral_mul - theorem MeasureTheory.set_lintegral_withDensity_eq_set_lintegral_mul_non_measurable - theorem MeasureTheory.set_lintegral_withDensity_eq_set_lintegral_mul_non_measurable₀' - theorem MeasureTheory.set_lintegral_withDensity_eq_set_lintegral_mul_non_measurable₀ Modified Mathlib/MeasureTheory/Measure/WithDensityFinite.lean Modified Mathlib/MeasureTheory/Measure/WithDensityVectorMeasure.lean Modified Mathlib/Probability/Density.lean + theorem MeasureTheory.map_eq_setLIntegral_pdf - theorem MeasureTheory.map_eq_set_lintegral_pdf + theorem MeasureTheory.setLIntegral_pdf_le_map - theorem MeasureTheory.set_lintegral_pdf_le_map Modified Mathlib/Probability/Distributions/Exponential.lean Modified Mathlib/Probability/Distributions/Gamma.lean Modified Mathlib/Probability/Distributions/Uniform.lean Modified Mathlib/Probability/Kernel/Basic.lean + theorem ProbabilityTheory.kernel.setLIntegral_const + theorem ProbabilityTheory.kernel.setLIntegral_deterministic' + theorem ProbabilityTheory.kernel.setLIntegral_deterministic + theorem ProbabilityTheory.kernel.setLIntegral_piecewise + theorem ProbabilityTheory.kernel.setLIntegral_restrict - theorem ProbabilityTheory.kernel.set_lintegral_const - theorem ProbabilityTheory.kernel.set_lintegral_deterministic' - theorem ProbabilityTheory.kernel.set_lintegral_deterministic - theorem ProbabilityTheory.kernel.set_lintegral_piecewise - theorem ProbabilityTheory.kernel.set_lintegral_restrict Modified Mathlib/Probability/Kernel/Composition.lean + theorem ProbabilityTheory.kernel.setLIntegral_compProd + theorem ProbabilityTheory.kernel.setLIntegral_compProd_univ_left + theorem ProbabilityTheory.kernel.setLIntegral_compProd_univ_right - theorem ProbabilityTheory.kernel.set_lintegral_compProd - theorem ProbabilityTheory.kernel.set_lintegral_compProd_univ_left - theorem ProbabilityTheory.kernel.set_lintegral_compProd_univ_right Modified Mathlib/Probability/Kernel/CondDistrib.lean + theorem ProbabilityTheory.setLIntegral_condDistrib_of_measurableSet + theorem ProbabilityTheory.setLIntegral_preimage_condDistrib - theorem ProbabilityTheory.set_lintegral_condDistrib_of_measurableSet - theorem ProbabilityTheory.set_lintegral_preimage_condDistrib Modified Mathlib/Probability/Kernel/Disintegration/Basic.lean Modified Mathlib/Probability/Kernel/Disintegration/CdfToKernel.lean + theorem ProbabilityTheory.IsCondKernelCDF.setLIntegral - theorem ProbabilityTheory.IsCondKernelCDF.set_lintegral + theorem ProbabilityTheory.setLIntegral_stieltjesOfMeasurableRat + theorem ProbabilityTheory.setLIntegral_stieltjesOfMeasurableRat_rat + theorem ProbabilityTheory.setLIntegral_toKernel_Iic + theorem ProbabilityTheory.setLIntegral_toKernel_prod + theorem ProbabilityTheory.setLIntegral_toKernel_univ - theorem ProbabilityTheory.set_lintegral_stieltjesOfMeasurableRat - theorem ProbabilityTheory.set_lintegral_stieltjesOfMeasurableRat_rat - theorem ProbabilityTheory.set_lintegral_toKernel_Iic - theorem ProbabilityTheory.set_lintegral_toKernel_prod - theorem ProbabilityTheory.set_lintegral_toKernel_univ Modified Mathlib/Probability/Kernel/Disintegration/CondCdf.lean + theorem ProbabilityTheory.setLIntegral_condCDF + theorem ProbabilityTheory.setLIntegral_preCDF_fst - theorem ProbabilityTheory.set_lintegral_condCDF - theorem ProbabilityTheory.set_lintegral_preCDF_fst Modified Mathlib/Probability/Kernel/Disintegration/Density.lean + theorem ProbabilityTheory.kernel.setLIntegral_density - theorem ProbabilityTheory.kernel.set_lintegral_density Modified Mathlib/Probability/Kernel/Disintegration/Integral.lean + theorem MeasureTheory.Measure.setLIntegral_condKernel + theorem MeasureTheory.Measure.setLIntegral_condKernel_eq_measure_prod + theorem MeasureTheory.Measure.setLIntegral_condKernel_univ_left + theorem MeasureTheory.Measure.setLIntegral_condKernel_univ_right - theorem MeasureTheory.Measure.set_lintegral_condKernel - theorem MeasureTheory.Measure.set_lintegral_condKernel_eq_measure_prod - theorem MeasureTheory.Measure.set_lintegral_condKernel_univ_left - theorem MeasureTheory.Measure.set_lintegral_condKernel_univ_right + theorem ProbabilityTheory.setLIntegral_condKernel + theorem ProbabilityTheory.setLIntegral_condKernel_eq_measure_prod + theorem ProbabilityTheory.setLIntegral_condKernel_univ_left + theorem ProbabilityTheory.setLIntegral_condKernel_univ_right - theorem ProbabilityTheory.set_lintegral_condKernel - theorem ProbabilityTheory.set_lintegral_condKernel_eq_measure_prod - theorem ProbabilityTheory.set_lintegral_condKernel_univ_left - theorem ProbabilityTheory.set_lintegral_condKernel_univ_right Modified Mathlib/Probability/Kernel/Disintegration/Unique.lean Modified Mathlib/Probability/Kernel/MeasurableIntegral.lean + theorem Measurable.setLIntegral_kernel + theorem Measurable.setLIntegral_kernel_prod_left + theorem Measurable.setLIntegral_kernel_prod_right - theorem Measurable.set_lintegral_kernel - theorem Measurable.set_lintegral_kernel_prod_left - theorem Measurable.set_lintegral_kernel_prod_right Modified Mathlib/Probability/Kernel/MeasureCompProd.lean + theorem MeasureTheory.Measure.setLIntegral_compProd - theorem MeasureTheory.Measure.set_lintegral_compProd Modified Mathlib/Probability/Kernel/RadonNikodym.lean + theorem ProbabilityTheory.kernel.setLIntegral_rnDerivAux - theorem ProbabilityTheory.kernel.set_lintegral_rnDerivAux Modified Mathlib/Probability/Kernel/WithDensity.lean 2024-06-29 14:13:13 6656396 chore: remove conditional dependency on doc-gen (#14229) Mathlib's documentation generation CI uses a downstream repository, which just has a conventional `require` on both Mathlib and docgen. As far as I'm aware (please correct me!) this isn't actually needed by anyone. We are very keen to get rid of `meta if`, move to `lakefile.toml`s, and avoid instructing users to ever use `lake -R`. If this change works, I hope that the downstream mathematical repositories that are also using docgen can all follow suit. ESTIMATED CHANGES Modified lakefile.lean 2024-06-29 09:06:54 9382a75 chore: move `Multiset.lift_coe` (#14252) This lemma doesn't mention any functors, so can go much earlier. ESTIMATED CHANGES Modified Mathlib/Data/Multiset/Basic.lean + theorem Multiset.lift_coe Modified Mathlib/Data/Multiset/Functor.lean - theorem Multiset.lift_coe 2024-06-29 09:06:53 3321494 chore: reduce imports on the path to LinearMap (#14246) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Category/Grp/Basic.lean Modified Mathlib/Algebra/Category/MonCat/Basic.lean Modified Mathlib/Algebra/Ring/Action/Basic.lean - def MulSemiringAction.toRingEquiv Added Mathlib/Algebra/Ring/Action/Group.lean + def MulSemiringAction.toRingEquiv Modified Mathlib/Algebra/Ring/Aut.lean Modified Mathlib/Algebra/Ring/BooleanRing.lean Modified Mathlib/CategoryTheory/SingleObj.lean Modified Mathlib/GroupTheory/GroupAction/Hom.lean Modified scripts/noshake.json 2024-06-29 09:06:52 16761cd chore: add missing `simp` lemma `LinearMap.coe_coe` (#14241) ESTIMATED CHANGES Modified Mathlib/Algebra/Module/LinearMap/Basic.lean + theorem LinearMap.coe_coe 2024-06-29 09:06:51 0cbe15b chore: tidy various files (#14230) ESTIMATED CHANGES Modified Mathlib/Algebra/Module/LocalizedModule.lean Modified Mathlib/Algebra/Polynomial/Smeval.lean Modified Mathlib/Algebra/Star/StarRingHom.lean Modified Mathlib/Algebra/Vertex/HVertexOperator.lean +/- theorem VertexAlg.HetVertexOperator.ext Modified Mathlib/AlgebraicGeometry/EllipticCurve/Jacobian.lean Modified Mathlib/Analysis/LocallyConvex/Bounded.lean Modified Mathlib/Analysis/RCLike/Basic.lean Modified Mathlib/CategoryTheory/FiberedCategory/HomLift.lean Modified Mathlib/CategoryTheory/Sites/OneHypercover.lean Modified Mathlib/Combinatorics/SimpleGraph/Hamiltonian.lean Modified Mathlib/Data/Matroid/Map.lean Modified Mathlib/Data/Real/EReal.lean Modified Mathlib/Data/Real/NNReal.lean Modified Mathlib/GroupTheory/GroupAction/Blocks.lean Modified Mathlib/Logic/Equiv/Set.lean Modified Mathlib/Logic/Hydra.lean Modified Mathlib/NumberTheory/LSeries/HurwitzZetaOdd.lean Modified Mathlib/NumberTheory/SiegelsLemma.lean Modified Mathlib/Order/Filter/SmallSets.lean Modified Mathlib/Order/GameAdd.lean Modified Mathlib/Order/KrullDimension.lean Modified Mathlib/RingTheory/Binomial.lean Modified Mathlib/RingTheory/OreLocalization/Ring.lean Modified Mathlib/SetTheory/Game/Basic.lean +/- def SetTheory.PGame.mulOption +/- theorem SetTheory.PGame.mulOption_symm Modified Mathlib/Topology/Instances/NNReal.lean 2024-06-29 08:10:21 99d09ff feat(Data/Nat/Defs): pow_eq_self_iff (#14183) For `a > 1`, `a ^ b = a` iff `b = 1`. Lemma needed by #14049. ESTIMATED CHANGES Modified Mathlib/Data/Nat/Defs.lean + theorem Nat.pow_eq_self_iff 2024-06-29 00:30:10 0f39e82 chore: update Mathlib dependencies 2024-06-29 (#14248) This PR updates the Mathlib dependencies. ESTIMATED CHANGES Modified lake-manifest.json 2024-06-28 22:16:08 6c7310c feat: prove the Gagliardo-Nirenberg-Sobolev inequality (#14165) * From the Sobolev inequality project ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Analysis/Calculus/FDeriv/Measurable.lean Modified Mathlib/MeasureTheory/Function/LpSpace.lean + theorem MeasureTheory.snorm_restrict_eq Added Mathlib/MeasureTheory/Integral/SobolevInequality.lean + def MeasureTheory.GridLines.T + theorem MeasureTheory.GridLines.T_empty + theorem MeasureTheory.GridLines.T_insert_le_T_lmarginal_singleton + theorem MeasureTheory.GridLines.T_lmarginal_antitone + theorem MeasureTheory.GridLines.T_univ + theorem MeasureTheory.lintegral_mul_prod_lintegral_pow_le + theorem MeasureTheory.lintegral_pow_le_pow_lintegral_fderiv + theorem MeasureTheory.lintegral_pow_le_pow_lintegral_fderiv_aux + theorem MeasureTheory.lintegral_prod_lintegral_pow_le + def MeasureTheory.snormLESNormFDerivOfEqInnerConst + theorem MeasureTheory.snorm_le_snorm_fderiv + theorem MeasureTheory.snorm_le_snorm_fderiv_of_eq + theorem MeasureTheory.snorm_le_snorm_fderiv_of_eq_inner + theorem MeasureTheory.snorm_le_snorm_fderiv_of_le + theorem MeasureTheory.snorm_le_snorm_fderiv_one 2024-06-28 20:06:34 33d25d9 refactor (LinearAlgebra/RootSystem) : change definition of RootPairing (#13917) We change the definition of `RootPairing` so that the induced reflection permutations on roots are required by definition to agree with those on coroots. This rules out pathologies, e.g., for infinite root systems. ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/Reflection.lean + theorem Module.bijOn_reflection_of_mapsTo + theorem Module.eq_of_mapsTo_reflection_of_mem + theorem Module.injOn_dualMap_subtype_span_range_range + theorem Module.invOn_reflection_of_mapsTo Modified Mathlib/LinearAlgebra/RootSystem/Basic.lean - theorem RootPairing.IsOrthogonal.symm - theorem RootPairing.IsOrthogonal_comm - theorem RootPairing.bijOn_coreflection_coroot - theorem RootPairing.bijOn_reflection_root - theorem RootPairing.coreflection_apply - theorem RootPairing.coreflection_apply_self - theorem RootPairing.coreflection_eq_flip_reflection - theorem RootPairing.coreflection_image_eq - theorem RootPairing.coreflection_invOn_self - theorem RootPairing.coreflection_self - theorem RootPairing.coroot_eq_coreflection_of_root_eq_of_span_eq_top' - theorem RootPairing.coroot_eq_coreflection_of_root_eq_of_span_eq_top - theorem RootPairing.coroot_root_eq_pairing - theorem RootPairing.coroot_root_two - theorem RootPairing.coxeterWeight_swap - theorem RootPairing.eq_of_pairing_pairing_eq_two - theorem RootPairing.flip_flip - theorem RootPairing.isCrystallographic_iff - theorem RootPairing.isReduced_iff + def RootPairing.mk' - theorem RootPairing.ne_zero' - theorem RootPairing.ne_zero - theorem RootPairing.pairing_same - theorem RootPairing.reflection_apply - theorem RootPairing.reflection_apply_root - theorem RootPairing.reflection_apply_self - theorem RootPairing.reflection_dualMap_eq_coreflection - theorem RootPairing.reflection_image_eq - theorem RootPairing.reflection_invOn_self - theorem RootPairing.reflection_mul - theorem RootPairing.reflection_same - theorem RootPairing.root_coroot_eq_pairing - theorem RootPairing.root_ne - theorem RootSystem.coroot_eq_coreflection_of_root_eq Modified Mathlib/LinearAlgebra/RootSystem/Defs.lean + theorem RootPairing.IsOrthogonal.symm + theorem RootPairing.bijOn_coreflection_coroot + theorem RootPairing.bijOn_reflection_root + theorem RootPairing.coreflection_apply + theorem RootPairing.coreflection_apply_coroot + theorem RootPairing.coreflection_apply_self + theorem RootPairing.coreflection_eq_flip_reflection + theorem RootPairing.coreflection_image_eq + theorem RootPairing.coreflection_same + theorem RootPairing.coroot_eq_coreflection_of_root_eq + theorem RootPairing.coroot_reflection_perm + theorem RootPairing.coroot_root_eq_pairing + theorem RootPairing.coroot_root_two + theorem RootPairing.coxeterWeight_swap + theorem RootPairing.flip_flip + theorem RootPairing.isCrystallographic_iff + theorem RootPairing.isOrthogonal_comm + theorem RootPairing.isReduced_iff + theorem RootPairing.mapsTo_coreflection_coroot + theorem RootPairing.mapsTo_reflection_root + theorem RootPairing.ne_zero' + theorem RootPairing.ne_zero +/- def RootPairing.pairing + theorem RootPairing.pairing_same + theorem RootPairing.reflection_apply + theorem RootPairing.reflection_apply_root + theorem RootPairing.reflection_apply_self + theorem RootPairing.reflection_dualMap_eq_coreflection + theorem RootPairing.reflection_image_eq + theorem RootPairing.reflection_same + theorem RootPairing.root_coroot_eq_pairing + theorem RootPairing.root_reflection_perm 2024-06-28 15:55:04 dfc07f1 perf (Algebra.AddConstMap): scope simp lemmas (#14233) The keys for these `simp` lemmas will match quite a bit. To avoid this, we scope them to the `AddConstMapClass` namespace so that you only have them when you need them and not when you don't. ESTIMATED CHANGES Modified Mathlib/Algebra/AddConstMap/Basic.lean +/- theorem AddConstMap.coe_mk +/- theorem AddConstMap.coe_mul +/- theorem AddConstMap.coe_one +/- theorem AddConstMap.coe_pow +/- theorem AddConstMap.comp_id +/- theorem AddConstMap.conjNeg_symm +/- theorem AddConstMap.id_comp +/- theorem AddConstMap.mk_coe +/- theorem AddConstMap.toFun_eq_coe 2024-06-28 14:12:54 c797e3d refactor: redefine Stone-Čech compactification (#14108) The goal is to get a universe polymorphic universal property. ESTIMATED CHANGES Modified Mathlib/Topology/StoneCech.lean + def PreStoneCech + theorem continuous_preStoneCechExtend + theorem continuous_preStoneCechUnit +/- theorem continuous_stoneCechExtend - theorem convergent_eqv_pure + theorem denseRange_preStoneCechUnit +/- theorem denseRange_pure +/- theorem denseRange_stoneCechUnit + theorem eq_if_preStoneCechUnit_eq + theorem preStoneCechCompat + def preStoneCechExtend + theorem preStoneCechExtend_extends + def preStoneCechUnit + theorem preStoneCech_hom_ext +/- def stoneCechExtend +/- theorem stoneCechExtend_extends +/- theorem stoneCech_hom_ext 2024-06-28 13:10:25 d2a5b41 chore: delay imports of Star (#14219) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Algebra/Defs.lean Modified Mathlib/Algebra/Algebra/Equiv.lean Modified Mathlib/Algebra/Module/Equiv.lean Modified Mathlib/Algebra/Module/LinearMap/Basic.lean Added Mathlib/Algebra/Module/LinearMap/Star.lean Modified Mathlib/Algebra/RingQuot.lean - theorem RingQuot.Rel.star - theorem RingQuot.star'_quot - def RingQuot.starRing Modified Mathlib/Algebra/Star/Basic.lean - theorem star_nnratCast - theorem star_ratCast Modified Mathlib/Algebra/Star/CHSH.lean Modified Mathlib/Algebra/Star/Module.lean Added Mathlib/Algebra/Star/Rat.lean + theorem star_nnratCast + theorem star_ratCast Added Mathlib/Algebra/Star/RingQuot.lean + theorem RingQuot.Rel.star + theorem RingQuot.star'_quot + def RingQuot.starRing Modified Mathlib/Algebra/Star/SelfAdjoint.lean Modified Mathlib/Analysis/Analytic/Basic.lean Modified Mathlib/Analysis/Calculus/LocalExtr/Polynomial.lean Modified Mathlib/Analysis/InnerProductSpace/Dual.lean Modified Mathlib/Analysis/LocallyConvex/WithSeminorms.lean Modified Mathlib/Analysis/Normed/Group/Quotient.lean Modified Mathlib/Analysis/Normed/Order/UpperLower.lean Modified Mathlib/Analysis/RCLike/Basic.lean Modified Mathlib/Analysis/Seminorm.lean Modified Mathlib/Analysis/SumOverResidueClass.lean Modified Mathlib/Analysis/VonNeumannAlgebra/Basic.lean Modified Mathlib/Combinatorics/SimpleGraph/LapMatrix.lean Modified Mathlib/Data/Complex/Exponential.lean Modified Mathlib/Data/Real/Sqrt.lean Added Mathlib/Data/Real/Star.lean Modified Mathlib/NumberTheory/PellMatiyasevic.lean Modified Mathlib/Topology/Algebra/Module/Basic.lean Modified Mathlib/Topology/Algebra/Module/Star.lean Modified Mathlib/Topology/ContinuousFunction/ContinuousMapZero.lean Modified Mathlib/Topology/ContinuousFunction/StarOrdered.lean Modified scripts/noshake.json 2024-06-28 12:43:28 cd9e3a3 chore(Algebra/Homology): remove unnecessary ReflectsEpimorphisms instance (#14200) ESTIMATED CHANGES Modified Mathlib/Algebra/Homology/ShortComplex/Exact.lean 2024-06-28 11:41:25 a41d5a6 chore(Module/Basic): removed unused import (#14223) ESTIMATED CHANGES Modified Mathlib/Algebra/Module/Basic.lean 2024-06-28 11:29:46 81d1026 feat(Mathlib.NumberTheory.FLT.Three): add various results (#14119) We add various results needed to prove flt3. From the flt3 project at LFTCM2024. ESTIMATED CHANGES Modified Mathlib/NumberTheory/Cyclotomic/Rat.lean +/- theorem IsCyclotomicExtension.Rat.absdiscr_prime +/- theorem IsCyclotomicExtension.Rat.absdiscr_prime_pow +/- theorem IsCyclotomicExtension.Rat.absdiscr_prime_pow_succ + theorem IsPrimitiveRoot.toInteger_sub_one_not_dvd_two Modified Mathlib/NumberTheory/Cyclotomic/Three.lean + theorem IsPrimitiveRoot.toInteger_cube_eq_one Modified Mathlib/NumberTheory/FLT/Three.lean + theorem FermatLastTheoremForThreeGen.Solution'.two_le_multiplicity + theorem FermatLastTheoremForThreeGen.Solution.two_le_multiplicity + theorem FermatLastTheoremForThreeGen.a_cube_add_b_cube_eq_mul + theorem FermatLastTheoremForThreeGen.a_cube_b_cube_congr_one_or_neg_one + theorem FermatLastTheoremForThreeGen.ex_cube_add_cube_eq_and_isCoprime_and_not_dvd_and_dvd + theorem FermatLastTheoremForThreeGen.exists_Solution_of_Solution' + theorem FermatLastTheoremForThreeGen.lambda_pow_four_dvd_c_cube + theorem FermatLastTheoremForThreeGen.lambda_sq_dvd_c + theorem FermatLastTheoremForThreeGen.lambda_sq_dvd_or_dvd_or_dvd 2024-06-28 10:20:12 437dfc0 chore(CauSeq): cleanup imports (#14220) No rearrangement, just removing unused imports. ESTIMATED CHANGES Modified Archive/Imo/Imo2005Q3.lean Modified Archive/Imo/Imo2008Q2.lean Modified Archive/Wiedijk100Theorems/InverseTriangleSum.lean Modified Mathlib/Algebra/Order/CauSeq/Basic.lean Modified Mathlib/Algebra/Order/CauSeq/Completion.lean Modified Mathlib/Data/Complex/Basic.lean Modified Mathlib/Data/Real/Sign.lean 2024-06-28 09:13:43 c4dd024 chore(*): remove some deprecated theorems (#14214) ESTIMATED CHANGES Modified Mathlib/Analysis/InnerProductSpace/Calculus.lean - theorem Homeomorph.contDiffOn_unitBall_symm Modified Mathlib/Logic/Basic.lean Modified Mathlib/MeasureTheory/MeasurableSpace/Basic.lean - theorem exists_measurable_piecewise_nat Modified Mathlib/MeasureTheory/MeasurableSpace/Defs.lean - theorem MeasurableSet.biUnion_decode₂ Modified Mathlib/MeasureTheory/Measure/NullMeasurable.lean Modified Mathlib/NumberTheory/SumFourSquares.lean - theorem Int.exists_sq_add_sq_add_one_eq_k Modified Mathlib/Topology/Algebra/WithZeroTopology.lean - theorem WithZeroTopology.t3Space Modified Mathlib/Topology/FiberBundle/Trivialization.lean - theorem Trivialization.open_target' Modified Mathlib/Topology/Instances/EReal.lean - def EReal.negHomeo Modified Mathlib/Topology/Instances/Real.lean - theorem Function.Periodic.compact_of_continuous' - theorem Real.Continuous.inv - theorem Real.tendsto_inv 2024-06-28 03:48:41 dcc73cf chore: bump ProofWidgets4 to v0.0.38 (#14198) ESTIMATED CHANGES Modified lake-manifest.json Modified lakefile.lean 2024-06-27 22:54:24 c673d9d feat: add `simp` attributes to some `IsSelfAdjoint` lemmas (#14209) ESTIMATED CHANGES Modified Mathlib/Algebra/Star/SelfAdjoint.lean 2024-06-27 21:45:25 7c550fc chore: delay imports of OrderedRing via PNat (#14182) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Computability/Primrec.lean Modified Mathlib/Data/PNat/Basic.lean - def Equiv.pnatEquivNat Added Mathlib/Data/PNat/Equiv.lean + def Equiv.pnatEquivNat Modified Mathlib/Data/W/Basic.lean Modified Mathlib/Logic/Denumerable.lean Modified Mathlib/Logic/Encodable/Basic.lean Modified Mathlib/Logic/Equiv/List.lean Modified Mathlib/ModelTheory/Ultraproducts.lean Modified Mathlib/Order/Filter/AtTopBot.lean Modified Mathlib/Order/OrderIsoNat.lean Modified Mathlib/Order/SuccPred/LinearLocallyFinite.lean Modified Mathlib/Order/WellFoundedSet.lean Modified Mathlib/SetTheory/Ordinal/Arithmetic.lean Modified Mathlib/SetTheory/Ordinal/Notation.lean 2024-06-27 21:04:12 76bb425 chore(Order/Filter/Basic): assert_not_exists OrderedSemiring (#14179) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/MeasureTheory/Function/AEEqOfIntegral.lean Modified Mathlib/Order/Filter/Basic.lean - theorem Filter.EventuallyLE.mul_le_mul' - theorem Filter.EventuallyLE.mul_le_mul - theorem Filter.EventuallyLE.mul_nonneg - theorem Filter.eventually_sub_nonneg Modified Mathlib/Order/Filter/Extr.lean Modified Mathlib/Order/Filter/FilterProduct.lean Modified Mathlib/Order/Filter/Germ.lean Added Mathlib/Order/Filter/Ring.lean + theorem Filter.EventuallyLE.mul_le_mul' + theorem Filter.EventuallyLE.mul_le_mul + theorem Filter.EventuallyLE.mul_nonneg + theorem Filter.eventually_sub_nonneg 2024-06-27 19:33:38 b0640e9 chore(AddConstMap): don't extend `FunLike` (#14201) Instead, take it as an argument as other bundled homs do. Also change the `npow` field in the `Monoid` instance so that `coe_pow` is a `rfl` lemma now. ESTIMATED CHANGES Modified Mathlib/Algebra/AddConstMap/Basic.lean +/- theorem AddConstMap.coe_pow +/- theorem AddConstMap.pow_apply + theorem AddConstMap.toFun_eq_coe 2024-06-27 18:55:39 7faa8af feat: the spectrum of a diagonal matrix is the range of the diagonal (#13837) We add various theorems that assert the spectrum of a diagonal matrix is the range of the diagonal viewed as a function. Co-Authored by @j-loreaux ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/LinearAlgebra/Eigenspace/Matrix.lean + theorem hasEigenvalue_toLin'_diagonal_iff + theorem hasEigenvalue_toLin_diagonal_iff + theorem hasEigenvector_toLin'_diagonal + theorem hasEigenvector_toLin_diagonal + theorem spectrum_diagonal 2024-06-27 17:23:26 b7dc990 chore(Condensed): make the definition of underlying light condensed set match that of the underlying condensed set (#13901) ... this code had been copied from an old version of the condensed definition by accident. ESTIMATED CHANGES Modified Mathlib/Condensed/Light/Discrete.lean 2024-06-27 15:05:18 9687596 chore: Improved nth_rewrite and nth_rw docstrings (#13877) [Zulip thread of discussion](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/docstrings.20of.20.60nth_rewrite.60.20and.20.60nth_rw.60/near/444853793) ESTIMATED CHANGES Modified Mathlib/Tactic/NthRewrite.lean 2024-06-27 14:25:42 e446b83 chore (abel): abel shouldn't depend on ordered algebra (#14188) If we change the import from `NormNum` to `NormNum.Basic`, we avoid some annoying dependecies. ESTIMATED CHANGES Modified Mathlib/Algebra/CharP/Defs.lean Modified Mathlib/Analysis/Convex/Function.lean Modified Mathlib/SetTheory/Game/Basic.lean Modified Mathlib/Tactic/Abel.lean Modified Mathlib/Tactic/NoncommRing.lean Modified scripts/noshake.json 2024-06-27 12:40:10 063dd4a doc(RingTheory/Flat/Algebra) fix docstring (#14193) Switch the roles of R and S in the docstring on line 62 ESTIMATED CHANGES Modified Mathlib/RingTheory/Flat/Algebra.lean 2024-06-27 12:07:16 f62e3e2 chore: tweaks to scripts/create-adaptation-pr.sh (#14191) ESTIMATED CHANGES Modified scripts/create-adaptation-pr.sh 2024-06-27 12:07:15 2758239 Expand documentation (#14186) doc: Minor improvement in tensor product documentation This PR adds names to the objects mentioned in the page intro so users can more easily navigate to the relevant definitions and theorems in the page body. ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/TensorProduct/Basic.lean 2024-06-27 12:07:14 5369a67 feat(NumberField/CanonicalEmbedding): add `canonicalEmbedding.integralBasis_repr_apply` (#14158) Prove that the representation on the `latticeBasis` of the canonical space of the image of an algebraic number is equal to its representation of the integral basis. ESTIMATED CHANGES Modified Mathlib/NumberTheory/NumberField/CanonicalEmbedding/Basic.lean + theorem NumberField.canonicalEmbedding.integralBasis_repr_apply + theorem NumberField.canonicalEmbedding.mem_rat_span_latticeBasis 2024-06-27 11:26:44 9ab745f chore: categorise porting notes related to `ext` (#13928) Fix some porting notes about `ext` and classifies the remaining ones about `ext` ESTIMATED CHANGES Modified Mathlib/Algebra/Category/AlgebraCat/Basic.lean Modified Mathlib/Algebra/Category/Grp/Adjunctions.lean Modified Mathlib/Algebra/Category/Grp/Limits.lean Modified Mathlib/Algebra/Category/ModuleCat/Monoidal/Basic.lean Modified Mathlib/Algebra/DirectSum/Basic.lean Modified Mathlib/Algebra/Free.lean Modified Mathlib/Algebra/Group/AddChar.lean Modified Mathlib/AlgebraicGeometry/Limits.lean Modified Mathlib/AlgebraicTopology/SimplicialSet.lean Modified Mathlib/Analysis/Analytic/Basic.lean Modified Mathlib/CategoryTheory/Abelian/Homology.lean Modified Mathlib/CategoryTheory/Comma/StructuredArrow.lean Modified Mathlib/CategoryTheory/Functor/Flat.lean Modified Mathlib/CategoryTheory/Limits/Presheaf.lean Modified Mathlib/CategoryTheory/Monad/Algebra.lean Modified Mathlib/CategoryTheory/Monoidal/CommMon_.lean Modified Mathlib/CategoryTheory/Monoidal/Mod_.lean Modified Mathlib/CategoryTheory/MorphismProperty/IsInvertedBy.lean Modified Mathlib/CategoryTheory/Preadditive/Mat.lean Modified Mathlib/CategoryTheory/Sites/CompatiblePlus.lean Modified Mathlib/CategoryTheory/Sites/CoverLifting.lean Modified Mathlib/CategoryTheory/Sites/SheafOfTypes.lean Modified Mathlib/CategoryTheory/Yoneda.lean Modified Mathlib/Geometry/RingedSpace/PresheafedSpace.lean Modified Mathlib/Geometry/RingedSpace/SheafedSpace.lean Modified Mathlib/LinearAlgebra/LinearPMap.lean Modified Mathlib/LinearAlgebra/Matrix/Hermitian.lean Modified Mathlib/RepresentationTheory/Rep.lean Modified Mathlib/RingTheory/GradedAlgebra/Basic.lean Modified Mathlib/Topology/Category/Compactum.lean Modified Mathlib/Topology/Category/TopCat/Limits/Products.lean Modified Mathlib/Topology/Category/TopCat/Limits/Pullbacks.lean Modified Mathlib/Topology/Sheaves/SheafCondition/EqualizerProducts.lean Modified Mathlib/Topology/Sheaves/Skyscraper.lean 2024-06-27 11:16:37 4daf382 feat(RingTheory/GradedAlgebra/Noetherian): properties of a graded Noetherian ring (#8187) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/DirectSum/Internal.lean + theorem SetLike.GradeZero.coe_algebraMap + theorem SetLike.GradeZero.coe_intCast + theorem SetLike.GradeZero.coe_natCast + theorem SetLike.GradeZero.coe_ofNat + def SetLike.GradeZero.subalgebra + def SetLike.GradeZero.subring + def SetLike.GradeZero.subsemiring Modified Mathlib/Algebra/GradedMonoid.lean + theorem SetLike.GradeZero.coe_mul + theorem SetLike.GradeZero.coe_one + theorem SetLike.GradeZero.coe_pow + def SetLike.GradeZero.submonoid Modified Mathlib/RingTheory/GradedAlgebra/Basic.lean + theorem GradedRing.coe_projZeroRingHom'_apply + def GradedRing.projZeroRingHom' + theorem GradedRing.projZeroRingHom'_apply_coe + theorem GradedRing.projZeroRingHom'_surjective Added Mathlib/RingTheory/GradedAlgebra/Noetherian.lean 2024-06-27 05:39:43 9c4c6f7 feat(SetTheory/Surreal/Basic): surreal number multiplication (#14044) prove multiplication of surreal numbers is well-defined, thus they form an ordered commutative ring This is a port of a Lean 3 proof from [this mathlib branch](https://github.com/leanprover-community/mathlib/blob/surreal_mul_symm'/src/set_theory/surreal/basic.lean). It shows that multiplication of surreal numbers is well-defined, and therefore the surreal numbers form an ordered commutative ring. Because `Surreal` is now a ring, the simp normal-form for scalar multiplication (by integers) is now `*`. This required changes throughout `SetTheory/Surreal/Dyadic`. For the most part, I translated the Lean 3 code directly to Lean 4, although in a few cases, I couldn't get that to work and wrote a new proof instead. There were some lemmas used that were in the mathlib branch that were not ported to mathlib4. I have ported those lemmas and put them in an appropriate place in mathlib4. I copied over the author names from the Lean 3 code and added myself. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Logic/Hydra.lean + theorem Relation.cutExpand_add_right + theorem Relation.cutExpand_closed + theorem Relation.cutExpand_double + theorem Relation.cutExpand_double_left + theorem Relation.cutExpand_pair_left + theorem Relation.cutExpand_pair_right + theorem Relation.cutExpand_zero Modified Mathlib/Logic/Relation.lean + theorem Relation.TransGen.closed' Modified Mathlib/SetTheory/Game/Basic.lean + theorem SetTheory.PGame.leftMoves_mul_iff + def SetTheory.PGame.mulOption + theorem SetTheory.PGame.mulOption_neg_neg + theorem SetTheory.PGame.mulOption_symm + theorem SetTheory.PGame.quot_neg_mul_neg + theorem SetTheory.PGame.rightMoves_mul_iff Modified Mathlib/SetTheory/Surreal/Basic.lean + theorem SetTheory.PGame.Numeric.isOption Modified Mathlib/SetTheory/Surreal/Dyadic.lean +/- theorem Surreal.double_powHalf_succ_eq_powHalf - def Surreal.dyadicMap +/- theorem Surreal.nsmul_pow_two_powHalf' +/- theorem Surreal.nsmul_pow_two_powHalf Added Mathlib/SetTheory/Surreal/Multiplication.lean + theorem SetTheory.PGame.Equiv.mul_congr + theorem SetTheory.PGame.Equiv.mul_congr_left + theorem SetTheory.PGame.Equiv.mul_congr_right + theorem SetTheory.PGame.Numeric.mul + theorem SetTheory.PGame.Numeric.mul_pos + theorem SetTheory.PGame.P24 + theorem SetTheory.PGame.P3_of_lt_of_lt + def Surreal.Multiplication.Args.Numeric + theorem Surreal.Multiplication.Args.numeric_P1 + theorem Surreal.Multiplication.Args.numeric_P24 + def Surreal.Multiplication.Args.toMultiset + inductive Surreal.Multiplication.Args + theorem Surreal.Multiplication.ArgsRel.numeric_closed + def Surreal.Multiplication.ArgsRel + def Surreal.Multiplication.IH1 + def Surreal.Multiplication.IH24 + def Surreal.Multiplication.IH3 + def Surreal.Multiplication.IH4 + def Surreal.Multiplication.MulOptionsLTMul + def Surreal.Multiplication.P124 + def Surreal.Multiplication.P1 + theorem Surreal.Multiplication.P1_of_eq + theorem Surreal.Multiplication.P1_of_ih + theorem Surreal.Multiplication.P1_of_lt + def Surreal.Multiplication.P24 + theorem Surreal.Multiplication.P24_neg_left + theorem Surreal.Multiplication.P24_neg_right + theorem Surreal.Multiplication.P24_of_ih + def Surreal.Multiplication.P2 + theorem Surreal.Multiplication.P2_neg_left + theorem Surreal.Multiplication.P2_neg_right + theorem Surreal.Multiplication.P3.trans + def Surreal.Multiplication.P3 + theorem Surreal.Multiplication.P3_comm + theorem Surreal.Multiplication.P3_neg + theorem Surreal.Multiplication.P3_of_ih + theorem Surreal.Multiplication.P3_of_le_left + theorem Surreal.Multiplication.P3_of_lt + def Surreal.Multiplication.P4 + theorem Surreal.Multiplication.P4_neg_left + theorem Surreal.Multiplication.P4_neg_right + theorem Surreal.Multiplication.argsRel_wf + theorem Surreal.Multiplication.ih1 + theorem Surreal.Multiplication.ih1_neg_left + theorem Surreal.Multiplication.ih1_neg_right + theorem Surreal.Multiplication.ih1_swap + theorem Surreal.Multiplication.ih24_neg + theorem Surreal.Multiplication.ih3_of_ih + theorem Surreal.Multiplication.ih4 + theorem Surreal.Multiplication.ih4_neg + theorem Surreal.Multiplication.ih₁₂ + theorem Surreal.Multiplication.ih₂₁ + theorem Surreal.Multiplication.main + theorem Surreal.Multiplication.mulOption_lt + theorem Surreal.Multiplication.mulOption_lt_iff_P1 + theorem Surreal.Multiplication.mulOption_lt_mul_iff_P3 + theorem Surreal.Multiplication.mulOption_lt_mul_of_equiv + theorem Surreal.Multiplication.mulOption_lt_of_lt + theorem Surreal.Multiplication.mulOptionsLTMul_of_numeric + theorem Surreal.Multiplication.mul_right_le_of_equiv + theorem Surreal.Multiplication.numeric_mul_option + theorem Surreal.Multiplication.numeric_of_ih + theorem Surreal.Multiplication.numeric_option_mul + theorem Surreal.Multiplication.numeric_option_mul_option 2024-06-27 05:05:07 0e9d6a7 chore: add a script to automate nightly adaptation prs (#14178) ESTIMATED CHANGES Added scripts/create-adaptation-pr.sh 2024-06-27 04:18:52 086557d feat: Star algebras satisfy `OrderedSMul` (#13427) This PR shows that star algebras satisfy `OrderedSMul 𝕜 A` whenever `𝕜` is `RCLike` and `A` is a non-unital star algebra. ESTIMATED CHANGES Modified Mathlib/Algebra/Star/Order.lean + theorem StarModule.smul_lt_smul_of_pos Modified Mathlib/Analysis/RCLike/Basic.lean + theorem StarModule.instOrderedSMul 2024-06-27 01:16:15 c95b27f feat(Order/KrullDimension): add some basic lemmas about krull dimension of a preorder (#11147) - krull dimension, height, coheight interacting with functions - order dual These will be specialized to ring theoretic krull dimension later ESTIMATED CHANGES Modified Mathlib/Order/KrullDimension.lean + theorem height_mono + theorem krullDim_eq_bot_of_isEmpty + theorem krullDim_eq_iSup_height + theorem krullDim_eq_length_of_finiteDimensionalOrder + theorem krullDim_eq_of_orderIso + theorem krullDim_eq_top_of_infiniteDimensionalOrder + theorem krullDim_eq_zero_of_unique + theorem krullDim_le_of_strictComono_and_surj + theorem krullDim_le_of_strictMono + theorem krullDim_nonneg_of_nonempty + theorem krullDim_orderDual Modified Mathlib/Order/RelSeries.lean + theorem infiniteDimensionalOrder_of_strictMono 2024-06-27 00:05:43 915d870 feat(Nat/Factorization): add `exists_eq_two_pow_mul_odd` (#14166) Any nonzero natural number is the product of an odd part `m` and a power of two `2 ^ k`. This is a trivial consequence of the existing `exists_eq_pow_mul_and_not_dvd`, but performs a convenient restatement in terms of `Odd`. Needed by #14049. ESTIMATED CHANGES Modified Mathlib/Data/Nat/Factorization/Basic.lean + theorem Nat.exists_eq_two_pow_mul_odd 2024-06-26 23:14:03 270043b feat(Set): Add `Set.Finite.powerset` (#14175) If set `s` is finite, then powerset of `s` (`𝒫 s`) is finite. Zulip: https://leanprover.zulipchat.com/#narrow/stream/217875-Is-there-code-for-X.3F/topic/Set.20is.20finite.2C.20then.20its.20powerset.20is.20finite/near/447338619 Recreate of #14173 ESTIMATED CHANGES Modified Mathlib/Data/Set/Finite.lean 2024-06-26 22:48:06 521c729 doc: clarify sections docstring (#14174) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Types.lean 2024-06-26 22:37:55 71b736c doc: clarify finite adele ring docstring (#14172) ESTIMATED CHANGES Modified Mathlib/RingTheory/DedekindDomain/FiniteAdeleRing.lean 2024-06-26 22:10:18 7d6e157 refactor(Algebra/Star/StarAlgHom): Reverting {_ : ...} to [...] (#14110) During porting (#2603) parameters to some instances were made implicit to avoid [dangerous instances](https://github.com/leanprover-community/mathlib4/pull/2603/files#diff-8017bfdc9f21755fb88462d9ba5909d1590cfe91939577ce589ef704a831df57R700). Is this still necessary? ESTIMATED CHANGES Modified Mathlib/Algebra/Star/StarAlgHom.lean 2024-06-26 22:10:17 bb6ed22 feat(Algebra/Star/StarRingHom): Add non-unital star ring homomorphisms (#12924) Definitions and basic properties of non-unital star ring homomorphisms ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Star/StarAlgHom.lean Added Mathlib/Algebra/Star/StarRingHom.lean + def NonUnitalStarRingHom.Simps.apply + theorem NonUnitalStarRingHom.coe_comp + theorem NonUnitalStarRingHom.coe_copy + theorem NonUnitalStarRingHom.coe_id + theorem NonUnitalStarRingHom.coe_mk + theorem NonUnitalStarRingHom.coe_one + theorem NonUnitalStarRingHom.coe_toNonUnitalRingHom + theorem NonUnitalStarRingHom.coe_zero + def NonUnitalStarRingHom.comp + theorem NonUnitalStarRingHom.comp_apply + theorem NonUnitalStarRingHom.comp_assoc + theorem NonUnitalStarRingHom.comp_id + theorem NonUnitalStarRingHom.copy_eq + theorem NonUnitalStarRingHom.ext + theorem NonUnitalStarRingHom.id_comp + theorem NonUnitalStarRingHom.mk_coe + theorem NonUnitalStarRingHom.one_apply + theorem NonUnitalStarRingHom.zero_apply + structure NonUnitalStarRingHom + def NonUnitalStarRingHomClass.toNonUnitalStarRingHom + def StarRingEquiv.Simps.apply + def StarRingEquiv.Simps.symm_apply + theorem StarRingEquiv.apply_symm_apply + theorem StarRingEquiv.coe_mk + theorem StarRingEquiv.coe_ofBijective + theorem StarRingEquiv.coe_refl + theorem StarRingEquiv.coe_trans + theorem StarRingEquiv.ext + theorem StarRingEquiv.ext_iff + theorem StarRingEquiv.invFun_eq_symm + theorem StarRingEquiv.leftInverse_symm + theorem StarRingEquiv.mk_coe + theorem StarRingEquiv.ofBijective_apply + def StarRingEquiv.ofStarRingHom + def StarRingEquiv.refl + theorem StarRingEquiv.refl_symm + theorem StarRingEquiv.rightInverse_symm + theorem StarRingEquiv.symm_apply_apply + theorem StarRingEquiv.symm_bijective + theorem StarRingEquiv.symm_mk + theorem StarRingEquiv.symm_symm + theorem StarRingEquiv.symm_trans_apply + theorem StarRingEquiv.toRingEquiv_eq_coe + def StarRingEquiv.trans + theorem StarRingEquiv.trans_apply + structure StarRingEquiv + def StarRingEquivClass.toStarRingEquiv 2024-06-26 21:12:08 94b541f feat: lemmas needed for Sobolev inequality (#14159) * generalize and rename `MeasureTheory.snorm_indicator_ge_of_bdd_below` * From the Sobolev inequality project ESTIMATED CHANGES Modified Mathlib/Analysis/Calculus/FDeriv/Basic.lean Modified Mathlib/Analysis/Normed/Group/Constructions.lean + theorem Pi.nnnorm_single + theorem Pi.norm_single Modified Mathlib/Analysis/SpecialFunctions/Pow/Real.lean Modified Mathlib/Data/ENNReal/Inv.lean Modified Mathlib/Data/ENNReal/Operations.lean +/- theorem ENNReal.mul_le_mul_left +/- theorem ENNReal.mul_lt_mul_left Modified Mathlib/Data/Set/Prod.lean + theorem Set.update_image Modified Mathlib/Logic/Basic.lean + theorem forall_and_left + theorem forall_and_right Modified Mathlib/MeasureTheory/Function/LpSeminorm/Basic.lean + theorem MeasureTheory.le_snorm_of_bddBelow - theorem MeasureTheory.snorm_indicator_ge_of_bdd_below + theorem MeasureTheory.snorm_nnreal_eq_lintegral + theorem MeasureTheory.snorm_nnreal_eq_snorm' + theorem MeasureTheory.snorm_nnreal_pow_eq_lintegral Modified Mathlib/MeasureTheory/Function/LpSpace.lean + theorem Continuous.memℒp_of_hasCompactSupport + theorem HasCompactSupport.memℒp_of_bound Modified Mathlib/MeasureTheory/Function/UniformIntegrable.lean Modified Mathlib/Topology/Separation.lean + theorem closedEmbedding_update Modified Mathlib/Topology/Support.lean 2024-06-26 21:12:06 66c9c68 feat: the norm raised to a power is C^1 (#14124) * From the Sobolev inequality project * Generalize `continuousAt_rpow_const` ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Analysis/Calculus/ContDiff/Defs.lean + theorem contDiff_one_iff_hasFDerivAt Added Mathlib/Analysis/InnerProductSpace/NormPow.lean + theorem ContDiff.norm_rpow + theorem Differentiable.fderiv_norm_rpow + theorem Differentiable.norm_rpow + theorem contDiff_norm_rpow + theorem differentiable_norm_rpow + theorem fderiv_norm_rpow + theorem hasDerivAt_abs_rpow + theorem hasDerivAt_norm_rpow + theorem hasFDerivAt_norm_rpow + theorem nnnorm_fderiv_norm_rpow_le + theorem norm_fderiv_norm_id_rpow + theorem norm_fderiv_norm_rpow_le Modified Mathlib/Analysis/SpecialFunctions/Pow/Continuity.lean +/- theorem Real.continuousAt_rpow_const + theorem Real.continuous_rpow_const Modified Mathlib/Analysis/SpecialFunctions/Pow/NNReal.lean + theorem ENNReal.rpow_add_of_nonneg + theorem NNReal.rpow_add_of_nonneg + theorem Real.nnnorm_rpow_of_nonneg 2024-06-26 17:56:00 cf35070 feat(Data/Matroid/Map): maps between matroids (#13960) This PR creates a new file with the machinery for transferring matroid structures between types. The most important definitions are `Matroid.map`, which pushes a `M : Matroid α` along `f : α → β` to give an `N : Matroid β`, and `Matroid.comap`, which pulls `N : Matroid β` back along `f : α → β` to get an `M : Matroid α`. The former requires `f` to be injective on the ground set of `M`, but the latter doesn't. The original decision to define matroids with an embedded ground set within a type rather than just a structure on a type came with tradeoffs, and it is in places like this that they show up the most. For this reason, the file also defines several variants of `map` where the range/domain of the function in question is a coerced set rather than a type. There is nothing mathematically interesting going on with these definitions, and maps and comaps are not central to matroid theory in actual research, but they are very useful in making formalization painless, as they save the work of painstakingly checking matroid axioms in many cases. They will be used in future PRs to define things like direct sums and linearly representable matroids. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Data/Matroid/Basic.lean + theorem Matroid.Indep.base_of_forall_insert Added Mathlib/Data/Matroid/Map.lean + theorem Matroid.Base.map + theorem Matroid.Base.mapEmbedding + theorem Matroid.Basis.map + theorem Matroid.Basis.mapEmbedding + theorem Matroid.Indep.exists_bijOn_of_map + theorem Matroid.Indep.exists_eq_image_of_mapSetEmbedding + theorem Matroid.Indep.map + theorem Matroid.Indep.mapEmbedding + def Matroid.comap + def Matroid.comapOn + theorem Matroid.comapOn_base_iff + theorem Matroid.comapOn_base_iff_of_bijOn + theorem Matroid.comapOn_base_iff_of_surjOn + theorem Matroid.comapOn_dual_eq_of_bijOn + theorem Matroid.comapOn_ground_eq + theorem Matroid.comapOn_indep_iff + theorem Matroid.comapOn_preimage_eq + theorem Matroid.comap_base_iff + theorem Matroid.comap_basis'_iff + theorem Matroid.comap_basis_iff + theorem Matroid.comap_dep_iff + theorem Matroid.comap_emptyOn + theorem Matroid.comap_ground_eq + theorem Matroid.comap_id + theorem Matroid.comap_indep_iff + theorem Matroid.comap_indep_iff_of_injOn + theorem Matroid.comap_loopyOn + theorem Matroid.comap_map + theorem Matroid.eq_of_restrictSubtype_eq + def Matroid.map + def Matroid.mapEmbedding + theorem Matroid.mapEmbedding_ground_eq + theorem Matroid.mapEmbedding_indep_iff + def Matroid.mapEquiv + theorem Matroid.mapEquiv_base_iff + theorem Matroid.mapEquiv_dep_iff + theorem Matroid.mapEquiv_eq_map + theorem Matroid.mapEquiv_ground_eq + theorem Matroid.mapEquiv_indep_iff + def Matroid.mapSetEmbedding + theorem Matroid.mapSetEmbedding_ground + theorem Matroid.mapSetEmbedding_indep_iff' + theorem Matroid.mapSetEmbedding_indep_iff + theorem Matroid.mapSetEquiv.ground + def Matroid.mapSetEquiv + theorem Matroid.mapSetEquiv_indep_iff + theorem Matroid.map_base_iff + theorem Matroid.map_basis_iff' + theorem Matroid.map_basis_iff + theorem Matroid.map_comap + theorem Matroid.map_dep_iff + theorem Matroid.map_dual + theorem Matroid.map_emptyOn + theorem Matroid.map_freeOn + theorem Matroid.map_ground + theorem Matroid.map_id + theorem Matroid.map_image_base_iff + theorem Matroid.map_image_indep_iff + theorem Matroid.map_indep_iff + theorem Matroid.map_loopyOn + theorem Matroid.map_val_restrictSubtype_eq + theorem Matroid.map_val_restrictSubtype_ground_eq + def Matroid.restrictSubtype + theorem Matroid.restrictSubtype_dual' + theorem Matroid.restrictSubtype_dual + theorem Matroid.restrictSubtype_ground + theorem Matroid.restrictSubtype_indep_iff + theorem Matroid.restrictSubtype_indep_iff_of_subset + theorem Matroid.restrictSubtype_inter_indep_iff Modified docs/references.bib Modified scripts/noshake.json 2024-06-26 17:55:59 b6ea16c feat : added `eigenvalues_mem_spectrum_real` and supporting RCLike coercion results (#13838) Added several RCLike to real coercion results to support the result that eigenvalues of a hermitian matrix belong to the real spectrum of that matrix, and included this result. Co-Authored by @j-loreaux ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/Matrix/Spectrum.lean + theorem Matrix.IsHermitian.eigenvalues_mem_spectrum_real + theorem Matrix.IsHermitian.spectrum_toEuclideanLin Modified Mathlib/Topology/Algebra/Module/FiniteDimension.lean + def Module.End.toContinuousLinearMap 2024-06-26 17:20:30 553fe5d feat(IsSelfAdjoint): add `aesop` tags relevant for proving `IsSelfAdjoint a` automatically (#13673) These are needed for the specialized tactic `cfc_tac` to work well. This tactic is used for proving side goals related to the continuous functional calculus. Some of the `safe` attributes are not technically safe (i.e. they might turn a provable goal into an unprovable one), but I would claim that in those cases, it's not really reasonable to expect automation to work anyway. ESTIMATED CHANGES Modified Mathlib/Algebra/Star/Order.lean Modified Mathlib/Algebra/Star/SelfAdjoint.lean 2024-06-26 16:30:30 7cf04c3 chore(Logic/Basic): drop 3 long-deprecated theorems (#14157) ESTIMATED CHANGES Modified Mathlib/Logic/Basic.lean - theorem or_of_or_of_imp_left - theorem or_of_or_of_imp_of_imp - theorem or_of_or_of_imp_right 2024-06-26 16:30:29 22d0c6a fix: rename `orderOf_mk` to `Prod.orderOf_mk` (#14154) ESTIMATED CHANGES Modified Mathlib/GroupTheory/OrderOfElement.lean + theorem Prod.orderOf_mk - theorem orderOf_mk 2024-06-26 16:30:28 cabd787 feat(Data/Real/EReal): add theorems (#14125) - [x] Add `add_sub_cancel_right` - [x] Add `right_distrib_of_nneg` - [x] Add `left_distrib_of_nneg` - [x] Add `le_iff_le_forall_real_gt` ESTIMATED CHANGES Modified Mathlib/Data/Real/EReal.lean + theorem EReal.add_sub_cancel_right + theorem EReal.le_iff_le_forall_real_gt + theorem EReal.left_distrib_of_nonneg + theorem EReal.right_distrib_of_nonneg Modified scripts/style-exceptions.txt 2024-06-26 16:30:27 3a9a8f4 chore/perf(Analysis): replace continuity -> fun_prop (#13959) This is exhaustive, with the exception of one goal where the `continuity` proof is seemingly not about continuity at all... We tag two lemmas with `fun_prop` which were continuity lemmas. In some cases, this speeds up proofs significantly; we also resolve two porting notes about continuity not applying. ESTIMATED CHANGES Modified Mathlib/Analysis/Calculus/FDeriv/Measurable.lean Modified Mathlib/Analysis/Calculus/LineDeriv/Basic.lean Modified Mathlib/Analysis/Calculus/LineDeriv/Measurable.lean Modified Mathlib/Analysis/Calculus/Taylor.lean Modified Mathlib/Analysis/Complex/Tietze.lean Modified Mathlib/Analysis/Convex/Gauge.lean Modified Mathlib/Analysis/Convex/Topology.lean Modified Mathlib/Analysis/Fourier/Inversion.lean Modified Mathlib/Analysis/InnerProductSpace/LinearPMap.lean Modified Mathlib/Analysis/InnerProductSpace/Projection.lean Modified Mathlib/Analysis/NormedSpace/HahnBanach/SeparatingDual.lean Modified Mathlib/Analysis/NormedSpace/SphereNormEquiv.lean Modified Mathlib/Analysis/ODE/PicardLindelof.lean Modified Mathlib/Analysis/SpecialFunctions/Complex/LogBounds.lean Modified Mathlib/Analysis/SpecialFunctions/Integrals.lean Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Bounds.lean Modified Mathlib/Topology/Algebra/Module/Basic.lean 2024-06-26 15:37:41 fed9531 feat(Data/Fin/Basic): Expand definition of `BoundedOrder` and `Lattice` for `Fin` (#9814) Redefine the BoundedOrder and Lattice on `Fin (n + 1)` so that they are defined for `Fin n`. ESTIMATED CHANGES Modified Mathlib/Data/Fin/Basic.lean +/- theorem Fin.one_lt_last +/- theorem Fin.rev_involutive + theorem Fin.val_rev_zero Modified Mathlib/Order/Fin.lean + theorem Fin.rev_bot + theorem Fin.rev_last_eq_bot + theorem Fin.rev_top + theorem Fin.rev_zero_eq_top 2024-06-26 14:44:17 0c8452e feat: Turán's theorem (#9317) ESTIMATED CHANGES Modified Mathlib/Combinatorics/SimpleGraph/Turan.lean +/- theorem SimpleGraph.IsTuranMaximal.equivalence_not_adj + theorem SimpleGraph.IsTuranMaximal.iso +/- theorem SimpleGraph.IsTuranMaximal.not_adj_trans + theorem SimpleGraph.isTuranMaximal_iff_nonempty_iso_turanGraph + theorem SimpleGraph.isTuranMaximal_of_iso +/- theorem SimpleGraph.isTuranMaximal_turanGraph 2024-06-26 13:41:00 2196143 chore: tag measurability lemmas with fun_prop (#14123) * From the Sobolev inequality project ESTIMATED CHANGES Modified Mathlib/Analysis/NormedSpace/BoundedLinearMaps.lean Modified Mathlib/Analysis/SpecialFunctions/Pow/Continuity.lean Modified Mathlib/MeasureTheory/Constructions/BorelSpace/Metric.lean Modified Mathlib/MeasureTheory/Constructions/BorelSpace/Real.lean Modified Mathlib/Topology/Instances/ENNReal.lean 2024-06-26 13:40:59 4f99ec0 feat(GroupTheory/Perm/Cycle/Factors): Remove finiteness requirement from cycleOf. (#13145) cycleOf can be defined using only a decidability condition, rather than the current finiteness condition (from which decidability can be inferred). This commit removes this dependency on finiteness. ESTIMATED CHANGES Modified Mathlib/GroupTheory/Perm/Cycle/Basic.lean Modified Mathlib/GroupTheory/Perm/Cycle/Factors.lean +/- theorem Equiv.Perm.Disjoint.cycleOf_mul_distrib +/- theorem Equiv.Perm.SameCycle.exists_pow_eq +/- theorem Equiv.Perm.SameCycle.exists_pow_eq_of_mem_support +/- theorem Equiv.Perm.SameCycle.mem_support_iff +/- theorem Equiv.Perm.card_support_cycleOf_pos_iff +/- def Equiv.Perm.cycleOf +/- theorem Equiv.Perm.cycleOf_apply +/- theorem Equiv.Perm.cycleOf_apply_apply_pow_self +/- theorem Equiv.Perm.cycleOf_apply_apply_self +/- theorem Equiv.Perm.cycleOf_apply_apply_zpow_self +/- theorem Equiv.Perm.cycleOf_apply_self +/- theorem Equiv.Perm.cycleOf_eq_one_iff +/- theorem Equiv.Perm.cycleOf_inv +/- theorem Equiv.Perm.cycleOf_mul_of_apply_right_eq_self +/- theorem Equiv.Perm.cycleOf_one +/- theorem Equiv.Perm.cycleOf_pow_apply_self +/- theorem Equiv.Perm.cycleOf_self_apply +/- theorem Equiv.Perm.cycleOf_self_apply_pow +/- theorem Equiv.Perm.cycleOf_self_apply_zpow +/- theorem Equiv.Perm.cycleOf_zpow_apply_self +/- theorem Equiv.Perm.isCycleOn_support_cycleOf +/- theorem Equiv.Perm.isCycle_cycleOf +/- theorem Equiv.Perm.isCycle_cycleOf_iff +/- theorem Equiv.Perm.mem_support_cycleOf_iff' +/- theorem Equiv.Perm.mem_support_cycleOf_iff +/- theorem Equiv.Perm.pow_mod_card_support_cycleOf_self_apply +/- theorem Equiv.Perm.pow_mod_orderOf_cycleOf_apply +/- theorem Equiv.Perm.support_cycleOf_eq_nil_iff +/- theorem Equiv.Perm.support_cycleOf_le +/- theorem Equiv.Perm.support_cycleOf_nonempty +/- theorem Equiv.Perm.two_le_card_support_cycleOf_iff 2024-06-26 12:43:21 7852921 perf (TensorProduct.Basic): make `Algebra.TensorProduct.mul` irreducible (#14002) `Algebra.TensorProduct.mul` was getting unfolded downstream. We make it `irreducible` to prevent this at the cost of a small number of `unseal mul in`'s, `dsimp`'s, and `with_unfolding_all`'s. ESTIMATED CHANGES Modified Mathlib/Data/Matrix/Kronecker.lean Modified Mathlib/LinearAlgebra/CliffordAlgebra/BaseChange.lean Modified Mathlib/LinearAlgebra/TensorProduct/Opposite.lean Modified Mathlib/LinearAlgebra/TensorProduct/RightExactness.lean Modified Mathlib/RingTheory/Kaehler/Basic.lean Modified Mathlib/RingTheory/PolynomialAlgebra.lean Modified Mathlib/RingTheory/TensorProduct/Basic.lean Modified test/instance_diamonds.lean 2024-06-26 12:43:20 3223301 feat: Fintype instance for `Shrink` (#13988) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Data/Fintype/Shrink.lean + theorem Fintype.card_shrink 2024-06-26 12:43:19 1376ad3 chore(ContinuousMap): add `TopologicalRing` instance (#13882) This PR adds `TopologicalSemiring` and `TopologicalRing` instances on `C(α, β)`, and also gives explicit names to various related instances on `C(α, β)`. ESTIMATED CHANGES Modified Mathlib/Topology/ContinuousFunction/Algebra.lean Modified Mathlib/Topology/ContinuousFunction/Compact.lean 2024-06-26 12:43:18 90b77f0 chore: Rename `Equiv.forall_congr` lemmas (#13725) These names were all over the place and there were missing versions. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Sites/EqualizerSheafCondition.lean Modified Mathlib/CategoryTheory/Sites/IsSheafFor.lean Modified Mathlib/Combinatorics/Additive/Dissociation.lean Modified Mathlib/Combinatorics/HalesJewett.lean Modified Mathlib/Data/Fintype/Basic.lean Modified Mathlib/Data/Nat/Factorization/PrimePow.lean Modified Mathlib/Data/Set/Prod.lean Modified Mathlib/Geometry/Manifold/Diffeomorph.lean Modified Mathlib/GroupTheory/CoprodI.lean Modified Mathlib/Init/Logic.lean + theorem existsUnique_congr - theorem exists_unique_congr Modified Mathlib/Logic/Equiv/Defs.lean Modified Mathlib/Order/Hom/Basic.lean Modified Mathlib/Topology/Homeomorph.lean Modified Mathlib/Topology/UniformSpace/Equiv.lean 2024-06-26 12:43:17 9741ec3 feat: the finite adele ring is an algebra over the finite integral adeles. (#13705) ESTIMATED CHANGES Modified Mathlib/RingTheory/DedekindDomain/FiniteAdeleRing.lean + def DedekindDomain.FiniteAdeleRing.subalgebra +/- def DedekindDomain.FiniteAdeleRing + theorem DedekindDomain.ProdAdicCompletions.isFiniteAdele_iff 2024-06-26 12:03:55 53e093f feat(EllipticCurve): lemmas in Jacobian coordinates (#13846) + `equiv_iff_eq_of_Z_eq`: if a point has two representations in Jacobian coordinates with the same, nonzero Z-coordinate, then the two representations are equal. + `nonsingular_iff_of_Z_ne_zero`: a lemma deleted in an earlier PR for no reason, now restored. + `addXYZ_self`: if the addition (not doubling) formula is applied to a point representative and itself, the result is (0,0,0). + `addXYZ_neg`: the addition formula applied to a point representative and its negation yields a representative of the point at infinity. + two trivial lemmas `fromAffine_ne_zero` and `comp_fin3`. + a series of `map` lemmas showing the addition and doubling formulas in Jacobian coordinates commute with ring homomorphisms. ESTIMATED CHANGES Modified Mathlib/Algebra/MvPolynomial/PDeriv.lean + theorem MvPolynomial.pderiv_map Modified Mathlib/AlgebraicGeometry/EllipticCurve/Jacobian.lean + theorem WeierstrassCurve.Jacobian.Point.fromAffine_ne_zero + theorem WeierstrassCurve.Jacobian.addXYZ_neg + theorem WeierstrassCurve.Jacobian.addXYZ_self + theorem WeierstrassCurve.Jacobian.addX_neg + theorem WeierstrassCurve.Jacobian.addX_self + theorem WeierstrassCurve.Jacobian.addY_neg + theorem WeierstrassCurve.Jacobian.addY_self + theorem WeierstrassCurve.Jacobian.addZ_neg + theorem WeierstrassCurve.Jacobian.addZ_self + theorem WeierstrassCurve.Jacobian.comp_fin3 + theorem WeierstrassCurve.Jacobian.equiv_iff_eq_of_Z_eq' + theorem WeierstrassCurve.Jacobian.equiv_iff_eq_of_Z_eq + theorem WeierstrassCurve.Jacobian.map_addX + theorem WeierstrassCurve.Jacobian.map_addXYZ + theorem WeierstrassCurve.Jacobian.map_addY + theorem WeierstrassCurve.Jacobian.map_addZ + theorem WeierstrassCurve.Jacobian.map_dblU + theorem WeierstrassCurve.Jacobian.map_dblX + theorem WeierstrassCurve.Jacobian.map_dblXYZ + theorem WeierstrassCurve.Jacobian.map_dblY + theorem WeierstrassCurve.Jacobian.map_dblZ + theorem WeierstrassCurve.Jacobian.map_negAddY + theorem WeierstrassCurve.Jacobian.map_negDblY + theorem WeierstrassCurve.Jacobian.map_negY + theorem WeierstrassCurve.Jacobian.map_polynomial + theorem WeierstrassCurve.Jacobian.map_polynomialX + theorem WeierstrassCurve.Jacobian.map_polynomialY + theorem WeierstrassCurve.Jacobian.map_polynomialZ + theorem WeierstrassCurve.Jacobian.negAddY_neg + theorem WeierstrassCurve.Jacobian.negAddY_self + theorem WeierstrassCurve.Jacobian.nonsingular_iff_of_Y_eq_negY + theorem WeierstrassCurve.Jacobian.nonsingular_iff_of_Z_ne_zero 2024-06-26 12:03:54 27ad31a chore: remove LinearAlgebra.Basic (#12311) It had become an incoherent grab-bag of results, which I've moved to more suitable places over the last few months. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/BigOperators/Group/Finset.lean Modified Mathlib/Algebra/Group/Hom/Defs.lean Deleted Mathlib/LinearAlgebra/Basic.lean 2024-06-26 11:25:27 a1cb4f2 feat(LinearAlgebra/TensorProduct/Submodule): add some linear maps induced by multiplication for submodules (#12498) ... used in the definition of linearly disjointness. Let `R` be a commutative ring, `S` be an `R`-algebra (not necessarily commutative). Let `M` and `N` be `R`-submodules in `S`. - `Submodule.mulMap`: the natural `R`-linear map `M ⊗[R] N →ₗ[R] S` induced by the multiplication in `S`, whose image is `M * N` (`Submodule.mulMap_range`). - `Submodule.mulMap'`: the natural map `M ⊗[R] N →ₗ[R] M * N` induced by multiplication in `S`, which is surjective (`Submodule.mulMap'_surjective`). - `Submodule.lTensorOne`, `Submodule.rTensorOne`: the natural isomorphism between `i(R) ⊗[R] N` and `N`, resp. `M ⊗[R] i(R)` and `M`, induced by multiplication in `S`, here `i : R → S` is the structure map. They generalize `TensorProduct.lid` and `TensorProduct.rid`, as `i(R)` is not necessarily isomorphic to `R`. Note that we use `⊥ : Subalgebra R S` instead of `1 : Submodule R S`, since the map `R →ₗ[R] (1 : Submodule R S)` is not defined directly in mathlib yet. - `Submodule.mulLeftMap`: if `m : ι → M` is a family of elements, then there is an `R`-linear map from `ι →₀ N` to `S` which maps `{ n_i }` to the sum of `m_i * n_i`. - `Submodule.mulRightMap`: if `n : ι → N` is a family of elements, then there is an `R`-linear map from `ι →₀ M` to `S` which maps `{ m_i }` to the sum of `m_i * n_i`. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/LinearAlgebra/Finsupp.lean + def Submodule.mulLeftMap + theorem Submodule.mulLeftMap_apply + theorem Submodule.mulLeftMap_apply_single + theorem Submodule.mulLeftMap_eq_mulRightMap + theorem Submodule.mulLeftMap_eq_mulRightMap_of_commute + def Submodule.mulRightMap + theorem Submodule.mulRightMap_apply + theorem Submodule.mulRightMap_apply_single Added Mathlib/LinearAlgebra/TensorProduct/Submodule.lean + theorem Submodule.comm_trans_lTensorOne + theorem Submodule.comm_trans_rTensorOne + def Submodule.lTensorOne' + theorem Submodule.lTensorOne'_one_tmul + theorem Submodule.lTensorOne'_tmul + def Submodule.lTensorOne + theorem Submodule.lTensorOne_one_tmul + theorem Submodule.lTensorOne_symm_apply + theorem Submodule.lTensorOne_tmul + theorem Submodule.mulLeftMap_eq_mulMap_comp + def Submodule.mulMap' + theorem Submodule.mulMap'_surjective + def Submodule.mulMap + theorem Submodule.mulMap_comm + theorem Submodule.mulMap_comm_of_commute + theorem Submodule.mulMap_comp_lTensor + theorem Submodule.mulMap_comp_map_inclusion + theorem Submodule.mulMap_comp_rTensor + theorem Submodule.mulMap_eq_mul'_comp_mapIncl + theorem Submodule.mulMap_one_left_eq + theorem Submodule.mulMap_one_right_eq + theorem Submodule.mulMap_op + theorem Submodule.mulMap_range + theorem Submodule.mulMap_tmul + theorem Submodule.mulRightMap_eq_mulMap_comp + def Submodule.rTensorOne' + theorem Submodule.rTensorOne'_tmul + theorem Submodule.rTensorOne'_tmul_one + def Submodule.rTensorOne + theorem Submodule.rTensorOne_symm_apply + theorem Submodule.rTensorOne_tmul + theorem Submodule.rTensorOne_tmul_one + theorem Submodule.val_mulMap'_tmul Modified scripts/style-exceptions.txt 2024-06-26 10:10:07 7ea5191 feat(EllipticCurve): affine formulas and bivariate polynomial lemmas (#13845) + Create a new file for materials about bivariate polynomials developed using `R[X][X]` rather than `MvPolynomial`. Introduce `evalEval` for evaluation at a point (x,y) on the plane, and use it in Affine.lean and Jacobian.lean. + Move the notations `R[X][Y]` and `Y` from `EllipticCurve/Afffine.lean` to the new file. + Add two lemmas in `Affine.lean` that relates `negPolynomial` and `polynomialY`, and two trivial lemmas `some_ne_zero` and `some_eq_some_iff`. + Prove two affine formulas `addX_eq_subX_sub` and `addY_sub_negY` which are crucial for the development of division polynomials. + Golf the definition of addition of rational points and subsequent lemmas, including two proofs in `Group.lean`. + Remove `eval_polynomial(X,Y)` lemmas in favor of bivariate polynomial lemma `map_mapRingHom_eval_map_eval`; add a lemma `Equation.map`. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Polynomial/Bivariate.lean + def AdjoinRoot.evalEval + theorem AdjoinRoot.evalEval_mk + theorem Polynomial.coe_algebraMap_eq_CC + theorem Polynomial.coe_evalEvalRingHom + theorem Polynomial.evalEvalRingHom_eq + theorem Polynomial.evalEval_C + theorem Polynomial.evalEval_X + theorem Polynomial.eval_C_X_comp_eval₂_map_C_X + theorem Polynomial.eval_C_X_eval₂_map_C_X + theorem Polynomial.eval₂RingHom_eval₂RingHom + theorem Polynomial.eval₂_evalRingHom + theorem Polynomial.eval₂_eval₂RingHom_apply + theorem Polynomial.map_evalRingHom_eval + theorem Polynomial.map_mapRingHom_evalEval + theorem Polynomial.map_mapRingHom_eval_map + theorem Polynomial.map_mapRingHom_eval_map_eval Modified Mathlib/AlgebraicGeometry/EllipticCurve/Affine.lean + theorem WeierstrassCurve.Affine.Equation.map + theorem WeierstrassCurve.Affine.Point.some_ne_zero + theorem WeierstrassCurve.Affine.Y_sub_negPolynomial + theorem WeierstrassCurve.Affine.Y_sub_polynomialY + theorem WeierstrassCurve.Affine.addX_eq_addX_negY_sub + theorem WeierstrassCurve.Affine.addY_sub_negY_addY - theorem WeierstrassCurve.Affine.baseChange_eval_polynomial - theorem WeierstrassCurve.Affine.baseChange_eval_polynomialX - theorem WeierstrassCurve.Affine.baseChange_eval_polynomialY + theorem WeierstrassCurve.Affine.cyclic_sum_Y_mul_X_sub_X + theorem WeierstrassCurve.Affine.evalEval_baseChange_polynomial_X_Y + theorem WeierstrassCurve.Affine.evalEval_polynomial + theorem WeierstrassCurve.Affine.evalEval_polynomialX + theorem WeierstrassCurve.Affine.evalEval_polynomialX_zero + theorem WeierstrassCurve.Affine.evalEval_polynomialY + theorem WeierstrassCurve.Affine.evalEval_polynomialY_zero + theorem WeierstrassCurve.Affine.evalEval_polynomial_zero +/- theorem WeierstrassCurve.Affine.eval_negPolynomial - theorem WeierstrassCurve.Affine.eval_polynomial - theorem WeierstrassCurve.Affine.eval_polynomialX - theorem WeierstrassCurve.Affine.eval_polynomialX_zero - theorem WeierstrassCurve.Affine.eval_polynomialY - theorem WeierstrassCurve.Affine.eval_polynomialY_zero - theorem WeierstrassCurve.Affine.eval_polynomial_zero - theorem WeierstrassCurve.Affine.map_eval_polynomial - theorem WeierstrassCurve.Affine.map_eval_polynomialX - theorem WeierstrassCurve.Affine.map_eval_polynomialY Modified Mathlib/AlgebraicGeometry/EllipticCurve/DivisionPolynomial/Basic.lean Modified Mathlib/AlgebraicGeometry/EllipticCurve/DivisionPolynomial/Degree.lean Modified Mathlib/AlgebraicGeometry/EllipticCurve/Group.lean Modified Mathlib/AlgebraicGeometry/EllipticCurve/Jacobian.lean 2024-06-26 09:21:43 caa1d6c chore: use latest elan in CI (#14144) ESTIMATED CHANGES Modified .github/workflows/bors.yml Modified .github/workflows/build.yml Modified .github/workflows/build.yml.in Modified .github/workflows/build_fork.yml Modified .github/workflows/lean4checker.yml Modified .github/workflows/lint_and_suggest_pr.yml Modified .github/workflows/nightly_merge_master.yml Modified .github/workflows/nolints.yml 2024-06-26 09:21:42 ae2d027 chore: register {`OreLocalization`, `Localization`, `ModuleLocalization`} with `induction` and `cases` (#14132) Spit from #12605, which picked up some conflicts here. ESTIMATED CHANGES Modified Mathlib/Algebra/Module/LocalizedModule.lean Modified Mathlib/GroupTheory/MonoidLocalization.lean Modified Mathlib/RingTheory/OreLocalization/Basic.lean Modified Mathlib/RingTheory/OreLocalization/Ring.lean 2024-06-26 09:21:41 bc984f0 feat(Measure/Stieltjes): Add instance `Module ℝ≥0 StieltjesFunction` (#14115) - Add `StieltjesFunction.const` and `StieltjesFunction.add` - Add lemmas `const_apply` and `add_apply` - Add instances `AddCommMonoid StieltjesFunction` and `Module ℝ≥0 StieltjesFunction` - Add lemmas `measure_const`, `measure_add` and `measure_smul` - Cleanup ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Measure/Stieltjes.lean + theorem StieltjesFunction.add_apply + theorem StieltjesFunction.const_apply + theorem StieltjesFunction.measure_add + theorem StieltjesFunction.measure_const + theorem StieltjesFunction.measure_smul 2024-06-26 08:43:29 f687f59 Expand documentation slightly (#14152) doc: Minor improvement Mention equivRealProdCLM (=The natural continuous linear equiv from ℂ to ℝ × ℝ) prominently in the list of functions defined in Analysis/Complex/Basic.lean. For a better overview, list the functions in a table rather than a bullet point list. ESTIMATED CHANGES Modified Mathlib/Analysis/Complex/Basic.lean 2024-06-26 08:43:28 dd0e084 chore: remove tactics (#14139) Remove tactics that do not seem to affect any goal, as reported by the linter. ESTIMATED CHANGES Modified Mathlib/Algebra/BigOperators/Intervals.lean Modified Mathlib/AlgebraicGeometry/Restrict.lean Modified Mathlib/Analysis/SpecialFunctions/Gaussian/FourierTransform.lean Modified Mathlib/Logic/Equiv/TransferInstance.lean Modified Mathlib/NumberTheory/LSeries/HurwitzZetaOdd.lean Modified Mathlib/RingTheory/RingHom/FiniteType.lean 2024-06-26 08:17:04 f029851 chore: move IsLinearMap theorems to their own file (#14116) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Module/LinearMap/Prod.lean + theorem IsLinearMap.isLinearMap_add + theorem IsLinearMap.isLinearMap_sub Modified Mathlib/Analysis/Convex/Star.lean Modified Mathlib/LinearAlgebra/Basic.lean - theorem IsLinearMap.isLinearMap_add - theorem IsLinearMap.isLinearMap_sub 2024-06-26 06:40:59 fd27592 chore: fix update_dependencies reporting bot (#14150) ESTIMATED CHANGES Modified .github/workflows/update_dependencies_zulip.yml 2024-06-26 06:40:58 c73f846 chore: update Mathlib dependencies 2024-06-26 (#14145) This PR updates the Mathlib dependencies. ESTIMATED CHANGES Modified Mathlib.lean Deleted Mathlib/Data/BinaryHeap.lean - def Array.heapSort - def Array.toBinaryHeap - def BinaryHeap.decreaseKey - def BinaryHeap.empty - def BinaryHeap.extractMax - def BinaryHeap.get - def BinaryHeap.heapifyDown - def BinaryHeap.heapifyUp - def BinaryHeap.increaseKey - def BinaryHeap.insert - def BinaryHeap.insertExtractMax - def BinaryHeap.max - def BinaryHeap.mkHeap - def BinaryHeap.popMax - def BinaryHeap.popMaxAux - def BinaryHeap.replaceMax - def BinaryHeap.singleton - def BinaryHeap.size - theorem BinaryHeap.size_heapifyDown - theorem BinaryHeap.size_heapifyUp - theorem BinaryHeap.size_insert - theorem BinaryHeap.size_mkHeap - theorem BinaryHeap.size_popMax - theorem BinaryHeap.size_pos_of_max - structure BinaryHeap Modified Mathlib/Data/Finset/Basic.lean Modified Mathlib/Mathport/Notation.lean Modified Mathlib/Tactic/Hint.lean Modified Mathlib/Tactic/Says.lean Modified lake-manifest.json 2024-06-26 05:43:53 d803ff3 feat: if the body constrains universes, make it explicit in the signature. (#14069) In many places in Mathlib universes in the type signature are invisibly constrained by the RHS of the `def`. This PR makes all these explicit in the type signature. Likely we will change the Lean behaviour to disallow this in https://github.com/leanprover/lean4/pull/4482 (i.e. this is the backport to `master` of the fixes required for that). ESTIMATED CHANGES Modified Mathlib/Algebra/Category/ModuleCat/ChangeOfRings.lean Modified Mathlib/CategoryTheory/Category/Grpd.lean Modified Mathlib/CategoryTheory/EffectiveEpi/Preserves.lean Modified Mathlib/CategoryTheory/EssentiallySmall.lean Modified Mathlib/CategoryTheory/Limits/Constructions/Over/Basic.lean Modified Mathlib/CategoryTheory/Sites/Adjunction.lean +/- def CategoryTheory.Sheaf.adjunctionToTypes +/- theorem CategoryTheory.Sheaf.adjunctionToTypes_counit_app_val +/- theorem CategoryTheory.Sheaf.adjunctionToTypes_unit_app_val Modified Mathlib/CategoryTheory/Sites/Equivalence.lean Modified Mathlib/Condensed/Limits.lean Modified Mathlib/Data/Fintype/Prod.lean +/- theorem Pi.infinite_of_exists_right Modified Mathlib/Geometry/RingedSpace/Basic.lean Modified Mathlib/Geometry/RingedSpace/SheafedSpace.lean Modified Mathlib/GroupTheory/FreeGroup/NielsenSchreier.lean Modified Mathlib/Logic/Equiv/Basic.lean Modified Mathlib/Logic/Nonempty.lean Modified Mathlib/ModelTheory/Bundled.lean Modified Mathlib/ModelTheory/Skolem.lean Modified Mathlib/Topology/Category/LightProfinite/Basic.lean Modified Mathlib/Topology/Category/TopCat/Limits/Basic.lean Modified Mathlib/Topology/Sheaves/Forget.lean Modified Mathlib/Topology/Sheaves/Limits.lean Modified Mathlib/Topology/TietzeExtension.lean 2024-06-26 05:34:07 a98c032 chore: update update_dependencies failure bot (#14147) Was triggering on the wrong workflow. ESTIMATED CHANGES Modified .github/workflows/update_dependencies_zulip.yml 2024-06-26 05:24:29 6308da4 chore: fix timestamp in update_dependencies PRs (#14146) cf #14145 ESTIMATED CHANGES Modified .github/workflows/update_dependencies.yml 2024-06-26 03:57:15 efb8f8f chore: keep trying with update_dependencies workflow (#14143) ESTIMATED CHANGES Modified .github/workflows/update_dependencies.yml 2024-06-26 02:22:38 022088d chore: trying to the update_dependencies workflow working (#14142) ESTIMATED CHANGES Modified .github/workflows/update_dependencies.yml 2024-06-26 01:20:22 d9d3a89 chore: reverse gdelta/separation dependency (#13694) This reversal will allow for the following definition for a [perfectly normal](https://topology.pi-base.org/properties/P15) space (with $T_1$ this is [T_6](https://topology.pi-base.org/properties/P000067), the last "whole number" separation axiom missing from mathlib), proposed at #13517. ```lean /-- A topological space `X` is a *perfectly normal space* provided it is normal and closed sets are Gδ. -/ class PerfectlyNormalSpace (X : Type u) [TopologicalSpace X] extends NormalSpace X : Prop where closed_gdelta : ∀ ⦃h : Set X⦄, IsClosed h → IsGδ h ``` ESTIMATED CHANGES Modified Mathlib/Topology/GDelta.lean - theorem Finset.isGδ_compl - theorem IsGδ.compl_singleton - theorem Set.Countable.isGδ_compl - theorem Set.Finite.isGδ - theorem Set.Finite.isGδ_compl - theorem Set.Subsingleton.isGδ_compl Modified Mathlib/Topology/Separation.lean + theorem Finset.isGδ_compl + theorem IsGδ.compl_singleton + theorem Set.Countable.isGδ_compl + theorem Set.Finite.isGδ + theorem Set.Finite.isGδ_compl + theorem Set.Subsingleton.isGδ_compl 2024-06-25 23:57:15 46b048d chore: add `induction_eliminator` and `cases_eliminator` for free objects (#14135) Namely, for * `FreeMagma` / `FreeAddMagma` * `FreeSemigroup` / `FreeAddSemigroup` * `FreeMonoid` / `FreeAddMonoid` * `FreeCommRing` * `FreeAlgebra` Split from #12605 ESTIMATED CHANGES Modified Mathlib/Algebra/Free.lean Modified Mathlib/Algebra/FreeAlgebra.lean Modified Mathlib/Algebra/FreeMonoid/Basic.lean Modified Mathlib/Algebra/Group/Submonoid/Membership.lean Modified Mathlib/GroupTheory/Coprod/Basic.lean Modified Mathlib/GroupTheory/FreeGroup/Basic.lean Modified Mathlib/RingTheory/FreeCommRing.lean Modified Mathlib/RingTheory/FreeRing.lean 2024-06-25 23:46:23 b35f338 chore: register `MulOpposite.rec` with `induction` and `cases` (#14136) Split from #12605. ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/Operations.lean Modified Mathlib/Algebra/Group/Action/Defs.lean Modified Mathlib/Algebra/Opposites.lean Modified Mathlib/Algebra/Quandle.lean Modified Mathlib/GroupTheory/GroupAction/Opposite.lean Modified Mathlib/RingTheory/Polynomial/Opposites.lean 2024-06-25 22:19:55 8857292 feat: add Repr instance for quaternions (#13940) Adds a Repr instance for QuaternionAlgebra. A quaternion is shown as "{ re := w, imI := x, imJ := y, imK := z }". The components are displayed as Cauchy sequences for quaternions over the Reals. ESTIMATED CHANGES Modified Mathlib/Algebra/Quaternion.lean Added test/Quaternion.lean 2024-06-25 21:22:38 1328678 feat(LinearAlgebra/Dimension): Generalize `rank_tensorProduct` (#14118) ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/Dimension/Constructions.lean 2024-06-25 20:52:28 9cff34c feat(Combinatorics/SimpleGraph): Add theorems about the coloring of the ends of a walk in a bicolored graph (#13200) ESTIMATED CHANGES Modified Mathlib/Combinatorics/SimpleGraph/ConcreteColorings.lean + theorem SimpleGraph.Coloring.even_length_iff_congr + theorem SimpleGraph.Coloring.odd_length_iff_not_congr 2024-06-25 20:15:39 e571678 chore(*): add 3 `fun_prop` attrs (#14040) ESTIMATED CHANGES Modified Mathlib/Dynamics/Flow.lean Modified Mathlib/Topology/Algebra/GroupWithZero.lean Modified Mathlib/Topology/Homeomorph.lean 2024-06-25 17:24:49 92882dd feat(Topology/NNReal): add `Real.map_toNNReal_atTop` (#13983) ... and `Real.comap_toNNReal_atTop` ESTIMATED CHANGES Modified Mathlib/Topology/Instances/ENNReal.lean + theorem ENNReal.tendsto_ofReal_nhds_top Modified Mathlib/Topology/Instances/NNReal.lean + theorem Real.comap_toNNReal_atTop + theorem Real.map_toNNReal_atTop + theorem Real.tendsto_toNNReal_atTop + theorem Real.tendsto_toNNReal_atTop_iff +/- theorem tendsto_real_toNNReal_atTop 2024-06-25 16:50:32 377f9e9 feat(GroupTheory/OrderOfElement): Add lemma `orderOf_mk` (#14104) ESTIMATED CHANGES Modified Mathlib/GroupTheory/OrderOfElement.lean + theorem orderOf_mk 2024-06-25 14:51:25 7e4afad feat: sheaves of modules generated by their sections (#13720) In this PR, we show the existence of colimits in categories of sheaves of modules, apply this to the particular case of coproducts of copies of the sheaf of rings in order to formalize the notion of generating family of (global) sections of a sheaf of modules. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Category/ModuleCat/Presheaf.lean + def PresheafOfModules.sectionsMap + theorem PresheafOfModules.sectionsMap_comp + theorem PresheafOfModules.sectionsMap_id + theorem PresheafOfModules.sections_property Modified Mathlib/Algebra/Category/ModuleCat/Sheaf.lean + def SheafOfModules.sectionsFunctor + theorem SheafOfModules.sectionsMap_comp + theorem SheafOfModules.sectionsMap_id + theorem SheafOfModules.unitHomEquiv_comp_apply + theorem SheafOfModules.unitHomEquiv_symm_comp Added Mathlib/Algebra/Category/ModuleCat/Sheaf/Colimits.lean Added Mathlib/Algebra/Category/ModuleCat/Sheaf/Free.lean + theorem SheafOfModules.freeHomEquiv_comp_apply + theorem SheafOfModules.freeHomEquiv_freeMap + theorem SheafOfModules.freeHomEquiv_symm_comp + theorem SheafOfModules.sectionMap_freeMap_freeSection Added Mathlib/Algebra/Category/ModuleCat/Sheaf/Generators.lean + def SheafOfModules.GeneratingSections.equivOfIso + def SheafOfModules.GeneratingSections.ofEpi + theorem SheafOfModules.GeneratingSections.opEpi_comp + theorem SheafOfModules.GeneratingSections.opEpi_id + structure SheafOfModules.GeneratingSections Modified Mathlib/CategoryTheory/Sites/Over.lean 2024-06-25 14:51:24 27a0278 feat(Topology/Sequences): add missing instances (#13460) - Subtype of a Fréchet-Urysohn space is a Fréchet-Urysohn space; - Disjoint union (`Sum`, `Sigma`) of sequential spaces is a sequential space. ESTIMATED CHANGES Modified Mathlib/Topology/Order.lean + theorem isClosed_coinduced Modified Mathlib/Topology/Sequences.lean + theorem Inducing.frechetUrysohnSpace + theorem SequentialSpace.coinduced 2024-06-25 14:40:29 6d4ab88 feat: relative differentials as a presheaf of modules (#14014) In this PR, we define the type `M.Derivation φ` of derivations with values in a presheaf of `R`-modules `M` relative to a morphism of `φ : S ⟶ F.op ⋙ R` of presheaves of commutative rings over categories `C` and `D` that are related by a functor `F : C ⥤ D`. In the particular case `F` is the identity functor, we construct the universal derivation. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Category/ModuleCat/Differentials/Presheaf.lean + def PresheafOfModules.Derivation'.Universal.mk + theorem PresheafOfModules.Derivation'.app_apply + def PresheafOfModules.Derivation'.mk + theorem PresheafOfModules.Derivation'.mk_app + structure PresheafOfModules.Derivation.Universal + theorem PresheafOfModules.Derivation.congr_d + theorem PresheafOfModules.Derivation.d_one + def PresheafOfModules.Derivation.postcomp + structure PresheafOfModules.Derivation + theorem PresheafOfModules.DifferentialsConstruction.relativeDifferentials'_map_apply + theorem PresheafOfModules.DifferentialsConstruction.relativeDifferentials'_map_d + theorem PresheafOfModules.DifferentialsConstruction.relativeDifferentials'_obj Modified Mathlib/Algebra/Category/ModuleCat/Presheaf.lean 2024-06-25 13:18:33 c4f1cc8 feat(Data/Real/EReal): add simp theorems involving the sum of `⊤` and `x` (#14102) - [x] Add the theorem `top_add_of_ne_bot` which states that for any extended real number `x` which is not `⊥`, the sum of `⊤` and `x` is equal to `⊤`. - [x] Add the theorem `add_top_of_ne_bot` which states that for any extended real number `x` which is not `⊥`, the sum of `x` and `⊤` is equal to `⊤`. - [x] Add the theorem `add_pos` which states that for any two extended real numbers `a` and `b`, if both `a` and `b` are greater than `0`, then their sum is also greater than `0`. - [x] Add the theorem `mul_pos` which states that the product of two positive extended real numbers is positive. - [x] Add the theorem `add_top_iff_ne_bot` which states that for any extended real number `x`, the sum of `x` and `⊤` is equal to `⊤` if and only if `x` is not `⊥`. - [x] Add the theorem `top_add_iff_ne_bot` which states that for any extended real number `x`, the sum of `⊤` and `x` is equal to `⊤` if and only if `x` is not `⊥`. -- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) ESTIMATED CHANGES Modified Mathlib/Data/Real/EReal.lean + theorem EReal.add_pos + theorem EReal.add_top_iff_ne_bot + theorem EReal.add_top_of_ne_bot + theorem EReal.mul_pos + theorem EReal.top_add_iff_ne_bot + theorem EReal.top_add_of_ne_bot 2024-06-25 13:18:31 0512c53 chore(Algebra/Order/Rearrangement): Cleanup (#13949) Remove unnecessary brackets and indentation, fix a few lemma names (the `_comp` were misplaced). ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Rearrangement.lean + theorem Antivary.sum_comp_perm_mul_eq_sum_mul_iff + theorem Antivary.sum_comp_perm_smul_eq_sum_smul_iff - theorem Antivary.sum_mul_eq_sum_comp_perm_mul_iff + theorem Antivary.sum_smul_comp_perm_eq_sum_smul_iff - theorem Antivary.sum_smul_eq_sum_comp_perm_smul_iff - theorem Antivary.sum_smul_eq_sum_smul_comp_perm_iff + theorem AntivaryOn.sum_comp_perm_mul_eq_sum_mul_iff + theorem AntivaryOn.sum_comp_perm_smul_eq_sum_smul_iff - theorem AntivaryOn.sum_mul_eq_sum_comp_perm_mul_iff + theorem AntivaryOn.sum_smul_comp_perm_eq_sum_smul_iff - theorem AntivaryOn.sum_smul_eq_sum_comp_perm_smul_iff - theorem AntivaryOn.sum_smul_eq_sum_smul_comp_perm_iff 2024-06-25 12:23:32 9a2e9d3 refactor: Improve lemmas about sets of intermediate size (#14062) The lemmas around here are a mess. Rename `Finset.exists_smaller_set` to `Finset.exists_subset_card_eq`, `Finset.exists_intermediate_set` to `Finset.exists_subsuperset_card_eq`, and add the missing third `Finset.exists_superset_card_eq`. Same for `Set`. ESTIMATED CHANGES Modified Mathlib/Combinatorics/Additive/AP/Three/Defs.lean Modified Mathlib/Combinatorics/SetFamily/Shadow.lean Modified Mathlib/Combinatorics/SimpleGraph/Clique.lean Modified Mathlib/Combinatorics/SimpleGraph/Regularity/Equitabilise.lean Modified Mathlib/Combinatorics/SimpleGraph/Turan.lean Modified Mathlib/Data/Finset/Card.lean + theorem Finset.exists_subset_card_eq + theorem Finset.exists_subsuperset_card_eq Modified Mathlib/Data/Finset/Powerset.lean Modified Mathlib/Data/Fintype/Card.lean + theorem Finset.exists_superset_card_eq Modified Mathlib/Data/Set/Card.lean + theorem Set.exists_subset_card_eq + theorem Set.exists_subsuperset_card_eq +/- theorem Set.ncard_coe_Finset 2024-06-25 11:38:59 cd7c517 chore(MeasureTheory): replace continuity -> fun_prop (#14008) ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Function/Jacobian.lean Modified Mathlib/MeasureTheory/Integral/CircleIntegral.lean Modified Mathlib/MeasureTheory/Integral/PeakFunction.lean Modified Mathlib/MeasureTheory/Integral/TorusIntegral.lean Modified Mathlib/Topology/Algebra/Monoid.lean 2024-06-25 11:38:58 aa7dfcd doc: recommend `lake exe mk_all` in the README (#13656) Instead of the `find` incantation. ESTIMATED CHANGES Modified README.md 2024-06-25 10:40:22 1d8ad31 fix: add `-lLake` argument to `pole` and `mk_all` (#13850) Since Lean 4.9, the behaviour of `supportInterpreter` executables has changed, making this necessary: both of these executables require modules from `lake`. In contrast, `shake` also uses `supportInterpreter`, but does not depend on `lake`. [zulip discussion](https://leanprover.zulipchat.com/#narrow/stream/113488-general/topic/automatically.20generate.20ProjectName.2Elean/near/444239597) ESTIMATED CHANGES Modified lakefile.lean 2024-06-25 09:57:09 81a6a26 chore(HomotopyCategory/Pretriangulated): remove 'says' that cause timeouts (#14083) ESTIMATED CHANGES Modified Mathlib/Algebra/Homology/HomotopyCategory/Pretriangulated.lean 2024-06-25 09:57:08 bf26137 Feat (NumberTheory/Ostrowski): Proof of the non-archimedean case of Ostrowski's Theorem (#14026) In this PR we prove that a non-archimedean non-trivial absolute value on the rational is equivalent to a padic one. Main result ```lean theorem mulRingNorm_equiv_padic_of_bounded : ∃! p, ∃ (hp : Fact (Nat.Prime p)), MulRingNorm.equiv f (mulRingNorm_padic p) ``` David Kurniadi Angdinata [dka31@cantab.ac.uk](mailto:dka31@cantab.ac.uk) Laura Capuano [laura.capuano@uniroma3.it](mailto:laura.capuano@uniroma3.it) Nirvana Coppola [nirvanac93@gmail.com](mailto:nirvanac93@gmail.com) María Inés de Frutos Fernández [maria.defrutos@uam.es](mailto:maria.defrutos@uam.es) Sam van Gool [vangool@irif.fr](mailto:vangool@irif.fr) Silvain Rideau-Kikuchi [silvain.rideau-kikuchi@ens.fr](mailto:silvain.rideau-kikuchi@ens.fr) Amos Turchet [amos.turchet@uniroma3.it](mailto:amos.turchet@uniroma3.it) Francesco Veneziano [veneziano@dima.unige.it](mailto:veneziano@dima.unige.it) ESTIMATED CHANGES Modified Mathlib/NumberTheory/Ostrowski.lean - theorem Rat.MulRingNorm.eq_on_Nat_iff_eq - theorem Rat.MulRingNorm.eq_on_Nat_iff_eq_on_Int + theorem Rat.MulRingNorm.eq_on_nat_iff_eq + theorem Rat.MulRingNorm.eq_on_nat_iff_eq_on_Int - theorem Rat.MulRingNorm.equiv_on_Nat_iff_equiv + theorem Rat.MulRingNorm.equiv_on_nat_iff_equiv + theorem Rat.MulRingNorm.exists_minimal_nat_zero_lt_mulRingNorm_lt_one + theorem Rat.MulRingNorm.exists_pos_mulRingNorm_eq_pow_neg + theorem Rat.MulRingNorm.is_prime_of_minimal_nat_zero_lt_mulRingNorm_lt_one + theorem Rat.MulRingNorm.mulRingNorm_eq_one_of_not_dvd + theorem Rat.MulRingNorm.mulRingNorm_eq_padic_norm + theorem Rat.MulRingNorm.mulRingNorm_equiv_padic_of_bounded + def Rat.MulRingNorm.mulRingNorm_padic 2024-06-25 09:57:07 5bdfd1a feat(Mathlib.NumberTheory.Cyclotomic.Three): add various results (#13798) We add various results about the third cyclotomic field needed to prove flt3. From the flt3 project at LFTCM2024. ESTIMATED CHANGES Modified Mathlib/Algebra/CharP/CharAndCard.lean + theorem charP_of_card_eq_prime Modified Mathlib/Data/ZMod/Basic.lean + theorem ZMod.ringEquivOfPrime_eq_ringEquiv Modified Mathlib/NumberTheory/Cyclotomic/Rat.lean + theorem IsPrimitiveRoot.card_quotient_toInteger_sub_one + theorem IsPrimitiveRoot.coe_toInteger + theorem IsPrimitiveRoot.finite_quotient_toInteger_sub_one Modified Mathlib/NumberTheory/Cyclotomic/Three.lean + theorem IsCyclotomicExtension.Rat.Three.coe_eta + theorem IsCyclotomicExtension.Rat.Three.cube_sub_one_eq_mul + theorem IsCyclotomicExtension.Rat.Three.eta_sq_add_eta_add_one + theorem IsCyclotomicExtension.Rat.Three.lambda_dvd_mul_sub_one_mul_sub_eta_add_one + theorem IsCyclotomicExtension.Rat.Three.lambda_dvd_or_dvd_sub_one_or_dvd_add_one + theorem IsCyclotomicExtension.Rat.Three.lambda_pow_four_dvd_cube_add_one_of_dvd_add_one + theorem IsCyclotomicExtension.Rat.Three.lambda_pow_four_dvd_cube_sub_one_of_dvd_sub_one + theorem IsCyclotomicExtension.Rat.Three.lambda_pow_four_dvd_cube_sub_one_or_add_one_of_lambda_not_dvd Modified Mathlib/NumberTheory/FLT/Three.lean Modified Mathlib/RingTheory/Fintype.lean + theorem Finset.univ_of_card_le_three + theorem Finset.univ_of_card_le_two 2024-06-25 09:01:22 5324fdb chore: downgrade ProofWidgets to v0.0.36 (#14113) Unfortunately we are finding people with build failures because the cloud release of ProofWidgets v0.0.37 is not being found, and a local build (which needs `npm`, which may not be present) is started. See [zulip discussion](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/Proof.20widget.20cloud.20release). ESTIMATED CHANGES Modified lake-manifest.json Modified lakefile.lean 2024-06-25 09:01:21 0ba8580 feat(Algebra/Module/LocalizedModule): Prove that localization is exact (#13790) Given localizations f₀ : M₀ → M₀', f₁ : M₁ → M₁', and f₂ : M₂ → M₂', and an exact sequence consisting of g : M₀ → M₁ and h : M₁ → M₂, prove that (map S f₀ f₁ g) : M₀' → M₁' and (map S f₁ f₂ h) : M₁' → M₂' form an exact sequence. Also fix a typo in the documentation of IsLocalizedModule.lift. ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Units.lean + theorem IsUnit.unit_one Modified Mathlib/Algebra/Module/LocalizedModule.lean + theorem IsLocalizedModule.iso_localizedModule_eq_refl + theorem IsLocalizedModule.map_LocalizedModules + theorem IsLocalizedModule.map_exact + theorem IsLocalizedModule.map_iso_commute + theorem LocalizedModule.map_exact 2024-06-25 09:01:20 9389b29 feat(AlgebraicGeometry/EllipticCurve/DivisionPolynomial/Basic): add maps for division polynomials (#13399) ESTIMATED CHANGES Modified Mathlib/AlgebraicGeometry/EllipticCurve/DivisionPolynomial/Basic.lean + theorem WeierstrassCurve.Affine.CoordinateRing.mk_Ψ_sq + theorem WeierstrassCurve.Affine.CoordinateRing.mk_φ + theorem WeierstrassCurve.Affine.CoordinateRing.mk_ψ + theorem WeierstrassCurve.Affine.CoordinateRing.mk_ψ₂_sq + theorem WeierstrassCurve.C_Ψ₂Sq - theorem WeierstrassCurve.C_Ψ₂Sq_eq + theorem WeierstrassCurve.baseChange_preΨ' + theorem WeierstrassCurve.baseChange_preΨ + theorem WeierstrassCurve.baseChange_preΨ₄ + theorem WeierstrassCurve.baseChange_Φ + theorem WeierstrassCurve.baseChange_Ψ + theorem WeierstrassCurve.baseChange_ΨSq + theorem WeierstrassCurve.baseChange_Ψ₂Sq + theorem WeierstrassCurve.baseChange_Ψ₃ + theorem WeierstrassCurve.baseChange_φ + theorem WeierstrassCurve.baseChange_ψ + theorem WeierstrassCurve.baseChange_ψ₂ + theorem WeierstrassCurve.map_preΨ' + theorem WeierstrassCurve.map_preΨ + theorem WeierstrassCurve.map_preΨ₄ + theorem WeierstrassCurve.map_Φ + theorem WeierstrassCurve.map_Ψ + theorem WeierstrassCurve.map_ΨSq + theorem WeierstrassCurve.map_Ψ₂Sq + theorem WeierstrassCurve.map_Ψ₃ + theorem WeierstrassCurve.map_φ + theorem WeierstrassCurve.map_ψ + theorem WeierstrassCurve.map_ψ₂ + theorem WeierstrassCurve.ψ₂_sq Modified Mathlib/NumberTheory/EllipticDivisibilitySequence.lean + theorem map_normEDS + theorem map_preNormEDS' + theorem map_preNormEDS 2024-06-25 08:50:53 397d878 chore(README): updates (#14112) ESTIMATED CHANGES Modified README.md 2024-06-25 08:50:52 a8bd217 chore(README): fix advice about updating dependencies (#14109) ESTIMATED CHANGES Modified README.md 2024-06-25 08:08:50 4002180 docs(Algebra/Order/Module/Defs): more implications (#13931) The following six implications are added to the documentation: ``` PosSMulReflectLT.toPosSMulMono.{u_2, u_1} {α : Type u_1} {β : Type u_2} [SMul α β] [Preorder α] [LinearOrder β] [Zero α] [PosSMulReflectLT α β] : PosSMulMono α β SMulPosReflectLT.toSMulPosMono.{u_2, u_1} {α : Type u_1} {β : Type u_2} [SMul α β] [Preorder α] [LinearOrder β] [Zero β] [SMulPosReflectLT α β] : SMulPosMono α β PosSMulReflectLE.toPosSMulStrictMono.{u_2, u_1} {α : Type u_1} {β : Type u_2} [SMul α β] [Preorder α] [LinearOrder β] [Zero α] [PosSMulReflectLE α β] : PosSMulStrictMono α β SMulPosReflectLE.toSMulPosStrictMono.{u_2, u_1} {α : Type u_1} {β : Type u_2} [SMul α β] [Preorder α] [LinearOrder β] [Zero β] [SMulPosReflectLE α β] : SMulPosStrictMono α β PosSMulMono.toPosSMulStrictMono.{u_2, u_1} {α : Type u_1} {β : Type u_2} [Semiring α] [AddCommGroup β] [Module α β] [NoZeroSMulDivisors α β] [Preorder α] [PartialOrder β] [PosSMulMono α β] : PosSMulStrictMono α β SMulPosMono.toSMulPosStrictMono.{u_2, u_1} {α : Type u_1} {β : Type u_2} [Ring α] [AddCommGroup β] [Module α β] [NoZeroSMulDivisors α β] [PartialOrder α] [PartialOrder β] [SMulPosMono α β] : SMulPosStrictMono α β ``` ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Module/Defs.lean 2024-06-25 06:59:03 dc8cf8b chore(README): update maintainers (#14111) ESTIMATED CHANGES Modified README.md 2024-06-25 06:39:00 c9d0d58 feat(CategoryTheory): constructor for right derivability structures (#12676) In this file, we provide a constructor for right derivability structures. Assume that `W₁` and `W₂` are classes of morphisms in categories `C₁` and `C₂`, and that we have a localizer morphism `Φ : LocalizerMorphism W₁ W₂` that is a localized equivalence, i.e. `Φ.functor` induces an equivalence of categories between the localized categories. Assume moreover that `W₁` is multiplicative and `W₂` contains identities. Then, `Φ` is a right derivability structure (`LocalizerMorphism.IsRightDerivabilityStructure.mk'`) if it satisfies the two following conditions: * for any `X₂ : C₂`, the category `Φ.RightResolution X₂` of resolutions of `X₂` is connected * any arrow in `C₂` admits a resolution (i.e. `Φ.arrow.HasRightResolutions` holds, where `Φ.arrow` is the induced localizer morphism on categories of arrows in `C₁` and `C₂`) This is essentially Lemme 6.5 in *Structures de dérivabilité, Adv. Math. 218 (4), pp. 1286-1318 (2008)* by Bruno Kahn and Georges Maltsiniotis. The "injective", "projective" and "flat" derivability structures on categories of cochain complexes shall be obtained using this constructor. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/CategoryTheory/Comma/StructuredArrow.lean + theorem CategoryTheory.CostructuredArrow.homMk_surjective + theorem CategoryTheory.CostructuredArrow.mk_surjective + theorem CategoryTheory.StructuredArrow.homMk_surjective + theorem CategoryTheory.StructuredArrow.mk_surjective Modified Mathlib/CategoryTheory/GuitartExact/Basic.lean + theorem CategoryTheory.TwoSquare.CostructuredArrowDownwards.mk_surjective + theorem CategoryTheory.TwoSquare.StructuredArrowRightwards.mk_surjective + def CategoryTheory.TwoSquare.costructuredArrowDownwardsPrecomp Modified Mathlib/CategoryTheory/Localization/DerivabilityStructure/Basic.lean Added Mathlib/CategoryTheory/Localization/DerivabilityStructure/Constructor.lean + theorem CategoryTheory.LocalizerMorphism.IsRightDerivabilityStructure.Constructor.isConnected + theorem CategoryTheory.LocalizerMorphism.IsRightDerivabilityStructure.mk' Modified Mathlib/CategoryTheory/Localization/HomEquiv.lean Modified Mathlib/CategoryTheory/Localization/LocalizerMorphism.lean + def CategoryTheory.LocalizerMorphism.arrow Modified Mathlib/CategoryTheory/Localization/Predicate.lean + theorem CategoryTheory.Localization.isoOfHom_hom_inv_id + theorem CategoryTheory.Localization.isoOfHom_id_inv + theorem CategoryTheory.Localization.isoOfHom_inv_hom_id Modified Mathlib/CategoryTheory/MorphismProperty/Basic.lean + def CategoryTheory.MorphismProperty.arrow 2024-06-25 06:18:04 7bdafea feat(Algebra/Homology) the single complex functor preserves (co)limits (#13875) In this PR, it is shown that the single functors `C ⥤ HomologicalComplex C c` preserves limits and colimits. ESTIMATED CHANGES Modified Mathlib/Algebra/Homology/HomologicalComplexLimits.lean Modified Mathlib/Algebra/Homology/Single.lean + theorem HomologicalComplex.isZero_single_comp_eval Modified Mathlib/CategoryTheory/Limits/Preserves/Shapes/Zero.lean + def CategoryTheory.Functor.preservesColimitsOfShapeOfIsZero + def CategoryTheory.Functor.preservesColimitsOfSizeOfIsZero + def CategoryTheory.Functor.preservesLimitsOfShapeOfIsZero + def CategoryTheory.Functor.preservesLimitsOfSizeOfIsZero Modified Mathlib/CategoryTheory/Limits/Shapes/ZeroMorphisms.lean + theorem CategoryTheory.Limits.IsColimit.isZero_pt + def CategoryTheory.Limits.IsColimit.ofIsZero + theorem CategoryTheory.Limits.IsLimit.isZero_pt + def CategoryTheory.Limits.IsLimit.ofIsZero 2024-06-25 05:48:57 b0f8ad0 refactor(AlgebraicGeometry): Use `Scheme.Hom.app` as simp normal form (#14031) ESTIMATED CHANGES Modified Mathlib/AlgebraicGeometry/AffineScheme.lean + theorem AlgebraicGeometry.IsAffineOpen.ιOpens_basicOpen_preimage - theorem AlgebraicGeometry.IsAffineOpen.ιOpens_preimage +/- def AlgebraicGeometry.Scheme.isoSpec +/- theorem AlgebraicGeometry.of_affine_open_cover Modified Mathlib/AlgebraicGeometry/Cover/Open.lean +/- def AlgebraicGeometry.Scheme.affineBasisCoverOfAffine Modified Mathlib/AlgebraicGeometry/FunctionField.lean +/- theorem AlgebraicGeometry.IsAffineOpen.primeIdealOf_genericPoint +/- theorem AlgebraicGeometry.Scheme.germToFunctionField_injective +/- theorem AlgebraicGeometry.functionField_isFractionRing_of_isAffineOpen +/- theorem AlgebraicGeometry.germ_injective_of_isIntegral Modified Mathlib/AlgebraicGeometry/GammaSpecAdjunction.lean +/- def AlgebraicGeometry.Spec.homEquiv + theorem AlgebraicGeometry.Spec.map_inj + theorem AlgebraicGeometry.Spec.map_injective + theorem AlgebraicGeometry.Spec.map_preimage + theorem AlgebraicGeometry.Spec.preimage_map - theorem AlgebraicGeometry.SpecMap_inj - theorem AlgebraicGeometry.SpecMap_injective - theorem AlgebraicGeometry.SpecMap_preimage - theorem AlgebraicGeometry.SpecΓIdentity_hom_app_presheaf_obj - theorem AlgebraicGeometry.SpecΓIdentity_naturality - theorem AlgebraicGeometry.preimage_specMap + theorem AlgebraicGeometry.ΓSpec.SpecMap_ΓSpecIso_hom - theorem AlgebraicGeometry.ΓSpec.adjunction_unit_app_Spec + theorem AlgebraicGeometry.ΓSpecIso_obj_hom Modified Mathlib/AlgebraicGeometry/Gluing.lean Modified Mathlib/AlgebraicGeometry/Limits.lean +/- theorem AlgebraicGeometry.isAffineOpen_bot Modified Mathlib/AlgebraicGeometry/Morphisms/Basic.lean - theorem AlgebraicGeometry.IsAffineOpen.map_isIso + theorem AlgebraicGeometry.IsAffineOpen.preimage_of_isIso - theorem AlgebraicGeometry.targetAffineLocallyOfOpenCover + theorem AlgebraicGeometry.targetAffineLocally_of_openCover Modified Mathlib/AlgebraicGeometry/Morphisms/ClosedImmersion.lean Modified Mathlib/AlgebraicGeometry/Morphisms/FiniteType.lean - theorem AlgebraicGeometry.locallyOfFiniteTypeOfComp + theorem AlgebraicGeometry.locallyOfFiniteType_of_comp Modified Mathlib/AlgebraicGeometry/Morphisms/OpenImmersion.lean Modified Mathlib/AlgebraicGeometry/Morphisms/QuasiCompact.lean +/- theorem AlgebraicGeometry.compact_open_induction_on + theorem AlgebraicGeometry.isCompactOpen_iff_eq_basicOpen_union + theorem AlgebraicGeometry.isCompactOpen_iff_eq_finset_affine_union +/- theorem AlgebraicGeometry.isCompact_basicOpen - theorem AlgebraicGeometry.isCompact_open_iff_eq_basicOpen_union - theorem AlgebraicGeometry.isCompact_open_iff_eq_finset_affine_union Modified Mathlib/AlgebraicGeometry/Morphisms/QuasiSeparated.lean +/- theorem AlgebraicGeometry.IsAffineOpen.isQuasiSeparated +/- theorem AlgebraicGeometry.exists_eq_pow_mul_of_isAffineOpen +/- theorem AlgebraicGeometry.exists_eq_pow_mul_of_isCompact_of_isQuasiSeparated +/- theorem AlgebraicGeometry.is_localization_basicOpen_of_qcqs Modified Mathlib/AlgebraicGeometry/Morphisms/RingHomProperties.lean Modified Mathlib/AlgebraicGeometry/OpenImmersion.lean + theorem AlgebraicGeometry.IsOpenImmersion.app_eq_invApp_app_of_comp_eq_aux - theorem AlgebraicGeometry.IsOpenImmersion.app_eq_inv_app_app_of_comp_eq_aux +/- def AlgebraicGeometry.Scheme.Hom.opensRange +/- theorem AlgebraicGeometry.Scheme.restrict_toPresheafedSpace Modified Mathlib/AlgebraicGeometry/Properties.lean +/- theorem AlgebraicGeometry.basicOpen_eq_bot_iff +/- theorem AlgebraicGeometry.isIntegral_of_irreducibleSpace_of_isReduced +/- theorem AlgebraicGeometry.isIntegral_of_isAffine_of_isDomain +/- theorem AlgebraicGeometry.isReduced_of_isAffine_isReduced +/- theorem AlgebraicGeometry.reduce_to_affine_nbhd Modified Mathlib/AlgebraicGeometry/Pullbacks.lean Modified Mathlib/AlgebraicGeometry/Restrict.lean + theorem AlgebraicGeometry.Scheme.ofRestrict_app_self - theorem AlgebraicGeometry.Scheme.ofRestrict_val_c_app_self + theorem AlgebraicGeometry.morphismRestrict_app - theorem AlgebraicGeometry.morphismRestrict_c_app Modified Mathlib/AlgebraicGeometry/Scheme.lean - def AlgebraicGeometry.Scheme.Spec +/- theorem AlgebraicGeometry.Scheme.SpecΓIdentity_app +/- theorem AlgebraicGeometry.Scheme.SpecΓIdentity_hom_app +/- theorem AlgebraicGeometry.Scheme.SpecΓIdentity_inv_app + theorem AlgebraicGeometry.Scheme.comp_app - theorem AlgebraicGeometry.Scheme.comp_val_c_app +/- theorem AlgebraicGeometry.Scheme.id_app + theorem AlgebraicGeometry.Scheme.inv_app + theorem AlgebraicGeometry.Scheme.inv_app_top - theorem AlgebraicGeometry.Scheme.inv_val_c_app - theorem AlgebraicGeometry.Scheme.inv_val_c_app_top +/- def AlgebraicGeometry.Scheme.ΓSpecIso +/- theorem AlgebraicGeometry.Scheme.Γ_map +/- theorem AlgebraicGeometry.Scheme.Γ_map_op +/- theorem AlgebraicGeometry.Scheme.Γ_obj + def AlgebraicGeometry.Spec.map + theorem AlgebraicGeometry.Spec.map_app + theorem AlgebraicGeometry.Spec.map_appLE + theorem AlgebraicGeometry.Spec.map_base + theorem AlgebraicGeometry.Spec.map_comp + theorem AlgebraicGeometry.Spec.map_eqToHom + theorem AlgebraicGeometry.Spec.map_id + theorem AlgebraicGeometry.Spec.map_inv + def AlgebraicGeometry.Spec - theorem AlgebraicGeometry.SpecMap_app - theorem AlgebraicGeometry.SpecMap_appLE - theorem AlgebraicGeometry.SpecMap_comp - theorem AlgebraicGeometry.SpecMap_eqToHom - theorem AlgebraicGeometry.SpecMap_id - theorem AlgebraicGeometry.SpecMap_inv + theorem AlgebraicGeometry.Spec_carrier - theorem AlgebraicGeometry.Spec_map_base - theorem AlgebraicGeometry.Spec_obj_carrier - theorem AlgebraicGeometry.Spec_obj_presheaf - theorem AlgebraicGeometry.Spec_obj_sheaf + theorem AlgebraicGeometry.Spec_presheaf + theorem AlgebraicGeometry.Spec_sheaf +/- theorem AlgebraicGeometry.basicOpen_eq_of_affine' - def AlgebraicGeometry.specMap - def AlgebraicGeometry.specObj Modified Mathlib/AlgebraicGeometry/Sites/BigZariski.lean 2024-06-25 01:47:22 55f6240 feat: rewrite line length style linter in Lean (#14093) And finish moving the broad imports linter to Lean: I forgot to remove the Python code and actually run the Lean code, oops. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Abelian/FunctorCategory.lean Modified Mathlib/CategoryTheory/Limits/Types.lean Modified Mathlib/Tactic/Linter/TextBased.lean + def checkFileLength Modified scripts/lint-style.py 2024-06-25 01:47:21 214438f feat(AlgebraicGeometry) Add more API (#14052) ESTIMATED CHANGES Modified Mathlib/AlgebraicGeometry/AffineScheme.lean + theorem AlgebraicGeometry.IsAffineOpen.appLE_eq_away_map + def AlgebraicGeometry.IsOpenImmersion.affineOpensEquiv + def AlgebraicGeometry.affineOpensRestrict + theorem AlgebraicGeometry.affineOpensRestrict_symm_apply_coe Modified Mathlib/AlgebraicGeometry/GammaSpecAdjunction.lean + def AlgebraicGeometry.Spec.homEquiv + def AlgebraicGeometry.Spec.preimage + theorem AlgebraicGeometry.SpecMap_inj + theorem AlgebraicGeometry.SpecMap_injective + theorem AlgebraicGeometry.SpecMap_preimage + theorem AlgebraicGeometry.preimage_specMap +/- def AlgebraicGeometry.ΓSpec.adjunction + theorem AlgebraicGeometry.ΓSpec.adjunction_unit_naturality Modified Mathlib/AlgebraicGeometry/Morphisms/ClosedImmersion.lean Modified Mathlib/AlgebraicGeometry/Morphisms/FiniteType.lean Modified Mathlib/AlgebraicGeometry/Morphisms/RingHomProperties.lean Modified Mathlib/AlgebraicGeometry/OpenImmersion.lean + def AlgebraicGeometry.IsOpenImmersion.opensEquiv + theorem AlgebraicGeometry.IsOpenImmersion.opensRange_pullback_fst_of_right + theorem AlgebraicGeometry.IsOpenImmersion.opensRange_pullback_snd_of_left + theorem AlgebraicGeometry.Scheme.Hom.app_invApp' + theorem AlgebraicGeometry.Scheme.Hom.app_invApp +/- def AlgebraicGeometry.Scheme.Hom.invApp + theorem AlgebraicGeometry.Scheme.Hom.invApp_app + theorem AlgebraicGeometry.Scheme.Hom.invApp_naturality + theorem AlgebraicGeometry.Scheme.Hom.inv_invApp + theorem AlgebraicGeometry.Scheme.Hom.openEmbedding +/- def AlgebraicGeometry.Scheme.Hom.opensRange +/- def AlgebraicGeometry.Scheme.ofRestrict + theorem AlgebraicGeometry.Scheme.ofRestrict_app + theorem AlgebraicGeometry.Scheme.ofRestrict_appLE +/- def AlgebraicGeometry.Scheme.restrict + theorem AlgebraicGeometry.Scheme.restrict_presheaf_map Modified Mathlib/AlgebraicGeometry/Pullbacks.lean Modified Mathlib/AlgebraicGeometry/Restrict.lean + theorem AlgebraicGeometry.morphismRestrict_app' + theorem AlgebraicGeometry.morphismRestrict_appLE + theorem AlgebraicGeometry.opensRange_ιOpens + def AlgebraicGeometry.opensRestrict Modified Mathlib/AlgebraicGeometry/Scheme.lean + def AlgebraicGeometry.Scheme.Hom.appLE + theorem AlgebraicGeometry.Scheme.Hom.appLE_congr + theorem AlgebraicGeometry.Scheme.Hom.appLE_map' + theorem AlgebraicGeometry.Scheme.Hom.appLE_map + theorem AlgebraicGeometry.Scheme.Hom.app_eq_appLE + theorem AlgebraicGeometry.Scheme.Hom.map_appLE' + theorem AlgebraicGeometry.Scheme.Hom.map_appLE + theorem AlgebraicGeometry.Scheme.Hom.naturality +/- def AlgebraicGeometry.Scheme.Spec - theorem AlgebraicGeometry.Scheme.Spec_map_appLE - theorem AlgebraicGeometry.Scheme.Spec_map_base - theorem AlgebraicGeometry.Scheme.Spec_map_c_app - theorem AlgebraicGeometry.Scheme.Spec_obj_carrier - theorem AlgebraicGeometry.Scheme.Spec_obj_presheaf - theorem AlgebraicGeometry.Scheme.Spec_obj_sheaf + theorem AlgebraicGeometry.Scheme.SpecΓIdentity_app + theorem AlgebraicGeometry.Scheme.SpecΓIdentity_hom_app + theorem AlgebraicGeometry.Scheme.SpecΓIdentity_inv_app + theorem AlgebraicGeometry.Scheme.appLE_comp_appLE + theorem AlgebraicGeometry.Scheme.comp_appLE - def AlgebraicGeometry.Scheme.specMap - theorem AlgebraicGeometry.Scheme.specMap_comp - theorem AlgebraicGeometry.Scheme.specMap_id - def AlgebraicGeometry.Scheme.specObj - theorem AlgebraicGeometry.Scheme.specObj_toLocallyRingedSpace + theorem AlgebraicGeometry.Scheme.toOpen_eq + def AlgebraicGeometry.Scheme.ΓSpecIso + theorem AlgebraicGeometry.Scheme.ΓSpecIso_inv + theorem AlgebraicGeometry.Scheme.ΓSpecIso_inv_naturality + theorem AlgebraicGeometry.Scheme.ΓSpecIso_naturality + theorem AlgebraicGeometry.SpecMap_app + theorem AlgebraicGeometry.SpecMap_appLE + theorem AlgebraicGeometry.SpecMap_comp + theorem AlgebraicGeometry.SpecMap_eqToHom + theorem AlgebraicGeometry.SpecMap_id + theorem AlgebraicGeometry.SpecMap_inv + theorem AlgebraicGeometry.Spec_map_base + theorem AlgebraicGeometry.Spec_obj_carrier + theorem AlgebraicGeometry.Spec_obj_presheaf + theorem AlgebraicGeometry.Spec_obj_sheaf + theorem AlgebraicGeometry.Spec_toLocallyRingedSpace + def AlgebraicGeometry.specMap + def AlgebraicGeometry.specObj 2024-06-25 00:47:52 68c0387 chore: bump ProofWidgets4 to v0.0.37 (#14092) ESTIMATED CHANGES Modified lake-manifest.json Modified lakefile.lean 2024-06-25 00:00:25 3dce761 feat(RingTheory/MvPolynomial): multivariate polynomials preserve localization (#14055) If `S` is the localization of `R` at a submonoid `M`, then `MvPolynomial σ S` is the localization of `MvPolynomial σ R` at the image of `M` in `MvPolynomial σ R`. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/BigOperators/Finsupp.lean + theorem Finsupp.prod_mul_eq_prod_mul_of_exists Modified Mathlib/Algebra/BigOperators/Group/Finset.lean + theorem Finset.prod_mul_eq_prod_mul_of_exists Modified Mathlib/Algebra/MvPolynomial/Basic.lean +/- theorem MvPolynomial.algHom_C Modified Mathlib/Algebra/MvPolynomial/Counit.lean Modified Mathlib/RingTheory/Generators.lean Modified Mathlib/RingTheory/MvPolynomial/Basic.lean + theorem MvPolynomial.algebraMap_def Added Mathlib/RingTheory/MvPolynomial/Localization.lean + theorem MvPolynomial.isLocalization_C_mk' Modified Mathlib/RingTheory/WittVector/WittPolynomial.lean 2024-06-24 22:58:58 9b48e04 feat(Logic): Add `iff_assoc`, `iff_left_comm` and `iff_right_comm` theorems (#14101) This was in #13200, but I'm moving it to a separate pull request to keep that pull request small ESTIMATED CHANGES Modified Mathlib/Logic/Lemmas.lean + theorem iff_assoc + theorem iff_left_comm + theorem iff_right_comm 2024-06-24 22:58:57 56181aa feat(Algebra/Group/TypeTags): Add `toMul_eq_one` and `toAdd_eq_zero` (#14097) ESTIMATED CHANGES Modified Mathlib/Algebra/Group/TypeTags.lean + theorem toAdd_eq_zero + theorem toMul_eq_one 2024-06-24 22:33:28 0cc920e chore: remove `set_option in` (#14103) Two unnecessary `set_option ... in` flagged by the linter. ESTIMATED CHANGES Modified Mathlib/Analysis/Complex/UpperHalfPlane/Basic.lean Modified Mathlib/Topology/Connected/PathConnected.lean 2024-06-24 22:22:50 97a63f4 feat: `G.deleteEdges s = G ↔ Disjoint G.edgeSet s` (#13829) From LeanCamCombi ESTIMATED CHANGES Modified Mathlib/Combinatorics/SimpleGraph/Basic.lean + theorem SimpleGraph.deleteEdges_eq_self 2024-06-24 22:12:22 a80ef49 feat(AlgebraicGeometry/ProjectiveSpectrum/Scheme): finish the `Proj` construction (#12371) This PR finishes the `Proj` construction for any ring graded by natural numbers: If $A$ is an $R$ algebra with 𝒜 as its grading i.e. 𝒜 i is an $R$-submodule of $A$ , then `AlgebraicGeometry.Proj 𝒜` is the scheme whose underlying topological space is the collection of homogeneous relevant prime ideals with the Zariski topology; whose sheaf of rings is the collection of functions that are locally homogeneous fractions. We prove that for each `f : A` with positive degree, `Proj | D(f)` (`Proj` as locally ringed space restricted to the basic open set around `f`) is isomorphic to `Spec A^0_f` (prime spectrum of the homogeneous localization of `A` at `f`). The isomorphism is constructed as the following: by the Gamma-Spec adjunction, it is sufficient to construct a ring map `A⁰_f → Γ(Proj, pbo f)` from the ring of homogeneous localization of `A` away from `f` to the local sections of structure sheaf of projective spectrum on the basic open set around `f`. The map `A⁰_f → Γ(Proj, pbo f)` is defined by sending `s ∈ A⁰_f` to the section `x ↦ s` on `pbo f`. Then we show that the map `Proj | D(f) -> Spec A⁰_f` induces an isomorphism on stalk level, thus is an isomorphism. ESTIMATED CHANGES Modified Mathlib/AlgebraicGeometry/ProjectiveSpectrum/Scheme.lean + theorem AlgebraicGeometry.ProjectiveSpectrum.Proj.isIso_toSpec + def AlgebraicGeometry.ProjectiveSpectrum.Proj.specStalkEquiv + theorem AlgebraicGeometry.ProjectiveSpectrum.Proj.stalkMap_toSpec + theorem AlgebraicGeometry.ProjectiveSpectrum.Proj.toSpec_base_isIso + theorem AlgebraicGeometry.ProjectiveSpectrum.Proj.toStalk_specStalkEquiv + def AlgebraicGeometry.projIsoSpec + def AlgebraicGeometry.«Proj» 2024-06-24 21:15:34 7eb6e30 chore: update style exceptions (#14094) This includes a re-ordering, due to rewriting the 'file length' check in Lean. All of this is automatically generated, so a one-time effect only. ESTIMATED CHANGES Modified scripts/style-exceptions.txt 2024-06-24 21:15:33 04fc89b refactor(Algebra/Star/StarAlgHom): `mk_coe` and `coe_mk` in StarAlgHom (#13267) Add `mk_coe` and `coe_mk` results to `Algebra/Star/StarAlgHom` in analogy with `RingEquiv`. ESTIMATED CHANGES Modified Mathlib/Algebra/Star/StarAlgHom.lean + theorem StarAlgEquiv.coe_mk - theorem StarAlgEquiv.mk_coe' + theorem StarAlgEquiv.mk_coe 2024-06-24 21:15:31 21c5e4e feat: lint against stream-of-conciousness obtain syntax (#13220) Just the syntax replacements are split into #13219. Most of its occurrences were removed in #11045 and #12850; #13219 removed the last instances. **Why is this removed?** In a nutshell, my understanding is that this is preferred against for similar reasons as #10534: - it's a Lean3-ism, which can be unlearned now - the syntax `obtain foo : type := proof` is slightly shorter; particularly so when the next tactic is `exact` - when using it as `obtain foo : type; · proof`, there is an intermediate state with multiple goals right before the focusing dot (This gets amplified with the in-flight "multiple goal linter", which in my perception seems generally desired - for many reasons, including teachability. Granted, the linter could be tweaked to not lint in this case... but by now, the "old" syntax is not clearly better.) - the old syntax *could* be slightly nicer when deferring goals: In the 30 replacements of the last PR, this occurred *twice* (i.e., very rarely). In both cases, `suffices` or `rsuffices` can be used, and would imho be clearer. Alternatively, the `obtain` tactic in Lean core could also be changed: this change does not block this at all, but moves forward with something that is doable within mathlib today. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Dynamics/Circle/RotationNumber/TranslationNumber.lean Modified Mathlib/Tactic.lean Modified Mathlib/Tactic/Basic.lean Added Mathlib/Tactic/Linter/OldObtain.lean + def Mathlib.Linter.Style.getLinterHash + def Mathlib.Linter.Style.is_obtain_without_proof + def Mathlib.Linter.Style.oldObtainLinter Modified scripts/noshake.json Added test/old_obtain.lean + theorem foo'' + theorem foo' + theorem foo 2024-06-24 21:15:30 66bea87 feat(RingTheory/Kaehler): The exact sequence `I/I² → B ⊗[A] Ω[A⁄R] → Ω[B⁄R] → 0` (#13093) ESTIMATED CHANGES Modified Mathlib/RingTheory/Kaehler/Basic.lean + theorem KaehlerDifferential.exact_kerCotangentToTensor_mapBaseChange + def KaehlerDifferential.kerCotangentToTensor + theorem KaehlerDifferential.kerCotangentToTensor_toCotangent + def KaehlerDifferential.kerToTensor + theorem KaehlerDifferential.ker_map_of_surjective + theorem KaehlerDifferential.mapBaseChange_surjective + theorem KaehlerDifferential.range_kerCotangentToTensor + theorem KaehlerDifferential.subsingleton_of_surjective 2024-06-24 20:33:53 8869371 chore: move linear equivalences about submodules to Algebra.Module.Submodule.Equiv (#13684) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Algebra/NonUnitalSubalgebra.lean Modified Mathlib/Algebra/Algebra/Operations.lean Modified Mathlib/Algebra/Algebra/Unitization.lean Modified Mathlib/Algebra/Lie/Basic.lean Added Mathlib/Algebra/Module/Submodule/Equiv.lean + theorem LinearEquiv.coe_ofEq_apply + theorem LinearEquiv.coe_ofTop_symm_apply + theorem LinearEquiv.eq_bot_of_equiv + theorem LinearEquiv.ofBijective_apply + theorem LinearEquiv.ofBijective_symm_apply_apply + def LinearEquiv.ofEq + theorem LinearEquiv.ofEq_rfl + theorem LinearEquiv.ofEq_symm + theorem LinearEquiv.ofInjective_apply + def LinearEquiv.ofLeftInverse + theorem LinearEquiv.ofLeftInverse_apply + theorem LinearEquiv.ofLeftInverse_symm_apply + def LinearEquiv.ofSubmodule' + theorem LinearEquiv.ofSubmodule'_apply + theorem LinearEquiv.ofSubmodule'_symm_apply + theorem LinearEquiv.ofSubmodule'_toLinearMap + def LinearEquiv.ofSubmodules + theorem LinearEquiv.ofSubmodules_apply + theorem LinearEquiv.ofSubmodules_symm_apply + def LinearEquiv.ofTop + theorem LinearEquiv.ofTop_apply + theorem LinearEquiv.ofTop_symm_apply + theorem LinearEquiv.range_comp + def Submodule.equivSubtypeMap + theorem Submodule.equivSubtypeMap_apply + theorem Submodule.equivSubtypeMap_symm_apply Modified Mathlib/Analysis/Convex/Star.lean Modified Mathlib/LinearAlgebra/AffineSpace/AffineEquiv.lean Modified Mathlib/LinearAlgebra/AffineSpace/AffineMap.lean Modified Mathlib/LinearAlgebra/Basic.lean - theorem LinearEquiv.coe_ofEq_apply - theorem LinearEquiv.coe_ofTop_symm_apply - theorem LinearEquiv.eq_bot_of_equiv - theorem LinearEquiv.ofBijective_apply - theorem LinearEquiv.ofBijective_symm_apply_apply - def LinearEquiv.ofEq - theorem LinearEquiv.ofEq_rfl - theorem LinearEquiv.ofEq_symm - theorem LinearEquiv.ofInjective_apply - def LinearEquiv.ofLeftInverse - theorem LinearEquiv.ofLeftInverse_apply - theorem LinearEquiv.ofLeftInverse_symm_apply - def LinearEquiv.ofSubmodule' - theorem LinearEquiv.ofSubmodule'_apply - theorem LinearEquiv.ofSubmodule'_symm_apply - theorem LinearEquiv.ofSubmodule'_toLinearMap - def LinearEquiv.ofSubmodules - theorem LinearEquiv.ofSubmodules_apply - theorem LinearEquiv.ofSubmodules_symm_apply - def LinearEquiv.ofTop - theorem LinearEquiv.ofTop_apply - theorem LinearEquiv.ofTop_symm_apply - theorem LinearEquiv.range_comp - def Submodule.equivSubtypeMap - theorem Submodule.equivSubtypeMap_apply - theorem Submodule.equivSubtypeMap_symm_apply Modified Mathlib/LinearAlgebra/LinearIndependent.lean Modified Mathlib/LinearAlgebra/Matrix/Circulant.lean Modified Mathlib/LinearAlgebra/PiTensorProduct.lean Modified Mathlib/LinearAlgebra/Prod.lean Modified Mathlib/LinearAlgebra/SesquilinearForm.lean Modified Mathlib/LinearAlgebra/Span.lean Modified Mathlib/LinearAlgebra/TensorProduct/Basic.lean Modified Mathlib/LinearAlgebra/TensorProduct/Tower.lean Modified Mathlib/RingTheory/Ideal/Basic.lean Modified scripts/noshake.json 2024-06-24 19:38:38 f584eb9 feat(Data/Prod): add `map_comp_swap` (#14096) This PR adds theorem `Prod. map_comp_swap` stating that for two functions `f` and `g` of type `α → α`, the composition of `Prod.map f g` with `Prod.swap` is equal to the composition of `Prod.swap` with `Prod.map g f`. ESTIMATED CHANGES Modified Mathlib/Data/Prod/Basic.lean + theorem Prod.map_comp_swap 2024-06-24 17:57:16 a3001aa feat(Topology/UniformSpace): add `UniformContinuous.iterate ` (#14066) This PR adds the theorem `UniformContinuous.iterate` claiming that if a function `T` is uniformly continuous in a uniform space `β`, then its `n`-th iterate `T^[n]` is also uniformly continuous. ESTIMATED CHANGES Modified Mathlib/Topology/UniformSpace/Basic.lean + theorem UniformContinuous.iterate 2024-06-24 16:56:05 ba087f3 fix: add space in no_lost_declarations regex (#14080) As [reported](https://github.com/leanprover-community/mathlib4/pull/14048#issuecomment-2185315293) and [requested](https://github.com/leanprover-community/mathlib4/pull/14048#issuecomment-2185933007) by Yael! I think that this change is an improvement, but I would be happier if there was a consensus that the `def`, `theorem`, `structure`,... keywords are followed by a space and not a line break before their identifier. ESTIMATED CHANGES Modified scripts/no_lost_declarations.sh 2024-06-24 16:56:04 aa881f5 feat(Algebra/Order/Ring/WithTop): add generalised and specialised power of top (#14019) - [x] Add generalised version of `top_pow` in `Algebra/Order/Ring/WithTop` - [x] Add specialised version of `top_pow` in `Data/ENat/Basic.lean` - [x] Add specialised version of `top_pow` in `Data/ENNReal/Operations.lean` Co-authored by @D-Thomine. ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Ring/WithTop.lean + theorem WithTop.top_pow Modified Mathlib/Data/ENNReal/Operations.lean +/- theorem ENNReal.top_pow Modified Mathlib/Data/ENat/Basic.lean + theorem ENat.top_pow 2024-06-24 16:56:03 454f409 refactor: Make `CompleteLinearOrder` extend `BiheytingAlgebra` (#12731) In fact, linear orders themselves are biheyting algebras, but registering this as an instance causes a bit of a chicken and the egg problem which I'm not willing to try solving. `CompleteLinearOrder` really does need to extend `BiheytingAlgebra` if we are going to make `Frame` extend `HeytingAlgebra`. This is a step towards #10560 ESTIMATED CHANGES Modified Mathlib/Data/Fintype/Order.lean Modified Mathlib/Data/Nat/PartENat.lean Modified Mathlib/Order/CompleteBooleanAlgebra.lean Modified Mathlib/Order/CompleteLattice.lean Modified Mathlib/Order/CompleteLatticeIntervals.lean Modified Mathlib/Order/ConditionallyCompleteLattice/Basic.lean Modified Mathlib/Order/UpperLower/Basic.lean 2024-06-24 15:56:06 7ce2b09 feat(Data/Int/Defs): Basic divisibility lemmas (#13934) Those lemmas already exist for `Nat`. Also rename `Nat.dvd_div_iff` to `Nat.dvd_div_iff_mul_dvd`. From LeanCamCombi ESTIMATED CHANGES Modified Mathlib/Algebra/BigOperators/Ring.lean Modified Mathlib/Data/Int/Defs.lean + theorem Int.div_dvd_iff_dvd_mul + theorem Int.dvd_div_iff_mul_dvd + theorem Int.dvd_div_of_mul_dvd + theorem Int.dvd_mul_of_div_dvd + theorem Int.mul_dvd_of_dvd_div Modified Mathlib/Data/Int/Order/Lemmas.lean - theorem Int.dvd_div_of_mul_dvd Modified Mathlib/Data/Nat/Defs.lean - theorem Nat.dvd_div_iff + theorem Nat.dvd_div_iff_mul_dvd Modified Mathlib/Data/Nat/Factorization/Basic.lean Modified Mathlib/Data/Nat/GCD/Basic.lean Modified Mathlib/Data/Nat/Squarefree.lean Modified Mathlib/GroupTheory/OrderOfElement.lean 2024-06-24 15:03:23 56664ed feat: `Matrix.PosDef (A + B)` and `Matrix.PosSemidef (A + B)` (#13750) ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/Matrix/PosDef.lean 2024-06-24 13:10:20 69cc9ac feat: differentials as an object in ModuleCat (#14030) In this PR, given a morphism `f : A ⟶ B` in the category `CommRingCat`, and `M : ModuleCat B`, we define the type `M.Derivation f` of derivations with values in `M` relative to `f`. We also construct the module of differentials `CommRingCat.KaehlerDifferential f : ModuleCat B` and the corresponding derivation. (These are basically "bundled" versions of the unbundled constructions already in mathlib.) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Category/ModuleCat/Differentials/Basic.lean + theorem CommRingCat.KaehlerDifferential.ext + theorem CommRingCat.KaehlerDifferential.map_d + def ModuleCat.Derivation.d + theorem ModuleCat.Derivation.d_add + theorem ModuleCat.Derivation.d_map + theorem ModuleCat.Derivation.d_mul + theorem ModuleCat.Derivation.desc_d + def ModuleCat.Derivation.mk Modified Mathlib/Algebra/Group/Action/Defs.lean + theorem SMulCommClass.of_commMonoid 2024-06-24 12:36:12 ae6dfcd feat(Geometry/OpenImmersion): lemmas for sheafed space/locally ringed space (#14039) copied from their presheafed space counter-part ESTIMATED CHANGES Modified Mathlib/AlgebraicGeometry/AffineScheme.lean Modified Mathlib/AlgebraicGeometry/OpenImmersion.lean +/- def AlgebraicGeometry.IsOpenImmersion.isoRestrict Modified Mathlib/Geometry/RingedSpace/OpenImmersion.lean + theorem AlgebraicGeometry.LocallyRingedSpace.IsOpenImmersion.app_invApp + theorem AlgebraicGeometry.LocallyRingedSpace.IsOpenImmersion.app_inv_app' + theorem AlgebraicGeometry.LocallyRingedSpace.IsOpenImmersion.invApp_app + theorem AlgebraicGeometry.LocallyRingedSpace.IsOpenImmersion.inv_invApp + theorem AlgebraicGeometry.LocallyRingedSpace.IsOpenImmersion.inv_naturality + theorem AlgebraicGeometry.LocallyRingedSpace.IsOpenImmersion.isoRestrict_hom_ofRestrict + theorem AlgebraicGeometry.LocallyRingedSpace.IsOpenImmersion.isoRestrict_inv_ofRestrict + theorem AlgebraicGeometry.LocallyRingedSpace.IsOpenImmersion.ofRestrict_invApp + theorem AlgebraicGeometry.LocallyRingedSpace.IsOpenImmersion.of_stalk_iso + theorem AlgebraicGeometry.LocallyRingedSpace.IsOpenImmersion.to_iso + theorem AlgebraicGeometry.SheafedSpace.IsOpenImmersion.app_invApp + theorem AlgebraicGeometry.SheafedSpace.IsOpenImmersion.app_inv_app' + theorem AlgebraicGeometry.SheafedSpace.IsOpenImmersion.invApp_app + theorem AlgebraicGeometry.SheafedSpace.IsOpenImmersion.inv_invApp + theorem AlgebraicGeometry.SheafedSpace.IsOpenImmersion.inv_naturality + theorem AlgebraicGeometry.SheafedSpace.IsOpenImmersion.isoRestrict_hom_ofRestrict + theorem AlgebraicGeometry.SheafedSpace.IsOpenImmersion.isoRestrict_inv_ofRestrict + theorem AlgebraicGeometry.SheafedSpace.IsOpenImmersion.ofRestrict_invApp + theorem AlgebraicGeometry.SheafedSpace.IsOpenImmersion.to_iso Modified Mathlib/Geometry/RingedSpace/PresheafedSpace/Gluing.lean Modified Mathlib/Geometry/RingedSpace/SheafedSpace.lean + def AlgebraicGeometry.SheafedSpace.ofRestrict 2024-06-24 11:40:49 56af609 fix: technical debts counter uses all git history (#14076) This should make the "change" in the technical debts counter actually have access to the relevant past commit. [Zulip thread](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/Technical.20Debt.20Counters/near/446524715) ESTIMATED CHANGES Modified .github/workflows/technical_debt_metrics.yml 2024-06-24 11:40:48 02f215e chore(ContinuousAffineMap): fix porting note (#14074) ESTIMATED CHANGES Modified Mathlib/Analysis/NormedSpace/ContinuousAffineMap.lean 2024-06-24 11:40:46 0e0e49b chore: remove unnecessary local simp lemmas in IfNormalization (#14067) ESTIMATED CHANGES Modified Archive/Examples/IfNormalization/Result.lean 2024-06-24 11:40:45 dc3d440 feat(AlgebraicGeometry/EllipticCurve/DivisionPolynomial/Degree): add further degree lemmas (#14063) ESTIMATED CHANGES Modified Mathlib/AlgebraicGeometry/EllipticCurve/DivisionPolynomial/Degree.lean + theorem WeierstrassCurve.coeff_preΨ'_ne_zero + theorem WeierstrassCurve.coeff_preΨ_ne_zero + theorem WeierstrassCurve.coeff_preΨ₄_ne_zero + theorem WeierstrassCurve.coeff_Φ_ne_zero + theorem WeierstrassCurve.coeff_ΨSq_ne_zero + theorem WeierstrassCurve.coeff_Ψ₂Sq_ne_zero + theorem WeierstrassCurve.coeff_Ψ₃_ne_zero + theorem WeierstrassCurve.leadingCoeff_preΨ' + theorem WeierstrassCurve.leadingCoeff_preΨ + theorem WeierstrassCurve.leadingCoeff_preΨ₄ + theorem WeierstrassCurve.leadingCoeff_Φ + theorem WeierstrassCurve.leadingCoeff_ΨSq + theorem WeierstrassCurve.leadingCoeff_Ψ₂Sq + theorem WeierstrassCurve.leadingCoeff_Ψ₃ +/- theorem WeierstrassCurve.natDegree_preΨ' + theorem WeierstrassCurve.natDegree_preΨ'_le + theorem WeierstrassCurve.natDegree_preΨ'_pos +/- theorem WeierstrassCurve.natDegree_preΨ + theorem WeierstrassCurve.natDegree_preΨ_le + theorem WeierstrassCurve.natDegree_preΨ_pos +/- theorem WeierstrassCurve.natDegree_preΨ₄ + theorem WeierstrassCurve.natDegree_preΨ₄_le + theorem WeierstrassCurve.natDegree_preΨ₄_pos +/- theorem WeierstrassCurve.natDegree_Φ + theorem WeierstrassCurve.natDegree_Φ_le + theorem WeierstrassCurve.natDegree_Φ_pos +/- theorem WeierstrassCurve.natDegree_ΨSq + theorem WeierstrassCurve.natDegree_ΨSq_le + theorem WeierstrassCurve.natDegree_ΨSq_pos +/- theorem WeierstrassCurve.natDegree_Ψ₂Sq + theorem WeierstrassCurve.natDegree_Ψ₂Sq_le + theorem WeierstrassCurve.natDegree_Ψ₂Sq_pos +/- theorem WeierstrassCurve.natDegree_Ψ₃ + theorem WeierstrassCurve.natDegree_Ψ₃_le + theorem WeierstrassCurve.natDegree_Ψ₃_pos + theorem WeierstrassCurve.preΨ'_ne_zero + theorem WeierstrassCurve.preΨ_ne_zero + theorem WeierstrassCurve.preΨ₄_ne_zero + theorem WeierstrassCurve.Φ_ne_zero + theorem WeierstrassCurve.ΨSq_ne_zero + theorem WeierstrassCurve.Ψ₂Sq_ne_zero + theorem WeierstrassCurve.Ψ₃_ne_zero 2024-06-24 11:40:44 df87079 chore: move `lint_style` executable to the `scripts` directory (#14057) Otherwise, importing `Mathlib.Tactic` makes defining own executables impossible, as the `main` function in `Linter.TextBased` would collide with any other main function. Move the code for the lint_style executable to scripts (which arguably might be a better place anyway); we leave the text-based linters in Tactic/Linter. ESTIMATED CHANGES Modified Mathlib/Tactic/Linter/TextBased.lean - def lintStyleCli - def lint_style - def main Modified lakefile.lean Added scripts/lint_style.lean + def lintStyleCli + def lint_style + def main 2024-06-24 11:40:43 2c8e5fd chore: Fix unicode issues in references.bib (#14056) This PR fixes two Unicode issues in references.bib, as per the discussion on [Zulip](https://leanprover.zulipchat.com/#narrow/stream/113488-general/topic/Contribution.20to.20doc-gen4.3F/near/446313567), with a view towards running a [bibtex parser](https://github.com/dupuisf/BibtexQuery) written in Lean on it: - I removed one instance of an `ö` character in a citation key, which is anyway problematic for some implementations of bibtex (see e.g. [this thread](https://tex.stackexchange.com/questions/359215/utf8-character-in-citation-keys)). According to grep, this was only referenced in one file in mathlib, which I changed accordingly. - The one other problematic entry for my bibtex parser is one where there is an `\"o` inside a string delimited using quotation marks. I have an upcoming fix for this in my parser, but using UTF-8 here is anyway cleaner. ESTIMATED CHANGES Modified Mathlib/Analysis/Analytic/Inverse.lean Modified docs/references.bib 2024-06-24 11:40:42 5bc6aac chore: distribute fun_prop tagging of measurability lemmas (#13869) into the respective files: essentially dissolves the `FunProp/Measurable` and `AEMeasurable` files. (The latter is kept to note two missing statements. It is not imported anywhere any more.) This is a pre-requisite for #13781, so fun_prop can be used without breaking existing the `assert_not_exists` statements. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/MeasureTheory/Constructions/BorelSpace/Basic.lean Modified Mathlib/MeasureTheory/Constructions/BorelSpace/ContinuousLinearMap.lean Modified Mathlib/MeasureTheory/Constructions/Prod/Basic.lean Modified Mathlib/MeasureTheory/Group/Arithmetic.lean Modified Mathlib/MeasureTheory/MeasurableSpace/Basic.lean Modified Mathlib/MeasureTheory/MeasurableSpace/Defs.lean Modified Mathlib/MeasureTheory/Measure/AEMeasurable.lean + theorem AEMeasurable.comp_aemeasurable' Modified Mathlib/MeasureTheory/Measure/MeasureSpaceDef.lean Modified Mathlib/Tactic.lean Modified Mathlib/Tactic/FunProp/AEMeasurable.lean - theorem AEMeasurable.comp_aemeasurable' Deleted Mathlib/Tactic/FunProp/Measurable.lean Modified scripts/noshake.json Modified test/fun_prop2.lean 2024-06-24 11:40:41 669326e chore: address `@[pp_nodot]` porting notes (#13781) Adds in `@[pp_nodot]` wherever there was a porting note, except in some cases where by principle it can never have an affect (such as for `MulOpposite.op` or `SymAlg.sym`). closes #11180 ESTIMATED CHANGES Modified Mathlib/Algebra/Opposites.lean Modified Mathlib/Algebra/Symmetrized.lean Modified Mathlib/Algebra/Tropical/Basic.lean Modified Mathlib/Analysis/SpecialFunctions/Arsinh.lean Modified Mathlib/Analysis/SpecialFunctions/Complex/Log.lean Modified Mathlib/Analysis/SpecialFunctions/Gamma/Basic.lean Modified Mathlib/Analysis/SpecialFunctions/Log/Base.lean Modified Mathlib/Analysis/SpecialFunctions/Log/Basic.lean Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Arctan.lean Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Inverse.lean Modified Mathlib/Data/Complex/Basic.lean Modified Mathlib/Data/Complex/Exponential.lean Modified Mathlib/Data/Int/Sqrt.lean Modified Mathlib/Data/Matrix/Block.lean Modified Mathlib/Data/NNRat/Defs.lean Modified Mathlib/Data/Nat/Fib/Basic.lean Modified Mathlib/Data/Nat/Log.lean Modified Mathlib/Data/Nat/Pairing.lean Modified Mathlib/Data/Nat/Prime.lean Modified Mathlib/Data/Rat/Sqrt.lean Modified Mathlib/Data/Real/NNReal.lean Modified Mathlib/Data/Real/Sqrt.lean Modified Mathlib/Mathport/Syntax.lean Modified Mathlib/SetTheory/Ordinal/CantorNormalForm.lean Modified Mathlib/SetTheory/Ordinal/Exponential.lean Modified scripts/nolints.json Modified test/Recall.lean 2024-06-24 10:09:39 f9caf98 chore: bump toolchain to v4.9.0-rc3 (#14071) This only affects `lake` behaviour. ESTIMATED CHANGES Modified lean-toolchain 2024-06-24 10:09:38 932699c chore: many backward compatibility flags are no longer needed (#14064) The majority of the backward compatibility flags, introduced during the move to `v4.8.0-rc1`, are no longer needed. 🎉 ESTIMATED CHANGES Modified Mathlib/Algebra/Lie/Quotient.lean Modified Mathlib/AlgebraicGeometry/AffineScheme.lean Modified Mathlib/AlgebraicGeometry/GammaSpecAdjunction.lean Modified Mathlib/AlgebraicGeometry/Spec.lean Modified Mathlib/Analysis/Normed/Group/Quotient.lean Modified Mathlib/CategoryTheory/Limits/Lattice.lean Modified Mathlib/Combinatorics/Additive/PluenneckeRuzsa.lean Modified Mathlib/Data/Set/Basic.lean Modified Mathlib/FieldTheory/Finite/Basic.lean Modified Mathlib/FieldTheory/IsAlgClosed/AlgebraicClosure.lean Modified Mathlib/GroupTheory/Coset.lean Modified Mathlib/GroupTheory/SchurZassenhaus.lean Modified Mathlib/LinearAlgebra/Lagrange.lean Modified Mathlib/LinearAlgebra/SModEq.lean Modified Mathlib/LinearAlgebra/Semisimple.lean Modified Mathlib/MeasureTheory/Integral/Marginal.lean Modified Mathlib/NumberTheory/Cyclotomic/CyclotomicCharacter.lean Modified Mathlib/NumberTheory/RamificationInertia.lean Modified Mathlib/Probability/Martingale/OptionalSampling.lean Modified Mathlib/RingTheory/Ideal/Cotangent.lean Modified Mathlib/RingTheory/Kaehler/Polynomial.lean Modified Mathlib/RingTheory/LittleWedderburn.lean Modified Mathlib/RingTheory/Smooth/Basic.lean Modified Mathlib/RingTheory/Valuation/ValuationSubring.lean Modified Mathlib/Topology/Category/Profinite/Nobeling.lean Modified Mathlib/Topology/Instances/AddCircle.lean Modified Mathlib/Topology/MetricSpace/Polish.lean 2024-06-24 10:09:36 6f8b153 fix: generalize HahnSeries.single_zero_one (#14061) Before this change, 0 was interpreted as a natural number. ESTIMATED CHANGES Modified Mathlib/RingTheory/HahnSeries/Multiplication.lean +/- theorem HahnSeries.single_zero_one Modified Mathlib/RingTheory/LaurentSeries.lean 2024-06-24 10:09:35 34a8876 feat(lint-style): rewrite the 'broad imports' linters in Lean (#14059) This time, the error codes are intentionally changed, as the old ones feel actively misleading. ESTIMATED CHANGES Modified Mathlib/Tactic/Linter/TextBased.lean + inductive BroadImports + def broadImportsLinter - def checkFileLength - def isImportsOnlyFile Modified scripts/lint-style.py 2024-06-24 10:09:34 85a75af feat: the mapping cone of a monomorphism, up to a quasi-isomorphism (#13675) In this PR, given a short exact sequence `S` in the category of cochain complexes in an abelian category, we compare the homology sequence of `S`, and the homology sequence of the homological functor on the homotopy category applied to the distinguished triangle of the mapping cone of the monomorphism `S.f`. In particular, up to a quasi-isomorphism, the mapping cone of `S.f` identifies to `S.X₃`. In future PRs, this shall be used in order to attach a distinguished triangle in the derived category to `S` (#13742), and compare the homology sequence of `S` and the homology sequence attached to this distinguished triangle. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Homology/HomologySequenceLemmas.lean +/- theorem HomologicalComplex.HomologySequence.composableArrows₅_exact Modified Mathlib/Algebra/Homology/HomotopyCategory/MappingCone.lean + theorem CochainComplex.mappingCone.decomp_from + theorem CochainComplex.mappingCone.decomp_to Modified Mathlib/Algebra/Homology/HomotopyCategory/ShiftSequence.lean + theorem CochainComplex.homologyFunctor_shift + theorem CochainComplex.liftCycles_shift_homologyπ + theorem HomotopyCategory.homologyFunctor_shiftMap Added Mathlib/Algebra/Homology/HomotopyCategory/ShortExact.lean + theorem CochainComplex.homologySequenceδ_quotient_mapTriangle_obj + theorem CochainComplex.mappingCone.homologySequenceδ_triangleh + theorem CochainComplex.mappingCone.inl_v_descShortComplex_f + theorem CochainComplex.mappingCone.inr_descShortComplex + theorem CochainComplex.mappingCone.inr_f_descShortComplex_f + theorem CochainComplex.mappingCone.quasiIso_descShortComplex Added Mathlib/Algebra/Homology/Refinements.lean + theorem HomologicalComplex.eq_liftCycles_homologyπ_up_to_refinements Modified Mathlib/CategoryTheory/Abelian/Refinements.lean + theorem CategoryTheory.ShortComplex.eq_liftCycles_homologyπ_up_to_refinements Modified Mathlib/CategoryTheory/Shift/InducedShiftSequence.lean + theorem CategoryTheory.Functor.ShiftSequence.induced_shiftMap Modified Mathlib/CategoryTheory/Triangulated/HomologicalFunctor.lean + theorem CategoryTheory.Functor.homologySequenceComposableArrows₅_exact 2024-06-24 10:09:33 30915f0 feat: polish user experience with the check of import-only files (#13617) Add a new --check flag to `mk_all`: if true, only verify the files are correct, and print an error (with instructions how to update the file) if not. CI can use this to give an error if the files are wrong. (Another possibility is to automatically update the files instead: this is left for future PRs.) ESTIMATED CHANGES Modified .github/workflows/bors.yml Modified .github/workflows/build.yml Modified .github/workflows/build.yml.in Modified .github/workflows/build_fork.yml Modified scripts/mk_all.lean 2024-06-24 08:40:36 0eb8750 chore: remove unnecessary term or tactic `set_option in` with backwards-compatibility flags (#13704) As far as I can tell, this removes all `set_option ... false in norm_num` :tada: Inspired by the linter in #13653 (but not covered by it yet; so far, that linter only checks the set_option *command*). ESTIMATED CHANGES Modified Archive/Examples/IfNormalization/Result.lean Modified Archive/Wiedijk100Theorems/AbelRuffini.lean Modified Archive/Wiedijk100Theorems/PerfectNumbers.lean Modified Counterexamples/Cyclotomic105.lean Modified Counterexamples/Phillips.lean Modified Mathlib/Algebra/Category/ModuleCat/ChangeOfRings.lean Modified Mathlib/Algebra/CubicDiscriminant.lean Modified Mathlib/AlgebraicTopology/FundamentalGroupoid/Basic.lean Modified Mathlib/Analysis/Analytic/Inverse.lean Modified Mathlib/Analysis/Convex/Uniform.lean Modified Mathlib/Analysis/InnerProductSpace/Projection.lean Modified Mathlib/Analysis/NormedSpace/lpSpace.lean Modified Mathlib/Analysis/SpecialFunctions/Complex/Arctan.lean Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Angle.lean Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Arctan.lean Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Bounds.lean Modified Mathlib/Analysis/SpecificLimits/Normed.lean Modified Mathlib/Combinatorics/Additive/AP/Three/Behrend.lean Modified Mathlib/Combinatorics/SimpleGraph/Regularity/Chunk.lean Modified Mathlib/Combinatorics/SimpleGraph/Regularity/Lemma.lean Modified Mathlib/Computability/AkraBazzi/GrowsPolynomially.lean Modified Mathlib/Data/Finset/Pointwise.lean Modified Mathlib/GroupTheory/Perm/Cycle/Concrete.lean Modified Mathlib/GroupTheory/SpecificGroups/Quaternion.lean Modified Mathlib/LinearAlgebra/CrossProduct.lean Modified Mathlib/MeasureTheory/Function/UniformIntegrable.lean Modified Mathlib/MeasureTheory/Integral/MeanInequalities.lean Modified Mathlib/NumberTheory/FermatPsp.lean Modified Mathlib/NumberTheory/NumberField/CanonicalEmbedding/ConvexBody.lean Modified Mathlib/NumberTheory/Padics/PadicIntegers.lean Modified Mathlib/NumberTheory/Padics/PadicNumbers.lean Modified Mathlib/Probability/Distributions/Exponential.lean Modified Mathlib/RingTheory/Polynomial/ScaleRoots.lean Modified Mathlib/Topology/Algebra/Polynomial.lean Modified Mathlib/Topology/Homotopy/Basic.lean Modified Mathlib/Topology/Homotopy/Path.lean Modified Mathlib/Topology/MetricSpace/Gluing.lean Modified Mathlib/Topology/MetricSpace/ThickenedIndicator.lean Modified Mathlib/Topology/UrysohnsLemma.lean 2024-06-24 08:03:30 0b2d94a feat: bijections between morphisms in two localized categories (#13956) Given two localization functors `L₁ : C ⥤ D₁` and `L₂ : C ⥤ D₂` for the same class of morphisms `W : MorphismProperty C`, we define a bijection `Localization.homEquiv W L₁ L₂ : (L₁.obj X ⟶ L₁.obj Y) ≃ (L₂.obj X ⟶ L₂.obj Y)` between the types of morphisms in the two localized categories. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/CategoryTheory/Iso.lean + def CategoryTheory.Iso.homFromEquiv + def CategoryTheory.Iso.homToEquiv Added Mathlib/CategoryTheory/Localization/HomEquiv.lean + theorem CategoryTheory.Localization.homEquiv_comp + theorem CategoryTheory.Localization.homEquiv_eq + theorem CategoryTheory.Localization.homEquiv_id + theorem CategoryTheory.Localization.homEquiv_isoOfHom_inv + theorem CategoryTheory.Localization.homEquiv_map + theorem CategoryTheory.Localization.homEquiv_refl + theorem CategoryTheory.Localization.homEquiv_symm_apply + theorem CategoryTheory.Localization.homEquiv_trans + theorem CategoryTheory.LocalizerMorphism.homMap_apply + theorem CategoryTheory.LocalizerMorphism.homMap_comp + theorem CategoryTheory.LocalizerMorphism.homMap_homMap + theorem CategoryTheory.LocalizerMorphism.homMap_id + theorem CategoryTheory.LocalizerMorphism.homMap_map + theorem CategoryTheory.LocalizerMorphism.id_homMap 2024-06-24 08:03:28 81b1267 feat(CategoryTheory): more API for the commutation of functors with shifts (#13757) In this PR, it is shown that the composition of two functors which commute with shifts also commutes with shifts. The notion of natural transformation which commutes with the shifts is also introduced. This shall be used in the development of the API for the derived category #13742. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Shift/CommShift.lean + def CategoryTheory.Functor.CommShift.ofIso + theorem CategoryTheory.Functor.CommShift.ofIso_compatibility + theorem CategoryTheory.Functor.commShiftIso_comp_hom_app + theorem CategoryTheory.Functor.commShiftIso_comp_inv_app + theorem CategoryTheory.NatTrans.CommShift.app_shift + theorem CategoryTheory.NatTrans.CommShift.comm + theorem CategoryTheory.NatTrans.CommShift.comm_app + theorem CategoryTheory.NatTrans.CommShift.of_isIso + theorem CategoryTheory.NatTrans.CommShift.shift_app Modified Mathlib/CategoryTheory/Triangulated/Functor.lean + def CategoryTheory.Functor.mapTriangleCompIso + def CategoryTheory.Functor.mapTriangleIso 2024-06-24 08:03:27 7788d14 feat(CategoryTheory/Sites): the topology is generated by 1-hypercovers (#13011) In this PR, we show that a Grothendieck topology on a category `C` (with `C : Type u` and `[Category.{v} C]`) is (obviously) generated by 1-hypercovers of size `max u v`. In order to facilitate this, the type `Cover.Relation` is repackaged in a slightly different manner. Some proofs have been cleaned up. Several `dsimp` lemmas which had been manually added have been removed (and replaced by auto-generated ones). ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Limits/Shapes/Multiequalizer.lean - theorem CategoryTheory.Limits.MulticospanIndex.multicospan_map_fst - theorem CategoryTheory.Limits.MulticospanIndex.multicospan_map_snd - theorem CategoryTheory.Limits.MulticospanIndex.multicospan_obj_left - theorem CategoryTheory.Limits.MulticospanIndex.multicospan_obj_right Modified Mathlib/CategoryTheory/Sites/CompatiblePlus.lean Modified Mathlib/CategoryTheory/Sites/ConcreteSheafification.lean + theorem CategoryTheory.Meq.congr_apply Modified Mathlib/CategoryTheory/Sites/Grothendieck.lean + def CategoryTheory.GrothendieckTopology.Cover.Arrow.Relation.base + def CategoryTheory.GrothendieckTopology.Cover.Arrow.Relation.map + structure CategoryTheory.GrothendieckTopology.Cover.Arrow.Relation + def CategoryTheory.GrothendieckTopology.Cover.Arrow.precomp + def CategoryTheory.GrothendieckTopology.Cover.Arrow.precompRelation - def CategoryTheory.GrothendieckTopology.Cover.Relation.base - theorem CategoryTheory.GrothendieckTopology.Cover.Relation.base_fst - theorem CategoryTheory.GrothendieckTopology.Cover.Relation.base_snd - def CategoryTheory.GrothendieckTopology.Cover.Relation.fst - def CategoryTheory.GrothendieckTopology.Cover.Relation.map - theorem CategoryTheory.GrothendieckTopology.Cover.Relation.map_fst - theorem CategoryTheory.GrothendieckTopology.Cover.Relation.map_snd + def CategoryTheory.GrothendieckTopology.Cover.Relation.mk' - def CategoryTheory.GrothendieckTopology.Cover.Relation.snd Modified Mathlib/CategoryTheory/Sites/IsSheafOneHypercover.lean Modified Mathlib/CategoryTheory/Sites/LocallySurjective.lean Modified Mathlib/CategoryTheory/Sites/OneHypercover.lean + def CategoryTheory.GrothendieckTopology.Cover.oneHypercover + def CategoryTheory.GrothendieckTopology.Cover.preOneHypercover + theorem CategoryTheory.GrothendieckTopology.Cover.preOneHypercover_sieve₀ + theorem CategoryTheory.GrothendieckTopology.Cover.preOneHypercover_sieve₁ Modified Mathlib/CategoryTheory/Sites/Plus.lean Modified Mathlib/CategoryTheory/Sites/Sheaf.lean Modified Mathlib/CategoryTheory/Sites/Whiskering.lean - theorem CategoryTheory.GrothendieckTopology.Cover.multicospanComp_app_left - theorem CategoryTheory.GrothendieckTopology.Cover.multicospanComp_app_right - theorem CategoryTheory.GrothendieckTopology.Cover.multicospanComp_hom_app_left - theorem CategoryTheory.GrothendieckTopology.Cover.multicospanComp_hom_app_right - theorem CategoryTheory.GrothendieckTopology.Cover.multicospanComp_hom_inv_left - theorem CategoryTheory.GrothendieckTopology.Cover.multicospanComp_hom_inv_right 2024-06-24 07:53:13 aaafbd9 feat: the extension of a homological complex by an embedding of complex shapes (#13992) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Homology/Embedding/Basic.lean + theorem ComplexShape.Embedding.f_eq_of_r_eq_some + theorem ComplexShape.Embedding.r_eq_none + theorem ComplexShape.Embedding.r_eq_some + theorem ComplexShape.Embedding.r_f Added Mathlib/Algebra/Homology/Embedding/Extend.lean + theorem HomologicalComplex.extend.d_eq + theorem HomologicalComplex.extend.d_none_eq_zero' + theorem HomologicalComplex.extend.d_none_eq_zero + theorem HomologicalComplex.extend.isZero_X + theorem HomologicalComplex.extend_d_eq + theorem HomologicalComplex.extend_d_from_eq_zero + theorem HomologicalComplex.extend_d_to_eq_zero + theorem HomologicalComplex.isZero_extend_X' + theorem HomologicalComplex.isZero_extend_X Modified Mathlib/Data/Option/Basic.lean + theorem Option.eq_none_or_eq_some 2024-06-24 07:15:13 b1a3141 feat: maxHeartBeats in technical debts metrics (#14075) Adds `set_option .*maxHeartBeats` to the list of technical debt metrics tracked by the weekly report. [Zulip discussion](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/Technical.20Debt.20Counters/near/446519223) ESTIMATED CHANGES Modified scripts/technical-debt-metrics.sh 2024-06-24 00:49:29 62fdad8 feat(lint-style): rewrite the linter for plain string adaptation notes in Lean (#14058) In true fashion, the linter (correctly) flags itself; we add these to the nolints file. ESTIMATED CHANGES Modified Mathlib/Tactic/Linter/TextBased.lean +/- def allLinters + def isImportsOnlyFile Modified scripts/lint-style.py Modified scripts/nolints-style.txt 2024-06-24 00:49:28 38bdba1 feat: Monotonicity of the slope of a convex function (#14015) - Add `slope_neg_fun` - Add `ConvexOn.slope_mono` and `ConcaveOn.slope_anti` in a new separate section called `slope` ESTIMATED CHANGES Modified Mathlib/Analysis/Convex/Deriv.lean + theorem ConcaveOn.slope_anti + theorem ConvexOn.slope_mono Modified Mathlib/LinearAlgebra/AffineSpace/Slope.lean + theorem slope_neg_fun 2024-06-23 23:52:47 bff23e1 chore: restore `cc` tactic (#13404) The `cc` tactic is a high-cost tactic, so I restored `cc` tactics only if a proof can be reduced significantly. I made sure that `cc` tactic works on in the all changed proofs except when the other specification changes in Lean 4 changes a goal. ESTIMATED CHANGES Modified Archive/Imo/Imo1988Q6.lean Modified Mathlib/Analysis/Convex/SpecificFunctions/Deriv.lean Modified Mathlib/Data/Matrix/Block.lean Modified Mathlib/Data/Matrix/PEquiv.lean Modified Mathlib/Data/Nat/Defs.lean Modified Mathlib/Data/Num/Lemmas.lean Modified Mathlib/Data/PFunctor/Multivariate/M.lean Modified Mathlib/Data/Prod/Basic.lean Modified Mathlib/LinearAlgebra/Basic.lean Modified Mathlib/LinearAlgebra/Multilinear/Basic.lean Modified Mathlib/Logic/Embedding/Basic.lean +/- def Function.Embedding.setValue Modified Mathlib/Logic/Equiv/Basic.lean Modified Mathlib/NumberTheory/Bernoulli.lean Modified Mathlib/SetTheory/Ordinal/Arithmetic.lean Modified scripts/noshake.json 2024-06-23 22:42:52 fca6b3a chore(Topology/MetricSpace/PseudoMetric): Split (#13977) This reduces the long pole. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Analysis/BoxIntegral/Box/Basic.lean Modified Mathlib/Analysis/Convex/Extrema.lean Modified Mathlib/Analysis/Normed/Group/Basic.lean Modified Mathlib/Topology/Instances/Int.lean Modified Mathlib/Topology/MetricSpace/Basic.lean Modified Mathlib/Topology/MetricSpace/Cauchy.lean Modified Mathlib/Topology/MetricSpace/Equicontinuity.lean Modified Mathlib/Topology/MetricSpace/ProperSpace.lean Added Mathlib/Topology/MetricSpace/Pseudo/Constructions.lean + theorem Fin.dist_insertNth_insertNth + theorem Fin.nndist_insertNth_insertNth + def Inducing.comapPseudoMetricSpace + theorem MulOpposite.dist_op + theorem MulOpposite.dist_unop + theorem MulOpposite.nndist_op + theorem MulOpposite.nndist_unop + theorem NNReal.ball_zero_eq_Ico' + theorem NNReal.ball_zero_eq_Ico + theorem NNReal.closedBall_zero_eq_Icc' + theorem NNReal.closedBall_zero_eq_Icc + theorem NNReal.dist_eq + theorem NNReal.le_add_nndist + theorem NNReal.nndist_eq + theorem NNReal.nndist_zero_eq_val' + theorem NNReal.nndist_zero_eq_val + theorem Prod.dist_eq + theorem Subtype.dist_eq + theorem Subtype.nndist_eq + theorem ULift.dist_eq + theorem ULift.dist_up_up + theorem ULift.nndist_eq + theorem ULift.nndist_up_up + def UniformInducing.comapPseudoMetricSpace + theorem ball_pi' + theorem ball_pi + theorem ball_prod_same + theorem closedBall_pi' + theorem closedBall_pi + theorem closedBall_prod_same + theorem continuous_dist + theorem continuous_iff_continuous_dist + theorem continuous_nndist + theorem dist_le_pi_dist + theorem dist_pi_const + theorem dist_pi_const_le + theorem dist_pi_def + theorem dist_pi_eq_iff + theorem dist_pi_le_iff' + theorem dist_pi_le_iff + theorem dist_pi_lt_iff + theorem dist_prod_same_left + theorem dist_prod_same_right + theorem nndist_le_pi_nndist + theorem nndist_pi_const + theorem nndist_pi_const_le + theorem nndist_pi_def + theorem nndist_pi_eq_iff + theorem nndist_pi_le_iff + theorem nndist_pi_lt_iff + theorem sphere_pi + theorem sphere_prod + theorem uniformContinuous_dist + theorem uniformContinuous_nndist Renamed Mathlib/Topology/MetricSpace/PseudoMetric.lean to Mathlib/Topology/MetricSpace/Pseudo/Defs.lean - theorem Fin.dist_insertNth_insertNth - theorem Fin.nndist_insertNth_insertNth - def Inducing.comapPseudoMetricSpace - theorem Metric.closedBall_zero' - theorem Metric.closure_ball_subset_closedBall - theorem Metric.closure_closedBall - theorem Metric.closure_sphere - theorem Metric.eventually_isCompact_closedBall - theorem Metric.exists_isCompact_closedBall - theorem Metric.frontier_ball_subset_sphere - theorem Metric.frontier_closedBall_subset_sphere - theorem Metric.isClosed_ball - theorem Metric.isClosed_sphere - theorem MulOpposite.dist_op - theorem MulOpposite.dist_unop - theorem MulOpposite.nndist_op - theorem MulOpposite.nndist_unop - theorem NNReal.ball_zero_eq_Ico' - theorem NNReal.ball_zero_eq_Ico - theorem NNReal.closedBall_zero_eq_Icc' - theorem NNReal.closedBall_zero_eq_Icc - theorem NNReal.dist_eq - theorem NNReal.le_add_nndist - theorem NNReal.nndist_eq - theorem NNReal.nndist_zero_eq_val' - theorem NNReal.nndist_zero_eq_val - theorem Prod.dist_eq - theorem Real.dist_le_of_mem_Icc - theorem Real.dist_le_of_mem_Icc_01 - theorem Real.dist_le_of_mem_pi_Icc - theorem Real.dist_le_of_mem_uIcc - theorem Real.dist_left_le_of_mem_uIcc - theorem Real.dist_right_le_of_mem_uIcc - theorem Subtype.dist_eq - theorem Subtype.nndist_eq - theorem ULift.dist_eq - theorem ULift.dist_up_up - theorem ULift.nndist_eq - theorem ULift.nndist_up_up - def UniformInducing.comapPseudoMetricSpace - theorem ball_pi' - theorem ball_pi - theorem ball_prod_same - theorem closedBall_pi' - theorem closedBall_pi - theorem closedBall_prod_same - theorem continuous_dist - theorem continuous_iff_continuous_dist - theorem continuous_nndist - theorem dist_le_pi_dist - theorem dist_pi_const - theorem dist_pi_const_le - theorem dist_pi_def - theorem dist_pi_eq_iff - theorem dist_pi_le_iff' - theorem dist_pi_le_iff - theorem dist_pi_lt_iff - theorem dist_prod_same_left - theorem dist_prod_same_right - theorem eventually_closedBall_subset - theorem nndist_le_pi_nndist - theorem nndist_pi_const - theorem nndist_pi_const_le - theorem nndist_pi_def - theorem nndist_pi_eq_iff - theorem nndist_pi_le_iff - theorem nndist_pi_lt_iff - theorem sphere_pi - theorem sphere_prod - theorem squeeze_zero' - theorem squeeze_zero - theorem tendsto_closedBall_smallSets - theorem uniformContinuous_dist - theorem uniformContinuous_nndist Added Mathlib/Topology/MetricSpace/Pseudo/Lemmas.lean + theorem Metric.closedBall_zero' + theorem Metric.closure_ball_subset_closedBall + theorem Metric.closure_closedBall + theorem Metric.closure_sphere + theorem Metric.eventually_isCompact_closedBall + theorem Metric.exists_isCompact_closedBall + theorem Metric.frontier_ball_subset_sphere + theorem Metric.frontier_closedBall_subset_sphere + theorem Metric.isClosed_ball + theorem Metric.isClosed_sphere + theorem Real.dist_le_of_mem_Icc + theorem Real.dist_le_of_mem_Icc_01 + theorem Real.dist_le_of_mem_pi_Icc + theorem Real.dist_le_of_mem_uIcc + theorem Real.dist_left_le_of_mem_uIcc + theorem Real.dist_right_le_of_mem_uIcc + theorem eventually_closedBall_subset + theorem squeeze_zero' + theorem squeeze_zero + theorem tendsto_closedBall_smallSets Modified scripts/style-exceptions.txt 2024-06-23 21:54:37 f2d0448 feat(RingTheory): localization and finiteness (#14054) We show that `Module.Finite` is preserved under localizations and that if a module is finite after localizing at a spanning set of elements of the ring, it is finite. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Module/LocalizedModuleIntegers.lean + def IsLocalizedModule.IsInteger + theorem IsLocalizedModule.exist_integer_multiples + theorem IsLocalizedModule.exist_integer_multiples_of_finite + theorem IsLocalizedModule.exist_integer_multiples_of_finset + theorem IsLocalizedModule.exists_integer_multiple + theorem IsLocalizedModule.finsetIntegerMultiple_image + theorem IsLocalizedModule.isInteger_add + theorem IsLocalizedModule.isInteger_smul + theorem IsLocalizedModule.isInteger_zero + theorem IsLocalizedModule.map_integerMultiple + theorem IsLocalizedModule.smul_mem_finsetIntegerMultiple_span Modified Mathlib/RingTheory/LocalProperties.lean +/- theorem multiple_mem_span_of_mem_localization_span Added Mathlib/RingTheory/Localization/Finiteness.lean + theorem Module.Finite.of_isLocalizedModule + theorem Module.Finite.of_localizationSpan' + theorem Module.Finite.of_localizationSpan + theorem Module.Finite.of_localizationSpan_finite' + theorem Module.Finite.of_localizationSpan_finite 2024-06-23 21:44:03 cbf2eab feat(Algebra/Homology): definition of Functor.mapDerivedCategory (#14013) If `F` is an exact functor between abelian categories, we define the induced functor on the derived categories. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Homology/DerivedCategory/ExactFunctor.lean Modified Mathlib/Algebra/Homology/Localization.lean + theorem CategoryTheory.Functor.mapHomologicalComplex_upToQuasiIso_Q_inverts_quasiIso 2024-06-23 21:33:29 6cb118d feat: the restriction functor on homological complexes (#13991) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Homology/Embedding/Restriction.lean + def HomologicalComplex.restriction + def HomologicalComplex.restrictionMap + theorem HomologicalComplex.restrictionMap_comp + theorem HomologicalComplex.restrictionMap_f' + theorem HomologicalComplex.restrictionMap_id + def HomologicalComplex.restrictionXIso + theorem HomologicalComplex.restriction_d_eq 2024-06-23 16:39:46 1616f72 feat: add unitor functor for product of categories (#13663) left and right unitor functors for product of categories ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/CategoryTheory/Products/Associator.lean Added Mathlib/CategoryTheory/Products/Unitor.lean + def CategoryTheory.prod.leftInverseUnitor + def CategoryTheory.prod.leftUnitor + def CategoryTheory.prod.leftUnitorEquivalence + def CategoryTheory.prod.rightInverseUnitor + def CategoryTheory.prod.rightUnitor + def CategoryTheory.prod.rightUnitorEquivalence 2024-06-23 16:19:03 2fc483b feat(SpecialFunctions/Log): add extended nonnegative real logarithm (#14018) This PR adds the `SpecialFunctions/Log/ENNRealLog.lean` file where we define `log` as an extension of the logarithm of a positive real to the extended nonnegative reals `ℝ≥0∞`. The function takes values in the extended reals `EReal`, with `log 0 = ⊥` and `log ⊤ = ⊤`. Co-authored with @D-Thomine. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/SpecialFunctions/Log/ENNReal.lean + theorem ENNReal.log_bijective + theorem ENNReal.log_bot_lt_iff + theorem ENNReal.log_continuous + theorem ENNReal.log_eq_bot_iff + theorem ENNReal.log_eq_iff + theorem ENNReal.log_eq_one_iff + theorem ENNReal.log_eq_top_iff + theorem ENNReal.log_homeomorph_apply + theorem ENNReal.log_injective + theorem ENNReal.log_le_iff_le + theorem ENNReal.log_le_one_iff + theorem ENNReal.log_lt_iff_lt + theorem ENNReal.log_lt_one_iff + theorem ENNReal.log_lt_top_iff + theorem ENNReal.log_monotone + theorem ENNReal.log_mul_add + theorem ENNReal.log_of_nnreal + theorem ENNReal.log_one + theorem ENNReal.log_one_le_iff + theorem ENNReal.log_one_lt_iff + theorem ENNReal.log_orderIso_apply + theorem ENNReal.log_pos_real' + theorem ENNReal.log_pos_real + theorem ENNReal.log_pow + theorem ENNReal.log_rpow + theorem ENNReal.log_strictMono + theorem ENNReal.log_surjective + theorem ENNReal.log_top + theorem ENNReal.log_zero 2024-06-23 15:38:30 41c8f83 feat(FiberedCategory/BasedCategory): add bicategory of based categories (#13545) We define the strict bicategory of based categories. Its objects are categories equipped with a functor to some fixed base-category. The strict bicategory of fibered categories will later be built on top of this one. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/FiberedCategory/BasedCategory.lean + def CategoryTheory.BasedCategory.ofFunctor + def CategoryTheory.BasedCategory.whiskerLeft + def CategoryTheory.BasedCategory.whiskerRight + structure CategoryTheory.BasedCategory + def CategoryTheory.BasedFunctor.comp + theorem CategoryTheory.BasedFunctor.comp_assoc + theorem CategoryTheory.BasedFunctor.comp_id + def CategoryTheory.BasedFunctor.id + theorem CategoryTheory.BasedFunctor.id_comp + theorem CategoryTheory.BasedFunctor.isHomLift_iff + theorem CategoryTheory.BasedFunctor.isHomLift_map + theorem CategoryTheory.BasedFunctor.w_obj + structure CategoryTheory.BasedFunctor + def CategoryTheory.BasedNatIso.id + theorem CategoryTheory.BasedNatIso.isIso_of_toNatTrans_isIso + def CategoryTheory.BasedNatIso.mkNatIso + def CategoryTheory.BasedNatTrans.comp + theorem CategoryTheory.BasedNatTrans.ext + def CategoryTheory.BasedNatTrans.forgetful + theorem CategoryTheory.BasedNatTrans.homCategory.ext + def CategoryTheory.BasedNatTrans.id + theorem CategoryTheory.BasedNatTrans.isHomLift + structure CategoryTheory.BasedNatTrans Modified Mathlib/CategoryTheory/FiberedCategory/HomLift.lean 2024-06-23 14:59:28 5c12fd7 feat(Geometry/RingedSpace/OpenImmersion): make `IsOpenImmersion` instance (#14050) ESTIMATED CHANGES Modified Mathlib/AlgebraicGeometry/AffineScheme.lean Modified Mathlib/AlgebraicGeometry/Cover/Open.lean Modified Mathlib/AlgebraicGeometry/Restrict.lean Modified Mathlib/Geometry/RingedSpace/OpenImmersion.lean +/- theorem AlgebraicGeometry.PresheafedSpace.IsOpenImmersion.isoRestrict_hom_ofRestrict +/- theorem AlgebraicGeometry.PresheafedSpace.IsOpenImmersion.isoRestrict_inv_ofRestrict +/- theorem AlgebraicGeometry.PresheafedSpace.IsOpenImmersion.to_iso Modified Mathlib/Geometry/RingedSpace/PresheafedSpace/Gluing.lean 2024-06-23 12:43:41 1ca5430 feat: rewrite the copyright header check in Lean (#13240) This is one in a series of PRs rewriting most checks from `lint-style.py` in Lean. This PR moves the check for copyright headers and authors: the check has been rewritten anew (and is hopefully simpler to understand now); this has made it stricter in various places. The necessary adjustments have been made in #13212 and #13247. This PR also adds a `nolints` file for text-based linters. ESTIMATED CHANGES Modified Mathlib/Tactic/Linter/TextBased.lean + def allLinters + def copyrightHeaderLinter + def isCorrectAuthorsLine - def isImportsOnlyFile +/- def lintFile Modified scripts/lint-style.py Added scripts/nolints-style.txt 2024-06-23 12:16:22 4e1840a feat(Analysis/MeanInequalities): HM-GM inequality (#13721) We derive the inequality between the harmonic and geometric mean as a consequence of AM-GM for positive real valued functions from a `Finset`. We state a weighted as well as the classical version. ESTIMATED CHANGES Modified Mathlib/Analysis/MeanInequalities.lean + theorem Real.harm_mean_le_geom_mean + theorem Real.harm_mean_le_geom_mean_weighted 2024-06-23 11:05:29 a6a6c6b chore(Data/ENat): unbundle `ENat.toNat` (#13936) This will allow us to write `n.toNat` instead of `ENat.toNat n` ESTIMATED CHANGES Modified Mathlib/Data/ENat/Basic.lean + theorem ENat.coe_toNatHom +/- def ENat.toNat + def ENat.toNatHom + theorem ENat.toNatHom_apply Modified Mathlib/Data/Set/Card.lean Modified Mathlib/SetTheory/Cardinal/ToNat.lean 2024-06-23 08:02:27 7cac44b cleanup: remove `summarize_declarations` and tooling for `move-decls` (#14047) This PR cleans up the tooling around the `move-decls` label that is now obsolete, thanks to the new `PR summary` comment on PRs. Here is a short description of what the removed code did: * the `summarize_declarations` CI step produced a formatted output of `./scripts/no_lost_declarations` that I suspect no one except for me ever looked at; * `.github/workflows/move_decl.yaml` is the (working) action that adds the output of `./scripts/no_lost_declarations short` to the PR as a comment -- this has been made obsolete by the `PR summary` comment; * `.github/workflows/move_decl_comment.yml` is a (failed) action that should have posted the short diff on all PRs, but never actually worked -- besides being broken, this has also been made obsolete by the `PR summary` comment. ESTIMATED CHANGES Modified .github/workflows/bors.yml Modified .github/workflows/build.yml Modified .github/workflows/build.yml.in Modified .github/workflows/build_fork.yml Deleted .github/workflows/move_decl.yaml Deleted .github/workflows/move_decl_comment.yml 2024-06-23 07:52:07 ca9e9db feat(lint-style): fix `update-style-exceptions.py`; produce human-readable output by default (#14012) - Fix the output of `update-style-exceptions.py` by making `lake exe lint_style` optionally produce output in the right format: this regressed in #13620 - The current error messages are tailored for github annotations, which are not very readable for running the linter locally. Produce a human-readable and clickable error by default, but add a flag (which CI sets) for producing github-style output. This entails adding a small CLI for the lint-style executable. ESTIMATED CHANGES Modified Mathlib/Tactic/Linter/TextBased.lean + inductive ErrorFormat +/- def StyleError.errorMessage +/- def formatErrors +/- def lintAllFiles +/- def lintFile + def lintStyleCli + def lint_style +/- def main +/- def outputMessage Modified scripts/lint-style.sh Modified scripts/update-style-exceptions.sh 2024-06-23 06:39:04 756e653 chore: split some results out of Analysis.Normed.Group.Basic (#14035) This flips the longest pole back to ring theory / linear algebra. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Analysis/Normed/Field/Basic.lean Modified Mathlib/Analysis/Normed/Group/AddTorsor.lean Modified Mathlib/Analysis/Normed/Group/Basic.lean - theorem Int.abs_le_floor_nnreal_iff - theorem Int.norm_cast_rat - theorem Int.norm_cast_real - theorem Int.norm_eq_abs - theorem Int.norm_natCast - theorem NNReal.natCast_natAbs - theorem Rat.norm_cast_real - theorem Submodule.coe_norm - theorem Submodule.norm_coe - theorem nnnorm_zpow_le_mul_norm - theorem norm_zpow_le_mul_norm Modified Mathlib/Analysis/Normed/Group/CocompactMap.lean Modified Mathlib/Analysis/Normed/Group/Hom.lean Added Mathlib/Analysis/Normed/Group/Int.lean + theorem Int.abs_le_floor_nnreal_iff + theorem Int.norm_cast_real + theorem Int.norm_eq_abs + theorem Int.norm_natCast + theorem NNReal.natCast_natAbs + theorem nnnorm_zpow_le_mul_norm + theorem norm_zpow_le_mul_norm Added Mathlib/Analysis/Normed/Group/Rat.lean + theorem Int.norm_cast_rat + theorem Rat.norm_cast_real Added Mathlib/Analysis/Normed/Group/Submodule.lean + theorem Submodule.coe_norm + theorem Submodule.norm_coe Modified Mathlib/Analysis/Normed/Order/Lattice.lean Modified Mathlib/Analysis/NormedSpace/LinearIsometry.lean Modified Mathlib/InformationTheory/Hamming.lean Modified Mathlib/MeasureTheory/Constructions/BorelSpace/Basic.lean Modified Mathlib/MeasureTheory/Constructions/BorelSpace/Metric.lean Modified Mathlib/MeasureTheory/Integral/Lebesgue.lean 2024-06-23 05:04:34 92377b4 chore(AlgebraicGeometry/OpenImmersion): resolve some outdated porting note (#14037) ESTIMATED CHANGES Modified Mathlib/Geometry/RingedSpace/OpenImmersion.lean 2024-06-23 01:13:07 8ca3141 feat(ContinuousFunctionalCalculus): add lemmas about the CFC applied to finite sums (#13842) ESTIMATED CHANGES Modified Mathlib/Topology/ContinuousFunction/ContinuousMapZero.lean + def ContinuousMapZero.coeFnAddMonoidHom + theorem ContinuousMapZero.coe_sum Modified Mathlib/Topology/ContinuousFunction/FunctionalCalculus.lean + theorem cfc_apply_pi + theorem cfc_sum + theorem cfc_sum_univ Modified Mathlib/Topology/ContinuousFunction/NonUnitalFunctionalCalculus.lean + theorem cfcₙ_apply_pi + theorem cfcₙ_sum + theorem cfcₙ_sum_univ 2024-06-22 19:24:47 6186745 chore(LinearAlgebra/TensorProduct/Tower): remove superfluous porting notes (#13987) ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/TensorProduct/Tower.lean 2024-06-22 19:24:46 78e28c0 feat(SimpleGraph/Clique): maps of cliques (#12820) We add some API for cliques in maps of graphs. ESTIMATED CHANGES Modified Mathlib/Combinatorics/SimpleGraph/Clique.lean + theorem SimpleGraph.IsClique.of_subsingleton + theorem SimpleGraph.cliqueFree_map_iff + theorem SimpleGraph.isClique_map_finset_iff + theorem SimpleGraph.isClique_map_finset_iff_of_nontrivial + theorem SimpleGraph.isClique_map_iff + theorem SimpleGraph.isClique_map_iff_of_nontrivial + theorem SimpleGraph.isClique_map_image_iff + theorem SimpleGraph.isNClique_map_iff 2024-06-22 19:13:46 2985a84 feat: forward direction of Turán's theorem (#11990) Part of #9317. ESTIMATED CHANGES Modified Mathlib/Combinatorics/SimpleGraph/Turan.lean + theorem SimpleGraph.IsTuranMaximal.card_parts + theorem SimpleGraph.IsTuranMaximal.card_parts_le + theorem SimpleGraph.IsTuranMaximal.degree_eq_card_sub_part_card + theorem SimpleGraph.IsTuranMaximal.degree_eq_of_not_adj + theorem SimpleGraph.IsTuranMaximal.equivalence_not_adj + def SimpleGraph.IsTuranMaximal.finpartition + theorem SimpleGraph.IsTuranMaximal.isEquipartition + theorem SimpleGraph.IsTuranMaximal.nonempty_iso_turanGraph + theorem SimpleGraph.IsTuranMaximal.not_adj_iff_part_eq + theorem SimpleGraph.IsTuranMaximal.not_adj_trans + def SimpleGraph.IsTuranMaximal.setoid + theorem SimpleGraph.exists_isTuranMaximal Modified Mathlib/Order/Partition/Finpartition.lean +/- theorem Finpartition.mem_part + theorem Finpartition.mem_part_iff_part_eq_part + theorem Finpartition.part_eq_of_mem +/- theorem Finpartition.part_mem 2024-06-22 15:35:57 e4a15fb refactor(AlgebraicGeometry) Add notation `Γ(X, U)`. (#14025) ESTIMATED CHANGES Modified Mathlib/AlgebraicGeometry/AffineScheme.lean +/- theorem AlgebraicGeometry.IsAffineOpen.basicOpen_basicOpen_is_basicOpen +/- theorem AlgebraicGeometry.IsAffineOpen.basicOpen_union_eq_self_iff +/- theorem AlgebraicGeometry.IsAffineOpen.fromSpec_image_top +/- theorem AlgebraicGeometry.IsAffineOpen.isLocalization_stalk' + theorem AlgebraicGeometry.IsAffineOpen.opensRange_fromSpec +/- theorem AlgebraicGeometry.IsAffineOpen.self_le_basicOpen_union_iff +/- theorem AlgebraicGeometry.IsAffineOpen.ιOpens_preimage Modified Mathlib/AlgebraicGeometry/GammaSpecAdjunction.lean + theorem AlgebraicGeometry.ΓSpec.adjunction_counit_app' + theorem AlgebraicGeometry.ΓSpec.adjunction_unit_app_Spec + theorem AlgebraicGeometry.ΓSpec.adjunction_unit_map_basicOpen + theorem AlgebraicGeometry.ΓSpec.toOpen_unit_app_val_c_app' + theorem AlgebraicGeometry.ΓSpec.toOpen_unit_app_val_c_app Modified Mathlib/AlgebraicGeometry/OpenImmersion.lean Modified Mathlib/AlgebraicGeometry/Properties.lean +/- theorem AlgebraicGeometry.eq_zero_of_basicOpen_eq_bot +/- theorem AlgebraicGeometry.isIntegral_of_isAffine_of_isDomain +/- theorem AlgebraicGeometry.isReduced_of_isAffine_isReduced +/- theorem AlgebraicGeometry.isReduced_of_isReduced_stalk +/- theorem AlgebraicGeometry.map_injective_of_isIntegral +/- theorem AlgebraicGeometry.reduce_to_affine_global Modified Mathlib/AlgebraicGeometry/Restrict.lean +/- theorem AlgebraicGeometry.Scheme.map_basicOpen' +/- theorem AlgebraicGeometry.Scheme.map_basicOpen +/- theorem AlgebraicGeometry.Scheme.map_basicOpen_map +/- def AlgebraicGeometry.Scheme.restrictIsoOfEq +/- def AlgebraicGeometry.Scheme.restrictRestrict +/- def AlgebraicGeometry.Scheme.restrictRestrictComm +/- theorem AlgebraicGeometry.Scheme.restrictRestrict_hom_restrict +/- theorem AlgebraicGeometry.Scheme.restrictRestrict_inv_restrict_restrict +/- def AlgebraicGeometry.morphismRestrictRestrictBasicOpen Modified Mathlib/AlgebraicGeometry/Scheme.lean + theorem AlgebraicGeometry.Scheme.Spec_map_appLE + theorem AlgebraicGeometry.Scheme.Spec_map_base + theorem AlgebraicGeometry.Scheme.Spec_map_c_app + theorem AlgebraicGeometry.Scheme.Spec_obj_carrier + theorem AlgebraicGeometry.Scheme.Spec_obj_presheaf + theorem AlgebraicGeometry.Scheme.Spec_obj_sheaf + def AlgebraicGeometry.Scheme.SpecΓIdentity +/- def AlgebraicGeometry.Scheme.basicOpen +/- theorem AlgebraicGeometry.Scheme.basicOpen_of_isUnit +/- theorem AlgebraicGeometry.Scheme.basicOpen_restrict +/- theorem AlgebraicGeometry.Scheme.basicOpen_zero + theorem AlgebraicGeometry.Scheme.eqToHom_c_app +/- theorem AlgebraicGeometry.Scheme.id_app +/- theorem AlgebraicGeometry.Scheme.inv_val_c_app +/- theorem AlgebraicGeometry.Scheme.mem_basicOpen_top' +/- theorem AlgebraicGeometry.Scheme.mem_basicOpen_top +/- theorem AlgebraicGeometry.Scheme.preimage_basicOpen +/- theorem AlgebraicGeometry.Scheme.Γ_obj_op +/- theorem AlgebraicGeometry.basicOpen_eq_of_affine' Modified Mathlib/AlgebraicGeometry/Spec.lean + def AlgebraicGeometry.LocallyRingedSpace.SpecΓIdentity - def AlgebraicGeometry.SpecΓIdentity 2024-06-22 13:56:49 5c1bf5e chore(AlgebraicGeometry): Fix wrong names (#14021) `PrimeSpectrum.IsPrime` -> `PrimeSpectrum.isPrime` `PrimeSpectrum.vanishingIdeal_univ` -> `PrimeSpectrum.vanishingIdeal_empty` `isAffineAffineScheme` -> `isAffine_affineScheme` `SpecIsAffine` -> `isAffine_Spec` `isAffineOfIso` -> `isAffine_of_isIso` `rangeIsAffineOpenOfOpenImmersion` -> `isAffineOpen_opensRange` `topIsAffineOpen` -> `isAffineOpen_top` `Scheme.affineCoverIsAffine` -> `Scheme.isAffine_affineCover` `Scheme.affineBasisCoverIsAffine` -> `Scheme.isAffine_affineBasisCover` `IsAffineOpen.fromSpec_range` -> `IsAffineOpen.range_fromSpec` `IsAffineOpen.imageIsOpenImmersion` -> `IsAffineOpen.image_of_isOpenImmersion` `Scheme.quasi_compact_of_affine` -> `Scheme.compactSpace_of_isAffine` `IsAffineOpen.fromSpec_base_preimage` -> `IsAffineOpen.fromSpec_preimage_self` `IsAffineOpen.fromSpec_map_basicOpen'` -> `IsAffineOpen.fromSpec_preimage_basicOpen'` `IsAffineOpen.fromSpec_map_basicOpen` -> `IsAffineOpen.fromSpec_preimage_basicOpen` `IsAffineOpen.opensFunctor_map_basicOpen` -> `IsAffineOpen.fromSpec_image_basicOpen` `IsAffineOpen.basicOpenIsAffine` -> `IsAffineOpen.basicOpen` `IsAffineOpen.mapRestrictBasicOpen` -> `IsAffineOpen.ιOpens_preimage` `AffineTargetMorphismProperty.IsLocal.targetAffineLocallyIsLocal` -> `AffineTargetMorphismProperty.IsLocal.targetAffineLocally_isLocal` `AffineTargetMorphismProperty.IsLocal.targetAffineLocallyPullbackFstOfRightOfStableUnderBaseChange` -> `AffineTargetMorphismProperty.IsLocal.targetAffineLocally_pullback_fst_of_right_of_stableUnderBaseChange` `diagonalTargetAffineLocallyOfOpenCover` -> `diagonal_targetAffineLocally_of_openCover` `AffineTargetMorphismProperty.diagonalOfTargetAffineLocally` -> `AffineTargetMorphismProperty.diagonal_of_targetAffineLocally` `universallyIsLocalAtTarget` -> `universally_isLocalAtTarget` `universallyIsLocalAtTargetOfMorphismRestrict` -> `universally_isLocalAtTarget_of_morphismRestrict` `bot_isAffineOpen` -> `isAffineOpen_bot` `isOpenImmersion_is_local_at_target` -> `isOpenImmersion_isLocalAtTarget` `QuasiCompact.is_local_at_target` -> `QuasiCompact.isLocalAtTarget` `QuasiSeparated.is_local_at_target` -> `QuasiSeparated.isLocalAtTarget` `universallyClosed_is_local_at_target` -> `universallyClosed_isLocalAtTarget` `isReducedOfStalkIsReduced` -> `isReduced_of_isReduced_stalk` `stalk_isReduced_of_reduced` -> `isReduced_stalk_of_isReduced` `isReducedOfOpenImmersion` -> `isReduced_of_isOpenImmersion` `isReducedOfIsAffineIsReduced` -> `isReduced_of_isAffine_isReduced` `isReducedOfIsIntegral` -> `isReduced_of_isIntegral` `is_irreducible_of_isIntegral` -> `irreducibleSpace_of_isIntegral` `isIntegralOfIsIrreducibleIsReduced` -> `isIntegral_of_irreducibleSpace_of_isReduced` `isIntegral_iff_is_irreducible_and_isReduced` -> `isIntegral_iff_irreducibleSpace_and_isReduced` `isIntegralOfOpenImmersion` -> `isIntegral_of_isOpenImmersion` `isIntegralOfIsAffineIsDomain` -> `isIntegral_of_isAffine_of_isDomain` ESTIMATED CHANGES Modified Mathlib/AlgebraicGeometry/AffineScheme.lean + theorem AlgebraicGeometry.IsAffineOpen.basicOpen - theorem AlgebraicGeometry.IsAffineOpen.basicOpenIsAffine - theorem AlgebraicGeometry.IsAffineOpen.fromSpec_base_preimage + theorem AlgebraicGeometry.IsAffineOpen.fromSpec_image_basicOpen - theorem AlgebraicGeometry.IsAffineOpen.fromSpec_map_basicOpen' - theorem AlgebraicGeometry.IsAffineOpen.fromSpec_map_basicOpen + theorem AlgebraicGeometry.IsAffineOpen.fromSpec_preimage_basicOpen' + theorem AlgebraicGeometry.IsAffineOpen.fromSpec_preimage_basicOpen + theorem AlgebraicGeometry.IsAffineOpen.fromSpec_preimage_self - theorem AlgebraicGeometry.IsAffineOpen.fromSpec_range - theorem AlgebraicGeometry.IsAffineOpen.imageIsOpenImmersion + theorem AlgebraicGeometry.IsAffineOpen.image_of_isOpenImmersion - theorem AlgebraicGeometry.IsAffineOpen.mapRestrictBasicOpen - theorem AlgebraicGeometry.IsAffineOpen.opensFunctor_map_basicOpen + theorem AlgebraicGeometry.IsAffineOpen.range_fromSpec + theorem AlgebraicGeometry.IsAffineOpen.ιOpens_preimage - theorem AlgebraicGeometry.isAffineOfIso + theorem AlgebraicGeometry.isAffineOpen_opensRange + theorem AlgebraicGeometry.isAffineOpen_top + theorem AlgebraicGeometry.isAffine_of_isIso - theorem AlgebraicGeometry.rangeIsAffineOpenOfOpenImmersion - theorem AlgebraicGeometry.topIsAffineOpen Modified Mathlib/AlgebraicGeometry/FunctionField.lean Modified Mathlib/AlgebraicGeometry/Limits.lean - theorem AlgebraicGeometry.bot_isAffineOpen + theorem AlgebraicGeometry.isAffineOpen_bot Modified Mathlib/AlgebraicGeometry/Morphisms/Basic.lean - theorem AlgebraicGeometry.AffineTargetMorphismProperty.IsLocal.targetAffineLocallyIsLocal - theorem AlgebraicGeometry.AffineTargetMorphismProperty.IsLocal.targetAffineLocallyPullbackFstOfRightOfStableUnderBaseChange + theorem AlgebraicGeometry.AffineTargetMorphismProperty.IsLocal.targetAffineLocally_isLocal + theorem AlgebraicGeometry.AffineTargetMorphismProperty.IsLocal.targetAffineLocally_pullback_fst_of_right_of_stableUnderBaseChange - theorem AlgebraicGeometry.AffineTargetMorphismProperty.diagonalOfTargetAffineLocally + theorem AlgebraicGeometry.AffineTargetMorphismProperty.diagonal_of_targetAffineLocally - theorem AlgebraicGeometry.diagonalTargetAffineLocallyOfOpenCover + theorem AlgebraicGeometry.diagonal_targetAffineLocally_of_openCover - theorem AlgebraicGeometry.universallyIsLocalAtTarget - theorem AlgebraicGeometry.universallyIsLocalAtTargetOfMorphismRestrict + theorem AlgebraicGeometry.universally_isLocalAtTarget + theorem AlgebraicGeometry.universally_isLocalAtTarget_of_morphismRestrict Modified Mathlib/AlgebraicGeometry/Morphisms/OpenImmersion.lean + theorem AlgebraicGeometry.isOpenImmersion_isLocalAtTarget - theorem AlgebraicGeometry.isOpenImmersion_is_local_at_target Modified Mathlib/AlgebraicGeometry/Morphisms/QuasiCompact.lean + theorem AlgebraicGeometry.QuasiCompact.isLocalAtTarget - theorem AlgebraicGeometry.QuasiCompact.is_local_at_target Modified Mathlib/AlgebraicGeometry/Morphisms/QuasiSeparated.lean + theorem AlgebraicGeometry.QuasiSeparated.isLocalAtTarget - theorem AlgebraicGeometry.QuasiSeparated.is_local_at_target Modified Mathlib/AlgebraicGeometry/Morphisms/RingHomProperties.lean Modified Mathlib/AlgebraicGeometry/Morphisms/UniversallyClosed.lean + theorem AlgebraicGeometry.universallyClosed_isLocalAtTarget - theorem AlgebraicGeometry.universallyClosed_is_local_at_target Modified Mathlib/AlgebraicGeometry/PrimeSpectrum/Basic.lean + theorem PrimeSpectrum.vanishingIdeal_empty - theorem PrimeSpectrum.vanishingIdeal_univ Modified Mathlib/AlgebraicGeometry/PrimeSpectrum/IsOpenComapC.lean Modified Mathlib/AlgebraicGeometry/ProjectiveSpectrum/Scheme.lean Modified Mathlib/AlgebraicGeometry/Properties.lean - theorem AlgebraicGeometry.isIntegralOfIsAffineIsDomain - theorem AlgebraicGeometry.isIntegralOfIsIrreducibleIsReduced - theorem AlgebraicGeometry.isIntegralOfOpenImmersion + theorem AlgebraicGeometry.isIntegral_iff_irreducibleSpace_and_isReduced - theorem AlgebraicGeometry.isIntegral_iff_is_irreducible_and_isReduced + theorem AlgebraicGeometry.isIntegral_of_irreducibleSpace_of_isReduced + theorem AlgebraicGeometry.isIntegral_of_isAffine_of_isDomain + theorem AlgebraicGeometry.isIntegral_of_isOpenImmersion - theorem AlgebraicGeometry.isReducedOfIsAffineIsReduced - theorem AlgebraicGeometry.isReducedOfOpenImmersion - theorem AlgebraicGeometry.isReducedOfStalkIsReduced + theorem AlgebraicGeometry.isReduced_of_isAffine_isReduced + theorem AlgebraicGeometry.isReduced_of_isOpenImmersion + theorem AlgebraicGeometry.isReduced_of_isReduced_stalk Modified Mathlib/AlgebraicGeometry/Pullbacks.lean Modified Mathlib/AlgebraicGeometry/StructureSheaf.lean Modified Mathlib/RingTheory/DedekindDomain/Ideal.lean 2024-06-22 12:48:31 e19c07e feat(MeasureTheory/Function/ConditionalExpectation): relax `integral_condexp` assumption and add `integral_condexp_indicator` (#13932) Remove the `Integrable` assumption of `integral_condexp` and add the total probability law using `condexp` as conditional probability. ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Function/ConditionalExpectation/Basic.lean +/- theorem MeasureTheory.integral_condexp + theorem MeasureTheory.integral_condexp_indicator Modified Mathlib/MeasureTheory/Function/ConditionalExpectation/Real.lean 2024-06-22 09:56:28 eb89176 feat(*): add lemmas about `(_ : UniformSpace _) = ⊥` (#13481) ESTIMATED CHANGES Modified Mathlib/Analysis/Normed/Group/Basic.lean + theorem DiscreteTopology.of_forall_le_norm' Modified Mathlib/Topology/MetricSpace/PseudoMetric.lean + theorem DiscreteTopology.of_forall_le_dist Modified Mathlib/Topology/UniformSpace/Basic.lean + theorem UniformSpace.uniformSpace_eq_bot 2024-06-22 09:37:04 ca53aab feat: unramified, smooth, etale are stable under base change (#14020) ESTIMATED CHANGES Modified Mathlib/RingTheory/Etale/Basic.lean +/- theorem Algebra.Etale.comp Modified Mathlib/RingTheory/Smooth/Basic.lean +/- theorem Algebra.Smooth.comp Modified Mathlib/RingTheory/Unramified/Basic.lean +/- theorem Algebra.Unramified.comp 2024-06-22 09:09:18 ab0de47 feat(NumberTheory/SiegelsLemma): Siegel's lemma for small integral non-trivial solutions of linear systems (#13487) This PR contains the proof of [Siegel's Lemma](https://en.wikipedia.org/wiki/Siegel%27s_lemma). This is a fundamental tool in diophantine approximation and transcendency and says that there exists a "small" integral non-zero solution of a non-trivial underdetermined system of linear equations with integer coefficients. theorem `exists_ne_zero_int_vec_norm_le`: Given a non-singular `m × n` matrix `A` with `m < n` the linear system it determines has a non-zero integer solution `t` with `‖t‖ ≤ ((n * ‖A‖) ^ ((m : ℝ) / (n - m)))` [Zulip thread](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/Siegel's.20Lemma) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/NumberTheory/SiegelsLemma.lean + theorem Int.Matrix.exists_ne_zero_int_vec_norm_le + theorem Int.Matrix.one_le_norm_A_of_ne_zero Modified docs/references.bib 2024-06-21 21:56:38 23725d3 chore: deprecate AlgEquiv.map_* lemmas (#14005) These are redundant. ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/Equiv.lean - theorem AlgEquiv.map_finsupp_prod - theorem AlgEquiv.map_finsupp_sum - theorem AlgEquiv.map_prod - theorem AlgEquiv.map_smul Modified Mathlib/Algebra/Algebra/Operations.lean Modified Mathlib/Algebra/MvPolynomial/Equiv.lean Modified Mathlib/Algebra/MvPolynomial/Funext.lean Modified Mathlib/FieldTheory/AbelRuffini.lean Modified Mathlib/FieldTheory/Adjoin.lean Modified Mathlib/FieldTheory/KummerExtension.lean Modified Mathlib/LinearAlgebra/CliffordAlgebra/Equivs.lean Modified Mathlib/LinearAlgebra/Matrix/Charpoly/Basic.lean Modified Mathlib/LinearAlgebra/Matrix/Charpoly/Coeff.lean Modified Mathlib/LinearAlgebra/Matrix/Charpoly/FiniteField.lean Modified Mathlib/LinearAlgebra/Matrix/Reindex.lean Modified Mathlib/NumberTheory/FunctionField.lean Modified Mathlib/RingTheory/Localization/Basic.lean Modified Mathlib/RingTheory/PowerBasis.lean Modified Mathlib/RingTheory/RootsOfUnity/Basic.lean 2024-06-21 18:31:03 b732d17 feat: more matrix lemmas about `37 : Matrix n n R` etc (#13976) This extends the lemmas about `zero` and `one` in this file to lemmas about `ofNat`, `natCast`, and `intCast`. ESTIMATED CHANGES Modified Mathlib/Data/Matrix/Basic.lean + theorem Matrix.conjTranspose_eq_diagonal + theorem Matrix.conjTranspose_eq_intCast + theorem Matrix.conjTranspose_eq_natCast + theorem Matrix.conjTranspose_eq_ofNat + theorem Matrix.conjTranspose_intCast + theorem Matrix.conjTranspose_natCast + theorem Matrix.conjTranspose_ofNat + theorem Matrix.transpose_eq_diagonal + theorem Matrix.transpose_eq_intCast + theorem Matrix.transpose_eq_natCast + theorem Matrix.transpose_eq_ofNat + theorem Matrix.transpose_intCast + theorem Matrix.transpose_natCast + theorem Matrix.transpose_ofNat +/- theorem Matrix.transpose_one +/- theorem Matrix.transpose_zero 2024-06-21 17:41:59 2176d73 chore: add `IsRegular.mul` (#14010) This matches `IsLeftRegular.mul` and `IsRightRegular.mul`, and was already inside another proof. ESTIMATED CHANGES Modified Mathlib/Algebra/Regular/Basic.lean + theorem IsRegular.mul 2024-06-21 12:03:49 0be623a feat: Define the regulator of a number field (#12504) This PR defines the regulator of a number field `K` as the covolume of its `unitLattice K`. Basic results about the regulator are proved including the fact that it is equal to the absolute value of the matrix with entries `mult w * Real.log w (fundSystem K i)` where `fundSystem K` is the fundamental system of units and `w` runs through all the infinite places of `K` but one. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Ring/NegOnePow.lean + theorem Int.abs_negOnePow Modified Mathlib/GroupTheory/Perm/Sign.lean + theorem Equiv.Perm.sign_abs Modified Mathlib/NumberTheory/NumberField/Units/Basic.lean Modified Mathlib/NumberTheory/NumberField/Units/DirichletTheorem.lean + theorem NumberField.Units.dirichletUnitTheorem.fundSystem_mk - def NumberField.Units.dirichletUnitTheorem.logEmbedding + def NumberField.Units.dirichletUnitTheorem.logEmbeddingEquiv + theorem NumberField.Units.dirichletUnitTheorem.logEmbeddingEquiv_apply + def NumberField.Units.dirichletUnitTheorem.logEmbeddingQuot + theorem NumberField.Units.dirichletUnitTheorem.logEmbeddingQuot_apply + theorem NumberField.Units.dirichletUnitTheorem.logEmbeddingQuot_injective - def NumberField.Units.dirichletUnitTheorem.unitLatticeEquiv + def NumberField.Units.logEmbedding Added Mathlib/NumberTheory/NumberField/Units/Regulator.lean + theorem NumberField.Units.abs_det_eq_abs_det + def NumberField.Units.regulator + theorem NumberField.Units.regulator_eq_det' + theorem NumberField.Units.regulator_eq_det + theorem NumberField.Units.regulator_ne_zero + theorem NumberField.Units.regulator_pos 2024-06-21 07:01:21 00d112f feat: rewrite file length check in Lean (#13620) This is the first in a series of PRs rewriting most checks from `lint-style.py` in Lean. This PR sets up the basic infrastructure and ports the check for files longer than 1500 lines. This includes parsing `style-exceptions.txt`. To enable a gradual conversion of the linters, this PR adds a new executable `lint_style` (which runs the rewritten linters), and has `lint-style.sh` call this one also. ESTIMATED CHANGES Modified .github/workflows/bors.yml Modified .github/workflows/build.yml Modified .github/workflows/build.yml.in Modified .github/workflows/build_fork.yml Modified Mathlib.lean Modified Mathlib/Tactic.lean Added Mathlib/Tactic/Linter/TextBased.lean + structure ErrorContext + def StyleError.errorCode + def StyleError.errorMessage + def StyleError.normalise + inductive StyleError + def checkFileLength + def formatErrors + def isImportsOnlyFile + def lintAllFiles + def lintFile + def main + def outputMessage + def parse?_errorContext + def parseStyleExceptions Modified lakefile.lean Modified scripts/lint-style.py Modified scripts/lint-style.sh Modified scripts/update-style-exceptions.sh 2024-06-21 01:35:17 2399abd chore: install elan in update dependencies CI (#14011) ESTIMATED CHANGES Modified .github/workflows/update_dependencies.yml 2024-06-20 19:07:48 19f8cc6 chore: move some lemmas to Analysis.Normed.Group.Uniform (#13945) From #13713. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Analysis/Normed/Field/Basic.lean Modified Mathlib/Analysis/Normed/Group/AddTorsor.lean Modified Mathlib/Analysis/Normed/Group/BallSphere.lean Modified Mathlib/Analysis/Normed/Group/Basic.lean - theorem AntilipschitzWith.le_mul_nnnorm' - theorem AntilipschitzWith.le_mul_norm' - theorem AntilipschitzWith.le_mul_norm_div - theorem AntilipschitzWith.mul_div_lipschitzWith - theorem AntilipschitzWith.mul_lipschitzWith - theorem Isometry.nnnorm_map_of_map_one - theorem Isometry.norm_map_of_map_one - theorem LipschitzOnWith.norm_div_le_of_le - theorem LipschitzWith.div - theorem LipschitzWith.mul' - theorem LipschitzWith.nnorm_le_mul' - theorem LipschitzWith.norm_div_le_of_le - theorem LipschitzWith.norm_le_mul' - theorem MonoidHomClass.antilipschitz_of_bound - theorem MonoidHomClass.continuous_of_bound - theorem MonoidHomClass.isometry_iff_norm - theorem MonoidHomClass.lipschitz_of_bound - theorem MonoidHomClass.lipschitz_of_bound_nnnorm - theorem MonoidHomClass.uniformContinuous_of_bound - theorem OneHomClass.bound_of_antilipschitz - theorem abs_dist_sub_le_dist_mul_mul - theorem antilipschitzWith_inv_iff - theorem cauchySeq_prod_of_eventually_eq - theorem dist_div_div_le - theorem dist_div_div_le_of_le - theorem dist_div_eq_dist_mul_left - theorem dist_div_eq_dist_mul_right - theorem dist_mul_mul_le - theorem dist_mul_mul_le_of_le - theorem dist_mul_self_left - theorem dist_mul_self_right - theorem dist_self_div_left - theorem dist_self_div_right - theorem dist_self_mul_left - theorem dist_self_mul_right - theorem edist_mul_mul_le - theorem lipschitzOnWith_iff_norm_div_le - theorem lipschitzOnWith_inv_iff - theorem lipschitzWith_iff_norm_div_le - theorem lipschitzWith_inv_iff - theorem lipschitzWith_one_nnnorm' - theorem lipschitzWith_one_norm' - theorem locallyLipschitz_inv_iff - theorem nndist_mul_mul_le - theorem uniformContinuous_nnnorm' - theorem uniformContinuous_norm' Modified Mathlib/Analysis/Normed/Group/Completeness.lean Modified Mathlib/Analysis/Normed/Group/Completion.lean Modified Mathlib/Analysis/Normed/Group/Hom.lean Modified Mathlib/Analysis/Normed/Group/InfiniteSum.lean Modified Mathlib/Analysis/Normed/Group/Lemmas.lean Modified Mathlib/Analysis/Normed/Group/Pointwise.lean Added Mathlib/Analysis/Normed/Group/Uniform.lean + theorem AntilipschitzWith.le_mul_nnnorm' + theorem AntilipschitzWith.le_mul_norm' + theorem AntilipschitzWith.le_mul_norm_div + theorem AntilipschitzWith.mul_div_lipschitzWith + theorem AntilipschitzWith.mul_lipschitzWith + theorem Isometry.nnnorm_map_of_map_one + theorem Isometry.norm_map_of_map_one + theorem LipschitzOnWith.norm_div_le_of_le + theorem LipschitzWith.div + theorem LipschitzWith.mul' + theorem LipschitzWith.nnorm_le_mul' + theorem LipschitzWith.norm_div_le_of_le + theorem LipschitzWith.norm_le_mul' + theorem MonoidHomClass.antilipschitz_of_bound + theorem MonoidHomClass.continuous_of_bound + theorem MonoidHomClass.isometry_iff_norm + theorem MonoidHomClass.lipschitz_of_bound + theorem MonoidHomClass.lipschitz_of_bound_nnnorm + theorem MonoidHomClass.uniformContinuous_of_bound + theorem OneHomClass.bound_of_antilipschitz + theorem abs_dist_sub_le_dist_mul_mul + theorem antilipschitzWith_inv_iff + theorem cauchySeq_prod_of_eventually_eq + theorem dist_div_div_le + theorem dist_div_div_le_of_le + theorem dist_div_eq_dist_mul_left + theorem dist_div_eq_dist_mul_right + theorem dist_mul_mul_le + theorem dist_mul_mul_le_of_le + theorem dist_mul_self_left + theorem dist_mul_self_right + theorem dist_self_div_left + theorem dist_self_div_right + theorem dist_self_mul_left + theorem dist_self_mul_right + theorem edist_mul_mul_le + theorem lipschitzOnWith_iff_norm_div_le + theorem lipschitzOnWith_inv_iff + theorem lipschitzWith_iff_norm_div_le + theorem lipschitzWith_inv_iff + theorem lipschitzWith_one_nnnorm' + theorem lipschitzWith_one_norm' + theorem locallyLipschitz_inv_iff + theorem nndist_mul_mul_le + theorem uniformContinuous_nnnorm' + theorem uniformContinuous_norm' Modified Mathlib/Analysis/Normed/Order/Lattice.lean Modified Mathlib/Analysis/NormedSpace/LinearIsometry.lean 2024-06-20 17:25:07 99cf093 feat: `0 < c * a * star c` in `StarOrderedRing`s (#13975) This is a prerequisite for showing when diagonal matrices are positive definite. Missed from #13748 ESTIMATED CHANGES Modified Mathlib/Algebra/Star/Order.lean + theorem conjugate_lt_conjugate' + theorem conjugate_lt_conjugate + theorem conjugate_pos' + theorem conjugate_pos 2024-06-20 16:11:53 d48b0c6 chore: drop porting notes about nonrec (#13767) ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/Equiv.lean + theorem AlgEquiv.map_finsupp_prod + theorem AlgEquiv.map_prod Modified Mathlib/LinearAlgebra/Span.lean + theorem Submodule.prod_mono 2024-06-20 16:01:24 97feccd chore: remove unnecessary @[simps] (#13980) This `@[simps]` is apparently unnecessary, and on a nightly generates lemmas that the linter doesn't like, so just remove it. ESTIMATED CHANGES Modified Mathlib/RepresentationTheory/GroupCohomology/LowDegree.lean 2024-06-20 13:50:21 e5ebb89 chore/perf(AlgebraGeometry): replace continuity -> fun_prop (#13993) ESTIMATED CHANGES Modified Mathlib/AlgebraicGeometry/AffineScheme.lean Modified Mathlib/AlgebraicGeometry/FunctionField.lean Modified Mathlib/AlgebraicGeometry/Gluing.lean Modified Mathlib/AlgebraicGeometry/Limits.lean Modified Mathlib/AlgebraicGeometry/Morphisms/QuasiCompact.lean Modified Mathlib/AlgebraicGeometry/Scheme.lean 2024-06-20 12:41:36 ee04fe4 chore: address some porting notes about unification (#13986) These few porting notes about weaker unification seem to be working reasonably. ESTIMATED CHANGES Modified Mathlib/Algebra/DirectLimit.lean Modified Mathlib/AlgebraicGeometry/OpenImmersion.lean Modified Mathlib/Topology/Bornology/Hom.lean 2024-06-20 12:08:01 a6fc8cb feat(Data/Matrix/RowCol): generalise the `Unique` indexing type in `Matrix.row` and `Matrix.col` (#11536) Changing `Matrix.row` and `Matrix.col` to use arbitrary `Unique` type for indexing the single column/row. ESTIMATED CHANGES Modified Mathlib/Analysis/Matrix.lean +/- theorem Matrix.frobenius_nnnorm_col +/- theorem Matrix.frobenius_nnnorm_row +/- theorem Matrix.frobenius_norm_col +/- theorem Matrix.frobenius_norm_row +/- theorem Matrix.linfty_opNNNorm_col +/- theorem Matrix.linfty_opNNNorm_row +/- theorem Matrix.linfty_opNorm_col +/- theorem Matrix.linfty_opNorm_row +/- theorem Matrix.nnnorm_col +/- theorem Matrix.nnnorm_row +/- theorem Matrix.norm_col +/- theorem Matrix.norm_row Modified Mathlib/Data/Matrix/Notation.lean +/- theorem Matrix.col_empty +/- theorem Matrix.row_cons +/- theorem Matrix.row_empty Modified Mathlib/Data/Matrix/RowCol.lean +/- def Matrix.col +/- theorem Matrix.col_add +/- theorem Matrix.col_apply +/- theorem Matrix.col_eq_zero +/- theorem Matrix.col_inj +/- theorem Matrix.col_injective +/- theorem Matrix.col_smul +/- theorem Matrix.col_zero +/- theorem Matrix.conjTranspose_col +/- theorem Matrix.conjTranspose_row +/- theorem Matrix.diag_col_mul_row +/- def Matrix.row +/- theorem Matrix.row_add +/- theorem Matrix.row_apply +/- theorem Matrix.row_eq_zero +/- theorem Matrix.row_inj +/- theorem Matrix.row_injective +/- theorem Matrix.row_smul +/- theorem Matrix.row_zero +/- theorem Matrix.transpose_col +/- theorem Matrix.transpose_row +/- theorem Matrix.vecMulVec_eq Modified Mathlib/LinearAlgebra/FreeModule/Finite/Matrix.lean Modified Mathlib/LinearAlgebra/Matrix/DotProduct.lean Modified Mathlib/LinearAlgebra/Matrix/SchurComplement.lean +/- theorem Matrix.det_add_col_mul_row +/- theorem Matrix.det_one_add_col_mul_row Modified Mathlib/LinearAlgebra/Matrix/Trace.lean +/- theorem Matrix.trace_col_mul_row Modified Mathlib/RingTheory/Trace.lean Modified Mathlib/Topology/Instances/Matrix.lean +/- theorem Continuous.matrix_col +/- theorem Continuous.matrix_row Modified test/matrix.lean 2024-06-20 11:13:44 2dec5ec fix: linter panics on export without argument (#13985) MWE: ```lean import Mathlib.Tactic.Linter.Lint export ``` This PR fixes the panic. ESTIMATED CHANGES Modified Mathlib/Tactic/Linter/Lint.lean 2024-06-20 10:39:58 b142583 chore(Algebra/Homology/ExactSequence): typo (#13958) ESTIMATED CHANGES Modified Mathlib/Algebra/Homology/ExactSequence.lean 2024-06-20 10:39:57 899eac5 docs(Ideal/QuotientOperations): remove an extra-star denoting a ring homomorphism (#13954) Correct the doc of `Ideal.quotientEquiv` removing a spurious star. ESTIMATED CHANGES Modified Mathlib/RingTheory/Ideal/QuotientOperations.lean 2024-06-20 09:54:47 c6b786e chore: remove unnecessary `nolint simpNF`s (#13982) This arose in the context of [this Zulip discussion](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/dsimpNF/near/445455876). See also * #13889 for a previous hand-made version; * #13970 for the automatic detection of unnecessary `nolint simpNF`s, (at least locally unnecessary). ESTIMATED CHANGES Modified Mathlib/Algebra/Free.lean Modified Mathlib/Algebra/Homology/Single.lean Modified Mathlib/Algebra/MvPolynomial/Supported.lean Modified Mathlib/Algebra/Order/Ring/WithTop.lean +/- theorem WithBot.bot_mul_bot +/- theorem WithTop.top_mul_top Modified Mathlib/Algebra/PUnitInstances.lean Modified Mathlib/Algebra/Polynomial/Degree/CardPowDegree.lean Modified Mathlib/Algebra/Ring/BooleanRing.lean Modified Mathlib/Algebra/Ring/CentroidHom.lean Modified Mathlib/Algebra/Star/Free.lean Modified Mathlib/Analysis/Matrix.lean Modified Mathlib/Analysis/Quaternion.lean Modified Mathlib/Analysis/SpecialFunctions/Complex/Circle.lean Modified Mathlib/Analysis/SpecialFunctions/Complex/Log.lean Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Deriv.lean Modified Mathlib/CategoryTheory/EqToHom.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Multiequalizer.lean Modified Mathlib/Data/Complex/Basic.lean Modified Mathlib/Data/Complex/Exponential.lean Modified Mathlib/Data/ENat/Basic.lean +/- theorem ENat.coe_mul Modified Mathlib/Data/Finset/Basic.lean +/- theorem Finset.insert_empty Modified Mathlib/Data/Finset/Image.lean Modified Mathlib/Data/Finset/NatAntidiagonal.lean Modified Mathlib/Data/Finsupp/Antidiagonal.lean Modified Mathlib/Data/List/Basic.lean Modified Mathlib/Data/Matrix/Basic.lean Modified Mathlib/Data/Matrix/Notation.lean Modified Mathlib/Data/Multiset/Basic.lean Modified Mathlib/Data/Multiset/FinsetOps.lean Modified Mathlib/Data/NNRat/Defs.lean +/- theorem NNRat.coe_natCast +/- theorem NNRat.coe_one +/- theorem NNRat.coe_pow +/- theorem NNRat.coe_zero Modified Mathlib/Data/Sum/Interval.lean Modified Mathlib/Data/Vector/Defs.lean Modified Mathlib/Data/Vector3.lean Modified Mathlib/GroupTheory/FreeAbelianGroup.lean Modified Mathlib/GroupTheory/MonoidLocalization.lean Modified Mathlib/GroupTheory/OrderOfElement.lean Modified Mathlib/GroupTheory/Perm/Fin.lean Modified Mathlib/LinearAlgebra/BilinearForm/TensorProduct.lean Modified Mathlib/LinearAlgebra/CrossProduct.lean Modified Mathlib/LinearAlgebra/Determinant.lean Modified Mathlib/LinearAlgebra/LinearPMap.lean Modified Mathlib/LinearAlgebra/TensorProduct/Graded/Internal.lean Modified Mathlib/MeasureTheory/Integral/CircleIntegral.lean Modified Mathlib/MeasureTheory/Integral/Periodic.lean Modified Mathlib/MeasureTheory/Measure/Stieltjes.lean Modified Mathlib/NumberTheory/KummerDedekind.lean Modified Mathlib/NumberTheory/ModularForms/CongruenceSubgroups.lean Modified Mathlib/RingTheory/LaurentSeries.lean Modified Mathlib/SetTheory/Ordinal/Basic.lean Modified Mathlib/Topology/Category/UniformSpace.lean Modified Mathlib/Topology/VectorBundle/Basic.lean 2024-06-20 09:54:46 590cd14 chore: remove porting note about adding `set_option linter.uppercaseLean3 false` (#13766) ESTIMATED CHANGES Modified Archive/Imo/Imo1998Q2.lean Modified Counterexamples/HomogeneousPrimeNotPrime.lean Modified Mathlib/Algebra/Category/Grp/Colimits.lean Modified Mathlib/Algebra/Category/Grp/EquivalenceGroupAddGroup.lean Modified Mathlib/Algebra/Category/ModuleCat/ChangeOfRings.lean Modified Mathlib/Algebra/Category/ModuleCat/Monoidal/Basic.lean Modified Mathlib/Algebra/Polynomial/GroupRingAction.lean Modified Mathlib/AlgebraicTopology/FundamentalGroupoid/Product.lean Modified Mathlib/Analysis/Calculus/BumpFunction/FiniteDimension.lean Modified Mathlib/Analysis/NormedSpace/MStructure.lean Modified Mathlib/CategoryTheory/Monad/Algebra.lean Modified Mathlib/Computability/DFA.lean Modified Mathlib/Computability/NFA.lean Modified Mathlib/Data/W/Cardinal.lean Modified Mathlib/Geometry/RingedSpace/OpenImmersion.lean Modified Mathlib/NumberTheory/ADEInequality.lean Modified Mathlib/SetTheory/ZFC/Basic.lean Modified Mathlib/Topology/Category/Compactum.lean Modified Mathlib/Topology/Category/TopCat/Limits/Basic.lean Modified Mathlib/Topology/Category/TopCat/Limits/Cofiltered.lean Modified Mathlib/Topology/Category/TopCat/Limits/Konig.lean Modified Mathlib/Topology/Category/TopCat/Limits/Products.lean Modified Mathlib/Topology/Category/TopCat/Limits/Pullbacks.lean Modified Mathlib/Topology/Homotopy/HSpaces.lean Modified Mathlib/Topology/Sheaves/Operations.lean Modified Mathlib/Topology/Sheaves/SheafCondition/Sites.lean 2024-06-20 09:12:19 e470560 feat(GroupTheory/GroupAction/Basic): orbit lemmas for product (#13580) Add a few basic lemmas about orbits in relation to the action of a monoid or group on `α × β` induced by its actions on `α` and `β`. From AperiodicMonotilesLean. ESTIMATED CHANGES Modified Mathlib/GroupTheory/GroupAction/Basic.lean + theorem MulAction.fst_mem_orbit_of_mem_orbit + theorem MulAction.orbitRel_le_fst + theorem MulAction.orbitRel_le_snd + theorem MulAction.snd_mem_orbit_of_mem_orbit 2024-06-20 07:22:13 7c80fcc chore: split RingTheory/Kaehler (#13978) Put materials about (Mv)Polynomial into Kaehler/Polynomial and the others into Kaehler/Basic ESTIMATED CHANGES Modified Mathlib.lean Renamed Mathlib/RingTheory/Kaehler.lean to Mathlib/RingTheory/Kaehler/Basic.lean - def KaehlerDifferential.mvPolynomialBasis - theorem KaehlerDifferential.mvPolynomialBasis_apply - theorem KaehlerDifferential.mvPolynomialBasis_repr_D - theorem KaehlerDifferential.mvPolynomialBasis_repr_D_X - theorem KaehlerDifferential.mvPolynomialBasis_repr_apply - theorem KaehlerDifferential.mvPolynomialBasis_repr_comp_D - theorem KaehlerDifferential.mvPolynomialBasis_repr_symm_single - def KaehlerDifferential.mvPolynomialEquiv - def KaehlerDifferential.polynomialEquiv - theorem KaehlerDifferential.polynomialEquiv_D - theorem KaehlerDifferential.polynomialEquiv_comp_D - theorem KaehlerDifferential.polynomialEquiv_symm - theorem KaehlerDifferential.polynomial_D_apply Added Mathlib/RingTheory/Kaehler/Polynomial.lean + def KaehlerDifferential.mvPolynomialBasis + theorem KaehlerDifferential.mvPolynomialBasis_apply + theorem KaehlerDifferential.mvPolynomialBasis_repr_D + theorem KaehlerDifferential.mvPolynomialBasis_repr_D_X + theorem KaehlerDifferential.mvPolynomialBasis_repr_apply + theorem KaehlerDifferential.mvPolynomialBasis_repr_comp_D + theorem KaehlerDifferential.mvPolynomialBasis_repr_symm_single + def KaehlerDifferential.mvPolynomialEquiv + def KaehlerDifferential.polynomialEquiv + theorem KaehlerDifferential.polynomialEquiv_D + theorem KaehlerDifferential.polynomialEquiv_comp_D + theorem KaehlerDifferential.polynomialEquiv_symm + theorem KaehlerDifferential.polynomial_D_apply Modified Mathlib/RingTheory/Unramified/Derivations.lean 2024-06-20 03:32:53 6e82bc0 feat(Order/Maximal): maximality/minimality with insertion/removal for sets (#13638) We add a lemma showing that if `P` is a downwards-closed predicate on sets, then `s` is maximal w.r.t. `P` iff `s` has property `P` but no proper insertion of `s` has property `P`. We also add the dual lemma for single removals and upwards-closed predicates. ESTIMATED CHANGES Modified Mathlib/Data/Finset/Lattice.lean + theorem Finset.mem_maximals_iff_forall_insert + theorem Finset.mem_minimals_iff_forall_erase Modified Mathlib/Order/Minimal.lean + theorem Set.mem_maximals_iff_forall_insert + theorem Set.mem_minimals_iff_forall_diff_singleton 2024-06-20 03:21:12 9ddf87e chore(CategoryTheory/Monoidal/Comon_): cleanup (#13316) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Monoidal/Comon_.lean +/- theorem Comon_.comul_assoc_flip 2024-06-20 02:11:25 2e6f6df chore: Rename to `Grp` (#3731) This is a proposal to rename what was in mathlib `Group` and in mathlib4 `GroupCat` to its literature name `Grp`. This has the advantage not to conflict with `group` that has been capitalised to `Group` and to be shorter. ESTIMATED CHANGES Modified Mathlib.lean Deleted Mathlib/Algebra/Category/GroupCat/EquivalenceGroupAddGroup.lean - def AddCommGroupCat.toCommGroupCat - def AddGroupCat.toGroupCat - def CommGroupCat.toAddCommGroupCat - def GroupCat.toAddGroupCat - def commGroupAddCommGroupEquivalence - def groupAddGroupEquivalence Renamed Mathlib/Algebra/Category/GroupCat/Abelian.lean to Mathlib/Algebra/Category/Grp/Abelian.lean - theorem AddCommGroupCat.exact_iff - def AddCommGroupCat.normalEpi - def AddCommGroupCat.normalMono + theorem AddCommGrp.exact_iff + def AddCommGrp.normalEpi + def AddCommGrp.normalMono Renamed Mathlib/Algebra/Category/GroupCat/Adjunctions.lean to Mathlib/Algebra/Category/Grp/Adjunctions.lean - def AddCommGroupCat.adj - def AddCommGroupCat.free - theorem AddCommGroupCat.free_map_coe - theorem AddCommGroupCat.free_obj_coe + def AddCommGrp.adj + def AddCommGrp.free + theorem AddCommGrp.free_map_coe + theorem AddCommGrp.free_obj_coe - def CommGroupCat.forget₂CommMonAdj + def CommGrp.forget₂CommMonAdj +/- def CommMonCat.units - def GroupCat.abelianize - def GroupCat.abelianizeAdj - def GroupCat.adj - def GroupCat.forget₂MonAdj - def GroupCat.free + def Grp.abelianize + def Grp.abelianizeAdj + def Grp.adj + def Grp.forget₂MonAdj + def Grp.free +/- def MonCat.units Renamed Mathlib/Algebra/Category/GroupCat/Basic.lean to Mathlib/Algebra/Category/Grp/Basic.lean - def AddCommGroupCat.asHom - theorem AddCommGroupCat.asHom_apply - theorem AddCommGroupCat.asHom_injective - theorem AddCommGroupCat.injective_of_mono - theorem AddCommGroupCat.int_hom_ext + def AddCommGrp.asHom + theorem AddCommGrp.asHom_apply + theorem AddCommGrp.asHom_injective + theorem AddCommGrp.injective_of_mono + theorem AddCommGrp.int_hom_ext +/- def CategoryTheory.Aut.isoPerm +/- def CategoryTheory.Iso.commGroupIsoToMulEquiv +/- def CategoryTheory.Iso.groupIsoToMulEquiv - theorem CommGroupCat.coe_comp' - theorem CommGroupCat.coe_comp - theorem CommGroupCat.coe_id' - theorem CommGroupCat.coe_id - theorem CommGroupCat.coe_of - theorem CommGroupCat.comp_def - theorem CommGroupCat.ext - theorem CommGroupCat.forget_map - def CommGroupCat.of - def CommGroupCat.ofHom - theorem CommGroupCat.ofHom_apply - theorem CommGroupCat.one_apply - def CommGroupCat.uliftFunctor - def CommGroupCat + theorem CommGrp.coe_comp' + theorem CommGrp.coe_comp + theorem CommGrp.coe_id' + theorem CommGrp.coe_id + theorem CommGrp.coe_of + theorem CommGrp.comp_def + theorem CommGrp.ext + theorem CommGrp.forget_map + def CommGrp.of + def CommGrp.ofHom + theorem CommGrp.ofHom_apply + theorem CommGrp.one_apply + def CommGrp.uliftFunctor + def CommGrp - theorem GroupCat.coe_comp' - theorem GroupCat.coe_comp - theorem GroupCat.coe_id' - theorem GroupCat.coe_id - theorem GroupCat.coe_of - theorem GroupCat.comp_def - theorem GroupCat.ext - theorem GroupCat.forget_map - def GroupCat.of - def GroupCat.ofHom - theorem GroupCat.ofHom_apply - theorem GroupCat.one_apply - def GroupCat.uliftFunctor - def GroupCat + theorem Grp.coe_comp' + theorem Grp.coe_comp + theorem Grp.coe_id' + theorem Grp.coe_id + theorem Grp.coe_of + theorem Grp.comp_def + theorem Grp.ext + theorem Grp.forget_map + def Grp.of + def Grp.ofHom + theorem Grp.ofHom_apply + theorem Grp.one_apply + def Grp.uliftFunctor + def Grp - theorem MonoidHom.comp_id_commGroupCat + theorem MonoidHom.comp_id_commGrp - theorem MonoidHom.comp_id_groupCat + theorem MonoidHom.comp_id_grp - theorem MonoidHom.id_commGroupCat_comp + theorem MonoidHom.id_commGrp_comp - theorem MonoidHom.id_groupCat_comp + theorem MonoidHom.id_grp_comp - def MulEquiv.toCommGroupCatIso + def MulEquiv.toCommGrpIso - def MulEquiv.toGroupCatIso + def MulEquiv.toGrpIso +/- def mulEquivIsoCommGroupIso +/- def mulEquivIsoGroupIso Renamed Mathlib/Algebra/Category/GroupCat/Biproducts.lean to Mathlib/Algebra/Category/Grp/Biproducts.lean - def AddCommGroupCat.HasLimit.lift - def AddCommGroupCat.HasLimit.productLimitCone - def AddCommGroupCat.binaryProductLimitCone - theorem AddCommGroupCat.binaryProductLimitCone_cone_π_app_left - theorem AddCommGroupCat.binaryProductLimitCone_cone_π_app_right - theorem AddCommGroupCat.biprodIsoProd_inv_comp_fst - theorem AddCommGroupCat.biprodIsoProd_inv_comp_snd - theorem AddCommGroupCat.biproductIsoPi_inv_comp_π + def AddCommGrp.HasLimit.lift + def AddCommGrp.HasLimit.productLimitCone + def AddCommGrp.binaryProductLimitCone + theorem AddCommGrp.binaryProductLimitCone_cone_π_app_left + theorem AddCommGrp.binaryProductLimitCone_cone_π_app_right + theorem AddCommGrp.biprodIsoProd_inv_comp_fst + theorem AddCommGrp.biprodIsoProd_inv_comp_snd + theorem AddCommGrp.biproductIsoPi_inv_comp_π Renamed Mathlib/Algebra/Category/GroupCat/Colimits.lean to Mathlib/Algebra/Category/Grp/Colimits.lean - def AddCommGroupCat.Colimits.ColimitType - inductive AddCommGroupCat.Colimits.Prequotient - inductive AddCommGroupCat.Colimits.Relation - def AddCommGroupCat.Colimits.coconeFun - def AddCommGroupCat.Colimits.coconeMorphism - theorem AddCommGroupCat.Colimits.cocone_naturality - theorem AddCommGroupCat.Colimits.cocone_naturality_components - def AddCommGroupCat.Colimits.colimit - def AddCommGroupCat.Colimits.colimitCocone - def AddCommGroupCat.Colimits.colimitCoconeIsColimit - def AddCommGroupCat.Colimits.colimitSetoid - def AddCommGroupCat.Colimits.descFun - def AddCommGroupCat.Colimits.descFunLift - def AddCommGroupCat.Colimits.descMorphism - theorem AddCommGroupCat.Colimits.quot_add - theorem AddCommGroupCat.Colimits.quot_neg - theorem AddCommGroupCat.Colimits.quot_zero - theorem AddCommGroupCat.hasColimit - theorem AddCommGroupCat.hasColimitsOfShape - theorem AddCommGroupCat.hasColimitsOfSize + def AddCommGrp.Colimits.ColimitType + inductive AddCommGrp.Colimits.Prequotient + inductive AddCommGrp.Colimits.Relation + def AddCommGrp.Colimits.coconeFun + def AddCommGrp.Colimits.coconeMorphism + theorem AddCommGrp.Colimits.cocone_naturality + theorem AddCommGrp.Colimits.cocone_naturality_components + def AddCommGrp.Colimits.colimit + def AddCommGrp.Colimits.colimitCocone + def AddCommGrp.Colimits.colimitCoconeIsColimit + def AddCommGrp.Colimits.colimitSetoid + def AddCommGrp.Colimits.descFun + def AddCommGrp.Colimits.descFunLift + def AddCommGrp.Colimits.descMorphism + theorem AddCommGrp.Colimits.quot_add + theorem AddCommGrp.Colimits.quot_neg + theorem AddCommGrp.Colimits.quot_zero + theorem AddCommGrp.hasColimit + theorem AddCommGrp.hasColimitsOfShape + theorem AddCommGrp.hasColimitsOfSize Renamed Mathlib/Algebra/Category/GroupCat/EnoughInjectives.lean to Mathlib/Algebra/Category/Grp/EnoughInjectives.lean Renamed Mathlib/Algebra/Category/GroupCat/EpiMono.lean to Mathlib/Algebra/Category/Grp/EpiMono.lean - theorem AddGroupCat.epi_iff_range_eq_top - theorem AddGroupCat.epi_iff_surjective + theorem AddGrp.epi_iff_range_eq_top + theorem AddGrp.epi_iff_surjective - theorem CommGroupCat.epi_iff_range_eq_top - theorem CommGroupCat.epi_iff_surjective - theorem CommGroupCat.ker_eq_bot_of_mono - theorem CommGroupCat.mono_iff_injective - theorem CommGroupCat.mono_iff_ker_eq_bot - theorem CommGroupCat.range_eq_top_of_epi + theorem CommGrp.epi_iff_range_eq_top + theorem CommGrp.epi_iff_surjective + theorem CommGrp.ker_eq_bot_of_mono + theorem CommGrp.mono_iff_injective + theorem CommGrp.mono_iff_ker_eq_bot + theorem CommGrp.range_eq_top_of_epi - inductive GroupCat.SurjectiveOfEpiAuxs.XWithInfinity - theorem GroupCat.SurjectiveOfEpiAuxs.agree - theorem GroupCat.SurjectiveOfEpiAuxs.comp_eq - theorem GroupCat.SurjectiveOfEpiAuxs.fromCoset_eq_of_mem_range - theorem GroupCat.SurjectiveOfEpiAuxs.fromCoset_ne_of_nin_range - def GroupCat.SurjectiveOfEpiAuxs.g - theorem GroupCat.SurjectiveOfEpiAuxs.g_apply_fromCoset - theorem GroupCat.SurjectiveOfEpiAuxs.g_apply_infinity - theorem GroupCat.SurjectiveOfEpiAuxs.g_ne_h - def GroupCat.SurjectiveOfEpiAuxs.h - theorem GroupCat.SurjectiveOfEpiAuxs.h_apply_fromCoset' - theorem GroupCat.SurjectiveOfEpiAuxs.h_apply_fromCoset - theorem GroupCat.SurjectiveOfEpiAuxs.h_apply_fromCoset_nin_range - theorem GroupCat.SurjectiveOfEpiAuxs.h_apply_infinity - theorem GroupCat.SurjectiveOfEpiAuxs.mul_smul - theorem GroupCat.SurjectiveOfEpiAuxs.one_smul - theorem GroupCat.SurjectiveOfEpiAuxs.τ_apply_fromCoset' - theorem GroupCat.SurjectiveOfEpiAuxs.τ_apply_fromCoset - theorem GroupCat.SurjectiveOfEpiAuxs.τ_apply_infinity - theorem GroupCat.SurjectiveOfEpiAuxs.τ_symm_apply_fromCoset - theorem GroupCat.SurjectiveOfEpiAuxs.τ_symm_apply_infinity - theorem GroupCat.epi_iff_range_eq_top - theorem GroupCat.epi_iff_surjective - theorem GroupCat.ker_eq_bot_of_mono - theorem GroupCat.mono_iff_injective - theorem GroupCat.mono_iff_ker_eq_bot - theorem GroupCat.surjective_of_epi + inductive Grp.SurjectiveOfEpiAuxs.XWithInfinity + theorem Grp.SurjectiveOfEpiAuxs.agree + theorem Grp.SurjectiveOfEpiAuxs.comp_eq + theorem Grp.SurjectiveOfEpiAuxs.fromCoset_eq_of_mem_range + theorem Grp.SurjectiveOfEpiAuxs.fromCoset_ne_of_nin_range + def Grp.SurjectiveOfEpiAuxs.g + theorem Grp.SurjectiveOfEpiAuxs.g_apply_fromCoset + theorem Grp.SurjectiveOfEpiAuxs.g_apply_infinity + theorem Grp.SurjectiveOfEpiAuxs.g_ne_h + def Grp.SurjectiveOfEpiAuxs.h + theorem Grp.SurjectiveOfEpiAuxs.h_apply_fromCoset' + theorem Grp.SurjectiveOfEpiAuxs.h_apply_fromCoset + theorem Grp.SurjectiveOfEpiAuxs.h_apply_fromCoset_nin_range + theorem Grp.SurjectiveOfEpiAuxs.h_apply_infinity + theorem Grp.SurjectiveOfEpiAuxs.mul_smul + theorem Grp.SurjectiveOfEpiAuxs.one_smul + theorem Grp.SurjectiveOfEpiAuxs.τ_apply_fromCoset' + theorem Grp.SurjectiveOfEpiAuxs.τ_apply_fromCoset + theorem Grp.SurjectiveOfEpiAuxs.τ_apply_infinity + theorem Grp.SurjectiveOfEpiAuxs.τ_symm_apply_fromCoset + theorem Grp.SurjectiveOfEpiAuxs.τ_symm_apply_infinity + theorem Grp.epi_iff_range_eq_top + theorem Grp.epi_iff_surjective + theorem Grp.ker_eq_bot_of_mono + theorem Grp.mono_iff_injective + theorem Grp.mono_iff_ker_eq_bot + theorem Grp.surjective_of_epi Added Mathlib/Algebra/Category/Grp/EquivalenceGroupAddGroup.lean + def AddCommGrp.toCommGrp + def AddGrp.toGrp + def CommGrp.toAddCommGrp + def Grp.toAddGrp + def commGroupAddCommGroupEquivalence + def groupAddGroupEquivalence Renamed Mathlib/Algebra/Category/GroupCat/FilteredColimits.lean to Mathlib/Algebra/Category/Grp/FilteredColimits.lean - def CommGroupCat.FilteredColimits.colimitCoconeIsColimit + def CommGrp.FilteredColimits.colimitCoconeIsColimit - theorem GroupCat.FilteredColimits.G.mk_eq - def GroupCat.FilteredColimits.colimitCoconeIsColimit - def GroupCat.FilteredColimits.colimitInvAux - theorem GroupCat.FilteredColimits.colimitInvAux_eq_of_rel - theorem GroupCat.FilteredColimits.colimit_inv_mk_eq + theorem Grp.FilteredColimits.G.mk_eq + def Grp.FilteredColimits.colimitCoconeIsColimit + def Grp.FilteredColimits.colimitInvAux + theorem Grp.FilteredColimits.colimitInvAux_eq_of_rel + theorem Grp.FilteredColimits.colimit_inv_mk_eq Renamed Mathlib/Algebra/Category/GroupCat/ForgetCorepresentable.lean to Mathlib/Algebra/Category/Grp/ForgetCorepresentable.lean - def AddCommGroupCat.coyonedaObjIsoForget + def AddCommGrp.coyonedaObjIsoForget - def AddGroupCat.coyonedaObjIsoForget + def AddGrp.coyonedaObjIsoForget - def CommGroupCat.coyonedaObjIsoForget + def CommGrp.coyonedaObjIsoForget - def GroupCat.coyonedaObjIsoForget + def Grp.coyonedaObjIsoForget Renamed Mathlib/Algebra/Category/GroupCat/Images.lean to Mathlib/Algebra/Category/Grp/Images.lean - def AddCommGroupCat.factorThruImage - theorem AddCommGroupCat.image.fac - theorem AddCommGroupCat.image.lift_fac - def AddCommGroupCat.image.ι - def AddCommGroupCat.image - def AddCommGroupCat.monoFactorisation + def AddCommGrp.factorThruImage + theorem AddCommGrp.image.fac + theorem AddCommGrp.image.lift_fac + def AddCommGrp.image.ι + def AddCommGrp.image + def AddCommGrp.monoFactorisation Renamed Mathlib/Algebra/Category/GroupCat/Injective.lean to Mathlib/Algebra/Category/Grp/Injective.lean - theorem AddCommGroupCat.injective_as_module_iff + theorem AddCommGrp.injective_as_module_iff Renamed Mathlib/Algebra/Category/GroupCat/Kernels.lean to Mathlib/Algebra/Category/Grp/Kernels.lean - def AddCommGroupCat.cokernelCocone - def AddCommGroupCat.cokernelIsColimit - def AddCommGroupCat.kernelCone - def AddCommGroupCat.kernelIsLimit + def AddCommGrp.cokernelCocone + def AddCommGrp.cokernelIsColimit + def AddCommGrp.kernelCone + def AddCommGrp.kernelIsLimit Renamed Mathlib/Algebra/Category/GroupCat/Limits.lean to Mathlib/Algebra/Category/Grp/Limits.lean - def AddCommGroupCat.kernelIsoKer - def AddCommGroupCat.kernelIsoKerOver - theorem AddCommGroupCat.kernelIsoKer_hom_comp_subtype - theorem AddCommGroupCat.kernelIsoKer_inv_comp_ι + def AddCommGrp.kernelIsoKer + def AddCommGrp.kernelIsoKerOver + theorem AddCommGrp.kernelIsoKer_hom_comp_subtype + theorem AddCommGrp.kernelIsoKer_inv_comp_ι - theorem CommGroupCat.hasLimit_iff_small_sections + theorem CommGrp.hasLimit_iff_small_sections - theorem GroupCat.hasLimit_iff_small_sections - def GroupCat.sectionsSubgroup - def GroupCat.sectionsπMonoidHom + theorem Grp.hasLimit_iff_small_sections + def Grp.sectionsSubgroup + def Grp.sectionsπMonoidHom Renamed Mathlib/Algebra/Category/GroupCat/Preadditive.lean to Mathlib/Algebra/Category/Grp/Preadditive.lean - theorem AddCommGroupCat.hom_add_apply + theorem AddCommGrp.hom_add_apply Renamed Mathlib/Algebra/Category/GroupCat/Subobject.lean to Mathlib/Algebra/Category/Grp/Subobject.lean Renamed Mathlib/Algebra/Category/GroupCat/ZModuleEquivalence.lean to Mathlib/Algebra/Category/Grp/ZModuleEquivalence.lean Renamed Mathlib/Algebra/Category/GroupCat/Zero.lean to Mathlib/Algebra/Category/Grp/Zero.lean - theorem CommGroupCat.isZero_of_subsingleton + theorem CommGrp.isZero_of_subsingleton - theorem GroupCat.isZero_of_subsingleton + theorem Grp.isZero_of_subsingleton Renamed Mathlib/Algebra/Category/GroupWithZeroCat.lean to Mathlib/Algebra/Category/GrpWithZero.lean - def GroupWithZeroCat.Iso.mk - theorem GroupWithZeroCat.coe_comp - theorem GroupWithZeroCat.coe_id - theorem GroupWithZeroCat.forget_map - def GroupWithZeroCat.of - def GroupWithZeroCat + def GrpWithZero.Iso.mk + theorem GrpWithZero.coe_comp + theorem GrpWithZero.coe_id + theorem GrpWithZero.forget_map + def GrpWithZero.of + def GrpWithZero Modified Mathlib/Algebra/Category/ModuleCat/Abelian.lean Modified Mathlib/Algebra/Category/ModuleCat/Basic.lean +/- def ModuleCat.mkOfSMul' +/- def ModuleCat.smul +/- def ModuleCat.smulNatTrans Modified Mathlib/Algebra/Category/ModuleCat/ChangeOfRings.lean Modified Mathlib/Algebra/Category/ModuleCat/Colimits.lean Modified Mathlib/Algebra/Category/ModuleCat/FilteredColimits.lean Modified Mathlib/Algebra/Category/ModuleCat/Injective.lean Modified Mathlib/Algebra/Category/ModuleCat/Limits.lean Modified Mathlib/Algebra/Category/ModuleCat/Presheaf.lean +/- def CorePresheafOfModules.presheaf +/- def PresheafOfModules.toPresheaf Modified Mathlib/Algebra/Category/ModuleCat/Presheaf/Colimits.lean Modified Mathlib/Algebra/Category/ModuleCat/Presheaf/Limits.lean Modified Mathlib/Algebra/Category/ModuleCat/Presheaf/Sheafification.lean Modified Mathlib/Algebra/Category/ModuleCat/Presheaf/Sheafify.lean Modified Mathlib/Algebra/Category/ModuleCat/Sheaf.lean +/- def SheafOfModules.toSheaf Modified Mathlib/Algebra/Category/ModuleCat/Sheaf/Abelian.lean Modified Mathlib/Algebra/Category/ModuleCat/Sheaf/Limits.lean Modified Mathlib/Algebra/Category/ModuleCat/Tannaka.lean Modified Mathlib/Algebra/Category/MonCat/Adjunctions.lean +/- def MonCat.adjoinOne +/- def MonCat.adjoinOneAdj Modified Mathlib/Algebra/Category/Ring/Basic.lean Modified Mathlib/Algebra/Category/Ring/FilteredColimits.lean Modified Mathlib/Algebra/Category/Ring/Limits.lean Renamed Mathlib/Algebra/Category/SemigroupCat/Basic.lean to Mathlib/Algebra/Category/Semigrp/Basic.lean - def CategoryTheory.Iso.semigroupCatIsoToMulEquiv + def CategoryTheory.Iso.semigrpIsoToMulEquiv - def MulEquiv.toSemigroupCatIso + def MulEquiv.toSemigrpIso - theorem SemigroupCat.coe_of - theorem SemigroupCat.mulEquiv_coe_eq - def SemigroupCat.of - def SemigroupCat.ofHom - theorem SemigroupCat.ofHom_apply - def SemigroupCat + theorem Semigrp.coe_of + theorem Semigrp.mulEquiv_coe_eq + def Semigrp.of + def Semigrp.ofHom + theorem Semigrp.ofHom_apply + def Semigrp - def mulEquivIsoSemigroupCatIso + def mulEquivIsoSemigrpIso Modified Mathlib/Algebra/HierarchyDesign.lean Modified Mathlib/Algebra/Homology/HomotopyCategory/HomComplex.lean +/- def CochainComplex.HomComplex Modified Mathlib/Algebra/Homology/LocalCohomology.lean Modified Mathlib/Algebra/Homology/ShortComplex/Ab.lean Modified Mathlib/Algebra/Homology/ShortComplex/ConcreteCategory.lean Modified Mathlib/Algebra/Module/CharacterModule.lean Deleted Mathlib/Analysis/Normed/Group/SemiNormedGroupCat.lean - theorem SemiNormedGroupCat.coe_comp - theorem SemiNormedGroupCat.coe_id - theorem SemiNormedGroupCat.coe_of - theorem SemiNormedGroupCat.ext - theorem SemiNormedGroupCat.isZero_of_subsingleton - theorem SemiNormedGroupCat.iso_isometry_of_normNoninc - def SemiNormedGroupCat.of - theorem SemiNormedGroupCat.zero_apply - def SemiNormedGroupCat - theorem SemiNormedGroupCat₁.coe_comp - theorem SemiNormedGroupCat₁.coe_id - theorem SemiNormedGroupCat₁.coe_of - theorem SemiNormedGroupCat₁.hom_ext - theorem SemiNormedGroupCat₁.isZero_of_subsingleton - theorem SemiNormedGroupCat₁.iso_isometry - def SemiNormedGroupCat₁.mkHom - theorem SemiNormedGroupCat₁.mkHom_apply - def SemiNormedGroupCat₁.mkIso - def SemiNormedGroupCat₁.of - theorem SemiNormedGroupCat₁.zero_apply - def SemiNormedGroupCat₁ Added Mathlib/Analysis/Normed/Group/SemiNormedGrp.lean + theorem SemiNormedGrp.coe_comp + theorem SemiNormedGrp.coe_id + theorem SemiNormedGrp.coe_of + theorem SemiNormedGrp.ext + theorem SemiNormedGrp.isZero_of_subsingleton + theorem SemiNormedGrp.iso_isometry_of_normNoninc + def SemiNormedGrp.of + theorem SemiNormedGrp.zero_apply + def SemiNormedGrp + theorem SemiNormedGrp₁.coe_comp + theorem SemiNormedGrp₁.coe_id + theorem SemiNormedGrp₁.coe_of + theorem SemiNormedGrp₁.hom_ext + theorem SemiNormedGrp₁.isZero_of_subsingleton + theorem SemiNormedGrp₁.iso_isometry + def SemiNormedGrp₁.mkHom + theorem SemiNormedGrp₁.mkHom_apply + def SemiNormedGrp₁.mkIso + def SemiNormedGrp₁.of + theorem SemiNormedGrp₁.zero_apply + def SemiNormedGrp₁ Renamed Mathlib/Analysis/Normed/Group/SemiNormedGroupCat/Completion.lean to Mathlib/Analysis/Normed/Group/SemiNormedGrp/Completion.lean - def SemiNormedGroupCat.completion.incl - def SemiNormedGroupCat.completion.lift - theorem SemiNormedGroupCat.completion.lift_comp_incl - theorem SemiNormedGroupCat.completion.lift_unique - def SemiNormedGroupCat.completion.mapHom - theorem SemiNormedGroupCat.completion.map_normNoninc - theorem SemiNormedGroupCat.completion.map_zero - theorem SemiNormedGroupCat.completion.norm_incl_eq - def SemiNormedGroupCat.completion + def SemiNormedGrp.completion.incl + def SemiNormedGrp.completion.lift + theorem SemiNormedGrp.completion.lift_comp_incl + theorem SemiNormedGrp.completion.lift_unique + def SemiNormedGrp.completion.mapHom + theorem SemiNormedGrp.completion.map_normNoninc + theorem SemiNormedGrp.completion.map_zero + theorem SemiNormedGrp.completion.norm_incl_eq + def SemiNormedGrp.completion Renamed Mathlib/Analysis/Normed/Group/SemiNormedGroupCat/Kernels.lean to Mathlib/Analysis/Normed/Group/SemiNormedGrp/Kernels.lean - theorem SemiNormedGroupCat.ExplicitCoker.map_desc - def SemiNormedGroupCat.cokernelCocone - def SemiNormedGroupCat.cokernelLift - theorem SemiNormedGroupCat.comp_explicitCokernelπ - def SemiNormedGroupCat.explicitCokernel - def SemiNormedGroupCat.explicitCokernelDesc - theorem SemiNormedGroupCat.explicitCokernelDesc_comp_eq_desc - theorem SemiNormedGroupCat.explicitCokernelDesc_comp_eq_zero - theorem SemiNormedGroupCat.explicitCokernelDesc_normNoninc - theorem SemiNormedGroupCat.explicitCokernelDesc_norm_le - theorem SemiNormedGroupCat.explicitCokernelDesc_norm_le_of_norm_le - theorem SemiNormedGroupCat.explicitCokernelDesc_unique - theorem SemiNormedGroupCat.explicitCokernelDesc_zero - def SemiNormedGroupCat.explicitCokernelIso - theorem SemiNormedGroupCat.explicitCokernelIso_hom_desc - theorem SemiNormedGroupCat.explicitCokernelIso_hom_π - theorem SemiNormedGroupCat.explicitCokernelIso_inv_π - theorem SemiNormedGroupCat.explicitCokernel_hom_ext - def SemiNormedGroupCat.explicitCokernelπ - theorem SemiNormedGroupCat.explicitCokernelπ_apply_dom_eq_zero - theorem SemiNormedGroupCat.explicitCokernelπ_desc - theorem SemiNormedGroupCat.explicitCokernelπ_desc_apply - theorem SemiNormedGroupCat.explicitCokernelπ_surjective - def SemiNormedGroupCat.fork - def SemiNormedGroupCat.isColimitCokernelCocone - theorem SemiNormedGroupCat.isQuotient_explicitCokernelπ - theorem SemiNormedGroupCat.normNoninc_explicitCokernelπ - def SemiNormedGroupCat₁.cokernelCocone - def SemiNormedGroupCat₁.cokernelLift + theorem SemiNormedGrp.ExplicitCoker.map_desc + def SemiNormedGrp.cokernelCocone + def SemiNormedGrp.cokernelLift + theorem SemiNormedGrp.comp_explicitCokernelπ + def SemiNormedGrp.explicitCokernel + def SemiNormedGrp.explicitCokernelDesc + theorem SemiNormedGrp.explicitCokernelDesc_comp_eq_desc + theorem SemiNormedGrp.explicitCokernelDesc_comp_eq_zero + theorem SemiNormedGrp.explicitCokernelDesc_normNoninc + theorem SemiNormedGrp.explicitCokernelDesc_norm_le + theorem SemiNormedGrp.explicitCokernelDesc_norm_le_of_norm_le + theorem SemiNormedGrp.explicitCokernelDesc_unique + theorem SemiNormedGrp.explicitCokernelDesc_zero + def SemiNormedGrp.explicitCokernelIso + theorem SemiNormedGrp.explicitCokernelIso_hom_desc + theorem SemiNormedGrp.explicitCokernelIso_hom_π + theorem SemiNormedGrp.explicitCokernelIso_inv_π + theorem SemiNormedGrp.explicitCokernel_hom_ext + def SemiNormedGrp.explicitCokernelπ + theorem SemiNormedGrp.explicitCokernelπ_apply_dom_eq_zero + theorem SemiNormedGrp.explicitCokernelπ_desc + theorem SemiNormedGrp.explicitCokernelπ_desc_apply + theorem SemiNormedGrp.explicitCokernelπ_surjective + def SemiNormedGrp.fork + def SemiNormedGrp.isColimitCokernelCocone + theorem SemiNormedGrp.isQuotient_explicitCokernelπ + theorem SemiNormedGrp.normNoninc_explicitCokernelπ + def SemiNormedGrp₁.cokernelCocone + def SemiNormedGrp₁.cokernelLift Modified Mathlib/CategoryTheory/Galois/Prorepresentability.lean Modified Mathlib/CategoryTheory/Linear/Yoneda.lean Modified Mathlib/CategoryTheory/Monoidal/Mon_.lean Modified Mathlib/CategoryTheory/Preadditive/Generator.lean Modified Mathlib/CategoryTheory/Preadditive/Yoneda/Basic.lean +/- def CategoryTheory.preadditiveCoyoneda +/- def CategoryTheory.preadditiveYoneda Modified Mathlib/CategoryTheory/Preadditive/Yoneda/Injective.lean Modified Mathlib/CategoryTheory/Preadditive/Yoneda/Projective.lean Modified Mathlib/CategoryTheory/Sites/NonabelianCohomology/H1.lean Modified Mathlib/Geometry/Manifold/Sheaf/Smooth.lean Modified Mathlib/RepresentationTheory/Action/Basic.lean +/- def Action.trivial +/- def Action.ρAut Modified Mathlib/RepresentationTheory/Action/Monoidal.lean Modified Mathlib/RepresentationTheory/Character.lean Modified Mathlib/RepresentationTheory/FdRep.lean Modified Mathlib/RepresentationTheory/Invariants.lean Modified Mathlib/Tactic/ToAdditive.lean Modified Mathlib/Topology/Sheaves/SheafCondition/UniqueGluing.lean Modified Mathlib/Topology/VectorBundle/Basic.lean Modified scripts/nolints.json 2024-06-19 20:15:55 4bf28bb chore: remove 'new lemma' comments (#13820) These are not actionable anymore (if they ever were). Fixes #10756. ESTIMATED CHANGES Modified Mathlib/Algebra/Category/GroupCat/Basic.lean Modified Mathlib/Algebra/Category/GroupWithZeroCat.lean Modified Mathlib/Algebra/Category/ModuleCat/Basic.lean Modified Mathlib/Algebra/Category/MonCat/Basic.lean Modified Mathlib/Algebra/Category/Ring/Basic.lean Modified Mathlib/Algebra/FreeMonoid/Basic.lean Modified Mathlib/Algebra/Group/Subgroup/Pointwise.lean Modified Mathlib/Algebra/Homology/HomotopyCategory.lean Modified Mathlib/Algebra/Polynomial/Basic.lean Modified Mathlib/Algebra/Polynomial/Derivative.lean Modified Mathlib/Algebra/Polynomial/Eval.lean Modified Mathlib/Algebra/Polynomial/Roots.lean Modified Mathlib/Algebra/Ring/Equiv.lean Modified Mathlib/Algebra/Ring/Subring/Basic.lean Modified Mathlib/Algebra/Star/Basic.lean Modified Mathlib/AlgebraicTopology/SimplicialSet.lean Modified Mathlib/Analysis/Calculus/BumpFunction/Basic.lean Modified Mathlib/Analysis/Calculus/ContDiff/Defs.lean Modified Mathlib/Analysis/Calculus/Deriv/Add.lean Modified Mathlib/Analysis/Calculus/FormalMultilinearSeries.lean Modified Mathlib/Analysis/Convex/Body.lean Modified Mathlib/Analysis/Matrix.lean Modified Mathlib/Analysis/Normed/Group/AddTorsor.lean Modified Mathlib/Analysis/Normed/Group/Quotient.lean Modified Mathlib/Analysis/NormedSpace/OperatorNorm/Bilinear.lean Modified Mathlib/Analysis/NormedSpace/PiLp.lean Modified Mathlib/Analysis/SpecialFunctions/Exp.lean Modified Mathlib/Analysis/SpecialFunctions/Log/Basic.lean Modified Mathlib/Analysis/SpecialFunctions/SmoothTransition.lean Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Basic.lean Modified Mathlib/CategoryTheory/Groupoid/Subgroupoid.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Multiequalizer.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Reflexive.lean Modified Mathlib/CategoryTheory/Types.lean Modified Mathlib/Data/ENNReal/Basic.lean Modified Mathlib/Data/ENNReal/Real.lean Modified Mathlib/Data/ENat/Basic.lean Modified Mathlib/Data/Fin/Tuple/Monotone.lean Modified Mathlib/Data/Fintype/Card.lean Modified Mathlib/Data/List/AList.lean Modified Mathlib/Data/List/Chain.lean Modified Mathlib/Data/List/Cycle.lean Modified Mathlib/Data/List/Indexes.lean Modified Mathlib/Data/List/Nodup.lean Modified Mathlib/Data/List/OfFn.lean Modified Mathlib/Data/List/Range.lean Modified Mathlib/Data/List/Rotate.lean Modified Mathlib/Data/List/Sigma.lean Modified Mathlib/Data/List/Sublists.lean Modified Mathlib/Data/List/ToFinsupp.lean Modified Mathlib/Data/Matrix/Basic.lean Modified Mathlib/Data/Multiset/Basic.lean Modified Mathlib/Data/Nat/Cast/Basic.lean Modified Mathlib/Data/Nat/Choose/Sum.lean Modified Mathlib/Data/Nat/PartENat.lean Modified Mathlib/Data/Part.lean Modified Mathlib/Data/Real/EReal.lean Modified Mathlib/Data/Real/Hyperreal.lean Modified Mathlib/Data/Seq/Seq.lean Modified Mathlib/Data/Set/Function.lean Modified Mathlib/Data/Set/Pointwise/SMul.lean Modified Mathlib/Data/Sign.lean Modified Mathlib/Data/Sym/Basic.lean Modified Mathlib/FieldTheory/PerfectClosure.lean Modified Mathlib/FieldTheory/PolynomialGaloisGroup.lean Modified Mathlib/Geometry/Manifold/Instances/Real.lean Modified Mathlib/GroupTheory/Perm/Support.lean Modified Mathlib/LinearAlgebra/AffineSpace/AffineMap.lean Modified Mathlib/LinearAlgebra/AffineSpace/Pointwise.lean Modified Mathlib/LinearAlgebra/PiTensorProduct.lean Modified Mathlib/Logic/Basic.lean Modified Mathlib/MeasureTheory/Integral/IntegralEqImproper.lean Modified Mathlib/MeasureTheory/Integral/IntervalIntegral.lean Modified Mathlib/MeasureTheory/MeasurableSpace/Basic.lean Modified Mathlib/NumberTheory/SumFourSquares.lean Modified Mathlib/Order/Bounds/Basic.lean Modified Mathlib/Order/ConditionallyCompleteLattice/Basic.lean Modified Mathlib/Order/Filter/Archimedean.lean Modified Mathlib/Order/Height.lean Modified Mathlib/Order/Minimal.lean Modified Mathlib/RingTheory/FractionalIdeal/Basic.lean Modified Mathlib/RingTheory/Ideal/Quotient.lean Modified Mathlib/RingTheory/Localization/Basic.lean Modified Mathlib/Topology/Algebra/Group/Basic.lean Modified Mathlib/Topology/Algebra/Monoid.lean Modified Mathlib/Topology/Algebra/Order/Compact.lean Modified Mathlib/Topology/Algebra/Order/Floor.lean Modified Mathlib/Topology/Basic.lean Modified Mathlib/Topology/Clopen.lean Modified Mathlib/Topology/Compactness/Compact.lean Modified Mathlib/Topology/Compactness/SigmaCompact.lean Modified Mathlib/Topology/Constructions.lean Modified Mathlib/Topology/ContinuousOn.lean Modified Mathlib/Topology/DiscreteQuotient.lean Modified Mathlib/Topology/EMetricSpace/Basic.lean Modified Mathlib/Topology/Inseparable.lean Modified Mathlib/Topology/Instances/ENNReal.lean Modified Mathlib/Topology/Irreducible.lean Modified Mathlib/Topology/LocallyConstant/Basic.lean Modified Mathlib/Topology/Maps.lean Modified Mathlib/Topology/MetricSpace/HausdorffDistance.lean Modified Mathlib/Topology/MetricSpace/PseudoMetric.lean Modified Mathlib/Topology/MetricSpace/Thickening.lean Modified Mathlib/Topology/Order/Basic.lean Modified Mathlib/Topology/Order/Hom/Basic.lean Modified Mathlib/Topology/Order/OrderClosed.lean Modified Mathlib/Topology/Order/ProjIcc.lean Modified Mathlib/Topology/Sets/Closeds.lean Modified Mathlib/Topology/Sets/Compacts.lean Modified Mathlib/Topology/Sets/Opens.lean Modified Mathlib/Topology/Sheaves/Presheaf.lean Modified Mathlib/Topology/UniformSpace/Basic.lean Modified Mathlib/Topology/UniformSpace/UniformConvergence.lean 2024-06-19 18:17:28 feba708 chore(CategoryTheory/Adjunction): dualize some of the API for reflective functors (#13948) ESTIMATED CHANGES Modified Mathlib/AlgebraicGeometry/AffineScheme.lean Modified Mathlib/CategoryTheory/Adjunction/FullyFaithful.lean + theorem CategoryTheory.Adjunction.mem_essImage_of_counit_isIso + theorem CategoryTheory.Adjunction.mem_essImage_of_unit_isIso Modified Mathlib/CategoryTheory/Adjunction/Reflective.lean + theorem CategoryTheory.Functor.essImage.counit_isIso + def CategoryTheory.Functor.fullyFaithfulOfCoreflective + def CategoryTheory.coreflector + def CategoryTheory.coreflectorAdjunction + theorem CategoryTheory.counit_obj_eq_map_counit + theorem CategoryTheory.mem_essImage_of_counit_isSplitEpi - theorem CategoryTheory.mem_essImage_of_unit_isIso 2024-06-19 15:38:58 1e77bed chore(AlgebraicGeometry/OpenImmersion): Move open covers to its own file. (#13942) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/AlgebraicGeometry/AffineScheme.lean Added Mathlib/AlgebraicGeometry/Cover/Open.lean + def AlgebraicGeometry.Scheme.AffineOpenCover.openCover + structure AlgebraicGeometry.Scheme.AffineOpenCover + def AlgebraicGeometry.Scheme.OpenCover.Hom.comp + def AlgebraicGeometry.Scheme.OpenCover.Hom.id + structure AlgebraicGeometry.Scheme.OpenCover.Hom + def AlgebraicGeometry.Scheme.OpenCover.add + def AlgebraicGeometry.Scheme.OpenCover.affineRefinement + def AlgebraicGeometry.Scheme.OpenCover.bind + theorem AlgebraicGeometry.Scheme.OpenCover.comp_app + theorem AlgebraicGeometry.Scheme.OpenCover.comp_idx_apply + theorem AlgebraicGeometry.Scheme.OpenCover.compactSpace + def AlgebraicGeometry.Scheme.OpenCover.copy + def AlgebraicGeometry.Scheme.OpenCover.finiteSubcover + def AlgebraicGeometry.Scheme.OpenCover.fromAffineRefinement + theorem AlgebraicGeometry.Scheme.OpenCover.iSup_opensRange + theorem AlgebraicGeometry.Scheme.OpenCover.iUnion_range + theorem AlgebraicGeometry.Scheme.OpenCover.id_app + theorem AlgebraicGeometry.Scheme.OpenCover.id_idx_apply + def AlgebraicGeometry.Scheme.OpenCover.inter + def AlgebraicGeometry.Scheme.OpenCover.pullbackCover' + def AlgebraicGeometry.Scheme.OpenCover.pullbackCover + def AlgebraicGeometry.Scheme.OpenCover.pushforwardIso + structure AlgebraicGeometry.Scheme.OpenCover + def AlgebraicGeometry.Scheme.affineBasisCover + def AlgebraicGeometry.Scheme.affineBasisCoverOfAffine + def AlgebraicGeometry.Scheme.affineBasisCoverRing + theorem AlgebraicGeometry.Scheme.affineBasisCover_is_basis + theorem AlgebraicGeometry.Scheme.affineBasisCover_map_range + theorem AlgebraicGeometry.Scheme.affineBasisCover_obj + def AlgebraicGeometry.Scheme.affineCover + def AlgebraicGeometry.Scheme.affineOpenCover + def AlgebraicGeometry.Scheme.openCoverOfIsIso + def AlgebraicGeometry.Scheme.openCoverOfSuprEqTop + theorem AlgebraicGeometry.Scheme.openCover_affineOpenCover Modified Mathlib/AlgebraicGeometry/Gluing.lean Modified Mathlib/AlgebraicGeometry/OpenImmersion.lean - def AlgebraicGeometry.Scheme.AffineOpenCover.openCover - structure AlgebraicGeometry.Scheme.AffineOpenCover +/- def AlgebraicGeometry.Scheme.Hom.opensRange - def AlgebraicGeometry.Scheme.OpenCover.Hom.comp - def AlgebraicGeometry.Scheme.OpenCover.Hom.id - structure AlgebraicGeometry.Scheme.OpenCover.Hom - def AlgebraicGeometry.Scheme.OpenCover.add - def AlgebraicGeometry.Scheme.OpenCover.affineRefinement - def AlgebraicGeometry.Scheme.OpenCover.bind - theorem AlgebraicGeometry.Scheme.OpenCover.comp_app - theorem AlgebraicGeometry.Scheme.OpenCover.comp_idx_apply - theorem AlgebraicGeometry.Scheme.OpenCover.compactSpace - def AlgebraicGeometry.Scheme.OpenCover.copy - def AlgebraicGeometry.Scheme.OpenCover.finiteSubcover - def AlgebraicGeometry.Scheme.OpenCover.fromAffineRefinement - theorem AlgebraicGeometry.Scheme.OpenCover.iSup_opensRange - theorem AlgebraicGeometry.Scheme.OpenCover.iUnion_range - theorem AlgebraicGeometry.Scheme.OpenCover.id_app - theorem AlgebraicGeometry.Scheme.OpenCover.id_idx_apply - def AlgebraicGeometry.Scheme.OpenCover.inter - def AlgebraicGeometry.Scheme.OpenCover.pullbackCover' - def AlgebraicGeometry.Scheme.OpenCover.pullbackCover - def AlgebraicGeometry.Scheme.OpenCover.pushforwardIso - structure AlgebraicGeometry.Scheme.OpenCover - def AlgebraicGeometry.Scheme.affineBasisCover - def AlgebraicGeometry.Scheme.affineBasisCoverOfAffine - def AlgebraicGeometry.Scheme.affineBasisCoverRing - theorem AlgebraicGeometry.Scheme.affineBasisCover_is_basis - theorem AlgebraicGeometry.Scheme.affineBasisCover_map_range - theorem AlgebraicGeometry.Scheme.affineBasisCover_obj - def AlgebraicGeometry.Scheme.affineCover - def AlgebraicGeometry.Scheme.affineOpenCover + theorem AlgebraicGeometry.Scheme.exists_affine_mem_range_and_range_subset - def AlgebraicGeometry.Scheme.openCoverOfIsIso - def AlgebraicGeometry.Scheme.openCoverOfSuprEqTop - theorem AlgebraicGeometry.Scheme.openCover_affineOpenCover Modified Mathlib/AlgebraicGeometry/Scheme.lean Modified Mathlib/Geometry/RingedSpace/OpenImmersion.lean 2024-06-19 15:38:57 4dcf21f refactor(Topology/Category): add CompHausLike.Basic (#13904) This is the first part of the refactor of `CompHaus` and friends (adding the new API which will eventually be used to redefine the categories of compact Hausdorff spaces, see #12930) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Topology/Category/CompHausLike/Basic.lean + theorem CompHausLike.coe_comp + theorem CompHausLike.coe_id + theorem CompHausLike.coe_of + def CompHausLike.compHausLikeToTop + theorem CompHausLike.epi_of_surjective + def CompHausLike.fullyFaithfulCompHausLikeToTop + def CompHausLike.fullyFaithfulToCompHausLike + def CompHausLike.homeoOfIso + theorem CompHausLike.isClosedMap + theorem CompHausLike.isIso_of_bijective + def CompHausLike.isoEquivHomeo + def CompHausLike.isoOfHomeo + theorem CompHausLike.mono_iff_injective + def CompHausLike.of + def CompHausLike.toCompHausLike + structure CompHausLike 2024-06-19 15:28:37 38f6b3f feat(AlgebraicGeometry/ProjectiveSpectrum/Scheme): add the instance `IsLocalization` (#13933) If `x` is a point in the basic open set `D(f)` where `f` is a homogeneous element of positive degree, then the homogeneously localized ring `A⁰ₓ` has the universal property of the localization of `A⁰_f` at `φ(x)` where `φ : Proj|D(f) ⟶ Spec A⁰_f` is the morphism of locally ringed space constructed as above. ESTIMATED CHANGES Modified Mathlib/AlgebraicGeometry/ProjectiveSpectrum/Scheme.lean + theorem AlgebraicGeometry.ProjectiveSpectrum.Proj.isLocalization_atPrime 2024-06-19 14:17:23 9f09963 chore: remove @[simp] from List.join (#13888) Unnecessary, and unhelpful. ESTIMATED CHANGES Modified Mathlib/Data/List/Join.lean 2024-06-19 13:47:55 63b99ca feat: `f⁻¹` is continuous iff `f` is (#13951) ... and similar results for lipschitzness. From LeanCamCombi ESTIMATED CHANGES Modified Mathlib/Analysis/Normed/Group/Basic.lean - theorem LipschitzWith.inv + theorem antilipschitzWith_inv_iff + theorem lipschitzOnWith_inv_iff + theorem lipschitzWith_inv_iff + theorem locallyLipschitz_inv_iff Modified Mathlib/Topology/Algebra/Group/Basic.lean + theorem continuousAt_inv_iff + theorem continuousOn_inv_iff + theorem continuous_inv_iff 2024-06-19 12:59:15 c59e595 chore: replace `continuity` by `fun_prop`, easy cases (#13880) Inspired by #12661: let's start with some easy instances, so we can focus on the difficult ones. In particular, this PR does not depend on any in-progress bugfixes, not tries to change a default value `by continuity` to `by fun_prop`. I am not at all confident about the tagging of lemmas with fun_prop: I remember this being subtle, but can't find any documentation on this. @lecopivo Can you advise on these lemmas (or simply link to the right documentation if I just overlooked it)? ESTIMATED CHANGES Modified Mathlib/Topology/CompactOpen.lean Modified Mathlib/Topology/Connected/PathConnected.lean Modified Mathlib/Topology/Constructions.lean +/- theorem Continuous.quotient_map' Modified Mathlib/Topology/ContinuousFunction/Polynomial.lean Modified Mathlib/Topology/Gluing.lean Modified Mathlib/Topology/Homotopy/HSpaces.lean Modified Mathlib/Topology/Homotopy/HomotopyGroup.lean Modified Mathlib/Topology/MetricSpace/Algebra.lean Modified Mathlib/Topology/MetricSpace/Completion.lean Modified Mathlib/Topology/Order.lean Modified Mathlib/Topology/SeparatedMap.lean Modified Mathlib/Topology/UniformSpace/Completion.lean Modified Mathlib/Topology/UnitInterval.lean +/- theorem unitInterval.continuous_symm 2024-06-19 11:58:05 435827a chore: reduce use of `mono` in favour of `gcongr` (#13881) ... as was discussed on zulip the other day; I cannot find the link quickly. After this PR, a handful of uses remain which are harder to remove: [this branch](https://github.com/leanprover-community/mathlib4/compare/MR-mono-gcongr) comments them all ESTIMATED CHANGES Modified Mathlib/Algebra/ContinuedFractions/Computation/Approximations.lean Modified Mathlib/Algebra/Lie/Nilpotent.lean Modified Mathlib/Algebra/Lie/Normalizer.lean Modified Mathlib/Analysis/Calculus/FDeriv/Extend.lean Modified Mathlib/Analysis/Convex/Hull.lean Modified Mathlib/Analysis/NormedSpace/AddTorsorBases.lean Modified Mathlib/Analysis/SpecificLimits/Normed.lean Modified Mathlib/Data/Nat/Totient.lean Modified Mathlib/Dynamics/Circle/RotationNumber/TranslationNumber.lean Modified Mathlib/NumberTheory/PellMatiyasevic.lean Modified Mathlib/Topology/MetricSpace/Algebra.lean Modified Mathlib/Topology/UniformSpace/Basic.lean 2024-06-19 11:32:52 b6c1b89 feat: add a few analytic function lemmas for future AnalyticManifold use (#13784) This is a few isolated lemmas split out of https://github.com/leanprover-community/mathlib4/pull/10853. 1. AnalyticAt.comp_of_eq 2. FormalMultilinearSeries.zero_radius 3. constFormalMultilinearSeries_zero ESTIMATED CHANGES Modified Mathlib/Analysis/Analytic/Basic.lean + theorem FormalMultilinearSeries.zero_radius Modified Mathlib/Analysis/Analytic/Composition.lean + theorem AnalyticAt.comp_of_eq Modified Mathlib/Analysis/Calculus/FormalMultilinearSeries.lean + theorem constFormalMultilinearSeries_zero 2024-06-19 11:32:50 1e61e06 feat: lint on isolated where and leading by (#13420) Extend the style linter with two tiny features: - lint on "isolated where": all occurrences were already fixed in #12991 and #13202. - lint on "leading by": if one line starts with `by ` but the previous line ends with `:=`, according to the style guide the `by` should move to the previous line. For now, we only lint if the `by` fits on the previous line (fixed in #13618 and predecessors): there about other 28 cases in mathlib which don't have an obvious fix. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Limits/Shapes/Products.lean Modified scripts/lint-style.py 2024-06-19 10:33:47 94b26e8 fix: correct InfoTree on the `set` tactic (#13913) Without this change, the infoview gives ``` Error updating: Error fetching goals: Rpc error: InternalError: unknown free variable '_fvar.231' ``` when you hover over the variable name ESTIMATED CHANGES Modified Mathlib/Tactic/Set.lean 2024-06-19 10:33:45 d398305 fix: support more parsers in `#help` (#12287) As [reported on Zulip](https://leanprover.zulipchat.com/#narrow/stream/113488-general/topic/missing.20doc.20of.20.60.23check_failure.60/near/434466058), the `#help` command is out of date with respect to the parsers that can be obscuring the search for the "first token", used to power the search-by-token-prefix form of the command `#help tactic "measur"`. The list below has been tested against everything in lean, and the only things that fail to find a first token now are those that actually don't have a token like the ident parser. ESTIMATED CHANGES Modified Mathlib/Tactic/HelpCmd.lean Modified Mathlib/Tactic/SlimCheck.lean Modified test/help_cmd.lean 2024-06-19 10:33:44 941891c feat: add `reduce_mod_char!` variant that searches through hypotheses (#11478) I won't have a lot of time to work on this PR until April, so please feel free to take it over before then. I initially wanted to use `synthInstance` rather than `findLocalDeclWithType?` but because `n` is not an outParam in `CharP R n`, the typeclass system won't work unless we know the value of `n` already. Perhaps `findLocalDeclWithType?` is cheap enough to make this part of standard `reduce_mod_char` behaviour. I'd like to profile our usecases to find out if indeed this holds when expressions become much more complicated. Zulip thread: https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/reduce_mod_char.20doesn't.20work ESTIMATED CHANGES Modified Mathlib/Tactic/ReduceModChar.lean Modified test/reduce_mod_char.lean + def ZMod' 2024-06-19 09:36:30 572940c chore: Split large file `MeasureTheory.MeasurableSpace.Basic` (#13937) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/MeasureTheory/MeasurableSpace/Basic.lean - theorem MeasurableEmbedding.comap_eq - theorem MeasurableEmbedding.comp - theorem MeasurableEmbedding.exists_measurable_extend - theorem MeasurableEmbedding.id - theorem MeasurableEmbedding.iff_comap_eq - theorem MeasurableEmbedding.measurableSet_image - theorem MeasurableEmbedding.measurableSet_preimage - theorem MeasurableEmbedding.measurableSet_range - theorem MeasurableEmbedding.measurable_comp_iff - theorem MeasurableEmbedding.measurable_extend - theorem MeasurableEmbedding.measurable_rangeSplitting - theorem MeasurableEmbedding.of_measurable_inverse - theorem MeasurableEmbedding.of_measurable_inverse_on_range - theorem MeasurableEmbedding.subtype_coe - structure MeasurableEmbedding - def MeasurableEquiv.Set.prod - def MeasurableEquiv.Set.rangeInl - def MeasurableEquiv.Set.rangeInr - def MeasurableEquiv.Set.singleton - def MeasurableEquiv.Set.univ - def MeasurableEquiv.Simps.apply - def MeasurableEquiv.Simps.symm_apply - theorem MeasurableEquiv.apply_symm_apply - theorem MeasurableEquiv.coe_mk - theorem MeasurableEquiv.coe_piCongrLeft - theorem MeasurableEquiv.coe_sumPiEquivProdPi - theorem MeasurableEquiv.coe_sumPiEquivProdPi_symm - theorem MeasurableEquiv.coe_toEquiv - theorem MeasurableEquiv.coe_toEquiv_symm - theorem MeasurableEquiv.coe_trans - theorem MeasurableEquiv.eq_image_iff_symm_image_eq - theorem MeasurableEquiv.ext - def MeasurableEquiv.finTwoArrow - def MeasurableEquiv.funUnique - theorem MeasurableEquiv.image_eq_preimage - theorem MeasurableEquiv.image_preimage - theorem MeasurableEquiv.image_symm - theorem MeasurableEquiv.map_eq - theorem MeasurableEquiv.measurableSet_image - theorem MeasurableEquiv.measurableSet_preimage - def MeasurableEquiv.ofInvolutive - theorem MeasurableEquiv.ofInvolutive_apply - theorem MeasurableEquiv.ofInvolutive_symm - def MeasurableEquiv.ofUniqueOfUnique - def MeasurableEquiv.piCongrLeft - theorem MeasurableEquiv.piCongrLeft_apply_apply - def MeasurableEquiv.piCongrRight - def MeasurableEquiv.piEquivPiSubtypeProd - def MeasurableEquiv.piFinSuccAbove - def MeasurableEquiv.piFinTwo - def MeasurableEquiv.piFinsetUnion - def MeasurableEquiv.piMeasurableEquivTProd - def MeasurableEquiv.piOptionEquivProd - def MeasurableEquiv.piUnique - theorem MeasurableEquiv.preimage_image - theorem MeasurableEquiv.preimage_symm - def MeasurableEquiv.prodAssoc - def MeasurableEquiv.prodComm - def MeasurableEquiv.prodCongr - def MeasurableEquiv.prodSumDistrib - def MeasurableEquiv.refl - theorem MeasurableEquiv.self_comp_symm - theorem MeasurableEquiv.self_trans_symm - def MeasurableEquiv.sumCompl - def MeasurableEquiv.sumCongr - def MeasurableEquiv.sumPiEquivProdPi - def MeasurableEquiv.sumProdDistrib - def MeasurableEquiv.sumProdSum - def MeasurableEquiv.symm - theorem MeasurableEquiv.symm_apply_apply - theorem MeasurableEquiv.symm_bijective - theorem MeasurableEquiv.symm_comp_self - theorem MeasurableEquiv.symm_mk - theorem MeasurableEquiv.symm_preimage_preimage - theorem MeasurableEquiv.symm_refl - theorem MeasurableEquiv.symm_symm - theorem MeasurableEquiv.symm_trans_self - theorem MeasurableEquiv.toEquiv_injective - def MeasurableEquiv.trans - def MeasurableEquiv.ulift.{u, - structure MeasurableEquiv - theorem MeasurableSet.exists_measurable_proj - theorem MeasurableSpace.comap_compl - theorem MeasurableSpace.comap_not Modified Mathlib/MeasureTheory/MeasurableSpace/CountablyGenerated.lean Added Mathlib/MeasureTheory/MeasurableSpace/Embedding.lean + theorem MeasurableEmbedding.comap_eq + theorem MeasurableEmbedding.comp + theorem MeasurableEmbedding.exists_measurable_extend + theorem MeasurableEmbedding.id + theorem MeasurableEmbedding.iff_comap_eq + theorem MeasurableEmbedding.measurableSet_image + theorem MeasurableEmbedding.measurableSet_preimage + theorem MeasurableEmbedding.measurableSet_range + theorem MeasurableEmbedding.measurable_comp_iff + theorem MeasurableEmbedding.measurable_extend + theorem MeasurableEmbedding.measurable_rangeSplitting + theorem MeasurableEmbedding.of_measurable_inverse + theorem MeasurableEmbedding.of_measurable_inverse_on_range + theorem MeasurableEmbedding.subtype_coe + structure MeasurableEmbedding + def MeasurableEquiv.Set.prod + def MeasurableEquiv.Set.rangeInl + def MeasurableEquiv.Set.rangeInr + def MeasurableEquiv.Set.singleton + def MeasurableEquiv.Set.univ + def MeasurableEquiv.Simps.apply + def MeasurableEquiv.Simps.symm_apply + theorem MeasurableEquiv.apply_symm_apply + theorem MeasurableEquiv.coe_mk + theorem MeasurableEquiv.coe_piCongrLeft + theorem MeasurableEquiv.coe_sumPiEquivProdPi + theorem MeasurableEquiv.coe_sumPiEquivProdPi_symm + theorem MeasurableEquiv.coe_toEquiv + theorem MeasurableEquiv.coe_toEquiv_symm + theorem MeasurableEquiv.coe_trans + theorem MeasurableEquiv.eq_image_iff_symm_image_eq + theorem MeasurableEquiv.ext + def MeasurableEquiv.finTwoArrow + def MeasurableEquiv.funUnique + theorem MeasurableEquiv.image_eq_preimage + theorem MeasurableEquiv.image_preimage + theorem MeasurableEquiv.image_symm + theorem MeasurableEquiv.map_eq + theorem MeasurableEquiv.measurableSet_image + theorem MeasurableEquiv.measurableSet_preimage + def MeasurableEquiv.ofInvolutive + theorem MeasurableEquiv.ofInvolutive_apply + theorem MeasurableEquiv.ofInvolutive_symm + def MeasurableEquiv.ofUniqueOfUnique + def MeasurableEquiv.piCongrLeft + theorem MeasurableEquiv.piCongrLeft_apply_apply + def MeasurableEquiv.piCongrRight + def MeasurableEquiv.piEquivPiSubtypeProd + def MeasurableEquiv.piFinSuccAbove + def MeasurableEquiv.piFinTwo + def MeasurableEquiv.piFinsetUnion + def MeasurableEquiv.piMeasurableEquivTProd + def MeasurableEquiv.piOptionEquivProd + def MeasurableEquiv.piUnique + theorem MeasurableEquiv.preimage_image + theorem MeasurableEquiv.preimage_symm + def MeasurableEquiv.prodAssoc + def MeasurableEquiv.prodComm + def MeasurableEquiv.prodCongr + def MeasurableEquiv.prodSumDistrib + def MeasurableEquiv.refl + theorem MeasurableEquiv.self_comp_symm + theorem MeasurableEquiv.self_trans_symm + def MeasurableEquiv.sumCompl + def MeasurableEquiv.sumCongr + def MeasurableEquiv.sumPiEquivProdPi + def MeasurableEquiv.sumProdDistrib + def MeasurableEquiv.sumProdSum + def MeasurableEquiv.symm + theorem MeasurableEquiv.symm_apply_apply + theorem MeasurableEquiv.symm_bijective + theorem MeasurableEquiv.symm_comp_self + theorem MeasurableEquiv.symm_mk + theorem MeasurableEquiv.symm_preimage_preimage + theorem MeasurableEquiv.symm_refl + theorem MeasurableEquiv.symm_symm + theorem MeasurableEquiv.symm_trans_self + theorem MeasurableEquiv.toEquiv_injective + def MeasurableEquiv.trans + def MeasurableEquiv.ulift.{u, + structure MeasurableEquiv + theorem MeasurableSet.exists_measurable_proj + theorem MeasurableSpace.comap_compl + theorem MeasurableSpace.comap_not Added Mathlib/MeasureTheory/MeasurableSpace/Instances.lean Modified Mathlib/MeasureTheory/Measure/MeasureSpace.lean Modified scripts/style-exceptions.txt 2024-06-19 09:36:29 ebcc078 chore(Topology): golf, move (#13935) Golf and move `Prod.instNeBotNhdsWithinIio` etc. ESTIMATED CHANGES Modified Mathlib/Topology/Bases.lean Modified Mathlib/Topology/Basic.lean + theorem nhdsWithin_mono Modified Mathlib/Topology/Constructions.lean Modified Mathlib/Topology/ContinuousOn.lean - theorem nhdsWithin_mono +/- theorem nhdsWithin_pi_eq' +/- theorem nhdsWithin_pi_eq +/- theorem nhdsWithin_pi_eq_bot +/- theorem nhdsWithin_pi_neBot +/- theorem nhdsWithin_pi_univ_eq 2024-06-19 09:36:28 c5d1651 doc(Analysis/Convex/Slope) : fix a typo, add docstrings (#13929) - Fix a typo in the docstrings (`[x, z]` instead of `[y, z]`). Happens multiple times in the file. - Add docstrings for `ConvexOn.secant_mono`, `StrictConvexOn.secant_strict_mono` and `StrictConcaveOn.secant_strict_mono`. - Remove a `show` tactic. It was added during the porting, but it seems that it is no longer needed. Happens twice. ESTIMATED CHANGES Modified Mathlib/Analysis/Convex/Slope.lean 2024-06-19 09:36:27 9b3f65a feat(Algebra/Polynomial/RingDivision): Add and simplify some lemmas (#13866) Add `natDegree_pos_of_monic_of_ne_one` lemma which has a rather simple proof, and deduce the other lemmas from that. ESTIMATED CHANGES Modified Mathlib/Algebra/Polynomial/Degree/Definitions.lean + theorem Polynomial.Monic.natDegree_eq_zero Modified Mathlib/Algebra/Polynomial/RingDivision.lean +/- theorem Polynomial.Monic.C_dvd_iff_isUnit + theorem Polynomial.Monic.degree_pos + theorem Polynomial.Monic.degree_pos_of_not_isUnit + theorem Polynomial.Monic.natDegree_pos + theorem Polynomial.Monic.natDegree_pos_of_not_isUnit - theorem Polynomial.degree_pos_of_monic_of_not_isUnit +/- theorem Polynomial.degree_pos_of_not_isUnit_of_dvd_monic - theorem Polynomial.natDegree_pos_of_monic_of_not_isUnit +/- theorem Polynomial.natDegree_pos_of_not_isUnit_of_dvd_monic Modified Mathlib/Algebra/Polynomial/Roots.lean Modified Mathlib/RingTheory/Polynomial/RationalRoot.lean + theorem exists_integer_of_is_root_of_monic 2024-06-19 09:36:26 65a2e4e feat(Data/Set/Function): extending bijectivity to supersets (#13692) the lemmas `exists_subset_bijOn` and similar show that for a function `f : α → β` and a set `t : Set β` contained in the range of `f`, we can choose a set `s` that `f` maps bijectively to `t`. We add a few lemmas stating that, under appropriate hypotheses, we can choose such an `s` to contain and/or be contained in prescribed sets in `α`. ESTIMATED CHANGES Modified Mathlib/Data/Set/Function.lean + theorem Set.BijOn.exists_extend + theorem Set.BijOn.exists_extend_of_subset + theorem Set.InjOn.exists_subset_injOn_subset_range_eq 2024-06-19 09:36:25 74ac0bf doc(Data/Fin/Tuple/Basic): Compare start/end/middle addition of an entry in module doc (#13567) Definitions around adding an entry to a `Fin`-indexed tuple are a mess. This PR documents the mess so that it's easier to fix in a later PR. ESTIMATED CHANGES Modified Mathlib/Data/Fin/Tuple/Basic.lean 2024-06-19 09:36:23 85915c8 feat(Data/Matrix/ColumnRowPartitioned): add two negation lemmas (#13520) add two negation lemmas which state that negating a matrix partitioned by rows/columns is equivalent to negating each row/column of the matrix ESTIMATED CHANGES Modified Mathlib/Data/Matrix/ColumnRowPartitioned.lean + theorem Matrix.fromColumns_neg + theorem Matrix.fromRows_neg 2024-06-19 09:36:22 46c501f chore(Algebra/Order/Monoid/Defs): remove unused instances (#13466) We do not need them in Lean4. ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Monoid/Defs.lean + theorem OrderedCancelCommMonoid.toContravariantClassRight + theorem OrderedCommMonoid.toCovariantClassRight 2024-06-19 09:36:21 d0bf6bb fix (RingTheory/HahnSeries/Multiplication) : rm defeq abuse in SMul instance (#13450) This PR replaces `y` with `((of R).symm y)` in 6 places, so that functions that take Hahn series are given Hahn series instead of Hahn modules (which are defeq). ESTIMATED CHANGES Modified Mathlib/RingTheory/HahnSeries/Multiplication.lean 2024-06-19 08:39:57 60fd11f feat: rewrite set_option style linter in lean (#12928) Unlike the Python version, this script also supports set_option tactics and terms, and we add a couple of tests. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Tactic.lean Modified Mathlib/Tactic/Linter.lean Added Mathlib/Tactic/Linter/Style.lean + def Mathlib.Linter.Style.SetOption.getLinterHash + def Mathlib.Linter.Style.SetOption.is_set_option + def Mathlib.Linter.Style.SetOption.parse_set_option + def Mathlib.Linter.Style.SetOption.setOptionLinter Modified scripts/lint-style.py Modified test/Explode.lean Modified test/LibrarySearch/IsCompact.lean Modified test/LibrarySearch/basic.lean Modified test/Recall.lean Modified test/delabLinearIndependent.lean Added test/lint_style.lean + theorem foo' + theorem tactic2 + theorem tactic3 + theorem tactic4 + theorem tactic Modified test/vec_notation.lean 2024-06-18 19:48:56 b84002d chore(RingTheory/WittVector/Basic): remove porting notes (#13927) Remove a couple uncategorised, superfluous porting notes. ESTIMATED CHANGES Modified Mathlib/RingTheory/WittVector/Basic.lean 2024-06-18 17:35:11 6f05744 feat: generalize Set.inv_mem_center (#13921) From #13034. ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Center.lean +/- theorem Set.div_mem_center +/- theorem Set.inv_mem_center +/- theorem Set.inv_mem_center₀ Modified Mathlib/Algebra/Ring/Subring/Basic.lean 2024-06-18 14:43:56 3683cd0 chore(CategoryTheory/Monoidal/Mon_): cleanup (#13310) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Monoidal/Mon_.lean - theorem Mon_.assoc_flip + theorem Mon_.mul_assoc_flip Modified Mathlib/CategoryTheory/Monoidal/NaturalTransformation.lean 2024-06-18 14:31:19 5759ae6 feat(AlgebraicGeometry/ProjectiveSpectrum/Scheme): calculate stalk of `toSpec` map (#13896) In this PR, we show the newly defined map of locally ringed space`toSpec` agree with the `ProjIsoSpecTopComponent.toSpec` and calculate the stalk map. ESTIMATED CHANGES Modified Mathlib/AlgebraicGeometry/ProjectiveSpectrum/Scheme.lean + theorem AlgebraicGeometry.ProjectiveSpectrum.Proj.mk_mem_toSpec_base_apply + theorem AlgebraicGeometry.ProjectiveSpectrum.Proj.toOpen_toSpec_val_c_app + theorem AlgebraicGeometry.ProjectiveSpectrum.Proj.toSpec_base_apply_eq + theorem AlgebraicGeometry.ProjectiveSpectrum.Proj.toSpec_base_apply_eq_comap + theorem AlgebraicGeometry.ProjectiveSpectrum.Proj.toSpec_preimage_basicOpen + theorem AlgebraicGeometry.ProjectiveSpectrum.Proj.toStalk_stalkMap_toSpec 2024-06-18 14:31:17 583e17a feat(Algebra/Category/CoalgebraCat): minor changes (#13315) It turns out @101damnations and I had independently written `CoalgebraCat`. She got in first, and I'm happy to use that version but want one more instance. ESTIMATED CHANGES Modified Mathlib/Algebra/Category/AlgebraCat/Basic.lean +/- def CategoryTheory.Iso.toAlgEquiv Modified Mathlib/Algebra/Category/CoalgebraCat/Basic.lean 2024-06-18 14:09:03 e5d1d71 feat(Monoidal/Types): simp lemmas about the associator in Type (#13136) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Monoidal/Types/Basic.lean + theorem CategoryTheory.associator_hom_apply_1 + theorem CategoryTheory.associator_hom_apply_2_1 + theorem CategoryTheory.associator_hom_apply_2_2 + theorem CategoryTheory.associator_inv_apply_1_1 + theorem CategoryTheory.associator_inv_apply_1_2 + theorem CategoryTheory.associator_inv_apply_2 2024-06-18 12:53:46 766e2c1 feat: Order-connected sets in `ℝⁿ` are null-measurable (#13633) Prove that the frontier of an order-connected set in `ℝⁿ` (with the `∞`-metric, but it doesn't actually matter) has measure zero. As a corollary, antichains in `ℝⁿ` have measure zero. This is not so trivial as one might think. The proof Kexing and I came up with involves the Lebesgue density theorem. Partially forward-port leanprover-community/mathlib#16976 ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/MeasureTheory/Order/UpperLower.lean + theorem IsAntichain.volume_eq_zero + theorem IsLowerSet.null_frontier + theorem IsUpperSet.null_frontier + theorem Set.OrdConnected.null_frontier 2024-06-18 12:22:19 05a03c3 feat(Topology/ContinuousFunction/CompactlySupported) bundle the class of compactly supported continuous functions (#12402) give definitions of the class of compactly supported continuous functions and prove basic properties. Motivation: This class is most natural for the domain of the Riesz-Markov-Kakutani theorem #12290 I copied [Mathlib.Topology.ContinuousFunction.ZeroAtInfty](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Topology/ContinuousFunction/ZeroAtInfty.html#ZeroAtInftyContinuousMap) and am trying to adapt it to compactly supported functions. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Topology/ContinuousFunction/CocompactMap.lean + theorem CocompactMap.isCompact_preimage_of_isClosed Modified Mathlib/Topology/ContinuousFunction/Compact.lean Added Mathlib/Topology/ContinuousFunction/CompactlySupported.lean + def CompactlySupportedContinuousMap.ContinuousMap.liftCompactlySupported + theorem CompactlySupportedContinuousMap.add_apply + def CompactlySupportedContinuousMap.coeFnMonoidHom + theorem CompactlySupportedContinuousMap.coe_add + theorem CompactlySupportedContinuousMap.coe_comp_to_continuous_fun + theorem CompactlySupportedContinuousMap.coe_copy + theorem CompactlySupportedContinuousMap.coe_mk + theorem CompactlySupportedContinuousMap.coe_mul + theorem CompactlySupportedContinuousMap.coe_neg + theorem CompactlySupportedContinuousMap.coe_smul + theorem CompactlySupportedContinuousMap.coe_smulc + theorem CompactlySupportedContinuousMap.coe_star + theorem CompactlySupportedContinuousMap.coe_sub + theorem CompactlySupportedContinuousMap.coe_sum + theorem CompactlySupportedContinuousMap.coe_toContinuousMap + theorem CompactlySupportedContinuousMap.coe_zero + def CompactlySupportedContinuousMap.comp + def CompactlySupportedContinuousMap.compAddMonoidHom + def CompactlySupportedContinuousMap.compLinearMap + def CompactlySupportedContinuousMap.compMulHom + def CompactlySupportedContinuousMap.compNonUnitalAlgHom + theorem CompactlySupportedContinuousMap.comp_assoc + theorem CompactlySupportedContinuousMap.comp_id + theorem CompactlySupportedContinuousMap.copy_eq + theorem CompactlySupportedContinuousMap.eq_of_empty + theorem CompactlySupportedContinuousMap.ext + theorem CompactlySupportedContinuousMap.mul_apply + theorem CompactlySupportedContinuousMap.neg_apply + theorem CompactlySupportedContinuousMap.smul_apply + theorem CompactlySupportedContinuousMap.smulc_apply + theorem CompactlySupportedContinuousMap.star_apply + theorem CompactlySupportedContinuousMap.sub_apply + theorem CompactlySupportedContinuousMap.sum_apply + theorem CompactlySupportedContinuousMap.zero_apply + theorem CompactlySupportedContinuousMap.zero_comp + structure CompactlySupportedContinuousMap + theorem CompactlySupportedContinuousMapClass.of_compactSpace + theorem CompactlySupportedContinuousMapClass.uniformContinuous Modified Mathlib/Topology/Support.lean + theorem HasCompactMulSupport.is_one_at_infty + theorem HasCompactMulSupport.of_compactSpace - theorem HasCompactSupport.smul_left' Modified Mathlib/Topology/UniformSpace/Compact.lean - theorem HasCompactMulSupport.is_one_at_infty 2024-06-18 10:48:34 aa2b733 fix: add missing instantiateMVars in split_ifs (#13916) Fixes the bug reported on zulip [here](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/split_ifs/near/445173774). ESTIMATED CHANGES Modified Mathlib/GroupTheory/Perm/Support.lean Modified Mathlib/NumberTheory/Padics/PadicNumbers.lean Modified Mathlib/Tactic/SplitIfs.lean Modified Mathlib/Topology/Sheaves/Skyscraper.lean Modified test/SplitIfs.lean 2024-06-18 08:57:33 9a21976 chore: fix update_dependencies.yml (#13920) ESTIMATED CHANGES Modified .github/workflows/update_dependencies.yml 2024-06-18 08:57:32 bb955cd chore(*): drop `bit*_mono` (#13914) ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Monoid/Canonical/Defs.lean Modified Mathlib/Algebra/Order/Monoid/Defs.lean - theorem bit0_pos Modified Mathlib/Algebra/Order/Monoid/Unbundled/Basic.lean - theorem bit0_mono - theorem bit0_strictMono Modified Mathlib/Algebra/Order/Ring/Defs.lean - theorem bit0_le_bit0 - theorem bit0_lt_bit0 - theorem bit1_le_bit1 - theorem bit1_lt_bit1 - theorem bit1_mono - theorem bit1_pos' - theorem bit1_pos - theorem one_le_bit1 - theorem one_lt_bit1 - theorem zero_le_bit0 - theorem zero_lt_bit0 Modified Mathlib/Data/Num/Prime.lean 2024-06-18 08:57:31 0fc7eca chore(Analysis/Normed/Group): Move boundedness lemmas (#13895) Split a new file `Analysis.Normed.Group.Bounded` off `Analysis.Normed.Group.Basic`. Basically no imports get shaved off in this PR, but it's preparing the way to #13713. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Analysis/Normed/Field/Basic.lean Modified Mathlib/Analysis/Normed/Group/Basic.lean - theorem Bornology.IsBounded.exists_pos_norm_le' - theorem Bornology.IsBounded.exists_pos_norm_lt' - theorem Continuous.bounded_above_of_compact_support - theorem Filter.HasBasis.cobounded_of_norm' - theorem Filter.Tendsto.op_one_isBoundedUnder_le' - theorem Filter.Tendsto.op_one_isBoundedUnder_le - theorem Filter.hasBasis_cobounded_norm' - theorem Filter.inv_cobounded - theorem Filter.tendsto_inv_cobounded - theorem HasCompactMulSupport.exists_bound_of_continuous - theorem HasCompactMulSupport.exists_pos_le_norm - theorem IsCompact.exists_bound_of_continuousOn' - theorem NormedCommGroup.cauchySeq_iff - theorem comap_norm_atTop' - theorem eventually_cobounded_le_norm' - theorem isBounded_iff_forall_norm_le' - theorem tendsto_norm_atTop_iff_cobounded' - theorem tendsto_norm_cobounded_atTop' - theorem tendsto_norm_cocompact_atTop' Added Mathlib/Analysis/Normed/Group/Bounded.lean + theorem Bornology.IsBounded.exists_pos_norm_le' + theorem Bornology.IsBounded.exists_pos_norm_lt' + theorem Continuous.bounded_above_of_compact_support + theorem Filter.HasBasis.cobounded_of_norm' + theorem Filter.Tendsto.op_one_isBoundedUnder_le' + theorem Filter.Tendsto.op_one_isBoundedUnder_le + theorem Filter.hasBasis_cobounded_norm' + theorem Filter.inv_cobounded + theorem Filter.tendsto_inv_cobounded + theorem HasCompactMulSupport.exists_bound_of_continuous + theorem HasCompactMulSupport.exists_pos_le_norm + theorem IsCompact.exists_bound_of_continuousOn' + theorem NormedCommGroup.cauchySeq_iff + theorem comap_norm_atTop' + theorem eventually_cobounded_le_norm' + theorem isBounded_iff_forall_norm_le' + theorem tendsto_norm_atTop_iff_cobounded' + theorem tendsto_norm_cobounded_atTop' + theorem tendsto_norm_cocompact_atTop' Modified Mathlib/Analysis/Normed/Group/Pointwise.lean 2024-06-18 08:57:29 72ae24b feat: `Irrational √q` iff `¬IsSquare q` for `Nat`/`Int`/`Rat` (#13867) This enables proofs like ```lean unseal Nat.sqrt.iter in example : Irrational √24 := by decide ``` This also deprecates the old `irrational_sqrt_rat_iff` in favor of the new `irrational_sqrt_ratCast_iff`, which is better-named and -stated. [Zulip](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/Why.20is.20proof.20the.20root.202.20is.20irrational.20so.20long.3F/near/444315500) motivation. ESTIMATED CHANGES Modified Mathlib/Data/Real/Irrational.lean + theorem Irrational.ne_ofNat + theorem irrational_sqrt_intCast_iff + theorem irrational_sqrt_intCast_iff_of_nonneg + theorem irrational_sqrt_natCast_iff + theorem irrational_sqrt_ofNat_iff + theorem irrational_sqrt_ratCast_iff + theorem irrational_sqrt_ratCast_iff_of_nonneg + theorem not_irrational_ofNat + theorem not_irrational_one + theorem not_irrational_zero 2024-06-18 08:57:28 c592474 refactor: change MvQPF to use bundled inheritance (#5452) There is a clear hierarchy of the type classes that apply to multivariate type functions `(F : TypeVec n -> Type)`. Namely, every `MvQPF` is a `LawfulMvFunctor` and every `LawfulMvFunctor` is a `MvFunctor`. This commit changes to use bundled inheritance (i.e., `extends`) for `MvQPF`, so that we don't have to repeat the `[MvFunctor F]` assumption every time we want `[MvQPF F]` ESTIMATED CHANGES Modified Mathlib/Data/QPF/Multivariate/Basic.lean +/- def MvQPF.ofEquiv Modified Mathlib/Data/QPF/Multivariate/Constructions/Cofix.lean +/- def MvQPF.Cofix Modified Mathlib/Data/QPF/Multivariate/Constructions/Comp.lean Modified Mathlib/Data/QPF/Multivariate/Constructions/Const.lean Modified Mathlib/Data/QPF/Multivariate/Constructions/Fix.lean +/- def MvQPF.Fix Modified Mathlib/Data/QPF/Multivariate/Constructions/Quot.lean Modified Mathlib/Data/QPF/Multivariate/Constructions/Sigma.lean Modified Mathlib/Data/QPF/Univariate/Basic.lean +/- def QPF.Cofix +/- def QPF.Fix 2024-06-18 08:07:41 79423dc feat(List): Miscellaneous lemmas (#13824) From LeanCamCombi ESTIMATED CHANGES Modified Mathlib/Data/List/Basic.lean + theorem List.cons_sublist_cons' + theorem List.getLast_filter Modified Mathlib/Data/List/Perm.lean + theorem List.subperm_cons_self 2024-06-18 06:24:15 edd8186 feat(FiberedCategory/Cartesian): define cartesian morphisms (#13393) We define cartesian morphisms with respect to a functor `p : 𝒳 ⥤ 𝒮`, as in SGA 1 VI 5.1. We also provide some basic API for working with the universal property. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/FiberedCategory/Cartesian.lean + theorem CategoryTheory.Functor.IsCartesian.eq_of_fac + theorem CategoryTheory.Functor.IsCartesian.fac + theorem CategoryTheory.Functor.IsCartesian.map_self + theorem CategoryTheory.Functor.IsCartesian.map_uniq Modified Mathlib/CategoryTheory/FiberedCategory/HomLift.lean + theorem CategoryTheory.IsHomLift.comp_lift_id_left' - theorem CategoryTheory.IsHomLift.comp_lift_id_left + theorem CategoryTheory.IsHomLift.comp_lift_id_right' - theorem CategoryTheory.IsHomLift.comp_lift_id_right 2024-06-18 04:39:50 27c6744 chore: delete duplicate `variable` (#13915) ESTIMATED CHANGES Modified Mathlib/Algebra/Regular/Basic.lean 2024-06-18 00:39:27 1db89cb feat: add definition of opposite of subsemirings, subrings, and subalgebras (#12846) similar to that in `Mathlib.Algebra.Group.Subgroup.MulOpposite` ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Algebra/Subalgebra/MulOpposite.lean + def Subalgebra.algEquivOpMop + theorem Subalgebra.le_op_iff + def Subalgebra.linearEquivOp + theorem Subalgebra.mem_op + theorem Subalgebra.mem_unop + def Subalgebra.mopAlgEquivOp + def Subalgebra.opEquiv + theorem Subalgebra.op_adjoin + theorem Subalgebra.op_bot + theorem Subalgebra.op_coe + theorem Subalgebra.op_iInf + theorem Subalgebra.op_iSup + theorem Subalgebra.op_inf + theorem Subalgebra.op_le_iff + theorem Subalgebra.op_le_op_iff + theorem Subalgebra.op_sInf + theorem Subalgebra.op_sSup + theorem Subalgebra.op_sup + theorem Subalgebra.op_toSubring + theorem Subalgebra.op_top + theorem Subalgebra.op_unop + theorem Subalgebra.unop_adjoin + theorem Subalgebra.unop_bot + theorem Subalgebra.unop_coe + theorem Subalgebra.unop_iInf + theorem Subalgebra.unop_iSup + theorem Subalgebra.unop_inf + theorem Subalgebra.unop_le_unop_iff + theorem Subalgebra.unop_op + theorem Subalgebra.unop_sInf + theorem Subalgebra.unop_sSup + theorem Subalgebra.unop_sup + theorem Subalgebra.unop_toSubring + theorem Subalgebra.unop_top Added Mathlib/Algebra/Ring/Subring/MulOpposite.lean + def Subring.addEquivOp + theorem Subring.le_op_iff + theorem Subring.mem_op + theorem Subring.mem_unop + def Subring.mopRingEquivOp + def Subring.opEquiv + theorem Subring.op_bot + theorem Subring.op_closure + theorem Subring.op_coe + theorem Subring.op_iInf + theorem Subring.op_iSup + theorem Subring.op_inf + theorem Subring.op_le_iff + theorem Subring.op_le_op_iff + theorem Subring.op_sInf + theorem Subring.op_sSup + theorem Subring.op_sup + theorem Subring.op_top + theorem Subring.op_unop + def Subring.ringEquivOpMop + theorem Subring.unop_bot + theorem Subring.unop_closure + theorem Subring.unop_coe + theorem Subring.unop_iInf + theorem Subring.unop_iSup + theorem Subring.unop_inf + theorem Subring.unop_le_unop_iff + theorem Subring.unop_op + theorem Subring.unop_sInf + theorem Subring.unop_sSup + theorem Subring.unop_sup + theorem Subring.unop_top Added Mathlib/Algebra/Ring/Subsemiring/MulOpposite.lean + def Subsemiring.addEquivOp + theorem Subsemiring.le_op_iff + theorem Subsemiring.mem_op + theorem Subsemiring.mem_unop + def Subsemiring.mopRingEquivOp + def Subsemiring.opEquiv + theorem Subsemiring.op_bot + theorem Subsemiring.op_closure + theorem Subsemiring.op_coe + theorem Subsemiring.op_iInf + theorem Subsemiring.op_iSup + theorem Subsemiring.op_inf + theorem Subsemiring.op_le_iff + theorem Subsemiring.op_le_op_iff + theorem Subsemiring.op_sInf + theorem Subsemiring.op_sSup + theorem Subsemiring.op_sup + theorem Subsemiring.op_top + theorem Subsemiring.op_unop + def Subsemiring.ringEquivOpMop + theorem Subsemiring.unop_bot + theorem Subsemiring.unop_closure + theorem Subsemiring.unop_coe + theorem Subsemiring.unop_iInf + theorem Subsemiring.unop_iSup + theorem Subsemiring.unop_inf + theorem Subsemiring.unop_le_unop_iff + theorem Subsemiring.unop_op + theorem Subsemiring.unop_sInf + theorem Subsemiring.unop_sSup + theorem Subsemiring.unop_sup + theorem Subsemiring.unop_top 2024-06-17 21:56:29 ae4167d feat: technical debts compare to previous week (#13892) Adds a comparison with the statistics on the version of mathlib from the previous week. Also renames `tech_debt_counters` to `tech_debt_metrics`. [Zulip discussion](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/Technical.20Debt.20Counters/near/445055463) Right now, it reports the following: |Current number|Change|Type| |-:|:-:|:-| |7324|-28|porting notes| |51|0|backwards compatibility flags| |90|1|skipAssignedInstances flags| |141|-1|adaptation notes| |364|5|disabled simpNF lints| |168|-12|disabled deprecation lints| |1936|3|erw| |961|0|documentation nolint entries| |30|0|missing module docstrings| |95|0|large files| |147|-4|non-test files with autoImplicit true| |41|0|`Init` files| |5326|-3|total LoC in `Init` files|
Changed 'Init' lines by file |LoC|Change|File| |-:|:-:|-| |489|0|Mathlib/Init/Algebra/Classes.lean| |248|-1|Mathlib/Init/Align.lean| |14|0|Mathlib/Init/Classes/Order.lean| |37|0|Mathlib/Init/Classical.lean| |85|0|Mathlib/Init/Control/Combinators.lean| |264|0|Mathlib/Init/Control/Lawful.lean| |172|0|Mathlib/Init/Core.lean| |19|-1|Mathlib/Init/Data/Bool/Basic.lean| |154|-3|Mathlib/Init/Data/Bool/Lemmas.lean| |12|0|Mathlib/Init/Data/Buffer/Parser.lean| |27|0|Mathlib/Init/Data/Fin/Basic.lean| |122|-1|Mathlib/Init/Data/Int/Basic.lean| |15|-1|Mathlib/Init/Data/Int/DivMod.lean| |18|-2|Mathlib/Init/Data/Int/Lemmas.lean| |100|0|Mathlib/Init/Data/Int/Order.lean| |70|2|Mathlib/Init/Data/List/Basic.lean| |65|0|Mathlib/Init/Data/List/Instances.lean| |182|-1|Mathlib/Init/Data/List/Lemmas.lean| |44|0|Mathlib/Init/Data/Nat/Basic.lean| |14|0|Mathlib/Init/Data/Nat/Div.lean| |132|0|Mathlib/Init/Data/Nat/GCD.lean| |721|0|Mathlib/Init/Data/Nat/Lemmas.lean| |11|0|Mathlib/Init/Data/Nat/Notation.lean| |24|0|Mathlib/Init/Data/Option/Basic.lean| |16|0|Mathlib/Init/Data/Option/Init/Lemmas.lean| |67|0|Mathlib/Init/Data/Option/Lemmas.lean| |45|0|Mathlib/Init/Data/Ordering/Basic.lean| |61|0|Mathlib/Init/Data/Ordering/Lemmas.lean| |12|0|Mathlib/Init/Data/Prod.lean| |65|0|Mathlib/Init/Data/Quot.lean| |17|0|Mathlib/Init/Data/Rat/Basic.lean| |22|0|Mathlib/Init/Data/Sigma/Basic.lean| |74|0|Mathlib/Init/Data/Sigma/Lex.lean| |252|0|Mathlib/Init/Function.lean| |673|3|Mathlib/Init/Logic.lean| |27|0|Mathlib/Init/Meta/WellFoundedTactics.lean| |469|0|Mathlib/Init/Order/Defs.lean| |173|0|Mathlib/Init/Order/LinearOrder.lean| |43|0|Mathlib/Init/Quot.lean| |222|0|Mathlib/Init/Set.lean| |49|2|Mathlib/Init/ZeroOne.lean| |5326|-3|total|
Current commit [a59524cd3b](https://github.com/leanprover-community/mathlib4/commit/a59524cd3bf72a1f393255869dd580a4c9d7db2d) Reference commit [c95c52ea4c](https://github.com/leanprover-community/mathlib4/commit/c95c52ea4cf299397d7771bacfcfcadaf084052b) ESTIMATED CHANGES Renamed .github/workflows/technical_debt_counters.yml to .github/workflows/technical_debt_metrics.yml Deleted scripts/technical-debt-counters.sh Added scripts/technical-debt-metrics.sh 2024-06-17 21:56:28 27c7d55 chore: use `SemilinearMapClass` in `Module.Finite.range` (#13863) This way it automatically applies to `ContinuousLinearMap`s etc. ESTIMATED CHANGES Modified Mathlib/RingTheory/Finiteness.lean 2024-06-17 20:45:11 b83d79b fix(GetAllModules): sort module names instead of file names (#13854) Different platforms have different path separators, making the sorting of files by their names platform-dependent. This meant the output `mk_all` would depend on which platform it was run on. To avoid this, we sort the resulting module names instead ESTIMATED CHANGES Modified Mathlib/Util/GetAllModules.lean - def getAllModules + def getAllModulesSorted Modified scripts/mk_all.lean 2024-06-17 20:45:10 13d4164 fix(test/Lint.lean): re-enable test for duplicate namespaces (#13670) There is a standard hack for dealing with linters running on #guard_msg themselves - so re-enable the test using it. One test broke during the std->batteries rename; fix it. ESTIMATED CHANGES Modified Mathlib/Tactic/Linter/Lint.lean Modified test/Lint.lean + def Foo.Foo.foo + def add.add 2024-06-17 20:45:09 5b62469 feat(NumberTheory/PrimeCounting): Lemma: The `n`th prime is greater or equal `n + 2`. (#13283) Possibly useful lemma about the nth prime number. ESTIMATED CHANGES 2024-06-17 22:37:57+02:00 72d08e5 feat(NumberTheory/PrimeCounting): Lemma: The `n`th prime is greater or equal `n + 2`. (#13283) Possibly useful lemma about the nth prime number. <52843868+Komyyy@users.noreply.github.com> --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) --------- ESTIMATED CHANGES Modified Mathlib/NumberTheory/PrimeCounting.lean + theorem Nat.add_two_le_nth_prime Modified Mathlib/Order/Monotone/Basic.lean + theorem StrictMono.add_le_nat 2024-06-17 18:49:35 11fae86 feat(RingTheory/Congruence): split `RingCon` construction and add some constructions (#13730) added results are mainly about `RingCon` on the opposite ring ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/GroupTheory/Congruence/BigOperators.lean Renamed Mathlib/RingTheory/Congruence.lean to Mathlib/RingTheory/Congruence/Basic.lean Added Mathlib/RingTheory/Congruence/BigOperators.lean Added Mathlib/RingTheory/Congruence/Opposite.lean + def RingCon.op + def RingCon.opOrderIso + theorem RingCon.op_iff + def RingCon.unop + theorem RingCon.unop_iff Modified Mathlib/RingTheory/Ideal/Quotient.lean 2024-06-17 16:57:55 009daa3 feat: positivity of `star x * x` (#13748) It is positive when `IsRegular x` (which requires weaker constraints on `R` than `IsUnit x` or `x ≠ 0`) ESTIMATED CHANGES Modified Mathlib/Algebra/Regular/Basic.lean + theorem isRegular_iff Modified Mathlib/Algebra/Star/Basic.lean + theorem isLeftRegular_star_iff + theorem isRegular_star_iff + theorem isRightRegular_star_iff Modified Mathlib/Algebra/Star/Order.lean + theorem mul_star_self_pos + theorem star_mul_self_pos 2024-06-17 16:07:50 b9b6c25 feat(EllipticCurve): a coordinate ring over a domain is a domain (#12883) Generalize `instIsDomainCoordinateRing` from normalized GCD domains to all domains, by reducing to the field case via the injective ring hom to the field of fractions. (This works basically because the coordinate ring is a free module over the base ring and therefore flat.) To get this done, we move various declarations (some instances and `basis` API) up, and introduce `CoordinateRing.map/map_mk/map_smul/map_injective`. ESTIMATED CHANGES Modified Mathlib/AlgebraicGeometry/EllipticCurve/Group.lean + theorem WeierstrassCurve.Affine.CoordinateRing.map_injective + theorem WeierstrassCurve.Affine.CoordinateRing.map_mk +/- theorem WeierstrassCurve.Affine.CoordinateRing.smul_basis_mul_Y 2024-06-17 16:07:49 459cd28 feat(AlgebraicGeometry/EllipticCurve/DivisionPolynomial/Degree): compute degrees of division polynomials (#10878) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Ring/Int.lean + theorem Int.not_even_two_mul_add_one Added Mathlib/AlgebraicGeometry/EllipticCurve/DivisionPolynomial/Degree.lean + theorem WeierstrassCurve.coeff_preΨ' + theorem WeierstrassCurve.coeff_preΨ + theorem WeierstrassCurve.coeff_preΨ₄ + theorem WeierstrassCurve.coeff_Φ + theorem WeierstrassCurve.coeff_ΨSq + theorem WeierstrassCurve.coeff_Ψ₂Sq + theorem WeierstrassCurve.coeff_Ψ₃ + theorem WeierstrassCurve.natDegree_preΨ' + theorem WeierstrassCurve.natDegree_preΨ + theorem WeierstrassCurve.natDegree_preΨ₄ + theorem WeierstrassCurve.natDegree_Φ + theorem WeierstrassCurve.natDegree_ΨSq + theorem WeierstrassCurve.natDegree_Ψ₂Sq + theorem WeierstrassCurve.natDegree_Ψ₃ 2024-06-17 15:40:20 12613ba chore(Analysis/Normed/Group): Move constructions (#13894) Split a new file `Analysis.Normed.Group.Constructions` off `Analysis.Normed.Group.Basic`. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Analysis/Normed/Field/Basic.lean Modified Mathlib/Analysis/Normed/Group/Basic.lean - theorem MulOpposite.nnnorm_op - theorem MulOpposite.nnnorm_unop - theorem MulOpposite.norm_op - theorem MulOpposite.norm_unop - theorem PUnit.norm_eq_zero - theorem Pi.nnnorm_def' - theorem Pi.norm_def' - theorem Pi.sum_nnnorm_apply_le_nnnorm' - theorem Pi.sum_norm_apply_le_norm' - theorem Prod.nnorm_def - theorem Prod.norm_def - theorem ULift.nnnorm_def - theorem ULift.nnnorm_down - theorem ULift.nnnorm_up - theorem ULift.norm_def - theorem ULift.norm_down - theorem ULift.norm_up - theorem nnnorm_le_pi_nnnorm' - theorem nnnorm_ofAdd - theorem nnnorm_ofDual - theorem nnnorm_ofMul - theorem nnnorm_toAdd - theorem nnnorm_toDual - theorem nnnorm_toMul - theorem norm_fst_le - theorem norm_le_pi_norm' - theorem norm_ofAdd - theorem norm_ofDual - theorem norm_ofMul - theorem norm_prod_le_iff - theorem norm_snd_le - theorem norm_toAdd - theorem norm_toDual - theorem norm_toMul - theorem pi_nnnorm_const' - theorem pi_nnnorm_const_le' - theorem pi_nnnorm_le_iff' - theorem pi_nnnorm_lt_iff' - theorem pi_norm_const' - theorem pi_norm_const_le' - theorem pi_norm_le_iff_of_nonempty' - theorem pi_norm_le_iff_of_nonneg' - theorem pi_norm_lt_iff' Added Mathlib/Analysis/Normed/Group/Constructions.lean + theorem MulOpposite.nnnorm_op + theorem MulOpposite.nnnorm_unop + theorem MulOpposite.norm_op + theorem MulOpposite.norm_unop + theorem PUnit.norm_eq_zero + theorem Pi.nnnorm_def' + theorem Pi.norm_def' + theorem Pi.sum_nnnorm_apply_le_nnnorm' + theorem Pi.sum_norm_apply_le_norm' + theorem Prod.nnorm_def + theorem Prod.norm_def + theorem ULift.nnnorm_def + theorem ULift.nnnorm_down + theorem ULift.nnnorm_up + theorem ULift.norm_def + theorem ULift.norm_down + theorem ULift.norm_up + theorem nnnorm_le_pi_nnnorm' + theorem nnnorm_ofAdd + theorem nnnorm_ofDual + theorem nnnorm_ofMul + theorem nnnorm_toAdd + theorem nnnorm_toDual + theorem nnnorm_toMul + theorem norm_fst_le + theorem norm_le_pi_norm' + theorem norm_ofAdd + theorem norm_ofDual + theorem norm_ofMul + theorem norm_prod_le_iff + theorem norm_snd_le + theorem norm_toAdd + theorem norm_toDual + theorem norm_toMul + theorem pi_nnnorm_const' + theorem pi_nnnorm_const_le' + theorem pi_nnnorm_le_iff' + theorem pi_nnnorm_lt_iff' + theorem pi_norm_const' + theorem pi_norm_const_le' + theorem pi_norm_le_iff_of_nonempty' + theorem pi_norm_le_iff_of_nonneg' + theorem pi_norm_lt_iff' Modified Mathlib/Analysis/Normed/Group/SemiNormedGroupCat.lean Modified Mathlib/Analysis/Normed/Order/Lattice.lean Modified Mathlib/Analysis/NormedSpace/LinearIsometry.lean 2024-06-17 15:04:25 739a018 feat(Algebra/Lie/Normalizer): add `normalizer_mono` and use it to fix a porting note (#13890) `mono` would not apply on `monotone_normalizer`, but does apply on `normalizer_mono`. ESTIMATED CHANGES Modified Mathlib/Algebra/Lie/Nilpotent.lean Modified Mathlib/Algebra/Lie/Normalizer.lean +/- theorem LieSubmodule.monotone_normalizer + theorem LieSubmodule.normalizer_mono 2024-06-17 14:41:03 57aa9c9 feat(CategoryTheory/Category/Cat): add Cat API (#13809) Add API for `Bicategory.whiskerRight` and `Bicategory.whiskerLeft` ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Category/Cat.lean + theorem CategoryTheory.Cat.associator_hom_app + theorem CategoryTheory.Cat.associator_inv_app + theorem CategoryTheory.Cat.leftUnitor_hom_app + theorem CategoryTheory.Cat.leftUnitor_inv_app + theorem CategoryTheory.Cat.rightUnitor_hom_app + theorem CategoryTheory.Cat.rightUnitor_inv_app + theorem CategoryTheory.Cat.whiskerLeft_app + theorem CategoryTheory.Cat.whiskerRight_app 2024-06-17 14:29:57 402ae16 feat(CategoryTheory): characterise the covering sieves for the extensive topology (#13897) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Products.lean + def CategoryTheory.Limits.Cofan.isColimitTrans + theorem CategoryTheory.Limits.Cofan.isColimit_iff_isIso_sigmaDesc Modified Mathlib/CategoryTheory/Sites/Coherent/ExtensiveSheaves.lean +/- theorem CategoryTheory.Presheaf.isSheaf_iff_preservesFiniteProducts +/- theorem CategoryTheory.Presieve.isSheaf_iff_preservesFiniteProducts Added Mathlib/CategoryTheory/Sites/Coherent/ExtensiveTopology.lean + theorem CategoryTheory.extensiveTopology.mem_sieves_iff_contains_colimit_cofan Modified Mathlib/CategoryTheory/Sites/Coherent/SheafComparison.lean + def CategoryTheory.Presheaf.coherentExtensiveEquivalence + theorem CategoryTheory.Presheaf.isSheaf_iff_extensiveSheaf_of_projective 2024-06-17 13:58:14 bb514bf docs(CategoryTheory): improve documentation in the effective epi file (#13805) This PR improves some documentation in the effective epi file and removes some `nolint`s which are no longer necessary. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/EffectiveEpi/Basic.lean 2024-06-17 11:31:35 bdd39e9 feat(Data/Fintype/Basic): `Finset.univ_map_subtype` lemmas (#12903) Discussion: https://leanprover.zulipchat.com/#narrow/stream/217875-Is-there-code-for-X.3F/topic/Finset.2Euniv.2Esum.20split ESTIMATED CHANGES Modified Mathlib/Data/Fintype/Basic.lean + theorem Finset.univ_map_subtype + theorem Finset.univ_val_map_subtype_restrict + theorem Finset.univ_val_map_subtype_val 2024-06-17 11:20:56 e6faccc chore(NumberTheory/MulChar): deprecate `IsNontrivial`, fix `isPrimitive` (#13878) - Deprecate `MulChar.IsNontrivial` (following the analogous change for `AddChar`'s a few days ago); - fix capitalisation of `DirichletCharacter.isPrimitive`; - adjust some lemmas to take a `Nat` argument with a `NeZero` instance, rather than a `PNat`, which is more general and flexible. ESTIMATED CHANGES Modified Mathlib/NumberTheory/DirichletCharacter/Basic.lean + def DirichletCharacter.IsPrimitive - theorem DirichletCharacter.isPrimitive.primitive_mul - def DirichletCharacter.isPrimitive +/- theorem DirichletCharacter.isPrimitive_def +/- theorem DirichletCharacter.isPrimitive_one_level_one +/- theorem DirichletCharacter.isPritive_one_level_zero +/- theorem DirichletCharacter.primitiveCharacter_isPrimitive + theorem DirichletCharacter.primitive_mul_isPrimitive Modified Mathlib/NumberTheory/DirichletCharacter/GaussSum.lean Modified Mathlib/NumberTheory/GaussSum.lean +/- theorem gaussSum_mul_gaussSum_eq_card +/- theorem gaussSum_sq Modified Mathlib/NumberTheory/LegendreSymbol/AddCharacter.lean +/- theorem AddChar.IsPrimitive.zmod_char_eq_one_iff +/- def AddChar.zmodChar +/- theorem AddChar.zmodChar_apply' +/- theorem AddChar.zmodChar_apply +/- theorem AddChar.zmodChar_primitive_of_primitive_root +/- theorem AddChar.zmod_char_ne_one_iff Modified Mathlib/NumberTheory/LegendreSymbol/QuadraticChar/Basic.lean + theorem quadraticChar_exists_neg_one' +/- theorem quadraticChar_isNontrivial + theorem quadraticChar_ne_one Modified Mathlib/NumberTheory/LegendreSymbol/QuadraticChar/GaussSum.lean Modified Mathlib/NumberTheory/MulChar/Basic.lean +/- theorem MulChar.IsNontrivial.sum_eq_zero + theorem MulChar.eq_one_iff + theorem MulChar.injective_ringHomComp + theorem MulChar.ne_one_iff + theorem MulChar.ringHomComp_eq_one_iff + theorem MulChar.ringHomComp_ne_one_iff + theorem MulChar.sum_eq_zero_of_ne_one 2024-06-17 10:24:16 4c302e7 feat(Tactic/Relation/Trans): trans tactic for implications (#13719) Implications behave like transitive relations albeit not being such in mathlib for technical reasons. This extends the `trans` tactic to handle them alike. This means `trans B` turn a goal `A → C` into two goals `A → B` and `B → C`. ESTIMATED CHANGES Modified Mathlib/Tactic/Relation/Trans.lean + inductive Mathlib.Tactic.TransRelation + def Mathlib.Tactic.getRel Modified test/trans.lean 2024-06-17 10:24:15 217718f feat: `(𝓝[<] x).NeBot` instances for `Prod`, `Pi`, `OrderDual` (#13642) ESTIMATED CHANGES Modified Mathlib/Data/Set/Prod.lean + theorem Set.eval_image_pi_of_not_mem Modified Mathlib/Order/Basic.lean + theorem Prod.mk_lt_mk_of_le_of_lt + theorem Prod.mk_lt_mk_of_lt_of_le Modified Mathlib/Topology/Bases.lean + theorem isOpenMap_eval Modified Mathlib/Topology/Basic.lean + theorem nhdsWithin_neBot Modified Mathlib/Topology/Constructions.lean 2024-06-17 08:52:36 9cbd6ff feat: add missing WithTop/WithBot lemmas and improve WithBot Nat proofs (#13884) ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Monoid/WithTop.lean + theorem WithBot.bot_ne_ofNat + theorem WithBot.coe_eq_ofNat + theorem WithBot.coe_ofNat + theorem WithBot.ofNat_eq_coe + theorem WithBot.ofNat_ne_bot + theorem WithTop.coe_eq_ofNat + theorem WithTop.coe_ofNat + theorem WithTop.ofNat_eq_coe + theorem WithTop.ofNat_ne_top + theorem WithTop.top_ne_ofNat Modified Mathlib/Data/Nat/WithBot.lean Modified test/ComputeDegree.lean 2024-06-16 23:25:09 77e1ea0 feat: `Prod.fst` as a lattice hom (#13830) From LeanCamCombi ESTIMATED CHANGES Modified Mathlib/Order/Hom/Lattice.lean + theorem LatticeHom.coe_fst + theorem LatticeHom.coe_snd + def LatticeHom.fst + theorem LatticeHom.fst_apply + def LatticeHom.snd + theorem LatticeHom.snd_apply + theorem Pi.coe_evalLatticeHom + def Pi.evalLatticeHom + theorem Pi.evalLatticeHom_apply 2024-06-16 20:27:39 782e4af chore(HashMap): deprecate unused API additions (#13746) ESTIMATED CHANGES Modified Mathlib/Data/HashMap.lean 2024-06-16 19:40:06 f240544 doc(Tactic/Linarith): update docs (#13856) This PR updates the documentation following the integration of the oracle based on the Simplex Algorithm, as merged in PRs #12014, #13535, #12819, and #13800. Additionally, it moves the `SimplexAlgorithm` folder into the `Oracle` directory. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Tactic.lean Modified Mathlib/Tactic/Linarith/Frontend.lean Modified Mathlib/Tactic/Linarith/Oracle/SimplexAlgorithm.lean Renamed Mathlib/Tactic/Linarith/SimplexAlgorithm/Datatypes.lean to Mathlib/Tactic/Linarith/Oracle/SimplexAlgorithm/Datatypes.lean Renamed Mathlib/Tactic/Linarith/SimplexAlgorithm/Gauss.lean to Mathlib/Tactic/Linarith/Oracle/SimplexAlgorithm/Gauss.lean Renamed Mathlib/Tactic/Linarith/SimplexAlgorithm/PositiveVector.lean to Mathlib/Tactic/Linarith/Oracle/SimplexAlgorithm/PositiveVector.lean Renamed Mathlib/Tactic/Linarith/SimplexAlgorithm/SimplexAlgorithm.lean to Mathlib/Tactic/Linarith/Oracle/SimplexAlgorithm/SimplexAlgorithm.lean 2024-06-16 19:40:04 acdc904 chore: Golf `Finset.prod_ite_of_true` (#13726) ... and friends. Also rename `prod_of_empty` to `prod_of_isEmpty`. ESTIMATED CHANGES Modified Mathlib/Algebra/BigOperators/Group/Finset.lean +/- theorem Finset.prod_dite_of_false +/- theorem Finset.prod_dite_of_true +/- theorem Finset.prod_ite_of_false +/- theorem Finset.prod_ite_of_true - theorem Finset.prod_of_empty + theorem Finset.prod_of_isEmpty Modified Mathlib/Algebra/DirectSum/Internal.lean Modified Mathlib/Analysis/Convex/Combination.lean Modified Mathlib/MeasureTheory/Measure/MeasureSpace.lean - theorem MeasureTheory.Measure.sum_of_empty + theorem MeasureTheory.Measure.sum_of_isEmpty 2024-06-16 19:40:03 6e0b629 feat(Finset/Lattice): add `Finset.sup_eq_top_iff` etc (#13641) ESTIMATED CHANGES Modified Mathlib/Data/Finset/Lattice.lean +/- theorem Finset.min_eq_top 2024-06-16 19:40:02 f246e5b feat: format table (#12322) Adds a simple program to render a 2d Array of strings as a table. - [x] Make formatter output tables in markdown-compliant format. - [x] Allows specifying alignments for columns - [x] Refactors the table output of `LongestPole` using this. ESTIMATED CHANGES Modified LongestPole/Main.lean Modified Mathlib.lean Added Mathlib/Util/FormatTable.lean + inductive Alignment + def String.justify + def formatTable 2024-06-16 19:19:31 4343107 chore(MeasureTheory): remove remaining use of autoImplicit true (#13870) ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Function/LpSpace/DomAct/Basic.lean Modified Mathlib/MeasureTheory/Integral/FundThmCalculus.lean Modified Mathlib/MeasureTheory/Integral/Lebesgue.lean +/- theorem MeasureTheory.lintegral_indicator_one +/- theorem MeasureTheory.lintegral_indicator_one₀ +/- theorem MeasureTheory.measure_eq_top_of_lintegral_ne_top +/- theorem MeasureTheory.measure_eq_top_of_setLintegral_ne_top +/- theorem MeasureTheory.setLintegral_eq_top_of_measure_eq_top_ne_zero Modified Mathlib/MeasureTheory/Measure/Count.lean 2024-06-16 18:56:32 d2d320b feat: absolute continuity, Radon-Nikodym derivatives of `μ.map f` for a measurable embedding `f` (#13761) ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Decomposition/RadonNikodym.lean + theorem MeasurableEmbedding.map_withDensity_rnDeriv + theorem MeasurableEmbedding.rnDeriv_map + theorem MeasurableEmbedding.rnDeriv_map_aux + theorem MeasurableEmbedding.singularPart_map Modified Mathlib/MeasureTheory/Group/Measure.lean Modified Mathlib/MeasureTheory/Measure/MeasureSpace.lean + theorem MeasurableEmbedding.absolutelyContinuous_map +/- theorem MeasurableEmbedding.comap_add Modified Mathlib/MeasureTheory/Measure/MutuallySingular.lean + theorem MeasurableEmbedding.mutuallySingular_map Modified Mathlib/MeasureTheory/Measure/Typeclasses.lean + theorem MeasurableEmbedding.sigmaFinite_map +/- theorem MeasurableEquiv.sigmaFinite_map 2024-06-16 15:16:24 d394d9f chore(NumberTheory/MulChar): fix `Fintype`/`Finite`, generalize (#13862) In `MulChar.orderOf_pos` and `MulChar.pow_card_eq_one`, - drop `DecidableEq`; - assume `Finite` instead of `Fintype`; - only assume finiteness of `Mˣ`, not `M`. ESTIMATED CHANGES Modified Mathlib/NumberTheory/MulChar/Basic.lean +/- theorem MulChar.orderOf_pos - theorem MulChar.pow_card_eq_one 2024-06-16 14:17:37 7e44b8f feat(Set/Image): add 2 lemmas (#13592) - Add `Set.exists_subset_image_iff` and `Set.forall_subset_image_iff`. - Deprecate `Set.exists_subset_range_iff` in favor of `Set.exists_subset_range_and_iff`. - Add `@[simp]` to `Set.forall_subset_range_iff`. ESTIMATED CHANGES Modified Mathlib/Data/Set/Image.lean + theorem Set.exists_subset_image_iff + theorem Set.forall_subset_image_iff 2024-06-16 14:17:36 d476d23 feat(Topology): some lemmas about continuity of maps out of one point compactifications (#13355) We prove that a map out of the one point compactification of `X` is continuous if and only if its restriction to `X` satisfies the two properties 1) is continuous 2) is continuous "at infinity", namely that it tends to the value at infinity for the `coclosedCompact` filter on `X` We deduce that continuous functions out of the one point compactification of the natural numbers correspond to convergent sequences. We also prove that the one point compactification of a discrete space is totally separated. ESTIMATED CHANGES Modified Mathlib/Topology/Compactification/OnePoint.lean + def OnePoint.continuousMapMk + def OnePoint.continuousMapMkDiscrete + def OnePoint.continuousMapMkNat + theorem OnePoint.continuous_iff + theorem OnePoint.continuous_iff_from_discrete + theorem OnePoint.continuous_iff_from_nat 2024-06-16 13:53:28 dddafd1 chore(Module/StrongTopology): drop unused `variable`s (#13666) ESTIMATED CHANGES Modified Mathlib/Topology/Algebra/Module/StrongTopology.lean 2024-06-16 12:04:48 950e3d0 feat (MeasureTheory/Function): trivial cases of integrability / summability (#13872) Any function on a finite type is multipliable / summable; a function on a discrete measurable space is integrable iff its norm is summable. ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Function/L1Space.lean + theorem MeasureTheory.hasFiniteIntegral_count_iff + theorem MeasureTheory.integrable_count_iff Modified Mathlib/Topology/Algebra/InfiniteSum/Basic.lean + theorem Multipliable.of_finite 2024-06-16 11:38:59 0c9132b feat: `a ^ (p - 1) = if a ≠ 0 then 1 else 0` in `ZMod p` (#13828) This is useful for algebraically encoding equality of indices. From LeanCamCombi ESTIMATED CHANGES Modified Mathlib/FieldTheory/Finite/Basic.lean + theorem ZMod.pow_card_sub_one 2024-06-16 10:23:18 895010a feat: `1 ≤ s.card ↔ s.Nonempty` (#13821) This shows up when normalising complicated expressions. From LeanAPAP ESTIMATED CHANGES Modified Mathlib/Data/Finset/Card.lean +/- theorem Finset.card_pos + theorem Finset.one_le_card Modified Mathlib/GroupTheory/Perm/Cycle/Factors.lean + theorem Equiv.Perm.support_cycleOf_nonempty 2024-06-16 06:51:33 f47614a chore: implement final style feedback from #13176 (#13865) #13176 was merged (I think @PatrickMassot's instruction on how I could merge it myself triggered it) before I could implement [a final bit of feedback](https://github.com/leanprover-community/mathlib4/pull/13176#discussion_r1640999787) to align my contirbution to the mathlib style guide. This implements it. ESTIMATED CHANGES Modified Mathlib/Topology/Separation.lean 2024-06-16 06:37:52 59c05f4 perf(MeasureTheory,Probability): expand slow `measurabilty` calls (#13770) Manually expand slow `measurability` calls in various files: see individual commit messages for details. From the benchmarking run, this seems to net -160*10⁹ instructions. The `RadonNikodym` and `SignedMeasure` files each speed up by more than half (33 -> 18 billion resp. 100 -> 40 billion instructions). `Group/Convolution` is galvanised, 55 -> 8 billion instructions. The independence files become 10 billion instructions faster. ESTIMATED CHANGES Modified Mathlib/Analysis/SpecialFunctions/JapaneseBracket.lean Modified Mathlib/MeasureTheory/Decomposition/RadonNikodym.lean Modified Mathlib/MeasureTheory/Decomposition/SignedLebesgue.lean Modified Mathlib/MeasureTheory/Group/Convolution.lean Modified Mathlib/Probability/Independence/Basic.lean Modified Mathlib/Probability/Independence/Conditional.lean Modified Mathlib/Probability/Independence/Kernel.lean 2024-06-16 11:45:46+10:00 46b526e chore: updates for new dsimpNF linter (#13855) I've now merged batteries#841, so will update this one to use Batteries @ main. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) --------- ESTIMATED CHANGES Modified Mathlib/Algebra/Module/Submodule/Pointwise.lean Modified Mathlib/Algebra/PUnitInstances.lean Modified Mathlib/Algebra/Ring/Equiv.lean Modified Mathlib/Algebra/Star/StarAlgHom.lean Modified Mathlib/CategoryTheory/Endomorphism.lean Modified Mathlib/CategoryTheory/Groupoid/VertexGroup.lean Modified Mathlib/CategoryTheory/Idempotents/Karoubi.lean Modified Mathlib/RingTheory/Ideal/Operations.lean Modified Mathlib/Topology/FiberBundle/Trivialization.lean Modified lake-manifest.json 2024-06-15 22:45:08 7dc413f chore: Fix statement of `Finset.sum_boole_mul` (#13825) The sum incorrectly referred to the wrong variable Compare with `sum_mul_boole` just above. ESTIMATED CHANGES Modified Mathlib/Algebra/BigOperators/Ring.lean 2024-06-15 21:43:58 32cac55 chore: tidy various files (#13860) ESTIMATED CHANGES Modified Archive/Wiedijk100Theorems/BallotProblem.lean Modified Mathlib/Algebra/Associated.lean Modified Mathlib/Algebra/Category/ModuleCat/Presheaf/Sheafify.lean Modified Mathlib/Algebra/GeomSum.lean Modified Mathlib/Algebra/Lie/Semisimple/Basic.lean +/- theorem LieAlgebra.IsSemisimple.isSimple_of_isAtom Modified Mathlib/Algebra/Lie/Weights/Cartan.lean Modified Mathlib/Algebra/Lie/Weights/Killing.lean Modified Mathlib/Algebra/Polynomial/Derivative.lean Modified Mathlib/Analysis/Complex/UpperHalfPlane/Basic.lean Modified Mathlib/Analysis/Convex/Body.lean Modified Mathlib/Analysis/Convex/Slope.lean Modified Mathlib/Analysis/SumIntegralComparisons.lean Modified Mathlib/CategoryTheory/Abelian/EpiWithInjectiveKernel.lean Modified Mathlib/CategoryTheory/Functor/Category.lean +/- theorem CategoryTheory.Iso.map_hom_inv_id_app Modified Mathlib/CategoryTheory/Localization/CalculusOfFractions/ComposableArrows.lean Modified Mathlib/Combinatorics/SimpleGraph/Hamiltonian.lean Modified Mathlib/Computability/Primrec.lean Modified Mathlib/Condensed/Light/Explicit.lean Modified Mathlib/Data/Nat/Lattice.lean Modified Mathlib/FieldTheory/Adjoin.lean Modified Mathlib/GroupTheory/Perm/List.lean Modified Mathlib/LinearAlgebra/AffineSpace/AffineMap.lean Modified Mathlib/LinearAlgebra/Dual.lean Modified Mathlib/MeasureTheory/Function/L1Space.lean Modified Mathlib/NumberTheory/ModularForms/EisensteinSeries/MDifferentiable.lean Modified Mathlib/NumberTheory/MulChar/Basic.lean Modified Mathlib/NumberTheory/NumberField/CanonicalEmbedding/Basic.lean Modified Mathlib/Order/ConditionallyCompleteLattice/Basic.lean Modified Mathlib/Order/Monotone/Basic.lean Modified Mathlib/Order/WithBot.lean Modified Mathlib/Probability/ProbabilityMassFunction/Basic.lean +/- theorem PMF.restrict_toMeasure_support Modified Mathlib/RingTheory/AdicCompletion/Functoriality.lean Modified Mathlib/RingTheory/Polynomial/Pochhammer.lean Modified Mathlib/RingTheory/RootsOfUnity/Complex.lean Modified Mathlib/Topology/Algebra/InfiniteSum/Order.lean Modified Mathlib/Topology/MetricSpace/Polish.lean Modified Mathlib/Topology/TietzeExtension.lean 2024-06-15 21:43:57 a1210a9 feat: `a * (b - 1) = a * b - a` for truncated subtraction (#13826) ... along with the `Nat`-specialised versions. Also add a few simple lemmas about `div` and `dvd`, restore `Nat.mul_div_mul_comm` and fix the name `AddGroup.toHasOrderedSub` to `AddGroup.toOrderedSub`. From LeanCamCombi ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Group/Defs.lean Modified Mathlib/Algebra/Order/Ring/Canonical.lean + theorem mul_tsub_one + theorem tsub_one_mul Modified Mathlib/Algebra/Order/Sub/Canonical.lean +/- theorem tsub_lt_self_iff + theorem tsub_tsub_eq_min Modified Mathlib/Data/Nat/Defs.lean + theorem Nat.eq_of_dvd_of_lt_two_mul - theorem Nat.mul_div_mul_comm_of_dvd_dvd Modified Mathlib/Data/Nat/Fib/Zeckendorf.lean 2024-06-15 21:43:56 48de726 feat: `norm_cast` lemmas about `IsSquare` and `{Int,Rat}.sqrt` (#13788) ESTIMATED CHANGES Modified Mathlib/Algebra/Ring/Int.lean + theorem Int.isSquare_natCast_iff + theorem Int.isSquare_ofNat_iff Modified Mathlib/Data/Int/Sqrt.lean + theorem Int.sqrt_natCast + theorem Int.sqrt_ofNat Modified Mathlib/Data/Rat/Lemmas.lean + theorem Rat.isSquare_iff + theorem Rat.isSquare_intCast_iff + theorem Rat.isSquare_natCast_iff + theorem Rat.isSquare_ofNat_iff Modified Mathlib/Data/Rat/Sqrt.lean + theorem Rat.sqrt_intCast + theorem Rat.sqrt_natCast + theorem Rat.sqrt_ofNat 2024-06-15 21:43:55 0e39a68 A ring homomorphism ``f : R →+* S`` induces a homomorphism ``GLₙ(f) : GLₙ(R) →* GLₙ(S)``. (#13768) ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/Matrix/GeneralLinearGroup.lean + def Matrix.GeneralLinearGroup.map + theorem Matrix.GeneralLinearGroup.map_comp + theorem Matrix.GeneralLinearGroup.map_comp_apply + theorem Matrix.GeneralLinearGroup.map_id 2024-06-15 21:09:36 0ac1ced feat: weaken 2nd countable to lindelof in Regular+Lindelof=>Normal (#13176) ESTIMATED CHANGES Modified Mathlib/Topology/Basic.lean + theorem closure_iUnion₂_le_nat + theorem closure_iUnion₂_lt_nat + theorem interior_iInter₂_le_nat + theorem interior_iInter₂_lt_nat Modified Mathlib/Topology/Compactness/Lindelof.lean + theorem IsLindelof.indexed_countable_subcover Modified Mathlib/Topology/Separation.lean + def HasSeparatingCover + theorem IsClosed.HasSeparatingCover + theorem hasSeparatingCovers_iff_separatedNhds Modified docs/references.bib 2024-06-15 18:23:29 0309272 feat(Linter): enforce `since :=` fields in `@[deprecated]` (#13678) ESTIMATED CHANGES Modified Mathlib/Tactic/Linter/Lint.lean + def Std.Tactic.Lint.deprecatedNoSince 2024-06-15 16:49:36 a9fbabf feat(GroupWithZero): add one_lt_coe and friends (#13853) ESTIMATED CHANGES Modified Mathlib/Algebra/Order/GroupWithZero/Canonical.lean + theorem WithZero.coe_le_one + theorem WithZero.coe_lt_one + theorem WithZero.one_le_coe + theorem WithZero.one_lt_coe 2024-06-15 15:52:28 7f2007a chore(*): more `since :=` in `deprecated` (#13723) ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/Subalgebra/Basic.lean Modified Mathlib/Algebra/BigOperators/Group/List.lean Modified Mathlib/Algebra/GroupWithZero/Units/Basic.lean Modified Mathlib/Algebra/Module/Defs.lean Modified Mathlib/Algebra/Order/Field/Basic.lean Modified Mathlib/Algebra/Order/Floor.lean Modified Mathlib/Algebra/Order/Monoid/Defs.lean +/- theorem bit0_pos Modified Mathlib/Algebra/Order/Monoid/Unbundled/Basic.lean Modified Mathlib/Algebra/Order/Monoid/WithTop.lean Modified Mathlib/Algebra/Order/Ring/Basic.lean Modified Mathlib/Algebra/Order/Ring/Defs.lean Modified Mathlib/Algebra/Ring/Commute.lean Modified Mathlib/Algebra/Ring/Int.lean +/- theorem Int.not_even_bit1 Modified Mathlib/CategoryTheory/Functor/FullyFaithful.lean Modified Mathlib/CategoryTheory/IsConnected.lean Modified Mathlib/CategoryTheory/Iso.lean Modified Mathlib/CategoryTheory/Limits/Opposites.lean Modified Mathlib/Data/Int/Lemmas.lean Modified Mathlib/Data/Rat/Lemmas.lean Modified Mathlib/Data/Real/Sqrt.lean Modified Mathlib/Data/Set/Basic.lean Modified Mathlib/Topology/CompactOpen.lean Modified Mathlib/Topology/Instances/Real.lean 2024-06-15 14:58:11 e956397 chore(*): more `since :=` in `deprecated` (#13839) ESTIMATED CHANGES Modified Mathlib/Algebra/Ring/Rat.lean Modified Mathlib/Algebra/Ring/Subring/Basic.lean Modified Mathlib/Algebra/Ring/Subsemiring/Basic.lean Modified Mathlib/Analysis/Asymptotics/Asymptotics.lean Modified Mathlib/Analysis/Calculus/ContDiff/Defs.lean Modified Mathlib/Analysis/InnerProductSpace/Calculus.lean Modified Mathlib/Analysis/LocallyConvex/Basic.lean Modified Mathlib/Analysis/Normed/Group/Basic.lean Modified Mathlib/CategoryTheory/Adjunction/Over.lean Modified Mathlib/CategoryTheory/EssentialImage.lean Modified Mathlib/Data/Fin/Basic.lean Modified Mathlib/Data/Finset/Basic.lean Modified Mathlib/Data/Int/Cast/Basic.lean Modified Mathlib/Data/Int/Cast/Lemmas.lean Modified Mathlib/Data/Int/Defs.lean +/- theorem Int.ofNat_bit0 +/- theorem Int.ofNat_bit1 Modified Mathlib/Data/List/InsertNth.lean Modified Mathlib/Data/List/Rotate.lean Modified Mathlib/Data/Nat/Cast/Basic.lean Modified Mathlib/Data/Nat/Cast/Defs.lean Modified Mathlib/Data/Num/Basic.lean Modified Mathlib/Data/PNat/Basic.lean Modified Mathlib/Data/Rat/Cast/Defs.lean Modified Mathlib/Data/Rat/Defs.lean Modified Mathlib/FieldTheory/IntermediateField.lean Modified Mathlib/Init/Data/List/Lemmas.lean Modified Mathlib/Init/ZeroOne.lean +/- def bit0 +/- def bit1 Modified Mathlib/Logic/Basic.lean Modified Mathlib/NumberTheory/Padics/PadicIntegers.lean Modified Mathlib/NumberTheory/SumFourSquares.lean Modified Mathlib/NumberTheory/Zsqrtd/GaussianInt.lean Modified Mathlib/Order/Filter/Basic.lean - theorem Filter.comap_le_comap - theorem Filter.map_le_map + theorem GCongr.Filter.comap_le_comap + theorem GCongr.Filter.map_le_map Modified Mathlib/RingTheory/Derivation/Basic.lean Modified Mathlib/RingTheory/Flat/Basic.lean Modified Mathlib/RingTheory/Noetherian.lean Modified Mathlib/RingTheory/PowerBasis.lean Modified Mathlib/RingTheory/PrincipalIdealDomain.lean Modified Mathlib/RingTheory/SimpleModule.lean Modified Mathlib/Topology/Algebra/Module/Basic.lean Modified Mathlib/Topology/Bases.lean Modified Mathlib/Topology/Constructions.lean Modified Mathlib/Topology/ContinuousFunction/Bounded.lean Modified Mathlib/Topology/FiberBundle/Trivialization.lean Modified Mathlib/Topology/GDelta.lean Modified Mathlib/Topology/MetricSpace/Completion.lean Modified Mathlib/Topology/Order/LowerUpperTopology.lean 2024-06-15 13:54:24 90b6f6d feat: include `tactic.skipAssignedInstances` flags in technical debt counters (#13851) This flag was added in leanprover/lean4#3526 explicitly for the purposes of backwards compatibility. ESTIMATED CHANGES Modified scripts/technical-debt-counters.sh 2024-06-15 08:58:15 f6c43c6 chore/refactor: avoid vector notation in character defs (#13737) This changes the definition of the quadratic character `ZMod.χ₄` to use ane explicit `match` expression instead of `![0, 1, 0, -1]` (which relied on defeq abuse `ZMod = Fin`), and similarly for `ZMod.χ₈` and `ZMod.χ₈'`. We also deal with some porting notes, tidy up some files and speed up `Mathlib.NumberTheory.GaussSum`. ESTIMATED CHANGES Modified Mathlib/NumberTheory/GaussSum.lean Modified Mathlib/NumberTheory/LegendreSymbol/QuadraticChar/Basic.lean Modified Mathlib/NumberTheory/LegendreSymbol/ZModChar.lean +/- theorem ZMod.neg_one_pow_div_two_of_one_mod_four +/- theorem ZMod.neg_one_pow_div_two_of_three_mod_four +/- theorem ZMod.χ₄_nat_mod_four +/- theorem ZMod.χ₈'_eq_χ₄_mul_χ₈ +/- theorem ZMod.χ₈_nat_mod_eight 2024-06-15 08:18:30 f9ab934 chore: Move antidiagonal material (#13727) * Rename `Data.Finset.Antidiagonal` to `Algebra.Order.Antidiag.Prod` * Rename `Data.Finset.PiAntidiagonal` to `Algebra.Order.Antidiag.Finsupp` * Move `Finset.finAntidiag` from the aforementioned to a new file `Algebra.Order.Antidiag.Pi`. This is in prevision of #13683. ESTIMATED CHANGES Modified Archive/Wiedijk100Theorems/Partition.lean Modified Mathlib.lean Renamed Mathlib/Data/Finset/PiAntidiagonal.lean to Mathlib/Algebra/Order/Antidiag/Finsupp.lean - def Finset.finAntidiagonal - theorem Finset.mem_finAntidiagonal Added Mathlib/Algebra/Order/Antidiag/Pi.lean + def Finset.finAntidiagonal + theorem Finset.mem_finAntidiagonal Renamed Mathlib/Data/Finset/Antidiagonal.lean to Mathlib/Algebra/Order/Antidiag/Prod.lean Modified Mathlib/Data/Finset/NatAntidiagonal.lean Modified Mathlib/RingTheory/MvPowerSeries/Basic.lean Modified test/antidiagonal.lean 2024-06-15 08:03:13 781c604 fix(Combinatorics/Roth): drop `[DecidableEq G]` assumption (#13844) ESTIMATED CHANGES Modified Mathlib/Combinatorics/Additive/Corner/Roth.lean 2024-06-15 07:07:03 04d5dca feat(Order): sup/inf equal to top/bot if top/bot in set (#13706) The sup lemma is needed in a proof related to `SimpleGraph.ediam` in #12058 ESTIMATED CHANGES Modified Mathlib/Order/ConditionallyCompleteLattice/Basic.lean + theorem inf_eq_bot_of_bot_mem + theorem sup_eq_top_of_top_mem 2024-06-15 06:55:10 b1b06ae chore: bump leantar 0.1.13 (#13843) The latest version of leantar [includes](https://github.com/digama0/leangz/compare/v0.1.12...v0.1.13) the following features and bug fixes: * Fix to the `-k` comment parsing mode which powers `lake exe cache lookup` broken in v0.1.12 * Ignore unparseable `.trace` files instead of failing, to prevent a future [forward compatibility issue](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/ltar.20error.20aften.20lean.234402/near/444803915) This is a forward and backward compatible release, because it makes no parsing changes relevant for `cache get` or `cache put`. ESTIMATED CHANGES Modified Cache/IO.lean 2024-06-14 18:14:52 f05cf14 feat: lint in importing Lake in mathlib, inspired by #13779 (#13836) ESTIMATED CHANGES Modified scripts/lint-style.py 2024-06-14 16:44:41 dff3a0e chore(Order/Hom/Set): Use `simps!` rather than `simps` (#13831) ... else the RHS of the generated lemmas involves a `∘` ESTIMATED CHANGES Modified Mathlib/Order/Hom/Set.lean 2024-06-14 15:55:15 f43a3d2 chore: don't import `Lake` under `Mathlib` (#13779) The `Lake.CLI.Main` import was slowing down linting by ~90s/~15% on its own. We move the function `getLeanLibs` back to `scripts/mk_all.lean` to avoid the import. ESTIMATED CHANGES Modified Mathlib/Util/GetAllModules.lean - def getLeanLibs Modified lakefile.lean Modified scripts/mk_all.lean + def getLeanLibs 2024-06-14 15:55:14 62409ad fix: `cc` tactic can't unify def-eq instances in `OfNat.ofNat` (#13403) This issue is consisted of one problem and one bug. **Problem: `cc` treats an `OfNat.ofNat` term as an atomic value in the default config** In the default `CCConfig`, the `values` field is set to `true` so `cc` treats an `OfNat.ofNat` term as an atomic and it doesn't unify `OfNat` instances. This problem can be solved simply by setting `values := false` by default. **Bug: `cc` tries to disprove `@OfNat α (nat_lit n) i₁ ≠ @OfNat α (nat_lit n) i₂` where `α` is `ℕ` or `ℤ` and `i₁` & `i₂` is not alpha-equivalent but def_eq** `cc` tactic has a mechanism to disprove equality between two different values of `ℕ`, `ℤ`, `Char` & `String`, in the function `propagateEqUp`. This mechanism is trigered when the root representations of two values are not alpha-equivalent, so this example fails. ```lean local instance instOfNatNat' (n : ℕ) : OfNat ℕ n where ofNat := n example : @OfNat.ofNat ℕ (nat_lit 0) (instOfNatNat _) = @OfNat.ofNat ℕ (nat_lit 0) (instOfNatNat' _) := by cc /- application type mismatch (bne_iff_ne 0 0).1 (Eq.refl true) argument has type true = true but function has type (0 != 0) = true → 0 ≠ 0 -/ ``` So we strengthen the condition in `propagateEqUp`. For the detail, refer to docs in this function. ESTIMATED CHANGES Modified Mathlib/Tactic/CC/Addition.lean Modified Mathlib/Tactic/CC/Datatypes.lean Modified test/cc.lean 2024-06-14 15:02:07 1b576ba feat(Order/Filter): Add lemmas about Filter.curry (#12435) `Filter.curry` is a useful definition for reasoning about Fubini-type theorems, but there are almost no lemmas about it. This PR adds some in preparation for an upcomming PR on the Kuratowski-Ulam theorem. ESTIMATED CHANGES Modified Mathlib/Order/Filter/CountableInter.lean Modified Mathlib/Order/Filter/Curry.lean + theorem Filter.eventually_curry_prod_iff + theorem Filter.frequently_curry_iff + theorem Filter.frequently_curry_prod_iff + theorem Filter.mem_curry_iff + theorem Filter.prod_mem_curry 2024-06-14 14:02:14 11731ee feat: Powerset as a functor `Type u ⥤ BoolAlgᵒᵖ` (#13819) From LeanCamCombi ESTIMATED CHANGES Modified Mathlib/Order/Category/BoolAlg.lean + def typeToBoolAlgOp 2024-06-14 14:02:13 c480669 chore: generalize some results to non-unital rings (#13807) ESTIMATED CHANGES Modified Mathlib/Algebra/GeomSum.lean Modified Mathlib/Algebra/Order/AbsoluteValue.lean Modified Mathlib/Algebra/Regular/Basic.lean Modified Mathlib/Algebra/Ring/Basic.lean +/- theorem IsLeftCancelMulZero.to_noZeroDivisors +/- theorem IsRightCancelMulZero.to_noZeroDivisors +/- theorem isCancelMulZero_iff_noZeroDivisors Modified Mathlib/Data/Real/NNReal.lean 2024-06-14 14:02:12 239c822 feat(AddChar): Various improvements (#13579) * Add a bunch of missing `simp` and `norm_cast` lemmas. * Get rid of `IsNontrivial ψ` since it's just `ψ ≠ 1`. This simplifies proofs. * Remove explicit arguments to `toMonoidHomEquiv`/`toAddMonoidHomEquiv`. We basically never need to provide them explicitly since unification usually does the job. ESTIMATED CHANGES Modified Mathlib/Algebra/Group/AddChar.lean +/- theorem AddChar.coe_compAddMonoidHom + theorem AddChar.coe_mul + theorem AddChar.coe_one + theorem AddChar.coe_pow + theorem AddChar.coe_toAddMonoidHom + theorem AddChar.coe_toAddMonoidHomEquiv + theorem AddChar.coe_toAddMonoidHomEquiv_symm + theorem AddChar.coe_toMonoidHomEquiv + theorem AddChar.coe_toMonoidHomEquiv_symm +/- def AddChar.compAddMonoidHom + theorem AddChar.compAddMonoidHom_apply + theorem AddChar.compAddMonoidHom_injective_left + theorem AddChar.compAddMonoidHom_injective_right + theorem AddChar.eq_one_iff + theorem AddChar.injective_iff + theorem AddChar.map_sub_eq_div +/- theorem AddChar.mul_apply + theorem AddChar.ne_one_iff +/- theorem AddChar.pow_apply + theorem AddChar.toAddMonoidHomEquiv_apply + theorem AddChar.toAddMonoidHomEquiv_symm_apply +/- theorem AddChar.toAddMonoidHom_apply + theorem AddChar.toMonoidHomEquiv_apply + theorem AddChar.toMonoidHomEquiv_symm_apply + theorem MonoidHom.compAddChar_apply + theorem MonoidHom.compAddChar_injective_left + theorem MonoidHom.compAddChar_injective_right Modified Mathlib/NumberTheory/GaussSum.lean +/- theorem gaussSum_mul_gaussSum_eq_card +/- theorem gaussSum_sq Modified Mathlib/NumberTheory/LegendreSymbol/AddCharacter.lean - theorem AddChar.IsNontrivial.isPrimitive + theorem AddChar.IsPrimitive.of_ne_one +/- def AddChar.IsPrimitive + theorem AddChar.sum_eq_card_of_eq_one - theorem AddChar.sum_eq_card_of_is_trivial - theorem AddChar.sum_eq_zero_of_isNontrivial + theorem AddChar.sum_eq_zero_of_ne_one - theorem AddChar.zmod_char_isNontrivial_iff + theorem AddChar.zmod_char_ne_one_iff 2024-06-14 13:02:52 dc44afb chore: bump Aesop (#13835) Update Aesop to a version with precompilation disabled. It seems this still breaks Mathlib's cache/CI. ESTIMATED CHANGES Modified lake-manifest.json 2024-06-14 11:33:22 2268f78 feat: add `MeasureTheory.Measure.AbsolutelyContinuous.add_left` (#13734) ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Measure/MeasureSpace.lean + theorem MeasureTheory.Measure.AbsolutelyContinuous.add_left 2024-06-14 09:28:41 c14e9d0 chore(Topology/Spectral/Hom): fix problem with dsimp lemma, fix porting note (#13818) ESTIMATED CHANGES Modified Mathlib/Topology/Spectral/Hom.lean 2024-06-14 09:28:40 978fca1 perf(GroupCohomology/Resolution; Algebra/Lie/Classical): use suppress_compilation (#13801) These took 10 resp. 18 seconds to compile in mathlib's CI; it seems this computability is not actually needed. ESTIMATED CHANGES Modified Mathlib/Algebra/Lie/Classical.lean - def LieAlgebra.Orthogonal.soIndefiniteEquiv - def LieAlgebra.Orthogonal.typeBEquivSo' - def LieAlgebra.Orthogonal.typeDEquivSo' Modified Mathlib/RepresentationTheory/GroupCohomology/Resolution.lean 2024-06-14 09:28:39 01e3d32 doc: units of a trivial normed algebra are a thing (#13709) Fix a comment. ESTIMATED CHANGES Modified Mathlib/Geometry/Manifold/Instances/UnitsOfNormedAlgebra.lean 2024-06-14 08:25:00 c07d988 chore(*): drop some `bit0`/`bit1` lemmata (#13822) ESTIMATED CHANGES Modified Mathlib/Algebra/Polynomial/Basic.lean - theorem Polynomial.C_bit0 - theorem Polynomial.C_bit1 Modified Mathlib/Algebra/Polynomial/Coeff.lean - theorem Polynomial.coeff_bit0 - theorem Polynomial.coeff_bit0_mul - theorem Polynomial.coeff_bit1_mul Modified Mathlib/Algebra/Polynomial/Eval.lean - theorem Polynomial.eval_bit0 - theorem Polynomial.eval_bit1 - theorem Polynomial.eval₂_bit0 - theorem Polynomial.eval₂_bit1 Modified Mathlib/Probability/Variance.lean 2024-06-14 08:24:59 2f07f5f chore(Data/Array/Basic): remove upstreamed @[simp] and move deprecation (#13813) Allowing us to delete a file. ESTIMATED CHANGES Modified Mathlib.lean Deleted Mathlib/Data/Array/Basic.lean Modified Mathlib/Init/Data/List/Basic.lean 2024-06-14 08:24:58 294e3c6 chore: remove some of the >1year deprecations (#13792) ESTIMATED CHANGES Modified Mathlib/Data/List/Chain.lean - theorem List.chain'_iff_nthLe - theorem List.chain_iff_nthLe Modified Mathlib/Data/List/Cycle.lean Modified Mathlib/Order/Filter/Pointwise.lean Modified Mathlib/Topology/MetricSpace/PseudoMetric.lean Modified Mathlib/Topology/Order/Basic.lean - theorem countable_of_isolated_right' Modified Mathlib/Topology/Order/LeftRightNhds.lean - theorem Filter.map_neg_eq_comap_neg - theorem preimage_neg Modified Mathlib/Topology/Order/ProjIcc.lean - theorem Filter.Tendsto.IccExtend' Modified Mathlib/Topology/Separation.lean - theorem TopologicalSpace.subset_trans Modified scripts/noshake.json 2024-06-14 08:06:49 449179b refactor: move analyticGroupoid to a new file `AnalyticManifold.lean` (#13785) It used to be in `SmoothManifoldWithCorners.lean`, but this makes no sense as nothing downstream of that file uses `analyticGroupoid`. In #10853, I will rewrite the definition of `analyticGroupoid` and define `AnalyticManifold` on top of it. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Geometry/Manifold/AnalyticManifold.lean + def analyticGroupoid + theorem mem_analyticGroupoid_of_boundaryless + theorem ofSet_mem_analyticGroupoid + theorem symm_trans_mem_analyticGroupoid Modified Mathlib/Geometry/Manifold/SmoothManifoldWithCorners.lean - def analyticGroupoid - theorem mem_analyticGroupoid_of_boundaryless - theorem ofSet_mem_analyticGroupoid - theorem symm_trans_mem_analyticGroupoid 2024-06-14 07:48:58 debf1d8 chore(build*.yml): only update Mathlib.lean once (#13667) The current workflow updates `Mathlib.lean` twice: there's no reason to do so. Since 'check_imported' step moved into the 'build' step, any old reasons for this duplication are now obsolete. ESTIMATED CHANGES Modified .github/workflows/bors.yml Modified .github/workflows/build.yml Modified .github/workflows/build.yml.in Modified .github/workflows/build_fork.yml Modified .github/workflows/lint_and_suggest_pr.yml 2024-06-14 06:31:03 b288785 chore: fix dsimp lemmas that cause loops (#13804) These dsimp lemmas had a proof subterm in their RHS that contained a copy of the LHS, which causes dsimp to enter an infinite loop. Nb: dsimp visits all sub-terms, even proofs: it is used to eliminate (artificial) dependencies ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/Equiv.lean Modified Mathlib/Algebra/Module/Equiv.lean Modified Mathlib/Topology/FiberBundle/Trivialization.lean 2024-06-14 06:16:22 5ef3a83 chore: bump to v4.9.0-rc2 (#13814) This should not change any Lean behaviour, besides `lake`, `VS Code` interaction, and incremental compilation. Note that to save some time I'm not moving all the other repositories to `v4.9.0-rc2` now, but can do so on an as needed basis. ESTIMATED CHANGES Modified Cache/IO.lean Modified lean-toolchain 2024-06-14 04:23:05 7fa489a chore: bump dependencies (#13789) This includes the change to behaviour in the simpNF linter from https://github.com/leanprover-community/batteries/pull/839, so may be disruptive. ESTIMATED CHANGES Modified Mathlib/Data/LazyList/Basic.lean Modified Mathlib/Lean/Thunk.lean - theorem Thunk.ext Modified lake-manifest.json 2024-06-13 23:47:36 ceff16f feat(ContinuousMapZero): add `StarOrderedRing` instances (#13650) This PR adds missing `StarOrderedRing` instances on `ContinuousMapZero`. These are needed for the non-unital continuous functional calculus. ESTIMATED CHANGES Modified Mathlib/Topology/ContinuousFunction/StarOrdered.lean 2024-06-13 23:34:10 68d8832 chore: bump leantar 0.1.12 (#13808) The latest version of leantar [includes](https://github.com/digama0/leangz/compare/v0.1.11...v0.1.12) the following features and bug fixes: * An improved `--help` output * Faster performance on windows and slow networks by reducing the number of OS calls (see digama0/leangz#3) * Support for a new trace file format due to land in leanprover/lean4#4402 (see [zulip discussion](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/ltar.20error.20aften.20lean.234402/near/444379353)) This is a backward compatible release, meaning that v0.1.12 can understand .ltar files produced by v0.1.11 and previous versions. So there should not be any hiccups during the transition period. ESTIMATED CHANGES Modified Cache/IO.lean 2024-06-13 19:34:00 c9f95f4 chore: move material on limits out of ConcreteCategory.Basic (#13549) This significantly reduces this imports of `ConcreteCategory.Basic` (the imports never should have been added; one day we will have CI help for this!). There may actually be some duplication between the material I'm moving and the material in the destination file (which @joelriou added last week), but I'm going to declare deduplicating out of scope for this PR, please. ESTIMATED CHANGES Modified Mathlib/Algebra/Category/GroupCat/EpiMono.lean Modified Mathlib/Algebra/Category/GroupCat/ForgetCorepresentable.lean Modified Mathlib/Algebra/Category/ModuleCat/EpiMono.lean Modified Mathlib/AlgebraicTopology/SimplexCategory.lean Modified Mathlib/CategoryTheory/Adhesive.lean Modified Mathlib/CategoryTheory/Category/Pointed.lean Modified Mathlib/CategoryTheory/ConcreteCategory/Basic.lean - theorem CategoryTheory.ConcreteCategory.bijective_of_isIso - theorem CategoryTheory.ConcreteCategory.epi_iff_surjective_of_preservesPushout - theorem CategoryTheory.ConcreteCategory.epi_of_surjective - theorem CategoryTheory.ConcreteCategory.injective_of_mono_of_preservesPullback - theorem CategoryTheory.ConcreteCategory.isIso_iff_bijective - theorem CategoryTheory.ConcreteCategory.mono_iff_injective_of_preservesPullback - theorem CategoryTheory.ConcreteCategory.mono_of_injective - theorem CategoryTheory.ConcreteCategory.surjective_of_epi_of_preservesPushout Modified Mathlib/CategoryTheory/ConcreteCategory/EpiMono.lean + theorem CategoryTheory.ConcreteCategory.bijective_of_isIso + theorem CategoryTheory.ConcreteCategory.epi_iff_surjective_of_preservesPushout + theorem CategoryTheory.ConcreteCategory.epi_of_surjective + theorem CategoryTheory.ConcreteCategory.injective_of_mono_of_preservesPullback + theorem CategoryTheory.ConcreteCategory.isIso_iff_bijective + theorem CategoryTheory.ConcreteCategory.mono_iff_injective_of_preservesPullback + theorem CategoryTheory.ConcreteCategory.mono_of_injective + theorem CategoryTheory.ConcreteCategory.surjective_of_epi_of_preservesPushout Modified Mathlib/CategoryTheory/Limits/Shapes/ConcreteCategory.lean Modified Mathlib/CategoryTheory/Sites/Sheaf.lean Modified Mathlib/Order/Category/NonemptyFinLinOrd.lean Modified Mathlib/Order/Category/PartOrd.lean Modified Mathlib/Order/Category/Preord.lean Modified Mathlib/Topology/Category/CompHaus/Projective.lean Modified Mathlib/Topology/Category/Profinite/Basic.lean Modified Mathlib/Topology/Category/Profinite/Projective.lean Modified Mathlib/Topology/Category/TopCat/EpiMono.lean Modified Mathlib/Topology/Category/TopCat/Limits/Basic.lean Modified Mathlib/Topology/Gluing.lean Modified Mathlib/Topology/Sheaves/Stalks.lean 2024-06-13 16:04:28 1e62b3f chore: refactor LinarithConfig object so defaults are easier to find (#13800) `LinarithConfig` was defined before `CertificateOracle` was instantiated, so it couldn't have a proper default. The default was chosen inline in the middle of a long function. Now that we have multiple oracles, it's important to make the default choice visible! ESTIMATED CHANGES Modified Mathlib/Tactic/Linarith/Datatypes.lean - def Linarith.LinarithConfig.updateReducibility - structure Linarith.LinarithConfig Modified Mathlib/Tactic/Linarith/Frontend.lean + def Linarith.LinarithConfig.updateReducibility + structure Linarith.LinarithConfig Modified Mathlib/Tactic/Linarith/Verification.lean +/- def Linarith.proveFalseByLinarith Modified test/linarith.lean 2024-06-13 14:52:55 5515fe8 feat: add SFinite instances for Measure.fst and Measure.snd (#13741) Authored-by: Lorenzo Luccioli ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Constructions/Prod/Basic.lean 2024-06-13 14:52:54 0dd9321 feat(MeasureTheory): `trim_add` (#13739) ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Measure/Trim.lean + theorem MeasureTheory.trim_add 2024-06-13 14:32:53 e3dd70a feat(MeasureTheory): add Measure.fst_map_swap and Measure.snd_map_swap (#13733) ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Constructions/Prod/Basic.lean + theorem MeasureTheory.Measure.fst_map_swap + theorem MeasureTheory.Measure.snd_map_swap 2024-06-13 14:08:10 953d0fc docs(LinearAlgebra/Matrix/Transvection): fix small mistakes (#13799) ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/Matrix/Transvection.lean 2024-06-13 13:20:55 8c85ba7 feat(Tactic/Linarith): use sparse matrices (#12819) * Introduce the `SparseMatrix` structure, which can be used in the Simplex Algorithm via class `UsableInSimplexAlgorithm`. * Use them in a default `linarith`'s oracle. This should speed up `linarith` on sparse states. In particular, this affects `nlinarith`, because it typically passes very sparse matrices to the algorithm. ESTIMATED CHANGES Modified Mathlib/Tactic/Linarith/Datatypes.lean Modified Mathlib/Tactic/Linarith/Oracle/SimplexAlgorithm.lean - def Linarith.SimplexAlgorithm.CertificateOracle.simplexAlgorithm + def Linarith.SimplexAlgorithm.CertificateOracle.simplexAlgorithmDense + def Linarith.SimplexAlgorithm.CertificateOracle.simplexAlgorithmSparse +/- def Linarith.SimplexAlgorithm.preprocess Modified Mathlib/Tactic/Linarith/SimplexAlgorithm/Datatypes.lean + structure Linarith.SimplexAlgorithm.DenseMatrix - structure Linarith.SimplexAlgorithm.Matrix + structure Linarith.SimplexAlgorithm.SparseMatrix Modified Mathlib/Tactic/Linarith/SimplexAlgorithm/Gauss.lean +/- def Linarith.SimplexAlgorithm.Gauss.findNonzeroRow Modified Mathlib/Tactic/Linarith/SimplexAlgorithm/PositiveVector.lean +/- def Linarith.SimplexAlgorithm.stateLP Modified Mathlib/Tactic/Linarith/SimplexAlgorithm/SimplexAlgorithm.lean Modified Mathlib/Tactic/Linarith/Verification.lean Modified test/linarith.lean 2024-06-13 09:47:26 659d351 perf(TensorAlgebra/Grading): use suppress_compilation (#13771) The gradedAlgebra instance takes 10 seconds to compile (on CI). Speeds up the whole file by 75%; no downstream definitions are affected. ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/TensorAlgebra/Grading.lean 2024-06-13 08:41:16 65ff3ef perf(NumberTheory/Padics/PadicNumbers): avoid a slow `change` (#13772) This took 15s on mathlib CI; replace this by a one-line `suffices` instead. Speed up the file by 58%. ESTIMATED CHANGES Modified Mathlib/NumberTheory/Padics/PadicNumbers.lean 2024-06-13 08:41:15 a6db021 chore: split Mathlib.Topology.Algebra.UniformConvergence (#13738) This reduces the longest pole by two files. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Analysis/LocallyConvex/WithSeminorms.lean Modified Mathlib/Topology/Algebra/Module/Multilinear/Topology.lean Modified Mathlib/Topology/Algebra/Module/StrongTopology.lean Added Mathlib/Topology/Algebra/Module/UniformConvergence.lean + theorem UniformFun.continuousSMul_induced_of_range_bounded + theorem UniformOnFun.continuousSMul_induced_of_image_bounded + theorem UniformOnFun.continuousSMul_submodule_of_image_bounded Modified Mathlib/Topology/Algebra/UniformConvergence.lean - theorem UniformFun.continuousSMul_induced_of_range_bounded - theorem UniformOnFun.continuousSMul_induced_of_image_bounded - theorem UniformOnFun.continuousSMul_submodule_of_image_bounded 2024-06-13 08:27:45 6be3561 perf(Analysis/InnerProductSpace/OfNorm): replace slow continuity call… (#13769) … by fun_prop. The `continuity` invocation took 2.8s on CI before, `fun_prop` takes perhaps 0.1s in this instance. Speeds up the whole file by 27%. ESTIMATED CHANGES Modified Mathlib/Analysis/InnerProductSpace/OfNorm.lean 2024-06-13 06:26:50 06caa19 chore: speed-up Algebra.Homology.HomotopyCategory.SingleFunctors (#13794) ESTIMATED CHANGES Modified Mathlib/Algebra/Homology/HomotopyCategory/SingleFunctors.lean 2024-06-13 04:09:53 cc10402 chore: regularly update dependencies (#13489) If the update fails, it will leave the PR open, preventing the action from creating more such PRs. Also adds a workflow action that reports on zulip if one of these PRs fails. ESTIMATED CHANGES Added .github/workflows/update_dependencies.yml Added .github/workflows/update_dependencies_zulip.yml 2024-06-13 02:15:21 616a338 feat : added `Module.End.finite_spectrum` and `Matrix.finite_spectrum` (#13765) The spectrum of an endomorphism of a finite dimensional vector space, and that of an n x n matrix, is finite. ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/Eigenspace/Minpoly.lean + theorem Matrix.finite_spectrum + theorem Module.End.finite_spectrum 2024-06-13 02:15:20 495396d chore: split Mathlib.Data.Complex.Module (#13762) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Analysis/Complex/AbelLimit.lean Modified Mathlib/Analysis/Complex/Conformal.lean Modified Mathlib/Analysis/InnerProductSpace/TwoDim.lean Modified Mathlib/Analysis/PSeriesComplex.lean Modified Mathlib/Computability/AkraBazzi/GrowsPolynomially.lean Added Mathlib/Data/Complex/FiniteDimensional.lean + theorem Complex.finrank_real_complex + theorem Complex.finrank_real_complex_fact + theorem Complex.nonempty_linearEquiv_real + theorem Complex.rank_rat_complex + theorem Complex.rank_real_complex'.{u} + theorem Complex.rank_real_complex + theorem Real.rank_rat_real + theorem finrank_real_of_complex + theorem rank_real_of_complex Modified Mathlib/Data/Complex/Module.lean - theorem Complex.finrank_real_complex - theorem Complex.finrank_real_complex_fact - theorem Complex.nonempty_linearEquiv_real - theorem Complex.rank_rat_complex - theorem Complex.rank_real_complex'.{u} - theorem Complex.rank_real_complex - theorem Real.rank_rat_real - theorem finrank_real_of_complex - theorem rank_real_of_complex Modified Mathlib/NumberTheory/LSeries/Basic.lean Modified Mathlib/Topology/Instances/Complex.lean 2024-06-13 01:47:19 a7ed48f feat : added `spectrum.conjugate_units` results to `Algebra.Algebra.Spectrum`, and `spectrum.conjugate_unitary` results to `Algebra.Star.Unitary`. (#13729) Included proofs that conjugation by a unit preserves the spectrum, and conjugation by a unitary preserves the spectrum. ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/Spectrum.lean + theorem spectrum.units_conjugate' + theorem spectrum.units_conjugate Modified Mathlib/Algebra/Star/Unitary.lean + theorem unitary.spectrum.unitary_conjugate' + theorem unitary.spectrum.unitary_conjugate Modified Mathlib/Analysis/NormedSpace/Star/Basic.lean 2024-06-13 00:50:23 7db5e4e chore(GroupTheory/Coxeter/Reflection): squeeze simps (#13787) ESTIMATED CHANGES Modified Mathlib/GroupTheory/Coxeter/Inversion.lean 2024-06-13 00:50:22 637a8aa tech debt: add deprecations without date (#13778) [Zulip discussion](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/Technical.20Debt.20Counters/near/444271749) ESTIMATED CHANGES Modified scripts/technical-debt-counters.sh 2024-06-13 00:50:21 cc4d764 feat: Add lemmas about finite products of measures (#13311) Add the following lemmas about finite product of measures and measurable equivalences: - `piCongrLeft_apply_apply` - `pi_map_piCongrLeft` - `pi_map_piOptionEquivProd` ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Constructions/Pi.lean + theorem MeasureTheory.Measure.pi_map_piCongrLeft + theorem MeasureTheory.Measure.pi_map_piOptionEquivProd Modified Mathlib/MeasureTheory/MeasurableSpace/Basic.lean + theorem MeasurableEquiv.piCongrLeft_apply_apply 2024-06-13 00:50:20 b3e51ce feat: Define `Pi.orthonormalBasis` (#12242) Define an orthonormal basis on a pi space from a family of orthonormal bases. ESTIMATED CHANGES Modified Mathlib/Analysis/InnerProductSpace/PiL2.lean + theorem OrthonormalBasis.reindex_toBasis + theorem Pi.orthonormalBasis.toBasis + theorem Pi.orthonormalBasis_apply + theorem Pi.orthonormalBasis_repr Modified Mathlib/Analysis/NormedSpace/PiLp.lean + def LinearIsometryEquiv.piLpCurry + theorem LinearIsometryEquiv.piLpCurry_apply + theorem LinearIsometryEquiv.piLpCurry_symm_apply 2024-06-12 23:50:47 f6f222a chore(Order/WithBot): add several `simp, norm_cast` lemmas (#13640) ESTIMATED CHANGES Modified Mathlib/Order/WithBot.lean + theorem WithBot.coe_eq_top + theorem WithBot.coe_top + theorem WithBot.top_eq_coe + theorem WithTop.bot_eq_coe + theorem WithTop.coe_bot + theorem WithTop.coe_eq_bot 2024-06-12 19:27:44 dfc711a chore: fix some porting notes about simp_rw (#13773) ESTIMATED CHANGES Modified Archive/Wiedijk100Theorems/CubingACube.lean Modified Mathlib/Analysis/Convex/Between.lean Modified Mathlib/Data/Fin/Tuple/NatAntidiagonal.lean Modified Mathlib/Data/Set/Image.lean Modified Mathlib/Data/Set/Subsingleton.lean 2024-06-12 18:41:28 9035d15 feat: port `itauto` from lean 3 (#9398) This tactic solves problems in intuitionistic propositional logic. It also produces nice proofs when doing so, so it is useful even for proving classical theorems (using the `itauto!` variant to enable EM) and observing the results with `#explode`. ```lean example (p : Prop) : ¬(p ↔ ¬p) := by itauto ``` ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Mathport/Syntax.lean Modified Mathlib/Tactic.lean Added Mathlib/Tactic/ITauto.lean + def Mathlib.Tactic.ITauto.AndKind.cmp + def Mathlib.Tactic.ITauto.AndKind.sides + inductive Mathlib.Tactic.ITauto.AndKind + def Mathlib.Tactic.ITauto.Context.format + def Mathlib.Tactic.ITauto.Context.withAdd + def Mathlib.Tactic.ITauto.Context + def Mathlib.Tactic.ITauto.IProp.and + def Mathlib.Tactic.ITauto.IProp.cmp + def Mathlib.Tactic.ITauto.IProp.eq + def Mathlib.Tactic.ITauto.IProp.format + def Mathlib.Tactic.ITauto.IProp.iff + def Mathlib.Tactic.ITauto.IProp.not + def Mathlib.Tactic.ITauto.IProp.xor + inductive Mathlib.Tactic.ITauto.IProp + def Mathlib.Tactic.ITauto.Proof.app + def Mathlib.Tactic.ITauto.Proof.exfalso + def Mathlib.Tactic.ITauto.Proof.format + def Mathlib.Tactic.ITauto.Proof.orElim + inductive Mathlib.Tactic.ITauto.Proof + def Mathlib.Tactic.ITauto.freshName + def Mathlib.Tactic.ITauto.isOk + def Mathlib.Tactic.ITauto.itautoCore + def Mathlib.Tactic.ITauto.mapProof + def Mathlib.Tactic.ITauto.whenOk Modified scripts/noshake.json Added test/itauto.lean 2024-06-12 15:51:11 9a5f5b6 docs(Condensed): update the docstrings in condensed files (#13775) ESTIMATED CHANGES Modified Mathlib/Condensed/Basic.lean Modified Mathlib/Condensed/Discrete.lean Modified Mathlib/Condensed/Light/Discrete.lean Modified Mathlib/Condensed/Light/Explicit.lean Modified Mathlib/Condensed/Limits.lean Modified Mathlib/Condensed/Solid.lean 2024-06-12 15:03:53 7144544 chore(Algebra/CharP/MixedCharZero): drop superfluous porting note (#13763) ESTIMATED CHANGES Modified Mathlib/Algebra/CharP/MixedCharZero.lean 2024-06-12 15:03:52 effa9ce chore(*): more since := in deprecated (#13743) ESTIMATED CHANGES Modified Mathlib/Data/Fin/Basic.lean +/- theorem Fin.succAbove_lt_ge Modified Mathlib/Data/Int/Bitwise.lean Modified Mathlib/Data/Matrix/Basic.lean Modified Mathlib/RingTheory/UniqueFactorizationDomain.lean Modified Mathlib/Topology/MetricSpace/PseudoMetric.lean Modified Mathlib/Topology/Order.lean Modified Mathlib/Topology/Order/Basic.lean Modified Mathlib/Topology/Order/LeftRightNhds.lean 2024-06-12 14:31:08 e0e6e30 chore: move Complex.equivRealProdAddHom earlier (#13760) ESTIMATED CHANGES Modified Mathlib/Data/Complex/Basic.lean + def Complex.equivRealProdAddHom + theorem Complex.equivRealProdAddHom_symm_apply Modified Mathlib/Data/Complex/Module.lean - def Complex.equivRealProdAddHom - theorem Complex.equivRealProdAddHom_symm_apply 2024-06-12 14:00:41 81e2c63 chore(HashMap): deprecated unused API additions (2/2) (#13753) - [x] depends on: #13752 ESTIMATED CHANGES Modified Mathlib/Data/HashMap.lean Modified Mathlib/Tactic/Linarith/Preprocessing.lean 2024-06-12 13:30:41 a073287 chore: split Mathlib.MeasureTheory.Function.StronglyMeasurable.Basic (#13756) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Analysis/Calculus/FDeriv/Measurable.lean Modified Mathlib/MeasureTheory/Function/AEEqFun/DomAct.lean Modified Mathlib/MeasureTheory/Function/L1Space.lean Modified Mathlib/MeasureTheory/Function/LpSpace.lean Modified Mathlib/MeasureTheory/Function/StronglyMeasurable/Basic.lean - theorem ContinuousLinearMap.aestronglyMeasurable_comp₂ - theorem MeasureTheory.AEStronglyMeasurable.apply_continuousLinearMap - theorem MeasureTheory.AEStronglyMeasurable.comp_measurePreserving - theorem MeasureTheory.MeasurePreserving.aestronglyMeasurable_comp_iff - theorem StronglyMeasurable.apply_continuousLinearMap - theorem aestronglyMeasurable_smul_const_iff - theorem aestronglyMeasurable_withDensity_iff Added Mathlib/MeasureTheory/Function/StronglyMeasurable/Lemmas.lean + theorem ContinuousLinearMap.aestronglyMeasurable_comp₂ + theorem MeasureTheory.AEStronglyMeasurable.apply_continuousLinearMap + theorem MeasureTheory.AEStronglyMeasurable.comp_measurePreserving + theorem MeasureTheory.MeasurePreserving.aestronglyMeasurable_comp_iff + theorem StronglyMeasurable.apply_continuousLinearMap + theorem aestronglyMeasurable_smul_const_iff + theorem aestronglyMeasurable_withDensity_iff Modified Mathlib/MeasureTheory/Function/StronglyMeasurable/Lp.lean Modified test/measurability.lean 2024-06-12 12:51:28 7bee189 fix: typo in module docstring (#13661) ESTIMATED CHANGES Modified Mathlib/Analysis/NormedSpace/ProdLp.lean 2024-06-12 12:33:22 2764b3b feat: add `alias` to the keywords tracked by `move_decls` (#13731) As reported in #13725. ESTIMATED CHANGES Modified scripts/no_lost_declarations.sh 2024-06-12 11:46:37 c542c3a chore(linarith): remove unused import (#13745) ESTIMATED CHANGES Modified Mathlib/Tactic/Linarith/Frontend.lean 2024-06-12 11:07:48 1660695 feat: generalize `Matrix.PosDef.det_pos` to complex matrices (#13744) Also adds some missing `norm_cast` lemmas ESTIMATED CHANGES Modified Mathlib/Analysis/RCLike/Basic.lean + theorem RCLike.ofReal_lt_ofReal + theorem RCLike.ofReal_lt_zero + theorem RCLike.ofReal_pos Modified Mathlib/LinearAlgebra/Matrix/PosDef.lean +/- theorem Matrix.PosDef.det_pos 2024-06-12 10:07:51 c290d69 feat(RingTheory): finite type and finite presentation are stable under base change (#13696) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/RingTheory/FiniteStability.lean + theorem Algebra.FiniteType.baseChangeAux_surj Modified Mathlib/RingTheory/RingHom/FiniteType.lean + theorem RingHom.finiteType_stableUnderBaseChange Modified Mathlib/RingTheory/TensorProduct/MvPolynomial.lean + theorem MvPolynomial.algebraTensorAlgEquiv_symm_X + theorem MvPolynomial.algebraTensorAlgEquiv_symm_monomial + theorem MvPolynomial.algebraTensorAlgEquiv_tmul 2024-06-12 09:13:59 54db047 chore(Algebra/Order/Module/Defs): remove unused assumptions (#13465) ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Module/Defs.lean +/- theorem smul_add_smul_le_smul_add_smul' +/- theorem smul_add_smul_le_smul_add_smul +/- theorem smul_add_smul_lt_smul_add_smul' +/- theorem smul_add_smul_lt_smul_add_smul 2024-06-12 09:13:58 4ab4901 feat: Cardinality of a finset under a surjective map (#13435) Prove a few easy (but annoying to prove on the fly) results about cardinality of finsets: * If `f` is surjective from `s` to `t`, then `t.card ≤ s.card`. * If two finsets `t`, `u` are subsets of `s` and `s.card < t.card + u.card`, then `t` and `u` are not disjoint. Rename `Finset.card_le_card_of_inj_on` to `Finset.card_le_card_of_injOn` and state it using `Set.InjOn`. Golf `Finset.surj_on_of_inj_on_of_card_le`. From LeanAPAP ESTIMATED CHANGES Modified Mathlib/Analysis/BoxIntegral/Partition/Basic.lean Modified Mathlib/Combinatorics/Additive/Energy.lean Modified Mathlib/Combinatorics/Additive/PluenneckeRuzsa.lean Modified Mathlib/Combinatorics/SimpleGraph/Triangle/Counting.lean Modified Mathlib/Data/Finset/Card.lean + theorem Finset.card_le_card_of_injOn - theorem Finset.card_le_card_of_inj_on + theorem Finset.card_le_card_of_surjOn +/- theorem Finset.inj_on_of_surj_on_of_card_le + theorem Finset.inter_nonempty_of_card_lt_card_add_card +/- theorem Finset.le_card_of_inj_on_range +/- theorem Finset.surj_on_of_inj_on_of_card_le Modified Mathlib/Data/Fintype/Card.lean Modified Mathlib/NumberTheory/MaricaSchoenheim.lean Modified Mathlib/Order/Partition/Finpartition.lean Modified Mathlib/RingTheory/IntegralDomain.lean 2024-06-12 08:11:42 b6cab8a feat: a `Try this` deprecation tool (#13691) ### `deprecate to` -- a deprecation tool Writing ```lean deprecate to new_name new_name₂ ... new_nameₙ theorem old_name : True := .intro ``` where `new_name new_name₂ ... new_nameₙ` is a sequence of identifiers produces the `Try this` suggestion: ```lean theorem new_name : True := .intro @[deprecated (since := "YYYY-MM-DD")] alias old_name := new_name @[deprecated (since := "YYYY-MM-DD")] alias old_name₂ := new_name₂ ... @[deprecated (since := "YYYY-MM-DD")] alias old_nameₙ := new_nameₙ ``` where `old_name old_name₂ ... old_nameₙ` are the non-blacklisted declarations (auto)generated by the initial command. The "YYYY-MM-DD" entry is today's date and it is automatically filled in. (This evolved from the code of #10864, before switching to the "macro" setting. The code here suggests a `Try this`.) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Tactic.lean Modified Mathlib/Tactic/Common.lean Added Mathlib/Tactic/DeprecateMe.lean + def Mathlib.Tactic.DeprecateMe.mkDeprecationStx + def Mathlib.Tactic.DeprecateMe.newNames + def Mathlib.Tactic.DeprecateMe.renameTheorem Added test/DeprecateMe.lean + theorem mul_easy_deprecated 2024-06-12 08:11:40 4953740 fix(AlgebraicGeometry/EllipticCurve): high prio for point notation (#13448) This makes things like `#synth AddCommGroup W⟮ℚ⟯` parse, for `W : WeierstrassCurve ℚ` (before, you had to write `#synth AddCommGroup (W⟮ℚ⟯)`). ESTIMATED CHANGES Modified Mathlib/AlgebraicGeometry/EllipticCurve/Affine.lean 2024-06-12 08:11:39 076eee0 feat: `@[simp]` `Nat.count` / `Nat.nth` of `fun _ ↦ True`, `False` (#13378) ESTIMATED CHANGES Modified Mathlib/Data/Nat/Count.lean + theorem Nat.count_false + theorem Nat.count_of_forall + theorem Nat.count_of_forall_not + theorem Nat.count_true Modified Mathlib/Data/Nat/Nth.lean + theorem Nat.nth_false + theorem Nat.nth_of_forall + theorem Nat.nth_of_forall_not + theorem Nat.nth_true 2024-06-12 08:11:38 5e9f733 feat(Algebra): auxiliary results for proofs about elliptic divisibility sequences (#13153) `Int.strongRec`: if a proposition holds for integers less than a threshold, and it holds for an integer above the threshold if it holds for all smaller integers, then it holds for all integers. `negOnePow_abs` says (-1)^|n|=(-1)^n `pos_iff_two_le_of_even` and `lt_iff_add_two_le_of_even_sub` are two lemmas about the interaction of parity and the order on the integers. `Equiv.Perm.closure_isSwap` is strengthened to say the sub**monoid** generated by transpositions is the whole group, and moreover show transpositions of adjacent elements are enough. ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Ring/Int.lean + theorem Int.add_two_le_iff_lt_of_even_sub + theorem Int.two_le_iff_pos_of_even Modified Mathlib/Algebra/Ring/NegOnePow.lean + theorem Int.negOnePow_abs Modified Mathlib/Data/Int/Defs.lean + theorem Int.inductionOn'_add_one + theorem Int.inductionOn'_self + theorem Int.inductionOn'_sub_one + theorem Int.le_add_iff_lt_of_dvd_sub + theorem Int.le_iff_pos_of_dvd + theorem Int.strongRec_of_ge + theorem Int.strongRec_of_lt Modified Mathlib/Data/Nat/Defs.lean + theorem Nat.div_ne_zero_iff_of_dvd + theorem Nat.le_iff_ne_zero_of_dvd Modified Mathlib/GroupTheory/Perm/Sign.lean +/- theorem Equiv.Perm.closure_isSwap + theorem Equiv.Perm.mclosure_isSwap + theorem Equiv.Perm.mclosure_swap_castSucc_succ Modified Mathlib/LinearAlgebra/Multilinear/Basic.lean 2024-06-12 07:57:59 d085ccc Feat (Analysis/Normed/Ring/Seminorm): add lemmas on equivalence of MulRingNorms (#12517) Include the following lemmas on equivalence of `MulRingNorms`. ```lean lemma f_of_abs_eq_f (x : ℤ) : f (Int.natAbs x) = f x lemma NormRat_eq_on_Int_iff_eq_on_Nat : (∀ n : ℕ , f n = g n) ↔ (∀ n : ℤ , f n = g n) lemma NormRat_eq_iff_eq_on_Nat : (∀ n : ℕ , f n = g n) ↔ f = g lemma NormRat_equiv_iff_equiv_on_Nat : (∃ c : ℝ, 0 < c ∧ (∀ n : ℕ , (f n)^c = g n)) ↔ f.equiv g ``` David Kurniadi Angdinata [dka31@cantab.ac.uk](mailto:dka31@cantab.ac.uk) Fabrizio Barroero [fabrizio.barroero@uniroma3.it](mailto:fabrizio.barroero@uniroma3.it) Laura Capuano [laura.capuano@uniroma3.it](mailto:laura.capuano@uniroma3.it) Nirvana Coppola [nirvanac93@gmail.com](mailto:nirvanac93@gmail.com) María Inés de Frutos Fernández [maria.defrutos@uam.es](mailto:maria.defrutos@uam.es) Silvain Rideau-Kikuchi [silvain.rideau-kikuchi@ens.fr](mailto:silvain.rideau-kikuchi@ens.fr) Sam van Gool [vangool@irif.fr](mailto:vangool@irif.fr) Francesco Veneziano [veneziano@dima.unige.it](mailto:veneziano@dima.unige.it) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Analysis/Normed/Ring/Seminorm.lean + theorem MulRingNorm.apply_natAbs_eq Added Mathlib/NumberTheory/Ostrowski.lean + theorem Rat.MulRingNorm.eq_on_Nat_iff_eq + theorem Rat.MulRingNorm.eq_on_Nat_iff_eq_on_Int + theorem Rat.MulRingNorm.equiv_on_Nat_iff_equiv Modified docs/references.bib 2024-06-12 06:57:05 d1d1e4b chore: address unusedHavesSuffices warning (#13754) This linter was silently not doing anything until https://github.com/leanprover/lean4/pull/4410 was fixed, and now it is working so a backlog of warnings needed to be addressed. Some were addressed here: https://github.com/leanprover-community/mathlib4/pull/13680. The warnings in this PRs are false positives (https://github.com/leanprover-community/batteries/issues/428?), but a workaround is put in place. ESTIMATED CHANGES Modified Mathlib/Data/Nat/Log.lean 2024-06-12 05:55:17 fbf1dad chore: remove unused countLocalHypsUsed (#13751) This is an orphaned meta function, that used to be used in `rw?`, which has since moved to core. I wrote it, and I'm pretty sure I was the only user, so I would like to just delete it without a deprecation. ESTIMATED CHANGES Modified Mathlib/Init/Align.lean Modified Mathlib/Init/Logic.lean Modified Mathlib/Lean/Meta.lean - def Lean.Meta.countLocalHypsUsed Modified Mathlib/Tactic/Relation/Trans.lean Modified scripts/noshake.json 2024-06-12 04:21:22 868018d chore(*): removing unused imports (#13747) These are imports of material from Batteries. Not sure why `shake` has not complained. ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Ring/WithTop.lean Modified Mathlib/Data/BinaryHeap.lean Modified Mathlib/Data/Int/ModEq.lean Modified Mathlib/Data/List/Basic.lean Modified Mathlib/Data/List/Defs.lean Modified Mathlib/Data/Seq/Seq.lean Modified Mathlib/Init/Align.lean Modified Mathlib/Init/Data/Bool/Basic.lean Modified Mathlib/Init/Data/Int/Basic.lean Modified Mathlib/Init/Data/Int/DivMod.lean Modified Mathlib/Init/Data/Int/Lemmas.lean Modified Mathlib/Tactic/Cases.lean Modified Mathlib/Tactic/FunProp/RefinedDiscrTree.lean Modified Mathlib/Tactic/FunProp/Theorems.lean Modified Mathlib/Tactic/FunProp/Types.lean Modified Mathlib/Tactic/Linarith/Parsing.lean Modified Mathlib/Testing/SlimCheck/Functions.lean Modified test/MkIffOfInductive.lean Modified test/propose.lean Modified test/trans.lean 2024-06-12 02:49:13 c97b50a chore: bump dependencies (#13752) ESTIMATED CHANGES Modified Mathlib/Data/List/Basic.lean - theorem List.modifyNth_nil - theorem List.modifyNth_succ_cons - theorem List.modifyNth_zero_cons Modified lake-manifest.json 2024-06-12 01:24:08 2b37c48 chore(GroupTheory/Perm/List): nthLe -> get migration (#13446) chore(GroupTheory/Perm/List): nthLe -> get migration Rewrite theorems in GroupTheory/Perm/List to use `List.get`. Deprecate old ones and rewrite them as thin wrappers around new ones. ESTIMATED CHANGES Modified Mathlib/GroupTheory/Perm/List.lean +/- theorem List.formPerm_apply_get + theorem List.formPerm_apply_get_length + theorem List.formPerm_apply_get_zero + theorem List.formPerm_apply_lt_get +/- theorem List.formPerm_pow_apply_get 2024-06-11 23:44:44 d19a0ce chore: fix junk value for `sInf` on `WithTop` (#13717) As pointed out in https://leanprover.zulipchat.com/#narrow/stream/113489-new-members/topic/Definition.20of.20.60WithTop.2EinstInfSet.60/near/443609808, the current choice of junk value for `sInf s` when `s : Set (WithTop α)` is not bounded below does not coincide with `sInf ∅`. This makes it impossible to get a `ConditionallyCompleteLinearOrder` structure on `WithTop α` as we require the junk values to coincide. This PR fixes the choice of junk value for `sInf s` when `s : Set (WithTop α)` is not bounded below, making it equal to `⊤ = sInf ∅`. ESTIMATED CHANGES Modified Mathlib/Data/ENNReal/Basic.lean +/- theorem ENNReal.coe_sInf Modified Mathlib/Data/ENat/Lattice.lean +/- theorem ENat.coe_iInf +/- theorem ENat.coe_sInf Modified Mathlib/Order/ConditionallyCompleteLattice/Basic.lean +/- theorem WithBot.ciSup_empty +/- theorem WithBot.coe_iInf +/- theorem WithBot.coe_iSup +/- theorem WithBot.coe_sInf' +/- theorem WithBot.coe_sSup' - theorem WithBot.csSup_empty +/- theorem WithBot.sInf_eq + theorem WithBot.sSup_empty +/- theorem WithBot.sSup_eq +/- theorem WithTop.coe_iInf +/- theorem WithTop.coe_iSup +/- theorem WithTop.coe_sInf' +/- theorem WithTop.coe_sInf +/- theorem WithTop.coe_sSup' +/- theorem WithTop.iInf_empty +/- theorem WithTop.sInf_empty +/- theorem WithTop.sInf_eq +/- theorem WithTop.sSup_eq 2024-06-11 23:44:43 e5c264c feat(Data/Set/Function): simp lemmas for bij/surj/mapsTo and empty set (#13688) We add `simp` lemmas for `SurjOn`, `MapsTo` and `BijOn` in the cases where the terms force sets to be empty. ESTIMATED CHANGES Modified Mathlib/Data/Set/Function.lean + theorem Set.bijOn_empty_iff_left + theorem Set.bijOn_empty_iff_right + theorem Set.mapsTo_empty_iff + theorem Set.surjOn_empty_iff 2024-06-11 22:52:15 a43df3c chore(*): more `since :=` in `deprecated` (#13735) ESTIMATED CHANGES Modified Mathlib/Data/List/Basic.lean Modified Mathlib/Order/Cover.lean Modified Mathlib/Order/Filter/Germ.lean Modified Mathlib/Probability/Kernel/MeasureCompProd.lean Modified Mathlib/RingTheory/Ideal/Operations.lean Modified Mathlib/RingTheory/Localization/Away/Basic.lean Modified Mathlib/RingTheory/Multiplicity.lean Modified Mathlib/RingTheory/Noetherian.lean Modified Mathlib/SetTheory/Cardinal/Basic.lean Modified Mathlib/SetTheory/Cardinal/Ordinal.lean Modified Mathlib/SetTheory/Cardinal/PartENat.lean Modified Mathlib/SetTheory/Lists.lean Modified Mathlib/Topology/Algebra/Module/Multilinear/Topology.lean Modified Mathlib/Topology/Algebra/WithZeroTopology.lean +/- theorem WithZeroTopology.t3Space Modified Mathlib/Topology/Compactness/Compact.lean +/- theorem Nat.cocompact_eq Modified Mathlib/Topology/Compactness/LocallyCompact.lean Modified Mathlib/Topology/Instances/EReal.lean Modified Mathlib/Topology/Instances/Irrational.lean 2024-06-11 19:39:48 e16925c refactor(Tactic/Linarith): introduce `UsableInSimplexAlgorithm` class to allow the use of sparse matrix types in the oracle (#13535) This is the first part of #12819, which I decided to split into two parts. The initial goal is to enable the use of sparse matrices in the `linarith`'s oracle based on the Simplex Algorithm, which speeds up `linarith`, and especially `nlinarith`, in many cases. * Introduce the `UsableInSimplexAlgorithm` class, which specifies the operations required from a matrix type for use in Gauss Elimination and the Simplex Algorithm within the corresponding oracle for the `linarith` tactic. Rewrite these algorithms to use this class, allowing any matrix type to be used. * Make `Matrix` an instance of this class. ESTIMATED CHANGES Modified Mathlib/Tactic/Linarith/Oracle/SimplexAlgorithm.lean Modified Mathlib/Tactic/Linarith/SimplexAlgorithm/Datatypes.lean - structure Linarith.SimplexAlgorithm.Table + structure Linarith.SimplexAlgorithm.Tableau Modified Mathlib/Tactic/Linarith/SimplexAlgorithm/Gauss.lean - def Linarith.SimplexAlgorithm.Gauss.divideRow +/- def Linarith.SimplexAlgorithm.Gauss.findNonzeroRow - def Linarith.SimplexAlgorithm.Gauss.getTable - def Linarith.SimplexAlgorithm.Gauss.getTableImp + def Linarith.SimplexAlgorithm.Gauss.getTableau + def Linarith.SimplexAlgorithm.Gauss.getTableauImp - def Linarith.SimplexAlgorithm.Gauss.subtractRow - def Linarith.SimplexAlgorithm.Gauss.swapRows Modified Mathlib/Tactic/Linarith/SimplexAlgorithm/PositiveVector.lean +/- def Linarith.SimplexAlgorithm.extractSolution +/- def Linarith.SimplexAlgorithm.findPositiveVector +/- def Linarith.SimplexAlgorithm.stateLP Modified Mathlib/Tactic/Linarith/SimplexAlgorithm/SimplexAlgorithm.lean - structure Linarith.SimplexAlgorithm.SimplexAlgorithmState +/- def Linarith.SimplexAlgorithm.checkSuccess +/- def Linarith.SimplexAlgorithm.chooseEnteringVar +/- def Linarith.SimplexAlgorithm.chooseExitingVar +/- def Linarith.SimplexAlgorithm.choosePivots +/- def Linarith.SimplexAlgorithm.doPivotOperation +/- def Linarith.SimplexAlgorithm.runSimplexAlgorithm - def Linarith.SimplexAlgorithm.runSimplexAlgorithmImp Modified test/linarith.lean 2024-06-11 14:59:06 965c7f8 feat(RingTheory/AdicCompletion): functoriality (#12543) Adds functoriality of adic completions. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/DirectSum/Basic.lean + theorem DirectSum.of_apply + theorem DirectSum.sum_univ_of Modified Mathlib/RingTheory/AdicCompletion/Algebra.lean + theorem AdicCompletion.val_smul_eq_evalₐ_smul Added Mathlib/RingTheory/AdicCompletion/Functoriality.lean + def AdicCompletion.AdicCauchySequence.map + theorem AdicCompletion.AdicCauchySequence.map_comp + theorem AdicCompletion.AdicCauchySequence.map_comp_apply + theorem AdicCompletion.AdicCauchySequence.map_id + theorem AdicCompletion.component_sumInv + def AdicCompletion.congr + theorem AdicCompletion.congr_apply + theorem AdicCompletion.congr_symm_apply + def AdicCompletion.map + theorem AdicCompletion.map_comp + theorem AdicCompletion.map_comp_apply + theorem AdicCompletion.map_ext'' + theorem AdicCompletion.map_ext' + theorem AdicCompletion.map_ext + theorem AdicCompletion.map_id + theorem AdicCompletion.map_mk + theorem AdicCompletion.map_val_apply + def AdicCompletion.pi + def AdicCompletion.piEquivFin + theorem AdicCompletion.piEquivFin_apply + def AdicCompletion.piEquivOfFintype + theorem AdicCompletion.piEquivOfFintype_apply + def AdicCompletion.sum + def AdicCompletion.sumEquivOfFintype + theorem AdicCompletion.sumEquivOfFintype_apply + theorem AdicCompletion.sumEquivOfFintype_symm_apply + def AdicCompletion.sumInv + theorem AdicCompletion.sumInv_apply + theorem AdicCompletion.sumInv_comp_sum + theorem AdicCompletion.sum_comp_sumInv + theorem AdicCompletion.sum_lof + theorem AdicCompletion.sum_of + theorem AdicCompletion.transitionMap_comp_reduceModIdeal + theorem AdicCompletion.val_sum + def LinearMap.reduceModIdeal + theorem LinearMap.reduceModIdeal_apply 2024-06-11 13:49:39 bfaec99 feat: generalize `one_div_mul_add_mul_one_div_eq_one_div_add_one_div` (#13215) This provides a variant that works on invertible elements of semirings, via `invOf` and `Ring.inverse` This lets this be used on matrices. The original lemma is from https://github.com/leanprover/lean3/commit/816c315b501481cea4edae1f9eecbd05c554fb61. ESTIMATED CHANGES Modified Mathlib/Algebra/Field/Basic.lean + theorem inv_add_inv' +/- theorem inv_sub_inv' Modified Mathlib/Algebra/Ring/Invertible.lean + theorem Ring.inverse_add_inverse + theorem Ring.inverse_sub_inverse + theorem invOf_add_invOf + theorem invOf_sub_invOf Modified Mathlib/LinearAlgebra/Matrix/NonsingularInverse.lean + theorem Matrix.inv_add_inv + theorem Matrix.inv_sub_inv 2024-06-11 13:06:22 04738f5 feat(GroupTheory/Congruence/*): add some missing lemma and constructions of group congruence (#13610) 1. order isomorphism between congruence on group and opposite groups 2. congruence relation is preserved by finite product/sum ESTIMATED CHANGES Modified Mathlib.lean Renamed Mathlib/GroupTheory/Congruence.lean to Mathlib/GroupTheory/Congruence/Basic.lean Added Mathlib/GroupTheory/Congruence/BigOperators.lean Added Mathlib/GroupTheory/Congruence/Opposite.lean + def Con.op + def Con.orderIsoOp + def Con.unop Modified Mathlib/GroupTheory/Coprod/Basic.lean Modified Mathlib/GroupTheory/CoprodI.lean Modified Mathlib/GroupTheory/MonoidLocalization.lean Modified Mathlib/GroupTheory/QuotientGroup.lean Modified Mathlib/LinearAlgebra/PiTensorProduct.lean Modified Mathlib/LinearAlgebra/TensorProduct/Basic.lean Modified Mathlib/RingTheory/Congruence.lean 2024-06-11 13:06:21 0fe37d6 feat(Analysis/Matrix): lemmas about norms of matrix, preparation for Siegel's lemma (#13470) This PR contains `norm_eq_sup_sup_nnnorm (A : Matrix m n α) : ‖A‖ = Finset.sup Finset.univ fun i ↦ Finset.sup Finset.univ fun j ↦ ‖A i j‖₊`. It is used in the proof of Siegel's lemma. Some preliminary results used in the proof of Siegel's lemma can be found at #13487 [Zulip thread](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/Siegel's.20Lemma) ESTIMATED CHANGES Modified Mathlib/Analysis/Matrix.lean + theorem Matrix.norm_eq_sup_sup_nnnorm 2024-06-11 13:06:20 a3b20f6 refactor(LightProfinite): redefine light profinite spaces as second countable profinite spaces (#13319) Changes the definition of `LightProfinite` to the category of second countable totally disconnected compact Hausdorff spaces. The old `LightProfinite` is renamed to `LightDiagram` and we give an equivalence of categories between them. This changes `LightProfinite.Basic` to match `Profinite.Basic` more closely. It also contains the equivalence of categories with `LightDiagram` and an `EssentiallySmall` instance. The `Limits` and `EffectiveEpi` files now match their counterparts for `Profinite` more closely as well. This PR also adds a new feature: `LightProfinite` has countable limits and the functor to `Profinite` creates countable limits. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Topology/Category/LightProfinite/Basic.lean +/- def FintypeCat.toLightProfinite + def FintypeCat.toLightProfiniteFullyFaithful + def LightDiagram'.toLightFunctor + def LightDiagram'.toProfinite + structure LightDiagram' + def LightDiagram.equivSmall + def LightDiagram.toProfinite + structure LightDiagram - def LightProfinite'.toLightFunctor - def LightProfinite'.toProfinite - structure LightProfinite' + theorem LightProfinite.coe_comp + theorem LightProfinite.coe_id + theorem LightProfinite.epi_iff_surjective - def LightProfinite.equivSmall - theorem LightProfinite.ext - def LightProfinite.fintypeCatToLightProfinite + def LightProfinite.homeoOfIso + theorem LightProfinite.isClosedMap + theorem LightProfinite.isIso_of_bijective + def LightProfinite.isoEquivHomeo + def LightProfinite.isoOfHomeo - def LightProfinite.lightToProfinite + def LightProfinite.limitCone + def LightProfinite.limitConeIsLimit + theorem LightProfinite.mono_iff_injective + def LightProfinite.of + theorem LightProfinite.toCompHaus_comp_toTop - def LightProfinite.toProfinite +/- def LightProfinite.toTopCat + def LightProfinite.toTopCatFullyFaithful +/- structure LightProfinite + def lightDiagramToLightProfinite + def lightDiagramToProfinite + def lightProfiniteToCompHaus + def lightProfiniteToCompHausFullyFaithful + def lightToProfinite + def lightToProfiniteFullyFaithful Modified Mathlib/Topology/Category/LightProfinite/EffectiveEpi.lean - theorem LightProfinite.epi_iff_surjective Deleted Mathlib/Topology/Category/LightProfinite/IsLight.lean - theorem Profinite.isLight_of_mono - def Profinite.lightProfiniteConeOfHom - def Profinite.lightProfiniteConeOfHom_π_app' - def Profinite.lightProfiniteConeOfHom_π_app - def Profinite.lightProfiniteIsLimitOfMono Modified Mathlib/Topology/Category/LightProfinite/Limits.lean + theorem LightProfinite.Sigma.ι_comp_toFiniteCoproduct + def LightProfinite.coproductHomeoCoproduct + def LightProfinite.coproductIsoCoproduct + theorem LightProfinite.finiteCoproduct.ι_desc_apply + theorem LightProfinite.finiteCoproduct.ι_injective + theorem LightProfinite.finiteCoproduct.ι_jointly_surjective +/- def LightProfinite.finiteCoproduct +/- def LightProfinite.isTerminalPUnit + def LightProfinite.pullback.cone + def LightProfinite.pullback + def LightProfinite.pullbackHomeoPullback + def LightProfinite.pullbackIsoPullback + theorem LightProfinite.pullback_fst_eq + theorem LightProfinite.pullback_snd_eq 2024-06-11 12:05:59 5df366c chore(*): add more `since :=` fields to `deprecated` (#13708) ESTIMATED CHANGES Modified Mathlib/Logic/Basic.lean Modified Mathlib/MeasureTheory/Function/StronglyMeasurable/Basic.lean Modified Mathlib/MeasureTheory/Group/Measure.lean Modified Mathlib/MeasureTheory/Integral/IntegralEqImproper.lean Modified Mathlib/MeasureTheory/Integral/PeakFunction.lean Modified Mathlib/MeasureTheory/Integral/SetToL1.lean Modified Mathlib/MeasureTheory/MeasurableSpace/Basic.lean Modified Mathlib/MeasureTheory/MeasurableSpace/Defs.lean Modified Mathlib/MeasureTheory/Measure/Haar/Unique.lean Modified Mathlib/MeasureTheory/Measure/Lebesgue/VolumeOfBalls.lean Modified Mathlib/MeasureTheory/Measure/NullMeasurable.lean Modified Mathlib/NumberTheory/LSeries/Dirichlet.lean Modified Mathlib/NumberTheory/LucasLehmer.lean Modified Mathlib/NumberTheory/Zsqrtd/Basic.lean Modified Mathlib/SetTheory/Cardinal/ToNat.lean Modified Mathlib/Topology/Algebra/Group/Basic.lean Modified Mathlib/Topology/Algebra/InfiniteSum/NatInt.lean Modified Mathlib/Topology/Algebra/Order/Compact.lean 2024-06-11 08:52:01 303e719 feat: include commit hash in PR summary (#13716) This allows a "replay-like" feature for PR summaries, since the summary for each revision can be accessed via the `edited` button on the comment. ESTIMATED CHANGES Modified .github/workflows/PR_summary.yml 2024-06-11 08:52:00 d2a637b chore(yoneda): remove unneeded universe annotations which break after leanprover/lean4#4408 (#13707) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Yoneda.lean 2024-06-11 08:35:44 cdbd30e perf: speed up integrable_rpow_neg_one_add_norm_sq (#13699) This goes from about 20 seconds to instantaneous locally. ESTIMATED CHANGES Modified Mathlib/Analysis/SpecialFunctions/JapaneseBracket.lean 2024-06-11 07:52:07 fa87862 chore: fix diamond for WithTop subtraction (#13715) We have currently two different subtractions on `WithTop α`. * The first one, requiring that `α` has a zero, maps `x - ⊤` to `0`, and is the right convention when defining subtraction on ENat or ENNReal. * The second one, requiring a `LinearOrderedAddCommGroup`, maps `x - ⊤` to `⊤`. It is the additivization of the usual convention `x / 0 = 0`, and is relevant to work with valuations. Both instances apply for example to `WithTop ℤ`, creating a diamond. This PR changes the first instance to require a bottom element instead of a zero, to make sure that the two instances will apply in disjoint situations. This requires some new API for the second instance, to fix `Mathlib/Analysis/Analytic/Meromorphic.lean` which was (incorrectly) using the first instance. ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Group/WithTop.lean + theorem WithTop.LinearOrderedAddCommGroup.coe_neg + theorem WithTop.LinearOrderedAddCommGroup.coe_sub + theorem WithTop.LinearOrderedAddCommGroup.neg_top + theorem WithTop.LinearOrderedAddCommGroup.sub_eq_top_iff + theorem WithTop.LinearOrderedAddCommGroup.sub_top + theorem WithTop.LinearOrderedAddCommGroup.top_sub - theorem WithTop.coe_neg Modified Mathlib/Algebra/Order/Sub/WithTop.lean +/- theorem WithTop.map_sub +/- theorem WithTop.sub_top Modified Mathlib/Analysis/Analytic/Meromorphic.lean 2024-06-11 07:52:06 8b88570 chore: move cpow_mul_ofReal_nonneg earlier (#13700) It can't go into `Pow.Complex`, because `rpow` is only defined in `Pow.Real` in terms of `cpow`. ESTIMATED CHANGES Modified Mathlib/Analysis/MellinTransform.lean - theorem Complex.cpow_mul_ofReal_nonneg Modified Mathlib/Analysis/SpecialFunctions/Pow/Real.lean + theorem Complex.cpow_mul_ofReal_nonneg 2024-06-11 07:52:05 1530960 feat(MeasureTheory/Integral/Lebesgue): setLintegral_pos_iff (#13172) (MeasureTheory/Integral/Lebesgue): `setLintegral_pos_iff` For a given Measurable set `s`and a AEMeasurable function `f`, the subset of `s` where `f` is nonnegative is of nonnegative measure iff the lintegral of `f`on `s` is nonnegative. ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Integral/Lebesgue.lean + theorem MeasureTheory.setLintegral_pos_iff 2024-06-11 07:35:23 30fb6b8 chore: split application of the layer cake formula into its own file (#13702) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Analysis/SpecialFunctions/JapaneseBracket.lean Added Mathlib/Analysis/SpecialFunctions/Pow/Integral.lean + theorem MeasureTheory.lintegral_rpow_eq_lintegral_meas_le_mul + theorem MeasureTheory.lintegral_rpow_eq_lintegral_meas_lt_mul Modified Mathlib/MeasureTheory/Integral/Layercake.lean - theorem MeasureTheory.lintegral_rpow_eq_lintegral_meas_le_mul - theorem MeasureTheory.lintegral_rpow_eq_lintegral_meas_lt_mul Modified Mathlib/MeasureTheory/Measure/LevyProkhorovMetric.lean 2024-06-11 06:47:16 180e090 fix: do not remove `:=` or `where` in `move-decls` (#13714) This produces better reports of `instance (priority := ...)` changes. ESTIMATED CHANGES Modified scripts/no_lost_declarations.sh 2024-06-11 06:47:15 c912f4d feat(AlgebraicGeometry): expand api on topological scheme morphism properties (#13701) Deduce properties of `MorphismProperty.topologically P` from the respective properties stated in terms of topological spaces. ESTIMATED CHANGES Modified Mathlib/AlgebraicGeometry/Morphisms/Basic.lean + theorem AlgebraicGeometry.MorphismProperty.topologically_isStableUnderComposition + theorem AlgebraicGeometry.MorphismProperty.topologically_iso_le + theorem AlgebraicGeometry.MorphismProperty.topologically_propertyIsLocalAtTarget + theorem AlgebraicGeometry.MorphismProperty.topologically_respectsIso + theorem AlgebraicGeometry.morphismRestrict_base + theorem AlgebraicGeometry.propertyIsLocalAtTarget_of_morphismRestrict Modified Mathlib/AlgebraicGeometry/Morphisms/UniversallyClosed.lean - theorem AlgebraicGeometry.morphismRestrict_base 2024-06-11 06:47:14 5618bfd feat(AlgebraicGeometry/ProjectiveSpectrum/Scheme): morphism of locally ringed space $\mathrm{Proj}|_{D(f)} -> \mathrm{Spec} A^0_f$ (#13689) We construct a morphism of locally ringed spaces `α : Proj| (pbo f) ⟶ Spec.T A⁰_f` as the following: by the Gamma-Spec adjunction, it is sufficient to construct a ring map `A⁰_f → Γ(Proj, pbo f)` from the ring of homogeneous localization of `A` away from `f` to the local sections of structure sheaf of projective spectrum on the basic open set around `f`. The map `A⁰_f → Γ(Proj, pbo f)` is constructed in `awayToΓ` and is defined by sending `s ∈ A⁰_f` to the section `x ↦ s` on `pbo f`. ESTIMATED CHANGES Modified Mathlib/AlgebraicGeometry/ProjectiveSpectrum/Scheme.lean + def AlgebraicGeometry.ProjectiveSpectrum.Proj.awayToSection + theorem AlgebraicGeometry.ProjectiveSpectrum.Proj.awayToSection_germ + def AlgebraicGeometry.ProjectiveSpectrum.Proj.awayToΓ + theorem AlgebraicGeometry.ProjectiveSpectrum.Proj.awayToΓ_ΓToStalk + def AlgebraicGeometry.ProjectiveSpectrum.Proj.toSpec 2024-06-11 06:33:24 3e40581 feat(AlgebraicGeometry): definition of separated morphisms (#13698) Definition of separated morphisms. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/AlgebraicGeometry/Morphisms/ClosedImmersion.lean Modified Mathlib/AlgebraicGeometry/Morphisms/QuasiSeparated.lean Added Mathlib/AlgebraicGeometry/Morphisms/Separated.lean + theorem AlgebraicGeometry.IsSeparated.isSeparated_eq_diagonal_isClosedImmersion + theorem AlgebraicGeometry.IsSeparated.respectsIso 2024-06-11 03:54:42 8852c2c chore(Data/Bool/Basic): deprecate duplicate definitions (#13589) Deprecates theorems in favour of the versions in the Lean repository. This is actually pretty close to making `Data.Bool.Basic` a leaf file. We'd just need to move the LinearOrder instance elsewhere, and `injective_iff`. ESTIMATED CHANGES Modified Mathlib/Computability/RegularExpressions.lean Modified Mathlib/Data/Bool/AllAny.lean Modified Mathlib/Data/Bool/Basic.lean - theorem Bool.coe_decide - theorem Bool.decide_False - theorem Bool.decide_True - theorem Bool.decide_not - theorem Bool.eq_false_of_ne_true - theorem Bool.eq_iff_eq_true_iff - theorem Bool.eq_true_of_ne_false - theorem Bool.not_false' - theorem Bool.not_ne - theorem Bool.of_decide_iff Modified Mathlib/Data/Bool/Set.lean Modified Mathlib/Data/List/Perm.lean Modified Mathlib/Data/Nat/Bitwise.lean Modified Mathlib/Data/Num/Bitwise.lean Modified Mathlib/Init/Data/Bool/Lemmas.lean - theorem Bool.coe_and_iff - theorem Bool.coe_or_iff +/- theorem Bool.decide_congr 2024-06-11 03:41:36 3419feb chore: install elan when updating nightly-testing (#13711) Oops, updating nightly-testing was broken over the weekend. ESTIMATED CHANGES Modified .github/workflows/nightly_merge_master.yml 2024-06-11 01:22:29 c0f7722 feat(Data/Set/Basic): Lemmas about pairs (#12875) We add some basic API about two-element sets. This involves moving the 'pair' section further down the file because of the position of lemmas used in proofs. ESTIMATED CHANGES Modified Mathlib/Data/Set/Basic.lean + theorem Set.Nonempty.subset_pair_iff_eq + theorem Set.pair_diff_left + theorem Set.pair_diff_right + theorem Set.pair_subset + theorem Set.pair_subset_iff + theorem Set.subset_insert_iff + theorem Set.subset_pair_iff + theorem Set.subset_pair_iff_eq 2024-06-10 20:38:10 e86b8c5 chore(*): fix more deprecated dates (#13687) ESTIMATED CHANGES Modified Mathlib/Probability/Kernel/Basic.lean Modified Mathlib/Probability/Kernel/Disintegration/CdfToKernel.lean Modified Mathlib/Probability/Kernel/Disintegration/Integral.lean Modified Mathlib/RingTheory/Flat/Basic.lean 2024-06-10 20:38:08 c95c52e feat: category of bialgebras (#11973) The category of bialgebras over a commutative ring. Mimics `Mathlib.LinearAlgebra.QuadraticForm.QuadraticModuleCat.lean`. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Category/BialgebraCat/Basic.lean + def BialgEquiv.toBialgebraCatIso + theorem BialgEquiv.toBialgebraCatIso_refl + theorem BialgEquiv.toBialgebraCatIso_symm + theorem BialgEquiv.toBialgebraCatIso_trans + theorem BialgebraCat.Hom.toBialgHom_injective + structure BialgebraCat.Hom + theorem BialgebraCat.forget₂_algebra_map + theorem BialgebraCat.forget₂_algebra_obj + theorem BialgebraCat.forget₂_coalgebra_map + theorem BialgebraCat.forget₂_coalgebra_obj + theorem BialgebraCat.hom_ext + def BialgebraCat.of + theorem BialgebraCat.of_comul + theorem BialgebraCat.of_counit + theorem BialgebraCat.toBialgHom_comp + theorem BialgebraCat.toBialgHom_id + structure BialgebraCat + def CategoryTheory.Iso.toBialgEquiv + theorem CategoryTheory.Iso.toBialgEquiv_refl + theorem CategoryTheory.Iso.toBialgEquiv_symm + theorem CategoryTheory.Iso.toBialgEquiv_toBialgHom + theorem CategoryTheory.Iso.toBialgEquiv_trans Modified Mathlib/Algebra/Category/CoalgebraCat/Basic.lean + def CoalgEquiv.toCoalgebraCatIso + theorem CoalgEquiv.toCoalgebraCatIso_refl + theorem CoalgEquiv.toCoalgebraCatIso_symm + theorem CoalgEquiv.toCoalgebraCatIso_trans - def CoalgEquiv.toIso - theorem CoalgEquiv.toIso_refl - theorem CoalgEquiv.toIso_symm - theorem CoalgEquiv.toIso_trans 2024-06-10 19:57:48 4422acf fix: add deprecation alias (#13693) This PR adds a deprecation alias that was missing from #10088. ESTIMATED CHANGES Modified Mathlib/RingTheory/IntegralDomain.lean 2024-06-10 19:57:47 936ffbf chore(RingTheory/OreLocalization/Basic): Split file and to-additivise (#13559) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/GroupTheory/MonoidLocalization.lean Modified Mathlib/RingTheory/OreLocalization/Basic.lean - theorem OreLocalization.nontrivial_iff - theorem OreLocalization.nontrivial_of_nonZeroDivisors - theorem OreLocalization.numeratorHom_inj - theorem OreLocalization.right_distrib - theorem OreLocalization.subsingleton_iff - def OreLocalization.universalHom - theorem OreLocalization.universalHom_apply - theorem OreLocalization.universalHom_commutes - theorem OreLocalization.universalHom_unique Modified Mathlib/RingTheory/OreLocalization/OreSet.lean Added Mathlib/RingTheory/OreLocalization/Ring.lean + theorem OreLocalization.nontrivial_iff + theorem OreLocalization.nontrivial_of_nonZeroDivisors + theorem OreLocalization.numeratorHom_inj + theorem OreLocalization.right_distrib + theorem OreLocalization.subsingleton_iff + def OreLocalization.universalHom + theorem OreLocalization.universalHom_apply + theorem OreLocalization.universalHom_commutes + theorem OreLocalization.universalHom_unique 2024-06-10 19:57:45 14040d4 feat: the category of sheaves of modules is abelian (#13455) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Category/ModuleCat/Presheaf/ChangeOfRings.lean Modified Mathlib/Algebra/Category/ModuleCat/Presheaf/Limits.lean Modified Mathlib/Algebra/Category/ModuleCat/Presheaf/Sheafification.lean Modified Mathlib/Algebra/Category/ModuleCat/Sheaf.lean + theorem SheafOfModules.add_val Added Mathlib/Algebra/Category/ModuleCat/Sheaf/Abelian.lean Modified Mathlib/Algebra/Category/ModuleCat/Sheaf/ChangeOfRings.lean Modified Mathlib/Algebra/Category/ModuleCat/Sheaf/Limits.lean Modified Mathlib/AlgebraicGeometry/Modules/Sheaf.lean Modified Mathlib/CategoryTheory/Functor/ReflectsIso.lean + theorem CategoryTheory.reflectsIsomorphisms_of_comp 2024-06-10 19:34:45 6e0fcfb feat(AlgebraicGeometry/EllipticCurve/Jacobian): implement group law for Jacobian coordinates (#9405) Completes the proof of the group law in Jacobian coordinates, analogously to #8485 ESTIMATED CHANGES Modified Mathlib/AlgebraicGeometry/EllipticCurve/Group.lean - theorem WeierstrassCurve.Affine.Point.add_assoc - theorem WeierstrassCurve.Affine.Point.add_comm - theorem WeierstrassCurve.Affine.Point.add_eq_zero - theorem WeierstrassCurve.Affine.Point.add_left_neg - theorem WeierstrassCurve.Affine.Point.neg_add_eq_zero Modified Mathlib/AlgebraicGeometry/EllipticCurve/Jacobian.lean +/- theorem WeierstrassCurve.Jacobian.Point.toAffineLift_add +/- theorem WeierstrassCurve.Jacobian.Point.toAffineLift_neg Modified scripts/style-exceptions.txt 2024-06-10 18:57:27 69fa173 feat(Bicategory/LocallyDiscrete): add eqToHom lemmas (#13695) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Bicategory/LocallyDiscrete.lean + theorem CategoryTheory.LocallyDiscrete.eqToHom_toLoc + theorem CategoryTheory.OplaxFunctor.map₂_eqToHom +/- theorem Quiver.Hom.comp_toLoc +/- theorem Quiver.Hom.id_toLoc +/- def Quiver.Hom.toLoc 2024-06-10 14:50:27 9c33255 chore: move and generalize card_fiber_eq_of_mem_range (#10088) This PR moves the lemma `card_fiber_eq_of_mem_range` from `RingTheory/IntegralDomain` to `GroupTheory/Index` which makes far more sense. It also adds the additive version, generalizes to `MonoidHomClass`, and puts it in the `MonoidHom` namespace (instead of root). ESTIMATED CHANGES Modified Mathlib/GroupTheory/Index.lean + theorem MonoidHom.card_fiber_eq_of_mem_range Modified Mathlib/RingTheory/IntegralDomain.lean - theorem card_fiber_eq_of_mem_range 2024-06-10 12:50:52 1dd79a5 feat(FieldTheory): add results about minpoly (#12450) ESTIMATED CHANGES Modified Mathlib/FieldTheory/Adjoin.lean + theorem AdjoinRoot.algEquivOfAssociated_apply_root + theorem AdjoinRoot.algEquivOfAssociated_toAlgHom + theorem AdjoinRoot.algEquivOfEq_apply_root + theorem AdjoinRoot.algEquivOfEq_toAlgHom + theorem AdjoinRoot.algHomOfDvd_apply_root + theorem AdjoinRoot.coe_algEquivOfAssociated + theorem AdjoinRoot.coe_algEquivOfEq + theorem AdjoinRoot.coe_algHomOfDvd + theorem minpoly.algEquiv_apply + theorem minpoly.eq_of_root Modified Mathlib/FieldTheory/Minpoly/Basic.lean + theorem minpoly.aeval_algHom Modified Mathlib/FieldTheory/Normal.lean + theorem minpoly.exists_algEquiv_of_root' + theorem minpoly.exists_algEquiv_of_root Modified scripts/style-exceptions.txt 2024-06-10 12:28:00 913dc47 feat(RingTheory/Presentation): Develop API for presentations of algebras. (#12518) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/RingTheory/Generators.lean + theorem Algebra.Generators.Cotangent.ext + def Algebra.Generators.Cotangent.map + theorem Algebra.Generators.Cotangent.map_mk + def Algebra.Generators.Cotangent.mk + theorem Algebra.Generators.Cotangent.mk_surjective + def Algebra.Generators.Cotangent.of + theorem Algebra.Generators.Cotangent.of_add + theorem Algebra.Generators.Cotangent.of_val + theorem Algebra.Generators.Cotangent.of_zero + theorem Algebra.Generators.Cotangent.smul_eq_zero_of_mem + def Algebra.Generators.Cotangent.val + theorem Algebra.Generators.Cotangent.val_add + theorem Algebra.Generators.Cotangent.val_mk + theorem Algebra.Generators.Cotangent.val_of + theorem Algebra.Generators.Cotangent.val_smul''' + theorem Algebra.Generators.Cotangent.val_smul'' + theorem Algebra.Generators.Cotangent.val_smul' + theorem Algebra.Generators.Cotangent.val_smul + theorem Algebra.Generators.Cotangent.val_zero + def Algebra.Generators.Cotangent + theorem Algebra.Generators.Hom.algebraMap_toAlgHom + theorem Algebra.Generators.Hom.comp_id + def Algebra.Generators.Hom.equivAlgHom + theorem Algebra.Generators.Hom.id_comp + def Algebra.Generators.Hom.toAlgHom + theorem Algebra.Generators.Hom.toAlgHom_C + theorem Algebra.Generators.Hom.toAlgHom_X + structure Algebra.Generators.Hom + def Algebra.Generators.Simps.σ + theorem Algebra.Generators.aeval_val_σ + theorem Algebra.Generators.algebraMap_apply + theorem Algebra.Generators.algebraMap_eq + theorem Algebra.Generators.algebraMap_surjective + def Algebra.Generators.comp + def Algebra.Generators.defaultHom + def Algebra.Generators.extendScalars + def Algebra.Generators.ofAlgHom + def Algebra.Generators.ofComp + def Algebra.Generators.ofSet + def Algebra.Generators.ofSurjective + def Algebra.Generators.self + def Algebra.Generators.toComp + def Algebra.Generators.toExtendScalars + def Algebra.Generators.σ + theorem Algebra.Generators.σ_injective + theorem Algebra.Generators.σ_smul + structure Algebra.Generators Modified Mathlib/RingTheory/Ideal/Cotangent.lean + def Ideal.mapCotangent + theorem Ideal.mapCotangent_toCotangent 2024-06-10 11:56:59 ec8ad89 chore: move ProperSpace instances to ProperSpace.lean (#13659) This means `MetricSpace.Basic` no longer needs to depend on `MetricSpace.ProperSpace`. ESTIMATED CHANGES Modified Mathlib/Topology/MetricSpace/Basic.lean Modified Mathlib/Topology/MetricSpace/ProperSpace.lean Modified Mathlib/Topology/MetricSpace/PseudoMetric.lean Modified Mathlib/Topology/MetricSpace/ShrinkingLemma.lean 2024-06-10 11:04:51 5e33eb3 feat(AlgebraicGeometry/GammaSpecAdjunction): a missing lemma (#13412) Added the following lemma: Let $X$ be a locally ringed space, $R$ a ring and $U \subseteq \mathrm{Spec} R$ an open set. Then for any $f : R \to \Gamma(\mathcal O_X, X)$, if we denote $F$ as the corresponding morphism $X \to \mathrm{Spec} R$ under the gamma spec adjunction we have that the composition $res^{\mathrm{X}}\_{F^{-1}U} \circ f$ is equal to the composition $(R \to \mathcal{O}_{\mathrm{Spec} R}(U)\circ F(U)$ ```lean lemma toOpen_comp_locallyRingedSpaceAdjunction_homEquiv_app {X : LocallyRingedSpace} {R : Type u} [CommRing R] (f : LocallyRingedSpace.Γ.rightOp.obj X ⟶ op (CommRingCat.of R)) (U) : StructureSheaf.toOpen R U.unop ≫ (locallyRingedSpaceAdjunction.homEquiv X (op <| CommRingCat.of R) f).1.c.app U = f.unop ≫ X.presheaf.map (homOfLE le_top).op := by ``` found usefuly by Andrew during #12371 ESTIMATED CHANGES Modified Mathlib/AlgebraicGeometry/GammaSpecAdjunction.lean + theorem AlgebraicGeometry.ΓSpec.locallyRingedSpaceAdjunction_counit_app' + theorem AlgebraicGeometry.ΓSpec.locallyRingedSpaceAdjunction_counit_app + theorem AlgebraicGeometry.ΓSpec.locallyRingedSpaceAdjunction_homEquiv_apply' + theorem AlgebraicGeometry.ΓSpec.locallyRingedSpaceAdjunction_homEquiv_apply + theorem AlgebraicGeometry.ΓSpec.toOpen_comp_locallyRingedSpaceAdjunction_homEquiv_app Modified Mathlib/AlgebraicGeometry/Spec.lean + theorem AlgebraicGeometry.Spec.locallyRingedSpaceObj_presheaf' + theorem AlgebraicGeometry.Spec.locallyRingedSpaceObj_presheaf_map' + theorem AlgebraicGeometry.Spec.locallyRingedSpaceObj_presheaf_map + theorem AlgebraicGeometry.Spec.locallyRingedSpaceObj_sheaf' + theorem AlgebraicGeometry.Spec.locallyRingedSpaceObj_sheaf Modified Mathlib/CategoryTheory/Opposites.lean + theorem CategoryTheory.Functor.rightOp_map_unop 2024-06-10 11:04:50 0fa3e41 feat(AlgebraicGeometry/EllipticCurve/Jacobian): implement group operations on nonsingular rational points for Jacobian coordinates (#9436) Define a addition-preserving bijection `toAffine_addEquiv` with the affine case to prove `Point` is an abelian group. This is the fourth in a series of four PRs leading to #9405 and is analogous to #9420 ESTIMATED CHANGES Modified Mathlib/AlgebraicGeometry/EllipticCurve/Affine.lean + theorem WeierstrassCurve.Affine.Point.add_of_imp Modified Mathlib/AlgebraicGeometry/EllipticCurve/Jacobian.lean + theorem WeierstrassCurve.Jacobian.Point.add_def + theorem WeierstrassCurve.Jacobian.Point.add_point + def WeierstrassCurve.Jacobian.Point.fromAffine + theorem WeierstrassCurve.Jacobian.Point.fromAffine_some + theorem WeierstrassCurve.Jacobian.Point.fromAffine_zero + theorem WeierstrassCurve.Jacobian.Point.mk_point + def WeierstrassCurve.Jacobian.Point.neg + theorem WeierstrassCurve.Jacobian.Point.neg_def + theorem WeierstrassCurve.Jacobian.Point.neg_point + theorem WeierstrassCurve.Jacobian.Point.toAffineLift_add + theorem WeierstrassCurve.Jacobian.Point.toAffineLift_eq + theorem WeierstrassCurve.Jacobian.Point.toAffineLift_neg + theorem WeierstrassCurve.Jacobian.Point.toAffineLift_of_Z_eq_zero + theorem WeierstrassCurve.Jacobian.Point.toAffineLift_of_Z_ne_zero + theorem WeierstrassCurve.Jacobian.Point.toAffineLift_some + theorem WeierstrassCurve.Jacobian.Point.toAffineLift_zero + theorem WeierstrassCurve.Jacobian.Point.toAffine_add + theorem WeierstrassCurve.Jacobian.Point.toAffine_neg + theorem WeierstrassCurve.Jacobian.Point.toAffine_of_Z_eq_zero + theorem WeierstrassCurve.Jacobian.Point.toAffine_of_Z_ne_zero + theorem WeierstrassCurve.Jacobian.Point.toAffine_of_equiv + theorem WeierstrassCurve.Jacobian.Point.toAffine_of_singular + theorem WeierstrassCurve.Jacobian.Point.toAffine_smul + theorem WeierstrassCurve.Jacobian.Point.toAffine_some + theorem WeierstrassCurve.Jacobian.Point.toAffine_zero + theorem WeierstrassCurve.Jacobian.Point.zero_def + theorem WeierstrassCurve.Jacobian.Point.zero_point + structure WeierstrassCurve.Jacobian.Point + theorem WeierstrassCurve.Jacobian.X_eq_iff + theorem WeierstrassCurve.Jacobian.Y_eq_iff' + theorem WeierstrassCurve.Jacobian.Y_eq_iff Modified scripts/style-exceptions.txt 2024-06-10 10:51:38 bdf87dc refactor(Topology/Category): derive `Preregular` instances for `Profinite` and `Stonean` from the one on `CompHaus` (#12966) ESTIMATED CHANGES Modified Mathlib/Condensed/Equivalence.lean Modified Mathlib/Topology/Category/Profinite/EffectiveEpi.lean Modified Mathlib/Topology/Category/Stonean/EffectiveEpi.lean - theorem CategoryTheory.EffectiveEpiFamily.toCompHaus 2024-06-10 10:34:03 1497311 chore(Bicategory/Functor): split into two files (#13677) Made a folder `Bicategory/Functor` and split the file `Bicategory/Functor.lean` into `Bicategory/Functor/Oplax` and `Bicategory/Functor/Pseudofunctor`. This should make it easier to add more code about functors for bicategories. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/CategoryTheory/Bicategory/Free.lean Renamed Mathlib/CategoryTheory/Bicategory/Functor.lean to Mathlib/CategoryTheory/Bicategory/Functor/Oplax.lean - def CategoryTheory.Pseudofunctor.comp - def CategoryTheory.Pseudofunctor.id - def CategoryTheory.Pseudofunctor.mapFunctor - def CategoryTheory.Pseudofunctor.mkOfOplax - def CategoryTheory.Pseudofunctor.toOplax - theorem CategoryTheory.Pseudofunctor.to_oplax_mapComp - theorem CategoryTheory.Pseudofunctor.to_oplax_mapId - theorem CategoryTheory.Pseudofunctor.to_oplax_obj - structure CategoryTheory.Pseudofunctor Added Mathlib/CategoryTheory/Bicategory/Functor/Pseudofunctor.lean + def CategoryTheory.Pseudofunctor.comp + def CategoryTheory.Pseudofunctor.id + def CategoryTheory.Pseudofunctor.mapFunctor + def CategoryTheory.Pseudofunctor.mkOfOplax + def CategoryTheory.Pseudofunctor.toOplax + theorem CategoryTheory.Pseudofunctor.to_oplax_mapComp + theorem CategoryTheory.Pseudofunctor.to_oplax_mapId + theorem CategoryTheory.Pseudofunctor.to_oplax_obj + structure CategoryTheory.Pseudofunctor Modified Mathlib/CategoryTheory/Bicategory/LocallyDiscrete.lean Modified Mathlib/CategoryTheory/Bicategory/NaturalTransformation.lean Modified Mathlib/CategoryTheory/WithTerminal.lean 2024-06-10 10:34:01 f94a972 chore: remove or lower `maxHeartbeats` to match the current state (#13669) A hand-ful further `maxHeartbeats` change related to field_simp are also obsolete; I will file a separate PR for these. ESTIMATED CHANGES Modified Mathlib/AlgebraicGeometry/AffineScheme.lean Modified Mathlib/AlgebraicGeometry/Spec.lean Modified Mathlib/CategoryTheory/Monoidal/Internal/Module.lean Modified Mathlib/Topology/MetricSpace/GromovHausdorff.lean 2024-06-10 10:01:13 d543653 chore: fix "unnecessary have" lint errors (#13680) ESTIMATED CHANGES Modified Mathlib/Analysis/BoxIntegral/Basic.lean Modified Mathlib/MeasureTheory/Decomposition/Lebesgue.lean Modified Mathlib/RingTheory/WittVector/WittPolynomial.lean 2024-06-10 10:01:12 8ecf362 chore: move totallyBounded_Ixx lemmas up a bit (#13631) ESTIMATED CHANGES Modified Mathlib/Analysis/Convex/Extrema.lean Modified Mathlib/Topology/MetricSpace/Bounded.lean + theorem totallyBounded_Icc + theorem totallyBounded_Ico + theorem totallyBounded_Ioc + theorem totallyBounded_Ioo Modified Mathlib/Topology/MetricSpace/ProperSpace.lean Modified Mathlib/Topology/MetricSpace/PseudoMetric.lean - theorem totallyBounded_Icc - theorem totallyBounded_Ico - theorem totallyBounded_Ioc - theorem totallyBounded_Ioo 2024-06-10 09:25:07 f87721a chore: reduce import in NumberTheory.Divisors (#13681) ESTIMATED CHANGES Modified Mathlib/Algebra/IsPrimePow.lean Modified Mathlib/NumberTheory/Divisors.lean 2024-06-10 08:52:53 2684a38 feat(lint-style): lint on the plain string 'Adaptation note:' (#13660) ask to use #adaptation_note instead. This command is a unified place to annotate all commands, and avoids typos. ESTIMATED CHANGES Modified scripts/lint-style.py Modified scripts/style-exceptions.txt 2024-06-10 07:27:44 38962a3 chore(*): drop some bit0/bit1 lemmas (#13679) Since `bit0` and `bit1` are deprecated in Lean 4, these lemmas were deprecated for a long time. Also move `Filter.nonneg_of_eventually_pow_nonneg` to `Order/Filter/ModEq`. ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/Hom.lean Modified Mathlib/Algebra/Order/Monoid/WithTop.lean - theorem WithBot.coe_bit0 - theorem WithBot.coe_bit1 - theorem WithTop.coe_bit0 - theorem WithTop.coe_bit1 Modified Mathlib/Algebra/Polynomial/AlgebraMap.lean - theorem Polynomial.aeval_bit0 - theorem Polynomial.aeval_bit1 Modified Mathlib/Algebra/Polynomial/Derivative.lean - theorem Polynomial.derivative_bit0 - theorem Polynomial.derivative_bit1 Modified Mathlib/Algebra/Polynomial/Eval.lean Modified Mathlib/Algebra/Ring/Basic.lean - theorem map_bit0 Modified Mathlib/Algebra/Ring/Hom/Defs.lean - theorem map_bit1 Modified Mathlib/Algebra/Star/Basic.lean - theorem star_bit0 - theorem star_bit1 Modified Mathlib/Algebra/Star/Module.lean Modified Mathlib/Algebra/Star/SelfAdjoint.lean - theorem IsSelfAdjoint.bit0 - theorem IsSelfAdjoint.bit1 - theorem skewAdjoint.bit0_mem Modified Mathlib/Analysis/SpecificLimits/Normed.lean Modified Mathlib/NumberTheory/Zsqrtd/Basic.lean - theorem Zsqrtd.bit0_im - theorem Zsqrtd.bit0_re - theorem Zsqrtd.bit1_im - theorem Zsqrtd.bit1_re Modified Mathlib/Order/Filter/AtTopBot.lean - theorem Filter.nonneg_of_eventually_pow_nonneg - theorem Filter.tendsto_bit0_atBot - theorem Filter.tendsto_bit0_atTop - theorem Filter.tendsto_bit1_atTop Modified Mathlib/Order/Filter/ModEq.lean + theorem Filter.nonneg_of_eventually_pow_nonneg 2024-06-10 07:27:43 b7d3b35 chore: use #adaptation_note for the remaining cases (#13665) ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Support.lean Modified Mathlib/Algebra/Homology/ExactSequence.lean Modified Mathlib/Algebra/Homology/HomologySequence.lean Modified Mathlib/Algebra/Homology/Single.lean Modified Mathlib/Algebra/Lie/CartanExists.lean Modified Mathlib/Algebra/Order/GroupWithZero/Canonical.lean Modified Mathlib/AlgebraicGeometry/AffineScheme.lean Modified Mathlib/AlgebraicGeometry/Spec.lean Modified Mathlib/Analysis/Convex/Basic.lean Modified Mathlib/Analysis/Normed/Group/Basic.lean Modified Mathlib/Analysis/NormedSpace/Star/ContinuousFunctionalCalculus.lean Modified Mathlib/Analysis/SpecialFunctions/Complex/Circle.lean Modified Mathlib/Analysis/SpecialFunctions/Complex/Log.lean Modified Mathlib/CategoryTheory/Abelian/DiagramLemmas/Four.lean Modified Mathlib/CategoryTheory/Limits/Shapes/KernelPair.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Kernels.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Products.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Pullbacks.lean Modified Mathlib/Data/Complex/Basic.lean Modified Mathlib/Data/Complex/Exponential.lean Modified Mathlib/Data/Matrix/Basic.lean Modified Mathlib/GroupTheory/Perm/Fin.lean Modified Mathlib/Init/Data/Bool/Lemmas.lean Modified Mathlib/LinearAlgebra/CrossProduct.lean Modified Mathlib/LinearAlgebra/TensorProduct/Graded/Internal.lean Modified Mathlib/MeasureTheory/Covering/Differentiation.lean Modified Mathlib/MeasureTheory/Covering/Vitali.lean Modified Mathlib/MeasureTheory/Integral/CircleIntegral.lean Modified Mathlib/MeasureTheory/Integral/Periodic.lean Modified Mathlib/MeasureTheory/Measure/Stieltjes.lean Modified Mathlib/NumberTheory/RamificationInertia.lean Modified Mathlib/Probability/Kernel/Disintegration/Density.lean Modified Mathlib/RingTheory/Henselian.lean Modified Mathlib/SetTheory/Ordinal/Principal.lean Modified Mathlib/Topology/Algebra/Ring/Basic.lean Modified Mathlib/Topology/Sheaves/Skyscraper.lean Modified Mathlib/Topology/Support.lean Modified scripts/noshake.json Modified test/Lint.lean Modified test/MoveAdd.lean Modified test/rewrites.lean 2024-06-10 06:26:11 4e81631 chore(*): fix more deprecated dates (#13674) ESTIMATED CHANGES Modified Mathlib/Algebra/Order/BigOperators/Ring/Finset.lean Modified Mathlib/Algebra/Order/Field/Power.lean Modified Mathlib/Algebra/Order/GroupWithZero/Canonical.lean Modified Mathlib/Algebra/Order/Module/Defs.lean Modified Mathlib/Algebra/Order/Monoid/Unbundled/Pow.lean Modified Mathlib/Algebra/Order/Ring/Rat.lean Modified Mathlib/Algebra/Polynomial/Div.lean Modified Mathlib/Analysis/Calculus/InverseFunctionTheorem/Deriv.lean Modified Mathlib/Analysis/Fourier/FourierTransform.lean Modified Mathlib/Analysis/LocallyConvex/Basic.lean Modified Mathlib/Analysis/Matrix.lean Modified Mathlib/Analysis/Normed/Group/Basic.lean Modified Mathlib/Analysis/NormedSpace/FiniteDimension.lean Modified Mathlib/Analysis/NormedSpace/Int.lean Modified Mathlib/Analysis/NormedSpace/LpEquiv.lean Modified Mathlib/Analysis/NormedSpace/Multilinear/Basic.lean Modified Mathlib/Analysis/NormedSpace/OperatorNorm/Basic.lean Modified Mathlib/Analysis/NormedSpace/OperatorNorm/Bilinear.lean Modified Mathlib/Analysis/NormedSpace/OperatorNorm/Completeness.lean Modified Mathlib/Analysis/NormedSpace/OperatorNorm/Mul.lean Modified Mathlib/Analysis/NormedSpace/OperatorNorm/NNNorm.lean Modified Mathlib/Analysis/NormedSpace/OperatorNorm/NormedSpace.lean Modified Mathlib/Analysis/NormedSpace/OperatorNorm/Prod.lean Modified Mathlib/Analysis/NormedSpace/Star/Matrix.lean Modified Mathlib/Analysis/NormedSpace/Star/Unitization.lean Modified Mathlib/Analysis/SpecialFunctions/Exp.lean Modified Mathlib/Analysis/SpecialFunctions/Gaussian/FourierTransform.lean Modified Mathlib/Analysis/SpecialFunctions/Log/Deriv.lean Modified Mathlib/Analysis/SpecificLimits/Basic.lean Modified Mathlib/Analysis/SpecificLimits/Normed.lean Modified Mathlib/Data/Countable/Small.lean Modified Mathlib/Data/ENNReal/Real.lean Modified Mathlib/Data/Finset/Basic.lean Modified Mathlib/Data/Finset/Image.lean Modified Mathlib/Data/Int/ModEq.lean Modified Mathlib/Data/List/Basic.lean Modified Mathlib/Data/List/Enum.lean Modified Mathlib/Data/List/Infix.lean Modified Mathlib/Data/List/Join.lean Modified Mathlib/Data/List/Pairwise.lean +/- theorem List.pairwise_map' Modified Mathlib/Data/Multiset/Basic.lean Modified Mathlib/Data/NNRat/Defs.lean Modified Mathlib/Data/Nat/Digits.lean Modified Mathlib/Data/Real/NNReal.lean Modified Mathlib/Data/Set/Basic.lean Modified Mathlib/Data/Set/Card.lean Modified Mathlib/Data/Set/List.lean Modified Mathlib/Data/Subtype.lean Modified Mathlib/Deprecated/Submonoid.lean Modified Mathlib/Init/Data/Fin/Basic.lean +/- theorem Fin.eq_of_veq +/- theorem Fin.veq_of_eq Modified Mathlib/Init/Data/List/Basic.lean Modified Mathlib/Logic/Equiv/Set.lean Modified Mathlib/MeasureTheory/Function/L1Space.lean Modified Mathlib/MeasureTheory/Function/SimpleFunc.lean Modified Mathlib/MeasureTheory/Integral/IntervalIntegral.lean Modified Mathlib/MeasureTheory/Integral/SetIntegral.lean Modified Mathlib/MeasureTheory/Measure/Haar/Unique.lean Modified Mathlib/NumberTheory/Liouville/Residual.lean Modified Mathlib/Probability/Kernel/Disintegration/CondCdf.lean Modified Mathlib/Probability/Kernel/Disintegration/Density.lean Modified Mathlib/Probability/Kernel/IntegralCompProd.lean Modified Mathlib/Probability/Martingale/Basic.lean Modified Mathlib/RingTheory/UniqueFactorizationDomain.lean Modified Mathlib/Topology/ContinuousFunction/ZeroAtInfty.lean Modified Mathlib/Topology/GDelta.lean Modified Mathlib/Topology/Instances/Int.lean Modified Mathlib/Topology/Instances/Real.lean Modified Mathlib/Topology/List.lean Modified Mathlib/Topology/Maps.lean Modified Mathlib/Topology/Order/ProjIcc.lean Modified Mathlib/Topology/PartialHomeomorph.lean Modified Mathlib/Topology/Separation.lean Modified Mathlib/Topology/TietzeExtension.lean Modified Mathlib/Topology/UniformSpace/Basic.lean Modified Mathlib/Topology/UniformSpace/CompactConvergence.lean Modified Mathlib/Topology/UnitInterval.lean 2024-06-10 06:00:30 5908307 perf(VectorBundle/FiberwiseLinear): speed up (#13454) #12061 regressed this file pretty badly; speed it up again by mostly reverting a change from that PR, and pushing it further: instead of applying `mem_iUnion` (which is slow), extract a more specialised statement `mem_aux` and use it. Before these changes, the `profiler` output on `smoothFiberwiseLinear` was ``` simp took 2.01s tactic execution of Lean.Parser.Tactic.rintro took 103ms simp took 905ms simp took 507ms simp took 1.26s simp took 1.14s elaboration took 645ms ``` after these changes, it is ``` simp took 534ms simp took 183ms simp took 127ms simp took 421ms simp took 365ms elaboration took 350ms ``` Still not great at all, but deeper fixes require more time and expertise than I currently have. ESTIMATED CHANGES Modified Mathlib/Geometry/Manifold/VectorBundle/FiberwiseLinear.lean 2024-06-10 04:35:00 d768100 refactor: move GaussSum directly under NumberTheory (#13540) This moves `NumberTheory.LegendreSymbol.GaussSum` to `NumberTheory.GaussSum`. Rationale: Gauss sums are useful beyond quadratic reciprocity (which was the original motivation to add them to Mathlib). We use the opportunity to deal with some porting notes. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/NumberTheory/DirichletCharacter/GaussSum.lean Renamed Mathlib/NumberTheory/LegendreSymbol/GaussSum.lean to Mathlib/NumberTheory/GaussSum.lean + theorem MulChar.IsQuadratic.gaussSum_frob Modified Mathlib/NumberTheory/LegendreSymbol/QuadraticChar/GaussSum.lean 2024-06-09 23:30:16 9f2d0a1 feat(CategoryTheory/GradedObject): the triangle equality (#11687) In this PR, we obtain the lemma `GradedObject.mapBifunctor_triangle` which promotes a triangle identity involving functors to a triangle identity for the induced functors on graded objects. More simp lemmas for isomorphisms like `Iso.map_hom_inv_id_eval_app ` are also added in order to ease automation. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Functor/Category.lean + theorem CategoryTheory.Iso.map_hom_inv_id_app + theorem CategoryTheory.Iso.map_inv_hom_id_app - theorem CategoryTheory.map_hom_inv_app - theorem CategoryTheory.map_inv_hom_app Modified Mathlib/CategoryTheory/GradedObject.lean - theorem CategoryTheory.GradedObject.iso_hom_inv_id_apply - theorem CategoryTheory.GradedObject.iso_inv_hom_id_apply + theorem CategoryTheory.Iso.hom_inv_id_eval + theorem CategoryTheory.Iso.inv_hom_id_eval + theorem CategoryTheory.Iso.map_hom_inv_id_eval + theorem CategoryTheory.Iso.map_hom_inv_id_eval_app + theorem CategoryTheory.Iso.map_inv_hom_id_eval + theorem CategoryTheory.Iso.map_inv_hom_id_eval_app Modified Mathlib/CategoryTheory/GradedObject/Associator.lean Modified Mathlib/CategoryTheory/GradedObject/Bifunctor.lean + theorem CategoryTheory.GradedObject.mapBifunctorMapObj_ext Modified Mathlib/CategoryTheory/GradedObject/Trifunctor.lean + theorem CategoryTheory.GradedObject.ιMapBifunctorBifunctor₂₃MapObj_eq + theorem CategoryTheory.GradedObject.ιMapBifunctor₁₂BifunctorMapObj_eq Modified Mathlib/CategoryTheory/GradedObject/Unitor.lean + theorem CategoryTheory.GradedObject.TriangleIndexData.r_zero + def CategoryTheory.GradedObject.TriangleIndexData.ρ₁₂ + def CategoryTheory.GradedObject.TriangleIndexData.ρ₂₃ + structure CategoryTheory.GradedObject.TriangleIndexData + theorem CategoryTheory.GradedObject.mapBifunctor_triangle Modified Mathlib/CategoryTheory/Iso.lean + theorem CategoryTheory.Iso.map_hom_inv_id + theorem CategoryTheory.Iso.map_inv_hom_id 2024-06-09 22:38:26 d4e36bb feat: the homology sequence of a distinguished triangle in the derived category (#13664) In this PR, we define `homologyFunctor C n : DerivedCategory C ⥤ C`, show they are homological functors and construct the long exact sequences associated to distinguished triangles in the derived category. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Homology/DerivedCategory/Basic.lean Added Mathlib/Algebra/Homology/DerivedCategory/HomologySequence.lean + theorem DerivedCategory.HomologySequence.comp_δ + theorem DerivedCategory.HomologySequence.epi_homologyMap_mor₁_iff + theorem DerivedCategory.HomologySequence.epi_homologyMap_mor₂_iff + theorem DerivedCategory.HomologySequence.exact₁ + theorem DerivedCategory.HomologySequence.exact₂ + theorem DerivedCategory.HomologySequence.exact₃ + theorem DerivedCategory.HomologySequence.mono_homologyMap_mor₁_iff + theorem DerivedCategory.HomologySequence.mono_homologyMap_mor₂_iff + theorem DerivedCategory.HomologySequence.δ_comp Modified Mathlib/CategoryTheory/Localization/Triangulated.lean + theorem CategoryTheory.Functor.distTriang_iff Modified Mathlib/CategoryTheory/Triangulated/HomologicalFunctor.lean + theorem CategoryTheory.Functor.isHomological_of_localization 2024-06-09 22:38:25 6a42b42 feat(CategoryTheory/Sites): transfer WEqualsLocallyBijective (#13632) Under certains conditions on a functor between sites `(D, K)` to `(C, J)`, we express the class `J.W` of morphisms of presheaves which become iso after sheafification as the inverse image of the class `K.W`. We deduce that the typeclass `WEqualsLocallyBijective` can be transported from `(D, K)` to `(C, J)`. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Sites/DenseSubsite.lean + theorem CategoryTheory.Functor.whiskerLeft_obj_map_bijective_of_isCoverDense Modified Mathlib/CategoryTheory/Sites/Equivalence.lean + theorem CategoryTheory.GrothendieckTopology.WEqualsLocallyBijective.transport + theorem CategoryTheory.GrothendieckTopology.W_inverseImage_whiskeringLeft + theorem CategoryTheory.GrothendieckTopology.W_whiskerLeft_iff 2024-06-09 22:38:24 02b5200 chore: Rename `Finset.piAntidiagonal` to `Finset.finsuppAntidiag` (#13574) I need the version of this of type `Finset (ι →₀ μ)`. I therefore rename the `Finset (ι →₀ μ)` from `piAntidiagonal` to `finsuppAnttidiag` since it's not about `Pi` but about `Finsupp`. ESTIMATED CHANGES Modified Archive/Wiedijk100Theorems/Partition.lean Modified Mathlib/Data/Finset/PiAntidiagonal.lean + def Finset.finsuppAntidiag + theorem Finset.finsuppAntidiag_empty + theorem Finset.finsuppAntidiag_empty_of_ne_zero + theorem Finset.finsuppAntidiag_empty_zero + theorem Finset.finsuppAntidiag_insert + theorem Finset.finsuppAntidiag_zero + theorem Finset.mapRange_finsuppAntidiag_eq + theorem Finset.mapRange_finsuppAntidiag_subset - theorem Finset.mapRange_piAntidiagonal_eq - theorem Finset.mapRange_piAntidiagonal_subset + theorem Finset.mem_finsuppAntidiag' + theorem Finset.mem_finsuppAntidiag + theorem Finset.mem_finsuppAntidiag_insert - theorem Finset.mem_piAntidiagonal' - theorem Finset.mem_piAntidiagonal - theorem Finset.mem_piAntidiagonal_insert - def Finset.piAntidiagonal - theorem Finset.piAntidiagonal_empty - theorem Finset.piAntidiagonal_empty_of_ne_zero - theorem Finset.piAntidiagonal_empty_of_zero - theorem Finset.piAntidiagonal_insert - theorem Finset.piAntidiagonal_zero Modified Mathlib/RingTheory/MvPowerSeries/Basic.lean Modified Mathlib/RingTheory/PowerSeries/Basic.lean Modified test/antidiagonal.lean 2024-06-09 22:38:23 0e9ba7d feat: the sheafification functor for presheaves of modules (#13441) In this PR, we construct the sheafification functor for presheaves of modules, and show that it is a left adjoint functor. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Category/ModuleCat/Presheaf.lean + theorem PresheafOfModules.Hom.comp_hom + theorem PresheafOfModules.Hom.id_hom Added Mathlib/Algebra/Category/ModuleCat/Presheaf/Sheafification.lean + theorem PresheafOfModules.sheafificationAdjunction_unit_app_hom + theorem PresheafOfModules.sheafificationHomEquiv_hom' + theorem PresheafOfModules.sheafificationHomEquiv_hom + theorem PresheafOfModules.toSheaf_map_sheafificationHomEquiv_symm Modified Mathlib/Algebra/Category/ModuleCat/Presheaf/Sheafify.lean + theorem PresheafOfModules.comp_sheafifyHomEquiv'_symm_hom + def PresheafOfModules.sheafifyMap + def PresheafOfModules.toSheafify Modified Mathlib/Algebra/Category/ModuleCat/Sheaf.lean + def SheafOfModules.toSheaf + def SheafOfModules.toSheafCompSheafToPresheafIso Modified Mathlib/Algebra/Category/ModuleCat/Sheaf/ChangeOfRings.lean Modified Mathlib/CategoryTheory/Sites/LocallyBijective.lean + theorem CategoryTheory.GrothendieckTopology.W_of_isLocallyBijective 2024-06-09 22:38:21 75349a6 chore: move NormalizedGCDMonoid ℤ to reduce imports (#12364) ESTIMATED CHANGES Modified Mathlib/Algebra/GCDMonoid/Basic.lean Modified Mathlib/Algebra/GCDMonoid/Nat.lean + theorem Int.abs_eq_normalize + theorem Int.associated_iff + theorem Int.associated_iff_natAbs + theorem Int.associated_natAbs + theorem Int.coe_gcd + theorem Int.coe_lcm + theorem Int.eq_of_associated_of_nonneg + theorem Int.exists_unit_of_abs + theorem Int.gcd_eq_natAbs + theorem Int.natAbs_gcd + theorem Int.natAbs_lcm + theorem Int.nonneg_iff_normalize_eq_self + theorem Int.nonneg_of_normalize_eq_self + theorem Int.normUnit_eq + theorem Int.normalize_coe_nat + theorem Int.normalize_of_nonneg + theorem Int.normalize_of_nonpos + def associatesIntEquivNat Modified Mathlib/NumberTheory/FLT/Basic.lean Modified Mathlib/NumberTheory/FLT/Three.lean Modified Mathlib/RingTheory/Int/Basic.lean - theorem Int.abs_eq_normalize - theorem Int.associated_iff - theorem Int.associated_iff_natAbs - theorem Int.associated_natAbs - theorem Int.coe_gcd - theorem Int.coe_lcm - theorem Int.eq_of_associated_of_nonneg - theorem Int.exists_unit_of_abs - theorem Int.gcd_eq_natAbs - theorem Int.natAbs_gcd - theorem Int.natAbs_lcm - theorem Int.nonneg_iff_normalize_eq_self - theorem Int.nonneg_of_normalize_eq_self - theorem Int.normUnit_eq - theorem Int.normalize_coe_nat - theorem Int.normalize_of_nonneg - theorem Int.normalize_of_nonpos - def associatesIntEquivNat 2024-06-09 22:24:42 c74732f feat(AlgebraicGeometry/EllipticCurve/DivisionPolynomial/Basic): define division polynomials (#6703) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/AlgebraicGeometry/EllipticCurve/DivisionPolynomial/Basic.lean + theorem WeierstrassCurve.C_Ψ₂Sq_eq + theorem WeierstrassCurve.preΨ'_even + theorem WeierstrassCurve.preΨ'_four + theorem WeierstrassCurve.preΨ'_odd + theorem WeierstrassCurve.preΨ'_one + theorem WeierstrassCurve.preΨ'_three + theorem WeierstrassCurve.preΨ'_two + theorem WeierstrassCurve.preΨ'_zero + theorem WeierstrassCurve.preΨ_even + theorem WeierstrassCurve.preΨ_four + theorem WeierstrassCurve.preΨ_neg + theorem WeierstrassCurve.preΨ_odd + theorem WeierstrassCurve.preΨ_ofNat + theorem WeierstrassCurve.preΨ_one + theorem WeierstrassCurve.preΨ_three + theorem WeierstrassCurve.preΨ_two + theorem WeierstrassCurve.preΨ_zero + theorem WeierstrassCurve.Φ_four + theorem WeierstrassCurve.Φ_neg + theorem WeierstrassCurve.Φ_ofNat + theorem WeierstrassCurve.Φ_one + theorem WeierstrassCurve.Φ_three + theorem WeierstrassCurve.Φ_two + theorem WeierstrassCurve.Φ_zero + theorem WeierstrassCurve.ΨSq_even + theorem WeierstrassCurve.ΨSq_four + theorem WeierstrassCurve.ΨSq_neg + theorem WeierstrassCurve.ΨSq_odd + theorem WeierstrassCurve.ΨSq_ofNat + theorem WeierstrassCurve.ΨSq_one + theorem WeierstrassCurve.ΨSq_three + theorem WeierstrassCurve.ΨSq_two + theorem WeierstrassCurve.ΨSq_zero + theorem WeierstrassCurve.Ψ_even + theorem WeierstrassCurve.Ψ_four + theorem WeierstrassCurve.Ψ_neg + theorem WeierstrassCurve.Ψ_odd + theorem WeierstrassCurve.Ψ_ofNat + theorem WeierstrassCurve.Ψ_one + theorem WeierstrassCurve.Ψ_three + theorem WeierstrassCurve.Ψ_two + theorem WeierstrassCurve.Ψ_zero + theorem WeierstrassCurve.Ψ₂Sq_eq + theorem WeierstrassCurve.φ_four + theorem WeierstrassCurve.φ_neg + theorem WeierstrassCurve.φ_one + theorem WeierstrassCurve.φ_three + theorem WeierstrassCurve.φ_two + theorem WeierstrassCurve.φ_zero + theorem WeierstrassCurve.ψ_even + theorem WeierstrassCurve.ψ_four + theorem WeierstrassCurve.ψ_neg + theorem WeierstrassCurve.ψ_odd + theorem WeierstrassCurve.ψ_one + theorem WeierstrassCurve.ψ_three + theorem WeierstrassCurve.ψ_two + theorem WeierstrassCurve.ψ_zero Modified Mathlib/NumberTheory/EllipticDivisibilitySequence.lean +/- theorem normEDS_neg 2024-06-09 19:41:17 04c29e2 chore: move basic linear equivalences to Mathlib.Algebra.Module.Equiv (#13662) This means `Mathlib.Algebra.Module.Equiv` is starting to get a little on the large side, but I don't have a great alternative. ESTIMATED CHANGES Modified Mathlib/Algebra/Category/ModuleCat/Basic.lean Modified Mathlib/Algebra/Module/Equiv.lean + def Equiv.toLinearEquiv + def LinearEquiv.arrowCongr + theorem LinearEquiv.arrowCongr_apply + theorem LinearEquiv.arrowCongr_comp + theorem LinearEquiv.arrowCongr_symm_apply + theorem LinearEquiv.arrowCongr_trans + theorem LinearEquiv.coe_curry + theorem LinearEquiv.coe_curry_symm + theorem LinearEquiv.coe_neg + theorem LinearEquiv.coe_zero + def LinearEquiv.congrLeft + def LinearEquiv.congrRight + def LinearEquiv.conj + theorem LinearEquiv.conj_apply + theorem LinearEquiv.conj_apply_apply + theorem LinearEquiv.conj_comp + theorem LinearEquiv.conj_id + theorem LinearEquiv.conj_trans + def LinearEquiv.funCongrLeft + theorem LinearEquiv.funCongrLeft_apply + theorem LinearEquiv.funCongrLeft_comp + theorem LinearEquiv.funCongrLeft_id + theorem LinearEquiv.funCongrLeft_symm + def LinearEquiv.neg + theorem LinearEquiv.neg_apply + def LinearEquiv.ofLinear + theorem LinearEquiv.ofLinear_apply + theorem LinearEquiv.ofLinear_symm_apply + theorem LinearEquiv.ofLinear_symm_toLinearMap + theorem LinearEquiv.ofLinear_toLinearMap + def LinearEquiv.smulOfNeZero + def LinearEquiv.smulOfUnit + theorem LinearEquiv.symm_conj_apply + theorem LinearEquiv.symm_neg + theorem LinearEquiv.zero_apply + theorem LinearEquiv.zero_symm + def LinearMap.funLeft + theorem LinearMap.funLeft_apply + theorem LinearMap.funLeft_comp + theorem LinearMap.funLeft_id + theorem LinearMap.funLeft_injective_of_surjective + theorem LinearMap.funLeft_surjective_of_injective Modified Mathlib/LinearAlgebra/Basic.lean - def Equiv.toLinearEquiv - def LinearEquiv.arrowCongr - theorem LinearEquiv.arrowCongr_apply - theorem LinearEquiv.arrowCongr_comp - theorem LinearEquiv.arrowCongr_symm_apply - theorem LinearEquiv.arrowCongr_trans - theorem LinearEquiv.coe_curry - theorem LinearEquiv.coe_curry_symm - theorem LinearEquiv.coe_neg - theorem LinearEquiv.coe_zero - def LinearEquiv.congrLeft - def LinearEquiv.congrRight - def LinearEquiv.conj - theorem LinearEquiv.conj_apply - theorem LinearEquiv.conj_apply_apply - theorem LinearEquiv.conj_comp - theorem LinearEquiv.conj_id - theorem LinearEquiv.conj_trans - def LinearEquiv.funCongrLeft - theorem LinearEquiv.funCongrLeft_apply - theorem LinearEquiv.funCongrLeft_comp - theorem LinearEquiv.funCongrLeft_id - theorem LinearEquiv.funCongrLeft_symm - def LinearEquiv.neg - theorem LinearEquiv.neg_apply - def LinearEquiv.ofLinear - theorem LinearEquiv.ofLinear_apply - theorem LinearEquiv.ofLinear_symm_apply - theorem LinearEquiv.ofLinear_symm_toLinearMap - theorem LinearEquiv.ofLinear_toLinearMap - def LinearEquiv.smulOfNeZero - def LinearEquiv.smulOfUnit - theorem LinearEquiv.symm_conj_apply - theorem LinearEquiv.symm_neg - theorem LinearEquiv.zero_apply - theorem LinearEquiv.zero_symm - def LinearMap.funLeft - theorem LinearMap.funLeft_apply - theorem LinearMap.funLeft_comp - theorem LinearMap.funLeft_id - theorem LinearMap.funLeft_injective_of_surjective - theorem LinearMap.funLeft_surjective_of_injective Modified Mathlib/LinearAlgebra/Pi.lean 2024-06-09 17:38:11 d5ada91 chore(Algebra/Group/Hom/Instances): remove obsolete adaptation note (#13668) The underlying bug (#11357) has been fixed. ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Hom/Instances.lean 2024-06-09 17:38:10 b02cb78 feat(Data/Set/Function): lemmas about inj/bij/surjectivity (#12555) This PR adds a few API lemmas about `InjOn`, `BijOn` and `SurjOn`. ESTIMATED CHANGES Modified Mathlib/Data/Set/Function.lean + theorem Set.BijOn.subset_left + theorem Set.BijOn.subset_right + theorem Set.InjOn.image + theorem Set.InjOn.imageFactorization_injective + theorem Set.InjOn.image_diff + theorem Set.InjOn.image_diff_subset + theorem Set.InjOn.image_eq_image_iff + theorem Set.InjOn.image_ssubset_image_iff + theorem Set.InjOn.image_subset_image_iff + theorem Set.SurjOn.image_invFunOn_image + theorem Set.SurjOn.image_invFunOn_image_of_subset + theorem Set.imageFactorization_injective_iff Modified scripts/style-exceptions.txt 2024-06-09 16:47:19 afbd7e5 chore: remove some `set_option ... in` which are not necessary any more (#13655) All of them are related backwards compatibility flags. Found by `adomani`'s linter in #13653, not exhaustive. ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/Operations.lean Modified Mathlib/Algebra/Homology/Exact.lean Modified Mathlib/Algebra/Module/Submodule/Localization.lean Modified Mathlib/Analysis/Convex/Slope.lean Modified Mathlib/Data/Complex/Exponential.lean Modified Mathlib/Data/Finset/Basic.lean Modified Mathlib/FieldTheory/RatFunc/Basic.lean Modified Mathlib/GroupTheory/CommutingProbability.lean Modified Mathlib/GroupTheory/GroupAction/Quotient.lean Modified Mathlib/GroupTheory/MonoidLocalization.lean Modified Mathlib/GroupTheory/Perm/Sign.lean Modified Mathlib/GroupTheory/Sylow.lean Modified Mathlib/LinearAlgebra/AffineSpace/Independent.lean Modified Mathlib/LinearAlgebra/Isomorphisms.lean Modified Mathlib/LinearAlgebra/Quotient.lean Modified Mathlib/LinearAlgebra/QuotientPi.lean Modified Mathlib/Logic/Denumerable.lean Modified Mathlib/RingTheory/AdicCompletion/Basic.lean Modified Mathlib/RingTheory/Localization/FractionRing.lean Modified Mathlib/Topology/Order/IntermediateValue.lean 2024-06-09 15:54:37 5808ec5 feat: add `List.iterate_add` (#13257) ESTIMATED CHANGES Modified Mathlib/Data/List/Iterate.lean + theorem List.iterate_add + theorem List.take_iterate Modified Mathlib/Data/List/Range.lean + theorem List.take_range 2024-06-09 14:51:36 d662e6c chore(*): drop some long-deprecated theorems (#13619) ESTIMATED CHANGES Modified Mathlib/Algebra/BigOperators/Finsupp.lean Modified Mathlib/Algebra/BigOperators/Group/List.lean Modified Mathlib/Algebra/Category/MonCat/Limits.lean Modified Mathlib/Algebra/Group/Equiv/Basic.lean Modified Mathlib/Algebra/Group/Hom/Defs.lean - theorem MonoidHom.coe_inj - theorem MonoidHom.congr_arg - theorem MonoidHom.congr_fun - theorem MonoidHom.ext_iff - theorem MulHom.coe_inj - theorem MulHom.congr_arg - theorem MulHom.congr_fun - theorem MulHom.ext_iff - theorem OneHom.coe_inj - theorem OneHom.congr_arg - theorem OneHom.congr_fun - theorem OneHom.ext_iff Modified Mathlib/Algebra/Group/Pi/Basic.lean - theorem Pi.bit0_apply - theorem Pi.bit1_apply Modified Mathlib/Algebra/GroupWithZero/Hom.lean - theorem MonoidWithZeroHom.coe_inj - theorem MonoidWithZeroHom.congr_arg - theorem MonoidWithZeroHom.congr_fun - theorem MonoidWithZeroHom.ext_iff Modified Mathlib/Algebra/Ring/Hom/Defs.lean +/- theorem NonUnitalRingHom.coe_mulHom_injective +/- theorem RingHom.coe_monoidHom_injective Modified Mathlib/Data/DFinsupp/Basic.lean - theorem DFinsupp.coeFn_injective - theorem DFinsupp.ext_iff Modified Mathlib/Data/ENNReal/Basic.lean - theorem ENNReal.exists_ne_top' +/- theorem ENNReal.exists_ne_top Modified Mathlib/Data/Finsupp/Defs.lean - theorem Finsupp.coeFn_inj - theorem Finsupp.coeFn_injective - theorem Finsupp.congr_fun - theorem Finsupp.ext_iff Modified Mathlib/Data/Int/Defs.lean - theorem Int.natAbs_ne_zero_of_ne_zero Modified Mathlib/Data/Option/Basic.lean + theorem Option.exists_ne_none Modified Mathlib/Data/Option/Defs.lean 2024-06-09 14:00:49 491655d feat(Algebra, Order): simple submodules in a semisimple module (#13636) + Add `IsAtomic.exists_atom`: a nontrivial atomic partial order has an atom, and the dual statement. + Since the submodule lattice of a semisimple module is atomistic, deduce that every submodule is the sum of its simple submodules, and that any nontrivial submodule has a simple submodule. ESTIMATED CHANGES Modified Mathlib/Order/Atoms.lean + theorem IsAtomic.exists_atom + theorem IsCoatomic.exists_coatom Modified Mathlib/RingTheory/SimpleModule.lean +/- theorem IsSemisimpleModule.annihilator_isRadical + theorem IsSemisimpleModule.eq_bot_or_exists_simple_le + theorem IsSemisimpleModule.exists_simple_submodule + theorem IsSemisimpleModule.sSup_simples_le +/- theorem IsSimpleModule.isAtom 2024-06-09 12:00:33 d35039b chore(Data/Rat/Cast/Order): Use `p`, `q` as variable names (#13644) ... rather than `a`, `b`, `m`, `n`, `r`. Also make arguments to rewriting lemmas explicit. ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Archimedean.lean +/- theorem archimedean_iff_rat_lt Modified Mathlib/Data/Rat/Cast/Order.lean +/- theorem NNRat.cast_le +/- theorem NNRat.cast_lt +/- theorem NNRat.cast_lt_zero +/- theorem NNRat.cast_max +/- theorem NNRat.cast_min +/- theorem NNRat.cast_nonpos +/- theorem NNRat.cast_pos +/- theorem NNRat.cast_strictMono +/- theorem NNRat.not_cast_lt_zero +/- theorem NNRat.preimage_cast_Icc +/- theorem NNRat.preimage_cast_Ici +/- theorem NNRat.preimage_cast_Ico +/- theorem NNRat.preimage_cast_Iic +/- theorem NNRat.preimage_cast_Iio +/- theorem NNRat.preimage_cast_Ioc +/- theorem NNRat.preimage_cast_Ioi +/- theorem NNRat.preimage_cast_Ioo +/- theorem NNRat.preimage_cast_uIcc +/- theorem NNRat.preimage_cast_uIoc +/- theorem Rat.cast_abs +/- theorem Rat.cast_le +/- theorem Rat.cast_lt +/- theorem Rat.cast_lt_zero +/- theorem Rat.cast_max +/- theorem Rat.cast_min +/- theorem Rat.cast_nonneg +/- theorem Rat.cast_nonpos +/- theorem Rat.cast_pos +/- theorem Rat.cast_pos_of_pos +/- theorem Rat.cast_strictMono +/- theorem Rat.preimage_cast_Icc +/- theorem Rat.preimage_cast_Ici +/- theorem Rat.preimage_cast_Ico +/- theorem Rat.preimage_cast_Iic +/- theorem Rat.preimage_cast_Iio +/- theorem Rat.preimage_cast_Ioc +/- theorem Rat.preimage_cast_Ioi +/- theorem Rat.preimage_cast_Ioo +/- theorem Rat.preimage_cast_uIcc +/- theorem Rat.preimage_cast_uIoc Modified Mathlib/Data/Real/Archimedean.lean +/- theorem Real.isCauSeq_iff_lift Modified Mathlib/Topology/Instances/Real.lean 2024-06-09 11:47:21 033a0de chore: Run `lake exe shake --update` (#13657) Seems like shake wants to move things around due to the `Std`/`Batteries` rename, so I'm running `lake exe shake --update` now to avoid polluting later PRs. ESTIMATED CHANGES Modified scripts/noshake.json 2024-06-09 09:51:13 76e0997 chore: Move the inheritance `StrictOrderedSemiring α → CharZero α` instance to a less obscure file (#13654) There is little point in avoiding to import `CharZero` in `Algebra.Order.Ring.Defs` (where `StrictOrderedSemiring` is defined) since it is so basic. Exiling the titular basic instance to an obscure file meant that people had trouble finding that instance (and it just happened to Eric). ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Order/Ring/Abs.lean Modified Mathlib/Algebra/Order/Ring/Cast.lean Deleted Mathlib/Algebra/Order/Ring/CharZero.lean Modified Mathlib/Algebra/Order/Ring/Defs.lean Modified Mathlib/Data/Nat/Cast/Field.lean Modified Mathlib/Data/Nat/Choose/Bounds.lean Modified Mathlib/NumberTheory/Cyclotomic/Rat.lean 2024-06-09 08:12:06 415fd9d chore: Add floor_ofNat and ceil_ofNat (#13645) Also renames `Nat.floor_coe` to `floor_natCast`, leaving behind a deprecation. ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Floor.lean + theorem Nat.ceil_ofNat - theorem Nat.floor_coe + theorem Nat.floor_natCast + theorem Nat.floor_ofNat +/- theorem Nat.floor_one +/- theorem Nat.floor_zero Modified Mathlib/Data/Int/Log.lean Modified Mathlib/Topology/Instances/Nat.lean 2024-06-09 08:12:05 88a31a9 chore(Order/Atoms): Rename instances according to convention (#13643) ESTIMATED CHANGES Modified Mathlib/Order/Atoms.lean 2024-06-09 07:15:27 4810c69 feat: order lemmas for NNRat (#13547) This copies the API for order lemmas on `Rat` ESTIMATED CHANGES Modified Mathlib/Combinatorics/Additive/PluenneckeRuzsa.lean Modified Mathlib/Data/NNRat/Defs.lean + theorem NNRat.le_def + theorem NNRat.lt_def Modified Mathlib/Data/Rat/Cast/Order.lean + def Mathlib.Meta.Positivity.evalNNRatCast + def NNRat.castOrderEmbedding + theorem NNRat.cast_le + theorem NNRat.cast_lt + theorem NNRat.cast_lt_zero + theorem NNRat.cast_max + theorem NNRat.cast_min + theorem NNRat.cast_mono + theorem NNRat.cast_nonpos + theorem NNRat.cast_pos + theorem NNRat.cast_strictMono + theorem NNRat.not_cast_lt_zero + theorem NNRat.preimage_cast_Icc + theorem NNRat.preimage_cast_Ici + theorem NNRat.preimage_cast_Ico + theorem NNRat.preimage_cast_Iic + theorem NNRat.preimage_cast_Iio + theorem NNRat.preimage_cast_Ioc + theorem NNRat.preimage_cast_Ioi + theorem NNRat.preimage_cast_Ioo + theorem NNRat.preimage_cast_uIcc + theorem NNRat.preimage_cast_uIoc Modified test/positivity.lean 2024-06-08 22:54:11 ed63385 feat(CategoryTheory/Sites): reflecting and preserving local injectivity and surjectivity (#13621) This PR proves that precomposition with a cocontinuous functor preserves local injectivity and surjectivity of morphisms of presheaves, and that precomposition with a cover preserving and cover dense functor reflects the same properties. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Sites/PreservesLocallyBijective.lean + theorem CategoryTheory.Presheaf.isLocallyInjective_of_whisker + theorem CategoryTheory.Presheaf.isLocallyInjective_whisker + theorem CategoryTheory.Presheaf.isLocallyInjective_whisker_iff + theorem CategoryTheory.Presheaf.isLocallySurjective_of_whisker + theorem CategoryTheory.Presheaf.isLocallySurjective_whisker + theorem CategoryTheory.Presheaf.isLocallySurjective_whisker_iff 2024-06-08 21:41:03 5ddf243 refactor(LinearAlgebra/BilinearMap): Left composition, bilinear over different rings (#13042) Generalise `compl₂` and `compl₁₂` for left composition with maps which are linear over different rings in the first and second variable. Needed for #9334 ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/BilinearMap.lean +/- def LinearMap.compl₁₂ +/- def LinearMap.compl₂ 2024-06-08 18:34:16 c995db1 chore(Data/Tree): split file (#13629) Move 3 definitions that depend on `Num` to a new file. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Combinatorics/Enumerative/Catalan.lean Renamed Mathlib/Data/Tree.lean to Mathlib/Data/Tree/Basic.lean - def Tree.get - def Tree.getOrElse - def Tree.indexOf Added Mathlib/Data/Tree/Get.lean + def Tree.get + def Tree.getOrElse + def Tree.indexOf Modified Mathlib/Tactic/CancelDenoms/Core.lean 2024-06-08 18:34:15 8a8a257 style: fix last easy isolated `by`s (#13618) Follow-up on #13419: fix three cases with an easy fix which were merged since then, and three harder cases. ESTIMATED CHANGES Modified Mathlib/Algebra/BigOperators/Group/Finset.lean +/- theorem Multiset.toFinset_sum_count_eq Modified Mathlib/AlgebraicTopology/AlternatingFaceMapComplex.lean Modified Mathlib/Data/Finset/NoncommProd.lean Modified Mathlib/MeasureTheory/Measure/LevyProkhorovMetric.lean Modified Mathlib/Topology/Algebra/UniformGroup.lean Modified Mathlib/Topology/PartialHomeomorph.lean 2024-06-08 18:34:14 7e7e7b0 Chore(Algebra/Polynomial/Module/Basic): Refactor out Module.AEval (#13613) Refactor Module.AEval out of Algebra/Polynomial/Module/Basic. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Polynomial/Derivation.lean Added Mathlib/Algebra/Polynomial/Module/AEval.lean + def LinearMap.ofAEval + theorem Module.AEval'.X_smul_of + theorem Module.AEval'.of_symm_X_smul + theorem Module.AEval'_def + theorem Module.AEval.C_smul + theorem Module.AEval.X_smul_of + theorem Module.AEval.annihilator_eq_ker_aeval + theorem Module.AEval.annihilator_top_eq_ker_aeval + def Module.AEval.comapSubmodule + theorem Module.AEval.comapSubmodule_le_comap + theorem Module.AEval.comapSubmodule_mapSubmodule + theorem Module.AEval.injective_comapSubmodule + def Module.AEval.mapSubmodule + theorem Module.AEval.mapSubmodule_comapSubmodule + theorem Module.AEval.mem_comapSubmodule + theorem Module.AEval.mem_mapSubmodule + def Module.AEval.of + theorem Module.AEval.of_aeval_smul + theorem Module.AEval.of_symm_X_smul + theorem Module.AEval.of_symm_smul + theorem Module.AEval.range_comapSubmodule + def Module.AEval Modified Mathlib/Algebra/Polynomial/Module/Basic.lean - def LinearMap.ofAEval - theorem Module.AEval'.X_smul_of - theorem Module.AEval'.of_symm_X_smul - theorem Module.AEval'_def - theorem Module.AEval.C_smul - theorem Module.AEval.X_smul_of - theorem Module.AEval.annihilator_eq_ker_aeval - theorem Module.AEval.annihilator_top_eq_ker_aeval - def Module.AEval.comapSubmodule - theorem Module.AEval.comapSubmodule_le_comap - theorem Module.AEval.comapSubmodule_mapSubmodule - theorem Module.AEval.injective_comapSubmodule - def Module.AEval.mapSubmodule - theorem Module.AEval.mapSubmodule_comapSubmodule - theorem Module.AEval.mem_comapSubmodule - theorem Module.AEval.mem_mapSubmodule - def Module.AEval.of - theorem Module.AEval.of_aeval_smul - theorem Module.AEval.of_symm_X_smul - theorem Module.AEval.of_symm_smul - theorem Module.AEval.range_comapSubmodule - def Module.AEval Modified Mathlib/Algebra/Polynomial/Module/FiniteDimensional.lean Modified Mathlib/LinearAlgebra/AnnihilatingPolynomial.lean 2024-06-08 18:34:13 d498432 feat: the single functors from the homotopy category (#13600) In this PR, we define the single functors from a preadditive category (with a zero object) to its homotopy category of cochain complexes and show they behave well with respect to shift functors. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Homology/Additive.lean Added Mathlib/Algebra/Homology/HomotopyCategory/SingleFunctors.lean Modified Mathlib/Algebra/Homology/Single.lean 2024-06-08 18:34:12 c4a6244 feat(Topology/Category): category of finite topological spaces (#13485) The category of finite topological spaces. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Topology/Category/FinTopCat.lean + theorem FinTopCat.coe_of + def FinTopCat.of + structure FinTopCat 2024-06-08 17:32:14 299261f chore(*): fix formatting of some deprecation dates (#13626) ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Nat.lean Modified Mathlib/Algebra/Group/Subgroup/Basic.lean Modified Mathlib/Algebra/GroupWithZero/Units/Basic.lean Modified Mathlib/Algebra/Lie/Weights/Linear.lean Modified Mathlib/Algebra/Order/Ring/Basic.lean Modified Mathlib/Algebra/Polynomial/Degree/TrailingDegree.lean Modified Mathlib/Analysis/Complex/Polynomial.lean Modified Mathlib/Analysis/Convex/Gauge.lean Modified Mathlib/Analysis/Convex/Integral.lean Modified Mathlib/Analysis/Fourier/FourierTransform.lean Modified Mathlib/Analysis/InnerProductSpace/TwoDim.lean Modified Mathlib/Analysis/LocallyConvex/Basic.lean Modified Mathlib/Analysis/LocallyConvex/Bounded.lean Modified Mathlib/Analysis/NormedSpace/FiniteDimension.lean Modified Mathlib/Analysis/NormedSpace/OperatorNorm/Mul.lean Modified Mathlib/Analysis/NormedSpace/OperatorNorm/NNNorm.lean Modified Mathlib/Analysis/NormedSpace/OperatorNorm/NormedSpace.lean Modified Mathlib/Analysis/NormedSpace/RCLike.lean Modified Mathlib/Analysis/NormedSpace/Star/Matrix.lean Modified Mathlib/Analysis/SpecialFunctions/Gaussian/FourierTransform.lean Modified Mathlib/Analysis/SpecificLimits/RCLike.lean Modified Mathlib/CategoryTheory/Filtered/Basic.lean Modified Mathlib/Data/Fin/Basic.lean Modified Mathlib/Data/Finset/Basic.lean Modified Mathlib/Data/Finset/Image.lean Modified Mathlib/Data/List/Basic.lean Modified Mathlib/Data/List/Chain.lean Modified Mathlib/Data/List/Count.lean Modified Mathlib/Data/List/Cycle.lean Modified Mathlib/Data/List/Indexes.lean Modified Mathlib/Data/List/Infix.lean Modified Mathlib/Data/List/InsertNth.lean Modified Mathlib/Data/List/Join.lean Modified Mathlib/Data/List/Nodup.lean Modified Mathlib/Data/List/NodupEquivFin.lean Modified Mathlib/Data/List/OfFn.lean Modified Mathlib/Data/List/Pairwise.lean Modified Mathlib/Data/List/Perm.lean Modified Mathlib/Data/List/Rotate.lean Modified Mathlib/Data/List/Sort.lean Modified Mathlib/Data/List/Sublists.lean Modified Mathlib/Data/List/ToFinsupp.lean Modified Mathlib/Data/Nat/Cast/Order.lean Modified Mathlib/Data/ZMod/Quotient.lean Modified Mathlib/FieldTheory/PrimitiveElement.lean Modified Mathlib/Init/Algebra/Classes.lean Modified Mathlib/LinearAlgebra/FiniteDimensional.lean Modified Mathlib/Logic/Basic.lean Modified Mathlib/RingTheory/Ideal/Operations.lean Modified Mathlib/RingTheory/Ideal/QuotientOperations.lean Modified Mathlib/RingTheory/MvPolynomial/Homogeneous.lean Modified Mathlib/RingTheory/TensorProduct/Basic.lean Modified Mathlib/Topology/Algebra/UniformRing.lean Modified Mathlib/Topology/Bases.lean Modified Mathlib/Topology/Basic.lean Modified Mathlib/Topology/Bornology/Absorbs.lean Modified Mathlib/Topology/CompactOpen.lean Modified Mathlib/Topology/Compactness/Compact.lean Modified Mathlib/Topology/GDelta.lean Modified Mathlib/Topology/Instances/Discrete.lean Modified Mathlib/Topology/LocalAtTarget.lean Modified Mathlib/Topology/MetricSpace/Polish.lean Modified Mathlib/Topology/MetricSpace/ProperSpace.lean Modified Mathlib/Topology/MetricSpace/Sequences.lean Modified Mathlib/Topology/Order.lean Modified Mathlib/Topology/Order/Basic.lean Modified Mathlib/Topology/Order/OrderClosed.lean Modified Mathlib/Topology/Semicontinuous.lean Modified Mathlib/Topology/Separation.lean 2024-06-08 17:32:13 b65219f feat(MeasureTheory): generalize NullMeasurable to measurability mod a sigma filter. (#10856) add a general construction of a measurable space consisting of sets measurable with respect to some underlying sigma algebra modulo a given sigma filter. Refactor basic definitions and lemmas in `MeasureTheory/Measure/NullMeasurable.lean` to be an instance of this general construction. The reason is that in the immediate future I would like to define Baire measurability in mathlib, and want to avoid repetition. *TODO*: Similarly generalize things about `AEMeasurable`, where appropriate. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/MeasureTheory/Constructions/EventuallyMeasurable.lean + theorem EventuallyMeasurable.congr + def EventuallyMeasurable + theorem EventuallyMeasurableSet.congr + def EventuallyMeasurableSet + theorem EventuallyMeasurableSpace.measurable_le + def EventuallyMeasurableSpace + theorem Measurable.comp_eventuallyMeasurable + theorem Measurable.eventuallyMeasurable + theorem Measurable.eventuallyMeasurable_of_eventuallyEq + theorem MeasurableSet.eventuallyMeasurableSet + theorem eventuallyMeasurableSet_of_mem_filter Modified Mathlib/MeasureTheory/Measure/NullMeasurable.lean 2024-06-08 16:29:28 fa72f05 chore(Order/Basic): cleanup redundant type arguments (#13604) ESTIMATED CHANGES Modified Mathlib/Order/Basic.lean +/- def AsLinearOrder +/- theorem LinearOrder.ext +/- theorem LinearOrder.toPartialOrder_injective +/- def Order.Preimage +/- theorem PartialOrder.ext +/- theorem PartialOrder.toPreorder_injective +/- theorem Pi.compl_apply +/- theorem Pi.compl_def +/- theorem Pi.le_def +/- theorem Pi.lt_def +/- theorem Pi.sdiff_apply +/- theorem Pi.sdiff_def +/- theorem Preorder.ext +/- theorem Preorder.toLE_injective +/- theorem eq_iff_not_lt_of_le 2024-06-08 16:29:27 e3cbddf chore: rename UInt8.isLower to isASCIILower, etc (#13586) Hopefully this one is not controversial. :-) ESTIMATED CHANGES Modified Mathlib/Data/UInt.lean + def UInt8.isASCIIAlpha + def UInt8.isASCIIAlphanum + def UInt8.isASCIIDigit + def UInt8.isASCIILower + def UInt8.isASCIIUpper - def UInt8.isAlpha - def UInt8.isAlphanum - def UInt8.isDigit - def UInt8.isLower - def UInt8.isUpper 2024-06-08 16:29:26 dc44d90 feat(CategoryTheory/Galois): fundamental group is limit of automorphism groups (#12843) We show that the automorphism group of a fiber functor is isomorphic to the limit of the automorphism groups of all Galois objects. From this we deduce that the automorphism group of a fiber functor acts transitively on the fibers of connected objects. This is the last essential step towards showing that a fiber functor induces a fully faithful embedding into the category of finite `Aut F`-types. ESTIMATED CHANGES Modified Mathlib/Algebra/Category/GroupCat/Basic.lean + def CommGroupCat.uliftFunctor + def GroupCat.uliftFunctor Modified Mathlib/Algebra/Category/GroupCat/Limits.lean + def GroupCat.sectionsπMonoidHom Modified Mathlib/Algebra/Category/MonCat/Basic.lean + def CommMonCat.uliftFunctor + def MonCat.uliftFunctor Modified Mathlib/CategoryTheory/Galois/Basic.lean + theorem CategoryTheory.PreGaloisCategory.mulAction_def Modified Mathlib/CategoryTheory/Galois/Prorepresentability.lean + theorem CategoryTheory.PreGaloisCategory.AutGalois.ext + theorem CategoryTheory.PreGaloisCategory.AutGalois.π_apply + theorem CategoryTheory.PreGaloisCategory.AutGalois.π_surjective + theorem CategoryTheory.PreGaloisCategory.FiberFunctor.isPretransitive_of_isGalois + theorem CategoryTheory.PreGaloisCategory.FibreFunctor.end_isUnit + theorem CategoryTheory.PreGaloisCategory.autGaloisSystem_map_surjective + theorem CategoryTheory.PreGaloisCategory.autIsoFibers_inv_app + theorem CategoryTheory.PreGaloisCategory.autMulEquivAutGalois_symm_app + theorem CategoryTheory.PreGaloisCategory.autMulEquivAutGalois_π + theorem CategoryTheory.PreGaloisCategory.endEquivAutGalois_mul + theorem CategoryTheory.PreGaloisCategory.endEquivAutGalois_π + theorem CategoryTheory.PreGaloisCategory.endEquivSectionsFibers_π + theorem CategoryTheory.PreGaloisCategory.endMulEquivAutGalois_pi Modified Mathlib/CategoryTheory/Limits/ConcreteCategory.lean Modified Mathlib/CategoryTheory/Limits/Shapes/ConcreteCategory.lean 2024-06-08 16:29:25 42eb9ba chore: Move `CharP` lemmas about order of elements (#12816) By swapping the order of imports between `Algebra.CharP.Basic` and `GroupTheory.OrderOfElement`, the first one goes from 944 dependencies to 812, and the second one from 912 to 915. Also generalise a few lemmas from semirings to non-associative semirings. This swap is justified by the fact that `CharP` is a purely algebraic concept while `OrderOf` is group-theoretic. Nevertheless, `GroupTheory.OrderOfElement` should be split in a future PR, in which case the `CharP` lemmas might move back. ESTIMATED CHANGES Modified Mathlib/Algebra/CharP/Basic.lean - theorem CharP.addOrderOf_one - theorem CharP.cast_card_eq_zero - theorem charP_of_ne_zero - theorem charP_of_prime_pow_injective Modified Mathlib/Algebra/CharP/CharAndCard.lean Modified Mathlib/Algebra/CharP/Quotient.lean Modified Mathlib/Algebra/CharP/Two.lean Modified Mathlib/Algebra/Module/Defs.lean +/- theorem Int.smul_one_eq_cast +/- theorem Nat.smul_one_eq_cast Modified Mathlib/Combinatorics/SimpleGraph/DegreeSum.lean Modified Mathlib/Data/Int/Cast/Lemmas.lean + theorem Even.intCast - theorem Int.Even.intCast +/- theorem Odd.intCast Modified Mathlib/Data/ZMod/Basic.lean Modified Mathlib/Data/ZMod/Factorial.lean Modified Mathlib/FieldTheory/Finite/Basic.lean Modified Mathlib/GroupTheory/OrderOfElement.lean + theorem CharP.addOrderOf_one + theorem Nat.cast_card_eq_zero + theorem charP_of_ne_zero + theorem charP_of_prime_pow_injective Modified Mathlib/NumberTheory/Harmonic/Int.lean Modified Mathlib/NumberTheory/MulChar/Basic.lean 2024-06-08 15:34:42 6eaf5a4 feat: make `Vector.inductionOn` the default `induction_eliminator` (#13625) otherwise it's `Subtype.rec`, which (IMO) is less useful for `induction` than it is for `cases` ESTIMATED CHANGES Modified Mathlib/Data/Fintype/Fin.lean Modified Mathlib/Data/Vector/Basic.lean Modified Mathlib/Data/Vector/MapLemmas.lean Modified Mathlib/Data/Vector/Snoc.lean 2024-06-08 14:38:13 80dbecb feat: topology on `ℕ+`(`PNat`) (#13250) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Topology/Instances/PNat.lean + theorem PNat.dist_coe + theorem PNat.dist_eq + theorem PNat.uniformEmbedding_coe 2024-06-08 10:13:38 02ca1f4 chore(FieldTheory/Finiteness): delete a deprecated alias (#13624) ESTIMATED CHANGES Modified Mathlib/FieldTheory/Finiteness.lean 2024-06-08 10:13:37 8462800 chore(Data/List): cleanup redundant type arguments (#13605) ESTIMATED CHANGES Modified Mathlib/Data/List/Basic.lean +/- theorem List.getLast_pmap +/- theorem List.injective_foldl_comp +/- theorem List.intersperse_cons_cons +/- theorem List.intersperse_singleton +/- theorem List.mem_pure +/- theorem List.pmap_append' +/- theorem List.splitOn_nil Modified Mathlib/Data/List/Count.lean +/- theorem List.count_map_of_injective Modified Mathlib/Data/List/FinRange.lean +/- theorem List.nodup_ofFn +/- theorem List.nodup_ofFn_ofInjective +/- theorem List.ofFn_eq_map +/- theorem List.ofFn_eq_pmap Modified Mathlib/Data/List/GetD.lean +/- def List.decidableGetDNilNe Modified Mathlib/Data/List/Indexes.lean +/- theorem List.foldlIdxM_eq_foldlM_enum +/- theorem List.foldrIdxM_eq_foldrM_enum +/- theorem List.length_mapIdx +/- def List.mapIdxMAuxSpec +/- theorem List.mapIdxMAuxSpec_cons +/- theorem List.mapIdxMGo_eq_mapIdxMAuxSpec +/- theorem List.mapIdxM_eq_mmap_enum +/- theorem List.mapIdx_append +/- theorem List.mapIdx_cons +/- theorem List.mapIdx_eq_nil +/- theorem List.mapIdx_eq_ofFn +/- theorem List.nthLe_mapIdx Modified Mathlib/Data/List/Nodup.lean +/- theorem Option.toList_nodup Modified Mathlib/Data/List/Perm.lean +/- theorem List.Perm.dropSlice_inter +/- theorem List.Perm.drop_inter +/- theorem List.Perm.take_inter Modified Mathlib/Data/List/Permutation.lean +/- theorem List.map_map_permutationsAux2 +/- theorem List.map_permutationsAux2' Modified Mathlib/Data/List/Rotate.lean +/- theorem List.zipWith_rotate_distrib Modified Mathlib/Data/List/Sigma.lean +/- theorem List.sizeOf_dedupKeys +/- theorem List.sizeOf_kerase Modified Mathlib/Data/List/Sort.lean Modified Mathlib/Data/List/Sublists.lean +/- theorem List.length_of_sublistsLen +/- theorem List.length_sublistsLen +/- theorem List.mem_sublistsLen +/- theorem List.mem_sublistsLen_self +/- theorem List.range_bind_sublistsLen_perm +/- def List.sublistsLen +/- def List.sublistsLenAux +/- theorem List.sublistsLenAux_append +/- theorem List.sublistsLenAux_eq +/- theorem List.sublistsLenAux_zero +/- theorem List.sublistsLen_one +/- theorem List.sublistsLen_sublist_of_sublist +/- theorem List.sublistsLen_sublist_sublists' +/- theorem List.sublistsLen_succ_cons +/- theorem List.sublistsLen_succ_nil +/- theorem List.sublistsLen_zero Modified Mathlib/Data/List/Zip.lean +/- theorem List.get?_zip_with_eq_some 2024-06-08 10:13:36 e00920d doc: clean up some `add_decl_doc`s (#12700) Many of these can just be inlined. I've left the ones around `to_additive` alone, as often these are a stylistic choice. ESTIMATED CHANGES Modified Mathlib/AlgebraicGeometry/EllipticCurve/Weierstrass.lean Modified Mathlib/Order/SetNotation.lean Modified Mathlib/RingTheory/WittVector/Defs.lean Modified Mathlib/SetTheory/Lists.lean Modified Mathlib/SetTheory/Ordinal/Basic.lean 2024-06-08 09:11:43 89f0304 chore: Rename `Prod_map` (#12753) ... in lemma names and section names in order to follow the naming convention. ESTIMATED CHANGES Modified Mathlib/Algebra/BigOperators/Ring/Multiset.lean Modified Mathlib/Algebra/Group/Prod.lean Modified Mathlib/Algebra/Ring/Prod.lean Modified Mathlib/Analysis/Calculus/ContDiff/Basic.lean Modified Mathlib/Analysis/Calculus/FDeriv/Prod.lean Modified Mathlib/Analysis/Calculus/UniformLimitsDeriv.lean Modified Mathlib/Combinatorics/Additive/Corner/Roth.lean Modified Mathlib/Combinatorics/Additive/FreimanHom.lean Modified Mathlib/Data/Countable/Basic.lean Modified Mathlib/Data/Finset/Lattice.lean Modified Mathlib/Data/Finsupp/Antidiagonal.lean Modified Mathlib/Data/List/NatAntidiagonal.lean Modified Mathlib/Data/List/Sublists.lean Modified Mathlib/Data/Multiset/NatAntidiagonal.lean Modified Mathlib/Data/Multiset/Powerset.lean Modified Mathlib/Data/Prod/Basic.lean - theorem Function.Bijective.Prod_map + theorem Function.Bijective.prodMap - theorem Function.Injective.Prod_map + theorem Function.Injective.prodMap - theorem Function.Involutive.Prod_map + theorem Function.Involutive.prodMap - theorem Function.LeftInverse.Prod_map + theorem Function.LeftInverse.prodMap - theorem Function.RightInverse.Prod_map + theorem Function.RightInverse.prodMap - theorem Function.Surjective.Prod_map + theorem Function.Surjective.prodMap + theorem Prod.map_apply - theorem Prod_map Modified Mathlib/FieldTheory/Perfect.lean Modified Mathlib/Geometry/Manifold/ContMDiff/Product.lean Modified Mathlib/LinearAlgebra/Dual.lean Modified Mathlib/Logic/Embedding/Basic.lean Modified Mathlib/Order/RelIso/Basic.lean Modified Mathlib/RingTheory/Kaehler.lean Modified Mathlib/Topology/Algebra/Group/Basic.lean Modified Mathlib/Topology/Algebra/Module/Basic.lean Modified Mathlib/Topology/DenseEmbedding.lean Modified Mathlib/Topology/EMetricSpace/Basic.lean Modified Mathlib/Topology/Inseparable.lean Modified Mathlib/Topology/MetricSpace/Isometry.lean Modified Mathlib/Topology/MetricSpace/PseudoMetric.lean Modified Mathlib/Topology/UniformSpace/Cauchy.lean Modified Mathlib/Topology/UniformSpace/Separation.lean Modified Mathlib/Topology/UniformSpace/UniformConvergence.lean Modified Mathlib/Topology/UniformSpace/UniformConvergenceTopology.lean Modified Mathlib/Topology/UniformSpace/UniformEmbedding.lean 2024-06-08 08:17:26 a69ea8f chore: avoid instance names for DMatrix (#13596) This should be more robust. ESTIMATED CHANGES Modified Mathlib/Data/Matrix/DMatrix.lean 2024-06-08 08:17:25 c1379a3 chore(AddChar): Rename `map_zero_one` to `map_zero_eq_one` (#13576) To follow the naming convention, rename * `map_zero_one` → `map_zero_eq_one` * `map_add_mul` → `map_add_eq_mul` * `map_nsmul_pow` → `map_nsmul_eq_pow` * `map_neg_inv` → `map_neg_eq_inv` * `map_zsmul_zpow` → `map_zsmul_eq_zpow` ESTIMATED CHANGES Modified Mathlib/Algebra/Group/AddChar.lean +/- theorem AddChar.inv_apply' + theorem AddChar.map_add_eq_mul - theorem AddChar.map_add_mul + theorem AddChar.map_neg_eq_inv - theorem AddChar.map_neg_inv + theorem AddChar.map_nsmul_eq_pow - theorem AddChar.map_nsmul_pow + theorem AddChar.map_zero_eq_one - theorem AddChar.map_zero_one + theorem AddChar.map_zsmul_eq_zpow - theorem AddChar.map_zsmul_zpow Modified Mathlib/Analysis/Fourier/FourierTransform.lean Modified Mathlib/NumberTheory/LegendreSymbol/AddCharacter.lean Modified Mathlib/NumberTheory/LegendreSymbol/GaussSum.lean 2024-06-08 08:17:24 1808f15 chore: move LinearMap.eqLocus to its own file (#13566) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Module/Submodule/EqLocus.lean + def LinearMap.eqLocus + theorem LinearMap.eqLocus_eq_ker_sub + theorem LinearMap.eqLocus_eq_top + theorem LinearMap.eqLocus_same + theorem LinearMap.eqLocus_toAddSubmonoid + theorem LinearMap.eqOn_sup + theorem LinearMap.ext_on_codisjoint + theorem LinearMap.le_eqLocus + theorem LinearMap.mem_eqLocus Modified Mathlib/LinearAlgebra/Basic.lean - def LinearMap.eqLocus - theorem LinearMap.eqLocus_eq_ker_sub - theorem LinearMap.eqLocus_eq_top - theorem LinearMap.eqLocus_same - theorem LinearMap.eqLocus_toAddSubmonoid - theorem LinearMap.eqOn_sup - theorem LinearMap.ext_on_codisjoint - theorem LinearMap.le_eqLocus - theorem LinearMap.mem_eqLocus Modified Mathlib/LinearAlgebra/Span.lean 2024-06-08 08:03:30 60054b5 feat(Topology/List): If `α` is discrete then so is `List α` (#13263) ```lean instance [DiscreteTopology α] : DiscreteTopology (List α) ``` ESTIMATED CHANGES Modified Mathlib/Topology/List.lean 2024-06-08 07:02:38 3fe9f19 chore: desimp `compl_sdiff` (#13606) We remove the `simp` attribute from `theorem compl_sdiff : (x \ y)ᶜ = x ⇨ y`, since (for sets) it turns standard notation into exotic notation. Given that this passed CI with no further changes, it seems likely it wasn't being used much. ESTIMATED CHANGES Modified Mathlib/Order/BooleanAlgebra.lean 2024-06-08 06:05:16 ef090d9 fix: remove unused arguments in `norm_mkPiAlgebraFin` (#13628) As reported on [Zulip](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/undetected.20unused.20instance.20arguments/near/443401985), `norm_mkPiAlgebraFin` and `norm_mkPiAlgebraFin_le_of_pos` contain unused arguments. I fixed it by deleting the offending variables from the `variable` command, as these weren't used anywhere else. As a result two proofs don't need to specify this unused argument anymore. ESTIMATED CHANGES Modified Mathlib/Analysis/Analytic/Constructions.lean Modified Mathlib/Analysis/NormedSpace/Exponential.lean Modified Mathlib/Analysis/NormedSpace/Multilinear/Basic.lean +/- theorem ContinuousMultilinearMap.le_opNorm_mul_pow_of_le 2024-06-08 04:33:29 68203c8 feat(CategoryTheory): right derivability structures (#12633) In this PR, we define the notion of right derivability structures introduced by Bruno Kahn and Georges Maltsiniotis (*Structures de dérivabilité*, Adv. Math. 218 (4), pp. 1286-1318 (2008)). It shall be used in order to construct and study derived functors. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/CategoryTheory/CatCommSq.lean + def CategoryTheory.CatCommSq.vInv + def CategoryTheory.CatCommSq.vInvEquiv + theorem CategoryTheory.CatCommSq.vInv_vInv Modified Mathlib/CategoryTheory/GuitartExact/Basic.lean Modified Mathlib/CategoryTheory/GuitartExact/VerticalComposition.lean + theorem CategoryTheory.TwoSquare.GuitartExact.vComp'_iff_of_equivalences + theorem CategoryTheory.TwoSquare.GuitartExact.vComp_iff_of_equivalences Added Mathlib/CategoryTheory/Localization/DerivabilityStructure/Basic.lean + theorem CategoryTheory.LocalizerMorphism.guitartExact_of_isRightDerivabilityStructure' + theorem CategoryTheory.LocalizerMorphism.guitartExact_of_isRightDerivabilityStructure + theorem CategoryTheory.LocalizerMorphism.isRightDerivabilityStructure_iff 2024-06-08 04:33:28 cce8437 feat: the derived category of an abelian category (#11806) The derived category of an abelian category is defined and it is shown that it is a triangulated category. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Homology/DerivedCategory/Basic.lean + def DerivedCategory.Q + def DerivedCategory.Qh + def DerivedCategory.quotientCompQhIso + def DerivedCategory + def HasDerivedCategory.standard + theorem HomotopyCategory.mem_subcategoryAcyclic_iff + theorem HomotopyCategory.quasiIso_eq_subcategoryAcyclic_W + theorem HomotopyCategory.quotient_obj_mem_subcategoryAcyclic_iff_exactAt + def HomotopyCategory.subcategoryAcyclic Modified Mathlib/CategoryTheory/Triangulated/HomologicalFunctor.lean Modified Mathlib/CategoryTheory/Triangulated/Subcategory.lean Modified docs/references.bib 2024-06-08 04:33:26 ecd2ff7 feat(Algebra/Homology): commutation up to signs of the compatibility isomorphisms of the total complex with shifts in both variables (#11517) Shifting horizontally a bicomplex by an integer `x` and then taking the total complex gives a cochain complex that is isomorphic to the shift of the total complex of the original bicomplex. The same applies to vertical shifts by an integer `y`. However, when we apply both horizontal and vertical shifts, depending on whether we apply the horizontal shift or the vertical shift first, we get two isomorphisms which differ by the sign `(x * y).negOnePow`. ESTIMATED CHANGES Modified Mathlib/Algebra/Homology/BifunctorShift.lean + theorem CochainComplex.mapBifunctorShift₁Iso_trans_mapBifunctorShift₂Iso Modified Mathlib/Algebra/Homology/TotalComplex.lean + theorem HomologicalComplex₂.hasTotal_of_iso Modified Mathlib/Algebra/Homology/TotalComplexShift.lean + def HomologicalComplex₂.shiftFunctor₁XXIso + theorem HomologicalComplex₂.shiftFunctor₁XXIso_refl + def HomologicalComplex₂.shiftFunctor₁₂CommIso + def HomologicalComplex₂.shiftFunctor₂XXIso + theorem HomologicalComplex₂.shiftFunctor₂XXIso_refl + theorem HomologicalComplex₂.totalShift₁Iso_hom_naturality + theorem HomologicalComplex₂.totalShift₁Iso_hom_totalShift₂Iso_hom + theorem HomologicalComplex₂.totalShift₁Iso_trans_totalShift₂Iso + theorem HomologicalComplex₂.totalShift₂Iso_hom_naturality + theorem HomologicalComplex₂.ι_totalShift₁Iso_hom_f + theorem HomologicalComplex₂.ι_totalShift₁Iso_inv_f + theorem HomologicalComplex₂.ι_totalShift₂Iso_hom_f + theorem HomologicalComplex₂.ι_totalShift₂Iso_inv_f Modified Mathlib/CategoryTheory/GradedObject.lean + theorem CategoryTheory.GradedObject.hasMap_of_iso Modified Mathlib/CategoryTheory/Limits/Shapes/Products.lean + theorem CategoryTheory.Limits.hasCoproduct_of_equiv_of_iso + theorem CategoryTheory.Limits.hasProduct_of_equiv_of_iso 2024-06-08 04:15:15 fd7d069 feat: shifted morphisms in categories with a shift (#13571) Given a category `C` endowed with a shift by an additive monoid `M` and two objects `X` and `Y` in `C`, we consider the types `ShiftedHom X Y m` defined as `X ⟶ (Y⟦m⟧)` for all `m : M`, and the composition on these shifted hom. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/CategoryTheory/Shift/Basic.lean + def CategoryTheory.shiftFunctorZero' Added Mathlib/CategoryTheory/Shift/ShiftedHom.lean + theorem CategoryTheory.ShiftedHom.add_comp + theorem CategoryTheory.ShiftedHom.comp_add + theorem CategoryTheory.ShiftedHom.comp_assoc + theorem CategoryTheory.ShiftedHom.comp_mk₀ + theorem CategoryTheory.ShiftedHom.comp_mk₀_id + theorem CategoryTheory.ShiftedHom.comp_zero + theorem CategoryTheory.ShiftedHom.mk₀_comp + theorem CategoryTheory.ShiftedHom.mk₀_id_comp + theorem CategoryTheory.ShiftedHom.zero_comp + def CategoryTheory.ShiftedHom 2024-06-08 03:30:04 480278c refactor(GroupTheory/Coset): Replace `Fintype.card` with `Nat.card` (#13431) A lot of the group theory library still needs to be switched over from `Fintype.card` to `Nat.card`. This PR switches over `GroupTheory/Coset.lean`. I had to add a little noise to a few other files, but these will get cleaned up once those files are switched over later. ESTIMATED CHANGES Modified Mathlib/GroupTheory/Coset.lean +/- theorem Subgroup.card_comap_dvd_of_injective +/- theorem Subgroup.card_dvd_of_injective +/- theorem Subgroup.card_dvd_of_le +/- theorem Subgroup.card_eq_card_quotient_mul_card_subgroup +/- theorem Subgroup.card_quotient_dvd_card +/- theorem Subgroup.card_subgroup_dvd_card Modified Mathlib/GroupTheory/Nilpotent.lean Modified Mathlib/GroupTheory/Order/Min.lean Modified Mathlib/GroupTheory/PGroup.lean Modified Mathlib/GroupTheory/SchurZassenhaus.lean Modified Mathlib/GroupTheory/SpecificGroups/Alternating.lean Modified Mathlib/GroupTheory/SpecificGroups/Cyclic.lean Modified Mathlib/GroupTheory/Sylow.lean Modified Mathlib/NumberTheory/NumberField/Embeddings.lean 2024-06-08 02:35:26 acd84d3 feat: basic `Vector.inductionOn` API (#13616) Also make the case names slightly nicer for when using the syntax: ```lean induction v using Vector.inductionOn with | nil => sorry | cons ih => sorry ``` ESTIMATED CHANGES Modified Mathlib/Data/Vector/Basic.lean + theorem Vector.inductionOn_cons + theorem Vector.inductionOn_nil 2024-06-08 01:31:31 6bfbb69 feat(CategoryTheory): a conservative functor preserving epis and monos reflects the property of being balanced (#13622) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Functor/ReflectsIso.lean + theorem CategoryTheory.Functor.balanced_of_preserves 2024-06-07 23:31:54 c789ab5 ci: post a weekly report to zulip with some technical debt stats (#13597) ESTIMATED CHANGES Added .github/workflows/technical_debt_counters.yml Added scripts/technical-debt-counters.sh 2024-06-07 23:31:53 4bbafd4 chore(Order/Interval): use `WithBot` API (#13493) ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Interval/Basic.lean Modified Mathlib/Order/Interval/Basic.lean +/- theorem Interval.coe_inf + def Interval.recBotCoe + theorem NonemptyInterval.coe_def Modified Mathlib/Order/Interval/Finset/Defs.lean 2024-06-07 23:31:53 3ee149a feat: Topological properties of order-connected sets in ℝⁿ (#10565) Partially forward-port https://github.com/leanprover-community/mathlib/pull/16976 ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Analysis/Normed/Order/UpperLower.lean + theorem closure_lowerClosure_comm_pi + theorem closure_upperClosure_comm_pi + theorem dist_anti_left_pi + theorem dist_anti_right_pi + theorem dist_inf_sup_pi + theorem dist_le_dist_of_le_pi + theorem dist_mono_left_pi + theorem dist_mono_right_pi + theorem lowerClosure_interior_subset' + theorem upperClosure_interior_subset' Modified Mathlib/MeasureTheory/Integral/BoundedContinuousFunction.lean Modified Mathlib/MeasureTheory/Measure/Lebesgue/Basic.lean Modified Mathlib/Order/Bounds/Basic.lean + theorem bddAbove_preimage_ofDual + theorem bddAbove_preimage_toDual +/- theorem bddAbove_singleton + theorem bddBelow_preimage_ofDual + theorem bddBelow_preimage_toDual +/- theorem bddBelow_singleton Modified Mathlib/Order/LiminfLimsup.lean + theorem BddAbove.isBoundedUnder + theorem BddBelow.isBoundedUnder Modified Mathlib/Topology/Bornology/Basic.lean + theorem OrderDual.isBounded_preimage_ofDual + theorem OrderDual.isBounded_preimage_toDual + theorem OrderDual.isCobounded_preimage_ofDual + theorem OrderDual.isCobounded_preimage_toDual Modified Mathlib/Topology/ContinuousFunction/Bounded.lean Modified Mathlib/Topology/Instances/ENNReal.lean Modified Mathlib/Topology/Instances/Real.lean - theorem Real.isBounded_iff_bddBelow_bddAbove - theorem Real.subset_Icc_sInf_sSup_of_isBounded Modified Mathlib/Topology/MetricSpace/GromovHausdorffRealized.lean Added Mathlib/Topology/Order/Bornology.lean + theorem BddAbove.isBounded_inter + theorem BddBelow.isBounded_inter + theorem isBounded_iff_bddBelow_bddAbove + theorem isOrderBornology_iff_eq_orderBornology + def orderBornology + theorem orderBornology_isBounded Modified Mathlib/Topology/Order/Bounded.lean Modified Mathlib/Topology/TietzeExtension.lean 2024-06-07 22:14:49 e009e45 rename: Declarations diff (#13614) ESTIMATED CHANGES Modified .github/workflows/PR_summary.yml 2024-06-07 21:13:25 573c52a chore: add deprecated aliases missing from #13356 (#13612) ESTIMATED CHANGES Modified Mathlib/AlgebraicGeometry/EllipticCurve/Affine.lean 2024-06-07 21:13:24 91cb68e feat: `refold_let` tactic (#12745) If `x := v` is a local definition, the `refold_let x` tactic is roughly equivalent to `rw [show v = x from rfl]`. That's to say, it looks for instances of `v` and replaces them with `x`. Adds location in formation in the `runDefEqTactic` interface so that defeq tactics can know which location is being changed, which is important for `refold_let` since `refold_let x at *` should only affect locations that come after `x`. ESTIMATED CHANGES Modified Mathlib/Tactic/DefEqTransformations.lean + def Mathlib.Tactic.refoldFVars +/- def Mathlib.Tactic.runDefEqTactic Modified test/DefEqTransformations.lean 2024-06-07 20:59:42 fe06d94 chore: move dependencies off nightly-testing (#13615) When we moved to `v4.9.0-rc1`, I accidentally left all our dependencies on `nightly-testing`. This restores them to the `main`/`master` branches. ESTIMATED CHANGES Modified lake-manifest.json Modified lakefile.lean 2024-06-07 19:37:38 77aac96 feat(Data/Matroid/Constructions): simple constructions of matroids (#12415) The file in this PR constructs all possible matroids that have only one base (these are trivial to describe), and gives some API. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Data/Matroid/Basic.lean + theorem Matroid.ground_nonempty_iff Added Mathlib/Data/Matroid/Constructions.lean + theorem Matroid.Finite.loopyOn_finite + theorem Matroid.Indep.restrict_eq_freeOn + def Matroid.emptyOn + theorem Matroid.emptyOn_base_iff + theorem Matroid.emptyOn_dual_eq + theorem Matroid.emptyOn_ground + theorem Matroid.emptyOn_indep_iff + theorem Matroid.empty_base_iff + theorem Matroid.eq_emptyOn + theorem Matroid.eq_emptyOn_or_nonempty + theorem Matroid.eq_freeOn_iff + theorem Matroid.eq_loopyOn_iff + theorem Matroid.eq_loopyOn_or_rkPos + def Matroid.freeOn + theorem Matroid.freeOn_base_iff + theorem Matroid.freeOn_basis'_iff + theorem Matroid.freeOn_basis_iff + theorem Matroid.freeOn_dual_eq + theorem Matroid.freeOn_empty + theorem Matroid.freeOn_ground + theorem Matroid.freeOn_indep + theorem Matroid.freeOn_indep_iff + theorem Matroid.freeOn_restrict + theorem Matroid.ground_eq_empty_iff + theorem Matroid.ground_indep_iff_eq_freeOn + def Matroid.loopyOn + theorem Matroid.loopyOn_base_iff + theorem Matroid.loopyOn_basis_iff + theorem Matroid.loopyOn_dual_eq + theorem Matroid.loopyOn_empty + theorem Matroid.loopyOn_ground + theorem Matroid.loopyOn_indep_iff + theorem Matroid.loopyOn_restrict + theorem Matroid.not_rkPos_iff + theorem Matroid.restrict_empty + theorem Matroid.restrict_eq_freeOn_iff + def Matroid.uniqueBaseOn + theorem Matroid.uniqueBaseOn_base_iff + theorem Matroid.uniqueBaseOn_basis_iff + theorem Matroid.uniqueBaseOn_dual_eq + theorem Matroid.uniqueBaseOn_empty + theorem Matroid.uniqueBaseOn_ground + theorem Matroid.uniqueBaseOn_indep_iff' + theorem Matroid.uniqueBaseOn_indep_iff + theorem Matroid.uniqueBaseOn_inter_basis + theorem Matroid.uniqueBaseOn_inter_ground_eq + theorem Matroid.uniqueBaseOn_restrict' + theorem Matroid.uniqueBaseOn_restrict + theorem Matroid.uniqueBaseOn_self 2024-06-07 17:47:47 867ff26 chore: deprecate unused Array/List function (#13587) ESTIMATED CHANGES Modified Mathlib/Data/Array/Basic.lean 2024-06-07 17:47:46 5c7ead3 chore: Make `Subgroup.coe_set_mk`/`Subsemigroup.coe_set_mk` a `norm_cast` lemma (#13444) Those are the only eligible lemmas of their series as all other `coe_set_mk` lemmas have a bundled set coercion on their RHS. ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Subgroup/Basic.lean Modified Mathlib/Algebra/Group/Subsemigroup/Basic.lean 2024-06-07 17:47:45 b4f9322 feat: `oangle_sign_eq_zero_iff_collinear` (#13193) ESTIMATED CHANGES Modified Mathlib/Geometry/Euclidean/Angle/Oriented/Affine.lean + theorem EuclideanGeometry.oangle_sign_eq_zero_iff_collinear 2024-06-07 16:59:21 14710ad feat(Order/Interval): conversion Icc <-> range (#13440) Add lemma `range_eq_Icc_zero_sub_one`, as direct conversion between Icc and range is missing ESTIMATED CHANGES Modified Mathlib/Order/Interval/Finset/Nat.lean + theorem Nat.range_eq_Icc_zero_sub_one 2024-06-07 16:17:01 503253e expected fix: checkout from master for PR summary (#13608) This PR accompanies #13602: it makes the script pull code from master, now that it is present there, rather than from the branch that introduced the code. It is expected to fail CI until the PR on which it depends is merged. It also fixes a copy-paste error in the labeling of `Diff of declarations`. ESTIMATED CHANGES Modified .github/workflows/PR_summary.yml 2024-06-07 14:43:22 263a976 CI: extract update comment and merge import and diff summaries (#13602) This PR extends the PR summary introduced in #13556. * Extracts the GitHub comment creation/update to a new file; * adds the output of `move-decls` to the automatically updated message posted by the import-automation; * if the output of either summary exceeds a few lines, then that output is hidden behind a collapsed summary. ESTIMATED CHANGES Added .github/workflows/PR_summary.yml Deleted .github/workflows/import_count.yml Modified scripts/import-graph-report.py Modified scripts/no_lost_declarations.sh Added scripts/update_PR_comment.sh 2024-06-07 14:08:02 ce2266b feat: Add `integrable_add_iff_of_nonneg` (#13309) Add the lemma saying that if two functions are almost everywhere nonnegative then their sum is integrable iff they are both integrable. In particular, add the following lemmas: 1. `integrable_left_of_integrable_add_of_nonneg` 2. `integrable_right_of_integrable_add_of_nonneg` 3. `integrable_add_iff_of_nonneg` 4. `integrable_add_iff_of_nonpos` 1. and 2. are auxiliary for 3.; 4. is the same result for nonpositive functions. ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Function/L1Space.lean + theorem MeasureTheory.integrable_add_iff_of_nonneg + theorem MeasureTheory.integrable_add_iff_of_nonpos + theorem MeasureTheory.integrable_left_of_integrable_add_of_nonneg + theorem MeasureTheory.integrable_right_of_integrable_add_of_nonneg 2024-06-07 13:10:45 8f1a357 feat(Condensed): functor from light profinite sets to light condensed sets (#13502) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/CategoryTheory/Sites/Canonical.lean + def CategoryTheory.Sheaf.Subcanonical.yoneda + def CategoryTheory.Sheaf.Subcanonical.yonedaCompSheafToPresheaf + def CategoryTheory.Sheaf.Subcanonical.yonedaFullyFaithful Modified Mathlib/CategoryTheory/Sites/Coherent/CoherentSheaves.lean Modified Mathlib/Condensed/Functors.lean +/- def compHausToCondensed' Added Mathlib/Condensed/Light/Functors.lean + def lightProfiniteToLightCondSet 2024-06-07 12:45:38 cc385a8 chore(CategoryTheory.IsConnected): remove redundant hypothesis in `of_induct` (#13598) remove the unnecessary hypothesis by proving it ESTIMATED CHANGES Modified Mathlib/CategoryTheory/IsConnected.lean +/- theorem CategoryTheory.IsConnected.of_induct 2024-06-07 11:39:42 4277214 feat(Algebra/Order/GroupWithZero): add `inv_lt_one₀` and `one_lt_inv₀` (#13563) add `inv_lt_one₀` and `one_lt_inv₀` ESTIMATED CHANGES Modified Mathlib/Algebra/Order/GroupWithZero/Canonical.lean + theorem inv_lt_one₀ + theorem one_lt_inv₀ 2024-06-07 11:39:41 b4911b2 feat: Define Hamiltonian paths and cycles (#7102) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/BigOperators/Group/Finset.lean + theorem List.sum_toFinset_count_eq_length +/- theorem Multiset.toFinset_sum_count_eq Modified Mathlib/Combinatorics/SimpleGraph/Connectivity.lean + theorem SimpleGraph.Walk.IsCircuit.not_nil + theorem SimpleGraph.Walk.IsCycle.not_nil +/- theorem SimpleGraph.Walk.cons_support_tail + theorem SimpleGraph.Walk.nil_iff_eq_nil + theorem SimpleGraph.Walk.support_tail Added Mathlib/Combinatorics/SimpleGraph/Hamiltonian.lean + theorem SimpleGraph.IsHamiltonian.connected + theorem SimpleGraph.IsHamiltonian.mono + def SimpleGraph.IsHamiltonian + theorem SimpleGraph.Walk.IsHamiltonian.isPath + theorem SimpleGraph.Walk.IsHamiltonian.length_eq + theorem SimpleGraph.Walk.IsHamiltonian.map + theorem SimpleGraph.Walk.IsHamiltonian.mem_support + theorem SimpleGraph.Walk.IsHamiltonian.support_toFinset + def SimpleGraph.Walk.IsHamiltonian + theorem SimpleGraph.Walk.IsHamiltonianCycle.count_support_self + theorem SimpleGraph.Walk.IsHamiltonianCycle.isCycle + theorem SimpleGraph.Walk.IsHamiltonianCycle.length_eq + theorem SimpleGraph.Walk.IsHamiltonianCycle.map + theorem SimpleGraph.Walk.IsHamiltonianCycle.mem_support + theorem SimpleGraph.Walk.IsHamiltonianCycle.support_count_of_ne + structure SimpleGraph.Walk.IsHamiltonianCycle + theorem SimpleGraph.Walk.IsPath.isHamiltonian_iff + theorem SimpleGraph.Walk.IsPath.isHamiltonian_of_mem + theorem SimpleGraph.Walk.isHamiltonianCycle_iff_isCycle_and_support_count_tail_eq_one + theorem SimpleGraph.Walk.isHamiltonianCycle_isCycle_and_isHamiltonian_tail 2024-06-07 11:26:26 1df6b98 feat(Topology/LocallyConstant): `map` and `const` as algebraic maps (#12508) This PR adds algebraic versions of `LocallyConstant.map` and `LocallyConstant.const` given various algebraic structures on the target. Follows the existing approach for `LocallyConstant.comap`. ESTIMATED CHANGES Modified Mathlib/Topology/LocallyConstant/Algebra.lean - def LocallyConstant.comapMulHom - def LocallyConstant.congrLeftMulEquiv + def LocallyConstant.congrRightRingEquiv + def LocallyConstant.congrRightₐ + def LocallyConstant.congrRightₗ + def LocallyConstant.constₐ + def LocallyConstant.constₗ + def LocallyConstant.mapMonoidHom + def LocallyConstant.mapRingHom + def LocallyConstant.mapₐ + def LocallyConstant.mapₗ Modified Mathlib/Topology/LocallyConstant/Basic.lean + def LocallyConstant.congrRight + def LocallyConstant.piecewise' 2024-06-07 10:00:23 dd36c71 feat(Condensed): discrete light condensed objects (#13500) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Condensed/Discrete.lean Added Mathlib/Condensed/Light/Discrete.lean 2024-06-07 09:26:50 678f491 feat(Condensed): explicit sheaf condition for light condensed sets (#13503) - [x] depends on: #13501 ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Condensed/Light/Explicit.lean + theorem LightCondensed.equalizerCondition 2024-06-07 08:03:41 f6d6254 chore(Topology/../Rat): drop a deprecated lemma (#13593) It was deprecated since I ported this file in #2643 ESTIMATED CHANGES Modified Mathlib/Topology/Instances/Rat.lean 2024-06-07 08:03:40 7a4ec7b chore(Data/Buffer/Parser): delete two comment-only files from the port (#13588) ESTIMATED CHANGES Modified Mathlib.lean Deleted Mathlib/Data/Buffer/Parser/Basic.lean Deleted Mathlib/Data/Buffer/Parser/Numeral.lean 2024-06-07 06:15:12 f415ad7 feat(Set,Finset): add lemmas, golf (#13591) ## New lemmas - `Set.image_nontrivial` - `Finset.map_ssubset_map`, `Finset.map_nontrivial` ## New `gcongr` attrs - `Finset.map_subset_map`, `Finset.map_ssubset_map` (`.mpr` implications); - `Finset.product_subset_product_left`, `Finset.product_subset_product_right` ## Misc - `Finset.Nonempty.map` is now `protected` ESTIMATED CHANGES Modified Mathlib/Data/Finset/Image.lean +/- theorem Finset.image_eq_empty +/- theorem Finset.image_nonempty +/- theorem Finset.map_eq_empty +/- theorem Finset.map_nonempty + theorem Finset.map_nontrivial + theorem Finset.map_ssubset_map Modified Mathlib/Data/Finset/Prod.lean Modified Mathlib/Data/Set/Image.lean + theorem Set.image_nontrivial Modified Mathlib/Data/Set/Prod.lean 2024-06-07 06:15:11 614409e Chore(RingTheory/Regular): Simplify some namespaces in IsSMulRegular (#13582) Simplify some namespaces in `RingTheory/Regular/IsSMulRegular` ESTIMATED CHANGES Modified Mathlib/RingTheory/Regular/IsSMulRegular.lean - theorem IsSMulRegular.biUnion_associatedPrimes_eq_compl_regular - theorem IsSMulRegular.isSMulRegular_algebraMap_iff - theorem IsSMulRegular.isSMulRegular_iff_ker_lsmul_eq_bot - theorem IsSMulRegular.isSMulRegular_iff_mem_nonZeroSMulDivisors - theorem IsSMulRegular.isSMulRegular_iff_smul_eq_zero_imp_eq_zero - theorem IsSMulRegular.isSMulRegular_of_isSMulRegular_on_submodule_on_quotient - theorem IsSMulRegular.isSMulRegular_of_ker_lsmul_eq_bot - theorem IsSMulRegular.isSMulRegular_of_range_eq_ker - theorem IsSMulRegular.isSMulRegular_of_smul_eq_zero_imp_eq_zero - theorem IsSMulRegular.isSMulRegular_on_quot_iff_lsmul_comap_eq - theorem IsSMulRegular.isSMulRegular_on_quot_iff_lsmul_comap_le - theorem IsSMulRegular.isSMulRegular_on_quot_iff_smul_mem_implies_mem + theorem IsSMulRegular.isSMulRegular_on_quot_iff_smul_top_inf_eq_smul - theorem IsSMulRegular.isSMulRegular_on_quot_iff_smul_top_inf_eq_smul_of_isSMulRegular - theorem IsSMulRegular.isSMulRegular_on_submodule_iff_disjoint_ker_lsmul_submodule - theorem IsSMulRegular.isSMulRegular_on_submodule_iff_mem_imp_smul_eq_zero_imp_eq_zero +/- theorem IsSMulRegular.lTensor - theorem IsSMulRegular.mem_of_isSMulRegular_on_quot_of_smul_mem +/- theorem IsSMulRegular.rTensor - theorem IsSMulRegular.smul_top_inf_eq_smul_of_isSMulRegular_on_quot +/- theorem IsSMulRegular.submodule +/- theorem QuotSMulTop.map_first_exact_on_four_term_exact_of_isSMulRegular_last + theorem biUnion_associatedPrimes_eq_compl_regular + theorem isSMulRegular_algebraMap_iff + theorem isSMulRegular_iff_ker_lsmul_eq_bot + theorem isSMulRegular_iff_mem_nonZeroSMulDivisors + theorem isSMulRegular_iff_smul_eq_zero_imp_eq_zero + theorem isSMulRegular_of_isSMulRegular_on_submodule_on_quotient + theorem isSMulRegular_of_ker_lsmul_eq_bot + theorem isSMulRegular_of_range_eq_ker + theorem isSMulRegular_of_smul_eq_zero_imp_eq_zero + theorem isSMulRegular_on_quot_iff_lsmul_comap_eq + theorem isSMulRegular_on_quot_iff_lsmul_comap_le + theorem isSMulRegular_on_quot_iff_smul_mem_implies_mem + theorem isSMulRegular_on_submodule_iff_disjoint_ker_lsmul_submodule + theorem isSMulRegular_on_submodule_iff_mem_imp_smul_eq_zero_imp_eq_zero + theorem mem_of_isSMulRegular_on_quot_of_smul_mem + theorem smul_top_inf_eq_smul_of_isSMulRegular_on_quot Modified Mathlib/RingTheory/Regular/RegularSequence.lean 2024-06-07 06:01:22 d9fb489 chore: make import_count.yml pull scripts from master (#13581) Follow-up to [#13556](https://github.com/leanprover-community/mathlib4/pull/13556) ESTIMATED CHANGES Modified .github/workflows/import_count.yml 2024-06-07 03:20:39 bbf0d1e chore: merge bump/v4.9.0 (#13584) This has all been reviewed in PRs from `bump/nightly-2024-MM-DD` branches to the `bump/v4.9.0`, and now needs to come to `master`! ESTIMATED CHANGES Modified Cache/Hashing.lean Modified Mathlib/Algebra/ContinuedFractions/Computation/Translations.lean Modified Mathlib/Algebra/Group/MinimalAxioms.lean Modified Mathlib/Algebra/Module/LinearMap/Polynomial.lean Modified Mathlib/Algebra/Module/Projective.lean Modified Mathlib/Algebra/Order/Group/Abs.lean Modified Mathlib/Algebra/Order/Group/Cone.lean Modified Mathlib/Analysis/Analytic/CPolynomial.lean Modified Mathlib/Analysis/Calculus/ContDiff/Bounds.lean Modified Mathlib/Analysis/Calculus/ContDiff/Defs.lean Modified Mathlib/Analysis/Fourier/FourierTransformDeriv.lean Modified Mathlib/Analysis/Normed/Group/SemiNormedGroupCat/Kernels.lean Modified Mathlib/Analysis/NormedSpace/HahnBanach/Extension.lean Modified Mathlib/Analysis/NormedSpace/Multilinear/Basic.lean +/- theorem ContinuousMultilinearMap.norm_smulRightL_le - def ContinuousMultilinearMap.seminormedAddCommGroup_aux_for_smulRightL Modified Mathlib/Analysis/NormedSpace/OperatorNorm/Bilinear.lean +/- theorem ContinuousLinearMap.norm_compL_le +/- theorem ContinuousLinearMap.norm_compSL_le +/- theorem ContinuousLinearMap.norm_precompL_le +/- theorem ContinuousLinearMap.norm_precompR_le Modified Mathlib/Analysis/NormedSpace/OperatorNorm/Mul.lean Modified Mathlib/Analysis/NormedSpace/OperatorNorm/NormedSpace.lean +/- theorem ContinuousLinearMap.norm_smulRightL_le - def ContinuousLinearMap.seminormedAddCommGroup_aux_for_smulRightL Modified Mathlib/Analysis/NormedSpace/Pointwise.lean Modified Mathlib/CategoryTheory/Abelian/InjectiveResolution.lean Modified Mathlib/CategoryTheory/Category/PartialFun.lean Modified Mathlib/CategoryTheory/EffectiveEpi/Comp.lean Modified Mathlib/CategoryTheory/Elements.lean Modified Mathlib/CategoryTheory/Filtered/Small.lean Modified Mathlib/CategoryTheory/GlueData.lean Modified Mathlib/CategoryTheory/Limits/HasLimits.lean Modified Mathlib/CategoryTheory/Limits/KanExtension.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Multiequalizer.lean Modified Mathlib/CategoryTheory/Monad/Algebra.lean Modified Mathlib/Computability/PartrecCode.lean Modified Mathlib/Data/Array/ExtractLemmas.lean Modified Mathlib/Data/ByteArray.lean +/- theorem Nat.Up.WF +/- theorem Nat.Up.next +/- def Nat.Up +/- def Nat.upRel Modified Mathlib/Data/Char.lean - theorem Char.ofNat_toNat - def Char.toUInt8 - theorem Char.utf8Size_pos Modified Mathlib/Data/Fin/Basic.lean Modified Mathlib/Data/Fin/VecNotation.lean Modified Mathlib/Data/FinEnum.lean Modified Mathlib/Data/Finset/Basic.lean Modified Mathlib/Data/Int/Bitwise.lean + theorem Int.shiftRight_add' - theorem Int.shiftRight_add - theorem Int.shiftRight_eq_div_pow + theorem Int.zero_shiftRight' - theorem Int.zero_shiftRight Modified Mathlib/Data/Int/Cast/Lemmas.lean +/- theorem Commute.intCast_mul_self Modified Mathlib/Data/List/Basic.lean Modified Mathlib/Data/List/EditDistance/Defs.lean Modified Mathlib/Data/Multiset/Basic.lean Modified Mathlib/Data/Nat/Bits.lean - theorem Nat.bodd_eq_and_one_ne_zero + theorem Nat.bodd_eq_one_and_ne_zero - theorem Nat.shiftLeft_add Modified Mathlib/Data/Nat/Bitwise.lean Modified Mathlib/Data/Nat/Choose/Multinomial.lean +/- theorem Nat.multinomial_empty Modified Mathlib/Data/Nat/Prime.lean +/- def Nat.minFacAux Modified Mathlib/Data/Option/NAry.lean Modified Mathlib/Data/PEquiv.lean Modified Mathlib/Data/PFunctor/Multivariate/M.lean Modified Mathlib/Data/PFunctor/Univariate/M.lean Modified Mathlib/Data/Rat/Defs.lean +/- theorem Rat.mk'_zero Modified Mathlib/Data/Set/Basic.lean Modified Mathlib/Data/String/Basic.lean Modified Mathlib/Data/Subtype.lean Modified Mathlib/Data/UInt.lean - theorem $typeName.add_def - theorem $typeName.eq_of_val_eq - theorem $typeName.mk_val_eq - theorem $typeName.mod_def - theorem $typeName.mul_def - theorem $typeName.one_def - theorem $typeName.sub_def - theorem $typeName.val_eq_of_eq - theorem $typeName.zero_def - theorem UInt16.val_eq_of_lt - theorem UInt32.val_eq_of_lt - theorem UInt64.val_eq_of_lt - theorem UInt8.val_eq_of_lt - theorem USize.val_eq_of_lt Modified Mathlib/Data/UnionFind.lean Modified Mathlib/Data/ZMod/Basic.lean Modified Mathlib/GroupTheory/Solvable.lean Modified Mathlib/Init/Core.lean Modified Mathlib/Init/Data/List/Instances.lean Modified Mathlib/Lean/Elab/Term.lean Modified Mathlib/LinearAlgebra/Dual.lean Modified Mathlib/LinearAlgebra/Matrix/Block.lean Modified Mathlib/LinearAlgebra/Multilinear/Basic.lean Modified Mathlib/LinearAlgebra/Orientation.lean Modified Mathlib/LinearAlgebra/Semisimple.lean Modified Mathlib/Logic/Encodable/Basic.lean Modified Mathlib/MeasureTheory/MeasurableSpace/Basic.lean Modified Mathlib/ModelTheory/Semantics.lean Modified Mathlib/NumberTheory/ArithmeticFunction.lean Modified Mathlib/NumberTheory/NumberField/Units/DirichletTheorem.lean Modified Mathlib/RingTheory/Flat/EquationalCriterion.lean Modified Mathlib/RingTheory/Ideal/Basis.lean Modified Mathlib/RingTheory/Polynomial/Chebyshev.lean Modified Mathlib/RingTheory/PowerSeries/Trunc.lean Modified Mathlib/RingTheory/TensorProduct/Basic.lean Modified Mathlib/RingTheory/WittVector/FrobeniusFractionField.lean Modified Mathlib/SetTheory/Ordinal/FixedPointApproximants.lean Modified Mathlib/SetTheory/ZFC/Basic.lean Modified Mathlib/Tactic/Check.lean Modified Mathlib/Tactic/Convert.lean Modified Mathlib/Tactic/Explode.lean Modified Mathlib/Tactic/ExtractGoal.lean Modified Mathlib/Tactic/FBinop.lean Modified Mathlib/Tactic/Find.lean Modified Mathlib/Tactic/FunProp/Decl.lean Modified Mathlib/Tactic/Have.lean Modified Mathlib/Tactic/Linter/HashCommandLinter.lean Modified Mathlib/Tactic/NormNum/Pow.lean Modified Mathlib/Tactic/Says.lean Modified Mathlib/Tactic/SplitIfs.lean Modified Mathlib/Tactic/TermCongr.lean Modified Mathlib/Tactic/ToAdditive.lean Modified Mathlib/Tactic/Variable.lean Modified Mathlib/Topology/ContinuousFunction/StoneWeierstrass.lean Modified Mathlib/Topology/MetricSpace/Completion.lean Modified Mathlib/Topology/UniformSpace/Basic.lean Modified Shake/Main.lean Modified lake-manifest.json Modified lakefile.lean Modified lean-toolchain Modified test/CompileInductive.lean Modified test/DeriveToExpr.lean Modified test/TCSynth.lean Modified test/Use.lean Modified test/Variable.lean Modified test/eval_elab.lean Modified test/norm_num.lean 2024-06-07 00:22:25 2b29e73 chore(Data/UInt): make instCommRing a def, and explain why (#13494) These instances are now in the `UIntX.CommRing` scope. This is because the presence of these casting operations contradicts assumptions made by the expression tree elaborator, namely that coercions do not form a cycle. This happens in `Fin` and `BitVector` too, but those are problems for another PR. After this change, `ring`, `norm_num`, and `rw [mul_add_one]` no longer work out of the box on these types. To avoid further fallout (`rw [mul_one]`, `abel`, ...), `CommMonoid` and `NonUnitalCommRing` instances are provided, which fall just short of enabling the unwanted cast operators. ESTIMATED CHANGES Modified Mathlib/Data/UInt.lean 2024-06-06 22:06:53 0047c56 ci: report changes to the import graph in a spoiler comment (#13556) ESTIMATED CHANGES Added .github/workflows/import_count.yml Added scripts/count-trans-deps.py Added scripts/import-graph-report.py 2024-06-06 22:06:52 590bb46 feat: the pushforward of (pre)sheaves of modules (#13463) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Category/ModuleCat/Presheaf/Pushforward.lean + theorem PresheafOfModules.pushforward_map_app_apply + theorem PresheafOfModules.pushforward_obj_map_apply + theorem PresheafOfModules.pushforward_obj_obj + def PresheafOfModules.pushforward₀ + def PresheafOfModules.pushforward₀CompToPresheaf Added Mathlib/Algebra/Category/ModuleCat/Sheaf/PushforwardContinuous.lean 2024-06-06 21:05:24 c45e50e refactor: move NumberTheory.LegendreSymbol.MulCharacter to NumberTheory.MulChar.Basic (#13569) As announced [here on Zulip](https://leanprover.zulipchat.com/#narrow/stream/144837-PR-reviews/topic/.2313392.20Multiplicative.20characters/near/441957353), this moves the file `NumberTheory.LegendreSymbol.MulCharacter` to `NumberTheory.MulChar.Basic`. Rationale: * Multiplicative characters are useful beyond quadratic reciprocity. * There will be additional API (to be added in a follow-up PR) requiring heavier imports, which can go into a new file `NumberTheory.MulChar.Lemmas`. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/NumberTheory/DirichletCharacter/Basic.lean Modified Mathlib/NumberTheory/LegendreSymbol/ZModChar.lean Renamed Mathlib/NumberTheory/LegendreSymbol/MulCharacter.lean to Mathlib/NumberTheory/MulChar/Basic.lean 2024-06-06 21:05:23 e998082 chore: add flexible tactics to nonterminal simp linter (#12663) This PR makes it so that the existing string-based nonterminal simp linter will not trigger when a simp is followed by one of a few "flexible" tactics. See [this](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/False.20ERR_NSP.20positive/near/437054148) thread for discussion of places where this linter was being too sensitive. Most of the list was decided by poll [here](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/.60simp.60.20followers). ESTIMATED CHANGES Modified scripts/lint-style.py 2024-06-06 21:05:22 57c4098 feat(GroupTheory/GroupAction/Basic): various orbit / quotient lemmas (#11912) Add various lemmas about `orbitRel.Quotient`, mostly concerning `orbitRel.Quotient.orbit`, many concerning orbits for the action of a subgroup. Along with the lemmas there are instances ```lean instance (x : orbitRel.Quotient G α) : MulAction G x.orbit where ``` and ```lean instance (x : orbitRel.Quotient G α) : IsPretransitive G x.orbit where ``` both of which already have analogues for `MulAction.orbit` as opposed to `orbitRel.Quotient.orbit` - and lemmas about the above action on an orbit. From AperiodicMonotilesLean. ESTIMATED CHANGES Modified Mathlib/GroupTheory/GroupAction/Basic.lean + theorem MulAction.orbitRel.Quotient.mem_subgroup_orbit_iff' + theorem MulAction.orbitRel.Quotient.mem_subgroup_orbit_iff + theorem MulAction.orbitRel.Quotient.orbit.coe_smul + theorem MulAction.orbitRel.Quotient.orbit_inj + theorem MulAction.orbitRel.Quotient.orbit_injective + theorem MulAction.orbitRel.Quotient.subgroup_quotient_eq_iff + theorem MulAction.orbitRel.quotient_eq_of_quotient_subgroup_eq' + theorem MulAction.orbitRel.quotient_eq_of_quotient_subgroup_eq + theorem MulAction.orbitRel_r_apply 2024-06-06 21:05:21 f6837cf refactor: `reduceOption_length_le` (#11671) Reproves `reduceOption_length_eq_iff` and `reduceOption_length_le` with new auxiliary lemmas - primarily `length_eq_reduceOption_length_add_filter_none`. ESTIMATED CHANGES Modified Mathlib/Data/List/Basic.lean + theorem List.length_eq_length_filter_add Modified Mathlib/Data/List/ReduceOption.lean + theorem List.length_eq_reduceOption_length_add_filter_none + theorem List.reduceOption_length_eq Modified Mathlib/Data/Option/Basic.lean + theorem Option.bnot_comp_isNone + theorem Option.bnot_comp_isSome + theorem Option.bnot_isNone + theorem Option.bnot_isSome + theorem Option.isNone_eq_false_iff 2024-06-06 21:05:20 ac0ad78 feat: Miscellaneous lemmas on quotienting by a polynomial (#11116) Adds `modByMonic_eq_zero_iff_quotient_eq_zero` and `mk_singleton_eq` ESTIMATED CHANGES Modified Mathlib/RingTheory/Ideal/Quotient.lean + theorem Ideal.Quotient.mk_singleton_self Modified Mathlib/RingTheory/Polynomial/Quotient.lean + theorem Polynomial.modByMonic_eq_zero_iff_quotient_eq_zero 2024-06-06 21:05:19 0bd255e feat: optionEquiv lemmas (#11114) Adds lemmas about what `optionEquivRight`/`optionEquivLeft` evaluates to. ESTIMATED CHANGES Modified Mathlib/Algebra/MvPolynomial/Equiv.lean + theorem MvPolynomial.optionEquivLeft_C + theorem MvPolynomial.optionEquivLeft_X_none + theorem MvPolynomial.optionEquivLeft_X_some + theorem MvPolynomial.optionEquivRight_C + theorem MvPolynomial.optionEquivRight_X_none + theorem MvPolynomial.optionEquivRight_X_some 2024-06-06 20:44:55 be31fb1 feat: the associated sheaf of a presheaf of modules (#11555) Let `C` be a category equipped with a Grothendieck topology `J`. Let `α : R₀ ⟶ R.val` be a morphism, with `R₀` a presheaf of rings and `R` a sheaf of rings. We assume that `α` is a sheafification map (i.e. it is both locally injective and locally surjective) . Let `M₀` be a presheaf of modules over `R₀`. Let `A` be the associated sheaf of the underlying presheaf of abelian groups of `M₀`. Then, it is shown in this PR that there is a canonical structure of sheaf of `R`-modules on `A`. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Category/ModuleCat/Presheaf/Sheafify.lean + theorem CategoryTheory.Presieve.FamilyOfElements.isCompatible_map_smul + theorem CategoryTheory.Presieve.FamilyOfElements.isCompatible_map_smul_aux + def CategoryTheory.Presieve.FamilyOfElements.smul + def PresheafOfModules.Sheafify.SMulCandidate.mk' + structure PresheafOfModules.Sheafify.SMulCandidate + theorem PresheafOfModules.Sheafify.app_eq_of_isLocallyInjective + theorem PresheafOfModules.Sheafify.map_smul + theorem PresheafOfModules.Sheafify.map_smul_eq Modified Mathlib/CategoryTheory/Sites/IsSheafFor.lean + def CategoryTheory.Presieve.FamilyOfElements.map + theorem CategoryTheory.Presieve.FamilyOfElements.map_apply + theorem CategoryTheory.Presieve.FamilyOfElements.restrict_map Modified Mathlib/CategoryTheory/Sites/LeftExact.lean Modified Mathlib/CategoryTheory/Sites/LocallySurjective.lean + theorem CategoryTheory.Presieve.FamilyOfElements.isAmalgamation_map_localPreimage Modified Mathlib/CategoryTheory/Sites/Sheaf.lean + def CategoryTheory.Presheaf.IsSeparated + theorem CategoryTheory.Presheaf.IsSheaf.isSheafFor Modified Mathlib/CategoryTheory/Sites/Whiskering.lean + theorem CategoryTheory.Presheaf.IsSheaf.isSeparated + theorem CategoryTheory.Sheaf.isSeparated 2024-06-06 19:57:26 01be8fa feat(Order/ModularLattice): alternative equality lemma (#13565) We add a new lemma `eq_of_le_inf_le_of_le_sup` for proving two comparable elements are equal in a modular lattice. It is the same as the existing `eq_of_le_inf_le_of_sup_le` but with the hypotheses in simp normal form, having`y ⊓ z ≤ x` and `y ≤ x ⊔ z` instead of `y ⊓ z ≤ x ⊓ z` and `y ⊔ z ≤ x ⊔ z`. The weaker hypotheses easily imply the stronger ones, and proving them in many applications involves slightly less boilerplate. We also golf the proof of the original lemma using the (shorter) proof of the new one. ESTIMATED CHANGES Modified Mathlib/Order/ModularLattice.lean + theorem eq_of_le_of_inf_le_of_le_sup 2024-06-06 18:43:24 4411c7e chore: Split `Algebra.GroupPower.Order` (#12964) Move its lemmas (mostly) to two new files: * `Algebra.Order.Group.Basic` for the lemmas about group-like objects * `Algebra.Order.Ring.Basic` for the lemmas about ring-like objects ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/ContinuedFractions/Computation/Approximations.lean Modified Mathlib/Algebra/Order/Chebyshev.lean Added Mathlib/Algebra/Order/Group/Basic.lean + theorem one_lt_zpow' + theorem zpow_eq_zpow_iff' + theorem zpow_le_zpow' + theorem zpow_le_zpow + theorem zpow_le_zpow_iff' + theorem zpow_le_zpow_iff + theorem zpow_left_inj + theorem zpow_left_injective + theorem zpow_lt_zpow' + theorem zpow_lt_zpow + theorem zpow_lt_zpow_iff' + theorem zpow_lt_zpow_iff + theorem zpow_mono_left + theorem zpow_mono_right + theorem zpow_right_strictMono + theorem zpow_strictMono_left Modified Mathlib/Algebra/Order/Group/Nat.lean + theorem StrictMono.nat_pow Modified Mathlib/Algebra/Order/Interval/Set/Group.lean Modified Mathlib/Algebra/Order/Interval/Set/Instances.lean Modified Mathlib/Algebra/Order/Ring/Abs.lean Renamed Mathlib/Algebra/GroupPower/Order.lean to Mathlib/Algebra/Order/Ring/Basic.lean - theorem CanonicallyOrderedCommSemiring.pow_pos - theorem StrictMono.nat_pow - theorem one_lt_zpow' - theorem zpow_eq_zpow_iff' - theorem zpow_le_zpow' - theorem zpow_le_zpow - theorem zpow_le_zpow_iff' - theorem zpow_le_zpow_iff - theorem zpow_left_inj - theorem zpow_left_injective - theorem zpow_lt_zpow' - theorem zpow_lt_zpow - theorem zpow_lt_zpow_iff' - theorem zpow_lt_zpow_iff - theorem zpow_mono_left - theorem zpow_mono_right - theorem zpow_right_strictMono - theorem zpow_strictMono_left Modified Mathlib/Algebra/Order/Ring/Canonical.lean + theorem CanonicallyOrderedCommSemiring.pow_pos Modified Mathlib/Algebra/Polynomial/Degree/CardPowDegree.lean Modified Mathlib/Algebra/Polynomial/HasseDeriv.lean Modified Mathlib/Analysis/Convex/Mul.lean Modified Mathlib/Combinatorics/Additive/PluenneckeRuzsa.lean Modified Mathlib/Combinatorics/SetFamily/FourFunctions.lean Modified Mathlib/Combinatorics/SimpleGraph/Regularity/Energy.lean Modified Mathlib/Computability/Ackermann.lean Modified Mathlib/Computability/PartrecCode.lean Modified Mathlib/Data/Nat/Defs.lean Modified Mathlib/NumberTheory/Divisors.lean Modified Mathlib/NumberTheory/LucasLehmer.lean Modified Mathlib/NumberTheory/Multiplicity.lean Modified Mathlib/NumberTheory/PellMatiyasevic.lean Modified Mathlib/NumberTheory/PythagoreanTriples.lean Modified Mathlib/Order/Filter/AtTopBot.lean Modified Mathlib/RingTheory/Valuation/Basic.lean Modified Mathlib/SetTheory/Surreal/Dyadic.lean Modified Mathlib/Tactic/Positivity/Basic.lean 2024-06-06 18:30:31 286f65c chore(Topology): tweak and factor out "pseudo-metrisable second countable spaces are Lindelöf" (#13515) As discussed with @grunweg, this factors out a result to its own file in order to remove a circular dependency that otherwise blocks #13176 ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Topology/Compactness/Lindelof.lean Added Mathlib/Topology/Compactness/PseudometrizableLindelof.lean 2024-06-06 16:20:36 cc4f996 chore: tidy various files (#13562) ESTIMATED CHANGES Modified Mathlib/Algebra/DirectLimit.lean Modified Mathlib/Algebra/Lie/Submodule.lean Modified Mathlib/Algebra/Module/Submodule/Pointwise.lean Modified Mathlib/Algebra/MonoidAlgebra/Ideal.lean Modified Mathlib/Algebra/Order/GroupWithZero/Unbundled.lean Modified Mathlib/CategoryTheory/FiberedCategory/HomLift.lean Modified Mathlib/CategoryTheory/IsConnected.lean +/- theorem CategoryTheory.IsPreconnected.of_any_functor_const_on_obj Modified Mathlib/CategoryTheory/Localization/Triangulated.lean Modified Mathlib/Data/Finsupp/Defs.lean Modified Mathlib/Data/Prod/Lex.lean Modified Mathlib/GroupTheory/GroupAction/Opposite.lean Modified Mathlib/GroupTheory/NoncommCoprod.lean Modified Mathlib/GroupTheory/Perm/Support.lean Modified Mathlib/LinearAlgebra/CliffordAlgebra/CategoryTheory.lean Modified Mathlib/LinearAlgebra/Dimension/FreeAndStrongRankCondition.lean Modified Mathlib/LinearAlgebra/QuadraticForm/QuadraticModuleCat.lean Modified Mathlib/Logic/Equiv/TransferInstance.lean Modified Mathlib/MeasureTheory/Decomposition/Lebesgue.lean Modified Mathlib/MeasureTheory/Integral/Pi.lean Modified Mathlib/MeasureTheory/Measure/Lebesgue/VolumeOfBalls.lean Modified Mathlib/NumberTheory/NumberField/Discriminant.lean Modified Mathlib/Order/Filter/AtTopBot.lean Modified Mathlib/Order/Partition/Equipartition.lean Modified Mathlib/Order/RelSeries.lean Modified Mathlib/RingTheory/DedekindDomain/Different.lean Modified Mathlib/RingTheory/FiniteType.lean Modified Mathlib/RingTheory/WittVector/IsPoly.lean Modified Mathlib/Topology/Algebra/UniformMulAction.lean Modified Mathlib/Topology/Homotopy/HSpaces.lean 2024-06-06 16:20:35 562c80b feat: complements of codimension at least two subspaces are ample (#11342) From the sphere-eversion project. exponential change on `master`, as it may affect other congr lemmas which are harder to simply remove. ESTIMATED CHANGES Modified Mathlib/Logic/Basic.lean - theorem exists_prop_congr' 2024-05-17 01:00:18 b6cc539 feat: finite integral adeles are a topological ring. (#12965) ESTIMATED CHANGES Modified Mathlib/RingTheory/DedekindDomain/FiniteAdeleRing.lean 2024-05-17 01:00:17 e8ad981 doc(Topology): document three items (#12955) ESTIMATED CHANGES Modified Mathlib/Topology/Sets/Closeds.lean Modified Mathlib/Topology/Sets/Compacts.lean Modified scripts/nolints.json 2024-05-17 00:23:39 b3faac9 refactor(OuterMeasure): assume `Disjoint` in `iUnion_nat` (#12894) The new condition is seemingly weaker than the old one, but in fact it is equivalent to it. ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Measure/MeasureSpaceDef.lean Modified Mathlib/MeasureTheory/OuterMeasure/Basic.lean Modified Mathlib/MeasureTheory/OuterMeasure/Caratheodory.lean Modified Mathlib/MeasureTheory/OuterMeasure/Defs.lean Modified Mathlib/MeasureTheory/OuterMeasure/Induced.lean Modified Mathlib/MeasureTheory/OuterMeasure/OfFunction.lean Modified Mathlib/MeasureTheory/OuterMeasure/Operations.lean 2024-05-16 21:59:08 0ce4969 chore(Topology/Algebra/ContinuousAffineMap): change notation (#12864) We change the notation for `ContinuousAffineMap` from [→A](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Topology/Algebra/ContinuousAffineMap.html#ContinuousAffineMap) to `→ᴬ`, so that `→A` can be used for `ContinuousAlgHom` (see #12800). This seems consistent with the Mathlib notations [→ᵃ](https://leanprover-community.github.io/mathlib4_docs/Mathlib/LinearAlgebra/AffineSpace/AffineMap.html#AffineMap) for `AffineMap` and [→ₐ](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Algebra/Algebra/Hom.html#AlgHom) for `AlgHom`. ESTIMATED CHANGES Modified Mathlib/Analysis/Calculus/AffineMap.lean +/- theorem ContinuousAffineMap.contDiff Modified Mathlib/Analysis/Convex/KreinMilman.lean +/- theorem surjOn_extremePoints_image Modified Mathlib/Analysis/NormedSpace/AddTorsorBases.lean Modified Mathlib/Analysis/NormedSpace/ContinuousAffineMap.lean +/- theorem ContinuousAffineMap.add_contLinear +/- theorem ContinuousAffineMap.coe_contLinear +/- theorem ContinuousAffineMap.coe_contLinear_eq_linear +/- theorem ContinuousAffineMap.coe_linear_eq_coe_contLinear +/- theorem ContinuousAffineMap.comp_contLinear +/- def ContinuousAffineMap.contLinear +/- theorem ContinuousAffineMap.contLinear_eq_zero_iff_exists_const +/- theorem ContinuousAffineMap.contLinear_map_vsub +/- theorem ContinuousAffineMap.decomp +/- theorem ContinuousAffineMap.map_vadd +/- theorem ContinuousAffineMap.neg_contLinear +/- theorem ContinuousAffineMap.norm_comp_le +/- theorem ContinuousAffineMap.smul_contLinear +/- theorem ContinuousAffineMap.sub_contLinear +/- def ContinuousAffineMap.toConstProdContinuousLinearMap +/- theorem ContinuousAffineMap.toConstProdContinuousLinearMap_fst +/- theorem ContinuousAffineMap.toConstProdContinuousLinearMap_snd +/- theorem ContinuousAffineMap.zero_contLinear Modified Mathlib/Topology/Algebra/ContinuousAffineMap.lean +/- theorem ContinuousAffineMap.add_apply +/- theorem ContinuousAffineMap.coe_add +/- theorem ContinuousAffineMap.coe_affineMap_mk +/- theorem ContinuousAffineMap.coe_comp +/- theorem ContinuousAffineMap.coe_continuousMap_mk +/- theorem ContinuousAffineMap.coe_injective +/- theorem ContinuousAffineMap.coe_mk +/- theorem ContinuousAffineMap.coe_neg +/- theorem ContinuousAffineMap.coe_smul +/- theorem ContinuousAffineMap.coe_sub +/- theorem ContinuousAffineMap.coe_to_affineMap +/- theorem ContinuousAffineMap.coe_to_continuousMap +/- theorem ContinuousAffineMap.coe_zero +/- def ContinuousAffineMap.comp +/- theorem ContinuousAffineMap.comp_apply +/- theorem ContinuousAffineMap.congr_fun +/- def ContinuousAffineMap.const +/- theorem ContinuousAffineMap.ext +/- theorem ContinuousAffineMap.ext_iff +/- theorem ContinuousAffineMap.mk_coe +/- theorem ContinuousAffineMap.neg_apply +/- theorem ContinuousAffineMap.smul_apply +/- theorem ContinuousAffineMap.sub_apply +/- def ContinuousAffineMap.toContinuousMap +/- theorem ContinuousAffineMap.toContinuousMap_coe +/- theorem ContinuousAffineMap.toFun_eq_coe +/- theorem ContinuousAffineMap.to_affineMap_injective +/- theorem ContinuousAffineMap.to_continuousMap_injective +/- theorem ContinuousAffineMap.zero_apply +/- def ContinuousLinearMap.toContinuousAffineMap 2024-05-16 21:29:47 6c4d20f feat(Mathlib/Order/PrimeSeparator): prime ideal separator in a bounded distributive lattice (#12705) We prove that a disjoint filter and ideal in a bounded distributive lattice can always be separated by a prime ideal. This is a step towards establishing Stone duality (currently in development here: https://github.com/samvang/StoneDualityInLean/) - [x] depends on: #12651 (ideals of sets are stable under directed unions and chains) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Order/Ideal.lean + theorem Order.Ideal.mem_principal_self Added Mathlib/Order/PrimeSeparator.lean + theorem DistribLattice.mem_ideal_sup_principal + theorem DistribLattice.prime_ideal_of_disjoint_filter_ideal Modified docs/references.bib 2024-05-16 21:29:46 579d547 feat (RingTheory/HahnSeries/Basic): define orderTop, taking values in WithTop (#11965) The existing function `HahnSeries.order` requires the value type `Γ` to have `Zero` as the target of a junk value when the Hahn series vanishes. This is okay for Laurent series, but fails for shifted Laurent series (which often appear in vertex algebras, and also formal expansions of solutions of Fuchsian diff. eqs at regular singular points). This PR introduces an order function that doesn't require `Zero`, but takes values in `WithTop Γ`. It is essentially the underlying function of `HahnSeries.addVal`, but without several additional assumptions on the value and coefficient types. We add some basic API for dealing with `WithTop`. ESTIMATED CHANGES Modified Mathlib/RingTheory/HahnSeries/Basic.lean + theorem HahnSeries.coeff_eq_zero_of_lt_orderTop + theorem HahnSeries.coeff_orderTop_ne + theorem HahnSeries.ne_zero_iff_orderTop + def HahnSeries.orderTop + theorem HahnSeries.orderTop_eq_top_iff + theorem HahnSeries.orderTop_le_of_coeff_ne_zero + theorem HahnSeries.orderTop_of_ne + theorem HahnSeries.orderTop_single + theorem HahnSeries.orderTop_zero + theorem HahnSeries.order_eq_orderTop_of_ne + theorem HahnSeries.untop_orderTop_of_ne_zero 2024-05-16 20:36:53 7eebb5f feat(RingTheory/PowerSeries/WellKnown): the power series of `1 / ((1 - x) ^ (d + 1))` with coefficients in a commutative ring `S`, where `d : ℕ`. (#11255) ESTIMATED CHANGES Modified Mathlib/Data/Nat/Choose/Sum.lean + theorem Finset.sum_antidiagonal_choose_add Modified Mathlib/RingTheory/PowerSeries/WellKnown.lean + theorem PowerSeries.invOneSubPow_eq_inv_one_sub_pow + theorem PowerSeries.invOneSubPow_inv_eq_one_sub_pow + theorem PowerSeries.invOneSubPow_val_eq_mk_choose_add + theorem PowerSeries.invOneSubPow_val_zero_eq_invUnitSub_one + theorem PowerSeries.mk_one_mul_one_sub_eq_one + theorem PowerSeries.mk_one_pow_eq_mk_choose_add 2024-05-16 19:48:07 732a2b8 feat (Data/Matrix/Basic): `Matrix` versions of `neg_mul_neg` (#12901) ESTIMATED CHANGES Modified Mathlib/Data/Matrix/Basic.lean + theorem Matrix.neg_dotProduct_neg + theorem Matrix.neg_mulVec_neg + theorem Matrix.neg_vecMul_neg 2024-05-16 18:36:16 e7c71eb chore: Reduce imports to `Data.Finset.Image` (#12832) ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Nat.lean Modified Mathlib/Data/Finset/Card.lean +/- theorem Finset.card_pos Modified Mathlib/Data/Finset/Fold.lean Modified Mathlib/Data/Finset/Image.lean Modified Mathlib/Data/Finset/Lattice.lean Modified Mathlib/Data/Finset/Prod.lean Modified Mathlib/Data/Nat/Interval.lean Modified Mathlib/Data/Set/Enumerate.lean Modified Mathlib/Order/SuccPred/LinearLocallyFinite.lean +/- theorem toZ_nonneg Modified Mathlib/RingTheory/Prime.lean 2024-05-16 17:21:59 c9c95c0 doc(Dynamics/Flow): document missing entry (#12953) This is the only nolint entry in the Dynamics/ directory. While at this, slightly clean up the formatting of the file. ESTIMATED CHANGES Modified Mathlib/Dynamics/Flow.lean Modified scripts/nolints.json 2024-05-16 16:56:12 a255630 feat: `move-decls` prints more informative message for nameless instances (#12935) Fixes a suboptimal reporting of nameless instances in `move-decls`: nameless declarations get the whole line where they are defined printed, excluding `where`/`:=`. Reported in #12862. ESTIMATED CHANGES Modified scripts/no_lost_declarations.sh 2024-05-16 16:29:28 5a43e88 feat(Analysis/PSeries): add Schlömilch's generalization of the Cauchy condensation test (#8806) ESTIMATED CHANGES Modified Mathlib/Analysis/PSeries.lean + theorem ENNReal.le_tsum_schlomilch + theorem ENNReal.tsum_schlomilch_le + theorem Finset.le_sum_schlomilch' + theorem Finset.le_sum_schlomilch + theorem Finset.sum_schlomilch_le' + theorem Finset.sum_schlomilch_le + theorem NNReal.summable_schlomilch_iff + def SuccDiffBounded + theorem summable_schlomilch_iff_of_nonneg 2024-05-16 15:07:51 95ac1e6 chore: Separate algebraic list lemmas (#12836) Resplit `Algebra.BigOperators.List.Basic` and `Algebra.BigOperators.List.Lemmas` into two new files: * `Algebra.BigOperators.Group.List` for lemmas that require group-like structures (`Monoid`, `Group`, ...) * `Algebra.BigOperators.Ring.List` for lemmas that require ring-like structures (`MonoidWithZero`, `Ring`, ...) Add `assert_not_exists Ring` in the former. Once https://github.com/leanprover-community/mathlib4/pull/11855 lands, it will be strenghtenable to `assert_not_exists MonoidWithZero`. ESTIMATED CHANGES Modified Mathlib.lean Renamed Mathlib/Algebra/BigOperators/List/Basic.lean to Mathlib/Algebra/BigOperators/Group/List.lean + theorem List.Sublist.prod_dvd_prod + theorem List.alternatingProd_append + theorem List.alternatingProd_reverse + theorem List.dvd_prod + theorem List.length_le_sum_of_one_le + theorem List.neg_one_mem_of_prod_eq_neg_one - theorem List.prod_map_neg - theorem List.sum_zipWith_distrib_left + theorem MulOpposite.op_list_prod + theorem MulOpposite.unop_list_prod + theorem unop_map_list_prod Deleted Mathlib/Algebra/BigOperators/List/Lemmas.lean - theorem Commute.list_sum_left - theorem Commute.list_sum_right - theorem List.Sublist.prod_dvd_prod - theorem List.alternatingProd_append - theorem List.alternatingProd_reverse - theorem List.dvd_prod - theorem List.dvd_sum - theorem List.length_le_sum_of_one_le - theorem List.neg_one_mem_of_prod_eq_neg_one - theorem List.prod_eq_zero - theorem List.prod_eq_zero_iff - theorem List.prod_ne_zero - theorem List.sum_map_mul_left - theorem List.sum_map_mul_right - theorem MulOpposite.op_list_prod - theorem MulOpposite.unop_list_prod - theorem unop_map_list_prod Modified Mathlib/Algebra/BigOperators/Multiset/Basic.lean Modified Mathlib/Algebra/BigOperators/Multiset/Lemmas.lean Added Mathlib/Algebra/BigOperators/Ring/List.lean + theorem Commute.list_sum_left + theorem Commute.list_sum_right + theorem List.dvd_sum + theorem List.prod_eq_zero + theorem List.prod_eq_zero_iff + theorem List.prod_map_neg + theorem List.prod_ne_zero + theorem List.sum_map_mul_left + theorem List.sum_map_mul_right + theorem List.sum_zipWith_distrib_left Modified Mathlib/Algebra/BigOperators/RingEquiv.lean Modified Mathlib/Algebra/FreeMonoid/Basic.lean Modified Mathlib/Algebra/GradedMonoid.lean Modified Mathlib/Algebra/Group/Nat.lean Modified Mathlib/Algebra/Order/BigOperators/Group/List.lean Modified Mathlib/Algebra/Order/BigOperators/Ring/List.lean Modified Mathlib/Data/List/Prime.lean Modified Mathlib/Data/Nat/ChineseRemainder.lean Modified Mathlib/Data/Nat/Digits.lean Modified Mathlib/Data/Nat/Factors.lean Modified Mathlib/Data/Set/Pointwise/ListOfFn.lean Modified Mathlib/Data/Vector/Basic.lean Modified test/congr.lean Modified test/convert2.lean 2024-05-16 14:20:16 ac523ae feat(Data/Matrix/Basic): 0 ≤ 1 (#12911) ESTIMATED CHANGES Modified Mathlib/Data/Matrix/Basic.lean + theorem Matrix.zero_le_one_elem + theorem Matrix.zero_le_one_row 2024-05-16 14:20:15 dc75ecf refactor: Turn Algebra.IsAlgebraic and Algebra.IsIntegral into classes (#12761) As [discussed on Zulip](https://leanprover.zulipchat.com/#narrow/stream/217875-Is-there-code-for-X.3F/topic/Typeclass.20for.20algebraic.20extension.20of.20fields.3F), this PR replaces the current definition of `Algebra.IsAlgebraic` and `Algebra.IsIntegral` with classes. The following main changes are required: * Since a class must be a structure, we can't identify `Algebra.IsAlgebraic R A` with `∀ (x : A), IsAlgebraic R x`. Either use the projection `.isAlgebraic`, or use the new definition `Algebra.IsAlgebraic.isAlgebraic` which leaves the proof implicit. Idem for integral. * Turn `Algebra.IsAlgebraic` and `Algebra.IsIntegral` arguments into instance implicits; turn theorems with those as the conclusion into instances. * `Algebra.IsAlgebraic` is now `protected`, like `Algebra.IsIntegral`. The spelling `Algebra.IsAlgebraic.isAlgebraic x` and `Algebra.IsIntegral.isIntegral x` to prove an element `x` is algebraic/integral is kind of ugly, do you have better suggestions? ESTIMATED CHANGES Modified Mathlib/AlgebraicGeometry/PrimeSpectrum/Basic.lean Modified Mathlib/FieldTheory/Adjoin.lean +/- theorem IntermediateField.sup_toSubalgebra_of_isAlgebraic_left +/- theorem IntermediateField.sup_toSubalgebra_of_isAlgebraic_right Modified Mathlib/FieldTheory/AxGrothendieck.lean Modified Mathlib/FieldTheory/Extension.lean Modified Mathlib/FieldTheory/Fixed.lean Modified Mathlib/FieldTheory/IntermediateField.lean +/- theorem mem_subalgebraEquivIntermediateField +/- theorem mem_subalgebraEquivIntermediateField_symm +/- def subalgebraEquivIntermediateField Modified Mathlib/FieldTheory/IsAlgClosed/AlgebraicClosure.lean - theorem AlgebraicClosure.isAlgebraic - theorem AlgebraicClosureAux.isAlgebraic Modified Mathlib/FieldTheory/IsAlgClosed/Basic.lean +/- theorem IsAlgClosure.ofAlgebraic Modified Mathlib/FieldTheory/IsAlgClosed/Classification.lean Modified Mathlib/FieldTheory/IsSepClosed.lean Modified Mathlib/FieldTheory/KrullTopology.lean Modified Mathlib/FieldTheory/Minpoly/MinpolyDiv.lean Modified Mathlib/FieldTheory/Normal.lean - theorem Normal.isAlgebraic +/- theorem Normal.isIntegral Modified Mathlib/FieldTheory/NormalClosure.lean Modified Mathlib/FieldTheory/Perfect.lean - theorem Algebra.IsAlgebraic.isSeparable_of_perfectField Modified Mathlib/FieldTheory/PrimitiveElement.lean +/- theorem Field.FiniteDimensional.of_exists_primitive_element +/- theorem Field.finite_intermediateField_of_exists_primitive_element Modified Mathlib/FieldTheory/PurelyInseparable.lean +/- theorem Algebra.IsAlgebraic.isPurelyInseparable_of_isSepClosed +/- theorem Algebra.IsAlgebraic.isSepClosed +/- theorem Field.finSepDegree_eq +/- theorem Field.lift_sepDegree_mul_lift_sepDegree_of_isAlgebraic + theorem IsPurelyInseparable.isIntegral' - theorem IsPurelyInseparable.isIntegral +/- theorem eq_separableClosure_iff +/- theorem isPurelyInseparable_iff_fd_isPurelyInseparable +/- theorem isPurelyInseparable_iff_finSepDegree_eq_one +/- theorem isPurelyInseparable_of_finSepDegree_eq_one - theorem perfectClosure.isAlgebraic +/- theorem separableClosure.adjoin_eq_of_isAlgebraic +/- theorem separableClosure.adjoin_eq_of_isAlgebraic_of_isSeparable +/- theorem separableClosure.eq_bot_iff +/- theorem separableClosure.isPurelyInseparable +/- theorem separableClosure_le_iff Modified Mathlib/FieldTheory/Separable.lean - theorem IsSeparable.isAlgebraic Modified Mathlib/FieldTheory/SeparableClosure.lean - theorem separableClosure.isAlgebraic Modified Mathlib/FieldTheory/SeparableDegree.lean +/- def Field.embEquivOfIsAlgClosed +/- def Field.embProdEmbOfIsAlgebraic +/- theorem Field.finSepDegree_eq_of_isAlgClosed Modified Mathlib/LinearAlgebra/Eigenspace/Minpoly.lean Modified Mathlib/LinearAlgebra/Semisimple.lean Modified Mathlib/NumberTheory/ClassNumber/Finite.lean +/- theorem ClassGroup.exists_mem_finset_approx' +/- theorem ClassGroup.exists_mk0_eq_mk0 +/- theorem ClassGroup.mkMMem_surjective Modified Mathlib/NumberTheory/Cyclotomic/Basic.lean Modified Mathlib/NumberTheory/Cyclotomic/PrimitiveRoots.lean Modified Mathlib/NumberTheory/Cyclotomic/Rat.lean Modified Mathlib/NumberTheory/NumberField/Embeddings.lean +/- theorem NumberField.InfinitePlace.comap_surjective Modified Mathlib/NumberTheory/NumberField/Norm.lean Modified Mathlib/NumberTheory/RamificationInertia.lean Modified Mathlib/RingTheory/AdjoinRoot.lean Modified Mathlib/RingTheory/Algebraic.lean +/- theorem Algebra.IsAlgebraic.algHom_bijective +/- theorem Algebra.IsAlgebraic.bijective_of_isScalarTower - theorem Algebra.IsAlgebraic.of_finite +/- theorem Algebra.IsAlgebraic.tower_top - def Algebra.IsAlgebraic - theorem Algebra.IsIntegral.isAlgebraic + theorem Algebra.isAlgebraic_def +/- theorem Subalgebra.isField_of_algebraic Modified Mathlib/RingTheory/AlgebraicIndependent.lean Modified Mathlib/RingTheory/DedekindDomain/Different.lean Modified Mathlib/RingTheory/DedekindDomain/IntegralClosure.lean +/- theorem IsIntegralClosure.isLocalization Modified Mathlib/RingTheory/DedekindDomain/PID.lean Modified Mathlib/RingTheory/Ideal/Over.lean +/- theorem Ideal.eq_bot_of_comap_eq_bot +/- theorem Ideal.exists_ideal_over_maximal_of_isIntegral +/- theorem Ideal.exists_ideal_over_prime_of_isIntegral +/- theorem Ideal.exists_ideal_over_prime_of_isIntegral_of_isDomain +/- theorem Ideal.isMaximal_comap_of_isIntegral_of_isMaximal +/- theorem Ideal.isMaximal_of_isIntegral_of_isMaximal_comap Modified Mathlib/RingTheory/IntegralClosure.lean +/- theorem Algebra.IsIntegral.finite - theorem Algebra.IsIntegral.of_finite +/- theorem Algebra.IsIntegral.of_injective - theorem Algebra.IsIntegral.quotient + theorem Algebra.isIntegral_def +/- theorem IsIntegralClosure.algebraMap_lift +/- theorem IsIntegralClosure.isIntegral_algebra - theorem Module.End.isIntegral +/- theorem isIntegral_trans Modified Mathlib/RingTheory/IntegralRestrict.lean Modified Mathlib/RingTheory/IntegrallyClosed.lean - theorem IsIntegralClosure.of_isIntegrallyClosed Modified Mathlib/RingTheory/Jacobson.lean +/- theorem Ideal.isJacobson_of_isIntegral Modified Mathlib/RingTheory/Localization/Integral.lean +/- theorem IsIntegralClosure.isFractionRing_of_algebraic +/- theorem integralClosure.isFractionRing_of_algebraic +/- theorem isIntegral_localization 2024-05-16 13:54:42 4ee2b68 feat: bialgebra isomorphisms (#11971) Isomorphisms of bialgebras. Mimics `Mathlib.Algebra.Module.Equiv` ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/RingTheory/Bialgebra/Equiv.lean + def BialgEquiv.Simps.apply + def BialgEquiv.Simps.symm_apply + theorem BialgEquiv.coe_coe + theorem BialgEquiv.coe_mk + theorem BialgEquiv.coe_toAlgEquiv + theorem BialgEquiv.coe_toBialgHom + theorem BialgEquiv.coe_toCoalgEquiv + theorem BialgEquiv.coe_toEquiv_symm + theorem BialgEquiv.coe_toEquiv_trans + theorem BialgEquiv.ext + theorem BialgEquiv.ext_iff + theorem BialgEquiv.invFun_eq_symm + def BialgEquiv.refl + theorem BialgEquiv.refl_toBialgHom + theorem BialgEquiv.refl_toCoalgEquiv + def BialgEquiv.symm + theorem BialgEquiv.symm_toCoalgEquiv + def BialgEquiv.toAlgEquiv + theorem BialgEquiv.toAlgEquiv_eq_coe + def BialgEquiv.toBialgHom + theorem BialgEquiv.toBialgHom_eq_coe + theorem BialgEquiv.toBialgHom_inj + theorem BialgEquiv.toBialgHom_injective + theorem BialgEquiv.toBialgHom_toAlgHom + theorem BialgEquiv.toCoalgEquiv_eq_coe + theorem BialgEquiv.toCoalgEquiv_toCoalgHom + def BialgEquiv.toEquiv + theorem BialgEquiv.toEquiv_inj + theorem BialgEquiv.toEquiv_injective + def BialgEquiv.trans + theorem BialgEquiv.trans_toBialgHom + theorem BialgEquiv.trans_toCoalgEquiv + structure BialgEquiv + def BialgEquivClass.toBialgEquiv Modified Mathlib/RingTheory/Coalgebra/Equiv.lean 2024-05-16 13:17:16 8079a74 chore: generalize Prefunctor lemmas (#12951) Mysteriously these lemmas were specialized to the case the source and target quiver were the same. ESTIMATED CHANGES Modified Mathlib/Combinatorics/Quiver/Basic.lean +/- theorem Prefunctor.mk_map +/- theorem Prefunctor.mk_obj 2024-05-16 11:37:51 b8d7525 chore: namespace and tidy MonCat/GroupCat adjunctions (#12948) ESTIMATED CHANGES Modified Mathlib/Algebra/Category/GroupCat/Adjunctions.lean + def GroupCat.abelianize + def GroupCat.abelianizeAdj - def abelianize - def abelianizeAdj Modified Mathlib/Algebra/Category/MonCat/Adjunctions.lean + def MonCat.adj + def MonCat.adjoinOne + def MonCat.adjoinOneAdj + def MonCat.free - def adj - def adjoinOne - def adjoinOneAdj - def free 2024-05-16 10:24:00 f802c69 chore: adapt to multiple goal linter 7 (#12908) Missing cdots, un unused `congr` and a stray goal that was solved en-passant since the start of the linter at #12339. ESTIMATED CHANGES Modified Archive/Wiedijk100Theorems/InverseTriangleSum.lean Modified Mathlib/Algebra/Algebra/Quasispectrum.lean Modified Mathlib/LinearAlgebra/LinearIndependent.lean Modified Mathlib/RingTheory/DedekindDomain/Factorization.lean 2024-05-16 10:23:59 0f4f978 chore: Move ring power lemmas earlier (#12818) After #12817, almost all lemmas can move from `Algebra.GroupPower.Ring` to earlier files at no cost. The few remaining lemmas could also move, but it would require a tiny bit more work. ESTIMATED CHANGES Modified Mathlib/Algebra/GroupPower/Ring.lean - theorem Ring.inverse_pow - theorem add_sq' - theorem add_sq - theorem eq_or_eq_neg_of_sq_eq_sq - theorem min_pow_dvd_add - theorem mul_neg_one_pow_eq_zero_iff - theorem neg_one_pow_eq_or - theorem neg_one_pow_eq_pow_mod_two - theorem neg_one_pow_mul_eq_zero_iff - theorem neg_one_sq - theorem neg_pow' - theorem neg_pow - theorem neg_pow_bit0 - theorem neg_pow_bit1 - theorem neg_sq - theorem sq_eq_one_iff - theorem sq_eq_sq_iff_eq_or_eq_neg - theorem sq_ne_one_iff - theorem sq_sub_sq - theorem sub_sq' - theorem sub_sq Modified Mathlib/Algebra/GroupWithZero/Commute.lean + theorem Ring.inverse_pow Modified Mathlib/Algebra/Order/Ring/Abs.lean Modified Mathlib/Algebra/Ring/Commute.lean + theorem eq_or_eq_neg_of_sq_eq_sq + theorem mul_neg_one_pow_eq_zero_iff + theorem neg_one_pow_eq_or + theorem neg_one_pow_eq_pow_mod_two + theorem neg_one_pow_mul_eq_zero_iff + theorem neg_one_sq + theorem neg_pow' + theorem neg_pow + theorem neg_pow_bit0 + theorem neg_pow_bit1 + theorem neg_sq + theorem sq_eq_one_iff + theorem sq_eq_sq_iff_eq_or_eq_neg + theorem sq_ne_one_iff + theorem sq_sub_sq + theorem sub_sq' + theorem sub_sq Modified Mathlib/Algebra/Ring/Defs.lean + theorem add_sq' + theorem add_sq Modified Mathlib/Algebra/Ring/Divisibility/Basic.lean + theorem min_pow_dvd_add Modified Mathlib/Algebra/Ring/Hom/Defs.lean Modified Mathlib/RingTheory/Prime.lean Modified Mathlib/Tactic/NormNum/Pow.lean 2024-05-16 09:19:03 730684c style(test/linarith): adapt to more mathlib style (#12931) - put `by` on the previous line - indent subsequent hypotheses by four spaces - indent conclusions also by four spaces - remove some double spaces ESTIMATED CHANGES Modified test/linarith.lean 2024-05-16 09:19:02 fafe8ea feat(CategoryTheory): the adjunction between Over.map and Over.baseChange (#12927) When a category has pullbacks, any morphism gives rise to an adjunction between over categories, with the left adjoint defined by composition and the right adjoint defined by pullback. This PR contains a definition of that adjunction. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Limits/Shapes/Diagonal.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Pullbacks.lean + def CategoryTheory.Limits.Over.baseChange + def CategoryTheory.Limits.Over.mapAdjunction - def CategoryTheory.Limits.baseChange Modified Mathlib/CategoryTheory/MorphismProperty/Limits.lean 2024-05-16 09:19:00 93a7eba chore(LapMatrix): `α` -> `R` (#12868) ESTIMATED CHANGES Modified Mathlib/Combinatorics/SimpleGraph/LapMatrix.lean +/- def SimpleGraph.degMatrix +/- theorem SimpleGraph.degMatrix_mulVec_apply +/- theorem SimpleGraph.degree_eq_sum_if_adj +/- theorem SimpleGraph.dotProduct_mulVec_degMatrix +/- theorem SimpleGraph.isSymm_degMatrix +/- theorem SimpleGraph.isSymm_lapMatrix +/- def SimpleGraph.lapMatrix +/- theorem SimpleGraph.lapMatrix_mulVec_apply +/- theorem SimpleGraph.lapMatrix_mulVec_const_eq_zero +/- theorem SimpleGraph.lapMatrix_toLinearMap₂' +/- theorem SimpleGraph.lapMatrix_toLinearMap₂'_apply'_eq_zero_iff_forall_adj +/- theorem SimpleGraph.posSemidef_lapMatrix 2024-05-16 09:18:59 837a98a feat: natCast versions of some Rat.intCast lemmas (#12814) also some golf ESTIMATED CHANGES Modified Mathlib/Data/Rat/Defs.lean + theorem Rat.natCast_div_eq_divInt Modified Mathlib/Data/Rat/Lemmas.lean - theorem Rat.den_div_cast_eq_one_iff + theorem Rat.den_div_intCast_eq_one_iff + theorem Rat.den_div_natCast_eq_one_iff +/- theorem Rat.natCast_div Modified Mathlib/RingTheory/WittVector/StructurePolynomial.lean 2024-05-16 08:10:38 7017920 chore: use `@[deprecated (since := "YYYY-MM-DD")]` (#12947) This is far from exhaustive, but perhaps can get the ball rolling. ESTIMATED CHANGES Modified Mathlib/Algebra/Associated.lean Modified Mathlib/Algebra/BigOperators/Basic.lean Modified Mathlib/Algebra/Field/Subfield.lean Modified Mathlib/Algebra/Group/Basic.lean Modified Mathlib/Algebra/Group/Defs.lean Modified Mathlib/Algebra/Group/UniqueProds.lean Modified Mathlib/Algebra/Group/Units.lean 2024-05-16 08:10:37 15aadce feat: IsBezout.associated_gcd_gcd (#12941) ESTIMATED CHANGES Modified Mathlib/RingTheory/PrincipalIdealDomain.lean + theorem IsBezout.associated_gcd_gcd 2024-05-16 08:10:36 727c4bc refactor(MeasureTheory/OuterMeasure): split large file (#12939) This PR (which supersedes #12895) splits up `OuterMeasure/Basic` (1700 lines) into 5 pieces of < 500 lines each. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/MeasureTheory/Measure/MeasureSpaceDef.lean Modified Mathlib/MeasureTheory/OuterMeasure/Basic.lean - def MeasureTheory.OuterMeasure.IsCaratheodory - theorem MeasureTheory.OuterMeasure.add_apply - theorem MeasureTheory.OuterMeasure.biInf_apply' - theorem MeasureTheory.OuterMeasure.biInf_apply - def MeasureTheory.OuterMeasure.boundedBy - theorem MeasureTheory.OuterMeasure.boundedBy_apply - theorem MeasureTheory.OuterMeasure.boundedBy_caratheodory - theorem MeasureTheory.OuterMeasure.boundedBy_eq - theorem MeasureTheory.OuterMeasure.boundedBy_eq_ofFunction - theorem MeasureTheory.OuterMeasure.boundedBy_eq_self - theorem MeasureTheory.OuterMeasure.boundedBy_le - theorem MeasureTheory.OuterMeasure.boundedBy_top - theorem MeasureTheory.OuterMeasure.boundedBy_union_of_top_of_nonempty_inter - theorem MeasureTheory.OuterMeasure.boundedBy_zero - def MeasureTheory.OuterMeasure.caratheodoryDynkin - def MeasureTheory.OuterMeasure.coeFnAddMonoidHom - theorem MeasureTheory.OuterMeasure.coe_add - theorem MeasureTheory.OuterMeasure.coe_bot - theorem MeasureTheory.OuterMeasure.coe_iSup - theorem MeasureTheory.OuterMeasure.coe_smul - theorem MeasureTheory.OuterMeasure.coe_zero - def MeasureTheory.OuterMeasure.comap - theorem MeasureTheory.OuterMeasure.comap_apply - theorem MeasureTheory.OuterMeasure.comap_boundedBy - theorem MeasureTheory.OuterMeasure.comap_iInf - theorem MeasureTheory.OuterMeasure.comap_iSup - theorem MeasureTheory.OuterMeasure.comap_map - theorem MeasureTheory.OuterMeasure.comap_mono - theorem MeasureTheory.OuterMeasure.comap_ofFunction - theorem MeasureTheory.OuterMeasure.comap_top - def MeasureTheory.OuterMeasure.dirac - theorem MeasureTheory.OuterMeasure.dirac_apply - theorem MeasureTheory.OuterMeasure.dirac_caratheodory - theorem MeasureTheory.OuterMeasure.exists_measurable_superset_eq_trim - theorem MeasureTheory.OuterMeasure.exists_measurable_superset_forall_eq_trim - theorem MeasureTheory.OuterMeasure.exists_measurable_superset_of_trim_eq_zero - theorem MeasureTheory.OuterMeasure.f_iUnion - theorem MeasureTheory.OuterMeasure.iInf_apply' - theorem MeasureTheory.OuterMeasure.iInf_apply - theorem MeasureTheory.OuterMeasure.iSup_apply - theorem MeasureTheory.OuterMeasure.iSup_sInfGen_nonempty - theorem MeasureTheory.OuterMeasure.isCaratheodory_compl - theorem MeasureTheory.OuterMeasure.isCaratheodory_compl_iff - theorem MeasureTheory.OuterMeasure.isCaratheodory_empty - theorem MeasureTheory.OuterMeasure.isCaratheodory_iUnion_lt - theorem MeasureTheory.OuterMeasure.isCaratheodory_iUnion_nat - theorem MeasureTheory.OuterMeasure.isCaratheodory_iff - theorem MeasureTheory.OuterMeasure.isCaratheodory_iff_le' - theorem MeasureTheory.OuterMeasure.isCaratheodory_iff_le - theorem MeasureTheory.OuterMeasure.isCaratheodory_inter - theorem MeasureTheory.OuterMeasure.isCaratheodory_sum - theorem MeasureTheory.OuterMeasure.isCaratheodory_union - theorem MeasureTheory.OuterMeasure.isGreatest_ofFunction - theorem MeasureTheory.OuterMeasure.le_add_caratheodory - theorem MeasureTheory.OuterMeasure.le_boundedBy' - theorem MeasureTheory.OuterMeasure.le_boundedBy - theorem MeasureTheory.OuterMeasure.le_comap_map - theorem MeasureTheory.OuterMeasure.le_ofFunction - theorem MeasureTheory.OuterMeasure.le_smul_caratheodory - theorem MeasureTheory.OuterMeasure.le_sum_caratheodory - theorem MeasureTheory.OuterMeasure.le_trim - theorem MeasureTheory.OuterMeasure.le_trim_iff - def MeasureTheory.OuterMeasure.map - theorem MeasureTheory.OuterMeasure.map_apply - theorem MeasureTheory.OuterMeasure.map_biInf_comap - theorem MeasureTheory.OuterMeasure.map_comap - theorem MeasureTheory.OuterMeasure.map_comap_le - theorem MeasureTheory.OuterMeasure.map_comap_of_surjective - theorem MeasureTheory.OuterMeasure.map_iInf - theorem MeasureTheory.OuterMeasure.map_iInf_comap - theorem MeasureTheory.OuterMeasure.map_iInf_le - theorem MeasureTheory.OuterMeasure.map_iSup - theorem MeasureTheory.OuterMeasure.map_id - theorem MeasureTheory.OuterMeasure.map_le_restrict_range - theorem MeasureTheory.OuterMeasure.map_map - theorem MeasureTheory.OuterMeasure.map_mono - theorem MeasureTheory.OuterMeasure.map_ofFunction - theorem MeasureTheory.OuterMeasure.map_ofFunction_le - theorem MeasureTheory.OuterMeasure.map_sup - theorem MeasureTheory.OuterMeasure.map_top - theorem MeasureTheory.OuterMeasure.map_top_of_surjective - theorem MeasureTheory.OuterMeasure.measure_inter_union - theorem MeasureTheory.OuterMeasure.mono'' - theorem MeasureTheory.OuterMeasure.ofFunction_apply - theorem MeasureTheory.OuterMeasure.ofFunction_caratheodory - theorem MeasureTheory.OuterMeasure.ofFunction_eq - theorem MeasureTheory.OuterMeasure.ofFunction_eq_sSup - theorem MeasureTheory.OuterMeasure.ofFunction_le - theorem MeasureTheory.OuterMeasure.ofFunction_union_of_top_of_nonempty_inter - def MeasureTheory.OuterMeasure.restrict - theorem MeasureTheory.OuterMeasure.restrict_apply - theorem MeasureTheory.OuterMeasure.restrict_biInf - theorem MeasureTheory.OuterMeasure.restrict_empty - theorem MeasureTheory.OuterMeasure.restrict_iInf - theorem MeasureTheory.OuterMeasure.restrict_iInf_restrict - theorem MeasureTheory.OuterMeasure.restrict_iSup - theorem MeasureTheory.OuterMeasure.restrict_le_self - theorem MeasureTheory.OuterMeasure.restrict_mono - theorem MeasureTheory.OuterMeasure.restrict_ofFunction - theorem MeasureTheory.OuterMeasure.restrict_sInf_eq_sInf_restrict - theorem MeasureTheory.OuterMeasure.restrict_trim - theorem MeasureTheory.OuterMeasure.restrict_univ - def MeasureTheory.OuterMeasure.sInfGen - theorem MeasureTheory.OuterMeasure.sInfGen_def - theorem MeasureTheory.OuterMeasure.sInf_apply' - theorem MeasureTheory.OuterMeasure.sInf_apply - theorem MeasureTheory.OuterMeasure.sInf_eq_boundedBy_sInfGen - theorem MeasureTheory.OuterMeasure.sSup_apply - theorem MeasureTheory.OuterMeasure.smul_apply - theorem MeasureTheory.OuterMeasure.smul_boundedBy - theorem MeasureTheory.OuterMeasure.smul_dirac_apply - theorem MeasureTheory.OuterMeasure.smul_iSup - theorem MeasureTheory.OuterMeasure.smul_ofFunction - def MeasureTheory.OuterMeasure.sum - theorem MeasureTheory.OuterMeasure.sum_apply - theorem MeasureTheory.OuterMeasure.sup_apply - theorem MeasureTheory.OuterMeasure.top_apply' - theorem MeasureTheory.OuterMeasure.top_apply - theorem MeasureTheory.OuterMeasure.top_caratheodory - def MeasureTheory.OuterMeasure.trim - theorem MeasureTheory.OuterMeasure.trim_add - theorem MeasureTheory.OuterMeasure.trim_anti_measurableSpace - theorem MeasureTheory.OuterMeasure.trim_binop - theorem MeasureTheory.OuterMeasure.trim_congr - theorem MeasureTheory.OuterMeasure.trim_eq - theorem MeasureTheory.OuterMeasure.trim_eq_iInf' - theorem MeasureTheory.OuterMeasure.trim_eq_iInf - theorem MeasureTheory.OuterMeasure.trim_eq_trim_iff - theorem MeasureTheory.OuterMeasure.trim_iSup - theorem MeasureTheory.OuterMeasure.trim_le_trim_iff - theorem MeasureTheory.OuterMeasure.trim_mono - theorem MeasureTheory.OuterMeasure.trim_op - theorem MeasureTheory.OuterMeasure.trim_smul - theorem MeasureTheory.OuterMeasure.trim_sum_ge - theorem MeasureTheory.OuterMeasure.trim_sup - theorem MeasureTheory.OuterMeasure.trim_top - theorem MeasureTheory.OuterMeasure.trim_trim - theorem MeasureTheory.OuterMeasure.trim_zero - theorem MeasureTheory.OuterMeasure.univ_eq_zero_iff - theorem MeasureTheory.OuterMeasure.zero_caratheodory - def MeasureTheory.extend - theorem MeasureTheory.extend_congr - theorem MeasureTheory.extend_empty - theorem MeasureTheory.extend_eq - theorem MeasureTheory.extend_eq_top - theorem MeasureTheory.extend_iUnion - theorem MeasureTheory.extend_iUnion_le_tsum_nat' - theorem MeasureTheory.extend_iUnion_le_tsum_nat - theorem MeasureTheory.extend_iUnion_nat - theorem MeasureTheory.extend_mono' - theorem MeasureTheory.extend_mono - theorem MeasureTheory.extend_top - theorem MeasureTheory.extend_union - def MeasureTheory.inducedOuterMeasure - theorem MeasureTheory.inducedOuterMeasure_caratheodory - theorem MeasureTheory.inducedOuterMeasure_eq' - theorem MeasureTheory.inducedOuterMeasure_eq - theorem MeasureTheory.inducedOuterMeasure_eq_extend' - theorem MeasureTheory.inducedOuterMeasure_eq_extend - theorem MeasureTheory.inducedOuterMeasure_eq_iInf - theorem MeasureTheory.inducedOuterMeasure_exists_set - theorem MeasureTheory.inducedOuterMeasure_preimage - theorem MeasureTheory.inducedOuterMeasure_union_of_false_of_nonempty_inter - theorem MeasureTheory.le_extend - theorem MeasureTheory.le_inducedOuterMeasure - theorem MeasureTheory.smul_extend Added Mathlib/MeasureTheory/OuterMeasure/Caratheodory.lean + def MeasureTheory.OuterMeasure.IsCaratheodory + theorem MeasureTheory.OuterMeasure.boundedBy_caratheodory + def MeasureTheory.OuterMeasure.caratheodoryDynkin + theorem MeasureTheory.OuterMeasure.dirac_caratheodory + theorem MeasureTheory.OuterMeasure.f_iUnion + theorem MeasureTheory.OuterMeasure.isCaratheodory_compl + theorem MeasureTheory.OuterMeasure.isCaratheodory_compl_iff + theorem MeasureTheory.OuterMeasure.isCaratheodory_empty + theorem MeasureTheory.OuterMeasure.isCaratheodory_iUnion_lt + theorem MeasureTheory.OuterMeasure.isCaratheodory_iUnion_nat + theorem MeasureTheory.OuterMeasure.isCaratheodory_iff + theorem MeasureTheory.OuterMeasure.isCaratheodory_iff_le' + theorem MeasureTheory.OuterMeasure.isCaratheodory_iff_le + theorem MeasureTheory.OuterMeasure.isCaratheodory_inter + theorem MeasureTheory.OuterMeasure.isCaratheodory_sum + theorem MeasureTheory.OuterMeasure.isCaratheodory_union + theorem MeasureTheory.OuterMeasure.le_add_caratheodory + theorem MeasureTheory.OuterMeasure.le_smul_caratheodory + theorem MeasureTheory.OuterMeasure.le_sum_caratheodory + theorem MeasureTheory.OuterMeasure.measure_inter_union + theorem MeasureTheory.OuterMeasure.ofFunction_caratheodory + theorem MeasureTheory.OuterMeasure.top_caratheodory + theorem MeasureTheory.OuterMeasure.zero_caratheodory Added Mathlib/MeasureTheory/OuterMeasure/Induced.lean + theorem MeasureTheory.OuterMeasure.exists_measurable_superset_eq_trim + theorem MeasureTheory.OuterMeasure.exists_measurable_superset_forall_eq_trim + theorem MeasureTheory.OuterMeasure.exists_measurable_superset_of_trim_eq_zero + theorem MeasureTheory.OuterMeasure.le_trim + theorem MeasureTheory.OuterMeasure.le_trim_iff + theorem MeasureTheory.OuterMeasure.restrict_trim + def MeasureTheory.OuterMeasure.trim + theorem MeasureTheory.OuterMeasure.trim_add + theorem MeasureTheory.OuterMeasure.trim_anti_measurableSpace + theorem MeasureTheory.OuterMeasure.trim_binop + theorem MeasureTheory.OuterMeasure.trim_congr + theorem MeasureTheory.OuterMeasure.trim_eq + theorem MeasureTheory.OuterMeasure.trim_eq_iInf' + theorem MeasureTheory.OuterMeasure.trim_eq_iInf + theorem MeasureTheory.OuterMeasure.trim_eq_trim_iff + theorem MeasureTheory.OuterMeasure.trim_iSup + theorem MeasureTheory.OuterMeasure.trim_le_trim_iff + theorem MeasureTheory.OuterMeasure.trim_mono + theorem MeasureTheory.OuterMeasure.trim_op + theorem MeasureTheory.OuterMeasure.trim_smul + theorem MeasureTheory.OuterMeasure.trim_sum_ge + theorem MeasureTheory.OuterMeasure.trim_sup + theorem MeasureTheory.OuterMeasure.trim_top + theorem MeasureTheory.OuterMeasure.trim_trim + theorem MeasureTheory.OuterMeasure.trim_zero + def MeasureTheory.extend + theorem MeasureTheory.extend_congr + theorem MeasureTheory.extend_empty + theorem MeasureTheory.extend_eq + theorem MeasureTheory.extend_eq_top + theorem MeasureTheory.extend_iUnion + theorem MeasureTheory.extend_iUnion_le_tsum_nat' + theorem MeasureTheory.extend_iUnion_le_tsum_nat + theorem MeasureTheory.extend_iUnion_nat + theorem MeasureTheory.extend_mono' + theorem MeasureTheory.extend_mono + theorem MeasureTheory.extend_top + theorem MeasureTheory.extend_union + def MeasureTheory.inducedOuterMeasure + theorem MeasureTheory.inducedOuterMeasure_caratheodory + theorem MeasureTheory.inducedOuterMeasure_eq' + theorem MeasureTheory.inducedOuterMeasure_eq + theorem MeasureTheory.inducedOuterMeasure_eq_extend' + theorem MeasureTheory.inducedOuterMeasure_eq_extend + theorem MeasureTheory.inducedOuterMeasure_eq_iInf + theorem MeasureTheory.inducedOuterMeasure_exists_set + theorem MeasureTheory.inducedOuterMeasure_preimage + theorem MeasureTheory.inducedOuterMeasure_union_of_false_of_nonempty_inter + theorem MeasureTheory.le_extend + theorem MeasureTheory.le_inducedOuterMeasure + theorem MeasureTheory.smul_extend Added Mathlib/MeasureTheory/OuterMeasure/OfFunction.lean + theorem MeasureTheory.OuterMeasure.biInf_apply' + theorem MeasureTheory.OuterMeasure.biInf_apply + def MeasureTheory.OuterMeasure.boundedBy + theorem MeasureTheory.OuterMeasure.boundedBy_apply + theorem MeasureTheory.OuterMeasure.boundedBy_eq + theorem MeasureTheory.OuterMeasure.boundedBy_eq_ofFunction + theorem MeasureTheory.OuterMeasure.boundedBy_eq_self + theorem MeasureTheory.OuterMeasure.boundedBy_le + theorem MeasureTheory.OuterMeasure.boundedBy_top + theorem MeasureTheory.OuterMeasure.boundedBy_union_of_top_of_nonempty_inter + theorem MeasureTheory.OuterMeasure.boundedBy_zero + theorem MeasureTheory.OuterMeasure.comap_boundedBy + theorem MeasureTheory.OuterMeasure.comap_iInf + theorem MeasureTheory.OuterMeasure.comap_ofFunction + theorem MeasureTheory.OuterMeasure.iInf_apply' + theorem MeasureTheory.OuterMeasure.iInf_apply + theorem MeasureTheory.OuterMeasure.iSup_sInfGen_nonempty + theorem MeasureTheory.OuterMeasure.isGreatest_ofFunction + theorem MeasureTheory.OuterMeasure.le_boundedBy' + theorem MeasureTheory.OuterMeasure.le_boundedBy + theorem MeasureTheory.OuterMeasure.le_ofFunction + theorem MeasureTheory.OuterMeasure.map_biInf_comap + theorem MeasureTheory.OuterMeasure.map_iInf + theorem MeasureTheory.OuterMeasure.map_iInf_comap + theorem MeasureTheory.OuterMeasure.map_iInf_le + theorem MeasureTheory.OuterMeasure.map_ofFunction + theorem MeasureTheory.OuterMeasure.map_ofFunction_le + theorem MeasureTheory.OuterMeasure.ofFunction_apply + theorem MeasureTheory.OuterMeasure.ofFunction_eq + theorem MeasureTheory.OuterMeasure.ofFunction_eq_sSup + theorem MeasureTheory.OuterMeasure.ofFunction_le + theorem MeasureTheory.OuterMeasure.ofFunction_union_of_top_of_nonempty_inter + theorem MeasureTheory.OuterMeasure.restrict_biInf + theorem MeasureTheory.OuterMeasure.restrict_iInf + theorem MeasureTheory.OuterMeasure.restrict_iInf_restrict + theorem MeasureTheory.OuterMeasure.restrict_ofFunction + theorem MeasureTheory.OuterMeasure.restrict_sInf_eq_sInf_restrict + def MeasureTheory.OuterMeasure.sInfGen + theorem MeasureTheory.OuterMeasure.sInfGen_def + theorem MeasureTheory.OuterMeasure.sInf_apply' + theorem MeasureTheory.OuterMeasure.sInf_apply + theorem MeasureTheory.OuterMeasure.sInf_eq_boundedBy_sInfGen + theorem MeasureTheory.OuterMeasure.smul_boundedBy + theorem MeasureTheory.OuterMeasure.smul_ofFunction Added Mathlib/MeasureTheory/OuterMeasure/Operations.lean + theorem MeasureTheory.OuterMeasure.add_apply + def MeasureTheory.OuterMeasure.coeFnAddMonoidHom + theorem MeasureTheory.OuterMeasure.coe_add + theorem MeasureTheory.OuterMeasure.coe_bot + theorem MeasureTheory.OuterMeasure.coe_iSup + theorem MeasureTheory.OuterMeasure.coe_smul + theorem MeasureTheory.OuterMeasure.coe_zero + def MeasureTheory.OuterMeasure.comap + theorem MeasureTheory.OuterMeasure.comap_apply + theorem MeasureTheory.OuterMeasure.comap_iSup + theorem MeasureTheory.OuterMeasure.comap_map + theorem MeasureTheory.OuterMeasure.comap_mono + theorem MeasureTheory.OuterMeasure.comap_top + def MeasureTheory.OuterMeasure.dirac + theorem MeasureTheory.OuterMeasure.dirac_apply + theorem MeasureTheory.OuterMeasure.iSup_apply + theorem MeasureTheory.OuterMeasure.le_comap_map + def MeasureTheory.OuterMeasure.map + theorem MeasureTheory.OuterMeasure.map_apply + theorem MeasureTheory.OuterMeasure.map_comap + theorem MeasureTheory.OuterMeasure.map_comap_le + theorem MeasureTheory.OuterMeasure.map_comap_of_surjective + theorem MeasureTheory.OuterMeasure.map_iSup + theorem MeasureTheory.OuterMeasure.map_id + theorem MeasureTheory.OuterMeasure.map_le_restrict_range + theorem MeasureTheory.OuterMeasure.map_map + theorem MeasureTheory.OuterMeasure.map_mono + theorem MeasureTheory.OuterMeasure.map_sup + theorem MeasureTheory.OuterMeasure.map_top + theorem MeasureTheory.OuterMeasure.map_top_of_surjective + theorem MeasureTheory.OuterMeasure.mono'' + def MeasureTheory.OuterMeasure.restrict + theorem MeasureTheory.OuterMeasure.restrict_apply + theorem MeasureTheory.OuterMeasure.restrict_empty + theorem MeasureTheory.OuterMeasure.restrict_iSup + theorem MeasureTheory.OuterMeasure.restrict_le_self + theorem MeasureTheory.OuterMeasure.restrict_mono + theorem MeasureTheory.OuterMeasure.restrict_univ + theorem MeasureTheory.OuterMeasure.sSup_apply + theorem MeasureTheory.OuterMeasure.smul_apply + theorem MeasureTheory.OuterMeasure.smul_dirac_apply + theorem MeasureTheory.OuterMeasure.smul_iSup + def MeasureTheory.OuterMeasure.sum + theorem MeasureTheory.OuterMeasure.sum_apply + theorem MeasureTheory.OuterMeasure.sup_apply + theorem MeasureTheory.OuterMeasure.top_apply' + theorem MeasureTheory.OuterMeasure.top_apply + theorem MeasureTheory.OuterMeasure.univ_eq_zero_iff Modified scripts/style-exceptions.txt 2024-05-16 08:10:35 01634db feat: report no unpaired declarations (#12932) When adding the label `move-decls`, the bot would silently do nothing if there are no unmatched declarations. This PR makes the bot report that no declarations were lost. See #12425 for an example where the bot did nothing. ESTIMATED CHANGES Modified scripts/no_lost_declarations.sh 2024-05-16 08:10:34 2bff234 chore: Move basic `Int` lemmas earlier (#12821) A bunch of lemmas about `Int` can be moved to `Data.Int.Defs` at little cost. This PR moves them and deletes the now empty `Data.Int.Div` and `Data.Int.Dvd.Basic`. The story is that those lemmas used to rely on lemmas proved for algebraic order structures, hence required the algebraic order instances on `Int` to be available. In Lean 4, those preliminary lemmas have been special-cased to `Nat` and `Int`, so there is no need for the general instances anymore (at least in basic files). ESTIMATED CHANGES Modified Archive/Imo/Imo2011Q5.lean Modified Mathlib.lean Modified Mathlib/Algebra/Group/Int.lean - theorem Int.cast_id Modified Mathlib/Algebra/Order/Group/Int.lean - theorem Int.add_emod_eq_add_mod_right - theorem Int.ediv_dvd_ediv - theorem Int.ediv_dvd_of_dvd - theorem Int.le_add_one_iff - theorem Int.le_sub_one_iff - theorem Int.lt_of_toNat_lt - theorem Int.lt_succ_self - theorem Int.lt_toNat - theorem Int.natAbs_eq_of_dvd_dvd - theorem Int.natCast_nonpos_iff - theorem Int.neg_emod_two - theorem Int.pred_self_lt - theorem Int.sub_one_lt_iff - theorem Int.toNat_eq_zero - theorem Int.toNat_le - theorem Int.toNat_le_toNat - theorem Int.toNat_lt_toNat - theorem Int.toNat_pred_coe_of_pos - theorem Int.toNat_sub_of_le Modified Mathlib/Algebra/Order/Ring/Int.lean - theorem Int.emod_two_eq_zero_or_one - theorem Int.exists_lt_and_lt_iff_not_dvd - theorem Int.sign_add_eq_of_sign_eq Modified Mathlib/Algebra/Ring/Int.lean Modified Mathlib/Data/Int/Cast/Lemmas.lean - theorem Int.coe_nat_pow - theorem Int.natCast_pos - theorem Int.natCast_succ_pos - theorem Int.natMod_lt - theorem Int.toNat_lt' Modified Mathlib/Data/Int/Defs.lean + theorem Int.add_emod_eq_add_mod_right + theorem Int.cast_id + theorem Int.coe_nat_pow + theorem Int.dvd_natCast + theorem Int.dvd_of_mul_dvd_mul_left + theorem Int.dvd_of_mul_dvd_mul_right + theorem Int.ediv_dvd_ediv + theorem Int.ediv_dvd_of_dvd + theorem Int.emod_two_eq_zero_or_one + theorem Int.eq_mul_div_of_mul_eq_mul_of_dvd_left + theorem Int.eq_of_mod_eq_of_natAbs_sub_lt_natAbs + theorem Int.eq_zero_of_dvd_of_natAbs_lt_natAbs + theorem Int.eq_zero_of_dvd_of_nonneg_of_lt + theorem Int.exists_lt_and_lt_iff_not_dvd + theorem Int.le_add_one_iff + theorem Int.le_sub_one_iff + theorem Int.lt_of_toNat_lt + theorem Int.lt_succ_self + theorem Int.lt_toNat + theorem Int.natAbs_ediv + theorem Int.natAbs_eq_of_dvd_dvd + theorem Int.natAbs_le_of_dvd_ne_zero +/- theorem Int.natAbs_ofNat' + theorem Int.natCast_dvd + theorem Int.natCast_dvd_natCast +/- theorem Int.natCast_eq_zero +/- theorem Int.natCast_inj + theorem Int.natCast_nonpos_iff + theorem Int.natCast_pos + theorem Int.natCast_succ_pos + theorem Int.natMod_lt + theorem Int.neg_emod_two + theorem Int.ofNat_add_negSucc_of_ge +/- theorem Int.ofNat_eq_natCast + theorem Int.pred_self_lt + theorem Int.sign_add_eq_of_sign_eq +/- theorem Int.sign_natCast_of_ne_zero + theorem Int.sub_one_lt_iff + theorem Int.toNat_eq_zero + theorem Int.toNat_le + theorem Int.toNat_le_toNat + theorem Int.toNat_lt' + theorem Int.toNat_lt_toNat + theorem Int.toNat_pred_coe_of_pos + theorem Int.toNat_sub_of_le Deleted Mathlib/Data/Int/Div.lean - theorem Int.eq_mul_div_of_mul_eq_mul_of_dvd_left - theorem Int.eq_of_mod_eq_of_natAbs_sub_lt_natAbs - theorem Int.eq_zero_of_dvd_of_natAbs_lt_natAbs - theorem Int.eq_zero_of_dvd_of_nonneg_of_lt - theorem Int.natAbs_le_of_dvd_ne_zero - theorem Int.ofNat_add_negSucc_of_ge Deleted Mathlib/Data/Int/Dvd/Basic.lean - theorem Int.dvd_natCast - theorem Int.natCast_dvd - theorem Int.natCast_dvd_natCast Modified Mathlib/Data/Int/GCD.lean - theorem Int.dvd_of_mul_dvd_mul_left - theorem Int.dvd_of_mul_dvd_mul_right - theorem Int.natAbs_ediv Modified Mathlib/Data/Nat/ModEq.lean Modified Mathlib/Data/Nat/Prime.lean Modified Mathlib/Data/Rat/Cast/Defs.lean Modified Mathlib/Data/Rat/Lemmas.lean 2024-05-16 08:10:33 efc0554 feat: minor API lemmas for (Add)MonoidAlgebra.mapDomainAlgHom (#12764) ESTIMATED CHANGES Modified Mathlib/Algebra/MonoidAlgebra/Basic.lean + theorem AddMonoidAlgebra.mapDomainAlgHom_comp + theorem AddMonoidAlgebra.mapDomainAlgHom_id + theorem MonoidAlgebra.mapDomainAlgHom_comp + theorem MonoidAlgebra.mapDomainAlgHom_id 2024-05-16 07:16:08 24b0c39 feat(NumberTheory/EllipticDivisibilitySequence): expose the auxiliary sequence (#10814) Expose the auxiliary sequences associated to normalised elliptic divisibility sequences along with their corresponding API, and fix the comments under implementation notes. This is needed to define $n$-division polynomials of elliptic curves in a later downstream file as univariate polynomials with the factor of the bivariate $2$-division polynomial omitted. ESTIMATED CHANGES Modified Mathlib/Data/Nat/Parity.lean + theorem Nat.not_even_two_mul_add_one Modified Mathlib/NumberTheory/EllipticDivisibilitySequence.lean - def normEDS' - theorem normEDS'_even - theorem normEDS'_four - theorem normEDS'_odd - theorem normEDS'_one - theorem normEDS'_three - theorem normEDS'_two - theorem normEDS'_zero +/- def normEDS + theorem normEDS_ofNat + def preNormEDS' + theorem preNormEDS'_even + theorem preNormEDS'_four + theorem preNormEDS'_odd + theorem preNormEDS'_one + theorem preNormEDS'_three + theorem preNormEDS'_two + theorem preNormEDS'_zero + def preNormEDS + theorem preNormEDS_even + theorem preNormEDS_four + theorem preNormEDS_neg + theorem preNormEDS_odd + theorem preNormEDS_ofNat + theorem preNormEDS_one + theorem preNormEDS_three + theorem preNormEDS_two + theorem preNormEDS_zero 2024-05-16 00:33:58 1666977 feat: new noisy check (#12886) This PR restructures a little the noisy tests, exploiting the new `lake` replay feature. Moreover, it catches previously uncaught noise: * see #12884 for a noisy file that passes the old CI; * see #12885 for the same noisy file that does not pass the new CI. Note that linter warnings and `sorry`s are also not caught by the old CI: * #12910; * #12912; * #12913. ESTIMATED CHANGES Modified .github/workflows/bors.yml Modified .github/workflows/build.yml Modified .github/workflows/build.yml.in Modified .github/workflows/build_fork.yml 2024-05-15 23:30:34 9a16dad fix: make sure that `simp_rw` focuses (#12940) This used to work before the fix. The fix breaks it. ```lean import Mathlib.Tactic example {n : Nat} (hn : n = 0) : (n = 0) ∧ (n = 0) := by constructor simp_rw [hn, hn] -- does this work? ``` [Zulip thread](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/.60simp_rw.60.20puzzle) ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Measure/Lebesgue/VolumeOfBalls.lean Modified Mathlib/Tactic/SimpRw.lean Modified test/SimpRw.lean 2024-05-15 20:27:18 a77c10e chore: Delete `Data.Nat.Units`, `Data.Int.Units` (#12835) The lemmas can easily move to `Algebra.Group.Nat` and `Algebra.Group.Int`, `Algebra.Ring.Int` respectively. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/BigOperators/List/Lemmas.lean Modified Mathlib/Algebra/GCDMonoid/Nat.lean Modified Mathlib/Algebra/Group/Int.lean + theorem Int.eq_of_mul_eq_one + theorem Int.eq_one_or_neg_one_of_mul_eq_neg_one' + theorem Int.eq_one_or_neg_one_of_mul_eq_neg_one + theorem Int.eq_one_or_neg_one_of_mul_eq_one' + theorem Int.eq_one_or_neg_one_of_mul_eq_one + theorem Int.isUnit_add_isUnit_eq_isUnit_add_isUnit + theorem Int.isUnit_eq_one_or + theorem Int.isUnit_eq_or_eq_neg + theorem Int.isUnit_iff + theorem Int.isUnit_iff_natAbs_eq + theorem Int.isUnit_mul_self + theorem Int.isUnit_ne_iff_eq_neg + theorem Int.mul_eq_neg_one_iff_eq_one_or_neg_one + theorem Int.mul_eq_one_iff_eq_one_or_neg_one + theorem Int.natAbs_of_isUnit + theorem Int.ofNat_isUnit + theorem Int.units_natAbs Modified Mathlib/Algebra/Group/Nat.lean + theorem Nat.addUnits_eq_zero + theorem Nat.units_eq_one Modified Mathlib/Algebra/Ring/Int.lean + theorem Int.units_eq_one_or + theorem Int.units_ne_iff_eq_neg Modified Mathlib/AlgebraicTopology/SimplicialSet.lean Modified Mathlib/Data/Fintype/Units.lean Modified Mathlib/Data/Int/AbsoluteValue.lean Modified Mathlib/Data/Int/Associated.lean Modified Mathlib/Data/Int/Order/Units.lean Deleted Mathlib/Data/Int/Units.lean - theorem Int.eq_of_mul_eq_one - theorem Int.eq_one_or_neg_one_of_mul_eq_neg_one' - theorem Int.eq_one_or_neg_one_of_mul_eq_neg_one - theorem Int.eq_one_or_neg_one_of_mul_eq_one' - theorem Int.eq_one_or_neg_one_of_mul_eq_one - theorem Int.isUnit_add_isUnit_eq_isUnit_add_isUnit - theorem Int.isUnit_eq_one_or - theorem Int.isUnit_eq_or_eq_neg - theorem Int.isUnit_iff - theorem Int.isUnit_iff_natAbs_eq - theorem Int.isUnit_mul_self - theorem Int.isUnit_ne_iff_eq_neg - theorem Int.mul_eq_neg_one_iff_eq_one_or_neg_one - theorem Int.mul_eq_one_iff_eq_one_or_neg_one - theorem Int.ofNat_isUnit - theorem Int.units_eq_one_or - theorem Int.units_natAbs - theorem Int.units_ne_iff_eq_neg Modified Mathlib/Data/Nat/GCD/Basic.lean Modified Mathlib/Data/Nat/Prime.lean Deleted Mathlib/Data/Nat/Units.lean - theorem Nat.addUnits_eq_zero - theorem Nat.units_eq_one Modified Mathlib/Data/Ordmap/Ordset.lean Modified Mathlib/NumberTheory/DiophantineApproximation.lean 2024-05-15 20:27:17 4417a5a feat(Topology/Algebra/NormedValued): add correspondence (#12432) Nontrivial nonarchimedean norms correspond to rank one valuations. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Data/Real/Basic.lean + def IsNonarchimedean Modified Mathlib/Data/Real/NNReal.lean + theorem NNReal.exists_lt_of_strictMono + theorem Real.exists_lt_of_strictMono Added Mathlib/Topology/Algebra/NormedValued.lean + def NormedField.toValued + def NormedField.valuation + theorem NormedField.valuation_apply + def Valued.norm + theorem Valued.norm_add_le + theorem Valued.norm_eq_zero + theorem Valued.norm_nonneg + def Valued.toNormedField 2024-05-15 19:02:24 e852701 feat(Mathlib.NumberTheory.FLT.Three): add `FermatLastTheoremForThree_of_FermatLastTheoremThreeGen` (#12767) We add `FermatLastTheoremForThree_of_FermatLastTheoremThreeGen`: o prove `FermatLastTheoremFor 3`, it is enough to prove `FermatLastTheoremForThreeGen`. Here `FermatLastTheoremForThreeGen` is more general than `FermatLastTheoremFor 3`, but it is needed to make a descent argument working. From the flt3 project at LFTCM2024. ESTIMATED CHANGES Modified Mathlib/NumberTheory/Cyclotomic/Rat.lean + theorem IsPrimitiveRoot.toInteger_sub_one_dvd_prime' + theorem IsPrimitiveRoot.toInteger_sub_one_dvd_prime Modified Mathlib/NumberTheory/FLT/Three.lean + def FermatLastTheoremForThreeGen + theorem FermatLastTheoremForThree_of_FermatLastTheoremThreeGen 2024-05-15 17:20:06 830a482 chore: Remove algebra imports to `Data.Fin.Basic` (#12862) Move the algebraic instance on `Fin n` from `Data.Fin.Basic` to a new file `Algebra.Group.Fin`. I credit Yakov for https://github.com/leanprover-community/mathlib/pull/5010. The one bit of algebra that is still imported in `Data.Fin.Basic` is `NeZero`. This is in prevision of its future upstreaming to Batteries or Std. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/CharP/Defs.lean Added Mathlib/Algebra/Group/Fin.lean + theorem Fin.coe_sub_one + theorem Fin.le_sub_one_iff + theorem Fin.lt_sub_one_iff + theorem Fin.neg_last + theorem Fin.neg_natCast_eq_one + theorem Fin.sub_one_lt_iff Modified Mathlib/Control/Random.lean Modified Mathlib/Data/Array/Lemmas.lean Modified Mathlib/Data/BitVec/Defs.lean Modified Mathlib/Data/Fin/Basic.lean - theorem Fin.coe_sub_one - theorem Fin.le_sub_one_iff - theorem Fin.lt_sub_one_iff + theorem Fin.natCast_def - theorem Fin.neg_last - theorem Fin.neg_natCast_eq_one - theorem Fin.sub_one_lt_iff Modified Mathlib/Data/Fin/FlagRange.lean Modified Mathlib/Data/Fin/OrderHom.lean Modified Mathlib/Data/Fin/SuccPred.lean Modified Mathlib/Data/UInt.lean Modified Mathlib/SetTheory/Game/PGame.lean 2024-05-15 16:06:17 7926a8b feat(CategoryTheory/Sites): 1-hypercovers (#12803) This PR defines a notion of `1`-hypercovers in a category `C` equipped with a Grothendieck topology `J`. A covering of an object `S : C` consists of a family of maps `f i : X i ⟶ S` which generates a covering sieve. In the favourable case where the fibre products of `X i` and `X j` over `S` exist, the data of a `1`-hypercover consists of the data of objects `Y j` which cover these fibre products. We formalize this notion without assuming that these fibre products actually exists. If `F` is a sheaf and `E` is a `1`-hypercover of `S`, we show that `F.val.obj (op S)` is a multiequalizer of suitable maps `F.val.obj (op (X i)) ⟶ F.val.obj (op (Y j))`. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Sites/OneHypercover.lean + theorem CategoryTheory.GrothendieckTopology.OneHypercover.mem_sieve₁' + def CategoryTheory.GrothendieckTopology.OneHypercover.mk' + theorem CategoryTheory.GrothendieckTopology.OneHypercover.multiforkLift_map + structure CategoryTheory.GrothendieckTopology.OneHypercover + def CategoryTheory.PreOneHypercover.multicospanIndex + def CategoryTheory.PreOneHypercover.multifork + def CategoryTheory.PreOneHypercover.sieve₁' + theorem CategoryTheory.PreOneHypercover.sieve₁'_eq_sieve₁ + def CategoryTheory.PreOneHypercover.sieve₁ + theorem CategoryTheory.PreOneHypercover.sieve₁_eq_pullback_sieve₁' + structure CategoryTheory.PreOneHypercover Modified Mathlib/CategoryTheory/Sites/Sheaf.lean + def CategoryTheory.Presheaf.IsSheaf.amalgamateOfArrows + theorem CategoryTheory.Presheaf.IsSheaf.amalgamateOfArrows_map + theorem CategoryTheory.Presheaf.IsSheaf.exists_unique_amalgamation_ofArrows + theorem CategoryTheory.Presheaf.IsSheaf.hom_ext_ofArrows 2024-05-15 13:09:17 600a5fa feat: port `cc` tactic (2/3) (#11960) In this PR, we implements process when an new equation is added to a congruence closure. Also, `Lean.Expr.relSidesIfSymm?` is removed in #11162, but this def is required for `cc` tactic, so we recover this. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Tactic.lean Added Mathlib/Tactic/CC/Addition.lean + def Mathlib.Tactic.CC.CCM.add + def Mathlib.Tactic.CC.CCM.addACEq + def Mathlib.Tactic.CC.CCM.addCongruenceTable + def Mathlib.Tactic.CC.CCM.addEqvCore + def Mathlib.Tactic.CC.CCM.addEqvStep + def Mathlib.Tactic.CC.CCM.addOccurrence + def Mathlib.Tactic.CC.CCM.addSymmCongruenceTable + def Mathlib.Tactic.CC.CCM.checkEqTrue + def Mathlib.Tactic.CC.CCM.checkInvariant + def Mathlib.Tactic.CC.CCM.checkNewSubsingletonEq + def Mathlib.Tactic.CC.CCM.collapseAC + def Mathlib.Tactic.CC.CCM.collectFnRoots + def Mathlib.Tactic.CC.CCM.compareSymm + def Mathlib.Tactic.CC.CCM.compareSymmAux + def Mathlib.Tactic.CC.CCM.composeAC + def Mathlib.Tactic.CC.CCM.dbgTraceACEq + def Mathlib.Tactic.CC.CCM.dbgTraceACState + def Mathlib.Tactic.CC.CCM.eraseRBHSOccs + def Mathlib.Tactic.CC.CCM.eraseROccs + def Mathlib.Tactic.CC.CCM.eraseRRHSOccs + def Mathlib.Tactic.CC.CCM.flipDelayedProofCore + def Mathlib.Tactic.CC.CCM.flipProof + def Mathlib.Tactic.CC.CCM.flipProofCore + def Mathlib.Tactic.CC.CCM.getACTodo + def Mathlib.Tactic.CC.CCM.getCache + def Mathlib.Tactic.CC.CCM.getEntry + def Mathlib.Tactic.CC.CCM.getEqFalseProof + def Mathlib.Tactic.CC.CCM.getEqTrueProof + def Mathlib.Tactic.CC.CCM.getEqcLambdas + def Mathlib.Tactic.CC.CCM.getInconsistencyProof + def Mathlib.Tactic.CC.CCM.getPropEqProof + def Mathlib.Tactic.CC.CCM.getRoot + def Mathlib.Tactic.CC.CCM.getTodo + def Mathlib.Tactic.CC.CCM.hasHEqProofs + def Mathlib.Tactic.CC.CCM.insertEraseROcc + def Mathlib.Tactic.CC.CCM.insertEraseROccs + def Mathlib.Tactic.CC.CCM.insertRBHSOccs + def Mathlib.Tactic.CC.CCM.insertROccs + def Mathlib.Tactic.CC.CCM.insertRRHSOccs + def Mathlib.Tactic.CC.CCM.internalize + def Mathlib.Tactic.CC.CCM.internalizeAC + def Mathlib.Tactic.CC.CCM.internalizeACVar + def Mathlib.Tactic.CC.CCM.isAC + def Mathlib.Tactic.CC.CCM.isCgRoot + def Mathlib.Tactic.CC.CCM.isEqFalse + def Mathlib.Tactic.CC.CCM.isEqTrue + def Mathlib.Tactic.CC.CCM.isEqv + def Mathlib.Tactic.CC.CCM.isNotEqv + def Mathlib.Tactic.CC.CCM.mayPropagate + def Mathlib.Tactic.CC.CCM.mkACProof + def Mathlib.Tactic.CC.CCM.mkACSimpProof + def Mathlib.Tactic.CC.CCM.mkACSuperposeProof + def Mathlib.Tactic.CC.CCM.mkCCCongrTheorem + def Mathlib.Tactic.CC.CCM.mkCCHCongrTheorem + def Mathlib.Tactic.CC.CCM.mkCongruencesKey + def Mathlib.Tactic.CC.CCM.mkNeOfEqOfNe + def Mathlib.Tactic.CC.CCM.mkNeOfNeOfEq + def Mathlib.Tactic.CC.CCM.mkSymmCongruencesKey + def Mathlib.Tactic.CC.CCM.mkTrans + def Mathlib.Tactic.CC.CCM.mkTransOpt + def Mathlib.Tactic.CC.CCM.modifyACTodo + def Mathlib.Tactic.CC.CCM.modifyCache + def Mathlib.Tactic.CC.CCM.modifyTodo + def Mathlib.Tactic.CC.CCM.normalize + def Mathlib.Tactic.CC.CCM.processAC + def Mathlib.Tactic.CC.CCM.processTodo + def Mathlib.Tactic.CC.CCM.propagateAndDown + def Mathlib.Tactic.CC.CCM.propagateBeta + def Mathlib.Tactic.CC.CCM.propagateBetaToEqc + def Mathlib.Tactic.CC.CCM.propagateDown + def Mathlib.Tactic.CC.CCM.propagateEqDown + def Mathlib.Tactic.CC.CCM.propagateExistsDown + def Mathlib.Tactic.CC.CCM.propagateInstImplicit + def Mathlib.Tactic.CC.CCM.propagateNotDown + def Mathlib.Tactic.CC.CCM.propagateOrDown + def Mathlib.Tactic.CC.CCM.propagateProjectionConstructor + def Mathlib.Tactic.CC.CCM.propagateValueInconsistency + def Mathlib.Tactic.CC.CCM.pushEq + def Mathlib.Tactic.CC.CCM.pushHEq + def Mathlib.Tactic.CC.CCM.pushReflEq + def Mathlib.Tactic.CC.CCM.pushSubsingletonEq + def Mathlib.Tactic.CC.CCM.pushTodo + def Mathlib.Tactic.CC.CCM.reinsertParents + def Mathlib.Tactic.CC.CCM.removeParents + def Mathlib.Tactic.CC.CCM.run + def Mathlib.Tactic.CC.CCM.setACVar + def Mathlib.Tactic.CC.CCM.setFO + def Mathlib.Tactic.CC.CCM.simplifyAC + def Mathlib.Tactic.CC.CCM.simplifyACCore + def Mathlib.Tactic.CC.CCM.simplifyACStep + def Mathlib.Tactic.CC.CCM.superposeAC Modified Mathlib/Tactic/CC/Datatypes.lean +/- def Mathlib.Tactic.CC.ACApps.append +/- def Mathlib.Tactic.CC.ACApps.diff +/- def Mathlib.Tactic.CC.ACApps.intersection Added Mathlib/Tactic/Relation/Symm.lean + def Lean.Expr.relSidesIfSymm? Modified scripts/noshake.json Modified scripts/style-exceptions.txt 2024-05-15 12:42:23 1c03c34 feat(Probability): add lemma `IdentDistrib.inv` (#12918) ESTIMATED CHANGES Modified Mathlib/Probability/IdentDistrib.lean + theorem ProbabilityTheory.IdentDistrib.inv 2024-05-15 12:02:20 c5f6c2d feat(CategoryTheory/Limits): add classes `ReflectsFiniteLimits` and friends (#12909) This PR adds classes `ReflectsFiniteLimits`, `ReflectsFiniteProducts` and their duals, and relates them to existing classes. It also cleans up the file `CategoryTheory.Limits.Preserves.Finite` a bit and removes some porting notes that are no longer relevant. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Limits/Preserves/Finite.lean + def CategoryTheory.Limits.preservesFiniteColimitsOfReflectsOfPreserves + def CategoryTheory.Limits.preservesFiniteCoproductsOfReflectsOfPreserves + def CategoryTheory.Limits.preservesFiniteLimitsOfReflectsOfPreserves + def CategoryTheory.Limits.preservesFiniteProductsOfReflectsOfPreserves 2024-05-15 11:20:18 880c4cb feat(CategoryTheory/Triangulated): t-structures (#12619) This PR defines t-structures on (pre)triangulated categories. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Shift/Predicate.lean + def CategoryTheory.PredicateShift + theorem CategoryTheory.predicateShift_iff + theorem CategoryTheory.predicateShift_predicateShift + theorem CategoryTheory.predicateShift_zero Added Mathlib/CategoryTheory/Triangulated/TStructure/Basic.lean + theorem CategoryTheory.Triangulated.TStructure.GE_antitone + theorem CategoryTheory.Triangulated.TStructure.LE_monotone + theorem CategoryTheory.Triangulated.TStructure.exists_triangle + theorem CategoryTheory.Triangulated.TStructure.mem_of_isGE + theorem CategoryTheory.Triangulated.TStructure.mem_of_isLE + theorem CategoryTheory.Triangulated.TStructure.predicateShift_GE + theorem CategoryTheory.Triangulated.TStructure.predicateShift_LE + structure CategoryTheory.Triangulated.TStructure Modified docs/references.bib 2024-05-15 11:20:17 a9502f0 Eisenstein series uniform convergence (#10377) We show that the sum defining an Eisenstein Series converges locally uniformly. This is the basis for later proving that they are holomorphic (see #11013 ) and bounded at infinity (see #12456), which combine to show they are modular forms (see #12604). ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/NumberTheory/ModularForms/EisensteinSeries/UniformConvergence.lean + theorem EisensteinSeries.auxbound1 + theorem EisensteinSeries.auxbound2 + theorem EisensteinSeries.div_max_sq_ge_one + theorem EisensteinSeries.eisensteinSeries_tendstoLocallyUniformly + theorem EisensteinSeries.eisensteinSeries_tendstoLocallyUniformlyOn + theorem EisensteinSeries.norm_eq_max_natAbs + def EisensteinSeries.r1 + theorem EisensteinSeries.r1_aux_bound + theorem EisensteinSeries.r1_eq + theorem EisensteinSeries.r1_pos + def EisensteinSeries.r + theorem EisensteinSeries.r_lower_bound_on_verticalStrip + theorem EisensteinSeries.r_mul_max_le + theorem EisensteinSeries.r_pos + theorem EisensteinSeries.summable_one_div_norm_rpow + theorem EisensteinSeries.summand_bound + theorem EisensteinSeries.summand_bound_of_mem_verticalStrip Modified Mathlib/Topology/UniformSpace/UniformConvergence.lean + theorem tendstoLocallyUniformly_iff_forall_isCompact 2024-05-15 10:47:54 403f769 chore: cardFactors_zero/one don't need to be dsimp lemmas (#12925) ESTIMATED CHANGES Modified Mathlib/NumberTheory/ArithmeticFunction.lean +/- theorem ArithmeticFunction.cardFactors_one +/- theorem ArithmeticFunction.cardFactors_zero 2024-05-15 10:47:53 9fcecd5 doc: remove spurious parenthesis (#12876) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Monoidal/Category.lean 2024-05-15 10:47:51 a93dd61 feat(CategoryTheory/Monoidal): the curried associator isomorphism (#11701) This PR introduces `curriedAssociatorNatIso : bifunctorComp₁₂ (curriedTensor C) (curriedTensor C) ≅ bifunctorComp₂₃ (curriedTensor C) (curriedTensor C)` which is a formulation of the associator isomorphism in a monoidal category as an isomorphism between trifunctors `C ⥤ C ⥤ C ⥤ C`. A little cleanup of the file `CategoryTheory.Monoidal.Category` is also done. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Closed/Monoidal.lean Modified Mathlib/CategoryTheory/Monoidal/Category.lean + def CategoryTheory.MonoidalCategory.curriedAssociatorNatIso + def CategoryTheory.MonoidalCategory.curriedTensor +/- def CategoryTheory.MonoidalCategory.tensorLeft +/- def CategoryTheory.MonoidalCategory.tensorRight - def CategoryTheory.MonoidalCategory.tensorUnitLeft - def CategoryTheory.MonoidalCategory.tensorUnitRight - def CategoryTheory.MonoidalCategory.tensoringLeft - def CategoryTheory.MonoidalCategory.tensoringRight Modified Mathlib/CategoryTheory/Monoidal/End.lean 2024-05-15 09:43:16 3e51ad1 move(Algebra/Parity): Split file (#12829) Parity of elements in a group/ring is a basic algebraic concept, but it currently requires importing a bunch of algebraic order theory. As a consequence, `Algebra.Parity` currently holds a bunch of lemmas that really belong in earlier files but cannot due to import cycles. This PR moves the content of `Algebra.Parity` to * `Algebra.Group.Even` for the definition of `IsSquare` and `Even` * `Algebra.Ring.Parity` for the definition of `Odd` and ring properties of `Even` * `Algebra.Order.Group.Abs`, `Algebra.Order.Ring.Abs`, `Algebra.Order.Ring.Canonical`, `Algebra.Order.Sub.Canonical`, `Algebra.GroupPower.Order` for the various algebraic order properties of `Even` and `Odd` As a result, `Even`/`Odd` are available much more widely without awkward dependencies and algebraic order lemmas are now in the correct files. The only slight downfall is that two lemmas in `Algebra.Ring.Parity` are stated using `Set.range`, hence I had to weaken a few `assert_not_exists` to forbidding `Data.Set.Basic` instead of `Data.Set.Defs`. This is inconsequential. A side-effect of this PR is that I had to move some `bit0`/`bit1` lemmas. I could not find anywhere sensible to put them, so I am currently keeping them in `Algebra.Parity`. As a result, I had to reprove a few lemmas in `Algebra.GroupPower.Order`. I took the opportunity to generalise them. This is a followup to https://github.com/leanprover-community/mathlib/pull/17391 motivated by https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/Mathlib.2EAlgebra.2EAssociated and the move-only part of #11863. ESTIMATED CHANGES Modified Archive/Imo/Imo2008Q2.lean Modified Mathlib.lean Modified Mathlib/Algebra/Associated.lean Modified Mathlib/Algebra/Field/Power.lean Added Mathlib/Algebra/Group/Even.lean + theorem Even.isSquare_pow + theorem Even.isSquare_zpow + theorem IsSquare.div + theorem IsSquare.map + theorem IsSquare.mul + theorem IsSquare.pow + theorem IsSquare.zpow + def IsSquare + theorem IsSquare_sq + theorem even_ofMul_iff + theorem even_toAdd_iff + theorem isSquare_iff_exists_sq + theorem isSquare_inv + theorem isSquare_mul_self + theorem isSquare_ofAdd_iff + theorem isSquare_one + theorem isSquare_op_iff + theorem isSquare_toMul_iff + theorem isSquare_unop_iff Modified Mathlib/Algebra/GroupPower/Order.lean Modified Mathlib/Algebra/Order/Field/Power.lean Modified Mathlib/Algebra/Order/Group/Abs.lean + theorem isSquare_mabs Modified Mathlib/Algebra/Order/Group/Int.lean Modified Mathlib/Algebra/Order/Ring/Canonical.lean + theorem Odd.pos Modified Mathlib/Algebra/Order/Sub/Canonical.lean + theorem Even.tsub Modified Mathlib/Algebra/Parity.lean - theorem Dvd.dvd.even - theorem Even.add_odd - theorem Even.add_one - theorem Even.isSquare_pow - theorem Even.isSquare_zpow - theorem Even.mul_left - theorem Even.mul_right - theorem Even.neg_one_pow - theorem Even.neg_one_zpow - theorem Even.neg_pow - theorem Even.neg_zpow - theorem Even.odd_add - theorem Even.one_add - theorem Even.pow_of_ne_zero - theorem Even.sub_odd - theorem Even.trans_dvd - theorem Even.tsub - theorem IsSquare.div - theorem IsSquare.map - theorem IsSquare.mul - theorem IsSquare.pow - theorem IsSquare.zpow - def IsSquare - theorem IsSquare_sq - theorem Odd.add_even - theorem Odd.add_odd - theorem Odd.map - theorem Odd.mul - theorem Odd.neg - theorem Odd.neg_one_pow - theorem Odd.neg_pow - theorem Odd.pos - theorem Odd.pow - theorem Odd.pow_add_pow_eq_zero - theorem Odd.sub_even - theorem Odd.sub_odd - def Odd - theorem even_abs - theorem even_bit0 - theorem even_iff_exists_two_mul - theorem even_iff_two_dvd - theorem even_neg_two - theorem even_ofMul_iff - theorem even_toAdd_iff - theorem even_two - theorem even_two_mul - theorem isSquare_iff_exists_sq - theorem isSquare_inv - theorem isSquare_mul_self - theorem isSquare_ofAdd_iff - theorem isSquare_one - theorem isSquare_op_iff - theorem isSquare_toMul_iff - theorem isSquare_unop_iff - theorem isSquare_zero - theorem odd_add_one_self' - theorem odd_add_one_self - theorem odd_add_self_one' - theorem odd_bit1 - theorem odd_iff_exists_bit1 - theorem odd_neg - theorem odd_neg_one - theorem odd_one - theorem odd_two_mul_add_one - theorem range_two_mul - theorem range_two_mul_add_one Modified Mathlib/Algebra/QuadraticDiscriminant.lean Added Mathlib/Algebra/Ring/Parity.lean + theorem Dvd.dvd.even + theorem Even.add_odd + theorem Even.add_one + theorem Even.mul_left + theorem Even.mul_right + theorem Even.neg_one_pow + theorem Even.neg_one_zpow + theorem Even.neg_pow + theorem Even.neg_zpow + theorem Even.odd_add + theorem Even.one_add + theorem Even.pow_of_ne_zero + theorem Even.sub_odd + theorem Even.trans_dvd + theorem Odd.add_even + theorem Odd.add_odd + theorem Odd.map + theorem Odd.mul + theorem Odd.neg + theorem Odd.neg_one_pow + theorem Odd.neg_pow + theorem Odd.pow + theorem Odd.pow_add_pow_eq_zero + theorem Odd.sub_even + theorem Odd.sub_odd + def Odd + theorem even_bit0 + theorem even_iff_exists_two_mul + theorem even_iff_two_dvd + theorem even_neg_two + theorem even_two + theorem even_two_mul + theorem isSquare_zero + theorem odd_add_one_self' + theorem odd_add_one_self + theorem odd_add_self_one' + theorem odd_bit1 + theorem odd_iff_exists_bit1 + theorem odd_neg + theorem odd_neg_one + theorem odd_one + theorem odd_two_mul_add_one + theorem range_two_mul + theorem range_two_mul_add_one Modified Mathlib/Data/Fintype/Parity.lean Modified Mathlib/Data/Int/Star.lean Modified Mathlib/Data/Nat/Digits.lean Modified Mathlib/Data/Nat/Parity.lean Modified Mathlib/Data/Rat/Star.lean Modified Mathlib/Order/Filter/AtTopBot.lean Modified test/GCongr/inequalities.lean 2024-05-15 09:43:15 c93482b feat: Cartan subalgebras contain only semisimple elements if the Killing form is non-singular and the coefficients are a perfect field. (#12712) This PR contains the following changes: * The headline result: `LieAlgebra.IsKilling.isSemisimple_ad_of_mem_isCartanSubalgebra` * Necessary supporting lemmas in linear algebra / order theory ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/DirectSum/Module.lean Modified Mathlib/Algebra/Lie/Derivation/Killing.lean + theorem LieDerivation.IsKilling.ad_apply_eq_zero_iff + theorem LieDerivation.IsKilling.ad_mem_ker_killingForm_ad_range_of_mem_orthogonal + theorem LieDerivation.IsKilling.ad_mem_orthogonal_of_mem_orthogonal + theorem LieDerivation.IsKilling.exists_eq_ad + theorem LieDerivation.IsKilling.killingForm_restrict_range_ad + theorem LieDerivation.IsKilling.killingForm_restrict_range_ad_nondegenerate + theorem LieDerivation.IsKilling.range_ad_eq_top - theorem LieDerivation.Killing.ad_apply_eq_zero_iff - theorem LieDerivation.Killing.ad_mem_ker_killingForm_ad_range_of_mem_orthogonal - theorem LieDerivation.Killing.ad_mem_orthogonal_of_mem_orthogonal - theorem LieDerivation.Killing.exists_eq_ad - theorem LieDerivation.Killing.killingForm_restrict_range_ad - theorem LieDerivation.Killing.killingForm_restrict_range_ad_nondegenerate - theorem LieDerivation.Killing.range_ad_eq_top Modified Mathlib/Algebra/Lie/Submodule.lean + theorem LieSubmodule.mk_eq_bot_iff + theorem LieSubmodule.mk_eq_top_iff Modified Mathlib/Algebra/Lie/Weights/Basic.lean + theorem LieModule.Weight.apply_eq_zero_of_isNilpotent + theorem LieModule.Weight.hasEigenvalueAt + theorem LieModule.Weight.weightSpaceOf_ne_bot + theorem LieModule.Weight.weightSpace_ne_bot Modified Mathlib/Algebra/Lie/Weights/Killing.lean + theorem LieAlgebra.IsKilling.eq_zero_of_isNilpotent_ad_of_mem_isCartanSubalgebra + theorem LieAlgebra.IsKilling.isSemisimple_ad_of_mem_isCartanSubalgebra Modified Mathlib/Algebra/Module/Submodule/LinearMap.lean + theorem LinearMap.restrict_sub Modified Mathlib/Algebra/Module/Submodule/Map.lean Modified Mathlib/Algebra/Module/Submodule/Range.lean + theorem Submodule.coe_mapIic_apply + def Submodule.mapIic Modified Mathlib/LinearAlgebra/Eigenspace/Basic.lean + theorem Module.End.HasEigenvalue.isNilpotent_of_isNilpotent + theorem Module.End.HasEigenvalue.pow Added Mathlib/LinearAlgebra/Eigenspace/Semisimple.lean + theorem Module.End.IsSemisimple.generalizedEigenspace_eq_eigenspace + theorem Module.End.apply_eq_of_mem_genEigenspace_of_comm_of_isSemisimple_of_isNilpotent_sub Modified Mathlib/LinearAlgebra/Semisimple.lean + theorem Module.End.IsSemisimple.restrict + theorem Module.End.isSemisimple_sub_algebraMap_iff Modified Mathlib/LinearAlgebra/Span.lean + theorem Submodule.isCompl_comap_subtype_of_isCompl_of_le Modified Mathlib/Order/LatticeIntervals.lean +/- theorem Set.Iic.coe_bot +/- theorem Set.Iic.coe_top Modified Mathlib/Order/ModularLattice.lean + theorem Set.Iic.isCompl_inf_inf_of_isCompl_of_le Modified Mathlib/RingTheory/Adjoin/Basic.lean + theorem Algebra.commute_of_mem_adjoin_of_forall_mem_commute + theorem Algebra.commute_of_mem_adjoin_self + theorem Algebra.commute_of_mem_adjoin_singleton_of_commute Modified Mathlib/RingTheory/Nilpotent/Lemmas.lean + theorem Module.End.isNilpotent.restrict Modified Mathlib/RingTheory/SimpleModule.lean 2024-05-15 08:45:09 3b462da feat: `Set.diff_subset_compl` (#12921) ESTIMATED CHANGES Modified Mathlib/Data/Set/Basic.lean + theorem Set.diff_subset_compl 2024-05-15 06:18:12 5cc7b94 feat: `Algebra.adjoin R s` is `span R {1} ⊔ s.toSubmodule` (#12889) This relates several unital and non-unital subobject closures to each other the to various counterparts. This is one of the key steps towards establishing that `C(s, 𝕜)₀` is the closure of the non-unital star subalgebra generated by the identity function, when `s` is compact and `RCLike 𝕜`. This, in turn, is essential for writing instances of the continuous functional calculus for non-unital algebras. ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/NonUnitalSubalgebra.lean + theorem NonUnitalAlgHom.map_adjoin + theorem NonUnitalAlgHom.map_adjoin_singleton + theorem NonUnitalAlgebra.adjoin_eq + theorem NonUnitalAlgebra.adjoin_eq_span +/- theorem NonUnitalAlgebra.adjoin_induction' + theorem NonUnitalAlgebra.adjoin_induction_subtype + theorem NonUnitalAlgebra.span_eq_toSubmodule Modified Mathlib/Algebra/Algebra/Subalgebra/Unitization.lean + theorem Algebra.adjoin_nonUnitalSubalgebra + theorem Algebra.adjoin_nonUnitalSubalgebra_eq_span + theorem NonUnitalAlgebra.adjoin_le_algebra_adjoin + theorem NonUnitalStarAlgebra.adjoin_le_starAlgebra_adjoin + theorem StarAlgebra.adjoin_nonUnitalStarSubalgebra + theorem StarAlgebra.adjoin_nonUnitalStarSubalgebra_eq_span Modified Mathlib/Algebra/Group/Submonoid/Basic.lean + theorem Submonoid.closure_eq_one_union Modified Mathlib/Algebra/Star/NonUnitalSubalgebra.lean + theorem NonUnitalStarAlgHom.map_adjoin + theorem NonUnitalStarAlgHom.map_adjoin_singleton + theorem NonUnitalStarAlgebra.adjoin_eq + theorem NonUnitalStarAlgebra.adjoin_eq_span + theorem NonUnitalStarAlgebra.adjoin_induction' + theorem NonUnitalStarAlgebra.span_eq_toSubmodule Modified Mathlib/Algebra/Star/Subalgebra.lean + theorem StarAlgebra.adjoin_eq + theorem StarAlgebra.adjoin_eq_span Modified Mathlib/LinearAlgebra/Span.lean + theorem Submodule.coe_span_eq_self 2024-05-15 06:18:11 7c3b8ea feat: relate `IsStarNormal` and `IsSelfAdjoint` to `Unitization` (#12641) ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/Unitization.lean + theorem IsSelfAdjoint.inr + theorem Unitization.isSelfAdjoint_inr + theorem Unitization.isStarNormal_inr Modified Mathlib/Algebra/Star/SelfAdjoint.lean 2024-05-15 01:39:22 58e3150 chore: fix deprecations (#12920) Deprecations in dot notations are not visible on master yet, so I have to keep backporting them from nightly-testing! ESTIMATED CHANGES Modified Mathlib/Tactic/ComputeDegree.lean Modified Mathlib/Util/LongNames.lean 2024-05-15 00:25:53 db32081 chore: remove import from Tactic/Simps (#12890) ESTIMATED CHANGES Modified Mathlib/Tactic/Simps/Basic.lean 2024-05-14 23:22:35 1f4dc05 chore: robustify proofs against leanprover/lean4#4061 (#12906) leanprover/lean4#4061 results in well-founded definitions being irreducible by default. This PR robustifies some proofs. (Sometime over-robust: we're going to keep `minFacAux` as semireducible for now, so e.g. `Nat.Prime 5` will still be decidable.) ESTIMATED CHANGES Modified Mathlib/Data/Nat/Choose/Multinomial.lean +/- theorem Multiset.multinomial_zero Modified Mathlib/Data/Nat/Factorization/Basic.lean +/- theorem Nat.factorization_one +/- theorem Nat.factorization_zero Modified Mathlib/Data/Nat/Factors.lean + theorem Nat.factors_two Modified Mathlib/Data/Nat/Prime.lean + theorem Nat.minFac_two Modified Mathlib/Data/Nat/PrimeFin.lean +/- theorem Nat.primeFactors_one +/- theorem Nat.primeFactors_zero Modified Mathlib/Data/Nat/Squarefree.lean Modified Mathlib/Data/Sym/Basic.lean + theorem Sym.toMultiset_zero Modified Mathlib/GroupTheory/CommutingProbability.lean +/- theorem DihedralGroup.reciprocalFactors_one +/- theorem DihedralGroup.reciprocalFactors_zero Modified Mathlib/NumberTheory/LegendreSymbol/JacobiSymbol.lean Modified Mathlib/Tactic/NormNum/Prime.lean 2024-05-14 21:45:12 7a69696 chore(Data.Finset): un-`@[simp]` `filter_{true,false}_of_mem` (#12907) These are okay `@[simp]` lemmas in principle but sometimes discharging the hypothesis is very expensive. This PR adds some extra `@[simp]` lemmas instead; those should reduce the impact of the change quite a lot. Zulip thread: https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/Near-timeout.20in.20.60mulEnergy_card_filter.60 ESTIMATED CHANGES Modified Mathlib/Combinatorics/SetFamily/AhlswedeZhang.lean Modified Mathlib/Combinatorics/SimpleGraph/AdjMatrix.lean Modified Mathlib/Combinatorics/SimpleGraph/Regularity/Equitabilise.lean Modified Mathlib/Data/Finset/Basic.lean +/- theorem Finset.filter_eq_self Modified Mathlib/Data/Finset/Prod.lean Modified Mathlib/Data/Finset/Union.lean Modified Mathlib/Data/Nat/Factorization/Basic.lean Modified Mathlib/LinearAlgebra/AffineSpace/Basis.lean 2024-05-14 17:58:04 56dc11a chore: deprecate `@[pp_dot]` (#12609) Now that we're on Lean v4.8.0-rc1, there's no need for `@[pp_dot]` due to the new `pp.fieldNotation.generalized` feature. This PR removes all uses of `@[pp_dot]` and makes it emit a warning that it's been deprecated. The new feature does not pretty print proof terms with dot notation, so there is a small regression for `Eq.symm`, `Eq.trans`, and, sometimes, `False.elim`. However, `pp.proofs` is false by default. ESTIMATED CHANGES Modified Mathlib/Algebra/GroupPower/NegOnePow.lean Modified Mathlib/Algebra/Homology/HomotopyCategory/HomComplex.lean Modified Mathlib/AlgebraicGeometry/EllipticCurve/Affine.lean Modified Mathlib/AlgebraicGeometry/EllipticCurve/Group.lean Modified Mathlib/AlgebraicGeometry/EllipticCurve/Jacobian.lean Modified Mathlib/AlgebraicGeometry/EllipticCurve/Projective.lean Modified Mathlib/AlgebraicGeometry/EllipticCurve/Weierstrass.lean Modified Mathlib/AlgebraicGeometry/Scheme.lean Modified Mathlib/CategoryTheory/Adjunction/Basic.lean Modified Mathlib/CategoryTheory/Bicategory/NaturalTransformation.lean Modified Mathlib/CategoryTheory/Equivalence.lean Modified Mathlib/CategoryTheory/Functor/FullyFaithful.lean Modified Mathlib/CategoryTheory/Functor/KanExtension/Adjunction.lean Modified Mathlib/CategoryTheory/Functor/KanExtension/Basic.lean Modified Mathlib/CategoryTheory/Iso.lean Modified Mathlib/CategoryTheory/Limits/Cones.lean Modified Mathlib/CategoryTheory/Limits/IsLimit.lean Modified Mathlib/CategoryTheory/NatIso.lean Modified Mathlib/CategoryTheory/NatTrans.lean Modified Mathlib/CategoryTheory/Opposites.lean Modified Mathlib/CategoryTheory/Types.lean Modified Mathlib/Combinatorics/Quiver/Basic.lean Modified Mathlib/Combinatorics/SimpleGraph/Regularity/Uniform.lean Modified Mathlib/Data/ENNReal/Basic.lean Modified Mathlib/Data/Finset/Basic.lean Modified Mathlib/Data/Finset/Card.lean +/- def Finset.card Modified Mathlib/Data/Nat/PrimeFin.lean +/- def Nat.primeFactors Modified Mathlib/Data/Rat/Init.lean +/- def NNRat.den +/- def NNRat.num Modified Mathlib/Data/Real/ConjExponents.lean Modified Mathlib/Init/Logic.lean Modified Mathlib/LinearAlgebra/Matrix/PosDef.lean Modified Mathlib/Logic/Equiv/Defs.lean Modified Mathlib/MeasureTheory/Decomposition/Lebesgue.lean Modified Mathlib/MeasureTheory/MeasurableSpace/Basic.lean Modified Mathlib/MeasureTheory/Measure/EverywherePos.lean +/- def MeasureTheory.Measure.IsEverywherePos +/- def MeasureTheory.Measure.everywherePosSubset Modified Mathlib/MeasureTheory/Measure/Restrict.lean Modified Mathlib/MeasureTheory/Measure/Tilted.lean Modified Mathlib/MeasureTheory/Measure/Trim.lean Modified Mathlib/MeasureTheory/Measure/WithDensity.lean Modified Mathlib/Tactic/ProjectionNotation.lean Modified Mathlib/Topology/ContinuousFunction/UniqueCFC.lean Modified test/Explode.lean Modified test/LibrarySearch/basic.lean 2024-05-14 16:33:04 7193bb3 feat: RingCon.coe_bot (#12860) Useful in FLT ESTIMATED CHANGES Modified Mathlib/RingTheory/Congruence.lean + theorem RingCon.coe_bot 2024-05-14 15:22:42 b1087dd feat(Logic/Equiv/Set): `swap` is `BijOn` (#12877) We prove two lemmas, stating that `Equiv.swap a b` is `BijOn s t`, where `t = s` if both or neither `a` or `b` belong to `s`, and `t = s - a + b` if `a ∈ s` and `b ∉ s`. ESTIMATED CHANGES Modified Mathlib/Logic/Equiv/Set.lean + theorem Equiv.swap_bijOn_exchange + theorem Equiv.swap_bijOn_self 2024-05-14 11:17:05 75fbe69 chore: backport fixes to deprecation warnings (#12905) ESTIMATED CHANGES Modified Mathlib/NumberTheory/LSeries/HurwitzZetaOdd.lean 2024-05-14 10:23:08 5c39c66 feat(CategoryTheory/Galois): prorepresentability of fiber functors (#12839) We show that a fiber functor of a Galois category is pro-represented by the system of pointed Galois objects. We also introduce the system of automorphism groups (seen as objects of `C`) of the pointed Galois objects. This is used in a follow-up PR to establish a group isomorphism between the automorphism group of a fiber functor and the limit of the automorphism groups of the Galois objects. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/CategoryTheory/Galois/Basic.lean - theorem CategoryTheory.PreGaloisCategory.cardFiber_coprod_eq_sum - theorem CategoryTheory.PreGaloisCategory.cardFiber_eq_of_iso + theorem CategoryTheory.PreGaloisCategory.card_aut_le_card_fiber_of_connected + theorem CategoryTheory.PreGaloisCategory.card_fiber_coprod_eq_sum + theorem CategoryTheory.PreGaloisCategory.card_fiber_eq_of_iso + theorem CategoryTheory.PreGaloisCategory.card_hom_le_card_fiber_of_connected + theorem CategoryTheory.PreGaloisCategory.epi_of_nonempty_of_isConnected - theorem CategoryTheory.PreGaloisCategory.evaluationInjective_of_isConnected + theorem CategoryTheory.PreGaloisCategory.evaluation_injective_of_isConnected + theorem CategoryTheory.PreGaloisCategory.fiberBinaryProductEquiv_symm_fst_apply + theorem CategoryTheory.PreGaloisCategory.fiberBinaryProductEquiv_symm_snd_apply + theorem CategoryTheory.PreGaloisCategory.fiberEqualizerEquiv_symm_ι_apply + theorem CategoryTheory.PreGaloisCategory.fiberPullbackEquiv_symm_fst_apply + theorem CategoryTheory.PreGaloisCategory.fiberPullbackEquiv_symm_snd_apply - theorem CategoryTheory.PreGaloisCategory.isIso_of_mono_of_eqCardFiber + theorem CategoryTheory.PreGaloisCategory.isIso_of_mono_of_eq_card_fiber - theorem CategoryTheory.PreGaloisCategory.ltCardFiber_of_mono_of_notIso + theorem CategoryTheory.PreGaloisCategory.lt_card_fiber_of_mono_of_notIso + theorem CategoryTheory.PreGaloisCategory.surjective_of_nonempty_fiber_of_isConnected + theorem CategoryTheory.PreGaloisCategory.surjective_on_fiber_of_epi Modified Mathlib/CategoryTheory/Galois/Decomposition.lean Modified Mathlib/CategoryTheory/Galois/GaloisObjects.lean + theorem CategoryTheory.PreGaloisCategory.autMap_apply_mul + theorem CategoryTheory.PreGaloisCategory.autMap_comp + theorem CategoryTheory.PreGaloisCategory.autMap_id + theorem CategoryTheory.PreGaloisCategory.autMap_surjective_of_isGalois + theorem CategoryTheory.PreGaloisCategory.autMap_unique + theorem CategoryTheory.PreGaloisCategory.comp_autMap + theorem CategoryTheory.PreGaloisCategory.comp_autMap_apply + theorem CategoryTheory.PreGaloisCategory.evaluationEquivOfIsGalois_apply + theorem CategoryTheory.PreGaloisCategory.evaluationEquivOfIsGalois_symm_fiber + theorem CategoryTheory.PreGaloisCategory.evaluation_aut_bijective_of_isGalois + theorem CategoryTheory.PreGaloisCategory.evaluation_aut_surjective_of_isGalois + theorem CategoryTheory.PreGaloisCategory.exists_autMap Added Mathlib/CategoryTheory/Galois/Prorepresentability.lean + structure CategoryTheory.PreGaloisCategory.PointedGaloisObject.Hom + def CategoryTheory.PreGaloisCategory.PointedGaloisObject.cocone + theorem CategoryTheory.PreGaloisCategory.PointedGaloisObject.cocone_app + theorem CategoryTheory.PreGaloisCategory.PointedGaloisObject.comp_val + theorem CategoryTheory.PreGaloisCategory.PointedGaloisObject.hom_ext + theorem CategoryTheory.PreGaloisCategory.PointedGaloisObject.id_val + def CategoryTheory.PreGaloisCategory.PointedGaloisObject.incl + theorem CategoryTheory.PreGaloisCategory.PointedGaloisObject.incl_map + theorem CategoryTheory.PreGaloisCategory.PointedGaloisObject.incl_obj + structure CategoryTheory.PreGaloisCategory.PointedGaloisObject Modified Mathlib/CategoryTheory/Limits/Preserves/Shapes/BinaryProducts.lean + theorem CategoryTheory.Limits.PreservesLimitPair.iso_inv_fst + theorem CategoryTheory.Limits.PreservesLimitPair.iso_inv_snd Modified Mathlib/CategoryTheory/Limits/Preserves/Shapes/Equalizers.lean + theorem CategoryTheory.Limits.PreservesEqualizer.iso_inv_ι 2024-05-14 09:16:00 96941f1 chore: rename Name.getString -> Name.lastComponentAsString (#12891) ESTIMATED CHANGES Modified Mathlib/Lean/Expr/Basic.lean - def Lean.Name.getString + def Lean.Name.lastComponentAsString Modified Mathlib/Tactic/Simps/Basic.lean Modified Mathlib/Tactic/ToAdditive.lean 2024-05-14 08:50:02 0409a2f chore: run lean4checker daily (#12900) ESTIMATED CHANGES Modified .github/workflows/lean4checker.yml 2024-05-14 08:20:36 aad19d8 docs(Condensed): add link to youtube playlist where light condensed sets are defined (#12898) ESTIMATED CHANGES Modified Mathlib/Condensed/Light/Basic.lean 2024-05-14 07:39:18 c36fe27 feat: bialgebra homomorphisms (#11962) Homomorphisms of bialgebras, mimicking the file `Mathlib.Algebra.Algebra.Hom`. ESTIMATED CHANGES Modified Mathlib.lean Renamed Mathlib/RingTheory/Bialgebra.lean to Mathlib/RingTheory/Bialgebra/Basic.lean Added Mathlib/RingTheory/Bialgebra/Hom.lean + def BialgHom.Simps.apply + theorem BialgHom.coe_algHom_injective + theorem BialgHom.coe_coalgHom_injective + theorem BialgHom.coe_coalgHom_mk + theorem BialgHom.coe_comp + theorem BialgHom.coe_copy + theorem BialgHom.coe_fn_inj + theorem BialgHom.coe_fn_injective + theorem BialgHom.coe_id + theorem BialgHom.coe_linearMap_injective + theorem BialgHom.coe_mk + theorem BialgHom.coe_mks + theorem BialgHom.coe_toAlgHom + theorem BialgHom.coe_toCoalgHom + theorem BialgHom.coe_toLinearMap + def BialgHom.comp + theorem BialgHom.comp_assoc + theorem BialgHom.comp_id + theorem BialgHom.comp_toAlgHom + theorem BialgHom.comp_toCoalgHom + theorem BialgHom.copy_eq + theorem BialgHom.ext + theorem BialgHom.ext_iff + theorem BialgHom.ext_of_ring + theorem BialgHom.id_comp + theorem BialgHom.id_toAlgHom + theorem BialgHom.id_toCoalgHom + theorem BialgHom.map_smul_of_tower + theorem BialgHom.mk_coe + theorem BialgHom.mul_apply + theorem BialgHom.one_apply + theorem BialgHom.toAlgHom_toLinearMap + structure BialgHom + theorem BialgHomClass.counitAlgHom_comp + theorem BialgHomClass.map_comp_comulAlgHom + def BialgHomClass.toBialgHom + def Bialgebra.counitBialgHom + theorem Bialgebra.counitBialgHom_apply + theorem Bialgebra.counitBialgHom_toCoalgHom + theorem Bialgebra.ext_to_ring Modified Mathlib/RingTheory/Coalgebra/Hom.lean + theorem CoalgHom.coe_copy + theorem CoalgHom.copy_eq Modified Mathlib/RingTheory/HopfAlgebra.lean 2024-05-14 17:05:28+10:00 fd0d405 chore: lake build ProofWidgets required for lean4checker (#12896) See [zulip](https://leanprover.zulipchat.com/#narrow/stream/345428-mathlib-reviewers/topic/lean4checker.20failure/near/438511155). ESTIMATED CHANGES Modified .github/workflows/lean4checker.yml 2024-05-14 03:32:21 6219398 chore: bump dependencies (#12893) ESTIMATED CHANGES Modified Mathlib/Data/List/Basic.lean - theorem List.eraseIdx_eq_take_drop_succ - theorem List.get_eq_iff Modified Mathlib/Data/Rbtree/Init.lean Modified lake-manifest.json 2024-05-14 00:37:35 9c49043 chore(EllipticCurve/Affine): add capitalization to Props `equation` and `nonsingular` (#12874) ESTIMATED CHANGES Modified Mathlib/AlgebraicGeometry/EllipticCurve/Affine.lean +/- theorem EllipticCurve.Affine.nonsingular + def WeierstrassCurve.Affine.Equation + def WeierstrassCurve.Affine.Nonsingular +/- theorem WeierstrassCurve.Affine.Point.map_some +/- theorem WeierstrassCurve.Affine.Point.neg_some +/- theorem WeierstrassCurve.Affine.Point.some_add_self_of_Yeq +/- theorem WeierstrassCurve.Affine.Point.some_add_self_of_Yne' +/- theorem WeierstrassCurve.Affine.Point.some_add_self_of_Yne +/- theorem WeierstrassCurve.Affine.Point.some_add_some_of_Xne' +/- theorem WeierstrassCurve.Affine.Point.some_add_some_of_Xne +/- theorem WeierstrassCurve.Affine.Point.some_add_some_of_Yeq +/- theorem WeierstrassCurve.Affine.Point.some_add_some_of_Yne' +/- theorem WeierstrassCurve.Affine.Point.some_add_some_of_Yne +/- theorem WeierstrassCurve.Affine.Yeq_of_Xeq +/- theorem WeierstrassCurve.Affine.Yeq_of_Yne +/- theorem WeierstrassCurve.Affine.addPolynomial_slope +/- theorem WeierstrassCurve.Affine.derivative_addPolynomial_slope - def WeierstrassCurve.Affine.equation +/- theorem WeierstrassCurve.Affine.equation_add' +/- theorem WeierstrassCurve.Affine.equation_add +/- theorem WeierstrassCurve.Affine.equation_iff' +/- theorem WeierstrassCurve.Affine.equation_neg +/- theorem WeierstrassCurve.Affine.equation_neg_iff +/- theorem WeierstrassCurve.Affine.equation_neg_of +/- theorem WeierstrassCurve.Affine.equation_zero - def WeierstrassCurve.Affine.nonsingular +/- theorem WeierstrassCurve.Affine.nonsingular_add' +/- theorem WeierstrassCurve.Affine.nonsingular_add +/- theorem WeierstrassCurve.Affine.nonsingular_iff' +/- theorem WeierstrassCurve.Affine.nonsingular_iff +/- theorem WeierstrassCurve.Affine.nonsingular_neg +/- theorem WeierstrassCurve.Affine.nonsingular_neg_iff +/- theorem WeierstrassCurve.Affine.nonsingular_neg_of +/- theorem WeierstrassCurve.Affine.nonsingular_of_Δ_ne_zero +/- theorem WeierstrassCurve.Affine.nonsingular_zero +/- theorem WeierstrassCurve.Affine.nonsingular_zero_of_Δ_ne_zero Modified Mathlib/AlgebraicGeometry/EllipticCurve/Group.lean +/- def EllipticCurve.Affine.Point.mk +/- theorem WeierstrassCurve.Affine.CoordinateRing.C_addPolynomial_slope +/- theorem WeierstrassCurve.Affine.CoordinateRing.XYIdeal'_eq +/- theorem WeierstrassCurve.Affine.CoordinateRing.XYIdeal_eq₂ +/- theorem WeierstrassCurve.Affine.CoordinateRing.XYIdeal_mul_XYIdeal +/- theorem WeierstrassCurve.Affine.CoordinateRing.XYIdeal_neg_mul +/- theorem WeierstrassCurve.Affine.CoordinateRing.mk_XYIdeal'_mul_mk_XYIdeal' +/- theorem WeierstrassCurve.Affine.CoordinateRing.mk_XYIdeal'_mul_mk_XYIdeal'_of_Yeq +/- theorem WeierstrassCurve.Affine.Point.toClass_some Modified Mathlib/AlgebraicGeometry/EllipticCurve/Jacobian.lean +/- theorem WeierstrassCurve.Jacobian.equation_some +/- theorem WeierstrassCurve.Jacobian.nonsingular_some Modified Mathlib/AlgebraicGeometry/EllipticCurve/Projective.lean +/- theorem WeierstrassCurve.Projective.equation_some +/- theorem WeierstrassCurve.Projective.nonsingular_some 2024-05-14 00:12:47 5602b56 feat(Condensed): light condensed objects (#11586) New foundations for analytic geometry based on light condensed sets are being developed by Clausen-Scholze (see [this youtube playlist](https://www.youtube.com/playlist?list=PLx5f8IelFRgGmu6gmL-Kf_Rl_6Mm7juZO)). This PR defines light condensed objects. - [x] depends on: #8613 - [x] depends on: #8643 - [x] depends on: #8674 - [x] depends on: #8676 - [x] depends on: #8678 - [x] depends on: #9513 - [x] depends on: #11585 ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Condensed/Light/Basic.lean + def LightCondensed 2024-05-14 09:58:37+10:00 ed65b09 chore: run lean4checker cron frequently while we're debugging (#12888) ESTIMATED CHANGES Modified .github/workflows/lean4checker.yml 2024-05-13 22:54:15 8fa5a36 fix(Algebra/Algebra/Equiv): fix deprecation message (#12873) ... and add its deprecation date. ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/Equiv.lean 2024-05-13 22:13:55 2aa7868 chore: Don't use `ring` in `Data.Int.ModEq` (#12872) This is an attempt at a more principled fix than #12871. The uses of `ring` were very superficial. Two of them were just `abel` and the last one was trivial. This is motivated by #10765, "ring modulo a given characteristic". ESTIMATED CHANGES Modified Mathlib/Data/Int/ModEq.lean Modified Mathlib/Data/Nat/Digits.lean 2024-05-13 21:00:58 73946d0 feat(NumberTheory/LSeries): Odd Hurwitz zeta functions (#12779) This PR adds the analytic continuation and functional equation for the odd part of the Hurwitz zeta function. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Data/Sign.lean + theorem SignType.intCast_cast + theorem sign_intCast Modified Mathlib/NumberTheory/LSeries/HurwitzZetaEven.lean Added Mathlib/NumberTheory/LSeries/HurwitzZetaOdd.lean + theorem LSeriesHasSum_sin + def completedHurwitzZetaOdd + theorem completedHurwitzZetaOdd_neg + theorem completedHurwitzZetaOdd_one_sub + def completedSinZeta + theorem completedSinZeta_neg + theorem completedSinZeta_one_sub + theorem continuousOn_oddKernel + theorem continuousOn_sinKernel + theorem differentiableAt_sinZeta + theorem differentiable_completedHurwitzZetaOdd + theorem differentiable_completedSinZeta + theorem differentiable_hurwitzZetaOdd + theorem hasSum_int_completedHurwitzZetaOdd + theorem hasSum_int_completedSinZeta + theorem hasSum_int_hurwitzZetaOdd + theorem hasSum_int_oddKernel + theorem hasSum_int_sinKernel + theorem hasSum_int_sinZeta + theorem hasSum_nat_completedSinZeta + theorem hasSum_nat_hurwitzZetaOdd + theorem hasSum_nat_hurwitzZetaOdd_of_mem_Icc + theorem hasSum_nat_sinKernel + theorem hasSum_nat_sinZeta + def hurwitzOddFEPair + theorem hurwitzZetaOdd_neg + theorem hurwitzZetaOdd_neg_two_mul_nat_sub_one + theorem hurwitzZetaOdd_one_sub + theorem isBigO_atTop_oddKernel + theorem isBigO_atTop_sinKernel + def jacobiTheta₂'' + theorem jacobiTheta₂''_add_left + theorem jacobiTheta₂''_conj + theorem jacobiTheta₂''_neg_left + theorem jacobiTheta₂'_functional_equation' + def oddKernel + theorem oddKernel_def' + theorem oddKernel_def + theorem oddKernel_functional_equation + theorem oddKernel_neg + theorem oddKernel_undef + theorem oddKernel_zero + def sinKernel + theorem sinKernel_def + theorem sinKernel_neg + theorem sinKernel_undef + theorem sinKernel_zero + theorem sinZeta_neg + theorem sinZeta_neg_two_mul_nat_sub_one + theorem sinZeta_one_sub 2024-05-13 15:49:27 281655a chore: Delete `Data.Int.Dvd.Pow` (#12823) These three lemmas are oddly stated and completely unused in mathlib. ESTIMATED CHANGES Modified Mathlib.lean Deleted Mathlib/Data/Int/Dvd/Pow.lean - theorem Int.dvd_of_pow_dvd - theorem Int.pow_dvd_of_le_of_pow_dvd - theorem Int.sign_pow_bit1 2024-05-13 15:49:26 de05555 feat(RingTheory.DedekindDomain.Factorization): add factorization of fractional ideals (#7778) We show that every nonzero fractional ideal `I` of a Dedekind domain `R` can be factored as a finprod `∏_v v^{n_v}` over the maximal ideals of `R`, where the exponents `n_v` are integers. We define `FractionalIdeal.count K v I` to be `n_v`, and we prove some of its properties. ESTIMATED CHANGES Modified Mathlib/RingTheory/DedekindDomain/Factorization.lean + def FractionalIdeal.count + theorem FractionalIdeal.count_coe + theorem FractionalIdeal.count_coe_nonneg + theorem FractionalIdeal.count_finprod + theorem FractionalIdeal.count_finprod_coprime + theorem FractionalIdeal.count_finsupp_prod + theorem FractionalIdeal.count_inv + theorem FractionalIdeal.count_maximal + theorem FractionalIdeal.count_maximal_coprime + theorem FractionalIdeal.count_mono + theorem FractionalIdeal.count_mul' + theorem FractionalIdeal.count_mul + theorem FractionalIdeal.count_ne_zero + theorem FractionalIdeal.count_neg_zpow + theorem FractionalIdeal.count_one + theorem FractionalIdeal.count_pow + theorem FractionalIdeal.count_pow_self + theorem FractionalIdeal.count_prod + theorem FractionalIdeal.count_self + theorem FractionalIdeal.count_well_defined + theorem FractionalIdeal.count_zero + theorem FractionalIdeal.count_zpow + theorem FractionalIdeal.count_zpow_self + theorem FractionalIdeal.finite_factors' + theorem FractionalIdeal.finite_factors + theorem FractionalIdeal.finprod_heightOneSpectrum_factorization' + theorem FractionalIdeal.finprod_heightOneSpectrum_factorization + theorem FractionalIdeal.finprod_heightOneSpectrum_factorization_principal + theorem FractionalIdeal.finprod_heightOneSpectrum_factorization_principal_fraction +/- theorem Ideal.finprod_heightOneSpectrum_factorization +/- theorem Ideal.finprod_heightOneSpectrum_factorization_coe Modified Mathlib/RingTheory/FractionalIdeal/Operations.lean + theorem FractionalIdeal.constant_factor_ne_zero + theorem FractionalIdeal.ideal_factor_ne_zero 2024-05-13 14:42:10 047b716 chore: mark Prop.bot_eq_false/top_eq_true as simp (#12865) It seems unlikely that you'd ever want to keep these around. ESTIMATED CHANGES Modified Mathlib/Combinatorics/SimpleGraph/Subgraph.lean Modified Mathlib/Order/Atoms.lean Modified Mathlib/Order/PropInstances.lean 2024-05-13 14:42:09 7384a70 chore: Delete `Algebra.GroupPower.Hom` (#12817) After #12736, `powMonoidHom` and `zpowGroupHom` can move to `Algebra.Group.Hom.Basic` at no cost. This PR moves them and deletes the now empty `Algebra.GroupPower.Hom`. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/BigOperators/Multiset/Basic.lean Modified Mathlib/Algebra/Group/Hom/Basic.lean + def powMonoidHom + def zpowGroupHom Deleted Mathlib/Algebra/GroupPower/Hom.lean - def powMonoidHom - def zpowGroupHom Modified Mathlib/Algebra/GroupPower/Ring.lean 2024-05-13 14:42:07 c551dcc chore: adapt to multiple goal linter 4 (#12381) This PR was reduced by approximately half of its original size: the other half of this PR is now the content of #12560. This PR was reduced by approximately half of its halved size: the other half of the halved PR is now the content of #12834. A PR analogous to the merged PRs #12338, #12361 and #12372: reformatting proofs following the multiple goals linter of #12339. This should be the last of the adaptations. ESTIMATED CHANGES Modified Mathlib/RingTheory/AdjoinRoot.lean Modified Mathlib/RingTheory/Algebraic.lean Modified Mathlib/RingTheory/ClassGroup.lean Modified Mathlib/RingTheory/DedekindDomain/AdicValuation.lean Modified Mathlib/RingTheory/DedekindDomain/Ideal.lean Modified Mathlib/RingTheory/DiscreteValuationRing/Basic.lean Modified Mathlib/RingTheory/Filtration.lean Modified Mathlib/RingTheory/IsAdjoinRoot.lean Modified Mathlib/RingTheory/Jacobson.lean Modified Mathlib/RingTheory/Localization/Basic.lean Modified Mathlib/RingTheory/Localization/Integral.lean Modified Mathlib/RingTheory/Polynomial/Cyclotomic/Basic.lean Modified Mathlib/RingTheory/Polynomial/GaussLemma.lean Modified Mathlib/RingTheory/RootsOfUnity/Complex.lean Modified Mathlib/RingTheory/Valuation/ValuationRing.lean Modified Mathlib/RingTheory/Valuation/ValuationSubring.lean Modified Mathlib/RingTheory/WittVector/Verschiebung.lean Modified Mathlib/SetTheory/Cardinal/Cofinality.lean Modified Mathlib/SetTheory/Cardinal/Divisibility.lean Modified Mathlib/SetTheory/Cardinal/Ordinal.lean Modified Mathlib/SetTheory/Game/State.lean Modified Mathlib/SetTheory/Ordinal/NaturalOps.lean Modified Mathlib/SetTheory/Ordinal/Notation.lean Modified Mathlib/Testing/SlimCheck/Functions.lean Modified Mathlib/Topology/AlexandrovDiscrete.lean Modified Mathlib/Topology/Baire/CompleteMetrizable.lean Modified Mathlib/Topology/Category/CompHaus/Basic.lean Modified Mathlib/Topology/Constructions.lean Modified Mathlib/Topology/ContinuousFunction/Ideals.lean Modified Mathlib/Topology/ContinuousFunction/StoneWeierstrass.lean Modified Mathlib/Topology/Homotopy/HomotopyGroup.lean +/- theorem HomotopyGroup.inv_spec Modified Mathlib/Topology/Instances/RatLemmas.lean Modified Mathlib/Topology/MetricSpace/Closeds.lean Modified Mathlib/Topology/MetricSpace/Contracting.lean Modified Mathlib/Topology/MetricSpace/GromovHausdorff.lean Modified Mathlib/Topology/MetricSpace/HausdorffDistance.lean Modified Mathlib/Topology/Order/LawsonTopology.lean Modified Mathlib/Topology/Sheaves/SheafCondition/EqualizerProducts.lean Modified Mathlib/Topology/UniformSpace/Basic.lean Modified Mathlib/Topology/VectorBundle/Basic.lean Modified Mathlib/Topology/VectorBundle/Hom.lean 2024-05-13 14:15:41 a5eb48c fix: remove consecutive backticks (#12866) Fixes a formatting issue in the output of `move-decls`. As reported in #12829. On that PR, the new script reports *** * `+` Additive.instDecidablePredEven * `--` [DecidablePred * `-` even_abs * `+` isSquare_mabs * `+` Multiplicative.instDecidablePredIsSquare ESTIMATED CHANGES Modified scripts/no_lost_declarations.sh 2024-05-13 14:15:40 5625805 chore: speed up a proof of Baire (#12842) See the [Zulip discussion](https://leanprover.zulipchat.com/#narrow/stream/270676-lean4/topic/trace.2Eprofiler.2Eoutput/near/438027363). ESTIMATED CHANGES Modified Mathlib/Topology/Baire/LocallyCompactRegular.lean 2024-05-13 13:38:41 cd37814 feat: define `MeasureTheory.OuterMeasureClass` (#12855) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/MeasureTheory/Measure/MeasureSpaceDef.lean Modified Mathlib/MeasureTheory/OuterMeasure/Basic.lean - theorem MeasureTheory.OuterMeasure.measureOf_eq_coe - structure MeasureTheory.OuterMeasure Added Mathlib/MeasureTheory/OuterMeasure/Defs.lean + theorem MeasureTheory.OuterMeasure.measureOf_eq_coe + structure MeasureTheory.OuterMeasure 2024-05-13 12:50:53 7131ad0 refactor: generalize `SpectrumRestricts` to the `QuasispectrumRestricts`, preserving API (#12643) ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/Quasispectrum.lean + theorem QuasispectrumRestricts.algebraMap_image + theorem QuasispectrumRestricts.apply_mem + theorem QuasispectrumRestricts.image + theorem QuasispectrumRestricts.of_quasispectrum_eq + theorem QuasispectrumRestricts.of_subset_range_algebraMap + theorem QuasispectrumRestricts.subset_preimage + structure QuasispectrumRestricts + theorem SpectrumRestricts.algebraMap_image + theorem SpectrumRestricts.apply_mem + theorem SpectrumRestricts.image + theorem SpectrumRestricts.of_rightInvOn + theorem SpectrumRestricts.of_spectrum_eq + theorem SpectrumRestricts.of_subset_range_algebraMap + theorem SpectrumRestricts.rightInvOn + theorem SpectrumRestricts.subset_preimage + def SpectrumRestricts + theorem mem_quasispectrum_iff + theorem quasispectrum.algebraMap_mem_iff + theorem quasispectrum.preimage_algebraMap + theorem quasispectrumRestricts_iff + theorem quasispectrumRestricts_iff_spectrumRestricts + theorem quasispectrumRestricts_iff_spectrumRestricts_inr + theorem spectrumRestricts_iff Modified Mathlib/Algebra/Algebra/Spectrum.lean - theorem SpectrumRestricts.algebraMap_image - theorem SpectrumRestricts.apply_mem - theorem SpectrumRestricts.image - theorem SpectrumRestricts.of_spectrum_eq - theorem SpectrumRestricts.of_subset_range_algebraMap - theorem SpectrumRestricts.subset_preimage - structure SpectrumRestricts Modified Mathlib/Analysis/NormedSpace/Spectrum.lean + theorem QuasispectrumRestricts.compactSpace + theorem QuasispectrumRestricts.nnreal_iff + theorem QuasispectrumRestricts.nnreal_of_nonneg + theorem QuasispectrumRestricts.real_iff Modified Mathlib/Analysis/NormedSpace/Star/ContinuousFunctionalCalculus/Instances.lean Modified Mathlib/Analysis/NormedSpace/Star/ContinuousFunctionalCalculus/Restrict.lean +/- theorem SpectrumRestricts.compactSpace +/- def SpectrumRestricts.starAlgHom 2024-05-13 11:45:26 cec3ec0 chore: Delete `Algebra.GroupWithZero.Power` (#12825) After #12736, all lemmas in `Algebra.GroupWithZero.Power` can move to the earlier files where they belong. The changes to their proofs are minimal. It's just a matter of using the new Lean 4 `Nat`- and `Int`-specific lemmas instead of the generic algebraic order ones. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Field/Power.lean Modified Mathlib/Algebra/GroupWithZero/Basic.lean + theorem div_sq_cancel + theorem zero_zpow + theorem zero_zpow_eq + theorem zpow_add' + theorem zpow_add_one₀ + theorem zpow_add₀ + theorem zpow_one_add₀ + theorem zpow_sub_one₀ Modified Mathlib/Algebra/GroupWithZero/Bitwise.lean Modified Mathlib/Algebra/GroupWithZero/Commute.lean + theorem pow_inv_comm₀ Deleted Mathlib/Algebra/GroupWithZero/Power.lean - theorem Commute.self_zpow₀ - theorem Commute.zpow_left₀ - theorem Commute.zpow_right₀ - theorem Commute.zpow_self₀ - theorem Commute.zpow_zpow_self₀ - theorem Commute.zpow_zpow₀ - theorem SemiconjBy.zpow_right₀ - theorem div_sq_cancel - theorem eq_zero_of_zpow_eq_zero - theorem inv_pow_sub_of_lt - theorem inv_pow_sub₀ - theorem pow_inv_comm₀ - theorem pow_sub_of_lt - theorem pow_sub₀ - theorem zero_zpow - theorem zero_zpow_eq - theorem zpow_add' - theorem zpow_add_one₀ - theorem zpow_add₀ - theorem zpow_eq_zero_iff - theorem zpow_ne_zero - theorem zpow_ne_zero_iff - theorem zpow_neg_mul_zpow_self - theorem zpow_one_add₀ - theorem zpow_sub_one₀ - theorem zpow_sub₀ Modified Mathlib/Algebra/GroupWithZero/Semiconj.lean + theorem Commute.self_zpow₀ + theorem Commute.zpow_left₀ + theorem Commute.zpow_right₀ + theorem Commute.zpow_self₀ + theorem Commute.zpow_zpow_self₀ + theorem Commute.zpow_zpow₀ + theorem SemiconjBy.zpow_right₀ Modified Mathlib/Algebra/GroupWithZero/Units/Basic.lean + theorem eq_zero_of_zpow_eq_zero + theorem inv_pow_sub_of_lt + theorem inv_pow_sub₀ + theorem pow_sub_of_lt + theorem pow_sub₀ + theorem zpow_eq_zero_iff + theorem zpow_ne_zero + theorem zpow_ne_zero_iff + theorem zpow_neg_mul_zpow_self + theorem zpow_sub₀ Modified Mathlib/Algebra/Order/Field/Power.lean Modified Mathlib/CategoryTheory/Limits/FilteredColimitCommutesFiniteLimit.lean Modified Mathlib/Data/Int/GCD.lean Modified Mathlib/Data/Rat/Cast/CharZero.lean Modified Mathlib/Data/Rat/Star.lean 2024-05-13 09:51:36 3532a06 chore: further backports from bump/nightly-2024-05-11 (#12861) ESTIMATED CHANGES Modified Mathlib/Computability/Partrec.lean Modified Mathlib/Data/List/Basic.lean Modified Mathlib/Data/Nat/Factors.lean Modified Mathlib/GroupTheory/Coxeter/Length.lean 2024-05-13 09:51:35 d508ba8 chore: Move power lemmas earlier (#12736) Move a bunch of `pow` lemmas from `Algebra.Group.Commute.Defs` and `Algebra.GroupPower.Basic` to `Algebra.Group.Defs` and `Algebra.Group.Basic` with little to no changes to their proofs. ESTIMATED CHANGES Modified Mathlib/Algebra/Divisibility/Basic.lean Modified Mathlib/Algebra/Group/Basic.lean +/- theorem div_div_self' + theorem div_pow + theorem div_zpow + theorem inv_pow + theorem inv_pow_sub + theorem inv_zpow' + theorem inv_zpow + theorem mul_pow + theorem mul_pow_sub_one + theorem mul_self_zpow + theorem mul_zpow + theorem mul_zpow_neg_one + theorem mul_zpow_self + theorem one_div_pow + theorem one_div_zpow + theorem one_zpow + theorem pow_boole + theorem pow_eq_pow_mod + theorem pow_mul_pow_eq_one + theorem pow_mul_pow_sub + theorem pow_sub + theorem pow_sub_mul_pow + theorem pow_sub_one_mul + theorem zpow_add + theorem zpow_add_one + theorem zpow_eq_zpow_emod' + theorem zpow_eq_zpow_emod + theorem zpow_induction_left + theorem zpow_induction_right + theorem zpow_mul' + theorem zpow_mul + theorem zpow_mul_comm + theorem zpow_neg + theorem zpow_one_add + theorem zpow_sub + theorem zpow_sub_one Modified Mathlib/Algebra/Group/Commute/Defs.lean - theorem mul_inv_cancel_comm - theorem mul_inv_cancel_comm_assoc - theorem mul_pow_sub_one - theorem pow_sub_one_mul - theorem pow_succ' Modified Mathlib/Algebra/Group/Defs.lean +/- theorem left_inv_eq_right_inv + theorem mul_inv_cancel_comm + theorem mul_inv_cancel_comm_assoc + theorem one_pow + theorem pow_add + theorem pow_mul' + theorem pow_mul + theorem pow_mul_comm' + theorem pow_mul_comm + theorem pow_one + theorem pow_right_comm + theorem pow_succ' + theorem pow_three' + theorem pow_three + theorem pow_two + theorem zpow_neg_coe_of_pos + theorem zpow_neg_one + theorem zpow_one + theorem zpow_two Modified Mathlib/Algebra/Group/Hom/End.lean Modified Mathlib/Algebra/Group/Hom/Instances.lean Modified Mathlib/Algebra/Group/Pi/Lemmas.lean Modified Mathlib/Algebra/GroupPower/Basic.lean - theorem add_nsmul - theorem div_pow - theorem div_zpow - theorem inv_pow - theorem inv_pow_sub - theorem inv_zpow' - theorem inv_zpow - theorem mul_pow - theorem mul_self_zpow - theorem mul_zpow - theorem mul_zpow_neg_one - theorem mul_zpow_self - theorem nsmul_zero - theorem one_div_pow - theorem one_div_zpow - theorem one_nsmul - theorem one_pow - theorem one_zpow - theorem pow_add - theorem pow_boole - theorem pow_eq_pow_mod - theorem pow_mul' - theorem pow_mul - theorem pow_mul_comm' - theorem pow_mul_comm - theorem pow_mul_pow_eq_one - theorem pow_mul_pow_sub - theorem pow_one - theorem pow_right_comm - theorem pow_sub - theorem pow_sub_mul_pow - theorem pow_three' - theorem pow_three - theorem pow_two - theorem zpow_add - theorem zpow_add_one - theorem zpow_eq_zpow_emod' - theorem zpow_eq_zpow_emod - theorem zpow_induction_left - theorem zpow_induction_right - theorem zpow_mul' - theorem zpow_mul - theorem zpow_mul_comm - theorem zpow_neg - theorem zpow_neg_coe_of_pos - theorem zpow_neg_one - theorem zpow_one - theorem zpow_one_add - theorem zpow_sub - theorem zpow_sub_one - theorem zpow_two Modified Mathlib/Algebra/GroupPower/CovariantClass.lean Modified Mathlib/Algebra/GroupPower/Hom.lean Modified Mathlib/Algebra/Ring/Idempotents.lean Modified Mathlib/CategoryTheory/GradedObject.lean Modified Mathlib/Data/Multiset/Basic.lean 2024-05-13 09:51:34 3844ad7 feat: completion of a nonarchimedean additive group (#12669) We prove that the completion of a nonarchimedean additive group is a nonarchimedean additive group. Detailed comments are included because I could not find a proof in the literature anywhere. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Topology/Algebra/Nonarchimedean/Completion.lean 2024-05-13 08:49:08 b99b683 chore: adapt to multiple goal linter 6 (#12834) Another halfway split of #12381 on the way to #12352. ESTIMATED CHANGES Modified Mathlib/Algebra/BigOperators/Fin.lean Modified Mathlib/CategoryTheory/Category/RelCat.lean Modified Mathlib/Combinatorics/SimpleGraph/Triangle/Removal.lean Modified Mathlib/Data/Rat/Cast/Lemmas.lean Modified Mathlib/GroupTheory/Nilpotent.lean Modified Mathlib/GroupTheory/Perm/Cycle/Factors.lean Modified Mathlib/GroupTheory/Perm/Finite.lean Modified Mathlib/GroupTheory/SpecificGroups/Quaternion.lean Modified Mathlib/GroupTheory/Sylow.lean Modified Mathlib/LinearAlgebra/Dimension/RankNullity.lean Modified Mathlib/LinearAlgebra/Dual.lean Modified Mathlib/LinearAlgebra/LinearPMap.lean Modified Mathlib/LinearAlgebra/Matrix/Charpoly/Coeff.lean Modified Mathlib/LinearAlgebra/QuadraticForm/Complex.lean Modified Mathlib/LinearAlgebra/Reflection.lean Modified Mathlib/MeasureTheory/Constructions/Pi.lean Modified Mathlib/MeasureTheory/Measure/Haar/Basic.lean Modified Mathlib/MeasureTheory/Measure/MeasureSpace.lean Modified Mathlib/MeasureTheory/Measure/Typeclasses.lean Modified Mathlib/MeasureTheory/OuterMeasure/Basic.lean Modified Mathlib/ModelTheory/Skolem.lean Modified Mathlib/NumberTheory/Dioph.lean Modified Mathlib/NumberTheory/LegendreSymbol/Basic.lean Modified Mathlib/NumberTheory/NumberField/Norm.lean Modified Mathlib/NumberTheory/Padics/Hensel.lean Modified Mathlib/NumberTheory/Padics/PadicNumbers.lean Modified Mathlib/NumberTheory/Padics/PadicVal.lean Modified Mathlib/NumberTheory/Padics/RingHoms.lean Modified Mathlib/NumberTheory/RamificationInertia.lean 2024-05-13 07:14:02 89b382e feat: backport adaptations for nightly-2024-05-11 (#12854) In https://github.com/leanprover/lean4/pull/4061, well-founded definitions become irreducible by default, and hence some `rfl` proofs stop working. This pre-emptively backports some of the adaptations from #12853. ESTIMATED CHANGES Modified Mathlib/Data/LazyList/Basic.lean +/- theorem LazyList.mem_nil Modified Mathlib/Data/List/Indexes.lean Modified Mathlib/Data/List/OfFn.lean Modified Mathlib/Data/List/Sym.lean Modified Mathlib/Data/Nat/Bitwise.lean +/- theorem Nat.bitwise_zero_left Modified Mathlib/Data/Nat/Fib/Zeckendorf.lean + theorem List.IsZeckendorfRep_nil +/- theorem Nat.sum_zeckendorf_fib +/- theorem Nat.zeckendorf_succ +/- theorem Nat.zeckendorf_zero Modified Mathlib/Data/Nat/Prime.lean +/- theorem Nat.minFac_one Modified Mathlib/Data/Num/Prime.lean Modified Mathlib/Data/String/Basic.lean Modified Mathlib/Data/Vector/Basic.lean 2024-05-13 07:14:01 2c9afeb chore: Reduce imports to `Data.Fin.Basic` (#12828) By using `Nat` and `Int` specific lemmas, we can reduce the import to `Data.Fin.Basic` to almost nothing. I haven't gone all the way to removing all dependencies because that involves moving declarations around and I would like to keep the diff clean. ESTIMATED CHANGES Modified Mathlib/Algebra/NeZero.lean + theorem Nat.pos_of_neZero Modified Mathlib/Control/Random.lean Modified Mathlib/Data/Fin/Basic.lean +/- theorem Fin.last_pos' +/- def Fin.modNat +/- theorem Fin.one_lt_last Modified Mathlib/Data/Fin/OrderHom.lean Modified Mathlib/Data/Finset/Image.lean Modified Mathlib/Data/Nat/SuccPred.lean 2024-05-13 07:14:00 fe7bf3b Define the cotangent function. (#12758) We define the cotangent function as cos/sin ESTIMATED CHANGES Modified Mathlib/Data/Complex/Exponential.lean + def Complex.cot 2024-05-13 06:20:11 12b9e30 chore: run lean4checker cron on hoskinson (#12859) The job was being cancelled, possibly because it consumes more memory than allowed on a github runner. This PR moves the job to the Hoskinson machines. ESTIMATED CHANGES Modified .github/workflows/lean4checker.yml 2024-05-13 06:20:10 9147b87 chore: use refine instead of refine' (#12851) In three files which are modified in #12834 or #12381: in my opinion, the unprimed version makes these modifications easier to read. ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/Prod.lean Modified Mathlib/MeasureTheory/Measure/Haar/Basic.lean Modified Mathlib/Topology/Compactness/Compact.lean 2024-05-13 06:20:09 aa5da76 feat: add algebra of sets (#12467) Define the notion of algebra of sets and prove basic properties. Define the algebra of set generated by a family and prove basic properties. Prove that the algebra of sets generated by a countable family is countable. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/MeasureTheory/SetAlgebra.lean + theorem MeasureTheory.IsSetAlgebra.biInter_mem + theorem MeasureTheory.IsSetAlgebra.biUnion_mem + theorem MeasureTheory.IsSetAlgebra.diff_mem + theorem MeasureTheory.IsSetAlgebra.generateSetAlgebra_eq + theorem MeasureTheory.IsSetAlgebra.generateSetAlgebra_subset + theorem MeasureTheory.IsSetAlgebra.generateSetAlgebra_subset_self + theorem MeasureTheory.IsSetAlgebra.inter_mem + theorem MeasureTheory.IsSetAlgebra.isSetRing + theorem MeasureTheory.IsSetAlgebra.univ_mem + structure MeasureTheory.IsSetAlgebra + theorem MeasureTheory.countable_generateSetAlgebra + theorem MeasureTheory.generateFrom_generateSetAlgebra_eq + inductive MeasureTheory.generateSetAlgebra + theorem MeasureTheory.generateSetAlgebra_mono + theorem MeasureTheory.isSetAlgebra_generateSetAlgebra + theorem MeasureTheory.mem_generateSetAlgebra_elim + theorem MeasureTheory.self_subset_generateSetAlgebra 2024-05-13 05:55:04 ab1a7fb feat: add `move-decls`-driven action and shorter PR diff (#12844) Adding the label `move-decls` triggers an action that comments on the PR a guess of which declarations have been added/removed in the current PR. The expectation is that for a PR that just moves declarations around, the `move-decls`-reported diff will be (ideally) empty. In practice, since the script is text-based, this may not be the case, but it should still help focus the effort of the reviewers. As an example, you can see what the script would report for the current PR that fakes a modification of two declarations. Finally, you can run this locally using ```bash ./scripts/no_lost_declarations.sh short ``` ESTIMATED CHANGES Added .github/workflows/move_decl.yaml Modified scripts/no_lost_declarations.sh 2024-05-13 02:40:38 494bef5 feat: add count_heartbeats! command, and tactic mode count_heartbeats (#9733) Per discussion on [zulip](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/noisy.20.60FilteredColimitCommutesFiniteLimit.60/near/412771369). Example usage: ``` count_heartbeats! in def f := 37 ``` displays the info message `Min: 7 Max: 8 StdDev: 14%`. There is also a `count_heartbeats simp` tactic combinator, and `count_heartbeats! simp` that runs 10 times and prints the range and stddev. ESTIMATED CHANGES Modified Mathlib/Util/CountHeartbeats.lean + def Mathlib.CountHeartbeats.elabForHeartbeats + def Mathlib.CountHeartbeats.logVariation + def Mathlib.CountHeartbeats.runTacForHeartbeats + def Mathlib.CountHeartbeats.variation 2024-05-12 23:39:32 05ee88b feat: Positivity extension for `NNRat.num`/`NNRat.den` (#12732) From LeanAPAP ESTIMATED CHANGES Modified Mathlib/Tactic/Positivity/Basic.lean + def Mathlib.Meta.Positivity.evalNNRatDen + def Mathlib.Meta.Positivity.evalNNRatNum 2024-05-12 23:01:45 b897a62 chore: remove some stream-of-conciousness syntax for obtain (#12850) Similar to #11045; discovered in #12834. ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Covering/VitaliFamily.lean Modified Mathlib/MeasureTheory/Measure/Typeclasses.lean 2024-05-13 08:35:06+10:00 efb49d2 fix: use the right version of leanchecker (#12831) ESTIMATED CHANGES Modified .github/workflows/lean4checker.yml 2024-05-12 21:05:20 beee06b feat: add `ENNReal.coe_div_le` (#12848) ESTIMATED CHANGES Modified Mathlib/Data/ENNReal/Inv.lean + theorem ENNReal.coe_div_le 2024-05-12 17:59:35 35c76a0 chore(OuterMeasure): golf some proofs (#12826) ESTIMATED CHANGES Modified Mathlib/MeasureTheory/OuterMeasure/Basic.lean +/- theorem MeasureTheory.OuterMeasure.le_trim 2024-05-12 16:16:54 61fdb6c chore(CategoryTheory/Sites): generalise universes for extensive sheaves (#12801) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Sites/Coherent/ExtensiveSheaves.lean +/- theorem CategoryTheory.isSheaf_iff_preservesFiniteProducts Modified Mathlib/CategoryTheory/Sites/EqualizerSheafCondition.lean +/- def CategoryTheory.Equalizer.Presieve.Arrows.FirstObj +/- def CategoryTheory.Equalizer.Presieve.Arrows.SecondObj Modified Mathlib/CategoryTheory/Sites/Preserves.lean Modified Mathlib/Condensed/Explicit.lean 2024-05-12 16:16:53 3fc1e3d refactor(CategoryTheory/Adjunction): make uniqueness of adjoints independent of opposites (#12625) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/CategoryTheory/Adjunction/Opposites.lean - theorem CategoryTheory.Adjunction.homEquiv_leftAdjointUniq_hom_app - theorem CategoryTheory.Adjunction.homEquiv_symm_rightAdjointUniq_hom_app - def CategoryTheory.Adjunction.leftAdjointUniq - theorem CategoryTheory.Adjunction.leftAdjointUniq_hom_app_counit - theorem CategoryTheory.Adjunction.leftAdjointUniq_hom_counit - theorem CategoryTheory.Adjunction.leftAdjointUniq_inv_app - theorem CategoryTheory.Adjunction.leftAdjointUniq_refl - theorem CategoryTheory.Adjunction.leftAdjointUniq_trans - theorem CategoryTheory.Adjunction.leftAdjointUniq_trans_app - def CategoryTheory.Adjunction.rightAdjointUniq - theorem CategoryTheory.Adjunction.rightAdjointUniq_hom_app_counit - theorem CategoryTheory.Adjunction.rightAdjointUniq_hom_counit - theorem CategoryTheory.Adjunction.rightAdjointUniq_inv_app - theorem CategoryTheory.Adjunction.rightAdjointUniq_refl - theorem CategoryTheory.Adjunction.rightAdjointUniq_trans - theorem CategoryTheory.Adjunction.rightAdjointUniq_trans_app - theorem CategoryTheory.Adjunction.unit_leftAdjointUniq_hom - theorem CategoryTheory.Adjunction.unit_leftAdjointUniq_hom_app - theorem CategoryTheory.Adjunction.unit_rightAdjointUniq_hom - theorem CategoryTheory.Adjunction.unit_rightAdjointUniq_hom_app Added Mathlib/CategoryTheory/Adjunction/Unique.lean + theorem CategoryTheory.Adjunction.homEquiv_leftAdjointUniq_hom_app + theorem CategoryTheory.Adjunction.homEquiv_symm_rightAdjointUniq_hom_app + def CategoryTheory.Adjunction.leftAdjointUniq + theorem CategoryTheory.Adjunction.leftAdjointUniq_hom_app_counit + theorem CategoryTheory.Adjunction.leftAdjointUniq_hom_counit + theorem CategoryTheory.Adjunction.leftAdjointUniq_inv_app + theorem CategoryTheory.Adjunction.leftAdjointUniq_refl + theorem CategoryTheory.Adjunction.leftAdjointUniq_trans + theorem CategoryTheory.Adjunction.leftAdjointUniq_trans_app + def CategoryTheory.Adjunction.natIsoEquiv + def CategoryTheory.Adjunction.natTransEquiv + theorem CategoryTheory.Adjunction.natTransEquiv_comp + theorem CategoryTheory.Adjunction.natTransEquiv_comp_symm + theorem CategoryTheory.Adjunction.natTransEquiv_id + theorem CategoryTheory.Adjunction.natTransEquiv_id_symm + def CategoryTheory.Adjunction.rightAdjointUniq + theorem CategoryTheory.Adjunction.rightAdjointUniq_hom_app_counit + theorem CategoryTheory.Adjunction.rightAdjointUniq_hom_counit + theorem CategoryTheory.Adjunction.rightAdjointUniq_inv_app + theorem CategoryTheory.Adjunction.rightAdjointUniq_refl + theorem CategoryTheory.Adjunction.rightAdjointUniq_trans + theorem CategoryTheory.Adjunction.rightAdjointUniq_trans_app + theorem CategoryTheory.Adjunction.unit_leftAdjointUniq_hom + theorem CategoryTheory.Adjunction.unit_leftAdjointUniq_hom_app + theorem CategoryTheory.Adjunction.unit_rightAdjointUniq_hom + theorem CategoryTheory.Adjunction.unit_rightAdjointUniq_hom_app Modified Mathlib/CategoryTheory/Limits/Over.lean Modified Mathlib/CategoryTheory/Limits/Presheaf.lean Modified Mathlib/CategoryTheory/Sites/CoverLifting.lean Modified Mathlib/CategoryTheory/Sites/Sheafification.lean Modified Mathlib/Order/Category/BddLat.lean Modified Mathlib/Topology/Sheaves/Presheaf.lean 2024-05-12 15:50:54 2cff788 chore: remove unnecessary imports (#12833) This removes an import each from two files, as suggested by `shake` in [#12778](https://github.com/leanprover-community/mathlib4/pull/12778). ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Field/Subfield.lean Modified Mathlib/Algebra/Ring/Subring/Order.lean 2024-05-12 15:16:41 3f8be61 chore: change `InnerProductSpace.complexToReal` to a definition (#12840) The instance [docs#InnerProductSpace.complexToReal](https://leanprover-community.github.io/mathlib4_docs/find/?pattern=InnerProductSpace.complexToReal#doc) create some diamond with [docs#PiLp.innerProductSpace](https://leanprover-community.github.io/mathlib4_docs/find/?pattern=PiLp.innerProductSpace#doc), see [Zulip](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/Problem.20with.20.60EuclideanSpace.20.E2.84.82.20.CE.B9.60.20as.20.60InnerProductSpace.20.E2.84.9D.60/near/438183797). This PR changes this instance to a def instead and add the instance ```lean instance : InnerProductSpace ℝ ℂ := innerProductSpace.complexToReal ``` ESTIMATED CHANGES Modified Mathlib/Analysis/InnerProductSpace/Basic.lean + def InnerProductSpace.complexToReal 2024-05-12 12:47:41 26781d5 feat(LightProfinite): `LightProfinite` is precoherent (#11585) This PR gives the characterisation effective epi \iff epi \iff continuous surjection in `LightProfinite`, following the same approach as for `CompHaus`, `Profinite` and `Stonean`. We conclude that `LightProfinite` is preregular and finitary extensive, hence precoherent, allowing the definition of light condensed sets (done in #11586). ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Topology/Category/LightProfinite/EffectiveEpi.lean + def LightProfinite.EffectiveEpi.struct + theorem LightProfinite.effectiveEpi_iff_surjective + theorem LightProfinite.epi_iff_surjective 2024-05-12 07:31:25 1147162 chore: remove unused import (#12830) ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Module/Defs.lean Modified Mathlib/LinearAlgebra/Semisimple.lean Modified Mathlib/RingTheory/PowerSeries/Inverse.lean 2024-05-12 02:17:18 ad584cd feat(Data/Matroid/*): add `Indep` as a structure field to `Matroid`. (#12665) This PR slightly shuffles the design of `Matroid` to improve defeq. Specifically, we add `Indep` as a structure field of `Matroid` together with a rule that `Indep` relates correctly to `Base`, where previously `Matroid.Indep` was defined after the fact. This has the consequence that, when a matroid `M` is built using a user-supplied independence predicate `Indep` (via `IndepMatroid.matroid`) , the terms `M.Indep` and `Indep` are defeq, where previously this needed to be proved by `simp`. This turns a few proofs already appearing in mathlib into `Iff.rfl`, and this same benefit will apply to many future API additions, since the independence predicate is the most common way to construct a matroid in practice. The tradeoff is that independence is no longer definitionally the same as being a subset of a base, but this seems to be worth it; it is simply a matter of using `Indep.exists_base_superset` where needed. The fact that now `Matroid.mk` is a bit 'heavier' than before is almost irrelevant, since matroids are essentially always going to be defined in terms of one of the alternative constructors, which are unchanged. ESTIMATED CHANGES Modified Mathlib/Data/Matroid/Basic.lean +/- def Matroid.Basis' +/- def Matroid.Basis +/- def Matroid.Dep +/- theorem Matroid.Indep.subset - def Matroid.Indep + theorem Matroid.indep_iff - theorem Matroid.indep_iff_subset_base +/- theorem Matroid.setOf_indep_eq Modified Mathlib/Data/Matroid/Dual.lean +/- theorem Matroid.dual_indep_iff_exists' Modified Mathlib/Data/Matroid/IndepAxioms.lean Modified Mathlib/Data/Matroid/Restrict.lean +/- theorem Matroid.restrict_indep_iff 2024-05-11 20:48:43 3502115 chore: Fix `Decidable` instance for `LT` on `Rat` (#12827) The default instance was conflicting with the existing one. Same for `DecidableEq`. Reported on [Zulip](https://leanprover.zulipchat.com/#narrow/stream/113489-new-members/topic/Conflicting.20decidableLT.20instances). ESTIMATED CHANGES Modified Mathlib/Data/Rat/Order.lean 2024-05-11 18:18:28 f851598 refactor: nicer well-founded function definitions (#12628) by preferring `decreasing_by` over inline proofs, the resulting equational theorems are nicer. Also we can use functional induction in one case rather nicely. ESTIMATED CHANGES Modified Mathlib/Data/Int/GCD.lean - theorem Nat.xgcdAux_succ - theorem Nat.xgcdAux_zero Modified Mathlib/Data/List/Basic.lean Modified Mathlib/Data/Nat/MaxPowDiv.lean - theorem Nat.maxPowDiv.go_eq Modified Mathlib/NumberTheory/Padics/PadicVal.lean 2024-05-11 18:18:27 c212f77 feat: lemmas relating Finset.univ and List.get (#11704) We add sufficient lemmas for the simplifier to prove `∀ (l : List α), Finset.univ.val.map l.get = ↑l`, as well as the easier to apply phrasing `∀ (l : List α), Finset.univ.val.map (f <| l.get ·) = ↑(l.map f)`. We then add lemmas stating the corollaries for functions out of `Finset` which are built out of `Multiset.map`, such as `Finset.image` and `Finset.prod`. ESTIMATED CHANGES Modified Mathlib/Algebra/BigOperators/Fin.lean + theorem Fin.prod_univ_get' + theorem Fin.prod_univ_get +/- theorem List.prod_ofFn Modified Mathlib/Data/Fintype/Basic.lean + theorem Fin.univ_image_def + theorem Fin.univ_image_get' + theorem Fin.univ_image_get + theorem Fin.univ_map_def + theorem Fin.univ_val_map Modified Mathlib/Data/List/OfFn.lean + theorem List.ofFn_get_eq_map 2024-05-11 18:18:26 0e70892 feat: length, reduced words in Coxeter groups (#11465) Add new file `GroupTheory/Coxeter/Length.lean`. Define the length function and reduced words of Coxeter groups. Prove their basic properties. I decided to split #11408 (now closed) into two pull requests. This is the first one. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/GroupTheory/Coxeter/Basic.lean + def CoxeterSystem.alternatingWord + theorem CoxeterSystem.alternatingWord_succ' + theorem CoxeterSystem.alternatingWord_succ + theorem CoxeterSystem.length_alternatingWord + theorem CoxeterSystem.prod_alternatingWord_eq_mul_pow + theorem CoxeterSystem.prod_alternatingWord_eq_prod_alternatingWord_sub + theorem CoxeterSystem.wordProd_braidWord_eq Added Mathlib/GroupTheory/Coxeter/Length.lean + def CoxeterSystem.IsLeftDescent + def CoxeterSystem.IsReduced + def CoxeterSystem.IsRightDescent + theorem CoxeterSystem.exists_leftDescent_of_ne_one + theorem CoxeterSystem.exists_reduced_word' + theorem CoxeterSystem.exists_reduced_word + theorem CoxeterSystem.exists_rightDescent_of_ne_one + theorem CoxeterSystem.isLeftDescent_iff + theorem CoxeterSystem.isLeftDescent_iff_not_isLeftDescent_mul + theorem CoxeterSystem.isLeftDescent_inv_iff + theorem CoxeterSystem.isReduced_drop + theorem CoxeterSystem.isReduced_reverse + theorem CoxeterSystem.isReduced_take + theorem CoxeterSystem.isRightDescent_iff + theorem CoxeterSystem.isRightDescent_iff_not_isRightDescent_mul + theorem CoxeterSystem.isRightDescent_inv_iff + def CoxeterSystem.lengthParity + theorem CoxeterSystem.lengthParity_comp_simple + theorem CoxeterSystem.lengthParity_eq_ofAdd_length + theorem CoxeterSystem.lengthParity_simple + theorem CoxeterSystem.length_eq_one_iff + theorem CoxeterSystem.length_eq_zero_iff + theorem CoxeterSystem.length_inv + theorem CoxeterSystem.length_mul_ge_length_sub_length' + theorem CoxeterSystem.length_mul_ge_length_sub_length + theorem CoxeterSystem.length_mul_ge_max + theorem CoxeterSystem.length_mul_le + theorem CoxeterSystem.length_mul_mod_two + theorem CoxeterSystem.length_mul_simple + theorem CoxeterSystem.length_mul_simple_ne + theorem CoxeterSystem.length_one + theorem CoxeterSystem.length_simple + theorem CoxeterSystem.length_simple_mul + theorem CoxeterSystem.length_simple_mul_ne + theorem CoxeterSystem.length_wordProd_le + theorem CoxeterSystem.not_isLeftDescent_iff + theorem CoxeterSystem.not_isLeftDescent_one + theorem CoxeterSystem.not_isReduced_alternatingWord + theorem CoxeterSystem.not_isRightDescent_iff + theorem CoxeterSystem.not_isRightDescent_one Modified docs/references.bib 2024-05-11 17:10:54 a89745a chore: remove bad simp lemmas (#12500) Not sure why these were marked as `nolint simpNF` when the simpNF linter complained, rather than removing `@[simp]`! ESTIMATED CHANGES Modified Mathlib/RepresentationTheory/Rep.lean Modified Mathlib/RingTheory/Valuation/ValuationSubring.lean 2024-05-11 17:10:53 30b6990 chore: fix or update three porting notes referring to old nightlies (#12409) These nightlies have since been released. ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Monoid/OrderDual.lean Modified Mathlib/AlgebraicTopology/DoldKan/HomotopyEquivalence.lean Modified Mathlib/Data/Prod/Lex.lean 2024-05-11 17:10:52 83018cf chore: Move UFD instance for `Nat` (#12401) This reduces the imports to `RingTheory.Int.Basic`. Maybe those instances could go to a new file `RingTheory.UniqueFactorizationDomain.Nat` to avoid having to import `Data.Nat.Factors` in `RingTheory.UniqueFactorizationDomain`, but also that new import is much more lightweight than the existing ones. ESTIMATED CHANGES Modified Mathlib/Data/Nat/Factorization/Basic.lean Modified Mathlib/Data/Nat/Squarefree.lean Modified Mathlib/Data/ZMod/Coprime.lean Modified Mathlib/GroupTheory/Nilpotent.lean Modified Mathlib/NumberTheory/FLT/Basic.lean Modified Mathlib/NumberTheory/Zsqrtd/Basic.lean Modified Mathlib/RingTheory/Int/Basic.lean - theorem Nat.factors_eq - theorem Nat.factors_multiset_prod_of_irreducible - theorem induction_on_primes Modified Mathlib/RingTheory/UniqueFactorizationDomain.lean + theorem Nat.factors_eq + theorem Nat.factors_multiset_prod_of_irreducible + theorem induction_on_primes 2024-05-11 16:45:08 c3245d5 feat(CategoryTheory/Abelian): "three" lemmas (#12649) In this PR, we deduce "three" lemmas that are consequences of "four lemmas" (which are also related to the five lemma). For example, if an exact sequence `X ⟶ Y ⟶ Z` maps to another `X' ⟶ Y' ⟶ Z'` in such a way that `Y ⟶ Z` is epi, `X ⟶ X'` is epi, `Y ⟶ Y'` is mono, then `Z ⟶ Z'` is mono (this is `mono_of_epi_of_epi_of_mono`). ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Abelian/DiagramLemmas/Four.lean + theorem CategoryTheory.Abelian.epi_of_epi_of_epi_of_epi + theorem CategoryTheory.Abelian.epi_of_mono_of_epi_of_mono' + theorem CategoryTheory.Abelian.epi_of_mono_of_epi_of_mono + theorem CategoryTheory.Abelian.mono_of_epi_of_epi_mono' + theorem CategoryTheory.Abelian.mono_of_epi_of_epi_of_mono + theorem CategoryTheory.Abelian.mono_of_mono_of_mono_of_mono 2024-05-11 15:34:30 4dffa6d feat: every s-finite measure is absolutely continuous w.r.t. some finite measure (#12759) Also prove that every s-finite measure is the sum of a sigma-finite measure and a measure that takes only the values 0 and infinity. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/MeasureTheory/Measure/MeasureSpace.lean + theorem MeasureTheory.Measure.sum_zero Modified Mathlib/MeasureTheory/Measure/Typeclasses.lean + theorem MeasureTheory.sFiniteSeq_zero Added Mathlib/MeasureTheory/Measure/WithDensityFinite.lean + def MeasureTheory.Measure.densityToFinite + def MeasureTheory.Measure.sigmaFiniteSet + theorem MeasureTheory.absolutelyContinuous_toFinite + theorem MeasureTheory.densityToFinite_ae_lt_top + theorem MeasureTheory.densityToFinite_ae_ne_top + theorem MeasureTheory.densityToFinite_def + theorem MeasureTheory.measurableSet_sigmaFiniteSet + theorem MeasureTheory.measurable_densityToFinite + theorem MeasureTheory.measure_compl_sigmaFiniteSet + theorem MeasureTheory.measure_compl_sigmaFiniteSet_eq_zero_iff_sigmaFinite + theorem MeasureTheory.measure_eq_zero_or_top_of_subset_compl_sigmaFiniteSet + theorem MeasureTheory.restrict_compl_sigmaFiniteSet + theorem MeasureTheory.restrict_compl_sigmaFiniteSet_eq_zero_or_top + theorem MeasureTheory.sFiniteSeq_absolutelyContinuous_toFinite + theorem MeasureTheory.sFiniteSeq_absolutelyContinuous_toFiniteAux + theorem MeasureTheory.sigmaFinite_of_measure_compl_sigmaFiniteSet_eq_zero + theorem MeasureTheory.toFiniteAux_absolutelyContinuous_toFinite + theorem MeasureTheory.toFiniteAux_apply + theorem MeasureTheory.toFiniteAux_eq_zero_iff + theorem MeasureTheory.toFiniteAux_univ_le_one + theorem MeasureTheory.toFiniteAux_zero + theorem MeasureTheory.toFinite_absolutelyContinuous + theorem MeasureTheory.toFinite_apply + theorem MeasureTheory.toFinite_eq_zero_iff + theorem MeasureTheory.toFinite_withDensity_restrict_sigmaFiniteSet + theorem MeasureTheory.toFinite_zero + theorem MeasureTheory.withDensity_densitytoFinite Modified Mathlib/Probability/ConditionalProbability.lean + theorem ProbabilityTheory.absolutelyContinuous_cond_univ 2024-05-11 15:08:29 311c57e feat(Analysis/Complex/UpperHalfPlane/Topology): Add lemma (#12602) Add a lemma about containment of verticalStrips in each other needed for #12456 ESTIMATED CHANGES Modified Mathlib/Analysis/Complex/UpperHalfPlane/Topology.lean + theorem UpperHalfPlane.verticalStrip_anti_right + theorem UpperHalfPlane.verticalStrip_mono + theorem UpperHalfPlane.verticalStrip_mono_left 2024-05-11 14:01:49 82af17d chore: uncdot various files (#12422) These `·` are scoping when there is a single active goal. These were found using a modification of the linter at https://github.com/leanprover-community/mathlib4/pull/12339. ESTIMATED CHANGES Modified Mathlib/Combinatorics/SimpleGraph/LapMatrix.lean Modified Mathlib/Computability/AkraBazzi/GrowsPolynomially.lean Modified Mathlib/Data/Complex/Exponential.lean Modified Mathlib/Data/Finsupp/Multiset.lean Modified Mathlib/Data/Nat/Totient.lean Modified Mathlib/FieldTheory/ChevalleyWarning.lean Modified Mathlib/FieldTheory/Finite/Basic.lean Modified Mathlib/FieldTheory/IsAlgClosed/AlgebraicClosure.lean Modified Mathlib/FieldTheory/IsAlgClosed/Basic.lean Modified Mathlib/FieldTheory/IsAlgClosed/Spectrum.lean Modified Mathlib/FieldTheory/RatFunc.lean Modified Mathlib/Geometry/Euclidean/Sphere/Power.lean Modified Mathlib/Geometry/Manifold/Instances/Sphere.lean Modified Mathlib/Geometry/Manifold/MFDeriv/SpecificFunctions.lean Modified Mathlib/Geometry/RingedSpace/OpenImmersion.lean Modified Mathlib/GroupTheory/HNNExtension.lean Modified Mathlib/GroupTheory/Perm/Cycle/Basic.lean Modified Mathlib/GroupTheory/Perm/Cycle/Concrete.lean Modified Mathlib/GroupTheory/SchurZassenhaus.lean Modified Mathlib/GroupTheory/SpecificGroups/Dihedral.lean Modified Mathlib/LinearAlgebra/AnnihilatingPolynomial.lean Modified Mathlib/LinearAlgebra/Eigenspace/Triangularizable.lean Modified Mathlib/LinearAlgebra/FiniteDimensional.lean Modified Mathlib/LinearAlgebra/Finsupp.lean Modified Mathlib/LinearAlgebra/Lagrange.lean Modified Mathlib/LinearAlgebra/LinearIndependent.lean Modified Mathlib/LinearAlgebra/QuadraticForm/Basic.lean Modified Mathlib/LinearAlgebra/StdBasis.lean Modified Mathlib/MeasureTheory/Constructions/BorelSpace/Basic.lean Modified Mathlib/MeasureTheory/Constructions/Prod/Basic.lean Modified Mathlib/MeasureTheory/Decomposition/Lebesgue.lean Modified Mathlib/MeasureTheory/Decomposition/SignedLebesgue.lean Modified Mathlib/MeasureTheory/Function/UniformIntegrable.lean Modified Mathlib/MeasureTheory/Integral/Average.lean Modified Mathlib/MeasureTheory/Integral/BoundedContinuousFunction.lean Modified Mathlib/MeasureTheory/Integral/Lebesgue.lean Modified Mathlib/MeasureTheory/Measure/Haar/Basic.lean Modified Mathlib/MeasureTheory/Measure/Haar/Quotient.lean Modified Mathlib/MeasureTheory/Measure/HasOuterApproxClosed.lean Modified Mathlib/MeasureTheory/Measure/LevyProkhorovMetric.lean Modified Mathlib/ModelTheory/ElementaryMaps.lean Modified Mathlib/ModelTheory/Encoding.lean Modified Mathlib/ModelTheory/Satisfiability.lean Modified Mathlib/ModelTheory/Substructures.lean Modified Mathlib/NumberTheory/ClassNumber/Finite.lean Modified Mathlib/NumberTheory/Cyclotomic/Basic.lean Modified Mathlib/NumberTheory/Cyclotomic/PrimitiveRoots.lean Modified Mathlib/NumberTheory/KummerDedekind.lean Modified Mathlib/NumberTheory/LSeries/MellinEqDirichlet.lean Modified Mathlib/NumberTheory/Liouville/LiouvilleWith.lean Modified Mathlib/NumberTheory/Modular.lean Modified Mathlib/NumberTheory/Multiplicity.lean Modified Mathlib/NumberTheory/NumberField/Embeddings.lean Modified Mathlib/NumberTheory/Padics/PadicNumbers.lean Modified Mathlib/NumberTheory/RamificationInertia.lean Modified Mathlib/Probability/Distributions/Exponential.lean Modified Mathlib/Probability/Independence/Conditional.lean Modified Mathlib/Probability/Kernel/Disintegration/CdfToKernel.lean Modified Mathlib/Probability/Martingale/Basic.lean Modified Mathlib/Probability/Martingale/Convergence.lean Modified Mathlib/Probability/Martingale/Upcrossing.lean Modified Mathlib/RepresentationTheory/GroupCohomology/Resolution.lean Modified Mathlib/RepresentationTheory/Rep.lean Modified Mathlib/RingTheory/AdicCompletion/Basic.lean Modified Mathlib/RingTheory/Adjoin/PowerBasis.lean Modified Mathlib/RingTheory/DedekindDomain/Ideal.lean Modified Mathlib/RingTheory/Finiteness.lean Modified Mathlib/RingTheory/GradedAlgebra/Basic.lean Modified Mathlib/RingTheory/HahnSeries/Summable.lean Modified Mathlib/RingTheory/Ideal/MinimalPrime.lean Modified Mathlib/RingTheory/Ideal/Operations.lean Modified Mathlib/RingTheory/IntegrallyClosed.lean Modified Mathlib/RingTheory/IsAdjoinRoot.lean Modified Mathlib/RingTheory/Jacobson.lean Modified Mathlib/RingTheory/Localization/FractionRing.lean Modified Mathlib/RingTheory/MvPowerSeries/Basic.lean Modified Mathlib/RingTheory/Norm.lean Modified Mathlib/RingTheory/Polynomial/Cyclotomic/Expand.lean Modified Mathlib/RingTheory/Polynomial/Dickson.lean Modified Mathlib/RingTheory/Polynomial/GaussLemma.lean Modified Mathlib/RingTheory/Polynomial/Vieta.lean Modified Mathlib/RingTheory/PowerSeries/Order.lean Modified Mathlib/RingTheory/RootsOfUnity/Basic.lean Modified Mathlib/RingTheory/RootsOfUnity/Minpoly.lean Modified Mathlib/RingTheory/Trace.lean Modified Mathlib/RingTheory/UniqueFactorizationDomain.lean Modified Mathlib/RingTheory/Valuation/ValuationSubring.lean Modified Mathlib/SetTheory/Cardinal/Cofinality.lean Modified Mathlib/SetTheory/Surreal/Dyadic.lean Modified Mathlib/Tactic/NormNum/LegendreSymbol.lean Modified Mathlib/Topology/Algebra/UniformField.lean Modified Mathlib/Topology/Connected/PathConnected.lean Modified Mathlib/Topology/ContinuousFunction/StoneWeierstrass.lean Modified Mathlib/Topology/MetricSpace/Completion.lean Modified Mathlib/Topology/MetricSpace/HausdorffDistance.lean Modified Mathlib/Topology/Sheaves/LocalPredicate.lean Modified Mathlib/Topology/Sheaves/SheafCondition/PairwiseIntersections.lean Modified Mathlib/Topology/Sheaves/Sheafify.lean Modified Mathlib/Topology/TietzeExtension.lean 2024-05-11 08:45:19 01f894d chore: split `RingTheory.Ideal.Operations` (#12777) Split the file `RingTheory.Ideal.Operations` into two parts by putting everything related to maps into a new file called... `RingTheory.Ideal.Maps`. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Algebra/Spectrum.lean Modified Mathlib/Algebra/Algebra/Subalgebra/Operations.lean Modified Mathlib/Algebra/CharP/Quotient.lean Modified Mathlib/Algebra/DirectLimit.lean Modified Mathlib/Algebra/Polynomial/Div.lean Modified Mathlib/RingTheory/Finiteness.lean Modified Mathlib/RingTheory/GradedAlgebra/HomogeneousIdeal.lean Added Mathlib/RingTheory/Ideal/Maps.lean + theorem AlgHom.coe_ideal_map + theorem AlgHom.coe_ker + theorem Ideal.IsRadical.comap + theorem Ideal.RingEquiv.bot_maximal_iff + theorem Ideal.apply_coe_mem_map + theorem Ideal.coe_comap + theorem Ideal.coe_restrictScalars + def Ideal.comap + theorem Ideal.comap_bot_le_of_injective + theorem Ideal.comap_bot_of_injective + theorem Ideal.comap_comap + theorem Ideal.comap_eq_top_iff + theorem Ideal.comap_iInf + theorem Ideal.comap_id + theorem Ideal.comap_inf + theorem Ideal.comap_injective_of_surjective + theorem Ideal.comap_isMaximal_of_surjective + theorem Ideal.comap_isPrime + theorem Ideal.comap_le_comap_iff_of_surjective + theorem Ideal.comap_le_iff_le_map + theorem Ideal.comap_le_map_of_inv_on + theorem Ideal.comap_le_map_of_inverse + theorem Ideal.comap_map_comap + theorem Ideal.comap_map_of_surjective + theorem Ideal.comap_mono + theorem Ideal.comap_ne_top + theorem Ideal.comap_of_equiv + theorem Ideal.comap_radical + theorem Ideal.comap_sInf' + theorem Ideal.comap_sInf + theorem Ideal.comap_symm + theorem Ideal.comap_top + theorem Ideal.gc_map_comap + def Ideal.giMapComap + theorem Ideal.ker_le_comap + theorem Ideal.le_comap_map + theorem Ideal.le_comap_mul + theorem Ideal.le_comap_of_map_le + theorem Ideal.le_comap_pow + theorem Ideal.le_comap_sup + theorem Ideal.le_map_of_comap_le_of_surjective + theorem Ideal.map.isMaximal + def Ideal.map + def Ideal.mapHom + theorem Ideal.map_bot + theorem Ideal.map_comap_le + theorem Ideal.map_comap_map + theorem Ideal.map_comap_of_equiv + theorem Ideal.map_comap_of_surjective + theorem Ideal.map_eq_bot_iff_le_ker + theorem Ideal.map_eq_bot_iff_of_injective + theorem Ideal.map_eq_iff_sup_ker_eq_of_surjective + theorem Ideal.map_eq_submodule_map + theorem Ideal.map_eq_top_or_isMaximal_of_surjective + theorem Ideal.map_iInf_comap_of_surjective + theorem Ideal.map_iSup + theorem Ideal.map_iSup_comap_of_surjective + theorem Ideal.map_id + theorem Ideal.map_inf_comap_of_surjective + theorem Ideal.map_inf_le + theorem Ideal.map_isPrime_of_equiv + theorem Ideal.map_isPrime_of_surjective + theorem Ideal.map_le_comap_of_inv_on + theorem Ideal.map_le_comap_of_inverse + theorem Ideal.map_le_iff_le_comap + theorem Ideal.map_le_of_le_comap + theorem Ideal.map_map + theorem Ideal.map_mono + theorem Ideal.map_mul + theorem Ideal.map_of_equiv + theorem Ideal.map_radical_le + theorem Ideal.map_radical_of_surjective + theorem Ideal.map_sInf + theorem Ideal.map_sSup + theorem Ideal.map_span + theorem Ideal.map_sup + theorem Ideal.map_sup_comap_of_surjective + theorem Ideal.map_surjective_of_surjective + theorem Ideal.map_symm + theorem Ideal.map_top + theorem Ideal.mem_comap + theorem Ideal.mem_image_of_mem_map_of_surjective + theorem Ideal.mem_map_iff_of_surjective + theorem Ideal.mem_map_of_mem + def Ideal.orderEmbeddingOfSurjective + def Ideal.relIsoOfBijective + def Ideal.relIsoOfSurjective + theorem Ideal.restrictScalars_mul + theorem Ideal.smul_top_eq_map + theorem Pi.ker_ringHom + theorem RingHom.comap_ker + theorem RingHom.eq_liftOfRightInverse + theorem RingHom.injective_iff_ker_eq_bot + def RingHom.ker + theorem RingHom.ker_coe_equiv + theorem RingHom.ker_eq + theorem RingHom.ker_eq_bot_iff_eq_zero + theorem RingHom.ker_eq_comap_bot + theorem RingHom.ker_equiv + theorem RingHom.ker_isMaximal_of_surjective + theorem RingHom.ker_isPrime + theorem RingHom.ker_ne_top + theorem RingHom.ker_rangeRestrict + theorem RingHom.ker_rangeSRestrict + def RingHom.liftOfRightInverse + def RingHom.liftOfRightInverseAux + theorem RingHom.liftOfRightInverseAux_comp_apply + theorem RingHom.liftOfRightInverse_comp + theorem RingHom.liftOfRightInverse_comp_apply + theorem RingHom.mem_ker + theorem RingHom.not_one_mem_ker + theorem RingHom.sub_mem_ker_iff Modified Mathlib/RingTheory/Ideal/Operations.lean - theorem AlgHom.coe_ideal_map - theorem AlgHom.coe_ker - theorem Ideal.IsRadical.comap - theorem Ideal.RingEquiv.bot_maximal_iff - theorem Ideal.apply_coe_mem_map - theorem Ideal.coe_comap - theorem Ideal.coe_restrictScalars - def Ideal.comap - theorem Ideal.comap_bot_le_of_injective - theorem Ideal.comap_bot_of_injective - theorem Ideal.comap_comap - theorem Ideal.comap_eq_top_iff - theorem Ideal.comap_iInf - theorem Ideal.comap_id - theorem Ideal.comap_inf - theorem Ideal.comap_injective_of_surjective - theorem Ideal.comap_isMaximal_of_surjective - theorem Ideal.comap_isPrime - theorem Ideal.comap_le_comap_iff_of_surjective - theorem Ideal.comap_le_iff_le_map - theorem Ideal.comap_le_map_of_inv_on - theorem Ideal.comap_le_map_of_inverse - theorem Ideal.comap_map_comap - theorem Ideal.comap_map_of_surjective - theorem Ideal.comap_mono - theorem Ideal.comap_ne_top - theorem Ideal.comap_of_equiv - theorem Ideal.comap_radical - theorem Ideal.comap_sInf' - theorem Ideal.comap_sInf - theorem Ideal.comap_symm - theorem Ideal.comap_top - theorem Ideal.gc_map_comap - def Ideal.giMapComap - theorem Ideal.ker_le_comap - theorem Ideal.le_comap_map - theorem Ideal.le_comap_mul - theorem Ideal.le_comap_of_map_le - theorem Ideal.le_comap_pow - theorem Ideal.le_comap_sup - theorem Ideal.le_map_of_comap_le_of_surjective - theorem Ideal.map.isMaximal - def Ideal.map - def Ideal.mapHom - theorem Ideal.map_bot - theorem Ideal.map_comap_le - theorem Ideal.map_comap_map - theorem Ideal.map_comap_of_equiv - theorem Ideal.map_comap_of_surjective - theorem Ideal.map_eq_bot_iff_le_ker - theorem Ideal.map_eq_bot_iff_of_injective - theorem Ideal.map_eq_iff_sup_ker_eq_of_surjective - theorem Ideal.map_eq_submodule_map - theorem Ideal.map_eq_top_or_isMaximal_of_surjective - theorem Ideal.map_iInf_comap_of_surjective - theorem Ideal.map_iSup - theorem Ideal.map_iSup_comap_of_surjective - theorem Ideal.map_id - theorem Ideal.map_inf_comap_of_surjective - theorem Ideal.map_inf_le - theorem Ideal.map_isPrime_of_equiv - theorem Ideal.map_isPrime_of_surjective - theorem Ideal.map_le_comap_of_inv_on - theorem Ideal.map_le_comap_of_inverse - theorem Ideal.map_le_iff_le_comap - theorem Ideal.map_le_of_le_comap - theorem Ideal.map_map - theorem Ideal.map_mono - theorem Ideal.map_mul - theorem Ideal.map_of_equiv - theorem Ideal.map_radical_le - theorem Ideal.map_radical_of_surjective - theorem Ideal.map_sInf - theorem Ideal.map_sSup - theorem Ideal.map_span - theorem Ideal.map_sup - theorem Ideal.map_sup_comap_of_surjective - theorem Ideal.map_surjective_of_surjective - theorem Ideal.map_symm - theorem Ideal.map_top - theorem Ideal.mem_comap - theorem Ideal.mem_image_of_mem_map_of_surjective - theorem Ideal.mem_map_iff_of_surjective - theorem Ideal.mem_map_of_mem - def Ideal.orderEmbeddingOfSurjective - def Ideal.relIsoOfBijective - def Ideal.relIsoOfSurjective - theorem Ideal.restrictScalars_mul - theorem Ideal.smul_top_eq_map - theorem Pi.ker_ringHom - theorem RingHom.comap_ker - theorem RingHom.eq_liftOfRightInverse - theorem RingHom.injective_iff_ker_eq_bot - def RingHom.ker - theorem RingHom.ker_coe_equiv - theorem RingHom.ker_eq - theorem RingHom.ker_eq_bot_iff_eq_zero - theorem RingHom.ker_eq_comap_bot - theorem RingHom.ker_equiv - theorem RingHom.ker_isMaximal_of_surjective - theorem RingHom.ker_isPrime - theorem RingHom.ker_ne_top - theorem RingHom.ker_rangeRestrict - theorem RingHom.ker_rangeSRestrict - def RingHom.liftOfRightInverse - def RingHom.liftOfRightInverseAux - theorem RingHom.liftOfRightInverseAux_comp_apply - theorem RingHom.liftOfRightInverse_comp - theorem RingHom.liftOfRightInverse_comp_apply - theorem RingHom.mem_ker - theorem RingHom.not_one_mem_ker - theorem RingHom.sub_mem_ker_iff Modified Mathlib/RingTheory/Ideal/Prod.lean Modified Mathlib/RingTheory/Nilpotent/Lemmas.lean Modified Mathlib/RingTheory/PowerSeries/Basic.lean Modified Mathlib/RingTheory/Valuation/Basic.lean Modified Mathlib/Topology/Algebra/Nonarchimedean/AdicTopology.lean Modified scripts/style-exceptions.txt 2024-05-11 08:45:18 771c538 CI: add a step producing a "reduced diff" (#12515) Add an extra CI step whose purpose is to produce a summary of declarations that have been added, removed or simply moved around unchanged. This can help review "moving" PRs, whose sole purpose is to move code around. The script is text-based, so that it can run right away and does not have to wait for the output of `lake build`. As a consequence, it is easy to fool, but also gives out answers quickly! ESTIMATED CHANGES Modified .github/workflows/bors.yml Modified .github/workflows/build.yml Modified .github/workflows/build.yml.in Modified .github/workflows/build_fork.yml Added scripts/no_lost_declarations.sh 2024-05-11 07:39:53 d8189c0 chore: two dots to cdots (#12808) Replace two `.` with `·`. Found by the linter at #12143. ESTIMATED CHANGES Modified Mathlib/Algebra/DualNumber.lean Modified Mathlib/Data/Complex/Basic.lean 2024-05-11 07:39:52 3be9527 chore(WittVector.Isocrystal): remove helper local instance (#12789) `WittVector.FractionRing.module` is `Semiring.toModule` under the hood. We seem fine without it now. ESTIMATED CHANGES Modified Mathlib/RingTheory/WittVector/Isocrystal.lean - def WittVector.FractionRing.module 2024-05-11 07:39:51 d98446e chore: shake shake (#12787) A small trimming of `noshake.json`: some files no longer exist, others are simply no longer imported. ESTIMATED CHANGES Modified scripts/noshake.json 2024-05-11 07:39:50 2f71a14 chore: adapt to multiple goal linter 5 (#12560) Splits off the alphabetically first half of #12381 in a separate PR to help reviewing. ESTIMATED CHANGES Modified Mathlib/Algebra/Category/GroupCat/Colimits.lean Modified Mathlib/Algebra/Homology/Exact.lean Modified Mathlib/Algebra/Homology/LocalCohomology.lean Modified Mathlib/Algebra/Lie/Nilpotent.lean Modified Mathlib/Algebra/Module/PID.lean Modified Mathlib/Algebra/Module/Torsion.lean Modified Mathlib/Algebra/Order/Archimedean.lean Modified Mathlib/AlgebraicGeometry/StructureSheaf.lean Modified Mathlib/Analysis/Analytic/Composition.lean Modified Mathlib/Analysis/Calculus/Deriv/Slope.lean Modified Mathlib/Analysis/Calculus/InverseFunctionTheorem/ApproximatesLinearOn.lean Modified Mathlib/Analysis/Calculus/LocalExtr/Basic.lean Modified Mathlib/Analysis/Calculus/TangentCone.lean Modified Mathlib/Analysis/InnerProductSpace/Basic.lean Modified Mathlib/Analysis/InnerProductSpace/Projection.lean Modified Mathlib/Analysis/MeanInequalitiesPow.lean Modified Mathlib/Analysis/Normed/Group/ControlledClosure.lean Modified Mathlib/Analysis/Normed/Group/Pointwise.lean Modified Mathlib/Analysis/NormedSpace/FiniteDimension.lean Modified Mathlib/Analysis/NormedSpace/HahnBanach/Separation.lean Modified Mathlib/Analysis/NormedSpace/Multilinear/Basic.lean Modified Mathlib/Analysis/NormedSpace/Star/Basic.lean Modified Mathlib/Analysis/NormedSpace/Star/Multiplier.lean Modified Mathlib/Analysis/NormedSpace/lpSpace.lean Modified Mathlib/Analysis/PSeries.lean Modified Mathlib/Analysis/RCLike/Basic.lean Modified Mathlib/Analysis/SpecialFunctions/Complex/Arg.lean Modified Mathlib/Analysis/SpecialFunctions/Log/Base.lean Modified Mathlib/Analysis/SpecialFunctions/Log/Monotone.lean Modified Mathlib/Analysis/SpecialFunctions/Pow/NNReal.lean Modified Mathlib/Analysis/SpecialFunctions/Pow/Real.lean Modified Mathlib/Analysis/SpecificLimits/Normed.lean Modified Mathlib/CategoryTheory/Abelian/Basic.lean Modified Mathlib/CategoryTheory/Action.lean Modified Mathlib/CategoryTheory/Bicategory/NaturalTransformation.lean Modified Mathlib/CategoryTheory/Category/Cat/Limit.lean Modified Mathlib/CategoryTheory/Category/PartialFun.lean Modified Mathlib/CategoryTheory/Category/RelCat.lean Modified Mathlib/CategoryTheory/Category/TwoP.lean Modified Mathlib/CategoryTheory/Closed/Cartesian.lean Modified Mathlib/CategoryTheory/Functor/Flat.lean Modified Mathlib/CategoryTheory/Galois/GaloisObjects.lean Modified Mathlib/CategoryTheory/Limits/Over.lean Modified Mathlib/CategoryTheory/Limits/VanKampen.lean Modified Mathlib/CategoryTheory/Localization/Predicate.lean Modified Mathlib/CategoryTheory/Monad/Coequalizer.lean Modified Mathlib/CategoryTheory/Pi/Basic.lean Modified Mathlib/CategoryTheory/Sites/DenseSubsite.lean Modified Mathlib/CategoryTheory/Sites/InducedTopology.lean Modified Mathlib/CategoryTheory/Subobject/Lattice.lean Modified Mathlib/Combinatorics/Additive/PluenneckeRuzsa.lean Modified Mathlib/Combinatorics/HalesJewett.lean Modified Mathlib/Combinatorics/SimpleGraph/Regularity/Chunk.lean Modified Mathlib/Computability/Reduce.lean Modified Mathlib/Data/Holor.lean Modified Mathlib/Data/Nat/Multiplicity.lean Modified Mathlib/Data/Rat/Defs.lean Modified Mathlib/Data/Real/Cardinality.lean Modified Mathlib/Data/Real/Hyperreal.lean Modified Mathlib/Data/Real/Irrational.lean Modified Mathlib/Data/Set/Card.lean Modified Mathlib/Dynamics/Circle/RotationNumber/TranslationNumber.lean Modified Mathlib/FieldTheory/Finite/Polynomial.lean Modified Mathlib/FieldTheory/Minpoly/IsIntegrallyClosed.lean Modified Mathlib/FieldTheory/PerfectClosure.lean Modified Mathlib/FieldTheory/RatFunc.lean Modified Mathlib/Geometry/RingedSpace/OpenImmersion.lean Modified Mathlib/Geometry/RingedSpace/PresheafedSpace/Gluing.lean Modified Mathlib/GroupTheory/GroupAction/Quotient.lean 2024-05-11 07:39:48 1506303 chore: uncdot up to and including `CategoryTheory` (#12521) A portion of #12422 containing all the changes in `Mathlib/[A-C]` up to and including `CategoryTheory`. ESTIMATED CHANGES Modified Mathlib/Algebra/DirectLimit.lean Modified Mathlib/Algebra/Homology/HomotopyCategory/Triangulated.lean Modified Mathlib/Algebra/Homology/TotalComplex.lean Modified Mathlib/Algebra/Module/DedekindDomain.lean Modified Mathlib/Algebra/Order/CompleteField.lean Modified Mathlib/Algebra/Polynomial/Degree/Definitions.lean Modified Mathlib/Algebra/Polynomial/PartialFractions.lean Modified Mathlib/AlgebraicGeometry/EllipticCurve/Affine.lean Modified Mathlib/AlgebraicGeometry/Morphisms/Basic.lean Modified Mathlib/AlgebraicGeometry/Morphisms/QuasiSeparated.lean Modified Mathlib/AlgebraicGeometry/ProjectiveSpectrum/Scheme.lean Modified Mathlib/AlgebraicTopology/SplitSimplicialObject.lean Modified Mathlib/Analysis/Analytic/Composition.lean Modified Mathlib/Analysis/Analytic/IsolatedZeros.lean Modified Mathlib/Analysis/Complex/AbsMax.lean Modified Mathlib/Analysis/Convex/Independent.lean Modified Mathlib/Analysis/Convolution.lean Modified Mathlib/Analysis/InnerProductSpace/PiL2.lean Modified Mathlib/Analysis/InnerProductSpace/Projection.lean Modified Mathlib/Analysis/InnerProductSpace/Symmetric.lean Modified Mathlib/Analysis/NormedSpace/HahnBanach/Extension.lean Modified Mathlib/Analysis/NormedSpace/MStructure.lean Modified Mathlib/Analysis/NormedSpace/PiLp.lean Modified Mathlib/Analysis/NormedSpace/Spectrum.lean Modified Mathlib/Analysis/NormedSpace/Star/Spectrum.lean Modified Mathlib/Analysis/NormedSpace/TrivSqZeroExt.lean Modified Mathlib/Analysis/PSeries.lean Modified Mathlib/Analysis/SpecialFunctions/Complex/Log.lean Modified Mathlib/Analysis/SpecialFunctions/Gamma/Beta.lean Modified Mathlib/Analysis/SpecialFunctions/Integrals.lean Modified Mathlib/Analysis/SpecialFunctions/Log/Deriv.lean Modified Mathlib/CategoryTheory/Adhesive.lean Modified Mathlib/CategoryTheory/Adjunction/Lifting.lean Modified Mathlib/CategoryTheory/Limits/Constructions/Over/Basic.lean Modified Mathlib/CategoryTheory/Limits/Shapes/KernelPair.lean Modified Mathlib/CategoryTheory/Localization/Pi.lean Modified Mathlib/CategoryTheory/Preadditive/InjectiveResolution.lean Modified Mathlib/CategoryTheory/Preadditive/ProjectiveResolution.lean Modified Mathlib/CategoryTheory/Sites/Closed.lean Modified Mathlib/CategoryTheory/Sites/Subsheaf.lean Modified Mathlib/CategoryTheory/Triangulated/Triangulated.lean 2024-05-11 07:39:47 b691d61 feat: the homological functor on the homotopy category of cochain complexes in an abelian category (#11760) In this PR, it is shown that the homology functors on the homotopy category of cochain complexes in an abelian category are homological functors (in the sense that they send distinguished triangles to exact sequences). This PR also shows that the category of homological complexes in an abelian category is an abelian category. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Homology/HomologicalComplex.lean + theorem HomologicalComplex.epi_of_epi_f + theorem HomologicalComplex.mono_of_mono_f Added Mathlib/Algebra/Homology/HomologicalComplexAbelian.lean + theorem HomologicalComplex.exact_iff_degreewise_exact + theorem HomologicalComplex.exact_of_degreewise_exact + theorem HomologicalComplex.shortExact_iff_degreewise_shortExact + theorem HomologicalComplex.shortExact_of_degreewise_shortExact Added Mathlib/Algebra/Homology/HomotopyCategory/HomologicalFunctor.lean Modified Mathlib/CategoryTheory/Abelian/Basic.lean 2024-05-11 07:15:09 3d41375 fix: remove MathlibExtras in lean4checker.yml (#12812) ESTIMATED CHANGES Modified .github/workflows/lean4checker.yml 2024-05-11 02:49:06 3ca63d3 chore: remove a save (#12805) ESTIMATED CHANGES Modified Mathlib/Combinatorics/SimpleGraph/Triangle/Basic.lean 2024-05-11 02:49:05 1405014 refactor(Mathlib/Algebra/Algebra/NonUnitalHom): reorder `notation`s to prevent `A →ₙₐ[R] B` being delaborated as `A →ₛₙₐ[MonoidHom.id R] B` (#12762) ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/NonUnitalHom.lean 2024-05-11 02:49:04 b6363b1 docs: fix some docs (#12760) ESTIMATED CHANGES Modified Mathlib/Algebra/AddConstMap/Basic.lean Modified Mathlib/Algebra/Algebra/Equiv.lean Modified Mathlib/Algebra/Algebra/NonUnitalHom.lean Modified Mathlib/Algebra/Algebra/Prod.lean +/- def AlgHom.prodEquiv Modified Mathlib/Algebra/Algebra/Subalgebra/Unitization.lean 2024-05-11 02:49:02 5c686d0 chore(Mathlib/Tactic/Clear!): rename `Clear!.lean` to `ClearExclamation.lean` to avoid the illegal character `!` (#12757) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Mathport/Syntax.lean Modified Mathlib/Tactic.lean Renamed Mathlib/Tactic/Clear!.lean to Mathlib/Tactic/ClearExclamation.lean Modified Mathlib/Tactic/Common.lean Modified Mathlib/Tactic/NormNum/Basic.lean Modified scripts/noshake.json Modified test/Clear!.lean 2024-05-11 02:00:28 4eb366e chore(Algebra/CharP/Basic): Split (#12710) `Algebra.CharP.Basic` currently depends on 935 files. This is unacceptably large for such a basic plain algebra file. This PR moves everything that doesn't depend on `Finset` (a seemingly good cut-off point) to a new file `Algebra.CharP.Defs` ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/CharP/Algebra.lean Modified Mathlib/Algebra/CharP/Basic.lean - theorem CharP.CharOne.subsingleton - theorem CharP.cast_eq_mod - theorem CharP.cast_eq_zero - theorem CharP.cast_eq_zero_iff - theorem CharP.charP_iff_prime_eq_zero - theorem CharP.charP_to_charZero - theorem CharP.charP_zero_iff_charZero - theorem CharP.char_is_prime_of_pos - theorem CharP.char_is_prime_of_two_le - theorem CharP.char_is_prime_or_zero - theorem CharP.char_ne_one - theorem CharP.congr - theorem CharP.eq - theorem CharP.exists' - theorem CharP.exists - theorem CharP.exists_unique - theorem CharP.false_of_nontrivial_of_char_one - theorem CharP.intCast_eq_intCast - theorem CharP.intCast_eq_intCast_mod - theorem CharP.intCast_eq_zero_iff - theorem CharP.natCast_eq_natCast' - theorem CharP.natCast_eq_natCast - theorem CharP.natCast_eq_natCast_mod - theorem CharP.natCast_injOn_Iio - theorem CharP.neg_one_ne_one - theorem CharP.nontrivial_of_char_ne_one - theorem CharP.ofNat_eq_zero - theorem CharP.ringChar_ne_one - theorem CharP.ringChar_of_prime_eq_zero - theorem CharP.ringChar_zero_iff_CharZero - theorem CharZero.charZero_iff_forall_prime_ne_zero - theorem Int.cast_injOn_of_ringChar_ne_two - theorem NeZero.not_char_dvd - theorem NeZero.of_not_dvd - theorem Ring.eq_self_iff_eq_zero_of_char_ne_two - theorem Ring.neg_one_ne_one_of_char_ne_two - theorem RingHom.charP_iff_charP - theorem ringChar.Nat.cast_ringChar - theorem ringChar.dvd - theorem ringChar.eq - theorem ringChar.eq_iff - theorem ringChar.eq_zero - theorem ringChar.of_eq - theorem ringChar.spec Added Mathlib/Algebra/CharP/Defs.lean + theorem CharP.CharOne.subsingleton + theorem CharP.cast_eq_mod + theorem CharP.cast_eq_zero + theorem CharP.cast_eq_zero_iff + theorem CharP.charP_iff_prime_eq_zero + theorem CharP.charP_to_charZero + theorem CharP.charP_zero_iff_charZero + theorem CharP.char_is_prime_of_pos + theorem CharP.char_is_prime_of_two_le + theorem CharP.char_is_prime_or_zero + theorem CharP.char_ne_one + theorem CharP.congr + theorem CharP.eq + theorem CharP.exists' + theorem CharP.exists_unique + theorem CharP.false_of_nontrivial_of_char_one + theorem CharP.intCast_eq_intCast + theorem CharP.intCast_eq_intCast_mod + theorem CharP.intCast_eq_zero_iff + theorem CharP.natCast_eq_natCast' + theorem CharP.natCast_eq_natCast + theorem CharP.natCast_eq_natCast_mod + theorem CharP.natCast_injOn_Iio + theorem CharP.neg_one_ne_one + theorem CharP.nontrivial_of_char_ne_one + theorem CharP.ofNat_eq_zero + theorem CharP.ringChar_ne_one + theorem CharP.ringChar_of_prime_eq_zero + theorem CharP.ringChar_zero_iff_CharZero + theorem CharP.«exists» + theorem CharZero.charZero_iff_forall_prime_ne_zero + theorem Int.cast_injOn_of_ringChar_ne_two + theorem NeZero.not_char_dvd + theorem NeZero.of_not_dvd + theorem Ring.eq_self_iff_eq_zero_of_char_ne_two + theorem Ring.neg_one_ne_one_of_char_ne_two + theorem RingHom.charP_iff_charP + theorem ringChar.Nat.cast_ringChar + theorem ringChar.dvd + theorem ringChar.eq + theorem ringChar.eq_iff + theorem ringChar.eq_zero + theorem ringChar.of_eq + theorem ringChar.spec Modified Mathlib/Algebra/CharP/Invertible.lean Modified Mathlib/Algebra/CharP/Pi.lean Modified Mathlib/Algebra/CharP/Subring.lean Modified Mathlib/Data/Matrix/CharP.lean Modified Mathlib/ModelTheory/Algebra/Field/CharP.lean Modified Mathlib/RingTheory/MvPolynomial/Basic.lean Modified Mathlib/RingTheory/PowerSeries/Order.lean 2024-05-10 20:21:43 21349de feat: comonoid objects are monoid objects in the opposite category (#10094) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Monoidal/Comon_.lean + def Comon_.Comon_equiv_Mon_op_op + def Comon_.Comon_to_Mon_op_op + def Comon_.Comon_to_Mon_op_op_obj + def Comon_.Mon_op_op_to_Comon + def Comon_.Mon_op_op_to_Comon_obj Modified Mathlib/CategoryTheory/Monoidal/Opposite.lean + theorem CategoryTheory.op_tensor_op + theorem CategoryTheory.unop_tensor_unop 2024-05-10 18:58:22 929223a chore: delete detect_sha_changes (#12784) With the port over, these are long obsolete, yet still generating confusing annotations, per https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/GitHub.20Actions.20complaints/near/437801745 The changes to github-script version were forced on me by actionlint, but as far as I can tell are not related? ESTIMATED CHANGES Deleted .github/workflows/detect_sha_changes.yml Modified .github/workflows/label_new_contributor.yml Modified .github/workflows/nightly_detect_failure.yml Deleted scripts/detect_sha_changes.py 2024-05-10 18:58:21 3c5cd33 chore: add CI job to run lean4checker periodically (#12004) I propose we turn this on, and see if it works. Once it does, we then remove the lean4checker step from regular CI. ESTIMATED CHANGES Added .github/workflows/lean4checker.yml 2024-05-10 17:03:04 c052670 feat(Topology/Instances/NNReal): add tendsto_of_antitone (#12430) ESTIMATED CHANGES Modified Mathlib/Data/Real/Archimedean.lean + theorem Real.exists_isGLB +/- theorem Real.exists_isLUB Modified Mathlib/MeasureTheory/Integral/Lebesgue.lean Modified Mathlib/Topology/Instances/NNReal.lean + theorem NNReal.tendsto_of_antitone + theorem Real.tendsto_of_bddAbove_monotone + theorem Real.tendsto_of_bddBelow_antitone 2024-05-10 15:40:43 c49b5e1 feat: add `Equiv.prodSubtypeFstEquivSubtypeProd` (#12802) See [Zulip](https://leanprover.zulipchat.com/#narrow/stream/217875-Is-there-code-for-X.3F/topic/A.20basic.20equivalence/near/437968727) ESTIMATED CHANGES Modified Mathlib/Logic/Equiv/Basic.lean + def Equiv.prodSubtypeFstEquivSubtypeProd 2024-05-10 15:11:54 6edd89b refactor(Measure): replace `trimmed` with `trim_le` (#12794) This follows the design pattern "request a seemingly weaker assumption in the definition, prove a seemingly stronger condition in a theorem". ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Measure/MeasureSpace.lean Modified Mathlib/MeasureTheory/Measure/MeasureSpaceDef.lean + theorem MeasureTheory.Measure.trimmed Modified Mathlib/MeasureTheory/Measure/NullMeasurable.lean Modified Mathlib/MeasureTheory/Measure/Stieltjes.lean 2024-05-10 14:23:45 8ee805f chore: simplify proof of eqOn_right_half_plane_of_superexponential_decay (#12715) Replaces 10 lines of proof with an instantiation of `isBigO_sub_exp_rpow`. On my machine, this speeds up time reported by `set_option trace.profiler true` on this lemma from 0.6 seconds to 0.15 seconds This simplification was found by [tryAtEachStep](https://github.com/dwrensha/tryAtEachStep). ESTIMATED CHANGES Modified Mathlib/Analysis/Complex/PhragmenLindelof.lean 2024-05-10 13:44:46 aa3ac33 chore(MeasureTheory): golf (#11077) Also, these `simp` calls are better compatible with a future refactor using `FunLike` for measures. ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Decomposition/Jordan.lean Modified Mathlib/MeasureTheory/Measure/Dirac.lean Modified Mathlib/MeasureTheory/Measure/MeasureSpace.lean Modified Mathlib/Probability/ConditionalProbability.lean 2024-05-10 13:12:29 fdad317 chore(CategoryTheory/Sites): generalise universes and assumptions in `CoverLifting` file (#12798) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Sites/Coherent/SheafComparison.lean +/- def CategoryTheory.coherentTopology.equivalence' +/- def CategoryTheory.coherentTopology.equivalence +/- def CategoryTheory.regularTopology.equivalence Modified Mathlib/CategoryTheory/Sites/CoverLifting.lean Modified Mathlib/CategoryTheory/Sites/DenseSubsite.lean Modified Mathlib/Condensed/Equivalence.lean +/- def Condensed.ProfiniteCompHaus.equivalence +/- def Condensed.StoneanCompHaus.equivalence +/- def Condensed.StoneanProfinite.equivalence +/- theorem Condensed.isSheafProfinite +/- theorem Condensed.isSheafStonean Modified Mathlib/Condensed/Explicit.lean 2024-05-10 12:00:05 8d93a53 chore: compatibility with Lean incrementality branch (#12796) Backward-compatible fixes for leanprover/lean4#3940. In particular, gets rid of two `open private` (out of six in all of Mathlib) which in my opinion really were not necessary and just invited breakage. Somehow the unused variables and unnecessary `have` linters became *more* complete, which might be due to earlier mvar instantiation in `Elab.MutualDef` but I haven't investigated deeply. ESTIMATED CHANGES Modified Mathlib/Algebra/CharZero/Lemmas.lean +/- theorem RingHom.charZero Modified Mathlib/LinearAlgebra/Semisimple.lean Modified Mathlib/Tactic/Cases.lean Modified Mathlib/Tactic/Recall.lean Modified Mathlib/Tactic/Says.lean 2024-05-10 11:12:32 0b119dd chore(CategoryTheory): fix hasFiniteLimits_of_hasLimitsOfSize (#12797) Given a category `C`, `hasFiniteLimits_of_hasLimitsOfSize` (and the dual statement for colimits) involves two universes `u'` and `v'` which may be unrelated to the two universes `u` and `v` involved in the category `C : Type u` (and `[Category.{v} C]`). For general universes, it is made a lemma instead of an instance. It is made an instance only in the `_hasLimits` case (which corresponds to `u'=v'=v`) and the `u'=v'=0` case. This fixes the behavior observed in https://leanprover.zulipchat.com/#narrow/stream/113489-new-members/topic/invalid.20occurrence.20of.20universe.20level.20'u_1'/near/437497392 ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Limits/Constructions/LimitsOfProductsAndEqualizers.lean Modified Mathlib/CategoryTheory/Limits/Shapes/FiniteLimits.lean + theorem CategoryTheory.Limits.hasFiniteColimits_of_hasColimitsOfSize + theorem CategoryTheory.Limits.hasFiniteLimits_of_hasLimitsOfSize 2024-05-10 10:23:26 812bdcf feat: nth Prime 0 = 2 (#12708) See https://leanprover.zulipchat.com/#narrow/stream/217875-Is-there-code-for-X.3F/topic/2.20is.20the.20first.20prime Needed as induction start for a formal BOOK proof. ESTIMATED CHANGES Modified Mathlib/NumberTheory/PrimeCounting.lean + theorem Nat.zeroth_prime_eq_two 2024-05-10 09:44:59 3f9d081 chore: change the definition of `unitLatticeEquiv` to term mode (#12795) See [Zulip](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/tactics.20in.20construction.20of.20.60unitLatticeEquiv.60/near/437929609) ESTIMATED CHANGES Modified Mathlib/NumberTheory/NumberField/Units/DirichletTheorem.lean +/- def NumberField.Units.dirichletUnitTheorem.unitLatticeEquiv 2024-05-10 07:11:56 d4e8dd2 chore: update dependencies (#12792) ESTIMATED CHANGES Modified Mathlib/Data/List/OfFn.lean + theorem List.get_ofFn_go + theorem List.length_ofFn_go Modified Mathlib/LinearAlgebra/ExteriorAlgebra/Basic.lean Modified lake-manifest.json 2024-05-10 00:50:04 daade17 chore: turn off acceptSuggestionOnEnter (#12749) See discussion at https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/propose.20removing.20module.20docstring.20code.20suggestion/near/437558661 ESTIMATED CHANGES Modified .vscode/settings.json 2024-05-09 23:19:41 18a35eb chore(Order.RelIso): remove some porting notes (#12786) We get the `CoeFun` through `FunLike` which seems the current idiom. The changes are reducibly defeq to the porting remnants. ESTIMATED CHANGES Modified Mathlib/Order/Birkhoff.lean Modified Mathlib/Order/RelIso/Basic.lean 2024-05-09 22:39:39 f993b41 feat(Tactic/Linarith): Simplex Algorithm oracle (#12014) - Reduce the `linarith` certificate search problem to some Linear Programming problem and implement the Simplex Algorithm to solve it. - Set the default oracle for `linarith` to this. - Remove unnecessary hypotheses in `Mathlib/Analysis/Calculus/BumpFunction/FiniteDimension.lean` and `Mathlib/Analysis/Distribution/SchwartzSpace.lean` which were needed with the Fourier-Motzkin oracle. - Adjust the definition of `CerficateOracle` to enable dot notation to choose between oracles. This addresses #2717 and #8875 (except when the user overrides the oracle) Also, this oracle is far more efficient: The example below takes lots of time with the Fourier-Motzkin oracle: I waited 5 minutes and still didn't get it. But with the just implemented `Linarith.SimplexAlgo.produceCertificate` oracle the proof succeeds in less than a second. ```lean import Mathlib.Tactic.Linarith example (x0 x1 x2 x3 x4 : ℚ) : 3 * x0 - 15 * x1 - 30 * x2 + 20 * x3 + 12 * x4 ≤ 0 → 35 * x0 - 30 * x1 + 12 * x2 - 15 * x3 + 18 * x4 ≤ 0 → 5 * x0 + 20 * x1 + 24 * x2 + 20 * x3 + 9 * x4 ≤ 0 → -2 * x0 - 30 * x1 + 30 * x2 - 10 * x3 - 12 * x4 ≤ 0 → -4 * x0 - 25 * x1 + 6 * x2 - 20 * x3 ≤ 0 → 25 * x1 + 30 * x2 - 25 * x3 + 12 * x4 ≤ 0 → 10 * x1 - 18 * x2 - 30 * x3 + 18 * x4 ≤ 0 → 4 * x0 + 10 * x1 - 18 * x2 - 15 * x3 + 15 * x4 ≤ 0 → -4 * x0 + 15 * x1 - 30 * x2 + 15 * x3 + 6 * x4 ≤ 0 → -2 * x0 - 5 * x1 + 18 * x2 - 25 * x3 - 161 * x4 ≤ 0 → -6 * x0 + 30 * x1 + 6 * x2 - 15 * x3 ≤ 0 → 3 * x0 + 10 * x1 - 30 * x2 + 25 * x3 + 12 * x4 ≤ 0 → 2 * x0 + 10 * x1 - 24 * x2 - 15 * x3 + 3 * x4 ≤ 0 → 82 * x1 + 36 * x2 + 20 * x3 + 9 * x4 ≤ 0 → 2 * x0 - 30 * x1 - 30 * x2 - 15 * x3 + 6 * x4 ≤ 0 → 4 * x0 - 15 * x1 + 25 * x2 < 0 → -4 * x0 - 10 * x1 + 30 * x2 - 15 * x3 ≤ 0 → 2 * x0 + 6 * x2 + 133 * x3 + 12 * x4 ≤ 0 → 3 * x0 + 15 * x1 - 6 * x2 - 15 * x3 - 15 * x4 ≤ 0 → 10 * x1 + 6 * x2 - 25 * x3 + 3 * x4 ≤ 0 → -2 * x0 + 5 * x1 + 12 * x2 - 20 * x3 + 12 * x4 ≤ 0 → -5 * x0 - 25 * x1 + 30 * x3 - 12 * x4 ≤ 0 → -6 * x0 - 30 * x1 - 36 * x2 + 20 * x3 + 12 * x4 ≤ 0 → 5 * x0 - 5 * x1 + 6 * x2 - 25 * x3 ≤ 0 → -3 * x0 - 20 * x1 - 30 * x2 + 5 * x3 + 3 * x4 ≤ 0 → False := by intros; linarith (config := {oracle := Linarith.FourierMotzkin.produceCertificate}) ``` I am planning to prove the "completeness" of the oracle in the next PRs, but so far I have run a stress test on randomly generated examples of various sizes, and it seems that everything is OK. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Analysis/Calculus/BumpFunction/FiniteDimension.lean Modified Mathlib/Analysis/Distribution/SchwartzSpace.lean Modified Mathlib/Tactic.lean Modified Mathlib/Tactic/Linarith/Datatypes.lean + structure Linarith.CertificateOracle - def Linarith.CertificateOracle Renamed Mathlib/Tactic/Linarith/Elimination.lean to Mathlib/Tactic/Linarith/Oracle/FourierMotzkin.lean + def Linarith.CertificateOracle.fourierMotzkin - def Linarith.FourierMotzkin.produceCertificate Added Mathlib/Tactic/Linarith/Oracle/SimplexAlgorithm.lean + def Linarith.SimplexAlgorithm.CertificateOracle.simplexAlgorithm + def Linarith.SimplexAlgorithm.postprocess + def Linarith.SimplexAlgorithm.preprocess Added Mathlib/Tactic/Linarith/SimplexAlgorithm/Datatypes.lean + structure Linarith.SimplexAlgorithm.Matrix + structure Linarith.SimplexAlgorithm.Table Added Mathlib/Tactic/Linarith/SimplexAlgorithm/Gauss.lean + def Linarith.SimplexAlgorithm.Gauss.divideRow + def Linarith.SimplexAlgorithm.Gauss.findNonzeroRow + def Linarith.SimplexAlgorithm.Gauss.getTable + def Linarith.SimplexAlgorithm.Gauss.getTableImp + def Linarith.SimplexAlgorithm.Gauss.subtractRow + def Linarith.SimplexAlgorithm.Gauss.swapRows Added Mathlib/Tactic/Linarith/SimplexAlgorithm/PositiveVector.lean + def Linarith.SimplexAlgorithm.extractSolution + def Linarith.SimplexAlgorithm.findPositiveVector + def Linarith.SimplexAlgorithm.stateLP Added Mathlib/Tactic/Linarith/SimplexAlgorithm/SimplexAlgorithm.lean + inductive Linarith.SimplexAlgorithm.SimplexAlgorithmException + structure Linarith.SimplexAlgorithm.SimplexAlgorithmState + def Linarith.SimplexAlgorithm.checkSuccess + def Linarith.SimplexAlgorithm.chooseEnteringVar + def Linarith.SimplexAlgorithm.chooseExitingVar + def Linarith.SimplexAlgorithm.choosePivots + def Linarith.SimplexAlgorithm.doPivotOperation + def Linarith.SimplexAlgorithm.runSimplexAlgorithm + def Linarith.SimplexAlgorithm.runSimplexAlgorithmImp Modified Mathlib/Tactic/Linarith/Verification.lean Modified test/linarith.lean 2024-05-09 17:46:02 f67cc81 doc(Archive/MiuLanguage): fix typo (#12766) ESTIMATED CHANGES Modified Archive/MiuLanguage/DecisionNec.lean 2024-05-09 17:19:43 0411b48 chore: Delete some orphaned porting notes (#10230) Delete some porting notes that are now orphaned. ESTIMATED CHANGES Modified Mathlib/FieldTheory/RatFunc.lean 2024-05-09 16:03:52 fa33d89 feat: basic definition of comonoid objects (#10091) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Monoidal/Comon_.lean + structure Comon_.Hom + def Comon_.comp + theorem Comon_.comp_hom' + theorem Comon_.comul_assoc_flip + theorem Comon_.comul_counit_hom + theorem Comon_.counit_comul_hom + theorem Comon_.ext + def Comon_.forget + def Comon_.id + theorem Comon_.id_hom' + def Comon_.mkIso + def Comon_.trivial + structure Comon_ 2024-05-09 12:14:53 690d741 chore: more deprecations (#12783) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Comma/Basic.lean Modified Mathlib/NumberTheory/Cyclotomic/Discriminant.lean 2024-05-09 11:24:52 fcceeb1 feat: BoundedSub class to generalize subtraction of bounded continuous functions. (#12559) Introduce type class `BoundedSub`, which allows to generalize subtraction of `BoundedContinuousFunction` to the case where the values are not necessarily in `SeminormedAddGroup`. The most important case for measure theory applications that is allowed by the generalization is bounded continuous functions with values in `ℝ≥0`. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Topology/Bornology/BoundedOperation.lean + theorem SeminormedAddCommGroup.lipschitzWith_sub + theorem isBounded_sub + theorem sub_bounded_of_bounded_of_bounded Modified Mathlib/Topology/ContinuousFunction/Bounded.lean +/- theorem BoundedContinuousFunction.sub_apply Modified Mathlib/Topology/MetricSpace/PseudoMetric.lean + theorem NNReal.ball_zero_eq_Ico' + theorem NNReal.ball_zero_eq_Ico + theorem NNReal.closedBall_zero_eq_Icc' + theorem NNReal.closedBall_zero_eq_Icc 2024-05-09 10:48:39 51625e9 refactor(Measure): use FunLike (#12684) ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Constructions/Pi.lean Modified Mathlib/MeasureTheory/Decomposition/Jordan.lean Modified Mathlib/MeasureTheory/Decomposition/Lebesgue.lean Modified Mathlib/MeasureTheory/Group/FundamentalDomain.lean Modified Mathlib/MeasureTheory/Measure/Dirac.lean Modified Mathlib/MeasureTheory/Measure/EverywherePos.lean Modified Mathlib/MeasureTheory/Measure/FiniteMeasure.lean +/- theorem MeasureTheory.FiniteMeasure.coeFn_zero Modified Mathlib/MeasureTheory/Measure/FiniteMeasureProd.lean Modified Mathlib/MeasureTheory/Measure/Haar/Basic.lean Modified Mathlib/MeasureTheory/Measure/Hausdorff.lean Modified Mathlib/MeasureTheory/Measure/Lebesgue/EqHaar.lean Modified Mathlib/MeasureTheory/Measure/MeasureSpace.lean Modified Mathlib/MeasureTheory/Measure/MeasureSpaceDef.lean + theorem MeasureTheory.Measure.coe_toOuterMeasure + theorem MeasureTheory.Measure.toOuterMeasure_apply +/- theorem MeasureTheory.Measure.toOuterMeasure_injective +/- theorem MeasureTheory.measure_eq_trim Modified Mathlib/MeasureTheory/Measure/ProbabilityMeasure.lean Modified Mathlib/MeasureTheory/Measure/Restrict.lean +/- theorem MeasureTheory.Measure.restrict_apply₀ Modified Mathlib/MeasureTheory/Measure/Tilted.lean Modified Mathlib/MeasureTheory/Measure/Trim.lean Modified Mathlib/MeasureTheory/Measure/Typeclasses.lean Modified Mathlib/Probability/ConditionalProbability.lean Modified Mathlib/Probability/Kernel/Composition.lean Modified Mathlib/Probability/Kernel/Disintegration/Density.lean Modified Mathlib/Probability/Kernel/RadonNikodym.lean Modified Mathlib/Probability/Variance.lean 2024-05-09 09:01:36 e50d410 feat(Rat, NNRat): `q * q.den = q.num` (#12739) and a few other lemmas. From LeanAPAP ESTIMATED CHANGES Modified Archive/Imo/Imo2013Q5.lean Modified Mathlib/Data/NNRat/Defs.lean + theorem NNRat.den_mul_eq_num + theorem NNRat.divNat_mul_divNat + theorem NNRat.divNat_mul_left + theorem NNRat.divNat_mul_right + theorem NNRat.divNat_zero + theorem NNRat.mul_den_eq_num + theorem NNRat.natCast_eq_divNat Modified Mathlib/Data/Rat/Defs.lean + theorem Rat.den_mul_eq_num + theorem Rat.mul_den_eq_num Modified Mathlib/Data/Rat/Lemmas.lean - theorem Rat.mul_den_eq_num Modified Mathlib/RingTheory/Localization/FractionRing.lean 2024-05-09 08:07:51 ad9935b chore: fix deprecation warnings (#12775) In preparation for https://github.com/leanprover/lean4/pull/3969 landing, we fix some deprecation warnings. ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/Equiv.lean Modified Mathlib/Algebra/DirectSum/Algebra.lean Modified Mathlib/Algebra/Group/Submonoid/Units.lean Modified Mathlib/Algebra/GroupWithZero/Units/Basic.lean Modified Mathlib/AlgebraicGeometry/Pullbacks.lean Modified Mathlib/AlgebraicTopology/DoldKan/GammaCompN.lean Modified Mathlib/Analysis/Calculus/ContDiff/Basic.lean Modified Mathlib/Analysis/Calculus/ContDiff/Defs.lean Modified Mathlib/Analysis/Calculus/Darboux.lean Modified Mathlib/Analysis/Complex/AbsMax.lean Modified Mathlib/Analysis/Complex/LocallyUniformLimit.lean Modified Mathlib/Analysis/Complex/OpenMapping.lean Modified Mathlib/Analysis/Complex/PhragmenLindelof.lean Modified Mathlib/Analysis/Convex/Gauge.lean Modified Mathlib/Analysis/Convex/KreinMilman.lean Modified Mathlib/Analysis/Convolution.lean Modified Mathlib/Analysis/Distribution/SchwartzSpace.lean Modified Mathlib/Analysis/InnerProductSpace/Rayleigh.lean Modified Mathlib/Analysis/NormedSpace/FiniteDimension.lean Modified Mathlib/Analysis/NormedSpace/HahnBanach/Separation.lean Modified Mathlib/Analysis/NormedSpace/Spectrum.lean Modified Mathlib/Analysis/Seminorm.lean Modified Mathlib/CategoryTheory/Comma/StructuredArrow.lean Modified Mathlib/CategoryTheory/Monoidal/Discrete.lean Modified Mathlib/Data/Finset/Sort.lean Modified Mathlib/Data/Finsupp/Basic.lean Modified Mathlib/Data/List/Basic.lean Modified Mathlib/Data/List/DropRight.lean +/- theorem List.dropWhile_eq_self_iff Modified Mathlib/Data/List/Forall2.lean Modified Mathlib/Data/List/Indexes.lean Modified Mathlib/Data/List/Infix.lean Modified Mathlib/Data/List/InsertNth.lean Modified Mathlib/Data/List/NodupEquivFin.lean Modified Mathlib/Data/List/Perm.lean Modified Mathlib/Data/List/Sort.lean Modified Mathlib/Data/List/Zip.lean Modified Mathlib/Data/MLList/BestFirst.lean Modified Mathlib/Data/Nat/Nth.lean Modified Mathlib/Dynamics/Circle/RotationNumber/TranslationNumber.lean Modified Mathlib/GroupTheory/Perm/Cycle/Concrete.lean + theorem Equiv.Perm.get_toList + theorem Equiv.Perm.toList_get_zero Modified Mathlib/GroupTheory/Perm/List.lean Modified Mathlib/MeasureTheory/Function/LpSeminorm/Basic.lean Modified Mathlib/MeasureTheory/Function/StronglyMeasurable/Basic.lean Modified Mathlib/MeasureTheory/Measure/Haar/Basic.lean Modified Mathlib/NumberTheory/LSeries/HurwitzZetaEven.lean Modified Mathlib/NumberTheory/ModularForms/JacobiTheta/OneVariable.lean Modified Mathlib/NumberTheory/NumberField/Basic.lean Modified Mathlib/NumberTheory/ZetaValues.lean Modified Mathlib/Probability/Density.lean Modified Mathlib/RingTheory/FreeCommRing.lean Modified Mathlib/RingTheory/Trace.lean Modified Mathlib/Topology/Algebra/Order/Compact.lean Modified Mathlib/Topology/Algebra/Order/Rolle.lean Modified Mathlib/Topology/ContinuousFunction/Ideals.lean Modified Mathlib/Topology/MetricSpace/GromovHausdorffRealized.lean Modified Mathlib/Topology/MetricSpace/HausdorffDistance.lean Modified Mathlib/Topology/MetricSpace/ProperSpace.lean Modified Mathlib/Topology/ProperMap.lean - theorem IsProperMap.closed_range + theorem IsProperMap.isClosed_range Modified Mathlib/Topology/UniformSpace/Basic.lean 2024-05-09 05:29:02 b72ddd8 feat: backport changes from lean-pr-testing-4096 (#12772) These changes will be required after https://github.com/leanprover/lean4/pull/4096, but they all look like positive readability changes to me anyway (the things being filled in are sort of hard to work out with time travelling to later lines in the proofs!), so I think we can backport them all to `master`. ESTIMATED CHANGES Modified Mathlib/Algebra/Order/CauSeq/Completion.lean Modified Mathlib/Analysis/NormedSpace/OperatorNorm/Prod.lean Modified Mathlib/Analysis/SpecialFunctions/ImproperIntegrals.lean Modified Mathlib/Computability/AkraBazzi/AkraBazzi.lean Modified Mathlib/GroupTheory/Coset.lean Modified Mathlib/LinearAlgebra/Matrix/NonsingularInverse.lean Modified Mathlib/MeasureTheory/Measure/Haar/Unique.lean Modified Mathlib/NumberTheory/Zsqrtd/QuadraticReciprocity.lean Modified Mathlib/Order/PrimeIdeal.lean Modified Mathlib/RingTheory/Polynomial/Eisenstein/Basic.lean Modified Mathlib/Topology/ContinuousFunction/Bounded.lean 2024-05-09 04:14:54 47d4fa9 feat(Algebra/Ring/Ext): prove extensionality lemmas for Ring and similar typeclasses (#9511) Add a file `Algebra/Ring/Ext`, proving `ext` lemmas for all of the ring-like classes (for example, anything from `NonUnitalNonAssocSemiring` to `CommRing`), stating that two instances of such a class are equal if they define the same addition and multiplication operations. Also prove `ext_iff` variants for each class, and injectivity lemmas for projections from classes to parent classes. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Ring/Ext.lean + theorem AddCommGroupWithOne.ext + theorem AddCommMonoidWithOne.ext + theorem AddCommMonoidWithOne.toAddMonoidWithOne_injective + theorem AddGroupWithOne.ext + theorem AddMonoidWithOne.ext + theorem CommRing.ext + theorem CommRing.ext_iff + theorem CommRing.toRing_injective + theorem CommSemiring.ext + theorem CommSemiring.ext_iff + theorem CommSemiring.toSemiring_injective + theorem Distrib.ext + theorem Distrib.ext_iff + theorem NonAssocRing.ext + theorem NonAssocRing.ext_iff + theorem NonAssocRing.toNonAssocSemiring_injective + theorem NonAssocRing.toNonUnitalNonAssocring_injective + theorem NonAssocSemiring.ext + theorem NonAssocSemiring.ext_iff + theorem NonAssocSemiring.toNonUnitalNonAssocSemiring_injective + theorem NonUnitalCommRing.ext + theorem NonUnitalCommRing.ext_iff + theorem NonUnitalCommRing.toNonUnitalRing_injective + theorem NonUnitalCommSemiring.ext + theorem NonUnitalCommSemiring.ext_iff + theorem NonUnitalCommSemiring.toNonUnitalSemiring_injective + theorem NonUnitalNonAssocCommRing.ext + theorem NonUnitalNonAssocCommRing.ext_iff + theorem NonUnitalNonAssocCommRing.toNonUnitalNonAssocRing_injective + theorem NonUnitalNonAssocCommSemiring.ext + theorem NonUnitalNonAssocCommSemiring.ext_iff + theorem NonUnitalNonAssocCommSemiring.toNonUnitalNonAssocSemiring_injective + theorem NonUnitalNonAssocRing.ext + theorem NonUnitalNonAssocRing.ext_iff + theorem NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring_injective + theorem NonUnitalNonAssocSemiring.ext + theorem NonUnitalNonAssocSemiring.ext_iff + theorem NonUnitalNonAssocSemiring.toDistrib_injective + theorem NonUnitalRing.ext + theorem NonUnitalRing.ext_iff + theorem NonUnitalRing.toNonUnitalNonAssocring_injective + theorem NonUnitalRing.toNonUnitalSemiring_injective + theorem NonUnitalSemiring.ext + theorem NonUnitalSemiring.ext_iff + theorem NonUnitalSemiring.toNonUnitalNonAssocSemiring_injective + theorem Ring.ext + theorem Ring.ext_iff + theorem Ring.toNonAssocRing_injective + theorem Ring.toNonUnitalRing_injective + theorem Ring.toSemiring_injective + theorem Semiring.ext + theorem Semiring.ext_iff + theorem Semiring.toNonAssocSemiring_injective + theorem Semiring.toNonUnitalSemiring_injective 2024-05-09 00:52:22 ba7e114 feat(Data/Nat/Digits): `digits_head` and `ofDigits_mod_eq_head` (#11129) ESTIMATED CHANGES Modified Mathlib/Algebra/BigOperators/List/Basic.lean Modified Mathlib/Computability/TMToPartrec.lean Modified Mathlib/Data/List/Basic.lean + theorem List.head!_nil Modified Mathlib/Data/Nat/Defs.lean + theorem Nat.default_eq_zero Modified Mathlib/Data/Nat/Digits.lean + theorem Nat.head!_digits + theorem Nat.ofDigits_mod_eq_head! + theorem Nat.ofDigits_nil 2024-05-08 18:28:53 59b7bc4 refactor(Opposite): `Opposite.mk` -> `Opposite.op` (#12636) It was observed on [Zulip](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/making.20.60op.60.20irreducible) that we should really have `op` as the custom name for the `Opposite` constructor as long as it remains a structure. ESTIMATED CHANGES Modified Mathlib/AlgebraicGeometry/Morphisms/RingHomProperties.lean Modified Mathlib/CategoryTheory/Preadditive/Injective.lean Modified Mathlib/CategoryTheory/Sites/CompatiblePlus.lean Modified Mathlib/Data/Opposite.lean - def Opposite.op Modified Mathlib/Geometry/RingedSpace/OpenImmersion.lean Modified Mathlib/Topology/Sheaves/Skyscraper.lean 2024-05-08 16:11:19 e6ea798 feat: `positivity` extension for `posPart`, `negPart` (#10681) ESTIMATED CHANGES Modified Mathlib/Tactic/Positivity/Basic.lean + def Mathlib.Meta.Positivity.evalNegPart + def Mathlib.Meta.Positivity.evalPosPart Modified scripts/noshake.json Modified test/positivity.lean 2024-05-08 15:35:54 54a54de fix: remove MathlibExtras from mk_all.sh (#12763) This directory was removed in #12548. ESTIMATED CHANGES Modified scripts/mk_all.sh 2024-05-08 15:35:53 9d8f678 feat(Algebra/Category/ModuleCat): the category of presheaves of modules has colimits (#12713) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Category/ModuleCat/ChangeOfRings.lean Modified Mathlib/Algebra/Category/ModuleCat/Colimits.lean Added Mathlib/Algebra/Category/ModuleCat/Presheaf/Colimits.lean + theorem PresheafOfModules.colimitCoconeιApp_naturality + def PresheafOfModules.evaluationJointlyReflectsColimits Modified Mathlib/Algebra/Category/ModuleCat/Presheaf/Limits.lean 2024-05-08 15:10:41 063b125 fix: typo in polyrith (#12754) ESTIMATED CHANGES Modified Mathlib/Tactic/Polyrith.lean 2024-05-08 13:44:41 49c1090 chore(Order/Interval/Finset/Defs): golf (#12752) ESTIMATED CHANGES Modified Mathlib/Order/Interval/Finset/Defs.lean +/- theorem Icc_ofDual +/- theorem Icc_toDual +/- theorem Ico_ofDual +/- theorem Ico_toDual +/- theorem Ioc_ofDual +/- theorem Ioc_toDual +/- theorem Ioo_ofDual +/- theorem Ioo_toDual 2024-05-08 13:10:28 945d7cf chore(ConcreteCategory): remove refine' pattern (#12755) Similar to #12729, we should avoid constructing data using the `refine' { foo := foo, bar := bar .. }` pattern. Building data with tactics is always a dicey proposition and should be a last resort. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/ConcreteCategory/BundledHom.lean 2024-05-08 13:10:27 6d1b4e7 feat: iterated derivative of a continuous multilinear map (#12207) Consider a multilinear map `f : E^n -> F`. Then its `k`-th derivative can be written as follows, given a basepoint `x : E^n` and `k` vectors `v_1, ..., v_k : E^n`: ``` D^k f (x; v_1, ..., v_k) = \sum f (x_1, (v_{e.symm 2})_2, x_3, ..., (v_{e.symm n))_n) ``` where in the sum at each index `i` one uses either the `i`-th coordinate of `x`, or the `i`-th coordinate of one of the vectors `v_j`, and each `v_j` has to appear exactly once in this expression. The sum is parameterized by the embeddings `e` of `Fin k` in `Fin n`. This expression is a little bit cumbersome to write down and to use, but it gives nice explicit bounds on `||D^k f||` that are useful to study Fourier transforms. The PR introduces the formal definition of each term in the sum (as an object which is multilinear in the coordinates of `x` outside the range of `e`, and in the `v_j`), and then proves that the sum is indeed the iterated derivative of `f`. ESTIMATED CHANGES Modified Mathlib/Analysis/Analytic/Basic.lean Modified Mathlib/Analysis/Calculus/FDeriv/Analytic.lean + theorem ContinuousMultilinearMap.hasFTaylorSeriesUpTo_iteratedFDeriv + theorem ContinuousMultilinearMap.iteratedFDeriv_eq + theorem ContinuousMultilinearMap.norm_iteratedFDeriv_le Modified Mathlib/Analysis/NormedSpace/Multilinear/Basic.lean + theorem ContinuousMultilinearMap.iteratedFDerivComponent_apply + theorem ContinuousMultilinearMap.norm_iteratedFDerivComponent_le + theorem ContinuousMultilinearMap.norm_iteratedFDeriv_le' Modified Mathlib/LinearAlgebra/Multilinear/Basic.lean + theorem MultilinearMap.domDomRestrict_aux_right + def MultilinearMap.domDomRestrictₗ + theorem MultilinearMap.iteratedFDeriv_aux 2024-05-08 12:42:11 feb8ef4 feat(CategoryTheory): more functoriality for Comma categories (#12206) This PR introduces the functor `map : Comma L R ⥤ Comma L' R'` induced by three functors `F₁`, `F₂`, `F` and two natural transformations `F₁ ⋙ L' ⟶ L ⋙ F` and `R ⋙ F ⟶ F₂ ⋙ R'`. Variants for `StructuredArrow` and `CostructuredArrow` are also introduced. All the basic functors between `Comma` categories are special cases of this one, but their definition was not changed: it would break too many defeq. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Comma/Basic.lean + def CategoryTheory.Comma.map +/- def CategoryTheory.Comma.mapLeftId +/- def CategoryTheory.Comma.mapRightId + def CategoryTheory.Comma.preLeftIso + def CategoryTheory.Comma.preRightIso Modified Mathlib/CategoryTheory/Comma/StructuredArrow.lean + def CategoryTheory.CostructuredArrow.map₂ + def CategoryTheory.StructuredArrow.map₂ Modified Mathlib/CategoryTheory/DiscreteCategory.lean 2024-05-08 11:39:14 ded3fb6 Feat: add various result about the norm, relative to `ℤ`, of `ζ - 1`. (#11792) We add various result about the norm, relative to `ℤ`, of `ζ - 1`. These results already exist for the norm relative to `ℚ`. From the flt3 project at LFTCM2024. - [x] depends on: #12386 ESTIMATED CHANGES Modified Mathlib/NumberTheory/Cyclotomic/PrimitiveRoots.lean - theorem IsCyclotomicExtension.isPrimePow_norm_zeta_sub_one + theorem IsCyclotomicExtension.norm_zeta_pow_sub_one_of_prime_ne_two + theorem IsCyclotomicExtension.norm_zeta_pow_sub_one_of_prime_pow_ne_two + theorem IsCyclotomicExtension.norm_zeta_pow_sub_one_two + theorem IsCyclotomicExtension.norm_zeta_sub_one_of_isPrimePow + theorem IsCyclotomicExtension.norm_zeta_sub_one_of_prime_ne_two - theorem IsCyclotomicExtension.prime_ne_two_norm_zeta_sub_one - theorem IsCyclotomicExtension.prime_ne_two_pow_norm_zeta_pow_sub_one - theorem IsCyclotomicExtension.prime_ne_two_pow_norm_zeta_sub_one - theorem IsCyclotomicExtension.two_pow_norm_zeta_sub_one + theorem IsPrimitiveRoot.norm_pow_sub_one_eq_prime_pow_of_ne_zero + theorem IsPrimitiveRoot.norm_pow_sub_one_of_prime_ne_two + theorem IsPrimitiveRoot.norm_pow_sub_one_of_prime_pow_ne_two + theorem IsPrimitiveRoot.norm_pow_sub_one_two + theorem IsPrimitiveRoot.norm_sub_one_of_prime_ne_two' + theorem IsPrimitiveRoot.norm_sub_one_of_prime_ne_two + theorem IsPrimitiveRoot.norm_sub_one_two - theorem IsPrimitiveRoot.pow_sub_one_norm_prime_ne_two - theorem IsPrimitiveRoot.pow_sub_one_norm_prime_pow_ne_two - theorem IsPrimitiveRoot.pow_sub_one_norm_prime_pow_of_ne_zero - theorem IsPrimitiveRoot.pow_sub_one_norm_two - theorem IsPrimitiveRoot.sub_one_norm_prime - theorem IsPrimitiveRoot.sub_one_norm_prime_ne_two - theorem IsPrimitiveRoot.sub_one_norm_two Modified Mathlib/NumberTheory/Cyclotomic/Rat.lean + theorem IsPrimitiveRoot.norm_toInteger_pow_sub_one_of_prime_ne_two + theorem IsPrimitiveRoot.norm_toInteger_pow_sub_one_of_prime_pow_ne_two + theorem IsPrimitiveRoot.norm_toInteger_pow_sub_one_of_two + theorem IsPrimitiveRoot.norm_toInteger_sub_one_of_prime_ne_two' + theorem IsPrimitiveRoot.norm_toInteger_sub_one_of_prime_ne_two + theorem IsPrimitiveRoot.prime_norm_toInteger_sub_one_of_prime_ne_two' + theorem IsPrimitiveRoot.prime_norm_toInteger_sub_one_of_prime_ne_two + theorem IsPrimitiveRoot.prime_norm_toInteger_sub_one_of_prime_pow_ne_two Modified Mathlib/RingTheory/Localization/NormTrace.lean + theorem Algebra.norm_eq_iff 2024-05-08 11:06:09 2113c23 refactor(CategoryTheory): make Functor.IsEquivalence a Prop (#12462) `Functor.IsEquivalence` is now the combination of `F.Full`, `F.Faithful` and `F.EssSurj`. That such a functor is an equivalence (i.e. there is a quasi-inverse, etc.) is now contained in the definition `F.asEquivalence`. This refactor is to avoid any diamond in the `IsEquivalence` instances (and also for `IsLeftAdjoint` and `IsRightAdjoint` which are also made `Props`). If data is important, one should use `Equivalence` or `Adjunction` instead. This refactor also avoids some duplication of code between the structures `Equivalence` and the former `IsEquivalence`. `IsLeftAdjoint` and `IsRightAdjoint` are moved to the `Functor` namespace. The namespaces have also been fixed in the file `CategoryTheory.Adjunction.FullyFaithful`. Proofs have been tidied in `CategoryTheory.Monoidal.NaturalTransformation`. Definitions which relied on `IsLeft/RightAdjoint` have been modified in order to contain the data of an adjunction (e.g. `Reflective`, `MonadicRightAdjoint`, etc.). ESTIMATED CHANGES Modified Mathlib/Algebra/Category/AlgebraCat/Basic.lean Modified Mathlib/Algebra/Category/GroupCat/Adjunctions.lean Modified Mathlib/Algebra/Category/GroupCat/ZModuleEquivalence.lean Modified Mathlib/Algebra/Category/ModuleCat/Adjunctions.lean Modified Mathlib/Algebra/Category/ModuleCat/ChangeOfRings.lean + def ModuleCat.restrictScalarsEquivalenceOfRingEquiv Modified Mathlib/Algebra/Category/ModuleCat/Monoidal/Closed.lean Modified Mathlib/Algebra/Category/MonCat/Adjunctions.lean Modified Mathlib/Algebra/Category/Ring/Adjunctions.lean Modified Mathlib/Algebra/Homology/LocalCohomology.lean + def localCohomology.SelfLERadical.castEquivalence Modified Mathlib/AlgebraicGeometry/AffineScheme.lean +/- def AlgebraicGeometry.AffineScheme.mk Modified Mathlib/AlgebraicGeometry/GammaSpecAdjunction.lean Modified Mathlib/AlgebraicTopology/DoldKan/Compatibility.lean +/- def AlgebraicTopology.DoldKan.Compatibility.equivalence₁ Modified Mathlib/AlgebraicTopology/DoldKan/Equivalence.lean +/- def CategoryTheory.Abelian.DoldKan.equivalence Modified Mathlib/AlgebraicTopology/SimplexCategory.lean + theorem SimplexCategory.isSkeletonOf Modified Mathlib/CategoryTheory/Adjunction/AdjointFunctorTheorems.lean + theorem CategoryTheory.isLeftAdjoint_of_preservesColimits_of_isSeparating + theorem CategoryTheory.isRightAdjoint_of_preservesLimits_of_isCoseparating + theorem CategoryTheory.isRightAdjoint_of_preservesLimits_of_solutionSetCondition +/- theorem CategoryTheory.solutionSetCondition_of_isRightAdjoint Modified Mathlib/CategoryTheory/Adjunction/Basic.lean + theorem CategoryTheory.Adjunction.isLeftAdjoint + theorem CategoryTheory.Adjunction.isRightAdjoint - def CategoryTheory.Adjunction.leftAdjointOfNatIso - def CategoryTheory.Adjunction.ofLeftAdjoint - def CategoryTheory.Adjunction.ofRightAdjoint - def CategoryTheory.Adjunction.rightAdjointOfNatIso + theorem CategoryTheory.Equivalence.isLeftAdjoint_functor + theorem CategoryTheory.Equivalence.isLeftAdjoint_inverse + theorem CategoryTheory.Equivalence.isRightAdjoint_functor + theorem CategoryTheory.Equivalence.isRightAdjoint_inverse +/- def CategoryTheory.Equivalence.toAdjunction - def CategoryTheory.Functor.adjunction + theorem CategoryTheory.Functor.isEquivalence_of_isRightAdjoint + theorem CategoryTheory.Functor.isLeftAdjoint_of_iso + theorem CategoryTheory.Functor.isRightAdjoint_of_iso - theorem CategoryTheory.Functor.leftAdjoint_of_isEquivalence - theorem CategoryTheory.Functor.rightAdjoint_of_isEquivalence - def CategoryTheory.leftAdjoint - def CategoryTheory.rightAdjoint Modified Mathlib/CategoryTheory/Adjunction/Comma.lean - def CategoryTheory.isLeftAdjointOfCostructuredArrowTerminals + theorem CategoryTheory.isLeftAdjoint_iff_hasTerminal_costructuredArrow + theorem CategoryTheory.isLeftAdjoint_of_costructuredArrowTerminals + theorem CategoryTheory.isRightAdjointOfStructuredArrowInitials - def CategoryTheory.isRightAdjointOfStructuredArrowInitials + theorem CategoryTheory.isRightAdjoint_iff_hasInitial_structuredArrow - theorem CategoryTheory.nonempty_isLeftAdjoint_iff_hasTerminal_costructuredArrow - theorem CategoryTheory.nonempty_isRightAdjoint_iff_hasInitial_structuredArrow Modified Mathlib/CategoryTheory/Adjunction/Evaluation.lean Modified Mathlib/CategoryTheory/Adjunction/FullyFaithful.lean + theorem CategoryTheory.Adjunction.L_faithful_of_unit_isIso + theorem CategoryTheory.Adjunction.L_full_of_unit_isIso + theorem CategoryTheory.Adjunction.R_faithful_of_counit_isIso + theorem CategoryTheory.Adjunction.R_full_of_counit_isIso + theorem CategoryTheory.Adjunction.inv_counit_map + theorem CategoryTheory.Adjunction.inv_map_unit + theorem CategoryTheory.Adjunction.isEquivalence_left_of_isEquivalence_right + theorem CategoryTheory.Adjunction.isEquivalence_right_of_isEquivalence_left + theorem CategoryTheory.Adjunction.isIso_counit_app_iff_mem_essImage + theorem CategoryTheory.Adjunction.isIso_counit_app_of_iso + theorem CategoryTheory.Adjunction.isIso_unit_app_iff_mem_essImage + theorem CategoryTheory.Adjunction.isIso_unit_app_of_iso - theorem CategoryTheory.L_faithful_of_unit_isIso - theorem CategoryTheory.L_full_of_unit_isIso - theorem CategoryTheory.R_faithful_of_counit_isIso - theorem CategoryTheory.R_full_of_counit_isIso - theorem CategoryTheory.inv_counit_map - theorem CategoryTheory.inv_map_unit - theorem CategoryTheory.isIso_counit_app_iff_mem_essImage - theorem CategoryTheory.isIso_counit_app_of_iso - theorem CategoryTheory.isIso_unit_app_iff_mem_essImage - theorem CategoryTheory.isIso_unit_app_of_iso Modified Mathlib/CategoryTheory/Adjunction/Lifting.lean + theorem CategoryTheory.adjointSquareLift + theorem CategoryTheory.adjointTriangleLift + theorem CategoryTheory.monadicAdjointSquareLift + theorem CategoryTheory.monadicAdjointTriangleLift Modified Mathlib/CategoryTheory/Adjunction/Limits.lean + def CategoryTheory.Adjunction.functorialityAdjunction' + def CategoryTheory.Adjunction.functorialityAdjunction - def CategoryTheory.Adjunction.functorialityIsLeftAdjoint - def CategoryTheory.Adjunction.functorialityIsRightAdjoint Modified Mathlib/CategoryTheory/Adjunction/Over.lean Modified Mathlib/CategoryTheory/Adjunction/Reflective.lean +/- theorem CategoryTheory.mem_essImage_of_unit_isIso + def CategoryTheory.reflector + def CategoryTheory.reflectorAdjunction Modified Mathlib/CategoryTheory/Bicategory/SingleObj.lean Modified Mathlib/CategoryTheory/CatCommSq.lean Modified Mathlib/CategoryTheory/Closed/Cartesian.lean +/- def CategoryTheory.cartesianClosedOfEquiv Modified Mathlib/CategoryTheory/Closed/FunctorCategory.lean Modified Mathlib/CategoryTheory/Closed/Ideal.lean +/- theorem CategoryTheory.bijection_natural +/- theorem CategoryTheory.prodComparison_iso Modified Mathlib/CategoryTheory/Closed/Monoidal.lean +/- theorem CategoryTheory.MonoidalClosed.ofEquiv_curry_def +/- theorem CategoryTheory.MonoidalClosed.ofEquiv_uncurry_def Modified Mathlib/CategoryTheory/Closed/Types.lean + def CategoryTheory.Types.binaryProductAdjunction Modified Mathlib/CategoryTheory/Comma/Arrow.lean Modified Mathlib/CategoryTheory/Comma/Basic.lean Modified Mathlib/CategoryTheory/Comma/Over.lean Modified Mathlib/CategoryTheory/Comma/StructuredArrow.lean Modified Mathlib/CategoryTheory/ConnectedComponents.lean Modified Mathlib/CategoryTheory/EffectiveEpi/Preserves.lean Modified Mathlib/CategoryTheory/Equivalence.lean + def CategoryTheory.Equivalence.changeFunctor + theorem CategoryTheory.Equivalence.changeFunctor_refl + theorem CategoryTheory.Equivalence.changeFunctor_trans + def CategoryTheory.Equivalence.changeInverse - theorem CategoryTheory.Equivalence.functor_asEquivalence - theorem CategoryTheory.Equivalence.functor_inv - theorem CategoryTheory.Equivalence.inverse_asEquivalence - theorem CategoryTheory.Equivalence.inverse_inv - theorem CategoryTheory.Equivalence.isEquivalence_counitIso - theorem CategoryTheory.Equivalence.isEquivalence_unitIso - theorem CategoryTheory.Functor.IsEquivalence.Equivalence.essSurj_of_equivalence - theorem CategoryTheory.Functor.IsEquivalence.Equivalence.functor_map_inj_iff - theorem CategoryTheory.Functor.IsEquivalence.Equivalence.inverse_map_inj_iff - def CategoryTheory.Functor.IsEquivalence.Iso.compInvIso - def CategoryTheory.Functor.IsEquivalence.Iso.compInverseIso - def CategoryTheory.Functor.IsEquivalence.Iso.invCompIso - def CategoryTheory.Functor.IsEquivalence.Iso.inverseCompIso - def CategoryTheory.Functor.IsEquivalence.Iso.isoCompInv - def CategoryTheory.Functor.IsEquivalence.Iso.isoCompInverse - def CategoryTheory.Functor.IsEquivalence.Iso.isoInvComp - def CategoryTheory.Functor.IsEquivalence.Iso.isoInverseComp - def CategoryTheory.Functor.IsEquivalence.cancelCompLeft - def CategoryTheory.Functor.IsEquivalence.cancelCompRight - def CategoryTheory.Functor.IsEquivalence.equivOfIso - theorem CategoryTheory.Functor.IsEquivalence.fun_inv_map - theorem CategoryTheory.Functor.IsEquivalence.inv_fun_map - def CategoryTheory.Functor.IsEquivalence.ofIso - theorem CategoryTheory.Functor.IsEquivalence.ofIso_refl - theorem CategoryTheory.Functor.IsEquivalence.ofIso_trans - def CategoryTheory.Functor.asEquivalence - theorem CategoryTheory.Functor.asEquivalence_counit - theorem CategoryTheory.Functor.asEquivalence_functor - theorem CategoryTheory.Functor.asEquivalence_inverse - theorem CategoryTheory.Functor.asEquivalence_unit + theorem CategoryTheory.Functor.fun_inv_map - def CategoryTheory.Functor.inv + theorem CategoryTheory.Functor.inv_fun_map - theorem CategoryTheory.Functor.inv_inv + theorem CategoryTheory.Functor.isEquivalence_iff_of_iso + theorem CategoryTheory.Functor.isEquivalence_of_comp_left + theorem CategoryTheory.Functor.isEquivalence_of_comp_right + theorem CategoryTheory.Functor.isEquivalence_of_iso + def CategoryTheory.Iso.compInverseIso + def CategoryTheory.Iso.inverseCompIso + def CategoryTheory.Iso.isoCompInverse + def CategoryTheory.Iso.isoInverseComp Modified Mathlib/CategoryTheory/EssentialImage.lean Modified Mathlib/CategoryTheory/Filtered/Basic.lean +/- theorem CategoryTheory.IsCofiltered.of_isLeftAdjoint +/- theorem CategoryTheory.IsCofilteredOrEmpty.of_isLeftAdjoint +/- theorem CategoryTheory.IsFiltered.of_isRightAdjoint +/- theorem CategoryTheory.IsFilteredOrEmpty.of_isRightAdjoint Modified Mathlib/CategoryTheory/FintypeCat.lean + theorem FintypeCat.isSkeleton Modified Mathlib/CategoryTheory/Functor/EpiMono.lean Modified Mathlib/CategoryTheory/Functor/Flat.lean Modified Mathlib/CategoryTheory/Functor/FullyFaithful.lean + theorem CategoryTheory.Functor.map_injective_iff Modified Mathlib/CategoryTheory/Functor/KanExtension/Basic.lean Modified Mathlib/CategoryTheory/Idempotents/FunctorExtension.lean - theorem CategoryTheory.Idempotents.isEquivalence_whiskeringLeft_obj_toKaroubi_aux Modified Mathlib/CategoryTheory/Idempotents/Karoubi.lean - def CategoryTheory.Idempotents.toKaroubiIsEquivalence Modified Mathlib/CategoryTheory/Limits/ConeCategory.lean Modified Mathlib/CategoryTheory/Limits/Cones.lean - def CategoryTheory.Functor.mapCoconeInv - def CategoryTheory.Functor.mapCoconeInvMapCocone - def CategoryTheory.Functor.mapCoconeMapCoconeInv - def CategoryTheory.Functor.mapConeInv - def CategoryTheory.Functor.mapConeInvMapCone - def CategoryTheory.Functor.mapConeMapConeInv Modified Mathlib/CategoryTheory/Limits/Constructions/Over/Products.lean Modified Mathlib/CategoryTheory/Limits/Final.lean Modified Mathlib/CategoryTheory/Limits/HasLimits.lean Modified Mathlib/CategoryTheory/Limits/IsLimit.lean +/- def CategoryTheory.Limits.IsColimit.ofLeftAdjoint +/- def CategoryTheory.Limits.IsLimit.ofRightAdjoint Modified Mathlib/CategoryTheory/Limits/Over.lean Modified Mathlib/CategoryTheory/Limits/Preserves/Shapes/Zero.lean Modified Mathlib/CategoryTheory/Limits/Presheaf.lean + theorem CategoryTheory.isLeftAdjointOfPreservesColimits Modified Mathlib/CategoryTheory/Limits/Shapes/Images.lean Modified Mathlib/CategoryTheory/Limits/Shapes/NormalMono/Basic.lean Modified Mathlib/CategoryTheory/Limits/VanKampen.lean Modified Mathlib/CategoryTheory/Localization/Composition.lean Modified Mathlib/CategoryTheory/Localization/Equivalence.lean + theorem CategoryTheory.Localization.isEquivalence Modified Mathlib/CategoryTheory/Localization/FiniteProducts.lean Modified Mathlib/CategoryTheory/Localization/LocalizerMorphism.lean + theorem CategoryTheory.LocalizerMorphism.isEquivalence + theorem CategoryTheory.LocalizerMorphism.isEquivalence_iff + theorem CategoryTheory.LocalizerMorphism.isEquivalence_imp - theorem CategoryTheory.LocalizerMorphism.nonempty_isEquivalence_iff Modified Mathlib/CategoryTheory/Localization/Predicate.lean Modified Mathlib/CategoryTheory/Monad/Adjunction.lean + theorem CategoryTheory.Reflective.comparison_full + def CategoryTheory.comonadicAdjunction + def CategoryTheory.comonadicRightAdjoint + def CategoryTheory.monadicAdjunction + def CategoryTheory.monadicLeftAdjoint Modified Mathlib/CategoryTheory/Monad/Algebra.lean - theorem CategoryTheory.Comonad.ofLeftAdjoint_forget - theorem CategoryTheory.Comonad.rightAdjoint_forget - theorem CategoryTheory.Monad.leftAdjoint_forget - theorem CategoryTheory.Monad.ofRightAdjoint_forget Modified Mathlib/CategoryTheory/Monad/Limits.lean Modified Mathlib/CategoryTheory/Monad/Monadicity.lean +/- def CategoryTheory.Monad.MonadicityInternal.comparisonLeftAdjointHomEquiv +/- def CategoryTheory.Monad.MonadicityInternal.comparisonLeftAdjointObj +/- def CategoryTheory.Monad.MonadicityInternal.unitCofork +/- theorem CategoryTheory.Monad.MonadicityInternal.unitCofork_π +/- def CategoryTheory.Monad.MonadicityInternal.unitColimitOfPreservesCoequalizer +/- def CategoryTheory.Monad.monadicOfHasPreservesReflexiveCoequalizersOfReflectsIsomorphisms Modified Mathlib/CategoryTheory/Monoidal/Functor.lean Modified Mathlib/CategoryTheory/Monoidal/NaturalTransformation.lean +/- def CategoryTheory.monoidalCounit +/- def CategoryTheory.monoidalUnit Modified Mathlib/CategoryTheory/Monoidal/OfHasFiniteProducts.lean + def CategoryTheory.Functor.toMonoidalFunctorOfHasFiniteProducts Modified Mathlib/CategoryTheory/Monoidal/Rigid/Basic.lean Modified Mathlib/CategoryTheory/Monoidal/Rigid/OfEquivalence.lean +/- def CategoryTheory.hasLeftDualOfEquivalence +/- def CategoryTheory.hasRightDualOfEquivalence +/- def CategoryTheory.leftRigidCategoryOfEquivalence +/- def CategoryTheory.rightRigidCategoryOfEquivalence +/- def CategoryTheory.rigidCategoryOfEquivalence Modified Mathlib/CategoryTheory/Monoidal/Skeleton.lean Modified Mathlib/CategoryTheory/Monoidal/Subcategory.lean Modified Mathlib/CategoryTheory/Monoidal/Transport.lean Modified Mathlib/CategoryTheory/Pi/Basic.lean Modified Mathlib/CategoryTheory/Preadditive/Mat.lean Modified Mathlib/CategoryTheory/Shift/Basic.lean - theorem CategoryTheory.shiftFunctor_inv Modified Mathlib/CategoryTheory/Sites/Adjunction.lean Modified Mathlib/CategoryTheory/Sites/ConcreteSheafification.lean Modified Mathlib/CategoryTheory/Sites/LeftExact.lean Modified Mathlib/CategoryTheory/Sites/Sheafification.lean Modified Mathlib/CategoryTheory/Skeletal.lean +/- structure CategoryTheory.IsSkeletonOf + theorem CategoryTheory.ThinSkeleton.thinSkeleton_isSkeleton + theorem CategoryTheory.skeleton_isSkeleton Modified Mathlib/CategoryTheory/Subobject/MonoOver.lean Modified Mathlib/CategoryTheory/UnivLE.lean Modified Mathlib/RepresentationTheory/Action/Monoidal.lean + theorem Action.functorCategoryMonoidalAdjunction.counit_app_app + theorem Action.functorCategoryMonoidalAdjunction.unit_app_hom + def Action.functorCategoryMonoidalAdjunction - theorem Action.functorCategoryMonoidalEquivalence.counit_app - theorem Action.functorCategoryMonoidalEquivalence.inv_counit_app_hom - theorem Action.functorCategoryMonoidalEquivalence.inv_unit_app_app - theorem Action.functorCategoryMonoidalEquivalence.unit_app_hom + def Action.functorCategoryMonoidalEquivalenceInverse Modified Mathlib/RepresentationTheory/Rep.lean Modified Mathlib/Topology/Category/CompHaus/Basic.lean Modified Mathlib/Topology/Category/Compactum.lean Modified Mathlib/Topology/Category/LightProfinite/Basic.lean Modified Mathlib/Topology/Category/Profinite/Basic.lean Modified Mathlib/Topology/Category/TopCat/Adjunctions.lean Modified Mathlib/Topology/Category/UniformSpace.lean Modified Mathlib/Topology/Sheaves/Functors.lean Modified Mathlib/Topology/Sheaves/Skyscraper.lean 2024-05-08 09:34:49 89b4b59 feat: In characteristic p, `Nat.cast` is injective on `Iio p` (#12542) Add `CharP.natCast_injOn_Iio`. ESTIMATED CHANGES Modified Mathlib/Algebra/CharP/Basic.lean + theorem CharP.natCast_injOn_Iio 2024-05-08 08:43:22 994f298 chore: Deduplicate `zpow_ne_zero_of_ne_zero` and `zpow_ne_zero` (#12734) Both lemmas are the same up to a binder swap. Also rename `zpow_eq_zero` to `eq_zero_of_zpow_ne_zero`. ESTIMATED CHANGES Modified Mathlib/Algebra/GroupWithZero/Power.lean + theorem eq_zero_of_zpow_eq_zero - theorem zpow_eq_zero +/- theorem zpow_eq_zero_iff +/- theorem zpow_ne_zero + theorem zpow_ne_zero_iff - theorem zpow_ne_zero_of_ne_zero Modified Mathlib/Analysis/Asymptotics/SuperpolynomialDecay.lean Modified Mathlib/Analysis/Calculus/Deriv/ZPow.lean Modified Mathlib/NumberTheory/Padics/PadicNorm.lean 2024-05-08 08:07:34 2b89926 feat: continuity of measure without monotonicity assumptions (#12447) Add four theorems about continuity from below/above of measures. Contrary to those already existing, no assumptions about the sequence of sets. Show that the measures of the partial unions/intersections converge to the measure of the union/intersection. ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Measure/MeasureSpace.lean + theorem MeasureTheory.measure_iInter_eq_iInf' + theorem MeasureTheory.measure_iUnion_eq_iSup' + theorem MeasureTheory.tendsto_measure_iInter' + theorem MeasureTheory.tendsto_measure_iUnion' 2024-05-08 07:05:35 9edd235 chore: Remove positivity extension for `Finset.card` stub (#12740) The extension was already implemented in #10610. ESTIMATED CHANGES Modified Mathlib/Data/Fintype/Card.lean 2024-05-08 01:12:54 628b266 feat(UniformConvergenceTopology): prove `CompleteSpace` (#10844) ESTIMATED CHANGES Modified Mathlib/Topology/UniformSpace/Equiv.lean +/- theorem UniformEquiv.comap_eq + theorem UniformEquiv.completeSpace_iff Modified Mathlib/Topology/UniformSpace/UniformConvergenceTopology.lean + theorem UniformOnFun.uniformContinuous_eval_of_mem_sUnion + theorem UniformOnFun.uniformContinuous_ofUniformFun + def UniformOnFun.uniformEquivUniformFun 2024-05-08 00:17:59 b1cd4c0 chore: backported changes for nightly-2024-05-07 (#12747) This changes become necessary on `nightly-2024-05-07`, but work already on `master`. ESTIMATED CHANGES Modified Mathlib/Algebra/Order/BigOperators/Group/List.lean Modified Mathlib/Data/BinaryHeap.lean Modified Mathlib/Data/UnionFind.lean 2024-05-07 23:13:55 893e43e doc(Mathlib/LinearAlgebra/TensorProduct/RightExactness): Fix typo in copyright string (#12738) Two letters in the author's name were transposed. ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/TensorProduct/RightExactness.lean 2024-05-07 23:13:54 424683e chore: Rename `smul_one_eq_coe` to `smul_one_eq_cast` (#12621) ESTIMATED CHANGES Modified Archive/Wiedijk100Theorems/FriendshipGraphs.lean Modified Mathlib/Algebra/CharP/Basic.lean Modified Mathlib/Algebra/Field/Defs.lean + theorem NNRat.smul_one_eq_cast - theorem NNRat.smul_one_eq_coe + theorem Rat.smul_one_eq_cast - theorem Rat.smul_one_eq_coe Modified Mathlib/Algebra/Module/BigOperators.lean Modified Mathlib/Algebra/Module/Defs.lean + theorem Int.smul_one_eq_cast - theorem Int.smul_one_eq_coe + theorem Nat.smul_one_eq_cast - theorem Nat.smul_one_eq_coe Modified Mathlib/Algebra/Polynomial/Basic.lean Modified Mathlib/Algebra/Polynomial/UnitTrinomial.lean Modified Mathlib/Analysis/Asymptotics/SpecificAsymptotics.lean Modified Mathlib/Analysis/MeanInequalities.lean Modified Mathlib/Analysis/Normed/Group/AddCircle.lean Modified Mathlib/Analysis/NormedSpace/Basic.lean Modified Mathlib/Analysis/NormedSpace/Star/Multiplier.lean Modified Mathlib/Combinatorics/SimpleGraph/Regularity/Energy.lean Modified Mathlib/Data/ZMod/Basic.lean Modified Mathlib/NumberTheory/LegendreSymbol/AddCharacter.lean Modified Mathlib/NumberTheory/LegendreSymbol/GaussSum.lean Modified Mathlib/RingTheory/Polynomial/Cyclotomic/Eval.lean Modified Mathlib/RingTheory/Polynomial/Eisenstein/IsIntegral.lean Modified Mathlib/RingTheory/WittVector/FrobeniusFractionField.lean 2024-05-07 23:13:53 ba9d411 feat: Positivity extension for `Finset.prod` (#9365) Followup to #9365 From LeanAPAP ESTIMATED CHANGES Modified Mathlib/Algebra/Order/BigOperators/Ring/Finset.lean + def Mathlib.Meta.Positivity.evalFinsetProd Modified Mathlib/Analysis/Analytic/Composition.lean Modified Mathlib/Analysis/Analytic/Inverse.lean Modified Mathlib/Analysis/NormedSpace/BoundedLinearMaps.lean Modified Mathlib/Analysis/NormedSpace/Multilinear/Basic.lean Modified Mathlib/Analysis/NormedSpace/Multilinear/Curry.lean Modified Mathlib/Data/Nat/Choose/Multinomial.lean Modified Mathlib/Data/Nat/Factorial/BigOperators.lean +/- theorem Nat.prod_factorial_pos Modified Mathlib/MeasureTheory/Integral/TorusIntegral.lean Modified test/positivity.lean 2024-05-07 22:42:43 294ff6a perf(BundledCats): more explicit universe annotations (#12741) Testing for leanprover/lean4#4085 exposed possible regressions typeclass synthesis which can be ameliorated using explicit universes. We do this and we add references to the issue leanprover-community/mathlib4#12737 tracking these changes. ESTIMATED CHANGES Modified Mathlib/AlgebraicGeometry/AffineScheme.lean Modified Mathlib/AlgebraicGeometry/FunctionField.lean Modified Mathlib/AlgebraicGeometry/GammaSpecAdjunction.lean Modified Mathlib/AlgebraicGeometry/Morphisms/RingHomProperties.lean +/- theorem RingHom.RespectsIso.basicOpen_iff_localization Modified Mathlib/AlgebraicGeometry/OpenImmersion.lean +/- theorem AlgebraicGeometry.IsOpenImmersion.app_eq_invApp_app_of_comp_eq +/- theorem AlgebraicGeometry.IsOpenImmersion.app_eq_inv_app_app_of_comp_eq_aux +/- theorem AlgebraicGeometry.IsOpenImmersion.iff_stalk_iso +/- theorem AlgebraicGeometry.IsOpenImmersion.isOpen_range +/- theorem AlgebraicGeometry.IsOpenImmersion.isoOfRangeEq_hom_fac +/- theorem AlgebraicGeometry.IsOpenImmersion.isoOfRangeEq_inv_fac +/- theorem AlgebraicGeometry.IsOpenImmersion.lift_app +/- theorem AlgebraicGeometry.IsOpenImmersion.of_stalk_iso +/- theorem AlgebraicGeometry.IsOpenImmersion.to_iso +/- theorem AlgebraicGeometry.PresheafedSpace.IsOpenImmersion.scheme_eq_of_locallyRingedSpace_eq +/- theorem AlgebraicGeometry.PresheafedSpace.IsOpenImmersion.scheme_toScheme +/- def AlgebraicGeometry.Scheme.Hom.invApp +/- def AlgebraicGeometry.Scheme.Hom.opensRange +/- def AlgebraicGeometry.Scheme.OpenCover.add +/- theorem AlgebraicGeometry.Scheme.OpenCover.compactSpace +/- def AlgebraicGeometry.Scheme.OpenCover.copy +/- def AlgebraicGeometry.Scheme.OpenCover.finiteSubcover +/- theorem AlgebraicGeometry.Scheme.OpenCover.iSup_opensRange +/- theorem AlgebraicGeometry.Scheme.OpenCover.iUnion_range +/- def AlgebraicGeometry.Scheme.OpenCover.pullbackCover' +/- def AlgebraicGeometry.Scheme.OpenCover.pullbackCover +/- def AlgebraicGeometry.Scheme.affineBasisCover +/- def AlgebraicGeometry.Scheme.affineBasisCoverOfAffine +/- def AlgebraicGeometry.Scheme.affineBasisCoverRing +/- theorem AlgebraicGeometry.Scheme.affineBasisCover_is_basis +/- theorem AlgebraicGeometry.Scheme.affineBasisCover_map_range +/- theorem AlgebraicGeometry.Scheme.affineBasisCover_obj +/- def AlgebraicGeometry.Scheme.affineCover +/- theorem AlgebraicGeometry.Scheme.image_basicOpen +/- def AlgebraicGeometry.Scheme.ofRestrict +/- def AlgebraicGeometry.Scheme.openCoverOfSuprEqTop +/- def AlgebraicGeometry.Scheme.restrict +/- theorem AlgebraicGeometry.isIso_iff_isOpenImmersion +/- theorem AlgebraicGeometry.isIso_iff_stalk_iso Modified Mathlib/AlgebraicGeometry/Properties.lean Modified Mathlib/AlgebraicGeometry/Restrict.lean +/- theorem AlgebraicGeometry.Scheme.eq_restrict_presheaf_map_eqToHom +/- theorem AlgebraicGeometry.Scheme.map_basicOpen' +/- theorem AlgebraicGeometry.Scheme.map_basicOpen +/- theorem AlgebraicGeometry.Scheme.map_basicOpen_map +/- theorem AlgebraicGeometry.Scheme.ofRestrict_val_c_app_self +/- def AlgebraicGeometry.Scheme.restrictIsoOfEq +/- def AlgebraicGeometry.Scheme.restrictRestrict +/- def AlgebraicGeometry.Scheme.restrictRestrictComm +/- theorem AlgebraicGeometry.Scheme.restrictRestrict_hom_restrict +/- theorem AlgebraicGeometry.Scheme.restrictRestrict_inv_restrict_restrict +/- theorem AlgebraicGeometry.image_morphismRestrict_preimage +/- theorem AlgebraicGeometry.isPullback_morphismRestrict +/- def AlgebraicGeometry.morphismRestrict +/- def AlgebraicGeometry.morphismRestrictEq +/- def AlgebraicGeometry.morphismRestrictOpensRange +/- def AlgebraicGeometry.morphismRestrictRestrict +/- def AlgebraicGeometry.morphismRestrictRestrictBasicOpen +/- def AlgebraicGeometry.morphismRestrictStalkMap +/- theorem AlgebraicGeometry.morphismRestrict_base_coe +/- theorem AlgebraicGeometry.morphismRestrict_c_app +/- theorem AlgebraicGeometry.morphismRestrict_comp +/- theorem AlgebraicGeometry.morphismRestrict_val_base +/- theorem AlgebraicGeometry.morphismRestrict_ι +/- def AlgebraicGeometry.pullbackRestrictIsoRestrict +/- theorem AlgebraicGeometry.pullbackRestrictIsoRestrict_hom_morphismRestrict +/- theorem AlgebraicGeometry.pullbackRestrictIsoRestrict_hom_restrict +/- theorem AlgebraicGeometry.pullbackRestrictIsoRestrict_inv_fst +/- theorem AlgebraicGeometry.Γ_map_morphismRestrict Modified Mathlib/AlgebraicGeometry/Scheme.lean - def AlgebraicGeometry.Scheme.empty.{u} + def AlgebraicGeometry.Scheme.empty Modified Mathlib/AlgebraicGeometry/Spec.lean Modified Mathlib/Geometry/RingedSpace/LocallyRingedSpace.lean +/- theorem AlgebraicGeometry.LocallyRingedSpace.Hom.ext' +/- structure AlgebraicGeometry.LocallyRingedSpace.Hom +/- theorem AlgebraicGeometry.LocallyRingedSpace.basicOpen_zero +/- def AlgebraicGeometry.LocallyRingedSpace.comp +/- theorem AlgebraicGeometry.LocallyRingedSpace.comp_val +/- theorem AlgebraicGeometry.LocallyRingedSpace.comp_val_c +/- theorem AlgebraicGeometry.LocallyRingedSpace.comp_val_c_app +/- def AlgebraicGeometry.LocallyRingedSpace.forgetToSheafedSpace +/- def AlgebraicGeometry.LocallyRingedSpace.forgetToTop +/- def AlgebraicGeometry.LocallyRingedSpace.homOfSheafedSpaceHomOfIsIso +/- def AlgebraicGeometry.LocallyRingedSpace.id +/- def AlgebraicGeometry.LocallyRingedSpace.isoOfSheafedSpaceIso +/- def AlgebraicGeometry.LocallyRingedSpace.ofRestrict +/- theorem AlgebraicGeometry.LocallyRingedSpace.preimage_basicOpen +/- def AlgebraicGeometry.LocallyRingedSpace.restrict +/- def AlgebraicGeometry.LocallyRingedSpace.restrictTopIso +/- def AlgebraicGeometry.LocallyRingedSpace.Γ +/- theorem AlgebraicGeometry.LocallyRingedSpace.Γ_map +/- theorem AlgebraicGeometry.LocallyRingedSpace.Γ_map_op +/- theorem AlgebraicGeometry.LocallyRingedSpace.Γ_obj +/- theorem AlgebraicGeometry.LocallyRingedSpace.Γ_obj_op +/- structure AlgebraicGeometry.LocallyRingedSpace 2024-05-07 21:46:46 4c7c71d feat(LightProfinite): (co)limits (#9513) This PR constructs pullbacks and finite coproducts in `LightProfinite`. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Topology/Category/CompHaus/Limits.lean - def CompHaus.finiteCoproduct.cocone +/- def CompHaus.finiteCoproduct.isColimit Modified Mathlib/Topology/Category/LightProfinite/Basic.lean + def LightProfinite.toTopCat Added Mathlib/Topology/Category/LightProfinite/Limits.lean + def LightProfinite.finiteCoproduct.desc + theorem LightProfinite.finiteCoproduct.hom_ext + def LightProfinite.finiteCoproduct.isColimit + def LightProfinite.finiteCoproduct.ι + theorem LightProfinite.finiteCoproduct.ι_desc + def LightProfinite.finiteCoproduct + def LightProfinite.isTerminalPUnit + theorem LightProfinite.pullback.condition + def LightProfinite.pullback.fst + theorem LightProfinite.pullback.hom_ext + def LightProfinite.pullback.isLimit + def LightProfinite.pullback.lift + theorem LightProfinite.pullback.lift_fst + theorem LightProfinite.pullback.lift_snd + def LightProfinite.pullback.snd Modified Mathlib/Topology/Category/Profinite/Limits.lean - def Profinite.finiteCoproduct.cocone +/- def Profinite.finiteCoproduct.desc +/- theorem Profinite.finiteCoproduct.hom_ext +/- def Profinite.finiteCoproduct.isColimit +/- theorem Profinite.finiteCoproduct.ι_desc Modified Mathlib/Topology/Category/Stonean/Limits.lean - def Stonean.finiteCoproduct.cocone - def Stonean.finiteCoproduct.explicitCocone - def Stonean.finiteCoproduct.isColimit' +/- def Stonean.finiteCoproduct.isColimit 2024-05-07 20:39:28 b303751 feat: `mapsTo`, `surjOn` and `injOn` are preserved by `Filter.map` (#12385) And use it to simplify the proof of [completeSpace_iff_isComplete_range](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Topology/UniformSpace/UniformEmbedding.html#completeSpace_iff_isComplete_range). I also add the consequence of the previous result that any uniform embedding from a complete space to a hausdorff space is a closed embedding (I agree this may be a bit unrelated, but I was in the area). Notes about the filter results: - the left/right inverse results are not used, but I think they can be helpful. I'm okay with removing them. - the new API doesn't match very well the existing one, but after way more time that I'm willing to admit I came to the conclusion that it doesn't make sense to make it better without reorganizing and splitting the whole file. ESTIMATED CHANGES Modified Mathlib/Data/Set/Function.lean + theorem Set.SurjOn.forall Modified Mathlib/Order/Filter/Basic.lean + theorem Filter.filter_injOn_Iic_iff_injOn + theorem Filter.map_mapsTo_Iic_iff_mapsTo + theorem Filter.map_mapsTo_Iic_iff_tendsto + theorem Filter.map_surjOn_Iic_iff_le_map + theorem Filter.map_surjOn_Iic_iff_surjOn + theorem Filter.pure_le_principal + theorem Function.LeftInverse.filter_comap + theorem Function.LeftInverse.filter_map + theorem Set.LeftInvOn.filter_map_Iic Modified Mathlib/Topology/UniformSpace/CompleteSeparated.lean + theorem UniformEmbedding.toClosedEmbedding Modified Mathlib/Topology/UniformSpace/UniformEmbedding.lean - theorem IsComplete.completeSpace_coe - theorem isComplete_of_complete_image 2024-05-07 18:47:04 0b80a0a refactor: Make `CompleteDistribLattice` extend `Coframe` (#12730) This spares us to write one instance by hand and also reduces the diff of #10560 a bit (after which we really need that `extends` clause) ESTIMATED CHANGES Modified Mathlib/Order/CompleteBooleanAlgebra.lean 2024-05-07 18:06:05 e0219f6 chore: split Mathlib.Algebra.Lie.Killing (#12735) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Lie/Killing.lean - theorem LieAlgebra.IsKilling.cartanEquivDual_symm_apply_mem_corootSpace - theorem LieAlgebra.IsKilling.coe_corootSpace_eq_span_singleton - theorem LieAlgebra.IsKilling.corootSpace_eq_bot_iff - theorem LieAlgebra.IsKilling.corootSpace_zero_eq_bot - theorem LieAlgebra.IsKilling.coroot_eq_zero_iff - theorem LieAlgebra.IsKilling.disjoint_ker_weight_corootSpace - theorem LieAlgebra.IsKilling.eq_zero_of_apply_eq_zero_of_mem_corootSpace - theorem LieAlgebra.IsKilling.iInf_ker_weight_eq_bot - theorem LieAlgebra.IsKilling.isCompl_ker_weight_span_coroot - theorem LieAlgebra.IsKilling.ker_restrict_eq_bot_of_isCartanSubalgebra - theorem LieAlgebra.IsKilling.ker_traceForm_eq_bot_of_isCartanSubalgebra - theorem LieAlgebra.IsKilling.restrict_killingForm - theorem LieAlgebra.IsKilling.root_apply_cartanEquivDual_symm_ne_zero - theorem LieAlgebra.IsKilling.root_apply_coroot - theorem LieAlgebra.IsKilling.span_weight_eq_top - theorem LieAlgebra.IsKilling.traceForm_cartan_nondegenerate - theorem LieAlgebra.killingForm_apply_eq_zero_of_mem_rootSpace_of_add_ne_zero - theorem LieAlgebra.mem_ker_killingForm_of_mem_rootSpace_of_forall_rootSpace_neg - theorem LieIdeal.coe_killingCompl_top - theorem LieIdeal.killingForm_eq - theorem LieIdeal.le_killingCompl_top_of_isLieAbelian - theorem LieIdeal.mem_killingCompl - theorem LieIdeal.restrict_killingForm - theorem LieIdeal.toSubmodule_killingCompl - theorem LieModule.eq_zero_of_mem_weightSpace_mem_posFitting - theorem LieModule.isLieAbelian_of_ker_traceForm_eq_bot - theorem LieModule.lie_traceForm_eq_zero - theorem LieModule.lowerCentralSeries_one_inf_center_le_ker_traceForm - theorem LieModule.range_traceForm_le_span_weight - theorem LieModule.traceForm_apply_apply - theorem LieModule.traceForm_apply_eq_zero_of_mem_lcs_of_mem_center - theorem LieModule.traceForm_apply_lie_apply' - theorem LieModule.traceForm_apply_lie_apply - theorem LieModule.traceForm_comm - theorem LieModule.traceForm_eq_sum_finrank_nsmul - theorem LieModule.traceForm_eq_sum_finrank_nsmul_mul - theorem LieModule.traceForm_eq_sum_weightSpaceOf - theorem LieModule.traceForm_eq_zero_if_mem_lcs_of_mem_ucs - theorem LieModule.traceForm_eq_zero_of_isNilpotent - theorem LieModule.traceForm_eq_zero_of_isTrivial - theorem LieModule.traceForm_flip - theorem LieModule.traceForm_isSymm - theorem LieModule.traceForm_lieSubalgebra_mk_left - theorem LieModule.traceForm_lieSubalgebra_mk_right - theorem LieModule.traceForm_weightSpace_eq - theorem LieModule.trace_toEndomorphism_eq_zero_of_mem_lcs - theorem LieSubmodule.traceForm_eq_of_le_idealizer - theorem LieSubmodule.traceForm_eq_zero_of_isTrivial - theorem LieSubmodule.trace_eq_trace_restrict_of_le_idealizer - theorem killingForm_apply_apply - theorem killingForm_eq_zero_of_mem_zeroRoot_mem_posFitting Added Mathlib/Algebra/Lie/TraceForm.lean + theorem LieIdeal.coe_killingCompl_top + theorem LieIdeal.killingForm_eq + theorem LieIdeal.le_killingCompl_top_of_isLieAbelian + theorem LieIdeal.mem_killingCompl + theorem LieIdeal.restrict_killingForm + theorem LieIdeal.toSubmodule_killingCompl + theorem LieModule.eq_zero_of_mem_weightSpace_mem_posFitting + theorem LieModule.isLieAbelian_of_ker_traceForm_eq_bot + theorem LieModule.lie_traceForm_eq_zero + theorem LieModule.lowerCentralSeries_one_inf_center_le_ker_traceForm + theorem LieModule.range_traceForm_le_span_weight + theorem LieModule.traceForm_apply_apply + theorem LieModule.traceForm_apply_eq_zero_of_mem_lcs_of_mem_center + theorem LieModule.traceForm_apply_lie_apply' + theorem LieModule.traceForm_apply_lie_apply + theorem LieModule.traceForm_comm + theorem LieModule.traceForm_eq_sum_finrank_nsmul + theorem LieModule.traceForm_eq_sum_finrank_nsmul_mul + theorem LieModule.traceForm_eq_sum_weightSpaceOf + theorem LieModule.traceForm_eq_zero_if_mem_lcs_of_mem_ucs + theorem LieModule.traceForm_eq_zero_of_isNilpotent + theorem LieModule.traceForm_eq_zero_of_isTrivial + theorem LieModule.traceForm_flip + theorem LieModule.traceForm_isSymm + theorem LieModule.traceForm_lieSubalgebra_mk_left + theorem LieModule.traceForm_lieSubalgebra_mk_right + theorem LieModule.traceForm_weightSpace_eq + theorem LieModule.trace_toEndomorphism_eq_zero_of_mem_lcs + theorem LieSubmodule.traceForm_eq_of_le_idealizer + theorem LieSubmodule.traceForm_eq_zero_of_isTrivial + theorem LieSubmodule.trace_eq_trace_restrict_of_le_idealizer + theorem killingForm_apply_apply + theorem killingForm_eq_zero_of_mem_zeroRoot_mem_posFitting Added Mathlib/Algebra/Lie/Weights/Killing.lean + theorem LieAlgebra.IsKilling.cartanEquivDual_symm_apply_mem_corootSpace + theorem LieAlgebra.IsKilling.coe_corootSpace_eq_span_singleton + theorem LieAlgebra.IsKilling.corootSpace_eq_bot_iff + theorem LieAlgebra.IsKilling.corootSpace_zero_eq_bot + theorem LieAlgebra.IsKilling.coroot_eq_zero_iff + theorem LieAlgebra.IsKilling.disjoint_ker_weight_corootSpace + theorem LieAlgebra.IsKilling.eq_zero_of_apply_eq_zero_of_mem_corootSpace + theorem LieAlgebra.IsKilling.iInf_ker_weight_eq_bot + theorem LieAlgebra.IsKilling.isCompl_ker_weight_span_coroot + theorem LieAlgebra.IsKilling.ker_restrict_eq_bot_of_isCartanSubalgebra + theorem LieAlgebra.IsKilling.ker_traceForm_eq_bot_of_isCartanSubalgebra + theorem LieAlgebra.IsKilling.restrict_killingForm + theorem LieAlgebra.IsKilling.root_apply_cartanEquivDual_symm_ne_zero + theorem LieAlgebra.IsKilling.root_apply_coroot + theorem LieAlgebra.IsKilling.span_weight_eq_top + theorem LieAlgebra.IsKilling.traceForm_cartan_nondegenerate + theorem LieAlgebra.killingForm_apply_eq_zero_of_mem_rootSpace_of_add_ne_zero + theorem LieAlgebra.mem_ker_killingForm_of_mem_rootSpace_of_forall_rootSpace_neg 2024-05-07 18:06:04 3d72665 chore(Order.Copy): clean up structure instance constructions (#12729) After the port, this used a `refine' {foo := foo, bar := bar, ..}` pattern to build the instances. We clean this up. ESTIMATED CHANGES Modified Mathlib/Order/Copy.lean 2024-05-07 16:59:52 5cafc71 further renaming Std->Batteries (#12727) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/AlgebraicTopology/TopologicalSimplex.lean Modified Mathlib/Analysis/SpecialFunctions/Exp.lean Modified Mathlib/Data/Array/Lemmas.lean Modified Mathlib/Data/Bool/AllAny.lean Modified Mathlib/Data/DList/Basic.lean Modified Mathlib/Data/DList/Defs.lean Modified Mathlib/Data/Fin/Basic.lean Modified Mathlib/Data/HashMap.lean Modified Mathlib/Data/Int/Defs.lean Modified Mathlib/Data/List/Basic.lean Modified Mathlib/Data/List/Count.lean Modified Mathlib/Data/List/Defs.lean Modified Mathlib/Data/List/Indexes.lean Modified Mathlib/Data/Nat/Bits.lean Modified Mathlib/Data/Nat/Defs.lean Modified Mathlib/Data/Rat/Defs.lean Modified Mathlib/Data/Rat/Field.lean Modified Mathlib/Data/Rat/Init.lean Modified Mathlib/Data/String/Defs.lean Modified Mathlib/Data/Sum/Basic.lean Modified Mathlib/Init/Classes/Order.lean Modified Mathlib/Init/Control/Lawful.lean Modified Mathlib/Init/Data/Bool/Basic.lean Modified Mathlib/Init/Data/Int/DivMod.lean Modified Mathlib/Init/Data/Int/Lemmas.lean Modified Mathlib/Init/Data/List/Basic.lean Modified Mathlib/Init/Data/List/Instances.lean Modified Mathlib/Init/Data/List/Lemmas.lean Modified Mathlib/Init/Data/Option/Basic.lean Modified Mathlib/Init/Data/Option/Init/Lemmas.lean Modified Mathlib/Init/Data/Option/Lemmas.lean Modified Mathlib/Init/Data/Rat/Basic.lean Modified Mathlib/Lean/Name.lean Modified Mathlib/Logic/Basic.lean Modified Mathlib/Logic/Unique.lean Modified Mathlib/Tactic.lean Modified Mathlib/Tactic/Attr/Core.lean Modified Mathlib/Tactic/CC/Datatypes.lean Modified Mathlib/Tactic/Congr!.lean Modified Mathlib/Tactic/ExtractGoal.lean Modified Mathlib/Tactic/FunProp.lean Modified Mathlib/Tactic/FunProp/Core.lean Modified Mathlib/Tactic/FunProp/Mor.lean Renamed Mathlib/Tactic/FunProp/ToStd.lean to Mathlib/Tactic/FunProp/ToBatteries.lean Modified Mathlib/Tactic/Linarith/Frontend.lean Modified Mathlib/Tactic/Linarith/Verification.lean Modified Mathlib/Tactic/Lint.lean Modified Mathlib/Tactic/Monotonicity/Basic.lean Modified Mathlib/Tactic/Nontriviality/Core.lean Modified Mathlib/Tactic/Replace.lean Modified Mathlib/Util/Delaborators.lean Modified docs/Conv/Guide.lean Modified docs/overview.yaml Modified scripts/nolints.json Modified scripts/noshake.json 2024-05-07 15:21:13 f1308d7 refactor: Turn Freiman homs into predicates (#12546) The bundled hom approach to Freiman homomorphisms is a fail. It is very hard to use and doesn't bring anything. That is because Freiman homs don't have much structure and we do not study them under this angle. This PR replaces the bundled homs by predicates and moves the file from `Algebra.Group.Freiman` to `Combinatorics.Additive.FreimanHom` so that: * It is clear these are combinatorial objects, not algebraic ones. * The diff isn't completely mangled. Nothing was kept so it's not worth comparing via a naïve git diff. Also fix a few oddities accidentally introduced in #12701. ESTIMATED CHANGES Modified Mathlib.lean Deleted Mathlib/Algebra/Group/Freiman.lean - structure AddFreimanHom - theorem FreimanHom.FreimanHomClass_of_le - theorem FreimanHom.cancel_left_on - theorem FreimanHom.cancel_right - theorem FreimanHom.cancel_right_on - theorem FreimanHom.coe_comp - theorem FreimanHom.coe_mk - theorem FreimanHom.comp_apply - theorem FreimanHom.comp_assoc - theorem FreimanHom.comp_id - def FreimanHom.const - theorem FreimanHom.const_apply - theorem FreimanHom.const_comp - theorem FreimanHom.div_apply - theorem FreimanHom.div_comp - theorem FreimanHom.ext - theorem FreimanHom.id_comp - theorem FreimanHom.inv_apply - theorem FreimanHom.inv_comp - theorem FreimanHom.mk_coe - theorem FreimanHom.mul_apply - theorem FreimanHom.mul_comp - theorem FreimanHom.one_apply - theorem FreimanHom.one_comp - def FreimanHom.toFreimanHom - theorem FreimanHom.toFreimanHom_coe - theorem FreimanHom.toFreimanHom_injective - theorem FreimanHom.toFun_eq_coe - structure FreimanHom - def FreimanHomClass.toFreimanHom - def MonoidHom.toFreimanHom - theorem MonoidHom.toFreimanHom_coe - theorem MonoidHom.toFreimanHom_injective - theorem map_mul_map_eq_map_mul_map - theorem map_prod_eq_map_prod - theorem map_prod_eq_map_prod_of_le Modified Mathlib/Combinatorics/Additive/AP/Three/Behrend.lean Modified Mathlib/Combinatorics/Additive/AP/Three/Defs.lean + theorem IsMulFreimanHom.mulRothNumber_mono + theorem IsMulFreimanHom.threeGPFree + theorem IsMulFreimanIso.mulRothNumber_congr + theorem IsMulFreimanIso.threeGPFree_congr + theorem ThreeGPFree.image' - theorem ThreeGPFree.image +/- theorem ThreeGPFree.of_image +/- theorem ThreeGPFree.smul_set₀ + theorem threeGPFree_image +/- theorem threeGPFree_smul_set Added Mathlib/Combinatorics/Additive/FreimanHom.lean + structure IsAddFreimanHom + structure IsAddFreimanIso + theorem IsMulFreimanHom.comp + theorem IsMulFreimanHom.div + theorem IsMulFreimanHom.inv + theorem IsMulFreimanHom.mono + theorem IsMulFreimanHom.mul + theorem IsMulFreimanHom.mul_eq_mul + theorem IsMulFreimanHom.subset + theorem IsMulFreimanHom.superset + structure IsMulFreimanHom + theorem IsMulFreimanIso.comp + theorem IsMulFreimanIso.isMulFreimanHom + theorem IsMulFreimanIso.mono + theorem IsMulFreimanIso.mul_eq_mul + theorem IsMulFreimanIso.subset + structure IsMulFreimanIso + theorem MonoidHomClass.isMulFreimanHom + theorem MulEquivClass.isMulFreimanIso + theorem isMulFreimanHom_const + theorem isMulFreimanHom_id + theorem isMulFreimanHom_two + theorem isMulFreimanIso_empty + theorem isMulFreimanIso_id 2024-05-07 14:07:59 838141a feat(Mathlib/Order/Ideal): ideals of sets are stable under directed unions and chains (#12651) We prove that the directed union of a non-empty directed union of ideals of subsets of a preorder is an ideal, and in particular ideals of subsets of a preorder are stable under unions. In order to prove it, we also add `directed_on_sUnion`, a variant of `directed_on_iUnion`. ESTIMATED CHANGES Modified Mathlib/Data/Set/Lattice.lean + theorem Set.directedOn_iUnion + theorem Set.directedOn_sUnion - theorem Set.directed_on_iUnion Modified Mathlib/Order/Ideal.lean + theorem Order.isIdeal_sUnion_of_directedOn + theorem Order.isIdeal_sUnion_of_isChain 2024-05-07 13:42:22 9ef305b fix: generalize std_basis_eq_basis_mul_basis (#12716) The 1 has been silently interpreted as a natural since it was added in https://github.com/leanprover-community/mathlib/pull/3244. ESTIMATED CHANGES Modified Mathlib/Data/Matrix/Basis.lean 2024-05-07 12:53:14 661ebd0 feat: add gcd_neg, neg_gcd (#12593) ESTIMATED CHANGES Modified Mathlib/Algebra/Associated.lean + theorem Associated.neg_left + theorem Associated.neg_neg + theorem Associated.neg_right Modified Mathlib/Algebra/GCDMonoid/Basic.lean + theorem Associated.eq_of_normalized - theorem Associated.gcd - theorem Associated.lcm + theorem gcd_neg' + theorem gcd_neg + theorem neg_gcd' + theorem neg_gcd 2024-05-07 12:53:12 77f39e1 feat: FloorRing.exists_prime_mul_pow_div_factorial_lt_one (#12191) A few technical lemmas in support of Lindemann-Weierstrass. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Order/Floor/Prime.lean + theorem FloorRing.exists_prime_mul_pow_div_factorial_lt_one + theorem FloorRing.exists_prime_mul_pow_lt_factorial Modified Mathlib/Data/Nat/Prime.lean + theorem Nat.exists_mul_pow_lt_factorial + theorem Nat.exists_pow_lt_factorial + theorem Nat.exists_prime_mul_pow_lt_factorial 2024-05-07 11:27:30 787f959 feat: easy results about ring of integers. (#12704) Those have been forgotten in #12386. ESTIMATED CHANGES Modified Mathlib/NumberTheory/NumberField/Basic.lean + theorem NumberField.RingOfIntegers.eq_iff Modified Mathlib/NumberTheory/NumberField/Units/Basic.lean + theorem NumberField.Units.coe_coe 2024-05-07 10:24:07 248b41f refactor(Topology/Connected/TotallyDisconnected): use Set.Pairwise (#12724) ESTIMATED CHANGES Modified Mathlib/Topology/Connected/Separation.lean Modified Mathlib/Topology/Connected/TotallyDisconnected.lean Modified Mathlib/Topology/Separation.lean 2024-05-07 10:24:05 466ce46 refactor(Mathlib/Init/Data/List/Instances): deduplicate `Decidable (∀ x, x ∈ l → p x)` & `Decidable (∃ x, x ∈ l → p x)` instances (#12722) ESTIMATED CHANGES Modified Mathlib/Data/Int/Range.lean Modified Mathlib/Init/Data/List/Instances.lean 2024-05-07 10:24:04 740f52c feat: add `*.of_comp_iff` lemmas for `Inducing`, `Embedding`, etc. (#12639) ESTIMATED CHANGES Modified Mathlib/Topology/FiberBundle/Constructions.lean Modified Mathlib/Topology/LocalAtTarget.lean Modified Mathlib/Topology/Maps.lean + theorem ClosedEmbedding.of_comp_iff + theorem Embedding.of_comp_iff + theorem Inducing.of_comp_iff Modified Mathlib/Topology/UniformSpace/UniformEmbedding.lean + theorem UniformEmbedding.of_comp_iff + theorem UniformInducing.of_comp_iff 2024-05-07 10:24:03 aa79770 feat: `withDensity` of an s-finite measure is s-finite (#12591) ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Measure/WithDensity.lean + theorem MeasureTheory.sFinite_withDensity_of_measurable + theorem MeasureTheory.sFinite_withDensity_of_sigmaFinite_of_measurable 2024-05-07 09:50:33 d9cc9fa feat: operations on indicatorConstLp (#12464) Add lemmas to rewrite the sum/difference of two `indicatorConstLp` with same support. The distance between to Lp functions is the same as the norm of their difference (even if $p < 1$ and it's not a norm). ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Function/LpSpace.lean + theorem MeasureTheory.Lp.dist_eq_norm +/- theorem MeasureTheory.dist_indicatorConstLp_eq_norm +/- theorem MeasureTheory.edist_indicatorConstLp_eq_nnnorm + theorem MeasureTheory.indicatorConstLp_add + theorem MeasureTheory.indicatorConstLp_sub 2024-05-07 09:50:32 0477177 feat: Hadamard three-lines theorem (#7919) This PR introduces a version of the Hadamard three-lines theorem (see [here](https://en.wikipedia.org/wiki/Hadamard_three-lines_theorem)), which is a prerequisite for norm interpolation. This project was suggested by @dupuisf earlier this year. This is my first decently sized PR so thank you for your patience if I have made any mistakes! ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/Complex/Hadamard.lean + theorem Complex.HadamardThreeLines.F_BddAbove + theorem Complex.HadamardThreeLines.F_edge_le_one + theorem Complex.HadamardThreeLines.abs_invInterpStrip + theorem Complex.HadamardThreeLines.diffContOnCl_interpStrip + theorem Complex.HadamardThreeLines.diffContOnCl_invInterpStrip + theorem Complex.HadamardThreeLines.eventuallyle + theorem Complex.HadamardThreeLines.interpStrip_eq_of_mem_verticalStrip + theorem Complex.HadamardThreeLines.interpStrip_eq_of_pos + theorem Complex.HadamardThreeLines.interpStrip_eq_of_zero + theorem Complex.HadamardThreeLines.norm_le_interpStrip_of_mem_verticalClosedStrip + theorem Complex.HadamardThreeLines.norm_le_interpStrip_of_mem_verticalClosedStrip_eps + theorem Complex.HadamardThreeLines.norm_le_interpStrip_of_mem_verticalStrip_zero + theorem Complex.HadamardThreeLines.norm_le_interp_of_mem_verticalClosedStrip' + theorem Complex.HadamardThreeLines.norm_le_sSupNormIm + theorem Complex.HadamardThreeLines.norm_lt_sSupNormIm_eps + theorem Complex.HadamardThreeLines.norm_mul_invInterpStrip_le_one_of_mem_verticalClosedStrip + theorem Complex.HadamardThreeLines.sSupNormIm_eps_pos + theorem Complex.HadamardThreeLines.sSupNormIm_nonneg + def Complex.HadamardThreeLines.verticalClosedStrip + def Complex.HadamardThreeLines.verticalStrip 2024-05-07 09:25:39 859845f refactor: Redefine 3AP-free sets (#12701) The current definition allows `{0, 1}` as a 3AP-free set in `ZMod 2`, which is really inconvenient from the point of view of interfacing with corners. This PR redefines it so that `0, 1, 0` in `ZMod 2` is a 3AP and `{0, 1}` is not 3AP-free. Also take the opportunity to reorder the binders to a more convenient fashion, to move the heavy result `threeAPFree_sphere` to `Combinatorics.Additive.Behrend` where it is used (it won't be used anywhere else) and to drop `rothNumberNat_isBigO_id` since it's a trivial result that pulls in a bunch of analysis. ESTIMATED CHANGES Modified Mathlib/Combinatorics/Additive/AP/Three/Behrend.lean + theorem threeAPFree_frontier + theorem threeAPFree_sphere Modified Mathlib/Combinatorics/Additive/AP/Three/Defs.lean + theorem ThreeGPFree.eq_right + theorem ThreeGPFree.mulRothNumber_eq - theorem ThreeGPFree.mul_left - theorem ThreeGPFree.mul_left₀ - theorem ThreeGPFree.mul_right - theorem ThreeGPFree.mul_right₀ - theorem ThreeGPFree.roth_number_eq + theorem ThreeGPFree.smul_set + theorem ThreeGPFree.smul_set₀ +/- def ThreeGPFree - theorem rothNumberNat_isBigOWith_id - theorem rothNumberNat_isBigO_id - theorem threeAPFree_frontier - theorem threeAPFree_sphere +/- theorem threeGPFree_insert - theorem threeGPFree_mul_left_iff - theorem threeGPFree_mul_left_iff₀ - theorem threeGPFree_mul_right_iff - theorem threeGPFree_mul_right_iff₀ - theorem threeGPFree_pair + theorem threeGPFree_smul_set + theorem threeGPFree_smul_set₀ 2024-05-07 08:14:38 4b6177e fix(Cache): reference to Std (#12725) Follow-up to #12720, the find/replace missed a spot. ESTIMATED CHANGES Modified Cache/IO.lean 2024-05-07 08:14:37 ad2ccae chore: remove pointless @[reducible] attributes (#12691) This is a backport of changes made by @Ruben-VandeVelde. These attributes had no effect, and will become illegal on v4.9.0. ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Aut.lean Modified Mathlib/Algebra/Polynomial/Module/Basic.lean Modified Mathlib/Algebra/Ring/CompTypeclasses.lean Modified Mathlib/Logic/Equiv/TransferInstance.lean Modified Mathlib/Order/Heyting/Hom.lean 2024-05-07 08:14:36 43881b5 chore: Move sign of power lemmas (#11986) * Move the sign of power lemmas from `Algebra.Parity` to `Algebra.GroupPower.Order`. * For this to work, I must swap the order of import between `Algebra.GroupPower.Order` and `Algebra.Parity`. This means that I need to weaken one `assert_not_exists` to allow importing `Data.Set.Defs`. This is inconsequential. * Use them to golf and deprecate the `bit0`/`bit1` lemmas * Delete the deprecated `pow_bit0_abs`, `pow_bit0_pos_of_neg`, `pow_bit1_neg` ESTIMATED CHANGES Modified Mathlib/Algebra/GroupPower/Order.lean + theorem Even.pow_nonneg + theorem Even.pow_pos + theorem Even.pow_pos_iff + theorem Odd.pow_neg_iff + theorem Odd.pow_nonneg_iff + theorem Odd.pow_nonpos_iff + theorem Odd.pow_pos_iff + theorem Odd.strictMono_pow +/- theorem pow_bit0_nonneg +/- theorem pow_bit0_pos +/- theorem pow_bit0_pos_iff - theorem pow_bit0_pos_of_neg - theorem pow_bit1_neg +/- theorem pow_bit1_neg_iff +/- theorem pow_bit1_nonneg_iff +/- theorem pow_bit1_nonpos_iff +/- theorem pow_bit1_pos_iff +/- theorem sq_pos_iff +/- theorem sq_pos_of_neg +/- theorem strictMono_pow_bit1 Modified Mathlib/Algebra/Order/Ring/Abs.lean + theorem Even.pow_abs Modified Mathlib/Algebra/Parity.lean - theorem Even.pow_abs - theorem Even.pow_nonneg - theorem Even.pow_pos - theorem Even.pow_pos_iff - theorem Odd.pow_neg_iff - theorem Odd.pow_nonneg_iff - theorem Odd.pow_nonpos_iff - theorem Odd.pow_pos_iff - theorem Odd.strictMono_pow +/- theorem even_iff_two_dvd +/- theorem odd_iff_exists_bit1 - theorem pow_bit0_abs Modified Mathlib/Analysis/Calculus/FDeriv/Symmetric.lean Modified Mathlib/Data/Rat/Sqrt.lean Modified Mathlib/Order/SuccPred/LinearLocallyFinite.lean 2024-05-07 07:06:04 f29aeab chore(Order): Clean up frame instances (#12709) This is the style-only part of #10560 ESTIMATED CHANGES Modified Mathlib/Order/BooleanAlgebra.lean Modified Mathlib/Order/CompleteBooleanAlgebra.lean Modified Mathlib/Order/CompleteLattice.lean Modified Mathlib/Order/Heyting/Basic.lean 2024-05-07 07:06:03 35c93d9 feat: Construct a tripartite graph from its triangles (#12570) Both the lower bound of the Ruzsa-Szemerédi problem and the proof of the corners theorem define an auxiliary tripartite graph by specifying its triangles and showing that there are no more. This PR provides the boilerplate for this construction. It greatly simplifies both proofs. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Combinatorics/SimpleGraph/Triangle/Tripartite.lean + theorem SimpleGraph.TripartiteFromTriangles.Graph.in₀₁_iff' + theorem SimpleGraph.TripartiteFromTriangles.Graph.in₀₁_iff + theorem SimpleGraph.TripartiteFromTriangles.Graph.in₀₂_iff' + theorem SimpleGraph.TripartiteFromTriangles.Graph.in₀₂_iff + theorem SimpleGraph.TripartiteFromTriangles.Graph.in₁₀_iff' + theorem SimpleGraph.TripartiteFromTriangles.Graph.in₁₀_iff + theorem SimpleGraph.TripartiteFromTriangles.Graph.in₁₂_iff' + theorem SimpleGraph.TripartiteFromTriangles.Graph.in₁₂_iff + theorem SimpleGraph.TripartiteFromTriangles.Graph.in₂₀_iff' + theorem SimpleGraph.TripartiteFromTriangles.Graph.in₂₀_iff + theorem SimpleGraph.TripartiteFromTriangles.Graph.in₂₁_iff' + theorem SimpleGraph.TripartiteFromTriangles.Graph.in₂₁_iff + theorem SimpleGraph.TripartiteFromTriangles.Graph.not_in₀₀ + theorem SimpleGraph.TripartiteFromTriangles.Graph.not_in₁₁ + theorem SimpleGraph.TripartiteFromTriangles.Graph.not_in₂₂ + inductive SimpleGraph.TripartiteFromTriangles.Rel + theorem SimpleGraph.TripartiteFromTriangles.card_triangles + theorem SimpleGraph.TripartiteFromTriangles.cliqueFinset_eq_image + theorem SimpleGraph.TripartiteFromTriangles.cliqueFinset_eq_map + theorem SimpleGraph.TripartiteFromTriangles.cliqueSet_eq_image + theorem SimpleGraph.TripartiteFromTriangles.exists_mem_toTriangle + theorem SimpleGraph.TripartiteFromTriangles.farFromTriangleFree + def SimpleGraph.TripartiteFromTriangles.graph + theorem SimpleGraph.TripartiteFromTriangles.graph_triple + theorem SimpleGraph.TripartiteFromTriangles.locallyLinear + theorem SimpleGraph.TripartiteFromTriangles.map_toTriangle_disjoint + theorem SimpleGraph.TripartiteFromTriangles.rel_irrefl + theorem SimpleGraph.TripartiteFromTriangles.rel_symm + def SimpleGraph.TripartiteFromTriangles.toTriangle + theorem SimpleGraph.TripartiteFromTriangles.toTriangle_is3Clique + theorem SimpleGraph.TripartiteFromTriangles.toTriangle_surjOn 2024-05-07 06:40:09 5e84313 chore: update Std -> Batteries (#12720) ESTIMATED CHANGES Modified LongestPole/Main.lean Modified Mathlib/Algebra/BigOperators/Basic.lean Modified Mathlib/Algebra/BigOperators/Finprod.lean Modified Mathlib/Algebra/DirectSum/Basic.lean Modified Mathlib/Algebra/HierarchyDesign.lean Modified Mathlib/Algebra/Order/Ring/WithTop.lean Modified Mathlib/CategoryTheory/ConcreteCategory/Bundled.lean Modified Mathlib/Control/Functor.lean Modified Mathlib/Data/Array/Basic.lean Modified Mathlib/Data/Array/ExtractLemmas.lean Modified Mathlib/Data/BinaryHeap.lean Modified Mathlib/Data/BitVec/Defs.lean Modified Mathlib/Data/DList/Basic.lean + def Batteries.DList.join + theorem Batteries.DList_lazy + theorem Batteries.DList_singleton - def Std.DList.join - theorem Std.DList_lazy - theorem Std.DList_singleton Modified Mathlib/Data/DList/Defs.lean + def Batteries.DList.lazy_ofList + theorem Batteries.DList.ofList_toList + theorem Batteries.DList.toList_append + theorem Batteries.DList.toList_cons + theorem Batteries.DList.toList_empty + theorem Batteries.DList.toList_ofList + theorem Batteries.DList.toList_push + theorem Batteries.DList.toList_singleton - def Std.DList.lazy_ofList - theorem Std.DList.ofList_toList - theorem Std.DList.toList_append - theorem Std.DList.toList_cons - theorem Std.DList.toList_empty - theorem Std.DList.toList_ofList - theorem Std.DList.toList_push - theorem Std.DList.toList_singleton Modified Mathlib/Data/DList/Instances.lean + def Batteries.DList.listEquivDList - def Std.DList.listEquivDList Modified Mathlib/Data/Fin/Basic.lean Modified Mathlib/Data/Fintype/Basic.lean Modified Mathlib/Data/HashMap.lean + def Batteries.HashMap.consVal + def Batteries.HashMap.keys + def Batteries.HashMap.values + def Batteries.RBSet.insertList - def Std.HashMap.consVal - def Std.HashMap.keys - def Std.HashMap.values - def Std.RBSet.insertList Modified Mathlib/Data/Int/ModEq.lean Modified Mathlib/Data/LazyList/Basic.lean Modified Mathlib/Data/List/Basic.lean Modified Mathlib/Data/List/Defs.lean Modified Mathlib/Data/List/EditDistance/Defs.lean Modified Mathlib/Data/List/TFAE.lean Modified Mathlib/Data/MLList/BestFirst.lean Modified Mathlib/Data/MLList/Dedup.lean Modified Mathlib/Data/MLList/DepthFirst.lean Modified Mathlib/Data/MLList/IO.lean Modified Mathlib/Data/MLList/Split.lean Modified Mathlib/Data/Rat/Init.lean Modified Mathlib/Data/Rbtree/Init.lean Modified Mathlib/Data/Seq/Seq.lean Modified Mathlib/Data/Seq/WSeq.lean Modified Mathlib/Data/String/Defs.lean Modified Mathlib/Data/Tree.lean Modified Mathlib/Data/UnionFind.lean Modified Mathlib/Data/Vector.lean Modified Mathlib/Init/Align.lean Modified Mathlib/Init/Classes/Order.lean Modified Mathlib/Init/Data/Bool/Basic.lean Modified Mathlib/Init/Data/Int/Basic.lean Modified Mathlib/Init/Data/Int/DivMod.lean Modified Mathlib/Init/Data/Int/Lemmas.lean Modified Mathlib/Init/Data/List/Basic.lean Modified Mathlib/Init/Data/List/Instances.lean Modified Mathlib/Init/Data/List/Lemmas.lean Modified Mathlib/Init/Data/Nat/GCD.lean Modified Mathlib/Init/Data/Nat/Lemmas.lean Modified Mathlib/Init/Data/Option/Lemmas.lean Modified Mathlib/Init/Data/Quot.lean Modified Mathlib/Init/Data/Rat/Basic.lean Modified Mathlib/Init/Order/Defs.lean Modified Mathlib/Init/Set.lean Modified Mathlib/Lean/Expr/Basic.lean Modified Mathlib/Lean/Meta.lean Modified Mathlib/Lean/Meta/Simp.lean Modified Mathlib/Lean/Name.lean +/- def allNamesByModule Modified Mathlib/Logic/Basic.lean Modified Mathlib/Mathport/Notation.lean Modified Mathlib/Mathport/Syntax.lean Modified Mathlib/NumberTheory/ArithmeticFunction.lean Modified Mathlib/Order/SetNotation.lean Modified Mathlib/Tactic/ApplyCongr.lean Modified Mathlib/Tactic/Attr/Core.lean Modified Mathlib/Tactic/Basic.lean Modified Mathlib/Tactic/CC/Datatypes.lean Modified Mathlib/Tactic/Cases.lean Modified Mathlib/Tactic/CategoryTheory/Elementwise.lean Modified Mathlib/Tactic/Core.lean Modified Mathlib/Tactic/Eqns.lean Modified Mathlib/Tactic/Explode.lean Modified Mathlib/Tactic/ExtractGoal.lean Modified Mathlib/Tactic/Find.lean Modified Mathlib/Tactic/FunProp/Core.lean Modified Mathlib/Tactic/FunProp/FunctionData.lean Modified Mathlib/Tactic/FunProp/RefinedDiscrTree.lean Modified Mathlib/Tactic/FunProp/Theorems.lean Modified Mathlib/Tactic/FunProp/Types.lean Modified Mathlib/Tactic/GCongr/Core.lean Modified Mathlib/Tactic/GCongr/ForwardAttr.lean Modified Mathlib/Tactic/Hint.lean Modified Mathlib/Tactic/Linarith/Datatypes.lean Modified Mathlib/Tactic/Linarith/Elimination.lean Modified Mathlib/Tactic/Linarith/Frontend.lean Modified Mathlib/Tactic/Linarith/Lemmas.lean Modified Mathlib/Tactic/Linarith/Parsing.lean Modified Mathlib/Tactic/Linarith/Preprocessing.lean Modified Mathlib/Tactic/Lint.lean +/- def Std.Tactic.Lint.structureInType Modified Mathlib/Tactic/NormNum/Core.lean Modified Mathlib/Tactic/Propose.lean Modified Mathlib/Tactic/Recall.lean Modified Mathlib/Tactic/Sat/FromLRAT.lean Modified Mathlib/Tactic/Says.lean Modified Mathlib/Tactic/Simps/Basic.lean Modified Mathlib/Tactic/Simps/NotationClass.lean Modified Mathlib/Tactic/Tauto.lean Modified Mathlib/Tactic/ToAdditive.lean Modified Mathlib/Tactic/Use.lean Modified Mathlib/Tactic/Widget/Calc.lean Modified Mathlib/Tactic/Widget/Conv.lean Modified Mathlib/Testing/SlimCheck/Functions.lean Modified Mathlib/Util/DischargerAsTactic.lean Modified Mathlib/Util/LongNames.lean +/- def printNameHashMap Modified Mathlib/Util/Superscript.lean Modified Mathlib/Util/WhatsNew.lean Modified lake-manifest.json Modified lakefile.lean Modified scripts/checkYaml.lean Modified scripts/noshake.json Modified test/Clean.lean Modified test/MLList.lean Modified test/MkIffOfInductive.lean Modified test/choose.lean Modified test/lift.lean Modified test/propose.lean Modified test/solve_by_elim/basic.lean Modified test/trans.lean 2024-05-07 03:11:52 f05781e refactor(Measure): improve defeq for `⊤` (#12706) Now `(⊤ : Measure α).toOuterMeasure = ⊤` is defeq. ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Measure/MeasureSpace.lean +/- theorem MeasureTheory.OuterMeasure.toMeasure_top 2024-05-07 01:05:37 21b3a48 refactor: replace `@[reducible]` with `abbrev` (#12614) A test to see how many uses of `@[reducible]` in Mathlib can be replaced with `abbrev`. **TODOs:** * `@[to_additive (attr := reducible)] def` * `attribute [reducible] ConcreteCategory.forget` ESTIMATED CHANGES Modified Archive/Arithcc.lean - def Arithcc.Identifier - def Arithcc.Register - def Arithcc.Word Modified Mathlib/Algebra/Algebra/Basic.lean - def Algebra.semiringToRing Modified Mathlib/Algebra/Algebra/Defs.lean - def Algebra.ofModule' - def Algebra.ofModule Modified Mathlib/Algebra/Algebra/NonUnitalSubalgebra.lean - def NonUnitalAlgHom.rangeRestrict Modified Mathlib/Algebra/Algebra/Subalgebra/Basic.lean - def AlgHom.rangeRestrict Modified Mathlib/Algebra/DirectLimit.lean Modified Mathlib/Algebra/Field/Basic.lean Modified Mathlib/Algebra/Field/MinimalAxioms.lean - def Field.ofMinimalAxioms Modified Mathlib/Algebra/Group/Aut.lean Modified Mathlib/Algebra/Group/InjSurj.lean Modified Mathlib/Algebra/GroupRingAction/Basic.lean - def MulSemiringAction.compHom Modified Mathlib/Algebra/GroupWithZero/InjSurj.lean Modified Mathlib/Algebra/HierarchyDesign.lean Modified Mathlib/Algebra/Homology/ExactSequence.lean - def CategoryTheory.ComposableArrows.sc' Modified Mathlib/Algebra/Homology/ShortComplex/HomologicalComplex.lean Modified Mathlib/Algebra/Invertible/Basic.lean - def invertibleOfInvertibleMul - def invertibleOfMulInvertible Modified Mathlib/Algebra/Invertible/Defs.lean - def Invertible.copy - def Invertible.mul Modified Mathlib/Algebra/Lie/OfAssociative.lean - def LieRingModule.ofAssociativeModule Modified Mathlib/Algebra/Module/Defs.lean - def Function.Surjective.moduleLeft - def Module.addCommMonoidToAddCommGroup - def Module.compHom Modified Mathlib/Algebra/Module/Injective.lean - def Module.Baer.supExtensionOfMaxSingleton Modified Mathlib/Algebra/Module/MinimalAxioms.lean - def Module.ofMinimalAxioms Modified Mathlib/Algebra/Module/Submodule/Range.lean - def LinearMap.rangeRestrict Modified Mathlib/Algebra/Module/Torsion.lean - def Module.IsTorsion' - def Module.IsTorsion - def Module.IsTorsionBy - def Module.IsTorsionBySet - def Submodule.torsion Modified Mathlib/Algebra/MonoidAlgebra/Degree.lean - def AddMonoidAlgebra.infDegree - def AddMonoidAlgebra.supDegree Modified Mathlib/Algebra/Order/Field/InjSurj.lean - def Function.Injective.linearOrderedField - def Function.Injective.linearOrderedSemifield Modified Mathlib/Algebra/Order/GroupWithZero/Canonical.lean - def Function.Injective.linearOrderedCommMonoidWithZero Modified Mathlib/Algebra/Order/Kleene.lean - def IdemSemiring.ofSemiring Modified Mathlib/Algebra/Order/Nonneg/Ring.lean Modified Mathlib/Algebra/Order/Ring/Defs.lean - def StrictOrderedCommRing.toOrderedCommRing' - def StrictOrderedCommSemiring.toOrderedCommSemiring' - def StrictOrderedRing.toOrderedRing' - def StrictOrderedSemiring.toOrderedSemiring' Modified Mathlib/Algebra/Order/Ring/InjSurj.lean - def Function.Injective.linearOrderedRing Modified Mathlib/Algebra/Order/Ring/Star.lean - def StarOrderedRing.toOrderedCommRing - def StarOrderedRing.toOrderedCommSemiring Modified Mathlib/Algebra/Order/Sub/Canonical.lean - def CanonicallyOrderedAddCommMonoid.toAddCancelCommMonoid Modified Mathlib/Algebra/Quandle.lean - def Quandle.Conj Modified Mathlib/Algebra/Quotient.lean - def HasQuotient.Quotient Modified Mathlib/Algebra/Ring/Aut.lean - def RingAut Modified Mathlib/Algebra/Ring/BooleanRing.lean - def BooleanAlgebra.toBooleanRing - def GeneralizedBooleanAlgebra.toNonUnitalCommRing Modified Mathlib/Algebra/Ring/CentroidHom.lean - def CentroidHom.commRing Modified Mathlib/Algebra/Ring/CompTypeclasses.lean Modified Mathlib/Algebra/Ring/InjSurj.lean Modified Mathlib/Algebra/Ring/MinimalAxioms.lean - def CommRing.ofMinimalAxioms - def Ring.ofMinimalAxioms Modified Mathlib/Algebra/Ring/Regular.lean - def NoZeroDivisors.toCancelCommMonoidWithZero - def NoZeroDivisors.toCancelMonoidWithZero Modified Mathlib/Algebra/SMulWithZero.lean Modified Mathlib/Algebra/Star/Basic.lean - def starMulOfComm - def starRingOfComm Modified Mathlib/Algebra/Star/NonUnitalSubalgebra.lean - def NonUnitalStarAlgHom.rangeRestrict Modified Mathlib/Algebra/Star/Subalgebra.lean - def StarAlgebra.adjoinCommRingOfComm - def StarAlgebra.adjoinCommSemiringOfComm Modified Mathlib/AlgebraicTopology/FundamentalGroupoid/Basic.lean - def FundamentalGroupoid.fromPath - def FundamentalGroupoid.fromTop - def FundamentalGroupoid.toPath - def FundamentalGroupoid.toTop Modified Mathlib/Analysis/Calculus/InverseFunctionTheorem/Deriv.lean - def HasStrictDerivAt.localInverse Modified Mathlib/Analysis/InnerProductSpace/PiL2.lean - def EuclideanSpace Modified Mathlib/Analysis/InnerProductSpace/Projection.lean - def OrthogonalFamily.decomposition Modified Mathlib/Analysis/LocallyConvex/Bounded.lean - def Bornology.vonNBornology Modified Mathlib/Analysis/Normed/Field/Basic.lean - def NonUnitalNormedCommRing.induced - def NonUnitalNormedRing.induced - def NonUnitalSeminormedCommRing.induced - def NonUnitalSeminormedRing.induced - def NormedCommRing.induced - def NormedDivisionRing.induced - def NormedField.induced - def NormedRing.induced - def SeminormedCommRing.induced - def SeminormedRing.induced Modified Mathlib/Analysis/NormedSpace/Basic.lean - def NormedAlgebra.induced - def NormedSpace.induced Modified Mathlib/Analysis/NormedSpace/ENorm.lean - def ENorm.emetricSpace Modified Mathlib/Analysis/NormedSpace/PiLp.lean - def PiLp.pseudoMetricAux Modified Mathlib/Analysis/NormedSpace/ProdLp.lean - def WithLp.prodPseudoMetricAux Modified Mathlib/Analysis/NormedSpace/Unitization.lean Modified Mathlib/CategoryTheory/ConcreteCategory/Basic.lean - def CategoryTheory.ConcreteCategory.instFunLike - def CategoryTheory.forget - def CategoryTheory.forget₂ Modified Mathlib/CategoryTheory/ConcreteCategory/BundledHom.lean - def CategoryTheory.BundledHom.MapHom Modified Mathlib/CategoryTheory/Limits/Constructions/Equalizers.lean - def CategoryTheory.Limits.HasCoequalizersOfHasPushoutsAndBinaryCoproducts.coequalizerCocone - def CategoryTheory.Limits.HasCoequalizersOfHasPushoutsAndBinaryCoproducts.constructCoequalizer - def CategoryTheory.Limits.HasEqualizersOfHasPullbacksAndBinaryProducts.constructEqualizer - def CategoryTheory.Limits.HasEqualizersOfHasPullbacksAndBinaryProducts.equalizerCone Modified Mathlib/CategoryTheory/Limits/Constructions/Over/Products.lean - def CategoryTheory.Over.ConstructProducts.widePullbackDiagramOfDiagramOver Modified Mathlib/CategoryTheory/Limits/Shapes/Terminal.lean - def CategoryTheory.Limits.colimitOfInitial - def CategoryTheory.Limits.colimitOfTerminal - def CategoryTheory.Limits.limitOfInitial - def CategoryTheory.Limits.limitOfTerminal Modified Mathlib/CategoryTheory/Localization/CalculusOfFractions/Fractions.lean - def CategoryTheory.MorphismProperty.LeftFraction₂.fst - def CategoryTheory.MorphismProperty.LeftFraction₂.snd - def CategoryTheory.MorphismProperty.LeftFraction₂.symm - def CategoryTheory.MorphismProperty.LeftFraction₃.forgetFst - def CategoryTheory.MorphismProperty.LeftFraction₃.forgetSnd - def CategoryTheory.MorphismProperty.LeftFraction₃.forgetThd - def CategoryTheory.MorphismProperty.LeftFraction₃.fst - def CategoryTheory.MorphismProperty.LeftFraction₃.snd - def CategoryTheory.MorphismProperty.LeftFraction₃.thd - def CategoryTheory.MorphismProperty.RightFraction₂.fst - def CategoryTheory.MorphismProperty.RightFraction₂.snd Modified Mathlib/CategoryTheory/Localization/CalculusOfFractions/Preadditive.lean - def CategoryTheory.MorphismProperty.LeftFraction.neg - def CategoryTheory.MorphismProperty.LeftFraction₂.add Modified Mathlib/CategoryTheory/Monad/Limits.lean - def CategoryTheory.Monad.ForgetCreatesColimits.lambda Modified Mathlib/CategoryTheory/Monoidal/Braided/Basic.lean - def CategoryTheory.reverseBraiding Modified Mathlib/CategoryTheory/Monoidal/OfChosenFiniteProducts/Basic.lean - def CategoryTheory.Limits.BinaryFan.associator - def CategoryTheory.Limits.BinaryFan.associatorOfLimitCone - def CategoryTheory.MonoidalOfChosenFiniteProducts.tensorHom - def CategoryTheory.MonoidalOfChosenFiniteProducts.tensorObj Modified Mathlib/CategoryTheory/Monoidal/Opposite.lean - def CategoryTheory.Iso.mop - def CategoryTheory.Iso.unmop Modified Mathlib/CategoryTheory/Monoidal/Skeleton.lean - def CategoryTheory.monoidOfSkeletalMonoidal Modified Mathlib/CategoryTheory/SingleObj.lean - def MonoidHom.toFunctor Modified Mathlib/Combinatorics/Enumerative/Catalan.lean - def Tree.pairwiseNode Modified Mathlib/Combinatorics/Enumerative/Composition.lean - def Composition.length Modified Mathlib/Combinatorics/Quiver/Basic.lean - def Quiver.IsThin Modified Mathlib/Combinatorics/Quiver/Covering.lean - def Quiver.Costar - def Quiver.PathStar - def Quiver.Star Modified Mathlib/Combinatorics/Quiver/SingleObj.lean - def Quiver.SingleObj.hasInvolutiveReverse - def Quiver.SingleObj.hasReverse Modified Mathlib/Combinatorics/SimpleGraph/Connectivity.lean - def SimpleGraph.Walk.mapLe - def SimpleGraph.Walk.toDeleteEdges Modified Mathlib/Combinatorics/SimpleGraph/Ends/Defs.lean - def SimpleGraph.ComponentCompl.hom - def SimpleGraph.ComponentCompl - def SimpleGraph.componentComplMk Modified Mathlib/Combinatorics/SimpleGraph/Finite.lean - def SimpleGraph.LocallyFinite - def SimpleGraph.edgeFinset Modified Mathlib/Combinatorics/SimpleGraph/Maps.lean - def SimpleGraph.induce - def SimpleGraph.spanningCoe Modified Mathlib/Combinatorics/SimpleGraph/Subgraph.lean - def SimpleGraph.Subgraph.deleteVerts - def SimpleGraph.Subgraph.vert Modified Mathlib/Combinatorics/SimpleGraph/Trails.lean - def SimpleGraph.Walk.IsTrail.edgesFinset Modified Mathlib/Combinatorics/Young/YoungDiagram.lean Modified Mathlib/Computability/Reduce.lean Modified Mathlib/Computability/TuringMachine.lean Modified Mathlib/Control/Bifunctor.lean - def Bifunctor.fst - def Bifunctor.snd Modified Mathlib/Control/Bitraversable/Lemmas.lean - def Bitraversable.tfst - def Bitraversable.tsnd Modified Mathlib/Control/Fold.lean - def Monoid.Foldl - def Monoid.Foldr - def Monoid.foldlM - def Monoid.foldrM Modified Mathlib/Control/Functor.lean - def Functor.mapConstRev Modified Mathlib/Control/Monad/Cont.lean - def Cont Modified Mathlib/Control/Monad/Writer.lean - def Writer Modified Mathlib/Control/ULiftable.lean - def ULiftable.down - def ULiftable.up Modified Mathlib/Data/Erased.lean - def Erased.OutType Modified Mathlib/Data/Finset/Basic.lean Modified Mathlib/Data/Fintype/Order.lean - def Fintype.toBoundedOrder - def Fintype.toOrderBot - def Fintype.toOrderTop Modified Mathlib/Data/Int/SuccPred.lean Modified Mathlib/Data/Matrix/Basic.lean - def Matrix.subDown - def Matrix.subDownLeft - def Matrix.subDownRight - def Matrix.subLeft - def Matrix.subRight - def Matrix.subUp - def Matrix.subUpLeft - def Matrix.subUpRight Modified Mathlib/Data/Nat/Cast/Defs.lean Modified Mathlib/Data/Nat/SuccPred.lean Modified Mathlib/Data/Nat/Upto.lean - def Nat.Upto Modified Mathlib/Data/Option/Defs.lean - def Option.iget Modified Mathlib/Data/PFunctor/Multivariate/Basic.lean - def MvPFunctor.appendContents Modified Mathlib/Data/PFunctor/Multivariate/W.lean - def MvPFunctor.objAppend1 Modified Mathlib/Data/Real/GoldenRatio.lean - def goldenConj - def goldenRatio Modified Mathlib/Data/Set/Defs.lean - def Set.RightInvOn Modified Mathlib/Data/Setoid/Basic.lean - def Setoid.comap Modified Mathlib/Data/Sym/Basic.lean - def Vector.Perm.isSetoid Modified Mathlib/Data/Sym/Sym2.lean - def Sym2 Modified Mathlib/Data/TwoPointing.lean Modified Mathlib/Data/Vector3.lean - def Vector3.nth - def Vector3.ofFn Modified Mathlib/Data/W/Basic.lean Modified Mathlib/Data/ZMod/Algebra.lean - def ZMod.algebra' - def ZMod.algebra Modified Mathlib/Data/ZMod/Module.lean - def AddCommGroup.zmodModule - def AddCommMonoid.zmodModule Modified Mathlib/Deprecated/Group.lean - def Units.map' Modified Mathlib/FieldTheory/IsAlgClosed/AlgebraicClosure.lean - def AlgebraicClosure.MonicIrreducible Modified Mathlib/Geometry/Manifold/ChartedSpace.lean - def continuousPregroupoid Modified Mathlib/Geometry/Manifold/ContMDiff/Defs.lean - def Smooth - def SmoothAt - def SmoothOn - def SmoothWithinAt Modified Mathlib/Geometry/Manifold/ContMDiffMap.lean - def SmoothMap Modified Mathlib/Geometry/Manifold/DerivationBundle.lean - def PointDerivation Modified Mathlib/Geometry/Manifold/SmoothManifoldWithCorners.lean - def ModelWithCorners.tangent Modified Mathlib/Geometry/Manifold/VectorBundle/SmoothSection.lean - def SmoothSection Modified Mathlib/Geometry/Manifold/VectorBundle/Tangent.lean - def TangentBundle Modified Mathlib/GroupTheory/GroupAction/Defs.lean - def AddAction.ofEndHom - def DistribMulAction.compHom - def DistribSMul.compFun - def Function.Surjective.distribMulActionLeft - def Function.Surjective.distribSMulLeft - def Function.Surjective.smulZeroClassLeft - def MulAction.ofEndHom - def MulDistribMulAction.compHom - def SMulZeroClass.compFun Modified Mathlib/GroupTheory/PGroup.lean Modified Mathlib/Init/Function.lean - def Function.onFun - def Function.swap Modified Mathlib/LinearAlgebra/AffineSpace/AffineSubspace.lean - def AffineSubspace.toAddTorsor Modified Mathlib/LinearAlgebra/BilinearForm/TensorProduct.lean Modified Mathlib/LinearAlgebra/CliffordAlgebra/EvenEquiv.lean - def CliffordAlgebra.EquivEven.Q' Modified Mathlib/LinearAlgebra/Determinant.lean - def LinearMap.equivOfDetNeZero Modified Mathlib/LinearAlgebra/Dual.lean - def Module.Dual Modified Mathlib/LinearAlgebra/ExteriorAlgebra/Basic.lean - def ExteriorAlgebra.ι - def ExteriorAlgebra Modified Mathlib/LinearAlgebra/FiniteDimensional.lean - def FiniteDimensional Modified Mathlib/LinearAlgebra/GeneralLinearGroup.lean - def LinearMap.GeneralLinearGroup Modified Mathlib/LinearAlgebra/Isomorphisms.lean - def LinearMap.subToSupQuotient Modified Mathlib/LinearAlgebra/LinearPMap.lean Modified Mathlib/LinearAlgebra/Matrix/PosDef.lean Modified Mathlib/LinearAlgebra/TensorPower.lean - def TensorPower Modified Mathlib/Logic/Basic.lean - def Function.swap₂ - def hidden Modified Mathlib/Logic/Embedding/Basic.lean Modified Mathlib/Logic/Equiv/Basic.lean - def Equiv.Perm.sumCongr Modified Mathlib/Logic/Equiv/Defs.lean - def Equiv.Perm.sigmaCongrRight - def Equiv.Perm Modified Mathlib/Logic/Equiv/TransferInstance.lean Modified Mathlib/Logic/Nonempty.lean Modified Mathlib/Logic/Unique.lean - def Unique.mk' - def uniqueOfSubsingleton Modified Mathlib/MeasureTheory/Category/MeasCat.lean - def Borel Modified Mathlib/MeasureTheory/Function/SimpleFuncDenseLp.lean - def MeasureTheory.Lp.simpleFunc.toLp Modified Mathlib/ModelTheory/Algebra/Field/Basic.lean Modified Mathlib/ModelTheory/Algebra/Ring/Basic.lean - def FirstOrder.Ring.addOfRingStructure - def FirstOrder.Ring.compatibleRingOfRingStructure - def FirstOrder.Ring.mulOfRingStructure - def FirstOrder.Ring.negOfRingStructure - def FirstOrder.Ring.oneOfRingStructure - def FirstOrder.Ring.zeroOfRingStructure Modified Mathlib/ModelTheory/Syntax.lean - def FirstOrder.Language.Formula - def FirstOrder.Language.Sentence - def FirstOrder.Language.Theory Modified Mathlib/NumberTheory/NumberField/Embeddings.lean - def NumberField.ComplexEmbedding.IsReal - def NumberField.ComplexEmbedding.conjugate Modified Mathlib/NumberTheory/Padics/PadicNumbers.lean - def PadicSeq Modified Mathlib/NumberTheory/Zsqrtd/GaussianInt.lean - def GaussianInt Modified Mathlib/Order/Basic.lean - def LinearOrder.lift' - def LinearOrder.lift - def LinearOrder.liftWithOrd' - def LinearOrder.liftWithOrd - def PartialOrder.lift - def Preorder.lift Modified Mathlib/Order/BooleanAlgebra.lean - def GeneralizedBooleanAlgebra.toBooleanAlgebra Modified Mathlib/Order/BoundedOrder.lean - def BoundedOrder.lift - def OrderBot.lift - def OrderTop.lift Modified Mathlib/Order/Bounds/Basic.lean - def IsGreatest.orderTop - def IsLeast.orderBot Modified Mathlib/Order/Circular.lean - def LE.toBtw - def LT.toSBtw - def LinearOrder.toCircularOrder - def PartialOrder.toCircularPartialOrder - def Preorder.toCircularPreorder Modified Mathlib/Order/CompleteBooleanAlgebra.lean Modified Mathlib/Order/CompleteLattice.lean Modified Mathlib/Order/CompleteLatticeIntervals.lean Modified Mathlib/Order/ConditionallyCompleteLattice/Basic.lean Modified Mathlib/Order/Disjoint.lean - def Complementeds Modified Mathlib/Order/GaloisConnection.lean - def GaloisCoinsertion.liftBoundedOrder - def GaloisCoinsertion.liftCompleteLattice - def GaloisCoinsertion.liftLattice - def GaloisCoinsertion.liftOrderBot - def GaloisCoinsertion.liftSemilatticeInf - def GaloisCoinsertion.liftSemilatticeSup - def GaloisInsertion.liftBoundedOrder - def GaloisInsertion.liftCompleteLattice - def GaloisInsertion.liftLattice - def GaloisInsertion.liftOrderTop - def GaloisInsertion.liftSemilatticeInf - def GaloisInsertion.liftSemilatticeSup Modified Mathlib/Order/Grade.lean - def GradeBoundedOrder.liftLeft - def GradeBoundedOrder.liftRight - def GradeMaxOrder.liftLeft - def GradeMaxOrder.liftRight - def GradeMinOrder.finToNat - def GradeMinOrder.liftLeft - def GradeMinOrder.liftRight - def GradeOrder.finToNat - def GradeOrder.liftLeft - def GradeOrder.liftRight Modified Mathlib/Order/Heyting/Basic.lean - def CoheytingAlgebra.ofHNot - def CoheytingAlgebra.ofSDiff - def HeytingAlgebra.ofCompl - def HeytingAlgebra.ofHImp - def LinearOrder.toBiheytingAlgebra Modified Mathlib/Order/Heyting/Hom.lean Modified Mathlib/Order/Heyting/Regular.lean - def BooleanAlgebra.ofRegular Modified Mathlib/Order/InitialSeg.lean - def PrincipalSeg.pemptyToPunit Modified Mathlib/Order/Interval/Basic.lean - def Interval Modified Mathlib/Order/Interval/Finset/Defs.lean - def Fintype.toLocallyFiniteOrder - def OrderIso.locallyFiniteOrder - def OrderIso.locallyFiniteOrderBot - def OrderIso.locallyFiniteOrderTop Modified Mathlib/Order/Lattice.lean - def DistribLattice.ofInfSupLe - def Lattice.toLinearOrder Modified Mathlib/Order/LatticeIntervals.lean Modified Mathlib/Order/OmegaCompletePartialOrder.lean Modified Mathlib/Order/Partition/Finpartition.lean - def IsAtom.uniqueFinpartition Modified Mathlib/Order/RelClasses.lean - def WellFoundedGT - def WellFoundedLT - def linearOrderOfSTO - def partialOrderOfSO Modified Mathlib/RingTheory/AdicCompletion/Basic.lean - def Hausdorffification Modified Mathlib/RingTheory/Algebraic.lean Modified Mathlib/RingTheory/Artinian.lean - def IsArtinianRing Modified Mathlib/RingTheory/GradedAlgebra/Basic.lean - def GradedAlgebra.ofAlgHom - def GradedAlgebra Modified Mathlib/RingTheory/Ideal/Basic.lean - def Ideal Modified Mathlib/RingTheory/Ideal/Cotangent.lean - def LocalRing.CotangentSpace Modified Mathlib/RingTheory/Ideal/LocalRing.lean Modified Mathlib/RingTheory/Ideal/Quotient.lean Modified Mathlib/RingTheory/Localization/Basic.lean Modified Mathlib/RingTheory/Localization/FractionRing.lean - def FractionRing Modified Mathlib/RingTheory/Multiplicity.lean - def multiplicity.Finite Modified Mathlib/RingTheory/Noetherian.lean - def IsNoetherianRing Modified Mathlib/RingTheory/TensorProduct/Basic.lean - def Algebra.TensorProduct.rightAlgebra Modified Mathlib/RingTheory/UniqueFactorizationDomain.lean - def Associates.FactorSet.{u} Modified Mathlib/RingTheory/Valuation/RamificationGroup.lean - def ValuationSubring.decompositionSubgroup Modified Mathlib/RingTheory/WittVector/Basic.lean Modified Mathlib/SetTheory/Cardinal/SchroederBernstein.lean Modified Mathlib/SetTheory/Game/Domineering.lean - def SetTheory.PGame.Domineering.Board Modified Mathlib/Tactic/CategoryTheory/BicategoryCoherence.lean - def Mathlib.Tactic.BicategoryCoherence.BicategoricalCoherence.hom Modified Mathlib/Tactic/FunProp/StateList.lean - def Mathlib.Meta.FunProp.StateListM Modified Mathlib/Tactic/Linarith/Datatypes.lean - def Linarith.Linexp Modified Mathlib/Tactic/Linarith/Elimination.lean - def Linarith.LinarithM Modified Mathlib/Tactic/Linarith/Parsing.lean - def Linarith.Monom - def Linarith.Sum Modified Mathlib/Tactic/NormNum/Result.lean - def Mathlib.Meta.NormNum.BoolResult Modified Mathlib/Topology/Algebra/Algebra.lean - def Subalgebra.commRingTopologicalClosure Modified Mathlib/Topology/Algebra/Module/Basic.lean - def ContinuousLinearMap.rangeRestrict Modified Mathlib/Topology/Algebra/Module/Determinant.lean Modified Mathlib/Topology/Algebra/StarSubalgebra.lean - def StarSubalgebra.commRingTopologicalClosure - def StarSubalgebra.commSemiringTopologicalClosure Modified Mathlib/Topology/Bornology/Basic.lean - def Bornology.cofinite Modified Mathlib/Topology/Bornology/Constructions.lean - def Bornology.induced Modified Mathlib/Topology/Category/TopCat/Basic.lean Modified Mathlib/Topology/EMetricSpace/Basic.lean - def EMetricSpace.ofT0PseudoEMetricSpace Modified Mathlib/Topology/FiberBundle/Basic.lean - def FiberBundleCore.TotalSpace Modified Mathlib/Topology/Homotopy/HomotopyGroup.lean - def Cube.insertAt - def Cube.splitAt - def GenLoop.cCompInsert - def HomotopyGroup.Pi - def HomotopyGroup.auxGroup - def LoopSpace Modified Mathlib/Topology/Homotopy/Product.lean - def Path.Homotopic.proj - def Path.Homotopic.projLeft - def Path.Homotopic.projRight Modified Mathlib/Topology/MetricSpace/Basic.lean - def EMetricSpace.toMetricSpaceOfDist - def Embedding.comapMetricSpace - def MetricSpace.induced - def MetricSpace.ofT0PseudoMetricSpace - def MetricSpace.replaceTopology - def UniformEmbedding.comapMetricSpace Modified Mathlib/Topology/MetricSpace/GromovHausdorffRealized.lean Modified Mathlib/Topology/MetricSpace/PseudoMetric.lean - def Bornology.ofDist - def PseudoEMetricSpace.toPseudoMetricSpace - def PseudoEMetricSpace.toPseudoMetricSpaceOfDist - def PseudoMetricSpace.induced - def PseudoMetricSpace.replaceBornology - def PseudoMetricSpace.replaceTopology - def PseudoMetricSpace.replaceUniformity Modified Mathlib/Topology/OmegaCompletePartialOrder.lean - def Scott Modified Mathlib/Topology/Order/Category/FrameAdjunction.lean - def Locale.PT Modified Mathlib/Topology/Sheaves/SheafCondition/EqualizerProducts.lean - def TopCat.Presheaf.SheafConditionEqualizerProducts.diagram Modified Mathlib/Topology/UniformSpace/Basic.lean - def UniformSpace.comap - def UniformSpace.ofCore - def UniformSpace.ofCoreEq - def UniformSpace.replaceTopology - def UniformSpace.toCore Modified Mathlib/Topology/VectorBundle/Hom.lean Modified test/Inhabit.lean - def Unique.mk' Modified test/MLList.lean - def S 2024-05-06 18:48:33 4199e29 feat: add `strictMono_mersenne` and corollaries (#12687) Incl. upgrade of `mersenne_pos` to an `Iff`. Also add a `positivity` extension and use it in a few lemmas. ESTIMATED CHANGES Modified Archive/Wiedijk100Theorems/PerfectNumbers.lean Modified Mathlib/NumberTheory/LucasLehmer.lean + def Mathlib.Meta.Positivity.evalMersenne + theorem mersenne_le_mersenne + theorem mersenne_lt_mersenne +/- theorem mersenne_pos + theorem mersenne_zero +/- theorem one_lt_mersenne + theorem strictMono_mersenne 2024-05-06 17:51:02 6a17032 doc: Fix typo in `LinearMap.CompatibleSMul` (#12671) ESTIMATED CHANGES Modified Mathlib/Algebra/Module/LinearMap/Basic.lean 2024-05-06 16:43:13 20a3902 feat: More additive energy lemmas (#12569) Also rename `additiveEnergy`/`multiplicativeEnergy` to `addEnergy`/`mulEnergy`. From LeanAPAP ESTIMATED CHANGES Modified Mathlib/Combinatorics/Additive/Energy.lean + theorem Finset.card_sq_le_card_mul_mulEnergy + theorem Finset.le_card_add_mul_mulEnergy + theorem Finset.le_mulEnergy - theorem Finset.le_multiplicativeEnergy + def Finset.mulEnergy + theorem Finset.mulEnergy_comm + theorem Finset.mulEnergy_empty_left + theorem Finset.mulEnergy_empty_right + theorem Finset.mulEnergy_eq_card_filter + theorem Finset.mulEnergy_eq_sum_sq' + theorem Finset.mulEnergy_eq_sum_sq + theorem Finset.mulEnergy_eq_zero_iff + theorem Finset.mulEnergy_mono + theorem Finset.mulEnergy_mono_left + theorem Finset.mulEnergy_mono_right + theorem Finset.mulEnergy_pos + theorem Finset.mulEnergy_pos_iff + theorem Finset.mulEnergy_univ_left + theorem Finset.mulEnergy_univ_right - def Finset.multiplicativeEnergy - theorem Finset.multiplicativeEnergy_comm - theorem Finset.multiplicativeEnergy_empty_left - theorem Finset.multiplicativeEnergy_empty_right - theorem Finset.multiplicativeEnergy_eq_zero_iff - theorem Finset.multiplicativeEnergy_mono - theorem Finset.multiplicativeEnergy_mono_left - theorem Finset.multiplicativeEnergy_mono_right - theorem Finset.multiplicativeEnergy_pos - theorem Finset.multiplicativeEnergy_pos_iff - theorem Finset.multiplicativeEnergy_univ_left - theorem Finset.multiplicativeEnergy_univ_right Modified Mathlib/Data/Finset/Prod.lean 2024-05-06 15:57:27 4a74e05 chore: Move Behrend's construction (#12707) Now that we have a `Combinatorics.Additive.AP` folder, we might as well use it. ESTIMATED CHANGES Modified Mathlib.lean Renamed Mathlib/Combinatorics/Additive/Behrend.lean to Mathlib/Combinatorics/Additive/AP/Three/Behrend.lean Renamed Mathlib/Combinatorics/Additive/AP/Three.lean to Mathlib/Combinatorics/Additive/AP/Three/Defs.lean 2024-05-06 15:57:26 1b80fd0 feat(Data/Quot): add surjective_quotient_mk (#12702) add missing `surjective_quotient_mk` to mirror `surjective_quotient_mk'`, `Quotient.surjective_quotient_mk''`, and `surjective_quot_mk`. ESTIMATED CHANGES Modified Mathlib/Data/Quot.lean + theorem surjective_quotient_mk 2024-05-06 15:07:10 89472cc feat: add `natCast` lemmas for `Matrix.kronecker` (#12703) ESTIMATED CHANGES Modified Mathlib/Data/Matrix/Kronecker.lean + theorem Matrix.kronecker_natCast + theorem Matrix.kronecker_ofNat + theorem Matrix.natCast_kronecker + theorem Matrix.natCast_kronecker_natCast + theorem Matrix.ofNat_kronecker 2024-05-06 15:07:09 57511d5 feat(CompactOpen): add instances (#12667) ESTIMATED CHANGES Modified Mathlib/Topology/CompactOpen.lean + theorem ContinuousMap.inseparable_coe + theorem ContinuousMap.specializes_coe Modified Mathlib/Topology/Separation.lean + theorem IsCompact.exists_isOpen_closure_subset + theorem IsCompact.lift'_closure_nhdsSet + theorem RegularSpace.of_lift'_closure_le 2024-05-06 13:10:02 a169186 chore: use #adaptation_note for labelling adaptation notes (#12672) ESTIMATED CHANGES Modified Mathlib/Algebra/Free.lean Modified Mathlib/Algebra/Homology/Homotopy.lean Modified Mathlib/Analysis/Complex/UpperHalfPlane/Basic.lean Modified Mathlib/Analysis/Convex/Slope.lean Modified Mathlib/Analysis/SpecialFunctions/Log/Deriv.lean Modified Mathlib/Analysis/SpecialFunctions/Stirling.lean Modified Mathlib/CategoryTheory/Abelian/InjectiveResolution.lean Modified Mathlib/CategoryTheory/CofilteredSystem.lean Modified Mathlib/Computability/RegularExpressions.lean Modified Mathlib/Control/Fold.lean Modified Mathlib/Data/DFinsupp/WellFounded.lean Modified Mathlib/Data/Nat/Bitwise.lean Modified Mathlib/Data/Ordmap/Ordnode.lean Modified Mathlib/Data/Ordmap/Ordset.lean Modified Mathlib/Data/Rel.lean Modified Mathlib/Data/String/Basic.lean Modified Mathlib/Data/Subtype.lean Modified Mathlib/Geometry/Euclidean/Inversion/Basic.lean Modified Mathlib/Geometry/Euclidean/Inversion/Calculus.lean Modified Mathlib/Init/Function.lean Modified Mathlib/LinearAlgebra/PiTensorProduct.lean Modified Mathlib/MeasureTheory/Covering/BesicovitchVectorSpace.lean Modified Mathlib/NumberTheory/ModularForms/SlashActions.lean Modified Mathlib/Order/Interval/Finset/Box.lean Modified Mathlib/Probability/Martingale/Upcrossing.lean Modified Mathlib/Probability/Process/HittingTime.lean Modified Mathlib/RingTheory/Polynomial/ScaleRoots.lean Modified Mathlib/SetTheory/Ordinal/Notation.lean Modified Mathlib/Topology/List.lean Modified scripts/noshake.json 2024-05-06 12:00:09 78e447b feat: `BiheytingAlgebra` instances for `Prod`, `Pi`, and `OrderDual` (#12699) ESTIMATED CHANGES Modified Mathlib/Order/Heyting/Basic.lean 2024-05-06 12:00:07 9653793 feat : apply Qq update to add lake manifest (#12698) Mathlib update corresponding to [Qq update PR 42](https://github.com/leanprover-community/quote4/pull/42). The corresponding Qq PR added lake-manifest files into the repository. This PR updates mathlib to this commit of the PR. This PR addresses the warning message `warning: Qq: ignoring missing dependency manifest '././.lake/packages/Qq/lake-manifest.json'` when running `lake update` on a math project. For discussion see [this zulip thread](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/Qq.20manifest.20warning.20in.20new.20math.20project/near/437228437) ESTIMATED CHANGES Modified lake-manifest.json 2024-05-06 12:00:06 8ea47a7 feat: the second derivative is the derivative of the derivative (#12697) Also expand a little bit the API and some cleanups. ESTIMATED CHANGES Modified Mathlib/Analysis/Calculus/ContDiff/Basic.lean Modified Mathlib/Analysis/Calculus/ContDiff/Defs.lean + theorem iteratedFDerivWithin_two_apply + theorem iteratedFDerivWithin_zero_eq + theorem iteratedFDeriv_two_apply - theorem iteratedFDeriv_with_zero_eq Modified Mathlib/Analysis/Calculus/FDeriv/Equiv.lean + theorem LinearIsometryEquiv.comp_fderiv' + theorem fderivWithin_continuousLinearEquiv_comp + theorem fderiv_continuousLinearEquiv_comp' + theorem fderiv_continuousLinearEquiv_comp Modified Mathlib/Topology/Algebra/Module/StrongTopology.lean + theorem ContinuousLinearEquiv.arrowCongr_apply + theorem ContinuousLinearEquiv.arrowCongr_symm 2024-05-06 12:00:05 a4013ca refactor(AlgebraicGeometry.EllipticCurve.Affine): stronger `map_simp` (#12696) ESTIMATED CHANGES Modified Mathlib/AlgebraicGeometry/EllipticCurve/Affine.lean 2024-05-06 12:00:04 f5fbe09 feat: generalize kernel Radon-Nikodym derivative to `CountableOrCountablyGenerated` (#12571) Radon-Nikodym derivatives of finite kernels `kernel α γ` are currently defined under the assumption that `γ` is countably generated. We extend the construction to the case that either `α` is countable or `γ` is countably generated. ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Decomposition/RadonNikodym.lean + theorem MeasureTheory.Measure.rnDeriv_le_one_of_le +/- theorem MeasureTheory.Measure.rnDeriv_mul_rnDeriv Modified Mathlib/Probability/Kernel/RadonNikodym.lean + theorem ProbabilityTheory.kernel.mem_mutuallySingularSetSlice +/- def ProbabilityTheory.kernel.mutuallySingularSet + theorem ProbabilityTheory.kernel.not_mem_mutuallySingularSetSlice +/- theorem ProbabilityTheory.kernel.rnDerivAux_le_one +/- theorem ProbabilityTheory.kernel.rnDerivAux_nonneg 2024-05-06 10:56:33 5bd44fb chore(Data/List/Forall): more migration nthLe -> get (#12645) Rewrite `List.Forall₂.nthLe` and some related theorems in terms of `get`. ESTIMATED CHANGES Modified Mathlib/Data/List/Forall2.lean + theorem List.Forall₂.get +/- theorem List.Forall₂.nthLe + theorem List.forall₂_iff_get +/- theorem List.forall₂_iff_nthLe + theorem List.forall₂_of_length_eq_of_get +/- theorem List.forall₂_of_length_eq_of_nthLe 2024-05-06 08:44:24 e5ecd7d chore: remove pp.proofs.withType, as this is now default (#12689) ESTIMATED CHANGES Modified lakefile.lean 2024-05-06 08:44:23 6b8edd9 chore: Rename Salem-Spencer sets to 3AP-free sets (#12682) Salem and Spencer were neither the first to write a paper on them, nor gave the best bounds, hence the current choice of name is a bit odd (and so is the Wikipedia page). This PR renames `MulSalemSpencer` to `ThreeGPFree` and `AddSalemSpencer` to `ThreeAPFree`. ESTIMATED CHANGES Modified Mathlib.lean Renamed Mathlib/Combinatorics/Additive/SalemSpencer.lean to Mathlib/Combinatorics/Additive/AP/Three.lean - theorem AddSalemSpencer.le_rothNumberNat - theorem MulSalemSpencer.image - theorem MulSalemSpencer.le_mulRothNumber - theorem MulSalemSpencer.mono - theorem MulSalemSpencer.mul_left - theorem MulSalemSpencer.mul_left₀ - theorem MulSalemSpencer.mul_right - theorem MulSalemSpencer.mul_right₀ - theorem MulSalemSpencer.of_image - theorem MulSalemSpencer.prod - theorem MulSalemSpencer.roth_number_eq - def MulSalemSpencer - theorem Set.Subsingleton.mulSalemSpencer + theorem Set.Subsingleton.threeGPFree + theorem ThreeAPFree.le_rothNumberNat + theorem ThreeGPFree.image + theorem ThreeGPFree.le_mulRothNumber + theorem ThreeGPFree.mono + theorem ThreeGPFree.mul_left + theorem ThreeGPFree.mul_left₀ + theorem ThreeGPFree.mul_right + theorem ThreeGPFree.mul_right₀ + theorem ThreeGPFree.of_image + theorem ThreeGPFree.prod + theorem ThreeGPFree.roth_number_eq + def ThreeGPFree - theorem addSalemSpencer_frontier - theorem addSalemSpencer_iff_eq_right - theorem addSalemSpencer_sphere - theorem mulRothNumber_lt_of_forall_not_mulSalemSpencer + theorem mulRothNumber_lt_of_forall_not_threeGPFree - theorem mulSalemSpencer_empty - theorem mulSalemSpencer_insert - theorem mulSalemSpencer_insert_of_lt - theorem mulSalemSpencer_mul_left_iff - theorem mulSalemSpencer_mul_left_iff₀ - theorem mulSalemSpencer_mul_right_iff - theorem mulSalemSpencer_mul_right_iff₀ - theorem mulSalemSpencer_pair - theorem mulSalemSpencer_pi - theorem mulSalemSpencer_singleton + theorem threeAPFree_frontier + theorem threeAPFree_iff_eq_right + theorem threeAPFree_sphere + theorem threeGPFree_empty + theorem threeGPFree_insert + theorem threeGPFree_insert_of_lt + theorem threeGPFree_mul_left_iff + theorem threeGPFree_mul_left_iff₀ + theorem threeGPFree_mul_right_iff + theorem threeGPFree_mul_right_iff₀ + theorem threeGPFree_pair + theorem threeGPFree_pi + theorem threeGPFree_singleton Modified Mathlib/Combinatorics/Additive/Behrend.lean - theorem Behrend.addSalemSpencer_image_sphere + theorem Behrend.threeAPFree_image_sphere Modified Mathlib/Tactic/ToAdditive.lean 2024-05-06 07:35:15 b511b14 chore: use lake build --no-build to check the cache (#12688) See discussion at [zulip](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/error.20writing.20standard.20output.3A.20Broken.20pipe/near/437160791). ESTIMATED CHANGES Modified .github/workflows/bors.yml Modified .github/workflows/build.yml Modified .github/workflows/build.yml.in Modified .github/workflows/build_fork.yml 2024-05-06 07:35:14 22b0893 feat(Topology/Bases): add lemma Embedding.separableSpace from Embedding.secondCountableTopology (#12674) We prove that if a space embeds in a second-countable space, then it is separable, by weakening the same result for second-countability. Light generalization of the statement that if a metric space embeds into a separable metric space then it is itself separable. ESTIMATED CHANGES Modified Mathlib/Topology/Bases.lean 2024-05-06 07:35:13 a8b4cf4 chore(Tactic): command/tactic/term elaborator for adaptation notes (#12662) This PR introduces `#adaptation_note`. The main benefit is that this prevents typos in the string "Adaptation note". Such typos would make it hard to find the note later. A side benefit is that the command comes with a docstring that explains the purpose of adaptation notes in general. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Tactic.lean Added Mathlib/Tactic/AdaptationNote.lean + def adaptationNoteTermElab + def reportAdaptationNote Modified scripts/lint_hash_commands.sh 2024-05-06 07:35:12 594e373 chore: migrate from `List.removeNth` to `List.eraseIdx` (#12660) ESTIMATED CHANGES Modified Mathlib/Data/List/Basic.lean - theorem List.removeNth_eq_nthTail Modified Mathlib/Data/List/InsertNth.lean + theorem List.eraseIdx_insertNth + theorem List.insertNth_eraseIdx_of_ge + theorem List.insertNth_eraseIdx_of_le - theorem List.insertNth_removeNth_of_ge - theorem List.insertNth_removeNth_of_le - theorem List.removeNth_insertNth Modified Mathlib/Data/Vector.lean + def Vector.eraseIdx - def Vector.removeNth Modified Mathlib/Data/Vector/Basic.lean + theorem Vector.eraseIdx_insertNth' + theorem Vector.eraseIdx_insertNth + theorem Vector.eraseIdx_val - theorem Vector.removeNth_insertNth' - theorem Vector.removeNth_insertNth - theorem Vector.removeNth_val Modified Mathlib/Init/Data/List/Lemmas.lean Modified Mathlib/Logic/Function/Basic.lean - theorem Function.id_def Modified Mathlib/Testing/SlimCheck/Sampleable.lean Modified Mathlib/Topology/List.lean + theorem List.continuous_eraseIdx - theorem List.continuous_removeNth + theorem List.tendsto_eraseIdx - theorem List.tendsto_removeNth + theorem Vector.continuousAt_eraseIdx - theorem Vector.continuousAt_removeNth + theorem Vector.continuous_eraseIdx - theorem Vector.continuous_removeNth Modified lake-manifest.json 2024-05-06 07:35:11 075ae93 feat(Analysis/SpecialFunctions/Pow/Real): rpow_ne_zero (#12428) ESTIMATED CHANGES Modified Mathlib/Analysis/SpecialFunctions/Pow/Real.lean + theorem Real.rpow_ne_zero 2024-05-06 07:35:10 4aea4b5 feat(NumberTheory/LSeries): Even Hurwitz zeta functions (II) (#12265) This is a sequel to #12147, adding the key properties of the even Hurwitz zeta function: it is differentiable away from s = 1, and it agrees with the Dirichlet series when the latter converges. ESTIMATED CHANGES Modified Mathlib/NumberTheory/LSeries/HurwitzZetaEven.lean + theorem LSeriesHasSum_cos + theorem completedCosZeta_residue_zero + theorem completedHurwitzZetaEven_residue_one + theorem completedHurwitzZetaEven_residue_zero + theorem cosZeta_apply_zero + theorem cosZeta_neg + theorem cosZeta_neg_two_mul_nat_add_one + theorem cosZeta_one_sub + theorem differentiableAt_completedCosZeta + theorem differentiableAt_completedHurwitzZetaEven + theorem differentiableAt_cosZeta + theorem differentiableAt_hurwitzZetaEven + theorem differentiableAt_hurwitzZetaEven_sub_one_div + theorem differentiableAt_one_completedHurwitzZetaEven_sub_completedHurwitzZetaEven + theorem differentiableAt_update_of_residue + theorem differentiable_completedCosZeta₀ + theorem differentiable_completedHurwitzZetaEven₀ + theorem differentiable_cosZeta_of_ne_zero + theorem differentiable_hurwitzZetaEven_sub_hurwitzZetaEven + theorem hasSum_int_completedCosZeta + theorem hasSum_int_completedHurwitzZetaEven + theorem hasSum_int_cosZeta + theorem hasSum_int_hurwitzZetaEven + theorem hasSum_nat_completedCosZeta + theorem hasSum_nat_cosZeta + theorem hasSum_nat_hurwitzZetaEven + theorem hasSum_nat_hurwitzZetaEven_of_mem_Icc + theorem hurwitzZetaEven_apply_zero + theorem hurwitzZetaEven_def_of_ne_or_ne + theorem hurwitzZetaEven_neg + theorem hurwitzZetaEven_neg_two_mul_nat_add_one + theorem hurwitzZetaEven_one_sub + theorem hurwitzZetaEven_residue_one + theorem tendsto_hurwitzZetaEven_sub_one_div_nhds_one Modified Mathlib/Topology/Algebra/InfiniteSum/Basic.lean +/- theorem HasProd.congr_fun 2024-05-06 06:25:54 c1186fe chore: bump importGraph (testing lakefile.toml there) (#12690) ESTIMATED CHANGES Modified lake-manifest.json 2024-05-06 05:19:53 9de4ec8 fix: pretty print `vecEmpty` as `![]` even when applied (#12592) Currently, an application of a vector can't be delaborated well: ```lean def myAppVec := ![0, 1] 0 #print myAppVec /- def Matrix.myAppVec : ℕ := vecCons 0 ![1] 0 -/ ``` This PR refactors the delaborators for a vector: ```lean def myAppVec := ![0, 1] 0 #print myAppVec /- def Matrix.myAppVec : ℕ := ![0, 1] 0 -/ ``` ESTIMATED CHANGES Modified Mathlib/Data/Fin/VecNotation.lean Modified test/vec_notation.lean 2024-05-06 04:08:10 3432394 feat: add `Nat.totient_eq_zero` (#12685) Also upgrade `totient_pos` to an `iff`. ESTIMATED CHANGES Modified Mathlib/Data/Nat/Totient.lean + theorem Nat.totient_eq_zero +/- theorem Nat.totient_one +/- theorem Nat.totient_pos Modified Mathlib/GroupTheory/SpecificGroups/Cyclic.lean Modified Mathlib/NumberTheory/Cyclotomic/PrimitiveRoots.lean Modified Mathlib/RingTheory/Polynomial/Cyclotomic/Basic.lean Modified Mathlib/RingTheory/Polynomial/Cyclotomic/Eval.lean Modified Mathlib/RingTheory/Polynomial/Cyclotomic/Roots.lean Modified Mathlib/Topology/Instances/AddCircle.lean 2024-05-06 04:08:09 7d04e93 fix: adaptations for lake changes in 4.8.0-rc1 (#12620) See [Zulip discussion](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/My.20branch.20with.20a.20.60sorry.60.20in.20it.20passed.20CI/near/436837966). * Use the `--wfail` option in lake instead of the `warningAsError` lean flag * Add `Foo.log.json` files to the cache so that warnings are not forgotten when laundered via the cache ESTIMATED CHANGES Modified .github/workflows/bors.yml Modified .github/workflows/build.yml Modified .github/workflows/build.yml.in Modified .github/workflows/build_fork.yml Modified Cache/IO.lean Modified lakefile.lean 2024-05-06 03:42:38 f80fa93 refactor: use `FunLike` for `OuterMeasure` (#12668) Also extracts `trim_anti_measurableSpace` ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Constructions/Pi.lean Modified Mathlib/MeasureTheory/Constructions/Prod/Basic.lean Modified Mathlib/MeasureTheory/Measure/Haar/Quotient.lean Modified Mathlib/MeasureTheory/Measure/MeasureSpace.lean Modified Mathlib/MeasureTheory/Measure/MeasureSpaceDef.lean Modified Mathlib/MeasureTheory/Measure/NullMeasurable.lean Modified Mathlib/MeasureTheory/Measure/VectorMeasure.lean Modified Mathlib/MeasureTheory/OuterMeasure/Basic.lean + theorem MeasureTheory.OuterMeasure.measureOf_eq_coe + theorem MeasureTheory.OuterMeasure.trim_anti_measurableSpace Modified Mathlib/Probability/ConditionalProbability.lean Modified Mathlib/Probability/Kernel/Condexp.lean Modified Mathlib/Probability/Kernel/MeasureCompProd.lean Modified Mathlib/Probability/ProbabilityMassFunction/Integrals.lean 2024-05-06 01:06:24 3e7a195 refactor: make TProd reducible (#12686) In various places we want `TProd α (i :: is) = α i × TProd α` to be transparent. ESTIMATED CHANGES Modified Mathlib/Data/Prod/TProd.lean - def List.TProd 2024-05-06 00:00:53 b8ee9e3 chore: deprecate redundant lemma List.find?_mem (#12677) Deprecates `List.find?_mem`, which duplicates `List.mem_of_find?_eq_some` from Std: https://github.com/leanprover/std4/blob/80cf5a1f2d8ed48753e8ff783bf0f7b6872bb007/Std/Data/List/Lemmas.lean#L1755-L1759 The lemmas only differ in the ordering of the implicit arguments `l` and `a`. ```lean List.find?_mem.{u} {α : Type u} {p : α → Bool} {l : List α} {a : α} (H : List.find? p l = some a) : a ∈ l List.mem_of_find?_eq_some.{u_1} : ∀ {α : Type u_1} {p : α → Bool} {a : α} {l : List α}, List.find? p l = some a → a ∈ l ``` ESTIMATED CHANGES Modified Mathlib/Data/List/Basic.lean - theorem List.find?_mem 2024-05-05 22:56:51 07e4145 chore: shorten proof of List.sizeOf_dropSlice_lt (#12678) Replaces an `induction` with direct usage of `drop_sizeOf_le`. This simplification was found by [tryAtEachStep](https://github.com/dwrensha/tryAtEachStep). ESTIMATED CHANGES Modified Mathlib/Data/List/Basic.lean 2024-05-05 21:52:49 7d9e677 doc(Tactic.Measurability): fixed copy paste error from continuity tactic docs (#12683) Changed "continuity statements" to "measurability statements" ESTIMATED CHANGES Modified Mathlib/Tactic/Measurability.lean 2024-05-05 19:07:08 8c8a6b1 chore(Data/Set/Subset): simplify `image_val_sUnion` (#12654) ESTIMATED CHANGES Modified Mathlib/Data/Set/Subset.lean 2024-05-05 19:07:07 4d675c9 feat: Monotonicity of `Nat.cast : Nat → Fin (n + 1)` (#12652) ESTIMATED CHANGES Modified Mathlib/Data/Fin/Basic.lean - theorem Fin.cast_nat_eq_last + theorem Fin.natCast_eq_last + theorem Fin.natCast_le_natCast + theorem Fin.natCast_lt_natCast + theorem Fin.natCast_mono + theorem Fin.natCast_strictMono 2024-05-05 19:07:06 b41d4d8 feat(Nat/Digits): ofDigits_add_ofDigits_eq_ofDigits_zipWith_of_length_eq (#12642) ESTIMATED CHANGES Modified Mathlib/Data/Nat/Digits.lean + theorem Nat.mul_ofDigits + theorem Nat.ofDigits_add_ofDigits_eq_ofDigits_zipWith_of_length_eq + theorem Nat.ofDigits_cons 2024-05-05 19:07:05 1abe881 Add constantCoeff_smul to RingTheory.PowerSeries.Basic (#12616) ``` example : (constantCoeff ℝ) ((2:ℝ)•X) = 0 := by simp ``` simp doesn't solve the above because there is no lemma constantCoeff_smul tagged simp. This PR adds it to RingTheory.PowerSeries.Basic. ESTIMATED CHANGES Modified Mathlib/RingTheory/PowerSeries/Basic.lean + theorem PowerSeries.constantCoeff_smul 2024-05-05 19:07:04 7565dc2 chore(Data/List): remove some long-deprecated theorems (#12350) All of these declarations have been deprecated since their files were ported (in January 2023). Move `nthLe` from `Init` to `List/Basic`, next to the other lemmas using it. ESTIMATED CHANGES Modified Mathlib/Data/List/Basic.lean - theorem List.ilast'_mem - theorem List.indexOf_nthLe + def List.nthLe - theorem List.nthLe_of_eq - theorem List.nthLe_zero Modified Mathlib/Data/List/Nodup.lean - theorem List.nthLe_index_of Modified Mathlib/Data/List/NodupEquivFin.lean Modified Mathlib/Init/Data/List/Basic.lean - def List.nthLe - theorem List.nthLe_eq 2024-05-05 18:04:32 6821ad2 feat: more NNRat lemmas (#12586) Note that the previous version of `Rat.ofScientific_eq_ofScientific` was not well-formed, as it did not include the necessary `ofNat`s. ESTIMATED CHANGES Modified Mathlib/Algebra/Field/Defs.lean +/- theorem Rat.ofScientific_eq_ofScientific Modified Mathlib/Data/NNRat/Defs.lean +/- theorem NNRat.coe_pow + theorem NNRat.den_ofNat + theorem NNRat.num_ofNat Modified Mathlib/Data/Rat/Cast/Lemmas.lean + theorem NNRat.Nonneg.coe_ofScientific + theorem NNRat.cast_pow + theorem NNRat.cast_zpow_of_ne_zero - theorem Nonneg.coe_ofScientific Modified Mathlib/Data/Rat/Field.lean + theorem NNRat.den_inv_of_ne_zero + theorem NNRat.num_inv_of_ne_zero 2024-05-05 17:09:49 927ceb4 chore: reduce imports in ZMod.Basic (#12478) - While at it, document the lemmas that were moved, and two similar lemmas in `ZMod.Basic`. ESTIMATED CHANGES Modified Mathlib/Data/ZMod/Basic.lean - theorem ZMod.ker_intCastRingHom - theorem ZMod.ringHom_eq_of_ker_eq Modified Mathlib/Data/ZMod/Module.lean Modified Mathlib/Data/ZMod/Quotient.lean Modified Mathlib/Data/ZMod/Units.lean Modified Mathlib/NumberTheory/Padics/RingHoms.lean Modified Mathlib/RingTheory/ZMod.lean + theorem ZMod.ker_intCastRingHom + theorem ZMod.ringHom_eq_of_ker_eq Modified Mathlib/Topology/Instances/Real.lean 2024-05-05 13:38:26 1e9f640 refactor(Data/PNat): better `OfNat` instance (#12420) Assume `[NeZero n]` instead of talking about `n+1`. This way we can reuse the raw natural literal `n` in `PNat.val_ofNat`. Also add `PNat.mk_ofNat` and drop some `bit0`/`bit1` lemmas. ESTIMATED CHANGES Modified Mathlib/Data/PNat/Basic.lean - theorem PNat.coe_bit0 - theorem PNat.coe_bit1 - theorem PNat.mk_bit0 - theorem PNat.mk_bit1 + theorem PNat.mk_ofNat +/- theorem PNat.val_ofNat Modified Mathlib/Data/PNat/Defs.lean 2024-05-05 13:12:35 abfb0e2 feat(Analysis/PSeries): simp for summable_nat_pow_inv (#12423) ESTIMATED CHANGES Modified Mathlib/Analysis/PSeries.lean 2024-05-05 12:47:57 f98db54 feat: add `HasSum f a → HasProd (exp ∘ f) (exp a)` (#12635) This adds lemmas saying that ` HasSum f a` implies `HasProd (exp ∘ f) (exp a)` for `exp = rexp, cexp, NormedSpace.exp`. While the `rexp` and `cexp` versions could be deduced from the `NormedSpace.exp` one, we give a direct proof (and so avoid needing to import stuff about `NormedSpace.exp` for these results; the proofs are also a bit faster that way). Based on the discussion below, this also renames `Filter.Tendsto.exp` to `Filter.Tendsto.rexp` for the version specific to the real exponential function, so that `Filter.Tendsto.exp` can be used for the corresponding statement involving `NormedSpace.exp`. See [here](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/exp.28tsum.29.20.3D.20tprod.28exp.29/near/436891747) on Zulip. ESTIMATED CHANGES Modified Mathlib/Analysis/NormedSpace/Exponential.lean + theorem Filter.Tendsto.exp Modified Mathlib/Analysis/SpecialFunctions/Exp.lean - theorem Filter.Tendsto.exp + theorem Filter.Tendsto.rexp + theorem HasSum.cexp + theorem HasSum.rexp Modified Mathlib/Analysis/SpecialFunctions/Exponential.lean + theorem HasSum.exp 2024-05-05 12:21:00 f9da50e chore(LinearAlgebra/BilinearForm): Add missing deprecated dates (#12547) Adds dates to results deprecated in #12132 and #12078. ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/BilinearForm/Hom.lean 2024-05-05 12:20:59 a2efba9 chore: remove temporary reviewdog fix (#12284) - [x] depends on: https://github.com/reviewdog/action-suggester/pull/52 This reverts #12280 after the upstream fix https://github.com/reviewdog/reviewdog/issues/1696 has propagated to reviewdog/action-suggester@v1. This should happen when https://github.com/reviewdog/action-suggester/releases has a release that uses [v0.17.4](https://github.com/reviewdog/reviewdog/releases/tag/v0.17.4) or higher. When this happens, rebase this pull request and re-trigger to see that it doesn't fail with the 300 dummy files. Then remove the dummy files and merge this pull request. ESTIMATED CHANGES Modified .github/workflows/lint_and_suggest_pr.yml 2024-05-05 11:45:11 38f33f3 chore: replace `Quotient.exists_rep` with `induction` (#12471) Following my advice [on Zulip](https://leanprover.zulipchat.com/#narrow/stream/113489-new-members/topic/getting.20witness.20for.20points.20in.20the.20quotient/near/435785862); let's change more code to use `induction` so that users learning by example learn a better approach. This is not exhaustive. ESTIMATED CHANGES Modified Mathlib/Algebra/Module/LocalizedModule.lean Modified Mathlib/Combinatorics/Enumerative/Partition.lean Modified Mathlib/GroupTheory/Perm/Sign.lean Modified Mathlib/Order/Filter/Germ.lean 2024-05-05 11:45:10 1facc8b fix: move convolution to MeasureTheory namespace (#12376) also fix some porting notes ESTIMATED CHANGES Modified Mathlib/Analysis/Convolution.lean +/- theorem BddAbove.continuous_convolution_left_of_integrable +/- theorem BddAbove.continuous_convolution_right_of_integrable +/- theorem BddAbove.convolutionExistsAt' +/- theorem BddAbove.convolutionExistsAt +/- theorem Continuous.convolution_integrand_fst - theorem ConvolutionExists.add_distrib - theorem ConvolutionExists.distrib_add - def ConvolutionExists - theorem ConvolutionExistsAt.add_distrib - theorem ConvolutionExistsAt.distrib_add - theorem ConvolutionExistsAt.integrable - theorem ConvolutionExistsAt.integrable_swap - theorem ConvolutionExistsAt.ofNorm' - theorem ConvolutionExistsAt.ofNorm - def ConvolutionExistsAt +/- theorem HasCompactSupport.contDiff_convolution_left +/- theorem HasCompactSupport.contDiff_convolution_right +/- theorem HasCompactSupport.continuous_convolution_left +/- theorem HasCompactSupport.continuous_convolution_right +/- theorem HasCompactSupport.convolutionExistsAt +/- theorem HasCompactSupport.convolutionExistsLeft +/- theorem HasCompactSupport.convolutionExistsRightOfContinuousLeft +/- theorem HasCompactSupport.convolutionExists_left_of_continuous_right +/- theorem HasCompactSupport.convolutionExists_right +/- theorem HasCompactSupport.convolution_integrand_bound_left +/- theorem HasCompactSupport.convolution_integrand_bound_right +/- theorem HasCompactSupport.convolution_integrand_bound_right_of_subset +/- theorem HasCompactSupport.hasDerivAt_convolution_left +/- theorem HasCompactSupport.hasDerivAt_convolution_right +/- theorem HasCompactSupport.hasFDerivAt_convolution_left +/- theorem HasCompactSupport.hasFDerivAt_convolution_right +/- theorem MeasureTheory.AEStronglyMeasurable.convolution_integrand' +/- theorem MeasureTheory.AEStronglyMeasurable.convolution_integrand +/- theorem MeasureTheory.AEStronglyMeasurable.convolution_integrand_snd' +/- theorem MeasureTheory.AEStronglyMeasurable.convolution_integrand_snd +/- theorem MeasureTheory.AEStronglyMeasurable.convolution_integrand_swap_snd' +/- theorem MeasureTheory.AEStronglyMeasurable.convolution_integrand_swap_snd + theorem MeasureTheory.ConvolutionExists.add_distrib + theorem MeasureTheory.ConvolutionExists.distrib_add + def MeasureTheory.ConvolutionExists + theorem MeasureTheory.ConvolutionExistsAt.add_distrib + theorem MeasureTheory.ConvolutionExistsAt.distrib_add + theorem MeasureTheory.ConvolutionExistsAt.integrable + theorem MeasureTheory.ConvolutionExistsAt.integrable_swap + theorem MeasureTheory.ConvolutionExistsAt.ofNorm' + theorem MeasureTheory.ConvolutionExistsAt.ofNorm + def MeasureTheory.ConvolutionExistsAt +/- theorem MeasureTheory.Integrable.ae_convolution_exists +/- theorem MeasureTheory.Integrable.convolution_integrand +/- theorem MeasureTheory.Integrable.integrable_convolution + theorem MeasureTheory.contDiffOn_convolution_left_with_param + theorem MeasureTheory.contDiffOn_convolution_left_with_param_comp + theorem MeasureTheory.contDiffOn_convolution_right_with_param + theorem MeasureTheory.contDiffOn_convolution_right_with_param_aux + theorem MeasureTheory.contDiffOn_convolution_right_with_param_comp + theorem MeasureTheory.continuousOn_convolution_right_with_param + theorem MeasureTheory.continuousOn_convolution_right_with_param_comp + theorem MeasureTheory.convolutionExistsAt_flip + theorem MeasureTheory.convolutionExistsAt_iff_integrable_swap + theorem MeasureTheory.convolution_assoc' + theorem MeasureTheory.convolution_assoc + theorem MeasureTheory.convolution_congr + theorem MeasureTheory.convolution_def + theorem MeasureTheory.convolution_eq_right' + theorem MeasureTheory.convolution_eq_swap + theorem MeasureTheory.convolution_flip + theorem MeasureTheory.convolution_integrand_bound_right_of_le_of_subset + theorem MeasureTheory.convolution_lsmul + theorem MeasureTheory.convolution_lsmul_swap + theorem MeasureTheory.convolution_mono_right + theorem MeasureTheory.convolution_mono_right_of_nonneg + theorem MeasureTheory.convolution_mul + theorem MeasureTheory.convolution_mul_swap + theorem MeasureTheory.convolution_neg_of_neg_eq + theorem MeasureTheory.convolution_precompR_apply + theorem MeasureTheory.convolution_smul + theorem MeasureTheory.convolution_tendsto_right + theorem MeasureTheory.convolution_zero + theorem MeasureTheory.dist_convolution_le' + theorem MeasureTheory.dist_convolution_le + theorem MeasureTheory.hasFDerivAt_convolution_right_with_param + theorem MeasureTheory.integrable_posConvolution + theorem MeasureTheory.integral_convolution + theorem MeasureTheory.integral_posConvolution + theorem MeasureTheory.posConvolution_eq_convolution_indicator + theorem MeasureTheory.smul_convolution + theorem MeasureTheory.support_convolution_subset + theorem MeasureTheory.support_convolution_subset_swap + theorem MeasureTheory.zero_convolution - theorem contDiffOn_convolution_left_with_param - theorem contDiffOn_convolution_left_with_param_comp - theorem contDiffOn_convolution_right_with_param - theorem contDiffOn_convolution_right_with_param_aux - theorem contDiffOn_convolution_right_with_param_comp - theorem continuousOn_convolution_right_with_param - theorem continuousOn_convolution_right_with_param_comp - theorem convolutionExistsAt_flip - theorem convolutionExistsAt_iff_integrable_swap - theorem convolution_assoc' - theorem convolution_assoc - theorem convolution_congr - theorem convolution_def - theorem convolution_eq_right' - theorem convolution_eq_swap - theorem convolution_flip - theorem convolution_integrand_bound_right_of_le_of_subset - theorem convolution_lsmul - theorem convolution_lsmul_swap - theorem convolution_mono_right - theorem convolution_mono_right_of_nonneg - theorem convolution_mul - theorem convolution_mul_swap - theorem convolution_neg_of_neg_eq - theorem convolution_precompR_apply - theorem convolution_smul - theorem convolution_tendsto_right - theorem convolution_zero - theorem dist_convolution_le' - theorem dist_convolution_le - theorem hasFDerivAt_convolution_right_with_param - theorem integrable_posConvolution - theorem integral_convolution - theorem integral_posConvolution - theorem posConvolution_eq_convolution_indicator - theorem smul_convolution - theorem support_convolution_subset - theorem support_convolution_subset_swap - theorem zero_convolution Modified docs/overview.yaml Modified docs/undergrad.yaml 2024-05-05 09:43:37 ff35083 feat: clean-up `Topology.Order.IntermediateValue` (#12403) * Also add variants of `exists_apply_eq_apply[']` for binary and ternary functions as simp-lemmas. * Remove note on `exists_apply_eq_apply'` that no longer applies. ESTIMATED CHANGES Modified Mathlib/Logic/Basic.lean + theorem exists_apply_eq_apply2' + theorem exists_apply_eq_apply2 + theorem exists_apply_eq_apply3' + theorem exists_apply_eq_apply3 Modified Mathlib/MeasureTheory/Function/SimpleFunc.lean Modified Mathlib/Topology/Order/IntermediateValue.lean 2024-05-05 04:54:25 c1f040b chore(Data/List/Perm): some nthLe -> get migration (#12397) ESTIMATED CHANGES Modified Mathlib/Data/List/Perm.lean + theorem List.get_permutations'Aux + theorem List.permutations'Aux_get_zero - theorem List.permutations'Aux_nthLe_zero 2024-05-05 03:48:04 3d1180f feat: Product of injective functions on sets (#12656) ESTIMATED CHANGES Modified Mathlib/Data/Set/Function.lean + theorem Set.BijOn.exists + theorem Set.BijOn.forall + theorem Set.BijOn.prodMap + theorem Set.InjOn.prodMap + theorem Set.InvOn.prodMap + theorem Set.LeftInvOn.prodMap + theorem Set.MapsTo.prodMap + theorem Set.RightInvOn.prodMap + theorem Set.SurjOn.prodMap 2024-05-05 03:48:03 7769e81 chore: deprecate redundant lemma List.get?_injective (#12630) Deprecates `List.get?_injective`, which is a duplicate of `List.gen?_inj` in `Std`: https://github.com/leanprover/std4/blob/80cf5a1f2d8ed48753e8ff783bf0f7b6872bb007/Std/Data/List/Lemmas.lean#L773-L788 ESTIMATED CHANGES Modified Mathlib/Data/List/Basic.lean - theorem List.get?_injective Modified Mathlib/Testing/SlimCheck/Functions.lean 2024-05-05 02:43:57 2691868 feat: lemmas about `Sigma.curry` (#12474) This provides: * Basic `simp` lemmas for `Equiv.piCurry` * Algebraic lemmas for `Sigma.curry` and `Sigma.uncurry` * A `LinearEquiv` version of `Equiv.piCurry` * A lemma about `Sigma.curry` and `Pi.mulSingle` The change from `Sort _` to `Type*` is a no-op, the `_` was inferred as `_ + 1`. ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Pi/Lemmas.lean + theorem Sigma.curry_inv + theorem Sigma.curry_mul + theorem Sigma.curry_mulSingle + theorem Sigma.curry_one + theorem Sigma.uncurry_inv + theorem Sigma.uncurry_mul + theorem Sigma.uncurry_mulSingle_mulSingle + theorem Sigma.uncurry_one Modified Mathlib/Data/Sigma/Basic.lean + theorem Sigma.curry_update Modified Mathlib/LinearAlgebra/Pi.lean + def LinearEquiv.piCurry + theorem LinearEquiv.piCurry_apply + theorem LinearEquiv.piCurry_symm_apply Modified Mathlib/Logic/Equiv/Basic.lean +/- def Equiv.piCurry + theorem Equiv.piCurry_apply + theorem Equiv.piCurry_symm_apply 2024-05-05 02:19:24 0db055d style(test/polyrith): adapt to mathlib4 style (#12091) Adapt indentation to mathlib4 conventions. Found when clearing out old branches. ESTIMATED CHANGES Modified test/polyrith.lean 2024-05-04 21:55:17 b632537 docs: fix typo (#12659) `single 1 1` is the `MonoidAlgebra` unit, while the `AddMonoidAlgebra` unit is `single 0 1`. ESTIMATED CHANGES Modified Mathlib/Algebra/MonoidAlgebra/Basic.lean 2024-05-04 21:55:16 a4b23a6 feat: `a / b ≤ c ↔ a / c ≤ b` (#12622) ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Field/Basic.lean + theorem div_le_comm₀ + theorem div_lt_comm₀ 2024-05-04 21:55:15 73cc034 docs(RingTheory/Flat/Basic): remove completed TODO (#12612) The stability of flatness under base change is in mathlib (in RingTheory/Flat/Stability). So, we remove the part of the docs that says that it isn't. ESTIMATED CHANGES Modified Mathlib/RingTheory/Flat/Basic.lean 2024-05-04 21:00:18 83a590b feat: add `NonUnital{Star}AlgHom.restrictScalars` (#12657) ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/NonUnitalHom.lean + theorem NonUnitalAlgHom.coe_restrictScalars' + theorem NonUnitalAlgHom.coe_restrictScalars + def NonUnitalAlgHom.restrictScalars + theorem NonUnitalAlgHom.restrictScalars_apply + theorem NonUnitalAlgHom.restrictScalars_injective Modified Mathlib/Algebra/Star/StarAlgHom.lean + theorem NonUnitalStarAlgHom.coe_restrictScalars' + theorem NonUnitalStarAlgHom.coe_restrictScalars + def NonUnitalStarAlgHom.restrictScalars + theorem NonUnitalStarAlgHom.restrictScalars_apply + theorem NonUnitalStarAlgHom.restrictScalars_injective 2024-05-04 21:00:17 269a094 feat: Components of `Multiset.prod` over `α × β` (#12655) ESTIMATED CHANGES Modified Mathlib/Algebra/BigOperators/Multiset/Lemmas.lean + theorem Multiset.fst_prod + theorem Multiset.snd_prod 2024-05-04 19:51:41 0ebb8ea feat: Locally linear graphs (#12526) Define predicates for a graph to have edge-disjoint triangles and to be locally linear (edge-disjoint triangles and each edge belongs to a triangle). ESTIMATED CHANGES Modified Mathlib/Combinatorics/SimpleGraph/Triangle/Basic.lean + theorem SimpleGraph.EdgeDisjointTriangles.card_edgeFinset_le + theorem SimpleGraph.EdgeDisjointTriangles.map + def SimpleGraph.EdgeDisjointTriangles + theorem SimpleGraph.LocallyLinear.card_edgeFinset + theorem SimpleGraph.LocallyLinear.map + def SimpleGraph.LocallyLinear + theorem SimpleGraph.edgeDisjointTriangles_bot + theorem SimpleGraph.edgeDisjointTriangles_iff_mem_sym2_subsingleton + theorem SimpleGraph.farFromTriangleFree_of_disjoint_triangles + theorem SimpleGraph.locallyLinear_bot + theorem SimpleGraph.locallyLinear_comap Modified Mathlib/Data/Finset/Card.lean +/- theorem Finset.card_eq_zero + theorem Finset.card_ne_zero +/- theorem Finset.card_pos 2024-05-04 19:06:19 06b48c3 feat: integration by parts for line derivatives and Frechet derivatives (#11937) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/Calculus/LineDeriv/IntegrationByParts.lean + theorem integral_bilinear_fderiv_right_eq_neg_left_of_integrable + theorem integral_bilinear_hasFDerivAt_right_eq_neg_left_of_integrable + theorem integral_bilinear_hasLineDerivAt_right_eq_neg_left_of_integrable + theorem integral_bilinear_hasLineDerivAt_right_eq_neg_left_of_integrable_aux1 + theorem integral_bilinear_hasLineDerivAt_right_eq_neg_left_of_integrable_aux2 + theorem integral_mul_fderiv_eq_neg_fderiv_mul_of_integrable + theorem integral_smul_fderiv_eq_neg_fderiv_smul_of_integrable 2024-05-04 19:06:18 8122c5d feat(Topology/Order/LawsonTopology): Introduce the Lawson Topology to Mathlib (#11710) Introduces the Lawson Topology on a preorder. The Lawson Topology is defined as the meet of the [Lower Topology](https://github.com/leanprover-community/mathlib/pull/17426) and the [Scott Topology](#2508) previously introduced. A basis for the Lawson Topology is defined and some basic results are established: - An upper set is Lawson open if and only if it is Scott open - A lower set is Lawson closed if and only if it is closed under sups of directed sets - The Lawson topology on a partial order is T₀ ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Topology/Order/LawsonTopology.lean + def Topology.IsLawson.lawsonBasis + theorem Topology.IsLawson.singleton_isClosed + def Topology.WithLawson.homeomorph + theorem Topology.WithLawson.isClosed_preimage_ofLawson + theorem Topology.WithLawson.isOpen_def + theorem Topology.WithLawson.isOpen_preimage_ofLawson + def Topology.WithLawson.ofLawson + theorem Topology.WithLawson.ofLawson_inj + theorem Topology.WithLawson.ofLawson_toLawson + theorem Topology.WithLawson.of_Lawson_symm_eq + def Topology.WithLawson.toLawson + theorem Topology.WithLawson.toLawson_inj + theorem Topology.WithLawson.toLawson_ofLawson + theorem Topology.WithLawson.to_Lawson_symm_eq + def Topology.WithLawson + theorem Topology.isLawson_le_isScott + def Topology.lawson + theorem Topology.lawsonClosed_iff_dirSupClosed_of_isLowerSet + theorem Topology.lawsonClosed_iff_scottClosed_of_isLowerSet + theorem Topology.lawsonClosed_of_lowerClosed + theorem Topology.lawsonClosed_of_scottClosed + theorem Topology.lawsonOpen_iff_scottOpen_of_isUpperSet' + theorem Topology.lawsonOpen_iff_scottOpen_of_isUpperSet + theorem Topology.lawson_le_lower + theorem Topology.lawson_le_scott + theorem Topology.scottHausdorff_le_isLawson + theorem Topology.scottHausdorff_le_lawson Modified Mathlib/Topology/Order/ScottTopology.lean + theorem Topology.scottHausdorff_le_lower +/- theorem Topology.scottHausdorff_le_scott 2024-05-04 18:40:37 15c55c2 refactor: new definition of `eigenvectorUnitary` (#11363) This file contains the spectral theorem for Hermitian matrices and nearby relevant theorems. We rewrote the file, recasting the natural eigenvector basis matrix as a unitary called `eigenvectorUnitary`, and removed a lot of defeq abuse that the original file contained, considerably simplifying things. ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/Matrix/PosDef.lean Modified Mathlib/LinearAlgebra/Matrix/Spectrum.lean - theorem Matrix.IsHermitian.conjTranspose_eigenvectorMatrix - theorem Matrix.IsHermitian.conjTranspose_eigenvectorMatrixInv - theorem Matrix.IsHermitian.eigenvectorMatrixInv_apply - theorem Matrix.IsHermitian.eigenvectorMatrix_apply - theorem Matrix.IsHermitian.eigenvectorMatrix_mul_inv + theorem Matrix.IsHermitian.eigenvectorUnitary_apply + theorem Matrix.IsHermitian.eigenvectorUnitary_coe + theorem Matrix.IsHermitian.eigenvectorUnitary_mulVec +/- theorem Matrix.IsHermitian.mulVec_eigenvectorBasis - theorem Matrix.IsHermitian.spectral_theorem' + theorem Matrix.IsHermitian.star_eigenvectorUnitary_mulVec + theorem Matrix.IsHermitian.star_mul_self_mul_eq_diagonal - theorem Matrix.IsHermitian.transpose_eigenvectorMatrix_apply 2024-05-04 10:43:34 b02c426 chore(LinearAlgebra): format/add dates to remaining deprecations (#12407) - aim for the deprecation date on the same line as the attribute (this is easier to search). - dates were found using mathlib-changelog ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/BilinearForm/Basic.lean Modified Mathlib/LinearAlgebra/Dimension/Basic.lean Modified Mathlib/LinearAlgebra/Dimension/Finite.lean Modified Mathlib/LinearAlgebra/Dimension/StrongRankCondition.lean Modified Mathlib/LinearAlgebra/FiniteDimensional.lean Modified Mathlib/LinearAlgebra/Matrix/ZPow.lean 2024-05-04 06:09:51 447d24f replay: #3604 for MonoidAlgebra (#12646) Weaken a couple of `DistribSMul` to `SMulZero` in `MonoidAlgebra`. This parallels the analogous assumptions in the `AddMonoidAlgebra` instances that were weakened in #3604. Found in the context of unifying `AddMonoidAlgebra` and `MonoidAlgebra`. ESTIMATED CHANGES Modified Mathlib/Algebra/MonoidAlgebra/Basic.lean 2024-05-04 05:42:27 25b2fcc style: capitalizes file names in `Counterexamples` (#12615) ESTIMATED CHANGES Modified Counterexamples.lean Renamed Counterexamples/CliffordAlgebra_not_injective.lean to Counterexamples/CliffordAlgebraNotInjective.lean Renamed Counterexamples/Monic_nonRegular.lean to Counterexamples/MonicNonRegular.lean 2024-05-04 05:06:06 1556f9e chore(Analysis/SpecialFunctions): `Real.rpow` -> `_ ^ _` (#12613) ESTIMATED CHANGES Modified Mathlib/Analysis/SpecialFunctions/Log/Base.lean Modified Mathlib/Analysis/SpecialFunctions/Pow/Asymptotics.lean +/- theorem tendsto_rpow_atBot_of_base_gt_one Modified Mathlib/Analysis/SpecialFunctions/Pow/Continuity.lean +/- theorem Real.continuousAt_const_rpow' +/- theorem Real.continuousAt_const_rpow Modified Mathlib/Analysis/SpecialFunctions/Pow/Real.lean Modified Mathlib/Topology/MetricSpace/Holder.lean 2024-05-03 22:49:22 6da5af0 chore: rename `cfc_map_quasispectrum` (#12640) ESTIMATED CHANGES Modified Mathlib/Topology/ContinuousFunction/NonUnitalFunctionalCalculus.lean - theorem cfc_map_quasispectrum + theorem cfcₙ_map_quasispectrum 2024-05-03 18:10:54 e5e93cf chore: cache warns about bad v4.8.0-rc1 toolchain (#12623) ESTIMATED CHANGES Modified Cache/Main.lean 2024-05-03 17:44:50 9785488 refactor: simplify bundledAbstractFilteredClosure definition (#12603) no need to go through `Nat.strongRec'`, this is essentially well-founded recursion. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Filtered/Small.lean 2024-05-03 14:57:41 61b5888 chore: remove two `by exact` leftover from porting (#12626) drive-by: two unused variables ESTIMATED CHANGES Modified Mathlib/CategoryTheory/SingleObj.lean Modified Mathlib/RingTheory/Ideal/Operations.lean 2024-05-03 14:30:04 2589616 perf(NumberTheory.NumberField.Basic): make `RingOfIntegers` a Type. (#12386) We make `𝓞 K` a type rather then a `Subalgebra` to speed up instances search. ESTIMATED CHANGES Modified Mathlib/NumberTheory/Cyclotomic/Rat.lean Modified Mathlib/NumberTheory/NumberField/Basic.lean + theorem NumberField.RingOfIntegers.coe_eq_algebraMap + theorem NumberField.RingOfIntegers.coe_eq_zero_iff + theorem NumberField.RingOfIntegers.coe_injective + theorem NumberField.RingOfIntegers.coe_mk + theorem NumberField.RingOfIntegers.coe_ne_zero_iff + theorem NumberField.RingOfIntegers.ext + theorem NumberField.RingOfIntegers.ext_iff + theorem NumberField.RingOfIntegers.isIntegral +/- theorem NumberField.RingOfIntegers.isIntegral_coe - theorem NumberField.RingOfIntegers.map_mem + theorem NumberField.RingOfIntegers.map_mk + theorem NumberField.RingOfIntegers.mk_add_mk + theorem NumberField.RingOfIntegers.mk_eq_mk + theorem NumberField.RingOfIntegers.mk_mul_mk + theorem NumberField.RingOfIntegers.mk_one + theorem NumberField.RingOfIntegers.mk_sub_mk + theorem NumberField.RingOfIntegers.mk_zero + theorem NumberField.RingOfIntegers.neg_mk + def NumberField.RingOfIntegers.restrict + def NumberField.RingOfIntegers.restrict_addMonoidHom + def NumberField.RingOfIntegers.restrict_monoidHom + def NumberField.RingOfIntegers +/- theorem NumberField.integralBasis_repr_apply - theorem NumberField.isIntegral_of_mem_ringOfIntegers - theorem NumberField.mem_ringOfIntegers - def NumberField.ringOfIntegers Modified Mathlib/NumberTheory/NumberField/CanonicalEmbedding/Basic.lean Modified Mathlib/NumberTheory/NumberField/CanonicalEmbedding/ConvexBody.lean Modified Mathlib/NumberTheory/NumberField/ClassNumber.lean +/- theorem NumberField.classNumber_eq_one_iff +/- theorem NumberField.exists_ideal_in_class_of_norm_le Modified Mathlib/NumberTheory/NumberField/Discriminant.lean +/- theorem NumberField.hermiteTheorem.natDegree_le_rankOfDiscrBdd Modified Mathlib/NumberTheory/NumberField/Embeddings.lean Modified Mathlib/NumberTheory/NumberField/FractionalIdeal.lean Modified Mathlib/NumberTheory/NumberField/Norm.lean +/- theorem Algebra.coe_trace_int + theorem RingOfIntegers.algebraMap_norm_algebraMap + theorem RingOfIntegers.coe_norm - theorem RingOfIntegers.coe_norm_algebraMap Modified Mathlib/NumberTheory/NumberField/Units/Basic.lean +/- theorem NumberField.Units.coe_pow Modified Mathlib/NumberTheory/NumberField/Units/DirichletTheorem.lean +/- theorem NumberField.Units.dirichletUnitTheorem.seq_ne_zero 2024-05-03 14:04:09 efb7091 move: Rearrange basic algebraic subobject (#11104) For `Foo` an algebraic typeclass, the basic theory of `Subfoo` currently is under `FooTheory.Subfoo`. This is in contradiction to other kinds of subobjects, eg order theoretic ones. This PR moves that basic theory to `Algebra.Foo.Subfoo` instead. [Zulip](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/Location.20of.20algebraic.20subobjects) ESTIMATED CHANGES Modified Counterexamples/CanonicallyOrderedCommSemiringTwoMul.lean Modified Mathlib.lean Modified Mathlib/Algebra/Algebra/Basic.lean Modified Mathlib/Algebra/Algebra/Subalgebra/Order.lean Modified Mathlib/Algebra/Algebra/Subalgebra/Pointwise.lean Modified Mathlib/Algebra/BigOperators/Finsupp.lean Modified Mathlib/Algebra/Category/GroupCat/Limits.lean Modified Mathlib/Algebra/Category/MonCat/Limits.lean Modified Mathlib/Algebra/Category/Ring/Constructions.lean Modified Mathlib/Algebra/Category/Ring/Limits.lean Modified Mathlib/Algebra/CharP/Subring.lean Modified Mathlib/Algebra/DirectSum/Basic.lean Renamed Mathlib/FieldTheory/Subfield.lean to Mathlib/Algebra/Field/Subfield.lean Modified Mathlib/Algebra/GradedMonoid.lean Renamed Mathlib/GroupTheory/Subgroup/Actions.lean to Mathlib/Algebra/Group/Subgroup/Actions.lean Renamed Mathlib/GroupTheory/Subgroup/Basic.lean to Mathlib/Algebra/Group/Subgroup/Basic.lean Renamed Mathlib/GroupTheory/Subgroup/Finite.lean to Mathlib/Algebra/Group/Subgroup/Finite.lean Renamed Mathlib/GroupTheory/Subgroup/MulOpposite.lean to Mathlib/Algebra/Group/Subgroup/MulOpposite.lean Renamed Mathlib/GroupTheory/Subgroup/Order.lean to Mathlib/Algebra/Group/Subgroup/Order.lean Renamed Mathlib/GroupTheory/Subgroup/Pointwise.lean to Mathlib/Algebra/Group/Subgroup/Pointwise.lean Renamed Mathlib/GroupTheory/Subgroup/ZPowers.lean to Mathlib/Algebra/Group/Subgroup/ZPowers.lean Renamed Mathlib/GroupTheory/Submonoid/Basic.lean to Mathlib/Algebra/Group/Submonoid/Basic.lean Renamed Mathlib/GroupTheory/Submonoid/Membership.lean to Mathlib/Algebra/Group/Submonoid/Membership.lean Renamed Mathlib/GroupTheory/Submonoid/MulOpposite.lean to Mathlib/Algebra/Group/Submonoid/MulOpposite.lean Renamed Mathlib/GroupTheory/Submonoid/Operations.lean to Mathlib/Algebra/Group/Submonoid/Operations.lean Renamed Mathlib/GroupTheory/Submonoid/Pointwise.lean to Mathlib/Algebra/Group/Submonoid/Pointwise.lean Renamed Mathlib/GroupTheory/Submonoid/Units.lean to Mathlib/Algebra/Group/Submonoid/Units.lean Renamed Mathlib/GroupTheory/Subsemigroup/Basic.lean to Mathlib/Algebra/Group/Subsemigroup/Basic.lean Renamed Mathlib/GroupTheory/Subsemigroup/Membership.lean to Mathlib/Algebra/Group/Subsemigroup/Membership.lean Renamed Mathlib/GroupTheory/Subsemigroup/Operations.lean to Mathlib/Algebra/Group/Subsemigroup/Operations.lean Modified Mathlib/Algebra/GroupRingAction/Invariant.lean Modified Mathlib/Algebra/GroupRingAction/Subobjects.lean Modified Mathlib/Algebra/GroupWithZero/NonZeroDivisors.lean Modified Mathlib/Algebra/Module/Submodule/Basic.lean Modified Mathlib/Algebra/Module/Submodule/Order.lean Modified Mathlib/Algebra/Module/Submodule/Pointwise.lean Renamed Mathlib/FieldTheory/Subfield/Order.lean to Mathlib/Algebra/Order/Field/Subfield.lean Renamed Mathlib/GroupTheory/Submonoid/Order.lean to Mathlib/Algebra/Order/Monoid/Submonoid.lean Modified Mathlib/Algebra/Periodic.lean Modified Mathlib/Algebra/Ring/CentroidHom.lean Renamed Mathlib/RingTheory/Subring/Basic.lean to Mathlib/Algebra/Ring/Subring/Basic.lean Renamed Mathlib/RingTheory/Subring/Order.lean to Mathlib/Algebra/Ring/Subring/Order.lean Renamed Mathlib/RingTheory/Subring/Pointwise.lean to Mathlib/Algebra/Ring/Subring/Pointwise.lean Renamed Mathlib/RingTheory/Subring/Units.lean to Mathlib/Algebra/Ring/Subring/Units.lean Renamed Mathlib/RingTheory/Subsemiring/Basic.lean to Mathlib/Algebra/Ring/Subsemiring/Basic.lean Renamed Mathlib/RingTheory/Subsemiring/Order.lean to Mathlib/Algebra/Ring/Subsemiring/Order.lean Renamed Mathlib/RingTheory/Subsemiring/Pointwise.lean to Mathlib/Algebra/Ring/Subsemiring/Pointwise.lean Modified Mathlib/Algebra/Star/Order.lean Modified Mathlib/Algebra/Star/SelfAdjoint.lean Modified Mathlib/Algebra/Star/Unitary.lean Modified Mathlib/AlgebraicGeometry/StructureSheaf.lean Modified Mathlib/CategoryTheory/Groupoid/Subgroupoid.lean Modified Mathlib/Data/DFinsupp/Basic.lean Modified Mathlib/Data/Finsupp/Defs.lean Modified Mathlib/Data/Int/Star.lean Modified Mathlib/Data/Rat/Star.lean Modified Mathlib/Deprecated/Subgroup.lean Modified Mathlib/Deprecated/Submonoid.lean Modified Mathlib/Deprecated/Subring.lean Modified Mathlib/GroupTheory/Archimedean.lean Modified Mathlib/GroupTheory/ClassEquation.lean Modified Mathlib/GroupTheory/Commensurable.lean Modified Mathlib/GroupTheory/Commutator.lean Modified Mathlib/GroupTheory/Congruence.lean Modified Mathlib/GroupTheory/Coprod/Basic.lean Modified Mathlib/GroupTheory/CoprodI.lean Modified Mathlib/GroupTheory/Coset.lean Modified Mathlib/GroupTheory/Divisible.lean Modified Mathlib/GroupTheory/DoubleCoset.lean Modified Mathlib/GroupTheory/Finiteness.lean Modified Mathlib/GroupTheory/FreeGroup/Basic.lean Modified Mathlib/GroupTheory/GroupAction/Basic.lean Modified Mathlib/GroupTheory/GroupAction/ConjAct.lean Modified Mathlib/GroupTheory/GroupAction/FixingSubgroup.lean Modified Mathlib/GroupTheory/MonoidLocalization.lean Modified Mathlib/GroupTheory/Perm/DomMulAct.lean Modified Mathlib/GroupTheory/Perm/Sign.lean Modified Mathlib/GroupTheory/Perm/Subgroup.lean Modified Mathlib/GroupTheory/QuotientGroup.lean Modified Mathlib/GroupTheory/SemidirectProduct.lean Modified Mathlib/GroupTheory/Subgroup/Center.lean Modified Mathlib/GroupTheory/Subgroup/Saturated.lean Modified Mathlib/GroupTheory/Subgroup/Simple.lean Modified Mathlib/GroupTheory/Submonoid/Center.lean Modified Mathlib/GroupTheory/Submonoid/Inverses.lean Modified Mathlib/GroupTheory/Subsemigroup/Center.lean Modified Mathlib/GroupTheory/Torsion.lean Modified Mathlib/LinearAlgebra/Matrix/GeneralLinearGroup.lean Modified Mathlib/LinearAlgebra/Ray.lean Modified Mathlib/NumberTheory/FrobeniusNumber.lean Modified Mathlib/NumberTheory/ModularForms/CongruenceSubgroups.lean Modified Mathlib/RingTheory/NonUnitalSubring/Basic.lean Modified Mathlib/RingTheory/NonUnitalSubsemiring/Basic.lean Modified Mathlib/RingTheory/OreLocalization/OreSet.lean Modified Mathlib/RingTheory/Perfection.lean Modified Mathlib/RingTheory/Valuation/ValuationSubring.lean Modified Mathlib/SetTheory/Cardinal/Subfield.lean Modified Mathlib/Topology/Algebra/Field.lean Modified Mathlib/Topology/Algebra/Nonarchimedean/Basic.lean Modified Mathlib/Topology/Algebra/Order/Field.lean Modified Mathlib/Topology/Algebra/Ring/Basic.lean Modified Mathlib/Topology/Algebra/UniformField.lean Modified Mathlib/Topology/Instances/Complex.lean Modified Mathlib/Topology/UnitInterval.lean Modified scripts/style-exceptions.txt Modified test/set_like.lean 2024-05-03 08:33:27 2dd08f8 feat(Topology/Algebra/InfiniteSum/Real): Add partition lemma (#12446) We also `summable_partition` (and the required `Set.sigmaEquiv`), needed for #10377. ESTIMATED CHANGES Modified Mathlib/Data/Set/Lattice.lean Modified Mathlib/Topology/Algebra/InfiniteSum/Real.lean + theorem summable_partition 2024-05-03 07:45:09 7e9dce6 feat(MeasureTheory): add CountablySeparated (#12433) add a typeclass `CountablySeparated _` abbreviating `HasCountableSeparatingOn _ MeasurableSet univ`. This is a common assumption is measure theory and is already used often in the library. Additionally, mathlib was previously not consistent in choosing between the equivalent spellings `HasCountableSeparatingOn X MeasurableSet s` and `HasCountableSeparatingOn s MeasurableSet univ` for X a measurable space and `s : Set X`. (In the latter spelling, `s` is being coerced to the subtype of `X`.) Lemmas and instances are added to help unify the situation. This is now spelled `CountablySeparated s`. ESTIMATED CHANGES Modified Mathlib/Dynamics/Ergodic/Function.lean Modified Mathlib/MeasureTheory/Constructions/BorelSpace/Basic.lean + theorem exists_opensMeasurableSpace_of_countablySeparated - theorem exists_opensMeasurableSpace_of_hasCountableSeparatingOn Modified Mathlib/MeasureTheory/Constructions/Polish.lean +/- theorem Measurable.map_measurableSpace_eq +/- theorem Measurable.measurableSet_preimage_iff_inter_range +/- theorem Measurable.measurableSet_preimage_iff_of_surjective +/- theorem Measurable.measurableSet_preimage_iff_preimage_val +/- theorem Measurable.measurable_comp_iff_of_surjective Modified Mathlib/MeasureTheory/MeasurableSpace/CountablyGenerated.lean + theorem MeasurableSpace.CountablySeparated.mono + theorem MeasurableSpace.CountablySeparated.subtype_iff + theorem MeasurableSpace.countablySeparated_def + theorem MeasurableSpace.exists_countablyGenerated_le_of_countablySeparated - theorem MeasurableSpace.exists_countablyGenerated_le_of_hasCountableSeparatingOn + theorem MeasurableSpace.measurableSingletonClass_of_countablySeparated - theorem MeasurableSpace.measurableSingletonClass_of_hasCountableSeparatingOn + theorem MeasurableSpace.measurable_injection_nat_bool_of_countablySeparated - theorem MeasurableSpace.measurable_injection_nat_bool_of_hasCountableSeparatingOn Modified Mathlib/Order/Filter/CountableSeparatingOn.lean + theorem HasCountableSeparatingOn.subtype_iff 2024-05-03 04:25:54 e6f552f chore: make every Chebyshev polynomial argument a Gröbner basis computation (#12001) Replace every `calc` in the file by a list of algebraic identities followed by an appropriate `linear_combination`. ESTIMATED CHANGES Modified Mathlib/RingTheory/Polynomial/Chebyshev.lean 2024-05-02 22:40:11 437c7c8 chore(Topology/Category): remove `ProfiniteMax` and `CompHausMax` (#12599) They are no longer necessary after [#3981](https://github.com/leanprover/lean4/pull/3981) ESTIMATED CHANGES Modified Mathlib/Topology/Category/CompHaus/Basic.lean Modified Mathlib/Topology/Category/CompHaus/Limits.lean +/- def CompHaus.finiteCoproduct.desc +/- theorem CompHaus.finiteCoproduct.hom_ext +/- theorem CompHaus.finiteCoproduct.ι_desc Modified Mathlib/Topology/Category/Profinite/Basic.lean +/- def Profinite.limitCone +/- def Profinite.limitConeIsLimit Modified Mathlib/Topology/Category/Profinite/CofilteredLimit.lean Modified Mathlib/Topology/Category/TopCat/Limits/Basic.lean +/- def TopCat.colimitCocone +/- def TopCat.colimitCoconeIsColimit +/- def TopCat.limitCone +/- def TopCat.limitConeInfi +/- def TopCat.limitConeInfiIsLimit +/- def TopCat.limitConeIsLimit Modified Mathlib/Topology/Category/TopCat/Limits/Cofiltered.lean Modified Mathlib/Topology/Category/TopCat/Limits/Konig.lean +/- theorem TopCat.nonempty_limitCone_of_compact_t2_cofiltered_system Modified Mathlib/Topology/Category/TopCat/Limits/Products.lean +/- theorem TopCat.induced_of_isLimit +/- theorem TopCat.limit_topology +/- def TopCat.piFan +/- def TopCat.piFanIsLimit +/- def TopCat.piIsoPi +/- theorem TopCat.piIsoPi_hom_apply +/- theorem TopCat.piIsoPi_inv_π +/- theorem TopCat.piIsoPi_inv_π_apply +/- def TopCat.sigmaCofan +/- def TopCat.sigmaCofanIsColimit +/- def TopCat.sigmaIsoSigma +/- theorem TopCat.sigmaIsoSigma_hom_ι +/- theorem TopCat.sigmaIsoSigma_hom_ι_apply +/- theorem TopCat.sigmaIsoSigma_inv_apply Modified Mathlib/Topology/Category/TopCat/Limits/Pullbacks.lean +/- theorem TopCat.coinduced_of_isColimit +/- theorem TopCat.colimit_isOpen_iff +/- theorem TopCat.colimit_topology 2024-05-02 19:23:25 efad919 feat: enable dot notation for `HasEigenvalue` and the spectrum (#12580) ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/Eigenspace/Basic.lean + theorem Module.End.HasEigenvalue.mem_spectrum - theorem Module.End.mem_spectrum_of_hasEigenvalue 2024-05-02 16:47:38 45bd0a2 feat(Order/Interval/Finset/Box): add lemma (#12444) Add `eq_zero_iff_eq_zero_of_mem_box` lemma needed for #10377 ESTIMATED CHANGES Modified Mathlib/Order/Interval/Finset/Box.lean + theorem Finset.eq_zero_iff_eq_zero_of_mem_box 2024-05-02 15:03:47 3e76e0d feat: Triangle removal (#12523) Prove the triangle removal lemma. Definitions that are internal to the proof are made private. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Combinatorics/SimpleGraph/Dart.lean Modified Mathlib/Combinatorics/SimpleGraph/DegreeSum.lean + theorem SimpleGraph.two_mul_card_edgeFinset Modified Mathlib/Combinatorics/SimpleGraph/Finite.lean Modified Mathlib/Combinatorics/SimpleGraph/Triangle/Basic.lean + theorem SimpleGraph.FarFromTriangleFree.lt_half + theorem SimpleGraph.FarFromTriangleFree.lt_one +/- def SimpleGraph.FarFromTriangleFree Added Mathlib/Combinatorics/SimpleGraph/Triangle/Removal.lean + def Mathlib.Meta.Positivity.evalTriangleRemovalBound + theorem SimpleGraph.FarFromTriangleFree.le_card_cliqueFinset + theorem SimpleGraph.regularityReduced_edges_card_aux + theorem SimpleGraph.triangleRemovalBound_mul_cube_lt + theorem SimpleGraph.triangleRemovalBound_nonpos + theorem SimpleGraph.triangleRemovalBound_pos + theorem SimpleGraph.triangle_removal Modified Mathlib/Data/Finset/Basic.lean + theorem Finset.filter_and_not Modified scripts/noshake.json 2024-05-02 14:08:43 4e159e0 feat (SpecificLimits/Basic) : add geometric lemma (#12594) Add ENNReal.tsum_geometric_add_one, which is a slightly modified version of ENNReal.tsum_geometric. It is natural to need the former in some cases where we use (n+1) to effectively run through the positive integers rather than natural numbers. ESTIMATED CHANGES Modified Mathlib/Analysis/SpecificLimits/Basic.lean + theorem ENNReal.tsum_geometric_add_one 2024-05-02 14:08:41 22b9916 feat: coalgebra isomorphisms (#11970) Isomorphisms of coalgebras. Mimics `Mathlib.Algebra.Module.Equiv`. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/LinearAlgebra/Basic.lean + theorem LinearEquiv.ofLinear_symm_toLinearMap + theorem LinearEquiv.ofLinear_toLinearMap Added Mathlib/RingTheory/Coalgebra/Equiv.lean + def CoalgEquiv.Simps.apply + def CoalgEquiv.Simps.symm_apply + theorem CoalgEquiv.coe_coe + theorem CoalgEquiv.coe_mk + theorem CoalgEquiv.coe_toCoalgHom + theorem CoalgEquiv.coe_toEquiv_symm + theorem CoalgEquiv.coe_toEquiv_trans + theorem CoalgEquiv.coe_toLinearEquiv + theorem CoalgEquiv.ext + theorem CoalgEquiv.ext_iff + theorem CoalgEquiv.invFun_eq_symm + def CoalgEquiv.refl + theorem CoalgEquiv.refl_toCoalgHom + theorem CoalgEquiv.refl_toLinearEquiv + def CoalgEquiv.symm + theorem CoalgEquiv.symm_toCoalgHom + theorem CoalgEquiv.symm_toLinearEquiv + theorem CoalgEquiv.toCoalgHom_eq_coe + theorem CoalgEquiv.toCoalgHom_inj + theorem CoalgEquiv.toCoalgHom_injective + def CoalgEquiv.toEquiv + theorem CoalgEquiv.toEquiv_inj + theorem CoalgEquiv.toEquiv_injective + theorem CoalgEquiv.toLinearEquiv_eq_coe + theorem CoalgEquiv.toLinearEquiv_toLinearMap + def CoalgEquiv.trans + theorem CoalgEquiv.trans_toCoalgHom + theorem CoalgEquiv.trans_toLinearEquiv + structure CoalgEquiv + def CoalgEquivClass.toCoalgEquiv 2024-05-02 13:42:26 db65174 chore: move to v4.8.0-rc1 (#12548) This moves Mathlib to v4.8.0-rc1 ESTIMATED CHANGES Modified .github/workflows/bors.yml Modified .github/workflows/build.yml Modified .github/workflows/build.yml.in Modified .github/workflows/build_fork.yml Modified .github/workflows/lint_and_suggest_pr.yml Modified Archive/MiuLanguage/DecisionSuf.lean Modified Archive/Wiedijk100Theorems/InverseTriangleSum.lean Modified Archive/Wiedijk100Theorems/Konigsberg.lean Modified Archive/Wiedijk100Theorems/Partition.lean Modified Cache/Hashing.lean +/- def Cache.Hashing.roots Modified Cache/IO.lean Modified Cache/Requests.lean Modified Counterexamples/Phillips.lean Modified Counterexamples/ZeroDivisorsInAddMonoidAlgebras.lean Modified Mathlib.lean Modified Mathlib/Algebra/Algebra/Operations.lean Modified Mathlib/Algebra/BigOperators/Fin.lean Modified Mathlib/Algebra/BigOperators/NatAntidiagonal.lean Modified Mathlib/Algebra/Category/GroupCat/Limits.lean Modified Mathlib/Algebra/Category/ModuleCat/Basic.lean Modified Mathlib/Algebra/Category/ModuleCat/Presheaf/Limits.lean Modified Mathlib/Algebra/Category/MonCat/Limits.lean Modified Mathlib/Algebra/CharZero/Defs.lean +/- theorem Nat.cast_add_one_ne_zero Modified Mathlib/Algebra/ContinuedFractions/Computation/Approximations.lean Modified Mathlib/Algebra/Function/Indicator.lean Modified Mathlib/Algebra/GeomSum.lean Modified Mathlib/Algebra/Group/Hom/Instances.lean Modified Mathlib/Algebra/Group/NatPowAssoc.lean Modified Mathlib/Algebra/Homology/Augment.lean Modified Mathlib/Algebra/Homology/ConcreteCategory.lean Modified Mathlib/Algebra/Homology/Exact.lean Modified Mathlib/Algebra/Homology/ExactSequence.lean Modified Mathlib/Algebra/Homology/HomologySequence.lean Modified Mathlib/Algebra/Homology/HomotopyCategory/DegreewiseSplit.lean Modified Mathlib/Algebra/Homology/HomotopyCategory/Pretriangulated.lean Modified Mathlib/Algebra/Homology/HomotopyCategory/ShiftSequence.lean Modified Mathlib/Algebra/Homology/HomotopyCategory/Triangulated.lean Modified Mathlib/Algebra/Homology/Single.lean Modified Mathlib/Algebra/Lie/CartanExists.lean Modified Mathlib/Algebra/Lie/Quotient.lean Modified Mathlib/Algebra/Lie/Solvable.lean Modified Mathlib/Algebra/Lie/Weights/Cartan.lean Modified Mathlib/Algebra/Module/Defs.lean Modified Mathlib/Algebra/Module/PID.lean Modified Mathlib/Algebra/Module/Submodule/LinearMap.lean Modified Mathlib/Algebra/Module/Submodule/Localization.lean Modified Mathlib/Algebra/Order/CauSeq/Basic.lean Modified Mathlib/Algebra/Order/CauSeq/BigOperators.lean Modified Mathlib/Algebra/Order/Field/Power.lean Modified Mathlib/Algebra/Order/Floor.lean Modified Mathlib/Algebra/Order/GroupWithZero/Canonical.lean Modified Mathlib/Algebra/Polynomial/Basic.lean Modified Mathlib/Algebra/Polynomial/BigOperators.lean Modified Mathlib/Algebra/Polynomial/Degree/Definitions.lean Modified Mathlib/Algebra/Polynomial/Derivative.lean Modified Mathlib/Algebra/Polynomial/Div.lean Modified Mathlib/Algebra/Polynomial/Module/Basic.lean Modified Mathlib/Algebra/Polynomial/Monic.lean Modified Mathlib/Algebra/Polynomial/RingDivision.lean Modified Mathlib/Algebra/Polynomial/Smeval.lean Modified Mathlib/Algebra/Ring/Center.lean Modified Mathlib/AlgebraicGeometry/AffineScheme.lean Modified Mathlib/AlgebraicGeometry/EllipticCurve/Jacobian.lean Modified Mathlib/AlgebraicGeometry/EllipticCurve/Projective.lean Modified Mathlib/AlgebraicGeometry/GammaSpecAdjunction.lean Modified Mathlib/AlgebraicGeometry/Pullbacks.lean Modified Mathlib/AlgebraicGeometry/Spec.lean Modified Mathlib/AlgebraicTopology/DoldKan/HomotopyEquivalence.lean Modified Mathlib/AlgebraicTopology/FundamentalGroupoid/Basic.lean Modified Mathlib/AlgebraicTopology/FundamentalGroupoid/InducedMaps.lean Modified Mathlib/AlgebraicTopology/SimplicialSet.lean Modified Mathlib/AlgebraicTopology/TopologicalSimplex.lean Modified Mathlib/Analysis/Calculus/ContDiff/Basic.lean Modified Mathlib/Analysis/Calculus/ContDiff/Defs.lean Modified Mathlib/Analysis/Convex/SpecificFunctions/Deriv.lean Modified Mathlib/Analysis/Convex/StrictConvexSpace.lean Modified Mathlib/Analysis/InnerProductSpace/Orientation.lean Modified Mathlib/Analysis/InnerProductSpace/Projection.lean Modified Mathlib/Analysis/Normed/Group/Basic.lean Modified Mathlib/Analysis/Normed/Group/Quotient.lean Modified Mathlib/Analysis/NormedSpace/BallAction.lean Modified Mathlib/Analysis/NormedSpace/Exponential.lean Modified Mathlib/Analysis/NormedSpace/Star/ContinuousFunctionalCalculus.lean Modified Mathlib/Analysis/NormedSpace/Star/ContinuousFunctionalCalculus/Instances.lean Modified Mathlib/Analysis/ODE/PicardLindelof.lean Modified Mathlib/Analysis/SpecialFunctions/Complex/Circle.lean Modified Mathlib/Analysis/SpecialFunctions/Complex/Log.lean Modified Mathlib/Analysis/SpecialFunctions/Exp.lean Modified Mathlib/Analysis/SpecialFunctions/Gamma/Basic.lean Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/EulerSineProd.lean Modified Mathlib/CategoryTheory/Abelian/DiagramLemmas/Four.lean Modified Mathlib/CategoryTheory/Abelian/FunctorCategory.lean Modified Mathlib/CategoryTheory/Bicategory/Coherence.lean Modified Mathlib/CategoryTheory/ComposableArrows.lean Modified Mathlib/CategoryTheory/GradedObject.lean Modified Mathlib/CategoryTheory/Limits/IsLimit.lean Modified Mathlib/CategoryTheory/Limits/Lattice.lean Modified Mathlib/CategoryTheory/Limits/Shapes/KernelPair.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Kernels.lean Modified Mathlib/CategoryTheory/Limits/Types.lean Modified Mathlib/CategoryTheory/Monoidal/Bimod.lean Modified Mathlib/CategoryTheory/Monoidal/Internal/Limits.lean Modified Mathlib/CategoryTheory/Shift/Localization.lean Modified Mathlib/Combinatorics/Additive/PluenneckeRuzsa.lean Modified Mathlib/Combinatorics/Derangements/Finite.lean Modified Mathlib/Combinatorics/Enumerative/Catalan.lean Modified Mathlib/Combinatorics/Enumerative/Composition.lean +/- theorem Composition.index_exists Modified Mathlib/Combinatorics/Hindman.lean Modified Mathlib/Combinatorics/SetFamily/Compression/UV.lean Modified Mathlib/Combinatorics/SetFamily/LYM.lean Modified Mathlib/Combinatorics/SimpleGraph/Connectivity.lean Modified Mathlib/Combinatorics/SimpleGraph/Girth.lean Modified Mathlib/Combinatorics/SimpleGraph/Regularity/Equitabilise.lean Modified Mathlib/Combinatorics/SimpleGraph/StronglyRegular.lean Modified Mathlib/Combinatorics/SimpleGraph/Subgraph.lean Modified Mathlib/Computability/Ackermann.lean Modified Mathlib/Computability/Partrec.lean Modified Mathlib/Computability/PartrecCode.lean Modified Mathlib/Computability/Primrec.lean Modified Mathlib/Computability/TMToPartrec.lean Modified Mathlib/Control/Fold.lean Modified Mathlib/Control/LawfulFix.lean Modified Mathlib/Data/Bool/AllAny.lean Modified Mathlib/Data/Bool/Basic.lean - theorem Bool.beq_comm - theorem Bool.beq_eq_decide_eq - theorem Bool.coe_iff_coe - theorem Bool.cond_decide - theorem Bool.cond_eq_ite - theorem Bool.cond_not - theorem Bool.decide_and - theorem Bool.decide_coe - theorem Bool.decide_or - theorem Bool.default_bool - theorem Bool.not_eq_not - theorem Bool.not_not_eq Modified Mathlib/Data/Complex/Basic.lean Modified Mathlib/Data/Complex/Exponential.lean Modified Mathlib/Data/DFinsupp/WellFounded.lean Modified Mathlib/Data/Fin/Basic.lean Modified Mathlib/Data/Fin/Fin2.lean Modified Mathlib/Data/Fin/Tuple/Basic.lean Modified Mathlib/Data/Fin/VecNotation.lean Modified Mathlib/Data/Finset/Basic.lean Modified Mathlib/Data/Finset/NoncommProd.lean Modified Mathlib/Data/Finset/Prod.lean Modified Mathlib/Data/Finsupp/Basic.lean Modified Mathlib/Data/Fintype/Card.lean Modified Mathlib/Data/Fintype/Quotient.lean Modified Mathlib/Data/Int/Cast/Basic.lean Modified Mathlib/Data/LazyList/Basic.lean Modified Mathlib/Data/List/Basic.lean Modified Mathlib/Data/List/Cycle.lean Modified Mathlib/Data/List/GetD.lean - theorem List.getD_cons_succ - theorem List.getD_cons_zero - theorem List.getD_nil Modified Mathlib/Data/List/Indexes.lean Modified Mathlib/Data/List/InsertNth.lean Modified Mathlib/Data/List/Intervals.lean +/- theorem List.Ico.bagInter_consecutive Modified Mathlib/Data/List/Join.lean Modified Mathlib/Data/List/Nodup.lean Modified Mathlib/Data/List/Perm.lean Modified Mathlib/Data/List/Rotate.lean Modified Mathlib/Data/Matrix/Basic.lean Modified Mathlib/Data/Matroid/Dual.lean Modified Mathlib/Data/Nat/Bits.lean Modified Mathlib/Data/Nat/Bitwise.lean Modified Mathlib/Data/Nat/Cast/Basic.lean Modified Mathlib/Data/Nat/Cast/Defs.lean Modified Mathlib/Data/Nat/Choose/Multinomial.lean Modified Mathlib/Data/Nat/Defs.lean +/- theorem Nat.one_lt_succ_succ - theorem Nat.pred_eq_sub_one +/- theorem Nat.pred_eq_succ_iff +/- theorem Nat.rec_add_one + theorem Nat.rec_one Modified Mathlib/Data/Nat/Digits.lean Modified Mathlib/Data/Nat/Dist.lean - theorem Nat.dist.def Modified Mathlib/Data/Nat/Factorial/SuperFactorial.lean Modified Mathlib/Data/Nat/Factorization/Basic.lean Modified Mathlib/Data/Nat/Factors.lean Modified Mathlib/Data/Nat/Fib/Basic.lean Modified Mathlib/Data/Nat/Hyperoperation.lean Modified Mathlib/Data/Nat/Log.lean Modified Mathlib/Data/Nat/Multiplicity.lean Modified Mathlib/Data/Nat/Prime.lean Modified Mathlib/Data/Opposite.lean Modified Mathlib/Data/Ordmap/Ordset.lean Modified Mathlib/Data/PFunctor/Multivariate/M.lean Modified Mathlib/Data/PNat/Xgcd.lean Modified Mathlib/Data/QPF/Multivariate/Constructions/Cofix.lean Modified Mathlib/Data/QPF/Multivariate/Constructions/Fix.lean Modified Mathlib/Data/Rat/Lemmas.lean Modified Mathlib/Data/Rat/Order.lean +/- theorem Rat.num_nonneg Modified Mathlib/Data/Real/Hyperreal.lean Modified Mathlib/Data/Seq/Computation.lean Modified Mathlib/Data/Seq/Parallel.lean Modified Mathlib/Data/Seq/Seq.lean Modified Mathlib/Data/Set/Basic.lean Modified Mathlib/Data/Set/Enumerate.lean Modified Mathlib/Data/Set/Equitable.lean Modified Mathlib/Data/Set/Finite.lean Modified Mathlib/Data/Set/MemPartition.lean Modified Mathlib/Data/Set/Pairwise/Basic.lean Modified Mathlib/Data/Set/Prod.lean Modified Mathlib/Data/Set/UnionLift.lean Modified Mathlib/Data/Setoid/Partition.lean Modified Mathlib/Data/String/Basic.lean Modified Mathlib/Data/Subtype.lean Modified Mathlib/Data/Sum/Interval.lean Modified Mathlib/Data/Sym/Basic.lean Modified Mathlib/Data/TypeVec.lean Modified Mathlib/Data/UInt.lean +/- def UInt8.toChar - theorem UInt8.toChar_aux Modified Mathlib/Data/Vector3.lean +/- theorem Vector3.append_insert +/- def Vector3.cons +/- def Vector3.consElim +/- theorem Vector3.cons_head_tail +/- def Vector3.head +/- def Vector3.insert +/- theorem Vector3.insert_fs +/- def Vector3.tail Modified Mathlib/Data/ZMod/Basic.lean Modified Mathlib/Data/ZMod/Factorial.lean Modified Mathlib/Dynamics/PeriodicPts.lean Modified Mathlib/FieldTheory/ChevalleyWarning.lean Modified Mathlib/FieldTheory/Finite/Basic.lean Modified Mathlib/FieldTheory/IsAlgClosed/AlgebraicClosure.lean Modified Mathlib/FieldTheory/Minpoly/MinpolyDiv.lean Modified Mathlib/FieldTheory/Perfect.lean Modified Mathlib/FieldTheory/RatFunc.lean Modified Mathlib/Geometry/Euclidean/MongePoint.lean Modified Mathlib/Geometry/Manifold/MFDeriv/Atlas.lean Modified Mathlib/Geometry/Manifold/PartitionOfUnity.lean Modified Mathlib/Geometry/Manifold/VectorBundle/FiberwiseLinear.lean Modified Mathlib/Geometry/Manifold/VectorBundle/SmoothSection.lean Modified Mathlib/Geometry/RingedSpace/PresheafedSpace/Gluing.lean Modified Mathlib/GroupTheory/CommutingProbability.lean Modified Mathlib/GroupTheory/Congruence.lean Modified Mathlib/GroupTheory/CoprodI.lean Modified Mathlib/GroupTheory/Coset.lean Modified Mathlib/GroupTheory/Coxeter/Basic.lean Modified Mathlib/GroupTheory/GroupAction/Basic.lean Modified Mathlib/GroupTheory/GroupAction/Prod.lean Modified Mathlib/GroupTheory/GroupAction/Quotient.lean Modified Mathlib/GroupTheory/HNNExtension.lean Modified Mathlib/GroupTheory/MonoidLocalization.lean Modified Mathlib/GroupTheory/Nilpotent.lean Modified Mathlib/GroupTheory/Perm/Fin.lean Modified Mathlib/GroupTheory/Perm/List.lean Modified Mathlib/GroupTheory/PushoutI.lean Modified Mathlib/GroupTheory/SchurZassenhaus.lean Modified Mathlib/GroupTheory/Submonoid/Operations.lean Modified Mathlib/GroupTheory/Sylow.lean Modified Mathlib/Init/Core.lean Modified Mathlib/Init/Data/Bool/Lemmas.lean - theorem Bool.cond_false - theorem Bool.cond_self.{u} - theorem Bool.cond_true - theorem Bool.ite_eq_false_distrib - theorem Bool.ite_eq_true_distrib Modified Mathlib/Init/Data/List/Lemmas.lean Modified Mathlib/Init/Data/Ordering/Lemmas.lean Modified Mathlib/Init/Logic.lean - theorem Ne.def Modified Mathlib/Lean/Expr.lean Modified Mathlib/Lean/Expr/Basic.lean Modified Mathlib/Lean/Expr/ExtraRecognizers.lean Modified Mathlib/Lean/Expr/ReplaceRec.lean Deleted Mathlib/Lean/Expr/Traverse.lean - def Lean.Expr.foldlM - def Lean.Expr.traverseChildren Modified Mathlib/Lean/Meta.lean - def Lean.MVarId.iffOfEq - def Lean.MVarId.proofIrrelHeq - def Lean.MVarId.propext - def Lean.MVarId.subsingletonElim Modified Mathlib/Lean/Meta/CongrTheorems.lean Modified Mathlib/Lean/Meta/DiscrTree.lean Modified Mathlib/Lean/Meta/Simp.lean Modified Mathlib/Lean/PrettyPrinter/Delaborator.lean - def Lean.PrettyPrinter.Delaborator.SubExpr.withBindingBody' Modified Mathlib/LinearAlgebra/AffineSpace/Independent.lean Modified Mathlib/LinearAlgebra/Basis.lean Modified Mathlib/LinearAlgebra/Basis/VectorSpace.lean Modified Mathlib/LinearAlgebra/Charpoly/ToMatrix.lean Modified Mathlib/LinearAlgebra/CrossProduct.lean Modified Mathlib/LinearAlgebra/ExteriorAlgebra/Basic.lean Modified Mathlib/LinearAlgebra/Isomorphisms.lean Modified Mathlib/LinearAlgebra/Lagrange.lean Modified Mathlib/LinearAlgebra/Matrix/Charpoly/Coeff.lean Modified Mathlib/LinearAlgebra/Matrix/ZPow.lean Modified Mathlib/LinearAlgebra/Multilinear/Basic.lean Modified Mathlib/LinearAlgebra/PiTensorProduct.lean Modified Mathlib/LinearAlgebra/Projectivization/Basic.lean Modified Mathlib/LinearAlgebra/Projectivization/Independence.lean Modified Mathlib/LinearAlgebra/QuadraticForm/Basic.lean Modified Mathlib/LinearAlgebra/Quotient.lean Modified Mathlib/LinearAlgebra/QuotientPi.lean Modified Mathlib/LinearAlgebra/SModEq.lean Modified Mathlib/LinearAlgebra/Semisimple.lean Modified Mathlib/LinearAlgebra/SesquilinearForm.lean Modified Mathlib/LinearAlgebra/TensorAlgebra/Basic.lean Modified Mathlib/LinearAlgebra/TensorProduct/Basic.lean Modified Mathlib/LinearAlgebra/TensorProduct/Graded/Internal.lean Modified Mathlib/LinearAlgebra/Vandermonde.lean Modified Mathlib/Logic/Basic.lean +/- theorem and_or_imp - theorem eq_true_eq_id - theorem if_false_left - theorem if_false_right - theorem if_true_left - theorem if_true_right +/- theorem imp_and_neg_imp_iff +/- theorem imp_iff_right_iff Modified Mathlib/Logic/Denumerable.lean Modified Mathlib/Logic/Equiv/TransferInstance.lean Modified Mathlib/Logic/Function/Iterate.lean Modified Mathlib/Logic/IsEmpty.lean Modified Mathlib/Logic/Small/Defs.lean Modified Mathlib/Mathport/Notation.lean Modified Mathlib/Mathport/Rename.lean Modified Mathlib/MeasureTheory/Constructions/Polish.lean Modified Mathlib/MeasureTheory/Covering/Differentiation.lean Modified Mathlib/MeasureTheory/Covering/Vitali.lean Modified Mathlib/MeasureTheory/Decomposition/SignedHahn.lean Modified Mathlib/MeasureTheory/Function/ConditionalExpectation/Real.lean Modified Mathlib/MeasureTheory/Function/SimpleFunc.lean Modified Mathlib/MeasureTheory/Group/Measure.lean Modified Mathlib/MeasureTheory/Integral/Bochner.lean Modified Mathlib/MeasureTheory/Integral/CircleIntegral.lean Modified Mathlib/MeasureTheory/Integral/Marginal.lean Modified Mathlib/MeasureTheory/Integral/Periodic.lean Modified Mathlib/MeasureTheory/MeasurableSpace/Basic.lean Modified Mathlib/MeasureTheory/Measure/GiryMonad.lean Modified Mathlib/MeasureTheory/Measure/Haar/Unique.lean Modified Mathlib/MeasureTheory/Measure/Lebesgue/VolumeOfBalls.lean Modified Mathlib/MeasureTheory/Measure/MeasureSpaceDef.lean Modified Mathlib/MeasureTheory/Measure/OpenPos.lean Modified Mathlib/MeasureTheory/Measure/Restrict.lean Modified Mathlib/MeasureTheory/Measure/Stieltjes.lean Modified Mathlib/ModelTheory/Satisfiability.lean Modified Mathlib/NumberTheory/ADEInequality.lean Modified Mathlib/NumberTheory/ArithmeticFunction.lean Modified Mathlib/NumberTheory/Bernoulli.lean Modified Mathlib/NumberTheory/BernoulliPolynomials.lean Modified Mathlib/NumberTheory/Cyclotomic/CyclotomicCharacter.lean Modified Mathlib/NumberTheory/Cyclotomic/Discriminant.lean Modified Mathlib/NumberTheory/Divisors.lean Modified Mathlib/NumberTheory/Harmonic/Defs.lean +/- theorem harmonic_eq_sum_Icc Modified Mathlib/NumberTheory/Harmonic/EulerMascheroni.lean Modified Mathlib/NumberTheory/Harmonic/ZetaAsymp.lean Modified Mathlib/NumberTheory/Multiplicity.lean Modified Mathlib/NumberTheory/NumberField/Embeddings.lean Modified Mathlib/NumberTheory/Padics/PadicVal.lean Modified Mathlib/NumberTheory/Padics/RingHoms.lean Modified Mathlib/NumberTheory/RamificationInertia.lean Modified Mathlib/NumberTheory/ZetaFunction.lean Modified Mathlib/Order/Atoms.lean Modified Mathlib/Order/Basic.lean Modified Mathlib/Order/CompleteLattice.lean Modified Mathlib/Order/Filter/Bases.lean Modified Mathlib/Order/Filter/Basic.lean Modified Mathlib/Order/RelSeries.lean Modified Mathlib/Order/SuccPred/LinearLocallyFinite.lean Modified Mathlib/Probability/Distributions/Gaussian.lean Modified Mathlib/Probability/Independence/Basic.lean Modified Mathlib/Probability/Independence/Conditional.lean +/- theorem ProbabilityTheory.condIndep_iSup_of_monotone Modified Mathlib/Probability/Independence/ZeroOne.lean Modified Mathlib/Probability/Kernel/Disintegration/Density.lean Modified Mathlib/Probability/Kernel/MeasureCompProd.lean Modified Mathlib/Probability/Martingale/OptionalSampling.lean Modified Mathlib/Probability/Martingale/Upcrossing.lean Modified Mathlib/Probability/Process/PartitionFiltration.lean Modified Mathlib/RingTheory/AdicCompletion/Basic.lean Modified Mathlib/RingTheory/Artinian.lean Modified Mathlib/RingTheory/ChainOfDivisors.lean Modified Mathlib/RingTheory/Derivation/Basic.lean Modified Mathlib/RingTheory/Filtration.lean Modified Mathlib/RingTheory/FreeCommRing.lean Modified Mathlib/RingTheory/Henselian.lean Modified Mathlib/RingTheory/Ideal/Cotangent.lean Modified Mathlib/RingTheory/Kaehler.lean Modified Mathlib/RingTheory/LittleWedderburn.lean Modified Mathlib/RingTheory/Localization/FractionRing.lean Modified Mathlib/RingTheory/Multiplicity.lean Modified Mathlib/RingTheory/MvPolynomial/NewtonIdentities.lean Modified Mathlib/RingTheory/MvPowerSeries/Basic.lean Modified Mathlib/RingTheory/Nilpotent/Basic.lean Modified Mathlib/RingTheory/Polynomial/Basic.lean Modified Mathlib/RingTheory/Polynomial/Bernstein.lean Modified Mathlib/RingTheory/Polynomial/Content.lean Modified Mathlib/RingTheory/Polynomial/Cyclotomic/Basic.lean Modified Mathlib/RingTheory/Polynomial/GaussLemma.lean Modified Mathlib/RingTheory/Polynomial/Hermite/Basic.lean Modified Mathlib/RingTheory/Polynomial/Pochhammer.lean Modified Mathlib/RingTheory/QuotientNilpotent.lean Modified Mathlib/RingTheory/ReesAlgebra.lean Modified Mathlib/RingTheory/Smooth/Basic.lean Modified Mathlib/RingTheory/UniqueFactorizationDomain.lean Modified Mathlib/RingTheory/Valuation/ValuationSubring.lean Modified Mathlib/RingTheory/WittVector/Identities.lean Modified Mathlib/RingTheory/WittVector/InitTail.lean Modified Mathlib/RingTheory/WittVector/MulP.lean Modified Mathlib/RingTheory/WittVector/StructurePolynomial.lean Modified Mathlib/RingTheory/WittVector/Verschiebung.lean Modified Mathlib/SetTheory/Cardinal/Basic.lean Modified Mathlib/SetTheory/Lists.lean Modified Mathlib/SetTheory/Ordinal/Basic.lean +/- theorem Ordinal.succ_one Modified Mathlib/SetTheory/Ordinal/FixedPoint.lean Modified Mathlib/SetTheory/Ordinal/Notation.lean Modified Mathlib/SetTheory/Ordinal/Principal.lean Modified Mathlib/SetTheory/ZFC/Basic.lean Modified Mathlib/Tactic.lean Modified Mathlib/Tactic/Abel.lean Modified Mathlib/Tactic/Attr/Core.lean Modified Mathlib/Tactic/CC/Datatypes.lean Modified Mathlib/Tactic/CasesM.lean Modified Mathlib/Tactic/Check.lean Modified Mathlib/Tactic/Common.lean Modified Mathlib/Tactic/Congr!.lean Modified Mathlib/Tactic/DeriveTraversable.lean Modified Mathlib/Tactic/Eqns.lean Modified Mathlib/Tactic/Explode.lean Modified Mathlib/Tactic/ExtendDoc.lean Modified Mathlib/Tactic/FieldSimp.lean Modified Mathlib/Tactic/Find.lean Modified Mathlib/Tactic/NormNum/Result.lean Modified Mathlib/Tactic/Observe.lean Modified Mathlib/Tactic/Positivity/Basic.lean Modified Mathlib/Tactic/Propose.lean Modified Mathlib/Tactic/PushNeg.lean +/- theorem Mathlib.Tactic.PushNeg.not_implies_eq Modified Mathlib/Tactic/Relation/Rfl.lean - def Lean.MVarId.liftReflToEq Modified Mathlib/Tactic/RewriteSearch.lean +/- def Mathlib.Tactic.RewriteSearch.SearchNode.compute_rfl? Deleted Mathlib/Tactic/Rewrites.lean - def Lean.Meta.RewriteResult.by? - def Mathlib.Tactic.Rewrites.RewriteResult.computeRfl - def Mathlib.Tactic.Rewrites.RewriteResult.ppResult - def Mathlib.Tactic.Rewrites.RewriteResult.prepare_ppResult - structure Mathlib.Tactic.Rewrites.RewriteResult - inductive Mathlib.Tactic.Rewrites.SideConditions - def Mathlib.Tactic.Rewrites.backwardWeight - def Mathlib.Tactic.Rewrites.buildDiscrTree - def Mathlib.Tactic.Rewrites.cachePath - def Mathlib.Tactic.Rewrites.discrTreeConfig - def Mathlib.Tactic.Rewrites.forwardWeight - def Mathlib.Tactic.Rewrites.localHypotheses - def Mathlib.Tactic.Rewrites.processLemma - def Mathlib.Tactic.Rewrites.rewrites - def Mathlib.Tactic.Rewrites.rewritesCore - def Mathlib.Tactic.Rewrites.rewritesDedup - def Mathlib.Tactic.Rewrites.solveByElim Modified Mathlib/Tactic/Sat/FromLRAT.lean Modified Mathlib/Tactic/Says.lean Modified Mathlib/Tactic/Simps/Basic.lean Modified Mathlib/Tactic/ToAdditive.lean Modified Mathlib/Topology/Bornology/Constructions.lean Modified Mathlib/Topology/Category/Profinite/Nobeling.lean Modified Mathlib/Topology/Instances/AddCircle.lean Modified Mathlib/Topology/Instances/ENNReal.lean Modified Mathlib/Topology/MetricSpace/GromovHausdorff.lean Modified Mathlib/Topology/MetricSpace/Perfect.lean Modified Mathlib/Topology/MetricSpace/Polish.lean Modified Mathlib/Topology/Order/DenselyOrdered.lean Modified Mathlib/Topology/Order/IntermediateValue.lean Modified Mathlib/Topology/Support.lean Modified Mathlib/Topology/UniformSpace/Equicontinuity.lean Modified Mathlib/Util/AssertExists.lean Modified Mathlib/Util/AssertNoSorry.lean Modified Mathlib/Util/CompileInductive.lean Deleted MathlibExtras.lean Deleted MathlibExtras/Rewrites.lean Modified lake-manifest.json Modified lakefile.lean Modified lean-toolchain Modified scripts/nolints.json Modified scripts/noshake.json Modified test/CommDiag.lean Modified test/ComputeDegree.lean Modified test/DeriveFintype.lean Modified test/ExtractGoal.lean Modified test/LibrarySearch/basic.lean Modified test/LibrarySearch/mathlib.lean Modified test/Lint.lean - def Foo.Foo.foo - def add.add Modified test/MkIffOfInductive.lean Modified test/MoveAdd.lean Modified test/PosDef.lean Modified test/Recall.lean Modified test/RewriteSearch/Basic.lean + theorem foo Modified test/RewriteSearch/Polynomial.lean Modified test/apply_fun.lean Modified test/cases.lean Modified test/convert2.lean Modified test/matrix.lean Modified test/propose.lean Modified test/rewrites.lean - theorem prime_of_prime + def testConst - def zero Modified test/slim_check.lean Modified test/success_if_fail_with_msg.lean 2024-05-02 12:35:56 f3ca782 perf(RingTheory.Kaehler): avoid mvar non-assignment (#12579) In these two declarations, Lean correctly tries to assign these metavariables but they are not assignable at this point. This forces a wild goose chase. It is simpler to just help it out. ESTIMATED CHANGES Modified Mathlib/RingTheory/Kaehler.lean 2024-05-02 08:30:24 40cac78 feat(PNat/Basic): two small sub/le lemmata (#12492) ESTIMATED CHANGES Modified Mathlib/Data/PNat/Basic.lean + theorem PNat.le_sub_one_of_lt + theorem PNat.sub_le 2024-05-02 00:23:50 d9f1497 feat(Data/Matrix): Equalities relating `mulVec` and `smul` (#12538) These lemmas should make working with vectors easier in some cases. Check [this](https://leanprover.zulipchat.com/#narrow/stream/113489-new-members/topic/Factor.20out.20a.20vector) related Zulip topic. ESTIMATED CHANGES Modified Mathlib/Data/Matrix/Basic.lean + theorem Matrix.diagonal_const_mulVec + theorem Matrix.intCast_mulVec + theorem Matrix.natCast_mulVec + theorem Matrix.ofNat_mulVec + theorem Matrix.vecMul_diagonal_const + theorem Matrix.vecMul_intCast + theorem Matrix.vecMul_natCast + theorem Matrix.vecMul_ofNat 2024-05-01 23:24:28 afdc772 feat: exclude aesop from nonterminal simp check (#12585) Should make it so that aesop on the next line causes a nonterminal simp not to trigger the linter. ESTIMATED CHANGES Modified scripts/lint-style.py 2024-05-01 23:24:27 2c1517a chore(SimpleGraph/Regularity): Don't use `Classical` (#12575) The classical decidability instances were found in theorem statements, making them harder to use. ESTIMATED CHANGES Modified Mathlib/Combinatorics/SimpleGraph/Regularity/Chunk.lean Modified Mathlib/Combinatorics/SimpleGraph/Regularity/Increment.lean +/- theorem SzemerediRegularity.increment_isEquipartition Modified Mathlib/Combinatorics/SimpleGraph/Regularity/Lemma.lean 2024-05-01 23:24:26 2f50e34 chore: Rename `Dart.is_adj` to `Dart.adj` (#12574) The `is` doesn't bring any information and `is_adj` really looks like a Lean 3-ism (even though it technically follows the Lean 4 naming convention). ESTIMATED CHANGES Modified Mathlib/Combinatorics/SimpleGraph/Connectivity.lean Modified Mathlib/Combinatorics/SimpleGraph/Dart.lean Modified Mathlib/Combinatorics/SimpleGraph/DegreeSum.lean 2024-05-01 23:24:25 6a6473d chore: Rename `Finset.inter_sdiff` to `Finset.inter_sdiff_assoc` (#12573) ... and turn it around. This matches `Set.inter_diff_assoc`. ESTIMATED CHANGES Modified Mathlib/Combinatorics/SimpleGraph/StronglyRegular.lean Modified Mathlib/Data/Finset/Basic.lean +/- theorem Finset.inter_sdiff + theorem Finset.inter_sdiff_assoc 2024-05-01 22:18:44 4c031bc chore: adaptations to lean 4.8.0 (#12583) Mainly this adds names to instances, which are presumably necessary for some unspecified reason. ESTIMATED CHANGES Modified Mathlib/Analysis/Complex/Basic.lean Modified Mathlib/Analysis/NormedSpace/AffineIsometry.lean Modified Mathlib/Data/Complex/Module.lean Modified Mathlib/Data/Finsupp/Notation.lean Modified Mathlib/Data/Rat/Order.lean Modified Mathlib/Data/ZMod/Basic.lean Modified Mathlib/NumberTheory/Harmonic/ZetaAsymp.lean Modified Mathlib/NumberTheory/ZetaFunction.lean Modified Mathlib/Order/Booleanisation.lean Modified Mathlib/RingTheory/Ideal/Colon.lean Modified Mathlib/RingTheory/Ideal/Quotient.lean Modified Mathlib/RingTheory/Polynomial/Cyclotomic/Eval.lean Modified Mathlib/RingTheory/Polynomial/Eisenstein/IsIntegral.lean Modified Mathlib/RingTheory/PowerSeries/Basic.lean Modified Mathlib/RingTheory/PowerSeries/Order.lean Modified Mathlib/RingTheory/Valuation/RankOne.lean Modified Mathlib/Topology/Algebra/GroupCompletion.lean Modified Mathlib/Topology/Algebra/Module/Basic.lean Modified Mathlib/Topology/Algebra/Ring/Basic.lean Modified Mathlib/Topology/Category/Stonean/Basic.lean Modified Mathlib/Topology/ContinuousFunction/Bounded.lean Modified Mathlib/Topology/Instances/Real.lean Modified Mathlib/Topology/Order/ScottTopology.lean Modified Mathlib/Topology/Sheaves/Skyscraper.lean Modified Mathlib/Topology/UniformSpace/Matrix.lean Modified docs/overview.yaml Modified docs/undergrad.yaml Modified test/Simps.lean Modified test/ValuedCSP.lean Modified test/byContra.lean Modified test/instance_diamonds.lean Modified test/instance_diamonds/normed.lean Modified test/observe.lean Modified test/propose.lean Modified test/slim_check.lean 2024-05-01 20:55:47 dfbbdde feat: make `rank_mul_eq_left_of_isUnit_det` into an effective `simp` lemma (#12244) These theorems give that if A is a unit, or a unitary, in the n x n matrices over a commutative ring R, and B is an m x n matrix over R, that multiplying B by A on the left or right doesn't change the rank of B. To facilitate this, added `isUnits_det_units` and `det_isUnit` lemmas. ESTIMATED CHANGES Modified Mathlib/Data/Matrix/Rank.lean Modified Mathlib/LinearAlgebra/Matrix/NonsingularInverse.lean + theorem Matrix.isUnits_det_units Modified Mathlib/LinearAlgebra/UnitaryGroup.lean + theorem Matrix.UnitaryGroup.det_isUnit 2024-05-01 18:59:44 94b9da4 feat(RingTheory/AdicCompletion): refactor and expand API (#12516) Refactors and expands the API for adic completions. More precisely: - Renames `adicCompletion` to `AdicCompletion`. - Redefines `adicCompletion` in terms of a `transitionMap`. - Introduces `AdicCauchySequence` as the module of `I`-adic Cauchy sequences. - Provides a surjective linear map `AdicCauchySequence I M →ₗ[R] AdicCompletion I M` and an induction principle for `AdicCompletion I M` for that. ESTIMATED CHANGES Modified Mathlib/RingTheory/AdicCompletion/Basic.lean + theorem AdicCompletion.AdicCauchySequence.add_apply + theorem AdicCompletion.AdicCauchySequence.ext + theorem AdicCompletion.AdicCauchySequence.ext_iff + def AdicCompletion.AdicCauchySequence.mk + theorem AdicCompletion.AdicCauchySequence.smul_apply + theorem AdicCompletion.AdicCauchySequence.sub_apply + def AdicCompletion.AdicCauchySequence.submodule + theorem AdicCompletion.AdicCauchySequence.zero_apply + def AdicCompletion.AdicCauchySequence + def AdicCompletion.IsAdicCauchy + theorem AdicCompletion.coe_eval + def AdicCompletion.eval + theorem AdicCompletion.eval_apply + theorem AdicCompletion.eval_comp_of + theorem AdicCompletion.eval_lift + theorem AdicCompletion.eval_lift_apply + theorem AdicCompletion.eval_of + theorem AdicCompletion.eval_surjective + theorem AdicCompletion.ext + theorem AdicCompletion.ext_iff + theorem AdicCompletion.induction_on + theorem AdicCompletion.isAdicCauchy_iff + def AdicCompletion.lift + def AdicCompletion.mk + theorem AdicCompletion.mk_surjective + def AdicCompletion.of + theorem AdicCompletion.of_apply + theorem AdicCompletion.range_eval + def AdicCompletion.submodule + def AdicCompletion.transitionMap + theorem AdicCompletion.transitionMap_comp + theorem AdicCompletion.transitionMap_comp_apply + theorem AdicCompletion.transitionMap_comp_eval + theorem AdicCompletion.transitionMap_comp_eval_apply + theorem AdicCompletion.transitionMap_eq + theorem AdicCompletion.transitionMap_mk + theorem AdicCompletion.val_add + theorem AdicCompletion.val_smul + theorem AdicCompletion.val_sub + theorem AdicCompletion.val_zero + def AdicCompletion - theorem adicCompletion.coe_eval - def adicCompletion.eval - theorem adicCompletion.eval_apply - theorem adicCompletion.eval_comp_of - theorem adicCompletion.eval_of - theorem adicCompletion.ext - def adicCompletion.of - theorem adicCompletion.of_apply - theorem adicCompletion.range_eval - def adicCompletion 2024-05-01 18:08:27 17f6b37 feat(NumberTheory/DirichletCharacter): vanishing of Gauss sums when add char is imprimitive (#12324) The aim of this PR is to show that `gaussSum χ e`, for `χ` a Dirichlet character mod `N` and `e` an additive character mod `N`, is zero if `χ` is primitive but `e` is not. This will be used to prove the functional equation for Dirichlet L-series in a later PR. Along the way we add various general-purpose lemmas about divisibility in `ZMod N` and other finite rings, and about conductors and primitivity of Dirichlet and additive characters. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Group/AddChar.lean + theorem AddChar.mulShift_mulShift + theorem AddChar.mulShift_one + theorem AddChar.mulShift_unit_eq_one_iff Modified Mathlib/Algebra/GroupWithZero/NonZeroDivisors.lean + theorem IsUnit.mem_nonZeroDivisors + theorem isUnit_iff_mem_nonZeroDivisors_of_finite Modified Mathlib/Data/ZMod/Units.lean + theorem ZMod.eq_unit_mul_divisor Modified Mathlib/NumberTheory/DirichletCharacter/Basic.lean + theorem DirichletCharacter.FactorsThrough.existsUnique - theorem DirichletCharacter.changeLevel_def' + theorem DirichletCharacter.changeLevel_eq_one_iff + theorem DirichletCharacter.changeLevel_factorsThrough + theorem DirichletCharacter.changeLevel_injective + theorem DirichletCharacter.changeLevel_toUnitHom +/- def DirichletCharacter.conductorSet + theorem DirichletCharacter.factorsThrough_iff_ker_unitsMap +/- theorem DirichletCharacter.isPrimitive.primitive_mul - theorem DirichletCharacter.periodic Added Mathlib/NumberTheory/DirichletCharacter/GaussSum.lean + theorem factorsThrough_of_gaussSum_ne_zero + theorem gaussSum_aux_of_mulShift + theorem gaussSum_eq_zero_of_isPrimitive_of_not_isPrimitive + theorem gaussSum_mulShift_of_isPrimitive Modified Mathlib/NumberTheory/LegendreSymbol/AddCharacter.lean + theorem AddChar.exists_divisor_of_not_isPrimitive + theorem AddChar.not_isPrimitive_mulShift 2024-05-01 17:08:44 f09d529 feat(Algebra/Lie): existence of Cartan subalgebras (#12297) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Lie/CartanExists.lean + def LieAlgebra.engel_isBot_of_isMin.lieCharpoly + theorem LieAlgebra.engel_isBot_of_isMin.lieCharpoly_coeff_natDegree + theorem LieAlgebra.engel_isBot_of_isMin.lieCharpoly_map_eval + theorem LieAlgebra.engel_isBot_of_isMin.lieCharpoly_monic + theorem LieAlgebra.engel_isBot_of_isMin.lieCharpoly_natDegree + theorem LieAlgebra.engel_isBot_of_isMin + theorem LieAlgebra.exists_isCartanSubalgebra_engel + theorem LieAlgebra.exists_isCartanSubalgebra_engel_of_finrank_le_card Modified Mathlib/Algebra/Lie/Rank.lean + theorem LieAlgebra.finrank_engel + theorem LieAlgebra.isRegular_iff_finrank_engel_eq_rank + theorem LieAlgebra.rank_le_finrank_engel Modified Mathlib/Algebra/MvPolynomial/Basic.lean + theorem MvPolynomial.coe_aeval_eq_eval 2024-05-01 16:10:09 bd932a4 chore: adaptations to lean 4.8.0 (#12578) ESTIMATED CHANGES Modified Mathlib/Algebra/Module/LinearMap/Basic.lean Modified Mathlib/Analysis/SpecialFunctions/Integrals.lean Modified Mathlib/CategoryTheory/Bicategory/Functor.lean Modified Mathlib/CategoryTheory/Category/Preorder.lean +/- theorem CategoryTheory.homOfLE_refl Modified Mathlib/CategoryTheory/Limits/Shapes/Products.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Pullbacks.lean Modified Mathlib/Computability/Halting.lean Modified Mathlib/Data/Fin/Tuple/NatAntidiagonal.lean +/- theorem List.Nat.antidiagonalTuple_zero_succ Modified Mathlib/Data/List/GetD.lean Modified Mathlib/Data/QPF/Univariate/Basic.lean Modified Mathlib/Data/Rat/Defs.lean Modified Mathlib/Data/Seq/Computation.lean Modified Mathlib/GroupTheory/CoprodI.lean Modified Mathlib/GroupTheory/Sylow.lean Modified Mathlib/Init/Data/Nat/Basic.lean + theorem Nat.add_one_pos Modified Mathlib/Init/Data/Nat/Lemmas.lean 2024-05-01 15:23:41 4fce67d perf(AG.RingHomProperties): less defeq abuse (#12563) We remove all uses (but one minor one) of `erw` in `affineLocally_iff_affineOpens_le` and add some explicit universe annotations. This speeds up the file by ~~50%~~ 40%. ESTIMATED CHANGES Modified Mathlib/AlgebraicGeometry/Morphisms/RingHomProperties.lean +/- theorem AlgebraicGeometry.affineLocally_iff_affineOpens_le +/- theorem RingHom.PropertyIsLocal.affineLocally_of_isOpenImmersion +/- theorem RingHom.PropertyIsLocal.sourceAffineLocally_of_source_openCover +/- theorem RingHom.RespectsIso.basicOpen_iff +/- theorem RingHom.RespectsIso.ofRestrict_morphismRestrict_iff 2024-05-01 15:23:40 6fa9d2b chore: missing `DecidableEq (DirectSum _ _)` instance (#12491) ESTIMATED CHANGES Modified Mathlib/Algebra/DirectSum/Basic.lean 2024-05-01 14:27:28 d24a658 feat(Order/Minimals, Order/RelIso/Set): four `RelIso` lemmas (#12558) This PR proves four rewrite lemmas about `RelIso` for statements that were previously a little awkward to navigate. ESTIMATED CHANGES Modified Mathlib/Order/Minimal.lean + theorem RelIso.maximals_preimage_eq + theorem RelIso.minimals_preimage_eq Modified Mathlib/Order/RelIso/Set.lean + theorem RelIso.image_eq_preimage_symm + theorem RelIso.preimage_eq_image_symm 2024-05-01 13:16:53 7e5c6cb chore: remove @[simp] from Fintype.card_fun (#12577) On v4.8.0, `Fintype.card_fun` will no longer be a valid simp lemma, because the lhs will simplify via `Fintype.card_pi`. This PR cleans up pre-emptively. ESTIMATED CHANGES Modified Mathlib/Data/Fintype/BigOperators.lean Modified Mathlib/Data/Fintype/Card.lean +/- theorem Finset.card_fin Modified Mathlib/Data/Matrix/Basic.lean Modified Mathlib/GroupTheory/PGroup.lean Modified Mathlib/Probability/Distributions/Uniform.lean 2024-05-01 12:07:24 1079fe3 chore: update to leanprover/std4#769 (#12476) ESTIMATED CHANGES Modified Archive/Wiedijk100Theorems/BallotProblem.lean Modified Mathlib/Combinatorics/SimpleGraph/Trails.lean Modified Mathlib/Data/Multiset/Basic.lean Modified lake-manifest.json 2024-05-01 11:05:06 9481bfd chore: remove simp from Finset.filter_congr_decidable (#12576) * This isn't used by simp in Mathlib * It's doing something weird, replacing an arbitrary `DecidablePred` by the one found by inference (this might have been relevant before, but isn't now that we reuse more instances via unification). * The @[simp] had been removed on `bump/v4.8.0`, although I no longer remember why. Let's just get rid of it. ESTIMATED CHANGES Modified Mathlib/Data/Finset/Basic.lean 2024-05-01 09:30:34 154a87c refactor(Condensed): redefine condensed abelian groups as condensed `ℤ`-modules (#12510) ESTIMATED CHANGES Modified Mathlib.lean Deleted Mathlib/Condensed/Abelian.lean Deleted Mathlib/Condensed/Adjunctions.lean - def Condensed.abForget - def Condensed.freeAb - def Condensed.setAbAdjunction Modified Mathlib/Condensed/Explicit.lean Modified Mathlib/Condensed/Limits.lean Modified Mathlib/Condensed/Module.lean + def Condensed.forget + def Condensed.free + def Condensed.freeForgetAdjunction Modified Mathlib/Condensed/Solid.lean +/- def Condensed.profiniteSolid +/- def Condensed.profiniteSolidification 2024-05-01 07:53:19 8390a31 chore(CategoryTheory/MorphismProperty): Use le instead of subset (#12520) ESTIMATED CHANGES Modified Mathlib/Algebra/Homology/Localization.lean Modified Mathlib/Algebra/Homology/QuasiIso.lean + theorem homotopyEquivalences_le_quasiIso - theorem homotopyEquivalences_subset_quasiIso Modified Mathlib/CategoryTheory/Localization/Composition.lean Modified Mathlib/CategoryTheory/Localization/Equivalence.lean Modified Mathlib/CategoryTheory/Localization/LocalizerMorphism.lean Modified Mathlib/CategoryTheory/Localization/Pi.lean Modified Mathlib/CategoryTheory/Localization/Predicate.lean +/- theorem CategoryTheory.Functor.IsLocalization.for_id +/- def CategoryTheory.Localization.strictUniversalPropertyFixedTargetId Modified Mathlib/CategoryTheory/MorphismProperty/Basic.lean + theorem CategoryTheory.MorphismProperty.isoClosure_eq_iff + theorem CategoryTheory.MorphismProperty.isoClosure_le_iff - theorem CategoryTheory.MorphismProperty.isoClosure_subset_iff + theorem CategoryTheory.MorphismProperty.le_def + theorem CategoryTheory.MorphismProperty.le_isoClosure + theorem CategoryTheory.MorphismProperty.map_inverseImage_le - theorem CategoryTheory.MorphismProperty.map_inverseImage_subset + theorem CategoryTheory.MorphismProperty.map_le_iff - theorem CategoryTheory.MorphismProperty.map_subset_iff +/- theorem CategoryTheory.MorphismProperty.monotone_isoClosure +/- theorem CategoryTheory.MorphismProperty.monotone_map - theorem CategoryTheory.MorphismProperty.subset_iff_le - theorem CategoryTheory.MorphismProperty.subset_isoClosure Modified Mathlib/CategoryTheory/MorphismProperty/Composition.lean Modified Mathlib/CategoryTheory/MorphismProperty/IsInvertedBy.lean + theorem CategoryTheory.MorphismProperty.IsInvertedBy.iff_le_inverseImage_isomorphisms + theorem CategoryTheory.MorphismProperty.IsInvertedBy.iff_map_le_isomorphisms - theorem CategoryTheory.MorphismProperty.IsInvertedBy.iff_map_subset_isomorphisms + theorem CategoryTheory.MorphismProperty.IsInvertedBy.of_le - theorem CategoryTheory.MorphismProperty.IsInvertedBy.of_subset Modified Mathlib/CategoryTheory/MorphismProperty/Limits.lean + theorem CategoryTheory.MorphismProperty.universally_eq_iff 2024-05-01 05:42:11 59710fc feat: make `Fact` testable for `slim_check` (#12566) Closes #12565 Also adds a sort-of-missing `g.withContext`. I don't think its absence causes any errors. ESTIMATED CHANGES Modified Mathlib/Logic/Basic.lean Modified Mathlib/Tactic/SlimCheck.lean Modified Mathlib/Testing/SlimCheck/Testable.lean Modified test/slim_check.lean 2024-05-01 04:33:33 dc5d5b4 chore: update for leanprover/std4#758 (#12475) ESTIMATED CHANGES Modified Mathlib/Combinatorics/Enumerative/Composition.lean Modified Mathlib/Data/List/Basic.lean +/- theorem List.nthLe_zero Modified Mathlib/Data/List/Rotate.lean Modified Mathlib/NumberTheory/Zsqrtd/Basic.lean Modified lake-manifest.json 2024-05-01 01:21:48 85a4f8e feat: make multiplication in [Add]MonoidAlgebra irreducible (#12554) * See [Zulip](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/multiplication.20on.20MvPolynomial.20should.20be.20irreducible) * The example in that thread takes ~55000ms on master and 43ms on this branch. * I expect that this will lead to little gains in the (working) proofs of Mathlib. * The multiplication on `MonoidAlgebra _ G` and `AddMonoidAlgebra _ (Additive G)` are still defeq the same. ESTIMATED CHANGES Modified Mathlib/Algebra/MonoidAlgebra/Basic.lean + def MonoidAlgebra.mul' Modified Mathlib/Algebra/MonoidAlgebra/Ideal.lean Modified Mathlib/Algebra/MonoidAlgebra/Support.lean Modified Mathlib/Algebra/MvPolynomial/Basic.lean Modified Mathlib/Algebra/Polynomial/Basic.lean 2024-05-01 00:06:11 dc034b5 feat(CategoryTheory/Yoneda): dualize yoneda lemma (#12041) Refactors `yonedaLemma`. Also dualizes all definitions and results related to `yonedaLemma` to obtain `coyonedaLemma` and friends. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Closed/FunctorCategory.lean Modified Mathlib/CategoryTheory/Elements.lean Modified Mathlib/CategoryTheory/Limits/FunctorCategory.lean Modified Mathlib/CategoryTheory/Limits/Presheaf.lean Modified Mathlib/CategoryTheory/Sites/IsSheafFor.lean Modified Mathlib/CategoryTheory/Subobject/Lattice.lean Modified Mathlib/CategoryTheory/Yoneda.lean + def CategoryTheory.coyonedaCompUliftFunctorEquiv + def CategoryTheory.coyonedaEquiv + theorem CategoryTheory.coyonedaEquiv_apply + theorem CategoryTheory.coyonedaEquiv_comp + theorem CategoryTheory.coyonedaEquiv_coyoneda_map + theorem CategoryTheory.coyonedaEquiv_naturality + theorem CategoryTheory.coyonedaEquiv_symm_app_apply + theorem CategoryTheory.coyonedaEquiv_symm_map + def CategoryTheory.coyonedaEvaluation + theorem CategoryTheory.coyonedaEvaluation_map_down + def CategoryTheory.coyonedaLemma + def CategoryTheory.coyonedaPairing + theorem CategoryTheory.coyonedaPairingExt + theorem CategoryTheory.coyonedaPairing_map + def CategoryTheory.curriedCoyonedaLemma' + def CategoryTheory.curriedCoyonedaLemma + theorem CategoryTheory.isIso_of_coyoneda_map_bijective +/- def CategoryTheory.yonedaEquiv - theorem CategoryTheory.yonedaEquiv_comp' +/- theorem CategoryTheory.yonedaEquiv_naturality +/- def CategoryTheory.yonedaLemma - def CategoryTheory.yonedaSections - def CategoryTheory.yonedaSectionsSmall - theorem CategoryTheory.yonedaSectionsSmall_hom - theorem CategoryTheory.yonedaSectionsSmall_inv_app_apply Modified Mathlib/Logic/Equiv/Basic.lean + theorem Equiv.ulift_symm_down 2024-04-30 23:37:43 ac46644 perf(AlgebraicGeometry.Spec): add explicit universe annotations (#12557) Following #12469 and #12494, we add explicit universe levels in `AlgebraicGeometry.Spec` to speed up the file now and forestall greater slowdowns with the next version of Lean. ESTIMATED CHANGES Modified Mathlib/AlgebraicGeometry/Spec.lean +/- def AlgebraicGeometry.Spec.locallyRingedSpaceMap +/- theorem AlgebraicGeometry.Spec.locallyRingedSpaceMap_comp +/- theorem AlgebraicGeometry.Spec.locallyRingedSpaceMap_id +/- def AlgebraicGeometry.Spec.locallyRingedSpaceObj +/- theorem AlgebraicGeometry.Spec.sheafedSpaceMap_comp +/- theorem AlgebraicGeometry.Spec.sheafedSpaceMap_id +/- def AlgebraicGeometry.Spec.sheafedSpaceObj +/- def AlgebraicGeometry.Spec.toLocallyRingedSpace +/- def AlgebraicGeometry.Spec.toPresheafedSpace +/- theorem AlgebraicGeometry.Spec.toPresheafedSpace_map +/- theorem AlgebraicGeometry.Spec.toPresheafedSpace_map_op +/- theorem AlgebraicGeometry.Spec.toPresheafedSpace_obj +/- theorem AlgebraicGeometry.Spec.toPresheafedSpace_obj_op +/- def AlgebraicGeometry.Spec.toSheafedSpace +/- def AlgebraicGeometry.Spec.toTop +/- def AlgebraicGeometry.Spec.topMap +/- theorem AlgebraicGeometry.Spec.topMap_comp +/- theorem AlgebraicGeometry.Spec.topMap_id +/- def AlgebraicGeometry.Spec.topObj +/- theorem AlgebraicGeometry.Spec_map_localization_isIso +/- theorem AlgebraicGeometry.Spec_Γ_naturality +/- theorem AlgebraicGeometry.localRingHom_comp_stalkIso +/- theorem AlgebraicGeometry.stalkMap_toStalk +/- def AlgebraicGeometry.toSpecΓ 2024-04-30 22:42:11 fd72582 chore: adaptations to lean 4.8.0 (#12562) ESTIMATED CHANGES Modified Mathlib/Analysis/SpecialFunctions/Pow/Real.lean Modified Mathlib/CategoryTheory/Countable.lean Modified Mathlib/CategoryTheory/Galois/Examples.lean Modified Mathlib/CategoryTheory/Idempotents/Biproducts.lean Modified Mathlib/CategoryTheory/Limits/Shapes/FiniteLimits.lean Modified Mathlib/CategoryTheory/Preadditive/Mat.lean Modified Mathlib/Combinatorics/Additive/Energy.lean Modified Mathlib/Combinatorics/Derangements/Finite.lean Modified Mathlib/Combinatorics/SimpleGraph/AdjMatrix.lean Modified Mathlib/Data/Fin/VecNotation.lean Modified Mathlib/Data/Fintype/Card.lean Modified Mathlib/Data/Int/Bitwise.lean Modified Mathlib/Data/Int/GCD.lean Modified Mathlib/Data/List/Perm.lean Modified Mathlib/Data/List/ReduceOption.lean Modified Mathlib/Data/List/Sigma.lean Modified Mathlib/Data/List/Sort.lean + theorem List.length_split_fst_le + theorem List.length_split_snd_le Modified Mathlib/Data/List/Zip.lean Modified Mathlib/Data/Multiset/FinsetOps.lean Modified Mathlib/Data/Nat/Bits.lean Modified Mathlib/Data/Nat/Defs.lean Modified Mathlib/Data/Nat/Digits.lean Modified Mathlib/Data/Nat/Factorization/Basic.lean Modified Mathlib/Data/Nat/Factors.lean Modified Mathlib/Data/Nat/Totient.lean Modified Mathlib/Data/Num/Lemmas.lean Modified Mathlib/Data/Rat/Denumerable.lean Modified Mathlib/Data/Real/Basic.lean Modified Mathlib/FieldTheory/ChevalleyWarning.lean Modified Mathlib/FieldTheory/Finite/Basic.lean Modified Mathlib/Geometry/Manifold/ChartedSpace.lean Modified Mathlib/Geometry/Manifold/MFDeriv/Atlas.lean Modified Mathlib/GroupTheory/CoprodI.lean Modified Mathlib/GroupTheory/FreeGroup/Basic.lean Modified Mathlib/GroupTheory/GroupAction/Option.lean Modified Mathlib/GroupTheory/GroupAction/Sigma.lean Modified Mathlib/LinearAlgebra/AffineSpace/AffineMap.lean Modified Mathlib/LinearAlgebra/Matrix/Adjugate.lean Modified Mathlib/MeasureTheory/Constructions/BorelSpace/Basic.lean Modified Mathlib/MeasureTheory/Constructions/Pi.lean Modified Mathlib/MeasureTheory/Group/Convolution.lean Modified docs/100.yaml 2024-04-30 18:55:17 a0c4507 feat: `{Mv}Polynomial.algebraMap_apply` simps (#11193) * Adds lemma `Polynomial.algebraMap_eq` analogous to `MvPolynomial.algebraMap_eq` * Adds some namespace disambiguations in various places to make this possible * Adds `simp` to these, and the related `{Mv}Polynomial.algebraMap_apply` lemmas. * Removes simp tag from later lemmas which linter says these additions now allow to be simp-proved ESTIMATED CHANGES Modified Mathlib/Algebra/MvPolynomial/Basic.lean Modified Mathlib/Algebra/MvPolynomial/Equiv.lean Modified Mathlib/Algebra/Polynomial/AlgebraMap.lean + theorem Polynomial.algebraMap_eq Modified Mathlib/FieldTheory/IsAlgClosed/AlgebraicClosure.lean Modified Mathlib/FieldTheory/KummerExtension.lean Modified Mathlib/RingTheory/AlgebraicIndependent.lean Modified Mathlib/RingTheory/FinitePresentation.lean 2024-04-30 16:16:52 a41b81f perf: make LocalInvariantProp a structure (#12552) * Also redefine `MDifferentiableWithinAt` and `MDifferentiableAt` so that they are using `LiftProp[Within]At`. * This causes a speedup in the old proof of `ContMDiffWithinAt.cle_arrowCongr` by 25%. * Also give some extra information in the proof of `ContMDiffWithinAt.cle_arrowCongr` to speed it up by another factor of 4. * A bit of the fallout (e.g. in `hasSmoothAddSelf`) is from Lean unfolding *way* too many definitions to make things definitionally equal. Since `LiftPropWithinAt` is now a structure, the old proofs now break, unless you rewrite with `chartedSpaceSelf_prod`), causing much less defeq-abuse. * The new lemmas `MDifferentiableWithinAt.differentiableWithinAt_writtenInExtChartAt` and `MDifferentiableAt.differentiableWithinAt_writtenInExtChartAt` have a bit long names. This is to avoid naming clash with the existing `MDifferentiableWithinAt.differentiableWithinAt`. I'm open for other suggestions. ESTIMATED CHANGES Modified Mathlib/Geometry/Manifold/Algebra/Monoid.lean Modified Mathlib/Geometry/Manifold/ContMDiff/Defs.lean Modified Mathlib/Geometry/Manifold/ContMDiff/NormedSpace.lean Modified Mathlib/Geometry/Manifold/ContMDiffMFDeriv.lean Modified Mathlib/Geometry/Manifold/LocalInvariantProperties.lean + structure ChartedSpace.LiftPropWithinAt - def ChartedSpace.LiftPropWithinAt Modified Mathlib/Geometry/Manifold/MFDeriv/Atlas.lean Modified Mathlib/Geometry/Manifold/MFDeriv/Basic.lean - theorem MDifferentiableAt.continuousAt - theorem MDifferentiableWithinAt.continuousWithinAt Modified Mathlib/Geometry/Manifold/MFDeriv/Defs.lean + theorem MDifferentiableAt.continuousAt + theorem MDifferentiableAt.differentiableWithinAt_writtenInExtChartAt + theorem MDifferentiableWithinAt.continuousWithinAt + theorem MDifferentiableWithinAt.differentiableWithinAt_writtenInExtChartAt + theorem mdifferentiableAt_iff - theorem mdifferentiableAt_iff_liftPropAt + theorem mdifferentiableWithinAt_iff' - theorem mdifferentiableWithinAt_iff_liftPropWithinAt Modified Mathlib/Geometry/Manifold/MFDeriv/FDeriv.lean Modified Mathlib/Geometry/Manifold/MFDeriv/SpecificFunctions.lean Modified Mathlib/Geometry/Manifold/VectorBundle/Basic.lean 2024-04-30 16:16:51 e50e1c9 chore: adaptations to lean 4.8.0 (#12549) ESTIMATED CHANGES Modified Archive/Examples/IfNormalization/Result.lean Modified Archive/Examples/IfNormalization/WithoutAesop.lean Modified Archive/Wiedijk100Theorems/AbelRuffini.lean Modified Archive/Wiedijk100Theorems/InverseTriangleSum.lean Modified Mathlib/Algebra/BigOperators/Associated.lean Modified Mathlib/Algebra/Category/Ring/Constructions.lean Modified Mathlib/Algebra/Category/Ring/Limits.lean Modified Mathlib/Algebra/Function/Support.lean Modified Mathlib/Algebra/GeomSum.lean Modified Mathlib/Algebra/Group/UniqueProds.lean Modified Mathlib/Algebra/Homology/Augment.lean Modified Mathlib/Algebra/Module/LinearMap/Polynomial.lean Modified Mathlib/Algebra/MvPolynomial/Polynomial.lean Modified Mathlib/Algebra/Order/Interval/Basic.lean Modified Mathlib/Algebra/PUnitInstances.lean Modified Mathlib/Algebra/Polynomial/Basic.lean Modified Mathlib/Algebra/Polynomial/FieldDivision.lean Modified Mathlib/Algebra/TrivSqZeroExt.lean Modified Mathlib/Analysis/BoundedVariation.lean Modified Mathlib/Analysis/Convex/Basic.lean +/- theorem stdSimplex_fin_two Modified Mathlib/Analysis/NormedSpace/Star/Matrix.lean Modified Mathlib/Analysis/SpecialFunctions/Complex/LogBounds.lean Modified Mathlib/Topology/UniformSpace/Matrix.lean Modified docs/overview.yaml Modified docs/undergrad.yaml 2024-04-30 15:37:20 3a7e6bb chore: move summable lemmas (#12503) We move some lemmas out of `Topology/Instances/ENNReal` into `Topology/Algebra/InfiniteSum/Real`. Also use this to address a porting TODO. This was originally part of #12446 ESTIMATED CHANGES Modified Archive/Wiedijk100Theorems/SumOfPrimeReciprocalsDiverges.lean Modified Mathlib/Analysis/Normed/Field/InfiniteSum.lean Modified Mathlib/Analysis/SpecificLimits/Basic.lean Modified Mathlib/Topology/Algebra/InfiniteSum/Real.lean + theorem Real.tsum_le_of_sum_range_le - theorem cauchySeq_of_edist_le_of_summable + theorem not_summable_iff_tendsto_nat_atTop_of_nonneg + theorem summable_iff_not_tendsto_nat_atTop_of_nonneg + theorem summable_of_sum_le + theorem summable_of_sum_range_le + theorem summable_prod_of_nonneg + theorem summable_sigma_of_nonneg + theorem tsum_lt_tsum_of_nonneg Modified Mathlib/Topology/Instances/ENNReal.lean - theorem Real.tsum_le_of_sum_range_le + theorem cauchySeq_of_edist_le_of_summable - theorem not_summable_iff_tendsto_nat_atTop_of_nonneg - theorem summable_iff_not_tendsto_nat_atTop_of_nonneg - theorem summable_of_sum_le - theorem summable_of_sum_range_le - theorem summable_prod_of_nonneg - theorem summable_sigma_of_nonneg - theorem tsum_lt_tsum_of_nonneg 2024-04-30 15:37:19 fbdfab9 feat(Algebra/Category/ModuleCat): the category of sheaves of modules has limits (#12269) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Category/ModuleCat/Sheaf.lean + def SheafOfModules.evaluation Added Mathlib/Algebra/Category/ModuleCat/Sheaf/Limits.lean + theorem PresheafOfModules.isSheaf_of_isLimit 2024-04-30 14:24:29 a7ed535 feat(Complex/UpperHalfPlane): add vertical strips (#12443) We define the vertical strips that are needed for proving Eisenstein series are modular forms #10377 . We also add the definition of sqrt{-1} as an elements of the upper half plane. Note that this is no longer needed for the modular forms PRs but its good to have. Sorry about the typo in the PR name, its not my day! ESTIMATED CHANGES Modified Mathlib/Analysis/Complex/UpperHalfPlane/Basic.lean + def UpperHalfPlane.I + theorem UpperHalfPlane.I_im + theorem UpperHalfPlane.I_re + theorem UpperHalfPlane.coe_I Modified Mathlib/Analysis/Complex/UpperHalfPlane/Topology.lean + theorem UpperHalfPlane.mem_verticalStrip_iff + theorem UpperHalfPlane.subset_verticalStrip_of_isCompact + def UpperHalfPlane.verticalStrip 2024-04-30 14:24:27 001604a feat: `∑ x ∈ s, f x` to replace `∑ x in s, f x` in the future (#6795) Adds new syntax for sum/product big operators for `∑ x ∈ s, f x`. The set `s` can either be a `Finset` or a `Set` with a `Fintype` instance, in which case it is equivalent to `∑ x ∈ s.toFinset, f x`. Also supports `∑ (x ∈ s) (y ∈ t), f x y` for `Finset.sum (s ×ˢ t) (fun ⟨x, y⟩ ↦ f x y)`. Note that these are not dependent products at the moment. Adds `with` clauses, so for example `∑ (x ∈ Finset.range 5) (y ∈ Finset.range 5) with x < y, x * y`, which inserts a `Finset.filter` over the domain set. Supports pattern matching in the variable position. This is by creating an experimental version of `extBinder` that uses `term:max` instead of `binderIdent`. The new `∑ x ∈ s, f x` notation is used in `Algebra.BigOperators.Basic` for illustration, but the old `∑ x in s, f x` still works for backwards compatibility. Zulip threads [here](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/.E2.88.91.20x.20.E2.88.88.20s.2C.20f.20x.20instead.20of.20.E2.88.91.20x.20in.20s.2C.20f.20x/near/387352818) and [here](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/Destruction.20and.20big.20operators/near/387366894) ESTIMATED CHANGES Modified Mathlib/Algebra/BigOperators/Basic.lean + def BigOperators.bigOpBindersPattern + def BigOperators.bigOpBindersProd + def BigOperators.processBigOpBinder + def BigOperators.processBigOpBinders +/- theorem Finset.dvd_prod_of_mem +/- theorem Finset.eq_one_of_prod_eq_one +/- theorem Finset.exists_ne_one_of_prod_ne_one +/- theorem Finset.nonempty_of_prod_ne_one +/- theorem Finset.pow_card_mul_prod +/- theorem Finset.pow_eq_prod_const +/- theorem Finset.prod_attach +/- theorem Finset.prod_coe_sort +/- theorem Finset.prod_coe_sort_eq_attach +/- theorem Finset.prod_cons +/- theorem Finset.prod_const +/- theorem Finset.prod_const_one +/- theorem Finset.prod_div_distrib +/- theorem Finset.prod_empty +/- theorem Finset.prod_eq_one +/- theorem Finset.prod_eq_pow_card +/- theorem Finset.prod_eq_zero +/- theorem Finset.prod_eq_zero_iff +/- theorem Finset.prod_finset_coe +/- theorem Finset.prod_insert +/- theorem Finset.prod_insert_one +/- theorem Finset.prod_inv_distrib +/- theorem Finset.prod_map_val +/- theorem Finset.prod_mul_distrib +/- theorem Finset.prod_mul_pow_card +/- theorem Finset.prod_ne_zero_iff +/- theorem Finset.prod_of_empty +/- theorem Finset.prod_pow +/- theorem Finset.prod_range_one +/- theorem Finset.prod_range_zero +/- theorem Finset.prod_set_coe +/- theorem Finset.prod_singleton +/- theorem Finset.prod_zpow +/- theorem Multiset.toFinset_sum_count_eq +/- theorem ofAdd_sum +/- theorem ofMul_prod Modified Mathlib/Data/Fintype/Basic.lean + def precheckFinsetStx Modified Mathlib/LinearAlgebra/Matrix/AbsoluteValue.lean 2024-04-30 13:20:09 9de65eb chore(Init/Order/Defs): alias for le_antisymm (#12545) ESTIMATED CHANGES Modified Mathlib/Init/Order/Defs.lean 2024-04-30 11:37:29 d29b378 chore: adapt to multiple goal linter 3 (#12372) A PR analogous to #12338 and #12361: reformatting proofs following the multiple goals linter of #12339. ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/Spectrum.lean Modified Mathlib/Algebra/Category/ModuleCat/Images.lean Modified Mathlib/Algebra/CharP/Quotient.lean Modified Mathlib/Algebra/DirectLimit.lean Modified Mathlib/Algebra/DirectSum/Internal.lean Modified Mathlib/Algebra/Group/UniqueProds.lean Modified Mathlib/Algebra/Homology/HomotopyCategory/HomComplex.lean Modified Mathlib/Algebra/Module/LocalizedModule.lean Modified Mathlib/Algebra/MonoidAlgebra/Degree.lean Modified Mathlib/Algebra/MonoidAlgebra/Ideal.lean Modified Mathlib/Algebra/MvPolynomial/Variables.lean Modified Mathlib/Algebra/Polynomial/BigOperators.lean Modified Mathlib/Algebra/Polynomial/Degree/Definitions.lean Modified Mathlib/Algebra/Polynomial/Derivative.lean Modified Mathlib/Algebra/Polynomial/Div.lean Modified Mathlib/Algebra/Polynomial/FieldDivision.lean Modified Mathlib/Algebra/Polynomial/Module/Basic.lean Modified Mathlib/Algebra/Polynomial/Reverse.lean Modified Mathlib/Algebra/Polynomial/RingDivision.lean Modified Mathlib/Algebra/Quaternion.lean Modified Mathlib/Analysis/BoxIntegral/Box/Basic.lean Modified Mathlib/Analysis/BoxIntegral/Partition/Basic.lean Modified Mathlib/Analysis/Convex/Combination.lean Modified Mathlib/Analysis/Convex/Function.lean Modified Mathlib/Analysis/Convex/Mul.lean Modified Mathlib/Analysis/Convex/Segment.lean Modified Mathlib/Analysis/Convex/Star.lean Modified Mathlib/Analysis/Normed/Field/Basic.lean Modified Mathlib/Analysis/SpecificLimits/Basic.lean Modified Mathlib/CategoryTheory/Abelian/Homology.lean Modified Mathlib/Combinatorics/Configuration.lean Modified Mathlib/Combinatorics/Hall/Basic.lean Modified Mathlib/Data/Complex/Exponential.lean Modified Mathlib/Data/Nat/Squarefree.lean Modified Mathlib/Data/Nat/Totient.lean Modified Mathlib/Data/ZMod/Basic.lean Modified Mathlib/Geometry/RingedSpace/PresheafedSpace.lean Modified Mathlib/GroupTheory/Complement.lean Modified Mathlib/GroupTheory/Exponent.lean Modified Mathlib/GroupTheory/HNNExtension.lean Modified Mathlib/GroupTheory/Perm/Cycle/Concrete.lean Modified Mathlib/GroupTheory/SpecificGroups/Dihedral.lean Modified Mathlib/LinearAlgebra/AffineSpace/Combination.lean Modified Mathlib/LinearAlgebra/AffineSpace/Independent.lean Modified Mathlib/LinearAlgebra/DFinsupp.lean Modified Mathlib/LinearAlgebra/Dimension/StrongRankCondition.lean Modified Mathlib/LinearAlgebra/FreeModule/PID.lean Modified Mathlib/LinearAlgebra/InvariantBasisNumber.lean Modified Mathlib/LinearAlgebra/Matrix/Determinant.lean Modified Mathlib/LinearAlgebra/Matrix/DotProduct.lean Modified Mathlib/LinearAlgebra/Matrix/Transvection.lean Modified Mathlib/ModelTheory/DirectLimit.lean Modified Mathlib/NumberTheory/FLT/Three.lean Modified Mathlib/NumberTheory/Multiplicity.lean Modified Mathlib/NumberTheory/PellMatiyasevic.lean Modified Mathlib/RingTheory/ChainOfDivisors.lean Modified Mathlib/RingTheory/Finiteness.lean Modified Mathlib/RingTheory/Ideal/IsPrimary.lean Modified Mathlib/RingTheory/Localization/Away/Basic.lean Modified Mathlib/RingTheory/Localization/FractionRing.lean Modified Mathlib/RingTheory/Localization/Ideal.lean Modified Mathlib/RingTheory/Localization/Submodule.lean Modified Mathlib/RingTheory/MvPolynomial/Symmetric.lean Modified Mathlib/RingTheory/MvPolynomial/WeightedHomogeneous.lean Modified Mathlib/RingTheory/Polynomial/Basic.lean Modified Mathlib/RingTheory/Polynomial/Hermite/Basic.lean Modified Mathlib/RingTheory/Polynomial/Nilpotent.lean Modified Mathlib/RingTheory/Polynomial/Vieta.lean Modified Mathlib/RingTheory/PowerSeries/WellKnown.lean Modified Mathlib/RingTheory/PrincipalIdealDomain.lean Modified Mathlib/RingTheory/UniqueFactorizationDomain.lean Modified Mathlib/SetTheory/Surreal/Dyadic.lean Modified Mathlib/Topology/Algebra/Polynomial.lean Modified Mathlib/Topology/Algebra/UniformGroup.lean Modified Mathlib/Topology/Algebra/UniformMulAction.lean Modified Mathlib/Topology/Category/TopCat/Limits/Pullbacks.lean Modified Mathlib/Topology/Category/TopCat/OpenNhds.lean Modified Mathlib/Topology/Gluing.lean Modified Mathlib/Topology/Homeomorph.lean Modified Mathlib/Topology/Homotopy/HSpaces.lean Modified Mathlib/Topology/IndicatorConstPointwise.lean Modified Mathlib/Topology/Instances/ENNReal.lean Modified Mathlib/Topology/Instances/NNReal.lean Modified Mathlib/Topology/LocallyConstant/Basic.lean Modified Mathlib/Topology/Order/IntermediateValue.lean Modified Mathlib/Topology/Order/ScottTopology.lean Modified Mathlib/Topology/Sequences.lean Modified Mathlib/Topology/Sheaves/Presheaf.lean Modified Mathlib/Topology/Sheaves/SheafCondition/Sites.lean Modified Mathlib/Topology/StoneCech.lean Modified Mathlib/Topology/UniformSpace/Cauchy.lean Modified Mathlib/Topology/UniformSpace/UniformEmbedding.lean 2024-04-30 10:36:09 be17d9b perf(Computability/AkraBazzi): fix slow aesop call (#12541) This fixes a very slow aesop call. ESTIMATED CHANGES Modified Mathlib/Computability/AkraBazzi/AkraBazzi.lean 2024-04-30 10:36:08 37351aa feat(Rat): Numerator and denominator of `q ^ n` (#12506) Prove `(q ^ n).num = q.num ^ n` and `(q ^ n).den = q.den ^ n` by making those defeq. It is somewhat painful. `(q ^ n).den = q.den ^ n` is also defeq for `NNRat`, but not `(q ^ n).num = q.num ^ n` due to the `Int.natAbs` in the definition of `NNRat.num`. ESTIMATED CHANGES Modified Mathlib/Data/NNRat/Defs.lean +/- theorem NNRat.coe_pow + theorem NNRat.den_pow + theorem NNRat.num_pow Modified Mathlib/Data/Rat/Defs.lean + theorem Rat.den_pow + theorem Rat.divInt_pow +/- theorem Rat.intCast_div_eq_divInt + theorem Rat.mk'_mul_mk' + theorem Rat.mk'_num_den + theorem Rat.mk'_pow + theorem Rat.mkRat_pow + theorem Rat.num_pow + theorem Rat.pow_def + theorem Rat.pow_eq_divInt + theorem Rat.pow_eq_mkRat Modified Mathlib/NumberTheory/DiophantineApproximation.lean 2024-04-30 09:33:22 333b54a feat(CategoryTheory): whiskering a fully faithful functor is full (#12527) We already had that whiskering by a faithful functor is faithful. This PR also adds the relevant `Full` and `Faithful` instances for the sheaf version of whiskering, (`sheafCompose`). ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Sites/Whiskering.lean Modified Mathlib/CategoryTheory/Whiskering.lean 2024-04-30 09:33:21 35a8481 chore(NumberField/Units): split into two files (#12509) This PR splits the file `NumberField/Units.lean` into two files placed into a new folder `NumberField/Units`: - `Units/Basic.lean` contains the basic definitions and results about the unit group and its torsion subgroup, - `Units/DirichletTheorem.lean` contains the proof of Dirichlet unit theorem and results about the structure of the unit group and its rank. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/NumberTheory/NumberField/Units/Basic.lean + theorem NumberField.Units.coe_injective + theorem NumberField.Units.coe_mul + theorem NumberField.Units.coe_ne_zero + theorem NumberField.Units.coe_neg_one + theorem NumberField.Units.coe_one + theorem NumberField.Units.coe_pow + theorem NumberField.Units.coe_zpow + theorem NumberField.Units.mem_torsion + theorem NumberField.Units.rootsOfUnity_eq_one + theorem NumberField.Units.rootsOfUnity_eq_torsion + def NumberField.Units.torsion + def NumberField.Units.torsionOrder + theorem NumberField.isUnit_iff_norm + theorem Rat.RingOfIntegers.isUnit_iff Renamed Mathlib/NumberTheory/NumberField/Units.lean to Mathlib/NumberTheory/NumberField/Units/DirichletTheorem.lean - def NumberField.Units.basisModTorsion - theorem NumberField.Units.coe_injective - theorem NumberField.Units.coe_mul - theorem NumberField.Units.coe_ne_zero - theorem NumberField.Units.coe_neg_one - theorem NumberField.Units.coe_one - theorem NumberField.Units.coe_pow - theorem NumberField.Units.coe_zpow + def NumberField.Units.dirichletUnitTheorem.basisModTorsion + theorem NumberField.Units.dirichletUnitTheorem.exist_unique_eq_mul_prod + theorem NumberField.Units.dirichletUnitTheorem.fun_eq_repr + def NumberField.Units.dirichletUnitTheorem.fundSystem + def NumberField.Units.dirichletUnitTheorem.rank + theorem NumberField.Units.dirichletUnitTheorem.rank_modTorsion + def NumberField.Units.dirichletUnitTheorem.unitLatticeEquiv + theorem NumberField.Units.dirichletUnitTheorem.unitLattice_rank - theorem NumberField.Units.exist_unique_eq_mul_prod - theorem NumberField.Units.fun_eq_repr - def NumberField.Units.fundSystem - theorem NumberField.Units.mem_torsion - def NumberField.Units.rank - theorem NumberField.Units.rank_modTorsion - theorem NumberField.Units.rootsOfUnity_eq_one - theorem NumberField.Units.rootsOfUnity_eq_torsion - def NumberField.Units.torsion - def NumberField.Units.torsionOrder - def NumberField.Units.unitLatticeEquiv - theorem NumberField.Units.unitLattice_rank - theorem NumberField.isUnit_iff_norm - theorem Rat.RingOfIntegers.isUnit_iff 2024-04-30 09:33:20 fe96aa4 chore: adapt to multiple goal linter 2 (#12361) A PR analogous to #12338: reformatting proofs following the multiple goals linter of #12339. ESTIMATED CHANGES Modified Archive/Wiedijk100Theorems/BirthdayProblem.lean Modified Archive/Wiedijk100Theorems/BuffonsNeedle.lean Modified Mathlib/Algebra/Lie/Weights/Basic.lean Modified Mathlib/Algebra/Module/Zlattice/Basic.lean Modified Mathlib/Algebra/Polynomial/UnitTrinomial.lean Modified Mathlib/AlgebraicGeometry/AffineScheme.lean Modified Mathlib/AlgebraicGeometry/FunctionField.lean Modified Mathlib/AlgebraicGeometry/Morphisms/Basic.lean Modified Mathlib/AlgebraicGeometry/Morphisms/QuasiCompact.lean Modified Mathlib/AlgebraicGeometry/Morphisms/QuasiSeparated.lean Modified Mathlib/AlgebraicGeometry/Morphisms/RingHomProperties.lean Modified Mathlib/AlgebraicGeometry/OpenImmersion.lean Modified Mathlib/AlgebraicGeometry/ProjectiveSpectrum/Scheme.lean Modified Mathlib/AlgebraicGeometry/Properties.lean Modified Mathlib/AlgebraicGeometry/Pullbacks.lean Modified Mathlib/Analysis/Analytic/IsolatedZeros.lean Modified Mathlib/Analysis/BoundedVariation.lean Modified Mathlib/Analysis/Calculus/ContDiff/Basic.lean Modified Mathlib/Analysis/Calculus/FDeriv/Extend.lean Modified Mathlib/Analysis/Complex/AbsMax.lean Modified Mathlib/Analysis/Complex/Angle.lean Modified Mathlib/Analysis/ConstantSpeed.lean Modified Mathlib/Analysis/Convex/Cone/Pointed.lean Modified Mathlib/Analysis/Fourier/AddCircle.lean Modified Mathlib/Analysis/Fourier/PoissonSummation.lean Modified Mathlib/Analysis/Fourier/RiemannLebesgueLemma.lean Modified Mathlib/Analysis/InnerProductSpace/Orientation.lean Modified Mathlib/Analysis/NormedSpace/Spectrum.lean Modified Mathlib/Analysis/SpecialFunctions/Gamma/Basic.lean Modified Mathlib/Analysis/SpecialFunctions/Gamma/Beta.lean Modified Mathlib/Analysis/SpecialFunctions/Gamma/BohrMollerup.lean Modified Mathlib/Analysis/SpecialFunctions/Gaussian/GaussianIntegral.lean Modified Mathlib/Analysis/SpecialFunctions/ImproperIntegrals.lean Modified Mathlib/Analysis/SpecialFunctions/Integrals.lean Modified Mathlib/Analysis/SpecialFunctions/Log/Deriv.lean Modified Mathlib/CategoryTheory/Preadditive/Schur.lean Modified Mathlib/Combinatorics/Additive/Behrend.lean Modified Mathlib/Data/Complex/ExponentialBounds.lean Modified Mathlib/Data/Rat/Cast/Defs.lean Modified Mathlib/Data/Real/Pi/Bounds.lean Modified Mathlib/Geometry/Euclidean/Angle/Oriented/Basic.lean Modified Mathlib/Geometry/Euclidean/Angle/Sphere.lean Modified Mathlib/Geometry/Manifold/ContMDiffMFDeriv.lean Modified Mathlib/LinearAlgebra/Eigenspace/Triangularizable.lean Modified Mathlib/MeasureTheory/Decomposition/RadonNikodym.lean Modified Mathlib/MeasureTheory/Function/L1Space.lean Modified Mathlib/MeasureTheory/Function/SimpleFuncDenseLp.lean Modified Mathlib/MeasureTheory/Function/UniformIntegrable.lean Modified Mathlib/MeasureTheory/Integral/Bochner.lean Modified Mathlib/MeasureTheory/Integral/CircleTransform.lean Modified Mathlib/MeasureTheory/Integral/Gamma.lean Modified Mathlib/MeasureTheory/Integral/IntegralEqImproper.lean Modified Mathlib/MeasureTheory/Measure/Haar/Disintegration.lean Modified Mathlib/MeasureTheory/Measure/Haar/Quotient.lean Modified Mathlib/MeasureTheory/Measure/Hausdorff.lean Modified Mathlib/MeasureTheory/Measure/Tilted.lean Modified Mathlib/NumberTheory/Bertrand.lean Modified Mathlib/NumberTheory/Cyclotomic/Basic.lean Modified Mathlib/NumberTheory/Cyclotomic/Discriminant.lean Modified Mathlib/NumberTheory/Harmonic/EulerMascheroni.lean Modified Mathlib/NumberTheory/KummerDedekind.lean Modified Mathlib/NumberTheory/Liouville/LiouvilleNumber.lean Modified Mathlib/NumberTheory/NumberField/Embeddings.lean Modified Mathlib/NumberTheory/ZetaValues.lean Modified Mathlib/Probability/Distributions/Exponential.lean Modified Mathlib/Probability/Kernel/Basic.lean Modified Mathlib/Probability/Kernel/Composition.lean Modified Mathlib/Probability/Kernel/RadonNikodym.lean Modified Mathlib/Probability/Martingale/Convergence.lean Modified Mathlib/Probability/Martingale/Upcrossing.lean Modified Mathlib/Probability/Process/Filtration.lean Modified Mathlib/Probability/Process/Stopping.lean Modified Mathlib/Probability/Variance.lean Modified Mathlib/RepresentationTheory/GroupCohomology/Resolution.lean Modified Mathlib/RepresentationTheory/Rep.lean Modified Mathlib/RingTheory/DedekindDomain/Different.lean Modified Mathlib/RingTheory/DedekindDomain/Ideal.lean Modified Mathlib/RingTheory/DedekindDomain/IntegralClosure.lean Modified Mathlib/RingTheory/DedekindDomain/SelmerGroup.lean Modified Mathlib/RingTheory/Nilpotent/Basic.lean Modified Mathlib/RingTheory/Norm.lean Modified Mathlib/RingTheory/Polynomial/Cyclotomic/Eval.lean Modified Mathlib/RingTheory/Polynomial/Cyclotomic/Expand.lean Modified Mathlib/RingTheory/Polynomial/Eisenstein/IsIntegral.lean Modified Mathlib/RingTheory/Polynomial/Hermite/Gaussian.lean Modified Mathlib/RingTheory/Polynomial/Selmer.lean Modified Mathlib/RingTheory/Trace.lean 2024-04-30 07:19:04 335470e chore(List): delete old, unused, deprecated theorems (#9607) These theorems have been deprecated for at least a year, and are unused. ESTIMATED CHANGES Modified Mathlib/Data/List/Basic.lean - theorem List.cons_nthLe_drop_succ - theorem List.get?_eq_some' - theorem List.getLast_eq_nthLe - theorem List.nthLe_append - theorem List.nthLe_drop' - theorem List.nthLe_drop - theorem List.nthLe_eq_iff - theorem List.nthLe_length_sub_one - theorem List.nthLe_replicate - theorem List.nthLe_set_eq - theorem List.nthLe_set_of_ne - theorem List.nthLe_take' - theorem List.nthLe_take - theorem List.some_nthLe_eq 2024-04-30 06:07:46 45f93f3 chore: adapt to multiple goal linter 1 (#12338) A PR accompanying #12339. [Zulip discussion](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/linting.20against.20.22multi-goal.20proofs.22) ESTIMATED CHANGES Modified Archive/Imo/Imo1972Q5.lean Modified Archive/Imo/Imo2008Q2.lean Modified Archive/Wiedijk100Theorems/AbelRuffini.lean Modified Archive/Wiedijk100Theorems/BallotProblem.lean Modified Archive/Wiedijk100Theorems/CubingACube.lean Modified Archive/Wiedijk100Theorems/Partition.lean Modified Counterexamples/Cyclotomic105.lean Modified Counterexamples/DirectSumIsInternal.lean Modified Mathlib/Algebra/BigOperators/Finprod.lean Modified Mathlib/Algebra/BigOperators/List/Basic.lean Modified Mathlib/Algebra/Category/Ring/Constructions.lean Modified Mathlib/Algebra/ContinuedFractions/Computation/Approximations.lean Modified Mathlib/Algebra/GCDMonoid/Finset.lean Modified Mathlib/Algebra/GeomSum.lean Modified Mathlib/Algebra/GroupPower/Order.lean Modified Mathlib/Algebra/Lie/DirectSum.lean Modified Mathlib/Algebra/Lie/IdealOperations.lean Modified Mathlib/Algebra/Module/LinearMap/End.lean Modified Mathlib/Algebra/Order/BigOperators/Group/List.lean Modified Mathlib/Algebra/Order/CauSeq/BigOperators.lean Modified Mathlib/Algebra/Order/Field/Basic.lean Modified Mathlib/Algebra/Order/Group/Int.lean Modified Mathlib/Algebra/Order/Group/MinMax.lean Modified Mathlib/Algebra/Order/Interval/Basic.lean Modified Mathlib/Algebra/Order/Pointwise.lean Modified Mathlib/Algebra/Order/Sub/Defs.lean Modified Mathlib/Algebra/Quandle.lean Modified Mathlib/AlgebraicGeometry/Gluing.lean Modified Mathlib/AlgebraicTopology/SimplexCategory.lean Modified Mathlib/Analysis/Calculus/FDeriv/Basic.lean Modified Mathlib/Analysis/Calculus/ParametricIntegral.lean Modified Mathlib/Analysis/Calculus/UniformLimitsDeriv.lean Modified Mathlib/Analysis/Complex/Polynomial.lean Modified Mathlib/Analysis/NormedSpace/Star/ContinuousFunctionalCalculus/Instances.lean Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Angle.lean Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Basic.lean Modified Mathlib/CategoryTheory/Category/Quiv.lean Modified Mathlib/CategoryTheory/GlueData.lean Modified Mathlib/CategoryTheory/IsConnected.lean Modified Mathlib/CategoryTheory/Limits/Connected.lean Modified Mathlib/CategoryTheory/Limits/Constructions/BinaryProducts.lean Modified Mathlib/CategoryTheory/Limits/Constructions/FiniteProductsOfBinaryProducts.lean Modified Mathlib/CategoryTheory/Limits/Final.lean Modified Mathlib/CategoryTheory/Limits/Fubini.lean Modified Mathlib/CategoryTheory/Limits/KanExtension.lean Modified Mathlib/CategoryTheory/Limits/Lattice.lean Modified Mathlib/CategoryTheory/Limits/Preserves/Shapes/Products.lean Modified Mathlib/CategoryTheory/Limits/Presheaf.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Biproducts.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Equalizers.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Pullbacks.lean Modified Mathlib/CategoryTheory/Limits/Shapes/SingleObj.lean Modified Mathlib/CategoryTheory/Limits/Shapes/WidePullbacks.lean Modified Mathlib/CategoryTheory/Limits/Shapes/ZeroMorphisms.lean Modified Mathlib/CategoryTheory/Monoidal/OfChosenFiniteProducts/Basic.lean Modified Mathlib/CategoryTheory/Sites/Canonical.lean Modified Mathlib/CategoryTheory/Sites/Coverage.lean Modified Mathlib/CategoryTheory/Subobject/MonoOver.lean Modified Mathlib/Combinatorics/Enumerative/Composition.lean Modified Mathlib/Combinatorics/Quiver/Arborescence.lean Modified Mathlib/Combinatorics/SetFamily/FourFunctions.lean Modified Mathlib/Combinatorics/SetFamily/LYM.lean Modified Mathlib/Combinatorics/SimpleGraph/Acyclic.lean Modified Mathlib/Combinatorics/SimpleGraph/Connectivity.lean Modified Mathlib/Combinatorics/SimpleGraph/Density.lean Modified Mathlib/Combinatorics/SimpleGraph/Maps.lean Modified Mathlib/Combinatorics/SimpleGraph/Prod.lean Modified Mathlib/Combinatorics/Young/YoungDiagram.lean Modified Mathlib/Computability/RegularExpressions.lean Modified Mathlib/Computability/TMToPartrec.lean Modified Mathlib/Computability/TuringMachine.lean Modified Mathlib/Control/Fix.lean Modified Mathlib/Control/LawfulFix.lean Modified Mathlib/Data/Analysis/Filter.lean Modified Mathlib/Data/DFinsupp/Basic.lean Modified Mathlib/Data/Fin/Basic.lean Modified Mathlib/Data/FinEnum.lean Modified Mathlib/Data/Finset/Lattice.lean Modified Mathlib/Data/Finset/NoncommProd.lean Modified Mathlib/Data/Finset/Sym.lean Modified Mathlib/Data/Finsupp/Basic.lean Modified Mathlib/Data/Finsupp/Defs.lean Modified Mathlib/Data/Fintype/Quotient.lean Modified Mathlib/Data/Int/Bitwise.lean Modified Mathlib/Data/List/Basic.lean Modified Mathlib/Data/List/Chain.lean Modified Mathlib/Data/List/Cycle.lean Modified Mathlib/Data/List/Dedup.lean Modified Mathlib/Data/List/Indexes.lean Modified Mathlib/Data/List/MinMax.lean Modified Mathlib/Data/List/Perm.lean Modified Mathlib/Data/List/Permutation.lean Modified Mathlib/Data/List/Sigma.lean Modified Mathlib/Data/List/Sublists.lean Modified Mathlib/Data/List/Zip.lean Modified Mathlib/Data/Multiset/Antidiagonal.lean Modified Mathlib/Data/Multiset/Pi.lean Modified Mathlib/Data/Multiset/Sum.lean Modified Mathlib/Data/NNRat/Defs.lean Modified Mathlib/Data/Nat/Bits.lean Modified Mathlib/Data/Nat/Cast/Field.lean Modified Mathlib/Data/Nat/Defs.lean Modified Mathlib/Data/Nat/EvenOddRec.lean Modified Mathlib/Data/Nat/Fib/Zeckendorf.lean Modified Mathlib/Data/Nat/Lattice.lean Modified Mathlib/Data/Nat/ModEq.lean Modified Mathlib/Data/Nat/PSub.lean Modified Mathlib/Data/Nat/Pairing.lean Modified Mathlib/Data/Nat/WithBot.lean Modified Mathlib/Data/Num/Lemmas.lean Modified Mathlib/Data/Ordmap/Ordset.lean Modified Mathlib/Data/PFunctor/Multivariate/M.lean Modified Mathlib/Data/PFunctor/Univariate/M.lean Modified Mathlib/Data/PNat/Factors.lean Modified Mathlib/Data/PNat/Prime.lean Modified Mathlib/Data/PNat/Xgcd.lean Modified Mathlib/Data/Pi/Lex.lean Modified Mathlib/Data/Prod/TProd.lean Modified Mathlib/Data/QPF/Multivariate/Constructions/Fix.lean Modified Mathlib/Data/QPF/Univariate/Basic.lean Modified Mathlib/Data/Rat/Cast/Defs.lean Modified Mathlib/Data/Rat/Defs.lean Modified Mathlib/Data/Rat/Lemmas.lean Modified Mathlib/Data/Seq/Parallel.lean Modified Mathlib/Data/Seq/Seq.lean Modified Mathlib/Data/Seq/WSeq.lean Modified Mathlib/Data/Set/Image.lean Modified Mathlib/Data/Stream/Init.lean Modified Mathlib/Data/Sum/Interval.lean Modified Mathlib/Data/Sum/Order.lean Modified Mathlib/Data/TypeVec.lean Modified Mathlib/Data/UInt.lean Modified Mathlib/Data/Vector/Basic.lean Modified Mathlib/Data/Vector3.lean Modified Mathlib/Dynamics/Ergodic/MeasurePreserving.lean Modified Mathlib/Geometry/Manifold/VectorBundle/SmoothSection.lean Modified Mathlib/Geometry/Manifold/VectorBundle/Tangent.lean Modified Mathlib/GroupTheory/Congruence.lean Modified Mathlib/GroupTheory/CoprodI.lean Modified Mathlib/GroupTheory/MonoidLocalization.lean Modified Mathlib/GroupTheory/Perm/ClosureSwap.lean Modified Mathlib/GroupTheory/Perm/Option.lean Modified Mathlib/GroupTheory/Perm/Support.lean Modified Mathlib/GroupTheory/Subgroup/Basic.lean Modified Mathlib/LinearAlgebra/Eigenspace/Basic.lean Modified Mathlib/LinearAlgebra/FiniteDimensional.lean Modified Mathlib/LinearAlgebra/LinearIndependent.lean Modified Mathlib/LinearAlgebra/Matrix/Block.lean Modified Mathlib/Logic/Relation.lean Modified Mathlib/MeasureTheory/Decomposition/Jordan.lean Modified Mathlib/MeasureTheory/Decomposition/SignedHahn.lean Modified Mathlib/MeasureTheory/Decomposition/SignedLebesgue.lean Modified Mathlib/MeasureTheory/Decomposition/UnsignedHahn.lean Modified Mathlib/MeasureTheory/Function/ConditionalExpectation/CondexpL2.lean Modified Mathlib/MeasureTheory/Group/Convolution.lean Modified Mathlib/MeasureTheory/Group/FundamentalDomain.lean Modified Mathlib/MeasureTheory/Integral/Average.lean Modified Mathlib/MeasureTheory/Integral/DominatedConvergence.lean Modified Mathlib/MeasureTheory/Integral/IntervalIntegral.lean Modified Mathlib/MeasureTheory/Integral/Lebesgue.lean Modified Mathlib/MeasureTheory/MeasurableSpace/Basic.lean Modified Mathlib/MeasureTheory/Measure/Content.lean Modified Mathlib/MeasureTheory/Measure/LevyProkhorovMetric.lean Modified Mathlib/MeasureTheory/Measure/Sub.lean Modified Mathlib/MeasureTheory/Measure/VectorMeasure.lean Modified Mathlib/NumberTheory/ADEInequality.lean Modified Mathlib/NumberTheory/Cyclotomic/Rat.lean Modified Mathlib/NumberTheory/Harmonic/ZetaAsymp.lean Modified Mathlib/NumberTheory/LSeries/MellinEqDirichlet.lean Modified Mathlib/NumberTheory/LegendreSymbol/JacobiSymbol.lean Modified Mathlib/NumberTheory/ModularForms/JacobiTheta/Bounds.lean Modified Mathlib/NumberTheory/NumberField/CanonicalEmbedding/Basic.lean Modified Mathlib/NumberTheory/NumberField/CanonicalEmbedding/ConvexBody.lean Modified Mathlib/NumberTheory/NumberField/Units.lean Modified Mathlib/Order/CompactlyGenerated/Basic.lean Modified Mathlib/Order/ConditionallyCompleteLattice/Basic.lean Modified Mathlib/Order/Extension/Linear.lean Modified Mathlib/Order/Filter/AtTopBot.lean Modified Mathlib/Order/Filter/Basic.lean Modified Mathlib/Order/Filter/Prod.lean Modified Mathlib/Order/Interval/Basic.lean Modified Mathlib/Order/Iterate.lean Modified Mathlib/Order/Minimal.lean Modified Mathlib/Order/OmegaCompletePartialOrder.lean Modified Mathlib/Order/RelSeries.lean Modified Mathlib/Order/WellFounded.lean Modified Mathlib/Order/WellFoundedSet.lean Modified Mathlib/Probability/Kernel/MeasurableIntegral.lean Modified Mathlib/Probability/StrongLaw.lean Modified Mathlib/RingTheory/HahnSeries/Basic.lean Modified Mathlib/RingTheory/Ideal/Cotangent.lean Modified Mathlib/RingTheory/Multiplicity.lean Modified Mathlib/SetTheory/Game/Basic.lean Modified Mathlib/SetTheory/Ordinal/Arithmetic.lean Modified Mathlib/Tactic/CancelDenoms/Core.lean Modified Mathlib/Testing/SlimCheck/Gen.lean Modified Mathlib/Topology/Basic.lean Modified Mathlib/Topology/ContinuousFunction/Bounded.lean Modified Mathlib/Topology/TietzeExtension.lean 2024-04-30 05:21:39 db6bc5d feat: More big operator lemmas (#10551) From LeanAPAP ESTIMATED CHANGES Modified Mathlib/Algebra/BigOperators/Basic.lean + theorem Finset.prod_fiberwise_eq_prod_filter' + theorem Finset.prod_fiberwise_eq_prod_filter + theorem Finset.prod_sdiff_eq_prod_sdiff_iff + theorem Finset.prod_sdiff_ne_prod_sdiff_iff + theorem Finset.sum_card_fiberwise_eq_card_filter + theorem Fintype.prod_boole + theorem Fintype.prod_dite_eq' + theorem Fintype.prod_dite_eq + theorem Fintype.prod_ite_eq' + theorem Fintype.prod_ite_eq + theorem Fintype.prod_ite_eq_ite_exists + theorem Fintype.prod_pi_mulSingle' + theorem Fintype.prod_pi_mulSingle + theorem Fintype.prod_subset Modified Mathlib/Algebra/BigOperators/Ring.lean + theorem Fintype.prod_add + theorem Fintype.sum_mul_sum + theorem Fintype.sum_pow Modified Mathlib/Algebra/Module/BigOperators.lean + theorem Fintype.sum_piFinset_apply Modified Mathlib/Data/Finset/Basic.lean +/- theorem Finset.filter_eq_self Modified Mathlib/Data/Finset/Union.lean + theorem Finset.disjiUnion_filter_eq +/- theorem Finset.disjiUnion_filter_eq_of_maps_to Modified Mathlib/Data/Fintype/BigOperators.lean +/- theorem Finset.card_pi + theorem Fintype.card_filter_piFinset_const + theorem Fintype.card_filter_piFinset_const_eq_of_mem + theorem Fintype.card_filter_piFinset_eq + theorem Fintype.card_filter_piFinset_eq_of_mem +/- theorem Fintype.card_pi +/- theorem Fintype.card_piFinset Modified Mathlib/Data/Fintype/Pi.lean + theorem Fintype.eval_image_piFinset_const +/- theorem Fintype.filter_piFinset_of_not_mem + theorem Fintype.piFinset_update_eq_filter_piFinset_mem + theorem Fintype.piFinset_update_singleton_eq_filter_piFinset_eq Modified Mathlib/GroupTheory/PGroup.lean 2024-04-30 04:53:13 c81020b chore: minor backports from nightly-testing (#12531) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Shift/Basic.lean Modified Mathlib/Combinatorics/SimpleGraph/Coloring.lean Modified Mathlib/LinearAlgebra/CliffordAlgebra/Equivs.lean Modified Mathlib/RingTheory/TensorProduct/Basic.lean 2024-04-30 04:24:41 35c984e chore: HahnSeries.ofPowerSeries_X_pow linter complains on nightly-testing (#12529) On `nightly-testing` `ofPowerSeries_X_pow` becomes a bad simp lemma, because the LHS will simplify. Fix this by adding the missing lemma so the whole proof is just by `simp`, and remove `@[simp]`. ESTIMATED CHANGES Modified Mathlib/RingTheory/HahnSeries/Multiplication.lean + theorem HahnSeries.single_pow Modified Mathlib/RingTheory/HahnSeries/PowerSeries.lean +/- theorem HahnSeries.ofPowerSeries_X_pow 2024-04-29 23:31:15 c108320 feat(RingTheory/Finiteness): relax the condition of `Module.Finite.exists_fin'` (#12524) ... from `CommSemiring R` to `Semiring R`. ESTIMATED CHANGES Modified Mathlib/RingTheory/Finiteness.lean +/- theorem Module.Finite.exists_fin' 2024-04-29 22:36:31 53c4e3c docs: fix markdown link (#12512) ESTIMATED CHANGES Modified widget/src/penrose/README.md 2024-04-29 20:47:46 283ea7e chore(AdicCompletion): move to `RingTheory` and make folder (#12511) Move `AdicCompletion` from `LinearAlgebra` into its own folder in `RingTheory` as it seems to fit better there. ESTIMATED CHANGES Modified Mathlib.lean Renamed Mathlib/LinearAlgebra/AdicCompletion.lean to Mathlib/RingTheory/AdicCompletion/Basic.lean Modified Mathlib/RingTheory/DiscreteValuationRing/Basic.lean Modified Mathlib/RingTheory/Henselian.lean 2024-04-29 20:47:45 9cbb31e feat(CategoryTheory/Triangulated): homological functors (#11759) A functor `F : C ⥤ A` from a pretriangulated category to an abelian category is homological iff it sends distinguished triangles in `C` to exact sequences in `A`. In this PR, we define the corresponding type class `F.IsHomological`. If `F` is a homological functor, we introduce the strictly full triangulated subcategory `F.homologicalKernel`. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/CategoryTheory/Limits/Preserves/Shapes/Zero.lean + theorem CategoryTheory.Functor.preservesZeroMorphisms_of_iso Modified Mathlib/CategoryTheory/Preadditive/AdditiveFunctor.lean + theorem CategoryTheory.Functor.additive_of_preserves_binary_products Modified Mathlib/CategoryTheory/Triangulated/Functor.lean Added Mathlib/CategoryTheory/Triangulated/HomologicalFunctor.lean + theorem CategoryTheory.Functor.IsHomological.mk' + theorem CategoryTheory.Functor.IsHomological.of_iso + def CategoryTheory.Functor.homologicalKernel + theorem CategoryTheory.Functor.map_distinguished_exact + theorem CategoryTheory.Functor.mem_homologicalKernel_iff Modified Mathlib/CategoryTheory/Triangulated/Pretriangulated.lean + def CategoryTheory.Pretriangulated.shortComplexOfDistTriangle + def CategoryTheory.Pretriangulated.shortComplexOfDistTriangleIsoOfIso 2024-04-29 19:35:59 e8e66e7 fix: get `variable?` to handle `Type*` and `Sort*` (#8908) Every time `Type*` and `Sort*` elaborate, they generate fresh universe level variables. This was not being accounted for in the computed vs expected check. ESTIMATED CHANGES Modified Mathlib/Tactic/Variable.lean Modified test/Variable.lean 2024-04-29 16:41:34 0924a3d feat: `FastSubsingleton` and `FastIsEmpty` to speed up `congr!`/`convert` (#12495) This is a PR that's a temporary measure to improve performance of `congr!`/`convert`, and the implementation may change in a future PR with a new version of `congr!`. Introduces two typeclasses that are meant to quickly evaluate in common cases of `Subsingleton` and `IsEmpty`. Makes `congr!` use these typeclasses rather than `Subsingleton`. Local `Subsingleton`/`IsEmpty` instances are included as `Fast` instances. To get `congr!`/`convert` to reason about subsingleton types, you can add such instances to the local context. Or, you can `apply Subsingleton.elim` yourself. [Zulip discussion](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/convert.20is.20often.20slow/near/433830798) ESTIMATED CHANGES Modified Mathlib/AlgebraicGeometry/EllipticCurve/Affine.lean Modified Mathlib/Analysis/Calculus/ParametricIntegral.lean Modified Mathlib/CategoryTheory/Limits/Preserves/Basic.lean Modified Mathlib/CategoryTheory/Limits/Shapes/CommSq.lean Modified Mathlib/CategoryTheory/Limits/Shapes/ZeroMorphisms.lean Modified Mathlib/CategoryTheory/Limits/Shapes/ZeroObjects.lean Modified Mathlib/CategoryTheory/Limits/VanKampen.lean Modified Mathlib/CategoryTheory/Preadditive/Biproducts.lean Modified Mathlib/CategoryTheory/Sites/CoverLifting.lean Modified Mathlib/Data/Finset/Antidiagonal.lean Modified Mathlib/Data/Fintype/Basic.lean Modified Mathlib/Lean/Meta/CongrTheorems.lean + def Lean.Meta.fastSubsingletonElim + def Lean.Meta.withSubsingletonAsFast Modified Mathlib/LinearAlgebra/QuadraticForm/TensorProduct.lean Modified Mathlib/MeasureTheory/Integral/Lebesgue.lean Modified Mathlib/NumberTheory/Cyclotomic/Basic.lean Modified Mathlib/Order/Birkhoff.lean Modified Mathlib/RingTheory/Polynomial/Cyclotomic/Basic.lean Modified Mathlib/RingTheory/UniqueFactorizationDomain.lean Modified Mathlib/Tactic/Congr!.lean 2024-04-29 16:41:33 2d73908 feat: generalize `iSup_restrict_spanningSets` (#12439) The measurability assumption was not necessary. I moved the lemma further down in the file to be able to use `restrict_toMeasurable_of_sFinite`. ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Measure/Typeclasses.lean +/- theorem MeasureTheory.Measure.iSup_restrict_spanningSets + theorem MeasureTheory.Measure.iSup_restrict_spanningSets_of_measurableSet 2024-04-29 15:46:36 e0235c0 chore(Data/Rat/Defs): Fix names of a few lemmas (#12505) There are more wrong lemmas in Std, but it's out of my scope ESTIMATED CHANGES Modified Mathlib/Algebra/Module/CharacterModule.lean Modified Mathlib/Algebra/Order/Archimedean.lean Modified Mathlib/Data/NNRat/Defs.lean Modified Mathlib/Data/Rat/Cast/Defs.lean Modified Mathlib/Data/Rat/Defs.lean - theorem Rat.coe_int_den - theorem Rat.coe_int_num + theorem Rat.den_intCast +/- theorem Rat.inv_mkRat + theorem Rat.mk'_zero - theorem Rat.mkRat_eq + theorem Rat.mkRat_eq_divInt +/- theorem Rat.mkRat_one - theorem Rat.mul_def' + theorem Rat.mul_eq_mkRat + theorem Rat.num_intCast - theorem Rat.zero_mk Modified Mathlib/Data/Rat/Lemmas.lean Modified Mathlib/NumberTheory/DiophantineApproximation.lean Modified Mathlib/NumberTheory/Padics/PadicVal.lean Modified Mathlib/RingTheory/WittVector/StructurePolynomial.lean 2024-04-29 15:11:59 194da0f feat: absolute continuity of a sum of measures (#12441) ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Measure/MeasureSpace.lean + theorem MeasureTheory.Measure.absolutelyContinuous_sum_left + theorem MeasureTheory.Measure.absolutelyContinuous_sum_right 2024-04-29 14:14:11 05f4c50 fix: use Unit instead of PUnit in piOptionEquivProd (#12507) The previous implementation required to specify a universe when using piOptionEquivProd. Moreover Unit is to be preferred to PUnit when possible (see definition of PUnit). ESTIMATED CHANGES Modified Mathlib/MeasureTheory/MeasurableSpace/Basic.lean 2024-04-29 13:25:46 7d5102d chore: split Algebra.Module.Basic (#12501) Similar to #12486, which did this for `Algebra.Algebra.Basic`. Splits `Algebra.Module.Defs` off `Algebra.Module.Basic`. Most imports only need the Defs file, which has significantly smaller imports. The remaining `Algebra.Module.Basic` is now a grab-bag of unrelated results, and should probably be split further or rehomed. This is mostly motivated by the wasted effort during minimization upon encountering Algebra.Module.Basic. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/AddConstMap/Basic.lean Modified Mathlib/Algebra/BigOperators/Finprod.lean Modified Mathlib/Algebra/BigOperators/Module.lean Modified Mathlib/Algebra/Module/Algebra.lean Modified Mathlib/Algebra/Module/Basic.lean - def AddCommGroup.intModule.unique - def AddCommMonoid.natModule.unique - theorem AddMonoid.End.intCast_def - theorem AddMonoid.End.natCast_def - theorem CharZero.of_module - theorem CharZero.of_noZeroSMulDivisors - theorem Convex.combo_eq_smul_sub_add - theorem Convex.combo_self - theorem Function.Injective.noZeroSMulDivisors - def Function.Surjective.moduleLeft - theorem Int.smul_one_eq_coe - def Module.addCommMonoidToAddCommGroup - def Module.compHom - theorem Module.eq_zero_of_zero_eq_one - theorem Module.ext' - def Module.toAddMonoidEnd - theorem Nat.noZeroSMulDivisors - theorem Nat.smul_one_eq_coe - theorem NoZeroSMulDivisors.int_of_charZero - def RingHom.smulOneHom - def RingHom.toModule - theorem Units.neg_smul - theorem add_smul - theorem int_smul_eq_zsmul - theorem invOf_two_smul_add_invOf_two_smul - theorem map_intCast_smul - theorem map_natCast_smul - theorem nat_smul_eq_nsmul - theorem neg_eq_self - theorem neg_ne_self - theorem neg_one_smul - theorem neg_smul - theorem neg_smul_neg - theorem nsmul_eq_smul_cast - def ringHomEquivModuleIsScalarTower - theorem self_eq_neg - theorem self_ne_neg - def smulAddHom - theorem smulAddHom_apply - theorem smul_add_one_sub_smul - theorem smul_eq_zero - theorem smul_eq_zero_iff_left - theorem smul_eq_zero_iff_right - theorem smul_left_injective - theorem smul_ne_zero - theorem smul_ne_zero_iff - theorem smul_ne_zero_iff_left - theorem smul_ne_zero_iff_right - theorem smul_right_inj - theorem smul_right_injective - theorem sub_smul - theorem two_nsmul_eq_zero - theorem two_smul' - theorem two_smul - theorem zsmul_eq_smul_cast Modified Mathlib/Algebra/Module/BigOperators.lean Added Mathlib/Algebra/Module/Defs.lean + def AddCommGroup.intModule.unique + def AddCommMonoid.natModule.unique + theorem AddMonoid.End.intCast_def + theorem AddMonoid.End.natCast_def + theorem CharZero.of_module + theorem CharZero.of_noZeroSMulDivisors + theorem Convex.combo_eq_smul_sub_add + theorem Convex.combo_self + theorem Function.Injective.noZeroSMulDivisors + def Function.Surjective.moduleLeft + theorem Int.smul_one_eq_coe + def Module.addCommMonoidToAddCommGroup + def Module.compHom + theorem Module.eq_zero_of_zero_eq_one + theorem Module.ext' + def Module.toAddMonoidEnd + theorem Nat.noZeroSMulDivisors + theorem Nat.smul_one_eq_coe + theorem NoZeroSMulDivisors.int_of_charZero + def RingHom.smulOneHom + def RingHom.toModule + theorem Units.neg_smul + theorem add_smul + theorem int_smul_eq_zsmul + theorem invOf_two_smul_add_invOf_two_smul + theorem map_intCast_smul + theorem map_natCast_smul + theorem nat_smul_eq_nsmul + theorem neg_eq_self + theorem neg_ne_self + theorem neg_one_smul + theorem neg_smul + theorem neg_smul_neg + theorem nsmul_eq_smul_cast + def ringHomEquivModuleIsScalarTower + theorem self_eq_neg + theorem self_ne_neg + def smulAddHom + theorem smulAddHom_apply + theorem smul_add_one_sub_smul + theorem smul_eq_zero + theorem smul_eq_zero_iff_left + theorem smul_eq_zero_iff_right + theorem smul_left_injective + theorem smul_ne_zero + theorem smul_ne_zero_iff + theorem smul_ne_zero_iff_left + theorem smul_ne_zero_iff_right + theorem smul_right_inj + theorem smul_right_injective + theorem sub_smul + theorem two_nsmul_eq_zero + theorem two_smul' + theorem two_smul + theorem zsmul_eq_smul_cast Modified Mathlib/Algebra/Module/Hom.lean Modified Mathlib/Algebra/Module/LinearMap/Basic.lean Modified Mathlib/Algebra/Module/MinimalAxioms.lean Modified Mathlib/Algebra/Module/Pi.lean Modified Mathlib/Algebra/Module/Prod.lean Modified Mathlib/Algebra/Module/Projective.lean Modified Mathlib/Algebra/Order/Module/Defs.lean Modified Mathlib/Algebra/Order/Module/Synonym.lean Modified Mathlib/Algebra/Order/Nonneg/Module.lean Modified Mathlib/Algebra/Order/ToIntervalMod.lean Modified Mathlib/Algebra/PUnitInstances.lean Modified Mathlib/Algebra/Ring/AddAut.lean Modified Mathlib/Algebra/Star/SelfAdjoint.lean Modified Mathlib/Algebra/Symmetrized.lean Modified Mathlib/CategoryTheory/Preadditive/Basic.lean Modified Mathlib/Combinatorics/Pigeonhole.lean Modified Mathlib/Combinatorics/SimpleGraph/Regularity/Energy.lean Modified Mathlib/Data/Finset/Pointwise.lean Modified Mathlib/Data/Finsupp/Basic.lean Modified Mathlib/Data/Finsupp/Pointwise.lean Modified Mathlib/Data/Int/AbsoluteValue.lean Modified Mathlib/Data/Set/Pointwise/SMul.lean Modified Mathlib/GroupTheory/FreeAbelianGroup.lean Modified Mathlib/GroupTheory/GroupAction/Hom.lean Modified Mathlib/GroupTheory/GroupAction/SubMulAction.lean Modified Mathlib/GroupTheory/Subgroup/Saturated.lean Modified Mathlib/RepresentationTheory/Action/Concrete.lean Modified Mathlib/RepresentationTheory/Basic.lean Modified Mathlib/RingTheory/Nilpotent/Basic.lean Modified Mathlib/RingTheory/Subsemiring/Basic.lean Modified Mathlib/SetTheory/Cardinal/Basic.lean Modified test/Variable.lean 2024-04-29 13:00:52 cc08434 chore: backport a faster proof in NewtonIdentities (#12499) This proof by `aesop` becomes even slower on `nightly-testing`. It should be by `omega` anyway, so we change that here. ESTIMATED CHANGES Modified Mathlib/RingTheory/MvPolynomial/NewtonIdentities.lean 2024-04-29 12:29:10 888ba02 perf: speed up some algebraic geometry with explicit universes (#12494) ESTIMATED CHANGES Modified Mathlib/AlgebraicGeometry/AffineScheme.lean Modified Mathlib/AlgebraicGeometry/FunctionField.lean Modified Mathlib/AlgebraicGeometry/Properties.lean 2024-04-29 12:02:24 a547a94 feat(CategoryTheory/Category/RelCat): Show basic facts and self-duality of category of relations. (#11241) Add facts about `rel` somewhat like the facts about `types`, classify isos in `rel`, construct the inclusion from `types` to `rel`, show self-duality of `rel`. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Category/RelCat.lean + theorem CategoryTheory.RelCat.Hom.rel_comp_apply₂ + theorem CategoryTheory.RelCat.Hom.rel_id_apply₂ + def CategoryTheory.RelCat.graphFunctor + theorem CategoryTheory.RelCat.graphFunctor_map + theorem CategoryTheory.RelCat.hom_ext + def CategoryTheory.RelCat.opEquivalence + def CategoryTheory.RelCat.opFunctor + theorem CategoryTheory.RelCat.opFunctor_comp_unopFunctor_eq + theorem CategoryTheory.RelCat.rel_iso_iff + def CategoryTheory.RelCat.unopFunctor + theorem CategoryTheory.RelCat.unopFunctor_comp_opFunctor_eq Modified Mathlib/Data/Rel.lean + theorem Function.graph_inj + theorem Function.graph_injective 2024-04-29 09:44:54 d64b17d chore: split Algebra.Algebra.Basic (#12486) Splits `Algebra.Algebra.Defs` off `Algebra.Algebra.Basic`. Most imports only need the Defs file, which has significantly smaller imports. The remaining `Algebra.Algebra.Basic` is now a grab-bag of unrelated results, and should probably be split further or rehomed. This is mostly motivated by the wasted effort during minimization upon encountering Algebra.Algebra.Basic. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Algebra/Basic.lean - theorem Algebra.algebraMap_eq_smul_one' - theorem Algebra.algebraMap_eq_smul_one - theorem Algebra.algebra_ext - def Algebra.cast - theorem Algebra.coe_linearMap - theorem Algebra.commute_algebraMap_left - theorem Algebra.commute_algebraMap_right - theorem Algebra.commutes - theorem Algebra.id.map_eq_id - theorem Algebra.id.map_eq_self - theorem Algebra.id.smul_eq_mul - theorem Algebra.left_comm - theorem Algebra.linearMap_apply - def Algebra.ofModule' - def Algebra.ofModule - theorem Algebra.right_comm - theorem Algebra.smul_def - theorem RingHom.algebraMap_toAlgebra - theorem RingHom.smulOneHom_eq_algebraMap - def RingHom.toAlgebra' - def RingHom.toAlgebra - theorem algebraMap.coe_add - theorem algebraMap.coe_div - theorem algebraMap.coe_inj - theorem algebraMap.coe_inv - theorem algebraMap.coe_mul - theorem algebraMap.coe_neg - theorem algebraMap.coe_one - theorem algebraMap.coe_pow - theorem algebraMap.coe_prod - theorem algebraMap.coe_ratCast - theorem algebraMap.coe_sum - theorem algebraMap.coe_zero - theorem algebraMap.coe_zpow - theorem algebraMap.lift_map_eq_zero_iff - def algebraMap - theorem smul_algebraMap Modified Mathlib/Algebra/Algebra/Bilinear.lean Added Mathlib/Algebra/Algebra/Defs.lean + theorem Algebra.algebraMap_eq_smul_one' + theorem Algebra.algebraMap_eq_smul_one + theorem Algebra.algebra_ext + def Algebra.cast + theorem Algebra.coe_linearMap + theorem Algebra.commute_algebraMap_left + theorem Algebra.commute_algebraMap_right + theorem Algebra.commutes + theorem Algebra.id.map_eq_id + theorem Algebra.id.map_eq_self + theorem Algebra.id.smul_eq_mul + theorem Algebra.left_comm + theorem Algebra.linearMap_apply + def Algebra.ofModule' + def Algebra.ofModule + theorem Algebra.right_comm + theorem Algebra.smul_def + theorem RingHom.algebraMap_toAlgebra + theorem RingHom.smulOneHom_eq_algebraMap + def RingHom.toAlgebra' + def RingHom.toAlgebra + theorem algebraMap.coe_add + theorem algebraMap.coe_div + theorem algebraMap.coe_inj + theorem algebraMap.coe_inv + theorem algebraMap.coe_mul + theorem algebraMap.coe_neg + theorem algebraMap.coe_one + theorem algebraMap.coe_pow + theorem algebraMap.coe_prod + theorem algebraMap.coe_ratCast + theorem algebraMap.coe_sum + theorem algebraMap.coe_zero + theorem algebraMap.coe_zpow + theorem algebraMap.lift_map_eq_zero_iff + def algebraMap + theorem smul_algebraMap Modified Mathlib/Algebra/Algebra/Unitization.lean Modified Mathlib/Algebra/DirectSum/Algebra.lean Modified Mathlib/Algebra/Order/Algebra.lean Modified Mathlib/Algebra/Order/Module/Algebra.lean Modified Mathlib/Algebra/Ring/CentroidHom.lean Modified Mathlib/Algebra/TrivSqZeroExt.lean Modified Mathlib/CategoryTheory/Linear/Basic.lean Modified Mathlib/Data/Real/NNReal.lean Modified Mathlib/Data/ZMod/Algebra.lean Modified Mathlib/FieldTheory/Subfield.lean Modified Mathlib/LinearAlgebra/Matrix/Determinant.lean Modified Mathlib/LinearAlgebra/Multilinear/Basic.lean Modified Mathlib/RingTheory/AdjoinRoot.lean Modified Mathlib/RingTheory/Ideal/LocalRing.lean Modified Mathlib/RingTheory/Polynomial/SeparableDegree.lean Modified Mathlib/SetTheory/Surreal/Dyadic.lean Modified Mathlib/Topology/Algebra/Module/Basic.lean Modified Mathlib/Topology/Algebra/UniformRing.lean Modified scripts/noshake.json Modified test/Simp.lean Modified test/Variable.lean 2024-04-29 09:44:53 ae4dd74 chore: remove redundant LinearEquiv.map_neg/sub (#12330) These are redundant with `_root_.{map_neg,map_sub}`. ESTIMATED CHANGES Modified Mathlib/Algebra/Lie/Matrix.lean Modified Mathlib/Algebra/Lie/OfAssociative.lean Modified Mathlib/Algebra/Module/Zlattice/Basic.lean Modified Mathlib/LinearAlgebra/Basic.lean - theorem LinearEquiv.map_neg - theorem LinearEquiv.map_sub Modified Mathlib/LinearAlgebra/Basis.lean Modified Mathlib/NumberTheory/ClassNumber/Finite.lean 2024-04-29 09:44:52 a9cdcd2 feat: Triangle counting (#8896) Prove the triangle counting lemma. Definitions that are internal to the proof are made private. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Combinatorics/SimpleGraph/Density.lean + theorem Rel.interedges_eq_biUnion Modified Mathlib/Combinatorics/SimpleGraph/Regularity/Lemma.lean Modified Mathlib/Combinatorics/SimpleGraph/Regularity/Uniform.lean + theorem Finpartition.IsEquipartition.card_biUnion_offDiag_le' + theorem Finpartition.IsEquipartition.card_biUnion_offDiag_le + theorem Finpartition.IsEquipartition.card_interedges_sparsePairs_le' + theorem Finpartition.IsEquipartition.card_interedges_sparsePairs_le + theorem Finpartition.IsEquipartition.sum_nonUniforms_lt' + theorem Finpartition.IsEquipartition.sum_nonUniforms_lt - theorem Finpartition.botIsUniform + theorem Finpartition.bot_isUniform - theorem Finpartition.isUniformOne + theorem Finpartition.isUniform_one + theorem Finpartition.mk_mem_nonUniforms - theorem Finpartition.mk_mem_nonUniforms_iff + theorem Finpartition.mk_mem_sparsePairs + def Finpartition.nonUniforms + def Finpartition.sparsePairs + theorem Finpartition.sparsePairs_mono + theorem SimpleGraph.IsUniform.pos +/- theorem SimpleGraph.isUniform_one +/- theorem SimpleGraph.isUniform_singleton + def SimpleGraph.regularityReduced + theorem SimpleGraph.regularityReduced_anti + theorem SimpleGraph.regularityReduced_le + theorem SimpleGraph.regularityReduced_mono + theorem SimpleGraph.unreduced_edges_subset Added Mathlib/Combinatorics/SimpleGraph/Triangle/Counting.lean + theorem SimpleGraph.triangle_counting' + theorem SimpleGraph.triangle_counting Modified Mathlib/Order/Partition/Equipartition.lean - theorem Finpartition.Set.Subsingleton.isEquipartition + theorem Set.Subsingleton.isEquipartition 2024-04-29 09:02:56 919a721 feat(UniformSpace) : TotallyBounded + countably generated -> Separable (#12404) Just a small result, that TotallyBounded sets are Separable sets in Uniform spaces with countably generated uniformities. ESTIMATED CHANGES Modified Mathlib/Topology/Metrizable/Uniformity.lean + theorem TotallyBounded.isSeparable 2024-04-29 08:00:58 e9bc163 doc(RingTheory/Trace): Remove porting note (#12489) `toBilin` was depreciated in #12078. This porting note no longer makes sense. ESTIMATED CHANGES Modified Mathlib/RingTheory/Trace.lean 2024-04-29 08:00:57 0a97fb7 chore: Move monoid with zero instances on pi types (#12286) Move everything that can't be additivised out of `Algebra.Group.Pi.Lemmas`: * `MulZeroClass`, `MulZeroOneClass`, etc... instances go to a new `Algebra.GroupWithZero.Pi` file. I credit Eric W. for https://github.com/leanprover-community/mathlib/pull/4766. * `AddMonoidWithOne`, `AddGroupWithOne` instances go to `Algebra.Ring.Pi`. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Group/Hom/End.lean + theorem AddMonoid.End.natCast_apply + theorem AddMonoid.End.ofNat_apply Modified Mathlib/Algebra/Group/Hom/Instances.lean - theorem AddMonoid.End.natCast_apply - theorem AddMonoid.End.ofNat_apply Modified Mathlib/Algebra/Group/Pi/Lemmas.lean - def MulHom.single - theorem Pi.single_mul - theorem Pi.single_mul_left - theorem Pi.single_mul_left_apply - theorem Pi.single_mul_right - theorem Pi.single_mul_right_apply Added Mathlib/Algebra/GroupWithZero/Pi.lean + def MulHom.single + theorem Pi.single_mul + theorem Pi.single_mul_left + theorem Pi.single_mul_left_apply + theorem Pi.single_mul_right + theorem Pi.single_mul_right_apply Modified Mathlib/Algebra/Ring/Pi.lean 2024-04-29 06:58:06 4e22ca7 feat: add an `OfScientific` instance for `NNRat` and `NNReal` (#12485) The existing `RatCast.toOfScientific` instance has to be removed since it forms a non-defeq diamond (there is nothing enforcing that `nnratCast` and `ratCast` are defeq). The `norm_num` extension also needs some fixes, though the old design didn't make much sense anyway, as it synthesize the instances separately, thus losing important defeqs. ESTIMATED CHANGES Modified Mathlib/Algebra/Field/Defs.lean + theorem Rat.ofScientific_eq_ofScientific Modified Mathlib/Data/Rat/Cast/Lemmas.lean + theorem Nonneg.coe_ofScientific + theorem Rat.cast_nnratCast + theorem Rat.cast_ofScientific Modified Mathlib/Data/Rat/Order.lean + theorem NNRat.cast_ofScientific + theorem Rat.ofScientific_nonneg Modified Mathlib/Data/Real/NNReal.lean Modified Mathlib/FieldTheory/Subfield.lean Modified Mathlib/Tactic/NormNum/OfScientific.lean - def Mathlib.Meta.NormNum.inferOfScientific +/- theorem Mathlib.Meta.NormNum.isNat_ofScientific_of_false +/- theorem Mathlib.Meta.NormNum.isRat_ofScientific_of_true 2024-04-29 06:58:05 3eb8d76 feat(CategoryTheory): morphism properties that have the two-out-of-three property (#12460) The type class `MorphismProperty.HasTwoOutOfThreeProperty` is introduced. The structure `StableUnderComposition` is also changed into a type class `IsStableUnderComposition`. ESTIMATED CHANGES Modified Mathlib/AlgebraicGeometry/Morphisms/FiniteType.lean - theorem AlgebraicGeometry.locallyOfFiniteType_stableUnderComposition Modified Mathlib/AlgebraicGeometry/Morphisms/OpenImmersion.lean - theorem AlgebraicGeometry.isOpenImmersion_stableUnderComposition Modified Mathlib/AlgebraicGeometry/Morphisms/QuasiCompact.lean - theorem AlgebraicGeometry.quasiCompact_stableUnderComposition Modified Mathlib/AlgebraicGeometry/Morphisms/QuasiSeparated.lean - theorem AlgebraicGeometry.quasiSeparated_stableUnderComposition Modified Mathlib/AlgebraicGeometry/Morphisms/RingHomProperties.lean + theorem RingHom.PropertyIsLocal.affineLocally_isStableUnderComposition - theorem RingHom.PropertyIsLocal.affineLocally_stableUnderComposition Modified Mathlib/AlgebraicGeometry/Morphisms/UniversallyClosed.lean + theorem AlgebraicGeometry.topologically_isClosedMap_respectsIso - theorem AlgebraicGeometry.universallyClosed_stableUnderComposition Modified Mathlib/CategoryTheory/Localization/Construction.lean Modified Mathlib/CategoryTheory/MorphismProperty/Basic.lean + theorem CategoryTheory.MorphismProperty.inverseImage_iff Modified Mathlib/CategoryTheory/MorphismProperty/Composition.lean - theorem CategoryTheory.MorphismProperty.StableUnderComposition.epimorphisms - theorem CategoryTheory.MorphismProperty.StableUnderComposition.inverseImage - theorem CategoryTheory.MorphismProperty.StableUnderComposition.isomorphisms - theorem CategoryTheory.MorphismProperty.StableUnderComposition.monomorphisms - theorem CategoryTheory.MorphismProperty.StableUnderComposition.op - theorem CategoryTheory.MorphismProperty.StableUnderComposition.respectsIso - theorem CategoryTheory.MorphismProperty.StableUnderComposition.unop - def CategoryTheory.MorphismProperty.StableUnderComposition +/- theorem CategoryTheory.MorphismProperty.comp_mem - theorem CategoryTheory.MorphismProperty.naturalityProperty.stableUnderComposition + theorem CategoryTheory.MorphismProperty.of_postcomp + theorem CategoryTheory.MorphismProperty.of_precomp + theorem CategoryTheory.MorphismProperty.postcomp_iff + theorem CategoryTheory.MorphismProperty.precomp_iff + theorem CategoryTheory.MorphismProperty.respectsIso_of_isStableUnderComposition Modified Mathlib/CategoryTheory/MorphismProperty/Concrete.lean - theorem CategoryTheory.MorphismProperty.bijective_stableUnderComposition - theorem CategoryTheory.MorphismProperty.injective_stableUnderComposition - theorem CategoryTheory.MorphismProperty.surjective_stableUnderComposition Modified Mathlib/CategoryTheory/MorphismProperty/Limits.lean - theorem CategoryTheory.MorphismProperty.StableUnderComposition.diagonal - theorem CategoryTheory.MorphismProperty.StableUnderComposition.universally + theorem CategoryTheory.MorphismProperty.diagonal_isStableUnderComposition 2024-04-29 06:31:43 c1fee71 feat(RingTheory/Kaehler): The exact sequence `B ⊗[A] Ω[A⁄R] → Ω[B⁄R] → Ω[B⁄A] → 0`. (#11925) ESTIMATED CHANGES Modified Mathlib/RingTheory/Kaehler.lean + theorem KaehlerDifferential.exact_mapBaseChange_map + theorem KaehlerDifferential.kerTotal_map' + theorem KaehlerDifferential.ker_map + theorem KaehlerDifferential.map_surjective + theorem KaehlerDifferential.range_mapBaseChange 2024-04-29 05:53:47 20d431e chore: close a section (#12497) ESTIMATED CHANGES Modified Mathlib/Algebra/Module/LocalizedModule.lean 2024-04-29 01:28:06 32616be feat: make `generalize_proofs` handle proofs under binders (#12472) The `generalize_proofs` tactic had a bug where it would not generalize proofs that appeared under binders correctly, creating terms with fvars from the wrong context. The tactic has been refactored, and it now abstracts the proofs (universally quantifying all the bound variables that appear in the proof) before lifting them to the local context. This feature can be controlled with the `abstract` option. Using `generalize_proofs (config := { abstract := false })` turns off proof abstraction and leaves alone those proofs that refer to bound variables. Other new features: - `generalize_proofs at h` for a let-bound local hypothesis `h` will clear its value. - `generalize_proofs at h` for a duplicate proposition will eliminate `h` from the local context. - Proofs are recursively generalized for each new local hypothesis. This can be turned off with `generalize_proofs (config := { maxDepth := 0 })`. - `generalize_proofs at h` will no longer generalize proofs from the goal. - The type of the generalized proof is carefully computed by propagating expected types, rather than by using `inferType`. This gives local hypotheses in more useful forms. (This PR serves as a followup to [this comment](https://github.com/leanprover-community/mathlib4/pull/447#issuecomment-1306171602).) ESTIMATED CHANGES Modified Mathlib/Algebra/Category/GroupCat/Limits.lean Modified Mathlib/AlgebraicGeometry/Morphisms/RingHomProperties.lean Modified Mathlib/Combinatorics/SimpleGraph/Partition.lean Modified Mathlib/Data/PFun.lean Modified Mathlib/NumberTheory/Cyclotomic/Gal.lean Modified Mathlib/Tactic/GeneralizeProofs.lean + structure Mathlib.Tactic.GeneralizeProofs.AContext + structure Mathlib.Tactic.GeneralizeProofs.AState + structure Mathlib.Tactic.GeneralizeProofs.Config + structure Mathlib.Tactic.GeneralizeProofs.GState + def Mathlib.Tactic.GeneralizeProofs.MAbs.findProof? + def Mathlib.Tactic.GeneralizeProofs.MAbs.insertProof + def Mathlib.Tactic.GeneralizeProofs.MAbs.withLocal + def Mathlib.Tactic.GeneralizeProofs.MAbs.withRecurse + def Mathlib.Tactic.GeneralizeProofs.MGen.insertFVar + def Mathlib.Tactic.GeneralizeProofs.MGen.runMAbs - structure Mathlib.Tactic.GeneralizeProofs.State + def Mathlib.Tactic.GeneralizeProofs.appArgExpectedTypes + def Mathlib.Tactic.GeneralizeProofs.initialPropToFVar + def Mathlib.Tactic.GeneralizeProofs.mkLambdaFVarsUsedOnly Modified test/GeneralizeProofs.lean + theorem zulip1.good + def zulip1.p + theorem zulip1.t + theorem zulip1.was_bad 2024-04-28 22:28:28 0e05cbe feat: 'lake exe pole' computes the longest pole (#8361) See [zulip](https://leanprover.zulipchat.com/#narrow/stream/270676-lean4/topic/Lake.20parallel.20builds/near/401556745) discussion. ESTIMATED CHANGES Added LongestPole/Main.lean + def Float.toStringDecimals + def SpeedCenterAPI.RunResponse.instructions + def SpeedCenterAPI.getRunResponse + def SpeedCenterAPI.instructions + def SpeedCenterAPI.runJson + def headSha + def longestPoleCLI + def main + def mathlib4RepoId + def pole + def runCmd + def runCurl + def slowestParents + def totalInstructions Added LongestPole/SpeedCenterJson.lean + structure SpeedCenterAPI.CommitSource + structure SpeedCenterAPI.Dimension + structure SpeedCenterAPI.ErrorMessage + structure SpeedCenterAPI.Measurement + structure SpeedCenterAPI.Result + structure SpeedCenterAPI.Run + structure SpeedCenterAPI.RunResponse + structure SpeedCenterAPI.Source Modified Mathlib/Data/String/Defs.lean +/- def String.leftpad + def String.rightpad Modified lakefile.lean 2024-04-28 21:50:40 e9a5e8d feat(Data/Complex/Basic): Adds imaginary number representation (#12427) Adds a representation for Complex numbers and DualNumber so they can be used in #eval statements. ESTIMATED CHANGES Modified Mathlib/Algebra/DualNumber.lean Modified Mathlib/Data/Complex/Basic.lean Added test/Complex.lean Added test/DualNumber.lean 2024-04-28 18:21:32 0033bf0 feat(CategoryTheory.Limits.IsConnected): colimit of singletons is singleton iff index category is connected (#10731) Create the module `Mathlib.CategoryTheory.Limits.IsConnected`. The main theorem states that the colimit of singletons is a singleton if and only if the index category is connected. This theorem will be necessary for the Freyd-Mitchell embedding theorem. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Limits/IsConnected.lean + def CategoryTheory.Limits.Types.constPUnitFunctor + theorem CategoryTheory.Limits.Types.isConnected_iff_colimit_constPUnitFunctor_iso_pUnit + theorem CategoryTheory.Limits.Types.isConnected_iff_isColimit_pUnitCocone + def CategoryTheory.Limits.Types.pUnitCocone + theorem CategoryTheory.Limits.Types.zigzag_of_eqvGen_quot_rel Modified Mathlib/CategoryTheory/Limits/Types.lean + theorem CategoryTheory.Limits.Types.nonempty_of_nonempty_colimit 2024-04-28 14:16:57 7a11b9f feat(PNat/Basic): add three lemmas (#12479) Three small lemmata in support of further PNat proofs ESTIMATED CHANGES Modified Mathlib/Data/PNat/Basic.lean + theorem PNat.add_one + theorem PNat.lt_succ_self + theorem PNat.one_lt_of_lt 2024-04-28 13:18:21 cf57f9b style(PNat/Basic): move induction lemmas to upper area of file (#12484) Move induction lemmas because needed by future insertions ESTIMATED CHANGES Modified Mathlib/Data/PNat/Basic.lean 2024-04-28 11:45:04 b119a28 doc(EuclideanGeometry): document a few declarations (#12481) ESTIMATED CHANGES Modified Mathlib/Geometry/Euclidean/Angle/Oriented/Affine.lean Modified Mathlib/Geometry/Euclidean/Sphere/Basic.lean Modified scripts/nolints.json 2024-04-28 11:19:48 6090a1f feat (LinearAlgebra/PerfectPairing) : Modules in a perfect pairing are reflexive (#12300) This PR defines the linear equivalences with dual modules given by a perfect pairing, and shows that the modules are reflexive. ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/PerfectPairing.lean + theorem PerfectPairing.apply_apply_toDualRight_symm + theorem PerfectPairing.apply_toDualLeft_symm_apply + theorem PerfectPairing.bijective_toDualRight_symm_toDualLeft + theorem PerfectPairing.reflexive_left + theorem PerfectPairing.reflexive_right + theorem PerfectPairing.toDualLeft_apply + theorem PerfectPairing.toDualLeft_of_toDualRight_symm + theorem PerfectPairing.toDualRight_apply + theorem PerfectPairing.toDualRight_symm_comp_toDualLeft + theorem PerfectPairing.toDualRight_symm_toDualLeft 2024-04-28 10:13:37 b6a949a doc: three positivity extensions (#12483) ESTIMATED CHANGES Modified Mathlib/Analysis/SpecialFunctions/Bernstein.lean Modified Mathlib/Tactic/Positivity/Basic.lean Modified scripts/nolints.json 2024-04-28 08:57:49 c01d7cb chore(GammaSpecAdjunction): remove resolved porting note (#12477) Removes a porting note resolved by #12469; clarifies a porting note touched by it. ESTIMATED CHANGES Modified Mathlib/AlgebraicGeometry/GammaSpecAdjunction.lean 2024-04-28 07:15:48 51a6e52 chore: reduce proof dependencies for Nat.factors_count_eq (#12105) This is a bit longer, partially duplicating the argument from UniqueFactorizationMonoid.multiplicity_eq_count_normalizedFactors, but it means we no longer need to depend on `RingTheory.Int.Basic` at this point. The other added lemmas seem useful regardless. ESTIMATED CHANGES Modified Mathlib/Algebra/BigOperators/List/Lemmas.lean + theorem List.Sublist.prod_dvd_prod Modified Mathlib/Algebra/Category/GroupCat/Injective.lean Modified Mathlib/Data/List/Lex.lean + theorem List.nil_le Modified Mathlib/Data/List/Perm.lean + theorem List.subperm_nil Modified Mathlib/Data/Nat/Factorization/Basic.lean Modified Mathlib/Data/Nat/Factors.lean + theorem Nat.replicate_subperm_factors_iff Modified Mathlib/NumberTheory/Padics/PadicVal.lean + theorem le_multiplicity_iff_replicate_subperm_factors + theorem le_padicValNat_iff_replicate_subperm_factors 2024-04-27 23:30:15 0b522a1 fix(AlgebraicGeometry/GammaSpecAdjunction): speedup by adding universes (#12469) Add some explicit universe annotations because they cause a speedup (currently an unexplained phenomenon, unfortunately). ESTIMATED CHANGES Modified Mathlib/AlgebraicGeometry/GammaSpecAdjunction.lean +/- theorem AlgebraicGeometry.LocallyRingedSpace.comp_ring_hom_ext +/- theorem AlgebraicGeometry.SpecΓIdentity_hom_app_presheaf_obj +/- theorem AlgebraicGeometry.SpecΓIdentity_naturality +/- theorem AlgebraicGeometry.ΓSpec.adjunction_unit_app_app_top 2024-04-27 22:55:21 391502c chore: make some proofs more robust (#12466) Notably, these cause issues on nightly-2024-04-25 ESTIMATED CHANGES Modified Mathlib/Analysis/NormedSpace/lpSpace.lean Modified Mathlib/MeasureTheory/Function/L1Space.lean Modified Mathlib/MeasureTheory/Function/LpSeminorm/Basic.lean Modified Mathlib/RingTheory/Valuation/ValuationRing.lean Modified Mathlib/Topology/Semicontinuous.lean 2024-04-27 19:40:44 44a14fb chore(Data/Set/List): nthLe -> get migration (#12398) ESTIMATED CHANGES Modified Mathlib/Data/Set/List.lean + theorem Set.range_list_get - theorem Set.range_list_nthLe 2024-04-27 09:58:50 8d0c6e6 feat: add instances for SFinite (#12440) ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Measure/Typeclasses.lean +/- theorem MeasureTheory.sfinite_sum_of_countable 2024-04-27 09:23:53 ce289a0 chore(CategoryTheory): make `Functor.Full` a Prop (#12449) Before this PR, `Functor.Full` contained the data of the preimage of maps by a full functor `F`. This PR makes `Functor.Full` a proposition. This is to prevent any diamond to appear. The lemma `Functor.image_preimage` is also renamed `Functor.map_preimage`. ESTIMATED CHANGES Modified Mathlib/Algebra/Category/FGModuleCat/Basic.lean Modified Mathlib/Algebra/Category/GroupCat/ZModuleEquivalence.lean Modified Mathlib/Algebra/Category/ModuleCat/Sheaf.lean Modified Mathlib/Algebra/Category/MonCat/Basic.lean Modified Mathlib/Algebra/Category/Ring/Basic.lean Modified Mathlib/Algebra/Category/SemigroupCat/Basic.lean Modified Mathlib/Algebra/Homology/HomotopyCategory.lean Modified Mathlib/Algebra/Homology/HomotopyCategory/ShiftSequence.lean Modified Mathlib/Algebra/Homology/Single.lean Modified Mathlib/AlgebraicGeometry/GammaSpecAdjunction.lean Modified Mathlib/AlgebraicGeometry/Scheme.lean Modified Mathlib/AlgebraicTopology/SimplexCategory.lean Modified Mathlib/CategoryTheory/Adjunction/FullyFaithful.lean + theorem CategoryTheory.L_full_of_unit_isIso + theorem CategoryTheory.R_full_of_counit_isIso Modified Mathlib/CategoryTheory/Adjunction/Limits.lean Modified Mathlib/CategoryTheory/Adjunction/Opposites.lean +/- def CategoryTheory.Adjunction.leftAdjointUniq +/- def CategoryTheory.Adjunction.natIsoOfLeftAdjointNatIso +/- def CategoryTheory.Adjunction.natIsoOfRightAdjointNatIso +/- def CategoryTheory.Adjunction.rightAdjointUniq Modified Mathlib/CategoryTheory/Adjunction/Restrict.lean - def CategoryTheory.Adjunction.restrictFullyFaithful Modified Mathlib/CategoryTheory/Category/Cat.lean Modified Mathlib/CategoryTheory/Category/Grpd.lean Modified Mathlib/CategoryTheory/Category/Preorder.lean Modified Mathlib/CategoryTheory/Closed/Ideal.lean Modified Mathlib/CategoryTheory/Comma/Basic.lean Modified Mathlib/CategoryTheory/Comma/Over.lean - def CategoryTheory.Over.mkIdTerminal - def CategoryTheory.Under.mkIdInitial Modified Mathlib/CategoryTheory/Comma/StructuredArrow.lean - def CategoryTheory.CostructuredArrow.mkIdTerminal - def CategoryTheory.StructuredArrow.mkIdInitial Modified Mathlib/CategoryTheory/ConcreteCategory/BundledHom.lean Modified Mathlib/CategoryTheory/ConnectedComponents.lean Modified Mathlib/CategoryTheory/Endomorphism.lean - def CategoryTheory.Functor.autMulEquivOfFullyFaithful - def CategoryTheory.Functor.mulEquivOfFullyFaithful Modified Mathlib/CategoryTheory/EpiMono.lean Modified Mathlib/CategoryTheory/Equivalence.lean Modified Mathlib/CategoryTheory/EssentialImage.lean Modified Mathlib/CategoryTheory/FintypeCat.lean Modified Mathlib/CategoryTheory/FullSubcategory.lean Modified Mathlib/CategoryTheory/Functor/EpiMono.lean - def CategoryTheory.Functor.splitEpiEquiv - def CategoryTheory.Functor.splitMonoEquiv Modified Mathlib/CategoryTheory/Functor/FullyFaithful.lean - def CategoryTheory.Functor.Full.ofCompFaithful - def CategoryTheory.Functor.Full.ofCompFaithfulIso - def CategoryTheory.Functor.Full.ofIso + theorem CategoryTheory.Functor.Full.of_comp_faithful + theorem CategoryTheory.Functor.Full.of_comp_faithful_iso + theorem CategoryTheory.Functor.Full.of_iso - def CategoryTheory.Functor.fullyFaithfulCancelRight - theorem CategoryTheory.Functor.image_preimage + theorem CategoryTheory.Functor.map_preimage - def CategoryTheory.Functor.preimage - def CategoryTheory.Functor.preimageIso - def CategoryTheory.NatIso.equivOfCompFullyFaithful - def CategoryTheory.NatTrans.equivOfCompFullyFaithful - def CategoryTheory.equivOfFullyFaithful - def CategoryTheory.isoEquivOfFullyFaithful - def CategoryTheory.natIsoOfCompFullyFaithful - def CategoryTheory.natTransOfCompFullyFaithful Modified Mathlib/CategoryTheory/Idempotents/FunctorCategories.lean Modified Mathlib/CategoryTheory/Idempotents/FunctorExtension.lean Modified Mathlib/CategoryTheory/Idempotents/Karoubi.lean Modified Mathlib/CategoryTheory/IsConnected.lean Modified Mathlib/CategoryTheory/Limits/Cones.lean Modified Mathlib/CategoryTheory/Limits/Creates.lean Modified Mathlib/CategoryTheory/Limits/Preserves/Basic.lean Modified Mathlib/CategoryTheory/Limits/Preserves/Shapes/Zero.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Biproducts.lean Modified Mathlib/CategoryTheory/Limits/Shapes/NormalMono/Basic.lean Modified Mathlib/CategoryTheory/Limits/Yoneda.lean Modified Mathlib/CategoryTheory/Linear/Yoneda.lean Modified Mathlib/CategoryTheory/Localization/Construction.lean Modified Mathlib/CategoryTheory/Localization/Predicate.lean + theorem CategoryTheory.Localization.faithful_whiskeringLeft + theorem CategoryTheory.Localization.full_whiskeringLeft Modified Mathlib/CategoryTheory/Monad/Adjunction.lean Modified Mathlib/CategoryTheory/Monoidal/Subcategory.lean Modified Mathlib/CategoryTheory/Opposites.lean Modified Mathlib/CategoryTheory/Preadditive/Mat.lean Modified Mathlib/CategoryTheory/Preadditive/Yoneda/Basic.lean Modified Mathlib/CategoryTheory/Quotient.lean Modified Mathlib/CategoryTheory/Shift/Induced.lean Modified Mathlib/CategoryTheory/Shift/InducedShiftSequence.lean Modified Mathlib/CategoryTheory/Shift/Localization.lean Modified Mathlib/CategoryTheory/Shift/Quotient.lean Modified Mathlib/CategoryTheory/Sigma/Basic.lean Modified Mathlib/CategoryTheory/SingleObj.lean Modified Mathlib/CategoryTheory/Sites/Coherent/ReflectsPrecoherent.lean Modified Mathlib/CategoryTheory/Sites/Coherent/ReflectsPreregular.lean Modified Mathlib/CategoryTheory/Sites/Coherent/SheafComparison.lean Modified Mathlib/CategoryTheory/Sites/CoverLifting.lean Modified Mathlib/CategoryTheory/Sites/DenseSubsite.lean Modified Mathlib/CategoryTheory/Sites/Sheaf.lean + def CategoryTheory.Sheaf.homEquiv Modified Mathlib/CategoryTheory/Sites/SheafHom.lean Modified Mathlib/CategoryTheory/Sites/SheafOfTypes.lean Modified Mathlib/CategoryTheory/Sites/Sieves.lean Modified Mathlib/CategoryTheory/Subobject/MonoOver.lean Modified Mathlib/CategoryTheory/Triangulated/Functor.lean Modified Mathlib/CategoryTheory/Triangulated/Pretriangulated.lean Modified Mathlib/CategoryTheory/Types.lean Modified Mathlib/CategoryTheory/WithTerminal.lean Modified Mathlib/CategoryTheory/Yoneda.lean + theorem CategoryTheory.Coyoneda.map_preimage + def CategoryTheory.Coyoneda.preimage + def CategoryTheory.Coyoneda.preimageIso + def CategoryTheory.Coyoneda.preimageNatIso + def CategoryTheory.Coyoneda.preimageNatTrans +/- def CategoryTheory.Yoneda.ext + theorem CategoryTheory.Yoneda.map_preimage + def CategoryTheory.Yoneda.preimage + def CategoryTheory.Yoneda.preimageIso Modified Mathlib/Geometry/RingedSpace/LocallyRingedSpace.lean +/- def AlgebraicGeometry.LocallyRingedSpace.restrictTopIso Modified Mathlib/Geometry/RingedSpace/SheafedSpace.lean + def AlgebraicGeometry.SheafedSpace.isoMk Modified Mathlib/Order/Category/FinBoolAlg.lean Modified Mathlib/Order/Category/Preord.lean Modified Mathlib/RepresentationTheory/Action/Limits.lean - def Action.preservesColimitOfPreserves - def Action.preservesColimitsOfShapeOfPreserves - def Action.preservesColimitsOfSizeOfPreserves - def Action.preservesLimitOfPreserves - def Action.preservesLimitsOfShapeOfPreserves - def Action.preservesLimitsOfSizeOfPreserves Modified Mathlib/Topology/Category/Compactum.lean - theorem compactumToCompHaus.essSurj - theorem compactumToCompHaus.faithful - def compactumToCompHaus.full Modified Mathlib/Topology/Category/LightProfinite/Basic.lean Modified Mathlib/Topology/Category/Profinite/Basic.lean Modified Mathlib/Topology/Category/Stonean/Basic.lean Modified Mathlib/Topology/Category/TopCat/Opens.lean Modified Mathlib/Topology/Category/UniformSpace.lean Modified Mathlib/Topology/Order/Category/AlexDisc.lean Modified Mathlib/Topology/Sheaves/Sheaf.lean 2024-04-27 06:15:29 33a5bed Chore: Weaken hypotheses for proof that Noetherian is an extension property (#12453) The middle term of a three term exact sequence with outer terms Noetherian is Noetherian. ESTIMATED CHANGES Modified Mathlib/Algebra/Lie/Quotient.lean Modified Mathlib/RingTheory/Ideal/Cotangent.lean Modified Mathlib/RingTheory/Noetherian.lean +/- theorem isNoetherian_of_range_eq_ker Modified Mathlib/RingTheory/QuotientNoetherian.lean 2024-04-27 06:15:28 ea60855 feat: Axiomatise `b ≠ 0 → a * b / b = a` (#12424) This lets us unify a few lemmas between `GroupWithZero` and `EuclideanDomain` and two lemmas that were previously proved separately for `Nat`, `Int`, `Polynomial`. ESTIMATED CHANGES Modified Archive/Wiedijk100Theorems/SolutionOfCubic.lean Modified Mathlib.lean Modified Mathlib/Algebra/EuclideanDomain/Basic.lean - theorem EuclideanDomain.mul_div_cancel - theorem EuclideanDomain.mul_div_cancel_left Modified Mathlib/Algebra/Field/IsField.lean +/- theorem Semifield.toIsField Deleted Mathlib/Algebra/GCDMonoid/Div.lean - theorem Finset.Int.gcd_div_eq_one - theorem Finset.Int.gcd_div_id_eq_one - theorem Finset.Nat.gcd_div_eq_one - theorem Finset.Nat.gcd_div_id_eq_one - theorem Finset.Polynomial.gcd_div_eq_one - theorem Finset.Polynomial.gcd_div_id_eq_one Modified Mathlib/Algebra/GCDMonoid/Finset.lean + theorem Finset.gcd_div_eq_one + theorem Finset.gcd_div_id_eq_one Modified Mathlib/Algebra/GroupWithZero/Basic.lean Modified Mathlib/Algebra/GroupWithZero/Defs.lean + theorem mul_div_cancel_left₀ + theorem mul_div_cancel_right₀ +/- theorem mul_inv_cancel Modified Mathlib/Algebra/GroupWithZero/Units/Basic.lean - theorem mul_div_cancel_left₀ - theorem mul_div_cancel_right₀ Modified Mathlib/Algebra/Ring/Int.lean Modified Mathlib/Algebra/Ring/Nat.lean Modified Mathlib/Analysis/Calculus/FDeriv/Measurable.lean Modified Mathlib/Analysis/Convex/Jensen.lean Modified Mathlib/Analysis/SpecialFunctions/Complex/LogBounds.lean Modified Mathlib/Analysis/SpecialFunctions/Gamma/Basic.lean Modified Mathlib/Analysis/SpecialFunctions/Gamma/BohrMollerup.lean Modified Mathlib/Analysis/SpecialFunctions/Integrals.lean Modified Mathlib/Data/Int/Cast/Field.lean Modified Mathlib/Dynamics/Circle/RotationNumber/TranslationNumber.lean Modified Mathlib/Geometry/Euclidean/Angle/Oriented/Basic.lean Modified Mathlib/Geometry/Euclidean/Circumcenter.lean Modified Mathlib/LinearAlgebra/Lagrange.lean Modified Mathlib/MeasureTheory/Covering/Vitali.lean Modified Mathlib/MeasureTheory/Function/LpSeminorm/CompareExp.lean Modified Mathlib/MeasureTheory/Integral/IntervalIntegral.lean Modified Mathlib/NumberTheory/ModularForms/JacobiTheta/OneVariable.lean Modified Mathlib/NumberTheory/ZetaValues.lean Modified Mathlib/RingTheory/EuclideanDomain.lean Modified Mathlib/RingTheory/Valuation/ValuationRing.lean Modified Mathlib/RingTheory/Valuation/ValuationSubring.lean Modified Mathlib/Topology/Homotopy/HSpaces.lean 2024-04-27 05:44:29 9e489ab chore: split CategoryTheory.MorphismProperty (#12393) The file `CategoryTheory.MorphismProperty` is split into five files `Basic`, `Composition`, `Limits`, `Concrete`, `IsInvertedBy`. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Homology/HomotopyCategory.lean Modified Mathlib/Algebra/Homology/HomotopyCofiber.lean Modified Mathlib/Algebra/Homology/Localization.lean Modified Mathlib/Algebra/Homology/ShortComplex/Exact.lean Modified Mathlib/AlgebraicGeometry/Morphisms/Basic.lean Modified Mathlib/CategoryTheory/Adjunction/FullyFaithful.lean Modified Mathlib/CategoryTheory/Adjunction/Reflective.lean Modified Mathlib/CategoryTheory/Localization/Construction.lean Modified Mathlib/CategoryTheory/Localization/FiniteProducts.lean Modified Mathlib/CategoryTheory/Localization/Pi.lean Modified Mathlib/CategoryTheory/Localization/Prod.lean Deleted Mathlib/CategoryTheory/MorphismProperty.lean - theorem CategoryTheory.MorphismProperty.ContainsIdentities.of_op - theorem CategoryTheory.MorphismProperty.ContainsIdentities.of_unop - theorem CategoryTheory.MorphismProperty.FunctorsInverting.ext - theorem CategoryTheory.MorphismProperty.FunctorsInverting.hom_ext - def CategoryTheory.MorphismProperty.FunctorsInverting.mk - def CategoryTheory.MorphismProperty.FunctorsInverting - theorem CategoryTheory.MorphismProperty.IsInvertedBy.iff_comp - theorem CategoryTheory.MorphismProperty.IsInvertedBy.iff_map_subset_isomorphisms - theorem CategoryTheory.MorphismProperty.IsInvertedBy.iff_of_iso - theorem CategoryTheory.MorphismProperty.IsInvertedBy.isoClosure_iff - theorem CategoryTheory.MorphismProperty.IsInvertedBy.leftOp - theorem CategoryTheory.MorphismProperty.IsInvertedBy.map_iff - theorem CategoryTheory.MorphismProperty.IsInvertedBy.of_comp - theorem CategoryTheory.MorphismProperty.IsInvertedBy.of_subset - theorem CategoryTheory.MorphismProperty.IsInvertedBy.op - theorem CategoryTheory.MorphismProperty.IsInvertedBy.pi - theorem CategoryTheory.MorphismProperty.IsInvertedBy.prod - theorem CategoryTheory.MorphismProperty.IsInvertedBy.rightOp - theorem CategoryTheory.MorphismProperty.IsInvertedBy.unop - def CategoryTheory.MorphismProperty.IsInvertedBy - theorem CategoryTheory.MorphismProperty.IsMultiplicative.of_op - theorem CategoryTheory.MorphismProperty.IsMultiplicative.of_unop - theorem CategoryTheory.MorphismProperty.IsStableUnderLimitsOfShape.lim_map - def CategoryTheory.MorphismProperty.IsStableUnderLimitsOfShape - theorem CategoryTheory.MorphismProperty.IsStableUnderProductsOfShape.mk - theorem CategoryTheory.MorphismProperty.RespectsIso.arrow_iso_iff - theorem CategoryTheory.MorphismProperty.RespectsIso.arrow_mk_iso_iff - theorem CategoryTheory.MorphismProperty.RespectsIso.cancel_left_isIso - theorem CategoryTheory.MorphismProperty.RespectsIso.cancel_right_isIso - theorem CategoryTheory.MorphismProperty.RespectsIso.diagonal - theorem CategoryTheory.MorphismProperty.RespectsIso.epimorphisms - theorem CategoryTheory.MorphismProperty.RespectsIso.inverseImage - theorem CategoryTheory.MorphismProperty.RespectsIso.isoClosure_eq - theorem CategoryTheory.MorphismProperty.RespectsIso.isomorphisms - theorem CategoryTheory.MorphismProperty.RespectsIso.monomorphisms - theorem CategoryTheory.MorphismProperty.RespectsIso.of_respects_arrow_iso - theorem CategoryTheory.MorphismProperty.RespectsIso.op - theorem CategoryTheory.MorphismProperty.RespectsIso.unop - def CategoryTheory.MorphismProperty.RespectsIso - theorem CategoryTheory.MorphismProperty.StableUnderBaseChange.baseChange_map - theorem CategoryTheory.MorphismProperty.StableUnderBaseChange.baseChange_obj - theorem CategoryTheory.MorphismProperty.StableUnderBaseChange.diagonal - theorem CategoryTheory.MorphismProperty.StableUnderBaseChange.fst - theorem CategoryTheory.MorphismProperty.StableUnderBaseChange.mk - theorem CategoryTheory.MorphismProperty.StableUnderBaseChange.op - theorem CategoryTheory.MorphismProperty.StableUnderBaseChange.pullback_map - theorem CategoryTheory.MorphismProperty.StableUnderBaseChange.respectsIso - theorem CategoryTheory.MorphismProperty.StableUnderBaseChange.snd - theorem CategoryTheory.MorphismProperty.StableUnderBaseChange.universally_eq - theorem CategoryTheory.MorphismProperty.StableUnderBaseChange.unop - def CategoryTheory.MorphismProperty.StableUnderBaseChange - theorem CategoryTheory.MorphismProperty.StableUnderCobaseChange.inl - theorem CategoryTheory.MorphismProperty.StableUnderCobaseChange.inr - theorem CategoryTheory.MorphismProperty.StableUnderCobaseChange.mk - theorem CategoryTheory.MorphismProperty.StableUnderCobaseChange.op - theorem CategoryTheory.MorphismProperty.StableUnderCobaseChange.respectsIso - theorem CategoryTheory.MorphismProperty.StableUnderCobaseChange.unop - def CategoryTheory.MorphismProperty.StableUnderCobaseChange - theorem CategoryTheory.MorphismProperty.StableUnderComposition.diagonal - theorem CategoryTheory.MorphismProperty.StableUnderComposition.epimorphisms - theorem CategoryTheory.MorphismProperty.StableUnderComposition.inverseImage - theorem CategoryTheory.MorphismProperty.StableUnderComposition.isomorphisms - theorem CategoryTheory.MorphismProperty.StableUnderComposition.monomorphisms - theorem CategoryTheory.MorphismProperty.StableUnderComposition.op - theorem CategoryTheory.MorphismProperty.StableUnderComposition.respectsIso - theorem CategoryTheory.MorphismProperty.StableUnderComposition.universally - theorem CategoryTheory.MorphismProperty.StableUnderComposition.unop - def CategoryTheory.MorphismProperty.StableUnderComposition - theorem CategoryTheory.MorphismProperty.StableUnderInverse.op - theorem CategoryTheory.MorphismProperty.StableUnderInverse.unop - def CategoryTheory.MorphismProperty.StableUnderInverse - theorem CategoryTheory.MorphismProperty.bijective_eq_sup - theorem CategoryTheory.MorphismProperty.bijective_respectsIso - theorem CategoryTheory.MorphismProperty.bijective_stableUnderComposition - theorem CategoryTheory.MorphismProperty.comp_mem - def CategoryTheory.MorphismProperty.diagonal - theorem CategoryTheory.MorphismProperty.diagonal_iff - theorem CategoryTheory.MorphismProperty.epimorphisms.iff - theorem CategoryTheory.MorphismProperty.epimorphisms.infer_property - def CategoryTheory.MorphismProperty.epimorphisms - theorem CategoryTheory.MorphismProperty.ext - def CategoryTheory.MorphismProperty.functorCategory - theorem CategoryTheory.MorphismProperty.id_mem - theorem CategoryTheory.MorphismProperty.injective_respectsIso - theorem CategoryTheory.MorphismProperty.injective_stableUnderComposition - def CategoryTheory.MorphismProperty.inverseImage - theorem CategoryTheory.MorphismProperty.inverseImage_equivalence_functor_eq_map_inverse - theorem CategoryTheory.MorphismProperty.inverseImage_equivalence_inverse_eq_map_functor - theorem CategoryTheory.MorphismProperty.inverseImage_map_eq_of_isEquivalence - theorem CategoryTheory.MorphismProperty.isStableUnderProductsOfShape_of_isStableUnderFiniteProducts - def CategoryTheory.MorphismProperty.isoClosure - theorem CategoryTheory.MorphismProperty.isoClosure_isoClosure - theorem CategoryTheory.MorphismProperty.isoClosure_respectsIso - theorem CategoryTheory.MorphismProperty.isoClosure_subset_iff - theorem CategoryTheory.MorphismProperty.isomorphisms.iff - theorem CategoryTheory.MorphismProperty.isomorphisms.infer_property - def CategoryTheory.MorphismProperty.isomorphisms - def CategoryTheory.MorphismProperty.map - theorem CategoryTheory.MorphismProperty.map_eq_of_iso - theorem CategoryTheory.MorphismProperty.map_id - theorem CategoryTheory.MorphismProperty.map_id_eq_isoClosure - theorem CategoryTheory.MorphismProperty.map_inverseImage_eq_of_isEquivalence - theorem CategoryTheory.MorphismProperty.map_inverseImage_subset - theorem CategoryTheory.MorphismProperty.map_isoClosure - theorem CategoryTheory.MorphismProperty.map_map - theorem CategoryTheory.MorphismProperty.map_mem_map - theorem CategoryTheory.MorphismProperty.map_respectsIso - theorem CategoryTheory.MorphismProperty.map_subset_iff - theorem CategoryTheory.MorphismProperty.monomorphisms.iff - theorem CategoryTheory.MorphismProperty.monomorphisms.infer_property - def CategoryTheory.MorphismProperty.monomorphisms - theorem CategoryTheory.MorphismProperty.monotone_isoClosure - theorem CategoryTheory.MorphismProperty.monotone_map - theorem CategoryTheory.MorphismProperty.naturalityProperty.stableUnderComposition - theorem CategoryTheory.MorphismProperty.naturalityProperty.stableUnderInverse - def CategoryTheory.MorphismProperty.naturalityProperty - def CategoryTheory.MorphismProperty.op - theorem CategoryTheory.MorphismProperty.op_unop - def CategoryTheory.MorphismProperty.pi - def CategoryTheory.MorphismProperty.prod - theorem CategoryTheory.MorphismProperty.subset_iff_le - theorem CategoryTheory.MorphismProperty.subset_isoClosure - theorem CategoryTheory.MorphismProperty.surjective_respectsIso - theorem CategoryTheory.MorphismProperty.surjective_stableUnderComposition - theorem CategoryTheory.MorphismProperty.top_apply - theorem CategoryTheory.MorphismProperty.top_eq - def CategoryTheory.MorphismProperty.universally - theorem CategoryTheory.MorphismProperty.universally_le - theorem CategoryTheory.MorphismProperty.universally_mono - theorem CategoryTheory.MorphismProperty.universally_respectsIso - theorem CategoryTheory.MorphismProperty.universally_stableUnderBaseChange - def CategoryTheory.MorphismProperty.unop - theorem CategoryTheory.MorphismProperty.unop_op - def CategoryTheory.MorphismProperty - theorem CategoryTheory.NatTrans.isIso_app_iff_of_iso Added Mathlib/CategoryTheory/MorphismProperty/Basic.lean + theorem CategoryTheory.MorphismProperty.RespectsIso.arrow_iso_iff + theorem CategoryTheory.MorphismProperty.RespectsIso.arrow_mk_iso_iff + theorem CategoryTheory.MorphismProperty.RespectsIso.cancel_left_isIso + theorem CategoryTheory.MorphismProperty.RespectsIso.cancel_right_isIso + theorem CategoryTheory.MorphismProperty.RespectsIso.epimorphisms + theorem CategoryTheory.MorphismProperty.RespectsIso.inverseImage + theorem CategoryTheory.MorphismProperty.RespectsIso.isoClosure_eq + theorem CategoryTheory.MorphismProperty.RespectsIso.isomorphisms + theorem CategoryTheory.MorphismProperty.RespectsIso.monomorphisms + theorem CategoryTheory.MorphismProperty.RespectsIso.of_respects_arrow_iso + theorem CategoryTheory.MorphismProperty.RespectsIso.op + theorem CategoryTheory.MorphismProperty.RespectsIso.unop + def CategoryTheory.MorphismProperty.RespectsIso + theorem CategoryTheory.MorphismProperty.epimorphisms.iff + theorem CategoryTheory.MorphismProperty.epimorphisms.infer_property + def CategoryTheory.MorphismProperty.epimorphisms + theorem CategoryTheory.MorphismProperty.ext + def CategoryTheory.MorphismProperty.functorCategory + def CategoryTheory.MorphismProperty.inverseImage + theorem CategoryTheory.MorphismProperty.inverseImage_equivalence_functor_eq_map_inverse + theorem CategoryTheory.MorphismProperty.inverseImage_equivalence_inverse_eq_map_functor + theorem CategoryTheory.MorphismProperty.inverseImage_map_eq_of_isEquivalence + def CategoryTheory.MorphismProperty.isoClosure + theorem CategoryTheory.MorphismProperty.isoClosure_isoClosure + theorem CategoryTheory.MorphismProperty.isoClosure_respectsIso + theorem CategoryTheory.MorphismProperty.isoClosure_subset_iff + theorem CategoryTheory.MorphismProperty.isomorphisms.iff + theorem CategoryTheory.MorphismProperty.isomorphisms.infer_property + def CategoryTheory.MorphismProperty.isomorphisms + def CategoryTheory.MorphismProperty.map + theorem CategoryTheory.MorphismProperty.map_eq_of_iso + theorem CategoryTheory.MorphismProperty.map_id + theorem CategoryTheory.MorphismProperty.map_id_eq_isoClosure + theorem CategoryTheory.MorphismProperty.map_inverseImage_eq_of_isEquivalence + theorem CategoryTheory.MorphismProperty.map_inverseImage_subset + theorem CategoryTheory.MorphismProperty.map_isoClosure + theorem CategoryTheory.MorphismProperty.map_map + theorem CategoryTheory.MorphismProperty.map_mem_map + theorem CategoryTheory.MorphismProperty.map_respectsIso + theorem CategoryTheory.MorphismProperty.map_subset_iff + theorem CategoryTheory.MorphismProperty.monomorphisms.iff + theorem CategoryTheory.MorphismProperty.monomorphisms.infer_property + def CategoryTheory.MorphismProperty.monomorphisms + theorem CategoryTheory.MorphismProperty.monotone_isoClosure + theorem CategoryTheory.MorphismProperty.monotone_map + def CategoryTheory.MorphismProperty.op + theorem CategoryTheory.MorphismProperty.op_unop + def CategoryTheory.MorphismProperty.pi + def CategoryTheory.MorphismProperty.prod + theorem CategoryTheory.MorphismProperty.subset_iff_le + theorem CategoryTheory.MorphismProperty.subset_isoClosure + theorem CategoryTheory.MorphismProperty.top_apply + theorem CategoryTheory.MorphismProperty.top_eq + def CategoryTheory.MorphismProperty.unop + theorem CategoryTheory.MorphismProperty.unop_op + def CategoryTheory.MorphismProperty + theorem CategoryTheory.NatTrans.isIso_app_iff_of_iso Added Mathlib/CategoryTheory/MorphismProperty/Composition.lean + theorem CategoryTheory.MorphismProperty.ContainsIdentities.of_op + theorem CategoryTheory.MorphismProperty.ContainsIdentities.of_unop + theorem CategoryTheory.MorphismProperty.IsMultiplicative.of_op + theorem CategoryTheory.MorphismProperty.IsMultiplicative.of_unop + theorem CategoryTheory.MorphismProperty.StableUnderComposition.epimorphisms + theorem CategoryTheory.MorphismProperty.StableUnderComposition.inverseImage + theorem CategoryTheory.MorphismProperty.StableUnderComposition.isomorphisms + theorem CategoryTheory.MorphismProperty.StableUnderComposition.monomorphisms + theorem CategoryTheory.MorphismProperty.StableUnderComposition.op + theorem CategoryTheory.MorphismProperty.StableUnderComposition.respectsIso + theorem CategoryTheory.MorphismProperty.StableUnderComposition.unop + def CategoryTheory.MorphismProperty.StableUnderComposition + theorem CategoryTheory.MorphismProperty.StableUnderInverse.op + theorem CategoryTheory.MorphismProperty.StableUnderInverse.unop + def CategoryTheory.MorphismProperty.StableUnderInverse + theorem CategoryTheory.MorphismProperty.comp_mem + theorem CategoryTheory.MorphismProperty.id_mem + theorem CategoryTheory.MorphismProperty.naturalityProperty.stableUnderComposition + theorem CategoryTheory.MorphismProperty.naturalityProperty.stableUnderInverse + def CategoryTheory.MorphismProperty.naturalityProperty Added Mathlib/CategoryTheory/MorphismProperty/Concrete.lean + theorem CategoryTheory.MorphismProperty.bijective_eq_sup + theorem CategoryTheory.MorphismProperty.bijective_respectsIso + theorem CategoryTheory.MorphismProperty.bijective_stableUnderComposition + theorem CategoryTheory.MorphismProperty.injective_respectsIso + theorem CategoryTheory.MorphismProperty.injective_stableUnderComposition + theorem CategoryTheory.MorphismProperty.surjective_respectsIso + theorem CategoryTheory.MorphismProperty.surjective_stableUnderComposition Added Mathlib/CategoryTheory/MorphismProperty/IsInvertedBy.lean + theorem CategoryTheory.MorphismProperty.FunctorsInverting.ext + theorem CategoryTheory.MorphismProperty.FunctorsInverting.hom_ext + def CategoryTheory.MorphismProperty.FunctorsInverting.mk + def CategoryTheory.MorphismProperty.FunctorsInverting + theorem CategoryTheory.MorphismProperty.IsInvertedBy.iff_comp + theorem CategoryTheory.MorphismProperty.IsInvertedBy.iff_map_subset_isomorphisms + theorem CategoryTheory.MorphismProperty.IsInvertedBy.iff_of_iso + theorem CategoryTheory.MorphismProperty.IsInvertedBy.isoClosure_iff + theorem CategoryTheory.MorphismProperty.IsInvertedBy.leftOp + theorem CategoryTheory.MorphismProperty.IsInvertedBy.map_iff + theorem CategoryTheory.MorphismProperty.IsInvertedBy.of_comp + theorem CategoryTheory.MorphismProperty.IsInvertedBy.of_subset + theorem CategoryTheory.MorphismProperty.IsInvertedBy.op + theorem CategoryTheory.MorphismProperty.IsInvertedBy.pi + theorem CategoryTheory.MorphismProperty.IsInvertedBy.prod + theorem CategoryTheory.MorphismProperty.IsInvertedBy.rightOp + theorem CategoryTheory.MorphismProperty.IsInvertedBy.unop + def CategoryTheory.MorphismProperty.IsInvertedBy Added Mathlib/CategoryTheory/MorphismProperty/Limits.lean + theorem CategoryTheory.MorphismProperty.IsStableUnderLimitsOfShape.lim_map + def CategoryTheory.MorphismProperty.IsStableUnderLimitsOfShape + theorem CategoryTheory.MorphismProperty.IsStableUnderProductsOfShape.mk + theorem CategoryTheory.MorphismProperty.RespectsIso.diagonal + theorem CategoryTheory.MorphismProperty.StableUnderBaseChange.baseChange_map + theorem CategoryTheory.MorphismProperty.StableUnderBaseChange.baseChange_obj + theorem CategoryTheory.MorphismProperty.StableUnderBaseChange.diagonal + theorem CategoryTheory.MorphismProperty.StableUnderBaseChange.fst + theorem CategoryTheory.MorphismProperty.StableUnderBaseChange.mk + theorem CategoryTheory.MorphismProperty.StableUnderBaseChange.op + theorem CategoryTheory.MorphismProperty.StableUnderBaseChange.pullback_map + theorem CategoryTheory.MorphismProperty.StableUnderBaseChange.respectsIso + theorem CategoryTheory.MorphismProperty.StableUnderBaseChange.snd + theorem CategoryTheory.MorphismProperty.StableUnderBaseChange.universally_eq + theorem CategoryTheory.MorphismProperty.StableUnderBaseChange.unop + def CategoryTheory.MorphismProperty.StableUnderBaseChange + theorem CategoryTheory.MorphismProperty.StableUnderCobaseChange.inl + theorem CategoryTheory.MorphismProperty.StableUnderCobaseChange.inr + theorem CategoryTheory.MorphismProperty.StableUnderCobaseChange.mk + theorem CategoryTheory.MorphismProperty.StableUnderCobaseChange.op + theorem CategoryTheory.MorphismProperty.StableUnderCobaseChange.respectsIso + theorem CategoryTheory.MorphismProperty.StableUnderCobaseChange.unop + def CategoryTheory.MorphismProperty.StableUnderCobaseChange + theorem CategoryTheory.MorphismProperty.StableUnderComposition.diagonal + theorem CategoryTheory.MorphismProperty.StableUnderComposition.universally + def CategoryTheory.MorphismProperty.diagonal + theorem CategoryTheory.MorphismProperty.diagonal_iff + theorem CategoryTheory.MorphismProperty.isStableUnderProductsOfShape_of_isStableUnderFiniteProducts + def CategoryTheory.MorphismProperty.universally + theorem CategoryTheory.MorphismProperty.universally_le + theorem CategoryTheory.MorphismProperty.universally_mono + theorem CategoryTheory.MorphismProperty.universally_respectsIso + theorem CategoryTheory.MorphismProperty.universally_stableUnderBaseChange Modified Mathlib/CategoryTheory/Subobject/MonoOver.lean 2024-04-26 19:07:12 c4c2f8d chore: move LinearMap.range into its own file (#12378) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Exact.lean Added Mathlib/Algebra/Module/Submodule/Range.lean + theorem AddMonoidHom.coe_toIntLinearMap_range + theorem LinearMap.comap_injective + theorem LinearMap.comap_le_comap_iff + def LinearMap.iterateRange + theorem LinearMap.ker_eq_bot_of_cancel + theorem LinearMap.ker_le_iff + theorem LinearMap.ker_rangeRestrict + theorem LinearMap.map_le_range + theorem LinearMap.mem_range + theorem LinearMap.mem_range_self + theorem LinearMap.mem_submoduleImage + theorem LinearMap.mem_submoduleImage_of_le + def LinearMap.range + def LinearMap.rangeRestrict + theorem LinearMap.range_codRestrict + theorem LinearMap.range_coe + theorem LinearMap.range_comp + theorem LinearMap.range_comp_le_range + theorem LinearMap.range_comp_of_range_eq_top + theorem LinearMap.range_domRestrict_le_range + theorem LinearMap.range_eq_bot + theorem LinearMap.range_eq_map + theorem LinearMap.range_eq_top + theorem LinearMap.range_id + theorem LinearMap.range_le_bot_iff + theorem LinearMap.range_le_iff_comap + theorem LinearMap.range_le_ker_iff + theorem LinearMap.range_neg + theorem LinearMap.range_rangeRestrict + theorem LinearMap.range_smul' + theorem LinearMap.range_smul + theorem LinearMap.range_toAddSubgroup + theorem LinearMap.range_toAddSubmonoid + theorem LinearMap.range_zero + def LinearMap.submoduleImage + theorem LinearMap.submoduleImage_apply_of_le + theorem LinearMap.surjective_rangeRestrict + def Submodule.MapSubtype.orderEmbedding + def Submodule.MapSubtype.relIso + theorem Submodule.comap_subtype_eq_top + theorem Submodule.comap_subtype_self + theorem Submodule.map_comap_eq + theorem Submodule.map_comap_eq_of_le + theorem Submodule.map_comap_eq_self + theorem Submodule.map_subtype_embedding_eq + theorem Submodule.map_subtype_le + theorem Submodule.map_subtype_range_inclusion + theorem Submodule.map_subtype_top + theorem Submodule.map_top + theorem Submodule.range_inclusion + theorem Submodule.range_subtype Modified Mathlib/LinearAlgebra/Basic.lean - theorem AddMonoidHom.coe_toIntLinearMap_range - theorem LinearMap.comap_injective - theorem LinearMap.comap_le_comap_iff - def LinearMap.iterateRange - theorem LinearMap.ker_eq_bot_of_cancel - theorem LinearMap.ker_le_iff - theorem LinearMap.ker_rangeRestrict - theorem LinearMap.map_le_range - theorem LinearMap.mem_range - theorem LinearMap.mem_range_self - theorem LinearMap.mem_submoduleImage - theorem LinearMap.mem_submoduleImage_of_le - def LinearMap.range - def LinearMap.rangeRestrict - theorem LinearMap.range_codRestrict - theorem LinearMap.range_coe - theorem LinearMap.range_comp - theorem LinearMap.range_comp_le_range - theorem LinearMap.range_comp_of_range_eq_top - theorem LinearMap.range_domRestrict_le_range - theorem LinearMap.range_eq_bot - theorem LinearMap.range_eq_map - theorem LinearMap.range_eq_top - theorem LinearMap.range_id - theorem LinearMap.range_le_bot_iff - theorem LinearMap.range_le_iff_comap - theorem LinearMap.range_le_ker_iff - theorem LinearMap.range_neg - theorem LinearMap.range_rangeRestrict - theorem LinearMap.range_smul' - theorem LinearMap.range_smul - theorem LinearMap.range_toAddSubgroup - theorem LinearMap.range_toAddSubmonoid - theorem LinearMap.range_zero - def LinearMap.submoduleImage - theorem LinearMap.submoduleImage_apply_of_le - theorem LinearMap.surjective_rangeRestrict - def Submodule.MapSubtype.orderEmbedding - def Submodule.MapSubtype.relIso - theorem Submodule.comap_subtype_eq_top - theorem Submodule.comap_subtype_self - theorem Submodule.map_comap_eq - theorem Submodule.map_comap_eq_of_le - theorem Submodule.map_comap_eq_self - theorem Submodule.map_subtype_embedding_eq - theorem Submodule.map_subtype_le - theorem Submodule.map_subtype_range_inclusion - theorem Submodule.map_subtype_top - theorem Submodule.map_top - theorem Submodule.range_inclusion - theorem Submodule.range_subtype 2024-04-26 18:08:31 728940e feat: Generalize `Basis.tensorProduct` to heterobasic version (#11844) In order to achieve this, `finsuppTensorFinsupp` and `TensorProduct.directSum` are also heterobasic now. ESTIMATED CHANGES Modified Mathlib/Algebra/Lie/TensorProduct.lean Modified Mathlib/LinearAlgebra/DirectSum/Finsupp.lean + def finsuppTensorFinsupp Modified Mathlib/LinearAlgebra/DirectSum/TensorProduct.lean Modified Mathlib/LinearAlgebra/TensorProduct/Basis.lean +/- def Basis.tensorProduct Modified Mathlib/LinearAlgebra/TensorProduct/Graded/External.lean Modified Mathlib/RepresentationTheory/GroupCohomology/Resolution.lean Modified Mathlib/RingTheory/TensorProduct/Basic.lean 2024-04-26 17:38:17 3e83c09 feat: Finitely Presented Modules (#11870) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Module/FinitePresentation.lean + theorem Module.Finite.exists_smul_of_comp_eq_of_isLocalizedModule + theorem Module.FinitePresentation.exists_lift_of_isLocalizedModule + theorem Module.FinitePresentation.fg_ker + theorem Module.FinitePresentation.fg_ker_iff + theorem Module.FinitePresentation.isLocalizedModule_map + theorem Module.finitePresentation_iff_finite + theorem Module.finitePresentation_of_finite + theorem Module.finitePresentation_of_free + theorem Module.finitePresentation_of_free_of_surjective + theorem Module.finitePresentation_of_ker + theorem Module.finitePresentation_of_surjective Modified Mathlib/Algebra/Module/LocalizedModule.lean + theorem IsLocalizedModule.lift_apply + def IsLocalizedModule.map + theorem IsLocalizedModule.map_apply + theorem IsLocalizedModule.map_comp 2024-04-26 15:11:59 3877d4f chore: remove a subsingleton instance which leads to unreasonable instance search paths (#12445) ESTIMATED CHANGES Modified Mathlib/Algebra/CharP/Basic.lean + theorem CharP.CharOne.subsingleton +/- theorem CharP.false_of_nontrivial_of_char_one Modified Mathlib/Data/ZMod/Basic.lean 2024-04-26 15:11:58 5450e92 chore: remove unnecessary cdots (#12417) These `·` are scoping when there is a single active goal. These were found using a modification of the linter at #12339. ESTIMATED CHANGES Modified Mathlib/Algebra/BigOperators/Associated.lean Modified Mathlib/Algebra/BigOperators/Basic.lean Modified Mathlib/Algebra/BigOperators/Intervals.lean Modified Mathlib/CategoryTheory/Groupoid/Subgroupoid.lean Modified Mathlib/CategoryTheory/Limits/Preserves/Basic.lean Modified Mathlib/CategoryTheory/Limits/Shapes/BinaryProducts.lean Modified Mathlib/CategoryTheory/Limits/Shapes/FiniteLimits.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Images.lean Modified Mathlib/CategoryTheory/Limits/Shapes/WidePullbacks.lean Modified Mathlib/Combinatorics/SimpleGraph/Connectivity.lean Modified Mathlib/Computability/Halting.lean Modified Mathlib/Computability/Partrec.lean Modified Mathlib/Computability/TMToPartrec.lean Modified Mathlib/Data/FP/Basic.lean Modified Mathlib/Data/Finset/Lattice.lean Modified Mathlib/Data/Finset/NatAntidiagonal.lean Modified Mathlib/Data/Finset/Powerset.lean Modified Mathlib/Data/Finsupp/AList.lean Modified Mathlib/Data/Finsupp/Basic.lean Modified Mathlib/Data/Finsupp/BigOperators.lean Modified Mathlib/Data/Fintype/Card.lean Modified Mathlib/Data/Fintype/Option.lean Modified Mathlib/Data/Fintype/Pi.lean Modified Mathlib/Data/LazyList/Basic.lean Modified Mathlib/Data/List/NodupEquivFin.lean Modified Mathlib/Data/Nat/Digits.lean Modified Mathlib/Data/Nat/Interval.lean Modified Mathlib/Data/Nat/Pairing.lean Modified Mathlib/Data/Ordmap/Ordset.lean Modified Mathlib/Data/PFunctor/Univariate/M.lean Modified Mathlib/Data/Set/Pointwise/Basic.lean Modified Mathlib/Data/Sign.lean Modified Mathlib/Data/Sym/Sym2.lean Modified Mathlib/GroupTheory/Commutator.lean Modified Mathlib/GroupTheory/CoprodI.lean Modified Mathlib/GroupTheory/MonoidLocalization.lean Modified Mathlib/GroupTheory/Subgroup/Basic.lean Modified Mathlib/GroupTheory/Subsemigroup/Membership.lean Modified Mathlib/GroupTheory/Subsemigroup/Operations.lean Modified Mathlib/LinearAlgebra/Basic.lean Modified Mathlib/ModelTheory/Definability.lean Modified Mathlib/ModelTheory/Semantics.lean Modified Mathlib/NumberTheory/Padics/PadicVal.lean Modified Mathlib/Order/CompactlyGenerated/Basic.lean Modified Mathlib/Order/Interval/Finset/Basic.lean Modified Mathlib/RingTheory/OreLocalization/Basic.lean Modified Mathlib/SetTheory/Ordinal/Principal.lean Modified Mathlib/SetTheory/ZFC/Basic.lean Modified Mathlib/Topology/Constructions.lean 2024-04-26 15:11:56 38faa1d chore(CategoryTheory/Adjunction): move `Adjunction.restrictFullyFaithful` to separate file (#12363) Also resolves a TODO to add lemmas about `Adjunction.restrictFullyFaithful` ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/CategoryTheory/Adjunction/FullyFaithful.lean - def CategoryTheory.Adjunction.restrictFullyFaithful Modified Mathlib/CategoryTheory/Adjunction/Reflective.lean Added Mathlib/CategoryTheory/Adjunction/Restrict.lean + theorem CategoryTheory.Adjunction.map_restrictFullyFaithful_counit_app + theorem CategoryTheory.Adjunction.map_restrictFullyFaithful_unit_app + def CategoryTheory.Adjunction.restrictFullyFaithful Modified Mathlib/CategoryTheory/Sites/Pullback.lean Modified Mathlib/CategoryTheory/Subobject/MonoOver.lean 2024-04-26 14:35:41 3897434 feat: add Monic.eq_X_pow_iff_natDegree_le_natTrailingDegree (#12448) ESTIMATED CHANGES Modified Mathlib/Algebra/Polynomial/Degree/TrailingDegree.lean + theorem Polynomial.Monic.eq_X_pow_iff_natDegree_le_natTrailingDegree + theorem Polynomial.Monic.eq_X_pow_iff_natTrailingDegree_eq_natDegree - theorem Polynomial.Monic.eq_X_pow_of_natTrailingDegree_eq_natDegree Modified Mathlib/LinearAlgebra/Eigenspace/Zero.lean 2024-04-26 11:43:09 60dde2d feat: add MeasurableEquiv.piOptionEquivProd (#12395) Add the def of MeasurableEquiv.piOptionEquivProd, that is the measurable equivalence for a dependent type over an Option type. This can be useful for applying induction on the product of a finite number of elements. ESTIMATED CHANGES Modified Mathlib/MeasureTheory/MeasurableSpace/Basic.lean + def MeasurableEquiv.piOptionEquivProd 2024-04-26 10:12:31 c38e122 refactor(LinearAlgebra/BilinearForm/Hom): Deprecate results (#12078) Following the removal of `structure BilinForm` from Mathlib (#11278) a number of definitions and results in `LinearAlgebra/BilinearForm/Hom` are essentially just the identity. This PR deprecates these results. ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/BilinearForm/Hom.lean Modified Mathlib/LinearAlgebra/BilinearForm/Properties.lean Modified Mathlib/LinearAlgebra/Matrix/BilinearForm.lean Modified Mathlib/RingTheory/Trace.lean 2024-04-26 09:42:21 ca82778 chore(MeasureTheory/Decomposition/Lebesgue): use Classical and noncomputable only where needed (#12442) ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Decomposition/Lebesgue.lean 2024-04-26 09:42:20 7ba4d20 feat: simple reflections, words, lifting in Coxeter groups (#11406) Prove basic properties of simple reflections in a Coxeter group. Add definitions `CoxeterSystem.lift`, and `CoxeterSystem.wordProd` to `GroupTheory.Coxeter.Basic` and prove their basic properties. ESTIMATED CHANGES Modified Mathlib/GroupTheory/Coxeter/Basic.lean + def CoxeterMatrix.IsLiftable +/- def CoxeterMatrix.relationsSet + theorem CoxeterSystem.ext_simple + theorem CoxeterSystem.inv_simple + def CoxeterSystem.lift + theorem CoxeterSystem.lift_apply_simple + theorem CoxeterSystem.simple_determines_coxeterSystem + theorem CoxeterSystem.simple_induction + theorem CoxeterSystem.simple_induction_left + theorem CoxeterSystem.simple_induction_right + theorem CoxeterSystem.simple_mul_simple_cancel_left + theorem CoxeterSystem.simple_mul_simple_cancel_right + theorem CoxeterSystem.simple_mul_simple_pow' + theorem CoxeterSystem.simple_mul_simple_pow + theorem CoxeterSystem.simple_mul_simple_self + theorem CoxeterSystem.simple_sq + theorem CoxeterSystem.subgroup_closure_range_simple + theorem CoxeterSystem.submonoid_closure_range_simple + def CoxeterSystem.wordProd + theorem CoxeterSystem.wordProd_append + theorem CoxeterSystem.wordProd_concat + theorem CoxeterSystem.wordProd_cons + theorem CoxeterSystem.wordProd_nil + theorem CoxeterSystem.wordProd_reverse + theorem CoxeterSystem.wordProd_singleton + theorem CoxeterSystem.wordProd_surjective 2024-04-26 07:11:14 3d892b7 feat: add `LinearIsometryEquiv.piLpCongrRight` (#12437) Also relax some typeclasses on `piLpCongrLeft`. ESTIMATED CHANGES Modified Mathlib/Analysis/NormedSpace/PiLp.lean + theorem LinearIsometryEquiv.piLpCongrRight_apply + theorem LinearIsometryEquiv.piLpCongrRight_refl + theorem LinearIsometryEquiv.piLpCongrRight_single + theorem LinearIsometryEquiv.piLpCongrRight_symm 2024-04-26 06:26:39 059a0b6 feat: define Lie module structure on derivations (#12315) Also add some basic consequences ESTIMATED CHANGES Modified Mathlib/Algebra/Lie/Derivation/AdjointAction.lean + theorem LieDerivation.ad_apply_lieDerivation + theorem LieDerivation.lie_ad + theorem LieDerivation.maxTrivSubmodule_eq_bot_of_center_eq_bot Modified Mathlib/Algebra/Lie/Derivation/Basic.lean + theorem LieDerivation.lie_apply + theorem LieDerivation.lie_coe_lieDerivation_apply + theorem LieDerivation.lie_lieDerivation_apply Modified Mathlib/Algebra/Lie/Derivation/Killing.lean 2024-04-25 16:11:21 61ad21e feat(Data/Matroid/Dual): change dual notation (#12431) This PR changes the symbol for matroid duality from `﹡` to `✶`. This is because there is a VSCode font rendering bug (discussed [here](https://leanprover.zulipchat.com/#narrow/stream/113488-general/topic/Very.20strange.20VScode.20font.20bug)) that causes `﹡` to display incorrectly when combined with certain other unicode symbols. Since the particular star `﹡` is only used for matroid duality in mathlib, this change is cosmetic and inconsequential. ESTIMATED CHANGES Modified Mathlib/Data/Matroid/Dual.lean +/- theorem Matroid.Base.compl_base_dual +/- theorem Matroid.Base.compl_base_of_dual +/- theorem Matroid.Base.ssubset_ground +/- theorem Matroid.Coindep.indep +/- theorem Matroid.Indep.coindep +/- theorem Matroid.Indep.ssubset_ground +/- theorem Matroid.coindep_def +/- theorem Matroid.dual_base_iff' +/- theorem Matroid.dual_base_iff +/- theorem Matroid.dual_coindep_iff +/- theorem Matroid.dual_dep_iff_forall +/- theorem Matroid.dual_dual +/- theorem Matroid.dual_ground +/- theorem Matroid.dual_indep_iff_exists' +/- theorem Matroid.dual_inj +/- theorem Matroid.eq_dual_comm +/- theorem Matroid.eq_dual_iff_dual_eq +/- theorem Matroid.ground_not_base +/- theorem Matroid.setOf_dual_base_eq Modified Mathlib/Data/Matroid/Restrict.lean 2024-04-25 15:18:16 bdc6733 feat(CategoryTheory/Bicategory/LocallyDiscrete): Make LocallyDiscrete a structure (#12383) Made `LocallyDiscrete` a structure, similar to `Discrete`, and added some basic API. `Coherence.lean` was also adjusted because of these changes. This should make it easier to move between a given type `C` and `LocallyDiscrete C`. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Bicategory/Coherence.lean +/- theorem CategoryTheory.FreeBicategory.preinclusion_obj Modified Mathlib/CategoryTheory/Bicategory/LocallyDiscrete.lean + def CategoryTheory.Functor.toPseudoFunctor + theorem CategoryTheory.LocallyDiscrete.comp_as + theorem CategoryTheory.LocallyDiscrete.id_as + def CategoryTheory.LocallyDiscrete.locallyDiscreteEquiv + theorem CategoryTheory.LocallyDiscrete.mk_as + structure CategoryTheory.LocallyDiscrete - def CategoryTheory.LocallyDiscrete + theorem Quiver.Hom.comp_toLoc + theorem Quiver.Hom.id_toLoc + def Quiver.Hom.toLoc 2024-04-25 15:18:15 fe59037 feat(LinearAlgebra/TensorProduct/Basic): add `LinearEquiv.(l|r)Tensor` (#11731) - add `LinearMap.(l|r)Tensor` and their properties - add `congr_symm`, `congr_refl_refl`, `congr_trans`, `congr_mul`, `congr_pow` and `congr_zpow` ESTIMATED CHANGES Modified Mathlib/Algebra/Category/ModuleCat/Monoidal/Basic.lean Modified Mathlib/LinearAlgebra/TensorProduct/Basic.lean + theorem LinearEquiv.coe_lTensor + theorem LinearEquiv.coe_lTensor_symm + theorem LinearEquiv.coe_rTensor + theorem LinearEquiv.coe_rTensor_symm + theorem LinearEquiv.comm_trans_lTensor_trans_comm_eq + theorem LinearEquiv.comm_trans_rTensor_trans_comm_eq + theorem LinearEquiv.congr_trans_lTensor + theorem LinearEquiv.congr_trans_rTensor + def LinearEquiv.lTensor + theorem LinearEquiv.lTensor_mul + theorem LinearEquiv.lTensor_pow + theorem LinearEquiv.lTensor_refl + theorem LinearEquiv.lTensor_refl_apply + theorem LinearEquiv.lTensor_symm_tmul + theorem LinearEquiv.lTensor_tmul + theorem LinearEquiv.lTensor_trans + theorem LinearEquiv.lTensor_trans_apply + theorem LinearEquiv.lTensor_trans_congr + theorem LinearEquiv.lTensor_trans_rTensor + theorem LinearEquiv.lTensor_zpow + def LinearEquiv.rTensor + theorem LinearEquiv.rTensor_mul + theorem LinearEquiv.rTensor_pow + theorem LinearEquiv.rTensor_refl + theorem LinearEquiv.rTensor_refl_apply + theorem LinearEquiv.rTensor_symm_tmul + theorem LinearEquiv.rTensor_tmul + theorem LinearEquiv.rTensor_trans + theorem LinearEquiv.rTensor_trans_apply + theorem LinearEquiv.rTensor_trans_congr + theorem LinearEquiv.rTensor_trans_lTensor + theorem LinearEquiv.rTensor_zpow + theorem TensorProduct.congr_mul + theorem TensorProduct.congr_pow + theorem TensorProduct.congr_refl_refl + theorem TensorProduct.congr_symm + theorem TensorProduct.congr_trans + theorem TensorProduct.congr_zpow Modified scripts/style-exceptions.txt 2024-04-25 14:28:20 b856377 feat: add instances for Measure.pi (#12400) Add instances for Measure.pi of finite measures to be finite and for Measure.pi of probability measures to be a probability measure. Add also the same instances for the canonical volume measure. ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Constructions/Pi.lean 2024-04-25 13:52:39 29036be feat: add absolutelyContinuous_zero_iff (#12399) Add lemma absolutelyContinuous_zero_iff to handle the case where a measure is absolutely continuous wrt 0. ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Measure/MeasureSpace.lean + theorem MeasureTheory.Measure.absolutelyContinuous_zero_iff 2024-04-25 08:15:25 9838f48 feat: filters that are disjoint from the cocompact filter (#12305) - `Filter.disjoint_cocompact_left`, `Filter.disjoint_cocompact_right` : A filter is disjoint from the cocompact filter if and only if it contains a compact set. - `nhdsSet_prod_le_of_disjoint_cocompact`, `prod_nhdsSet_le_of_disjoint_cocompact` : If `s` is a compact set and `f` is disjoint from the cocompact filter, then `𝓝ˢ s ×ˢ f ≤ 𝓝ˢ (s ×ˢ Set.univ)`. ESTIMATED CHANGES Modified Mathlib/Topology/Compactness/Compact.lean + theorem Filter.disjoint_cocompact_left + theorem Filter.disjoint_cocompact_right + theorem nhdsSet_prod_le_of_disjoint_cocompact + theorem prod_nhdsSet_le_of_disjoint_cocompact 2024-04-25 07:45:12 f1d422f Feat: Define cocardinal and cocountable filters (#11774) Define the `cocardinal` and `cocountable` filters as those consisting of sets whose complements have a given cardinality/ are countable. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Order/Filter/Cocardinal.lean + def Filter.cocardinal + theorem Filter.cocardinal_aleph0_eq_cofinite + theorem Filter.cocardinal_inf_principal_neBot_iff + theorem Filter.compl_mem_cocardinal_of_card_lt + theorem Filter.eventually_cocardinal + theorem Filter.eventually_cocardinal_ne + theorem Filter.eventually_cocardinal_nmem_of_card_lt + theorem Filter.frequently_cocardinal + theorem Filter.frequently_cocardinal_mem + theorem Filter.hasBasis_cocardinal + theorem Filter.mem_cocardinal + theorem Filter.mem_cocountable + theorem Finset.eventually_cocardinal_nmem + theorem Set.Finite.compl_mem_cocardinal 2024-04-25 07:11:45 ffaeb65 chore(Combinatorics/SimpleGraph): Generalize few lemmas in `AdjMatrix` to `NonAssocSemiring α` (#12413) Generalize some lemmas from `ℕ`, `Ring α`, and `Semiring α`, to `NonAssocSemiring α`. ESTIMATED CHANGES Modified Mathlib/Combinatorics/SimpleGraph/AdjMatrix.lean +/- theorem SimpleGraph.adjMatrix_mulVec_const_apply +/- theorem SimpleGraph.adjMatrix_mulVec_const_apply_of_regular +/- theorem SimpleGraph.dotProduct_mulVec_adjMatrix +/- theorem SimpleGraph.one_add_adjMatrix_add_compl_adjMatrix_eq_allOnes 2024-04-25 04:21:35 d700199 feat(List/Enum): add lemmas (#11969) ESTIMATED CHANGES Modified Mathlib/Data/List/Enum.lean - theorem List.enumFrom_get? - theorem List.enum_get? +/- theorem List.enum_map_snd + theorem List.fst_lt_add_of_mem_enumFrom + theorem List.fst_lt_of_mem_enum + theorem List.get?_enum + theorem List.get?_enumFrom +/- theorem List.get_enum +/- theorem List.get_enumFrom + theorem List.le_fst_of_mem_enumFrom +/- theorem List.mem_enumFrom + theorem List.mem_enum_iff_get? + theorem List.mk_add_mem_enumFrom_iff_get? + theorem List.mk_mem_enumFrom_iff_le_and_get?_sub + theorem List.mk_mem_enum_iff_get? + theorem List.snd_mem_of_mem_enum + theorem List.snd_mem_of_mem_enumFrom 2024-04-25 03:23:52 b1fac81 chore(GroupTheory): reformat deprecation dates (#12406) Try to have the date on the same line as the attribute: this makes it easier to rewrite these into machine-readable form. One date is was added: the deprecation was in the same PR as nearby lemmas. ESTIMATED CHANGES Modified Mathlib/GroupTheory/Exponent.lean Modified Mathlib/GroupTheory/OrderOfElement.lean Modified Mathlib/GroupTheory/SpecificGroups/Cyclic.lean Modified Mathlib/GroupTheory/Subgroup/Basic.lean 2024-04-25 01:30:30 1fd4ce4 feat(Algebra/GroupWithZero/WithZero): `WithZero.map'` (#12159) ESTIMATED CHANGES Modified Mathlib/Algebra/GroupWithZero/WithZero.lean + def WithZero.coeMonoidHom + theorem WithZero.lift'_coe + theorem WithZero.lift'_unique + theorem WithZero.lift'_zero + theorem WithZero.map'_coe + theorem WithZero.map'_comp + theorem WithZero.map'_id + theorem WithZero.map'_map' + theorem WithZero.map'_zero + theorem WithZero.monoidWithZeroHom_ext + theorem WithZero.unzero_mul 2024-04-25 00:31:36 d96c1e7 feat (RingTheory/Valuation/Integers) : add lemma one_of_isUnit' (#12247) Add lemma `one_of_isUnit'` , that is a generalization of `one_of_isUnit` with a slightly weaker assumption. ESTIMATED CHANGES Modified Mathlib/RingTheory/Valuation/Integers.lean + theorem Valuation.Integers.one_of_isUnit' 2024-04-24 20:27:06 a93cf15 feat(Nat/GCD): Add dvd_gcd_mul_gcd_of_dvd_mul (#12246) ESTIMATED CHANGES Modified Mathlib/Data/Nat/GCD/Basic.lean + theorem Nat.dvd_gcd_mul_gcd_iff_dvd_mul + theorem Nat.dvd_gcd_mul_iff_dvd_mul + theorem Nat.dvd_mul_gcd_iff_dvd_mul + theorem Nat.gcd_mul_gcd_eq_iff_dvd_mul_of_coprime 2024-04-24 19:18:10 cba2f37 feat(CategoryTheory/EqToHom): generalize Functor.congr_map to Prefunctor.congr_map (#12384) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Category/Cat/Limit.lean Modified Mathlib/CategoryTheory/EqToHom.lean - theorem CategoryTheory.Functor.congr_map Modified Mathlib/Combinatorics/Quiver/Basic.lean + theorem Prefunctor.congr_map 2024-04-24 16:47:04 d0ecb3c feat(List/Basic): add `get_eq_get?` (#12304) Should it be `get_eq_get?`, `get_eq_get?_get`, or `get_eq_get_get?`? ESTIMATED CHANGES Modified Mathlib/Data/List/Basic.lean + theorem List.get_eq_get? 2024-04-24 14:51:34 6463083 feat: add 3 lemmas linking iSup and symmDiff (#12340) Add 3 lemmas to show that the symmetric difference of two `iSup`s/`biSup`s is less or equal to the `iSup`/`biSup` of the symmetric differences. ESTIMATED CHANGES Modified Mathlib/Order/CompleteBooleanAlgebra.lean + theorem biSup_symmDiff_biSup_le + theorem iSup_symmDiff_iSup_le Modified Mathlib/Order/SymmDiff.lean + theorem le_symmDiff_sup_left + theorem le_symmDiff_sup_right 2024-04-24 14:51:32 fdff744 chore(Analysis): add missing deprecation dates (#12336) ESTIMATED CHANGES Modified Mathlib/Analysis/Asymptotics/Asymptotics.lean Modified Mathlib/Analysis/Convex/Gauge.lean Modified Mathlib/Analysis/InnerProductSpace/LaxMilgram.lean Modified Mathlib/Analysis/SpecialFunctions/Exp.lean Modified Mathlib/Analysis/SpecialFunctions/Log/Deriv.lean Modified Mathlib/Analysis/SpecialFunctions/Pow/Asymptotics.lean Modified Mathlib/Analysis/SpecificLimits/Basic.lean Modified Mathlib/Analysis/SpecificLimits/Normed.lean Modified Mathlib/Analysis/SpecificLimits/RCLike.lean 2024-04-24 14:51:31 8656fa6 chore(Perm/List): golf, review API (#12302) - add `mem_or_mem_of_zipWith_swap_prod_ne`, a version of `zipWith_swap_prod_support'` without any `Finset`s; - move it and related lemmas up, use them to golf lemmas about ` formPerm`; - convert explicit -> implicit arguments here and there; - `formPerm_reverse` doesn't need `Nodup` ESTIMATED CHANGES Modified Mathlib/GroupTheory/Perm/Cycle/Basic.lean Modified Mathlib/GroupTheory/Perm/Cycle/Concrete.lean Modified Mathlib/GroupTheory/Perm/List.lean + theorem List.formPerm_append_pair +/- theorem List.formPerm_apply_mem_of_mem +/- theorem List.formPerm_apply_of_not_mem +/- theorem List.formPerm_reverse +/- theorem List.mem_of_formPerm_apply_mem +/- theorem List.mem_of_formPerm_apply_ne + theorem List.mem_or_mem_of_zipWith_swap_prod_ne Modified Mathlib/Logic/Equiv/Basic.lean + theorem Equiv.eq_or_eq_of_swap_apply_ne_self 2024-04-24 14:51:30 60b4825 Bugfix Polyrith.lean (#12285) Change tk to onlyTk cause we want to check if the only keyword has been used. Currently the only keyword will be ignored cause it isn't used anywhere. tk.isNone will always be None. Reopened https://github.com/leanprover-community/mathlib4/pull/9069. ESTIMATED CHANGES Modified Mathlib/Tactic/Polyrith.lean 2024-04-24 14:51:29 2dac82f feat: `∃! x ∈ s, p x` syntax (#12237) More generally, adds a `binderPred` variant for `ExistsUnique`. Uses this syntax to clean up `Mathlib.Data.Setoid.Partition` and remove Mathport warnings. ESTIMATED CHANGES Modified Mathlib/Analysis/BoxIntegral/Partition/Basic.lean Modified Mathlib/Combinatorics/SimpleGraph/Partition.lean Modified Mathlib/Data/Setoid/Partition.lean +/- def Setoid.IsPartition +/- theorem Setoid.classes_eqv_classes +/- theorem Setoid.classes_mkClasses +/- theorem Setoid.eq_eqv_class_of_mem +/- theorem Setoid.eq_of_mem_eqv_class +/- theorem Setoid.eqv_class_mem' +/- theorem Setoid.eqv_class_mem +/- theorem Setoid.eqv_classes_disjoint +/- def Setoid.mkClasses Modified Mathlib/Init/Logic.lean 2024-04-24 14:51:28 c7fa706 chore: Move intervals (#11765) Move `Set.Ixx`, `Finset.Ixx`, `Multiset.Ixx` together under two different folders: * `Order.Interval` for their definition and basic properties * `Algebra.Order.Interval` for their algebraic properties Move the definitions of `Multiset.Ixx` to what is now `Order.Interval.Multiset`. I believe we could just delete this file in a later PR as nothing uses it (and I already had doubts when defining `Multiset.Ixx` three years ago). Move the algebraic results out of what is now `Order.Interval.Finset.Basic` to a new file `Algebra.Order.Interval.Finset.Basic`. ESTIMATED CHANGES Modified Archive/Wiedijk100Theorems/CubingACube.lean Modified Counterexamples/SorgenfreyLine.lean Modified Mathlib.lean Modified Mathlib/Algebra/Order/Floor.lean Renamed Mathlib/Algebra/Order/Interval.lean to Mathlib/Algebra/Order/Interval/Basic.lean Added Mathlib/Algebra/Order/Interval/Finset.lean + theorem Finset.image_add_left_Icc + theorem Finset.image_add_left_Ico + theorem Finset.image_add_left_Ioc + theorem Finset.image_add_left_Ioo + theorem Finset.image_add_right_Icc + theorem Finset.image_add_right_Ico + theorem Finset.image_add_right_Ioc + theorem Finset.image_add_right_Ioo + theorem Finset.map_add_left_Icc + theorem Finset.map_add_left_Ico + theorem Finset.map_add_left_Ioc + theorem Finset.map_add_left_Ioo + theorem Finset.map_add_right_Icc + theorem Finset.map_add_right_Ico + theorem Finset.map_add_right_Ioc + theorem Finset.map_add_right_Ioo Added Mathlib/Algebra/Order/Interval/Multiset.lean + theorem Multiset.map_add_left_Icc + theorem Multiset.map_add_left_Ico + theorem Multiset.map_add_left_Ioc + theorem Multiset.map_add_left_Ioo + theorem Multiset.map_add_right_Icc + theorem Multiset.map_add_right_Ico + theorem Multiset.map_add_right_Ioc + theorem Multiset.map_add_right_Ioo Renamed Mathlib/Data/Set/Intervals/Group.lean to Mathlib/Algebra/Order/Interval/Set/Group.lean Renamed Mathlib/Data/Set/Intervals/Instances.lean to Mathlib/Algebra/Order/Interval/Set/Instances.lean Renamed Mathlib/Data/Set/Intervals/Monoid.lean to Mathlib/Algebra/Order/Interval/Set/Monoid.lean Modified Mathlib/Analysis/BoxIntegral/Box/Basic.lean Modified Mathlib/Analysis/Convex/Between.lean Modified Mathlib/Data/DFinsupp/Interval.lean Modified Mathlib/Data/ENNReal/Basic.lean Modified Mathlib/Data/Fin/Interval.lean Modified Mathlib/Data/Fin/Tuple/Basic.lean Modified Mathlib/Data/Finset/Antidiagonal.lean Modified Mathlib/Data/Finset/Basic.lean Modified Mathlib/Data/Finset/Interval.lean Modified Mathlib/Data/Finset/Piecewise.lean Modified Mathlib/Data/Finsupp/Interval.lean Modified Mathlib/Data/Int/Interval.lean Modified Mathlib/Data/Int/Lemmas.lean Modified Mathlib/Data/Multiset/Interval.lean Modified Mathlib/Data/Nat/Interval.lean Modified Mathlib/Data/Nat/Log.lean Modified Mathlib/Data/Nat/Nth.lean Modified Mathlib/Data/Pi/Interval.lean Modified Mathlib/Data/Real/Archimedean.lean Modified Mathlib/Data/Set/Pointwise/Interval.lean Modified Mathlib/Data/Sigma/Interval.lean Modified Mathlib/Data/Sum/Interval.lean Modified Mathlib/GroupTheory/OrderOfElement.lean Modified Mathlib/MeasureTheory/Integral/IntervalIntegral.lean Modified Mathlib/Order/Birkhoff.lean Modified Mathlib/Order/Bounded.lean Modified Mathlib/Order/Bounds/Basic.lean Modified Mathlib/Order/CompactlyGenerated/Basic.lean Modified Mathlib/Order/CompleteLatticeIntervals.lean Modified Mathlib/Order/ConditionallyCompleteLattice/Basic.lean Modified Mathlib/Order/Cover.lean Modified Mathlib/Order/Filter/AtTopBot.lean Modified Mathlib/Order/Filter/Interval.lean Renamed Mathlib/Order/Interval.lean to Mathlib/Order/Interval/Basic.lean Renamed Mathlib/Data/Finset/LocallyFinite/Basic.lean to Mathlib/Order/Interval/Finset/Basic.lean - theorem Finset.image_add_left_Icc - theorem Finset.image_add_left_Ico - theorem Finset.image_add_left_Ioc - theorem Finset.image_add_left_Ioo - theorem Finset.image_add_right_Icc - theorem Finset.image_add_right_Ico - theorem Finset.image_add_right_Ioc - theorem Finset.image_add_right_Ioo - theorem Finset.map_add_left_Icc - theorem Finset.map_add_left_Ico - theorem Finset.map_add_left_Ioc - theorem Finset.map_add_left_Ioo - theorem Finset.map_add_right_Icc - theorem Finset.map_add_right_Ico - theorem Finset.map_add_right_Ioc - theorem Finset.map_add_right_Ioo Renamed Mathlib/Data/Finset/LocallyFinite/Box.lean to Mathlib/Order/Interval/Finset/Box.lean Renamed Mathlib/Order/LocallyFinite.lean to Mathlib/Order/Interval/Finset/Defs.lean - def Multiset.Icc - def Multiset.Ici - def Multiset.Ico - def Multiset.Iic - def Multiset.Iio - def Multiset.Ioc - def Multiset.Ioi - def Multiset.Ioo - theorem Multiset.mem_Icc - theorem Multiset.mem_Ici - theorem Multiset.mem_Ico - theorem Multiset.mem_Iic - theorem Multiset.mem_Iio - theorem Multiset.mem_Ioc - theorem Multiset.mem_Ioi - theorem Multiset.mem_Ioo Renamed Mathlib/Data/Multiset/LocallyFinite.lean to Mathlib/Order/Interval/Multiset.lean + def Multiset.Icc + def Multiset.Ici + def Multiset.Ico + def Multiset.Iic + def Multiset.Iio + def Multiset.Ioc + def Multiset.Ioi + def Multiset.Ioo - theorem Multiset.map_add_left_Icc - theorem Multiset.map_add_left_Ico - theorem Multiset.map_add_left_Ioc - theorem Multiset.map_add_left_Ioo - theorem Multiset.map_add_right_Icc - theorem Multiset.map_add_right_Ico - theorem Multiset.map_add_right_Ioc - theorem Multiset.map_add_right_Ioo + theorem Multiset.mem_Icc + theorem Multiset.mem_Ici + theorem Multiset.mem_Ico + theorem Multiset.mem_Iic + theorem Multiset.mem_Iio + theorem Multiset.mem_Ioc + theorem Multiset.mem_Ioi + theorem Multiset.mem_Ioo Renamed Mathlib/Data/Set/Intervals/Basic.lean to Mathlib/Order/Interval/Set/Basic.lean Renamed Mathlib/Data/Set/Intervals/Disjoint.lean to Mathlib/Order/Interval/Set/Disjoint.lean Renamed Mathlib/Data/Set/Intervals/Image.lean to Mathlib/Order/Interval/Set/Image.lean Renamed Mathlib/Data/Set/Intervals/Infinite.lean to Mathlib/Order/Interval/Set/Infinite.lean Renamed Mathlib/Data/Set/Intervals/IsoIoo.lean to Mathlib/Order/Interval/Set/IsoIoo.lean Renamed Mathlib/Data/Set/Intervals/Monotone.lean to Mathlib/Order/Interval/Set/Monotone.lean Renamed Mathlib/Data/Set/Intervals/OrdConnected.lean to Mathlib/Order/Interval/Set/OrdConnected.lean Renamed Mathlib/Data/Set/Intervals/OrdConnectedComponent.lean to Mathlib/Order/Interval/Set/OrdConnectedComponent.lean Renamed Mathlib/Data/Set/Intervals/OrderEmbedding.lean to Mathlib/Order/Interval/Set/OrderEmbedding.lean Renamed Mathlib/Data/Set/Intervals/OrderIso.lean to Mathlib/Order/Interval/Set/OrderIso.lean Renamed Mathlib/Data/Set/Intervals/Pi.lean to Mathlib/Order/Interval/Set/Pi.lean Renamed Mathlib/Data/Set/Intervals/ProjIcc.lean to Mathlib/Order/Interval/Set/ProjIcc.lean Renamed Mathlib/Data/Set/Intervals/SurjOn.lean to Mathlib/Order/Interval/Set/SurjOn.lean Renamed Mathlib/Data/Set/Intervals/UnorderedInterval.lean to Mathlib/Order/Interval/Set/UnorderedInterval.lean Renamed Mathlib/Data/Set/Intervals/WithBotTop.lean to Mathlib/Order/Interval/Set/WithBotTop.lean Modified Mathlib/Order/Minimal.lean Modified Mathlib/Order/SuccPred/LinearLocallyFinite.lean Modified Mathlib/Order/UpperLower/Basic.lean Modified Mathlib/Order/UpperLower/LocallyFinite.lean Modified Mathlib/Probability/Martingale/Upcrossing.lean Modified Mathlib/Topology/Filter.lean Modified Mathlib/Topology/MetricSpace/Lipschitz.lean Modified Mathlib/Topology/Order/Basic.lean Modified Mathlib/Topology/Order/IntermediateValue.lean Modified Mathlib/Topology/Order/ProjIcc.lean Modified Mathlib/Topology/Order/T5.lean Modified Mathlib/Topology/TietzeExtension.lean Modified Mathlib/Topology/UnitInterval.lean Modified scripts/style-exceptions.txt 2024-04-24 13:42:10 c0fb648 feat(RingTheory/MvPolynomial): freeness of `MvPolynomial` (#12392) Shows that a multivariable polynomial ring is a free module. ESTIMATED CHANGES Modified Mathlib/RingTheory/MvPolynomial/Basic.lean 2024-04-24 13:42:09 49b417e feat(GroupTheory): add lemmas about `Submonoid.closure` and `CoprodI` (#12391) - Add `CoprodI.lift_comp_of`, `CoprodI.lift_comp_of'`, `CoprodI.lift_of'`, `CoprodI.iSup_mrange_of`, `CoprodI.mclosure_iUnion_range_of`, `CoprodI.induction_left` - Add `MonoidHom.mrange_id`, `MonoidHom.mclosure_range`, as well as additive versions. ESTIMATED CHANGES Modified Mathlib/GroupTheory/CoprodI.lean + theorem Monoid.CoprodI.iSup_mrange_of + theorem Monoid.CoprodI.induction_left + theorem Monoid.CoprodI.lift_comp_of' + theorem Monoid.CoprodI.lift_comp_of +/- theorem Monoid.CoprodI.lift_mrange_le + theorem Monoid.CoprodI.lift_of' +/- theorem Monoid.CoprodI.lift_of + theorem Monoid.CoprodI.mclosure_iUnion_range_of Modified Mathlib/GroupTheory/Submonoid/Operations.lean + theorem MonoidHom.mclosure_range + theorem MonoidHom.mrange_id 2024-04-24 13:42:08 5d19d89 feat: add a rfl lemma about non negative norm seen as en ENNReal (#12348) Add a rfl lemma about non negative norm seen as an ENNReal. Especially useful when dealing with the Lp norm of an indicatorConstLp. ESTIMATED CHANGES Modified Mathlib/Analysis/Normed/Group/Basic.lean + theorem toReal_coe_nnnorm' 2024-04-24 13:42:07 45346d9 chore: reformat deprecation warnings on one line, if possible (#12335) Occasionally, remove a "deprecated by" or "deprecated since", to fit the line length. This is desirable (to me) because - it's more compact: I don't see a good reason for these declarations taking up more space than needed; as I understand it, deprecated lemmas are not supposed to be used in mathlib anyway - putting the date on the same line as the attribute makes it easier to discover un-dated deprecations; they also ease writing a tool to replace these by a machine-readable version using leanprover/lean4#3968 ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Field/Power.lean Modified Mathlib/Algebra/Order/GroupWithZero/Canonical.lean Modified Mathlib/Algebra/Squarefree/Basic.lean Modified Mathlib/Analysis/Convex/Integral.lean Modified Mathlib/Analysis/Matrix.lean Modified Mathlib/Analysis/Normed/Group/Basic.lean Modified Mathlib/Analysis/NormedSpace/FiniteDimension.lean Modified Mathlib/Analysis/NormedSpace/Int.lean Modified Mathlib/Analysis/NormedSpace/Multilinear/Basic.lean Modified Mathlib/Analysis/NormedSpace/OperatorNorm/Basic.lean Modified Mathlib/Analysis/NormedSpace/OperatorNorm/Bilinear.lean Modified Mathlib/Analysis/NormedSpace/OperatorNorm/Completeness.lean Modified Mathlib/Analysis/NormedSpace/OperatorNorm/Mul.lean Modified Mathlib/Analysis/NormedSpace/OperatorNorm/NNNorm.lean Modified Mathlib/Analysis/NormedSpace/OperatorNorm/NormedSpace.lean Modified Mathlib/Analysis/NormedSpace/OperatorNorm/Prod.lean Modified Mathlib/Analysis/NormedSpace/RCLike.lean Modified Mathlib/Analysis/NormedSpace/Star/Matrix.lean Modified Mathlib/Analysis/NormedSpace/Star/Unitization.lean Modified Mathlib/Data/ENNReal/Real.lean Modified Mathlib/Data/Nat/Parity.lean Modified Mathlib/Data/Real/NNReal.lean Modified Mathlib/Data/Set/Card.lean 2024-04-24 13:42:06 add5ed2 feat(List): add lemmas about `Sublist` (#12326) - Move `tail_sublist` to `Basic` - Rename `sublist_of_cons_sublist_cons` to `Sublist.of_cons_cos` - Rename `cons_sublist_cons_iff` to `cons_sublist_cons` - Add `Sublist.tail`, `drop_sublist_drop_left`, `Sublist.drop` - Protect some lemmas ESTIMATED CHANGES Modified Mathlib/Data/List/Basic.lean + theorem List.Sublist.of_cons_cons - theorem List.cons_sublist_cons_iff +/- theorem List.sublist_of_cons_sublist_cons + theorem List.tail_sublist Modified Mathlib/Data/List/Chain.lean Modified Mathlib/Data/List/Duplicate.lean Modified Mathlib/Data/List/Forall2.lean Modified Mathlib/Data/List/Infix.lean + theorem List.drop_sublist_drop_left - theorem List.tail_sublist Modified Mathlib/Data/List/Rotate.lean Modified Mathlib/Data/List/Sort.lean 2024-04-24 13:42:05 b53e4a3 refactor(QuadraticForm/Real): migrate to `SignType` (#12319) See also #7842 ESTIMATED CHANGES Modified Mathlib/Data/Sign.lean + theorem self_mul_sign + theorem sign_mul_self Modified Mathlib/LinearAlgebra/QuadraticForm/Real.lean + theorem QuadraticForm.equivalent_signType_weighted_sum_squared + theorem QuadraticForm.equivalent_sign_ne_zero_weighted_sum_squared 2024-04-24 13:42:04 069f405 feat: port `cc` tactic (1/3) (#11956) In this PR, we implements datatypes which is used in `cc` tactic. Also, `Init.CCLemmas` is removed in #10696, but this module is required for `cc` tactic, so we recover this module as `Tactic.CC.Lemmas`. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Tactic.lean Added Mathlib/Tactic/CC/Datatypes.lean + def Mathlib.Tactic.CC.ACApps.append + def Mathlib.Tactic.CC.ACApps.diff + def Mathlib.Tactic.CC.ACApps.intersection + def Mathlib.Tactic.CC.ACApps.isSubset + def Mathlib.Tactic.CC.ACApps.mkApps + def Mathlib.Tactic.CC.ACApps.mkFlatApps + def Mathlib.Tactic.CC.ACApps.toExpr + inductive Mathlib.Tactic.CC.ACApps + def Mathlib.Tactic.CC.ACEntry.ROccs + structure Mathlib.Tactic.CC.ACEntry + structure Mathlib.Tactic.CC.CCConfig + structure Mathlib.Tactic.CC.CCCongrTheorem + structure Mathlib.Tactic.CC.CCCongrTheoremKey + structure Mathlib.Tactic.CC.CCNormalizer + structure Mathlib.Tactic.CC.CCPropagationHandler + def Mathlib.Tactic.CC.CCState.checkEqc + def Mathlib.Tactic.CC.CCState.checkInvariant + def Mathlib.Tactic.CC.CCState.getNumROccs + def Mathlib.Tactic.CC.CCState.getRoots + def Mathlib.Tactic.CC.CCState.getVarWithLeastLHSOccs + def Mathlib.Tactic.CC.CCState.getVarWithLeastOccs + def Mathlib.Tactic.CC.CCState.getVarWithLeastRHSOccs + def Mathlib.Tactic.CC.CCState.inSingletonEqc + def Mathlib.Tactic.CC.CCState.isCgRoot + def Mathlib.Tactic.CC.CCState.mkEntryCore + def Mathlib.Tactic.CC.CCState.mt + def Mathlib.Tactic.CC.CCState.next + def Mathlib.Tactic.CC.CCState.ppAC + def Mathlib.Tactic.CC.CCState.ppACDecl + def Mathlib.Tactic.CC.CCState.ppACDecls + def Mathlib.Tactic.CC.CCState.ppACExpr + def Mathlib.Tactic.CC.CCState.ppACR + def Mathlib.Tactic.CC.CCState.ppEqc + def Mathlib.Tactic.CC.CCState.ppEqcs + def Mathlib.Tactic.CC.CCState.ppParentOccs + def Mathlib.Tactic.CC.CCState.ppParentOccsAux + def Mathlib.Tactic.CC.CCState.root + structure Mathlib.Tactic.CC.CCState + structure Mathlib.Tactic.CC.CCStructure + inductive Mathlib.Tactic.CC.CongruencesKey + inductive Mathlib.Tactic.CC.DelayedExpr + structure Mathlib.Tactic.CC.Entry + inductive Mathlib.Tactic.CC.EntryExpr + structure Mathlib.Tactic.CC.ParentOcc + structure Mathlib.Tactic.CC.SymmCongruencesKey + def Mathlib.Tactic.CC.isInterpretedValue + def Mathlib.Tactic.CC.isValue + def Mathlib.Tactic.CC.liftFromEq + def Mathlib.Tactic.CC.mkCCHCongrWithArity Added Mathlib/Tactic/CC/Lemmas.lean + theorem Mathlib.Tactic.CC.and_eq_of_eq + theorem Mathlib.Tactic.CC.and_eq_of_eq_false_left + theorem Mathlib.Tactic.CC.and_eq_of_eq_false_right + theorem Mathlib.Tactic.CC.and_eq_of_eq_true_left + theorem Mathlib.Tactic.CC.and_eq_of_eq_true_right + theorem Mathlib.Tactic.CC.eq_false_of_not_eq_true + theorem Mathlib.Tactic.CC.eq_false_of_or_eq_false_left + theorem Mathlib.Tactic.CC.eq_false_of_or_eq_false_right + theorem Mathlib.Tactic.CC.eq_true_of_and_eq_true_left + theorem Mathlib.Tactic.CC.eq_true_of_and_eq_true_right + theorem Mathlib.Tactic.CC.eq_true_of_not_eq_false + theorem Mathlib.Tactic.CC.false_of_a_eq_not_a + theorem Mathlib.Tactic.CC.if_eq_of_eq + theorem Mathlib.Tactic.CC.if_eq_of_eq_false + theorem Mathlib.Tactic.CC.if_eq_of_eq_true + theorem Mathlib.Tactic.CC.iff_eq_of_eq_true_left + theorem Mathlib.Tactic.CC.iff_eq_of_eq_true_right + theorem Mathlib.Tactic.CC.iff_eq_true_of_eq + theorem Mathlib.Tactic.CC.imp_eq_of_eq_false_left + theorem Mathlib.Tactic.CC.imp_eq_of_eq_false_right + theorem Mathlib.Tactic.CC.imp_eq_of_eq_true_left + theorem Mathlib.Tactic.CC.imp_eq_of_eq_true_right + theorem Mathlib.Tactic.CC.imp_eq_true_of_eq + theorem Mathlib.Tactic.CC.not_eq_of_eq_false + theorem Mathlib.Tactic.CC.not_eq_of_eq_true + theorem Mathlib.Tactic.CC.not_imp_eq_of_eq_false_right + theorem Mathlib.Tactic.CC.or_eq_of_eq + theorem Mathlib.Tactic.CC.or_eq_of_eq_false_left + theorem Mathlib.Tactic.CC.or_eq_of_eq_false_right + theorem Mathlib.Tactic.CC.or_eq_of_eq_true_left + theorem Mathlib.Tactic.CC.or_eq_of_eq_true_right Modified scripts/nolints.json 2024-04-24 12:37:42 9150835 chore(Data/List): add dates to all deprecated lemmas (#12337) Most of them go back to the port. ESTIMATED CHANGES Modified Mathlib/Data/List/Basic.lean Modified Mathlib/Data/List/Chain.lean Modified Mathlib/Data/List/Count.lean +/- theorem List.count_cons' Modified Mathlib/Data/List/Cycle.lean Modified Mathlib/Data/List/Indexes.lean Modified Mathlib/Data/List/Infix.lean Modified Mathlib/Data/List/InsertNth.lean Modified Mathlib/Data/List/Join.lean Modified Mathlib/Data/List/Nodup.lean Modified Mathlib/Data/List/NodupEquivFin.lean Modified Mathlib/Data/List/OfFn.lean Modified Mathlib/Data/List/Pairwise.lean +/- theorem List.pairwise_map' Modified Mathlib/Data/List/Rotate.lean Modified Mathlib/Data/List/Sort.lean Modified Mathlib/Data/List/ToFinsupp.lean 2024-04-24 12:37:41 7aace65 feat(List/rotate): migrate to `get`, new lemmas, golf (#12171) - Add `List.Nodup.rotate_congr_iff`, `List.cyclicPermutations_ne_nil`, `List.head?_cyclicPermutations`, `List.head_cyclicPermutations`, `List.cyclicPermutations_injective`, `List.cyclicPermutations_inj`. - Change `List.nthLe_cyclicPermutations` to `List.get_cyclicPermutations`. While the old lemma wasn't deprecated during port, the definition `List.nthLe` was, so I think that we can drop the lemma without a deprecation period. ESTIMATED CHANGES Modified Mathlib/Data/List/Rotate.lean - theorem List.IsRotated.cyclicPermutations - theorem List.Nodup.cyclicPermutations + theorem List.Nodup.rotate_congr_iff +/- theorem List.cyclicPermutations_eq_nil_iff + theorem List.cyclicPermutations_inj + theorem List.cyclicPermutations_injective + theorem List.cyclicPermutations_ne_nil + theorem List.get_cyclicPermutations + theorem List.head?_cyclicPermutations + theorem List.head_cyclicPermutations +/- theorem List.mem_cyclicPermutations_iff - theorem List.nthLe_cyclicPermutations 2024-04-24 11:33:34 dbc20ee chore: tidy various files (#12316) ESTIMATED CHANGES Modified Mathlib/Algebra/BigOperators/Fin.lean Modified Mathlib/Algebra/Group/WithOne/Defs.lean Modified Mathlib/Algebra/Module/Equiv.lean Modified Mathlib/Algebra/Order/GroupWithZero/Canonical.lean + theorem WithZero.coe_le_iff Modified Mathlib/Algebra/Order/Ring/Defs.lean Modified Mathlib/Algebra/Polynomial/Degree/Definitions.lean Modified Mathlib/Algebra/Polynomial/Derivative.lean Modified Mathlib/Analysis/Convex/Deriv.lean Modified Mathlib/Analysis/NormedSpace/AddTorsor.lean Modified Mathlib/CategoryTheory/Galois/Basic.lean Modified Mathlib/CategoryTheory/Galois/Decomposition.lean Modified Mathlib/Condensed/Equivalence.lean Modified Mathlib/Data/Finsupp/Defs.lean +/- theorem AddEquiv.finsuppUnique_symm Modified Mathlib/Data/Real/Sqrt.lean Modified Mathlib/GroupTheory/Perm/Cycle/Type.lean Modified Mathlib/GroupTheory/Perm/Sign.lean Modified Mathlib/GroupTheory/Submonoid/Inverses.lean Modified Mathlib/GroupTheory/Submonoid/Operations.lean Modified Mathlib/GroupTheory/Submonoid/Units.lean +/- theorem Subgroup.mem_of_mem_val_ofUnits Modified Mathlib/LinearAlgebra/Matrix/Charpoly/Basic.lean Modified Mathlib/LinearAlgebra/Matrix/Charpoly/Univ.lean Modified Mathlib/LinearAlgebra/TensorProduct/Finiteness.lean Modified Mathlib/Order/Filter/CardinalInter.lean Modified Mathlib/Probability/Distributions/Uniform.lean 2024-04-24 09:49:15 b6cdb4d chore: move gcd_eq_one_of_gcd_mul_right_eq_one_* earlier (#12365) These don't use any abstract algebra. ESTIMATED CHANGES Modified Mathlib/Data/Int/GCD.lean + theorem Int.gcd_eq_one_of_gcd_mul_right_eq_one_left + theorem Int.gcd_eq_one_of_gcd_mul_right_eq_one_right Modified Mathlib/RingTheory/Int/Basic.lean - theorem Int.gcd_eq_one_of_gcd_mul_right_eq_one_left - theorem Int.gcd_eq_one_of_gcd_mul_right_eq_one_right 2024-04-24 08:44:20 72b62af chore(Data/List/Basic): remove some long-deprecated unused lemmas (#12367) ESTIMATED CHANGES Modified Mathlib/Data/List/Basic.lean - theorem List.nthLe_attach Modified Mathlib/Data/List/Nodup.lean - theorem List.nthLe_eq_of_ne_imp_not_nodup Modified Mathlib/Data/List/Perm.lean - theorem List.Perm.erasep 2024-04-24 08:44:19 51ee739 feat(Inseparable): `Prod.map mk mk` is a quotient map (#12327) This is needed to prove continuity of binary arithmetic operations on the separation quotient. ESTIMATED CHANGES Modified Mathlib/Topology/Inseparable.lean + theorem SeparationQuotient.quotientMap_prodMap_mk 2024-04-24 07:36:59 d3917c3 doc(Algebra/Lie): fix typo (#12390) Fix namespace for online docs ESTIMATED CHANGES Modified Mathlib/Algebra/Lie/Derivation/Killing.lean 2024-04-24 07:36:58 ea9c984 chore: minor backports (#12389) ESTIMATED CHANGES Modified Mathlib/Analysis/NormedSpace/OperatorNorm/Basic.lean Modified Mathlib/Data/Set/Defs.lean Modified Mathlib/Order/SetNotation.lean 2024-04-24 06:52:08 e1f6f66 feat: add theorem about order preservation of `Real.toNNReal` (#12369) Add following theorem: if `r` and `p` are real and `r.toNNReal < p.toNNReal`, then `r < p` without any assumptions needed. ESTIMATED CHANGES Modified Mathlib/Data/Real/NNReal.lean + theorem Real.lt_of_toNNReal_lt 2024-04-24 06:52:07 2915939 feat: more integrability statements for iterated derivatives of Schwartz functions (#12152) ESTIMATED CHANGES Modified Mathlib/Analysis/Distribution/SchwartzSpace.lean + def MeasureTheory.Measure.integrablePower + def SchwartzMap.compCLMOfAntilipschitz + theorem SchwartzMap.compCLMOfAntilipschitz_apply + def SchwartzMap.compCLMOfContinuousLinearEquiv + theorem SchwartzMap.compCLMOfContinuousLinearEquiv_apply + theorem SchwartzMap.compCLM_apply + theorem SchwartzMap.integrable_of_le_of_pow_mul_le + theorem SchwartzMap.integrable_pow_mul_iteratedFDeriv + theorem SchwartzMap.integrable_pow_neg_integrablePower + theorem SchwartzMap.integral_pow_mul_iteratedFDeriv_le + theorem SchwartzMap.integral_pow_mul_le_of_le_of_pow_mul_le + theorem SchwartzMap.pow_mul_le_of_le_of_pow_mul_le Modified Mathlib/MeasureTheory/Function/L1Space.lean + theorem ContinuousLinearEquiv.integrable_comp_iff + theorem LinearIsometryEquiv.integrable_comp_iff 2024-04-24 05:40:44 7e72dff chore: unify date formatting in lemma deprecations (#12334) - consistently use the YYYY-MM-DD format - when easily possible, put the date on the same line as the `deprecated` attribute - when easily possible, format the entire declaration on the same line Why these changes? - consistency makes it easier for tools to parse this information - compactness: I don't see a good reason for these declarations taking up more space than needed; as I understand it, deprecated lemmas are not supposed to be used in mathlib anyway - putting the date on the same line as the attribute makes it easier to discover un-dated deprecations; they also ease writing a tool to replace these by a machine-readable version using leanprover/lean4#3968 ESTIMATED CHANGES Modified Mathlib/Algebra/Associated.lean Modified Mathlib/Algebra/BigOperators/Basic.lean Modified Mathlib/Algebra/Group/Units.lean Modified Mathlib/Algebra/Lie/Weights/Linear.lean Modified Mathlib/Algebra/Module/Basic.lean +/- theorem two_smul' Modified Mathlib/Algebra/Order/BigOperators/Ring/Finset.lean Modified Mathlib/Algebra/Order/Ring/Defs.lean Modified Mathlib/Algebra/Polynomial/Div.lean Modified Mathlib/Analysis/Calculus/InverseFunctionTheorem/FDeriv.lean Modified Mathlib/Analysis/Fourier/FourierTransform.lean Modified Mathlib/Analysis/InnerProductSpace/TwoDim.lean Modified Mathlib/Analysis/LocallyConvex/Basic.lean Modified Mathlib/Analysis/LocallyConvex/Bounded.lean Modified Mathlib/Analysis/NormedSpace/FiniteDimension.lean Modified Mathlib/Analysis/NormedSpace/Multilinear/Basic.lean Modified Mathlib/Analysis/SpecialFunctions/Gaussian/FourierTransform.lean Modified Mathlib/Analysis/SpecialFunctions/Pow/Real.lean Modified Mathlib/Data/Complex/Abs.lean +/- theorem Complex.int_cast_abs Modified Mathlib/Data/ENNReal/Basic.lean Modified Mathlib/Data/Finset/Card.lean Modified Mathlib/Data/Finset/Image.lean Modified Mathlib/Data/Int/Defs.lean Modified Mathlib/Data/Int/ModEq.lean Modified Mathlib/Data/Multiset/Basic.lean Modified Mathlib/Data/NNRat/Defs.lean Modified Mathlib/Data/Nat/Digits.lean Modified Mathlib/Data/Rat/Defs.lean +/- theorem Rat.divInt_neg_one_one +/- theorem Rat.divInt_zero_one +/- theorem Rat.sub_def'' Modified Mathlib/Data/Real/NNReal.lean Modified Mathlib/Data/Subtype.lean Modified Mathlib/Data/ZMod/Quotient.lean Modified Mathlib/Deprecated/Submonoid.lean Modified Mathlib/FieldTheory/PrimitiveElement.lean Modified Mathlib/LinearAlgebra/FiniteDimensional.lean Modified Mathlib/Logic/Function/Conjugate.lean Modified Mathlib/MeasureTheory/Function/L1Space.lean Modified Mathlib/MeasureTheory/Function/SimpleFunc.lean Modified Mathlib/MeasureTheory/Function/StronglyMeasurable/Basic.lean Modified Mathlib/RingTheory/UniqueFactorizationDomain.lean Modified Mathlib/Topology/Bases.lean Modified Mathlib/Topology/CompactOpen.lean Modified Mathlib/Topology/MetricSpace/ProperSpace.lean Modified Mathlib/Topology/Order.lean 2024-04-24 03:33:49 0e99153 chore: remove one beta_reduce and a porting note (#12377) There is one more `beta_reduce` in this file with a porting note, but removing that one still does not work. ESTIMATED CHANGES Modified Mathlib/Algebra/MonoidAlgebra/Basic.lean 2024-04-24 01:43:25 65b8f4f feat(LinearAlgebra/UnitaryGroup): special orthogonal group (#11708) ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/UnitaryGroup.lean + theorem Matrix.mem_specialOrthogonalGroup_iff + theorem Matrix.mem_specialUnitaryGroup_iff 2024-04-24 00:10:43 b331c4b chore(Init): add deprecation dates; remove long-deprecated items (#12347) All removed items are virtually unused in mathlib and have been deprecated for over a year. ESTIMATED CHANGES Modified Mathlib/Init/Core.lean - inductive BinTree - def Std.Prec.arrow - def Std.Prec.max - def Std.Prec.maxPlus - def Std.Priority.default - def Std.Priority.max Modified Mathlib/Init/Data/List/Basic.lean - def List.findIndex Modified Mathlib/Init/Logic.lean - theorem Decidable.not_or_iff_and_not - theorem Implies.trans - def Implies - def NonContradictory - theorem and_assoc' - theorem and_comm' - theorem if_t_t - theorem or_assoc' - theorem or_comm' - theorem trans_rel_left - theorem trans_rel_right Modified Mathlib/RingTheory/Int/Basic.lean Modified scripts/nolints.json Modified scripts/noshake.json 2024-04-23 23:19:42 1a5d128 feat: `NNRat.cast` (#11203) Define the canonical coercion from the nonnegative rationals to any division semiring. From LeanAPAP ESTIMATED CHANGES Modified Mathlib/Algebra/DirectLimit.lean Modified Mathlib/Algebra/Field/Basic.lean Modified Mathlib/Algebra/Field/Defs.lean + def NNRat.castRec + theorem NNRat.cast_def + theorem NNRat.smul_def + theorem NNRat.smul_one_eq_coe Modified Mathlib/Algebra/Field/IsField.lean Modified Mathlib/Algebra/Field/MinimalAxioms.lean Modified Mathlib/Algebra/Field/Opposite.lean + theorem MulOpposite.op_nnratCast +/- theorem MulOpposite.op_ratCast + theorem MulOpposite.unop_nnratCast +/- theorem MulOpposite.unop_ratCast Modified Mathlib/Algebra/Field/ULift.lean + theorem ULift.down_nnratCast + theorem ULift.up_nnratCast Modified Mathlib/Algebra/Module/Basic.lean Modified Mathlib/Algebra/Order/Archimedean.lean Modified Mathlib/Algebra/Order/CauSeq/Completion.lean + theorem CauSeq.Completion.ofRat_nnratCast Modified Mathlib/Algebra/Order/Field/InjSurj.lean Modified Mathlib/Algebra/Order/Nonneg/Field.lean + theorem NNRat.cast_nonneg + theorem Nonneg.coe_nnqsmul + theorem Nonneg.coe_nnratCast + theorem Nonneg.mk_nnqsmul + theorem Nonneg.mk_nnratCast + theorem nnqsmul_nonneg Modified Mathlib/Algebra/Polynomial/Basic.lean + theorem Polynomial.nnqsmul_eq_C_mul Modified Mathlib/Algebra/Quaternion.lean + theorem Quaternion.coe_nnratCast + theorem Quaternion.imI_nnratCast + theorem Quaternion.imJ_nnratCast + theorem Quaternion.imK_nnratCast + theorem Quaternion.im_nnratCast + theorem Quaternion.re_nnratCast Modified Mathlib/Algebra/Star/Basic.lean + theorem star_nnratCast Modified Mathlib/Algebra/Star/SelfAdjoint.lean + theorem isSelfAdjoint_nnratCast + theorem selfAdjoint.val_nnqsmul + theorem selfAdjoint.val_nnratCast Modified Mathlib/CategoryTheory/Preadditive/Schur.lean Modified Mathlib/Data/Complex/Basic.lean + theorem Complex.im_nnratCast + theorem Complex.ofReal_nnqsmul + theorem Complex.ofReal_nnratCast + theorem Complex.re_nnratCast Modified Mathlib/Data/NNRat/Defs.lean +/- theorem NNRat.coe_mk +/- theorem NNRat.coe_natCast +/- theorem NNRat.coe_one +/- theorem NNRat.coe_zero + theorem NNRat.val_eq_cast Modified Mathlib/Data/NNRat/Lemmas.lean Modified Mathlib/Data/Rat/Cast/Defs.lean + theorem NNRat.cast_add_of_ne_zero + theorem NNRat.cast_comm + theorem NNRat.cast_commute + theorem NNRat.cast_divNat_of_ne_zero + theorem NNRat.cast_div_of_ne_zero + theorem NNRat.cast_inv_of_ne_zero + theorem NNRat.cast_mul_of_ne_zero + theorem NNRat.cast_natCast + theorem NNRat.cast_ofNat + theorem NNRat.cast_one + theorem NNRat.cast_zero + theorem NNRat.commute_cast + theorem eq_nnratCast + theorem map_nnratCast Modified Mathlib/Data/Rat/Field.lean Modified Mathlib/Data/Rat/Init.lean + theorem NNRat.cast_eq_id + theorem NNRat.cast_id Modified Mathlib/Data/Real/Basic.lean + theorem Real.cauchy_nnratCast + theorem Real.ofCauchy_nnratCast Modified Mathlib/Data/ZMod/Basic.lean Modified Mathlib/FieldTheory/IsAlgClosed/AlgebraicClosure.lean Modified Mathlib/FieldTheory/PerfectClosure.lean Modified Mathlib/FieldTheory/RatFunc.lean Modified Mathlib/FieldTheory/SplittingField/Construction.lean Modified Mathlib/FieldTheory/Subfield.lean + theorem SubfieldClass.coe_nnqsmul + theorem SubfieldClass.coe_nnratCast + theorem SubfieldClass.nnqsmul_mem + theorem SubfieldClass.nnratCast_mem Modified Mathlib/FieldTheory/Subfield/Order.lean Modified Mathlib/LinearAlgebra/FiniteDimensional.lean Modified Mathlib/Logic/Equiv/TransferInstance.lean Modified Mathlib/Order/Filter/FilterProduct.lean Modified Mathlib/RingTheory/AdjoinRoot.lean Modified Mathlib/RingTheory/DedekindDomain/Ideal.lean Modified Mathlib/RingTheory/HahnSeries/Summable.lean Modified Mathlib/RingTheory/Ideal/Quotient.lean Modified Mathlib/RingTheory/IntegralDomain.lean Modified Mathlib/RingTheory/Localization/FractionRing.lean Modified Mathlib/RingTheory/OreLocalization/Basic.lean Modified Mathlib/RingTheory/SimpleModule.lean Modified Mathlib/RingTheory/Subring/Basic.lean Modified Mathlib/Topology/Algebra/UniformField.lean 2024-04-23 19:39:31 2ae6162 feat(Algebra/Lie): prove derivations are inner in finite-dimensional Killing Lie algebra (#12250) This finishes the proof that all derivations in a finite-dimensional Lie algebra with non-degenerate Killing form are inner derivations, a project discussed in [this thread](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/Derivations.20on.20Lie.20algebras) with @ocfnash. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Lie/Derivation/AdjointAction.lean + theorem LieDerivation.injective_ad_of_center_eq_bot Added Mathlib/Algebra/Lie/Derivation/Killing.lean + theorem LieDerivation.Killing.ad_apply_eq_zero_iff + theorem LieDerivation.Killing.ad_mem_ker_killingForm_ad_range_of_mem_orthogonal + theorem LieDerivation.Killing.ad_mem_orthogonal_of_mem_orthogonal + theorem LieDerivation.Killing.exists_eq_ad + theorem LieDerivation.Killing.killingForm_restrict_range_ad + theorem LieDerivation.Killing.killingForm_restrict_range_ad_nondegenerate + theorem LieDerivation.Killing.range_ad_eq_top Modified Mathlib/Algebra/Lie/Killing.lean + theorem LieIdeal.toSubmodule_killingCompl + theorem LieModule.traceForm_isSymm Modified Mathlib/Algebra/Lie/Submodule.lean + theorem LieHom.IsIdealMorphism.eq Modified Mathlib/LinearAlgebra/BilinearForm/Orthogonal.lean + theorem LinearMap.BilinForm.eq_top_of_restrict_nondegenerate_of_orthogonal_eq_bot +/- theorem LinearMap.BilinForm.finrank_add_finrank_orthogonal + theorem LinearMap.BilinForm.inf_orthogonal_self_le_ker_restrict + theorem LinearMap.BilinForm.orthogonal_bot + theorem LinearMap.BilinForm.orthogonal_eq_bot_iff + theorem LinearMap.BilinForm.orthogonal_eq_top_iff +/- theorem LinearMap.BilinForm.restrict_nondegenerate_iff_isCompl_orthogonal +/- theorem LinearMap.BilinForm.restrict_nondegenerate_of_isCompl_orthogonal 2024-04-23 19:11:46 f0ba14a chore(CategoryTheory/DiscreteCategory): remove unecessary line in proof (#12382) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/DiscreteCategory.lean 2024-04-23 18:45:27 ec75ee1 feat(LinearAlgebra/Eigenspace/Zero): results on endomorphisms with eigenvalue 0 (#12373) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/LinearAlgebra/Eigenspace/Zero.lean + theorem IsNilpotent.charpoly_eq_X_pow_finrank + theorem LinearMap.charpoly_constantCoeff_eq_zero_iff + theorem LinearMap.charpoly_eq_X_pow_iff + theorem LinearMap.charpoly_nilpotent_tfae + theorem LinearMap.finrank_maximalGeneralizedEigenspace + theorem LinearMap.hasEigenvalue_zero_tfae + theorem LinearMap.not_hasEigenvalue_zero_tfae 2024-04-23 17:27:58 add7175 feat: When the symmetric difference has finite measure (#12370) Add the following lemma: is `s` and `t` are two measurable sets such that `s` and `s ∆ t` have finite measures, then so does `t`. ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Measure/MeasureSpace.lean + theorem MeasureTheory.measure_eq_top_iff_of_symmDiff + theorem MeasureTheory.measure_ne_top_iff_of_symmDiff 2024-04-23 17:02:48 b94f96c chore(LinearAlgebra/Charpoly/ToMatrix): characteristic polynomials of isomorphic endomorphisms are equal (#12359) ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/Charpoly/ToMatrix.lean + theorem LinearEquiv.charpoly_conj +/- theorem LinearMap.charpoly_prodMap 2024-04-23 14:29:29 bdfbc7f chore: split RingTheory.Nilpotent (#12184) `Mathlib.RingTheory.Nilpotent` has a few very simple definitions (`Mathlib.Data.Nat.Lattice` is sufficient to state them), but needs some pretty heavy imports (ideals, linear algebra) towards the end. This change moves the heavier parts into a new file. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/CharP/Reduced.lean Modified Mathlib/Algebra/Lie/Nilpotent.lean Modified Mathlib/Algebra/Squarefree/Basic.lean Modified Mathlib/AlgebraicGeometry/PrimeSpectrum/Basic.lean Modified Mathlib/AlgebraicGeometry/Properties.lean Modified Mathlib/Dynamics/Newton.lean Modified Mathlib/LinearAlgebra/Eigenspace/Basic.lean Modified Mathlib/RingTheory/Finiteness.lean Modified Mathlib/RingTheory/LocalProperties.lean Deleted Mathlib/RingTheory/Nilpotent.lean - theorem Commute.add_pow_add_eq_zero_of_pow_eq_zero - theorem Commute.add_pow_eq_zero_of_add_le_succ_of_pow_eq_zero - theorem Commute.isNilpotent_add - theorem Commute.isNilpotent_mul_left - theorem Commute.isNilpotent_mul_right - theorem Commute.isNilpotent_sub - theorem IsNilpotent.eq_zero - theorem IsNilpotent.isUnit_add_left_of_commute - theorem IsNilpotent.isUnit_add_one - theorem IsNilpotent.isUnit_add_right_of_commute - theorem IsNilpotent.isUnit_one_add - theorem IsNilpotent.isUnit_one_sub - theorem IsNilpotent.isUnit_sub_one - theorem IsNilpotent.map - theorem IsNilpotent.map_iff - theorem IsNilpotent.mk - theorem IsNilpotent.neg - theorem IsNilpotent.of_pow - theorem IsNilpotent.pow_iff_pos - theorem IsNilpotent.pow_of_pos - theorem IsNilpotent.pow_succ - theorem IsNilpotent.smul - theorem IsNilpotent.zero - def IsNilpotent - theorem IsRadical.of_dvd - def IsRadical - theorem IsUnit.isNilpotent_mul_unit_of_commute_iff - theorem IsUnit.isNilpotent_unit_mul_of_commute_iff - theorem LinearMap.isNilpotent_mulLeft_iff - theorem LinearMap.isNilpotent_mulRight_iff - theorem LinearMap.isNilpotent_toMatrix_iff - theorem Module.End.IsNilpotent.mapQ - theorem NoZeroSMulDivisors.isReduced - theorem Prime.isRadical - theorem RingHom.ker_isRadical_iff_reduced_of_surjective - theorem eq_zero_of_nilpotencyClass_eq_one - theorem isNilpotent_iff_eq_zero - theorem isNilpotent_neg_iff - theorem isNilpotent_of_pos_nilpotencyClass - theorem isNilpotent_of_subsingleton - theorem isNilpotent_sum - theorem isRadical_iff_pow_one_lt - theorem isRadical_iff_span_singleton - theorem isReduced_iff_pow_one_lt - theorem isReduced_of_injective - theorem mem_nilradical - theorem nilpotencyClass_eq_one - theorem nilpotencyClass_eq_succ_iff - theorem nilpotencyClass_eq_zero_of_subsingleton - theorem nilpotencyClass_zero - theorem nilpotent_iff_mem_prime - def nilradical - theorem nilradical_eq_sInf - theorem nilradical_eq_zero - theorem nilradical_le_prime - theorem not_isNilpotent_one - theorem pos_nilpotencyClass_iff - theorem pow_nilpotencyClass - theorem pow_pred_nilpotencyClass - theorem zero_isRadical_iff Added Mathlib/RingTheory/Nilpotent/Basic.lean + theorem Commute.add_pow_add_eq_zero_of_pow_eq_zero + theorem Commute.add_pow_eq_zero_of_add_le_succ_of_pow_eq_zero + theorem Commute.isNilpotent_add + theorem Commute.isNilpotent_sub + theorem IsNilpotent.isUnit_add_left_of_commute + theorem IsNilpotent.isUnit_add_one + theorem IsNilpotent.isUnit_add_right_of_commute + theorem IsNilpotent.isUnit_one_add + theorem IsNilpotent.isUnit_one_sub + theorem IsNilpotent.isUnit_sub_one + theorem IsNilpotent.neg + theorem IsNilpotent.smul + theorem IsRadical.of_dvd + theorem NoZeroSMulDivisors.isReduced + theorem Prime.isRadical + theorem isNilpotent_neg_iff + theorem isNilpotent_sum + theorem isReduced_iff_pow_one_lt + theorem zero_isRadical_iff Added Mathlib/RingTheory/Nilpotent/Defs.lean + theorem Commute.isNilpotent_mul_left + theorem Commute.isNilpotent_mul_right + theorem IsNilpotent.eq_zero + theorem IsNilpotent.map + theorem IsNilpotent.map_iff + theorem IsNilpotent.mk + theorem IsNilpotent.of_pow + theorem IsNilpotent.pow_iff_pos + theorem IsNilpotent.pow_of_pos + theorem IsNilpotent.pow_succ + theorem IsNilpotent.zero + def IsNilpotent + def IsRadical + theorem IsUnit.isNilpotent_mul_unit_of_commute_iff + theorem IsUnit.isNilpotent_unit_mul_of_commute_iff + theorem eq_zero_of_nilpotencyClass_eq_one + theorem isNilpotent_iff_eq_zero + theorem isNilpotent_of_pos_nilpotencyClass + theorem isNilpotent_of_subsingleton + theorem isRadical_iff_pow_one_lt + theorem isReduced_of_injective + theorem nilpotencyClass_eq_one + theorem nilpotencyClass_eq_succ_iff + theorem nilpotencyClass_eq_zero_of_subsingleton + theorem nilpotencyClass_zero + theorem not_isNilpotent_one + theorem pos_nilpotencyClass_iff + theorem pow_nilpotencyClass + theorem pow_pred_nilpotencyClass Added Mathlib/RingTheory/Nilpotent/Lemmas.lean + theorem LinearMap.isNilpotent_mulLeft_iff + theorem LinearMap.isNilpotent_mulRight_iff + theorem LinearMap.isNilpotent_toMatrix_iff + theorem Module.End.IsNilpotent.mapQ + theorem RingHom.ker_isRadical_iff_reduced_of_surjective + theorem isRadical_iff_span_singleton + theorem mem_nilradical + theorem nilpotent_iff_mem_prime + def nilradical + theorem nilradical_eq_sInf + theorem nilradical_eq_zero + theorem nilradical_le_prime Modified Mathlib/RingTheory/Noetherian.lean Modified Mathlib/RingTheory/Polynomial/Nilpotent.lean Modified Mathlib/RingTheory/QuotientNilpotent.lean 2024-04-23 13:39:36 14b8045 chore(GroupTheory/Perm): some migration nthLe -> get (#12362) ESTIMATED CHANGES Modified Mathlib/GroupTheory/Perm/Cycle/Basic.lean Modified Mathlib/GroupTheory/Perm/Cycle/Concrete.lean Modified Mathlib/GroupTheory/Perm/List.lean + theorem List.formPerm_apply_get + theorem List.formPerm_pow_apply_get 2024-04-23 13:13:05 81d26b1 chore(CategoryTheory/Adjunction): simplify some proofs in `Adjunction/Reflective` (#12375) Some results in this file can be extracted from results added in #12344 ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Adjunction/Reflective.lean 2024-04-23 11:47:35 c160989 feat(RingTheory/Valuation/RankOne): add rank one valuations (#12156) Add the definition of rank one valuation, as well as some basic lemmas. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/RingTheory/Valuation/RankOne.lean + theorem Valuation.RankOne.hom_eq_zero_iff + theorem Valuation.RankOne.nontrivial + theorem Valuation.RankOne.strictMono + def Valuation.RankOne.unit + theorem Valuation.RankOne.unit_ne_one + theorem Valuation.RankOne.zero_of_hom_zero 2024-04-23 11:20:28 90e480d doc(NumberTheory/Harmonic): fix formatting glitch (#12368) Fix a rogue non-breaking space in file header ESTIMATED CHANGES Modified Mathlib/NumberTheory/Harmonic/EulerMascheroni.lean 2024-04-23 09:54:31 cb179b1 chore: Final cleanup before `NNRat.cast` (#12360) This is the parts of the diff of #11203 which don't mention `NNRat.cast`. * Use more `where` notation. * Write `qsmul := _` instead of `qsmul := qsmulRec _` to make the instances more robust to definition changes. * Delete `qsmulRec`. * Move `qsmul` before `ratCast_def` in instance declarations. * Name more instances. * Rename `rat_smul` to `qsmul`. ESTIMATED CHANGES Modified Mathlib/Algebra/DirectLimit.lean Modified Mathlib/Algebra/Field/Defs.lean - def qsmulRec Modified Mathlib/Algebra/Field/IsField.lean Modified Mathlib/Algebra/Field/MinimalAxioms.lean Modified Mathlib/Algebra/Field/Opposite.lean Modified Mathlib/Algebra/Field/ULift.lean +/- theorem ULift.down_ratCast +/- theorem ULift.up_ratCast Modified Mathlib/Algebra/Order/CauSeq/Completion.lean +/- theorem CauSeq.Completion.ofRat_ratCast Modified Mathlib/Algebra/Polynomial/Basic.lean + theorem Polynomial.qsmul_eq_C_mul - theorem Polynomial.rat_smul_eq_C_mul Modified Mathlib/CategoryTheory/Preadditive/Schur.lean Modified Mathlib/Data/Complex/Basic.lean Modified Mathlib/Data/Rat/Field.lean Modified Mathlib/Data/Real/Basic.lean Modified Mathlib/Data/ZMod/Basic.lean Modified Mathlib/FieldTheory/IsAlgClosed/AlgebraicClosure.lean Modified Mathlib/FieldTheory/PerfectClosure.lean Modified Mathlib/FieldTheory/RatFunc.lean Modified Mathlib/FieldTheory/SplittingField/Construction.lean Modified Mathlib/FieldTheory/Subfield.lean + theorem SubfieldClass.coe_qsmul - theorem SubfieldClass.coe_rat_smul + theorem SubfieldClass.qsmul_mem - theorem SubfieldClass.rat_smul_mem Modified Mathlib/LinearAlgebra/FiniteDimensional.lean Modified Mathlib/Logic/Equiv/TransferInstance.lean Modified Mathlib/RingTheory/AdjoinRoot.lean Modified Mathlib/RingTheory/DedekindDomain/Ideal.lean Modified Mathlib/RingTheory/HahnSeries/Summable.lean Modified Mathlib/RingTheory/Ideal/Quotient.lean Modified Mathlib/RingTheory/IntegralDomain.lean Modified Mathlib/RingTheory/Localization/FractionRing.lean Modified Mathlib/RingTheory/OreLocalization/Basic.lean Modified Mathlib/RingTheory/SimpleModule.lean Modified Mathlib/RingTheory/Subring/Basic.lean Modified Mathlib/Topology/Algebra/UniformField.lean 2024-04-23 09:54:29 b57f05f chore: remove 4 porting notes about continuity (#12358) ESTIMATED CHANGES Modified Mathlib/Analysis/SpecialFunctions/Integrals.lean 2024-04-23 09:54:28 fe756d6 feat(CategoryTheory/Adjunction): given an abstract isomorphism, the counit is an isomorphism (#12344) ... in case the left adjoint is fully faithful. We also give the dual result about the unit in case the right adjoint is fully faithful. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Adjunction/FullyFaithful.lean + theorem CategoryTheory.isIso_counit_app_iff_mem_essImage + theorem CategoryTheory.isIso_counit_app_of_iso + theorem CategoryTheory.isIso_unit_app_iff_mem_essImage + theorem CategoryTheory.isIso_unit_app_of_iso 2024-04-23 08:47:53 609dbd0 feat: add lemma one_div_mul_eq_div (#12349) Add a specification of `div_mul_eq_mul_div` which combines it with `one_mul`. ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Basic.lean + theorem one_div_mul_eq_div 2024-04-23 08:03:19 5b9f687 chore(Algebra/Lie/EngelSubalgebra): simp lemma engel_zero (#12357) The Engel subalgebra of the zero element is the entire Lie algebra. ESTIMATED CHANGES Modified Mathlib/Algebra/Lie/EngelSubalgebra.lean + theorem LieSubalgebra.engel_zero 2024-04-23 08:03:18 94191c7 fix(Algebra/Module/LinearMap/Polynomial): fix name of polyCharpoly_coeff_map (#12356) there is nothing `coeff` about this lemma ESTIMATED CHANGES Modified Mathlib/Algebra/Module/LinearMap/Polynomial.lean - theorem LinearMap.polyCharpoly_coeff_map + theorem LinearMap.polyCharpoly_map_eq_charpoly 2024-04-23 06:58:22 03b4714 chore: Move `WithZero` material depending on `GroupWithZero` (#12351) Everything under `Algebra.Group` should be additivisable. Therefore I move the `GroupWithZero` instances for `WithZero` from `Algebra.Group.WithOne.Defs` and the whole of `Algebra.Group.WithOne.Units` to a new file `Algebra.GroupWithZero.WithZero`. I credit Mario for https://github.com/leanprover-community/mathlib/commit/ad92a9ba47f417916aab365d13db653fa8991a84 and Johan for https://github.com/leanprover-community/mathlib/pull/762. Use the opportunity to slightly clean up the code: * Replace `:=` by `where` in instance declarations * Add missing explicit arguments to `coe` lemmas * Add missing `section ... end` ESTIMATED CHANGES Modified Counterexamples/LinearOrderWithPosMulPosEqZero.lean Modified Mathlib.lean Modified Mathlib/Algebra/Group/WithOne/Basic.lean Modified Mathlib/Algebra/Group/WithOne/Defs.lean - theorem WithZero.coe_div - theorem WithZero.coe_inv - theorem WithZero.coe_mul - theorem WithZero.coe_one - theorem WithZero.coe_pow - theorem WithZero.coe_zpow - theorem WithZero.inv_zero Deleted Mathlib/Algebra/Group/WithOne/Units.lean - def WithZero.unitsWithZeroEquiv Added Mathlib/Algebra/GroupWithZero/WithZero.lean + theorem WithZero.coe_div + theorem WithZero.coe_inv + theorem WithZero.coe_mul + theorem WithZero.coe_one + theorem WithZero.coe_pow + theorem WithZero.coe_zpow + def WithZero.unitsWithZeroEquiv Modified Mathlib/Algebra/Order/Field/Canonical/Defs.lean Renamed Mathlib/Algebra/Order/Monoid/WithZero.lean to Mathlib/Algebra/Order/GroupWithZero/Canonical.lean Modified Mathlib/Algebra/Order/Hom/Monoid.lean Modified Mathlib/Algebra/Order/Monoid/ToMulBot.lean Modified Mathlib/Algebra/Order/Ring/Nat.lean Modified Mathlib/Algebra/Ring/WithZero.lean 2024-04-23 06:08:46 e408da1 feat(Archive): Buffon's Needle (#10189) [Zulip discussion](https://leanprover.zulipchat.com/#narrow/stream/113488-general/topic/Buffon's.20Needle/near/419359856) ESTIMATED CHANGES Modified Archive.lean Added Archive/Wiedijk100Theorems/BuffonsNeedle.lean + theorem BuffonsNeedle.buffon_integral + theorem BuffonsNeedle.buffon_long + theorem BuffonsNeedle.buffon_short + theorem BuffonsNeedle.integrable_needleCrossesIndicator + theorem BuffonsNeedle.integral_arcsin_to_pi_div_two_min + theorem BuffonsNeedle.integral_min_eq_two_mul + theorem BuffonsNeedle.integral_zero_to_arcsin_min + theorem BuffonsNeedle.intervalIntegrable_min_const_sin_mul + theorem BuffonsNeedle.measurable_needleCrossesIndicator + def BuffonsNeedle.needleProjX + theorem BuffonsNeedle.short_needle_inter_eq + theorem BuffonsNeedle.stronglyMeasurable_needleCrossesIndicator + theorem BuffonsNeedle.volume_needleSpace Modified docs/100.yaml 2024-04-23 04:59:54 61ef41d chore: move NormalizedGCDMonoid ℕ to reduce imports (#12341) Previously `Mathlib.GroupTheory.Perm.Fin` knew about `LinearMap` for no good reason, because it relied on `Mathlib.RingTheory.Int.Basic` for some basic things, but that file also has heavy imports. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/CharP/CharAndCard.lean Modified Mathlib/Algebra/GCDMonoid/Div.lean Added Mathlib/Algebra/GCDMonoid/Nat.lean + theorem gcd_eq_nat_gcd + theorem lcm_eq_nat_lcm Modified Mathlib/GroupTheory/Exponent.lean Modified Mathlib/GroupTheory/Perm/Cycle/Type.lean Modified Mathlib/GroupTheory/Perm/Fin.lean Modified Mathlib/RingTheory/Int/Basic.lean - theorem gcd_eq_nat_gcd - theorem lcm_eq_nat_lcm 2024-04-23 03:32:50 21e9965 chore(Condensed): make the discrete-underlying adjunction more concrete (#12343) This PR changes the definition of the "underlying set" of a condensed set to the value at `CompHaus.of PUnit` instead of an arbitrary terminal object. This specific terminal object has the nice definitional property of containing exactly one element. ESTIMATED CHANGES Modified Mathlib/Condensed/Discrete.lean 2024-04-23 03:32:49 cf0d5d4 chore(List): drop primed deprecated lemmas (#12307) Cherry-picked from #9607 ESTIMATED CHANGES Modified Mathlib/Data/List/Basic.lean - theorem List.concat_eq_append' - theorem List.length_concat' - theorem List.subset_append_of_subset_right' - theorem List.take_one_drop_eq_of_lt_length' 2024-04-23 03:32:49 65e0bd6 chore(List): drop some deprecated lemmas (#12306) Cherry-picked from #9607 ESTIMATED CHANGES Modified Mathlib/Data/List/Enum.lean - theorem List.nthLe_enum - theorem List.nthLe_enumFrom Modified Mathlib/Data/List/GetD.lean - theorem List.getD_eq_nthLe - theorem List.getI_eq_nthLe 2024-04-23 03:32:48 a1bf762 chore: split out Ideal.IsPrimary (#12296) This splits out a small but self-contained part of RingTheory.Ideal.Operations. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/RingTheory/Ideal/AssociatedPrime.lean Added Mathlib/RingTheory/Ideal/IsPrimary.lean + def Ideal.IsPrimary + theorem Ideal.IsPrime.isPrimary + theorem Ideal.isPrimary_inf + theorem Ideal.isPrime_radical + theorem Ideal.mem_radical_of_pow_mem Modified Mathlib/RingTheory/Ideal/MinimalPrime.lean Modified Mathlib/RingTheory/Ideal/Operations.lean - def Ideal.IsPrimary - theorem Ideal.IsPrime.isPrimary - theorem Ideal.isPrimary_inf - theorem Ideal.isPrime_radical - theorem Ideal.mem_radical_of_pow_mem Modified Mathlib/RingTheory/JacobsonIdeal.lean 2024-04-23 03:06:37 1cb427d chore(Condensed): add `PreservesFiniteProduct` instances for sheaves on `Profinite` and `Stonean` (#12345) ESTIMATED CHANGES Modified Mathlib/Condensed/Explicit.lean 2024-04-23 01:17:08 16e2255 fix: generalize index types of `iSup` to Sort (#12114) This breaks a few `simp` proofs which were expecting these lemmas to apply to the data binders but not the prop binders. ESTIMATED CHANGES Modified Mathlib/Algebra/Lie/Submodule.lean +/- theorem LieSubmodule.iSup_eq_top_iff_coe_toSubmodule Modified Mathlib/Algebra/Module/Torsion.lean Modified Mathlib/Analysis/LocallyConvex/Barrelled.lean +/- theorem Seminorm.continuous_iSup Modified Mathlib/Analysis/Seminorm.lean +/- theorem Seminorm.bddAbove_of_absorbent +/- theorem Seminorm.closedBall_iSup Modified Mathlib/FieldTheory/Adjoin.lean Modified Mathlib/FieldTheory/PurelyInseparable.lean Modified Mathlib/LinearAlgebra/Dual.lean +/- theorem Submodule.dualAnnihilator_iSup_eq +/- theorem Submodule.dualCoannihilator_iSup_eq +/- theorem Submodule.iSup_dualAnnihilator_le_iInf Modified Mathlib/LinearAlgebra/LinearIndependent.lean Modified Mathlib/LinearAlgebra/Span.lean +/- theorem LinearMap.ext_on_range +/- theorem Submodule.span_range_eq_iSup Modified Mathlib/Order/Filter/Basic.lean + theorem Filter.iInf_principal' +/- theorem Filter.iInf_principal Modified Mathlib/RingTheory/Finiteness.lean +/- theorem Submodule.fg_iSup Modified Mathlib/Topology/Order.lean 2024-04-22 18:54:11 de6ffbc chore: Rename `Int` and `Rat` instances (#12235) Fix a few names and deduplicate the `AddCommGroup ℤ` instance ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Int.lean Modified Mathlib/Algebra/Group/Nat.lean Modified Mathlib/Algebra/Group/ULift.lean Modified Mathlib/Algebra/Order/Group/Int.lean Modified Mathlib/Algebra/Order/Group/Nat.lean Modified Mathlib/Algebra/Order/Ring/Int.lean Modified Mathlib/Algebra/Order/Ring/Nat.lean Modified Mathlib/Algebra/Polynomial/Basic.lean Modified Mathlib/Algebra/Ring/Int.lean Modified Mathlib/Algebra/Ring/Nat.lean Modified Mathlib/Analysis/Normed/Field/Basic.lean Modified Mathlib/Analysis/Normed/Group/Basic.lean Modified Mathlib/Data/Int/Cast/Lemmas.lean Modified Mathlib/Data/Int/ConditionallyCompleteOrder.lean Modified Mathlib/Data/Int/Defs.lean Modified Mathlib/Data/Nat/Cast/Basic.lean Modified Mathlib/Data/Nat/Defs.lean Modified Mathlib/Init/Data/Int/Order.lean Modified Mathlib/Init/Data/Nat/Lemmas.lean Modified Mathlib/Order/ConditionallyCompleteLattice/Basic.lean Modified Mathlib/Order/Filter/FilterProduct.lean Modified Mathlib/Order/Filter/Germ.lean Modified Mathlib/Tactic/NormNum/DivMod.lean Modified Mathlib/Tactic/NormNum/Inv.lean Modified Mathlib/Tactic/ReduceModChar.lean Modified docs/undergrad.yaml Modified test/instance_diamonds.lean 2024-04-22 18:30:38 3e9c99f feat: add `simp` lemmas for order on `RCLike` (#12342) ESTIMATED CHANGES Modified Mathlib/Analysis/RCLike/Basic.lean + theorem RCLike.ofReal_le_ofReal + theorem RCLike.ofReal_nonneg + theorem RCLike.ofReal_nonpos 2024-04-22 10:39:44 24e020a refactor(GroupTheory/Coxeter/Basic): Coxeter groups (#11836) - Remove the definition `def Matrix.IsCoxeter : Prop`. Replace it with a type `CoxeterMatrix B`, which is the type of all Coxeter matrices indexed by `B`. - Simplify the definitions of Coxeter matrices `Aₙ` (`n : ℕ`), `Bₙ` (`n : ℕ`), `Dₙ` (`n : ℕ`), `I₂ₘ` (`m : ℕ`), `E₆`, `E₇`, `E₈`, `F₄`, `G₂`, `H₃`, and `H₄`. - All definitions involving a matrix (including the definition of a Coxeter group, Coxeter relation, and Coxeter system) now require the matrix to be a Coxeter matrix. - Update docstrings of `GroupTheory.Coxeter.Basic` and `GroupTheory.Coxeter.Matrix`. - The terms "Coxeter matrix", "Coxeter group", and "Coxeter system" are now defined in the header docstring. - It is now clearer that the rank of a Coxeter system can be infinite. - There is now a note in the implementation details of `GroupTheory.Coxeter.Matrix` about what happens when an entry of the Coxeter matrix is zero. - There is now a note in the implementation details of `GroupTheory.Coxeter.Basic` about how we try to state our results in terms of the type `B` that indexes the simple reflections, rather than the set $S$ of simple reflections. - Rename these definitions, structures, and theorems. Previously, there were six namespaces to keep track of: `Matrix`, `Matrix.IsCoxeter`, `CoxeterMatrix`, `CoxeterGroup`, `CoxeterGroup.Relations`, and `CoxeterSystem`. It was difficult to guess the fully qualified name of many theorems, and the names were not designed for use with field notation. Instead, we put everything into two namespaces: `CoxeterMatrix` and `CoxeterSystem`. - Rename `CoxeterGroup.Relations.ofMatrix` to `CoxeterMatrix.relation`. Also, change its type to `B → B → FreeGroup B` (from `B × B → FreeGroup B`). - Rename `CoxeterGroup.Relations.toSet` to `CoxeterMatrix.relationsSet`. - Rename `Matrix.CoxeterGroup` to `CoxeterMatrix.group`. - Rename `CoxeterGroup.of` to `CoxeterMatrix.simple`. - Remove `CoxeterSystem.funLike`. Rename `CoxeterSystem.funLike.coe` to `CoxeterSystem.simple`, because "simple reflection" (or "simple" for short) is the name used in the literature for this concept, and it is unintuitive to think of a Coxeter system as a function. - Rename `CoxeterSystem.funLike.coe_injective'` and `CoxeterSystem.ext'`, which are exactly the same theorem, to `CoxeterSystem.simple_determines_coxeterSystem`. (This theorem is forthcoming in #11406.) - Rename `CoxeterSystem.ofCoxeterGroup` to `CoxeterMatrix.toCoxeterSystem`. `CoxeterSystem.ofCoxeterGroup` is a confusing name because the input to the definition is an `CoxeterMatrix`, not a Coxeter group. - Rename `CoxeterSystem.ofCoxeterGroup_apply` to `CoxeterMatrix.toCoxeterSystem_simple` and remove `@[simp]`. The theorem doesn't have a Coxeter system as input and it does have a `CoxeterMatrix` as input, so it makes more sense for it to be in the `CoxeterMatrix` namespace. - Rename `CoxeterSystem.map_relations_eq_reindex_relations` to `CoxeterMatrix.reindex_relationsSet` and switch the two sides of the equality. The theorem doesn't mention Coxeter systems anywhere, so it shouldn't be in the `CoxeterSystem` namespace. Also, the new name better indicates what is on the left-hand side of the equality. - Rename `CoxeterSystem.equivCoxeterGroup` to `CoxeterMatrix.reindexGroupEquiv` and switch the two sides of the equivalence. The definition doesn't mention Coxeter systems anywhere, so it shouldn't be in the `CoxeterSystem` namespace. Also, the new name conveys that the definition is about the Coxeter group associated to a reindexed matrix, rather than merely conveying that it is about an isomorphism of Coxeter groups. - Rename `CoxeterSystem.equivCoxeterGroup_apply_of` to `CoxeterMatrix.reindexGroupEquiv_apply_simple`. - Rename `CoxeterSystem.equivCoxeterGroup_symm_apply_of` `CoxeterMatrix.reindexGroupEquiv_symm_apply_simple`. - Rename `CoxeterSystem.reindex_apply` to `CoxeterSystem.reindex_simple`. - Rename `CoxeterSystem.map_apply` to `CoxeterSystem.map_simple`. - Simplify several of the proofs. ESTIMATED CHANGES Modified Mathlib/GroupTheory/Coxeter/Basic.lean - def CoxeterGroup.Relations.ofMatrix - def CoxeterGroup.Relations.toSet - def CoxeterGroup.of - theorem CoxeterGroup.of_apply + def CoxeterMatrix.reindexGroupEquiv + theorem CoxeterMatrix.reindexGroupEquiv_apply_simple + theorem CoxeterMatrix.reindexGroupEquiv_symm_apply_simple + theorem CoxeterMatrix.reindex_relationsSet + def CoxeterMatrix.relation + def CoxeterMatrix.relationsSet + def CoxeterMatrix.simple + def CoxeterMatrix.toCoxeterSystem + theorem CoxeterMatrix.toCoxeterSystem_simple - def CoxeterSystem.equivCoxeterGroup - theorem CoxeterSystem.equivCoxeterGroup_apply_of - theorem CoxeterSystem.equivCoxeterGroup_symm_apply_of - theorem CoxeterSystem.ext' - theorem CoxeterSystem.ext - theorem CoxeterSystem.map_apply - theorem CoxeterSystem.map_relations_eq_reindex_relations + theorem CoxeterSystem.map_simple - theorem CoxeterSystem.mulEquiv_apply_coe - def CoxeterSystem.ofCoxeterGroup - theorem CoxeterSystem.ofCoxeterGroup_apply - theorem CoxeterSystem.reindex_apply + theorem CoxeterSystem.reindex_simple + def CoxeterSystem.simple +/- structure CoxeterSystem - def Matrix.CoxeterGroup Modified Mathlib/GroupTheory/Coxeter/Matrix.lean + def CoxeterMatrix.Aₙ - theorem CoxeterMatrix.AₙIsCoxeter + def CoxeterMatrix.Bₙ - theorem CoxeterMatrix.BₙIsCoxeter + def CoxeterMatrix.Dₙ - theorem CoxeterMatrix.DₙIsCoxeter +/- def CoxeterMatrix.E₆ - theorem CoxeterMatrix.E₆IsCoxeter +/- def CoxeterMatrix.E₇ - theorem CoxeterMatrix.E₇IsCoxeter +/- def CoxeterMatrix.E₈ - theorem CoxeterMatrix.E₈IsCoxeter +/- def CoxeterMatrix.F₄ - theorem CoxeterMatrix.F₄IsCoxeter +/- def CoxeterMatrix.G₂ - theorem CoxeterMatrix.G₂IsCoxeter +/- def CoxeterMatrix.H₃ - theorem CoxeterMatrix.H₃IsCoxeter +/- def CoxeterMatrix.H₄ - theorem CoxeterMatrix.H₄IsCoxeter + def CoxeterMatrix.I₂ₘ - theorem CoxeterMatrix.I₂ₘIsCoxeter + theorem CoxeterMatrix.reindex_apply + theorem CoxeterMatrix.symmetric + structure CoxeterMatrix - structure Matrix.IsCoxeter 2024-04-22 09:41:57 b5ed949 feat(Topology/MetricSpace/PseudoMetric): add new lemma Real.sub_le_dist (#12321) Add new lemma Real.sub_le_dist, the difference of two real numbers is less or equal to their distance. ESTIMATED CHANGES Modified Mathlib/Topology/MetricSpace/PseudoMetric.lean + theorem Real.sub_le_dist 2024-04-22 09:41:56 5b04cac chore: redistribute a few results from Algebra.Module.Submodule.LinearMap (#12295) These don't involve submodules at all. ESTIMATED CHANGES Modified Mathlib/Algebra/Module/LinearMap/Basic.lean + def LinearMap.evalAddMonoidHom + def LinearMap.toAddMonoidHom' Modified Mathlib/Algebra/Module/LinearMap/End.lean Modified Mathlib/Algebra/Module/Submodule/LinearMap.lean - def LinearMap.evalAddMonoidHom - def LinearMap.toAddMonoidHom' 2024-04-22 09:41:55 f4476bd feat: Add `mixedEmbedding.norm` (#12249) Define a norm of the mixed space `ℝ^r₁ × ℂ^r₂` associated to a number field `K` of signature `(r₁, r₂)`. The norm is defined such that the norm of `mixedEmbedding K a` for `a : K` is equal to the absolute value of the norm of `a` over `ℚ`. This norm will be used in a future PR about the quotient of the mixed space by the action of the units of `K`. ESTIMATED CHANGES Modified Mathlib/NumberTheory/NumberField/CanonicalEmbedding/Basic.lean + theorem NumberField.mixedEmbedding.norm_eq_norm + theorem NumberField.mixedEmbedding.norm_eq_zero_iff' + theorem NumberField.mixedEmbedding.norm_real + theorem NumberField.mixedEmbedding.norm_smul Modified Mathlib/NumberTheory/NumberField/Embeddings.lean + theorem NumberField.InfinitePlace.norm_embedding_of_isReal 2024-04-22 08:47:58 7877b40 feat(Ring/InjSurj): add missing lemmas (#12328) Add `Function.(Inj|Surj)ective.(left|right)DistribClass`. ESTIMATED CHANGES Modified Mathlib/Algebra/Ring/InjSurj.lean + theorem Function.Injective.leftDistribClass + theorem Function.Injective.rightDistribClass + theorem Function.Surjective.leftDistribClass + theorem Function.Surjective.rightDistribClass 2024-04-22 02:54:12 5b96848 doc(Algebra/Jordan/Basic): Fix documentation for commutative real Jordan algebra (#12325) Originally the commutativity axiom was built into `IsCommJordan`. This was removed in #7060 when `CommMagma` was introduced. However, updating the module docstring was omitted. This PR corrects the docstring to reflect the current situation. ESTIMATED CHANGES Modified Mathlib/Algebra/Jordan/Basic.lean 2024-04-22 02:54:11 b5f6488 chore(RingTheory/TensorProduct/Basic): relax the condition of `Subalgebra.finite_sup` to `CommSemiring` (#12323) ESTIMATED CHANGES Modified Mathlib/RingTheory/TensorProduct/Basic.lean +/- theorem Subalgebra.finite_sup 2024-04-22 02:54:10 23844d2 feat: Add `Ideal.associatesEquivIsPrincipal` (#12241) For `R` a domain, Define the equivalence between `R/Rˣ` and the principal ideals of `R` defined by sending the class of `x` to the principal ideal generated by `x`. ESTIMATED CHANGES Modified Mathlib/RingTheory/Ideal/Basic.lean + theorem Ideal.associatesEquivIsPrincipal_apply 2024-04-22 02:25:47 073c014 feat (Mathlib/FieldTheory/RatFunc.lean): add five lemmas about coercions between Hahn or Laurent Series and Rational Functions (#12245) Add five lemmas about coercions between Hahn or Laurent Series and Rational Functions ESTIMATED CHANGES Modified Mathlib/FieldTheory/RatFunc.lean + def RatFunc.coePolynomial + theorem RatFunc.coe_coe + theorem RatFunc.coe_ne_zero + theorem RatFunc.single_inv + theorem RatFunc.single_one_eq_pow + theorem RatFunc.single_zpow 2024-04-21 22:15:29 cc96d0a chore: cherry-pick some updates to style exceptions (#12277) Cardinal/Basic was mostly adding more comments. ESTIMATED CHANGES Modified scripts/style-exceptions.txt 2024-04-21 21:29:49 e54d54f chore(RingTheory/Filtration): Fix typo in docstring (#12318) ESTIMATED CHANGES Modified Mathlib/RingTheory/Filtration.lean 2024-04-21 21:29:48 6a9fc79 style(Topology/Algebra/InfiniteSum/Nonarchimedean): Use variables (#12314) ESTIMATED CHANGES Modified Mathlib/Topology/Algebra/InfiniteSum/Nonarchimedean.lean +/- theorem NonarchimedeanGroup.cauchySeq_prod_of_tendsto_cofinite_one +/- theorem NonarchimedeanGroup.multipliable_iff_tendsto_cofinite_one +/- theorem NonarchimedeanGroup.multipliable_of_tendsto_cofinite_one 2024-04-21 21:29:48 08a5c50 chore: move `Matrix.IsCoxeter` between files (#12312) Split from #11836; this makes the `Matrix.IsCoxeter` -> `CoxeterMatrix` change there easier to see ESTIMATED CHANGES Modified Mathlib/GroupTheory/Coxeter/Basic.lean - structure Matrix.IsCoxeter Modified Mathlib/GroupTheory/Coxeter/Matrix.lean + structure Matrix.IsCoxeter 2024-04-21 21:29:46 755b215 feat(Util/Superscript): add a semi-correct formatter (#12193) This probably isn't correct, but the old version was even less correct! ESTIMATED CHANGES Modified Mathlib/Util/Superscript.lean +/- def Mathlib.Tactic.Superscript.scriptParser.formatter +/- def Mathlib.Tactic.subscript.formatter +/- def Mathlib.Tactic.superscript.formatter + def Std.Format.mapStringsM Modified test/superscript.lean 2024-04-21 21:29:46 8b58bd5 feat(UniformConvergenceTopology): add `UniformOnFun.uniformity_eq` etc (#10784) - Add `UniformOnFun.uniformity_eq` etc: the `HasBasis` statements need more assumptions. - Add missing `toFun`/`ofFun`. - Golf using new lemmas. ESTIMATED CHANGES Modified Mathlib/Topology/UniformSpace/Ascoli.lean Modified Mathlib/Topology/UniformSpace/UniformConvergenceTopology.lean 2024-04-21 20:28:40 1918193 feat: `try_this` macro + use in abel/ring (#12320) This adds a simple elab `try_this tac` which can be used to suggest `tac` from a macro. This is useful for the backup suggestions made by `ring` and `abel`. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Tactic.lean Modified Mathlib/Tactic/Abel.lean Modified Mathlib/Tactic/Ring/RingNF.lean Added Mathlib/Tactic/TryThis.lean Modified scripts/noshake.json 2024-04-21 18:22:20 a5485f3 feat(Condensed): generalise universes in `TopComparison` (#11727) ESTIMATED CHANGES Modified Mathlib/Condensed/TopComparison.lean 2024-04-21 16:33:05 01ce6da chore: Rename a few lemmas about `Pi.mulSingle` (#12317) Before this PR, the `MonoidHom` version of `Pi.mulSingle` was called `MonoidHom.single` for brevity; but this is confusing when contrasted with `MulHom.single` which is about `Pi.single`. After this PR, the name is `MonoidHom.mulSingle`. Also fix the name of `Pi.single_div` since it is about `Pi.mulSingle` (and we don't have the lemma that would be called `Pi.single_div`). ESTIMATED CHANGES Modified Mathlib/Algebra/BigOperators/Pi.lean Modified Mathlib/Algebra/Group/Pi/Lemmas.lean + def MonoidHom.mulSingle + theorem MonoidHom.mulSingle_apply - def MonoidHom.single - theorem MonoidHom.single_apply + theorem OneHom.mulSingle_apply - def OneHom.single - theorem OneHom.single_apply + theorem Pi.mulSingle_div - theorem Pi.single_div Modified Mathlib/Data/Finset/NoncommProd.lean Modified Mathlib/GroupTheory/NoncommPiCoprod.lean Modified Mathlib/GroupTheory/Subgroup/Basic.lean Modified Mathlib/GroupTheory/Subgroup/Finite.lean Modified Mathlib/Probability/Moments.lean Modified Mathlib/RingTheory/PiTensorProduct.lean 2024-04-21 11:20:34 cf7f235 chore(Vector): migrate `List.nthLe` → `List.get` (#12301) This drops the deprecated `nth_eq_nthLe` lemma. ESTIMATED CHANGES Modified Mathlib/Data/Vector.lean +/- def Vector.get Modified Mathlib/Data/Vector/Basic.lean - theorem Vector.nth_eq_nthLe Modified Mathlib/Data/Vector/Zip.lean 2024-04-21 11:20:33 a7a7033 chore(SpecificGroups/Cyclic): `Fintype` -> `Finite` (#12299) ESTIMATED CHANGES Modified Mathlib/GroupTheory/SpecificGroups/Cyclic.lean - theorem IsCyclic.iff_exists_ofOrder_eq_natCard_of_Fintype + theorem isCyclic_iff_exists_ofOrder_eq_natCard 2024-04-21 11:20:32 d80f46e chore(LightProfinite): make LightProfinite.of universe polymorphic (#12217) ESTIMATED CHANGES Modified Mathlib/Topology/Category/LightProfinite/Basic.lean 2024-04-21 10:30:36 e3567c7 feat(Multilinear): generalize `ContinuousConstSMul` instance (#12303) - add names to all instances in `Topology/Algebra/Module/Multilinear/Topology`; - generalize `ContinuousConstSMul` instance from `NormedSpace` to TVS. ESTIMATED CHANGES Modified Mathlib/Analysis/NormedSpace/Multilinear/Basic.lean Modified Mathlib/Topology/Algebra/Module/Multilinear/Topology.lean 2024-04-21 07:28:03 ff9ef34 chore: make argument to sq_pos_of_ne_zero/sq_pos_iff implicit (#12288) This matches our general policy and zpow_two_pos_of_ne_zero. Also define sq_pos_of_ne_zero as an alias. ESTIMATED CHANGES Modified Mathlib/Algebra/GroupPower/Order.lean +/- theorem sq_pos_iff - theorem sq_pos_of_ne_zero Modified Mathlib/Algebra/Order/Chebyshev.lean Modified Mathlib/Analysis/SpecialFunctions/PolarCoord.lean Modified Mathlib/Combinatorics/Additive/Behrend.lean Modified Mathlib/Combinatorics/SimpleGraph/LapMatrix.lean Modified Mathlib/Combinatorics/SimpleGraph/Regularity/Bound.lean Modified Mathlib/Combinatorics/SimpleGraph/Regularity/Chunk.lean Modified Mathlib/NumberTheory/FLT/Four.lean Modified Mathlib/NumberTheory/Modular.lean Modified Mathlib/NumberTheory/ModularForms/JacobiTheta/Bounds.lean Modified Mathlib/NumberTheory/Pell.lean Modified Mathlib/NumberTheory/PythagoreanTriples.lean Modified Mathlib/Probability/Variance.lean 2024-04-21 06:33:05 e3dee5d feat: tendsto on a supremum (#12308) ESTIMATED CHANGES Modified Mathlib/Order/Filter/Basic.lean + theorem Filter.Tendsto.sup_sup 2024-04-21 06:33:04 181ed3f fix (LinearAlgebra/TensorProduct/Basic) : minor docstring typo (#12298) Switch `M ⊗ f` to `f ⊗ M` in `rTensorHom M` docstring. ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/TensorProduct/Basic.lean 2024-04-21 05:41:03 b94978f feat: `Filter.coprod f g = f ×ˢ ⊤ ⊔ ⊤ ×ˢ g` (#12309) ESTIMATED CHANGES Modified Mathlib/Order/Filter/Prod.lean + theorem Filter.coprod_eq_prod_top_sup_top_prod + theorem Filter.top_prod 2024-04-20 20:51:55 5d9cf93 feat(Algebra/Category/ModuleCat): the category of presheaves of modules has limits (#12264) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Category/ModuleCat/Basic.lean Modified Mathlib/Algebra/Category/ModuleCat/ChangeOfRings.lean + theorem ModuleCat.restrictScalarsComp'App_hom_naturality + theorem ModuleCat.restrictScalarsComp'App_inv_naturality + theorem ModuleCat.restrictScalarsId'App_hom_naturality + theorem ModuleCat.restrictScalarsId'App_inv_naturality Modified Mathlib/Algebra/Category/ModuleCat/Limits.lean - theorem ModuleCat.hasLimit Modified Mathlib/Algebra/Category/ModuleCat/Presheaf.lean + theorem PresheafOfModules.restrictionApp_comp + theorem PresheafOfModules.restrictionApp_id + theorem PresheafOfModules.restrictionApp_naturality - theorem PresheafOfModules.restriction_app_comp - theorem PresheafOfModules.restriction_app_id +/- def PresheafOfModules.toPresheaf Added Mathlib/Algebra/Category/ModuleCat/Presheaf/Limits.lean + def PresheafOfModules.evaluationJointlyReflectsLimits + theorem PresheafOfModules.limitConeπApp_naturality Modified Mathlib/Algebra/Homology/ModuleCat.lean +/- theorem ModuleCat.homology'_ext 2024-04-20 20:51:54 129548a feat(Nat/Defs): Add div_dvd_iff_dvd_mul (#12243) ESTIMATED CHANGES Modified Mathlib/Data/Nat/Defs.lean + theorem Nat.div_dvd_iff_dvd_mul + theorem Nat.dvd_mul_of_div_dvd 2024-04-20 20:27:54 3052a33 feat(scripts/lint-style): more useful line numbers (#12282) This changes slighlty the output of the linter from ``` [...]Mathlib/My/File.lean#L285: ERR_LIN: Line has more than 100 characters ``` to ``` [...]Mathlib/My/File.lean:285 ERR_LIN: Line has more than 100 characters ``` If one then copies the path with the line number and uses that when opening the file in vs code with Ctrl-p, it will set to cursor to the correct line number in question. Also other tools will work with that format, it is also used by pylint, clang etc. ESTIMATED CHANGES Modified scripts/lint-style.py 2024-04-20 18:50:10 32f9bf1 feat(CategoryTheory): the left Kan extension functor (#12168) Given a functor `F : C ⥤ D`, we define the left Kan extension functor `F.lan : (C ⥤ E) ⥤ (D ⥤ E)` which sends a functor `G : C ⥤ E` to its left Kan extension along `F`. (This is a step towards the refactor of `Lan/Ran` in mathlib using the new API for Kan extensions of functors #10425.) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Functor/KanExtension/Adjunction.lean + theorem CategoryTheory.Functor.isIso_lanAdjunction_counit_app_iff + theorem CategoryTheory.Functor.lanAdjunction_counit_app + theorem CategoryTheory.Functor.lanAdjunction_unit + theorem CategoryTheory.Functor.lanUnit_app_app_lanAdjunction_counit_app_app + theorem CategoryTheory.Functor.lanUnit_app_whiskerLeft_lanAdjunction_counit_app Modified Mathlib/CategoryTheory/Functor/KanExtension/Basic.lean +/- theorem CategoryTheory.Functor.HasLeftKanExtension.mk +/- theorem CategoryTheory.Functor.HasRightKanExtension.mk +/- def CategoryTheory.Functor.LeftExtension.mk +/- def CategoryTheory.Functor.RightExtension.mk +/- theorem CategoryTheory.Functor.descOfIsLeftKanExtension_fac +/- theorem CategoryTheory.Functor.descOfIsLeftKanExtension_fac_app +/- theorem CategoryTheory.Functor.hom_ext_of_isLeftKanExtension +/- theorem CategoryTheory.Functor.hom_ext_of_isRightKanExtension + theorem CategoryTheory.Functor.isLeftKanExtension_iff_isIso +/- theorem CategoryTheory.Functor.isLeftKanExtension_iff_of_iso +/- theorem CategoryTheory.Functor.isLeftKanExtension_of_iso +/- theorem CategoryTheory.Functor.isRightKanExtension_iff_of_iso +/- theorem CategoryTheory.Functor.isRightKanExtension_of_iso +/- theorem CategoryTheory.Functor.leftKanExtension_hom_ext +/- theorem CategoryTheory.Functor.liftOfIsRightKanExtension_fac +/- theorem CategoryTheory.Functor.liftOfIsRightKanExtension_fac_app +/- theorem CategoryTheory.Functor.rightKanExtension_hom_ext Modified Mathlib/CategoryTheory/Functor/KanExtension/Pointwise.lean + theorem CategoryTheory.Functor.LeftExtension.IsPointwiseLeftKanExtension.isIso_hom + theorem CategoryTheory.Functor.LeftExtension.IsPointwiseLeftKanExtensionAt.isIso_hom_app + def CategoryTheory.Functor.LeftExtension.coconeAtFunctor + def CategoryTheory.Functor.LeftExtension.isPointwiseLeftKanExtensionAtEquivOfIso + def CategoryTheory.Functor.LeftExtension.isPointwiseLeftKanExtensionEquivOfIso Modified Mathlib/CategoryTheory/Limits/Shapes/Terminal.lean + theorem CategoryTheory.Limits.IsColimit.isIso_ι_app_of_isTerminal + theorem CategoryTheory.Limits.IsLimit.isIso_π_app_of_isInitial 2024-04-20 17:51:58 cd502bd feat: Generalise sign of power lemmas (#12289) ESTIMATED CHANGES Modified Mathlib/Algebra/Parity.lean +/- theorem Even.pow_pos + theorem Odd.pow_add_pow_eq_zero - theorem Odd.pow_neg +/- theorem Odd.pow_neg_iff - theorem Odd.pow_nonpos +/- theorem Odd.pow_nonpos_iff +/- theorem Odd.strictMono_pow 2024-04-20 13:53:43 4e9bd1d chore(Algebra/Algebra): split `Subalgebra.Basic` (#12267) This PR was supposed to be simultaneous with #12090 but I got ill last week. This is based on seeing the import `Algebra.Algebra.Subalgebra.Basic → RingTheory.Ideal.Operations` on the [longest pole](https://leanprover.zulipchat.com/#narrow/stream/113488-general/topic/The.20long.20pole.20in.20mathlib/near/432898637). It feels like `Ideal.Operations` should not be needed to define the notion of subalgebra, only to construct some interesting examples. So I removed the import and split off anything that wouldn't fit. The following results and their corollaries were split off: * `Subalgebra.prod` * `Subalgebra.iSupLift` * `AlgHom.ker_rangeRestrict` * `Subalgebra.mem_of_finset_sum_eq_one_of_pow_smul_mem` ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Algebra/Spectrum.lean Modified Mathlib/Algebra/Algebra/Subalgebra/Basic.lean - theorem AlgHom.ker_rangeRestrict - theorem Subalgebra.coe_iSup_of_directed - theorem Subalgebra.coe_prod - theorem Subalgebra.iSupLift_comp_inclusion - theorem Subalgebra.iSupLift_inclusion - theorem Subalgebra.iSupLift_mk - theorem Subalgebra.iSupLift_of_mem - theorem Subalgebra.mem_of_finset_sum_eq_one_of_pow_smul_mem - theorem Subalgebra.mem_of_span_eq_top_of_smul_pow_mem - theorem Subalgebra.mem_prod - def Subalgebra.prod - theorem Subalgebra.prod_inf_prod - theorem Subalgebra.prod_mono - theorem Subalgebra.prod_toSubmodule - theorem Subalgebra.prod_top Added Mathlib/Algebra/Algebra/Subalgebra/Directed.lean + theorem Subalgebra.coe_iSup_of_directed + theorem Subalgebra.iSupLift_comp_inclusion + theorem Subalgebra.iSupLift_inclusion + theorem Subalgebra.iSupLift_mk + theorem Subalgebra.iSupLift_of_mem Added Mathlib/Algebra/Algebra/Subalgebra/Operations.lean + theorem AlgHom.ker_rangeRestrict + theorem Subalgebra.mem_of_finset_sum_eq_one_of_pow_smul_mem + theorem Subalgebra.mem_of_span_eq_top_of_smul_pow_mem Added Mathlib/Algebra/Algebra/Subalgebra/Prod.lean + theorem Subalgebra.coe_prod + theorem Subalgebra.mem_prod + def Subalgebra.prod + theorem Subalgebra.prod_inf_prod + theorem Subalgebra.prod_mono + theorem Subalgebra.prod_toSubmodule + theorem Subalgebra.prod_top Modified Mathlib/Algebra/DirectLimit.lean Modified Mathlib/Analysis/NormedSpace/Basic.lean Modified Mathlib/FieldTheory/Adjoin.lean Modified Mathlib/RingTheory/Adjoin/Basic.lean Modified Mathlib/RingTheory/Ideal/QuotientOperations.lean Modified Mathlib/RingTheory/Polynomial/ScaleRoots.lean Modified Mathlib/RingTheory/PowerSeries/Basic.lean 2024-04-20 13:53:42 28c79ff feat: define the coroots of a semisimple Lie algebra (#10893) We define the coroots of a finite-dimensional semisimple Lie algebra with coefficients in a field characteristic zero and establish the key property that a coroot is complementary to the kernel of the root. In addition we carry out some related, light refactoring. The most important points are: - Promote `LieModule.weight` from a subtype to a structure `LieModule.Weight` + expand its API (we need this expanded API for the headline results). - Replace the definition `LieAlgebra.rootSpaceProductNegSelf` with its range which we call `LieAlgebra.corootSpace` (in all places where we used this definition, it was the range that we actually used). - Drop the very old (unused) definitions `LieAlgebra.IsRoot` and `LieModule.IsWeight`. ESTIMATED CHANGES Modified Mathlib/Algebra/Lie/Killing.lean + theorem LieAlgebra.IsKilling.cartanEquivDual_symm_apply_mem_corootSpace + theorem LieAlgebra.IsKilling.coe_corootSpace_eq_span_singleton + theorem LieAlgebra.IsKilling.corootSpace_eq_bot_iff + theorem LieAlgebra.IsKilling.corootSpace_zero_eq_bot + theorem LieAlgebra.IsKilling.coroot_eq_zero_iff + theorem LieAlgebra.IsKilling.disjoint_ker_weight_corootSpace + theorem LieAlgebra.IsKilling.eq_zero_of_apply_eq_zero_of_mem_corootSpace - theorem LieAlgebra.IsKilling.eq_zero_of_apply_eq_zero_of_mem_rootSpaceProductNegSelf + theorem LieAlgebra.IsKilling.isCompl_ker_weight_span_coroot - theorem LieAlgebra.IsKilling.ker_weight_inf_rootSpaceProductNegSelf_eq_bot + theorem LieAlgebra.IsKilling.killingForm_nondegenerate - theorem LieAlgebra.IsKilling.rootSpaceProductNegSelf_zero_eq_bot + theorem LieAlgebra.IsKilling.root_apply_cartanEquivDual_symm_ne_zero + theorem LieAlgebra.IsKilling.root_apply_coroot + theorem LieAlgebra.IsKilling.traceForm_cartan_nondegenerate + theorem LieAlgebra.mem_ker_killingForm_of_mem_rootSpace_of_forall_rootSpace_neg + theorem LieModule.traceForm_lieSubalgebra_mk_left + theorem LieModule.traceForm_lieSubalgebra_mk_right Modified Mathlib/Algebra/Lie/Weights/Basic.lean + theorem LieModule.Weight.IsZero.eq + def LieModule.Weight.IsZero + theorem LieModule.Weight.coe_eq_zero_iff + theorem LieModule.Weight.coe_weight_mk + def LieModule.Weight.equivSetOf + structure LieModule.Weight + theorem LieModule.iSup_weightSpace_eq_top' + theorem LieModule.independent_weightSpace' Modified Mathlib/Algebra/Lie/Weights/Cartan.lean - theorem LieAlgebra.coe_rootSpaceProductNegSelf_apply + def LieAlgebra.corootSpace + theorem LieAlgebra.mem_corootSpace' + theorem LieAlgebra.mem_corootSpace - theorem LieAlgebra.mem_range_rootSpaceProductNegSelf - def LieAlgebra.rootSpaceProductNegSelf - def LieModule.IsWeight - theorem LieModule.isWeight_zero_of_nilpotent Modified Mathlib/Algebra/Lie/Weights/Chain.lean + theorem LieModule.exists_forall_mem_corootSpace_smul_add_eq_zero - theorem LieModule.exists_forall_mem_rootSpaceProductNegSelf_smul_add_eq_zero Modified Mathlib/Algebra/Lie/Weights/Linear.lean + theorem LieModule.Weight.apply_lie + theorem LieModule.Weight.coe_coe + theorem LieModule.Weight.coe_toLinear_eq_zero_iff + theorem LieModule.Weight.coe_toLinear_ne_zero_iff + def LieModule.Weight.toLinear + theorem LieModule.exists_forall_lie_eq_smul - theorem LieModule.exists_forall_lie_eq_smul_of_weightSpace_ne_bot - def LieModule.weight.toLinear - theorem LieModule.weight.toLinear_apply_lie Modified Mathlib/LinearAlgebra/BilinearForm/Properties.lean + theorem LinearMap.BilinForm.apply_toDual_symm_apply Modified Mathlib/LinearAlgebra/Dimension/Finite.lean + theorem Submodule.one_le_finrank_iff Modified Mathlib/LinearAlgebra/Dual.lean + theorem Module.Dual.finrank_ker_add_one_of_ne_zero + theorem Module.Dual.isCompl_ker_of_disjoint_of_ne_bot + theorem Module.Dual.range_eq_top_of_ne_zero Modified Mathlib/LinearAlgebra/FiniteDimensional.lean + theorem Submodule.finrank_add_finrank_le_of_disjoint 2024-04-20 13:11:33 7eb1fdd refactor: golf MvPolynomial.support_finSuccEquiv_nonempty (#11401) Refactors the proof of this lemma. Adds a simp lemma to do this, and also adds MvPolynomial analogue ESTIMATED CHANGES Modified Mathlib/Algebra/MvPolynomial/Basic.lean + theorem MvPolynomial.support_nonempty Modified Mathlib/Algebra/MvPolynomial/Equiv.lean 2024-04-20 12:43:41 ec96058 feat: order embedding is fully faithful as a functor (#12283) As discussed [on Zulip](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/Free.20Walking.20Arrow.20Category). ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Category/Preorder.lean Modified Mathlib/CategoryTheory/Functor/FullyFaithful.lean 2024-04-20 11:56:56 4421fe0 feat(Algebra/Lie/Rank): the rank of a Lie algebra, and regular elements (#10628) We define the rank of a finite dimensional Lie algebra, and prove the existence of regular elements over sufficiently large base fields. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Lie/Rank.lean + theorem LieAlgebra.exists_isRegular + theorem LieAlgebra.exists_isRegular_of_finrank_le_card + theorem LieAlgebra.isRegular_def + theorem LieAlgebra.isRegular_iff_coeff_polyCharpoly_rank_ne_zero + theorem LieAlgebra.isRegular_iff_natTrailingDegree_charpoly_eq_rank + theorem LieAlgebra.polyCharpoly_coeff_rank_ne_zero + theorem LieAlgebra.rank_eq_natTrailingDegree + theorem LieAlgebra.rank_le_card + theorem LieAlgebra.rank_le_finrank + theorem LieAlgebra.rank_le_natTrailingDegree_charpoly_ad + def LieModule.IsRegular + theorem LieModule.exists_isRegular + theorem LieModule.exists_isRegular_of_finrank_le_card + theorem LieModule.isRegular_def + theorem LieModule.isRegular_iff_coeff_polyCharpoly_rank_ne_zero + theorem LieModule.isRegular_iff_natTrailingDegree_charpoly_eq_rank + theorem LieModule.polyCharpoly_coeff_rank_ne_zero + def LieModule.rank + theorem LieModule.rank_eq_natTrailingDegree + theorem LieModule.rank_le_card + theorem LieModule.rank_le_finrank + theorem LieModule.rank_le_natTrailingDegree_charpoly_ad Modified Mathlib/Algebra/Module/LinearMap/Polynomial.lean + def LinearMap.IsNilRegular + theorem LinearMap.exists_isNilRegular + theorem LinearMap.exists_isNilRegular_of_finrank_le_card + theorem LinearMap.isNilRegular_def + theorem LinearMap.isNilRegular_iff_coeff_polyCharpoly_nilRank_ne_zero + theorem LinearMap.isNilRegular_iff_natTrailingDegree_charpoly_eq_nilRank + def LinearMap.nilRank + def LinearMap.nilRankAux + theorem LinearMap.nilRankAux_basis_indep + theorem LinearMap.nilRankAux_le + theorem LinearMap.nilRank_eq_polyCharpoly_natTrailingDegree + theorem LinearMap.nilRank_le_card + theorem LinearMap.nilRank_le_finrank + theorem LinearMap.nilRank_le_natTrailingDegree_charpoly + theorem LinearMap.polyCharpoly_coeff_eq_zero_iff_of_basis + theorem LinearMap.polyCharpoly_coeff_eq_zero_of_basis +/- theorem LinearMap.polyCharpoly_coeff_isHomogeneous + theorem LinearMap.polyCharpoly_coeff_nilRankAux_ne_zero + theorem LinearMap.polyCharpoly_coeff_nilRank_ne_zero +/- theorem LinearMap.polyCharpoly_natDegree +/- theorem LinearMap.toMvPolynomial_add + theorem LinearMap.toMvPolynomial_id +/- theorem LinearMap.toMvPolynomial_zero +/- theorem Matrix.toMvPolynomial_add + theorem Matrix.toMvPolynomial_one +/- theorem Matrix.toMvPolynomial_zero Modified docs/references.bib 2024-04-20 11:22:13 8b0bd59 doc: fix grammar (#12272) Change "splitted" to "split". ESTIMATED CHANGES Modified Mathlib/Algebra/Category/GroupCat/EnoughInjectives.lean Modified Mathlib/AlgebraicGeometry/AffineScheme.lean 2024-04-20 07:53:59 cccfb03 chore: disable reviewdog if more than 300 files (#12280) ESTIMATED CHANGES Modified .github/workflows/lint_and_suggest_pr.yml 2024-04-20 06:50:57 8e052ac chore: refactor to avoid importing Ring for Group topics (#11913) This is a far from a complete success at the PR title, but it makes a fair bit of progress, and then guards this with appropriate `assert_not_exists Ring` statements. It also breaks apart the `Mathlib.GroupTheory.Subsemigroup.[Center|Centralizer]` files, to pull the `Set.center` and `Set.centralizer` declarations into their own files not depending on `Subsemigroup`. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Group/Center.lean + structure IsAddCentral + structure IsMulCentral + theorem Semigroup.mem_center_iff + def Set.center + theorem Set.center_eq_univ + theorem Set.center_units_eq + theorem Set.center_units_subset + theorem Set.div_mem_center + theorem Set.div_mem_center₀ + theorem Set.invOf_mem_center + theorem Set.inv_mem_center + theorem Set.inv_mem_center₀ + theorem Set.mem_center_iff + theorem Set.mul_mem_center + theorem Set.one_mem_center + theorem Set.subset_center_units + theorem Set.units_inv_mem_center + theorem Set.zero_mem_center Added Mathlib/Algebra/Group/Centralizer.lean + theorem Set.center_subset_centralizer + def Set.centralizer + theorem Set.centralizer_eq_top_iff_subset + theorem Set.centralizer_eq_univ + theorem Set.centralizer_subset + theorem Set.centralizer_univ + theorem Set.div_mem_centralizer + theorem Set.div_mem_centralizer₀ + theorem Set.inv_mem_centralizer + theorem Set.inv_mem_centralizer₀ + theorem Set.mem_centralizer_iff + theorem Set.mul_mem_centralizer + theorem Set.one_mem_centralizer + theorem Set.zero_mem_centralizer Added Mathlib/Algebra/Group/Hom/End.lean + def AddMonoid.End.mulLeft + def AddMonoid.End.mulRight + theorem AddMonoid.End.mulRight_eq_mulLeft + theorem AddMonoidHom.coe_flip_mul + theorem AddMonoidHom.coe_mul + theorem AddMonoidHom.map_mul_iff + def AddMonoidHom.mul + theorem AddMonoidHom.mulLeft_eq_mulRight_iff_forall_commute + theorem AddMonoidHom.mulRight_eq_mulLeft_iff_forall_commute + theorem AddMonoidHom.mul_apply Modified Mathlib/Algebra/Group/Hom/Instances.lean - def AddMonoid.End.mulLeft - def AddMonoid.End.mulRight - theorem AddMonoid.End.mulRight_eq_mulLeft - theorem AddMonoidHom.coe_flip_mul - theorem AddMonoidHom.coe_mul - theorem AddMonoidHom.map_mul_iff - def AddMonoidHom.mul - theorem AddMonoidHom.mulLeft_eq_mulRight_iff_forall_commute - theorem AddMonoidHom.mulRight_eq_mulLeft_iff_forall_commute - theorem AddMonoidHom.mul_apply Modified Mathlib/Algebra/Group/Pi/Lemmas.lean Modified Mathlib/Algebra/GroupPower/IterateHom.lean - theorem RingHom.coe_pow Modified Mathlib/Algebra/Invertible/Basic.lean - theorem invOf_neg - theorem invOf_two_add_invOf_two - def invertibleNeg - theorem one_sub_invOf_two - theorem pos_of_invertible_cast Added Mathlib/Algebra/Invertible/Ring.lean + theorem invOf_neg + theorem invOf_two_add_invOf_two + def invertibleNeg + theorem one_sub_invOf_two + theorem pos_of_invertible_cast Modified Mathlib/Algebra/Module/Basic.lean Modified Mathlib/Algebra/Order/Floor.lean Modified Mathlib/Algebra/Order/Invertible.lean Added Mathlib/Algebra/Ring/Center.lean + theorem Set.add_mem_center + theorem Set.intCast_mem_center + theorem Set.natCast_mem_center + theorem Set.neg_mem_center + theorem Set.ofNat_mem_center Added Mathlib/Algebra/Ring/Centralizer.lean + theorem Set.add_mem_centralizer + theorem Set.neg_mem_centralizer Added Mathlib/Algebra/Ring/Hom/IterateHom.lean + theorem RingHom.coe_pow Modified Mathlib/Algebra/Star/Center.lean Modified Mathlib/Data/ByteArray.lean Modified Mathlib/Data/Int/Parity.lean Modified Mathlib/Data/List/EditDistance/Defs.lean Modified Mathlib/Data/Nat/Bits.lean Modified Mathlib/Data/Nat/Bitwise.lean Modified Mathlib/Data/Ordmap/Ordset.lean Modified Mathlib/Data/Set/Equitable.lean Modified Mathlib/Data/UInt.lean Modified Mathlib/GroupTheory/ClassEquation.lean Modified Mathlib/GroupTheory/Commutator.lean Modified Mathlib/GroupTheory/GroupAction/DomAct/Basic.lean Modified Mathlib/GroupTheory/SpecificGroups/Quaternion.lean Modified Mathlib/GroupTheory/Subgroup/Actions.lean Modified Mathlib/GroupTheory/Subgroup/Basic.lean - theorem CommGroup.center_eq_top - theorem ConjClasses.mk_bijOn - def Group.commGroupOfCenterEqTop - theorem IsConj.eq_of_left_mem_center - theorem IsConj.eq_of_right_mem_center - def Subgroup.center - def Subgroup.centerUnitsEquivUnitsCenter - theorem Subgroup.center_le_centralizer - theorem Subgroup.center_le_normalizer - theorem Subgroup.center_toSubmonoid - def Subgroup.centralizer - theorem Subgroup.centralizer_eq_top_iff_subset - theorem Subgroup.centralizer_le - theorem Subgroup.centralizer_univ - theorem Subgroup.coe_center - theorem Subgroup.le_centralizer - theorem Subgroup.le_centralizer_iff - theorem Subgroup.le_centralizer_iff_isCommutative - theorem Subgroup.mem_center_iff - theorem Subgroup.mem_centralizer_iff - theorem Subgroup.mem_centralizer_iff_commutator_eq_one Added Mathlib/GroupTheory/Subgroup/Center.lean + theorem CommGroup.center_eq_top + theorem ConjClasses.mk_bijOn + def Group.commGroupOfCenterEqTop + theorem IsConj.eq_of_left_mem_center + theorem IsConj.eq_of_right_mem_center + def Subgroup.center + def Subgroup.centerUnitsEquivUnitsCenter + theorem Subgroup.center_le_normalizer + theorem Subgroup.center_toSubmonoid + theorem Subgroup.coe_center + theorem Subgroup.mem_center_iff Added Mathlib/GroupTheory/Subgroup/Centralizer.lean + theorem Subgroup.center_le_centralizer + def Subgroup.centralizer + theorem Subgroup.centralizer_eq_top_iff_subset + theorem Subgroup.centralizer_le + theorem Subgroup.centralizer_univ + theorem Subgroup.le_centralizer + theorem Subgroup.le_centralizer_iff + theorem Subgroup.le_centralizer_iff_isCommutative + theorem Subgroup.mem_centralizer_iff + theorem Subgroup.mem_centralizer_iff_commutator_eq_one Modified Mathlib/GroupTheory/Subgroup/ZPowers.lean Modified Mathlib/GroupTheory/Submonoid/Operations.lean Modified Mathlib/GroupTheory/Subsemigroup/Center.lean - structure IsAddCentral - structure IsMulCentral - theorem Semigroup.mem_center_iff - theorem Set.add_mem_center - def Set.center - theorem Set.center_eq_univ - theorem Set.center_units_eq - theorem Set.center_units_subset - theorem Set.div_mem_center - theorem Set.div_mem_center₀ - theorem Set.intCast_mem_center - theorem Set.invOf_mem_center - theorem Set.inv_mem_center - theorem Set.inv_mem_center₀ - theorem Set.mem_center_iff - theorem Set.mul_mem_center - theorem Set.natCast_mem_center - theorem Set.neg_mem_center - theorem Set.ofNat_mem_center - theorem Set.one_mem_center - theorem Set.subset_center_units - theorem Set.units_inv_mem_center - theorem Set.zero_mem_center Modified Mathlib/GroupTheory/Subsemigroup/Centralizer.lean - theorem Set.add_mem_centralizer - theorem Set.center_subset_centralizer - def Set.centralizer - theorem Set.centralizer_eq_top_iff_subset - theorem Set.centralizer_eq_univ - theorem Set.centralizer_subset - theorem Set.centralizer_univ - theorem Set.div_mem_centralizer - theorem Set.div_mem_centralizer₀ - theorem Set.inv_mem_centralizer - theorem Set.inv_mem_centralizer₀ - theorem Set.mem_centralizer_iff - theorem Set.mul_mem_centralizer - theorem Set.neg_mem_centralizer - theorem Set.one_mem_centralizer - theorem Set.zero_mem_centralizer Modified Mathlib/GroupTheory/Transfer.lean Modified Mathlib/RingTheory/NonUnitalSubring/Basic.lean Modified Mathlib/RingTheory/NonUnitalSubsemiring/Basic.lean Modified Mathlib/RingTheory/Subring/Units.lean Modified test/levenshtein.lean 2024-04-19 20:51:34 f265800 chore(Logic): reduce use of autoImplicit (#12135) In one case, replacing this naively errored, so I just merged the single declaration using it. Delete two unused variables in Logic/Basic. ESTIMATED CHANGES Modified Mathlib/Logic/Basic.lean +/- theorem Decidable.eq_or_ne +/- theorem Decidable.ne_or_eq +/- def Function.swap₂ +/- theorem Imp.swap +/- theorem Or.elim3 +/- theorem Or.imp3 +/- theorem PLift.down_inj +/- theorem PLift.down_injective +/- theorem and_or_imp +/- theorem and_symm_left +/- theorem and_symm_right +/- theorem apply_dite₂ +/- theorem apply_ite₂ +/- theorem beq_eq_decide +/- theorem beq_ext +/- theorem by_cases +/- theorem by_contradiction +/- theorem congr_arg_heq +/- theorem congr_arg_refl +/- theorem congr_fun_congr_arg +/- theorem congr_fun_rfl +/- theorem congr_refl_left +/- theorem congr_refl_right +/- theorem eqRec_heq' +/- theorem eq_equivalence +/- theorem eq_false_intro +/- theorem eq_or_ne +/- theorem eq_true_intro +/- theorem exists_unique_const +/- theorem exists₂_comm +/- theorem forall_imp_iff_exists_imp +/- theorem forall_or_of_or_forall +/- theorem forall₂_swap +/- theorem iff_eq_eq +/- theorem iff_mpr_iff_true_intro +/- theorem imp_iff_or_not +/- theorem imp_iff_right_iff +/- theorem imp_or' +/- theorem lawful_beq_subsingleton +/- theorem ne_and_eq_iff_right +/- theorem ne_of_eq_of_ne +/- theorem ne_of_ne_of_eq +/- theorem ne_or_eq +/- theorem not_beq_of_ne +/- theorem not_ne_iff +/- theorem of_not_imp +/- theorem of_not_not +/- theorem or_congr_left' +/- theorem or_congr_right' +/- theorem or_of_or_of_imp_left +/- theorem or_of_or_of_imp_of_imp +/- theorem or_of_or_of_imp_right +/- theorem xor_comm Modified Mathlib/Logic/Embedding/Basic.lean +/- def Equiv.asEmbedding +/- theorem Function.exists_surjective_iff Modified Mathlib/Logic/Equiv/Defs.lean +/- theorem Equiv.apply_eq_iff_eq_symm_apply +/- theorem Equiv.arrowCongr'_symm +/- theorem Equiv.arrowCongr'_trans +/- theorem Equiv.arrowCongr_symm +/- theorem Equiv.arrowCongr_trans +/- def Equiv.equivCongr +/- def Equiv.sigmaCongrLeft Modified Mathlib/Logic/Function/Basic.lean +/- theorem Function.FactorsThrough.comp_left +/- theorem Function.FactorsThrough.comp_right +/- def Function.Injective2 +/- theorem Function.LeftInverse.cast_eq +/- theorem Function.LeftInverse.eq_rec_eq +/- theorem Function.LeftInverse.eq_rec_on_eq +/- theorem Function.apply_invFun_apply +/- theorem Function.symmetric_apply_eq_iff +/- theorem IsSymmOp.flip_eq +/- theorem eq_rec_inj +/- theorem eq_rec_on_bijective Modified Mathlib/Logic/IsEmpty.lean Modified Mathlib/Logic/Nonempty.lean Modified Mathlib/Logic/Relator.lean Modified Mathlib/Logic/Small/Basic.lean Modified Mathlib/Logic/Small/Defs.lean Modified Mathlib/Logic/Unique.lean +/- theorem eq_const_of_subsingleton +/- theorem eq_const_of_unique +/- theorem uniqueElim_const Modified Mathlib/Mathport/Notation.lean +/- def Mathlib.Notation3.MatchState.withVar Modified Mathlib/Mathport/Rename.lean +/- def Mathlib.Prelude.Rename.ensureUnused 2024-04-19 17:39:39 1f5ab66 Add simple lemmas about integrability (#12263) I add 4 iff lemmas about the integrability a function to the MeasureTheory.Function.L1Space file. The first two lemmas are about the integrability of the sum of function and a constant under a finite measure. The other two are about the integrability of the sum of a function and an integrable function. ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Function/L1Space.lean + theorem MeasureTheory.integrable_add_const_iff + theorem MeasureTheory.integrable_add_iff_integrable_left + theorem MeasureTheory.integrable_add_iff_integrable_right + theorem MeasureTheory.integrable_const_add_iff 2024-04-19 15:53:35 47e1ef4 chore: avoid automatically generated instance names (#12270) ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Conj.lean Modified Mathlib/Data/Finset/Sym.lean Modified Mathlib/Data/Matrix/Basic.lean Modified Mathlib/Data/Matrix/DMatrix.lean Modified Mathlib/Data/Sym/Basic.lean Modified Mathlib/GroupTheory/SchurZassenhaus.lean Modified Mathlib/ModelTheory/Ultraproducts.lean Modified Mathlib/Topology/UniformSpace/UniformConvergenceTopology.lean 2024-04-19 14:49:45 e8ccef9 feat: the forget functor from commutative groups to groups preserves all limits (#11669) It is shown in this PR that the forget functor from commutative groups to groups preserves all limits (regardless of the universe parameters of the index category). It is also shown that a functor `F : J ⥤ CommGroupCat` (or `F : J ⥤ GroupCat`) has a limit iff the type `(F ⋙ forget _).sections` is small. This is related to the fact that the forget functor `CommGroupCat.{u} ⥤ Type u` is corepresentable (by `ULift ℤ`). ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Category/GroupCat/ForgetCorepresentable.lean + def AddCommGroupCat.coyonedaObjIsoForget + def AddGroupCat.coyonedaObjIsoForget + def AddMonoidHom.fromIntEquiv + def AddMonoidHom.fromULiftIntEquiv + def AddMonoidHom.precompEquiv + def CommGroupCat.coyonedaObjIsoForget + def GroupCat.coyonedaObjIsoForget + def MonoidHom.fromMultiplicativeIntEquiv + def MonoidHom.fromULiftMultiplicativeIntEquiv + def MonoidHom.precompEquiv Modified Mathlib/Algebra/Category/GroupCat/Limits.lean + theorem CommGroupCat.hasLimit_iff_small_sections + theorem GroupCat.hasLimit_iff_small_sections Modified Mathlib/CategoryTheory/Yoneda.lean - theorem CategoryTheory.Functor.reprW_hom + theorem CategoryTheory.corepresentable_of_natIso - theorem CategoryTheory.corepresentable_of_nat_iso + theorem CategoryTheory.representable_of_natIso - theorem CategoryTheory.representable_of_nat_iso 2024-04-19 13:57:38 94b44d3 chore: replace `refine'` that already have a `?_` (#12261) ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/Subalgebra/Basic.lean Modified Mathlib/Algebra/BigOperators/Basic.lean Modified Mathlib/Algebra/GroupPower/Order.lean Modified Mathlib/Algebra/Homology/Exact.lean Modified Mathlib/Algebra/Order/Group/Abs.lean Modified Mathlib/Analysis/Complex/PhragmenLindelof.lean Modified Mathlib/Analysis/NormedSpace/Unitization.lean Modified Mathlib/Analysis/SpecialFunctions/ExpDeriv.lean Modified Mathlib/CategoryTheory/Adjunction/AdjointFunctorTheorems.lean Modified Mathlib/CategoryTheory/Adjunction/Reflective.lean Modified Mathlib/CategoryTheory/Category/KleisliCat.lean Modified Mathlib/CategoryTheory/Limits/Constructions/Equalizers.lean Modified Mathlib/CategoryTheory/Limits/Constructions/FiniteProductsOfBinaryProducts.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Diagonal.lean Modified Mathlib/CategoryTheory/Sites/Sheaf.lean Modified Mathlib/Combinatorics/HalesJewett.lean Modified Mathlib/Data/Finset/Lattice.lean Modified Mathlib/Data/Nat/Factorization/Basic.lean Modified Mathlib/Data/Nat/Prime.lean Modified Mathlib/GroupTheory/Perm/Sign.lean Modified Mathlib/NumberTheory/Bertrand.lean Modified Mathlib/NumberTheory/DiophantineApproximation.lean Modified Mathlib/Order/CompletePartialOrder.lean Modified Mathlib/Probability/Kernel/Disintegration/CondCdf.lean Modified Mathlib/RingTheory/Coprime/Lemmas.lean Modified Mathlib/SetTheory/Ordinal/Basic.lean Modified Mathlib/Topology/Algebra/Order/Compact.lean Modified Mathlib/Topology/Category/Profinite/Nobeling.lean Modified Mathlib/Topology/MetricSpace/PiNat.lean Modified Mathlib/Topology/Sheaves/Stalks.lean 2024-04-19 13:15:05 46c2efe chore: small splits of `RingTheory.Ideal.Operations`; clean imports (#12090) This is based on seeing the import `RingTheory.Ideal.Operations` → `LinearAlgebra.Basis` on the [longest pole](https://leanprover.zulipchat.com/#narrow/stream/113488-general/topic/The.20long.20pole.20in.20mathlib/near/432898637). It feels like `Ideal.Operations` is a bit of a chokepoint for compiling Mathlib since it imports many files and is imported by many files. So splitting out a few obvious parts should help with compile times. Moreover, there are a bunch of imports that I could remove and have the file still compile: presumably these are (were) transitive dependencies that shake does not remove. The following results and their corollaries were split off: * `Ideal.basisSpanSingleton` * `Basis.mem_ideal_iff` * `Ideal.colon` In particular, now `Ideal.Operations` should no longer need to know about `Basis` or submodule quotients. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Algebra/Subalgebra/Basic.lean Modified Mathlib/LinearAlgebra/FreeModule/IdealQuotient.lean Modified Mathlib/RingTheory/Adjoin/Basic.lean Modified Mathlib/RingTheory/HahnSeries/Multiplication.lean Modified Mathlib/RingTheory/HahnSeries/Summable.lean Added Mathlib/RingTheory/Ideal/Basis.lean + theorem Basis.mem_ideal_iff' + theorem Basis.mem_ideal_iff + theorem Ideal.basisSpanSingleton_apply + theorem Ideal.constr_basisSpanSingleton Added Mathlib/RingTheory/Ideal/Colon.lean + theorem Ideal.annihilator_quotient + theorem Ideal.mem_colon_singleton + theorem Submodule.annihilator_quotient + def Submodule.colon + theorem Submodule.colon_bot + theorem Submodule.colon_mono + theorem Submodule.colon_top + theorem Submodule.iInf_colon_iSup + theorem Submodule.mem_colon' + theorem Submodule.mem_colon + theorem Submodule.mem_colon_singleton Modified Mathlib/RingTheory/Ideal/Norm.lean Modified Mathlib/RingTheory/Ideal/Operations.lean - theorem Basis.mem_ideal_iff' - theorem Basis.mem_ideal_iff - theorem Ideal.annihilator_quotient - theorem Ideal.basisSpanSingleton_apply - theorem Ideal.constr_basisSpanSingleton - theorem Ideal.mem_colon_singleton - theorem Submodule.annihilator_quotient - def Submodule.colon - theorem Submodule.colon_bot - theorem Submodule.colon_mono - theorem Submodule.colon_top - theorem Submodule.iInf_colon_iSup - theorem Submodule.mem_colon' - theorem Submodule.mem_colon - theorem Submodule.mem_colon_singleton Modified Mathlib/RingTheory/Nilpotent.lean Modified Mathlib/RingTheory/PrincipalIdealDomain.lean 2024-04-19 08:04:34 c641f2b chore(Algebra/Parity): Rename some variables (#12260) Rename a bunch of variables in `Algebra.Parity` as I need a new lemma about `a b : α` and `m n : ℕ` but the names were used as `m n : α` and `a b : ℕ`. ESTIMATED CHANGES Modified Mathlib/Algebra/Parity.lean +/- theorem Dvd.dvd.even +/- theorem Even.add_odd +/- theorem Even.add_one +/- theorem Even.mul_left +/- theorem Even.mul_right +/- theorem Even.odd_add +/- theorem Even.one_add +/- theorem Even.pow_of_ne_zero +/- theorem Even.trans_dvd +/- theorem Odd.add_even +/- theorem Odd.add_odd +/- theorem Odd.map +/- theorem Odd.mul +/- theorem Odd.neg +/- theorem Odd.pos +/- theorem Odd.pow +/- theorem even_iff_exists_two_mul +/- theorem even_two_mul +/- theorem odd_add_one_self' +/- theorem odd_add_one_self +/- theorem odd_add_self_one' +/- theorem odd_two_mul_add_one +/- theorem one_add_self_self 2024-04-19 06:51:25 6096b4a chore: remove last use of classical! (#12257) The `classical!` tactic is always replaceable by the `classical` tactic. This removes the last use of it, which required adding in Std the plumbing-level implementation of `classical`. - [x] Depends on: #12256 ESTIMATED CHANGES Modified Mathlib/Tactic/Tauto.lean 2024-04-19 03:12:52 11f79c5 chore: bump Std (#12256) ESTIMATED CHANGES Modified Mathlib/Data/String/Lemmas.lean - theorem String.length_append Modified lake-manifest.json 2024-04-19 03:12:51 1d4a722 chore: remove unnecessary classical! (#12255) `classical!` appears to never actually be necessary, and is just being used out of habit, and we can get rid of it to reduce the number of ways to say the same thing. ESTIMATED CHANGES Modified Mathlib/Data/Set/Pointwise/Finite.lean 2024-04-19 02:04:08 9e7997a fix: make congruence lemma generator handle dependence (#12253) There was a bug in the congruence lemma generator used by `congr(...)` and `congrm` that would create congruence lemmas with unbound free variables if there were arguments after subsingleton instances. Reported by Jireh Loreaux on [Zulip](https://leanprover.zulipchat.com/#narrow/stream/113489-new-members/topic/what.20the.20heq.2C.20PosSemidef/near/434202080) ESTIMATED CHANGES Modified Mathlib/Lean/Meta/CongrTheorems.lean Modified test/TermCongr.lean + def Tests.SubsingletonDependence.f + theorem Tests.SubsingletonDependence.test 2024-04-19 02:04:07 4e7ba67 feat(Analysis/SpecificLimits/Normed): generalize to division rings (#12164) ESTIMATED CHANGES Modified Mathlib/Analysis/SpecificLimits/Normed.lean +/- theorem NormedField.tendsto_norm_inverse_nhdsWithin_0_atTop +/- theorem NormedField.tendsto_norm_zpow_nhdsWithin_0_atTop +/- theorem NormedField.tendsto_zero_smul_of_tendsto_zero_of_bounded +/- theorem hasSum_coe_mul_geometric_of_norm_lt_one +/- theorem tsum_coe_mul_geometric_of_norm_lt_one Modified Mathlib/Topology/ContinuousFunction/Units.lean +/- theorem ContinuousMap.isUnit_iff_forall_ne_zero + theorem ContinuousMap.spectrum_eq_preimage_range +/- theorem ContinuousMap.spectrum_eq_range 2024-04-19 02:04:06 5fdef41 feat: expand basic API around Fourier integrals (#12153) The statements in this PR are mostly straightforward variations around already existing statements, which have proved useful down the road. ESTIMATED CHANGES Modified Mathlib/Analysis/Fourier/FourierTransform.lean + theorem Real.fourierIntegralInv_comm + theorem Real.fourierIntegralInv_eq_fourierIntegral_comp_neg + theorem Real.fourierIntegral_continuousLinearMap_apply' + theorem Real.fourierIntegral_continuousLinearMap_apply + theorem Real.fourierIntegral_continuousMultilinearMap_apply' + theorem Real.fourierIntegral_continuousMultilinearMap_apply + theorem VectorFourier.fourierIntegral_continuousLinearMap_apply + theorem VectorFourier.fourierIntegral_continuousMultilinearMap_apply Modified Mathlib/Analysis/Fourier/Inversion.lean + theorem Continuous.fourier_inversion_inv + theorem MeasureTheory.Integrable.fourier_inversion_inv 2024-04-19 02:04:05 f3368d8 feat(NumberTheory/LSeries): even Hurwitz zeta functions (part 1) (#12147) Add the construction of the even part of the Hurwitz zeta function (via FE pairs). ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/NumberTheory/LSeries/HurwitzZetaEven.lean + def completedCosZeta + theorem completedCosZeta_eq + theorem completedCosZeta_neg + theorem completedCosZeta_one_sub + def completedCosZeta₀ + theorem completedCosZeta₀_neg + theorem completedCosZeta₀_one_sub + def completedHurwitzZetaEven + theorem completedHurwitzZetaEven_eq + theorem completedHurwitzZetaEven_neg + theorem completedHurwitzZetaEven_one_sub + def completedHurwitzZetaEven₀ + theorem completedHurwitzZetaEven₀_neg + theorem completedHurwitzZetaEven₀_one_sub + theorem continuousOn_cosKernel + theorem continuousOn_evenKernel + def cosKernel + theorem cosKernel_def + theorem cosKernel_neg + theorem cosKernel_undef + def evenKernel + theorem evenKernel_def + theorem evenKernel_eq_cosKernel_of_zero + theorem evenKernel_functional_equation + theorem evenKernel_neg + theorem evenKernel_undef + theorem hasSum_int_cosKernel + theorem hasSum_int_cosKernel₀ + theorem hasSum_int_evenKernel + theorem hasSum_int_evenKernel₀ + theorem hasSum_nat_cosKernel₀ + def hurwitzEvenFEPair + theorem hurwitzEvenFEPair_neg + theorem hurwitzEvenFEPair_zero_symm + theorem isBigO_atTop_cosKernel_sub + theorem isBigO_atTop_evenKernel_sub Modified Mathlib/Topology/Algebra/InfiniteSum/Basic.lean + theorem HasProd.congr_fun 2024-04-19 02:04:04 2d4e7e3 feat(Topology/Algebra): add `Inseparable.{smul,mul,inv}` (#12142) Add dot notation lemmas for algebraic operations on `Specializes` and `Inseparable`. ESTIMATED CHANGES Modified Mathlib/Topology/Algebra/ConstMulAction.lean + theorem Inseparable.const_smul + theorem Specializes.const_smul Modified Mathlib/Topology/Algebra/Group/Basic.lean Modified Mathlib/Topology/Algebra/Monoid.lean Modified Mathlib/Topology/Algebra/MulAction.lean 2024-04-19 00:52:45 9dd5839 feat: make `notation3` delaborator not match instance arguments (#11700) Instance arguments are supposed to be canonical in elaborated expressions, so there should be no harm in approximating matching by not matching instance arguments at all. This makes the matchers more efficient. They are more likely to succeed in matching too, since the matchers do not take defeq into account: they only handle exact syntactic matches. ESTIMATED CHANGES Modified Mathlib/Mathport/Notation.lean Modified test/notation3.lean 2024-04-18 22:58:10 57de30f chore(Combinatorics/Derangements/Finite): Solve a porting note (#12252) ESTIMATED CHANGES Modified Mathlib/Combinatorics/Derangements/Finite.lean 2024-04-18 21:51:23 5efe4b8 chore: use a variable in Data.Nat.Cast.Defs (#12254) ESTIMATED CHANGES Modified Mathlib/Algebra/CharP/Basic.lean Modified Mathlib/Data/Nat/Cast/Defs.lean +/- theorem Nat.binCast_eq +/- theorem Nat.cast_add +/- theorem Nat.cast_bit0 +/- theorem Nat.cast_bit1 +/- theorem Nat.cast_eq_ofNat +/- theorem Nat.cast_ofNat +/- theorem Nat.cast_one +/- theorem Nat.cast_two +/- theorem one_add_one_eq_two +/- theorem three_add_one_eq_four +/- theorem two_add_one_eq_three 2024-04-18 19:57:51 26fb0c3 Allow users of `field_simp` to increase `cfg.maxDischargeDepth` (#12239) Usage: `field_simp (config := { maxDischargeDepth := 11 })`. This was always valid syntax, but previously the `11` was ignored. ESTIMATED CHANGES Modified Mathlib/Tactic/FieldSimp.lean 2024-04-18 18:19:48 de4f270 feat(Condensed): condensed modules form an abelian category (#12238) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Condensed/Module.lean 2024-04-18 15:37:02 e082274 feat: add Lemma `Matrix_toEuclideanLin_apply` (#11988) The proposed lemma unfolds the `toEuclideanLin` definition to express action of a matrix on a vector, without defeq abuse. ESTIMATED CHANGES Modified Mathlib/Analysis/InnerProductSpace/PiL2.lean + theorem Matrix.piLp_equiv_toEuclideanLin_apply + theorem Matrix.toEuclideanLin_apply + theorem Matrix.toEuclideanLin_apply_piLp_equiv_symm 2024-04-18 14:41:11 742d658 feat: add monotonicity theorems pertaining to the continuous functional calculus (#12224) ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/Quasispectrum.lean +/- theorem NonnegSpectrumClass.iff_spectrum_nonneg +/- theorem spectrum_nonneg_of_nonneg + theorem spectrum_subset_quasispectrum Modified Mathlib/Topology/ContinuousFunction/ContinuousMapZero.lean + theorem ContinuousMapZero.le_def Modified Mathlib/Topology/ContinuousFunction/FunctionalCalculus.lean + theorem algebraMap_le_cfc + theorem cfcHom_le_iff + theorem cfcHom_mono + theorem cfcHom_nonneg_iff + theorem cfc_cases + theorem cfc_le_algebraMap + theorem cfc_le_iff + theorem cfc_le_one + theorem cfc_mono + theorem cfc_nonneg + theorem cfc_nonneg_iff + theorem cfc_nonpos + theorem cfc_nonpos_iff + theorem one_le_cfc Modified Mathlib/Topology/ContinuousFunction/NonUnitalFunctionalCalculus.lean + theorem cfcₙHom_le_iff + theorem cfcₙHom_mono + theorem cfcₙHom_nonneg_iff + theorem cfcₙ_cases + theorem cfcₙ_le_iff + theorem cfcₙ_mono + theorem cfcₙ_nonneg + theorem cfcₙ_nonneg_iff + theorem cfcₙ_nonpos + theorem cfcₙ_nonpos_iff 2024-04-18 13:15:24 f83fe2f feat(CategoryTheory): more universe polymorphism for limits in sheaf categories (#12222) We prove that sheaf categories have limits and colimits of the same size as the target category. Before, the universe levels were too restrictive. We change the construction of the colimit: it now uses the formal properties of sheafification instead of an explicit construction. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Sites/Abelian.lean Modified Mathlib/CategoryTheory/Sites/LeftExact.lean Modified Mathlib/CategoryTheory/Sites/Limits.lean Modified Mathlib/Condensed/Abelian.lean 2024-04-18 11:47:22 fa2a388 feat: characterize totally disconnected sets in orders (#11752) ESTIMATED CHANGES Modified Mathlib/Data/Set/Intervals/OrdConnected.lean + theorem Set.not_ordConnected_inter_Icc_iff + theorem Set.ordConnected_inter_Icc_iff + theorem Set.ordConnected_inter_Icc_of_subset Modified Mathlib/Topology/Order/IntermediateValue.lean + theorem isTotallyDisconnected_iff_lt 2024-04-18 10:42:20 a445a6b fix: strengthen Dirichlet Unit Theorem (#12240) The theorem `NumberField.Units.exist_unique_eq_mul_prod` was using nested `∃!`'s rather than a single `∃!`. ESTIMATED CHANGES Modified Mathlib/NumberTheory/NumberField/Units.lean +/- theorem NumberField.Units.exist_unique_eq_mul_prod 2024-04-18 10:42:19 838bc13 chore: Rename `isnatCast`, delete `Int.cast_Nat_cast` (#12236) `Int.cast_Nat_cast` dates back to the ad-hoc port, in #206. ESTIMATED CHANGES Modified Mathlib/Algebra/Ring/Int.lean - theorem Int.cast_Nat_cast Modified Mathlib/Tactic/NormNum/Basic.lean + theorem Mathlib.Meta.NormNum.isNat_natCast - theorem Mathlib.Meta.NormNum.isnatCast Modified Mathlib/Tactic/ReduceModChar.lean 2024-04-18 10:42:18 e6ebf6f feat: `StarOrderedRing` instances on `ContinuousMap` (#12040) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Analysis/RCLike/Basic.lean Modified Mathlib/Data/Real/Sqrt.lean Added Mathlib/Topology/ContinuousFunction/StarOrdered.lean + theorem ContinuousMap.starOrderedRing_of_sqrt 2024-04-18 09:26:25 706b883 chore(CategoryTheory): move file about abelian sheaf categories to correct location (#12216) ESTIMATED CHANGES Modified Mathlib.lean Renamed Mathlib/Topology/Sheaves/Abelian.lean to Mathlib/CategoryTheory/Sites/Abelian.lean Modified Mathlib/Condensed/Abelian.lean 2024-04-18 09:26:24 dc34930 chore: update Std (#12210) ESTIMATED CHANGES Modified Mathlib/Data/Finset/NoncommProd.lean Modified Mathlib/Data/List/Basic.lean Modified Mathlib/Logic/Function/Basic.lean - theorem Function.funext_iff Modified lake-manifest.json Modified scripts/noshake.json 2024-04-18 09:26:23 a643996 feat(Algebra/Homology): compatibilities of homology and shifts (#11782) This PR studies the compatibilities of homology and shifts. This results into `ShiftSequence` instances for the homology functor in the `CochainComplex` and `HomotopyCategory` namespaces. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Homology/HomotopyCategory/Shift.lean + def CochainComplex.shiftEval Added Mathlib/Algebra/Homology/HomotopyCategory/ShiftSequence.lean + theorem CochainComplex.ShiftSequence.shiftIso_hom_app + theorem CochainComplex.ShiftSequence.shiftIso_inv_app + def CochainComplex.shiftShortComplexFunctor' + theorem CochainComplex.shiftShortComplexFunctorIso_add'_hom_app + theorem CochainComplex.shiftShortComplexFunctorIso_zero_add_hom_app + theorem HomotopyCategory.homologyShiftIso_hom_app Modified Mathlib/CategoryTheory/Preadditive/Basic.lean +/- theorem CategoryTheory.Preadditive.smul_iso_hom +/- theorem CategoryTheory.Preadditive.smul_iso_inv 2024-04-18 09:26:22 94860b3 feat(CategoryTheory): triangulated subcategories (#11740) This PR defines the type `Triangulated.Subcategory C` when `C` is a pretriangulated category. It also introduces a type class `CategoryTheory.ClosedUnderIsomorphisms` for a predicate on objects in a category `C`. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/ClosedUnderIsomorphisms.lean + def CategoryTheory.isoClosure + theorem CategoryTheory.isoClosure_eq_self + theorem CategoryTheory.isoClosure_le_iff + theorem CategoryTheory.le_isoClosure + theorem CategoryTheory.mem_iff_of_isIso + theorem CategoryTheory.mem_iff_of_iso + theorem CategoryTheory.mem_isoClosure + theorem CategoryTheory.mem_isoClosure_iff + theorem CategoryTheory.mem_of_isIso + theorem CategoryTheory.mem_of_iso + theorem CategoryTheory.monotone_isoClosure Added Mathlib/CategoryTheory/Triangulated/Subcategory.lean + theorem CategoryTheory.Triangulated.Subcategory.ext₂ + def CategoryTheory.Triangulated.Subcategory.isoClosure + def CategoryTheory.Triangulated.Subcategory.mk' + structure CategoryTheory.Triangulated.Subcategory 2024-04-18 09:26:20 1394cf1 feat(CategoryTheory/Localization): the localized category is preadditive (#11728) In this PR, it is shown that if `W : MorphismProperty C` has a left calculus of fractions and `C` is preadditive, then the localized category is also preadditive. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/CategoryTheory/Localization/CalculusOfFractions.lean + theorem CategoryTheory.MorphismProperty.LeftFraction.map_comp_map_eq_map Added Mathlib/CategoryTheory/Localization/CalculusOfFractions/Preadditive.lean + theorem CategoryTheory.Localization.Preadditive.add'_assoc + theorem CategoryTheory.Localization.Preadditive.add'_comm + theorem CategoryTheory.Localization.Preadditive.add'_comp + theorem CategoryTheory.Localization.Preadditive.add'_eq + theorem CategoryTheory.Localization.Preadditive.add'_left_neg' + theorem CategoryTheory.Localization.Preadditive.add'_map + theorem CategoryTheory.Localization.Preadditive.add'_zero + theorem CategoryTheory.Localization.Preadditive.add_comp + theorem CategoryTheory.Localization.Preadditive.add_eq + theorem CategoryTheory.Localization.Preadditive.add_eq_add + theorem CategoryTheory.Localization.Preadditive.comp_add' + theorem CategoryTheory.Localization.Preadditive.comp_add + def CategoryTheory.Localization.Preadditive.homEquiv + theorem CategoryTheory.Localization.Preadditive.map_add + theorem CategoryTheory.Localization.Preadditive.neg'_eq + theorem CategoryTheory.Localization.Preadditive.zero_add' + theorem CategoryTheory.Localization.functor_additive + def CategoryTheory.MorphismProperty.LeftFraction.neg + def CategoryTheory.MorphismProperty.LeftFraction₂.add + theorem CategoryTheory.MorphismProperty.LeftFraction₂.symm_add 2024-04-18 08:21:47 fd25283 chore: remove a few miscellaneous now-resolved porting notes (#12127) ESTIMATED CHANGES Modified Mathlib/Data/Multiset/Bind.lean Modified Mathlib/GroupTheory/OrderOfElement.lean Modified Mathlib/LinearAlgebra/TensorAlgebra/ToTensorPower.lean Modified Mathlib/RingTheory/Trace.lean Modified Mathlib/RingTheory/WittVector/Basic.lean Modified Mathlib/RingTheory/WittVector/IsPoly.lean 2024-04-18 08:21:46 dd2a5bc feat: translations of ample sets are ample (#12046) This was supposed to be included in #11344, as even the module docstring shows Inspired by the sphere-eversion project (but golfed and slightly extended). Also, use namespace AmpleSet in the file. ESTIMATED CHANGES Modified Mathlib/Analysis/Convex/AmpleSet.lean +/- theorem AmpleSet.image +/- theorem AmpleSet.image_iff +/- theorem AmpleSet.preimage +/- theorem AmpleSet.preimage_iff +/- theorem AmpleSet.union + theorem AmpleSet.vadd + theorem AmpleSet.vadd_iff 2024-04-18 08:21:44 1dc9339 doc(Manifold/Charted): document the fields of `Pregroupoid` (#11930) Similar to #9827. ESTIMATED CHANGES Modified Mathlib/Geometry/Manifold/ChartedSpace.lean Modified scripts/nolints.json 2024-04-18 08:21:43 7ab1837 feat(NumberTheory/Harmonic): asymptotics of Riemann zeta as s → 1 (#11794) Show that the constant term of the Laurent series of Riemann zeta at s = 1 is the Euler-Mascheroni `γ`. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Analysis/Asymptotics/Asymptotics.lean + theorem Asymptotics.isBigO_one_nhds_ne_iff Added Mathlib/NumberTheory/Harmonic/ZetaAsymp.lean + theorem ZetaAsymptotics.continuousOn_term + theorem ZetaAsymptotics.continuousOn_term_tsum + theorem ZetaAsymptotics.tendsto_riemannZeta_sub_one_div_nhds_right + theorem ZetaAsymptotics.term_nonneg + theorem ZetaAsymptotics.term_of_lt + theorem ZetaAsymptotics.term_one + theorem ZetaAsymptotics.term_sum_of_lt + theorem ZetaAsymptotics.term_sum_one + theorem ZetaAsymptotics.term_tsum_of_lt + theorem ZetaAsymptotics.term_tsum_one + theorem ZetaAsymptotics.term_welldef + theorem ZetaAsymptotics.zeta_limit_aux1 + theorem isBigO_riemannZeta_sub_one_div + theorem tendsto_riemannZeta_sub_one_div 2024-04-18 08:21:42 49a37b5 feat: Add `getVert_append` and `getVert_reverse` (#11787) ESTIMATED CHANGES Modified Mathlib/Combinatorics/SimpleGraph/Connectivity.lean + theorem SimpleGraph.Walk.getVert_append + theorem SimpleGraph.Walk.getVert_reverse 2024-04-18 08:21:41 7bcbba0 feat(NumberTheory/Harmonic): Euler-Mascheroni const = `-Γ'(1)` (#11611) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Analysis/Calculus/Deriv/Shift.lean + theorem deriv_comp_add_const + theorem deriv_comp_const_add Added Mathlib/NumberTheory/Harmonic/GammaDeriv.lean + theorem Complex.deriv_Gamma_nat + theorem Complex.differentiable_at_Gamma_nat_add_one + theorem Complex.hasDerivAt_Gamma_nat + theorem Complex.hasDerivAt_Gamma_one + theorem Real.deriv_Gamma_nat + theorem Real.eulerMascheroniConstant_eq_neg_deriv + theorem Real.hasDerivAt_Gamma_nat + theorem Real.hasDerivAt_Gamma_one 2024-04-18 07:19:07 2eed886 chore(FinEnum): `List.nthLe` -> `List.get` (#12220) ESTIMATED CHANGES Modified Mathlib/Data/FinEnum.lean +/- def FinEnum.ofNodupList 2024-04-18 07:19:06 1c5029c chore: tidy various files (#12213) ESTIMATED CHANGES Modified Mathlib/Algebra/Category/ModuleCat/Free.lean Modified Mathlib/Algebra/Homology/ExactSequence.lean Modified Mathlib/Algebra/Homology/Localization.lean Modified Mathlib/Analysis/Asymptotics/SpecificAsymptotics.lean Modified Mathlib/Analysis/Fourier/FourierTransformDeriv.lean Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Bounds.lean Modified Mathlib/Combinatorics/SimpleGraph/Basic.lean Modified Mathlib/Data/Complex/Order.lean Modified Mathlib/Data/Finset/Card.lean Modified Mathlib/Data/Finsupp/Defs.lean Modified Mathlib/FieldTheory/PurelyInseparable.lean Modified Mathlib/GroupTheory/Coxeter/Basic.lean Modified Mathlib/GroupTheory/Coxeter/Matrix.lean Modified Mathlib/LinearAlgebra/AffineSpace/ContinuousAffineEquiv.lean Modified Mathlib/LinearAlgebra/Matrix/ToLin.lean Modified Mathlib/LinearAlgebra/RootSystem/Basic.lean Modified Mathlib/LinearAlgebra/Trace.lean Modified Mathlib/MeasureTheory/Function/EssSup.lean Modified Mathlib/MeasureTheory/Function/L2Space.lean Modified Mathlib/MeasureTheory/Group/FundamentalDomain.lean Modified Mathlib/MeasureTheory/Integral/IntegralEqImproper.lean Modified Mathlib/MeasureTheory/Measure/Haar/Quotient.lean Modified Mathlib/NumberTheory/NumberField/CanonicalEmbedding/ConvexBody.lean Modified Mathlib/NumberTheory/NumberField/Discriminant.lean Modified Mathlib/Probability/Independence/Kernel.lean Modified Mathlib/RepresentationTheory/Action/Limits.lean Modified Mathlib/RingTheory/LaurentSeries.lean Modified Mathlib/RingTheory/MvPolynomial/Homogeneous.lean Modified Mathlib/Topology/Bases.lean Modified Mathlib/Topology/Defs/Basic.lean Modified Mathlib/Topology/Order.lean Modified Mathlib/Topology/PartitionOfUnity.lean 2024-04-18 06:50:11 0a626e7 fix: improve proofs in QuadraticModuleCat.Monoidal (#12233) These time out on nightly-testing, but are fixed by these changes. ESTIMATED CHANGES Modified Mathlib/Algebra/Category/ModuleCat/Basic.lean + theorem ModuleCat.of_coe Modified Mathlib/LinearAlgebra/QuadraticForm/QuadraticModuleCat.lean + theorem QuadraticModuleCat.moduleCat_of_toModuleCat Modified Mathlib/LinearAlgebra/QuadraticForm/QuadraticModuleCat/Monoidal.lean + theorem QuadraticModuleCat.toModuleCat_tensor 2024-04-18 06:50:10 eb70190 feat: lemmas about Array.extract (#11621) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Data/Array/ExtractLemmas.lean + theorem Array.extract_append_left + theorem Array.extract_append_right + theorem Array.extract_eq_nil_of_start_eq_end + theorem Array.extract_eq_of_size_le_end + theorem Array.extract_extract 2024-04-18 05:39:18 c92f1ee feat: make `ExistsUnique` notation throw an error when used with more than one binder (#12218) [Zulip discussion](https://leanprover.zulipchat.com/#narrow/stream/113489-new-members/topic/How.20can.20I.20say.20.22there.20exist.20unique.20a.2C.20b.20such.20that.2E.2E.2E.22.3F/near/433824047) ESTIMATED CHANGES Modified Mathlib/Analysis/BoxIntegral/Partition/Basic.lean Modified Mathlib/Data/Setoid/Partition.lean +/- theorem Setoid.classes_eqv_classes +/- theorem Setoid.eq_eqv_class_of_mem +/- theorem Setoid.eq_of_mem_eqv_class +/- theorem Setoid.eqv_class_mem' +/- theorem Setoid.eqv_class_mem +/- theorem Setoid.eqv_classes_disjoint +/- def Setoid.mkClasses Modified Mathlib/Init/Logic.lean + def Mathlib.Notation.isExplicitBinderSingular + def Mathlib.Notation.unexpandExistsUnique - def unexpandExistsUnique Modified Mathlib/Logic/Basic.lean Modified Mathlib/NumberTheory/NumberField/Units.lean +/- theorem NumberField.Units.exist_unique_eq_mul_prod Modified scripts/nolints.json 2024-04-18 05:39:17 df27bf7 chore(*): drop porting notes about `List.nthLe` → `List.get` (#12203) ESTIMATED CHANGES Modified Mathlib/Algebra/BigOperators/Fin.lean Modified Mathlib/Combinatorics/Young/YoungDiagram.lean +/- def YoungDiagram.ofRowLens Modified Mathlib/Data/List/Indexes.lean Modified Mathlib/LinearAlgebra/Matrix/Transvection.lean Modified Mathlib/Order/JordanHolder.lean 2024-04-18 05:39:15 278260f feat: `shake --explain` (#11982) * [x] Depends on: #11981 This adds a `--explain` flag to `shake` which will say, for each module in which it reports unnecessary imports, why all of the imports it is suggesting (as well as all the imports it does not recommend to remove) are required, in the form: ``` $ lake exe shake --explain ... ./././Mathlib/Tactic/Eqns.lean: remove #[Std.CodeAction.Attr, Std.Tactic.Lint.Basic] add #[Lean.Elab.InfoTree.Main, Lean.Elab.Exception] note: Mathlib.Tactic.Eqns requires Lean.Meta.Eqns because initFn✝ refers to Lean.Meta.EqnsExtState.map note: Mathlib.Tactic.Eqns requires Std.Lean.NameMapAttribute because eqnsAttribute refers to Lean.NameMapExtension note: Mathlib.Tactic.Eqns requires Lean.Elab.InfoTree.Main because initFn✝ refers to Lean.Elab.resolveGlobalConstNoOverloadWithInfo note: Mathlib.Tactic.Eqns requires Lean.Elab.Exception because initFn✝ refers to Lean.Elab.throwUnsupportedSyntax ``` ESTIMATED CHANGES Modified Shake/Main.lean + def getExplanations 2024-04-18 05:39:14 493a947 chore: split `Subsingleton,Nontrivial` off of `Data.Set.Basic` (#11832) Moves definition of and lemmas related to `Set.Subsingleton` and `Set.Nontrivial` to a new file, so that `Basic` can be shorter. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/BigOperators/Finprod.lean Modified Mathlib/Algebra/Module/Submodule/Lattice.lean Modified Mathlib/Algebra/Order/Floor.lean Modified Mathlib/AlgebraicGeometry/ProjectiveSpectrum/Topology.lean Modified Mathlib/AlgebraicTopology/FundamentalGroupoid/Basic.lean Modified Mathlib/CategoryTheory/CofilteredSystem.lean Modified Mathlib/CategoryTheory/Generator.lean Modified Mathlib/CategoryTheory/GradedObject.lean Modified Mathlib/CategoryTheory/Limits/Preserves/Ulift.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Types.lean Modified Mathlib/CategoryTheory/Preadditive/HomOrthogonal.lean Modified Mathlib/CategoryTheory/Sites/Grothendieck.lean Modified Mathlib/CategoryTheory/Subobject/Types.lean Modified Mathlib/Combinatorics/Enumerative/Composition.lean Modified Mathlib/Combinatorics/Enumerative/DoubleCounting.lean Modified Mathlib/Combinatorics/SetFamily/FourFunctions.lean Modified Mathlib/Computability/Halting.lean Modified Mathlib/Data/Finsupp/Basic.lean Modified Mathlib/Data/Nat/Parity.lean Modified Mathlib/Data/Part.lean Modified Mathlib/Data/Set/Basic.lean - theorem Set.Nonempty.exists_eq_singleton_or_nontrivial - theorem Set.Nontrivial.exists_lt - theorem Set.Nontrivial.exists_ne - theorem Set.Nontrivial.mono - theorem Set.Nontrivial.ne_singleton - theorem Set.Nontrivial.not_subset_empty - theorem Set.Nontrivial.not_subset_singleton - theorem Set.Nontrivial.pair_subset - theorem Set.Subsingleton.anti - theorem Set.Subsingleton.coe_sort - theorem Set.Subsingleton.eq_empty_or_singleton - theorem Set.Subsingleton.eq_singleton_of_mem - theorem Set.Subsingleton.induction_on - theorem Set.antitoneOn_singleton - theorem Set.eq_singleton_or_nontrivial - theorem Set.exists_eq_singleton_iff_nonempty_subsingleton - theorem Set.monotoneOn_singleton - theorem Set.nontrivial_coe_sort - theorem Set.nontrivial_iff_exists_lt - theorem Set.nontrivial_iff_exists_ne - theorem Set.nontrivial_iff_ne_singleton - theorem Set.nontrivial_iff_pair_subset - theorem Set.nontrivial_mono - theorem Set.nontrivial_of_exists_lt - theorem Set.nontrivial_of_exists_ne - theorem Set.nontrivial_of_lt - theorem Set.nontrivial_of_mem_mem_ne - theorem Set.nontrivial_of_nontrivial - theorem Set.nontrivial_of_nontrivial_coe - theorem Set.nontrivial_of_pair_subset - theorem Set.nontrivial_of_univ_nontrivial - theorem Set.nontrivial_pair - theorem Set.nontrivial_univ - theorem Set.nontrivial_univ_iff - theorem Set.not_nontrivial_empty - theorem Set.not_nontrivial_iff - theorem Set.not_nontrivial_singleton - theorem Set.not_subsingleton_iff - theorem Set.strictAntiOn_singleton - theorem Set.strictMonoOn_singleton - theorem Set.subsingleton_coe - theorem Set.subsingleton_empty - theorem Set.subsingleton_iff_singleton - theorem Set.subsingleton_isBot - theorem Set.subsingleton_isTop - theorem Set.subsingleton_of_forall_eq - theorem Set.subsingleton_of_subset_singleton - theorem Set.subsingleton_of_subsingleton - theorem Set.subsingleton_of_univ_subsingleton - theorem Set.subsingleton_singleton - theorem Set.subsingleton_univ - theorem Set.subsingleton_univ_iff - theorem Set.univ_eq_true_false Modified Mathlib/Data/Set/Countable.lean Modified Mathlib/Data/Set/Equitable.lean Modified Mathlib/Data/Set/Image.lean Modified Mathlib/Data/Set/Intervals/Basic.lean Added Mathlib/Data/Set/Subsingleton.lean + theorem Set.Nonempty.exists_eq_singleton_or_nontrivial + theorem Set.Nontrivial.exists_lt + theorem Set.Nontrivial.exists_ne + theorem Set.Nontrivial.mono + theorem Set.Nontrivial.ne_singleton + theorem Set.Nontrivial.not_subset_empty + theorem Set.Nontrivial.not_subset_singleton + theorem Set.Nontrivial.pair_subset + theorem Set.Subsingleton.anti + theorem Set.Subsingleton.coe_sort + theorem Set.Subsingleton.eq_empty_or_singleton + theorem Set.Subsingleton.eq_singleton_of_mem + theorem Set.Subsingleton.induction_on + theorem Set.antitoneOn_singleton + theorem Set.eq_singleton_or_nontrivial + theorem Set.exists_eq_singleton_iff_nonempty_subsingleton + theorem Set.monotoneOn_singleton + theorem Set.nontrivial_coe_sort + theorem Set.nontrivial_iff_exists_lt + theorem Set.nontrivial_iff_exists_ne + theorem Set.nontrivial_iff_ne_singleton + theorem Set.nontrivial_iff_pair_subset + theorem Set.nontrivial_mono + theorem Set.nontrivial_of_exists_lt + theorem Set.nontrivial_of_exists_ne + theorem Set.nontrivial_of_lt + theorem Set.nontrivial_of_mem_mem_ne + theorem Set.nontrivial_of_nontrivial + theorem Set.nontrivial_of_nontrivial_coe + theorem Set.nontrivial_of_pair_subset + theorem Set.nontrivial_of_univ_nontrivial + theorem Set.nontrivial_pair + theorem Set.nontrivial_univ + theorem Set.nontrivial_univ_iff + theorem Set.not_nontrivial_empty + theorem Set.not_nontrivial_iff + theorem Set.not_nontrivial_singleton + theorem Set.not_subsingleton_iff + theorem Set.strictAntiOn_singleton + theorem Set.strictMonoOn_singleton + theorem Set.subsingleton_coe + theorem Set.subsingleton_empty + theorem Set.subsingleton_iff_singleton + theorem Set.subsingleton_isBot + theorem Set.subsingleton_isTop + theorem Set.subsingleton_of_forall_eq + theorem Set.subsingleton_of_subset_singleton + theorem Set.subsingleton_of_subsingleton + theorem Set.subsingleton_of_univ_subsingleton + theorem Set.subsingleton_singleton + theorem Set.subsingleton_univ + theorem Set.subsingleton_univ_iff + theorem Set.univ_eq_true_false Modified Mathlib/GroupTheory/Coset.lean Modified Mathlib/GroupTheory/DoubleCoset.lean Modified Mathlib/GroupTheory/Subgroup/ZPowers.lean Modified Mathlib/LinearAlgebra/LinearIndependent.lean Modified Mathlib/Logic/Encodable/Lattice.lean Modified Mathlib/Order/Category/FinBoolAlg.lean Modified Mathlib/Order/Category/NonemptyFinLinOrd.lean Modified Mathlib/Order/Ideal.lean Modified Mathlib/Order/OrderIsoNat.lean Modified Mathlib/RingTheory/LocalProperties.lean Modified Mathlib/Topology/Category/CompHaus/Basic.lean Modified Mathlib/Topology/Category/TopCat/Limits/Products.lean Modified Mathlib/Topology/Category/TopCat/OpenNhds.lean Modified Mathlib/Topology/Sheaves/Presheaf.lean Modified test/nontriviality.lean Modified test/propose.lean 2024-04-18 05:39:13 03939bb chore: deprecate redundant theorems append_eq_cons_iff and cons_eq_append_iff (#11630) These theorems already exist in `Std`: https://github.com/leanprover/std4/blob/e5306c3b0edefe722370b7387ee9bcd4631d6c17/Std/Data/List/Lemmas.lean#L150-L157 ESTIMATED CHANGES Modified Mathlib/Data/List/Basic.lean - theorem List.append_eq_cons_iff - theorem List.cons_eq_append_iff Modified Mathlib/GroupTheory/FreeGroup/Basic.lean 2024-04-18 05:39:12 9c3efae feat: the category of sheaves of modules (#11479) This PR defines the category `SheafOfModules R` when `R` is a sheaf of rings on a category `C` equipped with a Grothendieck topology `J`. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Category/ModuleCat/Sheaf.lean + structure SheafOfModules.Hom + theorem SheafOfModules.comp_val + def SheafOfModules.forget + theorem SheafOfModules.hom_ext + theorem SheafOfModules.id_val + structure SheafOfModules 2024-04-18 04:28:48 0a52038 feat(Order/Hom): prove disjoint from order embedding (#12223) This adds 3 lemmas which state that if you have an order embedding `f` such that `f a₁` and `f a₂` are disjoint/codisjoint/complements, then the same holds for `a₁` and `a₂`. *Motivation*: For a project described [here](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/Derivations.20on.20Lie.20algebras), I wanted to know that if two Lie ideals are complements as submodules, then they are complements as Lie ideals too. I realized that the correct level of generality was probably in the `Order.Hom.Basic` file. *Caveats*: I am very much open to golfing/naming/redesign suggestions. Within the modified file, there was already a `Disjoint.map_orderIso` result, but it requires an `OrderIso` (not just a one-way embedding) and it requires a `SemilatticeInf` (whereas my version just uses `PartialOrder`). ESTIMATED CHANGES Modified Mathlib/Order/Hom/Basic.lean + theorem Codisjoint.of_orderEmbedding + theorem Disjoint.of_orderEmbedding + theorem IsCompl.of_orderEmbedding 2024-04-18 03:58:50 aa4476a feat(NumberTheory/EulerProduct/Basic): use infinite products, golf (#12161) This adds versions of the various Euler product statements in terms of the new topological products, namely `HasProd (fun p : Primes ↦ ∑' e, f (p ^ e)) (∑' n, f n)` and `∏' p : Primes, ∑' e, f (p ^ e) = ∑' n, f n` (and similar for completely multiplicative `f` in terms of `(1 - f p)⁻¹`). At the same time, I have reworked the proofs to some extent (in particular removing a few slow `convert`s). I also added a bunch of local instances that speed up instance synthesis by a factor of 2 (from 1.4 to 0.7 seconds on my laptop). Unfortunately, this means that the diff is fairly large. See [here](https://leanprover.zulipchat.com/#narrow/stream/144837-PR-reviews/topic/L-series/near/432666616) and [here](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/Infinite.20products/near/431508883) on Zulip. ESTIMATED CHANGES Modified Mathlib/NumberTheory/EulerProduct/Basic.lean +/- theorem EulerProduct.eulerProduct_completely_multiplicative + theorem EulerProduct.eulerProduct_completely_multiplicative_hasProd + theorem EulerProduct.eulerProduct_completely_multiplicative_tprod + theorem EulerProduct.eulerProduct_hasProd + theorem EulerProduct.eulerProduct_hasProd_mulIndicator + theorem EulerProduct.eulerProduct_tprod + theorem EulerProduct.norm_tsum_factoredNumbers_sub_tsum_lt + theorem EulerProduct.one_sub_inv_eq_geometric_of_summable_norm + theorem EulerProduct.prod_filter_prime_geometric_eq_tsum_factoredNumbers + theorem EulerProduct.prod_filter_prime_tsum_eq_tsum_factoredNumbers + theorem EulerProduct.summable_and_hasSum_factoredNumbers_prod_filter_prime_geometric + theorem EulerProduct.summable_and_hasSum_factoredNumbers_prod_filter_prime_tsum Modified Mathlib/Topology/Separation.lean 2024-04-18 03:26:56 3cf7243 chore: update lean-pr-testing reporting logic, now that the linter always runs (#12202) As reported [elsewhere](https://github.com/leanprover/lean4/pull/3808#issuecomment-2038473494). ESTIMATED CHANGES Modified scripts/lean-pr-testing-comments.sh 2024-04-18 03:26:55 ef0baa7 chore: move tests in `MonCat` to a test file (#11511) The unused tactic linter flagged the final example that this PR moves since it contains `match_target` and `guard_hyp`. ESTIMATED CHANGES Modified Mathlib/Algebra/Category/MonCat/Basic.lean Added test/MonCat.lean 2024-04-18 02:39:47 f4b4298 chore: replace `set_integral` with `setIntegral` (#12215) Done with a global search and replace, and then (to fix the `#align` lines), replace `(#align \S*)setIntegral` with `$1set_integral`. ESTIMATED CHANGES Modified Mathlib/Analysis/Calculus/BumpFunction/Normed.lean Modified Mathlib/Analysis/Convex/Integral.lean + theorem ae_eq_const_or_norm_setIntegral_lt_of_norm_le_const - theorem ae_eq_const_or_norm_set_integral_lt_of_norm_le_const Modified Mathlib/Analysis/Distribution/AEEqOfIntegralContDiff.lean Modified Mathlib/Analysis/Fourier/AddCircle.lean Modified Mathlib/Analysis/Fourier/RiemannLebesgueLemma.lean Modified Mathlib/Analysis/MellinTransform.lean Modified Mathlib/Analysis/SpecialFunctions/Gamma/Basic.lean Modified Mathlib/Analysis/SpecialFunctions/Gamma/Beta.lean Modified Mathlib/Analysis/SpecialFunctions/Gamma/BohrMollerup.lean Modified Mathlib/Analysis/SpecialFunctions/Gaussian/GaussianIntegral.lean Modified Mathlib/Analysis/SpecialFunctions/NonIntegrable.lean Modified Mathlib/Analysis/SpecialFunctions/PolarCoord.lean Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/EulerSineProd.lean Modified Mathlib/MeasureTheory/Constructions/HaarToSphere.lean Modified Mathlib/MeasureTheory/Constructions/Prod/Integral.lean + theorem MeasureTheory.setIntegral_prod + theorem MeasureTheory.setIntegral_prod_mul - theorem MeasureTheory.set_integral_prod - theorem MeasureTheory.set_integral_prod_mul Modified Mathlib/MeasureTheory/Decomposition/RadonNikodym.lean + theorem MeasureTheory.Measure.setIntegral_toReal_rnDeriv' + theorem MeasureTheory.Measure.setIntegral_toReal_rnDeriv + theorem MeasureTheory.Measure.setIntegral_toReal_rnDeriv_eq_withDensity' + theorem MeasureTheory.Measure.setIntegral_toReal_rnDeriv_eq_withDensity + theorem MeasureTheory.Measure.setIntegral_toReal_rnDeriv_le - theorem MeasureTheory.Measure.set_integral_toReal_rnDeriv' - theorem MeasureTheory.Measure.set_integral_toReal_rnDeriv - theorem MeasureTheory.Measure.set_integral_toReal_rnDeriv_eq_withDensity' - theorem MeasureTheory.Measure.set_integral_toReal_rnDeriv_eq_withDensity - theorem MeasureTheory.Measure.set_integral_toReal_rnDeriv_le Modified Mathlib/MeasureTheory/Function/AEEqOfIntegral.lean + theorem MeasureTheory.AEFinStronglyMeasurable.ae_eq_of_forall_setIntegral_eq - theorem MeasureTheory.AEFinStronglyMeasurable.ae_eq_of_forall_set_integral_eq + theorem MeasureTheory.AEFinStronglyMeasurable.ae_eq_zero_of_forall_setIntegral_eq_zero - theorem MeasureTheory.AEFinStronglyMeasurable.ae_eq_zero_of_forall_set_integral_eq_zero + theorem MeasureTheory.AEFinStronglyMeasurable.ae_nonneg_of_forall_setIntegral_nonneg - theorem MeasureTheory.AEFinStronglyMeasurable.ae_nonneg_of_forall_set_integral_nonneg + theorem MeasureTheory.Integrable.ae_eq_of_forall_setIntegral_eq - theorem MeasureTheory.Integrable.ae_eq_of_forall_set_integral_eq + theorem MeasureTheory.Integrable.ae_eq_zero_of_forall_setIntegral_eq_zero - theorem MeasureTheory.Integrable.ae_eq_zero_of_forall_set_integral_eq_zero + theorem MeasureTheory.Lp.ae_eq_of_forall_setIntegral_eq - theorem MeasureTheory.Lp.ae_eq_of_forall_set_integral_eq + theorem MeasureTheory.Lp.ae_eq_zero_of_forall_setIntegral_eq_zero - theorem MeasureTheory.Lp.ae_eq_zero_of_forall_set_integral_eq_zero + theorem MeasureTheory.ae_eq_of_forall_setIntegral_eq_of_sigmaFinite - theorem MeasureTheory.ae_eq_of_forall_set_integral_eq_of_sigmaFinite + theorem MeasureTheory.ae_eq_restrict_of_forall_setIntegral_eq - theorem MeasureTheory.ae_eq_restrict_of_forall_set_integral_eq + theorem MeasureTheory.ae_eq_zero_of_forall_setIntegral_eq_of_finStronglyMeasurable_trim + theorem MeasureTheory.ae_eq_zero_of_forall_setIntegral_eq_of_sigmaFinite + theorem MeasureTheory.ae_eq_zero_of_forall_setIntegral_isClosed_eq_zero + theorem MeasureTheory.ae_eq_zero_of_forall_setIntegral_isCompact_eq_zero' + theorem MeasureTheory.ae_eq_zero_of_forall_setIntegral_isCompact_eq_zero - theorem MeasureTheory.ae_eq_zero_of_forall_set_integral_eq_of_finStronglyMeasurable_trim - theorem MeasureTheory.ae_eq_zero_of_forall_set_integral_eq_of_sigmaFinite - theorem MeasureTheory.ae_eq_zero_of_forall_set_integral_isClosed_eq_zero - theorem MeasureTheory.ae_eq_zero_of_forall_set_integral_isCompact_eq_zero' - theorem MeasureTheory.ae_eq_zero_of_forall_set_integral_isCompact_eq_zero + theorem MeasureTheory.ae_eq_zero_restrict_of_forall_setIntegral_eq_zero + theorem MeasureTheory.ae_eq_zero_restrict_of_forall_setIntegral_eq_zero_real - theorem MeasureTheory.ae_eq_zero_restrict_of_forall_set_integral_eq_zero - theorem MeasureTheory.ae_eq_zero_restrict_of_forall_set_integral_eq_zero_real + theorem MeasureTheory.ae_le_of_forall_setIntegral_le - theorem MeasureTheory.ae_le_of_forall_set_integral_le + theorem MeasureTheory.ae_nonneg_of_forall_setIntegral_nonneg + theorem MeasureTheory.ae_nonneg_of_forall_setIntegral_nonneg_of_sigmaFinite + theorem MeasureTheory.ae_nonneg_of_forall_setIntegral_nonneg_of_stronglyMeasurable - theorem MeasureTheory.ae_nonneg_of_forall_set_integral_nonneg - theorem MeasureTheory.ae_nonneg_of_forall_set_integral_nonneg_of_sigmaFinite - theorem MeasureTheory.ae_nonneg_of_forall_set_integral_nonneg_of_stronglyMeasurable + theorem MeasureTheory.ae_nonneg_restrict_of_forall_setIntegral_nonneg + theorem MeasureTheory.ae_nonneg_restrict_of_forall_setIntegral_nonneg_inter - theorem MeasureTheory.ae_nonneg_restrict_of_forall_set_integral_nonneg - theorem MeasureTheory.ae_nonneg_restrict_of_forall_set_integral_nonneg_inter Modified Mathlib/MeasureTheory/Function/ConditionalExpectation/Basic.lean + theorem MeasureTheory.ae_eq_condexp_of_forall_setIntegral_eq - theorem MeasureTheory.ae_eq_condexp_of_forall_set_integral_eq + theorem MeasureTheory.setIntegral_condexp - theorem MeasureTheory.set_integral_condexp Modified Mathlib/MeasureTheory/Function/ConditionalExpectation/CondexpL1.lean + theorem MeasureTheory.setIntegral_condexpInd + theorem MeasureTheory.setIntegral_condexpL1 + theorem MeasureTheory.setIntegral_condexpL1CLM + theorem MeasureTheory.setIntegral_condexpL1CLM_of_measure_ne_top - theorem MeasureTheory.set_integral_condexpInd - theorem MeasureTheory.set_integral_condexpL1 - theorem MeasureTheory.set_integral_condexpL1CLM - theorem MeasureTheory.set_integral_condexpL1CLM_of_measure_ne_top Modified Mathlib/MeasureTheory/Function/ConditionalExpectation/CondexpL2.lean + theorem MeasureTheory.setIntegral_condexpIndSMul + theorem MeasureTheory.setIntegral_condexpL2_indicator - theorem MeasureTheory.set_integral_condexpIndSMul - theorem MeasureTheory.set_integral_condexpL2_indicator Modified Mathlib/MeasureTheory/Function/ConditionalExpectation/Indicator.lean Modified Mathlib/MeasureTheory/Function/ConditionalExpectation/Real.lean + theorem MeasureTheory.setIntegral_abs_condexp_le - theorem MeasureTheory.set_integral_abs_condexp_le Modified Mathlib/MeasureTheory/Function/ConditionalExpectation/Unique.lean + theorem MeasureTheory.Lp.ae_eq_of_forall_setIntegral_eq' - theorem MeasureTheory.Lp.ae_eq_of_forall_set_integral_eq' + theorem MeasureTheory.Lp.ae_eq_zero_of_forall_setIntegral_eq_zero' - theorem MeasureTheory.Lp.ae_eq_zero_of_forall_set_integral_eq_zero' + theorem MeasureTheory.ae_eq_of_forall_setIntegral_eq_of_sigmaFinite' - theorem MeasureTheory.ae_eq_of_forall_set_integral_eq_of_sigmaFinite' + theorem MeasureTheory.lpMeas.ae_eq_zero_of_forall_setIntegral_eq_zero - theorem MeasureTheory.lpMeas.ae_eq_zero_of_forall_set_integral_eq_zero Modified Mathlib/MeasureTheory/Function/Jacobian.lean Modified Mathlib/MeasureTheory/Function/L2Space.lean + theorem MeasureTheory.L2.inner_indicatorConstLp_eq_inner_setIntegral - theorem MeasureTheory.L2.inner_indicatorConstLp_eq_inner_set_integral + theorem MeasureTheory.L2.inner_indicatorConstLp_eq_setIntegral_inner - theorem MeasureTheory.L2.inner_indicatorConstLp_eq_set_integral_inner Modified Mathlib/MeasureTheory/Group/FundamentalDomain.lean + theorem MeasureTheory.IsFundamentalDomain.setIntegral_eq_tsum' + theorem MeasureTheory.IsFundamentalDomain.setIntegral_eq_tsum - theorem MeasureTheory.IsFundamentalDomain.set_integral_eq_tsum' - theorem MeasureTheory.IsFundamentalDomain.set_integral_eq_tsum Modified Mathlib/MeasureTheory/Integral/Average.lean Modified Mathlib/MeasureTheory/Integral/Bochner.lean + theorem MeasureTheory.HasFiniteIntegral.tendsto_setIntegral_nhds_zero - theorem MeasureTheory.HasFiniteIntegral.tendsto_set_integral_nhds_zero + theorem MeasureTheory.Integrable.tendsto_setIntegral_nhds_zero - theorem MeasureTheory.Integrable.tendsto_set_integral_nhds_zero + theorem MeasureTheory.setIntegral_dirac' + theorem MeasureTheory.setIntegral_dirac - theorem MeasureTheory.set_integral_dirac' - theorem MeasureTheory.set_integral_dirac + theorem MeasureTheory.tendsto_setIntegral_of_L1' + theorem MeasureTheory.tendsto_setIntegral_of_L1 - theorem MeasureTheory.tendsto_set_integral_of_L1' - theorem MeasureTheory.tendsto_set_integral_of_L1 Modified Mathlib/MeasureTheory/Integral/DivergenceTheorem.lean Modified Mathlib/MeasureTheory/Integral/DominatedConvergence.lean + theorem Antitone.tendsto_setIntegral - theorem Antitone.tendsto_set_integral Modified Mathlib/MeasureTheory/Integral/FundThmCalculus.lean Modified Mathlib/MeasureTheory/Integral/Gamma.lean Modified Mathlib/MeasureTheory/Integral/IntegralEqImproper.lean Modified Mathlib/MeasureTheory/Integral/IntervalIntegral.lean Modified Mathlib/MeasureTheory/Integral/Layercake.lean Modified Mathlib/MeasureTheory/Integral/PeakFunction.lean + theorem tendsto_setIntegral_peak_smul_of_integrableOn_of_tendsto + theorem tendsto_setIntegral_peak_smul_of_integrableOn_of_tendsto_aux + theorem tendsto_setIntegral_pow_smul_of_unique_maximum_of_isCompact_of_continuousOn + theorem tendsto_setIntegral_pow_smul_of_unique_maximum_of_isCompact_of_integrableOn + theorem tendsto_setIntegral_pow_smul_of_unique_maximum_of_isCompact_of_measure_nhdsWithin_pos - theorem tendsto_set_integral_peak_smul_of_integrableOn_of_tendsto - theorem tendsto_set_integral_peak_smul_of_integrableOn_of_tendsto_aux - theorem tendsto_set_integral_pow_smul_of_unique_maximum_of_isCompact_of_continuousOn - theorem tendsto_set_integral_pow_smul_of_unique_maximum_of_isCompact_of_integrableOn - theorem tendsto_set_integral_pow_smul_of_unique_maximum_of_isCompact_of_measure_nhdsWithin_pos Modified Mathlib/MeasureTheory/Integral/Periodic.lean Modified Mathlib/MeasureTheory/Integral/SetIntegral.lean + theorem ClosedEmbedding.setIntegral_map - theorem ClosedEmbedding.set_integral_map + theorem ContinuousLinearMap.setIntegral_compLp - theorem ContinuousLinearMap.set_integral_compLp + theorem MeasurableEmbedding.setIntegral_map - theorem MeasurableEmbedding.set_integral_map + theorem MeasureTheory.MeasurePreserving.setIntegral_image_emb + theorem MeasureTheory.MeasurePreserving.setIntegral_preimage_emb - theorem MeasureTheory.MeasurePreserving.set_integral_image_emb - theorem MeasureTheory.MeasurePreserving.set_integral_preimage_emb + theorem MeasureTheory.continuous_setIntegral - theorem MeasureTheory.continuous_set_integral + theorem MeasureTheory.norm_setIntegral_le_of_norm_le_const' + theorem MeasureTheory.norm_setIntegral_le_of_norm_le_const + theorem MeasureTheory.norm_setIntegral_le_of_norm_le_const_ae'' + theorem MeasureTheory.norm_setIntegral_le_of_norm_le_const_ae' + theorem MeasureTheory.norm_setIntegral_le_of_norm_le_const_ae - theorem MeasureTheory.norm_set_integral_le_of_norm_le_const' - theorem MeasureTheory.norm_set_integral_le_of_norm_le_const - theorem MeasureTheory.norm_set_integral_le_of_norm_le_const_ae'' - theorem MeasureTheory.norm_set_integral_le_of_norm_le_const_ae' - theorem MeasureTheory.norm_set_integral_le_of_norm_le_const_ae + theorem MeasureTheory.ofReal_setIntegral_one + theorem MeasureTheory.ofReal_setIntegral_one_of_measure_ne_top - theorem MeasureTheory.ofReal_set_integral_one - theorem MeasureTheory.ofReal_set_integral_one_of_measure_ne_top + theorem MeasureTheory.setIntegral_congr + theorem MeasureTheory.setIntegral_congr_ae + theorem MeasureTheory.setIntegral_congr_ae₀ + theorem MeasureTheory.setIntegral_congr_set_ae + theorem MeasureTheory.setIntegral_congr₀ + theorem MeasureTheory.setIntegral_const + theorem MeasureTheory.setIntegral_eq_integral_of_ae_compl_eq_zero + theorem MeasureTheory.setIntegral_eq_integral_of_forall_compl_eq_zero + theorem MeasureTheory.setIntegral_eq_of_subset_of_ae_diff_eq_zero + theorem MeasureTheory.setIntegral_eq_of_subset_of_ae_diff_eq_zero_aux + theorem MeasureTheory.setIntegral_eq_of_subset_of_forall_diff_eq_zero + theorem MeasureTheory.setIntegral_eq_zero_iff_of_nonneg_ae + theorem MeasureTheory.setIntegral_eq_zero_of_ae_eq_zero + theorem MeasureTheory.setIntegral_eq_zero_of_forall_eq_zero + theorem MeasureTheory.setIntegral_ge_of_const_le + theorem MeasureTheory.setIntegral_gt_gt + theorem MeasureTheory.setIntegral_indicator + theorem MeasureTheory.setIntegral_indicatorConstLp + theorem MeasureTheory.setIntegral_le_integral + theorem MeasureTheory.setIntegral_le_nonneg + theorem MeasureTheory.setIntegral_map + theorem MeasureTheory.setIntegral_map_equiv + theorem MeasureTheory.setIntegral_mono + theorem MeasureTheory.setIntegral_mono_ae + theorem MeasureTheory.setIntegral_mono_ae_restrict + theorem MeasureTheory.setIntegral_mono_on + theorem MeasureTheory.setIntegral_mono_on_ae + theorem MeasureTheory.setIntegral_mono_set + theorem MeasureTheory.setIntegral_neg_eq_setIntegral_nonpos + theorem MeasureTheory.setIntegral_nonneg + theorem MeasureTheory.setIntegral_nonneg_ae + theorem MeasureTheory.setIntegral_nonneg_of_ae + theorem MeasureTheory.setIntegral_nonneg_of_ae_restrict + theorem MeasureTheory.setIntegral_nonpos + theorem MeasureTheory.setIntegral_nonpos_ae + theorem MeasureTheory.setIntegral_nonpos_le + theorem MeasureTheory.setIntegral_nonpos_of_ae + theorem MeasureTheory.setIntegral_nonpos_of_ae_restrict + theorem MeasureTheory.setIntegral_pos_iff_support_of_nonneg_ae + theorem MeasureTheory.setIntegral_trim - theorem MeasureTheory.set_integral_congr - theorem MeasureTheory.set_integral_congr_ae - theorem MeasureTheory.set_integral_congr_ae₀ - theorem MeasureTheory.set_integral_congr_set_ae - theorem MeasureTheory.set_integral_congr₀ - theorem MeasureTheory.set_integral_const - theorem MeasureTheory.set_integral_eq_integral_of_ae_compl_eq_zero - theorem MeasureTheory.set_integral_eq_integral_of_forall_compl_eq_zero - theorem MeasureTheory.set_integral_eq_of_subset_of_ae_diff_eq_zero - theorem MeasureTheory.set_integral_eq_of_subset_of_ae_diff_eq_zero_aux - theorem MeasureTheory.set_integral_eq_of_subset_of_forall_diff_eq_zero - theorem MeasureTheory.set_integral_eq_zero_iff_of_nonneg_ae - theorem MeasureTheory.set_integral_eq_zero_of_ae_eq_zero - theorem MeasureTheory.set_integral_eq_zero_of_forall_eq_zero - theorem MeasureTheory.set_integral_ge_of_const_le - theorem MeasureTheory.set_integral_gt_gt - theorem MeasureTheory.set_integral_indicator - theorem MeasureTheory.set_integral_indicatorConstLp - theorem MeasureTheory.set_integral_le_integral - theorem MeasureTheory.set_integral_le_nonneg - theorem MeasureTheory.set_integral_map - theorem MeasureTheory.set_integral_map_equiv - theorem MeasureTheory.set_integral_mono - theorem MeasureTheory.set_integral_mono_ae - theorem MeasureTheory.set_integral_mono_ae_restrict - theorem MeasureTheory.set_integral_mono_on - theorem MeasureTheory.set_integral_mono_on_ae - theorem MeasureTheory.set_integral_mono_set - theorem MeasureTheory.set_integral_neg_eq_set_integral_nonpos - theorem MeasureTheory.set_integral_nonneg - theorem MeasureTheory.set_integral_nonneg_ae - theorem MeasureTheory.set_integral_nonneg_of_ae - theorem MeasureTheory.set_integral_nonneg_of_ae_restrict - theorem MeasureTheory.set_integral_nonpos - theorem MeasureTheory.set_integral_nonpos_ae - theorem MeasureTheory.set_integral_nonpos_le - theorem MeasureTheory.set_integral_nonpos_of_ae - theorem MeasureTheory.set_integral_nonpos_of_ae_restrict - theorem MeasureTheory.set_integral_pos_iff_support_of_nonneg_ae - theorem MeasureTheory.set_integral_trim + theorem MeasureTheory.tendsto_setIntegral_of_antitone + theorem MeasureTheory.tendsto_setIntegral_of_monotone - theorem MeasureTheory.tendsto_set_integral_of_antitone - theorem MeasureTheory.tendsto_set_integral_of_monotone + theorem setIntegral_re_add_im + theorem setIntegral_withDensity_eq_setIntegral_smul + theorem setIntegral_withDensity_eq_setIntegral_smul₀' + theorem setIntegral_withDensity_eq_setIntegral_smul₀ - theorem set_integral_re_add_im - theorem set_integral_withDensity_eq_set_integral_smul - theorem set_integral_withDensity_eq_set_integral_smul₀' - theorem set_integral_withDensity_eq_set_integral_smul₀ Modified Mathlib/MeasureTheory/Integral/TorusIntegral.lean Modified Mathlib/MeasureTheory/Measure/Haar/NormedSpace.lean + theorem MeasureTheory.Measure.setIntegral_comp_smul + theorem MeasureTheory.Measure.setIntegral_comp_smul_of_pos - theorem MeasureTheory.Measure.set_integral_comp_smul - theorem MeasureTheory.Measure.set_integral_comp_smul_of_pos Modified Mathlib/MeasureTheory/Measure/Lebesgue/Integral.lean Modified Mathlib/MeasureTheory/Measure/LevyProkhorovMetric.lean Modified Mathlib/MeasureTheory/Measure/Tilted.lean + theorem MeasureTheory.setIntegral_tilted' + theorem MeasureTheory.setIntegral_tilted - theorem MeasureTheory.set_integral_tilted' - theorem MeasureTheory.set_integral_tilted Modified Mathlib/MeasureTheory/Measure/WithDensityVectorMeasure.lean Modified Mathlib/NumberTheory/LSeries/AbstractFuncEq.lean Modified Mathlib/NumberTheory/LSeries/MellinEqDirichlet.lean Modified Mathlib/NumberTheory/ZetaFunction.lean Modified Mathlib/Probability/ConditionalExpectation.lean Modified Mathlib/Probability/Kernel/Basic.lean + theorem ProbabilityTheory.kernel.setIntegral_const + theorem ProbabilityTheory.kernel.setIntegral_deterministic' + theorem ProbabilityTheory.kernel.setIntegral_deterministic + theorem ProbabilityTheory.kernel.setIntegral_piecewise + theorem ProbabilityTheory.kernel.setIntegral_restrict - theorem ProbabilityTheory.kernel.set_integral_const - theorem ProbabilityTheory.kernel.set_integral_deterministic' - theorem ProbabilityTheory.kernel.set_integral_deterministic - theorem ProbabilityTheory.kernel.set_integral_piecewise - theorem ProbabilityTheory.kernel.set_integral_restrict Modified Mathlib/Probability/Kernel/CondDistrib.lean Modified Mathlib/Probability/Kernel/Disintegration/Basic.lean Modified Mathlib/Probability/Kernel/Disintegration/CdfToKernel.lean + theorem ProbabilityTheory.IsRatCondKernelCDFAux.setIntegral_iInf_rat_gt - theorem ProbabilityTheory.IsRatCondKernelCDFAux.set_integral_iInf_rat_gt + theorem ProbabilityTheory.setIntegral_stieltjesOfMeasurableRat + theorem ProbabilityTheory.setIntegral_stieltjesOfMeasurableRat_rat - theorem ProbabilityTheory.set_integral_stieltjesOfMeasurableRat - theorem ProbabilityTheory.set_integral_stieltjesOfMeasurableRat_rat Modified Mathlib/Probability/Kernel/Disintegration/CondCdf.lean + theorem ProbabilityTheory.setIntegral_condCDF + theorem ProbabilityTheory.setIntegral_preCDF_fst - theorem ProbabilityTheory.set_integral_condCDF - theorem ProbabilityTheory.set_integral_preCDF_fst Modified Mathlib/Probability/Kernel/Disintegration/Density.lean + theorem ProbabilityTheory.kernel.setIntegral_density + theorem ProbabilityTheory.kernel.setIntegral_densityProcess + theorem ProbabilityTheory.kernel.setIntegral_densityProcess_of_le + theorem ProbabilityTheory.kernel.setIntegral_densityProcess_of_mem + theorem ProbabilityTheory.kernel.setIntegral_density_of_measurableSet - theorem ProbabilityTheory.kernel.set_integral_density - theorem ProbabilityTheory.kernel.set_integral_densityProcess - theorem ProbabilityTheory.kernel.set_integral_densityProcess_of_le - theorem ProbabilityTheory.kernel.set_integral_densityProcess_of_mem - theorem ProbabilityTheory.kernel.set_integral_density_of_measurableSet + theorem ProbabilityTheory.kernel.tendsto_setIntegral_densityProcess - theorem ProbabilityTheory.kernel.tendsto_set_integral_densityProcess Modified Mathlib/Probability/Kernel/Disintegration/Integral.lean + theorem MeasureTheory.Measure.setIntegral_condKernel + theorem MeasureTheory.Measure.setIntegral_condKernel_univ_left + theorem MeasureTheory.Measure.setIntegral_condKernel_univ_right - theorem MeasureTheory.Measure.set_integral_condKernel - theorem MeasureTheory.Measure.set_integral_condKernel_univ_left - theorem MeasureTheory.Measure.set_integral_condKernel_univ_right + theorem ProbabilityTheory.setIntegral_condKernel + theorem ProbabilityTheory.setIntegral_condKernel_univ_left + theorem ProbabilityTheory.setIntegral_condKernel_univ_right - theorem ProbabilityTheory.set_integral_condKernel - theorem ProbabilityTheory.set_integral_condKernel_univ_left - theorem ProbabilityTheory.set_integral_condKernel_univ_right Modified Mathlib/Probability/Kernel/IntegralCompProd.lean + theorem ProbabilityTheory.setIntegral_compProd + theorem ProbabilityTheory.setIntegral_compProd_univ_left + theorem ProbabilityTheory.setIntegral_compProd_univ_right - theorem ProbabilityTheory.set_integral_compProd - theorem ProbabilityTheory.set_integral_compProd_univ_left - theorem ProbabilityTheory.set_integral_compProd_univ_right Modified Mathlib/Probability/Kernel/MeasureCompProd.lean + theorem MeasureTheory.Measure.setIntegral_compProd - theorem MeasureTheory.Measure.set_integral_compProd Modified Mathlib/Probability/Martingale/Basic.lean + theorem MeasureTheory.Martingale.setIntegral_eq - theorem MeasureTheory.Martingale.set_integral_eq + theorem MeasureTheory.Submartingale.setIntegral_le - theorem MeasureTheory.Submartingale.set_integral_le + theorem MeasureTheory.Supermartingale.setIntegral_le - theorem MeasureTheory.Supermartingale.set_integral_le + theorem MeasureTheory.martingale_of_setIntegral_eq_succ - theorem MeasureTheory.martingale_of_set_integral_eq_succ + theorem MeasureTheory.submartingale_of_setIntegral_le + theorem MeasureTheory.submartingale_of_setIntegral_le_succ - theorem MeasureTheory.submartingale_of_set_integral_le - theorem MeasureTheory.submartingale_of_set_integral_le_succ + theorem MeasureTheory.supermartingale_of_setIntegral_succ_le - theorem MeasureTheory.supermartingale_of_set_integral_succ_le Modified Mathlib/Probability/Martingale/BorelCantelli.lean Modified Mathlib/Probability/Martingale/Convergence.lean Modified Mathlib/Probability/Martingale/OptionalStopping.lean Modified Mathlib/Probability/Martingale/Upcrossing.lean Modified Mathlib/Probability/Moments.lean Modified Mathlib/Probability/StrongLaw.lean Modified scripts/style-exceptions.txt 2024-04-18 01:55:06 e52c912 chore: improve tests for `ToExpr` derive handler (#12225) The TODO seems to have solved itself, and `#guard_msgs` can be used to actually test the error condition. ESTIMATED CHANGES Modified test/DeriveToExpr.lean 2024-04-18 01:19:36 4291614 feat(CategoryTheory): more lemmas for the calculus of fractions (#11737) We introduce lemmas on fractions which shall be useful when constructing the preadditive structure on the localized category. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Localization/CalculusOfFractions/Fractions.lean + theorem CategoryTheory.Localization.exists_leftFraction₂ + theorem CategoryTheory.Localization.exists_leftFraction₃ + def CategoryTheory.MorphismProperty.LeftFraction₂.fst + theorem CategoryTheory.MorphismProperty.LeftFraction₂.map_eq_iff + def CategoryTheory.MorphismProperty.LeftFraction₂.snd + def CategoryTheory.MorphismProperty.LeftFraction₂.symm + structure CategoryTheory.MorphismProperty.LeftFraction₂ + theorem CategoryTheory.MorphismProperty.LeftFraction₂Rel.fst + theorem CategoryTheory.MorphismProperty.LeftFraction₂Rel.snd + def CategoryTheory.MorphismProperty.LeftFraction₂Rel + def CategoryTheory.MorphismProperty.LeftFraction₃.forgetFst + def CategoryTheory.MorphismProperty.LeftFraction₃.forgetSnd + def CategoryTheory.MorphismProperty.LeftFraction₃.forgetThd + def CategoryTheory.MorphismProperty.LeftFraction₃.fst + def CategoryTheory.MorphismProperty.LeftFraction₃.snd + def CategoryTheory.MorphismProperty.LeftFraction₃.thd + structure CategoryTheory.MorphismProperty.LeftFraction₃ + theorem CategoryTheory.MorphismProperty.RightFraction₂.exists_leftFraction₂ + def CategoryTheory.MorphismProperty.RightFraction₂.fst + def CategoryTheory.MorphismProperty.RightFraction₂.snd + structure CategoryTheory.MorphismProperty.RightFraction₂ 2024-04-18 00:54:35 cf5f629 feat(CategoryTheory/Shift): the induced shift sequence (#11764) When `G : C ⥤ A` is a functor from a category equipped with a shift by a monoid `M`, we have defined in the file `CategoryTheory.Shift.ShiftSequence` a type class `G.ShiftSequence M` which provides functors `G.shift a : C ⥤ A` for all `a : M`, isomorphisms `shiftFunctor C n ⋙ G.shift a ≅ G.shift a'` when `n + a = a'`, and isomorphisms `G.isoShift a : shiftFunctor C a ⋙ G ≅ G.shift a` for all `a`, all of which satisfy good coherence properties. The idea is that it allows to use functors `G.shift a` which may have better definitional properties than `shiftFunctor C a ⋙ G`. The typical example shall be `[(homologyFunctor C (ComplexShape.up ℤ) 0).ShiftSequence ℤ]` for any abelian category `C`. Similarly as a shift on categories may induce a shift on a quotient or a localized category (see the file `CategoryTheory.Shift.Induced`), this PR shows that under certain assumptions, there is an induced "shift sequence". In future PR, this will be applied to the construction of a shift sequence for the homology functor on the homotopy category of cochain complexes, and also on the derived category. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Shift/InducedShiftSequence.lean + theorem CategoryTheory.Functor.ShiftSequence.induced.isoZero_hom_app_obj + theorem CategoryTheory.Functor.ShiftSequence.induced.shiftIso_hom_app_obj + theorem CategoryTheory.Functor.ShiftSequence.induced_isoShiftZero_hom_app_obj + theorem CategoryTheory.Functor.ShiftSequence.induced_shiftIso_hom_app_obj 2024-04-17 23:47:13 2036584 chore(AdmissibleAbsoluteValue): golf, `nthLe` → `get` (#12219) ESTIMATED CHANGES Modified Mathlib/NumberTheory/ClassNumber/AdmissibleAbsoluteValue.lean 2024-04-17 20:41:01 48970a4 feat: characteristic polynomials of linear families of endomorphisms (#11773) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Module/LinearMap/Polynomial.lean + def LinearMap.polyCharpoly + def LinearMap.polyCharpolyAux + theorem LinearMap.polyCharpolyAux_baseChange + theorem LinearMap.polyCharpolyAux_basisIndep + theorem LinearMap.polyCharpolyAux_coeff_eval + theorem LinearMap.polyCharpolyAux_eval_eq_toMatrix_charpoly_coeff + theorem LinearMap.polyCharpolyAux_map_aeval + theorem LinearMap.polyCharpolyAux_map_eq_charpoly + theorem LinearMap.polyCharpolyAux_map_eq_toMatrix_charpoly + theorem LinearMap.polyCharpolyAux_map_eval + theorem LinearMap.polyCharpoly_baseChange + theorem LinearMap.polyCharpoly_coeff_eval + theorem LinearMap.polyCharpoly_coeff_isHomogeneous + theorem LinearMap.polyCharpoly_coeff_map + theorem LinearMap.polyCharpoly_eq_of_basis + theorem LinearMap.polyCharpoly_monic + theorem LinearMap.polyCharpoly_natDegree + theorem LinearMap.polyCharpoly_ne_zero + def LinearMap.toMvPolynomial + theorem LinearMap.toMvPolynomial_add + theorem LinearMap.toMvPolynomial_baseChange + theorem LinearMap.toMvPolynomial_comp + theorem LinearMap.toMvPolynomial_constantCoeff + theorem LinearMap.toMvPolynomial_eval_eq_apply + theorem LinearMap.toMvPolynomial_isHomogeneous + theorem LinearMap.toMvPolynomial_totalDegree_le + theorem LinearMap.toMvPolynomial_zero + def Matrix.toMvPolynomial + theorem Matrix.toMvPolynomial_add + theorem Matrix.toMvPolynomial_constantCoeff + theorem Matrix.toMvPolynomial_eval_eq_apply + theorem Matrix.toMvPolynomial_isHomogeneous + theorem Matrix.toMvPolynomial_map + theorem Matrix.toMvPolynomial_mul + theorem Matrix.toMvPolynomial_totalDegree_le + theorem Matrix.toMvPolynomial_zero Modified Mathlib/Algebra/MvPolynomial/Degrees.lean + theorem MvPolynomial.totalDegree_monomial_le Modified Mathlib/LinearAlgebra/Matrix/ToLin.lean + theorem Basis.end_apply + theorem Basis.end_apply_apply + def Basis.linearMap + theorem Basis.linearMap_apply + theorem Basis.linearMap_apply_apply Modified Mathlib/RingTheory/TensorProduct/Basic.lean +/- theorem Algebra.TensorProduct.basis_apply +/- theorem Algebra.TensorProduct.basis_repr_symm_apply' + theorem Basis.baseChange_end + theorem Basis.baseChange_linearMap + def LinearMap.tensorProduct + def LinearMap.tensorProductEnd 2024-04-17 16:44:05 85a4719 feat (RingTheory/PowerSeries): Add basic lemmas aiming at proving that power series over a field are a DVR (#12160) Add some basic lemmas about (univariate) power series over fields and their inverses, aiming at proving that they form a DVR. ESTIMATED CHANGES Modified Mathlib/RingTheory/PowerSeries/Basic.lean + theorem PowerSeries.C_injective + theorem PowerSeries.X_irreducible + theorem PowerSeries.constantCoeff_surj + theorem PowerSeries.not_isField Modified Mathlib/RingTheory/PowerSeries/Inverse.lean + def PowerSeries.Inv_divided_by_X_pow_order + theorem PowerSeries.Inv_divided_by_X_pow_order_leftInv + theorem PowerSeries.Inv_divided_by_X_pow_order_rightInv + def PowerSeries.Unit_of_divided_by_X_pow_order + theorem PowerSeries.Unit_of_divided_by_X_pow_order_nonzero + theorem PowerSeries.Unit_of_divided_by_X_pow_order_zero +/- theorem PowerSeries.X_inv +/- theorem PowerSeries.coeff_inv +/- theorem PowerSeries.constantCoeff_inv + theorem PowerSeries.eq_divided_by_X_pow_order_Iff_Unit +/- theorem PowerSeries.eq_inv_iff_mul_eq_one +/- theorem PowerSeries.eq_mul_inv_iff_mul_eq + def PowerSeries.firstUnitCoeff + theorem PowerSeries.hasUnitMulPowIrreducibleFactorization +/- theorem PowerSeries.invOfUnit_eq' +/- theorem PowerSeries.invOfUnit_eq +/- theorem PowerSeries.inv_eq_iff_mul_eq_one +/- theorem PowerSeries.inv_eq_inv_aux +/- theorem PowerSeries.inv_eq_zero + theorem PowerSeries.isUnit_divided_by_X_pow_order + theorem PowerSeries.ker_coeff_eq_max_ideal + theorem PowerSeries.maximalIdeal_eq_span_X + def PowerSeries.residueFieldOfPowerSeries +/- theorem PowerSeries.smul_inv +/- theorem PowerSeries.zero_inv Modified Mathlib/RingTheory/PowerSeries/Order.lean + def PowerSeries.divided_by_X_pow_order + theorem PowerSeries.divided_by_X_pow_orderMul + theorem PowerSeries.divided_by_X_pow_order_of_X_eq_one + theorem PowerSeries.order_zero_of_unit + theorem PowerSeries.self_eq_X_pow_order_mul_divided_by_X_pow_order 2024-04-17 16:06:04 726f2a5 feat(MeasureTheory/Constructions/Polish): generalize topological assumptions to measurable ones. (#12069) Several theorems in MeasureTheory/Constructions/Polish.lean about measurable sets, functions, etc. assume that a space is a `BorelSpace` or `OpensMeasurableSpace` for some nice topology. This PR removes the topological data from such theorems when possible, replacing them with sufficient and natural assumptions on `MeasurableSpace`'s. The old versions of the theorems still work automatically thanks to TC inference. *TODO*: Add `CountablySeparated` typeclass abbreviating `HasCountableSeparatingOn _ MeasurableSet univ`. ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Constructions/BorelSpace/Basic.lean + theorem exists_borelSpace_of_countablyGenerated_of_separatesPoints + theorem exists_opensMeasurableSpace_of_hasCountableSeparatingOn Modified Mathlib/MeasureTheory/Constructions/Polish.lean +/- theorem Measurable.map_measurableSpace_eq +/- theorem Measurable.measurableEmbedding +/- theorem Measurable.measurableSet_preimage_iff_inter_range +/- theorem Measurable.measurableSet_preimage_iff_of_surjective +/- theorem Measurable.measurableSet_preimage_iff_preimage_val +/- theorem Measurable.measurable_comp_iff_of_surjective +/- theorem Measurable.measurable_comp_iff_restrict +/- theorem MeasurableSet.image_of_measurable_injOn Modified Mathlib/MeasureTheory/MeasurableSpace/CountablyGenerated.lean + theorem MeasurableSpace.separatesPoints_iff 2024-04-17 15:12:55 2e8aeee feat(Combinatorics/SimpleGraph): Existence of a path from `u` to `v` of length equal to `G.dist u v` (#11814) Checkout [this](https://leanprover.zulipchat.com/#narrow/stream/113489-new-members/topic/.E2.9C.94.20Confused.20by.20recursive.20proofs) conversation on zulip. ESTIMATED CHANGES Modified Mathlib/Combinatorics/SimpleGraph/Connectivity.lean + theorem SimpleGraph.Walk.bypass_eq_self_of_length_le Modified Mathlib/Combinatorics/SimpleGraph/Metric.lean + theorem SimpleGraph.Connected.exists_path_of_dist + theorem SimpleGraph.Reachable.exists_path_of_dist + theorem SimpleGraph.Walk.isPath_of_length_eq_dist 2024-04-17 13:43:08 b5c5267 chore(Game/Short): drop `SetTheory.PGame.listShortGet` (#12201) It was deprecated during port on 2023-07-01 ESTIMATED CHANGES Modified Mathlib/SetTheory/Game/Short.lean 2024-04-17 13:43:07 6d66f4c chore(Data/List/Enum): move from `Basic` (#11697) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Data/List/Basic.lean - theorem List.enumFrom_append - theorem List.enumFrom_cons' - theorem List.enumFrom_eq_nil - theorem List.enumFrom_get? - theorem List.enumFrom_map - theorem List.enumFrom_map_snd - theorem List.enumFrom_singleton - theorem List.enum_append - theorem List.enum_cons' - theorem List.enum_cons - theorem List.enum_eq_nil - theorem List.enum_get? - theorem List.enum_map - theorem List.enum_map_snd - theorem List.enum_nil - theorem List.enum_singleton - theorem List.get_enum - theorem List.get_enumFrom - theorem List.map_fst_add_enumFrom_eq_enumFrom - theorem List.map_fst_add_enum_eq_enumFrom - theorem List.mem_enumFrom - theorem List.nthLe_enum - theorem List.nthLe_enumFrom Added Mathlib/Data/List/Enum.lean + theorem List.enumFrom_append + theorem List.enumFrom_cons' + theorem List.enumFrom_eq_nil + theorem List.enumFrom_get? + theorem List.enumFrom_map + theorem List.enumFrom_map_snd + theorem List.enumFrom_singleton + theorem List.enum_append + theorem List.enum_cons' + theorem List.enum_cons + theorem List.enum_eq_nil + theorem List.enum_get? + theorem List.enum_map + theorem List.enum_map_snd + theorem List.enum_nil + theorem List.enum_singleton + theorem List.get_enum + theorem List.get_enumFrom + theorem List.map_fst_add_enumFrom_eq_enumFrom + theorem List.map_fst_add_enum_eq_enumFrom + theorem List.mem_enumFrom + theorem List.nthLe_enum + theorem List.nthLe_enumFrom Modified Mathlib/Data/List/Range.lean 2024-04-17 13:43:06 6efcbba feat: codimension two subspaces have path-connected complement (#11337) From sphere-eversion (not written by me). This basically shows that subspaces of codimension at least two are ample sets (PRed in #11342). ESTIMATED CHANGES Modified Mathlib/Analysis/Convex/AmpleSet.lean Modified Mathlib/Analysis/Convex/Normed.lean Modified Mathlib/Analysis/Convex/Topology.lean + theorem isPathConnected_compl_of_isPathConnected_compl_zero Modified Mathlib/Analysis/NormedSpace/Connected.lean + theorem Submodule.connectedComponentIn_eq_self_of_one_lt_codim + theorem isConnected_compl_of_one_lt_codim + theorem isPathConnected_compl_of_one_lt_codim 2024-04-17 13:17:44 e4721cc chore: adaptations for nightly-2024-04-07 (#12214) ESTIMATED CHANGES Modified Counterexamples/Phillips.lean Modified Mathlib/Data/Nat/Dist.lean +/- theorem Nat.dist_comm +/- theorem Nat.dist_self Modified Mathlib/NumberTheory/FermatPsp.lean Modified Mathlib/NumberTheory/ZetaFunction.lean 2024-04-17 12:17:09 98843f5 feat: Equivalence between embeddings of `Fin (n + 1)`, and embeddings of `Fin n` together with a value outside the range. (#12151) ESTIMATED CHANGES Modified Mathlib/Logic/Equiv/Fin.lean + theorem Equiv.coe_embeddingFinSucc_symm + def Equiv.embeddingFinSucc + theorem Equiv.embeddingFinSucc_fst + theorem Equiv.embeddingFinSucc_snd 2024-04-17 12:17:08 1342b9e feat(Function/Support): support of `update` (#11736) Generalize 4 lemmas from `Finsupp` to `Function`. ESTIMATED CHANGES Modified Mathlib/Algebra/Function/Support.lean + theorem Function.ext_iff_mulSupport + theorem Function.mulSupport_update_eq_ite + theorem Function.mulSupport_update_of_ne_one + theorem Function.mulSupport_update_one 2024-04-17 11:15:26 145460b chore: Rename `nat_cast`/`int_cast`/`rat_cast` to `natCast`/`intCast`/`ratCast` (#11486) Now that I am defining `NNRat.cast`, I want a definitive answer to this naming issue. Plenty of lemmas in mathlib already use `natCast`/`intCast`/`ratCast` over `nat_cast`/`int_cast`/`rat_cast`, and this matches with the general expectation that underscore-separated name parts correspond to a single declaration. ESTIMATED CHANGES Modified Archive/Imo/Imo2006Q5.lean Modified Archive/Imo/Imo2008Q3.lean Modified Archive/Wiedijk100Theorems/FriendshipGraphs.lean Modified Counterexamples/MapFloor.lean Modified Mathlib/Algebra/CharP/Basic.lean + theorem CharP.intCast_eq_zero_iff - theorem CharP.int_cast_eq_zero_iff Modified Mathlib/Algebra/CharP/CharAndCard.lean Modified Mathlib/Algebra/CharP/ExpChar.lean + theorem frobenius_natCast - theorem frobenius_nat_cast Modified Mathlib/Algebra/CharZero/Lemmas.lean + theorem Function.mulSupport_natCast - theorem Function.mulSupport_nat_cast + theorem Function.support_natCast - theorem Function.support_nat_cast Modified Mathlib/Algebra/DirectSum/Internal.lean + theorem SetLike.intCast_mem_graded - theorem SetLike.int_cast_mem_graded + theorem SetLike.natCast_mem_graded - theorem SetLike.nat_cast_mem_graded Modified Mathlib/Algebra/Group/Hom/Instances.lean + theorem AddMonoid.End.intCast_apply - theorem AddMonoid.End.int_cast_apply Modified Mathlib/Algebra/Group/InjSurj.lean Modified Mathlib/Algebra/Module/Basic.lean + theorem AddMonoid.End.intCast_def - theorem AddMonoid.End.int_cast_def + theorem AddMonoid.End.natCast_def - theorem AddMonoid.End.nat_cast_def + theorem inv_intCast_smul_comm + theorem inv_intCast_smul_eq - theorem inv_int_cast_smul_comm - theorem inv_int_cast_smul_eq + theorem inv_natCast_smul_comm + theorem inv_natCast_smul_eq - theorem inv_nat_cast_smul_comm - theorem inv_nat_cast_smul_eq + theorem map_intCast_smul - theorem map_int_cast_smul + theorem map_inv_intCast_smul - theorem map_inv_int_cast_smul + theorem map_inv_natCast_smul - theorem map_inv_nat_cast_smul + theorem map_natCast_smul - theorem map_nat_cast_smul + theorem map_ratCast_smul - theorem map_rat_cast_smul + theorem ratCast_smul_eq - theorem rat_cast_smul_eq Modified Mathlib/Algebra/MonoidAlgebra/Basic.lean + theorem AddMonoidAlgebra.intCast_def - theorem AddMonoidAlgebra.int_cast_def + theorem AddMonoidAlgebra.natCast_def - theorem AddMonoidAlgebra.nat_cast_def + theorem MonoidAlgebra.intCast_def - theorem MonoidAlgebra.int_cast_def + theorem MonoidAlgebra.natCast_def - theorem MonoidAlgebra.nat_cast_def Modified Mathlib/Algebra/Order/Kleene.lean Modified Mathlib/Algebra/Order/Nonneg/Field.lean Modified Mathlib/Algebra/Order/Nonneg/Ring.lean + theorem Nonneg.mk_natCast - theorem Nonneg.mk_nat_cast Modified Mathlib/Algebra/Order/Ring/InjSurj.lean Modified Mathlib/Algebra/Order/ToIntervalMod.lean + theorem iUnion_Icc_add_intCast - theorem iUnion_Icc_add_int_cast + theorem iUnion_Icc_intCast - theorem iUnion_Icc_int_cast + theorem iUnion_Ico_add_intCast - theorem iUnion_Ico_add_int_cast + theorem iUnion_Ico_intCast - theorem iUnion_Ico_int_cast + theorem iUnion_Ioc_add_intCast - theorem iUnion_Ioc_add_int_cast + theorem iUnion_Ioc_intCast - theorem iUnion_Ioc_int_cast Modified Mathlib/Algebra/Polynomial/AlgebraMap.lean + theorem Polynomial.aeval_natCast - theorem Polynomial.aeval_nat_cast + theorem Polynomial.eval₂_intCastRingHom_X - theorem Polynomial.eval₂_int_castRingHom_X Modified Mathlib/Algebra/Polynomial/Basic.lean + theorem Polynomial.C_eq_intCast - theorem Polynomial.C_eq_int_cast + theorem Polynomial.C_eq_natCast - theorem Polynomial.C_eq_nat_cast + theorem Polynomial.coeff_natCast_ite - theorem Polynomial.coeff_nat_cast_ite + theorem Polynomial.natCast_mul - theorem Polynomial.nat_cast_mul Modified Mathlib/Algebra/Polynomial/Coeff.lean + theorem Polynomial.intCast_coeff_zero + theorem Polynomial.intCast_inj - theorem Polynomial.int_cast_coeff_zero - theorem Polynomial.int_cast_inj + theorem Polynomial.natCast_coeff_zero + theorem Polynomial.natCast_inj - theorem Polynomial.nat_cast_coeff_zero - theorem Polynomial.nat_cast_inj Modified Mathlib/Algebra/Polynomial/Degree/Definitions.lean + theorem Polynomial.degree_intCast_le - theorem Polynomial.degree_int_cast_le + theorem Polynomial.degree_natCast_le - theorem Polynomial.degree_nat_cast_le + theorem Polynomial.natDegree_intCast - theorem Polynomial.natDegree_int_cast + theorem Polynomial.natDegree_natCast - theorem Polynomial.natDegree_nat_cast Modified Mathlib/Algebra/Polynomial/Degree/TrailingDegree.lean + theorem Polynomial.natTrailingDegree_intCast - theorem Polynomial.natTrailingDegree_int_cast + theorem Polynomial.natTrailingDegree_natCast - theorem Polynomial.natTrailingDegree_nat_cast Modified Mathlib/Algebra/Polynomial/Derivative.lean + theorem Polynomial.derivative_intCast + theorem Polynomial.derivative_intCast_mul - theorem Polynomial.derivative_int_cast - theorem Polynomial.derivative_int_cast_mul + theorem Polynomial.derivative_natCast + theorem Polynomial.derivative_natCast_mul - theorem Polynomial.derivative_nat_cast - theorem Polynomial.derivative_nat_cast_mul + theorem Polynomial.iterate_derivative_X_pow_eq_natCast_mul - theorem Polynomial.iterate_derivative_X_pow_eq_nat_cast_mul + theorem Polynomial.iterate_derivative_intCast_mul - theorem Polynomial.iterate_derivative_int_cast_mul + theorem Polynomial.iterate_derivative_natCast_mul - theorem Polynomial.iterate_derivative_nat_cast_mul Modified Mathlib/Algebra/Polynomial/Eval.lean + theorem Polynomial.eval_intCast + theorem Polynomial.eval_intCast_map - theorem Polynomial.eval_int_cast - theorem Polynomial.eval_int_cast_map + theorem Polynomial.eval_natCast + theorem Polynomial.eval_natCast_map + theorem Polynomial.eval_natCast_mul - theorem Polynomial.eval_nat_cast - theorem Polynomial.eval_nat_cast_map - theorem Polynomial.eval_nat_cast_mul + theorem Polynomial.eval₂_at_intCast - theorem Polynomial.eval₂_at_int_cast + theorem Polynomial.eval₂_at_natCast - theorem Polynomial.eval₂_at_nat_cast + theorem Polynomial.eval₂_natCast - theorem Polynomial.eval₂_nat_cast - theorem Polynomial.map_int_cast + theorem Polynomial.mul_X_add_natCast_comp - theorem Polynomial.mul_X_add_nat_cast_comp + theorem Polynomial.mul_X_sub_intCast_comp - theorem Polynomial.mul_X_sub_int_cast_comp + theorem Polynomial.natCast_comp + theorem Polynomial.natCast_mul_comp - theorem Polynomial.nat_cast_comp - theorem Polynomial.nat_cast_mul_comp Modified Mathlib/Algebra/Polynomial/Expand.lean Modified Mathlib/Algebra/Polynomial/FieldDivision.lean Modified Mathlib/Algebra/Polynomial/Smeval.lean + theorem Polynomial.smeval_at_natCast - theorem Polynomial.smeval_at_nat_cast + theorem Polynomial.smeval_natCast - theorem Polynomial.smeval_nat_cast Modified Mathlib/Algebra/Polynomial/Taylor.lean Modified Mathlib/Algebra/Quaternion.lean + theorem Quaternion.coe_intCast - theorem Quaternion.coe_int_cast + theorem Quaternion.coe_natCast - theorem Quaternion.coe_nat_cast + theorem Quaternion.coe_ratCast - theorem Quaternion.coe_rat_cast + theorem Quaternion.intCast_im + theorem Quaternion.intCast_imI + theorem Quaternion.intCast_imJ + theorem Quaternion.intCast_imK + theorem Quaternion.intCast_re - theorem Quaternion.int_cast_im - theorem Quaternion.int_cast_imI - theorem Quaternion.int_cast_imJ - theorem Quaternion.int_cast_imK - theorem Quaternion.int_cast_re + theorem Quaternion.natCast_im + theorem Quaternion.natCast_imI + theorem Quaternion.natCast_imJ + theorem Quaternion.natCast_imK + theorem Quaternion.natCast_re - theorem Quaternion.nat_cast_im - theorem Quaternion.nat_cast_imI - theorem Quaternion.nat_cast_imJ - theorem Quaternion.nat_cast_imK - theorem Quaternion.nat_cast_re + theorem Quaternion.normSq_intCast - theorem Quaternion.normSq_int_cast + theorem Quaternion.normSq_natCast - theorem Quaternion.normSq_nat_cast + theorem Quaternion.normSq_ratCast - theorem Quaternion.normSq_rat_cast + theorem Quaternion.ratCast_im + theorem Quaternion.ratCast_imI + theorem Quaternion.ratCast_imJ + theorem Quaternion.ratCast_imK + theorem Quaternion.ratCast_re - theorem Quaternion.rat_cast_im - theorem Quaternion.rat_cast_imI - theorem Quaternion.rat_cast_imJ - theorem Quaternion.rat_cast_imK - theorem Quaternion.rat_cast_re + theorem QuaternionAlgebra.coe_intCast - theorem QuaternionAlgebra.coe_int_cast + theorem QuaternionAlgebra.coe_natCast - theorem QuaternionAlgebra.coe_nat_cast + theorem QuaternionAlgebra.intCast_im + theorem QuaternionAlgebra.intCast_imI + theorem QuaternionAlgebra.intCast_imJ + theorem QuaternionAlgebra.intCast_imK + theorem QuaternionAlgebra.intCast_re - theorem QuaternionAlgebra.int_cast_im - theorem QuaternionAlgebra.int_cast_imI - theorem QuaternionAlgebra.int_cast_imJ - theorem QuaternionAlgebra.int_cast_imK - theorem QuaternionAlgebra.int_cast_re + theorem QuaternionAlgebra.natCast_im + theorem QuaternionAlgebra.natCast_imI + theorem QuaternionAlgebra.natCast_imJ + theorem QuaternionAlgebra.natCast_imK + theorem QuaternionAlgebra.natCast_re - theorem QuaternionAlgebra.nat_cast_im - theorem QuaternionAlgebra.nat_cast_imI - theorem QuaternionAlgebra.nat_cast_imJ - theorem QuaternionAlgebra.nat_cast_imK - theorem QuaternionAlgebra.nat_cast_re Modified Mathlib/Algebra/Ring/CentroidHom.lean + theorem CentroidHom.coe_intCast - theorem CentroidHom.coe_int_cast + theorem CentroidHom.coe_natCast - theorem CentroidHom.coe_nat_cast + theorem CentroidHom.intCast_apply - theorem CentroidHom.int_cast_apply + theorem CentroidHom.natCast_apply - theorem CentroidHom.nat_cast_apply + theorem CentroidHom.toEnd_intCast - theorem CentroidHom.toEnd_int_cast + theorem CentroidHom.toEnd_natCast - theorem CentroidHom.toEnd_nat_cast Modified Mathlib/Algebra/Ring/InjSurj.lean Modified Mathlib/Algebra/Star/Module.lean + theorem star_intCast_smul - theorem star_int_cast_smul + theorem star_inv_intCast_smul - theorem star_inv_int_cast_smul + theorem star_inv_natCast_smul - theorem star_inv_nat_cast_smul + theorem star_natCast_smul - theorem star_nat_cast_smul + theorem star_ratCast_smul - theorem star_rat_cast_smul Modified Mathlib/Algebra/TrivSqZeroExt.lean + theorem TrivSqZeroExt.fst_intCast - theorem TrivSqZeroExt.fst_int_cast + theorem TrivSqZeroExt.fst_natCast - theorem TrivSqZeroExt.fst_nat_cast + theorem TrivSqZeroExt.inl_intCast - theorem TrivSqZeroExt.inl_int_cast + theorem TrivSqZeroExt.inl_natCast - theorem TrivSqZeroExt.inl_nat_cast + theorem TrivSqZeroExt.snd_intCast - theorem TrivSqZeroExt.snd_int_cast + theorem TrivSqZeroExt.snd_natCast - theorem TrivSqZeroExt.snd_nat_cast Modified Mathlib/AlgebraicGeometry/ProjectiveSpectrum/Scheme.lean Modified Mathlib/Analysis/Analytic/RadiusLiminf.lean Modified Mathlib/Analysis/Asymptotics/Asymptotics.lean + theorem Asymptotics.IsBigO.natCast_atTop - theorem Asymptotics.IsBigO.nat_cast_atTop + theorem Asymptotics.IsLittleO.natCast_atTop - theorem Asymptotics.IsLittleO.nat_cast_atTop Modified Mathlib/Analysis/Asymptotics/SpecificAsymptotics.lean Modified Mathlib/Analysis/BoxIntegral/Integrability.lean Modified Mathlib/Analysis/Calculus/BumpFunction/FiniteDimension.lean Modified Mathlib/Analysis/Complex/Basic.lean + theorem Complex.natCast_mem_slitPlane - theorem Complex.nat_cast_mem_slitPlane Modified Mathlib/Analysis/Distribution/SchwartzSpace.lean Modified Mathlib/Analysis/Fourier/AddCircle.lean Modified Mathlib/Analysis/Fourier/Inversion.lean Modified Mathlib/Analysis/Normed/Group/AddCircle.lean + theorem AddCircle.norm_div_natCast - theorem AddCircle.norm_div_nat_cast Modified Mathlib/Analysis/Normed/Group/Basic.lean Modified Mathlib/Analysis/NormedSpace/Exponential.lean Modified Mathlib/Analysis/NormedSpace/Int.lean Modified Mathlib/Analysis/NormedSpace/PiLp.lean Modified Mathlib/Analysis/NormedSpace/ProdLp.lean Modified Mathlib/Analysis/NormedSpace/Star/Multiplier.lean + theorem DoubleCentralizer.intCast_fst + theorem DoubleCentralizer.intCast_snd + theorem DoubleCentralizer.intCast_toProd - theorem DoubleCentralizer.int_cast_fst - theorem DoubleCentralizer.int_cast_snd - theorem DoubleCentralizer.int_cast_toProd + theorem DoubleCentralizer.natCast_fst + theorem DoubleCentralizer.natCast_snd + theorem DoubleCentralizer.natCast_toProd - theorem DoubleCentralizer.nat_cast_fst - theorem DoubleCentralizer.nat_cast_snd - theorem DoubleCentralizer.nat_cast_toProd Modified Mathlib/Analysis/NormedSpace/Star/Spectrum.lean Modified Mathlib/Analysis/NormedSpace/lpSpace.lean + theorem intCast_memℓp_infty - theorem int_cast_memℓp_infty + theorem lp.infty_coeFn_intCast - theorem lp.infty_coeFn_int_cast + theorem lp.infty_coeFn_natCast - theorem lp.infty_coeFn_nat_cast + theorem natCast_memℓp_infty - theorem nat_cast_memℓp_infty Modified Mathlib/Analysis/PSeries.lean + theorem Real.not_summable_natCast_inv - theorem Real.not_summable_nat_cast_inv + theorem Real.not_summable_one_div_natCast - theorem Real.not_summable_one_div_nat_cast Modified Mathlib/Analysis/SpecialFunctions/Bernstein.lean Modified Mathlib/Analysis/SpecialFunctions/CompareExp.lean Modified Mathlib/Analysis/SpecialFunctions/Complex/Arg.lean Modified Mathlib/Analysis/SpecialFunctions/Complex/Log.lean +/- theorem Complex.natCast_log Modified Mathlib/Analysis/SpecialFunctions/Complex/LogBounds.lean Modified Mathlib/Analysis/SpecialFunctions/Gamma/Basic.lean Modified Mathlib/Analysis/SpecialFunctions/Gamma/Beta.lean Modified Mathlib/Analysis/SpecialFunctions/Gaussian/PoissonSummation.lean Modified Mathlib/Analysis/SpecialFunctions/JapaneseBracket.lean Modified Mathlib/Analysis/SpecialFunctions/Log/Base.lean + theorem Real.ceil_logb_natCast - theorem Real.ceil_logb_nat_cast + theorem Real.floor_logb_natCast - theorem Real.floor_logb_nat_cast Modified Mathlib/Analysis/SpecialFunctions/Log/Basic.lean + theorem Real.log_intCast_nonneg - theorem Real.log_int_cast_nonneg + theorem Real.log_natCast_nonneg - theorem Real.log_nat_cast_nonneg + theorem Real.log_neg_natCast_nonneg - theorem Real.log_neg_nat_cast_nonneg Modified Mathlib/Analysis/SpecialFunctions/Pow/Asymptotics.lean Modified Mathlib/Analysis/SpecialFunctions/Pow/Complex.lean + theorem Complex.cpow_intCast - theorem Complex.cpow_int_cast + theorem Complex.cpow_natCast - theorem Complex.cpow_nat_cast Modified Mathlib/Analysis/SpecialFunctions/Pow/Continuity.lean Modified Mathlib/Analysis/SpecialFunctions/Pow/Deriv.lean Modified Mathlib/Analysis/SpecialFunctions/Pow/NNReal.lean + theorem ENNReal.rpow_intCast - theorem ENNReal.rpow_int_cast + theorem ENNReal.rpow_natCast - theorem ENNReal.rpow_nat_cast + theorem NNReal.rpow_natCast - theorem NNReal.rpow_nat_cast Modified Mathlib/Analysis/SpecialFunctions/Pow/Real.lean +/- theorem Real.exp_one_pow + theorem Real.rpow_intCast - theorem Real.rpow_int_cast + theorem Real.rpow_natCast - theorem Real.rpow_nat_cast Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Chebyshev.lean Modified Mathlib/Analysis/SpecificLimits/Basic.lean Modified Mathlib/Analysis/SpecificLimits/FloorPow.lean Modified Mathlib/Analysis/Subadditive.lean Modified Mathlib/Analysis/SumOverResidueClass.lean Modified Mathlib/Combinatorics/Additive/Behrend.lean Modified Mathlib/Combinatorics/SimpleGraph/DegreeSum.lean Modified Mathlib/Combinatorics/SimpleGraph/Regularity/Bound.lean Modified Mathlib/Computability/AkraBazzi/AkraBazzi.lean Modified Mathlib/Computability/AkraBazzi/GrowsPolynomially.lean Modified Mathlib/Data/Complex/Abs.lean +/- theorem Complex.abs_intCast Modified Mathlib/Data/Complex/Basic.lean + theorem Complex.conj_natCast - theorem Complex.conj_nat_cast + theorem Complex.div_intCast + theorem Complex.div_intCast_im + theorem Complex.div_intCast_re - theorem Complex.div_int_cast - theorem Complex.div_int_cast_im - theorem Complex.div_int_cast_re + theorem Complex.div_natCast + theorem Complex.div_natCast_im + theorem Complex.div_natCast_re - theorem Complex.div_nat_cast - theorem Complex.div_nat_cast_im - theorem Complex.div_nat_cast_re + theorem Complex.div_ratCast + theorem Complex.div_ratCast_im + theorem Complex.div_ratCast_re - theorem Complex.div_rat_cast - theorem Complex.div_rat_cast_im - theorem Complex.div_rat_cast_re + theorem Complex.intCast_im + theorem Complex.intCast_re - theorem Complex.int_cast_im - theorem Complex.int_cast_re + theorem Complex.natCast_im + theorem Complex.natCast_re - theorem Complex.nat_cast_im - theorem Complex.nat_cast_re + theorem Complex.normSq_intCast - theorem Complex.normSq_int_cast + theorem Complex.normSq_natCast - theorem Complex.normSq_nat_cast + theorem Complex.normSq_ratCast - theorem Complex.normSq_rat_cast + theorem Complex.ofReal_intCast - theorem Complex.ofReal_int_cast + theorem Complex.ofReal_natCast - theorem Complex.ofReal_nat_cast + theorem Complex.ofReal_ratCast - theorem Complex.ofReal_rat_cast + theorem Complex.ratCast_im + theorem Complex.ratCast_re - theorem Complex.rat_cast_im - theorem Complex.rat_cast_re Modified Mathlib/Data/Complex/Exponential.lean Modified Mathlib/Data/ENNReal/Operations.lean + theorem ENNReal.natCast_sub - theorem ENNReal.nat_cast_sub Modified Mathlib/Data/ENNReal/Real.lean + theorem ENNReal.natCast_le_ofReal + theorem ENNReal.natCast_lt_ofReal - theorem ENNReal.nat_cast_le_ofReal - theorem ENNReal.nat_cast_lt_ofReal + theorem ENNReal.ofReal_eq_natCast - theorem ENNReal.ofReal_eq_nat_cast + theorem ENNReal.ofReal_le_natCast - theorem ENNReal.ofReal_le_nat_cast + theorem ENNReal.ofReal_lt_natCast - theorem ENNReal.ofReal_lt_nat_cast Modified Mathlib/Data/Fin/Basic.lean + theorem Fin.natCast_eq_zero + theorem Fin.natCast_self - theorem Fin.nat_cast_eq_zero - theorem Fin.nat_cast_self + theorem Fin.neg_natCast_eq_one - theorem Fin.neg_nat_cast_eq_one + theorem Fin.val_natCast - theorem Fin.val_nat_cast Modified Mathlib/Data/Int/AbsoluteValue.lean + theorem AbsoluteValue.map_units_intCast - theorem AbsoluteValue.map_units_int_cast Modified Mathlib/Data/Int/Cast/Lemmas.lean + theorem AddMonoidHom.eq_intCastAddHom - theorem AddMonoidHom.eq_int_castAddHom Modified Mathlib/Data/Int/CharZero.lean + theorem Function.mulSupport_intCast - theorem Function.mulSupport_int_cast + theorem Function.support_intCast - theorem Function.support_int_cast Modified Mathlib/Data/Num/Lemmas.lean + theorem Num.of_natCast - theorem Num.of_nat_cast + theorem ZNum.of_intCast - theorem ZNum.of_int_cast + theorem ZNum.of_natCast - theorem ZNum.of_nat_cast Modified Mathlib/Data/Real/NNReal.lean + theorem Real.natCast_le_toNNReal + theorem Real.natCast_lt_toNNReal + theorem Real.natCastle_toNNReal' - theorem Real.nat_cast_le_toNNReal' - theorem Real.nat_cast_le_toNNReal - theorem Real.nat_cast_lt_toNNReal + theorem Real.toNNReal_eq_natCast - theorem Real.toNNReal_eq_nat_cast + theorem Real.toNNReal_le_natCast - theorem Real.toNNReal_le_nat_cast + theorem Real.toNNReal_lt_natCast' + theorem Real.toNNReal_lt_natCast - theorem Real.toNNReal_lt_nat_cast' - theorem Real.toNNReal_lt_nat_cast Modified Mathlib/Data/Real/Pi/Leibniz.lean Modified Mathlib/Data/Real/Pi/Wallis.lean Modified Mathlib/Data/Real/Sign.lean + theorem Real.sign_intCast - theorem Real.sign_int_cast Modified Mathlib/Data/Set/Intervals/Group.lean + theorem Set.pairwise_disjoint_Ico_add_intCast - theorem Set.pairwise_disjoint_Ico_add_int_cast + theorem Set.pairwise_disjoint_Ico_intCast - theorem Set.pairwise_disjoint_Ico_int_cast + theorem Set.pairwise_disjoint_Ioc_add_intCast - theorem Set.pairwise_disjoint_Ioc_add_int_cast + theorem Set.pairwise_disjoint_Ioc_intCast - theorem Set.pairwise_disjoint_Ioc_int_cast + theorem Set.pairwise_disjoint_Ioo_add_intCast - theorem Set.pairwise_disjoint_Ioo_add_int_cast + theorem Set.pairwise_disjoint_Ioo_intCast - theorem Set.pairwise_disjoint_Ioo_int_cast Modified Mathlib/Data/ZMod/Algebra.lean Modified Mathlib/Data/ZMod/Basic.lean + theorem ZMod.cast_intCast' + theorem ZMod.cast_intCast - theorem ZMod.cast_int_cast' - theorem ZMod.cast_int_cast + theorem ZMod.cast_natCast' + theorem ZMod.cast_natCast - theorem ZMod.cast_nat_cast' - theorem ZMod.cast_nat_cast + theorem ZMod.coe_intCast - theorem ZMod.coe_int_cast + theorem ZMod.intCast_cast + theorem ZMod.intCast_comp_cast + theorem ZMod.intCast_eq_intCast_iff' + theorem ZMod.intCast_eq_intCast_iff + theorem ZMod.intCast_eq_intCast_iff_dvd_sub + theorem ZMod.intCast_mod + theorem ZMod.intCast_rightInverse + theorem ZMod.intCast_surjective + theorem ZMod.intCast_zmod_cast + theorem ZMod.intCast_zmod_eq_zero_iff_dvd - theorem ZMod.int_cast_cast - theorem ZMod.int_cast_comp_cast - theorem ZMod.int_cast_eq_int_cast_iff' - theorem ZMod.int_cast_eq_int_cast_iff - theorem ZMod.int_cast_eq_int_cast_iff_dvd_sub - theorem ZMod.int_cast_mod - theorem ZMod.int_cast_rightInverse - theorem ZMod.int_cast_surjective - theorem ZMod.int_cast_zmod_cast - theorem ZMod.int_cast_zmod_eq_zero_iff_dvd + theorem ZMod.ker_intCastAddHom + theorem ZMod.ker_intCastRingHom - theorem ZMod.ker_int_castAddHom - theorem ZMod.ker_int_castRingHom + theorem ZMod.natCast_comp_val + theorem ZMod.natCast_eq_natCast_iff' + theorem ZMod.natCast_eq_natCast_iff + theorem ZMod.natCast_mod + theorem ZMod.natCast_natAbs_valMinAbs + theorem ZMod.natCast_rightInverse + theorem ZMod.natCast_self' + theorem ZMod.natCast_self + theorem ZMod.natCast_toNat + theorem ZMod.natCast_val + theorem ZMod.natCast_zmod_eq_zero_iff_dvd + theorem ZMod.natCast_zmod_surjective + theorem ZMod.natCast_zmod_val - theorem ZMod.nat_cast_comp_val - theorem ZMod.nat_cast_eq_nat_cast_iff' - theorem ZMod.nat_cast_eq_nat_cast_iff - theorem ZMod.nat_cast_mod - theorem ZMod.nat_cast_natAbs_valMinAbs - theorem ZMod.nat_cast_rightInverse - theorem ZMod.nat_cast_self' - theorem ZMod.nat_cast_self - theorem ZMod.nat_cast_toNat - theorem ZMod.nat_cast_val - theorem ZMod.nat_cast_zmod_eq_zero_iff_dvd - theorem ZMod.nat_cast_zmod_surjective - theorem ZMod.nat_cast_zmod_val + theorem ZMod.val_intCast - theorem ZMod.val_int_cast + theorem ZMod.val_natCast + theorem ZMod.val_natCast_of_lt - theorem ZMod.val_nat_cast - theorem ZMod.val_nat_cast_of_lt Modified Mathlib/Data/ZMod/Coprime.lean Modified Mathlib/Data/ZMod/Module.lean Modified Mathlib/Data/ZMod/Quotient.lean Modified Mathlib/Dynamics/BirkhoffSum/Average.lean Modified Mathlib/Dynamics/BirkhoffSum/NormedSpace.lean Modified Mathlib/Dynamics/Ergodic/AddCircle.lean Modified Mathlib/FieldTheory/Finite/Basic.lean Modified Mathlib/FieldTheory/Finite/GaloisField.lean Modified Mathlib/FieldTheory/Finite/Polynomial.lean Modified Mathlib/FieldTheory/PerfectClosure.lean + theorem PerfectClosure.intCast - theorem PerfectClosure.int_cast + theorem PerfectClosure.natCast + theorem PerfectClosure.natCast_eq_iff - theorem PerfectClosure.nat_cast - theorem PerfectClosure.nat_cast_eq_iff Modified Mathlib/FieldTheory/Separable.lean Modified Mathlib/GroupTheory/Complement.lean Modified Mathlib/GroupTheory/SpecificGroups/Cyclic.lean Modified Mathlib/GroupTheory/SpecificGroups/Dihedral.lean Modified Mathlib/GroupTheory/SpecificGroups/Quaternion.lean Modified Mathlib/GroupTheory/Subgroup/ZPowers.lean + theorem AddSubgroup.intCast_mem_zmultiples_one + theorem AddSubgroup.intCast_mul_mem_zmultiples - theorem AddSubgroup.int_cast_mem_zmultiples_one - theorem AddSubgroup.int_cast_mul_mem_zmultiples Modified Mathlib/LinearAlgebra/CliffordAlgebra/Grading.lean Modified Mathlib/LinearAlgebra/Matrix/Charpoly/Coeff.lean Modified Mathlib/Logic/Equiv/TransferInstance.lean Modified Mathlib/MeasureTheory/Function/ConvergenceInMeasure.lean Modified Mathlib/MeasureTheory/Function/L2Space.lean Modified Mathlib/MeasureTheory/Integral/IntervalIntegral.lean Modified Mathlib/MeasureTheory/Measure/Doubling.lean Modified Mathlib/MeasureTheory/Measure/Hausdorff.lean Modified Mathlib/MeasureTheory/Measure/Lebesgue/Integral.lean Modified Mathlib/MeasureTheory/Measure/Lebesgue/VolumeOfBalls.lean Modified Mathlib/NumberTheory/ArithmeticFunction.lean + theorem ArithmeticFunction.IsMultiplicative.intCast - theorem ArithmeticFunction.IsMultiplicative.int_cast + theorem ArithmeticFunction.IsMultiplicative.natCast - theorem ArithmeticFunction.IsMultiplicative.nat_cast Modified Mathlib/NumberTheory/BernoulliPolynomials.lean Modified Mathlib/NumberTheory/Bertrand.lean Modified Mathlib/NumberTheory/ClassNumber/AdmissibleCardPowDegree.lean Modified Mathlib/NumberTheory/ClassNumber/Finite.lean Modified Mathlib/NumberTheory/Cyclotomic/CyclotomicCharacter.lean Modified Mathlib/NumberTheory/Cyclotomic/Discriminant.lean Modified Mathlib/NumberTheory/Cyclotomic/Gal.lean Modified Mathlib/NumberTheory/Cyclotomic/PrimitiveRoots.lean Modified Mathlib/NumberTheory/DirichletCharacter/Basic.lean Modified Mathlib/NumberTheory/EulerProduct/DirichletLSeries.lean Modified Mathlib/NumberTheory/FLT/Three.lean Modified Mathlib/NumberTheory/Harmonic/EulerMascheroni.lean Modified Mathlib/NumberTheory/LSeries/Dirichlet.lean Modified Mathlib/NumberTheory/LegendreSymbol/AddCharacter.lean Modified Mathlib/NumberTheory/LegendreSymbol/Basic.lean Modified Mathlib/NumberTheory/LegendreSymbol/GaussEisensteinLemmas.lean Modified Mathlib/NumberTheory/LegendreSymbol/JacobiSymbol.lean Modified Mathlib/NumberTheory/LegendreSymbol/QuadraticChar/GaussSum.lean Modified Mathlib/NumberTheory/LegendreSymbol/QuadraticReciprocity.lean Modified Mathlib/NumberTheory/LegendreSymbol/ZModChar.lean +/- theorem ZMod.χ₄_nat_mod_four +/- theorem ZMod.χ₈_nat_mod_eight Modified Mathlib/NumberTheory/Liouville/LiouvilleWith.lean Modified Mathlib/NumberTheory/Liouville/Measure.lean Modified Mathlib/NumberTheory/LucasLehmer.lean Modified Mathlib/NumberTheory/Modular.lean Modified Mathlib/NumberTheory/ModularForms/EisensteinSeries/Basic.lean Modified Mathlib/NumberTheory/ModularForms/JacobiTheta/OneVariable.lean Modified Mathlib/NumberTheory/ModularForms/JacobiTheta/TwoVariable.lean Modified Mathlib/NumberTheory/NumberField/CanonicalEmbedding/ConvexBody.lean Modified Mathlib/NumberTheory/NumberField/Discriminant.lean Modified Mathlib/NumberTheory/NumberField/Embeddings.lean Modified Mathlib/NumberTheory/Padics/PadicIntegers.lean + theorem PadicInt.coe_intCast - theorem PadicInt.coe_int_cast + theorem PadicInt.coe_natCast - theorem PadicInt.coe_nat_cast + theorem PadicInt.norm_intCast_eq_padic_norm - theorem PadicInt.norm_int_cast_eq_padic_norm Modified Mathlib/NumberTheory/Padics/RingHoms.lean + theorem PadicInt.denseRange_intCast - theorem PadicInt.denseRange_int_cast + theorem PadicInt.denseRange_natCast - theorem PadicInt.denseRange_nat_cast Modified Mathlib/NumberTheory/Pell.lean Modified Mathlib/NumberTheory/PrimesCongruentOne.lean Modified Mathlib/NumberTheory/PythagoreanTriples.lean Modified Mathlib/NumberTheory/SumFourSquares.lean Modified Mathlib/NumberTheory/SumTwoSquares.lean Modified Mathlib/NumberTheory/Wilson.lean Modified Mathlib/NumberTheory/ZetaFunction.lean Modified Mathlib/NumberTheory/ZetaValues.lean Modified Mathlib/NumberTheory/Zsqrtd/Basic.lean + theorem Zsqrtd.norm_intCast - theorem Zsqrtd.norm_int_cast + theorem Zsqrtd.norm_natCast - theorem Zsqrtd.norm_nat_cast Modified Mathlib/NumberTheory/Zsqrtd/GaussianInt.lean + theorem GaussianInt.intCast_complex_norm + theorem GaussianInt.intCast_real_norm - theorem GaussianInt.int_cast_complex_norm - theorem GaussianInt.int_cast_real_norm + theorem GaussianInt.natCast_natAbs_norm - theorem GaussianInt.nat_cast_natAbs_norm Modified Mathlib/NumberTheory/Zsqrtd/QuadraticReciprocity.lean Modified Mathlib/Order/Filter/Archimedean.lean + theorem Filter.Eventually.intCast_atBot + theorem Filter.Eventually.intCast_atTop - theorem Filter.Eventually.int_cast_atBot - theorem Filter.Eventually.int_cast_atTop + theorem Filter.Eventually.natCast_atTop - theorem Filter.Eventually.nat_cast_atTop + theorem Filter.Eventually.ratCast_atBot + theorem Filter.Eventually.ratCast_atTop - theorem Filter.Eventually.rat_cast_atBot - theorem Filter.Eventually.rat_cast_atTop + theorem tendsto_intCast_atBot_iff + theorem tendsto_intCast_atTop_atTop + theorem tendsto_intCast_atTop_iff - theorem tendsto_int_cast_atBot_iff - theorem tendsto_int_cast_atTop_atTop - theorem tendsto_int_cast_atTop_iff + theorem tendsto_natCast_atTop_atTop + theorem tendsto_natCast_atTop_iff - theorem tendsto_nat_cast_atTop_atTop - theorem tendsto_nat_cast_atTop_iff + theorem tendsto_ratCast_atBot_iff + theorem tendsto_ratCast_atTop_iff - theorem tendsto_rat_cast_atBot_iff - theorem tendsto_rat_cast_atTop_iff Modified Mathlib/Probability/Kernel/Disintegration/CdfToKernel.lean Modified Mathlib/Probability/Martingale/Upcrossing.lean Modified Mathlib/Probability/StrongLaw.lean Modified Mathlib/RingTheory/Binomial.lean + theorem Ring.choose_natCast - theorem Ring.choose_nat_cast Modified Mathlib/RingTheory/Congruence.lean + theorem RingCon.coe_intCast - theorem RingCon.coe_int_cast + theorem RingCon.coe_natCast - theorem RingCon.coe_nat_cast Modified Mathlib/RingTheory/FractionalIdeal/Basic.lean + theorem FractionalIdeal.coe_natCast - theorem FractionalIdeal.coe_nat_cast Modified Mathlib/RingTheory/FreeCommRing.lean Modified Mathlib/RingTheory/Ideal/Quotient.lean Modified Mathlib/RingTheory/Localization/Basic.lean + theorem Localization.mk_intCast - theorem Localization.mk_int_cast + theorem Localization.mk_natCast - theorem Localization.mk_nat_cast Modified Mathlib/RingTheory/Perfection.lean Modified Mathlib/RingTheory/Polynomial/Basic.lean Modified Mathlib/RingTheory/Polynomial/Bernstein.lean Modified Mathlib/RingTheory/Polynomial/Chebyshev.lean Modified Mathlib/RingTheory/Polynomial/Cyclotomic/Basic.lean Modified Mathlib/RingTheory/Polynomial/Cyclotomic/Eval.lean Modified Mathlib/RingTheory/Polynomial/Dickson.lean Modified Mathlib/RingTheory/Polynomial/Eisenstein/IsIntegral.lean Modified Mathlib/RingTheory/Polynomial/Pochhammer.lean Modified Mathlib/RingTheory/RootsOfUnity/Basic.lean Modified Mathlib/RingTheory/RootsOfUnity/Minpoly.lean Modified Mathlib/RingTheory/WittVector/Basic.lean + theorem WittVector.mapFun.intCast - theorem WittVector.mapFun.int_cast + theorem WittVector.mapFun.natCast - theorem WittVector.mapFun.nat_cast Modified Mathlib/RingTheory/WittVector/Frobenius.lean Modified Mathlib/RingTheory/WittVector/Truncated.lean + theorem WittVector.truncateFun_intCast - theorem WittVector.truncateFun_int_cast + theorem WittVector.truncateFun_natCast - theorem WittVector.truncateFun_nat_cast Modified Mathlib/RingTheory/ZMod.lean Modified Mathlib/SetTheory/Cardinal/Cofinality.lean Modified Mathlib/SetTheory/Game/Birthday.lean + theorem SetTheory.PGame.birthday_natCast - theorem SetTheory.PGame.birthday_nat_cast Modified Mathlib/SetTheory/Game/Nim.lean Modified Mathlib/SetTheory/Ordinal/Arithmetic.lean + theorem Ordinal.lift_natCast - theorem Ordinal.lift_nat_cast + theorem Ordinal.natCast_div + theorem Ordinal.natCast_eq_zero + theorem Ordinal.natCast_inj + theorem Ordinal.natCast_le + theorem Ordinal.natCast_lt + theorem Ordinal.natCast_mod + theorem Ordinal.natCast_mul + theorem Ordinal.natCast_ne_zero + theorem Ordinal.natCast_pos + theorem Ordinal.natCast_sub - theorem Ordinal.nat_cast_div - theorem Ordinal.nat_cast_eq_zero - theorem Ordinal.nat_cast_inj - theorem Ordinal.nat_cast_le - theorem Ordinal.nat_cast_lt - theorem Ordinal.nat_cast_mod - theorem Ordinal.nat_cast_mul - theorem Ordinal.nat_cast_ne_zero - theorem Ordinal.nat_cast_pos - theorem Ordinal.nat_cast_sub + theorem Ordinal.one_add_natCast - theorem Ordinal.one_add_nat_cast + theorem Ordinal.sup_natCast - theorem Ordinal.sup_nat_cast Modified Mathlib/SetTheory/Ordinal/Basic.lean + theorem Ordinal.natCast_succ - theorem Ordinal.nat_cast_succ Modified Mathlib/SetTheory/Ordinal/Exponential.lean + theorem Ordinal.natCast_opow - theorem Ordinal.nat_cast_opow Modified Mathlib/SetTheory/Ordinal/Notation.lean Modified Mathlib/SetTheory/Ordinal/Principal.lean Modified Mathlib/Tactic/ComputeDegree.lean + theorem Mathlib.Tactic.ComputeDegree.coeff_intCast_ite - theorem Mathlib.Tactic.ComputeDegree.coeff_int_cast_ite + theorem Mathlib.Tactic.ComputeDegree.natDegree_intCast_le - theorem Mathlib.Tactic.ComputeDegree.natDegree_int_cast_le + theorem Mathlib.Tactic.ComputeDegree.natDegree_natCast_le - theorem Mathlib.Tactic.ComputeDegree.natDegree_nat_cast_le Modified Mathlib/Tactic/Linarith/Lemmas.lean + theorem Linarith.natCast_nonneg - theorem Linarith.nat_cast_nonneg Modified Mathlib/Tactic/Linarith/Preprocessing.lean Modified Mathlib/Tactic/NormNum/Basic.lean - theorem Mathlib.Meta.NormNum.isInt_cast - theorem Mathlib.Meta.NormNum.isNat_cast + theorem Mathlib.Meta.NormNum.isNat_intCast - theorem Mathlib.Meta.NormNum.isNat_int_cast + theorem Mathlib.Meta.NormNum.isintCast + theorem Mathlib.Meta.NormNum.isnatCast Modified Mathlib/Tactic/Qify.lean + theorem Mathlib.Tactic.Qify.intCast_eq + theorem Mathlib.Tactic.Qify.intCast_le + theorem Mathlib.Tactic.Qify.intCast_lt + theorem Mathlib.Tactic.Qify.intCast_ne - theorem Mathlib.Tactic.Qify.int_cast_eq - theorem Mathlib.Tactic.Qify.int_cast_le - theorem Mathlib.Tactic.Qify.int_cast_lt - theorem Mathlib.Tactic.Qify.int_cast_ne Modified Mathlib/Tactic/ReduceModChar.lean Modified Mathlib/Tactic/Rify.lean + theorem Mathlib.Tactic.Rify.ratCast_eq + theorem Mathlib.Tactic.Rify.ratCast_le + theorem Mathlib.Tactic.Rify.ratCast_lt + theorem Mathlib.Tactic.Rify.ratCast_ne - theorem Mathlib.Tactic.Rify.rat_cast_eq - theorem Mathlib.Tactic.Rify.rat_cast_le - theorem Mathlib.Tactic.Rify.rat_cast_lt - theorem Mathlib.Tactic.Rify.rat_cast_ne Modified Mathlib/Tactic/Zify.lean + theorem Mathlib.Tactic.Zify.natCast_dvd + theorem Mathlib.Tactic.Zify.natCast_eq + theorem Mathlib.Tactic.Zify.natCast_le + theorem Mathlib.Tactic.Zify.natCast_lt + theorem Mathlib.Tactic.Zify.natCast_ne - theorem Mathlib.Tactic.Zify.nat_cast_dvd - theorem Mathlib.Tactic.Zify.nat_cast_eq - theorem Mathlib.Tactic.Zify.nat_cast_le - theorem Mathlib.Tactic.Zify.nat_cast_lt - theorem Mathlib.Tactic.Zify.nat_cast_ne Modified Mathlib/Topology/Algebra/Order/LiminfLimsup.lean Modified Mathlib/Topology/ContinuousFunction/Algebra.lean + theorem ContinuousMap.coe_intCast - theorem ContinuousMap.coe_int_cast + theorem ContinuousMap.coe_natCast - theorem ContinuousMap.coe_nat_cast + theorem ContinuousMap.intCast_apply - theorem ContinuousMap.int_cast_apply + theorem ContinuousMap.natCast_apply - theorem ContinuousMap.nat_cast_apply Modified Mathlib/Topology/Instances/Complex.lean Modified Mathlib/Topology/Instances/RealVectorSpace.lean Modified Mathlib/Topology/MetricSpace/HausdorffDimension.lean Modified test/RewriteSearch/Polynomial.lean 2024-04-17 10:49:36 625b8cb feat(CompHaus): terminal objects (#12186) We prove that the one element space in `CompHaus` is terminal. ESTIMATED CHANGES Modified Mathlib/Topology/Category/CompHaus/Limits.lean + def CompHaus.isTerminalPUnit 2024-04-17 10:49:36 c9ab842 feat(RingTheory/Etale): add definition of unramified, smooth and etale (#12044) Adds definitions for unramified, smooth and étale algebras and shows basic permanence properties. In a follow-up PR we show that these notions are stable under base change. ESTIMATED CHANGES Modified Mathlib/RingTheory/Etale/Basic.lean + theorem Algebra.Etale.comp + theorem Algebra.Etale.of_equiv + theorem Algebra.Etale.of_isLocalization_Away +/- theorem Algebra.FormallyEtale.comp +/- theorem Algebra.FormallyEtale.iff_unramified_and_smooth +/- theorem Algebra.FormallyEtale.localization_base +/- theorem Algebra.FormallyEtale.localization_map +/- theorem Algebra.FormallyEtale.of_equiv +/- theorem Algebra.FormallyEtale.of_isLocalization +/- theorem Algebra.FormallyEtale.of_unramified_and_smooth Modified Mathlib/RingTheory/Smooth/Basic.lean +/- theorem Algebra.FormallySmooth.comp +/- theorem Algebra.FormallySmooth.comp_lift +/- theorem Algebra.FormallySmooth.comp_liftOfSurjective +/- theorem Algebra.FormallySmooth.exists_lift +/- theorem Algebra.FormallySmooth.iff_split_surjection +/- theorem Algebra.FormallySmooth.liftOfSurjective_apply +/- theorem Algebra.FormallySmooth.localization_base +/- theorem Algebra.FormallySmooth.localization_map +/- theorem Algebra.FormallySmooth.mk_lift +/- theorem Algebra.FormallySmooth.of_equiv +/- theorem Algebra.FormallySmooth.of_isLocalization +/- theorem Algebra.FormallySmooth.of_split + theorem Algebra.Smooth.comp + theorem Algebra.Smooth.of_equiv + theorem Algebra.Smooth.of_isLocalization_Away Modified Mathlib/RingTheory/Unramified/Basic.lean +/- theorem Algebra.FormallyUnramified.comp +/- theorem Algebra.FormallyUnramified.ext' +/- theorem Algebra.FormallyUnramified.ext +/- theorem Algebra.FormallyUnramified.lift_unique' +/- theorem Algebra.FormallyUnramified.lift_unique +/- theorem Algebra.FormallyUnramified.lift_unique_of_ringHom +/- theorem Algebra.FormallyUnramified.localization_base +/- theorem Algebra.FormallyUnramified.localization_map +/- theorem Algebra.FormallyUnramified.of_comp +/- theorem Algebra.FormallyUnramified.of_equiv +/- theorem Algebra.FormallyUnramified.of_isLocalization + theorem Algebra.Unramified.comp + theorem Algebra.Unramified.of_equiv + theorem Algebra.Unramified.of_isLocalization_Away 2024-04-17 10:18:25 423f578 feat(CategoryTheory): a lemma about composing different isomorphisms from opposite coproducts to products (#12155) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Limits/Opposites.lean + theorem CategoryTheory.Limits.opCoproductIsoProduct'_comp_self + theorem CategoryTheory.Limits.opProductIsoCoproduct'_comp_self - theorem CategoryTheory.Limits.proj_comp_opProductIsoCoproduct_hom + theorem CategoryTheory.Limits.π_comp_opProductIsoCoproduct_hom 2024-04-17 09:53:09 a94f3be chore(Util/Superscript): delete deleteme section (#12212) leanprover/lean4#2269 was shipped long ago, so this isn't needed. ESTIMATED CHANGES Modified Mathlib/Util/Superscript.lean - def Mathlib.Tactic.registerAlias - def Mathlib.Tactic.registerAliasCore 2024-04-17 09:24:33 12c2742 feat: Define the covolume of a `ZLattice` (#11327) This PR defines the covolume of a `Zlattice` as the (finite) volume of any of its fundamental domain and proves some results about it, mainly: it's nonzero, it does not depend of the choice of the fundamental domain and it is equal to the absolute value of the determinant of any basis of the lattice. This PR also creates a directory `Zlattice` (with the original file becoming `Zlattice/Basic.lean`) and a new file `Zlattice/Covolume.lean`. ESTIMATED CHANGES Modified Mathlib.lean Renamed Mathlib/Algebra/Module/Zlattice.lean to Mathlib/Algebra/Module/Zlattice/Basic.lean + theorem Zlattice.isAddFundamentalDomain Added Mathlib/Algebra/Module/Zlattice/Covolume.lean + def Zlattice.covolume + theorem Zlattice.covolume_eq_det + theorem Zlattice.covolume_eq_det_mul_measure + theorem Zlattice.covolume_eq_measure_fundamentalDomain + theorem Zlattice.covolume_ne_zero + theorem Zlattice.covolume_pos Modified Mathlib/NumberTheory/NumberField/CanonicalEmbedding/Basic.lean 2024-04-17 08:31:24 3026f63 chore(PeriodicPts): migrate `List.nthLe` → `List.get` (#12209) ESTIMATED CHANGES Modified Mathlib/Dynamics/PeriodicPts.lean 2024-04-17 08:31:23 9d504dc chore(Order/JordanHolder): `List.nthLe` → `List.get` (#12208) ESTIMATED CHANGES Modified Mathlib/Order/JordanHolder.lean 2024-04-17 07:30:13 66c1651 chore(GroupTheory): remove autoImplicit (#12134) ESTIMATED CHANGES Modified Mathlib/GroupTheory/ClassEquation.lean Modified Mathlib/GroupTheory/CommutingProbability.lean +/- theorem commProb_function +/- theorem commProb_pi Modified Mathlib/GroupTheory/GroupAction/DomAct/ActionHom.lean Modified Mathlib/GroupTheory/GroupAction/DomAct/Basic.lean Modified Mathlib/GroupTheory/GroupAction/Prod.lean Modified Mathlib/GroupTheory/GroupAction/Quotient.lean +/- theorem ConjClasses.card_carrier 2024-04-17 06:35:50 d5ffcef fix: mdata in cancel_denoms (#12083) PR inspired by "automated bugs" (#12054). [Zulip thread](https://leanprover.zulipchat.com/#narrow/stream/113488-general/topic/automated.20bugs/near/432861117) ESTIMATED CHANGES Modified Mathlib/Tactic/CancelDenoms/Core.lean +/- def CancelDenoms.findCompLemma Modified test/cancel_denoms.lean 2024-04-17 04:41:11 50ad8e5 chore: nightly-testing bot reminders in separate stream (#12200) ESTIMATED CHANGES Modified .github/workflows/nightly_detect_failure.yml 2024-04-17 04:41:10 22f7e6f chore: speed up a proof in FieldTheory/NormalClosure (#12199) Speed up a proof which will otherwise timeout on nightly-testing. ESTIMATED CHANGES Modified Mathlib/FieldTheory/NormalClosure.lean 2024-04-17 04:41:09 08a6c1d chore: speed up a proof in FourierTransformDeriv (#12198) This gets slower on nightly-testing, so here's a pre-emptive speed up. ESTIMATED CHANGES Modified Mathlib/Analysis/Fourier/FourierTransformDeriv.lean 2024-04-17 04:41:08 d200a39 chore: speed up a proof that breaks later (#12195) Help a proof along by expliciting rewriting by an associativity lemma, rather than relying on the defeq (which causes a timeout on nightly-testing). ESTIMATED CHANGES Modified Mathlib/FieldTheory/Extension.lean 2024-04-17 03:36:49 ab8ac29 feat(List/Infix): add `get_tails` and `get_inits` (#12170) The goal is to drop `nth_le_tails` and `nth_le_inits` soon. Written for #9607, moved to a separate PR ESTIMATED CHANGES Modified Mathlib/Data/List/Infix.lean + theorem List.get_inits + theorem List.get_tails 2024-04-17 00:57:44 42466cc chore(Associated): add simps, golf (#11435) ## New `simp` tags or `simp` lemmas `associated_one_iff_isUnit`, `associated_zero_iff_eq_zero`, `Associates.mk_eq_one`, `Associates.mk_dvd_mk`, `Associates.mk_isRelPrime_iff`, `Associates.mk_zero`, `Associates.quot_out_zero`, `Associates.le_zero`, `Associates.prime_mk`, `Associates.irreducible_mk`, `Associates.mk_dvdNotUnit_mk_iff`, `Associates.factors_le`, `Associates.prod_factors` ## New `gcongr` tags `Associates.factors_mono`, `Associates.prod_mono` ## Change explicit args to implicit `Associates.prime_mk`, `Associates.irreducible_mk`, `Associates.one_or_eq_of_le_of_prime` ## Change typeclass assumptions - drop `[Nontrivial _]` here and there, mostly in cases when a lemma has `_ ≠ _` assumption - drop all decidability assumptions in `Associates.FactorSetMem` - drop decidability assumptions when they aren't needed to formulate a theorem ## Use `WithTop` API Use `WithTop.some` and `⊤` instead of `Option.some` and `none` in `UniqueFactorizationDomain`. ## Renames - `Associates.isPrimal_iff` → `Associates.isPrimal_mk`; - `Associates.mk_le_mk_iff_dvd_iff` → `Associates.mk_le_mk_iff_dvd`; - `Associates.factors_0` → `Associates.factors_zero`; - `Associates.factors_eq_none_iff_zero` → `Associates.factors_eq_top_iff_zero` ESTIMATED CHANGES Modified Mathlib/Algebra/Associated.lean +/- theorem Associated.eq_zero_iff +/- theorem Associates.dvd_of_mk_le_mk +/- theorem Associates.irreducible_mk - theorem Associates.isPrimal_iff + theorem Associates.isPrimal_mk +/- theorem Associates.mk_dvd_mk + theorem Associates.mk_eq_one + theorem Associates.mk_le_mk_iff_dvd - theorem Associates.mk_le_mk_iff_dvd_iff +/- theorem Associates.mk_le_mk_of_dvd + theorem Associates.mk_zero +/- theorem Associates.one_or_eq_of_le_of_prime +/- theorem Associates.prime_mk + theorem Associates.quot_out_zero Modified Mathlib/Algebra/GCDMonoid/Basic.lean +/- theorem gcd_one_left' +/- theorem gcd_one_right' + theorem isUnit_gcd_one_left + theorem isUnit_gcd_one_right Modified Mathlib/Algebra/Module/PID.lean Modified Mathlib/RingTheory/ChainOfDivisors.lean Modified Mathlib/RingTheory/DedekindDomain/AdicValuation.lean Modified Mathlib/RingTheory/DedekindDomain/Ideal.lean Modified Mathlib/RingTheory/Int/Basic.lean Modified Mathlib/RingTheory/UniqueFactorizationDomain.lean +/- def Associates.bcount +/- def Associates.count +/- theorem Associates.count_le_count_of_factors_le +/- theorem Associates.count_le_count_of_le +/- theorem Associates.count_ne_zero_iff_dvd +/- theorem Associates.count_reducible +/- theorem Associates.count_some +/- theorem Associates.count_zero +/- theorem Associates.dvd_of_mem_factors +/- theorem Associates.eq_factors_of_eq_counts +/- theorem Associates.eq_of_eq_counts +/- theorem Associates.eq_pow_of_mul_eq_pow - theorem Associates.factors_0 - theorem Associates.factors_eq_none_iff_zero + theorem Associates.factors_eq_top_iff_zero +/- theorem Associates.factors_le +/- theorem Associates.factors_prod +/- theorem Associates.factors_subsingleton + theorem Associates.factors_zero + theorem Associates.irreducible_of_mem_factorSet +/- theorem Associates.is_pow_of_dvd_count +/- theorem Associates.le_of_count_ne_zero +/- theorem Associates.prime_pow_dvd_iff_le + theorem Associates.prime_pow_le_iff_le_bcount 2024-04-17 00:30:53 f9a1a20 refactor(Game/PGame): use `List.get` instead of `List.nthLe` (#12173) ESTIMATED CHANGES Modified Mathlib/SetTheory/Game/PGame.lean 2024-04-17 00:30:52 256c22b feat: add `ContinuousAlternatingMap.toAlternatingMapLinear` (#12119) ESTIMATED CHANGES Modified Mathlib/Topology/Algebra/Module/Alternating/Basic.lean + def ContinuousAlternatingMap.toAlternatingMapLinear 2024-04-16 23:33:36 f0cc6e5 chore(Topology): make `LocallyConstant.comap` computable (#12182) After the recent refactor (#12136), the `noncomputable` modifier is unnecessary, and the docstring needed modification. ESTIMATED CHANGES Modified Mathlib/Topology/LocallyConstant/Basic.lean + def LocallyConstant.comap 2024-04-16 23:33:35 7cdbcaa chore(Topology/../Alternating): add spaces to notation (#12118) Now it delaborates as `M [⋀^ι]→L[R] N`, not `M[⋀^ι]→L[R]N`. ESTIMATED CHANGES Modified Mathlib/Topology/Algebra/Module/Alternating/Basic.lean 2024-04-16 23:33:34 05d3da3 chore(Data/DFinsupp/Basic): remove impossible `→ₚ` notation (#12018) This is a binary operator that expands to a unary function; so this notation is (and has always been) impossible to use. ESTIMATED CHANGES Modified Mathlib/Data/DFinsupp/Basic.lean 2024-04-16 22:37:50 fcf5d48 Feat: add fermatLastTheoremThree_of_three_dvd_only_c (#11767) We add `fermatLastTheoremThree_of_three_dvd_only_c`: To prove `FermatLastTheoremFor 3`, we may assume that `¬ 3 ∣ a`, `¬ 3 ∣ b`, `a` and `b` are coprime and `3 ∣ c`. From the flt3 project in LFTCM2024. ESTIMATED CHANGES Modified Mathlib/Data/Int/GCD.lean +/- theorem Int.pow_dvd_pow_iff Modified Mathlib/Data/Nat/GCD/Basic.lean +/- theorem Nat.pow_dvd_pow_iff Modified Mathlib/Data/Real/Irrational.lean Modified Mathlib/NumberTheory/FLT/Basic.lean + theorem dvd_c_of_prime_of_dvd_a_of_dvd_b_of_FLT + theorem isCoprime_of_gcd_eq_one_of_FLT Modified Mathlib/NumberTheory/FLT/Four.lean Modified Mathlib/NumberTheory/FLT/Three.lean +/- theorem fermatLastTheoremThree_case_1 + theorem fermatLastTheoremThree_of_three_dvd_only_c Modified Mathlib/NumberTheory/Pell.lean Modified Mathlib/NumberTheory/PythagoreanTriples.lean Modified Mathlib/RingTheory/IntegrallyClosed.lean + theorem IsIntegrallyClosed.pow_dvd_pow_iff 2024-04-16 22:37:49 8f9698d feat(Order): limit elements in well-ordered types (#11584) This PR introduces two main definitions: - `wellOrderSucc a`: the successor of an element `a` in a well-ordered type - the typeclass `IsWellOrderLimitElement a` which asserts that an element `a` (in a well-ordered type) is neither a successor nor the smallest element, i.e. `a` is a limit element Then, the lemma `eq_bot_or_eq_succ_or_isWellOrderLimitElement` shows that an element in a well-ordered type is either `⊥`, a successor, or a limit element. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Order/IsWellOrderLimitElement.lean + theorem IsWellOrderLimitElement.bot_lt + theorem IsWellOrderLimitElement.neq_bot + theorem IsWellOrderLimitElement.neq_succ + theorem IsWellOrderLimitElement.wellOrderSucc_lt + theorem Nat.not_isWellOrderLimitElement + theorem Nat.wellOrderSucc_eq + theorem eq_bot_or_eq_succ_or_isWellOrderLimitElement + theorem le_of_lt_wellOrderSucc + theorem self_le_wellOrderSucc + theorem self_lt_wellOrderSucc + theorem wellOrderSucc_le 2024-04-16 21:36:31 c2ce3b2 Add floor_real_sqrt_eq_nat_sqrt (#12187) ESTIMATED CHANGES Modified Mathlib/Data/Real/Sqrt.lean + theorem Real.floor_real_sqrt_eq_nat_sqrt + theorem Real.nat_floor_real_sqrt_eq_nat_sqrt + theorem Real.real_sqrt_lt_nat_sqrt_succ 2024-04-16 21:36:30 1aff9ff chore(Data/Finset/Powerset): Fix decidability instances (#11672) Typeclass search cannot synthesize `∀ t ⊆ s, Decidable (p t)` hypothesis, hence the instance could never fire. Fix it and compress back the binders, both in the instancs and `Combinatorics.Additive.SalemSpencer` where they were supposed to be used. ESTIMATED CHANGES Modified Mathlib/Combinatorics/Additive/SalemSpencer.lean Modified Mathlib/Data/Finset/Powerset.lean - def Finset.decidableExistsOfDecidableSubsets' - def Finset.decidableForallOfDecidableSubsets' 2024-04-16 21:10:32 da61761 feat: coalgebra homomorphisms (#11961) Homomorphisms of coalgebras, mimicking the file `Mathlib.Algebra.Algebra.Hom`. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/RingTheory/Bialgebra.lean Renamed Mathlib/RingTheory/Coalgebra.lean to Mathlib/RingTheory/Coalgebra/Basic.lean Added Mathlib/RingTheory/Coalgebra/Hom.lean + def CoalgHom.Simps.apply + theorem CoalgHom.coe_addMonoidHom_injective + theorem CoalgHom.coe_comp + theorem CoalgHom.coe_fn_inj + theorem CoalgHom.coe_fn_injective + theorem CoalgHom.coe_id + theorem CoalgHom.coe_linearMap_injective + theorem CoalgHom.coe_linearMap_mk + theorem CoalgHom.coe_mk + theorem CoalgHom.coe_mks + theorem CoalgHom.coe_toAddMonoidHom + theorem CoalgHom.coe_toLinearMap + def CoalgHom.comp + theorem CoalgHom.comp_assoc + theorem CoalgHom.comp_id + theorem CoalgHom.comp_toLinearMap + theorem CoalgHom.ext + theorem CoalgHom.ext_iff + theorem CoalgHom.ext_of_ring + theorem CoalgHom.id_comp + theorem CoalgHom.id_toLinearMap + theorem CoalgHom.map_smul_of_tower + theorem CoalgHom.mk_coe + theorem CoalgHom.mul_apply + theorem CoalgHom.one_apply + theorem CoalgHom.toLinearMap_eq_coe + structure CoalgHom + theorem CoalgHomClass.counit_comp_apply + theorem CoalgHomClass.map_comp_comul_apply + def CoalgHomClass.toCoalgHom + def Coalgebra.counitCoalgHom + theorem Coalgebra.counitCoalgHom_apply + theorem Coalgebra.counitCoalgHom_toLinearMap + theorem Coalgebra.ext_to_ring 2024-04-16 20:19:07 a365380 feat(MeasureTheory/Haar): haarScalarFactor lemmas (#10383) - Changed existing proofs of some lemmas to avoid code duplication. Took out some common lines in their proofs and turned them into a lemma. - `haarScalarFactor \mu \mu = 1` ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Integral/Bochner.lean + theorem MeasureTheory.integral_pos_of_integrable_nonneg_nonzero Modified Mathlib/MeasureTheory/Integral/SetIntegral.lean + theorem Continuous.integral_pos_of_hasCompactSupport_nonneg_nonzero Modified Mathlib/MeasureTheory/Measure/Haar/Unique.lean + theorem MeasureTheory.Measure.haarScalarFactor_eq_integral_div + theorem MeasureTheory.Measure.haarScalarFactor_smul 2024-04-16 19:49:32 e521a25 refactor(LinearAlgebra/BilinearForm/Basic): Derive the `*_left` and `*_right` results from the `map_*₂` and `map_*` results (#12124) Following #11278 a number of the results in `LinearAlgebra/BilinearForm/Basic` are just special cases of results in `LinearAlgebra/BilinearMap`. ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/BilinearForm/Basic.lean +/- theorem LinearMap.BilinForm.add_left +/- theorem LinearMap.BilinForm.congr_fun +/- theorem LinearMap.BilinForm.ext_iff +/- theorem LinearMap.BilinForm.neg_left +/- theorem LinearMap.BilinForm.neg_right +/- theorem LinearMap.BilinForm.smul_left +/- theorem LinearMap.BilinForm.sub_left +/- theorem LinearMap.BilinForm.sub_right +/- theorem LinearMap.BilinForm.zero_left +/- theorem LinearMap.BilinForm.zero_right 2024-04-16 18:50:31 1c6ef0c feat: norm estimates for various operators in linear algebra (#12150) There is a technical issue: I need to register two local instances to be even able to state the norm estimates. The issue is typeclass inference getting stuck in complicated types of linear maps... ESTIMATED CHANGES Modified Mathlib/Analysis/Calculus/ContDiff/Basic.lean + theorem iteratedFDeriv_const_smul_apply' Modified Mathlib/Analysis/InnerProductSpace/Basic.lean + theorem norm_innerSL_le Modified Mathlib/Analysis/NormedSpace/Multilinear/Basic.lean + theorem ContinuousMultilinearMap.norm_smulRightL_le + def ContinuousMultilinearMap.seminormedAddCommGroup_aux_for_smulRightL Modified Mathlib/Analysis/NormedSpace/OperatorNorm/NormedSpace.lean + theorem ContinuousLinearMap.norm_smulRightL_le + def ContinuousLinearMap.seminormedAddCommGroup_aux_for_smulRightL Modified Mathlib/Topology/Algebra/Module/Basic.lean + def Pi.compRightL + theorem Pi.compRightL_apply 2024-04-16 18:10:25 75e4839 chore(OperatorNorm): label synthesis failures depth violations (#12188) These instances could be found automatically if we were allowed to bump `Lean.Meta.Context.synthPendingDepth` manually. ESTIMATED CHANGES Modified Mathlib/Analysis/NormedSpace/OperatorNorm/Bilinear.lean Modified Mathlib/Analysis/NormedSpace/OperatorNorm/Mul.lean 2024-04-16 13:39:18 09e40ec chore(CategoryTheory): address porting note in KanExtension file (#12148) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Limits/KanExtension.lean 2024-04-16 12:43:03 bde5669 feat(Probability/Kernel): disintegration of finite kernels (#10603) Let `κ : kernel α (β × Ω)` be a finite kernel, where `Ω` is a standard Borel space. Then if `α` is countable or `β` has a countably generated σ-algebra (for example if it is standard Borel), then there exists a `kernel (α × β) Ω` called conditional kernel and denoted by `condKernel κ` such that `κ = fst κ ⊗ₖ condKernel κ`. Properties of integrals involving `condKernel` are collated in the file `Integral.lean`. The conditional kernel is unique (almost everywhere w.r.t. `fst κ`): this is proved in the file `Unique.lean`. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/MeasureTheory/Constructions/Polish.lean + def MeasureTheory.embeddingReal + theorem MeasureTheory.measurableEmbedding_embeddingReal Modified Mathlib/MeasureTheory/MeasurableSpace/Basic.lean + theorem MeasurableSet.measurableAtom_of_countable + def measurableAtom + theorem measurableAtom_of_measurableSingletonClass + theorem measurableAtom_subset + theorem measurable_from_prod_countable' + theorem mem_measurableAtom_self + theorem mem_of_mem_measurableAtom Modified Mathlib/MeasureTheory/MeasurableSpace/CountablyGenerated.lean Modified Mathlib/Probability/Kernel/Composition.lean + theorem ProbabilityTheory.kernel.comapRight_compProd_id_prod Modified Mathlib/Probability/Kernel/CondDistrib.lean Modified Mathlib/Probability/Kernel/Condexp.lean +/- theorem MeasureTheory.Integrable.integral_condexpKernel +/- theorem ProbabilityTheory.aestronglyMeasurable'_integral_condexpKernel Deleted Mathlib/Probability/Kernel/Disintegration.lean - theorem MeasureTheory.AEStronglyMeasurable.ae_integrable_condKernel_iff - theorem MeasureTheory.AEStronglyMeasurable.integral_condKernel - theorem MeasureTheory.Integrable.condKernel_ae - theorem MeasureTheory.Integrable.integral_condKernel - theorem MeasureTheory.Integrable.integral_norm_condKernel - theorem MeasureTheory.Integrable.norm_integral_condKernel - theorem ProbabilityTheory.ae_condKernelReal_eq_one - theorem ProbabilityTheory.condKernelReal_Iic - theorem ProbabilityTheory.condKernel_apply_of_ne_zero - theorem ProbabilityTheory.condKernel_apply_of_ne_zero_of_measurableSet - theorem ProbabilityTheory.condKernel_def - theorem ProbabilityTheory.eq_condKernel_of_measure_eq_compProd' - theorem ProbabilityTheory.eq_condKernel_of_measure_eq_compProd - theorem ProbabilityTheory.eq_condKernel_of_measure_eq_compProd_real - theorem ProbabilityTheory.exists_cond_kernel - theorem ProbabilityTheory.integral_condKernel - theorem ProbabilityTheory.kernel.const_eq_compProd - theorem ProbabilityTheory.kernel.const_eq_compProd_real - theorem ProbabilityTheory.kernel.const_unit_eq_compProd - theorem ProbabilityTheory.lintegral_condKernel - theorem ProbabilityTheory.lintegral_condKernelReal - theorem ProbabilityTheory.lintegral_condKernelReal_mem - theorem ProbabilityTheory.lintegral_condKernelReal_univ - theorem ProbabilityTheory.lintegral_condKernel_mem - theorem ProbabilityTheory.measure_eq_compProd - theorem ProbabilityTheory.measure_eq_compProd_real - theorem ProbabilityTheory.set_integral_condKernel - theorem ProbabilityTheory.set_integral_condKernel_univ_left - theorem ProbabilityTheory.set_integral_condKernel_univ_right - theorem ProbabilityTheory.set_lintegral_condKernel - theorem ProbabilityTheory.set_lintegral_condKernelReal_Iic - theorem ProbabilityTheory.set_lintegral_condKernelReal_prod - theorem ProbabilityTheory.set_lintegral_condKernelReal_univ - theorem ProbabilityTheory.set_lintegral_condKernel_eq_measure_prod - theorem ProbabilityTheory.set_lintegral_condKernel_univ_left - theorem ProbabilityTheory.set_lintegral_condKernel_univ_right Added Mathlib/Probability/Kernel/Disintegration/Basic.lean + theorem MeasureTheory.Measure.compProd_fst_condKernel + theorem MeasureTheory.Measure.condKernel_apply + theorem MeasureTheory.Measure.condKernel_apply_of_ne_zero + theorem MeasureTheory.Measure.condKernel_apply_of_ne_zero_of_measurableSet + def ProbabilityTheory.kernel.borelMarkovFromReal + theorem ProbabilityTheory.kernel.borelMarkovFromReal_apply' + theorem ProbabilityTheory.kernel.borelMarkovFromReal_apply + theorem ProbabilityTheory.kernel.compProd_fst_borelMarkovFromReal + theorem ProbabilityTheory.kernel.compProd_fst_borelMarkovFromReal_eq_comapRight_compProd + theorem ProbabilityTheory.kernel.compProd_fst_condKernel + theorem ProbabilityTheory.kernel.compProd_fst_condKernelBorel + theorem ProbabilityTheory.kernel.compProd_fst_condKernelCountable + theorem ProbabilityTheory.kernel.compProd_fst_condKernelReal + theorem ProbabilityTheory.kernel.compProd_fst_condKernelUnitBorel + theorem ProbabilityTheory.kernel.compProd_fst_condKernelUnitReal + def ProbabilityTheory.kernel.condKernelBorel + def ProbabilityTheory.kernel.condKernelCDF + def ProbabilityTheory.kernel.condKernelCountable + theorem ProbabilityTheory.kernel.condKernelCountable_apply + def ProbabilityTheory.kernel.condKernelReal + def ProbabilityTheory.kernel.condKernelUnitBorel + def ProbabilityTheory.kernel.condKernelUnitReal + theorem ProbabilityTheory.kernel.isCondKernelCDF_condKernelCDF + theorem ProbabilityTheory.kernel.isRatCondKernelCDFAux_density_Iic + theorem ProbabilityTheory.kernel.isRatCondKernelCDF_density_Iic Modified Mathlib/Probability/Kernel/Disintegration/CdfToKernel.lean - theorem ProbabilityTheory.ae_toKernel_eq_one - theorem ProbabilityTheory.measurableSet_toKernel_eq_one Added Mathlib/Probability/Kernel/Disintegration/Integral.lean + theorem MeasureTheory.AEStronglyMeasurable.ae_integrable_condKernel_iff + theorem MeasureTheory.AEStronglyMeasurable.integral_condKernel + theorem MeasureTheory.AEStronglyMeasurable.integral_kernel_condKernel + theorem MeasureTheory.Integrable.condKernel_ae + theorem MeasureTheory.Integrable.integral_condKernel + theorem MeasureTheory.Integrable.integral_norm_condKernel + theorem MeasureTheory.Integrable.norm_integral_condKernel + theorem MeasureTheory.Measure.integral_condKernel + theorem MeasureTheory.Measure.lintegral_condKernel + theorem MeasureTheory.Measure.lintegral_condKernel_mem + theorem MeasureTheory.Measure.set_integral_condKernel + theorem MeasureTheory.Measure.set_integral_condKernel_univ_left + theorem MeasureTheory.Measure.set_integral_condKernel_univ_right + theorem MeasureTheory.Measure.set_lintegral_condKernel + theorem MeasureTheory.Measure.set_lintegral_condKernel_eq_measure_prod + theorem MeasureTheory.Measure.set_lintegral_condKernel_univ_left + theorem MeasureTheory.Measure.set_lintegral_condKernel_univ_right + theorem ProbabilityTheory.integral_condKernel + theorem ProbabilityTheory.lintegral_condKernel + theorem ProbabilityTheory.lintegral_condKernel_mem + theorem ProbabilityTheory.set_integral_condKernel + theorem ProbabilityTheory.set_integral_condKernel_univ_left + theorem ProbabilityTheory.set_integral_condKernel_univ_right + theorem ProbabilityTheory.set_lintegral_condKernel + theorem ProbabilityTheory.set_lintegral_condKernel_eq_measure_prod + theorem ProbabilityTheory.set_lintegral_condKernel_univ_left + theorem ProbabilityTheory.set_lintegral_condKernel_univ_right Added Mathlib/Probability/Kernel/Disintegration/Unique.lean + theorem ProbabilityTheory.condKernel_const + theorem ProbabilityTheory.eq_condKernel_of_kernel_eq_compProd + theorem ProbabilityTheory.eq_condKernel_of_measure_eq_compProd' + theorem ProbabilityTheory.eq_condKernel_of_measure_eq_compProd + theorem ProbabilityTheory.eq_condKernel_of_measure_eq_compProd_real + theorem ProbabilityTheory.kernel.apply_eq_measure_condKernel_of_compProd_eq + theorem ProbabilityTheory.kernel.condKernel_apply_eq_condKernel Modified Mathlib/Probability/Kernel/IntegralCompProd.lean +/- theorem MeasureTheory.Integrable.integral_compProd Modified Mathlib/Probability/Kernel/MeasurableIntegral.lean Modified Mathlib/Probability/Kernel/MeasureCompProd.lean 2024-04-16 11:34:01 02293f4 chore: backports from #11997, adaptations for nightly-2024-04-07 (#12176) These are changes from #11997, the latest adaptation PR for nightly-2024-04-07, which can be made directly on master. ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/Bilinear.lean Modified Mathlib/Algebra/BigOperators/List/Basic.lean Modified Mathlib/Algebra/CharP/Basic.lean Modified Mathlib/Algebra/CharP/Invertible.lean Modified Mathlib/Algebra/Function/Indicator.lean Modified Mathlib/Algebra/GroupPower/IterateHom.lean Modified Mathlib/Algebra/Lie/Engel.lean Modified Mathlib/Algebra/Module/Zlattice.lean Modified Mathlib/Algebra/MvPolynomial/Variables.lean Modified Mathlib/Algebra/Order/BigOperators/Group/Finset.lean Modified Mathlib/Algebra/Polynomial/Basic.lean + theorem Polynomial.add_eq_add + theorem Polynomial.mul_eq_mul Modified Mathlib/Algebra/Polynomial/Div.lean Modified Mathlib/Algebra/Polynomial/Eval.lean Modified Mathlib/Analysis/Analytic/Composition.lean Modified Mathlib/Analysis/Analytic/Inverse.lean Modified Mathlib/Analysis/Convolution.lean Modified Mathlib/Analysis/Fourier/RiemannLebesgueLemma.lean Modified Mathlib/Analysis/LocallyConvex/ContinuousOfBounded.lean Modified Mathlib/Analysis/LocallyConvex/WeakDual.lean Modified Mathlib/Analysis/NormedSpace/OperatorNorm/Mul.lean Modified Mathlib/Analysis/NormedSpace/RCLike.lean Modified Mathlib/Analysis/NormedSpace/Star/Unitization.lean Modified Mathlib/Analysis/SpecialFunctions/Gamma/Deligne.lean Modified Mathlib/Analysis/SpecialFunctions/Gaussian/FourierTransform.lean Modified Mathlib/Analysis/SpecialFunctions/Pow/NNReal.lean Modified Mathlib/Analysis/SpecificLimits/Normed.lean Modified Mathlib/Combinatorics/SimpleGraph/Coloring.lean Modified Mathlib/Combinatorics/SimpleGraph/Regularity/Equitabilise.lean Modified Mathlib/Data/Finsupp/Basic.lean Modified Mathlib/Data/List/NatAntidiagonal.lean Modified Mathlib/Data/List/Perm.lean Modified Mathlib/Data/Matrix/PEquiv.lean Modified Mathlib/Data/Nat/Choose/Sum.lean Modified Mathlib/Data/Nat/Log.lean Modified Mathlib/Data/Rat/Order.lean Modified Mathlib/Data/Set/Card.lean Modified Mathlib/Geometry/Euclidean/Angle/Oriented/Rotation.lean Modified Mathlib/Geometry/Euclidean/Sphere/Basic.lean Modified Mathlib/Geometry/Manifold/Instances/Sphere.lean Modified Mathlib/Geometry/RingedSpace/PresheafedSpace/HasColimits.lean Modified Mathlib/GroupTheory/Perm/Cycle/Concrete.lean Modified Mathlib/GroupTheory/Perm/Fin.lean Modified Mathlib/LinearAlgebra/AffineSpace/AffineSubspace.lean Modified Mathlib/LinearAlgebra/BilinearMap.lean Modified Mathlib/LinearAlgebra/Contraction.lean Modified Mathlib/LinearAlgebra/Matrix/Basis.lean Modified Mathlib/LinearAlgebra/Matrix/Determinant.lean Modified Mathlib/LinearAlgebra/TensorProduct/Basic.lean Modified Mathlib/LinearAlgebra/TensorProduct/Matrix.lean Modified Mathlib/Logic/Basic.lean Modified Mathlib/MeasureTheory/Constructions/Cylinders.lean Modified Mathlib/MeasureTheory/Constructions/Pi.lean Modified Mathlib/MeasureTheory/Function/ConditionalExpectation/Real.lean Modified Mathlib/MeasureTheory/Function/LpSeminorm/Basic.lean Modified Mathlib/MeasureTheory/Function/LpSeminorm/CompareExp.lean Modified Mathlib/MeasureTheory/Group/Action.lean Modified Mathlib/MeasureTheory/Integral/Bochner.lean Modified Mathlib/MeasureTheory/Integral/MeanInequalities.lean Modified Mathlib/MeasureTheory/Measure/ProbabilityMeasure.lean Modified Mathlib/NumberTheory/ClassNumber/AdmissibleCardPowDegree.lean Modified Mathlib/NumberTheory/Divisors.lean Modified Mathlib/NumberTheory/KummerDedekind.lean Modified Mathlib/NumberTheory/LSeries/MellinEqDirichlet.lean Modified Mathlib/Order/Atoms.lean Modified Mathlib/Order/Height.lean Modified Mathlib/Probability/Kernel/Disintegration/CondCdf.lean Modified Mathlib/Probability/StrongLaw.lean Modified Mathlib/Probability/Variance.lean Modified Mathlib/RingTheory/HahnSeries/Summable.lean Modified Mathlib/RingTheory/Multiplicity.lean Modified Mathlib/RingTheory/MvPolynomial/Homogeneous.lean Modified Mathlib/RingTheory/MvPolynomial/WeightedHomogeneous.lean Modified Mathlib/RingTheory/Polynomial/Content.lean Modified Mathlib/RingTheory/ReesAlgebra.lean Modified Mathlib/RingTheory/UniqueFactorizationDomain.lean Modified Mathlib/RingTheory/WittVector/Identities.lean Modified Mathlib/SetTheory/Ordinal/FixedPoint.lean Modified Mathlib/Topology/ContinuousFunction/Ideals.lean 2024-04-16 11:34:00 41ebfad feat: Matroid restrictions (#9023) We define the restriction of a matroid to a set, the resulting partial order on the set of matroids on a type, and give associated API. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Data/Matroid/Basic.lean + theorem Matroid.Basis'.inter_eq_of_subset_indep + theorem Matroid.Basis'.mem_of_insert_indep + theorem Matroid.exists_basis_disjoint_basis_of_subset + theorem Matroid.finite_setOf_matroid' + theorem Matroid.finite_setOf_matroid Added Mathlib/Data/Matroid/Restrict.lean + theorem Matroid.Base.basis_of_restriction + theorem Matroid.Basis'.encard_eq_encard + theorem Matroid.Basis.base_of_base_subset + theorem Matroid.Basis.base_restrict + theorem Matroid.Basis.basis_of_basis_of_subset_of_subset + theorem Matroid.Basis.basis_restrict_of_subset + theorem Matroid.Basis.basis_restriction + theorem Matroid.Basis.encard_eq_encard + theorem Matroid.Basis.eq_exchange_of_diff_eq_singleton + theorem Matroid.Basis.exchange + theorem Matroid.Basis.of_restriction + theorem Matroid.Basis.restrict_base + theorem Matroid.Basis.transfer + theorem Matroid.Dep.dep_restriction + theorem Matroid.Dep.of_restriction + theorem Matroid.Indep.augment + theorem Matroid.Indep.exists_basis_subset_union_basis + theorem Matroid.Indep.exists_insert_of_not_basis + theorem Matroid.Indep.indep_restrict_of_subset + theorem Matroid.Indep.indep_restriction + theorem Matroid.Indep.of_restrict + theorem Matroid.Indep.of_restriction + theorem Matroid.Matroidᵣ.coe_inj + structure Matroid.Matroidᵣ + theorem Matroid.Restriction.antisymm + theorem Matroid.Restriction.eq_or_strictRestriction + theorem Matroid.Restriction.eq_restrict + theorem Matroid.Restriction.exists_eq_restrict + theorem Matroid.Restriction.finitary + theorem Matroid.Restriction.finite + theorem Matroid.Restriction.finiteRk + theorem Matroid.Restriction.of_subset + theorem Matroid.Restriction.refl + theorem Matroid.Restriction.strictRestriction_of_ground_ne + theorem Matroid.Restriction.strictRestriction_of_ne + theorem Matroid.Restriction.subset + theorem Matroid.Restriction.trans + def Matroid.Restriction + theorem Matroid.StrictRestriction.eq_restrict + theorem Matroid.StrictRestriction.exists_eq_restrict + theorem Matroid.StrictRestriction.irrefl + theorem Matroid.StrictRestriction.ne + theorem Matroid.StrictRestriction.of_ssubset + theorem Matroid.StrictRestriction.restriction + theorem Matroid.StrictRestriction.ssubset + def Matroid.StrictRestriction + theorem Matroid.base_restrict_iff' + theorem Matroid.base_restrict_iff + theorem Matroid.basis'_restrict_iff + theorem Matroid.basis_restrict_iff' + theorem Matroid.basis_restrict_iff + theorem Matroid.finite_setOf_restriction + theorem Matroid.ofMatroid_le_iff + theorem Matroid.ofMatroid_lt_iff + def Matroid.restrict + def Matroid.restrictIndepMatroid + theorem Matroid.restrict_dep_iff + theorem Matroid.restrict_eq_restrict_iff + theorem Matroid.restrict_eq_self_iff + theorem Matroid.restrict_finite + theorem Matroid.restrict_ground_eq + theorem Matroid.restrict_ground_eq_self + theorem Matroid.restrict_idem + theorem Matroid.restrict_indep_iff + theorem Matroid.restrict_restrict_eq + theorem Matroid.restrict_restriction + theorem Matroid.restrict_strictRestriction + theorem Matroid.restriction_iff_exists 2024-04-16 10:25:20 246e9e2 doc(Order): fix join/meet inversion for lattices (#12172) Currently, this doc-string describes [Mathlib.Order.Lattice](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Order/Lattice.html): > Semilattices are partially ordered sets with join (greatest lower bound, or sup) or meet (least upper bound, or inf) operations. It seems to be the other way around: https://en.wikipedia.org/wiki/Semilattice This commit fixes this. ESTIMATED CHANGES Modified Mathlib/Order/Lattice.lean 2024-04-16 10:25:20 d83efb3 refactor(CategoryTheory): more general form of the characterisation of condensed sets as sheaves on `Stonean` (#11518) Given a fully faithful functor `F : C ⥤ D` into a precoherent category, which preserves and reflects finite effective epi families, and satisfies the property `F.EffectivelyEnough` (meaning that to every object in `C` there is an effective epi from an object in the image of `F`), the categories of coherent sheaves on `C` and `D` are equivalent. We give the corresonding result for the regular topology as well. We use this general setup to refactor the characterisation of condensed sets as sheaves on `Stonean`; indeed, the inclusion functor to `CompHaus` satisfies `Functor.EffectivelyEnough` because the Stonean spaces are the projective objects in `CompHaus`, which has enough projectives and every epimorphism in `CompHaus` is effective. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/CategoryTheory/EffectiveEpi/Enough.lean Deleted Mathlib/CategoryTheory/Sites/Coherent/CoverDense.lean Modified Mathlib/CategoryTheory/Sites/Coherent/Equivalence.lean - theorem CategoryTheory.Equivalence.precoherent_eq - theorem CategoryTheory.Equivalence.preregular_eq Added Mathlib/CategoryTheory/Sites/Coherent/SheafComparison.lean + theorem CategoryTheory.coherentTopology.coverPreserving + theorem CategoryTheory.coherentTopology.eq_induced + def CategoryTheory.coherentTopology.equivalence' + def CategoryTheory.coherentTopology.equivalence + theorem CategoryTheory.coherentTopology.exists_effectiveEpiFamily_iff_mem_induced + theorem CategoryTheory.regularTopology.coverPreserving + theorem CategoryTheory.regularTopology.eq_induced + def CategoryTheory.regularTopology.equivalence + theorem CategoryTheory.regularTopology.exists_effectiveEpi_iff_mem_induced Modified Mathlib/Condensed/Equivalence.lean +/- def Condensed.ProfiniteCompHaus.equivalence - theorem Condensed.StoneanCompHaus.coherentTopology_is_induced - theorem Condensed.StoneanCompHaus.coverDense.inducedTopology_Sieve_iff_EffectiveEpiFamily - theorem Condensed.StoneanCompHaus.coverPreserving +/- def Condensed.StoneanCompHaus.equivalence - theorem Condensed.StoneanCompHaus.generate_singleton_mem_coherentTopology - theorem Condensed.StoneanProfinite.coherentTopology_is_induced - theorem Condensed.StoneanProfinite.coverDense.inducedTopology_Sieve_iff_EffectiveEpiFamily - theorem Condensed.StoneanProfinite.coverPreserving +/- def Condensed.StoneanProfinite.equivalence - theorem Condensed.StoneanProfinite.generate_singleton_mem_coherentTopology + theorem Condensed.isSheafProfinite + theorem Condensed.isSheafStonean Modified Mathlib/Topology/Category/Stonean/Limits.lean 2024-04-16 09:18:09 d1a8af0 refactor: move disjoint_sdiff_inter (#12021) ESTIMATED CHANGES Modified Mathlib/Data/Set/Basic.lean + theorem Set.disjoint_sdiff_inter Modified Mathlib/MeasureTheory/Integral/PeakFunction.lean - theorem Set.disjoint_sdiff_inter 2024-04-16 08:45:45 07d4b27 Chore(Data/Set/Card): Remove unnecessary assumption for ncard eq of bijective (#12108) Drop redundant hypothesis `s.Finite` from `Set.ncard_eq_of_bijective`. ESTIMATED CHANGES Modified Mathlib/Data/Set/Card.lean 2024-04-16 07:45:00 f47773f feat(Algebra/Homology): relax assumptions for Functor.mapHomologicalComplex (#12174) The extension of a functor `F` to a functor between categories of homological complex is now defined under the assumption `F.PreservesZeroMorphisms` rather than `F.Additive`. ESTIMATED CHANGES Modified Mathlib/Algebra/Homology/Additive.lean +/- def CategoryTheory.Equivalence.mapHomologicalComplex +/- def CategoryTheory.Functor.mapHomologicalComplex +/- def CategoryTheory.NatIso.mapHomologicalComplex +/- def CategoryTheory.NatTrans.mapHomologicalComplex +/- theorem CategoryTheory.NatTrans.mapHomologicalComplex_comp +/- theorem CategoryTheory.NatTrans.mapHomologicalComplex_id +/- theorem CategoryTheory.NatTrans.mapHomologicalComplex_naturality +/- theorem ChainComplex.map_chain_complex_of +/- theorem HomologicalComplex.singleMapHomologicalComplex_hom_app_ne +/- theorem HomologicalComplex.singleMapHomologicalComplex_hom_app_self +/- theorem HomologicalComplex.singleMapHomologicalComplex_inv_app_ne +/- theorem HomologicalComplex.singleMapHomologicalComplex_inv_app_self 2024-04-16 07:44:59 8fa5a3a chore: tidy various files (#12121) ESTIMATED CHANGES Modified Mathlib/Algebra/Function/Indicator.lean Modified Mathlib/Data/Nat/ChineseRemainder.lean Modified Mathlib/MeasureTheory/Integral/Lebesgue.lean +/- theorem MeasureTheory.lintegral_dirac' +/- theorem MeasureTheory.lintegral_mul_const_le +/- theorem MeasureTheory.lintegral_smul_measure Modified Mathlib/NumberTheory/BernoulliPolynomials.lean Modified Mathlib/Order/Hom/CompleteLattice.lean Modified Mathlib/Order/SupClosed.lean +/- theorem IsLowerSet.infClosed 2024-04-16 07:44:58 38a7a53 feat(Analysis/SpecialFunctions/Complex/Circle): `expMapCircle` as a `PartialHomeomorph` and prove `IsLocalHomeomorph` (#11334) This PR proves `IsLocalHomeomorph expMapCircle` (eventually this should be upgraded to `IsCoveringMap`, but that's a good deal harder and is probably best done via general theory such as in #7596). ESTIMATED CHANGES Modified Mathlib/Analysis/SpecialFunctions/Complex/Circle.lean + theorem AddCircle.homeomorphCircle'_apply_mk + theorem AddCircle.homeomorphCircle_apply + theorem AddCircle.toCircle_apply_mk + theorem isLocalHomeomorph_expMapCircle Modified Mathlib/Topology/Instances/AddCircle.lean + def AddCircle.homeomorphAddCircle + theorem AddCircle.homeomorphAddCircle_apply_mk + theorem AddCircle.homeomorphAddCircle_symm_apply_mk + theorem AddCircle.isLocalHomeomorph_coe + def AddCircle.partialHomeomorphCoe 2024-04-16 06:30:08 d4be533 feat: `Unique` instance for embeddings of an empty space (#12149) ESTIMATED CHANGES Modified Mathlib/Logic/Embedding/Basic.lean 2024-04-16 06:30:07 73db0f6 chore: remove unused @[simp] from Fin.sub_one_lt_iff (#11967) The @[simp] annotation is not used in mathlib, and triggered a linter failure that I don't care to investigate unnecessarily. ESTIMATED CHANGES Modified Mathlib/Data/Fin/Basic.lean 2024-04-16 05:53:16 d40db77 feat: limit of partial sums of a unconditionally summable `ℕ`-indexed series (#12169) ESTIMATED CHANGES Modified Mathlib/Topology/Algebra/InfiniteSum/NatInt.lean + theorem HasProd.Multipliable.tendsto_prod_tprod_nat 2024-04-16 05:16:58 58b254e chore(LinearAlgebra/Matrix/Charpoly): fix swapped lines (#12162) ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/Matrix/Charpoly/Basic.lean 2024-04-15 21:55:47 ca1a851 chore: fix topic name in nightly-testing bot (#12165) ESTIMATED CHANGES Modified .github/workflows/nightly_detect_failure.yml 2024-04-15 19:14:30 b0fff6f chore: rename `StarOrderedRing` convenience constructors (#12089) `StarOrderedRing` was recently turned into a `Prop` mixin. This renames the convenience constructors to adhere to the naming convention for theorems vs. defs. ESTIMATED CHANGES Modified Mathlib/Algebra/Star/Order.lean - theorem StarOrderedRing.ofLEIff - theorem StarOrderedRing.ofNonnegIff' - theorem StarOrderedRing.ofNonnegIff + theorem StarOrderedRing.of_le_iff + theorem StarOrderedRing.of_nonneg_iff' + theorem StarOrderedRing.of_nonneg_iff Modified Mathlib/Analysis/RCLike/Basic.lean Modified Mathlib/Data/Real/Sqrt.lean 2024-04-15 15:25:34 bec5207 refactor(RingTheory.MvPolynomial.Homogeneous): refactor in terms of weightedHomogeneous (#7609) We rewrite the definition of homogeneous polynomial as a special case of weighted homogeneous polynomial. Question: should all uses of `∑ i in d.support, d i` be replaced by `degree d`? ESTIMATED CHANGES Modified Mathlib/RingTheory/MvPolynomial/Homogeneous.lean +/- theorem MvPolynomial.IsHomogeneous.coeff_eq_zero + def MvPolynomial.degree +/- theorem MvPolynomial.homogeneousComponent_isHomogeneous +/- theorem MvPolynomial.homogeneousComponent_zero +/- def MvPolynomial.homogeneousSubmodule +/- theorem MvPolynomial.isHomogeneous_monomial - theorem MvPolynomial.isHomogeneous_of_totalDegree_zero + theorem MvPolynomial.totalDegree_zero_iff_isHomogeneous + theorem MvPolynomial.weightedDegree_one + theorem MvPolynomial.weightedHomogeneousSubmodule_one + theorem MvPolynomial.weightedTotalDegree_one Modified Mathlib/RingTheory/MvPolynomial/WeightedHomogeneous.lean + theorem MvPolynomial.IsWeightedHomogeneous.weightedHomogeneousComponent_ne + theorem MvPolynomial.IsWeightedHomogeneous.weightedHomogeneousComponent_same + def MvPolynomial.NonTorsionWeight + theorem MvPolynomial.finsum_weightedHomogeneousComponent + theorem MvPolynomial.isWeightedHomogeneous_zero_iff_weightedTotalDegree_eq_zero + theorem MvPolynomial.nonTorsionWeight_of - def MvPolynomial.weightedDegree' + def MvPolynomial.weightedDegree + theorem MvPolynomial.weightedDegree_apply + theorem MvPolynomial.weightedDegree_eq_zero_iff + theorem MvPolynomial.weightedHomogeneousComponent_mem + theorem MvPolynomial.weightedTotalDegree_eq_zero_iff 2024-04-15 14:21:40 28bea03 refactor(Rat): Streamline basic theory (#11504) `Rat` has a long history in (and before) mathlib and as such its development is full of cruft. Now that `NNRat` is a thing, there is a need for the theory of `Rat` to be mimickable to yield the theory of `NNRat`, which is not currently the case. Broadly, this PR aims at mirroring the `Rat` and `NNRat` declarations. It achieves this by: * Relying more on `Rat.num` and `Rat.den`, and less on the structure representation of `Rat` * Abandoning the vestigial `Rat.Nonneg` (which was replaced in Std by a new development of the order on `Rat`) * Renaming many `Rat` lemmas with dubious names. This creates quite a lot of conflicts with Std lemmas, whose names are themselves dubious. I am priming the relevant new mathlib names and leaving TODOs to fix the Std names. * Handling most of the `Rat` porting notes Reduce the diff of #11203 ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Archimedean.lean Modified Mathlib/Algebra/Order/Nonneg/Field.lean Modified Mathlib/Combinatorics/Additive/PluenneckeRuzsa.lean Modified Mathlib/Combinatorics/SimpleGraph/Density.lean Modified Mathlib/Data/NNRat/Defs.lean + theorem NNRat.add_def + theorem NNRat.coe_divNat + theorem NNRat.coprime_num_den - def NNRat.den +/- theorem NNRat.den_coe + theorem NNRat.den_ne_zero + def NNRat.divNat + theorem NNRat.divNat_inj + theorem NNRat.mk_divInt + theorem NNRat.mul_def - def NNRat.num + def NNRat.numDenCasesOn.{u} + theorem NNRat.num_divNat_den - def NNRat Modified Mathlib/Data/NNRat/Lemmas.lean - theorem NNRat.coe_div - theorem NNRat.coe_inv Modified Mathlib/Data/Nat/Digits.lean Modified Mathlib/Data/Rat/Cast/CharZero.lean Modified Mathlib/Data/Rat/Cast/Defs.lean +/- theorem Rat.cast_add_of_ne_zero + theorem Rat.cast_divInt_of_ne_zero +/- theorem Rat.cast_div_of_ne_zero - theorem Rat.cast_eq_id - theorem Rat.cast_id +/- theorem Rat.cast_inv_of_ne_zero + theorem Rat.cast_mkRat_of_ne_zero - theorem Rat.cast_mk_of_ne_zero +/- theorem Rat.cast_mul_of_ne_zero +/- theorem Rat.cast_neg +/- theorem Rat.cast_sub_of_ne_zero +/- theorem eq_ratCast Modified Mathlib/Data/Rat/Defs.lean + theorem Rat.divInt_div_divInt +/- theorem Rat.divInt_eq_div + theorem Rat.divInt_mul_divInt' + theorem Rat.divInt_neg - theorem Rat.divInt_neg_den +/- theorem Rat.divInt_neg_one_one +/- theorem Rat.divInt_one +/- theorem Rat.divInt_one_one + theorem Rat.divInt_self' +/- theorem Rat.divInt_zero_one + theorem Rat.div_def' - theorem Rat.div_num_den +/- theorem Rat.intCast_eq_divInt +/- theorem Rat.inv_def' + theorem Rat.inv_divInt' + theorem Rat.inv_mkRat + theorem Rat.mk'_eq_divInt +/- theorem Rat.mkRat_eq_div +/- theorem Rat.mkRat_one +/- theorem Rat.mul_def' - theorem Rat.mul_num_den +/- theorem Rat.neg_def + def Rat.numDenCasesOn''.{u} - theorem Rat.num_den' - theorem Rat.num_den + theorem Rat.num_divInt_den - theorem Rat.num_ne_zero_of_ne_zero +/- theorem Rat.sub_def'' +/- theorem Rat.zero_of_num_zero Modified Mathlib/Data/Rat/Field.lean + theorem NNRat.coe_div + theorem NNRat.coe_inv + theorem NNRat.div_def + theorem NNRat.inv_def Modified Mathlib/Data/Rat/Floor.lean Modified Mathlib/Data/Rat/Init.lean + def NNRat.den + theorem NNRat.den_mk + def NNRat.num + theorem NNRat.num_mk + def NNRat + theorem Rat.cast_eq_id + theorem Rat.cast_id Modified Mathlib/Data/Rat/Lemmas.lean - theorem Rat.inv_def'' Modified Mathlib/Data/Rat/Order.lean +/- theorem Rat.divInt_nonneg + theorem Rat.divInt_nonneg_iff_of_pos_right + theorem Rat.mkRat_nonneg - theorem Rat.nonneg_iff_zero_le - def Rat.numDenCasesOn''.{u} +/- theorem Rat.num_nonneg Modified Mathlib/Data/Rat/Sqrt.lean +/- theorem Rat.sqrt_nonneg Modified Mathlib/Data/Real/Irrational.lean Modified Mathlib/NumberTheory/Padics/PadicVal.lean Modified Mathlib/Tactic/NormNum/Inv.lean Modified Mathlib/Topology/Instances/AddCircle.lean 2024-04-15 13:31:47 9125a09 feat(Algebra/Lie): define adjoint action and its ideal image (#12106) This defines the *adjoint action* of a Lie algebra `L` on itself, when seen as an homomorphism of Lie algebras from `L` to the Lie algebra of its derivations. The adjoint action was also defined in the `Mathlib.Algebra.Lie.OfAssociative.lean` file, under the name `LieAlgebra.ad`, as the homomorphism with values in the endormophisms of `L`. We make the link between both. This design choice was discussed in [this thread](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/Derivations.20on.20Lie.20algebras). We also establish elementary properties, such as the fact that the image of the adjoint action is an ideal of the derivations. This is the penultimate step towards proving that all derivations of a finite-dimensional semisimple Lie algebra are inner, a goal described in [this thread](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/Derivations.20on.20Lie.20algebras). ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Lie/Derivation/AdjointAction.lean + def LieDerivation.ad + theorem LieDerivation.ad_isIdealMorphism + theorem LieDerivation.ad_ker_eq_center + theorem LieDerivation.coe_ad_apply_eq_ad_apply + theorem LieDerivation.lie_der_ad_eq_ad_der + theorem LieDerivation.mem_ad_idealRange_iff Modified Mathlib/Algebra/Lie/Derivation/Basic.lean + def LieDerivation.inner Modified Mathlib/Algebra/Lie/IdealOperations.lean Modified Mathlib/Algebra/Lie/Submodule.lean +/- theorem LieHom.mem_idealRange 2024-04-15 12:36:55 b8a0f58 chore: avoid id.def (adaptation for nightly-2024-03-27) (#11829) ESTIMATED CHANGES Modified Counterexamples/Phillips.lean Modified Mathlib/Algebra/Group/Conj.lean Modified Mathlib/Algebra/Module/Projective.lean Modified Mathlib/Algebra/MonoidAlgebra/Ideal.lean Modified Mathlib/Algebra/MvPolynomial/Comap.lean Modified Mathlib/Algebra/MvPolynomial/Equiv.lean Modified Mathlib/Algebra/MvPolynomial/Rename.lean Modified Mathlib/AlgebraicGeometry/Pullbacks.lean Modified Mathlib/Analysis/Calculus/ContDiff/Bounds.lean Modified Mathlib/Analysis/Convex/Caratheodory.lean Modified Mathlib/Analysis/InnerProductSpace/Basic.lean Modified Mathlib/Analysis/InnerProductSpace/Rayleigh.lean Modified Mathlib/Analysis/LocallyConvex/Bounded.lean Modified Mathlib/Analysis/LocallyConvex/WithSeminorms.lean Modified Mathlib/Analysis/NormedSpace/Star/Basic.lean Modified Mathlib/Analysis/SpecialFunctions/Gamma/Beta.lean Modified Mathlib/Analysis/SpecialFunctions/ImproperIntegrals.lean Modified Mathlib/CategoryTheory/Abelian/Subobject.lean Modified Mathlib/CategoryTheory/Limits/FilteredColimitCommutesFiniteLimit.lean Modified Mathlib/CategoryTheory/Limits/Presheaf.lean Modified Mathlib/Combinatorics/SetFamily/AhlswedeZhang.lean Modified Mathlib/Combinatorics/SimpleGraph/Connectivity.lean Modified Mathlib/Combinatorics/SimpleGraph/Density.lean Modified Mathlib/Combinatorics/SimpleGraph/Regularity/Chunk.lean Modified Mathlib/Computability/Halting.lean Modified Mathlib/Computability/TMToPartrec.lean Modified Mathlib/Control/Basic.lean Modified Mathlib/Control/Monad/Cont.lean Modified Mathlib/Data/Fin/Tuple/Sort.lean Modified Mathlib/Data/Finset/Lattice.lean Modified Mathlib/Data/Finset/Powerset.lean Modified Mathlib/Data/List/Basic.lean Modified Mathlib/Data/List/ReduceOption.lean Modified Mathlib/Data/Matrix/PEquiv.lean Modified Mathlib/Data/Multiset/Antidiagonal.lean Modified Mathlib/Data/Multiset/Basic.lean Modified Mathlib/Data/Nat/Squarefree.lean Modified Mathlib/Geometry/Manifold/MFDeriv/SpecificFunctions.lean Modified Mathlib/GroupTheory/Complement.lean Modified Mathlib/GroupTheory/Coset.lean Modified Mathlib/GroupTheory/Perm/Cycle/Basic.lean Modified Mathlib/GroupTheory/Perm/Cycle/Concrete.lean Modified Mathlib/LinearAlgebra/AffineSpace/Combination.lean Modified Mathlib/LinearAlgebra/Basis.lean Modified Mathlib/LinearAlgebra/LinearPMap.lean Modified Mathlib/LinearAlgebra/Matrix/Charpoly/Coeff.lean Modified Mathlib/LinearAlgebra/Matrix/Determinant.lean Modified Mathlib/LinearAlgebra/TensorProduct/Basic.lean Modified Mathlib/LinearAlgebra/Trace.lean Modified Mathlib/Logic/Equiv/Basic.lean Modified Mathlib/MeasureTheory/Constructions/Polish.lean Modified Mathlib/MeasureTheory/Covering/Besicovitch.lean Modified Mathlib/MeasureTheory/Group/Measure.lean Modified Mathlib/MeasureTheory/Measure/Lebesgue/Basic.lean Modified Mathlib/MeasureTheory/Measure/Lebesgue/EqHaar.lean Modified Mathlib/MeasureTheory/Measure/VectorMeasure.lean Modified Mathlib/MeasureTheory/SetSemiring.lean Modified Mathlib/ModelTheory/Encoding.lean Modified Mathlib/ModelTheory/Semantics.lean Modified Mathlib/ModelTheory/Syntax.lean Modified Mathlib/NumberTheory/Cyclotomic/Gal.lean Modified Mathlib/NumberTheory/LegendreSymbol/QuadraticChar/Basic.lean Modified Mathlib/NumberTheory/Liouville/LiouvilleWith.lean Modified Mathlib/NumberTheory/ZetaFunction.lean Modified Mathlib/Order/CompactlyGenerated/Basic.lean Modified Mathlib/Order/Hom/CompleteLattice.lean Modified Mathlib/Order/Partition/Finpartition.lean Modified Mathlib/Order/SuccPred/Basic.lean Modified Mathlib/Order/SuccPred/LinearLocallyFinite.lean Modified Mathlib/Probability/Kernel/Condexp.lean Modified Mathlib/Probability/Kernel/Disintegration.lean Modified Mathlib/RingTheory/DedekindDomain/Ideal.lean Modified Mathlib/RingTheory/PowerBasis.lean Modified Mathlib/Topology/Instances/Complex.lean Modified Mathlib/Topology/MetricSpace/Dilation.lean 2024-04-15 12:06:04 8a7f842 chore: remove remaining `cdot`s that were not `·` (#12146) A simple replacement `. --> ·`. See #12143 for the source of these replacements. ESTIMATED CHANGES Modified Mathlib/Geometry/RingedSpace/PresheafedSpace/HasColimits.lean Modified Mathlib/RingTheory/Ideal/Over.lean 2024-04-15 10:00:28 4932e9d chore(Topology/Category): make finite coproducts in `CompHaus` universe polymorphic (#12138) ESTIMATED CHANGES Modified Mathlib/Topology/Category/CompHaus/Basic.lean Modified Mathlib/Topology/Category/CompHaus/Limits.lean +/- def CompHaus.finiteCoproduct.desc +/- theorem CompHaus.finiteCoproduct.hom_ext +/- theorem CompHaus.finiteCoproduct.ι_desc 2024-04-15 10:00:27 7700a47 Feat(Log/Base): Adding 3 theorems related to Real.logb (#12110) ESTIMATED CHANGES Modified Mathlib/Analysis/SpecialFunctions/Log/Base.lean + theorem Real.logb_eq_iff_rpow_eq + theorem Real.logb_pow + theorem Real.logb_rpow_eq_mul_logb_of_pos 2024-04-15 09:36:17 91ab481 chore: don't run label_new_contributor CI on forks (#12145) ESTIMATED CHANGES Modified .github/workflows/label_new_contributor.yml 2024-04-15 08:19:09 8e47cfa chore(GroupAction/Defs): add 2 missing `to_additive` (#12141) ESTIMATED CHANGES Modified Mathlib/GroupTheory/GroupAction/Defs.lean 2024-04-15 08:19:08 6b1d0a8 chore: fixed typo in Algebra.Homology.HomotopyCategory (#12140) Fixes a typo in the name of a variable. ESTIMATED CHANGES Modified Mathlib/Algebra/Homology/HomotopyCategory.lean 2024-04-15 08:19:06 f09078b chore: remove more simp-related porting notes which are fixed now (#12128) ESTIMATED CHANGES Modified Mathlib/Algebra/BigOperators/Associated.lean Modified Mathlib/Analysis/NormedSpace/AddTorsor.lean Modified Mathlib/Order/Interval.lean Modified Mathlib/RingTheory/Polynomial/Dickson.lean Modified Mathlib/RingTheory/TensorProduct/Basic.lean Modified Mathlib/RingTheory/Trace.lean 2024-04-15 07:51:34 5894eb3 refactor(Topology): take continuous argument in `LocallyConstant.comap` (#12136) Changes the definition of `LocallyConstant.comap` so that it takes an argument of the form `C(X, Y)` instead of `X → Y`. There was no example of a non-continuous argument in mathlib, and this definition generally makes proofs easier. ESTIMATED CHANGES Modified Mathlib/Topology/Category/LightProfinite/IsLight.lean Modified Mathlib/Topology/Category/Profinite/CofilteredLimit.lean Modified Mathlib/Topology/Category/Profinite/Nobeling.lean Modified Mathlib/Topology/LocallyConstant/Algebra.lean +/- def LocallyConstant.comapMonoidHom +/- def LocallyConstant.comapMulHom +/- def LocallyConstant.comapRingHom +/- def LocallyConstant.comapₗ +/- theorem LocallyConstant.ker_comapₗ Modified Mathlib/Topology/LocallyConstant/Basic.lean +/- theorem LocallyConstant.coe_comap +/- theorem LocallyConstant.coe_comap_apply +/- theorem LocallyConstant.comap_comap +/- theorem LocallyConstant.comap_comp +/- theorem LocallyConstant.comap_const +/- theorem LocallyConstant.comap_id +/- theorem LocallyConstant.comap_injective 2024-04-15 06:46:14 88ce099 chore: substitute some `.` with `·` (#12137) ESTIMATED CHANGES Modified Mathlib/Algebra/GroupPower/Order.lean Modified Mathlib/Algebra/Polynomial/Basic.lean Modified Mathlib/Data/Fin/Tuple/Curry.lean Modified Mathlib/Data/Pi/Lex.lean Modified Mathlib/Data/Set/Subset.lean +/- theorem Set.preimage_val_sInter_eq_sInter Modified Mathlib/GroupTheory/Exponent.lean Modified Mathlib/GroupTheory/HNNExtension.lean Modified Mathlib/GroupTheory/PushoutI.lean Modified Mathlib/ModelTheory/Definability.lean Modified Mathlib/ModelTheory/Syntax.lean Modified Mathlib/Order/CompletePartialOrder.lean Modified Mathlib/Order/RelSeries.lean Modified Mathlib/SetTheory/Ordinal/Arithmetic.lean 2024-04-15 06:46:13 7eeaaff chore: classify porting notes about additional necessary beta reduction (#12130) This subsumes some of the notes in #10752 and #10971. I'm on the fence as to whether replacing the dsimp only by beta_reduce is useful; this is easy to revert if needed. ESTIMATED CHANGES Modified Mathlib/Algebra/GCDMonoid/Basic.lean Modified Mathlib/Algebra/GroupPower/IterateHom.lean Modified Mathlib/Algebra/MonoidAlgebra/Basic.lean Modified Mathlib/Algebra/Polynomial/Coeff.lean Modified Mathlib/Computability/TuringMachine.lean Modified Mathlib/Data/Finsupp/Basic.lean Modified Mathlib/FieldTheory/RatFunc.lean Modified Mathlib/GroupTheory/OrderOfElement.lean Modified Mathlib/GroupTheory/Transfer.lean Modified Mathlib/LinearAlgebra/Basis.lean Modified Mathlib/LinearAlgebra/LinearPMap.lean Modified Mathlib/MeasureTheory/PiSystem.lean Modified Mathlib/RingTheory/IsAdjoinRoot.lean Modified Mathlib/RingTheory/OreLocalization/Basic.lean +/- def OreLocalization.universalMulHom Modified Mathlib/SetTheory/Ordinal/Arithmetic.lean Modified Mathlib/Topology/Gluing.lean 2024-04-15 06:46:12 038cb58 refactor(SpecialFunctions/Gaussian): shorten long pole (#12104) This splits up `Analysis/SpecialFunctions/Gaussian.lean` into three pieces, with the heaviest imports only needed in the later chunks. As only the first chunk is needed for many applications, including those on the critical path towards `NumberTheory/Cyclotomic/PID.lean`, this should improve overall build parallelism and shorten mathlib's overall compilation time. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Analysis/Fourier/Inversion.lean Modified Mathlib/Analysis/SpecialFunctions/Gamma/Basic.lean Modified Mathlib/Analysis/SpecialFunctions/Gamma/Beta.lean Modified Mathlib/Analysis/SpecialFunctions/Gamma/BohrMollerup.lean Deleted Mathlib/Analysis/SpecialFunctions/Gaussian.lean - theorem Complex.Gamma_one_half_eq - theorem Complex.tsum_exp_neg_mul_int_sq - theorem Complex.tsum_exp_neg_quadratic - theorem GaussianFourier.integrable_cexp_neg_mul_sq_add_real_mul_I - theorem GaussianFourier.integrable_cexp_neg_mul_sq_norm_add - theorem GaussianFourier.integrable_cexp_neg_mul_sq_norm_add_of_euclideanSpace - theorem GaussianFourier.integrable_cexp_neg_mul_sum_add - theorem GaussianFourier.integrable_cexp_neg_sum_mul_add - theorem GaussianFourier.integral_cexp_neg_mul_sq_add_real_mul_I - theorem GaussianFourier.integral_cexp_neg_mul_sq_norm - theorem GaussianFourier.integral_cexp_neg_mul_sq_norm_add - theorem GaussianFourier.integral_cexp_neg_mul_sq_norm_add_of_euclideanSpace - theorem GaussianFourier.integral_cexp_neg_mul_sum_add - theorem GaussianFourier.integral_cexp_neg_sum_mul_add - theorem GaussianFourier.integral_rexp_neg_mul_sq_norm - theorem GaussianFourier.norm_cexp_neg_mul_sq_add_mul_I' - theorem GaussianFourier.norm_cexp_neg_mul_sq_add_mul_I - theorem GaussianFourier.tendsto_verticalIntegral - def GaussianFourier.verticalIntegral - theorem GaussianFourier.verticalIntegral_norm_le - theorem Real.Gamma_one_half_eq - theorem Real.tsum_exp_neg_mul_int_sq - theorem cexp_neg_quadratic_isLittleO_abs_rpow_cocompact - theorem cexp_neg_quadratic_isLittleO_rpow_atTop - theorem continuousAt_gaussian_integral - theorem exp_neg_mul_rpow_isLittleO_exp_neg - theorem exp_neg_mul_sq_isLittleO_exp_neg - theorem fourierIntegral_gaussian - theorem fourierIntegral_gaussian_innerProductSpace' - theorem fourierIntegral_gaussian_innerProductSpace - theorem fourierIntegral_gaussian_pi' - theorem fourierIntegral_gaussian_pi - theorem integrableOn_Ioi_exp_neg_mul_sq_iff - theorem integrableOn_rpow_mul_exp_neg_mul_rpow - theorem integrableOn_rpow_mul_exp_neg_mul_sq - theorem integrableOn_rpow_mul_exp_neg_rpow - theorem integrable_cexp_neg_mul_sq - theorem integrable_cexp_quadratic' - theorem integrable_cexp_quadratic - theorem integrable_exp_neg_mul_sq - theorem integrable_exp_neg_mul_sq_iff - theorem integrable_mul_cexp_neg_mul_sq - theorem integrable_mul_exp_neg_mul_sq - theorem integrable_rpow_mul_exp_neg_mul_sq - theorem integral_cexp_quadratic - theorem integral_gaussian - theorem integral_gaussian_Ioi - theorem integral_gaussian_complex - theorem integral_gaussian_complex_Ioi - theorem integral_gaussian_sq_complex - theorem integral_mul_cexp_neg_mul_sq - theorem isLittleO_exp_neg_mul_sq_cocompact - theorem norm_cexp_neg_mul_sq - theorem rexp_neg_quadratic_isLittleO_rpow_atTop - theorem rpow_mul_exp_neg_mul_rpow_isLittleO_exp_neg - theorem rpow_mul_exp_neg_mul_sq_isLittleO_exp_neg - theorem tendsto_rpow_abs_mul_exp_neg_mul_sq_cocompact Added Mathlib/Analysis/SpecialFunctions/Gaussian/FourierTransform.lean + theorem GaussianFourier.integrable_cexp_neg_mul_sq_add_real_mul_I + theorem GaussianFourier.integrable_cexp_neg_mul_sq_norm_add + theorem GaussianFourier.integrable_cexp_neg_mul_sq_norm_add_of_euclideanSpace + theorem GaussianFourier.integrable_cexp_neg_mul_sum_add + theorem GaussianFourier.integrable_cexp_neg_sum_mul_add + theorem GaussianFourier.integral_cexp_neg_mul_sq_add_real_mul_I + theorem GaussianFourier.integral_cexp_neg_mul_sq_norm + theorem GaussianFourier.integral_cexp_neg_mul_sq_norm_add + theorem GaussianFourier.integral_cexp_neg_mul_sq_norm_add_of_euclideanSpace + theorem GaussianFourier.integral_cexp_neg_mul_sum_add + theorem GaussianFourier.integral_cexp_neg_sum_mul_add + theorem GaussianFourier.integral_rexp_neg_mul_sq_norm + theorem GaussianFourier.norm_cexp_neg_mul_sq_add_mul_I' + theorem GaussianFourier.norm_cexp_neg_mul_sq_add_mul_I + theorem GaussianFourier.tendsto_verticalIntegral + def GaussianFourier.verticalIntegral + theorem GaussianFourier.verticalIntegral_norm_le + theorem fourierIntegral_gaussian + theorem fourierIntegral_gaussian_innerProductSpace' + theorem fourierIntegral_gaussian_innerProductSpace + theorem fourierIntegral_gaussian_pi' + theorem fourierIntegral_gaussian_pi + theorem integrable_cexp_quadratic' + theorem integrable_cexp_quadratic + theorem integral_cexp_quadratic Added Mathlib/Analysis/SpecialFunctions/Gaussian/GaussianIntegral.lean + theorem Complex.Gamma_one_half_eq + theorem Real.Gamma_one_half_eq + theorem continuousAt_gaussian_integral + theorem exp_neg_mul_rpow_isLittleO_exp_neg + theorem exp_neg_mul_sq_isLittleO_exp_neg + theorem integrableOn_Ioi_exp_neg_mul_sq_iff + theorem integrableOn_rpow_mul_exp_neg_mul_rpow + theorem integrableOn_rpow_mul_exp_neg_mul_sq + theorem integrableOn_rpow_mul_exp_neg_rpow + theorem integrable_cexp_neg_mul_sq + theorem integrable_exp_neg_mul_sq + theorem integrable_exp_neg_mul_sq_iff + theorem integrable_mul_cexp_neg_mul_sq + theorem integrable_mul_exp_neg_mul_sq + theorem integrable_rpow_mul_exp_neg_mul_sq + theorem integral_gaussian + theorem integral_gaussian_Ioi + theorem integral_gaussian_complex + theorem integral_gaussian_complex_Ioi + theorem integral_gaussian_sq_complex + theorem integral_mul_cexp_neg_mul_sq + theorem norm_cexp_neg_mul_sq + theorem rpow_mul_exp_neg_mul_rpow_isLittleO_exp_neg + theorem rpow_mul_exp_neg_mul_sq_isLittleO_exp_neg Added Mathlib/Analysis/SpecialFunctions/Gaussian/PoissonSummation.lean + theorem Complex.tsum_exp_neg_mul_int_sq + theorem Complex.tsum_exp_neg_quadratic + theorem Real.tsum_exp_neg_mul_int_sq + theorem cexp_neg_quadratic_isLittleO_abs_rpow_cocompact + theorem cexp_neg_quadratic_isLittleO_rpow_atTop + theorem isLittleO_exp_neg_mul_sq_cocompact + theorem rexp_neg_quadratic_isLittleO_rpow_atTop + theorem tendsto_rpow_abs_mul_exp_neg_mul_sq_cocompact Modified Mathlib/NumberTheory/LSeries/MellinEqDirichlet.lean Modified Mathlib/NumberTheory/ModularForms/JacobiTheta/TwoVariable.lean Modified Mathlib/Probability/Distributions/Gaussian.lean 2024-04-15 06:22:43 7c5b29b chore: restore `simp`s that used to work (#12126) ESTIMATED CHANGES Modified Archive/Wiedijk100Theorems/AbelRuffini.lean Modified Mathlib/AlgebraicGeometry/Spec.lean Modified Mathlib/Analysis/Analytic/Basic.lean Modified Mathlib/Analysis/NormedSpace/AffineIsometry.lean Modified Mathlib/LinearAlgebra/CrossProduct.lean Modified Mathlib/MeasureTheory/Function/UniformIntegrable.lean Modified Mathlib/RingTheory/Trace.lean Modified Mathlib/Topology/FiberBundle/Trivialization.lean 2024-04-15 03:03:46 5d49276 feat(Profinite): the functors from `FintypeCat` are fully faithful (#12139) (both to `LightProfinite` and `Profinite`) ESTIMATED CHANGES Modified Mathlib/Topology/Category/LightProfinite/Basic.lean Modified Mathlib/Topology/Category/Profinite/Basic.lean 2024-04-15 01:53:41 d48d30a chore: superfluous parentheses part 2 (#12131) ESTIMATED CHANGES Modified Archive/Imo/Imo1962Q1.lean Modified Archive/Imo/Imo1972Q5.lean Modified Archive/Imo/Imo1981Q3.lean Modified Archive/Imo/Imo1988Q6.lean Modified Archive/Imo/Imo1994Q1.lean Modified Archive/Imo/Imo2008Q2.lean Modified Archive/Imo/Imo2011Q3.lean Modified Archive/Imo/Imo2011Q5.lean Modified Archive/Imo/Imo2013Q5.lean Modified Archive/Wiedijk100Theorems/SumOfPrimeReciprocalsDiverges.lean Modified Mathlib/Algebra/Category/ModuleCat/ChangeOfRings.lean Modified Mathlib/Algebra/Category/ModuleCat/Free.lean Modified Mathlib/Algebra/Category/Ring/Limits.lean Modified Mathlib/Algebra/Lie/Abelian.lean Modified Mathlib/Algebra/Lie/EngelSubalgebra.lean Modified Mathlib/Algebra/Module/Zlattice.lean Modified Mathlib/Algebra/MonoidAlgebra/Basic.lean Modified Mathlib/Algebra/MvPolynomial/CommRing.lean Modified Mathlib/Algebra/MvPolynomial/Degrees.lean Modified Mathlib/Algebra/MvPolynomial/Monad.lean Modified Mathlib/Algebra/MvPolynomial/Variables.lean Modified Mathlib/Algebra/Order/Monoid/WithTop.lean Modified Mathlib/Algebra/Polynomial/AlgebraMap.lean Modified Mathlib/Algebra/Polynomial/Degree/Definitions.lean Modified Mathlib/Algebra/Polynomial/Degree/Lemmas.lean Modified Mathlib/Algebra/Polynomial/Div.lean Modified Mathlib/Algebra/Polynomial/Eval.lean Modified Mathlib/Algebra/Ring/BooleanRing.lean Modified Mathlib/AlgebraicTopology/DoldKan/Compatibility.lean Modified Mathlib/AlgebraicTopology/DoldKan/GammaCompN.lean Modified Mathlib/Analysis/Analytic/Composition.lean Modified Mathlib/Analysis/Asymptotics/AsymptoticEquivalent.lean Modified Mathlib/Analysis/Asymptotics/SpecificAsymptotics.lean Modified Mathlib/Analysis/BoxIntegral/Basic.lean Modified Mathlib/Analysis/BoxIntegral/Box/Basic.lean Modified Mathlib/Analysis/BoxIntegral/DivergenceTheorem.lean Modified Mathlib/Analysis/BoxIntegral/Partition/Additive.lean Modified Mathlib/Analysis/Calculus/FDeriv/Basic.lean Modified Mathlib/Analysis/Calculus/FDeriv/Comp.lean Modified Mathlib/Analysis/Calculus/FDeriv/Measurable.lean Modified Mathlib/Analysis/Calculus/Implicit.lean Modified Mathlib/Analysis/Calculus/InverseFunctionTheorem/ApproximatesLinearOn.lean Modified Mathlib/Analysis/Calculus/ParametricIntegral.lean Modified Mathlib/Analysis/Complex/AbsMax.lean Modified Mathlib/Analysis/Complex/PhragmenLindelof.lean Modified Mathlib/Analysis/Complex/UpperHalfPlane/Metric.lean Modified Mathlib/Analysis/Convex/Cone/Basic.lean Modified Mathlib/Analysis/Convex/Cone/InnerDual.lean Modified Mathlib/Analysis/Convex/Slope.lean Modified Mathlib/Analysis/Convex/SpecificFunctions/Basic.lean Modified Mathlib/Analysis/InnerProductSpace/Adjoint.lean Modified Mathlib/Analysis/InnerProductSpace/Basic.lean Modified Mathlib/Analysis/InnerProductSpace/TwoDim.lean Modified Mathlib/Analysis/InnerProductSpace/l2Space.lean Modified Mathlib/Analysis/LocallyConvex/ContinuousOfBounded.lean Modified Mathlib/Analysis/MeanInequalities.lean Modified Mathlib/Analysis/Normed/Group/AddTorsor.lean Modified Mathlib/Analysis/Normed/Group/Basic.lean Modified Mathlib/Analysis/Normed/Group/ControlledClosure.lean Modified Mathlib/Analysis/Normed/Group/InfiniteSum.lean Modified Mathlib/Analysis/Normed/Order/Lattice.lean Modified Mathlib/Analysis/NormedSpace/AffineIsometry.lean Modified Mathlib/Analysis/NormedSpace/Banach.lean Modified Mathlib/Analysis/NormedSpace/BoundedLinearMaps.lean Modified Mathlib/Analysis/NormedSpace/ContinuousAffineMap.lean Modified Mathlib/Analysis/NormedSpace/Dual.lean Modified Mathlib/Analysis/NormedSpace/ENorm.lean Modified Mathlib/Analysis/NormedSpace/Extend.lean Modified Mathlib/Analysis/NormedSpace/Extr.lean Modified Mathlib/Analysis/NormedSpace/FiniteDimension.lean Modified Mathlib/Analysis/NormedSpace/HahnBanach/Extension.lean Modified Mathlib/Analysis/NormedSpace/Multilinear/Basic.lean Modified Mathlib/Analysis/NormedSpace/Multilinear/Curry.lean Modified Mathlib/Analysis/NormedSpace/OperatorNorm/Bilinear.lean Modified Mathlib/Analysis/NormedSpace/OperatorNorm/Completeness.lean Modified Mathlib/Analysis/NormedSpace/OperatorNorm/NormedSpace.lean Modified Mathlib/Analysis/NormedSpace/RieszLemma.lean Modified Mathlib/Analysis/NormedSpace/Star/Basic.lean Modified Mathlib/Analysis/NormedSpace/Star/Multiplier.lean Modified Mathlib/Analysis/ODE/PicardLindelof.lean Modified Mathlib/Analysis/SpecialFunctions/Bernstein.lean Modified Mathlib/Analysis/SpecialFunctions/Exp.lean Modified Mathlib/Analysis/SpecialFunctions/Log/Monotone.lean Modified Mathlib/Analysis/SpecialFunctions/Pow/Asymptotics.lean Modified Mathlib/Analysis/SpecialFunctions/Stirling.lean Modified Mathlib/Analysis/SpecificLimits/FloorPow.lean Modified Mathlib/CategoryTheory/Abelian/NonPreadditive.lean Modified Mathlib/CategoryTheory/Abelian/Transfer.lean Modified Mathlib/CategoryTheory/ChosenFiniteProducts/FunctorCategory.lean Modified Mathlib/CategoryTheory/Closed/Ideal.lean Modified Mathlib/CategoryTheory/ComposableArrows.lean Modified Mathlib/CategoryTheory/Galois/Decomposition.lean Modified Mathlib/CategoryTheory/Limits/ConeCategory.lean Modified Mathlib/CategoryTheory/Limits/Fubini.lean Modified Mathlib/CategoryTheory/Limits/Shapes/FunctorToTypes.lean Modified Mathlib/CategoryTheory/Limits/Shapes/NormalMono/Equalizers.lean Modified Mathlib/CategoryTheory/Localization/Predicate.lean Modified Mathlib/CategoryTheory/Monad/Limits.lean Modified Mathlib/CategoryTheory/Sites/SheafOfTypes.lean Modified Mathlib/Combinatorics/Additive/SalemSpencer.lean Modified Mathlib/Combinatorics/Configuration.lean Modified Mathlib/Combinatorics/SimpleGraph/Regularity/Chunk.lean Modified Mathlib/Combinatorics/SimpleGraph/Regularity/Energy.lean Modified Mathlib/Data/Complex/Exponential.lean Modified Mathlib/Data/Complex/Module.lean Modified Mathlib/Data/Fin/OrderHom.lean Modified Mathlib/Data/Finset/Lattice.lean Modified Mathlib/Data/List/EditDistance/Defs.lean Modified Mathlib/Data/Set/Card.lean Modified Mathlib/Data/ZMod/Basic.lean Modified Mathlib/Dynamics/Circle/RotationNumber/TranslationNumber.lean Modified Mathlib/FieldTheory/Adjoin.lean Modified Mathlib/FieldTheory/ChevalleyWarning.lean Modified Mathlib/FieldTheory/Finite/Basic.lean Modified Mathlib/FieldTheory/Fixed.lean Modified Mathlib/FieldTheory/IsAlgClosed/Classification.lean Modified Mathlib/FieldTheory/KummerExtension.lean Modified Mathlib/FieldTheory/PolynomialGaloisGroup.lean Modified Mathlib/Geometry/Manifold/BumpFunction.lean Modified Mathlib/GroupTheory/CoprodI.lean Modified Mathlib/GroupTheory/Coxeter/Basic.lean Modified Mathlib/GroupTheory/GroupAction/Defs.lean Modified Mathlib/GroupTheory/Nilpotent.lean Modified Mathlib/GroupTheory/PGroup.lean Modified Mathlib/GroupTheory/Perm/Support.lean Modified Mathlib/GroupTheory/Schreier.lean Modified Mathlib/GroupTheory/Sylow.lean Modified Mathlib/GroupTheory/Transfer.lean Modified Mathlib/Init/Function.lean Modified Mathlib/Lean/Expr/Basic.lean Modified Mathlib/LinearAlgebra/BilinearForm/Basic.lean Modified Mathlib/LinearAlgebra/Dimension/DivisionRing.lean Modified Mathlib/LinearAlgebra/Eigenspace/Basic.lean Modified Mathlib/LinearAlgebra/FiniteDimensional.lean Modified Mathlib/LinearAlgebra/Matrix/AbsoluteValue.lean Modified Mathlib/LinearAlgebra/Matrix/Determinant.lean Modified Mathlib/MeasureTheory/Constructions/BorelSpace/Basic.lean Modified Mathlib/MeasureTheory/Constructions/Prod/Basic.lean Modified Mathlib/MeasureTheory/Covering/BesicovitchVectorSpace.lean Modified Mathlib/MeasureTheory/Covering/Differentiation.lean Modified Mathlib/MeasureTheory/Covering/Vitali.lean Modified Mathlib/MeasureTheory/Decomposition/UnsignedHahn.lean Modified Mathlib/MeasureTheory/Function/AEEqOfIntegral.lean Modified Mathlib/MeasureTheory/Function/ConditionalExpectation/Basic.lean Modified Mathlib/MeasureTheory/Function/ConditionalExpectation/CondexpL2.lean Modified Mathlib/MeasureTheory/Function/ConditionalExpectation/Indicator.lean Modified Mathlib/MeasureTheory/Function/ConditionalExpectation/Real.lean Modified Mathlib/MeasureTheory/Function/Jacobian.lean Modified Mathlib/MeasureTheory/Function/L1Space.lean Modified Mathlib/MeasureTheory/Function/SimpleFunc.lean Modified Mathlib/MeasureTheory/Group/Action.lean Modified Mathlib/MeasureTheory/Group/Measure.lean Modified Mathlib/MeasureTheory/Integral/Bochner.lean Modified Mathlib/MeasureTheory/Integral/FundThmCalculus.lean Modified Mathlib/MeasureTheory/Integral/IntervalIntegral.lean Modified Mathlib/MeasureTheory/Integral/Lebesgue.lean Modified Mathlib/MeasureTheory/Integral/PeakFunction.lean Modified Mathlib/MeasureTheory/Integral/SetIntegral.lean Modified Mathlib/MeasureTheory/Integral/SetToL1.lean Modified Mathlib/MeasureTheory/Integral/VitaliCaratheodory.lean Modified Mathlib/MeasureTheory/Measure/AEMeasurable.lean Modified Mathlib/MeasureTheory/Measure/Count.lean Modified Mathlib/MeasureTheory/Measure/Doubling.lean Modified Mathlib/MeasureTheory/Measure/Hausdorff.lean Modified Mathlib/MeasureTheory/Measure/Lebesgue/Basic.lean Modified Mathlib/MeasureTheory/Measure/LevyProkhorovMetric.lean Modified Mathlib/MeasureTheory/Measure/MeasureSpace.lean Modified Mathlib/MeasureTheory/Measure/MeasureSpaceDef.lean Modified Mathlib/MeasureTheory/Measure/NullMeasurable.lean Modified Mathlib/MeasureTheory/Measure/Regular.lean Modified Mathlib/MeasureTheory/Measure/Restrict.lean Modified Mathlib/MeasureTheory/Measure/Stieltjes.lean Modified Mathlib/MeasureTheory/Measure/Typeclasses.lean Modified Mathlib/MeasureTheory/OuterMeasure/Basic.lean Modified Mathlib/ModelTheory/DirectLimit.lean Modified Mathlib/NumberTheory/BernoulliPolynomials.lean Modified Mathlib/NumberTheory/Cyclotomic/Rat.lean Modified Mathlib/NumberTheory/DiophantineApproximation.lean Modified Mathlib/NumberTheory/Liouville/LiouvilleNumber.lean Modified Mathlib/NumberTheory/Modular.lean Modified Mathlib/NumberTheory/ModularForms/JacobiTheta/TwoVariable.lean Modified Mathlib/NumberTheory/NumberField/Norm.lean Modified Mathlib/NumberTheory/Padics/Hensel.lean Modified Mathlib/NumberTheory/Padics/PadicNumbers.lean Modified Mathlib/NumberTheory/Padics/RingHoms.lean Modified Mathlib/NumberTheory/Pell.lean Modified Mathlib/NumberTheory/PellMatiyasevic.lean Modified Mathlib/Order/JordanHolder.lean Modified Mathlib/Probability/Distributions/Poisson.lean +/- def ProbabilityTheory.poissonPMFReal Modified Mathlib/Probability/Independence/Conditional.lean Modified Mathlib/Probability/Kernel/Composition.lean Modified Mathlib/Probability/Kernel/IntegralCompProd.lean Modified Mathlib/Probability/Kernel/MeasurableIntegral.lean Modified Mathlib/Probability/Kernel/WithDensity.lean Modified Mathlib/Probability/ProbabilityMassFunction/Monad.lean Modified Mathlib/Probability/StrongLaw.lean Modified Mathlib/RingTheory/Artinian.lean Modified Mathlib/RingTheory/DedekindDomain/Ideal.lean Modified Mathlib/RingTheory/EisensteinCriterion.lean Modified Mathlib/RingTheory/Flat/Basic.lean Modified Mathlib/RingTheory/Ideal/Norm.lean Modified Mathlib/RingTheory/IntegralDomain.lean Modified Mathlib/RingTheory/IntegralRestrict.lean Modified Mathlib/RingTheory/Localization/Basic.lean Modified Mathlib/RingTheory/Nilpotent.lean Modified Mathlib/RingTheory/Polynomial/Basic.lean Modified Mathlib/RingTheory/RootsOfUnity/Basic.lean Modified Mathlib/RingTheory/RootsOfUnity/Minpoly.lean Modified Mathlib/RingTheory/Trace.lean Modified Mathlib/RingTheory/UniqueFactorizationDomain.lean Modified Mathlib/RingTheory/Valuation/Basic.lean Modified Mathlib/SetTheory/Game/PGame.lean Modified Mathlib/SetTheory/Ordinal/FixedPointApproximants.lean Modified Mathlib/SetTheory/Ordinal/Notation.lean Modified Mathlib/SetTheory/Surreal/Dyadic.lean Modified Mathlib/Tactic/FieldSimp.lean Modified Mathlib/Tactic/ProxyType.lean Modified Mathlib/Testing/SlimCheck/Testable.lean Modified Mathlib/Topology/Algebra/Valuation.lean Modified Mathlib/Topology/Algebra/ValuedField.lean Modified Mathlib/Topology/Baire/CompleteMetrizable.lean Modified Mathlib/Topology/Category/Stonean/Limits.lean Modified Mathlib/Topology/Category/TopCat/Limits/Products.lean Modified Mathlib/Topology/ContinuousFunction/Bounded.lean Modified Mathlib/Topology/ContinuousFunction/ZeroAtInfty.lean Modified Mathlib/Topology/EMetricSpace/Basic.lean Modified Mathlib/Topology/EMetricSpace/Lipschitz.lean Modified Mathlib/Topology/EMetricSpace/Paracompact.lean Modified Mathlib/Topology/LocallyConstant/Algebra.lean Modified Mathlib/Topology/MetricSpace/Antilipschitz.lean Modified Mathlib/Topology/MetricSpace/Bounded.lean Modified Mathlib/Topology/MetricSpace/Closeds.lean Modified Mathlib/Topology/MetricSpace/Contracting.lean Modified Mathlib/Topology/MetricSpace/Equicontinuity.lean Modified Mathlib/Topology/MetricSpace/GromovHausdorff.lean Modified Mathlib/Topology/MetricSpace/GromovHausdorffRealized.lean Modified Mathlib/Topology/MetricSpace/HausdorffDimension.lean Modified Mathlib/Topology/MetricSpace/HausdorffDistance.lean Modified Mathlib/Topology/MetricSpace/PartitionOfUnity.lean Modified Mathlib/Topology/MetricSpace/PiNat.lean Modified Mathlib/Topology/MetricSpace/Thickening.lean Modified Mathlib/Topology/Order/UpperLowerSetTopology.lean Modified Mathlib/Topology/TietzeExtension.lean 2024-04-14 18:26:07 22092a2 chore(RingTheory/FinitePresentation): make `Algebra.FinitePresentation` a class (#12057) Makes `Algebra.FinitePresentation` a class, matching `Algebra.FiniteType`. Changes theorems to instances where possible. ESTIMATED CHANGES Modified Mathlib/RingTheory/FinitePresentation.lean +/- theorem Algebra.FinitePresentation.equiv +/- theorem Algebra.FinitePresentation.mvPolynomial_of_finitePresentation - theorem Algebra.FinitePresentation.polynomial - theorem Algebra.FinitePresentation.self +/- theorem Algebra.FinitePresentation.trans - def Algebra.FinitePresentation - theorem Algebra.FiniteType.of_finitePresentation 2024-04-14 14:15:01 8a48cc6 refactor(LinearAlgebra/BilinearForm/Basic): Deprecate coercions (#12132) Following #11278 the coercions in `LinearAlgebra/BilinearForm/Basic` are no longer useful. This PR deprecates them. ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/BilinearForm/Basic.lean +/- theorem LinearMap.BilinForm.ext Modified Mathlib/LinearAlgebra/BilinearForm/Hom.lean 2024-04-14 13:46:17 94e622a feat(RingTheory/Kaehler): The Kaehler differential module of polynomial algebras. (#11895) ESTIMATED CHANGES Modified Mathlib/Algebra/Polynomial/Derivation.lean Modified Mathlib/RingTheory/Derivation/Basic.lean + theorem Derivation.map_aeval Modified Mathlib/RingTheory/Kaehler.lean + def KaehlerDifferential.mvPolynomialBasis + theorem KaehlerDifferential.mvPolynomialBasis_apply + theorem KaehlerDifferential.mvPolynomialBasis_repr_D + theorem KaehlerDifferential.mvPolynomialBasis_repr_D_X + theorem KaehlerDifferential.mvPolynomialBasis_repr_apply + theorem KaehlerDifferential.mvPolynomialBasis_repr_comp_D + theorem KaehlerDifferential.mvPolynomialBasis_repr_symm_single + def KaehlerDifferential.mvPolynomialEquiv + def KaehlerDifferential.polynomialEquiv + theorem KaehlerDifferential.polynomialEquiv_D + theorem KaehlerDifferential.polynomialEquiv_comp_D + theorem KaehlerDifferential.polynomialEquiv_symm + theorem KaehlerDifferential.polynomial_D_apply 2024-04-14 12:41:16 db53e50 feat(NumberTheory/ModularForms): Asymptotics of Jacobi theta functions (#12020) This is a (rather boring) technical step in developing the theory of Hurwitz zeta functions: one needs to show that certain sums related to Jacobi theta series decay exponentially for large `t`. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Category/GroupCat/EnoughInjectives.lean Modified Mathlib/Algebra/Category/GroupCat/Injective.lean Modified Mathlib/Algebra/Module/CharacterModule.lean Modified Mathlib/Analysis/Fourier/PoissonSummation.lean Modified Mathlib/Geometry/Manifold/Instances/Real.lean Added Mathlib/NumberTheory/ModularForms/JacobiTheta/Bounds.lean + def HurwitzKernelBounds.F_int + theorem HurwitzKernelBounds.F_int_eq_of_mem_Icc + def HurwitzKernelBounds.F_nat + theorem HurwitzKernelBounds.F_nat_one_le + theorem HurwitzKernelBounds.F_nat_zero_le + theorem HurwitzKernelBounds.F_nat_zero_zero_sub_le + def HurwitzKernelBounds.f_int + theorem HurwitzKernelBounds.f_int_negSucc + theorem HurwitzKernelBounds.f_int_ofNat + theorem HurwitzKernelBounds.f_le_g_nat + def HurwitzKernelBounds.f_nat + def HurwitzKernelBounds.g_nat + theorem HurwitzKernelBounds.isBigO_atTop_F_int_one + theorem HurwitzKernelBounds.isBigO_atTop_F_int_zero_sub + theorem HurwitzKernelBounds.isBigO_atTop_F_nat_one + theorem HurwitzKernelBounds.isBigO_atTop_F_nat_zero_sub + theorem HurwitzKernelBounds.isBigO_exp_neg_mul_of_le + theorem HurwitzKernelBounds.summable_f_int + theorem HurwitzKernelBounds.summable_f_nat Modified Mathlib/NumberTheory/WellApproximable.lean Modified Mathlib/NumberTheory/ZetaValues.lean Modified Mathlib/Topology/Instances/AddCircle.lean + theorem AddCircle.coe_eq_zero_iff_of_mem_Ico + theorem AddCircle.eq_coe_Ico 2024-04-14 10:41:27 9e99a83 doc: fix references to List.Pairwise in List.Sorted docs (#12123) ESTIMATED CHANGES Modified Mathlib/Data/List/Sort.lean 2024-04-14 10:41:26 9e512a0 refactor(LinearAlgebra/BilinearForm/Basic): Delete infered instances (#12122) Following #11278 the instances in `LinearAlgebra/BilinearForm/Basic` can be infered without further proof, and therefore the instance statements are no longer required. ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/BilinearForm/Basic.lean 2024-04-14 10:41:25 3bb1d61 chore: remove autoImplicit from more files (#11798) and reduce its scope in a few other instances. Mostly in `CategoryTheory` and `Data` this time; some `Combinatorics` also. ESTIMATED CHANGES Modified Mathlib/Algebra/Category/ModuleCat/Free.lean +/- theorem ModuleCat.span_exact Modified Mathlib/Algebra/Category/Ring/Basic.lean +/- def RingEquiv.toCommSemiRingCatIso +/- def RingEquiv.toSemiRingCatIso Modified Mathlib/Algebra/Homology/HomotopyCategory.lean Modified Mathlib/Algebra/Module/Torsion.lean +/- def Submodule.torsion' +/- def Submodule.torsion'AddSubMonoid Modified Mathlib/Algebra/MvPolynomial/Basic.lean +/- theorem MvPolynomial.algHom_C +/- theorem MvPolynomial.eval_eval₂ +/- theorem MvPolynomial.eval₂_id Modified Mathlib/Algebra/MvPolynomial/Polynomial.lean +/- theorem MvPolynomial.eval_polynomial_eval_finSuccEquiv Modified Mathlib/Algebra/Polynomial/Degree/Definitions.lean +/- theorem Polynomial.coeff_mul_add_eq_of_natDegree_le Modified Mathlib/Algebra/Polynomial/RingDivision.lean +/- theorem Polynomial.mem_roots_iff_aeval_eq_zero Modified Mathlib/Analysis/Complex/UpperHalfPlane/Basic.lean +/- theorem UpperHalfPlane.ModularGroup.coe'_apply_complex +/- theorem UpperHalfPlane.ModularGroup.det_coe' Modified Mathlib/Analysis/RCLike/Basic.lean Modified Mathlib/Analysis/SpecialFunctions/Log/Basic.lean +/- theorem Mathlib.Meta.Positivity.log_nz_of_isRat +/- theorem Mathlib.Meta.Positivity.log_nz_of_isRat_neg +/- theorem Mathlib.Meta.Positivity.log_pos_of_isRat +/- theorem Mathlib.Meta.Positivity.log_pos_of_isRat_neg Modified Mathlib/CategoryTheory/Bicategory/NaturalTransformation.lean +/- theorem CategoryTheory.OplaxNatTrans.Modification.comp_app' +/- theorem CategoryTheory.OplaxNatTrans.Modification.id_app' Modified Mathlib/CategoryTheory/ConnectedComponents.lean Modified Mathlib/CategoryTheory/EqToHom.lean Modified Mathlib/CategoryTheory/GradedObject.lean +/- theorem CategoryTheory.GradedObject.eqToHom_proj +/- theorem CategoryTheory.GradedObject.hom_ext Modified Mathlib/CategoryTheory/Limits/Presheaf.lean +/- theorem CategoryTheory.ColimitAdj.extendAlongYoneda_obj.hom_ext Modified Mathlib/CategoryTheory/Limits/Shapes/Products.lean +/- theorem CategoryTheory.Limits.Cofan.IsColimit.hom_ext +/- theorem CategoryTheory.Limits.Fan.IsLimit.hom_ext +/- def CategoryTheory.Limits.Pi.whiskerEquiv +/- theorem CategoryTheory.Limits.Pi.π_comp_eqToHom +/- theorem CategoryTheory.Limits.Sigma.eqToHom_comp_ι +/- def CategoryTheory.Limits.Sigma.whiskerEquiv +/- def CategoryTheory.Limits.piPiIso +/- def CategoryTheory.Limits.sigmaSigmaIso Modified Mathlib/CategoryTheory/Limits/Shapes/WidePullbacks.lean Modified Mathlib/CategoryTheory/Limits/Types.lean Modified Mathlib/CategoryTheory/Sites/Coverage.lean +/- theorem CategoryTheory.Presieve.isSheaf_coverage +/- theorem CategoryTheory.Presieve.isSheaf_sup Modified Mathlib/CategoryTheory/UnivLE.lean - theorem UnivLE.ofEssSurj.{u, + theorem UnivLE.ofEssSurj - def UnivLE.witness.{u, + def UnivLE.witness - theorem UnivLE_iff_essSurj.{u, + theorem UnivLE_iff_essSurj Modified Mathlib/CategoryTheory/Yoneda.lean +/- theorem CategoryTheory.yonedaPairingExt Modified Mathlib/Combinatorics/Quiver/Basic.lean +/- theorem Prefunctor.mk_map +/- theorem Prefunctor.mk_obj Modified Mathlib/Combinatorics/Quiver/SingleObj.lean Modified Mathlib/Combinatorics/SimpleGraph/Connectivity.lean +/- theorem SimpleGraph.Walk.nil_copy +/- def SimpleGraph.Walk.tail +/- theorem SimpleGraph.Walk.toDeleteEdges_copy +/- theorem SimpleGraph.Walk.transfer_append Modified Mathlib/Combinatorics/SimpleGraph/Prod.lean Modified Mathlib/Data/Array/Defs.lean Modified Mathlib/Data/Equiv/Functor.lean +/- def Functor.map_equiv Modified Mathlib/Data/Fin/Basic.lean +/- theorem Fin.castPred_le_iff +/- theorem Fin.castPred_lt_iff +/- theorem Fin.castSucc_le_castSucc_iff +/- theorem Fin.castSucc_lt_succ_iff +/- theorem Fin.le_castPred_iff +/- theorem Fin.le_pred_iff +/- theorem Fin.lt_castPred_iff +/- theorem Fin.lt_pred_iff +/- theorem Fin.monotone_castPred_comp +/- theorem Fin.monotone_pred_comp +/- theorem Fin.ofNat'_one +/- theorem Fin.ofNat'_zero +/- theorem Fin.pred_le_iff +/- theorem Fin.pred_lt_castPred +/- theorem Fin.pred_lt_iff +/- theorem Fin.rev_castPred +/- theorem Fin.rev_pred +/- theorem Fin.strictMono_castPred_comp +/- theorem Fin.strictMono_pred_comp +/- theorem Fin.succ_le_castSucc_iff Modified Mathlib/Data/Finsupp/Encodable.lean Modified Mathlib/Data/Int/GCD.lean +/- theorem Nat.xgcdAux_succ +/- theorem Nat.xgcdAux_zero Modified Mathlib/Data/List/Defs.lean Modified Mathlib/Data/List/Lemmas.lean +/- theorem List.mapAccumr_eq_foldr +/- theorem List.mapAccumr₂_eq_foldr Modified Mathlib/Data/List/MinMax.lean +/- theorem List.getElem_le_maximum_of_length_pos +/- theorem List.le_maximum_of_length_pos_iff +/- theorem List.minimum_of_length_pos_le_getElem +/- theorem List.minimum_of_length_pos_le_iff Modified Mathlib/Data/Multiset/Powerset.lean +/- theorem Multiset.revzip_powersetAux_lemma Modified Mathlib/Data/Nat/Cast/Defs.lean +/- theorem Nat.binCast_eq +/- theorem Nat.cast_add +/- theorem Nat.cast_bit0 +/- theorem Nat.cast_bit1 +/- theorem Nat.cast_eq_ofNat +/- theorem Nat.cast_ofNat +/- theorem Nat.cast_one +/- theorem Nat.cast_two +/- theorem one_add_one_eq_two +/- theorem three_add_one_eq_four +/- theorem two_add_one_eq_three Modified Mathlib/Data/Nat/Digits.lean +/- theorem Nat.ofDigits_div_eq_ofDigits_tail +/- theorem Nat.self_div_pow_eq_ofDigits_drop +/- theorem Nat.sub_one_mul_sum_div_pow_eq_sub_sum_digits +/- theorem Nat.sub_one_mul_sum_log_div_pow_eq_sub_sum_digits +/- theorem Nat.sum_le_ofDigits Modified Mathlib/Data/Nat/PSub.lean +/- theorem Nat.ppred_succ +/- theorem Nat.psub_succ +/- theorem Nat.psub_zero Modified Mathlib/Data/Num/Basic.lean Modified Mathlib/Data/Option/Defs.lean +/- theorem Option.elim'_some Modified Mathlib/Data/Option/NAry.lean Modified Mathlib/Data/Ordmap/Ordnode.lean Modified Mathlib/Data/Prod/Basic.lean +/- theorem Prod.mk_inj_left +/- theorem Prod.mk_inj_right Modified Mathlib/Data/Quot.lean Modified Mathlib/Data/Real/Sqrt.lean +/- theorem Real.lt_sq_of_sqrt_lt +/- theorem Real.sqrt_div +/- theorem Real.sqrt_mul Modified Mathlib/Data/Rel.lean +/- theorem Rel.comp_assoc Modified Mathlib/Data/Seq/Computation.lean +/- theorem Computation.liftRelAux_inl_inl +/- theorem Computation.liftRelAux_inl_inr +/- theorem Computation.liftRelAux_inr_inl Modified Mathlib/Data/Set/Card.lean +/- theorem Set.encard_insert_of_not_mem +/- theorem Set.encard_pair +/- theorem Set.exists_subset_encard_eq +/- theorem Set.exists_superset_subset_encard_eq +/- theorem Set.ncard_diff_singleton_add_one +/- theorem Set.ncard_diff_singleton_lt_of_mem +/- theorem Set.ncard_diff_singleton_of_mem +/- theorem Set.ncard_exchange' +/- theorem Set.ncard_exchange +/- theorem Set.ncard_insert_eq_ite +/- theorem Set.ncard_insert_of_mem +/- theorem Set.ncard_insert_of_not_mem +/- theorem Set.ncard_ne_zero_of_mem +/- theorem Set.ncard_pair +/- theorem Set.sep_of_ncard_eq Modified Mathlib/Data/Set/Functor.lean +/- theorem Set.image_coe_eq_restrict_image +/- theorem Set.image_image_val_eq_restrict_image +/- theorem Set.mem_coe_of_mem +/- theorem Set.mem_of_mem_coe Modified Mathlib/Data/Set/Image.lean +/- theorem EquivLike.range_comp +/- theorem Function.Surjective.range_comp Modified Mathlib/Data/Set/Intervals/Image.lean Modified Mathlib/Data/Set/Intervals/OrderIso.lean +/- def OrderIso.IciBot +/- def OrderIso.IicTop Modified Mathlib/Data/Set/Intervals/WithBotTop.lean Modified Mathlib/Data/Set/Lattice.lean +/- theorem exists_sUnion +/- theorem forall_sUnion 2024-04-14 10:02:11 97558f9 chore: make instSMulRealComplex scoped (#12080) This scopes and moves to `Complex.SMul` the instance `instSMulRealComplex`. Rationale: This instance is used in `Data.Complex.{Basic|Module}` to bootstrap `SMul` instances from the reals, but afterwards, instances `SMul R ℂ` should not need to rely on that (rather be obtained via `Algebra R ℂ`, for example). This speeds up the two mentioned files a bit (in fact, it reverts a slow-down caused by reducing the instance priority in #12070) and does not seem to have any adverse effects. I think this is a cleaner solution compared to just reducing the instance priority. See [here](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/simp.20prefers.20CharP.2Ecast_eq_zero.20over.20Nat.2Ecast_zero/near/432855625) on Zulip. ESTIMATED CHANGES Modified Mathlib/Data/Complex/Basic.lean Modified Mathlib/Data/Complex/Module.lean Modified test/instance_diamonds.lean 2024-04-14 09:14:13 60650e9 feat(CategoryTheory/CommSq): add basic CommSq lemmas (#12033) Add basic lemmas about CommSq: - Compositions of commutative squares are commutative - If the horizontal arrows of a commutative square are isomorphisms, then flipping these arrows also yields a commutative square. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/CommSq.lean + theorem CategoryTheory.CommSq.horiz_comp + theorem CategoryTheory.CommSq.horiz_inv + theorem CategoryTheory.CommSq.vert_comp 2024-04-14 08:49:17 f822da5 feat(NumberTheory/SmoothNumbers): add material on numbers with prime factors in a given Finset (#12055) As a preparation for refactoring Euler products to use the new infinite products, this PR generalizes `Nat.smoothNumbers n` to `Nat.factoredNumbers s` where `s` is a `Finset` of natural numbers; this is the set of all positive natural numbers all of whose prime factors are in `s`. We correspondingly generalize the API and use the new statements to golf the proofs of the old ones. (We also eliminate a few fairly slow `convert`s and a `tauto`, so that the file should now be faster than before, even though it contains quite a few new declarations.) See [here](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/Infinite.20products/near/431508883) on Zulip. ESTIMATED CHANGES Modified Mathlib/NumberTheory/SmoothNumbers.lean + theorem Nat.Prime.factoredNumbers_coprime + def Nat.equivProdNatFactoredNumbers + theorem Nat.equivProdNatFactoredNumbers_apply' + theorem Nat.equivProdNatFactoredNumbers_apply + theorem Nat.factoredNumbers.map_prime_pow_mul + def Nat.factoredNumbers + theorem Nat.factoredNumbers_compl + theorem Nat.factoredNumbers_empty + theorem Nat.factoredNumbers_insert + theorem Nat.factoredNumbers_mono + theorem Nat.mem_factoredNumbers' + theorem Nat.mem_factoredNumbers + theorem Nat.mem_factoredNumbers_iff_forall_le + theorem Nat.mem_factoredNumbers_of_dvd +/- theorem Nat.mem_smoothNumbers_iff_forall_le +/- theorem Nat.mem_smoothNumbers_of_dvd + theorem Nat.ne_zero_of_mem_factoredNumbers +/- theorem Nat.ne_zero_of_mem_smoothNumbers + theorem Nat.pow_mul_mem_factoredNumbers + theorem Nat.prod_mem_factoredNumbers + theorem Nat.smoothNumbers_eq_factoredNumbers 2024-04-14 07:43:04 1ef4afc chore(Algebra/BigOperators): delete `RingHom.map_*` lemmas (#11663) ESTIMATED CHANGES Modified Mathlib/Algebra/BigOperators/Ring.lean Modified Mathlib/Algebra/BigOperators/RingEquiv.lean Modified Mathlib/Algebra/CharP/ExpChar.lean Modified Mathlib/Algebra/GeomSum.lean Modified Mathlib/Algebra/GroupWithZero/NonZeroDivisors.lean Modified Mathlib/Data/NNRat/BigOperators.lean Modified Mathlib/Data/Real/NNReal.lean 2024-04-14 06:35:40 02b6c2b chore(*Set): golf (#12117) - Golf `Directed.exists_mem_subset_of_finset_subset_biUnion` using `induction` tactic. - Golf `Set.fintype`. - Reduce abuse of `Set α = α → Prop` defeq. ESTIMATED CHANGES Modified Mathlib/Data/Fintype/Powerset.lean Modified Mathlib/Data/Set/Basic.lean Modified Mathlib/Data/Set/Finite.lean Modified Mathlib/Data/Set/Intervals/Disjoint.lean 2024-04-14 06:35:39 596d5ec chore: superfluous parentheses (#12116) ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Ext.lean Modified Mathlib/Algebra/Homology/ShortComplex/HomologicalComplex.lean Modified Mathlib/Analysis/Analytic/Constructions.lean Modified Mathlib/Analysis/Calculus/BumpFunction/Normed.lean Modified Mathlib/Analysis/Calculus/FDeriv/Extend.lean Modified Mathlib/Analysis/LocallyConvex/Barrelled.lean Modified Mathlib/CategoryTheory/Limits/VanKampen.lean Modified Mathlib/CategoryTheory/Whiskering.lean Modified Mathlib/Data/Fin/OrderHom.lean Modified Mathlib/Data/Nat/Cast/Field.lean Modified Mathlib/Data/Nat/Fib/Basic.lean Modified Mathlib/Data/Prod/Basic.lean Modified Mathlib/Data/Seq/Computation.lean Modified Mathlib/Data/Set/Prod.lean Modified Mathlib/GroupTheory/SpecificGroups/Cyclic.lean Modified Mathlib/GroupTheory/Subgroup/Basic.lean Modified Mathlib/LinearAlgebra/AffineSpace/AffineSubspace.lean Modified Mathlib/LinearAlgebra/CliffordAlgebra/BaseChange.lean Modified Mathlib/LinearAlgebra/Lagrange.lean Modified Mathlib/MeasureTheory/Measure/LevyProkhorovMetric.lean Modified Mathlib/ModelTheory/Fraisse.lean Modified Mathlib/NumberTheory/NumberField/Units.lean Modified Mathlib/NumberTheory/Padics/PadicVal.lean Modified Mathlib/Order/WithBot.lean Modified Mathlib/RingTheory/Jacobson.lean Modified Mathlib/RingTheory/Localization/Ideal.lean Modified Mathlib/Topology/Algebra/Order/LiminfLimsup.lean Modified Mathlib/Topology/Algebra/Polynomial.lean 2024-04-14 05:44:38 79d6c97 feat(LinearAlgebra/TensorProduct/Finiteness): add some finiteness results of tensor product (#11859) - `TensorProduct.exists_multiset`, `TensorProduct.exists_finsupp_left`, `TensorProduct.exists_finsupp_right`, `TensorProduct.exists_finset`: any element of `M ⊗[R] N` can be written as a finite sum of pure tensors. See also `TensorProduct.span_tmul_eq_top`. - `TensorProduct.exists_finite_submodule_left_of_finite`, `TensorProduct.exists_finite_submodule_right_of_finite`, `TensorProduct.exists_finite_submodule_of_finite` and 3 more: any finite subset of `M ⊗[R] N` is contained in `M' ⊗[R] N'` for some finitely generated submodules `M'` and `N'` of `M` and `N`, respectively. Each of these 3 functions has 2 variants. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/LinearAlgebra/TensorProduct/Basic.lean + theorem TensorProduct.range_mapIncl + theorem TensorProduct.range_mapIncl_mono Added Mathlib/LinearAlgebra/TensorProduct/Finiteness.lean + theorem TensorProduct.exists_finite_submodule_left_of_finite' + theorem TensorProduct.exists_finite_submodule_left_of_finite + theorem TensorProduct.exists_finite_submodule_of_finite' + theorem TensorProduct.exists_finite_submodule_of_finite + theorem TensorProduct.exists_finite_submodule_right_of_finite' + theorem TensorProduct.exists_finite_submodule_right_of_finite + theorem TensorProduct.exists_finset + theorem TensorProduct.exists_finsupp_left + theorem TensorProduct.exists_finsupp_right + theorem TensorProduct.exists_multiset 2024-04-13 20:23:25 9670eb9 feat: Inverses for TrivSqZeroExt (#12075) Defined inverses for TrivEqExtZero in a way that is consitent with DualNumbers. Note that $(a + b\epsilon)^{-1} = \frac{1(a - b\epsilon)}{(a + b\epsilon)(a - b\epsilon)} = \frac{a - b\epsilon}{a^2}$ Which becomes $\frac{1}{a} - \frac{b}{a^2}\epsilon$. We want to be able have left multiplicative inverses $x x^{-1} = 0$ So we write $\frac{b}{a^2} = a^{-1} \cdot b \cdot a^{-1}$ Also included a proof that $x \cdot x^{-1} = 1$ when $\text{fst } x \neq 0$ ESTIMATED CHANGES Modified Mathlib/Algebra/DualNumber.lean + theorem DualNumber.inv_eps Modified Mathlib/Algebra/TrivSqZeroExt.lean + theorem TrivSqZeroExt.fst_inv + theorem TrivSqZeroExt.inv_inr + theorem TrivSqZeroExt.snd_inv 2024-04-13 19:32:31 7e8cd2b feat(Data/Nat/Prime): add 2 theorems (#11620) ESTIMATED CHANGES Modified Mathlib/Data/Nat/Prime.lean + theorem Nat.not_prime_iff_exists_dvd_lt + theorem Nat.not_prime_iff_exists_dvd_ne + theorem Nat.not_prime_of_dvd_of_lt + theorem Nat.not_prime_of_dvd_of_ne 2024-04-13 18:06:43 a0cb217 fix(Algebra/Bounds): generalize index type to sort (#12113) ESTIMATED CHANGES Modified Mathlib/Algebra/Bounds.lean 2024-04-13 12:00:43 7a71e52 Feat (GroupTheory/GroupAction/Hom/Pointwise) : generalize smul set lemmas to group actions (#12023) This is a generalization of `Mathlib/Algebra/Module/LinearMap/Pointwise.lean` from `LinearMapClass` to `MulActionHomClass`. The preexisting lemmas are generalized. - `image_smul_setₛₗ` : under a `σ`-equivariant map, one has `h '' (c • s) = (σ c) • h '' s`. - `preimage_smul_setₛₗ'` is a general version of the equality `h ⁻¹' (σ c • s) = c • h⁻¹' s`. It requires that `c` acts surjectively and `σ c` acts injectively. It is provided with specific versions: - `preimage_smul_setₛₗ_of_units` requires that `c` and `σ c` are units - `MonoidHom.preimage_smul_setₛₗ` requires that `σ` is a `MonoidHom` and `c` is a unit - `MonoidHomClass.preimage_smul_setₛₗ` requires that `σ` belongs to a `MonoidHomClass`and that `c` is a unit - `Group.preimage_smul_setₛₗ` requires that the types of `c` and `σ c` are groups - `image_smul_set`, `preimage_smul_set` and `Group.preimage_smul_set` are the variants when `σ` is the identity. ESTIMATED CHANGES Modified Mathlib.lean Deleted Mathlib/Algebra/Module/LinearMap/Pointwise.lean - theorem image_smul_set - theorem image_smul_setₛₗ - theorem preimage_smul_set - theorem preimage_smul_setₛₗ Modified Mathlib/Analysis/LocallyConvex/Bounded.lean Added Mathlib/GroupTheory/GroupAction/Pointwise.lean + theorem Group.preimage_smul_set + theorem Group.preimage_smul_setₛₗ + theorem MonoidHom.preimage_smul_setₛₗ + theorem MulAction.smul_bijective_of_is_unit + theorem image_smul_set + theorem image_smul_setₛₗ + theorem preimage_smul_set + theorem preimage_smul_setₛₗ' + theorem preimage_smul_setₛₗ + theorem preimage_smul_setₛₗ_of_units + theorem smul_preimage_set_le + theorem smul_preimage_set_leₛₗ 2024-04-13 10:35:01 8640948 feat: add notation for Real.sqrt (#12056) This adds the notation `√r` for `Real.sqrt r`. The precedence is such that `√x⁻¹` is parsed as `√(x⁻¹)`; not because this is particularly desirable, but because it's the default and the choice doesn't really matter. This is extracted from #7907, which adds a more general nth root typeclass. The idea is to perform all the boring substitutions downstream quickly, so that we can play around with custom elaborators with a much slower rate of code-rot. This PR also won't rot as quickly, as it does not forbid writing `x.sqrt` as that PR does. While perhaps claiming `√` for `Real.sqrt` is greedy; it: * Is far more common thatn `NNReal.sqrt` and `Nat.sqrt` * Is far more interesting to mathlib than `sqrt` on `Float` * Can be overloaded anyway, so this does not prevent downstream code using the notation on their own types. * Will be replaced by a more general typeclass in a future PR. [Zulip](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/.60Sqrt.60.20notation.20typeclass/near/400086502) ESTIMATED CHANGES Modified Mathlib/Algebra/Order/CompleteField.lean Modified Mathlib/Algebra/Star/CHSH.lean +/- theorem TsirelsonInequality.sqrt_two_inv_mul_self +/- theorem TsirelsonInequality.tsirelson_inequality_aux Modified Mathlib/Analysis/Complex/Basic.lean +/- theorem Complex.dist_eq_re_im Modified Mathlib/Analysis/Complex/UpperHalfPlane/Metric.lean +/- theorem UpperHalfPlane.dist_eq +/- theorem UpperHalfPlane.dist_le_dist_coe_div_sqrt Modified Mathlib/Analysis/Convex/SpecificFunctions/Deriv.lean Modified Mathlib/Analysis/Convex/SpecificFunctions/Pow.lean +/- theorem Real.strictConcaveOn_sqrt Modified Mathlib/Analysis/InnerProductSpace/Adjoint.lean Modified Mathlib/Analysis/InnerProductSpace/Basic.lean +/- theorem InnerProductSpace.Core.norm_eq_sqrt_inner +/- theorem InnerProductSpace.Core.sqrt_normSq_eq_norm +/- def InnerProductSpace.Core.toNorm +/- theorem norm_eq_sqrt_inner +/- theorem norm_eq_sqrt_real_inner Modified Mathlib/Analysis/InnerProductSpace/Calculus.lean Modified Mathlib/Analysis/InnerProductSpace/ConformalLinearMap.lean Modified Mathlib/Analysis/InnerProductSpace/PiL2.lean Modified Mathlib/Analysis/InnerProductSpace/Projection.lean Modified Mathlib/Analysis/LocallyConvex/WithSeminorms.lean Modified Mathlib/Analysis/NormedSpace/HomeomorphBall.lean Modified Mathlib/Analysis/NormedSpace/PiLp.lean Modified Mathlib/Analysis/NormedSpace/ProdLp.lean Modified Mathlib/Analysis/RCLike/Basic.lean +/- theorem RCLike.sqrt_normSq_eq_norm Modified Mathlib/Analysis/SpecialFunctions/Arsinh.lean +/- theorem Real.cosh_arsinh +/- theorem Real.exp_arsinh +/- theorem Real.hasDerivAt_arsinh +/- theorem Real.hasStrictDerivAt_arsinh Modified Mathlib/Analysis/SpecialFunctions/CompareExp.lean Modified Mathlib/Analysis/SpecialFunctions/Exp.lean +/- theorem Real.exp_half Modified Mathlib/Analysis/SpecialFunctions/Gamma/Beta.lean Modified Mathlib/Analysis/SpecialFunctions/Gamma/BohrMollerup.lean Modified Mathlib/Analysis/SpecialFunctions/Gaussian.lean +/- theorem Real.Gamma_one_half_eq +/- theorem integral_gaussian Modified Mathlib/Analysis/SpecialFunctions/Integrals.lean +/- theorem integral_sqrt_one_sub_sq Modified Mathlib/Analysis/SpecialFunctions/JapaneseBracket.lean +/- theorem sqrt_one_add_norm_sq_le Modified Mathlib/Analysis/SpecialFunctions/Log/Basic.lean +/- theorem Real.log_sqrt Modified Mathlib/Analysis/SpecialFunctions/Log/Monotone.lean +/- theorem Real.log_div_sqrt_antitoneOn Modified Mathlib/Analysis/SpecialFunctions/PolarCoord.lean Modified Mathlib/Analysis/SpecialFunctions/Pow/Real.lean +/- theorem Real.rpow_div_two_eq_sqrt +/- theorem Real.sqrt_eq_rpow Modified Mathlib/Analysis/SpecialFunctions/Sqrt.lean +/- theorem ContDiff.sqrt +/- theorem Real.contDiffAt_sqrt +/- theorem Real.hasDerivAt_sqrt +/- theorem Real.hasStrictDerivAt_sqrt Modified Mathlib/Analysis/SpecialFunctions/Stirling.lean +/- theorem Stirling.stirlingSeq_one +/- theorem Stirling.tendsto_stirlingSeq_sqrt_pi Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Arctan.lean +/- theorem Real.arccos_eq_arctan +/- theorem Real.arctan_eq_arccos +/- theorem Real.arctan_eq_arcsin +/- theorem Real.cos_arctan +/- theorem Real.sin_arctan Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Basic.lean +/- theorem Real.cos_pi_div_eight +/- theorem Real.cos_pi_div_four +/- theorem Real.cos_pi_div_six +/- theorem Real.cos_pi_div_sixteen +/- theorem Real.cos_pi_div_thirty_two +/- theorem Real.sin_pi_div_eight +/- theorem Real.sin_pi_div_four +/- theorem Real.sin_pi_div_sixteen +/- theorem Real.sin_pi_div_thirty_two +/- theorem Real.sin_pi_div_three +/- theorem Real.sqrtTwoAddSeries_one +/- theorem Real.sqrtTwoAddSeries_two Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Bounds.lean Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Inverse.lean +/- theorem Real.arccos_eq_arcsin +/- theorem Real.arccos_le_pi_div_four +/- theorem Real.arcsin_eq_arccos +/- theorem Real.cos_arcsin +/- theorem Real.pi_div_four_le_arcsin +/- theorem Real.sin_arccos +/- theorem Real.tan_arccos +/- theorem Real.tan_arcsin Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/InverseDeriv.lean +/- theorem Real.deriv_arccos +/- theorem Real.deriv_arcsin Modified Mathlib/Combinatorics/Additive/Behrend.lean +/- theorem Behrend.le_sqrt_log +/- theorem Behrend.log_two_mul_two_le_sqrt_log_eight +/- theorem Behrend.roth_lower_bound Modified Mathlib/Data/Complex/Exponential.lean +/- theorem Real.abs_cos_eq_sqrt_one_sub_sin_sq +/- theorem Real.abs_sin_eq_sqrt_one_sub_cos_sq +/- theorem Real.inv_sqrt_one_add_tan_sq Modified Mathlib/Data/Real/GoldenRatio.lean +/- theorem Real.coe_fib_eq +/- theorem gold_sub_goldConj +/- def goldenConj +/- def goldenRatio Modified Mathlib/Data/Real/Irrational.lean +/- theorem Nat.Prime.irrational_sqrt +/- theorem irrational_sqrt_two Modified Mathlib/Data/Real/Pi/Bounds.lean Modified Mathlib/Data/Real/Sqrt.lean +/- theorem Continuous.sqrt +/- theorem ContinuousOn.sqrt +/- theorem Real.abs_le_sqrt +/- theorem Real.coe_sqrt +/- theorem Real.continuous_sqrt +/- theorem Real.div_sqrt +/- theorem Real.le_sqrt' +/- theorem Real.le_sqrt +/- theorem Real.le_sqrt_of_sq_le +/- theorem Real.lt_sq_of_sqrt_lt +/- theorem Real.lt_sqrt +/- theorem Real.lt_sqrt_of_sq_lt +/- theorem Real.mul_self_sqrt +/- theorem Real.nat_sqrt_le_real_sqrt +/- theorem Real.neg_sqrt_le_of_sq_le +/- theorem Real.neg_sqrt_lt_of_sq_lt +/- theorem Real.one_le_sqrt +/- theorem Real.real_sqrt_le_nat_sqrt_succ +/- theorem Real.sq_le +/- theorem Real.sq_lt +/- theorem Real.sq_sqrt +/- theorem Real.sqrt_div' +/- theorem Real.sqrt_div +/- theorem Real.sqrt_div_self' +/- theorem Real.sqrt_div_self +/- theorem Real.sqrt_eq_cases +/- theorem Real.sqrt_eq_iff_mul_self_eq +/- theorem Real.sqrt_eq_iff_mul_self_eq_of_pos +/- theorem Real.sqrt_eq_iff_sq_eq +/- theorem Real.sqrt_eq_one +/- theorem Real.sqrt_eq_zero' +/- theorem Real.sqrt_eq_zero +/- theorem Real.sqrt_inj +/- theorem Real.sqrt_inv +/- theorem Real.sqrt_le_iff +/- theorem Real.sqrt_le_left +/- theorem Real.sqrt_le_one +/- theorem Real.sqrt_le_sqrt +/- theorem Real.sqrt_le_sqrt_iff' +/- theorem Real.sqrt_le_sqrt_iff +/- theorem Real.sqrt_lt' +/- theorem Real.sqrt_lt +/- theorem Real.sqrt_lt_sqrt +/- theorem Real.sqrt_lt_sqrt_iff +/- theorem Real.sqrt_lt_sqrt_iff_of_pos +/- theorem Real.sqrt_mul' +/- theorem Real.sqrt_mul +/- theorem Real.sqrt_mul_self +/- theorem Real.sqrt_mul_self_eq_abs +/- theorem Real.sqrt_ne_zero' +/- theorem Real.sqrt_ne_zero +/- theorem Real.sqrt_nonneg +/- theorem Real.sqrt_one +/- theorem Real.sqrt_one_add_le +/- theorem Real.sqrt_pos +/- theorem Real.sqrt_sq +/- theorem Real.sqrt_sq_eq_abs +/- theorem Real.sqrt_zero Modified Mathlib/Geometry/Euclidean/Angle/Sphere.lean Modified Mathlib/Geometry/Euclidean/Angle/Unoriented/Basic.lean Modified Mathlib/Geometry/Euclidean/Circumcenter.lean Modified Mathlib/MeasureTheory/Function/SpecialFunctions/Basic.lean +/- theorem Measurable.sqrt Modified Mathlib/NumberTheory/Bertrand.lean Modified Mathlib/NumberTheory/Pell.lean Modified Mathlib/NumberTheory/ZetaFunction.lean +/- theorem isBigO_zero_zetaKernel₂ Modified Mathlib/NumberTheory/Zsqrtd/ToReal.lean Modified Mathlib/Probability/Distributions/Gaussian.lean 2024-04-13 10:35:00 51eea18 feat: generalize integration by parts (#11886) Give versions with weaker conditions for `intervalIntegrable.integral_deriv_mul_eq_sub`, `intervalIntegrable.integral_mul_deriv_eq_deriv_mul` and `fourierCoeffOn_of_hasDerivAt`. ESTIMATED CHANGES Modified Mathlib/Analysis/Fourier/AddCircle.lean + theorem fourierCoeffOn_of_hasDerivAt_Ioo + theorem fourierCoeffOn_of_hasDeriv_right Modified Mathlib/MeasureTheory/Integral/FundThmCalculus.lean +/- theorem intervalIntegral.integral_deriv_mul_eq_sub + theorem intervalIntegral.integral_deriv_mul_eq_sub_of_hasDerivAt + theorem intervalIntegral.integral_deriv_mul_eq_sub_of_hasDerivWithinAt + theorem intervalIntegral.integral_deriv_mul_eq_sub_of_hasDeriv_right + theorem intervalIntegral.integral_mul_deriv_eq_deriv_mul_of_hasDerivAt + theorem intervalIntegral.integral_mul_deriv_eq_deriv_mul_of_hasDerivWithinAt + theorem intervalIntegral.integral_mul_deriv_eq_deriv_mul_of_hasDeriv_right 2024-04-13 10:09:53 4d302c5 adding `Functor.sum'`, dual to `Functor.prod'`. (#12073) We add `Functor.sum'` a variant of `Functor.sum`. This situation is dual to [docs#CategoryTheory.Functor.prod'](https://leanprover-community.github.io/mathlib4_docs/find/?pattern=CategoryTheory.Functor.prod%27#doc). We also add `inl_sum'` and `inr_sum'` which prove that the sum functor `F.sum' G` precomposed with the left (resp. right) inclusion functor is isomorphic to `F` (resp. `G`). ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Sums/Basic.lean + def CategoryTheory.Functor.inlCompSum' + def CategoryTheory.Functor.inrCompSum' + def CategoryTheory.Functor.sum' 2024-04-13 09:22:15 fef3b89 chore: resolve some simp-related porting notes (#12074) In all cases, the original proof works now. I presume this is due to simp changes in Lean 4.7, but haven't verified. ESTIMATED CHANGES Modified Mathlib/Algebra/Polynomial/Basic.lean Modified Mathlib/Analysis/Complex/Conformal.lean Modified Mathlib/Analysis/NormedSpace/AddTorsor.lean Modified Mathlib/Analysis/NormedSpace/ContinuousAffineMap.lean Modified Mathlib/Analysis/NormedSpace/lpSpace.lean Modified Mathlib/Analysis/PSeries.lean Modified Mathlib/CategoryTheory/Limits/FilteredColimitCommutesFiniteLimit.lean Modified Mathlib/CategoryTheory/Sites/DenseSubsite.lean Modified Mathlib/FieldTheory/RatFunc.lean Modified Mathlib/MeasureTheory/Constructions/Prod/Integral.lean Modified Mathlib/RingTheory/Valuation/Basic.lean Modified Mathlib/Topology/Compactness/SigmaCompact.lean 2024-04-13 04:55:28 c411fe2 chore(Data/Set/Intervals/OrdConnectedComponent): resolve porting note about lift not being … (#12102) …implemented By now, it has been implemented; use it. ESTIMATED CHANGES Modified Mathlib/Data/Set/Intervals/OrdConnectedComponent.lean 2024-04-13 04:55:27 33c3101 chore: remove porting notes about redundant binder updates (#12101) All these are about some code (now commented out) which performs a (now) redundant binder information update. I don't see how this is useful information going forward, hence propose simply deleting them. ESTIMATED CHANGES Modified Mathlib/Algebra/CharP/Basic.lean Modified Mathlib/Algebra/Polynomial/AlgebraMap.lean Modified Mathlib/Algebra/Star/Subalgebra.lean Modified Mathlib/CategoryTheory/Bicategory/Free.lean Modified Mathlib/Combinatorics/Configuration.lean Modified Mathlib/LinearAlgebra/LinearIndependent.lean Modified Mathlib/NumberTheory/Divisors.lean 2024-04-13 04:55:26 c5b5490 chore: classify porting notes referring to missing linters (#12098) Reference the newly created issues #12094 and #12096, as well as the pre-existing #5171. Change all references to #10927 to #5171. Some of these changes were not labelled as "porting note"; change this for good measure. ESTIMATED CHANGES Modified Mathlib/Algebra/AddTorsor.lean Modified Mathlib/Algebra/Algebra/Basic.lean Modified Mathlib/Algebra/Algebra/Hom.lean Modified Mathlib/Algebra/Algebra/Tower.lean Modified Mathlib/Algebra/Category/ModuleCat/Adjunctions.lean Modified Mathlib/Algebra/Homology/Homotopy.lean Modified Mathlib/Algebra/Module/LocalizedModule.lean Modified Mathlib/Algebra/Order/Group/Cone.lean Modified Mathlib/Algebra/Ring/CompTypeclasses.lean Modified Mathlib/Algebra/Star/CHSH.lean Modified Mathlib/AlgebraicGeometry/AffineScheme.lean Modified Mathlib/AlgebraicGeometry/Gluing.lean Modified Mathlib/AlgebraicGeometry/ProjectiveSpectrum/Topology.lean Modified Mathlib/AlgebraicGeometry/Scheme.lean Modified Mathlib/AlgebraicTopology/DoldKan/Decomposition.lean Modified Mathlib/AlgebraicTopology/SimplexCategory.lean Modified Mathlib/AlgebraicTopology/SimplicialObject.lean Modified Mathlib/AlgebraicTopology/SplitSimplicialObject.lean Modified Mathlib/Analysis/Calculus/BumpFunction/Basic.lean Modified Mathlib/Analysis/Calculus/Implicit.lean Modified Mathlib/Analysis/RCLike/Lemmas.lean Modified Mathlib/CategoryTheory/Adjunction/Basic.lean Modified Mathlib/CategoryTheory/Bicategory/Free.lean Modified Mathlib/CategoryTheory/Bicategory/Functor.lean Modified Mathlib/CategoryTheory/Category/PartialFun.lean Modified Mathlib/CategoryTheory/CommSq.lean Modified Mathlib/CategoryTheory/Comma/StructuredArrow.lean Modified Mathlib/CategoryTheory/Core.lean Modified Mathlib/CategoryTheory/DifferentialObject.lean Modified Mathlib/CategoryTheory/Enriched/Basic.lean Modified Mathlib/CategoryTheory/EpiMono.lean Modified Mathlib/CategoryTheory/EssentiallySmall.lean Modified Mathlib/CategoryTheory/FullSubcategory.lean Modified Mathlib/CategoryTheory/GlueData.lean Modified Mathlib/CategoryTheory/Grothendieck.lean Modified Mathlib/CategoryTheory/Idempotents/Karoubi.lean Modified Mathlib/CategoryTheory/Limits/ExactFunctor.lean Modified Mathlib/CategoryTheory/Limits/HasLimits.lean Modified Mathlib/CategoryTheory/Limits/IsLimit.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Biproducts.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Multiequalizer.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Types.lean Modified Mathlib/CategoryTheory/Limits/Types.lean Modified Mathlib/CategoryTheory/Localization/Construction.lean Modified Mathlib/CategoryTheory/Monad/Algebra.lean Modified Mathlib/CategoryTheory/Monoidal/Center.lean Modified Mathlib/CategoryTheory/Monoidal/Free/Basic.lean Modified Mathlib/CategoryTheory/Monoidal/Free/Coherence.lean Modified Mathlib/CategoryTheory/Monoidal/OfChosenFiniteProducts/Basic.lean Modified Mathlib/CategoryTheory/Monoidal/Opposite.lean Modified Mathlib/CategoryTheory/MorphismProperty.lean Modified Mathlib/CategoryTheory/Preadditive/AdditiveFunctor.lean Modified Mathlib/CategoryTheory/Preadditive/InjectiveResolution.lean Modified Mathlib/CategoryTheory/Preadditive/Mat.lean Modified Mathlib/CategoryTheory/Preadditive/Projective.lean Modified Mathlib/CategoryTheory/Preadditive/ProjectiveResolution.lean Modified Mathlib/CategoryTheory/Shift/Basic.lean Modified Mathlib/CategoryTheory/Sites/ConcreteSheafification.lean Modified Mathlib/CategoryTheory/Sites/CoverLifting.lean Modified Mathlib/CategoryTheory/Sites/CoverPreserving.lean Modified Mathlib/CategoryTheory/Sites/DenseSubsite.lean Modified Mathlib/CategoryTheory/Sites/Grothendieck.lean Modified Mathlib/CategoryTheory/WithTerminal.lean Modified Mathlib/Combinatorics/Quiver/Basic.lean Modified Mathlib/Data/Finite/Basic.lean Modified Mathlib/Data/PFunctor/Multivariate/W.lean Modified Mathlib/Data/PFunctor/Univariate/Basic.lean Modified Mathlib/Data/QPF/Multivariate/Constructions/Fix.lean Modified Mathlib/Data/QPF/Univariate/Basic.lean Modified Mathlib/Dynamics/Ergodic/Ergodic.lean Modified Mathlib/Geometry/Manifold/Algebra/LeftInvariantDerivation.lean Modified Mathlib/Geometry/Manifold/ChartedSpace.lean Modified Mathlib/Geometry/Manifold/Diffeomorph.lean Modified Mathlib/Geometry/Manifold/PartitionOfUnity.lean Modified Mathlib/Geometry/Manifold/SmoothManifoldWithCorners.lean Modified Mathlib/Geometry/Manifold/VectorBundle/Tangent.lean Modified Mathlib/Geometry/RingedSpace/PresheafedSpace/Gluing.lean Modified Mathlib/GroupTheory/CoprodI.lean Modified Mathlib/GroupTheory/FreeGroup/NielsenSchreier.lean Modified Mathlib/GroupTheory/GroupAction/Hom.lean Modified Mathlib/GroupTheory/MonoidLocalization.lean Modified Mathlib/LinearAlgebra/AffineSpace/AffineEquiv.lean Modified Mathlib/LinearAlgebra/Dual.lean Modified Mathlib/LinearAlgebra/FreeModule/PID.lean Modified Mathlib/LinearAlgebra/Matrix/Transvection.lean Modified Mathlib/LinearAlgebra/QuadraticForm/IsometryEquiv.lean Modified Mathlib/LinearAlgebra/Ray.lean Modified Mathlib/Logic/Embedding/Basic.lean Modified Mathlib/MeasureTheory/Covering/VitaliFamily.lean Modified Mathlib/MeasureTheory/Measure/Typeclasses.lean Modified Mathlib/ModelTheory/Basic.lean Modified Mathlib/NumberTheory/LegendreSymbol/AddCharacter.lean Modified Mathlib/Order/GaloisConnection.lean Modified Mathlib/Order/PrimeIdeal.lean Modified Mathlib/RingTheory/DedekindDomain/Ideal.lean Modified Mathlib/RingTheory/GradedAlgebra/HomogeneousLocalization.lean Modified Mathlib/RingTheory/IsAdjoinRoot.lean Modified Mathlib/RingTheory/Perfection.lean Modified Mathlib/RingTheory/PowerBasis.lean Modified Mathlib/RingTheory/Valuation/Basic.lean Modified Mathlib/RingTheory/WittVector/Isocrystal.lean Modified Mathlib/Topology/Algebra/Module/Basic.lean Modified Mathlib/Topology/Algebra/Valuation.lean Modified Mathlib/Topology/Connected/PathConnected.lean Modified Mathlib/Topology/FiberBundle/Basic.lean Modified Mathlib/Topology/FiberBundle/Trivialization.lean Modified Mathlib/Topology/Gluing.lean Modified Mathlib/Topology/MetricSpace/GromovHausdorff.lean Modified Mathlib/Topology/MetricSpace/GromovHausdorffRealized.lean Modified Mathlib/Topology/MetricSpace/Isometry.lean Modified Mathlib/Topology/MetricSpace/Polish.lean Modified Mathlib/Topology/PartialHomeomorph.lean Modified Mathlib/Topology/Sheaves/Presheaf.lean Modified Mathlib/Topology/ShrinkingLemma.lean Modified Mathlib/Topology/UniformSpace/Equiv.lean Modified Mathlib/Topology/VectorBundle/Basic.lean 2024-04-13 04:55:25 203c059 chore(RingTheory/Ideal/Cotangent): Restore lemmasOnly config on `Ideal.toCotangent`. (#12088) ESTIMATED CHANGES Modified Mathlib/RingTheory/Ideal/Cotangent.lean Modified Mathlib/RingTheory/Kaehler.lean 2024-04-13 04:55:24 667acd1 chore(Algebra/Ring/Int): add `CharZero` instance for `Int` (#12060) This adds a shortcut instance `CharZero ℤ` in the file `Algebra.Ring.Int` (which contains a few other shortcut instances for `ℤ` already). The hope is that this will result in a speed-up. Note: This requires adding `import Mathlib.Algebra.CharZero.Defs`. See [here](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/simp.20prefers.20CharP.2Ecast_eq_zero.20over.20Nat.2Ecast_zero/near/431803537) on Zulip. There is a positive effect (-22.5 s) on type class inference, but no significant change overall. Still, I think it makes sense to have it. ESTIMATED CHANGES Modified Mathlib/Algebra/GroupWithZero/Power.lean Modified Mathlib/Algebra/Ring/Int.lean Modified Mathlib/Data/Int/Dvd/Basic.lean Modified Mathlib/Data/Nat/Cast/SetInterval.lean Modified Mathlib/Data/Rat/Defs.lean Modified Mathlib/Logic/Equiv/Fin.lean 2024-04-13 04:26:23 38a23fc chore(RingTheory/IsTensorProduct): resolve porting note about simps! (#12092) Uncomment the simps configuration (which has to become simps!) and delete the generated lemma which was added manually. I verified that both are identical. ESTIMATED CHANGES Modified Mathlib/RingTheory/IsTensorProduct.lean - theorem Algebra.pushoutDesc_apply 2024-04-12 23:11:27 cd0e7a0 chore(Data/Finset/PiInduction): remove porting note about `clear_value` (#12100) This tactic now exists. ESTIMATED CHANGES Modified Mathlib/Data/Finset/PiInduction.lean 2024-04-12 19:06:06 72721e3 fix: mdata in abel (#12084) PR inspired by "automated bugs" (#12054). [Zulip thread](https://leanprover.zulipchat.com/#narrow/stream/113488-general/topic/automated.20bugs/near/432861117) ESTIMATED CHANGES Modified Mathlib/Tactic/Abel.lean Modified test/abel.lean 2024-04-12 15:16:14 b0aea61 feat: Generalize corollaries of rank-nullity theorem. (#9626) Added a class `HasRankNullity` consisting of the rings that satisfy the rank-nullity theorem. Generalized the corollaries of the rank-nullity theorem from division rings to rings satisfying the class, and moved them into a new file `LinearAlgebra.Dimension.RankNullity`. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/LinearAlgebra/Dimension/Constructions.lean + theorem LinearIndependent.sum_elim_of_quotient + theorem LinearIndependent.union_of_quotient Modified Mathlib/LinearAlgebra/Dimension/DivisionRing.lean - theorem Submodule.rank_add_le_rank_add_rank - theorem Submodule.rank_sup_add_rank_inf_eq - theorem exists_linearIndependent_cons_of_lt_finrank - theorem exists_linearIndependent_cons_of_lt_rank - theorem exists_linearIndependent_pair_of_one_lt_finrank - theorem exists_linearIndependent_pair_of_one_lt_rank - theorem exists_linearIndependent_snoc_of_lt_finrank - theorem exists_linearIndependent_snoc_of_lt_rank - theorem rank_eq_of_surjective - theorem rank_quotient_add_rank + theorem rank_quotient_add_rank_of_divisionRing - theorem rank_range_add_rank_ker Modified Mathlib/LinearAlgebra/Dimension/Finite.lean + theorem exists_finset_linearIndependent_of_le_finrank + theorem exists_finset_linearIndependent_of_le_rank + theorem exists_linearIndependent_of_le_finrank + theorem exists_linearIndependent_of_le_rank + theorem exists_set_linearIndependent_of_lt_rank + theorem natCast_le_rank_iff + theorem natCast_le_rank_iff_finset Modified Mathlib/LinearAlgebra/Dimension/Localization.lean + theorem IsLocalizedModule.linearIndependent_lift + theorem aleph0_le_rank_of_isEmpty_oreSet + theorem exists_set_linearIndependent_of_isDomain + theorem nonempty_oreSet_of_strongRankCondition Added Mathlib/LinearAlgebra/Dimension/RankNullity.lean + theorem Submodule.rank_add_le_rank_add_rank + theorem Submodule.rank_sup_add_rank_inf_eq + theorem exists_linearIndependent_cons_of_lt_finrank + theorem exists_linearIndependent_cons_of_lt_rank + theorem exists_linearIndependent_of_lt_rank + theorem exists_linearIndependent_pair_of_one_lt_finrank + theorem exists_linearIndependent_pair_of_one_lt_rank + theorem exists_linearIndependent_snoc_of_lt_finrank + theorem exists_linearIndependent_snoc_of_lt_rank + theorem exists_set_linearIndependent + theorem exists_smul_not_mem_of_rank_lt + theorem lift_rank_eq_of_surjective + theorem lift_rank_range_add_rank_ker + theorem rank_eq_of_surjective + theorem rank_quotient_add_rank + theorem rank_range_add_rank_ker Modified Mathlib/Logic/Embedding/Set.lean Modified Mathlib/NumberTheory/Modular.lean Modified Mathlib/RingTheory/OreLocalization/OreSet.lean + theorem OreLocalization.nonempty_oreSet_iff + theorem OreLocalization.nonempty_oreSet_iff_of_noZeroDivisors Modified docs/references.bib 2024-04-12 14:33:26 0b28fa4 feat: bijectivity criteria for continuous linear maps (#12027) This establishes some common bijectivity criteria (antilipschitz and dense range) for continuous (semi)linear maps between Banach spaces. ESTIMATED CHANGES Modified Mathlib/Analysis/NormedSpace/Banach.lean + theorem AntilipschitzWith.completeSpace_range_clm + theorem ContinuousLinearMap.bijective_iff_dense_range_and_antilipschitz + theorem ContinuousLinearMap.closed_range_of_antilipschitz + theorem ContinuousLinearMap.isUnit_iff_bijective 2024-04-12 14:33:25 65b7aff chore(CategoryTheory): move Full, Faithful, EssSurj, IsEquivalence and ReflectsIsomorphisms to the Functor namespace (#11985) These notions on functors are now `Functor.Full`, `Functor.Faithful`, `Functor.EssSurj`, `Functor.IsEquivalence`, `Functor.ReflectsIsomorphisms`. Deprecated aliases are introduced for the previous names. ESTIMATED CHANGES Modified Mathlib/Algebra/Category/AlgebraCat/Basic.lean Modified Mathlib/Algebra/Category/AlgebraCat/Monoidal.lean Modified Mathlib/Algebra/Category/AlgebraCat/Symmetric.lean Modified Mathlib/Algebra/Category/FGModuleCat/Basic.lean Modified Mathlib/Algebra/Category/GroupCat/Basic.lean Modified Mathlib/Algebra/Category/GroupCat/Limits.lean Modified Mathlib/Algebra/Category/GroupCat/ZModuleEquivalence.lean Modified Mathlib/Algebra/Category/ModuleCat/ChangeOfRings.lean Modified Mathlib/Algebra/Category/ModuleCat/Presheaf.lean Modified Mathlib/Algebra/Category/MonCat/Basic.lean Modified Mathlib/Algebra/Category/Ring/Basic.lean Modified Mathlib/Algebra/Category/Ring/Limits.lean Modified Mathlib/Algebra/Category/SemigroupCat/Basic.lean Modified Mathlib/Algebra/Homology/HomologicalBicomplex.lean Modified Mathlib/Algebra/Homology/HomologicalComplex.lean Modified Mathlib/Algebra/Homology/HomotopyCategory.lean Modified Mathlib/Algebra/Homology/LocalCohomology.lean Modified Mathlib/Algebra/Homology/QuasiIso.lean +/- theorem HomologicalComplex.quasiIsoAt_map_iff_of_preservesHomology +/- theorem HomologicalComplex.quasiIso_map_iff_of_preservesHomology Modified Mathlib/Algebra/Homology/ShortComplex/Exact.lean Modified Mathlib/Algebra/Homology/ShortComplex/PreservesHomology.lean Modified Mathlib/Algebra/Homology/Single.lean Modified Mathlib/AlgebraicGeometry/AffineScheme.lean Modified Mathlib/AlgebraicGeometry/GammaSpecAdjunction.lean Modified Mathlib/AlgebraicGeometry/Scheme.lean Modified Mathlib/AlgebraicTopology/DoldKan/Compatibility.lean Modified Mathlib/AlgebraicTopology/DoldKan/Equivalence.lean Modified Mathlib/AlgebraicTopology/DoldKan/NReflectsIso.lean Modified Mathlib/AlgebraicTopology/SimplexCategory.lean Modified Mathlib/CategoryTheory/Abelian/Exact.lean Modified Mathlib/CategoryTheory/Abelian/Transfer.lean Modified Mathlib/CategoryTheory/Adhesive.lean Modified Mathlib/CategoryTheory/Adjunction/Basic.lean Modified Mathlib/CategoryTheory/Adjunction/FullyFaithful.lean +/- theorem CategoryTheory.L_faithful_of_unit_isIso +/- theorem CategoryTheory.R_faithful_of_counit_isIso Modified Mathlib/CategoryTheory/Adjunction/Limits.lean +/- theorem CategoryTheory.Adjunction.hasColimit_comp_equivalence +/- theorem CategoryTheory.Adjunction.hasColimit_of_comp_equivalence +/- theorem CategoryTheory.Adjunction.hasColimitsOfShape_of_equivalence +/- theorem CategoryTheory.Adjunction.hasLimit_comp_equivalence +/- theorem CategoryTheory.Adjunction.hasLimit_of_comp_equivalence +/- theorem CategoryTheory.Adjunction.hasLimitsOfShape_of_equivalence +/- theorem CategoryTheory.Adjunction.has_colimits_of_equivalence +/- theorem CategoryTheory.Adjunction.has_limits_of_equivalence Modified Mathlib/CategoryTheory/Adjunction/Opposites.lean Modified Mathlib/CategoryTheory/Adjunction/Reflective.lean Modified Mathlib/CategoryTheory/Bicategory/SingleObj.lean Modified Mathlib/CategoryTheory/CatCommSq.lean Modified Mathlib/CategoryTheory/Category/Cat.lean Modified Mathlib/CategoryTheory/Category/Grpd.lean Modified Mathlib/CategoryTheory/Category/PartialFun.lean Modified Mathlib/CategoryTheory/Closed/Functor.lean +/- theorem CategoryTheory.cartesianClosedFunctorOfLeftAdjointPreservesBinaryProducts Modified Mathlib/CategoryTheory/Closed/Monoidal.lean +/- theorem CategoryTheory.MonoidalClosed.ofEquiv_curry_def +/- theorem CategoryTheory.MonoidalClosed.ofEquiv_uncurry_def Modified Mathlib/CategoryTheory/Comma/Basic.lean Modified Mathlib/CategoryTheory/Comma/Over.lean Modified Mathlib/CategoryTheory/Comma/StructuredArrow.lean +/- def CategoryTheory.CostructuredArrow.mkIdTerminal +/- def CategoryTheory.StructuredArrow.mkIdInitial Modified Mathlib/CategoryTheory/ConcreteCategory/Basic.lean +/- theorem CategoryTheory.ConcreteCategory.isIso_iff_bijective Modified Mathlib/CategoryTheory/ConcreteCategory/BundledHom.lean Modified Mathlib/CategoryTheory/ConcreteCategory/ReflectsIso.lean +/- theorem CategoryTheory.reflectsIsomorphisms_forget₂ Modified Mathlib/CategoryTheory/ConnectedComponents.lean Modified Mathlib/CategoryTheory/Core.lean Modified Mathlib/CategoryTheory/DifferentialObject.lean Modified Mathlib/CategoryTheory/EffectiveEpi/Preserves.lean Modified Mathlib/CategoryTheory/Elements.lean Modified Mathlib/CategoryTheory/Endofunctor/Algebra.lean Modified Mathlib/CategoryTheory/Equivalence.lean - theorem CategoryTheory.Equivalence.essSurj_of_equivalence - theorem CategoryTheory.Equivalence.functor_map_inj_iff - theorem CategoryTheory.Equivalence.inverse_map_inj_iff + theorem CategoryTheory.Functor.IsEquivalence.Equivalence.essSurj_of_equivalence + theorem CategoryTheory.Functor.IsEquivalence.Equivalence.functor_map_inj_iff + theorem CategoryTheory.Functor.IsEquivalence.Equivalence.inverse_map_inj_iff + def CategoryTheory.Functor.IsEquivalence.Iso.compInvIso + def CategoryTheory.Functor.IsEquivalence.Iso.compInverseIso + def CategoryTheory.Functor.IsEquivalence.Iso.invCompIso + def CategoryTheory.Functor.IsEquivalence.Iso.inverseCompIso + def CategoryTheory.Functor.IsEquivalence.Iso.isoCompInv + def CategoryTheory.Functor.IsEquivalence.Iso.isoCompInverse + def CategoryTheory.Functor.IsEquivalence.Iso.isoInvComp + def CategoryTheory.Functor.IsEquivalence.Iso.isoInverseComp + def CategoryTheory.Functor.IsEquivalence.cancelCompLeft + def CategoryTheory.Functor.IsEquivalence.cancelCompRight + def CategoryTheory.Functor.IsEquivalence.equivOfIso + theorem CategoryTheory.Functor.IsEquivalence.fun_inv_map + theorem CategoryTheory.Functor.IsEquivalence.inv_fun_map + def CategoryTheory.Functor.IsEquivalence.ofIso + theorem CategoryTheory.Functor.IsEquivalence.ofIso_refl + theorem CategoryTheory.Functor.IsEquivalence.ofIso_trans - def CategoryTheory.IsEquivalence.cancelCompLeft - def CategoryTheory.IsEquivalence.cancelCompRight - def CategoryTheory.IsEquivalence.equivOfIso - theorem CategoryTheory.IsEquivalence.fun_inv_map - theorem CategoryTheory.IsEquivalence.inv_fun_map - def CategoryTheory.IsEquivalence.ofIso - theorem CategoryTheory.IsEquivalence.ofIso_refl - theorem CategoryTheory.IsEquivalence.ofIso_trans - def CategoryTheory.Iso.compInvIso - def CategoryTheory.Iso.compInverseIso - def CategoryTheory.Iso.invCompIso - def CategoryTheory.Iso.inverseCompIso - def CategoryTheory.Iso.isoCompInv - def CategoryTheory.Iso.isoCompInverse - def CategoryTheory.Iso.isoInvComp - def CategoryTheory.Iso.isoInverseComp Modified Mathlib/CategoryTheory/EssentialImage.lean + theorem CategoryTheory.Functor.essSurj_of_iso +/- theorem CategoryTheory.Functor.essSurj_of_surj +/- def CategoryTheory.Functor.objObjPreimageIso +/- def CategoryTheory.Functor.objPreimage - theorem CategoryTheory.Iso.map_essSurj Modified Mathlib/CategoryTheory/EssentiallySmall.lean Modified Mathlib/CategoryTheory/Extensive.lean Modified Mathlib/CategoryTheory/Filtered/Final.lean +/- theorem CategoryTheory.Functor.final_of_exists_of_isFiltered_of_fullyFaithful +/- theorem CategoryTheory.Functor.initial_of_exists_of_isCofiltered_of_fullyFaithful +/- theorem CategoryTheory.IsCofiltered.of_exists_of_isCofiltered_of_fullyFaithful +/- theorem CategoryTheory.IsFiltered.of_exists_of_isFiltered_of_fullyFaithful +/- theorem CategoryTheory.IsFilteredOrEmpty.of_exists_of_isFiltered_of_fullyFaithful Modified Mathlib/CategoryTheory/Filtered/Small.lean Modified Mathlib/CategoryTheory/FintypeCat.lean Modified Mathlib/CategoryTheory/FullSubcategory.lean Modified Mathlib/CategoryTheory/Functor/EpiMono.lean Modified Mathlib/CategoryTheory/Functor/FullyFaithful.lean - theorem CategoryTheory.Faithful.div_comp - theorem CategoryTheory.Faithful.div_faithful - theorem CategoryTheory.Faithful.of_comp - theorem CategoryTheory.Faithful.of_comp_eq - theorem CategoryTheory.Faithful.of_comp_iso - theorem CategoryTheory.Faithful.of_iso - def CategoryTheory.Full.ofCompFaithful - def CategoryTheory.Full.ofCompFaithfulIso - def CategoryTheory.Full.ofIso + theorem CategoryTheory.Functor.Faithful.div_comp + theorem CategoryTheory.Functor.Faithful.div_faithful + theorem CategoryTheory.Functor.Faithful.of_comp + theorem CategoryTheory.Functor.Faithful.of_comp_eq + theorem CategoryTheory.Functor.Faithful.of_comp_iso + theorem CategoryTheory.Functor.Faithful.of_iso + def CategoryTheory.Functor.Full.ofCompFaithful + def CategoryTheory.Functor.Full.ofCompFaithfulIso + def CategoryTheory.Functor.Full.ofIso + def CategoryTheory.Functor.fullyFaithfulCancelRight + theorem CategoryTheory.Functor.fullyFaithfulCancelRight_hom_app + theorem CategoryTheory.Functor.fullyFaithfulCancelRight_inv_app + theorem CategoryTheory.Functor.preimage_comp + theorem CategoryTheory.Functor.preimage_id + theorem CategoryTheory.Functor.preimage_map +/- def CategoryTheory.equivOfFullyFaithful - def CategoryTheory.fullyFaithfulCancelRight - theorem CategoryTheory.fullyFaithfulCancelRight_hom_app - theorem CategoryTheory.fullyFaithfulCancelRight_inv_app +/- def CategoryTheory.isoEquivOfFullyFaithful - theorem CategoryTheory.preimage_comp - theorem CategoryTheory.preimage_id - theorem CategoryTheory.preimage_map Modified Mathlib/CategoryTheory/Functor/ReflectsIso.lean Modified Mathlib/CategoryTheory/Galois/Basic.lean Modified Mathlib/CategoryTheory/Generator.lean +/- theorem CategoryTheory.isCoseparator_iff_faithful_yoneda_obj Modified Mathlib/CategoryTheory/GradedObject.lean Modified Mathlib/CategoryTheory/Idempotents/FunctorCategories.lean Modified Mathlib/CategoryTheory/Idempotents/FunctorExtension.lean Modified Mathlib/CategoryTheory/Idempotents/Karoubi.lean +/- def CategoryTheory.Idempotents.toKaroubiIsEquivalence Modified Mathlib/CategoryTheory/IsConnected.lean +/- theorem CategoryTheory.zag_of_zag_obj Modified Mathlib/CategoryTheory/Limits/Cones.lean Modified Mathlib/CategoryTheory/Limits/Creates.lean +/- def CategoryTheory.createsColimitOfFullyFaithfulOfIso' +/- def CategoryTheory.createsColimitOfFullyFaithfulOfIso +/- def CategoryTheory.createsColimitOfFullyFaithfulOfLift' +/- def CategoryTheory.createsColimitOfFullyFaithfulOfLift +/- def CategoryTheory.createsColimitOfFullyFaithfulOfPreserves +/- def CategoryTheory.createsColimitOfReflectsIso' +/- def CategoryTheory.createsColimitOfReflectsIso +/- def CategoryTheory.createsLimitOfFullyFaithfulOfIso' +/- def CategoryTheory.createsLimitOfFullyFaithfulOfIso +/- def CategoryTheory.createsLimitOfFullyFaithfulOfLift' +/- def CategoryTheory.createsLimitOfFullyFaithfulOfLift +/- def CategoryTheory.createsLimitOfFullyFaithfulOfPreserves +/- def CategoryTheory.createsLimitOfReflectsIso' +/- def CategoryTheory.createsLimitOfReflectsIso Modified Mathlib/CategoryTheory/Limits/ExactFunctor.lean Modified Mathlib/CategoryTheory/Limits/FilteredColimitCommutesFiniteLimit.lean Modified Mathlib/CategoryTheory/Limits/IsLimit.lean +/- def CategoryTheory.Limits.IsColimit.ofFaithful +/- def CategoryTheory.Limits.IsLimit.ofFaithful Modified Mathlib/CategoryTheory/Limits/KanExtension.lean +/- theorem CategoryTheory.Lan.coreflective +/- theorem CategoryTheory.Ran.reflective Modified Mathlib/CategoryTheory/Limits/Preserves/Basic.lean +/- def CategoryTheory.Limits.reflectsColimitOfReflectsIsomorphisms +/- def CategoryTheory.Limits.reflectsColimitsOfReflectsIsomorphisms +/- def CategoryTheory.Limits.reflectsColimitsOfShapeOfReflectsIsomorphisms +/- def CategoryTheory.Limits.reflectsLimitOfReflectsIsomorphisms +/- def CategoryTheory.Limits.reflectsLimitsOfReflectsIsomorphisms +/- def CategoryTheory.Limits.reflectsLimitsOfShapeOfReflectsIsomorphisms Modified Mathlib/CategoryTheory/Limits/Shapes/Biproducts.lean Modified Mathlib/CategoryTheory/Limits/Shapes/CommSq.lean +/- theorem CategoryTheory.IsPullback.of_map_of_faithful +/- theorem CategoryTheory.IsPushout.of_map_of_faithful Modified Mathlib/CategoryTheory/Limits/Shapes/Equivalence.lean +/- theorem CategoryTheory.hasInitial_of_equivalence +/- theorem CategoryTheory.hasTerminal_of_equivalence Modified Mathlib/CategoryTheory/Limits/Shapes/Kernels.lean +/- def CategoryTheory.Limits.compNatIso Modified Mathlib/CategoryTheory/Limits/Shapes/NormalMono/Basic.lean Modified Mathlib/CategoryTheory/Limits/VanKampen.lean Modified Mathlib/CategoryTheory/Linear/Yoneda.lean Modified Mathlib/CategoryTheory/Localization/CalculusOfFractions.lean Modified Mathlib/CategoryTheory/Localization/Construction.lean Modified Mathlib/CategoryTheory/Localization/Equivalence.lean Modified Mathlib/CategoryTheory/Localization/LocalizerMorphism.lean +/- theorem CategoryTheory.LocalizerMorphism.IsLocalizedEquivalence.mk' +/- theorem CategoryTheory.LocalizerMorphism.IsLocalizedEquivalence.of_equivalence +/- theorem CategoryTheory.LocalizerMorphism.nonempty_isEquivalence_iff Modified Mathlib/CategoryTheory/Localization/Predicate.lean +/- theorem CategoryTheory.Localization.essSurj Modified Mathlib/CategoryTheory/Localization/Resolution.lean +/- theorem CategoryTheory.LocalizerMorphism.essSurj_of_hasRightResolutions Modified Mathlib/CategoryTheory/Monad/Adjunction.lean Modified Mathlib/CategoryTheory/Monad/Algebra.lean Modified Mathlib/CategoryTheory/Monad/Basic.lean Modified Mathlib/CategoryTheory/Monad/Monadicity.lean +/- def CategoryTheory.Monad.monadicOfHasPreservesGSplitCoequalizersOfReflectsIsomorphisms Modified Mathlib/CategoryTheory/Monoidal/Braided/Basic.lean Modified Mathlib/CategoryTheory/Monoidal/Category.lean Modified Mathlib/CategoryTheory/Monoidal/Center.lean Modified Mathlib/CategoryTheory/Monoidal/CommMon_.lean Modified Mathlib/CategoryTheory/Monoidal/Functor.lean Modified Mathlib/CategoryTheory/Monoidal/Linear.lean Modified Mathlib/CategoryTheory/Monoidal/Mon_.lean Modified Mathlib/CategoryTheory/Monoidal/NaturalTransformation.lean +/- def CategoryTheory.monoidalCounit +/- def CategoryTheory.monoidalUnit Modified Mathlib/CategoryTheory/Monoidal/Preadditive.lean Modified Mathlib/CategoryTheory/Monoidal/Rigid/OfEquivalence.lean +/- def CategoryTheory.exactPairingOfFaithful +/- def CategoryTheory.exactPairingOfFullyFaithful +/- def CategoryTheory.hasLeftDualOfEquivalence +/- def CategoryTheory.hasRightDualOfEquivalence +/- def CategoryTheory.leftRigidCategoryOfEquivalence +/- def CategoryTheory.rightRigidCategoryOfEquivalence +/- def CategoryTheory.rigidCategoryOfEquivalence Modified Mathlib/CategoryTheory/Monoidal/Subcategory.lean Modified Mathlib/CategoryTheory/Monoidal/Transport.lean +/- def CategoryTheory.Monoidal.fromInduced Modified Mathlib/CategoryTheory/MorphismProperty.lean Modified Mathlib/CategoryTheory/Pi/Basic.lean Modified Mathlib/CategoryTheory/Preadditive/AdditiveFunctor.lean Modified Mathlib/CategoryTheory/Preadditive/Generator.lean Modified Mathlib/CategoryTheory/Preadditive/Injective.lean +/- theorem CategoryTheory.Adjunction.injective_of_map_injective Modified Mathlib/CategoryTheory/Preadditive/Mat.lean Modified Mathlib/CategoryTheory/Preadditive/Projective.lean +/- theorem CategoryTheory.Adjunction.projective_of_map_projective Modified Mathlib/CategoryTheory/Preadditive/Yoneda/Basic.lean Modified Mathlib/CategoryTheory/Products/Associator.lean Modified Mathlib/CategoryTheory/Products/Basic.lean Modified Mathlib/CategoryTheory/Quotient.lean Modified Mathlib/CategoryTheory/Shift/Basic.lean Modified Mathlib/CategoryTheory/Shift/Induced.lean Modified Mathlib/CategoryTheory/Shift/Localization.lean Modified Mathlib/CategoryTheory/Sigma/Basic.lean Modified Mathlib/CategoryTheory/SingleObj.lean Modified Mathlib/CategoryTheory/Sites/Coherent/ReflectsPrecoherent.lean Modified Mathlib/CategoryTheory/Sites/Coherent/ReflectsPreregular.lean Modified Mathlib/CategoryTheory/Sites/CompatibleSheafification.lean Modified Mathlib/CategoryTheory/Sites/ConcreteSheafification.lean Modified Mathlib/CategoryTheory/Sites/CoverPreserving.lean +/- theorem CategoryTheory.compatiblePreservingOfDownwardsClosed Modified Mathlib/CategoryTheory/Sites/InducedTopology.lean Modified Mathlib/CategoryTheory/Sites/LeftExact.lean Modified Mathlib/CategoryTheory/Sites/Limits.lean Modified Mathlib/CategoryTheory/Sites/Pullback.lean Modified Mathlib/CategoryTheory/Sites/Sheaf.lean Modified Mathlib/CategoryTheory/Sites/SheafOfTypes.lean Modified Mathlib/CategoryTheory/Sites/Sieves.lean +/- def CategoryTheory.Sieve.essSurjFullFunctorGaloisInsertion +/- def CategoryTheory.Sieve.fullyFaithfulFunctorGaloisCoinsertion Modified Mathlib/CategoryTheory/Skeletal.lean Modified Mathlib/CategoryTheory/Subobject/Basic.lean Modified Mathlib/CategoryTheory/Subobject/MonoOver.lean Modified Mathlib/CategoryTheory/Subterminal.lean Modified Mathlib/CategoryTheory/Sums/Associator.lean Modified Mathlib/CategoryTheory/Sums/Basic.lean Modified Mathlib/CategoryTheory/Triangulated/Rotate.lean Modified Mathlib/CategoryTheory/Types.lean Modified Mathlib/CategoryTheory/UnivLE.lean +/- theorem UnivLE.ofEssSurj.{u, Modified Mathlib/CategoryTheory/Whiskering.lean Modified Mathlib/CategoryTheory/WithTerminal.lean Modified Mathlib/CategoryTheory/Yoneda.lean Modified Mathlib/Condensed/Explicit.lean Modified Mathlib/Geometry/RingedSpace/LocallyRingedSpace.lean Modified Mathlib/Geometry/RingedSpace/OpenImmersion.lean Modified Mathlib/Geometry/RingedSpace/SheafedSpace.lean Modified Mathlib/LinearAlgebra/QuadraticForm/QuadraticModuleCat/Monoidal.lean Modified Mathlib/LinearAlgebra/QuadraticForm/QuadraticModuleCat/Symmetric.lean Modified Mathlib/Order/Category/FinBoolAlg.lean Modified Mathlib/Order/Category/Frm.lean Modified Mathlib/Order/Category/Preord.lean Modified Mathlib/RepresentationTheory/Action/Basic.lean Modified Mathlib/RepresentationTheory/Action/Monoidal.lean Modified Mathlib/Topology/Category/CompHaus/Basic.lean Modified Mathlib/Topology/Category/CompHaus/Projective.lean Modified Mathlib/Topology/Category/Compactum.lean +/- theorem compactumToCompHaus.essSurj +/- theorem compactumToCompHaus.faithful +/- def compactumToCompHaus.full Modified Mathlib/Topology/Category/LightProfinite/Basic.lean Modified Mathlib/Topology/Category/Locale.lean Modified Mathlib/Topology/Category/Profinite/Basic.lean Modified Mathlib/Topology/Category/Profinite/Projective.lean Modified Mathlib/Topology/Category/Stonean/Basic.lean Modified Mathlib/Topology/Category/TopCat/Opens.lean Modified Mathlib/Topology/Category/TopCommRingCat.lean Modified Mathlib/Topology/Order/Category/AlexDisc.lean Modified Mathlib/Topology/Sheaves/Abelian.lean Modified Mathlib/Topology/Sheaves/Forget.lean Modified Mathlib/Topology/Sheaves/Functors.lean Modified Mathlib/Topology/Sheaves/Sheaf.lean Modified Mathlib/Topology/Sheaves/SheafCondition/UniqueGluing.lean Modified Mathlib/Topology/Sheaves/Stalks.lean 2024-04-12 14:33:23 eb0a213 feat(AlgebraicGeometry/OpenImmersion): Affine open covers, and refinements of open covers by affine ones (#11947) ESTIMATED CHANGES Modified Mathlib/AlgebraicGeometry/OpenImmersion.lean + def AlgebraicGeometry.Scheme.AffineOpenCover.openCover + structure AlgebraicGeometry.Scheme.AffineOpenCover + def AlgebraicGeometry.Scheme.OpenCover.affineRefinement + def AlgebraicGeometry.Scheme.OpenCover.fromAffineRefinement + def AlgebraicGeometry.Scheme.affineOpenCover + theorem AlgebraicGeometry.Scheme.openCover_affineOpenCover 2024-04-12 13:24:31 3469775 fix: make sure tactics in DefEqTransformations do not reorder hypotheses (#12077) Reported by Damiano Testa [on Zulip](https://leanprover.zulipchat.com/#narrow/stream/113488-general/topic/.60unfold_let.60.20weirdness/near/432757494). The upstream function `Lean.MVarId.changeLocalDecl` should probably be changed to preserve hypothesis order, but for now we add the `Lean.MVarId.changeLocalDecl'` variant. ESTIMATED CHANGES Modified Mathlib/Tactic/DefEqTransformations.lean + def Lean.MVarId.changeLocalDecl' Modified test/DefEqTransformations.lean 2024-04-12 12:56:25 b222407 ci: don't quote the branch name twice (#12085) ESTIMATED CHANGES Modified .github/workflows/nightly_detect_failure.yml 2024-04-12 09:53:20 5565951 ci: correctly look at all the branches (#12081) ESTIMATED CHANGES Modified .github/workflows/nightly_detect_failure.yml 2024-04-12 09:10:21 6888b63 chore: move `FiniteDimensional.trans` higher up the import hierarchy (#12079) @YaelDillies pointed out that the import `Data.Complex.Module → FieldTheory.Tower` brings with it too many things. The only declaration from `FieldTheory.Tower` needed for `Data.Complex.Module` is `FiniteDimensional.trans`, which we can easily move up the import hierarchy (14 imports higher, in fact). So this means we can cut the long pole of Mathlib by up to 13 files. Specific Zulip discussion starts here: https://leanprover.zulipchat.com/#narrow/stream/113488-general/topic/The.20long.20pole.20in.20mathlib/near/432796670 ESTIMATED CHANGES Modified Mathlib/Analysis/RCLike/Lemmas.lean Modified Mathlib/Data/Complex/Module.lean Modified Mathlib/FieldTheory/Tower.lean - theorem FiniteDimensional.trans Modified Mathlib/LinearAlgebra/FiniteDimensional.lean + theorem FiniteDimensional.trans 2024-04-12 08:07:05 66924a0 refactor(LinearAlgebra): replace Submodule.restrictBilinear by BilinForm.restrict (#12045) As discussed in [this thread](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/Next.20steps.20for.20BilinForm), there were 3 different definitions for the restriction of a bilinear form to a subspace. This PR deletes the definition `Submodule.restrictBilinear`, and replaces all its occurrences by the `LinearMap.BilinForm.restrict` one. ESTIMATED CHANGES Modified Mathlib/Algebra/Lie/Killing.lean - theorem LieAlgebra.IsKilling.ker_restrictBilinear_eq_bot_of_isCartanSubalgebra + theorem LieAlgebra.IsKilling.ker_restrict_eq_bot_of_isCartanSubalgebra - theorem LieAlgebra.IsKilling.restrictBilinear_killingForm + theorem LieAlgebra.IsKilling.restrict_killingForm - theorem LieIdeal.restrictBilinear_killingForm + theorem LieIdeal.restrict_killingForm +/- theorem LieModule.traceForm_flip Modified Mathlib/Algebra/Module/Submodule/Bilinear.lean - theorem LinearMap.ker_restrictBilinear_eq_of_codisjoint Modified Mathlib/LinearAlgebra/BilinearForm/Basic.lean Modified Mathlib/LinearAlgebra/BilinearForm/Orthogonal.lean + theorem LinearMap.BilinForm.ker_restrict_eq_of_codisjoint Modified Mathlib/LinearAlgebra/BilinearMap.lean 2024-04-12 03:02:46 0129c03 feat: construction of a presheaf of modules from a family of modules over various rings (#6845) This PR provides constructors for presheaves of modules over a presheaf of rings `R` using families of (bundled or unbundled) modules over `R.obj X` for all `X`. ESTIMATED CHANGES Modified Mathlib/Algebra/Category/ModuleCat/Presheaf.lean + theorem BundledCorePresheafOfModules.restrictionApp_toPresheafOfModules + theorem BundledCorePresheafOfModules.toPresheafOfModules_obj + theorem BundledCorePresheafOfModules.toPresheafOfModules_presheaf_map_apply + structure BundledCorePresheafOfModules + def CorePresheafOfModules.presheaf + def CorePresheafOfModules.toPresheafOfModules + theorem CorePresheafOfModules.toPresheafOfModules_obj + theorem CorePresheafOfModules.toPresheafOfModules_presheaf_map_apply + structure CorePresheafOfModules + def PresheafOfModules.Hom.mk' + theorem PresheafOfModules.Hom.mk'_app + def PresheafOfModules.evaluation + theorem PresheafOfModules.naturality_apply + theorem PresheafOfModules.restrictionApp_apply + theorem PresheafOfModules.restriction_app_comp + theorem PresheafOfModules.restriction_app_id 2024-04-12 00:56:34 a743f61 perf: reduce instance priority of `Complex.instSMulRealComplex` (#12070) See [here](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/simp.20prefers.20CharP.2Ecast_eq_zero.20over.20Nat.2Ecast_zero/near/432760180) on Zulip. We reduce the instance priority of `Complex.instSMulRealComplex` to 90. This leads to a very significant speed-up in two Modular Forms files (and still noticeable speed-ups in some other files). ESTIMATED CHANGES Modified Mathlib/Data/Complex/Basic.lean 2024-04-11 23:08:42 5dd5b45 ci: look at all the branches (#12072) By default, github only returns the first thirty branches from this API, notably excluding any that we're looking for. ESTIMATED CHANGES Modified .github/workflows/nightly_detect_failure.yml 2024-04-11 22:31:21 488eafd chore(Geometry): remove a few porting notes (#12061) In all cases, the original proof fixed itself. ESTIMATED CHANGES Modified Mathlib/Geometry/Manifold/ContMDiff/Product.lean Modified Mathlib/Geometry/Manifold/Diffeomorph.lean Modified Mathlib/Geometry/Manifold/VectorBundle/Basic.lean Modified Mathlib/Geometry/Manifold/VectorBundle/FiberwiseLinear.lean Modified Mathlib/Geometry/Manifold/VectorBundle/Tangent.lean 2024-04-11 20:47:54 8856dfd chore: tidy various files (#12042) ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/Quasispectrum.lean Modified Mathlib/Algebra/Associated.lean Modified Mathlib/Algebra/BigOperators/List/Basic.lean Modified Mathlib/Analysis/SpecialFunctions/Stirling.lean Modified Mathlib/Combinatorics/SimpleGraph/Girth.lean Modified Mathlib/Data/Fin/Basic.lean Modified Mathlib/Data/Int/Bitwise.lean Modified Mathlib/Data/Int/CardIntervalMod.lean Modified Mathlib/Data/Int/Cast/Prod.lean Modified Mathlib/Data/List/Permutation.lean Modified Mathlib/Data/List/Sublists.lean Modified Mathlib/Data/Seq/Parallel.lean Modified Mathlib/Data/Seq/WSeq.lean Modified Mathlib/FieldTheory/SeparableDegree.lean Modified Mathlib/MeasureTheory/Decomposition/RadonNikodym.lean Modified Mathlib/MeasureTheory/MeasurableSpace/Basic.lean Modified Mathlib/Probability/Kernel/Disintegration/CdfToKernel.lean Modified Mathlib/Tactic/Widget/SelectPanelUtils.lean Modified Mathlib/Topology/ContinuousFunction/FunctionalCalculus.lean Modified Mathlib/Topology/ContinuousFunction/NonUnitalFunctionalCalculus.lean Modified Mathlib/Topology/Specialization.lean 2024-04-11 19:59:19 1e53d4f chore: `exact by decide` -> `decide` (#12067) ESTIMATED CHANGES Modified Mathlib/Algebra/Polynomial/Div.lean Modified Mathlib/Data/Nat/Bits.lean Modified Mathlib/Data/Nat/Prime.lean Modified Mathlib/Data/Num/Lemmas.lean Modified Mathlib/FieldTheory/Finite/Basic.lean Modified Mathlib/Init/Data/Bool/Lemmas.lean +/- theorem Bool.bool_iff_false Modified Mathlib/NumberTheory/PythagoreanTriples.lean Modified Mathlib/NumberTheory/Zsqrtd/QuadraticReciprocity.lean Modified Mathlib/Order/Compare.lean Modified Mathlib/RingTheory/DiscreteValuationRing/Basic.lean 2024-04-11 19:11:26 aa0ec8a feat: add `Subalgebra.finite_(bot|sup)` (#12025) ... and deprecated `Subalgebra.finiteDimensional_(bot|sup)` ESTIMATED CHANGES Modified Mathlib/FieldTheory/Adjoin.lean Modified Mathlib/LinearAlgebra/FiniteDimensional.lean + theorem Subalgebra.finiteDimensional_bot Modified Mathlib/RingTheory/Finiteness.lean Modified Mathlib/RingTheory/TensorProduct/Basic.lean + theorem Subalgebra.finite_sup 2024-04-11 15:03:02 30582ae ci: don't parse lean-toolchain twice (#12064) For some reason that is not clear to me, the current code ends up with the empty string for the version. Easier than figuring out why that is, is using the environment variable that we'd set up earlier in this job. ESTIMATED CHANGES Modified .github/workflows/nightly_detect_failure.yml 2024-04-11 15:03:01 f63c542 ci: update actions/checkout to v4 (#12062) This moves us off node 16, which is deprecated (https://github.blog/changelog/2023-09-22-github-actions-transitioning-from-node-16-to-node-20/). ESTIMATED CHANGES Modified .github/workflows/actionlint.yml Modified .github/workflows/detect_sha_changes.yml Modified .github/workflows/lint_and_suggest_pr.yml Modified .github/workflows/nightly_bump_toolchain.yml Modified .github/workflows/nightly_detect_failure.yml Modified .github/workflows/nightly_merge_master.yml 2024-04-11 15:03:00 b3857f0 chore: remove some porting notes in sphere (#12059) Found after examining the bug fixes in #12054, although these improvements are unrelated to the test PR. ESTIMATED CHANGES Modified Mathlib/Geometry/Manifold/Instances/Sphere.lean 2024-04-11 14:39:08 b5824f9 ci: correct the speed center URL (#12066) Per @nomeata. ESTIMATED CHANGES Modified .github/workflows/nightly_detect_failure.yml 2024-04-11 13:28:24 70601d4 chore: add @kbuzzard as maintainer in README.md (#12063) ESTIMATED CHANGES Modified README.md 2024-04-11 09:50:36 868a04f feat(Limits/TypesFiltered): remove existence of colimit assumption (#12034) Removes a `HasColimit F` assumption in recognition of filtered colimits in category of types. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Limits/TypesFiltered.lean 2024-04-11 07:48:37 37c70ac refactor(RingTheory/IntegrallyClosed): generalize to `IsIntegrallyClosedIn` (#7857) This refactor adds a new definition `IsIntegrallyClosedIn R A` equal to `IsIntegralClosure R A A`, and redefines `IsIntegrallyClosed R` to equal `IsIntegrallyClosed R (FractionRing A)`. This should make it possible and convenient to generalize away from the fraction fields. This also more closely approximates the conventions of the Stacks project. This is a second attempt at the refactor, after #7116 which was much more messy. ESTIMATED CHANGES Modified Mathlib/Algebra/GCDMonoid/IntegrallyClosed.lean Modified Mathlib/RingTheory/DedekindDomain/Basic.lean Modified Mathlib/RingTheory/DedekindDomain/Dvr.lean Modified Mathlib/RingTheory/DedekindDomain/Ideal.lean Modified Mathlib/RingTheory/IntegralClosure.lean + theorem IsIntegralClosure.tower_top Modified Mathlib/RingTheory/IntegrallyClosed.lean + theorem AlgEquiv.isIntegrallyClosedIn + theorem AlgHom.isIntegrallyClosedIn + theorem IsIntegralClosure.of_isIntegrallyClosedIn + theorem IsIntegrallyClosed.algebraMap_eq_of_integral +/- theorem IsIntegrallyClosed.integralClosure_eq_bot_iff + theorem IsIntegrallyClosedIn.algebraMap_eq_of_integral + theorem IsIntegrallyClosedIn.exists_algebraMap_eq_of_isIntegral_pow + theorem IsIntegrallyClosedIn.exists_algebraMap_eq_of_pow_mem_subalgebra + theorem IsIntegrallyClosedIn.integralClosure_eq_bot + theorem IsIntegrallyClosedIn.integralClosure_eq_bot_iff + theorem IsIntegrallyClosedIn.isIntegral_iff + theorem IsIntegrallyClosedIn.of_isIntegralClosure + theorem isIntegrallyClosedIn_iff + theorem isIntegrallyClosed_iff_isIntegrallyClosedIn Modified Mathlib/RingTheory/Polynomial/RationalRoot.lean 2024-04-11 03:01:56 9ebc624 Typo correction in CantorSet.lean (#12047) Correcting a typo in a doc-string of CantorSet.lean where the function description did not match the formal specification. ESTIMATED CHANGES Modified Mathlib/Topology/Instances/CantorSet.lean 2024-04-11 00:22:07 678a5c7 doc: convert many comments into doc comments (#11940) All of these changes appear to be oversights to me. ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/Basic.lean Modified Mathlib/Algebra/Group/AddChar.lean Modified Mathlib/Algebra/Group/Defs.lean Modified Mathlib/Algebra/HierarchyDesign.lean Modified Mathlib/Algebra/Module/Pi.lean Modified Mathlib/Algebra/Ring/Defs.lean Modified Mathlib/Analysis/Convex/Exposed.lean Modified Mathlib/Analysis/Convex/SpecificFunctions/Basic.lean Modified Mathlib/Analysis/Fourier/FourierTransform.lean Modified Mathlib/Analysis/Normed/Ring/Seminorm.lean Modified Mathlib/Analysis/NormedSpace/Unitization.lean Modified Mathlib/CategoryTheory/Galois/Decomposition.lean Modified Mathlib/Combinatorics/SimpleGraph/Ends/Defs.lean Modified Mathlib/Data/Fintype/CardEmbedding.lean Modified Mathlib/Data/Matrix/ColumnRowPartitioned.lean Modified Mathlib/LinearAlgebra/FreeModule/Basic.lean Modified Mathlib/Mathport/Notation.lean Modified Mathlib/MeasureTheory/Measure/FiniteMeasure.lean Modified Mathlib/MeasureTheory/Measure/Haar/Quotient.lean Modified Mathlib/MeasureTheory/PiSystem.lean Modified Mathlib/Order/SymmDiff.lean Modified Mathlib/Probability/StrongLaw.lean Modified Mathlib/RingTheory/DedekindDomain/IntegralClosure.lean Modified Mathlib/RingTheory/LittleWedderburn.lean Modified Mathlib/RingTheory/RootsOfUnity/Minpoly.lean Modified Mathlib/RingTheory/SimpleModule.lean Modified Mathlib/RingTheory/WittVector/WittPolynomial.lean Modified Mathlib/Tactic/IrreducibleDef.lean Modified Mathlib/Topology/Algebra/InfiniteSum/Ring.lean Modified Mathlib/Topology/Algebra/Order/Compact.lean Modified Mathlib/Topology/Compactness/Paracompact.lean Modified Mathlib/Topology/Connected/Basic.lean Modified Mathlib/Topology/MetricSpace/GromovHausdorff.lean Modified Mathlib/Topology/MetricSpace/GromovHausdorffRealized.lean Modified Mathlib/Topology/Order/Category/FrameAdjunction.lean Modified Mathlib/Topology/PartialHomeomorph.lean 2024-04-10 23:13:13 1fa845d doc(Order/Heyting/Basic): convert comments to doc comments (#11941) And move one section comment above the section. I'm open to deleting these comments instead, if they are considered sufficiently low-value. ESTIMATED CHANGES Modified Mathlib/Order/Heyting/Basic.lean 2024-04-10 21:31:18 bf1fcf3 ci: update liskin/gh-problem-matcher-wrap to v3 (#12029) This moves us off node 16, which is deprecated (https://github.blog/changelog/2023-09-22-github-actions-transitioning-from-node-16-to-node-20/). ESTIMATED CHANGES Modified .github/workflows/bors.yml Modified .github/workflows/build.yml Modified .github/workflows/build.yml.in Modified .github/workflows/build_fork.yml 2024-04-10 20:53:40 58eba78 feat(Multilinear/Topology): define topology on `ContinuousMultilinearMap`s (#10777) Define `UniformSpace` instance that doesn't depend on the norm, replace uniformity in the `SeminormedAddCommGroup` instance. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Analysis/NormedSpace/HahnBanach/SeparatingDual.lean Modified Mathlib/Analysis/NormedSpace/Multilinear/Basic.lean - def ContinuousMultilinearMap.apply - theorem ContinuousMultilinearMap.apply_apply - theorem ContinuousMultilinearMap.continuous_eval_left - theorem ContinuousMultilinearMap.hasSum_eval - theorem ContinuousMultilinearMap.tsum_eval Added Mathlib/Topology/Algebra/Module/Multilinear/Topology.lean + def ContinuousMultilinearMap.apply + theorem ContinuousMultilinearMap.apply_apply + theorem ContinuousMultilinearMap.continuous_coe_fun + theorem ContinuousMultilinearMap.continuous_eval_const + theorem ContinuousMultilinearMap.embedding_toUniformOnFun + theorem ContinuousMultilinearMap.hasBasis_nhds_zero + theorem ContinuousMultilinearMap.hasBasis_nhds_zero_of_basis + theorem ContinuousMultilinearMap.hasSum_eval + def ContinuousMultilinearMap.toUniformOnFun + theorem ContinuousMultilinearMap.toUniformOnFun_toFun + theorem ContinuousMultilinearMap.tsum_eval + theorem ContinuousMultilinearMap.uniformContinuous_coe_fun + theorem ContinuousMultilinearMap.uniformContinuous_eval_const + theorem ContinuousMultilinearMap.uniformEmbedding_toUniformOnFun 2024-04-10 14:09:41 04893a0 ci: nightly_detect_failure: quote secrets.SPEED (#12038) see https://leanprover.zulipchat.com/#narrow/stream/428973-nightly-testing/topic/Status.20update.20bot ESTIMATED CHANGES Modified .github/workflows/nightly_detect_failure.yml 2024-04-10 13:42:45 80ee2df ci: don't use 'return' in github action (#12043) This causes an error: line 3: return: can only `return' from a function or sourced script which means we do report a failure as expected, but in a roundabout way. ESTIMATED CHANGES Modified .github/workflows/bors.yml Modified .github/workflows/build.yml Modified .github/workflows/build.yml.in Modified .github/workflows/build_fork.yml 2024-04-10 12:08:19 9b4cab5 chore(RingTheory/Unramified): move differential properties (#12030) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/RingTheory/Etale/Basic.lean Modified Mathlib/RingTheory/Unramified/Basic.lean - theorem Algebra.FormallyUnramified.iff_subsingleton_kaehlerDifferential Added Mathlib/RingTheory/Unramified/Derivations.lean + theorem Algebra.FormallyUnramified.iff_subsingleton_kaehlerDifferential 2024-04-10 10:42:19 147c3d0 feat: ample sets in real vector spaces (#11344) From the sphere eversion project. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/Convex/AmpleSet.lean + theorem AmpleSet.image + theorem AmpleSet.image_iff + theorem AmpleSet.preimage + theorem AmpleSet.preimage_iff + theorem AmpleSet.union + def AmpleSet + theorem ampleSet_empty + theorem ampleSet_univ Modified Mathlib/LinearAlgebra/AffineSpace/ContinuousAffineEquiv.lean +/- theorem ContinuousAffineEquiv.eq_symm_apply + theorem ContinuousAffineEquiv.image_preimage + theorem ContinuousAffineEquiv.image_symm_image + theorem ContinuousAffineEquiv.preimage_image +/- theorem ContinuousAffineEquiv.symm_apply_eq + theorem ContinuousAffineEquiv.symm_image_image +/- theorem ContinuousAffineEquiv.symm_symm_apply 2024-04-10 09:29:52 510ed4e feat: Ordinal Approximants of the least/greatest fixed point in a complete lattice (#8996) Define ordinal approximants for the least/greatest fixed points of a monotone function in a complete lattice. It is sometimes also called the constructive Knaster-Tarski Theorem, first introduced by Cousot & Cousot in 1979. This implementation is however not constructive. This has a variety of applications in non standard logics and proofs such as quantitative logics or cyclic proofs. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Logic/Function/Basic.lean + theorem Function.not_injective_iff Modified Mathlib/Order/Monotone/Basic.lean + theorem Antitone.eq_of_le_of_le + theorem Monotone.eq_of_le_of_le Added Mathlib/SetTheory/Ordinal/FixedPointApproximants.lean + theorem Cardinal.not_injective_limitation_set + theorem OrdinalApprox.exists_gfpApprox_eq_gfpApprox + theorem OrdinalApprox.exists_lfpApprox_eq_lfpApprox + def OrdinalApprox.gfpApprox + theorem OrdinalApprox.gfpApprox_add_one + theorem OrdinalApprox.gfpApprox_antitone + theorem OrdinalApprox.gfpApprox_eq_of_mem_fixedPoints + theorem OrdinalApprox.gfpApprox_le + theorem OrdinalApprox.gfpApprox_ord_eq_gfp + theorem OrdinalApprox.gfpApprox_ord_mem_fixedPoint + theorem OrdinalApprox.gfp_mem_range_gfpApprox + theorem OrdinalApprox.le_gfpApprox_of_mem_fixedPoints + theorem OrdinalApprox.le_lfpApprox + def OrdinalApprox.lfpApprox + theorem OrdinalApprox.lfpApprox_add_one + theorem OrdinalApprox.lfpApprox_eq_of_mem_fixedPoints + theorem OrdinalApprox.lfpApprox_le_of_mem_fixedPoints + theorem OrdinalApprox.lfpApprox_mem_fixedPoints_of_eq + theorem OrdinalApprox.lfpApprox_monotone + theorem OrdinalApprox.lfpApprox_ord_eq_lfp + theorem OrdinalApprox.lfpApprox_ord_mem_fixedPoint + theorem OrdinalApprox.lfp_mem_range_lfpApprox Modified docs/references.bib 2024-04-10 06:01:55 45d128c chore(List/Basic): golf some proofs (#11996) ESTIMATED CHANGES Modified Mathlib/Data/List/Basic.lean +/- theorem List.sublist_cons_of_sublist 2024-04-10 06:01:54 d699026 doc(Topology,Analysis): fix over-zealous replacement true/false -> True/False (#11994) in doc comments. These are terms of type bool, hence should be (Bool.)true/false. And correct a typo also caused in the same PR. ESTIMATED CHANGES Modified Mathlib/Analysis/BoxIntegral/Partition/Filter.lean Modified Mathlib/Analysis/SpecificLimits/Normed.lean Modified Mathlib/Topology/Category/Profinite/Nobeling.lean 2024-04-10 06:01:53 5649951 chore: rename five lemmas involving mathlib3 names (#11934) ESTIMATED CHANGES Modified Mathlib/Algebra/Lie/Weights/Linear.lean + theorem LieModule.trace_comp_toEndomorphism_weightSpace_eq - theorem LieModule.trace_comp_toEndomorphism_weight_space_eq Modified Mathlib/MeasureTheory/Integral/IntegralEqImproper.lean + theorem MeasureTheory.integrableOn_Ioc_of_intervalIntegral_norm_bounded + theorem MeasureTheory.integrableOn_Ioc_of_intervalIntegral_norm_bounded_left + theorem MeasureTheory.integrableOn_Ioc_of_intervalIntegral_norm_bounded_right - theorem MeasureTheory.integrableOn_Ioc_of_interval_integral_norm_bounded - theorem MeasureTheory.integrableOn_Ioc_of_interval_integral_norm_bounded_left - theorem MeasureTheory.integrableOn_Ioc_of_interval_integral_norm_bounded_right Modified Mathlib/MeasureTheory/Integral/IntervalIntegral.lean Modified Mathlib/MeasureTheory/Measure/Lebesgue/VolumeOfBalls.lean + theorem EuclideanSpace.volume_ball + theorem EuclideanSpace.volume_closedBall - theorem Euclidean_space.volume_ball - theorem Euclidean_space.volume_closedBall 2024-04-10 06:01:52 cbacc65 chore: future-proof proofs in Category/Ring/Limits (#11839) These proofs will become slow after https://github.com/leanprover/lean4/pull/3807, but with these changes there is no regression. 🤷‍♀️ ESTIMATED CHANGES Modified Mathlib/Algebra/Category/Ring/Limits.lean 2024-04-10 06:01:51 6201c94 chore(Data/Set/Function): add sections to group related material (#11675) - delay on open statement until actually needed - note that two lemmas seem mis-placed - use some namespaces ESTIMATED CHANGES Modified Mathlib/Data/Set/Function.lean +/- theorem Set.InvOn.bijOn +/- theorem Set.InvOn.comp +/- theorem Set.InvOn.mono +/- theorem Set.InvOn.symm +/- theorem Set.LeftInvOn.comp +/- theorem Set.LeftInvOn.congr_left +/- theorem Set.LeftInvOn.congr_right +/- theorem Set.LeftInvOn.eq +/- theorem Set.LeftInvOn.eqOn +/- theorem Set.LeftInvOn.image_image' +/- theorem Set.LeftInvOn.image_image +/- theorem Set.LeftInvOn.image_inter' +/- theorem Set.LeftInvOn.image_inter +/- theorem Set.LeftInvOn.injOn +/- theorem Set.LeftInvOn.mapsTo +/- theorem Set.LeftInvOn.mono +/- theorem Set.LeftInvOn.rightInvOn_image +/- theorem Set.LeftInvOn.surjOn +/- theorem Set.RightInvOn.comp +/- theorem Set.RightInvOn.congr_left +/- theorem Set.RightInvOn.congr_right +/- theorem Set.RightInvOn.eq +/- theorem Set.RightInvOn.eqOn +/- theorem Set.RightInvOn.mapsTo +/- theorem Set.RightInvOn.mono +/- theorem Set.RightInvOn.surjOn +/- theorem Set.invOn_id +/- theorem Set.leftInvOn_id +/- theorem Set.rightInvOn_id 2024-04-10 05:24:40 2bce71f chore: simplify proof of IsPiSystem.comap (#11052) Uses `Set.not_nonempty_iff_eq_empty` to shorten the proof of `IsPiSystem.comap`. ESTIMATED CHANGES Modified Mathlib/MeasureTheory/PiSystem.lean 2024-04-09 23:35:59 09ed129 chore(CategoryTheory): remove some unnecessary lemmas about final/initial functors (#12024) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Limits/Final.lean - theorem CategoryTheory.Functor.Final.colimit_pre_is_iso_aux - theorem CategoryTheory.Functor.Initial.limit_pre_is_iso_aux Modified Mathlib/CategoryTheory/Limits/IsLimit.lean 2024-04-09 23:09:34 3fe6813 perf(Algebra.Category.ModuleCat.ChangeOfRings): some speedups (#11545) Squeezing dsimps/aesop_cats etc. ESTIMATED CHANGES Modified Mathlib/Algebra/Category/ModuleCat/ChangeOfRings.lean 2024-04-09 21:45:27 65cbbe7 chore(Algebra.Group.UniqueProds): remove private instance (#12037) This is an `inferInstance`. Removing it doesn't seem to cause issues. Currently, it causes elaboration issues [Zulip](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/Odd.20behaviour.20with.20inferring.20instances.2E). ESTIMATED CHANGES Modified Mathlib/Algebra/Group/UniqueProds.lean 2024-04-09 20:56:14 6144777 feat: add induction principle for `elementalStarAlgebra` (#12039) ESTIMATED CHANGES Modified Mathlib/RingTheory/Adjoin/Basic.lean + theorem Algebra.adjoin_induction'' Modified Mathlib/Topology/Algebra/StarSubalgebra.lean + theorem elementalStarAlgebra.induction_on + theorem elementalStarAlgebra.isClosed 2024-04-09 19:25:47 b5b45d3 feat: add the Loewner partial order on continuous linear maps on a Hilbert space (#12026) The (Loewner) partial order on continuous linear maps on a Hilbert space determined by `f ≤ g` if and only if `g - f` is a positive linear map (in the sense of `ContinuousLinearMap.IsPositive`). With this partial order, the continuous linear maps form a `StarOrderedRing`. ESTIMATED CHANGES Modified Mathlib/Analysis/InnerProductSpace/Positive.lean + theorem ContinuousLinearMap.le_def + theorem ContinuousLinearMap.nonneg_iff_isPositive 2024-04-09 08:07:34 e8433a6 feat: big Zariski is subcanonical (#12028) ESTIMATED CHANGES Modified Mathlib/AlgebraicGeometry/Sites/BigZariski.lean + theorem AlgebraicGeometry.Scheme.subcanonical_zariskiTopology 2024-04-09 06:29:53 aee79f6 refactor(LinearAlgebra/BilinForm): Remove `structure BilinForm` from Mathlib, migrate all of `_root_.BilinForm` to `LinearMap.BilinForm` (#11278) Remove `structure BilinForm` from `LinearAlgebra/BilinearForm/Basic` and migrate all of `_root_.BilinForm` to `LinearMap.BilinForm` Closes: #10553 This isn't the end of the story, as there's still a lot of overlap between `LinearAlgebra/BilinearForm` and `LinearAlgebra/SesquilinearForm` but that can be sorted out in subsequent PRs. Supersedes: - #11057 - #11032 - #10432 - #10422 ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/BilinearForm/Basic.lean - theorem BilinForm.add_apply - theorem BilinForm.add_left - theorem BilinForm.add_right - def BilinForm.coeFnAddMonoidHom - theorem BilinForm.coeFn_congr - theorem BilinForm.coeFn_mk - theorem BilinForm.coe_add - theorem BilinForm.coe_injective - theorem BilinForm.coe_neg - theorem BilinForm.coe_smul - theorem BilinForm.coe_sub - theorem BilinForm.coe_zero - theorem BilinForm.congr_fun - theorem BilinForm.ext - theorem BilinForm.ext_iff - def BilinForm.flipHom - def BilinForm.flipHomAux - theorem BilinForm.flip_apply - theorem BilinForm.flip_flip - theorem BilinForm.flip_flip_aux - theorem BilinForm.neg_apply - theorem BilinForm.neg_left - theorem BilinForm.neg_right - def BilinForm.restrict - theorem BilinForm.smul_apply - theorem BilinForm.smul_left - theorem BilinForm.smul_left_of_tower - theorem BilinForm.smul_right - theorem BilinForm.smul_right_of_tower - theorem BilinForm.sub_apply - theorem BilinForm.sub_left - theorem BilinForm.sub_right - theorem BilinForm.zero_apply - theorem BilinForm.zero_left - theorem BilinForm.zero_right - structure BilinForm + theorem LinearMap.BilinForm.add_apply + theorem LinearMap.BilinForm.add_left + theorem LinearMap.BilinForm.add_right + def LinearMap.BilinForm.coeFnAddMonoidHom + theorem LinearMap.BilinForm.coeFn_congr + theorem LinearMap.BilinForm.coe_add + theorem LinearMap.BilinForm.coe_injective + theorem LinearMap.BilinForm.coe_neg + theorem LinearMap.BilinForm.coe_sub + theorem LinearMap.BilinForm.coe_zero + theorem LinearMap.BilinForm.congr_fun + theorem LinearMap.BilinForm.ext + theorem LinearMap.BilinForm.ext_iff + def LinearMap.BilinForm.flipHom + def LinearMap.BilinForm.flipHomAux + theorem LinearMap.BilinForm.flip_apply + theorem LinearMap.BilinForm.flip_flip + theorem LinearMap.BilinForm.flip_flip_aux + theorem LinearMap.BilinForm.neg_apply + theorem LinearMap.BilinForm.neg_left + theorem LinearMap.BilinForm.neg_right + def LinearMap.BilinForm.restrict + theorem LinearMap.BilinForm.smul_left + theorem LinearMap.BilinForm.smul_left_of_tower + theorem LinearMap.BilinForm.smul_right + theorem LinearMap.BilinForm.smul_right_of_tower + theorem LinearMap.BilinForm.sub_apply + theorem LinearMap.BilinForm.sub_left + theorem LinearMap.BilinForm.sub_right + theorem LinearMap.BilinForm.zero_apply + theorem LinearMap.BilinForm.zero_left + theorem LinearMap.BilinForm.zero_right Modified Mathlib/LinearAlgebra/BilinearForm/DualLattice.lean - def BilinForm.dualSubmodule - def BilinForm.dualSubmoduleParing - theorem BilinForm.dualSubmoduleParing_spec - def BilinForm.dualSubmoduleToDual - theorem BilinForm.dualSubmoduleToDual_injective - theorem BilinForm.dualSubmodule_dualSubmodule_flip_of_basis - theorem BilinForm.dualSubmodule_dualSubmodule_of_basis - theorem BilinForm.dualSubmodule_flip_dualSubmodule_of_basis - theorem BilinForm.dualSubmodule_span_of_basis - theorem BilinForm.le_flip_dualSubmodule - theorem BilinForm.mem_dualSubmodule + def LinearMap.BilinForm.dualSubmodule + def LinearMap.BilinForm.dualSubmoduleParing + theorem LinearMap.BilinForm.dualSubmoduleParing_spec + def LinearMap.BilinForm.dualSubmoduleToDual + theorem LinearMap.BilinForm.dualSubmoduleToDual_injective + theorem LinearMap.BilinForm.dualSubmodule_dualSubmodule_flip_of_basis + theorem LinearMap.BilinForm.dualSubmodule_dualSubmodule_of_basis + theorem LinearMap.BilinForm.dualSubmodule_flip_dualSubmodule_of_basis + theorem LinearMap.BilinForm.dualSubmodule_span_of_basis + theorem LinearMap.BilinForm.le_flip_dualSubmodule + theorem LinearMap.BilinForm.mem_dualSubmodule Modified Mathlib/LinearAlgebra/BilinearForm/Hom.lean - def BilinForm.comp - def BilinForm.compLeft - theorem BilinForm.compLeft_apply - theorem BilinForm.compLeft_compRight - theorem BilinForm.compLeft_id - def BilinForm.compRight - theorem BilinForm.compRight_apply - theorem BilinForm.compRight_compLeft - theorem BilinForm.compRight_id - theorem BilinForm.comp_apply - theorem BilinForm.comp_comp - theorem BilinForm.comp_congr - theorem BilinForm.comp_id_id - theorem BilinForm.comp_id_left - theorem BilinForm.comp_id_right - theorem BilinForm.comp_inj - def BilinForm.congr - theorem BilinForm.congr_apply - theorem BilinForm.congr_comp - theorem BilinForm.congr_congr - theorem BilinForm.congr_refl - theorem BilinForm.congr_symm - theorem BilinForm.congr_trans - theorem BilinForm.ext_basis - def BilinForm.linMulLin - theorem BilinForm.linMulLin_apply - theorem BilinForm.linMulLin_comp - theorem BilinForm.linMulLin_compLeft - theorem BilinForm.linMulLin_compRight - theorem BilinForm.sum_apply - theorem BilinForm.sum_left - theorem BilinForm.sum_repr_mul_repr_mul - theorem BilinForm.sum_right - theorem BilinForm.toLin'Flip_apply - theorem BilinForm.toLin'_apply - def BilinForm.toLin - def BilinForm.toLinHom - def BilinForm.toLinHomAux₁ - def BilinForm.toLinHomAux₂ - def BilinForm.toLinHomFlip +/- theorem BilinForm.toLin_apply + def LinearMap.BilinForm.comp + def LinearMap.BilinForm.compLeft + theorem LinearMap.BilinForm.compLeft_apply + theorem LinearMap.BilinForm.compLeft_compRight + theorem LinearMap.BilinForm.compLeft_id + def LinearMap.BilinForm.compRight + theorem LinearMap.BilinForm.compRight_apply + theorem LinearMap.BilinForm.compRight_compLeft + theorem LinearMap.BilinForm.compRight_id + theorem LinearMap.BilinForm.comp_apply + theorem LinearMap.BilinForm.comp_comp + theorem LinearMap.BilinForm.comp_congr + theorem LinearMap.BilinForm.comp_id_id + theorem LinearMap.BilinForm.comp_id_left + theorem LinearMap.BilinForm.comp_id_right + theorem LinearMap.BilinForm.comp_inj + def LinearMap.BilinForm.congr + theorem LinearMap.BilinForm.congr_apply + theorem LinearMap.BilinForm.congr_comp + theorem LinearMap.BilinForm.congr_congr + theorem LinearMap.BilinForm.congr_refl + theorem LinearMap.BilinForm.congr_symm + theorem LinearMap.BilinForm.congr_trans + theorem LinearMap.BilinForm.ext_basis + def LinearMap.BilinForm.linMulLin + theorem LinearMap.BilinForm.linMulLin_apply + theorem LinearMap.BilinForm.linMulLin_comp + theorem LinearMap.BilinForm.linMulLin_compLeft + theorem LinearMap.BilinForm.linMulLin_compRight + theorem LinearMap.BilinForm.sum_apply + theorem LinearMap.BilinForm.sum_left + theorem LinearMap.BilinForm.sum_repr_mul_repr_mul + theorem LinearMap.BilinForm.sum_right + theorem LinearMap.BilinForm.toLin'Flip_apply + theorem LinearMap.BilinForm.toLin'_apply + def LinearMap.BilinForm.toLin + def LinearMap.BilinForm.toLinHom + def LinearMap.BilinForm.toLinHomAux₁ + def LinearMap.BilinForm.toLinHomAux₂ + def LinearMap.BilinForm.toLinHomFlip +/- def LinearMap.compBilinForm +/- def LinearMap.toBilinAux Modified Mathlib/LinearAlgebra/BilinearForm/Orthogonal.lean - theorem BilinForm.IsAlt.ortho_comm - def BilinForm.IsOrtho - theorem BilinForm.IsRefl.ortho_comm - theorem BilinForm.IsSymm.ortho_comm - theorem BilinForm.finrank_add_finrank_orthogonal - theorem BilinForm.iIsOrtho.nondegenerate_iff_not_isOrtho_basis_self - theorem BilinForm.iIsOrtho.not_isOrtho_basis_self_of_nondegenerate - def BilinForm.iIsOrtho - theorem BilinForm.iIsOrtho_def - theorem BilinForm.isCompl_span_singleton_orthogonal - theorem BilinForm.isOrtho_def - theorem BilinForm.isOrtho_smul_left - theorem BilinForm.isOrtho_smul_right - theorem BilinForm.isOrtho_zero_left - theorem BilinForm.isOrtho_zero_right - theorem BilinForm.le_orthogonal_orthogonal - theorem BilinForm.linearIndependent_of_iIsOrtho - theorem BilinForm.mem_orthogonal_iff - theorem BilinForm.ne_zero_of_not_isOrtho_self - theorem BilinForm.nondegenerateRestrictOfDisjointOrthogonal - def BilinForm.orthogonal - theorem BilinForm.orthogonal_le - theorem BilinForm.orthogonal_span_singleton_eq_toLin_ker - theorem BilinForm.restrictOrthogonalSpanSingletonNondegenerate - theorem BilinForm.restrict_nondegenerate_iff_isCompl_orthogonal - theorem BilinForm.restrict_nondegenerate_of_isCompl_orthogonal - theorem BilinForm.span_singleton_inf_orthogonal_eq_bot - theorem BilinForm.span_singleton_sup_orthogonal_eq_top - theorem BilinForm.toLin_restrict_ker_eq_inf_orthogonal - theorem BilinForm.toLin_restrict_range_dualCoannihilator_eq_orthogonal + theorem LinearMap.BilinForm.IsAlt.ortho_comm + def LinearMap.BilinForm.IsOrtho + theorem LinearMap.BilinForm.IsRefl.ortho_comm + theorem LinearMap.BilinForm.IsSymm.ortho_comm + theorem LinearMap.BilinForm.finrank_add_finrank_orthogonal + theorem LinearMap.BilinForm.iIsOrtho.nondegenerate_iff_not_isOrtho_basis_self + theorem LinearMap.BilinForm.iIsOrtho.not_isOrtho_basis_self_of_nondegenerate + def LinearMap.BilinForm.iIsOrtho + theorem LinearMap.BilinForm.iIsOrtho_def + theorem LinearMap.BilinForm.isCompl_span_singleton_orthogonal + theorem LinearMap.BilinForm.isOrtho_def + theorem LinearMap.BilinForm.isOrtho_smul_left + theorem LinearMap.BilinForm.isOrtho_smul_right + theorem LinearMap.BilinForm.isOrtho_zero_left + theorem LinearMap.BilinForm.isOrtho_zero_right + theorem LinearMap.BilinForm.le_orthogonal_orthogonal + theorem LinearMap.BilinForm.linearIndependent_of_iIsOrtho + theorem LinearMap.BilinForm.mem_orthogonal_iff + theorem LinearMap.BilinForm.ne_zero_of_not_isOrtho_self + theorem LinearMap.BilinForm.nondegenerateRestrictOfDisjointOrthogonal + def LinearMap.BilinForm.orthogonal + theorem LinearMap.BilinForm.orthogonal_le + theorem LinearMap.BilinForm.orthogonal_span_singleton_eq_toLin_ker + theorem LinearMap.BilinForm.restrictOrthogonalSpanSingletonNondegenerate + theorem LinearMap.BilinForm.restrict_nondegenerate_iff_isCompl_orthogonal + theorem LinearMap.BilinForm.restrict_nondegenerate_of_isCompl_orthogonal + theorem LinearMap.BilinForm.span_singleton_inf_orthogonal_eq_bot + theorem LinearMap.BilinForm.span_singleton_sup_orthogonal_eq_top + theorem LinearMap.BilinForm.toLin_restrict_ker_eq_inf_orthogonal + theorem LinearMap.BilinForm.toLin_restrict_range_dualCoannihilator_eq_orthogonal Modified Mathlib/LinearAlgebra/BilinearForm/Properties.lean - theorem BilinForm.IsAdjointPair.add - theorem BilinForm.IsAdjointPair.comp - theorem BilinForm.IsAdjointPair.eq - theorem BilinForm.IsAdjointPair.mul - theorem BilinForm.IsAdjointPair.smul - theorem BilinForm.IsAdjointPair.sub - def BilinForm.IsAdjointPair - theorem BilinForm.IsAlt.isRefl - theorem BilinForm.IsAlt.neg_eq - theorem BilinForm.IsAlt.self_eq_zero - def BilinForm.IsAlt - def BilinForm.IsPairSelfAdjoint - theorem BilinForm.IsRefl.eq_zero - def BilinForm.IsRefl - def BilinForm.IsSelfAdjoint - def BilinForm.IsSkewAdjoint - theorem BilinForm.IsSymm.isRefl - theorem BilinForm.IsSymm.restrict - def BilinForm.IsSymm - theorem BilinForm.Nondegenerate.congr - theorem BilinForm.Nondegenerate.flip - theorem BilinForm.Nondegenerate.ker_eq_bot - theorem BilinForm.Nondegenerate.ne_zero - def BilinForm.Nondegenerate - theorem BilinForm.apply_dualBasis_left - theorem BilinForm.apply_dualBasis_right - theorem BilinForm.compLeft_injective - theorem BilinForm.comp_symmCompOfNondegenerate_apply - theorem BilinForm.dualBasis_dualBasis - theorem BilinForm.dualBasis_dualBasis_flip - theorem BilinForm.dualBasis_flip_dualBasis - theorem BilinForm.dualBasis_repr_apply - theorem BilinForm.isAdjointPairLeftAdjointOfNondegenerate - theorem BilinForm.isAdjointPair_id - theorem BilinForm.isAdjointPair_iff_compLeft_eq_compRight - theorem BilinForm.isAdjointPair_iff_eq_of_nondegenerate - theorem BilinForm.isAdjointPair_unique_of_nondegenerate - theorem BilinForm.isAdjointPair_zero - theorem BilinForm.isAlt_neg - theorem BilinForm.isAlt_zero - def BilinForm.isPairSelfAdjointSubmodule - theorem BilinForm.isPairSelfAdjoint_equiv - theorem BilinForm.isRefl_neg - theorem BilinForm.isRefl_zero - theorem BilinForm.isSkewAdjoint_iff_neg_self_adjoint - theorem BilinForm.isSymm_iff_flip - theorem BilinForm.isSymm_neg - theorem BilinForm.isSymm_zero - theorem BilinForm.mem_isPairSelfAdjointSubmodule - theorem BilinForm.mem_selfAdjointSubmodule - theorem BilinForm.mem_skewAdjointSubmodule - theorem BilinForm.nonDegenerateFlip_iff - theorem BilinForm.nondegenerate_congr_iff - theorem BilinForm.nondegenerate_iff_ker_eq_bot - theorem BilinForm.not_nondegenerate_zero - def BilinForm.selfAdjointSubmodule - def BilinForm.skewAdjointSubmodule - theorem BilinForm.symmCompOfNondegenerate_left_apply - theorem BilinForm.toDual_def + theorem LinearMap.BilinForm.IsAdjointPair.add + theorem LinearMap.BilinForm.IsAdjointPair.comp + theorem LinearMap.BilinForm.IsAdjointPair.eq + theorem LinearMap.BilinForm.IsAdjointPair.mul + theorem LinearMap.BilinForm.IsAdjointPair.smul + theorem LinearMap.BilinForm.IsAdjointPair.sub + def LinearMap.BilinForm.IsAdjointPair + theorem LinearMap.BilinForm.IsAlt.isRefl + theorem LinearMap.BilinForm.IsAlt.neg_eq + theorem LinearMap.BilinForm.IsAlt.self_eq_zero + def LinearMap.BilinForm.IsAlt + def LinearMap.BilinForm.IsPairSelfAdjoint + theorem LinearMap.BilinForm.IsRefl.eq_zero + def LinearMap.BilinForm.IsRefl + def LinearMap.BilinForm.IsSelfAdjoint + def LinearMap.BilinForm.IsSkewAdjoint + theorem LinearMap.BilinForm.IsSymm.isRefl + theorem LinearMap.BilinForm.IsSymm.restrict + def LinearMap.BilinForm.IsSymm + theorem LinearMap.BilinForm.Nondegenerate.congr + theorem LinearMap.BilinForm.Nondegenerate.flip + theorem LinearMap.BilinForm.Nondegenerate.ker_eq_bot + theorem LinearMap.BilinForm.Nondegenerate.ne_zero + def LinearMap.BilinForm.Nondegenerate + theorem LinearMap.BilinForm.apply_dualBasis_left + theorem LinearMap.BilinForm.apply_dualBasis_right + theorem LinearMap.BilinForm.compLeft_injective + theorem LinearMap.BilinForm.comp_symmCompOfNondegenerate_apply + theorem LinearMap.BilinForm.dualBasis_dualBasis + theorem LinearMap.BilinForm.dualBasis_dualBasis_flip + theorem LinearMap.BilinForm.dualBasis_flip_dualBasis + theorem LinearMap.BilinForm.dualBasis_repr_apply + theorem LinearMap.BilinForm.isAdjointPairLeftAdjointOfNondegenerate + theorem LinearMap.BilinForm.isAdjointPair_id + theorem LinearMap.BilinForm.isAdjointPair_iff_compLeft_eq_compRight + theorem LinearMap.BilinForm.isAdjointPair_iff_eq_of_nondegenerate + theorem LinearMap.BilinForm.isAdjointPair_unique_of_nondegenerate + theorem LinearMap.BilinForm.isAdjointPair_zero + theorem LinearMap.BilinForm.isAlt_neg + theorem LinearMap.BilinForm.isAlt_zero + def LinearMap.BilinForm.isPairSelfAdjointSubmodule + theorem LinearMap.BilinForm.isPairSelfAdjoint_equiv + theorem LinearMap.BilinForm.isRefl_neg + theorem LinearMap.BilinForm.isRefl_zero + theorem LinearMap.BilinForm.isSkewAdjoint_iff_neg_self_adjoint + theorem LinearMap.BilinForm.isSymm_iff_flip + theorem LinearMap.BilinForm.isSymm_neg + theorem LinearMap.BilinForm.isSymm_zero + theorem LinearMap.BilinForm.mem_isPairSelfAdjointSubmodule + theorem LinearMap.BilinForm.mem_selfAdjointSubmodule + theorem LinearMap.BilinForm.mem_skewAdjointSubmodule + theorem LinearMap.BilinForm.nonDegenerateFlip_iff + theorem LinearMap.BilinForm.nondegenerate_congr_iff + theorem LinearMap.BilinForm.nondegenerate_iff_ker_eq_bot + theorem LinearMap.BilinForm.not_nondegenerate_zero + def LinearMap.BilinForm.selfAdjointSubmodule + def LinearMap.BilinForm.skewAdjointSubmodule + theorem LinearMap.BilinForm.symmCompOfNondegenerate_left_apply + theorem LinearMap.BilinForm.toDual_def Modified Mathlib/LinearAlgebra/Matrix/BilinearForm.lean - theorem BilinForm.Nondegenerate.toMatrix' - theorem BilinForm.Nondegenerate.toMatrix - theorem BilinForm.mul_toMatrix' - theorem BilinForm.mul_toMatrix'_mul - theorem BilinForm.nondegenerate_iff_det_ne_zero - theorem BilinForm.nondegenerate_of_det_ne_zero - theorem BilinForm.nondegenerate_toBilin'_iff_det_ne_zero - theorem BilinForm.nondegenerate_toBilin'_of_det_ne_zero' - theorem BilinForm.nondegenerate_toMatrix'_iff - theorem BilinForm.nondegenerate_toMatrix_iff - def BilinForm.toMatrix' - theorem BilinForm.toMatrix'_apply - theorem BilinForm.toMatrix'_comp - theorem BilinForm.toMatrix'_compLeft - theorem BilinForm.toMatrix'_compRight - theorem BilinForm.toMatrix'_mul - theorem BilinForm.toMatrix'_symm - theorem BilinForm.toMatrix'_toBilin' - theorem BilinForm.toMatrixAux_apply - theorem BilinForm.toMatrixAux_stdBasis + theorem LinearMap.BilinForm.Nondegenerate.toMatrix' + theorem LinearMap.BilinForm.Nondegenerate.toMatrix + theorem LinearMap.BilinForm.mul_toMatrix' + theorem LinearMap.BilinForm.mul_toMatrix'_mul + theorem LinearMap.BilinForm.nondegenerate_iff_det_ne_zero + theorem LinearMap.BilinForm.nondegenerate_of_det_ne_zero + theorem LinearMap.BilinForm.nondegenerate_toBilin'_iff_det_ne_zero + theorem LinearMap.BilinForm.nondegenerate_toBilin'_of_det_ne_zero' + theorem LinearMap.BilinForm.nondegenerate_toMatrix'_iff + theorem LinearMap.BilinForm.nondegenerate_toMatrix_iff + def LinearMap.BilinForm.toMatrix' + theorem LinearMap.BilinForm.toMatrix'_apply + theorem LinearMap.BilinForm.toMatrix'_comp + theorem LinearMap.BilinForm.toMatrix'_compLeft + theorem LinearMap.BilinForm.toMatrix'_compRight + theorem LinearMap.BilinForm.toMatrix'_mul + theorem LinearMap.BilinForm.toMatrix'_symm + theorem LinearMap.BilinForm.toMatrix'_toBilin' + theorem LinearMap.BilinForm.toMatrixAux_apply + theorem LinearMap.BilinForm.toMatrixAux_stdBasis Modified Mathlib/RingTheory/DedekindDomain/Different.lean Modified Mathlib/RingTheory/DedekindDomain/IntegralClosure.lean Modified Mathlib/RingTheory/Discriminant.lean Modified Mathlib/RingTheory/Trace.lean Modified docs/overview.yaml Modified docs/undergrad.yaml 2024-04-09 03:53:46 5299597 fix: add missing withOverApps (#12022) This fixes the delaborators for sums, products, infimums, and supremums of pi types and matrices. Also adds a missing `whenPPOption getPPNotation` to `Prefunctor.obj`. [Zulip thread](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/delaborator.20for.20Finset.2Esun.20does.20not.20trigger/near/432068318). ESTIMATED CHANGES Modified Mathlib/Algebra/BigOperators/Basic.lean +/- def BigOperators.delabFinsetProd +/- def BigOperators.delabFinsetSum Modified Mathlib/CategoryTheory/Closed/Cartesian.lean +/- def CategoryTheory.exp.delabPrefunctorObjExp Modified Mathlib/CategoryTheory/Monoidal/Category.lean +/- def CategoryTheory.MonoidalCategory.delabTensorUnit Modified Mathlib/LinearAlgebra/Matrix/PosDef.lean Modified Mathlib/Order/SetNotation.lean +/- def iInf_delab +/- def iSup_delab 2024-04-08 23:17:59 76ab9da feat(Algebra/Lie): prove that IsKilling transfers by isomorphisms (#12008) This proves `isKilling_of_equiv`, which states that if a Lie algebra is isomorphic to a Killing Lie algebra, then it is Killing too. This is a step towards the proof that all derivations over a finite dimensional semisimple Lie algebra are inner (see [this thread](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/Derivations.20on.20Lie.20algebras)). Indeed, the proof that I have formalized relies on the fact that such a Lie algebra `L` is isomorphic to `ad(L)`, from which I want to infer that `ad(L)` is Killing. ESTIMATED CHANGES Modified Mathlib/Algebra/Lie/Basic.lean + theorem LieEquiv.map_lie Modified Mathlib/Algebra/Lie/Killing.lean + theorem LieAlgebra.isKilling_of_equiv + theorem LieAlgebra.killingForm_of_equiv_apply + theorem killingForm_apply_apply Modified Mathlib/Algebra/Lie/OfAssociative.lean + theorem LieAlgebra.conj_ad_apply 2024-04-08 22:05:32 258fc2b feat: add `CoeFun` Instance for `PiLp` (#11943) This instance should make things easier to read and avoid defeq abuse. That is, given a term `x : PiLp p α` (or for instance `x : EuclideanSpace 𝕜 n`), we can ensure that Lean interprets this is a function by writing `⇑x`. This shouldn't be a `FunLike` instance because then the coercion `⇑` would get unfolded to `FunLike.coe` instead of `WithLp.equiv`. ESTIMATED CHANGES Modified Mathlib/Analysis/NormedSpace/PiLp.lean 2024-04-08 21:39:22 34ebc9e doc(Topology/Algebra/InfiniteSum/NatInt): mention products (#12019) ESTIMATED CHANGES Modified Mathlib/Topology/Algebra/InfiniteSum/NatInt.lean 2024-04-08 20:05:40 69bf34c feat(Mathlib/LinearAlgebra/DirectSum/Finsupp): tensor products of finsupp sums (#11635) ## Modules * `TensorProduct.finsuppLeft`, the tensor product of `ι →₀ M` and `N` is linearly equivalent to `ι →₀ M ⊗[R] N` * `TensorProduct.finsuppScalarLeft`, the tensor product of `ι →₀ R` and `N` is linearly equivalent to `ι →₀ N` * `TensorProduct.finsuppRight`, the tensor product of `M` and `ι →₀ N` is linearly equivalent to `ι →₀ M ⊗[R] N` * `TensorProduct.finsuppLeft'`, if `M` is an `S`-module, then the tensor product of `ι →₀ M` and `N` is `S`-linearly equivalent to `ι →₀ M ⊗[R] N` This is the first part of PR #10824 which contains three applications of these functions to monoid algebras, polynomials and multivariate polynomials. It has been split because this part is reasonably sound, while the three other files are more like propositions. ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/DirectSum/Finsupp.lean + theorem TensorProduct.finsuppLeft'_apply + theorem TensorProduct.finsuppLeft_apply + theorem TensorProduct.finsuppLeft_apply_tmul + theorem TensorProduct.finsuppLeft_apply_tmul_apply + theorem TensorProduct.finsuppLeft_smul' + theorem TensorProduct.finsuppLeft_symm_apply_single + theorem TensorProduct.finsuppRight_apply + theorem TensorProduct.finsuppRight_apply_tmul + theorem TensorProduct.finsuppRight_apply_tmul_apply + theorem TensorProduct.finsuppRight_symm_apply_single + theorem TensorProduct.finsuppScalarLeft_apply + theorem TensorProduct.finsuppScalarLeft_apply_tmul + theorem TensorProduct.finsuppScalarLeft_apply_tmul_apply + theorem TensorProduct.finsuppScalarLeft_symm_apply_single + theorem TensorProduct.finsuppScalarRight_apply + theorem TensorProduct.finsuppScalarRight_apply_tmul + theorem TensorProduct.finsuppScalarRight_apply_tmul_apply + theorem TensorProduct.finsuppScalarRight_symm_apply_single - def finsuppTensorFinsupp 2024-04-08 19:22:21 bec07a6 feat: Definition and Basic Properties of the Ternary Cantor Set (#11761) The group of Artur Szafarczyk, Suraj Krishna M S, JB Stiegler, Isabelle Dubois, Tomáš Jakl, Lorenzo Zanichelli, Alina Yan, Emilie Uthaiwat, and I worked on a project of formalizing the ternary cantor set in the course of the LFTCM2024 workshop under the guidance of Filippo A. E. Nuccio. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Topology/Instances/CantorSet.lean + def cantorSet + theorem cantorSet_subset_unitInterval + theorem isClosed_cantorSet + theorem isClosed_preCantorSet + theorem isCompact_cantorSet + def preCantorSet + theorem preCantorSet_succ + theorem preCantorSet_zero + theorem quarter_mem_cantorSet + theorem quarter_mem_preCantorSet + theorem quarters_mem_preCantorSet + theorem zero_mem_cantorSet + theorem zero_mem_preCantorSet 2024-04-08 18:56:11 d991fe8 chore(RingTheory/Etale): split in multiple folders and files (#12017) Splits `RingTheory/Etale.lean` into 3 new separate folders for étale (resp. unramified, resp. smooth) morphisms. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/RingTheory/Etale/Basic.lean + theorem Algebra.FormallyEtale.comp + theorem Algebra.FormallyEtale.iff_unramified_and_smooth + theorem Algebra.FormallyEtale.localization_base + theorem Algebra.FormallyEtale.localization_map + theorem Algebra.FormallyEtale.of_equiv + theorem Algebra.FormallyEtale.of_isLocalization + theorem Algebra.FormallyEtale.of_unramified_and_smooth Renamed Mathlib/RingTheory/Etale.lean to Mathlib/RingTheory/Smooth/Basic.lean - theorem Algebra.FormallyEtale.comp - theorem Algebra.FormallyEtale.iff_unramified_and_smooth - theorem Algebra.FormallyEtale.localization_base - theorem Algebra.FormallyEtale.localization_map - theorem Algebra.FormallyEtale.of_equiv - theorem Algebra.FormallyEtale.of_isLocalization - theorem Algebra.FormallyEtale.of_unramified_and_smooth - theorem Algebra.FormallyUnramified.comp - theorem Algebra.FormallyUnramified.ext' - theorem Algebra.FormallyUnramified.ext - theorem Algebra.FormallyUnramified.iff_subsingleton_kaehlerDifferential - theorem Algebra.FormallyUnramified.lift_unique' - theorem Algebra.FormallyUnramified.lift_unique - theorem Algebra.FormallyUnramified.lift_unique_of_ringHom - theorem Algebra.FormallyUnramified.localization_base - theorem Algebra.FormallyUnramified.localization_map - theorem Algebra.FormallyUnramified.of_comp - theorem Algebra.FormallyUnramified.of_equiv - theorem Algebra.FormallyUnramified.of_isLocalization Added Mathlib/RingTheory/Unramified/Basic.lean + theorem Algebra.FormallyUnramified.comp + theorem Algebra.FormallyUnramified.ext' + theorem Algebra.FormallyUnramified.ext + theorem Algebra.FormallyUnramified.iff_subsingleton_kaehlerDifferential + theorem Algebra.FormallyUnramified.lift_unique' + theorem Algebra.FormallyUnramified.lift_unique + theorem Algebra.FormallyUnramified.lift_unique_of_ringHom + theorem Algebra.FormallyUnramified.localization_base + theorem Algebra.FormallyUnramified.localization_map + theorem Algebra.FormallyUnramified.of_comp + theorem Algebra.FormallyUnramified.of_equiv + theorem Algebra.FormallyUnramified.of_isLocalization 2024-04-08 18:06:39 8596db6 feat(RingTheory/Noetherian): characterise nilpotent endomorphisms of finitely-generated modules (#11926) ESTIMATED CHANGES Modified Mathlib/RingTheory/Finiteness.lean + theorem Module.Finite.Module.End.isNilpotent_iff_of_finite 2024-04-08 16:29:32 03e3005 feat: generalize `boundedFilterSubalgebra` (#10519) This previously only worked for normed fields, now it works for seminormed algebras. There is no particular motivation for this beyond seeing where `NormedSpace` is too strong. ESTIMATED CHANGES Modified Mathlib/Analysis/Complex/UpperHalfPlane/FunctionsBoundedAtInfty.lean Modified Mathlib/Order/Filter/ZeroAndBoundedAtFilter.lean +/- theorem Filter.BoundedAtFilter.neg +/- theorem Filter.BoundedAtFilter.smul +/- theorem Filter.ZeroAtFilter.smul +/- def Filter.boundedFilterSubalgebra +/- def Filter.boundedFilterSubmodule +/- theorem Filter.const_boundedAtFilter +/- def Filter.zeroAtFilterSubmodule 2024-04-08 15:44:27 d8c8674 refactor: Move `AddCircle.toCircle` to earlier file (#12000) This PR moves `AddCircle.toCircle` to the earlier file `Analysis/SpecialFunctions/Complex/Circle` since `AddCircle.toCircle` only depends on `periodic_expMapCircle` and not the heavy imports of `Analysis/Fourier/AddCircle`. ESTIMATED CHANGES Modified Mathlib/Analysis/Fourier/AddCircle.lean - theorem AddCircle.continuous_toCircle - theorem AddCircle.injective_toCircle - theorem AddCircle.scaled_exp_map_periodic - def AddCircle.toCircle - theorem AddCircle.toCircle_add Modified Mathlib/Analysis/SpecialFunctions/Complex/Circle.lean + theorem AddCircle.continuous_toCircle + theorem AddCircle.injective_toCircle + theorem AddCircle.scaled_exp_map_periodic + theorem AddCircle.toCircle_add 2024-04-08 14:57:39 372a08f feat(Analysis/Convex/Deriv): convex implies monotone deriv (#11602) The derivative of a convex function is monotone (variations on a theme) ESTIMATED CHANGES Modified Mathlib/Analysis/Convex/Deriv.lean + theorem ConcaveOn.antitoneOn_deriv + theorem ConcaveOn.antitoneOn_derivWithin + theorem ConcaveOn.derivWithin_le_slope + theorem ConcaveOn.deriv_le_slope + theorem ConcaveOn.le_slope_of_hasDerivAt + theorem ConcaveOn.le_slope_of_hasDerivWithinAt + theorem ConcaveOn.le_slope_of_hasDerivWithinAt_Iio + theorem ConcaveOn.left_deriv_le_slope + theorem ConcaveOn.slope_le_deriv + theorem ConcaveOn.slope_le_derivWithin + theorem ConcaveOn.slope_le_of_hasDerivAt + theorem ConcaveOn.slope_le_of_hasDerivWithinAt + theorem ConcaveOn.slope_le_of_hasDerivWithinAt_Ioi + theorem ConcaveOn.slope_le_right_deriv + theorem ConvexOn.derivWithin_le_slope + theorem ConvexOn.deriv_le_slope + theorem ConvexOn.le_slope_of_hasDerivAt + theorem ConvexOn.le_slope_of_hasDerivWithinAt + theorem ConvexOn.le_slope_of_hasDerivWithinAt_Ioi + theorem ConvexOn.monotoneOn_deriv + theorem ConvexOn.monotoneOn_derivWithin + theorem ConvexOn.right_deriv_le_slope + theorem ConvexOn.slope_le_deriv + theorem ConvexOn.slope_le_derivWithin + theorem ConvexOn.slope_le_left_deriv + theorem ConvexOn.slope_le_of_hasDerivAt + theorem ConvexOn.slope_le_of_hasDerivWithinAt + theorem ConvexOn.slope_le_of_hasDerivWithinAt_Iio + theorem StrictConcaveOn.derivWithin_lt_slope + theorem StrictConcaveOn.deriv_lt_slope + theorem StrictConcaveOn.left_deriv_lt_slope + theorem StrictConcaveOn.lt_slope_of_hasDerivAt + theorem StrictConcaveOn.lt_slope_of_hasDerivWithinAt + theorem StrictConcaveOn.lt_slope_of_hasDerivWithinAt_Iio + theorem StrictConcaveOn.slope_lt_deriv + theorem StrictConcaveOn.slope_lt_derivWithin + theorem StrictConcaveOn.slope_lt_of_hasDerivAt + theorem StrictConcaveOn.slope_lt_of_hasDerivWithinAt + theorem StrictConcaveOn.slope_lt_of_hasDerivWithinAt_Ioi + theorem StrictConcaveOn.slope_lt_right_deriv + theorem StrictConcaveOn.strictAntiOn_deriv + theorem StrictConcaveOn.strictAntiOn_derivWithin + theorem StrictConvexOn.derivWithin_lt_slope + theorem StrictConvexOn.deriv_lt_slope + theorem StrictConvexOn.lt_slope_of_hasDerivAt + theorem StrictConvexOn.lt_slope_of_hasDerivWithinAt + theorem StrictConvexOn.lt_slope_of_hasDerivWithinAt_Ioi + theorem StrictConvexOn.right_deriv_lt_slope + theorem StrictConvexOn.slope_lt_deriv + theorem StrictConvexOn.slope_lt_derivWithin + theorem StrictConvexOn.slope_lt_left_deriv + theorem StrictConvexOn.slope_lt_of_hasDerivAt + theorem StrictConvexOn.slope_lt_of_hasDerivWithinAt + theorem StrictConvexOn.slope_lt_of_hasDerivWithinAt_Iio + theorem StrictConvexOn.strictMonoOn_deriv + theorem StrictConvexOn.strictMonoOn_derivWithin Modified Mathlib/LinearAlgebra/AffineSpace/Slope.lean + theorem slope_neg Modified Mathlib/Topology/Order/LeftRightNhds.lean + theorem Set.OrdConnected.mem_nhdsWithin_Ici + theorem Set.OrdConnected.mem_nhdsWithin_Iic + theorem Set.OrdConnected.mem_nhdsWithin_Iio + theorem Set.OrdConnected.mem_nhdsWithin_Ioi 2024-04-08 13:15:50 3576301 feat(ModularForms/JacobiTheta): derivative of theta function (#11824) This is a rewrite of `JacobiTheta/TwoVariable.lean`, adding a number of new results needed for Hurwitz and Dirichlet L-series. The main addition is developing the theory of the `z`-derivative of the theta function, as an object of study in its own right (functional equations, periodicity, holomorphy etc) – this is needed to prove analytic continuation + functional equations for odd Dirichlet characters. We also add a number of new results about the existing `jacobiTheta2` function: - converses of all the convergence statements (showing the series are *never* convergent if tau is outside the upper half-plane), which allows hypotheses to be removed from several results further downstream - differentiability in both variables jointly, not just each variable separately as before. ESTIMATED CHANGES Modified Mathlib/NumberTheory/ModularForms/JacobiTheta/OneVariable.lean - theorem exists_summable_bound_exp_mul_sq +/- theorem jacobiTheta_eq_jacobiTheta₂ - theorem summable_exp_mul_sq Modified Mathlib/NumberTheory/ModularForms/JacobiTheta/TwoVariable.lean + theorem continuousAt_jacobiTheta₂' + theorem continuousAt_jacobiTheta₂ - theorem differentiableAt_jacobiTheta₂ + theorem differentiableAt_jacobiTheta₂_fst + theorem differentiableAt_jacobiTheta₂_snd + theorem hasDerivAt_jacobiTheta₂_fst + theorem hasFDerivAt_jacobiTheta₂ + theorem hasFDerivAt_jacobiTheta₂_term + theorem hasSum_jacobiTheta₂'_term + theorem hasSum_jacobiTheta₂_term + theorem hasSum_jacobiTheta₂_term_fderiv + def jacobiTheta₂' + theorem jacobiTheta₂'_add_left' + theorem jacobiTheta₂'_add_left + theorem jacobiTheta₂'_add_right + theorem jacobiTheta₂'_conj + theorem jacobiTheta₂'_functional_equation + theorem jacobiTheta₂'_neg_left + def jacobiTheta₂'_term + theorem jacobiTheta₂'_undef + def jacobiTheta₂ + theorem jacobiTheta₂_conj + def jacobiTheta₂_fderiv + theorem jacobiTheta₂_fderiv_undef +/- theorem jacobiTheta₂_functional_equation + def jacobiTheta₂_term - theorem jacobiTheta₂_term_bound + def jacobiTheta₂_term_fderiv + theorem jacobiTheta₂_undef + theorem norm_jacobiTheta₂'_term_le + theorem norm_jacobiTheta₂_term + theorem norm_jacobiTheta₂_term_fderiv_ge + theorem norm_jacobiTheta₂_term_fderiv_le + theorem norm_jacobiTheta₂_term_le + theorem summable_jacobiTheta₂'_term_iff - theorem summable_jacobiTheta₂_term_bound + theorem summable_jacobiTheta₂_term_fderiv_iff + theorem summable_jacobiTheta₂_term_iff + theorem summable_pow_mul_jacobiTheta₂_term_bound Modified Mathlib/NumberTheory/ZetaFunction.lean 2024-04-08 12:14:32 b8fc37d feat(MeasureTheory): add singularPart and rnDeriv lemmas (#11883) Also golf and move `rnDeriv_restrict`. ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Decomposition/Lebesgue.lean + theorem MeasureTheory.Measure.rnDeriv_restrict + theorem MeasureTheory.Measure.singularPart_restrict + theorem MeasureTheory.Measure.singularPart_singularPart + theorem MeasureTheory.Measure.singularPart_zero_right Modified Mathlib/MeasureTheory/Decomposition/RadonNikodym.lean - theorem MeasureTheory.Measure.rnDeriv_restrict Modified Mathlib/MeasureTheory/Measure/MutuallySingular.lean + theorem MeasureTheory.Measure.MutuallySingular.restrict Modified Mathlib/MeasureTheory/Measure/Trim.lean + theorem MeasureTheory.Measure.AbsolutelyContinuous.trim Modified Mathlib/MeasureTheory/Measure/WithDensity.lean + theorem MeasureTheory.trim_withDensity 2024-04-08 11:30:09 6212c09 refactor: generalize instances of the continuous functional calculus (#11944) This refactors instances of the continuous functional calculus slightly. In particular, the derived instances for `IsSelfAdjoint` and `0 ≤ ·` will now trigger automatically once the type class conditions are satisfied, and these are generic, not specific to C⋆-algebras. For nonnegative elements, this utilizes the new type class `NonnegSpectrumClass`. In addition, we show that the restricted continuous functional calculi are equal to their non-restricted counterparts. ESTIMATED CHANGES Modified Mathlib/Analysis/NormedSpace/Star/ContinuousFunctionalCalculus/Instances.lean + theorem CFC.exists_sqrt_of_isSelfAdjoint_of_spectrumRestricts - theorem IsSelfAdjoint.continuousFunctionalCalculus_of_compactSpace_spectrum + theorem cfcHom_nnreal_eq_restrict + theorem cfcHom_real_eq_restrict + theorem cfc_nnreal_eq_real + theorem cfc_real_eq_complex 2024-04-08 10:17:56 029ba76 feat: adjust priorities of real-to-complex instances (#11980) See https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/very.20slow.20instance.20synthesis/near/431682092. With the change, ```lean import Mathlib set_option trace.profiler true in noncomputable example : FiniteDimensional ℝ (ℂ × ℂ →L[ℂ] ℂ) := by infer_instance ``` goes down from 3.7s to 1.0s on my computer. ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/Basic.lean Modified Mathlib/Data/Complex/Module.lean 2024-04-08 10:17:55 7b7bbd7 chore: remove more `bex` and `ball` from lemma names (#11615) Follow-up to #10816. Remaining places containing such lemmas are - `Option.bex_ne_none` and `Option.ball_ne_none`: defined in Lean core - `Nat.decidableBallLT` and `Nat.decidableBallLE`: defined in Lean core - `bef_def` is still used in a number of places and could be renamed - `BAll.imp_{left,right}`, `BEx.imp_{left,right}`, `BEx.intro` and `BEx.elim` I only audited the first ~150 lemmas mentioning "ball"; too many lemmas named after Metric.ball/openBall/closedBall. ESTIMATED CHANGES Modified Archive/Wiedijk100Theorems/Partition.lean Modified Mathlib/Analysis/Convex/Basic.lean Modified Mathlib/Analysis/LocallyConvex/WithSeminorms.lean Modified Mathlib/Analysis/NormedSpace/Banach.lean Modified Mathlib/CategoryTheory/Sites/EqualizerSheafCondition.lean Modified Mathlib/CategoryTheory/Sites/IsSheafFor.lean Modified Mathlib/Combinatorics/SimpleGraph/Regularity/Increment.lean Modified Mathlib/Data/Analysis/Topology.lean Modified Mathlib/Data/Finset/Basic.lean - theorem Finset.Nonempty.bex + theorem Finset.Nonempty.exists_mem Modified Mathlib/Data/Finset/Image.lean Modified Mathlib/Data/Finset/Lattice.lean Modified Mathlib/Data/Finset/Prod.lean Modified Mathlib/Data/List/Basic.lean - theorem List.not_exists_mem_nil Modified Mathlib/Data/List/Pairwise.lean Modified Mathlib/Data/List/Sigma.lean Modified Mathlib/Data/Nat/Squarefree.lean Modified Mathlib/Data/Set/Basic.lean - theorem Set.ball_empty_iff - theorem Set.ball_insert_iff - theorem Set.bex_insert_iff + theorem Set.exists_mem_insert + theorem Set.forall_mem_empty + theorem Set.forall_mem_insert Modified Mathlib/Data/Set/Finite.lean Modified Mathlib/Data/Set/Function.lean Modified Mathlib/Data/Set/Image.lean Modified Mathlib/Data/Set/Lattice.lean Modified Mathlib/Data/Sigma/Interval.lean Modified Mathlib/GroupTheory/GroupAction/Basic.lean Modified Mathlib/GroupTheory/Subgroup/Basic.lean +/- theorem Subgroup.mem_map Modified Mathlib/GroupTheory/Submonoid/Operations.lean +/- theorem Submonoid.mem_map Modified Mathlib/Init/Data/List/Instances.lean Modified Mathlib/Init/Data/List/Lemmas.lean - theorem List.bex_cons - theorem List.not_bex_nil + theorem List.not_exists_mem_nil Modified Mathlib/LinearAlgebra/AffineSpace/AffineSubspace.lean Modified Mathlib/Logic/Basic.lean - theorem ball_and - theorem ball_cond_comm - theorem ball_congr - theorem ball_mem_comm - theorem ball_or_left - theorem ball_true_iff - theorem bex_congr - theorem bex_imp - theorem bex_of_exists - theorem bex_or - theorem bex_or_left + theorem exists_mem_of_exists + theorem exists_mem_or + theorem exists_mem_or_left - theorem exists_of_bex + theorem exists_of_exists_mem + theorem exists₂_imp + theorem forall_cond_comm + theorem forall_mem_comm + theorem forall₂_and + theorem forall₂_or_left - theorem not_ball - theorem not_ball_of_bex_not - theorem not_bex + theorem not_exists_mem + theorem not_forall₂ + theorem not_forall₂_of_exists₂_not Modified Mathlib/MeasureTheory/SetSemiring.lean Modified Mathlib/NumberTheory/NumberField/CanonicalEmbedding/ConvexBody.lean Modified Mathlib/Order/Bounds/Basic.lean Modified Mathlib/Order/Concept.lean Modified Mathlib/Order/Directed.lean Modified Mathlib/Order/Filter/AtTopBot.lean Modified Mathlib/RingTheory/Ideal/Operations.lean Modified Mathlib/RingTheory/NonUnitalSubsemiring/Basic.lean +/- theorem NonUnitalSubsemiring.mem_map Modified Mathlib/RingTheory/Subring/Basic.lean +/- theorem Subring.mem_map Modified Mathlib/SetTheory/Ordinal/Arithmetic.lean Modified Mathlib/SetTheory/Ordinal/FixedPoint.lean Modified Mathlib/Topology/Algebra/UniformGroup.lean Modified Mathlib/Topology/Basic.lean Modified Mathlib/Topology/Connected/Basic.lean Modified Mathlib/Topology/Constructions.lean Modified Mathlib/Topology/ContinuousOn.lean Modified Mathlib/Topology/EMetricSpace/Basic.lean Modified Mathlib/Topology/GDelta.lean Modified Mathlib/Topology/MetricSpace/MetricSeparated.lean Modified Mathlib/Topology/UniformSpace/Basic.lean Modified Mathlib/Topology/UniformSpace/Cauchy.lean 2024-04-08 10:17:54 cb4b505 feat(Topology/Algebra/Module/StrongTopology): add monotonicity lemmas (#11600) ESTIMATED CHANGES Modified Mathlib/Topology/Algebra/Module/StrongTopology.lean + theorem UniformConvergenceCLM.topologicalSpace_eq + theorem UniformConvergenceCLM.topologicalSpace_mono +/- theorem UniformConvergenceCLM.uniformEmbedding_coeFn + theorem UniformConvergenceCLM.uniformSpace_eq + theorem UniformConvergenceCLM.uniformSpace_mono 2024-04-08 09:07:17 b27cccc chore: replace proof of natAbs_add_of_nonpos (#11995) Proof was breaking on `nightly-testing` / `bump/v4.8.0`, so just replace it with `omega` and be done. ESTIMATED CHANGES Modified Mathlib/Data/Int/Defs.lean +/- theorem Int.natAbs_add_of_nonpos 2024-04-08 08:20:32 1f25ef6 chore: rename IsRoot.definition back to IsRoot.def (#11999) ESTIMATED CHANGES Modified Archive/Imo/Imo2006Q5.lean Modified Mathlib/Algebra/LinearRecurrence.lean Modified Mathlib/Algebra/Polynomial/Degree/Definitions.lean - theorem Polynomial.Monic.def' + theorem Polynomial.Monic.def Modified Mathlib/Algebra/Polynomial/Degree/TrailingDegree.lean + theorem Polynomial.TrailingMonic.def - theorem Polynomial.TrailingMonic.definition Modified Mathlib/Algebra/Polynomial/Div.lean Modified Mathlib/Algebra/Polynomial/Eval.lean + theorem Polynomial.IsRoot.def - theorem Polynomial.IsRoot.definition Modified Mathlib/Algebra/Polynomial/FieldDivision.lean Modified Mathlib/Algebra/Polynomial/Monic.lean Modified Mathlib/Algebra/Polynomial/RingDivision.lean Modified Mathlib/Algebra/Polynomial/Splits.lean - theorem Polynomial.Splits.def' + theorem Polynomial.Splits.def Modified Mathlib/Analysis/Asymptotics/Asymptotics.lean + theorem Asymptotics.IsLittleO.def - theorem Asymptotics.IsLittleO.definition Modified Mathlib/Analysis/BoxIntegral/DivergenceTheorem.lean Modified Mathlib/Analysis/Calculus/InverseFunctionTheorem/FDeriv.lean Modified Mathlib/Analysis/Calculus/Rademacher.lean Modified Mathlib/Analysis/SpecificLimits/Normed.lean Modified Mathlib/CategoryTheory/Generator.lean - theorem CategoryTheory.IsCodetector.def' + theorem CategoryTheory.IsCodetector.def - theorem CategoryTheory.IsCoseparator.def' + theorem CategoryTheory.IsCoseparator.def - theorem CategoryTheory.IsDetector.def' + theorem CategoryTheory.IsDetector.def - theorem CategoryTheory.IsSeparator.def' + theorem CategoryTheory.IsSeparator.def Modified Mathlib/CategoryTheory/Preadditive/Generator.lean Modified Mathlib/CategoryTheory/Subterminal.lean - theorem CategoryTheory.IsSubterminal.def' + theorem CategoryTheory.IsSubterminal.def Modified Mathlib/FieldTheory/AbelRuffini.lean Modified Mathlib/FieldTheory/Finite/Basic.lean Modified Mathlib/FieldTheory/Fixed.lean Modified Mathlib/FieldTheory/IsAlgClosed/Basic.lean Modified Mathlib/FieldTheory/IsAlgClosed/Spectrum.lean Modified Mathlib/FieldTheory/IsSepClosed.lean Modified Mathlib/FieldTheory/Normal.lean Modified Mathlib/FieldTheory/Separable.lean Modified Mathlib/FieldTheory/SplittingField/Construction.lean Modified Mathlib/LinearAlgebra/Charpoly/Basic.lean Modified Mathlib/LinearAlgebra/Matrix/Adjugate.lean Modified Mathlib/LinearAlgebra/SModEq.lean +/- theorem SModEq.sub_mem +/- theorem SModEq.zero Modified Mathlib/MeasureTheory/Function/Jacobian.lean Modified Mathlib/NumberTheory/Cyclotomic/Basic.lean Modified Mathlib/NumberTheory/Cyclotomic/PrimitiveRoots.lean Modified Mathlib/NumberTheory/FunctionField.lean - theorem FunctionField.inftyValuedFqt.def' + theorem FunctionField.inftyValuedFqt.def - theorem FunctionField.valuedFqtInfty.def' + theorem FunctionField.valuedFqtInfty.def Modified Mathlib/NumberTheory/Liouville/Basic.lean Modified Mathlib/NumberTheory/PrimesCongruentOne.lean Modified Mathlib/Probability/Kernel/Invariance.lean - theorem ProbabilityTheory.kernel.Invariant.def' + theorem ProbabilityTheory.kernel.Invariant.def Modified Mathlib/RingTheory/Discriminant.lean Modified Mathlib/RingTheory/Henselian.lean Modified Mathlib/RingTheory/Polynomial/Cyclotomic/Basic.lean Modified Mathlib/RingTheory/Polynomial/Cyclotomic/Expand.lean Modified Mathlib/RingTheory/Polynomial/Cyclotomic/Roots.lean Modified Mathlib/RingTheory/Polynomial/Eisenstein/Basic.lean Modified Mathlib/RingTheory/Polynomial/Pochhammer.lean Modified Mathlib/RingTheory/RootsOfUnity/Minpoly.lean Modified Mathlib/RingTheory/WittVector/FrobeniusFractionField.lean Modified Mathlib/SetTheory/ZFC/Basic.lean Modified Mathlib/Topology/Sober.lean - theorem IsGenericPoint.def' + theorem IsGenericPoint.def 2024-04-08 07:22:22 b8145ad refactor(Topology/Order/Basic): split up large file (#11992) This splits up the file `Mathlib/Topology/Order/Basic.lean` (currently > 2000 lines) into several smaller files. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/ContinuedFractions/Computation/ApproximationCorollaries.lean Modified Mathlib/Analysis/Convex/Strict.lean Modified Mathlib/SetTheory/Ordinal/Topology.lean Modified Mathlib/Topology/Algebra/Order/Archimedean.lean Modified Mathlib/Topology/Algebra/Order/Compact.lean Modified Mathlib/Topology/Algebra/Order/Field.lean Modified Mathlib/Topology/Algebra/Order/Floor.lean Modified Mathlib/Topology/Algebra/Order/Group.lean Modified Mathlib/Topology/Algebra/Order/LiminfLimsup.lean Modified Mathlib/Topology/FiberBundle/Basic.lean Modified Mathlib/Topology/MetricSpace/PseudoMetric.lean Modified Mathlib/Topology/Order/Basic.lean - theorem Antitone.map_ciInf_of_continuousAt - theorem Antitone.map_ciSup_of_continuousAt - theorem Antitone.map_csInf_of_continuousAt - theorem Antitone.map_csSup_of_continuousAt - theorem Antitone.map_iInf_of_continuousAt' - theorem Antitone.map_iInf_of_continuousAt - theorem Antitone.map_iSup_of_continuousAt' - theorem Antitone.map_iSup_of_continuousAt - theorem Antitone.map_sInf_of_continuousAt' - theorem Antitone.map_sInf_of_continuousAt - theorem Antitone.map_sSup_of_continuousAt' - theorem Antitone.map_sSup_of_continuousAt - theorem Dense.exists_countable_dense_subset_no_bot_top - theorem Filter.Tendsto.add_atBot - theorem Filter.Tendsto.add_atTop - theorem Filter.Tendsto.atBot_add - theorem Filter.Tendsto.atTop_add - theorem Filter.map_neg_eq_comap_neg - theorem Icc_mem_nhds_iff - theorem Ico_mem_nhds_iff - theorem Ico_subset_closure_interior - theorem Ioc_mem_nhds_iff - theorem Ioc_subset_closure_interior - theorem IsClosed.csInf_mem - theorem IsClosed.csSup_mem - theorem IsClosed.isGreatest_csSup - theorem IsClosed.isLeast_csInf - theorem IsClosed.sInf_mem - theorem IsClosed.sSup_mem - theorem IsGLB.exists_seq_antitone_tendsto - theorem IsGLB.exists_seq_strictAnti_tendsto_of_not_mem - theorem IsGLB.frequently_mem - theorem IsGLB.frequently_nhds_mem - theorem IsGLB.isGLB_of_tendsto - theorem IsGLB.isLUB_of_tendsto - theorem IsGLB.mem_closure - theorem IsGLB.mem_lowerBounds_of_tendsto - theorem IsGLB.mem_of_isClosed - theorem IsGLB.mem_upperBounds_of_tendsto - theorem IsGLB.nhdsWithin_neBot - theorem IsLUB.exists_seq_monotone_tendsto - theorem IsLUB.exists_seq_strictMono_tendsto_of_not_mem - theorem IsLUB.frequently_mem - theorem IsLUB.frequently_nhds_mem - theorem IsLUB.isGLB_of_tendsto - theorem IsLUB.isLUB_of_tendsto - theorem IsLUB.mem_closure - theorem IsLUB.mem_lowerBounds_of_tendsto - theorem IsLUB.mem_of_isClosed - theorem IsLUB.mem_upperBounds_of_tendsto - theorem IsLUB.nhdsWithin_neBot - theorem LinearOrderedAddCommGroup.tendsto_nhds - theorem Monotone.map_ciInf_of_continuousAt - theorem Monotone.map_ciSup_of_continuousAt - theorem Monotone.map_csInf_of_continuousAt - theorem Monotone.map_csSup_of_continuousAt - theorem Monotone.map_iInf_of_continuousAt' - theorem Monotone.map_iInf_of_continuousAt - theorem Monotone.map_iSup_of_continuousAt' - theorem Monotone.map_iSup_of_continuousAt - theorem Monotone.map_sInf_of_continuousAt' - theorem Monotone.map_sInf_of_continuousAt - theorem Monotone.map_sSup_of_continuousAt' - theorem Monotone.map_sSup_of_continuousAt - theorem Monotone.tendsto_nhdsWithin_Iio - theorem Monotone.tendsto_nhdsWithin_Ioi - theorem TFAE_mem_nhdsWithin_Ici - theorem TFAE_mem_nhdsWithin_Iic - theorem TFAE_mem_nhdsWithin_Iio - theorem TFAE_mem_nhdsWithin_Ioi - theorem closure_Ico - theorem closure_Iio' - theorem closure_Iio - theorem closure_Ioc - theorem closure_Ioi' - theorem closure_Ioi - theorem closure_Ioo - theorem closure_interior_Icc - theorem comap_coe_Iio_nhdsWithin_Iio - theorem comap_coe_Ioi_nhdsWithin_Ioi - theorem comap_coe_Ioo_nhdsWithin_Iio - theorem comap_coe_Ioo_nhdsWithin_Ioi - theorem comap_coe_nhdsWithin_Iio_of_Ioo_subset - theorem comap_coe_nhdsWithin_Ioi_of_Ioo_subset - theorem countable_setOf_isolated_left - theorem countable_setOf_isolated_right - theorem csInf_mem_closure - theorem csSup_mem_closure - theorem eventually_abs_sub_lt - theorem exists_countable_dense_no_bot_top - theorem exists_seq_strictAnti_strictMono_tendsto - theorem exists_seq_strictAnti_tendsto' - theorem exists_seq_strictAnti_tendsto - theorem exists_seq_strictAnti_tendsto_nhdsWithin - theorem exists_seq_strictMono_tendsto' - theorem exists_seq_strictMono_tendsto - theorem exists_seq_strictMono_tendsto_nhdsWithin - theorem exists_seq_tendsto_sInf - theorem exists_seq_tendsto_sSup - theorem frontier_Icc - theorem frontier_Ici' - theorem frontier_Ici - theorem frontier_Ico - theorem frontier_Iic' - theorem frontier_Iic - theorem frontier_Iio' - theorem frontier_Iio - theorem frontier_Ioc - theorem frontier_Ioi' - theorem frontier_Ioi - theorem frontier_Ioo - theorem interior_Icc - theorem interior_Ici' - theorem interior_Ici - theorem interior_Ico - theorem interior_Iic' - theorem interior_Iic - theorem interior_Ioc - theorem isGLB_of_mem_closure - theorem isGLB_of_mem_nhds - theorem isLUB_of_mem_closure - theorem isLUB_of_mem_nhds - theorem left_nhdsWithin_Ioc_neBot - theorem left_nhdsWithin_Ioo_neBot - theorem map_coe_Iio_atTop - theorem map_coe_Ioi_atBot - theorem map_coe_Ioo_atBot - theorem map_coe_Ioo_atTop - theorem map_coe_atBot_of_Ioo_subset - theorem map_coe_atTop_of_Ioo_subset - theorem mem_nhdsWithin_Ici_iff_exists_Icc_subset - theorem mem_nhdsWithin_Ici_iff_exists_Ico_subset' - theorem mem_nhdsWithin_Ici_iff_exists_Ico_subset - theorem mem_nhdsWithin_Ici_iff_exists_mem_Ioc_Ico_subset - theorem mem_nhdsWithin_Iic_iff_exists_Icc_subset - theorem mem_nhdsWithin_Iic_iff_exists_Ioc_subset' - theorem mem_nhdsWithin_Iic_iff_exists_Ioc_subset - theorem mem_nhdsWithin_Iic_iff_exists_mem_Ico_Ioc_subset - theorem mem_nhdsWithin_Iio_iff_exists_Ico_subset - theorem mem_nhdsWithin_Iio_iff_exists_Ioo_subset' - theorem mem_nhdsWithin_Iio_iff_exists_Ioo_subset - theorem mem_nhdsWithin_Iio_iff_exists_mem_Ico_Ioo_subset - theorem mem_nhdsWithin_Ioi_iff_exists_Ioc_subset - theorem mem_nhdsWithin_Ioi_iff_exists_Ioo_subset' - theorem mem_nhdsWithin_Ioi_iff_exists_Ioo_subset - theorem mem_nhdsWithin_Ioi_iff_exists_mem_Ioc_Ioo_subset - theorem nhdsWithin_Ici_basis_Icc - theorem nhdsWithin_Ici_basis_Ico - theorem nhdsWithin_Iic_basis_Icc - theorem nhdsWithin_Iio_basis' - theorem nhdsWithin_Iio_eq_bot_iff - theorem nhdsWithin_Iio_neBot' - theorem nhdsWithin_Iio_neBot - theorem nhdsWithin_Iio_self_neBot' - theorem nhdsWithin_Ioi_basis' - theorem nhdsWithin_Ioi_basis - theorem nhdsWithin_Ioi_eq_bot_iff - theorem nhdsWithin_Ioi_neBot' - theorem nhdsWithin_Ioi_neBot - theorem nhdsWithin_Ioi_self_neBot' - theorem nhds_basis_Icc_pos - theorem nhds_basis_Ioo_pos - theorem nhds_basis_Ioo_pos_of_pos - theorem nhds_basis_abs_sub_lt - theorem nhds_basis_zero_abs_sub_lt - theorem nhds_eq_iInf_abs_sub - theorem orderTopology_of_nhds_abs - theorem preimage_neg - theorem right_nhdsWithin_Ico_neBot - theorem right_nhdsWithin_Ioo_neBot - theorem sInf_mem_closure - theorem sSup_mem_closure - theorem tendsto_Iio_atTop - theorem tendsto_Ioi_atBot - theorem tendsto_Ioo_atBot - theorem tendsto_Ioo_atTop - theorem tendsto_comp_coe_Iio_atTop - theorem tendsto_comp_coe_Ioi_atBot - theorem tendsto_comp_coe_Ioo_atBot - theorem tendsto_comp_coe_Ioo_atTop Added Mathlib/Topology/Order/DenselyOrdered.lean + theorem Dense.exists_countable_dense_subset_no_bot_top + theorem Icc_mem_nhds_iff + theorem Ico_mem_nhds_iff + theorem Ico_subset_closure_interior + theorem Ioc_mem_nhds_iff + theorem Ioc_subset_closure_interior + theorem closure_Ico + theorem closure_Iio' + theorem closure_Iio + theorem closure_Ioc + theorem closure_Ioi' + theorem closure_Ioi + theorem closure_Ioo + theorem closure_interior_Icc + theorem comap_coe_Iio_nhdsWithin_Iio + theorem comap_coe_Ioi_nhdsWithin_Ioi + theorem comap_coe_Ioo_nhdsWithin_Iio + theorem comap_coe_Ioo_nhdsWithin_Ioi + theorem comap_coe_nhdsWithin_Iio_of_Ioo_subset + theorem comap_coe_nhdsWithin_Ioi_of_Ioo_subset + theorem exists_countable_dense_no_bot_top + theorem frontier_Icc + theorem frontier_Ici' + theorem frontier_Ici + theorem frontier_Ico + theorem frontier_Iic' + theorem frontier_Iic + theorem frontier_Iio' + theorem frontier_Iio + theorem frontier_Ioc + theorem frontier_Ioi' + theorem frontier_Ioi + theorem frontier_Ioo + theorem interior_Icc + theorem interior_Ici' + theorem interior_Ici + theorem interior_Ico + theorem interior_Iic' + theorem interior_Iic + theorem interior_Ioc + theorem left_nhdsWithin_Ioc_neBot + theorem left_nhdsWithin_Ioo_neBot + theorem map_coe_Iio_atTop + theorem map_coe_Ioi_atBot + theorem map_coe_Ioo_atBot + theorem map_coe_Ioo_atTop + theorem map_coe_atBot_of_Ioo_subset + theorem map_coe_atTop_of_Ioo_subset + theorem nhdsWithin_Iio_neBot' + theorem nhdsWithin_Iio_neBot + theorem nhdsWithin_Iio_self_neBot' + theorem nhdsWithin_Ioi_neBot' + theorem nhdsWithin_Ioi_neBot + theorem nhdsWithin_Ioi_self_neBot' + theorem right_nhdsWithin_Ico_neBot + theorem right_nhdsWithin_Ioo_neBot + theorem tendsto_Iio_atTop + theorem tendsto_Ioi_atBot + theorem tendsto_Ioo_atBot + theorem tendsto_Ioo_atTop + theorem tendsto_comp_coe_Iio_atTop + theorem tendsto_comp_coe_Ioi_atBot + theorem tendsto_comp_coe_Ioo_atBot + theorem tendsto_comp_coe_Ioo_atTop Modified Mathlib/Topology/Order/ExtendFrom.lean Modified Mathlib/Topology/Order/IntermediateValue.lean Added Mathlib/Topology/Order/IsLUB.lean + theorem IsGLB.exists_seq_antitone_tendsto + theorem IsGLB.exists_seq_strictAnti_tendsto_of_not_mem + theorem IsGLB.frequently_mem + theorem IsGLB.frequently_nhds_mem + theorem IsGLB.isGLB_of_tendsto + theorem IsGLB.isLUB_of_tendsto + theorem IsGLB.mem_closure + theorem IsGLB.mem_lowerBounds_of_tendsto + theorem IsGLB.mem_of_isClosed + theorem IsGLB.mem_upperBounds_of_tendsto + theorem IsGLB.nhdsWithin_neBot + theorem IsLUB.exists_seq_monotone_tendsto + theorem IsLUB.exists_seq_strictMono_tendsto_of_not_mem + theorem IsLUB.frequently_mem + theorem IsLUB.frequently_nhds_mem + theorem IsLUB.isGLB_of_tendsto + theorem IsLUB.isLUB_of_tendsto + theorem IsLUB.mem_closure + theorem IsLUB.mem_lowerBounds_of_tendsto + theorem IsLUB.mem_of_isClosed + theorem IsLUB.mem_upperBounds_of_tendsto + theorem IsLUB.nhdsWithin_neBot + theorem exists_seq_strictAnti_strictMono_tendsto + theorem exists_seq_strictAnti_tendsto' + theorem exists_seq_strictAnti_tendsto + theorem exists_seq_strictAnti_tendsto_nhdsWithin + theorem exists_seq_strictMono_tendsto' + theorem exists_seq_strictMono_tendsto + theorem exists_seq_strictMono_tendsto_nhdsWithin + theorem exists_seq_tendsto_sInf + theorem exists_seq_tendsto_sSup + theorem isGLB_of_mem_closure + theorem isGLB_of_mem_nhds + theorem isLUB_of_mem_closure + theorem isLUB_of_mem_nhds Modified Mathlib/Topology/Order/LeftRightLim.lean Added Mathlib/Topology/Order/LeftRightNhds.lean + theorem Filter.Tendsto.add_atBot + theorem Filter.Tendsto.add_atTop + theorem Filter.Tendsto.atBot_add + theorem Filter.Tendsto.atTop_add + theorem Filter.map_neg_eq_comap_neg + theorem LinearOrderedAddCommGroup.tendsto_nhds + theorem TFAE_mem_nhdsWithin_Ici + theorem TFAE_mem_nhdsWithin_Iic + theorem TFAE_mem_nhdsWithin_Iio + theorem TFAE_mem_nhdsWithin_Ioi + theorem countable_setOf_isolated_left + theorem countable_setOf_isolated_right + theorem eventually_abs_sub_lt + theorem mem_nhdsWithin_Ici_iff_exists_Icc_subset + theorem mem_nhdsWithin_Ici_iff_exists_Ico_subset' + theorem mem_nhdsWithin_Ici_iff_exists_Ico_subset + theorem mem_nhdsWithin_Ici_iff_exists_mem_Ioc_Ico_subset + theorem mem_nhdsWithin_Iic_iff_exists_Icc_subset + theorem mem_nhdsWithin_Iic_iff_exists_Ioc_subset' + theorem mem_nhdsWithin_Iic_iff_exists_Ioc_subset + theorem mem_nhdsWithin_Iic_iff_exists_mem_Ico_Ioc_subset + theorem mem_nhdsWithin_Iio_iff_exists_Ico_subset + theorem mem_nhdsWithin_Iio_iff_exists_Ioo_subset' + theorem mem_nhdsWithin_Iio_iff_exists_Ioo_subset + theorem mem_nhdsWithin_Iio_iff_exists_mem_Ico_Ioo_subset + theorem mem_nhdsWithin_Ioi_iff_exists_Ioc_subset + theorem mem_nhdsWithin_Ioi_iff_exists_Ioo_subset' + theorem mem_nhdsWithin_Ioi_iff_exists_Ioo_subset + theorem mem_nhdsWithin_Ioi_iff_exists_mem_Ioc_Ioo_subset + theorem nhdsWithin_Ici_basis_Icc + theorem nhdsWithin_Ici_basis_Ico + theorem nhdsWithin_Iic_basis_Icc + theorem nhdsWithin_Iio_basis' + theorem nhdsWithin_Iio_eq_bot_iff + theorem nhdsWithin_Ioi_basis' + theorem nhdsWithin_Ioi_basis + theorem nhdsWithin_Ioi_eq_bot_iff + theorem nhds_basis_Icc_pos + theorem nhds_basis_Ioo_pos + theorem nhds_basis_Ioo_pos_of_pos + theorem nhds_basis_abs_sub_lt + theorem nhds_basis_zero_abs_sub_lt + theorem nhds_eq_iInf_abs_sub + theorem orderTopology_of_nhds_abs + theorem preimage_neg Added Mathlib/Topology/Order/Monotone.lean + theorem Antitone.map_ciInf_of_continuousAt + theorem Antitone.map_ciSup_of_continuousAt + theorem Antitone.map_csInf_of_continuousAt + theorem Antitone.map_csSup_of_continuousAt + theorem Antitone.map_iInf_of_continuousAt' + theorem Antitone.map_iInf_of_continuousAt + theorem Antitone.map_iSup_of_continuousAt' + theorem Antitone.map_iSup_of_continuousAt + theorem Antitone.map_sInf_of_continuousAt' + theorem Antitone.map_sInf_of_continuousAt + theorem Antitone.map_sSup_of_continuousAt' + theorem Antitone.map_sSup_of_continuousAt + theorem IsClosed.csInf_mem + theorem IsClosed.csSup_mem + theorem IsClosed.isGreatest_csSup + theorem IsClosed.isLeast_csInf + theorem IsClosed.sInf_mem + theorem IsClosed.sSup_mem + theorem Monotone.map_ciInf_of_continuousAt + theorem Monotone.map_ciSup_of_continuousAt + theorem Monotone.map_csInf_of_continuousAt + theorem Monotone.map_csSup_of_continuousAt + theorem Monotone.map_iInf_of_continuousAt' + theorem Monotone.map_iInf_of_continuousAt + theorem Monotone.map_iSup_of_continuousAt' + theorem Monotone.map_iSup_of_continuousAt + theorem Monotone.map_sInf_of_continuousAt' + theorem Monotone.map_sInf_of_continuousAt + theorem Monotone.map_sSup_of_continuousAt' + theorem Monotone.map_sSup_of_continuousAt + theorem Monotone.tendsto_nhdsWithin_Iio + theorem Monotone.tendsto_nhdsWithin_Ioi + theorem csInf_mem_closure + theorem csSup_mem_closure + theorem sInf_mem_closure + theorem sSup_mem_closure Modified Mathlib/Topology/Order/MonotoneContinuity.lean Modified scripts/style-exceptions.txt 2024-04-08 06:14:41 2098023 doc: fix many more mathlib3 names in doc comments (#11987) A mix of various changes; generated with a script and manually tweaked. ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/Operations.lean Modified Mathlib/Algebra/Algebra/Subalgebra/Pointwise.lean Modified Mathlib/Algebra/Group/WithOne/Defs.lean Modified Mathlib/Algebra/Module/Equiv.lean Modified Mathlib/Algebra/Periodic.lean Modified Mathlib/Algebra/Star/Pointwise.lean Modified Mathlib/Data/Finsupp/Order.lean Modified Mathlib/Data/Nat/Cast/WithTop.lean Modified Mathlib/Dynamics/FixedPoints/Basic.lean Modified Mathlib/FieldTheory/Finite/Polynomial.lean Modified Mathlib/Geometry/Manifold/Instances/Real.lean Modified Mathlib/Geometry/Manifold/SmoothManifoldWithCorners.lean Modified Mathlib/Geometry/RingedSpace/OpenImmersion.lean Modified Mathlib/Geometry/RingedSpace/Stalks.lean Modified Mathlib/GroupTheory/Congruence.lean Modified Mathlib/GroupTheory/FreeGroup/Basic.lean Modified Mathlib/GroupTheory/MonoidLocalization.lean Modified Mathlib/GroupTheory/Perm/Basic.lean Modified Mathlib/GroupTheory/Submonoid/Basic.lean Modified Mathlib/GroupTheory/Torsion.lean Modified Mathlib/Logic/Equiv/Fin.lean Modified Mathlib/MeasureTheory/Decomposition/SignedLebesgue.lean Modified Mathlib/MeasureTheory/Group/FundamentalDomain.lean Modified Mathlib/MeasureTheory/Integral/Layercake.lean Modified Mathlib/NumberTheory/Cyclotomic/Gal.lean Modified Mathlib/NumberTheory/LegendreSymbol/GaussSum.lean Modified Mathlib/RingTheory/AdjoinRoot.lean Modified Mathlib/RingTheory/PowerSeries/Basic.lean Modified Mathlib/RingTheory/Subsemiring/Pointwise.lean Modified Mathlib/RingTheory/Valuation/ValuationSubring.lean Modified Mathlib/RingTheory/WittVector/Isocrystal.lean Modified Mathlib/Topology/Constructions.lean Modified Mathlib/Topology/Order/IntermediateValue.lean Modified Mathlib/Topology/Order/LocalExtr.lean Modified Mathlib/Topology/Sets/Opens.lean Modified Mathlib/Topology/Sheaves/SheafCondition/EqualizerProducts.lean Modified Mathlib/Topology/Sheaves/SheafCondition/PairwiseIntersections.lean Modified Mathlib/Topology/TietzeExtension.lean 2024-04-08 02:32:01 d4b9a26 chore(Data/Nat/Defs): Integrate `Nat.sqrt` material (#11866) Move the content of `Data.Nat.ForSqrt` and `Data.Nat.Sqrt` to `Data.Nat.Defs` by using `Nat`-specific Std lemmas rather than the mathlib general ones. This makes it ready to move to Std if wanted. ESTIMATED CHANGES Modified Archive/Imo/Imo2021Q1.lean Modified Mathlib.lean Modified Mathlib/Algebra/QuadraticDiscriminant.lean Modified Mathlib/Computability/Ackermann.lean Modified Mathlib/Data/Int/Parity.lean Modified Mathlib/Data/Int/Sqrt.lean Modified Mathlib/Data/Nat/Defs.lean + theorem Nat.eq_sqrt' + theorem Nat.eq_sqrt + theorem Nat.exists_mul_self' + theorem Nat.exists_mul_self + theorem Nat.le_sqrt' + theorem Nat.le_sqrt + theorem Nat.le_three_of_sqrt_eq_one + theorem Nat.lt_succ_sqrt' + theorem Nat.lt_succ_sqrt + theorem Nat.not_exists_sq' + theorem Nat.not_exists_sq + theorem Nat.sqrt.iter_sq_le + theorem Nat.sqrt.lt_iter_succ_sq + theorem Nat.sqrt_add_eq' + theorem Nat.sqrt_add_eq + theorem Nat.sqrt_eq' + theorem Nat.sqrt_eq + theorem Nat.sqrt_eq_zero + theorem Nat.sqrt_le' + theorem Nat.sqrt_le + theorem Nat.sqrt_le_add + theorem Nat.sqrt_le_self + theorem Nat.sqrt_le_sqrt + theorem Nat.sqrt_lt' + theorem Nat.sqrt_lt + theorem Nat.sqrt_lt_self + theorem Nat.sqrt_mul_sqrt_lt_succ' + theorem Nat.sqrt_mul_sqrt_lt_succ + theorem Nat.sqrt_one + theorem Nat.sqrt_pos + theorem Nat.sqrt_succ_le_succ_sqrt + theorem Nat.sqrt_zero + theorem Nat.succ_le_succ_sqrt' + theorem Nat.succ_le_succ_sqrt Deleted Mathlib/Data/Nat/ForSqrt.lean - theorem Nat.sqrt.iter_sq_le - theorem Nat.sqrt.lt_iter_succ_sq Modified Mathlib/Data/Nat/Pairing.lean +/- theorem Nat.add_le_pair Modified Mathlib/Data/Nat/Parity.lean Modified Mathlib/Data/Nat/Prime.lean Deleted Mathlib/Data/Nat/Sqrt.lean - theorem Nat.eq_sqrt' - theorem Nat.eq_sqrt - theorem Nat.exists_mul_self' - theorem Nat.exists_mul_self - theorem Nat.le_sqrt' - theorem Nat.le_sqrt - theorem Nat.le_three_of_sqrt_eq_one - theorem Nat.lt_succ_sqrt' - theorem Nat.lt_succ_sqrt - theorem Nat.not_exists_sq' - theorem Nat.not_exists_sq - theorem Nat.sqrt_add_eq' - theorem Nat.sqrt_add_eq - theorem Nat.sqrt_eq' - theorem Nat.sqrt_eq - theorem Nat.sqrt_eq_zero - theorem Nat.sqrt_le' - theorem Nat.sqrt_le - theorem Nat.sqrt_le_add - theorem Nat.sqrt_le_self - theorem Nat.sqrt_le_sqrt - theorem Nat.sqrt_lt' - theorem Nat.sqrt_lt - theorem Nat.sqrt_lt_self - theorem Nat.sqrt_mul_sqrt_lt_succ' - theorem Nat.sqrt_mul_sqrt_lt_succ - theorem Nat.sqrt_one - theorem Nat.sqrt_pos - theorem Nat.sqrt_succ_le_succ_sqrt - theorem Nat.sqrt_zero - theorem Nat.succ_le_succ_sqrt' - theorem Nat.succ_le_succ_sqrt Modified Mathlib/Data/Nat/SqrtNormNum.lean Modified Mathlib/Data/Rat/Sqrt.lean Modified Mathlib/Order/Filter/AtTopBot.lean Modified Mathlib/Order/OrderIsoNat.lean Modified Mathlib/Order/SuccPred/LinearLocallyFinite.lean Modified Mathlib/Tactic/NormNum/NatSqrt.lean Modified scripts/style-exceptions.txt Modified test/search/BestFirst.lean 2024-04-08 02:01:41 ea26fda feat(Topology/Algebra/Module/WeakDual): prove basic relations between the weak topology and the original topology (#11566) (This PR continues #11472) Prove the following basic facts about the weak topology in a topological vector space (or AddCommMonoid) `E`. - any set that is open in the weak topology is open in the original topology. - any function in `E` that converges to a point in the original topology (with respect to some filter) converges also in the weak topology. - if a function in `E` converges to a point in the original topology, then its composition with a continuous linear functional converges. - any function from `E` that is continuous in the weak topology is also continuous in the original topology. Motivation: WeakSpace has some basic properties, analogue of which are proved for WeakDual. I have some doubts: - in order to avoid typeclass instance problem, I had to add a type ascription `continuousLinearMapToWeakSpace : E →L[𝕜] WeakSpace 𝕜 E` when needed. Is this fine or is there a canonical way to avoid it? (I tried to add `variable (𝕜 E) in` before def/thm but it gave type mismatch in many places) - I made two theorems about IsOpen, but not sure about the naming convention. [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) ESTIMATED CHANGES Modified Mathlib/Topology/Algebra/Module/WeakDual.lean + theorem WeakSpace.isOpen_of_isOpen + def continuousLinearMapToWeakSpace + theorem continuousLinearMapToWeakSpace_bijective + theorem continuousLinearMapToWeakSpace_eq_toWeakSpace + theorem isOpenMap_toWeakSpace_symm + def toWeakSpace 2024-04-07 23:15:02 67a73e5 feat: add a class to encode that the spectrum of nonnegative elements is nonnegative (#11993) When working with the continuous functional calculus generically, it is currently hard to establish lemmas that work well for positive across the board. This is in part due to the fact that one cannot conclude from the continuous functional calculus alone that the spectrum of nonnegative elements in a star-ordered ring is nonnegative. So, we use a type class to encode this, and this type class actually uses the quasispectrum, because for unital algebras the two notions are equivalent. ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/Quasispectrum.lean + theorem NonnegSpectrumClass.iff_spectrum_nonneg + theorem spectrum_nonneg_of_nonneg Modified Mathlib/Analysis/NormedSpace/Spectrum.lean + theorem SpectrumRestricts.nnreal_of_nonneg 2024-04-07 23:15:01 08092d3 doc(Tactic): fix more mathlib3 names in doc comments (#11949) Auto-generated using a script, with manual fix-ups. ESTIMATED CHANGES Modified Mathlib/Tactic/Linarith/Frontend.lean Modified Mathlib/Tactic/Nontriviality/Core.lean Modified Mathlib/Tactic/Polyrith.lean Modified Mathlib/Tactic/SetLike.lean Modified Mathlib/Tactic/Simps/Basic.lean Modified Mathlib/Tactic/ToAdditive.lean 2024-04-07 23:15:00 7254d17 feat(Algebra/Homology): action of a bifunctor on cochain complexes and shifts (#10880) In this PR, we introduce the abbreviation `CochainComplex.mapBifunctor K₁ K₂ F` for `K₁` and `K₂` two cochain complexes, and `F` a bifunctor. We obtain isomorphisms which express the behavior of this construction with respect to shifts on both variables: `mapBifunctor (K₁⟦x⟧) K₂ F ≅ (mapBifunctor K₁ K₂ F)⟦x⟧` and `mapBifunctor K₁ (K₂⟦y⟧) F ≅ (mapBifunctor K₁ K₂ F)⟦y⟧`. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Homology/BifunctorShift.lean + def CochainComplex.mapBifunctorHomologicalComplexShift₁Iso + def CochainComplex.mapBifunctorHomologicalComplexShift₂Iso Modified Mathlib/Algebra/Homology/TotalComplex.lean Modified Mathlib/CategoryTheory/Preadditive/FunctorCategory.lean + theorem CategoryTheory.NatTrans.app_units_zsmul 2024-04-07 22:24:37 2e7bb64 feat: general Ascoli theorem (#6844) This was discussed on Zulip [recently](https://leanprover.zulipchat.com/#narrow/stream/217875-Is-there-code-for-X.3F/topic/Arzela-Ascoli.20for.20uniform.20spaces) and [a while ago](https://leanprover.zulipchat.com/#narrow/stream/116395-maths/topic/Montel's.20theorem). ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Topology/Constructions.lean + theorem Pi.induced_restrict_sUnion Added Mathlib/Topology/UniformSpace/Ascoli.lean + theorem ArzelaAscoli.compactSpace_of_closedEmbedding + theorem ArzelaAscoli.compactSpace_of_closed_inducing' + theorem ArzelaAscoli.isCompact_closure_of_closedEmbedding + theorem Equicontinuous.comap_uniformFun_eq + theorem Equicontinuous.inducing_uniformFun_iff_pi + theorem Equicontinuous.tendsto_uniformFun_iff_pi + theorem Equicontinuous.uniformInducing_uniformFun_iff_pi + theorem EquicontinuousOn.comap_uniformOnFun_eq + theorem EquicontinuousOn.inducing_uniformOnFun_iff_pi' + theorem EquicontinuousOn.inducing_uniformOnFun_iff_pi + theorem EquicontinuousOn.isClosed_range_pi_of_uniformOnFun' + theorem EquicontinuousOn.isClosed_range_uniformOnFun_iff_pi + theorem EquicontinuousOn.tendsto_uniformOnFun_iff_pi' + theorem EquicontinuousOn.tendsto_uniformOnFun_iff_pi + theorem EquicontinuousOn.uniformInducing_uniformOnFun_iff_pi' + theorem EquicontinuousOn.uniformInducing_uniformOnFun_iff_pi Modified Mathlib/Topology/UniformSpace/Pi.lean + theorem Pi.uniformSpace_comap_restrict_sUnion Modified Mathlib/Topology/UniformSpace/UniformConvergenceTopology.lean + theorem UniformOnFun.uniformContinuous_restrict_toFun 2024-04-07 21:26:21 e29d107 feat: Equivalence of arc and chord distances for unit complex numbers (#11124) From LeanAPAP ESTIMATED CHANGES Modified Mathlib/Analysis/Complex/Angle.lean + theorem Complex.angle_le_mul_norm_sub + theorem Complex.mul_angle_le_norm_sub + theorem Complex.norm_sub_le_angle + theorem Complex.norm_sub_mem_Icc_angle 2024-04-07 20:38:45 345dab2 feat(CategoryTheory): a functor between `FinitaryPreExtensive` categories reflects finite effective epi families if it reflects effective epis (#11491) We prove that a functor between `FinitaryPreExtensive` categories preserves (resp. reflects) finite effective epi families if it preserves (resp. reflects) effective epis. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/EffectiveEpi/Extensive.lean + theorem CategoryTheory.effectiveEpi_desc_iff_effectiveEpiFamily Modified Mathlib/CategoryTheory/Sites/Coherent/Comparison.lean - theorem CategoryTheory.effectiveEpi_desc_iff_effectiveEpiFamily Modified Mathlib/Topology/Category/CompHaus/EffectiveEpi.lean Modified Mathlib/Topology/Category/Profinite/EffectiveEpi.lean 2024-04-07 19:21:51 0a6649f feat: generically, the restriction of a continuous functional calculus is equal to the original (#11958) ESTIMATED CHANGES Modified Mathlib/Analysis/NormedSpace/Star/ContinuousFunctionalCalculus/Restrict.lean + theorem SpectrumRestricts.cfcHom_eq_restrict + theorem SpectrumRestricts.cfc_eq_restrict + theorem SpectrumRestricts.closedEmbedding_starAlgHom + theorem SpectrumRestricts.starAlgHom_id Modified Mathlib/Topology/ContinuousFunction/FunctionalCalculus.lean + theorem cfcHom_eq_cfc_extend Modified Mathlib/Topology/ContinuousFunction/NonUnitalFunctionalCalculus.lean + theorem cfcₙHom_eq_cfcₙ_extend 2024-04-07 17:47:36 4762652 feat(Algebra/Module): Use coercion from SemilinearEquivClass to SemilinearEquiv (#11966) ESTIMATED CHANGES Modified Mathlib/Algebra/Module/Equiv.lean + def SemilinearEquivClass.semilinearEquiv 2024-04-07 17:47:35 b2af0d1 chore: Rename `coe_nat`/`coe_int`/`coe_rat` to `natCast`/`intCast`/`ratCast` (#11499) This is less exhaustive than its sibling #11486 because edge cases are harder to classify. No fundamental difficulty, just me being a bit fast and lazy. Reduce the diff of #11203 ESTIMATED CHANGES Modified Archive/Imo/Imo2019Q4.lean Modified Archive/Wiedijk100Theorems/BallotProblem.lean Modified Counterexamples/SorgenfreyLine.lean - theorem Counterexample.SorgenfreyLine.denseRange_coe_rat + theorem Counterexample.SorgenfreyLine.denseRange_ratCast Modified Mathlib/Algebra/Algebra/Subalgebra/Basic.lean Modified Mathlib/Algebra/CharZero/Lemmas.lean Modified Mathlib/Algebra/Module/CharacterModule.lean Modified Mathlib/Algebra/Module/Torsion.lean Modified Mathlib/Algebra/Order/Module/OrderedSMul.lean Modified Mathlib/Algebra/Order/Monoid/WithTop.lean - theorem WithBot.bot_ne_nat + theorem WithBot.bot_ne_natCast - theorem WithBot.coe_nat + theorem WithBot.coe_natCast + theorem WithBot.natCast_ne_bot - theorem WithBot.nat_ne_bot - theorem WithTop.coe_nat + theorem WithTop.coe_natCast + theorem WithTop.natCast_ne_top - theorem WithTop.nat_ne_top - theorem WithTop.top_ne_nat + theorem WithTop.top_ne_natCast Modified Mathlib/Algebra/Polynomial/Degree/CardPowDegree.lean Modified Mathlib/Algebra/Squarefree/Basic.lean - theorem Int.squarefree_coe_nat + theorem Int.squarefree_natCast Modified Mathlib/Analysis/Analytic/Constructions.lean Modified Mathlib/Analysis/Analytic/Meromorphic.lean Modified Mathlib/Analysis/BoxIntegral/Integrability.lean Modified Mathlib/Analysis/Normed/Group/Basic.lean - theorem Int.norm_coe_nat + theorem Int.norm_natCast - theorem Real.nnnorm_coe_nat + theorem Real.nnnorm_natCast - theorem Real.norm_coe_nat + theorem Real.norm_natCast Modified Mathlib/Analysis/NormedSpace/Int.lean - theorem Int.nnnorm_coe_nat + theorem Int.nnnorm_natCast Modified Mathlib/Analysis/NormedSpace/MatrixExponential.lean Modified Mathlib/Analysis/NormedSpace/PiLp.lean Modified Mathlib/Analysis/NormedSpace/ProdLp.lean Modified Mathlib/Analysis/NormedSpace/lpSpace.lean Modified Mathlib/Analysis/SpecialFunctions/Gamma/Beta.lean Modified Mathlib/Analysis/SpecificLimits/Basic.lean - theorem tendsto_coe_nat_div_add_atTop + theorem tendsto_natCast_div_add_atTop Modified Mathlib/Analysis/SpecificLimits/Normed.lean Modified Mathlib/Combinatorics/Additive/SalemSpencer.lean Modified Mathlib/Data/DFinsupp/Interval.lean Modified Mathlib/Data/ENNReal/Basic.lean - theorem ENNReal.coe_lt_coe_nat + theorem ENNReal.coe_lt_natCast - theorem ENNReal.coe_nat + theorem ENNReal.coe_natCast - theorem ENNReal.coe_nat_lt_coe + theorem ENNReal.natCast_lt_coe + theorem ENNReal.natCast_ne_top - theorem ENNReal.nat_ne_top - theorem ENNReal.ofReal_coe_nat + theorem ENNReal.ofReal_natCast - theorem ENNReal.top_ne_nat + theorem ENNReal.top_ne_natCast Modified Mathlib/Data/ENNReal/Operations.lean Modified Mathlib/Data/ENNReal/Real.lean - theorem ENNReal.iSup_coe_nat + theorem ENNReal.iSup_natCast Modified Mathlib/Data/Finset/Finsupp.lean Modified Mathlib/Data/Int/Cast/Lemmas.lean - theorem Int.coe_nat_pos - theorem Int.coe_nat_succ_pos + theorem Int.natCast_pos + theorem Int.natCast_succ_pos - theorem Pi.coe_int + theorem Pi.intCast_apply + theorem Pi.intCast_def - theorem Pi.int_apply Modified Mathlib/Data/NNRat/Defs.lean - theorem NNRat.mk_coe_nat + theorem NNRat.mk_natCast Modified Mathlib/Data/Nat/Cast/Basic.lean - theorem Pi.coe_nat + theorem Pi.natCast_apply + theorem Pi.natCast_def - theorem Pi.nat_apply Modified Mathlib/Data/Nat/ModEq.lean Modified Mathlib/Data/Rat/Cast/Defs.lean Modified Mathlib/Data/Rat/Cast/Lemmas.lean Modified Mathlib/Data/Rat/Defs.lean - theorem Rat.coe_int_div_eq_divInt - theorem Rat.coe_int_eq_divInt - theorem Rat.coe_nat_eq_divInt + theorem Rat.intCast_div_eq_divInt + theorem Rat.intCast_eq_divInt + theorem Rat.natCast_eq_divInt Modified Mathlib/Data/Rat/Floor.lean Modified Mathlib/Data/Rat/Lemmas.lean - theorem Rat.coe_int_div - theorem Rat.coe_int_div_self - theorem Rat.coe_nat_div - theorem Rat.coe_nat_div_self + theorem Rat.intCast_div + theorem Rat.intCast_div_self - theorem Rat.inv_coe_int_den - theorem Rat.inv_coe_int_den_of_pos - theorem Rat.inv_coe_int_num - theorem Rat.inv_coe_int_num_of_pos - theorem Rat.inv_coe_nat_den - theorem Rat.inv_coe_nat_den_of_pos - theorem Rat.inv_coe_nat_num - theorem Rat.inv_coe_nat_num_of_pos + theorem Rat.inv_intCast_den + theorem Rat.inv_intCast_den_of_pos + theorem Rat.inv_intCast_num + theorem Rat.inv_intCast_num_of_pos + theorem Rat.inv_natCast_den + theorem Rat.inv_natCast_den_of_pos + theorem Rat.inv_natCast_num + theorem Rat.inv_natCast_num_of_pos + theorem Rat.natCast_div + theorem Rat.natCast_div_self Modified Mathlib/Data/Rat/Order.lean Modified Mathlib/Data/Rat/Sqrt.lean Modified Mathlib/Data/Real/Irrational.lean Modified Mathlib/Data/Real/NNReal.lean - theorem NNReal.mk_coe_nat + theorem NNReal.mk_natCast Modified Mathlib/FieldTheory/Adjoin.lean - theorem IntermediateField.adjoin_int + theorem IntermediateField.adjoin_intCast - theorem IntermediateField.adjoin_nat + theorem IntermediateField.adjoin_natCast Modified Mathlib/FieldTheory/IntermediateField.lean - theorem IntermediateField.coe_nat_mem + theorem IntermediateField.natCast_mem Modified Mathlib/FieldTheory/KummerExtension.lean Modified Mathlib/FieldTheory/Subfield.lean + theorem SubfieldClass.coe_ratCast - theorem SubfieldClass.coe_rat_cast - theorem SubfieldClass.coe_rat_mem + theorem SubfieldClass.ratCast_mem Modified Mathlib/GroupTheory/Perm/Cycle/Basic.lean Modified Mathlib/GroupTheory/SpecificGroups/Cyclic.lean Modified Mathlib/LinearAlgebra/Matrix/ZPow.lean - theorem Matrix.zpow_neg_coe_nat + theorem Matrix.zpow_neg_natCast Modified Mathlib/MeasureTheory/Constructions/HaarToSphere.lean Modified Mathlib/MeasureTheory/Covering/Besicovitch.lean Modified Mathlib/MeasureTheory/Function/AEEqOfIntegral.lean Modified Mathlib/MeasureTheory/Function/UniformIntegrable.lean Modified Mathlib/MeasureTheory/Group/Measure.lean Modified Mathlib/MeasureTheory/Integral/Lebesgue.lean Modified Mathlib/MeasureTheory/Measure/Count.lean Modified Mathlib/MeasureTheory/Measure/Hausdorff.lean Modified Mathlib/NumberTheory/ClassNumber/Finite.lean Modified Mathlib/NumberTheory/DiophantineApproximation.lean Modified Mathlib/NumberTheory/Liouville/Basic.lean Modified Mathlib/NumberTheory/Liouville/Measure.lean Modified Mathlib/NumberTheory/Liouville/Residual.lean Modified Mathlib/NumberTheory/LucasLehmer.lean - theorem LucasLehmer.X.coe_nat + theorem LucasLehmer.X.coe_natCast Modified Mathlib/NumberTheory/Multiplicity.lean Modified Mathlib/NumberTheory/NumberField/CanonicalEmbedding/ConvexBody.lean Modified Mathlib/NumberTheory/Padics/PadicIntegers.lean - theorem PadicInt.coe_int_eq + theorem PadicInt.intCast_eq Modified Mathlib/NumberTheory/Padics/PadicVal.lean Modified Mathlib/NumberTheory/Pell.lean Modified Mathlib/NumberTheory/PellMatiyasevic.lean Modified Mathlib/NumberTheory/SmoothNumbers.lean Modified Mathlib/NumberTheory/Zsqrtd/Basic.lean - theorem Zsqrtd.coe_int_im - theorem Zsqrtd.coe_int_re - theorem Zsqrtd.coe_int_val - theorem Zsqrtd.coe_nat_im - theorem Zsqrtd.coe_nat_re - theorem Zsqrtd.coe_nat_val + theorem Zsqrtd.intCast_im + theorem Zsqrtd.intCast_re + theorem Zsqrtd.intCast_val + theorem Zsqrtd.natCast_im + theorem Zsqrtd.natCast_re + theorem Zsqrtd.natCast_val - theorem Zsqrtd.ofInt_eq_coe + theorem Zsqrtd.ofInt_eq_intCast Modified Mathlib/NumberTheory/Zsqrtd/GaussianInt.lean - theorem GaussianInt.abs_coe_nat_norm + theorem GaussianInt.abs_natCast_norm Modified Mathlib/Order/Filter/Germ.lean - theorem Filter.Germ.coe_int - theorem Filter.Germ.coe_nat + theorem Filter.Germ.intCast_def + theorem Filter.Germ.natCast_def Modified Mathlib/Probability/Distributions/Uniform.lean Modified Mathlib/Probability/Kernel/WithDensity.lean Modified Mathlib/Probability/Martingale/OptionalStopping.lean Modified Mathlib/Probability/Martingale/Upcrossing.lean Modified Mathlib/RingTheory/Derivation/Basic.lean - theorem Derivation.map_coe_int - theorem Derivation.map_coe_nat + theorem Derivation.map_intCast + theorem Derivation.map_natCast Modified Mathlib/RingTheory/Localization/Away/Basic.lean - theorem selfZPow_coe_nat + theorem selfZPow_natCast - theorem selfZPow_neg_coe_nat + theorem selfZPow_neg_natCast - theorem selfZPow_sub_cast_nat + theorem selfZPow_sub_natCast Modified Mathlib/RingTheory/Multiplicity.lean - theorem multiplicity.Int.coe_nat_multiplicity + theorem multiplicity.Int.natCast_multiplicity Modified Mathlib/RingTheory/Polynomial/Bernstein.lean Modified Mathlib/RingTheory/Subring/Basic.lean - theorem coe_int_mem + theorem intCast_mem Modified Mathlib/RingTheory/Subsemiring/Basic.lean - theorem coe_nat_mem Modified Mathlib/RingTheory/WittVector/Basic.lean Modified Mathlib/RingTheory/WittVector/Frobenius.lean Modified Mathlib/RingTheory/ZMod.lean Modified Mathlib/Tactic/Linarith/Preprocessing.lean - def Linarith.mk_coe_nat_nonneg_prf + def Linarith.mk_natCast_nonneg_prf Modified Mathlib/Topology/EMetricSpace/Basic.lean Modified Mathlib/Topology/Instances/Complex.lean Modified Mathlib/Topology/Instances/ENNReal.lean Modified Mathlib/Topology/MetricSpace/HausdorffDimension.lean 2024-04-07 17:14:11 3cb545c feat: existence of a limit in a concrete category implies smallness (#11625) In this PR, it is shown that if a functor `G : J ⥤ C` to a concrete category has a limit and that `forget C` is corepresentable, then `G ⋙ forget C).sections` is small. As the corepresentability property holds in many concrete categories (e.g. groups, abelian groups) and that we already know since #11420 that limits exist under the smallness assumption in such categories, then this lemma may be used in future PR in order to show that usual forgetful functors preserve all limits (regardless of universe assumptions). This shall be convenient in the development of sheaves of modules. In this PR, universes assumptions have also been generalized in the file `Limits.Yoneda`. In order to do this, a small refactor of the file `Limits.Types` was necessary. This introduces bijections like `compCoyonedaSectionsEquiv (F : J ⥤ C) (X : C) : (F ⋙ coyoneda.obj (op X)).sections ≃ ((const J).obj X ⟶ F)` with general universe parameters. In order to reduce imports in `Limits.Yoneda`, part of the file `Limits.Types` was moved to a new file `Limits.TypesFiltered`. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Category/MonCat/FilteredColimits.lean Modified Mathlib/CategoryTheory/Filtered/Final.lean Modified Mathlib/CategoryTheory/Limits/ConcreteCategory.lean + theorem CategoryTheory.Limits.Concrete.small_sections_of_hasLimit Modified Mathlib/CategoryTheory/Limits/Filtered.lean Modified Mathlib/CategoryTheory/Limits/FilteredColimitCommutesFiniteLimit.lean Modified Mathlib/CategoryTheory/Limits/Final.lean Modified Mathlib/CategoryTheory/Limits/Preserves/Finite.lean Modified Mathlib/CategoryTheory/Limits/Types.lean - theorem CategoryTheory.Limits.Types.FilteredColimit.colimit_eq_iff - theorem CategoryTheory.Limits.Types.FilteredColimit.colimit_eq_iff_aux - theorem CategoryTheory.Limits.Types.FilteredColimit.eqvGen_quot_rel_of_rel - theorem CategoryTheory.Limits.Types.FilteredColimit.isColimit_eq_iff - theorem CategoryTheory.Limits.Types.FilteredColimit.rel_of_quot_rel - theorem CategoryTheory.Limits.Types.Small.hasLimit_iff_small_sections + theorem CategoryTheory.Limits.Types.hasLimit_iff_small_sections + def CategoryTheory.Limits.compCoyonedaSectionsEquiv + def CategoryTheory.Limits.compYonedaSectionsEquiv + def CategoryTheory.Limits.opCompYonedaSectionsEquiv Added Mathlib/CategoryTheory/Limits/TypesFiltered.lean + theorem CategoryTheory.Limits.Types.FilteredColimit.colimit_eq_iff + theorem CategoryTheory.Limits.Types.FilteredColimit.colimit_eq_iff_aux + theorem CategoryTheory.Limits.Types.FilteredColimit.eqvGen_quot_rel_of_rel + theorem CategoryTheory.Limits.Types.FilteredColimit.isColimit_eq_iff + theorem CategoryTheory.Limits.Types.FilteredColimit.rel_of_quot_rel Modified Mathlib/CategoryTheory/Limits/Yoneda.lean + def CategoryTheory.Limits.coneOfSectionCompCoyoneda + def CategoryTheory.Limits.coneOfSectionCompYoneda +/- def CategoryTheory.coyonedaJointlyReflectsLimits +/- def CategoryTheory.yonedaJointlyReflectsLimits Modified Mathlib/Condensed/Explicit.lean Modified Mathlib/Topology/Category/TopCat/Limits/Cofiltered.lean Modified Mathlib/Topology/Category/TopCat/Limits/Konig.lean 2024-04-07 14:48:53 f19f1aa feat(AlgebraicGeometry/OpenImmersion): The category structure on the type of open covers of a scheme. (#11946) Morphisms are refinements between open covers. ESTIMATED CHANGES Modified Mathlib/AlgebraicGeometry/OpenImmersion.lean + def AlgebraicGeometry.Scheme.OpenCover.Hom.comp + def AlgebraicGeometry.Scheme.OpenCover.Hom.id + structure AlgebraicGeometry.Scheme.OpenCover.Hom + theorem AlgebraicGeometry.Scheme.OpenCover.comp_app + theorem AlgebraicGeometry.Scheme.OpenCover.comp_idx_apply + theorem AlgebraicGeometry.Scheme.OpenCover.id_app + theorem AlgebraicGeometry.Scheme.OpenCover.id_idx_apply 2024-04-07 14:48:52 ab84fe1 feat(Topology/Algebra/StrongTopology): introduce type synonym for abstract topologies on CLM (#11470) ESTIMATED CHANGES Modified Mathlib/Analysis/Calculus/ContDiff/Bounds.lean Modified Mathlib/Analysis/Calculus/FDeriv/Analytic.lean Modified Mathlib/Analysis/Distribution/SchwartzSpace.lean Modified Mathlib/Analysis/LocallyConvex/StrongTopology.lean - theorem ContinuousLinearMap.strongTopology.locallyConvexSpace + theorem UniformConvergenceCLM.locallyConvexSpace Modified Mathlib/Topology/Algebra/Module/StrongTopology.lean - theorem ContinuousLinearMap.strongTopology.continuousConstSMul - theorem ContinuousLinearMap.strongTopology.continuousSMul - theorem ContinuousLinearMap.strongTopology.embedding_coeFn - theorem ContinuousLinearMap.strongTopology.hasBasis_nhds_zero - theorem ContinuousLinearMap.strongTopology.hasBasis_nhds_zero_of_basis - theorem ContinuousLinearMap.strongTopology.t2Space - theorem ContinuousLinearMap.strongTopology.topologicalAddGroup - theorem ContinuousLinearMap.strongTopology.uniformContinuousConstSMul - def ContinuousLinearMap.strongTopology - theorem ContinuousLinearMap.strongUniformity.uniformAddGroup - theorem ContinuousLinearMap.strongUniformity.uniformEmbedding_coeFn - def ContinuousLinearMap.strongUniformity - theorem ContinuousLinearMap.strongUniformity_topology_eq + theorem UniformConvergenceCLM.continuousSMul + theorem UniformConvergenceCLM.embedding_coeFn + theorem UniformConvergenceCLM.hasBasis_nhds_zero + theorem UniformConvergenceCLM.hasBasis_nhds_zero_of_basis + theorem UniformConvergenceCLM.t2Space + theorem UniformConvergenceCLM.tendsto_iff_tendstoUniformlyOn + theorem UniformConvergenceCLM.uniformEmbedding_coeFn + theorem UniformConvergenceCLM.uniformity_toTopologicalSpace_eq + def UniformConvergenceCLM 2024-04-07 13:23:13 3556ded style: replace '.-/' by '. -/' (#11938) Purely automatic replacement. If this is in any way controversial; I'm happy to just close this PR. ESTIMATED CHANGES Modified Mathlib/Algebra/AddConstMap/Basic.lean Modified Mathlib/Algebra/Algebra/Unitization.lean Modified Mathlib/Algebra/Associated.lean Modified Mathlib/Algebra/BigOperators/Ring.lean Modified Mathlib/Algebra/Category/GroupCat/Adjunctions.lean Modified Mathlib/Algebra/Category/ModuleCat/Biproducts.lean Modified Mathlib/Algebra/Category/ModuleCat/Free.lean Modified Mathlib/Algebra/Category/ModuleCat/Subobject.lean Modified Mathlib/Algebra/Category/MonCat/Adjunctions.lean Modified Mathlib/Algebra/ContinuedFractions/TerminatedStable.lean Modified Mathlib/Algebra/DirectSum/Basic.lean Modified Mathlib/Algebra/DirectSum/Ring.lean Modified Mathlib/Algebra/Divisibility/Units.lean Modified Mathlib/Algebra/Group/Prod.lean Modified Mathlib/Algebra/GroupWithZero/Defs.lean Modified Mathlib/Algebra/GroupWithZero/NonZeroDivisors.lean Modified Mathlib/Algebra/Lie/Submodule.lean Modified Mathlib/Algebra/Module/DedekindDomain.lean Modified Mathlib/Algebra/Module/Injective.lean Modified Mathlib/Algebra/Module/PID.lean Modified Mathlib/Algebra/Module/Submodule/Map.lean Modified Mathlib/Algebra/Module/Torsion.lean Modified Mathlib/Algebra/MvPolynomial/Basic.lean Modified Mathlib/Algebra/MvPolynomial/Supported.lean Modified Mathlib/Algebra/Opposites.lean Modified Mathlib/Algebra/Order/BigOperators/Group/Finset.lean Modified Mathlib/Algebra/Order/Floor.lean Modified Mathlib/Algebra/Order/Floor/Div.lean Modified Mathlib/Algebra/Polynomial/FieldDivision.lean Modified Mathlib/Algebra/Ring/Aut.lean Modified Mathlib/Algebra/Ring/Divisibility/Basic.lean Modified Mathlib/Algebra/Ring/Equiv.lean Modified Mathlib/Algebra/Ring/Prod.lean Modified Mathlib/Algebra/Ring/ULift.lean Modified Mathlib/AlgebraicGeometry/PrimeSpectrum/Basic.lean Modified Mathlib/AlgebraicGeometry/ProjectiveSpectrum/Scheme.lean Modified Mathlib/AlgebraicGeometry/ProjectiveSpectrum/StructureSheaf.lean Modified Mathlib/AlgebraicTopology/FundamentalGroupoid/Basic.lean Modified Mathlib/Analysis/Analytic/CPolynomial.lean Modified Mathlib/Analysis/Analytic/Composition.lean Modified Mathlib/Analysis/Analytic/Constructions.lean Modified Mathlib/Analysis/BoundedVariation.lean Modified Mathlib/Analysis/Calculus/ContDiff/Basic.lean Modified Mathlib/Analysis/Calculus/FDeriv/Analytic.lean Modified Mathlib/Analysis/Calculus/FDeriv/Measurable.lean Modified Mathlib/Analysis/Calculus/Gradient/Basic.lean Modified Mathlib/Analysis/Calculus/Taylor.lean Modified Mathlib/Analysis/Complex/UpperHalfPlane/Metric.lean Modified Mathlib/Analysis/Fourier/FourierTransform.lean Modified Mathlib/Analysis/InnerProductSpace/GramSchmidtOrtho.lean Modified Mathlib/Analysis/InnerProductSpace/PiL2.lean Modified Mathlib/Analysis/InnerProductSpace/Projection.lean Modified Mathlib/Analysis/InnerProductSpace/Symmetric.lean Modified Mathlib/Analysis/LocallyConvex/BalancedCoreHull.lean Modified Mathlib/Analysis/LocallyConvex/Bounded.lean Modified Mathlib/Analysis/LocallyConvex/Polar.lean Modified Mathlib/Analysis/LocallyConvex/WithSeminorms.lean Modified Mathlib/Analysis/Normed/Field/Basic.lean Modified Mathlib/Analysis/NormedSpace/Dual.lean Modified Mathlib/Analysis/NormedSpace/Multilinear/Basic.lean Modified Mathlib/Analysis/NormedSpace/OperatorNorm/Basic.lean Modified Mathlib/Analysis/NormedSpace/OperatorNorm/NormedSpace.lean Modified Mathlib/Analysis/NormedSpace/PiTensorProduct/InjectiveSeminorm.lean Modified Mathlib/Analysis/NormedSpace/Span.lean Modified Mathlib/Analysis/NormedSpace/Unitization.lean Modified Mathlib/Analysis/SpecialFunctions/Exp.lean Modified Mathlib/Analysis/SpecialFunctions/Log/Base.lean Modified Mathlib/Analysis/SpecialFunctions/Pow/Real.lean Modified Mathlib/Analysis/SpecificLimits/Basic.lean Modified Mathlib/Analysis/VonNeumannAlgebra/Basic.lean Modified Mathlib/CategoryTheory/Abelian/Basic.lean Modified Mathlib/CategoryTheory/Abelian/LeftDerived.lean Modified Mathlib/CategoryTheory/Abelian/RightDerived.lean Modified Mathlib/CategoryTheory/ChosenFiniteProducts.lean Modified Mathlib/CategoryTheory/Comma/StructuredArrow.lean Modified Mathlib/CategoryTheory/ConcreteCategory/Basic.lean Modified Mathlib/CategoryTheory/DiscreteCategory.lean Modified Mathlib/CategoryTheory/GradedObject.lean Modified Mathlib/CategoryTheory/GuitartExact.lean Modified Mathlib/CategoryTheory/Limits/Cones.lean Modified Mathlib/CategoryTheory/Limits/Shapes/ConcreteCategory.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Kernels.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Pullbacks.lean Modified Mathlib/CategoryTheory/Monad/EquivMon.lean Modified Mathlib/CategoryTheory/Monad/Kleisli.lean Modified Mathlib/CategoryTheory/Sites/Grothendieck.lean Modified Mathlib/CategoryTheory/Sites/Sheaf.lean Modified Mathlib/CategoryTheory/Skeletal.lean Modified Mathlib/CategoryTheory/Triangulated/Opposite.lean Modified Mathlib/Combinatorics/Quiver/Symmetric.lean Modified Mathlib/Combinatorics/SimpleGraph/Maps.lean Modified Mathlib/Computability/Halting.lean Modified Mathlib/Control/Fix.lean Modified Mathlib/Data/DFinsupp/Basic.lean Modified Mathlib/Data/Fin/Basic.lean Modified Mathlib/Data/Fin/VecNotation.lean Modified Mathlib/Data/Finset/MulAntidiagonal.lean Modified Mathlib/Data/Fintype/Card.lean Modified Mathlib/Data/FunLike/Basic.lean Modified Mathlib/Data/FunLike/Equiv.lean Modified Mathlib/Data/Int/Bitwise.lean Modified Mathlib/Data/Matrix/Hadamard.lean Modified Mathlib/Data/Matroid/Basic.lean Modified Mathlib/Data/Nat/Bits.lean Modified Mathlib/Data/PSigma/Order.lean Modified Mathlib/Data/Set/Defs.lean Modified Mathlib/Data/Set/Finite.lean Modified Mathlib/Data/Set/Pairwise/Lattice.lean Modified Mathlib/Data/Set/Pointwise/Basic.lean Modified Mathlib/Data/Set/Sigma.lean Modified Mathlib/Data/Setoid/Partition.lean Modified Mathlib/Deprecated/Submonoid.lean Modified Mathlib/Dynamics/FixedPoints/Basic.lean Modified Mathlib/Dynamics/Flow.lean Modified Mathlib/FieldTheory/Adjoin.lean Modified Mathlib/FieldTheory/NormalClosure.lean Modified Mathlib/FieldTheory/Subfield.lean Modified Mathlib/Geometry/Manifold/ContMDiff/Defs.lean Modified Mathlib/Geometry/Manifold/SmoothManifoldWithCorners.lean Modified Mathlib/GroupTheory/Coset.lean Modified Mathlib/GroupTheory/Exponent.lean Modified Mathlib/GroupTheory/GroupAction/Group.lean Modified Mathlib/GroupTheory/GroupAction/SubMulAction.lean Modified Mathlib/GroupTheory/OrderOfElement.lean Modified Mathlib/GroupTheory/Perm/Sign.lean Modified Mathlib/GroupTheory/Subgroup/Basic.lean Modified Mathlib/Init/Algebra/Classes.lean Modified Mathlib/LinearAlgebra/BilinearMap.lean Modified Mathlib/LinearAlgebra/CliffordAlgebra/Basic.lean Modified Mathlib/LinearAlgebra/ExteriorAlgebra/Grading.lean Modified Mathlib/LinearAlgebra/FiniteDimensional.lean Modified Mathlib/LinearAlgebra/FreeModule/Basic.lean Modified Mathlib/LinearAlgebra/Lagrange.lean Modified Mathlib/LinearAlgebra/Matrix/NonsingularInverse.lean Modified Mathlib/LinearAlgebra/Matrix/ProjectiveSpecialLinearGroup.lean Modified Mathlib/LinearAlgebra/Matrix/SpecialLinearGroup.lean Modified Mathlib/LinearAlgebra/Matrix/Transvection.lean Modified Mathlib/LinearAlgebra/Multilinear/Basic.lean Modified Mathlib/LinearAlgebra/PiTensorProduct.lean Modified Mathlib/LinearAlgebra/Projection.lean Modified Mathlib/LinearAlgebra/Quotient.lean Modified Mathlib/LinearAlgebra/RootSystem/Defs.lean Modified Mathlib/LinearAlgebra/SesquilinearForm.lean Modified Mathlib/LinearAlgebra/Span.lean Modified Mathlib/LinearAlgebra/TensorProduct/Basic.lean Modified Mathlib/Logic/Equiv/Basic.lean Modified Mathlib/Logic/Function/Basic.lean Modified Mathlib/MeasureTheory/Constructions/BorelSpace/Basic.lean Modified Mathlib/MeasureTheory/Constructions/Polish.lean Modified Mathlib/MeasureTheory/Covering/Differentiation.lean Modified Mathlib/MeasureTheory/Decomposition/Lebesgue.lean Modified Mathlib/MeasureTheory/Function/AEEqOfIntegral.lean Modified Mathlib/MeasureTheory/Function/Jacobian.lean Modified Mathlib/MeasureTheory/Group/Measure.lean Modified Mathlib/MeasureTheory/Integral/CircleTransform.lean Modified Mathlib/MeasureTheory/MeasurableSpace/Basic.lean Modified Mathlib/MeasureTheory/MeasurableSpace/Invariants.lean Modified Mathlib/MeasureTheory/Measure/EverywherePos.lean Modified Mathlib/MeasureTheory/Measure/Haar/Disintegration.lean Modified Mathlib/MeasureTheory/Measure/Haar/Quotient.lean Modified Mathlib/MeasureTheory/PiSystem.lean Modified Mathlib/ModelTheory/Satisfiability.lean Modified Mathlib/NumberTheory/Cyclotomic/Basic.lean Modified Mathlib/NumberTheory/KummerDedekind.lean Modified Mathlib/NumberTheory/LSeries/Basic.lean Modified Mathlib/NumberTheory/LSeries/Dirichlet.lean Modified Mathlib/NumberTheory/Modular.lean Modified Mathlib/NumberTheory/ModularForms/CongruenceSubgroups.lean Modified Mathlib/NumberTheory/ModularForms/EisensteinSeries/Basic.lean Modified Mathlib/NumberTheory/ModularForms/SlashActions.lean Modified Mathlib/NumberTheory/ModularForms/SlashInvariantForms.lean Modified Mathlib/NumberTheory/Padics/PadicVal.lean Modified Mathlib/NumberTheory/PellMatiyasevic.lean Modified Mathlib/Order/Birkhoff.lean Modified Mathlib/Order/Bounds/Basic.lean Modified Mathlib/Order/ConditionallyCompleteLattice/Basic.lean Modified Mathlib/Order/Filter/AtTopBot.lean Modified Mathlib/Order/Filter/CardinalInter.lean Modified Mathlib/Order/Filter/CountableInter.lean Modified Mathlib/Order/Filter/Pointwise.lean Modified Mathlib/Order/Filter/Ultrafilter.lean Modified Mathlib/Order/Heyting/Hom.lean Modified Mathlib/Order/LiminfLimsup.lean Modified Mathlib/Order/RelSeries.lean Modified Mathlib/Order/Sublattice.lean Modified Mathlib/Order/WellFoundedSet.lean Modified Mathlib/Probability/IdentDistrib.lean Modified Mathlib/RepresentationTheory/Action/Limits.lean Modified Mathlib/RingTheory/AdjoinRoot.lean Modified Mathlib/RingTheory/Algebraic.lean Modified Mathlib/RingTheory/Coprime/Ideal.lean Modified Mathlib/RingTheory/DedekindDomain/Ideal.lean Modified Mathlib/RingTheory/Flat/Basic.lean Modified Mathlib/RingTheory/Ideal/Operations.lean Modified Mathlib/RingTheory/IntegralClosure.lean Modified Mathlib/RingTheory/LocalProperties.lean Modified Mathlib/RingTheory/MvPolynomial/Basic.lean Modified Mathlib/RingTheory/MvPowerSeries/Basic.lean Modified Mathlib/RingTheory/MvPowerSeries/Inverse.lean Modified Mathlib/RingTheory/NonUnitalSubsemiring/Basic.lean Modified Mathlib/RingTheory/Polynomial/Cyclotomic/Roots.lean Modified Mathlib/RingTheory/Polynomial/SeparableDegree.lean Modified Mathlib/RingTheory/Polynomial/Vieta.lean Modified Mathlib/RingTheory/PowerSeries/Basic.lean Modified Mathlib/RingTheory/PowerSeries/Derivative.lean Modified Mathlib/RingTheory/PowerSeries/Inverse.lean Modified Mathlib/RingTheory/PowerSeries/Order.lean Modified Mathlib/RingTheory/PowerSeries/Trunc.lean Modified Mathlib/RingTheory/Subsemiring/Basic.lean Modified Mathlib/RingTheory/Valuation/Basic.lean Modified Mathlib/RingTheory/Valuation/ValuationSubring.lean Modified Mathlib/SetTheory/ZFC/Basic.lean Modified Mathlib/Tactic/Linarith/Elimination.lean Modified Mathlib/Tactic/Simps/Basic.lean Modified Mathlib/Tactic/ToAdditive.lean Modified Mathlib/Tactic/Widget/Congrm.lean Modified Mathlib/Tactic/Widget/Conv.lean Modified Mathlib/Tactic/Widget/Gcongr.lean Modified Mathlib/Topology/Algebra/Group/Basic.lean Modified Mathlib/Topology/Algebra/Module/Basic.lean Modified Mathlib/Topology/Algebra/Module/LinearPMap.lean Modified Mathlib/Topology/Algebra/Monoid.lean Modified Mathlib/Topology/Algebra/Semigroup.lean Modified Mathlib/Topology/Algebra/UniformGroup.lean Modified Mathlib/Topology/Basic.lean Modified Mathlib/Topology/Category/CompHaus/Basic.lean Modified Mathlib/Topology/Compactness/Lindelof.lean Modified Mathlib/Topology/Compactness/SigmaCompact.lean Modified Mathlib/Topology/Connected/TotallyDisconnected.lean Modified Mathlib/Topology/ContinuousFunction/Algebra.lean Modified Mathlib/Topology/ContinuousFunction/Ideals.lean Modified Mathlib/Topology/ExtremallyDisconnected.lean Modified Mathlib/Topology/GDelta.lean Modified Mathlib/Topology/Homeomorph.lean Modified Mathlib/Topology/Homotopy/HSpaces.lean Modified Mathlib/Topology/Homotopy/Product.lean Modified Mathlib/Topology/Instances/ENNReal.lean Modified Mathlib/Topology/IsLocalHomeomorph.lean Modified Mathlib/Topology/MetricSpace/Gluing.lean Modified Mathlib/Topology/MetricSpace/Lipschitz.lean Modified Mathlib/Topology/MetricSpace/Perfect.lean Modified Mathlib/Topology/MetricSpace/PiNat.lean Modified Mathlib/Topology/MetricSpace/PseudoMetric.lean Modified Mathlib/Topology/Order/IntermediateValue.lean Modified Mathlib/Topology/Perfect.lean Modified Mathlib/Topology/QuasiSeparated.lean Modified Mathlib/Topology/Semicontinuous.lean Modified Mathlib/Topology/TietzeExtension.lean Modified Mathlib/Topology/UniformSpace/Basic.lean Modified Mathlib/Topology/UniformSpace/Equicontinuity.lean 2024-04-07 13:23:12 0b0e050 chore(Analysis/Distribution/SchwartzSpace): improve proofs (#11684) Use `move_mul` to make a few proofs more robust. ESTIMATED CHANGES Modified Mathlib/Analysis/Distribution/SchwartzSpace.lean Modified scripts/noshake.json 2024-04-07 12:11:42 9e1329b chore: make two proofs robust (#11983) Proofs by `simp` with many `-lemmas` are very fragile, and indeed this one broke on `nightly-testing`. Replaces with clearer proofs that use the relevant results already established, rather than fighting with `simp`. ESTIMATED CHANGES Modified Mathlib/Data/Rat/Lemmas.lean 2024-04-07 12:11:41 38efe79 feat: blacklist compiler definitions in shake (#11981) As [reported on Zulip](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/Point.26Click.20library.20rewrite.20tactic/near/431717134). ESTIMATED CHANGES Modified Mathlib/GroupTheory/MonoidLocalization.lean Modified Mathlib/Tactic/Eqns.lean Modified Mathlib/Tactic/Relation/Rfl.lean Modified Mathlib/Tactic/Widget/SelectInsertParamsClass.lean Modified Mathlib/Util/CompileInductive.lean Modified Shake/Main.lean + def isBlacklisted Modified scripts/noshake.json 2024-04-07 12:11:40 1151651 doc(Algebra,AlgebraicGeometry): remove mathlib3 names in doc comments (#11955) Mostly automatic, with a few manual corrections. ESTIMATED CHANGES Modified Mathlib/Algebra/BigOperators/Basic.lean Modified Mathlib/Algebra/BigOperators/Finsupp.lean Modified Mathlib/Algebra/Category/GroupCat/Adjunctions.lean Modified Mathlib/Algebra/Category/GroupCat/Basic.lean Modified Mathlib/Algebra/Category/GroupCat/Limits.lean Modified Mathlib/Algebra/Category/ModuleCat/Basic.lean Modified Mathlib/Algebra/Category/MonCat/Basic.lean Modified Mathlib/Algebra/Category/MonCat/Colimits.lean Modified Mathlib/Algebra/Category/MonCat/FilteredColimits.lean Modified Mathlib/Algebra/Category/MonCat/Limits.lean Modified Mathlib/Algebra/Category/Ring/FilteredColimits.lean Modified Mathlib/Algebra/Category/SemigroupCat/Basic.lean Modified Mathlib/Algebra/Group/Prod.lean Modified Mathlib/Algebra/Homology/ModuleCat.lean Modified Mathlib/Algebra/MvPolynomial/Monad.lean Modified Mathlib/Algebra/Order/Monoid/WithZero.lean Modified Mathlib/Algebra/Ring/Prod.lean Modified Mathlib/AlgebraicGeometry/Pullbacks.lean 2024-04-07 11:41:56 141a246 chore: Remove `generalize'` (#11685) ESTIMATED CHANGES Modified Mathlib/Analysis/BoxIntegral/Integrability.lean Modified Mathlib/Topology/Gluing.lean 2024-04-07 08:13:57 053d79f chore: remove some mathlib3 names in doc comments (#11931) ESTIMATED CHANGES Modified Mathlib/Algebra/Category/GroupCat/Colimits.lean Modified Mathlib/Algebra/Lie/Weights/Basic.lean Modified Mathlib/Algebra/Module/Basic.lean Modified Mathlib/Analysis/Fourier/AddCircle.lean Modified Mathlib/Analysis/InnerProductSpace/Basic.lean Modified Mathlib/Analysis/InnerProductSpace/PiL2.lean Modified Mathlib/Analysis/LocallyConvex/WithSeminorms.lean Modified Mathlib/Analysis/NormedSpace/Star/GelfandDuality.lean Modified Mathlib/Geometry/Manifold/Instances/Real.lean Modified Mathlib/Geometry/Manifold/SmoothManifoldWithCorners.lean Modified Mathlib/Geometry/Manifold/VectorBundle/Tangent.lean Modified Mathlib/MeasureTheory/Decomposition/SignedHahn.lean Modified Mathlib/MeasureTheory/Function/EssSup.lean Modified Mathlib/MeasureTheory/Function/L2Space.lean Modified Mathlib/MeasureTheory/Integral/DivergenceTheorem.lean Modified Mathlib/MeasureTheory/Integral/IntervalIntegral.lean Modified Mathlib/MeasureTheory/Measure/Haar/OfBasis.lean Modified Mathlib/Topology/Algebra/InfiniteSum/Real.lean Modified Mathlib/Topology/Bases.lean Modified Mathlib/Topology/MetricSpace/GromovHausdorff.lean Modified Mathlib/Topology/UniformSpace/CompareReals.lean Modified Mathlib/Topology/UniformSpace/Completion.lean Modified Mathlib/Topology/UniformSpace/UniformConvergenceTopology.lean 2024-04-07 08:13:56 956a5c5 chore: request a speed centre run for each nightly-testing-YYYY-MM-DD tag (#11856) ESTIMATED CHANGES Modified .github/workflows/nightly_detect_failure.yml 2024-04-07 07:06:21 47062a7 chore: Split `Data.{Nat,Int}{.Order}.Basic` in group vs ring instances (#11924) Scatter the content of `Data.Nat.Basic` across: * `Data.Nat.Defs` for the lemmas having no dependencies * `Algebra.Group.Nat` for the monoid instances and the few miscellaneous lemmas needing them. * `Algebra.Ring.Nat` for the semiring instance and the few miscellaneous lemmas following it. Similarly, scatter * `Data.Int.Basic` across `Data.Int.Defs`, `Algebra.Group.Int`, `Algebra.Ring.Int` * `Data.Nat.Order.Basic` across `Data.Nat.Defs`, `Algebra.Order.Group.Nat`, `Algebra.Order.Ring.Nat` * `Data.Int.Order.Basic` across `Data.Int.Defs`, `Algebra.Order.Group.Int`, `Algebra.Order.Ring.Int` Also move a few lemmas from `Data.Nat.Order.Lemmas` to `Data.Nat.Defs`. Before ![pre_11924](https://github.com/leanprover-community/mathlib4/assets/14090593/be8a6259-9d2d-434d-b4a5-f5667feb9e1d) After ![post_11924](https://github.com/leanprover-community/mathlib4/assets/14090593/3944f37f-8cfd-4254-830b-d0dbcd23b50a) ESTIMATED CHANGES Modified Counterexamples/ZeroDivisorsInAddMonoidAlgebras.lean Modified Mathlib.lean Modified Mathlib/Algebra/BigOperators/List/Basic.lean Modified Mathlib/Algebra/EuclideanDomain/Instances.lean Renamed Mathlib/Data/Int/Basic.lean to Mathlib/Algebra/Group/Int.lean - theorem Int.cast_Nat_cast - theorem Int.cast_mul - theorem Int.cast_pow Added Mathlib/Algebra/Group/Nat.lean + theorem Nat.ofAdd_mul + theorem Nat.toAdd_pow Modified Mathlib/Algebra/Group/NatPowAssoc.lean Modified Mathlib/Algebra/GroupPower/IterateHom.lean Modified Mathlib/Algebra/GroupWithZero/Power.lean Modified Mathlib/Algebra/Module/Basic.lean Modified Mathlib/Algebra/Order/Floor.lean Renamed Mathlib/Data/Int/Order/Basic.lean to Mathlib/Algebra/Order/Group/Int.lean - theorem Int.cast_mul_eq_zsmul_cast - theorem Int.emod_two_eq_zero_or_one - theorem Int.exists_lt_and_lt_iff_not_dvd - theorem Int.natAbs_sq - theorem Int.natCast_eq_zero - theorem Int.natCast_ne_zero - theorem Int.natCast_ne_zero_iff_pos - theorem Int.sign_add_eq_of_sign_eq - theorem Nat.cast_natAbs - theorem bit0_mul - theorem bit1_mul - theorem mul_bit0 - theorem mul_bit1 Added Mathlib/Algebra/Order/Group/Nat.lean + theorem NeZero.one_le Modified Mathlib/Algebra/Order/Ring/Abs.lean Added Mathlib/Algebra/Order/Ring/Int.lean + theorem Int.cast_mul_eq_zsmul_cast + theorem Int.emod_two_eq_zero_or_one + theorem Int.exists_lt_and_lt_iff_not_dvd + theorem Int.sign_add_eq_of_sign_eq + theorem Nat.cast_natAbs + theorem bit0_mul + theorem bit1_mul + theorem mul_bit0 + theorem mul_bit1 Renamed Mathlib/Data/Nat/Order/Basic.lean to Mathlib/Algebra/Order/Ring/Nat.lean - theorem NeZero.one_le Added Mathlib/Algebra/Ring/Int.lean + theorem Int.cast_Nat_cast + theorem Int.cast_mul + theorem Int.cast_pow Added Mathlib/Algebra/Ring/Nat.lean Modified Mathlib/Algebra/Tropical/Basic.lean Modified Mathlib/AlgebraicTopology/SimplicialSet.lean Modified Mathlib/CategoryTheory/ComposableArrows.lean Modified Mathlib/CategoryTheory/GradedObject.lean Modified Mathlib/Data/ByteArray.lean Modified Mathlib/Data/Fin/Basic.lean Modified Mathlib/Data/Finset/Basic.lean Modified Mathlib/Data/Finset/Image.lean Modified Mathlib/Data/Finset/NatAntidiagonal.lean Modified Mathlib/Data/Int/Bitwise.lean Modified Mathlib/Data/Int/Cast/Field.lean Modified Mathlib/Data/Int/Cast/Lemmas.lean Modified Mathlib/Data/Int/Defs.lean + theorem Int.natAbs_sq + theorem Int.natCast_eq_zero + theorem Int.natCast_ne_zero + theorem Int.natCast_ne_zero_iff_pos Modified Mathlib/Data/Int/Div.lean Modified Mathlib/Data/Int/Dvd/Basic.lean Modified Mathlib/Data/Int/Dvd/Pow.lean Modified Mathlib/Data/Int/LeastGreatest.lean Modified Mathlib/Data/Int/Parity.lean Modified Mathlib/Data/Int/Range.lean Modified Mathlib/Data/Int/SuccPred.lean Modified Mathlib/Data/Int/Units.lean Modified Mathlib/Data/List/Cycle.lean Modified Mathlib/Data/List/EditDistance/Defs.lean Modified Mathlib/Data/Multiset/Basic.lean Deleted Mathlib/Data/Nat/Basic.lean - theorem Nat.ofAdd_mul - theorem Nat.toAdd_pow Modified Mathlib/Data/Nat/Bits.lean Modified Mathlib/Data/Nat/Cast/Basic.lean Modified Mathlib/Data/Nat/Cast/Order.lean Modified Mathlib/Data/Nat/Cast/SetInterval.lean Modified Mathlib/Data/Nat/Cast/WithTop.lean Modified Mathlib/Data/Nat/Defs.lean +/- def Nat.decreasingInduction' + theorem Nat.div_div_div_eq_div + theorem Nat.div_eq_iff_eq_of_dvd_dvd + theorem Nat.div_lt_div_of_lt_of_dvd + theorem Nat.dvd_div_iff + theorem Nat.dvd_div_of_mul_dvd + theorem Nat.dvd_iff_div_mul_eq + theorem Nat.dvd_iff_dvd_dvd + theorem Nat.dvd_iff_le_div_mul + theorem Nat.dvd_left_iff_eq + theorem Nat.dvd_left_injective + theorem Nat.dvd_right_iff_eq + theorem Nat.dvd_sub' + theorem Nat.eq_zero_of_dvd_of_lt + theorem Nat.le_of_lt_add_of_dvd + theorem Nat.mul_div_eq_iff_dvd + theorem Nat.mul_div_lt_iff_not_dvd + theorem Nat.not_dvd_iff_between_consec_multiples + theorem Nat.succ_div + theorem Nat.succ_div_of_dvd + theorem Nat.succ_div_of_not_dvd Modified Mathlib/Data/Nat/Dist.lean Modified Mathlib/Data/Nat/ForSqrt.lean Modified Mathlib/Data/Nat/GCD/Basic.lean Modified Mathlib/Data/Nat/MaxPowDiv.lean Modified Mathlib/Data/Nat/Order/Lemmas.lean - theorem Nat.div_div_div_eq_div - theorem Nat.div_eq_iff_eq_of_dvd_dvd - theorem Nat.div_lt_div_of_lt_of_dvd - theorem Nat.dvd_div_iff - theorem Nat.dvd_div_of_mul_dvd - theorem Nat.dvd_iff_div_mul_eq - theorem Nat.dvd_iff_dvd_dvd - theorem Nat.dvd_iff_le_div_mul - theorem Nat.dvd_left_iff_eq - theorem Nat.dvd_left_injective - theorem Nat.dvd_right_iff_eq - theorem Nat.dvd_sub' - theorem Nat.eq_zero_of_dvd_of_lt - theorem Nat.le_of_lt_add_of_dvd - theorem Nat.mul_div_eq_iff_dvd - theorem Nat.mul_div_lt_iff_not_dvd - theorem Nat.not_dvd_iff_between_consec_multiples - theorem Nat.succ_div - theorem Nat.succ_div_of_dvd - theorem Nat.succ_div_of_not_dvd Modified Mathlib/Data/Nat/PSub.lean Modified Mathlib/Data/Nat/Sqrt.lean Modified Mathlib/Data/Nat/Units.lean Modified Mathlib/Data/Nat/Upto.lean Modified Mathlib/Data/Nat/WithBot.lean Modified Mathlib/Data/Ordmap/Ordset.lean Modified Mathlib/Data/PNat/Basic.lean Modified Mathlib/Data/Rat/Defs.lean Modified Mathlib/Data/Rat/Lemmas.lean Modified Mathlib/Data/Set/Enumerate.lean Modified Mathlib/Data/Set/Equitable.lean Modified Mathlib/Data/Set/Pointwise/Basic.lean Modified Mathlib/Data/Sym/Sym2.lean Modified Mathlib/Data/UInt.lean Modified Mathlib/Data/Vector.lean Modified Mathlib/GroupTheory/SpecificGroups/Quaternion.lean Modified Mathlib/GroupTheory/Submonoid/Operations.lean Modified Mathlib/Logic/Equiv/Fin.lean Modified Mathlib/NumberTheory/RamificationInertia.lean Modified Mathlib/Order/Category/NonemptyFinLinOrd.lean Modified Mathlib/Order/OmegaCompletePartialOrder.lean Modified Mathlib/Order/RelSeries.lean Modified Mathlib/Order/SupIndep.lean Modified Mathlib/SetTheory/Game/Basic.lean Modified Mathlib/SetTheory/Lists.lean Modified Mathlib/Tactic/NormNum/Basic.lean Modified Mathlib/Tactic/NormNum/Result.lean Modified Mathlib/Tactic/Positivity/Basic.lean Modified Mathlib/Tactic/Sat/FromLRAT.lean Modified Mathlib/Testing/SlimCheck/Sampleable.lean Modified scripts/noshake.json Modified scripts/style-exceptions.txt Modified test/GeneralizeProofs.lean Modified test/MoveAdd.lean Modified test/NthRewrite.lean Modified test/Zify.lean Modified test/congrm.lean Modified test/convert2.lean Modified test/linarith.lean Modified test/nontriviality.lean Modified test/rsuffices.lean Modified test/solve_by_elim/instances.lean Modified test/wlog.lean 2024-04-07 05:56:03 98715c2 feat: make push_neg fail if it didn't do anything (like simp) (#11784) ESTIMATED CHANGES Modified Mathlib/Tactic/ByContra.lean Modified Mathlib/Tactic/Contrapose.lean Modified Mathlib/Tactic/PushNeg.lean Modified test/push_neg.lean 2024-04-07 05:06:48 562a9a4 chore(Matrix/ToLin): fix `Fintype`/`Finite` (#11734) Also drop a no longer needed `[DecidableEq _]` argument in 1 lemma. It was needed to generate a computable `Fintype (Set.range _)` instance but a `Finite` instance doesn't need it. ESTIMATED CHANGES Modified Mathlib/Algebra/DirectSum/LinearMap.lean Modified Mathlib/Data/Matrix/Rank.lean +/- theorem Matrix.rank_diagonal +/- theorem Matrix.rank_eq_finrank_range_toLin +/- theorem Matrix.rank_le_card_height +/- theorem Matrix.rank_mul_eq_right_of_isUnit_det +/- theorem Matrix.rank_mul_le_right Modified Mathlib/LinearAlgebra/Contraction.lean +/- theorem toMatrix_dualTensorHom Modified Mathlib/LinearAlgebra/Matrix/Basis.lean +/- theorem Basis.toLin_toMatrix +/- theorem LinearMap.toMatrix_id_eq_basis_toMatrix +/- theorem basis_toMatrix_mul +/- theorem basis_toMatrix_mul_linearMap_toMatrix +/- theorem basis_toMatrix_mul_linearMap_toMatrix_mul_basis_toMatrix +/- theorem linearMap_toMatrix_mul_basis_toMatrix Modified Mathlib/LinearAlgebra/Matrix/ToLin.lean +/- theorem LinearMap.toMatrix_comp +/- theorem LinearMap.toMatrix_reindexRange +/- theorem Matrix.toLin_mul +/- theorem Matrix.toLin_mul_apply Modified Mathlib/LinearAlgebra/TensorProduct/Matrix.lean Modified Mathlib/RingTheory/TensorProduct/Basic.lean 2024-04-07 03:57:17 af58f9f style: replace '/--A' by '/-- A' for each letter A. (#11939) Also do the same for "/-A". This is a purely aesthetic change (and exhaustive). ESTIMATED CHANGES Modified Mathlib/Algebra/Quandle.lean Modified Mathlib/AlgebraicGeometry/ProjectiveSpectrum/Scheme.lean Modified Mathlib/CategoryTheory/FullSubcategory.lean Modified Mathlib/Data/Real/Sqrt.lean Modified Mathlib/Data/Set/Lattice.lean Modified Mathlib/Deprecated/Subgroup.lean Modified Mathlib/FieldTheory/Adjoin.lean Modified Mathlib/NumberTheory/FLT/Three.lean Modified Mathlib/Order/Atoms.lean Modified Mathlib/Order/Monotone/Monovary.lean Modified Mathlib/Order/SuccPred/Basic.lean Modified Mathlib/Probability/Distributions/Gaussian.lean Modified Mathlib/RepresentationTheory/Rep.lean Modified Mathlib/RingTheory/AlgebraicIndependent.lean Modified Mathlib/RingTheory/Artinian.lean Modified Mathlib/RingTheory/PowerSeries/Derivative.lean Modified Mathlib/Topology/Algebra/InfiniteSum/Nonarchimedean.lean Modified Mathlib/Topology/Algebra/Monoid.lean Modified Mathlib/Topology/Compactness/Lindelof.lean Modified Mathlib/Topology/ContinuousFunction/Basic.lean Modified Mathlib/Topology/MetricSpace/PseudoMetric.lean 2024-04-07 03:57:15 869214f chore(Data/List/Join): better notation (#11724) Summary of changes (all changes are cosmetic): * use `L` for a 2D lists instead of `l` consistently * use dot notation more * use anonymous function argument ESTIMATED CHANGES Modified Mathlib/Data/List/Join.lean +/- theorem List.sublist_join 2024-04-07 02:48:34 a7ffab8 chore(Data/Int/Cast): fix confusion between `OfNat` and `Nat.cast` lemmas (#11861) This renames * `Int.cast_ofNat` to `Int.cast_natCast` * `Int.int_cast_ofNat` to `Int.cast_ofNat` I think the history here is that this lemma was previously about `Int.ofNat`, before we globally fixed the simp-normal form to be `Nat.cast`. Since the `Int.cast_ofNat` name is repurposed, it can't be deprecated. `Int.int_cast_ofNat` is such a wonky name that it was probably never used. ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/Basic.lean Modified Mathlib/Algebra/CharP/Basic.lean Modified Mathlib/Algebra/CharP/MixedCharZero.lean Modified Mathlib/Algebra/CharZero/Quotient.lean Modified Mathlib/Algebra/DirectSum/Internal.lean Modified Mathlib/Algebra/Group/InjSurj.lean Modified Mathlib/Algebra/Group/Opposite.lean Modified Mathlib/Algebra/Group/ULift.lean Modified Mathlib/Algebra/ModEq.lean Modified Mathlib/Algebra/Order/Archimedean.lean Modified Mathlib/Algebra/Order/Floor.lean +/- theorem Int.ceil_add_nat +/- theorem Int.floor_add_nat +/- theorem Int.floor_sub_nat Modified Mathlib/Algebra/Periodic.lean Modified Mathlib/Algebra/Quaternion.lean Modified Mathlib/Algebra/RingQuot.lean Modified Mathlib/Algebra/Star/CHSH.lean Modified Mathlib/Algebra/TrivSqZeroExt.lean Modified Mathlib/Analysis/Calculus/Deriv/ZPow.lean Modified Mathlib/Analysis/Distribution/SchwartzSpace.lean Modified Mathlib/Analysis/InnerProductSpace/OfNorm.lean Modified Mathlib/Analysis/Normed/Group/Basic.lean Modified Mathlib/Analysis/PSeries.lean Modified Mathlib/Analysis/SpecialFunctions/Gamma/Beta.lean Modified Mathlib/Analysis/SpecialFunctions/Log/Basic.lean Modified Mathlib/Analysis/SpecialFunctions/Pow/NNReal.lean Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Angle.lean Modified Mathlib/Combinatorics/Derangements/Exponential.lean Modified Mathlib/Computability/AkraBazzi/GrowsPolynomially.lean Modified Mathlib/Data/Int/Basic.lean Modified Mathlib/Data/Int/CardIntervalMod.lean Modified Mathlib/Data/Int/Cast/Basic.lean +/- theorem Int.cast_four + theorem Int.cast_natCast +/- theorem Int.cast_ofNat +/- theorem Int.cast_three +/- theorem Int.cast_two - theorem Int.int_cast_ofNat Modified Mathlib/Data/Int/Cast/Lemmas.lean Modified Mathlib/Data/Int/Cast/Prod.lean Modified Mathlib/Data/Int/CharZero.lean Modified Mathlib/Data/Int/Order/Basic.lean Modified Mathlib/Data/Matrix/Basic.lean Modified Mathlib/Data/NNRat/Lemmas.lean Modified Mathlib/Data/Num/Lemmas.lean Modified Mathlib/Data/Rat/Cast/CharZero.lean Modified Mathlib/Data/Rat/Cast/Defs.lean Modified Mathlib/Data/Rat/Defs.lean Modified Mathlib/Data/Rat/Lemmas.lean Modified Mathlib/Data/ZMod/Basic.lean Modified Mathlib/Data/ZMod/Defs.lean Modified Mathlib/Dynamics/Circle/RotationNumber/TranslationNumber.lean Modified Mathlib/FieldTheory/KummerExtension.lean Modified Mathlib/FieldTheory/PerfectClosure.lean Modified Mathlib/FieldTheory/RatFunc.lean Modified Mathlib/GroupTheory/Subsemigroup/Center.lean Modified Mathlib/Logic/Equiv/TransferInstance.lean Modified Mathlib/NumberTheory/ClassNumber/AdmissibleCardPowDegree.lean Modified Mathlib/NumberTheory/Cyclotomic/PID.lean Modified Mathlib/NumberTheory/DiophantineApproximation.lean Modified Mathlib/NumberTheory/ModularForms/JacobiTheta/OneVariable.lean Modified Mathlib/NumberTheory/ModularForms/JacobiTheta/TwoVariable.lean Modified Mathlib/NumberTheory/NumberField/Discriminant.lean Modified Mathlib/NumberTheory/NumberField/FractionalIdeal.lean Modified Mathlib/NumberTheory/Padics/PadicNorm.lean Modified Mathlib/NumberTheory/Padics/RingHoms.lean Modified Mathlib/NumberTheory/PrimesCongruentOne.lean Modified Mathlib/NumberTheory/ZetaFunction.lean Modified Mathlib/NumberTheory/ZetaValues.lean Modified Mathlib/NumberTheory/Zsqrtd/Basic.lean Modified Mathlib/NumberTheory/Zsqrtd/GaussianInt.lean Modified Mathlib/RingTheory/Coprime/Lemmas.lean Modified Mathlib/RingTheory/WittVector/Frobenius.lean Modified Mathlib/RingTheory/WittVector/MulCoeff.lean Modified Mathlib/Tactic/NormNum/Basic.lean Modified Mathlib/Tactic/NormNum/Ineq.lean Modified Mathlib/Tactic/NormNum/Inv.lean Modified Mathlib/Topology/Instances/AddCircle.lean 2024-04-06 22:44:27 de7e5c0 doc: replace mathlib3 names in doc comments (#11952) A few miscellaneous directories: `RingTheory`, `SetTheory`, `Combinatorics` and `CategoryTheory`. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Abelian/Homology.lean Modified Mathlib/CategoryTheory/Category/PartialFun.lean Modified Mathlib/CategoryTheory/Closed/Cartesian.lean Modified Mathlib/CategoryTheory/Monoidal/Rigid/Basic.lean Modified Mathlib/CategoryTheory/Preadditive/Mat.lean Modified Mathlib/CategoryTheory/Yoneda.lean Modified Mathlib/Combinatorics/Enumerative/Composition.lean Modified Mathlib/Combinatorics/SimpleGraph/Connectivity.lean Modified Mathlib/RepresentationTheory/Action/Limits.lean Modified Mathlib/RepresentationTheory/Character.lean Modified Mathlib/RepresentationTheory/FdRep.lean Modified Mathlib/SetTheory/Ordinal/Notation.lean Modified Mathlib/SetTheory/ZFC/Basic.lean 2024-04-06 21:39:09 0941f62 doc(Tactic/ToAdditive): fix mathlib3 naming in the documentation (#11951) ESTIMATED CHANGES Modified Mathlib/Tactic/ToAdditive.lean 2024-04-06 21:09:23 7239b9f doc(Order): remove some mathlib3 names in docs (#11953) ESTIMATED CHANGES Modified Mathlib/Order/Category/NonemptyFinLinOrd.lean Modified Mathlib/Order/Category/PartOrd.lean 2024-04-06 18:56:37 a8a6713 chore(Analysis): fix mathlib3 names; automated fixes (#11950) ESTIMATED CHANGES Modified Mathlib/Analysis/Analytic/Composition.lean Modified Mathlib/Analysis/BoxIntegral/Partition/Filter.lean Modified Mathlib/Analysis/Calculus/LocalExtr/Rolle.lean Modified Mathlib/Analysis/Calculus/UniformLimitsDeriv.lean Modified Mathlib/Analysis/InnerProductSpace/GramSchmidtOrtho.lean Modified Mathlib/Analysis/InnerProductSpace/LinearPMap.lean Modified Mathlib/Analysis/Normed/Group/InfiniteSum.lean Modified Mathlib/Analysis/NormedSpace/DualNumber.lean Modified Mathlib/Analysis/NormedSpace/Exponential.lean Modified Mathlib/Analysis/NormedSpace/MatrixExponential.lean Modified Mathlib/Analysis/NormedSpace/QuaternionExponential.lean Modified Mathlib/Analysis/NormedSpace/Spectrum.lean Modified Mathlib/Analysis/NormedSpace/Star/Exponential.lean Modified Mathlib/Analysis/Seminorm.lean Modified Mathlib/Analysis/SpecificLimits/Normed.lean 2024-04-06 18:06:22 a437be7 doc(Topology): fix more mathlib3 names in doc comments (#11948) ESTIMATED CHANGES Modified Mathlib/Topology/Algebra/InfiniteSum/Module.lean Modified Mathlib/Topology/Category/CompHaus/Projective.lean Modified Mathlib/Topology/Category/Profinite/Nobeling.lean Modified Mathlib/Topology/Category/TopCommRingCat.lean Modified Mathlib/Topology/Compactness/Compact.lean Modified Mathlib/Topology/Homotopy/HSpaces.lean Modified Mathlib/Topology/Separation.lean Modified Mathlib/Topology/TietzeExtension.lean Modified Mathlib/Topology/UniformSpace/Basic.lean 2024-04-06 17:15:37 85cbf2d feat: the Fourier transform a function with fast enough decay is smooth (#11776) ESTIMATED CHANGES Modified Mathlib/Analysis/Fourier/FourierTransformDeriv.lean + theorem ContDiff.fourierPowSMulRight + theorem Continuous.fourierPowSMulRight + theorem MeasureTheory.AEStronglyMeasurable.fourierPowSMulRight + theorem Real.contDiff_fourierIntegral + theorem Real.iteratedDeriv_fourierIntegral + theorem Real.iteratedFDeriv_fourierIntegral + theorem VectorFourier.contDiff_fourierIntegral + def VectorFourier.fourierPowSMulRight + theorem VectorFourier.fourierPowSMulRight_apply + theorem VectorFourier.fourierPowSMulRight_eq_comp + theorem VectorFourier.hasFTaylorSeriesUpTo_fourierIntegral + theorem VectorFourier.integrable_fourierPowSMulRight + theorem VectorFourier.iteratedFDeriv_fourierIntegral + theorem VectorFourier.norm_fourierPowSMulRight_le 2024-04-06 16:24:52 b845312 chore(Data/Real/Sqrt): delete commented-out incomplete code (#11909) Delete the currently-unused `sqrtAux`, which is a doomed attempt at a computable definition of `Real.sqrt`. ESTIMATED CHANGES Modified Mathlib/Data/Real/Sqrt.lean - def Real.sqrtAux - theorem Real.sqrtAux_nonneg 2024-04-06 15:25:12 ad43687 doc(MeasureSpace): document notation eventually/frequently (#11932) And add a section `ae` grouping material related to the a.e. filter. ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Measure/MeasureSpaceDef.lean Modified scripts/nolints.json 2024-04-06 15:25:11 0d98b68 feat(ModelTheory): lift of equivalences between direct limits, and direct limit of system of substructures (#11174) Define the equivalence between direct limits of isomorphic systems, and the equivalence between the direct limit of a system of substructures and the union of these substructures. ESTIMATED CHANGES Modified Mathlib/ModelTheory/Basic.lean + theorem FirstOrder.Language.Embedding.toHom_inj + theorem FirstOrder.Language.Embedding.toHom_injective Modified Mathlib/ModelTheory/DirectLimit.lean + theorem FirstOrder.Language.DirectLimit.Equiv_isup_of_apply + theorem FirstOrder.Language.DirectLimit.Equiv_isup_symm_inclusion + theorem FirstOrder.Language.DirectLimit.Equiv_isup_symm_inclusion_apply + theorem FirstOrder.Language.DirectLimit.equiv_lift_of + theorem FirstOrder.Language.DirectLimit.exists_fg_substructure_in_Sigma + theorem FirstOrder.Language.DirectLimit.iSup_range_of_eq_top + def FirstOrder.Language.DirectLimit.liftInclusion + theorem FirstOrder.Language.DirectLimit.liftInclusion_of + theorem FirstOrder.Language.DirectLimit.rangeLiftInclusion + theorem FirstOrder.Language.DirectLimit.range_lift Modified Mathlib/ModelTheory/Substructures.lean + theorem FirstOrder.Language.Embedding.codRestrict_apply' + theorem FirstOrder.Language.Embedding.subtype_equivRange + theorem FirstOrder.Language.Embedding.subtype_substructureEquivMap + theorem FirstOrder.Language.Substructure.inclusion_self 2024-04-06 14:26:32 c86dc68 doc(SmoothManifoldWithCorners): document notation (#11933) for models with corners and `\infty` The first two docstrings are small modifications of the module docstring. ESTIMATED CHANGES Modified Mathlib/Geometry/Manifold/Instances/Real.lean Modified Mathlib/Geometry/Manifold/SmoothManifoldWithCorners.lean Modified scripts/nolints.json 2024-04-06 14:26:31 39ba55a chore(Geometry/Manifold): rename two lemmas using mathlib3 names (#11929) - range_half_space -> range_euclideanHalfSpace - range_quadrant -> range_euclideanQuadrant ESTIMATED CHANGES Modified Mathlib/Geometry/Manifold/Instances/Real.lean + theorem range_euclideanHalfSpace + theorem range_euclideanQuadrant - theorem range_half_space - theorem range_quadrant 2024-04-06 14:26:30 1c861a0 feat: generalize sq_pos_iff, sq_pos_of_ne_zero (#11743) This was previously about LinearOrderedRing, which is strictly stronger. The new assumptions match sq_nonneg. ESTIMATED CHANGES Modified Mathlib/Algebra/GroupPower/Order.lean +/- theorem sq_pos_iff +/- theorem sq_pos_of_ne_zero 2024-04-06 14:26:29 92f24cb feat: GCDMonoid (Associates α) instance (#11618) ESTIMATED CHANGES Modified Mathlib/Algebra/Associated.lean + theorem Associates.mk_quot_out Modified Mathlib/Algebra/GCDMonoid/Basic.lean + theorem Associated.gcd + theorem Associated.lcm + theorem Associates.gcd_mk_mk + theorem Associates.lcm_mk_mk 2024-04-06 13:28:08 68a8628 chore(SetTheory/Cardinal/Basic): add sections structuring the file better (#11603) This file is overly long: add some sections to structure the material better. And tweak one line break to be more logical. ESTIMATED CHANGES Modified Mathlib/SetTheory/Cardinal/Basic.lean 2024-04-06 11:52:04 f209d5e feat(Algebra/Lie): add Finite instance for Lie derivations (#11927) This commit is a small step towards proving that all derivations of a finite-dimensional semisimple Lie algebra over a field are inner; an objective mentioned here: https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/Derivations.20on.20Lie.20algebras. The proof will use the Killing form on the module of Lie derivations. The Killing form's API requires to work on modules which are both free and finite. This commit proves that, when `L` is a Lie algebra of finite dimension over a field, the module `LieDerivation R L L` is finite. ESTIMATED CHANGES Modified Mathlib/Algebra/Lie/Derivation/Basic.lean + def LieDerivation.toLinearMapLieHom + theorem LieDerivation.toLinearMapLieHom_injective 2024-04-06 10:45:09 f9e043c chore(Data/List): Do not depend on algebra (#11845) Remove dependencies on algebra in the `Data.List` folder except for: * `Data.List.EditDistance`: Actually relies on algebra. Maybe should be moved? * `Data.List.Card`: Completely unused and redundant. * `Data.List.Cycle`: Relies on `Fintype`, which shouldn't rely on algebra but it's hard to fix right now. Maybe should be moved? * `Data.List.Func`: Completely unused and redundant. * `Data.List.Lex`: That's order theory. Could be moved. * `Data.List.Prime`. That's algebra. Should definitely be moved. * `Data.List.Sym`: Relies on `Multiset`, which shouldn't rely on algebra but it's hard to fix right now. Maybe should be moved? * `Data.List.ToFinsupp`: That's algebra. Should definitely be moved. As a consequence, move the big operators lemmas that were in there to `Algebra.BigOperators.List.Basic`. For the lemmas that were `Nat`-specific and not about auxiliary definitions, keep a version of them in the original file but stated using `Nat.sum`. Before ![pre_11845](https://github.com/leanprover-community/mathlib4/assets/14090593/5912261a-7c57-4231-a7d4-aed9ed7c8c79) After ![post_11845](https://github.com/leanprover-community/mathlib4/assets/14090593/c523c187-2f5a-4d65-ba88-ae489855039e) ESTIMATED CHANGES Modified Mathlib/Algebra/BigOperators/List/Basic.lean + theorem List.Perm.prod_eq' + theorem List.Perm.prod_eq + theorem List.countP_bind + theorem List.countP_join + theorem List.count_bind + theorem List.count_join + theorem List.drop_sum_join + theorem List.drop_take_succ_join_eq_get + theorem List.length_bind + theorem List.length_join + theorem List.prod_reverse + theorem List.take_sum_join Modified Mathlib/Data/List/DropRight.lean Modified Mathlib/Data/List/Join.lean + theorem List.countP_bind' - theorem List.countP_bind + theorem List.countP_join' - theorem List.countP_join + theorem List.count_bind' - theorem List.count_bind + theorem List.count_join' - theorem List.count_join + theorem List.drop_sum_join' - theorem List.drop_sum_join + theorem List.drop_take_succ_join_eq_get' - theorem List.drop_take_succ_join_eq_get - theorem List.drop_take_succ_join_eq_nthLe + theorem List.length_bind' - theorem List.length_bind + theorem List.length_join' - theorem List.length_join - theorem List.sum_take_map_length_lt1 + theorem List.take_sum_join' - theorem List.take_sum_join Modified Mathlib/Data/List/Perm.lean - theorem List.Perm.prod_eq' - theorem List.Perm.prod_eq - theorem List.prod_reverse Modified Mathlib/Data/List/Permutation.lean Modified Mathlib/Data/List/Sublists.lean Modified Mathlib/Data/List/Zip.lean Modified Mathlib/Data/Multiset/Basic.lean Modified Mathlib/Data/Nat/Defs.lean Modified Mathlib/Data/Set/Pointwise/ListOfFn.lean Modified Mathlib/Data/Vector/Basic.lean 2024-04-06 10:45:08 1de0ce5 feat: First countability of topology is preserved in inducing, embedding, and taking subspaces. (#11830) Add `firstCountableTopology_induced`, `Subtype.firstCountableTopology`, `Inducing.firstCountableTopology`, and `Embedding.firstCountableTopology`. These are pretty literal counterparts of the existing `secondCountableTopology_induced`, `Subtype.secondCountableTopology`, `Inducing.secondCountableTopology`, and `Embedding.secondCountableTopology`. ESTIMATED CHANGES Modified Mathlib/Topology/Bases.lean + theorem TopologicalSpace.firstCountableTopology_induced 2024-04-06 09:41:29 9160ea1 refactor: Avoid `Rat` internals in the definition of `Field` (#11639) Soon, there will be `NNRat` analogs of the `Rat` fields in the definition of `Field`. `NNRat` is less nicely a structure than `Rat`, hence there is a need to reduce the dependency of `Field` on the internals of `Rat`. This PR achieves this by restating `Field.ratCast_mk'` in terms of `Rat.num`, `Rat.den`. This requires fixing a few downstream instances. Reduce the diff of #11203. ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/Basic.lean Modified Mathlib/Algebra/Field/Basic.lean Modified Mathlib/Algebra/Field/Defs.lean +/- def Rat.castRec +/- theorem Rat.cast_def +/- theorem Rat.cast_mk' +/- theorem Rat.smul_def Modified Mathlib/Algebra/Field/Opposite.lean Modified Mathlib/Algebra/Order/CauSeq/Completion.lean +/- theorem CauSeq.Completion.ofRat_div Modified Mathlib/Algebra/Quaternion.lean +/- theorem Quaternion.coe_rat_cast +/- theorem Quaternion.rat_cast_im +/- theorem Quaternion.rat_cast_imI +/- theorem Quaternion.rat_cast_imJ +/- theorem Quaternion.rat_cast_imK +/- theorem Quaternion.rat_cast_re Modified Mathlib/Analysis/Normed/Field/Basic.lean Modified Mathlib/Data/Complex/Basic.lean +/- theorem Complex.div_im +/- theorem Complex.div_re +/- theorem Complex.im_ofNat +/- theorem Complex.int_cast_im +/- theorem Complex.int_cast_re +/- theorem Complex.nat_cast_im +/- theorem Complex.nat_cast_re +/- theorem Complex.ofReal_int_cast +/- theorem Complex.ofReal_nat_cast +/- theorem Complex.ofReal_ofNat + theorem Complex.ofReal_qsmul +/- theorem Complex.ofReal_rat_cast +/- theorem Complex.rat_cast_im +/- theorem Complex.rat_cast_re +/- theorem Complex.re_ofNat Modified Mathlib/Data/Rat/Defs.lean + theorem Rat.den_ne_zero Modified Mathlib/Data/Rat/Field.lean Modified Mathlib/Data/Real/Basic.lean +/- theorem Real.cauchy_intCast +/- theorem Real.cauchy_natCast +/- theorem Real.cauchy_ratCast + theorem Real.ofCauchy_div +/- theorem Real.ofCauchy_intCast +/- theorem Real.ofCauchy_natCast +/- theorem Real.ofCauchy_ratCast Modified Mathlib/FieldTheory/IsAlgClosed/AlgebraicClosure.lean Modified Mathlib/FieldTheory/SplittingField/Construction.lean Modified Mathlib/NumberTheory/Liouville/Basic.lean Modified Mathlib/RingTheory/AdjoinRoot.lean Modified docs/undergrad.yaml 2024-04-06 09:12:04 7a28dbc Feat (Analysis/Normed/Ring/Seminorm): add equivalence of MulRingNorms (#11852) Include the definition of equivalence of `MulRingNorms` and the lemmas proving it is an equivalence relation. For this we add a new import (to `Mathlib.Analysis.SpecialFunctions.Pow.Real`). We also include a lemma describing the values of a multiplicative ring norm on the naturals, stating that for all `n : ℕ` if `f : MulRingNorm R` then `f n ≤ n` - David Kurniadi Angdinata - Fabrizio Barroero - Laura Capuano - Nirvana Coppola - María Inés de Frutos Fernández - Silvain Rideau-Kikuchi - Sam van Gool - Francesco Veneziano ESTIMATED CHANGES Modified Mathlib/Analysis/Normed/Ring/Seminorm.lean + def MulRingNorm.equiv + theorem MulRingNorm.equiv_refl + theorem MulRingNorm.equiv_symm + theorem MulRingNorm.equiv_trans + theorem MulRingNorm_nat_le_nat 2024-04-06 08:38:33 74f9a89 feat: add `of_eq` versions for lemmas on composition of derivatives (#11867) The versions we have assume that `f` is differentiable at `h x` and `h` is differentiable at `x`, to deduce that `f o h` is differentiable at `x`. In many applications, we have that `f` is differentiable at some point which happens to be equal to `h x`, but not definitionally, so one needs to jump through some hoops to apply the composition lemma. We add `of_eq` versions assuming instead that `f` is differentiable at `y` and that `y = h x`, which is much more flexible in practice. ESTIMATED CHANGES Modified Mathlib/Analysis/Calculus/Deriv/Comp.lean + theorem HasDerivAt.comp_hasDerivWithinAt_of_eq + theorem HasDerivAt.comp_hasFDerivAt_of_eq + theorem HasDerivAt.comp_hasFDerivWithinAt_of_eq + theorem HasDerivAt.comp_of_eq + theorem HasDerivAt.scomp_hasDerivWithinAt_of_eq + theorem HasDerivAt.scomp_of_eq + theorem HasDerivAtFilter.comp_hasFDerivAtFilter_of_eq + theorem HasDerivAtFilter.comp_of_eq + theorem HasDerivAtFilter.scomp_of_eq + theorem HasDerivWithinAt.comp_hasFDerivWithinAt_of_eq + theorem HasDerivWithinAt.comp_of_eq + theorem HasDerivWithinAt.scomp_hasDerivAt_of_eq + theorem HasDerivWithinAt.scomp_of_eq + theorem HasFDerivAt.comp_hasDerivAt_of_eq + theorem HasFDerivAt.comp_hasDerivWithinAt_of_eq + theorem HasFDerivWithinAt.comp_hasDerivWithinAt_of_eq + theorem HasStrictDerivAt.comp_hasStrictFDerivAt_of_eq + theorem HasStrictDerivAt.comp_of_eq + theorem HasStrictDerivAt.scomp_of_eq + theorem HasStrictFDerivAt.comp_hasStrictDerivAt_of_eq + theorem deriv.comp_of_eq + theorem deriv.scomp_of_eq + theorem derivWithin.comp_of_eq + theorem derivWithin.scomp_of_eq + theorem fderiv.comp_deriv_of_eq + theorem fderivWithin.comp_derivWithin_of_eq 2024-04-06 07:28:34 11431c6 chore: remove `mathport name: ` lines (#11928) [Quoting](https://github.com/leanprover-community/mathlib4/pull/11905#issuecomment-2039272591) `@digama0`: > These were actually never meant to go in the file, they are basically debugging information and only useful on significantly broken mathport files. You can safely remove all of them. ESTIMATED CHANGES Modified Mathlib/Algebra/Category/ModuleCat/ChangeOfRings.lean Modified Mathlib/Algebra/Lie/Free.lean Modified Mathlib/Algebra/Module/LinearMap/Basic.lean Modified Mathlib/Algebra/Polynomial/Basic.lean Modified Mathlib/Algebra/Quaternion.lean Modified Mathlib/Algebra/Ring/Equiv.lean Modified Mathlib/Algebra/Star/CHSH.lean Modified Mathlib/Algebra/Symmetrized.lean Modified Mathlib/Algebra/TrivSqZeroExt.lean Modified Mathlib/AlgebraicTopology/SimplicialObject.lean Modified Mathlib/Analysis/Convolution.lean Modified Mathlib/Analysis/Quaternion.lean Modified Mathlib/CategoryTheory/Adjunction/Basic.lean Modified Mathlib/CategoryTheory/Bicategory/Free.lean Modified Mathlib/CategoryTheory/Limits/ExactFunctor.lean Modified Mathlib/CategoryTheory/Preadditive/OfBiproducts.lean Modified Mathlib/Combinatorics/SetFamily/Compression/Down.lean Modified Mathlib/Combinatorics/SimpleGraph/Prod.lean Modified Mathlib/Computability/Reduce.lean Modified Mathlib/Data/DFinsupp/Basic.lean Modified Mathlib/Data/Finset/Slice.lean Modified Mathlib/Data/List/Duplicate.lean Modified Mathlib/Data/List/Perm.lean Modified Mathlib/Data/Matrix/Hadamard.lean Modified Mathlib/Data/NNRat/Defs.lean Modified Mathlib/Data/Num/Bitwise.lean Modified Mathlib/Data/Ordmap/Ordnode.lean Modified Mathlib/Data/Quot.lean Modified Mathlib/Data/Real/NNReal.lean Modified Mathlib/Data/Seq/Computation.lean Modified Mathlib/Data/Sigma/Order.lean Modified Mathlib/Dynamics/Circle/RotationNumber/TranslationNumber.lean Modified Mathlib/FieldTheory/Finite/Basic.lean Modified Mathlib/Geometry/Manifold/Instances/Real.lean Modified Mathlib/GroupTheory/GroupAction/Basic.lean Modified Mathlib/GroupTheory/GroupAction/Quotient.lean Modified Mathlib/GroupTheory/PresentedGroup.lean Modified Mathlib/LinearAlgebra/AffineSpace/Ordered.lean Modified Mathlib/LinearAlgebra/Matrix/Determinant.lean Modified Mathlib/LinearAlgebra/Matrix/Hermitian.lean Modified Mathlib/LinearAlgebra/SModEq.lean Modified Mathlib/LinearAlgebra/Span.lean Modified Mathlib/MeasureTheory/Function/AEEqFun.lean Modified Mathlib/MeasureTheory/Function/AEEqOfIntegral.lean Modified Mathlib/MeasureTheory/Function/L2Space.lean Modified Mathlib/MeasureTheory/Function/SimpleFuncDense.lean Modified Mathlib/MeasureTheory/Function/SimpleFuncDenseLp.lean Modified Mathlib/MeasureTheory/Function/StronglyMeasurable/Lp.lean Modified Mathlib/MeasureTheory/Integral/Bochner.lean Modified Mathlib/MeasureTheory/Integral/Lebesgue.lean Modified Mathlib/MeasureTheory/Integral/SetToL1.lean Modified Mathlib/MeasureTheory/Measure/Hausdorff.lean Modified Mathlib/MeasureTheory/Measure/MeasureSpace.lean Modified Mathlib/MeasureTheory/Measure/MeasureSpaceDef.lean Modified Mathlib/MeasureTheory/Measure/MutuallySingular.lean Modified Mathlib/MeasureTheory/Measure/VectorMeasure.lean Modified Mathlib/ModelTheory/ElementaryMaps.lean Modified Mathlib/ModelTheory/LanguageMap.lean Modified Mathlib/ModelTheory/Satisfiability.lean Modified Mathlib/NumberTheory/Dioph.lean Modified Mathlib/NumberTheory/Padics/PadicNumbers.lean Modified Mathlib/NumberTheory/Primorial.lean Modified Mathlib/RingTheory/OreLocalization/Basic.lean Modified Mathlib/RingTheory/Valuation/Basic.lean Modified Mathlib/RingTheory/WittVector/Basic.lean Modified Mathlib/RingTheory/WittVector/WittPolynomial.lean Modified Mathlib/SetTheory/Cardinal/Basic.lean Modified Mathlib/SetTheory/Cardinal/Continuum.lean Modified Mathlib/SetTheory/Ordinal/Basic.lean Modified Mathlib/Topology/Algebra/ContinuousAffineMap.lean Modified Mathlib/Topology/Algebra/UniformField.lean Modified Mathlib/Topology/ContinuousFunction/Bounded.lean Modified Mathlib/Topology/Homotopy/Equiv.lean Modified Mathlib/Topology/Homotopy/HomotopyGroup.lean Modified Mathlib/Topology/Instances/TrivSqZeroExt.lean Modified Mathlib/Topology/MetricSpace/GromovHausdorff.lean Modified Mathlib/Topology/Order/Hom/Basic.lean Modified Mathlib/Topology/UniformSpace/UniformConvergenceTopology.lean 2024-04-06 07:01:30 7c41b87 feat(CategoryTheory): a family is effective epi iff its precomposition with a family of split epis is (#11569) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/EffectiveEpi/Comp.lean + def CategoryTheory.effectiveEpiFamilyStructCompOfEffectiveEpiSplitEpi' + def CategoryTheory.effectiveEpiFamilyStructCompOfEffectiveEpiSplitEpi - def CategoryTheory.effectiveEpiFamilyStructIsoComp - theorem CategoryTheory.effectiveEpiFamilyStructIsoComp_aux + theorem CategoryTheory.effectiveEpiFamily_of_effectiveEpi_epi_comp - def CategoryTheory.effectiveEpiStructCompOfEffectiveEpiSplitEpi' - def CategoryTheory.effectiveEpiStructCompOfEffectiveEpiSplitEpi + theorem CategoryTheory.effectiveEpi_of_effectiveEpi_epi_comp 2024-04-06 01:51:11 ee6db57 feat: homeomorphisms preserve local compactness (#11901) Add a theorem `Homeomorph.locallyCompactSpace` that if the codomain of a homeomorphism is a locally compact space, then the domain is also a locally compact space. ESTIMATED CHANGES Modified Mathlib/Topology/Homeomorph.lean + theorem Homeomorph.locallyCompactSpace_iff 2024-04-06 00:52:31 3f22805 feat(LaurentSeries): Hasse derivatives of Laurent series (#11430) This PR defines Hasse derivatives of formal Laurent series using integer binomial coefficients, and proves some basic properties. ESTIMATED CHANGES Modified Mathlib/RingTheory/HahnSeries/Basic.lean Modified Mathlib/RingTheory/LaurentSeries.lean + def LaurentSeries.hasseDeriv + theorem LaurentSeries.hasseDeriv_coeff 2024-04-05 23:45:10 f7519d5 chore(Algebra/BigOperators/List): Use Std lemmas (#11725) * Make `Algebra.BigOperators.List.Basic`, `Data.List.Chain` not depend on `Data.Nat.Order.Basic` by using `Nat`-specific Std lemmas rather than general mathlib ones. I leave the `Data.Nat.Basic` import since `Algebra.BigOperators.List.Basic` is algebra territory. * Make `Algebra.BigOperators.List.Basic` not depend on `Algebra.Divisibility.Basic`. I'm not too sure about that one since they already are algebra. My motivation is that they involve ring-like objects while big operators are about group-like objects, but this is in some sense a second order refactor. * As a consequence, move the divisibility and `MonoidWithZero` lemmas from `Algebra.BigOperators.List.Basic` to `Algebra.BigOperators.List.Lemmas`. * Move the content of `Algebra.BigOperators.List.Defs` to `Algebra.BigOperators.List.Basic` since no file imported the former without the latter and their imports are becoming very close after this PR. * Make `Data.List.Count`, `Data.List.Dedup`, `Data.List.ProdSigma`, `Data.List.Zip` not depend on `Algebra.BigOperators.List.Basic`. * As a consequence, move the big operators lemmas that were in there to `Algebra.BigOperators.List.Basic`. For the lemmas that were `Nat` -specific, keep a version of them stated using `Nat.sum`. * To help with this, add `Nat.sum_eq_listSum (l : List Nat) : Nat.sum l = l.sum`. ESTIMATED CHANGES Modified Archive/Examples/IfNormalization/Result.lean Modified Archive/Examples/IfNormalization/WithoutAesop.lean Modified Mathlib.lean Modified Mathlib/Algebra/BigOperators/List/Basic.lean + def List.alternatingProd + def List.alternatingSum +/- theorem List.eq_of_prod_take_eq + def List.prod +/- theorem List.prod_eq_one - theorem List.prod_eq_zero - theorem List.prod_eq_zero_iff - theorem List.prod_ne_zero Deleted Mathlib/Algebra/BigOperators/List/Defs.lean - def List.alternatingProd - def List.alternatingSum - def List.prod Modified Mathlib/Algebra/BigOperators/List/Lemmas.lean + theorem List.prod_eq_zero + theorem List.prod_eq_zero_iff + theorem List.prod_ne_zero Modified Mathlib/Algebra/BigOperators/Multiset/Basic.lean Modified Mathlib/Algebra/FreeMonoid/Basic.lean Modified Mathlib/Algebra/Order/BigOperators/Group/List.lean Modified Mathlib/Algebra/Order/BigOperators/Group/Multiset.lean + theorem Multiset.max_le_of_forall_le Modified Mathlib/Data/Finset/Basic.lean Modified Mathlib/Data/List/Chain.lean Modified Mathlib/Data/List/Intervals.lean +/- theorem List.Ico.zero_bot Modified Mathlib/Data/List/NatAntidiagonal.lean Modified Mathlib/Data/List/Perm.lean Modified Mathlib/Data/List/Sigma.lean Modified Mathlib/Data/Multiset/Basic.lean +/- theorem Multiset.count_eq_zero +/- theorem Multiset.count_ne_zero Modified Mathlib/Data/Multiset/Fold.lean - theorem Multiset.max_le_of_forall_le - theorem Multiset.max_nat_le_of_forall_le Modified Mathlib/Data/Multiset/Powerset.lean Modified Mathlib/Data/Multiset/Range.lean Modified Mathlib/Data/Nat/ChineseRemainder.lean Modified Mathlib/Data/Nat/Defs.lean Modified Mathlib/LinearAlgebra/Matrix/Polynomial.lean Modified test/convert2.lean 2024-04-05 23:45:09 add8096 feat(CategoryTheory): reflecting the property of being precoherent and preregular (#11502) We prove that given a fully faitful functor `F : C ⥤ D` which preserves and reflects finite effective epimorphic families, such that for every object `X` of `D` there exists an object `W` of `C` with an effective epi `π : F.obj W ⟶ X`, the category `C` is `Precoherent` whenever `D` is. We prove the corresponding result for `Preregular`, but then it is enought that `F` preserves and reflects effective epis. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/CategoryTheory/Sites/Coherent/Equivalence.lean +/- theorem CategoryTheory.Equivalence.precoherent +/- theorem CategoryTheory.Equivalence.preregular Added Mathlib/CategoryTheory/Sites/Coherent/ReflectsPrecoherent.lean + theorem CategoryTheory.Functor.reflects_precoherent Added Mathlib/CategoryTheory/Sites/Coherent/ReflectsPreregular.lean + theorem CategoryTheory.Functor.reflects_preregular 2024-04-05 23:03:11 4c80060 chore: Slightly modify the split of `CanonicalEmbedding` (#11917) Create a new directory for the split of `CanonicalEmbedding` since more material is coming. Also add some docstrings. ESTIMATED CHANGES Modified Mathlib.lean Renamed Mathlib/NumberTheory/NumberField/CanonicalEmbedding.lean to Mathlib/NumberTheory/NumberField/CanonicalEmbedding/Basic.lean Renamed Mathlib/NumberTheory/NumberField/ConvexBody.lean to Mathlib/NumberTheory/NumberField/CanonicalEmbedding/ConvexBody.lean Modified Mathlib/NumberTheory/NumberField/Discriminant.lean Modified Mathlib/NumberTheory/NumberField/Units.lean 2024-04-05 23:03:10 9db18cf feat: integration by parts on the whole real line, assuming integrability of the product (#11916) We already have that `∫ (x : ℝ), u x * v' x = b' - a' - ∫ (x : ℝ), u' x * v x` if `u * v` tends to `a'` and `b'` at minus infinity and infinity. Assuming morevoer that `u * v` is integrable, we show that it tends to `0` at minus infinity and infinity, and therefore that `∫ (x : ℝ), u x * v' x = - ∫ (x : ℝ), u' x * v x`. We also give versions with a general bilinear form instead of multiplication. ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Function/L1Space.lean + theorem MeasureTheory.Integrable.smul_measure_nnreal Modified Mathlib/MeasureTheory/Integral/IntegrableOn.lean + theorem MeasureTheory.IntegrableAtFilter.eq_zero_of_tendsto Modified Mathlib/MeasureTheory/Integral/IntegralEqImproper.lean + theorem MeasureTheory.integral_bilinear_hasDerivAt_eq_sub + theorem MeasureTheory.integral_bilinear_hasDerivAt_right_eq_neg_left_of_integrable + theorem MeasureTheory.integral_bilinear_hasDerivAt_right_eq_sub +/- theorem MeasureTheory.integral_deriv_mul_eq_sub + theorem MeasureTheory.integral_eq_zero_of_hasDerivAt_of_integrable +/- theorem MeasureTheory.integral_mul_deriv_eq_deriv_mul + theorem MeasureTheory.integral_mul_deriv_eq_deriv_mul_of_integrable +/- theorem MeasureTheory.integral_of_hasDerivAt_of_tendsto + theorem MeasureTheory.tendsto_limUnder_of_hasDerivAt_of_integrableOn_Iic + theorem MeasureTheory.tendsto_limUnder_of_hasDerivAt_of_integrableOn_Ioi + theorem MeasureTheory.tendsto_zero_of_hasDerivAt_of_integrableOn_Iic + theorem MeasureTheory.tendsto_zero_of_hasDerivAt_of_integrableOn_Ioi Modified Mathlib/MeasureTheory/Integral/SetIntegral.lean + theorem MeasureTheory.tendsto_set_integral_of_antitone 2024-04-05 21:50:50 64e5ddf chore(Field/InjSurj): Tidy (#11480) Among other things, change the `nsmul`, `zsmul`, `qsmul` fields to have `n`/`q` come before `x`, because this matches the lemmas we want to write about them. It would be preferrable to perform the same changes to the `AddMonoid`/`AddGroup`-like typeclasses, but this is impossible with the current `to_additive` framework, so instead I have inserted some `Function.swap` at the interface between `AddMonoid`/`AddGroup` and `Ring`/`Field`. Reduce the diff of #11203 ESTIMATED CHANGES Modified Mathlib/Algebra/DirectSum/Ring.lean Modified Mathlib/Algebra/Field/Basic.lean + theorem ofDual_ratCast - theorem ofDual_rat_cast + theorem ofLex_ratCast - theorem ofLex_rat_cast + theorem toDual_ratCast - theorem toDual_rat_cast + theorem toLex_ratCast - theorem toLex_rat_cast Modified Mathlib/Algebra/Group/InjSurj.lean Modified Mathlib/Algebra/Order/Field/InjSurj.lean +/- def Function.Injective.linearOrderedField +/- def Function.Injective.linearOrderedSemifield Modified Mathlib/Algebra/Order/Kleene.lean Modified Mathlib/Algebra/Order/Ring/InjSurj.lean +/- def Function.Injective.linearOrderedRing Modified Mathlib/Algebra/Ring/CentroidHom.lean Modified Mathlib/Algebra/Ring/InjSurj.lean Modified Mathlib/Algebra/Star/SelfAdjoint.lean + theorem selfAdjoint.val_qsmul +/- theorem selfAdjoint.val_ratCast - theorem selfAdjoint.val_rat_smul Modified Mathlib/AlgebraicGeometry/FunctionField.lean Modified Mathlib/AlgebraicGeometry/GammaSpecAdjunction.lean Modified Mathlib/Data/BitVec/Lemmas.lean Modified Mathlib/RingTheory/GradedAlgebra/HomogeneousLocalization.lean +/- theorem HomogeneousLocalization.smul_val Modified Mathlib/RingTheory/WittVector/Basic.lean +/- theorem WittVector.mapFun.nsmul +/- theorem WittVector.mapFun.zsmul Modified Mathlib/RingTheory/WittVector/Truncated.lean +/- theorem WittVector.truncateFun_nsmul +/- theorem WittVector.truncateFun_zsmul Modified Mathlib/Topology/ContinuousFunction/Algebra.lean 2024-04-05 21:50:49 1b545f0 feat: continuous affine equivalences (#11341) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/LinearAlgebra/AffineSpace/AffineEquiv.lean Added Mathlib/LinearAlgebra/AffineSpace/ContinuousAffineEquiv.lean + def ContinuousAffineEquiv.Simps.apply + def ContinuousAffineEquiv.Simps.coe + theorem ContinuousAffineEquiv.apply_eq_iff_eq + theorem ContinuousAffineEquiv.apply_eq_iff_eq_symm_apply + theorem ContinuousAffineEquiv.apply_symm_apply + theorem ContinuousAffineEquiv.coe_coe + theorem ContinuousAffineEquiv.coe_injective + theorem ContinuousAffineEquiv.coe_refl + theorem ContinuousAffineEquiv.coe_toEquiv + theorem ContinuousAffineEquiv.coe_trans + def ContinuousAffineEquiv.constVAdd + theorem ContinuousAffineEquiv.constVAdd_coe + theorem ContinuousAffineEquiv.eq_symm_apply + theorem ContinuousAffineEquiv.ext + theorem ContinuousAffineEquiv.ext_iff + theorem ContinuousAffineEquiv.image_symm + theorem ContinuousAffineEquiv.preimage_symm + def ContinuousAffineEquiv.refl + theorem ContinuousAffineEquiv.refl_apply + theorem ContinuousAffineEquiv.refl_symm + theorem ContinuousAffineEquiv.refl_trans + theorem ContinuousAffineEquiv.self_trans_symm + def ContinuousAffineEquiv.symm + theorem ContinuousAffineEquiv.symm_apply_apply + theorem ContinuousAffineEquiv.symm_apply_eq + theorem ContinuousAffineEquiv.symm_refl + theorem ContinuousAffineEquiv.symm_symm + theorem ContinuousAffineEquiv.symm_symm_apply + theorem ContinuousAffineEquiv.symm_toAffineEquiv + theorem ContinuousAffineEquiv.symm_toEquiv + theorem ContinuousAffineEquiv.symm_trans_self + theorem ContinuousAffineEquiv.toAffineEquiv_injective + theorem ContinuousAffineEquiv.toAffineEquiv_refl + theorem ContinuousAffineEquiv.toEquiv_refl + def ContinuousAffineEquiv.toHomeomorph + def ContinuousAffineEquiv.trans + theorem ContinuousAffineEquiv.trans_apply + theorem ContinuousAffineEquiv.trans_assoc + theorem ContinuousAffineEquiv.trans_refl + structure ContinuousAffineEquiv + theorem ContinuousLinearEquiv.coe_toContinuousAffineEquiv + def ContinuousLinearEquiv.toContinuousAffineEquiv 2024-04-05 21:50:48 0162232 feat: Add `Zspan.fundamentalDomain_ae_parallelepiped` (#11321) Prove that the fundamental domain of a `ℤ`-lattice is almost equal to the corresponding parallelepiped. This is useful because many results in measure theory use the parallelepiped associated to a basis. ESTIMATED CHANGES Modified Mathlib/Algebra/Module/Zlattice.lean + theorem Zspan.fundamentalDomain_ae_parallelepiped + theorem Zspan.fundamentalDomain_subset_parallelepiped Modified Mathlib/MeasureTheory/Measure/Haar/OfBasis.lean + theorem parallelepiped_basis_eq 2024-04-05 21:50:47 fea58cd refactor: typeclasses for measures on quotient spaces and groups (#7506) We introduce a new typeclass `QuotientMeasureEqMeasurePreimage` which expresses a relationship between a measure on a space and a measure on its quotient under a discrete group action. Namely, the volume of a measurable set in the quotient is equal to the volume of its preimage, intersected with any fundamental domain. Our main application is in the context of a discrete normal subgroup of a topological group acting on the group itself, so as to compare Haar measures on a group and its quotient. Before this typeclass, you could have Haar measure upstairs and downstairs and you would have ugly scaling factors if you wanted to compare the two. This typeclass more accurately reflects what is needed in order to have a clear relationship between the upstairs and downstairs measures. Two big theorems (proved under various technical assumptions, like finiteness of the volume - which shouldn't be necessary): (1) if you're Haar upstairs and satisfy `QuotientMeasureEqMeasurePreimage`, then you're Haar downstairs. And conversely (2): if you're Haar upstairs and downstairs, and scale correctly on a single measurable set, then you satisfy `QuotientMeasureEqMeasurePreimage`. Contains the forward-port of https://github.com/leanprover-community/mathlib/pull/18863 ESTIMATED CHANGES Modified Mathlib/GroupTheory/QuotientGroup.lean + theorem QuotientGroup.sound Modified Mathlib/MeasureTheory/Constructions/Polish.lean Modified Mathlib/MeasureTheory/Group/FundamentalDomain.lean + theorem MeasureTheory.IsFundamentalDomain.covolume_eq_volume + theorem MeasureTheory.IsFundamentalDomain.hasFundamentalDomain + theorem MeasureTheory.IsFundamentalDomain.measurePreserving_quotient_mk + theorem MeasureTheory.IsFundamentalDomain.projection_respects_measure + theorem MeasureTheory.IsFundamentalDomain.projection_respects_measure_apply + theorem MeasureTheory.IsFundamentalDomain.quotientMeasureEqMeasurePreimage + theorem MeasureTheory.IsFundamentalDomain.quotientMeasureEqMeasurePreimage_of_zero + theorem MeasureTheory.IsFundamentalDomain.quotientMeasureEqMeasurePreimage_quotientMeasure + theorem MeasureTheory.IsFundamentalDomain.quotientMeasure_eq + theorem MeasureTheory.QuotientMeasureEqMeasurePreimage.covolume_ne_top + theorem MeasureTheory.QuotientMeasureEqMeasurePreimage.isFiniteMeasure_quotient + theorem MeasureTheory.QuotientMeasureEqMeasurePreimage.sigmaFiniteQuotient + theorem MeasureTheory.QuotientMeasureEqMeasurePreimage.unique + theorem MeasureTheory.measure_map_restrict_apply Modified Mathlib/MeasureTheory/Integral/Periodic.lean + theorem AddCircle.add_projection_respects_measure Modified Mathlib/MeasureTheory/Measure/Haar/Quotient.lean + theorem IsFundamentalDomain.QuotientMeasureEqMeasurePreimage_HaarMeasure + theorem IsFundamentalDomain.QuotientMeasureEqMeasurePreimage_smulHaarMeasure - theorem MeasurePreservingQuotientGroup.mk' - theorem MeasureTheory.IsFundamentalDomain.isMulLeftInvariant_map - theorem MeasureTheory.IsFundamentalDomain.map_restrict_quotient - theorem MeasureTheory.IsFundamentalDomain.smulInvariantMeasure_map + theorem MeasureTheory.Measure.IsMulLeftInvariant.quotientMeasureEqMeasurePreimage_of_set + theorem MeasureTheory.QuotientMeasureEqMeasurePreimage.haarMeasure_quotient + theorem MeasureTheory.QuotientMeasureEqMeasurePreimage.mulInvariantMeasure_quotient + theorem MeasureTheory.QuotientMeasureEqMeasurePreimage.smulInvariantMeasure_quotient + theorem MeasureTheory.leftInvariantIsQuotientMeasureEqMeasurePreimage + theorem measurePreserving_quotientGroup_mk_of_QuotientMeasureEqMeasurePreimage Modified Mathlib/Tactic/ToAdditive.lean 2024-04-05 21:50:45 75a72d0 refactor: Use `nsmul` in `zsmul_rec` (#862) It's annoying that `zsmulRec` uses `nsmulRec` to define `zsmul` even when the user already set `nsmul` explicitly. This PR changes `zsmulRec` to take `nsmul` as an argument. ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Aut.lean Modified Mathlib/Algebra/Group/Defs.lean +/- def zpowRec +/- def zsmulRec Modified Mathlib/Algebra/Ring/Aut.lean Modified Mathlib/Data/Finset/Pointwise.lean Modified Mathlib/Data/Real/Basic.lean Modified Mathlib/Data/Set/Pointwise/Basic.lean Modified Mathlib/NumberTheory/Dioph.lean Modified Mathlib/NumberTheory/Zsqrtd/Basic.lean Modified Mathlib/Order/Filter/Pointwise.lean Modified Mathlib/Topology/ContinuousFunction/Bounded.lean +/- theorem BoundedContinuousFunction.coe_zsmulRec Modified Mathlib/Topology/ContinuousFunction/ZeroAtInfty.lean - theorem ZeroAtInftyContinuousMap.coe_nsmulRec - theorem ZeroAtInftyContinuousMap.coe_zsmulRec 2024-04-05 20:49:37 d2bbe22 chore: reduce imports in Data.Nat.ModEq (#11923) ESTIMATED CHANGES Modified Mathlib/Data/Nat/ModEq.lean Modified Mathlib/NumberTheory/FLT/Basic.lean 2024-04-05 20:49:36 b54ea94 fix: add trailing line break to `noshake.json` (#11860) Add a line break at the end of the `noshake.json` file. Git does not like files that do not end in a new-line and when you `cat scripts/noshake.json` it is nicer if the file ends in a new line. :smile: I labeled it as `bug`, because it bugs me. :cockroach: ESTIMATED CHANGES Modified Shake/Main.lean 2024-04-05 20:49:35 9821d04 chore(Data/List/Func): Delete (#11847) This file was used in the Lean 3 implementation of `omega` and nowhere else. It's mathematically redundant with `Data.List.ToFinsupp`. ESTIMATED CHANGES Modified Mathlib.lean Deleted Mathlib/Data/List/Func.lean - def List.Func.Equiv - def List.Func.add - theorem List.Func.add_nil - theorem List.Func.eq_get_of_mem - theorem List.Func.eq_of_equiv - theorem List.Func.equiv_of_eq - theorem List.Func.equiv_refl - theorem List.Func.equiv_symm - theorem List.Func.equiv_trans - theorem List.Func.forall_val_of_forall_mem - def List.Func.get - theorem List.Func.get_add - theorem List.Func.get_eq_default_of_le - theorem List.Func.get_map' - theorem List.Func.get_map - theorem List.Func.get_neg - theorem List.Func.get_nil - theorem List.Func.get_pointwise - theorem List.Func.get_set - theorem List.Func.get_set_eq_of_ne - theorem List.Func.get_sub - theorem List.Func.length_add - theorem List.Func.length_neg - theorem List.Func.length_pointwise - theorem List.Func.length_set - theorem List.Func.length_sub - theorem List.Func.map_add_map - theorem List.Func.mem_get_of_le - theorem List.Func.mem_get_of_ne_zero - def List.Func.neg - theorem List.Func.nil_add - theorem List.Func.nil_pointwise - theorem List.Func.nil_sub - def List.Func.pointwise - theorem List.Func.pointwise_nil - def List.Func.set - def List.Func.sub - theorem List.Func.sub_nil 2024-04-05 20:49:34 7239f2e chore(Data/List/Card): Delete (#11846) As prophecised by the module doc, this file has been made fully redundant by the advent of `Finset` ESTIMATED CHANGES Modified Mathlib.lean Deleted Mathlib/Data/List/Card.lean - def List.card - theorem List.card_append_disjoint - theorem List.card_cons_of_mem - theorem List.card_cons_of_not_mem - theorem List.card_eq_of_equiv - theorem List.card_insert_of_mem - theorem List.card_insert_of_not_mem - theorem List.card_le_card_cons - theorem List.card_map_eq_of_inj_on - theorem List.card_map_le - theorem List.card_nil - theorem List.card_remove_of_mem - theorem List.card_subset_le - theorem List.card_union_disjoint - theorem List.equiv_iff_subset_and_subset - def List.inj_on - theorem List.inj_on_of_subset - theorem List.insert_equiv_cons - theorem List.mem_of_mem_remove - theorem List.mem_remove_iff - def List.remove - theorem List.remove_eq_of_not_mem - theorem List.union_equiv_append 2024-04-05 19:57:23 62cf98c feat(NumberTheory/Padics/PadicVal): Add `padicValNat_mul_pow_left/right` (#11354) Add two theorems solving goals of this form: for any primes `p` and `q` such that `p != q`, `padicValNat p (p^n * q^m) = n` ESTIMATED CHANGES Modified Mathlib/NumberTheory/Padics/PadicVal.lean + theorem padicValNat_mul_pow_left + theorem padicValNat_mul_pow_right + theorem padicValNat_prime_prime_pow 2024-04-05 18:00:50 2baa320 chore: reduce mathlib dependencies in Data.Nat.Defs (#11918) It seems that most of this file belongs in Std. This changes some proofs to avoid dependencies on mathlib, notably on the typeclass-mediated order lemmas. ESTIMATED CHANGES Modified Mathlib/Data/Nat/Defs.lean +/- theorem Nat.div_lt_one_iff +/- theorem Nat.eq_zero_of_le_half +/- theorem Nat.mul_self_inj +/- theorem Nat.not_succ_lt_self +/- theorem Nat.one_le_of_lt 2024-04-05 17:00:12 eb95964 chore: Homogenise instances for `MulOpposite`/`AddOpposite` (#11485) by declaring them all in `where` style with implicit type assumptions and `inst` prefix Here to reduce the diff from #11203 ESTIMATED CHANGES Modified Mathlib/Algebra/Field/Opposite.lean Modified Mathlib/Algebra/Group/Opposite.lean Modified Mathlib/Algebra/Module/Opposites.lean Modified Mathlib/Algebra/Opposites.lean +/- theorem AddOpposite.op_div +/- theorem AddOpposite.op_eq_one_iff +/- theorem AddOpposite.op_inv +/- theorem AddOpposite.op_mul +/- theorem AddOpposite.op_one +/- theorem AddOpposite.unop_div +/- theorem AddOpposite.unop_eq_one_iff +/- theorem AddOpposite.unop_inv +/- theorem AddOpposite.unop_mul +/- theorem AddOpposite.unop_one +/- theorem MulOpposite.op_add +/- theorem MulOpposite.op_eq_one_iff +/- theorem MulOpposite.op_inv +/- theorem MulOpposite.op_mul +/- theorem MulOpposite.op_neg +/- theorem MulOpposite.op_one +/- theorem MulOpposite.op_smul +/- theorem MulOpposite.op_sub +/- theorem MulOpposite.op_zero +/- theorem MulOpposite.unop_add +/- theorem MulOpposite.unop_inv +/- theorem MulOpposite.unop_mul +/- theorem MulOpposite.unop_neg +/- theorem MulOpposite.unop_one +/- theorem MulOpposite.unop_smul +/- theorem MulOpposite.unop_sub +/- theorem MulOpposite.unop_zero +/- def MulOpposite +/- structure PreOpposite Modified Mathlib/Algebra/Ring/Basic.lean Modified Mathlib/Algebra/Ring/Opposite.lean Modified Mathlib/Algebra/SMulWithZero.lean Modified Mathlib/Algebra/Star/Basic.lean Modified Mathlib/Analysis/Normed/Field/Basic.lean Modified Mathlib/Analysis/Normed/Group/Basic.lean Modified Mathlib/Analysis/NormedSpace/Basic.lean Modified Mathlib/GroupTheory/GroupAction/Opposite.lean +/- theorem MulOpposite.op_smul_eq_op_smul_op +/- theorem MulOpposite.unop_smul_eq_unop_smul_unop Modified Mathlib/Topology/MetricSpace/Basic.lean 2024-04-05 15:59:25 d5a796b chore: don't import Field in Algebra.Ring.Equiv (#11881) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Field/Equiv.lean Modified Mathlib/Algebra/GroupRingAction/Basic.lean Modified Mathlib/Algebra/Ring/Equiv.lean Modified Mathlib/RingTheory/Ideal/Basic.lean Modified Mathlib/RingTheory/Localization/FractionRing.lean 2024-04-05 15:59:24 bfa8843 feat: make `StarOrderedRing` a mixin (#11872) This makes `StarOrderedRing` take `StarRing` as a parameter instead of extending it, and as a result moves the typeclass to `Prop`. It was already a mixin with respect to the order and algebraic structure. There are two primary motivations: 1. This makes it possible to directly assume that `C(α, R)` is a `StarOrderedRing` with `[StarOrderedRing C(α, R)]`, as currently there is no typeclass on `R` which would naturally guarantee this property. This is relevant as we want this type class on continuous functions for the continuous functional calculus. 2. We will eventually want a `StarOrderedRing` instance on `C(α, A)` where `A` is a complex (or even real) C⋆-algebra, and making this a mixin avoids loops with `StarRing`. ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Ring/Star.lean Modified Mathlib/Algebra/Star/CHSH.lean +/- theorem CHSH_inequality_of_comm +/- theorem tsirelson_inequality Modified Mathlib/Algebra/Star/Order.lean +/- theorem StarOrderedRing.nonneg_iff + theorem StarOrderedRing.ofLEIff - def StarOrderedRing.ofLEIff + theorem StarOrderedRing.ofNonnegIff' - def StarOrderedRing.ofNonnegIff' + theorem StarOrderedRing.ofNonnegIff - def StarOrderedRing.ofNonnegIff Modified Mathlib/Analysis/NormedSpace/Star/ContinuousFunctionalCalculus/Instances.lean Modified Mathlib/Analysis/RCLike/Basic.lean + theorem RCLike.toStarOrderedRing - def RCLike.toStarOrderedRing Modified Mathlib/Combinatorics/SimpleGraph/LapMatrix.lean +/- theorem SimpleGraph.posSemidef_lapMatrix Modified Mathlib/Data/Matrix/Rank.lean Modified Mathlib/LinearAlgebra/Matrix/DotProduct.lean Modified Mathlib/LinearAlgebra/Matrix/PosDef.lean Modified Mathlib/LinearAlgebra/Matrix/SchurComplement.lean 2024-04-05 15:59:24 3cc22ef chore: Sort big operator order lemmas (#11750) Take the content of * some of `Algebra.BigOperators.List.Basic` * some of `Algebra.BigOperators.List.Lemmas` * some of `Algebra.BigOperators.Multiset.Basic` * some of `Algebra.BigOperators.Multiset.Lemmas` * `Algebra.BigOperators.Multiset.Order` * `Algebra.BigOperators.Order` and sort it into six files: * `Algebra.Order.BigOperators.Group.List`. I credit Yakov for https://github.com/leanprover-community/mathlib/pull/8543. * `Algebra.Order.BigOperators.Group.Multiset`. Copyright inherited from `Algebra.BigOperators.Multiset.Order`. * `Algebra.Order.BigOperators.Group.Finset`. Copyright inherited from `Algebra.BigOperators.Order`. * `Algebra.Order.BigOperators.Ring.List`. I credit Stuart for https://github.com/leanprover-community/mathlib/pull/10184. * `Algebra.Order.BigOperators.Ring.Multiset`. I credit Ruben for https://github.com/leanprover-community/mathlib/pull/8787. * `Algebra.Order.BigOperators.Ring.Finset`. I credit Floris for https://github.com/leanprover-community/mathlib/pull/1294. Here are the design decisions at play: * Pure algebra and big operators algebra shouldn't import (algebraic) order theory. This PR makes that better, but not perfect because we still import `Data.Nat.Order.Basic` in a few `List` files. * It's `Algebra.Order.BigOperators` instead of `Algebra.BigOperators.Order` because algebraic order theory is more of a theory than big operators algebra. Another reason is that algebraic order theory is the only way to mix pure order and pure algebra, while there are more ways to mix pure finiteness and pure algebra than just big operators. * There are separate files for group/monoid lemmas vs ring lemmas. Groups/monoids are the natural setup for big operators, so their lemmas shouldn't be mixed with ring lemmas that involves both addition and multiplication. As a result, everything under `Algebra.Order.BigOperators.Group` should be additivisable (except a few `Nat`- or `Int`-specific lemmas). In contrast, things under `Algebra.Order.BigOperators.Ring` are more prone to having heavy imports. * Lemmas are separated according to `List` vs `Multiset` vs `Finset`. This is not strictly necessary, and can be relaxed in cases where there aren't that many lemmas to be had. As an example, I could split out the `AbsoluteValue` lemmas from `Algebra.Order.BigOperators.Ring.Finset` to a file `Algebra.Order.BigOperators.Ring.AbsoluteValue` and it could stay this way until too many lemmas are in this file (or a split is needed for import reasons), in which case we would need files `Algebra.Order.BigOperators.Ring.AbsoluteValue.Finset`, `Algebra.Order.BigOperators.Ring.AbsoluteValue.Multiset`, etc... * `Finsupp` big operator and `finprod`/`finsum` order lemmas also belong in `Algebra.Order.BigOperators`. I haven't done so in this PR because the diff is big enough like that. ESTIMATED CHANGES Modified Archive/Imo/Imo1994Q1.lean Modified Archive/Imo/Imo1998Q2.lean Modified Archive/OxfordInvariants/Summer2021/Week3P1.lean Modified Mathlib.lean Modified Mathlib/Algebra/BigOperators/Basic.lean - theorem Commute.sum_left - theorem Commute.sum_right - theorem Finset.natCast_card_filter - theorem Finset.prod_add_prod_eq - theorem Finset.sum_boole - theorem Int.cast_list_prod - theorem Int.cast_list_sum - theorem Int.cast_multiset_prod - theorem Int.cast_multiset_sum - theorem Int.cast_prod - theorem Int.cast_sum - theorem Multiset.add_eq_union_left_of_le - theorem Multiset.add_eq_union_right_of_le - theorem Multiset.finset_sum_eq_sup_iff_disjoint - theorem Multiset.sup_powerset_len - theorem Nat.cast_list_prod - theorem Nat.cast_list_sum - theorem Nat.cast_multiset_prod - theorem Nat.cast_multiset_sum - theorem Nat.cast_prod - theorem Nat.cast_sum Modified Mathlib/Algebra/BigOperators/Finprod.lean Modified Mathlib/Algebra/BigOperators/Finsupp.lean Modified Mathlib/Algebra/BigOperators/List/Basic.lean - theorem CanonicallyOrderedCommSemiring.list_prod_pos - theorem List.Forall₂.prod_le_prod' - theorem List.Sublist.prod_le_prod' - theorem List.SublistForall₂.prod_le_prod' - theorem List.all_one_of_le_one_le_of_prod_eq_one - theorem List.exists_le_of_prod_le' - theorem List.exists_lt_of_prod_lt' - theorem List.monotone_prod_take - theorem List.one_le_prod_of_one_le - theorem List.one_lt_prod_of_one_lt - theorem List.prod_le_pow_card - theorem List.prod_le_prod' - theorem List.prod_lt_prod' - theorem List.prod_lt_prod_of_ne_nil - theorem List.prod_pos - theorem List.single_le_prod - theorem List.sum_le_foldr_max Modified Mathlib/Algebra/BigOperators/List/Lemmas.lean - theorem List.pow_card_le_prod - theorem List.prod_eq_one_iff Modified Mathlib/Algebra/BigOperators/Multiset/Lemmas.lean - theorem CanonicallyOrderedCommSemiring.multiset_prod_pos - theorem Multiset.prod_eq_one_iff Modified Mathlib/Algebra/BigOperators/Ring.lean + theorem Commute.sum_left + theorem Commute.sum_right + theorem Finset.natCast_card_filter + theorem Finset.prod_add_prod_eq + theorem Finset.sum_boole + theorem Int.cast_list_prod + theorem Int.cast_list_sum + theorem Int.cast_multiset_prod + theorem Int.cast_multiset_sum + theorem Int.cast_prod + theorem Int.cast_sum + theorem Nat.cast_list_prod + theorem Nat.cast_list_sum + theorem Nat.cast_multiset_prod + theorem Nat.cast_multiset_sum + theorem Nat.cast_prod + theorem Nat.cast_sum Modified Mathlib/Algebra/BigOperators/RingEquiv.lean Modified Mathlib/Algebra/GeomSum.lean Modified Mathlib/Algebra/GroupWithZero/NonZeroDivisors.lean - theorem prod_zero_iff_exists_zero Modified Mathlib/Algebra/MvPolynomial/Degrees.lean Renamed Mathlib/Algebra/BigOperators/Order.lean to Mathlib/Algebra/Order/BigOperators/Group/Finset.lean - theorem AbsoluteValue.sum_le - theorem CanonicallyOrderedCommSemiring.prod_pos - theorem Finset.abs_prod - theorem Finset.prod_add_prod_le' - theorem Finset.prod_add_prod_le - theorem Finset.prod_le_one - theorem Finset.prod_le_prod - theorem Finset.prod_lt_prod - theorem Finset.prod_lt_prod_of_nonempty - theorem Finset.prod_nonneg - theorem Finset.prod_pos - theorem Finset.sum_mul_sq_le_sq_mul_sq - theorem GCongr.prod_le_prod - theorem IsAbsoluteValue.abv_sum - theorem IsAbsoluteValue.map_prod + theorem Multiset.finset_sum_eq_sup_iff_disjoint + theorem Multiset.sup_powerset_len Added Mathlib/Algebra/Order/BigOperators/Group/List.lean + theorem List.Forall₂.prod_le_prod' + theorem List.Sublist.prod_le_prod' + theorem List.SublistForall₂.prod_le_prod' + theorem List.all_one_of_le_one_le_of_prod_eq_one + theorem List.exists_le_of_prod_le' + theorem List.exists_lt_of_prod_lt' + theorem List.monotone_prod_take + theorem List.one_le_prod_of_one_le + theorem List.one_lt_prod_of_one_lt + theorem List.pow_card_le_prod + theorem List.prod_eq_one_iff + theorem List.prod_le_pow_card + theorem List.prod_le_prod' + theorem List.prod_lt_prod' + theorem List.prod_lt_prod_of_ne_nil + theorem List.single_le_prod + theorem List.sum_le_foldr_max Renamed Mathlib/Algebra/BigOperators/Multiset/Order.lean to Mathlib/Algebra/Order/BigOperators/Group/Multiset.lean +/- theorem Multiset.le_prod_of_mem + theorem Multiset.prod_eq_one_iff - theorem Multiset.prod_nonneg Added Mathlib/Algebra/Order/BigOperators/Ring/Finset.lean + theorem AbsoluteValue.sum_le + theorem CanonicallyOrderedCommSemiring.prod_pos + theorem Finset.abs_prod + theorem Finset.prod_add_prod_le' + theorem Finset.prod_add_prod_le + theorem Finset.prod_le_one + theorem Finset.prod_le_prod + theorem Finset.prod_lt_prod + theorem Finset.prod_lt_prod_of_nonempty + theorem Finset.prod_nonneg + theorem Finset.prod_pos + theorem Finset.sum_mul_sq_le_sq_mul_sq + theorem GCongr.prod_le_prod + theorem IsAbsoluteValue.abv_sum + theorem IsAbsoluteValue.map_prod Added Mathlib/Algebra/Order/BigOperators/Ring/List.lean + theorem CanonicallyOrderedCommSemiring.list_prod_pos + theorem List.prod_pos Added Mathlib/Algebra/Order/BigOperators/Ring/Multiset.lean + theorem CanonicallyOrderedCommSemiring.multiset_prod_pos + theorem Multiset.prod_nonneg Modified Mathlib/Algebra/Order/Chebyshev.lean Modified Mathlib/Algebra/Order/Interval.lean Modified Mathlib/Analysis/Convex/Combination.lean Modified Mathlib/Combinatorics/Configuration.lean Modified Mathlib/Combinatorics/Enumerative/Composition.lean Modified Mathlib/Combinatorics/Enumerative/DoubleCounting.lean Modified Mathlib/Combinatorics/Pigeonhole.lean Modified Mathlib/Combinatorics/SetFamily/AhlswedeZhang.lean Modified Mathlib/Combinatorics/SetFamily/FourFunctions.lean Modified Mathlib/Combinatorics/SetFamily/LYM.lean Modified Mathlib/Combinatorics/SimpleGraph/Regularity/Energy.lean Modified Mathlib/Data/Multiset/Basic.lean + theorem Multiset.add_eq_union_left_of_le + theorem Multiset.add_eq_union_right_of_le Modified Mathlib/Data/NNRat/BigOperators.lean Modified Mathlib/Data/Nat/Choose/Sum.lean Modified Mathlib/Data/Nat/Factorial/BigOperators.lean Modified Mathlib/Data/Real/NNReal.lean Modified Mathlib/Data/Set/Equitable.lean Modified Mathlib/Data/Sign.lean Modified Mathlib/GroupTheory/SpecificGroups/Cyclic.lean Modified Mathlib/GroupTheory/Submonoid/Pointwise.lean Modified Mathlib/LinearAlgebra/Multilinear/Basic.lean Modified Mathlib/NumberTheory/Divisors.lean Modified Mathlib/NumberTheory/Harmonic/Defs.lean Modified Mathlib/NumberTheory/LegendreSymbol/MulCharacter.lean Modified Mathlib/Topology/Algebra/Order/LiminfLimsup.lean Modified Mathlib/Topology/Algebra/Ring/Basic.lean Modified scripts/noshake.json Modified test/GCongr/inequalities.lean 2024-04-05 12:26:25 1c351ac doc(AlgebraicGeometry/Scheme): turn some comments into doc comments (#11907) and tweak formatting of some doc comments Extracted from #11905. ESTIMATED CHANGES Modified Mathlib/AlgebraicGeometry/ProjectiveSpectrum/Scheme.lean Modified scripts/nolints.json 2024-04-05 12:26:24 1860554 feat: add missing Set.Ioo_inter_Iio etc (#11902) add missing lemmas. I'm not sure if these should be @[simp], as e.g. Ico_inter_Ico isn't, but Ico_inter_Iio is ESTIMATED CHANGES Modified Mathlib/Data/Set/Intervals/Basic.lean + theorem Set.Iio_inter_Ioo + theorem Set.Ioi_inter_Ioo + theorem Set.Ioo_inter_Iio + theorem Set.Ioo_inter_Ioi 2024-04-05 12:26:23 48ec8b6 chore(Tactic/TypeStar): reduce imports (#11876) I noticed that this doesn't actually use `Std` or in fact any of its other imports. The downstream fallout is pretty small because `Mathlib.Tactic.Basic` imports `Std` anyway, so this only impacts files not downstream of that. ESTIMATED CHANGES Modified Mathlib/Data/List/TFAE.lean Modified Mathlib/Data/UnionFind.lean Modified Mathlib/Init/Order/Defs.lean Modified Mathlib/Tactic/GCongr/Core.lean Modified Mathlib/Tactic/TypeStar.lean Modified scripts/noshake.json 2024-04-05 12:26:22 94d1829 feat: Continuous real-valued functions separate points in T3.5-spaces. (#11831) Continuous real-valued functions separate points in T3.5-spaces, spelled in terms of `SeparatesPoints`. There was a brief [Zulip discussion](https://leanprover.zulipchat.com/#narrow/stream/217875-Is-there-code-for-X.3F/topic/separatesPoints_continuous/near/430510853). ESTIMATED CHANGES Modified Mathlib/Topology/CompletelyRegular.lean + theorem separatesPoints_continuous_of_t35Space 2024-04-05 11:13:26 1c8ae07 doc: document some notation (#11922) We cannot literally use @[inherit_doc] in these cases, but we can slightly modify the underlying docstring or a turn a regular comment into a doc comment. ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Kleene.lean Modified Mathlib/AlgebraicTopology/SimplicialSet.lean Modified Mathlib/Data/Set/Sups.lean Modified Mathlib/Data/Tree.lean Modified Mathlib/Init/Algebra/Classes.lean Modified Mathlib/Topology/Homotopy/HSpaces.lean Modified scripts/nolints.json 2024-04-05 11:13:25 492b0e5 doc(Dynamics/OmegaLimit): document notation (#11921) And tweak the line breaks slightly. ESTIMATED CHANGES Modified Mathlib/Dynamics/OmegaLimit.lean Modified scripts/nolints.json 2024-04-05 11:13:25 0996e12 chore: move some basic multiplicity results out of Mathlib.RingTheory.Int.Basic (#11919) This means Mathlib.NumberTheory.Padics.PadicVal no longer needs to depend on Mathlib.RingTheory.Int.Basic, which is surprisingly heavy (in particular through Mathlib.RingTheory.Noetherian). ESTIMATED CHANGES Modified Mathlib/Data/Nat/Factorization/Basic.lean Modified Mathlib/NumberTheory/Padics/PadicVal.lean Modified Mathlib/RingTheory/Int/Basic.lean - theorem multiplicity.finite_int_iff - theorem multiplicity.finite_int_iff_natAbs_finite Modified Mathlib/RingTheory/Multiplicity.lean + theorem multiplicity.finite_int_iff + theorem multiplicity.finite_int_iff_natAbs_finite 2024-04-05 11:13:24 8ba65cf feat: add `Ioo_disjoint_Ioo` (#11903) Without the DenselyOrdered-hypothesis, this is false in general. ESTIMATED CHANGES Modified Mathlib/Data/Set/Intervals/Disjoint.lean + theorem Set.Ioo_disjoint_Ioo 2024-04-05 11:13:23 514a12b fix: change `refine` to `exact` in files where it speeds up (#11896) See #11890 and this [Zulip discussion](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/Usage.20of.20refine') for an in-depth explanation of why these `refine`s and not others. The short answer is that the files in which these replacements took place were more performant after the change than before. ESTIMATED CHANGES Modified Mathlib/AlgebraicGeometry/Morphisms/RingHomProperties.lean Modified Mathlib/Analysis/NormedSpace/PiTensorProduct/InjectiveSeminorm.lean Modified Mathlib/CategoryTheory/Subobject/MonoOver.lean Modified Mathlib/RepresentationTheory/Rep.lean 2024-04-05 10:00:41 56e439e move(Polynomial): Move out of `Data` (#11751) `Polynomial` and `MvPolynomial` are algebraic objects, hence should be under `Algebra` (or at least not under `Data`) ESTIMATED CHANGES Modified Archive/Hairer.lean Modified Archive/Imo/Imo2006Q5.lean Modified Counterexamples/CliffordAlgebra_not_injective.lean Modified Counterexamples/MapFloor.lean Modified Counterexamples/Monic_nonRegular.lean Modified Mathlib.lean Modified Mathlib/Algebra/AlgebraicCard.lean Modified Mathlib/Algebra/Category/Ring/Adjunctions.lean Modified Mathlib/Algebra/CubicDiscriminant.lean Modified Mathlib/Algebra/LinearRecurrence.lean Renamed Mathlib/Data/MvPolynomial/Basic.lean to Mathlib/Algebra/MvPolynomial/Basic.lean Renamed Mathlib/Data/MvPolynomial/Cardinal.lean to Mathlib/Algebra/MvPolynomial/Cardinal.lean Renamed Mathlib/Data/MvPolynomial/Comap.lean to Mathlib/Algebra/MvPolynomial/Comap.lean Renamed Mathlib/Data/MvPolynomial/CommRing.lean to Mathlib/Algebra/MvPolynomial/CommRing.lean Renamed Mathlib/Data/MvPolynomial/Counit.lean to Mathlib/Algebra/MvPolynomial/Counit.lean Renamed Mathlib/Data/MvPolynomial/Degrees.lean to Mathlib/Algebra/MvPolynomial/Degrees.lean Renamed Mathlib/Data/MvPolynomial/Derivation.lean to Mathlib/Algebra/MvPolynomial/Derivation.lean Renamed Mathlib/Data/MvPolynomial/Division.lean to Mathlib/Algebra/MvPolynomial/Division.lean Renamed Mathlib/Data/MvPolynomial/Equiv.lean to Mathlib/Algebra/MvPolynomial/Equiv.lean Renamed Mathlib/Data/MvPolynomial/Expand.lean to Mathlib/Algebra/MvPolynomial/Expand.lean Renamed Mathlib/Data/MvPolynomial/Funext.lean to Mathlib/Algebra/MvPolynomial/Funext.lean Renamed Mathlib/Data/MvPolynomial/Invertible.lean to Mathlib/Algebra/MvPolynomial/Invertible.lean Renamed Mathlib/Data/MvPolynomial/Monad.lean to Mathlib/Algebra/MvPolynomial/Monad.lean Renamed Mathlib/Data/MvPolynomial/PDeriv.lean to Mathlib/Algebra/MvPolynomial/PDeriv.lean Renamed Mathlib/Data/MvPolynomial/Polynomial.lean to Mathlib/Algebra/MvPolynomial/Polynomial.lean Renamed Mathlib/Data/MvPolynomial/Rename.lean to Mathlib/Algebra/MvPolynomial/Rename.lean Renamed Mathlib/Data/MvPolynomial/Supported.lean to Mathlib/Algebra/MvPolynomial/Supported.lean Renamed Mathlib/Data/MvPolynomial/Variables.lean to Mathlib/Algebra/MvPolynomial/Variables.lean Renamed Mathlib/Data/Polynomial/AlgebraMap.lean to Mathlib/Algebra/Polynomial/AlgebraMap.lean Renamed Mathlib/Data/Polynomial/Basic.lean to Mathlib/Algebra/Polynomial/Basic.lean Modified Mathlib/Algebra/Polynomial/BigOperators.lean Renamed Mathlib/Data/Polynomial/CancelLeads.lean to Mathlib/Algebra/Polynomial/CancelLeads.lean Renamed Mathlib/Data/Polynomial/Cardinal.lean to Mathlib/Algebra/Polynomial/Cardinal.lean Renamed Mathlib/Data/Polynomial/Coeff.lean to Mathlib/Algebra/Polynomial/Coeff.lean Renamed Mathlib/Data/Polynomial/Degree/CardPowDegree.lean to Mathlib/Algebra/Polynomial/Degree/CardPowDegree.lean Renamed Mathlib/Data/Polynomial/Degree/Definitions.lean to Mathlib/Algebra/Polynomial/Degree/Definitions.lean Renamed Mathlib/Data/Polynomial/Degree/Lemmas.lean to Mathlib/Algebra/Polynomial/Degree/Lemmas.lean Renamed Mathlib/Data/Polynomial/Degree/TrailingDegree.lean to Mathlib/Algebra/Polynomial/Degree/TrailingDegree.lean Renamed Mathlib/Data/Polynomial/DenomsClearable.lean to Mathlib/Algebra/Polynomial/DenomsClearable.lean Renamed Mathlib/Data/Polynomial/Derivation.lean to Mathlib/Algebra/Polynomial/Derivation.lean Renamed Mathlib/Data/Polynomial/Derivative.lean to Mathlib/Algebra/Polynomial/Derivative.lean Renamed Mathlib/Data/Polynomial/Div.lean to Mathlib/Algebra/Polynomial/Div.lean Renamed Mathlib/Data/Polynomial/EraseLead.lean to Mathlib/Algebra/Polynomial/EraseLead.lean Renamed Mathlib/Data/Polynomial/Eval.lean to Mathlib/Algebra/Polynomial/Eval.lean Renamed Mathlib/Data/Polynomial/Expand.lean to Mathlib/Algebra/Polynomial/Expand.lean Renamed Mathlib/Data/Polynomial/FieldDivision.lean to Mathlib/Algebra/Polynomial/FieldDivision.lean Modified Mathlib/Algebra/Polynomial/GroupRingAction.lean Renamed Mathlib/Data/Polynomial/HasseDeriv.lean to Mathlib/Algebra/Polynomial/HasseDeriv.lean Renamed Mathlib/Data/Polynomial/Identities.lean to Mathlib/Algebra/Polynomial/Identities.lean Renamed Mathlib/Data/Polynomial/Induction.lean to Mathlib/Algebra/Polynomial/Induction.lean Renamed Mathlib/Data/Polynomial/Inductions.lean to Mathlib/Algebra/Polynomial/Inductions.lean Renamed Mathlib/Data/Polynomial/Laurent.lean to Mathlib/Algebra/Polynomial/Laurent.lean Renamed Mathlib/Data/Polynomial/Lifts.lean to Mathlib/Algebra/Polynomial/Lifts.lean Renamed Mathlib/Data/Polynomial/Mirror.lean to Mathlib/Algebra/Polynomial/Mirror.lean Renamed Mathlib/Data/Polynomial/Module/Basic.lean to Mathlib/Algebra/Polynomial/Module/Basic.lean Renamed Mathlib/Data/Polynomial/Module/FiniteDimensional.lean to Mathlib/Algebra/Polynomial/Module/FiniteDimensional.lean Renamed Mathlib/Data/Polynomial/Monic.lean to Mathlib/Algebra/Polynomial/Monic.lean Renamed Mathlib/Data/Polynomial/Monomial.lean to Mathlib/Algebra/Polynomial/Monomial.lean Renamed Mathlib/Data/Polynomial/PartialFractions.lean to Mathlib/Algebra/Polynomial/PartialFractions.lean Renamed Mathlib/Data/Polynomial/Reverse.lean to Mathlib/Algebra/Polynomial/Reverse.lean Renamed Mathlib/Data/Polynomial/RingDivision.lean to Mathlib/Algebra/Polynomial/RingDivision.lean Renamed Mathlib/Data/Polynomial/Smeval.lean to Mathlib/Algebra/Polynomial/Smeval.lean Renamed Mathlib/Data/Polynomial/SpecificDegree.lean to Mathlib/Algebra/Polynomial/SpecificDegree.lean Renamed Mathlib/Data/Polynomial/Splits.lean to Mathlib/Algebra/Polynomial/Splits.lean Renamed Mathlib/Data/Polynomial/Taylor.lean to Mathlib/Algebra/Polynomial/Taylor.lean Renamed Mathlib/Data/Polynomial/UnitTrinomial.lean to Mathlib/Algebra/Polynomial/UnitTrinomial.lean Modified Mathlib/AlgebraicGeometry/EllipticCurve/Jacobian.lean Modified Mathlib/AlgebraicGeometry/EllipticCurve/Projective.lean Modified Mathlib/Analysis/Analytic/Polynomial.lean Modified Mathlib/Analysis/Asymptotics/SuperpolynomialDecay.lean Modified Mathlib/Analysis/Calculus/Deriv/Polynomial.lean Modified Mathlib/Analysis/Calculus/Taylor.lean Modified Mathlib/Analysis/SpecialFunctions/PolynomialExp.lean Modified Mathlib/Analysis/SpecialFunctions/Polynomials.lean Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Chebyshev.lean Modified Mathlib/Computability/TMComputable.lean Modified Mathlib/Data/Nat/Choose/Vandermonde.lean Modified Mathlib/Data/Nat/Factorial/SuperFactorial.lean Modified Mathlib/Dynamics/Newton.lean Modified Mathlib/FieldTheory/AxGrothendieck.lean Modified Mathlib/FieldTheory/Cardinality.lean Modified Mathlib/FieldTheory/Finite/Polynomial.lean Modified Mathlib/FieldTheory/IsAlgClosed/Classification.lean Modified Mathlib/FieldTheory/Laurent.lean Modified Mathlib/FieldTheory/Minpoly/Field.lean Modified Mathlib/FieldTheory/MvPolynomial.lean Modified Mathlib/FieldTheory/Separable.lean Modified Mathlib/LinearAlgebra/Matrix/Charpoly/Coeff.lean Modified Mathlib/LinearAlgebra/Matrix/Charpoly/Eigs.lean Modified Mathlib/LinearAlgebra/Matrix/Charpoly/Univ.lean Modified Mathlib/LinearAlgebra/Matrix/MvPolynomial.lean Modified Mathlib/LinearAlgebra/Matrix/Polynomial.lean Modified Mathlib/LinearAlgebra/SModEq.lean Modified Mathlib/NumberTheory/BernoulliPolynomials.lean Modified Mathlib/NumberTheory/ClassNumber/AdmissibleCardPowDegree.lean Modified Mathlib/NumberTheory/Liouville/Basic.lean Modified Mathlib/NumberTheory/Padics/Hensel.lean Modified Mathlib/RingTheory/Adjoin/FG.lean Modified Mathlib/RingTheory/Adjoin/Field.lean Modified Mathlib/RingTheory/AdjoinRoot.lean Modified Mathlib/RingTheory/AlgebraicIndependent.lean Modified Mathlib/RingTheory/Filtration.lean Modified Mathlib/RingTheory/FiniteType.lean Modified Mathlib/RingTheory/FreeCommRing.lean Modified Mathlib/RingTheory/HahnSeries/Basic.lean Modified Mathlib/RingTheory/HahnSeries/Multiplication.lean Modified Mathlib/RingTheory/Henselian.lean Modified Mathlib/RingTheory/IntegralClosure.lean Modified Mathlib/RingTheory/IntegralDomain.lean Modified Mathlib/RingTheory/IsAdjoinRoot.lean Modified Mathlib/RingTheory/Localization/Integral.lean Modified Mathlib/RingTheory/MvPolynomial/Basic.lean Modified Mathlib/RingTheory/MvPolynomial/Homogeneous.lean Modified Mathlib/RingTheory/MvPolynomial/Ideal.lean Modified Mathlib/RingTheory/MvPolynomial/NewtonIdentities.lean Modified Mathlib/RingTheory/MvPolynomial/Symmetric.lean Modified Mathlib/RingTheory/MvPolynomial/Tower.lean Modified Mathlib/RingTheory/MvPolynomial/WeightedHomogeneous.lean Modified Mathlib/RingTheory/MvPowerSeries/Basic.lean Modified Mathlib/RingTheory/Polynomial/Basic.lean Modified Mathlib/RingTheory/Polynomial/Bernstein.lean Modified Mathlib/RingTheory/Polynomial/Chebyshev.lean Modified Mathlib/RingTheory/Polynomial/Content.lean Modified Mathlib/RingTheory/Polynomial/Cyclotomic/Basic.lean Modified Mathlib/RingTheory/Polynomial/Hermite/Basic.lean Modified Mathlib/RingTheory/Polynomial/IntegralNormalization.lean Modified Mathlib/RingTheory/Polynomial/IrreducibleRing.lean Modified Mathlib/RingTheory/Polynomial/Nilpotent.lean Modified Mathlib/RingTheory/Polynomial/Opposites.lean Modified Mathlib/RingTheory/Polynomial/Pochhammer.lean Modified Mathlib/RingTheory/Polynomial/Quotient.lean Modified Mathlib/RingTheory/Polynomial/ScaleRoots.lean Modified Mathlib/RingTheory/Polynomial/Selmer.lean Modified Mathlib/RingTheory/Polynomial/Tower.lean Modified Mathlib/RingTheory/Polynomial/Vieta.lean Modified Mathlib/RingTheory/PolynomialAlgebra.lean Modified Mathlib/RingTheory/PowerSeries/Basic.lean Modified Mathlib/RingTheory/PowerSeries/Trunc.lean Modified Mathlib/RingTheory/RootsOfUnity/Basic.lean Modified Mathlib/RingTheory/WittVector/Basic.lean Modified Mathlib/RingTheory/WittVector/IsPoly.lean Modified Mathlib/RingTheory/WittVector/MulCoeff.lean Modified Mathlib/RingTheory/WittVector/WittPolynomial.lean Modified Mathlib/Tactic/ComputeDegree.lean Modified Mathlib/Tactic/ExtractGoal.lean Modified Mathlib/Topology/Algebra/MvPolynomial.lean Modified Mathlib/Topology/Algebra/Polynomial.lean Modified scripts/style-exceptions.txt Modified test/Polynomial.lean Modified test/RewriteSearch/Polynomial.lean Modified test/instance_diamonds.lean 2024-04-05 09:01:52 d9c412b feat: convergence of infinite sums in nonarchimedean abelian groups (#11688) Let `G` be a complete nonarchimedean abelian group and let `f : α → G` be a function. We prove that `f` is unconditionally summable if and only if `f a` tends to zero on the cofinite filter on `α`. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Topology/Algebra/InfiniteSum/Nonarchimedean.lean + theorem NonarchimedeanGroup.cauchySeq_prod_of_tendsto_cofinite_one + theorem NonarchimedeanGroup.multipliable_iff_tendsto_cofinite_one + theorem NonarchimedeanGroup.multipliable_of_tendsto_cofinite_one 2024-04-05 07:33:51 560486b chore: replace PORTING NOTE by Porting note (#11908) ESTIMATED CHANGES Modified Mathlib/Algebra/Homology/LocalCohomology.lean Modified Mathlib/Data/Stream/Defs.lean Modified Mathlib/Order/OrdContinuous.lean 2024-04-05 07:33:50 bdd3897 chore: Delete `Init.Data.Nat.Bitwise` and `Init.Data.Int.Bitwise` (#11898) The lemmas can easily be moved to `Data.Nat.Bits` and `Data.Int.Bitwise` respectively. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Data/BitVec/Defs.lean Modified Mathlib/Data/Int/Bitwise.lean + def Int.bit + def Int.bitwise + def Int.bodd + def Int.div2 + def Int.land + def Int.ldiff + def Int.lnot + def Int.lor + def Int.natBitwise + def Int.testBit Modified Mathlib/Data/Nat/Bits.lean + def Nat.binaryRec + theorem Nat.binaryRec_decreasing + theorem Nat.binaryRec_eq + theorem Nat.binaryRec_zero + theorem Nat.bit0_val + theorem Nat.bit1_val + def Nat.bit + def Nat.bitCasesOn + theorem Nat.bit_decomp + theorem Nat.bit_val + theorem Nat.bit_zero + def Nat.bits + def Nat.bodd + def Nat.boddDiv2 +/- theorem Nat.boddDiv2_eq + theorem Nat.bodd_add + theorem Nat.bodd_add_div2 + theorem Nat.bodd_bit + theorem Nat.bodd_eq_and_one_ne_zero + theorem Nat.bodd_mul + theorem Nat.bodd_one + theorem Nat.bodd_succ + theorem Nat.bodd_two + theorem Nat.bodd_zero + def Nat.div2 + theorem Nat.div2_bit + theorem Nat.div2_one + theorem Nat.div2_succ + theorem Nat.div2_two + theorem Nat.div2_val + theorem Nat.div2_zero + def Nat.ldiff + theorem Nat.mod_two_of_bodd + def Nat.shiftLeft' + theorem Nat.shiftLeft'_add + theorem Nat.shiftLeft'_false + theorem Nat.shiftLeft'_sub + theorem Nat.shiftLeft_add + theorem Nat.shiftLeft_eq' + theorem Nat.shiftLeft_sub + theorem Nat.shiftRight_eq + def Nat.size + theorem Nat.testBit_bit_succ + theorem Nat.testBit_bit_zero Modified Mathlib/Data/Nat/Fib/Basic.lean Modified Mathlib/Data/Num/Basic.lean Deleted Mathlib/Init/Data/Int/Bitwise.lean - def Int.bit - def Int.bitwise - def Int.bodd - def Int.div2 - def Int.land - def Int.ldiff - def Int.lnot - def Int.lor - def Int.natBitwise - def Int.testBit Deleted Mathlib/Init/Data/Nat/Bitwise.lean - def Nat.binaryRec - theorem Nat.binaryRec_decreasing - theorem Nat.binaryRec_eq - theorem Nat.binaryRec_zero - theorem Nat.bit0_val - theorem Nat.bit1_val - def Nat.bit - def Nat.bitCasesOn - theorem Nat.bit_decomp - theorem Nat.bit_val - theorem Nat.bit_zero - def Nat.bits - def Nat.bodd - def Nat.boddDiv2 - theorem Nat.bodd_add - theorem Nat.bodd_add_div2 - theorem Nat.bodd_bit - theorem Nat.bodd_eq_and_one_ne_zero - theorem Nat.bodd_mul - theorem Nat.bodd_one - theorem Nat.bodd_succ - theorem Nat.bodd_two - theorem Nat.bodd_zero - def Nat.div2 - theorem Nat.div2_bit - theorem Nat.div2_one - theorem Nat.div2_succ - theorem Nat.div2_two - theorem Nat.div2_val - theorem Nat.div2_zero - def Nat.ldiff - theorem Nat.mod_two_of_bodd - def Nat.shiftLeft' - theorem Nat.shiftLeft'_add - theorem Nat.shiftLeft'_false - theorem Nat.shiftLeft'_sub - theorem Nat.shiftLeft_add - theorem Nat.shiftLeft_eq' - theorem Nat.shiftLeft_sub - theorem Nat.shiftRight_eq - def Nat.size - theorem Nat.testBit_bit_succ - theorem Nat.testBit_bit_zero 2024-04-05 07:05:44 22afa0a chore: split `NumberTheory.NumberField.CanonicalEmbedding` (#11873) #8361 indicates that this is the most compute-intensive file on the longest pole for compiling Mathlib. It's bottlenecked dependency is `Mathlib.MeasureTheory.Measure.Lebesgue.VolumeOfBalls`, and this import isn't used until the second half of the file, in the sections regarding convex bodies. I am therefore splitting the file at that point, from the context of the file it seems to me that this is a sensible split anyway. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/NumberTheory/NumberField/CanonicalEmbedding.lean - theorem NumberField.mixedEmbedding.adjust_f - theorem NumberField.mixedEmbedding.convexBodyLT'Factor_ne_zero - theorem NumberField.mixedEmbedding.convexBodyLT'_convex - theorem NumberField.mixedEmbedding.convexBodyLT'_mem - theorem NumberField.mixedEmbedding.convexBodyLT'_neg_mem - theorem NumberField.mixedEmbedding.convexBodyLT'_volume - theorem NumberField.mixedEmbedding.convexBodyLTFactor_ne_zero - theorem NumberField.mixedEmbedding.convexBodyLT_convex - theorem NumberField.mixedEmbedding.convexBodyLT_mem - theorem NumberField.mixedEmbedding.convexBodyLT_neg_mem - theorem NumberField.mixedEmbedding.convexBodyLT_volume - theorem NumberField.mixedEmbedding.convexBodySumFactor_ne_zero - theorem NumberField.mixedEmbedding.convexBodySumFun_add_le - theorem NumberField.mixedEmbedding.convexBodySumFun_continuous - theorem NumberField.mixedEmbedding.convexBodySumFun_eq_zero_iff - theorem NumberField.mixedEmbedding.convexBodySumFun_neg - theorem NumberField.mixedEmbedding.convexBodySumFun_nonneg - theorem NumberField.mixedEmbedding.convexBodySumFun_smul - theorem NumberField.mixedEmbedding.convexBodySum_compact - theorem NumberField.mixedEmbedding.convexBodySum_convex - theorem NumberField.mixedEmbedding.convexBodySum_isBounded - theorem NumberField.mixedEmbedding.convexBodySum_mem - theorem NumberField.mixedEmbedding.convexBodySum_neg_mem - theorem NumberField.mixedEmbedding.convexBodySum_volume - theorem NumberField.mixedEmbedding.convexBodySum_volume_eq_zero_of_le_zero - theorem NumberField.mixedEmbedding.exists_ne_zero_mem_ideal_lt' - theorem NumberField.mixedEmbedding.exists_ne_zero_mem_ideal_lt - theorem NumberField.mixedEmbedding.exists_ne_zero_mem_ideal_of_norm_le - theorem NumberField.mixedEmbedding.exists_ne_zero_mem_ringOfIntegers_lt' - theorem NumberField.mixedEmbedding.exists_ne_zero_mem_ringOfIntegers_lt - theorem NumberField.mixedEmbedding.exists_ne_zero_mem_ringOfIntegers_of_norm_le - theorem NumberField.mixedEmbedding.exists_primitive_element_lt_of_isComplex - theorem NumberField.mixedEmbedding.exists_primitive_element_lt_of_isReal - theorem NumberField.mixedEmbedding.minkowskiBound_lt_top - theorem NumberField.mixedEmbedding.minkowskiBound_pos - theorem NumberField.mixedEmbedding.norm_le_convexBodySumFun - theorem NumberField.mixedEmbedding.one_le_convexBodyLT'Factor - theorem NumberField.mixedEmbedding.one_le_convexBodyLTFactor - theorem NumberField.mixedEmbedding.volume_fundamentalDomain_fractionalIdealLatticeBasis Added Mathlib/NumberTheory/NumberField/ConvexBody.lean + theorem NumberField.mixedEmbedding.adjust_f + theorem NumberField.mixedEmbedding.convexBodyLT'Factor_ne_zero + theorem NumberField.mixedEmbedding.convexBodyLT'_convex + theorem NumberField.mixedEmbedding.convexBodyLT'_mem + theorem NumberField.mixedEmbedding.convexBodyLT'_neg_mem + theorem NumberField.mixedEmbedding.convexBodyLT'_volume + theorem NumberField.mixedEmbedding.convexBodyLTFactor_ne_zero + theorem NumberField.mixedEmbedding.convexBodyLT_convex + theorem NumberField.mixedEmbedding.convexBodyLT_mem + theorem NumberField.mixedEmbedding.convexBodyLT_neg_mem + theorem NumberField.mixedEmbedding.convexBodyLT_volume + theorem NumberField.mixedEmbedding.convexBodySumFactor_ne_zero + theorem NumberField.mixedEmbedding.convexBodySumFun_add_le + theorem NumberField.mixedEmbedding.convexBodySumFun_continuous + theorem NumberField.mixedEmbedding.convexBodySumFun_eq_zero_iff + theorem NumberField.mixedEmbedding.convexBodySumFun_neg + theorem NumberField.mixedEmbedding.convexBodySumFun_nonneg + theorem NumberField.mixedEmbedding.convexBodySumFun_smul + theorem NumberField.mixedEmbedding.convexBodySum_compact + theorem NumberField.mixedEmbedding.convexBodySum_convex + theorem NumberField.mixedEmbedding.convexBodySum_isBounded + theorem NumberField.mixedEmbedding.convexBodySum_mem + theorem NumberField.mixedEmbedding.convexBodySum_neg_mem + theorem NumberField.mixedEmbedding.convexBodySum_volume + theorem NumberField.mixedEmbedding.convexBodySum_volume_eq_zero_of_le_zero + theorem NumberField.mixedEmbedding.exists_ne_zero_mem_ideal_lt' + theorem NumberField.mixedEmbedding.exists_ne_zero_mem_ideal_lt + theorem NumberField.mixedEmbedding.exists_ne_zero_mem_ideal_of_norm_le + theorem NumberField.mixedEmbedding.exists_ne_zero_mem_ringOfIntegers_lt' + theorem NumberField.mixedEmbedding.exists_ne_zero_mem_ringOfIntegers_lt + theorem NumberField.mixedEmbedding.exists_ne_zero_mem_ringOfIntegers_of_norm_le + theorem NumberField.mixedEmbedding.exists_primitive_element_lt_of_isComplex + theorem NumberField.mixedEmbedding.exists_primitive_element_lt_of_isReal + theorem NumberField.mixedEmbedding.minkowskiBound_lt_top + theorem NumberField.mixedEmbedding.minkowskiBound_pos + theorem NumberField.mixedEmbedding.norm_le_convexBodySumFun + theorem NumberField.mixedEmbedding.one_le_convexBodyLT'Factor + theorem NumberField.mixedEmbedding.one_le_convexBodyLTFactor + theorem NumberField.mixedEmbedding.volume_fundamentalDomain_fractionalIdealLatticeBasis Modified Mathlib/NumberTheory/NumberField/Discriminant.lean Modified Mathlib/NumberTheory/NumberField/Units.lean 2024-04-05 06:15:30 44c063e feat: `deriv` versions of composition lemmas with bilinear maps (#11868) We already have the `fderiv` versions. ESTIMATED CHANGES Modified Mathlib/Analysis/Calculus/Deriv/Mul.lean + theorem ContinuousLinearMap.derivWithin_of_bilinear + theorem ContinuousLinearMap.deriv_of_bilinear + theorem ContinuousLinearMap.hasDerivAt_of_bilinear + theorem ContinuousLinearMap.hasDerivWithinAt_of_bilinear + theorem ContinuousLinearMap.hasStrictDerivAt_of_bilinear Modified Mathlib/Analysis/Calculus/FDeriv/Bilinear.lean + theorem ContinuousLinearMap.hasStrictFDerivAt_of_bilinear Modified Mathlib/Analysis/InnerProductSpace/Basic.lean + theorem innerSL_real_flip Modified Mathlib/Analysis/NormedSpace/OperatorNorm/Bilinear.lean + theorem ContinuousLinearMap.precompL_apply 2024-04-05 05:44:52 1d98eca fix: name collision on Countable.toSmall (#11914) This is currently causing mathport to fail, it's a new kind of name collision that has not occurred before: two definitions made in two different files are being `#align`ed to the same thing. Normally mathport will automatically rename one of them but in this case neither one imports the other so it doesn't know to avoid the situation. ESTIMATED CHANGES Modified Mathlib/Data/Countable/Small.lean 2024-04-05 00:53:52 8b50609 feat: MulActionHom in the semilinear style (#6057) Generalize `MulActionHom` so that it allows two different monoids acting, related by a morphism. This is inspired by the treatment of (semi)linear maps in mathlib, and allows to refactor them. Let `M`, `N`, `X`, `Y` be types, with `SMul M X` and `SMul N Y`, and let `φ : M → N` be a map. * `MulActionHom φ X Y`, the type of equivariant functions from `X` to `Y`, consists of functions `f : X → Y` such that `f (m • x) = (φ m) • (f x)` for all `m : M` and `x : X`. Assume that we have `Monoid M`, `Monoid N` and that `φ : M →* N`. For `A`, `B` by types with `AddMonoid A` and `AddMonoid B`, endowed with `DistribMulAction M A` and `DistribMulAction M B`: * `DistribMulActionHom φ A B` is the type of equivariant additive monoid homomorphisms from `A` to `B`. Similarly, when `R` and `S` are types with `Semiring R`, `Semiring S`, `MulSemiringAction M R` and `MulSemiringAction N S` * `SMulSemiringHom φ R S` is the type of equivariant ring homomorphisms from `R` to `S`. The above types have corresponding classes: * `MulActionHomClass F φ X Y` states that `F` is a type of bundled `X → Y` homs which are `φ`-equivariant * `DistribMulActionHomClass F φ A B` states that `F` is a type of bundled `A → B` homs preserving the additive monoid structure and `φ`-equivariant * `SMulSemiringHomClass F φ R S` states that `F` is a type of bundled `R → S` homs preserving the ring structure and `φ`-equivariant ## Notation We introduce the following notation to code equivariant maps (the subscript index `ₑ` is for *equivariant*) : * `X →ₑ[φ] Y` is `MulActionHom φ X Y`. * `A →ₑ+[φ] B` is `DistribMulActionHom φ A B`. * `R →ₑ+*[φ] S` is `MulSemiringActionHom φ R S`. When `M = N` and `φ = MonoidHom.id M`, we provide the backward compatible notation : * `X →[M] Y` is `MulActionHom (@id M) X Y` * `A →+[M] B` is `DistribMulActionHom (MonoidHom.id M) A B` * `R →+*[M] S` is `MulSemiringActionHom (MonoidHom.id M) R S` This more general definition is propagated all over mathlib, in particular to `LinearMap`. The treatment of composition of equivariant maps is inspired by that of semilinear maps. We provide classes `CompTriple` and `MonoidHom.CompTriple` of “composable triples`, and various instances for them. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Algebra/NonUnitalHom.lean +/- def NonUnitalAlgHom.Simps.apply +/- theorem NonUnitalAlgHom.coe_comp +/- theorem NonUnitalAlgHom.coe_distribMulActionHom_mk +/- theorem NonUnitalAlgHom.coe_injective + theorem NonUnitalAlgHom.coe_inverse' +/- theorem NonUnitalAlgHom.coe_inverse +/- theorem NonUnitalAlgHom.coe_mk +/- theorem NonUnitalAlgHom.coe_mulHom_mk +/- theorem NonUnitalAlgHom.coe_to_distribMulActionHom +/- theorem NonUnitalAlgHom.coe_to_mulHom +/- theorem NonUnitalAlgHom.coe_zero +/- def NonUnitalAlgHom.comp +/- theorem NonUnitalAlgHom.comp_apply +/- theorem NonUnitalAlgHom.congr_fun +/- theorem NonUnitalAlgHom.ext +/- theorem NonUnitalAlgHom.ext_iff + def NonUnitalAlgHom.inverse' +/- def NonUnitalAlgHom.inverse +/- theorem NonUnitalAlgHom.mk_coe +/- theorem NonUnitalAlgHom.toDistribMulActionHom_eq_coe +/- theorem NonUnitalAlgHom.toFun_eq_coe +/- theorem NonUnitalAlgHom.toMulHom_eq_coe +/- theorem NonUnitalAlgHom.to_distribMulActionHom_injective +/- theorem NonUnitalAlgHom.to_mulHom_injective +/- theorem NonUnitalAlgHom.zero_apply +/- structure NonUnitalAlgHom +/- def NonUnitalAlgHomClass.toNonUnitalAlgHom + def NonUnitalAlgHomClass.toNonUnitalAlgSemiHom Modified Mathlib/Algebra/Algebra/NonUnitalSubalgebra.lean Modified Mathlib/Algebra/Algebra/Unitization.lean Modified Mathlib/Algebra/Category/ModuleCat/Free.lean Added Mathlib/Algebra/Group/Hom/CompTypeclasses.lean + theorem MonoidHom.CompTriple.comp + theorem MonoidHom.CompTriple.comp_apply + theorem MonoidHom.CompTriple.comp_assoc + theorem MonoidHom.CompTriple.comp_inv Modified Mathlib/Algebra/Module/LinearMap/Basic.lean +/- theorem DistribMulActionHom.coe_toLinearMap + def DistribMulActionHom.toLinearMap +/- theorem DistribMulActionHom.toLinearMap_injective + def DistribMulActionHom.toSemilinearMap +/- def LinearMap.toDistribMulActionHom Modified Mathlib/Algebra/MonoidAlgebra/Basic.lean Modified Mathlib/Algebra/Polynomial/GroupRingAction.lean Modified Mathlib/Algebra/Star/StarAlgHom.lean Modified Mathlib/Analysis/Calculus/Rademacher.lean Modified Mathlib/Analysis/NormedSpace/LinearIsometry.lean Modified Mathlib/Analysis/NormedSpace/Multilinear/Basic.lean Modified Mathlib/CategoryTheory/Monoidal/Internal/Module.lean Modified Mathlib/Data/Finsupp/Basic.lean Modified Mathlib/FieldTheory/Minpoly/Field.lean Modified Mathlib/GroupTheory/GroupAction/DomAct/ActionHom.lean Modified Mathlib/GroupTheory/GroupAction/Hom.lean +/- theorem DistribMulActionHom.coe_fn_coe' +/- theorem DistribMulActionHom.coe_fn_coe +/- theorem DistribMulActionHom.coe_zero +/- def DistribMulActionHom.comp +/- theorem DistribMulActionHom.comp_apply + theorem DistribMulActionHom.comp_assoc +/- theorem DistribMulActionHom.comp_id +/- theorem DistribMulActionHom.ext +/- theorem DistribMulActionHom.ext_iff +/- theorem DistribMulActionHom.ext_ring +/- theorem DistribMulActionHom.ext_ring_iff +/- theorem DistribMulActionHom.id_comp +/- def DistribMulActionHom.inverse +/- theorem DistribMulActionHom.toAddMonoidHom_injective +/- theorem DistribMulActionHom.toFun_eq_coe +/- theorem DistribMulActionHom.toMulActionHom_injective +/- theorem DistribMulActionHom.zero_apply +/- structure DistribMulActionHom - def DistribMulActionHomClass.toDistribMulActionHom + def DistribMulActionSemiHomClass.toDistribMulActionHom +/- def MulActionHom.comp +/- theorem MulActionHom.comp_apply + theorem MulActionHom.comp_assoc +/- theorem MulActionHom.comp_id + theorem MulActionHom.comp_inverse' +/- theorem MulActionHom.ext +/- theorem MulActionHom.ext_iff +/- theorem MulActionHom.id_apply +/- theorem MulActionHom.id_comp + def MulActionHom.inverse' + theorem MulActionHom.inverse'_comp + theorem MulActionHom.inverse'_inverse' +/- def MulActionHom.inverse + theorem MulActionHom.inverse_eq_inverse' + def MulActionHom.ofEq + theorem MulActionHom.ofEq_apply + theorem MulActionHom.ofEq_coe + def MulActionSemiHomClass.toMulActionHom +/- theorem MulSemiringActionHom.coe_fn_coe' +/- theorem MulSemiringActionHom.coe_fn_coe +/- def MulSemiringActionHom.comp +/- theorem MulSemiringActionHom.comp_apply +/- theorem MulSemiringActionHom.comp_id +/- theorem MulSemiringActionHom.ext +/- theorem MulSemiringActionHom.ext_iff +/- theorem MulSemiringActionHom.id_comp + def MulSemiringActionHom.inverse' + def MulSemiringActionHom.inverse +/- structure MulSemiringActionHom +/- def MulSemiringActionHomClass.toMulSemiringActionHom +/- def SMulCommClass.toDistribMulActionHom +/- def SMulCommClass.toMulActionHom - def SMulHomClass.toMulActionHom + theorem map_smul Modified Mathlib/GroupTheory/NoncommPiCoprod.lean Modified Mathlib/LinearAlgebra/Eigenspace/Basic.lean Modified Mathlib/LinearAlgebra/Matrix/Charpoly/LinearMap.lean Modified Mathlib/LinearAlgebra/QuadraticForm/Basic.lean Modified Mathlib/LinearAlgebra/Trace.lean Added Mathlib/Logic/Function/CompTypeclasses.lean + theorem CompTriple.comp + theorem CompTriple.comp_apply + theorem CompTriple.comp_inv Modified Mathlib/Logic/Function/Iterate.lean Modified Mathlib/Topology/Algebra/Module/CharacterSpace.lean 2024-04-04 23:53:56 8e6493b feat(AlgebraicGeometry/ProjectiveSpectrum/Scheme): `fromSpec` is a continuous function so that we have `Spec A^0_f = Proj | D(f)` as topological spaces (#9629) ESTIMATED CHANGES Modified Mathlib/AlgebraicGeometry/ProjectiveSpectrum/Scheme.lean + def AlgebraicGeometry.ProjIsoSpecTopComponent.fromSpec +/- theorem AlgebraicGeometry.ProjIsoSpecTopComponent.fromSpec_toSpec + theorem AlgebraicGeometry.ProjIsoSpecTopComponent.toSpec.image_basicOpen_eq_basicOpen +/- def AlgebraicGeometry.ProjIsoSpecTopComponent.toSpec +/- theorem AlgebraicGeometry.ProjIsoSpecTopComponent.toSpec_bijective +/- theorem AlgebraicGeometry.ProjIsoSpecTopComponent.toSpec_fromSpec +/- theorem AlgebraicGeometry.ProjIsoSpecTopComponent.toSpec_injective + theorem AlgebraicGeometry.ProjIsoSpecTopComponent.toSpec_preimage_eq +/- theorem AlgebraicGeometry.ProjIsoSpecTopComponent.toSpec_surjective + def AlgebraicGeometry.projIsoSpecTopComponent Modified Mathlib/Topology/Bases.lean + theorem isTopologicalBasis_subtype 2024-04-04 22:42:55 483848e chore: tidy various files (#11624) ESTIMATED CHANGES Modified Archive/Wiedijk100Theorems/CubingACube.lean Modified Mathlib/Algebra/Divisibility/Units.lean +/- theorem IsRelPrime.mul_right Modified Mathlib/Algebra/Module/Submodule/RestrictScalars.lean Modified Mathlib/Algebra/Order/Monoid/MinMax.lean Modified Mathlib/Algebra/Ring/InjSurj.lean Modified Mathlib/AlgebraicGeometry/AffineScheme.lean Modified Mathlib/Analysis/InnerProductSpace/Projection.lean Modified Mathlib/Analysis/Normed/Group/CocompactMap.lean Modified Mathlib/CategoryTheory/Sites/Equivalence.lean Modified Mathlib/Data/Polynomial/Eval.lean Modified Mathlib/Data/Real/EReal.lean Modified Mathlib/Data/Set/Lattice.lean Modified Mathlib/FieldTheory/Minpoly/Field.lean Modified Mathlib/FieldTheory/Perfect.lean Modified Mathlib/Geometry/Manifold/PartitionOfUnity.lean +/- theorem SmoothPartitionOfUnity.eventually_fintsupport_subset +/- def SmoothPartitionOfUnity.fintsupport Modified Mathlib/GroupTheory/Perm/Cycle/Factors.lean Modified Mathlib/LinearAlgebra/Dual.lean Modified Mathlib/LinearAlgebra/Matrix/ToLin.lean Modified Mathlib/LinearAlgebra/TensorProduct/Basic.lean Modified Mathlib/Logic/Function/Basic.lean +/- theorem Function.FactorsThrough.comp_left Modified Mathlib/MeasureTheory/Function/ConditionalExpectation/Real.lean Modified Mathlib/MeasureTheory/Integral/BoundedContinuousFunction.lean +/- theorem BoundedContinuousFunction.integrable_of_nnreal +/- theorem BoundedContinuousFunction.lintegral_lt_top_of_nnreal Modified Mathlib/MeasureTheory/MeasurableSpace/CountablyGenerated.lean Modified Mathlib/MeasureTheory/Measure/Count.lean Modified Mathlib/MeasureTheory/Measure/LevyProkhorovMetric.lean Modified Mathlib/NumberTheory/SmoothNumbers.lean Modified Mathlib/Probability/Kernel/Disintegration/Density.lean Modified Mathlib/RingTheory/AlgebraTower.lean Modified Mathlib/RingTheory/Binomial.lean Modified Mathlib/RingTheory/Coprime/Lemmas.lean Modified Mathlib/RingTheory/Finiteness.lean Modified Mathlib/RingTheory/Polynomial/Pochhammer.lean Modified Mathlib/RingTheory/PowerSeries/Order.lean +/- theorem PowerSeries.order_eq_top Modified Mathlib/RingTheory/PrincipalIdealDomain.lean Modified Mathlib/SetTheory/Cardinal/Basic.lean Modified Mathlib/SetTheory/Ordinal/Basic.lean Modified Mathlib/Topology/Compactness/Lindelof.lean Modified Mathlib/Topology/UniformSpace/Basic.lean Modified Mathlib/Topology/UniformSpace/Separation.lean 2024-04-04 22:42:54 aad754f chore: resolve a few porting notes `could not infer motive` (#11302) These are not all; most of these porting notes are still real. ESTIMATED CHANGES Modified Mathlib/Data/PFun.lean Modified Mathlib/Data/Sigma/Basic.lean Modified Mathlib/LinearAlgebra/AffineSpace/AffineSubspace.lean Modified Mathlib/Logic/Relation.lean Modified Mathlib/RingTheory/Adjoin/Basic.lean 2024-04-04 22:42:53 21e0675 feat(GroupTheory/GroupAction/Basic): various orbit lemmas (#11286) Add various miscellaneous lemmas about orbits, mainly about orbits under the subgroup / submonoid action. From AperiodicMonotilesLean. ESTIMATED CHANGES Modified Mathlib/GroupTheory/GroupAction/Basic.lean + theorem MulAction.mem_orbit_of_mem_orbit_subgroup + theorem MulAction.mem_orbit_of_mem_orbit_submonoid + theorem MulAction.mem_orbit_symm + theorem MulAction.mem_subgroup_orbit_iff + theorem MulAction.orbitRel_subgroup_le + theorem MulAction.orbit_subgroup_subset + theorem MulAction.orbit_submonoid_subset 2024-04-04 22:42:52 79a5643 chore: use CompositionSeries.ext_fun to simplify the proof of toList_injective (#11047) Eliminates two porting notes and reduces elaboration time of the def from 0.185 to 0.175 seconds. ESTIMATED CHANGES Modified Mathlib/Order/JordanHolder.lean 2024-04-04 21:40:23 fdfb154 doc: fix comment (#11900) fix comment calling a supremum infimum ESTIMATED CHANGES Modified Mathlib/Order/ConditionallyCompleteLattice/Basic.lean 2024-04-04 21:40:22 8a2f100 style: fix references to DenselyOrdered (#11897) Rename occurrences of "densely_ordered" to "denselyOrdered" ESTIMATED CHANGES Modified Mathlib/Data/PSigma/Order.lean Modified Mathlib/Order/CountableDenseLinearOrder.lean Modified Mathlib/Order/Cover.lean + theorem denselyOrdered_iff_forall_not_covBy - theorem densely_ordered_iff_forall_not_covBy 2024-04-04 21:40:21 aca0073 feat(GroupTheory/Coxeter): decidability (#11879) ESTIMATED CHANGES Modified Mathlib/GroupTheory/Coxeter/Basic.lean Modified Mathlib/GroupTheory/Coxeter/Matrix.lean +/- theorem CoxeterMatrix.E₆IsCoxeter +/- theorem CoxeterMatrix.E₇IsCoxeter +/- theorem CoxeterMatrix.E₈IsCoxeter +/- theorem CoxeterMatrix.F₄IsCoxeter +/- theorem CoxeterMatrix.G₂IsCoxeter +/- theorem CoxeterMatrix.H₃IsCoxeter +/- theorem CoxeterMatrix.H₄IsCoxeter 2024-04-04 21:40:20 d11fcd1 feat: allow the Open Mapping Theorem to apply to semilinear maps (#11722) this generalizes the Open Mapping Theorem for Banach spaces to semilinear maps. For now, we don't generalize the closed graph theorem. This is not because it's impossible, but only that it's currently prohibitively difficult since `LinearMap.graph` doesn't make sense for semilinear maps. ESTIMATED CHANGES Modified Mathlib/Analysis/NormedSpace/Banach.lean +/- theorem AffineMap.isOpenMap +/- theorem ContinuousLinearEquiv.coeFn_ofBijective +/- theorem ContinuousLinearEquiv.coe_ofBijective +/- theorem ContinuousLinearEquiv.ofBijective_apply_symm_apply +/- theorem ContinuousLinearEquiv.ofBijective_symm_apply_apply +/- theorem ContinuousLinearMap.NonlinearRightInverse.bound +/- theorem ContinuousLinearMap.NonlinearRightInverse.right_inv +/- theorem ContinuousLinearMap.closed_complemented_range_of_isCompl_of_ker_eq_bot +/- theorem ContinuousLinearMap.coe_equivRange +/- theorem ContinuousLinearMap.coe_linearMap_equivRange +/- theorem ContinuousLinearMap.exists_nonlinearRightInverse_of_surjective +/- theorem ContinuousLinearMap.nonlinearRightInverseOfSurjective_nnnorm_pos +/- theorem ContinuousLinearMap.range_eq_map_coprodSubtypeLEquivOfIsCompl +/- theorem LinearEquiv.coeFn_toContinuousLinearEquivOfContinuous +/- theorem LinearEquiv.coeFn_toContinuousLinearEquivOfContinuous_symm +/- theorem LinearEquiv.continuous_symm +/- def LinearEquiv.toContinuousLinearEquivOfContinuous 2024-04-04 21:40:19 9740087 feat(Data/Set/Pairwise/Basic): pairwise disjoint sets and subsingletons (#11629) Add a lemma giving a characterization of pairwise disjoint sets in terms of each value lying in at most one set: ```lean lemma subsingleton_setOf_mem_iff_pairwise_disjoint {f : ι → Set α} : (∀ a, {i | a ∈ f i}.Subsingleton) ↔ Pairwise (Disjoint on f) := ``` From AperiodicMonotilesLean. ESTIMATED CHANGES Modified Mathlib/Data/Set/Pairwise/Basic.lean + theorem subsingleton_setOf_mem_iff_pairwise_disjoint 2024-04-04 21:40:18 2c870c1 feat: add Set.countable_infinite_iff_nonempty_denumerable (#11605) From sphere-eversion; I'm just submitting this. ESTIMATED CHANGES Modified Mathlib/SetTheory/Cardinal/Basic.lean + theorem Set.countable_infinite_iff_nonempty_denumerable 2024-04-04 21:40:17 f37622b feat: lemmas about Multiset.join (#11599) - `Multiset.map_join` corresponding to [`List.map_join`](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Data/List/Basic.html#List.map_join) - `Multiset.prod_join` corresponding to [`List.prod_join`](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Data/List/BigOperators/Basic.html#List.prod_join) ESTIMATED CHANGES Modified Mathlib/Data/Multiset/Bind.lean + theorem Multiset.map_join + theorem Multiset.prod_join 2024-04-04 21:16:33 0ee3d24 chore: update nolints.json (#11904) ESTIMATED CHANGES Modified scripts/nolints.json 2024-04-04 19:28:05 615cc22 doc(Algebra/Ring): add docstring for `CommRing` and `CommSemiring` (#11894) This PR resolves some nolints by adding docstrings for `CommRing` and `CommSemiring`. ESTIMATED CHANGES Modified Mathlib/Algebra/Ring/Defs.lean Modified scripts/nolints.json 2024-04-04 18:16:37 25e680d chore(Data/Matrix): add explicit `of` typecasts (#11593) This adds some missing `Matrix.of` typecasts, and uses `Matrix.submatrix` in places where this is more reasonable than adding `of`. `Matrix.det_permute'` is a new lemma that fills the obvious gap that these `submatrix` restatements emphasize. ESTIMATED CHANGES Modified Mathlib/Data/Matrix/Notation.lean +/- theorem Matrix.col_cons +/- theorem Matrix.row_cons +/- theorem Matrix.row_empty +/- theorem Matrix.vecMulVec_empty Modified Mathlib/Data/Matrix/PEquiv.lean Modified Mathlib/LinearAlgebra/Matrix/Determinant.lean + theorem Matrix.det_permute' 2024-04-04 16:42:11 cfc96fe chore: Delete `Init.Data.Subtype.Basic` (#11887) The few useful lemmas can go to `Data.Subtype.Basic` and the other ones can be deleted. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Star/SelfAdjoint.lean Modified Mathlib/Analysis/Convex/SpecificFunctions/Pow.lean Modified Mathlib/Data/Subtype.lean + theorem Subtype.coe_ne_coe Modified Mathlib/FieldTheory/IntermediateField.lean Modified Mathlib/Geometry/Manifold/Instances/Sphere.lean Deleted Mathlib/Init/Data/Subtype/Basic.lean - theorem Subtype.exists_of_subtype - def Subtype.inhabited - theorem Subtype.ne_of_val_ne - theorem Subtype.tag_irrelevant Modified Mathlib/LinearAlgebra/Reflection.lean Modified Mathlib/NumberTheory/NumberField/CanonicalEmbedding.lean Modified Mathlib/NumberTheory/NumberField/ClassNumber.lean Modified Mathlib/NumberTheory/NumberField/Units.lean 2024-04-04 16:42:10 1d5ae61 chore: Remove `Init.Propext` (#10709) These lemmas can easily go to `Logic.Basic` ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/CategoryTheory/IsConnected.lean Modified Mathlib/GroupTheory/GroupAction/Quotient.lean Deleted Mathlib/Init/Propext.lean - theorem Iff.to_eq - theorem eq_false_intro - theorem eq_true_intro - theorem iff_eq_eq - theorem imp_congr_ctx_eq - theorem imp_congr_eq Modified Mathlib/Logic/Basic.lean + theorem eq_false_intro + theorem eq_true_intro + theorem iff_eq_eq + theorem imp_congr_ctx_eq + theorem imp_congr_eq Modified Mathlib/Logic/Relation.lean Modified Mathlib/Order/Filter/Basic.lean 2024-04-04 15:52:03 c06d0ad chore(scripts): remove solved style exceptions (#11892) This PR removes solved `ERR_COP ` and `ERR_MOD` style exceptions. ESTIMATED CHANGES Modified scripts/style-exceptions.txt 2024-04-04 14:19:36 e39cbd8 feat: list lemmas (#11626) Add some general purpose lemmas on lists. The new ext_get?' is intermediate between ext and ext_get, and for consistent naming add an alias ext_get? for ext. ESTIMATED CHANGES Modified Mathlib/Data/List/Basic.lean + theorem List.append_left_eq_self + theorem List.append_right_eq_self + theorem List.ext_get?' + theorem List.ext_get?_iff' + theorem List.ext_get?_iff + theorem List.ext_get_iff + theorem List.head_cons_tail + theorem List.head_replicate + theorem List.reverse_concat' + theorem List.self_eq_append_left + theorem List.self_eq_append_right Modified Mathlib/Data/List/Infix.lean + theorem List.IsPrefix.get_eq + theorem List.IsPrefix.head_eq + theorem List.IsPrefix.ne_nil + theorem List.concat_get_prefix + theorem List.prefix_concat_iff + theorem List.prefix_take_iff 2024-04-04 13:54:17 f73c1a3 feat(CategoryTheory): define class `ReflectsEffectiveEpis` (#11476) - [x] depends on: #11458 ESTIMATED CHANGES Modified Mathlib/CategoryTheory/EffectiveEpi/Preserves.lean + theorem CategoryTheory.Functor.effectiveEpiFamily_of_map + theorem CategoryTheory.Functor.effectiveEpi_of_map + theorem CategoryTheory.Functor.finite_effectiveEpiFamily_of_map 2024-04-04 13:04:28 f113278 doc: fix typo introduced in #11869 (#11889) ESTIMATED CHANGES Modified Mathlib/Topology/Separation.lean 2024-04-04 12:00:22 3e99b48 feat: add some docstrings to lemmas specialized to Nat and Int (#11694) ESTIMATED CHANGES Modified Mathlib/Data/Int/GCD.lean Modified Mathlib/Data/Nat/Defs.lean 2024-04-04 10:53:26 3e060f0 chore: Remove `Init.Data.Int.CompLemmas` (#11882) Most lemmas are too specific to be reused so I deleted them. They must have been used for tactics in Lean 3. I moved the few lemmas that were generally useful (although I could only see one use, in `RingTheory.Localization.Away.Basic`!) to `Data.Int.Defs`. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Data/Int/Defs.lean + theorem Int.natAbs_add_of_nonneg + theorem Int.natAbs_add_of_nonpos + theorem Int.natAbs_ofNat' + theorem Int.zero_le_ofNat Deleted Mathlib/Init/Data/Int/CompLemmas.lean - theorem Int.natAbs_ofNat_core - theorem Int.natAbs_of_negSucc - theorem Int.ne_of_natAbs_ne_natAbs_of_nonneg - theorem Int.zero_le_ofNat Modified Mathlib/RingTheory/Localization/Away/Basic.lean 2024-04-04 09:42:23 16eb4bd chore: remove some unnecessary 'open BigOperators' (#11880) Could we have an `open` linter, that checked for unused opened namespaces? ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/Basic.lean Modified Mathlib/Algebra/Category/GroupCat/Biproducts.lean Modified Mathlib/Algebra/CharP/Reduced.lean Modified Mathlib/Algebra/Lie/EngelSubalgebra.lean Modified Mathlib/Algebra/Module/Submodule/Bilinear.lean Modified Mathlib/Algebra/Module/Submodule/Ker.lean Modified Mathlib/Analysis/Calculus/ContDiff/Defs.lean Modified Mathlib/Analysis/Calculus/Deriv/Add.lean Modified Mathlib/Analysis/Complex/TaylorSeries.lean Modified Mathlib/Analysis/Convex/Join.lean Modified Mathlib/Analysis/LocallyConvex/AbsConvex.lean Modified Mathlib/Analysis/NormedSpace/Int.lean Modified Mathlib/CategoryTheory/Linear/FunctorCategory.lean 2024-04-04 09:42:22 6d89490 feat: `Decidable` instances for matrix symmetry (#11878) These are stated in the most general form possible, where they simply unfold the definition. This allows a few proofs to be golfed. ESTIMATED CHANGES Modified Mathlib/GroupTheory/Coxeter/Matrix.lean Modified Mathlib/LinearAlgebra/Matrix/Hermitian.lean Modified Mathlib/LinearAlgebra/Matrix/Symmetric.lean 2024-04-04 09:42:21 b918ee9 feat(Logic/Equiv/Set): image of equiv applied to `setOf` (#11628) Add a lemma about the image of an equiv applied to `setOf`: ```lean lemma setOf_apply_symm_eq_image_setOf {α β} (e : α ≃ β) (p : α → Prop) : {b | p (e.symm b)} = e '' {a | p a} := by ``` From AperiodicMonotilesLean. ESTIMATED CHANGES Modified Mathlib/Logic/Equiv/Set.lean + theorem Equiv.setOf_apply_symm_eq_image_setOf 2024-04-04 09:42:20 434972c feat: bounding integrals by asymptotics, part 2: corollaries (#10388) Shortcuts for linearly ordered domains and/or continuous functions. As an example, I golf the existing `integrable_of_isBigO_exp_neg`. Another example usage: https://github.com/AlexKontorovich/PrimeNumberTheoremAnd/blob/1909a40253607bd2df18a738fc504fe81b132974/PrimeNumberTheoremAnd/PerronFormula.lean#L414-L436 ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Function/LocallyIntegrable.lean + theorem MeasureTheory.integrableOn_Ici_iff_integrableAtFilter_atTop + theorem MeasureTheory.integrableOn_Iic_iff_integrableAtFilter_atBot + theorem MeasureTheory.integrableOn_Iio_iff_integrableAtFilter_atBot_nhdsWithin + theorem MeasureTheory.integrableOn_Ioi_iff_integrableAtFilter_atTop_nhdsWithin + theorem MeasureTheory.integrable_iff_integrableAtFilter_atBot + theorem MeasureTheory.integrable_iff_integrableAtFilter_atBot_atTop + theorem MeasureTheory.integrable_iff_integrableAtFilter_atTop Modified Mathlib/MeasureTheory/Group/Arithmetic.lean + theorem measurableEmbedding_inv Modified Mathlib/MeasureTheory/Integral/Asymptotics.lean + theorem MeasureTheory.LocallyIntegrable.integrable_of_isBigO_atBot + theorem MeasureTheory.LocallyIntegrable.integrable_of_isBigO_atBot_atTop + theorem MeasureTheory.LocallyIntegrable.integrable_of_isBigO_atTop + theorem MeasureTheory.LocallyIntegrable.integrable_of_isBigO_atTop_of_norm_isNegInvariant + theorem MeasureTheory.LocallyIntegrable.integrable_of_isBigO_cocompact + theorem MeasureTheory.LocallyIntegrableOn.integrableOn_of_isBigO_atBot + theorem MeasureTheory.LocallyIntegrableOn.integrableOn_of_isBigO_atTop Modified Mathlib/MeasureTheory/Integral/ExpDecay.lean Modified Mathlib/MeasureTheory/Integral/IntegrableOn.lean + theorem MeasureTheory.IntegrableAtFilter.sup_iff 2024-04-04 08:32:09 a45ae63 chore: bump toolchain to v4.7.0 (#11864) ESTIMATED CHANGES Modified .github/workflows/bors.yml Modified .github/workflows/build.yml Modified .github/workflows/build.yml.in Modified .github/workflows/build_fork.yml Modified lake-manifest.json Modified lean-toolchain 2024-04-04 07:25:49 e545009 chore: remove the ProofWidgets import (#11877) This follows on from #11350, following an alternative suggestion by @digama0. One argument for this pattern is that it also works for tests that import `ProofWidgets.Demos.*`, and any other auxiliary content in upstream packages that is not part of the top-level package. ESTIMATED CHANGES Modified GNUmakefile Modified Mathlib/Tactic/Common.lean 2024-04-04 00:36:53 89a00da Feat: Add some operations and lemmas on closure operators/order homs (#10348) This adds conjugation of order homomorphisms & closure operators by order isos, as well as two new extensionality lemmas for closure operators, a proof that the inf of a closed family is closed, and that the closure of an element is the GLB of all closed elements larger than it. There is also includes some minor refactoring, moving `Set.image_sSup` from `Mathlib/Order/Hom/CompleteLattice` to `Mathlib/Data/Set/Lattice` and adding some common lemmas for `EquivLike`-things to `OrderIso`. ESTIMATED CHANGES Modified Mathlib/Data/Set/Lattice.lean + theorem Set.image_sUnion Modified Mathlib/Order/Closure.lean + theorem ClosureOperator.closure_isGLB + def ClosureOperator.conjBy + theorem ClosureOperator.conjBy_refl + theorem ClosureOperator.conjBy_trans +/- theorem ClosureOperator.ext + theorem ClosureOperator.ext_isClosed + theorem ClosureOperator.sInf_isClosed + def OrderIso.equivClosureOperator Modified Mathlib/Order/Hom/Basic.lean + def OrderIso.arrowCongr + def OrderIso.conj + theorem OrderIso.self_trans_symm + theorem OrderIso.symm_trans_self Modified Mathlib/Order/Hom/CompleteLattice.lean +/- theorem Set.image_sSup Modified Mathlib/Order/RelIso/Basic.lean + theorem RelIso.self_trans_symm + theorem RelIso.symm_trans_self 2024-04-03 23:28:32 1c006b3 chore: Add pp_dot to measure definitions `trim`, `withDensity`, `restrict`, `rnDeriv` and `singularPart` (#11871) We use dot notation for them everywhere in the code. Let's use it in the infoview as well. ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Decomposition/Lebesgue.lean Modified Mathlib/MeasureTheory/Measure/Restrict.lean Modified Mathlib/MeasureTheory/Measure/Trim.lean Modified Mathlib/MeasureTheory/Measure/WithDensity.lean 2024-04-03 23:28:31 fcf9a43 feat: nhdsSet sends intersection of compact sets to their infimum (#11869) ESTIMATED CHANGES Modified Mathlib/Topology/Compactness/Compact.lean + theorem IsCompact.inf_nhdsSet_eq_biSup + theorem IsCompact.mem_inf_nhdsSet_of_forall + theorem IsCompact.mem_nhdsSet_inf_of_forall + theorem IsCompact.nhdsSet_inf_eq_biSup Modified Mathlib/Topology/Separation.lean + theorem IsCompact.nhdsSet_inter_eq Modified scripts/style-exceptions.txt 2024-04-03 23:28:30 2b6a6f1 chore: rename StarSubalgebra.adjoin to StarAlgebra.adjoin (#11339) This makes it consistent with all the other `adjoin` in the library ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/Subalgebra/Unitization.lean +/- theorem NonUnitalStarSubalgebra.unitization_range Modified Mathlib/Algebra/Star/Subalgebra.lean + def StarAlgebra.adjoin + def StarAlgebra.adjoinCommRingOfComm + def StarAlgebra.adjoinCommSemiringOfComm + theorem StarAlgebra.adjoin_eq_starClosure_adjoin + theorem StarAlgebra.adjoin_induction' + theorem StarAlgebra.adjoin_induction + theorem StarAlgebra.adjoin_induction₂ + theorem StarAlgebra.adjoin_le + theorem StarAlgebra.adjoin_le_iff + theorem StarAlgebra.adjoin_toSubalgebra + theorem StarAlgebra.self_mem_adjoin_singleton + theorem StarAlgebra.star_self_mem_adjoin_singleton + theorem StarAlgebra.star_subset_adjoin + theorem StarAlgebra.subset_adjoin - def StarSubalgebra.adjoin - def StarSubalgebra.adjoinCommRingOfComm - def StarSubalgebra.adjoinCommSemiringOfComm - theorem StarSubalgebra.adjoin_eq_starClosure_adjoin - theorem StarSubalgebra.adjoin_induction' - theorem StarSubalgebra.adjoin_induction - theorem StarSubalgebra.adjoin_induction₂ - theorem StarSubalgebra.adjoin_le - theorem StarSubalgebra.adjoin_le_iff - theorem StarSubalgebra.adjoin_toSubalgebra - theorem StarSubalgebra.self_mem_adjoin_singleton - theorem StarSubalgebra.star_self_mem_adjoin_singleton - theorem StarSubalgebra.star_subset_adjoin - theorem StarSubalgebra.subset_adjoin Modified Mathlib/Topology/Algebra/StarSubalgebra.lean Modified Mathlib/Topology/ContinuousFunction/Polynomial.lean Modified test/set_like.lean 2024-04-03 22:32:50 e69a3c9 chore(GroupTheory/Coxeter/Basic): move matrices to a new file (#11875) These are moved without modification. A small part of the module docstring has been moved too. This is pre-work for #11836. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/GroupTheory/Coxeter/Basic.lean - theorem CoxeterMatrix.AₙIsCoxeter - theorem CoxeterMatrix.BₙIsCoxeter - theorem CoxeterMatrix.DₙIsCoxeter - def CoxeterMatrix.E₆ - theorem CoxeterMatrix.E₆IsCoxeter - def CoxeterMatrix.E₇ - theorem CoxeterMatrix.E₇IsCoxeter - def CoxeterMatrix.E₈ - theorem CoxeterMatrix.E₈IsCoxeter - def CoxeterMatrix.F₄ - theorem CoxeterMatrix.F₄IsCoxeter - def CoxeterMatrix.G₂ - theorem CoxeterMatrix.G₂IsCoxeter - def CoxeterMatrix.H₃ - theorem CoxeterMatrix.H₃IsCoxeter - def CoxeterMatrix.H₄ - theorem CoxeterMatrix.H₄IsCoxeter - theorem CoxeterMatrix.I₂ₘIsCoxeter Added Mathlib/GroupTheory/Coxeter/Matrix.lean + theorem CoxeterMatrix.AₙIsCoxeter + theorem CoxeterMatrix.BₙIsCoxeter + theorem CoxeterMatrix.DₙIsCoxeter + def CoxeterMatrix.E₆ + theorem CoxeterMatrix.E₆IsCoxeter + def CoxeterMatrix.E₇ + theorem CoxeterMatrix.E₇IsCoxeter + def CoxeterMatrix.E₈ + theorem CoxeterMatrix.E₈IsCoxeter + def CoxeterMatrix.F₄ + theorem CoxeterMatrix.F₄IsCoxeter + def CoxeterMatrix.G₂ + theorem CoxeterMatrix.G₂IsCoxeter + def CoxeterMatrix.H₃ + theorem CoxeterMatrix.H₃IsCoxeter + def CoxeterMatrix.H₄ + theorem CoxeterMatrix.H₄IsCoxeter + theorem CoxeterMatrix.I₂ₘIsCoxeter 2024-04-03 22:32:49 beeea28 feat : new properties of the CardinalInterFilter (#11758) extend more of the API from CountableInterFilter to CardinalInterFilter ESTIMATED CHANGES Modified Mathlib/Order/Filter/CardinalInter.lean - theorem CardinalInterFilter.of_CardinalInterFilter_of_lt + theorem CardinalInterFilter.of_cardinalInterFilter_of_le + theorem CardinalInterFilter.of_cardinalInterFilter_of_lt + inductive Filter.CardinalGenerateSets + def Filter.cardinalGenerate + theorem Filter.cardinalGenerate_isGreatest + theorem Filter.cardinalInter_ofCardinalGenerate + theorem Filter.le_cardinalGenerate_iff_of_cardinalInterFilter + theorem Filter.mem_cardinaleGenerate_iff + theorem Filter.mem_ofCardinalInter + theorem Filter.mem_ofCardinalUnion + def Filter.ofCardinalInter + def Filter.ofCardinalUnion Modified Mathlib/Order/Filter/CountableInter.lean +/- theorem Filter.mem_ofCountableUnion +/- def Filter.ofCountableUnion Modified Mathlib/SetTheory/Cardinal/Cofinality.lean + theorem Cardinal.IsRegular.nat_lt + theorem Cardinal.card_biUnion_lt_iff_forall_of_isRegular + theorem Cardinal.card_iUnion_lt_iff_forall_of_isRegular + theorem Cardinal.card_lt_of_card_biUnion_lt + theorem Cardinal.card_lt_of_card_iUnion_lt 2024-04-03 22:32:48 fdb986a feat(NumberTheory/LSeries/Dirichlet): new file, material on specific L-series (#11712) This PR adds a new file `NumberTheory.LSeries.Dirichlet` that contains results on L-series of specific functions: * the Möbius function * Dirichlet characters, with the constant function `1` as a special case * the arithmetic function `ζ` (which has the same L-series as the constant function `1`) * the von Mangoldt function and its twists by Dirichlet characters It also adds (L-series of zero and of the indicator function of `{1}`) and removes (convergence of the L-series of the constant function `1` / of `ζ`; this is moved to the new file) some material to/from `NumberTheory.LSeries.Basic`. See [this thread on Zulip](https://leanprover.zulipchat.com/#narrow/stream/144837-PR-reviews/topic/L-series/near/424858837). ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/NumberTheory/Divisors.lean + theorem Nat.left_ne_zero_of_mem_divisorsAntidiagonal + theorem Nat.ne_zero_of_mem_divisorsAntidiagonal + theorem Nat.right_ne_zero_of_mem_divisorsAntidiagonal Modified Mathlib/NumberTheory/LSeries/Basic.lean + def LSeries.delta + theorem LSeries.delta_mul + theorem LSeries.delta_mul_eq_smul_delta + theorem LSeries.mul_delta + theorem LSeries.mul_delta_eq_smul_delta +/- theorem LSeries.term_congr + theorem LSeries.term_delta +/- theorem LSeriesHasSum_congr - theorem LSeriesSummable.one_iff_one_lt_re +/- theorem LSeriesSummable_congr +/- theorem LSeries_congr + theorem LSeries_delta + theorem LSeries_zero - theorem zeta_LSeriesSummable_iff_one_lt_re Modified Mathlib/NumberTheory/LSeries/Convergence.lean +/- theorem LSeries.abscissaOfAbsConv_congr Modified Mathlib/NumberTheory/LSeries/Convolution.lean + theorem LSeries.convolution_congr + theorem toArithmeticFunction_congr Added Mathlib/NumberTheory/LSeries/Dirichlet.lean + theorem ArithmeticFunction.LSeriesHasSum_zeta + theorem ArithmeticFunction.LSeriesSummable_moebius_iff + theorem ArithmeticFunction.LSeriesSummable_vonMangoldt + theorem ArithmeticFunction.LSeriesSummable_zeta_iff + theorem ArithmeticFunction.LSeries_vonMangoldt_eq + theorem ArithmeticFunction.LSeries_vonMangoldt_eq_deriv_riemannZeta_div + theorem ArithmeticFunction.LSeries_zeta_eq + theorem ArithmeticFunction.LSeries_zeta_eq_riemannZeta + theorem ArithmeticFunction.LSeries_zeta_mul_Lseries_moebius + theorem ArithmeticFunction.LSeries_zeta_ne_zero_of_one_lt_re + theorem ArithmeticFunction.abscissaOfAbsConv_moebius + theorem ArithmeticFunction.abscissaOfAbsConv_zeta + theorem ArithmeticFunction.const_one_eq_zeta + theorem ArithmeticFunction.convolution_vonMangoldt_const_one + theorem ArithmeticFunction.convolution_vonMangoldt_zeta + theorem ArithmeticFunction.not_LSeriesSummable_moebius_at_one + theorem ArithmeticFunction.one_eq_delta + theorem DirichletCharacter.LSeries.mul_mu_eq_one + theorem DirichletCharacter.LSeriesSummable_iff + theorem DirichletCharacter.LSeriesSummable_mul + theorem DirichletCharacter.LSeriesSummable_of_one_lt_re + theorem DirichletCharacter.LSeriesSummable_twist_vonMangoldt + theorem DirichletCharacter.LSeries_modOne_eq + theorem DirichletCharacter.LSeries_ne_zero_of_one_lt_re + theorem DirichletCharacter.LSeries_twist_vonMangoldt_eq + theorem DirichletCharacter.absicssaOfAbsConv_eq_one + theorem DirichletCharacter.convolution_mul_moebius + theorem DirichletCharacter.convolution_twist_vonMangoldt + theorem DirichletCharacter.delta_mul + theorem DirichletCharacter.modOne_eq_one + theorem DirichletCharacter.modZero_eq_delta + theorem DirichletCharacter.mul_convolution_distrib + theorem DirichletCharacter.mul_delta + theorem DirichletCharacter.not_LSeriesSummable_at_one + theorem LSeries.abscissaOfAbsConv_one + theorem LSeries.convolution_one_eq_convolution_zeta + theorem LSeries.one_convolution_eq_zeta_convolution + theorem LSeriesHasSum_one + theorem LSeriesSummable_one_iff + theorem LSeries_one_eq_riemannZeta + theorem LSeries_one_mul_Lseries_moebius + theorem LSeries_one_ne_zero_of_one_lt_re + theorem riemannZeta_ne_zero_of_one_lt_re 2024-04-03 21:20:58 f28589d chore: update Std (#11858) ESTIMATED CHANGES Modified Mathlib/Data/List/Intervals.lean Modified Mathlib/Data/List/Lattice.lean Modified Mathlib/Data/List/Nodup.lean Modified Mathlib/Data/List/Perm.lean Modified Mathlib/Data/Multiset/FinsetOps.lean +/- theorem Multiset.coe_ndinter Modified lake-manifest.json 2024-04-03 20:13:49 8d5f6cf feat(CategoryTheory/Sites): add some API for regular sheaves and the equalizer condition (#10420) This PR gives an equivalent condition to `regularTopology.EqualizerCondition` (previously called `regularCoverage.EqualizerCondition`), phrased in more categorical language. We use this new condition to show that `EqualizerCondition` respects natural isomorphisms. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/CategoryTheory/IsConnected.lean + theorem CategoryTheory.Zigzag.refl + theorem CategoryTheory.Zigzag.symm Added Mathlib/CategoryTheory/Limits/Final/ParallelPair.lean + theorem CategoryTheory.Limits.parallelPair_initial_mk' + theorem CategoryTheory.Limits.parallelPair_initial_mk Modified Mathlib/CategoryTheory/Limits/Shapes/Equalizers.lean + def CategoryTheory.Limits.Fork.isLimitOfIsos + def CategoryTheory.Limits.ForkOfι.ext Modified Mathlib/CategoryTheory/Sites/Coherent/RegularSheaves.lean - theorem CategoryTheory.regularCoverage.EqualizerCondition.isSheafFor - theorem CategoryTheory.regularCoverage.EqualizerCondition.isSheaf_iff - def CategoryTheory.regularCoverage.EqualizerCondition - def CategoryTheory.regularCoverage.MapToEqualizer - theorem CategoryTheory.regularCoverage.equalizerCondition_of_regular - theorem CategoryTheory.regularCoverage.isSheafFor_regular_of_projective - theorem CategoryTheory.regularCoverage.isSheaf_of_projective - theorem CategoryTheory.regularCoverage.isSheaf_yoneda_obj - theorem CategoryTheory.regularCoverage.subcanonical + theorem CategoryTheory.regularTopology.EqualizerCondition.bijective_mapToEqualizer_pullback + theorem CategoryTheory.regularTopology.EqualizerCondition.mk + def CategoryTheory.regularTopology.EqualizerCondition + def CategoryTheory.regularTopology.MapToEqualizer + def CategoryTheory.regularTopology.SingleEqualizerCondition + theorem CategoryTheory.regularTopology.equalizerConditionMap_iff_nonempty_isLimit + theorem CategoryTheory.regularTopology.equalizerCondition_iff_isIso_lift + theorem CategoryTheory.regularTopology.equalizerCondition_iff_isSheaf + theorem CategoryTheory.regularTopology.equalizerCondition_iff_of_equivalence + theorem CategoryTheory.regularTopology.equalizerCondition_of_natIso + theorem CategoryTheory.regularTopology.equalizerCondition_precomp_of_preservesPullback + theorem CategoryTheory.regularTopology.equalizerCondition_w' + theorem CategoryTheory.regularTopology.equalizerCondition_w + theorem CategoryTheory.regularTopology.isSheafFor_regular_of_projective + theorem CategoryTheory.regularTopology.isSheaf_of_projective + theorem CategoryTheory.regularTopology.isSheaf_yoneda_obj + theorem CategoryTheory.regularTopology.mapToEqualizer_eq_comp + theorem CategoryTheory.regularTopology.parallelPair_pullback_initial + theorem CategoryTheory.regularTopology.subcanonical Modified Mathlib/CategoryTheory/Sites/Coherent/RegularTopology.lean Modified Mathlib/CategoryTheory/Sites/Coverage.lean + theorem CategoryTheory.Presheaf.isSheaf_iff_isLimit_coverage + theorem CategoryTheory.Presheaf.isSheaf_sup Modified Mathlib/CategoryTheory/Sites/Sieves.lean Modified Mathlib/Condensed/Explicit.lean Modified Mathlib/Condensed/TopComparison.lean 2024-04-03 19:49:08 ff36646 feat(RingTheory/Flat): flat is stable under base change (#11614) Shows that `Module.Flat` is stable under arbitrary base change of rings. Also adds the corresponding version for `Algebra.Flat`. ESTIMATED CHANGES Modified Mathlib/RingTheory/Flat/Algebra.lean +/- theorem Algebra.Flat.comp + theorem Algebra.Flat.isBaseChange Modified Mathlib/RingTheory/Flat/Stability.lean + theorem Module.Flat.isBaseChange 2024-04-03 17:37:30 6a3812f refactor(Algebra/Module): Use coercion from SemilinearMapClass to SemilinearMap (#10758) This PR adds a coercion from any instance of `SemilinearMapClass` to `SemilinearMap`. This is the standard practice for other parts of the library, such as ring homs (see also the recent change #10368). I also expect this change will help with some rough edges in #6057. Previously, a coercion from `f : AlgHom` to `LinearMap` would look like `f.toNonUnitalAlgHom.toDistribMulActionHom.toLinearMap`, now it should look like `SemilinearMapClass.semilinearMap f`. The new coercion instances are `CoeHead` since the left hand side is a free variable `F`. I redefined the existing `DistribMulActionHom → LinearMap` coercion in terms of the `SemilinearMapClass` coercion to ensure we don't get any diamonds. ESTIMATED CHANGES Modified Mathlib/Algebra/Module/LinearMap/Basic.lean - def DistribMulActionHom.toLinearMap + theorem LinearMap.coe_semilinearMap + theorem LinearMap.toLinearMap_injective + def SemilinearMapClass.semilinearMap 2024-04-03 11:58:15 392a24a chore(Data/Int): Rename `coe_nat` to `natCast` (#11637) Reduce the diff of #11499 ## Renames All in the `Int` namespace: * `ofNat_eq_cast` → `ofNat_eq_natCast` * `cast_eq_cast_iff_Nat` → `natCast_inj` * `natCast_eq_ofNat` → `ofNat_eq_natCast` * `coe_nat_sub` → `natCast_sub` * `coe_nat_nonneg` → `natCast_nonneg` * `sign_coe_add_one` → `sign_natCast_add_one` * `nat_succ_eq_int_succ` → `natCast_succ` * `succ_neg_nat_succ` → `succ_neg_natCast_succ` * `coe_pred_of_pos` → `natCast_pred_of_pos` * `coe_nat_div` → `natCast_div` * `coe_nat_ediv` → `natCast_ediv` * `sign_coe_nat_of_nonzero` → `sign_natCast_of_ne_zero` * `toNat_coe_nat` → `toNat_natCast` * `toNat_coe_nat_add_one` → `toNat_natCast_add_one` * `coe_nat_dvd` → `natCast_dvd_natCast` * `coe_nat_dvd_left` → `natCast_dvd` * `coe_nat_dvd_right` → `dvd_natCast` * `le_coe_nat_sub` → `le_natCast_sub` * `succ_coe_nat_pos` → `succ_natCast_pos` * `coe_nat_modEq_iff` → `natCast_modEq_iff` * `coe_natAbs` → `natCast_natAbs` * `coe_nat_eq_zero` → `natCast_eq_zero` * `coe_nat_ne_zero` → `natCast_ne_zero` * `coe_nat_ne_zero_iff_pos` → `natCast_ne_zero_iff_pos` * `abs_coe_nat` → `abs_natCast` * `coe_nat_nonpos_iff` → `natCast_nonpos_iff` Also rename `Nat.coe_nat_dvd` to `Nat.cast_dvd_cast` ESTIMATED CHANGES Modified Archive/Imo/Imo1988Q6.lean Modified Archive/Imo/Imo2005Q4.lean Modified Archive/Imo/Imo2008Q3.lean Modified Archive/Wiedijk100Theorems/AbelRuffini.lean Modified Mathlib/Algebra/CharP/Basic.lean Modified Mathlib/Algebra/CharP/CharAndCard.lean Modified Mathlib/Algebra/CharZero/Quotient.lean Modified Mathlib/Algebra/ModEq.lean Modified Mathlib/Algebra/Order/Field/Power.lean Modified Mathlib/Algebra/Order/Floor.lean Modified Mathlib/Analysis/Normed/Group/Basic.lean - theorem NNReal.coe_natAbs + theorem NNReal.natCast_natAbs Modified Mathlib/Analysis/NormedSpace/Int.lean Modified Mathlib/Analysis/SpecialFunctions/Integrals.lean Modified Mathlib/Data/Int/Bitwise.lean Modified Mathlib/Data/Int/CardIntervalMod.lean Modified Mathlib/Data/Int/Cast/Basic.lean Modified Mathlib/Data/Int/Cast/Lemmas.lean Modified Mathlib/Data/Int/Defs.lean - theorem Int.cast_eq_cast_iff_Nat - theorem Int.coe_nat_div - theorem Int.coe_nat_ediv - theorem Int.coe_nat_inj' - theorem Int.coe_nat_mod - theorem Int.coe_nat_nonneg - theorem Int.coe_pred_of_pos + theorem Int.natCast_div + theorem Int.natCast_ediv + theorem Int.natCast_inj + theorem Int.natCast_mod + theorem Int.natCast_nonneg + theorem Int.natCast_pred_of_pos + theorem Int.natCast_succ - theorem Int.nat_succ_eq_int_succ - theorem Int.ofNat_eq_cast + theorem Int.ofNat_eq_natCast - theorem Int.sign_coe_add_one - theorem Int.sign_coe_nat_of_nonzero + theorem Int.sign_natCast_add_one + theorem Int.sign_natCast_of_ne_zero + theorem Int.succ_neg_natCast_succ - theorem Int.succ_neg_nat_succ - theorem Int.toNat_coe_nat - theorem Int.toNat_coe_nat_add_one + theorem Int.toNat_natCast + theorem Int.toNat_natCast_add_one Modified Mathlib/Data/Int/Div.lean Modified Mathlib/Data/Int/Dvd/Basic.lean - theorem Int.coe_nat_dvd - theorem Int.coe_nat_dvd_left - theorem Int.coe_nat_dvd_right + theorem Int.dvd_natCast + theorem Int.natCast_dvd + theorem Int.natCast_dvd_natCast Modified Mathlib/Data/Int/GCD.lean Modified Mathlib/Data/Int/Interval.lean Modified Mathlib/Data/Int/Lemmas.lean - theorem Int.le_coe_nat_sub + theorem Int.le_natCast_sub - theorem Int.succ_coe_nat_pos + theorem Int.succ_natCast_pos Modified Mathlib/Data/Int/Log.lean Modified Mathlib/Data/Int/ModEq.lean - theorem Int.coe_nat_modEq_iff + theorem Int.natCast_modEq_iff Modified Mathlib/Data/Int/NatPrime.lean Modified Mathlib/Data/Int/Order/Basic.lean - theorem Int.abs_coe_nat + theorem Int.abs_natCast - theorem Int.coe_natAbs - theorem Int.coe_nat_eq_zero - theorem Int.coe_nat_ne_zero - theorem Int.coe_nat_ne_zero_iff_pos - theorem Int.coe_nat_nonpos_iff + theorem Int.natCast_eq_zero + theorem Int.natCast_natAbs + theorem Int.natCast_ne_zero + theorem Int.natCast_ne_zero_iff_pos + theorem Int.natCast_nonpos_iff Modified Mathlib/Data/Int/Order/Lemmas.lean Modified Mathlib/Data/Int/Order/Units.lean Modified Mathlib/Data/Int/Parity.lean Modified Mathlib/Data/Int/Range.lean Modified Mathlib/Data/Int/Sqrt.lean Modified Mathlib/Data/Int/SuccPred.lean Modified Mathlib/Data/Nat/Cast/Basic.lean + theorem Nat.cast_dvd_cast - theorem Nat.coe_nat_dvd Modified Mathlib/Data/Nat/Digits.lean Modified Mathlib/Data/Nat/ModEq.lean Modified Mathlib/Data/Nat/Prime.lean Modified Mathlib/Data/Num/Lemmas.lean Modified Mathlib/Data/Polynomial/FieldDivision.lean Modified Mathlib/Data/Polynomial/Laurent.lean Modified Mathlib/Data/Rat/Cast/Defs.lean Modified Mathlib/Data/Rat/Defs.lean Modified Mathlib/Data/Rat/Floor.lean Modified Mathlib/Data/Rat/Lemmas.lean Modified Mathlib/Data/Rat/Sqrt.lean Modified Mathlib/Data/Real/Irrational.lean Modified Mathlib/Data/ZMod/Basic.lean Modified Mathlib/Dynamics/Ergodic/AddCircle.lean Modified Mathlib/Dynamics/PeriodicPts.lean Modified Mathlib/FieldTheory/Finite/Basic.lean Modified Mathlib/GroupTheory/OrderOfElement.lean Modified Mathlib/GroupTheory/Perm/Cycle/Basic.lean Modified Mathlib/GroupTheory/SpecificGroups/Cyclic.lean Modified Mathlib/GroupTheory/Subgroup/Saturated.lean Modified Mathlib/GroupTheory/Submonoid/Membership.lean Modified Mathlib/Init/Data/Int/Basic.lean Modified Mathlib/Init/Data/Int/CompLemmas.lean Modified Mathlib/Logic/Equiv/Fin.lean Modified Mathlib/NumberTheory/FLT/Basic.lean Modified Mathlib/NumberTheory/FLT/Four.lean Modified Mathlib/NumberTheory/LegendreSymbol/JacobiSymbol.lean Modified Mathlib/NumberTheory/LegendreSymbol/QuadraticChar/Basic.lean Modified Mathlib/NumberTheory/Liouville/Measure.lean Modified Mathlib/NumberTheory/Multiplicity.lean Modified Mathlib/NumberTheory/Padics/PadicNorm.lean Modified Mathlib/NumberTheory/Padics/PadicVal.lean Modified Mathlib/NumberTheory/Padics/RingHoms.lean Modified Mathlib/NumberTheory/PellMatiyasevic.lean Modified Mathlib/NumberTheory/PythagoreanTriples.lean Modified Mathlib/NumberTheory/SumFourSquares.lean Modified Mathlib/NumberTheory/SumTwoSquares.lean Modified Mathlib/NumberTheory/Zsqrtd/Basic.lean Modified Mathlib/NumberTheory/Zsqrtd/GaussianInt.lean Modified Mathlib/Order/SuccPred/LinearLocallyFinite.lean Modified Mathlib/RingTheory/DedekindDomain/AdicValuation.lean Modified Mathlib/RingTheory/DedekindDomain/Factorization.lean Modified Mathlib/RingTheory/Ideal/Norm.lean Modified Mathlib/RingTheory/Int/Basic.lean Modified Mathlib/RingTheory/LaurentSeries.lean Modified Mathlib/RingTheory/LittleWedderburn.lean Modified Mathlib/RingTheory/Localization/Away/Basic.lean Modified Mathlib/RingTheory/Localization/FractionRing.lean Modified Mathlib/RingTheory/Polynomial/Bernstein.lean Modified Mathlib/RingTheory/Polynomial/Eisenstein/IsIntegral.lean Modified Mathlib/RingTheory/RootsOfUnity/Basic.lean Modified Mathlib/RingTheory/RootsOfUnity/Complex.lean Modified Mathlib/Tactic/NormNum/GCD.lean Modified Mathlib/Topology/Algebra/InfiniteSum/NatInt.lean 2024-04-03 10:47:03 e048fd6 chore: another attempt at the new contributor bot (#11857) ESTIMATED CHANGES Modified .github/workflows/label_new_contributor.yml 2024-04-03 10:47:02 d9efb2a chore(Tactic): solve `ERR_COP` style exceptions (#11826) This PR - [x] solves `ERR_COP` style exceptions by adding the copyright headers after having inspected the commit history of each file in Mathlib4 and in Mathlib3 - [x] removes `ERR_COP` style exceptions from script ESTIMATED CHANGES Modified Mathlib/Tactic/ApplyWith.lean Modified Mathlib/Tactic/TypeCheck.lean Modified scripts/style-exceptions.txt 2024-04-03 10:19:52 1cca755 chore: swap argument order in `cfc` and `cfcₙ` (#11468) This changes the argument order for `cfc` and `cfcₙ` from `cfc (a : A) (f : R → R)` to `cfc (f : R → R) (a : A)`. This has a few advantages: 1. It's closer to the usual reading (`cfc f a` vs. `f(a)` on paper). 2. argument order looks better for `cfc_comp` (`cfc (g ∘ f) a = cfc g (cfc f a)` instead of `cfc a (g ∘ f) = cfc (cfc f a) g`). 3. it will be much easier to speak of operator convexity and monotonicity if we can just write `cfc f`. ESTIMATED CHANGES Modified Mathlib/Analysis/NormedSpace/Star/ContinuousFunctionalCalculus/Instances.lean Modified Mathlib/Topology/ContinuousFunction/FunctionalCalculus.lean +/- theorem cfcUnits_pow +/- theorem cfcUnits_zpow +/- theorem cfc_add +/- theorem cfc_apply +/- theorem cfc_apply_of_not_and +/- theorem cfc_apply_of_not_continuousOn +/- theorem cfc_apply_of_not_predicate +/- theorem cfc_comp' +/- theorem cfc_comp +/- theorem cfc_comp_const_mul +/- theorem cfc_comp_inv +/- theorem cfc_comp_neg +/- theorem cfc_comp_polynomial +/- theorem cfc_comp_pow +/- theorem cfc_comp_smul +/- theorem cfc_comp_star +/- theorem cfc_comp_zpow +/- theorem cfc_congr +/- theorem cfc_const +/- theorem cfc_const_mul +/- theorem cfc_const_mul_id +/- theorem cfc_const_one +/- theorem cfc_const_zero +/- theorem cfc_eq_cfc_iff_eqOn +/- theorem cfc_eval_C +/- theorem cfc_eval_X +/- theorem cfc_id' +/- theorem cfc_id +/- theorem cfc_inv +/- theorem cfc_map_div +/- theorem cfc_map_polynomial +/- theorem cfc_map_spectrum +/- theorem cfc_mul +/- theorem cfc_neg +/- theorem cfc_neg_id +/- theorem cfc_one +/- theorem cfc_polynomial +/- theorem cfc_pow +/- theorem cfc_pow_id +/- theorem cfc_predicate +/- theorem cfc_star +/- theorem cfc_star_id +/- theorem cfc_sub +/- theorem cfc_zero +/- theorem eqOn_of_cfc_eq_cfc +/- theorem isUnit_cfc_iff Modified Mathlib/Topology/ContinuousFunction/NonUnitalFunctionalCalculus.lean +/- theorem cfc_map_quasispectrum +/- theorem cfcₙ_add +/- theorem cfcₙ_apply +/- theorem cfcₙ_apply_of_not_and_and +/- theorem cfcₙ_apply_of_not_continuousOn +/- theorem cfcₙ_apply_of_not_map_zero +/- theorem cfcₙ_apply_of_not_predicate +/- theorem cfcₙ_comp' +/- theorem cfcₙ_comp +/- theorem cfcₙ_comp_const_mul +/- theorem cfcₙ_comp_neg +/- theorem cfcₙ_comp_star +/- theorem cfcₙ_congr +/- theorem cfcₙ_const_mul +/- theorem cfcₙ_const_mul_id +/- theorem cfcₙ_const_zero +/- theorem cfcₙ_eq_cfcₙ_iff_eqOn +/- theorem cfcₙ_id' +/- theorem cfcₙ_id +/- theorem cfcₙ_mul +/- theorem cfcₙ_neg +/- theorem cfcₙ_neg_id +/- theorem cfcₙ_predicate +/- theorem cfcₙ_star +/- theorem cfcₙ_star_id +/- theorem cfcₙ_sub +/- theorem cfcₙ_zero +/- theorem eqOn_of_cfcₙ_eq_cfcₙ 2024-04-03 09:14:29 d6ce8fc feat: drop completeness assumptions in theorems involving integrals (#11840) When computing the integral of a function taking values in a noncomplete space, we use the junk value `0`. This means that several theorems about integrals hold without completeness assumptions for trivial reasons. We use this to drop several completeness assumptions here and there in mathlib. This involves one nontrivial mathematical fact, that `E →L[𝕜] F` is complete iff `F` is complete, for which we add the missing direction (from left to right) in this PR. ESTIMATED CHANGES Modified Mathlib/Analysis/Calculus/ParametricIntegral.lean Modified Mathlib/Analysis/Distribution/FourierSchwartz.lean +/- theorem SchwartzMap.hasFDerivAt_fourierIntegral Modified Mathlib/Analysis/Fourier/FourierTransformDeriv.lean +/- theorem VectorFourier.differentiable_fourierIntegral +/- theorem VectorFourier.fderiv_fourierIntegral +/- theorem VectorFourier.hasFDerivAt_fourierIntegral Modified Mathlib/Analysis/MellinTransform.lean +/- theorem mellin_differentiableAt_of_isBigO_rpow +/- theorem mellin_differentiableAt_of_isBigO_rpow_exp +/- theorem mellin_hasDerivAt_of_isBigO_rpow Modified Mathlib/Analysis/NormedSpace/HahnBanach/SeparatingDual.lean + theorem SeparatingDual.completeSpace_continuousLinearMap_iff + theorem SeparatingDual.completeSpace_continuousMultilinearMap_iff + theorem SeparatingDual.completeSpace_of_completeSpace_continuousLinearMap + theorem SeparatingDual.completeSpace_of_completeSpace_continuousMultilinearMap Modified Mathlib/MeasureTheory/Integral/SetIntegral.lean +/- theorem ContinuousLinearMap.integral_comp_comm + theorem ContinuousMultilinearMap.integral_apply Modified Mathlib/Topology/MetricSpace/Lipschitz.lean + theorem LipschitzOnWith.cauchySeq_comp + theorem LipschitzWith.cauchySeq_comp Modified scripts/style-exceptions.txt 2024-04-03 08:17:54 3b14f80 feat: Link finpartitions and setoids (#8735) ESTIMATED CHANGES Modified Mathlib/Order/Partition/Finpartition.lean + theorem Finpartition.existsUnique_mem +/- theorem Finpartition.exists_mem + theorem Finpartition.exists_subset_part_bijOn + def Finpartition.map + theorem Finpartition.mem_part + theorem Finpartition.mem_part_ofSetoid_iff_rel + def Finpartition.ofSetoid + def Finpartition.part + theorem Finpartition.part_mem + theorem Finpartition.part_surjOn + theorem Finpartition.parts_map 2024-04-03 07:47:14 af01418 feat(Combinatorics/SimpleGraph): Girth is at least 3 (#11709) General lowerbound for girth, for example could be used to prove that girth equals 3 given 3 as an upperbound. ESTIMATED CHANGES Modified Mathlib/Combinatorics/SimpleGraph/Girth.lean + theorem SimpleGraph.three_le_girth 2024-04-02 23:42:41 5f4e6d8 feat: pointwise scalar multiplication is monotone (#11809) Everywhere we have a `smul_mem_pointwise_smul` lemma, I've added this result. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Algebra/Subalgebra/Pointwise.lean Modified Mathlib/Algebra/Module/Submodule/Pointwise.lean +/- theorem Submodule.set_smul_mono_right Added Mathlib/Algebra/Order/Group/Action.lean + theorem smul_iInf_le + theorem smul_inf_le + theorem smul_le_smul_left + theorem smul_mono_right + theorem smul_strictMono_right Modified Mathlib/GroupTheory/Subgroup/Pointwise.lean Modified Mathlib/GroupTheory/Submonoid/Pointwise.lean Modified Mathlib/RingTheory/Filtration.lean Modified Mathlib/RingTheory/Ideal/Operations.lean - theorem Submodule.smul_iInf_le - theorem Submodule.smul_inf_le - theorem Submodule.smul_mono_right Modified Mathlib/RingTheory/Subring/Pointwise.lean Modified Mathlib/RingTheory/Subsemiring/Pointwise.lean Modified Mathlib/RingTheory/Valuation/ValuationSubring.lean 2024-04-02 17:45:07 74bbb60 chore(scripts): remove resolved `ERR_COP` style exceptions (#11854) This PR removes `ERR_COP` style exceptions that have been resolved in #11825. ESTIMATED CHANGES Modified scripts/style-exceptions.txt 2024-04-02 16:26:08 a03d29e feat: small lemmas about moebius (#11770) ESTIMATED CHANGES Modified Mathlib/NumberTheory/ArithmeticFunction.lean + theorem ArithmeticFunction.abs_moebius_le_one + theorem ArithmeticFunction.moebius_eq_or 2024-04-02 16:26:07 68ab53e feat: add `image_restrictPreimage` (#11640) - add the theorem `image_restrictPreimage`; use it to simplify the proof of `Set.restrictPreimage_isClosedMap` - add the equivalent for open maps `Set.restrictPreimage_isOpenMap`. - delete `IsClosedMap.restrictPreimage`, which duplicates `Set.restrictPreimage_isClosedMap` ESTIMATED CHANGES Modified Mathlib/Data/Set/Function.lean + theorem Set.image_restrictPreimage Modified Mathlib/Topology/Constructions.lean - theorem IsClosedMap.restrictPreimage Modified Mathlib/Topology/LocalAtTarget.lean + theorem IsClosedMap.restrictPreimage + theorem IsOpenMap.restrictPreimage + theorem Set.restrictPreimage_isOpenMap 2024-04-02 15:35:38 1fb63b4 refactor: golf proof using lmarginal (#10857) ESTIMATED CHANGES Modified Mathlib/Data/Matrix/Basis.lean + theorem Matrix.mulVec_stdBasisMatrix Modified Mathlib/MeasureTheory/Group/LIntegral.lean Modified Mathlib/MeasureTheory/Measure/Lebesgue/Basic.lean 2024-04-02 13:53:39 d001ff9 perf: speed up minkowskiBound_lt_boundOfDiscBdd (#11842) This saves several seconds on my machine, going from ~50k to ~27k heartbeats. ESTIMATED CHANGES Modified Mathlib/NumberTheory/NumberField/Discriminant.lean 2024-04-02 13:53:38 921bb50 fix: align Int.norm_eq_abs with its mathlib3 meaning (#11841) ESTIMATED CHANGES Modified Mathlib/Analysis/Normed/Group/Basic.lean +/- theorem Int.norm_eq_abs Modified Mathlib/Analysis/NormedSpace/Basic.lean Modified Mathlib/NumberTheory/NumberField/Discriminant.lean Modified Mathlib/NumberTheory/NumberField/Embeddings.lean 2024-04-02 13:07:31 a3021ae feat: value of f (x + n * c), where f is antiperiodic with antiperiod c (#11436) Add `@[simp]` theorem `negOnePow_two_mul_add_one` to `Algebra.GroupPower.NegOnePow`, which states that `(2 * n + 1).negOnePow = -1`. Add theorems to `Algebra.Periodic` about the value of `f (x + n • c)`, `f (x - n • c)`, and `f (n • c - x)`, where we have `Antiperiodic f c`. All these theorems have variants for either `n : ℕ` or `n : ℤ`, and they also have variants using `*` instead of `•` if the domain and codomain of `f` are rings. For all real numbers `x` and all integers `n`. deduce the following. All these theorems are in `Analysis.SpecialFunctions.Trigonometric.Basic`, they are not `@[simp]`, and they have a variation (using the notation `(-1) ^ n` instead of `n.negOnePow`) for natural number `n`. - `sin (x + n * π) = n.negOnePow * sin x` - `sin (x - n * π) = n.negOnePow * sin x` - `sin (n * π - x) = -(n.negOnePow * sin x)` - `cos (x + n * π) = n.negOnePow * cos x` - `cos (x - n * π) = n.negOnePow * cos x` - `cos (n * π - x) = n.negOnePow * cos x` ESTIMATED CHANGES Modified Mathlib/Algebra/GroupPower/NegOnePow.lean + theorem Int.coe_negOnePow + theorem Int.negOnePow_two_mul_add_one Modified Mathlib/Algebra/Periodic.lean + theorem Function.Antiperiodic.add_int_mul_eq + theorem Function.Antiperiodic.add_nat_mul_eq + theorem Function.Antiperiodic.add_nsmul_eq + theorem Function.Antiperiodic.add_zsmul_eq + theorem Function.Antiperiodic.even_nsmul_periodic + theorem Function.Antiperiodic.even_zsmul_periodic + theorem Function.Antiperiodic.int_mul_sub_eq + theorem Function.Antiperiodic.nat_mul_sub_eq + theorem Function.Antiperiodic.nsmul_sub_eq + theorem Function.Antiperiodic.odd_nsmul_antiperiodic + theorem Function.Antiperiodic.odd_zsmul_antiperiodic + theorem Function.Antiperiodic.sub_int_mul_eq + theorem Function.Antiperiodic.sub_nat_mul_eq + theorem Function.Antiperiodic.sub_nsmul_eq + theorem Function.Antiperiodic.sub_zsmul_eq + theorem Function.Antiperiodic.zsmul_sub_eq Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Basic.lean + theorem Real.cos_add_int_mul_pi + theorem Real.cos_add_nat_mul_pi + theorem Real.cos_int_mul_pi_sub + theorem Real.cos_nat_mul_pi_sub + theorem Real.cos_sub_int_mul_pi + theorem Real.cos_sub_nat_mul_pi + theorem Real.sin_add_int_mul_pi + theorem Real.sin_add_nat_mul_pi + theorem Real.sin_int_mul_pi_sub + theorem Real.sin_nat_mul_pi_sub + theorem Real.sin_sub_int_mul_pi + theorem Real.sin_sub_nat_mul_pi 2024-04-02 12:35:27 a2b6e2e chore(RingTheory): delete useless lemma (#11827) As discussed in https://github.com/leanprover-community/mathlib4/pull/11790 for the case of Lie derivations, it seems that this `map_sum` lemma is not useful since we can use the generic version. ESTIMATED CHANGES Modified Mathlib/RingTheory/Derivation/Basic.lean Modified Mathlib/RingTheory/Polynomial/Bernstein.lean 2024-04-02 11:51:10 9ad9f6e feat: instances for actions of ulifted spaces (#11777) ESTIMATED CHANGES Modified Mathlib/Topology/Algebra/ConstMulAction.lean Modified Mathlib/Topology/Algebra/Group/Basic.lean Modified Mathlib/Topology/Algebra/Monoid.lean Modified Mathlib/Topology/Algebra/MulAction.lean Modified Mathlib/Topology/Algebra/Ring/Basic.lean 2024-04-02 11:27:41 ad7dd1f chore: try again with new contributor label (#11834) Add the `new-contributor` label if there are at most 5 exisiting PRs by this author. Also adds a CI status line "New Contributor Check (push) — Found n PRs by this author." regardless. ESTIMATED CHANGES Modified .github/workflows/label_new_contributor.yml 2024-04-02 09:53:40 5a5e81a chore(AlgebraicGeometry/Gluing): fix soon-to-be-broken proof (#11838) This proof had two `change`s added during porting, and these produce a massive timeout after the changes in https://github.com/leanprover/lean4/pull/3807. This PR replace the `change` with the appropriate `erw`, and is now fast before and after the change. ESTIMATED CHANGES Modified Mathlib/AlgebraicGeometry/Gluing.lean 2024-04-02 09:53:39 ae003d8 feat: `findIdx` lemmas (#11808) Split from #9781. ESTIMATED CHANGES Modified Mathlib/Data/List/Indexes.lean + theorem List.findIdx_eq + theorem List.findIdx_eq_length + theorem List.findIdx_le_length + theorem List.findIdx_lt_length + theorem List.le_findIdx_of_not + theorem List.lt_findIdx_of_not + theorem List.not_of_lt_findIdx 2024-04-02 09:53:38 8d3a043 refactor: Names the function of Equiv.piFinSuccAbove (#10545) Creates `extractNth` to do the opposite of `insertNth` for tuples. Rewrites the `Equiv` definition. ESTIMATED CHANGES Modified Mathlib/Data/Fin/Tuple/Basic.lean + def Fin.extractNth + theorem Fin.extractNth_insertNth + theorem Fin.insertNth_extractNth Modified Mathlib/Logic/Equiv/Fin.lean 2024-04-02 09:29:23 23bc40b feat: add `mk_all` file (#11781) Typing `./scripts/mk_all.sh` updates the files ``` Mathlib.lean MathlibExtras.lean Mathlib/Tactic.lean Counterexamples.lean Archive.lean ``` so that they import all the available `.lean` files. [Zulip thread](https://leanprover.zulipchat.com/#narrow/stream/113488-general/topic/automatically.20generate.20ProjectName.2Elean/near/430236236) ESTIMATED CHANGES Added scripts/mk_all.sh 2024-04-02 00:30:38 333e2d7 chore(Data): solve `ERR_COP` style exceptions (#11825) This PR solves `ERR_COP` style exceptions by adding the copyright headers after having inspected the commit history of each file in Mathlib4 and in Mathlib3. ESTIMATED CHANGES Modified Mathlib/Data/Array/Basic.lean Modified Mathlib/Data/ByteArray.lean Modified Mathlib/Data/List/Card.lean Modified Mathlib/Data/UInt.lean 2024-04-02 00:06:05 69fafc8 chore: bump Std (#11833) ESTIMATED CHANGES Modified Mathlib/Combinatorics/Enumerative/Composition.lean Modified Mathlib/Data/List/Forall2.lean - theorem List.forall₂_cons Modified lake-manifest.json 2024-04-01 21:53:17 d8d7e69 feat(Algebra/Lie): define derivations on Lie algebras (#11790) This defines derivations on Lie algebras. The current definition of [Derivation](https://leanprover-community.github.io/mathlib4_docs/Mathlib/RingTheory/Derivation/Basic.html#Derivation) is restricted to commutative associative algebras, and thus cannot be used to manipulate derivations on Lie algebras. As discussed in [this Zulip thread](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/Derivations.20on.20Lie.20algebras), we thus give a parallel definition of a `LieDerivation` structure, which is specific to derivations on Lie algebras. This PR is focused on the definition of this structure and the first associated properties. It adds a new file `Algebra.Lie.Derivation.Basic` which was mostly obtained by a large copy-paste of file `RingTheory.Derivation.Basic`. I report below the changes I made with respect to this other version. - Remove all `#align` directives - Adapt import statements - Add new definition of `LieDerivation` - Replace `namespace Derivation` with `namespace LieDerivation` - Remove `open Algebra` - Replace `Algebra A` with `LieAlgebra L` everywhere - Replace `Derivation R A M` with `LieDerivation R L M` everywhere - Delete field `map_one_eq_zero'` in instances, since we don't require it in the definition of Lie derivation - Adjust `simp only` tactics for `leibniz'` field in instances - Add lemma `apply_lie_eq_add` to restore usual Leibniz rule in Lie algebras (since our definition relies on left actions, so has a minus sign). - There is no unit 1 in a Lie algebra. We delete all related theorems - `map_one_eq_zero` (there is no 1 in a Lie algebra) - `map_coe_nat` (there is no "n : Nat" in a Lie algebra) - `map_coe_int` (there is no "n : Int" in a Lie algebra) - `leibniz_pow` (there is "power" in a Lie algebra) - `leibniz_of_mul_eq_one` (there is no [a,b]= 1 in a Lie algebra) - `leibniz_inv` and `leibniz_invOf` (no inverse in a Lie algebra) - `map_algebraMap` (no scalars in the Lie algebra) - Derivation has an `mk'` constructor to bypass the `map_one_eq_zero'` field in an `AddCancelCommMonoid M`. Since we don't require this property for Lie derivations, we delete everything related: `mk'`, `coe_mk'`, `coe_mk'_linearMap` (the whole `section Cancel`) - Derivations have a theorem `eqOn_adjoin` to prove that if two derivations are equal on a set, they are equal on the subalgebra spanned by this set. We write it as `eqOn_lieSpan`. Since the proof of this result relied on an induction principle `RingTheory.Adjoin.Basic.adjoin_induction`, we needed a similar principle for Lie spans. We added it as the `Algebra.Lie.Submodule.lieSpan_induction` theorem in the `Algebra.Lie.Submodule` file. - Add a `SMulBracketCommClass` class to encode commutativity of scalar multiplication and left Lie action (as a substitute for `SMulCommClass S L M`), see `section Scalar`. Introduce instances for `S = Nat` and `S = Int`. - Unwrap useless section, useless variables - Delete `compAlgebraMap` theorem, related with a tower of algebras, since a Lie algebra cannot serve as a scalar field for another one. - Delete `section Pushforward` (and everything inside), as it was related to composing an A-linear map with a derivation. While this works when A is an associative algebra, one cannot use a Lie algebra in this role since it is not associative. - Could not figure out what the equivalent instance of `IsCentralScalar S (Derivation R A M)` for a Lie derivation should be, so I skipped this instance. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Lie/Derivation/Basic.lean + def LieDerivation.Simps.apply + theorem LieDerivation.add_apply + theorem LieDerivation.apply_lie_eq_add + theorem LieDerivation.apply_lie_eq_sub + def LieDerivation.coeFnAddMonoidHom + theorem LieDerivation.coeFn_coe + theorem LieDerivation.coe_add + theorem LieDerivation.coe_add_linearMap + theorem LieDerivation.coe_injective + theorem LieDerivation.coe_neg + theorem LieDerivation.coe_neg_linearMap + theorem LieDerivation.coe_smul + theorem LieDerivation.coe_smul_linearMap + theorem LieDerivation.coe_sub + theorem LieDerivation.coe_sub_linearMap + theorem LieDerivation.coe_zero + theorem LieDerivation.coe_zero_linearMap + theorem LieDerivation.commutator_apply + theorem LieDerivation.commutator_coe_linear_map + theorem LieDerivation.congr_fun + theorem LieDerivation.eqOn_lieSpan + theorem LieDerivation.ext + theorem LieDerivation.ext_of_lieSpan_eq_top + theorem LieDerivation.mk_coe + theorem LieDerivation.neg_apply + theorem LieDerivation.smul_apply + theorem LieDerivation.sub_apply + theorem LieDerivation.toFun_eq_coe + theorem LieDerivation.zero_apply + structure LieDerivation Modified Mathlib/Algebra/Lie/Subalgebra.lean + theorem LieSubalgebra.lieSpan_induction 2024-04-01 20:23:46 2a4a37a chore: add pp_dot to Functor.unop (#11823) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Opposites.lean 2024-04-01 18:06:47 16f0500 feat: cleanup file on derivative of Fourier transform (#11779) Rename `mul_L` to `fourierSMulRight` for predictability, expand the file-level docstring, extract a few lemmas from proofs, change `fourier_integral` to `fourierIntegral` in a few lemma names. There is essentially no new mathematical content. This is a preparation for the study of higher order derivatives in #11776. ESTIMATED CHANGES Modified Mathlib/Analysis/Distribution/FourierSchwartz.lean - theorem SchwartzMap.hasFDerivAt_fourier + theorem SchwartzMap.hasFDerivAt_fourierIntegral + def VectorFourier.fourierSMulRightSchwartz + theorem VectorFourier.fourierSMulRightSchwartz_apply - def VectorFourier.mul_L_schwartz - theorem VectorFourier.mul_L_schwartz_apply Modified Mathlib/Analysis/Fourier/FourierTransform.lean + theorem Real.fourierIntegral_convergent_iff' + theorem Real.fourierIntegral_convergent_iff + theorem VectorFourier.fourierIntegral_convergent_iff - theorem VectorFourier.fourier_integral_convergent_iff Modified Mathlib/Analysis/Fourier/FourierTransformDeriv.lean + theorem MeasureTheory.AEStronglyMeasurable.fourierSMulRight + theorem Real.deriv_fourierIntegral + theorem Real.differentiable_fourierIntegral + theorem Real.fderiv_fourierIntegral + theorem Real.hasDerivAt_fourierIntegral + theorem Real.hasFDerivAt_fourierIntegral - theorem VectorFourier.InnerProductSpace.hasFDerivAt_fourier + theorem VectorFourier.differentiable_fourierIntegral + theorem VectorFourier.fderiv_fourierIntegral + def VectorFourier.fourierSMulRight + theorem VectorFourier.fourierSMulRight_apply - theorem VectorFourier.hasFDerivAt_fourier + theorem VectorFourier.hasFDerivAt_fourierChar_smul + theorem VectorFourier.hasFDerivAt_fourierIntegral - theorem VectorFourier.hasFDerivAt_fourier_transform_integrand_right - def VectorFourier.mul_L - theorem VectorFourier.norm_fderiv_fourier_transform_integrand_right - theorem VectorFourier.norm_fderiv_fourier_transform_integrand_right_le + theorem VectorFourier.norm_fourierSMulRight + theorem VectorFourier.norm_fourierSMulRight_le - theorem hasDerivAt_fourierIntegral Modified Mathlib/Analysis/Fourier/Inversion.lean Modified Mathlib/Analysis/Fourier/RiemannLebesgueLemma.lean + theorem fourierIntegral_eq_half_sub_half_period_translate + theorem fourierIntegral_half_period_translate - theorem fourier_integral_eq_half_sub_half_period_translate - theorem fourier_integral_half_period_translate - theorem fourier_integrand_integrable 2024-04-01 16:53:37 9d0b233 refactor: move `SimpleGraph.Iso.card_edgeFinset_eq` to untangle imports (#11817) The single and currently unused theorem `card_edgeFinset_eq` in `Combinatorics.SimpleGraph.Maps` causes a dependency of that file on `Combinatorics.SimpleGraph.Finite`, which is problematic because the key concepts of `Maps` don't depend on graph finiteness at all. This commit moves the offending theorem to `Operations` in anticipation of #9317. ESTIMATED CHANGES Modified Mathlib/Combinatorics/SimpleGraph/Clique.lean Modified Mathlib/Combinatorics/SimpleGraph/Maps.lean - theorem SimpleGraph.Iso.card_edgeFinset_eq Modified Mathlib/Combinatorics/SimpleGraph/Operations.lean + theorem SimpleGraph.Iso.card_edgeFinset_eq Modified Mathlib/Combinatorics/SimpleGraph/Subgraph.lean 2024-04-01 16:53:36 08686b2 chore: avoid Ne.def (adaptation for nightly-2024-03-27) (#11813) ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Covering/LiminfLimsup.lean Modified Mathlib/MeasureTheory/Covering/Vitali.lean Modified Mathlib/MeasureTheory/Decomposition/Lebesgue.lean Modified Mathlib/MeasureTheory/Function/AEEqOfIntegral.lean Modified Mathlib/MeasureTheory/Function/ConditionalExpectation/Basic.lean Modified Mathlib/MeasureTheory/Function/ConditionalExpectation/CondexpL1.lean Modified Mathlib/MeasureTheory/Function/ContinuousMapDense.lean Modified Mathlib/MeasureTheory/Function/Jacobian.lean Modified Mathlib/MeasureTheory/Function/L1Space.lean Modified Mathlib/MeasureTheory/Function/LpSeminorm/Basic.lean Modified Mathlib/MeasureTheory/Function/LpSeminorm/CompareExp.lean Modified Mathlib/MeasureTheory/Function/SimpleFunc.lean Modified Mathlib/MeasureTheory/Function/StronglyMeasurable/Basic.lean Modified Mathlib/MeasureTheory/Function/UniformIntegrable.lean Modified Mathlib/MeasureTheory/Group/AddCircle.lean Modified Mathlib/MeasureTheory/Group/FundamentalDomain.lean Modified Mathlib/MeasureTheory/Integral/Average.lean Modified Mathlib/MeasureTheory/Integral/Bochner.lean Modified Mathlib/MeasureTheory/Integral/CircleIntegral.lean Modified Mathlib/MeasureTheory/Integral/IntegrableOn.lean Modified Mathlib/MeasureTheory/Integral/Lebesgue.lean Modified Mathlib/MeasureTheory/Integral/LebesgueNormedSpace.lean Modified Mathlib/MeasureTheory/Integral/SetIntegral.lean Modified Mathlib/MeasureTheory/Integral/SetToL1.lean Modified Mathlib/MeasureTheory/Integral/VitaliCaratheodory.lean Modified Mathlib/MeasureTheory/Measure/AddContent.lean Modified Mathlib/MeasureTheory/Measure/Count.lean Modified Mathlib/MeasureTheory/Measure/Haar/NormedSpace.lean Modified Mathlib/MeasureTheory/Measure/Hausdorff.lean Modified Mathlib/MeasureTheory/Measure/Lebesgue/Basic.lean Modified Mathlib/MeasureTheory/Measure/Lebesgue/EqHaar.lean Modified Mathlib/MeasureTheory/Measure/MeasureSpace.lean Modified Mathlib/MeasureTheory/Measure/ProbabilityMeasure.lean Modified Mathlib/MeasureTheory/Measure/Regular.lean Modified Mathlib/MeasureTheory/Measure/WithDensity.lean Modified Mathlib/ModelTheory/Semantics.lean Modified Mathlib/ModelTheory/Types.lean Modified Mathlib/NumberTheory/ArithmeticFunction.lean Modified Mathlib/NumberTheory/ClassNumber/AdmissibleCardPowDegree.lean Modified Mathlib/NumberTheory/ClassNumber/Finite.lean Modified Mathlib/NumberTheory/Cyclotomic/Discriminant.lean Modified Mathlib/NumberTheory/Divisors.lean Modified Mathlib/NumberTheory/FunctionField.lean Modified Mathlib/NumberTheory/KummerDedekind.lean Modified Mathlib/NumberTheory/LegendreSymbol/GaussEisensteinLemmas.lean Modified Mathlib/NumberTheory/LegendreSymbol/MulCharacter.lean Modified Mathlib/NumberTheory/LegendreSymbol/QuadraticChar/Basic.lean Modified Mathlib/NumberTheory/LegendreSymbol/QuadraticChar/GaussSum.lean Modified Mathlib/NumberTheory/Liouville/Basic.lean Modified Mathlib/NumberTheory/Liouville/LiouvilleWith.lean Modified Mathlib/NumberTheory/LucasLehmer.lean Modified Mathlib/NumberTheory/ModularForms/JacobiTheta/OneVariable.lean Modified Mathlib/NumberTheory/NumberField/Embeddings.lean Modified Mathlib/NumberTheory/Padics/PadicNumbers.lean Modified Mathlib/NumberTheory/Padics/PadicVal.lean Modified Mathlib/NumberTheory/PythagoreanTriples.lean Modified Mathlib/NumberTheory/RamificationInertia.lean Modified Mathlib/NumberTheory/SumTwoSquares.lean Modified Mathlib/NumberTheory/VonMangoldt.lean Modified Mathlib/NumberTheory/ZetaFunction.lean Modified Mathlib/NumberTheory/ZetaValues.lean Modified Mathlib/NumberTheory/Zsqrtd/GaussianInt.lean Modified Mathlib/Order/ConditionallyCompleteLattice/Basic.lean Modified Mathlib/Order/Filter/Basic.lean Modified Mathlib/Order/Filter/Lift.lean Modified Mathlib/Order/Filter/Ultrafilter.lean Modified Mathlib/Order/JordanHolder.lean Modified Mathlib/Order/Lattice.lean +/- theorem inf_lt_sup Modified Mathlib/Order/Partition/Finpartition.lean Modified Mathlib/Order/SupIndep.lean Modified Mathlib/Probability/Distributions/Uniform.lean Modified Mathlib/Probability/Martingale/Convergence.lean Modified Mathlib/Probability/Moments.lean Modified Mathlib/Probability/ProbabilityMassFunction/Constructions.lean Modified Mathlib/Probability/ProbabilityMassFunction/Monad.lean Modified Mathlib/Probability/Variance.lean Modified Mathlib/RingTheory/AdjoinRoot.lean Modified Mathlib/RingTheory/Algebraic.lean Modified Mathlib/RingTheory/ChainOfDivisors.lean Modified Mathlib/RingTheory/Coprime/Lemmas.lean Modified Mathlib/RingTheory/DedekindDomain/AdicValuation.lean Modified Mathlib/RingTheory/DedekindDomain/Factorization.lean Modified Mathlib/RingTheory/DedekindDomain/Ideal.lean Modified Mathlib/RingTheory/DedekindDomain/PID.lean Modified Mathlib/RingTheory/DiscreteValuationRing/Basic.lean Modified Mathlib/RingTheory/EisensteinCriterion.lean Modified Mathlib/RingTheory/FractionalIdeal/Operations.lean Modified Mathlib/RingTheory/GradedAlgebra/Radical.lean Modified Mathlib/RingTheory/HahnSeries/Basic.lean Modified Mathlib/RingTheory/HahnSeries/Multiplication.lean Modified Mathlib/RingTheory/Ideal/AssociatedPrime.lean Modified Mathlib/RingTheory/Ideal/Basic.lean Modified Mathlib/RingTheory/Ideal/Norm.lean Modified Mathlib/RingTheory/Ideal/Operations.lean Modified Mathlib/RingTheory/Ideal/Over.lean Modified Mathlib/RingTheory/Int/Basic.lean Modified Mathlib/RingTheory/IntegralClosure.lean Modified Mathlib/RingTheory/IsAdjoinRoot.lean Modified Mathlib/RingTheory/Jacobson.lean Modified Mathlib/RingTheory/LaurentSeries.lean Modified Mathlib/RingTheory/Localization/FractionRing.lean Modified Mathlib/RingTheory/Localization/Integral.lean Modified Mathlib/RingTheory/MvPolynomial/Homogeneous.lean Modified Mathlib/RingTheory/MvPolynomial/WeightedHomogeneous.lean Modified Mathlib/RingTheory/MvPowerSeries/Basic.lean Modified Mathlib/RingTheory/Polynomial/Basic.lean Modified Mathlib/RingTheory/Polynomial/Bernstein.lean Modified Mathlib/RingTheory/Polynomial/Content.lean Modified Mathlib/RingTheory/Polynomial/Cyclotomic/Basic.lean Modified Mathlib/RingTheory/Polynomial/Cyclotomic/Eval.lean Modified Mathlib/RingTheory/Polynomial/Dickson.lean Modified Mathlib/RingTheory/Polynomial/GaussLemma.lean Modified Mathlib/RingTheory/Polynomial/Opposites.lean Modified Mathlib/RingTheory/PolynomialAlgebra.lean Modified Mathlib/RingTheory/PowerSeries/Basic.lean Modified Mathlib/RingTheory/RootsOfUnity/Basic.lean Modified Mathlib/RingTheory/RootsOfUnity/Complex.lean Modified Mathlib/RingTheory/RootsOfUnity/Minpoly.lean Modified Mathlib/RingTheory/WittVector/FrobeniusFractionField.lean Modified Mathlib/RingTheory/WittVector/MulCoeff.lean Modified Mathlib/SetTheory/Cardinal/ENat.lean Modified Mathlib/Testing/SlimCheck/Functions.lean Modified Mathlib/Topology/Algebra/ConstMulAction.lean Modified Mathlib/Topology/Algebra/Group/Basic.lean Modified Mathlib/Topology/Algebra/InfiniteSum/Group.lean Modified Mathlib/Topology/Algebra/InfiniteSum/Order.lean Modified Mathlib/Topology/Basic.lean Modified Mathlib/Topology/Connected/Basic.lean Modified Mathlib/Topology/EMetricSpace/Basic.lean Modified Mathlib/Topology/Instances/ENNReal.lean Modified Mathlib/Topology/MetricSpace/CantorScheme.lean Modified Mathlib/Topology/MetricSpace/Gluing.lean Modified Mathlib/Topology/MetricSpace/HausdorffDistance.lean Modified Mathlib/Topology/MetricSpace/Infsep.lean Modified Mathlib/Topology/MetricSpace/PiNat.lean Modified Mathlib/Topology/PartitionOfUnity.lean Modified Mathlib/Topology/Separation.lean Modified Mathlib/Topology/Sets/Opens.lean 2024-04-01 16:53:35 ab5ca95 feat(Mathlib/RingTheory/Ideal/Operations): simplify definition of radical (#11723) * `add_pow_mem_of_pow_mem_of_le` says that (a + b) ^ k belongs to an ideal I if a ^ m and b ^ n belong to that ideal, and `m + n ≤ k + 1`. * `Commute.add_pow_of_add_le_succ_eq_zero_of_pow_eq_zero` says that `(a + b) ^ k = 0` if `a ^ m = 0`, `b^ n = 0`, and `m + n ≤ k + 1`. * this is used to simplify the definition of docs#Ideal.radical and the definition of docs#Commute.isNilpotent_add ESTIMATED CHANGES Modified Mathlib/RingTheory/Ideal/Basic.lean + theorem Ideal.add_pow_add_pred_mem_of_pow_mem + theorem Ideal.add_pow_mem_of_pow_mem_of_le + theorem Ideal.pow_mem_of_pow_mem Modified Mathlib/RingTheory/Ideal/Operations.lean Modified Mathlib/RingTheory/Nilpotent.lean + theorem Commute.add_pow_add_eq_zero_of_pow_eq_zero + theorem Commute.add_pow_eq_zero_of_add_le_succ_of_pow_eq_zero 2024-04-01 16:13:22 66c48ce feat: bundled versions of two operations on continuous multilinear maps (#11775) We provide versions of `smulRight` and `compContinuousLinearMap` as a continuous bilinear (resp multilinear) map. ESTIMATED CHANGES Modified Mathlib/Analysis/NormedSpace/Multilinear/Basic.lean + def ContinuousMultilinearMap.compContinuousLinearMapLRight + theorem ContinuousMultilinearMap.compContinuousLinearMapLRight_apply + theorem ContinuousMultilinearMap.norm_compContinuousLinearMapLRight_le + def ContinuousMultilinearMap.smulRightL + theorem ContinuousMultilinearMap.smulRightL_apply Modified Mathlib/Topology/Algebra/Module/StrongTopology.lean + theorem ContinuousLinearMap.toLinearMap₂_apply Modified scripts/style-exceptions.txt 2024-04-01 15:04:41 8667e5d feat(Topology/Maps): add `*.of_subsingleton` and `*.of_isEmpty` (#11818) Also use `OpenEmbedding.of_subsingleton` to golf `AlgebraicGeometry.isOpenImmersion_of_isEmpty`. ESTIMATED CHANGES Modified Mathlib/AlgebraicGeometry/Limits.lean Modified Mathlib/Topology/Maps.lean + theorem Embedding.of_subsingleton + theorem Inducing.of_subsingleton + theorem IsOpenMap.of_isEmpty + theorem OpenEmbedding.of_isEmpty 2024-04-01 09:43:16 b7ca925 feat(Option/Basic): add 2 trivial lemmas (#11641) ESTIMATED CHANGES Modified Mathlib/Data/Option/Basic.lean + theorem Option.get_map + theorem Option.isSome_map 2024-04-01 09:16:42 126ee58 chore(AkraBazzi): fix `Fintype`/`Finite` (#11816) ESTIMATED CHANGES Modified Mathlib/Computability/AkraBazzi/AkraBazzi.lean +/- theorem AkraBazziRecurrence.max_bi_le +/- theorem AkraBazziRecurrence.min_bi_le +/- structure AkraBazziRecurrence 2024-03-31 21:48:30 6452826 feat: add Tendsto.fst, Tendsto.snd, Tendsto.apply and nhds versions (#11812) - Add `Tendsto.fst`, `Tendsto.snd` and `Tendsto.apply` (these are about product of filters) - Move the current `Tendsto.apply` to `Tendsto.apply_nhds`, and add `Tendsto.fst_nhds` and `Tendsto.snd_nhds` (these are about neighborhoods in a product space) ESTIMATED CHANGES Modified Mathlib/Analysis/NormedSpace/lpSpace.lean Modified Mathlib/MeasureTheory/Covering/BesicovitchVectorSpace.lean Modified Mathlib/Order/Filter/Pi.lean Modified Mathlib/Order/Filter/Prod.lean + theorem Filter.Tendsto.fst + theorem Filter.Tendsto.snd Modified Mathlib/Topology/Constructions.lean - theorem Filter.Tendsto.apply + theorem Filter.Tendsto.apply_nhds + theorem Filter.Tendsto.fst_nhds + theorem Filter.Tendsto.snd_nhds 2024-03-31 21:48:29 522c668 chore: move Coxeter groups file (#11804) Move `GroupTheory.SpecificGroups.Coxeter` to `GroupTheory.Coxeter.Basic`. ESTIMATED CHANGES Modified Mathlib.lean Renamed Mathlib/GroupTheory/SpecificGroups/Coxeter.lean to Mathlib/GroupTheory/Coxeter/Basic.lean 2024-03-31 21:48:28 6ed34ab chore(DFinsupp/Basic): drop a `DecidableEq` assumption (#11795) Golf `DFinsupp.finite_support`, drop an unneeded `DecidableEq` assumption. ESTIMATED CHANGES Modified Mathlib/Data/DFinsupp/Basic.lean +/- theorem DFinsupp.finite_support 2024-03-31 20:40:04 c5b0516 chore(Finset/Basic): drop an unneeded `DecidableEq` assumption (#11796) ESTIMATED CHANGES Modified Mathlib/Data/Finset/Basic.lean 2024-03-31 17:44:42 a87bb68 chore(SimpleGraph/Clique): drop a `DecidableEq` assumption (#11811) ESTIMATED CHANGES Modified Mathlib/Combinatorics/SimpleGraph/Clique.lean 2024-03-31 00:56:41 9158f32 chore(Data/List): Depend less on big operators (#11741) * Make `Data.List.Count`, `Data.List.Dedup`, `Data.List.ProdSigma`, `Data.List.Range`, `Data.List.Rotate`, `Data.List.Zip` not depend on `Data.List.BigOperators.Basic`. * As a consequence, move the big operators lemmas that were in there to `Data.List.BigOperators.Basic`. For the lemmas that were `Nat`-specific, keep a version of them in the original file but stated using `Nat.sum`. * To help with this, add `Nat.sum_eq_listSum (l : List Nat) : Nat.sum l = l.sum`. ESTIMATED CHANGES Modified Mathlib/Algebra/BigOperators/List/Basic.lean +/- theorem List.exists_mem_ne_one_of_prod_ne_one + theorem List.length_sigma + theorem List.mem_mem_ranges_iff_lt_sum +/- theorem List.prod_eq_one + theorem List.prod_eq_pow_single +/- theorem List.prod_erase +/- theorem List.prod_erase_of_comm + theorem List.prod_map_eq_pow_single +/- theorem List.prod_map_erase + theorem List.prod_mul_prod_eq_prod_zipWith_mul_prod_drop + theorem List.prod_mul_prod_eq_prod_zipWith_of_length_eq + theorem List.prod_range_succ' + theorem List.prod_range_succ + theorem List.prod_rotate_eq_one_of_prod_eq_one + theorem List.ranges_join + theorem List.sum_map_count_dedup_eq_length + theorem List.sum_map_count_dedup_filter_eq_countP + theorem List.sum_zipWith_distrib_left + theorem Nat.sum_eq_listSum Modified Mathlib/Data/List/Count.lean - theorem List.countP_join - theorem List.count_bind - theorem List.count_join - theorem List.prod_eq_pow_single - theorem List.prod_map_eq_pow_single Modified Mathlib/Data/List/Dedup.lean - theorem List.sum_map_count_dedup_eq_length - theorem List.sum_map_count_dedup_filter_eq_countP Modified Mathlib/Data/List/Join.lean + theorem List.countP_bind + theorem List.countP_join + theorem List.count_bind + theorem List.count_join Modified Mathlib/Data/List/Perm.lean Modified Mathlib/Data/List/ProdSigma.lean + theorem List.length_sigma' - theorem List.length_sigma Modified Mathlib/Data/List/Range.lean + theorem List.mem_mem_ranges_iff_lt_natSum - theorem List.mem_mem_ranges_iff_lt_sum - theorem List.prod_range_succ' - theorem List.prod_range_succ + theorem List.ranges_join' - theorem List.ranges_join +/- theorem List.ranges_nodup Modified Mathlib/Data/List/Rotate.lean - theorem List.prod_rotate_eq_one_of_prod_eq_one Modified Mathlib/Data/List/Zip.lean - theorem List.prod_mul_prod_eq_prod_zipWith_mul_prod_drop - theorem List.prod_mul_prod_eq_prod_zipWith_of_length_eq - theorem List.sum_zipWith_distrib_left 2024-03-30 22:01:45 f4bf34d feat: Infinite products (#11733) Last year, YaelDillies made a pull request to mathlib3 that unfortunately never got merged in: https://github.com/leanprover-community/mathlib/pull/18405. This is the mathlib4 version of that pull request. We define arbitrarily indexed products in a commutative monoid with a topology. This is done by "multiplicativizing" the currently existing definitions and theorems about arbitrarily indexed sums. That is, the existing code is rewritten in the multiplicative setting, and the original definitions and theorems are recovered using `@[to_additive]`. Please see this thread on Zulip for information on why this approach was chosen: https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/Infinite.20products As YaelDillies wrote in the description of https://github.com/leanprover-community/mathlib/pull/18405, there are a few small technical issues that arise when directly "multiplicativizing" theorems in this way: - I have renamed `cauchySeq_finset_iff_vanishing` to `cauchySeq_finset_iff_sum_vanishing` to make the name multiplicativizable. This is slightly different from the name `cauchy_seq_finset_sum_iff_vanishing` that YaelDillies used, and it is meant to parallel the existing name `cauchySeq_finset_iff_tsum_vanishing`. - Currently, on master, there is a theorem called `tsum_sum` about taking the `tsum` of a `sum`, and a theorem called `tsum_prod` about taking a `tsum` on a product of two index sets. I have called the multiplicative versions `tprod_of_prod` and `tprod_prod`. This is slightly different from the names `tprod_prod''` and `tprod_prod` that YaelDillies used. eric-wieser suggested renaming `tsum_prod` to `tsum_prod_index` to get around this issue, which I can do in a separate pull request. ESTIMATED CHANGES Modified Mathlib/Analysis/Normed/Group/InfiniteSum.lean Modified Mathlib/Tactic/ToAdditive.lean Modified Mathlib/Topology/Algebra/InfiniteSum/Basic.lean + theorem Equiv.hasProd_iff + theorem Equiv.hasProd_iff_of_mulSupport - theorem Equiv.hasSum_iff - theorem Equiv.hasSum_iff_of_support + theorem Equiv.multipliable_iff + theorem Equiv.multipliable_iff_of_mulSupport - theorem Equiv.summable_iff - theorem Equiv.summable_iff_of_support + theorem Equiv.tprod_eq + theorem Equiv.tprod_eq_tprod_of_mulSupport - theorem Equiv.tsum_eq - theorem Equiv.tsum_eq_tsum_of_support + theorem Finset.tprod_subtype' + theorem Finset.tprod_subtype - theorem Finset.tsum_subtype' - theorem Finset.tsum_subtype + theorem Function.Injective.hasProd_range_iff - theorem Function.Injective.hasSum_range_iff + theorem Function.Injective.multipliable_iff - theorem Function.Injective.summable_iff + theorem Function.Injective.tprod_eq - theorem Function.Injective.tsum_eq + theorem Function.Surjective.multipliable_iff_of_hasProd_iff - theorem Function.Surjective.summable_iff_of_hasSum_iff + theorem Function.Surjective.tprod_eq_tprod_of_hasProd_iff_hasProd - theorem Function.Surjective.tsum_eq_tsum_of_hasSum_iff_hasSum + theorem HasProd.compl_mul + theorem HasProd.hasProd_of_prod_eq + theorem HasProd.mul + theorem HasProd.mul_compl + theorem HasProd.mul_disjoint + theorem HasProd.mul_isCompl + theorem HasProd.update' - theorem HasSum.add - theorem HasSum.add_compl - theorem HasSum.add_disjoint - theorem HasSum.add_isCompl - theorem HasSum.compl_add - theorem HasSum.hasSum_of_sum_eq - theorem HasSum.update' + theorem Multipliable.compl_add + theorem Multipliable.congr + theorem Multipliable.mul + theorem Multipliable.mul_compl - theorem Summable.add - theorem Summable.add_compl - theorem Summable.compl_add - theorem Summable.congr - theorem eq_add_of_hasSum_ite + theorem eq_mul_of_hasProd_ite + theorem hasProd_empty + theorem hasProd_extend_one + theorem hasProd_iff_hasProd + theorem hasProd_iff_hasProd_of_ne_one_bij + theorem hasProd_ite_eq + theorem hasProd_one + theorem hasProd_prod + theorem hasProd_prod_disjoint + theorem hasProd_single + theorem hasProd_singleton + theorem hasProd_subtype_iff_mulIndicator + theorem hasProd_subtype_mulSupport + theorem hasProd_unique - theorem hasSum_empty - theorem hasSum_extend_zero - theorem hasSum_iff_hasSum - theorem hasSum_iff_hasSum_of_ne_zero_bij - theorem hasSum_ite_eq - theorem hasSum_single - theorem hasSum_singleton - theorem hasSum_subtype_iff_indicator - theorem hasSum_subtype_support - theorem hasSum_sum - theorem hasSum_sum_disjoint - theorem hasSum_unique - theorem hasSum_zero + theorem multipliable_congr + theorem multipliable_empty + theorem multipliable_extend_one + theorem multipliable_of_finite_mulSupport + theorem multipliable_one + theorem multipliable_prod + theorem multipliable_subtype_iff_mulIndicator + theorem prod_eq_tprod_mulIndicator - theorem sum_eq_tsum_indicator - theorem summable_congr - theorem summable_empty - theorem summable_extend_zero - theorem summable_of_finite_support - theorem summable_subtype_iff_indicator - theorem summable_sum - theorem summable_zero + theorem tprod_bool + theorem tprod_congr + theorem tprod_congr_set_coe + theorem tprod_congr_subtype + theorem tprod_dite_left + theorem tprod_dite_right + theorem tprod_empty + theorem tprod_eq_finprod + theorem tprod_eq_mulSingle + theorem tprod_eq_mul_tprod_ite' + theorem tprod_eq_prod' + theorem tprod_eq_prod + theorem tprod_eq_tprod_diff_singleton + theorem tprod_eq_tprod_of_hasProd_iff_hasProd + theorem tprod_eq_tprod_of_ne_one_bij + theorem tprod_extend_one + theorem tprod_finset_bUnion_disjoint + theorem tprod_fintype + theorem tprod_image + theorem tprod_ite_eq + theorem tprod_mul + theorem tprod_mul_tprod_compl + theorem tprod_of_prod + theorem tprod_one + theorem tprod_range + theorem tprod_setElem_eq_tprod_setElem_diff + theorem tprod_singleton + theorem tprod_subtype + theorem tprod_subtype_eq_of_mulSupport_subset + theorem tprod_subtype_mulSupport + theorem tprod_tprod_eq_mulSingle + theorem tprod_union_disjoint + theorem tprod_univ - theorem tsum_add - theorem tsum_add_tsum_compl - theorem tsum_bool - theorem tsum_congr - theorem tsum_congr_set_coe - theorem tsum_congr_subtype - theorem tsum_dite_left - theorem tsum_dite_right - theorem tsum_empty - theorem tsum_eq_add_tsum_ite' - theorem tsum_eq_finsum - theorem tsum_eq_single - theorem tsum_eq_sum' - theorem tsum_eq_sum - theorem tsum_eq_tsum_diff_singleton - theorem tsum_eq_tsum_of_hasSum_iff_hasSum - theorem tsum_eq_tsum_of_ne_zero_bij - theorem tsum_extend_zero - theorem tsum_finset_bUnion_disjoint - theorem tsum_fintype - theorem tsum_image - theorem tsum_ite_eq - theorem tsum_range - theorem tsum_setElem_eq_tsum_setElem_diff - theorem tsum_singleton - theorem tsum_subtype - theorem tsum_subtype_eq_of_support_subset - theorem tsum_subtype_support - theorem tsum_sum - theorem tsum_tsum_eq_single - theorem tsum_union_disjoint - theorem tsum_univ - theorem tsum_zero Modified Mathlib/Topology/Algebra/InfiniteSum/Constructions.lean + theorem HasProd.prod_fiberwise + theorem HasProd.prod_mk + theorem HasProd.sigma + theorem HasProd.sigma_of_hasProd + theorem HasProd.tprod_fiberwise - theorem HasSum.prod_fiberwise - theorem HasSum.prod_mk - theorem HasSum.sigma - theorem HasSum.sigma_of_hasSum - theorem HasSum.tsum_fiberwise + theorem Multipliable.prod_factor + theorem Multipliable.prod_symm + theorem Multipliable.sigma' + theorem Multipliable.sigma + theorem Multipliable.sigma_factor + theorem Pi.hasProd - theorem Pi.hasSum + theorem Pi.multipliable - theorem Pi.summable - theorem Summable.prod_factor - theorem Summable.prod_symm - theorem Summable.sigma' - theorem Summable.sigma - theorem Summable.sigma_factor + theorem hasProd_pi_single - theorem hasSum_pi_single + theorem tprod_apply + theorem tprod_comm' + theorem tprod_comm + theorem tprod_pi_single + theorem tprod_prod' + theorem tprod_prod + theorem tprod_setProd_singleton_left + theorem tprod_setProd_singleton_right + theorem tprod_sigma' + theorem tprod_sigma - theorem tsum_apply - theorem tsum_comm' - theorem tsum_comm - theorem tsum_pi_single - theorem tsum_prod' - theorem tsum_prod - theorem tsum_setProd_singleton_left - theorem tsum_setProd_singleton_right - theorem tsum_sigma' - theorem tsum_sigma Modified Mathlib/Topology/Algebra/InfiniteSum/Defs.lean + theorem Function.Injective.hasProd_iff - theorem Function.Injective.hasSum_iff + theorem HasProd.multipliable + theorem HasProd.tprod_eq + theorem HasProd.unique + def HasProd - theorem HasSum.summable - theorem HasSum.tsum_eq - theorem HasSum.unique - def HasSum + theorem Multipliable.hasProd + theorem Multipliable.hasProd_iff + def Multipliable - theorem Summable.hasSum - theorem Summable.hasSum_iff - def Summable + theorem hasProd_fintype + theorem hasProd_prod_of_ne_finset_one + theorem hasProd_subtype_iff_of_mulSupport_subset - theorem hasSum_fintype - theorem hasSum_subtype_iff_of_support_subset - theorem hasSum_sum_of_ne_finset_zero + theorem multipliable_of_ne_finset_one - theorem summable_of_ne_finset_zero + theorem tprod_eq_one_of_not_multipliable - theorem tsum_eq_zero_of_not_summable Modified Mathlib/Topology/Algebra/InfiniteSum/Group.lean + theorem HasProd.div + theorem HasProd.hasProd_compl_iff + theorem HasProd.hasProd_iff_compl + theorem HasProd.inv + theorem HasProd.update - theorem HasSum.hasSum_compl_iff - theorem HasSum.hasSum_iff_compl - theorem HasSum.neg - theorem HasSum.sub - theorem HasSum.update + theorem Multipliable.comp_injective + theorem Multipliable.countable_mulSupport + theorem Multipliable.div + theorem Multipliable.inv + theorem Multipliable.multipliable_compl_iff + theorem Multipliable.multipliable_of_eq_one_or_self + theorem Multipliable.of_inv + theorem Multipliable.subtype + theorem Multipliable.tendsto_cofinite_one + theorem Multipliable.tprod_vanishing + theorem Multipliable.trans_div + theorem Multipliable.update + theorem Multipliable.vanishing + theorem Set.Finite.multipliable_compl_iff - theorem Set.Finite.summable_compl_iff - theorem Summable.comp_injective - theorem Summable.countable_support - theorem Summable.neg - theorem Summable.of_neg - theorem Summable.sub - theorem Summable.subtype - theorem Summable.summable_compl_iff - theorem Summable.summable_of_eq_zero_or_self - theorem Summable.tendsto_cofinite_zero - theorem Summable.trans_sub - theorem Summable.tsum_vanishing - theorem Summable.update - theorem Summable.vanishing + theorem cauchySeq_finset_iff_prod_vanishing + theorem cauchySeq_finset_iff_tprod_vanishing - theorem cauchySeq_finset_iff_tsum_vanishing - theorem cauchySeq_finset_iff_vanishing + theorem hasProd_ite_div_hasProd - theorem hasSum_ite_sub_hasSum + theorem multipliable_const_iff + theorem multipliable_iff_cauchySeq_finset + theorem multipliable_iff_of_multipliable_div + theorem multipliable_iff_tprod_vanishing + theorem multipliable_iff_vanishing + theorem multipliable_inv_iff + theorem multipliable_subtype_and_compl + theorem prod_mul_tprod_compl + theorem prod_mul_tprod_subtype_compl - theorem sum_add_tsum_compl - theorem sum_add_tsum_subtype_compl - theorem summable_const_iff - theorem summable_iff_cauchySeq_finset - theorem summable_iff_of_summable_sub - theorem summable_iff_tsum_vanishing - theorem summable_iff_vanishing - theorem summable_neg_iff - theorem summable_subtype_and_compl + theorem tendsto_tprod_compl_atTop_one - theorem tendsto_tsum_compl_atTop_zero + theorem tprod_const + theorem tprod_div + theorem tprod_eq_mul_tprod_ite + theorem tprod_inv + theorem tprod_subtype_mul_tprod_subtype_compl - theorem tsum_const - theorem tsum_eq_add_tsum_ite - theorem tsum_neg - theorem tsum_sub - theorem tsum_subtype_add_tsum_subtype_compl Modified Mathlib/Topology/Algebra/InfiniteSum/NatInt.lean + theorem HasProd.even_mul_odd + theorem HasProd.int_rec + theorem HasProd.nat_mul_neg + theorem HasProd.nat_mul_neg_add_one + theorem HasProd.of_add_one_of_neg_add_one + theorem HasProd.of_nat_of_neg + theorem HasProd.of_nat_of_neg_add_one + theorem HasProd.prod_range_mul + theorem HasProd.tendsto_prod_nat + theorem HasProd.zero_mul - theorem HasSum.even_add_odd - theorem HasSum.int_rec - theorem HasSum.nat_add_neg - theorem HasSum.nat_add_neg_add_one - theorem HasSum.of_add_one_of_neg_add_one - theorem HasSum.of_nat_of_neg - theorem HasSum.of_nat_of_neg_add_one - theorem HasSum.sum_range_add - theorem HasSum.tendsto_sum_nat - theorem HasSum.zero_add + theorem Multipliable.comp_nat_add + theorem Multipliable.even_mul_odd + theorem Multipliable.hasProd_iff_tendsto_nat + theorem Multipliable.int_rec + theorem Multipliable.nat_mul_neg + theorem Multipliable.nat_mul_neg_add_one + theorem Multipliable.nat_tprod_vanishing + theorem Multipliable.of_add_one_of_neg_add_one + theorem Multipliable.of_nat_of_neg + theorem Multipliable.of_nat_of_neg_add_one + theorem Multipliable.tendsto_atTop_one - theorem Summable.comp_nat_add - theorem Summable.even_add_odd - theorem Summable.hasSum_iff_tendsto_nat - theorem Summable.int_rec - theorem Summable.nat_add_neg - theorem Summable.nat_add_neg_add_one - theorem Summable.nat_tsum_vanishing - theorem Summable.of_add_one_of_neg_add_one - theorem Summable.of_nat_of_neg - theorem Summable.of_nat_of_neg_add_one - theorem Summable.tendsto_atTop_zero + theorem cauchySeq_finset_iff_nat_tprod_vanishing - theorem cauchySeq_finset_iff_nat_tsum_vanishing + theorem hasProd_nat_add_iff' + theorem hasProd_nat_add_iff - theorem hasSum_nat_add_iff' - theorem hasSum_nat_add_iff + theorem multipliable_iff_nat_tprod_vanishing + theorem multipliable_int_iff_multipliable_nat_and_neg + theorem multipliable_int_iff_multipliable_nat_and_neg_add_one + theorem multipliable_nat_add_iff + theorem prod_mul_tprod_nat_add + theorem prod_mul_tprod_nat_mul' + theorem rel_iSup_prod - theorem rel_iSup_sum + theorem rel_iSup_tprod - theorem rel_iSup_tsum - theorem rel_sup_add + theorem rel_sup_mul - theorem sum_add_tsum_nat_add' - theorem sum_add_tsum_nat_add - theorem summable_iff_nat_tsum_vanishing - theorem summable_int_iff_summable_nat_and_neg - theorem summable_int_iff_summable_nat_and_neg_add_one - theorem summable_nat_add_iff + theorem tendsto_prod_nat_add - theorem tendsto_sum_nat_add + theorem tprod_eq_zero_mul' + theorem tprod_eq_zero_mul + theorem tprod_even_mul_odd + theorem tprod_iSup_decode₂ + theorem tprod_iUnion_decode₂ + theorem tprod_int_rec + theorem tprod_nat_mul_neg + theorem tprod_nat_mul_neg_add_one + theorem tprod_of_add_one_of_neg_add_one + theorem tprod_of_nat_of_neg + theorem tprod_of_nat_of_neg_add_one - theorem tsum_eq_zero_add' - theorem tsum_eq_zero_add - theorem tsum_even_add_odd - theorem tsum_iSup_decode₂ - theorem tsum_iUnion_decode₂ - theorem tsum_int_rec - theorem tsum_nat_add_neg - theorem tsum_nat_add_neg_add_one - theorem tsum_of_add_one_of_neg_add_one - theorem tsum_of_nat_of_neg - theorem tsum_of_nat_of_neg_add_one Modified Mathlib/Topology/Algebra/InfiniteSum/Order.lean + theorem HasProd.le_one + theorem HasProd.one_le - theorem HasSum.nonneg - theorem HasSum.nonpos + theorem hasProd_le + theorem hasProd_le_inj + theorem hasProd_le_of_prod_le + theorem hasProd_lt + theorem hasProd_mono + theorem hasProd_of_isLUB + theorem hasProd_of_isLUB_of_one_le + theorem hasProd_one_iff + theorem hasProd_one_iff_of_one_le + theorem hasProd_strict_mono - theorem hasSum_le - theorem hasSum_le_inj - theorem hasSum_le_of_sum_le - theorem hasSum_lt - theorem hasSum_mono - theorem hasSum_of_isLUB - theorem hasSum_of_isLUB_of_nonneg - theorem hasSum_strict_mono - theorem hasSum_zero_iff - theorem hasSum_zero_iff_of_nonneg + theorem isLUB_hasProd' + theorem isLUB_hasProd - theorem isLUB_hasSum' - theorem isLUB_hasSum + theorem le_hasProd' + theorem le_hasProd + theorem le_hasProd_of_le_prod - theorem le_hasSum' - theorem le_hasSum - theorem le_hasSum_of_le_sum + theorem le_tprod' + theorem le_tprod - theorem le_tsum' - theorem le_tsum + theorem multipliable_mabs_iff + theorem one_le_tprod + theorem one_lt_tprod + theorem prod_le_hasProd + theorem prod_le_tprod - theorem sum_le_hasSum - theorem sum_le_tsum - theorem summable_abs_iff + theorem tprod_eq_one_iff + theorem tprod_le_of_prod_le' + theorem tprod_le_of_prod_le + theorem tprod_le_of_prod_range_le + theorem tprod_le_one + theorem tprod_le_tprod + theorem tprod_le_tprod_of_inj + theorem tprod_lt_tprod + theorem tprod_mono + theorem tprod_ne_one_iff + theorem tprod_strict_mono - theorem tsum_eq_zero_iff - theorem tsum_le_of_sum_le' - theorem tsum_le_of_sum_le - theorem tsum_le_of_sum_range_le - theorem tsum_le_tsum - theorem tsum_le_tsum_of_inj - theorem tsum_lt_tsum - theorem tsum_mono - theorem tsum_ne_zero_iff - theorem tsum_nonneg - theorem tsum_nonpos - theorem tsum_pos - theorem tsum_strict_mono 2024-03-30 20:20:10 1b40c7b chore: avoid Ne.def (adaptation for nightly-2024-03-27) (#11801) ESTIMATED CHANGES Modified Archive/Imo/Imo2005Q4.lean Modified Archive/Wiedijk100Theorems/BallotProblem.lean Modified Archive/Wiedijk100Theorems/CubingACube.lean Modified Archive/Wiedijk100Theorems/FriendshipGraphs.lean Modified Counterexamples/ZeroDivisorsInAddMonoidAlgebras.lean Modified Mathlib/Algebra/BigOperators/Basic.lean Modified Mathlib/Algebra/BigOperators/Finprod.lean Modified Mathlib/Algebra/CharP/Basic.lean Modified Mathlib/Algebra/CharP/MixedCharZero.lean Modified Mathlib/Algebra/Function/Support.lean Modified Mathlib/Algebra/GeomSum.lean Modified Mathlib/Algebra/GroupWithZero/Power.lean Modified Mathlib/Algebra/Lie/Engel.lean Modified Mathlib/Algebra/Lie/Weights/Linear.lean Modified Mathlib/Algebra/Module/Basic.lean +/- theorem smul_ne_zero_iff Modified Mathlib/Algebra/MonoidAlgebra/Support.lean Modified Mathlib/Algebra/Order/Module/OrderedSMul.lean Modified Mathlib/Algebra/Order/Monoid/Canonical/Defs.lean Modified Mathlib/Algebra/Order/Rearrangement.lean Modified Mathlib/Algebra/Order/Ring/WithTop.lean Modified Mathlib/Algebra/Order/Sub/Canonical.lean Modified Mathlib/Algebra/Order/Sub/WithTop.lean Modified Mathlib/Algebra/Parity.lean Modified Mathlib/Algebra/Polynomial/BigOperators.lean Modified Mathlib/AlgebraicGeometry/FunctionField.lean Modified Mathlib/AlgebraicGeometry/PrimeSpectrum/Basic.lean Modified Mathlib/AlgebraicGeometry/Properties.lean Modified Mathlib/AlgebraicTopology/DoldKan/FunctorGamma.lean Modified Mathlib/AlgebraicTopology/FundamentalGroupoid/Basic.lean Modified Mathlib/Analysis/Analytic/Composition.lean Modified Mathlib/Analysis/Analytic/Inverse.lean Modified Mathlib/Analysis/BoxIntegral/Partition/Split.lean Modified Mathlib/Analysis/Calculus/BumpFunction/FiniteDimension.lean Modified Mathlib/Analysis/Calculus/BumpFunction/InnerProduct.lean Modified Mathlib/Analysis/Calculus/ContDiff/Bounds.lean Modified Mathlib/Analysis/Calculus/FDeriv/Basic.lean Modified Mathlib/Analysis/Calculus/FDeriv/Symmetric.lean Modified Mathlib/Analysis/Calculus/LagrangeMultipliers.lean Modified Mathlib/Analysis/Calculus/TangentCone.lean Modified Mathlib/Analysis/Calculus/Taylor.lean Modified Mathlib/Analysis/Complex/Conformal.lean Modified Mathlib/Analysis/Complex/OpenMapping.lean Modified Mathlib/Analysis/Complex/RealDeriv.lean Modified Mathlib/Analysis/Complex/RemovableSingularity.lean Modified Mathlib/Analysis/Complex/UpperHalfPlane/Metric.lean Modified Mathlib/Analysis/ConstantSpeed.lean Modified Mathlib/Analysis/Convex/Caratheodory.lean Modified Mathlib/Analysis/Convex/Combination.lean Modified Mathlib/Analysis/Convex/Gauge.lean Modified Mathlib/Analysis/Convex/Hull.lean Modified Mathlib/Analysis/Convex/StrictConvexSpace.lean Modified Mathlib/Analysis/InnerProductSpace/Basic.lean Modified Mathlib/Analysis/InnerProductSpace/GramSchmidtOrtho.lean Modified Mathlib/Analysis/InnerProductSpace/Rayleigh.lean Modified Mathlib/Analysis/LocallyConvex/ContinuousOfBounded.lean Modified Mathlib/Analysis/MeanInequalities.lean Modified Mathlib/Analysis/MeanInequalitiesPow.lean Modified Mathlib/Analysis/MellinTransform.lean Modified Mathlib/Analysis/NormedSpace/Basic.lean Modified Mathlib/Analysis/NormedSpace/Dual.lean Modified Mathlib/Analysis/NormedSpace/Multilinear/Basic.lean Modified Mathlib/Analysis/NormedSpace/Star/Basic.lean Modified Mathlib/Analysis/NormedSpace/Units.lean Modified Mathlib/Analysis/NormedSpace/lpSpace.lean Modified Mathlib/Analysis/PSeries.lean Modified Mathlib/Analysis/SpecialFunctions/Gamma/Basic.lean Modified Mathlib/Analysis/SpecialFunctions/Gamma/Beta.lean Modified Mathlib/Analysis/SpecialFunctions/Gamma/BohrMollerup.lean Modified Mathlib/Analysis/SpecialFunctions/Gamma/Deligne.lean Modified Mathlib/Analysis/SpecialFunctions/Gaussian.lean Modified Mathlib/Analysis/SpecialFunctions/Integrals.lean Modified Mathlib/Analysis/SpecialFunctions/Log/Base.lean Modified Mathlib/Analysis/SpecialFunctions/PolarCoord.lean Modified Mathlib/Analysis/SpecialFunctions/Pow/Continuity.lean Modified Mathlib/Analysis/SpecialFunctions/Pow/Deriv.lean Modified Mathlib/Analysis/SpecialFunctions/Pow/NNReal.lean Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Angle.lean Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Arctan.lean Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Bounds.lean Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/InverseDeriv.lean Modified Mathlib/Analysis/SpecificLimits/FloorPow.lean Modified Mathlib/CategoryTheory/Extensive.lean Modified Mathlib/CategoryTheory/Preadditive/Schur.lean Modified Mathlib/Combinatorics/SimpleGraph/Acyclic.lean Modified Mathlib/Combinatorics/SimpleGraph/Basic.lean Modified Mathlib/Combinatorics/SimpleGraph/Clique.lean Modified Mathlib/Combinatorics/SimpleGraph/Coloring.lean Modified Mathlib/Combinatorics/SimpleGraph/Connectivity.lean Modified Mathlib/Combinatorics/SimpleGraph/DegreeSum.lean Modified Mathlib/Combinatorics/SimpleGraph/Partition.lean Modified Mathlib/Combinatorics/SimpleGraph/Regularity/Increment.lean Modified Mathlib/Combinatorics/SimpleGraph/Trails.lean Modified Mathlib/Computability/RegularExpressions.lean Modified Mathlib/Data/Complex/Module.lean Modified Mathlib/Data/DFinsupp/Basic.lean Modified Mathlib/Data/DFinsupp/NeLocus.lean Modified Mathlib/Data/DFinsupp/Order.lean Modified Mathlib/Data/ENNReal/Inv.lean Modified Mathlib/Data/ENNReal/Operations.lean Modified Mathlib/Data/ENat/Lattice.lean Modified Mathlib/Data/Fin/Basic.lean Modified Mathlib/Data/Fin/Tuple/Basic.lean Modified Mathlib/Data/Finset/Basic.lean Modified Mathlib/Data/Finset/Image.lean Modified Mathlib/Data/Finsupp/Basic.lean Modified Mathlib/Data/Finsupp/Defs.lean Modified Mathlib/Data/Finsupp/NeLocus.lean Modified Mathlib/Data/Finsupp/Order.lean Modified Mathlib/Data/Finsupp/Pointwise.lean Modified Mathlib/Data/Finsupp/ToDFinsupp.lean Modified Mathlib/Data/Fintype/Perm.lean Modified Mathlib/Data/Holor.lean Modified Mathlib/Data/Int/Order/Basic.lean Modified Mathlib/Data/List/Chain.lean Modified Mathlib/Data/List/Cycle.lean Modified Mathlib/Data/List/Nodup.lean Modified Mathlib/Data/List/ToFinsupp.lean Modified Mathlib/Data/Multiset/Basic.lean Modified Mathlib/Data/MvPolynomial/Basic.lean Modified Mathlib/Data/MvPolynomial/CommRing.lean Modified Mathlib/Data/MvPolynomial/Equiv.lean Modified Mathlib/Data/MvPolynomial/Monad.lean Modified Mathlib/Data/MvPolynomial/Variables.lean Modified Mathlib/Data/Nat/Choose/Multinomial.lean Modified Mathlib/Data/Nat/Defs.lean Modified Mathlib/Data/Nat/Factorization/PrimePow.lean Modified Mathlib/Data/Nat/Multiplicity.lean Modified Mathlib/Data/Nat/Prime.lean Modified Mathlib/Data/Nat/Squarefree.lean Modified Mathlib/Data/Polynomial/AlgebraMap.lean Modified Mathlib/Data/Polynomial/Coeff.lean Modified Mathlib/Data/Polynomial/Degree/CardPowDegree.lean Modified Mathlib/Data/Polynomial/Degree/Definitions.lean +/- theorem Polynomial.leadingCoeff_ne_zero Modified Mathlib/Data/Polynomial/Degree/Lemmas.lean Modified Mathlib/Data/Polynomial/Derivative.lean Modified Mathlib/Data/Polynomial/EraseLead.lean Modified Mathlib/Data/Polynomial/FieldDivision.lean Modified Mathlib/Data/Polynomial/HasseDeriv.lean Modified Mathlib/Data/Polynomial/Inductions.lean Modified Mathlib/Data/Polynomial/Laurent.lean Modified Mathlib/Data/Polynomial/Lifts.lean Modified Mathlib/Data/Polynomial/Monic.lean Modified Mathlib/Data/Polynomial/RingDivision.lean Modified Mathlib/Data/Rat/Lemmas.lean Modified Mathlib/Data/Rat/Order.lean Modified Mathlib/Data/Real/Basic.lean Modified Mathlib/Data/Real/EReal.lean Modified Mathlib/Data/Real/Irrational.lean Modified Mathlib/Data/Real/NNReal.lean Modified Mathlib/Data/Real/Pi/Wallis.lean Modified Mathlib/Data/Set/Basic.lean Modified Mathlib/Data/Set/Card.lean Modified Mathlib/Data/Set/Pairwise/Basic.lean Modified Mathlib/Data/Set/Pointwise/SMul.lean Modified Mathlib/Data/Set/Prod.lean Modified Mathlib/Data/Sum/Interval.lean Modified Mathlib/Data/Sym/Basic.lean Modified Mathlib/Data/Sym/Sym2.lean Modified Mathlib/Data/Vector/Basic.lean Modified Mathlib/Data/ZMod/Basic.lean Modified Mathlib/Dynamics/Ergodic/Conservative.lean Modified Mathlib/FieldTheory/IsAlgClosed/Classification.lean Modified Mathlib/FieldTheory/KrullTopology.lean Modified Mathlib/FieldTheory/KummerExtension.lean Modified Mathlib/FieldTheory/RatFunc.lean Modified Mathlib/Geometry/Euclidean/Circumcenter.lean Modified Mathlib/GroupTheory/Exponent.lean Modified Mathlib/GroupTheory/FreeAbelianGroupFinsupp.lean Modified Mathlib/GroupTheory/Index.lean Modified Mathlib/GroupTheory/Order/Min.lean Modified Mathlib/GroupTheory/Perm/Cycle/Basic.lean Modified Mathlib/GroupTheory/Perm/Cycle/Factors.lean Modified Mathlib/GroupTheory/Perm/Cycle/Type.lean Modified Mathlib/GroupTheory/Perm/List.lean Modified Mathlib/GroupTheory/Perm/Sign.lean Modified Mathlib/GroupTheory/Perm/Support.lean Modified Mathlib/GroupTheory/SpecificGroups/Alternating.lean Modified Mathlib/GroupTheory/SpecificGroups/KleinFour.lean Modified Mathlib/GroupTheory/Subgroup/Basic.lean Modified Mathlib/GroupTheory/Submonoid/Operations.lean Modified Mathlib/GroupTheory/Torsion.lean Modified Mathlib/LinearAlgebra/ExteriorAlgebra/Basic.lean Modified Mathlib/LinearAlgebra/FinsuppVectorSpace.lean Modified Mathlib/LinearAlgebra/Lagrange.lean Modified Mathlib/LinearAlgebra/Matrix/Charpoly/Coeff.lean Modified Mathlib/LinearAlgebra/Matrix/IsDiag.lean Modified Mathlib/LinearAlgebra/Matrix/LDL.lean Modified Mathlib/LinearAlgebra/Matrix/Transvection.lean Modified Mathlib/LinearAlgebra/Multilinear/Basic.lean Modified Mathlib/LinearAlgebra/Projectivization/Independence.lean Modified Mathlib/LinearAlgebra/Ray.lean Modified Mathlib/LinearAlgebra/TensorAlgebra/Basic.lean Modified Mathlib/LinearAlgebra/Vandermonde.lean Modified Mathlib/Logic/Basic.lean Modified Mathlib/Logic/Encodable/Basic.lean Modified Mathlib/Logic/Nontrivial/Basic.lean Modified Mathlib/Logic/Nontrivial/Defs.lean Modified Mathlib/MeasureTheory/Covering/Besicovitch.lean Modified Mathlib/MeasureTheory/Covering/BesicovitchVectorSpace.lean Modified Mathlib/MeasureTheory/Covering/Differentiation.lean 2024-03-30 17:52:57 573fa60 chore: mark EventuallyEq.refl as simp (#11475) Fixes #11441. ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Function/ConditionalExpectation/Basic.lean Modified Mathlib/MeasureTheory/Function/ConditionalExpectation/CondexpL1.lean Modified Mathlib/Order/Filter/Basic.lean Modified Mathlib/Order/Filter/Germ.lean Modified Mathlib/Probability/Martingale/Basic.lean 2024-03-30 17:04:27 345188e feat: new lemmas about proper maps in Mathlib.Topology.ProperMap (#11754) These are new lemmas added to the file about proper maps. ESTIMATED CHANGES Modified Mathlib/Topology/Basic.lean + theorem mapClusterPt_comp Modified Mathlib/Topology/ProperMap.lean +/- theorem Homeomorph.isProperMap + theorem IsProperMap.closed_range + theorem IsProperMap.comp + theorem isProperMap_iff_isClosedMap_of_inj + theorem isProperMap_of_closedEmbedding + theorem isProperMap_of_comp_of_inj + theorem isProperMap_of_comp_of_surj + theorem isProperMap_of_comp_of_t2 + theorem isProperMap_of_isClosedMap_of_inj + theorem isProperMap_restr_of_proper_of_closed + theorem isProperMap_subtype_val_of_closed 2024-03-30 13:25:50 a77f553 feat(Algebra/Free): add length_pos lemma for free magmas (#11783) This adds a `length_pos` lemma for multiplicative and additive free magmas. Indeed, it sometimes happens in proofs that we need to know that the length of any element is indeed strictly positive. ESTIMATED CHANGES Modified Mathlib/Algebra/Free.lean + theorem FreeMagma.length_pos 2024-03-30 08:23:24 956f433 feat: add `by volume_tac` to get a default measure in `AEStronglyMeasurable` (#11771) This is already the case for `Integrable` and `AEMeasurable`. ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Function/StronglyMeasurable/Basic.lean + theorem Continuous.comp_aestronglyMeasurable₂ +/- def MeasureTheory.AEFinStronglyMeasurable +/- def MeasureTheory.AEStronglyMeasurable +/- def MeasureTheory.FinStronglyMeasurable 2024-03-30 07:23:09 9b79556 feat: when a function has a Taylor series, then its iterated derivative is given by the Taylor series (#11772) We already have the localized version to a set, but not the global version. Also rename the localized version to a better name. ESTIMATED CHANGES Modified Mathlib/Analysis/Calculus/ContDiff/Defs.lean + theorem HasFTaylorSeriesUpTo.eq_iteratedFDeriv - theorem HasFTaylorSeriesUpToOn.eq_ftaylor_series_of_uniqueDiffOn + theorem HasFTaylorSeriesUpToOn.eq_iteratedFDerivWithin_of_uniqueDiffOn 2024-03-29 22:03:27 9e78f5c chore: remove Complex/RCLike bit0/1 lemmas (#11414) These were interesting when they worked on number literals, which is no longer the case in lean4. ESTIMATED CHANGES Modified Mathlib/Analysis/RCLike/Basic.lean - theorem RCLike.bit0_im - theorem RCLike.bit0_re - theorem RCLike.bit1_im - theorem RCLike.bit1_re - theorem RCLike.conj_bit0 - theorem RCLike.conj_bit1 + theorem RCLike.conj_nat_cast + theorem RCLike.conj_ofNat - theorem RCLike.ofReal_bit0 - theorem RCLike.ofReal_bit1 Modified Mathlib/Data/Complex/Basic.lean - theorem Complex.bit0_im - theorem Complex.bit0_re - theorem Complex.bit1_im - theorem Complex.bit1_re - theorem Complex.conj_bit0 - theorem Complex.conj_bit1 + theorem Complex.conj_nat_cast + theorem Complex.conj_ofNat - theorem Complex.ofReal_bit0 - theorem Complex.ofReal_bit1 2024-03-29 21:36:01 b5cf43e feat(AlgebraicTopology): the monoidal category structure on simplicial sets (#11396) If a category `C` has chosen finite products, then the functor category `J ⥤ C` also. In particular, the category of simplicial sets is endowed with the monoidal category given by the explicit terminal object and binary products. Simplifications lemmas have also been added in the context of categories with chosen finite products. For terminal objects in such categories, the terminal object is given as a limit cone of `Functor.empty.{0} C` rather than `Functor.empty.{v} C` so as to be consistent with the limits API for terminal objects. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/AlgebraicTopology/SimplicialSet/Monoidal.lean + theorem SSet.associator_hom_app_apply + theorem SSet.associator_inv_app_apply + theorem SSet.leftUnitor_hom_app_apply + theorem SSet.leftUnitor_inv_app_apply + theorem SSet.rightUnitor_hom_app_apply + theorem SSet.rightUnitor_inv_app_apply + theorem SSet.tensorHom_app_apply + def SSet.unitHomEquiv + theorem SSet.whiskerLeft_app_apply + theorem SSet.whiskerRight_app_apply Modified Mathlib/CategoryTheory/ChosenFiniteProducts.lean + theorem CategoryTheory.ChosenFiniteProducts.associator_hom_fst + theorem CategoryTheory.ChosenFiniteProducts.associator_hom_snd_fst + theorem CategoryTheory.ChosenFiniteProducts.associator_hom_snd_snd + theorem CategoryTheory.ChosenFiniteProducts.associator_inv_fst + theorem CategoryTheory.ChosenFiniteProducts.associator_inv_fst_snd + theorem CategoryTheory.ChosenFiniteProducts.associator_inv_snd + theorem CategoryTheory.ChosenFiniteProducts.tensorHom_fst + theorem CategoryTheory.ChosenFiniteProducts.tensorHom_snd + theorem CategoryTheory.ChosenFiniteProducts.whiskerLeft_fst + theorem CategoryTheory.ChosenFiniteProducts.whiskerLeft_snd + theorem CategoryTheory.ChosenFiniteProducts.whiskerRight_fst + theorem CategoryTheory.ChosenFiniteProducts.whiskerRight_snd Added Mathlib/CategoryTheory/ChosenFiniteProducts/FunctorCategory.lean + theorem CategoryTheory.Functor.Monoidal.associator_hom_app + theorem CategoryTheory.Functor.Monoidal.associator_inv_app + theorem CategoryTheory.Functor.Monoidal.leftUnitor_hom_app + theorem CategoryTheory.Functor.Monoidal.leftUnitor_inv_app + theorem CategoryTheory.Functor.Monoidal.rightUnitor_hom_app + theorem CategoryTheory.Functor.Monoidal.rightUnitor_inv_app + theorem CategoryTheory.Functor.Monoidal.tensorHom_app_fst + theorem CategoryTheory.Functor.Monoidal.tensorHom_app_snd + theorem CategoryTheory.Functor.Monoidal.whiskerLeft_app_fst + theorem CategoryTheory.Functor.Monoidal.whiskerLeft_app_snd + theorem CategoryTheory.Functor.Monoidal.whiskerRight_app_fst + theorem CategoryTheory.Functor.Monoidal.whiskerRight_app_snd + def CategoryTheory.Functor.chosenProd.fst + def CategoryTheory.Functor.chosenProd.snd + def CategoryTheory.Functor.chosenProd + def CategoryTheory.Functor.chosenTerminalIsTerminal Modified Mathlib/CategoryTheory/Monoidal/OfChosenFiniteProducts/Basic.lean +/- def CategoryTheory.Limits.BinaryFan.leftUnitor +/- def CategoryTheory.Limits.BinaryFan.rightUnitor +/- def CategoryTheory.MonoidalOfChosenFiniteProducts.MonoidalOfChosenFiniteProductsSynonym Modified Mathlib/CategoryTheory/Monoidal/OfChosenFiniteProducts/Symmetric.lean 2024-03-29 19:17:43 160fb23 feat: `Not` is involutive (#11192) ESTIMATED CHANGES Modified Mathlib/Logic/Function/Basic.lean + theorem Function.not_bijective + theorem Function.not_injective + theorem Function.not_involutive + theorem Function.not_surjective 2024-03-29 17:32:29 6bd93cd feat(RingTheory/Flat/Basic): add `lTensor_preserves_injective_linearMap` (#11748) also move `lTensor_inj_iff_rTensor_inj` to `LinearMap` ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/TensorProduct/Basic.lean + theorem LinearMap.lTensor_bij_iff_rTensor_bij + theorem LinearMap.lTensor_inj_iff_rTensor_inj + theorem LinearMap.lTensor_surj_iff_rTensor_surj Modified Mathlib/RingTheory/Flat/Basic.lean + theorem Module.Flat.iff_lTensor_preserves_injective_linearMap - theorem Module.Flat.lTensor_inj_iff_rTensor_inj + theorem Module.Flat.lTensor_preserves_injective_linearMap - theorem Module.Flat.preserves_injective_linearMap + theorem Module.Flat.rTensor_preserves_injective_linearMap 2024-03-29 15:59:37 335f65c chore(Data/Finset/Basic): Depend on less order theory (#11732) Move `Finset.biUnion` and `Finset.disjiUnion` to a new file so that `Data.Finset.Basic` doesn't depend on that much order theory. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/BigOperators/Basic.lean Modified Mathlib/Data/Finset/Basic.lean - theorem Directed.exists_mem_subset_of_finset_subset_biUnion - theorem DirectedOn.exists_mem_subset_of_finset_subset_biUnion - theorem Finset.Nonempty.biUnion - theorem Finset.biUnion_biUnion - theorem Finset.biUnion_congr - theorem Finset.biUnion_empty - theorem Finset.biUnion_filter_eq_of_maps_to - theorem Finset.biUnion_insert - theorem Finset.biUnion_inter - theorem Finset.biUnion_mono - theorem Finset.biUnion_nonempty - theorem Finset.biUnion_singleton_eq_self - theorem Finset.biUnion_subset - theorem Finset.biUnion_subset_biUnion_of_subset_left - theorem Finset.biUnion_subset_iff_forall_subset - theorem Finset.biUnion_val - theorem Finset.bind_toFinset - theorem Finset.coe_biUnion - theorem Finset.coe_disjiUnion - def Finset.disjiUnion - theorem Finset.disjiUnion_cons - theorem Finset.disjiUnion_disjiUnion - theorem Finset.disjiUnion_empty - theorem Finset.disjiUnion_eq_biUnion - theorem Finset.disjiUnion_filter_eq_of_maps_to - theorem Finset.disjiUnion_val - theorem Finset.disjoint_biUnion_left - theorem Finset.disjoint_biUnion_right - theorem Finset.erase_biUnion - theorem Finset.filter_biUnion - theorem Finset.inter_biUnion - theorem Finset.le_piecewise_of_le_of_le - theorem Finset.mem_biUnion - theorem Finset.mem_disjiUnion - def Finset.piecewise - theorem Finset.piecewise_cases - theorem Finset.piecewise_coe - theorem Finset.piecewise_congr - theorem Finset.piecewise_empty - theorem Finset.piecewise_eq_of_mem - theorem Finset.piecewise_eq_of_not_mem - theorem Finset.piecewise_idem_left - theorem Finset.piecewise_idem_right - theorem Finset.piecewise_insert - theorem Finset.piecewise_insert_of_ne - theorem Finset.piecewise_insert_self - theorem Finset.piecewise_le_of_le_of_le - theorem Finset.piecewise_le_piecewise' - theorem Finset.piecewise_le_piecewise - theorem Finset.piecewise_mem_Icc' - theorem Finset.piecewise_mem_Icc - theorem Finset.piecewise_mem_Icc_of_mem_of_mem - theorem Finset.piecewise_mem_set_pi - theorem Finset.piecewise_piecewise_of_subset_left - theorem Finset.piecewise_piecewise_of_subset_right - theorem Finset.piecewise_same - theorem Finset.piecewise_singleton - theorem Finset.singleton_biUnion - theorem Finset.singleton_disjiUnion - theorem Finset.subset_biUnion_of_mem - theorem Finset.update_eq_piecewise - theorem Finset.update_piecewise - theorem Finset.update_piecewise_of_mem - theorem Finset.update_piecewise_of_not_mem - theorem List.toFinset_range - theorem Multiset.toFinset_bind_dedup - theorem Multiset.toFinset_range Modified Mathlib/Data/Finset/Image.lean Modified Mathlib/Data/Finset/Lattice.lean Added Mathlib/Data/Finset/Piecewise.lean + theorem Finset.le_piecewise_of_le_of_le + def Finset.piecewise + theorem Finset.piecewise_cases + theorem Finset.piecewise_coe + theorem Finset.piecewise_compl + theorem Finset.piecewise_congr + theorem Finset.piecewise_empty + theorem Finset.piecewise_eq_of_mem + theorem Finset.piecewise_eq_of_not_mem + theorem Finset.piecewise_erase_univ + theorem Finset.piecewise_idem_left + theorem Finset.piecewise_idem_right + theorem Finset.piecewise_insert + theorem Finset.piecewise_insert_of_ne + theorem Finset.piecewise_insert_self + theorem Finset.piecewise_le_of_le_of_le + theorem Finset.piecewise_le_piecewise' + theorem Finset.piecewise_le_piecewise + theorem Finset.piecewise_mem_Icc' + theorem Finset.piecewise_mem_Icc + theorem Finset.piecewise_mem_Icc_of_mem_of_mem + theorem Finset.piecewise_mem_set_pi + theorem Finset.piecewise_piecewise_of_subset_left + theorem Finset.piecewise_piecewise_of_subset_right + theorem Finset.piecewise_same + theorem Finset.piecewise_singleton + theorem Finset.piecewise_univ + theorem Finset.update_eq_piecewise + theorem Finset.update_piecewise + theorem Finset.update_piecewise_of_mem + theorem Finset.update_piecewise_of_not_mem Added Mathlib/Data/Finset/Union.lean + theorem Finset.Nonempty.biUnion + theorem Finset.biUnion_biUnion + theorem Finset.biUnion_congr + theorem Finset.biUnion_empty + theorem Finset.biUnion_filter_eq_of_maps_to + theorem Finset.biUnion_insert + theorem Finset.biUnion_inter + theorem Finset.biUnion_mono + theorem Finset.biUnion_nonempty + theorem Finset.biUnion_singleton_eq_self + theorem Finset.biUnion_subset + theorem Finset.biUnion_subset_biUnion_of_subset_left + theorem Finset.biUnion_subset_iff_forall_subset + theorem Finset.biUnion_val + theorem Finset.bind_toFinset + theorem Finset.coe_biUnion + theorem Finset.coe_disjiUnion + def Finset.disjiUnion + theorem Finset.disjiUnion_cons + theorem Finset.disjiUnion_disjiUnion + theorem Finset.disjiUnion_empty + theorem Finset.disjiUnion_eq_biUnion + theorem Finset.disjiUnion_filter_eq_of_maps_to + theorem Finset.disjiUnion_val + theorem Finset.disjoint_biUnion_left + theorem Finset.disjoint_biUnion_right + theorem Finset.erase_biUnion + theorem Finset.filter_biUnion + theorem Finset.inter_biUnion + theorem Finset.mem_biUnion + theorem Finset.mem_disjiUnion + theorem Finset.singleton_biUnion + theorem Finset.singleton_disjiUnion + theorem Finset.subset_biUnion_of_mem Modified Mathlib/Data/Fintype/Basic.lean - theorem Finset.piecewise_compl - theorem Finset.piecewise_erase_univ - theorem Finset.piecewise_univ Modified Mathlib/Data/Set/Constructions.lean Modified Mathlib/Data/Set/Finite.lean + theorem Directed.exists_mem_subset_of_finset_subset_biUnion + theorem DirectedOn.exists_mem_subset_of_finset_subset_biUnion 2024-03-29 15:34:03 056bc61 chore(Combinatorics/Additive/PluenneckeRuzsa): add @to_additive to various formulations of Ruzsa's triangle inequality (#11766) Add `@to_additive` to `card_mul_mul_le_card_div_mul_card_div`, `card_div_mul_le_card_mul_mul_card_div` and `card_sub_mul_card_le_card_sub_mul_card_add` and correct their documentation. ESTIMATED CHANGES Modified Mathlib/Combinatorics/Additive/PluenneckeRuzsa.lean 2024-03-29 15:08:09 e899dfe feat(Combinatorics/SimpleGraph): A graph has 3-clique iff it has a cycle of length 3 (#11434) This is nice to have because when combined with `is3Clique_iff`, we will be able to prove that a graph has a cycle by just proving that 3 vertices are pairwise adjacent. ESTIMATED CHANGES Modified Mathlib/Combinatorics/SimpleGraph/Clique.lean + theorem SimpleGraph.is3Clique_iff_exists_cycle_length_three 2024-03-29 10:05:56 575260d feat: add a simp attribute to isUnit_iff_ne_zero (#11756) ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/Quasispectrum.lean Modified Mathlib/Algebra/GroupWithZero/Units/Basic.lean 2024-03-29 10:05:55 1c32311 feat(CategoryTheory/Localization): dualize results for right calculus of fractions (#11721) In this PR, the results for the left calculus of fractions are dualized in order to obtain similar results for the right calculus of fractions ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Localization/CalculusOfFractions.lean + theorem CategoryTheory.Localization.essSurj_mapArrow_of_hasRightCalculusofFractions + theorem CategoryTheory.Localization.exists_rightFraction + def CategoryTheory.MorphismProperty.LeftFraction.op + theorem CategoryTheory.MorphismProperty.LeftFraction.op_map + def CategoryTheory.MorphismProperty.LeftFraction.unop + theorem CategoryTheory.MorphismProperty.LeftFractionRel.op + theorem CategoryTheory.MorphismProperty.LeftFractionRel.unop + theorem CategoryTheory.MorphismProperty.RightFraction.map_eq_iff + def CategoryTheory.MorphismProperty.RightFraction.op + theorem CategoryTheory.MorphismProperty.RightFraction.op_map + def CategoryTheory.MorphismProperty.RightFraction.unop + theorem CategoryTheory.MorphismProperty.RightFractionRel.op + theorem CategoryTheory.MorphismProperty.RightFractionRel.refl + theorem CategoryTheory.MorphismProperty.RightFractionRel.symm + theorem CategoryTheory.MorphismProperty.RightFractionRel.trans + theorem CategoryTheory.MorphismProperty.RightFractionRel.unop + def CategoryTheory.MorphismProperty.RightFractionRel + theorem CategoryTheory.MorphismProperty.equivalenceRightFractionRel + theorem CategoryTheory.MorphismProperty.leftFractionRel_op_iff + theorem CategoryTheory.MorphismProperty.map_eq_iff_precomp + theorem CategoryTheory.MorphismProperty.rightFractionRel_op_iff 2024-03-29 10:05:54 3b9115f feat(Polynomial): When the trailing degree is zero (#11655) Characterise when `trailingDegree p = 0` and `natTrailingDegree p = 0`. Also fix a few names. ESTIMATED CHANGES Modified Mathlib/Data/Polynomial/Basic.lean + theorem Polynomial.support_nonempty Modified Mathlib/Data/Polynomial/Degree/TrailingDegree.lean + theorem Polynomial.coeff_eq_zero_of_lt_trailingDegree - theorem Polynomial.coeff_eq_zero_of_trailingDegree_lt + theorem Polynomial.coeff_natTrailingDegree_eq_zero + theorem Polynomial.coeff_natTrailingDegree_ne_zero - theorem Polynomial.le_trailingDegree_of_ne_zero + theorem Polynomial.natTrailingDegree_eq_zero + theorem Polynomial.natTrailingDegree_ne_zero + theorem Polynomial.nextCoeffUp_of_constantCoeff_eq_zero - theorem Polynomial.nextCoeffUp_of_pos_natTrailingDegree + theorem Polynomial.nextCoeffUp_zero + theorem Polynomial.trailingDegree_eq_zero + theorem Polynomial.trailingDegree_le_of_ne_zero +/- theorem Polynomial.trailingDegree_le_trailingDegree + theorem Polynomial.trailingDegree_ne_zero Modified Mathlib/Data/Polynomial/Mirror.lean Modified Mathlib/Data/Polynomial/Reverse.lean + theorem Polynomial.natTrailingDegree_reverse - theorem Polynomial.reverse_natTrailingDegree Modified Mathlib/Data/Polynomial/UnitTrinomial.lean 2024-03-29 10:05:53 fedc4ae chore(Polynomial/Derivative): golf derivative_mul (#11315) ESTIMATED CHANGES Modified Mathlib/Data/Polynomial/Derivative.lean +/- theorem Polynomial.derivative_mul 2024-03-29 09:13:20 783b6bc move(RCLike): Move out of `Data` (#11753) `RCLike` is an analytic typeclass, hence should be under `Analysis` ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Analysis/Calculus/MeanValue.lean Modified Mathlib/Analysis/Complex/Basic.lean Modified Mathlib/Analysis/Complex/Tietze.lean Modified Mathlib/Analysis/Convex/Gauge.lean Modified Mathlib/Analysis/InnerProductSpace/Projection.lean Modified Mathlib/Analysis/LocallyConvex/ContinuousOfBounded.lean Modified Mathlib/Analysis/Normed/Group/Tannery.lean Modified Mathlib/Analysis/NormedSpace/Extend.lean Modified Mathlib/Analysis/NormedSpace/HahnBanach/Extension.lean Modified Mathlib/Analysis/NormedSpace/RCLike.lean Modified Mathlib/Analysis/NormedSpace/Star/Matrix.lean Renamed Mathlib/Data/RCLike/Basic.lean to Mathlib/Analysis/RCLike/Basic.lean Renamed Mathlib/Data/RCLike/Lemmas.lean to Mathlib/Analysis/RCLike/Lemmas.lean Modified Mathlib/Analysis/SpecificLimits/RCLike.lean Modified Mathlib/Data/Real/Sqrt.lean Modified Mathlib/Dynamics/BirkhoffSum/NormedSpace.lean Modified Mathlib/MeasureTheory/Function/L2Space.lean Modified Mathlib/MeasureTheory/Function/SpecialFunctions/RCLike.lean Modified Mathlib/NumberTheory/SumPrimeReciprocals.lean Modified Mathlib/Topology/ContinuousFunction/Ideals.lean Modified Mathlib/Topology/ContinuousFunction/StoneWeierstrass.lean 2024-03-29 09:13:19 e6b2fea feat: Cardinal.mk_insert_le (#11749) ESTIMATED CHANGES Modified Mathlib/SetTheory/Cardinal/Basic.lean + theorem Cardinal.mk_insert_le 2024-03-29 08:47:54 3cecb82 chore(SimpleGraph): fix 3 `DecidableEq` assumptions (#11762) Found by a WIP linter in #10235 ESTIMATED CHANGES Modified Mathlib/Combinatorics/SimpleGraph/Operations.lean Modified Mathlib/Combinatorics/SimpleGraph/StronglyRegular.lean 2024-03-29 08:24:42 e89f285 fix: shake: consider additions in downstream mode (#11763) As [reported on Zulip](https://leanprover.zulipchat.com/#narrow/stream/113488-general/topic/Tree.20shaking/near/430215312). ESTIMATED CHANGES Modified Shake/Main.lean 2024-03-29 04:50:16 f8bc0b2 feat: `dupNamespace` as a syntax linter (#11154) An implementation of the `dupNamespace` from `Std` as a syntax linter. The linter emits a warning for declarations that have a repeated, consecutive namespace: * `Nat.Nat.foo` triggers the linter; * `Nat.foo.Nat` does *not* trigger the linter. *Note.* This linter will not detect duplication in namespaces of autogenerated declarations (other than the one whose `declId` is present in the source declaration). [Zulip discussion](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/.60dupNamespace.60.20linter) The linter found ```lean private theorem Seminorm.Seminorm.isLUB_sSup ... ``` that is skipped by the environment `dupNamespace` linter. ESTIMATED CHANGES Modified Mathlib/Tactic/Lint.lean + def Mathlib.Linter.DupNamespaceLinter.dupNamespace + def Mathlib.Linter.DupNamespaceLinter.getIds + def Mathlib.Linter.DupNamespaceLinter.getLinterDupNamespace Added test/Lint.lean + def Foo.Foo.foo + theorem Foo.add.mul + def add.add Modified test/Simps.lean + def foo.bar - def foo.foo 2024-03-28 18:15:53 57f72ee feat: add card_eq_NrRealPlaces_add_NrComplexPlaces (#11745) We add `card_eq_NrRealPlaces_add_NrComplexPlaces: Fintype.card (InfinitePlace K).card = NrRealPlaces K + NrComplexPlaces K` for a number field `K`. ESTIMATED CHANGES Modified Mathlib/NumberTheory/NumberField/Embeddings.lean + theorem NumberField.InfinitePlace.card_eq_nrRealPlaces_add_nrComplexPlaces + theorem NumberField.InfinitePlace.disjoint_isReal_isComplex 2024-03-28 18:15:52 3959ff3 chore(SetTheory/Ordinal): reduce some open's; add section headers (#11596) ESTIMATED CHANGES Modified Mathlib/SetTheory/Cardinal/Ordinal.lean 2024-03-28 18:15:51 485ed3c feat : define CardinalInterFilter (#10531) CardinalInterFilter generalizes CountableInterFilter to allow for a specific cardinality, where the filter must be stable under intersections over a number of sets lower than this cardinality. Prepares the way for K-Lindelöf spaces. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Order/Filter/CardinalInter.lean + theorem CardinalInterFilter.of_CardinalInterFilter_of_lt + theorem CardinalInterFilter.toCountableInterFilter + theorem Filter.EventuallyEq.cardinal_bInter + theorem Filter.EventuallyEq.cardinal_bUnion + theorem Filter.EventuallyEq.cardinal_iInter + theorem Filter.EventuallyEq.cardinal_iUnion + theorem Filter.EventuallyLE.cardinal_bInter + theorem Filter.EventuallyLE.cardinal_bUnion + theorem Filter.EventuallyLE.cardinal_iInter + theorem Filter.EventuallyLE.cardinal_iUnion + theorem Filter.cardinalInterFilter_aleph0 + theorem Filter.cardinal_bInter_mem + theorem Filter.cardinal_iInter_mem + theorem Filter.eventually_cardinal_ball + theorem Filter.eventually_cardinal_forall + theorem cardinalInterFilter_aleph_one_iff + theorem cardinal_sInter_mem Modified Mathlib/Order/Filter/CountableInter.lean 2024-03-28 17:08:11 d1a1aa1 chore: move some aliases earlier (#11122) ESTIMATED CHANGES Modified Mathlib/Algebra/GroupPower/Order.lean Modified Mathlib/Algebra/Order/Ring/Defs.lean Modified Mathlib/Data/Tree.lean Modified Mathlib/Init/Order/Defs.lean + theorem le_rfl Modified Mathlib/Order/Basic.lean - theorem le_rfl 2024-03-28 15:48:48 f09ccf6 move(Data/List/BigOperators): Move to `Algebra.BigOperators.List` (#11729) This is algebra and should be foldered as such. ESTIMATED CHANGES Modified Mathlib.lean Renamed Mathlib/Data/List/BigOperators/Basic.lean to Mathlib/Algebra/BigOperators/List/Basic.lean Renamed Mathlib/Data/List/BigOperators/Defs.lean to Mathlib/Algebra/BigOperators/List/Defs.lean Renamed Mathlib/Data/List/BigOperators/Lemmas.lean to Mathlib/Algebra/BigOperators/List/Lemmas.lean Modified Mathlib/Algebra/BigOperators/Multiset/Basic.lean Modified Mathlib/Algebra/BigOperators/Multiset/Lemmas.lean Modified Mathlib/Algebra/BigOperators/Multiset/Order.lean Modified Mathlib/Algebra/FreeMonoid/Basic.lean Modified Mathlib/Algebra/GradedMonoid.lean Modified Mathlib/Data/List/Count.lean Modified Mathlib/Data/List/Join.lean Modified Mathlib/Data/List/Prime.lean Modified Mathlib/Data/List/ProdSigma.lean Modified Mathlib/Data/List/Zip.lean Modified Mathlib/Data/Nat/Digits.lean Modified test/congr.lean Modified test/convert2.lean 2024-03-28 11:53:50 bb349f3 chore: Reduce scope of `LinearOrderedCommGroupWithZero` (#11716) Reconstitute the file `Algebra.Order.Monoid.WithZero` from three files: * `Algebra.Order.Monoid.WithZero.Defs` * `Algebra.Order.Monoid.WithZero.Basic` * `Algebra.Order.WithZero` Avoid importing it in many files. Most uses were just to get `le_zero_iff` to work on `Nat`. Before ![pre_11716](https://github.com/leanprover-community/mathlib4/assets/14090593/f7296277-67e3-47b1-9ecf-33f84ea11010) After ![post_11716](https://github.com/leanprover-community/mathlib4/assets/14090593/1aa508ce-3f52-485d-b251-4127dd208bdc) ESTIMATED CHANGES Modified Archive/Imo/Imo1988Q6.lean Modified Archive/Imo/Imo2013Q5.lean Modified Counterexamples/LinearOrderWithPosMulPosEqZero.lean Modified Counterexamples/ZeroDivisorsInAddMonoidAlgebras.lean Modified Mathlib.lean Modified Mathlib/Algebra/Group/WithOne/Defs.lean Modified Mathlib/Algebra/Lie/Nilpotent.lean Modified Mathlib/Algebra/Lie/Solvable.lean Modified Mathlib/Algebra/Order/Field/Canonical/Defs.lean Modified Mathlib/Algebra/Order/Hom/Monoid.lean Modified Mathlib/Algebra/Order/Kleene.lean +/- theorem kstar_zero Modified Mathlib/Algebra/Order/Monoid/ToMulBot.lean Renamed Mathlib/Algebra/Order/WithZero.lean to Mathlib/Algebra/Order/Monoid/WithZero.lean + theorem WithZero.coe_le_coe + theorem WithZero.coe_lt_coe + theorem WithZero.zero_eq_bot + theorem WithZero.zero_le + theorem WithZero.zero_lt_coe +/- theorem inv_mul_lt_of_lt_mul₀ +/- theorem mul_inv_lt_of_lt_mul₀ +/- theorem zero_le' Deleted Mathlib/Algebra/Order/Monoid/WithZero/Basic.lean Deleted Mathlib/Algebra/Order/Monoid/WithZero/Defs.lean - theorem WithZero.coe_le_coe - theorem WithZero.coe_lt_coe - theorem WithZero.zero_eq_bot - theorem WithZero.zero_le - theorem WithZero.zero_lt_coe Modified Mathlib/Algebra/Order/Ring/Defs.lean Modified Mathlib/Algebra/Polynomial/BigOperators.lean Modified Mathlib/Analysis/BoundedVariation.lean Modified Mathlib/Analysis/InnerProductSpace/Projection.lean Modified Mathlib/Combinatorics/Configuration.lean Modified Mathlib/Combinatorics/SimpleGraph/Acyclic.lean Modified Mathlib/Combinatorics/SimpleGraph/Regularity/Equitabilise.lean Modified Mathlib/Data/Finset/Basic.lean Modified Mathlib/Data/Nat/Factorization/PrimePow.lean Modified Mathlib/Data/Nat/MaxPowDiv.lean Modified Mathlib/Data/Nat/Order/Basic.lean Modified Mathlib/Data/Nat/Squarefree.lean Modified Mathlib/Data/Polynomial/Reverse.lean Modified Mathlib/Data/Polynomial/UnitTrinomial.lean Modified Mathlib/Data/Rat/Order.lean Modified Mathlib/Data/ZMod/Basic.lean Modified Mathlib/GroupTheory/PGroup.lean Modified Mathlib/GroupTheory/Perm/Cycle/Type.lean Modified Mathlib/GroupTheory/Perm/Support.lean Modified Mathlib/GroupTheory/SpecificGroups/Cyclic.lean Modified Mathlib/InformationTheory/Hamming.lean Modified Mathlib/LinearAlgebra/Basis.lean Modified Mathlib/MeasureTheory/Decomposition/Lebesgue.lean Modified Mathlib/MeasureTheory/Measure/Typeclasses.lean Modified Mathlib/NumberTheory/Padics/PadicVal.lean Modified Mathlib/Order/LiminfLimsup.lean Modified Mathlib/Order/RelSeries.lean Modified Mathlib/Probability/Martingale/Upcrossing.lean Modified Mathlib/RingTheory/Multiplicity.lean Modified Mathlib/RingTheory/Valuation/Basic.lean Modified Mathlib/Topology/Algebra/WithZeroTopology.lean Modified Mathlib/Topology/Connected/PathConnected.lean Modified Mathlib/Topology/MetricSpace/PiNat.lean Modified scripts/noshake.json 2024-03-28 10:26:54 47a7646 refactor(Order/RelSeries): Use `RelHom` in `RelSeries.map` (#11730) split from #11147 ESTIMATED CHANGES Modified Mathlib/Order/RelSeries.lean +/- def RelSeries.map +/- theorem RelSeries.map_apply 2024-03-28 10:26:53 f440185 doc(RingTheory/Flat/Stability): fix docstring in composition (#11717) Corrects docstring on strategy to show flatness is stable under composition. ESTIMATED CHANGES Modified Mathlib/RingTheory/Flat/Stability.lean 2024-03-28 10:26:52 f9c49c9 feat(LinearAlgebra/DirectSum/Finsupp): add some more variants of `finsuppTensorFinsupp` (#11598) - add `finsuppTensorFinsuppLid`, `finsuppTensorFinsuppRid` as well as their simp lemmas - make `finsuppTensorFinsupp'` a special case of `finsuppTensorFinsuppLid` - add `TensorProduct.lid_eq_rid` ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/DirectSum/Finsupp.lean + theorem finsuppTensorFinsupp'_symm_single_eq_single_one_tmul + theorem finsuppTensorFinsupp'_symm_single_eq_tmul_single_one + theorem finsuppTensorFinsupp'_symm_single_mul + def finsuppTensorFinsuppLid + theorem finsuppTensorFinsuppLid_apply_apply + theorem finsuppTensorFinsuppLid_self + theorem finsuppTensorFinsuppLid_single_tmul_single + theorem finsuppTensorFinsuppLid_symm_single_smul + def finsuppTensorFinsuppRid + theorem finsuppTensorFinsuppRid_apply_apply + theorem finsuppTensorFinsuppRid_self + theorem finsuppTensorFinsuppRid_single_tmul_single + theorem finsuppTensorFinsuppRid_symm_single_smul Modified Mathlib/LinearAlgebra/TensorProduct/Basic.lean + theorem TensorProduct.lid_eq_rid 2024-03-28 10:26:51 9a3feea change the order of operation in zsmulRec and nsmulRec (#11451) We change the following field in the definition of an additive commutative monoid: ```diff nsmul_succ : ∀ (n : ℕ) (x : G), - AddMonoid.nsmul (n + 1) x = x + AddMonoid.nsmul n x + AddMonoid.nsmul (n + 1) x = AddMonoid.nsmul n x + x ``` where the latter is more natural We adjust the definitions of `^` in monoids, groups, etc. Originally there was a warning comment about why this natural order was preferred > use `x * npowRec n x` and not `npowRec n x * x` in the definition to make sure that > definitional unfolding of `npowRec` is blocked, to avoid deep recursion issues. but it seems to no longer apply. Remarks on the PR : * `pow_succ` and `pow_succ'` have switched their meanings. * Most of the time, the proofs were adjusted by priming/unpriming one lemma, or exchanging left and right; a few proofs were more complicated to adjust. * In particular, [Mathlib/NumberTheory/RamificationInertia.lean] used `Ideal.IsPrime.mul_mem_pow` which is defined in [Mathlib/RingTheory/DedekindDomain/Ideal.lean]. Changing the order of operation forced me to add the symmetric lemma `Ideal.IsPrime.mem_pow_mul`. * the docstring for Cauchy condensation test in [Mathlib/Analysis/PSeries.lean] was mathematically incorrect, I added the mention that the function is antitone. ESTIMATED CHANGES Modified Archive/Imo/Imo2013Q1.lean Modified Archive/Imo/Imo2013Q5.lean Modified Archive/Wiedijk100Theorems/FriendshipGraphs.lean Modified Archive/Wiedijk100Theorems/PerfectNumbers.lean Modified Archive/Wiedijk100Theorems/SumOfPrimeReciprocalsDiverges.lean Modified Counterexamples/ZeroDivisorsInAddMonoidAlgebras.lean Modified Mathlib/Algebra/Algebra/Basic.lean Modified Mathlib/Algebra/Algebra/Operations.lean Modified Mathlib/Algebra/Associated.lean Modified Mathlib/Algebra/BigOperators/Basic.lean Modified Mathlib/Algebra/BigOperators/Fin.lean Modified Mathlib/Algebra/CharP/Basic.lean Modified Mathlib/Algebra/ContinuedFractions/Computation/Approximations.lean Modified Mathlib/Algebra/DirectSum/Ring.lean Modified Mathlib/Algebra/Divisibility/Basic.lean Modified Mathlib/Algebra/FreeAlgebra.lean Modified Mathlib/Algebra/Function/Support.lean Modified Mathlib/Algebra/GCDMonoid/Basic.lean Modified Mathlib/Algebra/GeomSum.lean Modified Mathlib/Algebra/GradedMonoid.lean Modified Mathlib/Algebra/Group/Commute/Defs.lean +/- theorem pow_succ' Modified Mathlib/Algebra/Group/Commute/Units.lean Modified Mathlib/Algebra/Group/Defs.lean +/- theorem pow_succ Modified Mathlib/Algebra/Group/Hom/Instances.lean Modified Mathlib/Algebra/Group/Semiconj/Defs.lean Modified Mathlib/Algebra/Group/WithOne/Defs.lean Modified Mathlib/Algebra/GroupPower/Basic.lean +/- theorem one_nsmul +/- theorem pow_one +/- theorem pow_three' +/- theorem pow_three Modified Mathlib/Algebra/GroupPower/CovariantClass.lean Modified Mathlib/Algebra/GroupPower/IterateHom.lean Modified Mathlib/Algebra/GroupPower/Order.lean Modified Mathlib/Algebra/GroupPower/Ring.lean Modified Mathlib/Algebra/GroupWithZero/Basic.lean Modified Mathlib/Algebra/GroupWithZero/Power.lean Modified Mathlib/Algebra/Lie/Engel.lean Modified Mathlib/Algebra/Lie/EngelSubalgebra.lean Modified Mathlib/Algebra/Lie/Killing.lean Modified Mathlib/Algebra/Lie/OfAssociative.lean Modified Mathlib/Algebra/Lie/Weights/Basic.lean Modified Mathlib/Algebra/Module/LinearMap/End.lean +/- theorem LinearMap.iterate_succ Modified Mathlib/Algebra/Module/LocalizedModule.lean Modified Mathlib/Algebra/MonoidAlgebra/Basic.lean Modified Mathlib/Algebra/Order/CauSeq/Basic.lean Modified Mathlib/Algebra/Order/CauSeq/BigOperators.lean Modified Mathlib/Algebra/Order/Interval.lean Modified Mathlib/Algebra/Order/Kleene.lean Modified Mathlib/Algebra/Order/Module/OrderedSMul.lean Modified Mathlib/Algebra/Order/Ring/Defs.lean Modified Mathlib/Algebra/Order/Ring/Pow.lean Modified Mathlib/Algebra/Order/WithZero.lean Modified Mathlib/Algebra/Parity.lean Modified Mathlib/Algebra/Regular/Pow.lean Modified Mathlib/Algebra/Regular/SMul.lean Modified Mathlib/Algebra/Ring/CentroidHom.lean Modified Mathlib/Algebra/RingQuot.lean Modified Mathlib/Algebra/Squarefree/Basic.lean Modified Mathlib/Algebra/TrivSqZeroExt.lean Modified Mathlib/AlgebraicGeometry/StructureSheaf.lean Modified Mathlib/Analysis/Analytic/Composition.lean Modified Mathlib/Analysis/Analytic/Constructions.lean Modified Mathlib/Analysis/Analytic/IsolatedZeros.lean Modified Mathlib/Analysis/Analytic/Meromorphic.lean Modified Mathlib/Analysis/Analytic/Polynomial.lean Modified Mathlib/Analysis/Asymptotics/Asymptotics.lean Modified Mathlib/Analysis/Asymptotics/SuperpolynomialDecay.lean Modified Mathlib/Analysis/BoxIntegral/Box/SubboxInduction.lean Modified Mathlib/Analysis/BoxIntegral/Partition/SubboxInduction.lean Modified Mathlib/Analysis/Calculus/ContDiff/Basic.lean Modified Mathlib/Analysis/Calculus/Deriv/Pow.lean Modified Mathlib/Analysis/Calculus/FDeriv/Comp.lean Modified Mathlib/Analysis/Calculus/FDeriv/Measurable.lean Modified Mathlib/Analysis/Calculus/FDeriv/Mul.lean Modified Mathlib/Analysis/Calculus/IteratedDeriv/Lemmas.lean Modified Mathlib/Analysis/Convex/Body.lean Modified Mathlib/Analysis/Convex/Mul.lean Modified Mathlib/Analysis/MeanInequalitiesPow.lean Modified Mathlib/Analysis/Normed/Field/Basic.lean Modified Mathlib/Analysis/Normed/Group/Basic.lean Modified Mathlib/Analysis/NormedSpace/Banach.lean Modified Mathlib/Analysis/NormedSpace/Exponential.lean Modified Mathlib/Analysis/NormedSpace/QuaternionExponential.lean Modified Mathlib/Analysis/NormedSpace/Spectrum.lean Modified Mathlib/Analysis/NormedSpace/Star/Basic.lean Modified Mathlib/Analysis/NormedSpace/Star/ContinuousFunctionalCalculus/Instances.lean Modified Mathlib/Analysis/NormedSpace/Star/Multiplier.lean Modified Mathlib/Analysis/ODE/PicardLindelof.lean Modified Mathlib/Analysis/PSeries.lean Modified Mathlib/Analysis/SpecialFunctions/Complex/LogBounds.lean Modified Mathlib/Analysis/SpecialFunctions/Integrals.lean Modified Mathlib/Analysis/SpecialFunctions/Log/Basic.lean Modified Mathlib/Analysis/SpecialFunctions/Log/Deriv.lean Modified Mathlib/Analysis/SpecialFunctions/Stirling.lean Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Basic.lean Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/EulerSineProd.lean Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Series.lean Modified Mathlib/Analysis/SpecificLimits/Basic.lean Modified Mathlib/Analysis/SpecificLimits/Normed.lean Modified Mathlib/Combinatorics/Additive/Behrend.lean Modified Mathlib/Combinatorics/Additive/PluenneckeRuzsa.lean Modified Mathlib/Combinatorics/Derangements/Finite.lean Modified Mathlib/Combinatorics/SetFamily/HarrisKleitman.lean Modified Mathlib/Combinatorics/SetFamily/Kleitman.lean Modified Mathlib/Combinatorics/SimpleGraph/Regularity/Chunk.lean Modified Mathlib/Computability/Language.lean Modified Mathlib/Computability/RegularExpressions.lean Modified Mathlib/Data/Complex/Exponential.lean Modified Mathlib/Data/ENNReal/Operations.lean Modified Mathlib/Data/Finset/Pointwise.lean Modified Mathlib/Data/Int/Basic.lean Modified Mathlib/Data/Int/ModEq.lean Modified Mathlib/Data/List/BigOperators/Basic.lean Modified Mathlib/Data/List/BigOperators/Lemmas.lean Modified Mathlib/Data/List/Count.lean Modified Mathlib/Data/Multiset/Basic.lean Modified Mathlib/Data/MvPolynomial/Basic.lean Modified Mathlib/Data/MvPolynomial/Variables.lean Modified Mathlib/Data/Nat/Basic.lean Modified Mathlib/Data/Nat/Cast/Basic.lean Modified Mathlib/Data/Nat/Choose/Multinomial.lean Modified Mathlib/Data/Nat/Choose/Sum.lean Modified Mathlib/Data/Nat/Digits.lean Modified Mathlib/Data/Nat/Hyperoperation.lean Modified Mathlib/Data/Nat/Interval.lean Modified Mathlib/Data/Nat/Prime.lean Modified Mathlib/Data/Num/Lemmas.lean Modified Mathlib/Data/Polynomial/AlgebraMap.lean Modified Mathlib/Data/Polynomial/Basic.lean Modified Mathlib/Data/Polynomial/Degree/Definitions.lean Modified Mathlib/Data/Polynomial/Degree/Lemmas.lean Modified Mathlib/Data/Polynomial/Derivative.lean Modified Mathlib/Data/Polynomial/Div.lean Modified Mathlib/Data/Polynomial/Eval.lean Modified Mathlib/Data/Polynomial/Expand.lean Modified Mathlib/Data/Polynomial/FieldDivision.lean Modified Mathlib/Data/Polynomial/Module/Basic.lean Modified Mathlib/Data/Polynomial/Monic.lean Modified Mathlib/Data/Polynomial/Reverse.lean Modified Mathlib/Data/Polynomial/RingDivision.lean Modified Mathlib/Data/Real/Cardinality.lean Modified Mathlib/Data/Real/GoldenRatio.lean Modified Mathlib/Data/Real/Irrational.lean Modified Mathlib/Data/Real/Pi/Bounds.lean Modified Mathlib/Data/Real/Pi/Leibniz.lean Modified Mathlib/Data/Set/Pointwise/Basic.lean Modified Mathlib/Data/Set/Pointwise/Finite.lean Modified Mathlib/Deprecated/Submonoid.lean Modified Mathlib/Dynamics/Circle/RotationNumber/TranslationNumber.lean Modified Mathlib/Dynamics/Newton.lean Modified Mathlib/FieldTheory/Finite/Basic.lean Modified Mathlib/FieldTheory/Minpoly/MinpolyDiv.lean Modified Mathlib/FieldTheory/PurelyInseparable.lean Modified Mathlib/FieldTheory/Separable.lean Modified Mathlib/FieldTheory/SeparableDegree.lean Modified Mathlib/FieldTheory/Subfield.lean Modified Mathlib/Geometry/Manifold/Algebra/Monoid.lean Modified Mathlib/GroupTheory/Archimedean.lean Modified Mathlib/GroupTheory/Congruence.lean Modified Mathlib/GroupTheory/Exponent.lean Modified Mathlib/GroupTheory/MonoidLocalization.lean Modified Mathlib/GroupTheory/OrderOfElement.lean Modified Mathlib/GroupTheory/PGroup.lean Modified Mathlib/GroupTheory/Perm/Basic.lean Modified Mathlib/GroupTheory/Perm/Closure.lean Modified Mathlib/GroupTheory/Perm/Cycle/Basic.lean Modified Mathlib/GroupTheory/Perm/Cycle/Concrete.lean Modified Mathlib/GroupTheory/Perm/Cycle/Factors.lean Modified Mathlib/GroupTheory/Perm/Cycle/Type.lean Modified Mathlib/GroupTheory/Perm/Fin.lean Modified Mathlib/GroupTheory/Perm/List.lean Modified Mathlib/GroupTheory/Perm/Support.lean Modified Mathlib/GroupTheory/Schreier.lean Modified Mathlib/GroupTheory/SpecificGroups/Dihedral.lean Modified Mathlib/GroupTheory/SpecificGroups/Quaternion.lean Modified Mathlib/GroupTheory/Submonoid/Basic.lean Modified Mathlib/GroupTheory/Submonoid/Membership.lean Modified Mathlib/GroupTheory/Sylow.lean Modified Mathlib/GroupTheory/Torsion.lean Modified Mathlib/LinearAlgebra/Eigenspace/Basic.lean Modified Mathlib/LinearAlgebra/Eigenspace/Minpoly.lean Modified Mathlib/LinearAlgebra/FiniteDimensional.lean Modified Mathlib/LinearAlgebra/Matrix/Adjugate.lean Modified Mathlib/LinearAlgebra/Matrix/Determinant.lean Modified Mathlib/LinearAlgebra/Matrix/PosDef.lean Modified Mathlib/LinearAlgebra/Matrix/ZPow.lean Modified Mathlib/LinearAlgebra/Reflection.lean Modified Mathlib/LinearAlgebra/Semisimple.lean Modified Mathlib/LinearAlgebra/TensorProduct/Basic.lean Modified Mathlib/LinearAlgebra/Vandermonde.lean Modified Mathlib/MeasureTheory/Covering/Besicovitch.lean Modified Mathlib/MeasureTheory/Group/Arithmetic.lean Modified Mathlib/MeasureTheory/Integral/CircleIntegral.lean Modified Mathlib/MeasureTheory/Integral/Periodic.lean Modified Mathlib/MeasureTheory/Measure/Doubling.lean Modified Mathlib/NumberTheory/ArithmeticFunction.lean +/- theorem ArithmeticFunction.ppow_succ' +/- theorem ArithmeticFunction.ppow_succ Modified Mathlib/NumberTheory/Basic.lean Modified Mathlib/NumberTheory/ClassNumber/AdmissibleAbsoluteValue.lean Modified Mathlib/NumberTheory/Cyclotomic/Discriminant.lean Modified Mathlib/NumberTheory/Cyclotomic/PrimitiveRoots.lean Modified Mathlib/NumberTheory/LSeries/Deriv.lean Modified Mathlib/NumberTheory/LegendreSymbol/GaussSum.lean Modified Mathlib/NumberTheory/LucasLehmer.lean Modified Mathlib/NumberTheory/LucasPrimality.lean Modified Mathlib/NumberTheory/ModularForms/JacobiTheta/OneVariable.lean Modified Mathlib/NumberTheory/Multiplicity.lean Modified Mathlib/NumberTheory/Padics/Hensel.lean Modified Mathlib/NumberTheory/Padics/PadicVal.lean Modified Mathlib/NumberTheory/Padics/RingHoms.lean Modified Mathlib/NumberTheory/Pell.lean Modified Mathlib/NumberTheory/PellMatiyasevic.lean Modified Mathlib/NumberTheory/RamificationInertia.lean Modified Mathlib/Order/Filter/Pointwise.lean Modified Mathlib/RepresentationTheory/GroupCohomology/LowDegree.lean Modified Mathlib/RingTheory/Adjoin/PowerBasis.lean Modified Mathlib/RingTheory/Artinian.lean Modified Mathlib/RingTheory/DedekindDomain/Ideal.lean + theorem Ideal.IsPrime.mem_pow_mul Modified Mathlib/RingTheory/Derivation/Basic.lean Modified Mathlib/RingTheory/DiscreteValuationRing/Basic.lean Modified Mathlib/RingTheory/DiscreteValuationRing/TFAE.lean Modified Mathlib/RingTheory/Filtration.lean Modified Mathlib/RingTheory/Finiteness.lean Modified Mathlib/RingTheory/FractionalIdeal/Basic.lean Modified Mathlib/RingTheory/GradedAlgebra/HomogeneousLocalization.lean Modified Mathlib/RingTheory/HahnSeries/Multiplication.lean Modified Mathlib/RingTheory/HahnSeries/Summable.lean Modified Mathlib/RingTheory/Ideal/Basic.lean Modified Mathlib/RingTheory/Ideal/Norm.lean Modified Mathlib/RingTheory/Ideal/Operations.lean Modified Mathlib/RingTheory/IntegralClosure.lean Modified Mathlib/RingTheory/Jacobson.lean Modified Mathlib/RingTheory/LocalProperties.lean Modified Mathlib/RingTheory/Localization/Basic.lean Modified Mathlib/RingTheory/Multiplicity.lean Modified Mathlib/RingTheory/MvPowerSeries/Basic.lean Modified Mathlib/RingTheory/Nilpotent.lean Modified Mathlib/RingTheory/Perfection.lean Modified Mathlib/RingTheory/Polynomial/Content.lean Modified Mathlib/RingTheory/Polynomial/Cyclotomic/Eval.lean Modified Mathlib/RingTheory/Polynomial/Cyclotomic/Expand.lean Modified Mathlib/RingTheory/Polynomial/Dickson.lean Modified Mathlib/RingTheory/Polynomial/Eisenstein/IsIntegral.lean Modified Mathlib/RingTheory/Polynomial/Hermite/Basic.lean Modified Mathlib/RingTheory/Polynomial/IntegralNormalization.lean Modified Mathlib/RingTheory/Polynomial/Selmer.lean Modified Mathlib/RingTheory/PowerBasis.lean Modified Mathlib/RingTheory/PowerSeries/Trunc.lean Modified Mathlib/RingTheory/PowerSeries/WellKnown.lean Modified Mathlib/RingTheory/ReesAlgebra.lean Modified Mathlib/RingTheory/RootsOfUnity/Basic.lean Modified Mathlib/RingTheory/UniqueFactorizationDomain.lean Modified Mathlib/RingTheory/WittVector/Frobenius.lean Modified Mathlib/RingTheory/WittVector/Identities.lean Modified Mathlib/RingTheory/WittVector/StructurePolynomial.lean Modified Mathlib/RingTheory/WittVector/Verschiebung.lean Modified Mathlib/RingTheory/WittVector/WittPolynomial.lean Modified Mathlib/SetTheory/Cardinal/Basic.lean Modified Mathlib/SetTheory/Ordinal/Arithmetic.lean Modified Mathlib/SetTheory/Ordinal/Exponential.lean Modified Mathlib/SetTheory/Ordinal/Notation.lean Modified Mathlib/SetTheory/Surreal/Dyadic.lean Modified Mathlib/Topology/Algebra/GroupCompletion.lean Modified Mathlib/Topology/Algebra/Module/Basic.lean Modified Mathlib/Topology/Algebra/Monoid.lean Modified Mathlib/Topology/Algebra/UniformGroup.lean Modified Mathlib/Topology/ContinuousFunction/Polynomial.lean Modified Mathlib/Topology/EMetricSpace/Lipschitz.lean Modified Mathlib/Topology/EMetricSpace/Paracompact.lean Modified Mathlib/Topology/Metrizable/Uniformity.lean Modified Mathlib/Topology/TietzeExtension.lean Modified Mathlib/Topology/UnitInterval.lean Modified Mathlib/Topology/UrysohnsLemma.lean Modified test/propose.lean 2024-03-28 10:26:50 43618f9 chore: Rename `IsROrC` to `RCLike` (#10819) `IsROrC` contains data, which goes against the expectation that classes prefixed with `Is` are prop-valued. People have been complaining about this on and off, so this PR renames `IsROrC` to `RCLike`. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Star/Basic.lean Renamed Mathlib/Analysis/Calculus/ContDiff/IsROrC.lean to Mathlib/Analysis/Calculus/ContDiff/RCLike.lean Modified Mathlib/Analysis/Calculus/Gradient/Basic.lean Modified Mathlib/Analysis/Calculus/InverseFunctionTheorem/ContDiff.lean Modified Mathlib/Analysis/Calculus/MeanValue.lean Modified Mathlib/Analysis/Calculus/ParametricIntegral.lean Modified Mathlib/Analysis/Calculus/ParametricIntervalIntegral.lean Modified Mathlib/Analysis/Calculus/SmoothSeries.lean Modified Mathlib/Analysis/Calculus/UniformLimitsDeriv.lean Modified Mathlib/Analysis/Complex/Basic.lean +/- theorem Complex.conj_mul' +/- theorem Complex.inv_eq_conj +/- theorem Complex.mul_conj' - theorem IsROrC.I_to_complex - def IsROrC.complexLinearIsometryEquiv - def IsROrC.complexRingEquiv - theorem IsROrC.conj_tsum - theorem IsROrC.hasSum_conj' - theorem IsROrC.hasSum_conj - theorem IsROrC.hasSum_iff - theorem IsROrC.hasSum_im - theorem IsROrC.hasSum_ofReal - theorem IsROrC.hasSum_re - theorem IsROrC.im_eq_complex_im - theorem IsROrC.im_to_complex - theorem IsROrC.im_tsum - theorem IsROrC.normSq_to_complex - theorem IsROrC.ofReal_tsum - theorem IsROrC.re_eq_complex_re - theorem IsROrC.re_to_complex - theorem IsROrC.re_tsum - theorem IsROrC.summable_conj - theorem IsROrC.summable_ofReal + theorem RCLike.I_to_complex + def RCLike.complexLinearIsometryEquiv + def RCLike.complexRingEquiv + theorem RCLike.conj_tsum + theorem RCLike.hasSum_conj' + theorem RCLike.hasSum_conj + theorem RCLike.hasSum_iff + theorem RCLike.hasSum_im + theorem RCLike.hasSum_ofReal + theorem RCLike.hasSum_re + theorem RCLike.im_eq_complex_im + theorem RCLike.im_to_complex + theorem RCLike.im_tsum + theorem RCLike.normSq_to_complex + theorem RCLike.ofReal_tsum + theorem RCLike.re_eq_complex_re + theorem RCLike.re_to_complex + theorem RCLike.re_tsum + theorem RCLike.summable_conj + theorem RCLike.summable_ofReal Modified Mathlib/Analysis/Complex/Polynomial.lean Modified Mathlib/Analysis/Complex/Schwarz.lean Modified Mathlib/Analysis/Complex/Tietze.lean +/- theorem Metric.instTietzeExtensionBall +/- theorem Metric.instTietzeExtensionClosedBall Modified Mathlib/Analysis/Convex/Gauge.lean Modified Mathlib/Analysis/Convolution.lean Modified Mathlib/Analysis/Distribution/SchwartzSpace.lean Modified Mathlib/Analysis/Fourier/AddCircle.lean Modified Mathlib/Analysis/Fourier/RiemannLebesgueLemma.lean Modified Mathlib/Analysis/InnerProductSpace/Adjoint.lean Modified Mathlib/Analysis/InnerProductSpace/Basic.lean - def Inner.isROrCToReal + def Inner.rclikeToReal +/- structure InnerProductSpace.Core - def InnerProductSpace.isROrCToReal + def InnerProductSpace.rclikeToReal - theorem IsROrC.inner_apply + theorem RCLike.inner_apply Modified Mathlib/Analysis/InnerProductSpace/Calculus.lean Modified Mathlib/Analysis/InnerProductSpace/Dual.lean Modified Mathlib/Analysis/InnerProductSpace/GramSchmidtOrtho.lean Modified Mathlib/Analysis/InnerProductSpace/LaxMilgram.lean Modified Mathlib/Analysis/InnerProductSpace/LinearPMap.lean Modified Mathlib/Analysis/InnerProductSpace/MeanErgodic.lean Modified Mathlib/Analysis/InnerProductSpace/OfNorm.lean Modified Mathlib/Analysis/InnerProductSpace/Orientation.lean Modified Mathlib/Analysis/InnerProductSpace/Orthogonal.lean Modified Mathlib/Analysis/InnerProductSpace/PiL2.lean +/- theorem EuclideanSpace.dist_eq +/- theorem EuclideanSpace.edist_eq +/- theorem EuclideanSpace.nndist_eq +/- theorem EuclideanSpace.nnnorm_eq +/- theorem EuclideanSpace.norm_eq Modified Mathlib/Analysis/InnerProductSpace/Positive.lean Modified Mathlib/Analysis/InnerProductSpace/ProdL2.lean Modified Mathlib/Analysis/InnerProductSpace/Projection.lean Modified Mathlib/Analysis/InnerProductSpace/Rayleigh.lean Modified Mathlib/Analysis/InnerProductSpace/Spectrum.lean Modified Mathlib/Analysis/InnerProductSpace/Symmetric.lean Modified Mathlib/Analysis/InnerProductSpace/TwoDim.lean Modified Mathlib/Analysis/InnerProductSpace/l2Space.lean Modified Mathlib/Analysis/LocallyConvex/AbsConvex.lean Modified Mathlib/Analysis/LocallyConvex/ContinuousOfBounded.lean Modified Mathlib/Analysis/Matrix.lean Modified Mathlib/Analysis/Normed/Group/Tannery.lean Modified Mathlib/Analysis/NormedSpace/Dual.lean +/- theorem NormedSpace.polar_closedBall Modified Mathlib/Analysis/NormedSpace/Exponential.lean Modified Mathlib/Analysis/NormedSpace/Extend.lean Modified Mathlib/Analysis/NormedSpace/HahnBanach/Extension.lean Modified Mathlib/Analysis/NormedSpace/HahnBanach/SeparatingDual.lean Modified Mathlib/Analysis/NormedSpace/MatrixExponential.lean Modified Mathlib/Analysis/NormedSpace/OperatorNorm/NormedSpace.lean Modified Mathlib/Analysis/NormedSpace/PiLp.lean Modified Mathlib/Analysis/NormedSpace/ProdLp.lean Renamed Mathlib/Analysis/NormedSpace/IsROrC.lean to Mathlib/Analysis/NormedSpace/RCLike.lean - theorem IsROrC.norm_coe_norm - theorem NormedSpace.sphere_nonempty_isROrC + theorem NormedSpace.sphere_nonempty_rclike + theorem RCLike.norm_coe_norm Modified Mathlib/Analysis/NormedSpace/Spectrum.lean +/- theorem spectrum.exp_mem_exp Modified Mathlib/Analysis/NormedSpace/Star/ContinuousFunctionalCalculus.lean Modified Mathlib/Analysis/NormedSpace/Star/ContinuousFunctionalCalculus/Instances.lean Modified Mathlib/Analysis/NormedSpace/Star/GelfandDuality.lean +/- theorem WeakDual.CharacterSpace.homeoEval_naturality Modified Mathlib/Analysis/NormedSpace/Star/Matrix.lean Modified Mathlib/Analysis/NormedSpace/Star/Spectrum.lean Modified Mathlib/Analysis/NormedSpace/TrivSqZeroExt.lean Modified Mathlib/Analysis/Quaternion.lean Modified Mathlib/Analysis/Seminorm.lean Modified Mathlib/Analysis/SpecialFunctions/ExpDeriv.lean Modified Mathlib/Analysis/SpecialFunctions/Exponential.lean Modified Mathlib/Analysis/SpecialFunctions/Gamma/Basic.lean Modified Mathlib/Analysis/SpecialFunctions/Gamma/Beta.lean Modified Mathlib/Analysis/SpecialFunctions/Gaussian.lean Modified Mathlib/Analysis/SpecialFunctions/Integrals.lean Modified Mathlib/Analysis/SpecialFunctions/Pow/Complex.lean Modified Mathlib/Analysis/SpecialFunctions/Pow/Real.lean Renamed Mathlib/Analysis/SpecificLimits/IsROrC.lean to Mathlib/Analysis/SpecificLimits/RCLike.lean - theorem IsROrC.tendsto_inverse_atTop_nhds_zero_nat + theorem RCLike.tendsto_inverse_atTop_nhds_zero_nat Modified Mathlib/Computability/AkraBazzi/AkraBazzi.lean Modified Mathlib/Data/Complex/Basic.lean Modified Mathlib/Data/Complex/Order.lean Renamed Mathlib/Data/IsROrC/Basic.lean to Mathlib/Data/RCLike/Basic.lean - theorem IsROrC.I_eq_zero_or_im_I_eq_one - theorem IsROrC.I_im' - theorem IsROrC.I_im - theorem IsROrC.I_mul_I - theorem IsROrC.I_mul_I_of_nonzero - theorem IsROrC.I_mul_re - theorem IsROrC.I_re - theorem IsROrC.I_to_real - theorem IsROrC.abs_im_div_norm_le_one - theorem IsROrC.abs_im_le_norm - theorem IsROrC.abs_re_div_norm_le_one - theorem IsROrC.abs_re_le_norm - theorem IsROrC.add_conj - theorem IsROrC.algebraMap_eq_ofReal - theorem IsROrC.bit0_im - theorem IsROrC.bit0_re - theorem IsROrC.bit1_im - theorem IsROrC.bit1_re - def IsROrC.conjAe - theorem IsROrC.conjAe_coe - theorem IsROrC.conjCLE_apply - theorem IsROrC.conjCLE_coe - theorem IsROrC.conjLIE_apply - theorem IsROrC.conj_I - theorem IsROrC.conj_bit0 - theorem IsROrC.conj_bit1 - theorem IsROrC.conj_div - theorem IsROrC.conj_eq_iff_im - theorem IsROrC.conj_eq_iff_re - theorem IsROrC.conj_eq_iff_real - theorem IsROrC.conj_eq_re_sub_im - theorem IsROrC.conj_im - theorem IsROrC.conj_inv - theorem IsROrC.conj_mul - theorem IsROrC.conj_neg_I - theorem IsROrC.conj_ofReal - theorem IsROrC.conj_re - theorem IsROrC.conj_smul - theorem IsROrC.conj_to_real - theorem IsROrC.continuous_conj - theorem IsROrC.continuous_im - theorem IsROrC.continuous_normSq - theorem IsROrC.continuous_ofReal - theorem IsROrC.continuous_re - theorem IsROrC.div_I - theorem IsROrC.div_im - theorem IsROrC.div_re - theorem IsROrC.div_re_ofReal - theorem IsROrC.exists_norm_eq_mul_self - theorem IsROrC.exists_norm_mul_eq_self - theorem IsROrC.ext - theorem IsROrC.ext_iff - theorem IsROrC.imCLM_apply - theorem IsROrC.imCLM_coe - def IsROrC.imLm - theorem IsROrC.imLm_coe - theorem IsROrC.im_eq_conj_sub - theorem IsROrC.im_eq_zero - theorem IsROrC.im_eq_zero_of_le - theorem IsROrC.im_le_norm - theorem IsROrC.im_ofReal_mul - theorem IsROrC.im_sq_le_normSq - theorem IsROrC.im_to_real - theorem IsROrC.intCast_im - theorem IsROrC.intCast_re - theorem IsROrC.inv_I - theorem IsROrC.inv_def - theorem IsROrC.inv_eq_conj - theorem IsROrC.inv_im - theorem IsROrC.inv_re - theorem IsROrC.isCauSeq_im - theorem IsROrC.isCauSeq_norm - theorem IsROrC.isCauSeq_re - theorem IsROrC.is_real_TFAE - theorem IsROrC.lt_iff_re_im - theorem IsROrC.mul_conj - theorem IsROrC.mul_im - theorem IsROrC.mul_re - theorem IsROrC.mul_self_norm - theorem IsROrC.natCast_im - theorem IsROrC.natCast_re - theorem IsROrC.neg_iff - theorem IsROrC.neg_iff_exists_ofReal - theorem IsROrC.nonneg_iff - theorem IsROrC.nonneg_iff_exists_ofReal - theorem IsROrC.nonpos_iff - theorem IsROrC.nonpos_iff_exists_ofReal - def IsROrC.normSq - theorem IsROrC.normSq_add - theorem IsROrC.normSq_apply - theorem IsROrC.normSq_conj - theorem IsROrC.normSq_div - theorem IsROrC.normSq_eq_def' - theorem IsROrC.normSq_eq_zero - theorem IsROrC.normSq_inv - theorem IsROrC.normSq_mul - theorem IsROrC.normSq_neg - theorem IsROrC.normSq_nonneg - theorem IsROrC.normSq_one - theorem IsROrC.normSq_pos - theorem IsROrC.normSq_sub - theorem IsROrC.normSq_to_real - theorem IsROrC.normSq_zero - theorem IsROrC.norm_I_of_ne_zero - theorem IsROrC.norm_conj - theorem IsROrC.norm_im_le_norm - theorem IsROrC.norm_natCast - theorem IsROrC.norm_nsmul - theorem IsROrC.norm_ofNat - theorem IsROrC.norm_ofReal - theorem IsROrC.norm_of_nonneg - theorem IsROrC.norm_re_le_norm - theorem IsROrC.norm_sq_eq_def - theorem IsROrC.norm_sq_re_add_conj - theorem IsROrC.norm_sq_re_conj_add - theorem IsROrC.norm_two - theorem IsROrC.ofNat_im - theorem IsROrC.ofNat_mul_im - theorem IsROrC.ofNat_mul_re - theorem IsROrC.ofNat_re - theorem IsROrC.ofRealAm_coe - theorem IsROrC.ofRealCLM_apply - theorem IsROrC.ofRealCLM_coe - theorem IsROrC.ofRealLI_apply - theorem IsROrC.ofReal_add - theorem IsROrC.ofReal_alg - theorem IsROrC.ofReal_bit0 - theorem IsROrC.ofReal_bit1 - theorem IsROrC.ofReal_div - theorem IsROrC.ofReal_eq_zero - theorem IsROrC.ofReal_finsupp_prod - theorem IsROrC.ofReal_finsupp_sum - theorem IsROrC.ofReal_im - theorem IsROrC.ofReal_inj - theorem IsROrC.ofReal_injective - theorem IsROrC.ofReal_intCast - theorem IsROrC.ofReal_inv - theorem IsROrC.ofReal_mul - theorem IsROrC.ofReal_natCast - theorem IsROrC.ofReal_ne_zero - theorem IsROrC.ofReal_neg - theorem IsROrC.ofReal_ofNat - theorem IsROrC.ofReal_one - theorem IsROrC.ofReal_pow - theorem IsROrC.ofReal_prod - theorem IsROrC.ofReal_ratCast - theorem IsROrC.ofReal_re - theorem IsROrC.ofReal_real_eq_id - theorem IsROrC.ofReal_sub - theorem IsROrC.ofReal_sum - theorem IsROrC.ofReal_zero - theorem IsROrC.ofReal_zpow - theorem IsROrC.one_im - theorem IsROrC.one_re - theorem IsROrC.pos_iff - theorem IsROrC.pos_iff_exists_ofReal - theorem IsROrC.ratCast_im - theorem IsROrC.ratCast_re - theorem IsROrC.reCLM_apply - theorem IsROrC.reCLM_coe - def IsROrC.reLm - theorem IsROrC.reLm_coe - theorem IsROrC.re_add_im - theorem IsROrC.re_eq_add_conj - theorem IsROrC.re_eq_norm_of_mul_conj - theorem IsROrC.re_eq_self_of_le - theorem IsROrC.re_le_norm - theorem IsROrC.re_ofReal_mul - theorem IsROrC.re_sq_le_normSq - theorem IsROrC.re_to_real - def IsROrC.realRingEquiv - theorem IsROrC.real_smul_eq_coe_mul - theorem IsROrC.real_smul_eq_coe_smul - theorem IsROrC.real_smul_ofReal - theorem IsROrC.smul_im - theorem IsROrC.smul_re - theorem IsROrC.sqrt_normSq_eq_norm - theorem IsROrC.star_def - theorem IsROrC.sub_conj - theorem IsROrC.toOrderedSMul - def IsROrC.toStarOrderedRing - def IsROrC.toStrictOrderedCommRing - theorem IsROrC.zero_re' + theorem RCLike.I_eq_zero_or_im_I_eq_one + theorem RCLike.I_im' + theorem RCLike.I_im + theorem RCLike.I_mul_I + theorem RCLike.I_mul_I_of_nonzero + theorem RCLike.I_mul_re + theorem RCLike.I_re + theorem RCLike.I_to_real + theorem RCLike.abs_im_div_norm_le_one + theorem RCLike.abs_im_le_norm + theorem RCLike.abs_re_div_norm_le_one + theorem RCLike.abs_re_le_norm + theorem RCLike.add_conj + theorem RCLike.algebraMap_eq_ofReal + theorem RCLike.bit0_im + theorem RCLike.bit0_re + theorem RCLike.bit1_im + theorem RCLike.bit1_re + def RCLike.conjAe + theorem RCLike.conjAe_coe + theorem RCLike.conjCLE_apply + theorem RCLike.conjCLE_coe + theorem RCLike.conjLIE_apply + theorem RCLike.conj_I + theorem RCLike.conj_bit0 + theorem RCLike.conj_bit1 + theorem RCLike.conj_div + theorem RCLike.conj_eq_iff_im + theorem RCLike.conj_eq_iff_re + theorem RCLike.conj_eq_iff_real + theorem RCLike.conj_eq_re_sub_im + theorem RCLike.conj_im + theorem RCLike.conj_inv + theorem RCLike.conj_mul + theorem RCLike.conj_neg_I + theorem RCLike.conj_ofReal + theorem RCLike.conj_re + theorem RCLike.conj_smul + theorem RCLike.conj_to_real + theorem RCLike.continuous_conj + theorem RCLike.continuous_im + theorem RCLike.continuous_normSq + theorem RCLike.continuous_ofReal + theorem RCLike.continuous_re + theorem RCLike.div_I + theorem RCLike.div_im + theorem RCLike.div_re + theorem RCLike.div_re_ofReal + theorem RCLike.exists_norm_eq_mul_self + theorem RCLike.exists_norm_mul_eq_self + theorem RCLike.ext + theorem RCLike.ext_iff + theorem RCLike.imCLM_apply + theorem RCLike.imCLM_coe + def RCLike.imLm + theorem RCLike.imLm_coe + theorem RCLike.im_eq_conj_sub + theorem RCLike.im_eq_zero + theorem RCLike.im_eq_zero_of_le + theorem RCLike.im_le_norm + theorem RCLike.im_ofReal_mul + theorem RCLike.im_sq_le_normSq + theorem RCLike.im_to_real + theorem RCLike.intCast_im + theorem RCLike.intCast_re + theorem RCLike.inv_I + theorem RCLike.inv_def + theorem RCLike.inv_eq_conj + theorem RCLike.inv_im + theorem RCLike.inv_re + theorem RCLike.isCauSeq_im + theorem RCLike.isCauSeq_norm + theorem RCLike.isCauSeq_re + theorem RCLike.is_real_TFAE + theorem RCLike.lt_iff_re_im + theorem RCLike.mul_conj + theorem RCLike.mul_im + theorem RCLike.mul_re + theorem RCLike.mul_self_norm + theorem RCLike.natCast_im + theorem RCLike.natCast_re + theorem RCLike.neg_iff + theorem RCLike.neg_iff_exists_ofReal + theorem RCLike.nonneg_iff + theorem RCLike.nonneg_iff_exists_ofReal + theorem RCLike.nonpos_iff + theorem RCLike.nonpos_iff_exists_ofReal + def RCLike.normSq + theorem RCLike.normSq_add + theorem RCLike.normSq_apply + theorem RCLike.normSq_conj + theorem RCLike.normSq_div + theorem RCLike.normSq_eq_def' + theorem RCLike.normSq_eq_zero + theorem RCLike.normSq_inv + theorem RCLike.normSq_mul + theorem RCLike.normSq_neg + theorem RCLike.normSq_nonneg + theorem RCLike.normSq_one + theorem RCLike.normSq_pos + theorem RCLike.normSq_sub + theorem RCLike.normSq_to_real + theorem RCLike.normSq_zero + theorem RCLike.norm_I_of_ne_zero + theorem RCLike.norm_conj + theorem RCLike.norm_im_le_norm + theorem RCLike.norm_natCast + theorem RCLike.norm_nsmul + theorem RCLike.norm_ofNat + theorem RCLike.norm_ofReal + theorem RCLike.norm_of_nonneg + theorem RCLike.norm_re_le_norm + theorem RCLike.norm_sq_eq_def + theorem RCLike.norm_sq_re_add_conj + theorem RCLike.norm_sq_re_conj_add + theorem RCLike.norm_two + theorem RCLike.ofNat_im + theorem RCLike.ofNat_mul_im + theorem RCLike.ofNat_mul_re + theorem RCLike.ofNat_re + theorem RCLike.ofRealAm_coe + theorem RCLike.ofRealCLM_apply + theorem RCLike.ofRealCLM_coe + theorem RCLike.ofRealLI_apply + theorem RCLike.ofReal_add + theorem RCLike.ofReal_alg + theorem RCLike.ofReal_bit0 + theorem RCLike.ofReal_bit1 + theorem RCLike.ofReal_div + theorem RCLike.ofReal_eq_zero + theorem RCLike.ofReal_finsupp_prod + theorem RCLike.ofReal_finsupp_sum + theorem RCLike.ofReal_im + theorem RCLike.ofReal_inj + theorem RCLike.ofReal_injective + theorem RCLike.ofReal_intCast + theorem RCLike.ofReal_inv + theorem RCLike.ofReal_mul + theorem RCLike.ofReal_natCast + theorem RCLike.ofReal_ne_zero + theorem RCLike.ofReal_neg + theorem RCLike.ofReal_ofNat + theorem RCLike.ofReal_one + theorem RCLike.ofReal_pow + theorem RCLike.ofReal_prod + theorem RCLike.ofReal_ratCast + theorem RCLike.ofReal_re + theorem RCLike.ofReal_real_eq_id + theorem RCLike.ofReal_sub + theorem RCLike.ofReal_sum + theorem RCLike.ofReal_zero + theorem RCLike.ofReal_zpow + theorem RCLike.one_im + theorem RCLike.one_re + theorem RCLike.pos_iff + theorem RCLike.pos_iff_exists_ofReal + theorem RCLike.ratCast_im + theorem RCLike.ratCast_re + theorem RCLike.reCLM_apply + theorem RCLike.reCLM_coe + def RCLike.reLm + theorem RCLike.reLm_coe + theorem RCLike.re_add_im + theorem RCLike.re_eq_add_conj + theorem RCLike.re_eq_norm_of_mul_conj + theorem RCLike.re_eq_self_of_le + theorem RCLike.re_le_norm + theorem RCLike.re_ofReal_mul + theorem RCLike.re_sq_le_normSq + theorem RCLike.re_to_real + def RCLike.realRingEquiv + theorem RCLike.real_smul_eq_coe_mul + theorem RCLike.real_smul_eq_coe_smul + theorem RCLike.real_smul_ofReal + theorem RCLike.smul_im + theorem RCLike.smul_re + theorem RCLike.sqrt_normSq_eq_norm + theorem RCLike.star_def + theorem RCLike.sub_conj + theorem RCLike.toOrderedSMul + def RCLike.toStarOrderedRing + def RCLike.toStrictOrderedCommRing + theorem RCLike.zero_re' Renamed Mathlib/Data/IsROrC/Lemmas.lean to Mathlib/Data/RCLike/Lemmas.lean - theorem FiniteDimensional.proper_isROrC + theorem FiniteDimensional.proper_rclike - theorem IsROrC.conjCLE_norm - theorem IsROrC.ofRealCLM_norm - theorem IsROrC.reCLM_norm +/- theorem Polynomial.aeval_ofReal + theorem RCLike.conjCLE_norm + theorem RCLike.ofRealCLM_norm + theorem RCLike.reCLM_norm Modified Mathlib/Data/Real/Sqrt.lean Modified Mathlib/Dynamics/BirkhoffSum/NormedSpace.lean Modified Mathlib/Geometry/Euclidean/Angle/Oriented/Rotation.lean Modified Mathlib/LinearAlgebra/Matrix/Hermitian.lean Modified Mathlib/LinearAlgebra/Matrix/LDL.lean Modified Mathlib/LinearAlgebra/Matrix/PosDef.lean Modified Mathlib/LinearAlgebra/Matrix/Spectrum.lean Modified Mathlib/MeasureTheory/Constructions/BorelSpace/Basic.lean Modified Mathlib/MeasureTheory/Constructions/BorelSpace/Complex.lean Modified Mathlib/MeasureTheory/Constructions/Prod/Integral.lean +/- theorem MeasureTheory.Integrable.prod_mul +/- theorem MeasureTheory.integral_prod_mul +/- theorem MeasureTheory.integral_prod_smul +/- theorem MeasureTheory.set_integral_prod_mul Modified Mathlib/MeasureTheory/Decomposition/SignedLebesgue.lean Modified Mathlib/MeasureTheory/Function/AEEqOfIntegral.lean Modified Mathlib/MeasureTheory/Function/ConditionalExpectation/AEMeasurable.lean +/- theorem MeasureTheory.AEStronglyMeasurable'.const_inner Modified Mathlib/MeasureTheory/Function/ConditionalExpectation/Basic.lean Modified Mathlib/MeasureTheory/Function/ConditionalExpectation/CondexpL1.lean Modified Mathlib/MeasureTheory/Function/ConditionalExpectation/CondexpL2.lean Modified Mathlib/MeasureTheory/Function/ConditionalExpectation/Real.lean Modified Mathlib/MeasureTheory/Function/ConditionalExpectation/Unique.lean Modified Mathlib/MeasureTheory/Function/L1Space.lean +/- theorem MeasureTheory.Integrable.im +/- theorem MeasureTheory.Integrable.re Modified Mathlib/MeasureTheory/Function/L2Space.lean Modified Mathlib/MeasureTheory/Function/LpSeminorm/Basic.lean +/- theorem MeasureTheory.Memℒp.im +/- theorem MeasureTheory.Memℒp.re Modified Mathlib/MeasureTheory/Function/LpSpace.lean Modified Mathlib/MeasureTheory/Function/SpecialFunctions/Inner.lean Deleted Mathlib/MeasureTheory/Function/SpecialFunctions/IsROrC.lean - theorem AEMeasurable.im - theorem AEMeasurable.re - theorem IsROrC.measurable_im - theorem IsROrC.measurable_ofReal - theorem IsROrC.measurable_re - theorem Measurable.im - theorem Measurable.re - theorem aemeasurable_of_re_im - theorem measurable_of_re_im Added Mathlib/MeasureTheory/Function/SpecialFunctions/RCLike.lean + theorem AEMeasurable.im + theorem AEMeasurable.re + theorem Measurable.im + theorem Measurable.re + theorem RCLike.measurable_im + theorem RCLike.measurable_ofReal + theorem RCLike.measurable_re + theorem aemeasurable_of_re_im + theorem measurable_of_re_im Modified Mathlib/MeasureTheory/Function/StronglyMeasurable/Inner.lean Modified Mathlib/MeasureTheory/Integral/Bochner.lean +/- theorem MeasureTheory.integral_div +/- theorem MeasureTheory.integral_mul_left +/- theorem MeasureTheory.integral_mul_right Modified Mathlib/MeasureTheory/Integral/CircleIntegral.lean +/- theorem circleIntegral.integral_smul Modified Mathlib/MeasureTheory/Integral/FundThmCalculus.lean +/- theorem intervalIntegral.integral_unitInterval_deriv_eq_sub Modified Mathlib/MeasureTheory/Integral/IntervalIntegral.lean +/- theorem intervalIntegral.integral_const_mul +/- theorem intervalIntegral.integral_div +/- theorem intervalIntegral.integral_mul_const Modified Mathlib/MeasureTheory/Integral/Pi.lean Modified Mathlib/MeasureTheory/Integral/SetIntegral.lean +/- theorem integral_smul_const Modified Mathlib/MeasureTheory/Integral/TorusIntegral.lean +/- theorem torusIntegral_smul Modified Mathlib/NumberTheory/NumberField/Discriminant.lean Modified Mathlib/NumberTheory/SumPrimeReciprocals.lean Modified Mathlib/Probability/StrongLaw.lean Modified Mathlib/Tactic/Attr/Register.lean Modified Mathlib/Topology/ContinuousFunction/Ideals.lean Modified Mathlib/Topology/ContinuousFunction/StoneWeierstrass.lean +/- theorem ContinuousMap.starAlgHom_ext_map_X - theorem Subalgebra.SeparatesPoints.isROrC_to_real + theorem Subalgebra.SeparatesPoints.rclike_to_real +/- theorem polynomialFunctions.starClosure_topologicalClosure Modified Mathlib/Topology/ContinuousFunction/UniqueCFC.lean - theorem IsROrC.uniqueContinuousFunctionalCalculus_of_compactSpace_spectrum + theorem RCLike.uniqueContinuousFunctionalCalculus_of_compactSpace_spectrum Modified Mathlib/Topology/MetricSpace/HausdorffDimension.lean Modified scripts/nolints.json Modified test/PosDef.lean 2024-03-28 10:26:49 4347fcd feat (Topology/EMetricSpace): ext lemmas for Extended metric classes (#10813) previously the `ext` tactic would fail for these classes. now it won't. ESTIMATED CHANGES Modified Mathlib/Topology/EMetricSpace/Basic.lean 2024-03-28 10:26:48 e18e922 feat: characterize roots of unity in cyclotomic extensions (#10710) We add `IsPrimitiveRoot.exists_pow_or_neg_mul_pow_of_isOfFinOrder`: If `x` is a root of unity (spelled as `IsOfFinOrder x`) in an `n`-th cyclotomic extension of `ℚ`, where `n` is odd, and `ζ` is a primitive `n`-th root of unity, then there exists `r < n` such that `x = ζ^r` or `x = -ζ^r`. From flt-regular - [x] depends on: #11235 ESTIMATED CHANGES Modified Mathlib/Data/Nat/Totient.lean + theorem Nat.dvd_two_of_totient_le_one Modified Mathlib/GroupTheory/SpecificGroups/Cyclic.lean + theorem IsCyclic.exists_ofOrder_eq_natCard + theorem IsCyclic.iff_exists_ofOrder_eq_natCard_of_Fintype Modified Mathlib/NumberTheory/Cyclotomic/PrimitiveRoots.lean + theorem IsPrimitiveRoot.dvd_of_isCyclotomicExtension + theorem IsPrimitiveRoot.exists_neg_pow_of_isOfFinOrder + theorem IsPrimitiveRoot.exists_pow_or_neg_mul_pow_of_isOfFinOrder + theorem IsPrimitiveRoot.lcm_totient_le_finrank Modified Mathlib/RingTheory/RootsOfUnity/Basic.lean + theorem IsPrimitiveRoot.pow_mul_pow_lcm 2024-03-28 10:26:46 d2f16b1 feat(NumberTheory/ArithmeticFunction): Basic lemmas about `μ^2` (#10672) Basic results stating `μ^2` is the indicator function for squarefree natural numbers. This came up during my Selberg sieve project. ESTIMATED CHANGES Modified Mathlib/NumberTheory/ArithmeticFunction.lean + theorem ArithmeticFunction.abs_moebius + theorem ArithmeticFunction.abs_moebius_eq_one_of_squarefree + theorem ArithmeticFunction.moebius_sq + theorem ArithmeticFunction.moebius_sq_eq_one_of_squarefree 2024-03-28 10:00:52 ea08310 feat (NumberTheory/LSeries): Dirichlet series as Mellin transforms (#11190) Show that the Mellin transform of a power series in `exp (-t)` is the corresponding Dirchlet series. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/NumberTheory/LSeries/MellinEqDirichlet.lean + theorem hasSum_mellin + theorem hasSum_mellin_pi_mul + theorem hasSum_mellin_pi_mul_sq' + theorem hasSum_mellin_pi_mul_sq + theorem hasSum_mellin_pi_mul₀ 2024-03-27 19:08:28 b3744d5 feat(Data/Polynomial/FieldDivision): add two lemmas about normalization of X (#11720) Add two lemmas `normUnit_X` and `X_eq_normalize` on the normalization unit for the monoid `X`. ESTIMATED CHANGES Modified Mathlib/Data/Polynomial/FieldDivision.lean + theorem Polynomial.X_eq_normalize + theorem Polynomial.normUnit_X 2024-03-27 17:25:17 171abc8 feat(Algebra/GroupWithZero): remove already existing lemmas (#11691) Undo #11677 since we have found out that the lemmas https://github.com/leanprover-community/mathlib4/blob/044f1333d4e273d0d45e7fdeaf07266d7e043c32/Mathlib/Algebra/GroupWithZero/Divisibility.lean#L171-L179 already exist in the same file with different names `mul_dvd_mul_iff_left` and `mul_dvd_mul_iff_right`: https://github.com/leanprover-community/mathlib4/blob/0f2ac6785f4ecb39c798a30eee01dafa63c828d7/Mathlib/Algebra/GroupWithZero/Divisibility.lean#L46-L58 ESTIMATED CHANGES Modified Mathlib/Algebra/GroupWithZero/Divisibility.lean - theorem dvd_of_mul_dvd_mul_left - theorem dvd_of_mul_dvd_mul_right 2024-03-27 15:04:15 4e40a0d feat: Radon-Nikodym theorem for transition kernels (#10950) Let `γ` be a countably generated measurable space and `κ η : kernel α γ` be finite kernels. We build a function `rnDeriv κ η : α → γ → ℝ≥0∞` jointly measurable on `α × γ` and a kernel `singularPart κ η : kernel α γ` such that `κ = withDensity η (rnDeriv κ η) + singularPart κ η` and for all `a : α`, `singularPart κ η a ⟂ₘ η a` . ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/MeasureTheory/Measure/MeasureSpace.lean + theorem MeasureTheory.Measure.AbsolutelyContinuous.add_left_iff Modified Mathlib/MeasureTheory/Measure/MutuallySingular.lean + theorem MeasureTheory.Measure.eq_zero_of_absolutelyContinuous_of_mutuallySingular Modified Mathlib/Probability/Kernel/Composition.lean + theorem ProbabilityTheory.kernel.fst_map_id_prod + theorem ProbabilityTheory.kernel.snd_map_prod_id Added Mathlib/Probability/Kernel/RadonNikodym.lean + theorem ProbabilityTheory.kernel.measurableSet_absolutelyContinuous + theorem ProbabilityTheory.kernel.measurableSet_mutuallySingular + theorem ProbabilityTheory.kernel.measurableSet_mutuallySingularSet + theorem ProbabilityTheory.kernel.measurableSet_mutuallySingularSetSlice + theorem ProbabilityTheory.kernel.measurable_rnDeriv + theorem ProbabilityTheory.kernel.measurable_rnDerivAux + theorem ProbabilityTheory.kernel.measurable_rnDerivAux_right + theorem ProbabilityTheory.kernel.measurable_rnDeriv_right + theorem ProbabilityTheory.kernel.measurable_singularPart_fun + theorem ProbabilityTheory.kernel.measurable_singularPart_fun_right + theorem ProbabilityTheory.kernel.measure_mutuallySingularSetSlice + def ProbabilityTheory.kernel.mutuallySingularSet + def ProbabilityTheory.kernel.mutuallySingularSetSlice + theorem ProbabilityTheory.kernel.mutuallySingular_singularPart + def ProbabilityTheory.kernel.rnDerivAux + theorem ProbabilityTheory.kernel.rnDerivAux_le_one + theorem ProbabilityTheory.kernel.rnDerivAux_nonneg + theorem ProbabilityTheory.kernel.rnDeriv_add_singularPart + theorem ProbabilityTheory.kernel.rnDeriv_def' + theorem ProbabilityTheory.kernel.rnDeriv_eq_top_iff' + theorem ProbabilityTheory.kernel.rnDeriv_eq_top_iff + theorem ProbabilityTheory.kernel.set_lintegral_rnDerivAux + theorem ProbabilityTheory.kernel.singularPart_compl_mutuallySingularSetSlice + theorem ProbabilityTheory.kernel.singularPart_eq_zero_iff_absolutelyContinuous + theorem ProbabilityTheory.kernel.singularPart_eq_zero_iff_apply_eq_zero + theorem ProbabilityTheory.kernel.singularPart_eq_zero_iff_measure_eq_zero + theorem ProbabilityTheory.kernel.singularPart_of_subset_compl_mutuallySingularSetSlice + theorem ProbabilityTheory.kernel.singularPart_of_subset_mutuallySingularSetSlice + theorem ProbabilityTheory.kernel.withDensity_one_sub_rnDerivAux + theorem ProbabilityTheory.kernel.withDensity_rnDerivAux + theorem ProbabilityTheory.kernel.withDensity_rnDeriv_eq_zero_iff_apply_eq_zero + theorem ProbabilityTheory.kernel.withDensity_rnDeriv_eq_zero_iff_measure_eq_zero + theorem ProbabilityTheory.kernel.withDensity_rnDeriv_eq_zero_iff_mutuallySingular + theorem ProbabilityTheory.kernel.withDensity_rnDeriv_mutuallySingularSetSlice + theorem ProbabilityTheory.kernel.withDensity_rnDeriv_of_subset_compl_mutuallySingularSetSlice + theorem ProbabilityTheory.kernel.withDensity_rnDeriv_of_subset_mutuallySingularSetSlice Modified docs/references.bib 2024-03-27 14:40:14 89e669a refactor: use CdfToKernel in CondCdf (#11529) The recently added file CdfToKernel contains generalizations of many lemmas in the file CondCdf. This PR refactors CondCdf to use the new results. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Probability/Cdf.lean Deleted Mathlib/Probability/Kernel/CondCdf.lean - theorem MeasureTheory.Measure.IicSnd_ac_fst - theorem MeasureTheory.Measure.IicSnd_apply - theorem MeasureTheory.Measure.IicSnd_le_fst - theorem MeasureTheory.Measure.IicSnd_mono - theorem MeasureTheory.Measure.IicSnd_univ - theorem MeasureTheory.Measure.IsFiniteMeasure.IicSnd - theorem MeasureTheory.Measure.iInf_IicSnd_gt - theorem MeasureTheory.Measure.tendsto_IicSnd_atBot - theorem MeasureTheory.Measure.tendsto_IicSnd_atTop - structure ProbabilityTheory.HasCondCDF - theorem ProbabilityTheory.bddBelow_range_condCDFRat_gt - theorem ProbabilityTheory.condCDF'_def' - theorem ProbabilityTheory.condCDF'_eq_condCDFRat - theorem ProbabilityTheory.condCDF'_nonneg - theorem ProbabilityTheory.condCDFRat_ae_eq - theorem ProbabilityTheory.condCDFRat_le_one - theorem ProbabilityTheory.condCDFRat_nonneg - theorem ProbabilityTheory.condCDFRat_of_mem - theorem ProbabilityTheory.condCDFRat_of_not_mem - def ProbabilityTheory.condCDFSet - theorem ProbabilityTheory.condCDF_ae_eq - theorem ProbabilityTheory.condCDF_eq_condCDFRat - theorem ProbabilityTheory.condCDF_le_one - theorem ProbabilityTheory.condCDF_nonneg - theorem ProbabilityTheory.continuousWithinAt_condCDF'_Ici - theorem ProbabilityTheory.hasCondCDF_ae - theorem ProbabilityTheory.hasCondCDF_of_mem_condCDFSet - theorem ProbabilityTheory.inf_gt_condCDFRat - theorem ProbabilityTheory.inf_gt_preCDF - theorem ProbabilityTheory.integrable_condCDF - theorem ProbabilityTheory.integral_condCDF - theorem ProbabilityTheory.lintegral_condCDF - theorem ProbabilityTheory.measurableSet_condCDFSet - theorem ProbabilityTheory.measurable_condCDF - theorem ProbabilityTheory.measurable_condCDFRat - theorem ProbabilityTheory.measurable_measure_condCDF - theorem ProbabilityTheory.measurable_preCDF - theorem ProbabilityTheory.measure_condCDF_Iic - theorem ProbabilityTheory.measure_condCDF_univ - theorem ProbabilityTheory.mem_condCDFSet_ae - theorem ProbabilityTheory.monotone_condCDF' - theorem ProbabilityTheory.monotone_condCDFRat - theorem ProbabilityTheory.monotone_preCDF - theorem ProbabilityTheory.ofReal_condCDFRat_ae_eq - theorem ProbabilityTheory.ofReal_condCDF_ae_eq - theorem ProbabilityTheory.preCDF_le_one - theorem ProbabilityTheory.set_integral_condCDF - theorem ProbabilityTheory.set_lintegral_condCDF - theorem ProbabilityTheory.set_lintegral_condCDF_rat - theorem ProbabilityTheory.set_lintegral_iInf_gt_preCDF - theorem ProbabilityTheory.set_lintegral_preCDF_fst - theorem ProbabilityTheory.stronglyMeasurable_condCDF - theorem ProbabilityTheory.tendsto_condCDFRat_atBot - theorem ProbabilityTheory.tendsto_condCDFRat_atTop - theorem ProbabilityTheory.tendsto_condCDF_atBot - theorem ProbabilityTheory.tendsto_condCDF_atTop - theorem ProbabilityTheory.tendsto_lintegral_preCDF_atBot - theorem ProbabilityTheory.tendsto_lintegral_preCDF_atTop - theorem ProbabilityTheory.tendsto_preCDF_atBot_zero - theorem ProbabilityTheory.tendsto_preCDF_atTop_one - theorem ProbabilityTheory.withDensity_preCDF Modified Mathlib/Probability/Kernel/Disintegration.lean Modified Mathlib/Probability/Kernel/Disintegration/CdfToKernel.lean + theorem ProbabilityTheory.IsRatCondKernelCDFAux.bddBelow_range + theorem ProbabilityTheory.IsRatCondKernelCDFAux.iInf_rat_gt_eq + theorem ProbabilityTheory.IsRatCondKernelCDFAux.integrable_iInf_rat_gt + theorem ProbabilityTheory.IsRatCondKernelCDFAux.isRatCondKernelCDF + theorem ProbabilityTheory.IsRatCondKernelCDFAux.isRatStieltjesPoint_ae + theorem ProbabilityTheory.IsRatCondKernelCDFAux.le_one + theorem ProbabilityTheory.IsRatCondKernelCDFAux.measurable_right + theorem ProbabilityTheory.IsRatCondKernelCDFAux.mono + theorem ProbabilityTheory.IsRatCondKernelCDFAux.nonneg + theorem ProbabilityTheory.IsRatCondKernelCDFAux.set_integral_iInf_rat_gt + theorem ProbabilityTheory.IsRatCondKernelCDFAux.tendsto_atBot_zero + theorem ProbabilityTheory.IsRatCondKernelCDFAux.tendsto_atTop_one + theorem ProbabilityTheory.IsRatCondKernelCDFAux.tendsto_one_of_monotone + theorem ProbabilityTheory.IsRatCondKernelCDFAux.tendsto_zero_of_antitone + structure ProbabilityTheory.IsRatCondKernelCDFAux - theorem ProbabilityTheory.isRatCondKernelCDFAux.bddBelow_range - theorem ProbabilityTheory.isRatCondKernelCDFAux.iInf_rat_gt_eq - theorem ProbabilityTheory.isRatCondKernelCDFAux.integrable_iInf_rat_gt - theorem ProbabilityTheory.isRatCondKernelCDFAux.isRatCondKernelCDF - theorem ProbabilityTheory.isRatCondKernelCDFAux.isRatStieltjesPoint_ae - theorem ProbabilityTheory.isRatCondKernelCDFAux.le_one - theorem ProbabilityTheory.isRatCondKernelCDFAux.measurable_right - theorem ProbabilityTheory.isRatCondKernelCDFAux.mono - theorem ProbabilityTheory.isRatCondKernelCDFAux.nonneg - theorem ProbabilityTheory.isRatCondKernelCDFAux.set_integral_iInf_rat_gt - theorem ProbabilityTheory.isRatCondKernelCDFAux.tendsto_atBot_zero - theorem ProbabilityTheory.isRatCondKernelCDFAux.tendsto_atTop_one - theorem ProbabilityTheory.isRatCondKernelCDFAux.tendsto_one_of_monotone - theorem ProbabilityTheory.isRatCondKernelCDFAux.tendsto_zero_of_antitone - structure ProbabilityTheory.isRatCondKernelCDFAux Added Mathlib/Probability/Kernel/Disintegration/CondCdf.lean + theorem MeasureTheory.Measure.IicSnd_ac_fst + theorem MeasureTheory.Measure.IicSnd_apply + theorem MeasureTheory.Measure.IicSnd_le_fst + theorem MeasureTheory.Measure.IicSnd_mono + theorem MeasureTheory.Measure.IicSnd_univ + theorem MeasureTheory.Measure.IsFiniteMeasure.IicSnd + theorem MeasureTheory.Measure.iInf_IicSnd_gt + theorem MeasureTheory.Measure.tendsto_IicSnd_atBot + theorem MeasureTheory.Measure.tendsto_IicSnd_atTop + theorem ProbabilityTheory.condCDF_ae_eq + theorem ProbabilityTheory.condCDF_eq_stieltjesOfMeasurableRat_unit_prod + theorem ProbabilityTheory.condCDF_le_one + theorem ProbabilityTheory.condCDF_nonneg + theorem ProbabilityTheory.integrable_condCDF + theorem ProbabilityTheory.integrable_preCDF + theorem ProbabilityTheory.integral_condCDF + theorem ProbabilityTheory.integral_preCDF_fst + theorem ProbabilityTheory.isCondKernelCDF_condCDF + theorem ProbabilityTheory.isRatCondKernelCDFAux_preCDF + theorem ProbabilityTheory.isRatCondKernelCDF_preCDF + theorem ProbabilityTheory.lintegral_condCDF + theorem ProbabilityTheory.lintegral_preCDF_fst + theorem ProbabilityTheory.measurable_condCDF + theorem ProbabilityTheory.measurable_measure_condCDF + theorem ProbabilityTheory.measurable_preCDF' + theorem ProbabilityTheory.measurable_preCDF + theorem ProbabilityTheory.measure_condCDF_Iic + theorem ProbabilityTheory.measure_condCDF_univ + theorem ProbabilityTheory.monotone_preCDF + theorem ProbabilityTheory.ofReal_condCDF_ae_eq + theorem ProbabilityTheory.preCDF_le_one + theorem ProbabilityTheory.set_integral_condCDF + theorem ProbabilityTheory.set_integral_preCDF_fst + theorem ProbabilityTheory.set_lintegral_condCDF + theorem ProbabilityTheory.set_lintegral_preCDF_fst + theorem ProbabilityTheory.stronglyMeasurable_condCDF + theorem ProbabilityTheory.tendsto_condCDF_atBot + theorem ProbabilityTheory.tendsto_condCDF_atTop + theorem ProbabilityTheory.withDensity_preCDF 2024-03-27 13:47:10 59a00af chore(Probability/Kernel/CondCdf): cleanup (#10635) - [x] depends on: #10298 ESTIMATED CHANGES Modified Mathlib/Data/Real/Archimedean.lean + theorem Real.iInter_Iic_rat + theorem Real.iUnion_Iic_rat + theorem Real.not_bddAbove_coe + theorem Real.not_bddBelow_coe Modified Mathlib/Probability/Kernel/CondCdf.lean - theorem Real.iInter_Iic_rat - theorem Real.iUnion_Iic_rat 2024-03-27 12:36:45 3713a3f chore(Data/List): Use Std lemmas (#11711) Make use of `Nat`-specific lemmas from Std rather than the general ones provided by mathlib. Also reverse the dependency between `Multiset.Nodup`/`Multiset.dedup` and `Multiset.sum` since only the latter needs algebra. Also rename `Algebra.BigOperators.Multiset.Abs` to `Algebra.BigOperators.Multiset.Order` and move some lemmas from `Algebra.BigOperators.Multiset.Basic` to it. The ultimate goal here is to carve out `Data`, `Algebra` and `Order` sublibraries. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/BigOperators/Basic.lean Deleted Mathlib/Algebra/BigOperators/Multiset/Abs.lean - theorem Multiset.abs_sum_le_sum_abs Modified Mathlib/Algebra/BigOperators/Multiset/Basic.lean - theorem Multiset.all_one_of_le_one_le_of_prod_eq_one - theorem Multiset.dvd_sum - theorem Multiset.le_prod_nonempty_of_submultiplicative - theorem Multiset.le_prod_nonempty_of_submultiplicative_on_pred - theorem Multiset.le_prod_of_mem - theorem Multiset.le_prod_of_submultiplicative - theorem Multiset.le_prod_of_submultiplicative_on_pred - theorem Multiset.one_le_prod_of_one_le - theorem Multiset.pow_card_le_prod +/- theorem Multiset.prod_eq_one - theorem Multiset.prod_eq_zero - theorem Multiset.prod_eq_zero_iff - theorem Multiset.prod_le_pow_card - theorem Multiset.prod_le_prod_map - theorem Multiset.prod_le_prod_of_rel_le - theorem Multiset.prod_lt_prod' - theorem Multiset.prod_lt_prod_of_nonempty' - theorem Multiset.prod_map_le_prod - theorem Multiset.prod_map_le_prod_map - theorem Multiset.prod_map_neg - theorem Multiset.prod_ne_zero - theorem Multiset.prod_nonneg - theorem Multiset.single_le_prod Modified Mathlib/Algebra/BigOperators/Multiset/Lemmas.lean +/- theorem Multiset.dvd_prod + theorem Multiset.dvd_sum + theorem Multiset.prod_eq_zero + theorem Multiset.prod_eq_zero_iff + theorem Multiset.prod_map_neg + theorem Multiset.prod_ne_zero Added Mathlib/Algebra/BigOperators/Multiset/Order.lean + theorem Multiset.abs_sum_le_sum_abs + theorem Multiset.all_one_of_le_one_le_of_prod_eq_one + theorem Multiset.le_prod_nonempty_of_submultiplicative + theorem Multiset.le_prod_nonempty_of_submultiplicative_on_pred + theorem Multiset.le_prod_of_mem + theorem Multiset.le_prod_of_submultiplicative + theorem Multiset.le_prod_of_submultiplicative_on_pred + theorem Multiset.one_le_prod_of_one_le + theorem Multiset.pow_card_le_prod + theorem Multiset.prod_le_pow_card + theorem Multiset.prod_le_prod_map + theorem Multiset.prod_le_prod_of_rel_le + theorem Multiset.prod_lt_prod' + theorem Multiset.prod_lt_prod_of_nonempty' + theorem Multiset.prod_map_le_prod + theorem Multiset.prod_map_le_prod_map + theorem Multiset.prod_nonneg + theorem Multiset.single_le_prod Modified Mathlib/Algebra/ContinuedFractions/TerminatedStable.lean Modified Mathlib/Algebra/Free.lean Modified Mathlib/Data/Bool/AllAny.lean Modified Mathlib/Data/Finset/Basic.lean Modified Mathlib/Data/Finset/NAry.lean Modified Mathlib/Data/Fintype/Basic.lean Modified Mathlib/Data/List/Basic.lean Modified Mathlib/Data/List/Infix.lean Modified Mathlib/Data/List/Lattice.lean Modified Mathlib/Data/Multiset/Bind.lean + theorem Multiset.dedup_bind_dedup +/- theorem Multiset.mem_product +/- theorem Multiset.mem_sigma + theorem Multiset.nodup_bind Modified Mathlib/Data/Multiset/Dedup.lean - theorem Multiset.dedup_bind_dedup Modified Mathlib/Data/Multiset/Fold.lean Modified Mathlib/Data/Multiset/Nodup.lean - theorem Multiset.nodup_bind Modified Mathlib/Data/Multiset/Pi.lean Modified Mathlib/Data/Multiset/Powerset.lean Modified Mathlib/Data/Nat/Defs.lean Modified Mathlib/Data/Seq/Seq.lean Modified Mathlib/Data/Seq/WSeq.lean Modified Mathlib/Data/Stream/Init.lean 2024-03-27 11:32:27 48efc23 chore(Data/Nat/Factorial): Use Std lemmas (#11715) Make use of `Nat`-specific lemmas from Std rather than the general ones provided by mathlib. The ultimate goal here is to carve out `Data`, `Algebra` and `Order` sublibraries. ESTIMATED CHANGES Modified Archive/Imo/Imo2019Q4.lean Modified Mathlib/Analysis/SpecificLimits/Basic.lean Modified Mathlib/Data/Nat/Choose/Basic.lean +/- theorem Nat.choose_eq_descFactorial_div_factorial +/- theorem Nat.choose_one_right Modified Mathlib/Data/Nat/Defs.lean Modified Mathlib/Data/Nat/Factorial/Basic.lean +/- theorem Nat.ascFactorial_eq_div - theorem Nat.monotone_factorial Modified Mathlib/Data/Nat/Factorial/BigOperators.lean + theorem Nat.monotone_factorial 2024-03-27 11:32:26 85b063b feat(DedekindDomain.Ideal): remove Domain assumption from DedekindDomain (#11527) Probably because in `mathlib4` the definition `IsDedekindDomain` *extends* `Domain`, and this was not the case in `mathlib3`, there are unused hypothesis of the form ```lean variable [IsDomain R] [IsDedekindDomain R] ``` and this PR removes the first one, that can be inferred by the second, both in variable declarations and in theorem/definition assumptions. A regex search has been performed on the library to search for all occurrences and none is left. ESTIMATED CHANGES Modified Mathlib/NumberTheory/KummerDedekind.lean Modified Mathlib/NumberTheory/RamificationInertia.lean +/- theorem Ideal.FinrankQuotientMap.linearIndependent_of_nontrivial +/- theorem Ideal.finrank_prime_pow_ramificationIdx +/- theorem Ideal.finrank_quotient_map +/- theorem Ideal.quotientToQuotientRangePowQuotSucc_injective +/- theorem Ideal.quotientToQuotientRangePowQuotSucc_surjective +/- theorem Ideal.rank_pow_quot +/- theorem Ideal.rank_pow_quot_aux +/- theorem Ideal.rank_prime_pow_ramificationIdx +/- theorem Ideal.sum_ramification_inertia Modified Mathlib/RingTheory/DedekindDomain/AdicValuation.lean Modified Mathlib/RingTheory/DedekindDomain/Factorization.lean Modified Mathlib/RingTheory/DedekindDomain/FiniteAdeleRing.lean Modified Mathlib/RingTheory/DedekindDomain/Ideal.lean - theorem FractionalIdeal.one_mem_inv_coe_ideal +/- theorem isDedekindDomain_iff_isDedekindDomainInv + theorem one_mem_inv_coe_ideal Modified Mathlib/RingTheory/DedekindDomain/PID.lean +/- theorem IsDedekindDomain.isPrincipalIdealRing_localization_over_prime +/- theorem IsLocalization.OverPrime.mem_normalizedFactors_of_isPrime +/- theorem IsPrincipalIdealRing.of_finite_primes Modified Mathlib/RingTheory/DedekindDomain/SInteger.lean Modified Mathlib/RingTheory/DedekindDomain/SelmerGroup.lean 2024-03-27 10:32:31 6b82a47 feat: add a `MulDistribMulAction` instance for `DomMulAct` (#11345) [Zulip thread](https://leanprover.zulipchat.com/#narrow/stream/217875-Is-there-code-for-X.3F/topic/.E2.9C.94.20the.20permutation.20on.20indexed.20product.20group/near/426212874) ESTIMATED CHANGES Modified Mathlib/GroupTheory/GroupAction/DomAct/Basic.lean 2024-03-27 09:30:56 137f088 refactor(Algebra/GroupPower/IterateHom): Use `HomClass` to generalize `map_iterate` statements (#11266) This PR uses the `HomClass` architecture to generalize the `map_iterate` statements in `Algebra/GroupPower/IterateHom.lean`. ESTIMATED CHANGES Modified Mathlib/Algebra/CharP/ExpChar.lean Modified Mathlib/Algebra/GroupPower/IterateHom.lean - theorem AddMonoidHom.iterate_map_smul - theorem AddMonoidHom.iterate_map_zsmul - theorem MonoidHom.iterate_map_div - theorem MonoidHom.iterate_map_inv - theorem MonoidHom.iterate_map_one - theorem MonoidHom.iterate_map_pow - theorem MonoidHom.iterate_map_zpow - theorem RingHom.iterate_map_neg - theorem RingHom.iterate_map_one - theorem RingHom.iterate_map_pow - theorem RingHom.iterate_map_smul - theorem RingHom.iterate_map_sub - theorem RingHom.iterate_map_zero - theorem RingHom.iterate_map_zsmul + theorem iterate_map_div + theorem iterate_map_inv +/- theorem iterate_map_mul + theorem iterate_map_one + theorem iterate_map_pow + theorem iterate_map_zpow Modified Mathlib/Analysis/InnerProductSpace/MeanErgodic.lean Modified Mathlib/Data/Polynomial/Derivative.lean +/- theorem Polynomial.iterate_derivative_zero Modified Mathlib/FieldTheory/PerfectClosure.lean Modified Mathlib/RingTheory/Perfection.lean 2024-03-26 23:09:39 5bc68d9 chore(Data/Nat): Use Std lemmas (#11661) Move basic `Nat` lemmas from `Data.Nat.Order.Basic` and `Data.Nat.Pow` to `Data.Nat.Defs`. Most proofs need adapting, but that's easily solved by replacing the general mathlib lemmas by the new Std `Nat`-specific lemmas and using `omega`. ## Other changes * Move the last few lemmas left in `Data.Nat.Pow` to `Algebra.GroupPower.Order` * Move the deprecated aliases from `Data.Nat.Pow` to `Algebra.GroupPower.Order` * Move the `bit`/`bit0`/`bit1` lemmas from `Data.Nat.Order.Basic` to `Data.Nat.Bits` * Fix some fallout from not importing `Data.Nat.Order.Basic` anymore * Add a few `Nat`-specific lemmas to help fix the fallout (look for `nolint simpNF`) * Turn `Nat.mul_self_le_mul_self_iff` and `Nat.mul_self_lt_mul_self_iff` around (they were misnamed) * Make more arguments to `Nat.one_lt_pow` implicit ESTIMATED CHANGES Modified Archive/Imo/Imo2008Q3.lean Modified Archive/MiuLanguage/DecisionSuf.lean Modified Mathlib.lean Modified Mathlib/Algebra/BigOperators/Multiset/Basic.lean Modified Mathlib/Algebra/ContinuedFractions/TerminatedStable.lean Modified Mathlib/Algebra/EuclideanDomain/Instances.lean Modified Mathlib/Algebra/GroupPower/Order.lean + theorem StrictMono.nat_pow Modified Mathlib/Algebra/GroupPower/Ring.lean Modified Mathlib/Algebra/Order/Floor/Div.lean Modified Mathlib/Combinatorics/Additive/SalemSpencer.lean Modified Mathlib/Computability/Ackermann.lean Modified Mathlib/Data/BitVec/Defs.lean Modified Mathlib/Data/Fintype/Basic.lean Modified Mathlib/Data/Int/Bitwise.lean Modified Mathlib/Data/Int/Dvd/Pow.lean Modified Mathlib/Data/Int/Order/Lemmas.lean Modified Mathlib/Data/List/Perm.lean Modified Mathlib/Data/Nat/Basic.lean Modified Mathlib/Data/Nat/Bits.lean + theorem Nat.bit0_le_bit1_iff + theorem Nat.bit0_le_bit + theorem Nat.bit0_lt_bit1_iff + theorem Nat.bit1_le_bit0_iff + theorem Nat.bit1_lt_bit0_iff + theorem Nat.bit_le + theorem Nat.bit_le_bit1 + theorem Nat.bit_lt_bit0 + theorem Nat.bit_lt_bit Modified Mathlib/Data/Nat/Bitwise.lean Modified Mathlib/Data/Nat/Choose/Basic.lean Modified Mathlib/Data/Nat/Defs.lean + theorem Nat.add_eq_max_iff + theorem Nat.add_eq_min_iff + theorem Nat.add_eq_one_iff + theorem Nat.add_eq_three_iff + theorem Nat.add_eq_two_iff + theorem Nat.add_mod_eq_ite + theorem Nat.add_pos_iff_pos_or_pos + theorem Nat.add_sub_one_le_mul + theorem Nat.add_succ_lt_add + theorem Nat.diag_induction + theorem Nat.div_dvd_of_dvd + theorem Nat.div_eq_self + theorem Nat.div_eq_sub_mod_div + theorem Nat.div_mul_div_le_div + theorem Nat.dvd_sub_mod + theorem Nat.eq_one_of_mul_eq_one_left + theorem Nat.eq_one_of_mul_eq_one_right + theorem Nat.eq_zero_of_double_le + theorem Nat.eq_zero_of_le_div + theorem Nat.eq_zero_of_le_half + theorem Nat.eq_zero_of_mul_le + theorem Nat.findGreatest_eq_iff + theorem Nat.findGreatest_eq_zero_iff + theorem Nat.findGreatest_is_greatest + theorem Nat.findGreatest_le + theorem Nat.findGreatest_mono + theorem Nat.findGreatest_mono_left + theorem Nat.findGreatest_mono_right + theorem Nat.findGreatest_of_ne_zero + theorem Nat.findGreatest_pos + theorem Nat.findGreatest_spec + theorem Nat.find_add + theorem Nat.find_pos + theorem Nat.half_le_of_sub_le_half + theorem Nat.le_add_one_iff + theorem Nat.le_add_pred_of_pos + theorem Nat.le_and_le_add_one_iff + theorem Nat.le_findGreatest + theorem Nat.le_half_of_half_lt_sub + theorem Nat.le_mul_self + theorem Nat.le_or_le_of_add_eq_add_pred + theorem Nat.le_self_pow + theorem Nat.lt_mul_self_iff + theorem Nat.lt_of_lt_pred + theorem Nat.lt_of_pow_dvd_right + theorem Nat.lt_one_iff + theorem Nat.lt_pow_self + theorem Nat.lt_pred_iff + theorem Nat.lt_two_pow + theorem Nat.max_eq_zero_iff + theorem Nat.min_eq_zero_iff + theorem Nat.mod_mul_mod + theorem Nat.mul_div_mul_comm_of_dvd_dvd + theorem Nat.mul_lt_mul'' + theorem Nat.mul_lt_mul_pow_succ + theorem Nat.mul_mod_mod + theorem Nat.mul_self_inj + theorem Nat.mul_self_le_mul_self + theorem Nat.mul_self_le_mul_self_iff + theorem Nat.mul_self_lt_mul_self + theorem Nat.mul_self_lt_mul_self_iff + theorem Nat.not_dvd_of_between_consec_multiples + theorem Nat.not_dvd_of_pos_of_lt + theorem Nat.not_pos_pow_dvd + theorem Nat.one_le_of_lt + theorem Nat.one_le_pow' + theorem Nat.one_le_pow + theorem Nat.one_lt_pow' + theorem Nat.one_lt_pow + theorem Nat.one_lt_pow_iff + theorem Nat.one_lt_two_pow' + theorem Nat.one_mod + theorem Nat.one_mod_of_ne_one + theorem Nat.pow_left_injective + theorem Nat.pow_mod + theorem Nat.pred_le_iff + theorem Nat.set_induction + theorem Nat.set_induction_bounded + theorem Nat.sq_sub_sq + theorem Nat.sub_mod_eq_zero_of_mod_eq + theorem Nat.sub_succ' + theorem Nat.succ_mul_pos + theorem Nat.two_le_iff + theorem Nat.two_mul_odd_div_two + theorem Nat.two_pow_succ Modified Mathlib/Data/Nat/Factorial/Basic.lean +/- theorem Nat.one_lt_factorial Modified Mathlib/Data/Nat/Log.lean +/- theorem Nat.clog_zero_left +/- theorem Nat.clog_zero_right +/- theorem Nat.log_zero_left Modified Mathlib/Data/Nat/Order/Basic.lean - theorem Nat.add_eq_max_iff - theorem Nat.add_eq_min_iff - theorem Nat.add_eq_one_iff - theorem Nat.add_eq_three_iff - theorem Nat.add_eq_two_iff - theorem Nat.add_mod_eq_ite - theorem Nat.add_pos_iff_pos_or_pos - theorem Nat.add_sub_one_le_mul - theorem Nat.add_succ_lt_add - theorem Nat.bit0_le_bit1_iff - theorem Nat.bit0_le_bit - theorem Nat.bit0_lt_bit1_iff - theorem Nat.bit1_le_bit0_iff - theorem Nat.bit1_lt_bit0_iff - theorem Nat.bit_le - theorem Nat.bit_le_bit1 - theorem Nat.bit_lt_bit0 - theorem Nat.bit_lt_bit - theorem Nat.diag_induction - theorem Nat.div_dvd_of_dvd - theorem Nat.div_eq_self - theorem Nat.div_eq_sub_mod_div - theorem Nat.div_mul_div_le_div - theorem Nat.dvd_sub_mod - theorem Nat.eq_one_of_mul_eq_one_left - theorem Nat.eq_one_of_mul_eq_one_right - theorem Nat.eq_zero_of_double_le - theorem Nat.eq_zero_of_le_div - theorem Nat.eq_zero_of_le_half - theorem Nat.eq_zero_of_mul_le - theorem Nat.findGreatest_eq_iff - theorem Nat.findGreatest_eq_zero_iff - theorem Nat.findGreatest_is_greatest - theorem Nat.findGreatest_le - theorem Nat.findGreatest_mono - theorem Nat.findGreatest_mono_left - theorem Nat.findGreatest_mono_right - theorem Nat.findGreatest_of_ne_zero - theorem Nat.findGreatest_pos - theorem Nat.findGreatest_spec - theorem Nat.find_add - theorem Nat.find_pos - theorem Nat.half_le_of_sub_le_half - theorem Nat.le_add_one_iff - theorem Nat.le_add_pred_of_pos - theorem Nat.le_and_le_add_one_iff - theorem Nat.le_findGreatest - theorem Nat.le_half_of_half_lt_sub - theorem Nat.le_mul_self - theorem Nat.le_or_le_of_add_eq_add_pred - theorem Nat.lt_mul_self_iff - theorem Nat.lt_of_lt_pred - theorem Nat.lt_one_iff - theorem Nat.lt_pred_iff - theorem Nat.max_eq_zero_iff - theorem Nat.min_eq_zero_iff - theorem Nat.mul_div_mul_comm_of_dvd_dvd - theorem Nat.mul_self_inj - theorem Nat.mul_self_le_mul_self - theorem Nat.mul_self_le_mul_self_iff - theorem Nat.mul_self_lt_mul_self - theorem Nat.mul_self_lt_mul_self_iff - theorem Nat.not_dvd_of_between_consec_multiples - theorem Nat.not_dvd_of_pos_of_lt - theorem Nat.one_le_of_lt - theorem Nat.one_mod - theorem Nat.one_mod_of_ne_one - theorem Nat.pred_le_iff - theorem Nat.set_induction - theorem Nat.set_induction_bounded - theorem Nat.sub_mod_eq_zero_of_mod_eq - theorem Nat.sub_succ' - theorem Nat.succ_mul_pos - theorem Nat.two_le_iff - theorem Nat.two_mul_odd_div_two +/- theorem NeZero.one_le Deleted Mathlib/Data/Nat/Pow.lean - theorem Nat.le_self_pow - theorem Nat.lt_of_pow_dvd_right - theorem Nat.lt_pow_self - theorem Nat.lt_two_pow - theorem Nat.mul_lt_mul_pow_succ - theorem Nat.not_pos_pow_dvd - theorem Nat.one_le_pow' - theorem Nat.one_le_pow - theorem Nat.one_lt_pow' - theorem Nat.one_lt_pow - theorem Nat.one_lt_pow_iff - theorem Nat.one_lt_two_pow' - theorem Nat.pow_left_injective - theorem Nat.pow_mod - theorem Nat.sq_sub_sq - theorem Nat.two_pow_succ - theorem StrictMono.nat_pow Modified Mathlib/Data/Nat/Size.lean Modified Mathlib/Data/Nat/Sqrt.lean Modified Mathlib/Data/Nat/Squarefree.lean Modified Mathlib/FieldTheory/Finite/Basic.lean Modified Mathlib/NumberTheory/FLT/Four.lean Modified Mathlib/NumberTheory/FermatPsp.lean Modified Mathlib/NumberTheory/Padics/PadicVal.lean Modified Mathlib/NumberTheory/Padics/RingHoms.lean Modified Mathlib/NumberTheory/PellMatiyasevic.lean Modified Mathlib/NumberTheory/Zsqrtd/Basic.lean Modified Mathlib/RingTheory/Multiplicity.lean Modified Mathlib/Tactic/Positivity/Basic.lean Modified scripts/noshake.json 2024-03-26 22:45:57 7151d90 style: add missing spaces between a tactic name and its arguments (#11714) After the `(d)simp` and `rw` tactics - hints to find further occurrences welcome. [zulip discussion](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/Style.3A.20spacing.20between.20tactic.20name.20and.20arguments) ESTIMATED CHANGES Modified Mathlib/Algebra/Associated.lean Modified Mathlib/Algebra/GradedMonoid.lean Modified Mathlib/Algebra/Parity.lean Modified Mathlib/AlgebraicGeometry/Restrict.lean Modified Mathlib/Analysis/Calculus/FDeriv/Prod.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Equalizers.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Images.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Kernels.lean Modified Mathlib/CategoryTheory/Limits/Shapes/ZeroMorphisms.lean Modified Mathlib/Control/Functor/Multivariate.lean Modified Mathlib/Data/List/Infix.lean Modified Mathlib/Data/Nat/Digits.lean Modified Mathlib/Data/Vector/MapLemmas.lean Modified Mathlib/Data/Vector/Snoc.lean Modified Mathlib/GroupTheory/MonoidLocalization.lean Modified Mathlib/Logic/Embedding/Basic.lean Modified Mathlib/MeasureTheory/MeasurableSpace/CountablyGenerated.lean Modified test/fun_prop_dev.lean 2024-03-26 18:12:24 eaede86 feat(Algebra/Divisibility): generalise `mul_dvd_mul_left` to `Monoid` (#11695) `mul_dvd_mul_left` was implemented for `CommMonoid`. We have generalised it to `Monoid`. ESTIMATED CHANGES Modified Mathlib/Algebra/Divisibility/Basic.lean +/- theorem mul_dvd_mul_left +/- theorem pow_dvd_pow_of_dvd 2024-03-26 16:49:33 6983af4 chore(CategoryTheory): add some trivial API lemmas for `Zag` and `Zigzag` (#11696) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/IsConnected.lean + theorem CategoryTheory.Zag.of_hom + theorem CategoryTheory.Zag.of_inv + theorem CategoryTheory.Zag.refl + theorem CategoryTheory.Zag.symm + theorem CategoryTheory.Zigzag.of_hom + theorem CategoryTheory.Zigzag.of_hom_hom + theorem CategoryTheory.Zigzag.of_hom_inv + theorem CategoryTheory.Zigzag.of_inv + theorem CategoryTheory.Zigzag.of_inv_hom + theorem CategoryTheory.Zigzag.of_inv_inv + theorem CategoryTheory.Zigzag.of_zag + theorem CategoryTheory.Zigzag.of_zag_trans + theorem CategoryTheory.Zigzag.trans 2024-03-26 15:23:53 a492beb feat(Combinatorics/SimpleGraph): Cycles length is at least 3 (#11693) Check [this](https://leanprover.zulipchat.com/#narrow/stream/252551-graph-theory/topic/.E2.9C.94.20Cycles.20lengths.20is.20at.20least.203) conversation on zulip. ESTIMATED CHANGES Modified Mathlib/Combinatorics/SimpleGraph/Connectivity.lean + theorem SimpleGraph.Walk.IsCycle.three_le_length 2024-03-26 15:23:51 84843a2 fix: use username to label new contributors (#11690) [Zulip message](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/.60new-contributor.60.20labelling.20workflow.20broken.3F/near/429629879) ESTIMATED CHANGES Modified .github/workflows/label_new_contributor.yml 2024-03-26 15:23:50 588c277 perf(Group.Units): factor out data fields (#11332) We factor out data fields to avoid unecessary unfolding. ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Units.lean 2024-03-26 15:23:49 7866069 feat(Data/Set/Intervals/Disjoint): i[Inter|Union]_Ii[c|o]... (#10298) ESTIMATED CHANGES Modified Mathlib/Data/Set/Intervals/Disjoint.lean + theorem iInter_Iic_eq_empty_iff + theorem iInter_Iio_of_not_bddBelow_range + theorem iUnion_Iic_of_not_bddAbove_range + theorem iUnion_Iio_eq_univ_iff 2024-03-26 14:16:09 c9c8738 chore(Data/List/Join): Delete deprecated lemmas (#11665) These two lemmas have been deprecated for more than a year and are on my way for #11633. ESTIMATED CHANGES Modified Mathlib/Data/List/Join.lean - theorem List.nthLe_join - theorem List.sum_take_map_length_lt2 2024-03-26 14:16:08 5cc0a41 chore(List/ReduceOption): move from Basic.lean (#11662) Also rename `List.IsPrefix.filter_map` to `List.IsPrefix.filterMap` and protect some theorems in the `List.IsPrefix` namespace. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Data/List/Basic.lean - theorem List.reduceOption_append - theorem List.reduceOption_concat - theorem List.reduceOption_concat_of_some - theorem List.reduceOption_cons_of_none - theorem List.reduceOption_cons_of_some - theorem List.reduceOption_get?_iff - theorem List.reduceOption_length_eq_iff - theorem List.reduceOption_length_le - theorem List.reduceOption_length_lt_iff - theorem List.reduceOption_map - theorem List.reduceOption_mem_iff - theorem List.reduceOption_nil - theorem List.reduceOption_singleton Modified Mathlib/Data/List/Infix.lean - theorem List.IsPrefix.filter_map - theorem List.IsPrefix.map - theorem List.IsPrefix.reduceOption Added Mathlib/Data/List/ReduceOption.lean + theorem List.reduceOption_append + theorem List.reduceOption_concat + theorem List.reduceOption_concat_of_some + theorem List.reduceOption_cons_of_none + theorem List.reduceOption_cons_of_some + theorem List.reduceOption_get?_iff + theorem List.reduceOption_length_eq_iff + theorem List.reduceOption_length_le + theorem List.reduceOption_length_lt_iff + theorem List.reduceOption_map + theorem List.reduceOption_mem_iff + theorem List.reduceOption_nil + theorem List.reduceOption_singleton 2024-03-26 14:16:07 d298fc0 chore: remove unnecessary Finset qualifications (#11659) ESTIMATED CHANGES Modified Mathlib/RingTheory/MvPolynomial/Symmetric.lean +/- theorem MvPolynomial.esymm_eq_multiset_esymm 2024-03-26 14:16:06 9d4c1bc chore(List): deprecate `List.ret` (#11651) Use `List.pure` from Lean core instead. ESTIMATED CHANGES Modified Mathlib/Computability/Encoding.lean +/- theorem Computability.decode_encodeBool +/- def Computability.encodeBool Modified Mathlib/Data/List/Basic.lean + theorem List.bind_pure_eq_map +/- theorem List.bind_ret_eq_map +/- theorem List.mem_pure Modified Mathlib/Data/List/Sublists.lean + theorem List.map_pure_sublist_sublists +/- theorem List.map_ret_sublist_sublists Modified Mathlib/Data/Multiset/Powerset.lean Modified Mathlib/Init/Data/List/Basic.lean Modified Mathlib/Init/Data/List/Instances.lean + theorem List.pure_def 2024-03-26 13:32:22 4de5add feat(CategoryTheory/Sites): a functor into a precoherent category satisfying `Functor.EffectivelyEnough` is cover dense (#11686) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Sites/Coherent/CoverDense.lean Modified Mathlib/CategoryTheory/Sites/DenseSubsite.lean + theorem CategoryTheory.Functor.isCoverDense_of_generate_singleton_functor_π_mem 2024-03-26 13:32:21 04a0187 perf(Topology.Algebra.Module): factor out `smul` (#11331) We want to avoid making Lean unfold `smul` during unification. A separate instance does helps at the cost of some elaboration failures. ESTIMATED CHANGES Modified Mathlib/Analysis/Fourier/FourierTransformDeriv.lean Modified Mathlib/Analysis/NormedSpace/ContinuousAffineMap.lean Modified Mathlib/Analysis/NormedSpace/HahnBanach/Extension.lean Modified Mathlib/Analysis/NormedSpace/OperatorNorm/Basic.lean Modified Mathlib/Analysis/SpecialFunctions/PolarCoord.lean Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Deriv.lean Modified Mathlib/MeasureTheory/Integral/Bochner.lean Modified Mathlib/Topology/Algebra/Module/Basic.lean 2024-03-26 12:38:36 98b2339 chore(List/Basic): golf `disjoint_{p,}map` (#11680) Golf `List.disjoint_map` and `List.disjoint_pmap` ESTIMATED CHANGES Modified Mathlib/Data/List/Basic.lean 2024-03-26 11:50:13 d587641 chore: remove duplicates of `IsLimit.op` and variants (#11683) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Limits/Opposites.lean - def CategoryTheory.Limits.isColimitConeOp - def CategoryTheory.Limits.isColimitConeUnop - def CategoryTheory.Limits.isLimitCoconeOp - def CategoryTheory.Limits.isLimitCoconeUnop Modified Mathlib/CategoryTheory/Limits/Preserves/Opposites.lean 2024-03-26 09:53:40 3fea5dc chore: fix two porting notes (#11682) Fix two porting notes (one that should have been a porting note!) while looking at `on_goals`. ESTIMATED CHANGES Modified Mathlib/Analysis/Analytic/Constructions.lean Modified Mathlib/Data/Nat/Bitwise.lean 2024-03-26 09:53:39 1b735be chore: remove superfluous uses of triv (#11679) Std defines `triv`, a slight variation on `trivial`. It appears that Mathlib doesn't care about the distinction (any more?) and so we can consolidate on a single tactic. https://github.com/leanprover/std4/pull/712 separately replaces `triv` in Std with an error explaining to use `trivial`. ESTIMATED CHANGES Modified Mathlib/AlgebraicGeometry/OpenImmersion.lean Modified Mathlib/Analysis/LocallyConvex/ContinuousOfBounded.lean Modified Mathlib/Data/List/Cycle.lean Modified Mathlib/Data/Set/Lattice.lean Modified Mathlib/Topology/LocalAtTarget.lean Deleted test/triv.lean 2024-03-26 09:53:38 470d773 doc: port algebra library notes (#10970) These were lost in the port because they were in the file [`tactic/lint/type_classes.lean`](https://github.com/leanprover-community/mathlib/blob/master/src/tactic/lint/type_classes.lean#L68-L96), which is an unported linter. ESTIMATED CHANGES Modified Mathlib/Algebra/HierarchyDesign.lean 2024-03-26 09:53:37 30850db feat: `Pairwise` and composition with an equiv (#10706) Add a lemma about `Pairwise` being preserved by composing the arguments of the pairwise relation with an equiv. ```lean lemma EquivLike.pairwise_comp_iff {X : Type*} {Y : Type*} {F} [EquivLike F Y X] (f : F) (p : X → X → Prop) : Pairwise (fun y z ↦ p (f y) (f z)) ↔ Pairwise p := by ``` This depends on `Mathlib.Data.FunLike.Equiv` and `Mathlib.Logic.Pairwise`, neither of which imports the other, so to avoid increasing the imports of very basic files I put it in its own new file, but feel free to suggest a better location of this lemma (and to golf the proof). From AperiodicMonotilesLean. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Logic/Equiv/Pairwise.lean + theorem EmbeddingLike.pairwise_comp + theorem EquivLike.pairwise_comp_iff Modified Mathlib/Logic/Pairwise.lean + theorem Function.Bijective.pairwise_comp_iff + theorem Pairwise.comp_of_injective + theorem Pairwise.of_comp_of_surjective 2024-03-26 08:53:43 f5373ee chore: handle comment nesting in `lint-style.py` (#10994) This PR adjusts `annotate_comments` to respect comment nesting while linting. Note that `annotate_strings` does not necessarily respect comment nesting, so this is an improvement, not a full fix. (Likewise, `annotate_comments` (still) doesn't ignore comment markers in strings.) See [Zulip](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/False.20positive.20on.20.60.E2.86.90.60.20style.20linter). ESTIMATED CHANGES Modified Mathlib/GroupTheory/Subgroup/Basic.lean Modified scripts/lint-style.py 2024-03-26 07:43:39 92c745e chore: don't use classical! when classical suffices (#11681) (In fact, this is every use of `classical!` in Mathlib.) ESTIMATED CHANGES Modified Mathlib/Analysis/InnerProductSpace/Basic.lean Modified Mathlib/Data/DFinsupp/Basic.lean Modified Mathlib/Data/Set/Pointwise/Finite.lean Modified Mathlib/GroupTheory/OrderOfElement.lean 2024-03-26 07:43:38 f88c585 feat(Algebra/GroupWithZero): add `dvd_of_mul_dvd_mul` (#11677) `dvd_of_mul_dvd_mul_left` and `dvd_of_mul_dvd_mul_right` were implemented only for `Nat` and `Int`. We've generalised it for `CancelCommMonoidWithZero`. ESTIMATED CHANGES Modified Mathlib/Algebra/GroupWithZero/Divisibility.lean + theorem dvd_of_mul_dvd_mul_left + theorem dvd_of_mul_dvd_mul_right 2024-03-26 07:43:37 dca027f feat(CategoryTheory/GradedObject): the right unitor (#11676) This PR defines a right unitor isomorphism for graded objects. The code is completely parallel to PR #10701. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/GradedObject/Unitor.lean + theorem CategoryTheory.GradedObject.mapBifunctorRightUnitorCofan_inj + theorem CategoryTheory.GradedObject.mapBifunctorRightUnitor_hasMap + theorem CategoryTheory.GradedObject.mapBifunctorRightUnitor_inv_apply + theorem CategoryTheory.GradedObject.mapBifunctorRightUnitor_inv_naturality + theorem CategoryTheory.GradedObject.mapBifunctorRightUnitor_naturality - theorem CategoryTheory.GradedObject.ι_mapBifunctorLeftUnitor_hom + theorem CategoryTheory.GradedObject.ι_mapBifunctorLeftUnitor_hom_apply + theorem CategoryTheory.GradedObject.ι_mapBifunctorRightUnitor_hom_apply 2024-03-26 07:43:36 eec91f3 move(Combinatorics/Enumerative): Create folder (#11666) Move `Catalan`, `Composition`, `DoubleCounting`, `Partition` to a new folder `Combinatorics.Enumerative`. ESTIMATED CHANGES Modified Archive/Wiedijk100Theorems/Partition.lean Modified Mathlib.lean Modified Mathlib/Analysis/Analytic/Composition.lean Modified Mathlib/Combinatorics/Additive/PluenneckeRuzsa.lean Renamed Mathlib/Combinatorics/Catalan.lean to Mathlib/Combinatorics/Enumerative/Catalan.lean Renamed Mathlib/Combinatorics/Composition.lean to Mathlib/Combinatorics/Enumerative/Composition.lean Renamed Mathlib/Combinatorics/DoubleCounting.lean to Mathlib/Combinatorics/Enumerative/DoubleCounting.lean Renamed Mathlib/Combinatorics/Partition.lean to Mathlib/Combinatorics/Enumerative/Partition.lean Modified Mathlib/Combinatorics/SetFamily/LYM.lean Modified Mathlib/Combinatorics/SimpleGraph/StronglyRegular.lean Modified Mathlib/GroupTheory/Perm/Cycle/Type.lean 2024-03-26 07:43:35 dda2b3f feat: limits in the category of elements (#11484) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Limits/Elements.lean + theorem CategoryTheory.CategoryOfElements.CreatesLimitsAux.map_lift_mapCone + theorem CategoryTheory.CategoryOfElements.CreatesLimitsAux.map_π_liftedConeElement + theorem CategoryTheory.CategoryOfElements.CreatesLimitsAux.π_liftedConeElement' 2024-03-26 07:43:35 a57ceda refactor: generalize universes for commuting filtered colimits and finite limits (#11325) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Functor/Flat.lean Modified Mathlib/CategoryTheory/Limits/ColimitLimit.lean +/- theorem CategoryTheory.Limits.ι_colimitLimitToLimitColimit_π_apply Modified Mathlib/CategoryTheory/Limits/FilteredColimitCommutesFiniteLimit.lean Modified Mathlib/CategoryTheory/Limits/Preserves/FunctorCategory.lean Modified Mathlib/CategoryTheory/Limits/Types.lean 2024-03-26 06:36:18 01a0b4e chore(Init/Data/Int): drop deprecated lemmas (#11664) Cherry-picked from #9607 ESTIMATED CHANGES Modified Mathlib/Init/Data/Int/Basic.lean - theorem Int.eq_zero_of_natAbs_eq_zero - theorem Int.natAbs_pos_of_ne_zero 2024-03-26 06:36:17 859f376 chore(*): migrate from `RingHom.map_*` to `_root_.map_*` (#11660) Cherry-picked from #9607 ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/Hom.lean - theorem AlgHom.map_list_prod Modified Mathlib/Algebra/BigOperators/Basic.lean Modified Mathlib/Algebra/BigOperators/Ring.lean Modified Mathlib/Algebra/CharP/Basic.lean Modified Mathlib/Algebra/GeomSum.lean Modified Mathlib/Data/Complex/Exponential.lean Modified Mathlib/Data/ENNReal/Operations.lean Modified Mathlib/Data/Matrix/Basic.lean Modified Mathlib/Data/MvPolynomial/Basic.lean Modified Mathlib/Data/Polynomial/Eval.lean +/- theorem Polynomial.comp_C Modified Mathlib/Data/Rat/BigOperators.lean Modified Mathlib/LinearAlgebra/Matrix/Determinant.lean Modified Mathlib/RingTheory/MvPolynomial/Basic.lean Modified Mathlib/RingTheory/Nullstellensatz.lean Modified Mathlib/RingTheory/Polynomial/Basic.lean Modified Mathlib/SetTheory/Game/PGame.lean 2024-03-26 05:32:01 7015aaa chore(Data/List/GetD): Use Std lemmas (#11653) ... instead of importing `Data.Nat.Order.Basic` ESTIMATED CHANGES Modified Mathlib/Data/List/GetD.lean +/- theorem List.getD_append +/- theorem List.getI_append 2024-03-25 23:44:29 1c0ac88 feat(CategoryTheory): define the notion of effectively enough objects with respect to a functor (#11567) The notion means that for every object in the target, there is an effective epi to it from an object in the image of the functor. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/EffectiveEpi/Enough.lean + structure CategoryTheory.Functor.EffectivePresentation + def CategoryTheory.Functor.equivalenceEffectivePresentation 2024-03-25 21:24:41 103d868 fix: typo in module doc of NumberTheory/Cyclotomic/Basic (#11670) ESTIMATED CHANGES Modified Mathlib/NumberTheory/Cyclotomic/Basic.lean 2024-03-25 20:19:45 a251ad4 feat(NumberTheory/LSeries/Convolution): new file; convolution of sequences and products of L-series (#11634) This is the next PR in a sequence that establishes general results on L-series. See [this thread on Zulip](https://leanprover.zulipchat.com/#narrow/stream/144837-PR-reviews/topic/L-series/near/424858837). This adds the definition of the Dirichlet convolution of two sequences (as `LSeries.convolution`) and shows that the associated L-series is the product of the L-series associated to the two original sequences. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/NumberTheory/LSeries/Convolution.lean + theorem ArithmeticFunction.LSeriesHasSum_mul + theorem ArithmeticFunction.LSeriesSummable_mul + theorem ArithmeticFunction.LSeries_mul' + theorem ArithmeticFunction.LSeries_mul + theorem ArithmeticFunction.coe_mul + theorem ArithmeticFunction.toArithmeticFunction_eq_self + theorem LSeries.convolution_def + theorem LSeries.convolution_map_zero + theorem LSeries.term_convolution' + theorem LSeries.term_convolution + theorem LSeriesHasSum.convolution + theorem LSeriesSummable.convolution + theorem LSeries_convolution' + theorem LSeries_convolution + def toArithmeticFunction 2024-03-25 20:19:44 2d2e953 feat: add lemma List.prod_map_one (#11112) Adds the lemma, and `to_additive` tags it ESTIMATED CHANGES Modified Mathlib/Data/List/BigOperators/Basic.lean + theorem List.prod_map_one + theorem List.prod_one_cons 2024-03-25 20:19:42 2c429c3 feat: Bernoulli's inequality for `0 < p < 1` (#10982) Also substantially speed up some existing proofs in the `p < 1` case. ESTIMATED CHANGES Modified Mathlib/Analysis/Convex/SpecificFunctions/Basic.lean +/- theorem convexOn_rpow + theorem rpow_one_add_le_one_add_mul_self + theorem rpow_one_add_lt_one_add_mul_self +/- theorem strictConvexOn_rpow Modified Mathlib/Analysis/Convex/SpecificFunctions/Pow.lean 2024-03-25 19:47:26 e80129c feat: some missing API for the category of elements (#11483) The most significant change is the introduction of the simp lemma `map_snd`. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Elements.lean + def CategoryTheory.CategoryOfElements.costructuredArrowYonedaEquivalenceFunctorProj + def CategoryTheory.CategoryOfElements.costructuredArrowYonedaEquivalenceInverseπ + theorem CategoryTheory.CategoryOfElements.map_snd 2024-03-25 19:10:26 ac9ad40 feat(MeasureTheory.MeasurableSpace.CountablyGenerated): add SeparatesPoints and related theorems (#11048) the goal of the PR is to clarify the relationship between the following closely related assumptions on a measurable space: * Being countably generated (`CountablyGenerated`) * Separating points (`SeparatesPoints`) * Having a countable separating family of measurable sets (`HasCountableSeparatingOn _ MeasurableSet univ`) * Having singletons be measurable (`MeasurableSingletonClass`) It defines `SeparatesPoints` and registers all implications between combinations of these properties as instances (or rather a minimal set needed to deduce all others). It also proves an optimal theorem regarding when a measurable space appears as an induced subspace of the Cantor Space `Nat -> Bool`. This will be used to generalize topological assumptions to measure theoretic ones in some theorems in `MeasureTheory.Constructions.Polish`. ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Constructions/Polish.lean Modified Mathlib/MeasureTheory/MeasurableSpace/Basic.lean Modified Mathlib/MeasureTheory/MeasurableSpace/CountablyGenerated.lean + theorem MeasurableSpace.SeparatesPoints.mono + theorem MeasurableSpace.exists_countablyGenerated_le_of_hasCountableSeparatingOn + theorem MeasurableSpace.exists_measurableSet_of_ne + theorem MeasurableSpace.generateFrom_natGeneratingSequence + theorem MeasurableSpace.injective_mapNatBool + def MeasurableSpace.mapNatBool + theorem MeasurableSpace.measurableEquiv_nat_bool_of_countablyGenerated + theorem MeasurableSpace.measurableSet_natGeneratingSequence + theorem MeasurableSpace.measurableSingletonClass_of_hasCountableSeparatingOn - theorem MeasurableSpace.measurable_injection_nat_bool_of_countablyGenerated + theorem MeasurableSpace.measurable_injection_nat_bool_of_hasCountableSeparatingOn + theorem MeasurableSpace.measurable_mapNatBool + def MeasurableSpace.natGeneratingSequence + theorem MeasurableSpace.separatesPoints_def + theorem MeasurableSpace.separating_of_generateFrom 2024-03-25 14:43:04 e2e83b9 chore(List/BigOperators): generalize a lemma (#11644) `List.prod_map_neg` doesn't need a `CommMonoid`. ESTIMATED CHANGES Modified Mathlib/Data/List/BigOperators/Basic.lean +/- theorem List.prod_map_neg 2024-03-25 13:03:02 496f227 fix: label new contributors? (#11658) This PR hopefully fixes the automatic labeling of new contributors. I looked for the entry `.pull_request.user.login` but I could not find it. For this reason, I switched to using the existing `.head_commit.author.name`. You can look at the `install elan` step of [this CI run](https://github.com/leanprover-community/mathlib4/actions/runs/8419868223/job/23053404627?pr=11656) to see what are the available fields. As a small sanity check, the first commit of this PR changed `< 5 PRs` to `> 5 PRs` and the bot added the `new-contributor` label to this PR. The second commit reverted this change. [Zulip discussion](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/.60new-contributor.60.20labelling.20workflow.20broken.3F) ESTIMATED CHANGES Modified .github/workflows/label_new_contributor.yml 2024-03-25 09:46:55 6134a02 chore(List/Basic): use `mem_filter` to golf 2 proofs (#11652) ESTIMATED CHANGES Modified Mathlib/Data/List/Basic.lean +/- theorem List.mem_filter_of_mem +/- theorem List.of_mem_filter 2024-03-25 09:03:58 7f14520 doc(RepresentationTheory): add some doc for three basic files (#11643) Add some doc concerning Schur's lemma, orthogonality of characters and irreducible representations being defined as simple objects. ESTIMATED CHANGES Modified Mathlib/RepresentationTheory/Basic.lean Modified Mathlib/RepresentationTheory/Character.lean Modified Mathlib/RepresentationTheory/FdRep.lean 2024-03-25 07:55:15 d6a4b5d chore: Make `Finset.preimage` not depend on `Finset.sum` (#11601) and `Data.Finset.LocallyFinite` not depend on `Finset.sum` too ESTIMATED CHANGES Modified Mathlib/Algebra/BigOperators/Basic.lean + theorem Finset.prod_preimage' + theorem Finset.prod_preimage + theorem Finset.prod_preimage_of_bij Modified Mathlib/Algebra/BigOperators/Intervals.lean + theorem Finset.prod_prod_Ioi_mul_eq_prod_prod_off_diag Modified Mathlib/Algebra/BigOperators/Order.lean Modified Mathlib/Analysis/Matrix.lean Modified Mathlib/Combinatorics/SetFamily/Shatter.lean Modified Mathlib/Data/Fin/Interval.lean Modified Mathlib/Data/Finset/Antidiagonal.lean Modified Mathlib/Data/Finset/LocallyFinite/Basic.lean - theorem Finset.prod_prod_Ioi_mul_eq_prod_prod_off_diag Modified Mathlib/Data/Finset/Preimage.lean - theorem Finset.prod_preimage' - theorem Finset.prod_preimage - theorem Finset.prod_preimage_of_bij Modified Mathlib/Data/Nat/Interval.lean Modified Mathlib/GroupTheory/Perm/Sign.lean Modified Mathlib/Order/Filter/AtTopBot.lean Modified Mathlib/RingTheory/HahnSeries/Addition.lean Modified Mathlib/RingTheory/HahnSeries/Basic.lean Modified Mathlib/RingTheory/Multiplicity.lean Modified Mathlib/Tactic/NormNum/BigOperators.lean Modified test/linarith.lean 2024-03-25 03:22:47 aae9d29 ci: Raise Archive build failures (#11612) CI didn't catch the fallout from #11530 because we forgot to pipe the errors coming from `lake build Archive` and `lake build Counterexamples` back to the logs. This PR makes sure that happens. ESTIMATED CHANGES Modified .github/workflows/bors.yml Modified .github/workflows/build.yml Modified .github/workflows/build.yml.in Modified .github/workflows/build_fork.yml 2024-03-25 02:58:11 c59421a chore: remove @[eqns] on Ordnode.rotateR/L (#11649) ESTIMATED CHANGES Modified Mathlib/Data/Ordmap/Ordset.lean 2024-03-25 02:18:46 f7c6a4c chore: remove @[eqns] in Algebra/Homology/Homotopy (#11648) ESTIMATED CHANGES Modified Mathlib/Algebra/Homology/Homotopy.lean +/- theorem Homotopy.mkCoinductiveAux₂_add_one +/- theorem Homotopy.mkCoinductiveAux₂_zero +/- theorem Homotopy.mkInductiveAux₂_add_one +/- theorem Homotopy.mkInductiveAux₂_zero 2024-03-25 02:18:45 f2f41de chore: rm @[eqns] in SetTheory/Ordinal/Notation (#11646) ESTIMATED CHANGES Modified Mathlib/SetTheory/Ordinal/Notation.lean +/- theorem ONote.ofNat_succ +/- theorem ONote.ofNat_zero 2024-03-25 01:53:52 c1056b0 chore: rm @[eqns] in Ordmap (#11645) ESTIMATED CHANGES Modified Mathlib/Data/Ordmap/Ordnode.lean +/- theorem Ordnode.size_nil +/- theorem Ordnode.size_node Modified Mathlib/Data/Ordmap/Ordset.lean 2024-03-25 01:19:44 31188bc chore: remove unnecessary @[eqns] attributes (#11460) These attributes are unused in Mathlib. Many of them were workarounds for the now-resolved leanprover/lean4#2243; this also allows the lemmas themselves (`hasFiniteIntegral_def`, `integrable_def`, `memℒp_def`, and `integrableOn_def`) to be deleted. We are currently experiencing problems with the `@[eqns]` attribute on the Lean nightlies. I'm uncertain yet what the outcome is going to be there, but it seems prudent to reduce our unnecessary exposure to a language feature added in Mathlib. ESTIMATED CHANGES Modified Mathlib/Analysis/SpecialFunctions/Gaussian.lean Modified Mathlib/Computability/TMToPartrec.lean Modified Mathlib/MeasureTheory/Decomposition/RadonNikodym.lean Modified Mathlib/MeasureTheory/Decomposition/SignedLebesgue.lean Modified Mathlib/MeasureTheory/Function/L1Space.lean - theorem MeasureTheory.integrable_def Modified Mathlib/MeasureTheory/Function/LpSeminorm/Basic.lean - theorem MeasureTheory.memℒp_def Modified Mathlib/MeasureTheory/Integral/IntegrableOn.lean - theorem MeasureTheory.integrableOn_def Modified Mathlib/NumberTheory/LSeries/AbstractFuncEq.lean Modified Mathlib/Probability/Distributions/Exponential.lean 2024-03-24 22:59:09 11e323e feat: renaming symmetric MvPolynomials (#11251) ESTIMATED CHANGES Modified Mathlib/RingTheory/MvPolynomial/Symmetric.lean + theorem MvPolynomial.isSymmetric_rename + def MvPolynomial.renameSymmetricSubalgebra 2024-03-24 21:52:56 0e6c4e2 chore: Deprecated aliases for `Rat.cast_natCast`, `Rat.cast_intCast` (#11636) These were moved in #11552. ESTIMATED CHANGES Modified Mathlib/Data/Rat/Cast/Defs.lean 2024-03-24 20:38:18 1f8fea7 feat: ind-objects are closed under isomorphism (#11623) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Limits/Indization/IndObject.lean + def CategoryTheory.Limits.IndObjectPresentation.ofCocone + theorem CategoryTheory.Limits.IsIndObject.iff_of_iso + theorem CategoryTheory.Limits.IsIndObject.map 2024-03-24 20:38:17 31bc122 chore: Golf `Set.pair_eq_pair_iff` (#11564) Resolve a porting note ESTIMATED CHANGES Modified Mathlib/Data/Set/Basic.lean 2024-03-24 20:38:16 0c297cb feat(Analysis/NormedSpace/PiTensorProduct/{InjectiveNorm, ProjectiveNorm}, LinearAlgebra/PiTensorProduct): define the injective and projective norms on `PiTensorProduct` and prove the universal property of the first one (#11534) Define the injective and projective cross norms on a `PiTensorProduct` of normed vector spaces `Eᵢ` over a nontrivially normed field `𝕜` (cf https://en.wikipedia.org/wiki/Topological_tensor_product#Cross_norms_and_tensor_products_of_Banach_spaces). The projective norm, defined in `Analysis/NormedSpace/PiTensorProduct/ProjectiveNorm.lean`, is the biggest norm on the `PiTensorProduct` satisfying `‖⨂ₜ[𝕜] i, m i‖ ≤ Π i, ‖m i‖` for every `m` in `Π i, Eᵢ`. We are mainly interested in the injective norm in this PR, so we just give the definition of the projective norm and its basic properties. To help with the proofs, we introduce some lemmas in `LinearAlgebra/PiTensorProduct.lean` about the set of lifts in `FreeAddMonoid (R × Π i, s i)` of an element `x` of `⨂[R] i, s i`. The injective norm, defined in `Analysis/NormedSpace/PiTensorProduct/InjectiveSeminorm.lean`, is chosen to satisfy the following property: for every normed `𝕜`-vector space `F`, the linear equivalence `MultilinearMap 𝕜 E F ≃ₗ[𝕜] (⨂[𝕜] i, Eᵢ) →ₗ[𝕜] F` expressing the universal property of the tensor product induces an isometric linear equivalence `ContinuousMultilinearMap 𝕜 E F ≃ₗᵢ[𝕜] (⨂[𝕜] i, Eᵢ) →L[𝕜] F`. The idea is the following: Every normed `𝕜`-vector space `F` defines a linear map from `⨂[𝕜] i, Eᵢ` to `ContinuousMultilinearMap 𝕜 E F →ₗ[𝕜] F`, which sends `x` to the map `f ↦ f.lift x`. Thanks to `PiTensorProduct.projectiveSeminorm_bound`, this map lands in `ContinuousMultilinearMap 𝕜 E F →L[𝕜] F`. As this last space has a natural operator seminorm, we get an induced seminorm on `⨂[𝕜] i, Eᵢ`, which, by `PiTensorProduct.projectiveSeminorm_bound`, is bounded above by the projective seminorm. We then take the `sup` of these seminorms as `F` varies; as this family of seminorms is bounded, its `sup` has good properties. In fact, we cannot take the `sup` over all normed spaces `F` because of set-theoretical issues, so we only take spaces `F` in the same universe as `⨂[𝕜] i, Eᵢ`. We then prove in `PiTensorProduct.norm_eval_le_injectiveSeminorm` that this gives the same result, because every multilinear map from `E` to `F` factors though a normed vector space in the same universe as `⨂[𝕜] i, Eᵢ`. # Main definitions * `PiTensorProduct.projectiveSeminorm`: The projective seminorm on `⨂[𝕜] i, Eᵢ`. * `PiTensorProduct.toDualContinuousMultilinearMap`: The `𝕜`-linear map from `⨂[𝕜] i, Eᵢ` to `ContinuousMultilinearMap 𝕜 E F →L[𝕜] F` sending `x` to the map `f ↦ f x`. * `PiTensorProduct.injectiveSeminorm`: The injective seminorm on `⨂[𝕜] i, Eᵢ`. * `PiTensorProduct.liftEquiv`: The bijection between `ContinuousMultilinearMap 𝕜 E F` and `(⨂[𝕜] i, Eᵢ) →L[𝕜] F`, as a continuous linear equivalence. * `PiTensorProduct.liftIsometry`: The bijection between `ContinuousMultilinearMap 𝕜 E F` and `(⨂[𝕜] i, Eᵢ) →L[𝕜] F`, as an isometric linear equivalence. * `PiTensorProduct.tprodL`: The cacnonical continuous multilinear map from `E` to `⨂[𝕜] i, Eᵢ`. * `PiTensorProduct.mapL`: The continuous linear map from `⨂[𝕜] i, Eᵢ` to `⨂[𝕜] i, E'ᵢ` induced by a family of continuous linear maps `Eᵢ →L[𝕜] E'ᵢ`. * `PiTensorProduct.mapLMultilinear`: The continuous multilinear map from `fun i ↦ (Eᵢ →L[𝕜] E'ᵢ)` to `(⨂[𝕜] i, Eᵢ) →L[𝕜] (⨂[𝕜] i, E'ᵢ)` sending a family `f` to `PiTensorProduct.mapL f`. # Main results * `PiTensorProduct.norm_eval_le_projectiveSeminorm`: For every `x` in `⨂[𝕜] i, Eᵢ` and every continuous multilinear map `f` from `E` to a normed space `F`, we have `‖f.lift x‖ ≤ ‖f‖ * projectiveSeminorm x `. This implies in particular: * `PiTensorProduct.injectiveSeminorm_le_projectiveSeminorm`: The injective seminorm is bounded above by the projective seminorm. * `PiTensorProduct.norm_eval_le_injectiveSeminorm`: The main property of the injective seminorm on `⨂[𝕜] i, Eᵢ`: for every `x` in `⨂[𝕜] i, Eᵢ` and every continuous multilinear map `f` from `E` to a normed space `F`, we have `‖f.lift x‖ ≤ ‖f‖ * injectiveSeminorm x `. * `PiTensorProduct.mapL_opNorm`: If `f` is a family of continuous linear maps `fᵢ : Eᵢ →L[𝕜] Fᵢ`, then `‖PiTensorProduct.mapL f‖ ≤ ∏ i, ‖fᵢ‖`. * `PiTensorProduct.mapLMultilinear_opNorm` : If `F` is a normed vecteor space, then `‖mapLMultilinear 𝕜 E F‖ ≤ 1`. # TODO (in a future PR) If all `Eᵢ` are separated and satisfy `SeparatingDual`, then the seminorm on `⨂[𝕜] i, Eᵢ` is a norm. This uses the construction of a basis of the `PiTensorProduct`, hence depends on PR #11156. It should probably go in a separate file, which is why I am creating a directory Analysis/NormedSpace/PiTensorProduct. # Technical issues * Ideally, I would prefer not to define `liftEquiv` and to have only `liftIsometry`, but I am using `liftEquiv.left_inv` in the proof that `liftIsometry` preserves norms. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/NormedSpace/PiTensorProduct/InjectiveSeminorm.lean + theorem PiTensorProduct.dualSeminorms_bounded + theorem PiTensorProduct.injectiveSeminorm_apply + theorem PiTensorProduct.injectiveSeminorm_le_projectiveSeminorm + theorem PiTensorProduct.injectiveSeminorm_tprod_le + theorem PiTensorProduct.liftIsometry_apply_apply + theorem PiTensorProduct.liftIsometry_comp_mapL + theorem PiTensorProduct.liftIsometry_symm_apply + theorem PiTensorProduct.liftIsometry_tprodL + theorem PiTensorProduct.mapLMultilinear_opNorm + theorem PiTensorProduct.mapL_apply + theorem PiTensorProduct.mapL_coe + theorem PiTensorProduct.mapL_comp + theorem PiTensorProduct.mapL_id + theorem PiTensorProduct.mapL_mul + theorem PiTensorProduct.mapL_one + theorem PiTensorProduct.mapL_opNorm + theorem PiTensorProduct.norm_eval_le_injectiveSeminorm + theorem PiTensorProduct.toDualContinuousMultilinearMap_le_projectiveSeminorm + theorem PiTensorProduct.tprodL_coe Added Mathlib/Analysis/NormedSpace/PiTensorProduct/ProjectiveSeminorm.lean + theorem PiTensorProduct.bddBelow_projectiveSemiNormAux + theorem PiTensorProduct.norm_eval_le_projectiveSeminorm + def PiTensorProduct.projectiveSeminormAux + theorem PiTensorProduct.projectiveSeminormAux_add_le + theorem PiTensorProduct.projectiveSeminormAux_nonneg + theorem PiTensorProduct.projectiveSeminormAux_smul + theorem PiTensorProduct.projectiveSeminorm_apply + theorem PiTensorProduct.projectiveSeminorm_tprod_le Modified Mathlib/LinearAlgebra/PiTensorProduct.lean + theorem FreeAddMonoid.toPiTensorProduct + def PiTensorProduct.lifts + theorem PiTensorProduct.lifts_add + theorem PiTensorProduct.lifts_smul + theorem PiTensorProduct.lifts_zero + theorem PiTensorProduct.mem_lifts_iff + theorem PiTensorProduct.nonempty_lifts 2024-03-24 19:38:18 fe4454a chore(Algebra.Module): make `Function.Surjective.module` reducible (#11631) This is used to construct instances of classes and needs to be reducible to unfold during unification performed in the process of typeclass synthesis, see the library note [reducible non-instances] ESTIMATED CHANGES Modified Mathlib/Algebra/Module/Basic.lean 2024-03-24 17:50:33 f4fd1b1 feat(Logic/IsEmpty): add instances for `Quot` and `Quotient` (#11616) ESTIMATED CHANGES Modified Mathlib/Logic/IsEmpty.lean + theorem Function.Surjective.isEmpty 2024-03-24 17:50:32 0523bd8 feat: image of a von Neumann bounded set under a multilinear map (#10743) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Topology/Algebra/Module/Multilinear/Bounded.lean + theorem Bornology.IsVonNBounded.image_multilinear' + theorem Bornology.IsVonNBounded.image_multilinear 2024-03-24 17:19:32 971aea7 chore(Analysis/NormedSpace/PiLp): golf a proof (#11619) ESTIMATED CHANGES Modified Mathlib/Analysis/NormedSpace/PiLp.lean 2024-03-24 16:44:40 f29c550 chore: add missing aliases for recently renamed lemmas (#11117) From #9618, #10525 and #10614. ESTIMATED CHANGES Modified Mathlib/AlgebraicGeometry/ProjectiveSpectrum/Scheme.lean Modified Mathlib/Analysis/Calculus/MeanValue.lean Modified Mathlib/MeasureTheory/Constructions/BorelSpace/Basic.lean 2024-03-24 13:55:39 a746c52 refactor(Algebra/Category): replace `TypeMax` constructions by `UnivLE` assumptions (#11420) Replaces `TypeMax` limit constructions in `MonCat`, `GroupCat`, `Ring`, `AlgebraCat` and `ModuleCat` by the `UnivLE` analogs. Also generalizes some universe assumptions. ESTIMATED CHANGES Modified Mathlib/Algebra/Category/AlgebraCat/Limits.lean +/- def AlgebraCat.HasLimits.limitCone +/- def AlgebraCat.HasLimits.limitConeIsLimit +/- theorem AlgebraCat.hasLimitsOfSize +/- def AlgebraCat.limitπAlgHom +/- def AlgebraCat.sectionsSubalgebra Modified Mathlib/Algebra/Category/GroupCat/Limits.lean +/- def GroupCat.sectionsSubgroup Modified Mathlib/Algebra/Category/ModuleCat/Abelian.lean Modified Mathlib/Algebra/Category/ModuleCat/Limits.lean +/- def ModuleCat.HasLimits.limitCone +/- def ModuleCat.HasLimits.limitConeIsLimit +/- def ModuleCat.forget₂AddCommGroupPreservesLimitsAux + theorem ModuleCat.hasLimit + theorem ModuleCat.hasLimitsOfShape +/- theorem ModuleCat.hasLimitsOfSize +/- def ModuleCat.limitπLinearMap +/- def ModuleCat.sectionsSubmodule Modified Mathlib/Algebra/Category/MonCat/Limits.lean +/- def MonCat.sectionsSubmonoid Modified Mathlib/Algebra/Category/Ring/Limits.lean +/- def CommRingCat.forget₂CommSemiRingPreservesLimitsAux +/- def CommRingCat.limitCone +/- def CommRingCat.limitConeIsLimit +/- def CommSemiRingCat.limitCone +/- def CommSemiRingCat.limitConeIsLimit +/- def RingCat.forget₂AddCommGroupPreservesLimitsAux +/- def RingCat.limitCone +/- def RingCat.limitConeIsLimit +/- def RingCat.sectionsSubring +/- def SemiRingCat.HasLimits.limitCone +/- def SemiRingCat.HasLimits.limitConeIsLimit +/- def SemiRingCat.forget₂AddCommMonPreservesLimitsAux +/- def SemiRingCat.forget₂MonPreservesLimitsAux +/- def SemiRingCat.limitπRingHom +/- def SemiRingCat.sectionsSubsemiring Modified Mathlib/Logic/Equiv/TransferInstance.lean + theorem Equiv.algEquiv_apply + theorem Equiv.algEquiv_symm_apply 2024-03-24 11:48:31 ac11828 feat(Algebra/Homology): the action of a bifunctor on homological complexes factors through homotopies (#10800) Given a `TotalComplexShape c₁ c₂ c`, a functor `F : C₁ ⥤ C₂ ⥤ D`, we study the behavior with respect to homotopies or the functoriality of the action of `F` on homological complexes: if `f₁` and `f₁'` are homotopic maps, then the maps `mapBifunctorMap f₁ f₂ F c` and `mapBifunctorMap f₁' f₂ F c` are also homotopic. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Homology/BifunctorHomotopy.lean + theorem HomologicalComplex.mapBifunctorMapHomotopy.comm₁ + theorem HomologicalComplex.mapBifunctorMapHomotopy.comm₁_aux + theorem HomologicalComplex.mapBifunctorMapHomotopy.zero₁ + theorem HomologicalComplex.mapBifunctorMapHomotopy.ιMapBifunctor_hom₁ Modified Mathlib/Algebra/Homology/ComplexShapeSigns.lean + theorem ComplexShape.prev_π₁ + theorem ComplexShape.prev_π₂ + theorem ComplexShape.ε₁_ε₂ Modified Mathlib/Algebra/Homology/TotalComplex.lean - theorem HomologicalComplex₂.total.d₁_mapMap - theorem HomologicalComplex₂.total.d₂_mapMap + theorem HomologicalComplex₂.total.mapAux.d₁_mapMap + theorem HomologicalComplex₂.total.mapAux.d₂_mapMap + theorem HomologicalComplex₂.total.mapAux.mapMap_D₁ + theorem HomologicalComplex₂.total.mapAux.mapMap_D₂ - theorem HomologicalComplex₂.total.mapMap_D₁ - theorem HomologicalComplex₂.total.mapMap_D₂ + theorem HomologicalComplex₂.totalAux.d₁_eq' + theorem HomologicalComplex₂.totalAux.d₁_eq + theorem HomologicalComplex₂.totalAux.d₂_eq' + theorem HomologicalComplex₂.totalAux.d₂_eq + theorem HomologicalComplex₂.totalAux.ιMapObj_D₁ + theorem HomologicalComplex₂.totalAux.ιMapObj_D₂ + theorem HomologicalComplex₂.ιTotalOrZero_eq + theorem HomologicalComplex₂.ιTotalOrZero_eq_zero +/- theorem HomologicalComplex₂.ι_D₁ +/- theorem HomologicalComplex₂.ι_D₂ Modified Mathlib/Algebra/Homology/TotalComplexShift.lean Modified Mathlib/Algebra/Homology/TotalComplexSymmetry.lean 2024-03-24 10:44:42 ffd4025 chore: rename lemmas involving closedUnder{Co}limits (#11608) They contain a hypothesis `ClosedUnder{Co}Limits`, hence should be named accordingly. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Limits/FullSubcategory.lean + theorem CategoryTheory.Limits.hasColimit_of_closedUnderColimits - theorem CategoryTheory.Limits.hasColimit_of_closed_under_colimits + theorem CategoryTheory.Limits.hasColimitsOfShape_of_closedUnderColimits - theorem CategoryTheory.Limits.hasColimitsOfShape_of_closed_under_colimits + theorem CategoryTheory.Limits.hasLimit_of_closedUnderLimits - theorem CategoryTheory.Limits.hasLimit_of_closed_under_limits + theorem CategoryTheory.Limits.hasLimitsOfShape_of_closedUnderLimits - theorem CategoryTheory.Limits.hasLimitsOfShape_of_closed_under_limits 2024-03-24 10:44:41 0865637 doc: Improve `Field`'s fields docstrings (#11508) Reduce the diff of #11203 ESTIMATED CHANGES Modified Mathlib/Algebra/Field/Defs.lean +/- def Rat.castRec +/- theorem Rat.smul_def 2024-03-24 09:49:13 0817259 chore(Algebra/Category/MonCat): improve definitional properties in restrict scalars (#11597) Replaces two usages of `subst` by an explicit construction in `ChangeOfRings`. ESTIMATED CHANGES Modified Mathlib/Algebra/Category/ModuleCat/ChangeOfRings.lean + def ModuleCat.restrictScalarsComp'App + theorem ModuleCat.restrictScalarsComp'App_hom_apply + theorem ModuleCat.restrictScalarsComp'App_inv_apply - theorem ModuleCat.restrictScalarsComp'_hom_apply - theorem ModuleCat.restrictScalarsComp'_inv_apply +/- def ModuleCat.restrictScalarsId' + def ModuleCat.restrictScalarsId'App + theorem ModuleCat.restrictScalarsId'App_hom_apply + theorem ModuleCat.restrictScalarsId'App_inv_apply - theorem ModuleCat.restrictScalarsId'_hom_apply - theorem ModuleCat.restrictScalarsId'_inv_apply 2024-03-24 09:49:12 28e1bd4 feat(NumberTheory/Harmonic): Euler-Mascheroni constant (#11589) Add the Euler-Mascheroni constant `γ` (the limit of `harmonic n - log n` as `n` goes to infinity) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/NumberTheory/Harmonic/EulerMascheroni.lean + theorem Real.eulerMascheroniConstant_lt_eulerMascheroniSeq' + theorem Real.eulerMascheroniConstant_lt_two_thirds + theorem Real.eulerMascheroniSeq'_one + theorem Real.eulerMascheroniSeq'_six_lt_two_thirds + theorem Real.eulerMascheroniSeq_lt_eulerMascheroniConstant + theorem Real.eulerMascheroniSeq_lt_eulerMascheroniSeq' + theorem Real.eulerMascheroniSeq_zero + theorem Real.one_half_lt_eulerMascheroniConstant + theorem Real.one_half_lt_eulerMascheroniSeq_six + theorem Real.strictAnti_eulerMascheroniSeq' + theorem Real.strictMono_eulerMascheroniSeq + theorem Real.tendsto_eulerMascheroniSeq' + theorem Real.tendsto_eulerMascheroniSeq + theorem Real.tendsto_harmonic_sub_log + theorem Real.tendsto_harmonic_sub_log_add_one 2024-03-24 09:49:11 5d242aa fix: improve simp lemmas around PartENat.ofENat (#11553) ESTIMATED CHANGES Modified Mathlib/Data/Nat/PartENat.lean + theorem PartENat.ofENat_coe + theorem PartENat.ofENat_le + theorem PartENat.ofENat_lt - theorem PartENat.ofENat_none + theorem PartENat.ofENat_ofNat + theorem PartENat.ofENat_one - theorem PartENat.ofENat_some + theorem PartENat.ofENat_toWithTop + theorem PartENat.ofENat_top + theorem PartENat.ofENat_zero +/- theorem PartENat.withTopEquiv_le +/- theorem PartENat.withTopEquiv_lt +/- theorem PartENat.withTopEquiv_natCast +/- theorem PartENat.withTopEquiv_symm_coe +/- theorem PartENat.withTopEquiv_symm_one +/- theorem PartENat.withTopEquiv_symm_top +/- theorem PartENat.withTopEquiv_symm_zero +/- theorem PartENat.withTopEquiv_top Modified Mathlib/SetTheory/Cardinal/PartENat.lean 2024-03-24 09:17:19 acda20c style: remove redundant instance arguments (#11581) I removed some redundant instance arguments throughout Mathlib. To do this, I used VS Code's regex search. See https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/repeating.20instances.20from.20variable.20command I closed the previous PR for this and reopened it. ESTIMATED CHANGES Modified Mathlib/Algebra/BigOperators/Basic.lean +/- theorem Fintype.prod_fiberwise' +/- theorem Fintype.prod_fiberwise Modified Mathlib/Algebra/CharP/Basic.lean +/- theorem CharP.ringChar_zero_iff_CharZero Modified Mathlib/Algebra/Group/Hom/Basic.lean +/- theorem MonoidHom.comp_mul Modified Mathlib/Algebra/Group/NatPowAssoc.lean Modified Mathlib/Algebra/Group/Units.lean +/- theorem IsUnit.exists_left_inv Modified Mathlib/Algebra/Module/Submodule/Localization.lean Modified Mathlib/Algebra/Order/Group/Abs.lean +/- theorem mabs_div_sup_mul_mabs_div_inf Modified Mathlib/Algebra/Order/Group/Lattice.lean +/- theorem pow_two_semiclosed Modified Mathlib/Algebra/Order/Module/OrderedSMul.lean Modified Mathlib/Algebra/Order/Monoid/WithTop.lean +/- theorem WithBot.unbot_one Modified Mathlib/Algebra/Star/Subalgebra.lean +/- theorem StarAlgHom.map_adjoin Modified Mathlib/Analysis/InnerProductSpace/Projection.lean +/- theorem eq_orthogonalProjection_of_mem_orthogonal' +/- theorem eq_orthogonalProjection_of_mem_orthogonal +/- theorem orthogonalProjection_orthogonal +/- theorem orthogonalProjection_orthogonal_val Modified Mathlib/Analysis/NormedSpace/Basic.lean Modified Mathlib/CategoryTheory/Abelian/ProjectiveResolution.lean +/- theorem CategoryTheory.ProjectiveResolution.exact₀ Modified Mathlib/CategoryTheory/Preadditive/Biproducts.lean Modified Mathlib/CategoryTheory/Sites/Coherent/CoherentSheaves.lean +/- theorem CategoryTheory.isSheaf_coherent Modified Mathlib/CategoryTheory/Sites/Coherent/Equivalence.lean Modified Mathlib/Data/DFinsupp/Multiset.lean +/- theorem DFinsupp.toMultiset_toDFinsupp Modified Mathlib/Data/Finsupp/WellFounded.lean +/- theorem Finsupp.Lex.wellFoundedLT_of_finite +/- theorem Finsupp.Lex.wellFounded_of_finite Modified Mathlib/Data/Fintype/Sigma.lean Modified Mathlib/Data/Int/Order/Basic.lean +/- theorem mul_bit1 Modified Mathlib/Data/List/EditDistance/Estimator.lean Modified Mathlib/Data/Matrix/Basic.lean +/- theorem Matrix.scalar_commute +/- theorem Matrix.scalar_commute_iff Modified Mathlib/Data/Multiset/Basic.lean +/- theorem Multiset.erase_attach_map +/- theorem Multiset.erase_attach_map_val Modified Mathlib/FieldTheory/Normal.lean Modified Mathlib/GroupTheory/Exponent.lean +/- theorem Monoid.ExponentExists.of_finite +/- theorem Monoid.exponent_ne_zero_of_finite +/- theorem Monoid.one_lt_exponent Modified Mathlib/GroupTheory/FreeGroup/IsFreeGroup.lean +/- theorem IsFreeGroup.ofMulEquiv Modified Mathlib/GroupTheory/GroupAction/ConjAct.lean +/- theorem ConjAct.orbit_eq_carrier_conjClasses Modified Mathlib/GroupTheory/Perm/ClosureSwap.lean +/- theorem surjective_of_isSwap_of_isPretransitive Modified Mathlib/GroupTheory/PushoutI.lean Modified Mathlib/LinearAlgebra/Dimension/Finite.lean +/- theorem FiniteDimensional.finrank_eq_zero_iff +/- theorem rank_pos +/- theorem rank_zero_iff_forall_zero Modified Mathlib/LinearAlgebra/Dimension/Localization.lean Modified Mathlib/LinearAlgebra/Dual.lean +/- theorem Module.equiv Modified Mathlib/LinearAlgebra/SesquilinearForm.lean Modified Mathlib/MeasureTheory/Constructions/BorelSpace/Basic.lean Modified Mathlib/MeasureTheory/Constructions/Projective.lean +/- def MeasureTheory.IsProjectiveMeasureFamily Modified Mathlib/MeasureTheory/Group/Measure.lean Modified Mathlib/MeasureTheory/Measure/Count.lean Modified Mathlib/MeasureTheory/Measure/Typeclasses.lean Modified Mathlib/NumberTheory/LegendreSymbol/MulCharacter.lean +/- theorem MulChar.sum_one_eq_card_units Modified Mathlib/Order/Birkhoff.lean +/- theorem OrderEmbedding.birkhoffSet_apply Modified Mathlib/Order/Bounds/Basic.lean +/- theorem isGLB_prod +/- theorem isLUB_prod Modified Mathlib/Order/Directed.lean Modified Mathlib/Order/Hom/Bounded.lean Modified Mathlib/Order/Monotone/Basic.lean Modified Mathlib/Probability/ProbabilityMassFunction/Basic.lean +/- theorem PMF.restrict_toMeasure_support Modified Mathlib/RepresentationTheory/Action/Limits.lean Modified Mathlib/RingTheory/Ideal/QuotientOperations.lean +/- def RingHom.kerLift +/- theorem RingHom.kerLift_injective +/- theorem RingHom.kerLift_mk Modified Mathlib/RingTheory/IntegralRestrict.lean +/- def Algebra.intNormAux +/- theorem Algebra.intNorm_eq_of_isLocalization Modified Mathlib/RingTheory/RingInvo.lean Modified Mathlib/RingTheory/SimpleModule.lean Modified Mathlib/RingTheory/Subsemiring/Order.lean Modified Mathlib/RingTheory/TensorProduct/Basic.lean +/- def Algebra.TensorProduct.liftEquiv Modified Mathlib/Topology/Algebra/Order/Compact.lean +/- theorem atBot_atTop_le_cocompact +/- theorem atBot_le_cocompact +/- theorem atTop_le_cocompact +/- theorem cocompact_eq_atBot +/- theorem cocompact_eq_atBot_atTop +/- theorem cocompact_eq_atTop +/- theorem cocompact_le_atBot +/- theorem cocompact_le_atBot_atTop +/- theorem cocompact_le_atTop Modified Mathlib/Topology/Compactness/SigmaCompact.lean Modified Mathlib/Topology/Connected/TotallyDisconnected.lean +/- theorem IsPreconnected.constant_of_mapsTo +/- theorem IsPreconnected.eqOn_const_of_mapsTo Modified Mathlib/Topology/Order.lean +/- theorem closure_induced +/- theorem continuous_discrete_rng +/- theorem isClosed_induced_iff' Modified Mathlib/Topology/Order/ScottTopology.lean +/- def Topology.IsScott.withScottHomeomorph Modified Mathlib/Topology/Separation.lean +/- theorem SeparatedNhds.of_isCompact_isClosed Modified test/ComputeDegree.lean Modified test/Continuity.lean Modified test/fun_prop_dev.lean 2024-03-24 09:17:18 2b28212 refactor(Analysis/Fourier): use `AddChar` machinery in `FourierTransform` (#11417) The file `Analysis/Fourier/FourierTransform.lean` predates the general approach to additive characters elsewhere in the library; this merges the two (getting rid of the rather kludgy notation `e [x]` in the process). I also rejigged some slow proofs, to make them compile slightly faster. ESTIMATED CHANGES Modified Mathlib/Analysis/Complex/Circle.lean + theorem norm_circle_smul Modified Mathlib/Analysis/Fourier/FourierTransform.lean +/- def Fourier.fourierIntegral +/- theorem Fourier.fourierIntegral_comp_add_right +/- theorem Fourier.fourierIntegral_def +/- theorem Fourier.fourierIntegral_smul_const +/- theorem Fourier.norm_fourierIntegral_le_integral_norm +/- def Real.fourierChar +/- theorem Real.fourierChar_apply +/- def VectorFourier.fourierIntegral +/- theorem VectorFourier.fourierIntegral_add +/- theorem VectorFourier.fourierIntegral_comp_add_right +/- theorem VectorFourier.fourierIntegral_smul_const +/- theorem VectorFourier.norm_fourierIntegral_le_integral_norm Modified Mathlib/Analysis/Fourier/FourierTransformDeriv.lean +/- theorem Real.hasDerivAt_fourierChar Modified Mathlib/Analysis/Fourier/Inversion.lean Modified Mathlib/Analysis/Fourier/PoissonSummation.lean Modified Mathlib/Analysis/Fourier/RiemannLebesgueLemma.lean 2024-03-24 09:17:17 f16daa6 feat: Polynomial.mul_modByMonic (#11113) Adds simp lemma for `(p * q) %ₘ q = 0` and `(q * p) %ₘ q = 0`. Also corrects a misspelling: `dvd_iff_modByMonic_eq_zero` should be `modByMonic_eq_zero_iff_dvd` ESTIMATED CHANGES Modified Mathlib/Data/Polynomial/Div.lean - theorem Polynomial.dvd_iff_modByMonic_eq_zero + theorem Polynomial.modByMonic_eq_zero_iff_dvd + theorem Polynomial.mul_self_modByMonic + theorem Polynomial.self_mul_modByMonic Modified Mathlib/Data/Polynomial/FieldDivision.lean Modified Mathlib/FieldTheory/Minpoly/Basic.lean Modified Mathlib/FieldTheory/Minpoly/Field.lean Modified Mathlib/FieldTheory/Minpoly/IsIntegrallyClosed.lean Modified Mathlib/RingTheory/Polynomial/Basic.lean 2024-03-24 08:11:00 555069b feat: generalize `algHom_C`, add `killCompl_C` (#11205) Generalizes `algHom_C` to work over polynomials of different variable types. Adds related lemma `killCompl_C` using this. Also removes simp tags from a few lemmas that are made redundant by this. ESTIMATED CHANGES Modified Mathlib/Data/MvPolynomial/Basic.lean +/- theorem MvPolynomial.algHom_C Modified Mathlib/Data/MvPolynomial/Monad.lean +/- theorem MvPolynomial.bind₁_C_right Modified Mathlib/Data/MvPolynomial/Rename.lean + theorem MvPolynomial.killCompl_C 2024-03-24 08:10:59 8b3db4c feat(GroupTheory/FixedPointFree): New file (#11091) This PR adds a new file containing the definition of fixed-point-free automorphisms and some basic properties. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Data/List/BigOperators/Basic.lean + theorem List.prod_range_div' + theorem List.prod_range_div Added Mathlib/GroupTheory/FixedPointFree.lean + theorem MonoidHom.FixedPointFree.coe_eq_inv_of_involutive + theorem MonoidHom.FixedPointFree.coe_eq_inv_of_sq_eq_one + def MonoidHom.FixedPointFree.commGroupOfInvolutive + theorem MonoidHom.FixedPointFree.commutatorMap_injective + theorem MonoidHom.FixedPointFree.commutatorMap_surjective + theorem MonoidHom.FixedPointFree.commute_all_of_involutive + theorem MonoidHom.FixedPointFree.odd_card_of_involutive + theorem MonoidHom.FixedPointFree.odd_orderOf_of_involutive + theorem MonoidHom.FixedPointFree.orderOf_ne_two_of_involutive + theorem MonoidHom.FixedPointFree.prod_pow_eq_one + def MonoidHom.FixedPointFree + def MonoidHom.commutatorMap + theorem MonoidHom.commutatorMap_apply 2024-03-24 06:28:35 9682f6b chore: make List.mem_split an alias of List.append_of_mem (#11060) `List.mem_split` duplicates `List.append_of_mem` from `Std`: https://github.com/leanprover/std4/blob/a756b7d643ae5dcd7bf314e99f8e493e5d81b9ed/Std/Data/List/Lemmas.lean#L94-L96 This PR makes it an alias. ESTIMATED CHANGES Modified Archive/MiuLanguage/DecisionSuf.lean Modified Mathlib/Data/List/Basic.lean - theorem List.mem_split Modified Mathlib/Data/List/BigOperators/Lemmas.lean Modified Mathlib/Data/List/Perm.lean Modified Mathlib/Data/List/Sort.lean Modified Mathlib/Data/Multiset/Basic.lean 2024-03-24 01:16:41 5fc4f86 ci: Import `Archive` when checking YAML files (#11562) We sometimes want to refer to Archive declarations in the YAML files. This is currently impossible because the script in `checkYaml` only imports `Mathlib`. This PR changes it to also import `Archive`. It also changes the hyperlinks to Archive to instead list declarations directly. Also fix the fallout from #11530 that CI didn't catch that because we forgot to pipe the errors coming from `lake build Archive` (see #11612). ESTIMATED CHANGES Modified Archive/Imo/Imo1986Q5.lean Modified Archive/OxfordInvariants/Summer2021/Week3P1.lean Modified Archive/Wiedijk100Theorems/HeronsFormula.lean Modified Archive/Wiedijk100Theorems/InverseTriangleSum.lean - theorem Theorem100.inverse_triangle_sum + theorem Theorems100.inverse_triangle_sum Modified docs/100.yaml Modified scripts/checkYaml.lean Modified scripts/yaml_check.py 2024-03-23 22:56:57 853378f chore: rename misnamed lemmas involving isOpenMap (#11607) - open_map_of_strict_deriv -> isOpenMap_of_hasStrictDerivAt - open_map_of_strict_fderiv_equiv -> isOpenMap_of_hasStrictFderivAt_equiv These lemmas have conclusion `isOpenMap`, hence should be named accordingly. ESTIMATED CHANGES Modified Mathlib/Analysis/Calculus/InverseFunctionTheorem/Deriv.lean + theorem isOpenMap_of_hasStrictDerivAt - theorem open_map_of_strict_deriv Modified Mathlib/Analysis/Calculus/InverseFunctionTheorem/FDeriv.lean + theorem isOpenMap_of_hasStrictFDerivAt_equiv - theorem open_map_of_strict_fderiv_equiv Modified Mathlib/Analysis/SpecialFunctions/Complex/LogDeriv.lean 2024-03-23 22:13:16 f2373e0 chore: avoid some unused variables (#11594) These will be caught by the linter in a future lean version. ESTIMATED CHANGES Modified Mathlib/Analysis/NormedSpace/Real.lean Modified Mathlib/FieldTheory/Finite/Basic.lean Modified Mathlib/FieldTheory/Minpoly/Field.lean Modified Mathlib/FieldTheory/Minpoly/IsIntegrallyClosed.lean Modified Mathlib/GroupTheory/Perm/Cycle/Type.lean Modified Mathlib/GroupTheory/SpecificGroups/Alternating.lean Modified Mathlib/NumberTheory/ArithmeticFunction.lean Modified Mathlib/NumberTheory/NumberField/Embeddings.lean Modified Mathlib/RingTheory/HahnSeries/Summable.lean Modified Mathlib/RingTheory/Polynomial/Cyclotomic/Roots.lean Modified Mathlib/Topology/Connected/Basic.lean 2024-03-23 19:58:37 87ee74b fix: use binary recursion for `Sum.pow` (#11558) fixes #11543 ESTIMATED CHANGES Modified Mathlib/Tactic/Linarith/Parsing.lean - def Linarith.Sum.pow Modified test/linarith.lean 2024-03-23 19:34:29 76e46f2 chore: fix some @[ext] attribute (#11494) This PR contains 2 changes: 1. Order/Interval.lean: Add `@[ext (flat := false)]`, which addressed the porting notes. 2. Matrix/Basic.lean: the porting notes were no longer true, as everything still works after reverting to the original code (this was fixed in https://github.com/leanprover/std4/pull/159). 3. Algebra/Order/Interval.lean updated now that `ext_iff`'s namespace is changed due to 1. Partially addresses #11182 ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Interval.lean Modified Mathlib/Data/Matrix/Basic.lean - theorem Matrix.ext' Modified Mathlib/Order/Interval.lean - theorem NonemptyInterval.ext - theorem NonemptyInterval.ext_iff 2024-03-23 17:33:58 cd9902c move(Topology/Order): Move anything that doesn't concern algebra (#11610) Move files from `Topology.Algebra.Order` to `Topology.Order` when they do not contain any algebra. Also move `Topology.LocalExtr` to `Topology.Order.LocalExtr`. According to git, the moves are: * `Mathlib/Topology/{Algebra => }/Order/ExtendFrom.lean` * `Mathlib/Topology/{Algebra => }/Order/ExtrClosure.lean` * `Mathlib/Topology/{Algebra => }/Order/Filter.lean` * `Mathlib/Topology/{Algebra => }/Order/IntermediateValue.lean` * `Mathlib/Topology/{Algebra => }/Order/LeftRight.lean` * `Mathlib/Topology/{Algebra => }/Order/LeftRightLim.lean` * `Mathlib/Topology/{Algebra => }/Order/MonotoneContinuity.lean` * `Mathlib/Topology/{Algebra => }/Order/MonotoneConvergence.lean` * `Mathlib/Topology/{Algebra => }/Order/ProjIcc.lean` * `Mathlib/Topology/{Algebra => }/Order/T5.lean` * `Mathlib/Topology/{ => Order}/LocalExtr.lean` ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Analysis/BoxIntegral/Box/Basic.lean Modified Mathlib/Analysis/Complex/AbsMax.lean Modified Mathlib/Analysis/NormedSpace/Extr.lean Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Inverse.lean Modified Mathlib/Data/Real/Sqrt.lean Modified Mathlib/Dynamics/Circle/RotationNumber/TranslationNumber.lean Modified Mathlib/MeasureTheory/Measure/Stieltjes.lean Modified Mathlib/Topology/Algebra/Field.lean Modified Mathlib/Topology/Algebra/InfiniteSum/Order.lean Modified Mathlib/Topology/Algebra/Order/Compact.lean Modified Mathlib/Topology/Algebra/Order/Rolle.lean Modified Mathlib/Topology/Connected/PathConnected.lean Modified Mathlib/Topology/ContinuousFunction/Ordered.lean Modified Mathlib/Topology/Homotopy/Basic.lean Modified Mathlib/Topology/Instances/ENNReal.lean Modified Mathlib/Topology/Instances/EReal.lean Modified Mathlib/Topology/Order/Basic.lean Renamed Mathlib/Topology/Algebra/Order/ExtendFrom.lean to Mathlib/Topology/Order/ExtendFrom.lean Renamed Mathlib/Topology/Algebra/Order/ExtrClosure.lean to Mathlib/Topology/Order/ExtrClosure.lean Renamed Mathlib/Topology/Algebra/Order/Filter.lean to Mathlib/Topology/Order/Filter.lean Renamed Mathlib/Topology/Algebra/Order/IntermediateValue.lean to Mathlib/Topology/Order/IntermediateValue.lean Renamed Mathlib/Topology/Algebra/Order/LeftRight.lean to Mathlib/Topology/Order/LeftRight.lean Renamed Mathlib/Topology/Algebra/Order/LeftRightLim.lean to Mathlib/Topology/Order/LeftRightLim.lean Renamed Mathlib/Topology/LocalExtr.lean to Mathlib/Topology/Order/LocalExtr.lean Renamed Mathlib/Topology/Algebra/Order/MonotoneContinuity.lean to Mathlib/Topology/Order/MonotoneContinuity.lean Renamed Mathlib/Topology/Algebra/Order/MonotoneConvergence.lean to Mathlib/Topology/Order/MonotoneConvergence.lean Renamed Mathlib/Topology/Algebra/Order/ProjIcc.lean to Mathlib/Topology/Order/ProjIcc.lean Renamed Mathlib/Topology/Algebra/Order/T5.lean to Mathlib/Topology/Order/T5.lean Modified Mathlib/Topology/TietzeExtension.lean 2024-03-23 16:50:12 8c5b9da feat: four small lemmas about successors of finite cardinals (#11544) [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) ESTIMATED CHANGES Modified .github/workflows/bors.yml Modified .github/workflows/build.yml Modified .github/workflows/build.yml.in Modified .github/workflows/build_fork.yml Modified Mathlib/Tactic/Common.lean 2024-03-21 23:59:09 eb5cb7e feat: let `congr!` discharge equalities of `BEq` instances (#11179) Adds a congruence lemma for `BEq` instances that makes use of `LawfulBEq` instances, and gives `congr!` the ability to use this congruence lemma. This is meant to help with diamonds that arise from interactions between Decidable and BEq instances. This feature can be turned off using the `beqEq` configuration setting, like `congr! (config := { beqEq := false })`. ESTIMATED CHANGES Modified Mathlib/Logic/Basic.lean + theorem beq_ext + theorem lawful_beq_subsingleton Modified Mathlib/Tactic/Congr!.lean + def Lean.MVarId.beqInst? Modified scripts/noshake.json Modified test/congr.lean 2024-03-21 18:11:56 0f2c3bc chore(LpSpace): cleanup `Fintype`/`Finite` (#11428) Also rename `*lpBcf` to `*lpBCF` and drop 2 duplicate instances. ESTIMATED CHANGES Modified Mathlib/Analysis/InnerProductSpace/PiL2.lean +/- theorem EuclideanSpace.dist_single_same +/- theorem EuclideanSpace.edist_single_same +/- theorem EuclideanSpace.inner_single_left +/- theorem EuclideanSpace.inner_single_right +/- theorem EuclideanSpace.nndist_single_same +/- theorem EuclideanSpace.nnnorm_single +/- theorem EuclideanSpace.norm_single +/- theorem EuclideanSpace.orthonormal_single +/- theorem EuclideanSpace.piLpCongrLeft_single +/- def EuclideanSpace.single +/- theorem EuclideanSpace.single_apply +/- def EuclideanSpace +/- theorem WithLp.equiv_single +/- theorem WithLp.equiv_symm_single Modified Mathlib/Analysis/NormedSpace/LpEquiv.lean +/- theorem Memℓp.all + theorem coe_addEquiv_lpBCF + theorem coe_addEquiv_lpBCF_symm - theorem coe_addEquiv_lpBcf - theorem coe_addEquiv_lpBcf_symm + theorem coe_algEquiv_lpBCF + theorem coe_algEquiv_lpBCF_symm - theorem coe_algEquiv_lpBcf - theorem coe_algEquiv_lpBcf_symm + theorem coe_lpBCFₗᵢ + theorem coe_lpBCFₗᵢ_symm - theorem coe_lpBcfₗᵢ - theorem coe_lpBcfₗᵢ_symm + theorem coe_ringEquiv_lpBCF + theorem coe_ringEquiv_lpBCF_symm - theorem coe_ringEquiv_lpBcf - theorem coe_ringEquiv_lpBcf_symm +/- theorem equiv_lpPiLp_norm Modified Mathlib/Analysis/NormedSpace/PiLp.lean Modified Mathlib/MeasureTheory/Measure/Haar/OfBasis.lean 2024-03-21 15:28:18 8a8d388 chore: work around simp issues in future nightlies (#11546) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/CofilteredSystem.lean Modified Mathlib/Control/Fold.lean Modified Mathlib/Data/DFinsupp/WellFounded.lean Modified Mathlib/Data/Nat/Bitwise.lean Modified Mathlib/Data/Rel.lean Modified Mathlib/Data/Subtype.lean + theorem Subtype.map_def Modified Mathlib/Geometry/Euclidean/Inversion/Basic.lean + theorem EuclideanGeometry.inversion_def Modified Mathlib/Geometry/Euclidean/Inversion/Calculus.lean Modified Mathlib/Init/Function.lean + theorem Function.swap_def Modified Mathlib/Probability/Martingale/Upcrossing.lean Modified Mathlib/Probability/Process/HittingTime.lean + theorem MeasureTheory.hitting_def Modified Mathlib/Topology/List.lean 2024-03-21 14:51:10 b6fe43d chore(LinearAlgebra): fix Fintype/Finite assumptions (#11565) .. in `equivOfPiLEquivPi`, `coePiBasisFun.toMatrix_eq_transpose`, `vecMul_surjective_iff_exists_left_inverse`, and `mulVec_surjective_iff_exists_right_inverse` ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/Determinant.lean +/- def equivOfPiLEquivPi Modified Mathlib/LinearAlgebra/Matrix/Basis.lean +/- theorem Basis.coePiBasisFun.toMatrix_eq_transpose Modified Mathlib/LinearAlgebra/Matrix/NonsingularInverse.lean +/- theorem Matrix.mulVec_surjective_iff_exists_right_inverse +/- theorem Matrix.mulVec_surjective_iff_isUnit +/- theorem Matrix.mulVec_surjective_of_invertible +/- theorem Matrix.vecMul_surjective_iff_exists_left_inverse +/- theorem Matrix.vecMul_surjective_iff_isUnit +/- theorem Matrix.vecMul_surjective_of_invertible 2024-03-21 14:51:09 def6f03 feat(Analysis/Distribution/SchwartzSpace): generalize the integral (#11373) ESTIMATED CHANGES Modified Mathlib/Analysis/Distribution/FourierSchwartz.lean Modified Mathlib/Analysis/Distribution/SchwartzSpace.lean +/- theorem SchwartzMap.integrable +/- theorem SchwartzMap.integrable_pow_mul +/- def SchwartzMap.integralCLM +/- theorem SchwartzMap.integralCLM_apply + theorem SchwartzMap.integralCLM_dirac_eq_delta Modified Mathlib/Analysis/SpecialFunctions/JapaneseBracket.lean +/- theorem finite_integral_one_add_norm +/- theorem integrable_one_add_norm +/- theorem integrable_rpow_neg_one_add_norm_sq 2024-03-21 14:51:08 dff9042 feat(Analysis/PSeries): some summability results (#11150) Summability of `n ↦ 1 / |n + a| ^ s` and `n ↦ n ^ k exp (-r * n)` ESTIMATED CHANGES Modified Mathlib/Analysis/PSeries.lean + theorem Real.summable_one_div_int_add_rpow + theorem Real.summable_one_div_nat_add_rpow Modified Mathlib/Analysis/SpecialFunctions/Exp.lean + theorem Real.summable_pow_mul_exp_neg_nat_mul 2024-03-21 14:25:16 02b189d chore(DirectSum): drop a `DecidableEq` assumption (#11537) ESTIMATED CHANGES Modified Mathlib/Algebra/DirectSum/LinearMap.lean 2024-03-21 13:04:20 b4f1310 chore(DedekindDomain): drop a `DecidableEq` assumption (#11532) ESTIMATED CHANGES Modified Mathlib/RingTheory/DedekindDomain/Ideal.lean 2024-03-21 13:04:19 ebbc0fe chore(HahnSeries): fix `Fintype`/`Finite` (#11531) ESTIMATED CHANGES Modified Mathlib/RingTheory/HahnSeries/PowerSeries.lean +/- def HahnSeries.toMvPowerSeries 2024-03-21 12:35:06 51ab0bb chore(MeasureTheory.Decomposition.Lebesgue): cleaning and a few new basic lemmas (#11561) Move lemmas to put similar ones together, replace `refine'` by `refine` and `=>` by `↦`. Lemmas added: * `singularPart_add_rnDeriv` and `rnDeriv_add_singularPart`: almost aliases of `haveLebesgueDecomposition_add` * `haveLebesgueDecomposition_smul'`, `haveLebesgueDecomposition_rnDeriv` * `singularPart_eq_zero_of_ac`, `singularPart_eq_zero`, `singularPart_self`, `singularPart_eq_self` ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Decomposition/Lebesgue.lean +/- theorem MeasureTheory.Measure.MutuallySingular.rnDeriv_ae_eq_zero +/- theorem MeasureTheory.Measure.absolutelyContinuous_withDensity_rnDeriv +/- theorem MeasureTheory.Measure.eq_rnDeriv₀ +/- theorem MeasureTheory.Measure.eq_withDensity_rnDeriv₀ +/- theorem MeasureTheory.Measure.integrable_toReal_rnDeriv +/- theorem MeasureTheory.Measure.lintegral_rnDeriv_lt_top_of_measure_ne_top + theorem MeasureTheory.Measure.rnDeriv_add_singularPart +/- theorem MeasureTheory.Measure.rnDeriv_of_not_haveLebesgueDecomposition +/- theorem MeasureTheory.Measure.rnDeriv_self + theorem MeasureTheory.Measure.singularPart_add_rnDeriv + theorem MeasureTheory.Measure.singularPart_eq_self + theorem MeasureTheory.Measure.singularPart_eq_zero + theorem MeasureTheory.Measure.singularPart_eq_zero_of_ac +/- theorem MeasureTheory.Measure.singularPart_of_not_haveLebesgueDecomposition + theorem MeasureTheory.Measure.singularPart_self +/- theorem MeasureTheory.Measure.singularPart_withDensity +/- theorem MeasureTheory.Measure.singularPart_zero 2024-03-21 10:04:05 bba4917 feat: add API for extension of cones (#11560) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Limits/Cones.lean + def CategoryTheory.Limits.Cocones.extend + def CategoryTheory.Limits.Cocones.extendComp + def CategoryTheory.Limits.Cocones.extendId + def CategoryTheory.Limits.Cocones.extendIso + def CategoryTheory.Limits.Cones.extend + def CategoryTheory.Limits.Cones.extendComp + def CategoryTheory.Limits.Cones.extendId + def CategoryTheory.Limits.Cones.extendIso Modified Mathlib/CategoryTheory/Limits/IsLimit.lean + def CategoryTheory.Limits.IsColimit.extendIso + def CategoryTheory.Limits.IsColimit.extendIsoEquiv + def CategoryTheory.Limits.IsColimit.ofExtendIso + def CategoryTheory.Limits.IsLimit.extendIso + def CategoryTheory.Limits.IsLimit.extendIsoEquiv + def CategoryTheory.Limits.IsLimit.ofExtendIso 2024-03-21 09:38:30 aab5a05 chore(AffineSpace/Matrix): fix `Fintype`/`Finite` (#11559) ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/AffineSpace/Matrix.lean +/- theorem AffineBasis.affineIndependent_of_toMatrix_right_inv +/- theorem AffineBasis.affineSpan_eq_top_of_toMatrix_left_inv +/- theorem AffineBasis.toMatrix_row_sum_one 2024-03-21 09:38:29 6b56766 chore(Star/Matrix): drop `DecidableEq` assumptions (#11557) ESTIMATED CHANGES Modified Mathlib/Analysis/NormedSpace/Star/Matrix.lean +/- theorem Matrix.l2_opNNNorm_conjTranspose +/- theorem Matrix.l2_opNorm_conjTranspose 2024-03-21 08:50:28 b505e8e chore: rename away from 'def' (#11548) This will become an error in 2024-03-16 nightly, possibly not permanently. ESTIMATED CHANGES Modified Archive/Imo/Imo2006Q5.lean Modified Mathlib/Algebra/LinearRecurrence.lean Modified Mathlib/Analysis/Asymptotics/Asymptotics.lean - theorem Asymptotics.IsLittleO.def + theorem Asymptotics.IsLittleO.definition Modified Mathlib/Analysis/BoxIntegral/DivergenceTheorem.lean Modified Mathlib/Analysis/Calculus/InverseFunctionTheorem/FDeriv.lean Modified Mathlib/Analysis/Calculus/Rademacher.lean Modified Mathlib/Analysis/SpecialFunctions/NonIntegrable.lean Modified Mathlib/Analysis/SpecificLimits/Normed.lean Modified Mathlib/CategoryTheory/Generator.lean + theorem CategoryTheory.IsCodetector.def' - theorem CategoryTheory.IsCodetector.def + theorem CategoryTheory.IsCoseparator.def' - theorem CategoryTheory.IsCoseparator.def + theorem CategoryTheory.IsDetector.def' - theorem CategoryTheory.IsDetector.def + theorem CategoryTheory.IsSeparator.def' - theorem CategoryTheory.IsSeparator.def Modified Mathlib/CategoryTheory/Preadditive/Generator.lean Modified Mathlib/CategoryTheory/Subterminal.lean + theorem CategoryTheory.IsSubterminal.def' - theorem CategoryTheory.IsSubterminal.def Modified Mathlib/Data/Polynomial/Degree/Definitions.lean + theorem Polynomial.Monic.def' - theorem Polynomial.Monic.def Modified Mathlib/Data/Polynomial/Degree/TrailingDegree.lean - theorem Polynomial.TrailingMonic.def + theorem Polynomial.TrailingMonic.definition Modified Mathlib/Data/Polynomial/Div.lean Modified Mathlib/Data/Polynomial/Eval.lean - theorem Polynomial.IsRoot.def + theorem Polynomial.IsRoot.definition Modified Mathlib/Data/Polynomial/FieldDivision.lean Modified Mathlib/Data/Polynomial/Monic.lean Modified Mathlib/Data/Polynomial/RingDivision.lean Modified Mathlib/Data/Polynomial/Splits.lean + theorem Polynomial.Splits.def' - theorem Polynomial.Splits.def Modified Mathlib/FieldTheory/AbelRuffini.lean Modified Mathlib/FieldTheory/Finite/Basic.lean Modified Mathlib/FieldTheory/Fixed.lean Modified Mathlib/FieldTheory/IsAlgClosed/Basic.lean Modified Mathlib/FieldTheory/IsAlgClosed/Spectrum.lean Modified Mathlib/FieldTheory/IsSepClosed.lean Modified Mathlib/FieldTheory/Normal.lean Modified Mathlib/FieldTheory/Separable.lean Modified Mathlib/FieldTheory/SplittingField/Construction.lean Modified Mathlib/LinearAlgebra/Charpoly/Basic.lean Modified Mathlib/LinearAlgebra/Matrix/Adjugate.lean Modified Mathlib/LinearAlgebra/SModEq.lean +/- theorem SModEq.sub_mem +/- theorem SModEq.zero Modified Mathlib/MeasureTheory/Function/Jacobian.lean Modified Mathlib/MeasureTheory/Integral/CircleIntegral.lean Modified Mathlib/MeasureTheory/Integral/IntervalIntegral.lean + theorem IntervalIntegrable.def' - theorem IntervalIntegrable.def Modified Mathlib/NumberTheory/Cyclotomic/Basic.lean Modified Mathlib/NumberTheory/Cyclotomic/PrimitiveRoots.lean Modified Mathlib/NumberTheory/FunctionField.lean + theorem FunctionField.inftyValuedFqt.def' - theorem FunctionField.inftyValuedFqt.def + theorem FunctionField.valuedFqtInfty.def' - theorem FunctionField.valuedFqtInfty.def Modified Mathlib/NumberTheory/Liouville/Basic.lean Modified Mathlib/NumberTheory/PrimesCongruentOne.lean Modified Mathlib/Probability/Kernel/Invariance.lean + theorem ProbabilityTheory.kernel.Invariant.def' - theorem ProbabilityTheory.kernel.Invariant.def Modified Mathlib/RingTheory/Discriminant.lean Modified Mathlib/RingTheory/Henselian.lean Modified Mathlib/RingTheory/Polynomial/Cyclotomic/Basic.lean Modified Mathlib/RingTheory/Polynomial/Cyclotomic/Expand.lean Modified Mathlib/RingTheory/Polynomial/Cyclotomic/Roots.lean Modified Mathlib/RingTheory/Polynomial/Eisenstein/Basic.lean Modified Mathlib/RingTheory/Polynomial/Pochhammer.lean Modified Mathlib/RingTheory/RootsOfUnity/Minpoly.lean Modified Mathlib/RingTheory/WittVector/FrobeniusFractionField.lean Modified Mathlib/SetTheory/ZFC/Basic.lean Modified Mathlib/Topology/Sober.lean + theorem IsGenericPoint.def' - theorem IsGenericPoint.def 2024-03-21 06:43:12 5befdcb chore: classify "`simp` can prove" porting notes (#11550) Classifies by adding issue number #10618 to porting notes claiming "`simp` can prove it". ESTIMATED CHANGES Modified Mathlib/Algebra/Invertible/Basic.lean Modified Mathlib/Algebra/Order/AbsoluteValue.lean Modified Mathlib/Algebra/Ring/Commute.lean Modified Mathlib/Algebra/Tropical/Basic.lean Modified Mathlib/Data/Fin/Basic.lean Modified Mathlib/Data/IsROrC/Basic.lean Modified Mathlib/Data/List/Sigma.lean Modified Mathlib/Data/Multiset/Range.lean Modified Mathlib/Data/Nat/Order/Basic.lean Modified Mathlib/Data/Option/NAry.lean Modified Mathlib/Data/Polynomial/Derivative.lean Modified Mathlib/Data/Set/Basic.lean Modified Mathlib/Data/Set/Finite.lean Modified Mathlib/Data/Set/Lattice.lean Modified Mathlib/Geometry/Manifold/Diffeomorph.lean Modified Mathlib/Geometry/Manifold/MFDeriv/FDeriv.lean Modified Mathlib/GroupTheory/Submonoid/Membership.lean Modified Mathlib/InformationTheory/Hamming.lean Modified Mathlib/Logic/Equiv/Set.lean Modified Mathlib/MeasureTheory/Integral/Average.lean Modified Mathlib/MeasureTheory/Measure/ProbabilityMeasure.lean Modified Mathlib/Order/SuccPred/Basic.lean Modified Mathlib/RingTheory/Localization/Basic.lean Modified Mathlib/SetTheory/Cardinal/Ordinal.lean Modified Mathlib/Topology/Basic.lean Modified Mathlib/Topology/FiberBundle/Basic.lean 2024-03-21 05:04:33 bf26b9c chore: split insertNth lemmas from List.Basic (#11542) Removes the `insertNth` section of this long file to its own new file. This section seems to be completely independent of the rest of the file, so this is a fairly easy split to make. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Data/Array/Lemmas.lean Modified Mathlib/Data/List/Basic.lean - theorem List.get_insertNth_add_succ - theorem List.get_insertNth_of_lt - theorem List.get_insertNth_self - theorem List.insertNth_comm - theorem List.insertNth_injective - theorem List.insertNth_length_self - theorem List.insertNth_of_length_lt - theorem List.insertNth_removeNth_of_ge - theorem List.insertNth_removeNth_of_le - theorem List.insertNth_succ_cons - theorem List.insertNth_succ_nil - theorem List.insertNth_zero - theorem List.length_insertNth - theorem List.length_insertNth_le_succ - theorem List.length_le_length_insertNth - theorem List.mem_insertNth - theorem List.nthLe_insertNth_add_succ - theorem List.nthLe_insertNth_of_lt - theorem List.nthLe_insertNth_self - theorem List.removeNth_insertNth Modified Mathlib/Data/List/DropRight.lean Added Mathlib/Data/List/InsertNth.lean + theorem List.get_insertNth_add_succ + theorem List.get_insertNth_of_lt + theorem List.get_insertNth_self + theorem List.insertNth_comm + theorem List.insertNth_injective + theorem List.insertNth_length_self + theorem List.insertNth_of_length_lt + theorem List.insertNth_removeNth_of_ge + theorem List.insertNth_removeNth_of_le + theorem List.insertNth_succ_cons + theorem List.insertNth_succ_nil + theorem List.insertNth_zero + theorem List.length_insertNth + theorem List.length_insertNth_le_succ + theorem List.length_le_length_insertNth + theorem List.mem_insertNth + theorem List.nthLe_insertNth_add_succ + theorem List.nthLe_insertNth_of_lt + theorem List.nthLe_insertNth_self + theorem List.removeNth_insertNth Modified Mathlib/Data/List/Lemmas.lean Modified Mathlib/Data/List/Perm.lean Modified Mathlib/Data/Seq/WSeq.lean Modified Mathlib/Data/Vector/Basic.lean Modified Mathlib/GroupTheory/FreeGroup/Basic.lean Modified Mathlib/SetTheory/Game/PGame.lean Modified scripts/noshake.json Modified test/rewrites.lean 2024-03-21 02:09:36 fa6bad6 feat: the generators of a presented group generate the presented group (#11493) - Add `FreeGroup.closure_range_of`: the subgroup closure of the range of `FreeGroup.of : α → FreeGroup α` is `⊤`. (That is, the generators of a free group generate the free group.) - Add `PresentedGroup.closure_range_of`: the subgroup closure of the range of `PresentedGroup.of : α → PresentedGroup rels` is `⊤`. (That is, the generators of a presented group generate the presented group.) ESTIMATED CHANGES Modified Mathlib/GroupTheory/FreeGroup/Basic.lean + theorem FreeGroup.closure_range_of + theorem FreeGroup.lift_of_eq_id Modified Mathlib/GroupTheory/PresentedGroup.lean + theorem PresentedGroup.closure_range_of 2024-03-21 00:51:52 c5a921e chore: simplify some proofs for the 2024-03-16 nightly (#11547) Some small changes to adapt to the 2024-03-16 nightly that can land in advance. ESTIMATED CHANGES Modified Mathlib/Data/List/Basic.lean Modified Mathlib/Data/Nat/Order/Basic.lean Modified Mathlib/Data/Set/Enumerate.lean Modified Mathlib/Geometry/Manifold/VectorBundle/Basic.lean Modified Mathlib/GroupTheory/Congruence.lean Modified Mathlib/MeasureTheory/Constructions/BorelSpace/Basic.lean Modified Mathlib/MeasureTheory/SetSemiring.lean Modified Mathlib/Order/Partition/Finpartition.lean Modified Mathlib/Order/SupIndep.lean Modified Mathlib/Topology/Algebra/Group/Basic.lean 2024-03-20 23:42:49 026dd70 chore: Rename `cat_coe_nat`/`cast_coe_int` to `cast_natCast`/`cast_intCast` (#11552) Reduce the diff of #11499 ESTIMATED CHANGES Modified Archive/Imo/Imo2013Q5.lean Modified Mathlib/Algebra/ContinuedFractions/Computation/TerminatesIffRat.lean Modified Mathlib/Algebra/Order/Archimedean.lean Modified Mathlib/Analysis/InnerProductSpace/OfNorm.lean Modified Mathlib/Data/Rat/Cast/CharZero.lean Modified Mathlib/Data/Rat/Cast/Defs.lean - theorem Rat.cast_coe_int - theorem Rat.cast_coe_nat + theorem Rat.cast_intCast + theorem Rat.cast_natCast Modified Mathlib/Data/Rat/Floor.lean Modified Mathlib/Data/Real/Archimedean.lean Modified Mathlib/Data/Real/Irrational.lean Modified Mathlib/NumberTheory/DiophantineApproximation.lean Modified Mathlib/NumberTheory/Harmonic/Bounds.lean Modified Mathlib/NumberTheory/Harmonic/Int.lean Modified Mathlib/NumberTheory/Liouville/LiouvilleWith.lean Modified Mathlib/NumberTheory/NumberField/ClassNumber.lean Modified Mathlib/NumberTheory/NumberField/Discriminant.lean Modified Mathlib/NumberTheory/NumberField/Embeddings.lean Modified Mathlib/NumberTheory/NumberField/Units.lean Modified Mathlib/NumberTheory/Padics/PadicNumbers.lean 2024-03-20 22:37:13 c63c49a chore: golf two_lt_card_iff (#11541) Makes the proof of this lemma shorter and perhaps cleaner by adding a new lemma and moving it forward to take advantage of the preexisting `card_eq_three` ESTIMATED CHANGES Modified Mathlib/Data/Finset/Card.lean + theorem Finset.le_card_iff_exists_subset_card 2024-03-20 22:11:17 b163aa0 feat: remove superseded `small_of_fintype` (#11326) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Data/Countable/Small.lean Deleted Mathlib/Data/Fintype/Small.lean Modified Mathlib/Logic/Small/Basic.lean 2024-03-20 20:37:04 d825880 chore(HomOrthogonal): fix `Fintype`/`Finite` (#11539) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Preadditive/HomOrthogonal.lean +/- theorem CategoryTheory.HomOrthogonal.equiv_of_iso +/- theorem CategoryTheory.HomOrthogonal.matrixDecomposition_comp +/- theorem CategoryTheory.HomOrthogonal.matrixDecomposition_id 2024-03-20 19:29:17 5db12db chore(Module/Zlattice): fix `Fintype`/`Finite` (#11538) ESTIMATED CHANGES Modified Mathlib/Algebra/Module/Zlattice.lean 2024-03-20 19:03:24 4e3a442 feat(NumberTheory/LSeries/Deriv): derivatives of L-series (#11245) This adds a file `Mathlib.NumberTheory.LSeries.Deriv` that contains results on differentiability and derivatives of L-series, including the fact that the L-series is holomorphic on its right half-plane of absolute convergence. See [this thread](https://leanprover.zulipchat.com/#narrow/stream/144837-PR-reviews/topic/L-series/near/424858837) on Zulip. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/Complex/HalfPlane.lean + theorem Complex.isOpen_im_gt_EReal + theorem Complex.isOpen_im_lt_EReal + theorem Complex.isOpen_re_gt_EReal + theorem Complex.isOpen_re_lt_EReal Modified Mathlib/NumberTheory/LSeries/Basic.lean + theorem LSeriesSummable.congr' + theorem LSeriesSummable_congr' Modified Mathlib/NumberTheory/LSeries/Convergence.lean + theorem LSeries.abscissaOfAbsConv_congr' + theorem LSeries.abscissaOfAbsConv_congr Added Mathlib/NumberTheory/LSeries/Deriv.lean + theorem LSeries.abscissaOfAbsConv_logMul + theorem LSeries.absicssaOfAbsConv_logPowMul + theorem LSeries.hasDerivAt_term + theorem LSeriesSummable_logMul_of_lt_re + theorem LSeries_analyticOn + theorem LSeries_deriv + theorem LSeries_deriv_eqOn + theorem LSeries_differentiableOn + theorem LSeries_hasDerivAt + theorem LSeries_iteratedDeriv 2024-03-20 16:24:08 5b192fd feat(NumberTheory/LSeries): abstract functional equations (#11176) A general framework for proving analytic continuation & functional equations via Mellin transforms. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/NumberTheory/LSeries/AbstractFuncEq.lean + theorem StrongFEPair.differentiable_Λ + theorem StrongFEPair.functional_equation + theorem StrongFEPair.hasMellin + theorem StrongFEPair.hf_top' + theorem StrongFEPair.hf_zero' + def StrongFEPair.symm + theorem StrongFEPair.symm_Λ_eq + def StrongFEPair.Λ + theorem StrongFEPair.Λ_eq + structure StrongFEPair + theorem WeakFEPair.differentiableAt_Λ + theorem WeakFEPair.differentiable_Λ₀ + def WeakFEPair.f_modif + theorem WeakFEPair.f_modif_aux1 + theorem WeakFEPair.f_modif_aux2 + theorem WeakFEPair.functional_equation + theorem WeakFEPair.functional_equation₀ + def WeakFEPair.g_modif + theorem WeakFEPair.h_feq' + theorem WeakFEPair.hasMellin + theorem WeakFEPair.hf_modif_FE + theorem WeakFEPair.hf_modif_int + theorem WeakFEPair.hf_zero' + theorem WeakFEPair.hf_zero + def WeakFEPair.symm + theorem WeakFEPair.symm_Λ₀_eq + def WeakFEPair.toStrongFEPair + def WeakFEPair.Λ + theorem WeakFEPair.Λ_residue_k + theorem WeakFEPair.Λ_residue_zero + def WeakFEPair.Λ₀ + theorem WeakFEPair.Λ₀_eq + structure WeakFEPair 2024-03-20 15:45:55 32531f6 feat: density of a finite kernel wrt another kernel (#10948) Let `κ : kernel α (γ × β)` and `ν : kernel α γ` be two finite kernels with `kernel.fst κ ≤ ν`, where `γ` has a countably generated σ-algebra (true in particular for standard Borel spaces). We build a function `f : α → γ → Set β → ℝ` jointly measurable in the first two arguments such that for all `a : α` and all measurable sets `s : Set β` and `A : Set γ`, `∫ x in A, f a x s ∂(ν a) = (κ a (A ×ˢ s)).toReal`. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Data/Set/MemPartition.lean Modified Mathlib/MeasureTheory/MeasurableSpace/CountablyGenerated.lean + theorem MeasurableSpace.measurableSet_generateFrom_countablePartition_iff + theorem MeasurableSpace.measurableSet_generateFrom_memPartition_iff Modified Mathlib/Probability/Kernel/Basic.lean + theorem ProbabilityTheory.isFiniteKernel_of_le Modified Mathlib/Probability/Kernel/Composition.lean Added Mathlib/Probability/Kernel/Disintegration/Density.lean + theorem ProbabilityTheory.kernel.adapted_densityProcess + theorem ProbabilityTheory.kernel.condexp_densityProcess + def ProbabilityTheory.kernel.density + def ProbabilityTheory.kernel.densityProcess + theorem ProbabilityTheory.kernel.densityProcess_antitone_kernel_right + theorem ProbabilityTheory.kernel.densityProcess_def + theorem ProbabilityTheory.kernel.densityProcess_empty + theorem ProbabilityTheory.kernel.densityProcess_fst_univ + theorem ProbabilityTheory.kernel.densityProcess_fst_univ_ae + theorem ProbabilityTheory.kernel.densityProcess_le_one + theorem ProbabilityTheory.kernel.densityProcess_mono_kernel_left + theorem ProbabilityTheory.kernel.densityProcess_mono_set + theorem ProbabilityTheory.kernel.densityProcess_nonneg + theorem ProbabilityTheory.kernel.density_ae_eq_limitProcess + theorem ProbabilityTheory.kernel.density_fst_univ + theorem ProbabilityTheory.kernel.density_le_one + theorem ProbabilityTheory.kernel.density_mono_set + theorem ProbabilityTheory.kernel.density_nonneg + theorem ProbabilityTheory.kernel.integrable_density + theorem ProbabilityTheory.kernel.integrable_densityProcess + theorem ProbabilityTheory.kernel.integral_density + theorem ProbabilityTheory.kernel.integral_densityProcess + theorem ProbabilityTheory.kernel.lintegral_density + theorem ProbabilityTheory.kernel.martingale_densityProcess + theorem ProbabilityTheory.kernel.meas_countablePartitionSet_le_of_fst_le + theorem ProbabilityTheory.kernel.measurable_countableFiltration_densityProcess + theorem ProbabilityTheory.kernel.measurable_density + theorem ProbabilityTheory.kernel.measurable_densityProcess + theorem ProbabilityTheory.kernel.measurable_densityProcess_aux + theorem ProbabilityTheory.kernel.measurable_densityProcess_countableFiltration_aux + theorem ProbabilityTheory.kernel.measurable_densityProcess_left + theorem ProbabilityTheory.kernel.measurable_densityProcess_right + theorem ProbabilityTheory.kernel.measurable_density_left + theorem ProbabilityTheory.kernel.measurable_density_right + theorem ProbabilityTheory.kernel.memL1_limitProcess_densityProcess + theorem ProbabilityTheory.kernel.set_integral_density + theorem ProbabilityTheory.kernel.set_integral_densityProcess + theorem ProbabilityTheory.kernel.set_integral_densityProcess_of_le + theorem ProbabilityTheory.kernel.set_integral_densityProcess_of_mem + theorem ProbabilityTheory.kernel.set_integral_density_of_measurableSet + theorem ProbabilityTheory.kernel.set_lintegral_density + theorem ProbabilityTheory.kernel.snorm_densityProcess_le + theorem ProbabilityTheory.kernel.snorm_density_le + theorem ProbabilityTheory.kernel.stronglyMeasurable_countableFiltration_densityProcess + theorem ProbabilityTheory.kernel.tendsto_densityProcess_atTop_empty_of_antitone + theorem ProbabilityTheory.kernel.tendsto_densityProcess_atTop_of_antitone + theorem ProbabilityTheory.kernel.tendsto_densityProcess_fst_atTop_ae_of_monotone + theorem ProbabilityTheory.kernel.tendsto_densityProcess_fst_atTop_univ_of_monotone + theorem ProbabilityTheory.kernel.tendsto_densityProcess_limitProcess + theorem ProbabilityTheory.kernel.tendsto_density_atTop_ae_of_antitone + theorem ProbabilityTheory.kernel.tendsto_density_fst_atTop_ae_of_monotone + theorem ProbabilityTheory.kernel.tendsto_integral_density_of_antitone + theorem ProbabilityTheory.kernel.tendsto_integral_density_of_monotone + theorem ProbabilityTheory.kernel.tendsto_m_density + theorem ProbabilityTheory.kernel.tendsto_set_integral_densityProcess + theorem ProbabilityTheory.kernel.tendsto_snorm_one_densityProcess_limitProcess + theorem ProbabilityTheory.kernel.tendsto_snorm_one_restrict_densityProcess_limitProcess 2024-03-20 15:20:23 a584fa1 fix: add imports now needed in Imo1998Q2 and Imo1988Q6 (#11535) Fixes breakage from #11507. ESTIMATED CHANGES Modified Archive/Imo/Imo1988Q6.lean Modified Archive/Imo/Imo1998Q2.lean 2024-03-20 13:56:14 01017f4 chore(GroupTheory/Nilpotent): slight golfs and clean-up (#11516) - replace apply foo.mpr by rw [foo], golfing into the next line - replace a few `@foo _ _ _` by named arguments ESTIMATED CHANGES Modified Mathlib/GroupTheory/Nilpotent.lean 2024-03-20 13:56:13 fa3a2fd golf: replace some `apply foo.mpr` by `rw [foo]` (#11515) Sometimes, that line can be golfed into the next line. Inspired by a [comment](https://github.com/leanprover-community/mathlib4/pull/11208#discussion_r1530467335) of @loefflerd; any decisions are my own. ESTIMATED CHANGES Modified Mathlib/Algebra/BigOperators/Basic.lean Modified Mathlib/Analysis/Calculus/ContDiff/Basic.lean Modified Mathlib/Analysis/NormedSpace/Units.lean Modified Mathlib/Control/Functor/Multivariate.lean Modified Mathlib/Data/BitVec/Lemmas.lean Modified Mathlib/Data/List/Nodup.lean Modified Mathlib/Data/List/Pairwise.lean Modified Mathlib/Data/Set/Intervals/Disjoint.lean Modified Mathlib/FieldTheory/PrimitiveElement.lean Modified Mathlib/Geometry/Manifold/ChartedSpace.lean Modified Mathlib/Geometry/Manifold/SmoothManifoldWithCorners.lean Modified Mathlib/GroupTheory/NoncommPiCoprod.lean Modified Mathlib/Logic/Equiv/Defs.lean Modified Mathlib/Topology/ContinuousFunction/StoneWeierstrass.lean Modified Mathlib/Topology/ContinuousFunction/Weierstrass.lean Modified Mathlib/Topology/EMetricSpace/Lipschitz.lean 2024-03-20 13:11:05 3a427de refactor(UniformSpace): change the definition (#10901) - replace `isOpen_uniformity` with `nhds_eq_comap_uniformity` as I suggested in #2028 - don't extend `UniformSpace.Core` so that we can drop `refl`, as it follows from `nhds_eq_comap_uniformity`; - drop `UniformSpace.mk'` - can't be a `match_pattern` anymore; - deprecate `UniformSpace.ofNhdsEqComap`. ESTIMATED CHANGES Modified Mathlib/Topology/Algebra/UniformGroup.lean Modified Mathlib/Topology/MetricSpace/PseudoMetric.lean + theorem UniformSpace.ofDist_aux Modified Mathlib/Topology/UniformSpace/Basic.lean + theorem UniformSpace.Core.nhds_toTopologicalSpace +/- def UniformSpace.comap - def UniformSpace.mk' +/- def UniformSpace.ofCore +/- def UniformSpace.ofNhdsEqComap + def UniformSpace.toCore +/- theorem nhds_eq_comap_uniformity Modified Mathlib/Topology/UniformSpace/Compact.lean Modified Mathlib/Topology/UniformSpace/Separation.lean 2024-03-20 12:03:47 75dad16 chore: Rename `zpow_coe_nat` to `zpow_natCast` (#11528) ... and add a deprecated alias for the old name. This is mostly just me discovering the power of `F2` ESTIMATED CHANGES Modified Mathlib/Algebra/CharZero/Quotient.lean Modified Mathlib/Algebra/Group/Conj.lean Modified Mathlib/Algebra/Group/Defs.lean - theorem zpow_coe_nat + theorem zpow_natCast Modified Mathlib/Algebra/Group/Hom/Defs.lean Modified Mathlib/Algebra/Group/Hom/Instances.lean Modified Mathlib/Algebra/Group/InjSurj.lean Modified Mathlib/Algebra/Group/Opposite.lean Modified Mathlib/Algebra/Group/Semiconj/Units.lean Modified Mathlib/Algebra/GroupPower/Basic.lean Modified Mathlib/Algebra/GroupPower/CovariantClass.lean Modified Mathlib/Algebra/GroupPower/Order.lean Modified Mathlib/Algebra/GroupWithZero/Power.lean Modified Mathlib/Algebra/Lie/Weights/Chain.lean Modified Mathlib/Algebra/ModEq.lean Modified Mathlib/Algebra/Module/LinearMap/End.lean Modified Mathlib/Algebra/Module/Torsion.lean Modified Mathlib/Algebra/Order/Archimedean.lean Modified Mathlib/Algebra/Order/Field/Defs.lean Modified Mathlib/Algebra/Order/Field/Power.lean Modified Mathlib/Algebra/Order/Module/OrderedSMul.lean Modified Mathlib/Algebra/Order/Ring/Abs.lean Modified Mathlib/Algebra/Periodic.lean Modified Mathlib/Analysis/Analytic/IsolatedZeros.lean Modified Mathlib/Analysis/Analytic/Meromorphic.lean Modified Mathlib/Analysis/Asymptotics/SuperpolynomialDecay.lean Modified Mathlib/Analysis/Asymptotics/Theta.lean Modified Mathlib/Analysis/Calculus/Deriv/ZPow.lean Modified Mathlib/Analysis/Convex/Mul.lean Modified Mathlib/Analysis/NormedSpace/Exponential.lean Modified Mathlib/Analysis/NormedSpace/MatrixExponential.lean Modified Mathlib/Analysis/SpecialFunctions/Integrals.lean Modified Mathlib/Analysis/SpecialFunctions/Log/Basic.lean Modified Mathlib/Analysis/SpecialFunctions/Pow/NNReal.lean Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Angle.lean Modified Mathlib/Analysis/SpecificLimits/Normed.lean Modified Mathlib/CategoryTheory/Preadditive/EilenbergMoore.lean Modified Mathlib/CategoryTheory/Preadditive/EndoFunctor.lean Modified Mathlib/Data/ENNReal/Inv.lean Modified Mathlib/Data/Int/Cast/Lemmas.lean Modified Mathlib/Data/Int/GCD.lean Modified Mathlib/Data/Int/Log.lean Modified Mathlib/Data/Int/Order/Basic.lean Modified Mathlib/Data/Real/Irrational.lean Modified Mathlib/Data/ZMod/Quotient.lean Modified Mathlib/Deprecated/Subfield.lean Modified Mathlib/Dynamics/PeriodicPts.lean Modified Mathlib/FieldTheory/KummerExtension.lean Modified Mathlib/Geometry/Manifold/VectorBundle/SmoothSection.lean Modified Mathlib/GroupTheory/Archimedean.lean Modified Mathlib/GroupTheory/Complement.lean Modified Mathlib/GroupTheory/Congruence.lean Modified Mathlib/GroupTheory/Divisible.lean Modified Mathlib/GroupTheory/FreeGroup/Basic.lean Modified Mathlib/GroupTheory/GroupAction/Period.lean Modified Mathlib/GroupTheory/GroupAction/Ring.lean Modified Mathlib/GroupTheory/OrderOfElement.lean Modified Mathlib/GroupTheory/Perm/Cycle/Basic.lean Modified Mathlib/GroupTheory/Perm/Cycle/Concrete.lean Modified Mathlib/GroupTheory/Perm/Fin.lean Modified Mathlib/GroupTheory/SpecificGroups/Cyclic.lean Modified Mathlib/GroupTheory/Subgroup/Basic.lean Modified Mathlib/GroupTheory/Subgroup/Saturated.lean Modified Mathlib/GroupTheory/Subgroup/ZPowers.lean Modified Mathlib/LinearAlgebra/Matrix/ZPow.lean Modified Mathlib/MeasureTheory/Group/Arithmetic.lean Modified Mathlib/MeasureTheory/Integral/CircleIntegral.lean Modified Mathlib/MeasureTheory/Measure/MeasureSpace.lean Modified Mathlib/NumberTheory/Cyclotomic/CyclotomicCharacter.lean Modified Mathlib/NumberTheory/Harmonic/Int.lean Modified Mathlib/NumberTheory/ModularForms/JacobiTheta/OneVariable.lean Modified Mathlib/NumberTheory/NumberField/Discriminant.lean Modified Mathlib/NumberTheory/Padics/PadicIntegers.lean Modified Mathlib/NumberTheory/Padics/PadicNumbers.lean Modified Mathlib/NumberTheory/Pell.lean Modified Mathlib/RingTheory/DedekindDomain/Factorization.lean Modified Mathlib/RingTheory/RootsOfUnity/Basic.lean Modified Mathlib/Tactic/Abel.lean Modified Mathlib/Tactic/Group.lean Modified Mathlib/Tactic/NormNum/Pow.lean Modified Mathlib/Topology/Algebra/GroupWithZero.lean Modified Mathlib/Topology/Algebra/Module/Basic.lean Modified Mathlib/Topology/Algebra/Order/Field.lean Modified Mathlib/Topology/Algebra/UniformGroup.lean Modified Mathlib/Topology/ContinuousFunction/Bounded.lean Modified Mathlib/Topology/ContinuousFunction/ZeroAtInfty.lean Modified Mathlib/Topology/Instances/AddCircle.lean 2024-03-20 10:53:26 9db6579 chore(Data/Funlike): update examples and replace Lean 3 syntax (#11409) Fully update the module docstrings (in particular, the examples given therein) after #8386. This includes switching to where syntax, but also replacing Lean 3 syntax, replacing => by "\mapsto" while at it and indenting code per the style guide. As such, it's also a follow-up to #11301. ESTIMATED CHANGES Modified Mathlib/Data/FunLike/Basic.lean +/- structure CoolerHom +/- theorem map_cool +/- theorem map_op Modified Mathlib/Data/FunLike/Embedding.lean +/- structure CoolerEmbedding +/- theorem do_something +/- theorem map_cool +/- theorem map_op Modified Mathlib/Data/FunLike/Equiv.lean +/- structure CoolerIso +/- theorem do_something +/- theorem map_cool Modified Mathlib/Data/SetLike/Basic.lean 2024-03-20 10:53:25 f637899 chore: golf using `filter_upwards` (#11208) This is presumably not exhaustive, but covers about a hundred instances. Style opinions (e.g., why a particular change is great/not a good idea) are very welcome; I'm still forming my own. ESTIMATED CHANGES Modified Mathlib/Analysis/Calculus/BumpFunction/Convolution.lean Modified Mathlib/Analysis/Calculus/BumpFunction/FiniteDimension.lean Modified Mathlib/Analysis/Calculus/Rademacher.lean Modified Mathlib/Analysis/Calculus/UniformLimitsDeriv.lean Modified Mathlib/Analysis/Convolution.lean Modified Mathlib/Analysis/Distribution/AEEqOfIntegralContDiff.lean Modified Mathlib/Analysis/Fourier/FourierTransformDeriv.lean Modified Mathlib/Analysis/Fourier/Inversion.lean Modified Mathlib/Analysis/SpecialFunctions/Gamma/Basic.lean Modified Mathlib/Analysis/SpecialFunctions/Gamma/Beta.lean Modified Mathlib/Analysis/SpecialFunctions/Gamma/BohrMollerup.lean Modified Mathlib/Analysis/SpecialFunctions/Gaussian.lean Modified Mathlib/Analysis/SpecialFunctions/Pow/Asymptotics.lean Modified Mathlib/Combinatorics/Hindman.lean Modified Mathlib/Computability/AkraBazzi/GrowsPolynomially.lean Modified Mathlib/MeasureTheory/Constructions/Prod/Integral.lean Modified Mathlib/MeasureTheory/Covering/Differentiation.lean Modified Mathlib/MeasureTheory/Decomposition/RadonNikodym.lean Modified Mathlib/MeasureTheory/Function/ConditionalExpectation/AEMeasurable.lean Modified Mathlib/MeasureTheory/Function/ConditionalExpectation/CondexpL1.lean Modified Mathlib/MeasureTheory/Function/ConditionalExpectation/CondexpL2.lean Modified Mathlib/MeasureTheory/Function/ConditionalExpectation/Real.lean Modified Mathlib/MeasureTheory/Function/Jacobian.lean Modified Mathlib/MeasureTheory/Function/LocallyIntegrable.lean Modified Mathlib/MeasureTheory/Function/LpSeminorm/Basic.lean Modified Mathlib/MeasureTheory/Function/LpSpace.lean Modified Mathlib/MeasureTheory/Function/SimpleFuncDenseLp.lean Modified Mathlib/MeasureTheory/Function/StronglyMeasurable/Basic.lean Modified Mathlib/MeasureTheory/Function/UniformIntegrable.lean Modified Mathlib/MeasureTheory/Integral/Bochner.lean Modified Mathlib/MeasureTheory/Integral/DominatedConvergence.lean Modified Mathlib/MeasureTheory/Integral/ExpDecay.lean Modified Mathlib/MeasureTheory/Integral/IntegralEqImproper.lean Modified Mathlib/MeasureTheory/Integral/IntervalIntegral.lean Modified Mathlib/MeasureTheory/Integral/MeanInequalities.lean Modified Mathlib/MeasureTheory/Integral/PeakFunction.lean Modified Mathlib/MeasureTheory/Integral/SetIntegral.lean Modified Mathlib/MeasureTheory/Measure/Haar/Unique.lean Modified Mathlib/MeasureTheory/Measure/Lebesgue/EqHaar.lean Modified Mathlib/MeasureTheory/Measure/MeasureSpace.lean Modified Mathlib/MeasureTheory/Measure/Tilted.lean Modified Mathlib/MeasureTheory/Measure/WithDensity.lean Modified Mathlib/Order/Filter/AtTopBot.lean Modified Mathlib/Order/LiminfLimsup.lean Modified Mathlib/Probability/Distributions/Gamma.lean Modified Mathlib/Probability/Kernel/Disintegration.lean Modified Mathlib/Probability/Kernel/IntegralCompProd.lean Modified Mathlib/Probability/Kernel/MeasurableIntegral.lean Modified Mathlib/Probability/Martingale/Upcrossing.lean Modified Mathlib/Probability/Moments.lean Modified Mathlib/Probability/StrongLaw.lean Modified Mathlib/Topology/UrysohnsLemma.lean 2024-03-20 10:53:23 64aa2a2 chore(LinearAlgebra/Matrix/ToLin): clean up (#11171) ESTIMATED CHANGES Modified Mathlib/Data/Matrix/Basic.lean Modified Mathlib/LinearAlgebra/Matrix/ToLin.lean +/- theorem Algebra.leftMulMatrix_injective 2024-03-20 10:53:22 63ca896 chore(Topology/ContinuousFunction/Bounded): Rename instances (#10780) All the unnamed instances here were very long, and Moritz recently linked one of these to a newcomer. Also slightly clean up the `Lattice` instance ESTIMATED CHANGES Modified Mathlib/Topology/ContinuousFunction/Bounded.lean - theorem BoundedContinuousFunction.coeFn_abs - theorem BoundedContinuousFunction.coeFn_sup + theorem BoundedContinuousFunction.coe_abs + theorem BoundedContinuousFunction.coe_inf + theorem BoundedContinuousFunction.coe_negPart + theorem BoundedContinuousFunction.coe_posPart + theorem BoundedContinuousFunction.coe_sup Modified docs/overview.yaml Modified docs/undergrad.yaml 2024-03-20 09:04:06 61e0ad2 chore: Move basic ordered field lemmas (#11503) These lemmas are needed to define the semifield structure on `NNRat`, hence I am repurposing `Algebra.Order.Field.Defs` from avoiding a timeout (which I believe was solved long ago) to avoiding to import random stuff in the definition of the semifield structure on `NNRat` (although this PR doesn't actually reduce imports there, it will be in a later PR). Reduce the diff of #11203 ESTIMATED CHANGES Modified Mathlib/Algebra/ContinuedFractions/ConvergentsEquiv.lean Modified Mathlib/Algebra/GeomSum.lean Modified Mathlib/Algebra/Order/Field/Basic.lean - theorem div_nonneg - theorem div_nonpos_of_nonneg_of_nonpos - theorem div_nonpos_of_nonpos_of_nonneg - theorem div_pos - theorem inv_lt_zero - theorem inv_nonneg - theorem inv_nonpos - theorem inv_pos - theorem one_div_neg - theorem one_div_nonneg - theorem one_div_nonpos - theorem one_div_pos - theorem zpow_nonneg - theorem zpow_pos_of_pos Modified Mathlib/Algebra/Order/Field/Defs.lean + theorem div_nonneg + theorem div_nonpos_of_nonneg_of_nonpos + theorem div_nonpos_of_nonpos_of_nonneg + theorem div_pos + theorem inv_lt_zero + theorem inv_nonneg + theorem inv_nonpos + theorem inv_pos + theorem one_div_neg + theorem one_div_nonneg + theorem one_div_nonpos + theorem one_div_pos + theorem zpow_nonneg + theorem zpow_pos_of_pos Modified Mathlib/Algebra/Order/Module/Pointwise.lean Modified Mathlib/Algebra/Order/Monovary.lean Modified Mathlib/Algebra/Order/Nonneg/Field.lean Modified Mathlib/Algebra/Order/Positive/Field.lean Modified Mathlib/Combinatorics/SetFamily/AhlswedeZhang.lean Modified Mathlib/Combinatorics/SimpleGraph/Density.lean Modified Mathlib/Data/NNRat/Lemmas.lean Modified Mathlib/Data/Rat/Cast/Order.lean Modified Mathlib/NumberTheory/ADEInequality.lean Modified Mathlib/NumberTheory/Harmonic/Defs.lean Modified Mathlib/Order/Filter/AtTopBot.lean Modified Mathlib/Order/RelSeries.lean Modified Mathlib/Tactic/CancelDenoms/Core.lean Modified Mathlib/Topology/UniformSpace/AbsoluteValue.lean Modified scripts/noshake.json Modified test/GCongr/inequalities.lean 2024-03-20 04:59:33 0153e9b feat(Lean/Expr): define `Expr.eraseProofs` (#10867) ESTIMATED CHANGES Modified Mathlib/Lean/Expr/Basic.lean + def Lean.Expr.eraseProofs 2024-03-20 02:43:19 4c8f5f4 feat(Separation): define R0 spaces (#10621) Generalize `coclosedCompact_eq_cocompact` and `relativelyCompact`. ESTIMATED CHANGES Modified Mathlib/Topology/Compactification/OnePoint.lean Modified Mathlib/Topology/Compactness/Compact.lean + theorem Filter.compl_mem_coclosedCompact + theorem Filter.mem_coclosedCompact_iff Modified Mathlib/Topology/Inseparable.lean + theorem Specializes.fst + theorem Specializes.snd Modified Mathlib/Topology/Separation.lean +/- theorem Bornology.relativelyCompact.isBounded_iff +/- def Bornology.relativelyCompact +/- theorem Bornology.relativelyCompact_eq_inCompact +/- theorem Filter.coclosedCompact_eq_cocompact +/- theorem Filter.coclosedCompact_le_cofinite + theorem Inducing.r0Space + theorem Set.Finite.isCompact_closure +/- theorem Specializes.symm + theorem isCompact_closure_singleton Modified Mathlib/Topology/Support.lean 2024-03-19 23:05:11 69fd837 refactor: single-edge graph (#9736) From https://github.com/leanprover-community/mathlib4/pull/9267#discussion_r1451605191: > I would prefer we use lattice operations for adding edges. The idea is to make constructor `SimpleGraph.edge (v w : V) : SimpleGraph V` that creates a graph with a single edge between `v` and `w` if they're not equal (and no edge if they are), and then `G.addEdge v w` would instead be `G ⊔ edge v w`. This is more versatile, though perhaps lemmas such as `addEdge_of_adj` are a bit more brittle to apply. ESTIMATED CHANGES Modified Mathlib/Combinatorics/SimpleGraph/Clique.lean Modified Mathlib/Combinatorics/SimpleGraph/Operations.lean - def SimpleGraph.addEdge - theorem SimpleGraph.addEdge_of_adj - theorem SimpleGraph.addEdge_self - theorem SimpleGraph.card_edgeFinset_addEdge + theorem SimpleGraph.card_edgeFinset_sup_edge + def SimpleGraph.edge - theorem SimpleGraph.edgeFinset_addEdge + theorem SimpleGraph.edgeFinset_sup_edge + theorem SimpleGraph.edge_adj + theorem SimpleGraph.edge_edgeSet_of_ne + theorem SimpleGraph.edge_self_eq_bot + theorem SimpleGraph.sup_edge_of_adj + theorem SimpleGraph.sup_edge_self 2024-03-19 22:00:37 d025702 chore: Move `pow_lt_pow_succ` to `Algebra.Order.WithZero` (#11507) These lemmas can be defined earlier, ridding us of an import in `Algebra.GroupPower.Order` ESTIMATED CHANGES Modified Mathlib/Algebra/GroupPower/Order.lean - theorem pow_lt_pow_right₀ - theorem pow_lt_pow_succ - theorem pow_pos_iff Modified Mathlib/Algebra/Order/Field/Basic.lean Modified Mathlib/Algebra/Order/Floor.lean +/- theorem Nat.ceil_eq_zero Modified Mathlib/Algebra/Order/WithZero.lean + theorem pow_lt_pow_right₀ + theorem pow_lt_pow_succ + theorem pow_pos_iff Modified Mathlib/Data/Ordmap/Ordset.lean Modified Mathlib/Order/RelSeries.lean 2024-03-19 20:08:16 119c442 chore: classify "added `theorem`" porting notes (#11513) Classifies by adding issue number #11432 to porting notes claiming "added theorem" or "added lemma". ESTIMATED CHANGES Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Basic.lean Modified Mathlib/FieldTheory/PerfectClosure.lean 2024-03-19 20:08:15 5dc8b36 chore: classify `new definition` porting notes (#11512) Classifies by adding issue number #11446 to porting notes claiming "added definition". ESTIMATED CHANGES Modified Mathlib/Algebra/Lie/UniversalEnveloping.lean Modified Mathlib/CategoryTheory/Sites/Grothendieck.lean Modified Mathlib/NumberTheory/ArithmeticFunction.lean Modified Mathlib/SetTheory/Game/Basic.lean 2024-03-19 20:08:14 b3a2821 chore: tidy various files (#11490) ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/Hom.lean +/- def AlgHomClass.toAlgHom Modified Mathlib/Algebra/Algebra/Subalgebra/Basic.lean +/- theorem AlgHom.ker_rangeRestrict +/- theorem AlgHom.rangeRestrict_surjective Modified Mathlib/Algebra/Module/CharacterModule.lean Modified Mathlib/Algebra/Order/Nonneg/Ring.lean Modified Mathlib/AlgebraicGeometry/ProjectiveSpectrum/Scheme.lean Modified Mathlib/Analysis/Asymptotics/Asymptotics.lean Modified Mathlib/Analysis/Fourier/RiemannLebesgueLemma.lean Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Bounds.lean Modified Mathlib/Combinatorics/SetFamily/Shadow.lean +/- theorem Finset.mem_shadow_iff_insert_mem Modified Mathlib/Data/Finset/Preimage.lean Modified Mathlib/Data/Int/Order/Basic.lean +/- theorem Nat.cast_natAbs Modified Mathlib/Data/SetLike/Basic.lean Modified Mathlib/FieldTheory/PurelyInseparable.lean Modified Mathlib/GroupTheory/Perm/Basic.lean Modified Mathlib/Logic/Function/Basic.lean Modified Mathlib/MeasureTheory/Integral/DominatedConvergence.lean Modified Mathlib/MeasureTheory/Measure/NullMeasurable.lean Modified Mathlib/MeasureTheory/Measure/Regular.lean Modified Mathlib/MeasureTheory/Measure/Typeclasses.lean Modified Mathlib/MeasureTheory/OuterMeasure/Basic.lean Modified Mathlib/NumberTheory/Harmonic/Defs.lean +/- theorem harmonic_eq_sum_Icc +/- theorem harmonic_pos Modified Mathlib/NumberTheory/NumberField/Embeddings.lean Modified Mathlib/NumberTheory/Padics/PadicNumbers.lean Modified Mathlib/Order/Partition/Finpartition.lean Modified Mathlib/Order/SupIndep.lean Modified Mathlib/Order/ZornAtoms.lean Modified Mathlib/RingTheory/Algebraic.lean Modified Mathlib/RingTheory/Ideal/Basic.lean Modified Mathlib/RingTheory/Polynomial/Basic.lean Modified Mathlib/SetTheory/Ordinal/Principal.lean Modified Mathlib/Topology/Algebra/InfiniteSum/Group.lean Modified Mathlib/Topology/Algebra/InfiniteSum/NatInt.lean Modified Mathlib/Topology/Algebra/Module/LinearPMap.lean Modified Mathlib/Topology/Baire/CompleteMetrizable.lean Modified Mathlib/Topology/Constructions.lean Modified Mathlib/Topology/MetricSpace/Closeds.lean 2024-03-19 18:17:49 c9f1361 perf(LinearAlgebra.TensorProduct.Basic): add `TensorProduct.addMonoid` (#11505) We define `TensorProduct.addCommMonoid` in terms of `TensorProduct.addMonoid` to reduce unfolding. ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/TensorProduct/Basic.lean 2024-03-19 18:17:48 75784e0 chore: rename open_range to isOpen_range, closed_range to isClosed_range (#11438) All these lemmas refer to the range of some function being open/range (i.e. `isOpen` or `isClosed`). ESTIMATED CHANGES Modified Mathlib/AlgebraicGeometry/FunctionField.lean Modified Mathlib/AlgebraicGeometry/Morphisms/Basic.lean Modified Mathlib/AlgebraicGeometry/Morphisms/QuasiSeparated.lean Modified Mathlib/AlgebraicGeometry/Morphisms/RingHomProperties.lean Modified Mathlib/AlgebraicGeometry/OpenImmersion.lean + theorem AlgebraicGeometry.IsOpenImmersion.isOpen_range - theorem AlgebraicGeometry.IsOpenImmersion.open_range Modified Mathlib/AlgebraicGeometry/PrimeSpectrum/Basic.lean Modified Mathlib/AlgebraicGeometry/Properties.lean Modified Mathlib/Analysis/InnerProductSpace/LaxMilgram.lean - theorem IsCoercive.closed_range + theorem IsCoercive.isClosed_range Modified Mathlib/Analysis/NormedSpace/Star/GelfandDuality.lean Modified Mathlib/Analysis/NormedSpace/Units.lean Modified Mathlib/CategoryTheory/Extensive.lean Modified Mathlib/Geometry/Manifold/BumpFunction.lean Modified Mathlib/Geometry/Manifold/InteriorBoundary.lean Modified Mathlib/Geometry/Manifold/SmoothManifoldWithCorners.lean - theorem ModelWithCorners.closed_range + theorem ModelWithCorners.isClosed_range Modified Mathlib/MeasureTheory/Constructions/BorelSpace/Basic.lean Modified Mathlib/MeasureTheory/Constructions/Polish.lean Modified Mathlib/MeasureTheory/Function/StronglyMeasurable/Basic.lean Modified Mathlib/Topology/Algebra/ContinuousMonoidHom.lean Modified Mathlib/Topology/Algebra/Module/FiniteDimension.lean Modified Mathlib/Topology/Algebra/StarSubalgebra.lean Modified Mathlib/Topology/Category/Profinite/Nobeling.lean Modified Mathlib/Topology/Category/Stonean/Limits.lean Modified Mathlib/Topology/Category/TopCat/Limits/Products.lean Modified Mathlib/Topology/Category/TopCat/Limits/Pullbacks.lean Modified Mathlib/Topology/Clopen.lean Modified Mathlib/Topology/Compactification/OnePoint.lean Modified Mathlib/Topology/Compactness/Compact.lean Modified Mathlib/Topology/Compactness/Lindelof.lean Modified Mathlib/Topology/Compactness/LocallyCompact.lean Modified Mathlib/Topology/Compactness/Paracompact.lean Modified Mathlib/Topology/Connected/LocallyConnected.lean Modified Mathlib/Topology/Constructions.lean Modified Mathlib/Topology/ContinuousFunction/ZeroAtInfty.lean - theorem ZeroAtInftyContinuousMap.closed_range_toBCF + theorem ZeroAtInftyContinuousMap.isClosed_range_toBCF Modified Mathlib/Topology/ContinuousOn.lean Modified Mathlib/Topology/Defs/Induced.lean Modified Mathlib/Topology/Instances/ENNReal.lean Modified Mathlib/Topology/Instances/Irrational.lean Modified Mathlib/Topology/IsLocalHomeomorph.lean Modified Mathlib/Topology/LocalAtTarget.lean Modified Mathlib/Topology/Maps.lean - theorem IsClosedMap.closed_range + theorem IsClosedMap.isClosed_range Modified Mathlib/Topology/MetricSpace/Antilipschitz.lean Modified Mathlib/Topology/MetricSpace/Polish.lean Modified Mathlib/Topology/SeparatedMap.lean Modified Mathlib/Topology/Separation.lean - theorem Function.LeftInverse.closed_range + theorem Function.LeftInverse.isClosed_range Modified Mathlib/Topology/Sets/Opens.lean Modified Mathlib/Topology/Sober.lean Modified Mathlib/Topology/TietzeExtension.lean Modified Mathlib/Topology/UniformSpace/UniformEmbedding.lean 2024-03-19 17:09:13 5c4a670 feat(Data/Matrix/Basic): add missing theorem mulVec_sub (#11392) Adds the following missing theorem ``` theorem mulVec_sub [Fintype n] (A : Matrix m n α) (x y : n → α) : A *ᵥ (x - y) = A *ᵥ x - A *ᵥ y ``` Currently there only is ```mulVec_sub```. I asked about it here on [zulip](https://leanprover.zulipchat.com/#narrow/stream/113489-new-members/topic/No.20theorem.20Matrix.2EmulVec_sub). ESTIMATED CHANGES Modified Mathlib/Data/Matrix/Basic.lean + theorem Matrix.mulVec_sub + theorem Matrix.sub_vecMul 2024-03-19 17:09:12 e623116 feat: lemmas about `List.reverseRecOn` (#11257) This renames the arguments to the eliminators to be more ergonomic when using the `induction` tactic. I also changed the definition in an attempt to make the proof easier. ESTIMATED CHANGES Modified Mathlib/Data/List/Basic.lean +/- def List.bidirectionalRec - def List.bidirectionalRecOn + theorem List.bidirectionalRec_cons_append + theorem List.bidirectionalRec_nil + theorem List.bidirectionalRec_singleton +/- def List.reverseRecOn + theorem List.reverseRecOn_concat + theorem List.reverseRecOn_nil Modified Mathlib/Data/List/ToFinsupp.lean 2024-03-19 16:06:54 82e96fe chore: Protect `Nat.xor_comm` (#11506) as it conflicts with `xor_comm` in the root namespace. Also protect `Nat.xor_assoc` in case someone adds `xor_assoc`. ESTIMATED CHANGES Modified Mathlib/Data/Nat/Bitwise.lean - theorem Nat.lxor_cancel_right - theorem Nat.xor_assoc + theorem Nat.xor_cancel_right - theorem Nat.xor_comm Modified Mathlib/SetTheory/Game/Nim.lean 2024-03-19 14:54:03 8ff9aa6 chore: Move `GroupWithZero` lemmas earlier (#10919) Move from `Algebra.GroupWithZero.Units.Lemmas` to `Algebra.GroupWithZero.Units.Basic` the lemmas that can be moved. ESTIMATED CHANGES Modified Mathlib/Algebra/EuclideanDomain/Instances.lean Modified Mathlib/Algebra/GroupWithZero/Power.lean Modified Mathlib/Algebra/GroupWithZero/Units/Basic.lean + theorem div_div_cancel' + theorem div_div_cancel_left' + theorem div_div_div_cancel_left' + theorem div_div_div_cancel_right + theorem div_eq_div_iff + theorem div_eq_div_iff_div_eq_div' + theorem div_eq_iff + theorem div_eq_iff_mul_eq + theorem div_eq_of_eq_mul + theorem div_eq_one_iff_eq + theorem div_helper + theorem div_left_inj' + theorem div_mul_cancel + theorem div_mul_cancel_of_imp + theorem div_mul_div_cancel + theorem div_mul_left + theorem div_mul_right + theorem div_self + theorem divp_mk0 + theorem eq_div_iff + theorem eq_div_iff_mul_eq + theorem eq_div_of_mul_eq + theorem eq_inv_mul_iff_mul_eq₀ + theorem eq_mul_inv_iff_mul_eq₀ + theorem eq_mul_of_inv_mul_eq₀ + theorem eq_mul_of_mul_inv_eq₀ + theorem inv_mul_eq_iff_eq_mul₀ + theorem inv_mul_eq_one₀ + theorem mul_div_cancel' + theorem mul_div_cancel + theorem mul_div_cancel_left + theorem mul_div_cancel_left_of_imp + theorem mul_div_cancel_of_imp' + theorem mul_div_cancel_of_imp + theorem mul_div_mul_left + theorem mul_div_mul_right + theorem mul_eq_mul_of_div_eq_div + theorem mul_eq_of_eq_inv_mul₀ + theorem mul_eq_of_eq_mul_inv₀ + theorem mul_eq_one_iff_eq_inv₀ + theorem mul_eq_one_iff_inv_eq₀ + theorem mul_inv_eq_iff_eq_mul₀ + theorem mul_inv_eq_one₀ + theorem mul_mul_div + theorem mul_one_div_cancel + theorem one_div_mul_cancel Modified Mathlib/Algebra/GroupWithZero/Units/Lemmas.lean - theorem div_div_cancel' - theorem div_div_cancel_left' - theorem div_div_div_cancel_left' - theorem div_div_div_cancel_right - theorem div_eq_div_iff - theorem div_eq_div_iff_div_eq_div' - theorem div_eq_iff - theorem div_eq_iff_mul_eq - theorem div_eq_of_eq_mul - theorem div_eq_one_iff_eq - theorem div_helper - theorem div_left_inj' - theorem div_mul_cancel - theorem div_mul_cancel_of_imp - theorem div_mul_div_cancel - theorem div_mul_left - theorem div_mul_right - theorem div_self - theorem divp_mk0 - theorem eq_div_iff - theorem eq_div_iff_mul_eq - theorem eq_div_of_mul_eq - theorem eq_inv_mul_iff_mul_eq₀ - theorem eq_mul_inv_iff_mul_eq₀ - theorem eq_mul_of_inv_mul_eq₀ - theorem eq_mul_of_mul_inv_eq₀ - theorem inv_mul_eq_iff_eq_mul₀ - theorem inv_mul_eq_one₀ - theorem mul_div_cancel' - theorem mul_div_cancel - theorem mul_div_cancel_left - theorem mul_div_cancel_left_of_imp - theorem mul_div_cancel_of_imp' - theorem mul_div_cancel_of_imp - theorem mul_div_mul_left - theorem mul_div_mul_right - theorem mul_eq_mul_of_div_eq_div - theorem mul_eq_of_eq_inv_mul₀ - theorem mul_eq_of_eq_mul_inv₀ - theorem mul_eq_one_iff_eq_inv₀ - theorem mul_eq_one_iff_inv_eq₀ - theorem mul_inv_eq_iff_eq_mul₀ - theorem mul_inv_eq_one₀ - theorem mul_mul_div - theorem mul_one_div_cancel - theorem one_div_mul_cancel Modified Mathlib/Algebra/Invertible/Basic.lean Modified Mathlib/CategoryTheory/Limits/FilteredColimitCommutesFiniteLimit.lean Modified Mathlib/Data/Fintype/Basic.lean Modified Mathlib/Data/Int/Cast/Field.lean Modified Mathlib/Data/Int/GCD.lean Modified Mathlib/Data/Rat/Cast/Defs.lean Modified Mathlib/Data/Rat/Lemmas.lean Modified Mathlib/GroupTheory/Subsemigroup/Centralizer.lean 2024-03-19 14:21:17 5f5e83b feat: cocones lift to the over category (#11488) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Limits/ConeCategory.lean + def CategoryTheory.Limits.Cocone.mapCoconeToOver + def CategoryTheory.Limits.Cocone.toOver + def CategoryTheory.Limits.Cone.mapConeToUnder + def CategoryTheory.Limits.Cone.toUnder Modified Mathlib/CategoryTheory/Limits/Over.lean + def CategoryTheory.Limits.colimit.isColimitToOver + def CategoryTheory.Limits.limit.isLimitToOver + def CategoryTheory.Over.isColimitToOver + def CategoryTheory.Under.isLimitToUnder 2024-03-19 14:21:15 e2f74f2 feat: Add `Zlattice.basis` (#11323) For a `ℤ`-lattice `L` of `E`, defined as a discrete subgroup that spans the whole space `E` over `K`, proves that any `ℤ`-basis of `L` is also a `K`-basis of `E`. This provides the link between the two points of view on lattices in this file. ESTIMATED CHANGES Modified Mathlib/Algebra/Module/Zlattice.lean + def Basis.ofZlatticeBasis + theorem Basis.ofZlatticeBasis_apply + theorem Basis.ofZlatticeBasis_repr_apply + theorem Basis.ofZlatticeBasis_span 2024-03-19 13:54:03 6d4365d chore(CategoryTheory): split the file `CategoryTheory/Sites/EffectiveEpimorphic/Basic.lean` (#11458) Adds no new material, just splits the file into smaller chunks and removes a couple of useless lemmas. - [x] depends on: #11457 ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/EffectiveEpi/Basic.lean + def CategoryTheory.EffectiveEpi.desc + theorem CategoryTheory.EffectiveEpi.fac + def CategoryTheory.EffectiveEpi.getStruct + theorem CategoryTheory.EffectiveEpi.uniq + def CategoryTheory.EffectiveEpiFamily.desc + theorem CategoryTheory.EffectiveEpiFamily.fac + def CategoryTheory.EffectiveEpiFamily.getStruct + theorem CategoryTheory.EffectiveEpiFamily.hom_ext + theorem CategoryTheory.EffectiveEpiFamily.uniq + structure CategoryTheory.EffectiveEpiFamilyStruct + structure CategoryTheory.EffectiveEpiStruct + def CategoryTheory.effectiveEpiFamilyStructOfIsIsoDesc + def CategoryTheory.effectiveEpiFamilyStructSingletonOfEffectiveEpi + def CategoryTheory.effectiveEpiStructOfEffectiveEpiFamilySingleton + def CategoryTheory.effectiveEpiStructOfIsIso + theorem CategoryTheory.effectiveEpi_iff_effectiveEpiFamily Added Mathlib/CategoryTheory/EffectiveEpi/Comp.lean + def CategoryTheory.effectiveEpiFamilyStructCompIso + theorem CategoryTheory.effectiveEpiFamilyStructCompIso_aux + def CategoryTheory.effectiveEpiFamilyStructIsoComp + theorem CategoryTheory.effectiveEpiFamilyStructIsoComp_aux + def CategoryTheory.effectiveEpiStructCompOfEffectiveEpiSplitEpi' + def CategoryTheory.effectiveEpiStructCompOfEffectiveEpiSplitEpi Added Mathlib/CategoryTheory/EffectiveEpi/Coproduct.lean + def CategoryTheory.effectiveEpiFamilyStructOfEffectiveEpiDesc + theorem CategoryTheory.effectiveEpiFamilyStructOfEffectiveEpiDesc_aux + def CategoryTheory.effectiveEpiStructDescOfEffectiveEpiFamily + def CategoryTheory.effectiveEpiStructIsColimitDescOfEffectiveEpiFamily Added Mathlib/CategoryTheory/EffectiveEpi/Preserves.lean + def CategoryTheory.effectiveEpiFamilyStructOfEquivalence + theorem CategoryTheory.effectiveEpiFamilyStructOfEquivalence_aux Added Mathlib/CategoryTheory/EffectiveEpi/RegularEpi.lean + theorem CategoryTheory.effectiveEpiOfKernelPair + def CategoryTheory.effectiveEpiStructOfRegularEpi Modified Mathlib/CategoryTheory/Sites/Coherent/Basic.lean Modified Mathlib/CategoryTheory/Sites/Coherent/CoherentSheaves.lean Modified Mathlib/CategoryTheory/Sites/Coherent/Comparison.lean Modified Mathlib/CategoryTheory/Sites/Coherent/Equivalence.lean Modified Mathlib/CategoryTheory/Sites/Coherent/RegularSheaves.lean Modified Mathlib/CategoryTheory/Sites/Coherent/RegularTopology.lean +/- theorem CategoryTheory.regularTopology.mem_sieves_iff_hasEffectiveEpi +/- theorem CategoryTheory.regularTopology.mem_sieves_of_hasEffectiveEpi Modified Mathlib/CategoryTheory/Sites/EffectiveEpimorphic.lean - def CategoryTheory.EffectiveEpi.desc - theorem CategoryTheory.EffectiveEpi.fac - def CategoryTheory.EffectiveEpi.getStruct - theorem CategoryTheory.EffectiveEpi.uniq - def CategoryTheory.EffectiveEpiFamily.desc - theorem CategoryTheory.EffectiveEpiFamily.fac - def CategoryTheory.EffectiveEpiFamily.getStruct - theorem CategoryTheory.EffectiveEpiFamily.hom_ext - theorem CategoryTheory.EffectiveEpiFamily.uniq - structure CategoryTheory.EffectiveEpiFamilyStruct - structure CategoryTheory.EffectiveEpiStruct - def CategoryTheory.effectiveEpiFamilyStructCompIso - theorem CategoryTheory.effectiveEpiFamilyStructCompIso_aux - def CategoryTheory.effectiveEpiFamilyStructId - def CategoryTheory.effectiveEpiFamilyStructIsoComp - theorem CategoryTheory.effectiveEpiFamilyStructIsoComp_aux - def CategoryTheory.effectiveEpiFamilyStructOfEffectiveEpiDesc - theorem CategoryTheory.effectiveEpiFamilyStructOfEffectiveEpiDesc_aux - def CategoryTheory.effectiveEpiFamilyStructOfEquivalence - theorem CategoryTheory.effectiveEpiFamilyStructOfEquivalence_aux - def CategoryTheory.effectiveEpiFamilyStructOfIsIsoDesc - def CategoryTheory.effectiveEpiFamilyStructSingletonOfEffectiveEpi - theorem CategoryTheory.effectiveEpiOfKernelPair - def CategoryTheory.effectiveEpiStructCompOfEffectiveEpiSplitEpi' - def CategoryTheory.effectiveEpiStructCompOfEffectiveEpiSplitEpi - def CategoryTheory.effectiveEpiStructDescOfEffectiveEpiFamily - def CategoryTheory.effectiveEpiStructIsColimitDescOfEffectiveEpiFamily - def CategoryTheory.effectiveEpiStructOfEffectiveEpiFamilySingleton - def CategoryTheory.effectiveEpiStructOfIsIso - def CategoryTheory.effectiveEpiStructOfRegularEpi - theorem CategoryTheory.effectiveEpi_iff_effectiveEpiFamily - theorem CategoryTheory.effectiveEpi_iff_epi Modified Mathlib/Topology/Category/TopCat/EffectiveEpi.lean 2024-03-19 10:57:11 c9a0699 chore: update github actions (#11467) Hopefully has no effect except to remove some warnings in the build logs. ESTIMATED CHANGES Modified .github/workflows/bors.yml Modified .github/workflows/build.yml Modified .github/workflows/build.yml.in Modified .github/workflows/build_fork.yml 2024-03-19 10:57:10 921f506 feat(Algebra/Homology): behaviour of the total complex with respect to the shifts (#10854) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Homology/HomologicalBicomplex.lean + def HomologicalComplex₂.XXIsoOfEq + theorem HomologicalComplex₂.XXIsoOfEq_rfl Modified Mathlib/Algebra/Homology/TotalComplex.lean + theorem HomologicalComplex₂.XXIsoOfEq_hom_ιTotal + theorem HomologicalComplex₂.XXIsoOfEq_inv_ιTotal Added Mathlib/Algebra/Homology/TotalComplexShift.lean + theorem HomologicalComplex₂.D₁_totalShift₁XIso_hom + theorem HomologicalComplex₂.D₁_totalShift₂XIso_hom + theorem HomologicalComplex₂.D₂_totalShift₁XIso_hom + theorem HomologicalComplex₂.D₂_totalShift₂XIso_hom 2024-03-19 09:49:28 4bf0be4 chore(Mathlib/Data/List/Basic): minimize imports (#11497) Use `Nat` specialized theorems, and `omega`, where necessary to avoid needing to import the abstract ordered algebra hierarchy for basic results about `List`. Import graph between `Mathlib.Order.Basic` and `Mathlib.Data.List.Basic`: * [before.pdf](https://github.com/leanprover-community/mathlib4/files/14646805/before.pdf) * [after.pdf](https://github.com/leanprover-community/mathlib4/files/14646804/after.pdf) ESTIMATED CHANGES Modified Mathlib/Algebra/ContinuedFractions/TerminatedStable.lean Modified Mathlib/Data/List/Basic.lean +/- theorem List.take_append Modified Mathlib/Data/List/BigOperators/Basic.lean Modified Mathlib/Data/List/Chain.lean Modified Mathlib/Data/List/DropRight.lean Modified Mathlib/Data/List/EditDistance/Bounds.lean Modified Mathlib/Data/List/Infix.lean Modified Mathlib/Data/List/Lattice.lean Modified Mathlib/Data/List/Lemmas.lean Modified Mathlib/Data/List/MinMax.lean Modified Mathlib/Data/Seq/Seq.lean Modified Mathlib/Data/Seq/WSeq.lean Modified Mathlib/Data/Stream/Init.lean Modified scripts/noshake.json 2024-03-19 09:18:55 8a2bb96 feat(Algebra/Homology): the category of short complexes is linear (#10923) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Homology/ShortComplex/Linear.lean + def CategoryTheory.ShortComplex.HomologyMapData.smul + def CategoryTheory.ShortComplex.Homotopy.smul + def CategoryTheory.ShortComplex.LeftHomologyMapData.smul + def CategoryTheory.ShortComplex.RightHomologyMapData.smul + theorem CategoryTheory.ShortComplex.cyclesMap'_smul + theorem CategoryTheory.ShortComplex.cyclesMap_smul + theorem CategoryTheory.ShortComplex.homologyMap'_smul + theorem CategoryTheory.ShortComplex.homologyMap_smul + theorem CategoryTheory.ShortComplex.leftHomologyMap'_smul + theorem CategoryTheory.ShortComplex.leftHomologyMap_smul + theorem CategoryTheory.ShortComplex.opcyclesMap'_smul + theorem CategoryTheory.ShortComplex.opcyclesMap_smul + theorem CategoryTheory.ShortComplex.rightHomologyMap'_smul + theorem CategoryTheory.ShortComplex.rightHomologyMap_smul + theorem CategoryTheory.ShortComplex.smul_τ₁ + theorem CategoryTheory.ShortComplex.smul_τ₂ + theorem CategoryTheory.ShortComplex.smul_τ₃ Modified Mathlib/Algebra/Homology/ShortComplex/Preadditive.lean 2024-03-19 06:00:54 c13f0f5 feat: further relax assumptions for (co)limits in Type (#11487) After #11148, all results about concrete limits and colimits hold whenever the relevant (co)limits exist, which is optimal. Thanks to Joël Riou for making this possible! ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Limits/Types.lean +/- theorem CategoryTheory.Limits.Types.Colimit.w_apply +/- theorem CategoryTheory.Limits.Types.Colimit.ι_desc_apply +/- theorem CategoryTheory.Limits.Types.Colimit.ι_map_apply +/- theorem CategoryTheory.Limits.Types.Limit.lift_π_apply +/- theorem CategoryTheory.Limits.Types.Limit.map_π_apply +/- theorem CategoryTheory.Limits.Types.Limit.w_apply +/- theorem CategoryTheory.Limits.Types.Limit.π_mk +/- theorem CategoryTheory.Limits.Types.colimitEquivQuot_apply +/- theorem CategoryTheory.Limits.Types.colimitEquivQuot_symm_apply +/- theorem CategoryTheory.Limits.Types.colimit_eq +/- theorem CategoryTheory.Limits.Types.colimit_sound' +/- theorem CategoryTheory.Limits.Types.colimit_sound +/- theorem CategoryTheory.Limits.Types.jointly_surjective' +/- theorem CategoryTheory.Limits.Types.limitEquivSections_apply +/- theorem CategoryTheory.Limits.Types.limitEquivSections_symm_apply +/- theorem CategoryTheory.Limits.Types.limit_ext +/- theorem CategoryTheory.Limits.Types.limit_ext_iff + theorem CategoryTheory.Limits.Types.small_quot_of_hasColimit 2024-03-19 03:58:53 919892d chore: add actionlint (#11471) ESTIMATED CHANGES Added .github/actionlint.yml Added .github/workflows/actionlint.yml Modified .github/workflows/bors.yml Modified .github/workflows/build.yml Modified .github/workflows/build.yml.in Modified .github/workflows/build_fork.yml Modified .github/workflows/detect_sha_changes.yml Modified .github/workflows/label_new_contributor.yml Modified .github/workflows/nightly_bump_toolchain.yml Modified .github/workflows/nightly_detect_failure.yml 2024-03-19 03:35:19 efca024 fix(Cache): do not read lake-manifest.json at import-time (#11492) Previously this file was read four times at runtime, and once for each file at compile time. Now it is read only once, when `lake exe cache` is run. `initialize` is not a substitute for correctly passing global state through a program; my impression is that it is intended for *language-* rather than program-level initialization. The performance impact is negligible, but the new code is more predictable. Tested on mathlib, and on a package created using `lake new foo math`, pointed at this mathlib branch. `lake exe cache get` works correctly (leaves `lake build` with nothing to do) in both cases. ESTIMATED CHANGES Modified Cache/Hashing.lean +/- def Cache.Hashing.getHashMemo +/- def Cache.Hashing.getRootHash Modified Cache/IO.lean + structure Cache.IO.CacheM.Context + def Cache.IO.CacheM.run +/- def Cache.IO.getPackageDir +/- def Cache.IO.getPackageDirs +/- def Cache.IO.mathlibDepPath +/- def Cache.IO.mkBuildPaths - def Cache.IO.parseMathlibDepPath +/- def Cache.IO.unpackCache Modified Cache/Main.lean Modified Cache/Requests.lean +/- def Cache.Requests.checkForToolchainMismatch 2024-03-19 00:24:56 23ebcff feat(GroupTheory/GroupAction/SubMulAction): two more orbit lemmas (#11463) Add two more lemmas about orbits in a `SubMulAction`, both closely related to the existing `val_image_orbit`. From AperiodicMonotilesLean. ESTIMATED CHANGES Modified Mathlib/GroupTheory/GroupAction/SubMulAction.lean + theorem SubMulAction.mem_orbit_subMul_iff + theorem SubMulAction.orbitRel_of_subMul + theorem SubMulAction.val_preimage_orbit 2024-03-18 23:55:30 346550b refactor(LinearAlgebra/BilinearForm/Basic): descope `BilinForm` to modules over commutative semirings (#11280) Require the module in the definition of the `BilinForm` structure to be over a commutative semiring. This PR is a per-requisite for #11278. It supersedes #10422. It's been pointed out elsewhere that the current definition over a non-commutative semiring doesn't make mathematical sense: https://github.com/leanprover-community/mathlib4/issues/10553#issuecomment-1944434170 Eventually the non-commutative situation may be considered in a mathematically meaningful way in the context of sesquilinear maps (e.g. something like https://github.com/leanprover-community/mathlib4/pull/9334#pullrequestreview-1880856848). ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/BilinearForm/Basic.lean +/- def BilinForm.flipHom +/- def BilinForm.flipHomAux +/- theorem BilinForm.flip_apply +/- theorem BilinForm.flip_flip +/- theorem BilinForm.flip_flip_aux +/- structure BilinForm Modified Mathlib/LinearAlgebra/BilinearForm/Hom.lean +/- theorem BilinForm.comp_congr +/- def BilinForm.congr +/- theorem BilinForm.congr_apply +/- theorem BilinForm.congr_comp +/- theorem BilinForm.congr_congr +/- theorem BilinForm.congr_refl +/- theorem BilinForm.congr_symm +/- theorem BilinForm.congr_trans +/- theorem BilinForm.ext_basis +/- def BilinForm.linMulLin +/- theorem BilinForm.linMulLin_comp +/- theorem BilinForm.linMulLin_compLeft +/- theorem BilinForm.linMulLin_compRight +/- theorem BilinForm.sum_repr_mul_repr_mul +/- theorem BilinForm.toLin'Flip_apply +/- theorem BilinForm.toLin'_apply +/- def BilinForm.toLin +/- def BilinForm.toLinHom +/- def BilinForm.toLinHomAux₂ +/- def BilinForm.toLinHomFlip +/- theorem BilinForm.toLin_apply +/- def LinearMap.toBilin +/- def LinearMap.toBilinAux +/- theorem LinearMap.toBilinAux_eq +/- theorem LinearMap.toBilin_apply Modified Mathlib/LinearAlgebra/BilinearForm/Orthogonal.lean Modified Mathlib/LinearAlgebra/BilinearForm/Properties.lean +/- theorem BilinForm.IsAdjointPair.smul +/- theorem BilinForm.Nondegenerate.congr +/- theorem BilinForm.Nondegenerate.ker_eq_bot +/- def BilinForm.isPairSelfAdjointSubmodule +/- theorem BilinForm.isPairSelfAdjoint_equiv +/- theorem BilinForm.isSymm_iff_flip +/- theorem BilinForm.mem_isPairSelfAdjointSubmodule +/- theorem BilinForm.mem_selfAdjointSubmodule +/- theorem BilinForm.mem_skewAdjointSubmodule +/- theorem BilinForm.nondegenerate_congr_iff +/- theorem BilinForm.nondegenerate_iff_ker_eq_bot Modified Mathlib/LinearAlgebra/Matrix/BilinearForm.lean 2024-03-18 21:07:09 e38a3c0 feat: functor creates limit if it lifts a single limit cone (#11482) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Limits/Creates.lean + def CategoryTheory.createsColimitOfReflectsIso' + def CategoryTheory.createsLimitOfReflectsIso' 2024-03-18 20:42:51 7ba92d5 feat(CategoryTheory): construction of a functor for the small object argument (#11056) Given a family of morphisms `f i : A i ⟶ B i` in a category `C` and an object `S : C`, we define a functor `SmallObject.functor f S : Over S ⥤ Over S` which shall play an important role in the formalization of the "small object argument". ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/SmallObject/Construction.lean + theorem CategoryTheory.SmallObject.FunctorObjIndex.comm + structure CategoryTheory.SmallObject.FunctorObjIndex + theorem CategoryTheory.SmallObject.functorMapSrc_functorObjTop + theorem CategoryTheory.SmallObject.functorMap_comm + theorem CategoryTheory.SmallObject.functorMap_id + theorem CategoryTheory.SmallObject.functorMap_π + theorem CategoryTheory.SmallObject.functorObj_comm + theorem CategoryTheory.SmallObject.ιFunctorObj_extension + theorem CategoryTheory.SmallObject.ιFunctorObj_naturality + theorem CategoryTheory.SmallObject.ιFunctorObj_πFunctorObj + theorem CategoryTheory.SmallObject.ι_functorMapSrc + theorem CategoryTheory.SmallObject.ι_functorMapTgt + theorem CategoryTheory.SmallObject.ρFunctorObj_π 2024-03-18 20:42:50 a67cd89 feat(CategoryTheory/GradedObject): the associator for the composition of bifunctors (#10747) When bifunctors `F₁₂`, `G`, `F` and `G₂₃` are equipped with a natural isomorphism `G(F₁₂(X₁, X₂), X₃) ≅ F(X₁, G₂₃(X₂, X₃))` in three variables, then under reasonable assumptions and conditions on indices, there is an associator isomorphism for the action of these bifunctors on graded objects `mapBifunctorMapObj G ρ₁₂.q (mapBifunctorMapObj F₁₂ ρ₁₂.p X₁ X₂) X₃ ≅mapBifunctorMapObj F ρ₂₃.q X₁ (mapBifunctorMapObj G₂₃ ρ₂₃.p X₂ X₃)`. This shall be used in order to construct the associator isomorphism for the monoidal category structure on graded objects. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/GradedObject/Associator.lean + theorem CategoryTheory.GradedObject.ι_mapBifunctorAssociator_hom + theorem CategoryTheory.GradedObject.ι_mapBifunctorAssociator_inv 2024-03-18 20:17:41 15e8bbd chore(Order/Birkhoff): remove unnecessary assumption (#10924) Remove the assumption that the type be a distributive lattice when partial order suffices in Birkhoff's representation theorem. Co-authored by : Sam van Gool @samvang ESTIMATED CHANGES Modified Mathlib/Order/Birkhoff.lean +/- theorem LatticeHom.birkhoffFinset_injective +/- theorem OrderEmbedding.birkhoffSet_apply +/- theorem OrderEmbedding.birkhoffSet_inf +/- theorem OrderEmbedding.birkhoffSet_sup +/- theorem OrderEmbedding.coe_birkhoffFinset + def OrderEmbedding.infIrredUpperSet + theorem OrderEmbedding.infIrredUpperSet_apply + theorem OrderEmbedding.infIrredUpperSet_surjective + def OrderEmbedding.supIrredLowerSet + theorem OrderEmbedding.supIrredLowerSet_apply + theorem OrderEmbedding.supIrredLowerSet_surjective + theorem OrderIso.infIrredUpperSet_apply + theorem OrderIso.infIrredUpperSet_symm_apply + theorem OrderIso.supIrredLowerSet_apply + theorem OrderIso.supIrredLowerSet_symm_apply Modified docs/references.bib 2024-03-18 17:11:01 75c86f0 chore(*): remove empty lines between variable statements (#11418) Empty lines were removed by executing the following Python script twice ```python import os import re # Loop through each file in the repository for dir_path, dirs, files in os.walk('.'): for filename in files: if filename.endswith('.lean'): file_path = os.path.join(dir_path, filename) # Open the file and read its contents with open(file_path, 'r') as file: content = file.read() # Use a regular expression to replace sequences of "variable" lines separated by empty lines # with sequences without empty lines modified_content = re.sub(r'(variable.*\n)\n(variable(?! .* in))', r'\1\2', content) # Write the modified content back to the file with open(file_path, 'w') as file: file.write(modified_content) ``` ESTIMATED CHANGES Modified Archive/Imo/Imo1975Q1.lean Modified Archive/Imo/Imo2019Q2.lean Modified Archive/Wiedijk100Theorems/SolutionOfCubic.lean Modified Mathlib/Algebra/Algebra/Basic.lean Modified Mathlib/Algebra/Algebra/Equiv.lean Modified Mathlib/Algebra/Algebra/Hom.lean Modified Mathlib/Algebra/Algebra/NonUnitalHom.lean Modified Mathlib/Algebra/Algebra/Operations.lean Modified Mathlib/Algebra/Algebra/Pi.lean Modified Mathlib/Algebra/Algebra/Prod.lean Modified Mathlib/Algebra/Algebra/Spectrum.lean Modified Mathlib/Algebra/Algebra/Subalgebra/Basic.lean Modified Mathlib/Algebra/Algebra/Subalgebra/Tower.lean Modified Mathlib/Algebra/Algebra/Tower.lean Modified Mathlib/Algebra/BigOperators/Finsupp.lean Modified Mathlib/Algebra/BigOperators/Intervals.lean Modified Mathlib/Algebra/BigOperators/Pi.lean Modified Mathlib/Algebra/Category/AlgebraCat/Basic.lean Modified Mathlib/Algebra/Category/AlgebraCat/Limits.lean Modified Mathlib/Algebra/Category/FGModuleCat/Limits.lean Modified Mathlib/Algebra/Category/ModuleCat/Algebra.lean Modified Mathlib/Algebra/Category/ModuleCat/Basic.lean Modified Mathlib/Algebra/Category/ModuleCat/ChangeOfRings.lean Modified Mathlib/Algebra/Category/ModuleCat/EpiMono.lean Modified Mathlib/Algebra/Category/ModuleCat/FilteredColimits.lean Modified Mathlib/Algebra/Category/ModuleCat/Images.lean Modified Mathlib/Algebra/Category/ModuleCat/Limits.lean Modified Mathlib/Algebra/Category/ModuleCat/Products.lean Modified Mathlib/Algebra/CharP/Algebra.lean Modified Mathlib/Algebra/CovariantAndContravariant.lean Modified Mathlib/Algebra/DirectLimit.lean Modified Mathlib/Algebra/DirectSum/Algebra.lean Modified Mathlib/Algebra/DirectSum/Decomposition.lean Modified Mathlib/Algebra/DirectSum/Internal.lean Modified Mathlib/Algebra/DirectSum/Module.lean Modified Mathlib/Algebra/DirectSum/Ring.lean Modified Mathlib/Algebra/EuclideanDomain/Basic.lean Modified Mathlib/Algebra/FreeAlgebra.lean Modified Mathlib/Algebra/FreeNonUnitalNonAssocAlgebra.lean Modified Mathlib/Algebra/GradedMonoid.lean Modified Mathlib/Algebra/Group/Equiv/Basic.lean Modified Mathlib/Algebra/Group/Pi/Basic.lean Modified Mathlib/Algebra/Group/Pi/Lemmas.lean Modified Mathlib/Algebra/GroupPower/Ring.lean Modified Mathlib/Algebra/GroupRingAction/Basic.lean Modified Mathlib/Algebra/GroupRingAction/Invariant.lean Modified Mathlib/Algebra/GroupRingAction/Subobjects.lean Modified Mathlib/Algebra/GroupWithZero/Commute.lean Modified Mathlib/Algebra/GroupWithZero/Units/Basic.lean Modified Mathlib/Algebra/GroupWithZero/Units/Lemmas.lean Modified Mathlib/Algebra/Homology/Additive.lean Modified Mathlib/Algebra/Homology/Exact.lean Modified Mathlib/Algebra/Homology/Functor.lean Modified Mathlib/Algebra/Homology/HomologicalComplex.lean Modified Mathlib/Algebra/Homology/Homology.lean Modified Mathlib/Algebra/Homology/Homotopy.lean Modified Mathlib/Algebra/Homology/HomotopyCategory/MappingCone.lean Modified Mathlib/Algebra/Homology/ImageToKernel.lean Modified Mathlib/Algebra/Homology/LocalCohomology.lean Modified Mathlib/Algebra/Homology/ModuleCat.lean Modified Mathlib/Algebra/Homology/QuasiIso.lean Modified Mathlib/Algebra/Lie/Abelian.lean Modified Mathlib/Algebra/Lie/Basic.lean Modified Mathlib/Algebra/Lie/CartanMatrix.lean Modified Mathlib/Algebra/Lie/CartanSubalgebra.lean Modified Mathlib/Algebra/Lie/Classical.lean Modified Mathlib/Algebra/Lie/DirectSum.lean Modified Mathlib/Algebra/Lie/Engel.lean Modified Mathlib/Algebra/Lie/IdealOperations.lean Modified Mathlib/Algebra/Lie/Matrix.lean Modified Mathlib/Algebra/Lie/Nilpotent.lean Modified Mathlib/Algebra/Lie/Normalizer.lean Modified Mathlib/Algebra/Lie/OfAssociative.lean Modified Mathlib/Algebra/Lie/Quotient.lean Modified Mathlib/Algebra/Lie/Semisimple.lean Modified Mathlib/Algebra/Lie/SkewAdjoint.lean Modified Mathlib/Algebra/Lie/Solvable.lean Modified Mathlib/Algebra/Lie/Subalgebra.lean Modified Mathlib/Algebra/Lie/Submodule.lean Modified Mathlib/Algebra/Lie/TensorProduct.lean Modified Mathlib/Algebra/Lie/UniversalEnveloping.lean Modified Mathlib/Algebra/Module/Algebra.lean Modified Mathlib/Algebra/Module/Bimodule.lean Modified Mathlib/Algebra/Module/Equiv.lean Modified Mathlib/Algebra/Module/GradedModule.lean Modified Mathlib/Algebra/Module/Hom.lean Modified Mathlib/Algebra/Module/Injective.lean Modified Mathlib/Algebra/Module/LinearMap/End.lean Modified Mathlib/Algebra/Module/LocalizedModule.lean Modified Mathlib/Algebra/Module/PID.lean Modified Mathlib/Algebra/Module/Submodule/Basic.lean Modified Mathlib/Algebra/Module/Submodule/Bilinear.lean Modified Mathlib/Algebra/Module/Submodule/Ker.lean Modified Mathlib/Algebra/Module/Submodule/Lattice.lean Modified Mathlib/Algebra/Module/Submodule/LinearMap.lean Modified Mathlib/Algebra/Module/Submodule/Localization.lean Modified Mathlib/Algebra/Module/Submodule/Map.lean Modified Mathlib/Algebra/Module/Submodule/Pointwise.lean Modified Mathlib/Algebra/Module/Torsion.lean Modified Mathlib/Algebra/Module/Zlattice.lean Modified Mathlib/Algebra/MonoidAlgebra/Basic.lean Modified Mathlib/Algebra/Order/AbsoluteValue.lean Modified Mathlib/Algebra/Order/CauSeq/Completion.lean Modified Mathlib/Algebra/Order/EuclideanAbsoluteValue.lean Modified Mathlib/Algebra/Order/Group/Defs.lean Modified Mathlib/Algebra/Order/Group/DenselyOrdered.lean Modified Mathlib/Algebra/Order/Nonneg/Module.lean Modified Mathlib/Algebra/Order/Ring/Canonical.lean Modified Mathlib/Algebra/Order/Sub/Basic.lean Modified Mathlib/Algebra/Order/WithZero.lean Modified Mathlib/Algebra/Polynomial/GroupRingAction.lean Modified Mathlib/Algebra/QuaternionBasis.lean Modified Mathlib/Algebra/Regular/SMul.lean Modified Mathlib/Algebra/Ring/CentroidHom.lean Modified Mathlib/Algebra/Ring/CompTypeclasses.lean Modified Mathlib/Algebra/Ring/Idempotents.lean Modified Mathlib/Algebra/Ring/Prod.lean Modified Mathlib/Algebra/RingQuot.lean Modified Mathlib/Algebra/SMulWithZero.lean Modified Mathlib/Algebra/Star/SelfAdjoint.lean Modified Mathlib/Algebra/Star/StarAlgHom.lean Modified Mathlib/Algebra/Star/Subalgebra.lean Modified Mathlib/Algebra/TrivSqZeroExt.lean Modified Mathlib/AlgebraicGeometry/OpenImmersion.lean Modified Mathlib/AlgebraicGeometry/PrimeSpectrum/Basic.lean Modified Mathlib/AlgebraicGeometry/PrimeSpectrum/Maximal.lean Modified Mathlib/AlgebraicGeometry/PrimeSpectrum/Noetherian.lean Modified Mathlib/AlgebraicGeometry/ProjectiveSpectrum/Scheme.lean Modified Mathlib/AlgebraicGeometry/ProjectiveSpectrum/StructureSheaf.lean Modified Mathlib/AlgebraicGeometry/ProjectiveSpectrum/Topology.lean Modified Mathlib/AlgebraicGeometry/Pullbacks.lean Modified Mathlib/AlgebraicTopology/AlternatingFaceMapComplex.lean Modified Mathlib/AlgebraicTopology/CechNerve.lean Modified Mathlib/AlgebraicTopology/DoldKan/Faces.lean Modified Mathlib/AlgebraicTopology/DoldKan/Homotopies.lean Modified Mathlib/AlgebraicTopology/FundamentalGroupoid/Basic.lean Modified Mathlib/AlgebraicTopology/FundamentalGroupoid/FundamentalGroup.lean Modified Mathlib/Analysis/Analytic/Basic.lean Modified Mathlib/Analysis/Analytic/Composition.lean Modified Mathlib/Analysis/Analytic/Constructions.lean Modified Mathlib/Analysis/Asymptotics/Asymptotics.lean Modified Mathlib/Analysis/Asymptotics/SuperpolynomialDecay.lean Modified Mathlib/Analysis/Asymptotics/Theta.lean Modified Mathlib/Analysis/Calculus/AffineMap.lean Modified Mathlib/Analysis/Calculus/BumpFunction/Convolution.lean Modified Mathlib/Analysis/Calculus/Conformal/InnerProduct.lean Modified Mathlib/Analysis/Calculus/ContDiff/Basic.lean Modified Mathlib/Analysis/Calculus/Deriv/Add.lean Modified Mathlib/Analysis/Calculus/Deriv/Basic.lean Modified Mathlib/Analysis/Calculus/Deriv/Comp.lean Modified Mathlib/Analysis/Calculus/Deriv/Inv.lean Modified Mathlib/Analysis/Calculus/Deriv/Inverse.lean Modified Mathlib/Analysis/Calculus/Deriv/Linear.lean Modified Mathlib/Analysis/Calculus/Deriv/Mul.lean Modified Mathlib/Analysis/Calculus/Deriv/Polynomial.lean Modified Mathlib/Analysis/Calculus/Deriv/Pow.lean Modified Mathlib/Analysis/Calculus/Deriv/Prod.lean Modified Mathlib/Analysis/Calculus/Deriv/Slope.lean Modified Mathlib/Analysis/Calculus/Deriv/Star.lean Modified Mathlib/Analysis/Calculus/Deriv/Support.lean Modified Mathlib/Analysis/Calculus/Deriv/ZPow.lean Modified Mathlib/Analysis/Calculus/FDeriv/Add.lean Modified Mathlib/Analysis/Calculus/FDeriv/Analytic.lean Modified Mathlib/Analysis/Calculus/FDeriv/Basic.lean Modified Mathlib/Analysis/Calculus/FDeriv/Bilinear.lean Modified Mathlib/Analysis/Calculus/FDeriv/Comp.lean Modified Mathlib/Analysis/Calculus/FDeriv/Equiv.lean Modified Mathlib/Analysis/Calculus/FDeriv/Linear.lean Modified Mathlib/Analysis/Calculus/FDeriv/Measurable.lean Modified Mathlib/Analysis/Calculus/FDeriv/Mul.lean Modified Mathlib/Analysis/Calculus/FDeriv/Prod.lean Modified Mathlib/Analysis/Calculus/FDeriv/RestrictScalars.lean Modified Mathlib/Analysis/Calculus/FDeriv/Star.lean Modified Mathlib/Analysis/Calculus/FormalMultilinearSeries.lean Modified Mathlib/Analysis/Calculus/Gradient/Basic.lean Modified Mathlib/Analysis/Calculus/InverseFunctionTheorem/ApproximatesLinearOn.lean Modified Mathlib/Analysis/Calculus/InverseFunctionTheorem/ContDiff.lean Modified Mathlib/Analysis/Calculus/InverseFunctionTheorem/FDeriv.lean Modified Mathlib/Analysis/Calculus/IteratedDeriv/Defs.lean Modified Mathlib/Analysis/Calculus/SmoothSeries.lean Modified Mathlib/Analysis/Calculus/TangentCone.lean Modified Mathlib/Analysis/Calculus/Taylor.lean Modified Mathlib/Analysis/ConstantSpeed.lean Modified Mathlib/Analysis/Convex/Between.lean Modified Mathlib/Analysis/Convex/Cone/Basic.lean Modified Mathlib/Analysis/Convex/Cone/Closure.lean Modified Mathlib/Analysis/Convex/Cone/Proper.lean Modified Mathlib/Analysis/Convex/Extreme.lean Modified Mathlib/Analysis/Convex/Side.lean Modified Mathlib/Analysis/Convex/StrictConvexBetween.lean Modified Mathlib/Analysis/Convolution.lean Modified Mathlib/Analysis/Distribution/SchwartzSpace.lean Modified Mathlib/Analysis/InnerProductSpace/Adjoint.lean Modified Mathlib/Analysis/InnerProductSpace/Basic.lean Modified Mathlib/Analysis/InnerProductSpace/Calculus.lean Modified Mathlib/Analysis/InnerProductSpace/ConformalLinearMap.lean Modified Mathlib/Analysis/InnerProductSpace/Dual.lean Modified Mathlib/Analysis/InnerProductSpace/GramSchmidtOrtho.lean Modified Mathlib/Analysis/InnerProductSpace/LaxMilgram.lean Modified Mathlib/Analysis/InnerProductSpace/LinearPMap.lean Modified Mathlib/Analysis/InnerProductSpace/OfNorm.lean Modified Mathlib/Analysis/InnerProductSpace/Orthogonal.lean Modified Mathlib/Analysis/InnerProductSpace/PiL2.lean Modified Mathlib/Analysis/InnerProductSpace/Positive.lean Modified Mathlib/Analysis/InnerProductSpace/Projection.lean Modified Mathlib/Analysis/InnerProductSpace/Rayleigh.lean Modified Mathlib/Analysis/InnerProductSpace/Spectrum.lean Modified Mathlib/Analysis/InnerProductSpace/Symmetric.lean Modified Mathlib/Analysis/InnerProductSpace/l2Space.lean Modified Mathlib/Analysis/LocallyConvex/AbsConvex.lean Modified Mathlib/Analysis/LocallyConvex/Bounded.lean Modified Mathlib/Analysis/LocallyConvex/ContinuousOfBounded.lean Modified Mathlib/Analysis/LocallyConvex/Polar.lean Modified Mathlib/Analysis/LocallyConvex/StrongTopology.lean Modified Mathlib/Analysis/LocallyConvex/WeakDual.lean Modified Mathlib/Analysis/LocallyConvex/WithSeminorms.lean Modified Mathlib/Analysis/Normed/Group/Basic.lean Modified Mathlib/Analysis/Normed/Group/ControlledClosure.lean Modified Mathlib/Analysis/Normed/Group/Hom.lean Modified Mathlib/Analysis/Normed/Group/HomCompletion.lean Modified Mathlib/Analysis/Normed/MulAction.lean Modified Mathlib/Analysis/Normed/Ring/Seminorm.lean Modified Mathlib/Analysis/NormedSpace/AddTorsorBases.lean Modified Mathlib/Analysis/NormedSpace/BallAction.lean Modified Mathlib/Analysis/NormedSpace/BoundedLinearMaps.lean Modified Mathlib/Analysis/NormedSpace/ContinuousAffineMap.lean Modified Mathlib/Analysis/NormedSpace/ContinuousLinearMap.lean Modified Mathlib/Analysis/NormedSpace/Dual.lean Modified Mathlib/Analysis/NormedSpace/DualNumber.lean Modified Mathlib/Analysis/NormedSpace/Exponential.lean Modified Mathlib/Analysis/NormedSpace/FiniteDimension.lean Modified Mathlib/Analysis/NormedSpace/HahnBanach/Extension.lean Modified Mathlib/Analysis/NormedSpace/LinearIsometry.lean Modified Mathlib/Analysis/NormedSpace/LpEquiv.lean Modified Mathlib/Analysis/NormedSpace/MStructure.lean Modified Mathlib/Analysis/NormedSpace/Multilinear/Basic.lean Modified Mathlib/Analysis/NormedSpace/OperatorNorm/Asymptotics.lean Modified Mathlib/Analysis/NormedSpace/OperatorNorm/Basic.lean Modified Mathlib/Analysis/NormedSpace/OperatorNorm/Bilinear.lean Modified Mathlib/Analysis/NormedSpace/OperatorNorm/Completeness.lean Modified Mathlib/Analysis/NormedSpace/OperatorNorm/Mul.lean Modified Mathlib/Analysis/NormedSpace/OperatorNorm/NNNorm.lean Modified Mathlib/Analysis/NormedSpace/OperatorNorm/Prod.lean Modified Mathlib/Analysis/NormedSpace/PiLp.lean Modified Mathlib/Analysis/NormedSpace/Pointwise.lean Modified Mathlib/Analysis/NormedSpace/ProdLp.lean Modified Mathlib/Analysis/NormedSpace/RieszLemma.lean Modified Mathlib/Analysis/NormedSpace/Spectrum.lean Modified Mathlib/Analysis/NormedSpace/Star/Basic.lean Modified Mathlib/Analysis/NormedSpace/Star/ContinuousFunctionalCalculus.lean Modified Mathlib/Analysis/NormedSpace/Star/GelfandDuality.lean Modified Mathlib/Analysis/NormedSpace/Star/Multiplier.lean Modified Mathlib/Analysis/NormedSpace/Star/Unitization.lean Modified Mathlib/Analysis/NormedSpace/WeakDual.lean Modified Mathlib/Analysis/NormedSpace/lpSpace.lean Modified Mathlib/Analysis/Seminorm.lean Modified Mathlib/Analysis/SpecialFunctions/Exponential.lean Modified Mathlib/Analysis/SpecialFunctions/JapaneseBracket.lean Modified Mathlib/Analysis/SpecificLimits/Normed.lean Modified Mathlib/CategoryTheory/Abelian/Basic.lean Modified Mathlib/CategoryTheory/Abelian/Exact.lean Modified Mathlib/CategoryTheory/Abelian/FunctorCategory.lean Modified Mathlib/CategoryTheory/Abelian/Homology.lean Modified Mathlib/CategoryTheory/Abelian/Images.lean Modified Mathlib/CategoryTheory/Abelian/Transfer.lean Modified Mathlib/CategoryTheory/Adhesive.lean Modified Mathlib/CategoryTheory/Adjunction/AdjointFunctorTheorems.lean Modified Mathlib/CategoryTheory/Adjunction/Basic.lean Modified Mathlib/CategoryTheory/Adjunction/FullyFaithful.lean Modified Mathlib/CategoryTheory/Adjunction/Lifting.lean Modified Mathlib/CategoryTheory/Adjunction/Limits.lean Modified Mathlib/CategoryTheory/Adjunction/Mates.lean Modified Mathlib/CategoryTheory/Adjunction/Reflective.lean Modified Mathlib/CategoryTheory/Bicategory/Free.lean Modified Mathlib/CategoryTheory/Bicategory/Functor.lean Modified Mathlib/CategoryTheory/Bicategory/FunctorBicategory.lean Modified Mathlib/CategoryTheory/Category/Basic.lean Modified Mathlib/CategoryTheory/Closed/Cartesian.lean Modified Mathlib/CategoryTheory/Closed/Functor.lean Modified Mathlib/CategoryTheory/Closed/Ideal.lean Modified Mathlib/CategoryTheory/Closed/Monoidal.lean Modified Mathlib/CategoryTheory/Closed/Zero.lean Modified Mathlib/CategoryTheory/CommSq.lean Modified Mathlib/CategoryTheory/ConcreteCategory/BundledHom.lean Modified Mathlib/CategoryTheory/ConcreteCategory/ReflectsIso.lean Modified Mathlib/CategoryTheory/ConnectedComponents.lean Modified Mathlib/CategoryTheory/DifferentialObject.lean Modified Mathlib/CategoryTheory/Enriched/Basic.lean Modified Mathlib/CategoryTheory/Functor/Const.lean Modified Mathlib/CategoryTheory/Functor/Flat.lean Modified Mathlib/CategoryTheory/Functor/FullyFaithful.lean Modified Mathlib/CategoryTheory/Functor/ReflectsIso.lean Modified Mathlib/CategoryTheory/GradedObject.lean Modified Mathlib/CategoryTheory/Grothendieck.lean Modified Mathlib/CategoryTheory/IsConnected.lean Modified Mathlib/CategoryTheory/Iso.lean Modified Mathlib/CategoryTheory/Limits/ColimitLimit.lean Modified Mathlib/CategoryTheory/Limits/Comma.lean Modified Mathlib/CategoryTheory/Limits/ConeCategory.lean Modified Mathlib/CategoryTheory/Limits/Cones.lean Modified Mathlib/CategoryTheory/Limits/Connected.lean Modified Mathlib/CategoryTheory/Limits/Constructions/EpiMono.lean Modified Mathlib/CategoryTheory/Limits/Constructions/Equalizers.lean Modified Mathlib/CategoryTheory/Limits/Constructions/FiniteProductsOfBinaryProducts.lean Modified Mathlib/CategoryTheory/Limits/Constructions/LimitsOfProductsAndEqualizers.lean Modified Mathlib/CategoryTheory/Limits/Constructions/Over/Basic.lean Modified Mathlib/CategoryTheory/Limits/Constructions/Over/Connected.lean Modified Mathlib/CategoryTheory/Limits/Constructions/Over/Products.lean Modified Mathlib/CategoryTheory/Limits/Creates.lean Modified Mathlib/CategoryTheory/Limits/FilteredColimitCommutesFiniteLimit.lean Modified Mathlib/CategoryTheory/Limits/Final.lean Modified Mathlib/CategoryTheory/Limits/FinallySmall.lean Modified Mathlib/CategoryTheory/Limits/Fubini.lean Modified Mathlib/CategoryTheory/Limits/FunctorCategory.lean Modified Mathlib/CategoryTheory/Limits/FunctorToTypes.lean Modified Mathlib/CategoryTheory/Limits/HasLimits.lean Modified Mathlib/CategoryTheory/Limits/IsLimit.lean Modified Mathlib/CategoryTheory/Limits/KanExtension.lean Modified Mathlib/CategoryTheory/Limits/Lattice.lean Modified Mathlib/CategoryTheory/Limits/Opposites.lean Modified Mathlib/CategoryTheory/Limits/Over.lean Modified Mathlib/CategoryTheory/Limits/Pi.lean Modified Mathlib/CategoryTheory/Limits/Preserves/Basic.lean Modified Mathlib/CategoryTheory/Limits/Preserves/Filtered.lean Modified Mathlib/CategoryTheory/Limits/Preserves/Finite.lean Modified Mathlib/CategoryTheory/Limits/Preserves/FunctorCategory.lean Modified Mathlib/CategoryTheory/Limits/Preserves/Limits.lean Modified Mathlib/CategoryTheory/Limits/Preserves/Opposites.lean Modified Mathlib/CategoryTheory/Limits/Preserves/Shapes/BinaryProducts.lean Modified Mathlib/CategoryTheory/Limits/Preserves/Shapes/Equalizers.lean Modified Mathlib/CategoryTheory/Limits/Preserves/Shapes/Images.lean Modified Mathlib/CategoryTheory/Limits/Preserves/Shapes/Kernels.lean Modified Mathlib/CategoryTheory/Limits/Preserves/Shapes/Products.lean Modified Mathlib/CategoryTheory/Limits/Preserves/Shapes/Pullbacks.lean Modified Mathlib/CategoryTheory/Limits/Preserves/Shapes/Terminal.lean Modified Mathlib/CategoryTheory/Limits/Presheaf.lean Modified Mathlib/CategoryTheory/Limits/Shapes/BinaryProducts.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Biproducts.lean Modified Mathlib/CategoryTheory/Limits/Shapes/CommSq.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Diagonal.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Equalizers.lean Modified Mathlib/CategoryTheory/Limits/Shapes/FunctorCategory.lean Modified Mathlib/CategoryTheory/Limits/Shapes/FunctorToTypes.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Images.lean Modified Mathlib/CategoryTheory/Limits/Shapes/KernelPair.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Kernels.lean Modified Mathlib/CategoryTheory/Limits/Shapes/NormalMono/Basic.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Products.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Pullbacks.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Reflexive.lean Modified Mathlib/CategoryTheory/Limits/Shapes/RegularMono.lean Modified Mathlib/CategoryTheory/Limits/Shapes/SplitCoequalizer.lean Modified Mathlib/CategoryTheory/Limits/Shapes/StrongEpi.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Types.lean Modified Mathlib/CategoryTheory/Limits/Shapes/WideEqualizers.lean Modified Mathlib/CategoryTheory/Limits/Shapes/WidePullbacks.lean Modified Mathlib/CategoryTheory/Limits/Shapes/ZeroMorphisms.lean Modified Mathlib/CategoryTheory/Limits/Shapes/ZeroObjects.lean Modified Mathlib/CategoryTheory/Linear/FunctorCategory.lean Modified Mathlib/CategoryTheory/Linear/Yoneda.lean Modified Mathlib/CategoryTheory/Localization/CalculusOfFractions.lean Modified Mathlib/CategoryTheory/Localization/HasLocalization.lean Modified Mathlib/CategoryTheory/Monad/Adjunction.lean Modified Mathlib/CategoryTheory/Monad/Coequalizer.lean Modified Mathlib/CategoryTheory/Monad/Limits.lean Modified Mathlib/CategoryTheory/Monoidal/Bimod.lean Modified Mathlib/CategoryTheory/Monoidal/Category.lean Modified Mathlib/CategoryTheory/Monoidal/End.lean Modified Mathlib/CategoryTheory/Monoidal/Functor.lean Modified Mathlib/CategoryTheory/Monoidal/FunctorCategory.lean Modified Mathlib/CategoryTheory/Monoidal/Internal/FunctorCategory.lean Modified Mathlib/CategoryTheory/Monoidal/Internal/Limits.lean Modified Mathlib/CategoryTheory/Monoidal/Limits.lean Modified Mathlib/CategoryTheory/Monoidal/Linear.lean Modified Mathlib/CategoryTheory/Monoidal/Mod_.lean Modified Mathlib/CategoryTheory/Monoidal/OfChosenFiniteProducts/Basic.lean Modified Mathlib/CategoryTheory/Monoidal/OfChosenFiniteProducts/Symmetric.lean Modified Mathlib/CategoryTheory/Monoidal/Rigid/Basic.lean Modified Mathlib/CategoryTheory/Monoidal/Rigid/OfEquivalence.lean Modified Mathlib/CategoryTheory/Monoidal/Transport.lean Modified Mathlib/CategoryTheory/Opposites.lean Modified Mathlib/CategoryTheory/Pi/Basic.lean Modified Mathlib/CategoryTheory/Preadditive/AdditiveFunctor.lean Modified Mathlib/CategoryTheory/Preadditive/Biproducts.lean Modified Mathlib/CategoryTheory/Preadditive/Injective.lean Modified Mathlib/CategoryTheory/Preadditive/Schur.lean Modified Mathlib/CategoryTheory/Products/Bifunctor.lean Modified Mathlib/CategoryTheory/Shift/Basic.lean Modified Mathlib/CategoryTheory/Sigma/Basic.lean Modified Mathlib/CategoryTheory/Sites/Adjunction.lean Modified Mathlib/CategoryTheory/Sites/Canonical.lean Modified Mathlib/CategoryTheory/Sites/Closed.lean Modified Mathlib/CategoryTheory/Sites/Coherent/ExtensiveSheaves.lean Modified Mathlib/CategoryTheory/Sites/CompatiblePlus.lean Modified Mathlib/CategoryTheory/Sites/CompatibleSheafification.lean Modified Mathlib/CategoryTheory/Sites/ConcreteSheafification.lean Modified Mathlib/CategoryTheory/Sites/ConstantSheaf.lean Modified Mathlib/CategoryTheory/Sites/CoverLifting.lean Modified Mathlib/CategoryTheory/Sites/CoverPreserving.lean Modified Mathlib/CategoryTheory/Sites/DenseSubsite.lean Modified Mathlib/CategoryTheory/Sites/EffectiveEpimorphic.lean Modified Mathlib/CategoryTheory/Sites/Grothendieck.lean Modified Mathlib/CategoryTheory/Sites/InducedTopology.lean Modified Mathlib/CategoryTheory/Sites/IsSheafFor.lean Modified Mathlib/CategoryTheory/Sites/LeftExact.lean Modified Mathlib/CategoryTheory/Sites/Limits.lean Modified Mathlib/CategoryTheory/Sites/Plus.lean Modified Mathlib/CategoryTheory/Sites/Pretopology.lean Modified Mathlib/CategoryTheory/Sites/Pullback.lean Modified Mathlib/CategoryTheory/Sites/Sheaf.lean Modified Mathlib/CategoryTheory/Sites/SheafOfTypes.lean Modified Mathlib/CategoryTheory/Sites/Sieves.lean Modified Mathlib/CategoryTheory/Sites/Whiskering.lean Modified Mathlib/CategoryTheory/Skeletal.lean Modified Mathlib/CategoryTheory/Subobject/Basic.lean Modified Mathlib/CategoryTheory/Subobject/FactorThru.lean Modified Mathlib/CategoryTheory/Subobject/Lattice.lean Modified Mathlib/CategoryTheory/Subobject/MonoOver.lean Modified Mathlib/CategoryTheory/Thin.lean Modified Mathlib/CategoryTheory/Triangulated/Rotate.lean Modified Mathlib/CategoryTheory/Triangulated/Triangulated.lean Modified Mathlib/CategoryTheory/Types.lean Modified Mathlib/CategoryTheory/Whiskering.lean Modified Mathlib/CategoryTheory/Yoneda.lean Modified Mathlib/Combinatorics/SimpleGraph/AdjMatrix.lean Modified Mathlib/Combinatorics/SimpleGraph/Connectivity.lean Modified Mathlib/Combinatorics/SimpleGraph/Density.lean Modified Mathlib/Computability/Halting.lean Modified Mathlib/Computability/Partrec.lean Modified Mathlib/Computability/Primrec.lean Modified Mathlib/Computability/Reduce.lean Modified Mathlib/Computability/TuringMachine.lean Modified Mathlib/Control/Applicative.lean Modified Mathlib/Control/Basic.lean Modified Mathlib/Control/Bitraversable/Lemmas.lean Modified Mathlib/Control/Fold.lean Modified Mathlib/Control/Functor.lean Modified Mathlib/Control/Functor/Multivariate.lean Modified Mathlib/Control/LawfulFix.lean Modified Mathlib/Control/Traversable/Basic.lean Modified Mathlib/Control/Traversable/Equiv.lean Modified Mathlib/Control/Traversable/Instances.lean Modified Mathlib/Control/Traversable/Lemmas.lean Modified Mathlib/Data/DFinsupp/Basic.lean Modified Mathlib/Data/DFinsupp/Interval.lean Modified Mathlib/Data/Fin/Tuple/Sort.lean Modified Mathlib/Data/Finset/MulAntidiagonal.lean Modified Mathlib/Data/Finsupp/Basic.lean Modified Mathlib/Data/Finsupp/Interval.lean Modified Mathlib/Data/List/Basic.lean Modified Mathlib/Data/List/Func.lean Modified Mathlib/Data/Matrix/Basic.lean Modified Mathlib/Data/Matrix/Basis.lean Modified Mathlib/Data/Matrix/Block.lean Modified Mathlib/Data/Matrix/DMatrix.lean Modified Mathlib/Data/Matrix/Hadamard.lean Modified Mathlib/Data/Matrix/Invertible.lean Modified Mathlib/Data/Matrix/Kronecker.lean Modified Mathlib/Data/Matrix/PEquiv.lean Modified Mathlib/Data/Multiset/Functor.lean Modified Mathlib/Data/MvPolynomial/Basic.lean Modified Mathlib/Data/MvPolynomial/CommRing.lean Modified Mathlib/Data/MvPolynomial/Equiv.lean Modified Mathlib/Data/MvPolynomial/Monad.lean Modified Mathlib/Data/MvPolynomial/Supported.lean Modified Mathlib/Data/MvPolynomial/Variables.lean Modified Mathlib/Data/Nat/Count.lean Modified Mathlib/Data/PFunctor/Univariate/M.lean Modified Mathlib/Data/Polynomial/Coeff.lean Modified Mathlib/Data/Polynomial/DenomsClearable.lean Modified Mathlib/Data/Polynomial/Derivation.lean Modified Mathlib/Data/Polynomial/Eval.lean Modified Mathlib/Data/Polynomial/Module/Basic.lean Modified Mathlib/Data/Polynomial/Monomial.lean Modified Mathlib/Data/Polynomial/Splits.lean Modified Mathlib/Data/QPF/Multivariate/Constructions/Quot.lean Modified Mathlib/Data/QPF/Multivariate/Constructions/Sigma.lean Modified Mathlib/Data/QPF/Univariate/Basic.lean Modified Mathlib/Data/Quot.lean Modified Mathlib/Data/Set/Pointwise/ListOfFn.lean Modified Mathlib/Data/TypeVec.lean Modified Mathlib/Data/Vector.lean Modified Mathlib/Data/Vector/Basic.lean Modified Mathlib/Deprecated/Ring.lean Modified Mathlib/Deprecated/Submonoid.lean Modified Mathlib/Dynamics/OmegaLimit.lean Modified Mathlib/FieldTheory/Adjoin.lean Modified Mathlib/FieldTheory/Fixed.lean Modified Mathlib/FieldTheory/Galois.lean Modified Mathlib/FieldTheory/IsAlgClosed/Basic.lean Modified Mathlib/FieldTheory/IsAlgClosed/Classification.lean Modified Mathlib/FieldTheory/IsAlgClosed/Spectrum.lean Modified Mathlib/FieldTheory/IsPerfectClosure.lean Modified Mathlib/FieldTheory/Minpoly/Basic.lean Modified Mathlib/FieldTheory/Minpoly/Field.lean Modified Mathlib/FieldTheory/Minpoly/IsIntegrallyClosed.lean Modified Mathlib/FieldTheory/MvPolynomial.lean Modified Mathlib/FieldTheory/Perfect.lean Modified Mathlib/FieldTheory/PrimitiveElement.lean Modified Mathlib/FieldTheory/PurelyInseparable.lean Modified Mathlib/FieldTheory/RatFunc.lean Modified Mathlib/FieldTheory/Separable.lean Modified Mathlib/FieldTheory/SeparableClosure.lean Modified Mathlib/FieldTheory/SeparableDegree.lean Modified Mathlib/FieldTheory/SplittingField/Construction.lean Modified Mathlib/FieldTheory/Tower.lean Modified Mathlib/Geometry/Euclidean/Angle/Oriented/Basic.lean Modified Mathlib/Geometry/Euclidean/Angle/Oriented/RightAngle.lean Modified Mathlib/Geometry/Euclidean/Angle/Oriented/Rotation.lean Modified Mathlib/Geometry/Euclidean/Angle/Sphere.lean Modified Mathlib/Geometry/Euclidean/Angle/Unoriented/Conformal.lean Modified Mathlib/Geometry/Euclidean/Basic.lean Modified Mathlib/Geometry/Euclidean/Sphere/Ptolemy.lean Modified Mathlib/Geometry/Manifold/ChartedSpace.lean Modified Mathlib/Geometry/Manifold/Complex.lean Modified Mathlib/Geometry/Manifold/Instances/Sphere.lean Modified Mathlib/Geometry/Manifold/LocalInvariantProperties.lean Modified Mathlib/Geometry/Manifold/VectorBundle/Basic.lean Modified Mathlib/Geometry/Manifold/VectorBundle/FiberwiseLinear.lean Modified Mathlib/Geometry/Manifold/VectorBundle/Pullback.lean Modified Mathlib/Geometry/RingedSpace/LocallyRingedSpace/HasColimits.lean Modified Mathlib/Geometry/RingedSpace/OpenImmersion.lean Modified Mathlib/GroupTheory/CoprodI.lean Modified Mathlib/GroupTheory/Divisible.lean Modified Mathlib/GroupTheory/EckmannHilton.lean Modified Mathlib/GroupTheory/GroupAction/Group.lean Modified Mathlib/GroupTheory/GroupAction/SubMulAction.lean Modified Mathlib/GroupTheory/Nilpotent.lean Modified Mathlib/GroupTheory/NoncommPiCoprod.lean Modified Mathlib/GroupTheory/QuotientGroup.lean Modified Mathlib/GroupTheory/SpecificGroups/Coxeter.lean Modified Mathlib/GroupTheory/Subgroup/Basic.lean Modified Mathlib/GroupTheory/Subgroup/Finite.lean Modified Mathlib/GroupTheory/Subgroup/Simple.lean Modified Mathlib/GroupTheory/Subgroup/ZPowers.lean Modified Mathlib/GroupTheory/Submonoid/Basic.lean Modified Mathlib/GroupTheory/Submonoid/Pointwise.lean Modified Mathlib/GroupTheory/Subsemigroup/Basic.lean Modified Mathlib/InformationTheory/Hamming.lean Modified Mathlib/Init/Control/Lawful.lean Modified Mathlib/LinearAlgebra/AdicCompletion.lean Modified Mathlib/LinearAlgebra/AffineSpace/AffineMap.lean Modified Mathlib/LinearAlgebra/AffineSpace/AffineSubspace.lean Modified Mathlib/LinearAlgebra/AffineSpace/Combination.lean Modified Mathlib/LinearAlgebra/AffineSpace/FiniteDimensional.lean Modified Mathlib/LinearAlgebra/AffineSpace/Independent.lean Modified Mathlib/LinearAlgebra/AffineSpace/Matrix.lean Modified Mathlib/LinearAlgebra/AffineSpace/Ordered.lean Modified Mathlib/LinearAlgebra/AffineSpace/Pointwise.lean Modified Mathlib/LinearAlgebra/Alternating/Basic.lean Modified Mathlib/LinearAlgebra/Alternating/DomCoprod.lean Modified Mathlib/LinearAlgebra/AnnihilatingPolynomial.lean Modified Mathlib/LinearAlgebra/Basic.lean Modified Mathlib/LinearAlgebra/Basis.lean Modified Mathlib/LinearAlgebra/Basis/Bilinear.lean Modified Mathlib/LinearAlgebra/Basis/VectorSpace.lean Modified Mathlib/LinearAlgebra/BilinearForm/Basic.lean Modified Mathlib/LinearAlgebra/BilinearForm/Hom.lean Modified Mathlib/LinearAlgebra/BilinearForm/Orthogonal.lean Modified Mathlib/LinearAlgebra/BilinearForm/Properties.lean Modified Mathlib/LinearAlgebra/BilinearForm/TensorProduct.lean Modified Mathlib/LinearAlgebra/BilinearMap.lean Modified Mathlib/LinearAlgebra/Charpoly/Basic.lean Modified Mathlib/LinearAlgebra/CliffordAlgebra/Basic.lean Modified Mathlib/LinearAlgebra/CliffordAlgebra/Conjugation.lean Modified Mathlib/LinearAlgebra/CliffordAlgebra/Contraction.lean Modified Mathlib/LinearAlgebra/CliffordAlgebra/Even.lean Modified Mathlib/LinearAlgebra/CliffordAlgebra/EvenEquiv.lean Modified Mathlib/LinearAlgebra/CliffordAlgebra/Fold.lean Modified Mathlib/LinearAlgebra/CliffordAlgebra/Grading.lean Modified Mathlib/LinearAlgebra/CliffordAlgebra/Prod.lean Modified Mathlib/LinearAlgebra/CliffordAlgebra/Star.lean Modified Mathlib/LinearAlgebra/Coevaluation.lean Modified Mathlib/LinearAlgebra/Contraction.lean Modified Mathlib/LinearAlgebra/DFinsupp.lean Modified Mathlib/LinearAlgebra/Determinant.lean Modified Mathlib/LinearAlgebra/Dimension/Basic.lean Modified Mathlib/LinearAlgebra/Dimension/Constructions.lean Modified Mathlib/LinearAlgebra/Dimension/DivisionRing.lean Modified Mathlib/LinearAlgebra/Dimension/Finite.lean Modified Mathlib/LinearAlgebra/Dimension/Finrank.lean Modified Mathlib/LinearAlgebra/Dimension/Free.lean Modified Mathlib/LinearAlgebra/Dimension/LinearMap.lean Modified Mathlib/LinearAlgebra/Dimension/StrongRankCondition.lean Modified Mathlib/LinearAlgebra/DirectSum/TensorProduct.lean Modified Mathlib/LinearAlgebra/Dual.lean Modified Mathlib/LinearAlgebra/Eigenspace/Minpoly.lean Modified Mathlib/LinearAlgebra/ExteriorAlgebra/Basic.lean Modified Mathlib/LinearAlgebra/ExteriorAlgebra/Grading.lean Modified Mathlib/LinearAlgebra/ExteriorAlgebra/OfAlternating.lean Modified Mathlib/LinearAlgebra/FiniteDimensional.lean Modified Mathlib/LinearAlgebra/Finsupp.lean Modified Mathlib/LinearAlgebra/FinsuppVectorSpace.lean Modified Mathlib/LinearAlgebra/FreeModule/Basic.lean Modified Mathlib/LinearAlgebra/FreeModule/Finite/Basic.lean Modified Mathlib/LinearAlgebra/FreeModule/IdealQuotient.lean Modified Mathlib/LinearAlgebra/FreeModule/PID.lean Modified Mathlib/LinearAlgebra/Isomorphisms.lean Modified Mathlib/LinearAlgebra/LinearIndependent.lean Modified Mathlib/LinearAlgebra/LinearPMap.lean Modified Mathlib/LinearAlgebra/Matrix/AbsoluteValue.lean Modified Mathlib/LinearAlgebra/Matrix/Adjugate.lean Modified Mathlib/LinearAlgebra/Matrix/Basis.lean Modified Mathlib/LinearAlgebra/Matrix/BilinearForm.lean Modified Mathlib/LinearAlgebra/Matrix/Block.lean Modified Mathlib/LinearAlgebra/Matrix/Charpoly/Eigs.lean Modified Mathlib/LinearAlgebra/Matrix/Charpoly/LinearMap.lean Modified Mathlib/LinearAlgebra/Matrix/Charpoly/Minpoly.lean Modified Mathlib/LinearAlgebra/Matrix/Charpoly/Univ.lean Modified Mathlib/LinearAlgebra/Matrix/Determinant.lean Modified Mathlib/LinearAlgebra/Matrix/FiniteDimensional.lean Modified Mathlib/LinearAlgebra/Matrix/InvariantBasisNumber.lean Modified Mathlib/LinearAlgebra/Matrix/LDL.lean Modified Mathlib/LinearAlgebra/Matrix/NonsingularInverse.lean Modified Mathlib/LinearAlgebra/Matrix/Orthogonal.lean Modified Mathlib/LinearAlgebra/Matrix/Reindex.lean Modified Mathlib/LinearAlgebra/Matrix/SchurComplement.lean Modified Mathlib/LinearAlgebra/Matrix/SesquilinearForm.lean Modified Mathlib/LinearAlgebra/Matrix/Spectrum.lean Modified Mathlib/LinearAlgebra/Matrix/ToLin.lean Modified Mathlib/LinearAlgebra/Matrix/Trace.lean Modified Mathlib/LinearAlgebra/Matrix/Transvection.lean Modified Mathlib/LinearAlgebra/Multilinear/Basic.lean Modified Mathlib/LinearAlgebra/Multilinear/Basis.lean Modified Mathlib/LinearAlgebra/Multilinear/FiniteDimensional.lean Modified Mathlib/LinearAlgebra/Multilinear/TensorProduct.lean Modified Mathlib/LinearAlgebra/Orientation.lean Modified Mathlib/LinearAlgebra/Pi.lean Modified Mathlib/LinearAlgebra/PiTensorProduct.lean Modified Mathlib/LinearAlgebra/Prod.lean Modified Mathlib/LinearAlgebra/QuadraticForm/Basic.lean Modified Mathlib/LinearAlgebra/QuadraticForm/Dual.lean Modified Mathlib/LinearAlgebra/QuadraticForm/IsometryEquiv.lean Modified Mathlib/LinearAlgebra/Quotient.lean Modified Mathlib/LinearAlgebra/QuotientPi.lean Modified Mathlib/LinearAlgebra/Ray.lean Modified Mathlib/LinearAlgebra/SModEq.lean Modified Mathlib/LinearAlgebra/SesquilinearForm.lean Modified Mathlib/LinearAlgebra/Span.lean Modified Mathlib/LinearAlgebra/TensorAlgebra/Basic.lean Modified Mathlib/LinearAlgebra/TensorProduct/DirectLimit.lean Modified Mathlib/LinearAlgebra/TensorProduct/Graded/Internal.lean Modified Mathlib/LinearAlgebra/TensorProduct/Matrix.lean Modified Mathlib/LinearAlgebra/TensorProduct/Opposite.lean Modified Mathlib/LinearAlgebra/TensorProduct/Tower.lean Modified Mathlib/LinearAlgebra/Trace.lean Modified Mathlib/Logic/Equiv/Basic.lean Modified Mathlib/MeasureTheory/Constructions/BorelSpace/Basic.lean Modified Mathlib/MeasureTheory/Constructions/BorelSpace/ContinuousLinearMap.lean Modified Mathlib/MeasureTheory/Constructions/Polish.lean Modified Mathlib/MeasureTheory/Constructions/Prod/Basic.lean Modified Mathlib/MeasureTheory/Constructions/Prod/Integral.lean Modified Mathlib/MeasureTheory/Covering/LiminfLimsup.lean Modified Mathlib/MeasureTheory/Decomposition/SignedHahn.lean Modified Mathlib/MeasureTheory/Function/AEEqFun.lean Modified Mathlib/MeasureTheory/Function/ContinuousMapDense.lean Modified Mathlib/MeasureTheory/Function/ConvergenceInMeasure.lean Modified Mathlib/MeasureTheory/Function/L1Space.lean Modified Mathlib/MeasureTheory/Function/L2Space.lean Modified Mathlib/MeasureTheory/Function/LocallyIntegrable.lean Modified Mathlib/MeasureTheory/Function/LpSeminorm/Basic.lean Modified Mathlib/MeasureTheory/Function/LpSpace.lean Modified Mathlib/MeasureTheory/Function/SimpleFuncDenseLp.lean Modified Mathlib/MeasureTheory/Function/SpecialFunctions/Inner.lean Modified Mathlib/MeasureTheory/Function/StronglyMeasurable/Basic.lean Modified Mathlib/MeasureTheory/Group/Integral.lean Modified Mathlib/MeasureTheory/Group/Prod.lean Modified Mathlib/MeasureTheory/Integral/Bochner.lean Modified Mathlib/MeasureTheory/Integral/IntervalIntegral.lean Modified Mathlib/MeasureTheory/Integral/Layercake.lean Modified Mathlib/MeasureTheory/Integral/Periodic.lean Modified Mathlib/MeasureTheory/Integral/RieszMarkovKakutani.lean Modified Mathlib/MeasureTheory/Integral/SetToL1.lean Modified Mathlib/MeasureTheory/Integral/TorusIntegral.lean Modified Mathlib/MeasureTheory/Measure/Complex.lean Modified Mathlib/MeasureTheory/Measure/Haar/Disintegration.lean Modified Mathlib/MeasureTheory/Measure/Haar/InnerProductSpace.lean Modified Mathlib/MeasureTheory/Measure/Haar/NormedSpace.lean Modified Mathlib/MeasureTheory/Measure/Haar/Quotient.lean Modified Mathlib/MeasureTheory/Measure/Hausdorff.lean Modified Mathlib/MeasureTheory/Measure/Lebesgue/Integral.lean Modified Mathlib/MeasureTheory/Measure/MeasureSpace.lean Modified Mathlib/MeasureTheory/Measure/ProbabilityMeasure.lean Modified Mathlib/MeasureTheory/Measure/Restrict.lean Modified Mathlib/MeasureTheory/Measure/VectorMeasure.lean Modified Mathlib/MeasureTheory/Measure/WithDensityVectorMeasure.lean Modified Mathlib/MeasureTheory/OuterMeasure/Basic.lean Modified Mathlib/ModelTheory/Basic.lean Modified Mathlib/ModelTheory/DirectLimit.lean Modified Mathlib/ModelTheory/ElementaryMaps.lean Modified Mathlib/ModelTheory/ElementarySubstructures.lean Modified Mathlib/ModelTheory/Encoding.lean Modified Mathlib/ModelTheory/Semantics.lean Modified Mathlib/ModelTheory/Substructures.lean Modified Mathlib/ModelTheory/Syntax.lean Modified Mathlib/NumberTheory/ClassNumber/AdmissibleAbsoluteValue.lean Modified Mathlib/NumberTheory/ClassNumber/Finite.lean Modified Mathlib/NumberTheory/ClassNumber/FunctionField.lean Modified Mathlib/NumberTheory/Cyclotomic/Basic.lean Modified Mathlib/NumberTheory/Cyclotomic/Discriminant.lean Modified Mathlib/NumberTheory/Cyclotomic/PrimitiveRoots.lean Modified Mathlib/NumberTheory/KummerDedekind.lean Modified Mathlib/NumberTheory/NumberField/CanonicalEmbedding.lean Modified Mathlib/NumberTheory/NumberField/Embeddings.lean Modified Mathlib/NumberTheory/NumberField/Units.lean Modified Mathlib/NumberTheory/RamificationInertia.lean Modified Mathlib/Order/Filter/Extr.lean Modified Mathlib/Order/Hom/Basic.lean Modified Mathlib/Order/Hom/Set.lean Modified Mathlib/Order/Ideal.lean Modified Mathlib/Order/OmegaCompletePartialOrder.lean Modified Mathlib/Probability/Distributions/Uniform.lean Modified Mathlib/Probability/Kernel/WithDensity.lean Modified Mathlib/Probability/Martingale/Convergence.lean Modified Mathlib/Probability/Martingale/Upcrossing.lean Modified Mathlib/Probability/Process/HittingTime.lean Modified Mathlib/RepresentationTheory/Basic.lean Modified Mathlib/RepresentationTheory/Invariants.lean Modified Mathlib/RepresentationTheory/Maschke.lean Modified Mathlib/RingTheory/Adjoin/Basic.lean Modified Mathlib/RingTheory/Adjoin/FG.lean Modified Mathlib/RingTheory/Adjoin/PowerBasis.lean Modified Mathlib/RingTheory/Adjoin/Tower.lean Modified Mathlib/RingTheory/AdjoinRoot.lean Modified Mathlib/RingTheory/AlgebraTower.lean Modified Mathlib/RingTheory/Algebraic.lean Modified Mathlib/RingTheory/AlgebraicIndependent.lean Modified Mathlib/RingTheory/Artinian.lean Modified Mathlib/RingTheory/ClassGroup.lean Modified Mathlib/RingTheory/DedekindDomain/Ideal.lean Modified Mathlib/RingTheory/DedekindDomain/IntegralClosure.lean Modified Mathlib/RingTheory/DedekindDomain/PID.lean Modified Mathlib/RingTheory/Derivation/Basic.lean Modified Mathlib/RingTheory/Derivation/Lie.lean Modified Mathlib/RingTheory/Derivation/ToSquareZero.lean Modified Mathlib/RingTheory/DiscreteValuationRing/Basic.lean Modified Mathlib/RingTheory/Discriminant.lean Modified Mathlib/RingTheory/Etale.lean Modified Mathlib/RingTheory/FinitePresentation.lean Modified Mathlib/RingTheory/FiniteType.lean Modified Mathlib/RingTheory/Finiteness.lean Modified Mathlib/RingTheory/FractionalIdeal/Basic.lean Modified Mathlib/RingTheory/FractionalIdeal/Norm.lean Modified Mathlib/RingTheory/FractionalIdeal/Operations.lean Modified Mathlib/RingTheory/GradedAlgebra/Basic.lean Modified Mathlib/RingTheory/GradedAlgebra/HomogeneousIdeal.lean Modified Mathlib/RingTheory/GradedAlgebra/HomogeneousLocalization.lean Modified Mathlib/RingTheory/GradedAlgebra/Radical.lean Modified Mathlib/RingTheory/Ideal/AssociatedPrime.lean Modified Mathlib/RingTheory/Ideal/Cotangent.lean Modified Mathlib/RingTheory/Ideal/Norm.lean Modified Mathlib/RingTheory/Ideal/Operations.lean Modified Mathlib/RingTheory/Ideal/Over.lean Modified Mathlib/RingTheory/Ideal/QuotientOperations.lean Modified Mathlib/RingTheory/IntegralClosure.lean Modified Mathlib/RingTheory/IntegralRestrict.lean Modified Mathlib/RingTheory/IntegrallyClosed.lean Modified Mathlib/RingTheory/IsAdjoinRoot.lean Modified Mathlib/RingTheory/IsTensorProduct.lean Modified Mathlib/RingTheory/Jacobson.lean Modified Mathlib/RingTheory/Kaehler.lean Modified Mathlib/RingTheory/LocalProperties.lean Modified Mathlib/RingTheory/Localization/AtPrime.lean Modified Mathlib/RingTheory/Localization/Away/Basic.lean Modified Mathlib/RingTheory/Localization/Basic.lean Modified Mathlib/RingTheory/Localization/FractionRing.lean Modified Mathlib/RingTheory/Localization/Ideal.lean Modified Mathlib/RingTheory/Localization/Integer.lean Modified Mathlib/RingTheory/Localization/Integral.lean Modified Mathlib/RingTheory/Localization/InvSubmonoid.lean Modified Mathlib/RingTheory/Localization/LocalizationLocalization.lean Modified Mathlib/RingTheory/Localization/Module.lean Modified Mathlib/RingTheory/Localization/NormTrace.lean Modified Mathlib/RingTheory/Localization/NumDen.lean Modified Mathlib/RingTheory/Localization/Submodule.lean Modified Mathlib/RingTheory/MatrixAlgebra.lean Modified Mathlib/RingTheory/Multiplicity.lean Modified Mathlib/RingTheory/MvPolynomial/Symmetric.lean Modified Mathlib/RingTheory/MvPolynomial/Tower.lean Modified Mathlib/RingTheory/MvPolynomial/WeightedHomogeneous.lean Modified Mathlib/RingTheory/MvPowerSeries/Basic.lean Modified Mathlib/RingTheory/Nilpotent.lean Modified Mathlib/RingTheory/Noetherian.lean Modified Mathlib/RingTheory/NonUnitalSubsemiring/Basic.lean Modified Mathlib/RingTheory/Norm.lean Modified Mathlib/RingTheory/Nullstellensatz.lean Modified Mathlib/RingTheory/OreLocalization/Basic.lean Modified Mathlib/RingTheory/Perfection.lean Modified Mathlib/RingTheory/Polynomial/Basic.lean Modified Mathlib/RingTheory/Polynomial/Eisenstein/Basic.lean Modified Mathlib/RingTheory/Polynomial/Eisenstein/IsIntegral.lean Modified Mathlib/RingTheory/Polynomial/GaussLemma.lean Modified Mathlib/RingTheory/Polynomial/IntegralNormalization.lean Modified Mathlib/RingTheory/Polynomial/RationalRoot.lean Modified Mathlib/RingTheory/Polynomial/SeparableDegree.lean Modified Mathlib/RingTheory/Polynomial/Tower.lean Modified Mathlib/RingTheory/PolynomialAlgebra.lean Modified Mathlib/RingTheory/PowerBasis.lean Modified Mathlib/RingTheory/PowerSeries/Basic.lean Modified Mathlib/RingTheory/PrincipalIdealDomain.lean Modified Mathlib/RingTheory/RootsOfUnity/Basic.lean Modified Mathlib/RingTheory/Subsemiring/Basic.lean Modified Mathlib/RingTheory/TensorProduct/Basic.lean Modified Mathlib/RingTheory/Trace.lean Modified Mathlib/RingTheory/UniqueFactorizationDomain.lean Modified Mathlib/RingTheory/Valuation/Basic.lean Modified Mathlib/RingTheory/Valuation/Integers.lean Modified Mathlib/RingTheory/Valuation/Integral.lean Modified Mathlib/RingTheory/Valuation/Quotient.lean Modified Mathlib/RingTheory/Valuation/ValuationRing.lean Modified Mathlib/RingTheory/WittVector/Basic.lean Modified Mathlib/RingTheory/WittVector/Isocrystal.lean Modified Mathlib/RingTheory/WittVector/MulCoeff.lean Modified Mathlib/RingTheory/WittVector/Truncated.lean Modified Mathlib/RingTheory/WittVector/WittPolynomial.lean Modified Mathlib/Topology/Algebra/Affine.lean Modified Mathlib/Topology/Algebra/Algebra.lean Modified Mathlib/Topology/Algebra/ConstMulAction.lean Modified Mathlib/Topology/Algebra/ContinuousAffineMap.lean Modified Mathlib/Topology/Algebra/InfiniteSum/Basic.lean Modified Mathlib/Topology/Algebra/InfiniteSum/Group.lean Modified Mathlib/Topology/Algebra/Module/Basic.lean Modified Mathlib/Topology/Algebra/Module/CharacterSpace.lean Modified Mathlib/Topology/Algebra/Module/LinearPMap.lean Modified Mathlib/Topology/Algebra/Module/WeakDual.lean Modified Mathlib/Topology/Algebra/MulAction.lean Modified Mathlib/Topology/Algebra/Nonarchimedean/AdicTopology.lean Modified Mathlib/Topology/Algebra/Nonarchimedean/Basic.lean Modified Mathlib/Topology/Algebra/OpenSubgroup.lean Modified Mathlib/Topology/Algebra/Order/Group.lean Modified Mathlib/Topology/Algebra/Order/MonotoneContinuity.lean Modified Mathlib/Topology/Algebra/StarSubalgebra.lean Modified Mathlib/Topology/Algebra/UniformGroup.lean Modified Mathlib/Topology/Algebra/UniformRing.lean Modified Mathlib/Topology/Basic.lean Modified Mathlib/Topology/Clopen.lean Modified Mathlib/Topology/CompactOpen.lean Modified Mathlib/Topology/Compactness/Compact.lean Modified Mathlib/Topology/Compactness/Lindelof.lean Modified Mathlib/Topology/Compactness/LocallyCompact.lean Modified Mathlib/Topology/Constructions.lean Modified Mathlib/Topology/ContinuousFunction/Algebra.lean Modified Mathlib/Topology/ContinuousFunction/Basic.lean Modified Mathlib/Topology/ContinuousFunction/Bounded.lean Modified Mathlib/Topology/ContinuousFunction/Compact.lean Modified Mathlib/Topology/ContinuousFunction/Ideals.lean Modified Mathlib/Topology/ContinuousFunction/Ordered.lean Modified Mathlib/Topology/ContinuousOn.lean Modified Mathlib/Topology/DenseEmbedding.lean Modified Mathlib/Topology/EMetricSpace/Lipschitz.lean Modified Mathlib/Topology/FiberBundle/Constructions.lean Modified Mathlib/Topology/FiberBundle/Trivialization.lean Modified Mathlib/Topology/Homotopy/Basic.lean Modified Mathlib/Topology/Homotopy/Equiv.lean Modified Mathlib/Topology/Homotopy/Path.lean Modified Mathlib/Topology/LocalAtTarget.lean Modified Mathlib/Topology/MetricSpace/Antilipschitz.lean Modified Mathlib/Topology/MetricSpace/Contracting.lean Modified Mathlib/Topology/MetricSpace/Dilation.lean Modified Mathlib/Topology/MetricSpace/Gluing.lean Modified Mathlib/Topology/MetricSpace/Isometry.lean Modified Mathlib/Topology/MetricSpace/Lipschitz.lean Modified Mathlib/Topology/MetricSpace/ShrinkingLemma.lean Modified Mathlib/Topology/Order.lean Modified Mathlib/Topology/Order/Basic.lean Modified Mathlib/Topology/PartialHomeomorph.lean Modified Mathlib/Topology/Semicontinuous.lean Modified Mathlib/Topology/Sheaves/Abelian.lean Modified Mathlib/Topology/Sheaves/Functors.lean Modified Mathlib/Topology/Sheaves/LocalPredicate.lean Modified Mathlib/Topology/Sheaves/LocallySurjective.lean Modified Mathlib/Topology/Sheaves/Sheaf.lean Modified Mathlib/Topology/Sheaves/SheafCondition/EqualizerProducts.lean Modified Mathlib/Topology/Sheaves/SheafCondition/OpensLeCover.lean Modified Mathlib/Topology/Sheaves/SheafCondition/Sites.lean Modified Mathlib/Topology/Sheaves/SheafCondition/UniqueGluing.lean Modified Mathlib/Topology/Sheaves/Stalks.lean Modified Mathlib/Topology/StoneCech.lean Modified Mathlib/Topology/Support.lean Modified Mathlib/Topology/UniformSpace/AbstractCompletion.lean Modified Mathlib/Topology/UniformSpace/CompactConvergence.lean Modified Mathlib/Topology/UniformSpace/CompleteSeparated.lean Modified Mathlib/Topology/UniformSpace/Completion.lean Modified Mathlib/Topology/UniformSpace/UniformConvergence.lean Modified Mathlib/Topology/UniformSpace/UniformConvergenceTopology.lean Modified Mathlib/Topology/VectorBundle/Basic.lean Modified Mathlib/Topology/VectorBundle/Hom.lean Modified test/Continuity.lean 2024-03-18 16:28:50 43cd363 fix(RingTheory.Kaehler): fix map docstring (#11459) ESTIMATED CHANGES Modified Mathlib/RingTheory/Kaehler.lean 2024-03-18 12:19:48 6aee244 chore: Define the class `IsZlattice` (#11356) See the Zulip [thread](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/Class.20.60IsZlattice.60/near/426301607) ESTIMATED CHANGES Modified Mathlib/Algebra/Module/Zlattice.lean +/- theorem Zlattice.FG +/- theorem Zlattice.module_finite +/- theorem Zlattice.module_free +/- theorem Zlattice.rank + theorem Zspan.isZlattice + theorem Zspan.span_top Modified Mathlib/NumberTheory/NumberField/CanonicalEmbedding.lean Modified Mathlib/NumberTheory/NumberField/Units.lean Modified Mathlib/Topology/Constructions.lean + theorem DiscreteTopology.preimage_of_continuous_injective 2024-03-18 10:51:18 f2e29b6 chore(Algebra/*/Opposite): fix names for ring-related instances (#11453) ESTIMATED CHANGES Modified Mathlib/Algebra/Field/Opposite.lean Modified Mathlib/Algebra/Ring/Opposite.lean Modified Mathlib/Analysis/Normed/Field/Basic.lean 2024-03-18 10:51:17 e22cf36 chore(*): Fintype -> Finite, drop Decidable (#11423) Also, in some cases drop unneeded `Fintype` arguments. ESTIMATED CHANGES Modified Mathlib/Algebra/Module/Zlattice.lean +/- theorem Zspan.discreteTopology_pi_basisFun Modified Mathlib/Data/Matrix/Basic.lean +/- theorem Matrix.diagonal_neg +/- theorem Matrix.diagonal_smul +/- theorem Matrix.op_smul_one_eq_diagonal +/- theorem Matrix.smul_one_eq_diagonal Modified Mathlib/Data/Matrix/Basis.lean Modified Mathlib/Data/Matrix/DMatrix.lean +/- def DMatrix Modified Mathlib/Geometry/Manifold/ChartedSpace.lean +/- theorem piChartedSpace_chartAt Modified Mathlib/NumberTheory/LegendreSymbol/AddCharacter.lean 2024-03-18 10:51:16 86b4c66 fix: rename `LocallyFiniteOrderTop.ofIic` to `LocallyFiniteOrderBot` (#11371) It's about `LocallyFiniteOrderBot`, so the current name is simply wrong. Also fix documentation mistakes. These errors were already present in Mathlib 3, before the port. ESTIMATED CHANGES Modified Mathlib/Data/Pi/Interval.lean Modified Mathlib/Order/LocallyFinite.lean + def LocallyFiniteOrderBot.ofIic - def LocallyFiniteOrderTop.ofIic 2024-03-18 09:46:33 fdc0043 chore: classify "`@[simp]` can prove" porting notes (#11474) Classifies by adding issue number #10618 to porting notes claiming > `@[simp]` can prove ESTIMATED CHANGES Modified Mathlib/Analysis/SpecialFunctions/Exp.lean Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Angle.lean Modified Mathlib/Data/Complex/Abs.lean Modified Mathlib/Data/Finset/Basic.lean Modified Mathlib/NumberTheory/LegendreSymbol/MulCharacter.lean Modified Mathlib/NumberTheory/Zsqrtd/GaussianInt.lean Modified Mathlib/Topology/Algebra/Module/FiniteDimension.lean 2024-03-18 09:20:32 9386712 feat: add mod n cyclotomic character (#6342) We define the group homomorphism Aut(L)->(Z/dZ)^* coming from the action on the n'th roots of unity in L. Here d is the number of n'th roots of unity in L (which might not be n in this generality). We also make API for the standard special case when there are n n'th roots of unity in L, calling it `ModularCyclotomicCharacter`. Joint work with Hanneke Wiersema, coming from the Leiden conference on machine checked mathematics. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/NumberTheory/Cyclotomic/CyclotomicCharacter.lean + theorem IsPrimitiveRoot.autToPow_eq_ModularCyclotomicCharacter + def ModularCyclotomicCharacter' + theorem ModularCyclotomicCharacter.comp + theorem ModularCyclotomicCharacter.id + theorem ModularCyclotomicCharacter.spec + theorem ModularCyclotomicCharacter.toFun_spec'' + theorem ModularCyclotomicCharacter.toFun_spec' + theorem ModularCyclotomicCharacter.toFun_spec + theorem ModularCyclotomicCharacter.toFun_unique' + theorem ModularCyclotomicCharacter.toFun_unique + theorem ModularCyclotomicCharacter.unique + theorem ModularCyclotomicCharacter_aux_spec + theorem rootsOfUnity.integer_power_of_ringEquiv' + theorem rootsOfUnity.integer_power_of_ringEquiv + theorem spec' + theorem unique' 2024-03-18 08:09:08 7f61923 chore: fix quotes in nightly-testing bot (#11469) ESTIMATED CHANGES Modified .github/workflows/nightly_detect_failure.yml 2024-03-17 22:48:35 1640667 CI: lint, also after unsuccessful shake (#11454) This PR changes the behaviour of CI: after an unsuccessful `shake`, CI will continue to lint mathlib. You can take a look at #11452 for an example of the CI proposed in this PR acting in a situation where an unused import is present. `shake` fails, but CI still linted mathlib. [Zulip discussion](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/CI.3A.20continue.20on.20failure.3F/near/426905828) ESTIMATED CHANGES Modified .github/workflows/bors.yml Modified .github/workflows/build.yml Modified .github/workflows/build.yml.in Modified .github/workflows/build_fork.yml 2024-03-17 21:35:25 d706fb5 chore: classify "removed `@[pp_nodot]`" porting notes (#11447) Classifies by adding issue number #11180 to porting notes claiming: > removed `@[pp_nodot]` ESTIMATED CHANGES Modified Mathlib/Data/Complex/Exponential.lean 2024-03-17 21:35:24 3fcb743 chore: classify `new definition` porting notes (#11446) Classifies by adding issue number #11445 to porting notes claiming anything equivalent to: - "new definition" - "added definition" ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/Hom.lean Modified Mathlib/Analysis/NormedSpace/BoundedLinearMaps.lean Modified Mathlib/Data/Complex/Exponential.lean Modified Mathlib/Data/ENat/Basic.lean Modified Mathlib/Data/Finset/Basic.lean Modified Mathlib/Data/List/Cycle.lean Modified Mathlib/Data/PNat/Prime.lean Modified Mathlib/Data/Sym/Basic.lean Modified Mathlib/ModelTheory/Basic.lean 2024-03-17 21:35:23 15ca3da chore: classify `rfl required` porting notes (#11442) Classifies by adding issue number #11441 to porting notes claiming: > `rfl` required. ESTIMATED CHANGES Modified Mathlib/Order/Filter/Germ.lean 2024-03-17 21:35:22 3917534 chore: classify `new instance` porting notes (#11433) Classifies by adding issue number #10754 to porting notes claiming "new instance". ESTIMATED CHANGES Modified Mathlib/Data/Nat/PartENat.lean Modified Mathlib/Data/PNat/Defs.lean Modified Mathlib/InformationTheory/Hamming.lean Modified Mathlib/Init/Order/Defs.lean 2024-03-17 21:35:21 55fe402 chore: classify `new theorem / theorem` porting notes (#11432) Classifies by adding issue number #10756 to porting notes claiming anything equivalent to: - "added theorem" - "added theorems" - "new theorem" - "new theorems" - "added lemma" - "new lemma" - "new lemmas" ESTIMATED CHANGES Modified Mathlib/Algebra/FreeMonoid/Basic.lean Modified Mathlib/Algebra/Ring/Equiv.lean Modified Mathlib/Algebra/Star/Basic.lean Modified Mathlib/Analysis/Calculus/Deriv/Add.lean Modified Mathlib/Analysis/Calculus/FormalMultilinearSeries.lean Modified Mathlib/Analysis/Convex/Body.lean Modified Mathlib/Analysis/Matrix.lean Modified Mathlib/Analysis/Normed/Group/AddTorsor.lean Modified Mathlib/Analysis/NormedSpace/OperatorNorm/Bilinear.lean Modified Mathlib/Analysis/SpecialFunctions/Exp.lean Modified Mathlib/Analysis/SpecialFunctions/Log/Basic.lean Modified Mathlib/Analysis/SpecialFunctions/SmoothTransition.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Reflexive.lean Modified Mathlib/Data/Bool/Basic.lean Modified Mathlib/Data/Complex/Basic.lean Modified Mathlib/Data/ENNReal/Basic.lean Modified Mathlib/Data/ENat/Basic.lean Modified Mathlib/Data/Fintype/Card.lean Modified Mathlib/Data/List/AList.lean Modified Mathlib/Data/List/Chain.lean Modified Mathlib/Data/List/Cycle.lean Modified Mathlib/Data/List/Indexes.lean Modified Mathlib/Data/List/Nodup.lean Modified Mathlib/Data/List/OfFn.lean Modified Mathlib/Data/List/Range.lean Modified Mathlib/Data/List/Sigma.lean Modified Mathlib/Data/List/Sublists.lean Modified Mathlib/Data/List/ToFinsupp.lean Modified Mathlib/Data/Multiset/Basic.lean Modified Mathlib/Data/Nat/Cast/Basic.lean Modified Mathlib/Data/Nat/PartENat.lean Modified Mathlib/Data/Part.lean Modified Mathlib/Data/Polynomial/Basic.lean Modified Mathlib/Data/Polynomial/Derivative.lean Modified Mathlib/Data/Polynomial/Eval.lean Modified Mathlib/Data/Polynomial/RingDivision.lean Modified Mathlib/Data/Seq/Seq.lean Modified Mathlib/Data/Sign.lean Modified Mathlib/Data/Sym/Basic.lean Modified Mathlib/FieldTheory/PolynomialGaloisGroup.lean Modified Mathlib/Geometry/Manifold/Instances/Real.lean Modified Mathlib/GroupTheory/Perm/Support.lean Modified Mathlib/LinearAlgebra/AffineSpace/AffineMap.lean Modified Mathlib/LinearAlgebra/AffineSpace/Pointwise.lean Modified Mathlib/LinearAlgebra/PiTensorProduct.lean Modified Mathlib/Logic/Basic.lean Modified Mathlib/MeasureTheory/MeasurableSpace/Basic.lean Modified Mathlib/NumberTheory/SumFourSquares.lean Modified Mathlib/Order/Minimal.lean Modified Mathlib/RingTheory/Ideal/Operations.lean Modified Mathlib/RingTheory/Ideal/Quotient.lean Modified Mathlib/RingTheory/Localization/Basic.lean Modified Mathlib/RingTheory/Subring/Basic.lean Modified Mathlib/Topology/Algebra/Group/Basic.lean Modified Mathlib/Topology/Algebra/Order/Compact.lean Modified Mathlib/Topology/Algebra/Order/Floor.lean Modified Mathlib/Topology/Constructions.lean Modified Mathlib/Topology/MetricSpace/HausdorffDistance.lean Modified Mathlib/Topology/MetricSpace/PseudoMetric.lean Modified Mathlib/Topology/Order/OrderClosed.lean Modified Mathlib/Topology/Sets/Closeds.lean Modified Mathlib/Topology/Sets/Opens.lean 2024-03-17 21:35:20 d47822a chore(Squarefree): drop a `DecidableEq` assumption (#11427) Use `classical` instead ESTIMATED CHANGES Modified Mathlib/Algebra/Squarefree/Basic.lean +/- theorem UniqueFactorizationMonoid.squarefree_iff_nodup_normalizedFactors 2024-03-17 21:35:19 4203419 chore(UniqueFactorizationDomain): golf (#11424) Move `factors_zero` up, use it to golf `ne_zero_of_mem_factors` ESTIMATED CHANGES Modified Mathlib/RingTheory/UniqueFactorizationDomain.lean 2024-03-17 21:03:31 d94dbff fix(CategoryTheory): fix a typo in `IsLimit` file (#11450) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Limits/IsLimit.lean 2024-03-17 17:51:07 9d3f2bf chore(Algebra): improve argument names to induction principles (#11439) These are the case names used by the `induction` tactic after the `with`. This replaces `H0`, `H1`, `Hmul` etc with `zero`, `one`, `mul`. This PR does not touch `Submonoid` or `Subgroup`, as `to_additive` does not know how to rename the argument names. There are ways to work around this, but I'd prefer to leave them to a later PR. This also leaves the `closure_induction₂` variants alone, as renaming the arguments is more work for less gain. ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/NonUnitalSubalgebra.lean Modified Mathlib/Algebra/Star/Subalgebra.lean Modified Mathlib/FieldTheory/Adjoin.lean +/- theorem IntermediateField.adjoin_induction Modified Mathlib/FieldTheory/Subfield.lean +/- theorem Subfield.closure_induction Modified Mathlib/LinearAlgebra/AffineSpace/AffineSubspace.lean Modified Mathlib/LinearAlgebra/Span.lean +/- theorem Submodule.closure_induction +/- theorem Submodule.span_induction Modified Mathlib/RingTheory/Adjoin/Basic.lean +/- theorem Algebra.adjoin_induction' +/- theorem Algebra.adjoin_induction Modified Mathlib/RingTheory/Ideal/Operations.lean +/- theorem Submodule.smul_induction_on Modified Mathlib/RingTheory/NonUnitalSubring/Basic.lean +/- theorem NonUnitalSubring.closure_induction Modified Mathlib/RingTheory/NonUnitalSubsemiring/Basic.lean +/- theorem NonUnitalSubsemiring.closure_induction Modified Mathlib/RingTheory/Subring/Basic.lean Modified Mathlib/RingTheory/Subsemiring/Basic.lean +/- theorem Subsemiring.closure_induction 2024-03-17 17:51:06 8a25f82 feat(Probability/Kernel): build a kernel from a kernel CDF (#11209) Let `κ : kernel α (β × ℝ)` and `ν : kernel α β` be two finite kernels. A function `f : α × β → StieltjesFunction` is called a conditional kernel CDF of `κ` with respect to `ν` if it is measurable, tends to to 0 at -∞ and to 1 at +∞ for all `p : α × β`, if `fun b ↦ f (a, b) x` is `(ν a)`-integrable for all `a : α` and `x : ℝ` and for all measurable sets `s : Set β`, `∫ b in s, f (a, b) x ∂(ν a) = (κ a (s ×ˢ Iic x)).toReal`. From such a function with property `hf : IsCondKernelCDF f κ ν`, we build a `kernel (α × β) ℝ` denoted by `hf.toKernel f` such that `κ = ν ⊗ₖ hf.toKernel f`. The new file has substantial overlap with the contents of `Probability.Kernel.Disintegration` and `Probability.Kernel.CondCdf`: these two files will later be refactored to use the code in this PR. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Probability/Kernel/Disintegration/CdfToKernel.lean + theorem MeasureTheory.Measure.iInf_rat_gt_prod_Iic + theorem ProbabilityTheory.IsCondKernelCDF.integral + theorem ProbabilityTheory.IsCondKernelCDF.le_one + theorem ProbabilityTheory.IsCondKernelCDF.lintegral + theorem ProbabilityTheory.IsCondKernelCDF.nonneg + theorem ProbabilityTheory.IsCondKernelCDF.set_lintegral + def ProbabilityTheory.IsCondKernelCDF.toKernel + theorem ProbabilityTheory.IsCondKernelCDF.toKernel_Iic + theorem ProbabilityTheory.IsCondKernelCDF.toKernel_apply + structure ProbabilityTheory.IsCondKernelCDF + theorem ProbabilityTheory.IsRatCondKernelCDF.iInf_rat_gt_eq + theorem ProbabilityTheory.IsRatCondKernelCDF.mono + theorem ProbabilityTheory.IsRatCondKernelCDF.tendsto_atBot_zero + theorem ProbabilityTheory.IsRatCondKernelCDF.tendsto_atTop_one + structure ProbabilityTheory.IsRatCondKernelCDF + theorem ProbabilityTheory.StieltjesFunction.measurable_measure + theorem ProbabilityTheory.ae_toKernel_eq_one + theorem ProbabilityTheory.compProd_toKernel + theorem ProbabilityTheory.integrable_stieltjesOfMeasurableRat + theorem ProbabilityTheory.integral_stieltjesOfMeasurableRat + theorem ProbabilityTheory.isCondKernelCDF_stieltjesOfMeasurableRat + theorem ProbabilityTheory.isRatCondKernelCDFAux.bddBelow_range + theorem ProbabilityTheory.isRatCondKernelCDFAux.iInf_rat_gt_eq + theorem ProbabilityTheory.isRatCondKernelCDFAux.integrable_iInf_rat_gt + theorem ProbabilityTheory.isRatCondKernelCDFAux.isRatCondKernelCDF + theorem ProbabilityTheory.isRatCondKernelCDFAux.isRatStieltjesPoint_ae + theorem ProbabilityTheory.isRatCondKernelCDFAux.le_one + theorem ProbabilityTheory.isRatCondKernelCDFAux.measurable_right + theorem ProbabilityTheory.isRatCondKernelCDFAux.mono + theorem ProbabilityTheory.isRatCondKernelCDFAux.nonneg + theorem ProbabilityTheory.isRatCondKernelCDFAux.set_integral_iInf_rat_gt + theorem ProbabilityTheory.isRatCondKernelCDFAux.tendsto_atBot_zero + theorem ProbabilityTheory.isRatCondKernelCDFAux.tendsto_atTop_one + theorem ProbabilityTheory.isRatCondKernelCDFAux.tendsto_one_of_monotone + theorem ProbabilityTheory.isRatCondKernelCDFAux.tendsto_zero_of_antitone + structure ProbabilityTheory.isRatCondKernelCDFAux + theorem ProbabilityTheory.lintegral_stieltjesOfMeasurableRat + theorem ProbabilityTheory.lintegral_toKernel_mem + theorem ProbabilityTheory.lintegral_toKernel_univ + theorem ProbabilityTheory.measurableSet_toKernel_eq_one + theorem ProbabilityTheory.set_integral_stieltjesOfMeasurableRat + theorem ProbabilityTheory.set_integral_stieltjesOfMeasurableRat_rat + theorem ProbabilityTheory.set_lintegral_stieltjesOfMeasurableRat + theorem ProbabilityTheory.set_lintegral_stieltjesOfMeasurableRat_rat + theorem ProbabilityTheory.set_lintegral_toKernel_Iic + theorem ProbabilityTheory.set_lintegral_toKernel_prod + theorem ProbabilityTheory.set_lintegral_toKernel_univ + theorem ProbabilityTheory.stieltjesOfMeasurableRat_ae_eq 2024-03-17 17:02:33 b6531c9 chore: resolve "`apply` → `induction`" porting notes (#11444) Resolves porting notes claiming "`apply` → `induction`" since the new `induction` is more idiomatic than `apply`. ESTIMATED CHANGES Modified Mathlib/Data/Polynomial/Eval.lean 2024-03-17 14:50:57 0a75699 feat: Levy-Prokhorov topology is finer than convergence in distribution (#10406) This PR establishes an easy topology comparison: the topology given by the Lévy-Prokhorov distance is finer than the topology of convergence in distribution. ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Integral/BoundedContinuousFunction.lean + theorem BoundedContinuousFunction.tendsto_integral_of_forall_integral_le_liminf_integral + theorem BoundedContinuousFunction.tendsto_integral_of_forall_limsup_integral_le_integral Modified Mathlib/MeasureTheory/Integral/IntegrableOn.lean + theorem MeasureTheory.Measure.integrableOn_of_bounded Modified Mathlib/MeasureTheory/Integral/Layercake.lean + theorem MeasureTheory.Integrable.integral_eq_integral_Ioc_meas_le + theorem MeasureTheory.Integrable.integral_eq_integral_meas_le Modified Mathlib/MeasureTheory/Measure/LevyProkhorovMetric.lean + theorem MeasureTheory.BoundedContinuousFunction.integral_eq_integral_meas_le + theorem MeasureTheory.BoundedContinuousFunction.integral_eq_integral_meas_le_of_hasFiniteIntegral + theorem MeasureTheory.BoundedContinuousFunction.integral_le_of_levyProkhorovEDist_lt + theorem MeasureTheory.LevyProkhorov.dist_def + def MeasureTheory.LevyProkhorov.finiteMeasure + def MeasureTheory.LevyProkhorov.probabilityMeasure + theorem MeasureTheory.continuous_levyProkhorov_to_probabilityMeasure + theorem MeasureTheory.levyProkhorovEDist_ne_top + theorem MeasureTheory.levyProkhorov_le_convergenceInDistribution + theorem MeasureTheory.tendsto_integral_meas_thickening_le Modified Mathlib/MeasureTheory/Measure/Portmanteau.lean - theorem MeasureTheory.tendsto_integral_of_forall_integral_le_liminf_integral 2024-03-17 13:36:14 c8b7581 doc: fix Lean 3 syntax in more tests and docstrings (#11426) Best reviewed commit by commit. ESTIMATED CHANGES Modified Mathlib/Tactic/Group.lean Modified Mathlib/Tactic/RenameBVar.lean Modified test/fin_cases.lean Modified test/norm_cast.lean + theorem ENNReal.half_lt_self_bis Modified test/polyrith.lean 2024-03-17 13:36:13 b504561 fix(Order/Zorn): update usage example to Lean 4 syntax (#11425) Double-checking the syntax is welcome. ESTIMATED CHANGES Modified Mathlib/Order/Zorn.lean 2024-03-17 13:36:12 e88fcb8 doc: replace `variables`, `universes`' syntax in doc comments (#11404) It's deprecated in favour of `variable`; likely a leftover from the port. Also replace `universes`, which is invalid now. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Category/Basic.lean Modified Mathlib/Data/FunLike/Basic.lean Modified Mathlib/Data/FunLike/Embedding.lean Modified Mathlib/Data/FunLike/Equiv.lean Modified Mathlib/Data/SetLike/Basic.lean 2024-03-17 13:36:12 e7d9628 chore: add @[elab_as_elim] to some adjoin_induction lemmas (#11338) ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/NonUnitalSubalgebra.lean Modified Mathlib/Algebra/Star/Subalgebra.lean 2024-03-17 12:29:18 f0f609c chore: replace remaining lambda syntax (#11405) Includes some doc comments and real code: this is exhaustive, with two exceptions: - some files are handled in #11409 instead - I left FunProp/{ToStd,RefinedDiscTree}.lean, Tactic/NormNum and Tactic/Simps alone, as these seem likely enough to end up in std. Follow-up to #11301, much shorter this time. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Bicategory/Functor.lean Modified Mathlib/CategoryTheory/Limits/Shapes/WideEqualizers.lean Modified Mathlib/CategoryTheory/Limits/VanKampen.lean Modified Mathlib/CategoryTheory/Products/Basic.lean Modified Mathlib/CategoryTheory/Sites/CoverLifting.lean Modified Mathlib/Control/Fold.lean Modified Mathlib/Tactic/Linarith/Verification.lean Modified Mathlib/Testing/SlimCheck/Testable.lean Modified Mathlib/Util/Tactic.lean Modified test/apply_fun.lean 2024-03-17 09:55:03 6e3842d fix(Equiv/TransferInstance): `Module` instance diamond (#11419) Currently `Equiv.algebra` is defined in terms of `RingHom.toAlgebra'` which causes the induced `Module R` instance to not be defeq to the one from `Equiv.module`. This commit fixes this by defining `Equiv.algebra` in terms of `Algebra.ofModule`. ESTIMATED CHANGES Modified Mathlib/Logic/Equiv/TransferInstance.lean + theorem Equiv.algebraMap_def 2024-03-17 08:48:57 2fbad35 refactor(Algebra/Group/AddChar): reimplement using structures (#11375) Following discussion at #11313 this is an attempt to refactor `Algebra/Group/AddChar.lean` such that `AddChar A M` is a structure in its own right rather than a type synonym for `Multiplicative A →* M`. We also relax typeclass assumptions considerably (only assuming commutativity, etc, where it is really needed) and add some new functionality, e.g. composition with monoid morphisms on either side (`MonoidHom.compAddChar` and `AddChar.compAddMonoidHom`). ESTIMATED CHANGES Modified Mathlib/Algebra/Group/AddChar.lean +/- def AddChar.IsNontrivial + theorem AddChar.coe_compAddMonoidHom + theorem AddChar.coe_mk - theorem AddChar.coe_to_fun_apply + def AddChar.compAddMonoidHom +/- theorem AddChar.ext + theorem AddChar.inv_apply' +/- theorem AddChar.inv_apply +/- theorem AddChar.isNontrivial_iff_ne_trivial +/- theorem AddChar.map_add_mul + theorem AddChar.map_neg_inv +/- theorem AddChar.map_nsmul_pow +/- theorem AddChar.map_zero_one +/- theorem AddChar.map_zsmul_zpow +/- theorem AddChar.mulShift_apply +/- theorem AddChar.mul_apply +/- theorem AddChar.one_apply + theorem AddChar.pow_apply + def AddChar.toAddMonoidAddEquiv + def AddChar.toAddMonoidHom + def AddChar.toAddMonoidHomEquiv + theorem AddChar.toAddMonoidHom_apply +/- def AddChar.toMonoidHom + def AddChar.toMonoidHomEquiv + def AddChar.toMonoidHomMulEquiv + theorem AddChar.toMonoidHom_apply + structure AddChar - def AddChar + theorem MonoidHom.coe_compAddChar + def MonoidHom.compAddChar Modified Mathlib/NumberTheory/LegendreSymbol/AddCharacter.lean 2024-03-17 06:28:18 6d1dffa chore: make sure that Archive and Counterexamples are quiet (#11377) This PR proposes two changes to CI. ### Quiet `Archive` and `Counterexamples` CI checks that building `Mathlib` and `test` produces no messages. However, `Archive` and `Counterexamples` could be noisy and CI would not detect it. This PR makes sure that also `Archive and `Counterexamples` are quiet. I noticed that `Archive` and `Counterexamples` were not required to be quiet, since they contained unused tactics flagged by the linter. EDIT: this second item is already available -- see Floris' comment below. ### Upload the cache even when `Mathlib` is noisy This PR moves the check of quietness of `Mathlib` until after the uploading cache step, so that you can have the cache available to fix the noisiness! As a check, PR #11378 made `Mathlib` noisy, CI failed, but only after uploading the cache and building `Archive`, `Counterexamples`. See in particular [this CI run](https://github.com/leanprover-community/mathlib4/actions/runs/8285030855/job/22671860704). ESTIMATED CHANGES Modified .github/workflows/bors.yml Modified .github/workflows/build.yml Modified .github/workflows/build.yml.in Modified .github/workflows/build_fork.yml 2024-03-17 01:49:41 7acbfc5 feat: preserves colimit if colimit.post is iso (#11421) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Limits/Preserves/Basic.lean Modified Mathlib/CategoryTheory/Limits/Preserves/Limits.lean + def CategoryTheory.preservesColimitOfIsIsoPost + def CategoryTheory.preservesLimitOfIsIsoPost 2024-03-16 21:39:59 de6d952 chore(Preadditive/Biproducts): fix `Decidable`/`Fintype` (#11422) * Assume `[Finite J]` instead of `[Fintype J]` whenever we don't need data to formulate the theorem. * Drop `[DecidableEq]` assumptions in `biproduct.reindex`. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Preadditive/Biproducts.lean +/- theorem CategoryTheory.Limits.HasBiproduct.of_hasCoproduct +/- theorem CategoryTheory.Limits.HasBiproduct.of_hasProduct +/- theorem CategoryTheory.Limits.biproduct.lift_matrix +/- theorem CategoryTheory.Limits.biproduct.map_matrix +/- theorem CategoryTheory.Limits.biproduct.matrix_desc +/- theorem CategoryTheory.Limits.biproduct.matrix_map +/- def CategoryTheory.Limits.biproduct.reindex 2024-03-16 20:45:48 957cdb7 chore: classify `broken dot notation` porting notes (#11429) Classifies by adding issue number #11036 to porting notes claiming: > dot notation no longer works ESTIMATED CHANGES Modified Mathlib/Data/Set/Semiring.lean 2024-03-16 19:33:17 bad9e36 feat: add Basis.flag_le_ker_dual (#11265) From sphere-eversion; I adapted the proof to mathlib's definition and golfed it a bit. This adds a new import; as this file is not imported anywhere, this seems fine. ESTIMATED CHANGES Modified Mathlib/Data/Fin/Basic.lean + theorem Fin.coe_succ_lt_iff_lt Modified Mathlib/LinearAlgebra/Basis/Flag.lean + theorem Basis.flag_le_ker_dual 2024-03-16 17:36:14 16cc6aa feat: review and expand API on behavior of topological bases under some constructions (#10732) The main addition is `IsTopologicalBasis.inf` (see https://leanprover.zulipchat.com/#narrow/stream/217875-Is-there-code-for-X.3F/topic/Inf.20of.20a.20pair.20of.20topologies/near/419989448), and I also reordered things to be in the more typical order (deducing the `Pi` version from the `iInf` version rather than the converse). Also a few extra golfs and variations. ESTIMATED CHANGES Modified Mathlib/Data/Analysis/Topology.lean Modified Mathlib/Order/Filter/Bases.lean + theorem Filter.HasBasis.to_image_id' + theorem Filter.HasBasis.to_image_id Modified Mathlib/Topology/Algebra/Group/Basic.lean Modified Mathlib/Topology/Bases.lean + theorem IsTopologicalBasis.iInf_induced + theorem TopologicalSpace.IsTopologicalBasis.inf_induced + theorem TopologicalSpace.IsTopologicalBasis.of_hasBasis_nhds - theorem isTopologicalBasis_iInf Modified Mathlib/Topology/Basic.lean + theorem TopologicalSpace.ext_iff_nhds Modified Mathlib/Topology/Category/TopCat/Limits/Cofiltered.lean Modified Mathlib/Topology/Maps.lean + theorem Inducing.basis_nhds Modified Mathlib/Topology/Order.lean - theorem eq_of_nhds_eq_nhds Modified Mathlib/Topology/Order/Basic.lean Modified Mathlib/Topology/UniformSpace/Basic.lean Modified Mathlib/Topology/UniformSpace/CompactConvergence.lean 2024-03-16 16:28:59 524b851 chore: label one porting note and fix another (#11411) Two comments with Lean 3 code looked like they should have been labelled "porting note". Do so; one of them can be fixed now. ESTIMATED CHANGES Modified Mathlib/Data/Finset/Basic.lean Modified Mathlib/Order/Hom/Bounded.lean 2024-03-16 16:28:58 38b7f4a style(tests/Tauto): remove Lean 3 syntax in comments and touch up style (#11403) - Remove Lean 3 syntax in comments: there's no reason it should be there. - Indent the 'by' blocks according to the style guide. - Add some blank lines at beginnings of sections; that's good practice. ESTIMATED CHANGES Modified test/Tauto.lean 2024-03-16 16:28:57 27d3439 chore: prevent API leakage on SimplexCategory (#11395) This PR removes the `simps` attribute in the definition of the category structure on `SimplexCategory` so as to prevent API leakage. Better suited `simp` lemmas are added. The definition of `SimplexCategory.const` is also generalized in order to describe any constant map in `SimplexCategory`. ESTIMATED CHANGES Modified Mathlib/AlgebraicTopology/CechNerve.lean Modified Mathlib/AlgebraicTopology/SimplexCategory.lean + theorem SimplexCategory.comp_toOrderHom +/- def SimplexCategory.const + theorem SimplexCategory.const_apply +/- theorem SimplexCategory.const_comp + theorem SimplexCategory.const_eq_id + theorem SimplexCategory.id_toOrderHom Modified Mathlib/AlgebraicTopology/SimplicialObject.lean 2024-03-16 15:45:47 1e2c406 feat(InfiniteSum/NatInt): lemmas on sums over ℤ (#11069) This PR combines several results involving topological sums over `ℤ`. These results are used in #10011 (Hurwitz zeta functions) where sums over `ℤ` feature heavily. * Fill in `tsum` and `Summable` variants for lemmas proved for `HasSum` * Rename some lemmas (with deprecated aliases) to impose a consistent naming scheme * Generalise several lemmas to allow the target space to be a topological monoid rather than a group. * Speed up some slow proofs (the old `summable_int_of_summable_nat` took about 10s to compile on my machine, its replacement `Summable.of_nat_of_neg` is 1000 times faster) ESTIMATED CHANGES Modified Mathlib/Analysis/PSeries.lean Modified Mathlib/Analysis/SpecialFunctions/Stirling.lean Modified Mathlib/NumberTheory/ModularForms/JacobiTheta/OneVariable.lean Modified Mathlib/NumberTheory/ModularForms/JacobiTheta/TwoVariable.lean Modified Mathlib/Topology/Algebra/InfiniteSum/NatInt.lean +/- theorem HasSum.even_add_odd +/- theorem HasSum.int_rec + theorem HasSum.nat_add_neg + theorem HasSum.nat_add_neg_add_one - theorem HasSum.nonneg_add_neg + theorem HasSum.of_add_one_of_neg_add_one + theorem HasSum.of_nat_of_neg + theorem HasSum.of_nat_of_neg_add_one - theorem HasSum.pos_add_zero_add_neg - theorem HasSum.sum_nat_of_sum_int +/- theorem HasSum.sum_range_add +/- theorem HasSum.tendsto_sum_nat + theorem HasSum.zero_add + theorem Summable.comp_nat_add + theorem Summable.even_add_odd +/- theorem Summable.hasSum_iff_tendsto_nat + theorem Summable.int_rec + theorem Summable.nat_add_neg + theorem Summable.nat_add_neg_add_one + theorem Summable.of_add_one_of_neg_add_one + theorem Summable.of_nat_of_neg + theorem Summable.of_nat_of_neg_add_one +/- theorem cauchySeq_finset_iff_nat_tsum_vanishing +/- theorem hasSum_nat_add_iff' +/- theorem hasSum_nat_add_iff +/- theorem rel_iSup_sum +/- theorem rel_iSup_tsum +/- theorem rel_sup_add +/- theorem sum_add_tsum_nat_add +/- theorem summable_iff_nat_tsum_vanishing + theorem summable_int_iff_summable_nat_and_neg + theorem summable_int_iff_summable_nat_and_neg_add_one - theorem summable_int_of_summable_nat +/- theorem summable_nat_add_iff +/- theorem tendsto_sum_nat_add +/- theorem tsum_eq_zero_add +/- theorem tsum_even_add_odd +/- theorem tsum_iSup_decode₂ +/- theorem tsum_iUnion_decode₂ + theorem tsum_int_rec + theorem tsum_nat_add_neg + theorem tsum_nat_add_neg_add_one + theorem tsum_of_add_one_of_neg_add_one + theorem tsum_of_nat_of_neg + theorem tsum_of_nat_of_neg_add_one 2024-03-16 14:21:55 1f22e02 chore: golf proof of RepresentablyFlat.comp (#11416) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Functor/Flat.lean 2024-03-16 13:20:06 0010623 feat: better `polishSpace_of_complete_second_countable` (#10890) * Make it work for a `UniformSpace` with extra properties. * Use it to golf some instances. ESTIMATED CHANGES Modified Mathlib/Data/Set/Prod.lean + theorem Set.range_const_eq_diagonal Modified Mathlib/Topology/MetricSpace/Polish.lean - def PolishSpace.AuxCopy + theorem PolishSpace.t2Space Modified Mathlib/Topology/UniformSpace/Pi.lean 2024-03-16 11:51:36 001273f fix(Polynomial/Laurent): replace Lean 3 syntax in comments (#11407) ESTIMATED CHANGES Modified Mathlib/Data/Polynomial/Laurent.lean 2024-03-16 10:44:23 448065a perf: small speedup in InjSurj (#11413) This new order matches the order in the `extends` clause, and so results in less eta expansion. ESTIMATED CHANGES Modified Mathlib/Algebra/Group/InjSurj.lean 2024-03-16 10:05:33 14b7f74 docs(FunLike/Fintype): fix typo in doc comments (#11402) The non-dependent version of `DFunLike.{fintype,finite}` is called `FunLike.{fintype,finite}`; the names in the docstring do not exist. ESTIMATED CHANGES Modified Mathlib/Data/FunLike/Fintype.lean 2024-03-16 09:40:02 a81a438 doc(RepresentationTheory/FdRep): fix spelling typo (#11410) ESTIMATED CHANGES Modified Mathlib/RepresentationTheory/FdRep.lean 2024-03-15 22:49:53 1a1dffd chore: fix `extract_lets` without `at` (#11400) Make `extract_lets` (without any specified `at`) work on just the goal. This supplements the already valid syntax `extract_lets at h ⊢` and `extract_lets at *` ESTIMATED CHANGES Modified Mathlib/Tactic/ExtractLets.lean - def Mathlib.evalExtractLet + def Mathlib.evalExtractLets Modified scripts/nolints.json Modified test/ExtractLets.lean 2024-03-15 22:26:31 980b8c7 feat(CategoryTheory): right adjoints are representably flat (#11412) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Filtered/Basic.lean + theorem CategoryTheory.IsCofiltered.of_isInitial + theorem CategoryTheory.IsFiltered.of_isTerminal Modified Mathlib/CategoryTheory/Functor/Flat.lean + theorem CategoryTheory.RepresentablyFlat.id 2024-03-15 21:44:05 73d8d15 perf(test/observe): set low maxHeartbeats for test (#10498) ESTIMATED CHANGES Modified test/observe.lean 2024-03-15 17:24:58 e21671e feat(RingTheory/HahnSeries/Basic): Make a Hahn series from a function with support bounded below (#9574) Given a locally finite linearly ordered set `Γ` and a function `f` on `Γ` whose support is bounded below, we produce a Hahn series whose coefficients are given by `f`. We introduce a theorem (borrowing from mathlib3 #18604) for translating the vanishing condition to the partially well-ordered support condition that is used in the definition of Hahn Series. ESTIMATED CHANGES Modified Mathlib/Order/WellFoundedSet.lean + theorem BddAbove.wellFoundedOn_gt + theorem BddBelow.wellFoundedOn_lt Modified Mathlib/RingTheory/HahnSeries/Basic.lean + theorem HahnSeries.BddBelow_zero + theorem HahnSeries.forallLTEqZero_supp_BddBelow + def HahnSeries.ofSuppBddBelow + theorem HahnSeries.order_ofForallLtEqZero + theorem HahnSeries.suppBddBelow_supp_PWO + theorem HahnSeries.zero_ofSuppBddBelow Modified Mathlib/RingTheory/LaurentSeries.lean 2024-03-15 16:36:55 ef2b6f2 chore: add decidability assumptions where needed for the statement (#11157) The general policy in mathlib is to include decidability assumptions on a theorem if and only if they are used in its statement. @fpvandoorn has been working on a linter to detect cases which violate the backwards direction of that policy. (i.e. cases where `Classical.propDecidable` appears in a theorem's statement.) I've started going through [the output of that linter](https://gist.github.com/fpvandoorn/05cca028139e98bded9874169a1332d5) and this PR contains fixes for the two files I've finished so far. [Zulip thread about the linter](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/prop.20decidable.20linter/near/424101789) ESTIMATED CHANGES Modified Mathlib/Algebra/DirectLimit.lean +/- theorem Module.DirectLimit.of.zero_exact_aux +/- theorem Module.DirectLimit.toModule_totalize_of_le +/- theorem Ring.DirectLimit.of.zero_exact_aux2 Modified Mathlib/Algebra/GCDMonoid/Div.lean 2024-03-15 16:00:06 aae7c58 feat: Semicontinuity of `f ∘ g` for `f` semicontinuous, `g` continuous (#10822) Only the other direction exists currently, it seems. ESTIMATED CHANGES Modified Mathlib/Topology/Semicontinuous.lean + theorem LowerSemicontinuous.comp_continuous + theorem LowerSemicontinuousAt.comp_continuousAt + theorem LowerSemicontinuousAt.comp_continuousAt_of_eq + theorem UpperSemicontinuous.comp_continuous + theorem UpperSemicontinuousAt.comp_continuousAt + theorem UpperSemicontinuousAt.comp_continuousAt_of_eq 2024-03-15 15:34:46 567bf08 feat: an abstract continuous functional calculus for non-unital algebras (#11221) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Topology/ContinuousFunction/NonUnitalFunctionalCalculus.lean + theorem NonUnitalStarAlgHom.ext_continuousMap + theorem cfc_map_quasispectrum + theorem cfcₙHom_closedEmbedding + theorem cfcₙHom_comp + theorem cfcₙHom_eq_of_continuous_of_map_id + theorem cfcₙHom_id + theorem cfcₙHom_map_quasispectrum + theorem cfcₙHom_predicate + theorem cfcₙ_add + theorem cfcₙ_apply + theorem cfcₙ_apply_of_not_and_and + theorem cfcₙ_apply_of_not_continuousOn + theorem cfcₙ_apply_of_not_map_zero + theorem cfcₙ_apply_of_not_predicate + theorem cfcₙ_comp' + theorem cfcₙ_comp + theorem cfcₙ_comp_const_mul + theorem cfcₙ_comp_neg + theorem cfcₙ_comp_smul + theorem cfcₙ_comp_star + theorem cfcₙ_congr + theorem cfcₙ_const_mul + theorem cfcₙ_const_mul_id + theorem cfcₙ_const_zero + theorem cfcₙ_eq_cfcₙ_iff_eqOn + theorem cfcₙ_id' + theorem cfcₙ_id + theorem cfcₙ_mul + theorem cfcₙ_neg + theorem cfcₙ_neg_id + theorem cfcₙ_predicate + theorem cfcₙ_smul + theorem cfcₙ_smul_id + theorem cfcₙ_star + theorem cfcₙ_star_id + theorem cfcₙ_sub + theorem cfcₙ_zero + theorem eqOn_of_cfcₙ_eq_cfcₙ + theorem eq_zero_of_quasispectrum_eq_zero Modified scripts/noshake.json 2024-03-15 12:53:30 d7e4944 fix: remove DecidableEq assumption from `factors` (#11158) It doesn't make a lot of sense for `factors` to require a `DecidableEq` assumption since it's not used in the statement, and the definition is already noncomputable. This PR removes that assumption and updates some lemmas later in the file accordingly. ESTIMATED CHANGES Modified Mathlib/RingTheory/ChainOfDivisors.lean +/- theorem map_prime_of_factor_orderIso +/- theorem mem_normalizedFactors_factor_dvd_iso_of_mem_normalizedFactors +/- theorem mem_normalizedFactors_factor_orderIso_of_mem_normalizedFactors +/- theorem multiplicity_prime_eq_multiplicity_image_by_factor_orderIso +/- theorem multiplicity_prime_le_multiplicity_image_by_factor_orderIso Modified Mathlib/RingTheory/DedekindDomain/Ideal.lean +/- theorem Ideal.factors_span_eq Modified Mathlib/RingTheory/DedekindDomain/PID.lean +/- theorem IsLocalization.OverPrime.mem_normalizedFactors_of_isPrime Modified Mathlib/RingTheory/UniqueFactorizationDomain.lean +/- theorem Associates.count_eq_zero_of_ne +/- theorem Associates.count_factors_eq_find_of_dvd_pow +/- theorem Associates.count_le_count_of_factors_le +/- theorem Associates.count_le_count_of_le +/- theorem Associates.count_mul +/- theorem Associates.count_mul_of_coprime' +/- theorem Associates.count_mul_of_coprime +/- theorem Associates.count_ne_zero_iff_dvd +/- theorem Associates.count_of_coprime +/- theorem Associates.count_pow +/- theorem Associates.count_self +/- theorem Associates.dvd_count_of_dvd_count_mul +/- theorem Associates.dvd_count_pow +/- theorem Associates.eq_factors_of_eq_counts +/- theorem Associates.eq_of_eq_counts +/- theorem Associates.eq_pow_count_factors_of_dvd_pow +/- theorem Associates.is_pow_of_dvd_count +/- theorem Associates.le_of_count_ne_zero +/- theorem Associates.prime_pow_dvd_iff_le +/- theorem UniqueFactorizationMonoid.factors_eq_normalizedFactors +/- theorem UniqueFactorizationMonoid.factors_pow_count_prod +/- theorem UniqueFactorizationMonoid.le_multiplicity_iff_replicate_le_normalizedFactors 2024-03-15 12:53:29 ebabd04 feat: counting elements in an interval with given residue (#9348) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Data/Int/CardIntervalMod.lean + theorem Int.Ico_filter_dvd_card + theorem Int.Ico_filter_dvd_eq + theorem Int.Ico_filter_modEq_card + theorem Int.Ico_filter_modEq_eq + theorem Int.Ioc_filter_dvd_card + theorem Int.Ioc_filter_dvd_eq + theorem Int.Ioc_filter_modEq_card + theorem Int.Ioc_filter_modEq_eq + theorem Nat.Ico_filter_modEq_card + theorem Nat.Ico_filter_modEq_cast + theorem Nat.Ioc_filter_modEq_card + theorem Nat.Ioc_filter_modEq_cast + theorem Nat.count_modEq_card + theorem Nat.count_modEq_card_eq_ceil 2024-03-15 11:56:06 b90c18e feat: add lemma `CanonicallyOrderedCommMonoid.single_le_prod` (#11383) ESTIMATED CHANGES Modified Mathlib/Algebra/BigOperators/Order.lean + theorem CanonicallyOrderedCommMonoid.single_le_prod 2024-03-15 10:37:48 2a70469 feat: add lemmas `Polynomial.natDegree_sum_le_of_forall_le` (#11381) Also add two missing `simp` attributes ESTIMATED CHANGES Modified Mathlib/Algebra/Polynomial/BigOperators.lean + theorem Polynomial.natDegree_sum_le_of_forall_le Modified Mathlib/Data/Fin/Basic.lean +/- theorem Fin.cast_val_eq_self Modified Mathlib/Data/Polynomial/Basic.lean 2024-03-15 09:45:17 6f69c4d refactor: flip `LinearMap.convexHull_image` and rename to `LinearMap.image_convexHull` (#11298) - flip `LinearMap.convexHull_image` and rename to `image_convexHull` - while at it, also flip the direction of `convexHull_smul` and `convexHull_neg` to match this - fix argument order of `AffineMap.convexHull_image`: have the `AffineMap` argument come first; there's no good reason not to and this enables dot notation - inline variable `(s : Set E)` to achieve this; this is slightly clearer anyway [zulip discussion](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/image_convexHull.20vs.20convexHull_image) ESTIMATED CHANGES Modified Mathlib/Analysis/Complex/Convex.lean Modified Mathlib/Analysis/Convex/Combination.lean Modified Mathlib/Analysis/Convex/Hull.lean +/- theorem AffineMap.image_convexHull - theorem IsLinearMap.convexHull_image + theorem IsLinearMap.image_convexHull - theorem LinearMap.convexHull_image + theorem LinearMap.image_convexHull +/- theorem affineSpan_convexHull +/- theorem convexHull_neg +/- theorem convexHull_smul +/- theorem convexHull_subset_affineSpan 2024-03-15 08:34:44 1384de0 chore: tidy various files (#11135) ESTIMATED CHANGES Modified Mathlib/AlgebraicGeometry/EllipticCurve/Jacobian.lean Modified Mathlib/AlgebraicGeometry/EllipticCurve/Projective.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Pullbacks.lean Modified Mathlib/Data/Complex/Basic.lean Modified Mathlib/Data/Nat/ModEq.lean Modified Mathlib/GroupTheory/SchurZassenhaus.lean Modified Mathlib/Init/Logic.lean +/- theorem Equivalence.transitive Modified Mathlib/LinearAlgebra/QuadraticForm/Dual.lean Modified Mathlib/Logic/Godel/GodelBetaFunction.lean +/- theorem Nat.beta_unbeta_coe Modified Mathlib/MeasureTheory/Integral/Lebesgue.lean Modified Mathlib/NumberTheory/NumberField/CanonicalEmbedding.lean +/- theorem NumberField.mixedEmbedding.convexBodyLT'_neg_mem Modified Mathlib/NumberTheory/SumFourSquares.lean Modified Mathlib/Probability/Kernel/WithDensity.lean Modified Mathlib/RingTheory/Kaehler.lean Modified Mathlib/Topology/MetricSpace/Closeds.lean Modified Mathlib/Topology/MetricSpace/HausdorffDistance.lean Modified Mathlib/Topology/Separation.lean Modified Mathlib/Topology/Spectral/Hom.lean 2024-03-15 06:18:41 c7950e4 chore: remove unneeded decreasing_by and termination_by (#11386) The termination checker has been getting more capable, and many of the `termination_by` or `decreasing_by` clauses in Mathlib are no longer needed. (Note that `termination_by?` will show the automatically derived termination expression, so no information is being lost by removing these.) ESTIMATED CHANGES Modified Archive/Wiedijk100Theorems/BallotProblem.lean Modified Mathlib/Analysis/Analytic/Inverse.lean Modified Mathlib/Analysis/InnerProductSpace/GramSchmidtOrtho.lean Modified Mathlib/Computability/Ackermann.lean Modified Mathlib/Computability/PartrecCode.lean Modified Mathlib/Computability/RegularExpressions.lean Modified Mathlib/Data/BinaryHeap.lean Modified Mathlib/Data/Fintype/Basic.lean Modified Mathlib/Data/List/Infix.lean Modified Mathlib/Data/List/Sort.lean Modified Mathlib/Data/List/Sym.lean Modified Mathlib/Data/Nat/Cast/Defs.lean Modified Mathlib/Data/Nat/Defs.lean Modified Mathlib/Data/Prod/TProd.lean Modified Mathlib/Data/Sym/Card.lean Modified Mathlib/GroupTheory/CommutingProbability.lean Modified Mathlib/RingTheory/Multiplicity.lean Modified Mathlib/RingTheory/Polynomial/Hermite/Basic.lean Modified Mathlib/RingTheory/WittVector/FrobeniusFractionField.lean Modified Mathlib/SetTheory/Game/Basic.lean Modified Mathlib/SetTheory/Game/Impartial.lean Modified Mathlib/SetTheory/Game/Nim.lean Modified Mathlib/SetTheory/Game/Short.lean Modified Mathlib/SetTheory/Lists.lean Modified Mathlib/SetTheory/Ordinal/NaturalOps.lean Modified Mathlib/SetTheory/Surreal/Basic.lean Modified Mathlib/Tactic/FailIfNoProgress.lean 2024-03-15 06:18:40 11b06ab chore: remove unused tactics in Archive and Counterexamples (#11379) More unused tactics flagged by the linter (#11308): these are all the changes in `Archive/Counterexamples` that the linter found. ESTIMATED CHANGES Modified Archive/Imo/Imo1960Q1.lean Modified Archive/Sensitivity.lean Modified Counterexamples/Phillips.lean 2024-03-15 05:55:30 cef4a37 chore: resolve a few porting notes of "original proof fails". (#11388) ESTIMATED CHANGES Modified Mathlib/Data/List/Basic.lean Modified Mathlib/Data/Nat/Choose/Basic.lean Modified Mathlib/Data/Nat/Hyperoperation.lean 2024-03-15 05:29:44 1217b62 chore: nightly-testing bot posts in the public stream (#11390) ESTIMATED CHANGES Modified .github/workflows/nightly_detect_failure.yml 2024-03-15 04:37:34 5c2a2a2 chore: the nightly-testing bot can remind us when to create PRs (#11391) ESTIMATED CHANGES Modified .github/workflows/nightly_detect_failure.yml 2024-03-15 04:06:03 0d8cfe0 chore: fix nightly-testing bot logic (#11389) ESTIMATED CHANGES Modified .github/workflows/nightly_detect_failure.yml 2024-03-15 01:01:53 bdfe635 feat: add lemmas `Matrix.cons_val_three`, `Matrix.cons_val_four` (#11382) I just needed the `three` version of these when doing some explicit computations with a cubic polynomial. Obviously there is a limit to how far we should go but I think the proposed values are reasonable. ESTIMATED CHANGES Modified Mathlib/Data/Fin/VecNotation.lean + theorem Matrix.cons_val_four + theorem Matrix.cons_val_three 2024-03-14 22:18:09 532c33b feat: chosen finite products in a category (#11248) This PR introduces a class for categories with explicit choices of binary products and terminal objects, and introduces the associated (Cartesian) symmetric monoidal instance. The primary use of this class is to be able to define internal algebraic objects in categories with chosen finite products, while retaining good definitional properties of the products in question, primarily as a convenience. We introduce an instance of this new class for the category of types where the binary product is the usual type-theoretic product and the terminal object is `PUnit`. Future work will introduce an instance for other categories, especially the category of affine schemes which should make objects like group schemes more convenient. NOTE: In some sense this reverses the refactor done in https://github.com/leanprover-community/mathlib/pull/3995 but only in the particular case of binary products and terminal objects. Working with (nonexplicit) (co)limits is still the preferred way to work with (co)limits in abstract categories, and instances of `ChosenFiniteProducts` (and other similar classes which may be introduced in the future) should be carefully considered before they are introduced. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/ChosenFiniteProducts.lean + def CategoryTheory.ChosenFiniteProducts.fst + theorem CategoryTheory.ChosenFiniteProducts.hom_ext + def CategoryTheory.ChosenFiniteProducts.lift + theorem CategoryTheory.ChosenFiniteProducts.lift_fst + theorem CategoryTheory.ChosenFiniteProducts.lift_snd + def CategoryTheory.ChosenFiniteProducts.ofFiniteProducts + def CategoryTheory.ChosenFiniteProducts.snd + def CategoryTheory.ChosenFiniteProducts.toUnit + theorem CategoryTheory.ChosenFiniteProducts.toUnit_unique Modified Mathlib/CategoryTheory/Monoidal/Types/Basic.lean 2024-03-14 19:53:20 0c4d96e fix: add DecidableEq to two lemmas (#11376) ESTIMATED CHANGES Modified Mathlib/Analysis/Calculus/ContDiff/Basic.lean +/- theorem contDiff_single +/- theorem contDiff_update 2024-03-14 18:30:53 415f214 feat(RingTheory/Localization): add facts about localization at minimal prime ideals (#11201) Show that localization at minimal primes results in rings with only a single prime ideal, implying that every non-unit element is nilpotent. ESTIMATED CHANGES Modified Mathlib/AlgebraicGeometry/PrimeSpectrum/Basic.lean + def PrimeSpectrum.primeSpectrum_unique_of_localization_at_minimal Modified Mathlib/RingTheory/Ideal/MinimalPrime.lean + theorem IsLocalization.AtPrime.prime_unique_of_minimal + theorem Localization.AtPrime.nilpotent_iff_mem_maximal_of_minimal + theorem Localization.AtPrime.nilpotent_iff_not_unit_of_minimal + theorem Localization.AtPrime.prime_unique_of_minimal Modified Mathlib/RingTheory/Localization/AtPrime.lean + def IsLocalization.AtPrime.orderIsoOfPrime 2024-03-14 18:06:36 bbb8984 feat: use polyrith/linear_combination in Algebra/Star/CHSH (#11211) ESTIMATED CHANGES Modified Mathlib/Algebra/Star/CHSH.lean 2024-03-14 16:09:03 c33c272 chore: remove tactics (#11365) More tactics that are not used, found using the linter at #11308. The PR consists of tactic removals, whitespace changes and replacing a porting note by an explanation. ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Hom/Basic.lean Modified Mathlib/Algebra/Group/Pi/Basic.lean Modified Mathlib/AlgebraicGeometry/Morphisms/RingHomProperties.lean Modified Mathlib/AlgebraicGeometry/OpenImmersion.lean Modified Mathlib/Analysis/NormedSpace/LinearIsometry.lean +/- theorem LinearIsometryEquiv.ofEq_rfl Modified Mathlib/Analysis/NormedSpace/Multilinear/Basic.lean Modified Mathlib/Analysis/NormedSpace/OperatorNorm/NormedSpace.lean Modified Mathlib/CategoryTheory/Adjunction/Basic.lean Modified Mathlib/CategoryTheory/Adjunction/Opposites.lean Modified Mathlib/CategoryTheory/Groupoid/Subgroupoid.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Terminal.lean Modified Mathlib/CategoryTheory/Limits/Shapes/WidePullbacks.lean Modified Mathlib/CategoryTheory/Monoidal/Braided/Basic.lean Modified Mathlib/CategoryTheory/Monoidal/Category.lean Modified Mathlib/CategoryTheory/Monoidal/End.lean Modified Mathlib/CategoryTheory/Monoidal/Functorial.lean Modified Mathlib/CategoryTheory/Preadditive/Injective.lean Modified Mathlib/Data/Fin/SuccPred.lean Modified Mathlib/Data/Finset/Lattice.lean Modified Mathlib/Data/Fintype/Card.lean Modified Mathlib/Data/List/Card.lean Modified Mathlib/Data/Nat/Digits.lean Modified Mathlib/Data/Nat/Fib/Basic.lean Modified Mathlib/Data/Nat/PartENat.lean Modified Mathlib/Data/Num/Lemmas.lean Modified Mathlib/Data/PFunctor/Univariate/M.lean Modified Mathlib/Data/PNat/Factors.lean Modified Mathlib/Data/Seq/WSeq.lean Modified Mathlib/Geometry/Manifold/VectorBundle/Pullback.lean Modified Mathlib/GroupTheory/FiniteAbelian.lean Modified Mathlib/GroupTheory/FreeGroup/Basic.lean Modified Mathlib/GroupTheory/GroupAction/Prod.lean Modified Mathlib/GroupTheory/MonoidLocalization.lean Modified Mathlib/GroupTheory/Nilpotent.lean Modified Mathlib/GroupTheory/Perm/Support.lean Modified Mathlib/LinearAlgebra/Matrix/SchurComplement.lean Modified Mathlib/Logic/Equiv/TransferInstance.lean Modified Mathlib/Logic/Small/Basic.lean Modified Mathlib/MeasureTheory/Constructions/Polish.lean Modified Mathlib/MeasureTheory/Decomposition/Jordan.lean Modified Mathlib/MeasureTheory/Integral/IntegralEqImproper.lean Modified Mathlib/ModelTheory/Algebra/Ring/Basic.lean Modified Mathlib/ModelTheory/Satisfiability.lean Modified Mathlib/Order/OmegaCompletePartialOrder.lean Modified Mathlib/Order/RelSeries.lean Modified Mathlib/RingTheory/DedekindDomain/PID.lean Modified Mathlib/RingTheory/Ideal/QuotientOperations.lean Modified Mathlib/RingTheory/Localization/Integral.lean Modified Mathlib/RingTheory/QuotientNilpotent.lean Modified Mathlib/RingTheory/RingHom/Surjective.lean Modified Mathlib/RingTheory/RingHomProperties.lean Modified Mathlib/Topology/Category/Profinite/Basic.lean Modified Mathlib/Topology/Connected/PathConnected.lean Modified Mathlib/Topology/VectorBundle/Constructions.lean 2024-03-14 16:09:01 5e218f1 chore: resolve some porting notes which are fixed now (#11317) It started with the one in `Convex/Combination` and spiralled into revisiting all notes with `needs` in them. The `ToLin` changes overlap with #11171. ESTIMATED CHANGES Modified Counterexamples/Pseudoelement.lean Modified Mathlib/Algebra/Category/ModuleCat/Kernels.lean Modified Mathlib/Analysis/Convex/Combination.lean + def convexHullAddMonoidHom Modified Mathlib/LinearAlgebra/Matrix/ToLin.lean Modified Mathlib/LinearAlgebra/TensorAlgebra/Basic.lean +/- theorem TensorAlgebra.ι_leftInverse Modified Mathlib/Order/SupIndep.lean 2024-03-14 15:04:30 9c2d8e0 refactor(Data.Finset.Card): termination_by change (#11370) this will break once https://github.com/leanprover/lean4/pull/3658 lands, so let's fix this now. Also avoids binding unused variables in `termination_by`. ESTIMATED CHANGES Modified Mathlib/Computability/Ackermann.lean Modified Mathlib/Data/Finset/Card.lean Modified Mathlib/Data/Polynomial/Div.lean Modified Mathlib/SetTheory/Game/PGame.lean 2024-03-14 11:12:46 7f38ed7 feat: the `n`th symmetric power is equivalent to maps of total mass `n`. (#11360) ESTIMATED CHANGES Modified Mathlib/Algebra/BigOperators/Basic.lean + theorem Multiset.sum_count_eq Modified Mathlib/Data/Finsupp/Multiset.lean + theorem Multiset.toFinsupp_sum_eq + theorem Sym.coe_equivNatSumOfFintype_apply_apply + theorem Sym.coe_equivNatSumOfFintype_symm_apply + theorem Sym.coe_equivNatSum_apply_apply + theorem Sym.coe_equivNatSum_symm_apply + def Sym.equivNatSum 2024-03-14 10:04:41 af0f54a chore: replace `λ` by `fun` (#11301) Per the style guidelines, `λ` is disallowed in mathlib. This is close to exhaustive; I left some tactic code alone when it seemed to me that tactic could be upstreamed soon. Notes - In lines I was modifying anyway, I also converted `=>` to `↦`. - Also contains some mild in-passing indentation fixes in `Mathlib/Order/SupClosed`. - Some doc comments still contained Lean 3 syntax `λ x, `, which I also replaced. Counterexamples` typo. Just a simple `Countexamples --> Counterexamples` typo. Just a simple `Countexamples --> Counterexamples` typo. Just a simple `Countexamples --> Counterexamples` typo. ESTIMATED CHANGES Modified .github/workflows/bors.yml Modified .github/workflows/build.yml Modified .github/workflows/build.yml.in Modified .github/workflows/build_fork.yml 2024-02-21 19:28:53 b5161cd chore(LinearMap/Pointwise): golf (#10775) ESTIMATED CHANGES Modified Mathlib/Algebra/Module/LinearMap/Pointwise.lean 2024-02-21 19:28:52 ffbaf17 fix: refactor of `fun_prop` and several bug fixes (#10724) fix: refactor of `fun_prop` and several bug fixes 1. support for proving recursive functions `fun_prop` correctly uses local hypothesis coming from induction step 2. unfolds let variables when necessary 3. unfolds `id`, `Function.comp`, `Function.uncurry`, `HasUncurry.uncurry` Many theorems in mathlib are stated using `id`, `Function.comp` etc. to prevent restating all these theorems `fun_prop` just unfolds these common functions. 4. does not get blocked by `autoParam` or `outParam` 5. support for custom bundled morphism coercions. `DFunLike.coe` is not hardcoded anymore and any morphism coercion can be registered with `@[fun_prop_coe]` attribute 6. internal counter to prevent infinite loops ESTIMATED CHANGES Modified Mathlib/Tactic/FunProp/AEMeasurable.lean Modified Mathlib/Tactic/FunProp/Attr.lean Modified Mathlib/Tactic/FunProp/Core.lean - def Mathlib.Meta.FunProp.FunctionData.unfold? +/- def Mathlib.Meta.FunProp.applyTransitionRules +/- def Mathlib.Meta.FunProp.bvarAppCase + def Mathlib.Meta.FunProp.getDeclTheorems + def Mathlib.Meta.FunProp.getLocalTheorems - def Mathlib.Meta.FunProp.isFVarFunProp - def Mathlib.Meta.FunProp.proveFVarFunPropFromLocalTheorems +/- def Mathlib.Meta.FunProp.removeArgRule - def Mathlib.Meta.FunProp.tryLocalTheorem? - def Mathlib.Meta.FunProp.tryLocalTheorems +/- def Mathlib.Meta.FunProp.tryTheorem? + def Mathlib.Meta.FunProp.tryTheoremWithHint? + def Mathlib.Meta.FunProp.tryTheorems - def Mathlib.Meta.FunProp.unfoldFunHeadRec? Modified Mathlib/Tactic/FunProp/Decl.lean - def Mathlib.Meta.FunProp.FunPropDecl.discharger +/- def Mathlib.Meta.FunProp.addFunPropDecl Modified Mathlib/Tactic/FunProp/Elab.lean Modified Mathlib/Tactic/FunProp/FunctionData.lean + def Mathlib.Meta.FunProp.FunctionData.decompositionOverArgs - def Mathlib.Meta.FunProp.FunctionData.getCoeAppNumArgs? + def Mathlib.Meta.FunProp.FunctionData.isIdentityFun + def Mathlib.Meta.FunProp.FunctionData.isMorApplication + def Mathlib.Meta.FunProp.FunctionData.peeloffArgDecomposition + def Mathlib.Meta.FunProp.FunctionData.unfoldHeadFVar? + def Mathlib.Meta.FunProp.MaybeFunctionData.get + inductive Mathlib.Meta.FunProp.MaybeFunctionData + inductive Mathlib.Meta.FunProp.MorApplication - def Mathlib.Meta.FunProp.funPropNormalizeFun + def Mathlib.Meta.FunProp.getFunctionData? Modified Mathlib/Tactic/FunProp/Mor.lean + structure Mathlib.Meta.FunProp.Mor.App - def Mathlib.Meta.FunProp.Mor.constArity +/- def Mathlib.Meta.FunProp.Mor.getAppArgs +/- def Mathlib.Meta.FunProp.Mor.getAppFn - def Mathlib.Meta.FunProp.Mor.getArity - def Mathlib.Meta.FunProp.Mor.headBeta + def Mathlib.Meta.FunProp.Mor.isCoeFun + def Mathlib.Meta.FunProp.Mor.isCoeFunName + def Mathlib.Meta.FunProp.Mor.isMorApp? + def Mathlib.Meta.FunProp.Mor.whnf - def Mathlib.Meta.FunProp.Mor.withApp - def Mathlib.Meta.FunProp.splitMorToComp - def Mathlib.Meta.FunProp.splitMorToCompOverArgs Modified Mathlib/Tactic/FunProp/RefinedDiscrTree.lean + def Mathlib.Meta.FunProp.RefinedDiscrTree.DTExpr.isSpecific + def Mathlib.Meta.FunProp.RefinedDiscrTree.MkDTExpr.cacheEtaPossibilities + def Mathlib.Meta.FunProp.RefinedDiscrTree.MkDTExpr.etaExpand + def Mathlib.Meta.FunProp.RefinedDiscrTree.MkDTExpr.etaPossibilities + def Mathlib.Meta.FunProp.RefinedDiscrTree.MkDTExpr.getIgnores + def Mathlib.Meta.FunProp.RefinedDiscrTree.MkDTExpr.reduceHBinOp + def Mathlib.Meta.FunProp.RefinedDiscrTree.MkDTExpr.reduceHBinOpAux + def Mathlib.Meta.FunProp.RefinedDiscrTree.MkDTExpr.reduceUnOp + def Mathlib.Meta.FunProp.RefinedDiscrTree.MkDTExpr.reduceUnOpAux + def Mathlib.Meta.FunProp.RefinedDiscrTree.getMatchWithScore +/- def Mathlib.Meta.FunProp.RefinedDiscrTree.insert + def Mathlib.Meta.FunProp.RefinedDiscrTree.insertEqn +/- def Mathlib.Meta.FunProp.RefinedDiscrTree.mkDTExpr +/- def Mathlib.Meta.FunProp.RefinedDiscrTree.mkDTExprs - def Mathlib.Meta.FunProp.RefinedDiscrTree.mkPath - def Mathlib.Meta.FunProp.RefinedDiscrTree.starEtaExpanded Modified Mathlib/Tactic/FunProp/StateList.lean + inductive Mathlib.Meta.FunProp.StateList + def Mathlib.Meta.FunProp.StateListM + def Mathlib.Meta.FunProp.StateListT.run' + def Mathlib.Meta.FunProp.StateListT.run + def Mathlib.Meta.FunProp.StateListT - inductive StateList - def StateListM - def StateListT.run' - def StateListT.run - def StateListT Modified Mathlib/Tactic/FunProp/Theorems.lean Modified Mathlib/Tactic/FunProp/Types.lean +/- def Mathlib.Meta.FunProp.Config.addThm + def Mathlib.Meta.FunProp.Config.increaseDepth + def Mathlib.Meta.FunProp.FunctionData.getFnOrigin + def Mathlib.Meta.FunProp.Origin.getValue + def Mathlib.Meta.FunProp.Origin.name + inductive Mathlib.Meta.FunProp.Origin + def Mathlib.Meta.FunProp.defaultNamesToUnfold + def Mathlib.Meta.FunProp.defaultUnfoldPred - def Mathlib.Meta.FunProp.getLastUsedTheoremName + def Mathlib.Meta.FunProp.increaseSteps + def Mathlib.Meta.FunProp.logError + def Mathlib.Meta.FunProp.ppOrigin' + def Mathlib.Meta.FunProp.ppOrigin + def Mathlib.Meta.FunProp.previouslyUsedThm + def Mathlib.Meta.FunProp.unfoldNamePred + def Mathlib.Meta.FunProp.withTheorem Modified scripts/noshake.json Modified test/fun_prop_dev.lean +/- theorem Con_id + theorem Con_let + def LinHom.mk' +/- theorem Lin_comp +/- theorem add_Con + theorem add_Lin' + theorem add_Lin + def bar + theorem bar_lin + theorem conHom_lin_in_fn' + def diag + theorem diag_Con + theorem foo1_lin + theorem foo2_lin + def foo3 + def foo + theorem foo_lin + def iterate + theorem iterate_con + theorem kaboom + theorem linHom_lin_in_fn' + theorem linHom_mk' + def myUncurry 2024-02-21 19:00:53 8eef2a7 feat: add a `SpectrumRestricts` structure (#10735) when `A` is and `S`-algebra and `R` is a subring of `S`, `SpectrumRestricts (a : A) (f : S → R)` means that the `S`-spectrum of `a` is entirely contained within the image of the `R`-spectrum of `a` under `algebraMap R S`. We include `f` because we want to explicitly specify the function that takes us back into `R` from `S`. ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/Spectrum.lean + theorem SpectrumRestricts.algebraMap_image + theorem SpectrumRestricts.apply_mem + theorem SpectrumRestricts.image + theorem SpectrumRestricts.of_spectrum_eq + theorem SpectrumRestricts.of_subset_range_algebraMap + theorem SpectrumRestricts.subset_preimage + structure SpectrumRestricts 2024-02-21 17:49:50 00df8d1 feat(UniformSpace): add `Unique` instance (#10774) There is only one `UniformSpace` structure on a `Subsingleton`. ESTIMATED CHANGES Modified Mathlib/Data/Set/Prod.lean + theorem Set.diagonal_eq_univ + theorem Set.diagonal_eq_univ_iff Modified Mathlib/Topology/UniformSpace/Basic.lean 2024-02-21 16:46:17 65d9c6c feat: add `tendsto_atBot_atTop_of_antitone` (#10794) ESTIMATED CHANGES Modified Mathlib/Order/Filter/AtTopBot.lean + theorem Filter.tendsto_atBot_atTop_iff_of_antitone + theorem Filter.tendsto_atBot_atTop_of_antitone + theorem Filter.tendsto_atTop_atBot_iff_of_antitone + theorem Filter.tendsto_atTop_atBot_of_antitone 2024-02-21 16:46:16 10e929a chore: classify `added lemma` porting notes (#10791) Classifies by adding number (#10756) to porting notes claiming `added lemma`. ESTIMATED CHANGES Modified Mathlib/Algebra/Category/GroupCat/Basic.lean Modified Mathlib/Algebra/Category/GroupWithZeroCat.lean Modified Mathlib/Algebra/Category/ModuleCat/Basic.lean Modified Mathlib/Algebra/Category/MonCat/Basic.lean Modified Mathlib/Algebra/Category/Ring/Basic.lean 2024-02-21 16:46:15 ba55c68 chore: classify `previously simp` porting notes (#10789) Classifies by adding issue number (#10745) to porting note claiming anything semantically equivalent to `was simp`. Related merged PR: #10746. ESTIMATED CHANGES Modified Mathlib/Algebra/Category/ModuleCat/ChangeOfRings.lean 2024-02-21 16:46:14 7a17e9d chore: add some `fun_prop` attributes for continuity (#10769) ESTIMATED CHANGES Modified Mathlib/Topology/Algebra/Monoid.lean Modified Mathlib/Topology/Algebra/Polynomial.lean Modified Mathlib/Topology/ContinuousOn.lean + theorem Continuous.comp_continuousOn' 2024-02-21 16:46:13 f17e232 refactor(MeasureTheory): redefine `≤` on measures (#10714) Redefine `≤` on `MeasureTheory.Measure` so that `μ ≤ ν ↔ ∀ s, μ s ≤ ν s` by definition instead of `∀ s, MeasurableSet s → μ s ≤ ν s`. ### Reasons - this way it is defeq to `≤` on outer measures; - if we decide to introduce an order on all `DFunLike` types **and** migrate measures to `FunLike`, then this is unavoidable; - the reasoning for the old definition was "it's slightly easier to prove `μ ≤ ν` this way"; the counter-argument is "it's slightly harder to apply `μ ≤ ν` this way". ### Other changes - golf some proofs broken by this change; - add `@[gcongr]` tags to some `ENNReal` lemmas; - fix the name `ENNReal.coe_lt_coe_of_le` -> `ENNReal.ENNReal.coe_lt_coe_of_lt`; - drop an unneeded `MeasurableSet` assumption in `set_lintegral_pdf_le_map` ESTIMATED CHANGES Modified Mathlib/Data/ENNReal/Basic.lean Modified Mathlib/Data/ENNReal/Real.lean Modified Mathlib/MeasureTheory/Decomposition/Lebesgue.lean Modified Mathlib/MeasureTheory/Decomposition/RadonNikodym.lean Modified Mathlib/MeasureTheory/Function/SimpleFunc.lean Modified Mathlib/MeasureTheory/Integral/IntegrableOn.lean Modified Mathlib/MeasureTheory/Integral/Layercake.lean Modified Mathlib/MeasureTheory/Integral/SetToL1.lean Modified Mathlib/MeasureTheory/Measure/AEMeasurable.lean Modified Mathlib/MeasureTheory/Measure/Hausdorff.lean Modified Mathlib/MeasureTheory/Measure/MeasureSpace.lean +/- theorem MeasureTheory.Measure.le_iff' +/- theorem MeasureTheory.Measure.le_iff + theorem MeasureTheory.Measure.le_intro +/- theorem MeasureTheory.Measure.le_sum +/- theorem MeasureTheory.Measure.map_mono +/- theorem MeasureTheory.Measure.toOuterMeasure_le Modified Mathlib/MeasureTheory/Measure/Restrict.lean +/- theorem MeasureTheory.Measure.restrict_le_self +/- theorem MeasureTheory.Measure.restrict_union_le Modified Mathlib/MeasureTheory/Measure/Sub.lean Modified Mathlib/MeasureTheory/Measure/Typeclasses.lean Modified Mathlib/MeasureTheory/Measure/WithDensity.lean Modified Mathlib/Probability/Density.lean Modified Mathlib/Probability/Kernel/CondCdf.lean 2024-02-21 16:46:12 b06068c chore: classify `added to ease automation` porting notes (#10689) - [x] Classifies by adding issue number (#10688) to porting notes claiming anything semantically equivalent to `added to ease automation`. - [x] Enforce singular convention converting "porting notes" to "porting note". ESTIMATED CHANGES Modified Mathlib/Algebra/PUnitInstances.lean Modified Mathlib/AlgebraicGeometry/Scheme.lean Modified Mathlib/AlgebraicTopology/SimplicialObject.lean Modified Mathlib/Analysis/Normed/Group/SemiNormedGroupCat.lean Modified Mathlib/CategoryTheory/Comma/Arrow.lean Modified Mathlib/CategoryTheory/FintypeCat.lean Modified Mathlib/CategoryTheory/GradedObject.lean Modified Mathlib/CategoryTheory/Idempotents/KaroubiKaroubi.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Products.lean Modified Mathlib/CategoryTheory/Monad/Basic.lean Modified Mathlib/CategoryTheory/Monoidal/CommMon_.lean Modified Mathlib/CategoryTheory/Preadditive/Mat.lean Modified Mathlib/CategoryTheory/Sites/EqualizerSheafCondition.lean Modified Mathlib/Data/List/Defs.lean Modified Mathlib/RepresentationTheory/Action/Limits.lean Modified Mathlib/SetTheory/Lists.lean 2024-02-21 15:14:15 5722a17 feat: show that every polynomial functor is a (trivial) QPF (#10807) Every polynomial functor `P` is trivially also a quotient of a polynomial functor, namely, it's a quotient of itself through equality. That is, `abs` and `repr` are just the identity. ESTIMATED CHANGES Modified Mathlib/Data/QPF/Multivariate/Basic.lean 2024-02-21 15:14:14 c0d05db feat: transport an `MvQPF` instance along an equivalence (#10806) This is code ported from [alexkeizer/QpfTypes](https://github.com/alexkeizer/QpfTypes). It's primary use is to show that existing type functions which are equivalent to polynomial functors but not defined as such (e.g., `Sum`, `Prod`, etc.) are QPFs. ESTIMATED CHANGES Modified Mathlib/Control/Functor/Multivariate.lean + def MvFunctor.ofEquiv Modified Mathlib/Data/QPF/Multivariate/Basic.lean + def MvQPF.ofEquiv 2024-02-21 15:14:13 dd9c1eb feat: provide an instance of `Fintype (Fin2 n)` (#10805) This enables use of the `fin_cases` tactic on premises `i : Fin2 _` ESTIMATED CHANGES Modified Mathlib/Data/Fin/Fin2.lean 2024-02-21 15:14:12 bafc1ac feat: add `MeasurableEmbedding.comap_add` (#10795) Also add a simp attribute to `AbsolutelyContinuous.zero`. ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Measure/MeasureSpace.lean + theorem MeasurableEmbedding.comap_add 2024-02-21 15:14:11 807b7b4 feat: add `tendsto_nat_ceil_atTop` (#10786) ESTIMATED CHANGES Modified Mathlib/Analysis/SpecificLimits/Basic.lean + theorem tendsto_nat_ceil_atTop 2024-02-21 15:14:10 359d4b9 feat(UniformSpace): add `UniformSpace.isClosed_ball` (#10782) ESTIMATED CHANGES Modified Mathlib/Topology/UniformSpace/Basic.lean + theorem UniformSpace.isClosed_ball 2024-02-21 14:19:40 24c9aaa feat: add `kernel.(co)map_id` (#10801) ESTIMATED CHANGES Modified Mathlib/Probability/Kernel/Basic.lean + theorem ProbabilityTheory.kernel.comapRight_id Modified Mathlib/Probability/Kernel/Composition.lean + theorem ProbabilityTheory.kernel.comap_id' + theorem ProbabilityTheory.kernel.comap_id + theorem ProbabilityTheory.kernel.map_id' + theorem ProbabilityTheory.kernel.map_id 2024-02-21 14:19:39 7d7cd8c chore: add `@[simp]` to `limsup_const` and `liminf_const` (#10798) ESTIMATED CHANGES Modified Mathlib/Order/LiminfLimsup.lean 2024-02-21 14:19:38 79d097f feat: MeasurableSpace.generateFrom lemmas (#10797) ESTIMATED CHANGES Modified Mathlib/MeasureTheory/MeasurableSpace/Defs.lean + theorem MeasurableSpace.generateFrom_empty + theorem MeasurableSpace.iSup_generateFrom 2024-02-21 14:19:37 e6bc0f5 feat: add `snorm_restrict_le` (#10788) ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Function/LpSeminorm/Basic.lean + theorem MeasureTheory.snorm_restrict_le 2024-02-21 14:19:37 c63ddc2 feat: unitary elements are normal (#10778) ESTIMATED CHANGES Modified Mathlib/Algebra/Star/SelfAdjoint.lean Modified Mathlib/Algebra/Star/Unitary.lean + theorem isStarNormal_of_mem_unitary + theorem unitary.toUnits_injective - theorem unitary.to_units_injective 2024-02-21 13:31:21 88a36ee feat: instances `CovariantAddLE` and `OrderBot` for kernel (#10802) ESTIMATED CHANGES Modified Mathlib/Probability/Kernel/Basic.lean 2024-02-21 03:47:55 8b2dfa4 feat: `StarAlgEquiv`'s on C⋆-algebras are isometric (#10504) ESTIMATED CHANGES Modified Mathlib/Analysis/NormedSpace/Star/Spectrum.lean + theorem StarAlgEquiv.isometry + theorem StarAlgEquiv.nnnorm_map + theorem StarAlgEquiv.norm_map 2024-02-20 23:51:59 25c79ab chore(workflows): correct commenting attempt in yml (#10771) GPT got confused about how to declare a comment in `yaml`. ESTIMATED CHANGES Modified .github/workflows/nightly_detect_failure.yml 2024-02-20 23:51:58 91c0406 chore: Remove `Init.CCLemmas` (#10696) Those lemmas were weird and unused, except the last few about transitivity of `=` and `≠`, which I moved to `Logic.Basic` ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/ContinuedFractions/Computation/Translations.lean Modified Mathlib/Algebra/Group/Pi/Lemmas.lean Modified Mathlib/Algebra/Ring/Equiv.lean Modified Mathlib/Data/Finset/Card.lean Modified Mathlib/Data/List/BigOperators/Lemmas.lean Deleted Mathlib/Init/CCLemmas.lean - theorem and_eq_of_eq - theorem and_eq_of_eq_false_left - theorem and_eq_of_eq_false_right - theorem and_eq_of_eq_true_left - theorem and_eq_of_eq_true_right - theorem eq_false_of_not_eq_true - theorem eq_false_of_or_eq_false_left - theorem eq_false_of_or_eq_false_right - theorem eq_true_of_and_eq_true_left - theorem eq_true_of_and_eq_true_right - theorem eq_true_of_not_eq_false - theorem false_of_a_eq_not_a - theorem if_eq_of_eq - theorem if_eq_of_eq_false - theorem if_eq_of_eq_true - theorem iff_eq_of_eq_true_left - theorem iff_eq_of_eq_true_right - theorem iff_eq_true_of_eq - theorem imp_eq_of_eq_false_left - theorem imp_eq_of_eq_false_right - theorem imp_eq_of_eq_true_left - theorem imp_eq_of_eq_true_right - theorem imp_eq_true_of_eq - theorem ne_of_eq_of_ne - theorem ne_of_ne_of_eq - theorem not_eq_of_eq_false - theorem not_eq_of_eq_true - theorem not_imp_eq_of_eq_false_right - theorem or_eq_of_eq - theorem or_eq_of_eq_false_left - theorem or_eq_of_eq_false_right - theorem or_eq_of_eq_true_left - theorem or_eq_of_eq_true_right Modified Mathlib/Logic/Basic.lean + theorem ne_of_eq_of_ne + theorem ne_of_ne_of_eq 2024-02-20 23:51:58 719d6e1 chore: classify `dsimp can prove this` porting notes (#10686) Classifies by adding issue number (#10685) to porting notes claiming `dsimp can prove this`. ESTIMATED CHANGES Modified Mathlib/Computability/TuringMachine.lean Modified Mathlib/Data/Analysis/Topology.lean Modified Mathlib/Data/Multiset/Fintype.lean Modified Mathlib/Data/Nat/Digits.lean Modified Mathlib/GroupTheory/Subgroup/Basic.lean Modified Mathlib/MeasureTheory/Function/LpSpace.lean Modified Mathlib/Order/JordanHolder.lean 2024-02-20 23:51:57 89fd8bf feat: add lemma `LinearMap.trace_restrict_eq_sum_trace_restrict` (#10638) ESTIMATED CHANGES Modified Mathlib/Algebra/DirectSum/Basic.lean Modified Mathlib/Algebra/DirectSum/LinearMap.lean + theorem LinearMap.mapsTo_biSup_of_mapsTo + theorem LinearMap.trace_eq_sum_trace_restrict_of_eq_biSup Modified Mathlib/Algebra/DirectSum/Module.lean + theorem DirectSum.isInternal_biSup_submodule_of_independent Modified Mathlib/LinearAlgebra/Basic.lean +/- theorem LinearMap.ker_rangeRestrict +/- theorem LinearMap.range_rangeRestrict + theorem LinearMap.surjective_rangeRestrict Modified Mathlib/LinearAlgebra/Span.lean + theorem Submodule.biSup_comap_eq_top_of_range_eq_biSup + theorem Submodule.biSup_comap_eq_top_of_surjective + theorem Submodule.biSup_comap_subtype_eq_top Modified Mathlib/Order/SupIndep.lean + theorem CompleteLattice.independent_of_independent_coe_Iic_comp 2024-02-20 23:51:55 3811e3e refactor: Split off the Pontryagin dual into separate file (#10620) This PR splits off the Pontryagin dual to a separate file to avoid unnecessary imports in `ContinuousMonoidHom.lean`. For instance, local compactness of the Pontryagin dual will require some heavy imports such as Arzela-Ascoli and the fact that the exponential map is a covering map. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Topology/Algebra/ContinuousMonoidHom.lean - theorem PontryaginDual.map_apply - theorem PontryaginDual.map_comp - theorem PontryaginDual.map_one - def PontryaginDual Added Mathlib/Topology/Algebra/PontryaginDual.lean + theorem PontryaginDual.map_apply + theorem PontryaginDual.map_comp + theorem PontryaginDual.map_one + def PontryaginDual 2024-02-20 22:17:20 63e4e10 chore: classify `avoid simpNF linter error` porting notes (#10760) Classifies by adding issue number (#10759) to porting notes claiming: > removed `@[simp]` to avoid a `simpNF` linter error. ESTIMATED CHANGES Modified Mathlib/AlgebraicGeometry/EllipticCurve/Affine.lean Modified Mathlib/AlgebraicGeometry/EllipticCurve/Group.lean Modified Mathlib/AlgebraicGeometry/EllipticCurve/Weierstrass.lean 2024-02-20 22:17:19 58db12e chore: classify `was rw` porting notes (#10692) Classifies by adding issue number (#10691) to porting notes claiming `was rw`. ESTIMATED CHANGES Modified Mathlib/Algebra/MonoidAlgebra/Basic.lean Modified Mathlib/Algebra/Order/ToIntervalMod.lean Modified Mathlib/AlgebraicGeometry/OpenImmersion.lean Modified Mathlib/Data/Polynomial/Laurent.lean Modified Mathlib/LinearAlgebra/Alternating/DomCoprod.lean Modified Mathlib/LinearAlgebra/CliffordAlgebra/EvenEquiv.lean Modified Mathlib/Probability/Kernel/MeasurableIntegral.lean Modified Mathlib/RingTheory/Localization/Ideal.lean 2024-02-20 22:17:18 90d86d7 chore: classify `dsimp cannot prove this` porting notes (#10676) Classifies by adding issue number (#10675) to porting notes claiming `dsimp cannot prove this`. ESTIMATED CHANGES Modified Mathlib/Algebra/Free.lean Modified Mathlib/Algebra/Star/Free.lean Modified Mathlib/CategoryTheory/Conj.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Multiequalizer.lean Modified Mathlib/Data/Multiset/Basic.lean Modified Mathlib/Data/Multiset/FinsetOps.lean Modified Mathlib/Data/Sum/Interval.lean Modified Mathlib/Data/Vector3.lean Modified Mathlib/GroupTheory/FreeAbelianGroup.lean Modified Mathlib/GroupTheory/MonoidLocalization.lean Modified Mathlib/GroupTheory/Subgroup/Basic.lean Modified Mathlib/RingTheory/Subring/Basic.lean Modified Mathlib/SetTheory/Ordinal/Basic.lean 2024-02-20 22:17:17 d9e8ed1 feat(CategoryTheory): filtered if every finite diagram admits a cocone (#10664) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Filtered/Basic.lean + theorem CategoryTheory.IsCofiltered.iff_cone_nonempty + theorem CategoryTheory.IsCofiltered.of_cone_nonempty + theorem CategoryTheory.IsFiltered.iff_cocone_nonempty + theorem CategoryTheory.IsFiltered.of_cocone_nonempty 2024-02-20 22:17:16 de765f6 chore: classify `simp can do this` porting notes (#10619) Classify by adding issue number (#10618) to porting notes claiming anything semantically equivalent to `simp can prove this` or `simp can simplify this`. ESTIMATED CHANGES Modified Mathlib/Algebra/AddTorsor.lean Modified Mathlib/Algebra/Algebra/Equiv.lean Modified Mathlib/Algebra/Algebra/Hom.lean Modified Mathlib/Algebra/Algebra/NonUnitalHom.lean Modified Mathlib/Algebra/Algebra/Operations.lean Modified Mathlib/Algebra/Algebra/Subalgebra/Basic.lean Modified Mathlib/Algebra/BigOperators/Finsupp.lean Modified Mathlib/Algebra/CharP/Basic.lean Modified Mathlib/Algebra/CubicDiscriminant.lean Modified Mathlib/Algebra/DirectSum/Ring.lean Modified Mathlib/Algebra/GCDMonoid/Basic.lean Modified Mathlib/Algebra/GeomSum.lean Modified Mathlib/Algebra/Group/Equiv/Basic.lean Modified Mathlib/Algebra/Homology/HomologicalComplex.lean Modified Mathlib/Algebra/Homology/Homology.lean Modified Mathlib/Algebra/Lie/Submodule.lean Modified Mathlib/Algebra/Module/Basic.lean Modified Mathlib/Algebra/Module/LocalizedModule.lean Modified Mathlib/Algebra/Module/Torsion.lean Modified Mathlib/Algebra/MonoidAlgebra/Basic.lean Modified Mathlib/Algebra/MonoidAlgebra/Division.lean Modified Mathlib/Algebra/Order/CauSeq/Completion.lean Modified Mathlib/Algebra/Order/CompleteField.lean Modified Mathlib/Algebra/Order/Floor.lean Modified Mathlib/Algebra/Order/Group/Defs.lean Modified Mathlib/Algebra/Order/Monoid/Canonical/Defs.lean Modified Mathlib/Algebra/Order/Monoid/WithZero/Defs.lean Modified Mathlib/Algebra/PUnitInstances.lean Modified Mathlib/Algebra/Parity.lean Modified Mathlib/Algebra/Quaternion.lean Modified Mathlib/Algebra/Ring/BooleanRing.lean Modified Mathlib/Algebra/Ring/CompTypeclasses.lean Modified Mathlib/Algebra/Ring/Equiv.lean Modified Mathlib/Algebra/Ring/Hom/Defs.lean Modified Mathlib/Algebra/Squarefree/Basic.lean Modified Mathlib/Algebra/Star/Subalgebra.lean Modified Mathlib/Algebra/Symmetrized.lean Modified Mathlib/Analysis/Convex/Join.lean Modified Mathlib/Analysis/Fourier/AddCircle.lean Modified Mathlib/Analysis/Normed/Field/Basic.lean Modified Mathlib/Analysis/Normed/Group/Basic.lean Modified Mathlib/Analysis/NormedSpace/AffineIsometry.lean Modified Mathlib/Analysis/NormedSpace/LinearIsometry.lean Modified Mathlib/Analysis/NormedSpace/lpSpace.lean Modified Mathlib/Analysis/SpecialFunctions/Integrals.lean Modified Mathlib/CategoryTheory/Abelian/Images.lean Modified Mathlib/CategoryTheory/Adjunction/Opposites.lean Modified Mathlib/CategoryTheory/Comma/Arrow.lean Modified Mathlib/CategoryTheory/Comma/Over.lean Modified Mathlib/CategoryTheory/Comma/StructuredArrow.lean Modified Mathlib/CategoryTheory/Conj.lean Modified Mathlib/CategoryTheory/Limits/Cones.lean Modified Mathlib/CategoryTheory/Limits/Fubini.lean Modified Mathlib/CategoryTheory/Limits/IsLimit.lean Modified Mathlib/CategoryTheory/Limits/Shapes/BinaryProducts.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Biproducts.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Equalizers.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Kernels.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Multiequalizer.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Pullbacks.lean Modified Mathlib/CategoryTheory/Limits/Shapes/WidePullbacks.lean Modified Mathlib/CategoryTheory/Preadditive/InjectiveResolution.lean Modified Mathlib/CategoryTheory/Preadditive/ProjectiveResolution.lean Modified Mathlib/Combinatorics/Additive/Behrend.lean Modified Mathlib/Combinatorics/SimpleGraph/AdjMatrix.lean Modified Mathlib/Combinatorics/SimpleGraph/Prod.lean Modified Mathlib/Combinatorics/Young/YoungDiagram.lean Modified Mathlib/Control/ULiftable.lean Modified Mathlib/Data/Complex/Cardinality.lean Modified Mathlib/Data/DFinsupp/Basic.lean Modified Mathlib/Data/Fin/Basic.lean Modified Mathlib/Data/Fin/Interval.lean Modified Mathlib/Data/Fin/VecNotation.lean Modified Mathlib/Data/Finmap.lean Modified Mathlib/Data/Finset/LocallyFinite/Basic.lean Modified Mathlib/Data/Finset/Pointwise.lean Modified Mathlib/Data/Finsupp/Defs.lean Modified Mathlib/Data/Fintype/Card.lean Modified Mathlib/Data/Int/Cast/Lemmas.lean Modified Mathlib/Data/Int/Lemmas.lean Modified Mathlib/Data/Int/Parity.lean Modified Mathlib/Data/List/Basic.lean Modified Mathlib/Data/List/Cycle.lean Modified Mathlib/Data/List/Intervals.lean Modified Mathlib/Data/List/Join.lean Modified Mathlib/Data/Matrix/Basic.lean Modified Mathlib/Data/Matrix/Kronecker.lean Modified Mathlib/Data/Matrix/Notation.lean Modified Mathlib/Data/Multiset/Basic.lean Modified Mathlib/Data/Multiset/LocallyFinite.lean Modified Mathlib/Data/MvPolynomial/Basic.lean Modified Mathlib/Data/MvPolynomial/CommRing.lean Modified Mathlib/Data/MvPolynomial/Expand.lean Modified Mathlib/Data/MvPolynomial/PDeriv.lean Modified Mathlib/Data/NNRat/Defs.lean Modified Mathlib/Data/Nat/Cast/Commute.lean Modified Mathlib/Data/Nat/Digits.lean Modified Mathlib/Data/Nat/Interval.lean Modified Mathlib/Data/Num/Lemmas.lean Modified Mathlib/Data/Polynomial/Basic.lean Modified Mathlib/Data/Polynomial/Coeff.lean Modified Mathlib/Data/Polynomial/Degree/Definitions.lean Modified Mathlib/Data/Polynomial/Laurent.lean Modified Mathlib/Data/Polynomial/Reverse.lean Modified Mathlib/Data/Set/Intervals/Basic.lean Modified Mathlib/Data/Set/Intervals/UnorderedInterval.lean Modified Mathlib/Data/Set/Pointwise/Basic.lean Modified Mathlib/Data/Set/Pointwise/Interval.lean Modified Mathlib/Data/Sign.lean Modified Mathlib/Data/Sym/Basic.lean Modified Mathlib/Data/Vector.lean Modified Mathlib/Data/Vector/Basic.lean Modified Mathlib/Data/ZMod/Basic.lean Modified Mathlib/FieldTheory/IntermediateField.lean Modified Mathlib/FieldTheory/Subfield.lean Modified Mathlib/Geometry/Euclidean/Angle/Oriented/Basic.lean Modified Mathlib/Geometry/Euclidean/Basic.lean Modified Mathlib/GroupTheory/Coset.lean Modified Mathlib/GroupTheory/FreeAbelianGroup.lean Modified Mathlib/GroupTheory/FreeGroup/Basic.lean Modified Mathlib/GroupTheory/MonoidLocalization.lean Modified Mathlib/GroupTheory/OrderOfElement.lean Modified Mathlib/GroupTheory/Perm/Support.lean Modified Mathlib/GroupTheory/Subgroup/Basic.lean Modified Mathlib/GroupTheory/Submonoid/Basic.lean Modified Mathlib/InformationTheory/Hamming.lean Modified Mathlib/Init/Data/List/Instances.lean Modified Mathlib/LinearAlgebra/Alternating/Basic.lean Modified Mathlib/LinearAlgebra/Basic.lean Modified Mathlib/LinearAlgebra/Dimension/Constructions.lean Modified Mathlib/LinearAlgebra/ExteriorAlgebra/Basic.lean Modified Mathlib/LinearAlgebra/Finsupp.lean Modified Mathlib/LinearAlgebra/Isomorphisms.lean Modified Mathlib/LinearAlgebra/Matrix/Charpoly/Univ.lean Modified Mathlib/LinearAlgebra/Matrix/Determinant.lean Modified Mathlib/LinearAlgebra/Matrix/DotProduct.lean Modified Mathlib/LinearAlgebra/Multilinear/Basic.lean Modified Mathlib/LinearAlgebra/Span.lean Modified Mathlib/Logic/Equiv/Defs.lean Modified Mathlib/MeasureTheory/Function/SimpleFunc.lean Modified Mathlib/MeasureTheory/Integral/Lebesgue.lean Modified Mathlib/MeasureTheory/Measure/AEMeasurable.lean Modified Mathlib/MeasureTheory/Measure/Count.lean Modified Mathlib/MeasureTheory/Measure/Lebesgue/Basic.lean Modified Mathlib/MeasureTheory/Measure/MeasureSpace.lean Modified Mathlib/MeasureTheory/Measure/MeasureSpaceDef.lean Modified Mathlib/MeasureTheory/Measure/NullMeasurable.lean Modified Mathlib/MeasureTheory/Measure/Restrict.lean Modified Mathlib/NumberTheory/LegendreSymbol/QuadraticChar/Basic.lean Modified Mathlib/NumberTheory/Padics/PadicNorm.lean Modified Mathlib/NumberTheory/PellMatiyasevic.lean Modified Mathlib/Order/Basic.lean Modified Mathlib/Order/Chain.lean Modified Mathlib/Order/Hom/Basic.lean Modified Mathlib/Order/Ideal.lean Modified Mathlib/Order/Irreducible.lean Modified Mathlib/Order/PartialSups.lean Modified Mathlib/Probability/ProbabilityMassFunction/Monad.lean Modified Mathlib/RingTheory/AlgebraicIndependent.lean Modified Mathlib/RingTheory/DiscreteValuationRing/Basic.lean Modified Mathlib/RingTheory/GradedAlgebra/HomogeneousIdeal.lean Modified Mathlib/RingTheory/Ideal/Norm.lean Modified Mathlib/RingTheory/Ideal/Operations.lean Modified Mathlib/RingTheory/IsAdjoinRoot.lean Modified Mathlib/RingTheory/LaurentSeries.lean Modified Mathlib/RingTheory/Localization/Submodule.lean Modified Mathlib/RingTheory/Multiplicity.lean Modified Mathlib/RingTheory/Polynomial/Hermite/Basic.lean Modified Mathlib/RingTheory/PowerBasis.lean Modified Mathlib/RingTheory/PowerSeries/Basic.lean Modified Mathlib/RingTheory/RingInvo.lean Modified Mathlib/RingTheory/Subring/Basic.lean Modified Mathlib/RingTheory/Subsemiring/Basic.lean Modified Mathlib/RingTheory/Valuation/Basic.lean Modified Mathlib/SetTheory/Cardinal/Basic.lean Modified Mathlib/SetTheory/Cardinal/Finite.lean Modified Mathlib/SetTheory/Cardinal/ToNat.lean Modified Mathlib/SetTheory/Lists.lean Modified Mathlib/SetTheory/Ordinal/Arithmetic.lean Modified Mathlib/SetTheory/Ordinal/Basic.lean Modified Mathlib/SetTheory/Ordinal/Notation.lean Modified Mathlib/Topology/Algebra/Module/Basic.lean Modified Mathlib/Topology/Category/TopCat/Basic.lean Modified Mathlib/Topology/Instances/AddCircle.lean Modified Mathlib/Topology/MetricSpace/HausdorffDistance.lean Modified Mathlib/Topology/UniformSpace/Equiv.lean 2024-02-20 22:17:15 55a538b feat(CategoryTheory/WithTerminal): Add pseudofunctors (#10533) Defined the pseudofunctors from `Cat` to `Cat` induced by `WithTerminal` and `WithInitial`. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/WithTerminal.lean + def CategoryTheory.WithInitial.mapComp + def CategoryTheory.WithInitial.mapId + def CategoryTheory.WithInitial.map₂ + def CategoryTheory.WithInitial.pseudofunctor + def CategoryTheory.WithTerminal.mapComp + def CategoryTheory.WithTerminal.mapId + def CategoryTheory.WithTerminal.map₂ + def CategoryTheory.WithTerminal.pseudofunctor 2024-02-20 20:13:06 a7d3f18 doc(Analysis/NormedSpace/Star/GelfandDuality): update TODO list (#10763) ESTIMATED CHANGES Modified Mathlib/Analysis/NormedSpace/Star/GelfandDuality.lean 2024-02-20 20:13:05 71e045a chore: classify `was simp` porting notes (#10746) Classifies by adding issue number (#10745) to porting notes claiming `was simp`. ESTIMATED CHANGES Modified Mathlib/Algebra/Lie/Engel.lean Modified Mathlib/Algebra/MonoidAlgebra/Basic.lean Modified Mathlib/Analysis/Calculus/Implicit.lean Modified Mathlib/Analysis/Complex/Conformal.lean Modified Mathlib/Analysis/Normed/Group/AddTorsor.lean Modified Mathlib/Analysis/NormedSpace/AddTorsor.lean Modified Mathlib/Analysis/NormedSpace/lpSpace.lean Modified Mathlib/Analysis/PSeries.lean Modified Mathlib/Combinatorics/Quiver/Covering.lean Modified Mathlib/Data/Fin/Tuple/Sort.lean Modified Mathlib/Data/Finsupp/AList.lean Modified Mathlib/Data/IsROrC/Basic.lean Modified Mathlib/Data/Matrix/Basis.lean Modified Mathlib/Data/Nat/Bitwise.lean Modified Mathlib/Data/Polynomial/Basic.lean Modified Mathlib/Data/Polynomial/Coeff.lean Modified Mathlib/Data/Polynomial/Eval.lean Modified Mathlib/Data/Seq/Seq.lean Modified Mathlib/Data/Seq/WSeq.lean Modified Mathlib/Data/Set/Prod.lean Modified Mathlib/Data/Sum/Interval.lean Modified Mathlib/Geometry/Manifold/Instances/Sphere.lean Modified Mathlib/LinearAlgebra/Basic.lean Modified Mathlib/LinearAlgebra/Determinant.lean Modified Mathlib/LinearAlgebra/Isomorphisms.lean Modified Mathlib/MeasureTheory/Constructions/Prod/Integral.lean Modified Mathlib/Order/JordanHolder.lean Modified Mathlib/RingTheory/IsTensorProduct.lean Modified Mathlib/RingTheory/Polynomial/Hermite/Gaussian.lean Modified Mathlib/RingTheory/TensorProduct.lean Modified Mathlib/RingTheory/Trace.lean Modified Mathlib/SetTheory/Cardinal/Basic.lean Modified Mathlib/Topology/Algebra/Module/Basic.lean Modified Mathlib/Topology/Gluing.lean 2024-02-20 17:52:12 0f21e51 chore: change from plural to singular in porting notes (#10761) ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Pi/Basic.lean Modified Mathlib/Algebra/Group/ULift.lean Modified Mathlib/Algebra/PUnitInstances.lean Modified Mathlib/Algebra/Ring/Pi.lean Modified Mathlib/AlgebraicGeometry/GammaSpecAdjunction.lean Modified Mathlib/CategoryTheory/Sums/Associator.lean Modified Mathlib/Combinatorics/Partition.lean Modified Mathlib/Data/ENat/Lattice.lean Modified Mathlib/Data/Finsupp/Fin.lean Modified Mathlib/Data/Finsupp/Order.lean Modified Mathlib/Data/Finsupp/ToDFinsupp.lean Modified Mathlib/Data/Fintype/Perm.lean Modified Mathlib/Data/FunLike/Fintype.lean Modified Mathlib/Data/List/Defs.lean Modified Mathlib/Data/Nat/Pairing.lean Modified Mathlib/Data/Ordmap/Ordnode.lean Modified Mathlib/Data/PNat/Find.lean Modified Mathlib/Data/Quot.lean Modified Mathlib/Data/Semiquot.lean Modified Mathlib/Data/Seq/Computation.lean Modified Mathlib/Data/Vector.lean Modified Mathlib/Data/Vector/Basic.lean Modified Mathlib/GroupTheory/FreeGroup/Basic.lean Modified Mathlib/Init/Algebra/Classes.lean Modified Mathlib/Order/Antisymmetrization.lean Modified Mathlib/Order/InitialSeg.lean Modified Mathlib/SetTheory/Lists.lean Modified Mathlib/Topology/CompactOpen.lean 2024-02-20 17:52:11 a5e4848 chore: classify `added lemma` porting notes (#10757) Classifies by adding issue number (#10756) to porting notes claiming `added lemma`. ESTIMATED CHANGES Modified Mathlib/Algebra/Category/GroupWithZeroCat.lean Modified Mathlib/Algebra/Category/Ring/Basic.lean 2024-02-20 17:52:10 ecce7d9 chore: classify `added dsimp only` porting notes (#10753) Classifies by adding issue number (#10752) to porting notes claiming `added dsimp only`. ESTIMATED CHANGES Modified Mathlib/Order/Interval.lean Modified Mathlib/RingTheory/IsAdjoinRoot.lean Modified Mathlib/Topology/Gluing.lean 2024-02-20 17:52:09 c521802 chore: classify `added to clean up types` porting notes (#10751) Classifies by adding issue number (#10750) to porting notes claiming `added to clean up types`. ESTIMATED CHANGES Modified Mathlib/Computability/TuringMachine.lean 2024-02-20 17:52:08 2e24591 feat(UniformSpace): add `IsCountablyGenerated (𝓤 _)` instances (#10699) This typeclass says that the uniformity is pseudometrizable. ESTIMATED CHANGES Modified Mathlib/Topology/UniformSpace/Basic.lean Modified Mathlib/Topology/UniformSpace/Pi.lean 2024-02-20 17:52:07 8afb410 chore(UniformSpace): golf (#10627) Golf the instance for `UniformSpace (α ⊕ β)` using the `ofNhdsEqComap` constructor. ESTIMATED CHANGES Modified Mathlib/Topology/MetricSpace/Gluing.lean Modified Mathlib/Topology/UniformSpace/Basic.lean +/- theorem Sum.uniformity - def UniformSpace.Core.sum - theorem isOpen_of_uniformity_sum_aux - theorem uniformity_sum_of_isOpen_aux 2024-02-20 17:52:06 b255974 chore: move BddBelow.finite_of_bddAbove to Order.LocallyFinite (#10613) ESTIMATED CHANGES Modified Mathlib/Data/Finset/LocallyFinite/Basic.lean - theorem BddBelow.finite_of_bddAbove Modified Mathlib/Order/LocallyFinite.lean + theorem BddBelow.finite_of_bddAbove 2024-02-20 17:52:04 c08fc63 refactor: do not import old-style `have`/`suffices`/`replace` within mathlib (#10534) This syntax remains available downstream with `import Mathlib.Tactic`, but is no longer available in mathlib itself. This follows on from #10640, which remove all current uses of this syntax. By removing these imports, we prevent further regressions in mathlib, and save reviewers from having to look out for this in review. In future we could delete this syntax entirely, but this would harm downstream code, especially mathport output. ESTIMATED CHANGES Modified Mathlib/Data/Rat/Lemmas.lean Modified Mathlib/Tactic/Common.lean Modified Mathlib/Tactic/Have.lean Modified Mathlib/Tactic/Replace.lean Modified test/slim_check.lean 2024-02-20 17:52:03 bcc8209 feat: `iInter_sigma`, `biInter_sigma`, `biSup_sigma`, `biInf_sigma` (#8964) similar to `prod_sigma`, `prod_sigma'`, `iInf_sigma`, `iInf_sigma'`, `iSup_sigma`, `iSup_sigma'` From PFR ESTIMATED CHANGES Modified Mathlib/Data/Finset/Sigma.lean + theorem Set.biInter_finsetSigma' + theorem Set.biInter_finsetSigma + theorem Set.biUnion_finsetSigma' + theorem Set.biUnion_finsetSigma + theorem biInf_finsetSigma' + theorem biInf_finsetSigma + theorem biSup_finsetSigma' + theorem biSup_finsetSigma Modified Mathlib/Data/Set/Lattice.lean + theorem Set.iInter_sigma' + theorem Set.iInter_sigma + theorem Set.iUnion_sigma' + theorem Set.iUnion_sigma Modified Mathlib/Data/Set/Sigma.lean + theorem Set.biInter_sigma' + theorem Set.biInter_sigma + theorem Set.biUnion_sigma' + theorem Set.biUnion_sigma + theorem biInf_sigma' + theorem biInf_sigma + theorem biSup_sigma' + theorem biSup_sigma 2024-02-20 17:52:02 6f4fbe6 feat(Data/Nat/EvenOddRec): add strong recursion principle on even and odd numbers (#5932) ESTIMATED CHANGES Modified Mathlib/Data/Nat/EvenOddRec.lean 2024-02-20 16:40:35 283cf08 chore: classify `added instance` porting notes (#10755) Classifies by adding issue number (#10754) to porting notes claiming `added instance`. ESTIMATED CHANGES Modified Archive/Arithcc.lean Modified Mathlib/Algebra/Category/Ring/Basic.lean Modified Mathlib/Analysis/Asymptotics/Theta.lean Modified Mathlib/Analysis/Normed/Group/SemiNormedGroupCat.lean Modified Mathlib/Order/Category/Semilat.lean Modified Mathlib/RingTheory/DedekindDomain/AdicValuation.lean Modified Mathlib/RingTheory/Valuation/ValuationSubring.lean Modified Mathlib/SetTheory/Game/PGame.lean 2024-02-20 16:40:34 d2a67d6 chore: classify `added to speed up elaboration` porting notes (#10695) Classifies by adding issue number (#10694) to porting notes claiming `added to speed up elaboration`. ESTIMATED CHANGES Modified Mathlib/AlgebraicTopology/DoldKan/GammaCompN.lean Modified Mathlib/AlgebraicTopology/DoldKan/NCompGamma.lean 2024-02-20 14:35:54 b82dd45 feat(Counterexamples/CliffordAlgebra_not_injective): Some quadratic forms cannot be constructed from bilinear forms (#9670) Turns out that this follows trivially from the previous counterexample. Perhaps there's a slicker proof that doesn't go via Clifford algebras at all, but it seemed worth recording this one anyway. ESTIMATED CHANGES Modified Counterexamples/CliffordAlgebra_not_injective.lean + theorem Q60596.Q_not_in_range_toQuadraticForm + theorem QuadraticForm.not_forall_mem_range_toQuadraticForm.{v} Modified Mathlib/LinearAlgebra/QuadraticForm/Basic.lean + theorem BilinForm.toQuadraticForm_comp_same +/- theorem QuadraticForm.associated_comp 2024-02-20 14:35:53 e887d2d feat(NumberTheory/LegendreSymbol): `@[csimp]` rule for `jacobiSym` and `legendreSym` (#9329) Main definitions: * `def jacobiSym.fastJacobiSym (a : ℤ) (b : ℕ) : ℤ` * `@[csimp] theorem jacobiSym.fastJacobiSym.eq : jacobiSym = jacobiSym.fastJacobiSym` * `def legendreSym.fastLegendreSym (p : ℕ) [Fact p.Prime] (a : ℤ) : ℤ` * `@[csimp] theorem legendreSym.fastLegendreSym.eq : legendreSym = legendreSym.fastLegendreSym` Also added tests ESTIMATED CHANGES Modified Mathlib/NumberTheory/LegendreSymbol/JacobiSymbol.lean + theorem jacobiSym.div_four_left + theorem jacobiSym.even_odd + theorem jacobiSym.quadratic_reciprocity_if Modified Mathlib/Tactic/NormNum/LegendreSymbol.lean Added test/jacobiSym.lean 2024-02-20 12:29:52 85db972 chore: Remove `Init.IteSimp` (#10708) These lemmas can easily go in `Logic.Basic`. Also rename and restate them to better match the convention. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Combinatorics/SimpleGraph/Operations.lean +/- theorem SimpleGraph.replaceVertex_self Modified Mathlib/Init/Data/Ordering/Lemmas.lean +/- theorem cmpUsing_eq_eq +/- theorem cmpUsing_eq_gt Deleted Mathlib/Init/IteSimp.lean - theorem if_false_left_eq_and - theorem if_false_right_eq_and - theorem if_true_left_eq_or - theorem if_true_right_eq_or Modified Mathlib/Logic/Basic.lean + theorem if_false_left + theorem if_false_right + theorem if_true_left + theorem if_true_right Modified Mathlib/Topology/Category/Profinite/Nobeling.lean 2024-02-20 11:30:46 4c3321a feat(CategoryTheory/GradedObject): more about the action of a composition of bifunctors (#10667) The action on graded objects of a trifunctor obtained by composition of two bifunctors can be computed as a composition of the actions of these two bifunctors. In this PR, we consider the case when we apply a bifunctor to the second and third variables and then a bifunctor to the first variable and the result of this. The new code is very similar to #8242. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/GradedObject/Trifunctor.lean + structure CategoryTheory.GradedObject.BifunctorComp₂₃IndexData + theorem CategoryTheory.GradedObject.HasGoodTrifunctor₂₃Obj.hasMap + theorem CategoryTheory.GradedObject.mapBifunctorBifunctor₂₃MapObj_ext + theorem CategoryTheory.GradedObject.mapBifunctor₁₂BifunctorMapObj_ext + theorem CategoryTheory.GradedObject.ι_mapBifunctorComp₁₂MapObjIso_hom + theorem CategoryTheory.GradedObject.ι_mapBifunctorComp₁₂MapObjIso_inv + theorem CategoryTheory.GradedObject.ι_mapBifunctorComp₂₃MapObjIso_hom + theorem CategoryTheory.GradedObject.ι_mapBifunctorComp₂₃MapObjIso_inv 2024-02-20 11:30:45 7dad88a feat: (co)cones as elements of limit of hom functor (#10662) We exhibit the natural isomorphism between cones on `F` with cone point `X` and the set `lim Hom(X, F·)` and similarly the natural isomorphism between cocones on `F` with cocone point `X` and the set `lim Hom(F·, X)`. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Limits/Types.lean 2024-02-20 10:08:45 bb76bc8 chore: adjust style and docstring of `ContinuousMap.compRightAlgHom` (#10740) ESTIMATED CHANGES Modified Mathlib/Topology/ContinuousFunction/Algebra.lean 2024-02-20 10:08:44 c9eb34f perf(Matrix.SpecialLinearGroup): clean up with `dsimp` first (#10738) This reduces the number of instructions by over a third using `dsimp` to clean up an expression before starting a proof. ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/Matrix/SpecialLinearGroup.lean 2024-02-20 10:08:43 c39e9ef feat: filtered categories are connected (#10718) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Filtered/Connected.lean + theorem CategoryTheory.IsCofiltered.isConnected + theorem CategoryTheory.IsCofilteredOrEmpty.isPreconnected + theorem CategoryTheory.IsFiltered.isConnected + theorem CategoryTheory.IsFilteredOrEmpty.isPreconnected 2024-02-20 10:08:42 0a3cc57 doc: Change old Lean 3 commands to Lean 4 in implementation notes (#10707) I changed Lean's 3 old "variables" command to Lean's 4 command "variable" in some implementation notes. I might have missed some ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/Basic.lean Modified Mathlib/Algebra/Invertible/Defs.lean Modified Mathlib/Algebra/Jordan/Basic.lean Modified Mathlib/Algebra/Module/Bimodule.lean Modified Mathlib/Algebra/TrivSqZeroExt.lean Modified Mathlib/Analysis/NormedSpace/Basic.lean Modified Mathlib/MeasureTheory/Function/L1Space.lean Modified Mathlib/Topology/Basic.lean 2024-02-20 10:08:41 db5a937 chore: Remove unnecessary "rw"s (#10704) Remove unnecessary "rw"s. ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/Operations.lean Modified Mathlib/Algebra/BigOperators/Basic.lean Modified Mathlib/Algebra/DirectSum/Algebra.lean Modified Mathlib/Algebra/GCDMonoid/Basic.lean Modified Mathlib/Algebra/Quandle.lean +/- theorem UnitalShelf.act_idem Modified Mathlib/Algebra/Regular/Basic.lean Modified Mathlib/AlgebraicGeometry/OpenImmersion.lean Modified Mathlib/Analysis/BoxIntegral/Partition/Split.lean Modified Mathlib/Analysis/Fourier/RiemannLebesgueLemma.lean Modified Mathlib/Analysis/NormedSpace/ContinuousAffineMap.lean Modified Mathlib/Analysis/SpecialFunctions/Complex/Log.lean Modified Mathlib/CategoryTheory/Localization/Composition.lean Modified Mathlib/Data/Int/Cast/Basic.lean Modified Mathlib/Data/List/Rotate.lean Modified Mathlib/Data/Num/Lemmas.lean Modified Mathlib/Data/PNat/Factors.lean Modified Mathlib/Data/Polynomial/Eval.lean Modified Mathlib/Data/Polynomial/Monic.lean Modified Mathlib/Data/Set/Card.lean Modified Mathlib/Init/Data/Nat/Bitwise.lean Modified Mathlib/LinearAlgebra/AffineSpace/AffineSubspace.lean Modified Mathlib/LinearAlgebra/Basis.lean Modified Mathlib/LinearAlgebra/Dimension/Constructions.lean Modified Mathlib/Logic/Equiv/List.lean Modified Mathlib/Logic/Function/Basic.lean Modified Mathlib/MeasureTheory/Group/AddCircle.lean Modified Mathlib/MeasureTheory/Measure/OuterMeasure.lean Modified Mathlib/MeasureTheory/Measure/VectorMeasure.lean Modified Mathlib/NumberTheory/BernoulliPolynomials.lean Modified Mathlib/NumberTheory/DiophantineApproximation.lean Modified Mathlib/NumberTheory/NumberField/Embeddings.lean Modified Mathlib/NumberTheory/RamificationInertia.lean Modified Mathlib/Order/OmegaCompletePartialOrder.lean Modified Mathlib/Order/SymmDiff.lean Modified Mathlib/RingTheory/DedekindDomain/Ideal.lean Modified Mathlib/RingTheory/IsTensorProduct.lean Modified Mathlib/RingTheory/Norm.lean Modified Mathlib/RingTheory/Polynomial/Cyclotomic/Expand.lean Modified Mathlib/RingTheory/Polynomial/Pochhammer.lean Modified Mathlib/RingTheory/Trace.lean Modified Mathlib/SetTheory/Ordinal/Notation.lean 2024-02-20 10:08:40 c76aa9d move: Algebraic pi instances (#10693) Rename * `Data.Pi.Algebra` to `Algebra.Group.Pi.Basic` * `Algebra.Group.Pi` to `Algebra.Group.Pi.Lemmas` Move a few instances from the latter to the former, the goal being that `Algebra.Group.Pi.Basic` is about all the pi instances of the classes defined in `Algebra.Group.Defs`. `Algebra.Group.Pi.Lemmas` will need further rearranging. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Category/GroupCat/Biproducts.lean Modified Mathlib/Algebra/Category/ModuleCat/Biproducts.lean Modified Mathlib/Algebra/Category/MonCat/Limits.lean Modified Mathlib/Algebra/Divisibility/Prod.lean Modified Mathlib/Algebra/Function/Indicator.lean Modified Mathlib/Algebra/Function/Support.lean Modified Mathlib/Algebra/Group/Hom/Defs.lean Modified Mathlib/Algebra/Group/NatPowAssoc.lean Renamed Mathlib/Data/Pi/Algebra.lean to Mathlib/Algebra/Group/Pi/Basic.lean Renamed Mathlib/Algebra/Group/Pi.lean to Mathlib/Algebra/Group/Pi/Lemmas.lean Modified Mathlib/Algebra/Order/Hom/Monoid.lean Modified Mathlib/Algebra/Order/Ring/Defs.lean Modified Mathlib/Algebra/Ring/Hom/Defs.lean Modified Mathlib/Algebra/Ring/Pi.lean Modified Mathlib/CategoryTheory/Limits/Shapes/ZeroMorphisms.lean Modified Mathlib/Data/Matrix/DMatrix.lean Modified Mathlib/Data/Pi/Lex.lean Modified Mathlib/Data/Set/Intervals/Pi.lean Modified Mathlib/GroupTheory/Divisible.lean Modified Mathlib/GroupTheory/FreeAbelianGroup.lean Modified Mathlib/GroupTheory/GroupAction/DomAct/Basic.lean Modified Mathlib/GroupTheory/GroupAction/Pi.lean Modified Mathlib/GroupTheory/Perm/Basic.lean Modified Mathlib/GroupTheory/Subgroup/Basic.lean Modified Mathlib/Topology/Algebra/GroupWithZero.lean 2024-02-20 08:45:49 2b9e5ce style(Algebra/DirectSum/Ring): add newline (#10737) ESTIMATED CHANGES Modified Mathlib/Algebra/DirectSum/Ring.lean 2024-02-20 08:45:48 c91623e fix(RingTheory/Finiteness): stablizes -> stabilizes (#10736) ESTIMATED CHANGES Modified Mathlib/RingTheory/Filtration.lean Modified Mathlib/RingTheory/Finiteness.lean + theorem Submodule.FG.stabilizes_of_iSup_eq - theorem Submodule.FG.stablizes_of_iSup_eq 2024-02-20 08:45:47 73c0d3b feat: Basic theorems for iteratedFDerivWithin (#10733) Basic theorems for iteratedFDerivWithin ESTIMATED CHANGES Modified Mathlib/Analysis/Calculus/ContDiff/Basic.lean + theorem iteratedFDerivWithin_const_of_ne + theorem iteratedFDerivWithin_succ_const + theorem iteratedFDerivWithin_sum_apply + theorem iteratedFDerivWithin_zero_fun + theorem iteratedFDeriv_sum +/- theorem iteratedFDeriv_zero_fun 2024-02-20 08:45:46 300250f chore(Init/Data/Nat/Lemmas): rename 3 lemmata (#10730) ESTIMATED CHANGES Modified Mathlib/Init/Data/Nat/Lemmas.lean + theorem Nat.toDigitsCore_length + theorem Nat.toDigitsCore_lens_eq + theorem Nat.toDigitsCore_lens_eq_aux - theorem Nat.to_digits_core_length - theorem Nat.to_digits_core_lens_eq - theorem Nat.to_digits_core_lens_eq_aux 2024-02-20 08:45:45 4a99b7e chore: replace Lean 3 syntax `λ x,` in doc comments (#10727) Use Lean 4 syntax `fun x ↦` instead, matching the style guide. This is close to exhaustive for doc comments; mathlib has about 460 remaining uses of λ (not all in Lean 3 syntax). ESTIMATED CHANGES Modified Mathlib/Analysis/BoxIntegral/Basic.lean Modified Mathlib/Analysis/Calculus/ContDiff/Basic.lean Modified Mathlib/Analysis/Calculus/FDeriv/Mul.lean Modified Mathlib/Analysis/Calculus/ParametricIntegral.lean Modified Mathlib/Analysis/Complex/OpenMapping.lean Modified Mathlib/Analysis/Fourier/PoissonSummation.lean Modified Mathlib/Analysis/Fourier/RiemannLebesgueLemma.lean Modified Mathlib/Analysis/InnerProductSpace/Basic.lean Modified Mathlib/Analysis/InnerProductSpace/LinearPMap.lean Modified Mathlib/Analysis/InnerProductSpace/Rayleigh.lean Modified Mathlib/Analysis/NormedSpace/Star/Exponential.lean Modified Mathlib/Analysis/NormedSpace/Star/Multiplier.lean Modified Mathlib/Analysis/SpecialFunctions/ImproperIntegrals.lean Modified Mathlib/CategoryTheory/Adjunction/Reflective.lean Modified Mathlib/CategoryTheory/Limits/Shapes/WideEqualizers.lean Modified Mathlib/Data/Matrix/Basic.lean Modified Mathlib/Data/Ordmap/Ordnode.lean Modified Mathlib/Geometry/Manifold/Diffeomorph.lean Modified Mathlib/Geometry/Manifold/PartitionOfUnity.lean Modified Mathlib/LinearAlgebra/Matrix/GeneralLinearGroup.lean Modified Mathlib/Logic/Embedding/Basic.lean Modified Mathlib/MeasureTheory/Function/L2Space.lean Modified Mathlib/MeasureTheory/Integral/CircleIntegral.lean Modified Mathlib/MeasureTheory/Integral/DivergenceTheorem.lean Modified Mathlib/MeasureTheory/Measure/Lebesgue/Integral.lean Modified Mathlib/ModelTheory/DirectLimit.lean Modified Mathlib/Order/Filter/AtTopBot.lean Modified Mathlib/Probability/Distributions/Poisson.lean Modified Mathlib/RingTheory/WittVector/IsPoly.lean Modified Mathlib/Tactic/SimpRw.lean Modified Mathlib/Topology/Algebra/InfiniteSum/Ring.lean Modified Mathlib/Topology/Algebra/Polynomial.lean Modified Mathlib/Topology/Algebra/UniformMulAction.lean Modified Mathlib/Topology/Homotopy/HSpaces.lean Modified test/Simps.lean 2024-02-20 06:59:00 2147266 feat: `#check` tactic (#9902) This provides a tactic version of the `#check` command. The term provided to `#check` may refer to local variables in the proof. This is similar to how `#find` is both a command and a tactic. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Tactic.lean Added Mathlib/Tactic/Check.lean + def Mathlib.Tactic.elabCheckTactic Modified Mathlib/Tactic/Common.lean Added test/Check.lean 2024-02-20 03:48:28 410db90 fix(Logic/Embedding/Basic): Generalise `arrowCongrRight_apply` (#10739) `f` does not need to be an embedding, and this version is syntactically strictly more general. ESTIMATED CHANGES Modified Mathlib/Logic/Embedding/Basic.lean +/- theorem Function.Embedding.arrowCongrRight_apply 2024-02-20 01:19:59 ea9e243 chore(LinearAlgebra): Fintype -> Finite (#10722) ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/QuadraticForm/IsometryEquiv.lean Modified Mathlib/LinearAlgebra/StdBasis.lean +/- theorem Matrix.stdBasis_eq_stdBasisMatrix 2024-02-20 00:28:29 9b3394a chore(Equiv/Fintype): `Fintype` -> `Finite` (#10723) ESTIMATED CHANGES Modified Mathlib/Logic/Equiv/Fintype.lean 2024-02-19 22:34:41 2d37a85 chore replace to_digits in comment (#10729) ESTIMATED CHANGES Modified Mathlib/Data/Nat/Digits.lean 2024-02-19 22:34:40 c29b514 feat: `stabilizer_univ`, `stabilizer_finset_univ` (#10705) Add a `simp` lemma about the pointwise group action on a set: `stabilizer G (Set.univ : Set α) = ⊤`. Also add an analogous lemma for the `Finset` case, though I didn't need that one. From AperiodicMonotilesLean. ESTIMATED CHANGES Modified Mathlib/Algebra/Pointwise/Stabilizer.lean + theorem MulAction.stabilizer_finset_univ + theorem MulAction.stabilizer_univ 2024-02-19 22:34:39 b9578e8 chore(MeasureTheory/Function/ConditionalExpectation/Real): cleanup (#10684) - Use dot-notation - Replace one `Classical.choose_spec` by `rcases` - Inline short `exact`s ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Function/ConditionalExpectation/Real.lean 2024-02-19 21:18:02 43b77bb feat: `smul_set_disjoint_iff` (#10703) Add a `simp` lemma about the group action on a set: `Disjoint (a • s) (a • t) ↔ Disjoint s t`. From AperiodicMonotilesLean. ESTIMATED CHANGES Modified Mathlib/Data/Set/Pointwise/SMul.lean + theorem Set.smul_set_disjoint_iff 2024-02-19 20:27:30 6590f14 chore: classify `lemma was not necessary` porting notes (category theory) (#10674) Classifies by adding issue number (#10688) to porting notes claiming `ext/simp lemma was not necessary`. ESTIMATED CHANGES Modified Mathlib/Algebra/Category/GroupCat/Preadditive.lean Modified Mathlib/CategoryTheory/Types.lean Modified Mathlib/Topology/Category/Profinite/Basic.lean 2024-02-19 20:27:29 eaaf556 feat(CategoryTheory/Triangulated): more API (#10527) In this PR, it is shown that in order to show that a pretriangulated category is triangulated category, i.e. in order to check the octahedron axiom, it is possible to replace a given diagram by an isomorphic diagram. This shall be used in #9550 in order to show that the homotopy category of cochain complexes in an additive category is triangulated. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Triangulated/Basic.lean + def CategoryTheory.Pretriangulated.Triangle.π₁ + def CategoryTheory.Pretriangulated.Triangle.π₂ + def CategoryTheory.Pretriangulated.Triangle.π₃ Modified Mathlib/CategoryTheory/Triangulated/Pretriangulated.lean + theorem CategoryTheory.Pretriangulated.exists_iso_of_arrow_iso + def CategoryTheory.Pretriangulated.isoTriangleOfIso₁₂ Modified Mathlib/CategoryTheory/Triangulated/Triangulated.lean + theorem CategoryTheory.IsTriangulated.mk' + def CategoryTheory.Triangulated.Octahedron.ofIso 2024-02-19 19:19:05 4ae8a4d feat: basic theory of chains of roots / weights of Lie algebras / modules (#10548) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Lie/Killing.lean Modified Mathlib/Algebra/Lie/OfAssociative.lean + theorem Module.End.lie_apply Modified Mathlib/Algebra/Lie/Submodule.lean Added Mathlib/Algebra/Lie/Weights/Chain.lean + theorem LieModule.lie_mem_weightSpaceChain_of_weightSpace_eq_bot_left + theorem LieModule.lie_mem_weightSpaceChain_of_weightSpace_eq_bot_right + theorem LieModule.trace_toEndomorphism_weightSpaceChain_eq_zero + def LieModule.weightSpaceChain + theorem LieModule.weightSpaceChain_def' + theorem LieModule.weightSpaceChain_def + theorem LieModule.weightSpaceChain_neg + theorem LieModule.weightSpace_le_weightSpaceChain Modified Mathlib/Order/CompleteLattice.lean + theorem Equiv.biInf_comp + theorem Equiv.biSup_comp 2024-02-19 17:38:43 8a5cead feat: Boxes in locally finite ordered rings (#10506) Define the sequence of "hollow boxes" indexed by natural numbers as the successive differences of the "boxes" `Icc (-n) n`. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Data/DFinsupp/Interval.lean Modified Mathlib/Data/Fin/Interval.lean Modified Mathlib/Data/Finset/Interval.lean Renamed Mathlib/Data/Finset/LocallyFinite.lean to Mathlib/Data/Finset/LocallyFinite/Basic.lean Added Mathlib/Data/Finset/LocallyFinite/Box.lean + def Finset.box + theorem Finset.box_succ_disjUnion + theorem Finset.box_succ_eq_sdiff + theorem Finset.box_succ_union_prod + theorem Finset.box_zero + theorem Finset.disjoint_box_succ_prod + theorem Finset.zero_mem_box + theorem Int.card_box + theorem Int.existsUnique_mem_box + theorem Int.mem_box + theorem Prod.card_box_succ Modified Mathlib/Data/Finsupp/Interval.lean Modified Mathlib/Data/Int/Interval.lean Modified Mathlib/Data/Multiset/Interval.lean Modified Mathlib/Data/Multiset/LocallyFinite.lean Modified Mathlib/Data/Nat/Interval.lean Modified Mathlib/Data/Pi/Interval.lean Modified Mathlib/Order/Birkhoff.lean Modified Mathlib/Order/Disjointed.lean - theorem Monotone.disjointed_eq 2024-02-19 17:38:43 83de245 refactor(AlgebraicGeometry/EllipticCurve/*): rename baseChange to map (#9744) This is in accordance with other similar definitions e.g. `Polynomial.map`. It turns out that rewrite lemmas of the form `(W.map (φ.comp ψ)).negY/addX/addY = ψ ((W.map φ).negY/addX/addY)` are rather annoying to use, so they are replaced with the original `baseChange` functionality that says `(W.baseChange B).negY/addX/addY = ψ ((W.baseChange A).negY/addX/addY)`. This addresses the issue in #9596 pointed out by @riccardobrasca, but for the Weierstrass curve `W` rather than its points. ESTIMATED CHANGES Modified Mathlib/AlgebraicGeometry/EllipticCurve/Affine.lean + def WeierstrassCurve.Affine.Point.map + def WeierstrassCurve.Affine.Point.mapFun + theorem WeierstrassCurve.Affine.Point.map_baseChange + theorem WeierstrassCurve.Affine.Point.map_id + theorem WeierstrassCurve.Affine.Point.map_injective + theorem WeierstrassCurve.Affine.Point.map_map + theorem WeierstrassCurve.Affine.Point.map_some + theorem WeierstrassCurve.Affine.Point.map_zero - def WeierstrassCurve.Affine.Point.ofBaseChange - def WeierstrassCurve.Affine.Point.ofBaseChangeFun - theorem WeierstrassCurve.Affine.Point.ofBaseChange_injective +/- theorem WeierstrassCurve.Affine.baseChange_addX - theorem WeierstrassCurve.Affine.baseChange_addX_of_baseChange +/- theorem WeierstrassCurve.Affine.baseChange_addY' - theorem WeierstrassCurve.Affine.baseChange_addY'_of_baseChange +/- theorem WeierstrassCurve.Affine.baseChange_addY - theorem WeierstrassCurve.Affine.baseChange_addY_of_baseChange + theorem WeierstrassCurve.Affine.baseChange_equation +/- theorem WeierstrassCurve.Affine.baseChange_negY - theorem WeierstrassCurve.Affine.baseChange_negY_of_baseChange + theorem WeierstrassCurve.Affine.baseChange_nonsingular +/- theorem WeierstrassCurve.Affine.baseChange_slope - theorem WeierstrassCurve.Affine.baseChange_slope_of_baseChange - theorem WeierstrassCurve.Affine.equation_iff_baseChange - theorem WeierstrassCurve.Affine.equation_iff_baseChange_of_baseChange + theorem WeierstrassCurve.Affine.map_addX + theorem WeierstrassCurve.Affine.map_addY' + theorem WeierstrassCurve.Affine.map_addY + theorem WeierstrassCurve.Affine.map_equation + theorem WeierstrassCurve.Affine.map_negY + theorem WeierstrassCurve.Affine.map_nonsingular + theorem WeierstrassCurve.Affine.map_slope - theorem WeierstrassCurve.Affine.nonsingular_iff_baseChange - theorem WeierstrassCurve.Affine.nonsingular_iff_baseChange_of_baseChange Modified Mathlib/AlgebraicGeometry/EllipticCurve/Group.lean Modified Mathlib/AlgebraicGeometry/EllipticCurve/Weierstrass.lean - def EllipticCurve.baseChange - theorem EllipticCurve.baseChange_injective - theorem EllipticCurve.baseChange_j - theorem EllipticCurve.coeBaseChange_Δ' - theorem EllipticCurve.coe_inv_baseChange_Δ' + theorem EllipticCurve.coe_inv_map_Δ' + theorem EllipticCurve.coe_map_Δ' + def EllipticCurve.map + theorem EllipticCurve.map_injective + theorem EllipticCurve.map_j - def WeierstrassCurve.VariableChange.baseChange - def WeierstrassCurve.VariableChange.baseChangeMap - theorem WeierstrassCurve.VariableChange.baseChange_baseChange - theorem WeierstrassCurve.VariableChange.baseChange_comp - theorem WeierstrassCurve.VariableChange.baseChange_id - theorem WeierstrassCurve.VariableChange.baseChange_injective - theorem WeierstrassCurve.VariableChange.baseChange_self + def WeierstrassCurve.VariableChange.map + def WeierstrassCurve.VariableChange.mapHom + theorem WeierstrassCurve.VariableChange.map_baseChange + theorem WeierstrassCurve.VariableChange.map_id + theorem WeierstrassCurve.VariableChange.map_injective + theorem WeierstrassCurve.VariableChange.map_map - def WeierstrassCurve.baseChange - theorem WeierstrassCurve.baseChange_baseChange - theorem WeierstrassCurve.baseChange_b₂ - theorem WeierstrassCurve.baseChange_b₄ - theorem WeierstrassCurve.baseChange_b₆ - theorem WeierstrassCurve.baseChange_b₈ - theorem WeierstrassCurve.baseChange_c₄ - theorem WeierstrassCurve.baseChange_c₆ - theorem WeierstrassCurve.baseChange_injective - theorem WeierstrassCurve.baseChange_self - theorem WeierstrassCurve.baseChange_variableChange - theorem WeierstrassCurve.baseChange_Δ + def WeierstrassCurve.map + theorem WeierstrassCurve.map_baseChange + theorem WeierstrassCurve.map_b₂ + theorem WeierstrassCurve.map_b₄ + theorem WeierstrassCurve.map_b₆ + theorem WeierstrassCurve.map_b₈ + theorem WeierstrassCurve.map_c₄ + theorem WeierstrassCurve.map_c₆ + theorem WeierstrassCurve.map_id + theorem WeierstrassCurve.map_injective + theorem WeierstrassCurve.map_map + theorem WeierstrassCurve.map_variableChange + theorem WeierstrassCurve.map_Δ 2024-02-19 16:57:08 9ece706 chore: generalize theorems from IsConnected to IsPreconnected (#10713) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/IsConnected.lean + theorem CategoryTheory.IsPreconnected.of_any_functor_const_on_obj + theorem CategoryTheory.IsPreconnected.of_constant_of_preserves_morphisms +/- theorem CategoryTheory.equiv_relation - theorem CategoryTheory.isConnected_zigzag + theorem CategoryTheory.isPreconnected_of_zigzag + theorem CategoryTheory.isPreconnected_zigzag + theorem CategoryTheory.nonempty_hom_of_preconnected_groupoid +/- theorem CategoryTheory.zigzag_isConnected + theorem CategoryTheory.zigzag_isPreconnected Modified Mathlib/GroupTheory/FreeGroup/NielsenSchreier.lean 2024-02-19 15:34:14 e478d1c feat(LinearAlgebra/Matrix): center of special linear group (#7826) The center of a special linear group of degree `n` is a subgroup composed of scalar matrices, in which the scalars are the `n`-th roots of `1`. ESTIMATED CHANGES Modified Mathlib/Data/PNat/Defs.lean + theorem Nat.toPNat'_zero Modified Mathlib/GroupTheory/GroupAction/Units.lean + theorem Units.smul_mk_apply Modified Mathlib/LinearAlgebra/Matrix/SpecialLinearGroup.lean + theorem Matrix.SpecialLinearGroup.center_eq_bot_of_subsingleton + def Matrix.SpecialLinearGroup.center_equiv_rootsOfUnity' + theorem Matrix.SpecialLinearGroup.mem_center_iff + theorem Matrix.SpecialLinearGroup.scalar_eq_coe_self_center + theorem Matrix.SpecialLinearGroup.scalar_eq_self_of_mem_center Modified Mathlib/RingTheory/RootsOfUnity/Basic.lean + theorem rootsOfUnity_one 2024-02-19 12:52:26 65037e3 docstring(Algebra/DirectSum/Basic): correct docstring (#10715) The docstring for docs#DirectSum indicated `DirectSum β` instead of `DirectSum ι β`. ESTIMATED CHANGES Modified Mathlib/Algebra/DirectSum/Basic.lean 2024-02-19 12:21:37 e3e1b3f chore(RingTheory/MvPolynomial/Homogeneous): extract api lemma from existing proof (#10658) ESTIMATED CHANGES Modified Mathlib/RingTheory/MvPolynomial/Homogeneous.lean + theorem MvPolynomial.IsHomogeneous.totalDegree_le 2024-02-19 10:30:43 f749ee5 fix: correct deprecation suggestions for algebra classes (#10702) ESTIMATED CHANGES Modified Mathlib/Init/Algebra/Classes.lean 2024-02-19 09:46:11 c1e6b9c feat: Add `NumberField.is_primitive_element_of_infinitePlace_lt` (#10033) Prove the following ```lean theorem NumberField.is_primitive_element_of_infinitePlace_lt (x : 𝓞 K) {w : InfinitePlace K} (h₁ : x ≠ 0) (h₂ : ∀ ⦃w'⦄, w' ≠ w → w' x < 1) (h₃ : IsReal w ∨ |(w.embedding x).re| < 1) : ℚ⟮(x:K)⟯ = ⊤ := by ``` If the place `w` is not real, we need the condition `|(w.embedding x).re| < 1` to ensure `x` is not a real number at the place `w`. ESTIMATED CHANGES Modified Mathlib/NumberTheory/NumberField/Embeddings.lean + theorem NumberField.InfinitePlace.one_le_of_lt_one + theorem NumberField.adjoin_eq_top_of_infinitePlace_lt + theorem NumberField.is_primitive_element_of_infinitePlace_lt 2024-02-19 08:49:50 a4fac96 feat(LinearAlgebra/Charpoly): the characteristic polynomial of a direct sum (#10663) ... is the product of the characteristic polynomials. ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/Charpoly/Basic.lean + theorem LinearMap.charpoly_natDegree Modified Mathlib/LinearAlgebra/Charpoly/ToMatrix.lean + theorem LinearMap.charpoly_prodMap Modified Mathlib/LinearAlgebra/Matrix/ToLin.lean + theorem LinearMap.toMatrix_prodMap 2024-02-19 07:48:07 69eaf3b feat(Data/Polynomial/RingDivision): eq_zero_of_forall_eval_zero_of_natDegree_lt_card (#10656) ESTIMATED CHANGES Modified Mathlib/Data/Polynomial/RingDivision.lean + theorem Polynomial.eq_zero_of_forall_eval_zero_of_natDegree_lt_card 2024-02-19 04:21:59 ba72555 chore(Convex.Body): address porting note (#10697) It appears this note no longer applies. ESTIMATED CHANGES Modified Mathlib/Analysis/Convex/Body.lean 2024-02-19 03:57:58 b860b8a chore: remove duplicate BitVec instances (#10712) ESTIMATED CHANGES Modified Mathlib/Data/BitVec/Defs.lean 2024-02-18 23:34:50 89162a4 fix: rename Irreducible.nat_degree_le_two (#10687) ESTIMATED CHANGES Modified Mathlib/Analysis/Complex/Polynomial.lean + theorem Irreducible.natDegree_le_two - theorem Irreducible.nat_degree_le_two 2024-02-19 09:40:39+11:00 b9a311a chore: post success messages about nightly-testing (#10679) --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) ESTIMATED CHANGES Modified .github/workflows/nightly_detect_failure.yml 2024-02-18 16:29:59 d475374 chore: Remove `PosPart` notation class (#10690) These two notation classes should have been removed in #9740 ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Group/PosPart.lean 2024-02-18 13:05:10 9a04ccc chore(RingTheory/Polynomial/Basic): add lemma aeval_natDegree_le (#10659) This lemma is used in the proof of existence of Cartan subalgebras ESTIMATED CHANGES Modified Mathlib/RingTheory/Polynomial/Basic.lean + theorem MvPolynomial.aeval_natDegree_le 2024-02-18 13:05:09 10ab06c chore(SetTheory/Cardinal/Basic): Cardinal.exists_finset_le_card (#10651) ESTIMATED CHANGES Modified Mathlib/SetTheory/Cardinal/Basic.lean + theorem Cardinal.exists_finset_le_card 2024-02-18 12:31:54 a880428 feat(CategoryTheory/Limits): universal colimits are colimits (#10677) This was missing, but essentially what was proved in the analogous statement for Van Kampen colimits. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Limits/VanKampen.lean 2024-02-18 09:43:21 f6d4f4c Refactor(Mathlib/CategoryTheory/Core): Make functorToCore compute (#10649) Change `functorToCore` to use `Groupoid.inv` instead of `IsIso.inv` and as a consequence make it's computable. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Core.lean + def CategoryTheory.Core.functorToCore 2024-02-18 09:43:20 a13e804 chore: remove stream-of-consciousness uses of `have`, `replace` and `suffices` (#10640) No changes to tactic file, it's just boring fixes throughout the library. This follows on from #6964. ESTIMATED CHANGES Modified Archive/Arithcc.lean Modified Archive/Imo/Imo1964Q1.lean Modified Archive/Imo/Imo1972Q5.lean Modified Archive/Imo/Imo1988Q6.lean Modified Archive/Imo/Imo1994Q1.lean Modified Archive/Imo/Imo2006Q5.lean Modified Archive/Imo/Imo2008Q2.lean Modified Archive/Imo/Imo2011Q3.lean Modified Archive/Imo/Imo2011Q5.lean Modified Archive/Imo/Imo2013Q1.lean Modified Archive/Imo/Imo2013Q5.lean Modified Archive/Imo/Imo2019Q4.lean Modified Archive/Imo/Imo2021Q1.lean Modified Archive/OxfordInvariants/Summer2021/Week3P1.lean Modified Archive/Sensitivity.lean Modified Archive/Wiedijk100Theorems/AbelRuffini.lean Modified Archive/Wiedijk100Theorems/AscendingDescendingSequences.lean Modified Archive/Wiedijk100Theorems/Partition.lean Modified Counterexamples/SorgenfreyLine.lean Modified Mathlib/Algebra/Algebra/Spectrum.lean Modified Mathlib/Algebra/AlgebraicCard.lean Modified Mathlib/Algebra/Category/ModuleCat/Free.lean Modified Mathlib/Algebra/CharP/MixedCharZero.lean Modified Mathlib/Algebra/ContinuedFractions/Computation/Approximations.lean Modified Mathlib/Algebra/ContinuedFractions/Computation/TerminatesIffRat.lean Modified Mathlib/Algebra/FreeAlgebra.lean Modified Mathlib/Algebra/Group/UniqueProds.lean Modified Mathlib/Algebra/Homology/Exact.lean Modified Mathlib/Algebra/Lie/Abelian.lean Modified Mathlib/Algebra/Lie/Engel.lean Modified Mathlib/Algebra/Lie/Killing.lean Modified Mathlib/Algebra/Lie/Weights/Basic.lean Modified Mathlib/Algebra/LinearRecurrence.lean Modified Mathlib/Algebra/Module/Torsion.lean Modified Mathlib/Algebra/MonoidAlgebra/Basic.lean Modified Mathlib/Algebra/Order/CauSeq/BigOperators.lean Modified Mathlib/Algebra/Order/CompleteField.lean Modified Mathlib/Algebra/Order/Floor.lean Modified Mathlib/Algebra/Order/ToIntervalMod.lean Modified Mathlib/Algebra/RingQuot.lean Modified Mathlib/AlgebraicGeometry/Limits.lean Modified Mathlib/AlgebraicGeometry/Morphisms/QuasiCompact.lean Modified Mathlib/AlgebraicGeometry/Morphisms/RingHomProperties.lean Modified Mathlib/AlgebraicGeometry/PrimeSpectrum/Noetherian.lean Modified Mathlib/AlgebraicGeometry/ProjectiveSpectrum/Scheme.lean Modified Mathlib/AlgebraicGeometry/Spec.lean Modified Mathlib/AlgebraicGeometry/StructureSheaf.lean Modified Mathlib/Analysis/Analytic/Basic.lean Modified Mathlib/Analysis/Analytic/CPolynomial.lean Modified Mathlib/Analysis/Analytic/Composition.lean Modified Mathlib/Analysis/Analytic/Inverse.lean Modified Mathlib/Analysis/Analytic/IsolatedZeros.lean Modified Mathlib/Analysis/Analytic/Meromorphic.lean Modified Mathlib/Analysis/Analytic/Uniqueness.lean Modified Mathlib/Analysis/Asymptotics/SuperpolynomialDecay.lean Modified Mathlib/Analysis/BoundedVariation.lean Modified Mathlib/Analysis/BoxIntegral/Box/SubboxInduction.lean Modified Mathlib/Analysis/BoxIntegral/DivergenceTheorem.lean Modified Mathlib/Analysis/BoxIntegral/Partition/Additive.lean Modified Mathlib/Analysis/BoxIntegral/Partition/Basic.lean Modified Mathlib/Analysis/Calculus/ContDiff/Basic.lean Modified Mathlib/Analysis/Calculus/ContDiff/Bounds.lean Modified Mathlib/Analysis/Calculus/ContDiff/Defs.lean Modified Mathlib/Analysis/Calculus/ContDiff/IsROrC.lean Modified Mathlib/Analysis/Calculus/FDeriv/Basic.lean Modified Mathlib/Analysis/Calculus/FDeriv/Bilinear.lean Modified Mathlib/Analysis/Calculus/FDeriv/Extend.lean Modified Mathlib/Analysis/Calculus/FDeriv/Measurable.lean Modified Mathlib/Analysis/Calculus/FDeriv/Pi.lean Modified Mathlib/Analysis/Calculus/FDeriv/Symmetric.lean Modified Mathlib/Analysis/Calculus/Gradient/Basic.lean Modified Mathlib/Analysis/Calculus/InverseFunctionTheorem/ApproximatesLinearOn.lean Modified Mathlib/Analysis/Calculus/LagrangeMultipliers.lean Modified Mathlib/Analysis/Calculus/LocalExtr/Basic.lean Modified Mathlib/Analysis/Calculus/ParametricIntegral.lean Modified Mathlib/Analysis/Calculus/SmoothSeries.lean Modified Mathlib/Analysis/Calculus/TangentCone.lean Modified Mathlib/Analysis/Calculus/UniformLimitsDeriv.lean Modified Mathlib/Analysis/Complex/AbsMax.lean Modified Mathlib/Analysis/Complex/CauchyIntegral.lean Modified Mathlib/Analysis/Complex/Liouville.lean Modified Mathlib/Analysis/Complex/LocallyUniformLimit.lean Modified Mathlib/Analysis/Complex/OpenMapping.lean Modified Mathlib/Analysis/Complex/PhragmenLindelof.lean Modified Mathlib/Analysis/Complex/RemovableSingularity.lean Modified Mathlib/Analysis/Complex/Schwarz.lean Modified Mathlib/Analysis/Complex/TaylorSeries.lean Modified Mathlib/Analysis/Complex/UpperHalfPlane/Basic.lean Modified Mathlib/Analysis/Convex/Cone/Extension.lean Modified Mathlib/Analysis/Convex/Extrema.lean Modified Mathlib/Analysis/Convex/Gauge.lean Modified Mathlib/Analysis/Convex/Hull.lean Modified Mathlib/Analysis/Convex/Integral.lean Modified Mathlib/Analysis/Convex/Jensen.lean Modified Mathlib/Analysis/Convex/Measure.lean Modified Mathlib/Analysis/Convex/StoneSeparation.lean Modified Mathlib/Analysis/Convolution.lean Modified Mathlib/Analysis/Distribution/AEEqOfIntegralContDiff.lean Modified Mathlib/Analysis/Fourier/FourierTransformDeriv.lean Modified Mathlib/Analysis/Hofer.lean Modified Mathlib/Analysis/InnerProductSpace/Basic.lean Modified Mathlib/Analysis/InnerProductSpace/Projection.lean Modified Mathlib/Analysis/InnerProductSpace/l2Space.lean Modified Mathlib/Analysis/MeanInequalities.lean Modified Mathlib/Analysis/MeanInequalitiesPow.lean Modified Mathlib/Analysis/MellinTransform.lean Modified Mathlib/Analysis/Normed/Group/AddCircle.lean Modified Mathlib/Analysis/Normed/Group/Basic.lean Modified Mathlib/Analysis/Normed/Group/ControlledClosure.lean Modified Mathlib/Analysis/Normed/Group/HomCompletion.lean Modified Mathlib/Analysis/Normed/Group/Quotient.lean Modified Mathlib/Analysis/NormedSpace/BoundedLinearMaps.lean Modified Mathlib/Analysis/NormedSpace/FiniteDimension.lean Modified Mathlib/Analysis/NormedSpace/MazurUlam.lean Modified Mathlib/Analysis/NormedSpace/Multilinear/Basic.lean Modified Mathlib/Analysis/NormedSpace/OperatorNorm.lean Modified Mathlib/Analysis/NormedSpace/Spectrum.lean Modified Mathlib/Analysis/NormedSpace/Star/ContinuousFunctionalCalculus.lean Modified Mathlib/Analysis/NormedSpace/Star/Spectrum.lean Modified Mathlib/Analysis/SpecialFunctions/Complex/Arg.lean Modified Mathlib/Analysis/SpecialFunctions/Complex/LogBounds.lean Modified Mathlib/Analysis/SpecialFunctions/Gamma/Beta.lean Modified Mathlib/Analysis/SpecialFunctions/Gamma/BohrMollerup.lean Modified Mathlib/Analysis/SpecialFunctions/Gaussian.lean Modified Mathlib/Analysis/SpecialFunctions/Integrals.lean Modified Mathlib/Analysis/SpecialFunctions/Log/Base.lean Modified Mathlib/Analysis/SpecialFunctions/Log/Basic.lean Modified Mathlib/Analysis/SpecialFunctions/Log/Deriv.lean Modified Mathlib/Analysis/SpecialFunctions/Pow/Continuity.lean Modified Mathlib/Analysis/SpecialFunctions/Pow/Real.lean Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/EulerSineProd.lean Modified Mathlib/Analysis/SpecificLimits/Normed.lean Modified Mathlib/CategoryTheory/Abelian/Basic.lean Modified Mathlib/CategoryTheory/Abelian/Exact.lean Modified Mathlib/CategoryTheory/Abelian/Generator.lean Modified Mathlib/CategoryTheory/Closed/Ideal.lean Modified Mathlib/CategoryTheory/Extensive.lean Modified Mathlib/CategoryTheory/Functor/Flat.lean Modified Mathlib/CategoryTheory/GlueData.lean Modified Mathlib/CategoryTheory/Limits/VanKampen.lean Modified Mathlib/CategoryTheory/Localization/Construction.lean Modified Mathlib/CategoryTheory/Simple.lean Modified Mathlib/CategoryTheory/Sites/Coherent/Comparison.lean Modified Mathlib/CategoryTheory/Sites/EffectiveEpimorphic.lean Modified Mathlib/CategoryTheory/Sites/Plus.lean Modified Mathlib/CategoryTheory/Sites/Spaces.lean Modified Mathlib/Combinatorics/Additive/Behrend.lean Modified Mathlib/Combinatorics/Composition.lean Modified Mathlib/Combinatorics/Schnirelmann.lean Modified Mathlib/Combinatorics/SetFamily/AhlswedeZhang.lean Modified Mathlib/Combinatorics/SetFamily/Compression/UV.lean Modified Mathlib/Combinatorics/SetFamily/FourFunctions.lean Modified Mathlib/Combinatorics/SetFamily/Shatter.lean Modified Mathlib/Combinatorics/SimpleGraph/Acyclic.lean Modified Mathlib/Combinatorics/SimpleGraph/Regularity/Lemma.lean Modified Mathlib/Computability/AkraBazzi/GrowsPolynomially.lean Modified Mathlib/Computability/Halting.lean Modified Mathlib/Computability/PartrecCode.lean Modified Mathlib/Computability/Primrec.lean Modified Mathlib/Condensed/Equivalence.lean Modified Mathlib/Data/Analysis/Topology.lean Modified Mathlib/Data/Complex/Exponential.lean Modified Mathlib/Data/DFinsupp/WellFounded.lean Modified Mathlib/Data/ENNReal/Inv.lean Modified Mathlib/Data/Fin/Tuple/Sort.lean Modified Mathlib/Data/Finset/Lattice.lean Modified Mathlib/Data/Finsupp/BigOperators.lean Modified Mathlib/Data/List/EditDistance/Bounds.lean Modified Mathlib/Data/Matrix/Rank.lean Modified Mathlib/Data/Matroid/Dual.lean Modified Mathlib/Data/Matroid/IndepAxioms.lean Modified Mathlib/Data/Multiset/Nodup.lean Modified Mathlib/Data/Multiset/Sym.lean Modified Mathlib/Data/MvPolynomial/Basic.lean Modified Mathlib/Data/Nat/Cast/Field.lean Modified Mathlib/Data/Nat/Choose/Factorization.lean Modified Mathlib/Data/Nat/Choose/Sum.lean Modified Mathlib/Data/Nat/Fib/Zeckendorf.lean Modified Mathlib/Data/Nat/Lattice.lean Modified Mathlib/Data/Nat/Multiplicity.lean Modified Mathlib/Data/Nat/Totient.lean Modified Mathlib/Data/Polynomial/Coeff.lean Modified Mathlib/Data/Polynomial/Degree/Lemmas.lean Modified Mathlib/Data/Polynomial/FieldDivision.lean Modified Mathlib/Data/Polynomial/RingDivision.lean Modified Mathlib/Data/Rat/Lemmas.lean Modified Mathlib/Data/Real/Pi/Leibniz.lean Modified Mathlib/Data/Seq/Parallel.lean Modified Mathlib/Data/Set/Card.lean Modified Mathlib/Data/Set/Pointwise/Finite.lean Modified Mathlib/Data/Set/Pointwise/Iterate.lean Modified Mathlib/Dynamics/Ergodic/AddCircle.lean Modified Mathlib/Dynamics/Ergodic/Ergodic.lean Modified Mathlib/FieldTheory/Adjoin.lean Modified Mathlib/FieldTheory/ChevalleyWarning.lean Modified Mathlib/FieldTheory/Finite/Basic.lean Modified Mathlib/FieldTheory/Galois.lean Modified Mathlib/FieldTheory/IsAlgClosed/Classification.lean Modified Mathlib/FieldTheory/KummerExtension.lean Modified Mathlib/FieldTheory/Minpoly/Field.lean Modified Mathlib/FieldTheory/Minpoly/MinpolyDiv.lean Modified Mathlib/FieldTheory/Perfect.lean Modified Mathlib/FieldTheory/PrimitiveElement.lean Modified Mathlib/Geometry/Euclidean/MongePoint.lean Modified Mathlib/Geometry/Euclidean/Triangle.lean Modified Mathlib/Geometry/Manifold/BumpFunction.lean Modified Mathlib/Geometry/Manifold/ChartedSpace.lean Modified Mathlib/Geometry/Manifold/Complex.lean Modified Mathlib/Geometry/Manifold/ContMDiff/Atlas.lean Modified Mathlib/Geometry/Manifold/ContMDiffMFDeriv.lean Modified Mathlib/Geometry/Manifold/Instances/Sphere.lean Modified Mathlib/Geometry/Manifold/LocalInvariantProperties.lean Modified Mathlib/Geometry/Manifold/MFDeriv/Basic.lean Modified Mathlib/Geometry/Manifold/MFDeriv/SpecificFunctions.lean Modified Mathlib/Geometry/Manifold/MFDeriv/UniqueDifferential.lean Modified Mathlib/Geometry/Manifold/SmoothManifoldWithCorners.lean Modified Mathlib/Geometry/Manifold/VectorBundle/Basic.lean Modified Mathlib/Geometry/RingedSpace/Basic.lean Modified Mathlib/Geometry/RingedSpace/LocallyRingedSpace/HasColimits.lean Modified Mathlib/Geometry/RingedSpace/OpenImmersion.lean Modified Mathlib/GroupTheory/ClassEquation.lean Modified Mathlib/GroupTheory/Commutator.lean Modified Mathlib/GroupTheory/CommutingProbability.lean Modified Mathlib/GroupTheory/CoprodI.lean Modified Mathlib/GroupTheory/Exponent.lean Modified Mathlib/GroupTheory/Finiteness.lean Modified Mathlib/GroupTheory/HNNExtension.lean Modified Mathlib/GroupTheory/MonoidLocalization.lean Modified Mathlib/GroupTheory/Perm/Cycle/PossibleTypes.lean Modified Mathlib/GroupTheory/Perm/Cycle/Type.lean Modified Mathlib/GroupTheory/PushoutI.lean Modified Mathlib/GroupTheory/SpecificGroups/Alternating.lean Modified Mathlib/GroupTheory/Subgroup/Pointwise.lean Modified Mathlib/LinearAlgebra/BilinearForm/Orthogonal.lean Modified Mathlib/LinearAlgebra/DFinsupp.lean Modified Mathlib/LinearAlgebra/Dimension/Constructions.lean Modified Mathlib/LinearAlgebra/Dimension/DivisionRing.lean Modified Mathlib/LinearAlgebra/Dimension/Finite.lean Modified Mathlib/LinearAlgebra/Dimension/LinearMap.lean Modified Mathlib/LinearAlgebra/Dimension/Localization.lean Modified Mathlib/LinearAlgebra/Matrix/Charpoly/Coeff.lean Modified Mathlib/LinearAlgebra/Matrix/PosDef.lean Modified Mathlib/LinearAlgebra/Matrix/Spectrum.lean Modified Mathlib/LinearAlgebra/Matrix/Transvection.lean Modified Mathlib/LinearAlgebra/SesquilinearForm.lean Modified Mathlib/LinearAlgebra/Span.lean Modified Mathlib/LinearAlgebra/TensorPower.lean Modified Mathlib/LinearAlgebra/TensorProduct.lean Modified Mathlib/LinearAlgebra/TensorProduct/RightExactness.lean Modified Mathlib/MeasureTheory/Constructions/BorelSpace/Metrizable.lean Modified Mathlib/MeasureTheory/Covering/Besicovitch.lean Modified Mathlib/MeasureTheory/Covering/BesicovitchVectorSpace.lean Modified Mathlib/MeasureTheory/Covering/DensityTheorem.lean Modified Mathlib/MeasureTheory/Covering/Differentiation.lean Modified Mathlib/MeasureTheory/Covering/LiminfLimsup.lean Modified Mathlib/MeasureTheory/Covering/Vitali.lean Modified Mathlib/MeasureTheory/Decomposition/Lebesgue.lean Modified Mathlib/MeasureTheory/Function/AEEqOfIntegral.lean Modified Mathlib/MeasureTheory/Function/ConditionalExpectation/AEMeasurable.lean Modified Mathlib/MeasureTheory/Function/ConditionalExpectation/CondexpL2.lean Modified Mathlib/MeasureTheory/Function/ConditionalExpectation/Indicator.lean Modified Mathlib/MeasureTheory/Function/ConditionalExpectation/Unique.lean Modified Mathlib/MeasureTheory/Function/ContinuousMapDense.lean Modified Mathlib/MeasureTheory/Function/ConvergenceInMeasure.lean Modified Mathlib/MeasureTheory/Function/EssSup.lean Modified Mathlib/MeasureTheory/Function/Jacobian.lean Modified Mathlib/MeasureTheory/Function/L1Space.lean Modified Mathlib/MeasureTheory/Function/L2Space.lean Modified Mathlib/MeasureTheory/Function/LpSeminorm/Basic.lean Modified Mathlib/MeasureTheory/Function/LpSeminorm/Trim.lean Modified Mathlib/MeasureTheory/Function/LpSpace.lean Modified Mathlib/MeasureTheory/Function/SimpleFuncDenseLp.lean Modified Mathlib/MeasureTheory/Group/AddCircle.lean Modified Mathlib/MeasureTheory/Group/Arithmetic.lean Modified Mathlib/MeasureTheory/Integral/Average.lean Modified Mathlib/MeasureTheory/Integral/CircleIntegral.lean Modified Mathlib/MeasureTheory/Integral/DivergenceTheorem.lean Modified Mathlib/MeasureTheory/Integral/FundThmCalculus.lean Modified Mathlib/MeasureTheory/Integral/Lebesgue.lean Modified Mathlib/MeasureTheory/Integral/MeanInequalities.lean Modified Mathlib/MeasureTheory/Integral/SetToL1.lean Modified Mathlib/MeasureTheory/MeasurableSpace/Basic.lean Modified Mathlib/MeasureTheory/Measure/Content.lean Modified Mathlib/MeasureTheory/Measure/Haar/OfBasis.lean Modified Mathlib/MeasureTheory/Measure/Haar/Quotient.lean Modified Mathlib/MeasureTheory/Measure/Hausdorff.lean Modified Mathlib/MeasureTheory/Measure/Lebesgue/EqHaar.lean Modified Mathlib/MeasureTheory/Measure/MeasureSpace.lean Modified Mathlib/MeasureTheory/Measure/Typeclasses.lean Modified Mathlib/MeasureTheory/PiSystem.lean Modified Mathlib/ModelTheory/ElementaryMaps.lean Modified Mathlib/ModelTheory/Encoding.lean Modified Mathlib/ModelTheory/Satisfiability.lean Modified Mathlib/NumberTheory/ArithmeticFunction.lean Modified Mathlib/NumberTheory/Cyclotomic/Basic.lean Modified Mathlib/NumberTheory/Cyclotomic/Discriminant.lean Modified Mathlib/NumberTheory/Cyclotomic/PrimitiveRoots.lean Modified Mathlib/NumberTheory/DiophantineApproximation.lean Modified Mathlib/NumberTheory/DirichletCharacter/Basic.lean Modified Mathlib/NumberTheory/FLT/Four.lean Modified Mathlib/NumberTheory/FermatPsp.lean Modified Mathlib/NumberTheory/LSeries/Basic.lean Modified Mathlib/NumberTheory/Liouville/Basic.lean Modified Mathlib/NumberTheory/Liouville/LiouvilleWith.lean Modified Mathlib/NumberTheory/Liouville/Measure.lean Modified Mathlib/NumberTheory/Modular.lean Modified Mathlib/NumberTheory/ModularForms/EisensteinSeries/Basic.lean Modified Mathlib/NumberTheory/ModularForms/JacobiTheta/TwoVariable.lean Modified Mathlib/NumberTheory/NumberField/Discriminant.lean Modified Mathlib/NumberTheory/Padics/Harmonic.lean Modified Mathlib/NumberTheory/Padics/PadicNorm.lean Modified Mathlib/NumberTheory/Padics/RingHoms.lean Modified Mathlib/NumberTheory/PellMatiyasevic.lean Modified Mathlib/NumberTheory/PythagoreanTriples.lean Modified Mathlib/NumberTheory/RamificationInertia.lean Modified Mathlib/NumberTheory/SmoothNumbers.lean Modified Mathlib/NumberTheory/SumFourSquares.lean Modified Mathlib/NumberTheory/SumPrimeReciprocals.lean Modified Mathlib/NumberTheory/WellApproximable.lean Modified Mathlib/NumberTheory/ZetaFunction.lean Modified Mathlib/Order/CompactlyGenerated/Basic.lean Modified Mathlib/Order/Filter/Archimedean.lean Modified Mathlib/Order/Filter/Basic.lean Modified Mathlib/Order/Partition/Finpartition.lean Modified Mathlib/Order/RelSeries.lean Modified Mathlib/Order/SupIndep.lean Modified Mathlib/Order/WellFoundedSet.lean Modified Mathlib/Probability/Independence/Kernel.lean Modified Mathlib/Probability/Independence/ZeroOne.lean Modified Mathlib/Probability/Kernel/CondCdf.lean Modified Mathlib/Probability/Kernel/CondDistrib.lean Modified Mathlib/Probability/Kernel/Disintegration.lean Modified Mathlib/Probability/Kernel/WithDensity.lean Modified Mathlib/Probability/Martingale/Convergence.lean Modified Mathlib/Probability/ProbabilityMassFunction/Basic.lean Modified Mathlib/Probability/Process/HittingTime.lean Modified Mathlib/Probability/Process/Stopping.lean Modified Mathlib/Probability/StrongLaw.lean Modified Mathlib/RingTheory/Artinian.lean Modified Mathlib/RingTheory/ChainOfDivisors.lean Modified Mathlib/RingTheory/DedekindDomain/Different.lean Modified Mathlib/RingTheory/DedekindDomain/Ideal.lean Modified Mathlib/RingTheory/DiscreteValuationRing/TFAE.lean Modified Mathlib/RingTheory/FinitePresentation.lean Modified Mathlib/RingTheory/FiniteType.lean Modified Mathlib/RingTheory/Finiteness.lean Modified Mathlib/RingTheory/Flat/Basic.lean Modified Mathlib/RingTheory/FractionalIdeal/Operations.lean Modified Mathlib/RingTheory/Ideal/AssociatedPrime.lean Modified Mathlib/RingTheory/Ideal/Norm.lean Modified Mathlib/RingTheory/Ideal/Over.lean Modified Mathlib/RingTheory/IntegralDomain.lean Modified Mathlib/RingTheory/Jacobson.lean Modified Mathlib/RingTheory/LittleWedderburn.lean Modified Mathlib/RingTheory/LocalProperties.lean Modified Mathlib/RingTheory/Localization/AtPrime.lean Modified Mathlib/RingTheory/Localization/Integral.lean Modified Mathlib/RingTheory/Localization/LocalizationLocalization.lean Modified Mathlib/RingTheory/MvPolynomial/NewtonIdentities.lean Modified Mathlib/RingTheory/Noetherian.lean Modified Mathlib/RingTheory/NonUnitalSubsemiring/Basic.lean Modified Mathlib/RingTheory/OreLocalization/Basic.lean Modified Mathlib/RingTheory/Polynomial/Content.lean Modified Mathlib/RingTheory/Polynomial/Cyclotomic/Basic.lean Modified Mathlib/RingTheory/Polynomial/Dickson.lean Modified Mathlib/RingTheory/Polynomial/Eisenstein/IsIntegral.lean Modified Mathlib/RingTheory/Polynomial/GaussLemma.lean Modified Mathlib/RingTheory/Polynomial/Pochhammer.lean Modified Mathlib/RingTheory/Polynomial/ScaleRoots.lean Modified Mathlib/RingTheory/Polynomial/Selmer.lean Modified Mathlib/RingTheory/PowerSeries/Basic.lean Modified Mathlib/RingTheory/PrincipalIdealDomain.lean Modified Mathlib/RingTheory/RingHom/FiniteType.lean Modified Mathlib/RingTheory/Valuation/Basic.lean Modified Mathlib/RingTheory/Valuation/ValuationSubring.lean Modified Mathlib/SetTheory/Cardinal/Basic.lean Modified Mathlib/SetTheory/Cardinal/Cofinality.lean Modified Mathlib/SetTheory/Cardinal/Ordinal.lean Modified Mathlib/SetTheory/Game/Nim.lean Modified Mathlib/SetTheory/Ordinal/Arithmetic.lean Modified Mathlib/SetTheory/Ordinal/Basic.lean Modified Mathlib/SetTheory/Ordinal/FixedPoint.lean Modified Mathlib/SetTheory/Ordinal/Notation.lean Modified Mathlib/SetTheory/Ordinal/Principal.lean Modified Mathlib/SetTheory/Ordinal/Topology.lean Modified Mathlib/Tactic/Common.lean Modified Mathlib/Topology/Algebra/Field.lean Modified Mathlib/Topology/Algebra/Group/Basic.lean Modified Mathlib/Topology/Algebra/InfiniteSum/Basic.lean Modified Mathlib/Topology/Algebra/Module/Basic.lean Modified Mathlib/Topology/Algebra/Module/LinearPMap.lean Modified Mathlib/Topology/Algebra/Monoid.lean Modified Mathlib/Topology/Algebra/Nonarchimedean/Bases.lean Modified Mathlib/Topology/Algebra/Order/Compact.lean Modified Mathlib/Topology/Algebra/Order/Field.lean Modified Mathlib/Topology/Algebra/Order/IntermediateValue.lean Modified Mathlib/Topology/Algebra/Order/MonotoneConvergence.lean Modified Mathlib/Topology/Algebra/ValuedField.lean Modified Mathlib/Topology/Bases.lean Modified Mathlib/Topology/Basic.lean Modified Mathlib/Topology/Category/CompHaus/Limits.lean Modified Mathlib/Topology/Category/Profinite/CofilteredLimit.lean Modified Mathlib/Topology/Category/Profinite/Limits.lean Modified Mathlib/Topology/Category/Profinite/Nobeling.lean Modified Mathlib/Topology/Category/Profinite/Product.lean Modified Mathlib/Topology/Category/Stonean/Limits.lean Modified Mathlib/Topology/Compactification/OnePoint.lean Modified Mathlib/Topology/Compactness/Compact.lean Modified Mathlib/Topology/Connected/Basic.lean Modified Mathlib/Topology/DenseEmbedding.lean Modified Mathlib/Topology/EMetricSpace/Basic.lean Modified Mathlib/Topology/EMetricSpace/Paracompact.lean Modified Mathlib/Topology/ExtendFrom.lean Modified Mathlib/Topology/ExtremallyDisconnected.lean Modified Mathlib/Topology/Instances/AddCircle.lean Modified Mathlib/Topology/Instances/Discrete.lean Modified Mathlib/Topology/IsLocalHomeomorph.lean Modified Mathlib/Topology/List.lean Modified Mathlib/Topology/LocallyConstant/Basic.lean Modified Mathlib/Topology/LocallyFinite.lean Modified Mathlib/Topology/MetricSpace/Polish.lean Modified Mathlib/Topology/Metrizable/Urysohn.lean Modified Mathlib/Topology/NoetherianSpace.lean Modified Mathlib/Topology/Order/Basic.lean Modified Mathlib/Topology/Order/LowerUpperTopology.lean Modified Mathlib/Topology/Separation.lean Modified Mathlib/Topology/Sheaves/Operations.lean Modified Mathlib/Topology/ShrinkingLemma.lean Modified Mathlib/Topology/TietzeExtension.lean Modified Mathlib/Topology/UniformSpace/Basic.lean Modified Mathlib/Topology/UrysohnsLemma.lean Modified Mathlib/Topology/VectorBundle/Basic.lean Modified test/GCongr/inequalities.lean Modified test/Monotonicity.lean Modified test/apply_fun.lean Modified test/interval_cases.lean Modified test/linarith.lean Modified test/slim_check.lean 2024-02-18 08:41:00 746ffd5 chore: bump dependencies (#10625) ESTIMATED CHANGES Modified Mathlib/Data/Rat/Defs.lean Modified lake-manifest.json 2024-02-17 23:07:19 dcfd3b1 chore: add issue number to `instance was not necessary` porting notes (#10671) Adds issue number (#10670) to porting notes claiming `instance was not necessary`. ESTIMATED CHANGES Modified Mathlib/Algebra/Category/GroupCat/Basic.lean Modified Mathlib/Algebra/Category/GroupCat/Preadditive.lean Modified Mathlib/Algebra/Category/MonCat/Basic.lean Modified Mathlib/AlgebraicGeometry/Morphisms/Basic.lean Modified Mathlib/Geometry/RingedSpace/Basic.lean Modified Mathlib/Order/Category/NonemptyFinLinOrd.lean 2024-02-17 22:20:59 28bbcdd chore(Data/Polynomial/Degree/TrailingDegree): some basic api lemmas (#10657) ESTIMATED CHANGES Modified Mathlib/Data/Polynomial/Degree/TrailingDegree.lean + theorem Polynomial.Monic.eq_X_pow_of_natTrailingDegree_eq_natDegree + theorem Polynomial.natTrailingDegree_X_pow + theorem Polynomial.natTrailingDegree_eq_zero_of_constantCoeff_ne_zero + theorem Polynomial.trailingDegree_X_pow 2024-02-17 20:32:13 e58bf58 feat: add monic_X_pow_add_C (#10643) ESTIMATED CHANGES Modified Mathlib/Data/Polynomial/Monic.lean + theorem Polynomial.monic_X_pow_add_C 2024-02-17 18:52:50 5e53cc1 Convolution of measures (#9372) Add definition of convolution of measures on monoids. Add commutativity of convolution if the monoid is commutative. Add convolution of measures is finite if both measures are finite. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/MeasureTheory/Group/Convolution.lean + theorem MeasureTheory.Measure.add_mconv + theorem MeasureTheory.Measure.dirac_one_mconv + theorem MeasureTheory.Measure.mconv_add + theorem MeasureTheory.Measure.mconv_comm + theorem MeasureTheory.Measure.mconv_dirac_one + theorem MeasureTheory.Measure.mconv_zero + theorem MeasureTheory.Measure.zero_mconv 2024-02-17 16:56:55 996ae39 chore(Topology): `Inhabited` -> `Nonempty` (#10647) ESTIMATED CHANGES Modified Mathlib/Topology/MetricSpace/GromovHausdorffRealized.lean +/- def GromovHausdorff.candidatesBDist Modified Mathlib/Topology/Sheaves/SheafCondition/OpensLeCover.lean 2024-02-17 16:56:54 5a7ae92 feat: add `@[fun_prop]` to `continuous_{im,re,ofReal}` (#10624) ESTIMATED CHANGES Modified Mathlib/Analysis/Complex/Basic.lean Modified Mathlib/Data/IsROrC/Basic.lean 2024-02-17 16:15:31 fd9854c feat(CategoryTheory): equivalences of categories preserve effective epis (#10421) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Equivalence.lean Modified Mathlib/CategoryTheory/Sites/EffectiveEpimorphic.lean + def CategoryTheory.effectiveEpiFamilyStructCompIso + theorem CategoryTheory.effectiveEpiFamilyStructCompIso_aux + def CategoryTheory.effectiveEpiFamilyStructIsoComp + theorem CategoryTheory.effectiveEpiFamilyStructIsoComp_aux + def CategoryTheory.effectiveEpiFamilyStructOfEquivalence + theorem CategoryTheory.effectiveEpiFamilyStructOfEquivalence_aux 2024-02-17 15:25:07 2ef6133 chore(LinearAlgebra): Introduce a `LinearMap.BilinForm` alias (#10632) This is one of the steps in #10553. Once we eliminate `_root_.BilinForm`, we can drop the `LinearMap.` prefix. Requested on Zulip [by me](https://leanprover.zulipchat.com/#narrow/stream/116395-maths/topic/Bounded.20bilinear.20forms/near/261981962) (2021), [by @kmill](https://leanprover.zulipchat.com/#narrow/stream/116395-maths/topic/.60bilinear_form.60/near/310675731) (2022), and perhaps one or two other places. ESTIMATED CHANGES Modified Mathlib/Algebra/Lie/Killing.lean Modified Mathlib/Algebra/Module/Submodule/Bilinear.lean Modified Mathlib/LinearAlgebra/BilinearMap.lean Modified Mathlib/LinearAlgebra/QuadraticForm/Basic.lean +/- def LinearMap.toQuadraticForm +/- theorem QuadraticForm.exists_companion +/- def QuadraticForm.polarLinearMap₂ Modified Mathlib/LinearAlgebra/SesquilinearForm.lean +/- theorem LinearMap.isSymm_iff_eq_flip 2024-02-17 14:51:26 778c315 feat: Lévy-Prokhorov distance (#8719) This PR adds the Lévy-Prokhorov distance on the space of finite measures on an emetric space, and shows that it is a pseudoemetric. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/MeasureTheory/Measure/LevyProkhorovMetric.lean + def MeasureTheory.LevyProkhorov + theorem MeasureTheory.left_measure_le_of_levyProkhorovEDist_lt + theorem MeasureTheory.levyProkhorovDist_comm + theorem MeasureTheory.levyProkhorovDist_self + theorem MeasureTheory.levyProkhorovDist_triangle + theorem MeasureTheory.levyProkhorovEDist_comm + theorem MeasureTheory.levyProkhorovEDist_le_max_measure_univ + theorem MeasureTheory.levyProkhorovEDist_le_of_forall + theorem MeasureTheory.levyProkhorovEDist_le_of_forall_add_pos_le + theorem MeasureTheory.levyProkhorovEDist_lt_top + theorem MeasureTheory.levyProkhorovEDist_self + theorem MeasureTheory.levyProkhorovEDist_triangle + theorem MeasureTheory.meas_le_of_le_of_forall_le_meas_thickening_add + theorem MeasureTheory.right_measure_le_of_levyProkhorovEDist_lt 2024-02-17 12:31:36 4c32db7 chore(Algebra/Category): resolve porting notes `was not necessary in mathlib` (#10646) In this case https://github.com/leanprover-community/mathlib4/blob/4b36afcf085586739aa4e59d507a7d01d9a2dbbf/Mathlib/Algebra/Category/GroupWithZeroCat.lean#L55-L62 and this case https://github.com/leanprover-community/mathlib4/blob/4b36afcf085586739aa4e59d507a7d01d9a2dbbf/Mathlib/Algebra/Category/GroupWithZeroCat.lean#L92-L94 `was not necessary in mathlib` seems to mean that Lean 4 does less work to see through definitional equalities when looking for instances. I've commented the first instance out and it seems to be really needed since it returns errors, while the second one doesn't give any error when commented out. In this PR I've removed the porting note comment for the first instance and removed the whole second instance. Here is the associated comment on Zulip: https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/Addressing.20porting.20notes.3F/near/421930836. ESTIMATED CHANGES Modified Mathlib/Algebra/Category/GroupWithZeroCat.lean 2024-02-17 09:43:57 d02cf66 feat: Conjugate exponents in `ℝ≥0` (#10589) It happens often that we have `p q : ℝ≥0` that are conjugate. So far, we only had a predicate for real numbers to be conjugate, which made dealing with `ℝ≥0` conjugates clumsy. This PR * introduces `NNReal.IsConjExponent`, `NNReal.conjExponent` * renames `Real.IsConjugateExponent`, `Real.conjugateExponent` to `Real.IsConjExponent`, `Real.conjExponent` * renames a few more lemmas to match up the `Real` and `NNReal` versions From LeanAPAP ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Analysis/InnerProductSpace/l2Space.lean Modified Mathlib/Analysis/MeanInequalities.lean +/- theorem ENNReal.inner_le_Lp_mul_Lq +/- theorem ENNReal.young_inequality +/- theorem NNReal.inner_le_Lp_mul_Lq +/- theorem NNReal.inner_le_Lp_mul_Lq_tsum' +/- theorem NNReal.inner_le_Lp_mul_Lq_tsum +/- theorem NNReal.isGreatest_Lp +/- theorem NNReal.summable_mul_of_Lp_Lq +/- theorem NNReal.young_inequality +/- theorem NNReal.young_inequality_real +/- theorem Real.inner_le_Lp_mul_Lq +/- theorem Real.inner_le_Lp_mul_Lq_hasSum_of_nonneg +/- theorem Real.inner_le_Lp_mul_Lq_of_nonneg +/- theorem Real.inner_le_Lp_mul_Lq_tsum_of_nonneg' +/- theorem Real.inner_le_Lp_mul_Lq_tsum_of_nonneg +/- theorem Real.summable_mul_of_Lp_Lq_of_nonneg +/- theorem Real.young_inequality Modified Mathlib/Analysis/NormedSpace/lpSpace.lean Modified Mathlib/Analysis/SpecialFunctions/Gamma/BohrMollerup.lean Added Mathlib/Data/Real/ConjExponents.lean + theorem NNReal.IsConjExponent.conjExponent_eq + theorem NNReal.IsConjExponent.conj_eq + theorem NNReal.IsConjExponent.div_conj_eq_sub_one + theorem NNReal.IsConjExponent.inv_add_inv_conj_ennreal + theorem NNReal.IsConjExponent.inv_ne_zero + theorem NNReal.IsConjExponent.inv_one_sub_inv + theorem NNReal.IsConjExponent.inv_pos + theorem NNReal.IsConjExponent.mul_eq_add + theorem NNReal.IsConjExponent.ne_zero + theorem NNReal.IsConjExponent.one_le + theorem NNReal.IsConjExponent.one_sub_inv + theorem NNReal.IsConjExponent.one_sub_inv_inv + theorem NNReal.IsConjExponent.pos + theorem NNReal.IsConjExponent.sub_one_mul_conj + theorem NNReal.IsConjExponent.sub_one_ne_zero + theorem NNReal.IsConjExponent.sub_one_pos + structure NNReal.IsConjExponent + theorem NNReal.isConjExponent_coe + theorem NNReal.isConjExponent_iff_eq_conjExponent + theorem Real.IsConjExponent.conjExponent + theorem Real.IsConjExponent.conjExponent_eq + theorem Real.IsConjExponent.conj_eq + theorem Real.IsConjExponent.div_conj_eq_sub_one + theorem Real.IsConjExponent.inv_add_inv_conj_ennreal + theorem Real.IsConjExponent.inv_one_sub_inv + theorem Real.IsConjExponent.inv_sub_one + theorem Real.IsConjExponent.mul_eq_add + theorem Real.IsConjExponent.ne_zero + theorem Real.IsConjExponent.nonneg + theorem Real.IsConjExponent.one_div_ne_zero + theorem Real.IsConjExponent.one_div_nonneg + theorem Real.IsConjExponent.one_div_pos + theorem Real.IsConjExponent.one_sub_inv + theorem Real.IsConjExponent.one_sub_inv_inv + theorem Real.IsConjExponent.pos + theorem Real.IsConjExponent.sub_one_mul_conj + theorem Real.IsConjExponent.sub_one_ne_zero + theorem Real.IsConjExponent.sub_one_pos + structure Real.IsConjExponent + def Real.conjExponent + theorem Real.isConjExponent_iff_eq_conjExponent + theorem Real.isConjExponent_one_div Deleted Mathlib/Data/Real/ConjugateExponents.lean - theorem Real.IsConjugateExponent.conj_eq - theorem Real.IsConjugateExponent.conjugate_eq - theorem Real.IsConjugateExponent.div_conj_eq_sub_one - theorem Real.IsConjugateExponent.inv_add_inv_conj_ennreal - theorem Real.IsConjugateExponent.inv_add_inv_conj_nnreal - theorem Real.IsConjugateExponent.mul_eq_add - theorem Real.IsConjugateExponent.ne_zero - theorem Real.IsConjugateExponent.nonneg - theorem Real.IsConjugateExponent.one_div_ne_zero - theorem Real.IsConjugateExponent.one_div_nonneg - theorem Real.IsConjugateExponent.one_div_pos - theorem Real.IsConjugateExponent.one_lt_nnreal - theorem Real.IsConjugateExponent.pos - theorem Real.IsConjugateExponent.sub_one_mul_conj - theorem Real.IsConjugateExponent.sub_one_ne_zero - theorem Real.IsConjugateExponent.sub_one_pos - structure Real.IsConjugateExponent - def Real.conjugateExponent - theorem Real.isConjugateExponent_conjugateExponent - theorem Real.isConjugateExponent_iff - theorem Real.isConjugateExponent_inv - theorem Real.isConjugateExponent_one_div Modified Mathlib/MeasureTheory/Integral/Bochner.lean +/- theorem MeasureTheory.integral_mul_le_Lp_mul_Lq_of_nonneg Modified Mathlib/MeasureTheory/Integral/MeanInequalities.lean +/- theorem ENNReal.lintegral_mul_le_Lp_mul_Lq +/- theorem ENNReal.lintegral_mul_le_Lp_mul_Lq_of_ne_zero_of_ne_top +/- theorem ENNReal.lintegral_mul_le_one_of_lintegral_rpow_eq_one +/- theorem NNReal.lintegral_mul_le_Lp_mul_Lq Modified Mathlib/NumberTheory/Rayleigh.lean +/- theorem beattySeq'_symmDiff_beattySeq_pos +/- theorem beattySeq_symmDiff_beattySeq'_pos +/- theorem compl_beattySeq' +/- theorem compl_beattySeq 2024-02-17 03:41:20 1a7456e feat: several results about Monoid.Exponent (#9975) ESTIMATED CHANGES Modified Mathlib/GroupTheory/Exponent.lean + theorem Commute.of_orderOf_dvd_two + theorem Group.exponent_dvd_card + theorem Group.exponent_dvd_nat_card +/- theorem Group.one_lt_exponent + theorem Monoid.ExponentExists.isOfFinOrder + theorem Monoid.ExponentExists.of_finite + theorem Monoid.ExponentExists.orderOf_pos + theorem Monoid.exists_orderOf_eq_exponent +/- theorem Monoid.exponentExists_iff_ne_zero + theorem Monoid.exponent_dvd + theorem Monoid.exponent_dvd_iff_forall_pow_eq_one + theorem Monoid.exponent_dvd_of_forall_orderOf_dvd - theorem Monoid.exponent_dvd_of_forall_pow_eq_one +/- theorem Monoid.exponent_eq_zero_iff + theorem Monoid.exponent_ne_zero +/- theorem Monoid.exponent_ne_zero_of_finite + theorem Monoid.exponent_pos + theorem Monoid.lcm_orderOf_eq_exponent - theorem Monoid.lcm_order_eq_exponent + theorem Monoid.orderOf_le_exponent + def commMonoidOfExponentTwo + def instCommGroupOfExponentTwo + theorem inv_eq_self_of_exponent_two + theorem inv_eq_self_of_orderOf_eq_two + theorem mul_comm_of_exponent_two + theorem mul_not_mem_of_exponent_two + theorem mul_not_mem_of_orderOf_eq_two + theorem orderOf_eq_two_iff Modified Mathlib/GroupTheory/SpecificGroups/Cyclic.lean Modified Mathlib/GroupTheory/SpecificGroups/KleinFour.lean - def instCommGroupOfExponentTwo - theorem inv_eq_self_of_exponent_two - theorem inv_eq_self_of_orderOf_eq_two - theorem mul_comm_of_exponent_two - theorem mul_not_mem_of_exponent_two - theorem mul_not_mem_of_orderOf_eq_two - theorem orderOf_eq_two_iff Modified Mathlib/GroupTheory/Torsion.lean 2024-02-17 03:12:26 77ef919 chore(Algebra/TrivSqZeroExt): use `open scoped RightActions` (#10546) One lemma statement has changed (up to associativity). This is one of the more compelling justifications for #8909. ESTIMATED CHANGES Modified Mathlib/Algebra/TrivSqZeroExt.lean + theorem TrivSqZeroExt.snd_pow_of_smul_comm' 2024-02-16 21:36:47 0934277 Refactor(Mathlib/CategoryTheory/Monoidal/Opposite): Make MonoidalOpposite a structure (#10642) Refactor `MonoidalOpposite` into a structure for consistency with `Opposite`. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Monoidal/Opposite.lean +/- def CategoryTheory.Iso.mop +/- def CategoryTheory.Iso.unmop - def CategoryTheory.MonoidalOpposite.mop + def CategoryTheory.MonoidalOpposite.mopEquiv +/- def CategoryTheory.MonoidalOpposite.mopMopEquivalence +/- theorem CategoryTheory.MonoidalOpposite.mop_inj_iff +/- theorem CategoryTheory.MonoidalOpposite.mop_injective +/- theorem CategoryTheory.MonoidalOpposite.mop_unmop - def CategoryTheory.MonoidalOpposite.underlyingEquiv - def CategoryTheory.MonoidalOpposite.unmop + def CategoryTheory.MonoidalOpposite.unmopEquiv +/- theorem CategoryTheory.MonoidalOpposite.unmop_inj_iff +/- theorem CategoryTheory.MonoidalOpposite.unmop_mop + structure CategoryTheory.MonoidalOpposite - def CategoryTheory.MonoidalOpposite +/- def CategoryTheory.mopFunctor +/- theorem CategoryTheory.mop_comp +/- theorem CategoryTheory.mop_id +/- theorem CategoryTheory.mop_id_unmop +/- def CategoryTheory.unmopFunctor +/- theorem CategoryTheory.unmop_comp +/- theorem CategoryTheory.unmop_id +/- theorem CategoryTheory.unmop_id_mop +/- def Quiver.Hom.mop +/- def Quiver.Hom.unmop 2024-02-16 20:10:26 5644b99 chore(Topology/DenseEmbedding): minimize open statements (#10636) Salvaged from #9981. ESTIMATED CHANGES Modified Mathlib/Topology/DenseEmbedding.lean 2024-02-16 19:21:15 5634936 Feat: Add Yang-Baxter equation and the opposite braided monoidal category (#10415) This PR adds some basics about monoidal opposite categories and their relation to the original category, as well as the Yang-Baxter equation for braided monoidal categories. It should be easy to define an action of the braid group on an object of a braided monoidal category from this. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/CommSq.lean + theorem CategoryTheory.CommSq.vert_inv Modified Mathlib/CategoryTheory/Monoidal/Braided.lean + theorem CategoryTheory.BraidedCategory.braiding_inv_naturality + theorem CategoryTheory.BraidedCategory.braiding_inv_naturality_left + theorem CategoryTheory.BraidedCategory.braiding_inv_naturality_right + theorem CategoryTheory.BraidedCategory.hexagon_forward_inv + theorem CategoryTheory.BraidedCategory.hexagon_forward_iso + theorem CategoryTheory.BraidedCategory.hexagon_reverse_inv + theorem CategoryTheory.BraidedCategory.hexagon_reverse_iso + theorem CategoryTheory.BraidedCategory.yang_baxter' + theorem CategoryTheory.BraidedCategory.yang_baxter + theorem CategoryTheory.BraidedCategory.yang_baxter_iso + def CategoryTheory.MonoidalOpposite.mopBraidedFunctor + theorem CategoryTheory.MonoidalOpposite.mop_braiding + theorem CategoryTheory.MonoidalOpposite.mop_hom_braiding + theorem CategoryTheory.MonoidalOpposite.mop_inv_braiding + def CategoryTheory.MonoidalOpposite.unmopBraidedFunctor + theorem CategoryTheory.MonoidalOpposite.unmop_braiding + theorem CategoryTheory.MonoidalOpposite.unmop_hom_braiding + theorem CategoryTheory.MonoidalOpposite.unmop_inv_braiding + theorem CategoryTheory.SymmetricCategory.braiding_swap_eq_inv_braiding + def CategoryTheory.SymmetricCategory.equivReverseBraiding + theorem CategoryTheory.SymmetricCategory.reverseBraiding_eq + theorem CategoryTheory.op_braiding + theorem CategoryTheory.op_hom_braiding + theorem CategoryTheory.op_inv_braiding + def CategoryTheory.reverseBraiding + theorem CategoryTheory.unop_braiding + theorem CategoryTheory.unop_hom_braiding + theorem CategoryTheory.unop_inv_braiding Modified Mathlib/CategoryTheory/Monoidal/Category.lean + theorem CategoryTheory.MonoidalCategory.whiskerLeftIso_refl + theorem CategoryTheory.MonoidalCategory.whiskerLeftIso_symm + theorem CategoryTheory.MonoidalCategory.whiskerLeftIso_trans + theorem CategoryTheory.MonoidalCategory.whiskerRightIso_refl + theorem CategoryTheory.MonoidalCategory.whiskerRightIso_symm + theorem CategoryTheory.MonoidalCategory.whiskerRightIso_trans Modified Mathlib/CategoryTheory/Monoidal/Opposite.lean +/- def CategoryTheory.Iso.mop + def CategoryTheory.Iso.unmop + def CategoryTheory.MonoidalOpposite.mopMopEquivalence + theorem CategoryTheory.MonoidalOpposite.mop_inj_iff + theorem CategoryTheory.MonoidalOpposite.mop_injective - theorem CategoryTheory.MonoidalOpposite.op_inj_iff - theorem CategoryTheory.MonoidalOpposite.op_injective + def CategoryTheory.MonoidalOpposite.tensorIso + def CategoryTheory.MonoidalOpposite.tensorLeftIso + def CategoryTheory.MonoidalOpposite.tensorLeftMopIso + def CategoryTheory.MonoidalOpposite.tensorLeftUnmopIso + def CategoryTheory.MonoidalOpposite.tensorRightIso + def CategoryTheory.MonoidalOpposite.tensorRightMopIso + def CategoryTheory.MonoidalOpposite.tensorRightUnmopIso + def CategoryTheory.MonoidalOpposite.underlyingEquiv + theorem CategoryTheory.MonoidalOpposite.unmop_inj_iff + theorem CategoryTheory.MonoidalOpposite.unmop_injective - theorem CategoryTheory.MonoidalOpposite.unop_inj_iff - theorem CategoryTheory.MonoidalOpposite.unop_injective + def CategoryTheory.mopFunctor + theorem CategoryTheory.mop_associator + theorem CategoryTheory.mop_hom_associator + theorem CategoryTheory.mop_hom_leftUnitor + theorem CategoryTheory.mop_hom_rightUnitor - theorem CategoryTheory.mop_inj + theorem CategoryTheory.mop_inv_associator + theorem CategoryTheory.mop_inv_leftUnitor + theorem CategoryTheory.mop_inv_rightUnitor + theorem CategoryTheory.mop_leftUnitor + theorem CategoryTheory.mop_rightUnitor + theorem CategoryTheory.mop_tensorHom +/- theorem CategoryTheory.mop_tensorObj +/- theorem CategoryTheory.mop_tensorUnit - theorem CategoryTheory.mop_unmop + theorem CategoryTheory.mop_whiskerLeft + theorem CategoryTheory.mop_whiskerRight + theorem CategoryTheory.op_associator + theorem CategoryTheory.op_hom_associator + theorem CategoryTheory.op_hom_leftUnitor + theorem CategoryTheory.op_hom_rightUnitor + theorem CategoryTheory.op_inv_associator + theorem CategoryTheory.op_inv_leftUnitor + theorem CategoryTheory.op_inv_rightUnitor + theorem CategoryTheory.op_leftUnitor + theorem CategoryTheory.op_rightUnitor + theorem CategoryTheory.op_tensorHom +/- theorem CategoryTheory.op_tensorObj +/- theorem CategoryTheory.op_tensorUnit + theorem CategoryTheory.op_whiskerLeft + theorem CategoryTheory.op_whiskerRight + def CategoryTheory.unmopFunctor + theorem CategoryTheory.unmop_associator + theorem CategoryTheory.unmop_hom_associator + theorem CategoryTheory.unmop_hom_leftUnitor + theorem CategoryTheory.unmop_hom_rightUnitor - theorem CategoryTheory.unmop_inj + theorem CategoryTheory.unmop_inv_associator + theorem CategoryTheory.unmop_inv_leftUnitor + theorem CategoryTheory.unmop_inv_rightUnitor + theorem CategoryTheory.unmop_leftUnitor - theorem CategoryTheory.unmop_mop + theorem CategoryTheory.unmop_rightUnitor + theorem CategoryTheory.unmop_tensorHom + theorem CategoryTheory.unmop_tensorObj + theorem CategoryTheory.unmop_tensorUnit + theorem CategoryTheory.unmop_whiskerLeft + theorem CategoryTheory.unmop_whiskerRight + theorem CategoryTheory.unop_associator + theorem CategoryTheory.unop_hom_associator + theorem CategoryTheory.unop_hom_leftUnitor + theorem CategoryTheory.unop_hom_rightUnitor + theorem CategoryTheory.unop_inv_associator + theorem CategoryTheory.unop_inv_leftUnitor + theorem CategoryTheory.unop_inv_rightUnitor + theorem CategoryTheory.unop_leftUnitor + theorem CategoryTheory.unop_rightUnitor + theorem CategoryTheory.unop_tensorHom + theorem CategoryTheory.unop_tensorObj + theorem CategoryTheory.unop_tensorUnit + theorem CategoryTheory.unop_whiskerLeft + theorem CategoryTheory.unop_whiskerRight + theorem Quiver.Hom.mop_inj + theorem Quiver.Hom.mop_unmop + theorem Quiver.Hom.unmop_inj + theorem Quiver.Hom.unmop_mop Modified docs/references.bib 2024-02-16 17:31:44 29c27c3 feat(LinearAlgebra/{ExteriorAlgebra,CliffordAlgebra}): Functoriality of the exterior algebra and some lemmas about generation (#9718) This does a few things: - Define the algebra morphism `TrivSqZeroExt.map f` between trivial square-zero extensions induced by a linear map`f`, and establish some of its basic properties (functoriality, composition with the basic maps to/from `TrivSqZeroExt`). Note that we only consider the case of a commutative base ring, because the case of a general base ring requires morphisms of bimodules, which we do not have. - Define the algebra morphism `ExteriorAlgebra.map f` between exterior algebras induced by a linear map `f`. This is a straightforward application of the similar construction for Clifford algebras, but I think it is still useful to have. Basic properties of this construction are proved: functoriality, composition with `ExteriorAlgebra.ι`, `ExteriorAlgebra.ιInv` (this part uses the first point) and `ExteriorAlgebra.ιMulti`. Then exactness properties of the construction is studied: - If the linear map is surjective, then the map on exterior algebras is also surjective. This actually holds for Clifford algebras, so I added a lemma called `CliffordAlgebra.map_surjective` in `LinearAlgebra/CliffordAlgebra/Basic.lean`. For exterior algebras, the converse holds and is also proved. - If the linear map has a retraction, then the map on exterior algebras is injective. So if the base ring is a field, the map on exterior algebras is injective if the linear map is injective. - Establish some properties of `ExteriorAlgebra.ιMulti`: - `ExteriorAlgebra.ιMulti_range`: The range of `ιMulti R n` is contained in the `n`th exterior power (define here as `LinearMap.range (ι R : M →ₗ[R] ExteriorAlgebra R M) ^ n`). - `ExteriorAlgebra.ιMulti_span_fixedDegree`: This range spans the `n`th exterior power. - `ExteriorAlgebra.ιMulti_span`: The union over all `n` of the range of `ιMulti R n` spans the whole exterior algebra (this is in `LinearAlgebra/ExteriorAlgebra/Grading.lean` because the proof uses the graded module structure, but it might be possible to do something simpler). - Construct `ExteriorAlgebra.ιMulti_family`: This takes a natural number `n` and a family of vectors `v` indexed by a linearly ordered type `I`, and it returns the family of `n`-fold products of the `v i` in the exterior algebra, indexed by the set of finsets of `I` of cardinality `n`. (The point, to be proved in another PR, is that when `v` is a basis, then `ExteriorAlgebra.ιMulti_family R n v` is a basis of the `n`th exterior power.) ESTIMATED CHANGES Modified Mathlib/Algebra/TrivSqZeroExt.lean + theorem TrivSqZeroExt.fstHom_comp_map + theorem TrivSqZeroExt.fst_map + theorem TrivSqZeroExt.lift_def + def TrivSqZeroExt.map + theorem TrivSqZeroExt.map_comp_inlAlgHom + theorem TrivSqZeroExt.map_comp_inrHom + theorem TrivSqZeroExt.map_comp_map + theorem TrivSqZeroExt.map_id + theorem TrivSqZeroExt.map_inl + theorem TrivSqZeroExt.map_inr + theorem TrivSqZeroExt.sndHom_comp_map + theorem TrivSqZeroExt.snd_map Modified Mathlib/LinearAlgebra/CliffordAlgebra/Basic.lean + theorem CliffordAlgebra.leftInverse_map_of_leftInverse + theorem CliffordAlgebra.map_surjective Modified Mathlib/LinearAlgebra/ExteriorAlgebra/Basic.lean + theorem ExteriorAlgebra.leftInverse_map_iff + def ExteriorAlgebra.map + theorem ExteriorAlgebra.map_apply_ι + theorem ExteriorAlgebra.map_apply_ιMulti + theorem ExteriorAlgebra.map_comp_map + theorem ExteriorAlgebra.map_comp_ι + theorem ExteriorAlgebra.map_comp_ιMulti + theorem ExteriorAlgebra.map_id + theorem ExteriorAlgebra.map_injective + theorem ExteriorAlgebra.map_injective_field + theorem ExteriorAlgebra.map_surjective_iff + theorem ExteriorAlgebra.toTrivSqZeroExt_comp_map + theorem ExteriorAlgebra.ιInv_comp_map + theorem ExteriorAlgebra.ιMulti_range + theorem ExteriorAlgebra.ιMulti_span_fixedDegree +/- theorem ExteriorAlgebra.ι_leftInverse + theorem ExteriorAlgebra.ι_range_map_map Modified Mathlib/LinearAlgebra/ExteriorAlgebra/Grading.lean + theorem ExteriorAlgebra.ιMulti_span 2024-02-16 16:23:21 cf6053d bug (Mathlib.Data.Finset.Sym) : suppress global variable (m : Sym alpha n) (#10637) A global `variable {m : Sym α n}` was present in `Mathlib.Data.Finset.Sym` with the very unfortunate effect that docs#Finset.sym_eq_empty was using it : ``` theorem Finset.sym_eq_empty {α : Type u_1} [DecidableEq α] {s : Finset α} {n : ℕ} {m : Sym α n} : Finset.sym s n = ∅ ↔ n ≠ 0 ∧ s = ∅ ``` thus making it impossible to use to prove its goal. The line is modified, added in a few functions when needed. ESTIMATED CHANGES Modified Mathlib/Data/Finset/Sym.lean +/- theorem Finset.mem_sym_iff +/- theorem Finset.sym_filterNe_mem 2024-02-16 14:44:36 2d36cb1 feat : refactor `IsUniform` through uniformMeasure (#10456) Refactor the definitions and proofs of IsUniform through the new `uniformMeasure`, which abstracts away from the need of a random variable and probability space. A future PR can refactor the PMF parts in terms of a `uniformMeasure`. This was #10141, which was split into a small PR to move the results (merged) and this one. ESTIMATED CHANGES Modified Mathlib/Probability/ConditionalProbability.lean + theorem ProbabilityTheory.cond_absolutelyContinuous + theorem ProbabilityTheory.cond_apply' + theorem ProbabilityTheory.cond_isProbabilityMeasure_of_finite + theorem ProbabilityTheory.cond_toMeasurable_eq Modified Mathlib/Probability/Distributions/Uniform.lean + theorem MeasureTheory.pdf.IsUniform.cond +/- def MeasureTheory.pdf.IsUniform + def MeasureTheory.pdf.uniformPDF + theorem MeasureTheory.pdf.uniformPDF_eq_pdf + theorem MeasureTheory.pdf.uniformPDF_ite 2024-02-16 14:44:34 a2f4883 fix(TopologicalSpace/Basic): restore curly braces in `continuous_def` (#10110) These were placed on purpose; reverting them caused breakage downstream. ESTIMATED CHANGES Modified Mathlib/Topology/Basic.lean +/- theorem continuous_def 2024-02-16 13:14:42 e554fa5 feat: Add `Real.pi_nonneg = Real.pi_pos.le` (#10596) I think if `Real.exp_nonneg` exists as a separate lemma, `Real.pi_nonneg` is reasonable. And it's useful as a separate lemma for Aesop purposes too. ESTIMATED CHANGES Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Basic.lean + theorem Real.pi_nonneg 2024-02-16 11:14:11 b6bc497 ci: properly check cache (#9933) Currently, the cache is locally existing in the runner, so the step that checks the cache trivially succeeds. This should stop any future silent cache failures. ESTIMATED CHANGES Modified .github/workflows/bors.yml Modified .github/workflows/build.yml Modified .github/workflows/build.yml.in Modified .github/workflows/build_fork.yml 2024-02-16 10:21:51 4bb195e feat: A result on composition of lift of MonoidLocalization (#10373) Added a result on composition of lift of the localization map on Monoids. Modified some cases'. ESTIMATED CHANGES Modified Mathlib/GroupTheory/MonoidLocalization.lean + theorem Submonoid.LocalizationMap.lift_comp_lift + theorem Submonoid.LocalizationMap.lift_comp_lift_eq 2024-02-16 07:59:15 369f8d7 chore: move DiscreteTopology.secondCountableTopology_of_countable (#10615) Implement a porting note to move this instance to a much more natural file. ESTIMATED CHANGES Modified Mathlib/Probability/Martingale/OptionalSampling.lean Modified Mathlib/Topology/Instances/Discrete.lean 2024-02-16 07:26:04 49755ec feat : add that a Sigma-compact space is Lindelöf (#10601) Add a small result: sigma-compact spaces are Lindelöf. ESTIMATED CHANGES Modified Mathlib/Topology/Compactness/Lindelof.lean + theorem IsSigmaCompact.isLindelof 2024-02-16 05:21:09 3660a8f refactor: prefer `s ∩ .` when passing to a subset of `s` (#10433) This is partial work to make `s ∩ .` be consistently used for passing to a subset of `s`. This is sort of an adjoint to `(Subtype.val : s -> _) '' .`, except for the fact that it does not produce a `Set s`. The main API changes are to `Subtype.image_preimage_val` and `Subtype.preimage_val_eq_preimage_val_iff` in `Mathlib.Data.Set.Image`. Changes in other modules are all proof fixups. [Zulip discussion](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/Passing.20to.20subsets.20of.20a.20subspace/near/420917406) ESTIMATED CHANGES Modified Mathlib/Analysis/InnerProductSpace/Projection.lean Modified Mathlib/Data/Set/Image.lean +/- theorem Set.image_preimage_eq_inter_range + theorem Set.image_preimage_eq_range_inter +/- theorem Subtype.image_preimage_coe +/- theorem Subtype.image_preimage_val + theorem Subtype.preimage_coe_self_inter Modified Mathlib/Data/Set/Intervals/Image.lean Modified Mathlib/Geometry/Manifold/IntegralCurve.lean Modified Mathlib/GroupTheory/Subgroup/Basic.lean Modified Mathlib/MeasureTheory/Constructions/Polish.lean Modified Mathlib/MeasureTheory/MeasurableSpace/Basic.lean Modified Mathlib/MeasureTheory/Measure/AEMeasurable.lean Modified Mathlib/MeasureTheory/Measure/OuterMeasure.lean Modified Mathlib/MeasureTheory/Measure/Restrict.lean Modified Mathlib/RingTheory/GradedAlgebra/HomogeneousIdeal.lean Modified Mathlib/Topology/Connected/Basic.lean Modified Mathlib/Topology/Constructions.lean Modified Mathlib/Topology/ContinuousOn.lean Modified Mathlib/Topology/Separation.lean Modified Mathlib/Topology/Sober.lean 2024-02-16 04:51:10 e4037a3 chore: Split HahnSeries file (#10595) The HahnSeries file is approaching 2000 lines, and I was hoping to add some more material on Hahn series in the near future. This PR splits the material roughly according to what structure we see in the coefficients: `Basic` assumes that the coefficient type `R` has zero, `Addition` assumes addition, `Multiplication` more or less assumes some multiplicative structure. ESTIMATED CHANGES Modified Mathlib.lean Deleted Mathlib/RingTheory/HahnSeries.lean - theorem HahnModule.ext - def HahnModule.of - theorem HahnModule.of_add - theorem HahnModule.of_symm_add - theorem HahnModule.of_symm_zero - theorem HahnModule.of_zero - def HahnModule.rec - theorem HahnModule.smul_coeff - theorem HahnModule.smul_coeff_left - theorem HahnModule.smul_coeff_right - def HahnModule - def HahnSeries.C - theorem HahnSeries.C_eq_algebraMap - theorem HahnSeries.C_injective - theorem HahnSeries.C_mul_eq_smul - theorem HahnSeries.C_ne_zero - theorem HahnSeries.C_one - theorem HahnSeries.C_zero - theorem HahnSeries.SummableFamily.add_apply - theorem HahnSeries.SummableFamily.coe_add - theorem HahnSeries.SummableFamily.coe_injective - theorem HahnSeries.SummableFamily.coe_neg - theorem HahnSeries.SummableFamily.coe_ofFinsupp - theorem HahnSeries.SummableFamily.coe_powers - theorem HahnSeries.SummableFamily.coe_sub - theorem HahnSeries.SummableFamily.coe_zero - def HahnSeries.SummableFamily.embDomain - theorem HahnSeries.SummableFamily.embDomain_apply - theorem HahnSeries.SummableFamily.embDomain_image - theorem HahnSeries.SummableFamily.embDomain_notin_range - theorem HahnSeries.SummableFamily.embDomain_succ_smul_powers - theorem HahnSeries.SummableFamily.ext - theorem HahnSeries.SummableFamily.finite_co_support - def HahnSeries.SummableFamily.hsum - theorem HahnSeries.SummableFamily.hsum_add - theorem HahnSeries.SummableFamily.hsum_coeff - theorem HahnSeries.SummableFamily.hsum_embDomain - theorem HahnSeries.SummableFamily.hsum_ofFinsupp - theorem HahnSeries.SummableFamily.hsum_smul - theorem HahnSeries.SummableFamily.hsum_sub - theorem HahnSeries.SummableFamily.isPWO_iUnion_support - def HahnSeries.SummableFamily.lsum - theorem HahnSeries.SummableFamily.neg_apply - def HahnSeries.SummableFamily.ofFinsupp - theorem HahnSeries.SummableFamily.one_sub_self_mul_hsum_powers - def HahnSeries.SummableFamily.powers - theorem HahnSeries.SummableFamily.smul_apply - theorem HahnSeries.SummableFamily.sub_apply - theorem HahnSeries.SummableFamily.support_hsum_subset - theorem HahnSeries.SummableFamily.zero_apply - structure HahnSeries.SummableFamily - def HahnSeries.addVal - theorem HahnSeries.addVal_apply - theorem HahnSeries.addVal_apply_of_ne - theorem HahnSeries.addVal_le_of_coeff_ne_zero - theorem HahnSeries.add_coeff' - theorem HahnSeries.add_coeff - theorem HahnSeries.algebraMap_apply' - theorem HahnSeries.algebraMap_apply - def HahnSeries.coeff.addMonoidHom - def HahnSeries.coeff.linearMap - theorem HahnSeries.coeff_eq_zero_of_lt_order - theorem HahnSeries.coeff_fun_eq_zero_iff - theorem HahnSeries.coeff_inj - theorem HahnSeries.coeff_injective - theorem HahnSeries.coeff_order_ne_zero - theorem HahnSeries.coeff_toMvPowerSeries - theorem HahnSeries.coeff_toMvPowerSeries_symm - theorem HahnSeries.coeff_toPowerSeries - theorem HahnSeries.coeff_toPowerSeries_symm - def HahnSeries.embDomain - def HahnSeries.embDomainAlgHom - def HahnSeries.embDomainLinearMap - def HahnSeries.embDomainRingHom - theorem HahnSeries.embDomainRingHom_C - theorem HahnSeries.embDomain_add - theorem HahnSeries.embDomain_coeff - theorem HahnSeries.embDomain_injective - theorem HahnSeries.embDomain_mk_coeff - theorem HahnSeries.embDomain_mul - theorem HahnSeries.embDomain_notin_image_support - theorem HahnSeries.embDomain_notin_range - theorem HahnSeries.embDomain_one - theorem HahnSeries.embDomain_single - theorem HahnSeries.embDomain_smul - theorem HahnSeries.embDomain_zero - theorem HahnSeries.eq_of_mem_support_single - theorem HahnSeries.isPWO_iUnion_support_powers - theorem HahnSeries.isPWO_support - theorem HahnSeries.isUnit_iff - theorem HahnSeries.isWF_support - theorem HahnSeries.le_order_smul - theorem HahnSeries.mem_support - theorem HahnSeries.min_order_le_order_add - theorem HahnSeries.mul_coeff - theorem HahnSeries.mul_coeff_left' - theorem HahnSeries.mul_coeff_order_add_order - theorem HahnSeries.mul_coeff_right' - theorem HahnSeries.mul_single_coeff_add - theorem HahnSeries.mul_single_zero_coeff - theorem HahnSeries.ne_zero_of_coeff_ne_zero - theorem HahnSeries.neg_coeff' - theorem HahnSeries.neg_coeff - def HahnSeries.ofPowerSeries - def HahnSeries.ofPowerSeriesAlg - theorem HahnSeries.ofPowerSeries_C - theorem HahnSeries.ofPowerSeries_X - theorem HahnSeries.ofPowerSeries_X_pow - theorem HahnSeries.ofPowerSeries_apply - theorem HahnSeries.ofPowerSeries_apply_coeff - theorem HahnSeries.ofPowerSeries_injective - theorem HahnSeries.of_symm_smul_of_eq_mul - theorem HahnSeries.one_coeff - def HahnSeries.order - theorem HahnSeries.order_C - theorem HahnSeries.order_le_of_coeff_ne_zero - theorem HahnSeries.order_mul - theorem HahnSeries.order_neg - theorem HahnSeries.order_of_ne - theorem HahnSeries.order_one - theorem HahnSeries.order_pow - theorem HahnSeries.order_single - theorem HahnSeries.order_smul_not_lt - theorem HahnSeries.order_zero - def HahnSeries.single.addMonoidHom - def HahnSeries.single.linearMap - def HahnSeries.single - theorem HahnSeries.single_coeff - theorem HahnSeries.single_coeff_of_ne - theorem HahnSeries.single_coeff_same - theorem HahnSeries.single_eq_zero - theorem HahnSeries.single_eq_zero_iff - theorem HahnSeries.single_injective - theorem HahnSeries.single_mul_coeff_add - theorem HahnSeries.single_mul_single - theorem HahnSeries.single_ne_zero - theorem HahnSeries.single_zero_mul_coeff - theorem HahnSeries.single_zero_mul_eq_smul - theorem HahnSeries.single_zero_one - theorem HahnSeries.smul_coeff - theorem HahnSeries.sub_coeff' - theorem HahnSeries.sub_coeff - theorem HahnSeries.support_add_subset - theorem HahnSeries.support_embDomain_subset - theorem HahnSeries.support_eq_empty_iff - theorem HahnSeries.support_mul_subset_add_support - theorem HahnSeries.support_neg - theorem HahnSeries.support_one - theorem HahnSeries.support_single_of_ne - theorem HahnSeries.support_single_subset - theorem HahnSeries.support_zero - def HahnSeries.toMvPowerSeries - def HahnSeries.toPowerSeries - def HahnSeries.toPowerSeriesAlg - theorem HahnSeries.unit_aux - theorem HahnSeries.zero_coeff - structure HahnSeries - theorem Polynomial.algebraMap_hahnSeries_apply - theorem Polynomial.algebraMap_hahnSeries_injective Added Mathlib/RingTheory/HahnSeries/Addition.lean + theorem HahnSeries.add_coeff' + theorem HahnSeries.add_coeff + def HahnSeries.coeff.addMonoidHom + def HahnSeries.coeff.linearMap + def HahnSeries.embDomainLinearMap + theorem HahnSeries.embDomain_add + theorem HahnSeries.embDomain_smul + theorem HahnSeries.le_order_smul + theorem HahnSeries.min_order_le_order_add + theorem HahnSeries.neg_coeff' + theorem HahnSeries.neg_coeff + theorem HahnSeries.order_neg + theorem HahnSeries.order_smul_not_lt + def HahnSeries.single.addMonoidHom + def HahnSeries.single.linearMap + theorem HahnSeries.smul_coeff + theorem HahnSeries.sub_coeff' + theorem HahnSeries.sub_coeff + theorem HahnSeries.support_add_subset + theorem HahnSeries.support_neg Added Mathlib/RingTheory/HahnSeries/Basic.lean + theorem HahnSeries.coeff_eq_zero_of_lt_order + theorem HahnSeries.coeff_fun_eq_zero_iff + theorem HahnSeries.coeff_inj + theorem HahnSeries.coeff_injective + theorem HahnSeries.coeff_order_ne_zero + def HahnSeries.embDomain + theorem HahnSeries.embDomain_coeff + theorem HahnSeries.embDomain_injective + theorem HahnSeries.embDomain_mk_coeff + theorem HahnSeries.embDomain_notin_image_support + theorem HahnSeries.embDomain_notin_range + theorem HahnSeries.embDomain_single + theorem HahnSeries.embDomain_zero + theorem HahnSeries.eq_of_mem_support_single + theorem HahnSeries.isPWO_support + theorem HahnSeries.isWF_support + theorem HahnSeries.mem_support + theorem HahnSeries.ne_zero_of_coeff_ne_zero + def HahnSeries.order + theorem HahnSeries.order_le_of_coeff_ne_zero + theorem HahnSeries.order_of_ne + theorem HahnSeries.order_single + theorem HahnSeries.order_zero + def HahnSeries.single + theorem HahnSeries.single_coeff + theorem HahnSeries.single_coeff_of_ne + theorem HahnSeries.single_coeff_same + theorem HahnSeries.single_eq_zero + theorem HahnSeries.single_eq_zero_iff + theorem HahnSeries.single_injective + theorem HahnSeries.single_ne_zero + theorem HahnSeries.support_embDomain_subset + theorem HahnSeries.support_eq_empty_iff + theorem HahnSeries.support_single_of_ne + theorem HahnSeries.support_single_subset + theorem HahnSeries.support_zero + def HahnSeries.to_iterate + theorem HahnSeries.zero_coeff + structure HahnSeries Added Mathlib/RingTheory/HahnSeries/Multiplication.lean + theorem HahnModule.ext + def HahnModule.of + theorem HahnModule.of_add + theorem HahnModule.of_symm_add + theorem HahnModule.of_symm_zero + theorem HahnModule.of_zero + def HahnModule.rec + theorem HahnModule.smul_coeff + theorem HahnModule.smul_coeff_left + theorem HahnModule.smul_coeff_right + def HahnModule + def HahnSeries.C + theorem HahnSeries.C_eq_algebraMap + theorem HahnSeries.C_injective + theorem HahnSeries.C_mul_eq_smul + theorem HahnSeries.C_ne_zero + theorem HahnSeries.C_one + theorem HahnSeries.C_zero + theorem HahnSeries.algebraMap_apply + def HahnSeries.embDomainAlgHom + def HahnSeries.embDomainRingHom + theorem HahnSeries.embDomainRingHom_C + theorem HahnSeries.embDomain_mul + theorem HahnSeries.embDomain_one + theorem HahnSeries.mul_coeff + theorem HahnSeries.mul_coeff_left' + theorem HahnSeries.mul_coeff_order_add_order + theorem HahnSeries.mul_coeff_right' + theorem HahnSeries.mul_single_coeff_add + theorem HahnSeries.mul_single_zero_coeff + theorem HahnSeries.of_symm_smul_of_eq_mul + theorem HahnSeries.one_coeff + theorem HahnSeries.order_C + theorem HahnSeries.order_mul + theorem HahnSeries.order_one + theorem HahnSeries.order_pow + theorem HahnSeries.single_mul_coeff_add + theorem HahnSeries.single_mul_single + theorem HahnSeries.single_zero_mul_coeff + theorem HahnSeries.single_zero_mul_eq_smul + theorem HahnSeries.single_zero_one + theorem HahnSeries.support_mul_subset_add_support + theorem HahnSeries.support_one Added Mathlib/RingTheory/HahnSeries/PowerSeries.lean + theorem HahnSeries.algebraMap_apply' + theorem HahnSeries.coeff_toMvPowerSeries + theorem HahnSeries.coeff_toMvPowerSeries_symm + theorem HahnSeries.coeff_toPowerSeries + theorem HahnSeries.coeff_toPowerSeries_symm + def HahnSeries.ofPowerSeries + def HahnSeries.ofPowerSeriesAlg + theorem HahnSeries.ofPowerSeries_C + theorem HahnSeries.ofPowerSeries_X + theorem HahnSeries.ofPowerSeries_X_pow + theorem HahnSeries.ofPowerSeries_apply + theorem HahnSeries.ofPowerSeries_apply_coeff + theorem HahnSeries.ofPowerSeries_injective + def HahnSeries.toMvPowerSeries + def HahnSeries.toPowerSeries + def HahnSeries.toPowerSeriesAlg + theorem Polynomial.algebraMap_hahnSeries_apply + theorem Polynomial.algebraMap_hahnSeries_injective Added Mathlib/RingTheory/HahnSeries/Summable.lean + theorem HahnSeries.SummableFamily.add_apply + theorem HahnSeries.SummableFamily.coe_add + theorem HahnSeries.SummableFamily.coe_injective + theorem HahnSeries.SummableFamily.coe_neg + theorem HahnSeries.SummableFamily.coe_ofFinsupp + theorem HahnSeries.SummableFamily.coe_powers + theorem HahnSeries.SummableFamily.coe_sub + theorem HahnSeries.SummableFamily.coe_zero + def HahnSeries.SummableFamily.embDomain + theorem HahnSeries.SummableFamily.embDomain_apply + theorem HahnSeries.SummableFamily.embDomain_image + theorem HahnSeries.SummableFamily.embDomain_notin_range + theorem HahnSeries.SummableFamily.embDomain_succ_smul_powers + theorem HahnSeries.SummableFamily.ext + theorem HahnSeries.SummableFamily.finite_co_support + def HahnSeries.SummableFamily.hsum + theorem HahnSeries.SummableFamily.hsum_add + theorem HahnSeries.SummableFamily.hsum_coeff + theorem HahnSeries.SummableFamily.hsum_embDomain + theorem HahnSeries.SummableFamily.hsum_ofFinsupp + theorem HahnSeries.SummableFamily.hsum_smul + theorem HahnSeries.SummableFamily.hsum_sub + theorem HahnSeries.SummableFamily.isPWO_iUnion_support + def HahnSeries.SummableFamily.lsum + theorem HahnSeries.SummableFamily.neg_apply + def HahnSeries.SummableFamily.ofFinsupp + theorem HahnSeries.SummableFamily.one_sub_self_mul_hsum_powers + def HahnSeries.SummableFamily.powers + theorem HahnSeries.SummableFamily.smul_apply + theorem HahnSeries.SummableFamily.sub_apply + theorem HahnSeries.SummableFamily.support_hsum_subset + theorem HahnSeries.SummableFamily.zero_apply + structure HahnSeries.SummableFamily + def HahnSeries.addVal + theorem HahnSeries.addVal_apply + theorem HahnSeries.addVal_apply_of_ne + theorem HahnSeries.addVal_le_of_coeff_ne_zero + theorem HahnSeries.isPWO_iUnion_support_powers + theorem HahnSeries.isUnit_iff + theorem HahnSeries.unit_aux Modified Mathlib/RingTheory/LaurentSeries.lean 2024-02-16 04:01:36 9e1a0e7 feat(Data/Matrix/Notation): lemmas about numeric literals and small matrices (#10592) [Zulip](https://leanprover.zulipchat.com/#narrow/stream/113489-new-members/topic/Complex.20Numbers.20in.20Matrices/near/421653137) ESTIMATED CHANGES Modified Mathlib/Data/Matrix/Notation.lean + theorem Matrix.natCast_fin_three + theorem Matrix.natCast_fin_two + theorem Matrix.ofNat_fin_three + theorem Matrix.ofNat_fin_two 2024-02-16 01:59:00 6ec9e85 feat: improper integrals of 1/(1 + x^2) (#10234) ESTIMATED CHANGES Modified Mathlib/Analysis/SpecialFunctions/ImproperIntegrals.lean + theorem integrable_inv_one_add_sq + theorem integral_Iic_inv_one_add_sq + theorem integral_Ioi_inv_one_add_sq + theorem integral_univ_inv_one_add_sq Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Arctan.lean + theorem Real.arctan_eq_zero_iff + theorem Real.arctan_injective + theorem Real.arctan_strictMono + theorem Real.tendsto_arctan_atBot + theorem Real.tendsto_arctan_atTop Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/ArctanDeriv.lean + theorem Real.hasDerivAt_arctan' Modified Mathlib/MeasureTheory/Integral/IntegralEqImproper.lean + theorem MeasureTheory.integral_of_hasDerivAt_of_tendsto Modified test/RewriteSearch/Polynomial.lean 2024-02-16 01:10:31 e7fd6c9 feat(Data/Setoid): another way to define piecewise functions (#7273) Use `IndexedPartition` to define `piecewise` functions. This is natural for piecewise functions that are split into many pieces.​ ESTIMATED CHANGES Modified Mathlib/Data/Set/Pairwise/Lattice.lean + theorem pairwiseDisjoint_unique Modified Mathlib/Data/Setoid/Partition.lean + def IndexedPartition.piecewise + theorem IndexedPartition.piecewise_apply + theorem IndexedPartition.piecewise_bij + theorem IndexedPartition.piecewise_inj 2024-02-16 00:13:41 e8f1882 perf: speed up galActionHom_bijective_of_prime_degree (#10608) This takes the proof from approximately 3 seconds to half a second on my laptop. convert spent a fair amount of time dealing with the equality of Fintype.card calls with the same type but different Fintype instances. This sidesteps the issue by translating to Nat.card, which doesn't have the instance argument. ESTIMATED CHANGES Modified Mathlib/Analysis/Complex/Polynomial.lean Modified Mathlib/SetTheory/Cardinal/Finite.lean + theorem Fintype.card_eq_nat_card 2024-02-15 23:16:46 6af8f3b refactor(Cardinal): redefine `toNat` and `toPartENat` (#10472) Redefine these operations in terms of `toENat`. ESTIMATED CHANGES Modified Mathlib/Data/Matrix/Rank.lean Modified Mathlib/LinearAlgebra/Dimension/Constructions.lean Modified Mathlib/LinearAlgebra/Dimension/Finrank.lean Modified Mathlib/LinearAlgebra/Dimension/Free.lean Modified Mathlib/LinearAlgebra/FreeModule/Finite/Matrix.lean Modified Mathlib/SetTheory/Cardinal/ENat.lean - theorem Cardinal.toNat_toENat Modified Mathlib/SetTheory/Cardinal/Finite.lean Modified Mathlib/SetTheory/Cardinal/PartENat.lean + theorem Cardinal.partENatOfENat_toENat +/- theorem Cardinal.toPartENat_apply_of_lt_aleph0 - theorem Cardinal.toPartENat_cast + theorem Cardinal.toPartENat_eq_top - theorem Cardinal.toPartENat_eq_top_iff_le_aleph0 + theorem Cardinal.toPartENat_natCast + theorem Cardinal.toPartENat_strictMonoOn Modified Mathlib/SetTheory/Cardinal/ToNat.lean +/- theorem Cardinal.mk_toNat_of_infinite +/- theorem Cardinal.one_toNat + theorem Cardinal.toNat_add - theorem Cardinal.toNat_add_of_lt_aleph0 +/- theorem Cardinal.toNat_apply_of_aleph0_le - theorem Cardinal.toNat_cast +/- theorem Cardinal.toNat_eq_iff +/- theorem Cardinal.toNat_eq_iff_eq_of_lt_aleph0 +/- theorem Cardinal.toNat_eq_ofNat +/- theorem Cardinal.toNat_eq_one +/- theorem Cardinal.toNat_eq_one_iff_unique + theorem Cardinal.toNat_injOn +/- theorem Cardinal.toNat_le_iff_le_of_lt_aleph0 +/- theorem Cardinal.toNat_le_of_le_of_lt_aleph0 + theorem Cardinal.toNat_le_toNat + theorem Cardinal.toNat_lift_add_lift +/- theorem Cardinal.toNat_lt_iff_lt_of_lt_aleph0 +/- theorem Cardinal.toNat_lt_of_lt_of_lt_aleph0 + theorem Cardinal.toNat_lt_toNat + theorem Cardinal.toNat_monotoneOn +/- theorem Cardinal.toNat_mul + theorem Cardinal.toNat_natCast + theorem Cardinal.toNat_ofENat + theorem Cardinal.toNat_strictMonoOn + theorem Cardinal.toNat_toENat +/- theorem Cardinal.zero_toNat 2024-02-15 22:29:59 25577a7 refactor : add namespace `UpperHalfPlane.ModularGroup` (#7885) Rename some definitions and theorems about $SL(2, ℤ)$ in `Analysis/Complex/UpperHalfPlane/Basic.lean` to place them in the namespace `UpperHalfPlane.ModularGroup`, in order to avoid the confusion with definitions and theorems about $SL(2, ℝ)$. For example, `UpperHalfPlane.det_coe'` is renamed to `UpperHalfPlane.ModularGroup.det_coe'`, because we will have `UpperHalfPlane.SL2R.det_coe'`. ESTIMATED CHANGES Modified Mathlib/Analysis/Complex/UpperHalfPlane/Basic.lean + theorem UpperHalfPlane.ModularGroup.SLOnGLPos_smul_apply + theorem UpperHalfPlane.ModularGroup.SL_neg_smul + def UpperHalfPlane.ModularGroup.coe' + theorem UpperHalfPlane.ModularGroup.coe'_apply_complex + theorem UpperHalfPlane.ModularGroup.denom_apply + theorem UpperHalfPlane.ModularGroup.det_coe' + theorem UpperHalfPlane.ModularGroup.sl_moeb + theorem UpperHalfPlane.ModularGroup.subgroup_moeb + theorem UpperHalfPlane.ModularGroup.subgroup_on_SL_apply + theorem UpperHalfPlane.ModularGroup.subgroup_on_glpos_smul_apply + theorem UpperHalfPlane.ModularGroup.subgroup_to_sl_moeb - theorem UpperHalfPlane.SLOnGLPos_smul_apply - theorem UpperHalfPlane.SL_neg_smul - def UpperHalfPlane.coe' - theorem UpperHalfPlane.coe'_apply_complex - theorem UpperHalfPlane.denom_apply - theorem UpperHalfPlane.det_coe' - theorem UpperHalfPlane.sl_moeb - theorem UpperHalfPlane.subgroup_moeb - theorem UpperHalfPlane.subgroup_on_SL_apply - theorem UpperHalfPlane.subgroup_on_glpos_smul_apply - theorem UpperHalfPlane.subgroup_to_sl_moeb Modified Mathlib/NumberTheory/Modular.lean Modified Mathlib/NumberTheory/ModularForms/EisensteinSeries/Basic.lean Modified Mathlib/NumberTheory/ModularForms/SlashActions.lean 2024-02-15 21:17:39 60c811a feat: the absolute discriminant of cyclotomic fields (#10492) We compute the absolute discriminant of cyclotomic fields. From flt-regular. ESTIMATED CHANGES Modified Mathlib/NumberTheory/Cyclotomic/Rat.lean + theorem IsCyclotomicExtension.Rat.absdiscr_prime + theorem IsCyclotomicExtension.Rat.absdiscr_prime_pow + theorem IsCyclotomicExtension.Rat.absdiscr_prime_pow_succ Modified Mathlib/RingTheory/PowerBasis.lean +/- theorem PowerBasis.finrank 2024-02-15 20:02:02 9c73cb5 chore: simplify `birthday` proof; avoiding max recursion depth is easier now (#10602) Now that `decide := false` is the default for simp, we can use a plain `simp only` instead of two `rw` steps. I observe (via `set_option trace.profiler true`) the new proof to take about 0.03 seconds whereas the current one takes about 0.05 seconds. If I add in `Nat.descFactorial` to the simp lemmas (as it used to be, according to the comment), the proof slows down to about 0.10 seconds. ESTIMATED CHANGES Modified Archive/Wiedijk100Theorems/BirthdayProblem.lean 2024-02-15 20:02:01 18b3970 feat: Variant of structure theorem of finite abelian groups (#10587) where the trivial factors have been dropped. I have the idea of a general approach to dropping trivial terms from a direct sum. However it is too complicated for me to unsorry it and overkill here, so I am leaving it as a comment. From LeanAPAP ESTIMATED CHANGES Modified Mathlib/Data/ZMod/Basic.lean + theorem ZMod.nontrivial_iff + theorem ZMod.subsingleton_iff Modified Mathlib/GroupTheory/FiniteAbelian.lean + theorem AddCommGroup.equiv_directSum_zmod_of_finite' + theorem AddCommGroup.equiv_directSum_zmod_of_finite - theorem AddCommGroup.equiv_directSum_zmod_of_fintype 2024-02-15 20:02:00 c523438 chore: Golf `exists_pow_eq_one_of_zpow_eq_one` (#10559) and replace it by two more explicit lemmas ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Basic.lean - theorem exists_npow_eq_one_of_zpow_eq_one + theorem exists_pow_eq_one_of_zpow_eq_one + theorem pow_natAbs_eq_one Modified Mathlib/Algebra/Module/Torsion.lean Modified Mathlib/Data/Int/Order/Basic.lean + theorem zpow_abs_eq_one 2024-02-15 20:01:59 a39f83f refactor(Set/Finite): redefine using `_root_.Finite` (#10542) ESTIMATED CHANGES Modified Mathlib/Data/Analysis/Topology.lean Modified Mathlib/Data/Finset/LocallyFinite.lean Modified Mathlib/Data/Set/Finite.lean +/- theorem Set.Finite.diff +/- theorem Set.Finite.finite_subsets +/- theorem Set.Finite.inter_of_left +/- theorem Set.Finite.inter_of_right +/- theorem Set.Finite.sep - inductive Set.Finite +/- theorem Set.finite_coe_iff +/- theorem Set.finite_iUnion +/- theorem Set.finite_univ_iff +/- theorem Set.toFinite Modified Mathlib/NumberTheory/Cyclotomic/Basic.lean - theorem IsCyclotomicExtension.finite Modified Mathlib/RingTheory/Artinian.lean Modified Mathlib/Topology/Compactness/Compact.lean Modified Mathlib/Topology/ContinuousFunction/Bounded.lean 2024-02-15 20:01:58 dc08280 chore(CauSeq): Cleanup (#10530) * Rename `Data.Real.CauSeq` to `Algebra.Order.CauSeq.Basic` * Rename `Data.Real.CauSeqCompletion` to `Algebra.Order.CauSeq.Completion` * Move the general lemmas about `CauSeq` from `Data.Complex.Exponential` to a new file `Algebra.Order.CauSeq.BigOperators` * Move the lemmas mentioning `Module` from `Algebra.BigOperators.Intervals` to a new file `Algebra.BigOperators.Module` * Move a few more lemmas to earlier files * Deprecate `abv_sum_le_sum_abv` as it's a duplicate of `IsAbsoluteValue.abv_sum` ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/BigOperators/Intervals.lean + theorem Finset.prod_range_diag_flip - theorem Finset.sum_Ico_by_parts - theorem Finset.sum_range_by_parts Added Mathlib/Algebra/BigOperators/Module.lean + theorem Finset.sum_Ico_by_parts + theorem Finset.sum_range_by_parts Modified Mathlib/Algebra/BigOperators/Order.lean Modified Mathlib/Algebra/Order/AbsoluteValue.lean Renamed Mathlib/Data/Real/CauSeq.lean to Mathlib/Algebra/Order/CauSeq/Basic.lean +/- theorem CauSeq.bounded' +/- theorem CauSeq.bounded +/- def CauSeq.const + theorem IsCauSeq.bounded' + theorem IsCauSeq.bounded + theorem IsCauSeq.const + theorem IsCauSeq.mul - theorem exists_forall_ge_and + theorem isCauSeq_neg Added Mathlib/Algebra/Order/CauSeq/BigOperators.lean + theorem IsCauSeq.geo_series + theorem IsCauSeq.geo_series_const + theorem IsCauSeq.of_abv + theorem IsCauSeq.of_abv_le + theorem IsCauSeq.of_decreasing_bounded + theorem IsCauSeq.of_mono_bounded + theorem IsCauSeq.series_ratio_test + theorem cauchy_product Renamed Mathlib/Data/Real/CauSeqCompletion.lean to Mathlib/Algebra/Order/CauSeq/Completion.lean Modified Mathlib/Analysis/SpecificLimits/Normed.lean Modified Mathlib/Data/Complex/Exponential.lean - theorem abv_sum_le_sum_abv - theorem cauchy_product - theorem isCauSeq_geo_series - theorem isCauSeq_geo_series_const - theorem isCauSeq_of_decreasing_bounded - theorem isCauSeq_of_mono_bounded - theorem isCauSeq_series_of_abv_isCauSeq - theorem isCauSeq_series_of_abv_le_of_isCauSeq - theorem series_ratio_test - theorem sum_range_diag_flip Modified Mathlib/Data/Nat/Digits.lean Modified Mathlib/Data/Real/Basic.lean Modified Mathlib/Order/Basic.lean + theorem exists_forall_ge_and 2024-02-15 20:01:57 06dbc0d chore: golf Polynomial.Degree.Definitions (#10526) ESTIMATED CHANGES Modified Mathlib/Data/Polynomial/Degree/Definitions.lean +/- theorem Polynomial.le_degree_of_ne_zero 2024-02-15 19:01:02 abef58c refactor(MeasureTheory/Function/UniformIntegrable): removed needlessly explicit argument (#10599) A `variable` declaration made `(μ)` an explicit argument, even though it could be deduced from other arguments in almost all cases. The declaration was removed and the change propagated to other files. ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Function/ConditionalExpectation/Real.lean Modified Mathlib/MeasureTheory/Function/UniformIntegrable.lean +/- theorem MeasureTheory.snorm_sub_le_of_dist_bdd Modified Mathlib/Probability/IdentDistrib.lean Modified Mathlib/Probability/Martingale/Convergence.lean Modified Mathlib/Probability/StrongLaw.lean 2024-02-15 19:01:01 2be6479 chore(Topology/GDelta): use new-style dot notation (#10583) Rename many `isGδ_some` lemmas to `IsGδ.some`. Also resolve a TODO. ESTIMATED CHANGES Modified Counterexamples/SorgenfreyLine.lean Modified Mathlib/MeasureTheory/Constructions/BorelSpace/Basic.lean Modified Mathlib/MeasureTheory/Measure/EverywherePos.lean Modified Mathlib/NumberTheory/Liouville/Residual.lean + theorem IsGδ.setOf_liouville - theorem isGδ_setOf_liouville Modified Mathlib/Topology/GDelta.lean +/- theorem IsClosed.isGδ + theorem IsGδ.biInter + theorem IsGδ.biInter_of_isOpen + theorem IsGδ.biUnion + theorem IsGδ.compl_singleton + theorem IsGδ.iInter_of_isOpen + theorem IsGδ.iUnion + theorem IsGδ.sInter + theorem IsGδ.sUnion + theorem IsGδ.setOf_continuousAt - theorem isGδ_biInter - theorem isGδ_biInter_of_isOpen - theorem isGδ_biUnion - theorem isGδ_compl_singleton - theorem isGδ_empty - theorem isGδ_iInter - theorem isGδ_iInter_of_isOpen - theorem isGδ_sInter - theorem isGδ_setOf_continuousAt - theorem isGδ_singleton - theorem isGδ_univ Modified Mathlib/Topology/Instances/Irrational.lean - theorem isGδ_irrational Modified Mathlib/Topology/MetricSpace/Baire.lean 2024-02-15 19:01:00 ba213d0 chore(Topology/OrderClosed): review API (#10570) - Generalize lemmas from `OrderClosedTopology` to `ClosedIciTopology` or `ClosedIicTopology`. - Deprecate `isClosed_le'`/`isClosed_ge'`, use more readable `isClosed_Iic`/`isClosed_Ici` instead. ESTIMATED CHANGES Modified Mathlib/Topology/Instances/Real.lean Modified Mathlib/Topology/MetricSpace/Bounded.lean Modified Mathlib/Topology/Order/OrderClosed.lean + theorem ClosedIciTopology.isClosed_ge' + theorem ClosedIicTopology.isClosed_le' +/- theorem CovBy.nhdsWithin_Iio +/- theorem Icc_mem_nhdsWithin_Ici' +/- theorem Icc_mem_nhdsWithin_Ici +/- theorem Icc_mem_nhdsWithin_Iic' +/- theorem Icc_mem_nhdsWithin_Iic +/- theorem Icc_mem_nhdsWithin_Iio' +/- theorem Icc_mem_nhdsWithin_Iio +/- theorem Ici_mem_nhds +/- theorem Ico_mem_nhdsWithin_Ici' +/- theorem Ico_mem_nhdsWithin_Ici +/- theorem Ico_mem_nhdsWithin_Iic +/- theorem Ico_mem_nhdsWithin_Iio' +/- theorem Ico_mem_nhdsWithin_Iio +/- theorem Iic_mem_nhds +/- theorem Iio_mem_nhds +/- theorem Ioc_mem_nhdsWithin_Ici +/- theorem Ioc_mem_nhdsWithin_Iic' +/- theorem Ioc_mem_nhdsWithin_Iic +/- theorem Ioc_mem_nhdsWithin_Iio' +/- theorem Ioc_mem_nhdsWithin_Iio +/- theorem Ioi_mem_nhds +/- theorem Ioo_mem_nhdsWithin_Ici +/- theorem Ioo_mem_nhdsWithin_Iic +/- theorem Ioo_mem_nhdsWithin_Iio' +/- theorem Ioo_mem_nhdsWithin_Iio +/- theorem continuousWithinAt_Icc_iff_Ici +/- theorem continuousWithinAt_Icc_iff_Iic +/- theorem continuousWithinAt_Ico_iff_Ici +/- theorem continuousWithinAt_Ico_iff_Iio +/- theorem continuousWithinAt_Ioc_iff_Iic +/- theorem continuousWithinAt_Ioc_iff_Ioi +/- theorem continuousWithinAt_Ioo_iff_Iio +/- theorem continuousWithinAt_Ioo_iff_Ioi +/- theorem interior_Iio +/- theorem isOpen_Iio +/- theorem isOpen_Ioi +/- theorem nhdsWithin_Icc_eq_nhdsWithin_Ici +/- theorem nhdsWithin_Icc_eq_nhdsWithin_Iic +/- theorem nhdsWithin_Ico_eq_nhdsWithin_Ici +/- theorem nhdsWithin_Ico_eq_nhdsWithin_Iio +/- theorem nhdsWithin_Ioc_eq_nhdsWithin_Iic +/- theorem nhdsWithin_Ioo_eq_nhdsWithin_Iio 2024-02-15 19:00:59 1e0f1e2 feat: `ℝ≥0` is a star-ordered ring (#10547) and other basic lemmas, including a version of Cauchy-Schwarz stated using `Real.sqrt` From LeanAPAP ESTIMATED CHANGES Modified Mathlib/Algebra/BigOperators/Order.lean Modified Mathlib/Analysis/InnerProductSpace/PiL2.lean Modified Mathlib/Analysis/NormedSpace/Star/Multiplier.lean Modified Mathlib/Data/Real/NNReal.lean Modified Mathlib/Data/Real/Sqrt.lean + theorem Finset.sum_mul_le_sqrt_mul_sqrt - theorem NNReal.le_sqrt_iff + theorem NNReal.le_sqrt_iff_sq_le +/- theorem NNReal.mul_self_sqrt + theorem NNReal.one_le_sqrt +/- theorem NNReal.sq_sqrt + theorem NNReal.sqrt_eq_iff_eq_sq - theorem NNReal.sqrt_eq_iff_sq_eq + theorem NNReal.sqrt_eq_one +/- theorem NNReal.sqrt_eq_zero - theorem NNReal.sqrt_le_iff + theorem NNReal.sqrt_le_iff_le_sq + theorem NNReal.sqrt_le_one + theorem NNReal.sqrt_le_sqrt - theorem NNReal.sqrt_le_sqrt_iff + theorem NNReal.sqrt_lt_sqrt - theorem NNReal.sqrt_lt_sqrt_iff +/- theorem NNReal.sqrt_mul_self +/- theorem NNReal.sqrt_one +/- theorem NNReal.sqrt_sq +/- theorem NNReal.sqrt_zero + theorem Real.one_le_sqrt + theorem Real.sqrt_le_one + theorem Real.sqrt_le_sqrt_iff' Modified Mathlib/GroupTheory/Submonoid/Operations.lean +/- theorem Submonoid.mem_oneLE 2024-02-15 18:13:06 4b36afc feat(Algebra/CharP/*): add `RingHom.(charP|expChar)[_iff]` (#10574) similar to `RingHom.charZero[_iff]` ESTIMATED CHANGES Modified Mathlib/Algebra/CharP/Algebra.lean + theorem RingHom.charP + theorem RingHom.charP_iff +/- theorem charP_of_injective_ringHom +/- theorem charZero_of_injective_ringHom Modified Mathlib/Algebra/CharP/ExpChar.lean + theorem RingHom.expChar + theorem RingHom.expChar_iff 2024-02-15 18:13:06 702cfa1 chore(.github/workflows): add label after maintainer merge (#10483) By automatically adding a label, it is easier to find PRs that have been maintainer merged but slipped through some crack. ESTIMATED CHANGES Modified .github/workflows/maintainer_merge_comment.yml Modified .github/workflows/maintainer_merge_review.yml Modified .github/workflows/maintainer_merge_review_comment.yml 2024-02-15 17:35:27 dc1309b feat(Analysis/Complex/Circle): `UniformGroup` instance on `circle` (#10577) This PR adds a `UniformGroup` instance on `circle`. ESTIMATED CHANGES Modified Mathlib/Analysis/Complex/Circle.lean 2024-02-15 17:35:26 cfad572 refactor: drop some `*HomClass`es (#10544) Drop classes that mix `OrderHomClass` with algebraic hom classes. ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Hom/Monoid.lean +/- def OrderMonoidHomClass.toOrderMonoidHom +/- def OrderMonoidWithZeroHomClass.toOrderMonoidWithZeroHom Modified Mathlib/Algebra/Order/Hom/Ring.lean 2024-02-15 16:16:02 15a6827 chore(Topology/Order): delete 2 lemmas (#10576) They were deprecated since the file was ported in #2052 ESTIMATED CHANGES Modified Mathlib/Topology/Order/Basic.lean - theorem eventually_nhdsWithin_pos_mem_Ioc - theorem eventually_nhdsWithin_pos_mem_Ioo 2024-02-15 16:16:01 9e9d545 feat(FieldTheory/Perfect): add `roots_X_pow_char[_pow]_sub_C[_pow]` (#10573) corollaries of `roots_expand[_pow]` ESTIMATED CHANGES Modified Mathlib/FieldTheory/Perfect.lean + theorem Polynomial.roots_X_pow_char_pow_sub_C + theorem Polynomial.roots_X_pow_char_pow_sub_C_pow + theorem Polynomial.roots_X_pow_char_sub_C + theorem Polynomial.roots_X_pow_char_sub_C_pow 2024-02-15 16:16:00 f23db5a feat: add some simple results regarding polynomials (#10572) - `Polynomial.map_contract`: `Polynomial.map` and `Polynomial.contract` commutes - `Irreducible.natDegree_pos`: an irreducible polynomial over a field must have positive degree (not true if it's not a field) - `Polynomial.Monic.nextCoeff_pow`: corollary of `Polynomial.Monic.nextCoeff_mul` - `Polynomial.exists_monic_irreducible_factor`: a polynomial over a field which is not a unit must have a monic irreducible factor (not true if it's not a field) ESTIMATED CHANGES Modified Mathlib/Data/Polynomial/Expand.lean + theorem Polynomial.map_contract Modified Mathlib/Data/Polynomial/FieldDivision.lean + theorem Irreducible.natDegree_pos Modified Mathlib/Data/Polynomial/Monic.lean + theorem Polynomial.Monic.nextCoeff_pow Modified Mathlib/RingTheory/Polynomial/Basic.lean + theorem Polynomial.exists_monic_irreducible_factor 2024-02-15 16:15:59 51f0486 feat: add `Multiset.toFinset_(eq_singleton|card_eq_one)_iff` (#10571) ESTIMATED CHANGES Modified Mathlib/Data/Finset/Basic.lean + theorem Multiset.toFinset_eq_singleton_iff Modified Mathlib/Data/Finset/Card.lean + theorem Multiset.toFinset_card_eq_one_iff 2024-02-15 16:15:58 9f7fef4 chore(LinearAlgebra/Matrix/Charpoly): place more decls in Matrix namespace (#10488) ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/Matrix/Charpoly/Basic.lean + def Matrix.charmatrix + theorem Matrix.charmatrix_apply + theorem Matrix.charmatrix_apply_eq + theorem Matrix.charmatrix_apply_ne + theorem Matrix.charmatrix_fromBlocks + theorem Matrix.charmatrix_map + theorem Matrix.charmatrix_reindex + theorem Matrix.matPolyEquiv_charmatrix - def charmatrix - theorem charmatrix_apply - theorem charmatrix_apply_eq - theorem charmatrix_apply_ne - theorem charmatrix_fromBlocks - theorem charmatrix_map - theorem charmatrix_reindex - theorem matPolyEquiv_charmatrix Modified Mathlib/LinearAlgebra/Matrix/Charpoly/Coeff.lean + theorem Matrix.charmatrix_apply_natDegree + theorem Matrix.charmatrix_apply_natDegree_le + theorem Matrix.coeff_charpoly_mem_ideal_pow - theorem charmatrix_apply_natDegree - theorem charmatrix_apply_natDegree_le - theorem coeff_charpoly_mem_ideal_pow + theorem matPolyEquiv_eq_X_pow_sub_C - theorem matPolyEquiv_eq_x_pow_sub_c Modified Mathlib/LinearAlgebra/Matrix/Charpoly/FiniteField.lean 2024-02-15 16:15:57 8257db3 chore(FieldTheory/PolynomialGaloisGroup): move lemmas, reduce imports (#9886) #dependencies: `Mathlib.FieldTheory.PolynomialGaloisGroup`: 1826->1323 `Mathlib.Analysis.Complex.Polynomial`: 1811->1826 This needed one small change to a moved proof because `conj` is not allowed as an identifier when the `ComplexConjugate` locale is open. ESTIMATED CHANGES Modified Archive/Wiedijk100Theorems/AbelRuffini.lean Modified Mathlib/Analysis/Complex/Polynomial.lean + theorem Polynomial.Gal.card_complex_roots_eq_card_real_add_card_not_gal_inv + theorem Polynomial.Gal.galActionHom_bijective_of_prime_degree' + theorem Polynomial.Gal.galActionHom_bijective_of_prime_degree + theorem Polynomial.Gal.splits_ℚ_ℂ Modified Mathlib/FieldTheory/PolynomialGaloisGroup.lean - theorem Polynomial.Gal.card_complex_roots_eq_card_real_add_card_not_gal_inv - theorem Polynomial.Gal.galActionHom_bijective_of_prime_degree' - theorem Polynomial.Gal.galActionHom_bijective_of_prime_degree - theorem Polynomial.Gal.splits_ℚ_ℂ 2024-02-15 16:15:56 870cb7d feat: add a `TietzeExtension` class (#9788) This adds a class `TietzeExtension` to encode the Tietze extension theorem as a type class that can be satisfied by various types. For now, we provide instances for `ℝ`, `ℝ≥0`, `ℂ`, `IsROrC 𝕜`, pi types, product types, as well as constructors via homeomorphisms or retracts of a `TietzeExtension` space, and also a constructor for finite dimensional topological vector spaces. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/Complex/Tietze.lean + theorem BoundedContinuousFunction.exists_norm_eq_restrict_eq + theorem Metric.instTietzeExtensionBall + theorem Metric.instTietzeExtensionClosedBall + theorem TietzeExtension.of_tvs Modified Mathlib/Topology/Separation/NotNormal.lean Modified Mathlib/Topology/TietzeExtension.lean + theorem ContinuousMap.exists_extension' + theorem ContinuousMap.exists_extension + theorem ContinuousMap.exists_extension_forall_mem - theorem ContinuousMap.exists_extension_of_closedEmbedding + theorem ContinuousMap.exists_forall_mem_restrict_eq + theorem ContinuousMap.exists_restrict_eq - theorem ContinuousMap.exists_restrict_eq_of_closed + theorem TietzeExtension.of_homeo + theorem TietzeExtension.of_retract 2024-02-15 15:14:39 88ec96d fix(Ring.Basic): fix typo in doc for `evalAdd` (#10586) Fix typo ESTIMATED CHANGES Modified Mathlib/Tactic/Ring/Basic.lean 2024-02-15 15:14:38 dfb8f60 chore(MonoidAlgebra/Grading): drop `DecidableEq` assumption (#10578) ESTIMATED CHANGES Modified Mathlib/Algebra/MonoidAlgebra/Grading.lean 2024-02-15 14:03:56 abf7370 style(Order): use `where __ := x` instead of `:= { x with }` (#10588) The former style encourages one parent per line, which is easier to review and see diffs of. It also allows a handful of `:= fun a b =>`s to be replaced with the less noisy `a b :=`. A small number of `inferInstanceAs _ with`s were removed, as they are automatic in those places anyway. ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Pi.lean Modified Mathlib/Order/BooleanAlgebra.lean Modified Mathlib/Order/BoundedOrder.lean Modified Mathlib/Order/CompleteBooleanAlgebra.lean Modified Mathlib/Order/CompleteLattice.lean Modified Mathlib/Order/Lattice.lean 2024-02-15 13:05:15 30a9315 feat(GroupTheory/GroupAction): define MulAction.period and create GroupTheory/GroupAction/Period (#9490) Defines `MulAction.period g a` as a wrapper around `Function.minimalPeriod (fun x => g • x) a`, allowing for some cleaner proofs involving the period of a group action. The existing `MulAction.*_minimalPeriod_*` lemmas are changed to be defined using their now-preferred `MulAction.*_period_*` counterparts, although they will only be made deprecated in another pull request. The `Mathlib.GroupTheory.GroupAction.Period` module is also created, for additional lemmas around `MulAction.period`. Some core lemmas need to remain in `Mathlib.Dynamics.PeriodicPts`, as they are needed for `ZMod` and the quotient group. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/GroupPower/IterateHom.lean + theorem smul_iterate_apply Modified Mathlib/Dynamics/PeriodicPts.lean + theorem MulAction.isPeriodicPt_smul_iff + theorem MulAction.period_eq_minimalPeriod + theorem MulAction.pow_add_period_smul + theorem MulAction.pow_mod_period_smul + theorem MulAction.pow_period_add_smul + theorem MulAction.pow_period_smul + theorem MulAction.pow_smul_eq_iff_period_dvd + theorem MulAction.zpow_add_period_smul + theorem MulAction.zpow_mod_period_smul + theorem MulAction.zpow_period_add_smul + theorem MulAction.zpow_smul_eq_iff_period_dvd Added Mathlib/GroupTheory/GroupAction/Period.lean + theorem MulAction.le_period + theorem MulAction.period_bounded_of_exponent_pos + theorem MulAction.period_dvd_exponent + theorem MulAction.period_dvd_orderOf + theorem MulAction.period_eq_one_iff + theorem MulAction.period_inv + theorem MulAction.period_le_exponent + theorem MulAction.period_le_of_fixed + theorem MulAction.period_le_orderOf + theorem MulAction.period_one + theorem MulAction.period_pos_of_exponent_pos + theorem MulAction.period_pos_of_fixed + theorem MulAction.period_pos_of_orderOf_pos + theorem MulAction.pow_smul_ne_of_lt_period 2024-02-15 11:58:43 d43978d feat: add lemma `LinearMap.trace_lie` and move `Bracket` instance (#10584) It is useful to have access to this bracket definition without having to import a bunch of Lie algebra theory. ESTIMATED CHANGES Modified Mathlib/Algebra/Lie/OfAssociative.lean - theorem Commute.lie_eq - theorem Ring.lie_def - theorem commute_iff_lie_eq Modified Mathlib/Algebra/Ring/Commute.lean + theorem Commute.lie_eq + theorem Ring.lie_def + theorem commute_iff_lie_eq Modified Mathlib/LinearAlgebra/Trace.lean + theorem LinearMap.trace_lie Modified test/NoncommRing.lean 2024-02-15 11:05:39 cbef07b feat(Topology.Algebra.Valuation): add integer_isOpen (#8148) The unit ball in a valued ring is open. ESTIMATED CHANGES Modified Mathlib/RingTheory/Valuation/Integers.lean + theorem Valuation.mem_integer_iff Modified Mathlib/Topology/Algebra/Valuation.lean + theorem Valued.integer_isOpen + theorem Valued.valuationSubring_isOpen 2024-02-15 09:58:49 2e99d8a chore(Data/Finset): drop 2 `DecidableEq` assumptions (#10575) In 1 case, golf the proof. ESTIMATED CHANGES Modified Mathlib/Data/Finset/Basic.lean +/- theorem Finset.Nonempty.exists_cons_eq +/- theorem Finset.Nontrivial.exists_cons_eq 2024-02-15 09:58:48 de992dc feat(Algebra/Order/AbsoluteValue): Add AbsoluteValue.{le_add,sub_le_add} (#10561) These triangle inequalities bound `abv (a + b)` from below and `abv (a - b)` from above, and are essentially `AbsoluteValue.le_sub` and `.add_le` with signs flipped, respectively. ESTIMATED CHANGES Modified Mathlib/Algebra/Order/AbsoluteValue.lean + theorem AbsoluteValue.sub_le_add 2024-02-15 09:33:31 9c4bc63 chore(Normed/Group/Tannery): drop `DecidableEq` assumption (#10579) ESTIMATED CHANGES Modified Mathlib/Analysis/Normed/Group/Tannery.lean 2024-02-15 08:23:00 cc424f6 feat: `Unique (Set.Icc a a)` (#10567) ESTIMATED CHANGES Modified Mathlib/Data/Set/Intervals/Basic.lean 2024-02-15 07:38:04 38c547f feat(Bornology/Constructions): drop `[Finite ι]` assumption (#10582) ESTIMATED CHANGES Modified Mathlib/Topology/Bornology/Constructions.lean +/- def Bornology.induced 2024-02-15 06:24:16 2288eab chore(LinearAlgebra): golf (#10569) - rename `span_eq_top_of_linearIndependent_of_card_eq_finrank` to `LinearIndependent.span_eq_top_of_card_eq_finrank`; - add a version `LinearIndependent.span_eq_top_of_card_eq_finrank'` with different typeclass assumptions; - use `rfl` to prove `Algebra.discr_def`; - golf `Algebra.discr_not_zero_of_basis`. ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/FiniteDimensional.lean + theorem LinearIndependent.span_eq_top_of_card_eq_finrank' + theorem LinearIndependent.span_eq_top_of_card_eq_finrank - theorem span_eq_top_of_linearIndependent_of_card_eq_finrank Modified Mathlib/RingTheory/Discriminant.lean +/- theorem Algebra.discr_def 2024-02-15 06:24:15 c9a8b43 feat(Topology/Constructions): add `continuous_bool_rng` (#10513) Provide continuity criteria for functions `X → Bool` and, more generally, `X → Y`, where `Y` has discrete topology. ESTIMATED CHANGES Modified Mathlib/Data/Bool/Basic.lean + theorem Bool.exists_bool' + theorem Bool.forall_bool' Modified Mathlib/Topology/Clopen.lean Modified Mathlib/Topology/Constructions.lean + theorem continuous_bool_rng Modified Mathlib/Topology/Order.lean + theorem continuous_discrete_rng 2024-02-15 05:46:21 775d9b8 chore(Topology.GDelta): remove porting note (#10557) A `TODO` was added inside a porting note. We change it to a `TODO`. ESTIMATED CHANGES Modified Mathlib/Topology/GDelta.lean 2024-02-15 02:51:27 dabdf31 chore: bump Std (#10568) ESTIMATED CHANGES Modified Mathlib.lean Deleted Mathlib/Data/LazyList.lean - def LazyList.append - def LazyList.approx - def LazyList.filter - def LazyList.headI - def LazyList.join - def LazyList.map - def LazyList.map₂ - def LazyList.nth - def LazyList.ofList - def LazyList.singleton - def LazyList.tail - def LazyList.toList - def LazyList.zip - def LazyList.«for» - inductive LazyList Modified Mathlib/Data/LazyList/Basic.lean Modified Mathlib/Data/Seq/Seq.lean Modified Mathlib/Testing/SlimCheck/Functions.lean Modified lake-manifest.json 2024-02-15 01:43:46 1297e8b chore: Better names for `(⌊a⌋₊ : α) = ⌊a⌋` (#10252) The new lemma names are more symmetric, hence hopefully more discoverable ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Floor.lean + theorem Int.ofNat_ceil_eq_ceil + theorem Int.ofNat_floor_eq_floor - theorem Nat.cast_ceil_eq_cast_int_ceil - theorem Nat.cast_ceil_eq_int_ceil - theorem Nat.cast_floor_eq_cast_int_floor - theorem Nat.cast_floor_eq_int_floor + theorem natCast_ceil_eq_intCast_ceil + theorem natCast_floor_eq_intCast_floor 2024-02-15 00:39:12 d639f57 chore(StronglyMeasurable): Rename monotonicity along absolutely continuous measures (#10564) Rename `AEStronglyMeasurable.mono'` to `AEStronglyMeasurable.mono_ac`. Partly forward-port https://github.com/leanprover-community/mathlib/pull/18863 ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Function/StronglyMeasurable/Basic.lean Modified Mathlib/MeasureTheory/Measure/Haar/Quotient.lean 2024-02-14 23:28:23 8920fa9 chore(Topology/Order): golf, deprecate (#10554) - golf `atBot_le_nhds_bot` and `atTop_le_nhds_top`; - deprecate them; - use `tendsto_atTop_iInf` instead in `CondCdf`. ESTIMATED CHANGES Modified Mathlib/Probability/Kernel/CondCdf.lean Modified Mathlib/Topology/Order/Basic.lean 2024-02-14 23:28:22 6fc8434 chore: Turn `Complex.int_cast_abs` around (#10543) A goal about real numbers should not suddenly turn into a goal about complex numbers! ESTIMATED CHANGES Modified Mathlib/Analysis/Complex/Basic.lean +/- theorem Complex.norm_int Modified Mathlib/Data/Complex/Abs.lean + theorem Complex.abs_intCast +/- theorem Complex.int_cast_abs 2024-02-14 22:15:47 20a3319 refactor(Tactic/Explode): use ppConst that was upstreamed to std (#10552) ESTIMATED CHANGES Modified Mathlib/Tactic/Explode.lean - def Mathlib.Explode.ppConst 2024-02-14 22:15:46 4fe12e0 chore(RingTheory/MvPolynomial/Homogeneous): misc lemmas on homogeneous polyomials (#10478) ESTIMATED CHANGES Modified Mathlib/RingTheory/MvPolynomial/Homogeneous.lean + theorem MvPolynomial.C_mul_X + theorem MvPolynomial.IsHomogeneous.C_mul + theorem MvPolynomial.IsHomogeneous.aeval + theorem MvPolynomial.IsHomogeneous.eval₂ + theorem MvPolynomial.IsHomogeneous.map + theorem MvPolynomial.IsHomogeneous.pow + theorem MvPolynomial.isHomogeneous_C_mul_X_pow + theorem MvPolynomial.isHomogeneous_X_pow 2024-02-14 22:15:45 600ca01 perf: Use spread notation in ring transfer definitions (#10131) Make sure that `Function.Injective.somethingRing` looks like ``` def ... : SomethingRing β where toA := hf.a f ... __ := hf.b f ... __ := hf.c f ... ``` if `SomethingRing α extends A α, B α, C α`. This should hopefully give a performance boost in applications. Incidentally, there were a few missing transfer definitions, so I added them as I needed them. ESTIMATED CHANGES Modified Mathlib/Algebra/Group/InjSurj.lean Modified Mathlib/Algebra/Order/Group/InjSurj.lean Modified Mathlib/Algebra/Order/Monoid/Basic.lean Modified Mathlib/Algebra/Order/Ring/InjSurj.lean Modified Mathlib/Algebra/Ring/InjSurj.lean Modified Mathlib/NumberTheory/NumberField/CanonicalEmbedding.lean Modified Mathlib/NumberTheory/NumberField/Discriminant.lean Modified Mathlib/NumberTheory/NumberField/Units.lean 2024-02-14 21:13:00 8f52544 feat(Topology/Order): assorted lemmas (#10556) * Add `upperBounds_closure`, `lowerBounds_closure`, `bddAbove_closure`, `bddBelow_closure`. * Add `IsAntichain.interior_eq_empty`. * Generalize `nhds_left'_le_nhds_ne` and `nhds_right'_le_nhds_ne` to a `Preorder`. Partly forward-ports https://github.com/leanprover-community/mathlib/pull/16976 ESTIMATED CHANGES Modified Mathlib/Data/Set/Intervals/UnorderedInterval.lean Modified Mathlib/Order/Bounds/Basic.lean + theorem mem_lowerBounds_iff_subset_Ici + theorem mem_upperBounds_iff_subset_Iic Modified Mathlib/Topology/Algebra/Order/LeftRight.lean + theorem IsAntichain.interior_eq_empty' + theorem IsAntichain.interior_eq_empty Modified Mathlib/Topology/Algebra/Order/UpperLower.lean Modified Mathlib/Topology/Order/OrderClosed.lean + theorem bddAbove_closure + theorem bddBelow_closure + theorem lowerBounds_closure + theorem upperBounds_closure 2024-02-14 20:20:00 b2c40e8 chore(Perm/Sign): `Fintype` -> `Finite` (#10549) ESTIMATED CHANGES Modified Mathlib/GroupTheory/Perm/Sign.lean +/- def Equiv.Perm.signAux3 +/- theorem Equiv.Perm.signAux3_mul_and_swap +/- theorem Equiv.Perm.subtypePermOfFintype_apply +/- theorem Equiv.Perm.subtypePermOfFintype_one 2024-02-14 19:13:47 30e83bf feat: finality of a certain functor related to colimits of representable presheaves (#10339) This is the final missing ingredient of the [recognition theorem for Ind-objects (Prop. 4.8)](https://ncatlab.org/nlab/show/ind-object#recognition_of_indobjects), so after this is done it's probably finally time to get the definition of an Ind-object into mathlib. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Limits/Presheaf.lean + theorem CategoryTheory.final_toCostructuredArrow_comp_pre 2024-02-14 19:13:46 816a7eb feat: add a `DilationEquiv` for scaling in normed spaces (#10009) ESTIMATED CHANGES Modified Mathlib/Analysis/NormedSpace/AddTorsor.lean + def DilationEquiv.smulTorsor + theorem DilationEquiv.smulTorsor_preimage_ball + theorem DilationEquiv.smulTorsor_ratio 2024-02-14 18:23:35 aa79ce0 chore(OrderOfElement,Sylow): `Fintype` -> `Finite` (#10550) ESTIMATED CHANGES Modified Mathlib/GroupTheory/OrderOfElement.lean +/- def subgroupOfIdempotent +/- def submonoidOfIdempotent Modified Mathlib/GroupTheory/Sylow.lean 2024-02-14 17:45:38 765353a feat(CategoryTheory/Sites): add a left version of `sheafCongr` (#10423) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Sites/Equivalence.lean +/- theorem CategoryTheory.Equivalence.coverPreserving + theorem CategoryTheory.Equivalence.eq_inducedTopology_of_transports +/- def CategoryTheory.Equivalence.sheafCongr.counitIso +/- def CategoryTheory.Equivalence.sheafCongr.functor +/- def CategoryTheory.Equivalence.sheafCongr.inverse +/- def CategoryTheory.Equivalence.sheafCongr.unitIso +/- def CategoryTheory.Equivalence.sheafCongr +/- def CategoryTheory.Equivalence.transportIsoSheafToPresheaf +/- def CategoryTheory.Equivalence.transportSheafificationAdjunction +/- def CategoryTheory.smallSheafify 2024-02-14 17:09:15 e0e7b0c chore(CategoryTheory/Limits/HasLimits): golf proofs (#10532) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Limits/HasLimits.lean 2024-02-14 15:41:37 f0a799f feat: connect AddMonoidAlgebra.supDegree and Polynomial.natDegree/degree (#10518) ESTIMATED CHANGES Modified Mathlib/Algebra/MonoidAlgebra/Degree.lean - theorem AddMonoidAlgebra.apply_add_of_supDegree_eq + theorem AddMonoidAlgebra.apply_add_of_supDegree_le +/- def AddMonoidAlgebra.infDegree + theorem AddMonoidAlgebra.infDegree_withTop_some_comp +/- theorem AddMonoidAlgebra.le_infDegree_add + theorem AddMonoidAlgebra.supDegree_withBot_some_comp Modified Mathlib/Data/Polynomial/Degree/Definitions.lean + theorem Polynomial.supDegree_eq_degree + theorem Polynomial.supDegree_eq_natDegree Modified Mathlib/Data/Polynomial/Degree/Lemmas.lean 2024-02-14 15:41:35 8e570e7 feat: `DistribSMul R R` instance for `NonUnitalNonAssocSemiring R` (#10162) Nonunital Nonassociative semirings act (in some sense) on themselves by multiplication, and this multiplication satisfies the requirements of the `DistribSMul` class. This is part of a refactor of HahnSeries that includes having `HahnSeries Γ R` act on `HahnSeries Γ V` for `V` an `R`-module. I'm not sure about the best file for this instance. `#find_home!` suggested `Mathlib.Algebra.SMulWithZero`, but it looks a bit strange there. ESTIMATED CHANGES Modified Mathlib/Algebra/SMulWithZero.lean 2024-02-14 14:50:37 e1a19e3 feat: dot notation for `IsTheta.add_isLittleO`, and `add_comm`ed variants (#10386) BREAKING CHANGE: Change `IsTheta.add_isLittleO` into a dot-notation statement, in line with the existing `IsBigO.add_isLittleO`. Move the current `IsTheta.add_isLittleO` statement to `IsLittleO.right_isTheta_add'`, in line with the existing `IsLittleO.right_isBigO_add`. feat: Add `add_comm`ed variants of related lemmas. These changes smoothen the flow when proving e.g. `a + b + c + d + e + f =Θ[l] d`. ESTIMATED CHANGES Modified Mathlib/Analysis/Asymptotics/Asymptotics.lean + theorem Asymptotics.IsLittleO.right_isBigO_add' Modified Mathlib/Analysis/Asymptotics/Theta.lean + theorem Asymptotics.IsLittleO.add_isTheta + theorem Asymptotics.IsLittleO.right_isTheta_add' + theorem Asymptotics.IsLittleO.right_isTheta_add +/- theorem Asymptotics.IsTheta.add_isLittleO 2024-02-14 14:03:17 8658c57 feat: `NormedAlgebra.complexToReal` and other `RestrictScalars` instances (#10374) This adds some instances regarding normed algebra structures to `RestrictScalars` to mimic those for normed spaces. In addition, given a normed `ℂ`-algebra, this puts a normed `ℝ`-algebra structure on the same space. This is *not* adding any new data instances, as these already exist from `Algebra.complexToReal`. ESTIMATED CHANGES Modified Mathlib/Analysis/Complex/Basic.lean Modified Mathlib/Analysis/NormedSpace/Basic.lean + def Module.RestrictScalars.normedAlgebraOrig + def NormedAlgebra.restrictScalars 2024-02-14 12:29:09 ca4293b feat: add the coercion from types satisfying `StarAlgEquivClass` to `StarAlgEquiv` (#10368) ESTIMATED CHANGES Modified Mathlib/Algebra/Star/StarAlgHom.lean + def StarAlgEquivClass.toStarAlgEquiv 2024-02-14 11:28:56 73913b6 feat(CategoryTheory/Bicategory): adjunctions as Kan extensions (#10045) We also show that a left adjoint commutes with left Kan extensions. - [x] depends on: #10178 ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/CategoryTheory/Bicategory/Extension.lean +/- def CategoryTheory.Bicategory.LeftExtension.alongId + theorem CategoryTheory.Bicategory.LeftExtension.w + def CategoryTheory.Bicategory.LeftExtension.whisker + def CategoryTheory.Bicategory.LeftExtension.whiskerIdCancel + theorem CategoryTheory.Bicategory.LeftExtension.whisker_extension + theorem CategoryTheory.Bicategory.LeftExtension.whisker_unit + def CategoryTheory.Bicategory.LeftExtension.whiskering +/- def CategoryTheory.Bicategory.LeftLift.alongId + theorem CategoryTheory.Bicategory.LeftLift.w + def CategoryTheory.Bicategory.LeftLift.whisker + def CategoryTheory.Bicategory.LeftLift.whiskerIdCancel + theorem CategoryTheory.Bicategory.LeftLift.whisker_lift + theorem CategoryTheory.Bicategory.LeftLift.whisker_unit + def CategoryTheory.Bicategory.LeftLift.whiskering +/- def CategoryTheory.Bicategory.RightExtension.alongId + theorem CategoryTheory.Bicategory.RightExtension.w +/- def CategoryTheory.Bicategory.RightLift.alongId + theorem CategoryTheory.Bicategory.RightLift.w Added Mathlib/CategoryTheory/Bicategory/Kan/Adjunction.lean + def CategoryTheory.Bicategory.Adjunction.isAbsoluteLeftKan + def CategoryTheory.Bicategory.Adjunction.isAbsoluteLeftKanLift + def CategoryTheory.Bicategory.LeftExtension.IsAbsKan.adjunction + def CategoryTheory.Bicategory.LeftExtension.IsKan.adjunction + def CategoryTheory.Bicategory.LeftExtension.isKanOfWhiskerLeftAdjoint + def CategoryTheory.Bicategory.LeftLift.IsAbsKan.adjunction + def CategoryTheory.Bicategory.LeftLift.IsKan.adjunction Modified Mathlib/CategoryTheory/Bicategory/Kan/IsKan.lean + def CategoryTheory.Bicategory.LeftExtension.IsAbsKan.isKan + theorem CategoryTheory.Bicategory.LeftExtension.IsKan.fac + theorem CategoryTheory.Bicategory.LeftExtension.IsKan.hom_ext + def CategoryTheory.Bicategory.LeftLift.IsAbsKan.isKan + theorem CategoryTheory.Bicategory.LeftLift.IsKan.fac + theorem CategoryTheory.Bicategory.LeftLift.IsKan.hom_ext 2024-02-14 10:22:14 ed63382 refactor(Probability/Kernel/CondCdf): mv atBot_le_nhds_bot/top (#10132) ESTIMATED CHANGES Modified Mathlib/Probability/Kernel/CondCdf.lean - theorem atBot_le_nhds_bot - theorem atTop_le_nhds_top Modified Mathlib/Topology/Order/Basic.lean + theorem atBot_le_nhds_bot + theorem atTop_le_nhds_top 2024-02-14 10:22:13 b94dc68 feat(GroupTheory/Submonoid/Units): Add `Submonoid.units` and related definitions and lemmas. (#9006) The subgroup of the type of units added in this PR is something we have in other guises, which are somewhat less useful for some forms of working. The intention is to provide different options depending on how you want to think about the group of units in a submonoid. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Group/Units/Equiv.lean - theorem coe_toUnits + theorem toUnits_val_apply Modified Mathlib/Analysis/Convolution.lean Modified Mathlib/GroupTheory/Submonoid/Inverses.lean Modified Mathlib/GroupTheory/Submonoid/Operations.lean Added Mathlib/GroupTheory/Submonoid/Units.lean + theorem Subgroup.exists_mem_ofUnits_val_eq + theorem Subgroup.isUnit_of_mem_ofUnits + theorem Subgroup.mem_iff_toUnits_mem_units + theorem Subgroup.mem_ofUnits + theorem Subgroup.mem_ofUnits_iff + theorem Subgroup.mem_ofUnits_iff_exists_isUnit + theorem Subgroup.mem_ofUnits_iff_toUnits_mem + theorem Subgroup.mem_ofUnits_of_isUnit_of_unit_mem + theorem Subgroup.mem_of_mem_val_ofUnits + theorem Subgroup.mem_units_iff_val_mem + def Subgroup.ofUnits + theorem Subgroup.ofUnits_bot + theorem Subgroup.ofUnits_iSup + theorem Subgroup.ofUnits_iSup₂ + theorem Subgroup.ofUnits_inf + theorem Subgroup.ofUnits_inf_units + theorem Subgroup.ofUnits_injective + theorem Subgroup.ofUnits_le_ofUnits_iff + theorem Subgroup.ofUnits_mono + theorem Subgroup.ofUnits_right_inverse + theorem Subgroup.ofUnits_sSup + theorem Subgroup.ofUnits_strictMono + theorem Subgroup.ofUnits_sup_units + theorem Subgroup.unit_eq_unit_of_mem_ofUnits + theorem Subgroup.unit_mem_of_mem_ofUnits + theorem Subgroup.unit_of_mem_ofUnits_spec_eq_of_val_mem + theorem Subgroup.unit_of_mem_ofUnits_spec_mem + theorem Subgroup.unit_of_mem_ofUnits_spec_val_eq_of_mem + def Subgroup.unitsEquivSelf + theorem Subgroup.units_ofUnits_eq + theorem Subgroup.val_mem_ofUnits_iff_mem + theorem Submonoid.coe_inv_val_mul_coe_val + theorem Submonoid.coe_val_mul_coe_inv_val + theorem Submonoid.inv_mem_units + theorem Submonoid.inv_mem_units_iff + theorem Submonoid.inv_val_mem_of_mem_units + theorem Submonoid.mem_units_iff + theorem Submonoid.mem_units_of_val_mem_inv_val_mem + theorem Submonoid.mk_inv_mul_mk_eq_one + theorem Submonoid.mk_mul_mk_inv_eq_one + theorem Submonoid.mul_mem_units + theorem Submonoid.ofUnits_units_le + def Submonoid.units + def Submonoid.unitsEquivUnitsType + theorem Submonoid.units_bot + theorem Submonoid.units_iInf + theorem Submonoid.units_iInf₂ + theorem Submonoid.units_inf + theorem Submonoid.units_left_inverse + theorem Submonoid.units_mono + theorem Submonoid.units_sInf + theorem Submonoid.units_surjective + theorem Submonoid.units_top + theorem Submonoid.val_mem_of_mem_units + theorem ofUnits_le_iff_le_units + theorem ofUnits_units_gc + def ofUnits_units_gci 2024-02-14 09:39:28 a249078 feat: `DecidableEq` for `Multiset.ToType` (#10505) Also clean up some of the documentation, for instance removing the claim that you shouldn't use `Multiset.ToType` directly. ESTIMATED CHANGES Modified Mathlib/Data/Multiset/Fintype.lean +/- def Multiset.ToType 2024-02-14 09:39:28 1c8f246 feat(Analysis/Asymptotics/Asymptotics): generalize smul lemmas to normed rings (#9811) Using `BoundedSMul` instead of `NormedSpace` makes these true more generally. The old proofs do not generalize, so are replaced with copies of the `mul` proofs. The `const_smul_self` lemmas match the existing `const_mul_self` ones. `shake` then reports that the imports can be reduced. ESTIMATED CHANGES Modified Mathlib/Analysis/Asymptotics/Asymptotics.lean +/- theorem Asymptotics.IsBigO.const_smul_left + theorem Asymptotics.IsBigO.const_smul_self +/- theorem Asymptotics.IsBigOWith.const_smul_left + theorem Asymptotics.IsBigOWith.const_smul_self +/- theorem Asymptotics.IsLittleO.const_smul_left +/- theorem Asymptotics.IsLittleO.tendsto_inv_smul_nhds_zero +/- theorem Asymptotics.isBigOWith_of_eq_mul Modified Mathlib/Analysis/Asymptotics/SpecificAsymptotics.lean Modified Mathlib/Analysis/Asymptotics/Theta.lean Modified Mathlib/Analysis/SpecificLimits/Normed.lean Modified Mathlib/Order/Filter/ZeroAndBoundedAtFilter.lean 2024-02-14 09:39:27 166c0ad feat(LinearAlgebra/CliffordAlgebra): isomorphism for direct sums of vector spaces (#7644) The main result here is `CliffordAlgebra (Q₁.prod Q₂) ≃ₐ[R] (evenOdd Q₁ ᵍ⊗[R] evenOdd Q₂)`. The proof of `map_inl_mul_map_inr_of_mem_evenOdd` is rather ugly here, but I suspect to pull off an `ext`-based proof, we need a bunch of missing infrastructure: * Morphisms of graded algebras * The tensor product of graded algebras *as a graded algebra* ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/LinearAlgebra/CliffordAlgebra/Prod.lean + theorem CliffordAlgebra.commute_map_mul_map_of_isOrtho_of_mem_evenOdd_zero_left + theorem CliffordAlgebra.commute_map_mul_map_of_isOrtho_of_mem_evenOdd_zero_right + theorem CliffordAlgebra.map_mul_map_eq_neg_of_isOrtho_of_mem_evenOdd_one + def CliffordAlgebra.ofProd + theorem CliffordAlgebra.ofProd_comp_toProd + theorem CliffordAlgebra.ofProd_ι_mk + def CliffordAlgebra.prodEquiv + def CliffordAlgebra.toProd + theorem CliffordAlgebra.toProd_comp_ofProd + theorem CliffordAlgebra.toProd_one_tmul_ι + theorem CliffordAlgebra.toProd_ι_tmul_one 2024-02-14 08:30:08 30c9985 feat: an irreducible real polynomial has degree ≤2 (#10431) ESTIMATED CHANGES Modified Mathlib/Analysis/Complex/Polynomial.lean + theorem Irreducible.degree_le_two + theorem Irreducible.nat_degree_le_two + theorem Polynomial.mul_star_dvd_of_aeval_eq_zero_im_ne_zero + theorem Polynomial.quadratic_dvd_of_aeval_eq_zero_im_ne_zero Modified Mathlib/Data/IsROrC/Lemmas.lean + theorem Polynomial.aeval_conj + theorem Polynomial.aeval_ofReal 2024-02-14 08:30:07 da3c42f feat(Algebra/Group): Add commute_iff_eq and a few lemmas on conjugation (#9870) This introduces some helpful, small lemmas around conjugation in groups, as well as `commute_iff_eq`, which removes the need to use `show` or `unfold` to get an expression of the form `a * b = b * a` to prove. ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Basic.lean + theorem conj_eq_one_iff Modified Mathlib/Algebra/Group/Commute/Basic.lean Modified Mathlib/Algebra/Group/Commute/Defs.lean + theorem commute_iff_eq Modified Mathlib/Algebra/Group/Semiconj/Defs.lean + theorem SemiconjBy.conj_iff 2024-02-14 08:30:06 fabcf9d feat(Algebra/Group): Miscellaneous lemmas (#9387) From LeanAPAP, LeanCamCombi and PFR ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Basic.lean + theorem eq_iff_eq_of_mul_eq_mul + theorem ne_iff_ne_of_mul_eq_mul Modified Mathlib/Algebra/Group/Equiv/Basic.lean + theorem MulEquiv.coe_monoidHom_comp_coe_monoidHom_symm +/- theorem MulEquiv.coe_monoidHom_refl + theorem MulEquiv.coe_monoidHom_symm_comp_coe_monoidHom +/- theorem MulEquiv.coe_monoidHom_trans +/- theorem MulEquiv.coe_toMonoidHom + theorem MulEquiv.comp_left_injective + theorem MulEquiv.comp_right_injective +/- theorem MulEquiv.map_ne_one_iff +/- theorem MulEquiv.ofBijective_apply_symm_apply +/- def MulEquiv.toMonoidHom +/- theorem MulEquiv.toMonoidHom_injective Modified Mathlib/Algebra/Group/Hom/Basic.lean + theorem MonoidHom.comp_div +/- theorem MonoidHom.comp_inv +/- theorem MonoidHom.comp_mul +/- theorem MonoidHom.div_apply + theorem MonoidHom.div_comp +/- theorem MonoidHom.inv_apply +/- theorem MonoidHom.inv_comp +/- theorem MonoidHom.mul_apply +/- theorem MonoidHom.mul_comp Modified Mathlib/Algebra/Group/Hom/Defs.lean + theorem map_comp_div' + theorem map_comp_div + theorem map_comp_inv + theorem map_comp_mul + theorem map_comp_mul_inv + theorem map_comp_one + theorem map_comp_pow + theorem map_comp_zpow' + theorem map_comp_zpow Modified Mathlib/Algebra/Group/TypeTags.lean + theorem AddMonoidHom.coe_toMultiplicative'' + theorem AddMonoidHom.coe_toMultiplicative' + theorem AddMonoidHom.coe_toMultiplicative + theorem MonoidHom.coe_toAdditive'' + theorem MonoidHom.coe_toAdditive' + theorem MonoidHom.coe_toMultiplicative Modified Mathlib/RingTheory/MvPolynomial/NewtonIdentities.lean 2024-02-14 08:30:05 bfaf1a5 feat: simp config opts in norm_num (#7112) This adds support for `norm_num (config := ...)`, which just forwards the config args to `simp`. The case of `{decide := false}` came up in https://leanprover.zulipchat.com/#narrow/stream/113489-new-members/topic/Prove.20decidable.20statement.20by.20evaluation/near/390390131 . ESTIMATED CHANGES Modified Mathlib/Tactic/NormNum/Core.lean +/- def Mathlib.Meta.NormNum.elabNormNum +/- def Mathlib.Meta.NormNum.getSimpContext Modified test/norm_num_ext.lean 2024-02-14 07:40:12 98a6b53 chore: redistribute tags for `fun_prop` regarding continuity across the library (#10494) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Analysis/Normed/Group/Basic.lean Modified Mathlib/Analysis/SpecialFunctions/Exp.lean Modified Mathlib/Analysis/SpecialFunctions/Log/Basic.lean Modified Mathlib/Data/Real/Sqrt.lean Modified Mathlib/Tactic.lean Modified Mathlib/Tactic/FunProp/ContDiff.lean Deleted Mathlib/Tactic/FunProp/Continuous.lean - theorem Continuous.div₀ - theorem ContinuousAt.comp' - theorem ContinuousAt.div₀ - theorem ContinuousOn.comp'' - theorem ContinuousOn.div₀ - theorem continuousAt_id' - theorem continuousAt_pi' - theorem continuousOn_apply - theorem continuousOn_id' - theorem continuousOn_pi' Modified Mathlib/Tactic/FunProp/Differentiable.lean Modified Mathlib/Tactic/FunProp/Measurable.lean Modified Mathlib/Topology/Algebra/ConstMulAction.lean Modified Mathlib/Topology/Algebra/Group/Basic.lean Modified Mathlib/Topology/Algebra/GroupWithZero.lean + theorem Continuous.div₀ + theorem ContinuousAt.div₀ + theorem ContinuousOn.div₀ Modified Mathlib/Topology/Algebra/Monoid.lean Modified Mathlib/Topology/Algebra/MulAction.lean Modified Mathlib/Topology/Algebra/Order/Group.lean Modified Mathlib/Topology/Algebra/Star.lean Modified Mathlib/Topology/Basic.lean + theorem ContinuousAt.comp' + theorem continuousAt_id' Modified Mathlib/Topology/Constructions.lean + theorem continuousAt_pi' Modified Mathlib/Topology/ContinuousFunction/Basic.lean Modified Mathlib/Topology/ContinuousOn.lean + theorem ContinuousOn.comp'' + theorem continuousOn_apply + theorem continuousOn_id' + theorem continuousOn_pi' Modified Mathlib/Topology/Defs/Basic.lean Modified Mathlib/Topology/Defs/Filter.lean Modified Mathlib/Topology/Instances/ENNReal.lean Modified Mathlib/Topology/MetricSpace/PseudoMetric.lean Modified Mathlib/Topology/Order/Lattice.lean Modified Mathlib/Topology/Order/OrderClosed.lean Modified scripts/noshake.json Modified test/fun_prop2.lean 2024-02-14 07:40:11 f148b92 feat(CategoryTheory/Galois): decomposition in connected components (#10419) Shows that any object in a Galois category is the sum of its connected components. Also shows that the connected components are unique up to isomorphism. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/CategoryTheory/FintypeCat.lean + theorem FintypeCat.hom_inv_id_apply + theorem FintypeCat.inv_hom_id_apply Modified Mathlib/CategoryTheory/Galois/Basic.lean + theorem CategoryTheory.PreGaloisCategory.cardFiber_coprod_eq_sum + theorem CategoryTheory.PreGaloisCategory.cardFiber_eq_of_iso + theorem CategoryTheory.PreGaloisCategory.has_non_trivial_subobject_of_not_isConnected_of_not_initial + theorem CategoryTheory.PreGaloisCategory.isIso_of_mono_of_eqCardFiber + theorem CategoryTheory.PreGaloisCategory.ltCardFiber_of_mono_of_notIso + theorem CategoryTheory.PreGaloisCategory.non_zero_card_fiber_of_not_initial Added Mathlib/CategoryTheory/Galois/Decomposition.lean + theorem CategoryTheory.PreGaloisCategory.connected_component_unique + theorem CategoryTheory.PreGaloisCategory.fiber_in_connected_component + theorem CategoryTheory.PreGaloisCategory.has_decomp_connected_components' + theorem CategoryTheory.PreGaloisCategory.has_decomp_connected_components Modified Mathlib/CategoryTheory/Limits/MonoCoprod.lean + theorem CategoryTheory.Limits.MonoCoprod.monoCoprod_of_preservesCoprod_of_reflectsMono Added Mathlib/CategoryTheory/Limits/Shapes/CombinedProducts.lean + def CategoryTheory.Limits.Cofan.combPairIsColimit + def CategoryTheory.Limits.Fan.combPairIsLimit Modified Mathlib/CategoryTheory/Limits/Shapes/Types.lean + theorem CategoryTheory.Limits.Types.pullbackIsoPullback_inv_fst_apply + theorem CategoryTheory.Limits.Types.pullbackIsoPullback_inv_snd_apply 2024-02-14 07:40:10 7a64c73 chore: Some constants in `CanonicalEmbedding` should be `NNReal` and not `ENNReal` (#10032) ESTIMATED CHANGES Modified Mathlib/NumberTheory/NumberField/CanonicalEmbedding.lean - theorem NumberField.mixedEmbedding.convexBodyLTFactor_lt_top + theorem NumberField.mixedEmbedding.convexBodyLTFactor_ne_zero - theorem NumberField.mixedEmbedding.convexBodyLTFactor_pos - theorem NumberField.mixedEmbedding.convexBodySumFactor_ne_top Modified Mathlib/NumberTheory/NumberField/Discriminant.lean Modified Mathlib/NumberTheory/NumberField/Units.lean 2024-02-14 06:30:12 d70cb7c chore: Split LinearAlgebra/RootSystem/Basic into two files. (#10523) I put the definitions into the new file `Defs` and left the results in `Basic`. Also, I added some todos. I welcome any suggestions for improved splitting schemes. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/LinearAlgebra/RootSystem/Basic.lean - def RootPairing.IsCrystallographic - def RootPairing.IsReduced - def RootPairing.coreflection - def RootPairing.reflection - structure RootPairing - structure RootSystem Added Mathlib/LinearAlgebra/RootSystem/Defs.lean + def RootPairing.IsCrystallographic + def RootPairing.IsReduced + def RootPairing.coreflection + def RootPairing.reflection + structure RootPairing + structure RootSystem 2024-02-14 06:30:12 3984e58 chore(Data/Fin): move `Fin.equiv_iff_eq` (#10522) The new proof is longer but I need this lemma before `Fintype` for a future refactor, see #9794 ESTIMATED CHANGES Modified Mathlib/Data/Fin/Basic.lean + theorem Fin.equiv_iff_eq + theorem Fin.nonempty_embedding_iff Modified Mathlib/Data/Fintype/Card.lean - theorem Fin.equiv_iff_eq 2024-02-14 06:30:11 b5ee7ad chore: small fixes around Nat.find/findGreatest (#10512) ESTIMATED CHANGES Modified Mathlib/Data/Nat/Defs.lean +/- theorem Nat.find_mono 2024-02-14 06:30:10 5cc14ef feat(ENat): add several lemmas (#10508) Add lemmas needed for #10472 ESTIMATED CHANGES Modified Mathlib/Data/ENat/Basic.lean + theorem ENat.toNat_eq_zero Modified Mathlib/SetTheory/Cardinal/ENat.lean + theorem Cardinal.toENatAux_le_nat + theorem Cardinal.toENat_le_nat + theorem Cardinal.toENat_le_ofNat + theorem Cardinal.toENat_le_one + theorem Cardinal.toENat_lift 2024-02-14 06:30:09 e862bf8 chore: add VSCode branch protection to master (#10322) Adds branch protection to VSCode for the master branch, so users don't commit accidentally. Screenshot 2024-02-06 at 10 30 14 PM (2) ESTIMATED CHANGES Modified .vscode/settings.json 2024-02-14 06:30:08 35df908 feat(Analysis/Convex): homeomorphism to the ball (#10136) Prove that for a convex bounded set `s` with nonempty interior, there exists a homeomorphism that sends `interior s` to `ball 0 1` and `closure s` to `closedBall 0 1`. Motivated by lemmas in Shamrock-Frost/BrouwerFixedPoint ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/Convex/GaugeRescale.lean + theorem continuous_gaugeRescale + theorem exists_homeomorph_image_eq + theorem exists_homeomorph_image_interior_closure_frontier_eq_unitBall + def gaugeRescale + def gaugeRescaleEquiv + def gaugeRescaleHomeomorph + theorem gaugeRescale_def + theorem gaugeRescale_gaugeRescale + theorem gaugeRescale_self + theorem gaugeRescale_self_apply + theorem gaugeRescale_smul + theorem gaugeRescale_zero + theorem gauge_gaugeRescale' + theorem gauge_gaugeRescale + theorem gauge_gaugeRescale_le + theorem image_gaugeRescaleHomeomorph_closure + theorem image_gaugeRescaleHomeomorph_interior + theorem mapsTo_gaugeRescale_closure + theorem mapsTo_gaugeRescale_interior 2024-02-14 05:27:07 e3c9f96 chore: bump Std (#10514) ESTIMATED CHANGES Modified Mathlib/Data/BitVec/Lemmas.lean - theorem Std.BitVec.toFin_add - theorem Std.BitVec.toFin_and - theorem Std.BitVec.toFin_mul - theorem Std.BitVec.toFin_or - theorem Std.BitVec.toFin_sub - theorem Std.BitVec.toFin_xor Modified Mathlib/Data/Nat/Bitwise.lean Modified Mathlib/Data/Nat/Defs.lean Modified Mathlib/Data/Nat/Pow.lean - theorem Nat.dvd_of_pow_dvd - theorem Nat.pow_div - theorem Nat.pow_dvd_of_le_of_pow_dvd Modified lake-manifest.json 2024-02-14 04:22:40 d5d33e0 feat: add `Submodule.Quotient.instBoundedSMul` (#10520) The proof needs minimal modifications to go through for the inequality case. ESTIMATED CHANGES Modified Mathlib/Analysis/Normed/Group/Quotient.lean 2024-02-14 04:22:39 f499c22 chore: remove `include/omit` porting notes (#10517) See [this Zulip discussion](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/Addressing.20porting.20notes.3F/near/421342495). ESTIMATED CHANGES Modified Mathlib/Algebra/Module/Basic.lean Modified Mathlib/Algebra/Order/Pointwise.lean Modified Mathlib/CategoryTheory/Adjunction/Mates.lean Modified Mathlib/CategoryTheory/ConcreteCategory/UnbundledHom.lean Modified Mathlib/Data/PNat/Find.lean Modified Mathlib/GroupTheory/CoprodI.lean Modified Mathlib/GroupTheory/Subsemigroup/Operations.lean Modified Mathlib/Logic/Encodable/Basic.lean Modified Mathlib/RingTheory/Localization/Module.lean 2024-02-14 04:22:38 4ef20c4 chore: remove useless `include` porting note (#10516) This one was added by myself and not removed in #10503. ESTIMATED CHANGES Modified Mathlib/Topology/Category/Profinite/CofilteredLimit.lean 2024-02-14 04:22:37 ff139a3 chore(Order.Grade): remove porting notes (#10496) Simple changes to remove porting notes. ESTIMATED CHANGES Modified Mathlib/Order/Grade.lean 2024-02-14 04:22:36 de51f2a feat: injectivity of continuous linear maps is an open condition (#10487) in finite-dimensional spaces over a complete field. This is used to showing that immersions are open. NB: this result is false for general continuous maps (only surjectivity is open there). From the sphere-eversion project. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Analysis/Normed/Field/Basic.lean Modified Mathlib/Analysis/Normed/Group/Basic.lean Added Mathlib/Analysis/Normed/Group/Lemmas.lean + theorem eventually_nnnorm_sub_lt + theorem eventually_norm_sub_lt Modified Mathlib/Analysis/NormedSpace/FiniteDimension.lean + theorem ContinuousLinearMap.isOpen_injective + theorem LinearMap.injective_iff_antilipschitz 2024-02-14 03:21:19 bdcbe09 feat: add SModEq.instTrans (#10495) ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/SModEq.lean 2024-02-14 03:21:19 525d753 feat(MeasureTheory/Integral/IntervalIntegral): integral_Iic_add_Ioi (#10485) ESTIMATED CHANGES Modified Mathlib/Data/Set/Intervals/Disjoint.lean + theorem Set.Iio_disjoint_Ici Modified Mathlib/MeasureTheory/Integral/IntervalIntegral.lean + theorem intervalIntegral.integral_Iic_add_Ioi + theorem intervalIntegral.integral_Iio_add_Ici 2024-02-14 03:21:18 3809ca5 feat(FieldTheory/Perfect): add various convenient lemmas for `iterateFrobenius[Equiv]` (#10405) ESTIMATED CHANGES Modified Mathlib/Algebra/CharP/ExpChar.lean +/- theorem coe_iterateFrobenius_mul + theorem iterateFrobenius_add_apply + theorem iterateFrobenius_mul_apply +/- theorem iterateFrobenius_one + theorem iterateFrobenius_one_apply +/- theorem iterateFrobenius_zero + theorem iterateFrobenius_zero_apply Modified Mathlib/FieldTheory/Perfect.lean + theorem frobeniusEquiv_def + theorem iterateFrobeniusEquiv_add + theorem iterateFrobeniusEquiv_add_apply + theorem iterateFrobeniusEquiv_def + theorem iterateFrobeniusEquiv_one + theorem iterateFrobeniusEquiv_one_apply + theorem iterateFrobeniusEquiv_symm_add + theorem iterateFrobeniusEquiv_symm_add_apply + theorem iterateFrobeniusEquiv_zero + theorem iterateFrobeniusEquiv_zero_apply 2024-02-14 03:21:17 72068a1 feat(LinearAlgebra/Charpoly): the universal characteristic polynomial (#10358) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Data/MvPolynomial/Basic.lean Modified Mathlib/Data/MvPolynomial/Equiv.lean + theorem MvPolynomial.finSuccEquiv_rename_finSuccEquiv Modified Mathlib/LinearAlgebra/Matrix/Charpoly/Basic.lean + theorem Matrix.charpoly_map + theorem charmatrix_map Added Mathlib/LinearAlgebra/Matrix/Charpoly/Univ.lean + theorem Matrix.charpoly.optionEquivLeft_symm_univ_isHomogeneous + theorem Matrix.charpoly.univ_coeff_card + theorem Matrix.charpoly.univ_coeff_eval₂Hom + theorem Matrix.charpoly.univ_coeff_isHomogeneous + theorem Matrix.charpoly.univ_map_eval₂Hom + theorem Matrix.charpoly.univ_map_map + theorem Matrix.charpoly.univ_monic + theorem Matrix.charpoly.univ_natDegree Modified Mathlib/RingTheory/MvPolynomial/Homogeneous.lean + theorem MvPolynomial.IsHomogeneous.coeff_isHomogeneous_of_optionEquivLeft_symm 2024-02-14 03:21:16 e50aeb4 chore: Move LinearMap.ker to a new file (#10233) This shortens `Mathlib.LinearAlgebra.Basic`, which is both longer than we like and doesn't have a clear scope. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Algebra/Basic.lean Modified Mathlib/Algebra/Algebra/NonUnitalSubalgebra.lean Modified Mathlib/Algebra/Algebra/Operations.lean Modified Mathlib/Algebra/Algebra/Prod.lean Modified Mathlib/Algebra/Category/ModuleCat/Basic.lean Added Mathlib/Algebra/Module/Submodule/Ker.lean + theorem AddMonoidHom.coe_toIntLinearMap_ker + theorem LinearEquiv.ker_comp + theorem LinearMap.comp_ker_subtype + theorem LinearMap.disjoint_ker' + theorem LinearMap.disjoint_ker + theorem LinearMap.injOn_of_disjoint_ker + theorem LinearMap.injective_domRestrict_iff + theorem LinearMap.injective_restrict_iff_disjoint + def LinearMap.iterateKer + def LinearMap.ker + theorem LinearMap.ker_codRestrict + theorem LinearMap.ker_comp + theorem LinearMap.ker_comp_of_ker_eq_bot + theorem LinearMap.ker_eq_bot' + theorem LinearMap.ker_eq_bot + theorem LinearMap.ker_eq_bot_of_injective + theorem LinearMap.ker_eq_bot_of_inverse + theorem LinearMap.ker_eq_top + theorem LinearMap.ker_id + theorem LinearMap.ker_le_comap + theorem LinearMap.ker_le_ker_comp + theorem LinearMap.ker_restrict + theorem LinearMap.ker_smul' + theorem LinearMap.ker_smul + theorem LinearMap.ker_sup_ker_le_ker_comp_of_commute + theorem LinearMap.ker_toAddSubgroup + theorem LinearMap.ker_toAddSubmonoid + theorem LinearMap.ker_zero + theorem LinearMap.le_ker_iff_map + theorem LinearMap.map_coe_ker + theorem LinearMap.mem_ker + theorem LinearMap.sub_mem_ker_iff + theorem LinearMapClass.ker_eq_bot + theorem Submodule.comap_bot + theorem Submodule.ker_inclusion + theorem Submodule.ker_subtype Modified Mathlib/Algebra/Module/Submodule/Map.lean + theorem LinearEquiv.map_eq_comap + def LinearEquiv.submoduleMap + theorem LinearEquiv.submoduleMap_apply + theorem LinearEquiv.submoduleMap_symm_apply + theorem LinearMap.comap_codRestrict + theorem LinearMap.map_codRestrict + theorem Submodule.disjoint_iff_comap_eq_bot Modified Mathlib/Analysis/LocallyConvex/Polar.lean Modified Mathlib/LinearAlgebra/AffineSpace/AffineEquiv.lean Modified Mathlib/LinearAlgebra/Basic.lean - theorem AddMonoidHom.coe_toIntLinearMap_ker - theorem LinearEquiv.ker_comp - theorem LinearEquiv.map_eq_comap - def LinearEquiv.submoduleMap - theorem LinearEquiv.submoduleMap_apply - theorem LinearEquiv.submoduleMap_symm_apply - theorem LinearMap.comap_codRestrict - theorem LinearMap.comp_ker_subtype - theorem LinearMap.disjoint_ker' - theorem LinearMap.disjoint_ker - theorem LinearMap.injOn_of_disjoint_ker - theorem LinearMap.injective_domRestrict_iff - theorem LinearMap.injective_restrict_iff_disjoint - def LinearMap.iterateKer - def LinearMap.ker - theorem LinearMap.ker_codRestrict - theorem LinearMap.ker_comp - theorem LinearMap.ker_comp_of_ker_eq_bot - theorem LinearMap.ker_eq_bot' - theorem LinearMap.ker_eq_bot - theorem LinearMap.ker_eq_bot_of_injective - theorem LinearMap.ker_eq_bot_of_inverse - theorem LinearMap.ker_eq_top - theorem LinearMap.ker_id - theorem LinearMap.ker_le_comap - theorem LinearMap.ker_le_ker_comp - theorem LinearMap.ker_restrict - theorem LinearMap.ker_smul' - theorem LinearMap.ker_smul - theorem LinearMap.ker_sup_ker_le_ker_comp_of_commute - theorem LinearMap.ker_toAddSubgroup - theorem LinearMap.ker_toAddSubmonoid - theorem LinearMap.ker_zero - theorem LinearMap.le_ker_iff_map - theorem LinearMap.map_codRestrict - theorem LinearMap.map_coe_ker - theorem LinearMap.mem_ker - theorem LinearMap.sub_mem_ker_iff - theorem LinearMapClass.ker_eq_bot - theorem Submodule.comap_bot - theorem Submodule.disjoint_iff_comap_eq_bot - theorem Submodule.ker_inclusion - theorem Submodule.ker_subtype Modified Mathlib/LinearAlgebra/BilinearMap.lean Modified Mathlib/LinearAlgebra/Dual.lean Modified Mathlib/LinearAlgebra/PiTensorProduct.lean Modified Mathlib/LinearAlgebra/Prod.lean Modified Mathlib/LinearAlgebra/SesquilinearForm.lean Modified Mathlib/LinearAlgebra/TensorProduct.lean Modified Mathlib/LinearAlgebra/TensorProduct/Tower.lean Modified scripts/style-exceptions.txt 2024-02-14 03:21:15 5bade01 feat: Variants of monotonicity from existence of a derivative (#10229) This PR provides variants of `deriv` lemmas stated in terms of `HasDerivAt` From LeanAPAP ESTIMATED CHANGES Modified Mathlib/Analysis/Calculus/MeanValue.lean - theorem Convex.antitoneOn_of_deriv_nonpos - theorem Convex.monotoneOn_of_deriv_nonneg - theorem Convex.strictAntiOn_of_deriv_neg - theorem Convex.strictMonoOn_of_deriv_pos + theorem StrictAntiOn_of_hasDerivWithinAt_pos + theorem StrictMonoOn_of_hasDerivWithinAt_pos + theorem antitoneOn_of_deriv_nonpos + theorem antitoneOn_of_hasDerivWithinAt_nonpos + theorem antitone_of_hasDerivAt_nonpos + theorem concaveOn_of_hasDerivWithinAt2_nonpos + theorem convexOn_of_hasDerivWithinAt2_nonneg + theorem monotoneOn_of_deriv_nonneg + theorem monotoneOn_of_hasDerivWithinAt_nonneg + theorem monotone_of_hasDerivAt_nonneg + theorem strictAntiOn_of_deriv_neg + theorem strictAnti_of_hasDerivAt_pos + theorem strictMonoOn_of_deriv_pos + theorem strictMono_of_hasDerivAt_pos Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Bounds.lean Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Deriv.lean 2024-02-14 03:21:14 129c0e0 refactor: Use `p⁻¹` instead of `1 / p` in conjugate exponents (#10216) I am keeping some `1 / p` lemmas behind to keep the diff small but the goal is to get rid of them entirely. ESTIMATED CHANGES Modified Mathlib/Analysis/MeanInequalities.lean +/- theorem NNReal.young_inequality Modified Mathlib/Data/ENNReal/Real.lean +/- theorem ENNReal.ofReal_inv_of_pos Modified Mathlib/Data/Real/ConjugateExponents.lean +/- theorem Real.IsConjugateExponent.inv_add_inv_conj_ennreal +/- theorem Real.IsConjugateExponent.inv_add_inv_conj_nnreal + theorem Real.isConjugateExponent_inv Modified Mathlib/MeasureTheory/Group/GeometryOfNumbers.lean Modified Mathlib/MeasureTheory/Integral/MeanInequalities.lean Modified Mathlib/MeasureTheory/Measure/Tilted.lean Modified Mathlib/NumberTheory/Rayleigh.lean 2024-02-14 03:21:13 1f2d155 feat: complex arctangent (#9889) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/SpecialFunctions/Complex/Arctan.lean + theorem Complex.arctan_tan + theorem Complex.arg_one_add_mem_Ioo + theorem Complex.cos_ne_zero_of_arctan_bounds + theorem Complex.hasSum_arctan + theorem Complex.hasSum_arctan_aux + theorem Complex.ofReal_arctan + theorem Complex.tan_arctan + theorem Real.hasSum_arctan Modified Mathlib/Analysis/SpecialFunctions/Complex/Arg.lean + theorem Complex.abs_arg_lt_pi_div_two_iff + theorem Complex.arg_lt_pi_div_two_iff 2024-02-14 03:21:12 93d4e6e feat(Algebra/Category/Ring/Constructions): categorical product of rings is the cartesian product (#9394) ESTIMATED CHANGES Modified Mathlib/Algebra/Category/Ring/Constructions.lean + def CommRingCat.piFan + def CommRingCat.piFanIsLimit + def CommRingCat.piIsoPi + def RingEquiv.piEquivPi 2024-02-14 03:21:12 3b70046 feat: ZMod cyclic equivs (#9038) ESTIMATED CHANGES Modified Mathlib/GroupTheory/SpecificGroups/Cyclic.lean + theorem zmultiplesHom_ker_eq + theorem zpowersHom_ker_eq 2024-02-14 02:40:52 be086f5 chore(Analysis/SpecificLimits/Normed): drop unneeded import (#10407) ESTIMATED CHANGES Modified Mathlib/Analysis/SpecificLimits/Normed.lean 2024-02-14 02:40:51 84a99a9 feat(Analysis/Distribution/SchwartzMap): pderiv equals lineDeriv (#9954) ESTIMATED CHANGES Modified Mathlib/Analysis/Distribution/SchwartzSpace.lean + theorem SchwartzMap.pderivCLM_eq_lineDeriv 2024-02-14 01:35:55 088de1d chore(Normed.Group.BallSphere): address porting notes (#10510) There are no longer timeouts in typeclass synthesis. ESTIMATED CHANGES Modified Mathlib/Analysis/Normed/Group/BallSphere.lean 2024-02-14 01:35:54 052755a chore(MetricSpace.Gluing): address porting note (#10509) The current porting note says ``TODO: w/o `@`, tries to generate some `[MetricSpace _]` before finding `X` `Y` `` but removing the `@` seems to generate identical terms with `pp.all true`. ESTIMATED CHANGES Modified Mathlib/Topology/MetricSpace/Gluing.lean 2024-02-14 01:35:53 c9ad2c5 refactor(WithZeroTopology): use `nhdsAdjoint` (#10411) It's more specialized than `mkOfNhds`. Also golf and rename lemmas about `nhdsAdjoint`. ESTIMATED CHANGES Modified Mathlib/Topology/Algebra/WithZeroTopology.lean +/- theorem WithZeroTopology.nhds_eq_update +/- theorem WithZeroTopology.nhds_of_ne_zero +/- theorem WithZeroTopology.nhds_zero Modified Mathlib/Topology/Order.lean +/- theorem le_nhdsAdjoint_iff' - theorem nhdsAdjoint_nhds +/- theorem nhdsAdjoint_nhds_of_ne + theorem nhds_nhdsAdjoint + theorem nhds_nhdsAdjoint_of_ne + theorem nhds_nhdsAdjoint_same 2024-02-14 01:35:52 73ed7df feat(Logic/Function/FromTypes): Add curried heterogeneous function types (#10394) See #10389 ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Data/Fin/Tuple/Curry.lean + def Function.FromTypes.curry + def Function.FromTypes.curryEquiv + theorem Function.FromTypes.curry_apply_cons + theorem Function.FromTypes.curry_apply_succ + theorem Function.FromTypes.curry_two_eq_curry + theorem Function.FromTypes.curry_uncurry + def Function.FromTypes.uncurry + theorem Function.FromTypes.uncurry_apply_cons + theorem Function.FromTypes.uncurry_apply_succ + theorem Function.FromTypes.uncurry_curry + theorem Function.FromTypes.uncurry_two_eq_uncurry +/- def Function.OfArity.curry +/- def Function.OfArity.curryEquiv + theorem Function.OfArity.curry_two_eq_curry +/- def Function.OfArity.uncurry + theorem Function.OfArity.uncurry_two_eq_uncurry Added Mathlib/Logic/Function/FromTypes.lean + def Function.FromTypes.const + theorem Function.FromTypes.const_succ + theorem Function.FromTypes.const_succ_apply + theorem Function.FromTypes.const_zero + def Function.FromTypes + theorem Function.fromTypes_cons + def Function.fromTypes_cons_equiv + theorem Function.fromTypes_nil + def Function.fromTypes_nil_equiv + theorem Function.fromTypes_succ + def Function.fromTypes_succ_equiv + theorem Function.fromTypes_zero + def Function.fromTypes_zero_equiv Modified Mathlib/Logic/Function/OfArity.lean + theorem Function.FromTypes.fromTypes_fin_const + def Function.FromTypes.fromTypes_fin_const_equiv +/- def Function.OfArity.const - def Function.OfArity +/- theorem Function.ofArity_succ +/- theorem Function.ofArity_zero Modified Mathlib/SetTheory/ZFC/Basic.lean 2024-02-14 01:35:51 3737bb4 feat(Topology): some trivial equivalences with the set of clopens (#10390) This is needed for the construction of limits and colimits in `LightProfinite`. ESTIMATED CHANGES Modified Mathlib/Topology/LocallyConstant/Basic.lean + def LocallyConstant.equivClopens 2024-02-14 01:35:50 1e659b6 feat: HahnModule action by HahnSeries (#10164) Given a `SMul R V` instance, we introduce `HahnModule Γ R V` as an alias for HahnSeries Γ V, and produce a `SMul (HahnSeries Γ R) (HahnModule Γ R V)` instance. We use the `SMul` instance to shorten the `Mul` instance. We will work our way up to `Module (HahnSeries Γ R) (HahnModule Γ R V)` in a later PR. ESTIMATED CHANGES Modified Mathlib/RingTheory/HahnSeries.lean + theorem HahnModule.ext + def HahnModule.of + theorem HahnModule.of_add + theorem HahnModule.of_symm_add + theorem HahnModule.of_symm_zero + theorem HahnModule.of_zero + def HahnModule.rec + theorem HahnModule.smul_coeff + theorem HahnModule.smul_coeff_left + theorem HahnModule.smul_coeff_right + def HahnModule + theorem HahnSeries.of_symm_smul_of_eq_mul 2024-02-14 01:35:49 c783238 chore: Golf some proofs in `ClassGroup` using `FractionalIdeal.num` and `FractionalIdeal.den` (#9853) ESTIMATED CHANGES Modified Mathlib/RingTheory/ClassGroup.lean Modified Mathlib/RingTheory/FractionalIdeal/Basic.lean Modified Mathlib/RingTheory/FractionalIdeal/Operations.lean 2024-02-14 01:35:48 ca018e1 feat: `Finset.nsmul_inf'` (#9838) ESTIMATED CHANGES Modified Mathlib/Data/Finset/Lattice.lean + theorem Finset.nsmul_inf' + theorem Finset.nsmul_sup' 2024-02-14 01:35:47 6f6928d feat(RingTheory/PowerSeries/Basic): coeff of products (#9309) * Use the class `HasPiAntidiagonal` defined in PR #7904 to compute the coefficients of products of power series (in several or one variable) : `MvPowerSeries.coeff_prod` and `PowerSeries.coeff_prod` * Update the file `Archive/Partition.lean` accordingly Co-author : Maria Ines de Frutos Fernandez Based on work of Bhavik Mehta in `Archive/Partition.lean` ESTIMATED CHANGES Modified Archive/Wiedijk100Theorems/Partition.lean - theorem Theorems100.coeff_prod_range - def Theorems100.cut - theorem Theorems100.cut_empty_succ - theorem Theorems100.cut_equiv_antidiag - theorem Theorems100.cut_insert - theorem Theorems100.cut_univ_fin_eq_antidiagonalTuple - theorem Theorems100.cut_zero - theorem Theorems100.mem_cut Modified Mathlib/Data/Finsupp/Defs.lean + theorem AddEquiv.finsuppUnique_symm Modified Mathlib/RingTheory/PowerSeries/Basic.lean + theorem MvPowerSeries.coeff_prod + theorem PowerSeries.coeff_prod 2024-02-14 01:35:45 ca78f3f feat(Condensed): functor from `TopCat.{u+1}` to `CondensedSet.{u}` (#8821) We define the functor which associates a condensed set to a topological space, with the correct universe levels. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Condensed/TopComparison.lean + theorem equalizerCondition_yonedaPresheaf + theorem factorsThrough_of_pullbackCondition Added Mathlib/Topology/Category/TopCat/Yoneda.lean + theorem ContinuousMap.comp_yonedaPresheaf' + theorem ContinuousMap.piComparison_fac + def ContinuousMap.yonedaPresheaf' + def ContinuousMap.yonedaPresheaf 2024-02-14 01:35:44 bb8fb4e feat: charts are structomorphisms (#8160) This is the `ChartedSpace` analogue of `contMDiffOn_extChartAt` and `contMDiffOn_extChartAt_symm`; proving this revealed a few gaps in other API. This may be useful for showing open subsets of a manifold are submanifolds. ESTIMATED CHANGES Modified Mathlib/Geometry/Manifold/ChartedSpace.lean + def PartialHomeomorph.toStructomorph + theorem StructureGroupoid.mem_maximalAtlas_of_eqOnSource + theorem StructureGroupoid.restriction_in_maximalAtlas + theorem StructureGroupoid.restriction_mem_maximalAtlas_subtype + theorem StructureGroupoid.trans_restricted + theorem TopologicalSpace.Opens.chart_eq' + theorem TopologicalSpace.Opens.chart_eq 2024-02-14 00:27:09 e4bee60 chore(*): golf (#10417) ESTIMATED CHANGES Modified Mathlib/Algebra/Star/CHSH.lean Modified Mathlib/Analysis/InnerProductSpace/Basic.lean Modified Mathlib/Analysis/InnerProductSpace/Projection.lean Modified Mathlib/Analysis/SpecialFunctions/Stirling.lean 2024-02-14 00:27:08 6f21dbd chore: Split off getD/getI lemmas from Data.List.Basic (#10337) Splits off some lemmas from the end of this file, reducing the size of what is currently the longest file in mathlib. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Data/List/Basic.lean - def List.decidableGetDNilNe - theorem List.getD_append - theorem List.getD_append_right - theorem List.getD_cons_succ - theorem List.getD_cons_zero - theorem List.getD_default_eq_getI - theorem List.getD_eq_default - theorem List.getD_eq_get - theorem List.getD_eq_getD_get? - theorem List.getD_eq_nthLe - theorem List.getD_map - theorem List.getD_nil - theorem List.getD_replicate_default_eq - theorem List.getD_singleton_default_eq - theorem List.getI_append - theorem List.getI_append_right - theorem List.getI_cons_succ - theorem List.getI_cons_zero - theorem List.getI_eq_default - theorem List.getI_eq_get - theorem List.getI_eq_iget_get? - theorem List.getI_eq_nthLe - theorem List.getI_nil - theorem List.getI_zero_eq_headI Added Mathlib/Data/List/GetD.lean + def List.decidableGetDNilNe + theorem List.getD_append + theorem List.getD_append_right + theorem List.getD_cons_succ + theorem List.getD_cons_zero + theorem List.getD_default_eq_getI + theorem List.getD_eq_default + theorem List.getD_eq_get + theorem List.getD_eq_getD_get? + theorem List.getD_eq_nthLe + theorem List.getD_map + theorem List.getD_nil + theorem List.getD_replicate_default_eq + theorem List.getD_singleton_default_eq + theorem List.getI_append + theorem List.getI_append_right + theorem List.getI_cons_succ + theorem List.getI_cons_zero + theorem List.getI_eq_default + theorem List.getI_eq_get + theorem List.getI_eq_iget_get? + theorem List.getI_eq_nthLe + theorem List.getI_nil + theorem List.getI_zero_eq_headI Modified Mathlib/Data/Nat/Bitwise.lean Modified Mathlib/Data/Set/List.lean 2024-02-14 00:27:07 5eae4d8 feat(CategoryTheory): Guitart exact squares (#10270) This PR defines the categorical notion of `2`-exact square in the sense of Guitart. It is introduced in order to prepare for future applications to derived functors. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/GuitartExact.lean + def CategoryTheory.TwoSquare.EquivalenceJ.functor + def CategoryTheory.TwoSquare.EquivalenceJ.inverse + def CategoryTheory.TwoSquare.costructuredArrowRightwards + def CategoryTheory.TwoSquare.equivalenceJ + theorem CategoryTheory.TwoSquare.ext + theorem CategoryTheory.TwoSquare.guitartExact_iff_final + theorem CategoryTheory.TwoSquare.guitartExact_iff_initial + theorem CategoryTheory.TwoSquare.guitartExact_iff_isConnected_downwards + theorem CategoryTheory.TwoSquare.guitartExact_iff_isConnected_rightwards + theorem CategoryTheory.TwoSquare.isConnected_rightwards_iff_downwards + def CategoryTheory.TwoSquare.structuredArrowDownwards + def CategoryTheory.TwoSquare Modified Mathlib/CategoryTheory/IsConnected.lean + theorem CategoryTheory.isConnected_iff_of_equivalence + theorem CategoryTheory.isPreconnected_iff_of_equivalence Modified docs/references.bib 2024-02-14 00:27:06 5efaaf8 feat: better uniqueness results for the Haar measure (#9909) We show that two Haar measures give the same measure to sets with compact closure, and to open sets, without any regularity assumptions. This is based on McQuillan's answer on https://mathoverflow.net/questions/456670. ESTIMATED CHANGES Modified Mathlib/Analysis/Fourier/RiemannLebesgueLemma.lean Modified Mathlib/MeasureTheory/Measure/Haar/Disintegration.lean Modified Mathlib/MeasureTheory/Measure/Haar/Unique.lean +/- theorem MeasureTheory.Measure.exists_integral_isMulLeftInvariant_eq_smul_of_hasCompactSupport + theorem MeasureTheory.Measure.haarScalarFactor_eq_mul - theorem MeasureTheory.Measure.haarScalarFactor_eq_one_of_isProbabilityMeasure + theorem MeasureTheory.Measure.haarScalarFactor_pos_of_isHaarMeasure - theorem MeasureTheory.Measure.haarScalarFactor_pos_of_isOpenPosMeasure + theorem MeasureTheory.Measure.haarScalarFactor_self +/- theorem MeasureTheory.Measure.integral_isMulLeftInvariant_eq_smul_of_hasCompactSupport + theorem MeasureTheory.Measure.isHaarMeasure_eq_of_isProbabilityMeasure - theorem MeasureTheory.Measure.isHaarMeasure_eq_smul + theorem MeasureTheory.Measure.isMulInvariant_eq_smul_of_compactSpace + theorem MeasureTheory.Measure.isMulLeftInvariant_eq_smul +/- theorem MeasureTheory.Measure.measurePreserving_zpow + theorem MeasureTheory.Measure.measure_isHaarMeasure_eq_smul_of_isEverywherePos + theorem MeasureTheory.Measure.measure_isHaarMeasure_eq_smul_of_isOpen + theorem MeasureTheory.Measure.measure_isMulInvariant_eq_smul_of_isCompact_closure + theorem MeasureTheory.Measure.measure_isMulInvariant_eq_smul_of_isCompact_closure_of_innerRegularCompactLTTop + theorem MeasureTheory.Measure.measure_isMulInvariant_eq_smul_of_isCompact_closure_of_measurableSet + theorem MeasureTheory.Measure.measure_preimage_isMulLeftInvariant_eq_smul_of_hasCompactSupport + theorem MeasureTheory.Measure.smul_measure_isMulInvariant_le_of_isCompact_closure 2024-02-13 23:17:27 c390cdc doc: fix typo (#10500) ESTIMATED CHANGES Modified Mathlib/Data/List/EditDistance/Defs.lean 2024-02-13 23:17:26 2cc4dd0 chore(Topology/Order): move `OrderClosedTopology` to a new file (#10497) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Analysis/Convex/Exposed.lean Modified Mathlib/Topology/Algebra/Order/ExtrClosure.lean Modified Mathlib/Topology/Algebra/WithZeroTopology.lean Modified Mathlib/Topology/Order/Basic.lean - theorem Continuous.if_le - theorem ContinuousWithinAt.closure_le - theorem CovBy.nhdsWithin_Iio - theorem CovBy.nhdsWithin_Ioi - theorem Dense.Iio_eq_biUnion - theorem Dense.Ioi_eq_biUnion - theorem Dense.exists_between - theorem Dense.exists_ge' - theorem Dense.exists_le' - theorem Dense.orderDual - theorem Filter.Tendsto.eventually_lt - theorem Filter.Tendsto.min_left - theorem Filter.Tendsto.min_right - theorem Filter.tendsto_nhds_max_left - theorem Filter.tendsto_nhds_max_right - theorem Filter.tendsto_nhds_min_left - theorem Filter.tendsto_nhds_min_right - theorem Icc_mem_nhds - theorem Icc_mem_nhdsWithin_Ici' - theorem Icc_mem_nhdsWithin_Ici - theorem Icc_mem_nhdsWithin_Iic' - theorem Icc_mem_nhdsWithin_Iic - theorem Icc_mem_nhdsWithin_Iio' - theorem Icc_mem_nhdsWithin_Iio - theorem Icc_mem_nhdsWithin_Ioi' - theorem Icc_mem_nhdsWithin_Ioi - theorem Ici_mem_nhds - theorem Ico_mem_nhds - theorem Ico_mem_nhdsWithin_Ici' - theorem Ico_mem_nhdsWithin_Ici - theorem Ico_mem_nhdsWithin_Iic - theorem Ico_mem_nhdsWithin_Iio' - theorem Ico_mem_nhdsWithin_Iio - theorem Ico_mem_nhdsWithin_Ioi' - theorem Ico_mem_nhdsWithin_Ioi - theorem Iic_mem_nhds - theorem Iio_mem_nhds - theorem Ioc_mem_nhds - theorem Ioc_mem_nhdsWithin_Ici - theorem Ioc_mem_nhdsWithin_Iic' - theorem Ioc_mem_nhdsWithin_Iic - theorem Ioc_mem_nhdsWithin_Iio' - theorem Ioc_mem_nhdsWithin_Iio - theorem Ioc_mem_nhdsWithin_Ioi' - theorem Ioc_mem_nhdsWithin_Ioi - theorem Ioi_mem_nhds - theorem Ioo_mem_nhds - theorem Ioo_mem_nhdsWithin_Ici - theorem Ioo_mem_nhdsWithin_Iic - theorem Ioo_mem_nhdsWithin_Iio' - theorem Ioo_mem_nhdsWithin_Iio - theorem Ioo_mem_nhdsWithin_Ioi' - theorem Ioo_mem_nhdsWithin_Ioi - theorem Ioo_subset_closure_interior - theorem IsClosed.epigraph - theorem IsClosed.hypograph - theorem IsClosed.isClosed_le - theorem closure_Icc - theorem closure_Ici - theorem closure_Iic - theorem closure_le_eq - theorem closure_lt_subset_le - theorem continuousWithinAt_Icc_iff_Ici - theorem continuousWithinAt_Icc_iff_Iic - theorem continuousWithinAt_Ico_iff_Ici - theorem continuousWithinAt_Ico_iff_Iio - theorem continuousWithinAt_Ioc_iff_Iic - theorem continuousWithinAt_Ioc_iff_Ioi - theorem continuousWithinAt_Ioo_iff_Iio - theorem continuousWithinAt_Ioo_iff_Ioi - theorem continuous_if_le - theorem continuous_max - theorem continuous_min - theorem eventually_ge_nhds - theorem eventually_ge_of_tendsto_gt - theorem eventually_gt_nhds - theorem eventually_gt_of_tendsto_gt - theorem eventually_le_nhds - theorem eventually_le_of_tendsto_lt - theorem eventually_lt_nhds - theorem eventually_lt_of_tendsto_lt - theorem frontier_Ici_subset - theorem frontier_Iic_subset - theorem frontier_le_subset_eq - theorem frontier_lt_subset_eq - theorem ge_of_tendsto' - theorem ge_of_tendsto - theorem ge_of_tendsto_of_frequently - theorem interior_Iio - theorem interior_Ioi - theorem interior_Ioo - theorem isClosed_Icc - theorem isClosed_Ici - theorem isClosed_Iic - theorem isClosed_le - theorem isClosed_le_prod - theorem isOpen_Iio - theorem isOpen_Ioi - theorem isOpen_Ioo - theorem isOpen_lt - theorem isOpen_lt_prod - theorem le_of_tendsto' - theorem le_of_tendsto - theorem le_of_tendsto_of_frequently - theorem le_of_tendsto_of_tendsto' - theorem le_of_tendsto_of_tendsto - theorem le_on_closure - theorem lt_subset_interior_le - theorem nhdsWithin_Icc_eq_nhdsWithin_Ici - theorem nhdsWithin_Icc_eq_nhdsWithin_Iic - theorem nhdsWithin_Ico_eq_nhdsWithin_Ici - theorem nhdsWithin_Ico_eq_nhdsWithin_Iio - theorem nhdsWithin_Ioc_eq_nhdsWithin_Iic - theorem nhdsWithin_Ioc_eq_nhdsWithin_Ioi - theorem nhdsWithin_Ioo_eq_nhdsWithin_Iio - theorem nhdsWithin_Ioo_eq_nhdsWithin_Ioi Modified Mathlib/Topology/Order/Lattice.lean Added Mathlib/Topology/Order/OrderClosed.lean + theorem Continuous.if_le + theorem ContinuousWithinAt.closure_le + theorem CovBy.nhdsWithin_Iio + theorem CovBy.nhdsWithin_Ioi + theorem Dense.Iio_eq_biUnion + theorem Dense.Ioi_eq_biUnion + theorem Dense.exists_between + theorem Dense.exists_ge' + theorem Dense.exists_le' + theorem Dense.orderDual + theorem Filter.Tendsto.eventually_lt + theorem Filter.Tendsto.min_left + theorem Filter.Tendsto.min_right + theorem Filter.tendsto_nhds_max_left + theorem Filter.tendsto_nhds_max_right + theorem Filter.tendsto_nhds_min_left + theorem Filter.tendsto_nhds_min_right + theorem Icc_mem_nhds + theorem Icc_mem_nhdsWithin_Ici' + theorem Icc_mem_nhdsWithin_Ici + theorem Icc_mem_nhdsWithin_Iic' + theorem Icc_mem_nhdsWithin_Iic + theorem Icc_mem_nhdsWithin_Iio' + theorem Icc_mem_nhdsWithin_Iio + theorem Icc_mem_nhdsWithin_Ioi' + theorem Icc_mem_nhdsWithin_Ioi + theorem Ici_mem_nhds + theorem Ico_mem_nhds + theorem Ico_mem_nhdsWithin_Ici' + theorem Ico_mem_nhdsWithin_Ici + theorem Ico_mem_nhdsWithin_Iic + theorem Ico_mem_nhdsWithin_Iio' + theorem Ico_mem_nhdsWithin_Iio + theorem Ico_mem_nhdsWithin_Ioi' + theorem Ico_mem_nhdsWithin_Ioi + theorem Iic_mem_nhds + theorem Iio_mem_nhds + theorem Ioc_mem_nhds + theorem Ioc_mem_nhdsWithin_Ici + theorem Ioc_mem_nhdsWithin_Iic' + theorem Ioc_mem_nhdsWithin_Iic + theorem Ioc_mem_nhdsWithin_Iio' + theorem Ioc_mem_nhdsWithin_Iio + theorem Ioc_mem_nhdsWithin_Ioi' + theorem Ioc_mem_nhdsWithin_Ioi + theorem Ioi_mem_nhds + theorem Ioo_mem_nhds + theorem Ioo_mem_nhdsWithin_Ici + theorem Ioo_mem_nhdsWithin_Iic + theorem Ioo_mem_nhdsWithin_Iio' + theorem Ioo_mem_nhdsWithin_Iio + theorem Ioo_mem_nhdsWithin_Ioi' + theorem Ioo_mem_nhdsWithin_Ioi + theorem Ioo_subset_closure_interior + theorem IsClosed.epigraph + theorem IsClosed.hypograph + theorem IsClosed.isClosed_le + theorem closure_Icc + theorem closure_Ici + theorem closure_Iic + theorem closure_le_eq + theorem closure_lt_subset_le + theorem continuousWithinAt_Icc_iff_Ici + theorem continuousWithinAt_Icc_iff_Iic + theorem continuousWithinAt_Ico_iff_Ici + theorem continuousWithinAt_Ico_iff_Iio + theorem continuousWithinAt_Ioc_iff_Iic + theorem continuousWithinAt_Ioc_iff_Ioi + theorem continuousWithinAt_Ioo_iff_Iio + theorem continuousWithinAt_Ioo_iff_Ioi + theorem continuous_if_le + theorem continuous_max + theorem continuous_min + theorem eventually_ge_nhds + theorem eventually_ge_of_tendsto_gt + theorem eventually_gt_nhds + theorem eventually_gt_of_tendsto_gt + theorem eventually_le_nhds + theorem eventually_le_of_tendsto_lt + theorem eventually_lt_nhds + theorem eventually_lt_of_tendsto_lt + theorem frontier_Ici_subset + theorem frontier_Iic_subset + theorem frontier_le_subset_eq + theorem frontier_lt_subset_eq + theorem ge_of_tendsto' + theorem ge_of_tendsto + theorem ge_of_tendsto_of_frequently + theorem interior_Iio + theorem interior_Ioi + theorem interior_Ioo + theorem isClosed_Icc + theorem isClosed_Ici + theorem isClosed_Iic + theorem isClosed_le + theorem isClosed_le_prod + theorem isOpen_Iio + theorem isOpen_Ioi + theorem isOpen_Ioo + theorem isOpen_lt + theorem isOpen_lt_prod + theorem le_of_tendsto' + theorem le_of_tendsto + theorem le_of_tendsto_of_frequently + theorem le_of_tendsto_of_tendsto' + theorem le_of_tendsto_of_tendsto + theorem le_on_closure + theorem lt_subset_interior_le + theorem nhdsWithin_Icc_eq_nhdsWithin_Ici + theorem nhdsWithin_Icc_eq_nhdsWithin_Iic + theorem nhdsWithin_Ico_eq_nhdsWithin_Ici + theorem nhdsWithin_Ico_eq_nhdsWithin_Iio + theorem nhdsWithin_Ioc_eq_nhdsWithin_Iic + theorem nhdsWithin_Ioc_eq_nhdsWithin_Ioi + theorem nhdsWithin_Ioo_eq_nhdsWithin_Iio + theorem nhdsWithin_Ioo_eq_nhdsWithin_Ioi 2024-02-13 23:17:25 6993538 feat: a star monoid homomorphism induces a monoid homomorphism on `unitary` submonoids (#10370) This adds a few facts related to `unitary` elements and their behavior with respect to star monoid homomorphisms. ESTIMATED CHANGES Modified Mathlib/Algebra/Star/Unitary.lean + def unitary.map + theorem unitary.map_mem + theorem unitary.toUnits_comp_map 2024-02-13 23:17:24 5dde421 fix: remove an unnecessary instance or two (#10116) These instances don't seem to be necessary (and there's evidence in a porting note that one of them used to be). ESTIMATED CHANGES Modified Mathlib/FieldTheory/AbelRuffini.lean Modified Mathlib/FieldTheory/IntermediateField.lean 2024-02-13 23:17:23 b4adfe7 feat: arctangent addition and Machin's formula for π (#9847) `four_mul_arctan_inv_5_sub_arctan_inv_239` is theorem 1 in my own #6091. ESTIMATED CHANGES Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Arctan.lean + theorem Real.arctan_add + theorem Real.arctan_add_arctan_lt_pi_div_two + theorem Real.arctan_add_eq_add_pi + theorem Real.arctan_add_eq_sub_pi + theorem Real.arctan_inv_2_add_arctan_inv_3 + theorem Real.arctan_inv_of_neg + theorem Real.arctan_inv_of_pos + theorem Real.arctan_ne_mul_pi_div_two + theorem Real.four_mul_arctan_inv_5_sub_arctan_inv_239 + theorem Real.two_mul_arctan + theorem Real.two_mul_arctan_add_pi + theorem Real.two_mul_arctan_inv_2_sub_arctan_inv_7 + theorem Real.two_mul_arctan_inv_3_add_arctan_inv_7 + theorem Real.two_mul_arctan_sub_pi Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Basic.lean + theorem Real.tan_pi_div_six + theorem Real.tan_pi_div_three 2024-02-13 23:17:22 1799b8c feat(Data/Polynomial): irreducibility of degree-{2,3} polynomials (#9697) The goal is to show that a degree 2 or 3 polynomial is irreducible iff it doesn't have roots. We already have `Polynomial.Monic.irreducible_iff_natDegree'` and some existing results in Lean 3: https://github.com/lean-forward/class-group-and-mordell-equation/blob/main/src/number_theory/assorted_lemmas.lean#L254 and the main work is to connect these bits together. I added a few helper lemmas about the "monicization" of a polynomial `p`, `p * C (leadingCoeff p)⁻¹`. Then I used these to show the `Polynomial.Monic.irreducible_iff ...` statements could be translated to (not necessarily monic) polynomials over a field, then I specialized these results to the degree-{2,3} case. I created a new file because I couldn't find an obvious place that imported both `Polynomial.FieldDivision` and `Tactic.IntervalCases`. Zulip discussion: https://leanprover.zulipchat.com/#narrow/stream/113489-new-members/topic/Polynomial.20irreducible ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Data/Polynomial/Degree/Definitions.lean + theorem Polynomial.leadingCoeff_dvd_leadingCoeff Modified Mathlib/Data/Polynomial/Degree/Lemmas.lean + theorem Polynomial.degree_add_degree_leadingCoeff_inv + theorem Polynomial.degree_leadingCoeff_inv + theorem Polynomial.degree_mul_leadingCoeff_inv + theorem Polynomial.degree_mul_leadingCoeff_self_inv + theorem Polynomial.dvd_mul_leadingCoeff_inv + theorem Polynomial.irreducible_mul_leadingCoeff_inv + theorem Polynomial.monic_mul_leadingCoeff_inv + theorem Polynomial.natDegree_mul_leadingCoeff_inv + theorem Polynomial.natDegree_mul_leadingCoeff_self_inv Modified Mathlib/Data/Polynomial/FieldDivision.lean - theorem Polynomial.degree_mul_leadingCoeff_inv + theorem Polynomial.irreducible_iff_degree_lt + theorem Polynomial.irreducible_iff_lt_natDegree_lt - theorem Polynomial.monic_mul_leadingCoeff_inv Modified Mathlib/Data/Polynomial/RingDivision.lean + theorem Polynomial.Monic.C_dvd_iff_isUnit + theorem Polynomial.Monic.irreducible_iff_degree_lt + theorem Polynomial.Monic.irreducible_iff_lt_natDegree_lt + theorem Polynomial.Monic.isUnit_leadingCoeff_of_dvd + theorem Polynomial.degree_pos_of_monic_of_not_isUnit + theorem Polynomial.degree_pos_of_not_isUnit_of_dvd_monic + theorem Polynomial.natDegree_pos_of_monic_of_not_isUnit + theorem Polynomial.natDegree_pos_of_not_isUnit_of_dvd_monic + theorem Polynomial.not_isUnit_of_degree_pos + theorem Polynomial.not_isUnit_of_natDegree_pos Added Mathlib/Data/Polynomial/SpecificDegree.lean + theorem Polynomial.Monic.irreducible_iff_roots_eq_zero_of_degree_le_three + theorem Polynomial.irreducible_iff_roots_eq_zero_of_degree_le_three Modified Mathlib/RingTheory/Polynomial/Nilpotent.lean + theorem Polynomial.not_isUnit_of_degree_pos_of_isReduced + theorem Polynomial.not_isUnit_of_natDegree_pos_of_isReduced 2024-02-13 21:51:38 625e2ac chore: remove useless `include` and `omit` porting notes (#10503) ESTIMATED CHANGES Modified Mathlib/Algebra/AddTorsor.lean Modified Mathlib/Algebra/DirectSum/Basic.lean Modified Mathlib/Algebra/Order/Floor.lean Modified Mathlib/CategoryTheory/ConcreteCategory/BundledHom.lean Modified Mathlib/CategoryTheory/GlueData.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Pullbacks.lean Modified Mathlib/CategoryTheory/Sites/CoverLifting.lean Modified Mathlib/GroupTheory/Submonoid/Inverses.lean 2024-02-13 21:51:37 3b44754 chore: Move `Equiv.sigmaEquivOptionOfInhabited` (#10501) This has nothing to do with `Finset` ESTIMATED CHANGES Modified Mathlib/Data/Finset/Basic.lean - def Equiv.sigmaEquivOptionOfInhabited Modified Mathlib/Logic/Equiv/Basic.lean + def Equiv.sigmaEquivOptionOfInhabited 2024-02-13 21:51:36 4ed1f68 fix: transitivity aliases trans (#10491) ESTIMATED CHANGES Modified Mathlib/Tactic/Basic.lean Modified Mathlib/Tactic/Relation/Trans.lean 2024-02-13 21:51:34 728e439 feat(Topology/Order): add `nhds_mkOfNhds_of_hasBasis` (#10408) * add `TopologicalSpace.nhds_mkOfNhds_of_hasBasis` * add `Trans` instance for `Filter.mem_of_superset` * change assumptions of `TopologicalSpace.nhds_mkOfNhds`, golf - the new assumption is equivalent to the old one with `t ⊆ s` removed - but is formulated in terms of `Filter.Eventually` ESTIMATED CHANGES Modified Mathlib/Order/Filter/Basic.lean Modified Mathlib/Topology/Algebra/FilterBasis.lean Modified Mathlib/Topology/List.lean Modified Mathlib/Topology/Order.lean +/- theorem TopologicalSpace.nhds_mkOfNhds_filterBasis + theorem TopologicalSpace.nhds_mkOfNhds_of_hasBasis Modified Mathlib/Topology/UniformSpace/CompactConvergence.lean 2024-02-13 21:51:33 7a75284 feat: extend AddMonoidAlgebra.supDegree API (#10355) This is a part of #7173 that I hope will be uncontroversial. ESTIMATED CHANGES Modified Mathlib/Algebra/MonoidAlgebra/Degree.lean + theorem AddMonoidAlgebra.apply_add_of_supDegree_eq + theorem AddMonoidAlgebra.apply_eq_zero_of_not_le_supDegree + theorem AddMonoidAlgebra.ne_zero_of_not_supDegree_le + theorem AddMonoidAlgebra.ne_zero_of_supDegree_ne_bot +/- theorem AddMonoidAlgebra.supDegree_add_le +/- theorem AddMonoidAlgebra.supDegree_mul_le + theorem AddMonoidAlgebra.supDegree_neg + theorem AddMonoidAlgebra.supDegree_prod_le + theorem AddMonoidAlgebra.supDegree_single + theorem AddMonoidAlgebra.supDegree_single_ne_zero + theorem AddMonoidAlgebra.supDegree_sub_le + theorem AddMonoidAlgebra.supDegree_sum_le + theorem AddMonoidAlgebra.supDegree_zero 2024-02-13 21:51:32 10d6486 refactor(Topology): split Topology.Perfect into two modules (#10272) Splits `Topology.Perfect` into two modules: `Topology.Perfect`, where the existing definition of `Perfect` and `Preperfect` are kept, and `Topology.MetricSpace.Perfect`, in which the theorems specific to metric spaces are moved. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/MeasureTheory/Constructions/Polish.lean Modified Mathlib/Topology/Algebra/Module/Cardinality.lean Added Mathlib/Topology/MetricSpace/Perfect.lean + theorem IsClosed.exists_nat_bool_injection_of_not_countable + theorem Perfect.exists_nat_bool_injection + theorem Perfect.small_diam_splitting Modified Mathlib/Topology/Perfect.lean - theorem IsClosed.exists_nat_bool_injection_of_not_countable - theorem Perfect.exists_nat_bool_injection - theorem Perfect.small_diam_splitting 2024-02-13 21:51:31 9b6ad3c feat: Submonoid of nonnegative elements (#10209) Define the `Submonoid` of elements greater than `1`, the `AddSubmonoid` of nonnegative elements, move `posSubmonoid` with them and rename it to `Submonoid.pos`. From LeanAPAP and partly extracted from #4871 ESTIMATED CHANGES Modified Mathlib/GroupTheory/Submonoid/Operations.lean + theorem Submonoid.mem_oneLE + theorem Submonoid.mem_pos + def Submonoid.oneLE + def Submonoid.pos Modified Mathlib/RingTheory/Subring/Basic.lean Modified Mathlib/RingTheory/Subsemiring/Basic.lean + def Subsemiring.nonneg - theorem mem_posSubmonoid - def posSubmonoid 2024-02-13 21:51:30 12d8bb6 feat(Algebra/Homology): two descriptions of the derived category as a localized category (#9660) In this PR, it is shown that under certain conditions on the complex shape `c`, the category `HomologicalComplexUpToQuasiIso C c` of homological complexes up to quasi-isomorphisms, which is a localization of the category of homological complexes, is also a localization of the homotopy category. In particular, in the case of cochain complexes indexed by the integers, this means that the derived category of an abelian category `C` can be obtained either in a single step by formally inverting the quasi-isomorphisms in the category of cochain complexes, or in two steps by first passing to the homotopy category (which is a quotient category) and then formally inverting the quasi-isomorphisms in the homotopy category. ESTIMATED CHANGES Modified Mathlib/Algebra/Homology/Localization.lean + theorem ComplexShape.QFactorsThroughHomotopy_of_exists_prev + theorem ComplexShape.quotient_isLocalization + def ComplexShape.strictUniversalPropertyFixedTargetQuotient + theorem HomologicalComplexUpToQuasiIso.Q_map_eq_of_homotopy + def HomologicalComplexUpToQuasiIso.Qh + theorem HomologicalComplexUpToQuasiIso.Qh_inverts_quasiIso + def HomologicalComplexUpToQuasiIso.quotientCompQhIso 2024-02-13 21:51:28 bdcd9b3 chore: CI: run tests with -k (#9656) when checking the fallout from breaking changes it would be good to see all failing tests in the build log, and not just the first one, to reduce round-trips. I believe we can achieve that using `make -k`. ESTIMATED CHANGES Modified .github/workflows/bors.yml Modified .github/workflows/build.yml Modified .github/workflows/build.yml.in Modified .github/workflows/build_fork.yml 2024-02-13 21:51:27 d13557b feat: `(a + b) ^ n ≤ 2 ^ (n - 1) * (a ^ n + b ^ n)` (#9484) Note that this inequality is trivial if the constant is `2 ^ n` instead. Due to the current import situation, I've had to downgrade the proof to not use `gcongr`, `positivity`, `ring`. This is currently hard to fix. From LeanAPAP ESTIMATED CHANGES Modified Mathlib/Algebra/GroupPower/Order.lean + theorem add_pow_le + theorem add_sq_le Modified Mathlib/Algebra/Order/Ring/Defs.lean - theorem add_sq_le 2024-02-13 21:51:26 6933474 feat(Algebra/Homology): the total complex of a bicomplex (#9331) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Homology/TotalComplex.lean + theorem HomologicalComplex₂.D₁_D₁ + theorem HomologicalComplex₂.D₁_D₂ + theorem HomologicalComplex₂.D₁_shape + theorem HomologicalComplex₂.D₂_D₁ + theorem HomologicalComplex₂.D₂_D₂ + theorem HomologicalComplex₂.D₂_shape + theorem HomologicalComplex₂.d₁_eq' + theorem HomologicalComplex₂.d₁_eq + theorem HomologicalComplex₂.d₁_eq_zero' + theorem HomologicalComplex₂.d₁_eq_zero + theorem HomologicalComplex₂.d₂_eq' + theorem HomologicalComplex₂.d₂_eq + theorem HomologicalComplex₂.d₂_eq_zero' + theorem HomologicalComplex₂.d₂_eq_zero + theorem HomologicalComplex₂.ι_D₁ + theorem HomologicalComplex₂.ι_D₂ Modified Mathlib/CategoryTheory/GradedObject.lean + theorem CategoryTheory.GradedObject.ιMapObjOrZero_eq + theorem CategoryTheory.GradedObject.ιMapObjOrZero_eq_zero 2024-02-13 21:51:25 5eadc41 feat: add new Equiv.piFinCastSucc (#9028) ESTIMATED CHANGES Modified Mathlib/Logic/Equiv/Fin.lean + def Equiv.piFinCastSucc 2024-02-13 19:40:18 2ee70d2 chore(NonnegHomClass): rename `map_nonneg` to `apply_nonneg` (#10507) ... to avoid conflict with `_root_.map_nonneg`, see [Zulip](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/map_nonneg). ESTIMATED CHANGES Modified Counterexamples/SeminormLatticeNotDistrib.lean Modified Mathlib/Algebra/Order/AbsoluteValue.lean Modified Mathlib/Algebra/Order/Hom/Basic.lean Modified Mathlib/Algebra/Order/Hom/Monoid.lean Modified Mathlib/Analysis/Convex/Gauge.lean Modified Mathlib/Analysis/Distribution/SchwartzSpace.lean Modified Mathlib/Analysis/LocallyConvex/WithSeminorms.lean Modified Mathlib/Analysis/Normed/Group/Seminorm.lean Modified Mathlib/Analysis/Normed/Ring/Seminorm.lean Modified Mathlib/Analysis/Seminorm.lean Modified Mathlib/Data/Complex/Abs.lean Modified Mathlib/Data/Complex/Order.lean Modified Mathlib/NumberTheory/NumberField/Embeddings.lean Modified Mathlib/NumberTheory/NumberField/Units.lean 2024-02-13 19:40:17 d7a0fb3 CI(bors): set the max batch size to 16 (#10499) Zulip: https://leanprover.zulipchat.com/#narrow/stream/345428-mathlib-reviewers/topic/Bors.20batch.20size ESTIMATED CHANGES Modified bors.toml 2024-02-13 19:40:16 322e4a6 chore: bump importGraph (#10490) ESTIMATED CHANGES Modified lake-manifest.json 2024-02-13 19:40:15 9afd002 chore: bump Std (#10482) ESTIMATED CHANGES Modified Mathlib/Algebra/BigOperators/Multiset/Basic.lean Modified Mathlib/Computability/Ackermann.lean Modified Mathlib/Data/Finset/Basic.lean Modified Mathlib/Data/Fintype/Basic.lean Modified Mathlib/Data/Multiset/Basic.lean Modified Mathlib/Data/Multiset/Nodup.lean Modified Mathlib/Data/Nat/Choose/Basic.lean Modified Mathlib/Data/Nat/Defs.lean - theorem Nat.eq_of_le_of_lt_succ - theorem Nat.eq_of_lt_succ_of_not_lt - theorem Nat.exists_eq_add_of_le' - theorem Nat.exists_eq_add_of_le - theorem Nat.exists_eq_add_of_lt - theorem Nat.mod_mod_of_dvd Modified Mathlib/Data/Nat/Digits.lean Modified Mathlib/Data/Nat/Factorial/Basic.lean Modified Mathlib/Data/Nat/Pow.lean - theorem Nat.pow_dvd_pow_iff_le_right' - theorem Nat.pow_dvd_pow_iff_le_right - theorem Nat.pow_dvd_pow_iff_pow_le_pow - theorem Nat.pow_lt_pow_succ Modified Mathlib/NumberTheory/Padics/Hensel.lean Modified Mathlib/NumberTheory/Padics/RingHoms.lean Modified Mathlib/RingTheory/Multiplicity.lean Modified lake-manifest.json Modified scripts/noshake.json 2024-02-13 19:40:14 64ceea9 chore(Data/List/TFAE): add tfae_not_iff (#10479) ESTIMATED CHANGES Modified Mathlib/Data/List/TFAE.lean + theorem List.tfae_not_iff 2024-02-13 19:40:13 a63ec2b chore: remove no-longer-needed Nat.digits workarounds (#10429) `norm_num` now successfully reduces `Nat.digits` calls that have concrete arguments, so we can clean up some old workarounds. This all works because Lean 4.6.0 introduced "simprocs", including the default-enabled `reduceLE`, `reduceMod`, `reduceDiv`, etc. which `norm_num` can invoke to discharge the side-goals required by applications of `digits_of_two_le_of_pos`. Another crucial aspect is that `{ decide := false }` is the default for `simp` (and `norm_num`) after #8366. Otherwise, the `Acc`-based recursion in `digitsAux` would bog down kernel reduction. ESTIMATED CHANGES Modified Archive/Imo/Imo1960Q1.lean Modified Archive/Imo/Imo1962Q1.lean 2024-02-13 19:40:12 7b0f450 feat: add `fst` and `snd` for `QuadraticForm.Isometry` (#10381) Also adds `proj` for the `Pi` variation, along with `Isometry.ofEq` to make it possible to state the theorems for the `Pi` type. ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/QuadraticForm/Isometry.lean + def QuadraticForm.Isometry.ofEq + theorem QuadraticForm.Isometry.ofEq_rfl Modified Mathlib/LinearAlgebra/QuadraticForm/Prod.lean + def QuadraticForm.Isometry.fst + theorem QuadraticForm.Isometry.fst_comp_inl + theorem QuadraticForm.Isometry.fst_comp_inr + def QuadraticForm.Isometry.proj + theorem QuadraticForm.Isometry.proj_comp_single_of_ne + theorem QuadraticForm.Isometry.proj_comp_single_of_same + def QuadraticForm.Isometry.snd + theorem QuadraticForm.Isometry.snd_comp_inl + theorem QuadraticForm.Isometry.snd_comp_inr 2024-02-13 19:40:12 43b760b chore: add setting to prevent accidental editing of dependencies (#10320) Adds `**/.lake/**` and `**/.elan/**` to a readonly include list in the VSCode workspace settings. This should prevent users from accidentally editing files in dependencies they might navigate to in VSCode. ESTIMATED CHANGES Modified .vscode/settings.json 2024-02-13 19:40:11 3cb73ae chore: Move lemmas about `Function.const` to the `Function` namespace (#10220) They were in the `Pi` namespace instead. ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Pi.lean Modified Mathlib/Data/Pi/Algebra.lean + theorem Function.const_div + theorem Function.const_inv + theorem Function.const_mul + theorem Function.const_one + theorem Function.const_pow - theorem Pi.const_div - theorem Pi.const_inv - theorem Pi.const_mul - theorem Pi.const_one - theorem Pi.const_pow Modified Mathlib/LinearAlgebra/AffineSpace/Combination.lean Modified Mathlib/MeasureTheory/Integral/SetToL1.lean Modified Mathlib/Probability/StrongLaw.lean 2024-02-13 19:40:09 dbe9558 feat: bounds on alternating convergent series (#10120) https://leanprover.zulipchat.com/#narrow/stream/217875-Is-there-code-for-X.3F/topic/Bounds.20on.20alternating.20convergent.20series/near/418770183 ESTIMATED CHANGES Modified Mathlib/Analysis/SpecificLimits/Normed.lean + theorem Antitone.alternating_series_le_tendsto + theorem Antitone.tendsto_le_alternating_series + theorem Monotone.alternating_series_le_tendsto + theorem Monotone.tendsto_le_alternating_series 2024-02-13 19:40:08 ff21e64 feat: fintsupport of (smooth) partitions of unity (#10015) From sphere-eversion: the result is used there for smooth partitions of unity, but also holds in the continuous setting. In passing, - use `Type*` (not `Type _`) in `sum_finsupport_smul_eq_finsum`, - tag `SmoothPartitionOfUnity.toPartitionOfUnity` with @simps. ESTIMATED CHANGES Modified Mathlib/Geometry/Manifold/PartitionOfUnity.lean + theorem SmoothPartitionOfUnity.coe_finsupport + theorem SmoothPartitionOfUnity.eventually_finsupport_subset + theorem SmoothPartitionOfUnity.eventually_fintsupport_subset + theorem SmoothPartitionOfUnity.finite_tsupport + def SmoothPartitionOfUnity.finsupport + theorem SmoothPartitionOfUnity.finsupport_subset_fintsupport + def SmoothPartitionOfUnity.fintsupport + theorem SmoothPartitionOfUnity.mem_finsupport + theorem SmoothPartitionOfUnity.mem_fintsupport_iff + theorem SmoothPartitionOfUnity.sum_finsupport' + theorem SmoothPartitionOfUnity.sum_finsupport + theorem SmoothPartitionOfUnity.sum_finsupport_smul_eq_finsum Modified Mathlib/Topology/PartitionOfUnity.lean + theorem PartitionOfUnity.eventually_finsupport_subset + theorem PartitionOfUnity.eventually_fintsupport_subset + theorem PartitionOfUnity.finite_tsupport + theorem PartitionOfUnity.finsupport_subset_fintsupport + def PartitionOfUnity.fintsupport + theorem PartitionOfUnity.mem_fintsupport_iff +/- theorem PartitionOfUnity.sum_finsupport_smul_eq_finsum 2024-02-13 19:40:08 8eaff3e feat(Algebra/Homology/HomotopyCategory): alternative description of distinguished triangles (#9370) In this PR, it is shown that a triangle in the homotopy category is distinguished iff it is isomorphic to the triangle associated to a degreewise split short exact sequence of cochain complexes. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Homology/HomotopyCategory/DegreewiseSplit.lean + def CochainComplex.cocycleOfDegreewiseSplit + def CochainComplex.homOfDegreewiseSplit + theorem CochainComplex.homOfDegreewiseSplit_f + theorem CochainComplex.mappingCone.cocycleOfDegreewiseSplit_triangleRotateShortComplexSplitting_v + theorem CochainComplex.mappingConeHomOfDegreewiseSplitIso_inv_comp_triangle_mor₃ + theorem CochainComplex.shift_f_comp_mappingConeHomOfDegreewiseSplitIso_inv + def CochainComplex.triangleOfDegreewiseSplit + theorem HomotopyCategory.distinguished_iff_iso_trianglehOfDegreewiseSplit Modified Mathlib/CategoryTheory/Triangulated/Functor.lean + def CategoryTheory.Functor.mapTriangleRotateIso 2024-02-13 15:17:29 71296ca feat(LinearAlgebra/Matrix): scalar if commutes with every nontrivial transvection (#7815) `M` is a scalar matrix if it commutes with every nontrivial transvection (elementary matrix). Also adds `iff` versions and corrects the names of the lemmas in #7810 ESTIMATED CHANGES Modified Mathlib/Data/Matrix/Basic.lean + theorem Matrix.scalar_commute_iff Modified Mathlib/Data/Matrix/Basis.lean - theorem Matrix.StdBasisMatrix.col_eq_zero_of_commute_stdBasisMatrix - theorem Matrix.StdBasisMatrix.diag_eq_of_commute_stdBasisMatrix - theorem Matrix.StdBasisMatrix.mem_range_scalar_of_commute_stdBasisMatrix - theorem Matrix.StdBasisMatrix.row_eq_zero_of_commute_stdBasisMatrix + theorem Matrix.col_eq_zero_of_commute_stdBasisMatrix + theorem Matrix.diag_eq_of_commute_stdBasisMatrix + theorem Matrix.mem_range_scalar_iff_commute_stdBasisMatrix' + theorem Matrix.mem_range_scalar_iff_commute_stdBasisMatrix + theorem Matrix.mem_range_scalar_of_commute_stdBasisMatrix + theorem Matrix.row_eq_zero_of_commute_stdBasisMatrix +/- theorem Matrix.smul_stdBasisMatrix Modified Mathlib/LinearAlgebra/Matrix/Transvection.lean + theorem Matrix.mem_range_scalar_iff_commute_transvectionStruct + theorem Matrix.mem_range_scalar_of_commute_transvectionStruct 2024-02-13 15:17:27 95eca4b feat(Topology/Algebra/Order): continuous injective function on interval is strictly monotone (#7018) Suppose `f : [a, b] → δ` or `f : (a, b) → δ` is continuous and injective. Then `f` is strictly monotone. ESTIMATED CHANGES Modified Mathlib/Data/Set/Intervals/Image.lean + theorem directedOn_ge_Icc + theorem directedOn_ge_Ici + theorem directedOn_ge_Ico + theorem directedOn_le_Icc + theorem directedOn_le_Iic + theorem directedOn_le_Ioc Modified Mathlib/Order/Antichain.lean + theorem IsAntichain.of_monotoneOn_strictAntiOn + theorem IsAntichain.of_strictMonoOn_antitoneOn Modified Mathlib/Order/Directed.lean + theorem constant_of_monotoneOn_antitoneOn + theorem constant_of_monotone_antitone Modified Mathlib/Topology/Algebra/Order/IntermediateValue.lean + theorem Continuous.strictAnti_of_inj_boundedOrder + theorem Continuous.strictMonoOn_of_inj_rigidity + theorem Continuous.strictMono_of_inj + theorem Continuous.strictMono_of_inj_boundedOrder' + theorem Continuous.strictMono_of_inj_boundedOrder + theorem ContinuousOn.strictAntiOn_of_injOn_Icc + theorem ContinuousOn.strictMonoOn_of_injOn_Icc' + theorem ContinuousOn.strictMonoOn_of_injOn_Icc + theorem ContinuousOn.strictMonoOn_of_injOn_Ioo 2024-02-13 14:05:49 398ea8d feat(LinearAlgebra/RootSystem/Basic): rm finiteness from def (#10473) There are many interesting infinite root systems, so we remove the finiteness assumption from the definition. A few results use finiteness unnecessarily, so their proofs are revised. ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/RootSystem/Basic.lean +/- theorem RootPairing.bijOn_coreflection_coroot +/- theorem RootPairing.bijOn_reflection_root + theorem RootPairing.coreflection_apply_self + theorem RootPairing.coreflection_eq_flip_reflection + theorem RootPairing.coreflection_invOn_self + theorem RootPairing.coreflection_self + theorem RootPairing.reflection_invOn_self + theorem RootPairing.reflection_same 2024-02-13 14:05:48 8f463bc feat: Define general binomial coefficients (Ring.choose) (#9719) We define generalized binomial coefficients, and prove a couple basic properties. In particular, we show that multiplication by a suitable factorial yields a descending Pochhammer evaluation. We also show that casting `Nat.choose` is the same as taking `Ring.choose` of a natural number cast. To prove these, we add some results about polynomial evaluation. ESTIMATED CHANGES Modified Mathlib/Data/Nat/Factorial/SuperFactorial.lean Modified Mathlib/Data/Polynomial/Eval.lean + theorem Polynomial.eval₂_comp' + theorem Polynomial.eval₂_mul' + theorem Polynomial.eval₂_pow' Modified Mathlib/RingTheory/Binomial.lean + def Ring.choose + theorem Ring.choose_nat_cast + theorem Ring.descPochhammer_eq_factorial_smul_choose + theorem Ring.factorial_nsmul_multichoose_eq_ascPochhammer - theorem Ring.factorial_nsmul_multichoose_eq_eval_ascPochhammer Modified Mathlib/RingTheory/Polynomial/Pochhammer.lean + theorem ascPochhammer_eval_comp + theorem ascPochhammer_eval₂ + theorem descPochhammer_eval_eq_ascPochhammer + theorem descPochhammer_eval_eq_descFactorial - theorem descPochhammer_int_eq_descFactorial 2024-02-13 14:05:47 103d8a1 feat: the homotopy category of cochain complexes is pretriangulated (#9032) This PR defines the pretriangulated structure on the homotopy category of cochain complexes in an additive category. This result first appeared in the Liquid Tensor Experiment. In the LTE, the formalization followed the Stacks Project: in particular, the distinguished triangles were defined using degreewise-split short exact sequences of cochain complexes. Here, we follow the original definitions in Verdier's thesis (with the better sign conventions from the introduction of Brian Conrad's book *Grothendieck duality and base change*). ESTIMATED CHANGES Modified Mathlib/Algebra/Homology/HomotopyCategory/Pretriangulated.lean + theorem HomotopyCategory.Pretriangulated.complete_distinguished_triangle_morphism + theorem HomotopyCategory.Pretriangulated.contractible_distinguished + def HomotopyCategory.Pretriangulated.distinguishedTriangles + theorem HomotopyCategory.Pretriangulated.distinguished_cocone_triangle + theorem HomotopyCategory.Pretriangulated.invRotate_distinguished_triangle' + theorem HomotopyCategory.Pretriangulated.isomorphic_distinguished + theorem HomotopyCategory.Pretriangulated.rotate_distinguished_triangle' + theorem HomotopyCategory.Pretriangulated.rotate_distinguished_triangle + theorem HomotopyCategory.Pretriangulated.shift_distinguished_triangle + theorem HomotopyCategory.mappingCone_triangleh_distinguished 2024-02-13 12:46:18 ab35bb3 chore: avoid non-terminal `simp`s and golf proofs (#10486) * Replace non-terminal `simp`s with `simp only`s. * Golf proofs. ESTIMATED CHANGES Modified Mathlib/Data/String/Basic.lean 2024-02-13 12:46:17 8108f47 feat: shake: error if not built (#10484) As [suggested on Zulip](https://leanprover.zulipchat.com/#narrow/stream/113488-general/topic/Tree.20shaking/near/421206132), we can detect if there are unbuilt oleans and error out rather than giving incorrect output. ESTIMATED CHANGES Modified Shake/Main.lean 2024-02-13 12:46:16 34661a7 chore(LinearAlgebra/Matrix/Charpoly): charpoly of block matrix (#10480) ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/Matrix/Charpoly/Basic.lean +/- theorem Matrix.aeval_self_charpoly +/- def Matrix.charpoly + theorem Matrix.charpoly_fromBlocks_zero₁₂ + theorem Matrix.charpoly_fromBlocks_zero₂₁ +/- theorem Matrix.charpoly_reindex +/- theorem charmatrix_apply +/- theorem charmatrix_apply_eq +/- theorem charmatrix_apply_ne + theorem charmatrix_fromBlocks +/- theorem charmatrix_reindex +/- theorem matPolyEquiv_charmatrix 2024-02-13 12:46:15 88ad821 feat(Order/Filter): add `Filter.Tendsto.iterate` (#10477) ESTIMATED CHANGES Modified Mathlib/Order/Filter/Basic.lean Modified Mathlib/Topology/Basic.lean 2024-02-13 12:46:14 583592f chore(Data/Fin/Basic): drop an `import` (#10467) This removes the following files from the `import` closure of `Data.Fin.Basic`: ``` Mathlib.Algebra.Group.Equiv.Basic Mathlib.Algebra.Group.Hom.Basic Mathlib.Algebra.Group.InjSurj Mathlib.Algebra.Group.OrderSynonym Mathlib.Algebra.Group.Units.Equiv Mathlib.Algebra.Group.Units.Hom Mathlib.Algebra.GroupWithZero.Basic Mathlib.Algebra.GroupWithZero.InjSurj Mathlib.Algebra.GroupWithZero.Units.Basic Mathlib.Algebra.GroupWithZero.Units.Equiv Mathlib.Algebra.Order.Group.Units Mathlib.Algebra.Order.Monoid.Basic Mathlib.Algebra.Order.Monoid.OrderDual Mathlib.Algebra.Order.Monoid.TypeTags Mathlib.Algebra.Order.Monoid.Units Mathlib.Algebra.Order.WithZero Mathlib.Data.Int.Cast.Basic ``` ESTIMATED CHANGES Modified Mathlib/Data/Fin/Basic.lean Modified Mathlib/Data/Fin/SuccPred.lean Modified Mathlib/Data/List/NodupEquivFin.lean 2024-02-13 12:46:13 c232020 chore(Cardinal/Basic): split (#10466) Move `toNat` and `toPartENat` to new files. No changes in the code moved to the new files. One lemma remains in `Basic` but used `toNat` in the proof, so I changed the proof. I'm going to redefine them in terms of `toENat`, so I need to move them out of `Basic` first. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Data/Nat/Nth.lean Modified Mathlib/LinearAlgebra/Dimension/Finrank.lean Modified Mathlib/ModelTheory/Definability.lean Modified Mathlib/SetTheory/Cardinal/Basic.lean - theorem Cardinal.aleph0_toNat - theorem Cardinal.aleph0_toPartENat - theorem Cardinal.cast_toNat_of_aleph0_le - theorem Cardinal.cast_toNat_of_lt_aleph0 +/- theorem Cardinal.exists_nat_eq_of_le_nat - theorem Cardinal.mk_toNat_eq_card - theorem Cardinal.mk_toNat_of_infinite - theorem Cardinal.mk_toPartENat_eq_coe_card - theorem Cardinal.mk_toPartENat_of_infinite - theorem Cardinal.one_toNat - def Cardinal.toNat - def Cardinal.toNatHom - theorem Cardinal.toNat_add_of_lt_aleph0 - theorem Cardinal.toNat_apply_of_aleph0_le - theorem Cardinal.toNat_apply_of_lt_aleph0 - theorem Cardinal.toNat_cast - theorem Cardinal.toNat_congr - theorem Cardinal.toNat_eq_iff - theorem Cardinal.toNat_eq_iff_eq_of_lt_aleph0 - theorem Cardinal.toNat_eq_ofNat - theorem Cardinal.toNat_eq_one - theorem Cardinal.toNat_eq_one_iff_unique - theorem Cardinal.toNat_eq_zero - theorem Cardinal.toNat_finset_prod - theorem Cardinal.toNat_le_iff_le_of_lt_aleph0 - theorem Cardinal.toNat_le_of_le_of_lt_aleph0 - theorem Cardinal.toNat_lift - theorem Cardinal.toNat_lt_iff_lt_of_lt_aleph0 - theorem Cardinal.toNat_lt_of_lt_of_lt_aleph0 - theorem Cardinal.toNat_mul - theorem Cardinal.toNat_ne_zero - theorem Cardinal.toNat_ofNat - theorem Cardinal.toNat_pos - theorem Cardinal.toNat_rightInverse - theorem Cardinal.toNat_surjective - def Cardinal.toPartENat - theorem Cardinal.toPartENat_apply_of_aleph0_le - theorem Cardinal.toPartENat_apply_of_lt_aleph0 - theorem Cardinal.toPartENat_cast - theorem Cardinal.toPartENat_congr - theorem Cardinal.toPartENat_eq_iff_of_le_aleph0 - theorem Cardinal.toPartENat_eq_top_iff_le_aleph0 - theorem Cardinal.toPartENat_le_iff_of_le_aleph0 - theorem Cardinal.toPartENat_le_iff_of_lt_aleph0 - theorem Cardinal.toPartENat_lift - theorem Cardinal.toPartENat_mono - theorem Cardinal.toPartENat_surjective - theorem Cardinal.zero_toNat Modified Mathlib/SetTheory/Cardinal/ENat.lean Modified Mathlib/SetTheory/Cardinal/Finite.lean Modified Mathlib/SetTheory/Cardinal/Ordinal.lean Added Mathlib/SetTheory/Cardinal/PartENat.lean + theorem Cardinal.aleph0_toPartENat + theorem Cardinal.mk_toPartENat_eq_coe_card + theorem Cardinal.mk_toPartENat_of_infinite + theorem Cardinal.toPartENat_apply_of_aleph0_le + theorem Cardinal.toPartENat_apply_of_lt_aleph0 + theorem Cardinal.toPartENat_cast + theorem Cardinal.toPartENat_congr + theorem Cardinal.toPartENat_eq_iff_of_le_aleph0 + theorem Cardinal.toPartENat_eq_top_iff_le_aleph0 + theorem Cardinal.toPartENat_le_iff_of_le_aleph0 + theorem Cardinal.toPartENat_le_iff_of_lt_aleph0 + theorem Cardinal.toPartENat_lift + theorem Cardinal.toPartENat_mono + theorem Cardinal.toPartENat_surjective Added Mathlib/SetTheory/Cardinal/ToNat.lean + theorem Cardinal.aleph0_toNat + theorem Cardinal.cast_toNat_of_aleph0_le + theorem Cardinal.cast_toNat_of_lt_aleph0 + theorem Cardinal.mk_toNat_eq_card + theorem Cardinal.mk_toNat_of_infinite + theorem Cardinal.one_toNat + theorem Cardinal.toNat_add_of_lt_aleph0 + theorem Cardinal.toNat_apply_of_aleph0_le + theorem Cardinal.toNat_apply_of_lt_aleph0 + theorem Cardinal.toNat_cast + theorem Cardinal.toNat_congr + theorem Cardinal.toNat_eq_iff + theorem Cardinal.toNat_eq_iff_eq_of_lt_aleph0 + theorem Cardinal.toNat_eq_ofNat + theorem Cardinal.toNat_eq_one + theorem Cardinal.toNat_eq_one_iff_unique + theorem Cardinal.toNat_eq_zero + theorem Cardinal.toNat_finset_prod + theorem Cardinal.toNat_le_iff_le_of_lt_aleph0 + theorem Cardinal.toNat_le_of_le_of_lt_aleph0 + theorem Cardinal.toNat_lift + theorem Cardinal.toNat_lt_iff_lt_of_lt_aleph0 + theorem Cardinal.toNat_lt_of_lt_of_lt_aleph0 + theorem Cardinal.toNat_mul + theorem Cardinal.toNat_ne_zero + theorem Cardinal.toNat_ofNat + theorem Cardinal.toNat_pos + theorem Cardinal.toNat_rightInverse + theorem Cardinal.toNat_surjective + theorem Cardinal.zero_toNat Modified Mathlib/SetTheory/Ordinal/Arithmetic.lean 2024-02-13 12:46:13 a8eca77 chore(FinsuppVectorSpace): golf, `Fintype` -> `Finite` (#10464) - Golf `Finset.sum_single_ite`. Should it go to another file? - Assume `Finite` instead of `Fintype` in `equivFun_symm_stdBasis`. ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/FinsuppVectorSpace.lean +/- theorem Basis.equivFun_symm_stdBasis +/- theorem Finset.sum_single_ite 2024-02-13 12:46:12 678a9b1 chore: tidy various files (#10453) ESTIMATED CHANGES Modified Mathlib/Algebra/Category/GroupCat/Basic.lean Modified Mathlib/Algebra/Category/MonCat/Basic.lean Modified Mathlib/Algebra/Group/Defs.lean Modified Mathlib/Algebra/Ring/Units.lean Modified Mathlib/CategoryTheory/ConcreteCategory/Bundled.lean Modified Mathlib/Data/Fintype/Basic.lean + theorem Fintype.univ_ofIsEmpty - theorem Fintype.univ_of_isEmpty Modified Mathlib/Data/Fintype/Card.lean + theorem Fintype.card_ofIsEmpty - theorem Fintype.card_of_isEmpty Modified Mathlib/MeasureTheory/Decomposition/Lebesgue.lean Modified Mathlib/RingTheory/WittVector/Defs.lean +/- theorem WittVector.add_coeff +/- theorem WittVector.mul_coeff +/- theorem WittVector.pow_coeff +/- theorem WittVector.sub_coeff Modified Mathlib/RingTheory/WittVector/FrobeniusFractionField.lean 2024-02-13 12:46:11 268cb37 feat(Filter/Pi): add `pi_principal` and `pi_pure` (#10450) ESTIMATED CHANGES Modified Mathlib/Order/Filter/Pi.lean + theorem Filter.le_pi_principal + theorem Filter.pi_principal + theorem Filter.pi_pure 2024-02-13 12:46:10 b7c0974 feat(Function): add `FactorsThrough.comp_{left,right}` (#10449) - Add `Function.FactorsThrough.rfl`, `Function.FactorsThrough.comp_left`, and `Function.FactorsThrough.comp_right`. - Fix a typo in the module docstring of `Function/OfArity`. ESTIMATED CHANGES Modified Mathlib/Logic/Function/Basic.lean + theorem Function.FactorsThrough.comp_left + theorem Function.FactorsThrough.comp_right Modified Mathlib/Logic/Function/OfArity.lean 2024-02-13 12:46:09 7492536 chore(AffineIsometry): weaken some Normed* to Seminormed* (#10448) - Reorder `variable`s so that related variables are declared on the same line; - Use `Seminormed*`/`PseudoMetric*` for all non-primed type variables. - Introduce `V₁'`/`P₁'` for a normed add torsor. ESTIMATED CHANGES Modified Mathlib/Analysis/NormedSpace/AffineIsometry.lean +/- theorem AffineIsometry.map_eq_iff +/- theorem AffineIsometry.map_ne +/- theorem AffineSubspace.isometryEquivMap.apply_symm_apply +/- theorem AffineSubspace.isometryEquivMap.coe_apply +/- theorem AffineSubspace.isometryEquivMap.toAffineMap_eq 2024-02-13 12:46:08 9db90fd chore(SimpleGraph/IncMatrix): review `Decidable*`/`Fintype _` assumptions (#10445) Drop unneeded assumptions, modify other assumptions to match exactly what's required to formulate the theorems. ESTIMATED CHANGES Modified Mathlib/Combinatorics/SimpleGraph/IncMatrix.lean +/- theorem SimpleGraph.incMatrix_mul_transpose +/- theorem SimpleGraph.incMatrix_mul_transpose_diag +/- theorem SimpleGraph.incMatrix_transpose_mul_diag +/- theorem SimpleGraph.sum_incMatrix_apply +/- theorem SimpleGraph.sum_incMatrix_apply_of_mem_edgeSet +/- theorem SimpleGraph.sum_incMatrix_apply_of_not_mem_edgeSet 2024-02-13 12:46:07 c6636bb chore(SimpleGraph/Finite): drop some `DecidableEq` assumptions (#10441) - don't assume `DecidableEq` in `card_edgeFinset_le_card_choose_two`; - make `edgeFinset_deleteEdges` work with any `Fintype G.edgeSet` and `Fintype (G.deleteEdges s).edgeSet` instances; - don't assume `DecidbaleEq` in theorems about `DeleteFar`. ESTIMATED CHANGES Modified Mathlib/Combinatorics/SimpleGraph/Finite.lean +/- theorem SimpleGraph.card_edgeFinset_top_eq_card_choose_two +/- theorem SimpleGraph.edgeFinset_deleteEdges +/- theorem SimpleGraph.edgeFinset_top 2024-02-13 11:56:29 4597f54 feat: innerRegular_map_mul (#10401) The image of an inner regular measure under left/right multiplication is again inner regular. ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Group/Measure.lean 2024-02-13 11:24:23 1115238 feat: Add `Finset.card_union_eq_card_add_card` and golf (#10471) ESTIMATED CHANGES Modified Mathlib/Data/Finset/Card.lean + theorem Finset.card_union_eq_card_add_card - theorem Finset.card_union_of_disjoint 2024-02-13 10:50:08 7dd3560 perf (Algebra.DirectLimit): use `suppress_compilation` (#9664) Uses `suppress_compilation` to lessen the load on Lean when building the file. ESTIMATED CHANGES Modified Mathlib/Algebra/DirectLimit.lean 2024-02-13 09:59:52 4f8cced feat: add Integrable.of_integral_ne_zero (#10430) ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Integral/Bochner.lean + theorem MeasureTheory.Integrable.of_integral_ne_zero +/- theorem MeasureTheory.integrable_of_integral_eq_one 2024-02-13 09:59:51 b005724 feat: computation of `Over A` for a presheaf `A` (#10245) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Comma/Presheaf.lean + def CategoryTheory.CostructuredArrow.toOverCompOverEquivPresheafCostructuredArrow + theorem CategoryTheory.OverPresheafAux.MakesOverArrow.map₁ + theorem CategoryTheory.OverPresheafAux.MakesOverArrow.map₂ + theorem CategoryTheory.OverPresheafAux.MakesOverArrow.of_arrow + theorem CategoryTheory.OverPresheafAux.MakesOverArrow.of_yoneda_arrow + structure CategoryTheory.OverPresheafAux.MakesOverArrow + theorem CategoryTheory.OverPresheafAux.OverArrows.app_val + def CategoryTheory.OverPresheafAux.OverArrows.costructuredArrowIso + theorem CategoryTheory.OverPresheafAux.OverArrows.ext + theorem CategoryTheory.OverPresheafAux.OverArrows.map_val + def CategoryTheory.OverPresheafAux.OverArrows.map₁ + theorem CategoryTheory.OverPresheafAux.OverArrows.map₁_map₂ + theorem CategoryTheory.OverPresheafAux.OverArrows.map₁_val + def CategoryTheory.OverPresheafAux.OverArrows.map₂ + theorem CategoryTheory.OverPresheafAux.OverArrows.map₂_val + def CategoryTheory.OverPresheafAux.OverArrows.val + theorem CategoryTheory.OverPresheafAux.OverArrows.val_mk + def CategoryTheory.OverPresheafAux.OverArrows.yonedaArrow + theorem CategoryTheory.OverPresheafAux.OverArrows.yonedaArrow_val + theorem CategoryTheory.OverPresheafAux.OverArrows.yonedaCollectionPresheafToA_val_fst + def CategoryTheory.OverPresheafAux.OverArrows + theorem CategoryTheory.OverPresheafAux.YonedaCollection.ext + def CategoryTheory.OverPresheafAux.YonedaCollection.fst + def CategoryTheory.OverPresheafAux.YonedaCollection.map₁ + theorem CategoryTheory.OverPresheafAux.YonedaCollection.map₁_comp + theorem CategoryTheory.OverPresheafAux.YonedaCollection.map₁_fst + theorem CategoryTheory.OverPresheafAux.YonedaCollection.map₁_id + theorem CategoryTheory.OverPresheafAux.YonedaCollection.map₁_map₂ + theorem CategoryTheory.OverPresheafAux.YonedaCollection.map₁_snd + theorem CategoryTheory.OverPresheafAux.YonedaCollection.map₁_yonedaEquivFst + def CategoryTheory.OverPresheafAux.YonedaCollection.map₂ + theorem CategoryTheory.OverPresheafAux.YonedaCollection.map₂_comp + theorem CategoryTheory.OverPresheafAux.YonedaCollection.map₂_fst + theorem CategoryTheory.OverPresheafAux.YonedaCollection.map₂_id + theorem CategoryTheory.OverPresheafAux.YonedaCollection.map₂_snd + theorem CategoryTheory.OverPresheafAux.YonedaCollection.map₂_yonedaEquivFst + def CategoryTheory.OverPresheafAux.YonedaCollection.mk + theorem CategoryTheory.OverPresheafAux.YonedaCollection.mk_fst + theorem CategoryTheory.OverPresheafAux.YonedaCollection.mk_snd + def CategoryTheory.OverPresheafAux.YonedaCollection.snd + def CategoryTheory.OverPresheafAux.YonedaCollection.yonedaEquivFst + theorem CategoryTheory.OverPresheafAux.YonedaCollection.yonedaEquivFst_eq + def CategoryTheory.OverPresheafAux.YonedaCollection + theorem CategoryTheory.OverPresheafAux.app_unitForward + def CategoryTheory.OverPresheafAux.costructuredArrowPresheafToOver + def CategoryTheory.OverPresheafAux.counit + def CategoryTheory.OverPresheafAux.counitAux + def CategoryTheory.OverPresheafAux.counitAuxAux + def CategoryTheory.OverPresheafAux.counitBackward + theorem CategoryTheory.OverPresheafAux.counitBackward_counitForward + def CategoryTheory.OverPresheafAux.counitForward + theorem CategoryTheory.OverPresheafAux.counitForward_counitBackward + theorem CategoryTheory.OverPresheafAux.counitForward_naturality₁ + theorem CategoryTheory.OverPresheafAux.counitForward_naturality₂ + theorem CategoryTheory.OverPresheafAux.counitForward_val_fst + theorem CategoryTheory.OverPresheafAux.counitForward_val_snd + theorem CategoryTheory.OverPresheafAux.map_mkPrecomp_eqToHom + def CategoryTheory.OverPresheafAux.restrictedYoneda + def CategoryTheory.OverPresheafAux.restrictedYonedaObj + def CategoryTheory.OverPresheafAux.restrictedYonedaObjMap₁ + def CategoryTheory.OverPresheafAux.toOverYonedaCompRestrictedYoneda + def CategoryTheory.OverPresheafAux.unit + def CategoryTheory.OverPresheafAux.unitAux + def CategoryTheory.OverPresheafAux.unitAuxAux + def CategoryTheory.OverPresheafAux.unitAuxAuxAux + def CategoryTheory.OverPresheafAux.unitBackward + theorem CategoryTheory.OverPresheafAux.unitBackward_unitForward + def CategoryTheory.OverPresheafAux.unitForward + theorem CategoryTheory.OverPresheafAux.unitForward_naturality₁ + theorem CategoryTheory.OverPresheafAux.unitForward_naturality₂ + theorem CategoryTheory.OverPresheafAux.unitForward_unitBackward + def CategoryTheory.OverPresheafAux.yonedaCollectionFunctor + def CategoryTheory.OverPresheafAux.yonedaCollectionPresheaf + def CategoryTheory.OverPresheafAux.yonedaCollectionPresheafMap₁ + def CategoryTheory.OverPresheafAux.yonedaCollectionPresheafToA + def CategoryTheory.overEquivPresheafCostructuredArrow 2024-02-13 07:51:53 7fa9bfd chore: remove @[simp] from tsub_eq_zero_iff_le (#10474) ESTIMATED CHANGES Modified Archive/Imo/Imo1986Q5.lean Modified Mathlib/Algebra/Order/Sub/Canonical.lean Modified Mathlib/Data/Nat/Fib/Zeckendorf.lean Modified Mathlib/Data/Polynomial/EraseLead.lean Modified Mathlib/MeasureTheory/Measure/Hausdorff.lean Modified Mathlib/MeasureTheory/Measure/Regular.lean Modified Mathlib/NumberTheory/BernoulliPolynomials.lean 2024-02-13 07:51:52 964b3dc doc: fix typos (#10457) Fixed minor typos. ESTIMATED CHANGES Modified Mathlib/Data/Fin/Tuple/BubbleSortInduction.lean 2024-02-13 07:51:52 938ebf0 feat: add compactness of the spectrum as an instance (#10371) ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/Spectrum.lean + theorem spectrum.algebraMap_mem_iff + theorem spectrum.preimage_algebraMap Modified Mathlib/Analysis/NormedSpace/Spectrum.lean 2024-02-13 07:04:36 32ec47a feat: `DifferentiableOn.cpow` (#10203) direct application of the content above it. ESTIMATED CHANGES Modified Mathlib/Analysis/SpecialFunctions/Pow/Deriv.lean + theorem Differentiable.const_cpow + theorem Differentiable.cpow + theorem DifferentiableOn.const_cpow + theorem DifferentiableOn.cpow 2024-02-13 05:56:12 c892c4c chore: bump Std (#10475) ESTIMATED CHANGES Modified Mathlib/Data/Fin/Basic.lean - theorem Fin.coe_sub_iff_le - theorem Fin.coe_sub_iff_lt Modified lake-manifest.json 2024-02-13 05:08:40 6a78c17 chore(PowerSeries/Basic): drop a `DecidableEq` assumption (#10434) ESTIMATED CHANGES Modified Mathlib/RingTheory/PowerSeries/Basic.lean +/- theorem MvPowerSeries.coeff_truncFun 2024-02-13 04:00:12 f236307 chore(LinearAlgebra/Finsupp): `Fintype` -> `Finite` (#10463) ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/Finsupp.lean +/- theorem LinearMap.leftInverse_splittingOfFunOnFintypeSurjective +/- def LinearMap.splittingOfFunOnFintypeSurjective +/- theorem LinearMap.splittingOfFunOnFintypeSurjective_injective +/- theorem LinearMap.splittingOfFunOnFintypeSurjective_splits 2024-02-13 04:00:11 cfea3dc chore(Lebesgue/EqHaar): `Fintype` -> `Finite` (#10461) ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Measure/Lebesgue/EqHaar.lean +/- def TopologicalSpace.PositiveCompacts.piIcc01 2024-02-13 04:00:10 295eaa2 chore(Ideal/QuotientOperations): `Fintype` -> `Finite` (#10460) ESTIMATED CHANGES Modified Mathlib/RingTheory/Ideal/QuotientOperations.lean +/- theorem Ideal.quotientInfToPiQuotient_surj 2024-02-13 04:00:09 2524d76 move: Move `MonoidWithZeroHom` to its own file (#10438) `MonoidWithZeroHom` confusingly pulled `Algebra.GroupWithZero.Defs` in `Algebra.Group.Hom.Defs`. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Free.lean Modified Mathlib/Algebra/Group/Hom/Basic.lean Modified Mathlib/Algebra/Group/Hom/Defs.lean - theorem MonoidWithZeroHom.cancel_left - theorem MonoidWithZeroHom.cancel_right - theorem MonoidWithZeroHom.coe_coe - theorem MonoidWithZeroHom.coe_comp - theorem MonoidWithZeroHom.coe_copy - theorem MonoidWithZeroHom.coe_inj - theorem MonoidWithZeroHom.coe_mk - def MonoidWithZeroHom.comp - theorem MonoidWithZeroHom.comp_apply - theorem MonoidWithZeroHom.comp_assoc - theorem MonoidWithZeroHom.comp_id - theorem MonoidWithZeroHom.congr_arg - theorem MonoidWithZeroHom.congr_fun - theorem MonoidWithZeroHom.copy_eq - theorem MonoidWithZeroHom.ext - theorem MonoidWithZeroHom.ext_iff - def MonoidWithZeroHom.id - theorem MonoidWithZeroHom.id_comp - theorem MonoidWithZeroHom.mk_coe - theorem MonoidWithZeroHom.toMonoidHom_coe - theorem MonoidWithZeroHom.toMonoidHom_injective - theorem MonoidWithZeroHom.toZeroHom_coe - theorem MonoidWithZeroHom.toZeroHom_injective - structure MonoidWithZeroHom - def MonoidWithZeroHomClass.toMonoidWithZeroHom Added Mathlib/Algebra/GroupWithZero/Hom.lean + theorem MonoidWithZeroHom.cancel_left + theorem MonoidWithZeroHom.cancel_right + theorem MonoidWithZeroHom.coe_coe + theorem MonoidWithZeroHom.coe_comp + theorem MonoidWithZeroHom.coe_copy + theorem MonoidWithZeroHom.coe_inj + theorem MonoidWithZeroHom.coe_mk + def MonoidWithZeroHom.comp + theorem MonoidWithZeroHom.comp_apply + theorem MonoidWithZeroHom.comp_assoc + theorem MonoidWithZeroHom.comp_id + theorem MonoidWithZeroHom.congr_arg + theorem MonoidWithZeroHom.congr_fun + theorem MonoidWithZeroHom.copy_eq + theorem MonoidWithZeroHom.ext + theorem MonoidWithZeroHom.ext_iff + def MonoidWithZeroHom.id + theorem MonoidWithZeroHom.id_comp + theorem MonoidWithZeroHom.mk_coe + theorem MonoidWithZeroHom.toMonoidHom_coe + theorem MonoidWithZeroHom.toMonoidHom_injective + theorem MonoidWithZeroHom.toZeroHom_coe + theorem MonoidWithZeroHom.toZeroHom_injective + structure MonoidWithZeroHom + def MonoidWithZeroHomClass.toMonoidWithZeroHom Modified Mathlib/Algebra/Ring/Hom/Defs.lean Modified Mathlib/CategoryTheory/Groupoid/VertexGroup.lean 2024-02-13 03:34:01 62ac0bd chore(SimpleGraph/DegreeSum): drop some `DecidableEq` assumptions (#10443) ESTIMATED CHANGES Modified Mathlib/Combinatorics/SimpleGraph/DegreeSum.lean +/- theorem SimpleGraph.Dart.edge_fiber +/- theorem SimpleGraph.dart_edge_fiber_card 2024-02-13 01:01:39 739a6e5 fix: `shake --downstream` bug (#10469) The old code was not taking into account a certain import situation, and the fix requires recalculating the whole transitive dependency graph, which is a bit expensive. Furthermore, the output is now more nuanced, because instead of saying "remove A, instead import A in B1, B2", it may need to suggest importing other files like "remove A, instead import C1 in B1 and C2, C3 in B2". It could suggest to import `A` in all affected downstream files, but those files might not be using `A` directly so this would cause shake to complain again after applying the fix. ESTIMATED CHANGES Modified Shake/Main.lean 2024-02-12 23:48:15 a6f1457 fix(Cardinal): fix theorem names (#10465) Remove unnecessary `of_lt_aleph_0` from 2 theorem names. Also fix typos in the comments of 2 other files. ESTIMATED CHANGES Modified Mathlib/SetTheory/Cardinal/Basic.lean Modified Mathlib/SetTheory/Cardinal/Ordinal.lean + theorem Cardinal.add_nat_le_add_nat_iff - theorem Cardinal.add_nat_le_add_nat_iff_of_lt_aleph_0 + theorem Cardinal.add_one_le_add_one_iff - theorem Cardinal.add_one_le_add_one_iff_of_lt_aleph_0 Modified Mathlib/SetTheory/Ordinal/Basic.lean 2024-02-12 23:48:14 a694837 chore(QuadraticForm): `Fintype -> Finite`, `DecidableEq` (#10462) ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/QuadraticForm/Basic.lean +/- theorem QuadraticForm.basisRepr_apply Modified Mathlib/LinearAlgebra/QuadraticForm/Complex.lean Modified Mathlib/LinearAlgebra/QuadraticForm/Real.lean 2024-02-12 22:42:53 839d7c0 feat: Fin.exists_fin_succ' (#10459) Adds `Fin.exists_fin_succ'`, which is analogous to [`Fin.forall_fin_succ'`](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Data/Fin/Basic.html#Fin.forall_fin_succ'). ESTIMATED CHANGES Modified Mathlib/Data/Fin/Basic.lean + theorem Fin.exists_fin_succ' 2024-02-12 20:59:06 b569e06 feat: introduce `IsRelPrime` and `DecompositionMonoid` and refactor (#10327) + Introduce typeclass `DecompositionMonoid`, which says every element in the monoid is primal, i.e., whenever an element divides a product `b * c`, it can be factored into a product such that the factors divides `b` and `c` respectively. A domain is called pre-Schreier if its multiplicative monoid is a decomposition monoid, and these are more general than GCD domains. + Show that any `GCDMonoid` is a `DecompositionMonoid`. In order for lemmas about `DecompositionMonoid`s to automatically apply to `UniqueFactorizationMonoid`s, we add instances from `UniqueFactorizationMonoid α` to `Nonempty (NormalizedGCDMonoid α)` to `Nonempty (GCDMonoid α)` to `DecompositionMonoid α`. ([Zulip](https://leanprover.zulipchat.com/#narrow/stream/144837-PR-reviews/topic/non-normalizable.20gcd_monoid/near/316895209)) See the bottom of message for an updated diagram of classes and instances. + Introduce binary predicate `IsRelPrime` which says that the only common divisors of the two elements are units. Replace previous occurrences in mathlib by this predicate. + Duplicate all lemmas about `IsCoprime` in Coprime/Basic (except three lemmas about smul) to `IsRelPrime`. Due to import constraints, they are spread into three files Algebra/Divisibility/Units (including key lemmas assuming DecompositionMonoid), GroupWithZero/Divisibility, and Coprime/Basic. + Show `IsCoprime` always imply `IsRelPrime` and is equivalent to it in Bezout rings. To reduce duplication, the definition of Bezout rings and the GCDMonoid instance are moved from RingTheory/Bezout to RingTheory/PrincipalIdealDomain, and some results in PrincipalIdealDomain are generalized to Bezout rings. + Remove the recently added file Squarefree/UniqueFactorizationMonoid and place the results appropriately within Squarefree/Basic. All results are generalized to DecompositionMonoid or weaker except the last one. [Zulip](https://leanprover.zulipchat.com/#narrow/stream/217875-Is-there-code-for-X.3F/topic/Coprime.20if.20product.20is.20squarefree/near/419334520) With this PR, all the following instances (indicated by arrows) now work; this PR fills the central part. ``` EuclideanDomain (bundled) ↙ ↖ IsPrincipalIdealRing ← Field (bundled) ↓ ↓ NormalizationMonoid ← NormalizedGCDMonoid → GCDMonoid IsBezout ← ValuationRing ← DiscreteValuationRing ↓ ↓ ↘ ↙ Nonempty NormalizationMonoid ← Nonempty NormalizedGCDMonoid → Nonempty GCDMonoid → IsIntegrallyClosed ↑ ↓ WfDvdMonoid ← UniqueFactorizationMonoid → DecompositionMonoid ↑ IsPrincipalIdealRing ``` ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Associated.lean +/- theorem Associated.mul_left +/- theorem Associated.mul_mul +/- theorem Associated.mul_right + theorem Associates.decompositionMonoid_iff + theorem Associates.isPrimal_iff + theorem Associates.mk_isRelPrime_iff - theorem Irreducible.coprime_iff_not_dvd' + theorem Irreducible.dvd_or_isRelPrime + theorem Irreducible.isRelPrime_iff_not_dvd + theorem Irreducible.prime + theorem Irreducible.prime_of_isPrimal + theorem Prime.isPrimal + theorem associates_irreducible_iff_prime + theorem irreducible_iff_prime Modified Mathlib/Algebra/Divisibility/Basic.lean + def IsPrimal + theorem dvd_mul + theorem exists_dvd_and_dvd_of_dvd_mul Modified Mathlib/Algebra/Divisibility/Prod.lean + theorem pi_dvd_iff Modified Mathlib/Algebra/Divisibility/Units.lean + theorem IsRelPrime.dvd_of_dvd_mul_left + theorem IsRelPrime.dvd_of_dvd_mul_left_of_isPrimal + theorem IsRelPrime.dvd_of_dvd_mul_right + theorem IsRelPrime.dvd_of_dvd_mul_right_of_isPrimal + theorem IsRelPrime.isUnit_of_dvd + theorem IsRelPrime.mul_dvd + theorem IsRelPrime.mul_dvd_of_left_isPrimal + theorem IsRelPrime.mul_dvd_of_right_isPrimal + theorem IsRelPrime.mul_left + theorem IsRelPrime.mul_left_iff + theorem IsRelPrime.mul_right + theorem IsRelPrime.mul_right_iff + theorem IsRelPrime.of_dvd_left + theorem IsRelPrime.of_dvd_right + theorem IsRelPrime.of_mul_left_left + theorem IsRelPrime.of_mul_left_right + theorem IsRelPrime.of_mul_right_left + theorem IsRelPrime.of_mul_right_right + theorem IsRelPrime.symm + def IsRelPrime + theorem IsUnit.isPrimal + theorem IsUnit.isRelPrime_left + theorem IsUnit.isRelPrime_right + theorem isRelPrime_comm + theorem isRelPrime_mul_unit_left + theorem isRelPrime_mul_unit_left_left + theorem isRelPrime_mul_unit_left_right + theorem isRelPrime_mul_unit_right + theorem isRelPrime_mul_unit_right_left + theorem isRelPrime_mul_unit_right_right + theorem isRelPrime_one_left + theorem isRelPrime_one_right + theorem isRelPrime_self Modified Mathlib/Algebra/GCDMonoid/Basic.lean - theorem GCDMonoid.irreducible_iff_prime - theorem GCDMonoid.prime_of_irreducible - theorem dvd_mul - theorem exists_dvd_and_dvd_of_dvd_mul + theorem gcd_isUnit_iff_isRelPrime Modified Mathlib/Algebra/GCDMonoid/IntegrallyClosed.lean +/- theorem IsLocalization.surj_of_gcd_domain Modified Mathlib/Algebra/GroupWithZero/Divisibility.lean + theorem IsPrimal.mul + theorem IsRelPrime.ne_zero_or_ne_zero + theorem isPrimal_zero + theorem isRelPrime_of_no_nonunits_factors + theorem isRelPrime_zero_left + theorem isRelPrime_zero_right + theorem not_isRelPrime_zero_zero Modified Mathlib/Algebra/Ring/Divisibility/Basic.lean + theorem MulEquiv.decompositionMonoid +/- theorem map_dvd_iff Modified Mathlib/Algebra/Squarefree/Basic.lean +/- theorem IsRadical.squarefree + theorem IsRelPrime.of_squarefree_mul + theorem Squarefree.dvd_of_squarefree_of_mul_dvd_mul_left + theorem Squarefree.dvd_of_squarefree_of_mul_dvd_mul_right + theorem Squarefree.dvd_pow_iff_dvd + theorem Squarefree.pow_dvd_of_squarefree_of_pow_succ_dvd_mul_left + theorem Squarefree.pow_dvd_of_squarefree_of_pow_succ_dvd_mul_right - theorem UniqueFactorizationMonoid.dvd_pow_iff_dvd_of_squarefree + theorem exists_squarefree_dvd_pow_of_ne_zero +/- theorem isRadical_iff_squarefree_of_ne_zero +/- theorem isRadical_iff_squarefree_or_zero + theorem squarefree_iff_no_irreducibles + theorem squarefree_mul_iff Deleted Mathlib/Algebra/Squarefree/UniqueFactorizationDomain.lean - theorem Squarefree.dvd_of_squarefree_of_mul_dvd_mul_left - theorem Squarefree.dvd_of_squarefree_of_mul_dvd_mul_right - theorem Squarefree.pow_dvd_of_squarefree_of_pow_succ_dvd_mul_left - theorem Squarefree.pow_dvd_of_squarefree_of_pow_succ_dvd_mul_right - theorem exists_squarefree_dvd_pow_of_ne_zero - theorem squarefree_iff - theorem squarefree_mul_iff Modified Mathlib/AlgebraicGeometry/EllipticCurve/Group.lean Modified Mathlib/Data/Nat/GCD/Basic.lean + theorem Nat.coprime_iff_isRelPrime Modified Mathlib/Data/Polynomial/Mirror.lean Modified Mathlib/Data/Polynomial/Splits.lean Modified Mathlib/Data/Polynomial/UnitTrinomial.lean Modified Mathlib/GroupTheory/FiniteAbelian.lean Modified Mathlib/GroupTheory/Submonoid/Membership.lean + def Submonoid.isPrimal Modified Mathlib/LinearAlgebra/JordanChevalley.lean Modified Mathlib/NumberTheory/SumTwoSquares.lean Modified Mathlib/RingTheory/Bezout.lean - theorem IsBezout.dvd_gcd - theorem IsBezout.gcd_dvd_left - theorem IsBezout.gcd_dvd_right - theorem IsBezout.gcd_eq_sum - theorem IsBezout.span_gcd Modified Mathlib/RingTheory/Coprime/Basic.lean + theorem IsCoprime.isRelPrime + theorem IsRelPrime.add_mul_left_left + theorem IsRelPrime.add_mul_left_left_iff + theorem IsRelPrime.add_mul_left_right + theorem IsRelPrime.add_mul_left_right_iff + theorem IsRelPrime.add_mul_right_left + theorem IsRelPrime.add_mul_right_left_iff + theorem IsRelPrime.add_mul_right_right + theorem IsRelPrime.add_mul_right_right_iff + theorem IsRelPrime.mul_add_left_left + theorem IsRelPrime.mul_add_left_left_iff + theorem IsRelPrime.mul_add_left_right + theorem IsRelPrime.mul_add_left_right_iff + theorem IsRelPrime.mul_add_right_left + theorem IsRelPrime.mul_add_right_left_iff + theorem IsRelPrime.mul_add_right_right + theorem IsRelPrime.mul_add_right_right_iff + theorem IsRelPrime.neg_left + theorem IsRelPrime.neg_left_iff + theorem IsRelPrime.neg_neg_iff + theorem IsRelPrime.neg_right + theorem IsRelPrime.neg_right_iff + theorem IsRelPrime.of_add_mul_left_left + theorem IsRelPrime.of_add_mul_left_right + theorem IsRelPrime.of_add_mul_right_left + theorem IsRelPrime.of_add_mul_right_right + theorem IsRelPrime.of_mul_add_left_left + theorem IsRelPrime.of_mul_add_left_right + theorem IsRelPrime.of_mul_add_right_left + theorem IsRelPrime.of_mul_add_right_right Modified Mathlib/RingTheory/Coprime/Lemmas.lean + theorem Finset.prod_dvd_of_isRelPrime + theorem Fintype.prod_dvd_of_isRelPrime +/- theorem IsCoprime.prod_left +/- theorem IsCoprime.prod_left_iff + theorem IsRelPrime.of_prod_left + theorem IsRelPrime.of_prod_right + theorem IsRelPrime.pow + theorem IsRelPrime.pow_iff + theorem IsRelPrime.pow_left + theorem IsRelPrime.pow_left_iff + theorem IsRelPrime.pow_right + theorem IsRelPrime.pow_right_iff + theorem IsRelPrime.prod_left + theorem IsRelPrime.prod_left_iff + theorem IsRelPrime.prod_right + theorem IsRelPrime.prod_right_iff + theorem pairwise_isRelPrime_iff_isRelPrime_prod Modified Mathlib/RingTheory/DiscreteValuationRing/Basic.lean Modified Mathlib/RingTheory/Ideal/Norm.lean Modified Mathlib/RingTheory/Localization/NumDen.lean +/- theorem IsFractionRing.num_den_reduced Modified Mathlib/RingTheory/Nilpotent.lean + theorem IsRadical.of_dvd + theorem Prime.isRadical Modified Mathlib/RingTheory/Polynomial/Basic.lean Modified Mathlib/RingTheory/Polynomial/Content.lean Modified Mathlib/RingTheory/Polynomial/Eisenstein/IsIntegral.lean Modified Mathlib/RingTheory/PrincipalIdealDomain.lean +/- theorem Irreducible.coprime_iff_not_dvd + theorem IsBezout.dvd_gcd + theorem IsBezout.gcd_dvd_left + theorem IsBezout.gcd_dvd_right + theorem IsBezout.gcd_eq_sum + theorem IsBezout.span_gcd + theorem IsBezout.span_gcd_eq_span_gcd + theorem IsRelPrime.isCoprime +/- theorem Prime.coprime_iff_not_dvd - theorem PrincipalIdealRing.associates_irreducible_iff_prime - theorem PrincipalIdealRing.irreducible_iff_prime +/- theorem Submodule.IsPrincipal.prime_generator_of_isPrime +/- theorem Submodule.IsPrincipal.principal +/- theorem dvd_or_coprime + theorem isRelPrime_iff_isCoprime +/- theorem span_gcd Modified Mathlib/RingTheory/RootsOfUnity/Minpoly.lean +/- theorem IsPrimitiveRoot.minpoly_dvd_mod_p Modified Mathlib/RingTheory/UniqueFactorizationDomain.lean - theorem UniqueFactorizationMonoid.dvd_of_coprime_of_dvd_mul_left - theorem UniqueFactorizationMonoid.dvd_of_coprime_of_dvd_mul_right +/- theorem UniqueFactorizationMonoid.dvd_of_dvd_mul_left_of_no_prime_factors + theorem UniqueFactorizationMonoid.isRelPrime_iff_no_prime_factors - theorem UniqueFactorizationMonoid.mul_dvd_of_coprime - theorem UniqueFactorizationMonoid.no_factors_of_no_prime_factors + theorem WfDvdMonoid.isRelPrime_of_no_irreducible_factors + theorem ufm_of_decomposition_of_wfDvdMonoid - theorem ufm_of_gcd_of_wfDvdMonoid Modified Mathlib/RingTheory/ZMod.lean Modified test/propose.lean 2024-02-12 19:50:41 4b401b7 chore: bump Std (#10455) ESTIMATED CHANGES Modified Archive/MiuLanguage/DecisionSuf.lean Modified Mathlib/Analysis/PSeries.lean Modified Mathlib/Data/Fin/Basic.lean Modified Mathlib/Data/Nat/Pow.lean - theorem Nat.one_le_two_pow - theorem Nat.one_lt_two_pow Modified Mathlib/NumberTheory/LucasLehmer.lean Modified lake-manifest.json 2024-02-12 17:24:13 64edf01 feat: the pairing of a Lie algebra root space with its negative (#10454) ESTIMATED CHANGES Modified Mathlib/Algebra/Lie/Basic.lean Modified Mathlib/Algebra/Lie/Submodule.lean + def LieModuleHom.codRestrict + theorem LieModuleHom.codRestrict_apply Modified Mathlib/Algebra/Lie/Weights/Cartan.lean + theorem LieAlgebra.coe_rootSpaceProductNegSelf_apply + theorem LieAlgebra.mem_range_rootSpaceProductNegSelf + def LieAlgebra.rootSpaceProductNegSelf Modified Mathlib/Logic/Basic.lean + theorem exists_exists_exists_and_eq 2024-02-12 15:37:03 1db5524 chore(Measure/Regular): reorder lemmas, change TC assumptions (#10447) * move `IsCompact.exists_isOpen_lt_of_lt` before `IsCompact.measure_eq_iInf_isOpen`; * weaken TC assumptions from `[IsFiniteMeasureOnCompacts μ] [LocallyCompactSpace α] [RegularSpace α]` to `[IsLocallyFiniteMeasure μ] [R1Space α]`. Not sure if we have other ways to get a locally finite measure though. ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Measure/Regular.lean 2024-02-12 14:50:07 2feb8a3 feat(Topology/Bases): add a version of `Set.PairwiseDisjoint.countable_of_isOpen` (#10439) Add a version for `Pairwise (Disjoint on _)`, not `Set.PairwiseDisjoint _`. ESTIMATED CHANGES Modified Mathlib/Topology/Bases.lean + theorem Pairwise.countable_of_isOpen_disjoint 2024-02-12 14:11:49 998cfc8 feat(CategoryTheory/Functor): pointwise left Kan extensions (#10413) In this PR, we introduce pointwise left Kan extensions: a criteria `IsPointwiseLeftKanExtension`, a typeclass `HasPointwiseLeftKanExtension` (which asserts the existence of certain colimits) and a construction of a pointwise left Kan extension when `HasPointwiseLeftKanExtension` holds. We also show that pointwise left Kan extensions are left Kan extensions. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/CategoryTheory/Functor/KanExtension/Basic.lean Added Mathlib/CategoryTheory/Functor/KanExtension/Pointwise.lean + theorem CategoryTheory.Functor.LeftExtension.IsPointwiseLeftKanExtension.hasLeftKanExtension + theorem CategoryTheory.Functor.LeftExtension.IsPointwiseLeftKanExtension.hasPointwiseLeftKanExtension + def CategoryTheory.Functor.LeftExtension.IsPointwiseLeftKanExtension.homFrom + theorem CategoryTheory.Functor.LeftExtension.IsPointwiseLeftKanExtension.hom_ext + theorem CategoryTheory.Functor.LeftExtension.IsPointwiseLeftKanExtension.isLeftKanExtension + def CategoryTheory.Functor.LeftExtension.IsPointwiseLeftKanExtension.isUniversal + theorem CategoryTheory.Functor.LeftExtension.IsPointwiseLeftKanExtensionAt.hasPointwiseLeftKanExtensionAt + def CategoryTheory.Functor.LeftExtension.IsPointwiseLeftKanExtensionAt + def CategoryTheory.Functor.LeftExtension.coconeAt 2024-02-12 14:11:47 22379b0 feat(CategoryTheory/Sites): characterise the covering sieves of the regular topology (#9976) Analogous to the characterisation for the covering sieves of the coherent topology: A sieve is a covering sieve for the regular topology iff it contains an effective epi. - [x] depends on: #9944 ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Sites/Coherent/RegularTopology.lean + theorem CategoryTheory.regularTopology.mem_sieves_iff_hasEffectiveEpi + theorem CategoryTheory.regularTopology.mem_sieves_of_hasEffectiveEpi 2024-02-12 13:42:25 5bb6674 refactor(Tactic/Positivity): use stricter Qq matching (#10196) The previous code often discarded the safety features of Qq by casting quoted terms to `Expr` and back. This is far from an exhaustive replacement. This makes use of a bug fix in Lean 4.6.0rc1 that allows us to write things like ```lean match u, α, e with | 0, ~q(ℤ), ~q(@Int.floor $α' $i $j $a) => ``` Previously these `match`es did not generalize `u` correctly. To make Qq happy, we introduce a few more `assertInstancesCommute` that were not previously here. Without them, there is a higher risk that `positivity` produces an ill-typed proof in weird situations. Like every `assertInstancesCommute`, this comes at a small performance cost that could be eliminated by using the unsafe `assumeInstancesCommute` instead. Another very small performance hit here is from the (possibly unnecessary) defeq check of the types before checking defeq of the values. On the other hand, this might actually increase performance when the match fails due to a type mismatch. There is probably some boilerplate that can be extracted from the repetition here; but I am declaring that out of scope for this PR: the goal is to establish a canonical spelling for this sort of matching, so that future extensions copy-pasted from these extensions inherit the spelling automatically. ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Floor.lean +/- def Mathlib.Meta.Positivity.evalIntCeil +/- def Mathlib.Meta.Positivity.evalIntFloor +/- def Mathlib.Meta.Positivity.evalNatCeil Modified Mathlib/Algebra/Order/Interval.lean Modified Mathlib/Analysis/Normed/Group/Basic.lean +/- def Mathlib.Meta.Positivity.evalAddNorm +/- def Mathlib.Meta.Positivity.evalMulNorm Modified Mathlib/Analysis/SpecialFunctions/Gamma/Basic.lean +/- def Mathlib.Meta.Positivity.evalGamma Modified Mathlib/Analysis/SpecialFunctions/Log/Basic.lean +/- def Mathlib.Meta.Positivity.evalLogIntCast +/- def Mathlib.Meta.Positivity.evalLogNatCast +/- def Mathlib.Meta.Positivity.evalLogNatLit Modified Mathlib/Analysis/SpecialFunctions/Pow/Real.lean +/- def Mathlib.Meta.Positivity.evalRpow +/- def Mathlib.Meta.Positivity.evalRpowZero Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Basic.lean +/- def Mathlib.Meta.Positivity.evalRealPi Modified Mathlib/Combinatorics/SimpleGraph/Regularity/Bound.lean +/- def Mathlib.Meta.Positivity.evalBound +/- def Mathlib.Meta.Positivity.evalInitialBound Modified Mathlib/Data/Complex/Exponential.lean +/- def Mathlib.Meta.Positivity.evalExp Modified Mathlib/Data/ENNReal/Basic.lean +/- def Mathlib.Meta.Positivity.evalENNRealOfNNReal +/- def Mathlib.Meta.Positivity.evalENNRealtoReal Modified Mathlib/Data/ENNReal/Real.lean +/- def Mathlib.Meta.Positivity.evalENNRealOfReal Modified Mathlib/Data/Real/NNReal.lean +/- def Mathlib.Meta.Positivity.evalNNRealtoReal Modified Mathlib/Data/Real/Sqrt.lean +/- def Mathlib.Meta.Positivity.evalNNRealSqrt +/- def Mathlib.Meta.Positivity.evalSqrt Modified Mathlib/Tactic/Positivity/Basic.lean +/- def Mathlib.Meta.Positivity.evalAscFactorial +/- def Mathlib.Meta.Positivity.evalFactorial +/- def Mathlib.Meta.Positivity.evalIntDiv +/- def Mathlib.Meta.Positivity.evalNatAbs +/- def Mathlib.Meta.Positivity.evalNatSucc Modified Mathlib/Topology/MetricSpace/Bounded.lean +/- def Mathlib.Meta.Positivity.evalDiam Modified Mathlib/Topology/MetricSpace/PseudoMetric.lean +/- def Mathlib.Meta.Positivity.evalDist 2024-02-12 12:42:10 7ccf57f feat : Move various notions of uniform probability distributions to one file. (#10451) feat : collect uniform distribution for measures and uniform PMF in one file. This collects the various notions of uniform distribution in one file, to unify them with a forthcoming PR. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Probability/Density.lean - theorem MeasureTheory.pdf.IsUniform.absolutelyContinuous - theorem MeasureTheory.pdf.IsUniform.aemeasurable - theorem MeasureTheory.pdf.IsUniform.hasPDF - theorem MeasureTheory.pdf.IsUniform.integral_eq - theorem MeasureTheory.pdf.IsUniform.isProbabilityMeasure - theorem MeasureTheory.pdf.IsUniform.measure_preimage - theorem MeasureTheory.pdf.IsUniform.mul_pdf_integrable - theorem MeasureTheory.pdf.IsUniform.pdf_eq - theorem MeasureTheory.pdf.IsUniform.pdf_eq_zero_of_measure_eq_zero_or_top - theorem MeasureTheory.pdf.IsUniform.pdf_toReal_ae_eq - theorem MeasureTheory.pdf.IsUniform.toMeasurable_iff - def MeasureTheory.pdf.IsUniform Renamed Mathlib/Probability/ProbabilityMassFunction/Uniform.lean to Mathlib/Probability/Distributions/Uniform.lean + theorem MeasureTheory.pdf.IsUniform.absolutelyContinuous + theorem MeasureTheory.pdf.IsUniform.aemeasurable + theorem MeasureTheory.pdf.IsUniform.hasPDF + theorem MeasureTheory.pdf.IsUniform.integral_eq + theorem MeasureTheory.pdf.IsUniform.isProbabilityMeasure + theorem MeasureTheory.pdf.IsUniform.measure_preimage + theorem MeasureTheory.pdf.IsUniform.mul_pdf_integrable + theorem MeasureTheory.pdf.IsUniform.pdf_eq + theorem MeasureTheory.pdf.IsUniform.pdf_eq_zero_of_measure_eq_zero_or_top + theorem MeasureTheory.pdf.IsUniform.pdf_toReal_ae_eq + theorem MeasureTheory.pdf.IsUniform.toMeasurable_iff + def MeasureTheory.pdf.IsUniform 2024-02-12 12:14:45 f9d8675 feat(NumberTheory/ArithmeticFunction): add separate scopes for notations (and a lemma) (#10403) This adds individual scopes `ArithmeticFunction.zeta`, ..., `ArithmeticFunction.Omega`, `ArithmeticFunction.Moebius`, `ArithmeticFunction.vonMangoldt` for the notations `ζ`, `σ`, `ω`, `Ω` and `μ`, `Λ`. This makes it possible to access a selected subset of these instead of either none or all of them. We also add the lemma `ArithmeticFunction.pmul_assoc`. See [here](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/Nat.2EArithmeticFunction.20--.3E.20ArithmeticFunction/near/420800408) and [here](https://leanprover.zulipchat.com/#narrow/stream/270676-lean4/topic/How.20do.20you.20hide.20scoped.20notation/near/418117690) on Zulip. ESTIMATED CHANGES Modified Mathlib/NumberTheory/ArithmeticFunction.lean + theorem ArithmeticFunction.pmul_assoc Modified Mathlib/NumberTheory/VonMangoldt.lean 2024-02-12 10:30:35 e5de077 chore(SetFamily/FourFunctions): drop some unneeded `DecidableEq` assumptions (#10442) ESTIMATED CHANGES Modified Mathlib/Combinatorics/SetFamily/FourFunctions.lean +/- theorem Finset.le_card_infs_mul_card_sups +/- theorem four_functions_theorem 2024-02-12 10:30:34 57a4bbf chore(LinearAlgebra/Multilinear): drop a `DecidableEq` assumption (#10437) ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/Multilinear/Basic.lean +/- def MultilinearMap.domDomRestrict +/- theorem MultilinearMap.domDomRestrict_apply 2024-02-12 10:30:33 32a9a09 chore(Data/Finset/Basic): lemmas about `toFinset` (#10427) ESTIMATED CHANGES Modified Mathlib/Data/Finset/Basic.lean + theorem List.toFinset_filter + theorem List.toFinset_range + theorem Multiset.toFinset_filter + theorem Multiset.toFinset_range 2024-02-12 10:30:32 88b30bb feat(CategoryTheory/Limits/MonoCoprod): inclusions of subcoproducts are mono (#10400) In this PR, it is shown that when suitable coproducts exists in a category satisfying `[MonoCoprod C]`, then if `X : I → C` and `ι : J → I` is an injective map, the canonical morphism `∐ (X ∘ ι) ⟶ ∐ X` is a monomorphism. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Limits/MonoCoprod.lean + def CategoryTheory.Limits.MonoCoprod.binaryCofanSum + def CategoryTheory.Limits.MonoCoprod.isColimitBinaryCofanSum + theorem CategoryTheory.Limits.MonoCoprod.mono_binaryCofanSum_inl' + theorem CategoryTheory.Limits.MonoCoprod.mono_binaryCofanSum_inl + theorem CategoryTheory.Limits.MonoCoprod.mono_binaryCofanSum_inr' + theorem CategoryTheory.Limits.MonoCoprod.mono_binaryCofanSum_inr + theorem CategoryTheory.Limits.MonoCoprod.mono_inj + theorem CategoryTheory.Limits.MonoCoprod.mono_map'_of_injective + theorem CategoryTheory.Limits.MonoCoprod.mono_of_injective' + theorem CategoryTheory.Limits.MonoCoprod.mono_of_injective + theorem CategoryTheory.Limits.MonoCoprod.mono_of_injective_aux 2024-02-12 10:30:31 2357b64 chore(NNRat): Rearrange imports (#10392) The goal is to separate the field material on `Rat`/`NNRat` from everything before to make way for `NNRat.cast`. We achieve this by * splitting `Data.Rat.NNRat` into * `Data.NNRat.Defs` for the foundationl stuff that will be needed in the definition of `Field` * `Data.NNRat.Lemmas` for the field and big operators material * moving the field material from `Data.Rat.Order` to `Data.Rat.Basic` * proving a few lemmas by `rfl` rather than `coeHom.some_now_unavailable_lemma` * renaming `Data.Rat.NNRat.BigOperators` to `Data.NNRat.BigOperators` ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Module/Basic.lean Modified Mathlib/Algebra/Order/Archimedean.lean Modified Mathlib/Algebra/Order/Nonneg/Ring.lean Modified Mathlib/Combinatorics/Additive/PluenneckeRuzsa.lean Renamed Mathlib/Data/Rat/NNRat/BigOperators.lean to Mathlib/Data/NNRat/BigOperators.lean Renamed Mathlib/Data/Rat/NNRat.lean to Mathlib/Data/NNRat/Defs.lean - theorem NNRat.coe_div - theorem NNRat.coe_indicator - theorem NNRat.coe_inv - theorem NNRat.num_div_den - theorem Rat.toNNRat_div' - theorem Rat.toNNRat_div - theorem Rat.toNNRat_inv Added Mathlib/Data/NNRat/Lemmas.lean + theorem NNRat.coe_div + theorem NNRat.coe_indicator + theorem NNRat.coe_inv + theorem NNRat.num_div_den + theorem Rat.toNNRat_div' + theorem Rat.toNNRat_div + theorem Rat.toNNRat_inv Modified Mathlib/Data/Rat/Cast/Defs.lean Renamed Mathlib/Data/Rat/Basic.lean to Mathlib/Data/Rat/Field.lean Modified Mathlib/Data/Rat/Order.lean Modified Mathlib/Data/Real/NNReal.lean Modified Mathlib/Tactic/Polyrith.lean Modified test/FieldSimp.lean Modified test/Qify.lean 2024-02-12 10:30:30 0796b06 chore(Tactic/{Positivity,NormNum}): remove support for non-canonical spellings (#10344) `Mul.mul` or `Nat.mul` etc should not ever appear in a goal, so there is little reason for these tactics to support them. If these are in your goal, then something has already gone wrong and `norm_num` isn't responsible for saving you; that's `simp` or `dsimp`'s job. [Zulip thread](https://leanprover.zulipchat.com/#narrow/stream/144837-PR-reviews/topic/.2310344.20removing.20norm_num.20support.20for.20Nat.2Esub.2C.20Sub.2Esub.2C.20etc/near/420507739) ESTIMATED CHANGES Modified Mathlib/Analysis/SpecialFunctions/Pow/Real.lean Modified Mathlib/Tactic/NormNum/Basic.lean +/- def Mathlib.Meta.NormNum.evalAdd +/- def Mathlib.Meta.NormNum.evalDiv +/- def Mathlib.Meta.NormNum.evalMul +/- def Mathlib.Meta.NormNum.evalNatMod +/- def Mathlib.Meta.NormNum.evalNatSub +/- def Mathlib.Meta.NormNum.evalSub Modified Mathlib/Tactic/NormNum/DivMod.lean Modified Mathlib/Tactic/NormNum/Eq.lean +/- def Mathlib.Meta.NormNum.evalEq Modified Mathlib/Tactic/NormNum/Pow.lean Modified Mathlib/Tactic/Positivity/Basic.lean +/- def Mathlib.Meta.Positivity.evalAdd +/- def Mathlib.Meta.Positivity.evalMul Modified test/norm_num.lean 2024-02-12 10:30:29 6b846c8 fix(positivity): now understands weak `0 < x` hypotheses (#10293) This matching used to be done solely by `norm_num`, but this doesn't work if the type has a zero that's not coupled with the algebraic hierarchy. ESTIMATED CHANGES Modified Mathlib/Tactic/Positivity/Core.lean +/- def Mathlib.Meta.Positivity.compareHypEq Modified test/positivity.lean 2024-02-12 10:30:28 e2abe9f feat: the Fourier transform of a Schwartz function is differentiable (#10268) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/Distribution/FourierSchwartz.lean + theorem SchwartzMap.hasFDerivAt_fourier + theorem SchwartzMap.integrable + theorem SchwartzMap.integrable_pow_mul + def VectorFourier.mul_L_schwartz + theorem VectorFourier.mul_L_schwartz_apply Modified Mathlib/Analysis/Distribution/SchwartzSpace.lean + theorem ContinuousLinearMap.hasTemperateGrowth + theorem Function.HasTemperateGrowth.const + theorem Function.HasTemperateGrowth.of_fderiv + theorem Function.HasTemperateGrowth.zero Modified Mathlib/Analysis/SpecialFunctions/JapaneseBracket.lean +/- theorem finite_integral_one_add_norm +/- theorem integrable_one_add_norm +/- theorem integrable_rpow_neg_one_add_norm_sq 2024-02-12 10:30:27 8a5da17 feat(GroupTheory/GroupAction): new `FixedPoints` module with a few basic properties of `fixedBy` (#9477) Introduces a new module, `Mathlib.GroupTheory.GroupAction.FixedPoints`, which contains some properties of `MulAction.fixedBy` that wouldn't quite belong to `Mathlib.GroupTheory.GroupAction.Basic`. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Data/Set/Pointwise/SMul.lean + theorem Set.smul_set_compl Added Mathlib/GroupTheory/GroupAction/FixedPoints.lean + theorem MulAction.fixedBy_eq_univ_iff_eq_one + theorem MulAction.fixedBy_inv + theorem MulAction.fixedBy_mem_fixedBy_of_commute + theorem MulAction.fixedBy_mul + theorem MulAction.fixedBy_one_eq_univ + theorem MulAction.fixedBy_subset_fixedBy_zpow + theorem MulAction.minimalPeriod_eq_one_iff_fixedBy + theorem MulAction.movedBy_mem_fixedBy_of_commute + theorem MulAction.not_commute_of_disjoint_movedBy_preimage + theorem MulAction.set_mem_fixedBy_iff + theorem MulAction.set_mem_fixedBy_of_movedBy_subset + theorem MulAction.set_mem_fixedBy_of_subset_fixedBy + theorem MulAction.smul_fixedBy + theorem MulAction.smul_inv_mem_fixedBy_iff_mem_fixedBy + theorem MulAction.smul_mem_fixedBy_iff_mem_fixedBy + theorem MulAction.smul_mem_of_set_mem_fixedBy + theorem MulAction.smul_subset_of_set_mem_fixedBy + theorem MulAction.smul_zpow_fixedBy_eq_of_commute + theorem MulAction.smul_zpow_movedBy_eq_of_commute Modified Mathlib/GroupTheory/GroupAction/FixingSubgroup.lean + theorem mem_fixingSubgroup_compl_iff_movedBy_subset + theorem mem_fixingSubgroup_iff_subset_fixedBy + theorem orbit_fixingSubgroup_compl_subset 2024-02-12 10:30:26 35a3866 chore(Util/SynthesizeUsing): Qq-ify (#9437) Most of the callers were already passing `q()` arguments anyway. ESTIMATED CHANGES Modified Mathlib/Tactic/Linarith/Datatypes.lean Modified Mathlib/Util/SynthesizeUsing.lean +/- def synthesizeUsing' +/- def synthesizeUsing +/- def synthesizeUsingTactic' +/- def synthesizeUsingTactic 2024-02-12 10:30:25 4841d69 fix(Data/Set/Image): simp confluence issues with `image_subset_iff` (#8683) `image_subset_iff` is a questionable simp lemma because it converts an application of `Set.image` into an application of `Set.preimage` unconditionally. This means that if any simp lemma applies to images, there must be a corresponding lemma for preimages. These lemmas are what I found missing after loogling. I also added machine-checked examples of each confluence issue to a new file `tests/simp_confluence`. ESTIMATED CHANGES Modified Mathlib/Data/Fintype/Basic.lean + theorem Finset.univ_subset_iff Modified Mathlib/Data/Set/Basic.lean Modified Mathlib/Data/Set/Image.lean + theorem Set.Nonempty.subset_preimage_const + theorem Set.preimage_eq_univ_iff + theorem Set.subset_range_of_surjective Modified Mathlib/Logic/Equiv/Set.lean Added test/simp_confluence.lean 2024-02-12 09:20:09 cd4edcb chore(Tactic/GCongr): move `@[gcongr]` tags around (#9393) * Add `import Mathlib.Tactic.GCongr.Core` to `Algebra/Order/Ring/Lemmas`. * Move most `@[gcongr]` tags next to the lemmas. See [Zulip thread](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/Mathlib.2FTactic.2FGCongr) ESTIMATED CHANGES Modified Archive/Imo/Imo2008Q2.lean Modified Mathlib/Algebra/GroupPower/CovariantClass.lean Modified Mathlib/Algebra/GroupPower/Order.lean +/- theorem zpow_le_zpow Modified Mathlib/Algebra/Order/Field/Basic.lean Modified Mathlib/Algebra/Order/Field/Power.lean Modified Mathlib/Algebra/Order/Group/Defs.lean Modified Mathlib/Algebra/Order/Monoid/Lemmas.lean Modified Mathlib/Algebra/Order/Ring/Defs.lean Modified Mathlib/Algebra/Order/Ring/Lemmas.lean Modified Mathlib/Combinatorics/Catalan.lean Modified Mathlib/Combinatorics/SimpleGraph/Density.lean Modified Mathlib/Combinatorics/SimpleGraph/Triangle/Basic.lean Modified Mathlib/Data/Complex/Basic.lean Modified Mathlib/Data/Nat/Cast/Order.lean + theorem GCongr.natCast_le_natCast + theorem Nat.cast_le_cast Modified Mathlib/Data/Nat/Defs.lean Modified Mathlib/Data/Real/CauSeq.lean Modified Mathlib/NumberTheory/LegendreSymbol/GaussEisensteinLemmas.lean Modified Mathlib/Order/Lattice.lean + def exactSubsetOfSSubset Modified Mathlib/Tactic/GCongr.lean - theorem Nat.cast_le_cast - def exactSubsetOfSSubset - theorem zpow_lt_of_lt Modified scripts/noshake.json Modified test/GCongr/inequalities.lean 2024-02-12 08:25:01 9ff7dbc chore(CategoryTheory/Sites): `Fintype` → `Finite` (#10440) Also rename `Presieve.extensive` to `Presieve.Extensive` to follow the naming convention. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Sites/Coherent/Basic.lean Modified Mathlib/CategoryTheory/Sites/Coherent/CoherentSheaves.lean Modified Mathlib/CategoryTheory/Sites/Coherent/CoherentTopology.lean +/- theorem CategoryTheory.EffectiveEpiFamily.transitive_of_finite Modified Mathlib/CategoryTheory/Sites/Coherent/ExtensiveSheaves.lean +/- theorem CategoryTheory.isSheafFor_extensive_of_preservesFiniteProducts Modified Mathlib/CategoryTheory/Sites/EffectiveEpimorphic.lean Modified Mathlib/Condensed/Equivalence.lean 2024-02-12 08:25:00 bc539a7 feat: Complete `NNReal` coercion lemmas (#10214) Add a few missing lemmas about the coercion `NNReal → Real`. Remove a bunch of `protected` on the existing coercion lemmas (so that it matches the convention for other coercions). Rename `NNReal.coe_eq` to `NNReal.coe_inj` From LeanAPAP ESTIMATED CHANGES Modified Mathlib/Analysis/Analytic/Constructions.lean Modified Mathlib/Analysis/MeanInequalities.lean Modified Mathlib/Analysis/NormedSpace/OperatorNorm.lean Modified Mathlib/Analysis/SpecialFunctions/Pow/Continuity.lean Modified Mathlib/Analysis/SpecialFunctions/Pow/NNReal.lean Modified Mathlib/Data/ENNReal/Basic.lean Modified Mathlib/Data/ENNReal/Real.lean Modified Mathlib/Data/Real/NNReal.lean + theorem NNReal.coe_eq_one + theorem NNReal.coe_eq_zero + theorem NNReal.coe_inj + theorem NNReal.coe_le_coe + theorem NNReal.coe_le_one + theorem NNReal.coe_lt_coe + theorem NNReal.coe_lt_one + theorem NNReal.coe_mono + theorem NNReal.coe_ne_one +/- theorem NNReal.coe_ne_zero + theorem NNReal.coe_one + theorem NNReal.coe_pos + theorem NNReal.coe_zero + theorem NNReal.one_le_coe + theorem NNReal.one_lt_coe - theorem NNReal.toReal_le_toReal Modified Mathlib/Data/Real/Sqrt.lean Modified Mathlib/MeasureTheory/Function/LpSpace.lean Modified Mathlib/MeasureTheory/Integral/Lebesgue.lean Modified Mathlib/MeasureTheory/Integral/LebesgueNormedSpace.lean Modified Mathlib/MeasureTheory/Measure/Haar/Basic.lean Modified Mathlib/MeasureTheory/Measure/HasOuterApproxClosed.lean Modified Mathlib/MeasureTheory/Measure/VectorMeasure.lean Modified Mathlib/MeasureTheory/Measure/WithDensity.lean Modified Mathlib/Probability/Distributions/Gaussian.lean Modified Mathlib/Topology/MetricSpace/Isometry.lean Modified Mathlib/Topology/MetricSpace/PseudoMetric.lean +/- theorem nndist_self Modified Mathlib/Topology/Metrizable/Uniformity.lean 2024-02-12 07:17:49 a13a6b8 chore: bump dependencies (#10446) ESTIMATED CHANGES Modified Mathlib/Algebra/Group/UniqueProds.lean Modified Mathlib/Data/Int/Bitwise.lean + theorem Int.testBit_bit_succ + theorem Int.testBit_bit_zero - theorem Int.testBit_succ - theorem Int.testBit_zero Modified Mathlib/Data/List/Basic.lean - theorem List.append_concat - theorem List.concat_append - theorem List.concat_cons - theorem List.concat_ne_nil - theorem List.concat_nil - theorem List.cons_eq_cons - theorem List.init_eq_of_concat_eq - theorem List.last_eq_of_concat_eq Modified Mathlib/Data/Nat/Bitwise.lean Modified Mathlib/Data/Nat/Pow.lean - theorem Nat.two_pow_pos Modified Mathlib/Data/Num/Lemmas.lean Modified Mathlib/Init/Data/Nat/Bitwise.lean + theorem Nat.testBit_bit_succ + theorem Nat.testBit_bit_zero - theorem Nat.testBit_succ - theorem Nat.testBit_zero Modified Mathlib/Init/Logic.lean Modified Mathlib/Logic/Basic.lean +/- theorem not_and_or +/- theorem not_imp Modified Mathlib/Order/Chain.lean Modified Mathlib/Order/Filter/Basic.lean Modified Mathlib/Tactic/Tauto.lean Modified Mathlib/Topology/NoetherianSpace.lean Modified lake-manifest.json 2024-02-12 07:17:48 3eba30e feat: add lemmas to simplify List.modifyNth (#10318) Adds three lemmas, I don't think any of them are in the library anywhere already. ESTIMATED CHANGES Modified Mathlib/Data/List/Basic.lean + theorem List.modifyNth_nil + theorem List.modifyNth_succ_cons + theorem List.modifyNth_zero_cons 2024-02-12 07:17:47 105a8c5 chore: clean up uses of `Pi.smul_apply` (#9970) After #9949, `Pi.smul_apply` can be used in `simp` again. This PR cleans up some workarounds. ESTIMATED CHANGES Modified Mathlib/GroupTheory/GroupAction/Pi.lean Modified Mathlib/LinearAlgebra/FiniteDimensional.lean Modified Mathlib/LinearAlgebra/LinearIndependent.lean Modified Mathlib/MeasureTheory/Function/ConditionalExpectation/AEMeasurable.lean Modified Mathlib/MeasureTheory/Function/ConditionalExpectation/Basic.lean Modified Mathlib/MeasureTheory/Function/ConditionalExpectation/CondexpL1.lean Modified Mathlib/MeasureTheory/Integral/SetIntegral.lean Modified Mathlib/Probability/Martingale/Basic.lean Modified Mathlib/Topology/ContinuousFunction/Algebra.lean 2024-02-12 06:18:56 fa3313a chore: Split off `WithTop` lemmas (#10239) from `Algebra.BigOperators.Order` . Add the corresponding `WithBot` lemmas. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/BigOperators/Order.lean - theorem WithTop.prod_lt_top - theorem WithTop.sum_eq_top_iff - theorem WithTop.sum_lt_top - theorem WithTop.sum_lt_top_iff Added Mathlib/Algebra/BigOperators/WithTop.lean + theorem WithBot.bot_lt_sum_iff + theorem WithBot.coe_sum + theorem WithBot.prod_lt_bot + theorem WithBot.sum_eq_bot_iff + theorem WithBot.sum_lt_bot + theorem WithTop.coe_sum + theorem WithTop.prod_lt_top + theorem WithTop.sum_eq_top_iff + theorem WithTop.sum_lt_top + theorem WithTop.sum_lt_top_iff Modified Mathlib/Data/ENNReal/Basic.lean Modified Mathlib/Data/ENNReal/Operations.lean Modified Mathlib/Data/Real/NNReal.lean 2024-02-12 04:37:31 baf06fe chore: add `fun_prop` attribute to various continuity lemmas (#10369) ESTIMATED CHANGES Modified Mathlib/Tactic/FunProp/Continuous.lean Modified scripts/noshake.json 2024-02-12 00:36:37 66ad571 feat: A natural is odd iff it's coprime with 2 (#10222) From LeanAPAP ESTIMATED CHANGES Modified Mathlib/Data/Nat/Parity.lean Modified Mathlib/Data/Nat/Prime.lean + theorem Nat.coprime_two_left + theorem Nat.coprime_two_right 2024-02-11 21:58:26 80bf34f feat: `(s ∩ t).card = s.card + t.card - (s ∪ t).card` (#10224) once coerced to an `AddGroupWithOne`. Also unify `Finset.card_disjoint_union` and `Finset.card_union_eq` From LeanAPAP ESTIMATED CHANGES Modified Mathlib/Combinatorics/SetFamily/CauchyDavenport.lean Modified Mathlib/Combinatorics/SetFamily/Compression/Down.lean Modified Mathlib/Combinatorics/SetFamily/Compression/UV.lean Modified Mathlib/Combinatorics/SetFamily/LYM.lean Modified Mathlib/Combinatorics/SetFamily/Shatter.lean Modified Mathlib/Combinatorics/SimpleGraph/Density.lean Modified Mathlib/Combinatorics/SimpleGraph/Finite.lean Modified Mathlib/Combinatorics/SimpleGraph/Operations.lean Modified Mathlib/Combinatorics/SimpleGraph/Regularity/Equitabilise.lean Modified Mathlib/Data/Finset/Card.lean - theorem Finset.card_disjoint_union + theorem Finset.card_inter + theorem Finset.card_union - theorem Finset.card_union_eq + theorem Finset.card_union_of_disjoint + theorem Finset.cast_card_inter + theorem Finset.cast_card_union Modified Mathlib/Data/Finset/NAry.lean Modified Mathlib/Data/Finset/Prod.lean Modified Mathlib/Data/Nat/Count.lean Modified Mathlib/Data/Nat/Multiplicity.lean Modified Mathlib/FieldTheory/Finite/Basic.lean Modified Mathlib/FieldTheory/PolynomialGaloisGroup.lean Modified Mathlib/Geometry/Euclidean/Circumcenter.lean Modified Mathlib/GroupTheory/Perm/Support.lean Modified Mathlib/MeasureTheory/Measure/Haar/Basic.lean Modified Mathlib/NumberTheory/LegendreSymbol/GaussEisensteinLemmas.lean Modified Mathlib/NumberTheory/SmoothNumbers.lean Modified Mathlib/RingTheory/Prime.lean 2024-02-11 21:19:50 c79c211 doc: fix typo (#10435) Fixed minor typo. ESTIMATED CHANGES Modified Archive/Examples/IfNormalization/Statement.lean 2024-02-11 19:22:27 d18f1d0 chore(Order/*): move `SupSet`, `Set.sUnion` etc to a new file (#10232) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Module/Torsion.lean Modified Mathlib/Algebra/Order/Floor.lean Modified Mathlib/Algebra/Order/ToIntervalMod.lean Modified Mathlib/Data/ENNReal/Basic.lean Modified Mathlib/Data/Set/Intervals/OrdConnected.lean Modified Mathlib/Data/Set/Intervals/OrdConnectedComponent.lean Modified Mathlib/Data/Set/Lattice.lean - theorem Set.iInf_eq_iInter - def Set.iInter - theorem Set.iSup_eq_iUnion - def Set.iUnion - def Set.iUnion_delab - theorem Set.mem_iInter - theorem Set.mem_iUnion - theorem Set.mem_sInter - theorem Set.mem_sUnion - theorem Set.sInf_eq_sInter - def Set.sInter - def Set.sInter_delab - theorem Set.sSup_eq_sUnion - def Set.sUnion Modified Mathlib/GroupTheory/Archimedean.lean Modified Mathlib/GroupTheory/Sylow.lean Modified Mathlib/Order/Atoms.lean Modified Mathlib/Order/CompleteLattice.lean - def iInf - def iInf_delab - def iSup - def iSup_delab Modified Mathlib/Order/ModularLattice.lean Added Mathlib/Order/SetNotation.lean + theorem Set.iInf_eq_iInter + def Set.iInter + theorem Set.iSup_eq_iUnion + def Set.iUnion + def Set.iUnion_delab + theorem Set.mem_iInter + theorem Set.mem_iUnion + theorem Set.mem_sInter + theorem Set.mem_sUnion + theorem Set.sInf_eq_sInter + def Set.sInter + def Set.sInter_delab + theorem Set.sSup_eq_sUnion + def Set.sUnion + def iInf + def iInf_delab + def iSup + def iSup_delab Modified Mathlib/Order/SuccPred/IntervalSucc.lean Modified Mathlib/Order/UpperLower/Basic.lean Modified Mathlib/Topology/Algebra/Module/CharacterSpace.lean Modified Mathlib/Topology/Algebra/Order/LiminfLimsup.lean Modified Mathlib/Topology/Defs/Basic.lean Modified Mathlib/Topology/Defs/Filter.lean 2024-02-11 18:26:20 78e6ce7 chore(*): use notation for nhds (#10416) Also fix `GeneralizedContinuedFraction.of_convergence`: it worked for the `Preorder.topology` only. ESTIMATED CHANGES Modified Mathlib/Algebra/ContinuedFractions/Computation/ApproximationCorollaries.lean +/- theorem GeneralizedContinuedFraction.of_convergence Modified Mathlib/Analysis/Convex/Body.lean Modified Mathlib/Analysis/InnerProductSpace/Projection.lean Modified Mathlib/Analysis/LocallyConvex/WithSeminorms.lean Modified Mathlib/Analysis/SpecialFunctions/Pow/Asymptotics.lean Modified Mathlib/Analysis/SpecialFunctions/Pow/Deriv.lean Modified Mathlib/Analysis/SpecificLimits/Basic.lean Modified Mathlib/Analysis/SpecificLimits/IsROrC.lean Modified Mathlib/Analysis/SpecificLimits/Normed.lean Modified Mathlib/Geometry/Manifold/IntegralCurve.lean Modified Mathlib/Geometry/Manifold/InteriorBoundary.lean Modified Mathlib/MeasureTheory/Function/AEEqOfIntegral.lean Modified Mathlib/MeasureTheory/Function/LpSpace.lean Modified Mathlib/NumberTheory/SumPrimeReciprocals.lean Modified Mathlib/Topology/Algebra/Nonarchimedean/Basic.lean +/- theorem NonarchimedeanGroup.prod_self_subset +/- theorem NonarchimedeanGroup.prod_subset Modified Mathlib/Topology/Category/Stonean/Basic.lean Modified Mathlib/Topology/Compactness/Lindelof.lean Modified Mathlib/Topology/ContinuousFunction/Basic.lean Modified Mathlib/Topology/ContinuousOn.lean Modified Mathlib/Topology/Instances/TrivSqZeroExt.lean +/- theorem TrivSqZeroExt.nhds_def +/- theorem TrivSqZeroExt.nhds_inl +/- theorem TrivSqZeroExt.nhds_inr Modified Mathlib/Topology/MetricSpace/PseudoMetric.lean 2024-02-11 14:32:22 76c1f6e chore(CategoryTheory/Limits/Concrete): generalize universe assumptions (#10418) Generalizes universe assumptions for various statements on colimits in concrete categories. Also simplifies some proofs. ESTIMATED CHANGES Modified Mathlib/Algebra/Category/GroupCat/Abelian.lean Modified Mathlib/CategoryTheory/Limits/ConcreteCategory.lean +/- theorem CategoryTheory.Limits.Concrete.isColimit_rep_eq_of_exists Modified Mathlib/CategoryTheory/Sites/ConcreteSheafification.lean 2024-02-11 14:32:22 b08d71d chore(CategoryTheory/Sites): golf some proofs in the coherent topology file (#9979) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Sites/Coherent/CoherentTopology.lean +/- theorem CategoryTheory.coherentTopology.mem_sieves_of_hasEffectiveEpiFamily 2024-02-11 13:33:04 750e6f2 feat(LocallyConvex/Bounded): add `IsVonNBounded.add` etc (#10135) * add `IsVonNBounded.add`, `IsVonNBounded.vadd`, and `isVonNBounded_vadd`; * generalize some lemmas in `Topology/Algebra/Monoid` from `Monoid` to `MulOneClass`, move them to a new section. ESTIMATED CHANGES Modified Mathlib/Analysis/LocallyConvex/Bounded.lean + theorem Bornology.IsVonNBounded.of_add_left + theorem Bornology.IsVonNBounded.of_add_right + theorem Bornology.IsVonNBounded.of_sub_left + theorem Bornology.IsVonNBounded.of_sub_right + theorem Bornology.isVonNBounded_add + theorem Bornology.isVonNBounded_add_of_nonempty + theorem Bornology.isVonNBounded_add_self + theorem Bornology.isVonNBounded_neg + theorem Bornology.isVonNBounded_sub + theorem Bornology.isVonNBounded_sub_of_nonempty + theorem Bornology.isVonNBounded_vadd Modified Mathlib/Data/Finset/Pointwise.lean + theorem Finset.inv_eq_empty Modified Mathlib/Data/Set/Pointwise/Basic.lean + theorem Set.inv_eq_empty Modified Mathlib/Topology/Algebra/Monoid.lean 2024-02-11 09:45:11 a7e85cc feat(CategoryTheory): the typeclass Functor.HasRightKanExtension (#10384) This PR introduces the typeclass `HasRightKanExtension L F` which asserts the existence of a right Kan extension of a functor `F` along `L`. A chosen extension is obtained as `rightKanExtension L F`. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Equivalence.lean Modified Mathlib/CategoryTheory/Functor/KanExtension/Basic.lean + theorem CategoryTheory.Functor.HasLeftKanExtension.mk + theorem CategoryTheory.Functor.HasRightKanExtension.mk + theorem CategoryTheory.Functor.hasLeftExtension_iff_of_iso₁ + theorem CategoryTheory.Functor.hasLeftExtension_iff_of_iso₂ + theorem CategoryTheory.Functor.hasLeftExtension_iff_postcomp₁ + theorem CategoryTheory.Functor.hasRightExtension_iff_of_iso₁ + theorem CategoryTheory.Functor.hasRightExtension_iff_of_iso₂ + theorem CategoryTheory.Functor.hasRightExtension_iff_postcomp₁ + def CategoryTheory.Functor.leftExtensionEquivalenceOfIso₁ + def CategoryTheory.Functor.leftExtensionEquivalenceOfIso₂ + theorem CategoryTheory.Functor.leftKanExtension_hom_ext + def CategoryTheory.Functor.rightExtensionEquivalenceOfIso₁ + def CategoryTheory.Functor.rightExtensionEquivalenceOfIso₂ + theorem CategoryTheory.Functor.rightKanExtension_hom_ext 2024-02-11 05:41:36 841bef7 feat: add Prime.not_dvd_finset_prod and Prime.not_dvd_finsupp_prod (#10047) We already have `Prime.not_dvd_prod`, which is about list products: https://github.com/leanprover-community/mathlib4/blob/1fec3c4a56a0a991f7324bb7b1f89ab6a6795d19/Mathlib/Data/List/Prime.lean#L41-L43 This PR adds analogous theorems for `Finset` and `Finsupp`. ESTIMATED CHANGES Modified Mathlib/Algebra/BigOperators/Associated.lean + theorem Prime.not_dvd_finset_prod + theorem Prime.not_dvd_finsupp_prod 2024-02-11 05:12:32 877599c feat: show that the Riemann integral is equal to the Bochner integral for continuous functions (#10144) ESTIMATED CHANGES Modified Mathlib/Analysis/BoxIntegral/Integrability.lean + theorem MeasureTheory.ContinuousOn.hasBoxIntegral 2024-02-11 03:49:18 7d2b303 chore: remove Fintype.card_fin_even (#10273) This instance was meant to apply to even literal numbers. Because Lean 4 no longer uses bit0/bit1 for literals, it no longer serves that purpose. Instead, a specific instance for Fin 2 is added. ESTIMATED CHANGES Modified Mathlib/Analysis/Complex/UpperHalfPlane/Basic.lean Modified Mathlib/Data/Fintype/Parity.lean - theorem Fintype.card_fin_even Modified Mathlib/LinearAlgebra/Matrix/SpecialLinearGroup.lean Modified Mathlib/NumberTheory/Modular.lean 2024-02-11 00:59:07 87dac0a doc: fix typo (#10409) Fix minor typo. ESTIMATED CHANGES Modified Mathlib/SetTheory/Game/Impartial.lean 2024-02-11 00:33:18 32cce69 fix(Profinite/Nobeling): remove duplicated proof (#10410) ESTIMATED CHANGES Modified Mathlib/Topology/Category/Profinite/Nobeling.lean - theorem Profinite.NobelingProof.Products.eval_mem_span_goodProducts 2024-02-10 22:15:37 25c2e96 fix(Testing/SlimCheck/Testable): do not call `inferType` on an expression with `bvar`s (#9722) Fixes a bug reported twice on Zulip: * https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/slim_check.20question/near/412709012 * https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/slim_check.20giving.20wrong.20counterexamples.3F/near/420008365 Both test-cases are included ESTIMATED CHANGES Modified Mathlib/Testing/SlimCheck/Testable.lean Modified test/slim_check.lean + theorem testBit_pred 2024-02-10 13:10:19 a6a17da chore(NumberTheory/ArithmeticFunction): remove `Nat.` part from `ArithmeticFunction` namespace (#10399) This changes `Nat.ArithmeticFunction` to `ArithmeticFunction` since the `Nat` part seems redundant. See [here](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/Nat.2EArithmeticFunction.20--.3E.20ArithmeticFunction/near/420713063) on Zulip. ESTIMATED CHANGES Modified Archive/Wiedijk100Theorems/PerfectNumbers.lean Modified Mathlib/NumberTheory/ArithmeticFunction.lean + theorem ArithmeticFunction.IsMultiplicative.eq_iff_eq_on_prime_powers + theorem ArithmeticFunction.IsMultiplicative.iff_ne_zero + theorem ArithmeticFunction.IsMultiplicative.int_cast + theorem ArithmeticFunction.IsMultiplicative.lcm_apply_mul_gcd_apply + theorem ArithmeticFunction.IsMultiplicative.map_mul_of_coprime + theorem ArithmeticFunction.IsMultiplicative.map_one + theorem ArithmeticFunction.IsMultiplicative.map_prod + theorem ArithmeticFunction.IsMultiplicative.map_prod_of_prime + theorem ArithmeticFunction.IsMultiplicative.map_prod_of_subset_primeFactors + theorem ArithmeticFunction.IsMultiplicative.mul + theorem ArithmeticFunction.IsMultiplicative.multiplicative_factorization + theorem ArithmeticFunction.IsMultiplicative.nat_cast + theorem ArithmeticFunction.IsMultiplicative.pdiv + theorem ArithmeticFunction.IsMultiplicative.pmul + theorem ArithmeticFunction.IsMultiplicative.ppow + theorem ArithmeticFunction.IsMultiplicative.prodPrimeFactors + theorem ArithmeticFunction.IsMultiplicative.prodPrimeFactors_add_of_squarefree + theorem ArithmeticFunction.IsMultiplicative.prodPrimeFactors_one_add_of_squarefree + theorem ArithmeticFunction.IsMultiplicative.prodPrimeFactors_one_sub_of_squarefree + def ArithmeticFunction.IsMultiplicative + theorem ArithmeticFunction.add_apply + def ArithmeticFunction.cardDistinctFactors + theorem ArithmeticFunction.cardDistinctFactors_apply + theorem ArithmeticFunction.cardDistinctFactors_apply_prime + theorem ArithmeticFunction.cardDistinctFactors_apply_prime_pow + theorem ArithmeticFunction.cardDistinctFactors_eq_cardFactors_iff_squarefree + theorem ArithmeticFunction.cardDistinctFactors_one + theorem ArithmeticFunction.cardDistinctFactors_zero + def ArithmeticFunction.cardFactors + theorem ArithmeticFunction.cardFactors_apply + theorem ArithmeticFunction.cardFactors_apply_prime + theorem ArithmeticFunction.cardFactors_apply_prime_pow + theorem ArithmeticFunction.cardFactors_eq_one_iff_prime + theorem ArithmeticFunction.cardFactors_mul + theorem ArithmeticFunction.cardFactors_multiset_prod + theorem ArithmeticFunction.cardFactors_one + theorem ArithmeticFunction.cardFactors_zero + theorem ArithmeticFunction.coe_coe + theorem ArithmeticFunction.coe_inj + theorem ArithmeticFunction.coe_mk + theorem ArithmeticFunction.coe_moebius_mul_coe_zeta + theorem ArithmeticFunction.coe_mul_zeta_apply + theorem ArithmeticFunction.coe_zetaUnit + theorem ArithmeticFunction.coe_zeta_mul_apply + theorem ArithmeticFunction.coe_zeta_mul_coe_moebius + theorem ArithmeticFunction.coe_zeta_mul_moebius + theorem ArithmeticFunction.coe_zeta_smul_apply + theorem ArithmeticFunction.ext + theorem ArithmeticFunction.ext_iff + def ArithmeticFunction.id + theorem ArithmeticFunction.id_apply + theorem ArithmeticFunction.intCoe_apply + theorem ArithmeticFunction.intCoe_int + theorem ArithmeticFunction.intCoe_mul + theorem ArithmeticFunction.intCoe_one + theorem ArithmeticFunction.inv_zetaUnit + theorem ArithmeticFunction.isMultiplicative_id + theorem ArithmeticFunction.isMultiplicative_moebius + theorem ArithmeticFunction.isMultiplicative_one + theorem ArithmeticFunction.isMultiplicative_pow + theorem ArithmeticFunction.isMultiplicative_sigma + theorem ArithmeticFunction.isMultiplicative_zeta + theorem ArithmeticFunction.map_zero + def ArithmeticFunction.moebius + theorem ArithmeticFunction.moebius_apply_isPrimePow_not_prime + theorem ArithmeticFunction.moebius_apply_of_squarefree + theorem ArithmeticFunction.moebius_apply_one + theorem ArithmeticFunction.moebius_apply_prime + theorem ArithmeticFunction.moebius_apply_prime_pow + theorem ArithmeticFunction.moebius_eq_zero_of_not_squarefree + theorem ArithmeticFunction.moebius_mul_coe_zeta + theorem ArithmeticFunction.moebius_ne_zero_iff_eq_or + theorem ArithmeticFunction.moebius_ne_zero_iff_squarefree + theorem ArithmeticFunction.mul_apply + theorem ArithmeticFunction.mul_apply_one + theorem ArithmeticFunction.mul_smul' + theorem ArithmeticFunction.mul_zeta_apply + theorem ArithmeticFunction.natCoe_apply + theorem ArithmeticFunction.natCoe_mul + theorem ArithmeticFunction.natCoe_nat + theorem ArithmeticFunction.natCoe_one + def ArithmeticFunction.natToArithmeticFunction + def ArithmeticFunction.ofInt + theorem ArithmeticFunction.one_apply + theorem ArithmeticFunction.one_apply_ne + theorem ArithmeticFunction.one_one + theorem ArithmeticFunction.one_smul' + def ArithmeticFunction.pdiv + theorem ArithmeticFunction.pdiv_apply + theorem ArithmeticFunction.pdiv_zeta + def ArithmeticFunction.pmul + theorem ArithmeticFunction.pmul_apply + theorem ArithmeticFunction.pmul_comm + theorem ArithmeticFunction.pmul_zeta + def ArithmeticFunction.pow + theorem ArithmeticFunction.pow_apply + theorem ArithmeticFunction.pow_zero_eq_zeta + def ArithmeticFunction.ppow + theorem ArithmeticFunction.ppow_apply + theorem ArithmeticFunction.ppow_succ' + theorem ArithmeticFunction.ppow_succ + theorem ArithmeticFunction.ppow_zero + def ArithmeticFunction.prodPrimeFactors + theorem ArithmeticFunction.prodPrimeFactors_apply + theorem ArithmeticFunction.prod_eq_iff_prod_pow_moebius_eq + theorem ArithmeticFunction.prod_eq_iff_prod_pow_moebius_eq_of_nonzero + theorem ArithmeticFunction.prod_eq_iff_prod_pow_moebius_eq_on + theorem ArithmeticFunction.prod_eq_iff_prod_pow_moebius_eq_on_of_nonzero + def ArithmeticFunction.sigma + theorem ArithmeticFunction.sigma_apply + theorem ArithmeticFunction.sigma_one_apply + theorem ArithmeticFunction.sigma_zero_apply + theorem ArithmeticFunction.sigma_zero_apply_prime_pow + theorem ArithmeticFunction.smul_apply + theorem ArithmeticFunction.sum_eq_iff_sum_mul_moebius_eq + theorem ArithmeticFunction.sum_eq_iff_sum_mul_moebius_eq_on + theorem ArithmeticFunction.sum_eq_iff_sum_smul_moebius_eq + theorem ArithmeticFunction.sum_eq_iff_sum_smul_moebius_eq_on' + theorem ArithmeticFunction.sum_eq_iff_sum_smul_moebius_eq_on + theorem ArithmeticFunction.toFun_eq + theorem ArithmeticFunction.zero_apply + def ArithmeticFunction.zeta + def ArithmeticFunction.zetaUnit + theorem ArithmeticFunction.zeta_apply + theorem ArithmeticFunction.zeta_apply_ne + theorem ArithmeticFunction.zeta_mul_apply + theorem ArithmeticFunction.zeta_mul_pow_eq_sigma + theorem ArithmeticFunction.zeta_pmul + def ArithmeticFunction - theorem Nat.ArithmeticFunction.IsMultiplicative.eq_iff_eq_on_prime_powers - theorem Nat.ArithmeticFunction.IsMultiplicative.iff_ne_zero - theorem Nat.ArithmeticFunction.IsMultiplicative.int_cast - theorem Nat.ArithmeticFunction.IsMultiplicative.lcm_apply_mul_gcd_apply - theorem Nat.ArithmeticFunction.IsMultiplicative.map_mul_of_coprime - theorem Nat.ArithmeticFunction.IsMultiplicative.map_one - theorem Nat.ArithmeticFunction.IsMultiplicative.map_prod - theorem Nat.ArithmeticFunction.IsMultiplicative.map_prod_of_prime - theorem Nat.ArithmeticFunction.IsMultiplicative.map_prod_of_subset_primeFactors - theorem Nat.ArithmeticFunction.IsMultiplicative.mul - theorem Nat.ArithmeticFunction.IsMultiplicative.multiplicative_factorization - theorem Nat.ArithmeticFunction.IsMultiplicative.nat_cast - theorem Nat.ArithmeticFunction.IsMultiplicative.pdiv - theorem Nat.ArithmeticFunction.IsMultiplicative.pmul - theorem Nat.ArithmeticFunction.IsMultiplicative.ppow - theorem Nat.ArithmeticFunction.IsMultiplicative.prodPrimeFactors - theorem Nat.ArithmeticFunction.IsMultiplicative.prodPrimeFactors_add_of_squarefree - theorem Nat.ArithmeticFunction.IsMultiplicative.prodPrimeFactors_one_add_of_squarefree - theorem Nat.ArithmeticFunction.IsMultiplicative.prodPrimeFactors_one_sub_of_squarefree - def Nat.ArithmeticFunction.IsMultiplicative - theorem Nat.ArithmeticFunction.add_apply - def Nat.ArithmeticFunction.cardDistinctFactors - theorem Nat.ArithmeticFunction.cardDistinctFactors_apply - theorem Nat.ArithmeticFunction.cardDistinctFactors_apply_prime - theorem Nat.ArithmeticFunction.cardDistinctFactors_apply_prime_pow - theorem Nat.ArithmeticFunction.cardDistinctFactors_eq_cardFactors_iff_squarefree - theorem Nat.ArithmeticFunction.cardDistinctFactors_one - theorem Nat.ArithmeticFunction.cardDistinctFactors_zero - def Nat.ArithmeticFunction.cardFactors - theorem Nat.ArithmeticFunction.cardFactors_apply - theorem Nat.ArithmeticFunction.cardFactors_apply_prime - theorem Nat.ArithmeticFunction.cardFactors_apply_prime_pow - theorem Nat.ArithmeticFunction.cardFactors_eq_one_iff_prime - theorem Nat.ArithmeticFunction.cardFactors_mul - theorem Nat.ArithmeticFunction.cardFactors_multiset_prod - theorem Nat.ArithmeticFunction.cardFactors_one - theorem Nat.ArithmeticFunction.cardFactors_zero - theorem Nat.ArithmeticFunction.coe_coe - theorem Nat.ArithmeticFunction.coe_inj - theorem Nat.ArithmeticFunction.coe_mk - theorem Nat.ArithmeticFunction.coe_moebius_mul_coe_zeta - theorem Nat.ArithmeticFunction.coe_mul_zeta_apply - theorem Nat.ArithmeticFunction.coe_zetaUnit - theorem Nat.ArithmeticFunction.coe_zeta_mul_apply - theorem Nat.ArithmeticFunction.coe_zeta_mul_coe_moebius - theorem Nat.ArithmeticFunction.coe_zeta_mul_moebius - theorem Nat.ArithmeticFunction.coe_zeta_smul_apply - theorem Nat.ArithmeticFunction.ext - theorem Nat.ArithmeticFunction.ext_iff - def Nat.ArithmeticFunction.id - theorem Nat.ArithmeticFunction.id_apply - theorem Nat.ArithmeticFunction.intCoe_apply - theorem Nat.ArithmeticFunction.intCoe_int - theorem Nat.ArithmeticFunction.intCoe_mul - theorem Nat.ArithmeticFunction.intCoe_one - theorem Nat.ArithmeticFunction.inv_zetaUnit - theorem Nat.ArithmeticFunction.isMultiplicative_id - theorem Nat.ArithmeticFunction.isMultiplicative_moebius - theorem Nat.ArithmeticFunction.isMultiplicative_one - theorem Nat.ArithmeticFunction.isMultiplicative_pow - theorem Nat.ArithmeticFunction.isMultiplicative_sigma - theorem Nat.ArithmeticFunction.isMultiplicative_zeta - theorem Nat.ArithmeticFunction.map_zero - def Nat.ArithmeticFunction.moebius - theorem Nat.ArithmeticFunction.moebius_apply_isPrimePow_not_prime - theorem Nat.ArithmeticFunction.moebius_apply_of_squarefree - theorem Nat.ArithmeticFunction.moebius_apply_one - theorem Nat.ArithmeticFunction.moebius_apply_prime - theorem Nat.ArithmeticFunction.moebius_apply_prime_pow - theorem Nat.ArithmeticFunction.moebius_eq_zero_of_not_squarefree - theorem Nat.ArithmeticFunction.moebius_mul_coe_zeta - theorem Nat.ArithmeticFunction.moebius_ne_zero_iff_eq_or - theorem Nat.ArithmeticFunction.moebius_ne_zero_iff_squarefree - theorem Nat.ArithmeticFunction.mul_apply - theorem Nat.ArithmeticFunction.mul_apply_one - theorem Nat.ArithmeticFunction.mul_smul' - theorem Nat.ArithmeticFunction.mul_zeta_apply - theorem Nat.ArithmeticFunction.natCoe_apply - theorem Nat.ArithmeticFunction.natCoe_mul - theorem Nat.ArithmeticFunction.natCoe_nat - theorem Nat.ArithmeticFunction.natCoe_one - def Nat.ArithmeticFunction.natToArithmeticFunction - def Nat.ArithmeticFunction.ofInt - theorem Nat.ArithmeticFunction.one_apply - theorem Nat.ArithmeticFunction.one_apply_ne - theorem Nat.ArithmeticFunction.one_one - theorem Nat.ArithmeticFunction.one_smul' - def Nat.ArithmeticFunction.pdiv - theorem Nat.ArithmeticFunction.pdiv_apply - theorem Nat.ArithmeticFunction.pdiv_zeta - def Nat.ArithmeticFunction.pmul - theorem Nat.ArithmeticFunction.pmul_apply - theorem Nat.ArithmeticFunction.pmul_comm - theorem Nat.ArithmeticFunction.pmul_zeta - def Nat.ArithmeticFunction.pow - theorem Nat.ArithmeticFunction.pow_apply - theorem Nat.ArithmeticFunction.pow_zero_eq_zeta - def Nat.ArithmeticFunction.ppow - theorem Nat.ArithmeticFunction.ppow_apply - theorem Nat.ArithmeticFunction.ppow_succ' - theorem Nat.ArithmeticFunction.ppow_succ - theorem Nat.ArithmeticFunction.ppow_zero - def Nat.ArithmeticFunction.prodPrimeFactors - theorem Nat.ArithmeticFunction.prodPrimeFactors_apply - theorem Nat.ArithmeticFunction.prod_eq_iff_prod_pow_moebius_eq - theorem Nat.ArithmeticFunction.prod_eq_iff_prod_pow_moebius_eq_of_nonzero - theorem Nat.ArithmeticFunction.prod_eq_iff_prod_pow_moebius_eq_on - theorem Nat.ArithmeticFunction.prod_eq_iff_prod_pow_moebius_eq_on_of_nonzero - def Nat.ArithmeticFunction.sigma - theorem Nat.ArithmeticFunction.sigma_apply - theorem Nat.ArithmeticFunction.sigma_one_apply - theorem Nat.ArithmeticFunction.sigma_zero_apply - theorem Nat.ArithmeticFunction.sigma_zero_apply_prime_pow - theorem Nat.ArithmeticFunction.smul_apply - theorem Nat.ArithmeticFunction.sum_eq_iff_sum_mul_moebius_eq - theorem Nat.ArithmeticFunction.sum_eq_iff_sum_mul_moebius_eq_on - theorem Nat.ArithmeticFunction.sum_eq_iff_sum_smul_moebius_eq - theorem Nat.ArithmeticFunction.sum_eq_iff_sum_smul_moebius_eq_on' - theorem Nat.ArithmeticFunction.sum_eq_iff_sum_smul_moebius_eq_on - theorem Nat.ArithmeticFunction.toFun_eq - theorem Nat.ArithmeticFunction.zero_apply - def Nat.ArithmeticFunction.zeta - def Nat.ArithmeticFunction.zetaUnit - theorem Nat.ArithmeticFunction.zeta_apply - theorem Nat.ArithmeticFunction.zeta_apply_ne - theorem Nat.ArithmeticFunction.zeta_mul_apply - theorem Nat.ArithmeticFunction.zeta_mul_pow_eq_sigma - theorem Nat.ArithmeticFunction.zeta_pmul - def Nat.ArithmeticFunction Modified Mathlib/NumberTheory/EulerProduct/Basic.lean Modified Mathlib/NumberTheory/LSeries/Basic.lean + def ArithmeticFunction.LSeries + def ArithmeticFunction.LSeriesSummable + theorem ArithmeticFunction.LSeriesSummable_iff_of_re_eq_re + theorem ArithmeticFunction.LSeriesSummable_of_bounded_of_one_lt_re + theorem ArithmeticFunction.LSeriesSummable_of_bounded_of_one_lt_real + theorem ArithmeticFunction.LSeriesSummable_zero + theorem ArithmeticFunction.LSeries_add + theorem ArithmeticFunction.LSeries_eq_zero_of_not_LSeriesSummable + theorem ArithmeticFunction.zeta_LSeriesSummable_iff_one_lt_re - def Nat.ArithmeticFunction.LSeries - def Nat.ArithmeticFunction.LSeriesSummable - theorem Nat.ArithmeticFunction.LSeriesSummable_iff_of_re_eq_re - theorem Nat.ArithmeticFunction.LSeriesSummable_of_bounded_of_one_lt_re - theorem Nat.ArithmeticFunction.LSeriesSummable_of_bounded_of_one_lt_real - theorem Nat.ArithmeticFunction.LSeriesSummable_zero - theorem Nat.ArithmeticFunction.LSeries_add - theorem Nat.ArithmeticFunction.LSeries_eq_zero_of_not_LSeriesSummable - theorem Nat.ArithmeticFunction.zeta_LSeriesSummable_iff_one_lt_re Modified Mathlib/NumberTheory/VonMangoldt.lean + theorem ArithmeticFunction.log_apply + theorem ArithmeticFunction.log_mul_moebius_eq_vonMangoldt + theorem ArithmeticFunction.moebius_mul_log_eq_vonMangoldt + theorem ArithmeticFunction.sum_moebius_mul_log_eq + theorem ArithmeticFunction.vonMangoldt_apply + theorem ArithmeticFunction.vonMangoldt_apply_one + theorem ArithmeticFunction.vonMangoldt_apply_pow + theorem ArithmeticFunction.vonMangoldt_apply_prime + theorem ArithmeticFunction.vonMangoldt_eq_zero_iff + theorem ArithmeticFunction.vonMangoldt_le_log + theorem ArithmeticFunction.vonMangoldt_mul_zeta + theorem ArithmeticFunction.vonMangoldt_ne_zero_iff + theorem ArithmeticFunction.vonMangoldt_nonneg + theorem ArithmeticFunction.vonMangoldt_pos_iff + theorem ArithmeticFunction.vonMangoldt_sum + theorem ArithmeticFunction.zeta_mul_vonMangoldt - theorem Nat.ArithmeticFunction.log_apply - theorem Nat.ArithmeticFunction.log_mul_moebius_eq_vonMangoldt - theorem Nat.ArithmeticFunction.moebius_mul_log_eq_vonMangoldt - theorem Nat.ArithmeticFunction.sum_moebius_mul_log_eq - theorem Nat.ArithmeticFunction.vonMangoldt_apply - theorem Nat.ArithmeticFunction.vonMangoldt_apply_one - theorem Nat.ArithmeticFunction.vonMangoldt_apply_pow - theorem Nat.ArithmeticFunction.vonMangoldt_apply_prime - theorem Nat.ArithmeticFunction.vonMangoldt_eq_zero_iff - theorem Nat.ArithmeticFunction.vonMangoldt_le_log - theorem Nat.ArithmeticFunction.vonMangoldt_mul_zeta - theorem Nat.ArithmeticFunction.vonMangoldt_ne_zero_iff - theorem Nat.ArithmeticFunction.vonMangoldt_nonneg - theorem Nat.ArithmeticFunction.vonMangoldt_pos_iff - theorem Nat.ArithmeticFunction.vonMangoldt_sum - theorem Nat.ArithmeticFunction.zeta_mul_vonMangoldt Modified Mathlib/RingTheory/Polynomial/Cyclotomic/Basic.lean Modified docs/overview.yaml 2024-02-10 12:15:54 ba309fb feat(Bicategory/Adjunction): the left triangle implies the right triangle for equivalences (#10398) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Bicategory/Adjunction.lean + theorem CategoryTheory.Bicategory.Equivalence.left_triangle_hom + theorem CategoryTheory.Bicategory.Equivalence.right_triangle + theorem CategoryTheory.Bicategory.Equivalence.right_triangle_hom + theorem CategoryTheory.Bicategory.rightZigzag_idempotent_of_left_triangle + theorem CategoryTheory.Bicategory.right_triangle_of_left_triangle 2024-02-10 10:41:51 fa90a96 chore(CategoryTheory/Sites): reorganise the material related to the coherent, regular and extensive topologies (#9944) This PR adds essentially no new material (except the names `regularTopology` and `extensiveTopology` which were missing). It only reorganises the material that was previously in `CategoryTheory/Sites/Coherent/Basic` and `CategoryTheory/Sites/Coherent/RegularExtensive`, spreading it across six files in the `Coherent ` folder. - [x] depends on: #9920 ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/CategoryTheory/Sites/Coherent/Basic.lean - theorem CategoryTheory.EffectiveEpiFamily.transitive_of_finite - theorem CategoryTheory.coherentTopology.isSheaf_yoneda_obj - theorem CategoryTheory.coherentTopology.mem_sieves_iff_hasEffectiveEpiFamily - theorem CategoryTheory.coherentTopology.mem_sieves_of_hasEffectiveEpiFamily - theorem CategoryTheory.coherentTopology.subcanonical + def CategoryTheory.extensiveCoverage + def CategoryTheory.extensiveTopology - theorem CategoryTheory.isSheaf_coherent + def CategoryTheory.regularCoverage + def CategoryTheory.regularTopology Added Mathlib/CategoryTheory/Sites/Coherent/CoherentSheaves.lean + theorem CategoryTheory.coherentTopology.isSheaf_yoneda_obj + theorem CategoryTheory.coherentTopology.subcanonical + theorem CategoryTheory.isSheaf_coherent Added Mathlib/CategoryTheory/Sites/Coherent/CoherentTopology.lean + theorem CategoryTheory.EffectiveEpiFamily.transitive_of_finite + theorem CategoryTheory.coherentTopology.mem_sieves_iff_hasEffectiveEpiFamily + theorem CategoryTheory.coherentTopology.mem_sieves_of_hasEffectiveEpiFamily Added Mathlib/CategoryTheory/Sites/Coherent/Comparison.lean + theorem CategoryTheory.effectiveEpi_desc_iff_effectiveEpiFamily + theorem CategoryTheory.extensive_regular_generate_coherent Added Mathlib/CategoryTheory/Sites/Coherent/ExtensiveSheaves.lean + theorem CategoryTheory.isSheafFor_extensive_of_preservesFiniteProducts + theorem CategoryTheory.isSheaf_iff_preservesFiniteProducts Deleted Mathlib/CategoryTheory/Sites/Coherent/RegularExtensive.lean - theorem CategoryTheory.effectiveEpi_desc_iff_effectiveEpiFamily - def CategoryTheory.extensiveCoverage - theorem CategoryTheory.extensive_regular_generate_coherent - theorem CategoryTheory.isSheafFor_extensive_of_preservesFiniteProducts - theorem CategoryTheory.isSheaf_iff_preservesFiniteProducts - theorem CategoryTheory.regularCoverage.EqualizerCondition.isSheafFor - theorem CategoryTheory.regularCoverage.EqualizerCondition.isSheaf_iff - def CategoryTheory.regularCoverage.EqualizerCondition - def CategoryTheory.regularCoverage.MapToEqualizer - theorem CategoryTheory.regularCoverage.equalizerCondition_of_regular - theorem CategoryTheory.regularCoverage.isSheafFor_regular_of_projective - theorem CategoryTheory.regularCoverage.isSheaf_of_projective - theorem CategoryTheory.regularCoverage.isSheaf_yoneda_obj - theorem CategoryTheory.regularCoverage.subcanonical - def CategoryTheory.regularCoverage Added Mathlib/CategoryTheory/Sites/Coherent/RegularSheaves.lean + theorem CategoryTheory.regularCoverage.EqualizerCondition.isSheafFor + theorem CategoryTheory.regularCoverage.EqualizerCondition.isSheaf_iff + def CategoryTheory.regularCoverage.EqualizerCondition + def CategoryTheory.regularCoverage.MapToEqualizer + theorem CategoryTheory.regularCoverage.equalizerCondition_of_regular + theorem CategoryTheory.regularCoverage.isSheafFor_regular_of_projective + theorem CategoryTheory.regularCoverage.isSheaf_of_projective + theorem CategoryTheory.regularCoverage.isSheaf_yoneda_obj + theorem CategoryTheory.regularCoverage.subcanonical Modified Mathlib/Condensed/Equivalence.lean Modified Mathlib/Condensed/Explicit.lean Modified Mathlib/Condensed/Functors.lean Modified Mathlib/Topology/Category/CompHaus/EffectiveEpi.lean Modified Mathlib/Topology/Category/Profinite/EffectiveEpi.lean 2024-02-10 10:41:50 b6a4cc4 refactor(RepresentationTheory/GroupCohomology): tidy up 8599 and add more low degree cocycle API (#8785) ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/Equiv.lean + theorem AlgEquiv.smul_units_def Modified Mathlib/Algebra/Algebra/Hom.lean + theorem Algebra.smul_units_def Modified Mathlib/RepresentationTheory/Basic.lean +/- theorem Representation.ofMulDistribMulAction_apply_apply Modified Mathlib/RepresentationTheory/GroupCohomology/Basic.lean Modified Mathlib/RepresentationTheory/GroupCohomology/Hilbert90.lean - theorem Hilbert90.aux_ne_zero + theorem groupCohomology.Hilbert90.aux_ne_zero + theorem groupCohomology.isMulOneCoboundary_of_isMulOneCocycle_of_aut_to_units - theorem hilbert90 Modified Mathlib/RepresentationTheory/GroupCohomology/LowDegree.lean + def groupCohomology.IsMulOneCoboundary + def groupCohomology.IsMulOneCocycle + def groupCohomology.IsMulTwoCoboundary + def groupCohomology.IsMulTwoCocycle + def groupCohomology.IsOneCoboundary + def groupCohomology.IsOneCocycle + def groupCohomology.IsTwoCoboundary + def groupCohomology.IsTwoCocycle + theorem groupCohomology.isMulOneCoboundary_of_oneCoboundaries + theorem groupCohomology.isMulOneCocycle_of_oneCocycles + theorem groupCohomology.isMulTwoCoboundary_of_twoCoboundaries + theorem groupCohomology.isMulTwoCocycle_of_twoCocycles + theorem groupCohomology.isOneCoboundary_of_oneCoboundaries + theorem groupCohomology.isOneCocycle_of_oneCocycles + theorem groupCohomology.isTwoCoboundary_of_twoCoboundaries + theorem groupCohomology.isTwoCocycle_of_twoCocycles + theorem groupCohomology.map_inv_of_isMulOneCocycle + theorem groupCohomology.map_inv_of_isOneCocycle + theorem groupCohomology.map_one_fst_of_isMulTwoCocycle + theorem groupCohomology.map_one_fst_of_isTwoCocycle + theorem groupCohomology.map_one_of_isMulOneCocycle + theorem groupCohomology.map_one_of_isOneCocycle + theorem groupCohomology.map_one_snd_of_isMulTwoCocycle + theorem groupCohomology.map_one_snd_of_isTwoCocycle - theorem groupCohomology.mem_oneCoboundaries_of_dZero_apply - theorem groupCohomology.mem_oneCoboundaries_of_mem_range +/- theorem groupCohomology.mem_range_of_mem_oneCoboundaries +/- theorem groupCohomology.mem_range_of_mem_twoCoboundaries - theorem groupCohomology.mem_twoCoboundaries_of_dOne_apply - theorem groupCohomology.mem_twoCoboundaries_of_mem_range + def groupCohomology.oneCoboundariesOfEq + theorem groupCohomology.oneCoboundariesOfEq_apply + def groupCohomology.oneCoboundariesOfIsMulOneCoboundary + def groupCohomology.oneCoboundariesOfIsOneCoboundary + def groupCohomology.oneCoboundariesOfMemRange + theorem groupCohomology.oneCoboundaries_of_mem_range_apply + def groupCohomology.oneCocyclesOfIsMulOneCocycle + def groupCohomology.oneCocyclesOfIsOneCocycle + theorem groupCohomology.smul_map_inv_div_map_inv_of_isMulTwoCocycle + theorem groupCohomology.smul_map_inv_sub_map_inv_of_isTwoCocycle + def groupCohomology.twoCoboundariesOfEq + theorem groupCohomology.twoCoboundariesOfEq_apply + def groupCohomology.twoCoboundariesOfIsMulTwoCoboundary + def groupCohomology.twoCoboundariesOfIsTwoCoboundary + def groupCohomology.twoCoboundariesOfMemRange + theorem groupCohomology.twoCoboundariesOfMemRange_apply + def groupCohomology.twoCocyclesOfIsMulTwoCocycle + def groupCohomology.twoCocyclesOfIsTwoCocycle Modified Mathlib/RepresentationTheory/Rep.lean +/- theorem Rep.ofMulDistribMulAction_ρ_apply_apply 2024-02-10 09:56:33 b9ecf68 chore: relax typeclass assumption in `Polynomial.support_smul` (#10397) ESTIMATED CHANGES Modified Mathlib/Data/Polynomial/Coeff.lean +/- theorem Polynomial.support_smul 2024-02-10 09:09:01 e7a73bf feat(PerfectRing): roots of `Polynomial.expand` (#9311) Inspired by #9271 Prove the main theorem `rootMultiplicity_expand` and derive corollaries about `Polynomial.roots`. Refactor `rootsExpand(Pow)EquivRoots` using the new lemmas. ESTIMATED CHANGES Modified Mathlib/Data/Polynomial/Eval.lean + theorem Polynomial.isRoot_comp Modified Mathlib/Data/Polynomial/Expand.lean + theorem Polynomial.expand_eq_comp_X_pow + theorem Polynomial.rootMultiplicity_expand + theorem Polynomial.rootMultiplicity_expand_pow Modified Mathlib/FieldTheory/Perfect.lean + theorem Polynomial.rootsExpandPowToRoots_apply + theorem Polynomial.rootsExpandToRoots_apply + theorem Polynomial.roots_expand + theorem Polynomial.roots_expand_image_frobenius + theorem Polynomial.roots_expand_image_frobenius_subset + theorem Polynomial.roots_expand_image_iterateFrobenius + theorem Polynomial.roots_expand_map_frobenius + theorem Polynomial.roots_expand_map_frobenius_le + theorem Polynomial.roots_expand_pow + theorem Polynomial.roots_expand_pow_image_iterateFrobenius_subset + theorem Polynomial.roots_expand_pow_map_iterateFrobenius + theorem Polynomial.roots_expand_pow_map_iterateFrobenius_le + theorem iterateFrobeniusEquiv_eq_pow + theorem iterateFrobeniusEquiv_symm 2024-02-10 06:34:59 b1a0951 feat: everywhere positive sets for a measure (#10139) A set `s` is everywhere positive with respect to a measure `mu` if, for every point in `s`, all its neighborhoods inside `s` have positive measure. We create a new file about this notion. The main result of the file is Halmos theorem (1950): the Haar measure on a locally compact group is completion-regular, i.e., finite-measure sets can be approximated from inside by level sets of compactly supported continuous functions. (its proof uses subtle properties of everywhere positive sets, although this is not apparent in the statement). ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/MeasureTheory/Measure/EverywherePos.lean + theorem IsOpen.isEverywherePos + theorem MeasureTheory.Measure.IsEverywherePos.IsGdelta_of_isMulLeftInvariant + theorem MeasureTheory.Measure.IsEverywherePos.of_forall_exists_nhds_eq + theorem MeasureTheory.Measure.IsEverywherePos.smul_measure + theorem MeasureTheory.Measure.IsEverywherePos.smul_measure_nnreal + def MeasureTheory.Measure.IsEverywherePos + def MeasureTheory.Measure.everywherePosSubset + theorem MeasureTheory.Measure.everywherePosSubset_ae_eq + theorem MeasureTheory.Measure.everywherePosSubset_ae_eq_of_measure_ne_top + theorem MeasureTheory.Measure.everywherePosSubset_subset + theorem MeasureTheory.Measure.exists_isOpen_everywherePosSubset_eq_diff + theorem MeasureTheory.Measure.innerRegularWRT_preimage_one_hasCompactSupport_measure_ne_top_of_group + theorem MeasureTheory.Measure.isEverywherePos_everywherePosSubset + theorem MeasureTheory.Measure.isEverywherePos_everywherePosSubset_of_measure_ne_top + theorem MeasureTheory.Measure.isEverywherePos_iff_of_forall_exists_nhds_eq + theorem MeasureTheory.Measure.measure_eq_zero_of_subset_diff_everywherePosSubset 2024-02-10 05:27:40 7dea24a fix: improve the logging behavior of `slim_check` (#10393) There was a bug in the tactic that meant it would always print "no goals to be solved". This also promotes the code-generation from `IO` to `CoreM`, so that the output can be sent through the logging infrastructure rather than `IO.println`. This is important, because tests are not allowed to be noisy, and we have no way to capture `IO` output. ESTIMATED CHANGES Modified Mathlib/Tactic/SlimCheck.lean Modified Mathlib/Testing/SlimCheck/Testable.lean Modified test/slim_check.lean 2024-02-10 05:01:45 a99ce01 chore(CategoryTheory/Sites): create a folder for files related to the coherent topology (#9920) Creates the folder `CategoryTheory/Sites/Coherent` and moves two files into it. Preparation for further reorganisation of this material and additions to it. ESTIMATED CHANGES Modified Mathlib.lean Renamed Mathlib/CategoryTheory/Sites/Coherent.lean to Mathlib/CategoryTheory/Sites/Coherent/Basic.lean Renamed Mathlib/CategoryTheory/Sites/RegularExtensive.lean to Mathlib/CategoryTheory/Sites/Coherent/RegularExtensive.lean Modified Mathlib/Topology/Category/CompHaus/EffectiveEpi.lean Modified Mathlib/Topology/Category/Profinite/EffectiveEpi.lean 2024-02-10 01:29:01 d43db9f chore(Tactic/CancelDenoms/Core): Qq-ify (#9422) This means all the unification is done at compile-time rather than runtime. To make the type of the proof expressible with Qq, we have to construct the numeric literal up front. I can't actually measure a meaningful performance difference in the tactic now, but this spelling is more strongly-typed, and thus the semantics are clearer. ESTIMATED CHANGES Modified Mathlib/Tactic/CancelDenoms/Core.lean + structure CancelDenoms.CancelResult 2024-02-09 22:56:46 1c8a8a8 chore: tidy various files (#10362) ESTIMATED CHANGES Modified Archive/Hairer.lean Modified Mathlib/AlgebraicGeometry/Morphisms/QuasiSeparated.lean Modified Mathlib/AlgebraicGeometry/Sites/BigZariski.lean Modified Mathlib/Analysis/Complex/Basic.lean +/- theorem Complex.mem_slitPlane_iff +/- theorem Complex.slitPlane_eq_union Modified Mathlib/Analysis/SpecialFunctions/Complex/Arg.lean Modified Mathlib/Analysis/SpecialFunctions/Pow/Real.lean Modified Mathlib/CategoryTheory/Sites/Grothendieck.lean Modified Mathlib/CategoryTheory/Sites/Pretopology.lean Modified Mathlib/CategoryTheory/Sites/Spaces.lean +/- def Opens.grothendieckTopology +/- def Opens.pretopology Modified Mathlib/Computability/AkraBazzi/AkraBazzi.lean Modified Mathlib/Data/Complex/Order.lean + theorem Complex.nonneg_iff + theorem Complex.pos_iff Modified Mathlib/Data/Multiset/Basic.lean Modified Mathlib/Data/Nat/Factorial/SuperFactorial.lean +/- theorem Nat.prod_range_factorial_succ Modified Mathlib/Dynamics/Ergodic/Conservative.lean Modified Mathlib/Dynamics/Ergodic/MeasurePreserving.lean Modified Mathlib/FieldTheory/AbelRuffini.lean Modified Mathlib/FieldTheory/Adjoin.lean Modified Mathlib/Geometry/Manifold/IntegralCurve.lean +/- theorem IsIntegralCurve.continuous Modified Mathlib/GroupTheory/FreeGroup/IsFreeGroup.lean +/- def IsFreeGroup.basis Modified Mathlib/MeasureTheory/Constructions/BorelSpace/Basic.lean Modified Mathlib/MeasureTheory/Constructions/Projective.lean Modified Mathlib/MeasureTheory/Function/Egorov.lean Modified Mathlib/MeasureTheory/SetSemiring.lean Modified Mathlib/Order/Filter/NAry.lean Modified Mathlib/Order/WithBot.lean Modified Mathlib/RingTheory/Nilpotent.lean Modified Mathlib/RingTheory/Perfection.lean Modified Mathlib/RingTheory/WittVector/FrobeniusFractionField.lean Modified Mathlib/Topology/Algebra/Group/Basic.lean Modified Mathlib/Topology/UniformSpace/Equicontinuity.lean 2024-02-09 21:00:14 e7d5230 chore(NumberTheory/LSeries): create directory, move file (#10385) This PR creates a new directory `Mathlib/NumberTheory/LSeries` and moves the file `Mathlib/NumberTheory/LSeries.lean` to `Mathlib/NumberTheory/LSeries/Basic.lean`. This is in preparation of adding more material on L-series. See [here](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/L-series/near/420712599) on Zulip. ESTIMATED CHANGES Modified Mathlib.lean Renamed Mathlib/NumberTheory/LSeries.lean to Mathlib/NumberTheory/LSeries/Basic.lean 2024-02-09 21:00:13 0be5ab0 chore: cache: do not try to upload files just downloaded (#9687) If `put` in CI finds that an archive already exists in the local cache, we can assume it exists in the cloud cache as well. Should provide a good-enough avoidance of repeatedly uploading the same archive on hosts like Cloudflare that do not support no-overwrite and still save a ton of write requests on Azure. ESTIMATED CHANGES Modified .github/workflows/bors.yml Modified .github/workflows/build.yml Modified .github/workflows/build.yml.in Modified .github/workflows/build_fork.yml Modified Cache/IO.lean +/- def Cache.IO.packCache Modified Cache/Main.lean 2024-02-09 20:27:07 1d06686 feat(CategoryTheory/Limits): pushouts in the category of sets (#9992) This PR studies pushouts in the category of types. Specific properties of the pushout when one of the morphisms is injective are obtained. This PR partly removes the reference to the issue https://github.com/leanprover-community/mathlib4/issues/5752 : the `HasPushouts (Type _)` instance can now be found automatically, but not `HasPullbacks`. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Limits/Shapes/Types.lean + def CategoryTheory.Limits.Types.Pushout' + theorem CategoryTheory.Limits.Types.Pushout.Rel'.symm + inductive CategoryTheory.Limits.Types.Pushout.Rel' + inductive CategoryTheory.Limits.Types.Pushout.Rel + def CategoryTheory.Limits.Types.Pushout.cocone + theorem CategoryTheory.Limits.Types.Pushout.condition + def CategoryTheory.Limits.Types.Pushout.equivPushout' + theorem CategoryTheory.Limits.Types.Pushout.equivalence_rel' + def CategoryTheory.Limits.Types.Pushout.inl + theorem CategoryTheory.Limits.Types.Pushout.inl_eq_inr_iff + theorem CategoryTheory.Limits.Types.Pushout.inl_rel'_inl_iff + theorem CategoryTheory.Limits.Types.Pushout.inl_rel'_inr_iff + def CategoryTheory.Limits.Types.Pushout.inr + theorem CategoryTheory.Limits.Types.Pushout.inr_rel'_inr_iff + def CategoryTheory.Limits.Types.Pushout.isColimitCocone + theorem CategoryTheory.Limits.Types.Pushout.quot_mk_eq_iff + def CategoryTheory.Limits.Types.Pushout + theorem CategoryTheory.Limits.Types.pushoutCocone_inl_eq_inr_iff_of_isColimit + theorem CategoryTheory.Limits.Types.pushoutCocone_inl_eq_inr_iff_of_iso + theorem CategoryTheory.Limits.Types.pushoutCocone_inl_eq_inr_imp_of_iso 2024-02-09 19:37:45 de7d014 feat: `Matrix.fromRows` and `Matrix.fromColumns` multiplied by vectors (#10379) Zulip discussion: https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/.E2.9C.94.20sumType_zeroFun_dotProduct ESTIMATED CHANGES Modified Mathlib/Data/Matrix/ColumnRowPartitioned.lean + theorem Matrix.fromColumns_mulVec_sum_elim + theorem Matrix.fromRows_mulVec + theorem Matrix.sum_elim_vecMul_fromRows +/- theorem Matrix.toColumns₁_fromColumns +/- theorem Matrix.toColumns₂_fromColumns + theorem Matrix.vecMul_fromColumns 2024-02-09 19:37:44 7765675 feat: generalize `ContinuousMultilinearLinearMap.mkPiField` to `mkPiRing` (#9910) This matches the generality of the non-continuous versions. The `norm_smulRight` lemma is the only new result. ESTIMATED CHANGES Modified Mathlib/Analysis/Analytic/Basic.lean Modified Mathlib/Analysis/Calculus/FormalMultilinearSeries.lean - theorem FormalMultilinearSeries.mkPiField_coeff_eq + theorem FormalMultilinearSeries.mkPiRing_coeff_eq Modified Mathlib/Analysis/Calculus/IteratedDeriv/Defs.lean Modified Mathlib/Analysis/NormedSpace/Multilinear/Basic.lean - theorem ContinuousMultilinearMap.mkPiField_apply - theorem ContinuousMultilinearMap.mkPiField_apply_one_eq_self - theorem ContinuousMultilinearMap.mkPiField_eq_iff - theorem ContinuousMultilinearMap.mkPiField_eq_zero_iff - theorem ContinuousMultilinearMap.mkPiField_zero + theorem ContinuousMultilinearMap.nnnorm_smulRight - theorem ContinuousMultilinearMap.norm_mkPiField + theorem ContinuousMultilinearMap.norm_mkPiRing + theorem ContinuousMultilinearMap.norm_smulRight Modified Mathlib/Analysis/NormedSpace/Spectrum.lean Modified Mathlib/MeasureTheory/Integral/CircleIntegral.lean Modified Mathlib/Topology/Algebra/Module/Multilinear/Basic.lean + theorem ContinuousMultilinearMap.mkPiRing_apply + theorem ContinuousMultilinearMap.mkPiRing_apply_one_eq_self + theorem ContinuousMultilinearMap.mkPiRing_eq_iff + theorem ContinuousMultilinearMap.mkPiRing_eq_zero_iff + theorem ContinuousMultilinearMap.mkPiRing_zero 2024-02-09 19:11:38 c721d5c refactor(Topology/Order) : Fix inconsistencies between Lower/Upper and Scott topologies (#10346) - Make type explicit in def of Scott-Hausdorff and Scott topologies - Move `With{Lower|Upper}Homeomorph` into the correct namespace ESTIMATED CHANGES Modified Mathlib/Topology/Order/LowerUpperTopology.lean - def Topology.IsLower.WithLowerHomeomorph + def Topology.IsLower.withLowerHomeomorph - def Topology.IsUpper.WithUpperHomeomorph + def Topology.IsUpper.withUpperHomeomorph Modified Mathlib/Topology/Order/ScottTopology.lean +/- theorem Topology.IsLower.scottHausdorff_le +/- theorem Topology.IsScott.scottHausdorff_le +/- theorem Topology.IsScott.topology_eq + def Topology.IsScott.withScottHomeomorph +/- theorem Topology.IsScottHausdorff.topology_eq - def Topology.WithScott.withScottHomeomorph +/- def Topology.scott +/- def Topology.scottHausdorff +/- theorem Topology.upperSet_le_scott 2024-02-09 16:54:30 c4cd464 docs: incorrect file name (#10382) docs(SetTheory/Ordinal/Basic.lean): fix file name Change OrdinalArithmetic.lean to Ordinal/Arithmetic.lean. ESTIMATED CHANGES Modified Mathlib/SetTheory/Ordinal/Basic.lean 2024-02-09 16:54:29 1b99589 feat : Add metric Lindelöf = second countable (#10376) Add SecondCountableTopology.from_pseudometric_Lindelof, which is an instance that creates a second countable topology from a pseudometric Lindelof space. This allows one to synthesize that a pseudometric Lindelof space is a `SeparableSpace`. ESTIMATED CHANGES Modified Mathlib/Topology/Compactness/Lindelof.lean 2024-02-09 16:31:29 65cb927 chore: add "porting notes" benchmarking metric (#5994) ESTIMATED CHANGES Modified scripts/bench/temci-config.run.yml 2024-02-09 16:01:58 9983069 doc: fix typo (#10380) Fixed a minor typo. ESTIMATED CHANGES Modified Mathlib/Analysis/NormedSpace/Star/Matrix.lean 2024-02-09 15:09:39 9a10bb9 feat: add `Isometry.nnnorm_map` (#10367) This is not placed directly next to its `norm` cousin because there is no `NNNorm` instance on `SeminormedGroups` at that point in the file. ESTIMATED CHANGES Modified Mathlib/Analysis/Normed/Group/Basic.lean + theorem Isometry.nnnorm_map_of_map_one 2024-02-09 14:17:45 117789e feat: generalize `cocompact_eq` (#10285) example use case: `cocompact_le` with `integrable_iff_integrableAtFilter_cocompact` from #10248 becomes a way to prove integrability from big-O estimates (e.g. #10258) ESTIMATED CHANGES Modified Mathlib/Analysis/Complex/PhragmenLindelof.lean Modified Mathlib/Analysis/Fourier/PoissonSummation.lean Modified Mathlib/Analysis/SpecialFunctions/Gaussian.lean Modified Mathlib/MeasureTheory/Constructions/BorelSpace/Basic.lean Modified Mathlib/MeasureTheory/Integral/IntegralEqImproper.lean Modified Mathlib/Topology/Algebra/Order/Compact.lean + theorem atBot_atTop_le_cocompact + theorem atBot_le_cocompact + theorem atTop_le_cocompact + theorem cocompact_eq_atBot + theorem cocompact_eq_atBot_atTop + theorem cocompact_eq_atTop + theorem cocompact_le_atBot + theorem cocompact_le_atBot_atTop + theorem cocompact_le_atTop Modified Mathlib/Topology/Compactness/Compact.lean +/- theorem Nat.cocompact_eq Modified Mathlib/Topology/Instances/Int.lean - theorem Int.cocompact_eq Modified Mathlib/Topology/Instances/Real.lean - theorem Real.atBot_le_cocompact - theorem Real.atTop_le_cocompact - theorem Real.cocompact_eq 2024-02-09 13:35:34 22ba268 chore: rename declarations containing `nNReal` to `nnreal` (#10372) ESTIMATED CHANGES Modified Mathlib/Analysis/NormedSpace/Basic.lean - theorem nnnorm_algebraMap_nNReal + theorem nnnorm_algebraMap_nnreal - theorem norm_algebraMap_nNReal + theorem norm_algebraMap_nnreal Modified Mathlib/Topology/ContinuousFunction/Ideals.lean Modified Mathlib/Topology/MetricSpace/PartitionOfUnity.lean - theorem EMetric.exists_continuous_nNReal_forall_closedBall_subset + theorem EMetric.exists_continuous_nnreal_forall_closedBall_subset - theorem Metric.exists_continuous_nNReal_forall_closedBall_subset + theorem Metric.exists_continuous_nnreal_forall_closedBall_subset 2024-02-09 12:54:00 359fc77 chore: bump Std (#10378) ESTIMATED CHANGES Modified Mathlib/Lean/Expr/Basic.lean Modified Mathlib/Lean/Meta/Simp.lean Modified Mathlib/Lean/Name.lean Modified Mathlib/Tactic/Congr!.lean Modified Mathlib/Tactic/LibrarySearch.lean Modified Mathlib/Tactic/Monotonicity/Basic.lean Modified Mathlib/Tactic/NormNum/Core.lean Modified Mathlib/Tactic/PushNeg.lean Modified Mathlib/Tactic/Relation/Trans.lean Modified Mathlib/Tactic/Rewrites.lean Modified Mathlib/Tactic/Says.lean Modified Mathlib/Tactic/Simps/Basic.lean Modified Mathlib/Tactic/Widget/Calc.lean Modified Mathlib/Tactic/Widget/Conv.lean Modified lake-manifest.json Modified test/says.lean 2024-02-09 12:11:32 3a4cb1b chore: remove porting note + workaround now that `simp` fixed (#10375) ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/AffineSpace/Basis.lean 2024-02-09 11:48:35 3e8b888 feat: Add exists_ideal_in_class_of_norm_le (#9084) Prove that each class of the classgroup of a number field contains an integral ideal of small norm. ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/Matrix/Basis.lean + theorem Basis.restrictScalars_toMatrix Modified Mathlib/NumberTheory/NumberField/Basic.lean + theorem NumberField.integralBasis_repr_apply Modified Mathlib/NumberTheory/NumberField/ClassNumber.lean + theorem NumberField.exists_ideal_in_class_of_norm_le + theorem RingOfIntegers.isPrincipalIdealRing_of_abs_discr_lt Modified Mathlib/RingTheory/ClassGroup.lean + theorem ClassGroup.mk0_eq_mk0_inv_iff Modified Mathlib/RingTheory/Ideal/Norm.lean + theorem Ideal.absNorm_ne_zero_of_nonZeroDivisors 2024-02-09 09:06:20 1604555 feat: adds `IsSelfAdjoint.algebraMap` (#10366) `algebraMap R A r` is selfadjiont when `A` is a star `R`-algebra and `r` is selfadjoint. ESTIMATED CHANGES Modified Mathlib/Algebra/Star/Module.lean +/- theorem algebraMap_star_comm + theorem isSelfAdjoint_algebraMap_iff 2024-02-09 09:06:19 dd92a5c feat: add `star_mul_self_add_self_mul_star` (#10365) adds the lemma: `star a * a + a * star a = 2 • ((ℜ a) ^ 2 + (ℑ a) ^ 2)` for star algebras over `ℂ`. ESTIMATED CHANGES Modified Mathlib/Data/Complex/Module.lean + theorem star_mul_self_add_self_mul_star 2024-02-09 08:22:46 c94fc52 doc: fix typo (#10360) Fixed minor typo. ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/Alternating/Basic.lean 2024-02-09 04:56:16 2e153a6 chore(CategoryTheory/Galois): fix spelling and rename connected objects (#10363) Changes the spelling of `FibreFunctor` to `FiberFunctor` to match the US spelling and adapts other names accordingly. Renames `ConnectedObject` to `IsConnected` to match `IsGalois`. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Galois/Basic.lean - theorem CategoryTheory.PreGaloisCategory.evaluationInjective_of_connected + theorem CategoryTheory.PreGaloisCategory.evaluationInjective_of_isConnected - theorem CategoryTheory.PreGaloisCategory.evaluation_aut_injective_of_connected + theorem CategoryTheory.PreGaloisCategory.evaluation_aut_injective_of_isConnected + theorem CategoryTheory.PreGaloisCategory.initial_iff_fiber_empty - theorem CategoryTheory.PreGaloisCategory.initial_iff_fibre_empty Modified Mathlib/CategoryTheory/Galois/Examples.lean - theorem CategoryTheory.FintypeCat.Action.connected_iff_transitive - theorem CategoryTheory.FintypeCat.Action.connected_of_transitive + theorem CategoryTheory.FintypeCat.Action.isConnected_iff_transitive + theorem CategoryTheory.FintypeCat.Action.isConnected_of_transitive - theorem CategoryTheory.FintypeCat.Action.pretransitive_of_connected + theorem CategoryTheory.FintypeCat.Action.pretransitive_of_isConnected Modified Mathlib/CategoryTheory/Galois/GaloisObjects.lean +/- theorem CategoryTheory.PreGaloisCategory.isGalois_iff_aux +/- theorem CategoryTheory.PreGaloisCategory.isGalois_iff_pretransitive 2024-02-09 04:56:15 f5a4b10 chore(Analysis/Seminorm): golf (#10323) - Add `absorbent_iff_eventually_nhdsWithin_zero`. - Use it to golf `Seminorm.bddAbove_of_absorbent`. ESTIMATED CHANGES Modified Mathlib/Analysis/LocallyConvex/Basic.lean + theorem absorbent_iff_eventually_nhdsWithin_zero Modified Mathlib/Analysis/Seminorm.lean 2024-02-09 04:56:14 23bf9fb feat(CategoryTheory): characterization of epi/mono with limits (#9989) In this PR, it is shown that monomorphisms can be characterized in terms of pullback squares. Future applications of this include the fact that if a family of functors reflects isomorphisms, it shall also reflect monomorphisms and epimorphisms (provided suitable limits/colimits exist). ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/AlgebraicGeometry/Pullbacks.lean Added Mathlib/CategoryTheory/Limits/EpiMono.lean + theorem CategoryTheory.epi_iff_inl_eq_inr + theorem CategoryTheory.epi_iff_isIso_inl + theorem CategoryTheory.epi_iff_isIso_inr + theorem CategoryTheory.epi_iff_isPushout + theorem CategoryTheory.mono_iff_fst_eq_snd + theorem CategoryTheory.mono_iff_isIso_fst + theorem CategoryTheory.mono_iff_isIso_snd + theorem CategoryTheory.mono_iff_isPullback Modified Mathlib/CategoryTheory/Limits/Preserves/Shapes/Pullbacks.lean Modified Mathlib/CategoryTheory/Limits/Shapes/CommSq.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Pullbacks.lean + def CategoryTheory.Limits.PullbackCone.flip + def CategoryTheory.Limits.PullbackCone.flipFlipIso +/- def CategoryTheory.Limits.PullbackCone.flipIsLimit + theorem CategoryTheory.Limits.PullbackCone.flip_fst + theorem CategoryTheory.Limits.PullbackCone.flip_pt + theorem CategoryTheory.Limits.PullbackCone.flip_snd + def CategoryTheory.Limits.PullbackCone.isLimitOfFlip + def CategoryTheory.Limits.PushoutCocone.flip + def CategoryTheory.Limits.PushoutCocone.flipFlipIso +/- def CategoryTheory.Limits.PushoutCocone.flipIsColimit + theorem CategoryTheory.Limits.PushoutCocone.flip_inl + theorem CategoryTheory.Limits.PushoutCocone.flip_inr + theorem CategoryTheory.Limits.PushoutCocone.flip_pt + def CategoryTheory.Limits.PushoutCocone.isColimitOfFlip 2024-02-09 04:56:13 8b0bff1 feat(CategoryTheory/Localization): the localized category has finite products (#9692) In this PR, it is shown that under suitable assumptions, a localized category has finite products. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Localization/FiniteProducts.lean + theorem CategoryTheory.Localization.HasProductsOfShapeAux.adj_counit_app + theorem CategoryTheory.Localization.HasProductsOfShapeAux.inverts + theorem CategoryTheory.Localization.hasFiniteProducts + theorem CategoryTheory.Localization.hasProductsOfShape Modified Mathlib/CategoryTheory/Localization/Pi.lean 2024-02-09 04:56:12 6bbc370 feat(Algebra/Homology/HomotopyCategory): rotating and shifting distinguished triangles (#9615) In this PR, we obtain the main technical results that shall be used to verify the pretriangulated category axioms for the homotopy category of cochain complexes: the isomorphisms `mappingCone.rotateTrianglehIso` and `mappingCone.shiftTriangleIso` which express the behavior of standard distinguished triangles with respect to rotation and shift. ESTIMATED CHANGES Modified Mathlib/Algebra/Homology/HomotopyCategory/Pretriangulated.lean + theorem CochainComplex.mappingCone.rotateHomotopyEquiv_comm₂ + theorem CochainComplex.mappingCone.rotateHomotopyEquiv_comm₃ 2024-02-09 04:26:51 df4dbd3 feat(Algebra/Homology): the class of quasi-isomorphisms in the homotopy category (#9686) This PR introduces the class of quasi-isomorphisms in the homotopy category of homological complexes. ESTIMATED CHANGES Modified Mathlib/Algebra/Homology/HomotopyCategory.lean + theorem HomotopyCategory.quotient_inverts_homotopyEquivalences Modified Mathlib/Algebra/Homology/Localization.lean - theorem HomologicalComplex.homologyFunctor_inverts_qis + theorem HomologicalComplex.homologyFunctor_inverts_quasiIso + theorem HomologicalComplexUpToQuasiIso.Q_inverts_homotopyEquivalences + theorem HomologicalComplexUpToQuasiIso.isIso_Q_map_iff_mem_quasiIso + theorem HomotopyCategory.homologyFunctor_inverts_quasiIso + theorem HomotopyCategory.mem_quasiIso_iff + def HomotopyCategory.quasiIso + theorem HomotopyCategory.quasiIso_eq_quasiIso_map_quotient + theorem HomotopyCategory.quotient_map_mem_quasiIso_iff + theorem HomotopyCategory.respectsIso_quasiIso Modified Mathlib/Algebra/Homology/QuasiIso.lean + theorem HomologicalComplex.mem_quasiIso_iff - def HomologicalComplex.qis - theorem HomologicalComplex.qis_iff + def HomologicalComplex.quasiIso - theorem homotopyEquivalences_subset_qis + theorem homotopyEquivalences_subset_quasiIso Modified Mathlib/CategoryTheory/Localization/CalculusOfFractions.lean Modified Mathlib/CategoryTheory/Localization/Predicate.lean + theorem CategoryTheory.AreEqualizedByLocalization.map_eq + theorem CategoryTheory.AreEqualizedByLocalization.mk + def CategoryTheory.AreEqualizedByLocalization + theorem CategoryTheory.areEqualizedByLocalization_iff Modified Mathlib/CategoryTheory/MorphismProperty.lean + theorem CategoryTheory.MorphismProperty.ext Modified Mathlib/CategoryTheory/Preadditive/InjectiveResolution.lean Modified Mathlib/CategoryTheory/Preadditive/ProjectiveResolution.lean Modified Mathlib/CategoryTheory/Quotient.lean + theorem CategoryTheory.Quotient.lift_unique' 2024-02-09 00:04:31 f7a7fe0 chore: move ProofWidgets to v0.0.28 (#10364) This should resolve an issue with errors about the ProofWidgets lakefile that users have been experiencing since `v4.6.0-rc1`. See [zulip](https://leanprover.zulipchat.com/#narrow/stream/270676-lean4/topic/Invalid.20lake.20configuration/near/419519707). ESTIMATED CHANGES Modified lake-manifest.json Modified lakefile.lean 2024-02-08 22:44:56 7bb4239 feat(NormedSpace): Move toSpanNonzeroSingleton to new file and add LinearIsometryEquiv (#10118) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Analysis/NormedSpace/ContinuousLinearMap.lean - theorem ContinuousLinearEquiv.coe_toSpanNonzeroSingleton_symm - theorem ContinuousLinearEquiv.coord_self - theorem ContinuousLinearEquiv.coord_toSpanNonzeroSingleton - theorem ContinuousLinearEquiv.toSpanNonzeroSingleton_coord - theorem ContinuousLinearEquiv.toSpanNonzeroSingleton_homothety - theorem ContinuousLinearMap.toSpanSingleton_homothety Modified Mathlib/Analysis/NormedSpace/OperatorNorm.lean Added Mathlib/Analysis/NormedSpace/Span.lean + theorem ContinuousLinearEquiv.coe_toSpanNonzeroSingleton_symm + theorem ContinuousLinearEquiv.coord_self + theorem ContinuousLinearEquiv.coord_toSpanNonzeroSingleton + theorem ContinuousLinearEquiv.toSpanNonzeroSingleton_coord + theorem LinearEquiv.toSpanNonzeroSingleton_homothety + theorem LinearIsometryEquiv.toSpanUnitSingleton_apply + theorem LinearMap.toSpanSingleton_homothety Modified Mathlib/Data/IsROrC/Basic.lean Modified Mathlib/LinearAlgebra/Span.lean + theorem LinearEquiv.toSpanNonzeroSingleton_apply 2024-02-08 21:54:00 bdeb5d9 feat: Characterization of CocompactMap in terms of norms (#10182) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/Normed/Group/CocompactMap.lean + theorem CocompactMapClass.norm_le + theorem ContinuousMapClass.toCocompactMapClass_of_norm + theorem Filter.tendsto_cocompact_cocompact_of_norm 2024-02-08 20:41:42 7219556 feat(CategoryTheory/Localization): right resolutions (#10301) Given a morphism of localizers `Φ : LocalizerMorphism W₁ W₂` (i.e. `W₁` and `W₂` are morphism properties on categories `C₁` and `C₂`, and we have a functor`Φ.functor : C₁ ⥤ C₂` which sends morphisms in `W₁` to morphisms in `W₂`), we introduce the notion of right resolutions of objects in `C₂`: if `X₂ : C₂`, a right resolution consists of an object `X₁ : C₁` and a morphism `w : X₂ ⟶ Φ.functor.obj X₁` that is in `W₂`. Then, the typeclass `Φ.HasRightResolutions` holds when any `X₂ : C₂` has a right resolution. This shall be used in future works on derived functors. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Localization/Resolution.lean + def CategoryTheory.LocalizerMorphism.RightResolution.Hom.comp + def CategoryTheory.LocalizerMorphism.RightResolution.Hom.id + structure CategoryTheory.LocalizerMorphism.RightResolution.Hom + theorem CategoryTheory.LocalizerMorphism.RightResolution.comp_f + theorem CategoryTheory.LocalizerMorphism.RightResolution.hom_ext + theorem CategoryTheory.LocalizerMorphism.RightResolution.id_f + theorem CategoryTheory.LocalizerMorphism.RightResolution.mk_surjective + structure CategoryTheory.LocalizerMorphism.RightResolution + theorem CategoryTheory.LocalizerMorphism.essSurj_of_hasRightResolutions + theorem CategoryTheory.LocalizerMorphism.isIso_iff_of_hasRightResolutions Modified Mathlib/CategoryTheory/MorphismProperty.lean + theorem CategoryTheory.NatTrans.isIso_app_iff_of_iso 2024-02-08 20:07:16 7ab6771 feat(CategoryTheory/Galois): characterisation of connected finite `G`-sets (#10228) A finite `G`-set is connected if and only if the `G`-action is transitive. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/ConcreteCategory/Basic.lean + theorem CategoryTheory.ConcreteCategory.isIso_iff_bijective Modified Mathlib/CategoryTheory/FintypeCat.lean Modified Mathlib/CategoryTheory/Galois/Basic.lean + theorem CategoryTheory.PreGaloisCategory.not_initial_iff_fiber_nonempty Modified Mathlib/CategoryTheory/Galois/Examples.lean + theorem CategoryTheory.FintypeCat.Action.connected_iff_transitive + theorem CategoryTheory.FintypeCat.Action.connected_of_transitive + theorem CategoryTheory.FintypeCat.Action.pretransitive_of_connected Modified Mathlib/CategoryTheory/Limits/FintypeCat.lean Modified Mathlib/RepresentationTheory/Action/Concrete.lean 2024-02-08 20:07:15 5e76063 doc: separable closure of F in E (#9958) Change the expression "separable closure of `E / F`" to "separable closure of `F` in `E`", which IMO is closer to everyday usage. I think we should do the same for "perfect closure" in #9488. Also remove the use of some parenthesized adjectives: IMO "(some adjective)" signifies that "some adjective" will be assumed to be the default in subsequent text, making it unnecessary to mention "some adjective" every time. This applies to "(relative)" and "(infinite)" in the file SeparableClosure. Writing both "(infinite)" and "(finite)" signifies that both are assumed to be default, which is not our intention (I think we intend to make "infinite" the default). Therefore I kept the first "(infinite)" and removed all subsequent "(infinite)" and parentheses around "finite". In the file SeparableDegree, the infinite separable degree is not yet defined, so "finite" is the default instead: indeed the file omits "finite" almost everywhere, so I just remove the remaining three occurrences of "(finite)". ESTIMATED CHANGES Modified Mathlib/FieldTheory/SeparableClosure.lean Modified Mathlib/FieldTheory/SeparableDegree.lean 2024-02-08 19:09:05 28dae78 feat: change `Subgroup` and `Submonoid` induction principles to work with `induction` (#9861) Induction principles have to be fully dependent in order to work with the `induction` tactic. This is usually a good thing anyway, since the dependent version is often more convenient to use, and avoids the caller having to fumble with generalizing over an existential. This changes the following induction principles (and their additive versions): * `Submonoid.closure_induction_{left,right}` * `Subgroup.closure_induction_{left,right}` * `Subgroup.closure_induction''` (no submonoid version exists) Arguments to these lemmas have also been renamed to drop the `H`, as seems to be preferred for `induction` lemmas. ESTIMATED CHANGES Modified Mathlib/GroupTheory/Schreier.lean Modified Mathlib/GroupTheory/Subgroup/Pointwise.lean +/- theorem Subgroup.closure_induction'' +/- theorem Subgroup.closure_induction_left +/- theorem Subgroup.closure_induction_right Modified Mathlib/GroupTheory/Submonoid/Membership.lean +/- theorem Submonoid.closure_induction_left +/- theorem Submonoid.closure_induction_right 2024-02-08 17:51:34 fd0d24a feat(CategoryTheory/Galois): definition and characterisation of Galois objects (#10215) Defines Galois objects in a Galois category in a fibre functor independent way, also gives an equivalent characterisation in terms of a fibre functor. To allow for a definition that only depends on `C`, contrary to what was said earlier, we introduce a `GaloisCategory` typeclass extending `PreGaloisCategory` that additionally asserts the existence of a fibre functor. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/CategoryTheory/Endomorphism.lean + def CategoryTheory.Aut.toEnd Modified Mathlib/CategoryTheory/Galois/Basic.lean - theorem CategoryTheory.PreGaloisCategory.nonempty_fibre_of_connected Modified Mathlib/CategoryTheory/Galois/Examples.lean Added Mathlib/CategoryTheory/Galois/GaloisObjects.lean + theorem CategoryTheory.PreGaloisCategory.isGalois_iff_aux + theorem CategoryTheory.PreGaloisCategory.isGalois_iff_pretransitive Modified Mathlib/GroupTheory/GroupAction/Basic.lean + theorem MulAction.pretransitive_iff_subsingleton_quotient + theorem MulAction.pretransitive_iff_unique_quotient_of_nonempty 2024-02-08 16:52:48 a1375b1 docs: add `monicity` to the module docs (#10359) Adding docs is (almost) always good! In this case, it was prompted by [this Zulip discussion](https://leanprover.zulipchat.com/#narrow/stream/113488-general/topic/.22Missing.20Tactics.22.20list/near/420442132). ESTIMATED CHANGES Modified Mathlib/Tactic/ComputeDegree.lean 2024-02-08 16:52:47 faecefe feat(Algebra/UniformConvergence): drop unneeded assumptions (#10321) - Prove a version of `UniformOnFun.continuousSMul_induced_of_image_bounded` for `UniformFun`s. - Deal with `φ : H →ₗ[𝕜] (α → E)` and `ofFun ∘ φ`, not `φ : H →ₗ[𝕜] (α →ᵤ[𝔖] E)`. - Drop unneeded assumptions (nonempty, directed). ESTIMATED CHANGES Modified Mathlib/Analysis/LocallyConvex/Basic.lean + theorem Absorbs.eventually_nhds_zero + theorem absorbs_iff_eventually_nhdsWithin_zero Modified Mathlib/Topology/Algebra/Module/StrongTopology.lean Modified Mathlib/Topology/Algebra/UniformConvergence.lean + theorem UniformFun.continuousSMul_induced_of_range_bounded +/- theorem UniformOnFun.continuousSMul_induced_of_image_bounded +/- theorem UniformOnFun.continuousSMul_submodule_of_image_bounded Modified Mathlib/Topology/Order.lean +/- theorem induced_compose 2024-02-08 16:52:47 511f7e7 feat(UniformConvergenceTopology): add `UniformOnFun.continuous_rng_iff` (#10317) ESTIMATED CHANGES Modified Mathlib/Topology/UniformSpace/UniformConvergenceTopology.lean 2024-02-08 16:52:46 1f7bdd4 feat(MeasureTheory): integral_comp for LinearIsometryEquiv (#10105) Composition with a LinearIsometryEquiv on a finite dimensional real Hilbert space preserves integrals. ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Measure/Haar/InnerProductSpace.lean + theorem LinearIsometryEquiv.coe_toMeasureEquiv + theorem LinearIsometryEquiv.measurePreserving + def LinearIsometryEquiv.toMeasureEquiv + theorem LinearIsometryEquiv.toMeasureEquiv_symm Modified Mathlib/MeasureTheory/Measure/Haar/NormedSpace.lean + theorem MeasureTheory.integrable_comp + theorem MeasureTheory.integral_comp 2024-02-08 16:52:45 00c3cd4 feat(CategoryTheory): prerequisites for the existence of finite products in localized categories (#9702) This PR contains various prerequisites in order to show that under suitable assumptions, a localized category of a category that has finite products also has finite products: * the equivalence of categories `(J → C) ≌ (Discrete J ⥤ C)` * more API for the existence of limits as a consequence of a right adjoint to the constant functor `C ⥤ (J ⥤ C)`. * the typeclass `MorphismProperty.IsStableUnderFiniteProducts` ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Adjunction/Basic.lean +/- theorem CategoryTheory.Adjunction.right_triangle_components Modified Mathlib/CategoryTheory/Adjunction/FullyFaithful.lean Modified Mathlib/CategoryTheory/Closed/Monoidal.lean Modified Mathlib/CategoryTheory/DiscreteCategory.lean + def CategoryTheory.piEquivalenceFunctorDiscrete Modified Mathlib/CategoryTheory/Functor/Const.lean + def CategoryTheory.Functor.compConstIso Modified Mathlib/CategoryTheory/Limits/HasLimits.lean + def CategoryTheory.Limits.isLimitConeOfAdj Modified Mathlib/CategoryTheory/Limits/Shapes/Products.lean + def CategoryTheory.Limits.Pi.cone + def CategoryTheory.Limits.Pi.isoLimit + theorem CategoryTheory.Limits.Pi.isoLimit_hom_π + theorem CategoryTheory.Limits.Pi.isoLimit_inv_π + def CategoryTheory.Limits.productIsProduct' Modified Mathlib/CategoryTheory/Limits/Shapes/Reflexive.lean Modified Mathlib/CategoryTheory/Limits/VanKampen.lean Modified Mathlib/CategoryTheory/MorphismProperty.lean + theorem CategoryTheory.MorphismProperty.IsStableUnderLimitsOfShape.lim_map + def CategoryTheory.MorphismProperty.IsStableUnderLimitsOfShape + theorem CategoryTheory.MorphismProperty.IsStableUnderProductsOfShape.mk + def CategoryTheory.MorphismProperty.functorCategory + theorem CategoryTheory.MorphismProperty.isStableUnderProductsOfShape_of_isStableUnderFiniteProducts 2024-02-08 16:52:44 b6771e1 feat(Algebra/Homology): signs for the construction of the total complex (#9335) This PR creates a new file `Algebra.Homology.ComplexShapeSigns` which deals with signs conventions for the definition of total complexes of bicomplexes, the extension of bifunctors to complexes, the tensor product, etc. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Homology/ComplexShapeSigns.lean + theorem ComplexShape.add_rel + theorem ComplexShape.next_add' + theorem ComplexShape.next_add + theorem ComplexShape.next_π₁ + theorem ComplexShape.next_π₂ + theorem ComplexShape.rel_add + theorem ComplexShape.rel_π₁ + theorem ComplexShape.rel_π₂ + theorem ComplexShape.ε_add + theorem ComplexShape.ε_down_ℕ + theorem ComplexShape.ε_succ + theorem ComplexShape.ε_up_ℤ + theorem ComplexShape.ε_zero + theorem ComplexShape.ε₂_ε₁ 2024-02-08 14:48:18 1c01109 feat: change Type to Sort in `Algebra/Classes`, fix some priorities (#10354) ESTIMATED CHANGES Modified Mathlib/Data/Nat/Cast/Defs.lean Modified Mathlib/Init/Algebra/Classes.lean +/- theorem eq_of_eqv_lt +/- theorem eq_of_incomp +/- theorem eqv_lt_iff_eq +/- theorem incomp_iff_eq +/- theorem isStrictWeakOrder_of_isTotalPreorder +/- theorem lt_of_incomp_of_lt +/- theorem lt_of_lt_of_incomp +/- theorem not_lt_of_lt Modified Mathlib/Init/ZeroOne.lean Modified Mathlib/Logic/Function/Basic.lean +/- theorem Function.Injective.beq_eq 2024-02-08 14:48:17 a2a2298 feat(Algebra/Homology/HomotopyCategory): definition of the distinguished triangles (#9614) This PR defines the triangles which shall be the distinguished triangles for the (pre)triangulated structure on the homotopy category of cochain complexes in an additive category. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Homology/HomotopyCategory/Pretriangulated.lean + theorem CochainComplex.mappingCone.inl_v_triangle_mor₃_f + theorem CochainComplex.mappingCone.inr_f_triangle_mor₃_f + theorem CochainComplex.mappingCone.inr_triangleδ + theorem CochainComplex.mappingCone.map_comp + theorem CochainComplex.mappingCone.map_eq_mapOfHomotopy + theorem CochainComplex.mappingCone.map_id + theorem CochainComplex.mappingCone.triangleMapOfHomotopy_comm₂ + theorem CochainComplex.mappingCone.triangleMapOfHomotopy_comm₃ 2024-02-08 13:29:02 12f566f feat: Add SurjOn.image_preimage (#10342) ESTIMATED CHANGES Modified Mathlib/Data/Set/Function.lean + theorem Set.SurjOn.image_preimage 2024-02-08 13:29:01 3939e04 feat(Analysis/Convex): lemmas about low-dimensional `stdSimplex`es (#10325) Forward-port of leanprover-community/mathlib#19101 Motivated by https://github.com/Shamrock-Frost/BrouwerFixedPoint ESTIMATED CHANGES Modified Mathlib/Analysis/Convex/Basic.lean +/- theorem ite_eq_mem_stdSimplex + theorem segment_single_subset_stdSimplex + theorem single_mem_stdSimplex + def stdSimplexEquivIcc + theorem stdSimplex_fin_two + theorem stdSimplex_of_isEmpty_index + theorem stdSimplex_of_subsingleton + theorem stdSimplex_unique Modified Mathlib/Analysis/Convex/Topology.lean + def stdSimplexHomeomorphUnitInterval 2024-02-08 13:29:00 890dba7 chore: tidy various files (#10311) ESTIMATED CHANGES Modified Mathlib/Algebra/Associated.lean Modified Mathlib/Algebra/GroupPower/Basic.lean Modified Mathlib/Algebra/Module/Submodule/Pointwise.lean - theorem Submodule.mem_set_smul(x + theorem Submodule.mem_set_smul Modified Mathlib/AlgebraicTopology/SimplexCategory.lean Modified Mathlib/Analysis/Calculus/FDeriv/Analytic.lean Modified Mathlib/Analysis/Complex/TaylorSeries.lean Modified Mathlib/Analysis/Fourier/FourierTransformDeriv.lean Modified Mathlib/Analysis/Normed/Group/Completeness.lean Modified Mathlib/Analysis/SpecialFunctions/Pow/Real.lean Modified Mathlib/Computability/TuringMachine.lean Modified Mathlib/Data/Fin/Basic.lean +/- theorem Fin.castSucc_lt_succ_iff +/- theorem Fin.pred_one' +/- theorem Fin.succ_le_castSucc_iff Modified Mathlib/Data/Fin/Tuple/Basic.lean Modified Mathlib/Data/Finset/Pointwise.lean Modified Mathlib/Data/Nat/Cast/Basic.lean Modified Mathlib/Data/Polynomial/Derivative.lean Modified Mathlib/FieldTheory/SeparableDegree.lean Modified Mathlib/Geometry/Manifold/Algebra/LieGroup.lean Modified Mathlib/Geometry/Manifold/IntegralCurve.lean Modified Mathlib/LinearAlgebra/Basis.lean Modified Mathlib/MeasureTheory/Covering/VitaliFamily.lean Modified Mathlib/NumberTheory/LegendreSymbol/MulCharacter.lean Modified Mathlib/NumberTheory/NumberField/Embeddings.lean Modified Mathlib/Order/RelSeries.lean Modified Mathlib/Probability/Distributions/Geometric.lean +/- def ProbabilityTheory.geometricMeasure +/- def ProbabilityTheory.geometricPMF +/- theorem ProbabilityTheory.geometricPMFRealSum +/- theorem ProbabilityTheory.geometricPMFReal_nonneg +/- theorem ProbabilityTheory.isProbabilityMeasureGeometric +/- theorem ProbabilityTheory.stronglyMeasurable_geometricPMFReal Modified Mathlib/RingTheory/Ideal/MinimalPrime.lean +/- def minimalPrimes +/- theorem minimalPrimes_eq_minimals Modified Mathlib/SetTheory/Cardinal/Basic.lean Modified Mathlib/Topology/Algebra/InfiniteSum/Basic.lean Modified Mathlib/Topology/Constructions.lean Modified Mathlib/Topology/MetricSpace/Kuratowski.lean Modified Mathlib/Topology/UniformSpace/UniformEmbedding.lean 2024-02-08 13:28:59 71b03a2 chore(CountableDenseLinearOrder): `Encodable` -> `Countable` (#10308) ESTIMATED CHANGES Modified Mathlib/Order/CountableDenseLinearOrder.lean +/- theorem Order.embedding_from_countable_to_dense +/- theorem Order.iso_of_countable_dense 2024-02-08 13:28:58 79c11a0 fix: more accurate docstring (#9919) The statement of a TODO in `CategoryTheory.Abelian.Refinements` is fixed. Contrary to what was suggested, arguing "up to refinements" in abelian categories corresponds to arguing to a "refinements" topology on abelian categories, rather than the canonical topology. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Abelian/Refinements.lean 2024-02-08 12:19:53 dbe43ae feat: lower priority in Init/Order/Defs (#10357) ESTIMATED CHANGES Modified Mathlib/Init/Order/Defs.lean 2024-02-08 10:24:49 262ef85 chore: nlinarith bug caused by exposing loose bvars (#10353) Certainly better fixes to the panicking problem here are possible, by simply not traversing into places that would have loose bvars. However I'd like to get this patched quickly, so anyone wanting to make such a change can please do it in a follow up PR! :-) ESTIMATED CHANGES Modified Mathlib/Tactic/Linarith/Preprocessing.lean Modified test/linarith.lean 2024-02-08 10:24:48 4656d54 chore: remove unnecessary `Mathlib.Meta.Positivity` namespacing (#10343) ESTIMATED CHANGES Modified Mathlib/Analysis/SpecialFunctions/Gamma/Basic.lean Modified Mathlib/Analysis/SpecialFunctions/Pow/Real.lean +/- def Mathlib.Meta.Positivity.evalRpow +/- def Mathlib.Meta.Positivity.evalRpowZero Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Basic.lean +/- def Mathlib.Meta.Positivity.evalRealPi Modified Mathlib/Combinatorics/SimpleGraph/Regularity/Bound.lean + def Mathlib.Meta.Positivity.evalBound + def Mathlib.Meta.Positivity.evalInitialBound - def Tactic.evalBound - def Tactic.evalInitialBound 2024-02-08 10:24:47 75ae8cb chore(NormedSpace/FiniteDimension): reuse a proof about groups (#10313) Reuse `HasCompactSupport.eq_zero_or_locallyCompactSpace_of_addGroup` in the proof of `HasCompactSupport.eq_zero_or_finiteDimensional`. ESTIMATED CHANGES Modified Mathlib/Analysis/NormedSpace/FiniteDimension.lean + theorem HasCompactSupport.eq_zero_or_finiteDimensional 2024-02-08 09:11:42 90a2e14 Feat(Logic/Nonempty): Add a non-dependent version of `Nonempty.forall` for better unification (#10347) Add a non-dependent version of `Nonempty.forall` for better unification ESTIMATED CHANGES Modified Mathlib/Logic/Nonempty.lean + theorem Nonempty.imp 2024-02-08 09:11:41 d57d0cd Deprecate allowing auto-replacement (#10302) Following [these](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/Thank.20you.20for.20the.20deprecation.20warnings!/near/420078161) [Zulip](https://leanprover.zulipchat.com/#narrow/stream/270676-lean4/topic/machineApplicableDeprecated.20tag.20attribute/near/397630551) discussions, I realised that my deprecation script produced a deprecation syntax that did not allow for auto-replacement in Sébastien's #10185. This PR fixes the deprecation statements, allowing self-correction: 119 times I replaced `@[deprecated xxx] --> @[deprecated]`. ESTIMATED CHANGES Modified Mathlib/Analysis/Matrix.lean Modified Mathlib/Analysis/NormedSpace/FiniteDimension.lean Modified Mathlib/Analysis/NormedSpace/IsROrC.lean Modified Mathlib/Analysis/NormedSpace/Multilinear/Basic.lean Modified Mathlib/Analysis/NormedSpace/OperatorNorm.lean Modified Mathlib/Analysis/NormedSpace/Star/Matrix.lean Modified Mathlib/Analysis/NormedSpace/Star/Unitization.lean Modified Mathlib/MeasureTheory/Integral/SetToL1.lean 2024-02-08 08:31:06 a1d9afe feat(CategoryTheory/Functor): definition of Kan extensions (#10195) This PR introduces basic definitions for Kan extensions of functors. It prepares for future development of derived functors and a refactor of the file `CategoryTheory.Limits.KanExtension`. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Functor/KanExtension/Basic.lean + def CategoryTheory.Functor.LeftExtension.mk + def CategoryTheory.Functor.RightExtension.mk + theorem CategoryTheory.Functor.descOfIsLeftKanExtension_fac + theorem CategoryTheory.Functor.descOfIsLeftKanExtension_fac_app + theorem CategoryTheory.Functor.hom_ext_of_isLeftKanExtension + theorem CategoryTheory.Functor.hom_ext_of_isRightKanExtension + theorem CategoryTheory.Functor.isLeftKanExtension_iff_of_iso + theorem CategoryTheory.Functor.isLeftKanExtension_of_iso + theorem CategoryTheory.Functor.isRightKanExtension_iff_of_iso + theorem CategoryTheory.Functor.isRightKanExtension_of_iso + theorem CategoryTheory.Functor.liftOfIsRightKanExtension_fac + theorem CategoryTheory.Functor.liftOfIsRightKanExtension_fac_app Modified Mathlib/CategoryTheory/Monoidal/Mon_.lean Modified Mathlib/CategoryTheory/Whiskering.lean 2024-02-08 07:19:16 e4ddbbb feat: fix `decidableEq` and `decidableLT` fields in the `LinearOrder` instance on `Bool` (#10333) Currently, the fields are filled in by an automatic parameter, which does not match the canonical decidability instances on Bool, creating some diamonds down the road. ESTIMATED CHANGES Modified Mathlib/Data/Bool/Basic.lean 2024-02-08 06:06:16 62126e3 feat(Analysis/Distribution/SchwartzMap): projection to ZeroAtInfty and corresponding type class (#9987) Adds a characterization of ZeroAtInfty in terms of norms and uses one direction to show that every Schwartz function is zero at infinity. We also add a few lemmas that characterize elements of the `cocompact` filter in terms of norm estimates. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Analysis/Distribution/SchwartzSpace.lean + def SchwartzMap.toZeroAtInfty + def SchwartzMap.toZeroAtInftyCLM + theorem SchwartzMap.toZeroAtInftyCLM_apply + def SchwartzMap.toZeroAtInftyLM + theorem SchwartzMap.toZeroAtInftyLM_apply + theorem SchwartzMap.toZeroAtInfty_apply + theorem SchwartzMap.toZeroAtInfty_toBCF Added Mathlib/Analysis/Normed/Group/ZeroAtInfty.lean + theorem ZeroAtInftyContinuousMapClass.norm_le + theorem zero_at_infty_of_norm_le Modified Mathlib/Topology/MetricSpace/Bounded.lean + theorem Bornology.IsCobounded.closedBall_compl_subset + theorem Metric.closedBall_compl_subset_of_mem_cocompact + theorem Metric.isCobounded_iff_closedBall_compl_subset + theorem Metric.mem_cocompact_iff_closedBall_compl_subset + theorem Metric.mem_cocompact_of_closedBall_compl_subset 2024-02-08 05:11:39 922e827 chore(LinearAlgebra/QuadraticForm): fixups to #10097 (#10167) I didn't get a chance to review #10097 before it was merged; this contains some minor fixups. This removes `LinearMap.linMulLin`, as it can be recovered easily via `LinearMap.mul`. ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/Bilinear.lean + def LinearMap.restrictScalars₁₂ Modified Mathlib/LinearAlgebra/BilinearMap.lean - def LinearMap.linMulLin Modified Mathlib/LinearAlgebra/QuadraticForm/Basic.lean +/- def BilinForm.toQuadraticFormLinearMap +/- def LinearMap.toQuadraticForm +/- def QuadraticForm.weightedSumSquares 2024-02-08 04:11:07 2ae084b chore: bump Std (#10351) ESTIMATED CHANGES Modified lake-manifest.json 2024-02-07 22:43:18 8d817bb feat(Data/Fin/OrderHom): Factor out `succAbove` and `predAbove` from `Data.Fin.Basic`. (#10166) Move `succAbove` and `predAbove` to their own file, updating their documentation and adding an `OrderHom` instance for `predAbove`, `predAboveOrderHom`. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Data/Fin/Basic.lean - theorem Fin.castPred_succAbove - theorem Fin.castPred_succAbove_castPred - theorem Fin.castSucc_predAbove_castSucc - theorem Fin.castSucc_succAbove_castSucc - theorem Fin.exists_succAbove_eq - theorem Fin.exists_succAbove_eq_iff - theorem Fin.lt_succAbove_iff_le_castSucc - theorem Fin.lt_succAbove_iff_lt_castSucc - theorem Fin.ne_succAbove - theorem Fin.one_succAbove_one - theorem Fin.one_succAbove_succ - theorem Fin.one_succAbove_zero - def Fin.predAbove - theorem Fin.predAbove_castPred_of_le - theorem Fin.predAbove_castPred_of_lt - theorem Fin.predAbove_castPred_self - theorem Fin.predAbove_castSucc_of_le - theorem Fin.predAbove_castSucc_of_lt - theorem Fin.predAbove_castSucc_self - theorem Fin.predAbove_last_apply - theorem Fin.predAbove_last_castSucc - theorem Fin.predAbove_last_of_ne_last - theorem Fin.predAbove_left_monotone - theorem Fin.predAbove_of_castSucc_lt - theorem Fin.predAbove_of_le_castSucc - theorem Fin.predAbove_of_lt_succ - theorem Fin.predAbove_of_succ_le - theorem Fin.predAbove_pred_of_le - theorem Fin.predAbove_pred_of_lt - theorem Fin.predAbove_pred_self - theorem Fin.predAbove_rev_left - theorem Fin.predAbove_rev_right - theorem Fin.predAbove_right_last - theorem Fin.predAbove_right_monotone - theorem Fin.predAbove_right_zero - theorem Fin.predAbove_succAbove - theorem Fin.predAbove_succ_of_le - theorem Fin.predAbove_succ_of_lt - theorem Fin.predAbove_succ_self - theorem Fin.predAbove_zero - theorem Fin.predAbove_zero_of_ne_zero - theorem Fin.predAbove_zero_succ - theorem Fin.pred_succAbove - theorem Fin.pred_succAbove_pred - theorem Fin.range_succ - theorem Fin.range_succAbove - theorem Fin.rev_predAbove - theorem Fin.rev_succAbove - theorem Fin.strictMono_succAbove - def Fin.succAbove - def Fin.succAboveEmb - theorem Fin.succAbove_castPred_of_le - theorem Fin.succAbove_castPred_of_lt - theorem Fin.succAbove_castPred_self - theorem Fin.succAbove_castSucc_of_le - theorem Fin.succAbove_castSucc_of_lt - theorem Fin.succAbove_castSucc_self - theorem Fin.succAbove_eq_last_iff - theorem Fin.succAbove_eq_zero_iff - theorem Fin.succAbove_last - theorem Fin.succAbove_last_apply - theorem Fin.succAbove_le_succAbove_iff - theorem Fin.succAbove_left_inj - theorem Fin.succAbove_left_injective - theorem Fin.succAbove_lt_ge - theorem Fin.succAbove_lt_iff_castSucc_lt - theorem Fin.succAbove_lt_iff_succ_le - theorem Fin.succAbove_lt_succAbove_iff - theorem Fin.succAbove_ne - theorem Fin.succAbove_ne_last - theorem Fin.succAbove_ne_last_last - theorem Fin.succAbove_ne_zero - theorem Fin.succAbove_ne_zero_zero - theorem Fin.succAbove_of_castSucc_lt - theorem Fin.succAbove_of_le_castSucc - theorem Fin.succAbove_of_lt_succ - theorem Fin.succAbove_of_succ_le - theorem Fin.succAbove_pos - theorem Fin.succAbove_predAbove - theorem Fin.succAbove_pred_of_le - theorem Fin.succAbove_pred_of_lt - theorem Fin.succAbove_pred_self - theorem Fin.succAbove_rev_left - theorem Fin.succAbove_rev_right - theorem Fin.succAbove_right_inj - theorem Fin.succAbove_right_injective - theorem Fin.succAbove_succ_of_le - theorem Fin.succAbove_succ_of_lt - theorem Fin.succAbove_succ_self - theorem Fin.succAbove_zero - theorem Fin.succAbove_zero_apply - theorem Fin.succ_predAbove_succ - theorem Fin.succ_predAbove_zero - theorem Fin.succ_succAbove_one - theorem Fin.succ_succAbove_succ - theorem Fin.succ_succAbove_zero - theorem Fin.zero_succAbove Added Mathlib/Data/Fin/OrderHom.lean + theorem Fin.castPred_succAbove + theorem Fin.castPred_succAbove_castPred + theorem Fin.castSucc_predAbove_castSucc + theorem Fin.castSucc_succAbove_castSucc + theorem Fin.exists_succAbove_eq + theorem Fin.exists_succAbove_eq_iff + theorem Fin.lt_succAbove_iff_le_castSucc + theorem Fin.lt_succAbove_iff_lt_castSucc + theorem Fin.ne_succAbove + theorem Fin.one_succAbove_one + theorem Fin.one_succAbove_succ + theorem Fin.one_succAbove_zero + def Fin.predAbove + def Fin.predAboveOrderHom + theorem Fin.predAbove_castPred_of_le + theorem Fin.predAbove_castPred_of_lt + theorem Fin.predAbove_castPred_self + theorem Fin.predAbove_castSucc_of_le + theorem Fin.predAbove_castSucc_of_lt + theorem Fin.predAbove_castSucc_self + theorem Fin.predAbove_last_apply + theorem Fin.predAbove_last_castSucc + theorem Fin.predAbove_last_of_ne_last + theorem Fin.predAbove_left_monotone + theorem Fin.predAbove_of_castSucc_lt + theorem Fin.predAbove_of_le_castSucc + theorem Fin.predAbove_of_lt_succ + theorem Fin.predAbove_of_succ_le + theorem Fin.predAbove_pred_of_le + theorem Fin.predAbove_pred_of_lt + theorem Fin.predAbove_pred_self + theorem Fin.predAbove_rev_left + theorem Fin.predAbove_rev_right + theorem Fin.predAbove_right_last + theorem Fin.predAbove_right_monotone + theorem Fin.predAbove_right_zero + theorem Fin.predAbove_succAbove + theorem Fin.predAbove_succ_of_le + theorem Fin.predAbove_succ_of_lt + theorem Fin.predAbove_succ_self + theorem Fin.predAbove_zero + theorem Fin.predAbove_zero_of_ne_zero + theorem Fin.predAbove_zero_succ + theorem Fin.pred_succAbove + theorem Fin.pred_succAbove_pred + theorem Fin.range_succ + theorem Fin.range_succAbove + theorem Fin.rev_predAbove + theorem Fin.rev_succAbove + theorem Fin.strictMono_succAbove + def Fin.succAbove + def Fin.succAboveEmb + theorem Fin.succAbove_castPred_of_le + theorem Fin.succAbove_castPred_of_lt + theorem Fin.succAbove_castPred_self + theorem Fin.succAbove_castSucc_of_le + theorem Fin.succAbove_castSucc_of_lt + theorem Fin.succAbove_castSucc_self + theorem Fin.succAbove_eq_last_iff + theorem Fin.succAbove_eq_zero_iff + theorem Fin.succAbove_last + theorem Fin.succAbove_last_apply + theorem Fin.succAbove_le_succAbove_iff + theorem Fin.succAbove_left_inj + theorem Fin.succAbove_left_injective + theorem Fin.succAbove_lt_ge + theorem Fin.succAbove_lt_iff_castSucc_lt + theorem Fin.succAbove_lt_iff_succ_le + theorem Fin.succAbove_lt_succAbove_iff + theorem Fin.succAbove_ne + theorem Fin.succAbove_ne_last + theorem Fin.succAbove_ne_last_last + theorem Fin.succAbove_ne_zero + theorem Fin.succAbove_ne_zero_zero + theorem Fin.succAbove_of_castSucc_lt + theorem Fin.succAbove_of_le_castSucc + theorem Fin.succAbove_of_lt_succ + theorem Fin.succAbove_of_succ_le + theorem Fin.succAbove_pos + theorem Fin.succAbove_predAbove + theorem Fin.succAbove_pred_of_le + theorem Fin.succAbove_pred_of_lt + theorem Fin.succAbove_pred_self + theorem Fin.succAbove_rev_left + theorem Fin.succAbove_rev_right + theorem Fin.succAbove_right_inj + theorem Fin.succAbove_right_injective + theorem Fin.succAbove_succ_of_le + theorem Fin.succAbove_succ_of_lt + theorem Fin.succAbove_succ_self + theorem Fin.succAbove_zero + theorem Fin.succAbove_zero_apply + theorem Fin.succ_predAbove_succ + theorem Fin.succ_predAbove_zero + theorem Fin.succ_succAbove_one + theorem Fin.succ_succAbove_succ + theorem Fin.succ_succAbove_zero + theorem Fin.zero_succAbove Modified Mathlib/Data/Fin/Tuple/Basic.lean Modified Mathlib/Data/Fintype/Basic.lean 2024-02-07 22:10:20 031453e feat: Proof that `IntermediateField.lift` is injective (#10031) Add `map_injective` and `lift_injective` for `IntermediateField`. Also minize the imports ESTIMATED CHANGES Modified Mathlib/FieldTheory/IntermediateField.lean + theorem IntermediateField.lift_injective + theorem IntermediateField.map_injective 2024-02-07 19:45:29 9b7f99b doc: fix typos (#10334) ESTIMATED CHANGES Modified Mathlib/Analysis/Analytic/CPolynomial.lean Modified Mathlib/Analysis/Asymptotics/SpecificAsymptotics.lean Modified Mathlib/Analysis/Calculus/LineDeriv/Basic.lean Modified Mathlib/Computability/AkraBazzi/AkraBazzi.lean Modified Mathlib/Topology/Bornology/Basic.lean 2024-02-07 19:45:29 b4f55ab chore(Topology/Algebra): add missing `#align`s (#10307) ESTIMATED CHANGES Modified Mathlib/Topology/Algebra/Constructions.lean 2024-02-07 19:45:28 92e0962 chore(Data/Set/Lattice): Deduplicate namespace Set. from CABA instance (#10263) Dedup Set.Set.completeBooleanAlgebra to Set.completeBooleanAlgebra ESTIMATED CHANGES Modified Mathlib/Data/Set/Lattice.lean 2024-02-07 19:45:27 9eec23d feat: Generalize results of `CanonicalEmbedding` to fractional ideals (#9837) The main results of `NumberTheory.NumberField.CanonicalEmbedding`, that is `exists_ne_zero_mem_ringOfIntegers_lt` and `exists_ne_zero_mem_ringOfIntegers_of_norm_le` about the existence of algebraic integers satisfying special properties, are generalized from the ring of integers to fractional ideals. ESTIMATED CHANGES Modified Mathlib/Algebra/Module/Zlattice.lean Modified Mathlib/NumberTheory/NumberField/CanonicalEmbedding.lean + theorem NumberField.mixedEmbedding.det_basisOfFractionalIdeal_eq_norm + theorem NumberField.mixedEmbedding.exists_ne_zero_mem_ideal_lt + theorem NumberField.mixedEmbedding.exists_ne_zero_mem_ideal_of_norm_le +/- theorem NumberField.mixedEmbedding.exists_ne_zero_mem_ringOfIntegers_lt + def NumberField.mixedEmbedding.fractionalIdealLatticeBasis + theorem NumberField.mixedEmbedding.fractionalIdealLatticeBasis_apply + def NumberField.mixedEmbedding.latticeBasis +/- theorem NumberField.mixedEmbedding.latticeBasis_apply + theorem NumberField.mixedEmbedding.latticeBasis_repr_apply + theorem NumberField.mixedEmbedding.mem_rat_span_latticeBasis + theorem NumberField.mixedEmbedding.mem_span_fractionalIdealLatticeBasis +/- theorem NumberField.mixedEmbedding.mem_span_latticeBasis +/- theorem NumberField.mixedEmbedding.minkowskiBound_lt_top +/- theorem NumberField.mixedEmbedding.minkowskiBound_pos + theorem NumberField.mixedEmbedding.volume_fundamentalDomain_fractionalIdealLatticeBasis Modified Mathlib/NumberTheory/NumberField/Discriminant.lean + theorem NumberField.abs_discr_gt_two - theorem NumberField.discr_gt_one + theorem NumberField.exists_ne_zero_mem_ideal_of_norm_le_mul_sqrt_discr Modified Mathlib/NumberTheory/NumberField/Units.lean 2024-02-07 19:19:40 c458927 chore: shake some imports (#10341) ESTIMATED CHANGES Modified Mathlib/Analysis/Calculus/SmoothSeries.lean Modified Mathlib/Analysis/NormedSpace/Banach.lean Modified Mathlib/Analysis/NormedSpace/ContinuousAffineMap.lean Modified Mathlib/Analysis/NormedSpace/FiniteDimension.lean Modified Mathlib/Analysis/Seminorm.lean Modified Mathlib/Geometry/Euclidean/Angle/Unoriented/Affine.lean Modified Mathlib/Geometry/Euclidean/Inversion/Basic.lean Modified Mathlib/Geometry/Euclidean/PerpBisector.lean Modified Mathlib/MeasureTheory/Integral/BoundedContinuousFunction.lean 2024-02-07 17:07:43 e4d4665 feat(GroupTheory/SpecificGroups/Coxeter) : Add Coxeter Systems and Coxeter Groups (#8223) Coxeter Systems and Coxeter Groups ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/GroupTheory/SpecificGroups/Coxeter.lean + def CoxeterGroup.Relations.ofMatrix + def CoxeterGroup.Relations.toSet + def CoxeterGroup.of + theorem CoxeterGroup.of_apply + theorem CoxeterMatrix.AₙIsCoxeter + theorem CoxeterMatrix.BₙIsCoxeter + theorem CoxeterMatrix.DₙIsCoxeter + def CoxeterMatrix.E₆ + theorem CoxeterMatrix.E₆IsCoxeter + def CoxeterMatrix.E₇ + theorem CoxeterMatrix.E₇IsCoxeter + def CoxeterMatrix.E₈ + theorem CoxeterMatrix.E₈IsCoxeter + def CoxeterMatrix.F₄ + theorem CoxeterMatrix.F₄IsCoxeter + def CoxeterMatrix.G₂ + theorem CoxeterMatrix.G₂IsCoxeter + def CoxeterMatrix.H₃ + theorem CoxeterMatrix.H₃IsCoxeter + def CoxeterMatrix.H₄ + theorem CoxeterMatrix.H₄IsCoxeter + theorem CoxeterMatrix.I₂ₘIsCoxeter + def CoxeterSystem.equivCoxeterGroup + theorem CoxeterSystem.equivCoxeterGroup_apply_of + theorem CoxeterSystem.equivCoxeterGroup_symm_apply_of + theorem CoxeterSystem.ext' + theorem CoxeterSystem.ext + theorem CoxeterSystem.map_apply + theorem CoxeterSystem.map_relations_eq_reindex_relations + theorem CoxeterSystem.mulEquiv_apply_coe + def CoxeterSystem.ofCoxeterGroup + theorem CoxeterSystem.ofCoxeterGroup_apply + theorem CoxeterSystem.reindex_apply + structure CoxeterSystem + def Matrix.CoxeterGroup + structure Matrix.IsCoxeter 2024-02-07 15:18:19 ba9f2e5 chore: bump dependencies (#10315) ESTIMATED CHANGES Modified Archive/Imo/Imo1981Q3.lean Modified Mathlib/Combinatorics/Additive/Behrend.lean Modified Mathlib/Combinatorics/Quiver/Arborescence.lean Modified Mathlib/Combinatorics/SetFamily/LYM.lean Modified Mathlib/Combinatorics/SimpleGraph/Regularity/Equitabilise.lean Modified Mathlib/Computability/Ackermann.lean Modified Mathlib/Computability/PartrecCode.lean Modified Mathlib/Data/List/Basic.lean Modified Mathlib/Data/List/Intervals.lean Modified Mathlib/Data/List/NatAntidiagonal.lean Modified Mathlib/Data/Nat/Cast/Order.lean Modified Mathlib/Data/Nat/Choose/Factorization.lean Modified Mathlib/Data/Nat/Defs.lean +/- theorem Nat.lt_add_one_iff +/- theorem Nat.lt_iff_le_pred +/- theorem Nat.lt_one_add_iff - theorem Nat.lt_succ_iff - theorem Nat.lt_succ_iff_lt_or_eq Modified Mathlib/Data/Nat/Factorial/Basic.lean Modified Mathlib/Data/Nat/Factorization/Basic.lean Modified Mathlib/Data/Nat/Fib/Zeckendorf.lean Modified Mathlib/Data/Nat/Interval.lean Modified Mathlib/Data/Nat/Lattice.lean Modified Mathlib/Data/Nat/Log.lean Modified Mathlib/Data/Nat/Multiplicity.lean Modified Mathlib/Data/Nat/Nth.lean Modified Mathlib/Data/Nat/Order/Basic.lean Modified Mathlib/Data/Nat/Order/Lemmas.lean Modified Mathlib/Data/Nat/Prime.lean Modified Mathlib/Data/Nat/Sqrt.lean Modified Mathlib/Data/Nat/Squarefree.lean Modified Mathlib/Data/PNat/Basic.lean Modified Mathlib/Dynamics/PeriodicPts.lean Modified Mathlib/NumberTheory/Bertrand.lean Modified Mathlib/NumberTheory/Divisors.lean Modified Mathlib/NumberTheory/LegendreSymbol/GaussEisensteinLemmas.lean Modified Mathlib/NumberTheory/SmoothNumbers.lean Modified Mathlib/RingTheory/PowerSeries/Basic.lean Modified lake-manifest.json 2024-02-07 15:18:18 8857f4e feat: add proof of Jordan-Chevalley-Dunford decomposition (#10295) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Group/Units.lean + theorem isUnit_of_mul_eq_one_right Modified Mathlib/Data/Polynomial/AlgebraMap.lean + theorem Polynomial.aeval_mem_adjoin_singleton + theorem Polynomial.coe_aeval_mk_apply Added Mathlib/LinearAlgebra/JordanChevalley.lean + theorem Module.End.exists_isNilpotent_isSemisimple + theorem Module.End.exists_isNilpotent_isSemisimple_of_separable_of_dvd_pow Modified docs/undergrad.yaml 2024-02-07 14:08:14 9ac3278 feat(RingTheory/MvPolynomial): funext for homogeneous polynomials (#10300) ESTIMATED CHANGES Modified Mathlib/RingTheory/MvPolynomial/Homogeneous.lean + theorem MvPolynomial.IsHomogeneous.eq_zero_of_forall_eval_eq_zero + theorem MvPolynomial.IsHomogeneous.eq_zero_of_forall_eval_eq_zero_of_le_card + theorem MvPolynomial.IsHomogeneous.exists_eval_ne_zero_of_coeff_finSuccEquiv_ne_zero_aux + theorem MvPolynomial.IsHomogeneous.exists_eval_ne_zero_of_totalDegree_le_card_aux + theorem MvPolynomial.IsHomogeneous.finSuccEquiv_coeff_isHomogeneous + theorem MvPolynomial.IsHomogeneous.funext + theorem MvPolynomial.IsHomogeneous.funext_of_le_card + theorem MvPolynomial.IsHomogeneous.neg + theorem MvPolynomial.IsHomogeneous.sub 2024-02-07 13:39:53 7b93341 chore(NewtonIdentities): drop `DecidableEq` assumptions (#10324) ESTIMATED CHANGES Modified Mathlib/RingTheory/MvPolynomial/NewtonIdentities.lean 2024-02-07 13:12:33 4daa227 feat(MeasureTheory): product of bases and Basis.addHaar commute (#10115) ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Measure/Haar/OfBasis.lean + theorem Basis.prod_addHaar + theorem Basis.prod_parallelepiped 2024-02-07 23:50:52+11:00 bfb91cd revert "shake" This reverts commit b90d21b12feea09dc6e6c2aa01d613a4aa291235. ESTIMATED CHANGES Modified Mathlib/Combinatorics/Quiver/Arborescence.lean Modified lake-manifest.json 2024-02-07 23:50:02+11:00 b90d21b shake ESTIMATED CHANGES Modified Mathlib/Combinatorics/Quiver/Arborescence.lean Modified lake-manifest.json 2024-02-07 23:39:54+11:00 b763c21 Revert "chore: adaptation PR for leanprover/lean4#3258 (fixing cache isssue in split tactic) (#10328)" This reverts commit 99a46af439dfceb9052b4f2a667364a31207d035. ESTIMATED CHANGES Modified Mathlib/Tactic/SplitIfs.lean Modified lakefile.lean Modified lean-toolchain 2024-02-07 23:38:28+11:00 99a46af chore: adaptation PR for leanprover/lean4#3258 (fixing cache isssue in split tactic) (#10328) Adaptation PR for leanprover/lean4#3258, which fixes leanprover/lean4#3229. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) --------- ESTIMATED CHANGES Modified Mathlib/Tactic/SplitIfs.lean Modified lakefile.lean Modified lean-toolchain 2024-02-07 10:11:14 3eb9163 refactor: move natural isomorphisms involving inverses of equivalences (#10278) - Move all results from `CategoryTheory/Functor/InvIsos.lean` to `CategoryTheory/Equivalence.lean` and delete the former file - Replace use of `eqToIso (Functor.comp_id G)` with `G.rightUnitor` - Move into `Iso` namespace to enable dot notation - Add analogous results stated in terms of `Equivalence` instead of `IsEquivalence` ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/CategoryTheory/Closed/Monoidal.lean Modified Mathlib/CategoryTheory/Equivalence.lean + theorem CategoryTheory.Equivalence.isEquivalence_counitIso + theorem CategoryTheory.Equivalence.isEquivalence_unitIso + def CategoryTheory.Iso.compInvIso + def CategoryTheory.Iso.compInverseIso + def CategoryTheory.Iso.invCompIso + def CategoryTheory.Iso.inverseCompIso + def CategoryTheory.Iso.isoCompInv + def CategoryTheory.Iso.isoCompInverse + def CategoryTheory.Iso.isoInvComp + def CategoryTheory.Iso.isoInverseComp Deleted Mathlib/CategoryTheory/Functor/InvIsos.lean - def CategoryTheory.compInvIso - def CategoryTheory.invCompIso - def CategoryTheory.isoCompInv - def CategoryTheory.isoInvComp 2024-02-07 05:43:43 963467a chore(ClassNumber/AdmissibleAbsoluteValue): Fintype -> Finite (#10309) ESTIMATED CHANGES Modified Mathlib/NumberTheory/ClassNumber/AdmissibleAbsoluteValue.lean +/- theorem AbsoluteValue.IsAdmissible.exists_partition 2024-02-07 05:43:42 deb48fa chore: `Matrix.mulVec` and `Matrix.vecMul` get infix notation (#10297) Zulip discussion: https://leanprover.zulipchat.com/#narrow/stream/113488-general/topic/Notation.20for.20mul_vec.20and.20vec_mul ESTIMATED CHANGES Modified Archive/Wiedijk100Theorems/FriendshipGraphs.lean Modified Mathlib/Analysis/Matrix.lean +/- theorem Matrix.linfty_opNNNorm_mulVec +/- theorem Matrix.linfty_opNorm_mulVec Modified Mathlib/Analysis/NormedSpace/Star/Matrix.lean Modified Mathlib/Combinatorics/SimpleGraph/AdjMatrix.lean Modified Mathlib/Data/Matrix/Basic.lean +/- theorem Matrix.mulVec_neg +/- theorem Matrix.mulVec_one +/- theorem Matrix.mulVec_transpose +/- theorem Matrix.mulVec_zero +/- theorem Matrix.neg_mulVec +/- theorem Matrix.neg_vecMul +/- theorem Matrix.one_mulVec +/- theorem Matrix.vecMul_neg +/- theorem Matrix.vecMul_one +/- theorem Matrix.vecMul_transpose +/- theorem Matrix.vecMul_zero +/- theorem Matrix.vec_one_mul +/- theorem Matrix.zero_mulVec +/- theorem Matrix.zero_vecMul Modified Mathlib/Data/Matrix/Block.lean Modified Mathlib/Data/Matrix/Hadamard.lean Modified Mathlib/Data/Matrix/Notation.lean +/- theorem Matrix.empty_mulVec +/- theorem Matrix.empty_vecMul +/- theorem Matrix.mulVec_empty +/- theorem Matrix.vecMul_empty Modified Mathlib/Data/Matrix/Reflection.lean Modified Mathlib/Data/Matrix/RowCol.lean Modified Mathlib/LinearAlgebra/AffineSpace/Matrix.lean +/- theorem AffineBasis.toMatrix_vecMul_coords Modified Mathlib/LinearAlgebra/Matrix/Adjugate.lean +/- theorem Matrix.mulVec_cramer Modified Mathlib/LinearAlgebra/Matrix/Basis.lean Modified Mathlib/LinearAlgebra/Matrix/BilinearForm.lean Modified Mathlib/LinearAlgebra/Matrix/Charpoly/LinearMap.lean Modified Mathlib/LinearAlgebra/Matrix/Circulant.lean Modified Mathlib/LinearAlgebra/Matrix/DotProduct.lean Modified Mathlib/LinearAlgebra/Matrix/LDL.lean Modified Mathlib/LinearAlgebra/Matrix/Nondegenerate.lean Modified Mathlib/LinearAlgebra/Matrix/NonsingularInverse.lean Modified Mathlib/LinearAlgebra/Matrix/PosDef.lean Modified Mathlib/LinearAlgebra/Matrix/SchurComplement.lean Modified Mathlib/LinearAlgebra/Matrix/SesquilinearForm.lean Modified Mathlib/LinearAlgebra/Matrix/SpecialLinearGroup.lean Modified Mathlib/LinearAlgebra/Matrix/Spectrum.lean Modified Mathlib/LinearAlgebra/Matrix/ToLin.lean +/- theorem Matrix.toLin'_apply Modified Mathlib/LinearAlgebra/Matrix/ToLinearEquiv.lean Modified Mathlib/NumberTheory/ModularForms/EisensteinSeries/Basic.lean +/- def EisensteinSeries.gammaSetEquiv Modified Mathlib/NumberTheory/NumberField/CanonicalEmbedding.lean Modified Mathlib/RingTheory/Discriminant.lean Modified Mathlib/RingTheory/Trace.lean Modified Mathlib/Topology/Instances/Matrix.lean Modified test/matrix.lean 2024-02-07 04:38:13 2fe4a57 feat(Data/Fin/Basic): Rename and extend *_above and _below lemmas (#10163) Rename `succAbove_below`, `succAbove_above`, `predAbove_below` and `predAbove_Above` to more appropriate things, and vary and extend these results to allow for faster proofs elsewhere. ESTIMATED CHANGES Modified Mathlib/Algebra/BigOperators/Fin.lean Modified Mathlib/AlgebraicTopology/SimplexCategory.lean Modified Mathlib/Data/Fin/Basic.lean - theorem Fin.castLT_succAbove + theorem Fin.castPred_succAbove + theorem Fin.castSucc_ne_zero_of_lt + theorem Fin.castSucc_pred_add_one_eq + theorem Fin.exists_castSucc_eq_of_ne_last + theorem Fin.exists_succ_eq - theorem Fin.exists_succ_eq_iff + theorem Fin.exists_succ_eq_of_ne_zero + theorem Fin.le_rev_iff + theorem Fin.lt_rev_iff - theorem Fin.lt_succAbove_iff + theorem Fin.lt_succAbove_iff_le_castSucc + theorem Fin.lt_succAbove_iff_lt_castSucc - theorem Fin.predAbove_above - theorem Fin.predAbove_below + theorem Fin.predAbove_castPred_of_le + theorem Fin.predAbove_castPred_of_lt + theorem Fin.predAbove_castPred_self + theorem Fin.predAbove_castSucc_of_le + theorem Fin.predAbove_castSucc_of_lt + theorem Fin.predAbove_castSucc_self + theorem Fin.predAbove_of_castSucc_lt + theorem Fin.predAbove_of_le_castSucc + theorem Fin.predAbove_of_lt_succ + theorem Fin.predAbove_of_succ_le + theorem Fin.predAbove_pred_of_le + theorem Fin.predAbove_pred_of_lt + theorem Fin.predAbove_pred_self + theorem Fin.predAbove_rev_left + theorem Fin.predAbove_rev_right + theorem Fin.predAbove_right_zero + theorem Fin.predAbove_succ_of_le + theorem Fin.predAbove_succ_of_lt + theorem Fin.predAbove_succ_self +/- theorem Fin.predAbove_zero + theorem Fin.predAbove_zero_of_ne_zero + theorem Fin.predAbove_zero_succ +/- theorem Fin.pred_succAbove + theorem Fin.rev_le_iff + theorem Fin.rev_lt_iff - theorem Fin.succAbove_above - theorem Fin.succAbove_below - theorem Fin.succAbove_castLT + theorem Fin.succAbove_castPred_of_le + theorem Fin.succAbove_castPred_of_lt + theorem Fin.succAbove_castPred_self + theorem Fin.succAbove_castSucc_of_le + theorem Fin.succAbove_castSucc_of_lt + theorem Fin.succAbove_castSucc_self - theorem Fin.succAbove_lt_iff + theorem Fin.succAbove_lt_iff_castSucc_lt + theorem Fin.succAbove_lt_iff_succ_le + theorem Fin.succAbove_of_castSucc_lt + theorem Fin.succAbove_of_le_castSucc + theorem Fin.succAbove_of_lt_succ + theorem Fin.succAbove_of_succ_le - theorem Fin.succAbove_pred + theorem Fin.succAbove_pred_of_le + theorem Fin.succAbove_pred_of_lt + theorem Fin.succAbove_pred_self + theorem Fin.succAbove_rev_left + theorem Fin.succAbove_rev_right + theorem Fin.succAbove_succ_of_le + theorem Fin.succAbove_succ_of_lt + theorem Fin.succAbove_succ_self + theorem Fin.succ_castPred_eq_add_one + theorem Fin.succ_le_or_le_castSucc + theorem Fin.succ_ne_last_of_lt + theorem Fin.succ_predAbove_zero Modified Mathlib/Data/Fin/Tuple/Basic.lean Modified Mathlib/GroupTheory/Perm/Fin.lean Modified Mathlib/LinearAlgebra/Matrix/Charpoly/Coeff.lean Modified Mathlib/Logic/Equiv/Fin.lean Modified scripts/style-exceptions.txt 2024-02-07 03:57:33 bbbf037 refactor: split out graph darts (#10312) Continuation from #10123. `Combinatorics.SimpleGraph.Basic` is now under 1000 lines. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Combinatorics/SimpleGraph/Basic.lean - def SimpleGraph.Dart.edge - theorem SimpleGraph.Dart.edge_comp_symm - theorem SimpleGraph.Dart.edge_mem - theorem SimpleGraph.Dart.edge_mk - theorem SimpleGraph.Dart.edge_symm - theorem SimpleGraph.Dart.ext - theorem SimpleGraph.Dart.ext_iff - def SimpleGraph.Dart.symm - theorem SimpleGraph.Dart.symm_involutive - theorem SimpleGraph.Dart.symm_mk - theorem SimpleGraph.Dart.symm_ne - theorem SimpleGraph.Dart.symm_symm - theorem SimpleGraph.Dart.toProd_injective - structure SimpleGraph.Dart - def SimpleGraph.DartAdj - def SimpleGraph.dartOfNeighborSet - theorem SimpleGraph.dartOfNeighborSet_injective - theorem SimpleGraph.dart_edge_eq_iff - theorem SimpleGraph.dart_edge_eq_mk'_iff' - theorem SimpleGraph.dart_edge_eq_mk'_iff +/- def SimpleGraph.deleteEdges +/- def SimpleGraph.fromRel +/- def SimpleGraph.incidenceSetEquivNeighborSet Modified Mathlib/Combinatorics/SimpleGraph/Connectivity.lean Added Mathlib/Combinatorics/SimpleGraph/Dart.lean + def SimpleGraph.Dart.edge + theorem SimpleGraph.Dart.edge_comp_symm + theorem SimpleGraph.Dart.edge_mem + theorem SimpleGraph.Dart.edge_mk + theorem SimpleGraph.Dart.edge_symm + theorem SimpleGraph.Dart.ext + theorem SimpleGraph.Dart.ext_iff + def SimpleGraph.Dart.symm + theorem SimpleGraph.Dart.symm_involutive + theorem SimpleGraph.Dart.symm_mk + theorem SimpleGraph.Dart.symm_ne + theorem SimpleGraph.Dart.symm_symm + theorem SimpleGraph.Dart.toProd_injective + structure SimpleGraph.Dart + def SimpleGraph.DartAdj + def SimpleGraph.dartOfNeighborSet + theorem SimpleGraph.dartOfNeighborSet_injective + theorem SimpleGraph.dart_edge_eq_iff + theorem SimpleGraph.dart_edge_eq_mk'_iff' + theorem SimpleGraph.dart_edge_eq_mk'_iff Modified Mathlib/Combinatorics/SimpleGraph/DegreeSum.lean Modified Mathlib/Combinatorics/SimpleGraph/Maps.lean 2024-02-07 01:59:24 eb99446 chore: remove duplicate instances (#10316) These are a few places where duplicates of instances are in scope, eg `variable {K : Type*} [Field K] ... theorem foo [Field K] ....`. ESTIMATED CHANGES Modified Mathlib/Algebra/GroupRingAction/Basic.lean Modified Mathlib/LinearAlgebra/Multilinear/Basic.lean Modified Mathlib/Tactic/ComputeDegree.lean +/- theorem Mathlib.Tactic.ComputeDegree.coeff_pow_of_natDegree_le_of_eq_ite' 2024-02-06 21:44:25 4921260 chore(FieldTheory/Fixed): `Fintype` -> `Finite` (#10310) ESTIMATED CHANGES Modified Mathlib/FieldTheory/Fixed.lean +/- def FixedPoints.toAlgHomEquiv 2024-02-06 21:44:24 3dc8a1d chore(Equiv/Fintype): `Fintype` -> `Finite` in `Equiv.toCompl` (#10305) Also drop `DecidablePred` assumptions. ESTIMATED CHANGES Modified Mathlib/Logic/Equiv/Fintype.lean 2024-02-06 21:44:23 ec4beba refactor(FieldTheory/PerfectClosure): change the order of some results (#10282) - Now the perfect closure is a perfect ring without requiring base ring to be a field. - Add `mk_pow` and `mk_surjective`. - Add explicit names to all of the instances. - Add docstrings for the file. ESTIMATED CHANGES Modified Mathlib/FieldTheory/PerfectClosure.lean - theorem PerfectClosure.eq_iff' + theorem PerfectClosure.mk_eq_iff + theorem PerfectClosure.mk_pow + theorem PerfectClosure.mk_surjective 2024-02-06 21:44:22 8cc0b2a feat(Positivity): Strictness extractors (#10274) Define combinators to turn strictness assumptions into proofs of nonnegativity or nonzeroness. These are useful to write `positivity` extensions where having `0 < a` doesn't help. We might want binary combinators in the future. Eg the pattern "Binary function `foo` is positive/nonnegative/nonzero if its inputs are" is very common. ESTIMATED CHANGES Modified Mathlib/Tactic/Positivity/Core.lean + def Mathlib.Meta.Positivity.Strictness.toNonneg + def Mathlib.Meta.Positivity.Strictness.toNonzero 2024-02-06 20:37:36 8fac0fc feat: HahnSeries smul order inequality (#9848) Given a Hahn series `x` and a scalar `r` such that `r • x ≠ 0`, the order of `r • x` is not strictly less than the order of `x`. If the exponent poset is linearly ordered, the order of `x` is less than or equal to the order of `r • x`. (Note that the order of a Hahn series is not uniquely defined when the exponent poset is not linearly ordered.) This is a complement to the addition result `HahnSeries.min_order_le_order_add`. ESTIMATED CHANGES Modified Mathlib/Algebra/SMulWithZero.lean - theorem right_ne_zero_of_smul - theorem smul_eq_zero_of_right Modified Mathlib/GroupTheory/GroupAction/Defs.lean + theorem right_ne_zero_of_smul + theorem smul_eq_zero_of_right Modified Mathlib/Order/WellFoundedSet.lean + theorem Set.IsWF.min_of_subset_not_lt_min Modified Mathlib/RingTheory/HahnSeries.lean + theorem HahnSeries.le_order_smul + theorem HahnSeries.order_smul_not_lt 2024-02-06 19:27:13 10e41e8 chore(Category/Profinite): `Fintype` -> `Finite` (#10306) ESTIMATED CHANGES Modified Mathlib/Topology/Category/Profinite/EffectiveEpi.lean Modified Mathlib/Topology/Category/Profinite/Limits.lean 2024-02-06 19:27:12 33c4af8 feat: bounding integrals by asymptotics, part 1 (#10248) part 1: corollaries such as for `atTop ℝ` yet to come ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/MeasureTheory/Function/LocallyIntegrable.lean + theorem MeasureTheory.integrable_iff_integrableAtFilter_cocompact Added Mathlib/MeasureTheory/Integral/Asymptotics.lean + theorem Asymptotics.IsBigO.integrable + theorem Asymptotics.IsBigO.integrableAtFilter Modified Mathlib/MeasureTheory/Integral/IntegrableOn.lean + theorem MeasureTheory.integrableAtFilter_top 2024-02-06 19:27:11 0174e78 feat: Make the coercion `ℝ≥0 → ℝ≥0∞` commute defeqly with `nsmul` and `pow` (#10225) by tweaking the definition of the `AddMonoid` and `MonoidWithZero` instances for `WithTop`. Also unprotect `ENNReal.coe_injective` and rename `ENNReal.coe_eq_coe → ENNReal.coe_inj`. From LeanAPAP ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Monoid/WithTop.lean +/- theorem WithTop.coe_nsmul Modified Mathlib/Algebra/Order/Ring/WithTop.lean + theorem WithBot.bot_mul' +/- theorem WithBot.bot_mul +/- theorem WithBot.bot_mul_bot +/- theorem WithBot.coe_mul + theorem WithBot.coe_mul_eq_bind + theorem WithBot.coe_pow + theorem WithBot.mul_bot' +/- theorem WithBot.mul_bot - theorem WithBot.mul_coe + theorem WithBot.mul_coe_eq_bind +/- theorem WithBot.mul_def +/- theorem WithBot.mul_eq_bot_iff + theorem WithBot.unbot'_zero_mul +/- theorem WithTop.coe_mul + theorem WithTop.coe_mul_eq_bind + theorem WithTop.coe_pow - theorem WithTop.mul_coe + theorem WithTop.mul_coe_eq_bind +/- theorem WithTop.mul_def +/- theorem WithTop.mul_eq_top_iff +/- theorem WithTop.mul_top' +/- theorem WithTop.mul_top +/- theorem WithTop.top_mul' +/- theorem WithTop.top_mul +/- theorem WithTop.top_mul_top +/- theorem WithTop.untop'_zero_mul Modified Mathlib/AlgebraicGeometry/EllipticCurve/Group.lean Modified Mathlib/Analysis/MeanInequalities.lean Modified Mathlib/Analysis/MeanInequalitiesPow.lean Modified Mathlib/Analysis/NormedSpace/Spectrum.lean Modified Mathlib/Analysis/NormedSpace/Star/GelfandDuality.lean Modified Mathlib/Analysis/SpecialFunctions/Pow/Asymptotics.lean Modified Mathlib/Analysis/SpecialFunctions/Pow/NNReal.lean + theorem ENNReal.pow_rpow_inv_natCast + theorem ENNReal.rpow_intCast_mul + theorem ENNReal.rpow_int_cast + theorem ENNReal.rpow_inv_natCast_pow + theorem ENNReal.rpow_inv_rpow +/- theorem ENNReal.rpow_left_injective + theorem ENNReal.rpow_mul_intCast + theorem ENNReal.rpow_mul_natCast + theorem ENNReal.rpow_natCast_mul + theorem ENNReal.rpow_rpow_inv Modified Mathlib/Data/ENNReal/Basic.lean +/- theorem ENNReal.coe_add - theorem ENNReal.coe_eq_coe +/- theorem ENNReal.coe_eq_one +/- theorem ENNReal.coe_eq_zero + theorem ENNReal.coe_inj + theorem ENNReal.coe_injective +/- theorem ENNReal.coe_mul + theorem ENNReal.coe_ne_coe + theorem ENNReal.coe_ne_one +/- theorem ENNReal.coe_ne_zero + theorem ENNReal.coe_nsmul + theorem ENNReal.coe_pow +/- theorem ENNReal.one_eq_coe +/- theorem ENNReal.zero_eq_coe Modified Mathlib/Data/ENNReal/Inv.lean Modified Mathlib/Data/ENNReal/Operations.lean - theorem ENNReal.coe_pow Modified Mathlib/Data/ENNReal/Real.lean Modified Mathlib/Data/ENat/Basic.lean +/- theorem ENat.coe_mul Modified Mathlib/MeasureTheory/Function/LpSeminorm/Basic.lean Modified Mathlib/MeasureTheory/Function/UniformIntegrable.lean Modified Mathlib/MeasureTheory/Integral/Lebesgue.lean Modified Mathlib/MeasureTheory/Measure/FiniteMeasure.lean Modified Mathlib/MeasureTheory/Measure/Haar/Basic.lean Modified Mathlib/MeasureTheory/Measure/VectorMeasure.lean Modified Mathlib/NumberTheory/Liouville/Measure.lean Modified Mathlib/Order/WithBot.lean +/- theorem WithBot.coe_unbot + def WithBot.map₂ + theorem WithBot.map₂_bot_left + theorem WithBot.map₂_bot_right + theorem WithBot.map₂_coe_coe + theorem WithBot.map₂_coe_left + theorem WithBot.map₂_coe_right + theorem WithBot.map₂_eq_bot_iff +/- def WithBot.unbot +/- theorem WithTop.coe_untop + def WithTop.map₂ + theorem WithTop.map₂_coe_coe + theorem WithTop.map₂_coe_left + theorem WithTop.map₂_coe_right + theorem WithTop.map₂_eq_top_iff + theorem WithTop.map₂_top_left + theorem WithTop.map₂_top_right +/- def WithTop.untop Modified Mathlib/Probability/ProbabilityMassFunction/Monad.lean Modified Mathlib/Topology/MetricSpace/Dilation.lean Modified Mathlib/Topology/MetricSpace/Isometry.lean 2024-02-06 18:38:19 cc31307 chore: very slight cleanup of `isCompact_pi_infinite` (#10299) The main change is to not unfold `Filter.pi` and use the API directly. Since this is the kind of proofs people would have a look at I think it's nice to have it match the way we would advise to write it with the current state of the API. ESTIMATED CHANGES Modified Mathlib/Topology/Compactness/Compact.lean 2024-02-06 18:38:18 9f7d05c doc: fix typos (#10296) Fixed minor typos. ESTIMATED CHANGES Modified Mathlib/Topology/MetricSpace/Dilation.lean 2024-02-06 18:38:17 62b46d1 feat: define `ContinuousMultilinearMap.linearDeriv` and show it's the `fderiv` (#9846) ESTIMATED CHANGES Modified Mathlib/Analysis/Analytic/Basic.lean Modified Mathlib/Analysis/Analytic/CPolynomial.lean + theorem HasFiniteFPowerSeriesOnBall.mk' Modified Mathlib/Analysis/Calculus/FDeriv/Analytic.lean + theorem ContinuousMultilinearMap.cPolynomialAt + theorem ContinuousMultilinearMap.cPolyomialOn + theorem ContinuousMultilinearMap.changeOriginSeries_support + theorem ContinuousMultilinearMap.changeOrigin_toFormalMultilinearSeries + theorem ContinuousMultilinearMap.contDiff + theorem ContinuousMultilinearMap.contDiffAt Modified Mathlib/Analysis/Calculus/FormalMultilinearSeries.lean Modified Mathlib/Topology/Algebra/Module/Multilinear/Basic.lean + def ContinuousMultilinearMap.linearDeriv + theorem ContinuousMultilinearMap.linearDeriv_apply 2024-02-06 18:38:16 d172b39 feat(FieldTheory/PurelyInseparable): definition and basic results of purely inseparable extensions (#9488) Main defintions: - `IsPurelyInseparable`: typeclass for purely inseparable field extension: an algebraic extension `E / F` is purely inseparable if and only if the minimal polynomial of every element of `E ∖ F` is not separable. Main results (not exhaustive): - `isPurelyInseparable_iff_mem_pow`: a field extension `E / F` of exponential characteristic `q` is purely inseparable if and only if for every element `x` of `E`, there exists a natural number `n` such that `x ^ (q ^ n)` is contained in `F`. - `IsPurelyInseparable.trans`: if `E / F` and `K / E` are both purely inseparable extensions, then `K / F` is also purely inseparable. - `isPurelyInseparable_iff_natSepDegree_eq_one`: `E / F` is purely inseparable if and only if for every element `x` of `E`, its minimal polynomial has separable degree one. - `isPurelyInseparable_iff_minpoly_eq_X_pow_sub_C`: a field extension `E / F` of exponential characteristic `q` is purely inseparable if and only if for every element `x` of `E`, the minimal polynomial of `x` over `F` is of form `X ^ (q ^ n) - y` for some natural number `n` and some element `y` of `F`. - `isPurelyInseparable_iff_minpoly_eq_X_sub_C_pow`: a field extension `E / F` of exponential characteristic `q` is purely inseparable if and only if for every element `x` of `E`, the minimal polynomial of `x` over `F` is of form `(X - x) ^ (q ^ n)` for some natural number `n`. - `isPurelyInseparable_iff_finSepDegree_eq_one`: an algebraic extension is purely inseparable if and only if it has (finite) separable degree one. **TODO:** remove the algebraic assumption. (will be in later PR) - `IsPurelyInseparable.normal`: a purely inseparable extension is normal. - `separableClosure.isPurelyInseparable`: if `E / F` is algebraic, then `E` is purely inseparable over the (relative) separable closure of `E / F`. - `IsPurelyInseparable.injective_comp_algebraMap`: if `E / F` is purely inseparable, then for any reduced ring `L`, the map `(E →+* L) → (F →+* L)` induced by `algebraMap F E` is injective. In other words, a purely inseparable field extension is an epimorphism in the category of fields. - `isPurelyInseparable_adjoin_iff_mem_pow`: if `F` is of exponential characteristic `q`, then `F(S) / F` is a purely inseparable extension if and only if for any `x ∈ S`, `x ^ (q ^ n)` is contained in `F` for some `n : ℕ`. - `Field.finSepDegree_eq`: if `E / F` is algebraic, then the `Field.finSepDegree F E` is equal to `Field.sepDegree F E` as a natural number. This means that the cardinality of `Field.Emb F E` and the degree of `(separableClosure F E) / F` are both finite or infinite, and when they are finite, they coincide. TODO: (will be in later PR) - `IsPurelyInseparable.of_injective_comp_algebraMap`: if `L` is an algebraically closed field containing `E`, such that the map `(E →+* L) → (F →+* L)` induced by `algebraMap F E` is injective, then `E / F` is purely inseparable. In other words, epimorphisms in the category of fields must be purely inseparable extensions. Need to use the fact that `Emb F E` is infintie when `E / F` is (purely) transcendental. - Prove that the (infinite) inseparable degree are multiplicative; linearly disjoint argument is needed. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/CharP/Reduced.lean +/- theorem frobenius_inj + theorem iterateFrobenius_inj Added Mathlib/FieldTheory/PurelyInseparable.lean + theorem AlgEquiv.isPurelyInseparable + theorem AlgEquiv.isPurelyInseparable_iff + theorem Algebra.IsAlgebraic.isPurelyInseparable_of_isSepClosed + theorem Algebra.IsAlgebraic.isSepClosed + def Basis.mapPowExpCharPowOfIsSeparable + theorem Field.finSepDegree_eq + theorem Field.finSepDegree_mul_finInsepDegree + theorem Field.lift_rank_mul_lift_sepDegree_of_isSeparable + theorem Field.lift_sepDegree_mul_lift_sepDegree_of_isAlgebraic + theorem Field.rank_mul_sepDegree_of_isSeparable + theorem Field.sepDegree_eq_of_isPurelyInseparable + theorem Field.sepDegree_eq_of_isPurelyInseparable_of_isSeparable + theorem Field.sepDegree_mul_sepDegree_of_isAlgebraic + theorem Field.span_map_pow_expChar_pow_eq_top_of_isSeparable + theorem IntermediateField.adjoin_eq_adjoin_pow_expChar_of_isSeparable' + theorem IntermediateField.adjoin_eq_adjoin_pow_expChar_of_isSeparable + theorem IntermediateField.adjoin_eq_adjoin_pow_expChar_pow_of_isSeparable' + theorem IntermediateField.adjoin_eq_adjoin_pow_expChar_pow_of_isSeparable + theorem IntermediateField.eq_bot_of_isPurelyInseparable_of_isSeparable + theorem IntermediateField.isPurelyInseparable_adjoin_iff_pow_mem + theorem IntermediateField.isPurelyInseparable_adjoin_simple_iff_natSepDegree_eq_one + theorem IntermediateField.isPurelyInseparable_adjoin_simple_iff_pow_mem + theorem IsPurelyInseparable.bijective_algebraMap_of_isSeparable + theorem IsPurelyInseparable.finSepDegree_eq_one + theorem IsPurelyInseparable.injective_comp_algebraMap + theorem IsPurelyInseparable.inseparable + theorem IsPurelyInseparable.isAlgebraic + theorem IsPurelyInseparable.isIntegral + theorem IsPurelyInseparable.minpoly_eq_X_pow_sub_C + theorem IsPurelyInseparable.minpoly_eq_X_sub_C_pow + theorem IsPurelyInseparable.natSepDegree_eq_one + theorem IsPurelyInseparable.pow_mem + theorem IsPurelyInseparable.surjective_algebraMap_of_isSeparable + theorem IsPurelyInseparable.tower_bot + theorem IsPurelyInseparable.tower_top + theorem IsPurelyInseparable.trans + theorem LinearIndependent.map_of_isPurelyInseparable_of_separable + theorem LinearIndependent.map_pow_expChar_pow_of_isSeparable + theorem LinearIndependent.map_pow_expChar_pow_of_separable + theorem eq_separableClosure + theorem eq_separableClosure_iff + theorem isPurelyInseparable_iff + theorem isPurelyInseparable_iff_fd_isPurelyInseparable + theorem isPurelyInseparable_iff_finSepDegree_eq_one + theorem isPurelyInseparable_iff_minpoly_eq_X_pow_sub_C + theorem isPurelyInseparable_iff_minpoly_eq_X_sub_C_pow + theorem isPurelyInseparable_iff_natSepDegree_eq_one + theorem isPurelyInseparable_iff_perfectClosure_eq_top + theorem isPurelyInseparable_iff_pow_mem + theorem isPurelyInseparable_of_finSepDegree_eq_one + theorem isSepClosed_iff_isPurelyInseparable_algebraicClosure + theorem le_perfectClosure + theorem le_perfectClosure_iff + theorem map_mem_perfectClosure_iff + theorem mem_perfectClosure_iff + theorem mem_perfectClosure_iff_natSepDegree_eq_one + theorem mem_perfectClosure_iff_pow_mem + def perfectClosure.algEquivOfAlgEquiv + theorem perfectClosure.comap_eq_of_algHom + theorem perfectClosure.eq_bot_of_isSeparable + theorem perfectClosure.isAlgebraic + theorem perfectClosure.map_eq_of_algEquiv + theorem perfectClosure.map_le_of_algHom + def perfectClosure + theorem perfectField_iff_isSeparable_algebraicClosure + theorem perfectField_of_isSeparable_of_perfectField_top + theorem perfectField_of_perfectClosure_eq_bot + theorem separableClosure.adjoin_eq_of_isAlgebraic + theorem separableClosure.adjoin_eq_of_isAlgebraic_of_isSeparable + theorem separableClosure.eq_bot_iff + theorem separableClosure.eq_bot_of_isPurelyInseparable + theorem separableClosure.isPurelyInseparable + theorem separableClosure_inf_perfectClosure + theorem separableClosure_le + theorem separableClosure_le_iff Modified Mathlib/FieldTheory/SeparableClosure.lean + theorem separableClosure.comap_eq_of_algHom - theorem separableClosure.eq_comap_of_algHom - theorem separableClosure.eq_map_of_algEquiv - theorem separableClosure.eq_map_of_separableClosure_eq_bot + theorem separableClosure.map_eq_of_algEquiv + theorem separableClosure.map_eq_of_separableClosure_eq_bot Modified Mathlib/FieldTheory/SeparableDegree.lean - theorem minpoly.natSepDegree_eq_one_iff_mem_pow + theorem minpoly.natSepDegree_eq_one_iff_pow_mem 2024-02-06 17:35:05 d7eae98 feat(RingTheory): bialgebra definition (#10076) Add definition of a bialgebra. For FLT. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/RingTheory/Bialgebra.lean + def Bialgebra.comulAlgHom + theorem Bialgebra.comul_algebraMap + theorem Bialgebra.comul_mul + theorem Bialgebra.comul_natCast + theorem Bialgebra.comul_pow + def Bialgebra.counitAlgHom + theorem Bialgebra.counit_algebraMap + theorem Bialgebra.counit_mul + theorem Bialgebra.counit_natCast + theorem Bialgebra.counit_pow + def Bialgebra.mk' 2024-02-06 17:35:04 8e0aa13 fix: improvements I noticed when teaching (#8420) * Rename (and generalize and move) ``` Int.units_ne_neg_self -> units_ne_neg_self Int.neg_units_ne_self -> neg_units_ne_self ``` * Change the `simps` config for `Closeds` * Add some `gcongr`-lemmas (currently is a bit picky about the exact statement of lemmas tagged with `gcongr`, so I had to add some variants that I could tag). ESTIMATED CHANGES Modified Mathlib/Algebra/CharZero/Lemmas.lean + theorem neg_units_ne_self + theorem units_ne_neg_self Modified Mathlib/Data/Int/Units.lean - theorem Int.neg_units_ne_self - theorem Int.units_ne_neg_self Modified Mathlib/GroupTheory/Perm/Sign.lean Modified Mathlib/Order/Filter/Basic.lean + theorem Filter.comap_le_comap + theorem Filter.map_le_map Modified Mathlib/Topology/Basic.lean Modified Mathlib/Topology/Sets/Closeds.lean + theorem TopologicalSpace.Closeds.coe_sSup +/- theorem TopologicalSpace.Closeds.coe_sup 2024-02-06 16:43:07 229b0ba feat: define Newton's method and prove decomposition as nilpotent + root (#10284) This is just a modified version of the code provided by Antoine Chambert-Loir here: https://leanprover.zulipchat.com/#narrow/stream/116395-maths/topic/jordan-chevalley.20decomposition/near/411402670 ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Dynamics/Newton.lean + theorem Polynomial.aeval_pow_two_pow_dvd_aeval_iterate_newtonMap + theorem Polynomial.exists_unique_nilpotent_sub_and_aeval_eq_zero + theorem Polynomial.isFixedPt_newtonMap_of_aeval_eq_zero + theorem Polynomial.isFixedPt_newtonMap_of_isUnit_iff + theorem Polynomial.isNilpotent_iterate_newtonMap_sub_of_isNilpotent + def Polynomial.newtonMap + theorem Polynomial.newtonMap_apply + theorem Polynomial.newtonMap_apply_of_isUnit + theorem Polynomial.newtonMap_apply_of_not_isUnit Modified Mathlib/RingTheory/Nilpotent.lean - theorem Commute.IsNilpotent.add_isUnit + theorem IsNilpotent.isUnit_add_left_of_commute + theorem IsNilpotent.isUnit_add_one + theorem IsNilpotent.isUnit_add_right_of_commute + theorem IsNilpotent.isUnit_one_add + theorem IsNilpotent.isUnit_one_sub + theorem IsNilpotent.isUnit_sub_one - theorem IsNilpotent.sub_one_isUnit + theorem IsUnit.isNilpotent_mul_unit_of_commute_iff + theorem IsUnit.isNilpotent_unit_mul_of_commute_iff Modified Mathlib/RingTheory/Polynomial/IrreducibleRing.lean Modified Mathlib/RingTheory/Polynomial/Nilpotent.lean + theorem Polynomial.isNilpotent_aeval_sub_of_isNilpotent_sub + theorem Polynomial.isUnit_aeval_of_isUnit_aeval_of_isNilpotent_sub Modified Mathlib/RingTheory/Polynomial/Tower.lean + theorem Polynomial.eval_map_algebraMap 2024-02-06 16:43:06 cafe049 chore(RingTheory/Flat): remove finished TODOs (#10221) ESTIMATED CHANGES Modified Mathlib/RingTheory/Flat/Basic.lean 2024-02-06 16:16:33 ded9c66 doc(Topology.Category.TopCat.Basic): fix links (#10242) The `trivial` link was linking to Init.Core and `topology.category.TopCat.adjunctions` is from Lean 3 and not valid anymore in Lean 4. ESTIMATED CHANGES Modified Mathlib/Topology/Category/TopCat/Basic.lean 2024-02-06 15:01:04 ebb7343 chore: Make sure `WithOne` doesn't import rings (#10275) Reorder the `WithOne` material. * `Algebra.Group.WithOne.Defs` was hiding a `Ring` import! I credit Johan and Mario for https://github.com/leanprover-community/mathlib/pull/2707. * `WithBot` is not needed to define `WithOne.unone`. It's simpler to redefine it by hand. In the future, we might want to have an `Option` version (but not sure how much that's worth, since it would basically be `Option.get` again). ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Group/WithOne/Basic.lean Modified Mathlib/Algebra/Group/WithOne/Defs.lean +/- theorem WithOne.coe_unone +/- def WithOne.unone Modified Mathlib/Algebra/Order/Monoid/WithZero/Defs.lean Modified Mathlib/Algebra/Order/Ring/Defs.lean Added Mathlib/Algebra/Ring/WithZero.lean 2024-02-06 15:01:02 9712171 doc: add docstrings for ChartedSpace.{atlas,chartAt} and their aliases (#10169) ESTIMATED CHANGES Modified Mathlib/Geometry/Manifold/ChartedSpace.lean Modified scripts/nolints.json 2024-02-06 15:01:01 f43e781 chore: clean up evalNot norm_num extension (#9532) * Uses `deriveBool`, which was added in #3892, and allows removal of some `have` lines. * Changes an `if then else` into a match. This is more readable in my opinion. ESTIMATED CHANGES Modified Mathlib/Tactic/NormNum/Basic.lean 2024-02-06 13:53:47 a83ab19 chore: bump Std to leanprover/std4#590 (#10294) The two `exact?` tests which initially failed have already been improved in Std's test suite for `std_exact?`, so I'm just dropping them here. ESTIMATED CHANGES Modified lake-manifest.json Modified test/LibrarySearch/basic.lean - theorem ex' 2024-02-06 13:53:46 cea4cc6 chore(MetricSpace/HausdorffDistance): split in two (#9809) The file was becoming a bit large (1550 lines). Split in two files of about 900 and 700 lines: the first file contains more basic material, the second file contains all material related to thickenings. Extend the module docstrings by mentioning the main results in this file. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Analysis/Normed/Group/Pointwise.lean Modified Mathlib/MeasureTheory/Constructions/BorelSpace/Basic.lean Modified Mathlib/Topology/MetricSpace/HausdorffDistance.lean - theorem Bornology.IsBounded.cthickening - theorem Disjoint.exists_cthickenings - theorem Disjoint.exists_thickenings - theorem IsCompact.cthickening_eq_biUnion_closedBall - theorem IsCompact.exists_cthickening_subset_open - theorem IsCompact.exists_isCompact_cthickening - theorem IsCompact.exists_thickening_subset_open - theorem Metric.ball_subset_thickening - theorem Metric.closedBall_subset_cthickening - theorem Metric.closedBall_subset_cthickening_singleton - theorem Metric.closure_eq_iInter_cthickening' - theorem Metric.closure_eq_iInter_cthickening - theorem Metric.closure_eq_iInter_thickening' - theorem Metric.closure_eq_iInter_thickening - theorem Metric.closure_subset_cthickening - theorem Metric.closure_subset_thickening - theorem Metric.closure_thickening_subset_cthickening - def Metric.cthickening - theorem Metric.cthickening_closure - theorem Metric.cthickening_cthickening_subset - theorem Metric.cthickening_empty - theorem Metric.cthickening_eq_biUnion_closedBall - theorem Metric.cthickening_eq_iInter_cthickening' - theorem Metric.cthickening_eq_iInter_cthickening - theorem Metric.cthickening_eq_iInter_thickening'' - theorem Metric.cthickening_eq_iInter_thickening' - theorem Metric.cthickening_eq_iInter_thickening - theorem Metric.cthickening_eq_preimage_infEdist - theorem Metric.cthickening_max_zero - theorem Metric.cthickening_mem_nhdsSet - theorem Metric.cthickening_mono - theorem Metric.cthickening_of_nonpos - theorem Metric.cthickening_singleton - theorem Metric.cthickening_subset_iUnion_closedBall_of_lt - theorem Metric.cthickening_subset_of_subset - theorem Metric.cthickening_subset_thickening' - theorem Metric.cthickening_subset_thickening - theorem Metric.cthickening_thickening_subset - theorem Metric.cthickening_union - theorem Metric.cthickening_zero - theorem Metric.diam_cthickening_le - theorem Metric.diam_thickening_le - theorem Metric.ediam_cthickening_le - theorem Metric.ediam_thickening_le - theorem Metric.eventually_not_mem_cthickening_of_infEdist_pos - theorem Metric.eventually_not_mem_thickening_of_infEdist_pos - theorem Metric.frontier_cthickening_disjoint - theorem Metric.frontier_cthickening_subset - theorem Metric.frontier_thickening_disjoint - theorem Metric.frontier_thickening_subset - theorem Metric.hasBasis_nhdsSet_cthickening - theorem Metric.hasBasis_nhdsSet_thickening - theorem Metric.infEdist_le_infEdist_cthickening_add - theorem Metric.infEdist_le_infEdist_thickening_add - theorem Metric.isClosed_cthickening - theorem Metric.isOpen_thickening - theorem Metric.mem_cthickening_iff - theorem Metric.mem_cthickening_of_dist_le - theorem Metric.mem_cthickening_of_edist_le - theorem Metric.mem_thickening_iff - theorem Metric.mem_thickening_iff_exists_edist_lt - theorem Metric.mem_thickening_iff_infDist_lt - theorem Metric.mem_thickening_iff_infEdist_lt - theorem Metric.self_subset_cthickening - theorem Metric.self_subset_thickening - def Metric.thickening - theorem Metric.thickening_closure - theorem Metric.thickening_cthickening_subset - theorem Metric.thickening_empty - theorem Metric.thickening_eq_biUnion_ball - theorem Metric.thickening_eq_preimage_infEdist - theorem Metric.thickening_iUnion - theorem Metric.thickening_mem_nhdsSet - theorem Metric.thickening_mono - theorem Metric.thickening_of_nonpos - theorem Metric.thickening_singleton - theorem Metric.thickening_subset_cthickening - theorem Metric.thickening_subset_cthickening_of_le - theorem Metric.thickening_subset_interior_cthickening - theorem Metric.thickening_subset_of_subset - theorem Metric.thickening_thickening_subset - theorem Metric.thickening_union Modified Mathlib/Topology/MetricSpace/ThickenedIndicator.lean Added Mathlib/Topology/MetricSpace/Thickening.lean + theorem Bornology.IsBounded.cthickening + theorem Disjoint.exists_cthickenings + theorem Disjoint.exists_thickenings + theorem IsCompact.cthickening_eq_biUnion_closedBall + theorem IsCompact.exists_cthickening_subset_open + theorem IsCompact.exists_isCompact_cthickening + theorem IsCompact.exists_thickening_subset_open + theorem Metric.ball_subset_thickening + theorem Metric.closedBall_subset_cthickening + theorem Metric.closedBall_subset_cthickening_singleton + theorem Metric.closure_eq_iInter_cthickening' + theorem Metric.closure_eq_iInter_cthickening + theorem Metric.closure_eq_iInter_thickening' + theorem Metric.closure_eq_iInter_thickening + theorem Metric.closure_subset_cthickening + theorem Metric.closure_subset_thickening + theorem Metric.closure_thickening_subset_cthickening + def Metric.cthickening + theorem Metric.cthickening_closure + theorem Metric.cthickening_cthickening_subset + theorem Metric.cthickening_empty + theorem Metric.cthickening_eq_biUnion_closedBall + theorem Metric.cthickening_eq_iInter_cthickening' + theorem Metric.cthickening_eq_iInter_cthickening + theorem Metric.cthickening_eq_iInter_thickening'' + theorem Metric.cthickening_eq_iInter_thickening' + theorem Metric.cthickening_eq_iInter_thickening + theorem Metric.cthickening_eq_preimage_infEdist + theorem Metric.cthickening_max_zero + theorem Metric.cthickening_mem_nhdsSet + theorem Metric.cthickening_mono + theorem Metric.cthickening_of_nonpos + theorem Metric.cthickening_singleton + theorem Metric.cthickening_subset_iUnion_closedBall_of_lt + theorem Metric.cthickening_subset_of_subset + theorem Metric.cthickening_subset_thickening' + theorem Metric.cthickening_subset_thickening + theorem Metric.cthickening_thickening_subset + theorem Metric.cthickening_union + theorem Metric.cthickening_zero + theorem Metric.diam_cthickening_le + theorem Metric.diam_thickening_le + theorem Metric.ediam_cthickening_le + theorem Metric.ediam_thickening_le + theorem Metric.eventually_not_mem_cthickening_of_infEdist_pos + theorem Metric.eventually_not_mem_thickening_of_infEdist_pos + theorem Metric.frontier_cthickening_disjoint + theorem Metric.frontier_cthickening_subset + theorem Metric.frontier_thickening_disjoint + theorem Metric.frontier_thickening_subset + theorem Metric.hasBasis_nhdsSet_cthickening + theorem Metric.hasBasis_nhdsSet_thickening + theorem Metric.infEdist_le_infEdist_cthickening_add + theorem Metric.infEdist_le_infEdist_thickening_add + theorem Metric.isClosed_cthickening + theorem Metric.isOpen_thickening + theorem Metric.mem_cthickening_iff + theorem Metric.mem_cthickening_of_dist_le + theorem Metric.mem_cthickening_of_edist_le + theorem Metric.mem_thickening_iff + theorem Metric.mem_thickening_iff_exists_edist_lt + theorem Metric.mem_thickening_iff_infDist_lt + theorem Metric.mem_thickening_iff_infEdist_lt + theorem Metric.self_subset_cthickening + theorem Metric.self_subset_thickening + def Metric.thickening + theorem Metric.thickening_closure + theorem Metric.thickening_cthickening_subset + theorem Metric.thickening_empty + theorem Metric.thickening_eq_biUnion_ball + theorem Metric.thickening_eq_preimage_infEdist + theorem Metric.thickening_iUnion + theorem Metric.thickening_mem_nhdsSet + theorem Metric.thickening_mono + theorem Metric.thickening_of_nonpos + theorem Metric.thickening_singleton + theorem Metric.thickening_subset_cthickening + theorem Metric.thickening_subset_cthickening_of_le + theorem Metric.thickening_subset_interior_cthickening + theorem Metric.thickening_subset_of_subset + theorem Metric.thickening_thickening_subset + theorem Metric.thickening_union Modified scripts/style-exceptions.txt 2024-02-06 13:53:44 383d015 feat(Analysis/Analytic/Meromorphic): more API for meromorphic functions (#9621) This PR adds "order of vanishing" for meromorphic functions, and some basic API for functions `MeromorphicOn` a set. ESTIMATED CHANGES Modified Mathlib/Analysis/Analytic/IsolatedZeros.lean + theorem AnalyticAt.unique_eventuallyEq_zpow_smul_nonzero Modified Mathlib/Analysis/Analytic/Meromorphic.lean + theorem AnalyticAt.meromorphicAt_order + theorem AnalyticOn.meromorphicOn + theorem MeromorphicAt.const + theorem MeromorphicAt.id + theorem MeromorphicAt.iff_eventuallyEq_zpow_smul_analyticAt + theorem MeromorphicAt.order_eq_int_iff + theorem MeromorphicAt.order_eq_top_iff + theorem MeromorphicAt.pow + theorem MeromorphicAt.zpow + theorem MeromorphicOn.add + theorem MeromorphicOn.congr + theorem MeromorphicOn.const + theorem MeromorphicOn.div + theorem MeromorphicOn.id + theorem MeromorphicOn.inv + theorem MeromorphicOn.inv_iff + theorem MeromorphicOn.mono_set + theorem MeromorphicOn.mul + theorem MeromorphicOn.neg + theorem MeromorphicOn.neg_iff + theorem MeromorphicOn.pow + theorem MeromorphicOn.smul + theorem MeromorphicOn.sub + theorem MeromorphicOn.zpow + def MeromorphicOn - theorem meromorphicAt_const - theorem meromorphicAt_id 2024-02-06 14:47:05+01:00 ebb0ed2 Revert "chore: very slight cleanup of `isCompact_pi_infinite`" This reverts commit 7a153efa32647849ab6eacf206fa85bcc78e420e. ESTIMATED CHANGES Modified Mathlib/Topology/Compactness/Compact.lean 2024-02-06 14:44:50+01:00 7a153ef chore: very slight cleanup of `isCompact_pi_infinite` ESTIMATED CHANGES Modified Mathlib/Topology/Compactness/Compact.lean 2024-02-06 12:08:40 3007dc8 chore(Tactic): clean up `q()` notation (#10227) There is no need to write `(q(some_lemma))`, `q(some_lemma)` already has the right precedence. This also removes some `by exact`s that were either cargo-culted, or fixed by a recent change to Lean / Quote4. ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Field/Power.lean Modified Mathlib/Algebra/Order/Module/Defs.lean Modified Mathlib/Tactic/Linarith/Verification.lean Modified Mathlib/Tactic/NormNum/Inv.lean Modified Mathlib/Tactic/Positivity/Basic.lean Modified Mathlib/Tactic/Ring/Basic.lean 2024-02-06 12:08:39 909ee22 chore: uneven spacing for ⟨ ⟩ (#10014) This cleans up instances of ``` ⟨ foo, bar⟩ ``` and ``` ⟨foo, bar ⟩ ``` where spaces a on the inside one side, but not on the other side. Fixing this by removing the extra space. ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Aut.lean Modified Mathlib/Analysis/Calculus/Deriv/Inverse.lean Modified Mathlib/Analysis/Convex/Cone/Proper.lean Modified Mathlib/Analysis/Normed/Order/Lattice.lean Modified Mathlib/Analysis/NormedSpace/HahnBanach/SeparatingDual.lean Modified Mathlib/CategoryTheory/CofilteredSystem.lean Modified Mathlib/Data/Bool/Basic.lean Modified Mathlib/Data/Fintype/Basic.lean Modified Mathlib/Data/Matroid/Basic.lean Modified Mathlib/Data/Matroid/IndepAxioms.lean Modified Mathlib/Data/Nat/Cast/Order.lean Modified Mathlib/Data/PFun.lean Modified Mathlib/Data/Polynomial/RingDivision.lean Modified Mathlib/FieldTheory/Subfield.lean Modified Mathlib/GroupTheory/GroupAction/SubMulAction.lean Modified Mathlib/Lean/Message.lean Modified Mathlib/LinearAlgebra/Matrix/SpecialLinearGroup.lean Modified Mathlib/LinearAlgebra/Span.lean Modified Mathlib/ModelTheory/Substructures.lean Modified Mathlib/Order/Filter/Archimedean.lean Modified Mathlib/RingTheory/ClassGroup.lean Modified Mathlib/Topology/Algebra/ValuedField.lean Modified Mathlib/Topology/Category/TopCat/Limits/Basic.lean Modified Mathlib/Topology/Clopen.lean Modified Mathlib/Topology/Compactness/Lindelof.lean Modified Mathlib/Topology/StoneCech.lean Modified test/toAdditive.lean 2024-02-06 10:43:28 fbec264 refactor(PartialHomeomorph): make (s : Opens \alpha) implicit (#10082) It is always used in conjunction with a hypothesis `hs` about `s`. In Lean 3, these arguments were kept explicit on purpose: given a definition `myDef {x : α} (hx : MyProp x)`, if the proof of `hx` was nontrivial (not a variable), Lean would pretty-print it as `myDef _`. In Lean 4, setting `pp.proofs.withType` or `pp.proofs` to true makes such terms pretty-print as `myDef (x : MyProp)`. Hence, this workaround is no longer necessary. Follow-up to #9894. ESTIMATED CHANGES Modified Mathlib/Geometry/Manifold/ChartedSpace.lean Modified Mathlib/Topology/PartialHomeomorph.lean +/- theorem PartialHomeomorph.subtypeRestr_def +/- theorem PartialHomeomorph.subtypeRestr_source +/- theorem PartialHomeomorph.subtypeRestr_symm_eqOn 2024-02-06 09:06:19 34bbb84 chore(Analysis/BoxIntegral): `Fintype` -> `Finite` (#10292) ESTIMATED CHANGES Modified Mathlib/Analysis/BoxIntegral/Partition/Additive.lean +/- def BoxIntegral.BoxAdditiveMap.ofMapSplitAdd Modified Mathlib/Analysis/BoxIntegral/Partition/Measure.lean +/- def MeasureTheory.Measure.toBoxAdditive Modified Mathlib/Analysis/BoxIntegral/Partition/Split.lean 2024-02-06 09:06:18 7ab6068 chore(InnerProductSpace/Basic): drop some `DecidableEq` assumptions (#10291) ESTIMATED CHANGES Modified Mathlib/Analysis/InnerProductSpace/Basic.lean +/- theorem DFinsupp.inner_sum +/- theorem DFinsupp.sum_inner +/- theorem DirectSum.IsInternal.collectedBasis_orthonormal +/- theorem OrthogonalFamily.eq_ite +/- theorem OrthogonalFamily.inner_right_dfinsupp +/- theorem OrthogonalFamily.norm_sq_diff_sum +/- theorem orthonormal_iff_ite +/- theorem orthonormal_subtype_iff_ite 2024-02-06 09:06:17 7184374 chore: tidy various files (#10269) ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Function/Jacobian.lean Modified Mathlib/MeasureTheory/Integral/SetIntegral.lean +/- theorem ContinuousLinearEquiv.integral_comp_comm +/- theorem LinearIsometry.integral_comp_comm +/- theorem MeasureTheory.set_integral_mono +/- theorem MeasureTheory.set_integral_mono_ae +/- theorem MeasureTheory.set_integral_nonpos_of_ae +/- theorem MeasureTheory.set_integral_nonpos_of_ae_restrict +/- theorem integral_conj +/- theorem integral_ofReal 2024-02-06 08:35:34 691d343 feat: final if colimit of composition with Yoneda is terminal (#10279) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Limits/Final.lean + theorem CategoryTheory.Functor.cofinal_of_isTerminal_colimit_comp_yoneda 2024-02-06 07:47:11 3fea559 chore(Algebra/Category): `Fintype` -> `Finite` (#10290) ESTIMATED CHANGES Modified Mathlib/Algebra/Category/FGModuleCat/Limits.lean Modified Mathlib/Algebra/Category/GroupCat/Biproducts.lean Modified Mathlib/Algebra/Category/ModuleCat/Biproducts.lean +/- theorem ModuleCat.biproductIsoPi_inv_comp_π 2024-02-06 07:47:10 e2cf2ae chore(MeasureTheory): `Fintype` -> `Finite` (#10289) * Rename `hasFiniteIntegral_of_fintype` to `HasFiniteIntegral.of_finite`, generalize to `[Finite α]`, golf. * Rename `integrable_of_fintype` to `Integrable.of_finite`, generalize to `[Finite α]`. * Rename `SimpleFunc.ofFintype` to `SimpleFunc.ofFinite`, generalize to `[Finite α]`, use it to golf `SimpleFunc.ofIsEmpty`. * Rename `stronglyMeasurable_of_fintype` to `StronglyMeasurable.of_finite`, deprecate `stronglyMeasurable_of_isEmpty`. ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Function/L1Space.lean + theorem MeasureTheory.HasFiniteIntegral.of_finite + theorem MeasureTheory.Integrable.of_finite - theorem MeasureTheory.hasFiniteIntegral_of_fintype - theorem MeasureTheory.integrable_of_fintype Modified Mathlib/MeasureTheory/Function/SimpleFunc.lean + def MeasureTheory.SimpleFunc.ofFinite - def MeasureTheory.SimpleFunc.ofFintype +/- def MeasureTheory.SimpleFunc.ofIsEmpty Modified Mathlib/MeasureTheory/Function/StronglyMeasurable/Basic.lean + theorem MeasureTheory.StronglyMeasurable.of_finite - theorem MeasureTheory.stronglyMeasurable_of_fintype Modified Mathlib/MeasureTheory/Integral/Bochner.lean Modified Mathlib/Probability/ProbabilityMassFunction/Integrals.lean 2024-02-06 07:47:09 d64b678 chore(PartialHomeomorph): `Fintype` -> `Finite` (#10288) ESTIMATED CHANGES Modified Mathlib/Topology/PartialHomeomorph.lean 2024-02-06 07:47:08 a76d5c1 feat(Topology/Bases): review `IsSeparable` API (#10286) * upgrade `isSeparable_iUnion` to an `Iff` lemma, restore the original version as `IsSeparable.iUnion`; * add `isSeparable_union` and `isSeparable_closure`; * upgrade `isSeparable_pi` from `[Finite ι]` to `[Countable ι]`, add `IsSeparable.univ_pi` version; * add `Dense.isSeparable_iff` and `isSeparable_range`; * rename `isSeparable_of_separableSpace_subtype` to `IsSeparable.of_subtype`; * rename `isSeparable_of_separableSpace` to `IsSeparable.of_separableSpace`. ESTIMATED CHANGES Modified Counterexamples/SorgenfreyLine.lean Modified Mathlib/Analysis/Calculus/Deriv/Slope.lean Modified Mathlib/Analysis/Calculus/FDeriv/Measurable.lean Modified Mathlib/MeasureTheory/Function/AEEqOfIntegral.lean Modified Mathlib/MeasureTheory/Function/StronglyMeasurable/Basic.lean - theorem MeasureTheory.StronglyMeasurable.isSeparable_range Modified Mathlib/MeasureTheory/Integral/Bochner.lean Modified Mathlib/MeasureTheory/Integral/IntegrableOn.lean Modified Mathlib/Topology/Algebra/Module/Basic.lean Modified Mathlib/Topology/Bases.lean + theorem Dense.isSeparable_iff - theorem TopologicalSpace.IsSeparable.closure + theorem TopologicalSpace.IsSeparable.iUnion + theorem TopologicalSpace.IsSeparable.of_separableSpace + theorem TopologicalSpace.IsSeparable.of_subtype + theorem TopologicalSpace.IsSeparable.univ_pi + theorem TopologicalSpace.isSeparable_closure +/- theorem TopologicalSpace.isSeparable_iUnion - theorem TopologicalSpace.isSeparable_of_separableSpace - theorem TopologicalSpace.isSeparable_of_separableSpace_subtype +/- theorem TopologicalSpace.isSeparable_pi + theorem TopologicalSpace.isSeparable_range + theorem TopologicalSpace.isSeparable_union +/- theorem TopologicalSpace.isSeparable_univ_iff Modified Mathlib/Topology/MetricSpace/PseudoMetric.lean 2024-02-06 07:47:07 318c8c1 doc: fix typo (#10280) ESTIMATED CHANGES Modified Mathlib/Condensed/Functors.lean 2024-02-06 07:03:55 d78efd0 chore(NormedSpace/Basic): move some theorems to `NormedSpace.Real` (#10206) This way we don't switch between general normed spaces and real normed spaces back and forth throughout the file. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Analysis/Calculus/DiffContOnCl.lean Modified Mathlib/Analysis/LocallyConvex/Bounded.lean Modified Mathlib/Analysis/Matrix.lean Modified Mathlib/Analysis/NormedSpace/Basic.lean - theorem closure_ball - theorem dist_smul_add_one_sub_smul_le - theorem exists_norm_eq - theorem frontier_ball - theorem frontier_closedBall' - theorem frontier_closedBall - theorem frontier_sphere' - theorem frontier_sphere - theorem interior_closedBall' - theorem interior_closedBall - theorem interior_sphere' - theorem interior_sphere - theorem inv_norm_smul_mem_closed_unit_ball - theorem nnnorm_surjective - theorem norm_smul_of_nonneg - theorem range_nnnorm - theorem range_norm Modified Mathlib/Analysis/NormedSpace/ContinuousLinearMap.lean Modified Mathlib/Analysis/NormedSpace/Pointwise.lean Modified Mathlib/Analysis/NormedSpace/Ray.lean Added Mathlib/Analysis/NormedSpace/Real.lean + theorem closure_ball + theorem dist_smul_add_one_sub_smul_le + theorem exists_norm_eq + theorem frontier_ball + theorem frontier_closedBall' + theorem frontier_closedBall + theorem frontier_sphere' + theorem frontier_sphere + theorem interior_closedBall' + theorem interior_closedBall + theorem interior_sphere' + theorem interior_sphere + theorem inv_norm_smul_mem_closed_unit_ball + theorem nnnorm_surjective + theorem norm_smul_of_nonneg + theorem range_nnnorm + theorem range_norm Modified Mathlib/Analysis/NormedSpace/RieszLemma.lean Modified Mathlib/Analysis/NormedSpace/Star/Matrix.lean Modified Mathlib/Analysis/NormedSpace/TrivSqZeroExt.lean Modified Mathlib/Analysis/SpecialFunctions/Log/Basic.lean Modified Mathlib/MeasureTheory/Measure/Lebesgue/EqHaar.lean 2024-02-06 02:47:28 e415c3b chore(LpSeminorm): further split the file (#10207) ESTIMATED CHANGES Modified Mathlib.lean Renamed Mathlib/MeasureTheory/Function/LpSeminorm.lean to Mathlib/MeasureTheory/Function/LpSeminorm/Basic.lean - def MeasureTheory.LpAddConst - theorem MeasureTheory.LpAddConst_lt_top - theorem MeasureTheory.LpAddConst_of_one_le - theorem MeasureTheory.LpAddConst_zero - theorem MeasureTheory.Memℒp.add - theorem MeasureTheory.Memℒp.memℒp_of_exponent_le - theorem MeasureTheory.Memℒp.smul - theorem MeasureTheory.Memℒp.smul_of_top_left - theorem MeasureTheory.Memℒp.smul_of_top_right - theorem MeasureTheory.Memℒp.sub - theorem MeasureTheory.exists_Lp_half - theorem MeasureTheory.meas_ge_le_mul_pow_snorm - theorem MeasureTheory.memℒp_finset_sum' - theorem MeasureTheory.memℒp_finset_sum - theorem MeasureTheory.mul_meas_ge_le_pow_snorm' - theorem MeasureTheory.mul_meas_ge_le_pow_snorm - theorem MeasureTheory.pow_mul_meas_ge_le_snorm - theorem MeasureTheory.snorm'_add_le - theorem MeasureTheory.snorm'_add_le_of_le_one - theorem MeasureTheory.snorm'_le_snorm'_mul_rpow_measure_univ - theorem MeasureTheory.snorm'_le_snorm'_mul_snorm' - theorem MeasureTheory.snorm'_le_snorm'_of_exponent_le - theorem MeasureTheory.snorm'_le_snormEssSup - theorem MeasureTheory.snorm'_le_snormEssSup_mul_rpow_measure_univ - theorem MeasureTheory.snorm'_lt_top_of_snorm'_lt_top_of_exponent_le - theorem MeasureTheory.snorm'_smul_le_mul_snorm' - theorem MeasureTheory.snorm'_sum_le - theorem MeasureTheory.snormEssSup_add_le - theorem MeasureTheory.snorm_add_le' - theorem MeasureTheory.snorm_add_le - theorem MeasureTheory.snorm_add_lt_top - theorem MeasureTheory.snorm_le_snorm_mul_rpow_measure_univ - theorem MeasureTheory.snorm_le_snorm_mul_snorm'_of_norm - theorem MeasureTheory.snorm_le_snorm_mul_snorm_of_nnnorm - theorem MeasureTheory.snorm_le_snorm_mul_snorm_top - theorem MeasureTheory.snorm_le_snorm_of_exponent_le - theorem MeasureTheory.snorm_le_snorm_top_mul_snorm - theorem MeasureTheory.snorm_smul_le_mul_snorm - theorem MeasureTheory.snorm_smul_le_snorm_mul_snorm_top - theorem MeasureTheory.snorm_smul_le_snorm_top_mul_snorm - theorem MeasureTheory.snorm_sub_le' - theorem MeasureTheory.snorm_sub_le - theorem MeasureTheory.snorm_sum_le Added Mathlib/MeasureTheory/Function/LpSeminorm/ChebyshevMarkov.lean + theorem MeasureTheory.meas_ge_le_mul_pow_snorm + theorem MeasureTheory.mul_meas_ge_le_pow_snorm' + theorem MeasureTheory.mul_meas_ge_le_pow_snorm + theorem MeasureTheory.pow_mul_meas_ge_le_snorm Added Mathlib/MeasureTheory/Function/LpSeminorm/CompareExp.lean + theorem MeasureTheory.Memℒp.memℒp_of_exponent_le + theorem MeasureTheory.Memℒp.smul + theorem MeasureTheory.Memℒp.smul_of_top_left + theorem MeasureTheory.Memℒp.smul_of_top_right + theorem MeasureTheory.snorm'_le_snorm'_mul_rpow_measure_univ + theorem MeasureTheory.snorm'_le_snorm'_mul_snorm' + theorem MeasureTheory.snorm'_le_snorm'_of_exponent_le + theorem MeasureTheory.snorm'_le_snormEssSup + theorem MeasureTheory.snorm'_le_snormEssSup_mul_rpow_measure_univ + theorem MeasureTheory.snorm'_lt_top_of_snorm'_lt_top_of_exponent_le + theorem MeasureTheory.snorm'_smul_le_mul_snorm' + theorem MeasureTheory.snorm_le_snorm_mul_rpow_measure_univ + theorem MeasureTheory.snorm_le_snorm_mul_snorm'_of_norm + theorem MeasureTheory.snorm_le_snorm_mul_snorm_of_nnnorm + theorem MeasureTheory.snorm_le_snorm_mul_snorm_top + theorem MeasureTheory.snorm_le_snorm_of_exponent_le + theorem MeasureTheory.snorm_le_snorm_top_mul_snorm + theorem MeasureTheory.snorm_smul_le_mul_snorm + theorem MeasureTheory.snorm_smul_le_snorm_mul_snorm_top + theorem MeasureTheory.snorm_smul_le_snorm_top_mul_snorm Added Mathlib/MeasureTheory/Function/LpSeminorm/TriangleInequality.lean + theorem MeasureTheory.LpAddConst_lt_top + theorem MeasureTheory.LpAddConst_of_one_le + theorem MeasureTheory.LpAddConst_zero + theorem MeasureTheory.Memℒp.add + theorem MeasureTheory.Memℒp.sub + theorem MeasureTheory.exists_Lp_half + theorem MeasureTheory.memℒp_finset_sum' + theorem MeasureTheory.memℒp_finset_sum + theorem MeasureTheory.snorm'_add_le + theorem MeasureTheory.snorm'_add_le_of_le_one + theorem MeasureTheory.snorm'_sum_le + theorem MeasureTheory.snormEssSup_add_le + theorem MeasureTheory.snorm_add_le' + theorem MeasureTheory.snorm_add_le + theorem MeasureTheory.snorm_add_lt_top + theorem MeasureTheory.snorm_sub_le' + theorem MeasureTheory.snorm_sub_le + theorem MeasureTheory.snorm_sum_le Modified Mathlib/MeasureTheory/Function/LpSeminorm/Trim.lean Modified Mathlib/MeasureTheory/Function/LpSpace.lean 2024-02-05 20:21:09 328b7ec chore(fun_prop): move examples to a separate test file (#10281) chore(fun_prop): move examples to a separate test file ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Tactic.lean Renamed Mathlib/Tactic/FunProp/AEMesurable.lean to Mathlib/Tactic/FunProp/AEMeasurable.lean Modified Mathlib/Tactic/FunProp/ContDiff.lean Modified Mathlib/Tactic/FunProp/Continuous.lean Modified Mathlib/Tactic/FunProp/Differentiable.lean Modified Mathlib/Tactic/FunProp/Measurable.lean - theorem ContinuousOn.log' Modified scripts/noshake.json Added test/fun_prop2.lean + theorem ContinuousOn.log' + def foo 2024-02-05 18:23:41 ef34249 doc: fix typo (#10277) ESTIMATED CHANGES Modified Mathlib/NumberTheory/ModularForms/Basic.lean 2024-02-05 18:00:09 c6a73d4 refactor(Data/FunLike): use unbundled inheritance from FunLike (#8386) The FunLike hierarchy is very big and gets scanned through each time we need a coercion (via the `CoeFun` instance). It looks like unbundled inheritance suits Lean 4 better here. The only class that still extends `FunLike` is `EquivLike`, since that has a custom `coe_injective'` field that is easier to implement. All other classes should take `FunLike` or `EquivLike` as a parameter. [Zulip thread](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/.60example.20.28p.20.3A.20P.29.20.3A.20Q.20.3A.3D.20p.60.20takes.200.2E25s.20to.20fail!) ## Important changes Previously, morphism classes would be `Type`-valued and extend `FunLike`: ```lean /-- `MyHomClass F A B` states that `F` is a type of `MyClass.op`-preserving morphisms. You should extend this class when you extend `MyHom`. -/ class MyHomClass (F : Type*) (A B : outParam <| Type*) [MyClass A] [MyClass B] extends FunLike F A B := (map_op : ∀ (f : F) (x y : A), f (MyClass.op x y) = MyClass.op (f x) (f y)) ``` After this PR, they should be `Prop`-valued and take `FunLike` as a parameter: ```lean /-- `MyHomClass F A B` states that `F` is a type of `MyClass.op`-preserving morphisms. You should extend this class when you extend `MyHom`. -/ class MyHomClass (F : Type*) (A B : outParam <| Type*) [MyClass A] [MyClass B] [FunLike F A B] : Prop := (map_op : ∀ (f : F) (x y : A), f (MyClass.op x y) = MyClass.op (f x) (f y)) ``` (Note that `A B` stay marked as `outParam` even though they are not purely required to be so due to the `FunLike` parameter already filling them in. This is required to see through type synonyms, which is important in the category theory library. Also, I think keeping them as `outParam` is slightly faster.) Similarly, `MyEquivClass` should take `EquivLike` as a parameter. As a result, every mention of `[MyHomClass F A B]` should become `[FunLike F A B] [MyHomClass F A B]`. ## Remaining issues ### Slower (failing) search While overall this gives some great speedups, there are some cases that are noticeably slower. In particular, a *failing* application of a lemma such as `map_mul` is more expensive. This is due to suboptimal processing of arguments. For example: ```lean variable [FunLike F M N] [Mul M] [Mul N] (f : F) (x : M) (y : M) theorem map_mul [MulHomClass F M N] : f (x * y) = f x * f y example [AddHomClass F A B] : f (x * y) = f x * f y := map_mul f _ _ ``` Before this PR, applying `map_mul f` gives the goals `[Mul ?M] [Mul ?N] [MulHomClass F ?M ?N]`. Since `M` and `N` are `out_param`s, `[MulHomClass F ?M ?N]` is synthesized first, supplies values for `?M` and `?N` and then the `Mul M` and `Mul N` instances can be found. After this PR, the goals become `[FunLike F ?M ?N] [Mul ?M] [Mul ?N] [MulHomClass F ?M ?N]`. Now `[FunLike F ?M ?N]` is synthesized first, supplies values for `?M` and `?N` and then the `Mul M` and `Mul N` instances can be found, before trying `MulHomClass F M N` which *fails*. Since the `Mul` hierarchy is very big, this can be slow to fail, especially when there is no such `Mul` instance. A long-term but harder to achieve solution would be to specify the order in which instance goals get solved. For example, we'd like to change the arguments to `map_mul` to look like `[FunLike F M N] [Mul M] [Mul N] [highPriority <| MulHomClass F M N]` because `MulHomClass` fails or succeeds much faster than the others. As a consequence, the `simpNF` linter is much slower since by design it tries and fails to apply many `map_` lemmas. The same issue occurs a few times in existing calls to `simp [map_mul]`, where `map_mul` is tried "too soon" and fails. Thanks to the speedup of leanprover/lean4#2478 the impact is very limited, only in files that already were close to the timeout. ### `simp` not firing sometimes This affects `map_smulₛₗ` and related definitions. For `simp` lemmas Lean apparently uses a slightly different mechanism to find instances, so that `rw` can find every argument to `map_smulₛₗ` successfully but `simp` can't: leanprover/lean4#3701. ### Missing instances due to unification failing Especially in the category theory library, we might sometimes have a type `A` which is also accessible as a synonym `(Bundled A hA).1`. Instance synthesis doesn't always work if we have `f : A →* B` but `x * y : (Bundled A hA).1` or vice versa. This seems to be mostly fixed by keeping `A B` as `outParam`s in `MulHomClass F A B`. (Presumably because Lean will do a definitional check `A =?= (Bundled A hA).1` instead of using the syntax in the discrimination tree.) ## Workaround for issues The timeouts can be worked around for now by specifying which `map_mul` we mean, either as `map_mul f` for some explicit `f`, or as e.g. `MonoidHomClass.map_mul`. `map_smulₛₗ` not firing as `simp` lemma can be worked around by going back to the pre-FunLike situation and making `LinearMap.map_smulₛₗ` a `simp` lemma instead of the generic `map_smulₛₗ`. Writing `simp [map_smulₛₗ _]` also works. ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/Equiv.lean +/- theorem AlgEquiv.coe_apply_coe_coe_symm_apply +/- theorem AlgEquiv.coe_coe_symm_apply_coe_apply Modified Mathlib/Algebra/Algebra/Hom.lean +/- def AlgHomClass.toAlgHom Modified Mathlib/Algebra/Algebra/NonUnitalHom.lean Modified Mathlib/Algebra/Algebra/NonUnitalSubalgebra.lean Modified Mathlib/Algebra/Algebra/Operations.lean Modified Mathlib/Algebra/Algebra/Spectrum.lean Modified Mathlib/Algebra/Algebra/Subalgebra/Unitization.lean Modified Mathlib/Algebra/Algebra/Unitization.lean +/- theorem Unitization.algHom_ext'' +/- theorem Unitization.algHom_ext Modified Mathlib/Algebra/Associated.lean Modified Mathlib/Algebra/BigOperators/Basic.lean +/- theorem map_prod Modified Mathlib/Algebra/BigOperators/Finsupp.lean +/- theorem map_finsupp_prod Modified Mathlib/Algebra/BigOperators/Multiset/Basic.lean +/- theorem Multiset.prod_hom' +/- theorem Multiset.prod_hom +/- theorem map_multiset_prod Modified Mathlib/Algebra/Category/AlgebraCat/Basic.lean Modified Mathlib/Algebra/Category/FGModuleCat/Basic.lean Modified Mathlib/Algebra/Category/ModuleCat/Basic.lean Modified Mathlib/Algebra/Category/MonCat/Basic.lean Modified Mathlib/Algebra/Category/MonCat/Colimits.lean Modified Mathlib/Algebra/Category/MonCat/FilteredColimits.lean Modified Mathlib/Algebra/Category/Ring/Basic.lean Modified Mathlib/Algebra/Category/SemigroupCat/Basic.lean Modified Mathlib/Algebra/DirectLimit.lean Modified Mathlib/Algebra/DirectSum/Module.lean Modified Mathlib/Algebra/Divisibility/Basic.lean +/- theorem map_dvd Modified Mathlib/Algebra/Group/Commute/Hom.lean Modified Mathlib/Algebra/Group/Equiv/Basic.lean +/- theorem MulEquivClass.map_eq_one_iff +/- theorem MulEquivClass.map_ne_one_iff Modified Mathlib/Algebra/Group/Ext.lean Modified Mathlib/Algebra/Group/Hom/Basic.lean +/- theorem NeZero.of_injective +/- theorem NeZero.of_map +/- theorem injective_iff_map_eq_one' +/- theorem injective_iff_map_eq_one Modified Mathlib/Algebra/Group/Hom/Defs.lean +/- theorem OneHom.coe_coe +/- theorem map_eq_one_iff +/- theorem map_ne_one_iff +/- theorem ne_one_of_map Modified Mathlib/Algebra/Group/UniqueProds.lean Modified Mathlib/Algebra/Group/Units/Hom.lean +/- theorem IsUnit.eq_on_inv +/- theorem IsUnit.of_leftInverse +/- theorem eq_on_inv +/- theorem map_units_inv Modified Mathlib/Algebra/GroupPower/IterateHom.lean Modified Mathlib/Algebra/GroupWithZero/NonZeroDivisors.lean Modified Mathlib/Algebra/GroupWithZero/Units/Lemmas.lean +/- theorem map_zpow₀ Modified Mathlib/Algebra/Invertible/Basic.lean Modified Mathlib/Algebra/Jordan/Basic.lean Modified Mathlib/Algebra/Lie/Submodule.lean Modified Mathlib/Algebra/Module/Basic.lean +/- theorem map_int_cast_smul +/- theorem map_inv_int_cast_smul +/- theorem map_inv_nat_cast_smul +/- theorem map_nat_cast_smul +/- theorem map_rat_cast_smul +/- theorem map_rat_smul Modified Mathlib/Algebra/Module/Equiv.lean Modified Mathlib/Algebra/Module/LinearMap/Basic.lean Modified Mathlib/Algebra/Module/LinearMap/Pointwise.lean +/- theorem image_smul_set +/- theorem image_smul_setₛₗ +/- theorem preimage_smul_set +/- theorem preimage_smul_setₛₗ Modified Mathlib/Algebra/Module/LocalizedModule.lean Modified Mathlib/Algebra/Module/PID.lean Modified Mathlib/Algebra/Module/Submodule/Map.lean Modified Mathlib/Algebra/MonoidAlgebra/Basic.lean +/- theorem AddMonoidAlgebra.liftNC_mul +/- theorem AddMonoidAlgebra.liftNC_one +/- theorem MonoidAlgebra.liftNC_mul +/- theorem MonoidAlgebra.liftNC_one +/- theorem MonoidAlgebra.mapDomain_algebraMap Modified Mathlib/Algebra/MonoidAlgebra/Division.lean Modified Mathlib/Algebra/Order/AbsoluteValue.lean Modified Mathlib/Algebra/Order/Floor.lean Modified Mathlib/Algebra/Order/Hom/Basic.lean Modified Mathlib/Algebra/Order/Hom/Monoid.lean Modified Mathlib/Algebra/Order/Hom/Ring.lean Modified Mathlib/Algebra/Order/Monoid/Prod.lean Modified Mathlib/Algebra/Order/Monoid/WithTop.lean Modified Mathlib/Algebra/Parity.lean +/- theorem IsSquare.map +/- theorem Odd.map Modified Mathlib/Algebra/Ring/Basic.lean Modified Mathlib/Algebra/Ring/CentroidHom.lean Modified Mathlib/Algebra/Ring/Divisibility/Basic.lean +/- theorem map_dvd_iff Modified Mathlib/Algebra/Ring/Equiv.lean +/- def AddEquiv.toRingEquiv +/- def MulEquiv.toRingEquiv +/- def RingEquiv.ofHomInv +/- def RingEquivClass.toRingEquiv Modified Mathlib/Algebra/Ring/Hom/Defs.lean +/- theorem RingHom.coe_coe +/- theorem RingHom.map_ite_one_zero +/- theorem RingHom.map_ite_zero_one Modified Mathlib/Algebra/Ring/Units.lean Modified Mathlib/Algebra/Star/Basic.lean Modified Mathlib/Algebra/Star/NonUnitalSubalgebra.lean Modified Mathlib/Algebra/Star/SelfAdjoint.lean +/- theorem IsSelfAdjoint.starHom_apply +/- theorem isSelfAdjoint_starHom_apply Modified Mathlib/Algebra/Star/StarAlgHom.lean Modified Mathlib/Algebra/Star/Subalgebra.lean +/- theorem StarAlgHom.ext_adjoin +/- theorem StarAlgHom.ext_adjoin_singleton Modified Mathlib/AlgebraicGeometry/Morphisms/Basic.lean + theorem AlgebraicGeometry.CommRingCat.id_apply Modified Mathlib/AlgebraicGeometry/Morphisms/QuasiCompact.lean Modified Mathlib/AlgebraicGeometry/Morphisms/QuasiSeparated.lean Modified Mathlib/AlgebraicGeometry/Spec.lean Modified Mathlib/AlgebraicGeometry/StructureSheaf.lean Modified Mathlib/Analysis/Analytic/CPolynomial.lean Modified Mathlib/Analysis/Convex/Extreme.lean Modified Mathlib/Analysis/InnerProductSpace/Rayleigh.lean Modified Mathlib/Analysis/InnerProductSpace/TwoDim.lean Modified Mathlib/Analysis/Normed/Field/Basic.lean Modified Mathlib/Analysis/Normed/Group/Basic.lean Modified Mathlib/Analysis/Normed/Group/Hom.lean Modified Mathlib/Analysis/Normed/Group/SemiNormedGroupCat.lean Modified Mathlib/Analysis/Normed/Group/Seminorm.lean Modified Mathlib/Analysis/Normed/Ring/Seminorm.lean + theorem MulRingNorm.toFun_eq_coe + theorem RingNorm.toFun_eq_coe Modified Mathlib/Analysis/NormedSpace/Basic.lean Modified Mathlib/Analysis/NormedSpace/Exponential.lean +/- theorem NormedSpace.map_exp +/- theorem NormedSpace.map_exp_of_mem_ball Modified Mathlib/Analysis/NormedSpace/HahnBanach/SeparatingDual.lean Modified Mathlib/Analysis/NormedSpace/LinearIsometry.lean + theorem LinearIsometry.isComplete_image_iff' Modified Mathlib/Analysis/NormedSpace/OperatorNorm.lean Modified Mathlib/Analysis/NormedSpace/Spectrum.lean +/- theorem AlgHom.norm_apply_le_self +/- theorem AlgHom.norm_apply_le_self_mul_norm_one Modified Mathlib/Analysis/NormedSpace/Star/Basic.lean Modified Mathlib/Analysis/NormedSpace/Star/GelfandDuality.lean Modified Mathlib/Analysis/NormedSpace/Star/Matrix.lean Modified Mathlib/Analysis/NormedSpace/Star/Spectrum.lean + theorem AlgHomClass.instStarAlgHomClass Modified Mathlib/Analysis/NormedSpace/Unitization.lean Modified Mathlib/Analysis/Seminorm.lean Modified Mathlib/Combinatorics/Additive/Behrend.lean Modified Mathlib/Combinatorics/Additive/SalemSpencer.lean +/- theorem MulSalemSpencer.image Modified Mathlib/Data/Complex/Exponential.lean Modified Mathlib/Data/DFinsupp/Basic.lean Modified Mathlib/Data/Finset/Lattice.lean +/- theorem map_finset_inf' +/- theorem map_finset_inf +/- theorem map_finset_sup' +/- theorem map_finset_sup Modified Mathlib/Data/Finset/NoncommProd.lean Modified Mathlib/Data/Finset/Pointwise.lean +/- def Finset.imageMonoidHom +/- def Finset.imageOneHom +/- theorem Finset.image_smul_distrib Modified Mathlib/Data/Finset/Sups.lean Modified Mathlib/Data/Finsupp/Basic.lean Modified Mathlib/Data/Finsupp/Defs.lean +/- theorem Finsupp.mapRange_add' +/- theorem Finsupp.mapRange_neg' +/- theorem Finsupp.mapRange_sub' Modified Mathlib/Data/Fintype/Card.lean +/- theorem Fintype.card_range Modified Mathlib/Data/FunLike/Basic.lean +/- theorem do_something +/- theorem map_cool Modified Mathlib/Data/FunLike/Embedding.lean +/- theorem EmbeddingLike.comp_injective Modified Mathlib/Data/FunLike/Equiv.lean Modified Mathlib/Data/Int/Cast/Lemmas.lean +/- theorem eq_intCast' +/- theorem eq_intCast +/- theorem ext_int' +/- theorem map_intCast Modified Mathlib/Data/List/BigOperators/Basic.lean +/- theorem List.prod_hom +/- theorem List.prod_map_hom +/- theorem map_list_prod Modified Mathlib/Data/List/BigOperators/Lemmas.lean +/- theorem unop_map_list_prod Modified Mathlib/Data/MvPolynomial/Division.lean Modified Mathlib/Data/Nat/Cast/Basic.lean +/- theorem NeZero.nat_of_neZero +/- theorem eq_natCast +/- theorem ext_nat +/- theorem map_natCast' +/- theorem map_natCast +/- theorem map_ofNat Modified Mathlib/Data/Nat/Cast/Order.lean Modified Mathlib/Data/Polynomial/AlgebraMap.lean +/- theorem Polynomial.aeval_algHom_apply Modified Mathlib/Data/Polynomial/EraseLead.lean +/- theorem Polynomial.map_natDegree_eq_natDegree +/- theorem Polynomial.map_natDegree_eq_sub +/- theorem Polynomial.mono_map_natDegree_eq Modified Mathlib/Data/Rat/Cast/Defs.lean +/- theorem RingHom.ext_rat +/- theorem eq_ratCast Modified Mathlib/Data/Set/Intervals/OrdConnected.lean +/- theorem Set.ordConnected_image +/- theorem Set.ordConnected_preimage +/- theorem Set.ordConnected_range Modified Mathlib/Data/Set/Intervals/UnorderedInterval.lean +/- theorem Set.dual_uIcc Modified Mathlib/Data/Set/Pointwise/Basic.lean Modified Mathlib/Data/Set/Pointwise/BigOperators.lean Modified Mathlib/Data/Set/Pointwise/SMul.lean +/- theorem Set.image_smul_distrib Modified Mathlib/Data/Set/Sups.lean Modified Mathlib/Data/ZMod/Module.lean Modified Mathlib/Dynamics/BirkhoffSum/Average.lean Modified Mathlib/Dynamics/BirkhoffSum/Basic.lean +/- theorem map_birkhoffSum Modified Mathlib/Dynamics/Circle/RotationNumber/TranslationNumber.lean Modified Mathlib/FieldTheory/Adjoin.lean Modified Mathlib/FieldTheory/RatFunc.lean +/- theorem RatFunc.map_apply +/- theorem RatFunc.map_apply_div +/- theorem RatFunc.map_apply_div_ne_zero +/- theorem RatFunc.map_denom_ne_zero Modified Mathlib/FieldTheory/Subfield.lean Modified Mathlib/Geometry/Manifold/Algebra/LeftInvariantDerivation.lean Modified Mathlib/Geometry/Manifold/Algebra/Monoid.lean Modified Mathlib/Geometry/Manifold/Sheaf/LocallyRingedSpace.lean Modified Mathlib/GroupTheory/Commutator.lean Modified Mathlib/GroupTheory/Exponent.lean +/- theorem MonoidHom.exponent_dvd Modified Mathlib/GroupTheory/GroupAction/Hom.lean +/- def DistribMulActionHomClass.toDistribMulActionHom + theorem IsScalarTower.smulHomClass - def IsScalarTower.smulHomClass +/- def MulSemiringActionHomClass.toMulSemiringActionHom +/- def SMulHomClass.toMulActionHom Modified Mathlib/GroupTheory/Solvable.lean Modified Mathlib/GroupTheory/SpecificGroups/Cyclic.lean Modified Mathlib/GroupTheory/Submonoid/Membership.lean +/- theorem Submonoid.map_powers Modified Mathlib/GroupTheory/Submonoid/Operations.lean Modified Mathlib/GroupTheory/Subsemigroup/Operations.lean Modified Mathlib/LinearAlgebra/Basic.lean Modified Mathlib/LinearAlgebra/BilinearMap.lean Modified Mathlib/LinearAlgebra/Charpoly/ToMatrix.lean Modified Mathlib/LinearAlgebra/CliffordAlgebra/Even.lean Modified Mathlib/LinearAlgebra/CliffordAlgebra/EvenEquiv.lean Modified Mathlib/LinearAlgebra/CliffordAlgebra/Grading.lean Modified Mathlib/LinearAlgebra/Eigenspace/Basic.lean Modified Mathlib/LinearAlgebra/ExteriorAlgebra/Grading.lean Modified Mathlib/LinearAlgebra/FiniteDimensional.lean Modified Mathlib/LinearAlgebra/LinearIndependent.lean Modified Mathlib/LinearAlgebra/PiTensorProduct.lean Modified Mathlib/LinearAlgebra/Prod.lean Modified Mathlib/LinearAlgebra/QuadraticForm/Basic.lean +/- theorem QuadraticForm.polar_comp Modified Mathlib/LinearAlgebra/QuadraticForm/Isometry.lean Modified Mathlib/LinearAlgebra/QuadraticForm/IsometryEquiv.lean Modified Mathlib/LinearAlgebra/Ray.lean +/- theorem Function.Injective.sameRay_map_iff Modified Mathlib/LinearAlgebra/Span.lean + theorem Submodule.span_image' Modified Mathlib/LinearAlgebra/TensorAlgebra/Grading.lean Modified Mathlib/LinearAlgebra/TensorProduct/Graded/External.lean Modified Mathlib/LinearAlgebra/TensorProduct/Graded/Internal.lean Modified Mathlib/LinearAlgebra/TensorProduct/RightExactness.lean Modified Mathlib/LinearAlgebra/Trace.lean Modified Mathlib/Logic/Embedding/Basic.lean Modified Mathlib/Logic/Equiv/Defs.lean Modified Mathlib/MeasureTheory/Measure/Haar/Disintegration.lean Modified Mathlib/ModelTheory/Basic.lean +/- def FirstOrder.Language.StrongHomClass.toEmbedding Modified Mathlib/NumberTheory/LegendreSymbol/MulCharacter.lean Modified Mathlib/NumberTheory/ModularForms/Basic.lean Modified Mathlib/NumberTheory/ModularForms/SlashInvariantForms.lean +/- theorem SlashInvariantForm.slash_action_eqn Modified Mathlib/NumberTheory/NumberField/Basic.lean +/- theorem NumberField.RingOfIntegers.map_mem Modified Mathlib/NumberTheory/NumberField/Embeddings.lean Modified Mathlib/NumberTheory/RamificationInertia.lean Modified Mathlib/Order/Category/FinBoolAlg.lean Modified Mathlib/Order/Category/HeytAlg.lean Modified Mathlib/Order/Category/NonemptyFinLinOrd.lean Modified Mathlib/Order/Closure.lean Modified Mathlib/Order/Cover.lean +/- theorem apply_covBy_apply_iff +/- theorem apply_wcovBy_apply_iff Modified Mathlib/Order/Filter/Pointwise.lean Modified Mathlib/Order/Heyting/Hom.lean + theorem BoundedLatticeHomClass.toBiheytingHomClass - def BoundedLatticeHomClass.toBiheytingHomClass Modified Mathlib/Order/Hom/Basic.lean +/- theorem OrderHomClass.coe_coe +/- def OrderIso.ofHomInv +/- def OrderIsoClass.toOrderIso Modified Mathlib/Order/Hom/Bounded.lean Modified Mathlib/Order/Hom/CompleteLattice.lean Modified Mathlib/Order/Hom/Lattice.lean Modified Mathlib/Order/InitialSeg.lean Modified Mathlib/Order/OmegaCompletePartialOrder.lean Modified Mathlib/Order/RelIso/Basic.lean Modified Mathlib/Order/RelIso/Set.lean +/- theorem RelHomClass.map_inf +/- theorem RelHomClass.map_sup Modified Mathlib/Order/SupClosed.lean +/- theorem InfClosed.image +/- theorem InfClosed.preimage +/- theorem IsSublattice.image +/- theorem IsSublattice.preimage +/- theorem IsSublattice_range +/- theorem SupClosed.image +/- theorem SupClosed.preimage +/- theorem infClosed_range +/- theorem supClosed_range Modified Mathlib/RingTheory/Artinian.lean +/- theorem Function.Surjective.isArtinianRing Modified Mathlib/RingTheory/ClassGroup.lean Modified Mathlib/RingTheory/DedekindDomain/PID.lean Modified Mathlib/RingTheory/Derivation/Basic.lean Modified Mathlib/RingTheory/Derivation/ToSquareZero.lean Modified Mathlib/RingTheory/Finiteness.lean Modified Mathlib/RingTheory/Ideal/Cotangent.lean Modified Mathlib/RingTheory/Ideal/Norm.lean +/- theorem Ideal.natAbs_det_equiv Modified Mathlib/RingTheory/Ideal/Operations.lean +/- theorem Ideal.map_isPrime_of_equiv +/- theorem RingHom.ker_equiv +/- theorem RingHom.ker_isMaximal_of_surjective +/- theorem RingHom.ker_isPrime Modified Mathlib/RingTheory/Ideal/Prod.lean Modified Mathlib/RingTheory/Ideal/QuotientOperations.lean Modified Mathlib/RingTheory/IntegralClosure.lean +/- theorem map_isIntegral_int Modified Mathlib/RingTheory/LaurentSeries.lean Modified Mathlib/RingTheory/LocalProperties.lean Modified Mathlib/RingTheory/Localization/Integral.lean Modified Mathlib/RingTheory/Localization/Submodule.lean Modified Mathlib/RingTheory/Multiplicity.lean +/- theorem multiplicity.le_multiplicity_map +/- theorem multiplicity.multiplicity_map_eq Modified Mathlib/RingTheory/Nilpotent.lean Modified Mathlib/RingTheory/NonUnitalSubring/Basic.lean Modified Mathlib/RingTheory/NonUnitalSubsemiring/Basic.lean +/- theorem NonUnitalRingHom.coe_srange +/- theorem NonUnitalRingHom.mem_srange +/- theorem NonUnitalRingHom.mem_srange_self +/- theorem NonUnitalRingHom.srange_eq_map Modified Mathlib/RingTheory/Polynomial/Basic.lean Modified Mathlib/RingTheory/Polynomial/Bernstein.lean Modified Mathlib/RingTheory/PowerSeries/Basic.lean Modified Mathlib/RingTheory/PowerSeries/Derivative.lean Modified Mathlib/RingTheory/RingInvo.lean +/- def RingInvoClass.toRingInvo Modified Mathlib/RingTheory/RootsOfUnity/Basic.lean +/- theorem IsPrimitiveRoot.map_rootsOfUnity +/- theorem map_rootsOfUnity_eq_pow_self +/- def rootsOfUnityEquivOfPrimitiveRoots Modified Mathlib/RingTheory/Valuation/Basic.lean Modified Mathlib/Topology/Algebra/ContinuousAffineMap.lean Modified Mathlib/Topology/Algebra/ContinuousMonoidHom.lean Modified Mathlib/Topology/Algebra/Equicontinuity.lean Modified Mathlib/Topology/Algebra/Group/Basic.lean +/- theorem topologicalGroup_induced Modified Mathlib/Topology/Algebra/InfiniteSum/Basic.lean Modified Mathlib/Topology/Algebra/Module/Alternating/Basic.lean Modified Mathlib/Topology/Algebra/Module/Basic.lean +/- theorem ContinuousLinearMap.isClosed_ker Modified Mathlib/Topology/Algebra/Module/CharacterSpace.lean Modified Mathlib/Topology/Algebra/Module/Multilinear/Basic.lean Modified Mathlib/Topology/Algebra/Module/WeakDual.lean Modified Mathlib/Topology/Algebra/Monoid.lean +/- theorem Inducing.continuousMul +/- theorem continuousMul_induced Modified Mathlib/Topology/Algebra/StarSubalgebra.lean Modified Mathlib/Topology/Algebra/UniformConvergence.lean Modified Mathlib/Topology/Algebra/UniformGroup.lean Modified Mathlib/Topology/Bornology/Hom.lean Modified Mathlib/Topology/Compactness/SigmaCompact.lean Modified Mathlib/Topology/Connected/PathConnected.lean Modified Mathlib/Topology/ContinuousFunction/Basic.lean Modified Mathlib/Topology/ContinuousFunction/Bounded.lean Modified Mathlib/Topology/ContinuousFunction/CocompactMap.lean Modified Mathlib/Topology/ContinuousFunction/ZeroAtInfty.lean + theorem ZeroAtInftyContinuousMap.zeroAtInftyContinuousMapClass.ofCompact - def ZeroAtInftyContinuousMap.zeroAtInftyContinuousMapClass.ofCompact Modified Mathlib/Topology/FiberBundle/Constructions.lean Modified Mathlib/Topology/Hom/Open.lean Modified Mathlib/Topology/Homotopy/Basic.lean Modified Mathlib/Topology/Homotopy/HomotopyGroup.lean Modified Mathlib/Topology/Instances/RealVectorSpace.lean +/- theorem map_real_smul Modified Mathlib/Topology/MetricSpace/Dilation.lean +/- theorem Dilation.dist_eq +/- theorem Dilation.nndist_eq Modified Mathlib/Topology/MetricSpace/DilationEquiv.lean Modified Mathlib/Topology/MetricSpace/GromovHausdorff.lean Modified Mathlib/Topology/Order/Hom/Basic.lean Modified Mathlib/Topology/Order/Hom/Esakia.lean Modified Mathlib/Topology/Sheaves/SheafCondition/UniqueGluing.lean Modified Mathlib/Topology/Spectral/Hom.lean Modified Mathlib/Topology/VectorBundle/Constructions.lean Modified test/positivity.lean 2024-02-05 15:53:53 55f0d23 doc: fix typos (#10271) Fix typos in docstrings and code. ESTIMATED CHANGES Modified Mathlib/NumberTheory/ArithmeticFunction.lean Modified Mathlib/Tactic/FunProp/AEMesurable.lean Modified Mathlib/Tactic/FunProp/ContDiff.lean Modified Mathlib/Tactic/FunProp/Core.lean Modified Mathlib/Tactic/FunProp/Measurable.lean Modified Mathlib/Tactic/FunProp/Mor.lean Modified Mathlib/Tactic/FunProp/RefinedDiscrTree.lean Modified Mathlib/Tactic/FunProp/Theorems.lean Modified Mathlib/Tactic/FunProp/ToStd.lean Modified Mathlib/Tactic/FunProp/Types.lean 2024-02-05 14:11:35 208205e chore(WithTop): add `@[simp]` to `coe_add` (#10204) ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Monoid/WithTop.lean +/- theorem WithTop.coe_add 2024-02-05 14:11:34 2e5d90d chore(Topology): move some definitions to new files (#10151) In some cases, the order of implicit arguments changed because now they appear in a different order in `variable`s. Also, some definitions used greek letters for topological spaces, changed to `X`/`Y`. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Topology/AlexandrovDiscrete.lean Modified Mathlib/Topology/Basic.lean - def AccPt - def ClusterPt - structure Continuous - def ContinuousAt - def Dense - def DenseRange - theorem IsOpen.inter - def IsOpen - def MapClusterPt - def closure - def frontier - def interior - theorem isOpen_sUnion - theorem isOpen_univ - def nhdsWithin Modified Mathlib/Topology/Clopen.lean - def IsClopen Modified Mathlib/Topology/Compactness/Compact.lean - def Filter.coclosedCompact - def Filter.cocompact - def IsCompact Modified Mathlib/Topology/Compactness/LocallyCompact.lean Modified Mathlib/Topology/Constructions.lean Modified Mathlib/Topology/ContinuousOn.lean - def ContinuousOn - def ContinuousWithinAt Added Mathlib/Topology/Defs/Basic.lean + structure Continuous + def Dense + def DenseRange + def IsClopen + def IsClosedMap + theorem IsOpen.inter + def IsOpen + def IsOpenMap + def closure + def frontier + def interior + theorem isOpen_sUnion + theorem isOpen_univ Added Mathlib/Topology/Defs/Filter.lean + def AccPt + def ClusterPt + def ContinuousAt + def ContinuousOn + def ContinuousWithinAt + def Filter.coclosedCompact + def Filter.cocompact + def IsCompact + def MapClusterPt + def nhdsSet + def nhdsWithin Added Mathlib/Topology/Defs/Induced.lean + structure ClosedEmbedding + structure Embedding + structure Inducing + structure OpenEmbedding + def QuotientMap + def TopologicalSpace.coinduced + def TopologicalSpace.induced Modified Mathlib/Topology/Instances/Discrete.lean Modified Mathlib/Topology/Maps.lean - structure ClosedEmbedding - structure Embedding - structure Inducing - def IsClosedMap - def IsOpenMap - structure OpenEmbedding - def QuotientMap Modified Mathlib/Topology/NhdsSet.lean - def nhdsSet Modified Mathlib/Topology/Order.lean - def TopologicalSpace.coinduced - def TopologicalSpace.induced Modified Mathlib/Topology/Partial.lean 2024-02-05 13:02:07 ad95668 feat: add lemma `exists_squarefree_dvd_pow_of_ne_zero` (#10241) ESTIMATED CHANGES Modified Mathlib/Algebra/Associated.lean + theorem Irreducible.coprime_iff_not_dvd' Modified Mathlib/Algebra/Squarefree/UniqueFactorizationDomain.lean + theorem exists_squarefree_dvd_pow_of_ne_zero Modified Mathlib/RingTheory/PrincipalIdealDomain.lean 2024-02-05 13:02:06 65a5ead chore: Move `positivity` extensions (#10140) The goal here is to have access to `positivity` earlier in the import hierarchy ESTIMATED CHANGES Modified Mathlib/Algebra/Order/AbsoluteValue.lean Modified Mathlib/Algebra/Order/Archimedean.lean Modified Mathlib/Algebra/Order/Chebyshev.lean Modified Mathlib/Algebra/Order/Field/Basic.lean + def Mathlib.Meta.Positivity.evalDiv + def Mathlib.Meta.Positivity.evalInv + def Mathlib.Meta.Positivity.evalPowZeroInt Modified Mathlib/Algebra/Order/Field/Power.lean + def Mathlib.Meta.Positivity.evalZPow Modified Mathlib/Analysis/Convex/Mul.lean Modified Mathlib/Combinatorics/SetFamily/FourFunctions.lean Modified Mathlib/Combinatorics/SimpleGraph/Regularity/Energy.lean Modified Mathlib/Combinatorics/SimpleGraph/Triangle/Basic.lean Modified Mathlib/Data/Rat/Cast/Order.lean + def Mathlib.Meta.Positivity.evalRatCast Modified Mathlib/NumberTheory/Divisors.lean Modified Mathlib/SetTheory/Surreal/Dyadic.lean Modified Mathlib/Tactic/Positivity/Basic.lean - def Mathlib.Meta.Positivity.evalDiv - def Mathlib.Meta.Positivity.evalInv - def Mathlib.Meta.Positivity.evalPowZeroInt - def Mathlib.Meta.Positivity.evalRatCast - def Mathlib.Meta.Positivity.evalZpow Modified Mathlib/Tactic/Positivity/Core.lean Modified Mathlib/Tactic/Rify.lean Modified scripts/noshake.json Modified test/norm_cast.lean 2024-02-05 11:50:25 6d578c5 feat: tensor algebra of free module over integral domain is a domain (#9890) Provide instances * `Nontrivial (TensorAlgebra R M)` when `M` is a module over a nontrivial semiring `R` * `NoZeroDivisors (FreeAlgebra R X)` when `R` is a commutative semiring with no zero-divisors and `X` any type * `IsDomain (FreeAlgebra R X)` when `R` is an integral domain and `X` is any type * `TwoUniqueProds (FreeMonoid X)` where `X` is any type (this provides `NoZeroDivisors (MonoidAlgebra R (FreeMonoid X))` when `R` is a semiring and `X` any type, via `TwoUniqueProds.toUniqueProds` and `MonoidAlgebra.instNoZeroDivisorsOfUniqueProds`) * `NoZeroDivisors (TensorAlgebra R M)` when `M` is a free module over a commutative semiring `R` with no zero-divisors * `IsDomain (TensorAlgebra R M)` when `M` is a free module over an integral domain `R` In Algebra.Group.UniqueProds: * Rename `UniqueProds.mulHom_image_of_injective` to `UniqueProds.of_injective_mulHom`. * New lemmas `UniqueMul.of_mulHom_image`, `UniqueProds.of_mulHom`, `TwoUniqueProds.of_mulHom` show the relevant property holds in the domain of a multiplicative homomorphism if it holds in the codomain, under a certain hypothesis on the homomorphism. ESTIMATED CHANGES Modified Mathlib/Algebra/FreeAlgebra.lean Modified Mathlib/Algebra/Group/UniqueProds.lean + theorem MulEquiv.twoUniqueProds_iff + theorem MulEquiv.uniqueProds_iff - theorem TwoUniqueProds.mulHom_image_iff - theorem TwoUniqueProds.mulHom_image_of_injective + theorem TwoUniqueProds.of_injective_mulHom + theorem TwoUniqueProds.of_mulHom + theorem UniqueMul.of_mulHom_image - theorem UniqueProds.mulHom_image_iff - theorem UniqueProds.mulHom_image_of_injective + theorem UniqueProds.of_injective_mulHom + theorem UniqueProds.of_mulHom Modified Mathlib/Data/Finset/Card.lean + theorem Finset.one_lt_card_iff_nontrivial - theorem Finset.one_lt_card_iff_nontrivial_coe Modified Mathlib/Data/Finset/Prod.lean +/- theorem Finset.nontrivial_prod_iff Modified Mathlib/LinearAlgebra/TensorAlgebra/Basic.lean Modified Mathlib/LinearAlgebra/TensorAlgebra/Basis.lean 2024-02-05 11:04:43 3284c6f chore(LinearAlgebra/*Dual*): Fintype -> Finite (#10265) Also use lowercase for `DualBases` axioms. ESTIMATED CHANGES Modified Archive/Sensitivity.lean Modified Mathlib/LinearAlgebra/BilinearForm/DualLattice.lean +/- theorem BilinForm.dualSubmodule_dualSubmodule_flip_of_basis +/- theorem BilinForm.dualSubmodule_flip_dualSubmodule_of_basis +/- theorem BilinForm.dualSubmodule_span_of_basis Modified Mathlib/LinearAlgebra/BilinearForm/Properties.lean Modified Mathlib/LinearAlgebra/Dual.lean +/- theorem Basis.dualBasis_equivFun +/- theorem Basis.toDual_eq_equivFun +/- theorem Module.DualBases.coe_dualBasis 2024-02-05 10:10:50 d27890e chore(MetricSpace/Baire): fix Encodable/Countable (#10249) - Assume `{ι : Sort*} [Countable ι]` instead of `{ι : Type*} [Encodable ι]`. - Generalize 2nd Baire theorem from T₂ spaces to R₁ spaces. - Rename type variables. ESTIMATED CHANGES Modified Mathlib/Topology/MetricSpace/Baire.lean +/- theorem Dense.inter_of_Gδ +/- theorem IsGδ.dense_biUnion_interior_of_closed +/- theorem IsGδ.dense_iUnion_interior_of_closed +/- theorem IsGδ.dense_sUnion_interior_of_closed +/- theorem dense_biInter_of_Gδ +/- theorem dense_biInter_of_isOpen +/- theorem dense_biUnion_interior_of_closed +/- theorem dense_iInter_of_Gδ +/- theorem dense_iInter_of_isOpen +/- theorem dense_iInter_of_isOpen_nat +/- theorem dense_iUnion_interior_of_closed +/- theorem dense_of_mem_residual +/- theorem dense_sInter_of_Gδ +/- theorem dense_sInter_of_isOpen +/- theorem dense_sUnion_interior_of_closed +/- theorem eventually_residual +/- theorem mem_residual +/- theorem nonempty_interior_of_iUnion_of_closed Modified Mathlib/Topology/Sets/Compacts.lean + theorem IsOpen.exists_positiveCompacts_closure_subset 2024-02-05 10:10:49 6d4aa85 feat: trivial morphisms in StructuredArrow (#10244) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Comma/StructuredArrow.lean + def CategoryTheory.CostructuredArrow.mkPrecomp + theorem CategoryTheory.CostructuredArrow.mkPrecomp_comp + theorem CategoryTheory.CostructuredArrow.mkPrecomp_id + def CategoryTheory.StructuredArrow.mkPostcomp + theorem CategoryTheory.StructuredArrow.mkPostcomp_comp + theorem CategoryTheory.StructuredArrow.mkPostcomp_id 2024-02-05 10:10:49 eedf69c feat: fderiv of ContinuousMultilinearMap applied to const; use for SchwartzMap.iteratedPDeriv (#9576) add `ContinuousMultilinearMap.apply`; use for `fderiv`, `iteratedFDeriv`, `SchwartzMap.iteratedPDeriv` Defining `ContinuousMultilinearMap.apply` as a CLM (using existing proof of continuity) enables the proof that the application of a `ContinuousMultilinearMap` to a constant commutes with differentiation. This closes a todo in `Mathlib/Analysis/Distribution/SchwartzSpace.lean`. ESTIMATED CHANGES Modified Mathlib/Analysis/Calculus/ContDiff/Basic.lean + theorem iteratedFDerivWithin_clm_apply_const_apply + theorem iteratedFDeriv_clm_apply_const_apply Modified Mathlib/Analysis/Calculus/FDeriv/Mul.lean + theorem Differentiable.continuousMultilinear_apply_const + theorem DifferentiableAt.continuousMultilinear_apply_const + theorem DifferentiableOn.continuousMultilinear_apply_const + theorem DifferentiableWithinAt.continuousMultilinear_apply_const + theorem HasFDerivAt.continuousMultilinear_apply_const + theorem HasFDerivWithinAt.continuousMultilinear_apply_const + theorem HasStrictFDerivAt.continuousMultilinear_apply_const + theorem fderivWithin_continuousMultilinear_apply_const + theorem fderivWithin_continuousMultilinear_apply_const_apply + theorem fderiv_continuousMultilinear_apply_const + theorem fderiv_continuousMultilinear_apply_const_apply Modified Mathlib/Analysis/Distribution/SchwartzSpace.lean + theorem SchwartzMap.iteratedPDeriv_eq_iteratedFDeriv Modified Mathlib/Analysis/NormedSpace/Multilinear/Basic.lean + def ContinuousMultilinearMap.apply + theorem ContinuousMultilinearMap.apply_apply 2024-02-05 09:20:04 fbee97e chore(Topology): Fintype -> Finite (#10262) ESTIMATED CHANGES Modified Mathlib/Topology/Algebra/Module/FiniteDimension.lean +/- theorem Basis.constrL_apply +/- theorem continuous_equivFun_basis Modified Mathlib/Topology/Bases.lean +/- theorem TopologicalSpace.isSeparable_pi Modified Mathlib/Topology/Bornology/Constructions.lean 2024-02-05 07:15:57 a12f60d feat(Analysis/InnerProductSpace): product of orthonormal basis is orthonormal basis of the L2-product (#10107) ESTIMATED CHANGES Modified Mathlib/Analysis/InnerProductSpace/ProdL2.lean + def OrthonormalBasis.prod + theorem OrthonormalBasis.prod_apply 2024-02-05 06:26:52 31eb08a chore(Normed): move `abs_norm`, add `abs_norm'` (#10202) ESTIMATED CHANGES Modified Mathlib/Analysis/Normed/Group/Basic.lean + theorem abs_norm' Modified Mathlib/Analysis/NormedSpace/Basic.lean - theorem abs_norm 2024-02-05 03:57:25 6bd7a49 chore: golf `separable_iff_squarefree` (#10236) In fact this theorem admits a proof without using any lemmas introduced in #10170. For this I had to remove some redundant [GCDMonoid R] assumptions in RingTheory/PrincipalIdealDomain.lean. ESTIMATED CHANGES Modified Mathlib/FieldTheory/Perfect.lean Modified Mathlib/RingTheory/PrincipalIdealDomain.lean 2024-02-05 02:27:31 c174b2d chore(Module/Torsion): drop `DecidableEq` assumptions (#10253) ESTIMATED CHANGES Modified Mathlib/Algebra/Module/Torsion.lean +/- theorem Submodule.iSup_torsionBySet_ideal_eq_torsionBySet_iInf +/- theorem Submodule.iSup_torsionBy_eq_torsionBy_prod +/- theorem Submodule.supIndep_torsionBy +/- theorem Submodule.supIndep_torsionBySet_ideal 2024-02-05 00:24:16 8dd23a4 feat(Matrix/CharP): drop `Fintype` assumption (#10261) Also generalize `[Ring R]` to `[AddMonoidWithOne R]`. ESTIMATED CHANGES Modified Mathlib/Data/Matrix/CharP.lean 2024-02-05 00:24:15 1dc9adf chore(NormedSpace/Exponential): Fintype → Finite (#10260) ESTIMATED CHANGES Modified Mathlib/Analysis/NormedSpace/Exponential.lean +/- theorem Function.update_exp +/- theorem Pi.exp_apply +/- theorem Pi.exp_def 2024-02-05 00:24:14 28c0092 fix: generalize DivisionRing.toOfScientific (#9947) If you can cast a rat to a type, then we probably want decimal notation to work there too. This has the benefit of making the instance computable even in cases where some parts of the division ring structure are not. It also means that this could apply to matrices of rational numbers, which are not a division ring, but could have a rat cast. ESTIMATED CHANGES Modified Mathlib/Algebra/Field/Defs.lean 2024-02-05 00:24:13 7bcc504 Focus post-installation steps in the README (#7441) Installation of mathlib4 is never explicitly explained with the main link focusing on installing Lean4 itself. As most of the setup and making the library available happens when creating a Lean workspace, combine both links into the same section to follow right after the fairly short installation section. ESTIMATED CHANGES Modified README.md 2024-02-04 23:05:53 77ea537 feat: register omega with hint (#10259) ESTIMATED CHANGES Modified Mathlib/Tactic/Common.lean 2024-02-04 23:05:52 cbe30b9 feat(EuclideanDomain): drop `DecidableEq` assumptions (#10255) ESTIMATED CHANGES Modified Mathlib/RingTheory/EuclideanDomain.lean +/- theorem EuclideanDomain.gcd_isUnit_iff +/- theorem EuclideanDomain.span_gcd 2024-02-04 23:05:51 203b396 chore(MeasureTheory/Cylinders): drop unneeded `DecidableEq` assumptions (#10254) ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Constructions/Cylinders.lean +/- theorem MeasureTheory.inter_cylinder_same +/- theorem MeasureTheory.union_cylinder_same 2024-02-04 23:05:50 78c16c2 feat(LinearAlgebra/Basis): assume `[Finite ι]` instead of `[Fintype ι]` (#10251) ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/Basis.lean +/- theorem Basis.coe_ofEquivFun +/- theorem Basis.constr_apply_fintype +/- theorem Basis.coord_equivFun_symm +/- def Basis.equivFun +/- theorem Basis.equivFun_apply +/- theorem Basis.equivFun_ofEquivFun +/- theorem Basis.equivFun_self +/- theorem Basis.equivFun_symm_apply +/- theorem Basis.map_equivFun +/- theorem Basis.mem_submodule_iff' +/- def Basis.ofEquivFun +/- theorem Basis.ofEquivFun_equivFun +/- theorem Basis.ofEquivFun_repr_apply +/- theorem Basis.repr_sum_self +/- theorem Basis.sum_equivFun +/- theorem Basis.sum_repr +/- theorem Module.card_fintype +/- def Module.fintypeOfFintype 2024-02-04 23:05:49 c3c6047 chore(HausdorffDimension): fix `Encodable`/`Countable` (#10250) ESTIMATED CHANGES Modified Mathlib/Topology/MetricSpace/HausdorffDimension.lean +/- theorem dimH_iUnion 2024-02-04 23:05:48 3646044 chore(LinearAlgebra,BigOperators): drop some decidability assumptions (#10237) Found by a linter from #10235. ESTIMATED CHANGES Modified Mathlib/Algebra/BigOperators/Ring.lean Modified Mathlib/LinearAlgebra/DFinsupp.lean +/- theorem DFinsupp.sum_mapRange_index.linearMap Modified Mathlib/LinearAlgebra/Matrix/PosDef.lean +/- theorem Matrix.PosSemidef.dotProduct_mulVec_zero_iff +/- theorem Matrix.posSemidef_iff_eq_transpose_mul_self Modified Mathlib/LinearAlgebra/Matrix/Spectrum.lean +/- theorem Matrix.IsHermitian.exists_eigenvector_of_ne_zero Modified Mathlib/Tactic/NormNum/BigOperators.lean +/- theorem Mathlib.Meta.Multiset.insert_eq_cons 2024-02-04 21:54:33 a619d25 feat: `fun_prop` tactic for proving Continuous, Differentiable, Measurable, ... (#10040) New tactic `fun_prop` to prove FUNction PROPerties like continuity, differentiability, ... ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Lean/Expr/Basic.lean - def Lean.Expr.modifyAppArg + def Lean.Expr.setArg Modified Mathlib/Tactic.lean Added Mathlib/Tactic/FunProp.lean Added Mathlib/Tactic/FunProp/AEMesurable.lean + theorem AEMeasurable.comp_aemeasurable' Added Mathlib/Tactic/FunProp/Attr.lean Added Mathlib/Tactic/FunProp/ContDiff.lean + theorem ContDiff.comp' + theorem ContDiff.differentiable_iteratedDeriv' + theorem ContDiffAt.comp' + theorem ContDiffOn.div' + theorem contDiffAt_id' + theorem contDiffAt_pi' + theorem contDiffOn_id' + theorem contDiffOn_pi' + theorem contDiff_id' + theorem contDiff_pi' Added Mathlib/Tactic/FunProp/Continuous.lean + theorem Continuous.div₀ + theorem ContinuousAt.comp' + theorem ContinuousAt.div₀ + theorem ContinuousOn.comp'' + theorem ContinuousOn.div₀ + theorem continuousAt_id' + theorem continuousAt_pi' + theorem continuousOn_apply + theorem continuousOn_id' + theorem continuousOn_pi' Added Mathlib/Tactic/FunProp/Core.lean + def Mathlib.Meta.FunProp.FunctionData.unfold? + def Mathlib.Meta.FunProp.applyCompRule + def Mathlib.Meta.FunProp.applyConstRule + def Mathlib.Meta.FunProp.applyIdRule + def Mathlib.Meta.FunProp.applyMorRules + def Mathlib.Meta.FunProp.applyPiRule + def Mathlib.Meta.FunProp.applyProjRule + def Mathlib.Meta.FunProp.applyTransitionRules + def Mathlib.Meta.FunProp.bvarAppCase + def Mathlib.Meta.FunProp.cacheResult + def Mathlib.Meta.FunProp.constAppCase + def Mathlib.Meta.FunProp.fvarAppCase + def Mathlib.Meta.FunProp.isFVarFunProp + def Mathlib.Meta.FunProp.letCase + def Mathlib.Meta.FunProp.proveFVarFunPropFromLocalTheorems + def Mathlib.Meta.FunProp.removeArgRule + def Mathlib.Meta.FunProp.synthesizeArgs + def Mathlib.Meta.FunProp.synthesizeInstance + def Mathlib.Meta.FunProp.tryLocalTheorem? + def Mathlib.Meta.FunProp.tryLocalTheorems + def Mathlib.Meta.FunProp.tryTheorem? + def Mathlib.Meta.FunProp.tryTheoremCore + def Mathlib.Meta.FunProp.unfoldFunHeadRec? Added Mathlib/Tactic/FunProp/Decl.lean + def Mathlib.Meta.FunProp.FunPropDecl.discharger + structure Mathlib.Meta.FunProp.FunPropDecl + structure Mathlib.Meta.FunProp.FunPropDecls + def Mathlib.Meta.FunProp.addFunPropDecl + def Mathlib.Meta.FunProp.getFunProp? + def Mathlib.Meta.FunProp.getFunPropDecl? + def Mathlib.Meta.FunProp.getFunPropFun? + def Mathlib.Meta.FunProp.isFunProp + def Mathlib.Meta.FunProp.tacticToDischarge Added Mathlib/Tactic/FunProp/Differentiable.lean + theorem Differentiable.comp' + theorem DifferentiableAt.comp' + theorem DifferentiableOn.comp' + theorem differentiableOn_id' Added Mathlib/Tactic/FunProp/Elab.lean + def Mathlib.Meta.FunProp.funPropTac Added Mathlib/Tactic/FunProp/FunctionData.lean + def Mathlib.Meta.FunProp.FunctionData.domainType + def Mathlib.Meta.FunProp.FunctionData.getCoeAppNumArgs? + def Mathlib.Meta.FunProp.FunctionData.getFnConstName? + def Mathlib.Meta.FunProp.FunctionData.isConstantFun + def Mathlib.Meta.FunProp.FunctionData.nontrivialDecomposition + def Mathlib.Meta.FunProp.FunctionData.toExpr + structure Mathlib.Meta.FunProp.FunctionData + def Mathlib.Meta.FunProp.funPropNormalizeFun + def Mathlib.Meta.FunProp.getFunctionData Added Mathlib/Tactic/FunProp/Measurable.lean + theorem ContinuousOn.log' Added Mathlib/Tactic/FunProp/Mor.lean + structure Mathlib.Meta.FunProp.Mor.Arg + def Mathlib.Meta.FunProp.Mor.app + def Mathlib.Meta.FunProp.Mor.constArity + def Mathlib.Meta.FunProp.Mor.getAppArgs + def Mathlib.Meta.FunProp.Mor.getAppFn + def Mathlib.Meta.FunProp.Mor.getArity + def Mathlib.Meta.FunProp.Mor.headBeta + def Mathlib.Meta.FunProp.Mor.mkAppN + def Mathlib.Meta.FunProp.Mor.withApp + def Mathlib.Meta.FunProp.splitMorToComp + def Mathlib.Meta.FunProp.splitMorToCompOverArgs Added Mathlib/Tactic/FunProp/RefinedDiscrTree.lean + def Mathlib.Meta.FunProp.RefinedDiscrTree.DTExpr.flatten + def Mathlib.Meta.FunProp.RefinedDiscrTree.DTExpr.hasLooseBVars + inductive Mathlib.Meta.FunProp.RefinedDiscrTree.DTExpr + def Mathlib.Meta.FunProp.RefinedDiscrTree.GetUnify.findKey + def Mathlib.Meta.FunProp.RefinedDiscrTree.GetUnify.matchTargetStar + def Mathlib.Meta.FunProp.RefinedDiscrTree.GetUnify.matchTreeStars + def Mathlib.Meta.FunProp.RefinedDiscrTree.Key.arity + def Mathlib.Meta.FunProp.RefinedDiscrTree.Key.ctorIdx + inductive Mathlib.Meta.FunProp.RefinedDiscrTree.Key + def Mathlib.Meta.FunProp.RefinedDiscrTree.Trie.children! + def Mathlib.Meta.FunProp.RefinedDiscrTree.Trie.mkNode2 + def Mathlib.Meta.FunProp.RefinedDiscrTree.Trie.mkPath + def Mathlib.Meta.FunProp.RefinedDiscrTree.Trie.singleton + def Mathlib.Meta.FunProp.RefinedDiscrTree.Trie.values! + inductive Mathlib.Meta.FunProp.RefinedDiscrTree.Trie + def Mathlib.Meta.FunProp.RefinedDiscrTree.insert + def Mathlib.Meta.FunProp.RefinedDiscrTree.insertDTExpr + def Mathlib.Meta.FunProp.RefinedDiscrTree.insertInRefinedDiscrTree + def Mathlib.Meta.FunProp.RefinedDiscrTree.isStar + def Mathlib.Meta.FunProp.RefinedDiscrTree.isStarWithArg + def Mathlib.Meta.FunProp.RefinedDiscrTree.mapArrays + def Mathlib.Meta.FunProp.RefinedDiscrTree.mapArraysM + def Mathlib.Meta.FunProp.RefinedDiscrTree.mkDTExpr + def Mathlib.Meta.FunProp.RefinedDiscrTree.mkDTExprs + def Mathlib.Meta.FunProp.RefinedDiscrTree.mkPath + def Mathlib.Meta.FunProp.RefinedDiscrTree.starEtaExpanded + structure Mathlib.Meta.FunProp.RefinedDiscrTree Added Mathlib/Tactic/FunProp/StateList.lean + inductive StateList + def StateListM + def StateListT.run' + def StateListT.run + def StateListT Added Mathlib/Tactic/FunProp/Theorems.lean + def Mathlib.Meta.FunProp.FunctionTheorem.getProof + structure Mathlib.Meta.FunProp.FunctionTheorem + structure Mathlib.Meta.FunProp.FunctionTheorems + def Mathlib.Meta.FunProp.GeneralTheorem.getProof + structure Mathlib.Meta.FunProp.GeneralTheorem + structure Mathlib.Meta.FunProp.GeneralTheorems + def Mathlib.Meta.FunProp.LambdaTheorem.getProof + structure Mathlib.Meta.FunProp.LambdaTheorem + def Mathlib.Meta.FunProp.LambdaTheoremArgs.type + inductive Mathlib.Meta.FunProp.LambdaTheoremArgs + inductive Mathlib.Meta.FunProp.LambdaTheoremType + structure Mathlib.Meta.FunProp.LambdaTheorems + inductive Mathlib.Meta.FunProp.Theorem + inductive Mathlib.Meta.FunProp.TheoremForm + def Mathlib.Meta.FunProp.addTheorem + def Mathlib.Meta.FunProp.detectLambdaTheoremArgs + def Mathlib.Meta.FunProp.getLambdaTheorem + def Mathlib.Meta.FunProp.getTheoremFromConst + def Mathlib.Meta.FunProp.getTheoremsForFunction Added Mathlib/Tactic/FunProp/ToStd.lean + def Lean.Expr.swapBVars + def Mathlib.Meta.FunProp.etaExpand1 + def Mathlib.Meta.FunProp.isOrderedSubsetOf + def Mathlib.Meta.FunProp.letTelescope + def Mathlib.Meta.FunProp.mkProdElem + def Mathlib.Meta.FunProp.mkProdProj + def Mathlib.Meta.FunProp.mkProdSplitElem + def Mathlib.Meta.FunProp.mkUncurryFun Added Mathlib/Tactic/FunProp/Types.lean + def Mathlib.Meta.FunProp.Config.addThm + structure Mathlib.Meta.FunProp.Config + structure Mathlib.Meta.FunProp.Result + structure Mathlib.Meta.FunProp.State + def Mathlib.Meta.FunProp.getLastUsedTheoremName Modified scripts/noshake.json Added test/fun_prop.lean Added test/fun_prop_dev.lean + structure ConHom + theorem Con_apply + theorem Con_applyDep + theorem Con_comp + theorem Con_const + theorem Con_id + theorem Con_pi + structure LinHom + theorem Lin_apply + theorem Lin_applyDep + theorem Lin_comp + theorem Lin_id + theorem Lin_pi + theorem add_Con' + theorem add_Con + theorem conHom_con' + theorem fst_Con' + theorem fst_Con + theorem linHom_lin + theorem lin_to_con + theorem prod_mk_Con + theorem prod_mk_Lin + theorem snd_Con' + theorem snd_Con 2024-02-04 21:28:57 7ea8549 chore(Topology/Category): `[Fintype _]` -> `[Finite _]` (#10257) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Sites/RegularExtensive.lean +/- theorem CategoryTheory.effectiveEpi_desc_iff_effectiveEpiFamily Modified Mathlib/Topology/Category/CompHaus/EffectiveEpi.lean Modified Mathlib/Topology/Category/CompHaus/Limits.lean Modified Mathlib/Topology/Category/Stonean/EffectiveEpi.lean Modified Mathlib/Topology/Category/Stonean/Limits.lean +/- theorem Stonean.Sigma.openEmbedding_ι +/- theorem Stonean.finiteCoproduct.openEmbedding_ι 2024-02-04 19:00:05 08f99f8 feat(CategoryTheory): PreservesLimits instances for adjoint functors (#9990) This PR adds `PreservesColimits/PreservesLimits` instances for adjoint functors. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Adjunction/Limits.lean Modified Mathlib/CategoryTheory/Closed/Ideal.lean Modified Mathlib/CategoryTheory/Sites/Subsheaf.lean Modified Mathlib/Topology/Category/Profinite/CofilteredLimit.lean Modified Mathlib/Topology/Sheaves/LocallySurjective.lean 2024-02-04 17:54:30 a55d6e5 feat: safe variants of eqToHom_map (#10243) `eqToHom_map` is notoriously not a good `simp` lemma, but these variants should be safe and already go a long way. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/EqToHom.lean + theorem CategoryTheory.eqToHom_map_comp + theorem CategoryTheory.eqToIso_map_trans Modified Mathlib/CategoryTheory/Types.lean + theorem CategoryTheory.FunctorToTypes.eqToHom_map_comp_apply 2024-02-04 16:12:50 96b716e chore: fix some Lean-3-isms in comments (#10240) ESTIMATED CHANGES Modified Mathlib/Algebra/Invertible/Defs.lean Modified Mathlib/Analysis/NormedSpace/MatrixExponential.lean Modified Mathlib/CategoryTheory/EqToHom.lean Modified Mathlib/CategoryTheory/Limits/Pi.lean Modified Mathlib/CategoryTheory/Types.lean Modified Mathlib/Data/Prod/TProd.lean Modified Mathlib/Logic/Equiv/List.lean Modified Mathlib/RingTheory/Bezout.lean 2024-02-04 13:41:58 7f63251 chore(Data/Finsupp/Fin): add Finsupp.cons_support (#10192) ESTIMATED CHANGES Modified Mathlib/Data/Finsupp/Fin.lean + theorem Finsupp.cons_support 2024-02-04 13:16:30 e3a011e chore: rename op_norm to opNorm (#10185) ESTIMATED CHANGES Modified Counterexamples/Phillips.lean Modified Mathlib/Analysis/Analytic/Basic.lean Modified Mathlib/Analysis/Analytic/Composition.lean Modified Mathlib/Analysis/Analytic/Constructions.lean Modified Mathlib/Analysis/Calculus/ContDiff/Bounds.lean Modified Mathlib/Analysis/Calculus/FDeriv/Basic.lean Modified Mathlib/Analysis/Calculus/FDeriv/Measurable.lean Modified Mathlib/Analysis/Calculus/FDeriv/Symmetric.lean Modified Mathlib/Analysis/Calculus/MeanValue.lean Modified Mathlib/Analysis/Calculus/ParametricIntegral.lean Modified Mathlib/Analysis/Calculus/UniformLimitsDeriv.lean Modified Mathlib/Analysis/Complex/OperatorNorm.lean Modified Mathlib/Analysis/Convolution.lean Modified Mathlib/Analysis/Fourier/FourierTransformDeriv.lean Modified Mathlib/Analysis/InnerProductSpace/Adjoint.lean Modified Mathlib/Analysis/InnerProductSpace/Basic.lean Modified Mathlib/Analysis/InnerProductSpace/MeanErgodic.lean Modified Mathlib/Analysis/Matrix.lean + theorem Matrix.linfty_opNNNorm_col + theorem Matrix.linfty_opNNNorm_def + theorem Matrix.linfty_opNNNorm_diagonal + theorem Matrix.linfty_opNNNorm_eq_opNNNorm + theorem Matrix.linfty_opNNNorm_mul + theorem Matrix.linfty_opNNNorm_mulVec + theorem Matrix.linfty_opNNNorm_row + theorem Matrix.linfty_opNNNorm_toMatrix + theorem Matrix.linfty_opNorm_col + theorem Matrix.linfty_opNorm_def + theorem Matrix.linfty_opNorm_diagonal + theorem Matrix.linfty_opNorm_eq_opNorm + theorem Matrix.linfty_opNorm_mul + theorem Matrix.linfty_opNorm_mulVec + theorem Matrix.linfty_opNorm_row + theorem Matrix.linfty_opNorm_toMatrix - theorem Matrix.linfty_op_nnnorm_col - theorem Matrix.linfty_op_nnnorm_def - theorem Matrix.linfty_op_nnnorm_diagonal - theorem Matrix.linfty_op_nnnorm_eq_op_nnnorm - theorem Matrix.linfty_op_nnnorm_mul - theorem Matrix.linfty_op_nnnorm_mulVec - theorem Matrix.linfty_op_nnnorm_row - theorem Matrix.linfty_op_nnnorm_toMatrix - theorem Matrix.linfty_op_norm_col - theorem Matrix.linfty_op_norm_def - theorem Matrix.linfty_op_norm_diagonal - theorem Matrix.linfty_op_norm_eq_op_norm - theorem Matrix.linfty_op_norm_mul - theorem Matrix.linfty_op_norm_mulVec - theorem Matrix.linfty_op_norm_row - theorem Matrix.linfty_op_norm_toMatrix Modified Mathlib/Analysis/NormedSpace/Algebra.lean Modified Mathlib/Analysis/NormedSpace/Banach.lean Modified Mathlib/Analysis/NormedSpace/BoundedLinearMaps.lean Modified Mathlib/Analysis/NormedSpace/ContinuousAffineMap.lean Modified Mathlib/Analysis/NormedSpace/Dual.lean Modified Mathlib/Analysis/NormedSpace/Extend.lean Modified Mathlib/Analysis/NormedSpace/FiniteDimension.lean + theorem Basis.exists_opNNNorm_le + theorem Basis.exists_opNorm_le - theorem Basis.exists_op_nnnorm_le - theorem Basis.exists_op_norm_le + theorem Basis.opNNNorm_le + theorem Basis.opNorm_le - theorem Basis.op_nnnorm_le - theorem Basis.op_norm_le Modified Mathlib/Analysis/NormedSpace/HahnBanach/Extension.lean Modified Mathlib/Analysis/NormedSpace/IsROrC.lean + theorem ContinuousLinearMap.opNorm_bound_of_ball_bound - theorem ContinuousLinearMap.op_norm_bound_of_ball_bound Modified Mathlib/Analysis/NormedSpace/Multilinear/Basic.lean + theorem ContinuousMultilinearMap.isLeast_opNNNorm + theorem ContinuousMultilinearMap.isLeast_opNorm - theorem ContinuousMultilinearMap.isLeast_op_nnnorm - theorem ContinuousMultilinearMap.isLeast_op_norm + theorem ContinuousMultilinearMap.le_mul_prod_of_le_opNorm_of_le - theorem ContinuousMultilinearMap.le_mul_prod_of_le_op_norm_of_le + theorem ContinuousMultilinearMap.le_of_opNNNorm_le + theorem ContinuousMultilinearMap.le_of_opNorm_le - theorem ContinuousMultilinearMap.le_of_op_nnnorm_le - theorem ContinuousMultilinearMap.le_of_op_norm_le + theorem ContinuousMultilinearMap.le_opNNNorm + theorem ContinuousMultilinearMap.le_opNorm + theorem ContinuousMultilinearMap.le_opNorm_mul_pow_card_of_le + theorem ContinuousMultilinearMap.le_opNorm_mul_pow_of_le + theorem ContinuousMultilinearMap.le_opNorm_mul_prod_of_le - theorem ContinuousMultilinearMap.le_op_nnnorm - theorem ContinuousMultilinearMap.le_op_norm - theorem ContinuousMultilinearMap.le_op_norm_mul_pow_card_of_le - theorem ContinuousMultilinearMap.le_op_norm_mul_pow_of_le - theorem ContinuousMultilinearMap.le_op_norm_mul_prod_of_le + theorem ContinuousMultilinearMap.opNNNorm_le_iff + theorem ContinuousMultilinearMap.opNNNorm_pi + theorem ContinuousMultilinearMap.opNNNorm_prod + theorem ContinuousMultilinearMap.opNorm_add_le + theorem ContinuousMultilinearMap.opNorm_le_bound + theorem ContinuousMultilinearMap.opNorm_le_iff + theorem ContinuousMultilinearMap.opNorm_neg + theorem ContinuousMultilinearMap.opNorm_nonneg + theorem ContinuousMultilinearMap.opNorm_pi + theorem ContinuousMultilinearMap.opNorm_prod + theorem ContinuousMultilinearMap.opNorm_smul_le + theorem ContinuousMultilinearMap.opNorm_zero + theorem ContinuousMultilinearMap.opNorm_zero_iff - theorem ContinuousMultilinearMap.op_nnnorm_le_iff - theorem ContinuousMultilinearMap.op_nnnorm_pi - theorem ContinuousMultilinearMap.op_nnnorm_prod - theorem ContinuousMultilinearMap.op_norm_add_le - theorem ContinuousMultilinearMap.op_norm_le_bound - theorem ContinuousMultilinearMap.op_norm_le_iff - theorem ContinuousMultilinearMap.op_norm_neg - theorem ContinuousMultilinearMap.op_norm_nonneg - theorem ContinuousMultilinearMap.op_norm_pi - theorem ContinuousMultilinearMap.op_norm_prod - theorem ContinuousMultilinearMap.op_norm_smul_le - theorem ContinuousMultilinearMap.op_norm_zero - theorem ContinuousMultilinearMap.op_norm_zero_iff + theorem ContinuousMultilinearMap.ratio_le_opNorm - theorem ContinuousMultilinearMap.ratio_le_op_norm + theorem ContinuousMultilinearMap.unit_le_opNorm - theorem ContinuousMultilinearMap.unit_le_op_norm Modified Mathlib/Analysis/NormedSpace/Multilinear/Curry.lean Modified Mathlib/Analysis/NormedSpace/OperatorNorm.lean + theorem ContinuousLinearMap.dist_le_opNorm - theorem ContinuousLinearMap.dist_le_op_norm + theorem ContinuousLinearMap.exists_lt_apply_of_lt_opNNNorm + theorem ContinuousLinearMap.exists_lt_apply_of_lt_opNorm - theorem ContinuousLinearMap.exists_lt_apply_of_lt_op_nnnorm - theorem ContinuousLinearMap.exists_lt_apply_of_lt_op_norm + theorem ContinuousLinearMap.exists_mul_lt_apply_of_lt_opNNNorm - theorem ContinuousLinearMap.exists_mul_lt_apply_of_lt_op_nnnorm + theorem ContinuousLinearMap.exists_mul_lt_of_lt_opNorm - theorem ContinuousLinearMap.exists_mul_lt_of_lt_op_norm + theorem ContinuousLinearMap.isLeast_opNNNorm + theorem ContinuousLinearMap.isLeast_opNorm - theorem ContinuousLinearMap.isLeast_op_nnnorm - theorem ContinuousLinearMap.isLeast_op_norm + theorem ContinuousLinearMap.le_of_opNorm_le + theorem ContinuousLinearMap.le_of_opNorm_le_of_le + theorem ContinuousLinearMap.le_of_opNorm₂_le_of_le - theorem ContinuousLinearMap.le_of_op_norm_le - theorem ContinuousLinearMap.le_of_op_norm_le_of_le - theorem ContinuousLinearMap.le_of_op_norm₂_le_of_le + theorem ContinuousLinearMap.le_opNNNorm + theorem ContinuousLinearMap.le_opNorm + theorem ContinuousLinearMap.le_opNorm_of_le + theorem ContinuousLinearMap.le_opNorm₂ - theorem ContinuousLinearMap.le_op_nnnorm - theorem ContinuousLinearMap.le_op_norm - theorem ContinuousLinearMap.le_op_norm_of_le - theorem ContinuousLinearMap.le_op_norm₂ + theorem ContinuousLinearMap.nndist_le_opNNNorm - theorem ContinuousLinearMap.nndist_le_op_nnnorm + theorem ContinuousLinearMap.opNNNorm_comp_le + theorem ContinuousLinearMap.opNNNorm_eq_of_bounds + theorem ContinuousLinearMap.opNNNorm_le_bound' + theorem ContinuousLinearMap.opNNNorm_le_bound + theorem ContinuousLinearMap.opNNNorm_le_iff + theorem ContinuousLinearMap.opNNNorm_le_of_lipschitz + theorem ContinuousLinearMap.opNNNorm_le_of_unit_nnnorm + theorem ContinuousLinearMap.opNNNorm_mul + theorem ContinuousLinearMap.opNNNorm_mul_apply + theorem ContinuousLinearMap.opNNNorm_prod + theorem ContinuousLinearMap.opNorm_add_le + theorem ContinuousLinearMap.opNorm_comp_le + theorem ContinuousLinearMap.opNorm_comp_linearIsometryEquiv + theorem ContinuousLinearMap.opNorm_eq_of_bounds + theorem ContinuousLinearMap.opNorm_ext + theorem ContinuousLinearMap.opNorm_extend_le + theorem ContinuousLinearMap.opNorm_flip + theorem ContinuousLinearMap.opNorm_le_bound' + theorem ContinuousLinearMap.opNorm_le_bound + theorem ContinuousLinearMap.opNorm_le_bound₂ + theorem ContinuousLinearMap.opNorm_le_iff + theorem ContinuousLinearMap.opNorm_le_of_ball + theorem ContinuousLinearMap.opNorm_le_of_lipschitz + theorem ContinuousLinearMap.opNorm_le_of_nhds_zero + theorem ContinuousLinearMap.opNorm_le_of_shell' + theorem ContinuousLinearMap.opNorm_le_of_shell + theorem ContinuousLinearMap.opNorm_le_of_unit_norm + theorem ContinuousLinearMap.opNorm_lsmul + theorem ContinuousLinearMap.opNorm_lsmul_apply_le + theorem ContinuousLinearMap.opNorm_lsmul_le + theorem ContinuousLinearMap.opNorm_mul + theorem ContinuousLinearMap.opNorm_mulLeftRight_apply_apply_le + theorem ContinuousLinearMap.opNorm_mulLeftRight_apply_le + theorem ContinuousLinearMap.opNorm_mulLeftRight_le + theorem ContinuousLinearMap.opNorm_mul_apply + theorem ContinuousLinearMap.opNorm_mul_apply_le + theorem ContinuousLinearMap.opNorm_mul_le + theorem ContinuousLinearMap.opNorm_neg + theorem ContinuousLinearMap.opNorm_nonneg + theorem ContinuousLinearMap.opNorm_prod + theorem ContinuousLinearMap.opNorm_smul_le + theorem ContinuousLinearMap.opNorm_subsingleton + theorem ContinuousLinearMap.opNorm_zero + theorem ContinuousLinearMap.opNorm_zero_iff - theorem ContinuousLinearMap.op_nnnorm_comp_le - theorem ContinuousLinearMap.op_nnnorm_eq_of_bounds - theorem ContinuousLinearMap.op_nnnorm_le_bound' - theorem ContinuousLinearMap.op_nnnorm_le_bound - theorem ContinuousLinearMap.op_nnnorm_le_iff - theorem ContinuousLinearMap.op_nnnorm_le_of_lipschitz - theorem ContinuousLinearMap.op_nnnorm_le_of_unit_nnnorm - theorem ContinuousLinearMap.op_nnnorm_mul - theorem ContinuousLinearMap.op_nnnorm_mul_apply - theorem ContinuousLinearMap.op_nnnorm_prod - theorem ContinuousLinearMap.op_norm_add_le - theorem ContinuousLinearMap.op_norm_comp_le - theorem ContinuousLinearMap.op_norm_comp_linearIsometryEquiv - theorem ContinuousLinearMap.op_norm_eq_of_bounds - theorem ContinuousLinearMap.op_norm_ext - theorem ContinuousLinearMap.op_norm_extend_le - theorem ContinuousLinearMap.op_norm_flip - theorem ContinuousLinearMap.op_norm_le_bound' - theorem ContinuousLinearMap.op_norm_le_bound - theorem ContinuousLinearMap.op_norm_le_bound₂ - theorem ContinuousLinearMap.op_norm_le_iff - theorem ContinuousLinearMap.op_norm_le_of_ball - theorem ContinuousLinearMap.op_norm_le_of_lipschitz - theorem ContinuousLinearMap.op_norm_le_of_nhds_zero - theorem ContinuousLinearMap.op_norm_le_of_shell' - theorem ContinuousLinearMap.op_norm_le_of_shell - theorem ContinuousLinearMap.op_norm_le_of_unit_norm - theorem ContinuousLinearMap.op_norm_lsmul - theorem ContinuousLinearMap.op_norm_lsmul_apply_le - theorem ContinuousLinearMap.op_norm_lsmul_le - theorem ContinuousLinearMap.op_norm_mul - theorem ContinuousLinearMap.op_norm_mulLeftRight_apply_apply_le - theorem ContinuousLinearMap.op_norm_mulLeftRight_apply_le - theorem ContinuousLinearMap.op_norm_mulLeftRight_le - theorem ContinuousLinearMap.op_norm_mul_apply - theorem ContinuousLinearMap.op_norm_mul_apply_le - theorem ContinuousLinearMap.op_norm_mul_le - theorem ContinuousLinearMap.op_norm_neg - theorem ContinuousLinearMap.op_norm_nonneg - theorem ContinuousLinearMap.op_norm_prod - theorem ContinuousLinearMap.op_norm_smul_le - theorem ContinuousLinearMap.op_norm_subsingleton - theorem ContinuousLinearMap.op_norm_zero - theorem ContinuousLinearMap.op_norm_zero_iff + theorem ContinuousLinearMap.ratio_le_opNorm - theorem ContinuousLinearMap.ratio_le_op_norm + theorem ContinuousLinearMap.unit_le_opNorm - theorem ContinuousLinearMap.unit_le_op_norm Modified Mathlib/Analysis/NormedSpace/Spectrum.lean Modified Mathlib/Analysis/NormedSpace/Star/Matrix.lean + theorem Matrix.l2_opNNNorm_conjTranspose + theorem Matrix.l2_opNNNorm_conjTranspose_mul_self + theorem Matrix.l2_opNNNorm_def + theorem Matrix.l2_opNNNorm_mul + theorem Matrix.l2_opNNNorm_mulVec + theorem Matrix.l2_opNorm_conjTranspose + theorem Matrix.l2_opNorm_conjTranspose_mul_self + theorem Matrix.l2_opNorm_def + theorem Matrix.l2_opNorm_mul + theorem Matrix.l2_opNorm_mulVec - theorem Matrix.l2_op_nnnorm_conjTranspose - theorem Matrix.l2_op_nnnorm_conjTranspose_mul_self - theorem Matrix.l2_op_nnnorm_def - theorem Matrix.l2_op_nnnorm_mul - theorem Matrix.l2_op_nnnorm_mulVec - theorem Matrix.l2_op_norm_conjTranspose - theorem Matrix.l2_op_norm_conjTranspose_mul_self - theorem Matrix.l2_op_norm_def - theorem Matrix.l2_op_norm_mul - theorem Matrix.l2_op_norm_mulVec Modified Mathlib/Analysis/NormedSpace/Star/Multiplier.lean Modified Mathlib/Analysis/NormedSpace/Star/Unitization.lean + theorem ContinuousLinearMap.opNNNorm_mul_flip_apply + theorem ContinuousLinearMap.opNorm_mul_flip_apply - theorem ContinuousLinearMap.op_nnnorm_mul_flip_apply - theorem ContinuousLinearMap.op_norm_mul_flip_apply Modified Mathlib/Analysis/NormedSpace/Unitization.lean Modified Mathlib/Data/IsROrC/Lemmas.lean Modified Mathlib/MeasureTheory/Function/AEEqOfIntegral.lean Modified Mathlib/MeasureTheory/Function/ConditionalExpectation/CondexpL1.lean Modified Mathlib/MeasureTheory/Function/ConditionalExpectation/CondexpL2.lean Modified Mathlib/MeasureTheory/Function/Jacobian.lean Modified Mathlib/MeasureTheory/Function/L1Space.lean Modified Mathlib/MeasureTheory/Function/LpSpace.lean Modified Mathlib/MeasureTheory/Integral/Bochner.lean Modified Mathlib/MeasureTheory/Integral/SetIntegral.lean Modified Mathlib/MeasureTheory/Integral/SetToL1.lean + theorem MeasureTheory.SimpleFunc.norm_setToSimpleFunc_le_sum_opNorm - theorem MeasureTheory.SimpleFunc.norm_setToSimpleFunc_le_sum_op_norm Modified Mathlib/Topology/ContinuousFunction/Bounded.lean Modified scripts/style-exceptions.txt 2024-02-04 03:19:42 c9843f7 feat(ModelTheory/Basic): additional simp lemmas (#9953) Also results about injectivity. ESTIMATED CHANGES Modified Mathlib/ModelTheory/Basic.lean + theorem FirstOrder.Language.Embedding.comp_inj + theorem FirstOrder.Language.Embedding.comp_injective + theorem FirstOrder.Language.Embedding.comp_refl + theorem FirstOrder.Language.Embedding.refl_comp + theorem FirstOrder.Language.Embedding.refl_toHom + theorem FirstOrder.Language.Embedding.toHom_comp_inj + theorem FirstOrder.Language.Embedding.toHom_comp_injective + theorem FirstOrder.Language.Equiv.comp_refl + theorem FirstOrder.Language.Equiv.comp_right_inj + theorem FirstOrder.Language.Equiv.comp_right_injective + theorem FirstOrder.Language.Equiv.comp_symm + theorem FirstOrder.Language.Equiv.comp_toEmbedding + theorem FirstOrder.Language.Equiv.comp_toHom + theorem FirstOrder.Language.Equiv.injective_comp + theorem FirstOrder.Language.Equiv.injective_toEmbedding + theorem FirstOrder.Language.Equiv.refl_comp + theorem FirstOrder.Language.Equiv.refl_toEmbedding + theorem FirstOrder.Language.Equiv.refl_toHom + theorem FirstOrder.Language.Equiv.self_comp_symm + theorem FirstOrder.Language.Equiv.self_comp_symm_toEmbedding + theorem FirstOrder.Language.Equiv.self_comp_symm_toHom + theorem FirstOrder.Language.Equiv.symm_comp_self + theorem FirstOrder.Language.Equiv.symm_comp_self_toEmbedding + theorem FirstOrder.Language.Equiv.symm_comp_self_toHom + theorem FirstOrder.Language.Equiv.symm_symm + theorem FirstOrder.Language.Hom.comp_id + theorem FirstOrder.Language.Hom.id_comp Modified Mathlib/ModelTheory/ElementaryMaps.lean Modified Mathlib/ModelTheory/Semantics.lean 2024-02-04 02:08:21 cfdc846 chore: cleanup use of simp singlePass option (#9928) Of the 18 uses of `singlePass`, in 3 cases we can just use `rw`, in 4 cases it isn't needed at all. In the other 11 cases we are always use it as `simp (config := {singlePass := true}) only [X]` (i.e. with just a single simp lemma), and that `simp` call would loop forever (usually failing with a maxRecDepth error, sometimes with heartbeats). I've left these as is. There's also one case where there was a missing `only`. ESTIMATED CHANGES Modified Mathlib/Analysis/InnerProductSpace/Basic.lean Modified Mathlib/Data/Int/Order/Basic.lean Modified Mathlib/Data/Polynomial/Induction.lean Modified Mathlib/GroupTheory/NoncommPiCoprod.lean Modified Mathlib/MeasureTheory/Constructions/Prod/Integral.lean Modified Mathlib/MeasureTheory/Measure/OuterMeasure.lean Modified Mathlib/Probability/Kernel/MeasurableIntegral.lean Modified Mathlib/Topology/MetricSpace/GromovHausdorff.lean 2024-02-04 02:08:20 c4152bb refactor(Set/Countable): redefine `Set.Countable` (#9831) Redefine `Set.Countable s` as `_root_.Countable s`. Fix compile, golf some of the broken proofs. ESTIMATED CHANGES Modified Counterexamples/Phillips.lean Modified Mathlib/Algebra/AlgebraicCard.lean Modified Mathlib/Data/Set/Countable.lean +/- theorem Set.Countable.mono +/- theorem Set.Finite.countable +/- theorem Set.countable_coe_iff + theorem Set.countable_iff_nonempty_encodable +/- theorem Set.to_countable Modified Mathlib/MeasureTheory/Constructions/BorelSpace/Basic.lean Modified Mathlib/SetTheory/Cardinal/Basic.lean +/- theorem Cardinal.le_aleph0_iff_set_countable Modified Mathlib/Topology/Bases.lean + theorem TopologicalSpace.isOpen_biUnion_countable +/- theorem TopologicalSpace.secondCountableTopology_of_countable_cover 2024-02-04 01:43:28 3a748a5 chore(NumberTheory/Bertrand): inconsistent names of assumptions n_large (#10102) ESTIMATED CHANGES Modified Mathlib/NumberTheory/Bertrand.lean +/- theorem Bertrand.real_main_inequality +/- theorem Nat.exists_prime_lt_and_le_two_mul_eventually +/- theorem centralBinom_le_of_no_bertrand_prime 2024-02-03 21:50:25 b8ea7cb feat: support Int.natAbs in norm_num (#8855) ESTIMATED CHANGES Modified Mathlib/Tactic/NormNum/Basic.lean + def Mathlib.Meta.NormNum.evalIntNatAbs + theorem Mathlib.Meta.NormNum.isNat_natAbs_neg + theorem Mathlib.Meta.NormNum.isNat_natAbs_pos Modified test/norm_num.lean 2024-02-03 14:26:37 b2f2f2c feat: `num` and `den` lemmas (#10219) Add a few basic lemmas about `Rat` and `NNRat` and fix some lemma names From LeanAPAP ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Archimedean.lean Modified Mathlib/Data/Int/Defs.lean Modified Mathlib/Data/Rat/Defs.lean - theorem Rat.coe_nat_den - theorem Rat.coe_nat_num + theorem Rat.den_natCast + theorem Rat.den_ofNat + theorem Rat.num_natCast + theorem Rat.num_ofNat Modified Mathlib/Data/Rat/NNRat.lean +/- def NNRat.den +/- theorem NNRat.den_coe + theorem NNRat.den_natCast + theorem NNRat.den_pos +/- theorem NNRat.natAbs_num_coe +/- def NNRat.num + theorem NNRat.num_coe + theorem NNRat.num_natCast + theorem NNRat.num_ne_zero + theorem NNRat.num_pos 2024-02-03 14:26:36 69f70a5 chore: Rename `Real.ciSup_empty` (#10217) and a few more to clarify that they are about `IsEmpty`, not about `∅`. Make a few more lemmas simp.` ESTIMATED CHANGES Modified Mathlib/Analysis/NormedSpace/PiLp.lean Modified Mathlib/Analysis/NormedSpace/lpSpace.lean Modified Mathlib/Analysis/Seminorm.lean Modified Mathlib/Data/Nat/Lattice.lean Modified Mathlib/Data/Real/Archimedean.lean - theorem Real.ciInf_empty - theorem Real.ciSup_empty + theorem Real.iSup_of_isEmpty +/- theorem Real.sSup_univ Modified Mathlib/Data/Real/NNReal.lean Modified Mathlib/LinearAlgebra/Dual.lean Modified Mathlib/Order/CompleteLattice.lean - theorem iInf_of_empty' + theorem iInf_of_isEmpty 2024-02-03 14:26:35 7af47e0 feat: Injectivity on `{a, b}` (#10212) From LeanAPAP ESTIMATED CHANGES Modified Mathlib/Data/Set/Function.lean + theorem Set.injOn_pair 2024-02-03 14:26:34 5740830 feat: `r • x / y = r • (x / y)` (#10211) From LeanAPAP ESTIMATED CHANGES Modified Mathlib/GroupTheory/GroupAction/Defs.lean + theorem smul_div_assoc 2024-02-03 14:26:34 0201c44 feat: `a ^ (n % Nat.card G) = a ^ n` (#10210) From LeanAPAP ESTIMATED CHANGES Modified Mathlib/GroupTheory/OrderOfElement.lean + theorem pow_mod_natCard +/- theorem zpow_mod_card + theorem zpow_mod_natCard 2024-02-03 14:26:33 3752900 refactor: Make `Nat.floorRoot` computable (#10208) Avoiding `Finsupp.mapRange` means that we can actually compute the function. ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Floor/Div.lean +/- theorem Finsupp.ceilDiv_def + theorem Finsupp.coe_ceilDiv_def + theorem Finsupp.coe_floorDiv +/- theorem Finsupp.floorDiv_def Modified Mathlib/Data/Nat/Factorization/Root.lean + def Nat.ceilRoot + theorem Nat.ceilRoot_def + def Nat.floorRoot + theorem Nat.floorRoot_def 2024-02-03 14:26:32 7509e79 feat: `a / c ≡ b / c [PMOD p]` (#9619) Also fix a few misported names. From LeanAPAP ESTIMATED CHANGES Modified Mathlib/Algebra/ModEq.lean + theorem AddCommGroup.div_modEq_div + theorem AddCommGroup.intCast_modEq_intCast' + theorem AddCommGroup.intCast_modEq_intCast - theorem AddCommGroup.int_cast_modEq_int_cast + theorem AddCommGroup.natCast_modEq_natCast - theorem AddCommGroup.nat_cast_modEq_nat_cast 2024-02-03 13:58:41 b2f1824 chore: Rename `Finpartition.supParts` (#10223) This should be `Finpartition.sup_parts` according to the naming convention ESTIMATED CHANGES Modified Mathlib/Combinatorics/SimpleGraph/Regularity/Chunk.lean Modified Mathlib/Data/Setoid/Partition.lean Modified Mathlib/Order/Partition/Finpartition.lean 2024-02-03 12:31:48 469d1d7 feat(CategoryTheory/SingleObj): characterise (co)limits of shape `SingleObj M` in types (#10213) In the category of types: limits of shape `SingleObj M` are fixed points, colimits are quotients. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Limits/Shapes/SingleObj.lean + theorem CategoryTheory.Limits.SingleObj.Types.Quot.Rel.iff_orbitRel + def CategoryTheory.Limits.SingleObj.Types.Quot.equivOrbitRelQuotient + def CategoryTheory.Limits.SingleObj.Types.sections.equivFixedPoints 2024-02-03 11:32:55 aec6887 feat: a polynomial over a perfect field is separable iff it is square-free (#10170) Yet another small step toward Jordan-Chevalley-Dunford. This was far more work than expected, partly because of missing API for `Squarefree`, and partly because the definition `IsCoprime` is the wrong concept for unique factorization domains. ESTIMATED CHANGES Modified Mathlib.lean Renamed Mathlib/Algebra/Squarefree.lean to Mathlib/Algebra/Squarefree/Basic.lean + theorem Squarefree.eq_zero_or_one_of_pow_of_not_isUnit Added Mathlib/Algebra/Squarefree/UniqueFactorizationDomain.lean + theorem Squarefree.dvd_of_squarefree_of_mul_dvd_mul_left + theorem Squarefree.dvd_of_squarefree_of_mul_dvd_mul_right + theorem Squarefree.pow_dvd_of_squarefree_of_pow_succ_dvd_mul_left + theorem Squarefree.pow_dvd_of_squarefree_of_pow_succ_dvd_mul_right + theorem squarefree_iff + theorem squarefree_mul_iff Modified Mathlib/Data/Nat/Squarefree.lean Modified Mathlib/FieldTheory/IsAlgClosed/Basic.lean Modified Mathlib/FieldTheory/Perfect.lean + theorem PerfectField.separable_iff_squarefree Modified Mathlib/FieldTheory/Separable.lean Modified Mathlib/RingTheory/ChainOfDivisors.lean Modified Mathlib/RingTheory/Coprime/Basic.lean Modified Mathlib/RingTheory/UniqueFactorizationDomain.lean + theorem UniqueFactorizationMonoid.dvd_of_coprime_of_dvd_mul_left + theorem UniqueFactorizationMonoid.dvd_of_coprime_of_dvd_mul_right + theorem UniqueFactorizationMonoid.exists_prime_iff + theorem UniqueFactorizationMonoid.mul_dvd_of_coprime Modified Mathlib/RingTheory/ZMod.lean 2024-02-03 07:19:43 4d359a9 chore(Absorbs, Balanced): more lemmas, golf, generalize (#10201) * add `balanced_iff_closedBall_smul`, `balanced_neg`; * generalize `Balanced.neg_mem_iff` to a `SeminormedRing` + `NormOneClass`, add `Balanced.neg_eq` * add `Balanced.smul_mem_mono` and `Balanced.smul_congr`; * rename `Balanced.mem_smul_iff` to `Balanced.smul_mem_iff`; * rename `balanced_zero_union_interior` to `Balanced.zero_insert_interior`, use `insert 0 (interior A)` instead of `0 ∪ interior A`; * make `Balanced.interior` and `Balanced.closure` protected; * deprecate `Absorbs.zero_mem'`; * rename `balanced_convexHull_of_balanced` to `Balanced.convexHull`; * add `absorbs_iff_eventually_cobounded_mapsTo`, use it to golf some proofs. ESTIMATED CHANGES Modified Mathlib/Analysis/Convex/Gauge.lean Modified Mathlib/Analysis/LocallyConvex/AbsConvex.lean Modified Mathlib/Analysis/LocallyConvex/Basic.lean - theorem Balanced.closure - theorem Balanced.interior - theorem Balanced.mem_smul_iff + theorem Balanced.neg_eq +/- theorem Balanced.neg_mem_iff + theorem Balanced.smul_congr + theorem Balanced.smul_mem_iff + theorem Balanced.smul_mem_mono + theorem Balanced.zero_insert_interior - theorem balanced_convexHull_of_balanced + theorem balanced_iff_closedBall_smul + theorem balanced_neg +/- theorem balanced_zero_union_interior Modified Mathlib/Topology/Bornology/Absorbs.lean + theorem absorbs_iff_eventually_cobounded_mapsTo 2024-02-03 07:19:42 68e1e1e chore(LpSeminorm): move `Trim` section to a new flie (#10197) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/MeasureTheory/Function/ConditionalExpectation/AEMeasurable.lean Modified Mathlib/MeasureTheory/Function/LpSeminorm.lean - theorem MeasureTheory.essSup_trim - theorem MeasureTheory.limsup_trim - theorem MeasureTheory.memℒp_of_memℒp_trim - theorem MeasureTheory.snorm'_trim - theorem MeasureTheory.snormEssSup_trim - theorem MeasureTheory.snorm_trim - theorem MeasureTheory.snorm_trim_ae Added Mathlib/MeasureTheory/Function/LpSeminorm/Trim.lean + theorem MeasureTheory.essSup_trim + theorem MeasureTheory.limsup_trim + theorem MeasureTheory.memℒp_of_memℒp_trim + theorem MeasureTheory.snorm'_trim + theorem MeasureTheory.snormEssSup_trim + theorem MeasureTheory.snorm_trim + theorem MeasureTheory.snorm_trim_ae 2024-02-03 07:19:41 a0cb47a feat(Algebra/Lie): Engel subalgebras (#10158) Progress toward https://github.com/leanprover-community/mathlib4/issues/10065 ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Lie/EngelSubalgebra.lean + def LieSubalgebra.engel + theorem LieSubalgebra.isNilpotent_of_forall_le_engel + theorem LieSubalgebra.mem_engel_iff + theorem LieSubalgebra.normalizer_engel + theorem LieSubalgebra.normalizer_eq_self_of_engel_le + theorem LieSubalgebra.self_mem_engel Modified Mathlib/Algebra/Lie/OfAssociative.lean + theorem LieAlgebra.ad_lie + theorem LieAlgebra.ad_pow_lie + theorem LieModule.toEndomorphism_lie + theorem LieModule.toEndomorphism_pow_lie + theorem LieSubalgebra.coe_ad + theorem LieSubalgebra.coe_ad_pow + theorem LieSubmodule.coe_toEndomorphism + theorem LieSubmodule.coe_toEndomorphism_pow 2024-02-03 06:55:34 1a8eb3b chore: golf #10193 (#10205) + add `rename_isHomogeneous` without `Injective` assumption, and rename `rename_isHomogeneous` to `rename_isHomogeneous_iff`. + refactor `degreeOf_le_totalDegree` through `restrictTotalDegree_le_restrictDegree ` ESTIMATED CHANGES Modified Mathlib/Data/MvPolynomial/Variables.lean +/- theorem MvPolynomial.degreeOf_le_totalDegree Modified Mathlib/RingTheory/MvPolynomial/Basic.lean Modified Mathlib/RingTheory/MvPolynomial/Homogeneous.lean +/- theorem MvPolynomial.IsHomogeneous.rename_isHomogeneous + theorem MvPolynomial.IsHomogeneous.rename_isHomogeneous_iff 2024-02-03 03:33:59 620df7c refactor: split out finiteness properties for simple graphs (#10123) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Combinatorics/SimpleGraph/Basic.lean - theorem SimpleGraph.Adj.card_commonNeighbors_lt_degree - theorem SimpleGraph.DeleteFar.mono - def SimpleGraph.DeleteFar - theorem SimpleGraph.IsRegularOfDegree.compl - theorem SimpleGraph.IsRegularOfDegree.degree_eq - theorem SimpleGraph.IsRegularOfDegree.top - def SimpleGraph.IsRegularOfDegree - def SimpleGraph.LocallyFinite - theorem SimpleGraph.bot_degree - theorem SimpleGraph.card_commonNeighbors_le_degree_left - theorem SimpleGraph.card_commonNeighbors_le_degree_right - theorem SimpleGraph.card_commonNeighbors_lt_card_verts - theorem SimpleGraph.card_commonNeighbors_top - theorem SimpleGraph.card_edgeFinset_le_card_choose_two - theorem SimpleGraph.card_edgeFinset_top_eq_card_choose_two - theorem SimpleGraph.card_incidenceFinset_eq_degree - theorem SimpleGraph.card_incidenceSet_eq_degree - theorem SimpleGraph.card_neighborFinset_eq_degree - theorem SimpleGraph.card_neighborSet_eq_degree - theorem SimpleGraph.coe_edgeFinset - theorem SimpleGraph.complete_graph_degree - def SimpleGraph.degree - theorem SimpleGraph.degree_compl - theorem SimpleGraph.degree_le_maxDegree - theorem SimpleGraph.degree_lt_card_verts - theorem SimpleGraph.degree_pos_iff_exists_adj - theorem SimpleGraph.deleteFar_iff - def SimpleGraph.edgeFinset - theorem SimpleGraph.edgeFinset_bot - theorem SimpleGraph.edgeFinset_card - theorem SimpleGraph.edgeFinset_deleteEdges - theorem SimpleGraph.edgeFinset_inf - theorem SimpleGraph.edgeFinset_inj - theorem SimpleGraph.edgeFinset_sdiff - theorem SimpleGraph.edgeFinset_ssubset_edgeFinset - theorem SimpleGraph.edgeFinset_subset_edgeFinset - theorem SimpleGraph.edgeFinset_sup - theorem SimpleGraph.edgeFinset_top - theorem SimpleGraph.edgeSet_univ_card - theorem SimpleGraph.exists_maximal_degree_vertex - theorem SimpleGraph.exists_minimal_degree_vertex - def SimpleGraph.incidenceFinset - theorem SimpleGraph.incidenceFinset_eq_filter - theorem SimpleGraph.le_minDegree_of_forall_le_degree - def SimpleGraph.maxDegree - theorem SimpleGraph.maxDegree_le_of_forall_degree_le - theorem SimpleGraph.maxDegree_lt_card_verts - theorem SimpleGraph.mem_edgeFinset - theorem SimpleGraph.mem_incidenceFinset - theorem SimpleGraph.mem_neighborFinset - def SimpleGraph.minDegree - theorem SimpleGraph.minDegree_le_degree - def SimpleGraph.neighborFinset - theorem SimpleGraph.neighborFinset_compl - theorem SimpleGraph.neighborFinset_def - theorem SimpleGraph.neighborFinset_disjoint_singleton - theorem SimpleGraph.neighborFinset_eq_filter - theorem SimpleGraph.not_isDiag_of_mem_edgeFinset - theorem SimpleGraph.not_mem_neighborFinset_self - theorem SimpleGraph.singleton_disjoint_neighborFinset Modified Mathlib/Combinatorics/SimpleGraph/DegreeSum.lean Added Mathlib/Combinatorics/SimpleGraph/Finite.lean + theorem SimpleGraph.Adj.card_commonNeighbors_lt_degree + theorem SimpleGraph.DeleteFar.mono + def SimpleGraph.DeleteFar + theorem SimpleGraph.IsRegularOfDegree.compl + theorem SimpleGraph.IsRegularOfDegree.degree_eq + theorem SimpleGraph.IsRegularOfDegree.top + def SimpleGraph.IsRegularOfDegree + def SimpleGraph.LocallyFinite + theorem SimpleGraph.bot_degree + theorem SimpleGraph.card_commonNeighbors_le_degree_left + theorem SimpleGraph.card_commonNeighbors_le_degree_right + theorem SimpleGraph.card_commonNeighbors_lt_card_verts + theorem SimpleGraph.card_commonNeighbors_top + theorem SimpleGraph.card_edgeFinset_le_card_choose_two + theorem SimpleGraph.card_edgeFinset_top_eq_card_choose_two + theorem SimpleGraph.card_incidenceFinset_eq_degree + theorem SimpleGraph.card_incidenceSet_eq_degree + theorem SimpleGraph.card_neighborFinset_eq_degree + theorem SimpleGraph.card_neighborSet_eq_degree + theorem SimpleGraph.coe_edgeFinset + theorem SimpleGraph.complete_graph_degree + def SimpleGraph.degree + theorem SimpleGraph.degree_compl + theorem SimpleGraph.degree_le_maxDegree + theorem SimpleGraph.degree_lt_card_verts + theorem SimpleGraph.degree_pos_iff_exists_adj + theorem SimpleGraph.deleteFar_iff + def SimpleGraph.edgeFinset + theorem SimpleGraph.edgeFinset_bot + theorem SimpleGraph.edgeFinset_card + theorem SimpleGraph.edgeFinset_deleteEdges + theorem SimpleGraph.edgeFinset_inf + theorem SimpleGraph.edgeFinset_inj + theorem SimpleGraph.edgeFinset_sdiff + theorem SimpleGraph.edgeFinset_ssubset_edgeFinset + theorem SimpleGraph.edgeFinset_subset_edgeFinset + theorem SimpleGraph.edgeFinset_sup + theorem SimpleGraph.edgeFinset_top + theorem SimpleGraph.edgeSet_univ_card + theorem SimpleGraph.exists_maximal_degree_vertex + theorem SimpleGraph.exists_minimal_degree_vertex + def SimpleGraph.incidenceFinset + theorem SimpleGraph.incidenceFinset_eq_filter + theorem SimpleGraph.le_minDegree_of_forall_le_degree + def SimpleGraph.maxDegree + theorem SimpleGraph.maxDegree_le_of_forall_degree_le + theorem SimpleGraph.maxDegree_lt_card_verts + theorem SimpleGraph.mem_edgeFinset + theorem SimpleGraph.mem_incidenceFinset + theorem SimpleGraph.mem_neighborFinset + def SimpleGraph.minDegree + theorem SimpleGraph.minDegree_le_degree + def SimpleGraph.neighborFinset + theorem SimpleGraph.neighborFinset_compl + theorem SimpleGraph.neighborFinset_def + theorem SimpleGraph.neighborFinset_disjoint_singleton + theorem SimpleGraph.neighborFinset_eq_filter + theorem SimpleGraph.not_isDiag_of_mem_edgeFinset + theorem SimpleGraph.not_mem_neighborFinset_self + theorem SimpleGraph.singleton_disjoint_neighborFinset Modified Mathlib/Combinatorics/SimpleGraph/IncMatrix.lean Modified Mathlib/Combinatorics/SimpleGraph/Maps.lean Modified Mathlib/Combinatorics/SimpleGraph/Operations.lean Modified scripts/style-exceptions.txt 2024-02-03 01:50:57 34d2de5 chore(Measure.FiniteMeasure): remove an `@` replace with arguments for implicit parameters (#10194) The porting note seems to have slightly mis-diagnosed the problem here. This is more accurate and easier to read. ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Measure/FiniteMeasure.lean 2024-02-03 01:01:09 bbb2893 chore: cleanup TODOs around leanprover/lean4#3060 (#10198) Mathlib is now using v4.6.0-rc1, which includes the fix in leanprover/lean4#3060 ESTIMATED CHANGES Modified Mathlib/Analysis/Complex/UpperHalfPlane/Basic.lean Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Deriv.lean Modified Mathlib/Data/Nat/Factorial/DoubleFactorial.lean 2024-02-03 01:01:08 0e978d6 chore: misc lemmas about polynomials (#10193) ESTIMATED CHANGES Modified Mathlib/Data/MvPolynomial/Rename.lean + theorem MvPolynomial.coeff_rename_embDomain + theorem MvPolynomial.eval_rename Modified Mathlib/Data/MvPolynomial/Variables.lean + theorem MvPolynomial.degreeOf_le_iff + theorem MvPolynomial.degreeOf_le_totalDegree Modified Mathlib/Data/Polynomial/RingDivision.lean + theorem Polynomial.exists_eval_ne_zero_of_natDegree_lt_card Modified Mathlib/RingTheory/MvPolynomial/Homogeneous.lean + theorem MvPolynomial.IsHomogeneous.rename_isHomogeneous 2024-02-02 23:47:47 c167d46 chore(*): shake imports (#10199) * Remove `Data.Set.Basic` from `scripts/noshake.json`. * Remove an exception that was used by `example`s only, move these `example`s to a new test file. * Drop an exception for `Order.Filter.Basic` dependency on `Control.Traversable.Instances`, as the relevant parts were moved to `Order.Filter.ListTraverse`. * Run `lake exe shake --fix`. ESTIMATED CHANGES Modified Mathlib/Algebra/BigOperators/Finprod.lean Modified Mathlib/Algebra/Module/Injective.lean Modified Mathlib/Algebra/Module/Submodule/Lattice.lean Modified Mathlib/Algebra/Order/Floor.lean Modified Mathlib/Algebra/Parity.lean Modified Mathlib/AlgebraicGeometry/ProjectiveSpectrum/Topology.lean Modified Mathlib/AlgebraicTopology/FundamentalGroupoid/Basic.lean Modified Mathlib/Analysis/Complex/LocallyUniformLimit.lean Modified Mathlib/CategoryTheory/CofilteredSystem.lean Modified Mathlib/CategoryTheory/Generator.lean Modified Mathlib/CategoryTheory/GradedObject.lean Modified Mathlib/CategoryTheory/Limits/Preserves/Ulift.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Types.lean Modified Mathlib/CategoryTheory/Preadditive/HomOrthogonal.lean Modified Mathlib/CategoryTheory/Sites/Grothendieck.lean Modified Mathlib/CategoryTheory/Subobject/Types.lean Modified Mathlib/CategoryTheory/Types.lean Modified Mathlib/Combinatorics/Composition.lean Modified Mathlib/Combinatorics/DoubleCounting.lean Modified Mathlib/Combinatorics/SetFamily/FourFunctions.lean Modified Mathlib/Computability/Halting.lean Modified Mathlib/Data/Finsupp/Basic.lean Modified Mathlib/Data/Nat/Parity.lean Modified Mathlib/Data/Set/Basic.lean Modified Mathlib/Data/Set/Countable.lean Modified Mathlib/Data/Set/Defs.lean Modified Mathlib/Data/Set/Equitable.lean Modified Mathlib/Data/Set/Opposite.lean Modified Mathlib/GroupTheory/Coset.lean Modified Mathlib/GroupTheory/Subgroup/ZPowers.lean Modified Mathlib/Lean/Expr/ExtraRecognizers.lean Modified Mathlib/LinearAlgebra/LinearIndependent.lean Modified Mathlib/Logic/Encodable/Lattice.lean Modified Mathlib/MeasureTheory/Group/Measure.lean Modified Mathlib/MeasureTheory/Measure/Haar/Unique.lean Modified Mathlib/MeasureTheory/Measure/Regular.lean Modified Mathlib/Order/Category/FinBoolAlg.lean Modified Mathlib/Order/Category/NonemptyFinLinOrd.lean Modified Mathlib/Order/Ideal.lean Modified Mathlib/Order/OrderIsoNat.lean Modified Mathlib/RingTheory/LocalProperties.lean Modified Mathlib/Topology/Category/CompHaus/Basic.lean Modified Mathlib/Topology/Category/TopCat/Limits/Products.lean Modified Mathlib/Topology/Category/TopCat/OpenNhds.lean Modified Mathlib/Topology/Sheaves/Presheaf.lean Modified scripts/noshake.json Added test/RegularMeasure.lean Modified test/propose.lean 2024-02-02 23:14:13 c838d28 feat: Flooring, ceiling roots of a natural number (#8839) This PR defines the flooring and ceiling root of a natural number. The `n`-th flooring/ceiling root of `a` is the natural number whose `p`-adic valuation is the floor/ceil of the `p`-adic valuation of `a`. Those operations are respectively the right and left adjoints to the map `a ↦ a ^ n`. For example the `2`-nd flooring and ceiling roots of `2^3 * 3^2 * 5` are `2 * 3` and `2^2 * 3 * 5` respectively. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Data/Nat/Factorization/Root.lean + theorem Nat.ceilRoot_eq_zero + theorem Nat.ceilRoot_ne_zero + theorem Nat.ceilRoot_one_left + theorem Nat.ceilRoot_one_right + theorem Nat.ceilRoot_pow_self + theorem Nat.ceilRoot_zero_left + theorem Nat.ceilRoot_zero_right + theorem Nat.dvd_ceilRoot_pow + theorem Nat.dvd_pow_iff_ceilRoot_dvd + theorem Nat.factorization_ceilRoot + theorem Nat.factorization_floorRoot + theorem Nat.floorRoot_eq_zero + theorem Nat.floorRoot_ne_zero + theorem Nat.floorRoot_one_left + theorem Nat.floorRoot_one_right + theorem Nat.floorRoot_pow_dvd + theorem Nat.floorRoot_pow_self + theorem Nat.floorRoot_zero_left + theorem Nat.floorRoot_zero_right + theorem Nat.pow_dvd_iff_dvd_floorRoot 2024-02-02 21:55:14 3533757 chore: remove detrital heartbeat bumps (#10191) With multiple changes, it is a good time to check if existing `set_option maxHeartbeats` and `set_option synthInstance.maxHeartbeats` remain necessary. This brings the number of files with such down from 23 to 9. Most are straight deletions though I did change one proof. ESTIMATED CHANGES Modified Archive/Imo/Imo1960Q1.lean Modified Mathlib/Algebra/Category/ModuleCat/ChangeOfRings.lean Modified Mathlib/Algebra/Category/ModuleCat/Monoidal/Basic.lean Modified Mathlib/Algebra/Jordan/Basic.lean Modified Mathlib/Algebra/Module/GradedModule.lean Modified Mathlib/Algebra/Module/PID.lean Modified Mathlib/Analysis/Analytic/Composition.lean Modified Mathlib/Analysis/Calculus/ContDiff/Bounds.lean Modified Mathlib/CategoryTheory/Monoidal/Mod_.lean Modified Mathlib/FieldTheory/RatFunc.lean Modified Mathlib/LinearAlgebra/CliffordAlgebra/EvenEquiv.lean Modified Mathlib/NumberTheory/NumberField/Norm.lean Modified Mathlib/RepresentationTheory/GroupCohomology/Resolution.lean Modified Mathlib/RingTheory/AlgebraicIndependent.lean Modified Mathlib/Topology/ContinuousFunction/StoneWeierstrass.lean 2024-02-02 21:55:13 b1b4ebf chore(FiniteDimensional): rename lemmas (#10188) Rename lemmas to enable new-style dot notation or drop repeating `FiniteDimensional.finiteDimensional_*`. Restore old names as deprecated aliases. ESTIMATED CHANGES Modified Archive/Imo/Imo2019Q2.lean Modified Mathlib/Analysis/InnerProductSpace/Orientation.lean Modified Mathlib/Analysis/InnerProductSpace/PiL2.lean Modified Mathlib/Analysis/InnerProductSpace/Projection.lean Modified Mathlib/Analysis/InnerProductSpace/TwoDim.lean - theorem FiniteDimensional.finiteDimensional_of_fact_finrank_eq_two + theorem FiniteDimensional.of_fact_finrank_eq_two Modified Mathlib/Analysis/NormedSpace/FiniteDimension.lean + theorem FiniteDimensional.of_isCompact_closedBall + theorem FiniteDimensional.of_isCompact_closedBall₀ + theorem FiniteDimensional.of_locallyCompactSpace - theorem finiteDimensional_of_isCompact_closedBall - theorem finiteDimensional_of_isCompact_closedBall₀ - theorem finiteDimensional_of_locallyCompactSpace Modified Mathlib/FieldTheory/KrullTopology.lean Modified Mathlib/FieldTheory/PrimitiveElement.lean + theorem Field.FiniteDimensional.of_exists_primitive_element + theorem Field.FiniteDimensional.of_finite_intermediateField - theorem Field.finiteDimensional_of_exists_primitive_element - theorem Field.finiteDimensional_of_finite_intermediateField Modified Mathlib/FieldTheory/Tower.lean Modified Mathlib/Geometry/Manifold/Instances/Sphere.lean Modified Mathlib/LinearAlgebra/AffineSpace/FiniteDimensional.lean Modified Mathlib/LinearAlgebra/FiniteDimensional.lean - theorem FiniteDimensional.fact_finiteDimensional_of_finrank_eq_succ - theorem FiniteDimensional.finiteDimensional_of_finrank - theorem FiniteDimensional.finiteDimensional_of_finrank_eq_succ + theorem FiniteDimensional.of_fact_finrank_eq_succ + theorem FiniteDimensional.of_finrank_eq_succ + theorem FiniteDimensional.of_finrank_pos + theorem FiniteDimensional.of_rank_eq_nat + theorem FiniteDimensional.of_rank_eq_one + theorem FiniteDimensional.of_rank_eq_zero - theorem finiteDimensional_of_rank_eq_nat - theorem finiteDimensional_of_rank_eq_one - theorem finiteDimensional_of_rank_eq_zero Modified Mathlib/LinearAlgebra/Orientation.lean Modified Mathlib/MeasureTheory/Measure/Haar/Disintegration.lean Modified Mathlib/NumberTheory/RamificationInertia.lean Modified docs/undergrad.yaml 2024-02-02 21:55:12 eb8dc10 chore: golf integral_inv_one_add_sq (#10184) ESTIMATED CHANGES Modified Mathlib/Analysis/SpecialFunctions/Integrals.lean 2024-02-02 21:55:11 6daa3eb feat(Set/Lattice): upgrade some lemmas to `iff`s (#10181) ESTIMATED CHANGES Modified Mathlib/Data/Set/Lattice.lean +/- theorem Set.mapsTo_iInter +/- theorem Set.mapsTo_iInter₂ +/- theorem Set.mapsTo_iUnion +/- theorem Set.mapsTo_iUnion₂ +/- theorem Set.mapsTo_sInter +/- theorem Set.mapsTo_sUnion Modified Mathlib/Topology/Compactness/LocallyCompact.lean 2024-02-02 21:55:10 9db1819 chore: upgrade styfle/cancel-workflow-action (#10155) The old version is giving warnings in CI as of a week ago. ESTIMATED CHANGES Modified .github/workflows/bors.yml Modified .github/workflows/build.yml Modified .github/workflows/build.yml.in Modified .github/workflows/build_fork.yml 2024-02-02 21:55:09 4b37d53 chore: tidy various files (#10007) ESTIMATED CHANGES Modified Mathlib/Computability/RegularExpressions.lean Modified Mathlib/Data/List/BigOperators/Basic.lean Modified Mathlib/Data/ZMod/Module.lean Modified Mathlib/GroupTheory/Nilpotent.lean Modified Mathlib/LinearAlgebra/Matrix/SpecialLinearGroup.lean Modified Mathlib/Order/Filter/NAry.lean Modified Mathlib/RingTheory/Filtration.lean Modified Mathlib/Topology/CompactOpen.lean Modified Mathlib/Topology/Compactness/Lindelof.lean +/- theorem isLindelof_empty 2024-02-02 21:03:09 d04f8d3 fix(RingTheory/DedekindDomain/Ideal): remove porting note (#10173) ESTIMATED CHANGES Modified Mathlib/RingTheory/DedekindDomain/Ideal.lean 2024-02-02 21:03:08 382799b feat(RingTheory/Polynomial/IrreducibleRing): add `Monic.irreducible_of_irreducible_map_of_isPrime_nilradical` (#10157) A monic polynomial over an irreducible ring is irreducible if it is irreducible after mapping into an integral domain. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/RingTheory/Polynomial/IrreducibleRing.lean + theorem Polynomial.Monic.irreducible_of_irreducible_map_of_isPrime_nilradical 2024-02-02 21:03:07 96a6d29 refactor: generalize `CharP+Prime` to `ExpChar` in `frobenius` (#10016) Consequently, the part about `frobenius` in Algebra/CharP/Basic is moved to CharP/ExpChar, and imports are adjusted as necessary. + Add instances from `CharP+Fact(Nat.Prime)` and `CharZero` to `ExpChar`, to allow lemmas generalized to ExpChar still apply to CharP. + Remove lemmas in Algebra/CharP/ExpChar from [#9799](https://github.com/leanprover-community/mathlib4/commit/1e74fcfff8d5ffe5a3a9881864cf10fa39f619e6) because they coincide with the generalized lemmas, and golf the other lemmas (in Algebra/CharP/Basic). + Define the RingHom `iterateFrobenius` and the semilinear map `LinearMap.(iterate)Frobenius` for an algebra. When the characteristic is zero (ExpChar is 1), these are all equal to the identity map (· ^ 1). Also define `iterateFrobeniusEquiv` for perfect rings. + Fix and/or generalize other files. ESTIMATED CHANGES Modified Mathlib/Algebra/CharP/Basic.lean - theorem MonoidHom.iterate_map_frobenius - theorem MonoidHom.map_frobenius - theorem MonoidHom.map_iterate_frobenius - theorem RingHom.iterate_map_frobenius - theorem RingHom.map_frobenius - theorem RingHom.map_iterate_frobenius - def frobenius - theorem frobenius_add - theorem frobenius_def - theorem frobenius_mul - theorem frobenius_nat_cast - theorem frobenius_neg - theorem frobenius_one - theorem frobenius_sub - theorem frobenius_zero - theorem iterate_frobenius - theorem list_sum_pow_char - theorem list_sum_pow_char_pow - theorem multiset_sum_pow_char - theorem multiset_sum_pow_char_pow - theorem sum_pow_char - theorem sum_pow_char_pow Modified Mathlib/Algebra/CharP/ExpChar.lean + theorem LinearMap.frobenius_def + theorem LinearMap.iterateFrobenius_def + theorem MonoidHom.iterate_map_frobenius + theorem MonoidHom.map_frobenius + theorem MonoidHom.map_iterate_frobenius + theorem RingHom.iterate_map_frobenius + theorem RingHom.map_frobenius + theorem RingHom.map_iterate_frobenius + theorem coe_iterateFrobenius + theorem coe_iterateFrobenius_mul + def frobenius + theorem frobenius_add + theorem frobenius_def + theorem frobenius_mul + theorem frobenius_nat_cast + theorem frobenius_neg + theorem frobenius_one + theorem frobenius_sub + theorem frobenius_zero + def iterateFrobenius + theorem iterateFrobenius_add + theorem iterateFrobenius_def + theorem iterateFrobenius_one + theorem iterateFrobenius_zero + theorem iterate_frobenius + theorem list_sum_pow_char + theorem list_sum_pow_char_pow - theorem list_sum_pow_expChar - theorem list_sum_pow_expChar_pow + theorem multiset_sum_pow_char + theorem multiset_sum_pow_char_pow - theorem multiset_sum_pow_expChar - theorem multiset_sum_pow_expChar_pow + theorem sum_pow_char + theorem sum_pow_char_pow - theorem sum_pow_expChar - theorem sum_pow_expChar_pow Modified Mathlib/Algebra/CharP/Reduced.lean - theorem CharP.pow_prime_pow_mul_eq_one_iff + theorem ExpChar.pow_prime_pow_mul_eq_one_iff +/- theorem frobenius_inj Modified Mathlib/Algebra/CharP/Two.lean Modified Mathlib/Data/Polynomial/Expand.lean + theorem Polynomial.contract_one + theorem Polynomial.expand_contract' +/- theorem Polynomial.expand_contract Modified Mathlib/FieldTheory/Perfect.lean +/- theorem PerfectRing.ofSurjective + theorem bijective_iterateFrobenius + theorem coe_iterateFrobeniusEquiv +/- theorem not_irreducible_expand Modified Mathlib/FieldTheory/SplittingField/Construction.lean Modified Mathlib/RingTheory/Polynomial/Basic.lean Modified Mathlib/RingTheory/RootsOfUnity/Basic.lean +/- theorem mem_rootsOfUnity_prime_pow_mul_iff' +/- theorem mem_rootsOfUnity_prime_pow_mul_iff 2024-02-02 19:14:21 0311bbc feat(Topology): add `lift'_nhds_interior` etc (#10175) ESTIMATED CHANGES Modified Mathlib/Topology/Basic.lean + theorem Filter.HasBasis.lift'_interior + theorem Filter.HasBasis.lift'_interior_eq_self + theorem Filter.HasBasis.nhds_interior + theorem Filter.lift'_interior_le + theorem lift'_nhds_interior Modified Mathlib/Topology/NhdsSet.lean + theorem Filter.HasBasis.nhdsSet_interior + theorem lift'_nhdsSet_interior 2024-02-02 17:38:32 056cc4b feat: add `lake exe shake` to CI (#9751) - [X] depends on: #9830 - [X] depends on: #9772 - [X] depends on: #9996 This checks files for unused imports. The output here is piped through `gh-problem-matcher-wrap` so that it will show up as annotations. ESTIMATED CHANGES Modified .github/workflows/bors.yml Modified .github/workflows/build.yml Modified .github/workflows/build.yml.in Modified .github/workflows/build_fork.yml Modified Mathlib/Algebra/AddConstMap/Basic.lean Modified Mathlib/Algebra/GroupWithZero/Power.lean Modified Mathlib/Algebra/Module/Basic.lean Modified Mathlib/Algebra/Module/LinearMap/Basic.lean Modified Mathlib/Algebra/Module/LinearMap/Pointwise.lean Modified Mathlib/Algebra/Order/Floor.lean Modified Mathlib/Algebra/Ring/Divisibility/Lemmas.lean Modified Mathlib/Analysis/Complex/LocallyUniformLimit.lean Modified Mathlib/CategoryTheory/Monoidal/Braided.lean Modified Mathlib/CategoryTheory/Monoidal/Center.lean Modified Mathlib/Data/BitVec/Defs.lean Modified Mathlib/Data/BitVec/Lemmas.lean Modified Mathlib/Data/Complex/Basic.lean Modified Mathlib/Data/ENNReal/Operations.lean Modified Mathlib/Data/Int/Parity.lean Modified Mathlib/Data/MvPolynomial/Basic.lean Modified Mathlib/Data/Option/Defs.lean Modified Mathlib/Data/Ordmap/Ordset.lean Modified Mathlib/Data/Polynomial/Basic.lean Modified Mathlib/Data/Rat/NNRat/BigOperators.lean Modified Mathlib/GroupTheory/EckmannHilton.lean Modified Mathlib/GroupTheory/OrderOfElement.lean Modified Mathlib/LinearAlgebra/Span.lean Modified Mathlib/NumberTheory/FLT/Basic.lean Modified Mathlib/Order/RelIso/Basic.lean Modified Mathlib/Order/RelSeries.lean Modified Mathlib/Order/WithBot.lean Modified Mathlib/RepresentationTheory/Action/Basic.lean Modified Mathlib/RingTheory/Nilpotent.lean Modified Mathlib/SetTheory/Game/Basic.lean Modified Mathlib/Tactic/Abel.lean Modified Mathlib/Topology/Algebra/Field.lean Modified Mathlib/Topology/MetricSpace/IsometricSMul.lean Modified Mathlib/Util/DischargerAsTactic.lean Modified Shake/Main.lean +/- def main + def parseHeader Modified scripts/noshake.json 2024-02-02 14:03:37 3d28521 fix: ensure that the linter fails when it should (#10187) ESTIMATED CHANGES Modified scripts/lint-style.py Modified scripts/style-exceptions.txt 2024-02-02 14:03:36 935c079 feat: relative versions of equicontinuity (#9286) - [x] depends on: #7568 ESTIMATED CHANGES Modified Mathlib/Analysis/LocallyConvex/Barrelled.lean Modified Mathlib/Topology/UniformSpace/Equicontinuity.lean - theorem Equicontinuous.closure + theorem Equicontinuous.equicontinuousOn + theorem EquicontinuousAt.equicontinuousWithinAt + theorem EquicontinuousOn.closure' + theorem EquicontinuousOn.comp + theorem EquicontinuousOn.continuousOn + theorem EquicontinuousOn.mono + def EquicontinuousOn + theorem EquicontinuousWithinAt.closure' + theorem EquicontinuousWithinAt.comp + theorem EquicontinuousWithinAt.continuousWithinAt + theorem EquicontinuousWithinAt.mono + def EquicontinuousWithinAt +/- theorem Filter.HasBasis.equicontinuousAt_iff_left +/- theorem Filter.HasBasis.equicontinuousAt_iff_right + theorem Filter.HasBasis.equicontinuousWithinAt_iff + theorem Filter.HasBasis.equicontinuousWithinAt_iff_left + theorem Filter.HasBasis.equicontinuousWithinAt_iff_right + theorem Filter.HasBasis.uniformEquicontinuousOn_iff + theorem Filter.HasBasis.uniformEquicontinuousOn_iff_left + theorem Filter.HasBasis.uniformEquicontinuousOn_iff_right +/- theorem Filter.HasBasis.uniformEquicontinuous_iff_left +/- theorem Filter.HasBasis.uniformEquicontinuous_iff_right + theorem Filter.Tendsto.continuousOn_of_equicontinuousOn + theorem Filter.Tendsto.continuousWithinAt_of_equicontinuousWithinAt + theorem Filter.Tendsto.continuous_of_equicontinuous - theorem Filter.Tendsto.continuous_of_equicontinuousAt + theorem Filter.Tendsto.uniformContinuousOn_of_uniformEquicontinuousOn - theorem UniformEquicontinuous.closure + theorem UniformEquicontinuous.uniformEquicontinuousOn + theorem UniformEquicontinuousOn.closure' + theorem UniformEquicontinuousOn.comp + theorem UniformEquicontinuousOn.equicontinuousOn + theorem UniformEquicontinuousOn.mono + theorem UniformEquicontinuousOn.uniformContinuousOn + def UniformEquicontinuousOn + theorem UniformInducing.equicontinuousOn_iff + theorem UniformInducing.equicontinuousWithinAt_iff + theorem UniformInducing.uniformEquicontinuousOn_iff +/- theorem equicontinuousAt_iInf_dom +/- theorem equicontinuousAt_iInf_rng + theorem equicontinuousAt_restrict_iff + theorem equicontinuousOn_empty + theorem equicontinuousOn_finite + theorem equicontinuousOn_iInf_dom + theorem equicontinuousOn_iInf_rng + theorem equicontinuousOn_iff_continuousOn + theorem equicontinuousOn_iff_range + theorem equicontinuousOn_unique + theorem equicontinuousOn_univ + theorem equicontinuousWithinAt_empty + theorem equicontinuousWithinAt_finite + theorem equicontinuousWithinAt_iInf_dom + theorem equicontinuousWithinAt_iInf_rng + theorem equicontinuousWithinAt_iff_continuousWithinAt + theorem equicontinuousWithinAt_iff_pair + theorem equicontinuousWithinAt_iff_range + theorem equicontinuousWithinAt_unique + theorem equicontinuousWithinAt_univ +/- theorem equicontinuous_iInf_dom +/- theorem equicontinuous_iInf_rng + theorem equicontinuous_restrict_iff + theorem uniformEquicontinuousOn_empty + theorem uniformEquicontinuousOn_finite + theorem uniformEquicontinuousOn_iInf_dom + theorem uniformEquicontinuousOn_iInf_rng + theorem uniformEquicontinuousOn_iff_range + theorem uniformEquicontinuousOn_iff_uniformContinuousOn + theorem uniformEquicontinuousOn_unique + theorem uniformEquicontinuousOn_univ - theorem uniformEquicontinuous_at_iff_range + theorem uniformEquicontinuous_iInf_dom +/- theorem uniformEquicontinuous_iInf_rng + theorem uniformEquicontinuous_iff_range + theorem uniformEquicontinuous_restrict_iff - theorem uniform_equicontinuous_infi_dom 2024-02-02 13:15:18 23d27aa chore(Algebra/Module/LinearMap): split into 3 files (#10183) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Module/Equiv.lean Modified Mathlib/Algebra/Module/LinearMap/Basic.lean - def DistribMulAction.toLinearMap - def DistribMulAction.toModuleEnd - def LinearMap.applyₗ' - def LinearMap.applyₗ - theorem LinearMap.coe_mul - theorem LinearMap.coe_one - theorem LinearMap.coe_pow - theorem LinearMap.coe_smulRight - theorem LinearMap.commute_pow_left_of_commute - def LinearMap.compRight - theorem LinearMap.compRight_apply - theorem LinearMap.id_pow - theorem LinearMap.injective_of_iterate_injective - theorem LinearMap.iterate_bijective - theorem LinearMap.iterate_injective - theorem LinearMap.iterate_succ - theorem LinearMap.iterate_surjective - theorem LinearMap.mul_apply - theorem LinearMap.mul_eq_comp - theorem LinearMap.one_apply - theorem LinearMap.one_eq_id - theorem LinearMap.pow_apply - theorem LinearMap.pow_map_zero_of_le - def LinearMap.smulRight - theorem LinearMap.smulRight_apply - theorem LinearMap.smulRight_apply_eq_zero_iff - theorem LinearMap.smulRight_zero - def LinearMap.smulRightₗ - theorem LinearMap.smulRightₗ_apply - theorem LinearMap.surjective_of_iterate_surjective - theorem LinearMap.zero_smulRight - theorem Module.End.intCast_apply - theorem Module.End.intCast_def - theorem Module.End.natCast_apply - theorem Module.End.natCast_def - theorem Module.End.ofNat_apply - theorem Module.End_isUnit_apply_inv_apply_of_isUnit - theorem Module.End_isUnit_inv_apply_apply_of_isUnit - def Module.moduleEndSelf - def Module.moduleEndSelfOp - def Module.toModuleEnd - theorem image_smul_set - theorem image_smul_setₛₗ - theorem preimage_smul_set - theorem preimage_smul_setₛₗ Added Mathlib/Algebra/Module/LinearMap/End.lean + def DistribMulAction.toLinearMap + def DistribMulAction.toModuleEnd + def LinearMap.applyₗ' + def LinearMap.applyₗ + theorem LinearMap.coe_mul + theorem LinearMap.coe_one + theorem LinearMap.coe_pow + theorem LinearMap.coe_smulRight + theorem LinearMap.commute_pow_left_of_commute + def LinearMap.compRight + theorem LinearMap.compRight_apply + theorem LinearMap.id_pow + theorem LinearMap.injective_of_iterate_injective + theorem LinearMap.iterate_bijective + theorem LinearMap.iterate_injective + theorem LinearMap.iterate_succ + theorem LinearMap.iterate_surjective + theorem LinearMap.mul_apply + theorem LinearMap.mul_eq_comp + theorem LinearMap.one_apply + theorem LinearMap.one_eq_id + theorem LinearMap.pow_apply + theorem LinearMap.pow_map_zero_of_le + def LinearMap.smulRight + theorem LinearMap.smulRight_apply + theorem LinearMap.smulRight_apply_eq_zero_iff + theorem LinearMap.smulRight_zero + def LinearMap.smulRightₗ + theorem LinearMap.smulRightₗ_apply + theorem LinearMap.surjective_of_iterate_surjective + theorem LinearMap.zero_smulRight + theorem Module.End.intCast_apply + theorem Module.End.intCast_def + theorem Module.End.natCast_apply + theorem Module.End.natCast_def + theorem Module.End.ofNat_apply + theorem Module.End_isUnit_apply_inv_apply_of_isUnit + theorem Module.End_isUnit_inv_apply_apply_of_isUnit + def Module.moduleEndSelf + def Module.moduleEndSelfOp + def Module.toModuleEnd Added Mathlib/Algebra/Module/LinearMap/Pointwise.lean + theorem image_smul_set + theorem image_smul_setₛₗ + theorem preimage_smul_set + theorem preimage_smul_setₛₗ Modified Mathlib/Algebra/Module/Submodule/LinearMap.lean Modified Mathlib/Analysis/LocallyConvex/Bounded.lean 2024-02-02 13:15:17 b75513b feat: add some consequences of Tychonoff's theorem (#10161) Preliminaries for #6844 The way I prove Ascoli's theorem is by using equicontinuity to reduce it to the case of the product topology, where one can use Tychonoff, hence these variations. ESTIMATED CHANGES Modified Mathlib/Topology/Compactness/Compact.lean + theorem Pi.isCompact_iff_of_isClosed Modified Mathlib/Topology/Separation.lean + theorem Pi.isCompact_closure_iff + theorem Pi.isCompact_iff 2024-02-02 13:15:16 41ab332 feat(Shake): output clarifications (#9996) A new user running `lake exe shake --fix` will see lots of messages like "add:" "remove:" "fix:" and won't know what to do with it. I think these minor changes to the output will massively clarify what the tool actually wants you to do. ESTIMATED CHANGES Modified Shake/Main.lean 2024-02-02 12:29:12 c68625d feat: iff version of UniformInducing.comap_uniformSpace (#10153) Preliminaries for #6844 ESTIMATED CHANGES Modified Mathlib/Topology/UniformSpace/UniformEmbedding.lean + theorem uniformInducing_iff_uniformSpace 2024-02-02 11:53:49 30f2ec5 chore: update style exceptions (#10168) - two long files have been split now (remove their entries) - add an exception for `DedekindDomain/Ideal.lean`, which #9727 pushed over the limit ESTIMATED CHANGES Modified scripts/style-exceptions.txt 2024-02-02 09:30:31 894a897 chore(Integral/Bochner): golf (#10180) ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Integral/Bochner.lean +/- theorem MeasureTheory.norm_integral_le_integral_norm 2024-02-02 06:57:22 a6e70f2 chore(CategoryTheory/Bicategory): create Kan directory (#10178) I plan to put some files in this new directory. ESTIMATED CHANGES Modified Mathlib.lean Renamed Mathlib/CategoryTheory/Bicategory/IsKan.lean to Mathlib/CategoryTheory/Bicategory/Kan/IsKan.lean 2024-02-02 06:57:21 a705a6f chore(CategoryTheory/Bicategory): remove porting note (#10174) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Bicategory/NaturalTransformation.lean 2024-02-02 06:26:26 007ad74 refactor(CategoryTheory/Monoidal/Braided): use monoidalComp in the proofs (#10078) - [x] depends on: #10061 ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Monad/EquivMon.lean Modified Mathlib/CategoryTheory/Monoidal/Bimod.lean Modified Mathlib/CategoryTheory/Monoidal/Braided.lean - theorem CategoryTheory.associator_monoidal_aux + theorem CategoryTheory.braiding_tensorUnit_left + theorem CategoryTheory.braiding_tensorUnit_right - theorem CategoryTheory.tensor_associativity_aux +/- def CategoryTheory.tensor_μ - theorem CategoryTheory.tensor_μ_def₁ - theorem CategoryTheory.tensor_μ_def₂ Modified Mathlib/CategoryTheory/Monoidal/Category.lean Modified Mathlib/CategoryTheory/Monoidal/Center.lean + def CategoryTheory.Center.whiskerLeft + theorem CategoryTheory.Center.whiskerLeft_comm + def CategoryTheory.Center.whiskerRight + theorem CategoryTheory.Center.whiskerRight_comm Modified Mathlib/CategoryTheory/Monoidal/CommMon_.lean Modified Mathlib/CategoryTheory/Monoidal/Functor.lean + theorem CategoryTheory.LaxMonoidalFunctor.associativity' + theorem CategoryTheory.LaxMonoidalFunctor.associativity_inv' + theorem CategoryTheory.LaxMonoidalFunctor.left_unitality' + theorem CategoryTheory.LaxMonoidalFunctor.left_unitality_inv' + theorem CategoryTheory.LaxMonoidalFunctor.right_unitality' + theorem CategoryTheory.LaxMonoidalFunctor.right_unitality_inv' + theorem CategoryTheory.LaxMonoidalFunctor.μ_natural_left' + theorem CategoryTheory.LaxMonoidalFunctor.μ_natural_right' Modified Mathlib/CategoryTheory/Monoidal/Internal/Module.lean Modified Mathlib/CategoryTheory/Monoidal/Mod_.lean Modified Mathlib/CategoryTheory/Monoidal/Mon_.lean Modified Mathlib/Tactic/CategoryTheory/Coherence.lean 2024-02-02 04:48:09 490d2d4 chore: move to v4.6.0-rc1, merging adaptations from bump/v4.6.0 (#10176) ESTIMATED CHANGES Modified .github/workflows/bors.yml Modified .github/workflows/build.yml Modified .github/workflows/build.yml.in Modified .github/workflows/build_fork.yml Modified Archive/Examples/IfNormalization/Result.lean Modified Archive/Examples/IfNormalization/WithoutAesop.lean Modified Archive/Wiedijk100Theorems/BallotProblem.lean Modified Counterexamples/CharPZeroNeCharZero.lean Modified Mathlib/Algebra/Category/GroupCat/Basic.lean Modified Mathlib/Algebra/DirectLimit.lean Modified Mathlib/Algebra/DirectSum/Basic.lean Modified Mathlib/Algebra/EuclideanDomain/Defs.lean Modified Mathlib/Algebra/GCDMonoid/Basic.lean Modified Mathlib/Algebra/Group/Basic.lean Modified Mathlib/Algebra/Group/Equiv/TypeTags.lean +/- def addMonoidEndToMultiplicative +/- def monoidEndToAdditive Modified Mathlib/Algebra/Group/WithOne/Defs.lean Modified Mathlib/Algebra/Lie/Abelian.lean Modified Mathlib/Algebra/Lie/DirectSum.lean Modified Mathlib/Algebra/Lie/Subalgebra.lean Modified Mathlib/Algebra/Lie/Submodule.lean Modified Mathlib/Algebra/Lie/Weights/Linear.lean Modified Mathlib/Algebra/Module/Injective.lean Modified Mathlib/Algebra/Order/WithZero.lean Modified Mathlib/Algebra/Ring/BooleanRing.lean Modified Mathlib/Algebra/Ring/Idempotents.lean +/- theorem IsIdempotentElem.of_isIdempotent Modified Mathlib/Algebra/Ring/Pi.lean Modified Mathlib/Analysis/Analytic/Composition.lean Modified Mathlib/Analysis/Fourier/AddCircle.lean Modified Mathlib/Analysis/InnerProductSpace/GramSchmidtOrtho.lean Modified Mathlib/Analysis/NormedSpace/AffineIsometry.lean Modified Mathlib/CategoryTheory/Monad/EquivMon.lean Modified Mathlib/CategoryTheory/Monoidal/Mod_.lean Modified Mathlib/CategoryTheory/Monoidal/Preadditive.lean Modified Mathlib/CategoryTheory/Preadditive/HomOrthogonal.lean Modified Mathlib/CategoryTheory/Preadditive/OfBiproducts.lean Modified Mathlib/CategoryTheory/Sites/CoverPreserving.lean Modified Mathlib/Combinatorics/Catalan.lean Modified Mathlib/Combinatorics/SimpleGraph/StronglyRegular.lean Modified Mathlib/Computability/Ackermann.lean Modified Mathlib/Computability/PartrecCode.lean Modified Mathlib/Computability/RegularExpressions.lean Modified Mathlib/Data/BinaryHeap.lean Modified Mathlib/Data/ByteArray.lean Modified Mathlib/Data/Finset/Basic.lean Modified Mathlib/Data/Finset/Card.lean Modified Mathlib/Data/Finset/Fold.lean +/- theorem Finset.fold_hom +/- theorem Finset.fold_image_idem +/- theorem Finset.fold_insert_idem +/- theorem Finset.fold_ite Modified Mathlib/Data/Finset/LocallyFinite.lean Modified Mathlib/Data/Finset/NoncommProd.lean +/- theorem Multiset.noncommFold_eq_fold Modified Mathlib/Data/Fintype/Basic.lean Modified Mathlib/Data/Fintype/Lattice.lean Modified Mathlib/Data/List/Basic.lean Modified Mathlib/Data/List/Defs.lean Modified Mathlib/Data/List/Infix.lean Modified Mathlib/Data/List/Perm.lean Modified Mathlib/Data/List/Sort.lean Modified Mathlib/Data/List/Sym.lean Modified Mathlib/Data/Matroid/Basic.lean Modified Mathlib/Data/Multiset/Basic.lean Modified Mathlib/Data/Multiset/Fold.lean +/- theorem Multiset.fold_dedup_idem +/- theorem Multiset.fold_hom Modified Mathlib/Data/MvPolynomial/Expand.lean Modified Mathlib/Data/Nat/Cast/Defs.lean Modified Mathlib/Data/Nat/Choose/Basic.lean Modified Mathlib/Data/Nat/Choose/Sum.lean Modified Mathlib/Data/Nat/Defs.lean Modified Mathlib/Data/Nat/Factorial/Basic.lean Modified Mathlib/Data/Nat/Hyperoperation.lean Modified Mathlib/Data/Nat/Order/Basic.lean Modified Mathlib/Data/Nat/Prime.lean Modified Mathlib/Data/Nat/Squarefree.lean Modified Mathlib/Data/Num/Prime.lean Modified Mathlib/Data/Option/Defs.lean Modified Mathlib/Data/Ordmap/Ordnode.lean Modified Mathlib/Data/PNat/Defs.lean Modified Mathlib/Data/Polynomial/Div.lean Modified Mathlib/Data/Polynomial/Inductions.lean Modified Mathlib/Data/Polynomial/Lifts.lean Modified Mathlib/Data/Polynomial/RingDivision.lean Modified Mathlib/Data/Prod/TProd.lean Modified Mathlib/Data/Set/Basic.lean Modified Mathlib/Data/Set/Card.lean Modified Mathlib/Data/Sym/Card.lean Modified Mathlib/Data/UnionFind.lean Modified Mathlib/Geometry/Euclidean/Circumcenter.lean Modified Mathlib/GroupTheory/CommutingProbability.lean Modified Mathlib/GroupTheory/EckmannHilton.lean +/- structure EckmannHilton.IsUnital +/- theorem EckmannHilton.mul_assoc +/- theorem EckmannHilton.mul_comm Modified Mathlib/GroupTheory/OrderOfElement.lean Modified Mathlib/GroupTheory/Perm/Basic.lean Modified Mathlib/GroupTheory/Perm/Cycle/Basic.lean Modified Mathlib/GroupTheory/SpecificGroups/Cyclic.lean Modified Mathlib/GroupTheory/Subgroup/Basic.lean Modified Mathlib/Init/Algebra/Classes.lean Modified Mathlib/Lean/Meta/Simp.lean Modified Mathlib/LinearAlgebra/CliffordAlgebra/EvenEquiv.lean Modified Mathlib/LinearAlgebra/Projectivization/Subspace.lean Modified Mathlib/Logic/Basic.lean Modified Mathlib/Logic/Equiv/Basic.lean Modified Mathlib/Logic/Function/Conjugate.lean +/- theorem Function.Semiconj₂.isAssociative_left +/- theorem Function.Semiconj₂.isAssociative_right +/- theorem Function.Semiconj₂.isIdempotent_left +/- theorem Function.Semiconj₂.isIdempotent_right Modified Mathlib/MeasureTheory/Covering/Besicovitch.lean Modified Mathlib/MeasureTheory/Integral/SetToL1.lean Modified Mathlib/MeasureTheory/MeasurableSpace/Card.lean Modified Mathlib/NumberTheory/SumFourSquares.lean Modified Mathlib/Order/Estimator.lean Modified Mathlib/Order/Lattice.lean Modified Mathlib/Order/MinMax.lean +/- theorem min_associative Modified Mathlib/Order/RelClasses.lean Modified Mathlib/Order/SymmDiff.lean Modified Mathlib/Probability/ProbabilityMassFunction/Monad.lean Modified Mathlib/Probability/Variance.lean Modified Mathlib/RepresentationTheory/GroupCohomology/Hilbert90.lean Modified Mathlib/RingTheory/DedekindDomain/Ideal.lean Modified Mathlib/RingTheory/HahnSeries.lean Modified Mathlib/RingTheory/Multiplicity.lean Modified Mathlib/RingTheory/Polynomial/Hermite/Basic.lean Modified Mathlib/RingTheory/PowerSeries/Basic.lean Modified Mathlib/RingTheory/Valuation/ValuationSubring.lean Modified Mathlib/SetTheory/Game/Basic.lean Modified Mathlib/SetTheory/Game/Birthday.lean Modified Mathlib/SetTheory/Game/Impartial.lean Modified Mathlib/SetTheory/Game/Nim.lean Modified Mathlib/SetTheory/Game/Ordinal.lean Modified Mathlib/SetTheory/Game/PGame.lean Modified Mathlib/SetTheory/Game/Short.lean Modified Mathlib/SetTheory/Lists.lean Modified Mathlib/SetTheory/Ordinal/Basic.lean Modified Mathlib/SetTheory/Ordinal/CantorNormalForm.lean Modified Mathlib/SetTheory/Ordinal/NaturalOps.lean Modified Mathlib/SetTheory/Ordinal/Notation.lean Modified Mathlib/SetTheory/Surreal/Basic.lean Modified Mathlib/SetTheory/ZFC/Basic.lean Modified Mathlib/Tactic/Abel.lean Modified Mathlib/Tactic/Attr/Register.lean Modified Mathlib/Tactic/Cases.lean Modified Mathlib/Tactic/Core.lean Modified Mathlib/Tactic/DeriveTraversable.lean +/- def Mathlib.Deriving.Traversable.simpFunctorGoal Modified Mathlib/Tactic/FailIfNoProgress.lean Modified Mathlib/Tactic/FieldSimp.lean Modified Mathlib/Tactic/Lemma.lean Modified Mathlib/Tactic/NormNum/Core.lean + def Mathlib.Meta.NormNum.tryNormNum - def Mathlib.Meta.NormNum.tryNormNum? Modified Mathlib/Tactic/PPWithUniv.lean Modified Mathlib/Tactic/Positivity/Core.lean Modified Mathlib/Tactic/Propose.lean Modified Mathlib/Tactic/PushNeg.lean Modified Mathlib/Tactic/ReduceModChar.lean Modified Mathlib/Tactic/Relation/Trans.lean Modified Mathlib/Tactic/Rewrites.lean Modified Mathlib/Tactic/Ring/RingNF.lean Modified Mathlib/Tactic/SimpIntro.lean Modified Mathlib/Tactic/Simps/Basic.lean Modified Mathlib/Tactic/SplitIfs.lean Modified Mathlib/Tactic/SuppressCompilation.lean Modified Mathlib/Tactic/TFAE.lean Modified Mathlib/Testing/SlimCheck/Sampleable.lean Modified Mathlib/Topology/Homotopy/HomotopyGroup.lean Modified Mathlib/Util/AtomM.lean Modified Mathlib/Util/DischargerAsTactic.lean Modified lake-manifest.json Modified lakefile.lean Modified lean-toolchain Modified test/RewriteSearch/Basic.lean Modified test/delaborators.lean Modified test/matrix.lean 2024-02-02 03:17:04 86ecbac chore: bump Std (#10177) There's an exciting linter failure on `bump/v4.6.0`, and I'm wondering if this is caused by strange simp lemmas in leanprover/std4#558, so I'm updating to that before the bump. ESTIMATED CHANGES Modified Mathlib/Data/BitVec/Lemmas.lean - theorem Std.BitVec.ofFin_add - theorem Std.BitVec.ofFin_sub - theorem Std.BitVec.toNat_lt Modified Mathlib/Data/Fin/Basic.lean - theorem Fin.lt_iff_val_lt_val Modified Mathlib/Data/Nat/Bitwise.lean Modified lake-manifest.json 2024-02-02 00:24:22 e7d0ec3 doc: fix typos (#10171) Fix minor typos in the following files: - [x] `GroupTheory/Nilpotent.lean` - [x] `GroupTheory/PushoutI.lean` - [x] `SetTheory/Cardinal/ENat.lean` - [x] `SetTheory/Cardinal/Subfield.lean` - [x] `RepresentationTheory/Action/Basic.lean` - [x] `RepresentationTheory/Action/Limits.lean` - [x] `Logic/Function/OfArity.lean` ESTIMATED CHANGES Modified Mathlib/GroupTheory/Nilpotent.lean Modified Mathlib/GroupTheory/PushoutI.lean Modified Mathlib/Logic/Function/OfArity.lean Modified Mathlib/RepresentationTheory/Action/Basic.lean Modified Mathlib/RepresentationTheory/Action/Limits.lean Modified Mathlib/SetTheory/Cardinal/ENat.lean Modified Mathlib/SetTheory/Cardinal/Subfield.lean 2024-02-01 21:13:09 aa20ff6 feat(Data/Complex/Order, Analysis/Complex/Basic): add OrderClosedTopology instance, monotonicity of ofReal (#10112) This adds an `OrderClosedTopology` instance (scoped to `ComplexOrder`) for the complex numbers (to make things like `tsum_le_tsum` work with the partial order on the complex numbers) and the fact that `Complex.ofReal'` is monotone with respect to this order. ESTIMATED CHANGES Modified Mathlib/Analysis/Complex/Basic.lean + theorem Complex.orderClosedTopology Modified Mathlib/Data/Complex/Order.lean + theorem Complex.monotone_ofReal 2024-02-01 21:13:08 eb6e6bc feat(NumberTheory/LegendreSymbol/MulCharacter): add a coercion and a lemma (#10039) This is the sixth PR in a sequence that adds auxiliary lemmas from the [EulerProducts](https://github.com/MichaelStollBayreuth/EulerProducts) project to Mathlib. It adds a coercion from multiplicative characters to homomorphisms of monoids with zero and a variant of `MulChar.one_apply_coe` that is more convenient to use in some contexts. ESTIMATED CHANGES Modified Mathlib/NumberTheory/LegendreSymbol/MulCharacter.lean + theorem MulChar.one_apply + def MulChar.toMonoidWithZeroHom 2024-02-01 21:13:07 14151c7 refactor(Data/Rat/NNRat): move module and algebra instances (#9951) As with #9950, this is motivated by: * Getting `NNRat` closed to `norm_num` * Being able to put an `nnrat_cast` field in `DivisionSemiring`s This brings down the number of dependencies of `NNRat` by around 600. ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/Basic.lean Modified Mathlib/Algebra/Module/Basic.lean Modified Mathlib/Data/Nat/Digits.lean Modified Mathlib/Data/Rat/NNRat.lean 2024-02-01 20:02:07 9bd968e chore: create Algebra/Module/LinearMap/Basic in preparation of splitting (#10160) - chore: create Algebra/Module/LinearMap in preparation of splitting - adjust imports ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Module/Equiv.lean Renamed Mathlib/Algebra/Module/LinearMap.lean to Mathlib/Algebra/Module/LinearMap/Basic.lean Modified Mathlib/Algebra/Module/Submodule/LinearMap.lean Modified Mathlib/CategoryTheory/Linear/Basic.lean Modified Mathlib/Data/DFinsupp/Basic.lean Modified Mathlib/Data/Matrix/Basic.lean Modified Mathlib/Data/ZMod/Module.lean Modified Mathlib/LinearAlgebra/SesquilinearForm.lean Modified Mathlib/RepresentationTheory/Basic.lean Modified test/Variable.lean 2024-02-01 20:02:06 2ba297e feat(Analysis/SpecialFunctions): some lemmas on complex functions of natural numbers (#10034) This is the fourth PR in a sequence that adds auxiliary lemmas from the [EulerProducts](https://github.com/MichaelStollBayreuth/EulerProducts) project to Mathlib. It adds some lemmas on functions of complex numbers applied to natural numbers: ```lean lemma Complex.natCast_log {n : ℕ} : Real.log n = log n lemma Complex.natCast_arg {n : ℕ} : arg n = 0 lemma Complex.natCast_mul_natCast_cpow (m n : ℕ) (s : ℂ) : (m * n : ℂ) ^ s = m ^ s * n ^ s lemma Complex.natCast_cpow_natCast_mul (n m : ℕ) (z : ℂ) : (n : ℂ) ^ (m * z) = ((n : ℂ) ^ m) ^ z lemma Complex.norm_log_natCast_le_rpow_div (n : ℕ) {ε : ℝ} (hε : 0 < ε) : ‖log n‖ ≤ n ^ ε / ε ``` (and `ofNat` versions of the first two). ESTIMATED CHANGES Modified Mathlib/Analysis/SpecialFunctions/Complex/Arg.lean + theorem Complex.natCast_arg + theorem Complex.ofNat_arg Modified Mathlib/Analysis/SpecialFunctions/Complex/Log.lean + theorem Complex.natCast_log + theorem Complex.ofNat_log Modified Mathlib/Analysis/SpecialFunctions/Pow/Complex.lean + theorem Complex.natCast_cpow_natCast_mul + theorem Complex.natCast_mul_natCast_cpow Modified Mathlib/Analysis/SpecialFunctions/Pow/Real.lean + theorem Complex.norm_log_natCast_le_rpow_div 2024-02-01 20:02:04 ad46cc4 feat(CategoryTheory/Galois): evaluation is injective and more basic properties (#9841) Shows one of the key technical lemmas about Galois categories, namely that evaluation on a point of the fibre of morphisms out of a connected object is injective. Also adds some more basic properties on when objects are initial and preservation and reflection of monomorphisms. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Galois/Basic.lean + theorem CategoryTheory.PreGaloisCategory.evaluationInjective_of_connected + theorem CategoryTheory.PreGaloisCategory.evaluation_aut_injective_of_connected + theorem CategoryTheory.PreGaloisCategory.initial_iff_fibre_empty + theorem CategoryTheory.PreGaloisCategory.nonempty_fibre_of_connected + theorem CategoryTheory.PreGaloisCategory.not_initial_of_inhabited Modified Mathlib/CategoryTheory/Limits/Preserves/Shapes/Terminal.lean + def CategoryTheory.Limits.IsInitial.isInitialIffObj + def CategoryTheory.Limits.IsTerminal.isTerminalIffObj Modified Mathlib/CategoryTheory/Limits/Shapes/ConcreteCategory.lean + theorem CategoryTheory.Limits.Concrete.empty_of_initial_of_preserves + theorem CategoryTheory.Limits.Concrete.initial_iff_empty_of_preserves_of_reflects + theorem CategoryTheory.Limits.Concrete.initial_of_empty_of_reflects Modified Mathlib/CategoryTheory/Limits/Shapes/Types.lean + theorem CategoryTheory.Limits.Types.initial_iff_empty 2024-02-01 18:57:15 e64d0a1 refactor(Order/CompleteLatticeIntervals): move lemmas with a multiset dependency to a new file (#10165) This reworks the location of the lemmas from #10086, by moving them to a new `Mathlib.Order.CompactlyGenerated.Intervals` file. The existing `Mathlib.Order.CompactlyGenerated` is moved to `Mathlib.Order.CompactlyGenerated.Basic` for consistency. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/LinearAlgebra/Span.lean Renamed Mathlib/Order/CompactlyGenerated.lean to Mathlib/Order/CompactlyGenerated/Basic.lean Added Mathlib/Order/CompactlyGenerated/Intervals.lean + theorem Set.Iic.isCompactElement + theorem complementedLattice_of_complementedLattice_Iic Modified Mathlib/Order/CompleteLatticeIntervals.lean - theorem Set.Iic.isCompactElement - theorem complementedLattice_of_complementedLattice_Iic Modified Mathlib/RingTheory/SimpleModule.lean Modified Mathlib/Topology/Sets/Opens.lean 2024-02-01 18:09:25 6dd08a5 feat(RingTheory/Flat): definition of flat ring homomorphism and stability under composition (#10148) Adds the definition of flat algebras, flat ring homomorphisms and shows that flatness is stable under composition. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/LinearAlgebra/TensorProduct/Tower.lean + def TensorProduct.AlgebraTensorModule.cancelBaseChange + theorem TensorProduct.AlgebraTensorModule.cancelBaseChange_symm_tmul + theorem TensorProduct.AlgebraTensorModule.cancelBaseChange_tmul Added Mathlib/RingTheory/Flat/Algebra.lean + theorem Algebra.Flat.comp Modified Mathlib/RingTheory/Flat/Basic.lean + theorem Module.Flat.iff_lTensor_injective' + theorem Module.Flat.iff_lTensor_injective + theorem Module.Flat.lTensor_inj_iff_rTensor_inj Added Mathlib/RingTheory/Flat/Stability.lean + theorem Module.Flat.comp 2024-02-01 17:35:23 e1d0b5c feat(RepresentationTheory/Action): `MulAction` instance for objects of `Action V G` with concrete `V` (#9668) For `X : Action V G` and `ConcreteCategory V` adds a `MulAction G ((forget _).obj X))` instance. ESTIMATED CHANGES Modified Mathlib/RepresentationTheory/Action/Concrete.lean 2024-02-01 16:22:24 a55d122 feat(Data/Fin/Basic): Improvement and extension of order results (#10156) Refines and extends results relating to the monotonicity of succ, castSucc, and related functions ESTIMATED CHANGES Modified Mathlib/Algebra/BigOperators/Fin.lean Modified Mathlib/Combinatorics/SimpleGraph/Clique.lean Modified Mathlib/Data/Fin/Basic.lean + theorem Fin.castPred_le_pred_iff + theorem Fin.castSucc_pred_lt_iff + theorem Fin.castpred_succ_le_iff - theorem Fin.le_castPred_succ_iff + theorem Fin.lt_castPred_succ_iff + theorem Fin.lt_succ_castPred_iff + theorem Fin.monotone_castPred_comp + theorem Fin.monotone_pred_comp + theorem Fin.pred_castSucc_lt_iff +/- theorem Fin.pred_lt_castPred + theorem Fin.pred_lt_castPred_iff + theorem Fin.strictMono_castPred_comp + theorem Fin.strictMono_pred_comp + theorem Fin.strictMono_succ + theorem Fin.succAbove_le_succAbove_iff + theorem Fin.succAbove_lt_succAbove_iff + def Fin.succEmb - def Fin.succEmbedding +/- theorem Fin.succ_injective + theorem Fin.val_succEmb - theorem Fin.val_succEmbedding Modified Mathlib/Data/Fintype/Fin.lean +/- theorem Fin.Ioi_succ +/- theorem Fin.Ioi_zero_eq_map 2024-02-01 15:16:47 be2a49b feat: a linear endomorphism that is a root of a squarefree polynomial is semisimple (#10128) The main result is `Module.End.isSemisimple_of_squarefree_aeval_eq_zero` ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Associated.lean + theorem prime_mul_iff + theorem prime_pow_iff Modified Mathlib/Analysis/Calculus/Taylor.lean Modified Mathlib/Data/Polynomial/Derivation.lean Renamed Mathlib/Data/Polynomial/Module.lean to Mathlib/Data/Polynomial/Module/Basic.lean Added Mathlib/Data/Polynomial/Module/FiniteDimensional.lean + theorem Module.AEval.isTorsion_of_aeval_eq_zero + theorem Module.AEval.isTorsion_of_finiteDimensional Modified Mathlib/LinearAlgebra/Semisimple.lean +/- theorem Module.End.IsSemisimple_smul + theorem Module.End.isSemisimple_of_squarefree_aeval_eq_zero Modified Mathlib/RingTheory/DedekindDomain/Ideal.lean + theorem Ideal.factors_span_eq + theorem Ideal.prime_generator_of_prime + theorem Ideal.prime_span_singleton_iff + theorem Ideal.squarefree_span_singleton Modified Mathlib/RingTheory/Filtration.lean Modified Mathlib/RingTheory/FiniteType.lean Modified Mathlib/RingTheory/Ideal/Basic.lean Modified Mathlib/RingTheory/Ideal/Operations.lean Modified Mathlib/RingTheory/PrincipalIdealDomain.lean + theorem Submodule.IsPrincipal.associated_generator_span_self Modified Mathlib/RingTheory/SimpleModule.lean - theorem isSemisimpleModule_biSup_of_IsSemisimpleModule_submodule + theorem isSemisimpleModule_biSup_of_isSemisimpleModule_submodule - theorem isSemisimpleModule_of_IsSemisimpleModule_submodule' - theorem isSemisimpleModule_of_IsSemisimpleModule_submodule + theorem isSemisimpleModule_of_isSemisimpleModule_submodule' + theorem isSemisimpleModule_of_isSemisimpleModule_submodule 2024-02-01 14:46:44 618b0bb feat(RepresentationTheory/Action): add `ofMulAction` constructor for `FintypeCat` (#9665) Adds the analogue of `Action.ofMulAction` for `FintypeCat`. ESTIMATED CHANGES Modified Mathlib/RepresentationTheory/Action/Concrete.lean + def Action.FintypeCat.ofMulAction + theorem Action.FintypeCat.ofMulAction_apply 2024-02-01 13:54:33 fc2bdcd feat: leantar: remove corrupted files instead of failing (#10063) The [latest leantar bump](https://github.com/digama0/leangz/compare/v0.1.10...v0.1.11) resolves an issue [reported on Zulip](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/build.20failing/near/418290193), in which corrupted ltar files would result in an error message and failing error code (although it still unpacks everything else). Now, when you pass the `--delete-corrupted` flag to `leantar` (enabled by default in `lake exe cache get`), it will instead delete any input files that failed to parse, meaning that `lake build` can be used to reconstruct the file, and a second invocation of `lake exe cache get` will try again to download the file. The new leantar version also makes sure to remove any partially written files for a given archive in the event of an IO or parse error during unpacking. ESTIMATED CHANGES Modified Cache/IO.lean 2024-02-01 12:43:57 fe642cf refactor(LinearAlgebra/QuadraticForm/Basic): Use bilinear maps for the companion (#10097) This PR replaces the companion `(B : BilinForm R M)` of a quadratic form with a bilinear map `(B : M →ₗ[R] M →ₗ[R] R)`. This is intended as a baby step towards generalising quadratic forms to quadratic maps. In the future we could allow for companion bilinear or even sesquilinear maps into an `R`-module. ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/BilinearMap.lean + def LinearMap.linMulLin Modified Mathlib/LinearAlgebra/QuadraticForm/Basic.lean +/- def BilinForm.toQuadraticForm +/- def BilinForm.toQuadraticFormLinearMap +/- theorem BilinForm.toQuadraticForm_smul + def LinearMap.toQuadraticForm +/- theorem QuadraticForm.choose_exists_companion +/- theorem QuadraticForm.exists_companion + def QuadraticForm.polarLinearMap₂ +/- def QuadraticForm.weightedSumSquares Modified Mathlib/LinearAlgebra/QuadraticForm/Dual.lean - theorem BilinForm.dualProd.toQuadraticForm - def BilinForm.dualProd - theorem BilinForm.isSymm_dualProd - theorem BilinForm.nondenerate_dualProd + theorem LinearMap.dualProd.toQuadraticForm + def LinearMap.dualProd + theorem LinearMap.isSymm_dualProd + theorem LinearMap.separatingLeft_dualProd 2024-02-01 11:35:02 2bbb174 feat(GroupTheory/GroupAction/Basic): define subgroups fixed by group actions (#10043) ESTIMATED CHANGES Modified Mathlib/GroupTheory/GroupAction/Basic.lean + def FixedPoints.addSubgroup + theorem FixedPoints.addSubgroup_toAddSubmonoid + def FixedPoints.addSubmonoid + theorem FixedPoints.mem_addSubgroup + theorem FixedPoints.mem_addSubmonoid + theorem FixedPoints.mem_subgroup + theorem FixedPoints.mem_submonoid + def FixedPoints.subgroup + theorem FixedPoints.subgroup_toSubmonoid + def FixedPoints.submonoid 2024-02-01 10:54:47 a2c91ca refactor(PartialHomeomorph): Remove explicit variable (x : M). (#10083) Instead, supply it as needed. This replaces an explicit argument (x : M) by an implicit `{x : M}` in the following lemmas: - extChartAt_source_mem_nhds' - extChartAt_source_mem_nhdsWithin' - continuousAt_extChartAt' - extChartAt_image_nhd_mem_nhds_of_boundaryless - extChartAt_target_mem_nhdsWithin' - nhdsWithin_extChartAt_target_eq' - continuousAt_extChartAt_symm' - continuousAt_extChartAt_symm'' - map_extChartAt_nhdsWithin_eq_image' - map_extChartAt_nhdsWithin' - map_extChartAt_symm_nhdsWithin' - map_extChartAt_symm_nhdsWithin_range' - extChartAt_preimage_mem_nhdsWithin' - extChartAt_preimage_mem_nhdsWithin - extChartAt_preimage_mem_nhds' - extChartAt_preimage_mem_nhds ESTIMATED CHANGES Modified Mathlib/Geometry/Manifold/ContMDiff/Defs.lean Modified Mathlib/Geometry/Manifold/ContMDiffMFDeriv.lean Modified Mathlib/Geometry/Manifold/IntegralCurve.lean Modified Mathlib/Geometry/Manifold/MFDeriv/Basic.lean Modified Mathlib/Geometry/Manifold/SmoothManifoldWithCorners.lean +/- theorem continuousAt_extChartAt' +/- theorem continuousAt_extChartAt +/- theorem continuousAt_extChartAt_symm'' +/- theorem continuousAt_extChartAt_symm' +/- theorem continuousAt_extChartAt_symm +/- theorem continuousOn_extChartAt +/- theorem continuousOn_extChartAt_symm +/- theorem extChartAt_coe +/- theorem extChartAt_coe_symm +/- theorem extChartAt_preimage_inter_eq +/- theorem extChartAt_preimage_mem_nhds' +/- theorem extChartAt_preimage_mem_nhds +/- theorem extChartAt_preimage_mem_nhdsWithin' +/- theorem extChartAt_preimage_mem_nhdsWithin +/- theorem extChartAt_source +/- theorem extChartAt_source_mem_nhds' +/- theorem extChartAt_source_mem_nhds +/- theorem extChartAt_source_mem_nhdsWithin' +/- theorem extChartAt_source_mem_nhdsWithin +/- theorem extChartAt_target_mem_nhdsWithin' +/- theorem extChartAt_target_mem_nhdsWithin +/- theorem extChartAt_target_subset_range +/- theorem extChartAt_to_inv +/- theorem isOpen_extChartAt_preimage' +/- theorem isOpen_extChartAt_preimage +/- theorem isOpen_extChartAt_source +/- theorem map_extChartAt_nhds +/- theorem map_extChartAt_nhdsWithin' +/- theorem map_extChartAt_nhdsWithin +/- theorem map_extChartAt_nhdsWithin_eq_image' +/- theorem map_extChartAt_nhdsWithin_eq_image +/- theorem map_extChartAt_nhds_of_boundaryless +/- theorem map_extChartAt_symm_nhdsWithin' +/- theorem map_extChartAt_symm_nhdsWithin +/- theorem map_extChartAt_symm_nhdsWithin_range' +/- theorem map_extChartAt_symm_nhdsWithin_range +/- theorem mapsTo_extChartAt +/- theorem mem_extChartAt_source +/- theorem mem_extChartAt_target +/- theorem nhdsWithin_extChartAt_target_eq' +/- theorem nhdsWithin_extChartAt_target_eq 2024-02-01 09:38:24 f8b99c7 feat(Analysis.Calculus.FDeriv.Analytic + Analysis.Complex.TaylorSeries): Taylor series of holomorphic functions (#10087) See [here](https://leanprover.zulipchat.com/#narrow/stream/217875-Is-there-code-for-X.3F/topic/The.20Taylor.20series.20of.20an.20entire.20function.20converges.20to.20it/near/417334632) on Zulip. This adds some general lemmas due to Junyan Xu, culminating in ```lean theorem HasFPowerSeriesOnBall.hasSum_iteratedFDeriv {𝕜 : Type*} [NontriviallyNormedField 𝕜] {E : Type*} [ NormedAddCommGroup E] [NormedSpace 𝕜 E] {F : Type*} [NormedAddCommGroup F] [NormedSpace 𝕜 F] {p : FormalMultilinearSeries 𝕜 E F} {f : E → F} {x : E} {r : ℝ≥0∞} (h : HasFPowerSeriesOnBall f p x r) [CompleteSpace F] [CharZero 𝕜] {y : E} (hy : y ∈ EMetric.ball 0 r) :+1: HasSum (fun n ↦ (n ! : 𝕜)⁻¹• (iteratedFDeriv 𝕜 n f x) fun x ↦ y) (f (x + y)) ``` and uses this to show that the Taylor series of a function that is complex differentiable on an open ball in ℂ converges there to the function; similarly for functions that are holomorphic on all of ℂ: ```lean lemma Complex.hasSum_taylorSeries_on_ball {E : Type*} [NormedAddCommGroup E] [NormedSpace ℂ E] [CompleteSpace E] ⦃f : ℂ → E⦄ ⦃c : ℂ⦄ ⦃r : NNReal⦄ (hf : DifferentiableOn ℂ f (Metric.ball c ↑r)) ⦃z : ℂ⦄ (hz : z ∈ Metric.ball c ↑r) : HasSum (fun n ↦ (n ! : ℂ)⁻¹ • (z - c) ^ n • iteratedDeriv n f c) (f z) lemma Complex.taylorSeries_eq_on_ball {E : Type*} [NormedAddCommGroup E] [NormedSpace ℂ E] [CompleteSpace E] ⦃f : ℂ → E⦄ ⦃c : ℂ⦄ ⦃r : NNReal⦄ (hf : DifferentiableOn ℂ f (Metric.ball c ↑r)) ⦃z : ℂ⦄ (hz : z ∈ Metric.ball c ↑r) : ∑' (n : ℕ), (n ! : ℂ)⁻¹ • (z - c) ^ n • iteratedDeriv n f c = f z lemma Complex.taylorSeries_eq_on_ball' ⦃c : ℂ⦄ ⦃r : NNReal⦄ ⦃z : ℂ⦄ (hz : z ∈ Metric.ball c ↑r) {f : ℂ → ℂ} (hf : DifferentiableOn ℂ f (Metric.ball c ↑r)) : ∑' (n : ℕ), (n ! : ℂ)⁻¹ * iteratedDeriv n f c * (z - c) ^ n = f z ``` and similar lemmas for `EMetric.ball`s and entire functions. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Analysis/Analytic/Basic.lean + def FormalMultilinearSeries.derivSeries Modified Mathlib/Analysis/Calculus/ContDiff/Defs.lean Modified Mathlib/Analysis/Calculus/FDeriv/Analytic.lean + theorem FormalMultilinearSeries.derivSeries_apply_diag + theorem HasFPowerSeriesOnBall.factorial_smul + theorem HasFPowerSeriesOnBall.hasSum_iteratedFDeriv + theorem HasFPowerSeriesOnBall.iteratedFDeriv_zero_apply_diag Added Mathlib/Analysis/Complex/TaylorSeries.lean + theorem Complex.hasSum_taylorSeries_of_entire + theorem Complex.hasSum_taylorSeries_on_ball + theorem Complex.hasSum_taylorSeries_on_emetric_ball + theorem Complex.taylorSeries_eq_of_entire' + theorem Complex.taylorSeries_eq_of_entire + theorem Complex.taylorSeries_eq_on_ball' + theorem Complex.taylorSeries_eq_on_ball + theorem Complex.taylorSeries_eq_on_emetric_ball' + theorem Complex.taylorSeries_eq_on_emetric_ball Modified Mathlib/Data/Fin/Tuple/Basic.lean + theorem Fin.snoc_zero Modified Mathlib/Data/Finset/Basic.lean + theorem Finset.piecewise_same 2024-02-01 08:56:48 43e83e9 feat(Analysis/Fourier): derivative of Fourier transform (#9773) This PR computes the Frechet derivative of the Fourier transform of a function on a real normed space, including special-case handling for functions on inner-product spaces and on the reals themselves. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/Fourier/FourierTransformDeriv.lean + theorem Real.hasDerivAt_fourierChar + theorem VectorFourier.InnerProductSpace.hasFDerivAt_fourier + theorem VectorFourier.hasFDerivAt_fourier + theorem VectorFourier.hasFDerivAt_fourier_transform_integrand_right + def VectorFourier.mul_L + theorem VectorFourier.norm_fderiv_fourier_transform_integrand_right + theorem VectorFourier.norm_fderiv_fourier_transform_integrand_right_le + theorem hasDerivAt_fourierIntegral Modified Mathlib/Analysis/NormedSpace/OperatorNorm.lean + def ContinuousLinearMap.ring_lmap_equiv_self + def ContinuousLinearMap.ring_lmap_equiv_selfₗ Modified Mathlib/Topology/Algebra/Module/StrongTopology.lean + def ContinuousLinearMap.toLinearMap₂ 2024-02-01 07:10:45 09303ad feat(Data/Fin/Basic): Add missing `succAbove` and `predAbove` lemmas and refactor existing ones. (#10042) Adds lemma that shows that `succAbove` and `castSucc` commute and similar for `predAbove`. Perform necessary updates and refactors to get there. ESTIMATED CHANGES Modified Mathlib/Data/Fin/Basic.lean + theorem Fin.castPred_succAbove_castPred + theorem Fin.castSucc_predAbove_castSucc + theorem Fin.castSucc_succAbove_castSucc + theorem Fin.ne_succAbove + theorem Fin.rev_predAbove + theorem Fin.succAbove_eq_last_iff +/- theorem Fin.succAbove_lt_ge + theorem Fin.succAbove_ne_last + theorem Fin.succAbove_ne_last_last +/- theorem Fin.succAbove_right_inj + theorem Fin.succAbove_zero_apply 2024-02-01 05:56:30 2e5fa83 feat: a supremum of semisimple modules is semisimple (#10086) Another small step toward Jordan-Chevalley-Dunford. ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/Basic.lean + theorem Submodule.map_comap_eq_of_le Modified Mathlib/Order/CompleteLattice.lean + theorem biInf_congr' + theorem biInf_le + theorem biSup_congr' + theorem le_biSup Modified Mathlib/Order/CompleteLatticeIntervals.lean + theorem Set.Iic.coe_biInf + theorem Set.Iic.coe_biSup + theorem Set.Iic.coe_iInf + theorem Set.Iic.coe_iSup + theorem Set.Iic.coe_sInf + theorem Set.Iic.coe_sSup + theorem Set.Iic.isCompactElement + theorem complementedLattice_of_complementedLattice_Iic Modified Mathlib/Order/Disjoint.lean Modified Mathlib/RingTheory/SimpleModule.lean + theorem isSemisimpleModule_biSup_of_IsSemisimpleModule_submodule + theorem isSemisimpleModule_of_IsSemisimpleModule_submodule' + theorem isSemisimpleModule_of_IsSemisimpleModule_submodule 2024-02-01 04:47:03 feec58a chore: bump to v4.5.0 (#10150) ESTIMATED CHANGES Modified lake-manifest.json Modified lean-toolchain 2024-02-01 03:20:01 9a542dd fix: typo in `integral_Icc_eq_integral_Ioo` (#10149) Fixes a typo: the RHS of `integral_Icc_eq_integral_Ioo` was an `Ico` not an `Ioo`. ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Integral/SetIntegral.lean +/- theorem MeasureTheory.integral_Icc_eq_integral_Ioo 2024-02-01 01:58:14 edba675 feat: absolute convergence from conditional of power series (#9955) From https://leanprover.zulipchat.com/#narrow/stream/217875-Is-there-code-for-X.3F/topic/Bounds.20on.20alternating.20convergent.20series/near/417504820 ESTIMATED CHANGES Modified Mathlib/Analysis/SpecificLimits/Normed.lean + theorem exists_norm_le_of_cauchySeq + theorem summable_powerSeries_of_norm_lt + theorem summable_powerSeries_of_norm_lt_one 2024-01-31 21:36:29 4e65ea9 chore(Analysis/SpecificLimits/* and others): rename _0 -> _zero, _1 -> _one (#10077) See [here](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/exact.3F.20failure/near/418443193) on Zulip. This PR changes a bunch of names containing `nhds_0` or/and `lt_1` to `nhds_zero` or/and `lt_one`. ESTIMATED CHANGES Modified Mathlib/Analysis/Analytic/Basic.lean Modified Mathlib/Analysis/Analytic/Constructions.lean Modified Mathlib/Analysis/Asymptotics/Asymptotics.lean - theorem Asymptotics.IsBigOWith.right_le_add_of_lt_1 + theorem Asymptotics.IsBigOWith.right_le_add_of_lt_one - theorem Asymptotics.IsBigOWith.right_le_sub_of_lt_1 + theorem Asymptotics.IsBigOWith.right_le_sub_of_lt_one Modified Mathlib/Analysis/Calculus/InverseFunctionTheorem/ApproximatesLinearOn.lean Modified Mathlib/Analysis/Calculus/TangentCone.lean Modified Mathlib/Analysis/InnerProductSpace/Projection.lean Modified Mathlib/Analysis/NormedSpace/Banach.lean Modified Mathlib/Analysis/NormedSpace/Spectrum.lean Modified Mathlib/Analysis/NormedSpace/Units.lean Modified Mathlib/Analysis/PSeries.lean Modified Mathlib/Analysis/SpecialFunctions/Bernstein.lean Modified Mathlib/Analysis/SpecialFunctions/Complex/LogBounds.lean Modified Mathlib/Analysis/SpecialFunctions/Exp.lean - theorem Real.tendsto_exp_neg_atTop_nhds_0 + theorem Real.tendsto_exp_neg_atTop_nhds_zero - theorem Real.tendsto_exp_nhds_0_nhds_1 + theorem Real.tendsto_exp_nhds_zero_nhds_one - theorem Real.tendsto_pow_mul_exp_neg_atTop_nhds_0 + theorem Real.tendsto_pow_mul_exp_neg_atTop_nhds_zero Modified Mathlib/Analysis/SpecialFunctions/Gamma/Basic.lean Modified Mathlib/Analysis/SpecialFunctions/Log/Deriv.lean - theorem Real.hasSum_log_sub_log_of_abs_lt_1 + theorem Real.hasSum_log_sub_log_of_abs_lt_one - theorem Real.hasSum_pow_div_log_of_abs_lt_1 + theorem Real.hasSum_pow_div_log_of_abs_lt_one Modified Mathlib/Analysis/SpecialFunctions/PolynomialExp.lean Modified Mathlib/Analysis/SpecialFunctions/Pow/Asymptotics.lean - theorem tendsto_rpow_mul_exp_neg_mul_atTop_nhds_0 + theorem tendsto_rpow_mul_exp_neg_mul_atTop_nhds_zero Modified Mathlib/Analysis/SpecialFunctions/Stirling.lean Modified Mathlib/Analysis/SpecificLimits/Basic.lean - theorem ENNReal.tendsto_pow_atTop_nhds_0_of_lt_1 + theorem ENNReal.tendsto_pow_atTop_nhds_zero_of_lt_one - theorem NNReal.tendsto_algebraMap_inverse_atTop_nhds_0_nat + theorem NNReal.tendsto_algebraMap_inverse_atTop_nhds_zero_nat - theorem NNReal.tendsto_const_div_atTop_nhds_0_nat + theorem NNReal.tendsto_const_div_atTop_nhds_zero_nat - theorem NNReal.tendsto_inverse_atTop_nhds_0_nat + theorem NNReal.tendsto_inverse_atTop_nhds_zero_nat - theorem NNReal.tendsto_pow_atTop_nhds_0_of_lt_1 + theorem NNReal.tendsto_pow_atTop_nhds_zero_of_lt_one - theorem hasSum_geometric_of_lt_1 + theorem hasSum_geometric_of_lt_one - theorem summable_geometric_of_lt_1 + theorem summable_geometric_of_lt_one - theorem tendsto_algebraMap_inverse_atTop_nhds_0_nat + theorem tendsto_algebraMap_inverse_atTop_nhds_zero_nat - theorem tendsto_const_div_atTop_nhds_0_nat + theorem tendsto_const_div_atTop_nhds_zero_nat - theorem tendsto_inverse_atTop_nhds_0_nat + theorem tendsto_inverse_atTop_nhds_zero_nat - theorem tendsto_one_div_add_atTop_nhds_0_nat + theorem tendsto_one_div_add_atTop_nhds_zero_nat - theorem tendsto_one_div_atTop_nhds_0_nat + theorem tendsto_one_div_atTop_nhds_zero_nat - theorem tendsto_pow_atTop_nhdsWithin_0_of_lt_1 + theorem tendsto_pow_atTop_nhdsWithin_zero_of_lt_one - theorem tendsto_pow_atTop_nhds_0_iff - theorem tendsto_pow_atTop_nhds_0_of_lt_1 + theorem tendsto_pow_atTop_nhds_zero_iff + theorem tendsto_pow_atTop_nhds_zero_of_lt_one - theorem tsum_geometric_of_lt_1 + theorem tsum_geometric_of_lt_one - theorem uniformity_basis_dist_pow_of_lt_1 + theorem uniformity_basis_dist_pow_of_lt_one Modified Mathlib/Analysis/SpecificLimits/IsROrC.lean - theorem IsROrC.tendsto_inverse_atTop_nhds_0_nat + theorem IsROrC.tendsto_inverse_atTop_nhds_zero_nat Modified Mathlib/Analysis/SpecificLimits/Normed.lean - theorem NormedRing.summable_geometric_of_norm_lt_1 + theorem NormedRing.summable_geometric_of_norm_lt_one - theorem NormedRing.tsum_geometric_of_norm_lt_1 + theorem NormedRing.tsum_geometric_of_norm_lt_one - theorem hasSum_coe_mul_geometric_of_norm_lt_1 + theorem hasSum_coe_mul_geometric_of_norm_lt_one - theorem hasSum_geometric_of_abs_lt_1 + theorem hasSum_geometric_of_abs_lt_one - theorem hasSum_geometric_of_norm_lt_1 + theorem hasSum_geometric_of_norm_lt_one - theorem summable_geometric_iff_norm_lt_1 + theorem summable_geometric_iff_norm_lt_one - theorem summable_geometric_of_abs_lt_1 + theorem summable_geometric_of_abs_lt_one - theorem summable_geometric_of_norm_lt_1 + theorem summable_geometric_of_norm_lt_one - theorem summable_norm_pow_mul_geometric_of_norm_lt_1 + theorem summable_norm_pow_mul_geometric_of_norm_lt_one - theorem summable_pow_mul_geometric_of_norm_lt_1 + theorem summable_pow_mul_geometric_of_norm_lt_one - theorem tendsto_pow_atTop_nhds_0_of_abs_lt_1 - theorem tendsto_pow_atTop_nhds_0_of_norm_lt_1 + theorem tendsto_pow_atTop_nhds_zero_of_abs_lt_one + theorem tendsto_pow_atTop_nhds_zero_of_norm_lt_one - theorem tsum_coe_mul_geometric_of_norm_lt_1 + theorem tsum_coe_mul_geometric_of_norm_lt_one - theorem tsum_geometric_of_abs_lt_1 + theorem tsum_geometric_of_abs_lt_one - theorem tsum_geometric_of_norm_lt_1 + theorem tsum_geometric_of_norm_lt_one Modified Mathlib/Data/Real/Cardinality.lean Modified Mathlib/Data/Real/Hyperreal.lean Modified Mathlib/Dynamics/Circle/RotationNumber/TranslationNumber.lean Modified Mathlib/MeasureTheory/Covering/Besicovitch.lean Modified Mathlib/MeasureTheory/Covering/LiminfLimsup.lean Modified Mathlib/MeasureTheory/Decomposition/UnsignedHahn.lean Modified Mathlib/MeasureTheory/Integral/CircleIntegral.lean Modified Mathlib/MeasureTheory/Integral/PeakFunction.lean Modified Mathlib/MeasureTheory/Measure/HasOuterApproxClosed.lean Modified Mathlib/MeasureTheory/Measure/Lebesgue/EqHaar.lean Modified Mathlib/NumberTheory/EulerProduct/Basic.lean Modified Mathlib/NumberTheory/Liouville/LiouvilleNumber.lean Modified Mathlib/NumberTheory/ModularForms/JacobiTheta/OneVariable.lean Modified Mathlib/NumberTheory/Padics/Hensel.lean Modified Mathlib/Probability/Distributions/Geometric.lean Modified Mathlib/Topology/Algebra/Module/Cardinality.lean Modified Mathlib/Topology/MetricSpace/Closeds.lean Modified Mathlib/Topology/MetricSpace/HausdorffDistance.lean Modified Mathlib/Topology/MetricSpace/PiNat.lean Modified Mathlib/Topology/MetricSpace/Polish.lean Modified Mathlib/Topology/TietzeExtension.lean Modified docs/undergrad.yaml 2024-01-31 20:39:19 a113026 feat: add `Submodule.image_span_subset(_span)` and golf (#10017) Since `Submodule.map` requires surjectivity of the RingHom, the new lemmas have to be stated this way. (The RingHom is `frobenius` in my intended application, which is not necessarily surjective.) ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/Span.lean + theorem Submodule.image_span_subset + theorem Submodule.image_span_subset_span 2024-01-31 19:39:33 3006ba7 feat: a type with a non trivial filter has to be nonempty (#10145) Preliminaries for #6844 ESTIMATED CHANGES Modified Mathlib/Order/Filter/Basic.lean + theorem Filter.NeBot.nonempty 2024-01-31 18:47:26 fb969e7 chore(ProperSpace): rename constructors (#10138) Rename `properSpace_of_*` to `ProperSpace.of_*`, restore old names as deprecated aliases. This affects: - `properSpace_of_locallyCompactSpace` -> `ProperSpace.of_locallyCompactSpace`, also golf using new `ProperSpace.of_seq_closedBall`; - `properSpace_of_locallyCompact_module` -> `ProperSpace.of_locallyCompact_module`; - `properSpace_of_compact_closedBall_of_le` -> `ProperSpace.of_isCompact_closedBall_of_le`, also changed `compact` -> `isCompact` in the name. ESTIMATED CHANGES Modified Mathlib/Analysis/Calculus/FDeriv/Measurable.lean Modified Mathlib/Analysis/NormedSpace/FiniteDimension.lean + theorem ProperSpace.of_locallyCompactSpace + theorem ProperSpace.of_locallyCompact_module - theorem properSpace_of_locallyCompactSpace - theorem properSpace_of_locallyCompact_module Modified Mathlib/MeasureTheory/Measure/Haar/Disintegration.lean Modified Mathlib/Topology/MetricSpace/ProperSpace.lean + theorem ProperSpace.of_isCompact_closedBall_of_le + theorem ProperSpace.of_seq_closedBall - theorem properSpace_of_compact_closedBall_of_le 2024-01-31 15:43:54 7e1799b feat(Parity): add lemmas about `x ^ n = ±y ^ n` (#9881) ESTIMATED CHANGES Modified Mathlib/Data/Nat/Parity.lean +/- theorem neg_one_pow_eq_one_iff_even + theorem pow_eq_neg_one_iff + theorem pow_eq_neg_pow_iff + theorem pow_eq_one_iff_cases + theorem pow_eq_one_iff_of_ne_zero + theorem pow_eq_pow_iff_cases + theorem pow_eq_pow_iff_of_ne_zero Modified Mathlib/GroupTheory/SpecificGroups/Alternating.lean 2024-01-31 15:04:55 0c4b731 chore: golfing in categories of algebraic objects (#10114) ESTIMATED CHANGES Modified Mathlib/Algebra/Category/AlgebraCat/Basic.lean Modified Mathlib/Algebra/Category/ModuleCat/Basic.lean +/- def CategoryTheory.Iso.toLinearEquiv Modified Mathlib/Algebra/Category/Ring/Basic.lean +/- def CategoryTheory.Iso.commRingCatIsoToRingEquiv +/- def CategoryTheory.Iso.ringCatIsoToRingEquiv Modified Mathlib/CategoryTheory/Monoidal/Internal/Module.lean 2024-01-31 15:04:54 040db1b refactor(Probability/Kernel/CondCdf): mv lintegral_iInf_directed_of_measurable (#10041) - [x] depends on: #10036 ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Integral/Lebesgue.lean + theorem MeasureTheory.lintegral_iInf_directed_of_measurable Modified Mathlib/Probability/Kernel/CondCdf.lean - theorem lintegral_iInf_directed_of_measurable 2024-01-31 14:30:15 1a65f05 feat: characterize ClusterPt, MapClusterPt, IsClosed using ultrafilters (#10143) Preliminaries for #6844 ESTIMATED CHANGES Modified Mathlib/Topology/Basic.lean + theorem clusterPt_iff_ultrafilter + theorem isClosed_iff_ultrafilter + theorem mapClusterPt_def + theorem mapClusterPt_iff_ultrafilter 2024-01-31 13:54:08 a05375f feat(Trigonometric): add `Complex.tan_eq_zero_iff'` (#9877) This version assumes that the cosine is not zero. ESTIMATED CHANGES Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Arctan.lean - theorem Real.tan_eq_zero_iff - theorem Real.tan_ne_zero_iff Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Complex.lean + theorem Complex.tan_eq_zero_iff' +/- theorem Complex.tan_eq_zero_iff +/- theorem Complex.tan_ne_zero_iff + theorem Real.tan_eq_zero_iff' + theorem Real.tan_eq_zero_iff + theorem Real.tan_ne_zero_iff 2024-01-31 12:47:01 659d6a8 feat: add SmoothPartitionOfUnity.cont{M}DiffAt_sum (#10019) A point-wise version of contMDiff_finsum_smul. From sphere-eversion. ESTIMATED CHANGES Modified Mathlib/Geometry/Manifold/PartitionOfUnity.lean + theorem SmoothPartitionOfUnity.contDiffAt_finsum + theorem SmoothPartitionOfUnity.contMDiffAt_finsum 2024-01-31 11:55:06 51ea69f feat(Analysis/SpecialFunctions/Pow/Real): add bound on log (#10029) This is the third PR in a sequence that adds auxiliary lemmas from the [EulerProducts](https://github.com/MichaelStollBayreuth/EulerProducts) project to Mathlib. It adds a bound for real logarithms in terms of powers: ```lean lemma Real.log_le_rpow_div {x ε : ℝ} (hx : 0 ≤ x) (hε : 0 < ε) : log x ≤ x ^ ε / ε lemma Real.log_natCast_le_rpow_div (n : ℕ) {ε : ℝ} (hε : 0 < ε) : log n ≤ n ^ ε / ε ``` and some lemmas on (norms of) complex powers of natural numbers: ```lean lemma Complex.norm_natCast_cpow_of_re_ne_zero (n : ℕ) {s : ℂ} (hs : s.re ≠ 0) : ‖(n : ℂ) ^ s‖ = (n : ℝ) ^ (s.re) lemma Complex.norm_natCast_cpow_of_pos {n : ℕ} (hn : 0 < n) (s : ℂ) : ‖(n : ℂ) ^ s‖ = (n : ℝ) ^ (s.re) lemma Complex.norm_natCast_cpow_pos_of_pos {n : ℕ} (hn : 0 < n) (s : ℂ) : 0 < ‖(n : ℂ) ^ s‖ lemma Complex.norm_prime_cpow_le_one_half (p : Nat.Primes) {s : ℂ} (hs : 1 < s.re) : ‖(p : ℂ) ^ (-s)‖ ≤ 1 / 2 lemma Complex.one_sub_prime_cpow_ne_zero {p : ℕ} (hp : p.Prime) {s : ℂ} (hs : 1 < s.re) : 1 - (p : ℂ) ^ (-s) ≠ 0 lemma Complex.norm_natCast_cpow_le_norm_natCast_cpow_of_pos {n : ℕ} (hn : 0 < n) {w z : ℂ} (h : w.re ≤ z.re) : ‖(n : ℂ) ^ w‖ ≤ ‖(n : ℂ) ^ z‖ lemma Complex.norm_natCast_cpow_le_norm_natCast_cpow_iff {n : ℕ} (hn : 1 < n) {w z : ℂ} : ‖(n : ℂ) ^ w‖ ≤ ‖(n : ℂ) ^ z‖ ↔ w.re ≤ z. ``` ESTIMATED CHANGES Modified Mathlib/Analysis/SpecialFunctions/Pow/Real.lean + theorem Complex.norm_natCast_cpow_le_norm_natCast_cpow_iff + theorem Complex.norm_natCast_cpow_le_norm_natCast_cpow_of_pos + theorem Complex.norm_natCast_cpow_of_pos + theorem Complex.norm_natCast_cpow_of_re_ne_zero + theorem Complex.norm_natCast_cpow_pos_of_pos + theorem Complex.norm_prime_cpow_le_one_half + theorem Complex.one_sub_prime_cpow_ne_zero + theorem Real.log_le_rpow_div + theorem Real.log_natCast_le_rpow_div 2024-01-31 11:09:57 fdcd4ee feat: add Ideal.mem_normalizedFactors_iff (#9727) From flt-regular ESTIMATED CHANGES Modified Mathlib/RingTheory/DedekindDomain/Ideal.lean 2024-01-31 10:21:15 9d14a27 feat(Convex/Basic): add a `@[simp]` lemma `convex_vadd` (#10134) This is a simple corollary of the existing `Convex.vadd`. ESTIMATED CHANGES Modified Mathlib/Analysis/Convex/Basic.lean + theorem convex_vadd 2024-01-31 10:21:14 04a6ee9 doc(Mathlib/CategoryTheory): fix typo (#10127) Fix minor typo in `Mathlib/CategoryTheory/ComposableArrows.lean`. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/ComposableArrows.lean 2024-01-31 10:21:13 bb85b99 feat: fix typo (eventually_nhds_subtype_if -> eventually_nhds_subtype_iff) (#10124) This was unnoticed during the review of #7568 ESTIMATED CHANGES Modified Mathlib/Topology/ContinuousOn.lean - theorem eventually_nhds_subtype_if + theorem eventually_nhds_subtype_iff 2024-01-31 10:21:12 18b19cc chore(RingTheory/Flat): move `RingTheory.Flat` into its own folder (#10053) Renames `RingTheory.Flat` into `RingTheory.Flat.Basic`. ESTIMATED CHANGES Modified Mathlib.lean Renamed Mathlib/RingTheory/Flat.lean to Mathlib/RingTheory/Flat/Basic.lean 2024-01-31 10:21:11 9d1a7d2 feat: The support of `f ^ n` (#9617) This involves moving lemmas from `Algebra.GroupPower.Ring` to `Algebra.GroupWithZero.Basic` and changing some `0 < n` assumptions to `n ≠ 0`. From LeanAPAP ESTIMATED CHANGES Modified Archive/Wiedijk100Theorems/FriendshipGraphs.lean Modified Archive/Wiedijk100Theorems/Partition.lean Modified Mathlib/Algebra/BigOperators/Fin.lean Modified Mathlib/Algebra/CharP/Basic.lean Modified Mathlib/Algebra/Function/Support.lean + theorem Function.support_div' +/- theorem Function.support_div + theorem Function.support_inv' +/- theorem Function.support_inv + theorem Function.support_mul' +/- theorem Function.support_mul +/- theorem Function.support_mul_subset_left +/- theorem Function.support_mul_subset_right + theorem Function.support_pow' + theorem Function.support_pow Modified Mathlib/Algebra/GCDMonoid/Basic.lean Modified Mathlib/Algebra/GroupPower/Order.lean +/- theorem pow_pos_iff Modified Mathlib/Algebra/GroupPower/Ring.lean - theorem ne_zero_pow - theorem pow_eq_zero - theorem pow_eq_zero_iff' - theorem pow_eq_zero_iff - theorem pow_eq_zero_of_le - theorem pow_ne_zero - theorem pow_ne_zero_iff - theorem sq_eq_zero_iff - theorem zero_pow' - theorem zero_pow - theorem zero_pow_eq - theorem zero_pow_eq_zero Modified Mathlib/Algebra/GroupWithZero/Basic.lean + theorem ne_zero_pow + theorem pow_eq_zero + theorem pow_eq_zero_iff' + theorem pow_eq_zero_iff + theorem pow_eq_zero_of_le + theorem pow_ne_zero + theorem pow_ne_zero_iff + theorem sq_eq_zero_iff + theorem zero_pow + theorem zero_pow_eq + theorem zero_pow_eq_zero Modified Mathlib/Algebra/GroupWithZero/Defs.lean Modified Mathlib/Algebra/GroupWithZero/Power.lean Modified Mathlib/Algebra/Parity.lean +/- theorem Even.pow_pos_iff Modified Mathlib/AlgebraicGeometry/EllipticCurve/Affine.lean Modified Mathlib/AlgebraicGeometry/EllipticCurve/Group.lean Modified Mathlib/AlgebraicGeometry/ProjectiveSpectrum/Scheme.lean Modified Mathlib/Analysis/Analytic/Basic.lean Modified Mathlib/Analysis/Analytic/IsolatedZeros.lean Modified Mathlib/Analysis/Asymptotics/Asymptotics.lean Modified Mathlib/Analysis/Calculus/FDeriv/Basic.lean Modified Mathlib/Analysis/Calculus/FDeriv/Symmetric.lean Modified Mathlib/Analysis/Calculus/Taylor.lean Modified Mathlib/Analysis/Complex/Basic.lean Modified Mathlib/Analysis/Convex/SpecificFunctions/Deriv.lean Modified Mathlib/Analysis/MeanInequalitiesPow.lean Modified Mathlib/Analysis/NormedSpace/Exponential.lean Modified Mathlib/Analysis/SpecialFunctions/Gaussian.lean Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Bounds.lean Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/EulerSineProd.lean Modified Mathlib/Analysis/SpecificLimits/Normed.lean Modified Mathlib/Data/Int/Dvd/Pow.lean Modified Mathlib/Data/MvPolynomial/Basic.lean Modified Mathlib/Data/MvPolynomial/Variables.lean Modified Mathlib/Data/Nat/Choose/Sum.lean Modified Mathlib/Data/Nat/Log.lean Modified Mathlib/Data/Nat/Multiplicity.lean Modified Mathlib/Data/Nat/Squarefree.lean Modified Mathlib/Data/Polynomial/Degree/Definitions.lean Modified Mathlib/Data/Polynomial/Eval.lean Modified Mathlib/Data/Polynomial/FieldDivision.lean Modified Mathlib/Data/Polynomial/Mirror.lean Modified Mathlib/Data/Polynomial/RingDivision.lean Modified Mathlib/Data/Real/Irrational.lean Modified Mathlib/Data/Real/Pi/Wallis.lean Modified Mathlib/FieldTheory/AbelRuffini.lean Modified Mathlib/FieldTheory/ChevalleyWarning.lean Modified Mathlib/FieldTheory/Finite/Basic.lean Modified Mathlib/FieldTheory/Finite/Polynomial.lean Modified Mathlib/FieldTheory/IsSepClosed.lean Modified Mathlib/FieldTheory/PrimitiveElement.lean Modified Mathlib/FieldTheory/Separable.lean Modified Mathlib/LinearAlgebra/Matrix/ZPow.lean Modified Mathlib/MeasureTheory/Constructions/Pi.lean Modified Mathlib/MeasureTheory/Group/GeometryOfNumbers.lean Modified Mathlib/MeasureTheory/Integral/TorusIntegral.lean Modified Mathlib/MeasureTheory/Measure/Haar/NormedSpace.lean Modified Mathlib/MeasureTheory/Measure/Lebesgue/EqHaar.lean Modified Mathlib/MeasureTheory/Measure/Lebesgue/VolumeOfBalls.lean Modified Mathlib/NumberTheory/ArithmeticFunction.lean Modified Mathlib/NumberTheory/FLT/Four.lean Modified Mathlib/NumberTheory/LegendreSymbol/Basic.lean Modified Mathlib/NumberTheory/LegendreSymbol/GaussSum.lean Modified Mathlib/NumberTheory/LegendreSymbol/JacobiSymbol.lean Modified Mathlib/NumberTheory/LegendreSymbol/MulCharacter.lean +/- theorem MulChar.pow_apply' Modified Mathlib/NumberTheory/LegendreSymbol/QuadraticChar/Basic.lean Modified Mathlib/NumberTheory/LegendreSymbol/QuadraticChar/GaussSum.lean Modified Mathlib/NumberTheory/ModularForms/JacobiTheta/OneVariable.lean Modified Mathlib/NumberTheory/NumberField/CanonicalEmbedding.lean Modified Mathlib/NumberTheory/Padics/RingHoms.lean Modified Mathlib/NumberTheory/Pell.lean Modified Mathlib/NumberTheory/PellMatiyasevic.lean Modified Mathlib/NumberTheory/SmoothNumbers.lean Modified Mathlib/NumberTheory/SumTwoSquares.lean Modified Mathlib/NumberTheory/ZetaValues.lean Modified Mathlib/Order/Filter/AtTopBot.lean Modified Mathlib/Probability/Distributions/Gaussian.lean Modified Mathlib/Probability/Moments.lean Modified Mathlib/Probability/StrongLaw.lean Modified Mathlib/Probability/Variance.lean Modified Mathlib/RingTheory/EisensteinCriterion.lean Modified Mathlib/RingTheory/Perfection.lean Modified Mathlib/RingTheory/Polynomial/Bernstein.lean Modified Mathlib/RingTheory/Polynomial/Cyclotomic/Basic.lean Modified Mathlib/RingTheory/Polynomial/Cyclotomic/Eval.lean Modified Mathlib/RingTheory/Polynomial/Cyclotomic/Expand.lean Modified Mathlib/RingTheory/Polynomial/Selmer.lean Modified Mathlib/RingTheory/QuotientNilpotent.lean Modified Mathlib/RingTheory/RootsOfUnity/Basic.lean Modified Mathlib/RingTheory/UniqueFactorizationDomain.lean Modified Mathlib/RingTheory/WittVector/Defs.lean Modified Mathlib/RingTheory/WittVector/DiscreteValuationRing.lean Modified Mathlib/RingTheory/WittVector/FrobeniusFractionField.lean Modified Mathlib/RingTheory/WittVector/Identities.lean Modified Mathlib/RingTheory/WittVector/InitTail.lean Modified Mathlib/RingTheory/WittVector/IsPoly.lean Modified Mathlib/RingTheory/WittVector/MulCoeff.lean Modified Mathlib/RingTheory/WittVector/Teichmuller.lean Modified Mathlib/RingTheory/WittVector/Verschiebung.lean Modified Mathlib/RingTheory/WittVector/WittPolynomial.lean 2024-01-31 09:33:28 8eae1e3 chore(Analysis/Seminorm): make statement of `neg_mem_ball_zero` iff (#10119) ESTIMATED CHANGES Modified Mathlib/Analysis/Seminorm.lean +/- theorem Seminorm.neg_mem_ball_zero 2024-01-31 09:33:27 41cd3a7 doc(docs/100.yaml): add Mathlib ref for sum over 1/p (#10111) I noticed that the statement that the sum over primes of `1/p` diverges is one of Wiedijk's "100 Theorems". There is a version in the `Archive/` folder, but it was also recently added to Mathlib. This PR attempts to update the `100.yaml` file accordingly. ESTIMATED CHANGES Modified docs/100.yaml 2024-01-31 09:02:44 58df996 chore: make (x : M) implicit in `extChartAt_image_nhd_mem_nhds_of_boundaryless` (#10081) Fixes an oversight in #10001: x is already included in the hypothesis `hx`, so should be implicit. A follow-up PR will address this issue more systematically. ESTIMATED CHANGES Modified Mathlib/Geometry/Manifold/SmoothManifoldWithCorners.lean 2024-01-31 07:01:14 ec49709 feat(CategoryTheory/Monoidal): partially setting simp lemmas (#10061) Extracted from #6307. The main reason why #6307 is so large is that many tensoring of identity morphisms that appear in mathlib should be replaced with whiskerings. This PR will leave this issue and deal with other parts. That is, we do not set `id_tensorHom` and `tensorHom_id` as simple lemmas at this moment, We can set them as simp lemmas locally to enable simple normal forms. ESTIMATED CHANGES Modified Mathlib/Algebra/Category/AlgebraCat/Monoidal.lean Modified Mathlib/CategoryTheory/Bicategory/SingleObj.lean Modified Mathlib/CategoryTheory/Closed/FunctorCategory.lean Modified Mathlib/CategoryTheory/Monoidal/Braided.lean Modified Mathlib/CategoryTheory/Monoidal/Category.lean + theorem CategoryTheory.MonoidalCategory.associator_inv_naturality_left + theorem CategoryTheory.MonoidalCategory.associator_inv_naturality_middle + theorem CategoryTheory.MonoidalCategory.associator_inv_naturality_right + theorem CategoryTheory.MonoidalCategory.associator_naturality_left + theorem CategoryTheory.MonoidalCategory.associator_naturality_middle + theorem CategoryTheory.MonoidalCategory.associator_naturality_right + theorem CategoryTheory.MonoidalCategory.comp_whiskerRight + theorem CategoryTheory.MonoidalCategory.dite_whiskerRight + theorem CategoryTheory.MonoidalCategory.eqToHom_whiskerRight + theorem CategoryTheory.MonoidalCategory.id_whiskerLeft + theorem CategoryTheory.MonoidalCategory.id_whiskerLeft_symm + theorem CategoryTheory.MonoidalCategory.leftUnitor_inv_naturality' + theorem CategoryTheory.MonoidalCategory.leftUnitor_inv_whiskerRight + theorem CategoryTheory.MonoidalCategory.leftUnitor_naturality' + theorem CategoryTheory.MonoidalCategory.leftUnitor_tensor' + theorem CategoryTheory.MonoidalCategory.leftUnitor_tensor_inv' + theorem CategoryTheory.MonoidalCategory.leftUnitor_whiskerRight + theorem CategoryTheory.MonoidalCategory.pentagon' + theorem CategoryTheory.MonoidalCategory.pentagon_hom_hom_inv_hom_hom + theorem CategoryTheory.MonoidalCategory.pentagon_hom_hom_inv_inv_hom + theorem CategoryTheory.MonoidalCategory.pentagon_hom_inv_inv_inv_hom + theorem CategoryTheory.MonoidalCategory.pentagon_hom_inv_inv_inv_inv + theorem CategoryTheory.MonoidalCategory.pentagon_inv' + theorem CategoryTheory.MonoidalCategory.pentagon_inv_hom_hom_hom_hom + theorem CategoryTheory.MonoidalCategory.pentagon_inv_hom_hom_hom_inv + theorem CategoryTheory.MonoidalCategory.pentagon_inv_inv_hom_hom_inv + theorem CategoryTheory.MonoidalCategory.pentagon_inv_inv_hom_inv_inv + theorem CategoryTheory.MonoidalCategory.rightUnitor_inv_naturality' + theorem CategoryTheory.MonoidalCategory.rightUnitor_naturality' + theorem CategoryTheory.MonoidalCategory.rightUnitor_tensor' + theorem CategoryTheory.MonoidalCategory.rightUnitor_tensor_inv' + theorem CategoryTheory.MonoidalCategory.tensor_whiskerLeft + theorem CategoryTheory.MonoidalCategory.tensor_whiskerLeft_symm + theorem CategoryTheory.MonoidalCategory.triangle' + theorem CategoryTheory.MonoidalCategory.triangle_assoc_comp_left_inv' + theorem CategoryTheory.MonoidalCategory.triangle_assoc_comp_right' + theorem CategoryTheory.MonoidalCategory.triangle_assoc_comp_right_inv' + theorem CategoryTheory.MonoidalCategory.whiskerLeft_comp + theorem CategoryTheory.MonoidalCategory.whiskerLeft_dite + theorem CategoryTheory.MonoidalCategory.whiskerLeft_eqToHom + theorem CategoryTheory.MonoidalCategory.whiskerLeft_iff + theorem CategoryTheory.MonoidalCategory.whiskerLeft_rightUnitor + theorem CategoryTheory.MonoidalCategory.whiskerLeft_rightUnitor_inv + theorem CategoryTheory.MonoidalCategory.whiskerRight_id + theorem CategoryTheory.MonoidalCategory.whiskerRight_id_symm + theorem CategoryTheory.MonoidalCategory.whiskerRight_iff + theorem CategoryTheory.MonoidalCategory.whiskerRight_tensor + theorem CategoryTheory.MonoidalCategory.whiskerRight_tensor_symm + theorem CategoryTheory.MonoidalCategory.whisker_assoc + theorem CategoryTheory.MonoidalCategory.whisker_assoc_symm Modified Mathlib/CategoryTheory/Monoidal/Center.lean Modified Mathlib/CategoryTheory/Monoidal/CoherenceLemmas.lean + theorem CategoryTheory.MonoidalCategory.leftUnitor_tensor'' - theorem CategoryTheory.MonoidalCategory.leftUnitor_tensor' Modified Mathlib/CategoryTheory/Monoidal/End.lean Modified Mathlib/CategoryTheory/Monoidal/Free/Coherence.lean Modified Mathlib/CategoryTheory/Monoidal/Functor.lean +/- theorem CategoryTheory.LaxMonoidalFunctor.μ_natural Modified Mathlib/CategoryTheory/Monoidal/FunctorCategory.lean Modified Mathlib/CategoryTheory/Monoidal/Limits.lean Modified Mathlib/CategoryTheory/Monoidal/Opposite.lean Modified Mathlib/CategoryTheory/Monoidal/Preadditive.lean Modified Mathlib/CategoryTheory/Monoidal/Rigid/Basic.lean Modified Mathlib/CategoryTheory/Monoidal/Transport.lean Modified Mathlib/CategoryTheory/Monoidal/Types/Coyoneda.lean Modified Mathlib/LinearAlgebra/QuadraticForm/QuadraticModuleCat/Monoidal.lean 2024-01-31 03:53:33 0a0bb6e feat: formalize IMO 1960 Q2 (#9885) ESTIMATED CHANGES Modified Archive.lean Added Archive/Imo/Imo1960Q2.lean + structure Imo1960Q2.IsGood + theorem Imo1960Q2.isGood_iff 2024-01-31 03:30:31 45b2ed1 feat: formalize IMO 1986 Q5 (#9891) ESTIMATED CHANGES Modified Archive.lean Added Archive/Imo/Imo1986Q5.lean + theorem Imo1986Q5.IsGood.map_add + theorem Imo1986Q5.IsGood.map_eq + theorem Imo1986Q5.IsGood.map_eq_zero + theorem Imo1986Q5.IsGood.map_ne_zero_iff + theorem Imo1986Q5.IsGood.map_of_lt_two + structure Imo1986Q5.IsGood + theorem Imo1986Q5.isGood_iff 2024-01-30 22:28:51 6eb43dc refactor: Delete `Algebra.GroupPower.Lemmas` (#9411) `Algebra.GroupPower.Lemmas` used to be a big bag of lemmas that made it there on the criterion that they needed "more imports". This was completely untrue, as all lemmas could be moved to earlier files in PRs: - #9440 - #9442 - #9443 - #9455 - #9456 - #9457 - #9459 - #9461 - #9463 - #9466 - #9501 - #9502 - #9503 - #9505 - #9551 - #9553 - #9720 - #9739 - #9740 - #9805 - #9806 - and this one There are several reasons for this: * Necessary lemmas have been moved to earlier files since lemmas were dumped in `Algebra.GroupPower.Lemmas` * In the Lean 3 → Lean 4 transition, Std acquired basic `Int` and `Nat` lemmas which let us shortcircuit the part of the algebraic order hierarchy on which the corresponding general lemmas rest * Some proofs were overpowered * Some earlier files were tangled and I have untangled them This PR finishes the job by moving the last few lemmas out of `Algebra.GroupPower.Lemmas`, which is therefore deleted. ESTIMATED CHANGES Modified Archive/Imo/Imo2008Q3.lean Modified Mathlib.lean Modified Mathlib/Algebra/Category/GroupCat/Basic.lean Modified Mathlib/Algebra/EuclideanDomain/Instances.lean Modified Mathlib/Algebra/GroupPower/CovariantClass.lean Deleted Mathlib/Algebra/GroupPower/Lemmas.lean - theorem pow_le_of_le_one - theorem pow_le_pow_of_le_one - theorem pow_le_pow_of_le_one_aux - theorem sign_cases_of_C_mul_pow_nonneg - theorem sq_le Modified Mathlib/Algebra/ModEq.lean Modified Mathlib/Algebra/Module/Basic.lean Modified Mathlib/Algebra/Order/Group/Lattice.lean Modified Mathlib/Algebra/Order/Ring/Defs.lean + theorem pow_le_of_le_one + theorem pow_le_pow_of_le_one + theorem sign_cases_of_C_mul_pow_nonneg + theorem sq_le Modified Mathlib/Analysis/SpecificLimits/Basic.lean Modified Mathlib/Data/Int/Associated.lean Modified Mathlib/Data/Int/Bitwise.lean Modified Mathlib/Data/Nat/Pow.lean Modified Mathlib/Data/Real/CauSeq.lean Modified Mathlib/Data/Real/NNReal.lean Modified Mathlib/Data/ZMod/Quotient.lean Modified Mathlib/Dynamics/Ergodic/AddCircle.lean Modified Mathlib/GroupTheory/GroupAction/Ring.lean Modified Mathlib/GroupTheory/Subgroup/ZPowers.lean Modified Mathlib/NumberTheory/FLT/Four.lean Modified Mathlib/Tactic/Common.lean Modified Mathlib/Topology/ContinuousFunction/Algebra.lean Modified Mathlib/Topology/Instances/Real.lean 2024-01-30 19:26:56 b977375 chore(RingTheory/Polynomial): golf NoZeroDivisors MvPolynomial (#10130) ESTIMATED CHANGES Modified Mathlib/RingTheory/Polynomial/Basic.lean 2024-01-30 19:26:55 1c09c19 feat: List.append_cons_inj_of_not_mem (#6856) ESTIMATED CHANGES Modified Mathlib/Data/List/Basic.lean + theorem List.append_cons_inj_of_not_mem 2024-01-30 18:04:17 b089a75 feat: `positivity` extension for `algebraMap` (#9961) ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Module/Algebra.lean + def Mathlib.Meta.Positivity.evalAlgebraMap 2024-01-30 18:04:16 08f7e99 doc: `@[inherit_doc]` on notations (#9942) Make all the notations that unambiguously should inherit the docstring of their definition actually inherit it. Also write a few docstrings by hand. I only wrote the ones I was competent to write and which I was sure of. Some docstrings come from mathlib3 as they were lost during the early port. This PR is only intended as a first pass There are many more docstrings to add. ESTIMATED CHANGES Modified Counterexamples/SorgenfreyLine.lean Modified Mathlib/Algebra/Group/Defs.lean Modified Mathlib/Algebra/ModEq.lean Modified Mathlib/Algebra/Order/Group/Defs.lean Modified Mathlib/Algebra/Ring/Defs.lean Modified Mathlib/AlgebraicTopology/DoldKan/Notations.lean Modified Mathlib/AlgebraicTopology/FundamentalGroupoid/Basic.lean Modified Mathlib/AlgebraicTopology/SimplicialSet.lean Modified Mathlib/Analysis/Asymptotics/AsymptoticEquivalent.lean Modified Mathlib/Analysis/Asymptotics/Theta.lean Modified Mathlib/Analysis/BoxIntegral/Partition/Additive.lean Modified Mathlib/Analysis/Complex/UnitDisc/Basic.lean Modified Mathlib/Analysis/Complex/UpperHalfPlane/Basic.lean Modified Mathlib/Analysis/Convex/Segment.lean Modified Mathlib/Analysis/Fourier/FourierTransform.lean Modified Mathlib/Analysis/NormedSpace/AffineIsometry.lean Modified Mathlib/Analysis/NormedSpace/LinearIsometry.lean Modified Mathlib/Analysis/NormedSpace/lpSpace.lean Modified Mathlib/Analysis/Quaternion.lean Modified Mathlib/CategoryTheory/Category/Bipointed.lean Modified Mathlib/CategoryTheory/Category/TwoP.lean Modified Mathlib/CategoryTheory/Monoidal/Braided.lean Modified Mathlib/CategoryTheory/Monoidal/Opposite.lean Modified Mathlib/CategoryTheory/Monoidal/Rigid/Basic.lean Modified Mathlib/Combinatorics/SimpleGraph/Basic.lean Modified Mathlib/Combinatorics/SimpleGraph/Maps.lean Modified Mathlib/Computability/EpsilonNFA.lean Modified Mathlib/Data/Complex/Basic.lean Modified Mathlib/Data/Nat/Factorial/DoubleFactorial.lean Modified Mathlib/Data/Polynomial/Basic.lean Modified Mathlib/Data/Vector3.lean Modified Mathlib/Dynamics/OmegaLimit.lean Modified Mathlib/Geometry/Euclidean/Angle/Oriented/Affine.lean Modified Mathlib/Geometry/Euclidean/Angle/Unoriented/Affine.lean Modified Mathlib/Geometry/Manifold/ContMDiffMap.lean Modified Mathlib/Geometry/Manifold/DerivationBundle.lean Modified Mathlib/Geometry/Manifold/Diffeomorph.lean Modified Mathlib/Geometry/Manifold/SmoothManifoldWithCorners.lean Modified Mathlib/Geometry/Manifold/VectorBundle/SmoothSection.lean Modified Mathlib/Init/Core.lean Modified Mathlib/Init/Data/Nat/Notation.lean Modified Mathlib/Init/Set.lean Modified Mathlib/LinearAlgebra/AffineSpace/AffineEquiv.lean Modified Mathlib/LinearAlgebra/AffineSpace/Basic.lean Modified Mathlib/LinearAlgebra/LinearPMap.lean Modified Mathlib/LinearAlgebra/Matrix/GeneralLinearGroup.lean Modified Mathlib/LinearAlgebra/Matrix/SpecialLinearGroup.lean Modified Mathlib/LinearAlgebra/TensorPower.lean Modified Mathlib/LinearAlgebra/TensorProduct.lean Modified Mathlib/Logic/Function/Basic.lean Modified Mathlib/MeasureTheory/Integral/Average.lean Modified Mathlib/MeasureTheory/Integral/TorusIntegral.lean Modified Mathlib/NumberTheory/NumberField/Basic.lean Modified Mathlib/NumberTheory/PrimeCounting.lean Modified Mathlib/NumberTheory/VonMangoldt.lean Modified Mathlib/Order/Category/BddDistLat.lean Modified Mathlib/Order/Category/BddLat.lean Modified Mathlib/Order/Category/Semilat.lean Modified Mathlib/Probability/ConditionalProbability.lean Modified Mathlib/RingTheory/WittVector/StructurePolynomial.lean Modified Mathlib/RingTheory/WittVector/WittPolynomial.lean Modified Mathlib/Topology/Homotopy/HomotopyGroup.lean Modified Mathlib/Topology/UniformSpace/UniformConvergenceTopology.lean Modified scripts/nolints.json 2024-01-30 16:52:53 d5057d5 chore: remove classical, it has been moved to Std (#10121) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Data/Pi/Algebra.lean Modified Mathlib/Mathport/Syntax.lean Modified Mathlib/Order/Basic.lean Modified Mathlib/Tactic.lean Deleted Mathlib/Tactic/Classical.lean Modified Mathlib/Tactic/Common.lean Modified Mathlib/Tactic/Tauto.lean Deleted test/classical.lean - def bar'' - def bar' - def bar 2024-01-30 16:07:47 0b65bd5 feat: a compact Gdelta set is a level set of a compactly supported function (#10101) ESTIMATED CHANGES Modified Mathlib/Topology/GDelta.lean Modified Mathlib/Topology/UrysohnsLemma.lean + theorem exists_continuous_nonneg_pos + theorem exists_continuous_one_zero_of_isCompact_of_isGδ 2024-01-30 16:07:46 b660fcb feat(Topology/CompactOpen): add `Tendsto.compCM` etc (#9882) * Use explicit `(g : C(Y, Z))` argument instead of `variable`. This way only implicit arguments are not visible right there in the source. * Add dot-notation lemmas about composition of bundled continuous functions. ESTIMATED CHANGES Modified Mathlib/Topology/CompactOpen.lean + theorem Continuous.compCM +/- theorem ContinuousMap.continuous.comp' +/- theorem ContinuousMap.continuous_comp' +/- theorem ContinuousMap.continuous_comp +/- theorem ContinuousMap.embedding_comp +/- theorem ContinuousMap.inducing_comp + theorem ContinuousOn.compCM + theorem Filter.Tendsto.compCM 2024-01-30 14:58:48 ae98c3f feat: images of intervals under `(↑) : ℕ → ℤ` (#9927) Also generalize `IsUpperSet.Ioi_subset` and `IsLowerSet.Iio_subset` from a `PartialOrder` to a `Preorder`. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Data/Nat/Cast/SetInterval.lean + theorem Nat.image_cast_int_Icc + theorem Nat.image_cast_int_Ici + theorem Nat.image_cast_int_Ico + theorem Nat.image_cast_int_Iic + theorem Nat.image_cast_int_Iio + theorem Nat.image_cast_int_Ioc + theorem Nat.image_cast_int_Ioi + theorem Nat.image_cast_int_Ioo + theorem Nat.range_cast_int Modified Mathlib/Order/UpperLower/Basic.lean + theorem IsLowerSet.Iio_subset + theorem IsUpperSet.Ioi_subset + theorem OrderEmbedding.image_Ici + theorem OrderEmbedding.image_Iic + theorem OrderEmbedding.image_Iio + theorem OrderEmbedding.image_Ioi 2024-01-30 14:33:17 7f0ee21 feat(Gauge): add `comap_gauge_nhds_zero` etc (#10090) Add `comap_gauge_nhds_zero`, `comap_gauge_nhds_zero_le`, `tendsto_gauge_nhds_zero`, `tendsto_gauge_nhds_zero'`, and `continuousAt_gauge_zero`. ESTIMATED CHANGES Modified Mathlib/Analysis/Convex/Gauge.lean + theorem comap_gauge_nhds_zero + theorem comap_gauge_nhds_zero_le + theorem continuousAt_gauge_zero +/- theorem gauge_eq_zero +/- theorem gauge_pos + theorem tendsto_gauge_nhds_zero' + theorem tendsto_gauge_nhds_zero 2024-01-30 13:13:49 5876928 feat: formalize IMO 1959 Q2 (#9884) ESTIMATED CHANGES Modified Archive.lean Added Archive/Imo/Imo1959Q2.lean + theorem Imo1959Q2.IsGood.eq_sqrt_two_iff_le_one + theorem Imo1959Q2.IsGood.one_half_le + theorem Imo1959Q2.IsGood.sqrt_two_le + theorem Imo1959Q2.IsGood.sqrt_two_lt_iff_one_lt + theorem Imo1959Q2.IsGood.sqrt_two_lt_of_one_lt + def Imo1959Q2.IsGood + theorem Imo1959Q2.isGood_iff + theorem Imo1959Q2.isGood_iff_eq_sqrt + theorem Imo1959Q2.isGood_iff_eq_sqrt_two + theorem Imo1959Q2.isGood_iff_of_sqrt_two_lt + theorem Imo1959Q2.isGood_sqrt2_iff + theorem Imo1959Q2.isGood_two_iff + theorem Imo1959Q2.not_isGood_one + theorem Imo1959Q2.sqrt_two_mul_sub_one_le_one 2024-01-30 12:44:05 4b4c1a3 chore(BallotProblem): golf (#9929) Motivated by @Ruben-VandeVelde's leanprover-community/mathlib#15206 ESTIMATED CHANGES Modified Archive/Wiedijk100Theorems/BallotProblem.lean + theorem Ballot.staysPositive_cons + theorem Ballot.staysPositive_suffix + theorem Ballot.sum_nonneg_of_staysPositive 2024-01-30 10:47:16 6948057 feat(Data/ZMod/{Basic|Units}): some lemmas on units in ZMod (#10028) This is the second PR in a sequence that adds auxiliary lemmas from the [EulerProducts](https://github.com/MichaelStollBayreuth/EulerProducts) project to Mathlib. It adds four lemmas on units in `ZMod n`: ```lean lemma ZMod.eq_one_of_isUnit_natCast {n : ℕ} (h : IsUnit (n : ZMod 0)) : n = 1 lemma ZMod.isUnit_iff_coprime (m n : ℕ) : IsUnit (m : ZMod n) ↔ m.Coprime n lemma ZMod.isUnit_prime_of_not_dvd {n p : ℕ} (hp : p.Prime) (h : ¬ p ∣ n) : IsUnit (p : ZMod n) lemma ZMod.not_isUnit_of_mem_primeFactors {n p : ℕ} (h : p ∈ n.primeFactors) : ¬ IsUnit (p : ZMod n) ``` ESTIMATED CHANGES Modified Mathlib/Data/ZMod/Basic.lean + theorem ZMod.eq_one_of_isUnit_natCast + theorem ZMod.isUnit_iff_coprime + theorem ZMod.isUnit_prime_iff_not_dvd + theorem ZMod.isUnit_prime_of_not_dvd + theorem ZMod.val_unit' Modified Mathlib/Data/ZMod/Units.lean + theorem ZMod.not_isUnit_of_mem_primeFactors 2024-01-30 09:46:43 76b26e8 feat(Data/Nat/Prime): some lemmas on primes and powers (#10025) This is the first PR in a sequence that adds auxiliary lemmas from the [EulerProducts](https://github.com/MichaelStollBayreuth/EulerProducts) project to Mathlib. It adds two lemmas on prime numbers and powers: ```lean lemma Nat.Prime.one_le {p : ℕ} (hp : p.Prime) : 1 ≤ p lemma Nat.Prime.pow_injective {p q m n : ℕ} (hp : p.Prime) (hq : q.Prime) (h : p ^ (m + 1) = q ^ (n + 1)) : p = q ∧ m = n ``` (The first one is for discoverability by `exact?` in cases one needs `1 ≤ p`.) ESTIMATED CHANGES Modified Mathlib/Data/Nat/Prime.lean + theorem Nat.Prime.one_le + theorem Nat.Prime.pow_inj 2024-01-30 07:56:03 132d4e4 refactor: remove simp attribute from yonedaEquiv_apply (#10109) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Sites/IsSheafFor.lean Modified Mathlib/CategoryTheory/Yoneda.lean 2024-01-30 07:56:02 38cd727 refactor: create folder CategoryTheory/Comma (#10108) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Category/GroupCat/Limits.lean Modified Mathlib/AlgebraicTopology/CechNerve.lean Modified Mathlib/AlgebraicTopology/SimplicialObject.lean Modified Mathlib/CategoryTheory/Abelian/Pseudoelements.lean Modified Mathlib/CategoryTheory/Adjunction/Comma.lean Modified Mathlib/CategoryTheory/Adjunction/Over.lean Modified Mathlib/CategoryTheory/Bicategory/Extension.lean Modified Mathlib/CategoryTheory/Category/Factorisation.lean Modified Mathlib/CategoryTheory/CommSq.lean Renamed Mathlib/CategoryTheory/Arrow.lean to Mathlib/CategoryTheory/Comma/Arrow.lean Renamed Mathlib/CategoryTheory/Comma.lean to Mathlib/CategoryTheory/Comma/Basic.lean Renamed Mathlib/CategoryTheory/Over.lean to Mathlib/CategoryTheory/Comma/Over.lean Renamed Mathlib/CategoryTheory/StructuredArrow.lean to Mathlib/CategoryTheory/Comma/StructuredArrow.lean Modified Mathlib/CategoryTheory/Elements.lean Modified Mathlib/CategoryTheory/Limits/Comma.lean Modified Mathlib/CategoryTheory/Limits/ConeCategory.lean Modified Mathlib/CategoryTheory/Limits/Constructions/Over/Connected.lean Modified Mathlib/CategoryTheory/Limits/Constructions/Over/Products.lean Modified Mathlib/CategoryTheory/Limits/Final.lean Modified Mathlib/CategoryTheory/Limits/KanExtension.lean Modified Mathlib/CategoryTheory/Limits/Over.lean Modified Mathlib/CategoryTheory/Limits/Shapes/BinaryProducts.lean Modified Mathlib/CategoryTheory/Monad/Products.lean Modified Mathlib/CategoryTheory/MorphismProperty.lean Modified Mathlib/CategoryTheory/Sites/Sieves.lean 2024-01-30 07:22:15 0fa946f feat(CategoryTheory/Limits/KanExtension): generalize assumptions (#10003) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Limits/KanExtension.lean +/- def CategoryTheory.Lan.adjunction +/- theorem CategoryTheory.Lan.coreflective +/- def CategoryTheory.lan 2024-01-30 06:20:16 42e69f0 feat(Group/Measure): reformulate `exists_nhds_measure_smul_diff_lt` (#10093) * Formulate the lemma as `∀ᶠ g in 𝓝 1, _` instead of `∃ V ∈ 𝓝 1, ∀ g ∈ V, _`. * Add a version in terms of `Filter.Tendsto`. * Golf Steinhaus Theorem. ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Group/Measure.lean + theorem MeasureTheory.eventually_nhds_one_measure_smul_diff_lt - theorem MeasureTheory.exists_nhds_measure_smul_diff_lt + theorem MeasureTheory.tendsto_measure_smul_diff_isCompact_isClosed Modified Mathlib/MeasureTheory/Measure/Haar/Basic.lean 2024-01-30 04:00:55 4fcf5bd chore: bump Std to leanprover/std4#566 (#10117) ESTIMATED CHANGES Modified lake-manifest.json 2024-01-30 02:26:17 99afa84 feat(Logic/Embedding): add a lemma (#10096) * Make `Function.Embedding.setValue_eq` a `simp` lemma. * Add `Function.Embedding.setValue_eq_iff`. ESTIMATED CHANGES Modified Mathlib/Logic/Embedding/Basic.lean + theorem Function.Embedding.setValue_eq_iff 2024-01-30 02:26:16 41e0da3 fix: use getTransparency in librarySearch SolveByElim.Config (#10052) ESTIMATED CHANGES Modified Mathlib/Tactic/LibrarySearch.lean Modified test/LibrarySearch/basic.lean 2024-01-30 02:26:15 9cc09f6 chore(WithTop): less abuse of defeq to `Option _` (#9986) Also reuse proofs here and there. ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Monoid/WithTop.lean +/- theorem WithTop.add_coe_eq_top_iff +/- theorem WithTop.coe_add_eq_top_iff Modified Mathlib/Order/WithBot.lean +/- theorem WithBot.lt_coe_iff 2024-01-30 02:26:14 15e555e feat: characterize "eventually" in a subtype (#7568) ESTIMATED CHANGES Modified Mathlib/Topology/ContinuousOn.lean + theorem eventually_nhds_subtype_if + theorem frequently_nhds_subtype_iff 2024-01-30 01:07:06 d3a6c9f chore: bump Std to leanprover/std4#242 (#10104) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Data/Sign.lean Modified Mathlib/Mathport/Notation.lean Modified Mathlib/Mathport/Syntax.lean Modified Mathlib/Tactic.lean Modified Mathlib/Tactic/Common.lean Modified Mathlib/Tactic/Observe.lean Modified Mathlib/Tactic/Propose.lean Modified Mathlib/Tactic/RewriteSearch.lean Modified Mathlib/Tactic/Rewrites.lean Deleted Mathlib/Tactic/TryThis.lean - def addHaveSuggestion - def addRewriteSuggestion Deleted Mathlib/Util/Syntax.lean - def Lean.Syntax.TSepArray.ofElems - def Lean.TSyntax.replaceM Modified lake-manifest.json Modified test/LibrarySearch/basic.lean Modified test/RewriteSearch/Polynomial.lean Modified test/propose.lean Modified test/solve_by_elim/basic.lean 2024-01-30 00:03:21 132e511 feat: Integral curves are either injective or periodic (#9343) Integral curves are either injective, constant, or periodic and non-constant. When we have notions of submanifolds, this'll be useful for showing that the image of an integral curve is a submanifold. - [x] depends on: #8886 ESTIMATED CHANGES Modified Mathlib/Algebra/Periodic.lean + theorem Function.Periodic.not_injective Modified Mathlib/Geometry/Manifold/IntegralCurve.lean + theorem IsIntegralCurve.periodic_of_eq + theorem IsIntegralCurve.periodic_xor_injective 2024-01-29 21:32:09 b4d01dc refactor(MeasureTheory/Function/L1Space): rm two porting notes (#10056) ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Function/L1Space.lean 2024-01-29 18:36:04 7458f0e feat(Topology/Separation): define R₁ spaces, review API (#10085) ### Main API changes - Define `R1Space`, a.k.a. preregular space. - Drop `T2OrLocallyCompactRegularSpace`. - Generalize all existing theorems about `T2OrLocallyCompactRegularSpace` to `R1Space`. - Drop the `[T2OrLocallyCompactRegularSpace _]` assumption if the space is known to be regular for other reason (e.g., because it's a topological group). ### New theorems - `Specializes.not_disjoint`: if `x ⤳ y`, then `𝓝 x` and `𝓝 y` aren't disjoint; - `specializes_iff_not_disjoint`, `Specializes.inseparable`, `disjoint_nhds_nhds_iff_not_inseparable`, `r1Space_iff_inseparable_or_disjoint_nhds`: basic API about `R1Space`s; - `Inducing.r1Space`, `R1Space.induced`, `R1Space.sInf`, `R1Space.iInf`, `R1Space.inf`, instances for `Subtype _`, `X × Y`, and `∀ i, X i`: basic instances for `R1Space`; - `IsCompact.mem_closure_iff_exists_inseparable`, `IsCompact.closure_eq_biUnion_inseparable`: characterizations of the closure of a compact set in a preregular space; - `Inseparable.mem_measurableSet_iff`: topologically inseparable points can't be separated by a Borel measurable set; - `IsCompact.closure_subset_measurableSet`, `IsCompact.measure_closure`: in a preregular space, a measurable superset of a compact set includes its closure as well; as a corollary, `closure K` has the same measure as `K`. - `exists_mem_nhds_isCompact_mapsTo_of_isCompact_mem_nhds`: an auxiliary lemma extracted from a `LocallyCompactPair` instance; - `IsCompact.isCompact_isClosed_basis_nhds`: if `x` admits a compact neighborhood, then it admits a basis of compact closed neighborhoods; in particular, a weakly locally compact preregular space is a locally compact regular space; - `isCompact_isClosed_basis_nhds`: a version of the previous theorem for weakly locally compact spaces; - `exists_mem_nhds_isCompact_isClosed`: in a locally compact regular space, each point admits a compact closed neighborhood. ### Deprecated theorems Some theorems about topological groups are true for any (pre)regular space, so we deprecate the special cases. - `exists_isCompact_isClosed_subset_isCompact_nhds_one`: use new `IsCompact.isCompact_isClosed_basis_nhds` instead; - `instLocallyCompactSpaceOfWeaklyOfGroup`, `instLocallyCompactSpaceOfWeaklyOfAddGroup`: are now implied by `WeaklyLocallyCompactSpace.locallyCompactSpace`; - `local_isCompact_isClosed_nhds_of_group`, `local_isCompact_isClosed_nhds_of_addGroup`: use `isCompact_isClosed_basis_nhds` instead; - `exists_isCompact_isClosed_nhds_one`, `exists_isCompact_isClosed_nhds_zero`: use `exists_mem_nhds_isCompact_isClosed` instead. ### Renamed/moved theorems For each renamed theorem, the old theorem is redefined as a deprecated alias. - `isOpen_setOf_disjoint_nhds_nhds`: moved to `Constructions`; - `isCompact_closure_of_subset_compact` -> `IsCompact.closure_of_subset`; - `IsCompact.measure_eq_infi_isOpen` -> `IsCompact.measure_eq_iInf_isOpen`; - `exists_compact_superset_iff` -> `exists_isCompact_superset_iff`; - `separatedNhds_of_isCompact_isCompact_isClosed` -> `SeparatedNhds.of_isCompact_isCompact_isClosed`; - `separatedNhds_of_isCompact_isCompact` -> `SeparatedNhds.of_isCompact_isCompact`; - `separatedNhds_of_finset_finset` -> `SeparatedNhds.of_finset_finset`; - `point_disjoint_finset_opens_of_t2` -> `SeparatedNhds.of_singleton_finset`; - `separatedNhds_of_isCompact_isClosed` -> `SeparatedNhds.of_isCompact_isClosed`; - `exists_open_superset_and_isCompact_closure` -> `exists_isOpen_superset_and_isCompact_closure`; - `exists_open_with_compact_closure` -> `exists_isOpen_mem_isCompact_closure`; ESTIMATED CHANGES Modified Mathlib/Analysis/NormedSpace/CompactOperator.lean Modified Mathlib/Analysis/NormedSpace/OperatorNorm.lean Modified Mathlib/MeasureTheory/Constructions/BorelSpace/Basic.lean + theorem Inseparable.mem_measurableSet_iff + theorem IsCompact.closure_subset_measurableSet + theorem IsCompact.measure_closure Modified Mathlib/MeasureTheory/Group/Measure.lean +/- theorem MeasureTheory.innerRegularWRT_isCompact_isClosed_measure_ne_top_of_group Modified Mathlib/MeasureTheory/Measure/Content.lean +/- theorem MeasureTheory.Content.innerContent_iSup_nat +/- theorem MeasureTheory.Content.innerContent_iUnion_nat +/- theorem MeasureTheory.Content.innerContent_pos_of_is_mul_left_invariant Modified Mathlib/MeasureTheory/Measure/Haar/Basic.lean +/- theorem MeasureTheory.Measure.haarMeasure_apply Modified Mathlib/MeasureTheory/Measure/Regular.lean +/- theorem MeasureTheory.Measure.InnerRegular.innerRegularWRT_isClosed_isOpen +/- theorem MeasureTheory.Measure.OuterRegular.measure_closure_eq_of_isCompact +/- theorem MeasureTheory.Measure.Regular.restrict_of_measure_ne_top Modified Mathlib/Topology/Algebra/Group/Basic.lean + theorem instLocallyCompactSpaceOfWeaklyOfGroup Modified Mathlib/Topology/Algebra/Group/Compact.lean Modified Mathlib/Topology/Compactness/LocallyCompact.lean Modified Mathlib/Topology/Constructions.lean + theorem isOpen_setOf_disjoint_nhds_nhds Modified Mathlib/Topology/Inseparable.lean + theorem Specializes.not_disjoint Modified Mathlib/Topology/Separation.lean + theorem Inducing.r1Space +/- theorem IsCompact.binary_compact_cover + theorem IsCompact.closure_eq_biUnion_closure_singleton + theorem IsCompact.closure_eq_biUnion_inseparable + theorem IsCompact.closure_of_subset +/- theorem IsCompact.closure_subset_of_isOpen +/- theorem IsCompact.finite_compact_cover + theorem IsCompact.isCompact_isClosed_basis_nhds + theorem IsCompact.mem_closure_iff_exists_inseparable - theorem RegularSpace.ofT2SpaceOrRegularSpace + theorem SeparatedNhds.of_finset_finset + theorem SeparatedNhds.of_isCompact_isClosed + theorem SeparatedNhds.of_isCompact_isCompact + theorem SeparatedNhds.of_isCompact_isCompact_isClosed + theorem SeparatedNhds.of_singleton_finset + theorem SeparationQuotient.t2Space_iff + theorem Specializes.symm + theorem T4Space.of_compactSpace_t2Space + theorem disjoint_nhds_nhds_iff_not_inseparable +/- theorem disjoint_nhds_nhds_iff_not_specializes - theorem exists_compact_superset_iff + theorem exists_isCompact_superset_iff + theorem exists_isOpen_mem_isCompact_closure + theorem exists_isOpen_superset_and_isCompact_closure + theorem exists_mem_nhds_isCompact_isClosed + theorem exists_mem_nhds_isCompact_mapsTo_of_isCompact_mem_nhds - theorem exists_open_superset_and_isCompact_closure - theorem exists_open_with_compact_closure - theorem isCompact_closure_of_subset_compact + theorem isCompact_isClosed_basis_nhds - theorem isOpen_setOf_disjoint_nhds_nhds - theorem point_disjoint_finset_opens_of_t2 + theorem r1Space_iff_inseparable_or_disjoint_nhds - theorem separatedNhds_of_finset_finset - theorem separatedNhds_of_isCompact_isClosed - theorem separatedNhds_of_isCompact_isCompact - theorem separatedNhds_of_isCompact_isCompact_isClosed +/- theorem specializes_comm +/- theorem specializes_iff_inseparable + theorem specializes_iff_not_disjoint Modified Mathlib/Topology/Support.lean +/- theorem HasCompactMulSupport.intro +/- theorem HasCompactMulSupport.of_mulSupport_subset_isCompact +/- theorem exists_compact_iff_hasCompactMulSupport 2024-01-29 17:52:04 7afbac6 chore(Topology/PartialHomeomorph): rename type variables (#9632) Greek letters are dead, long live X, Y and Z. Same procedure as in previous renames. ESTIMATED CHANGES Modified Mathlib/Topology/PartialHomeomorph.lean +/- def Homeomorph.toPartialHomeomorph +/- def Homeomorph.toPartialHomeomorphOfImageEq +/- def Homeomorph.transPartialHomeomorph +/- theorem Homeomorph.transPartialHomeomorph_eq_trans +/- theorem Homeomorph.transPartialHomeomorph_trans +/- theorem Homeomorph.trans_transPartialHomeomorph +/- theorem OpenEmbedding.toPartialHomeomorph_left_inv +/- theorem OpenEmbedding.toPartialHomeomorph_right_inv +/- theorem PartialHomeomorph.EqOnSource.eqOn +/- theorem PartialHomeomorph.EqOnSource.restr +/- theorem PartialHomeomorph.EqOnSource.source_eq +/- theorem PartialHomeomorph.EqOnSource.symm' +/- theorem PartialHomeomorph.EqOnSource.symm_eqOn_target +/- theorem PartialHomeomorph.EqOnSource.target_eq +/- theorem PartialHomeomorph.EqOnSource.trans' +/- def PartialHomeomorph.EqOnSource +/- theorem PartialHomeomorph.IsImage.inter_eq_of_inter_eq_of_eqOn +/- theorem PartialHomeomorph.IsImage.leftInvOn_piecewise +/- def PartialHomeomorph.IsImage.restr +/- theorem PartialHomeomorph.IsImage.symm_eqOn_of_inter_eq_of_eqOn +/- def PartialHomeomorph.IsImage +/- theorem PartialHomeomorph.Set.EqOn.restr_eqOn_source +/- def PartialHomeomorph.Simps.apply +/- def PartialHomeomorph.Simps.symm_apply +/- theorem PartialHomeomorph.coe_coe +/- theorem PartialHomeomorph.coe_coe_symm +/- theorem PartialHomeomorph.coe_trans +/- theorem PartialHomeomorph.coe_trans_symm +/- theorem PartialHomeomorph.continuousAt_iff_continuousAt_comp_left +/- theorem PartialHomeomorph.continuousAt_iff_continuousAt_comp_right +/- theorem PartialHomeomorph.continuousAt_symm +/- theorem PartialHomeomorph.continuousOn_iff_continuousOn_comp_left +/- theorem PartialHomeomorph.continuousOn_iff_continuousOn_comp_right +/- theorem PartialHomeomorph.continuousWithinAt_iff_continuousWithinAt_comp_left +/- theorem PartialHomeomorph.continuousWithinAt_iff_continuousWithinAt_comp_right +/- theorem PartialHomeomorph.continuous_iff_continuous_comp_left +/- def PartialHomeomorph.disjointUnion +/- theorem PartialHomeomorph.eqOnSource_iff +/- theorem PartialHomeomorph.eq_of_eqOnSource_univ +/- theorem PartialHomeomorph.eq_of_partialEquiv_eq +/- theorem PartialHomeomorph.eq_symm_apply +/- theorem PartialHomeomorph.eventually_nhds' +/- theorem PartialHomeomorph.eventually_nhds +/- theorem PartialHomeomorph.eventually_nhdsWithin' +/- theorem PartialHomeomorph.eventually_nhdsWithin +/- def PartialHomeomorph.homeomorphOfImageSubsetSource +/- theorem PartialHomeomorph.image_eq_target_inter_inv_preimage +/- theorem PartialHomeomorph.image_mem_nhds +/- theorem PartialHomeomorph.image_source_inter_eq' +/- theorem PartialHomeomorph.image_source_inter_eq +/- theorem PartialHomeomorph.invFun_eq_coe +/- theorem PartialHomeomorph.isImage_source_target_of_disjoint +/- theorem PartialHomeomorph.isOpen_image_iff_of_subset_source +/- theorem PartialHomeomorph.isOpen_image_of_subset_source +/- theorem PartialHomeomorph.isOpen_image_source_inter +/- theorem PartialHomeomorph.isOpen_image_symm_of_subset_target +/- theorem PartialHomeomorph.isOpen_inter_preimage +/- theorem PartialHomeomorph.isOpen_inter_preimage_symm +/- theorem PartialHomeomorph.isOpen_symm_image_iff_of_subset_target +/- theorem PartialHomeomorph.left_inv +/- theorem PartialHomeomorph.map_nhdsWithin_eq +/- theorem PartialHomeomorph.map_nhdsWithin_preimage_eq +/- theorem PartialHomeomorph.map_source +/- theorem PartialHomeomorph.map_subtype_source +/- theorem PartialHomeomorph.map_target +/- theorem PartialHomeomorph.mk_coe +/- theorem PartialHomeomorph.mk_coe_symm +/- theorem PartialHomeomorph.nhdsWithin_source_inter +/- theorem PartialHomeomorph.nhdsWithin_target_inter +/- def PartialHomeomorph.ofContinuousOpen +/- def PartialHomeomorph.ofContinuousOpenRestrict +/- def PartialHomeomorph.ofSet +/- theorem PartialHomeomorph.ofSet_trans' +/- theorem PartialHomeomorph.ofSet_trans +/- theorem PartialHomeomorph.ofSet_trans_ofSet +/- theorem PartialHomeomorph.ofSet_univ_eq_refl +/- def PartialHomeomorph.pi +/- def PartialHomeomorph.piecewise +/- theorem PartialHomeomorph.preimage_closure +/- theorem PartialHomeomorph.preimage_eventuallyEq_target_inter_preimage_inter +/- theorem PartialHomeomorph.preimage_frontier +/- theorem PartialHomeomorph.preimage_interior +/- def PartialHomeomorph.prod +/- theorem PartialHomeomorph.prod_eq_prod_of_nonempty' +/- theorem PartialHomeomorph.prod_eq_prod_of_nonempty +/- theorem PartialHomeomorph.prod_symm +/- theorem PartialHomeomorph.prod_trans +/- theorem PartialHomeomorph.refl_partialEquiv +/- theorem PartialHomeomorph.refl_prod_refl +/- theorem PartialHomeomorph.refl_symm +/- theorem PartialHomeomorph.refl_trans +/- def PartialHomeomorph.replaceEquiv +/- theorem PartialHomeomorph.replaceEquiv_eq_self +/- theorem PartialHomeomorph.restrOpen_source +/- theorem PartialHomeomorph.restrOpen_toPartialEquiv +/- theorem PartialHomeomorph.restr_eq_of_source_subset +/- theorem PartialHomeomorph.restr_source' +/- theorem PartialHomeomorph.restr_source_inter +/- theorem PartialHomeomorph.restr_toPartialEquiv' +/- theorem PartialHomeomorph.restr_toPartialEquiv +/- theorem PartialHomeomorph.restr_trans +/- theorem PartialHomeomorph.restr_univ +/- theorem PartialHomeomorph.right_inv +/- theorem PartialHomeomorph.secondCountableTopology_source +/- theorem PartialHomeomorph.source_inter_preimage_inv_preimage +/- theorem PartialHomeomorph.source_inter_preimage_target_inter +/- theorem PartialHomeomorph.subtypeRestr_symm_eqOn +/- theorem PartialHomeomorph.subtypeRestr_symm_eqOn_of_le +/- theorem PartialHomeomorph.subtypeRestr_symm_trans_subtypeRestr +/- theorem PartialHomeomorph.symm_image_eq_source_inter_preimage +/- theorem PartialHomeomorph.symm_image_target_inter_eq +/- theorem PartialHomeomorph.symm_piecewise +/- theorem PartialHomeomorph.target_inter_inv_preimage_preimage +/- def PartialHomeomorph.toFun' +/- theorem PartialHomeomorph.toFun_eq_coe +/- def PartialHomeomorph.toHomeomorphOfSourceEqUnivTargetEqUniv +/- def PartialHomeomorph.transHomeomorph +/- theorem PartialHomeomorph.transHomeomorph_eq_trans +/- theorem PartialHomeomorph.transHomeomorph_transHomeomorph +/- theorem PartialHomeomorph.trans_apply +/- theorem PartialHomeomorph.trans_assoc +/- theorem PartialHomeomorph.trans_ofSet +/- theorem PartialHomeomorph.trans_of_set' +/- theorem PartialHomeomorph.trans_refl +/- theorem PartialHomeomorph.trans_transHomeomorph +/- structure PartialHomeomorph +/- theorem TopologicalSpace.Opens.partialHomeomorphSubtypeCoe_coe 2024-01-29 16:54:51 d883f18 chore(Data/List/Rotate): add `@[simp]` to `rotate_replicate` (#10106) ESTIMATED CHANGES Modified Mathlib/Data/List/Rotate.lean 2024-01-29 15:34:18 89f9777 chore: fix Punit->PUnit in CommMon_ (#10089) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Monoidal/CommMon_.lean + def CommMon_.EquivLaxBraidedFunctorPUnit.commMonToLaxBraided + def CommMon_.EquivLaxBraidedFunctorPUnit.counitIso + def CommMon_.EquivLaxBraidedFunctorPUnit.laxBraidedToCommMon + def CommMon_.EquivLaxBraidedFunctorPUnit.unitIso - def CommMon_.EquivLaxBraidedFunctorPunit.commMonToLaxBraided - def CommMon_.EquivLaxBraidedFunctorPunit.counitIso - def CommMon_.EquivLaxBraidedFunctorPunit.laxBraidedToCommMon - def CommMon_.EquivLaxBraidedFunctorPunit.unitIso + def CommMon_.equivLaxBraidedFunctorPUnit - def CommMon_.equivLaxBraidedFunctorPunit 2024-01-29 14:47:04 00b71ef refactor(Probability/Kernel/CondCdf): mv tendsto_of_antitone (#10046) ESTIMATED CHANGES Modified Mathlib/Probability/Kernel/CondCdf.lean - theorem tendsto_of_antitone Modified Mathlib/Topology/Algebra/Order/MonotoneConvergence.lean + theorem tendsto_of_antitone 2024-01-29 13:56:07 68c771a doc: fix typos (#10100) Fix minor typos in the following files: - [x] `Mathlib/GroupTheory/GroupAction/Opposite.lean` - [x] `Mathlib/Init/Control/Lawful.lean` - [x] `Mathlib/ModelTheory/ElementarySubstructures.lean` - [x] `Mathlib/Algebra/Group/Defs.lean` - [x] `Mathlib/Algebra/Group/WithOne/Basic.lean` - [x] `Mathlib/Data/Int/Cast/Defs.lean` - [x] `Mathlib/LinearAlgebra/Dimension/Basic.lean` - [x] `Mathlib/NumberTheory/NumberField/CanonicalEmbedding.lean` - [x] `Mathlib/Algebra/Star/StarAlgHom.lean` - [x] `Mathlib/AlgebraicTopology/SimplexCategory.lean` - [x] `Mathlib/CategoryTheory/Abelian/Homology.lean` - [x] `Mathlib/CategoryTheory/Sites/Grothendieck.lean` - [x] `Mathlib/RingTheory/IsTensorProduct.lean` - [x] `Mathlib/AlgebraicTopology/DoldKan/Homotopies.lean` - [x] `Mathlib/AlgebraicTopology/ExtraDegeneracy.lean` - [x] `Mathlib/AlgebraicTopology/Nerve.lean` - [x] `Mathlib/AlgebraicTopology/SplitSimplicialObject.lean` - [x] `Mathlib/Analysis/ConstantSpeed.lean` - [x] `Mathlib/Analysis/Convolution.lean` ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Defs.lean Modified Mathlib/Algebra/Group/WithOne/Basic.lean Modified Mathlib/Algebra/Star/StarAlgHom.lean Modified Mathlib/AlgebraicTopology/DoldKan/Homotopies.lean Modified Mathlib/AlgebraicTopology/ExtraDegeneracy.lean Modified Mathlib/AlgebraicTopology/Nerve.lean Modified Mathlib/AlgebraicTopology/SimplexCategory.lean Modified Mathlib/AlgebraicTopology/SplitSimplicialObject.lean Modified Mathlib/Analysis/Convolution.lean Modified Mathlib/CategoryTheory/Abelian/Homology.lean Modified Mathlib/CategoryTheory/Sites/Grothendieck.lean Modified Mathlib/Data/Int/Cast/Defs.lean Modified Mathlib/GroupTheory/GroupAction/Opposite.lean Modified Mathlib/Init/Control/Lawful.lean Modified Mathlib/LinearAlgebra/Dimension/Basic.lean Modified Mathlib/ModelTheory/ElementarySubstructures.lean Modified Mathlib/NumberTheory/NumberField/CanonicalEmbedding.lean Modified Mathlib/RingTheory/IsTensorProduct.lean 2024-01-29 13:15:22 e463fbf chore(Analysis/SpecialFunctions/JapaneseBracket): restore measurability (#10054) ESTIMATED CHANGES Modified Mathlib/Analysis/SpecialFunctions/JapaneseBracket.lean 2024-01-29 10:59:18 cea4f7a chore: cleanup some Yoneda lemma proofs (#10092) While thinking about simp lemmas for opposite categories (for the sake of comonoid objects, for the sake of group objects, for the sake of reductive groups), noticed some of the Yoneda lemma proofs can be golfed. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Opposites.lean Modified Mathlib/CategoryTheory/Yoneda.lean 2024-01-29 10:12:33 197378a chore: Fix some porting notes and make some defs computable again. (#10062) These are some auxiliary definitions for the monoidal structure on a category induced by binary products and terminal objects. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Monoidal/OfChosenFiniteProducts/Basic.lean 2024-01-29 07:53:36 86ffe04 chore(Order/Filter/ListTraverse): move from `Basic` (#10048) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Order/Filter/Basic.lean - theorem Filter.mem_traverse - theorem Filter.mem_traverse_iff - theorem Filter.sequence_mono Added Mathlib/Order/Filter/ListTraverse.lean + theorem Filter.mem_traverse + theorem Filter.mem_traverse_iff + theorem Filter.sequence_mono Modified Mathlib/Topology/List.lean 2024-01-29 07:53:35 a4c1d9d chore: split file on series of functions into two files (#9906) Currently, the same file contains the facts that series of functions are continuous (resp. smooth) under suitable assumption. I will need the result on continuity in a file of more topological nature. To avoid importing all calculus in this file, this PR splits the file `Analysis.Calculus.Series` into `Analysis.Calculus.SmoothSeries` and `Analysis.NormedSpace.FunctionSeries`. It's purely a splitting PR, no result added or removed. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Analysis/Calculus/BumpFunction/FiniteDimension.lean Renamed Mathlib/Analysis/Calculus/Series.lean to Mathlib/Analysis/Calculus/SmoothSeries.lean - theorem continuousOn_tsum - theorem continuous_tsum - theorem tendstoUniformlyOn_tsum - theorem tendstoUniformlyOn_tsum_nat - theorem tendstoUniformly_tsum - theorem tendstoUniformly_tsum_nat Modified Mathlib/Analysis/Complex/LocallyUniformLimit.lean Added Mathlib/Analysis/NormedSpace/FunctionSeries.lean + theorem continuousOn_tsum + theorem continuous_tsum + theorem tendstoUniformlyOn_tsum + theorem tendstoUniformlyOn_tsum_nat + theorem tendstoUniformly_tsum + theorem tendstoUniformly_tsum_nat 2024-01-29 06:37:18 1fa9ebf feat(Algebra/InfiniteSum): drop `[T2Space _]` assumption (#10060) * Add `CanLift` instance for `Function.Embedding`. * Assume `Injective i` instead of an equivalent condition in `hasSum_iff_hasSum_of_ne_zero_bij`. * Add `tsum_eq_sum'`, a version of `tsum_eq_sum` that explicitly mentions `support f`. * Add `Function.Injective.tsum_eq`, use it to drop `[T2Space _]` assumption in - `Equiv.tsum_eq`; - `tsum_subtype_eq_of_support_subset`; - `tsum_subtype_support`; - `tsum_subtype`; - `tsum_univ`; - `tsum_image`; - `tsum_range`; - `tsum_setElem_eq_tsum_setElem_diff`; - `tsum_eq_tsum_diff_singleton`; - `tsum_eq_tsum_of_ne_zero_bij`; - `Equiv.tsum_eq_tsum_of_support`; - `tsum_extend_zero`; * Golf some proofs. * Drop `Equiv.Set.prod_singleton_left` and `Equiv.Set.prod_singleton_right` added in #10038. @MichaelStollBayreuth, if you need these `Equiv`s, then please - restore them in `Logic/Equiv/Set`, not in `Data/Set/Prod`; - call them `Equiv.Set.singletonProd` and `Equiv.Set.prodSingleton`, following the `lowerCamelCase` naming convention for `def`s; - reuse the existing `Equiv.Set.prod` and `Equiv.prodUnique`/`Equiv.uniqueProd` in the definitions. ESTIMATED CHANGES Modified Mathlib/Data/Set/Prod.lean - def Equiv.Set.prod_singleton_left - def Equiv.Set.prod_singleton_right Modified Mathlib/Logic/Embedding/Basic.lean Modified Mathlib/Topology/Algebra/InfiniteSum/Basic.lean +/- theorem Equiv.tsum_eq + theorem Function.Injective.tsum_eq +/- theorem tsum_eq_single + theorem tsum_eq_sum' +/- theorem tsum_eq_sum +/- theorem tsum_eq_tsum_diff_singleton +/- theorem tsum_eq_tsum_of_ne_zero_bij +/- theorem tsum_setElem_eq_tsum_setElem_diff +/- theorem tsum_subtype + theorem tsum_subtype_support +/- theorem tsum_tsum_eq_single 2024-01-29 06:37:17 1da1e9e feat: minor topological improvements (#9908) * Prove that a set is a Gdelta if and only if it is an intersection of open sets indexed by `ℕ`. * Cleanup porting todos in the Gdelta file * Rename `cluster_point_of_compact` to `exists_clusterPt_of_compactSpace ` * Generalize the class `T2Space` to `T2OrLocallyCompactRegularSpace` in the file `Support.lean` ESTIMATED CHANGES Modified Mathlib/Data/ENNReal/Operations.lean + theorem ENNReal.sub_le_sub_iff_left Modified Mathlib/Topology/Compactness/Compact.lean + theorem IsCompact.exists_clusterPt + theorem IsCompact.exists_mapClusterPt - theorem cluster_point_of_compact + theorem exists_clusterPt_of_compactSpace Modified Mathlib/Topology/GDelta.lean +/- theorem IsClosed.isGδ +/- theorem isGδ_iInter +/- theorem isGδ_iInter_of_isOpen + theorem isGδ_iff_eq_iInter_nat +/- theorem isGδ_setOf_continuousAt Modified Mathlib/Topology/Support.lean +/- theorem HasCompactMulSupport.intro + theorem HasCompactMulSupport.isCompact_preimage +/- theorem HasCompactMulSupport.of_mulSupport_subset_isCompact +/- theorem exists_compact_iff_hasCompactMulSupport Modified Mathlib/Topology/UniformSpace/Compact.lean 2024-01-29 05:23:46 4e0ccc0 feat(Data/Fin/Tuple/Basic): `repeat_comp_rev` (#9845) Prove `repeat_comp_rev`. ESTIMATED CHANGES Modified Mathlib/Data/Fin/Basic.lean + theorem Fin.modNat_rev +/- theorem Fin.size_positive Modified Mathlib/Data/Fin/Tuple/Basic.lean + theorem Fin.repeat_comp_rev + theorem Fin.repeat_rev 2024-01-29 01:14:44 f5a69ea docs(Algebra/Algebra/Basic): get the type right (#10055) ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/Basic.lean 2024-01-29 00:09:08 995b1af doc(Mathlib/Algebra): fix typos (#10080) Fix minor typos in the `Mathlib/Algebra/CovariantAndContravariant.lean` file. ESTIMATED CHANGES Modified Mathlib/Algebra/CovariantAndContravariant.lean 2024-01-28 23:24:42 c38c032 feat(Convex/Gauge): add `continuousAt_gauge` (#9911) ESTIMATED CHANGES Modified Mathlib/Analysis/Convex/Gauge.lean + theorem continuousAt_gauge +/- theorem continuous_gauge 2024-01-28 15:34:44 9f35a08 feat: add lemmas `nullMeasurableSet_lt'` and `nullMeasurableSet_le` (#10074) Prior to this commit the state of Mathlib was: ```lean import Mathlib #check measurableSet_lt -- Exists #check measurableSet_lt' -- Exists #check measurableSet_le -- Exists #check nullMeasurableSet_lt -- Exists #check nullMeasurableSet_lt' -- Missing #check nullMeasurableSet_le -- Missing ``` ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Constructions/BorelSpace/Basic.lean + theorem nullMeasurableSet_le + theorem nullMeasurableSet_lt' 2024-01-28 14:42:17 e975e78 chore(Topology): fix a typo (#10070) There is no `NeBot` in this lemma ESTIMATED CHANGES Modified Mathlib/Topology/Basic.lean - theorem mem_closure_iff_nhds_neBot + theorem mem_closure_iff_nhds_ne_bot Modified Mathlib/Topology/Separation.lean 2024-01-28 09:50:58 19b5ded refactor(Probability/Kernel/CondCdf): mv some theorems (#10036) ESTIMATED CHANGES Modified Mathlib/Logic/Encodable/Basic.lean + theorem Directed.sequence_anti + theorem Directed.sequence_le Modified Mathlib/Probability/Kernel/CondCdf.lean - theorem Directed.sequence_anti - theorem Directed.sequence_le 2024-01-28 09:07:45 e8bfb67 refactor(Probability/Kernel/CondCdf): mv ofReal_cinfi (#10044) ESTIMATED CHANGES Modified Mathlib/Probability/Kernel/CondCdf.lean - theorem ENNReal.ofReal_cinfi Modified Mathlib/Topology/Instances/ENNReal.lean + theorem ENNReal.ofReal_cinfi 2024-01-28 02:42:13 d5277c9 perf(NormedSpace/OperatorNorm): fix `simp` call and clean up porting notes (#9658) We clean up some porting notes and speed up this file. ESTIMATED CHANGES Modified Mathlib/Analysis/NormedSpace/OperatorNorm.lean - theorem ContinuousLinearMap.op_norm_comp_le' 2024-01-27 19:32:54 09b44c1 feat(GroupTheory/GroupAction/Group): invOf smul lemmas (#9972) Give `smul` versions of some existing `mul` lemmas: - `invOf_smul_smul` - smul_invOf_smul (c.f. mul_invOf_self_assoc) - `invOf_smul_eq_iff` (c.f. `invOf_mul_eq_iff_eq_mul_left`) (required for #7569) - `smul_eq_iff_eq_invOf_smul` (c.f `mul_left_eq_iff_eq_invOf_mul`) ESTIMATED CHANGES Modified Mathlib/GroupTheory/GroupAction/Group.lean + theorem invOf_smul_eq_iff + theorem invOf_smul_smul + theorem smul_eq_iff_eq_invOf_smul + theorem smul_invOf_smul 2024-01-27 17:46:59 e4e10f9 feat(Topology/Algebra/InfiniteSum/Basic): add some lemmas on `tsum`s (#10038) This is the fifth PR in a sequence that adds auxiliary lemmas from the [EulerProducts](https://github.com/MichaelStollBayreuth/EulerProducts) project to Mathlib. It adds three lemmas on `tsum`s: ```lean lemma HasSum.tsum_fiberwise {α β γ : Type*} [AddCommGroup α] [UniformSpace α] [UniformAddGroup α] [T2Space α] [RegularSpace α] [CompleteSpace α] {f : β → α} {a : α} (hf : HasSum f a) (g : β → γ) : HasSum (fun c : γ ↦ ∑' b : g ⁻¹' {c}, f b) a lemma tsum_setProd_singleton_left {α β γ : Type*} [AddCommMonoid γ] [TopologicalSpace γ] [T2Space γ] (a : α) (t : Set β) (f : α × β → γ) : (∑' x : {a} ×ˢ t, f x) = ∑' b : t, f (a, b) lemma tsum_setProd_singleton_right {α β γ : Type*} [AddCommMonoid γ] [TopologicalSpace γ] [T2Space γ] (s : Set α) (b : β) (f : α × β → γ) : (∑' x : s ×ˢ {b}, f x) = ∑' a : s, f (a, b) ``` and the necessary equivalences ```lean def prod_singleton_left {α β : Type*} (a : α) (t : Set β) : ↑({a} ×ˢ t) ≃ ↑t def prod_singleton_right {α β : Type*} (s : Set α) (b : β) : ↑(s ×ˢ {b}) ≃ ↑s ``` ESTIMATED CHANGES Modified Mathlib/Data/Set/Prod.lean + def Equiv.Set.prod_singleton_left + def Equiv.Set.prod_singleton_right Modified Mathlib/Topology/Algebra/InfiniteSum/Basic.lean + theorem HasSum.tsum_fiberwise + theorem tsum_setProd_singleton_left + theorem tsum_setProd_singleton_right 2024-01-27 17:21:40 0bcd6be feat: two lemmas about cut-off functions (#9873) From sphere-eversion; I'm just upstreaming this. The version in sphere-eversion uses an unbundled design; we provide a bundled version (for now) to match the remaining file. ESTIMATED CHANGES Modified Mathlib/Geometry/Manifold/PartitionOfUnity.lean + theorem exists_smooth_one_nhds_of_subset_interior + theorem exists_smooth_zero_one_nhds_of_isClosed 2024-01-27 14:51:46 f1919fd feat(CategoryTheory/Monoidal): add lemmas for the whiskerings (#9995) Extracted from #6307. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Bicategory/Basic.lean - theorem CategoryTheory.Bicategory.hom_inv_whiskerLeft - theorem CategoryTheory.Bicategory.inv_hom_whiskerLeft + theorem CategoryTheory.Bicategory.whiskerLeft_hom_inv + theorem CategoryTheory.Bicategory.whiskerLeft_inv_hom Modified Mathlib/CategoryTheory/Bicategory/Functor.lean Modified Mathlib/CategoryTheory/Monoidal/Category.lean + theorem CategoryTheory.MonoidalCategory.hom_inv_whiskerRight' + theorem CategoryTheory.MonoidalCategory.hom_inv_whiskerRight + theorem CategoryTheory.MonoidalCategory.inv_hom_whiskerRight' + theorem CategoryTheory.MonoidalCategory.inv_hom_whiskerRight + theorem CategoryTheory.MonoidalCategory.inv_whiskerLeft + theorem CategoryTheory.MonoidalCategory.inv_whiskerRight + def CategoryTheory.MonoidalCategory.whiskerLeftIso + theorem CategoryTheory.MonoidalCategory.whiskerLeft_hom_inv' + theorem CategoryTheory.MonoidalCategory.whiskerLeft_hom_inv + theorem CategoryTheory.MonoidalCategory.whiskerLeft_inv_hom' + theorem CategoryTheory.MonoidalCategory.whiskerLeft_inv_hom + def CategoryTheory.MonoidalCategory.whiskerRightIso Modified Mathlib/CategoryTheory/Monoidal/Center.lean + theorem CategoryTheory.Center.whiskerLeft_f + theorem CategoryTheory.Center.whiskerRight_f Modified Mathlib/CategoryTheory/Monoidal/Linear.lean Modified Mathlib/CategoryTheory/Monoidal/OfHasFiniteProducts.lean + theorem CategoryTheory.monoidalOfHasFiniteCoproducts.whiskerLeft + theorem CategoryTheory.monoidalOfHasFiniteCoproducts.whiskerRight + theorem CategoryTheory.monoidalOfHasFiniteProducts.whiskerLeft + theorem CategoryTheory.monoidalOfHasFiniteProducts.whiskerRight Modified Mathlib/Tactic/CategoryTheory/Coherence.lean 2024-01-27 11:43:29 c6cc35e docs(TensorProduct/Tower): fix doc string of `AlgebraTensorModule.assoc` (#10051) Matches variable names in the doc string with the variables used in the type signature of `AlgebraTensorModule.assoc`. ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/TensorProduct/Tower.lean 2024-01-27 11:43:28 ae8f621 feat: four small lemmas about extended charts (#10001) From sphere-eversion; I'm just submitting them. ESTIMATED CHANGES Modified Mathlib/Geometry/Manifold/SmoothManifoldWithCorners.lean + theorem PartialHomeomorph.extend_image_nhd_mem_nhds_of_boundaryless + theorem PartialHomeomorph.map_extend_nhds_of_boundaryless + theorem extChartAt_image_nhd_mem_nhds_of_boundaryless + theorem map_extChartAt_nhds_of_boundaryless 2024-01-27 11:43:27 c8818ba feat(NormedSpace/Basic): add dist_smul_add_one_sub_smul_le (#9982) From sphere-eversion (slightly golfed); I'm just upstreaming it. ESTIMATED CHANGES Modified Mathlib/Analysis/NormedSpace/Basic.lean + theorem dist_smul_add_one_sub_smul_le 2024-01-27 11:43:26 ca91ff1 refactor(PartialHomeomorph): make `[Nonempty s]` explicit (#9894) Subsets aren't going to have `Nonempty` instances on them, typically, so one would have to manually construct a term of `[Nonempty s]` whenever `PartialHomeomorph.subtypeRestr` is used. Turning this instance argument explicit, `(hs : Nonempty s)` would help us avoid `@PartialHomeomorph.subtypeRestr _ _ _ _` constructions or `haveI : Nonempty ...`. Its only downstream effect currently is in `ChartedSpace.lean`. ESTIMATED CHANGES Modified Mathlib/Geometry/Manifold/ChartedSpace.lean Modified Mathlib/Topology/PartialHomeomorph.lean +/- theorem PartialHomeomorph.map_subtype_source +/- theorem PartialHomeomorph.subtypeRestr_def +/- theorem PartialHomeomorph.subtypeRestr_source +/- theorem PartialHomeomorph.subtypeRestr_symm_eqOn +/- theorem PartialHomeomorph.subtypeRestr_symm_eqOn_of_le +/- theorem TopologicalSpace.Opens.partialHomeomorphSubtypeCoe_coe +/- theorem TopologicalSpace.Opens.partialHomeomorphSubtypeCoe_source +/- theorem TopologicalSpace.Opens.partialHomeomorphSubtypeCoe_target 2024-01-27 10:41:58 a1bc0ac doc(docs): fix typos (#10050) Fix minor typos in the `docs` folder. ESTIMATED CHANGES Modified docs/Conv/Guide.lean Modified docs/Conv/Introduction.lean Modified docs/overview.yaml 2024-01-27 10:41:57 15c33b6 fix: lemma given a wrong name by `to_additive` (#10049) ESTIMATED CHANGES Modified Mathlib/GroupTheory/Coset.lean 2024-01-27 10:41:57 7f19636 chore: factor out a lemma from the proof of Steinhaus theorem (#9907) Given a measure in a locally compact group, and a compact set `k`, then for `g` close enough to the identity, the set `g • k \ k` has arbitrarily small measure. A slightly weaker version of this fact is used implicitly in our current proof of Steinhaus theorem that `E - E` is a neighborhood of the identity if `E` has positive measure. Since I will need this lemma later on, I extract it from the proof of Steinhaus theorem in this PR. ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Group/Measure.lean + theorem MeasureTheory.exists_nhds_measure_smul_diff_lt + theorem MeasureTheory.innerRegularWRT_isCompact_isClosed_measure_ne_top_of_group Modified Mathlib/MeasureTheory/Measure/Haar/Basic.lean 2024-01-27 09:26:07 cb8ebaf refactor(Probability/Kernel/CondCdf): mv prod_iInter (#10037) ESTIMATED CHANGES Modified Mathlib/Data/Set/Lattice.lean + theorem Set.prod_iInter Modified Mathlib/Probability/Kernel/CondCdf.lean - theorem prod_iInter 2024-01-26 22:26:07 62acece feat: iteratedDeriv_const_{s,}mul, iteratedDeriv_{c,}exp_const_mul (#9767) Based on @CBirkbeck's work on modular forms. ESTIMATED CHANGES Modified Mathlib/Analysis/Calculus/IteratedDeriv/Lemmas.lean + theorem iteratedDeriv_const_mul + theorem iteratedDeriv_const_smul Modified Mathlib/Analysis/SpecialFunctions/ExpDeriv.lean + theorem iteratedDeriv_cexp_const_mul + theorem iteratedDeriv_exp_const_mul 2024-01-26 20:18:23 781af01 feat: drop unneeded assumptions in `IsUniform.integral_eq` (#10021) ESTIMATED CHANGES Modified Mathlib/Probability/Density.lean +/- theorem MeasureTheory.pdf.IsUniform.hasPDF - theorem MeasureTheory.pdf.IsUniform.hasPDF₀ +/- theorem MeasureTheory.pdf.IsUniform.mul_pdf_integrable +/- theorem MeasureTheory.pdf.IsUniform.pdf_eq + theorem MeasureTheory.pdf.IsUniform.pdf_eq_zero_of_measure_eq_zero_or_top +/- theorem MeasureTheory.pdf.IsUniform.pdf_toReal_ae_eq + theorem MeasureTheory.pdf.IsUniform.toMeasurable_iff 2024-01-26 19:09:11 f1802b1 feat: Add lattice lemmas about `Sub{group,monoid}.{op,unop}` (#9860) In fact I only need the `closure` lemma, but the others are easy enough. This changes the `opEquiv`s to be order isomorphisms rather than just `Equiv`s. ESTIMATED CHANGES Modified Mathlib/GroupTheory/SchurZassenhaus.lean Modified Mathlib/GroupTheory/Subgroup/MulOpposite.lean + theorem Subgroup.le_op_iff + theorem Subgroup.mem_op + theorem Subgroup.mem_unop +/- def Subgroup.opEquiv + theorem Subgroup.op_bot + theorem Subgroup.op_closure + theorem Subgroup.op_iInf + theorem Subgroup.op_iSup + theorem Subgroup.op_inf + theorem Subgroup.op_le_iff + theorem Subgroup.op_le_op_iff + theorem Subgroup.op_sInf + theorem Subgroup.op_sSup + theorem Subgroup.op_sup +/- theorem Subgroup.op_toSubmonoid + theorem Subgroup.op_top + theorem Subgroup.op_unop + theorem Subgroup.unop_bot + theorem Subgroup.unop_closure + theorem Subgroup.unop_iInf + theorem Subgroup.unop_iSup + theorem Subgroup.unop_inf + theorem Subgroup.unop_le_unop_iff + theorem Subgroup.unop_op + theorem Subgroup.unop_sInf + theorem Subgroup.unop_sSup + theorem Subgroup.unop_sup +/- theorem Subgroup.unop_toSubmonoid + theorem Subgroup.unop_top Modified Mathlib/GroupTheory/Submonoid/MulOpposite.lean + theorem Submonoid.le_op_iff + theorem Submonoid.mem_op + theorem Submonoid.mem_unop +/- def Submonoid.opEquiv + theorem Submonoid.op_bot + theorem Submonoid.op_closure + theorem Submonoid.op_iInf + theorem Submonoid.op_iSup + theorem Submonoid.op_inf + theorem Submonoid.op_le_iff + theorem Submonoid.op_le_op_iff + theorem Submonoid.op_sInf + theorem Submonoid.op_sSup + theorem Submonoid.op_sup + theorem Submonoid.op_top + theorem Submonoid.op_unop + theorem Submonoid.unop_bot + theorem Submonoid.unop_closure + theorem Submonoid.unop_iInf + theorem Submonoid.unop_iSup + theorem Submonoid.unop_inf + theorem Submonoid.unop_le_unop_iff + theorem Submonoid.unop_op + theorem Submonoid.unop_sInf + theorem Submonoid.unop_sSup + theorem Submonoid.unop_sup + theorem Submonoid.unop_top Modified Mathlib/Order/CompleteLattice.lean + theorem OrderIso.map_sInf_eq_sInf_symm_preimage + theorem OrderIso.map_sSup_eq_sSup_symm_preimage 2024-01-26 18:21:29 edd8f40 feat: link `Dilation` to `Isometry` and `Homeomorph` (#9980) ESTIMATED CHANGES Modified Mathlib/Topology/MetricSpace/Dilation.lean + def Isometry.toDilation + theorem Isometry.toDilation_ratio Modified Mathlib/Topology/MetricSpace/DilationEquiv.lean + theorem DilationEquiv.coe_toHomeomorph + theorem DilationEquiv.ratio_toDilation + def DilationEquiv.toHomeomorph + theorem DilationEquiv.toHomeomorph_symm + def IsometryEquiv.toDilationEquiv + theorem IsometryEquiv.toDilationEquiv_apply + theorem IsometryEquiv.toDilationEquiv_ratio + theorem IsometryEquiv.toDilationEquiv_symm + theorem IsometryEquiv.toDilationEquiv_toDilation 2024-01-26 17:17:58 ab48003 chore(Calculus/ParametricIntegralInterval): small clean-ups (#10005) - collect some very common variables - use refine and \mapsto instead of refine' and => (both are preferred now) ESTIMATED CHANGES Modified Mathlib/Analysis/Calculus/ParametricIntegral.lean +/- theorem hasDerivAt_integral_of_dominated_loc_of_deriv_le +/- theorem hasDerivAt_integral_of_dominated_loc_of_lip +/- theorem hasFDerivAt_integral_of_dominated_loc_of_lip' +/- theorem hasFDerivAt_integral_of_dominated_loc_of_lip +/- theorem hasFDerivAt_integral_of_dominated_of_fderiv_le 2024-01-26 13:55:43 1fec3c4 chore(Filter/Ker): move from Filter.Basic to a new file (#10023) Start moving parts of >3K lines long `Filter.Basic` to new files. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Order/Filter/Bases.lean Modified Mathlib/Order/Filter/Basic.lean - def Filter.gi_principal_ker - def Filter.ker - theorem Filter.ker_bot - theorem Filter.ker_comap - theorem Filter.ker_def - theorem Filter.ker_eq_univ - theorem Filter.ker_iInf - theorem Filter.ker_inf - theorem Filter.ker_mono - theorem Filter.ker_principal - theorem Filter.ker_pure - theorem Filter.ker_sInf - theorem Filter.ker_surjective - theorem Filter.ker_top - theorem Filter.mem_ker - theorem Filter.subset_ker Added Mathlib/Order/Filter/Ker.lean + def Filter.gi_principal_ker + def Filter.ker + theorem Filter.ker_bot + theorem Filter.ker_comap + theorem Filter.ker_def + theorem Filter.ker_eq_univ + theorem Filter.ker_iInf + theorem Filter.ker_inf + theorem Filter.ker_mono + theorem Filter.ker_principal + theorem Filter.ker_pure + theorem Filter.ker_sInf + theorem Filter.ker_surjective + theorem Filter.ker_top + theorem Filter.mem_ker + theorem Filter.subset_ker 2024-01-26 11:59:21 0085768 feat: Add `measurable_abs` (#9912) See [Zulip](https://leanprover.zulipchat.com/#narrow/stream/217875-Is-there-code-for-X.3F/topic/measurable_abs/near/417230631) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/MeasureTheory/Constructions/BorelSpace/Basic.lean Added Mathlib/MeasureTheory/Order/Group/Lattice.lean + theorem measurable_leOnePart + theorem measurable_mabs + theorem measurable_oneLePart Renamed Mathlib/MeasureTheory/Lattice.lean to Mathlib/MeasureTheory/Order/Lattice.lean 2024-01-26 11:20:53 5821f8c feat: add LocallyFinite.smul_{left,right} (#10020) From sphere-eversion. Will be used to show a point-wise version of `SmoothPartitionOfUnity.contMDiff_finsum_smul`. ESTIMATED CHANGES Modified Mathlib/Topology/Support.lean + theorem LocallyFinite.smul_left + theorem LocallyFinite.smul_right 2024-01-26 11:20:52 e165098 feat: add Int.le_add_one_iff (#9892) ESTIMATED CHANGES Modified Mathlib/Data/Int/Order/Basic.lean +/- theorem Int.abs_lt_one_iff + theorem Int.le_add_one_iff Modified Mathlib/Data/Nat/Order/Basic.lean +/- theorem Nat.le_add_one_iff 2024-01-26 08:58:29 4529fc1 chore(MetricSpace.PseudoMetric): make `PseudoEMetricSpace.toPseudoMetricSpaceOfDist` reducible (#10012) `PseudoEMetricSpace.toPseudoMetricSpaceOfDist` is used in instances so needs to be reducible for unification. ESTIMATED CHANGES Modified Mathlib/Topology/MetricSpace/PseudoMetric.lean 2024-01-26 08:58:28 f2b0b27 feat(GroupTheory/GroupAction/Basic): Condition for `swap` to stabilize a set (#9945) ESTIMATED CHANGES Modified Mathlib/GroupTheory/GroupAction/Basic.lean + theorem Equiv.swap_mem_stabilizer 2024-01-26 08:58:27 a268d11 feat: one lemma about LocallyFinite (#9813) From sphere-eversion; I'm just submitting this upstream. ESTIMATED CHANGES Modified Mathlib/Topology/LocallyFinite.lean + theorem LocallyFinite.eventually_subset 2024-01-26 08:27:37 19ab970 feat: add PartialHomeomorph.extend_target' (#9977) Inspired by sphere-eversion; similar to `PartialEquiv.image_source_eq_target`. ESTIMATED CHANGES Modified Mathlib/Geometry/Manifold/SmoothManifoldWithCorners.lean + theorem PartialHomeomorph.extend_target' 2024-01-26 07:29:47 0500719 feat: Int.{even_sub_one,even_mul_pred_self} (#9859) Also rename `Nat.even_mul_self_pred` for consistency with `Nat.even_mul_succ_self`. ESTIMATED CHANGES Modified Mathlib/Algebra/GroupPower/NegOnePow.lean Modified Mathlib/Data/Int/Parity.lean + theorem Int.even_mul_pred_self + theorem Int.even_sub_one Modified Mathlib/Data/Nat/Parity.lean + theorem Nat.even_mul_pred_self - theorem Nat.even_mul_self_pred Modified Mathlib/RingTheory/Discriminant.lean 2024-01-26 04:28:56 970a1ab feat: the minimal polynomial is a generator of the annihilator ideal (#10008) More precisely, the goal of these changes is to make the following work: ```lean import Mathlib.FieldTheory.Minpoly.Field open Module Polynomial example {K V : Type*} [Field K] [AddCommGroup V] [Module K V] (f : End K V) : (⊤ : Submodule K[X] <| AEval K V f).annihilator = K[X] ∙ minpoly K f := by simp ``` ESTIMATED CHANGES Modified Mathlib/Data/Polynomial/Module.lean + theorem Module.AEval.annihilator_top_eq_ker_aeval Modified Mathlib/FieldTheory/Minpoly/Field.lean + theorem minpoly.dvd_iff + theorem minpoly.ker_aeval_eq_span_minpoly 2024-01-26 03:44:15 20c7b4b chore(Topology/Basic): re-use variables; rename a : X to x : X (#9993) ESTIMATED CHANGES Modified Mathlib/Analysis/Asymptotics/AsymptoticEquivalent.lean Modified Mathlib/Analysis/Calculus/FDeriv/Basic.lean Modified Mathlib/Analysis/Fourier/RiemannLebesgueLemma.lean Modified Mathlib/Analysis/InnerProductSpace/Projection.lean Modified Mathlib/Analysis/NormedSpace/Multilinear/Basic.lean Modified Mathlib/Analysis/SpecialFunctions/Pow/Asymptotics.lean Modified Mathlib/Topology/Algebra/Algebra.lean Modified Mathlib/Topology/Algebra/Order/LiminfLimsup.lean Modified Mathlib/Topology/Bases.lean Modified Mathlib/Topology/Basic.lean +/- theorem AccPt.mono +/- theorem ClusterPt.map +/- theorem ClusterPt.mono +/- theorem ClusterPt.neBot +/- theorem ClusterPt.of_inf_left +/- theorem ClusterPt.of_inf_right +/- theorem ClusterPt.of_le_nhds' +/- theorem ClusterPt.of_le_nhds +/- theorem ClusterPt.of_nhds_le +/- theorem Continuous.closure_preimage_subset +/- theorem Continuous.comp' +/- theorem Continuous.comp +/- theorem Continuous.congr +/- theorem Continuous.continuousAt +/- theorem Continuous.frontier_preimage_subset +/- theorem Continuous.range_subset_closure_image_dense +/- theorem Continuous.tendsto' +/- theorem Continuous.tendsto +/- theorem ContinuousAt.comp_of_eq +/- theorem ContinuousAt.congr +/- theorem ContinuousAt.iterate +/- theorem ContinuousAt.preimage_mem_nhds +/- theorem ContinuousAt.tendsto +/- theorem Dense.denseRange_val +/- theorem Dense.exists_mem_open +/- theorem Dense.inter_nhds_nonempty +/- theorem Dense.inter_of_isOpen_left +/- theorem Dense.inter_of_isOpen_right +/- theorem Dense.interior_compl +/- theorem Dense.mono +/- theorem Dense.nonempty +/- theorem Dense.nonempty_iff +/- theorem Dense.open_subset_closure_inter +/- theorem DenseRange.dense_image +/- theorem DenseRange.dense_of_mapsTo +/- theorem DenseRange.mem_nhds +/- def DenseRange.some +/- theorem DenseRange.subset_closure_image_preimage_of_isOpen +/- theorem Disjoint.closure_left +/- theorem Disjoint.closure_right +/- theorem Filter.Eventually.eventually_nhds +/- theorem Filter.Eventually.self_of_nhds +/- theorem Filter.EventuallyEq.continuousAt +/- theorem Filter.EventuallyEq.eq_of_nhds +/- theorem Filter.EventuallyEq.eventuallyEq_nhds +/- theorem Filter.EventuallyEq.tendsto +/- theorem Filter.EventuallyLE.eventuallyLE_nhds +/- theorem Filter.Frequently.mem_of_closed +/- theorem Filter.HasBasis.clusterPt_iff +/- theorem IsClosed.closure_eq +/- theorem IsClosed.closure_subset +/- theorem IsClosed.closure_subset_iff +/- theorem IsClosed.compl_mem_nhds +/- theorem IsClosed.frontier_eq +/- theorem IsClosed.interior_union_left +/- theorem IsClosed.interior_union_right +/- theorem IsClosed.mem_iff_closure_subset +/- theorem IsClosed.mem_of_frequently_of_tendsto +/- theorem IsClosed.mem_of_tendsto +/- theorem IsClosed.preimage +/- theorem IsClosed.sdiff +/- theorem IsOpen.and +/- theorem IsOpen.closure_inter +/- theorem IsOpen.eventually_mem +/- theorem IsOpen.frontier_eq +/- theorem IsOpen.inter_closure +/- theorem IsOpen.inter_frontier_eq +/- theorem IsOpen.interior_eq +/- theorem IsOpen.mem_nhds +/- theorem IsOpen.preimage +/- theorem IsOpen.sdiff +/- theorem IsOpen.subset_interior_iff +/- theorem Set.MapsTo.closure_left +/- theorem Ultrafilter.clusterPt_iff +/- theorem closure_closure +/- theorem closure_compl +/- theorem closure_diff +/- theorem closure_eq_cluster_pts +/- theorem closure_eq_compl_interior_compl +/- theorem closure_eq_iff_isClosed +/- theorem closure_image_closure +/- theorem closure_inter_open_nonempty_iff +/- theorem closure_minimal +/- theorem closure_mono +/- theorem closure_nonempty_iff +/- theorem closure_subset_iff_isClosed +/- theorem closure_subset_preimage_closure_image +/- theorem closure_union +/- theorem clusterPt_iff +/- theorem clusterPt_iff_forall_mem_closure +/- theorem clusterPt_iff_lift'_closure' +/- theorem clusterPt_iff_lift'_closure +/- theorem clusterPt_iff_not_disjoint +/- theorem clusterPt_lift'_closure_iff +/- theorem clusterPt_principal_iff +/- theorem clusterPt_principal_iff_frequently +/- theorem compl_frontier_eq_union_interior +/- theorem continuousAt_congr +/- theorem continuousAt_const +/- theorem continuousAt_def +/- theorem continuousAt_id +/- theorem continuousAt_iff_ultrafilter +/- theorem continuous_congr +/- theorem continuous_const +/- theorem continuous_def +/- theorem continuous_iff_continuousAt +/- theorem continuous_iff_isClosed +/- theorem continuous_iff_ultrafilter +/- theorem continuous_of_const +/- theorem dense_closure +/- theorem dense_compl_singleton_iff_not_open +/- theorem dense_iff_closure_eq +/- theorem dense_iff_inter_open +/- theorem diff_subset_closure_iff +/- theorem eventuallyEq_zero_nhds +/- theorem eventually_eventuallyEq_nhds +/- theorem eventually_eventuallyLE_nhds +/- theorem eventually_eventually_nhds +/- theorem eventually_mem_nhds +/- theorem eventually_nhds_iff +/- theorem exists_open_set_nhds' +/- theorem exists_open_set_nhds +/- theorem frequently_frequently_nhds +/- theorem frontier_closure_subset +/- theorem frontier_eq_closure_inter_closure +/- theorem frontier_eq_inter_compl_interior +/- theorem frontier_interior_subset +/- theorem frontier_subset_closure +/- theorem image_closure_subset_closure_image +/- theorem interior_compl +/- theorem interior_eq_empty_iff_dense_compl +/- theorem interior_eq_iff_isOpen +/- theorem interior_eq_nhds' +/- theorem interior_eq_nhds +/- theorem interior_eq_univ +/- theorem interior_frontier +/- theorem interior_inter +/- theorem interior_interior +/- theorem interior_maximal +/- theorem interior_mem_nhds +/- theorem interior_mono +/- theorem interior_subset +/- theorem interior_subset_closure +/- theorem interior_union_isClosed_of_interior_empty +/- theorem isClosed_closure +/- theorem isClosed_const +/- theorem isClosed_frontier +/- theorem isClosed_iff_clusterPt +/- theorem isClosed_iff_forall_filter +/- theorem isClosed_iff_frequently +/- theorem isClosed_iff_nhds +/- theorem isClosed_of_closure_subset +/- theorem isOpen_compl_iff +/- theorem isOpen_const +/- theorem isOpen_fold +/- theorem isOpen_iff_eventually +/- theorem isOpen_iff_mem_nhds +/- theorem isOpen_iff_nhds +/- theorem isOpen_iff_ultrafilter +/- theorem isOpen_interior +/- theorem isOpen_mk +/- theorem isOpen_singleton_iff_nhds_eq_pure +/- theorem isOpen_singleton_iff_punctured_nhds +/- theorem le_nhds_iff +/- theorem le_nhds_lim +/- theorem mapClusterPt_of_comp +/- theorem map_mem_closure +/- theorem map_nhds +/- theorem mem_closure_iff +/- theorem mem_closure_iff_clusterPt +/- theorem mem_closure_iff_comap_neBot +/- theorem mem_closure_iff_frequently +/- theorem mem_closure_iff_nhds' +/- theorem mem_closure_iff_nhds +/- theorem mem_closure_iff_nhdsWithin_neBot +/- theorem mem_closure_iff_nhds_basis' +/- theorem mem_closure_iff_nhds_basis +/- theorem mem_closure_iff_nhds_neBot +/- theorem mem_closure_iff_ultrafilter +/- theorem mem_closure_image +/- theorem mem_closure_of_frequently_of_tendsto +/- theorem mem_closure_of_mem_closure_union +/- theorem mem_closure_of_tendsto +/- theorem mem_interior +/- theorem mem_interior_iff_mem_nhds +/- theorem mem_nhds_iff +/- theorem mem_of_mem_nhds +/- def nhdsWithin +/- theorem nhds_basis_closeds +/- theorem nhds_basis_opens' +/- theorem nhds_basis_opens +/- theorem nhds_bind_nhds +/- theorem nhds_def' +/- theorem nhds_le_of_le +/- theorem not_mem_closure_iff_nhdsWithin_eq_bot +/- theorem not_mem_of_not_mem_closure +/- theorem preimage_interior_subset_interior_preimage +/- theorem subset_closure +/- theorem subset_interior_iff +/- theorem subset_interior_iff_isOpen +/- theorem subset_interior_iff_nhds +/- theorem tendsto_atBot_of_eventually_const +/- theorem tendsto_atTop_nhds +/- theorem tendsto_atTop_of_eventually_const +/- theorem tendsto_const_nhds +/- theorem tendsto_inf_principal_nhds_iff_of_forall_eq +/- theorem tendsto_nhds +/- theorem tendsto_nhds_limUnder +/- theorem tendsto_nhds_of_eventually_eq Modified Mathlib/Topology/Category/Profinite/Nobeling.lean Modified Mathlib/Topology/MetricSpace/HausdorffDistance.lean Modified Mathlib/Topology/Order.lean Modified Mathlib/Topology/UniformSpace/Basic.lean Modified Mathlib/Topology/UniformSpace/CompactConvergence.lean 2024-01-26 03:03:09 e3b6818 fix: `Clm` -> `CLM`, `Cle` -> `CLE` (#10018) Rename - `Complex.equivRealProdClm` → `Complex.equivRealProdCLM`; - [ ] TODO: should this one use `CLE`? - `Complex.reClm` → `Complex.reCLM`; - `Complex.imClm` → `Complex.imCLM`; - `Complex.conjLie` → `Complex.conjLIE`; - `Complex.conjCle` → `Complex.conjCLE`; - `Complex.ofRealLi` → `Complex.ofRealLI`; - `Complex.ofRealClm` → `Complex.ofRealCLM`; - `fderivInnerClm` → `fderivInnerCLM`; - `LinearPMap.adjointDomainMkClm` → `LinearPMap.adjointDomainMkCLM`; - `LinearPMap.adjointDomainMkClmExtend` → `LinearPMap.adjointDomainMkCLMExtend`; - `IsROrC.reClm` → `IsROrC.reCLM`; - `IsROrC.imClm` → `IsROrC.imCLM`; - `IsROrC.conjLie` → `IsROrC.conjLIE`; - `IsROrC.conjCle` → `IsROrC.conjCLE`; - `IsROrC.ofRealLi` → `IsROrC.ofRealLI`; - `IsROrC.ofRealClm` → `IsROrC.ofRealCLM`; - `MeasureTheory.condexpL1Clm` → `MeasureTheory.condexpL1CLM`; - `algebraMapClm` → `algebraMapCLM`; - `WeakDual.CharacterSpace.toClm` → `WeakDual.CharacterSpace.toCLM`; - `BoundedContinuousFunction.evalClm` → `BoundedContinuousFunction.evalCLM`; - `ContinuousMap.evalClm` → `ContinuousMap.evalCLM`; - `TrivSqZeroExt.fstClm` → `TrivSqZeroExt.fstClm`; - `TrivSqZeroExt.sndClm` → `TrivSqZeroExt.sndCLM`; - `TrivSqZeroExt.inlClm` → `TrivSqZeroExt.inlCLM`; - `TrivSqZeroExt.inrClm` → `TrivSqZeroExt.inrCLM` and related theorems. ESTIMATED CHANGES Modified Counterexamples/Phillips.lean + theorem Counterexample.Phillips1940.continuousPart_evalCLM_eq_zero - theorem Counterexample.Phillips1940.continuousPart_evalClm_eq_zero Modified Mathlib/Analysis/Calculus/Deriv/Mul.lean Modified Mathlib/Analysis/Calculus/FDeriv/Mul.lean Modified Mathlib/Analysis/Complex/Basic.lean + def Complex.conjCLE + theorem Complex.conjCLE_apply + theorem Complex.conjCLE_coe - def Complex.conjCle - theorem Complex.conjCle_apply - theorem Complex.conjCle_coe + def Complex.conjLIE + theorem Complex.conjLIE_apply + theorem Complex.conjLIE_symm - def Complex.conjLie - theorem Complex.conjLie_apply - theorem Complex.conjLie_symm + def Complex.equivRealProdCLM + theorem Complex.equivRealProdCLM_symm_apply - def Complex.equivRealProdClm - theorem Complex.equivRealProdClm_symm_apply + def Complex.imCLM + theorem Complex.imCLM_apply + theorem Complex.imCLM_coe - def Complex.imClm - theorem Complex.imClm_apply - theorem Complex.imClm_coe + def Complex.ofRealCLM + theorem Complex.ofRealCLM_apply + theorem Complex.ofRealCLM_coe - def Complex.ofRealClm - theorem Complex.ofRealClm_apply - theorem Complex.ofRealClm_coe + def Complex.ofRealLI - def Complex.ofRealLi + def Complex.reCLM + theorem Complex.reCLM_apply + theorem Complex.reCLM_coe - def Complex.reClm - theorem Complex.reClm_apply - theorem Complex.reClm_coe Modified Mathlib/Analysis/Complex/CauchyIntegral.lean Modified Mathlib/Analysis/Complex/Conformal.lean +/- theorem isConformalMap_conj Modified Mathlib/Analysis/Complex/Isometry.lean + theorem rotation_ne_conjLIE - theorem rotation_ne_conjLie Modified Mathlib/Analysis/Complex/OperatorNorm.lean + theorem Complex.conjCLE_nnorm + theorem Complex.conjCLE_norm - theorem Complex.conjCle_nnorm - theorem Complex.conjCle_norm + theorem Complex.det_conjLIE - theorem Complex.det_conjLie + theorem Complex.imCLM_nnnorm + theorem Complex.imCLM_norm - theorem Complex.imClm_nnnorm - theorem Complex.imClm_norm + theorem Complex.linearEquiv_det_conjLIE - theorem Complex.linearEquiv_det_conjLie + theorem Complex.ofRealCLM_nnnorm + theorem Complex.ofRealCLM_norm - theorem Complex.ofRealClm_nnnorm - theorem Complex.ofRealClm_norm + theorem Complex.reCLM_nnnorm + theorem Complex.reCLM_norm - theorem Complex.reClm_nnnorm - theorem Complex.reClm_norm Modified Mathlib/Analysis/Complex/ReImTopology.lean Modified Mathlib/Analysis/Complex/RealDeriv.lean Modified Mathlib/Analysis/Distribution/SchwartzSpace.lean Modified Mathlib/Analysis/Fourier/AddCircle.lean Modified Mathlib/Analysis/InnerProductSpace/Adjoint.lean + theorem LinearMap.adjoint_eq_toCLM_adjoint - theorem LinearMap.adjoint_eq_toClm_adjoint Modified Mathlib/Analysis/InnerProductSpace/Basic.lean Modified Mathlib/Analysis/InnerProductSpace/Calculus.lean + def fderivInnerCLM + theorem fderivInnerCLM_apply - def fderivInnerClm - theorem fderivInnerClm_apply Modified Mathlib/Analysis/InnerProductSpace/LinearPMap.lean + def LinearPMap.adjointDomainMkCLM + def LinearPMap.adjointDomainMkCLMExtend + theorem LinearPMap.adjointDomainMkCLMExtend_apply + theorem LinearPMap.adjointDomainMkCLM_apply - def LinearPMap.adjointDomainMkClm - def LinearPMap.adjointDomainMkClmExtend - theorem LinearPMap.adjointDomainMkClmExtend_apply - theorem LinearPMap.adjointDomainMkClm_apply Modified Mathlib/Analysis/InnerProductSpace/Rayleigh.lean Modified Mathlib/Analysis/InnerProductSpace/TwoDim.lean Modified Mathlib/Analysis/InnerProductSpace/l2Space.lean Modified Mathlib/Analysis/NormedSpace/HahnBanach/Extension.lean Modified Mathlib/Analysis/NormedSpace/Star/Matrix.lean + theorem Matrix.coe_toEuclideanCLM_eq_toEuclideanLin - theorem Matrix.coe_toEuclideanClm_eq_toEuclideanLin +/- theorem Matrix.cstar_nnnorm_def +/- theorem Matrix.cstar_norm_def + theorem Matrix.piLp_equiv_toEuclideanCLM - theorem Matrix.piLp_equiv_toEuclideanClm + def Matrix.toEuclideanCLM + theorem Matrix.toEuclideanCLM_piLp_equiv_symm - def Matrix.toEuclideanClm - theorem Matrix.toEuclideanClm_piLp_equiv_symm Modified Mathlib/Analysis/SpecialFunctions/PolarCoord.lean Modified Mathlib/Data/IsROrC/Basic.lean + theorem IsROrC.conjCLE_apply + theorem IsROrC.conjCLE_coe - theorem IsROrC.conjCle_apply - theorem IsROrC.conjCle_coe + theorem IsROrC.conjLIE_apply - theorem IsROrC.conjLie_apply + theorem IsROrC.imCLM_apply + theorem IsROrC.imCLM_coe - theorem IsROrC.imClm_apply - theorem IsROrC.imClm_coe + theorem IsROrC.ofRealCLM_apply + theorem IsROrC.ofRealCLM_coe - theorem IsROrC.ofRealClm_apply - theorem IsROrC.ofRealClm_coe + theorem IsROrC.ofRealLI_apply - theorem IsROrC.ofRealLi_apply + theorem IsROrC.reCLM_apply + theorem IsROrC.reCLM_coe - theorem IsROrC.reClm_apply - theorem IsROrC.reClm_coe Modified Mathlib/Data/IsROrC/Lemmas.lean + theorem IsROrC.conjCLE_norm - theorem IsROrC.conjCle_norm + theorem IsROrC.ofRealCLM_norm - theorem IsROrC.ofRealClm_norm + theorem IsROrC.reCLM_norm - theorem IsROrC.reClm_norm Modified Mathlib/Geometry/Manifold/Instances/Sphere.lean Modified Mathlib/MeasureTheory/Function/ConditionalExpectation/Basic.lean + theorem MeasureTheory.condexp_ae_eq_condexpL1CLM - theorem MeasureTheory.condexp_ae_eq_condexpL1Clm Modified Mathlib/MeasureTheory/Function/ConditionalExpectation/CondexpL1.lean + theorem MeasureTheory.aestronglyMeasurable'_condexpL1CLM - theorem MeasureTheory.aestronglyMeasurable'_condexpL1Clm + def MeasureTheory.condexpL1CLM + theorem MeasureTheory.condexpL1CLM_indicatorConst + theorem MeasureTheory.condexpL1CLM_indicatorConstLp + theorem MeasureTheory.condexpL1CLM_lpMeas + theorem MeasureTheory.condexpL1CLM_of_aestronglyMeasurable' + theorem MeasureTheory.condexpL1CLM_smul - def MeasureTheory.condexpL1Clm - theorem MeasureTheory.condexpL1Clm_indicatorConst - theorem MeasureTheory.condexpL1Clm_indicatorConstLp - theorem MeasureTheory.condexpL1Clm_lpMeas - theorem MeasureTheory.condexpL1Clm_of_aestronglyMeasurable' - theorem MeasureTheory.condexpL1Clm_smul +/- theorem MeasureTheory.condexpL1_eq + theorem MeasureTheory.set_integral_condexpL1CLM + theorem MeasureTheory.set_integral_condexpL1CLM_of_measure_ne_top - theorem MeasureTheory.set_integral_condexpL1Clm - theorem MeasureTheory.set_integral_condexpL1Clm_of_measure_ne_top Modified Mathlib/MeasureTheory/Function/LpSpace.lean Modified Mathlib/MeasureTheory/Integral/CircleIntegral.lean Modified Mathlib/MeasureTheory/Integral/SetIntegral.lean Modified Mathlib/MeasureTheory/Measure/Complex.lean Modified Mathlib/MeasureTheory/Measure/FiniteMeasure.lean Modified Mathlib/MeasureTheory/Measure/Lebesgue/Complex.lean Modified Mathlib/Topology/Algebra/Algebra.lean + def algebraMapCLM + theorem algebraMapCLM_coe + theorem algebraMapCLM_toLinearMap - def algebraMapClm - theorem algebraMapClm_coe - theorem algebraMapClm_toLinearMap Modified Mathlib/Topology/Algebra/Module/CharacterSpace.lean + theorem WeakDual.CharacterSpace.coe_toCLM - theorem WeakDual.CharacterSpace.coe_toClm + def WeakDual.CharacterSpace.toCLM - def WeakDual.CharacterSpace.toClm Modified Mathlib/Topology/ContinuousFunction/Bounded.lean + def BoundedContinuousFunction.evalCLM + theorem BoundedContinuousFunction.evalCLM_apply - def BoundedContinuousFunction.evalClm - theorem BoundedContinuousFunction.evalClm_apply Modified Mathlib/Topology/ContinuousFunction/Compact.lean + def ContinuousMap.evalCLM - def ContinuousMap.evalClm Modified Mathlib/Topology/ContinuousFunction/Ideals.lean Modified Mathlib/Topology/ContinuousFunction/StoneWeierstrass.lean Modified Mathlib/Topology/Instances/TrivSqZeroExt.lean + def TrivSqZeroExt.fstCLM - def TrivSqZeroExt.fstClm + def TrivSqZeroExt.inlCLM - def TrivSqZeroExt.inlClm + def TrivSqZeroExt.inrCLM - def TrivSqZeroExt.inrClm + def TrivSqZeroExt.sndCLM - def TrivSqZeroExt.sndClm 2024-01-26 00:49:24 66439f5 chore(UniformSpace.Basic): make `UniformSpace.comap` reducible (#10010) `UniformSpace.comap` is used in instance construction so needs to be reducible for unification purposes. ESTIMATED CHANGES Modified Mathlib/Topology/UniformSpace/Basic.lean 2024-01-25 23:16:34 79a9e0e refactor(Topology/Clopen): order of open and closed (#9957) ESTIMATED CHANGES Modified Counterexamples/SorgenfreyLine.lean Modified Mathlib/FieldTheory/KrullTopology.lean Modified Mathlib/Topology/AlexandrovDiscrete.lean Modified Mathlib/Topology/Algebra/OpenSubgroup.lean Modified Mathlib/Topology/Category/Profinite/CofilteredLimit.lean Modified Mathlib/Topology/Category/Stonean/Limits.lean Modified Mathlib/Topology/Clopen.lean +/- theorem isClopen_empty +/- theorem isClopen_univ Modified Mathlib/Topology/ClopenBox.lean Modified Mathlib/Topology/CompactOpen.lean Modified Mathlib/Topology/Connected/Basic.lean Modified Mathlib/Topology/Connected/LocallyConnected.lean Modified Mathlib/Topology/Connected/PathConnected.lean Modified Mathlib/Topology/Connected/TotallyDisconnected.lean Modified Mathlib/Topology/DiscreteQuotient.lean Modified Mathlib/Topology/LocallyConstant/Basic.lean Modified Mathlib/Topology/SeparatedMap.lean Modified Mathlib/Topology/Separation.lean Modified Mathlib/Topology/Sets/Compacts.lean Modified Mathlib/Topology/StoneCech.lean 2024-01-25 21:01:58 f9daa98 chore(Data/ENNReal/Basic): split file (#9869) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Data/ENNReal/Basic.lean - theorem ENNReal.Ioo_zero_top_eq_iUnion_Ico_zpow - theorem ENNReal.addLECancellable_iff_ne - theorem ENNReal.add_eq_top - theorem ENNReal.add_iInf - theorem ENNReal.add_left_inj - theorem ENNReal.add_lt_add - theorem ENNReal.add_lt_top - theorem ENNReal.add_ne_top - theorem ENNReal.add_right_inj - theorem ENNReal.add_thirds - theorem ENNReal.cancel_coe - theorem ENNReal.cancel_of_lt' - theorem ENNReal.cancel_of_lt - theorem ENNReal.cancel_of_ne - theorem ENNReal.coe_div - theorem ENNReal.coe_finset_prod - theorem ENNReal.coe_finset_sum - theorem ENNReal.coe_inv - theorem ENNReal.coe_inv_le - theorem ENNReal.coe_inv_two - theorem ENNReal.coe_pow - theorem ENNReal.coe_smul - theorem ENNReal.coe_sub - theorem ENNReal.coe_zpow - theorem ENNReal.div_eq_one_iff - theorem ENNReal.div_eq_top - theorem ENNReal.div_eq_zero_iff - theorem ENNReal.div_le_of_le_mul' - theorem ENNReal.div_le_of_le_mul - theorem ENNReal.div_lt_of_lt_mul' - theorem ENNReal.div_lt_of_lt_mul - theorem ENNReal.div_lt_top - theorem ENNReal.div_pos_iff - theorem ENNReal.div_top - theorem ENNReal.div_zero - theorem ENNReal.eq_div_iff - theorem ENNReal.eq_top_of_forall_nnreal_le - theorem ENNReal.exists_inv_nat_lt - theorem ENNReal.exists_inv_two_pow_lt - theorem ENNReal.exists_le_of_sum_le - theorem ENNReal.exists_mem_Ico_zpow - theorem ENNReal.exists_mem_Ioc_zpow - theorem ENNReal.exists_nat_mul_gt - theorem ENNReal.exists_nat_pos_inv_mul_lt - theorem ENNReal.exists_nat_pos_mul_gt - theorem ENNReal.exists_nnreal_pos_mul_lt - theorem ENNReal.iInf_add - theorem ENNReal.iInf_add_iInf - theorem ENNReal.iInf_mul - theorem ENNReal.iInf_mul_of_ne - theorem ENNReal.iInf_sum - theorem ENNReal.iSup_coe_nat - theorem ENNReal.iSup_eq_zero - theorem ENNReal.iSup_sub - theorem ENNReal.iSup_zero_eq_zero - theorem ENNReal.inv_eq_top - theorem ENNReal.inv_le_iff_inv_le - theorem ENNReal.inv_le_iff_le_mul - theorem ENNReal.inv_lt_iff_inv_lt - theorem ENNReal.inv_lt_top - theorem ENNReal.inv_ne_top - theorem ENNReal.inv_strictAnti - theorem ENNReal.inv_three_add_inv_three - theorem ENNReal.inv_top - theorem ENNReal.inv_two_add_inv_two - theorem ENNReal.inv_zero - theorem ENNReal.le_inv_iff_le_inv - theorem ENNReal.le_inv_iff_mul_le - theorem ENNReal.le_ofReal_iff_toReal_le - theorem ENNReal.le_of_forall_nnreal_lt - theorem ENNReal.le_of_forall_pos_nnreal_lt - theorem ENNReal.le_sub_of_add_le_left - theorem ENNReal.le_sub_of_add_le_right - theorem ENNReal.le_toReal_sub - theorem ENNReal.lt_add_right - theorem ENNReal.lt_inv_iff_lt_inv - theorem ENNReal.lt_ofReal_iff_toReal_lt - theorem ENNReal.lt_top_of_mul_ne_top_left - theorem ENNReal.lt_top_of_mul_ne_top_right - theorem ENNReal.lt_top_of_sum_ne_top - theorem ENNReal.max_mul - theorem ENNReal.mem_Iio_self_add - theorem ENNReal.mem_Ioo_self_sub_add - theorem ENNReal.monotone_zpow - theorem ENNReal.mul_div_le - theorem ENNReal.mul_eq_mul_left - theorem ENNReal.mul_eq_mul_right - theorem ENNReal.mul_eq_top - theorem ENNReal.mul_iInf - theorem ENNReal.mul_iInf_of_ne - theorem ENNReal.mul_le_iff_le_inv - theorem ENNReal.mul_le_mul_left - theorem ENNReal.mul_le_mul_right - theorem ENNReal.mul_le_of_le_div' - theorem ENNReal.mul_le_of_le_div - theorem ENNReal.mul_left_mono - theorem ENNReal.mul_left_strictMono - theorem ENNReal.mul_lt_mul - theorem ENNReal.mul_lt_mul_left - theorem ENNReal.mul_lt_mul_right - theorem ENNReal.mul_lt_of_lt_div' - theorem ENNReal.mul_lt_of_lt_div - theorem ENNReal.mul_lt_top - theorem ENNReal.mul_lt_top_iff - theorem ENNReal.mul_max - theorem ENNReal.mul_ne_top - theorem ENNReal.mul_pos - theorem ENNReal.mul_pos_iff - theorem ENNReal.mul_right_mono - theorem ENNReal.mul_self_lt_top_iff - theorem ENNReal.mul_sub - theorem ENNReal.mul_top' - theorem ENNReal.mul_top - theorem ENNReal.nat_cast_le_ofReal - theorem ENNReal.nat_cast_lt_ofReal - theorem ENNReal.nat_cast_sub - theorem ENNReal.not_lt_top - theorem ENNReal.not_lt_zero - theorem ENNReal.ofNat_le_ofReal - theorem ENNReal.ofNat_lt_ofReal - theorem ENNReal.ofReal_add - theorem ENNReal.ofReal_add_le - theorem ENNReal.ofReal_div_of_pos - theorem ENNReal.ofReal_eq_nat_cast - theorem ENNReal.ofReal_eq_ofNat - theorem ENNReal.ofReal_eq_ofReal_iff - theorem ENNReal.ofReal_eq_one - theorem ENNReal.ofReal_eq_zero - theorem ENNReal.ofReal_inv_of_pos - theorem ENNReal.ofReal_le_iff_le_toReal - theorem ENNReal.ofReal_le_nat_cast - theorem ENNReal.ofReal_le_ofNat - theorem ENNReal.ofReal_le_ofReal - theorem ENNReal.ofReal_le_ofReal_iff' - theorem ENNReal.ofReal_le_ofReal_iff - theorem ENNReal.ofReal_le_of_le_toReal - theorem ENNReal.ofReal_le_one - theorem ENNReal.ofReal_lt_coe_iff - theorem ENNReal.ofReal_lt_iff_lt_toReal - theorem ENNReal.ofReal_lt_nat_cast - theorem ENNReal.ofReal_lt_ofNat - theorem ENNReal.ofReal_lt_ofReal_iff' - theorem ENNReal.ofReal_lt_ofReal_iff - theorem ENNReal.ofReal_lt_ofReal_iff_of_nonneg - theorem ENNReal.ofReal_lt_one - theorem ENNReal.ofReal_mul' - theorem ENNReal.ofReal_mul - theorem ENNReal.ofReal_nsmul - theorem ENNReal.ofReal_pos - theorem ENNReal.ofReal_pow - theorem ENNReal.ofReal_prod_of_nonneg - theorem ENNReal.ofReal_sub - theorem ENNReal.ofReal_sum_of_nonneg - theorem ENNReal.one_le_ofReal - theorem ENNReal.one_lt_ofReal - theorem ENNReal.one_sub_inv_two - def ENNReal.orderIsoIicCoe - theorem ENNReal.orderIsoIicCoe_symm_apply_coe - def ENNReal.orderIsoIicOneBirational - theorem ENNReal.orderIsoIicOneBirational_symm_apply - def ENNReal.orderIsoUnitIntervalBirational - theorem ENNReal.orderIsoUnitIntervalBirational_apply_coe - theorem ENNReal.pow_eq_top - theorem ENNReal.pow_eq_top_iff - theorem ENNReal.pow_lt_top - theorem ENNReal.pow_ne_top - theorem ENNReal.pow_strictMono - theorem ENNReal.prod_lt_top - theorem ENNReal.sInf_add - theorem ENNReal.smul_def - theorem ENNReal.smul_toNNReal - theorem ENNReal.smul_top - theorem ENNReal.sub_eq_of_add_eq - theorem ENNReal.sub_eq_sInf - theorem ENNReal.sub_eq_top_iff - theorem ENNReal.sub_half - theorem ENNReal.sub_iInf - theorem ENNReal.sub_lt_of_sub_lt - theorem ENNReal.sub_mul - theorem ENNReal.sub_ne_top - theorem ENNReal.sub_right_inj - theorem ENNReal.sub_sub_cancel - theorem ENNReal.sub_top - theorem ENNReal.sum_eq_top_iff - theorem ENNReal.sum_lt_sum_of_nonempty - theorem ENNReal.sum_lt_top - theorem ENNReal.sum_lt_top_iff - theorem ENNReal.sup_eq_zero - def ENNReal.toNNRealHom - theorem ENNReal.toNNReal_add - theorem ENNReal.toNNReal_div - theorem ENNReal.toNNReal_iInf - theorem ENNReal.toNNReal_iSup - theorem ENNReal.toNNReal_inv - theorem ENNReal.toNNReal_le_toNNReal - theorem ENNReal.toNNReal_lt_toNNReal - theorem ENNReal.toNNReal_mono - theorem ENNReal.toNNReal_mul - theorem ENNReal.toNNReal_mul_top - theorem ENNReal.toNNReal_pos - theorem ENNReal.toNNReal_pos_iff - theorem ENNReal.toNNReal_pow - theorem ENNReal.toNNReal_prod - theorem ENNReal.toNNReal_sInf - theorem ENNReal.toNNReal_sSup - theorem ENNReal.toNNReal_strict_mono - theorem ENNReal.toNNReal_sum - theorem ENNReal.toNNReal_top_mul - def ENNReal.toRealHom - theorem ENNReal.toReal_add - theorem ENNReal.toReal_add_le - theorem ENNReal.toReal_div - theorem ENNReal.toReal_eq_toReal - theorem ENNReal.toReal_iInf - theorem ENNReal.toReal_iSup - theorem ENNReal.toReal_inf - theorem ENNReal.toReal_inv - theorem ENNReal.toReal_le_add' - theorem ENNReal.toReal_le_add - theorem ENNReal.toReal_le_of_le_ofReal - theorem ENNReal.toReal_le_toReal - theorem ENNReal.toReal_lt_of_lt_ofReal - theorem ENNReal.toReal_lt_toReal - theorem ENNReal.toReal_max - theorem ENNReal.toReal_min - theorem ENNReal.toReal_mono' - theorem ENNReal.toReal_mono - theorem ENNReal.toReal_mul - theorem ENNReal.toReal_mul_top - theorem ENNReal.toReal_nsmul - theorem ENNReal.toReal_ofReal_mul - theorem ENNReal.toReal_pos - theorem ENNReal.toReal_pos_iff - theorem ENNReal.toReal_pos_iff_ne_top - theorem ENNReal.toReal_pow - theorem ENNReal.toReal_prod - theorem ENNReal.toReal_sInf - theorem ENNReal.toReal_sSup - theorem ENNReal.toReal_smul - theorem ENNReal.toReal_strict_mono - theorem ENNReal.toReal_sub_of_le - theorem ENNReal.toReal_sum - theorem ENNReal.toReal_sup - theorem ENNReal.toReal_top_mul - theorem ENNReal.top_div - theorem ENNReal.top_div_coe - theorem ENNReal.top_div_of_lt_top - theorem ENNReal.top_div_of_ne_top - theorem ENNReal.top_mul' - theorem ENNReal.top_mul - theorem ENNReal.top_mul_top - theorem ENNReal.top_pow - theorem ENNReal.top_sub_coe - theorem ENNReal.zero_eq_ofReal - theorem ENNReal.zpow_le_of_le - theorem ENNReal.zpow_lt_top - theorem ENNReal.zpow_pos - def Mathlib.Meta.Positivity.evalENNRealOfReal - def OrderIso.invENNReal - theorem OrderIso.invENNReal_symm_apply Added Mathlib/Data/ENNReal/Inv.lean + theorem ENNReal.Ioo_zero_top_eq_iUnion_Ico_zpow + theorem ENNReal.add_thirds + theorem ENNReal.coe_div + theorem ENNReal.coe_inv + theorem ENNReal.coe_inv_le + theorem ENNReal.coe_inv_two + theorem ENNReal.coe_zpow + theorem ENNReal.div_eq_one_iff + theorem ENNReal.div_eq_top + theorem ENNReal.div_eq_zero_iff + theorem ENNReal.div_le_of_le_mul' + theorem ENNReal.div_le_of_le_mul + theorem ENNReal.div_lt_of_lt_mul' + theorem ENNReal.div_lt_of_lt_mul + theorem ENNReal.div_lt_top + theorem ENNReal.div_pos_iff + theorem ENNReal.div_top + theorem ENNReal.div_zero + theorem ENNReal.eq_div_iff + theorem ENNReal.eq_top_of_forall_nnreal_le + theorem ENNReal.exists_inv_nat_lt + theorem ENNReal.exists_inv_two_pow_lt + theorem ENNReal.exists_mem_Ico_zpow + theorem ENNReal.exists_mem_Ioc_zpow + theorem ENNReal.exists_nat_mul_gt + theorem ENNReal.exists_nat_pos_inv_mul_lt + theorem ENNReal.exists_nat_pos_mul_gt + theorem ENNReal.exists_nnreal_pos_mul_lt + theorem ENNReal.inv_eq_top + theorem ENNReal.inv_le_iff_inv_le + theorem ENNReal.inv_le_iff_le_mul + theorem ENNReal.inv_lt_iff_inv_lt + theorem ENNReal.inv_lt_top + theorem ENNReal.inv_ne_top + theorem ENNReal.inv_strictAnti + theorem ENNReal.inv_three_add_inv_three + theorem ENNReal.inv_top + theorem ENNReal.inv_two_add_inv_two + theorem ENNReal.inv_zero + theorem ENNReal.le_inv_iff_le_inv + theorem ENNReal.le_inv_iff_mul_le + theorem ENNReal.le_of_forall_nnreal_lt + theorem ENNReal.le_of_forall_pos_nnreal_lt + theorem ENNReal.lt_inv_iff_lt_inv + theorem ENNReal.monotone_zpow + theorem ENNReal.mul_div_le + theorem ENNReal.mul_le_iff_le_inv + theorem ENNReal.mul_le_of_le_div' + theorem ENNReal.mul_le_of_le_div + theorem ENNReal.mul_lt_of_lt_div' + theorem ENNReal.mul_lt_of_lt_div + theorem ENNReal.one_sub_inv_two + def ENNReal.orderIsoIicCoe + theorem ENNReal.orderIsoIicCoe_symm_apply_coe + def ENNReal.orderIsoIicOneBirational + theorem ENNReal.orderIsoIicOneBirational_symm_apply + def ENNReal.orderIsoUnitIntervalBirational + theorem ENNReal.orderIsoUnitIntervalBirational_apply_coe + theorem ENNReal.sub_half + theorem ENNReal.top_div + theorem ENNReal.top_div_coe + theorem ENNReal.top_div_of_lt_top + theorem ENNReal.top_div_of_ne_top + theorem ENNReal.zpow_le_of_le + theorem ENNReal.zpow_lt_top + theorem ENNReal.zpow_pos + def OrderIso.invENNReal + theorem OrderIso.invENNReal_symm_apply Added Mathlib/Data/ENNReal/Operations.lean + theorem ENNReal.addLECancellable_iff_ne + theorem ENNReal.add_eq_top + theorem ENNReal.add_left_inj + theorem ENNReal.add_lt_add + theorem ENNReal.add_lt_top + theorem ENNReal.add_ne_top + theorem ENNReal.add_right_inj + theorem ENNReal.cancel_coe + theorem ENNReal.cancel_of_lt' + theorem ENNReal.cancel_of_lt + theorem ENNReal.cancel_of_ne + theorem ENNReal.coe_finset_prod + theorem ENNReal.coe_finset_sum + theorem ENNReal.coe_pow + theorem ENNReal.coe_smul + theorem ENNReal.coe_sub + theorem ENNReal.exists_le_of_sum_le + theorem ENNReal.le_sub_of_add_le_left + theorem ENNReal.le_sub_of_add_le_right + theorem ENNReal.lt_add_right + theorem ENNReal.lt_top_of_mul_ne_top_left + theorem ENNReal.lt_top_of_mul_ne_top_right + theorem ENNReal.lt_top_of_sum_ne_top + theorem ENNReal.max_mul + theorem ENNReal.mem_Iio_self_add + theorem ENNReal.mem_Ioo_self_sub_add + theorem ENNReal.mul_eq_mul_left + theorem ENNReal.mul_eq_mul_right + theorem ENNReal.mul_eq_top + theorem ENNReal.mul_le_mul_left + theorem ENNReal.mul_le_mul_right + theorem ENNReal.mul_left_mono + theorem ENNReal.mul_left_strictMono + theorem ENNReal.mul_lt_mul + theorem ENNReal.mul_lt_mul_left + theorem ENNReal.mul_lt_mul_right + theorem ENNReal.mul_lt_top + theorem ENNReal.mul_lt_top_iff + theorem ENNReal.mul_max + theorem ENNReal.mul_ne_top + theorem ENNReal.mul_pos + theorem ENNReal.mul_pos_iff + theorem ENNReal.mul_right_mono + theorem ENNReal.mul_self_lt_top_iff + theorem ENNReal.mul_sub + theorem ENNReal.mul_top' + theorem ENNReal.mul_top + theorem ENNReal.nat_cast_sub + theorem ENNReal.not_lt_top + theorem ENNReal.not_lt_zero + theorem ENNReal.ofReal_sum_of_nonneg + theorem ENNReal.pow_eq_top + theorem ENNReal.pow_eq_top_iff + theorem ENNReal.pow_lt_top + theorem ENNReal.pow_ne_top + theorem ENNReal.pow_strictMono + theorem ENNReal.prod_lt_top + theorem ENNReal.smul_def + theorem ENNReal.smul_top + theorem ENNReal.sub_eq_of_add_eq + theorem ENNReal.sub_eq_sInf + theorem ENNReal.sub_eq_top_iff + theorem ENNReal.sub_lt_of_sub_lt + theorem ENNReal.sub_mul + theorem ENNReal.sub_ne_top + theorem ENNReal.sub_right_inj + theorem ENNReal.sub_sub_cancel + theorem ENNReal.sub_top + theorem ENNReal.sum_eq_top_iff + theorem ENNReal.sum_lt_sum_of_nonempty + theorem ENNReal.sum_lt_top + theorem ENNReal.sum_lt_top_iff + theorem ENNReal.toNNReal_add + theorem ENNReal.toNNReal_sum + theorem ENNReal.toReal_sum + theorem ENNReal.top_mul' + theorem ENNReal.top_mul + theorem ENNReal.top_mul_top + theorem ENNReal.top_pow + theorem ENNReal.top_sub_coe Added Mathlib/Data/ENNReal/Real.lean + theorem ENNReal.add_iInf + theorem ENNReal.iInf_add + theorem ENNReal.iInf_add_iInf + theorem ENNReal.iInf_mul + theorem ENNReal.iInf_mul_of_ne + theorem ENNReal.iInf_sum + theorem ENNReal.iSup_coe_nat + theorem ENNReal.iSup_eq_zero + theorem ENNReal.iSup_sub + theorem ENNReal.iSup_zero_eq_zero + theorem ENNReal.le_ofReal_iff_toReal_le + theorem ENNReal.le_toReal_sub + theorem ENNReal.lt_ofReal_iff_toReal_lt + theorem ENNReal.mul_iInf + theorem ENNReal.mul_iInf_of_ne + theorem ENNReal.nat_cast_le_ofReal + theorem ENNReal.nat_cast_lt_ofReal + theorem ENNReal.ofNat_le_ofReal + theorem ENNReal.ofNat_lt_ofReal + theorem ENNReal.ofReal_add + theorem ENNReal.ofReal_add_le + theorem ENNReal.ofReal_div_of_pos + theorem ENNReal.ofReal_eq_nat_cast + theorem ENNReal.ofReal_eq_ofNat + theorem ENNReal.ofReal_eq_ofReal_iff + theorem ENNReal.ofReal_eq_one + theorem ENNReal.ofReal_eq_zero + theorem ENNReal.ofReal_inv_of_pos + theorem ENNReal.ofReal_le_iff_le_toReal + theorem ENNReal.ofReal_le_nat_cast + theorem ENNReal.ofReal_le_ofNat + theorem ENNReal.ofReal_le_ofReal + theorem ENNReal.ofReal_le_ofReal_iff' + theorem ENNReal.ofReal_le_ofReal_iff + theorem ENNReal.ofReal_le_of_le_toReal + theorem ENNReal.ofReal_le_one + theorem ENNReal.ofReal_lt_coe_iff + theorem ENNReal.ofReal_lt_iff_lt_toReal + theorem ENNReal.ofReal_lt_nat_cast + theorem ENNReal.ofReal_lt_ofNat + theorem ENNReal.ofReal_lt_ofReal_iff' + theorem ENNReal.ofReal_lt_ofReal_iff + theorem ENNReal.ofReal_lt_ofReal_iff_of_nonneg + theorem ENNReal.ofReal_lt_one + theorem ENNReal.ofReal_mul' + theorem ENNReal.ofReal_mul + theorem ENNReal.ofReal_nsmul + theorem ENNReal.ofReal_pos + theorem ENNReal.ofReal_pow + theorem ENNReal.ofReal_prod_of_nonneg + theorem ENNReal.ofReal_sub + theorem ENNReal.one_le_ofReal + theorem ENNReal.one_lt_ofReal + theorem ENNReal.sInf_add + theorem ENNReal.smul_toNNReal + theorem ENNReal.sub_iInf + theorem ENNReal.sup_eq_zero + def ENNReal.toNNRealHom + theorem ENNReal.toNNReal_div + theorem ENNReal.toNNReal_iInf + theorem ENNReal.toNNReal_iSup + theorem ENNReal.toNNReal_inv + theorem ENNReal.toNNReal_le_toNNReal + theorem ENNReal.toNNReal_lt_toNNReal + theorem ENNReal.toNNReal_mono + theorem ENNReal.toNNReal_mul + theorem ENNReal.toNNReal_mul_top + theorem ENNReal.toNNReal_pos + theorem ENNReal.toNNReal_pos_iff + theorem ENNReal.toNNReal_pow + theorem ENNReal.toNNReal_prod + theorem ENNReal.toNNReal_sInf + theorem ENNReal.toNNReal_sSup + theorem ENNReal.toNNReal_strict_mono + theorem ENNReal.toNNReal_top_mul + def ENNReal.toRealHom + theorem ENNReal.toReal_add + theorem ENNReal.toReal_add_le + theorem ENNReal.toReal_div + theorem ENNReal.toReal_eq_toReal + theorem ENNReal.toReal_iInf + theorem ENNReal.toReal_iSup + theorem ENNReal.toReal_inf + theorem ENNReal.toReal_inv + theorem ENNReal.toReal_le_add' + theorem ENNReal.toReal_le_add + theorem ENNReal.toReal_le_of_le_ofReal + theorem ENNReal.toReal_le_toReal + theorem ENNReal.toReal_lt_of_lt_ofReal + theorem ENNReal.toReal_lt_toReal + theorem ENNReal.toReal_max + theorem ENNReal.toReal_min + theorem ENNReal.toReal_mono' + theorem ENNReal.toReal_mono + theorem ENNReal.toReal_mul + theorem ENNReal.toReal_mul_top + theorem ENNReal.toReal_nsmul + theorem ENNReal.toReal_ofReal_mul + theorem ENNReal.toReal_pos + theorem ENNReal.toReal_pos_iff + theorem ENNReal.toReal_pos_iff_ne_top + theorem ENNReal.toReal_pow + theorem ENNReal.toReal_prod + theorem ENNReal.toReal_sInf + theorem ENNReal.toReal_sSup + theorem ENNReal.toReal_smul + theorem ENNReal.toReal_strict_mono + theorem ENNReal.toReal_sub_of_le + theorem ENNReal.toReal_sup + theorem ENNReal.toReal_top_mul + theorem ENNReal.zero_eq_ofReal + def Mathlib.Meta.Positivity.evalENNRealOfReal Modified Mathlib/Data/Real/ConjugateExponents.lean Modified Mathlib/Data/Real/EReal.lean Modified Mathlib/Topology/EMetricSpace/Basic.lean 2024-01-25 20:36:48 0c4ffb6 chore(test/toAdditive): remove commented test (#9971) ESTIMATED CHANGES Modified test/toAdditive.lean 2024-01-25 20:09:13 b3052ec feat: polynomial evaluation via SMul (#9139) We introduce polynomial evaluation using SMul, so polynomials can be evaluated at elements of non-associative semirings. This is most useful in the power-associative context, but power-associativity is not implemented yet. We obtain a generalization of `Polynomial.eval₂`, and in particular of the specializations `Polynomial.aeval` and `Polynomial.leval`. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Data/Polynomial/Smeval.lean + theorem Polynomial.aeval_coe_eq_smeval + theorem Polynomial.eval₂_eq_smeval + theorem Polynomial.leval_coe_eq_smeval + theorem Polynomial.leval_eq_smeval + def Polynomial.smeval.linearMap + theorem Polynomial.smeval.linearMap_apply + theorem Polynomial.smeval_C + theorem Polynomial.smeval_X + theorem Polynomial.smeval_X_pow + theorem Polynomial.smeval_add + theorem Polynomial.smeval_eq_sum + theorem Polynomial.smeval_monomial + theorem Polynomial.smeval_nat_cast + theorem Polynomial.smeval_one + theorem Polynomial.smeval_smul + theorem Polynomial.smeval_zero + def Polynomial.smul_pow 2024-01-25 16:42:45 1f2e586 fix doc for LinearMap.compRight (#9997) minor typo here. An (f : M2 -> M3) induces a linear map from (M->M2) to (M->M3). Not to (M2 -> M3). ESTIMATED CHANGES Modified Mathlib/Algebra/Module/LinearMap.lean 2024-01-25 16:42:44 47a9066 feat: add `Continuous.image_connectedComponentIn_subset` (#9983) and a version for homeomorphisms. From sphere-eversion; I'm just submitting things upstream. ESTIMATED CHANGES Modified Mathlib/Topology/Connected/Basic.lean + theorem Continuous.image_connectedComponentIn_subset + theorem Continuous.mapsTo_connectedComponentIn Modified Mathlib/Topology/Homeomorph.lean + theorem Homeomorph.image_connectedComponentIn 2024-01-25 16:42:43 e7170d3 feat(Topology/Basic): add TopologicalSpace.ext_isClosed (#9963) Use it to golf `PrimeSpectrum.localization_comap_inducing`. ESTIMATED CHANGES Modified Mathlib/AlgebraicGeometry/PrimeSpectrum/Basic.lean Modified Mathlib/Topology/Basic.lean + theorem TopologicalSpace.ext_iff_isClosed 2024-01-25 16:42:42 bd6616c chore(Integral/CircleTransform): golf (#9937) Motivated by @Ruben-VandeVelde's leanprover-community/mathlib#15206 ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Integral/CircleTransform.lean 2024-01-25 15:54:36 941d069 feat: the torsion submodule of an irreducible element is semisimple (#9994) (provided the coefficients are a principal ideal ring) ESTIMATED CHANGES Modified Mathlib/Algebra/Module/PID.lean + theorem Submodule.isSemisimple_torsionBy_of_irreducible Modified Mathlib/Algebra/Module/Torsion.lean + def Submodule.submodule_torsionBy_orderIso 2024-01-25 15:54:35 c27bc4e refactor(ZMod): remove coe out of ZMod (#9839) ESTIMATED CHANGES Modified Mathlib/Data/ZMod/Algebra.lean Modified Mathlib/Data/ZMod/Basic.lean +/- theorem Prod.fst_zmod_cast +/- theorem Prod.snd_zmod_cast +/- def ZMod.cast +/- theorem ZMod.castHom_apply +/- theorem ZMod.cast_add' +/- theorem ZMod.cast_add + theorem ZMod.cast_add_eq_ite +/- theorem ZMod.cast_eq_val +/- theorem ZMod.cast_int_cast' +/- theorem ZMod.cast_int_cast +/- theorem ZMod.cast_mul' +/- theorem ZMod.cast_mul +/- theorem ZMod.cast_nat_cast' +/- theorem ZMod.cast_nat_cast +/- theorem ZMod.cast_neg +/- theorem ZMod.cast_neg_one +/- theorem ZMod.cast_one' +/- theorem ZMod.cast_one +/- theorem ZMod.cast_pow' +/- theorem ZMod.cast_pow +/- theorem ZMod.cast_sub' +/- theorem ZMod.cast_sub +/- theorem ZMod.cast_zero - theorem ZMod.coe_add_eq_ite +/- theorem ZMod.coe_int_cast +/- theorem ZMod.int_cast_cast +/- theorem ZMod.int_cast_comp_cast +/- theorem ZMod.int_cast_rightInverse +/- theorem ZMod.int_cast_zmod_cast +/- theorem ZMod.nat_cast_comp_val +/- theorem ZMod.nat_cast_val +/- theorem ZMod.ringHom_map_cast Modified Mathlib/Data/ZMod/Module.lean Modified Mathlib/Data/ZMod/Quotient.lean Modified Mathlib/Data/ZMod/Units.lean +/- theorem ZMod.IsUnit_cast_of_dvd Modified Mathlib/GroupTheory/Complement.lean Modified Mathlib/NumberTheory/DirichletCharacter/Basic.lean Modified Mathlib/NumberTheory/LegendreSymbol/ZModChar.lean +/- theorem ZMod.χ₈'_eq_χ₄_mul_χ₈ Modified Mathlib/NumberTheory/Padics/RingHoms.lean +/- theorem PadicInt.cast_toZModPow +/- theorem PadicInt.toZMod_spec 2024-01-25 14:36:36 fe3b2b2 feat(Data/Sigma): add `Sigma.fst_surjective` etc (#9914) - Add `Sigma.fst_surjective`, `Sigma.fst_surjective_iff`, `Sigma.fst_injective`, and `Sigma.fst_injective_iff`. - Move `sigma_mk_injective` up. - Open `Function` namespace, drop `Function.`. - Fix indentation. ESTIMATED CHANGES Modified Mathlib/Data/Sigma/Basic.lean + theorem Sigma.fst_injective + theorem Sigma.fst_injective_iff + theorem Sigma.fst_surjective + theorem Sigma.fst_surjective_iff +/- theorem sigma_mk_injective 2024-01-25 14:36:35 8853442 feat: define semisimple linear endomorphisms (#9825) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Module/Submodule/Map.lean + theorem Submodule.comap_neg Modified Mathlib/Data/Polynomial/Module.lean + theorem Module.AEval.injective_comapSubmodule + theorem Module.AEval.range_comapSubmodule Modified Mathlib/GroupTheory/Nilpotent.lean Added Mathlib/LinearAlgebra/Semisimple.lean + theorem Module.End.IsSemisimple_smul + theorem Module.End.IsSemisimple_smul_iff + theorem Module.End.eq_zero_of_isNilpotent_isSemisimple + theorem Module.End.isSemisimple_id + theorem Module.End.isSemisimple_iff + theorem Module.End.isSemisimple_neg + theorem Module.End.isSemisimple_zero Modified Mathlib/Order/CompleteSublattice.lean + theorem CompleteLatticeHom.range_coe + theorem CompleteSublattice.coe_copy + theorem CompleteSublattice.copy_eq + theorem CompleteSublattice.isComplemented_iff Modified Mathlib/Order/Disjoint.lean + theorem Codisjoint.ne_bot_of_ne_top' + theorem Codisjoint.ne_bot_of_ne_top Modified Mathlib/Order/Hom/Lattice.lean + def orderEmbeddingOfInjective Modified Mathlib/Order/Hom/Set.lean Modified Mathlib/RingTheory/Nilpotent.lean + theorem eq_zero_of_nilpotencyClass_eq_one + theorem isNilpotent_of_pos_nilpotencyClass + theorem isNilpotent_of_subsingleton + theorem nilpotencyClass_eq_one + theorem nilpotencyClass_eq_succ_iff + theorem nilpotencyClass_eq_zero_of_subsingleton + theorem nilpotencyClass_zero + theorem pos_nilpotencyClass_iff + theorem pow_nilpotencyClass + theorem pow_pred_nilpotencyClass 2024-01-25 14:02:42 0b79434 chore: golf `FiniteDimensional.isROrC_to_real` (#9921) ESTIMATED CHANGES Modified Mathlib/Data/IsROrC/Lemmas.lean 2024-01-25 13:08:16 ce79848 feat(Trigonometric): add lemmas about `cos x = -1 ↔ _` etc (#9878) ESTIMATED CHANGES Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Complex.lean + theorem Complex.cos_eq_neg_one_iff + theorem Complex.cos_eq_one_iff + theorem Complex.sin_eq_neg_one_iff + theorem Complex.sin_eq_one_iff + theorem Real.cos_eq_neg_one_iff +/- theorem Real.cos_ne_zero_iff + theorem Real.sin_eq_neg_one_iff + theorem Real.sin_eq_one_iff 2024-01-25 13:08:14 2b7478a feat: superFactorial_two_mul, superFactorial_four_mul (#7924) ESTIMATED CHANGES Modified Mathlib/Data/Nat/Factorial/SuperFactorial.lean +/- theorem Nat.prod_range_factorial_succ + theorem Nat.superFactorial_four_mul + theorem Nat.superFactorial_two_mul 2024-01-25 12:45:33 c5ca57c feat: problem matchers for tests (#9552) Makes it a bit easier to see which test failed and where ESTIMATED CHANGES Modified .github/workflows/bors.yml Modified .github/workflows/build.yml Modified .github/workflows/build.yml.in Modified .github/workflows/build_fork.yml 2024-01-25 12:14:10 d3da7bb refactor(CategoryTheory/Monoidal): replace axioms with those more suitable for the whiskerings (#9991) Extracted from #6307. We replace some axioms by those more preferable when using the whiskerings instead of the tensor of morphisms. ESTIMATED CHANGES Modified Mathlib/Algebra/Category/ModuleCat/Monoidal/Symmetric.lean Modified Mathlib/CategoryTheory/Monoidal/Braided.lean + theorem CategoryTheory.BraidedCategory.braiding_inv_tensor_left + theorem CategoryTheory.BraidedCategory.braiding_inv_tensor_right + theorem CategoryTheory.BraidedCategory.braiding_naturality + theorem CategoryTheory.BraidedCategory.braiding_tensor_left + theorem CategoryTheory.BraidedCategory.braiding_tensor_right Modified Mathlib/CategoryTheory/Monoidal/Center.lean Modified Mathlib/CategoryTheory/Monoidal/Functor.lean + theorem CategoryTheory.MonoidalFunctor.map_whiskerLeft + theorem CategoryTheory.MonoidalFunctor.map_whiskerRight Modified Mathlib/CategoryTheory/Monoidal/OfChosenFiniteProducts/Symmetric.lean Modified Mathlib/CategoryTheory/Monoidal/OfHasFiniteProducts.lean Modified Mathlib/CategoryTheory/Monoidal/Preadditive.lean + theorem CategoryTheory.MonoidalPreadditive.add_tensor + theorem CategoryTheory.MonoidalPreadditive.tensor_add + theorem CategoryTheory.MonoidalPreadditive.tensor_zero + theorem CategoryTheory.MonoidalPreadditive.zero_tensor 2024-01-25 11:09:48 2725911 chore(Algebra/Algebra/Basic): remove @s to address porting note (#9969) ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/Basic.lean 2024-01-25 09:21:34 9a290c2 chore(Topology/Constructions): rename most type variables (#9863) Now we use letters X and Y for topological spaces, not Greek letters. I didn't replace all letters; some lemmas need a large number of different letters. Volunteers for the last instances welcome. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Extensive.lean Modified Mathlib/Topology/Constructions.lean +/- theorem CofiniteTopology.isClosed_iff +/- theorem CofiniteTopology.isOpen_iff' +/- theorem CofiniteTopology.isOpen_iff +/- theorem CofiniteTopology.mem_nhds_iff +/- theorem CofiniteTopology.nhds_eq +/- def CofiniteTopology.of +/- def CofiniteTopology +/- theorem Continuous.Prod.mk +/- theorem Continuous.Prod.mk_left +/- theorem Continuous.codRestrict +/- theorem Continuous.comp₂ +/- theorem Continuous.comp₃ +/- theorem Continuous.comp₄ +/- theorem Continuous.fst' +/- theorem Continuous.fst +/- theorem Continuous.prod_map +/- theorem Continuous.prod_mk +/- theorem Continuous.quotient_lift +/- theorem Continuous.quotient_liftOn' +/- theorem Continuous.quotient_map' +/- theorem Continuous.restrict +/- theorem Continuous.restrictPreimage +/- theorem Continuous.snd' +/- theorem Continuous.snd +/- theorem Continuous.subtype_map +/- theorem Continuous.subtype_mk +/- theorem Continuous.subtype_val +/- theorem Continuous.sum_elim +/- theorem Continuous.sum_map +/- theorem Continuous.update +/- theorem ContinuousAt.fst'' +/- theorem ContinuousAt.fst' +/- theorem ContinuousAt.fst +/- theorem ContinuousAt.prod +/- theorem ContinuousAt.prod_map' +/- theorem ContinuousAt.prod_map +/- theorem ContinuousAt.restrict +/- theorem ContinuousAt.restrictPreimage +/- theorem ContinuousAt.snd'' +/- theorem ContinuousAt.snd' +/- theorem ContinuousAt.snd +/- theorem ContinuousAt.update +/- theorem Dense.prod +/- theorem Dense.quotient +/- theorem DenseRange.prod_map +/- theorem DenseRange.quotient +/- theorem Embedding.codRestrict +/- theorem Embedding.prod_map +/- theorem Filter.Eventually.curry_nhds +/- theorem Filter.Eventually.prod_inl_nhds +/- theorem Filter.Eventually.prod_inr_nhds +/- theorem Filter.Eventually.prod_mk_nhds +/- theorem Filter.Eventually.prod_nhds +/- theorem Filter.Eventually.prod_nhdsSet +/- theorem Filter.HasBasis.prod_nhds' +/- theorem Filter.HasBasis.prod_nhds +/- theorem Filter.Tendsto.apply +/- theorem Filter.Tendsto.prod_mk_nhds +/- theorem Filter.Tendsto.update +/- theorem Inducing.codRestrict +/- theorem Inducing.of_codRestrict +/- theorem Inducing.prod_map +/- theorem IsClosed.prod +/- theorem IsClosed.setOf_mapsTo +/- theorem IsClosed.trans +/- theorem IsClosedMap.restrictPreimage +/- theorem IsOpen.isOpenMap_subtype_val +/- theorem IsOpen.openEmbedding_subtype_val +/- theorem IsOpen.prod +/- theorem IsOpen.trans +/- theorem IsOpenMap.restrict +/- theorem IsOpenMap.sum_elim +/- theorem Pi.continuous_postcomp' +/- theorem Pi.continuous_postcomp +/- theorem Pi.induced_precomp +/- theorem Prod.tendsto_iff +/- theorem Quotient.preimage_mem_nhds +/- theorem Subtype.dense_iff +/- theorem ULift.closedEmbedding_down +/- theorem ULift.isClosed_iff +/- theorem ULift.isOpen_iff +/- theorem closedEmbedding_inl +/- theorem closedEmbedding_inr +/- theorem closure_prod_eq +/- theorem continuousAt_codRestrict_iff +/- theorem continuousAt_fst +/- theorem continuousAt_pi +/- theorem continuousAt_snd +/- theorem continuousAt_subtype_val +/- theorem continuous_curry +/- theorem continuous_fst +/- theorem continuous_inclusion +/- theorem continuous_inf_dom_left₂ +/- theorem continuous_inf_dom_right₂ +/- theorem continuous_inl +/- theorem continuous_inr +/- theorem continuous_isLeft +/- theorem continuous_isRight +/- theorem continuous_ofAdd +/- theorem continuous_ofDual +/- theorem continuous_ofMul +/- theorem continuous_prod_mk +/- theorem continuous_quot_lift +/- theorem continuous_quot_mk +/- theorem continuous_quotient_mk' +/- theorem continuous_sInf_dom₂ +/- theorem continuous_sigma +/- theorem continuous_sigma_iff +/- theorem continuous_snd +/- theorem continuous_subtype_val +/- theorem continuous_sum_dom +/- theorem continuous_sum_elim +/- theorem continuous_sum_map +/- theorem continuous_swap +/- theorem continuous_toAdd +/- theorem continuous_toDual +/- theorem continuous_toMul +/- theorem continuous_uLift_down +/- theorem continuous_uLift_up +/- theorem continuous_uncurry_left +/- theorem continuous_uncurry_right +/- theorem discreteTopology_subtype_iff +/- theorem embedding_graph +/- theorem embedding_inclusion +/- theorem embedding_inl +/- theorem embedding_inr +/- theorem embedding_prod_mk +/- theorem embedding_subtype_val +/- theorem embedding_uLift_down +/- theorem exists_nhds_square +/- theorem frontier_prod_eq +/- theorem frontier_prod_univ_eq +/- theorem frontier_univ_prod_eq +/- theorem inducing_const_prod +/- theorem inducing_prod_const +/- theorem inducing_sigma +/- theorem inducing_subtype_val +/- theorem interior_prod_eq +/- theorem isClosedMap_ofAdd +/- theorem isClosedMap_ofDual +/- theorem isClosedMap_ofMul +/- theorem isClosedMap_swap +/- theorem isClosedMap_toAdd +/- theorem isClosedMap_toDual +/- theorem isClosedMap_toMul +/- theorem isClosed_range_inl +/- theorem isClosed_range_inr +/- theorem isClosed_sum_iff +/- theorem isOpenMap_fst +/- theorem isOpenMap_inl +/- theorem isOpenMap_inr +/- theorem isOpenMap_ofAdd +/- theorem isOpenMap_ofDual +/- theorem isOpenMap_ofMul +/- theorem isOpenMap_sigma +/- theorem isOpenMap_snd +/- theorem isOpenMap_sum +/- theorem isOpenMap_sum_elim +/- theorem isOpenMap_toAdd +/- theorem isOpenMap_toDual +/- theorem isOpenMap_toMul +/- theorem isOpen_prod_iff' +/- theorem isOpen_prod_iff +/- theorem isOpen_range_inl +/- theorem isOpen_range_inr +/- theorem isOpen_sum_iff +/- theorem map_fst_nhds +/- theorem map_fst_nhdsWithin +/- theorem map_mem_closure₂ +/- theorem map_nhds_subtype_coe_eq_nhds +/- theorem map_nhds_subtype_val +/- theorem map_snd_nhds +/- theorem map_snd_nhdsWithin +/- theorem mem_nhdsWithin_prod_iff +/- theorem mem_nhds_prod_iff' +/- theorem mem_nhds_prod_iff +/- theorem mem_nhds_subtype +/- theorem nhdsWithin_prod_eq +/- theorem nhdsWithin_subtype_eq_bot_iff +/- theorem nhds_inl +/- theorem nhds_inr +/- theorem nhds_ne_subtype_eq_bot_iff +/- theorem nhds_ne_subtype_neBot_iff +/- theorem nhds_ofAdd +/- theorem nhds_ofDual +/- theorem nhds_ofMul +/- theorem nhds_prod_eq +/- theorem nhds_subtype +/- theorem nhds_subtype_eq_comap +/- theorem nhds_swap +/- theorem nhds_toAdd +/- theorem nhds_toDual +/- theorem nhds_toMul +/- theorem openEmbedding_inl +/- theorem openEmbedding_inr +/- theorem prod_generateFrom_generateFrom_eq +/- theorem prod_induced_induced +/- theorem prod_mem_nhds +/- theorem prod_mem_nhds_iff +/- theorem quotientMap_quot_mk +/- theorem quotientMap_quotient_mk' +/- theorem tendsto_pi_nhds +/- theorem tendsto_subtype_rng 2024-01-25 06:29:39 2e59248 refactor(CategoryTheory/Monoidal): split the naturality condition of monoidal functors (#9988) Extracted from #6307. We replace `μ_natural` with `μ_natural_left` and `μ_natural_right` since we prefer to use the whiskerings to the tensor of morphisms in the refactor #6307. ESTIMATED CHANGES Modified Mathlib/Algebra/Category/ModuleCat/Adjunctions.lean Modified Mathlib/CategoryTheory/Bicategory/SingleObj.lean Modified Mathlib/CategoryTheory/Monoidal/Braided.lean + theorem CategoryTheory.tensor_μ_natural_left + theorem CategoryTheory.tensor_μ_natural_right Modified Mathlib/CategoryTheory/Monoidal/End.lean Modified Mathlib/CategoryTheory/Monoidal/Free/Basic.lean Modified Mathlib/CategoryTheory/Monoidal/Functor.lean + def CategoryTheory.LaxMonoidalFunctor.ofTensorHom + theorem CategoryTheory.LaxMonoidalFunctor.μ_natural Modified Mathlib/CategoryTheory/Monoidal/Functorial.lean Modified Mathlib/CategoryTheory/Monoidal/Limits.lean Modified Mathlib/CategoryTheory/Monoidal/Transport.lean Modified Mathlib/CategoryTheory/Monoidal/Types/Coyoneda.lean Modified Mathlib/CategoryTheory/Shift/Basic.lean Modified Mathlib/RepresentationTheory/Action/Monoidal.lean +/- def CategoryTheory.MonoidalFunctor.mapAction + def CategoryTheory.MonoidalFunctor.mapActionLax 2024-01-25 02:46:49 8c661e5 feat: add `Homeomorph.subtype` for lifting homeomorphisms to subtypes (#9959) This extends `Equiv.subtypeEquiv`, which promotes `e : α ≃ β` to `e.subtypeEquiv _ : {a : α // p a} ≃ {b : β // q b}`, to homeomorphisms. We also add a missing lemma linking `Equiv.subtypeEquiv` to `Subtype.map`, and update the definition to use `Subtype.map` also. ESTIMATED CHANGES Modified Mathlib/Logic/Equiv/Basic.lean + theorem Equiv.coe_subtypeEquiv_eq_map Modified Mathlib/Topology/Homeomorph.lean + def Homeomorph.subtype + theorem Homeomorph.subtype_toEquiv 2024-01-25 01:23:40 0c34368 feat: sigma-compact measure zero sets are meagre (#7640) ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Measure/OpenPos.lean + theorem IsMeagre.of_isSigmaCompact_null + theorem IsNowhereDense.of_isClosed_null 2024-01-25 00:17:40 ad22323 feat: two lemmas about division (#9966) ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Basic.lean + theorem div_eq_div_iff_comm Modified Mathlib/Algebra/GroupWithZero/Units/Lemmas.lean + theorem div_eq_div_iff_div_eq_div' 2024-01-24 22:51:33 e88d290 chore: remove porting note after `simp` fix (#9974) ESTIMATED CHANGES Modified Mathlib/NumberTheory/WellApproximable.lean 2024-01-24 20:52:37 a686ba8 feat: finite products/sums of differentiable maps into smooth commutative monoids are differentiable (#9775) From sphere-eversion; I'm just upstreaming this. ESTIMATED CHANGES Modified Mathlib/Geometry/Manifold/Algebra/Monoid.lean + theorem ContMDiff.prod + theorem ContMDiffAt.prod + theorem ContMDiffWithinAt.prod + theorem contMDiffAt_finprod + theorem contMDiffOn_finprod + theorem contMDiffWithinAt_finprod + theorem smoothAt_finprod 2024-01-24 18:17:19 0aa016e chore(Algebra.Basic): override `toFun` and `smul` in `Algebra.id` (#9949) The current definition of `Algebra.id` is `(RingHom.id _).toAlgebra`. The problem with this is that `RingHom.id` is a `def` and is not reducible. Thus Lean will often refuse to unfold it causing unification to fail unecessarily in typeclass searches. This overrides the data fields from `RingHom.id`. ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/Basic.lean Modified Mathlib/Analysis/NormedSpace/Star/GelfandDuality.lean Modified Mathlib/LinearAlgebra/CliffordAlgebra/Equivs.lean Modified Mathlib/RingTheory/Kaehler.lean Added test/Simp.lean 2024-01-24 15:59:29 725f123 perf: de-prioritize `Subalgebra.algebra'` and `IntermediateField.algebra'` (#9936) Like in #9655, these instances tend to be slow to fail, so we should assign them a low priority. Zulip discussions: https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/Algebra.2Eid.20for.20IntermediateField https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/Timeout.20in.20Submodule.20.28.F0.9D.93.9E.20K.29.20.28.F0.9D.93.9E.20K.29 ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/Subalgebra/Basic.lean Modified Mathlib/FieldTheory/IntermediateField.lean 2024-01-24 15:59:27 4fe0086 feat(UpperHalfPlane): add positivity extensions (#9545) ESTIMATED CHANGES Modified Mathlib/Analysis/Complex/UpperHalfPlane/Basic.lean + def Mathlib.Meta.Positivity.evalUpperHalfPlaneCoe + def Mathlib.Meta.Positivity.evalUpperHalfPlaneIm Modified Mathlib/Analysis/Complex/UpperHalfPlane/Metric.lean 2024-01-24 14:31:55 9a8dc7a feat(CategoryTheory/Galois): finite `G`-sets are a `PreGaloisCategory` (#9879) We show that the category of finite `G`-sets is a `PreGaloisCategory` and the forgetful functor to finite sets is a `FibreFunctor`. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Galois/Examples.lean + def CategoryTheory.FintypeCat.Action.imageComplementIncl + def CategoryTheory.FintypeCat.imageComplementIncl Modified Mathlib/CategoryTheory/SingleObj.lean Modified Mathlib/Logic/Equiv/TransferInstance.lean + theorem Finite.exists_type_zero_nonempty_mulEquiv 2024-01-24 14:31:54 d1054e1 chore(Topology): remove autoImplicit from most remaining files (#9865) ESTIMATED CHANGES Modified Mathlib/Topology/Algebra/Order/Compact.lean Modified Mathlib/Topology/Algebra/Order/Rolle.lean Modified Mathlib/Topology/Algebra/Star.lean Modified Mathlib/Topology/ContinuousOn.lean +/- theorem continuousWithinAt_congr_nhds Modified Mathlib/Topology/CountableSeparatingOn.lean Modified Mathlib/Topology/ExtremallyDisconnected.lean Modified Mathlib/Topology/Homotopy/Basic.lean Modified Mathlib/Topology/LocallyConstant/Algebra.lean Modified Mathlib/Topology/Order.lean +/- theorem denseRange_discrete Modified Mathlib/Topology/ProperMap.lean Modified Mathlib/Topology/UniformSpace/Basic.lean 2024-01-24 14:31:52 00202e4 feat(Topology/Support): add tsupport_smul_{left,right} (#9778) - rename `Function.support_smul_subset_right` to `Function.support_const_smul_subset` From sphere-eversion; I'm just upstreaming it. ESTIMATED CHANGES Modified Archive/Hairer.lean Modified Mathlib/Algebra/Module/Basic.lean + theorem Function.support_const_smul_subset +/- theorem Function.support_smul_subset_right Modified Mathlib/MeasureTheory/Function/StronglyMeasurable/Basic.lean Modified Mathlib/RingTheory/HahnSeries.lean Modified Mathlib/Topology/Support.lean + theorem tsupport_smul_subset_right 2024-01-24 13:11:22 fac72bc chore: bump dependencies (#9962) ESTIMATED CHANGES Modified lake-manifest.json 2024-01-24 13:11:21 02240d5 refactor: move `Archimedean` instances to `Order/Archimedean` (#9950) We already have the instances for `ℕ`, `ℤ`, and `ℚ` in this file, so adding `NNRat` doesn't feel that out of place, as it completes this {negation,division} lattice. Follows on from #9917. These changes knock off 132 dependencies from `NNRat`, though adds more to `Archimedean`. I think this is acceptable; we need `NNRat` to be super early if we want to be able to use it in norm_num, and the depth of `Archimedean` will reduce with `NNRat` as I work towards this. ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Archimedean.lean Modified Mathlib/Algebra/Order/Nonneg/Floor.lean Modified Mathlib/Data/Rat/NNRat.lean 2024-01-24 13:11:20 e61934e Add `Lattice ℤ` instance for computability (#9946) The file `Data.Int.ConditionallyCompleteOrder` defines a noncomputable instance of `ConditionallyCompleteLinearOrder` on `ℤ`. This noncomputable instance is picked up by the typeclass search when looking for a `Lattice` instance on `ℤ`, making, for instance, `abs` noncomputable on `ℤ`. This PR restores the computability of `Lattice ℤ`. [Zulip discussion](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/No.20more.20.60Abs.60.3F/near/417546479) ESTIMATED CHANGES Modified Mathlib/Data/Int/ConditionallyCompleteOrder.lean Modified Mathlib/Order/Lattice.lean 2024-01-24 10:41:24 6694f75 chore(Topology/Basic): rename variables (#9956) Use `X`, `Y`, `Z` for topological spaces. ESTIMATED CHANGES Modified Mathlib/AlgebraicGeometry/Limits.lean Modified Mathlib/AlgebraicGeometry/PrimeSpectrum/Basic.lean Modified Mathlib/Analysis/SpecialFunctions/Pow/Continuity.lean Modified Mathlib/MeasureTheory/Function/StronglyMeasurable/Basic.lean Modified Mathlib/Topology/Algebra/InfiniteSum/Basic.lean Modified Mathlib/Topology/Basic.lean +/- theorem AccPt.mono +/- def AccPt +/- theorem ClusterPt.map +/- theorem ClusterPt.mono +/- theorem ClusterPt.neBot +/- theorem ClusterPt.of_inf_left +/- theorem ClusterPt.of_inf_right +/- theorem ClusterPt.of_le_nhds' +/- theorem ClusterPt.of_le_nhds +/- theorem ClusterPt.of_nhds_le +/- def ClusterPt +/- theorem Continuous.closure_preimage_subset +/- theorem Continuous.comp' +/- theorem Continuous.comp +/- theorem Continuous.congr +/- theorem Continuous.continuousAt +/- theorem Continuous.frontier_preimage_subset +/- theorem Continuous.iterate +/- theorem Continuous.range_subset_closure_image_dense +/- theorem Continuous.tendsto' +/- theorem Continuous.tendsto +/- structure Continuous +/- theorem ContinuousAt.comp_of_eq +/- theorem ContinuousAt.congr +/- theorem ContinuousAt.iterate +/- theorem ContinuousAt.preimage_mem_nhds +/- theorem ContinuousAt.tendsto +/- def ContinuousAt +/- theorem Dense.denseRange_val +/- theorem Dense.exists_mem_open +/- theorem Dense.inter_nhds_nonempty +/- theorem Dense.inter_of_isOpen_left +/- theorem Dense.inter_of_isOpen_right +/- theorem Dense.interior_compl +/- theorem Dense.mono +/- theorem Dense.nonempty +/- theorem Dense.nonempty_iff +/- theorem Dense.open_subset_closure_inter +/- def Dense +/- theorem DenseRange.comp +/- theorem DenseRange.dense_image +/- theorem DenseRange.dense_of_mapsTo +/- theorem DenseRange.mem_nhds +/- theorem DenseRange.nonempty +/- def DenseRange.some +/- theorem DenseRange.subset_closure_image_preimage_of_isOpen +/- theorem Disjoint.closure_left +/- theorem Disjoint.closure_right +/- theorem Filter.Eventually.eventually_nhds +/- theorem Filter.Eventually.self_of_nhds +/- theorem Filter.EventuallyEq.continuousAt +/- theorem Filter.EventuallyEq.eq_of_nhds +/- theorem Filter.EventuallyEq.eventuallyEq_nhds +/- theorem Filter.EventuallyEq.tendsto +/- theorem Filter.EventuallyLE.eventuallyLE_nhds +/- theorem Filter.Frequently.mem_of_closed +/- theorem Filter.HasBasis.clusterPt_iff +/- theorem Filter.HasBasis.lift'_closure +/- theorem Filter.HasBasis.lift'_closure_eq_self +/- theorem Filter.le_lift'_closure +/- theorem Filter.lift'_closure_eq_bot +/- theorem Finset.closure_biUnion +/- theorem Finset.interior_iInter +/- theorem IsClosed.closure_eq +/- theorem IsClosed.closure_subset +/- theorem IsClosed.closure_subset_iff +/- theorem IsClosed.compl_mem_nhds +/- theorem IsClosed.frontier_eq +/- theorem IsClosed.interior_union_left +/- theorem IsClosed.interior_union_right +/- theorem IsClosed.mem_iff_closure_subset +/- theorem IsClosed.mem_of_frequently_of_tendsto +/- theorem IsClosed.mem_of_tendsto +/- theorem IsClosed.preimage +/- theorem IsClosed.sdiff +/- theorem IsOpen.closure_inter +/- theorem IsOpen.eventually_mem +/- theorem IsOpen.frontier_eq +/- theorem IsOpen.inter_closure +/- theorem IsOpen.inter_frontier_eq +/- theorem IsOpen.interior_eq +/- theorem IsOpen.mem_nhds +/- theorem IsOpen.preimage +/- theorem IsOpen.sdiff +/- theorem IsOpen.subset_interior_iff +/- def IsOpen +/- def MapClusterPt +/- theorem OrderTop.tendsto_atTop_nhds +/- theorem Set.Finite.closure_biUnion +/- theorem Set.Finite.closure_sUnion +/- theorem Set.Finite.interior_biInter +/- theorem Set.Finite.interior_sInter +/- theorem Set.Finite.isClosed_biUnion +/- theorem Set.Finite.isOpen_biInter +/- theorem Set.Finite.isOpen_sInter +/- theorem Set.MapsTo.closure_left +/- def TopologicalSpace.ofClosed +/- theorem Ultrafilter.clusterPt_iff +/- theorem accPt_iff_frequently +/- theorem accPt_iff_nhds +/- theorem acc_iff_cluster +/- theorem acc_principal_iff_cluster +/- theorem all_mem_nhds +/- theorem all_mem_nhds_filter +/- def closure +/- theorem closure_closure +/- theorem closure_compl +/- theorem closure_compl_singleton +/- theorem closure_diff +/- theorem closure_diff_frontier +/- theorem closure_diff_interior +/- theorem closure_empty +/- theorem closure_empty_iff +/- theorem closure_eq_cluster_pts +/- theorem closure_eq_compl_interior_compl +/- theorem closure_eq_iff_isClosed +/- theorem closure_eq_interior_union_frontier +/- theorem closure_eq_self_union_frontier +/- theorem closure_iUnion_of_finite +/- theorem closure_image_closure +/- theorem closure_inter_open_nonempty_iff +/- theorem closure_inter_subset_inter_closure +/- theorem closure_minimal +/- theorem closure_mono +/- theorem closure_nonempty_iff +/- theorem closure_subset_iff_isClosed +/- theorem closure_subset_preimage_closure_image +/- theorem closure_union +/- theorem closure_univ +/- theorem clusterPt_iff +/- theorem clusterPt_iff_forall_mem_closure +/- theorem clusterPt_iff_lift'_closure' +/- theorem clusterPt_iff_lift'_closure +/- theorem clusterPt_iff_not_disjoint +/- theorem clusterPt_lift'_closure_iff +/- theorem clusterPt_principal_iff +/- theorem clusterPt_principal_iff_frequently +/- theorem compl_frontier_eq_union_interior +/- theorem continuousAt_congr +/- theorem continuousAt_const +/- theorem continuousAt_def +/- theorem continuousAt_id +/- theorem continuousAt_iff_ultrafilter +/- theorem continuous_congr +/- theorem continuous_const +/- theorem continuous_def +/- theorem continuous_id' +/- theorem continuous_id +/- theorem continuous_iff_continuousAt +/- theorem continuous_iff_isClosed +/- theorem continuous_iff_ultrafilter +/- theorem continuous_of_const +/- theorem denseRange_id +/- theorem dense_closure +/- theorem dense_compl_singleton +/- theorem dense_compl_singleton_iff_not_open +/- theorem dense_iff_closure_eq +/- theorem dense_iff_inter_open +/- theorem dense_univ +/- theorem diff_subset_closure_iff +/- theorem eventuallyEq_zero_nhds +/- theorem eventually_eventuallyEq_nhds +/- theorem eventually_eventuallyLE_nhds +/- theorem eventually_eventually_nhds +/- theorem eventually_mem_nhds +/- theorem eventually_nhds_iff +/- theorem exists_open_set_nhds' +/- theorem exists_open_set_nhds +/- theorem frequently_frequently_nhds +/- def frontier +/- theorem frontier_closure_subset +/- theorem frontier_compl +/- theorem frontier_empty +/- theorem frontier_eq_closure_inter_closure +/- theorem frontier_eq_inter_compl_interior +/- theorem frontier_inter_subset +/- theorem frontier_interior_subset +/- theorem frontier_subset_closure +/- theorem frontier_union_subset +/- theorem frontier_univ +/- theorem image_closure_subset_closure_image +/- def interior +/- theorem interior_compl +/- theorem interior_empty +/- theorem interior_eq_empty_iff_dense_compl +/- theorem interior_eq_iff_isOpen +/- theorem interior_eq_nhds' +/- theorem interior_eq_nhds +/- theorem interior_eq_univ +/- theorem interior_frontier +/- theorem interior_iInter_of_finite +/- theorem interior_iInter_subset +/- theorem interior_iInter₂_subset +/- theorem interior_inter +/- theorem interior_interior +/- theorem interior_maximal +/- theorem interior_mem_nhds +/- theorem interior_mono +/- theorem interior_sInter_subset +/- theorem interior_setOf_eq +/- theorem interior_singleton +/- theorem interior_subset +/- theorem interior_subset_closure +/- theorem interior_union_isClosed_of_interior_empty +/- theorem interior_univ +/- theorem isClosed_biInter +/- theorem isClosed_biUnion_finset +/- theorem isClosed_closure +/- theorem isClosed_compl_iff +/- theorem isClosed_const +/- theorem isClosed_empty +/- theorem isClosed_frontier +/- theorem isClosed_iInter +/- theorem isClosed_iUnion_of_finite +/- theorem isClosed_iff_clusterPt +/- theorem isClosed_iff_forall_filter +/- theorem isClosed_iff_frequently +/- theorem isClosed_iff_nhds +/- theorem isClosed_imp +/- theorem isClosed_of_closure_subset +/- theorem isClosed_sInter +/- theorem isClosed_setOf_clusterPt +/- theorem isClosed_univ +/- theorem isOpen_biInter_finset +/- theorem isOpen_biUnion +/- theorem isOpen_compl_iff +/- theorem isOpen_const +/- theorem isOpen_empty +/- theorem isOpen_fold +/- theorem isOpen_iInter_of_finite +/- theorem isOpen_iUnion +/- theorem isOpen_iff_eventually +/- theorem isOpen_iff_mem_nhds +/- theorem isOpen_iff_nhds +/- theorem isOpen_iff_of_cover +/- theorem isOpen_iff_ultrafilter +/- theorem isOpen_interior +/- theorem isOpen_mk +/- theorem isOpen_sUnion +/- theorem isOpen_setOf_eventually_nhds +/- theorem isOpen_singleton_iff_nhds_eq_pure +/- theorem isOpen_singleton_iff_punctured_nhds +/- theorem isOpen_univ +/- theorem le_nhds_iff +/- theorem le_nhds_lim +/- theorem mapClusterPt_iff +/- theorem mapClusterPt_of_comp +/- theorem map_mem_closure +/- theorem map_nhds +/- theorem mem_closure_iff +/- theorem mem_closure_iff_clusterPt +/- theorem mem_closure_iff_comap_neBot +/- theorem mem_closure_iff_frequently +/- theorem mem_closure_iff_nhds' +/- theorem mem_closure_iff_nhds +/- theorem mem_closure_iff_nhdsWithin_neBot +/- theorem mem_closure_iff_nhds_basis' +/- theorem mem_closure_iff_nhds_basis +/- theorem mem_closure_iff_nhds_neBot +/- theorem mem_closure_iff_ultrafilter +/- theorem mem_closure_image +/- theorem mem_closure_of_frequently_of_tendsto +/- theorem mem_closure_of_mem_closure_union +/- theorem mem_closure_of_tendsto +/- theorem mem_interior +/- theorem mem_interior_iff_mem_nhds +/- theorem mem_nhds_iff +/- theorem mem_of_mem_nhds +/- theorem monotone_closure +/- def nhdsWithin +/- theorem nhds_basis_closeds +/- theorem nhds_basis_opens' +/- theorem nhds_basis_opens +/- theorem nhds_def' +/- theorem nhds_le_of_le +/- theorem not_isOpen_singleton +/- theorem not_mem_closure_iff_nhdsWithin_eq_bot +/- theorem not_mem_of_not_mem_closure +/- theorem preimage_interior_subset_interior_preimage +/- theorem pure_le_nhds +/- theorem self_diff_frontier +/- theorem subset_closure +/- theorem subset_interior_iff +/- theorem subset_interior_iff_isOpen +/- theorem subset_interior_iff_nhds +/- theorem tendsto_atBot_of_eventually_const +/- theorem tendsto_atTop_nhds +/- theorem tendsto_atTop_of_eventually_const +/- theorem tendsto_const_nhds +/- theorem tendsto_inf_principal_nhds_iff_of_forall_eq +/- theorem tendsto_nhds +/- theorem tendsto_nhds_limUnder +/- theorem tendsto_nhds_of_eventually_eq +/- theorem tendsto_pure_nhds Modified Mathlib/Topology/MetricSpace/Polish.lean 2024-01-24 10:06:42 46e6944 chore: rename `StructureGroupoid.eq_on_source'` to `StructureGroupoid.mem_of_eqOnSource'` (#9802) Since it refers to `PartialEquiv.EqOnSource`, the correct naming scheme should not be snake case `eq_on_source`. I also added `mem_of_` because that's the target of the lemma, while `EqOnSource` is just a hypothesis. There are no added lemmas or docstrings in this PR. It's all just renaming. ESTIMATED CHANGES Modified Mathlib/Geometry/Manifold/ChartedSpace.lean - theorem StructureGroupoid.eq_on_source + theorem StructureGroupoid.mem_of_eqOnSource + theorem mem_pregroupoid_of_eqOnSource - theorem mem_pregroupoid_of_eq_on_source Modified Mathlib/Geometry/Manifold/LocalInvariantProperties.lean Modified Mathlib/Geometry/Manifold/SmoothManifoldWithCorners.lean Modified Mathlib/Geometry/Manifold/VectorBundle/FiberwiseLinear.lean Modified scripts/nolints.json 2024-01-24 03:45:17 cf5ad94 chore: bump Std and Aesop (#9948) ESTIMATED CHANGES Modified Mathlib/Init/Data/Int/Basic.lean Modified Mathlib/Init/Data/Int/Lemmas.lean Modified lake-manifest.json 2024-01-24 02:51:10 0faddd8 feat: `n • v` and `v` are on the same ray (#9104) From LeanAPAP ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/GroupPower/CovariantClass.lean + theorem pow_lt_pow_left' Added Mathlib/Algebra/Order/Module/Algebra.lean + theorem algebraMap_le_algebraMap + theorem algebraMap_lt_algebraMap + theorem algebraMap_mono + theorem algebraMap_nonneg + theorem algebraMap_pos + theorem algebraMap_strictMono Modified Mathlib/Algebra/Order/Module/Defs.lean Modified Mathlib/Analysis/InnerProductSpace/TwoDim.lean Modified Mathlib/Data/IsROrC/Basic.lean + theorem IsROrC.norm_nsmul Modified Mathlib/LinearAlgebra/Ray.lean +/- theorem SameRay.nonneg_smul_left +/- theorem SameRay.nonneg_smul_right +/- theorem SameRay.pos_smul_left +/- theorem SameRay.pos_smul_right +/- theorem SameRay.sameRay_nonneg_smul_left +/- theorem SameRay.sameRay_nonneg_smul_right +/- theorem SameRay.sameRay_pos_smul_left +/- theorem SameRay.sameRay_pos_smul_right 2024-01-24 02:24:12 6219c28 feat: transfer of graph properties over maps (#9708) Part of #9317. ESTIMATED CHANGES Modified Mathlib/Combinatorics/SimpleGraph/Clique.lean + theorem SimpleGraph.CliqueFree.comap Modified Mathlib/Combinatorics/SimpleGraph/Maps.lean + theorem SimpleGraph.Iso.card_edgeFinset_eq + theorem SimpleGraph.Iso.card_eq - theorem SimpleGraph.Iso.card_eq_of_iso + def SimpleGraph.overFin 2024-01-23 20:58:57 bc9337e chore(Ring.Defs): Add docstrings for `Semiring` and `Ring` (#9941) These were lost in the port. ESTIMATED CHANGES Modified Mathlib/Algebra/Ring/Defs.lean 2024-01-23 20:32:56 c60fa7e docs({ Tactic + test }/MoveAdd): improve docs, add explanatory tests (#8606) The usage of `move_oper` was unclear ([Zulip](https://leanprover.zulipchat.com/#narrow/stream/113489-new-members/topic/move_oper.20.20HAnd.2EhAnd.3F/near/403812521)). This PR corrects the docs and adds tests to show intended usage. Affected files: ```bash Tactic/MoveAdd test/MoveAdd ``` ESTIMATED CHANGES Modified Mathlib/Tactic/MoveAdd.lean Modified test/MoveAdd.lean 2024-01-23 19:39:25 a5d2da9 refactor(Data/Rat/NNRat): move BigOperator lemmas to a new file (#9917) `NNRat` has far too many dependencies at the moment. This only removes 20 from its transitive closure (1609 -> 1589 according to `lake exe graph` and `| wc -l`), but it's a start. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Data/Rat/NNRat.lean - theorem NNRat.coe_list_prod - theorem NNRat.coe_list_sum - theorem NNRat.coe_multiset_prod - theorem NNRat.coe_multiset_sum - theorem NNRat.coe_prod - theorem NNRat.coe_sum - theorem NNRat.toNNRat_prod_of_nonneg - theorem NNRat.toNNRat_sum_of_nonneg Added Mathlib/Data/Rat/NNRat/BigOperators.lean + theorem NNRat.coe_list_prod + theorem NNRat.coe_list_sum + theorem NNRat.coe_multiset_prod + theorem NNRat.coe_multiset_sum + theorem NNRat.coe_prod + theorem NNRat.coe_sum + theorem NNRat.toNNRat_prod_of_nonneg + theorem NNRat.toNNRat_sum_of_nonneg 2024-01-23 16:44:49 029e239 doc(Algebra/Group/Defs): add note on names `SMul`, `VAdd`; typo fix (#9776) Edited module docstring: * Fixed recent accidental damage * Added a note about the motivation for the names `SMul` and `VAdd` [Zulip discussion](https://leanprover.zulipchat.com/#narrow/stream/113489-new-members/topic/.60SMul.60.20and.20.60VAdd.60) ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Defs.lean 2024-01-23 14:45:11 e53e613 feat: lemmas about images of intervals under order embeddings (#9926) ESTIMATED CHANGES Modified Mathlib/Data/Set/Intervals/OrdConnected.lean + theorem OrderEmbedding.image_Icc + theorem OrderEmbedding.image_Ico + theorem OrderEmbedding.image_Ioc + theorem OrderEmbedding.image_Ioo 2024-01-23 14:45:10 26c5ad6 chore: remove spurious imports of positivity (#9924) Some of these are already transitively imported, others aren't used at all (but not handled by noshake in #9772). Mostly I wanted to avoid needing all of algebra imported (but unused!) in `FilteredColimitCommutesFiniteLimit`; there are now some `assert_not_exists` to preserve this. ESTIMATED CHANGES Modified Archive/Imo/Imo2013Q1.lean Modified Mathlib/Algebra/Order/Interval.lean Modified Mathlib/Algebra/Order/Module/OrderedSMul.lean Modified Mathlib/Algebra/Order/Pi.lean Modified Mathlib/Analysis/Distribution/SchwartzSpace.lean Modified Mathlib/Analysis/MeanInequalitiesPow.lean Modified Mathlib/Analysis/Normed/Group/Seminorm.lean Modified Mathlib/CategoryTheory/Limits/FilteredColimitCommutesFiniteLimit.lean Modified Mathlib/Combinatorics/Catalan.lean Modified Mathlib/Combinatorics/SimpleGraph/Density.lean Modified Mathlib/Data/Fintype/Card.lean Modified Mathlib/Data/Real/NNReal.lean Modified Mathlib/Data/Real/Sqrt.lean Modified Mathlib/GroupTheory/MonoidLocalization.lean Modified Mathlib/NumberTheory/FLT/Basic.lean Modified Mathlib/SetTheory/Cardinal/Basic.lean Modified Mathlib/Topology/Algebra/Order/Field.lean Modified Mathlib/Topology/MetricSpace/PseudoMetric.lean Modified Mathlib/Topology/Order/Basic.lean Modified test/fin_cases.lean 2024-01-23 13:42:12 2a76c1d feat(Topology/Order): add `nhdsWithin_Ici_basis_Icc` (#9913) ESTIMATED CHANGES Modified Mathlib/Topology/Order/Basic.lean + theorem nhdsWithin_Ici_basis_Icc + theorem nhdsWithin_Iic_basis_Icc 2024-01-23 11:19:26 9d8e1c0 chore(Padics/Hensel): golf (#9932) Motivated by @Ruben-VandeVelde's leanprover-community/mathlib#15206 ESTIMATED CHANGES Modified Mathlib/NumberTheory/Padics/Hensel.lean 2024-01-23 11:19:25 af696f3 chore(FieldTheory/Finite): golf (#9931) Motivated by @Ruben-VandeVelde's leanprover-community/mathlib#15206 ESTIMATED CHANGES Modified Mathlib/FieldTheory/Finite/Basic.lean 2024-01-23 11:19:24 7570222 feat: add lemmas about preimages of intervals under order embeddings (#9925) Also use them for `Rat.cast`. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Data/Rat/Cast/Order.lean +/- theorem Rat.preimage_cast_Icc +/- theorem Rat.preimage_cast_Ici +/- theorem Rat.preimage_cast_Ico +/- theorem Rat.preimage_cast_Iic +/- theorem Rat.preimage_cast_Iio +/- theorem Rat.preimage_cast_Ioc +/- theorem Rat.preimage_cast_Ioi +/- theorem Rat.preimage_cast_Ioo + theorem Rat.preimage_cast_uIcc + theorem Rat.preimage_cast_uIoc Added Mathlib/Data/Set/Intervals/OrderEmbedding.lean + theorem OrderEmbedding.preimage_Icc + theorem OrderEmbedding.preimage_Ici + theorem OrderEmbedding.preimage_Ico + theorem OrderEmbedding.preimage_Iic + theorem OrderEmbedding.preimage_Iio + theorem OrderEmbedding.preimage_Ioc + theorem OrderEmbedding.preimage_Ioi + theorem OrderEmbedding.preimage_Ioo + theorem OrderEmbedding.preimage_uIcc + theorem OrderEmbedding.preimage_uIoc 2024-01-23 11:19:22 10cdffc chore: make nightly-testing-YYYY-MM-DD a tag, not a branch (#9842) Previously we continued to push updates through the day, if later commits on `nightly-testing` continued to pass CI. There seems to be little benefit from doing this, but there are some benefits from having a single tag: * all Lean PRs based off a particular Lean nightly will be tested against the same Mathlib commit * we can request that the speedcenter processes the nightly-testing-YYYY-MM-DD tags, so we can run `!bench` in all lean-pr-testing-NNNN PRs, and have a reliable base for the comparison This should not be merged until the Lean CI has been updated in https://github.com/leanprover/lean4/pull/3199, so it is agnostic about whether to expect a branch or tag here. - [x] depends on: https://github.com/leanprover/lean4/pull/3199 When this is approved/merged I will follow up with: * an update to https://leanprover-community.github.io/contribute/tags_and_branches.html to describe the change * investigating a mechanism to ask the speedcenter to process these commits. ESTIMATED CHANGES Modified .github/workflows/nightly_detect_failure.yml 2024-01-23 11:19:21 6980d33 chore: Lean PR bot adds full-ci label on failure (#9801) If a `lean-pr-testing-NNNN` branch fails, add the label `full-ci` to leanprover/lean4#NNNN (we already add the `breaks-mathlib` label), so that when a human arrives to diagnose the problem toolchains for all OSs are available. ESTIMATED CHANGES Modified scripts/lean-pr-testing-comments.sh 2024-01-23 11:19:20 f501849 chore: better CI reporting to Lean repository for lean-pr-testing-NNNN branches (#9770) This is only relevant for lean-pr-testing-NNNN branches Previously some failure modes (the noisy checker, the archive, counterexamples) would result in a comment on the Lean PR, but the labels wouldn't be updated. This is more thorough, and slightly simplifies the logic. ESTIMATED CHANGES Modified .github/workflows/bors.yml Modified .github/workflows/build.yml Modified .github/workflows/build.yml.in Modified .github/workflows/build_fork.yml Modified scripts/lean-pr-testing-comments.sh 2024-01-23 11:19:19 dab14df chore: don't upload cache in CI if build was skipped (#8987) As suggested on [zulip](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/Some.20files.20not.20found.20in.20the.20cache/near/407183836). ESTIMATED CHANGES Modified .github/workflows/bors.yml Modified .github/workflows/build.yml Modified .github/workflows/build.yml.in Modified .github/workflows/build_fork.yml 2024-01-23 11:19:17 4bde836 feat: uniqueness of integral curves of a vector field on a manifold (#8886) We prove the uniqueness of integral curves of a vector field on a manifold using the uniqueness theorem for solutions to ODEs. ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Ring/Abs.lean + theorem exists_abs_lt Modified Mathlib/Analysis/ODE/Gronwall.lean +/- theorem ODE_solution_unique + theorem ODE_solution_unique_of_eventually + theorem ODE_solution_unique_of_mem_Icc + theorem ODE_solution_unique_of_mem_Icc_left + theorem ODE_solution_unique_of_mem_Icc_right + theorem ODE_solution_unique_of_mem_Ioo - theorem ODE_solution_unique_of_mem_set +/- theorem dist_le_of_approx_trajectories_ODE + theorem dist_le_of_approx_trajectories_ODE_of_mem - theorem dist_le_of_approx_trajectories_ODE_of_mem_set +/- theorem dist_le_of_trajectories_ODE + theorem dist_le_of_trajectories_ODE_of_mem - theorem dist_le_of_trajectories_ODE_of_mem_set Modified Mathlib/Geometry/Manifold/IntegralCurve.lean + theorem IsIntegralCurve.continuous + theorem IsIntegralCurveAt.continuousAt + theorem IsIntegralCurveAt.eventually_hasDerivAt + theorem IsIntegralCurveOn.continuousAt + theorem IsIntegralCurveOn.continuousOn + theorem IsIntegralCurveOn.hasDerivAt - theorem isIntegralCurvOn_comp_mul_ne_zero + theorem isIntegralCurveAt_eventuallyEq_of_contMDiffAt + theorem isIntegralCurveAt_eventuallyEq_of_contMDiffAt_boundaryless + theorem isIntegralCurveOn_Ioo_eqOn_of_contMDiff + theorem isIntegralCurveOn_Ioo_eqOn_of_contMDiff_boundaryless + theorem isIntegralCurveOn_comp_mul_ne_zero + theorem isIntegralCurve_Ioo_eq_of_contMDiff_boundaryless + theorem isIntegralCurve_eq_of_contMDiff Modified Mathlib/Geometry/Manifold/MFDeriv/Atlas.lean + theorem mfderiv_chartAt_eq_tangentCoordChange 2024-01-23 09:49:36 2475f30 feat(Order/WithBot): add `WithBot.lt_coe_bot` (#9898) * Add `WithBot.lt_coe_bot` and `WithTop.coe_top_lt`. * Use them to golf `Nat.WithBot.lt_zero_iff`, make `n` argument implicit. * Add `section Preorder` for `WithBot` and `WithTop`. * Move some lemmas to appropriate sections. * Add `simp` to `WithBot.bot_lt_coe` and `WithTop.coe_lt_top`. * Use the `OrderDual` trick to golf some proofs. ESTIMATED CHANGES Modified Mathlib/Data/Nat/WithBot.lean +/- theorem Nat.WithBot.lt_zero_iff Modified Mathlib/Data/Polynomial/RingDivision.lean Modified Mathlib/Order/WithBot.lean +/- theorem WithBot.coe_mono +/- theorem WithBot.coe_strictMono +/- theorem WithBot.le_coe_unbot' + theorem WithBot.lt_coe_bot +/- theorem WithBot.map_le_iff +/- theorem WithBot.monotone_iff +/- theorem WithBot.monotone_map_iff +/- theorem WithBot.strictAnti_iff +/- theorem WithBot.strictMono_iff +/- theorem WithBot.strictMono_map_iff +/- theorem WithBot.unbot'_le_iff +/- theorem WithBot.unbot'_lt_iff +/- theorem WithTop.coe_mono +/- theorem WithTop.coe_strictMono + theorem WithTop.coe_top_lt +/- theorem WithTop.coe_untop'_le +/- theorem WithTop.le_untop'_iff +/- theorem WithTop.lt_untop'_iff +/- theorem WithTop.map_le_iff +/- theorem WithTop.monotone_iff +/- theorem WithTop.monotone_map_iff +/- theorem WithTop.strictAnti_iff +/- theorem WithTop.strictMono_iff +/- theorem WithTop.strictMono_map_iff 2024-01-23 06:58:30 5158eea feat: case-specific equivalences for `IsROrC` (#9782) This adds ring isomorphisms and linear isometry equivalences between `𝕜` satisfying `IsROrC 𝕜` and `ℝ` or `ℂ` depending on whether `I = 0` or `im I = 1`. Of course, the design of `IsROrC` is meant to eliminate the need for such things most of the time, but these are helpful in the rare case one actually does need to split into the two cases in the middle of a proof. ESTIMATED CHANGES Modified Mathlib/Analysis/Complex/Basic.lean + theorem Complex.normSq_eq_norm_sq + def IsROrC.complexLinearIsometryEquiv + def IsROrC.complexRingEquiv Modified Mathlib/Data/IsROrC/Basic.lean + theorem IsROrC.I_eq_zero_or_im_I_eq_one + theorem IsROrC.im_eq_zero + def IsROrC.realRingEquiv 2024-01-23 04:27:59 999e59b fix: `shake` bug, improve noshake.json generation (#9772) - [ ] depends on: #9830 This is the `noshake.json` file corresponding to the edits in leanprover/std4#533. There was a small bug in `shake` making it much more conservative than it needed to be, so there is a big mathlib PR #9830, on which this PR depends because CI will not pass without it. ESTIMATED CHANGES Modified Mathlib/Data/Int/Order/Basic.lean Modified Shake/Main.lean Modified scripts/noshake.json 2024-01-23 02:18:50 e808ef0 chore: bump Std and Aesop (#9922) ESTIMATED CHANGES Modified lake-manifest.json 2024-01-23 02:18:49 8050059 feat: implement rpow norm_num extension (#9893) * Implements a norm_num extension for `a ^ b` where `a` and `b` are reals. Unlike in the mathlib3 version, there is no restriction on the positivity of `a`. * Moves commented-out tests from test/norm_num_ext.lean into a new file test/norm_num_rpow.lean, to keep the dependencies of norm_num_ext.lean lightweight. ESTIMATED CHANGES Modified Mathlib/Analysis/SpecialFunctions/Pow/Real.lean + def Mathlib.Meta.NormNum.evalRPow + theorem Mathlib.Meta.NormNum.isInt_rpow_neg + theorem Mathlib.Meta.NormNum.isInt_rpow_pos + theorem Mathlib.Meta.NormNum.isNat_rpow_neg + theorem Mathlib.Meta.NormNum.isNat_rpow_pos + theorem Mathlib.Meta.NormNum.isRat_rpow_neg + theorem Mathlib.Meta.NormNum.isRat_rpow_pos Modified Mathlib/NumberTheory/Bertrand.lean Modified test/norm_num_ext.lean Added test/norm_num_rpow.lean 2024-01-23 00:50:28 b4f6049 feat(GroupTheory/GroupAction/Defs): `isPretransitive_of_compHom` (#9122) This PR adds `isPretransitive_of_compHom` after the related `isPretransitive_compHom`. ESTIMATED CHANGES Modified Mathlib/GroupTheory/GroupAction/Defs.lean + theorem MulAction.IsPretransitive.of_compHom + theorem MulAction.IsPretransitive.of_isScalarTower + theorem MulAction.IsPretransitive.of_smul_eq 2024-01-23 00:09:58 99315bf feat(Algebra/AddConstMap): new file (#9725) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/AddConstMap/Basic.lean + def AddConstMap.addLeftHom + theorem AddConstMap.coe_mk + theorem AddConstMap.coe_mul + theorem AddConstMap.coe_one + theorem AddConstMap.coe_pow + theorem AddConstMap.coe_vadd + def AddConstMap.comp + theorem AddConstMap.comp_id + def AddConstMap.conjNeg + theorem AddConstMap.conjNeg_symm + theorem AddConstMap.id_comp + def AddConstMap.mkFract + theorem AddConstMap.mk_coe + theorem AddConstMap.mul_def + theorem AddConstMap.one_def + theorem AddConstMap.pow_apply + def AddConstMap.replaceConsts + def AddConstMap.smul + structure AddConstMap + theorem AddConstMapClass.antitone_iff_Icc + theorem AddConstMapClass.map_add_int' + theorem AddConstMapClass.map_add_int + theorem AddConstMapClass.map_add_nat' + theorem AddConstMapClass.map_add_nat + theorem AddConstMapClass.map_add_nsmul + theorem AddConstMapClass.map_add_ofNat' + theorem AddConstMapClass.map_add_ofNat + theorem AddConstMapClass.map_add_one + theorem AddConstMapClass.map_add_zsmul + theorem AddConstMapClass.map_const + theorem AddConstMapClass.map_const_add + theorem AddConstMapClass.map_fract + theorem AddConstMapClass.map_int_add' + theorem AddConstMapClass.map_int_add + theorem AddConstMapClass.map_nat' + theorem AddConstMapClass.map_nat + theorem AddConstMapClass.map_nat_add' + theorem AddConstMapClass.map_nat_add + theorem AddConstMapClass.map_nsmul_add + theorem AddConstMapClass.map_nsmul_const + theorem AddConstMapClass.map_ofNat' + theorem AddConstMapClass.map_ofNat + theorem AddConstMapClass.map_ofNat_add' + theorem AddConstMapClass.map_ofNat_add + theorem AddConstMapClass.map_one + theorem AddConstMapClass.map_one_add + theorem AddConstMapClass.map_sub_const + theorem AddConstMapClass.map_sub_int' + theorem AddConstMapClass.map_sub_int + theorem AddConstMapClass.map_sub_nat' + theorem AddConstMapClass.map_sub_nsmul + theorem AddConstMapClass.map_sub_ofNat' + theorem AddConstMapClass.map_sub_one + theorem AddConstMapClass.map_sub_zsmul + theorem AddConstMapClass.map_zsmul_add + theorem AddConstMapClass.map_zsmul_const + theorem AddConstMapClass.monotone_iff_Icc + theorem AddConstMapClass.strictAnti_iff_Icc + theorem AddConstMapClass.strictMono_iff_Icc 2024-01-22 21:46:06 5a0540a feat: implement zpow norm_num extension (#9875) ESTIMATED CHANGES Modified Mathlib/Tactic/NormNum/Pow.lean + def Mathlib.Meta.NormNum.evalZPow + theorem Mathlib.Meta.NormNum.isInt_zpow_neg + theorem Mathlib.Meta.NormNum.isInt_zpow_pos + theorem Mathlib.Meta.NormNum.isNat_zpow_neg + theorem Mathlib.Meta.NormNum.isNat_zpow_pos + theorem Mathlib.Meta.NormNum.isRat_zpow_neg + theorem Mathlib.Meta.NormNum.isRat_zpow_pos Modified test/norm_num.lean 2024-01-22 20:12:06 2a7c4d6 feat(NumberTheory/EllipticDivisibilitySequence): define elliptic divisibility sequences (#9375) As a generalisation of the division polynomials in #6703 but also possibly for other number theoretic purposes. The recurrence relation is defined as `isEllDivSequence`, and a concrete sequence is defined as `EllDivSequence`. The fact that the two definitions are related requires a very long inductive proof, and will not be touched on in this PR. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/NumberTheory/EllipticDivisibilitySequence.lean + def IsDivSequence + theorem IsDivSequence_id + theorem IsDivSequence_mul + def IsEllDivSequence + theorem IsEllDivSequence_id + theorem IsEllDivSequence_mul + def IsEllSequence + theorem IsEllSequence_id + theorem IsEllSequence_mul + def normEDS' + theorem normEDS'_even + theorem normEDS'_four + theorem normEDS'_odd + theorem normEDS'_one + theorem normEDS'_three + theorem normEDS'_two + theorem normEDS'_zero + def normEDS + theorem normEDS_even + theorem normEDS_four + theorem normEDS_neg + theorem normEDS_odd + theorem normEDS_one + theorem normEDS_three + theorem normEDS_two + theorem normEDS_zero 2024-01-22 18:51:16 8080f08 chore: tidy various files (#9903) ESTIMATED CHANGES Modified Mathlib/Algebra/AddTorsor.lean Modified Mathlib/Algebra/CharP/Basic.lean Modified Mathlib/Algebra/CharP/ExpChar.lean Modified Mathlib/Analysis/Fourier/AddCircle.lean Modified Mathlib/Analysis/NormedSpace/PiLp.lean Modified Mathlib/Analysis/SpecialFunctions/Gaussian.lean Modified Mathlib/Combinatorics/SimpleGraph/Maps.lean + theorem SimpleGraph.Hom.coe_ofLE - theorem SimpleGraph.Hom.coe_ofLe + def SimpleGraph.Hom.ofLE - def SimpleGraph.Hom.ofLe Modified Mathlib/Data/Fintype/Prod.lean Modified Mathlib/GroupTheory/MonoidLocalization.lean Modified Mathlib/GroupTheory/Nilpotent.lean Modified Mathlib/Logic/Nonempty.lean Modified Mathlib/NumberTheory/ModularForms/JacobiTheta/OneVariable.lean Modified Mathlib/NumberTheory/NumberField/Units.lean Modified Mathlib/Topology/PartitionOfUnity.lean Modified Mathlib/Topology/UniformSpace/UniformConvergenceTopology.lean 2024-01-22 18:10:11 69a8f62 doc: remove stray 'a' in doc comment about PMOD (#9918) "congruent modulo a\`p\`" -> "congruent modulo \`p\`" ESTIMATED CHANGES Modified Mathlib/Algebra/ModEq.lean 2024-01-22 17:37:20 ad024fe fix: typo in module docstring (#9916) ESTIMATED CHANGES Modified Mathlib/Algebra/Lie/Killing.lean 2024-01-22 17:37:19 012256b chore(Topology/Partial): rename type variables (#9862) We use letters X and Y for topological spaces now, not Greek letters. ESTIMATED CHANGES Modified Mathlib/Topology/Partial.lean +/- def PContinuous +/- theorem continuousWithinAt_iff_ptendsto_res +/- theorem open_dom_of_pcontinuous +/- theorem pcontinuous_iff' +/- theorem ptendsto'_nhds +/- theorem ptendsto_nhds +/- theorem rtendsto'_nhds +/- theorem rtendsto_nhds 2024-01-22 16:16:32 9a07518 chore: bump Aesop (#9905) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Category/Basic.lean Modified Mathlib/Combinatorics/SimpleGraph/Basic.lean Modified Mathlib/Data/Matroid/Basic.lean Modified Mathlib/Data/Nat/WithBot.lean Modified Mathlib/Tactic/Continuity.lean Modified Mathlib/Tactic/Measurability.lean Modified Mathlib/Topology/Sheaves/Presheaf.lean Modified lake-manifest.json 2024-01-22 15:15:19 6d0b012 chore(RepresentationTheory/Action): Factor out constructors for `Action V G` from `MulAction G X` (#9662) Further splits `Mathlib.RepresentationTheory.Action.Basic` and factors out the construction of objects of `Action V G` from a `MulAction G X` instance. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/RepresentationTheory/Action/Basic.lean - def Action.diagonal - def Action.diagonalOneIsoLeftRegular - def Action.leftRegular - def Action.ofMulAction - def Action.ofMulActionLimitCone - theorem Action.ofMulAction_apply Added Mathlib/RepresentationTheory/Action/Concrete.lean + def Action.diagonal + def Action.diagonalOneIsoLeftRegular + def Action.leftRegular + def Action.ofMulAction + def Action.ofMulActionLimitCone + theorem Action.ofMulAction_apply Modified Mathlib/RepresentationTheory/Action/Monoidal.lean 2024-01-22 13:53:39 e6edc5a feat(Intervals/WithBotTop): generalize to `Preorder` (#9899) ESTIMATED CHANGES Modified Mathlib/Data/Set/Intervals/WithBotTop.lean 2024-01-22 13:53:37 1612bb7 chore(Order/WithBot): use `OrderDual` trick to golf some proofs (#9897) - Move `WithBot.instWellFoundedGT` up. - Use the `OrderDual` trick to golf some proofs. ESTIMATED CHANGES Modified Mathlib/Order/WithBot.lean 2024-01-22 13:53:36 e7d586f chore(Order/Ring/Pow): rename type variable (#9880) ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Ring/Pow.lean 2024-01-22 13:53:35 b514c58 chore(Trigonometric/Basic): reorder, golf (#9867) ESTIMATED CHANGES Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Basic.lean +/- theorem Real.strictMonoOn_tan 2024-01-22 13:53:34 585f7a4 refactor(MeasureTheory/Covering): redefine `filterAt` using `smallSets` (#9852) ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Covering/Differentiation.lean Modified Mathlib/MeasureTheory/Covering/VitaliFamily.lean + theorem Filter.HasBasis.vitaliFamily - theorem VitaliFamily.eventually_filterAt_mem_sets + theorem VitaliFamily.eventually_filterAt_mem_setsAt +/- def VitaliFamily.filterAt + theorem VitaliFamily.filterAt_basis_closedBall 2024-01-22 12:55:15 8ca0042 fix(WithBot): fix 2 typos (#9900) ESTIMATED CHANGES Modified Mathlib/Order/WithBot.lean +/- theorem WithBot.lt_coe_iff +/- theorem WithTop.coe_lt_iff 2024-01-22 09:31:48 8cab1b0 feat(Nat/Prime): weaken assumptions in `Nat.not_prime_mul` (#9901) Assume `_ ≠ 1` instead of `1 < _` in `Nat.not_prime_mul`, `Nat.not_prime_mul'`, `Int.not_prime_of_int_mul`. ESTIMATED CHANGES Modified Archive/Imo/Imo1969Q1.lean Modified Mathlib/Data/Int/NatPrime.lean +/- theorem Int.not_prime_of_int_mul Modified Mathlib/Data/Nat/Prime.lean +/- theorem Nat.not_prime_mul' +/- theorem Nat.not_prime_mul Modified Mathlib/NumberTheory/FermatPsp.lean Modified Mathlib/Tactic/NormNum/Prime.lean 2024-01-21 02:48:48 7466efc chore(Algebra/AddTorsor): names with lower indices (#9616) Use variable names `p₁`, `p₂` etc instead of `p1`, `p2` etc. ESTIMATED CHANGES Modified Mathlib/Algebra/AddTorsor.lean +/- theorem eq_of_vsub_eq_zero +/- theorem eq_vadd_iff_vsub_eq +/- theorem neg_vsub_eq_vsub_rev +/- theorem vadd_right_cancel +/- theorem vadd_right_cancel_iff +/- theorem vadd_vsub_assoc +/- theorem vadd_vsub_vadd_cancel_left +/- theorem vsub_add_vsub_cancel +/- theorem vsub_eq_sub +/- theorem vsub_eq_zero_iff_eq +/- theorem vsub_left_cancel +/- theorem vsub_left_cancel_iff +/- theorem vsub_right_cancel +/- theorem vsub_right_cancel_iff +/- theorem vsub_sub_vsub_cancel_left +/- theorem vsub_sub_vsub_cancel_right +/- theorem vsub_vadd +/- theorem vsub_vadd_comm +/- theorem vsub_vadd_eq_vsub_sub 2024-01-20 23:57:45 77d078e chore(Geometry/Manifold/PartitionOfUnity): rename "of_closed" to "of_isClosed" in two lemmas (#9874) And fix a typo-ed lemma name in a doc comment. ESTIMATED CHANGES Modified Mathlib/Geometry/Manifold/PartitionOfUnity.lean - theorem exists_msmooth_zero_iff_one_iff_of_closed + theorem exists_msmooth_zero_iff_one_iff_of_isClosed - theorem exists_smooth_zero_one_of_closed + theorem exists_smooth_zero_one_of_isClosed 2024-01-20 23:31:35 2a453c9 fix(Filter/Extr): typo in docstring (#9876) if Is{Min,Max}On, and clarify Is{Min,Max}Filter slightly. ESTIMATED CHANGES Modified Mathlib/Order/Filter/Extr.lean 2024-01-20 21:21:31 def91a5 chore(Geometry/Manifold/PartitionOfUnity): remove outdated comment (#9871) This comment was written by @urkud back then - but presumably forgotten to adjust then the proof of Whitney embedding moved into its own file. ESTIMATED CHANGES Modified Mathlib/Geometry/Manifold/PartitionOfUnity.lean 2024-01-20 16:06:42 e3c20cb feat: `BoundedSMul` for matrix norms (#9817) This provides the fact that the norm of scaling a matrix of quaternions by a quaternion is bounded by the product of the norms. ESTIMATED CHANGES Modified Mathlib/Analysis/Matrix.lean + theorem Matrix.frobeniusBoundedSMul 2024-01-20 14:41:50 052d8d5 chore: rename `Equiv.subset_image` (#9800) `Finset` versions of the renamed lemmas are also added. ESTIMATED CHANGES Modified Mathlib/Data/Finset/Image.lean + theorem Finset.map_symm_subset + theorem Finset.subset_map_symm Modified Mathlib/LinearAlgebra/AffineSpace/Independent.lean Modified Mathlib/Logic/Equiv/Set.lean Modified Mathlib/Order/CountableDenseLinearOrder.lean 2024-01-20 11:07:19 9d89f49 feat(Analysis/NormedSpace/Multilinear.Basic): operator norm on `ContinuousMultilinearMap` for seminormed spaces (#9700) Slightly generalize the definition of the operator norm on `ContinuousMultilinearMap` so that it works when the spaces have seminorms (and not just norms). There are two new lemmas `MultilinearMap.zero_of_continuous_of_one_entry_norm_zero` and `MultilinearMap.bound_of_shell_of_continuous` that do the work of the old lemma `MultilinearMap.bound_of_shell`; I kept that last lemma (with the same hypotheses as before) in case it is useful somewhere else. Also, `ContinuousMultilinearMap` only gets a `SeminormedAddCommGroup` instance in general, which is upgraded to a `NormedAddCommGroup` instance if the target space is normed. Other lemmas and their proofs are unchanged, they are just rearranged to separate the ones that work for general seminormed spaces and the ones that only work for normed spaces. ESTIMATED CHANGES Modified Mathlib/Analysis/Calculus/BumpFunction/FiniteDimension.lean Modified Mathlib/Analysis/Distribution/SchwartzSpace.lean Modified Mathlib/Analysis/NormedSpace/Multilinear/Basic.lean + theorem MultilinearMap.bound_of_shell_of_continuous + theorem MultilinearMap.bound_of_shell_of_norm_map_coord_zero + theorem MultilinearMap.norm_map_coord_zero 2024-01-20 09:50:37 df8fb03 feat: Prove some results on bases of fractional ideals of number fields (#9836) - Add the instances that fractional ideals of number fields are finite and free $\mathbb{Z}$-modules - For `I : (FractionalIdeal (𝓞 K)⁰ K)ˣ` with `K` a number field, define a basis of `K` that spans `I` over $\mathbb{Z}$ - Prove that the determinant of that basis over an integral basis of `K` is the absolute norm of `I` ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/NumberTheory/NumberField/FractionalIdeal.lean + theorem NumberField.basisOfFractionalIdeal_apply + theorem NumberField.det_basisOfFractionalIdeal_eq_absNorm + theorem NumberField.fractionalIdeal_rank + theorem NumberField.mem_span_basisOfFractionalIdeal Modified Mathlib/RingTheory/FractionalIdeal/Operations.lean + theorem FractionalIdeal.num_eq_zero_iff + theorem FractionalIdeal.num_le 2024-01-20 09:50:36 8b0b0e7 chore: Move lemmas about `Int.natAbs` and `zpowersHom` (#9806) These can be defined earlier for free. Part of #9411 ESTIMATED CHANGES Modified Mathlib/Algebra/GroupPower/Lemmas.lean - theorem AddMonoidHom.apply_int - theorem Int.cast_mul_eq_zsmul_cast - theorem Int.le_self_sq - theorem Int.natAbs_le_self_sq - theorem Int.natAbs_sq - theorem MonoidHom.apply_mint - theorem bit0_mul - theorem bit1_mul - theorem mul_bit0 - theorem mul_bit1 - theorem pow_eq - def zmultiplesAddHom - theorem zmultiplesAddHom_apply - theorem zmultiplesAddHom_symm_apply - def zmultiplesHom - theorem zmultiplesHom_apply - theorem zmultiplesHom_symm_apply - def zpowersHom - theorem zpowersHom_apply - theorem zpowersHom_symm_apply - def zpowersMulHom - theorem zpowersMulHom_apply - theorem zpowersMulHom_symm_apply Modified Mathlib/Data/Int/Cast/Lemmas.lean + theorem AddMonoidHom.apply_int + theorem MonoidHom.apply_mint + def zmultiplesAddHom + theorem zmultiplesAddHom_apply + theorem zmultiplesAddHom_symm_apply + def zmultiplesHom + theorem zmultiplesHom_apply + theorem zmultiplesHom_symm_apply + def zpowersHom + theorem zpowersHom_apply + theorem zpowersHom_symm_apply + def zpowersMulHom + theorem zpowersMulHom_apply + theorem zpowersMulHom_symm_apply Modified Mathlib/Data/Int/Dvd/Basic.lean Modified Mathlib/Data/Int/Order/Basic.lean + theorem Int.cast_mul_eq_zsmul_cast + theorem Int.le_self_sq + theorem Int.natAbs_le_self_sq + theorem Int.natAbs_sq + theorem bit0_mul + theorem bit1_mul + theorem mul_bit0 + theorem mul_bit1 2024-01-20 09:10:24 5e6b323 doc(MetricSpace/Hausdorff): style fixes in doc comments (#9856) * End sentences with a full stop (per the style guide). * Fix grammar in a few trivial cases. * Use "triangle inequality", not "triangular inequality". ESTIMATED CHANGES Modified Mathlib/Topology/MetricSpace/HausdorffDistance.lean 2024-01-19 23:40:13 eb34a25 chore(Topology/PartialHomeomorph): minor clean-up (#9633) - group related results into sections - move one section up, to a more logical place ESTIMATED CHANGES Modified Mathlib/Topology/PartialHomeomorph.lean 2024-01-19 22:02:33 0a33acc chore: tidy various files (#9851) ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/NonUnitalSubalgebra.lean Modified Mathlib/Algebra/Group/PNatPowAssoc.lean Modified Mathlib/Algebra/Order/Module/Defs.lean Modified Mathlib/Data/PNat/Factors.lean +/- theorem PrimeMultiset.prod_smul Modified Mathlib/Data/Polynomial/RingDivision.lean Modified Mathlib/Data/Set/Finite.lean +/- theorem Set.empty_card' Modified Mathlib/Data/Set/Pointwise/Basic.lean Modified Mathlib/FieldTheory/Minpoly/MinpolyDiv.lean Modified Mathlib/FieldTheory/Separable.lean Modified Mathlib/Geometry/Manifold/InteriorBoundary.lean +/- theorem ModelWithCorners.interior_eq_univ Modified Mathlib/GroupTheory/Subsemigroup/Center.lean Modified Mathlib/LinearAlgebra/Basis.lean Modified Mathlib/LinearAlgebra/Dimension/Finite.lean Modified Mathlib/LinearAlgebra/Dual.lean Modified Mathlib/LinearAlgebra/Matrix/Hermitian.lean +/- theorem Matrix.isHermitian_diagonal_iff Modified Mathlib/NumberTheory/ArithmeticFunction.lean Modified Mathlib/Probability/Process/Stopping.lean Modified Mathlib/RingTheory/DiscreteValuationRing/TFAE.lean Modified Mathlib/RingTheory/Finiteness.lean Modified Mathlib/RingTheory/NonUnitalSubsemiring/Basic.lean Modified Mathlib/Tactic/ModCases.lean 2024-01-19 22:02:32 369ad8f docs: improve `Finite` docstring (#9667) ESTIMATED CHANGES Modified Mathlib/Data/Finite/Defs.lean 2024-01-19 22:02:31 a3794dc feat(Data/Set/Finite): Induction principle for `Set` (#9123) This PR adds another induction principle for `Set` where you prove that a property `C` holds of `Set.univ` by proving the inductive step `C S → ∃ a ∉ S, C (insert a S)` (the key being exists the use of exists rather than forall). ESTIMATED CHANGES Modified Mathlib/Data/Set/Finite.lean + theorem Set.Finite.induction_to + theorem Set.Finite.induction_to_univ 2024-01-19 21:22:13 38082d8 feat: notation and delaborator for inner product (#9314) ESTIMATED CHANGES Modified Mathlib/Analysis/InnerProductSpace/Basic.lean 2024-01-19 19:40:11 99f0812 chore: scope symmDiff notations (#9844) Those notations are not scoped whereas the file is very low in the import hierarchy. ESTIMATED CHANGES Modified Mathlib/Algebra/Function/Indicator.lean Modified Mathlib/Algebra/Order/Support.lean Modified Mathlib/Algebra/Ring/BooleanRing.lean Modified Mathlib/Analysis/Normed/Group/Basic.lean Modified Mathlib/Combinatorics/Colex.lean Modified Mathlib/Data/Finset/Basic.lean Modified Mathlib/Data/Finset/Image.lean Modified Mathlib/Data/Finset/Pointwise.lean Modified Mathlib/Data/Fintype/Basic.lean Modified Mathlib/Data/MvPolynomial/Basic.lean Modified Mathlib/Data/Set/Basic.lean Modified Mathlib/Data/Set/Finite.lean Modified Mathlib/Data/Set/Image.lean Modified Mathlib/Data/Set/Pointwise/SMul.lean Modified Mathlib/Dynamics/Ergodic/MeasurePreserving.lean Modified Mathlib/MeasureTheory/Decomposition/Jordan.lean Modified Mathlib/MeasureTheory/Decomposition/SignedHahn.lean Modified Mathlib/MeasureTheory/Function/LpSeminorm.lean Modified Mathlib/MeasureTheory/MeasurableSpace/Defs.lean Modified Mathlib/MeasureTheory/Measure/MeasureSpace.lean Modified Mathlib/MeasureTheory/Measure/MeasureSpaceDef.lean Modified Mathlib/MeasureTheory/Measure/Typeclasses.lean Modified Mathlib/NumberTheory/Rayleigh.lean Modified Mathlib/Order/Heyting/Hom.lean Modified Mathlib/Order/Hom/Lattice.lean Modified Mathlib/Order/SymmDiff.lean 2024-01-19 16:41:34 de9c7b5 chore: Split `RingTheory.FractionalIdeal.Basic` (#9854) The file `RingTheory.FractionalIdeal.Basic` is more than 1600 lines long. This PR splits it into two files: `Basic` and `Operations` following the model of `RingTheory.Ideal.Basic` and `RingTheory.Ideal.Operations` ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/RingTheory/DedekindDomain/Ideal.lean Modified Mathlib/RingTheory/FractionalIdeal/Basic.lean - def FractionalIdeal.adjoinIntegral - theorem FractionalIdeal.adjoinIntegral_coe - theorem FractionalIdeal.canonicalEquiv_canonicalEquiv - theorem FractionalIdeal.canonicalEquiv_coeIdeal - theorem FractionalIdeal.canonicalEquiv_flip - theorem FractionalIdeal.canonicalEquiv_self - theorem FractionalIdeal.canonicalEquiv_spanSingleton - theorem FractionalIdeal.canonicalEquiv_symm - theorem FractionalIdeal.canonicalEquiv_trans_canonicalEquiv - theorem FractionalIdeal.coeFun_mapEquiv - theorem FractionalIdeal.coeIdeal_eq_one - theorem FractionalIdeal.coeIdeal_eq_zero - theorem FractionalIdeal.coeIdeal_fg - theorem FractionalIdeal.coeIdeal_inj - theorem FractionalIdeal.coeIdeal_injective - theorem FractionalIdeal.coeIdeal_ne_one - theorem FractionalIdeal.coeIdeal_ne_zero - theorem FractionalIdeal.coeIdeal_span_singleton - theorem FractionalIdeal.coe_div - theorem FractionalIdeal.coe_map - theorem FractionalIdeal.coe_spanSingleton - theorem FractionalIdeal.den_mul_self_eq_num' - theorem FractionalIdeal.div_nonzero - theorem FractionalIdeal.div_one - theorem FractionalIdeal.div_spanSingleton - theorem FractionalIdeal.div_zero - theorem FractionalIdeal.eq_one_div_of_mul_eq_one_right - theorem FractionalIdeal.eq_spanSingleton_mul - theorem FractionalIdeal.eq_spanSingleton_of_principal - theorem FractionalIdeal.eq_zero_or_one - theorem FractionalIdeal.eq_zero_or_one_of_isField - theorem FractionalIdeal.exists_eq_spanSingleton_mul - theorem FractionalIdeal.exists_ne_zero_mem_isInteger - theorem FractionalIdeal.fg_of_isUnit - theorem FractionalIdeal.fg_unit - theorem FractionalIdeal.fractional_div_of_nonzero - theorem FractionalIdeal.isFractional_adjoin_integral - theorem FractionalIdeal.isFractional_of_fg - theorem FractionalIdeal.isFractional_span_iff - theorem FractionalIdeal.isFractional_span_singleton - theorem FractionalIdeal.isNoetherian - theorem FractionalIdeal.isNoetherian_coeIdeal - theorem FractionalIdeal.isNoetherian_iff - theorem FractionalIdeal.isNoetherian_spanSingleton_inv_to_map_mul - theorem FractionalIdeal.isNoetherian_zero - theorem FractionalIdeal.isPrincipal_iff - theorem FractionalIdeal.le_div_iff_mul_le - theorem FractionalIdeal.le_div_iff_of_nonzero - theorem FractionalIdeal.le_self_mul_one_div - theorem FractionalIdeal.le_spanSingleton_mul_iff - def FractionalIdeal.map - def FractionalIdeal.mapEquiv - theorem FractionalIdeal.mapEquiv_apply - theorem FractionalIdeal.mapEquiv_refl - theorem FractionalIdeal.mapEquiv_symm - theorem FractionalIdeal.map_add - theorem FractionalIdeal.map_coeIdeal - theorem FractionalIdeal.map_comp - theorem FractionalIdeal.map_div - theorem FractionalIdeal.map_eq_zero_iff - theorem FractionalIdeal.map_id - theorem FractionalIdeal.map_injective - theorem FractionalIdeal.map_map_symm - theorem FractionalIdeal.map_mem_map - theorem FractionalIdeal.map_mul - theorem FractionalIdeal.map_ne_zero - theorem FractionalIdeal.map_one - theorem FractionalIdeal.map_one_div - theorem FractionalIdeal.map_symm_map - theorem FractionalIdeal.map_zero - theorem FractionalIdeal.mem_adjoinIntegral_self - theorem FractionalIdeal.mem_canonicalEquiv_apply - theorem FractionalIdeal.mem_div_iff_of_nonzero - theorem FractionalIdeal.mem_map - theorem FractionalIdeal.mem_singleton_mul - theorem FractionalIdeal.mem_spanSingleton - theorem FractionalIdeal.mem_spanSingleton_self - theorem FractionalIdeal.mem_span_mul_finite_of_mem_mul - theorem FractionalIdeal.mk'_mul_coeIdeal_eq_coeIdeal - theorem FractionalIdeal.mul_div_self_cancel_iff - theorem FractionalIdeal.mul_one_div_le_one - theorem FractionalIdeal.ne_zero_of_mul_eq_one - theorem FractionalIdeal.one_div_spanSingleton - def FractionalIdeal.spanFinset - theorem FractionalIdeal.spanFinset_coe - theorem FractionalIdeal.spanFinset_eq_zero - theorem FractionalIdeal.spanFinset_ne_zero - theorem FractionalIdeal.spanSingleton_eq_spanSingleton - theorem FractionalIdeal.spanSingleton_eq_zero_iff - theorem FractionalIdeal.spanSingleton_le_iff_mem - theorem FractionalIdeal.spanSingleton_mul_coeIdeal_eq_coeIdeal - theorem FractionalIdeal.spanSingleton_mul_le_iff - theorem FractionalIdeal.spanSingleton_mul_spanSingleton - theorem FractionalIdeal.spanSingleton_ne_zero_iff - theorem FractionalIdeal.spanSingleton_one - theorem FractionalIdeal.spanSingleton_pow - theorem FractionalIdeal.spanSingleton_zero - theorem Ideal.fg_of_isUnit - theorem IsFractional.div_of_nonzero - theorem IsFractional.map Added Mathlib/RingTheory/FractionalIdeal/Operations.lean + def FractionalIdeal.adjoinIntegral + theorem FractionalIdeal.adjoinIntegral_coe + theorem FractionalIdeal.canonicalEquiv_canonicalEquiv + theorem FractionalIdeal.canonicalEquiv_coeIdeal + theorem FractionalIdeal.canonicalEquiv_flip + theorem FractionalIdeal.canonicalEquiv_self + theorem FractionalIdeal.canonicalEquiv_spanSingleton + theorem FractionalIdeal.canonicalEquiv_symm + theorem FractionalIdeal.canonicalEquiv_trans_canonicalEquiv + theorem FractionalIdeal.coeFun_mapEquiv + theorem FractionalIdeal.coeIdeal_eq_one + theorem FractionalIdeal.coeIdeal_eq_zero + theorem FractionalIdeal.coeIdeal_fg + theorem FractionalIdeal.coeIdeal_inj + theorem FractionalIdeal.coeIdeal_injective + theorem FractionalIdeal.coeIdeal_ne_one + theorem FractionalIdeal.coeIdeal_ne_zero + theorem FractionalIdeal.coeIdeal_span_singleton + theorem FractionalIdeal.coe_div + theorem FractionalIdeal.coe_map + theorem FractionalIdeal.coe_spanSingleton + theorem FractionalIdeal.den_mul_self_eq_num' + theorem FractionalIdeal.div_nonzero + theorem FractionalIdeal.div_one + theorem FractionalIdeal.div_spanSingleton + theorem FractionalIdeal.div_zero + theorem FractionalIdeal.eq_one_div_of_mul_eq_one_right + theorem FractionalIdeal.eq_spanSingleton_mul + theorem FractionalIdeal.eq_spanSingleton_of_principal + theorem FractionalIdeal.eq_zero_or_one + theorem FractionalIdeal.eq_zero_or_one_of_isField + theorem FractionalIdeal.exists_eq_spanSingleton_mul + theorem FractionalIdeal.exists_ne_zero_mem_isInteger + theorem FractionalIdeal.fg_of_isUnit + theorem FractionalIdeal.fg_unit + theorem FractionalIdeal.fractional_div_of_nonzero + theorem FractionalIdeal.isFractional_adjoin_integral + theorem FractionalIdeal.isFractional_of_fg + theorem FractionalIdeal.isFractional_span_iff + theorem FractionalIdeal.isFractional_span_singleton + theorem FractionalIdeal.isNoetherian + theorem FractionalIdeal.isNoetherian_coeIdeal + theorem FractionalIdeal.isNoetherian_iff + theorem FractionalIdeal.isNoetherian_spanSingleton_inv_to_map_mul + theorem FractionalIdeal.isNoetherian_zero + theorem FractionalIdeal.isPrincipal_iff + theorem FractionalIdeal.le_div_iff_mul_le + theorem FractionalIdeal.le_div_iff_of_nonzero + theorem FractionalIdeal.le_self_mul_one_div + theorem FractionalIdeal.le_spanSingleton_mul_iff + def FractionalIdeal.map + def FractionalIdeal.mapEquiv + theorem FractionalIdeal.mapEquiv_apply + theorem FractionalIdeal.mapEquiv_refl + theorem FractionalIdeal.mapEquiv_symm + theorem FractionalIdeal.map_add + theorem FractionalIdeal.map_coeIdeal + theorem FractionalIdeal.map_comp + theorem FractionalIdeal.map_div + theorem FractionalIdeal.map_eq_zero_iff + theorem FractionalIdeal.map_id + theorem FractionalIdeal.map_injective + theorem FractionalIdeal.map_map_symm + theorem FractionalIdeal.map_mem_map + theorem FractionalIdeal.map_mul + theorem FractionalIdeal.map_ne_zero + theorem FractionalIdeal.map_one + theorem FractionalIdeal.map_one_div + theorem FractionalIdeal.map_symm_map + theorem FractionalIdeal.map_zero + theorem FractionalIdeal.mem_adjoinIntegral_self + theorem FractionalIdeal.mem_canonicalEquiv_apply + theorem FractionalIdeal.mem_div_iff_of_nonzero + theorem FractionalIdeal.mem_map + theorem FractionalIdeal.mem_singleton_mul + theorem FractionalIdeal.mem_spanSingleton + theorem FractionalIdeal.mem_spanSingleton_self + theorem FractionalIdeal.mem_span_mul_finite_of_mem_mul + theorem FractionalIdeal.mk'_mul_coeIdeal_eq_coeIdeal + theorem FractionalIdeal.mul_div_self_cancel_iff + theorem FractionalIdeal.mul_one_div_le_one + theorem FractionalIdeal.ne_zero_of_mul_eq_one + theorem FractionalIdeal.one_div_spanSingleton + def FractionalIdeal.spanFinset + theorem FractionalIdeal.spanFinset_coe + theorem FractionalIdeal.spanFinset_eq_zero + theorem FractionalIdeal.spanFinset_ne_zero + theorem FractionalIdeal.spanSingleton_eq_spanSingleton + theorem FractionalIdeal.spanSingleton_eq_zero_iff + theorem FractionalIdeal.spanSingleton_le_iff_mem + theorem FractionalIdeal.spanSingleton_mul_coeIdeal_eq_coeIdeal + theorem FractionalIdeal.spanSingleton_mul_le_iff + theorem FractionalIdeal.spanSingleton_mul_spanSingleton + theorem FractionalIdeal.spanSingleton_ne_zero_iff + theorem FractionalIdeal.spanSingleton_one + theorem FractionalIdeal.spanSingleton_pow + theorem FractionalIdeal.spanSingleton_zero + theorem Ideal.fg_of_isUnit + theorem IsFractional.div_of_nonzero + theorem IsFractional.map 2024-01-19 16:10:33 50388bc feat({Ring|Field}Theory/Adjoin): add various results on adjoin (#9790) Main changes: - for intermediate fields: add `extendScalars_adjoin`, `restrictScalars_adjoin_of_algEquiv`, `sup_toSubalgebra_of_isAlgebraic`, `adjoin_toSubalgebra_of_isAlgebraic`, `adjoin_rank_le_of_isAlgebraic`, and golf `sup_toSubalgebra` - for subalgebras: add `adjoin_eq_span_of_eq_span`, `adjoin_eq_span_basis`, `restrictScalars_adjoin`, `restrictScalars_adjoin_of_algEquiv`, `adjoin_rank_le` ESTIMATED CHANGES Modified Mathlib/FieldTheory/Adjoin.lean + theorem IntermediateField.adjoin_rank_le_of_isAlgebraic + theorem IntermediateField.adjoin_rank_le_of_isAlgebraic_left + theorem IntermediateField.adjoin_rank_le_of_isAlgebraic_right + theorem IntermediateField.adjoin_toSubalgebra_of_isAlgebraic + theorem IntermediateField.adjoin_toSubalgebra_of_isAlgebraic_left + theorem IntermediateField.adjoin_toSubalgebra_of_isAlgebraic_right + theorem IntermediateField.extendScalars_adjoin + theorem IntermediateField.restrictScalars_adjoin_of_algEquiv - theorem IntermediateField.sup_toSubalgebra + theorem IntermediateField.sup_toSubalgebra_of_isAlgebraic + theorem IntermediateField.sup_toSubalgebra_of_isAlgebraic_left + theorem IntermediateField.sup_toSubalgebra_of_isAlgebraic_right + theorem IntermediateField.sup_toSubalgebra_of_left + theorem IntermediateField.sup_toSubalgebra_of_right Modified Mathlib/RingTheory/Adjoin/Basic.lean + theorem Algebra.restrictScalars_adjoin + theorem Algebra.restrictScalars_adjoin_of_algEquiv + theorem Subalgebra.adjoin_eq_span_basis + theorem Subalgebra.adjoin_eq_span_of_eq_span + theorem Submonoid.adjoin_eq_span_of_eq_span Modified Mathlib/RingTheory/Adjoin/Field.lean + theorem Subalgebra.adjoin_rank_le 2024-01-19 15:41:37 d0f6060 feat(FieldTheory/IsAlgClosed/Basic): add `IsAlgClosed.perfectField` instance (#9710) ESTIMATED CHANGES Modified Mathlib/FieldTheory/IsAlgClosed/Basic.lean 2024-01-19 13:55:21 4bb560b feat(LinearAlgebra/LinearIndependent): add `linearIndependent_iff_finset_linearIndependent` (#9797) A family is linearly independent if and only if all of its finite subfamily is linearly independent. ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/LinearIndependent.lean + theorem linearIndependent_iff_finset_linearIndependent 2024-01-19 13:01:13 f4c4ca6 chore: reduce imports (#9830) This uses the improved `shake` script from #9772 to reduce imports across mathlib. The corresponding `noshake.json` file has been added to #9772. ESTIMATED CHANGES Modified Archive/Wiedijk100Theorems/PerfectNumbers.lean Modified Counterexamples/Cyclotomic105.lean Modified Counterexamples/DirectSumIsInternal.lean Modified Mathlib/Algebra/Algebra/Bilinear.lean Modified Mathlib/Algebra/Algebra/NonUnitalSubalgebra.lean Modified Mathlib/Algebra/BigOperators/Basic.lean Modified Mathlib/Algebra/BigOperators/Fin.lean Modified Mathlib/Algebra/BigOperators/Multiset/Basic.lean Modified Mathlib/Algebra/Category/AlgebraCat/Monoidal.lean Modified Mathlib/Algebra/Category/GroupCat/Biproducts.lean Modified Mathlib/Algebra/Category/GroupCat/Limits.lean Modified Mathlib/Algebra/Category/ModuleCat/Free.lean Modified Mathlib/Algebra/Category/ModuleCat/Injective.lean Modified Mathlib/Algebra/Category/ModuleCat/Monoidal/Basic.lean Modified Mathlib/Algebra/Category/ModuleCat/Monoidal/Closed.lean Modified Mathlib/Algebra/Category/Ring/Basic.lean Modified Mathlib/Algebra/Category/Ring/Colimits.lean Modified Mathlib/Algebra/Category/SemigroupCat/Basic.lean Modified Mathlib/Algebra/CharP/MixedCharZero.lean Modified Mathlib/Algebra/ContinuedFractions/Computation/ApproximationCorollaries.lean Modified Mathlib/Algebra/DirectSum/LinearMap.lean Modified Mathlib/Algebra/Divisibility/Prod.lean Modified Mathlib/Algebra/Exact.lean Modified Mathlib/Algebra/Field/ULift.lean Modified Mathlib/Algebra/FreeAlgebra.lean Modified Mathlib/Algebra/FreeMonoid/Count.lean Modified Mathlib/Algebra/Group/NatPowAssoc.lean Modified Mathlib/Algebra/Group/Units.lean Modified Mathlib/Algebra/Group/WithOne/Units.lean Modified Mathlib/Algebra/GroupRingAction/Invariant.lean Modified Mathlib/Algebra/GroupWithZero/NonZeroDivisors.lean Modified Mathlib/Algebra/GroupWithZero/Units/Basic.lean Modified Mathlib/Algebra/Homology/HomotopyCategory/HomComplex.lean Modified Mathlib/Algebra/Homology/Localization.lean Modified Mathlib/Algebra/Homology/ShortComplex/Abelian.lean Modified Mathlib/Algebra/Homology/ShortComplex/Limits.lean Modified Mathlib/Algebra/Invertible/Defs.lean Modified Mathlib/Algebra/Lie/Killing.lean Modified Mathlib/Algebra/ModEq.lean Modified Mathlib/Algebra/Module/Basic.lean Modified Mathlib/Algebra/Module/Hom.lean Modified Mathlib/Algebra/Module/LocalizedModule.lean Modified Mathlib/Algebra/Module/Submodule/Lattice.lean Modified Mathlib/Algebra/Module/Submodule/LinearMap.lean Modified Mathlib/Algebra/Module/Submodule/Map.lean Modified Mathlib/Algebra/Module/Zlattice.lean Modified Mathlib/Algebra/MonoidAlgebra/Division.lean Modified Mathlib/Algebra/MonoidAlgebra/Ideal.lean Modified Mathlib/Algebra/MonoidAlgebra/NoZeroDivisors.lean Modified Mathlib/Algebra/Order/Floor.lean Modified Mathlib/Algebra/Order/Floor/Div.lean Modified Mathlib/Algebra/Order/Group/Defs.lean Modified Mathlib/Algebra/Order/Group/InjSurj.lean Modified Mathlib/Algebra/Order/Group/OrderIso.lean Modified Mathlib/Algebra/Order/Group/PosPart.lean Modified Mathlib/Algebra/Order/Group/Prod.lean Modified Mathlib/Algebra/Order/Group/TypeTags.lean Modified Mathlib/Algebra/Order/Group/WithTop.lean Modified Mathlib/Algebra/Order/Hom/Basic.lean Modified Mathlib/Algebra/Order/Kleene.lean Modified Mathlib/Algebra/Order/Module/Defs.lean Modified Mathlib/Algebra/Order/Module/OrderedSMul.lean Modified Mathlib/Algebra/Order/Module/Synonym.lean Modified Mathlib/Algebra/Order/Monoid/ToMulBot.lean Modified Mathlib/Algebra/Order/Monoid/WithTop.lean Modified Mathlib/Algebra/Order/Monovary.lean Modified Mathlib/Algebra/Order/Nonneg/Ring.lean Modified Mathlib/Algebra/Order/Rearrangement.lean Modified Mathlib/Algebra/Order/UpperLower.lean Modified Mathlib/Algebra/Order/WithZero.lean Modified Mathlib/Algebra/Parity.lean Modified Mathlib/Algebra/QuadraticDiscriminant.lean Modified Mathlib/Algebra/Regular/Basic.lean Modified Mathlib/Algebra/Ring/Hom/Basic.lean Modified Mathlib/Algebra/Ring/Idempotents.lean Modified Mathlib/Algebra/Ring/Opposite.lean Modified Mathlib/Algebra/Ring/Prod.lean Modified Mathlib/Algebra/Star/Basic.lean Modified Mathlib/Algebra/Star/Prod.lean Modified Mathlib/Algebra/Star/SelfAdjoint.lean Modified Mathlib/Algebra/Tropical/Basic.lean Modified Mathlib/AlgebraicTopology/DoldKan/FunctorGamma.lean Modified Mathlib/AlgebraicTopology/DoldKan/GammaCompN.lean Modified Mathlib/AlgebraicTopology/SimplicialSet.lean Modified Mathlib/AlgebraicTopology/SingularSet.lean Modified Mathlib/AlgebraicTopology/SplitSimplicialObject.lean Modified Mathlib/Analysis/Analytic/Linear.lean Modified Mathlib/Analysis/BoundedVariation.lean Modified Mathlib/Analysis/BoxIntegral/Box/Basic.lean Modified Mathlib/Analysis/BoxIntegral/DivergenceTheorem.lean Modified Mathlib/Analysis/BoxIntegral/Partition/Basic.lean Modified Mathlib/Analysis/Calculus/BumpFunction/FiniteDimension.lean Modified Mathlib/Analysis/Calculus/Conformal/NormedSpace.lean Modified Mathlib/Analysis/Calculus/ContDiff/IsROrC.lean Modified Mathlib/Analysis/Calculus/FDeriv/Basic.lean Modified Mathlib/Analysis/Calculus/FDeriv/Equiv.lean Modified Mathlib/Analysis/Calculus/FDeriv/Measurable.lean Modified Mathlib/Analysis/Calculus/FDeriv/Star.lean Modified Mathlib/Analysis/Calculus/InverseFunctionTheorem/ContDiff.lean Modified Mathlib/Analysis/Calculus/IteratedDeriv/Defs.lean Modified Mathlib/Analysis/Calculus/Series.lean Modified Mathlib/Analysis/Complex/Polynomial.lean Modified Mathlib/Analysis/Convex/Cone/Closure.lean Modified Mathlib/Analysis/Convex/Cone/Proper.lean Modified Mathlib/Analysis/Convex/Join.lean Modified Mathlib/Analysis/Convex/Mul.lean Modified Mathlib/Analysis/Convex/Normed.lean Modified Mathlib/Analysis/Convex/SpecificFunctions/Basic.lean Modified Mathlib/Analysis/Convex/SpecificFunctions/Deriv.lean Modified Mathlib/Analysis/Convex/Star.lean Modified Mathlib/Analysis/Convex/StoneSeparation.lean Modified Mathlib/Analysis/Convex/Strict.lean Modified Mathlib/Analysis/Convex/StrictConvexBetween.lean Modified Mathlib/Analysis/Convex/StrictConvexSpace.lean Modified Mathlib/Analysis/Distribution/AEEqOfIntegralContDiff.lean Modified Mathlib/Analysis/InnerProductSpace/Basic.lean Modified Mathlib/Analysis/InnerProductSpace/LinearPMap.lean Modified Mathlib/Analysis/InnerProductSpace/Orthogonal.lean Modified Mathlib/Analysis/InnerProductSpace/ProdL2.lean Modified Mathlib/Analysis/MeanInequalitiesPow.lean Modified Mathlib/Analysis/Normed/Field/Basic.lean Modified Mathlib/Analysis/Normed/Field/InfiniteSum.lean Modified Mathlib/Analysis/Normed/Group/Quotient.lean Modified Mathlib/Analysis/Normed/Order/Basic.lean Modified Mathlib/Analysis/Normed/Order/UpperLower.lean Modified Mathlib/Analysis/NormedSpace/AddTorsor.lean Modified Mathlib/Analysis/NormedSpace/Basic.lean Modified Mathlib/Analysis/NormedSpace/Complemented.lean Modified Mathlib/Analysis/NormedSpace/HomeomorphBall.lean Modified Mathlib/Analysis/NormedSpace/MStructure.lean Modified Mathlib/Analysis/NormedSpace/SphereNormEquiv.lean Modified Mathlib/Analysis/NormedSpace/Star/Basic.lean Modified Mathlib/Analysis/NormedSpace/Unitization.lean Modified Mathlib/Analysis/NormedSpace/WithLp.lean Modified Mathlib/Analysis/NormedSpace/lpSpace.lean Modified Mathlib/Analysis/Seminorm.lean Modified Mathlib/Analysis/SpecialFunctions/ImproperIntegrals.lean Modified Mathlib/Analysis/SpecialFunctions/Integrals.lean Modified Mathlib/Analysis/SpecialFunctions/Log/Deriv.lean Modified Mathlib/Analysis/SpecialFunctions/PolarCoord.lean Modified Mathlib/Analysis/SpecialFunctions/SmoothTransition.lean Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Complex.lean Modified Mathlib/Analysis/SpecificLimits/Normed.lean Modified Mathlib/Analysis/SumIntegralComparisons.lean Modified Mathlib/CategoryTheory/Bicategory/Adjunction.lean Modified Mathlib/CategoryTheory/ConcreteCategory/Bundled.lean Modified Mathlib/CategoryTheory/DifferentialObject.lean Modified Mathlib/CategoryTheory/FintypeCat.lean Modified Mathlib/CategoryTheory/Functor/Currying.lean Modified Mathlib/CategoryTheory/Groupoid/VertexGroup.lean Modified Mathlib/CategoryTheory/Limits/FilteredColimitCommutesFiniteLimit.lean Modified Mathlib/CategoryTheory/Limits/FintypeCat.lean Modified Mathlib/CategoryTheory/Limits/Fubini.lean Modified Mathlib/CategoryTheory/Limits/HasLimits.lean Modified Mathlib/CategoryTheory/Limits/Lattice.lean Modified Mathlib/CategoryTheory/Limits/VanKampen.lean Modified Mathlib/CategoryTheory/Localization/CalculusOfFractions.lean Modified Mathlib/CategoryTheory/Localization/Pi.lean Modified Mathlib/CategoryTheory/Localization/Prod.lean Modified Mathlib/CategoryTheory/Monoidal/CoherenceLemmas.lean Modified Mathlib/CategoryTheory/Monoidal/Opposite.lean Modified Mathlib/CategoryTheory/Pi/Basic.lean Modified Mathlib/CategoryTheory/Preadditive/Yoneda/Basic.lean Modified Mathlib/CategoryTheory/Preadditive/Yoneda/Limits.lean Modified Mathlib/CategoryTheory/Shift/ShiftSequence.lean Modified Mathlib/CategoryTheory/Sites/Adjunction.lean Modified Mathlib/CategoryTheory/Sites/CompatibleSheafification.lean Modified Mathlib/CategoryTheory/Sites/ConcreteSheafification.lean Modified Mathlib/CategoryTheory/Sites/ConstantSheaf.lean Modified Mathlib/CategoryTheory/Sites/CoverLifting.lean Modified Mathlib/CategoryTheory/Sites/EffectiveEpimorphic.lean Modified Mathlib/CategoryTheory/Sites/LeftExact.lean Modified Mathlib/CategoryTheory/Sites/Subsheaf.lean Modified Mathlib/CategoryTheory/Sites/Types.lean Modified Mathlib/CategoryTheory/Triangulated/Opposite.lean Modified Mathlib/CategoryTheory/Types.lean Modified Mathlib/Combinatorics/Derangements/Finite.lean Modified Mathlib/Combinatorics/Quiver/Subquiver.lean Modified Mathlib/Combinatorics/Quiver/Symmetric.lean Modified Mathlib/Combinatorics/SetFamily/HarrisKleitman.lean Modified Mathlib/Combinatorics/SetFamily/Shatter.lean Modified Mathlib/Combinatorics/SimpleGraph/Basic.lean Modified Mathlib/Combinatorics/SimpleGraph/ConcreteColorings.lean Modified Mathlib/Combinatorics/SimpleGraph/Hasse.lean Modified Mathlib/Combinatorics/SimpleGraph/Maps.lean Modified Mathlib/Combinatorics/SimpleGraph/Subgraph.lean Modified Mathlib/Computability/AkraBazzi/AkraBazzi.lean Modified Mathlib/Computability/Encoding.lean Modified Mathlib/Computability/PartrecCode.lean Modified Mathlib/Condensed/Equivalence.lean Modified Mathlib/Condensed/Functors.lean Modified Mathlib/Control/Basic.lean Modified Mathlib/Control/Bifunctor.lean Modified Mathlib/Control/Traversable/Basic.lean Modified Mathlib/Data/Bool/Basic.lean Modified Mathlib/Data/Bundle.lean Modified Mathlib/Data/Complex/Basic.lean Modified Mathlib/Data/Complex/Order.lean Modified Mathlib/Data/Countable/Defs.lean Modified Mathlib/Data/DList/Instances.lean Modified Mathlib/Data/FP/Basic.lean Modified Mathlib/Data/Fin/Tuple/BubbleSortInduction.lean Modified Mathlib/Data/Fin/VecNotation.lean Modified Mathlib/Data/Finset/Antidiagonal.lean Modified Mathlib/Data/Finset/Basic.lean Modified Mathlib/Data/Finset/NatDivisors.lean Modified Mathlib/Data/Finset/PiAntidiagonal.lean Modified Mathlib/Data/Finset/PiInduction.lean Modified Mathlib/Data/Finset/Sort.lean Modified Mathlib/Data/Finset/Sym.lean Modified Mathlib/Data/Finsupp/Antidiagonal.lean Modified Mathlib/Data/Finsupp/Basic.lean Modified Mathlib/Data/Finsupp/BigOperators.lean Modified Mathlib/Data/Finsupp/Defs.lean Modified Mathlib/Data/Fintype/BigOperators.lean Modified Mathlib/Data/Fintype/Card.lean Modified Mathlib/Data/Fintype/Order.lean Modified Mathlib/Data/HashMap.lean Modified Mathlib/Data/Int/Cast/Basic.lean Modified Mathlib/Data/Int/Cast/Field.lean Modified Mathlib/Data/Int/Cast/Prod.lean Modified Mathlib/Data/Int/CharZero.lean Modified Mathlib/Data/Int/Defs.lean Modified Mathlib/Data/Int/Dvd/Basic.lean Modified Mathlib/Data/Int/Dvd/Pow.lean Modified Mathlib/Data/Int/Order/Basic.lean Modified Mathlib/Data/Int/Range.lean Modified Mathlib/Data/List/Basic.lean Modified Mathlib/Data/List/BigOperators/Basic.lean Modified Mathlib/Data/List/BigOperators/Defs.lean Modified Mathlib/Data/List/BigOperators/Lemmas.lean Modified Mathlib/Data/List/Card.lean Modified Mathlib/Data/List/Chain.lean Modified Mathlib/Data/List/Cycle.lean Modified Mathlib/Data/List/Dedup.lean Modified Mathlib/Data/List/Defs.lean Modified Mathlib/Data/List/FinRange.lean Modified Mathlib/Data/List/Lattice.lean Modified Mathlib/Data/List/Lemmas.lean Modified Mathlib/Data/List/Nodup.lean Modified Mathlib/Data/List/OfFn.lean Modified Mathlib/Data/List/Pairwise.lean Modified Mathlib/Data/List/Perm.lean Modified Mathlib/Data/List/ProdSigma.lean Modified Mathlib/Data/List/Range.lean Modified Mathlib/Data/List/Rotate.lean Modified Mathlib/Data/List/Sort.lean Modified Mathlib/Data/List/Sublists.lean Modified Mathlib/Data/List/ToFinsupp.lean Modified Mathlib/Data/MLList/BestFirst.lean Modified Mathlib/Data/MLList/DepthFirst.lean Modified Mathlib/Data/Multiset/Fintype.lean Modified Mathlib/Data/Multiset/Nodup.lean Modified Mathlib/Data/Multiset/Range.lean Modified Mathlib/Data/Nat/Basic.lean Modified Mathlib/Data/Nat/Bits.lean Modified Mathlib/Data/Nat/Bitwise.lean Modified Mathlib/Data/Nat/Cast/Commute.lean Modified Mathlib/Data/Nat/Cast/Prod.lean Modified Mathlib/Data/Nat/Cast/Synonym.lean Modified Mathlib/Data/Nat/Factorial/DoubleFactorial.lean Modified Mathlib/Data/Nat/Factors.lean Modified Mathlib/Data/Nat/ForSqrt.lean Modified Mathlib/Data/Nat/GCD/BigOperators.lean Modified Mathlib/Data/Nat/MaxPowDiv.lean Modified Mathlib/Data/Nat/ModEq.lean Modified Mathlib/Data/Nat/PSub.lean Modified Mathlib/Data/Nat/Size.lean Modified Mathlib/Data/Nat/Sqrt.lean Modified Mathlib/Data/Nat/Squarefree.lean Modified Mathlib/Data/Num/Basic.lean Modified Mathlib/Data/Num/Lemmas.lean Modified Mathlib/Data/Option/NAry.lean Modified Mathlib/Data/Ordmap/Ordnode.lean Modified Mathlib/Data/PEquiv.lean Modified Mathlib/Data/PNat/Basic.lean Modified Mathlib/Data/PNat/Defs.lean Modified Mathlib/Data/PSigma/Order.lean Modified Mathlib/Data/Polynomial/Degree/Definitions.lean Modified Mathlib/Data/Polynomial/Derivative.lean Modified Mathlib/Data/Polynomial/Div.lean Modified Mathlib/Data/Polynomial/Module.lean Modified Mathlib/Data/Polynomial/PartialFractions.lean Modified Mathlib/Data/Polynomial/RingDivision.lean Modified Mathlib/Data/Prod/Basic.lean Modified Mathlib/Data/Prod/PProd.lean Modified Mathlib/Data/Rat/Order.lean Modified Mathlib/Data/Real/Archimedean.lean Modified Mathlib/Data/Real/Basic.lean Modified Mathlib/Data/Real/GoldenRatio.lean Modified Mathlib/Data/Real/Pi/Leibniz.lean Modified Mathlib/Data/Rel.lean Modified Mathlib/Data/Set/Basic.lean Modified Mathlib/Data/Set/BoolIndicator.lean Modified Mathlib/Data/Set/Card.lean Modified Mathlib/Data/Set/Defs.lean Modified Mathlib/Data/Set/Image.lean Modified Mathlib/Data/Set/Intervals/Basic.lean Modified Mathlib/Data/Set/Intervals/WithBotTop.lean Modified Mathlib/Data/Set/List.lean Modified Mathlib/Data/Set/Opposite.lean Modified Mathlib/Data/Set/Pointwise/SMul.lean Modified Mathlib/Data/Set/Semiring.lean Modified Mathlib/Data/Sigma/Lex.lean Modified Mathlib/Data/Sigma/Order.lean Modified Mathlib/Data/Sign.lean Modified Mathlib/Data/String/Lemmas.lean Modified Mathlib/Data/Sym/Card.lean Modified Mathlib/Data/TwoPointing.lean Modified Mathlib/Data/UnionFind.lean Modified Mathlib/Data/Vector.lean Modified Mathlib/Data/Vector3.lean Modified Mathlib/Data/ZMod/Defs.lean Modified Mathlib/Data/ZMod/IntUnitsPower.lean Modified Mathlib/Data/ZMod/Quotient.lean Modified Mathlib/FieldTheory/Finiteness.lean Modified Mathlib/FieldTheory/MvPolynomial.lean Modified Mathlib/FieldTheory/PrimitiveElement.lean Modified Mathlib/FieldTheory/SeparableDegree.lean Modified Mathlib/FieldTheory/SplittingField/Construction.lean Modified Mathlib/FieldTheory/SplittingField/IsSplittingField.lean Modified Mathlib/Geometry/Euclidean/Angle/Unoriented/Affine.lean Modified Mathlib/Geometry/Manifold/SmoothManifoldWithCorners.lean Modified Mathlib/Geometry/RingedSpace/PresheafedSpace/HasColimits.lean Modified Mathlib/GroupTheory/ClassEquation.lean Modified Mathlib/GroupTheory/CoprodI.lean Modified Mathlib/GroupTheory/Coset.lean Modified Mathlib/GroupTheory/Perm/DomMulAct.lean Modified Mathlib/GroupTheory/Perm/Subgroup.lean Modified Mathlib/GroupTheory/Subgroup/Basic.lean Modified Mathlib/GroupTheory/Subgroup/MulOpposite.lean Modified Mathlib/GroupTheory/Subgroup/Saturated.lean Modified Mathlib/GroupTheory/Subgroup/Simple.lean Modified Mathlib/GroupTheory/Subgroup/ZPowers.lean Modified Mathlib/GroupTheory/Subsemigroup/Center.lean Modified Mathlib/Init/Align.lean Modified Mathlib/Init/Classical.lean Modified Mathlib/Init/Data/Bool/Lemmas.lean Modified Mathlib/Init/Data/List/Basic.lean Modified Mathlib/Init/Data/List/Instances.lean Modified Mathlib/Init/Data/List/Lemmas.lean Modified Mathlib/Init/Data/Nat/Bitwise.lean Modified Mathlib/Init/Data/Nat/Lemmas.lean Modified Mathlib/Init/Data/Quot.lean Modified Mathlib/Init/Data/Sigma/Basic.lean Modified Mathlib/Init/Data/Sigma/Lex.lean Modified Mathlib/Init/Data/Subtype/Basic.lean Modified Mathlib/Init/Function.lean Modified Mathlib/Init/Logic.lean Modified Mathlib/Init/Propext.lean Modified Mathlib/Lean/Expr/ExtraRecognizers.lean Modified Mathlib/Lean/Expr/ReplaceRec.lean Modified Mathlib/Lean/Expr/Traverse.lean Modified Mathlib/Lean/LocalContext.lean Modified Mathlib/Lean/Meta.lean Modified Mathlib/Lean/Meta/CongrTheorems.lean Modified Mathlib/Lean/Meta/DiscrTree.lean Modified Mathlib/Lean/Meta/Simp.lean Modified Mathlib/Lean/Name.lean Modified Mathlib/LinearAlgebra/AffineSpace/FiniteDimensional.lean Modified Mathlib/LinearAlgebra/AffineSpace/Matrix.lean Modified Mathlib/LinearAlgebra/AffineSpace/Ordered.lean Modified Mathlib/LinearAlgebra/Basic.lean Modified Mathlib/LinearAlgebra/Basis.lean Modified Mathlib/LinearAlgebra/Basis/VectorSpace.lean Modified Mathlib/LinearAlgebra/BilinearForm/Basic.lean Modified Mathlib/LinearAlgebra/BilinearForm/Hom.lean Modified Mathlib/LinearAlgebra/BilinearForm/Orthogonal.lean Modified Mathlib/LinearAlgebra/BilinearForm/Properties.lean Modified Mathlib/LinearAlgebra/CliffordAlgebra/BaseChange.lean Modified Mathlib/LinearAlgebra/CliffordAlgebra/CategoryTheory.lean Modified Mathlib/LinearAlgebra/Dimension/Basic.lean Modified Mathlib/LinearAlgebra/Dimension/Constructions.lean Modified Mathlib/LinearAlgebra/Dimension/Finite.lean Modified Mathlib/LinearAlgebra/FiniteDimensional.lean Modified Mathlib/LinearAlgebra/Finsupp.lean Modified Mathlib/LinearAlgebra/FreeModule/IdealQuotient.lean Modified Mathlib/LinearAlgebra/FreeModule/PID.lean Modified Mathlib/LinearAlgebra/Matrix/Determinant.lean Modified Mathlib/LinearAlgebra/Matrix/FiniteDimensional.lean Modified Mathlib/LinearAlgebra/Matrix/SesquilinearForm.lean Modified Mathlib/LinearAlgebra/Matrix/ToLin.lean Modified Mathlib/LinearAlgebra/PID.lean Modified Mathlib/LinearAlgebra/Pi.lean Modified Mathlib/LinearAlgebra/QuadraticForm/QuadraticModuleCat.lean Modified Mathlib/LinearAlgebra/QuadraticForm/QuadraticModuleCat/Monoidal.lean Modified Mathlib/LinearAlgebra/SesquilinearForm.lean Modified Mathlib/LinearAlgebra/TensorProduct/Graded/Internal.lean Modified Mathlib/Logic/Denumerable.lean Modified Mathlib/Logic/Equiv/Array.lean Modified Mathlib/Logic/Equiv/Defs.lean Modified Mathlib/Logic/Equiv/Nat.lean Modified Mathlib/Logic/Function/Basic.lean Modified Mathlib/Logic/Nonempty.lean Modified Mathlib/Logic/Nontrivial/Defs.lean Modified Mathlib/Logic/Pairwise.lean Modified Mathlib/Logic/Relator.lean Modified Mathlib/Mathport/Notation.lean Modified Mathlib/MeasureTheory/Constructions/BorelSpace/ContinuousLinearMap.lean Modified Mathlib/MeasureTheory/Constructions/Cylinders.lean Modified Mathlib/MeasureTheory/Constructions/Projective.lean Modified Mathlib/MeasureTheory/Covering/Besicovitch.lean Modified Mathlib/MeasureTheory/Covering/Vitali.lean Modified Mathlib/MeasureTheory/Decomposition/Lebesgue.lean Modified Mathlib/MeasureTheory/Decomposition/SignedLebesgue.lean Modified Mathlib/MeasureTheory/Function/ConditionalExpectation/AEMeasurable.lean Modified Mathlib/MeasureTheory/Function/ConditionalExpectation/CondexpL2.lean Modified Mathlib/MeasureTheory/Function/Jacobian.lean Modified Mathlib/MeasureTheory/Function/LpSeminorm.lean Modified Mathlib/MeasureTheory/Function/LpSpace.lean Modified Mathlib/MeasureTheory/Function/LpSpace/DomAct/Basic.lean Modified Mathlib/MeasureTheory/Function/SpecialFunctions/IsROrC.lean Modified Mathlib/MeasureTheory/Function/StronglyMeasurable/Basic.lean Modified Mathlib/MeasureTheory/Integral/DivergenceTheorem.lean Modified Mathlib/MeasureTheory/Integral/Gamma.lean Modified Mathlib/MeasureTheory/MeasurableSpace/Basic.lean Modified Mathlib/MeasureTheory/MeasurableSpace/Defs.lean Modified Mathlib/MeasureTheory/Measure/AddContent.lean Modified Mathlib/MeasureTheory/Measure/Haar/Basic.lean Modified Mathlib/MeasureTheory/Measure/Haar/InnerProductSpace.lean Modified Mathlib/MeasureTheory/Measure/Hausdorff.lean Modified Mathlib/MeasureTheory/Measure/Lebesgue/Complex.lean Modified Mathlib/MeasureTheory/Measure/Lebesgue/VolumeOfBalls.lean Modified Mathlib/MeasureTheory/SetSemiring.lean Modified Mathlib/ModelTheory/DirectLimit.lean Modified Mathlib/ModelTheory/Semantics.lean Modified Mathlib/ModelTheory/Syntax.lean Modified Mathlib/NumberTheory/Bertrand.lean Modified Mathlib/NumberTheory/Cyclotomic/Basic.lean Modified Mathlib/NumberTheory/DiophantineApproximation.lean Modified Mathlib/NumberTheory/FLT/Four.lean Modified Mathlib/NumberTheory/LegendreSymbol/GaussEisensteinLemmas.lean Modified Mathlib/NumberTheory/LucasLehmer.lean Modified Mathlib/NumberTheory/Modular.lean Modified Mathlib/NumberTheory/Multiplicity.lean Modified Mathlib/NumberTheory/NumberField/CanonicalEmbedding.lean Modified Mathlib/NumberTheory/Padics/Harmonic.lean Modified Mathlib/NumberTheory/SumFourSquares.lean Modified Mathlib/NumberTheory/SumTwoSquares.lean Modified Mathlib/NumberTheory/Zsqrtd/GaussianInt.lean Modified Mathlib/NumberTheory/Zsqrtd/QuadraticReciprocity.lean Modified Mathlib/Order/Atoms.lean Modified Mathlib/Order/BoundedOrder.lean Modified Mathlib/Order/CompleteLattice.lean Modified Mathlib/Order/ConditionallyCompleteLattice/Basic.lean Modified Mathlib/Order/ConditionallyCompleteLattice/Group.lean Modified Mathlib/Order/Disjoint.lean Modified Mathlib/Order/Estimator.lean Modified Mathlib/Order/Filter/AtTopBot.lean Modified Mathlib/Order/Grade.lean Modified Mathlib/Order/Irreducible.lean Modified Mathlib/Order/Monotone/Monovary.lean Modified Mathlib/Order/PartialSups.lean Modified Mathlib/Order/Partition/Finpartition.lean Modified Mathlib/Order/PropInstances.lean Modified Mathlib/Order/RelSeries.lean Modified Mathlib/Order/WellFounded.lean Modified Mathlib/Order/WithBot.lean Modified Mathlib/Probability/Distributions/Exponential.lean Modified Mathlib/Probability/Distributions/Gamma.lean Modified Mathlib/Probability/Kernel/Basic.lean Modified Mathlib/Probability/Kernel/CondCdf.lean Modified Mathlib/Probability/Kernel/MeasurableIntegral.lean Modified Mathlib/Probability/ProbabilityMassFunction/Binomial.lean Modified Mathlib/RepresentationTheory/Action/Basic.lean Modified Mathlib/RepresentationTheory/Action/Monoidal.lean Modified Mathlib/RepresentationTheory/GroupCohomology/Hilbert90.lean Modified Mathlib/RepresentationTheory/Maschke.lean Modified Mathlib/RepresentationTheory/Rep.lean Modified Mathlib/RingTheory/Coprime/Basic.lean Modified Mathlib/RingTheory/DedekindDomain/IntegralClosure.lean Modified Mathlib/RingTheory/DedekindDomain/SelmerGroup.lean Modified Mathlib/RingTheory/EisensteinCriterion.lean Modified Mathlib/RingTheory/Filtration.lean Modified Mathlib/RingTheory/Flat.lean Modified Mathlib/RingTheory/Ideal/IdempotentFG.lean Modified Mathlib/RingTheory/Ideal/Norm.lean Modified Mathlib/RingTheory/Ideal/Operations.lean Modified Mathlib/RingTheory/Ideal/Quotient.lean Modified Mathlib/RingTheory/Ideal/QuotientOperations.lean Modified Mathlib/RingTheory/Localization/Basic.lean Modified Mathlib/RingTheory/MvPolynomial/Basic.lean Modified Mathlib/RingTheory/MvPolynomial/NewtonIdentities.lean Modified Mathlib/RingTheory/MvPolynomial/WeightedHomogeneous.lean Modified Mathlib/RingTheory/OreLocalization/OreSet.lean Modified Mathlib/RingTheory/Polynomial/Basic.lean Modified Mathlib/RingTheory/Polynomial/Cyclotomic/Basic.lean Modified Mathlib/RingTheory/Polynomial/Cyclotomic/Expand.lean Modified Mathlib/RingTheory/Polynomial/Nilpotent.lean Modified Mathlib/RingTheory/RootsOfUnity/Basic.lean Modified Mathlib/RingTheory/RootsOfUnity/Minpoly.lean Modified Mathlib/SetTheory/Lists.lean Modified Mathlib/Tactic/ApplyAt.lean Modified Mathlib/Tactic/CancelDenoms/Core.lean Modified Mathlib/Tactic/CategoryTheory/BicategoryCoherence.lean Modified Mathlib/Tactic/CategoryTheory/Coherence.lean Modified Mathlib/Tactic/Constructor.lean Modified Mathlib/Tactic/Core.lean Modified Mathlib/Tactic/DeriveTraversable.lean Modified Mathlib/Tactic/Eqns.lean Modified Mathlib/Tactic/ExtractGoal.lean Modified Mathlib/Tactic/Have.lean Modified Mathlib/Tactic/HelpCmd.lean Modified Mathlib/Tactic/IntervalCases.lean Modified Mathlib/Tactic/LibrarySearch.lean Modified Mathlib/Tactic/Lift.lean Modified Mathlib/Tactic/Linarith/Preprocessing.lean Modified Mathlib/Tactic/NormNum/Basic.lean Modified Mathlib/Tactic/NormNum/Eq.lean Modified Mathlib/Tactic/NormNum/Ineq.lean Modified Mathlib/Tactic/NormNum/Prime.lean Modified Mathlib/Tactic/NthRewrite.lean Modified Mathlib/Tactic/Positivity/Basic.lean Modified Mathlib/Tactic/ProdAssoc.lean Modified Mathlib/Tactic/ProjectionNotation.lean Modified Mathlib/Tactic/Propose.lean Modified Mathlib/Tactic/ProxyType.lean Modified Mathlib/Tactic/PushNeg.lean Modified Mathlib/Tactic/Qify.lean Modified Mathlib/Tactic/RSuffices.lean Modified Mathlib/Tactic/Relation/Rfl.lean Modified Mathlib/Tactic/Relation/Symm.lean Modified Mathlib/Tactic/RenameBVar.lean Modified Mathlib/Tactic/RewriteSearch.lean Modified Mathlib/Tactic/Rewrites.lean Modified Mathlib/Tactic/Sat/FromLRAT.lean Modified Mathlib/Tactic/Simps/Basic.lean Modified Mathlib/Tactic/SlimCheck.lean Modified Mathlib/Tactic/SwapVar.lean Modified Mathlib/Tactic/Widget/CommDiag.lean Modified Mathlib/Tactic/Widget/SelectPanelUtils.lean Modified Mathlib/Topology/AlexandrovDiscrete.lean Modified Mathlib/Topology/Algebra/Module/Cardinality.lean Modified Mathlib/Topology/Algebra/Nonarchimedean/AdicTopology.lean Modified Mathlib/Topology/Algebra/Order/Compact.lean Modified Mathlib/Topology/Algebra/Order/Field.lean Modified Mathlib/Topology/Bornology/Absorbs.lean Modified Mathlib/Topology/Category/LightProfinite/Basic.lean Modified Mathlib/Topology/Category/Profinite/Nobeling.lean Modified Mathlib/Topology/Category/Stonean/Basic.lean Modified Mathlib/Topology/Category/TopCat/Limits/Basic.lean Modified Mathlib/Topology/Category/TopCat/Limits/Products.lean Modified Mathlib/Topology/Category/TopCat/Limits/Pullbacks.lean Modified Mathlib/Topology/Connected/Basic.lean Modified Mathlib/Topology/ContinuousFunction/Ordered.lean Modified Mathlib/Topology/ContinuousFunction/Polynomial.lean Modified Mathlib/Topology/ContinuousFunction/StoneWeierstrass.lean Modified Mathlib/Topology/FiberBundle/Trivialization.lean Modified Mathlib/Topology/Gluing.lean Modified Mathlib/Topology/Homeomorph.lean Modified Mathlib/Topology/Homotopy/HSpaces.lean Modified Mathlib/Topology/Instances/ENNReal.lean Modified Mathlib/Topology/Instances/Int.lean Modified Mathlib/Topology/Instances/Real.lean Modified Mathlib/Topology/MetricSpace/Antilipschitz.lean Modified Mathlib/Topology/MetricSpace/Baire.lean Modified Mathlib/Topology/MetricSpace/Bounded.lean Modified Mathlib/Topology/MetricSpace/Cauchy.lean Modified Mathlib/Topology/MetricSpace/Completion.lean Modified Mathlib/Topology/MetricSpace/Contracting.lean Modified Mathlib/Topology/MetricSpace/Dilation.lean Modified Mathlib/Topology/MetricSpace/HausdorffDimension.lean Modified Mathlib/Topology/MetricSpace/IsometricSMul.lean Modified Mathlib/Topology/MetricSpace/PartitionOfUnity.lean Modified Mathlib/Topology/MetricSpace/PseudoMetric.lean Modified Mathlib/Topology/MetricSpace/ThickenedIndicator.lean Modified Mathlib/Topology/Order/Basic.lean Modified Mathlib/Topology/Separation.lean Modified Mathlib/Topology/Sheaves/LocalPredicate.lean Modified Mathlib/Topology/Sheaves/Presheaf.lean Modified Mathlib/Topology/UrysohnsLemma.lean Modified Mathlib/Util/CompileInductive.lean Modified Mathlib/Util/Tactic.lean Modified test/CategoryTheory/Coherence.lean Modified test/CommDiag.lean Modified test/ExtractGoal.lean Modified test/MoveAdd.lean Modified test/RewriteSearch/Polynomial.lean Modified test/antidiagonal.lean Modified test/byContra.lean Modified test/convert2.lean Modified test/search/DepthFirst.lean Modified test/slim_check.lean 2024-01-19 11:22:01 e29e9b5 feat: add definition of Eisenstein series (#9783) This defines Eisenstein series of level N and shows that they are a slash invariant form. Also adds some pre-requisites for proving they are modular forms, which will be in the next PRs ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/LinearAlgebra/Matrix/SpecialLinearGroup.lean + theorem IsCoprime.exists_SL2_col + theorem IsCoprime.exists_SL2_row + theorem IsCoprime.mulVecSL + theorem IsCoprime.vecMulSL + theorem Matrix.SpecialLinearGroup.coe_transpose + theorem Matrix.SpecialLinearGroup.isCoprime_col + theorem Matrix.SpecialLinearGroup.isCoprime_row + def Matrix.SpecialLinearGroup.transpose Added Mathlib/NumberTheory/ModularForms/EisensteinSeries/Basic.lean + def EisensteinSeries.eisSummand + theorem EisensteinSeries.eisSummand_SL2_apply + def EisensteinSeries.eisensteinSeries + def EisensteinSeries.eisensteinSeries_SIF + theorem EisensteinSeries.eisensteinSeries_slash_apply + def EisensteinSeries.gammaSet + def EisensteinSeries.gammaSetEquiv + theorem EisensteinSeries.gammaSet_one_eq + def EisensteinSeries.gammaSet_one_equiv + theorem EisensteinSeries.pairwise_disjoint_gammaSet + theorem EisensteinSeries.vecMul_SL2_mem_gammaSet 2024-01-19 10:45:37 5160f99 feat: lint for large files (#9822) This adds a style linter for files with more than 1500 lines. [zulip discussion](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/Linter.20for.20large.20files.3F) Files which are longer are added as style exceptions. For these files, we also add a "high watermark": if such a file grows more than 100-200 lines compared to its current state, we still error. The style exceptions can be updated by running `./scripts/update-style-exceptions.py`; this regenerates the watermarks correctly. ESTIMATED CHANGES Modified scripts/lint-style.py Modified scripts/style-exceptions.txt 2024-01-19 10:45:36 4a739b9 feat: add Lindelöf spaces and sets (#9107) Add definition Lindelöf set, Lindelöf space, non-Lindelöf space. Add copyright header ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Topology/Compactness/Lindelof.lean + theorem ClosedEmbedding.isLindelof_preimage + theorem ClosedEmbedding.tendsto_coLindelof + theorem Embedding.isLindelof_iff + def Filter.coLindelof + theorem Filter.coLindelof_eq_bot + theorem Filter.coLindelof_neBot_iff + def Filter.coclosedLindelof + theorem Filter.comap_coLindelof_le + theorem Finset.isLindelof_biUnion + theorem HereditarilyLindelof_LindelofSets + theorem Inducing.isLindelof_iff + theorem Inducing.isLindelof_preimage + theorem IsClosed.isLindelof + theorem IsCompact.isLindelof + theorem IsHereditarilyLindelof.isLindelof + theorem IsHereditarilyLindelof.isLindelof_subset + def IsHereditarilyLindelof + theorem IsLindelof.adherence_nhdset + theorem IsLindelof.compl_mem_coLindelof + theorem IsLindelof.compl_mem_sets + theorem IsLindelof.compl_mem_sets_of_nhdsWithin + theorem IsLindelof.countable + theorem IsLindelof.countable_of_discrete + theorem IsLindelof.diff + theorem IsLindelof.disjoint_nhdsSet_left + theorem IsLindelof.disjoint_nhdsSet_right + theorem IsLindelof.elim_countable_subcover + theorem IsLindelof.elim_countable_subcover_image + theorem IsLindelof.elim_countable_subfamily_closed + theorem IsLindelof.elim_nhds_subcover' + theorem IsLindelof.elim_nhds_subcover + theorem IsLindelof.image + theorem IsLindelof.image_of_continuousOn + theorem IsLindelof.induction_on + theorem IsLindelof.inter_iInter_nonempty + theorem IsLindelof.inter_left + theorem IsLindelof.inter_right + theorem IsLindelof.ne_univ + theorem IsLindelof.of_coe + theorem IsLindelof.of_isClosed_subset + theorem IsLindelof.union + def IsLindelof + theorem IsLindeof.compl_mem_coclosedLindelof_of_isClosed + theorem LindelofSpace.elim_nhds_subcover + theorem LindelofSpace.of_continuous_surjective + theorem Set.Countable.isLindelof + theorem Set.Countable.isLindelof_biUnion + theorem Set.Countable.isLindelof_sUnion + theorem Set.Finite.isLindelof + theorem Set.Finite.isLindelof_biUnion + theorem Set.Finite.isLindelof_sUnion + theorem Set.Subsingleton.isLindelof + theorem Subtype.isLindelof_iff + theorem Tendsto.isLindelof_insert_range_of_coLindelof + theorem cluster_point_of_Lindelof + theorem coLindelof_le_coclosedLindelof + theorem coLindelof_le_cofinite + theorem countable_cover_nhds + theorem countable_cover_nhds_interior + theorem countable_of_Lindelof_of_discrete + theorem eq_open_union_countable + theorem hasBasis_coLindelof + theorem hasBasis_coclosedLindelof + theorem isLindelof_accumulate + theorem isLindelof_diagonal + theorem isLindelof_empty + theorem isLindelof_iUnion + theorem isLindelof_iff_LindelofSpace + theorem isLindelof_iff_countable + theorem isLindelof_iff_countable_subcover + theorem isLindelof_iff_countable_subfamily_closed + theorem isLindelof_iff_isLindelof_univ + theorem isLindelof_of_countable_subcover + theorem isLindelof_of_countable_subfamily_closed + theorem isLindelof_open_iff_eq_countable_iUnion_of_isTopologicalBasis + theorem isLindelof_range + theorem isLindelof_singleton + theorem isLindelof_univ + theorem isLindelof_univ_iff + theorem lindelofSpace_of_countable_subfamily_closed + theorem mem_coLindelof' + theorem mem_coLindelof + theorem mem_coclosedLindelof + theorem mem_coclosed_Lindelof' + theorem nonLindelofSpace_of_neBot + theorem nonLindelof_univ + theorem not_LindelofSpace_iff 2024-01-19 09:25:55 a86796b feat: Weaken an order hypothesis (#9849) The theorem as stated assumes `LinearOrderedCancelAddCommMonoid Γ` but the results used in the proof only need `Zero Γ` `LinearOrder Γ` ESTIMATED CHANGES Modified Mathlib/RingTheory/HahnSeries.lean +/- theorem HahnSeries.min_order_le_order_add 2024-01-19 09:25:54 54792e9 refactor(*): abbreviation for non-dependent `FunLike` (#9833) This follows up from #9785, which renamed `FunLike` to `DFunLike`, by introducing a new abbreviation `FunLike F α β := DFunLike F α (fun _ => β)`, to make the non-dependent use of `FunLike` easier. I searched for the pattern `DFunLike.*fun` and `DFunLike.*λ` in all files to replace expressions of the form `DFunLike F α (fun _ => β)` with `FunLike F α β`. I did this everywhere except for `extends` clauses for two reasons: it would conflict with #8386, and more importantly `extends` must directly refer to a structure with no unfolding of `def`s or `abbrev`s. ESTIMATED CHANGES Modified Archive/Hairer.lean Modified Mathlib/Algebra/Algebra/NonUnitalHom.lean Modified Mathlib/Algebra/Category/GroupCat/Basic.lean Modified Mathlib/Algebra/Category/GroupWithZeroCat.lean Modified Mathlib/Algebra/Category/ModuleCat/Monoidal/Closed.lean Modified Mathlib/Algebra/Category/MonCat/Basic.lean Modified Mathlib/Algebra/Category/MonCat/FilteredColimits.lean Modified Mathlib/Algebra/Category/Ring/Basic.lean Modified Mathlib/Algebra/Category/SemigroupCat/Basic.lean Modified Mathlib/Algebra/Group/Freiman.lean Modified Mathlib/Algebra/Homology/ImageToKernel.lean Modified Mathlib/Algebra/Homology/ShortComplex/ConcreteCategory.lean Modified Mathlib/Algebra/Lie/Basic.lean Modified Mathlib/Algebra/Module/LinearMap.lean Modified Mathlib/Algebra/Order/Hom/Basic.lean Modified Mathlib/Algebra/Quandle.lean Modified Mathlib/AlgebraicTopology/TopologicalSimplex.lean Modified Mathlib/Analysis/BoxIntegral/Partition/Additive.lean Modified Mathlib/Analysis/Distribution/SchwartzSpace.lean Modified Mathlib/Analysis/InnerProductSpace/PiL2.lean Modified Mathlib/Analysis/Normed/Group/SemiNormedGroupCat.lean Modified Mathlib/Analysis/NormedSpace/AffineIsometry.lean Modified Mathlib/CategoryTheory/ConcreteCategory/Basic.lean - def CategoryTheory.ConcreteCategory.instDFunLike + def CategoryTheory.ConcreteCategory.instFunLike Modified Mathlib/CategoryTheory/ConcreteCategory/BundledHom.lean Modified Mathlib/CategoryTheory/Limits/ConcreteCategory.lean Modified Mathlib/CategoryTheory/Limits/Shapes/ConcreteCategory.lean Modified Mathlib/CategoryTheory/MorphismProperty.lean Modified Mathlib/CategoryTheory/Sites/ConcreteSheafification.lean Modified Mathlib/CategoryTheory/Sites/Surjective.lean Modified Mathlib/Combinatorics/Additive/SalemSpencer.lean +/- theorem MulSalemSpencer.of_image Modified Mathlib/Combinatorics/Young/SemistandardTableau.lean Modified Mathlib/Data/Finsupp/Defs.lean Modified Mathlib/Data/FunLike/Basic.lean Modified Mathlib/Data/FunLike/Fintype.lean - theorem DFunLike.finite' + theorem FunLike.finite Modified Mathlib/Data/PEquiv.lean Modified Mathlib/Data/Polynomial/Module.lean Modified Mathlib/Geometry/Manifold/ContMDiffMap.lean Modified Mathlib/Geometry/Manifold/DerivationBundle.lean Modified Mathlib/Geometry/Manifold/PartitionOfUnity.lean Modified Mathlib/GroupTheory/Congruence.lean Modified Mathlib/GroupTheory/FreeGroup/IsFreeGroup.lean Modified Mathlib/LinearAlgebra/AffineSpace/AffineMap.lean Modified Mathlib/LinearAlgebra/AffineSpace/Basis.lean Modified Mathlib/LinearAlgebra/Alternating/Basic.lean Modified Mathlib/LinearAlgebra/Basis.lean Modified Mathlib/LinearAlgebra/Dual.lean Modified Mathlib/LinearAlgebra/Multilinear/Basic.lean Modified Mathlib/LinearAlgebra/PerfectPairing.lean Modified Mathlib/LinearAlgebra/Projection.lean +/- structure LinearMap.IsProj Modified Mathlib/LinearAlgebra/QuadraticForm/Basic.lean Modified Mathlib/Logic/Equiv/Defs.lean Modified Mathlib/ModelTheory/Basic.lean +/- theorem FirstOrder.Language.HomClass.map_constants +/- def FirstOrder.Language.HomClass.toHom Modified Mathlib/ModelTheory/ElementaryMaps.lean Modified Mathlib/NumberTheory/ArithmeticFunction.lean Modified Mathlib/NumberTheory/Dioph.lean Modified Mathlib/NumberTheory/LegendreSymbol/AddCharacter.lean Modified Mathlib/NumberTheory/LegendreSymbol/MulCharacter.lean Modified Mathlib/NumberTheory/NumberField/Embeddings.lean Modified Mathlib/Order/Category/BddLat.lean Modified Mathlib/Order/Category/BddOrd.lean Modified Mathlib/Order/Category/Semilat.lean Modified Mathlib/Order/Hom/Lattice.lean Modified Mathlib/Probability/Kernel/Basic.lean Modified Mathlib/Probability/ProbabilityMassFunction/Basic.lean Modified Mathlib/RingTheory/Congruence.lean Modified Mathlib/RingTheory/HahnSeries.lean Modified Mathlib/RingTheory/Valuation/Basic.lean Modified Mathlib/Tactic/CategoryTheory/Elementwise.lean Modified Mathlib/Topology/Bornology/Hom.lean Modified Mathlib/Topology/Category/CompHaus/Projective.lean Modified Mathlib/Topology/Category/Stonean/Basic.lean Modified Mathlib/Topology/Category/TopCat/Basic.lean Modified Mathlib/Topology/ContinuousFunction/Basic.lean Modified Mathlib/Topology/Homotopy/HomotopyGroup.lean Modified Mathlib/Topology/LocallyConstant/Basic.lean Modified Mathlib/Topology/MetricSpace/DilationEquiv.lean Modified Mathlib/Topology/PartitionOfUnity.lean Modified Mathlib/Topology/Sheaves/Presheaf.lean Modified Mathlib/Topology/Sheaves/SheafCondition/UniqueGluing.lean Modified test/CategoryTheory/Elementwise.lean Modified test/FunLike.lean 2024-01-19 09:25:53 58edd50 chore(CompactOpen): golf (#9829) - Add `ContinuousMap.compactOpen_eq_mapsTo`. I'm going to redefine `compactOpen` this way in a subsequent PR. - Golf/migrate some proofs. ESTIMATED CHANGES Modified Mathlib/Topology/CompactOpen.lean + theorem ContinuousMap.compactOpen_eq_mapsTo +/- theorem ContinuousMap.continuous_comp +/- theorem ContinuousMap.continuous_comp_left +/- theorem ContinuousMap.continuous_eval_const +/- theorem ContinuousMap.continuous_restrict 2024-01-19 09:25:52 8b488ab chore(Analysis/Convex./Cone): Rename `Dual.lean` to `InnerDual.lean` (#9818) The file `Dual.lean` is incorrectly named and does not define the dual cone. This has been causing some confusion with linear programming formalization. ESTIMATED CHANGES Modified Mathlib.lean Renamed Mathlib/Analysis/Convex/Cone/Dual.lean to Mathlib/Analysis/Convex/Cone/InnerDual.lean Modified Mathlib/Analysis/Convex/Cone/Pointed.lean 2024-01-19 09:25:51 77a1687 feat: add lemmas about iteratedDerivWithin (#9679) Mostly based on @CBirkbeck's work on modular forms. ESTIMATED CHANGES Modified Mathlib.lean Renamed Mathlib/Analysis/Calculus/IteratedDeriv.lean to Mathlib/Analysis/Calculus/IteratedDeriv/Defs.lean Added Mathlib/Analysis/Calculus/IteratedDeriv/Lemmas.lean + theorem iteratedDerivWithin_add + theorem iteratedDerivWithin_congr + theorem iteratedDerivWithin_const_add + theorem iteratedDerivWithin_const_mul + theorem iteratedDerivWithin_const_neg + theorem iteratedDerivWithin_const_smul + theorem iteratedDerivWithin_neg' + theorem iteratedDerivWithin_neg + theorem iteratedDerivWithin_sub Modified Mathlib/Analysis/Calculus/Taylor.lean Modified Mathlib/Analysis/Distribution/SchwartzSpace.lean Modified Mathlib/Analysis/SpecialFunctions/SmoothTransition.lean 2024-01-19 09:25:50 8fb1d5a chore: remove duplicates about `List.append` (#9376) Replace duplicates in Mathlib with theorems in Lean core. * `List.append_left_cancel` → `List.append_cancel_left` * `List.append_right_cancel` → `List.append_cancel_right` ESTIMATED CHANGES Modified Mathlib/Algebra/FreeMonoid/Basic.lean Modified Mathlib/Computability/TuringMachine.lean Modified Mathlib/Data/List/Basic.lean - theorem List.append_left_cancel - theorem List.append_right_cancel Modified Mathlib/Data/List/Infix.lean 2024-01-19 08:34:47 2b122b7 fix: docstring for ZMod.castHom (#9840) The docstring for this declaration has diverged from reality. ESTIMATED CHANGES Modified Mathlib/Data/ZMod/Basic.lean 2024-01-19 01:51:13 ee6d8f5 feat(Analysis/NormedSpace/TrivSqZeroExt): The L1 norm (#9492) The motivation here is to enable using `exp_add_of_commute` on dual numbers. [This Zulip thread](https://leanprover.zulipchat.com/#narrow/stream/116395-maths/topic/Exponentials.20in.20seminormed.20algebras/near/321981384) has some discussion about other possible norms. ESTIMATED CHANGES Modified Mathlib/Analysis/NormedSpace/TrivSqZeroExt.lean + theorem TrivSqZeroExt.nnnorm_def + theorem TrivSqZeroExt.nnnorm_inl + theorem TrivSqZeroExt.nnnorm_inr + theorem TrivSqZeroExt.norm_def + theorem TrivSqZeroExt.norm_inl + theorem TrivSqZeroExt.norm_inr Modified Mathlib/Topology/Instances/TrivSqZeroExt.lean + theorem TrivSqZeroExt.uniformContinuous_inl + theorem TrivSqZeroExt.uniformContinuous_inr + theorem TrivSqZeroExt.uniformity_def 2024-01-19 00:32:12 b71c5f2 chore: bump Std to leanprover/std4#541 (#9828) Notable changes: lemmas were added in https://github.com/leanprover/std4/pull/538 about `gcd` and `lcm`, that now have implicit arguments. Mostly this is a positive change in Mathlib, we can just delete the arguments. The one to consider in review is in [`ModEq`](https://github.com/leanprover-community/mathlib4/pull/9828/files#diff-bf7908935cfca2e7d7959ec20d701fcda99586d0b7620b05b0a803988fdbd4fc). ESTIMATED CHANGES Modified Mathlib/Data/Int/GCD.lean - theorem Int.dvd_lcm_left - theorem Int.dvd_lcm_right - theorem Int.gcd_dvd_left - theorem Int.gcd_dvd_right - theorem Int.gcd_neg_left - theorem Int.gcd_neg_right - theorem Int.gcd_one_left - theorem Int.gcd_one_right - def Int.lcm - theorem Int.lcm_self Modified Mathlib/Data/Int/ModEq.lean Modified Mathlib/Init/Data/Bool/Lemmas.lean +/- theorem Bool.coe_sort_false +/- theorem Bool.coe_sort_true Modified Mathlib/Lean/Expr/Basic.lean Modified Mathlib/NumberTheory/PythagoreanTriples.lean Modified Mathlib/RingTheory/Int/Basic.lean Modified Mathlib/Tactic/ExtractGoal.lean Modified Mathlib/Tactic/GeneralizeProofs.lean Modified Mathlib/Tactic/NormNum/GCD.lean Modified lake-manifest.json 2024-01-18 18:38:07 d8b1ddd feat(Algebra/Ring/CentroidHom): central iff mul op commute (#8663) Show that an element of a commutative semiring is central iff the corresponding multiplication operator commutes with all multiplication operators ESTIMATED CHANGES Modified Mathlib/Algebra/Ring/CentroidHom.lean +/- def CentroidHom.centerIsoCentroid +/- theorem CentroidHom.centerToCentroid_apply - theorem CentroidHom.center_iff_op_centroid + theorem NonUnitalNonAssocCommSemiring.mem_center_iff + theorem NonUnitalNonAssocSemiring.mem_center_iff 2024-01-18 17:23:22 91ac690 chore: Move order lemmas about `zpow` (#9805) These lemmas can be proved earlier. Part of #9411 ESTIMATED CHANGES Modified Archive/Imo/Imo2008Q3.lean Modified Mathlib/Algebra/Category/GroupCat/Basic.lean Modified Mathlib/Algebra/GroupPower/Lemmas.lean - theorem abs_add_eq_add_abs_iff - theorem abs_add_eq_add_abs_le - theorem abs_nsmul - theorem abs_pow - theorem abs_zsmul - theorem one_lt_zpow' - theorem pow_bit1_neg_iff - theorem pow_bit1_nonneg_iff - theorem pow_bit1_nonpos_iff - theorem pow_bit1_pos_iff - theorem strictMono_pow_bit1 - theorem zpow_eq_zpow_iff' - theorem zpow_le_zpow' - theorem zpow_le_zpow - theorem zpow_le_zpow_iff' - theorem zpow_le_zpow_iff - theorem zpow_left_inj - theorem zpow_left_injective - theorem zpow_lt_zpow' - theorem zpow_lt_zpow - theorem zpow_lt_zpow_iff' - theorem zpow_lt_zpow_iff - theorem zpow_mono_left - theorem zpow_mono_right - theorem zpow_right_strictMono - theorem zpow_strictMono_left Modified Mathlib/Algebra/GroupPower/Order.lean - theorem abs_le_of_sq_le_sq' - theorem abs_le_of_sq_le_sq - theorem abs_lt_of_sq_lt_sq' - theorem abs_lt_of_sq_lt_sq - theorem abs_neg_one_pow - theorem abs_pow_eq_one - theorem abs_sq - theorem one_le_sq_iff_one_le_abs - theorem one_lt_sq_iff_one_lt_abs + theorem one_lt_zpow' - theorem pow_abs + theorem pow_bit1_neg_iff + theorem pow_bit1_nonneg_iff + theorem pow_bit1_nonpos_iff + theorem pow_bit1_pos_iff +/- theorem pow_four_le_pow_two_of_pow_two_le +/- theorem pow_left_strictMonoOn - theorem sq_abs - theorem sq_eq_sq_iff_abs_eq_abs - theorem sq_le_one_iff_abs_le_one - theorem sq_le_sq' - theorem sq_le_sq - theorem sq_lt_one_iff_abs_lt_one - theorem sq_lt_sq' - theorem sq_lt_sq +/- theorem sq_pos_iff + theorem strictMono_pow_bit1 + theorem zpow_eq_zpow_iff' + theorem zpow_le_zpow' + theorem zpow_le_zpow + theorem zpow_le_zpow_iff' + theorem zpow_le_zpow_iff + theorem zpow_left_inj + theorem zpow_left_injective + theorem zpow_lt_zpow' + theorem zpow_lt_zpow + theorem zpow_lt_zpow_iff' + theorem zpow_lt_zpow_iff + theorem zpow_mono_left + theorem zpow_mono_right + theorem zpow_right_strictMono + theorem zpow_strictMono_left Modified Mathlib/Algebra/Order/Field/Basic.lean Modified Mathlib/Algebra/Order/Group/Abs.lean + theorem mabs_mul_eq_mul_mabs_iff + theorem mabs_pow Modified Mathlib/Algebra/Order/Ring/Abs.lean +/- def absHom +/- theorem abs_eq_iff_mul_self_eq +/- theorem abs_le_iff_mul_self_le + theorem abs_le_of_sq_le_sq' + theorem abs_le_of_sq_le_sq +/- theorem abs_le_one_iff_mul_self_le_one +/- theorem abs_lt_iff_mul_self_lt + theorem abs_lt_of_sq_lt_sq' + theorem abs_lt_of_sq_lt_sq +/- theorem abs_mul +/- theorem abs_mul_abs_self +/- theorem abs_mul_self + theorem abs_neg_one_pow +/- theorem abs_one + theorem abs_pow + theorem abs_pow_eq_one + theorem abs_sq +/- theorem abs_two + theorem mabs_zpow + theorem one_le_sq_iff_one_le_abs + theorem one_lt_sq_iff_one_lt_abs + theorem pow_abs + theorem sq_abs + theorem sq_eq_sq_iff_abs_eq_abs + theorem sq_le_one_iff_abs_le_one + theorem sq_le_sq' + theorem sq_le_sq + theorem sq_lt_one_iff_abs_lt_one + theorem sq_lt_sq' + theorem sq_lt_sq Modified Mathlib/Algebra/Parity.lean Modified Mathlib/Analysis/SpecificLimits/Basic.lean Modified Mathlib/Data/Int/Lemmas.lean Modified Mathlib/Data/Int/Order/Lemmas.lean Modified Mathlib/Data/Int/Order/Units.lean Modified Mathlib/Data/Nat/Log.lean Modified Mathlib/Data/Real/NNReal.lean Modified Mathlib/Data/Set/Intervals/Group.lean Modified Mathlib/Data/Set/Intervals/Instances.lean Modified Mathlib/GroupTheory/Subgroup/ZPowers.lean 2024-01-18 17:01:13 718042d chore: update list of style exceptions (#9821) Created by manually running `./scripts/update-style-exceptions.sh`. ESTIMATED CHANGES Modified scripts/style-exceptions.txt 2024-01-18 15:51:13 6cdea12 feat(MeasureTheory): define contents on semi-rings of sets (#9402) - Define additive contents and prove their basic properties on (semi)-rings of sets. - Define rings of sets. Part of the formalization of the Kolmogorov Extension Theorem. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/MeasureTheory/Measure/AddContent.lean + structure MeasureTheory.AddContent + theorem MeasureTheory.addContent_biUnion_le + theorem MeasureTheory.addContent_empty + theorem MeasureTheory.addContent_eq_add_diffFinset₀_of_subset + theorem MeasureTheory.addContent_mono + theorem MeasureTheory.addContent_sUnion + theorem MeasureTheory.addContent_union' + theorem MeasureTheory.addContent_union + theorem MeasureTheory.addContent_union_le + theorem MeasureTheory.le_addContent_diff + theorem MeasureTheory.sum_addContent_le_of_subset Modified Mathlib/MeasureTheory/SetSemiring.lean + theorem MeasureTheory.IsSetRing.biInter_mem + theorem MeasureTheory.IsSetRing.biUnion_mem + theorem MeasureTheory.IsSetRing.inter_mem + theorem MeasureTheory.IsSetRing.isSetSemiring + structure MeasureTheory.IsSetRing 2024-01-18 15:15:28 1bf390a feat(Probability): condKernel and condDistrib applied to singletons of non-zero measure (#9351) From the PFR project. ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Constructions/Prod/Basic.lean + theorem MeasurableEmbedding.prod_mk_left + theorem MeasurableEmbedding.prod_mk_right + theorem measurableEmbedding_prod_mk_left + theorem measurableEmbedding_prod_mk_right Modified Mathlib/Probability/Kernel/CondDistrib.lean + theorem ProbabilityTheory.condDistrib_apply_of_ne_zero Modified Mathlib/Probability/Kernel/Disintegration.lean + theorem ProbabilityTheory.condKernel_apply_of_ne_zero + theorem ProbabilityTheory.condKernel_apply_of_ne_zero_of_measurableSet 2024-01-18 14:42:30 fbe3b9a chore: update nolints.json (#9832) Created by running `lake exe runLinter --update Mathlib` locally. Most changes are due to leanprover/std4#269: proof fields in classes or structures do not require a docstring any more. ESTIMATED CHANGES Modified scripts/nolints.json 2024-01-18 14:42:29 f6d7c00 Update install_debian.sh (#9784) See [zulip](https://leanprover.zulipchat.com/#narrow/stream/113488-general/topic/Installation.20on.20fresh.20Ubuntu) discussion. ESTIMATED CHANGES Modified scripts/install_debian.sh 2024-01-18 13:29:38 a5e04cb chore: remove redundant dsimp args (#9835) This is needed to work with leanprover/lean4#3087 ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Limits/Presheaf.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Pullbacks.lean Modified Mathlib/Data/Complex/Exponential.lean Modified Mathlib/Data/List/Perm.lean Modified Mathlib/Data/ZMod/Basic.lean Modified Mathlib/RepresentationTheory/GroupCohomology/Resolution.lean Modified Mathlib/SetTheory/Game/PGame.lean 2024-01-18 13:29:37 05dc888 feat(Cardinal): define conversion to/from `ENat` (#9792) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/SetTheory/Cardinal/ENat.lean + theorem Cardinal.aleph0_add_ofENat + theorem Cardinal.aleph0_mul_ofENat + theorem Cardinal.enat_gc + theorem Cardinal.lift_eq_ofENat + theorem Cardinal.lift_le_ofENat + theorem Cardinal.lift_lt_ofENat + theorem Cardinal.lift_ofENat + theorem Cardinal.nat_eq_ofENat + theorem Cardinal.nat_le_ofENat + theorem Cardinal.nat_lt_ofENat + def Cardinal.ofENat + def Cardinal.ofENatHom + theorem Cardinal.ofENat_add + theorem Cardinal.ofENat_add_aleph0 + theorem Cardinal.ofENat_eq_lift + theorem Cardinal.ofENat_eq_nat + theorem Cardinal.ofENat_eq_ofNat + theorem Cardinal.ofENat_eq_one + theorem Cardinal.ofENat_eq_zero + theorem Cardinal.ofENat_inj + theorem Cardinal.ofENat_injective + theorem Cardinal.ofENat_le_aleph0 + theorem Cardinal.ofENat_le_lift + theorem Cardinal.ofENat_le_nat + theorem Cardinal.ofENat_le_ofENat + theorem Cardinal.ofENat_le_ofNat + theorem Cardinal.ofENat_le_one + theorem Cardinal.ofENat_lt_aleph0 + theorem Cardinal.ofENat_lt_lift + theorem Cardinal.ofENat_lt_nat + theorem Cardinal.ofENat_lt_ofENat + theorem Cardinal.ofENat_lt_ofNat + theorem Cardinal.ofENat_mono + theorem Cardinal.ofENat_mul + theorem Cardinal.ofENat_mul_aleph0 + theorem Cardinal.ofENat_nat + theorem Cardinal.ofENat_ofNat + theorem Cardinal.ofENat_one + theorem Cardinal.ofENat_pos + theorem Cardinal.ofENat_strictMono + theorem Cardinal.ofENat_toENat_eq_self + theorem Cardinal.ofENat_toENat_le + theorem Cardinal.ofENat_top + theorem Cardinal.ofENat_zero + theorem Cardinal.ofNat_eq_ofENat + theorem Cardinal.ofNat_le_ofENat + theorem Cardinal.ofNat_lt_ofENat + theorem Cardinal.one_eq_ofENat + theorem Cardinal.one_le_ofENat + theorem Cardinal.one_lt_ofENat + theorem Cardinal.range_ofENat + theorem Cardinal.toENatAux_eq_nat + theorem Cardinal.toENatAux_eq_top + theorem Cardinal.toENatAux_eq_zero + theorem Cardinal.toENatAux_gc + theorem Cardinal.toENatAux_nat + theorem Cardinal.toENatAux_ofENat + theorem Cardinal.toENatAux_zero + theorem Cardinal.toENat_comp_ofENat + theorem Cardinal.toENat_eq_nat + theorem Cardinal.toENat_eq_ofNat + theorem Cardinal.toENat_eq_one + theorem Cardinal.toENat_eq_top + theorem Cardinal.toENat_eq_zero + theorem Cardinal.toENat_injOn + theorem Cardinal.toENat_nat + theorem Cardinal.toENat_ofENat + theorem Cardinal.toENat_strictMonoOn + theorem Cardinal.toNat_toENat + theorem Cardinal.zero_eq_ofENat 2024-01-18 12:30:27 6ca3ad6 chore(Data/Polynomial): tiny proof cleanup (#9834) @kbuzzard spotted that this proof might be cleaned up with the improvements to `simp`. Sadly we can't quite go back to the pre-port simplicity. Is it still worth applying this bit of polish? ESTIMATED CHANGES Modified Mathlib/Data/Polynomial/Basic.lean 2024-01-18 12:30:26 07c91e9 chore(Data/Real/ENNReal): move to Data/ENNReal/Basic (#9823) In preparation for splitting that file. Location suggested by @j-loreaux on [zulip](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/Linter.20for.20large.20files.3F/near/416093669). ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Analysis/NormedSpace/WithLp.lean Renamed Mathlib/Data/Real/ENNReal.lean to Mathlib/Data/ENNReal/Basic.lean Modified Mathlib/Data/Real/ConjugateExponents.lean Modified Mathlib/Data/Real/ENatENNReal.lean Modified Mathlib/Data/Real/EReal.lean Modified Mathlib/MeasureTheory/SetSemiring.lean Modified Mathlib/Topology/EMetricSpace/Basic.lean Modified Mathlib/Topology/MetricSpace/ThickenedIndicator.lean 2024-01-18 12:30:25 b105bcd feat(Topology/Support): add locallyFinite_mulSupport_iff (#9779) From sphere-eversion; I'm just upstreaming it. ESTIMATED CHANGES Modified Mathlib/Topology/Support.lean +/- theorem LocallyFinite.exists_finset_nhd_mulSupport_subset + theorem locallyFinite_mulSupport_iff 2024-01-18 12:30:24 c643a80 Results regarding Fibonacci sequence and Golden Ratio (#9625) List of results so far: - `φ ^ (n + 2) - φ ^ (n + 1) = φ ^ n` - `2 > φ` - `fib (n + 1) - φ * fib n = ψ ^ n` - `fib n + φ * fib (n + 1) = φ ^ n` [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) ESTIMATED CHANGES Modified Mathlib/Data/Real/GoldenRatio.lean + theorem fib_golden_conj_exp + theorem fib_golden_exp' + theorem gold_lt_two + theorem gold_pow_sub_gold_pow 2024-01-18 11:11:51 4c4c729 fix(Tactic/ToAdditive): move the documentation text of to_additive to the module docstring (#9826) Fixes the rendering of the documentation of the `@[to_additive]` annotation as rendered by `doc-gen4`, by copying the relevant documentation to the module description. This can easily be reverted once the issue in `doc-gen4` is fixed, or the original documentation by the attribute can be removed if this behavior is deemed intentional. As of writing this, the documentation for `to_additive` cannot be viewed on the online docs for mathlib4, and is only accessible through the `#help attr to_additive` command or by stumbling onto at the bottom of `to_additive`'s source file. ESTIMATED CHANGES Modified Mathlib/Tactic/ToAdditive.lean 2024-01-18 10:31:33 ff40d69 feat: Lemma on Monoid Localization and Consequences on Minimal Primes (#9640) ESTIMATED CHANGES Modified Mathlib/AlgebraicGeometry/PrimeSpectrum/Basic.lean Modified Mathlib/GroupTheory/MonoidLocalization.lean + theorem Submonoid.LocalizationMap.map_injective_of_injective + theorem Submonoid.LocalizationMap.mk'_eq_of_same + theorem Submonoid.LocalizationMap.surj₂ Modified Mathlib/RingTheory/Ideal/MinimalPrime.lean +/- def minimalPrimes +/- theorem minimalPrimes_eq_minimals Modified Mathlib/RingTheory/Localization/Basic.lean +/- theorem IsLocalization.map_injective_of_injective + theorem IsLocalization.surj₂ 2024-01-18 09:44:04 158d852 feat: construct Haar measure in locally compact non-Hausdorff groups (#9746) The construction we have is given in T2 spaces, but it works in non-Hausdorff spaces modulo a few modifications. For this, we introduce an ad hoc class `T2OrLocallyCompactRegularSpace`, which is just enough to unify the arguments, as a replacement for the class `ClosableCompactSubsetOpenSpace` (which is not strong enough). In the file `Separation.lean`, we move some material that was only available on T2 spaces to this new class. The construction is needed for a forthcoming improvement of uniqueness results for Haar measures, based on https://mathoverflow.net/questions/456670/uniqueness-of-left-invariant-borel-probability-measure-on-compact-groups. ESTIMATED CHANGES Modified Mathlib/Analysis/Fourier/RiemannLebesgueLemma.lean Modified Mathlib/MeasureTheory/Measure/Content.lean +/- theorem MeasureTheory.Content.innerContent_iSup_nat +/- theorem MeasureTheory.Content.innerContent_iUnion_nat +/- theorem MeasureTheory.Content.innerContent_pos_of_is_mul_left_invariant +/- theorem MeasureTheory.Content.sup_disjoint Modified Mathlib/MeasureTheory/Measure/Haar/Basic.lean +/- theorem MeasureTheory.Measure.haar.chaar_sup_eq + theorem MeasureTheory.Measure.haar.haarContent_outerMeasure_closure_pos +/- theorem MeasureTheory.Measure.haar.haarContent_outerMeasure_self_pos +/- theorem MeasureTheory.Measure.haarMeasure_apply + theorem MeasureTheory.Measure.haarMeasure_closure_self Modified Mathlib/MeasureTheory/Measure/Haar/Disintegration.lean Modified Mathlib/MeasureTheory/Measure/Haar/Unique.lean +/- theorem MeasureTheory.Measure.absolutelyContinuous_isHaarMeasure + theorem MeasureTheory.Measure.exists_integral_isMulLeftInvariant_eq_smul_of_hasCompactSupport + theorem MeasureTheory.Measure.haarScalarFactor_eq_one_of_isProbabilityMeasure + theorem MeasureTheory.Measure.haarScalarFactor_pos_of_isOpenPosMeasure +/- theorem MeasureTheory.Measure.isHaarMeasure_eq_smul - theorem MeasureTheory.Measure.isHaarMeasure_eq_smul_of_innerRegular - theorem MeasureTheory.Measure.isHaarMeasure_eq_smul_of_regular - theorem MeasureTheory.Measure.isMulLeftInvariant_eq_of_isProbabilityMeasure +/- theorem MeasureTheory.Measure.isMulLeftInvariant_eq_smul_of_innerRegular +/- theorem MeasureTheory.Measure.isMulLeftInvariant_eq_smul_of_regular +/- theorem MeasureTheory.Measure.measure_isMulLeftInvariant_eq_smul_of_ne_top Modified Mathlib/MeasureTheory/Measure/Regular.lean +/- theorem MeasureTheory.Measure.InnerRegular.innerRegularWRT_isClosed_isOpen + theorem MeasureTheory.Measure.OuterRegular.measure_closure_eq_of_isCompact +/- theorem MeasureTheory.Measure.Regular.restrict_of_measure_ne_top Modified Mathlib/Topology/Algebra/Group/Compact.lean +/- theorem TopologicalSpace.PositiveCompacts.locallyCompactSpace_of_group - theorem TopologicalSpace.PositiveCompacts.weaklyLocallyCompactSpace_of_group Modified Mathlib/Topology/Separation.lean +/- theorem IsCompact.binary_compact_cover +/- theorem IsCompact.closure_subset_of_isOpen +/- theorem IsCompact.finite_compact_cover + theorem RegularSpace.ofT2SpaceOrRegularSpace +/- theorem SeparatedNhds.empty_left +/- theorem SeparatedNhds.empty_right +/- theorem exists_compact_closed_between +/- theorem exists_compact_superset_iff +/- theorem exists_open_between_and_isCompact_closure +/- theorem exists_open_superset_and_isCompact_closure +/- theorem exists_open_with_compact_closure - theorem finset_disjoint_finset_opens_of_t2 +/- theorem isCompact_closure_of_subset_compact - theorem isCompact_isCompact_separated + theorem separatedNhds_of_finset_finset + theorem separatedNhds_of_isCompact_isClosed + theorem separatedNhds_of_isCompact_isCompact + theorem separatedNhds_of_isCompact_isCompact_isClosed 2024-01-18 02:11:36 1872765 chore(MetricSpace/PseudoMetric): split out proper spaces (#9812) And move one lemma to a better place. Shaves off another 130 lines from a 2200 line file; #9815 continues with a more far-reaching split. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Topology/MetricSpace/Basic.lean Added Mathlib/Topology/MetricSpace/ProperSpace.lean + theorem Metric.exists_isLocalMin_mem_ball + theorem exists_lt_subset_ball + theorem exists_pos_lt_subset_ball + theorem isCompact_sphere + theorem properSpace_of_compact_closedBall_of_le Modified Mathlib/Topology/MetricSpace/PseudoMetric.lean - theorem Metric.exists_isLocalMin_mem_ball - theorem exists_lt_subset_ball - theorem exists_pos_lt_subset_ball - theorem isCompact_sphere - theorem properSpace_of_compact_closedBall_of_le 2024-01-18 02:11:34 9fb3642 chore(Data/Set): move definitions to a new file (#9737) This and other similar PRs will help us reduce `import` dependencies and improve parallel compilation in the future. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Data/Set/Basic.lean - def Set.Elem - theorem Set.diff_eq - theorem Set.mem_compl_iff - theorem Set.mem_diff - theorem Set.mem_diff_of_mem - theorem Set.mem_setOf_eq - theorem Set.mem_univ Added Mathlib/Data/Set/Defs.lean + def Set.BijOn + def Set.Elem + def Set.EqOn + def Set.InjOn + def Set.InvOn + def Set.LeftInvOn + def Set.MapsTo.restrict + def Set.MapsTo + def Set.RightInvOn + def Set.SurjOn + theorem Set.apply_rangeSplitting + theorem Set.comp_rangeSplitting + def Set.diagonal + theorem Set.diff_eq + def Set.graphOn + def Set.image2 + def Set.imageFactorization + def Set.kernImage + theorem Set.mapsTo_image + theorem Set.mapsTo_preimage + theorem Set.mem_compl_iff + theorem Set.mem_diagonal + theorem Set.mem_diagonal_iff + theorem Set.mem_diff + theorem Set.mem_diff_of_mem + theorem Set.mem_image2 + theorem Set.mem_image2_of_mem + theorem Set.mem_image + theorem Set.mem_image_of_mem + theorem Set.mem_offDiag + theorem Set.mem_pi + theorem Set.mem_preimage + theorem Set.mem_prod + theorem Set.mem_prod_eq + theorem Set.mem_range + theorem Set.mem_range_self + theorem Set.mem_seq_iff + theorem Set.mem_setOf_eq + theorem Set.mem_univ + theorem Set.mem_univ_pi + theorem Set.mk_mem_prod + def Set.offDiag + def Set.pi + def Set.preimage + def Set.prod + theorem Set.prod_eq + theorem Set.prod_mk_mem_set_prod_eq + def Set.range + def Set.rangeFactorization + def Set.restrictPreimage + def Set.seq + theorem Set.seq_eq_image2 + theorem Set.subset_kernImage_iff Modified Mathlib/Data/Set/Function.lean - def Set.BijOn - def Set.EqOn - def Set.InjOn - def Set.InvOn - def Set.LeftInvOn - def Set.MapsTo.restrict - def Set.MapsTo - def Set.RightInvOn - def Set.SurjOn - def Set.graphOn - theorem Set.mapsTo_image - theorem Set.mapsTo_preimage - def Set.restrictPreimage Modified Mathlib/Data/Set/Image.lean - theorem Set.apply_rangeSplitting - theorem Set.comp_rangeSplitting - def Set.imageFactorization - theorem Set.mem_image - theorem Set.mem_image_of_mem - theorem Set.mem_preimage - theorem Set.mem_range - theorem Set.mem_range_self - def Set.preimage - def Set.range - def Set.rangeFactorization Modified Mathlib/Data/Set/Lattice.lean - def Set.kernImage - theorem Set.mem_seq_iff - def Set.seq - theorem Set.seq_eq_image2 - theorem Set.subset_kernImage_iff Modified Mathlib/Data/Set/NAry.lean - def Set.image2 - theorem Set.mem_image2 - theorem Set.mem_image2_of_mem Modified Mathlib/Data/Set/Prod.lean - def Set.diagonal - theorem Set.mem_diagonal - theorem Set.mem_diagonal_iff - theorem Set.mem_offDiag - theorem Set.mem_pi - theorem Set.mem_prod - theorem Set.mem_prod_eq - theorem Set.mem_univ_pi - theorem Set.mk_mem_prod - def Set.offDiag - def Set.pi - def Set.prod - theorem Set.prod_eq - theorem Set.prod_mk_mem_set_prod_eq 2024-01-18 00:39:48 8c01465 chore(*): reduce dependencies on `Mathlib.Tactic.*` (#9816) - Drop `import Mathlib.Tactic.Basic` in `Mathlib.Init.Logic` and `Mathlib.Logic.Basic`. - Fix compile, sometimes golf broken proofs instead of re-adding `import`s. ESTIMATED CHANGES Modified Mathlib/Control/Functor.lean Modified Mathlib/Data/List/TFAE.lean Modified Mathlib/Data/Option/Defs.lean Modified Mathlib/Data/Part.lean Modified Mathlib/Data/Rbtree/Init.lean Modified Mathlib/Data/Vector3.lean Modified Mathlib/Init/Function.lean Modified Mathlib/Init/Logic.lean Modified Mathlib/Logic/Basic.lean Modified Mathlib/Order/CompleteLattice.lean Modified test/cases.lean 2024-01-18 00:39:47 1e74fcf feat(Algebra/CharP/{Basic|ExpChar}): add `sum_pow_{char|expChar}_pow` (#9799) ESTIMATED CHANGES Modified Mathlib/Algebra/CharP/Basic.lean + theorem list_sum_pow_char_pow + theorem multiset_sum_pow_char_pow + theorem sum_pow_char_pow Modified Mathlib/Algebra/CharP/ExpChar.lean + theorem list_sum_pow_expChar + theorem list_sum_pow_expChar_pow + theorem multiset_sum_pow_expChar + theorem multiset_sum_pow_expChar_pow + theorem sum_pow_expChar + theorem sum_pow_expChar_pow 2024-01-18 00:39:46 2a14ea0 chore(Order/Notation): move notation classes from other files (#9750) With this change (and future similar changes), we can avoid importing heavier files if we only need notation, not lemmas. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Order/Basic.lean Modified Mathlib/Order/BoundedOrder.lean Modified Mathlib/Order/Heyting/Basic.lean Added Mathlib/Order/Notation.lean 2024-01-17 23:23:55 8265674 chore(*): rename `FunLike` to `DFunLike` (#9785) This prepares for the introduction of a non-dependent synonym of FunLike, which helps a lot with keeping #8386 readable. This is entirely search-and-replace in [680197f](https://github.com/leanprover-community/mathlib4/pull/9785/commits/680197facd83904c603e7b8bc2eecbd9eeaf0787) combined with manual fixes in [4145626](https://github.com/leanprover-community/mathlib4/pull/9785/commits/414562627a8d287559068ff02cc811c262a1d6c8), [e900597](https://github.com/leanprover-community/mathlib4/pull/9785/commits/e900597f6895dd14d4a60dcf83b596965717c35d) and [b8428f8](https://github.com/leanprover-community/mathlib4/pull/9785/commits/b8428f88f3e07f9be6b673266af8b0795bb3427d). The commands that generated this change: ```bash sed -i 's/\bFunLike\b/DFunLike/g' {Archive,Counterexamples,Mathlib,test}/**/*.lean sed -i 's/\btoFunLike\b/toDFunLike/g' {Archive,Counterexamples,Mathlib,test}/**/*.lean sed -i 's/import Mathlib.Data.DFunLike/import Mathlib.Data.FunLike/g' {Archive,Counterexamples,Mathlib,test}/**/*.lean sed -i 's/\bHom_FunLike\b/Hom_DFunLike/g' {Archive,Counterexamples,Mathlib,test}/**/*.lean sed -i 's/\binstFunLike\b/instDFunLike/g' {Archive,Counterexamples,Mathlib,test}/**/*.lean sed -i 's/\bfunLike\b/instDFunLike/g' {Archive,Counterexamples,Mathlib,test}/**/*.lean sed -i 's/\btoo many metavariables to apply `fun_like.has_coe_to_fun`/too many metavariables to apply `DFunLike.hasCoeToFun`/g' {Archive,Counterexamples,Mathlib,test}/**/*.lean ``` ESTIMATED CHANGES Modified Archive/Hairer.lean Modified Counterexamples/DirectSumIsInternal.lean Modified Mathlib/Algebra/Algebra/Basic.lean Modified Mathlib/Algebra/Algebra/Bilinear.lean Modified Mathlib/Algebra/Algebra/Equiv.lean +/- theorem AlgEquiv.coe_algHom Modified Mathlib/Algebra/Algebra/Hom.lean Modified Mathlib/Algebra/Algebra/NonUnitalHom.lean Modified Mathlib/Algebra/Algebra/Prod.lean Modified Mathlib/Algebra/Algebra/Unitization.lean Modified Mathlib/Algebra/BigOperators/Finsupp.lean Modified Mathlib/Algebra/BigOperators/Pi.lean Modified Mathlib/Algebra/Category/AlgebraCat/Limits.lean Modified Mathlib/Algebra/Category/GroupCat/Adjunctions.lean Modified Mathlib/Algebra/Category/GroupCat/Basic.lean Modified Mathlib/Algebra/Category/GroupCat/Colimits.lean Modified Mathlib/Algebra/Category/GroupCat/EpiMono.lean Modified Mathlib/Algebra/Category/GroupCat/FilteredColimits.lean Modified Mathlib/Algebra/Category/GroupCat/Injective.lean Modified Mathlib/Algebra/Category/GroupCat/Kernels.lean Modified Mathlib/Algebra/Category/GroupCat/Limits.lean Modified Mathlib/Algebra/Category/GroupWithZeroCat.lean Modified Mathlib/Algebra/Category/ModuleCat/Basic.lean Modified Mathlib/Algebra/Category/ModuleCat/ChangeOfRings.lean Modified Mathlib/Algebra/Category/ModuleCat/Monoidal/Closed.lean Modified Mathlib/Algebra/Category/MonCat/Basic.lean Modified Mathlib/Algebra/Category/MonCat/Colimits.lean Modified Mathlib/Algebra/Category/MonCat/FilteredColimits.lean Modified Mathlib/Algebra/Category/Ring/Basic.lean Modified Mathlib/Algebra/Category/SemigroupCat/Basic.lean Modified Mathlib/Algebra/DirectLimit.lean Modified Mathlib/Algebra/DirectSum/Algebra.lean Modified Mathlib/Algebra/DirectSum/Basic.lean Modified Mathlib/Algebra/DirectSum/Decomposition.lean Modified Mathlib/Algebra/DirectSum/Module.lean Modified Mathlib/Algebra/DirectSum/Ring.lean Modified Mathlib/Algebra/DualNumber.lean Modified Mathlib/Algebra/Exact.lean Modified Mathlib/Algebra/Free.lean Modified Mathlib/Algebra/FreeMonoid/Basic.lean Modified Mathlib/Algebra/Group/Equiv/Basic.lean Modified Mathlib/Algebra/Group/Freiman.lean Modified Mathlib/Algebra/Group/Hom/Defs.lean Modified Mathlib/Algebra/Group/Hom/Instances.lean Modified Mathlib/Algebra/Group/Opposite.lean Modified Mathlib/Algebra/Group/UniqueProds.lean Modified Mathlib/Algebra/Homology/ImageToKernel.lean Modified Mathlib/Algebra/Homology/ShortComplex/ConcreteCategory.lean Modified Mathlib/Algebra/Lie/Basic.lean Modified Mathlib/Algebra/Module/Basic.lean Modified Mathlib/Algebra/Module/DirectLimitAndTensorProduct.lean Modified Mathlib/Algebra/Module/Equiv.lean Modified Mathlib/Algebra/Module/GradedModule.lean Modified Mathlib/Algebra/Module/LinearMap.lean +/- theorem LinearMap.coe_injective Modified Mathlib/Algebra/Module/LocalizedModule.lean Modified Mathlib/Algebra/Module/Projective.lean Modified Mathlib/Algebra/Module/Submodule/LinearMap.lean Modified Mathlib/Algebra/MonoidAlgebra/Basic.lean Modified Mathlib/Algebra/Order/AbsoluteValue.lean Modified Mathlib/Algebra/Order/Hom/Basic.lean Modified Mathlib/Algebra/Order/Hom/Monoid.lean Modified Mathlib/Algebra/Order/Hom/Ring.lean +/- theorem OrderRingIso.coe_toOrderIso Modified Mathlib/Algebra/Polynomial/GroupRingAction.lean Modified Mathlib/Algebra/Quandle.lean Modified Mathlib/Algebra/Ring/CentroidHom.lean Modified Mathlib/Algebra/Ring/Equiv.lean Modified Mathlib/Algebra/Ring/Hom/Defs.lean Modified Mathlib/Algebra/Star/Basic.lean Modified Mathlib/Algebra/Star/StarAlgHom.lean Modified Mathlib/Algebra/Star/Subalgebra.lean Modified Mathlib/AlgebraicTopology/TopologicalSimplex.lean Modified Mathlib/Analysis/BoxIntegral/Partition/Additive.lean +/- theorem BoxIntegral.BoxAdditiveMap.coe_inj Modified Mathlib/Analysis/Calculus/ContDiff/Defs.lean Modified Mathlib/Analysis/Calculus/Deriv/Star.lean Modified Mathlib/Analysis/Calculus/LocalExtr/Basic.lean Modified Mathlib/Analysis/Complex/Basic.lean Modified Mathlib/Analysis/Convex/Gauge.lean Modified Mathlib/Analysis/Distribution/SchwartzSpace.lean +/- theorem SchwartzMap.coe_coeHom +/- theorem SchwartzMap.coe_zero Modified Mathlib/Analysis/InnerProductSpace/PiL2.lean Modified Mathlib/Analysis/InnerProductSpace/Projection.lean Modified Mathlib/Analysis/Normed/Group/Hom.lean Modified Mathlib/Analysis/Normed/Group/SemiNormedGroupCat.lean Modified Mathlib/Analysis/Normed/Group/Seminorm.lean Modified Mathlib/Analysis/Normed/Ring/Seminorm.lean Modified Mathlib/Analysis/NormedSpace/AffineIsometry.lean Modified Mathlib/Analysis/NormedSpace/HahnBanach/Extension.lean Modified Mathlib/Analysis/NormedSpace/LinearIsometry.lean Modified Mathlib/Analysis/NormedSpace/Star/Spectrum.lean Modified Mathlib/Analysis/NormedSpace/WeakDual.lean Modified Mathlib/Analysis/Seminorm.lean Modified Mathlib/Analysis/SpecialFunctions/Bernstein.lean Modified Mathlib/CategoryTheory/ConcreteCategory/Basic.lean - def CategoryTheory.ConcreteCategory.funLike + def CategoryTheory.ConcreteCategory.instDFunLike Modified Mathlib/CategoryTheory/ConcreteCategory/BundledHom.lean Modified Mathlib/CategoryTheory/Limits/ConcreteCategory.lean Modified Mathlib/CategoryTheory/Limits/Shapes/ConcreteCategory.lean Modified Mathlib/CategoryTheory/MorphismProperty.lean Modified Mathlib/CategoryTheory/Sites/ConcreteSheafification.lean Modified Mathlib/CategoryTheory/Sites/Surjective.lean Modified Mathlib/Combinatorics/Additive/SalemSpencer.lean +/- theorem MulSalemSpencer.of_image Modified Mathlib/Combinatorics/SimpleGraph/Maps.lean Modified Mathlib/Combinatorics/SimpleGraph/Subgraph.lean Modified Mathlib/Combinatorics/Young/SemistandardTableau.lean Modified Mathlib/Data/Analysis/Filter.lean Modified Mathlib/Data/DFinsupp/Basic.lean +/- theorem DFinsupp.ne_iff Modified Mathlib/Data/DFinsupp/Lex.lean Modified Mathlib/Data/DFinsupp/Order.lean +/- theorem DFinsupp.coe_orderEmbeddingToFun Modified Mathlib/Data/Fin/Tuple/Sort.lean Modified Mathlib/Data/Finite/Basic.lean Modified Mathlib/Data/Finset/PiAntidiagonal.lean Modified Mathlib/Data/Finsupp/Antidiagonal.lean Modified Mathlib/Data/Finsupp/Basic.lean Modified Mathlib/Data/Finsupp/Defs.lean +/- theorem Finsupp.coe_eq_zero +/- theorem Finsupp.ne_iff Modified Mathlib/Data/Finsupp/Indicator.lean Modified Mathlib/Data/Finsupp/Lex.lean Modified Mathlib/Data/Finsupp/Order.lean Modified Mathlib/Data/Finsupp/Pointwise.lean Modified Mathlib/Data/Finsupp/ToDFinsupp.lean Modified Mathlib/Data/Fintype/Basic.lean Modified Mathlib/Data/Fintype/CardEmbedding.lean Modified Mathlib/Data/FunLike/Basic.lean + theorem DFunLike.coe_eq_coe_fn + theorem DFunLike.coe_fn_eq + theorem DFunLike.coe_injective + theorem DFunLike.exists_ne + theorem DFunLike.ext' + theorem DFunLike.ext'_iff + theorem DFunLike.ext + theorem DFunLike.ext_iff + theorem DFunLike.ne_iff + theorem DFunLike.subsingleton_cod - theorem FunLike.coe_eq_coe_fn - theorem FunLike.coe_fn_eq - theorem FunLike.coe_injective - theorem FunLike.exists_ne - theorem FunLike.ext' - theorem FunLike.ext'_iff - theorem FunLike.ext - theorem FunLike.ext_iff - theorem FunLike.ne_iff - theorem FunLike.subsingleton_cod Modified Mathlib/Data/FunLike/Embedding.lean Modified Mathlib/Data/FunLike/Equiv.lean Modified Mathlib/Data/FunLike/Fintype.lean + theorem DFunLike.finite' + theorem DFunLike.finite - theorem FunLike.finite' - theorem FunLike.finite Modified Mathlib/Data/Int/Cast/Lemmas.lean Modified Mathlib/Data/MvPolynomial/Basic.lean Modified Mathlib/Data/Nat/Cast/Basic.lean Modified Mathlib/Data/PEquiv.lean Modified Mathlib/Data/Polynomial/Basic.lean Modified Mathlib/Data/Polynomial/Eval.lean Modified Mathlib/Data/Polynomial/Module.lean Modified Mathlib/Data/Rat/Cast/Defs.lean Modified Mathlib/Dynamics/Circle/RotationNumber/TranslationNumber.lean Modified Mathlib/FieldTheory/Extension.lean Modified Mathlib/FieldTheory/Finite/Basic.lean Modified Mathlib/FieldTheory/Fixed.lean Modified Mathlib/FieldTheory/KrullTopology.lean Modified Mathlib/FieldTheory/Minpoly/Field.lean Modified Mathlib/FieldTheory/Normal.lean Modified Mathlib/FieldTheory/NormalClosure.lean Modified Mathlib/FieldTheory/RatFunc.lean Modified Mathlib/FieldTheory/Separable.lean Modified Mathlib/Geometry/Manifold/Algebra/LeftInvariantDerivation.lean +/- theorem LeftInvariantDerivation.ext Modified Mathlib/Geometry/Manifold/Algebra/Monoid.lean Modified Mathlib/Geometry/Manifold/Algebra/SmoothFunctions.lean Modified Mathlib/Geometry/Manifold/ContMDiffMap.lean +/- theorem ContMDiffMap.ext Modified Mathlib/Geometry/Manifold/DerivationBundle.lean Modified Mathlib/Geometry/Manifold/Diffeomorph.lean Modified Mathlib/Geometry/Manifold/Instances/Sphere.lean Modified Mathlib/Geometry/Manifold/LocalDiffeomorph.lean Modified Mathlib/Geometry/Manifold/PartitionOfUnity.lean Modified Mathlib/Geometry/Manifold/Sheaf/Smooth.lean Modified Mathlib/Geometry/Manifold/VectorBundle/SmoothSection.lean +/- theorem ContMDiffSection.ext Modified Mathlib/GroupTheory/Abelianization.lean Modified Mathlib/GroupTheory/Congruence.lean +/- theorem Con.coe_inj +/- theorem Con.ext' Modified Mathlib/GroupTheory/Coprod/Basic.lean Modified Mathlib/GroupTheory/FreeAbelianGroup.lean Modified Mathlib/GroupTheory/FreeGroup/Basic.lean Modified Mathlib/GroupTheory/FreeGroup/IsFreeGroup.lean Modified Mathlib/GroupTheory/FreeGroup/NielsenSchreier.lean Modified Mathlib/GroupTheory/GroupAction/DomAct/ActionHom.lean Modified Mathlib/GroupTheory/GroupAction/DomAct/Basic.lean Modified Mathlib/GroupTheory/GroupAction/Embedding.lean Modified Mathlib/GroupTheory/GroupAction/Hom.lean Modified Mathlib/GroupTheory/MonoidLocalization.lean Modified Mathlib/GroupTheory/Perm/Cycle/Basic.lean Modified Mathlib/GroupTheory/Perm/Cycle/Type.lean Modified Mathlib/GroupTheory/PushoutI.lean Modified Mathlib/GroupTheory/QuotientGroup.lean Modified Mathlib/GroupTheory/SemidirectProduct.lean Modified Mathlib/GroupTheory/Subgroup/Basic.lean Modified Mathlib/LinearAlgebra/AffineSpace/AffineEquiv.lean Modified Mathlib/LinearAlgebra/AffineSpace/AffineMap.lean Modified Mathlib/LinearAlgebra/AffineSpace/Basis.lean Modified Mathlib/LinearAlgebra/Alternating/Basic.lean Modified Mathlib/LinearAlgebra/Basic.lean Modified Mathlib/LinearAlgebra/Basis.lean Modified Mathlib/LinearAlgebra/BilinearForm/TensorProduct.lean Modified Mathlib/LinearAlgebra/Charpoly/ToMatrix.lean Modified Mathlib/LinearAlgebra/CliffordAlgebra/BaseChange.lean Modified Mathlib/LinearAlgebra/CliffordAlgebra/Basic.lean Modified Mathlib/LinearAlgebra/CliffordAlgebra/Fold.lean Modified Mathlib/LinearAlgebra/DFinsupp.lean Modified Mathlib/LinearAlgebra/Dimension/DivisionRing.lean Modified Mathlib/LinearAlgebra/Dimension/Finite.lean Modified Mathlib/LinearAlgebra/Dual.lean Modified Mathlib/LinearAlgebra/FiniteDimensional.lean Modified Mathlib/LinearAlgebra/FinsuppVectorSpace.lean Modified Mathlib/LinearAlgebra/Isomorphisms.lean Modified Mathlib/LinearAlgebra/LinearIndependent.lean Modified Mathlib/LinearAlgebra/Matrix/Charpoly/Coeff.lean Modified Mathlib/LinearAlgebra/Matrix/Determinant.lean Modified Mathlib/LinearAlgebra/Multilinear/Basic.lean Modified Mathlib/LinearAlgebra/PerfectPairing.lean Modified Mathlib/LinearAlgebra/Projection.lean +/- structure LinearMap.IsProj Modified Mathlib/LinearAlgebra/QuadraticForm/Basic.lean Modified Mathlib/LinearAlgebra/QuadraticForm/Dual.lean Modified Mathlib/LinearAlgebra/QuadraticForm/Isometry.lean Modified Mathlib/LinearAlgebra/QuadraticForm/QuadraticModuleCat.lean Modified Mathlib/LinearAlgebra/QuadraticForm/TensorProduct/Isometries.lean Modified Mathlib/LinearAlgebra/Span.lean Modified Mathlib/LinearAlgebra/TensorProduct.lean Modified Mathlib/LinearAlgebra/TensorProduct/Graded/External.lean Modified Mathlib/Logic/Embedding/Basic.lean Modified Mathlib/Logic/Equiv/Defs.lean +/- theorem Equiv.ext +/- theorem Equiv.ext_iff Modified Mathlib/MeasureTheory/Function/LpSpace.lean Modified Mathlib/MeasureTheory/MeasurableSpace/Basic.lean +/- theorem MeasurableEquiv.ext Modified Mathlib/MeasureTheory/Measure/FiniteMeasure.lean Modified Mathlib/ModelTheory/Basic.lean +/- theorem FirstOrder.Language.HomClass.map_constants +/- def FirstOrder.Language.HomClass.toHom Modified Mathlib/ModelTheory/ElementaryMaps.lean Modified Mathlib/NumberTheory/ArithmeticFunction.lean +/- theorem Nat.ArithmeticFunction.coe_mk Modified Mathlib/NumberTheory/Dioph.lean +/- theorem Poly.ext Modified Mathlib/NumberTheory/LegendreSymbol/AddCharacter.lean Modified Mathlib/NumberTheory/LegendreSymbol/MulCharacter.lean Modified Mathlib/NumberTheory/ModularForms/Basic.lean Modified Mathlib/NumberTheory/ModularForms/SlashInvariantForms.lean Modified Mathlib/NumberTheory/NumberField/Embeddings.lean Modified Mathlib/Order/Category/BddLat.lean Modified Mathlib/Order/Category/BddOrd.lean Modified Mathlib/Order/Category/CompleteLat.lean Modified Mathlib/Order/Category/FinBoolAlg.lean Modified Mathlib/Order/Category/Frm.lean Modified Mathlib/Order/Category/HeytAlg.lean Modified Mathlib/Order/Category/Lat.lean Modified Mathlib/Order/Category/NonemptyFinLinOrd.lean Modified Mathlib/Order/Category/Semilat.lean Modified Mathlib/Order/Closure.lean Modified Mathlib/Order/GameAdd.lean Modified Mathlib/Order/Heyting/Hom.lean Modified Mathlib/Order/Hom/Basic.lean Modified Mathlib/Order/Hom/Bounded.lean Modified Mathlib/Order/Hom/CompleteLattice.lean Modified Mathlib/Order/Hom/Lattice.lean +/- theorem InfHom.coe_inf +/- theorem InfHom.withBot_id +/- theorem InfHom.withTop_id +/- theorem InfTopHom.coe_inf +/- theorem SupBotHom.coe_sup +/- theorem SupHom.coe_sup +/- theorem SupHom.withBot_id +/- theorem SupHom.withTop_id Modified Mathlib/Order/InitialSeg.lean Modified Mathlib/Order/LiminfLimsup.lean Modified Mathlib/Order/OmegaCompletePartialOrder.lean Modified Mathlib/Order/RelIso/Basic.lean Modified Mathlib/Order/UpperLower/Basic.lean Modified Mathlib/Probability/Kernel/Basic.lean +/- theorem ProbabilityTheory.kernel.ext +/- theorem ProbabilityTheory.kernel.ext_iff Modified Mathlib/Probability/ProbabilityMassFunction/Basic.lean Modified Mathlib/RepresentationTheory/GroupCohomology/Hilbert90.lean Modified Mathlib/RepresentationTheory/Maschke.lean Modified Mathlib/RingTheory/Congruence.lean +/- theorem RingCon.ext' Modified Mathlib/RingTheory/Derivation/Basic.lean +/- theorem Derivation.coe_injective Modified Mathlib/RingTheory/Finiteness.lean Modified Mathlib/RingTheory/HahnSeries.lean Modified Mathlib/RingTheory/Ideal/LocalRing.lean Modified Mathlib/RingTheory/Ideal/QuotientOperations.lean Modified Mathlib/RingTheory/IntegralRestrict.lean Modified Mathlib/RingTheory/IsTensorProduct.lean Modified Mathlib/RingTheory/Kaehler.lean Modified Mathlib/RingTheory/Localization/Basic.lean Modified Mathlib/RingTheory/Localization/Module.lean Modified Mathlib/RingTheory/MvPolynomial/Basic.lean Modified Mathlib/RingTheory/MvPolynomial/Homogeneous.lean Modified Mathlib/RingTheory/MvPolynomial/WeightedHomogeneous.lean Modified Mathlib/RingTheory/NonUnitalSubsemiring/Basic.lean Modified Mathlib/RingTheory/Perfection.lean Modified Mathlib/RingTheory/TensorProduct.lean Modified Mathlib/RingTheory/Valuation/Basic.lean Modified Mathlib/SetTheory/Cardinal/Basic.lean Modified Mathlib/SetTheory/Cardinal/Ordinal.lean +/- theorem Cardinal.mk_embedding_le_arrow Modified Mathlib/Tactic/CategoryTheory/Elementwise.lean +/- theorem Tactic.Elementwise.forget_hom_Type Modified Mathlib/Tactic/ComputeDegree.lean Modified Mathlib/Tactic/Simps/Basic.lean Modified Mathlib/Tactic/Simps/NotationClass.lean Modified Mathlib/Topology/Algebra/ContinuousAffineMap.lean Modified Mathlib/Topology/Algebra/ContinuousMonoidHom.lean Modified Mathlib/Topology/Algebra/Module/Alternating/Basic.lean Modified Mathlib/Topology/Algebra/Module/Basic.lean Modified Mathlib/Topology/Algebra/Module/CharacterSpace.lean Modified Mathlib/Topology/Algebra/Module/Multilinear/Basic.lean Modified Mathlib/Topology/Algebra/Module/StrongTopology.lean Modified Mathlib/Topology/Algebra/Module/WeakDual.lean Modified Mathlib/Topology/Algebra/StarSubalgebra.lean Modified Mathlib/Topology/Bornology/Hom.lean Modified Mathlib/Topology/Category/Born.lean Modified Mathlib/Topology/Category/CompHaus/EffectiveEpi.lean Modified Mathlib/Topology/Category/CompHaus/Projective.lean Modified Mathlib/Topology/Category/Profinite/EffectiveEpi.lean Modified Mathlib/Topology/Category/Profinite/Nobeling.lean Modified Mathlib/Topology/Category/Stonean/Basic.lean Modified Mathlib/Topology/Category/Stonean/EffectiveEpi.lean Modified Mathlib/Topology/Category/Stonean/Limits.lean Modified Mathlib/Topology/Category/TopCat/Basic.lean Modified Mathlib/Topology/CompactOpen.lean Modified Mathlib/Topology/Connected/PathConnected.lean Modified Mathlib/Topology/ContinuousFunction/Algebra.lean Modified Mathlib/Topology/ContinuousFunction/Basic.lean Modified Mathlib/Topology/ContinuousFunction/Bounded.lean Modified Mathlib/Topology/ContinuousFunction/CocompactMap.lean Modified Mathlib/Topology/ContinuousFunction/Ideals.lean Modified Mathlib/Topology/ContinuousFunction/Ordered.lean Modified Mathlib/Topology/ContinuousFunction/Polynomial.lean Modified Mathlib/Topology/ContinuousFunction/Sigma.lean Modified Mathlib/Topology/ContinuousFunction/ZeroAtInfty.lean Modified Mathlib/Topology/Hom/Open.lean Modified Mathlib/Topology/Homeomorph.lean Modified Mathlib/Topology/Homotopy/Basic.lean +/- theorem ContinuousMap.HomotopyWith.ext Modified Mathlib/Topology/Homotopy/HomotopyGroup.lean Modified Mathlib/Topology/Homotopy/Path.lean Modified Mathlib/Topology/Instances/NNReal.lean Modified Mathlib/Topology/LocallyConstant/Algebra.lean Modified Mathlib/Topology/LocallyConstant/Basic.lean +/- theorem LocallyConstant.ext_iff Modified Mathlib/Topology/MetricSpace/Dilation.lean Modified Mathlib/Topology/MetricSpace/DilationEquiv.lean Modified Mathlib/Topology/MetricSpace/Isometry.lean Modified Mathlib/Topology/Order/Category/AlexDisc.lean Modified Mathlib/Topology/Order/Hom/Basic.lean Modified Mathlib/Topology/Order/Hom/Esakia.lean Modified Mathlib/Topology/PartialHomeomorph.lean Modified Mathlib/Topology/PartitionOfUnity.lean Modified Mathlib/Topology/Separation/NotNormal.lean Modified Mathlib/Topology/Sets/Opens.lean Modified Mathlib/Topology/Sheaves/Presheaf.lean Modified Mathlib/Topology/Sheaves/SheafCondition/UniqueGluing.lean Modified Mathlib/Topology/Spectral/Hom.lean Modified Mathlib/Topology/TietzeExtension.lean Modified Mathlib/Topology/UniformSpace/Equicontinuity.lean Modified Mathlib/Topology/UniformSpace/Equiv.lean Modified test/CategoryTheory/Elementwise.lean Modified test/FunLike.lean Modified test/instance_diamonds.lean 2024-01-17 22:12:30 a94a9fd chore: tidy various files (#9728) ESTIMATED CHANGES Modified Mathlib/Algebra/Associated.lean Modified Mathlib/Algebra/CharP/ExpChar.lean Modified Mathlib/Algebra/Homology/HomotopyCategory/HomComplex.lean +/- theorem CochainComplex.HomComplex.δ_units_smul Modified Mathlib/Analysis/Analytic/CPolynomial.lean Modified Mathlib/Analysis/Calculus/FDeriv/Analytic.lean Modified Mathlib/Analysis/Calculus/Monotone.lean Modified Mathlib/Analysis/SpecialFunctions/Gamma/Basic.lean Modified Mathlib/Combinatorics/SetFamily/AhlswedeZhang.lean Modified Mathlib/Data/Int/GCD.lean Modified Mathlib/Data/Nat/Choose/Basic.lean Modified Mathlib/Data/Nat/Factorial/Basic.lean +/- theorem Nat.ascFactorial_eq_div Modified Mathlib/FieldTheory/Extension.lean Modified Mathlib/Geometry/Manifold/IntegralCurve.lean Modified Mathlib/GroupTheory/MonoidLocalization.lean - theorem Submonoid.LocalizationWithZeroMap.isLeftRegular_of_le_IsCancelMulZero + theorem Submonoid.LocalizationWithZeroMap.isLeftRegular_of_le_isCancelMulZero Modified Mathlib/LinearAlgebra/Matrix/BilinearForm.lean Modified Mathlib/RingTheory/Binomial.lean +/- def Int.multichoose Modified Mathlib/RingTheory/Ideal/QuotientOperations.lean Modified Mathlib/RingTheory/Localization/Module.lean Modified Mathlib/Topology/ContinuousFunction/Algebra.lean +/- theorem ContinuousMap.coe_mabs +/- theorem ContinuousMap.mabs_apply Modified test/ApplyAt.lean 2024-01-17 20:26:14 c876648 feat: injective continuous linear map with closed range is a continuous linear equivalence (#9756) Added analogue of [LinearEquiv.ofInjective](https://leanprover-community.github.io/mathlib4_docs/Mathlib/LinearAlgebra/Basic.html#LinearEquiv.ofInjective) but for `ContinuousLinearEquiv` on Banach spaces. Added analogue of [LinearMap.rangeRestrict](https://leanprover-community.github.io/mathlib4_docs/Mathlib/LinearAlgebra/Basic.html#LinearMap.rangeRestrict) but for `ContinuousLinearMap`. Also I updated a docstring that had the old name of a theorem. ESTIMATED CHANGES Modified Mathlib/Analysis/NormedSpace/Banach.lean + theorem ContinuousLinearMap.coe_equivRange + theorem ContinuousLinearMap.coe_linearMap_equivRange Modified Mathlib/Data/Set/Function.lean Modified Mathlib/Topology/Algebra/Module/Basic.lean + theorem ContinuousLinearMap.coe_rangeRestrict + def ContinuousLinearMap.rangeRestrict 2024-01-17 18:25:26 1dfae4b chore(Topology/Inseparable): re-use some variables (#9808) ESTIMATED CHANGES Modified Mathlib/Topology/Inseparable.lean +/- theorem SeparationQuotient.continuousAt_lift +/- theorem SeparationQuotient.continuousOn_lift +/- theorem SeparationQuotient.continuousWithinAt_lift +/- theorem SeparationQuotient.continuous_lift +/- theorem SeparationQuotient.tendsto_lift_nhdsWithin_mk +/- theorem SeparationQuotient.tendsto_lift_nhds_mk 2024-01-17 17:22:39 9c832bc feat(Analysis/NormedSpace/{ProdLp,PiLp}): add `BoundedSMul` instances (#9796) Also adds: * Lemmas linking the $L^\infty$ norm via `WithLp` to the standard one on products * A new `BoundedSMul.of_nnnorm_smul_le` which eliminates all the positivity juggling. In theory we could generalize even further to non-unital rings, but that would require more generalization of `WithLp`, and is trivial for someone to do later; the proofs here will still work. ESTIMATED CHANGES Modified Mathlib/Analysis/Normed/MulAction.lean + theorem BoundedSMul.of_nnnorm_smul_le Modified Mathlib/Analysis/NormedSpace/PiLp.lean +/- theorem PiLp.nnnorm_eq_ciSup + theorem PiLp.nnnorm_equiv + theorem PiLp.nnnorm_equiv_symm + theorem PiLp.norm_equiv + theorem PiLp.norm_equiv_symm Modified Mathlib/Analysis/NormedSpace/ProdLp.lean + theorem WithLp.prod_nnnorm_equiv + theorem WithLp.prod_nnnorm_equiv_symm + theorem WithLp.prod_norm_equiv + theorem WithLp.prod_norm_equiv_symm Modified Mathlib/Order/ConditionallyCompleteLattice/Finset.lean + theorem Finset.sup_univ_eq_ciSup 2024-01-17 17:22:38 325678b feat(Algebra/InfiniteSum/Module): smul of two infinite sums (#9486) These proofs and statements are copied from the `mul` proofs. We can't prove the `mul` lemmas in terms of `smul` since `Module` doesn't work for non-associative rings. ESTIMATED CHANGES Modified Mathlib/Topology/Algebra/InfiniteSum/Module.lean + theorem HasSum.smul + theorem HasSum.smul_eq + theorem tsum_smul_tsum 2024-01-17 16:24:46 ca796bf feat: Add `Module.Free` and `Module.Finite` instances for ideals (#9804) Add also a `NoZeroSMulDivisors` instance. These instances, in particular, imply directly that integral ideals of number fields are free and finite $\mathbb{Z}$-modules. ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/FreeModule/PID.lean Modified Mathlib/RingTheory/Ideal/Operations.lean Modified Mathlib/RingTheory/Noetherian.lean 2024-01-17 16:24:45 5115198 chore: last localEquiv -> partialEquiv renames in lemma names (#9620) ESTIMATED CHANGES Modified Mathlib/Geometry/Manifold/ContMDiff/Defs.lean Modified Mathlib/Geometry/Manifold/SmoothManifoldWithCorners.lean - theorem modelWithCornersSelf_localEquiv + theorem modelWithCornersSelf_partialEquiv Modified Mathlib/Geometry/Manifold/VectorBundle/FiberwiseLinear.lean Modified Mathlib/Topology/PartialHomeomorph.lean - theorem PartialHomeomorph.eq_of_localEquiv_eq + theorem PartialHomeomorph.eq_of_partialEquiv_eq - theorem PartialHomeomorph.refl_localEquiv + theorem PartialHomeomorph.refl_partialEquiv 2024-01-17 16:24:44 db84fa8 chore: correct hypothesis order in dot notation lemma (#9568) Following a [comment](https://github.com/leanprover-community/mathlib4/pull/8736#discussion_r1433085328) by @sgouezel, the hypothesis `IsOpen s` should be the first explicit argument. ESTIMATED CHANGES Modified Mathlib/Geometry/Manifold/ContMDiffMFDeriv.lean Modified Mathlib/Geometry/Manifold/MFDeriv/Basic.lean +/- theorem IsOpen.uniqueMDiffOn +/- theorem IsOpen.uniqueMDiffWithinAt 2024-01-17 15:11:27 03a7bc5 fix(Data/Fin/Basic): Change definition of `predAbove` to use `castPred` (#9791) `predAbove` and `castPred` are no longer directly related. This patch makes it so that they are, removing `castLT` from the definition of `predAbove` and thus making it more directly analogous to `succAbove`. ESTIMATED CHANGES Modified Mathlib/AlgebraicTopology/SimplexCategory.lean Modified Mathlib/Data/Fin/Basic.lean + theorem Fin.castSucc_lt_or_lt_succ +/- theorem Fin.predAbove_above +/- theorem Fin.predAbove_below - theorem Fin.succAbove_lt_gt 2024-01-17 14:32:39 2366dbd feat(NumberTheory/ModularForms): two-variable Jacobi theta (#9666) Add a more general version of the Jacobi theta function with a second variable, and prove the transformation law for this more general function rather than just for the one-variable version. Preparatory to functional equations for Dirichlet L-functions. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Analysis/Fourier/PoissonSummation.lean +/- theorem SchwartzMap.tsum_eq_tsum_fourierIntegral Modified Mathlib/Analysis/SpecialFunctions/Exp.lean + theorem Real.summable_exp_nat_mul_iff + theorem Real.summable_exp_neg_nat Modified Mathlib/Analysis/SpecialFunctions/Gaussian.lean + theorem Complex.tsum_exp_neg_quadratic + theorem cexp_neg_quadratic_isLittleO_abs_rpow_cocompact + theorem cexp_neg_quadratic_isLittleO_rpow_atTop + theorem fourier_transform_gaussian_pi' - theorem integral_cexp_neg_mul_sq_add_const + theorem integral_cexp_quadratic + theorem rexp_neg_quadratic_isLittleO_rpow_atTop Modified Mathlib/Data/Complex/Basic.lean + theorem Complex.I_pow_four Modified Mathlib/NumberTheory/ModularForms/JacobiTheta/Manifold.lean Renamed Mathlib/NumberTheory/ModularForms/JacobiTheta/Basic.lean to Mathlib/NumberTheory/ModularForms/JacobiTheta/OneVariable.lean +/- theorem continuousAt_jacobiTheta +/- theorem differentiableAt_jacobiTheta +/- theorem hasSum_nat_jacobiTheta + theorem jacobiTheta_eq_jacobiTheta₂ +/- theorem jacobiTheta_eq_tsum_nat +/- theorem jacobiTheta_two_add +/- theorem norm_exp_mul_sq_le +/- theorem norm_jacobiTheta_sub_one_le +/- theorem summable_exp_mul_sq Added Mathlib/NumberTheory/ModularForms/JacobiTheta/TwoVariable.lean + theorem differentiableAt_jacobiTheta₂ + theorem jacobiTheta₂_add_left' + theorem jacobiTheta₂_add_left + theorem jacobiTheta₂_add_right + theorem jacobiTheta₂_functional_equation + theorem jacobiTheta₂_neg_left + theorem jacobiTheta₂_term_bound + theorem summable_jacobiTheta₂_term_bound Modified Mathlib/NumberTheory/ZetaFunction.lean 2024-01-17 13:26:49 9c865c1 chore(Order/ConditionallyCompleteLattice/Finset): merge duplicate lemmas (#9807) ESTIMATED CHANGES Modified Mathlib/Order/ConditionallyCompleteLattice/Finset.lean - theorem Finset.Nonempty.sup'_eq_cSup_image - theorem Finset.Nonempty.sup'_id_eq_cSup +/- theorem Finset.inf'_eq_csInf_image +/- theorem Finset.sup'_eq_csSup_image 2024-01-17 13:26:48 7f5d26d feat: Generalize absNorm to fractional ideals (#9613) This PR defines the absolute ideal norm of a fractional ideal `I : FractionalIdeal R⁰ K` where `K` is a fraction field of `R` as a zero-preserving group homomorphism with values in `ℚ` and proves that it generalises the norm on (integral) ideals (and some other classical result). Also in this PR: - Add the directory `Mathlib/RingTheory/FractionalIdeal` and move the file `Mathlib/RingTheory/FractionalIdeal.lean` to `Mathlib/RingTheory/FractionalIdeal/Basic.lean`. The new results are in `Mathlib/RingTheory/FractionalIdeal/Norm.lean` - Define the `numerator` and `denominator` of a fractional ideal. These are used to define the norm. Also define a linear equiv between a fractional ideal and its `numerator`. - Several technical lemmas. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Algebra/Operations.lean + theorem Submodule.mul_smul_mul_eq_smul_mul_smul Modified Mathlib/Algebra/GroupWithZero/NonZeroDivisors.lean +/- theorem nonZeroDivisors.ne_zero + theorem zero_not_mem_nonZeroDivisors Modified Mathlib/Algebra/Module/Submodule/Map.lean + theorem Submodule.map_equivMapOfInjective_symm_apply Modified Mathlib/LinearAlgebra/Matrix/Basis.lean + theorem Basis.toMatrix_smul Modified Mathlib/RingTheory/DedekindDomain/Ideal.lean Renamed Mathlib/RingTheory/FractionalIdeal.lean to Mathlib/RingTheory/FractionalIdeal/Basic.lean + theorem FractionalIdeal.den_mul_self_eq_num' + theorem FractionalIdeal.den_mul_self_eq_num + theorem FractionalIdeal.equivNum_apply + theorem FractionalIdeal.num_zero_eq + theorem FractionalIdeal.zero_of_num_eq_bot Added Mathlib/RingTheory/FractionalIdeal/Norm.lean + theorem FractionalIdeal.absNorm_bot + theorem FractionalIdeal.absNorm_div_norm_eq_absNorm_div_norm + theorem FractionalIdeal.absNorm_eq' + theorem FractionalIdeal.absNorm_eq + theorem FractionalIdeal.absNorm_eq_zero_iff + theorem FractionalIdeal.absNorm_nonneg + theorem FractionalIdeal.absNorm_one + theorem FractionalIdeal.absNorm_span_singleton + theorem FractionalIdeal.abs_det_basis_change + theorem FractionalIdeal.coeIdeal_absNorm 2024-01-17 12:06:26 45df823 chore: refactor of Algebra/Group/Defs to reduce imports (#9606) We are not that far from the point that `Algebra/Group/Defs` depends on nothing significant besides `simps` and `to_additive`. This removes from `Mathlib.Algebra.Group.Defs` the dependencies on * `Mathlib.Tactic.Basic` (which is a grab-bag of random stuff) * `Mathlib.Init.Algebra.Classes` (which is ancient and half-baked) * `Mathlib.Logic.Function.Basic` (not particularly important, but it is barely used in this file) The goal is to avoid all unnecessary imports to set up the *definitions* of basic algebraic structures. We also separate out `Mathlib.Tactic.TypeStar` and `Mathlib.Tactic.Lemma` as prerequisites to `Mathlib.Tactic.Basic`, but which can be imported separately when the rest of `Mathlib.Tactic.Basic` is not needed. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/CharZero/Defs.lean Modified Mathlib/Algebra/CovariantAndContravariant.lean Modified Mathlib/Algebra/Group/Basic.lean +/- theorem comp_mul_left +/- theorem comp_mul_right + theorem mul_left_inj + theorem mul_left_injective + theorem mul_ne_mul_left + theorem mul_ne_mul_right + theorem mul_right_inj + theorem mul_right_injective Modified Mathlib/Algebra/Group/Commute/Defs.lean Modified Mathlib/Algebra/Group/Defs.lean - theorem CommGroup.toGroup_injective - theorem Group.toDivInvMonoid_injective - theorem mul_left_inj - theorem mul_left_injective - theorem mul_ne_mul_left - theorem mul_ne_mul_right - theorem mul_right_inj - theorem mul_right_injective Modified Mathlib/Algebra/Group/Embedding.lean Modified Mathlib/Algebra/Group/Ext.lean + theorem CommGroup.toGroup_injective + theorem Group.toDivInvMonoid_injective Modified Mathlib/Algebra/Group/Semiconj/Defs.lean Modified Mathlib/Algebra/Group/WithOne/Defs.lean +/- theorem WithOne.coe_mul Modified Mathlib/Algebra/GroupWithZero/Defs.lean Modified Mathlib/Algebra/Invertible/Defs.lean Modified Mathlib/CategoryTheory/Shift/Basic.lean Modified Mathlib/Data/Bracket.lean Modified Mathlib/Data/DList/Basic.lean Modified Mathlib/GroupTheory/EckmannHilton.lean Modified Mathlib/Init/Order/Defs.lean Modified Mathlib/Logic/Nontrivial/Defs.lean Modified Mathlib/Tactic.lean Modified Mathlib/Tactic/Basic.lean - def Mathlib.Tactic.expandLemma Modified Mathlib/Tactic/Inhabit.lean Added Mathlib/Tactic/Lemma.lean + def expandLemma Modified Mathlib/Tactic/MkIffOfInductiveProp.lean Added Mathlib/Tactic/TypeStar.lean Modified test/ImplicitUniverses.lean 2024-01-17 06:36:36 b075cdd fix(Data/Fin/Basic): Redefine `succAbove` (#9793) Tweak to `succAbove` to make its definition consistent with that of `predAbove` ESTIMATED CHANGES Modified Mathlib/Data/Fin/Basic.lean 2024-01-17 01:03:38 5919dba chore: bump Std to leanprover/std4#421 (#9798) This brings the new implementation of `library_search` to Mathlib. It is temporarily called `std_exact?` and `std_apply?`, but if it tests okay in Mathlib we will remove the old implementation. There is some change in the ordering of results, so please report on your experiences! ESTIMATED CHANGES Modified Mathlib/Lean/Meta.lean - def Lean.Meta.mapForallTelescope' - def Lean.Meta.mapForallTelescope Modified lake-manifest.json 2024-01-16 23:32:27 a316e2b chore(ENat/Basic): review (#9787) - Add `ENat.mul_top` and `ENat.top_mul`. - Remove some newlines. - Rename assumptions in `ENat.recTopCoe`. ESTIMATED CHANGES Modified Mathlib/Data/ENat/Basic.lean + theorem ENat.mul_top +/- def ENat.recTopCoe +/- def ENat.toNat + theorem ENat.top_mul 2024-01-16 23:32:26 e38a849 feat: add `isStarNormal_neg` (#9748) Also rename `isStarNormal_star_self` to `isStarNormal_star`. ESTIMATED CHANGES Modified Mathlib/Algebra/Star/SelfAdjoint.lean 2024-01-16 22:20:19 a227529 chore(Finset/Image): fix a `@[deprecated]` tag (#9789) Since `Finset.Nonempty.image_iff` and `Finset.nonempty_image` have different explicitness/implicitness of arguments, `@[deprecated]` doesn't suggest using `Finset.image_nonempty` without a hint. ESTIMATED CHANGES Modified Mathlib/Data/Finset/Image.lean 2024-01-16 22:20:18 edbea74 chore(GaloisConnection): golf using `dual` (#9786) ESTIMATED CHANGES Modified Mathlib/Order/GaloisConnection.lean +/- theorem GaloisConnection.exists_eq_l +/- theorem GaloisConnection.l_eq +/- theorem GaloisConnection.l_u_l_eq_l' +/- theorem GaloisConnection.l_u_l_eq_l +/- theorem GaloisConnection.u_inf 2024-01-16 22:20:17 d602bc2 refactor(ContMDiff/Basic): multiplicativise, generalise and golf contMDiff_of_support and friends (#9764) - multiplicativise `contMDiff_of_support`, `contMDiffWithinAt_of_not_mem` and `contMDiffAt_of_not_mem` and use to_additive - golf `extend_one` with the multiplicative version - generalise these lemmas to manifolds with zero/one - slight clean-up: remove unused variables and `open`s - slight drive-by golfing of one proof - deprecate `eventuallyEq_zero_nhds` in favor of `not_mem_tsupport_iff_eventuallyEq` Addresses the post-merge review comments in #9669. ESTIMATED CHANGES Modified Mathlib/Geometry/Manifold/BumpFunction.lean Modified Mathlib/Geometry/Manifold/ContMDiff/Basic.lean - theorem contMDiffAt_of_not_mem + theorem contMDiffAt_of_not_mem_mulTSupport - theorem contMDiffWithinAt_of_not_mem + theorem contMDiffWithinAt_of_not_mem_mulTSupport + theorem contMDiff_of_mulTSupport - theorem contMDiff_of_support Modified Mathlib/Geometry/Manifold/PartitionOfUnity.lean Modified Mathlib/Topology/Basic.lean 2024-01-16 22:20:16 8bb0d69 refactor: redefine `Absorbs` (#9676) Redefine `Absorbs` and `Absorbent` in terms of the `cobounded` filter. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Analysis/Convex/Gauge.lean Modified Mathlib/Analysis/LocallyConvex/Basic.lean - theorem Absorbent.absorbs - theorem Absorbent.absorbs_finite - theorem Absorbent.subset + theorem Absorbent.zero_mem' - theorem Absorbent.zero_mem - def Absorbent - theorem Absorbs.add + theorem Absorbs.exists_pos - theorem Absorbs.inter - theorem Absorbs.mono - theorem Absorbs.mono_left - theorem Absorbs.mono_right - theorem Absorbs.neg - theorem Absorbs.sub - theorem Absorbs.union - def Absorbs +/- theorem Balanced.absorbs_self - theorem Set.Finite.absorbs_iUnion - theorem absorbent_iff_forall_absorbs_singleton - theorem absorbent_iff_nonneg_lt +/- theorem absorbent_nhds_zero - theorem absorbent_univ - theorem absorbs_empty - theorem absorbs_iUnion_finset + theorem absorbs_iff_norm - theorem absorbs_inter - theorem absorbs_union - theorem absorbs_zero_iff Modified Mathlib/Analysis/LocallyConvex/Bounded.lean +/- theorem Bornology.isVonNBounded_empty Modified Mathlib/Analysis/LocallyConvex/ContinuousOfBounded.lean Modified Mathlib/Analysis/LocallyConvex/WithSeminorms.lean Modified Mathlib/Analysis/NormedSpace/CompactOperator.lean Modified Mathlib/Analysis/Seminorm.lean Modified Mathlib/Topology/Algebra/UniformConvergence.lean Added Mathlib/Topology/Bornology/Absorbs.lean + theorem Absorbent.absorbs_finite + theorem Absorbent.vadd_absorbs + theorem Absorbent.zero_mem + def Absorbent + theorem Absorbs.mono + theorem Absorbs.mono_left + theorem Absorbs.mono_right + theorem Absorbs.of_boundedSpace + theorem Absorbs.sub + def Absorbs + theorem Set.Finite.absorbs_biInter + theorem Set.Finite.absorbs_biUnion + theorem Set.Finite.absorbs_sInter + theorem Set.Finite.absorbs_sUnion + theorem absorbent_iff_forall_absorbs_singleton + theorem absorbent_iff_inv_smul + theorem absorbent_univ + theorem absorbs_biUnion_finset + theorem absorbs_iInter + theorem absorbs_iUnion + theorem absorbs_inter + theorem absorbs_neg_neg + theorem absorbs_union + theorem absorbs_zero_iff 2024-01-16 21:01:34 ef9852f feat(Function/Conjugate): add `Semiconj.inverse_left` (#9724) * Add `Function.semiconj_iff_comp_eq` and `Function.Semiconj.inverse_left`. * Swap arguments of `Function.Semiconj.comp_left`. The old version is available as `Function.Semiconj.trans`. * Add docstrings. ESTIMATED CHANGES Modified Mathlib/Logic/Function/Conjugate.lean - theorem Function.Commute.comp_left +/- theorem Function.Commute.id_right - theorem Function.Commute.option_map +/- theorem Function.Commute.refl +/- theorem Function.Commute.symm +/- theorem Function.Semiconj.comp_left +/- theorem Function.Semiconj.id_left +/- theorem Function.Semiconj.id_right + theorem Function.Semiconj.inverse_left + theorem Function.semiconj_iff_comp_eq Modified Mathlib/Logic/Function/Iterate.lean 2024-01-16 21:01:33 0bd32e0 feat: basic theory connecting `R[X]`-submodules and invariant `R`-submodules (#9721) ESTIMATED CHANGES Modified Mathlib/Algebra/Module/Submodule/Lattice.lean + theorem Submodule.toAddSubmonoid_sSup Modified Mathlib/Algebra/Module/Submodule/RestrictScalars.lean + def Submodule.restrictScalarsLatticeHom Modified Mathlib/Data/Polynomial/AlgebraMap.lean + theorem Polynomial.aeval_apply_smul_mem_of_le_comap' + theorem Polynomial.aeval_apply_smul_mem_of_le_comap Modified Mathlib/Data/Polynomial/Module.lean + theorem Module.AEval.C_smul + def Module.AEval.comapSubmodule + theorem Module.AEval.comapSubmodule_le_comap + theorem Module.AEval.comapSubmodule_mapSubmodule + def Module.AEval.mapSubmodule + theorem Module.AEval.mapSubmodule_comapSubmodule + theorem Module.AEval.mem_comapSubmodule + theorem Module.AEval.mem_mapSubmodule Modified Mathlib/Order/Hom/CompleteLattice.lean + def OrderIso.toCompleteLatticeHom 2024-01-16 21:01:31 551d369 feat: subset of a charted space is open iff each image in charts is (#9672) From sphere-eversion; I just cleaned it up slightly and submitted it. ESTIMATED CHANGES Modified Mathlib/Geometry/Manifold/ChartedSpace.lean + theorem ChartedSpace.isOpen_iff + theorem iUnion_source_chartAt Modified Mathlib/Topology/Basic.lean + theorem isOpen_iff_of_cover 2024-01-16 21:01:30 8050708 refactor(Geometry/Manifold/MFDeriv): split file (#9565) With about 2200 lines, this is the largest file in Geometry/Manifolds. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Geometry/Manifold/ContMDiffMFDeriv.lean Modified Mathlib/Geometry/Manifold/Diffeomorph.lean Modified Mathlib/Geometry/Manifold/IntegralCurve.lean Added Mathlib/Geometry/Manifold/MFDeriv/Atlas.lean + theorem ModelWithCorners.hasMFDerivWithinAt_symm + theorem ModelWithCorners.mdifferentiableOn_symm + theorem PartialHomeomorph.MDifferentiable.comp_symm_deriv + theorem PartialHomeomorph.MDifferentiable.ker_mfderiv_eq_bot + theorem PartialHomeomorph.MDifferentiable.mdifferentiableAt_symm + theorem PartialHomeomorph.MDifferentiable.mfderiv_bijective + theorem PartialHomeomorph.MDifferentiable.mfderiv_injective + theorem PartialHomeomorph.MDifferentiable.mfderiv_surjective + theorem PartialHomeomorph.MDifferentiable.range_mfderiv_eq_top + theorem PartialHomeomorph.MDifferentiable.range_mfderiv_eq_univ + theorem PartialHomeomorph.MDifferentiable.symm_comp_deriv + theorem PartialHomeomorph.MDifferentiable.trans + theorem hasMFDerivAt_extChartAt + theorem hasMFDerivWithinAt_extChartAt + theorem mdifferentiableAt_atlas + theorem mdifferentiableAt_atlas_symm + theorem mdifferentiableAt_extChartAt + theorem mdifferentiableOn_atlas + theorem mdifferentiableOn_atlas_symm + theorem mdifferentiableOn_extChartAt + theorem mdifferentiable_chart + theorem mdifferentiable_of_mem_atlas + theorem tangentMap_chart + theorem tangentMap_chart_symm Modified Mathlib/Geometry/Manifold/MFDeriv/Basic.lean - theorem ContinuousLinearEquiv.mfderivWithin_eq - theorem ContinuousLinearEquiv.mfderiv_eq - theorem ContinuousLinearMap.mfderivWithin_eq - theorem ContinuousLinearMap.mfderiv_eq - def DifferentiableWithinAtProp - theorem HasMFDerivAt.add - theorem HasMFDerivAt.const_smul - theorem HasMFDerivAt.mul' - theorem HasMFDerivAt.mul - theorem HasMFDerivAt.neg - theorem HasMFDerivAt.sub - def HasMFDerivAt - theorem HasMFDerivWithinAt.mul' - theorem HasMFDerivWithinAt.mul - def HasMFDerivWithinAt - theorem MDifferentiable.add - theorem MDifferentiable.const_smul - theorem MDifferentiable.mul - theorem MDifferentiable.neg - theorem MDifferentiable.sub - def MDifferentiable - theorem MDifferentiableAt.add - theorem MDifferentiableAt.const_smul - theorem MDifferentiableAt.mfderiv_prod - theorem MDifferentiableAt.mul - theorem MDifferentiableAt.neg - theorem MDifferentiableAt.sub - def MDifferentiableAt - theorem MDifferentiableOn.mul - def MDifferentiableOn - theorem MDifferentiableWithinAt.mul - def MDifferentiableWithinAt - theorem ModelWithCorners.hasMFDerivWithinAt_symm - theorem ModelWithCorners.mdifferentiableOn_symm - theorem PartialHomeomorph.MDifferentiable.comp_symm_deriv - theorem PartialHomeomorph.MDifferentiable.ker_mfderiv_eq_bot - theorem PartialHomeomorph.MDifferentiable.mdifferentiableAt_symm - theorem PartialHomeomorph.MDifferentiable.mfderiv_bijective - theorem PartialHomeomorph.MDifferentiable.mfderiv_injective - theorem PartialHomeomorph.MDifferentiable.mfderiv_surjective - theorem PartialHomeomorph.MDifferentiable.range_mfderiv_eq_top - theorem PartialHomeomorph.MDifferentiable.range_mfderiv_eq_univ - theorem PartialHomeomorph.MDifferentiable.symm_comp_deriv - theorem PartialHomeomorph.MDifferentiable.trans - def PartialHomeomorph.MDifferentiable - theorem Trivialization.mdifferentiable - theorem UniqueMDiffOn.image_denseRange' - theorem UniqueMDiffOn.image_denseRange - theorem UniqueMDiffOn.smooth_bundle_preimage - theorem UniqueMDiffOn.tangentBundle_proj_preimage - theorem UniqueMDiffOn.uniqueDiffOn_inter_preimage - theorem UniqueMDiffOn.uniqueDiffOn_target_inter - theorem UniqueMDiffOn.uniqueMDiffOn_preimage - def UniqueMDiffOn - theorem UniqueMDiffWithinAt.image_denseRange - theorem UniqueMDiffWithinAt.smooth_bundle_preimage' - theorem UniqueMDiffWithinAt.smooth_bundle_preimage - def UniqueMDiffWithinAt - theorem const_smul_mfderiv - theorem differentiable_within_at_localInvariantProp - theorem hasMFDerivAt_const - theorem hasMFDerivAt_extChartAt - theorem hasMFDerivAt_fst - theorem hasMFDerivAt_id - theorem hasMFDerivAt_iff_hasFDerivAt - theorem hasMFDerivAt_neg - theorem hasMFDerivAt_snd - theorem hasMFDerivWithinAt_const - theorem hasMFDerivWithinAt_extChartAt - theorem hasMFDerivWithinAt_fst - theorem hasMFDerivWithinAt_id - theorem hasMFDerivWithinAt_iff_hasFDerivWithinAt - theorem hasMFDerivWithinAt_snd - theorem mdifferentiableAt_atlas - theorem mdifferentiableAt_atlas_symm - theorem mdifferentiableAt_const - theorem mdifferentiableAt_extChartAt - theorem mdifferentiableAt_fst - theorem mdifferentiableAt_id - theorem mdifferentiableAt_iff_differentiableAt - theorem mdifferentiableAt_iff_liftPropAt - theorem mdifferentiableAt_neg - theorem mdifferentiableAt_snd - theorem mdifferentiableOn_atlas - theorem mdifferentiableOn_atlas_symm - theorem mdifferentiableOn_const - theorem mdifferentiableOn_extChartAt - theorem mdifferentiableOn_fst - theorem mdifferentiableOn_id - theorem mdifferentiableOn_iff_differentiableOn - theorem mdifferentiableOn_snd - theorem mdifferentiableWithinAt_const - theorem mdifferentiableWithinAt_fst - theorem mdifferentiableWithinAt_id - theorem mdifferentiableWithinAt_iff_differentiableWithinAt - theorem mdifferentiableWithinAt_iff_liftPropWithinAt - theorem mdifferentiableWithinAt_snd - theorem mdifferentiable_chart - theorem mdifferentiable_const - theorem mdifferentiable_fst - theorem mdifferentiable_id - theorem mdifferentiable_iff_differentiable - theorem mdifferentiable_of_mem_atlas - theorem mdifferentiable_snd - def mfderiv - def mfderivWithin - theorem mfderivWithin_const - theorem mfderivWithin_eq_fderivWithin - theorem mfderivWithin_fst - theorem mfderivWithin_id - theorem mfderivWithin_snd - theorem mfderiv_add - theorem mfderiv_const - theorem mfderiv_eq_fderiv - theorem mfderiv_fst - theorem mfderiv_id - theorem mfderiv_neg - theorem mfderiv_prod_eq_add - theorem mfderiv_prod_left - theorem mfderiv_prod_right - theorem mfderiv_snd - theorem mfderiv_sub - def tangentMap - def tangentMapWithin - theorem tangentMapWithin_id - theorem tangentMapWithin_prod_fst - theorem tangentMapWithin_prod_snd - theorem tangentMap_chart - theorem tangentMap_chart_symm - theorem tangentMap_id - theorem tangentMap_prod_fst - theorem tangentMap_prod_snd - theorem uniqueMDiffOn_iff_uniqueDiffOn - theorem uniqueMDiffWithinAt_iff_uniqueDiffWithinAt - theorem writtenInExtChartAt_model_space Added Mathlib/Geometry/Manifold/MFDeriv/Defs.lean + def DifferentiableWithinAtProp + def HasMFDerivAt + def HasMFDerivWithinAt + def MDifferentiable + def MDifferentiableAt + def MDifferentiableOn + def MDifferentiableWithinAt + def PartialHomeomorph.MDifferentiable + def UniqueMDiffOn + def UniqueMDiffWithinAt + theorem differentiable_within_at_localInvariantProp + theorem mdifferentiableAt_iff_liftPropAt + theorem mdifferentiableWithinAt_iff_liftPropWithinAt + def mfderiv + def mfderivWithin + def tangentMap + def tangentMapWithin Added Mathlib/Geometry/Manifold/MFDeriv/FDeriv.lean + theorem hasMFDerivAt_iff_hasFDerivAt + theorem hasMFDerivWithinAt_iff_hasFDerivWithinAt + theorem mdifferentiableAt_iff_differentiableAt + theorem mdifferentiableOn_iff_differentiableOn + theorem mdifferentiableWithinAt_iff_differentiableWithinAt + theorem mdifferentiable_iff_differentiable + theorem mfderivWithin_eq_fderivWithin + theorem mfderiv_eq_fderiv + theorem uniqueMDiffOn_iff_uniqueDiffOn + theorem uniqueMDiffWithinAt_iff_uniqueDiffWithinAt + theorem writtenInExtChartAt_model_space Added Mathlib/Geometry/Manifold/MFDeriv/SpecificFunctions.lean + theorem ContinuousLinearEquiv.mfderivWithin_eq + theorem ContinuousLinearEquiv.mfderiv_eq + theorem ContinuousLinearMap.mfderivWithin_eq + theorem ContinuousLinearMap.mfderiv_eq + theorem HasMFDerivAt.add + theorem HasMFDerivAt.const_smul + theorem HasMFDerivAt.mul' + theorem HasMFDerivAt.mul + theorem HasMFDerivAt.neg + theorem HasMFDerivAt.sub + theorem HasMFDerivWithinAt.mul' + theorem HasMFDerivWithinAt.mul + theorem MDifferentiable.add + theorem MDifferentiable.const_smul + theorem MDifferentiable.mul + theorem MDifferentiable.neg + theorem MDifferentiable.sub + theorem MDifferentiableAt.add + theorem MDifferentiableAt.const_smul + theorem MDifferentiableAt.mfderiv_prod + theorem MDifferentiableAt.mul + theorem MDifferentiableAt.neg + theorem MDifferentiableAt.sub + theorem MDifferentiableOn.mul + theorem MDifferentiableWithinAt.mul + theorem const_smul_mfderiv + theorem hasMFDerivAt_const + theorem hasMFDerivAt_fst + theorem hasMFDerivAt_id + theorem hasMFDerivAt_neg + theorem hasMFDerivAt_snd + theorem hasMFDerivWithinAt_const + theorem hasMFDerivWithinAt_fst + theorem hasMFDerivWithinAt_id + theorem hasMFDerivWithinAt_snd + theorem mdifferentiableAt_const + theorem mdifferentiableAt_fst + theorem mdifferentiableAt_id + theorem mdifferentiableAt_neg + theorem mdifferentiableAt_snd + theorem mdifferentiableOn_const + theorem mdifferentiableOn_fst + theorem mdifferentiableOn_id + theorem mdifferentiableOn_snd + theorem mdifferentiableWithinAt_const + theorem mdifferentiableWithinAt_fst + theorem mdifferentiableWithinAt_id + theorem mdifferentiableWithinAt_snd + theorem mdifferentiable_const + theorem mdifferentiable_fst + theorem mdifferentiable_id + theorem mdifferentiable_snd + theorem mfderivWithin_const + theorem mfderivWithin_fst + theorem mfderivWithin_id + theorem mfderivWithin_snd + theorem mfderiv_add + theorem mfderiv_const + theorem mfderiv_fst + theorem mfderiv_id + theorem mfderiv_neg + theorem mfderiv_prod_eq_add + theorem mfderiv_prod_left + theorem mfderiv_prod_right + theorem mfderiv_snd + theorem mfderiv_sub + theorem tangentMapWithin_id + theorem tangentMapWithin_prod_fst + theorem tangentMapWithin_prod_snd + theorem tangentMap_id + theorem tangentMap_prod_fst + theorem tangentMap_prod_snd Added Mathlib/Geometry/Manifold/MFDeriv/UniqueDifferential.lean + theorem Trivialization.mdifferentiable + theorem UniqueMDiffOn.image_denseRange' + theorem UniqueMDiffOn.image_denseRange + theorem UniqueMDiffOn.smooth_bundle_preimage + theorem UniqueMDiffOn.tangentBundle_proj_preimage + theorem UniqueMDiffOn.uniqueDiffOn_inter_preimage + theorem UniqueMDiffOn.uniqueDiffOn_target_inter + theorem UniqueMDiffOn.uniqueMDiffOn_preimage + theorem UniqueMDiffWithinAt.image_denseRange + theorem UniqueMDiffWithinAt.smooth_bundle_preimage' + theorem UniqueMDiffWithinAt.smooth_bundle_preimage Modified Mathlib/NumberTheory/ModularForms/Basic.lean Modified Mathlib/NumberTheory/ModularForms/JacobiTheta/Manifold.lean 2024-01-16 21:01:29 fc4c73b feat(LinearAlgebra/Multilinear/Basic): derivative of a multilinear map (#9130) - Define the derivative `f.linearDeriv` of a multilinear map `f` at `x`, i.e. the first-order term of `f(x+h)-f(x+h')`. - Define `MultilinearMap.domDomRestrict`: given a multilinear map indexed by a type `ι`, a function `P: ι → Prop` and a vector `z` define on `{a // ¬ P a}`, this is the multilinear map indexed by `{a // P a}` sending `x` to the value of `f` at the vector that has coordinate at `a : ι` equal to `x a` if `P a` and `z a` if ` ¬ P a`. - [x] depends on: #9137 ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/Multilinear/Basic.lean + def MultilinearMap.domDomRestrict + theorem MultilinearMap.domDomRestrict_apply + theorem MultilinearMap.domDomRestrict_aux + def MultilinearMap.linearDeriv + theorem MultilinearMap.linearDeriv_apply + theorem MultilinearMap.map_add_eq_map_add_linearDeriv_add + theorem MultilinearMap.map_add_sub_map_add_sub_linearDeriv + theorem MultilinearMap.map_piecewise_sub_map_piecewise + theorem MultilinearMap.map_sub_map_piecewise + theorem MultilinearMap.map_update 2024-01-16 19:40:25 34368d1 fix(Data/Fin/Basic): `castPred` consistency redefinition. (#9780) This PR redefines castPred to be more consistent with the definition of both `pred` and `castSucc`, so that the relationship between `castSucc` and `castPred` and `succ` and `pred` becomes exactly analogous. It also adds some supplementary and analogous lemmas designed to facilitate this. As `castPred` is no longer dependent on `predAbove`, its definition is moved to a more appropriate place. ESTIMATED CHANGES Modified Mathlib/AlgebraicTopology/SimplexCategory.lean Modified Mathlib/Data/Fin/Basic.lean + theorem Fin.castLT_eq_castPred +/- def Fin.castPred +/- theorem Fin.castPred_castSucc + theorem Fin.castPred_eq_iff_eq_castSucc + theorem Fin.castPred_inj - theorem Fin.castPred_last + theorem Fin.castPred_le_castPred_iff + theorem Fin.castPred_le_iff + theorem Fin.castPred_lt_castPred_iff + theorem Fin.castPred_lt_iff - theorem Fin.castPred_mk' +/- theorem Fin.castPred_mk - theorem Fin.castPred_monotone +/- theorem Fin.castPred_one + theorem Fin.castPred_zero' +/- theorem Fin.castPred_zero +/- theorem Fin.castSucc_castPred + theorem Fin.castSucc_le_castSucc_iff + theorem Fin.castSucc_lt_succ_iff + theorem Fin.castSucc_pred_lt +/- theorem Fin.coe_castPred - theorem Fin.coe_castPred_le_self - theorem Fin.coe_castPred_lt_iff + theorem Fin.last_pos' + theorem Fin.le_castPred_iff + theorem Fin.le_castPred_succ_iff + theorem Fin.le_castSucc_pred_iff + theorem Fin.le_of_castSucc_lt_of_succ_lt + theorem Fin.le_pred_castSucc_iff + theorem Fin.le_pred_iff + theorem Fin.lt_castPred_iff + theorem Fin.lt_castPred_succ - theorem Fin.lt_last_iff_coe_castPred + theorem Fin.lt_pred_iff + theorem Fin.lt_succ_castPred + theorem Fin.one_lt_last + theorem Fin.one_pos' +/- theorem Fin.predAbove_below - theorem Fin.predAbove_last +/- theorem Fin.predAbove_last_apply + theorem Fin.predAbove_last_castSucc + theorem Fin.predAbove_last_of_ne_last + theorem Fin.predAbove_right_last + theorem Fin.pred_castSucc_lt + theorem Fin.pred_last + theorem Fin.pred_le_iff + theorem Fin.pred_lt_castPred + theorem Fin.pred_lt_iff + theorem Fin.pred_one' + theorem Fin.rev_castPred + theorem Fin.rev_eq_iff + theorem Fin.rev_ne_iff + theorem Fin.rev_pred + theorem Fin.succ_castPred_eq_castPred_succ + theorem Fin.succ_castPred_le_iff + theorem Fin.succ_le_castSucc_iff + theorem Fin.succ_ne_last_iff + theorem Fin.zero_ne_one' 2024-01-16 19:40:24 e8248a2 feat(Probability): simple kernel lemmas (#9350) - Lemmas about compositions and products of kernels. - New definition: `prodMkRight`, similar to `prodMkLeft`: takes `κ : kernel α β` and turn it into a `kernel (α × γ) β`. From the PFR project. ESTIMATED CHANGES Modified Mathlib/Probability/Kernel/Composition.lean + theorem ProbabilityTheory.kernel.comap_map_comm + theorem ProbabilityTheory.kernel.fst_prod + theorem ProbabilityTheory.kernel.fst_prodMkLeft + theorem ProbabilityTheory.kernel.fst_prodMkRight + theorem ProbabilityTheory.kernel.lintegral_prodMkRight + theorem ProbabilityTheory.kernel.map_prodMkLeft + theorem ProbabilityTheory.kernel.map_prodMkRight + def ProbabilityTheory.kernel.prodMkRight + theorem ProbabilityTheory.kernel.prodMkRight_apply' + theorem ProbabilityTheory.kernel.prodMkRight_apply + theorem ProbabilityTheory.kernel.prodMkRight_zero + theorem ProbabilityTheory.kernel.prod_apply' +/- theorem ProbabilityTheory.kernel.prod_apply + theorem ProbabilityTheory.kernel.prod_const + theorem ProbabilityTheory.kernel.snd_prod + theorem ProbabilityTheory.kernel.snd_prodMkLeft + theorem ProbabilityTheory.kernel.snd_prodMkRight + theorem ProbabilityTheory.kernel.swapLeft_prodMkLeft + theorem ProbabilityTheory.kernel.swapLeft_prodMkRight 2024-01-16 16:52:17 18eeff5 refactor: Clean up `posPart` (#9740) This changes the typeclass notation approach with plain functions. Followup to #9553. Part of #9411 ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Group/Abs.lean + def LatticeOrderedAddCommGroup.IsSolid + theorem LatticeOrderedAddCommGroup.isSolid_solidClosure + def LatticeOrderedAddCommGroup.solidClosure + theorem LatticeOrderedAddCommGroup.solidClosure_min Modified Mathlib/Algebra/Order/Group/PosPart.lean - def LatticeOrderedAddCommGroup.IsSolid - theorem LatticeOrderedAddCommGroup.isSolid_solidClosure - def LatticeOrderedAddCommGroup.solidClosure - theorem LatticeOrderedAddCommGroup.solidClosure_min - theorem LatticeOrderedCommGroup.inf_eq_div_pos_div - theorem LatticeOrderedCommGroup.m_le_iff_pos_le_neg_ge - theorem LatticeOrderedCommGroup.sup_eq_mul_pos_div - theorem LatticeOrderedGroup.inv_le_neg - theorem LatticeOrderedGroup.m_le_pos - theorem LatticeOrderedGroup.m_neg_abs - theorem LatticeOrderedGroup.m_neg_part_def - theorem LatticeOrderedGroup.m_pos_abs - theorem LatticeOrderedGroup.m_pos_part_def - theorem LatticeOrderedGroup.neg_eq_inv_inf_one - theorem LatticeOrderedGroup.neg_eq_one_iff' - theorem LatticeOrderedGroup.neg_eq_one_iff - theorem LatticeOrderedGroup.neg_eq_pos_inv - theorem LatticeOrderedGroup.neg_le_one_iff - theorem LatticeOrderedGroup.neg_of_inv_le_one - theorem LatticeOrderedGroup.neg_of_le_one - theorem LatticeOrderedGroup.neg_of_one_le - theorem LatticeOrderedGroup.neg_of_one_le_inv - theorem LatticeOrderedGroup.neg_one - theorem LatticeOrderedGroup.one_le_neg - theorem LatticeOrderedGroup.one_le_pos - theorem LatticeOrderedGroup.pos_div_neg - theorem LatticeOrderedGroup.pos_eq_neg_inv - theorem LatticeOrderedGroup.pos_eq_one_iff - theorem LatticeOrderedGroup.pos_eq_self_of_one_lt_pos - theorem LatticeOrderedGroup.pos_inf_neg_eq_one - theorem LatticeOrderedGroup.pos_le_one_iff - theorem LatticeOrderedGroup.pos_mul_neg - theorem LatticeOrderedGroup.pos_of_le_one - theorem LatticeOrderedGroup.pos_of_one_le - theorem LatticeOrderedGroup.pos_one + theorem inf_eq_div_oneLePart_div + theorem inv_le_leOnePart + def leOnePart + theorem leOnePart_anti + theorem leOnePart_eq_inv' + theorem leOnePart_eq_inv + theorem leOnePart_eq_inv_inf_one + theorem leOnePart_eq_one' + theorem leOnePart_eq_one + theorem leOnePart_inv + theorem leOnePart_le_one' + theorem leOnePart_le_one + theorem leOnePart_one + theorem le_iff_oneLePart_leOnePart + theorem le_oneLePart + def oneLePart + theorem oneLePart_div_leOnePart + theorem oneLePart_eq_one + theorem oneLePart_eq_self + theorem oneLePart_inf_leOnePart_eq_one + theorem oneLePart_inv + theorem oneLePart_le_one + theorem oneLePart_mono + theorem oneLePart_mul_leOnePart + theorem oneLePart_of_one_lt_oneLePart + theorem oneLePart_one + theorem one_le_leOnePart + theorem one_le_oneLePart + theorem sup_eq_mul_oneLePart_div Modified Mathlib/Algebra/Order/Module/OrderedSMul.lean Modified Mathlib/Analysis/Normed/Order/Lattice.lean - theorem continuous_neg' + theorem continuous_negPart - theorem continuous_pos + theorem continuous_posPart +/- theorem isClosed_nonneg + theorem lipschitzWith_negPart - theorem lipschitzWith_pos + theorem lipschitzWith_posPart Modified Mathlib/MeasureTheory/Function/LpOrder.lean Modified Mathlib/Probability/Martingale/Convergence.lean Modified Mathlib/Probability/Martingale/Upcrossing.lean Modified Mathlib/Topology/ContinuousFunction/Bounded.lean 2024-01-16 16:52:16 1564a32 chore: Move `zpow` lemmas (#9720) These lemmas can be proved much earlier with little to no change to their proofs. Part of #9411 ESTIMATED CHANGES Modified Archive/Imo/Imo1998Q2.lean Modified Archive/MiuLanguage/DecisionSuf.lean Modified Mathlib/Algebra/BigOperators/Basic.lean Modified Mathlib/Algebra/CharZero/Lemmas.lean Modified Mathlib/Algebra/GCDMonoid/Basic.lean Modified Mathlib/Algebra/Group/Conj.lean Modified Mathlib/Algebra/GroupPower/Basic.lean + theorem mul_self_zpow + theorem mul_zpow_self + theorem zpow_add + theorem zpow_add_one + theorem zpow_bit0' + theorem zpow_bit0 + theorem zpow_bit1 + theorem zpow_induction_left + theorem zpow_induction_right + theorem zpow_mul' + theorem zpow_mul + theorem zpow_mul_comm + theorem zpow_one_add + theorem zpow_sub + theorem zpow_sub_one Modified Mathlib/Algebra/GroupPower/IterateHom.lean Modified Mathlib/Algebra/GroupPower/Lemmas.lean - theorem mul_self_zpow - theorem mul_zpow_self - theorem neg_one_pow_eq_pow_mod_two - theorem zpow_add - theorem zpow_add_one - theorem zpow_bit0' - theorem zpow_bit0 - theorem zpow_bit0_neg - theorem zpow_bit1 - theorem zpow_induction_left - theorem zpow_induction_right - theorem zpow_mul' - theorem zpow_mul - theorem zpow_mul_comm - theorem zpow_one_add - theorem zpow_sub - theorem zpow_sub_one Modified Mathlib/Algebra/GroupPower/Ring.lean + theorem neg_one_pow_eq_pow_mod_two + theorem zpow_bit0_neg Modified Mathlib/Algebra/GroupRingAction/Basic.lean Modified Mathlib/Algebra/GroupWithZero/Bitwise.lean Modified Mathlib/Algebra/Parity.lean Modified Mathlib/Algebra/Star/Basic.lean Modified Mathlib/CategoryTheory/GradedObject.lean Modified Mathlib/Data/Int/GCD.lean Modified Mathlib/Data/Nat/Choose/Bounds.lean Modified Mathlib/Data/Real/CauSeq.lean Modified Mathlib/GroupTheory/Perm/Basic.lean Modified Mathlib/SetTheory/Cardinal/SchroederBernstein.lean Modified Mathlib/Tactic/NormNum/Pow.lean Modified test/NoncommRing.lean 2024-01-16 16:52:15 df0c38b feat: Intersection of convex hulls is convex hull of intersection (#9203) when everything is affine independent. Also a related affine span lemma. From LeanCamCombi ESTIMATED CHANGES Modified Mathlib/Analysis/Convex/Combination.lean + theorem AffineIndependent.convexHull_inter' + theorem AffineIndependent.convexHull_inter + theorem Finset.mem_convexHull' Modified Mathlib/LinearAlgebra/AffineSpace/FiniteDimensional.lean + theorem AffineIndependent.card_le_card_of_subset_affineSpan + theorem AffineIndependent.card_lt_card_of_affineSpan_lt_affineSpan + theorem AffineIndependent.finrank_vectorSpan_add_one + theorem finrank_vectorSpan_range_add_one_le 2024-01-16 15:36:16 c705f36 feat(Filter/Basic): add `Filter.comap_injective` (#9774) ESTIMATED CHANGES Modified Mathlib/Order/Filter/Basic.lean + theorem Filter.comap_injective 2024-01-16 15:36:15 4c74b90 feat: define complete sublattices (#9763) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Data/Set/Image.lean + theorem Set.subset_image_iff Added Mathlib/Order/CompleteSublattice.lean + theorem CompleteSublattice.coe_bot + theorem CompleteSublattice.coe_sInf' + theorem CompleteSublattice.coe_sInf + theorem CompleteSublattice.coe_sSup' + theorem CompleteSublattice.coe_sSup + theorem CompleteSublattice.coe_top + def CompleteSublattice.comap + def CompleteSublattice.map + theorem CompleteSublattice.mem_comap + theorem CompleteSublattice.mem_map + def CompleteSublattice.mk' + theorem CompleteSublattice.sInfClosed + theorem CompleteSublattice.sSupClosed + structure CompleteSublattice 2024-01-16 15:36:14 fce2e43 feat: lemmas about partitions of unity (#9635) - add `finsupport`: the support (the set of indices which functions are non-vanishing) at a point, as a `Finset` - every point has a neighbourhood on which only finitely many functions are non-vanishing From sphere-eversion; I'm just upstreaming results. ESTIMATED CHANGES Modified Mathlib/Topology/PartitionOfUnity.lean + theorem PartitionOfUnity.coe_finsupport + theorem PartitionOfUnity.exists_finset_nhd' + theorem PartitionOfUnity.exists_finset_nhd + def PartitionOfUnity.finsupport + theorem PartitionOfUnity.mem_finsupport + theorem PartitionOfUnity.sum_finsupport' + theorem PartitionOfUnity.sum_finsupport + theorem PartitionOfUnity.sum_finsupport_smul_eq_finsum 2024-01-16 15:36:13 b443a93 chore(TFAE): migrate to `getLastD`, reduce imports (#9628) Since `getLastD_mem_cons` is in `Std`, we no longer have to import `Data.List.Basic`. ESTIMATED CHANGES Modified Mathlib/Data/List/TFAE.lean +/- theorem List.tfae_of_cycle Modified Mathlib/Tactic/TFAE.lean 2024-01-16 15:36:11 7f8c3e3 refactor: extract and name the pregroupoid underlying contDiffGroupoid (#9091) This will be used for proving the inverse function theorem on manifolds. ESTIMATED CHANGES Modified Mathlib/Geometry/Manifold/SmoothManifoldWithCorners.lean + def contDiffPregroupoid 2024-01-16 15:36:10 e72937a refactor(MonoidAlgebra/Support): reformulate `support_mul` (#8953) Use pointwise multiplication/addition of `Finset`s in `MonoidAlgebra.support_mul` and `AddMonoidAlgebra.support_mul`. ESTIMATED CHANGES Modified Mathlib/Algebra/MonoidAlgebra/Degree.lean Modified Mathlib/Algebra/MonoidAlgebra/Grading.lean Modified Mathlib/Algebra/MonoidAlgebra/Support.lean + theorem AddMonoidAlgebra.support_one + theorem AddMonoidAlgebra.support_one_subset + theorem MonoidAlgebra.support_one + theorem MonoidAlgebra.support_one_subset Modified Mathlib/Data/MvPolynomial/Basic.lean Modified Mathlib/Data/MvPolynomial/Variables.lean +/- theorem MvPolynomial.degrees_pow Modified Mathlib/Data/Polynomial/Coeff.lean 2024-01-16 14:21:30 9ba9836 chore(Topology/Support): group related lemmas using a section (#9777) Only add a section; no lemmas are changed. Open the `HasCompactSupport` namespace more, while we're at it. ESTIMATED CHANGES Modified Mathlib/Topology/Support.lean +/- theorem HasCompactMulSupport.comp_closedEmbedding +/- theorem HasCompactMulSupport.comp_left +/- theorem HasCompactMulSupport.comp₂_left +/- theorem HasCompactMulSupport.intro' +/- theorem HasCompactMulSupport.intro +/- theorem HasCompactMulSupport.isCompact +/- theorem HasCompactMulSupport.isCompact_range +/- theorem HasCompactMulSupport.mono' +/- theorem HasCompactMulSupport.mono +/- theorem HasCompactMulSupport.of_mulSupport_subset_isCompact +/- theorem hasCompactMulSupport_comp_left +/- theorem hasCompactMulSupport_iff_eventuallyEq +/- theorem isCompact_range_of_mulSupport_subset_isCompact 2024-01-16 14:21:28 dbe300c doc(Geometry/Manifold/LieGroup): extend and clean up docstrings (#9766) - tweak section names; add comments explaining what's in them - add two lemma docstrings - revamp the module docstring to mention all results - in the module docstring, separate main definitions and results ESTIMATED CHANGES Modified Mathlib/Geometry/Manifold/Algebra/LieGroup.lean 2024-01-16 14:21:27 9cf9e37 chore: delete `DecidableEq` instance in `Algebra.FreeMonoid.Basic` (#9741) ESTIMATED CHANGES Modified Mathlib/Algebra/FreeMonoid/Basic.lean 2024-01-16 14:21:26 31fc66d doc: eval is a universal partial recursive function (#9703) ESTIMATED CHANGES Modified Mathlib/Computability/PartrecCode.lean 2024-01-16 14:21:25 51956bc chore(Analysis,Geometry): remove almost all autoImplicit (#9691) After this PR, no file in `Geometry` uses autoImplicit, and in `Analysis` it's scoped to six declarations. ESTIMATED CHANGES Modified Mathlib/Analysis/Calculus/Deriv/Star.lean Modified Mathlib/Analysis/Calculus/FDeriv/Basic.lean +/- theorem HasFDerivWithinAt.of_not_mem_tsupport Modified Mathlib/Analysis/Complex/CauchyIntegral.lean Modified Mathlib/Analysis/Convex/Gauge.lean Modified Mathlib/Analysis/Convex/StrictConvexSpace.lean Modified Mathlib/Analysis/NormedSpace/lpSpace.lean Modified Mathlib/Analysis/Seminorm.lean +/- theorem Seminorm.neg_mem_ball_zero Modified Mathlib/Analysis/SpecialFunctions/Log/Basic.lean +/- theorem Mathlib.Meta.Positivity.log_nonneg_of_isNat +/- theorem Mathlib.Meta.Positivity.log_nonneg_of_isNegNat +/- theorem Mathlib.Meta.Positivity.log_pos_of_isNat +/- theorem Mathlib.Meta.Positivity.log_pos_of_isNegNat Modified Mathlib/Analysis/SpecialFunctions/SmoothTransition.lean +/- theorem expNegInvGlue.zero_iff_nonpos Modified Mathlib/Geometry/Euclidean/Inversion/Basic.lean Modified Mathlib/Geometry/Euclidean/PerpBisector.lean Modified Mathlib/Geometry/Manifold/Algebra/LieGroup.lean Modified Mathlib/Geometry/Manifold/MFDeriv/Basic.lean +/- theorem UniqueMDiffWithinAt.image_denseRange Modified Mathlib/Geometry/Manifold/SmoothManifoldWithCorners.lean +/- theorem PartialHomeomorph.continuousWithinAt_writtenInExtend_iff +/- theorem PartialHomeomorph.tendsto_extend_comp_iff Modified Mathlib/Geometry/Manifold/VectorBundle/Basic.lean +/- theorem contMDiffAt_coordChangeL +/- theorem smoothAt_coordChangeL 2024-01-16 14:21:24 b52b6c4 feat: lemmas about NhdsSet (#9674) From sphere-eversion; I'm just submitting these. Thanks to @urkud for some review suggestions. ESTIMATED CHANGES Modified Mathlib/Data/Set/Lattice.lean + theorem sSup_iUnion Modified Mathlib/Order/Filter/Basic.lean + theorem Filter.Eventually.forall_mem Modified Mathlib/Topology/Compactness/Compact.lean - theorem nhdsSet_prod_le Modified Mathlib/Topology/Constructions.lean + theorem Filter.Eventually.prod_nhdsSet + theorem Filter.eventually_nhdsSet_prod_iff + theorem nhdsSet_prod_le Modified Mathlib/Topology/NhdsSet.lean + theorem Filter.Eventually.eventually_nhdsSet + theorem Filter.Eventually.union + theorem Filter.Eventually.union_nhdsSet + theorem IsClosed.nhdsSet_le_sup' + theorem IsClosed.nhdsSet_le_sup + theorem eventually_nhdsSet_iUnion + theorem eventually_nhdsSet_iUnion₂ + theorem nhdsSet_iUnion + theorem nhdsSet_inter_le 2024-01-16 13:08:51 f635563 chore: Move `Int.pow_right_injective` (#9739) This allows more files to not depend on `Algebra.GroupPower.Lemmas`, which will soon stop existing. Part of #9411 ESTIMATED CHANGES Modified Mathlib/Algebra/GroupPower/Lemmas.lean - theorem Int.pow_right_injective Modified Mathlib/Data/Int/Order/Lemmas.lean + theorem Int.pow_right_injective Modified Mathlib/GroupTheory/Submonoid/Membership.lean 2024-01-16 12:23:14 92f863e Feat : Add geometric distribution (#9561) Adds the geometric probability distribution ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Probability/Distributions/Geometric.lean + def ProbabilityTheory.geometricMeasure + def ProbabilityTheory.geometricPMF + def ProbabilityTheory.geometricPMFReal + theorem ProbabilityTheory.geometricPMFRealSum + theorem ProbabilityTheory.geometricPMFReal_nonneg + theorem ProbabilityTheory.geometricPMFReal_pos + theorem ProbabilityTheory.isProbabilityMeasureGeometric + theorem ProbabilityTheory.measurable_geometricPMFReal + theorem ProbabilityTheory.stronglyMeasurable_geometricPMFReal 2024-01-16 10:45:05 bc6f44c chore : fix camelcase naming of PDF, CDF and PMF (#9681) Replaces occurences of Pdf, Cdf and Pmf within camelCase situations by PDF, CDF and PMF respectively. ESTIMATED CHANGES Modified Mathlib/Probability/Cdf.lean +/- theorem ProbabilityTheory.cdf_le_one +/- theorem ProbabilityTheory.cdf_nonneg +/- theorem ProbabilityTheory.monotone_cdf +/- theorem ProbabilityTheory.tendsto_cdf_atBot +/- theorem ProbabilityTheory.tendsto_cdf_atTop Modified Mathlib/Probability/Distributions/Exponential.lean + def ProbabilityTheory.exponentialCDFReal + theorem ProbabilityTheory.exponentialCDFReal_eq + theorem ProbabilityTheory.exponentialCDFReal_eq_integral + theorem ProbabilityTheory.exponentialCDFReal_eq_lintegral - def ProbabilityTheory.exponentialCdfReal - theorem ProbabilityTheory.exponentialCdfReal_eq - theorem ProbabilityTheory.exponentialCdfReal_eq_integral - theorem ProbabilityTheory.exponentialCdfReal_eq_lintegral + def ProbabilityTheory.exponentialPDF + def ProbabilityTheory.exponentialPDFReal + theorem ProbabilityTheory.exponentialPDFReal_nonneg + theorem ProbabilityTheory.exponentialPDFReal_pos + theorem ProbabilityTheory.exponentialPDF_eq + theorem ProbabilityTheory.exponentialPDF_of_neg + theorem ProbabilityTheory.exponentialPDF_of_nonneg - def ProbabilityTheory.exponentialPdf - def ProbabilityTheory.exponentialPdfReal - theorem ProbabilityTheory.exponentialPdfReal_nonneg - theorem ProbabilityTheory.exponentialPdfReal_pos - theorem ProbabilityTheory.exponentialPdf_eq - theorem ProbabilityTheory.exponentialPdf_of_neg - theorem ProbabilityTheory.exponentialPdf_of_nonneg + theorem ProbabilityTheory.lintegral_exponentialPDF_eq_antiDeriv + theorem ProbabilityTheory.lintegral_exponentialPDF_eq_one + theorem ProbabilityTheory.lintegral_exponentialPDF_of_nonpos - theorem ProbabilityTheory.lintegral_exponentialPdf_eq_antiDeriv - theorem ProbabilityTheory.lintegral_exponentialPdf_eq_one - theorem ProbabilityTheory.lintegral_exponentialPdf_of_nonpos + theorem ProbabilityTheory.measurable_exponentialPDFReal - theorem ProbabilityTheory.measurable_exponentialPdfReal + theorem ProbabilityTheory.stronglyMeasurable_exponentialPDFReal - theorem ProbabilityTheory.stronglyMeasurable_exponentialPdfReal Modified Mathlib/Probability/Distributions/Gamma.lean + def ProbabilityTheory.gammaCDFReal + theorem ProbabilityTheory.gammaCDFReal_eq_integral + theorem ProbabilityTheory.gammaCDFReal_eq_lintegral - def ProbabilityTheory.gammaCdfReal - theorem ProbabilityTheory.gammaCdfReal_eq_integral - theorem ProbabilityTheory.gammaCdfReal_eq_lintegral + def ProbabilityTheory.gammaPDF + def ProbabilityTheory.gammaPDFReal + theorem ProbabilityTheory.gammaPDFReal_nonneg + theorem ProbabilityTheory.gammaPDFReal_pos + theorem ProbabilityTheory.gammaPDF_eq + theorem ProbabilityTheory.gammaPDF_of_neg + theorem ProbabilityTheory.gammaPDF_of_nonneg - def ProbabilityTheory.gammaPdf - def ProbabilityTheory.gammaPdfReal - theorem ProbabilityTheory.gammaPdfReal_nonneg - theorem ProbabilityTheory.gammaPdfReal_pos - theorem ProbabilityTheory.gammaPdf_eq - theorem ProbabilityTheory.gammaPdf_of_neg - theorem ProbabilityTheory.gammaPdf_of_nonneg + theorem ProbabilityTheory.lintegral_gammaPDF_eq_one + theorem ProbabilityTheory.lintegral_gammaPDF_of_nonpos - theorem ProbabilityTheory.lintegral_gammaPdf_eq_one - theorem ProbabilityTheory.lintegral_gammaPdf_of_nonpos + theorem ProbabilityTheory.measurable_gammaPDFReal - theorem ProbabilityTheory.measurable_gammaPdfReal + theorem ProbabilityTheory.stronglyMeasurable_gammaPDFReal - theorem ProbabilityTheory.stronglyMeasurable_gammaPdfReal Modified Mathlib/Probability/Distributions/Gaussian.lean + def ProbabilityTheory.gaussianPDF + def ProbabilityTheory.gaussianPDFReal + theorem ProbabilityTheory.gaussianPDFReal_add + theorem ProbabilityTheory.gaussianPDFReal_def + theorem ProbabilityTheory.gaussianPDFReal_inv_mul + theorem ProbabilityTheory.gaussianPDFReal_mul + theorem ProbabilityTheory.gaussianPDFReal_nonneg + theorem ProbabilityTheory.gaussianPDFReal_pos + theorem ProbabilityTheory.gaussianPDFReal_sub + theorem ProbabilityTheory.gaussianPDFReal_zero_var + theorem ProbabilityTheory.gaussianPDF_def + theorem ProbabilityTheory.gaussianPDF_pos + theorem ProbabilityTheory.gaussianPDF_zero_var - def ProbabilityTheory.gaussianPdf - def ProbabilityTheory.gaussianPdfReal - theorem ProbabilityTheory.gaussianPdfReal_add - theorem ProbabilityTheory.gaussianPdfReal_def - theorem ProbabilityTheory.gaussianPdfReal_inv_mul - theorem ProbabilityTheory.gaussianPdfReal_mul - theorem ProbabilityTheory.gaussianPdfReal_nonneg - theorem ProbabilityTheory.gaussianPdfReal_pos - theorem ProbabilityTheory.gaussianPdfReal_sub - theorem ProbabilityTheory.gaussianPdfReal_zero_var - theorem ProbabilityTheory.gaussianPdf_def - theorem ProbabilityTheory.gaussianPdf_pos - theorem ProbabilityTheory.gaussianPdf_zero_var + theorem ProbabilityTheory.integrable_gaussianPDFReal - theorem ProbabilityTheory.integrable_gaussianPdfReal + theorem ProbabilityTheory.integral_gaussianPDFReal_eq_one - theorem ProbabilityTheory.integral_gaussianPdfReal_eq_one + theorem ProbabilityTheory.lintegral_gaussianPDFReal_eq_one + theorem ProbabilityTheory.lintegral_gaussianPDF_eq_one - theorem ProbabilityTheory.lintegral_gaussianPdfReal_eq_one - theorem ProbabilityTheory.lintegral_gaussianPdf_eq_one + theorem ProbabilityTheory.measurable_gaussianPDF + theorem ProbabilityTheory.measurable_gaussianPDFReal - theorem ProbabilityTheory.measurable_gaussianPdf - theorem ProbabilityTheory.measurable_gaussianPdfReal + theorem ProbabilityTheory.stronglyMeasurable_gaussianPDFReal - theorem ProbabilityTheory.stronglyMeasurable_gaussianPdfReal Modified Mathlib/Probability/Distributions/Poisson.lean + theorem ProbabilityTheory.measurable_poissonPMFReal - theorem ProbabilityTheory.measurable_poissonPmfReal +/- def ProbabilityTheory.poissonMeasure + def ProbabilityTheory.poissonPMF + def ProbabilityTheory.poissonPMFReal + theorem ProbabilityTheory.poissonPMFRealSum + theorem ProbabilityTheory.poissonPMFReal_nonneg + theorem ProbabilityTheory.poissonPMFReal_pos - def ProbabilityTheory.poissonPmf - def ProbabilityTheory.poissonPmfReal - theorem ProbabilityTheory.poissonPmfRealSum - theorem ProbabilityTheory.poissonPmfReal_nonneg - theorem ProbabilityTheory.poissonPmfReal_pos + theorem ProbabilityTheory.stronglyMeasurable_poissonPMFReal - theorem ProbabilityTheory.stronglyMeasurable_poissonPmfReal Modified Mathlib/Probability/Kernel/CondCdf.lean + structure ProbabilityTheory.HasCondCDF - structure ProbabilityTheory.HasCondCdf + theorem ProbabilityTheory.bddBelow_range_condCDFRat_gt - theorem ProbabilityTheory.bddBelow_range_condCdfRat_gt + theorem ProbabilityTheory.condCDF'_def' + theorem ProbabilityTheory.condCDF'_eq_condCDFRat + theorem ProbabilityTheory.condCDF'_nonneg + theorem ProbabilityTheory.condCDFRat_ae_eq + theorem ProbabilityTheory.condCDFRat_le_one + theorem ProbabilityTheory.condCDFRat_nonneg + theorem ProbabilityTheory.condCDFRat_of_mem + theorem ProbabilityTheory.condCDFRat_of_not_mem + def ProbabilityTheory.condCDFSet + theorem ProbabilityTheory.condCDF_ae_eq + theorem ProbabilityTheory.condCDF_eq_condCDFRat + theorem ProbabilityTheory.condCDF_le_one + theorem ProbabilityTheory.condCDF_nonneg - theorem ProbabilityTheory.condCdf'_def' - theorem ProbabilityTheory.condCdf'_eq_condCdfRat - theorem ProbabilityTheory.condCdf'_nonneg - theorem ProbabilityTheory.condCdfRat_ae_eq - theorem ProbabilityTheory.condCdfRat_le_one - theorem ProbabilityTheory.condCdfRat_nonneg - theorem ProbabilityTheory.condCdfRat_of_mem - theorem ProbabilityTheory.condCdfRat_of_not_mem - def ProbabilityTheory.condCdfSet - theorem ProbabilityTheory.condCdf_ae_eq - theorem ProbabilityTheory.condCdf_eq_condCdfRat - theorem ProbabilityTheory.condCdf_le_one - theorem ProbabilityTheory.condCdf_nonneg + theorem ProbabilityTheory.continuousWithinAt_condCDF'_Ici - theorem ProbabilityTheory.continuousWithinAt_condCdf'_Ici + theorem ProbabilityTheory.hasCondCDF_ae + theorem ProbabilityTheory.hasCondCDF_of_mem_condCDFSet - theorem ProbabilityTheory.hasCondCdf_ae - theorem ProbabilityTheory.hasCondCdf_of_mem_condCdfSet + theorem ProbabilityTheory.inf_gt_condCDFRat - theorem ProbabilityTheory.inf_gt_condCdfRat + theorem ProbabilityTheory.inf_gt_preCDF - theorem ProbabilityTheory.inf_gt_preCdf + theorem ProbabilityTheory.integrable_condCDF - theorem ProbabilityTheory.integrable_condCdf + theorem ProbabilityTheory.integral_condCDF - theorem ProbabilityTheory.integral_condCdf + theorem ProbabilityTheory.lintegral_condCDF - theorem ProbabilityTheory.lintegral_condCdf + theorem ProbabilityTheory.measurableSet_condCDFSet - theorem ProbabilityTheory.measurableSet_condCdfSet + theorem ProbabilityTheory.measurable_condCDF + theorem ProbabilityTheory.measurable_condCDFRat - theorem ProbabilityTheory.measurable_condCdf - theorem ProbabilityTheory.measurable_condCdfRat + theorem ProbabilityTheory.measurable_measure_condCDF - theorem ProbabilityTheory.measurable_measure_condCdf + theorem ProbabilityTheory.measurable_preCDF - theorem ProbabilityTheory.measurable_preCdf + theorem ProbabilityTheory.measure_condCDF_Iic + theorem ProbabilityTheory.measure_condCDF_univ - theorem ProbabilityTheory.measure_condCdf_Iic - theorem ProbabilityTheory.measure_condCdf_univ + theorem ProbabilityTheory.mem_condCDFSet_ae - theorem ProbabilityTheory.mem_condCdfSet_ae + theorem ProbabilityTheory.monotone_condCDF' + theorem ProbabilityTheory.monotone_condCDFRat - theorem ProbabilityTheory.monotone_condCdf' - theorem ProbabilityTheory.monotone_condCdfRat + theorem ProbabilityTheory.monotone_preCDF - theorem ProbabilityTheory.monotone_preCdf + theorem ProbabilityTheory.ofReal_condCDFRat_ae_eq + theorem ProbabilityTheory.ofReal_condCDF_ae_eq - theorem ProbabilityTheory.ofReal_condCdfRat_ae_eq - theorem ProbabilityTheory.ofReal_condCdf_ae_eq + theorem ProbabilityTheory.preCDF_le_one - theorem ProbabilityTheory.preCdf_le_one + theorem ProbabilityTheory.set_integral_condCDF - theorem ProbabilityTheory.set_integral_condCdf + theorem ProbabilityTheory.set_lintegral_condCDF + theorem ProbabilityTheory.set_lintegral_condCDF_rat - theorem ProbabilityTheory.set_lintegral_condCdf - theorem ProbabilityTheory.set_lintegral_condCdf_rat + theorem ProbabilityTheory.set_lintegral_iInf_gt_preCDF - theorem ProbabilityTheory.set_lintegral_iInf_gt_preCdf + theorem ProbabilityTheory.set_lintegral_preCDF_fst - theorem ProbabilityTheory.set_lintegral_preCdf_fst + theorem ProbabilityTheory.stronglyMeasurable_condCDF - theorem ProbabilityTheory.stronglyMeasurable_condCdf + theorem ProbabilityTheory.tendsto_condCDFRat_atBot + theorem ProbabilityTheory.tendsto_condCDFRat_atTop + theorem ProbabilityTheory.tendsto_condCDF_atBot + theorem ProbabilityTheory.tendsto_condCDF_atTop - theorem ProbabilityTheory.tendsto_condCdfRat_atBot - theorem ProbabilityTheory.tendsto_condCdfRat_atTop - theorem ProbabilityTheory.tendsto_condCdf_atBot - theorem ProbabilityTheory.tendsto_condCdf_atTop + theorem ProbabilityTheory.tendsto_lintegral_preCDF_atBot + theorem ProbabilityTheory.tendsto_lintegral_preCDF_atTop - theorem ProbabilityTheory.tendsto_lintegral_preCdf_atBot - theorem ProbabilityTheory.tendsto_lintegral_preCdf_atTop + theorem ProbabilityTheory.tendsto_preCDF_atBot_zero + theorem ProbabilityTheory.tendsto_preCDF_atTop_one - theorem ProbabilityTheory.tendsto_preCdf_atBot_zero - theorem ProbabilityTheory.tendsto_preCdf_atTop_one + theorem ProbabilityTheory.withDensity_preCDF - theorem ProbabilityTheory.withDensity_preCdf Modified Mathlib/Probability/Kernel/Disintegration.lean 2024-01-16 09:52:10 be8dd31 feat(Topology/Basic): generalize to Sort*, add versions (#9753) - Generalize `interior_iInter_of_finite` and `closure_iUnion_of_finite` to functions from `Sort*`. - Add `Set.Finite.interior_biInter`, `Set.Finite.interior_sInter`, `Set.Finite.closure_biUnion`, and `Set.Finite.closure_sUnion`. - Move `closure_eq_compl_interior_compl` up to golf. ESTIMATED CHANGES Modified Mathlib/Topology/Basic.lean + theorem Set.Finite.closure_biUnion + theorem Set.Finite.closure_sUnion + theorem Set.Finite.interior_biInter + theorem Set.Finite.interior_sInter +/- theorem closure_iUnion_of_finite +/- theorem closure_union +/- theorem interior_iInter_of_finite 2024-01-16 07:51:19 b4cd313 feat(MeasureTheory/Function/StronglyMeasurable): pow lemmas (#9489) This also adds some missing `to_additive`s for `vadd`. ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Function/SimpleFunc.lean Modified Mathlib/MeasureTheory/Function/StronglyMeasurable/Basic.lean Modified Mathlib/Order/Filter/Basic.lean - theorem Filter.EventuallyEq.const_smul + theorem Filter.EventuallyEq.pow_const 2024-01-16 07:51:18 d5ec07c refactor(LinearAlgebra/SesquilinearForm): Sesquilinear Maps (#9312) 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. ESTIMATED CHANGES Modified Mathlib/Analysis/InnerProductSpace/Symmetric.lean Modified Mathlib/LinearAlgebra/SesquilinearForm.lean +/- def LinearMap.IsAlt +/- def LinearMap.IsOrtho +/- theorem LinearMap.IsOrthoᵢ.nondegenerate_of_not_isOrtho_basis_self +/- theorem LinearMap.IsOrthoᵢ.separatingLeft_of_not_isOrtho_basis_self +/- theorem LinearMap.IsOrthoᵢ.separatingRight_iff_not_isOrtho_basis_self +/- def LinearMap.IsOrthoᵢ +/- theorem LinearMap.IsRefl.nondegenerate_of_separatingLeft +/- theorem LinearMap.IsRefl.nondegenerate_of_separatingRight +/- def LinearMap.IsRefl +/- def LinearMap.Nondegenerate +/- theorem LinearMap.SeparatingLeft.ne_zero +/- def LinearMap.SeparatingLeft +/- def LinearMap.SeparatingRight +/- theorem LinearMap.flip_nondegenerate +/- theorem LinearMap.flip_separatingLeft +/- theorem LinearMap.flip_separatingRight +/- theorem LinearMap.isOrtho_def +/- theorem LinearMap.isOrtho_flip +/- theorem LinearMap.isOrtho_zero_left +/- theorem LinearMap.isOrtho_zero_right +/- theorem LinearMap.isOrthoᵢ_def +/- theorem LinearMap.isOrthoᵢ_flip +/- theorem LinearMap.linearIndependent_of_isOrthoᵢ +/- theorem LinearMap.nondegenerateRestrictOfDisjointOrthogonal +/- theorem LinearMap.not_separatingLeft_zero +/- theorem LinearMap.ortho_smul_left +/- theorem LinearMap.ortho_smul_right +/- theorem LinearMap.orthogonal_span_singleton_eq_to_lin_ker +/- theorem LinearMap.separatingLeft_iff_ker_eq_bot +/- theorem LinearMap.separatingLeft_iff_linear_nontrivial +/- theorem LinearMap.separatingRight_iff_flip_ker_eq_bot +/- theorem LinearMap.separatingRight_iff_linear_flip_nontrivial +/- theorem LinearMap.span_singleton_inf_orthogonal_eq_bot +/- def Submodule.orthogonalBilin 2024-01-16 07:13:58 25e096f feat(MeasureTheory): generalize some theorem to `Sort*` (#9769) 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). ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Group/FundamentalDomain.lean Modified Mathlib/MeasureTheory/Measure/MeasureSpaceDef.lean +/- theorem MeasureTheory.ae_all_iff +/- theorem MeasureTheory.ae_ball_iff +/- theorem MeasureTheory.all_ae_of +/- theorem MeasureTheory.exists_measurable_superset_forall_eq +/- theorem MeasureTheory.exists_measure_pos_of_not_measure_iUnion_null +/- theorem MeasureTheory.measure_biUnion_null_iff +/- theorem MeasureTheory.measure_iUnion_null Modified Mathlib/MeasureTheory/Measure/OuterMeasure.lean - theorem MeasureTheory.OuterMeasure.iUnion_null +/- theorem MeasureTheory.OuterMeasure.iUnion_null_iff 2024-01-16 06:00:45 3b8ce03 feat: instances of `NonUnital(Semi)NormedCommRing` (#8665) 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 ESTIMATED CHANGES Modified Mathlib/Analysis/Normed/Field/Basic.lean Modified Mathlib/Topology/ContinuousFunction/ZeroAtInfty.lean 2024-01-16 04:46:42 30030d8 chore: use omega in decreasing_by proofs (#9688) ESTIMATED CHANGES Modified Mathlib/Combinatorics/Catalan.lean Modified Mathlib/Computability/PartrecCode.lean Modified Mathlib/Data/List/Defs.lean Modified Mathlib/Data/Multiset/Basic.lean Modified Mathlib/Data/Nat/Cast/Defs.lean Modified Mathlib/GroupTheory/CommutingProbability.lean 2024-01-16 04:25:51 0b93433 chore(Fintype/Order): generalize Fintype to Finite in Directed lemmas (#9754) ESTIMATED CHANGES Modified Mathlib/Analysis/NormedSpace/PiLp.lean Modified Mathlib/Data/Fintype/Order.lean + theorem Directed.finite_le + theorem Directed.finite_set_le - theorem Directed.fintype_le + theorem Finite.bddAbove_range + theorem Finite.bddBelow_range + theorem Finite.exists_ge + theorem Finite.exists_le - theorem Fintype.bddAbove_range - theorem Fintype.bddBelow_range - theorem Fintype.exists_ge - theorem Fintype.exists_le + theorem Set.Finite.exists_ge + theorem Set.Finite.exists_le Modified Mathlib/ModelTheory/DirectLimit.lean 2024-01-16 02:11:36 87c1036 chore(Function): rename some lemmas (#9738) - Merge `Function.left_id` and `Function.comp.left_id` into `Function.id_comp`. - Merge `Function.right_id` and `Function.comp.right_id` into `Function.comp_id`. - Merge `Function.comp_const_right` and `Function.comp_const` into `Function.comp_const`, use explicit arguments. - Move `Function.const_comp` to `Mathlib.Init.Function`, use explicit arguments. ESTIMATED CHANGES Modified Mathlib/Algebra/Category/ModuleCat/Free.lean Modified Mathlib/Algebra/Order/Rearrangement.lean Modified Mathlib/Analysis/BoundedVariation.lean Modified Mathlib/Analysis/Calculus/ContDiff/FiniteDimension.lean Modified Mathlib/Analysis/Calculus/IteratedDeriv.lean Modified Mathlib/Analysis/Calculus/Rademacher.lean Modified Mathlib/Analysis/Convex/Intrinsic.lean Modified Mathlib/Analysis/NormedSpace/FiniteDimension.lean Modified Mathlib/Analysis/NormedSpace/Multilinear/Curry.lean Modified Mathlib/Analysis/SpecialFunctions/Complex/Arg.lean Modified Mathlib/Analysis/SpecialFunctions/Log/NegMulLog.lean Modified Mathlib/CategoryTheory/Monad/Types.lean Modified Mathlib/Data/Fin/Tuple/Sort.lean Modified Mathlib/Data/Finset/Lattice.lean Modified Mathlib/Data/List/FinRange.lean Modified Mathlib/Data/Matrix/Basic.lean Modified Mathlib/Data/Multiset/Basic.lean Modified Mathlib/Data/MvPolynomial/Monad.lean Modified Mathlib/Data/Nat/Parity.lean Modified Mathlib/Data/QPF/Multivariate/Constructions/Cofix.lean Modified Mathlib/Dynamics/Ergodic/Ergodic.lean Modified Mathlib/Geometry/Manifold/ContMDiff/Defs.lean Modified Mathlib/Geometry/Manifold/SmoothManifoldWithCorners.lean Modified Mathlib/Init/Function.lean - theorem Function.comp.left_id - theorem Function.comp.right_id + theorem Function.comp_const - theorem Function.comp_const_right + theorem Function.comp_id + theorem Function.const_comp + theorem Function.id_comp - theorem Function.left_id - theorem Function.right_id Modified Mathlib/LinearAlgebra/Determinant.lean Modified Mathlib/LinearAlgebra/LinearIndependent.lean Modified Mathlib/LinearAlgebra/Matrix/Basis.lean Modified Mathlib/LinearAlgebra/Matrix/Block.lean Modified Mathlib/Logic/Equiv/Basic.lean Modified Mathlib/Logic/Function/Basic.lean - theorem Function.comp_const - theorem Function.const_comp Modified Mathlib/Logic/Function/Iterate.lean Modified Mathlib/ModelTheory/Basic.lean Modified Mathlib/ModelTheory/Definability.lean Modified Mathlib/ModelTheory/ElementaryMaps.lean Modified Mathlib/ModelTheory/Semantics.lean Modified Mathlib/Order/CompactlyGenerated.lean Modified Mathlib/Order/Partition/Finpartition.lean Modified Mathlib/RingTheory/AlgebraicIndependent.lean Modified Mathlib/RingTheory/Finiteness.lean Modified Mathlib/Topology/Category/CompHaus/Projective.lean Modified Mathlib/Topology/Category/Profinite/Projective.lean Modified Mathlib/Topology/ExtremallyDisconnected.lean Modified Mathlib/Topology/Homeomorph.lean Modified Mathlib/Topology/LocallyConstant/Basic.lean 2024-01-16 02:11:35 d3bb429 chore(CategoryTheory/Sites): universe polymorphic `EqualizerCondition` (#9729) Removes unnecessarily restrictive explicit universes ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Sites/RegularExtensive.lean +/- theorem CategoryTheory.regularCoverage.EqualizerCondition.isSheaf_iff +/- def CategoryTheory.regularCoverage.EqualizerCondition +/- def CategoryTheory.regularCoverage.MapToEqualizer +/- theorem CategoryTheory.regularCoverage.equalizerCondition_of_regular +/- theorem CategoryTheory.regularCoverage.isSheaf_of_projective 2024-01-16 00:56:23 b47d330 chore: replace SubgroupClass.inv by InvMemClass.inv (#9761) ESTIMATED CHANGES Modified Mathlib/Algebra/Module/Submodule/Basic.lean Modified Mathlib/Algebra/Module/Zlattice.lean Modified Mathlib/Analysis/Convex/Cone/Extension.lean Modified Mathlib/Data/Complex/Module.lean Modified Mathlib/GroupTheory/DoubleCoset.lean Modified Mathlib/GroupTheory/Subgroup/Basic.lean + theorem InvMemClass.coe_inv - theorem SubgroupClass.coe_inv 2024-01-16 00:56:22 4d0b750 chore: add `importGraph` to cache’s getPackageDirs (#9760) fixes https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/Imports.20are.20out.20of.20date.20even.20after.20getting.20cache.2E/near/412772807 and https://github.com/nomeata/loogle/issues/12 ESTIMATED CHANGES Modified Cache/IO.lean 2024-01-16 00:56:21 6f11276 feat: minimize requirements for inv/neg on C(X, Y) (#9758) ESTIMATED CHANGES Modified Mathlib/Topology/ContinuousFunction/Algebra.lean +/- theorem ContinuousMap.coe_inv +/- theorem ContinuousMap.inv_apply +/- theorem ContinuousMap.inv_comp 2024-01-15 23:25:59 8be6a42 chore(Init/Function): deprecate 3 definitions (#9735) Deprecate `Function.compLeft`, `Function.compRight`, and `Function.combine`. None of them are used anywhere in Mathlib, and for the first two it's easier to use `(· ∘ f)` or `(f ∘ ·)`. Also move notation ` on ` closer to the definition of `Function.onFun`. ESTIMATED CHANGES Modified Mathlib/Init/Function.lean 2024-01-15 21:28:01 137ab0b chore: gather results about `Submodule.restrictScalars` into new file (#9765) This is a straight copy-paste: there are no new lemmas and nothing has been removed or renamed. The only changes are a few lemmas where argument explicitness or ordering has changed (and where it did not seem to make sense to replicate the old argument explicitness or ordering). ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Algebra/Basic.lean Modified Mathlib/Algebra/Module/Submodule/Basic.lean - theorem Submodule.coe_restrictScalars - def Submodule.restrictScalars - def Submodule.restrictScalarsEmbedding - theorem Submodule.restrictScalars_inj - theorem Submodule.restrictScalars_injective - theorem Submodule.restrictScalars_mem - theorem Submodule.restrictScalars_self Modified Mathlib/Algebra/Module/Submodule/Lattice.lean - theorem Submodule.restrictScalars_bot - theorem Submodule.restrictScalars_eq_bot_iff - theorem Submodule.restrictScalars_eq_top_iff - theorem Submodule.restrictScalars_top Modified Mathlib/Algebra/Module/Submodule/LinearMap.lean - def Submodule.restrictScalarsEquiv Added Mathlib/Algebra/Module/Submodule/RestrictScalars.lean + theorem Submodule.coe_restrictScalars + def Submodule.restrictScalars + def Submodule.restrictScalarsEmbedding + def Submodule.restrictScalarsEquiv + theorem Submodule.restrictScalars_bot + theorem Submodule.restrictScalars_eq_bot_iff + theorem Submodule.restrictScalars_eq_top_iff + theorem Submodule.restrictScalars_inj + theorem Submodule.restrictScalars_injective + theorem Submodule.restrictScalars_mem + theorem Submodule.restrictScalars_self + theorem Submodule.restrictScalars_top + theorem Submodule.toAddSubmonoid_restrictScalars Modified Mathlib/LinearAlgebra/Span.lean Modified Mathlib/RingTheory/Kaehler.lean 2024-01-15 20:25:32 9007a3c feat: add StarMemClass.coe_star (#9762) ESTIMATED CHANGES Modified Mathlib/Algebra/Star/Basic.lean + theorem StarMemClass.coe_star 2024-01-15 19:14:07 6e66ddc feat: add `equivMap[OfInjective]` for subalgebra and intermediate field (#9709) ... parallel to `Subring.equivMapOfInjective`, `Subsemiring.equivMapOfInjective`, etc. etc. ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/Subalgebra/Basic.lean + theorem Subalgebra.coe_equivMapOfInjective_apply + theorem Subalgebra.range_comp_val Modified Mathlib/FieldTheory/Adjoin.lean + theorem IntermediateField.coe_equivMap_apply + theorem IntermediateField.fieldRange_comp_val Modified Mathlib/FieldTheory/IntermediateField.lean 2024-01-15 18:48:36 42d8e66 chore: move Geometry/Manifold/MFDeriv (#9588) To preserve most git history when splitting the file in #9565. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Analysis/Complex/UpperHalfPlane/Manifold.lean Modified Mathlib/Geometry/Manifold/Complex.lean Modified Mathlib/Geometry/Manifold/ContMDiffMFDeriv.lean Modified Mathlib/Geometry/Manifold/Diffeomorph.lean Modified Mathlib/Geometry/Manifold/Instances/Sphere.lean Modified Mathlib/Geometry/Manifold/IntegralCurve.lean Renamed Mathlib/Geometry/Manifold/MFDeriv.lean to Mathlib/Geometry/Manifold/MFDeriv/Basic.lean Modified Mathlib/Geometry/Manifold/VectorBundle/SmoothSection.lean 2024-01-15 17:35:39 8bb342a chore(Data/Set/Lattice): use named arguments more. (#9759) It's nicer to read than writing `@foo _ _ _`. ESTIMATED CHANGES Modified Mathlib/Data/Set/Lattice.lean 2024-01-15 16:44:02 b1ff86d feat: three tiny homeomorph lemmas (#9166) ESTIMATED CHANGES Modified Mathlib/Topology/Algebra/Group/Basic.lean + theorem Homeomorph.coe_inv Modified Mathlib/Topology/Homeomorph.lean + theorem Homeomorph.image_compl + theorem Homeomorph.map_punctured_nhds_eq 2024-01-15 16:06:25 d8dff07 feat(AlgebraicTopology): generalize universes for the standard simplex (#9631) The PR generalizes universes for `standardSimplex`, which is now a functor `SimplexCategory ⥤ SSet.{u}` for any universe `u`. ESTIMATED CHANGES Modified Mathlib/AlgebraicTopology/ExtraDegeneracy.lean Modified Mathlib/AlgebraicTopology/Quasicategory.lean Modified Mathlib/AlgebraicTopology/SimplicialSet.lean +/- def SSet.boundary +/- def SSet.horn.face + theorem SSet.standardSimplex.coe_edge_down_toOrderHom - theorem SSet.standardSimplex.coe_edge_toOrderHom + theorem SSet.standardSimplex.coe_triangle_down_toOrderHom - theorem SSet.standardSimplex.coe_triangle_toOrderHom + theorem SSet.standardSimplex.const_down_toOrderHom - theorem SSet.standardSimplex.const_toOrderHom + theorem SSet.standardSimplex.map_apply + theorem SSet.standardSimplex.map_id + def SSet.standardSimplex.objEquiv +/- def SSet.standardSimplex + def SSet.uliftFunctor + def SSet.yonedaEquiv Modified Mathlib/AlgebraicTopology/SingularSet.lean Modified Mathlib/CategoryTheory/Yoneda.lean + def CategoryTheory.yonedaCompUliftFunctorEquiv 2024-01-15 14:51:48 18cc8db `Matrix.dotProduct` inequalities (#9652) ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/Matrix/DotProduct.lean + theorem Matrix.dotProduct_le_dotProduct_of_nonneg_left + theorem Matrix.dotProduct_le_dotProduct_of_nonneg_right + theorem Matrix.dotProduct_nonneg_of_nonneg 2024-01-15 11:29:49 5964134 refactor: make `SimpleGraph.chromaticNumber` be `ENat`-valued (#8883) This removes an awkwardness of the API, where theorems had to include colorability hypotheses. This trades that awkwardness for a smaller one, which is that one writes `G.Colorable (ENat.toNat G.chromaticNumber)` rather than `G.Colorable G.chromaticNumber`. It would be good to have a followup refactoring PR to more carefully evaluate the API after this change. ESTIMATED CHANGES Modified Mathlib/Combinatorics/SimpleGraph/Coloring.lean + theorem SimpleGraph.Colorable.chromaticNumber_eq_sInf + theorem SimpleGraph.Colorable.chromaticNumber_le - theorem SimpleGraph.Colorable.chromaticNumber_le_of_forall_imp - theorem SimpleGraph.Colorable.chromaticNumber_mono - theorem SimpleGraph.Colorable.chromaticNumber_mono_of_embedding + theorem SimpleGraph.Coloring.colorable - theorem SimpleGraph.Coloring.to_colorable +/- theorem SimpleGraph.IsClique.card_le_chromaticNumber + theorem SimpleGraph.chromaticNumber_eq_biInf + theorem SimpleGraph.chromaticNumber_eq_iInf + theorem SimpleGraph.chromaticNumber_le_iff_colorable - theorem SimpleGraph.chromaticNumber_le_of_colorable + theorem SimpleGraph.chromaticNumber_le_of_forall_imp + theorem SimpleGraph.chromaticNumber_mono + theorem SimpleGraph.chromaticNumber_mono_of_embedding + theorem SimpleGraph.chromaticNumber_ne_top_iff_exists + theorem SimpleGraph.chromaticNumber_top_eq_top_of_infinite - theorem SimpleGraph.chromaticNumber_top_eq_zero_of_infinite +/- theorem SimpleGraph.cliqueFree_of_chromaticNumber_lt +/- theorem SimpleGraph.colorable_chromaticNumber + theorem SimpleGraph.colorable_of_chromaticNumber_ne_top - theorem SimpleGraph.colorable_of_chromaticNumber_pos Modified Mathlib/Combinatorics/SimpleGraph/ConcreteColorings.lean Modified Mathlib/Combinatorics/SimpleGraph/Partition.lean + theorem SimpleGraph.Partition.colorable - theorem SimpleGraph.Partition.to_colorable 2024-01-15 09:55:31 5bd823a feat: Group presentations of isomorphic types are isomorphic. (#9403) ESTIMATED CHANGES Modified Mathlib/GroupTheory/PresentedGroup.lean + def PresentedGroup.equivPresentedGroup + theorem PresentedGroup.equivPresentedGroup_apply_of + theorem PresentedGroup.equivPresentedGroup_symm_apply_of 2024-01-15 08:55:13 5623d92 fix: check stderr again in cache (#9752) This reverts #9434, which itself was a revert of #9419. We use `--no-progress-meter` to avoid the issue with progress bars causing a failure, but we still want to see error reports. The failure message is also made clearer to avoid the `uncaught exception:` issue showing up in [recent builds](https://github.com/leanprover-community/mathlib4/actions/runs/7524334618/job/20478989708#step:17:4161). ESTIMATED CHANGES Modified .github/workflows/bors.yml Modified .github/workflows/build.yml Modified .github/workflows/build.yml.in Modified .github/workflows/build_fork.yml Modified Cache/IO.lean +/- def Cache.IO.runCmd +/- def Cache.IO.runCurl Modified Cache/Requests.lean 2024-01-15 00:29:26 1d3b479 fix: shake the import tree (#9749) cherry-picked from #9347 Co-Authored-By: @digama0 ESTIMATED CHANGES Modified Mathlib/Algebra/ContinuedFractions/Computation/Approximations.lean Modified Mathlib/Algebra/Group/Defs.lean Modified Mathlib/Algebra/Order/Field/Pi.lean Modified Mathlib/Algebra/Order/Floor.lean Modified Mathlib/Algebra/Order/Sub/Prod.lean Modified Mathlib/Analysis/BoxIntegral/Basic.lean Modified Mathlib/Analysis/SpecificLimits/IsROrC.lean Modified Mathlib/CategoryTheory/Abelian/Projective.lean Modified Mathlib/CategoryTheory/Preadditive/Yoneda/Projective.lean Modified Mathlib/Combinatorics/Additive/PluenneckeRuzsa.lean Modified Mathlib/Computability/Ackermann.lean Modified Mathlib/Control/Monad/Basic.lean Modified Mathlib/Data/Array/Basic.lean Modified Mathlib/Data/Finset/Pointwise/Interval.lean Modified Mathlib/Data/Fintype/Small.lean Modified Mathlib/Data/Nat/Choose/Bounds.lean Modified Mathlib/Data/Nat/Factorization/Basic.lean Modified Mathlib/Data/Num/Basic.lean Modified Mathlib/Data/Polynomial/Degree/CardPowDegree.lean Modified Mathlib/Data/Real/ENNReal.lean Modified Mathlib/Data/Set/Basic.lean Modified Mathlib/Data/UnionFind.lean Modified Mathlib/Init/Control/Lawful.lean +/- theorem OptionT.ext Modified Mathlib/Init/Data/Int/Basic.lean Modified Mathlib/Init/Data/Int/Bitwise.lean Modified Mathlib/Init/Data/Int/CompLemmas.lean Modified Mathlib/Init/Data/Nat/GCD.lean Modified Mathlib/Init/IteSimp.lean Modified Mathlib/Init/Meta/WellFoundedTactics.lean Modified Mathlib/Lean/Elab/Term.lean Modified Mathlib/NumberTheory/LucasLehmer.lean Modified Mathlib/NumberTheory/Multiplicity.lean Modified Mathlib/NumberTheory/PellMatiyasevic.lean Modified Mathlib/NumberTheory/PythagoreanTriples.lean Modified Mathlib/Probability/Distributions/Gaussian.lean Modified Mathlib/Probability/Distributions/Poisson.lean Modified Mathlib/Probability/Notation.lean Modified Mathlib/RingTheory/QuotientNoetherian.lean Modified Mathlib/RingTheory/Valuation/Basic.lean Modified Mathlib/Tactic/Attr/Register.lean Modified Mathlib/Tactic/Continuity.lean Modified Mathlib/Tactic/Existsi.lean Modified Mathlib/Tactic/HigherOrder.lean Modified Mathlib/Tactic/Linarith/Lemmas.lean Modified Mathlib/Tactic/ReduceModChar/Ext.lean Modified Mathlib/Topology/Algebra/Semigroup.lean Modified Mathlib/Topology/Category/Profinite/Nobeling.lean Modified Mathlib/Topology/LocalExtr.lean Modified Mathlib/Topology/Support.lean Modified Mathlib/Topology/UniformSpace/Basic.lean 2024-01-15 00:29:25 e349524 feat: add `lake exe shake` tree shaking tool (#9346) This adds the `lake exe shake` command, which will check that every import is used in some constant. This has some known false positives because dependencies on notations and tactics are not tracked, so the `noshake.json` file is used to indicate that a file should always be treated as used, or that specific imports in specific files are treated as used. ESTIMATED CHANGES Modified .github/workflows/bors.yml Modified .github/workflows/build.yml Modified .github/workflows/build.yml.in Modified .github/workflows/build_fork.yml Added Shake/Main.lean + structure Args + def Edits.add + def Edits.remove + def Edits + structure ShakeCfg + structure State + def calcNeeds + def help + def main + def toBitset + def visitModule Modified lakefile.lean Added scripts/noshake.json 2024-01-14 18:19:42 3b81a54 chore: cleanup spaces (#9745) ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Module/Defs.lean Modified Mathlib/Analysis/NormedSpace/Star/Multiplier.lean Modified Mathlib/CategoryTheory/Abelian/ProjectiveResolution.lean Modified Mathlib/CategoryTheory/Pi/Basic.lean Modified Mathlib/Data/Matroid/Dual.lean Modified Mathlib/Data/Matroid/IndepAxioms.lean Modified Mathlib/Data/Nat/Digits.lean Modified Mathlib/Data/Nat/Factorial/SuperFactorial.lean Modified Mathlib/Data/Set/Card.lean Modified Mathlib/Data/Sum/Interval.lean Modified Mathlib/LinearAlgebra/BilinearForm/Properties.lean Modified Mathlib/LinearAlgebra/QuadraticForm/Basic.lean Modified Mathlib/Order/RelSeries.lean Modified Mathlib/RingTheory/Ideal/Norm.lean Modified Mathlib/RingTheory/Ideal/QuotientOperations.lean Modified Mathlib/Tactic/Ring/Basic.lean Modified Mathlib/Topology/PartialHomeomorph.lean Modified Mathlib/Topology/UniformSpace/Basic.lean 2024-01-14 18:19:41 6dd549b feat: action on `UniformOnFun` is uniformly continuous (#9714) - add `UniformInducing.uniformContinuousConstSMul` and its additive version; - use it to prove that the pointwise actions on `α →ᵤ X` and `α →ᵤ[𝔖] X` are uniformly continuous; - use the latter facts to prove that the pointwise action on `E →SL[σ] F` is uniformly continuous; - make `M` explicit in `ContinuousLinearMap.strongTopology.continuousConstSMul`, drop unneeded arguments. ESTIMATED CHANGES Modified Mathlib/Topology/Algebra/Module/StrongTopology.lean +/- theorem ContinuousLinearMap.strongTopology.continuousConstSMul + theorem ContinuousLinearMap.strongTopology.uniformContinuousConstSMul Modified Mathlib/Topology/Algebra/UniformConvergence.lean Modified Mathlib/Topology/Algebra/UniformMulAction.lean + theorem UniformInducing.uniformContinuousConstSMul 2024-01-14 17:10:35 a2fd24f feat(Finset/{NAry,Pointwise}): add lemmas about `Finset.sup` etc (#8950) ESTIMATED CHANGES Modified Mathlib/Data/Finset/Image.lean Modified Mathlib/Data/Finset/Lattice.lean +/- theorem Finset.inf'_product_left +/- theorem Finset.inf'_product_right +/- theorem Finset.sup'_product_left +/- theorem Finset.sup'_product_right Modified Mathlib/Data/Finset/NAry.lean + theorem Finset.inf'_image₂_left + theorem Finset.inf'_image₂_right + theorem Finset.inf_image₂_left + theorem Finset.inf_image₂_right + theorem Finset.le_inf'_image₂ + theorem Finset.le_inf_image₂ + theorem Finset.sup'_image₂_le + theorem Finset.sup'_image₂_left + theorem Finset.sup'_image₂_right + theorem Finset.sup_image₂_le + theorem Finset.sup_image₂_left + theorem Finset.sup_image₂_right Modified Mathlib/Data/Finset/Pointwise.lean +/- def Finset.imageOneHom + theorem Finset.inf'_inv + theorem Finset.inf'_one + theorem Finset.inf_div_left + theorem Finset.inf_div_right + theorem Finset.inf_inv + theorem Finset.inf_mul_left + theorem Finset.inf_mul_right + theorem Finset.inf_one + theorem Finset.le_inf_div + theorem Finset.le_inf_mul + theorem Finset.max'_one + theorem Finset.max_one + theorem Finset.min'_one + theorem Finset.min_one + theorem Finset.sup'_inv + theorem Finset.sup'_one + theorem Finset.sup_div_le + theorem Finset.sup_div_left + theorem Finset.sup_div_right + theorem Finset.sup_inv + theorem Finset.sup_mul_le + theorem Finset.sup_mul_left + theorem Finset.sup_mul_right + theorem Finset.sup_one 2024-01-14 16:43:05 f03d073 chore: Delete `noncomm_ring` syntax stub (#9743) This was accidentally left behind when `noncomm_ring` was implemented. ESTIMATED CHANGES Modified Mathlib/Mathport/Syntax.lean 2024-01-14 15:42:35 716dfd4 feat: Lemmas relating `Polynomial.eraseLead` and `nextCoeff`. (#9083) Some little theorems relating `eraseLead` and `nextCoeff` to each other. Also includes `monomial_sub` and `card_support_mul` which could be of independent interest. ESTIMATED CHANGES Modified Mathlib/Data/Nat/SuccPred.lean + theorem Nat.le_succ_iff_eq_or_le Modified Mathlib/Data/Polynomial/Basic.lean + theorem Polynomial.monomial_sub Modified Mathlib/Data/Polynomial/Coeff.lean + theorem Polynomial.card_support_mul_le +/- theorem Polynomial.isRegular_X +/- theorem Polynomial.isRegular_X_pow Modified Mathlib/Data/Polynomial/Degree/Definitions.lean + theorem Polynomial.natDegree_eq_zero + theorem Polynomial.natDegree_le_pred + theorem Polynomial.nextCoeff_eq_zero + theorem Polynomial.nextCoeff_ne_zero + theorem Polynomial.nextCoeff_of_natDegree_pos - theorem Polynomial.nextCoeff_of_pos_natDegree Modified Mathlib/Data/Polynomial/Degree/Lemmas.lean + theorem Polynomial.natDegree_eq_one + theorem Polynomial.natDegree_pos_of_nextCoeff_ne_zero + theorem Polynomial.nextCoeff_C_mul_X_add_C Modified Mathlib/Data/Polynomial/EraseLead.lean + theorem Polynomial.card_support_eq_one_of_eraseLead_eq_zero + theorem Polynomial.card_support_eraseLead' + theorem Polynomial.card_support_eraseLead + theorem Polynomial.card_support_eraseLead_add_one + theorem Polynomial.card_support_le_one_of_eraseLead_eq_zero + theorem Polynomial.eraseLead_C_mul_X - theorem Polynomial.eraseLead_card_support' - theorem Polynomial.eraseLead_card_support + theorem Polynomial.leadingCoeff_eraseLead_eq_nextCoeff + theorem Polynomial.natDegree_eraseLead + theorem Polynomial.natDegree_eraseLead_add_one + theorem Polynomial.natDegree_eraseLead_le_of_nextCoeff_eq_zero + theorem Polynomial.natDegree_pos_of_eraseLead_ne_zero + theorem Polynomial.nextCoeff_eq_zero_of_eraseLead_eq_zero + theorem Polynomial.two_le_natDegree_of_nextCoeff_eraseLead Modified Mathlib/RingTheory/Trace.lean Modified test/RewriteSearch/Polynomial.lean 2024-01-14 13:30:51 241edd4 chore: reduce heartbeats variation in FilteredColimitCommutesFiniteLimit (#9732) Per discussion at [zulip](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/noisy.20.60FilteredColimitCommutesFiniteLimit.60/near/412771369). This proof has been showing up spuriously in benchmark results. This change reduces the heartbeats variance from around 25% to around 5%. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Limits/FilteredColimitCommutesFiniteLimit.lean 2024-01-14 13:30:50 21a2343 fix(Condensed): remove unnecessary `Precoherent` assumption (#9730) ESTIMATED CHANGES Modified Mathlib/Condensed/Explicit.lean 2024-01-14 13:30:49 7bffe36 feat(CategoryTheory/SingleObj): construct equivalence of `SingleObj` categories from a monoid isomorphism (#9699) Construct `SingleObj M ≌ SingleObj N` from `M ≃* N`. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/SingleObj.lean + def MulEquiv.toSingleObjEquiv 2024-01-14 12:14:34 65ced9a feat: isUnit_iff_eq_one (#9706) From flt-regular. Also move the related `units_eq_one` nearby. ESTIMATED CHANGES Modified Mathlib/Algebra/Associated.lean - theorem units_eq_one Modified Mathlib/Algebra/Group/Units.lean + theorem isUnit_iff_eq_one + theorem units_eq_one 2024-01-14 05:39:16 350879f feat: add `Inducing.continuousSMul` (#9713) - add `Inducing.continuousSMul` and `Inducing.continuousVAdd`; - use it to golf `Units.continuousSMul` and `Inducing.continuousMul`; - generalize `Submonoid.continuousSMul` from a submonoid of a group to a submonoid of a monoid; - reuse `Submonoid.continuousSMul` in `Subgroup.continuousSMul`. ESTIMATED CHANGES Modified Mathlib/Topology/Algebra/Algebra.lean Modified Mathlib/Topology/Algebra/Module/Basic.lean +/- theorem continuousSMul_induced Modified Mathlib/Topology/Algebra/Module/FiniteDimension.lean Modified Mathlib/Topology/Algebra/Monoid.lean Modified Mathlib/Topology/Algebra/MulAction.lean + theorem Inducing.continuousSMul Modified Mathlib/Topology/Algebra/StarSubalgebra.lean 2024-01-14 01:19:45 b12f3da chore(LocallyConvex/Bounded): rename a lemma (#9712) Rename `Filter.HasBasis.isVonNBounded_basis_iff` to `Filter.HasBasis.isVonNBounded_iff`. It already has `basis` in the namespace. ESTIMATED CHANGES Modified Mathlib/Analysis/LocallyConvex/Bounded.lean - theorem Filter.HasBasis.isVonNBounded_basis_iff + theorem Filter.HasBasis.isVonNBounded_iff Modified Mathlib/Analysis/LocallyConvex/WithSeminorms.lean 2024-01-14 01:19:44 b40e996 chore(CompactOpen): move 2 sets to `variable`s (#9678) Also fix name in the module docs. ESTIMATED CHANGES Modified Mathlib/Topology/CompactOpen.lean +/- theorem ContinuousMap.eventually_mapsTo +/- theorem ContinuousMap.isClopen_setOf_mapsTo +/- theorem ContinuousMap.isOpen_setOf_mapsTo +/- theorem ContinuousMap.tendsto_nhds_compactOpen 2024-01-14 00:16:30 d73146f fix(Subsemigroup/Operations): fix types (#9716) Fix theorem statements of `AddSubsemigroup.toSubsemigroup'_closure` and `Subsemigroup.toAddSubsemigroup'_closure`. ESTIMATED CHANGES Modified Mathlib/GroupTheory/Subsemigroup/Operations.lean 2024-01-13 22:34:11 ebe630d feat: add basic API lemmas for `BddAbove (range f)` and `BddBelow (range f)` (#9472) This PR adds some basic API lemmas for `BddAbove (range f)` (resp `BddBelow`). This is a ubiquitous side condition when working with `iInf`/`iSup` in conditionally complete lattices, so I think it's worth having. ESTIMATED CHANGES Modified Mathlib/Algebra/Bounds.lean + theorem BddAbove.range_inv + theorem BddAbove.range_mul + theorem BddBelow.range_inv + theorem BddBelow.range_mul +/- theorem ciInf_div +/- theorem ciInf_mul +/- theorem ciSup_div +/- theorem ciSup_mul +/- theorem mul_ciInf +/- theorem mul_ciSup Modified Mathlib/Order/Bounds/Basic.lean + theorem BddAbove.range_comp + theorem BddAbove.range_mono + theorem BddBelow.range_comp + theorem BddBelow.range_mono 2024-01-13 20:57:15 ba19db4 feat: local graph operations (#9267) ESTIMATED CHANGES Modified Mathlib/Combinatorics/SimpleGraph/Clique.lean - theorem SimpleGraph.cliqueFree_of_replaceVertex_cliqueFree Modified Mathlib/Combinatorics/SimpleGraph/Operations.lean + def SimpleGraph.addEdge + theorem SimpleGraph.addEdge_of_adj + theorem SimpleGraph.addEdge_self + theorem SimpleGraph.card_edgeFinset_addEdge + theorem SimpleGraph.card_edgeFinset_replaceVertex_of_adj + theorem SimpleGraph.card_edgeFinset_replaceVertex_of_not_adj + theorem SimpleGraph.disjoint_sdiff_neighborFinset_image + theorem SimpleGraph.edgeFinset_addEdge + theorem SimpleGraph.edgeFinset_replaceVertex_of_adj + theorem SimpleGraph.edgeFinset_replaceVertex_of_not_adj + theorem SimpleGraph.edgeSet_replaceVertex_of_adj + theorem SimpleGraph.edgeSet_replaceVertex_of_not_adj +/- theorem SimpleGraph.not_adj_replaceVertex_same + def SimpleGraph.replaceVertex +/- theorem SimpleGraph.replaceVertex_self 2024-01-13 16:56:24 152f2d2 feat(Order.Bounds): add prod versions of some pi lemmas (#9690) ESTIMATED CHANGES Modified Mathlib/Order/Bounds/Basic.lean + theorem bddAbove_prod + theorem bddAbove_range_prod + theorem bddBelow_prod + theorem bddBelow_range_prod 2024-01-13 16:19:16 671cf1e fix(VitaliFamily): fix field names (#9723) Rename `VitaliFamily.MeasurableSet'` → `VitaliFamily.measurableSet` and `VitaliFamily.Nontrivial` → `VitaliFamily.nontrivial`. Also add docstrings. ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Covering/Besicovitch.lean Modified Mathlib/MeasureTheory/Covering/Vitali.lean Modified Mathlib/MeasureTheory/Covering/VitaliFamily.lean 2024-01-13 15:06:34 82e1d3a feat(CategoryTheory): sheafification over essentially small sites (#9523) This PR provides the necessary API to sheafify over large but essentially small categories. - Given an equivalence of categories and a Grothendieck topology on one of them, we transport the topology along the equivalence and prove that the sheaf categories are equivalent. - We prove that the property `HasSheafify` transports over the equivalence of sheaf categories mentioned above, and same for the property `HasSheafCompose`  - We also add instances for the existence of small limits on sheaf categories on essentially small sites. - [x] depends on: #9012 ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Sites/Equivalence.lean + theorem CategoryTheory.Equivalence.coverPreserving + theorem CategoryTheory.Equivalence.hasSheafCompose + theorem CategoryTheory.Equivalence.hasSheafify + theorem CategoryTheory.Equivalence.locallyCoverDense + def CategoryTheory.Equivalence.sheafCongr.counitIso + def CategoryTheory.Equivalence.sheafCongr.functor + def CategoryTheory.Equivalence.sheafCongr.inverse + def CategoryTheory.Equivalence.sheafCongr.unitIso + def CategoryTheory.Equivalence.sheafCongr + def CategoryTheory.Equivalence.transportAndSheafify + def CategoryTheory.Equivalence.transportIsoSheafToPresheaf + def CategoryTheory.Equivalence.transportSheafificationAdjunction + def CategoryTheory.smallSheafificationAdjunction + def CategoryTheory.smallSheafify 2024-01-13 13:48:35 cc7c881 refactor: Multiplicativise `abs` (#9553) The current design for `abs` is flawed: * The `Abs` notation typeclass has exactly two instances: one for `[Neg α] [Sup α]`, one for `[Inv α] [Sup α]`. This means that: * We can't write a meaningful hover for `Abs.abs` * Fields have two `Abs` instances! * We have the multiplicative definition but: * All the lemmas in `Algebra.Order.Group.Abs` are about the additive version. * The only lemmas about the multiplicative version are in `Algebra.Order.Group.PosPart`, and they get additivised to duplicates of the lemmas in `Algebra.Order.Group.Abs`! This PR changes the notation typeclass with two new definitions (related through `to_additive`): `mabs` and `abs`. `abs` inherits the `|a|` notation and `mabs` gets `|a|ₘ` instead. The first half of `Algebra.Order.Group.Abs` gets multiplicativised. A later PR will multiplicativise the second half, and another one will deduplicate the lemmas in `Algebra.Order.Group.PosPart`. Part of #9411. ESTIMATED CHANGES Modified Mathlib.lean Deleted Mathlib/Algebra/Abs.lean - def Abs.abs.unexpander Modified Mathlib/Algebra/Order/Group/Abs.lean + def abs.unexpander - theorem abs_abs - theorem abs_by_cases - theorem abs_choice - theorem abs_eq_abs - theorem abs_eq_max_neg - theorem abs_eq_sup_inv - theorem abs_eq_zero - theorem abs_le' - theorem abs_le_abs - theorem abs_le_abs_of_nonneg - theorem abs_le_abs_of_nonpos - theorem abs_lt - theorem abs_neg - theorem abs_nonneg - theorem abs_nonpos_iff - theorem abs_of_neg - theorem abs_of_nonneg - theorem abs_of_nonpos - theorem abs_of_pos - theorem abs_pos - theorem abs_pos_of_neg - theorem abs_pos_of_pos - theorem abs_sub_comm - theorem abs_zero - theorem add_abs_nonneg + theorem eq_or_eq_inv_of_mabs_eq - theorem eq_or_eq_neg_of_abs_eq + theorem inf_sq_eq_mul_div_mabs_div + theorem inv_le_mabs + theorem inv_lt_of_mabs_lt + theorem inv_mabs_le + theorem inv_mabs_le_inv - theorem le_abs - theorem le_abs_self + theorem le_mabs + theorem le_mabs_self - theorem lt_abs + theorem lt_mabs - theorem lt_of_abs_lt + theorem lt_of_mabs_lt + theorem m_Birkhoff_inequalities + def mabs.unexpander + def mabs + theorem mabs_by_cases + theorem mabs_choice + theorem mabs_div_comm + theorem mabs_div_sup_mul_mabs_div_inf + theorem mabs_eq_mabs + theorem mabs_eq_max_inv + theorem mabs_eq_one + theorem mabs_inf_div_inf_le_mabs + theorem mabs_inv + theorem mabs_le' + theorem mabs_le_mabs + theorem mabs_le_mabs_of_le_one + theorem mabs_le_mabs_of_one_le + theorem mabs_le_one + theorem mabs_lt + theorem mabs_mabs + theorem mabs_mabs_div_mabs_le + theorem mabs_mul_le + theorem mabs_ne_one + theorem mabs_of_le_one + theorem mabs_of_lt_one + theorem mabs_of_one_le + theorem mabs_of_one_lt + theorem mabs_one + theorem mabs_sup_div_sup_le_mabs + theorem max_div_min_eq_mabs' + theorem max_div_min_eq_mabs - theorem max_sub_min_eq_abs' - theorem max_sub_min_eq_abs - theorem neg_abs_le_neg - theorem neg_abs_le_self - theorem neg_le_abs_self - theorem neg_lt_of_abs_lt + theorem one_le_mabs + theorem one_le_mul_mabs + theorem one_lt_mabs + theorem one_lt_mabs_of_lt_one + theorem one_lt_mabs_pos_of_one_lt + theorem sup_div_inf_eq_mabs_div + theorem sup_sq_eq_mul_mul_mabs_div Modified Mathlib/Algebra/Order/Group/PosPart.lean - theorem LatticeOrderedCommGroup.abs_abs_div_abs_le - theorem LatticeOrderedCommGroup.abs_div_sup_mul_abs_div_inf - theorem LatticeOrderedCommGroup.inf_sq_eq_mul_div_abs_div - theorem LatticeOrderedCommGroup.m_Birkhoff_inequalities - theorem LatticeOrderedCommGroup.mabs_inf_div_inf_le_mabs - theorem LatticeOrderedCommGroup.mabs_mul_le - theorem LatticeOrderedCommGroup.mabs_sup_div_sup_le_mabs - theorem LatticeOrderedCommGroup.sup_sq_eq_mul_mul_abs_div - theorem LatticeOrderedGroup.abs_div_comm - theorem LatticeOrderedGroup.abs_inv - theorem LatticeOrderedGroup.inv_le_abs - theorem LatticeOrderedGroup.le_mabs - theorem LatticeOrderedGroup.mabs_mabs - theorem LatticeOrderedGroup.mabs_of_one_le - theorem LatticeOrderedGroup.one_le_abs - theorem LatticeOrderedGroup.pow_two_semiclosed - theorem LatticeOrderedGroup.sup_div_inf_eq_abs_div Modified Mathlib/Algebra/Parity.lean +/- theorem even_abs Modified Mathlib/AlgebraicGeometry/EllipticCurve/Group.lean Modified Mathlib/Analysis/Complex/PhragmenLindelof.lean Modified Mathlib/Analysis/InnerProductSpace/Projection.lean Modified Mathlib/Analysis/MellinTransform.lean Modified Mathlib/Analysis/Normed/Order/Lattice.lean +/- theorem norm_abs_sub_abs Modified Mathlib/Analysis/SpecialFunctions/Log/Deriv.lean Modified Mathlib/Analysis/SpecialFunctions/Pow/Continuity.lean Modified Mathlib/Analysis/SpecificLimits/FloorPow.lean Modified Mathlib/Computability/AkraBazzi/GrowsPolynomially.lean Modified Mathlib/Data/Complex/Abs.lean Modified Mathlib/Data/Complex/Exponential.lean Modified Mathlib/GroupTheory/Subgroup/Basic.lean +/- theorem abs_mem_iff Modified Mathlib/MeasureTheory/Constructions/BorelSpace/Basic.lean Modified Mathlib/MeasureTheory/Function/AEEqFun.lean Modified Mathlib/MeasureTheory/Function/ConditionalExpectation/Real.lean Modified Mathlib/MeasureTheory/Function/L1Space.lean Modified Mathlib/Order/Filter/AtTopBot.lean Modified Mathlib/Probability/Martingale/BorelCantelli.lean Modified Mathlib/Probability/StrongLaw.lean Modified Mathlib/Tactic/Positivity/Basic.lean Modified Mathlib/Tactic/ToAdditive.lean Modified Mathlib/Topology/Algebra/Order/Group.lean Modified Mathlib/Topology/ContinuousFunction/Algebra.lean +/- theorem ContinuousMap.coe_mabs +/- theorem ContinuousMap.mabs_apply Modified Mathlib/Topology/ContinuousFunction/Compact.lean Modified Mathlib/Topology/Instances/ENNReal.lean 2024-01-13 11:05:32 c0a2a52 chore: replace `Infinite` assumption by `Nontrivial` in Ideal.absNorm (#9684) Also fix a typo and remove a now useless `maxHeartbeats` in `Mathlib.NumberTheory.NumberField.Units`. ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/FreeModule/Basic.lean + theorem Module.Free.infinite Modified Mathlib/NumberTheory/NumberField/Units.lean Modified Mathlib/RingTheory/Ideal/Norm.lean 2024-01-13 09:55:25 bd7c548 chore(ValuedCSP): rename `ValuedCsp` to `ValuedCSP` (#9701) ESTIMATED CHANGES Modified Mathlib/Combinatorics/Optimization/ValuedCSP.lean + def ValuedCSP.Instance.IsOptimumSolution + def ValuedCSP.Instance.evalSolution + def ValuedCSP.Term.evalSolution + structure ValuedCSP.Term - def ValuedCsp.Instance.IsOptimumSolution - def ValuedCsp.Instance.evalSolution - def ValuedCsp.Term.evalSolution - structure ValuedCsp.Term 2024-01-13 08:26:08 0dbc551 chore: scripts/lean-pr-testing-comments.sh more reliably identify comment (#9698) without this, we’ll see many separate comments by the bot ESTIMATED CHANGES Modified scripts/lean-pr-testing-comments.sh 2024-01-12 20:16:33 2523a65 feat: Language reversal (#8629) ESTIMATED CHANGES Modified Mathlib/Computability/Language.lean + theorem Language.mem_reverse + def Language.reverse + def Language.reverseIso + theorem Language.reverse_add + theorem Language.reverse_bijective + theorem Language.reverse_eq_image + theorem Language.reverse_iInf + theorem Language.reverse_iSup + theorem Language.reverse_injective + theorem Language.reverse_involutive + theorem Language.reverse_kstar + theorem Language.reverse_mem_reverse + theorem Language.reverse_mul + theorem Language.reverse_one + theorem Language.reverse_pow + theorem Language.reverse_reverse + theorem Language.reverse_surjective + theorem Language.reverse_zero 2024-01-12 18:56:17 56178f0 feat(LinearAlgebra): generalize results about `Module.rank` of `LinearMap`. (#9677) **LinearAlgebra/LinearIndependent**: generalize `linearIndependent_algHom_toLinearMap(')` to allow different domain and codomain of the AlgHom. **LinearAlgebra/Basic**: add `LinearEquiv.congrLeft` that works for two rings with commuting actions on the codomain. **LinearAlgebra/FreeModule/Finite/Matrix**: generalize `Module.Free.linearMap`, `Module.Finite.linearMap`, and `FiniteDimensional.finrank_linearMap` to work with two different rings that may be noncommutative. Add `FiniteDimensional.rank_linearMap`, `FiniteDimensional.(fin)rank_linearMap_self`, and `card/cardinal_mk_algHom_le_rank`. **FieldTheory/Tower**: remove the instance `LinearMap.finite_dimensional''` which becomes redundant; mark `finrank_linear_map'` as deprecated (superseded by `finrank_linearMap_self`. ESTIMATED CHANGES Modified Mathlib/Algebra/Category/FGModuleCat/Basic.lean Modified Mathlib/FieldTheory/Fixed.lean Modified Mathlib/FieldTheory/Minpoly/Field.lean Modified Mathlib/FieldTheory/Tower.lean - theorem FiniteDimensional.finrank_linear_map' Modified Mathlib/LinearAlgebra/Basic.lean + def LinearEquiv.congrLeft Modified Mathlib/LinearAlgebra/FreeModule/Finite/Matrix.lean + theorem FiniteDimensional.finrank_linearMap_self + theorem FiniteDimensional.rank_linearMap + theorem FiniteDimensional.rank_linearMap_self +/- theorem Matrix.rank_vecMulVec + theorem card_algHom_le_finrank + theorem cardinal_mk_algHom_le_rank Modified Mathlib/LinearAlgebra/LinearIndependent.lean +/- theorem linearIndependent_algHom_toLinearMap' Modified Mathlib/LinearAlgebra/Matrix/FiniteDimensional.lean Modified Mathlib/LinearAlgebra/Multilinear/FiniteDimensional.lean 2024-01-12 17:18:31 216d93e chore(CategoryTheory/SingleObj): unify notation (#9696) Use consistent notation for a monoid `M`, a group `G`, etc. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/SingleObj.lean +/- theorem CategoryTheory.SingleObj.comp_as_mul +/- def CategoryTheory.SingleObj.differenceFunctor +/- def CategoryTheory.SingleObj.functor +/- theorem CategoryTheory.SingleObj.id_as_one +/- theorem CategoryTheory.SingleObj.inv_as_inv +/- def CategoryTheory.SingleObj.mapHom +/- theorem CategoryTheory.SingleObj.mapHom_comp +/- theorem CategoryTheory.SingleObj.mapHom_id +/- def CategoryTheory.SingleObj.natTrans +/- def CategoryTheory.SingleObj.toEnd +/- theorem CategoryTheory.SingleObj.toEnd_def +/- theorem MonoidHom.comp_toFunctor +/- theorem MonoidHom.id_toFunctor +/- def MonoidHom.toFunctor +/- def Units.toAut +/- theorem Units.toAut_hom +/- theorem Units.toAut_inv 2024-01-12 12:47:28 e659b1b feat(RepresentationTheory/Action): add more limit properties of `Action V G` and `Action.forget V G` (#9603) Adds instances on limit properties of `Action V G` and `Action.forget V G`. ESTIMATED CHANGES Modified Mathlib/Algebra/Category/FGModuleCat/Limits.lean Modified Mathlib/RepresentationTheory/Action/Limits.lean 2024-01-12 12:47:27 f34cd07 perf (CategoryTheory.ComposableArrows): swap out `linarith` for `omega` (#9594) This file now has the lead in the number of CPU instructions amongst all of mathlib. The majority come from `linarith` being an `autoparam` for many definitions, often in multiple arguments. This uses `omega` in place of `linarith` to improve performance. ESTIMATED CHANGES Modified Mathlib/Algebra/Homology/ExactSequence.lean +/- theorem CategoryTheory.ComposableArrows.Exact.exact' +/- theorem CategoryTheory.ComposableArrows.IsComplex.zero' +/- def CategoryTheory.ComposableArrows.sc' Modified Mathlib/CategoryTheory/Abelian/DiagramLemmas/Four.lean Modified Mathlib/CategoryTheory/ComposableArrows.lean +/- def CategoryTheory.ComposableArrows.arrow +/- theorem CategoryTheory.ComposableArrows.homMk₂_app_two +/- theorem CategoryTheory.ComposableArrows.homMk₃_app_three +/- theorem CategoryTheory.ComposableArrows.homMk₃_app_two +/- theorem CategoryTheory.ComposableArrows.map'_comp + theorem CategoryTheory.ComposableArrows.map'_inv_eq_inv_map' +/- theorem CategoryTheory.ComposableArrows.map'_self +/- theorem CategoryTheory.ComposableArrows.mkOfObjOfMapSucc_arrow +/- theorem CategoryTheory.ComposableArrows.mkOfObjOfMapSucc_map_succ +/- theorem CategoryTheory.ComposableArrows.naturality' 2024-01-12 12:47:26 e4eb07a feat(Order/Basic): Add `ltByCases` API (#9114) I noticed that `ltByCases` doesn't have any API, and it would be useful to have some when working trichotomously, especially if one wishes to define things trichotomously. A non-dependent version is also defined. ESTIMATED CHANGES Modified Mathlib/Order/Basic.lean + theorem eq_iff_eq_of_lt_iff_lt_of_gt_iff_gt + theorem ltByCases_comm + theorem ltByCases_congr + theorem ltByCases_eq + theorem ltByCases_eq_iff + theorem ltByCases_gt + theorem ltByCases_lt + theorem ltByCases_ne + theorem ltByCases_not_gt + theorem ltByCases_not_lt + theorem ltByCases_rec + theorem ltTrichotomy_comm + theorem ltTrichotomy_congr + theorem ltTrichotomy_eq + theorem ltTrichotomy_eq_iff + theorem ltTrichotomy_gt + theorem ltTrichotomy_lt + theorem ltTrichotomy_ne + theorem ltTrichotomy_not_gt + theorem ltTrichotomy_not_lt + theorem ltTrichotomy_self 2024-01-12 11:58:46 9410c2d chore(Topology): remove autoImplicit in some files (#9689) ... where this is easy to do. ESTIMATED CHANGES Modified Mathlib/Topology/Bases.lean Modified Mathlib/Topology/EMetricSpace/Lipschitz.lean +/- theorem LipschitzOnWith.edist_le_mul_of_le Modified Mathlib/Topology/FiberBundle/Trivialization.lean +/- theorem Trivialization.tendsto_nhds_iff Modified Mathlib/Topology/Instances/ENNReal.lean Modified Mathlib/Topology/MetricSpace/Gluing.lean Modified Mathlib/Topology/MetricSpace/Kuratowski.lean +/- theorem LipschitzOnWith.extend_lp_infty Modified Mathlib/Topology/MetricSpace/Lipschitz.lean Modified Mathlib/Topology/Order/Lattice.lean Modified Mathlib/Topology/VectorBundle/Basic.lean +/- theorem VectorBundleCore.localTriv_apply 2024-01-12 11:06:19 a1387de chore(Topology/Basic): remove autoImplicit (#9682) It's just used for two declarations; it's clearer without. ESTIMATED CHANGES Modified Mathlib/Topology/Basic.lean +/- theorem Filter.EventuallyEq.tendsto +/- theorem tendsto_nhds_of_eventually_eq 2024-01-12 11:06:18 0e43962 chore: typo in lean-pr-testing-comments.sh (#9608) sorry! Unfortunately these workflows are hard to test. ESTIMATED CHANGES Modified scripts/lean-pr-testing-comments.sh 2024-01-12 10:02:38 efed185 chore: bump Std dependency up to leanprover/std4#522 (#9680) ESTIMATED CHANGES Modified lake-manifest.json 2024-01-12 09:21:21 52bef36 chore(Topology/PartialHomeomorph): re-use one variable (#9630) General housekeeping; this also makes re-naming the types to Greek letters easier. ESTIMATED CHANGES Modified Mathlib/Topology/PartialHomeomorph.lean +/- theorem PartialHomeomorph.eventually_left_inverse' +/- theorem PartialHomeomorph.eventually_left_inverse +/- theorem PartialHomeomorph.eventually_ne_nhdsWithin +/- theorem PartialHomeomorph.eventually_nhds' +/- theorem PartialHomeomorph.eventually_nhds +/- theorem PartialHomeomorph.eventually_nhdsWithin' +/- theorem PartialHomeomorph.eventually_nhdsWithin +/- theorem PartialHomeomorph.eventually_right_inverse' +/- theorem PartialHomeomorph.eventually_right_inverse +/- theorem PartialHomeomorph.image_source_eq_target +/- theorem PartialHomeomorph.map_nhdsWithin_eq +/- theorem PartialHomeomorph.map_nhdsWithin_preimage_eq +/- theorem PartialHomeomorph.replaceEquiv_eq_self +/- theorem PartialHomeomorph.secondCountableTopology_source +/- theorem PartialHomeomorph.symm_image_target_eq_source 2024-01-12 08:24:35 c1cd645 feat: add `Finset.piAntidiagonal` (#7904) This is defined in terms of `Finset.HasAntidiagonal`. A subsequent PR #9309 uses this to compute coefficients of products of power series. Co-author : Maria Ines de Frutos Fernandez Based on work of Bhavik Mehta in `Archive/Partition.lean` ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Data/Finset/PiAntidiagonal.lean + def Finset.finAntidiagonal + def Finset.finAntidiagonal₀ + theorem Finset.mapRange_piAntidiagonal_eq + theorem Finset.mapRange_piAntidiagonal_subset + theorem Finset.mem_finAntidiagonal + theorem Finset.mem_finAntidiagonal₀' + theorem Finset.mem_finAntidiagonal₀ + theorem Finset.mem_piAntidiagonal' + theorem Finset.mem_piAntidiagonal + theorem Finset.mem_piAntidiagonal_insert + def Finset.piAntidiagonal + theorem Finset.piAntidiagonal_empty + theorem Finset.piAntidiagonal_empty_of_ne_zero + theorem Finset.piAntidiagonal_empty_of_zero + theorem Finset.piAntidiagonal_insert + theorem Finset.piAntidiagonal_zero Modified Mathlib/Data/Finsupp/Basic.lean + theorem Finsupp.embDomain_comapDomain + theorem Finsupp.prod_equivMapDomain Modified Mathlib/Data/Finsupp/Defs.lean Added test/antidiagonal.lean 2024-01-12 06:00:58 2a49809 chore(Topology/NhdsSet): rename type variables (#9673) Now we use letters X and Y for topological spaces, not Greek letters. ESTIMATED CHANGES Modified Mathlib/Topology/NhdsSet.lean +/- theorem Continuous.tendsto_nhdsSet +/- theorem Continuous.tendsto_nhdsSet_nhds +/- theorem Filter.Eventually.self_of_nhdsSet +/- theorem bUnion_mem_nhdsSet +/- theorem eventually_nhdsSet_iff_exists +/- theorem eventually_nhdsSet_iff_forall +/- theorem hasBasis_nhdsSet +/- theorem mem_nhdsSet_empty +/- theorem mem_nhdsSet_iff_exists +/- theorem mem_nhdsSet_iff_forall +/- theorem monotone_nhdsSet +/- def nhdsSet +/- theorem nhdsSet_diagonal +/- theorem nhdsSet_empty +/- theorem nhdsSet_insert +/- theorem nhdsSet_le +/- theorem nhdsSet_union +/- theorem nhdsSet_univ 2024-01-12 06:00:57 d91d679 feat(Cardinal): `#(α ≃ β)` and `#(α ↪ β)` in the infinite case (#9646) Main results: + If two types have the same infinite cardinality, then there are as many Equivs between them as there are functions. + If B has infinite cardinality no less than #A, then there are as many embeddings from A into B as there are functions. + If A has infinite cardinality no less than #B, then there are as many surjective functions from A to B as there are functions. ESTIMATED CHANGES Modified Mathlib/Logic/Embedding/Basic.lean + theorem Equiv.toEmbedding_injective + theorem Function.exists_surjective_iff Modified Mathlib/Logic/IsEmpty.lean + theorem isEmpty_fun + theorem nonempty_fun Modified Mathlib/SetTheory/Cardinal/Ordinal.lean + theorem Cardinal.mk_arrow_eq_zero_iff + theorem Cardinal.mk_embedding_eq_arrow_of_le + theorem Cardinal.mk_embedding_eq_arrow_of_lift_le + theorem Cardinal.mk_embedding_eq_zero_iff_lift_lt + theorem Cardinal.mk_embedding_eq_zero_iff_lt + theorem Cardinal.mk_embedding_le_arrow + theorem Cardinal.mk_equiv_comm + theorem Cardinal.mk_equiv_eq_arrow_of_eq + theorem Cardinal.mk_equiv_eq_arrow_of_lift_eq + theorem Cardinal.mk_equiv_eq_zero_iff_lift_ne + theorem Cardinal.mk_equiv_eq_zero_iff_ne + theorem Cardinal.mk_equiv_le_embedding + theorem Cardinal.mk_equiv_of_eq + theorem Cardinal.mk_equiv_of_lift_eq + theorem Cardinal.mk_perm_eq_self_power + theorem Cardinal.mk_perm_eq_two_power + theorem Cardinal.mk_surjective_eq_arrow_of_le + theorem Cardinal.mk_surjective_eq_arrow_of_lift_le + theorem Cardinal.mk_surjective_eq_zero_iff + theorem Cardinal.mk_surjective_eq_zero_iff_lift 2024-01-12 05:34:15 0533bf2 chore(Geometry/Manifold/ChartedSpace): remove autoImplicit true (#9671) It's just used once for one declaration. While at it, also remove two `open`s which are unused. ESTIMATED CHANGES Modified Mathlib/Geometry/Manifold/ChartedSpace.lean +/- theorem ModelProd.ext 2024-01-12 03:12:25 fa19a55 feat: naturality of the `gelfandStarTransform` and `WeakDual.CharacterSpace.homeoEval` (#9638) ESTIMATED CHANGES Modified Mathlib/Analysis/NormedSpace/Star/GelfandDuality.lean +/- theorem WeakDual.CharacterSpace.compContinuousMap_comp + theorem WeakDual.CharacterSpace.homeoEval_naturality + theorem gelfandStarTransform_naturality 2024-01-11 23:49:04 709f51d feat: function is differentiable outside of its tsupport (#9669) From sphere-eversion; I'm just submitting it. Also golf the proof of the preceding lemma slightly and add a docstring. ESTIMATED CHANGES Modified Mathlib/Geometry/Manifold/ContMDiff/Basic.lean + theorem contMDiffAt_of_not_mem + theorem contMDiffWithinAt_of_not_mem 2024-01-11 23:22:50 d3c8ccc doc: Fix typo First-Ordered -> First-Order (#9657) ESTIMATED CHANGES Modified Mathlib/ModelTheory/Graph.lean 2024-01-11 22:22:04 47aedf9 fix: remove a porting note which is no longer true (#9659) Remove a `have` which is no longer needed. ESTIMATED CHANGES Modified Mathlib/RingTheory/Subring/Basic.lean 2024-01-11 20:30:08 3e1faeb chore: split IntermediateField.Lifts out of FieldTheory/Adjoin (#9647) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/FieldTheory/Adjoin.lean - theorem Algebra.IsAlgebraic.range_eval_eq_rootSet_minpoly_of_splits - theorem IntermediateField.Lifts.exists_lift_of_splits' - theorem IntermediateField.Lifts.exists_lift_of_splits - theorem IntermediateField.Lifts.exists_upper_bound - structure IntermediateField.Lifts - theorem IntermediateField.exists_algHom_adjoin_of_splits' - theorem IntermediateField.exists_algHom_adjoin_of_splits - theorem IntermediateField.exists_algHom_adjoin_of_splits_of_aeval - theorem IntermediateField.exists_algHom_of_adjoin_splits' - theorem IntermediateField.exists_algHom_of_adjoin_splits - theorem IntermediateField.exists_algHom_of_adjoin_splits_of_aeval - theorem IntermediateField.exists_algHom_of_splits' - theorem IntermediateField.exists_algHom_of_splits - theorem IntermediateField.exists_algHom_of_splits_of_aeval - theorem IntermediateField.nonempty_algHom_adjoin_of_splits - theorem IntermediateField.nonempty_algHom_of_adjoin_splits - theorem IntermediateField.nonempty_algHom_of_splits Added Mathlib/FieldTheory/Extension.lean + theorem Algebra.IsAlgebraic.range_eval_eq_rootSet_minpoly_of_splits + theorem IntermediateField.Lifts.exists_lift_of_splits' + theorem IntermediateField.Lifts.exists_lift_of_splits + theorem IntermediateField.Lifts.exists_upper_bound + structure IntermediateField.Lifts + theorem IntermediateField.exists_algHom_adjoin_of_splits' + theorem IntermediateField.exists_algHom_adjoin_of_splits + theorem IntermediateField.exists_algHom_adjoin_of_splits_of_aeval + theorem IntermediateField.exists_algHom_of_adjoin_splits' + theorem IntermediateField.exists_algHom_of_adjoin_splits + theorem IntermediateField.exists_algHom_of_adjoin_splits_of_aeval + theorem IntermediateField.exists_algHom_of_splits' + theorem IntermediateField.exists_algHom_of_splits + theorem IntermediateField.exists_algHom_of_splits_of_aeval + theorem IntermediateField.nonempty_algHom_adjoin_of_splits + theorem IntermediateField.nonempty_algHom_of_adjoin_splits + theorem IntermediateField.nonempty_algHom_of_splits Modified Mathlib/FieldTheory/Normal.lean 2024-01-11 19:16:43 9992fd6 chore: fix bug in `apply ... at ...` (#9650) See [zulip discussion](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/noob.20issue.2Fbug.20when.20using.20congrArg/near/412272720) ESTIMATED CHANGES Modified Mathlib/Tactic/ApplyAt.lean Modified test/ApplyAt.lean 2024-01-11 17:55:22 bb3b00a perf (Subalgebra.Basic): de-prioritize `Subalgebra.module'` (#9655) This can send TC search off on a wild goose chase. Discussion on [Zulip](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/Timeout.20in.20Submodule.20.28.F0.9D.93.9E.20K.29.20.28.F0.9D.93.9E.20K.29) ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/Subalgebra/Basic.lean 2024-01-11 16:24:56 d191734 chore(Analysis/NormedSpace/OperatorNorm): remove `local instance` in favor of `letI` (#9653) The former creates `def`s that are just noise, and have horrible names that the doc linter will complain about if the autogenerated name changes. ESTIMATED CHANGES Modified Mathlib/Analysis/NormedSpace/OperatorNorm.lean +/- theorem ContinuousLinearMap.norm_compL_le +/- theorem ContinuousLinearMap.norm_compSL_le +/- theorem ContinuousLinearMap.norm_precompL_le +/- theorem ContinuousLinearMap.norm_precompR_le +/- theorem ContinuousLinearMap.op_norm_mulLeftRight_le Modified scripts/nolints.json 2024-01-11 15:58:32 40e4877 perf (Abelian.Transfer): clean up a dsimp (#9641) Cleaning up a `dsimp` improves performance. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Abelian/Transfer.lean 2024-01-11 14:47:42 2f63d25 fix: patch for std4#198 (more mul lemmas for `Nat`) (#6204) ESTIMATED CHANGES Modified Mathlib/Algebra/EuclideanDomain/Instances.lean Modified Mathlib/CategoryTheory/EqToHom.lean Modified Mathlib/Combinatorics/SimpleGraph/Regularity/Bound.lean +/- theorem SzemerediRegularity.le_stepBound Modified Mathlib/Combinatorics/SimpleGraph/Regularity/Equitabilise.lean Modified Mathlib/Data/FP/Basic.lean Modified Mathlib/Data/List/Rotate.lean Modified Mathlib/Data/Nat/Choose/Central.lean Modified Mathlib/Data/Nat/Defs.lean Modified Mathlib/Data/Nat/Factorial/Basic.lean Modified Mathlib/Data/Nat/Factorial/DoubleFactorial.lean Modified Mathlib/Data/Nat/Fib/Basic.lean Modified Mathlib/Data/Nat/Order/Basic.lean - theorem Nat.le_mul_of_pos_left - theorem Nat.le_mul_of_pos_right Modified Mathlib/Data/Nat/Sqrt.lean Modified Mathlib/Data/ZMod/Basic.lean Modified Mathlib/FieldTheory/SeparableDegree.lean Modified Mathlib/Init/Data/Nat/Lemmas.lean Modified Mathlib/Init/Logic.lean Modified Mathlib/Logic/Basic.lean - theorem Eq.congr_left - theorem Eq.congr_right - theorem cast_cast - theorem cast_eq_iff_heq - theorem congr_fun₂ - theorem congr_fun₃ - theorem eq_mp_eq_cast - theorem eq_mpr_eq_cast - theorem funext₂ - theorem funext₃ - theorem heq_of_cast_eq - theorem ne_of_apply_ne Modified Mathlib/NumberTheory/Divisors.lean Modified Mathlib/NumberTheory/FermatPsp.lean Modified Mathlib/Tactic/NormNum/LegendreSymbol.lean Modified lake-manifest.json Modified test/apply_rules.lean 2024-01-11 11:03:27 c532ace feat: two topology lemmas (#9624) From sphere-eversion; I'm just upstreaming it. ESTIMATED CHANGES Modified Mathlib/Topology/Compactness/Compact.lean + theorem Inducing.isCompact_preimage' + theorem Inducing.isCompact_preimage_iff 2024-01-11 10:24:40 33a5585 feat: two lemmas about partial homeomorphisms (#9623) From sphere-eversion. While I'm in the area, - remove `image_isOpen_of_isOpen`, which is an exact duplicate of `isOpen_image_of_subset_source` - rename `image_isOpen_of_isOpen'` to `isOpen_image_source_inter_of_isOpen` (which matches the naming convention) - move `isOpen_inter_preimage_symm` next to its adjacent lemmas ESTIMATED CHANGES Modified Mathlib/Topology/PartialHomeomorph.lean - theorem PartialHomeomorph.image_isOpen_of_isOpen' - theorem PartialHomeomorph.image_isOpen_of_isOpen + theorem PartialHomeomorph.isOpen_image_iff_of_subset_source + theorem PartialHomeomorph.isOpen_image_source_inter + theorem PartialHomeomorph.isOpen_symm_image_iff_of_subset_target 2024-01-11 10:00:43 702f3fe chore(Geometry/Manifold/SmoothPartitionOfUnity): remove autoImplicit (#9634) It's just used once for one variable. That's not pulling its weight. ESTIMATED CHANGES Modified Mathlib/Geometry/Manifold/PartitionOfUnity.lean +/- theorem IsOpen.exists_msmooth_support_eq 2024-01-11 09:32:06 1e0cd87 chore: reduce defeq abuse in LocalizedModule (#9649) In particular, LocalizedModule.induction_on uses LocalizedModule.mk rather than Quotient.mk. ESTIMATED CHANGES Modified Mathlib/Algebra/Module/LocalizedModule.lean 2024-01-11 04:35:19 9f6978a chore: cleanup 'import Lean' (#9643) Removes superfluous `import Lean`, and replaces many `import Lean`s with finer imports. Not complete, as there is more than I expected, but happy to merge this first and get to the rest later. ESTIMATED CHANGES Modified Mathlib/Data/Array/Defs.lean Modified Mathlib/Lean/CoreM.lean Modified Mathlib/Lean/EnvExtension.lean Modified Mathlib/Lean/Exception.lean Modified Mathlib/Lean/Expr/Basic.lean Modified Mathlib/Lean/Expr/ReplaceRec.lean Modified Mathlib/Lean/Expr/Traverse.lean Modified Mathlib/Lean/Json.lean Modified Mathlib/Lean/Meta/Simp.lean Modified Mathlib/Mathport/Rename.lean Modified Mathlib/Tactic/ApplyWith.lean Modified Mathlib/Tactic/ByContra.lean Modified Mathlib/Tactic/Cases.lean Modified Mathlib/Tactic/CasesM.lean Modified Mathlib/Tactic/Clean.lean Modified Mathlib/Tactic/Clear!.lean Modified Mathlib/Tactic/ClearExcept.lean Modified Mathlib/Tactic/Clear_.lean Modified Mathlib/Tactic/Coe.lean Modified Mathlib/Tactic/Congr!.lean Modified Mathlib/Tactic/Convert.lean Modified Mathlib/Tactic/Core.lean Modified Mathlib/Tactic/DeriveToExpr.lean Modified Mathlib/Tactic/Explode.lean Modified Mathlib/Tactic/Explode/Datatypes.lean Modified Mathlib/Tactic/Explode/Pretty.lean Modified Mathlib/Tactic/FailIfNoProgress.lean Modified Mathlib/Tactic/Find.lean Modified Mathlib/Tactic/GeneralizeProofs.lean Modified Mathlib/Tactic/GuardGoalNums.lean Modified Mathlib/Tactic/GuardHypNums.lean Modified Mathlib/Tactic/Have.lean Modified Mathlib/Tactic/InferParam.lean Modified Mathlib/Tactic/SudoSetOption.lean Modified Mathlib/Tactic/SuppressCompilation.lean Modified Mathlib/Tactic/Tauto.lean Modified Mathlib/Tactic/ToLevel.lean Modified Mathlib/Tactic/Use.lean Modified Mathlib/Tactic/Variable.lean Modified Mathlib/Tactic/WLOG.lean Modified Mathlib/Tactic/Widget/Calc.lean Modified Mathlib/Util/AddRelatedDecl.lean Modified Mathlib/Util/AssertExists.lean Modified Mathlib/Util/Export.lean Modified Mathlib/Util/SleepHeartbeats.lean Modified Mathlib/Util/Syntax.lean Modified Mathlib/Util/SynthesizeUsing.lean Modified Mathlib/Util/TermBeta.lean 2024-01-11 02:52:07 57394a6 chore(Analysis/NormedSpace/QuaternionExponential): extract helper lemmas (#9494) Besides being split in three, this proof is largely untouched. ESTIMATED CHANGES Modified Mathlib/Analysis/NormedSpace/QuaternionExponential.lean + theorem Quaternion.expSeries_even_of_imaginary + theorem Quaternion.expSeries_odd_of_imaginary 2024-01-11 01:14:23 15883f3 perf (Preadditive.FunctorCategory): use `dsimp` before `ext` (#9637) `dsimp` seems to significantly improve the performance of `ext` here and elsewhere. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Preadditive/FunctorCategory.lean 2024-01-11 00:49:31 49008fd perf (GradedObject.Trifunctor): rearrange proof (#9636) Calling `dsimp` before `ext` is more efficient. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/GradedObject/Trifunctor.lean 2024-01-10 21:36:31 7cade34 feat(AlgebraicTopology/Quasicategory): alternative statement of hornfilling condition (#9360) ESTIMATED CHANGES Modified Mathlib/AlgebraicTopology/Quasicategory.lean + theorem SSet.quasicategory_of_filler Modified Mathlib/AlgebraicTopology/SimplexCategory.lean + def SimplexCategory.factor_δ + theorem SimplexCategory.factor_δ_spec Modified Mathlib/AlgebraicTopology/SimplicialObject.lean Modified Mathlib/AlgebraicTopology/SimplicialSet.lean + def SSet.horn.face + theorem SSet.horn.hom_ext 2024-01-10 20:21:11 fd4eb93 feat(Algebra/CharP/ExpChar): add more results for `ExpChar` parallel to `CharP` (#9573) ESTIMATED CHANGES Modified Mathlib/Algebra/CharP/Basic.lean + theorem CharP.exists' Modified Mathlib/Algebra/CharP/ExpChar.lean + theorem ExpChar.congr + theorem ExpChar.eq + theorem ExpChar.exists_unique + theorem ringExpChar.eq + theorem ringExpChar.eq_iff + theorem ringExpChar.eq_one + theorem ringExpChar.of_eq 2024-01-10 19:15:43 f2e0c5b feat (FieldTheory/Adjoin): generalize `IntermediateField.exists_algHom_of_splits` (#9392) + Extract from `Lifts.exists_lift_of_splits` a version that assumes integrality and splitting of minimal polynomial over an intermediate field (either actual IntermediateField or middle of IsScalarTower) rather than the base field + Generalize `exists_algHom_adjoin_of_splits`, `exists_algHom_of_adjoin_splits`, `exists_algHom_of_splits` to the same setting + Prove the [extension lemma](https://math.stackexchange.com/a/687914/12932) `surjective_comp_algebraMap_of_isAlgebraic/isSeparable` to be used in the proof that an epimorphism in the category of fields is a purely inseparable extension. ESTIMATED CHANGES Modified Mathlib/FieldTheory/Adjoin.lean + theorem IntermediateField.Lifts.exists_lift_of_splits' + theorem IntermediateField.exists_algHom_adjoin_of_splits' + theorem IntermediateField.exists_algHom_of_adjoin_splits' + theorem IntermediateField.exists_algHom_of_splits' Modified Mathlib/FieldTheory/IsAlgClosed/Basic.lean + theorem IsAlgClosed.surjective_comp_algebraMap_of_isAlgebraic Modified Mathlib/FieldTheory/IsSepClosed.lean + theorem IsSepClosed.surjective_comp_algebraMap_of_isSeparable Modified Mathlib/RingTheory/Adjoin/Field.lean + theorem IsIntegral.minpoly_splits_tower_top' +/- theorem IsIntegral.minpoly_splits_tower_top 2024-01-10 17:15:41 7f98351 Feat : Define the Poisson distribution (#9554) Add the Poisson probability distribution for non-negative rate `r` - PMF - Measure - Basic API ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Probability/Distributions/Poisson.lean + theorem ProbabilityTheory.measurable_poissonPmfReal + def ProbabilityTheory.poissonMeasure + def ProbabilityTheory.poissonPmf + def ProbabilityTheory.poissonPmfReal + theorem ProbabilityTheory.poissonPmfRealSum + theorem ProbabilityTheory.poissonPmfReal_nonneg + theorem ProbabilityTheory.poissonPmfReal_pos + theorem ProbabilityTheory.stronglyMeasurable_poissonPmfReal 2024-01-10 17:15:40 0c62352 feat: Injectivity of monoid localization (#9531) Adds two results on the Localization for CommMonoids: one, describes exactly when the localization map is injective, the other essentially says that the localization of a cancellative Monoid is cancellative if the localization is injective. ESTIMATED CHANGES Modified Mathlib/GroupTheory/MonoidLocalization.lean + theorem Submonoid.LocalizationMap.toMap_injective_iff + theorem Submonoid.LocalizationWithZeroMap.isLeftRegular_of_le_IsCancelMulZero + theorem Submonoid.LocalizationWithZeroMap.leftCancelMulZero_of_le_isLeftRegular 2024-01-10 15:56:02 1c6c79f refactor(AlgebraicGeometry/EllipticCurve/*): refactor base change for ring homomorphisms (#9596) Refactor Weierstrass curves and nonsingular rational points to allow for base changes over an arbitrary ring homomorphism `φ : K →+* L`. This generalises the natural map `algebraMap K L` and removes the necessity for `Algebra K L`, but also gives an easy way to define `DistribMulAction` for the action of `L ≃ₐ[K] L` on the nonsingular rational points over `L`, since `L ≃ₐ[K] L` restricts to `L →ₐ[K] L` that restricts to `L →+* L`. The old notation `W⟮L⟯` is preserved for base change over `algebraMap K L`. Also remove some unnecessary coercions in the Weierstrass file. ESTIMATED CHANGES Modified Mathlib/AlgebraicGeometry/EllipticCurve/Affine.lean +/- def WeierstrassCurve.Affine.Point.ofBaseChange +/- def WeierstrassCurve.Affine.Point.ofBaseChangeFun +/- theorem WeierstrassCurve.Affine.Point.ofBaseChange_injective +/- theorem WeierstrassCurve.Affine.baseChange_negY +/- theorem WeierstrassCurve.Affine.baseChange_slope +/- theorem WeierstrassCurve.Affine.baseChange_slope_of_baseChange +/- theorem WeierstrassCurve.Affine.equation_iff_baseChange +/- theorem WeierstrassCurve.Affine.equation_iff_baseChange_of_baseChange +/- theorem WeierstrassCurve.Affine.nonsingular_iff_baseChange +/- theorem WeierstrassCurve.Affine.nonsingular_iff_baseChange_of_baseChange Modified Mathlib/AlgebraicGeometry/EllipticCurve/Group.lean +/- theorem WeierstrassCurve.Affine.CoordinateRing.C_addPolynomial Modified Mathlib/AlgebraicGeometry/EllipticCurve/Weierstrass.lean +/- theorem EllipticCurve.baseChange_injective +/- theorem EllipticCurve.baseChange_j +/- theorem EllipticCurve.coeBaseChange_Δ' +/- theorem EllipticCurve.coe_inv_baseChange_Δ' +/- theorem EllipticCurve.coe_inv_variableChange_Δ' +/- theorem EllipticCurve.coe_variableChange_Δ' +/- theorem WeierstrassCurve.VariableChange.baseChange_baseChange +/- theorem WeierstrassCurve.VariableChange.baseChange_id +/- theorem WeierstrassCurve.VariableChange.baseChange_injective +/- theorem WeierstrassCurve.VariableChange.baseChange_self +/- theorem WeierstrassCurve.baseChange_baseChange +/- theorem WeierstrassCurve.baseChange_b₂ +/- theorem WeierstrassCurve.baseChange_b₄ +/- theorem WeierstrassCurve.baseChange_b₆ +/- theorem WeierstrassCurve.baseChange_b₈ +/- theorem WeierstrassCurve.baseChange_c₄ +/- theorem WeierstrassCurve.baseChange_c₆ +/- theorem WeierstrassCurve.baseChange_injective +/- theorem WeierstrassCurve.baseChange_self +/- theorem WeierstrassCurve.baseChange_Δ +/- theorem WeierstrassCurve.variableChange_b₂ +/- theorem WeierstrassCurve.variableChange_b₈ +/- theorem WeierstrassCurve.variableChange_c₄ +/- theorem WeierstrassCurve.variableChange_c₆ +/- theorem WeierstrassCurve.variableChange_Δ 2024-01-10 15:56:01 3846d4d feat(LinearAlgebra/PiTensorProduct): make `reindex` dependently typed (#9445) used to be `(⨂[R] _ : ι, M) ≃ₗ[R] ⨂[R] _ : ι₂, M`, now `M` can vary according to the indexing set. ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/PiTensorProduct.lean +/- inductive PiTensorProduct.Eqv +/- theorem PiTensorProduct.add_tprodCoeff' +/- theorem PiTensorProduct.add_tprodCoeff +/- def PiTensorProduct.isEmptyEquiv +/- theorem PiTensorProduct.isEmptyEquiv_apply_tprod +/- theorem PiTensorProduct.lift.tprod +/- def PiTensorProduct.liftAddHom +/- theorem PiTensorProduct.liftAux_tprod +/- theorem PiTensorProduct.liftAux_tprodCoeff +/- theorem PiTensorProduct.lift_comp_reindex + theorem PiTensorProduct.lift_comp_reindex_symm +/- theorem PiTensorProduct.lift_reindex + theorem PiTensorProduct.lift_reindex_symm +/- def PiTensorProduct.reindex +/- theorem PiTensorProduct.reindex_refl +/- theorem PiTensorProduct.reindex_reindex +/- theorem PiTensorProduct.reindex_symm +/- theorem PiTensorProduct.reindex_tprod +/- theorem PiTensorProduct.smul_tprodCoeff' +/- theorem PiTensorProduct.smul_tprodCoeff +/- theorem PiTensorProduct.smul_tprodCoeff_aux +/- def PiTensorProduct.tprodCoeff +/- theorem PiTensorProduct.tprodCoeff_eq_smul_tprod +/- theorem PiTensorProduct.zero_tprodCoeff' +/- theorem PiTensorProduct.zero_tprodCoeff Modified Mathlib/LinearAlgebra/TensorAlgebra/ToTensorPower.lean Modified Mathlib/LinearAlgebra/TensorPower.lean Modified Mathlib/Logic/Equiv/Basic.lean + theorem Equiv.piCongrLeft'_symm 2024-01-10 14:23:59 eee1269 feat: `a * a ^ (n - 1) = a ^ n` (#9610) From LeanAPAP ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Commute/Defs.lean + theorem mul_pow_sub_one + theorem pow_sub_one_mul +/- theorem pow_succ' 2024-01-10 14:23:58 f8ed019 feat: Products over finite intervals (#9386) From LeanCamCombi ESTIMATED CHANGES Modified Mathlib/Algebra/BigOperators/Intervals.lean + theorem Finset.mul_prod_Ico_eq_prod_Icc + theorem Finset.mul_prod_Iio_eq_prod_Iic + theorem Finset.mul_prod_Ioc_eq_prod_Icc + theorem Finset.mul_prod_Ioi_eq_prod_Ici +/- theorem Finset.prod_Ico_consecutive +/- theorem Finset.prod_Ico_eq_prod_range + theorem Finset.prod_Ico_mul_eq_prod_Icc +/- theorem Finset.prod_Ico_reflect +/- theorem Finset.prod_Ico_succ_top + theorem Finset.prod_Iio_mul_eq_prod_Iic +/- theorem Finset.prod_Ioc_consecutive + theorem Finset.prod_Ioc_mul_eq_prod_Icc +/- theorem Finset.prod_Ioc_succ_top + theorem Finset.prod_Ioi_mul_eq_prod_Ici +/- theorem Finset.prod_eq_prod_Ico_succ_bot +/- theorem Finset.prod_range_mul_prod_Ico +/- theorem Finset.prod_range_reflect 2024-01-10 14:23:57 b271734 feat: `DirectSum.toAddMonoid` is injective (#9385) From LeanAPAP ESTIMATED CHANGES Modified Mathlib/Algebra/DirectSum/Basic.lean + theorem DirectSum.toAddMonoid_inj + theorem DirectSum.toAddMonoid_injective 2024-01-10 14:23:56 d819f3c feat: Maximum principle for convex functions on an interval (#9364) Corollaries of existing lemmas. From LeanAPAP ESTIMATED CHANGES Modified Mathlib/Analysis/Convex/Jensen.lean + theorem ConcaveOn.min_le_of_mem_Icc + theorem ConcaveOn.min_le_of_mem_segment + theorem ConvexOn.le_max_of_mem_Icc + theorem ConvexOn.le_max_of_mem_segment 2024-01-10 14:23:54 5b559b2 chore: benchmark userspace instructions only per file (#8957) This should make the metric even more deterministic, which is its primary purpose ESTIMATED CHANGES Modified scripts/bench/fake-root/bin/lean Modified scripts/bench/run Modified scripts/bench/temci-config.run.yml 2024-01-10 13:07:02 68612e9 chore: bump Std dependency up to leanprover/std4#511 (#9609) ESTIMATED CHANGES Modified Mathlib/Data/List/Basic.lean - theorem List.getLast?_singleton - theorem List.getLast_mem Modified Mathlib/Data/List/TFAE.lean Modified Mathlib/Data/Prod/Basic.lean - theorem Prod.lex_def Modified Mathlib/Tactic/TFAE.lean Modified lake-manifest.json 2024-01-10 11:53:56 1fb4b03 refactor: split `ImportGraph` into its own package. (#9169) Remove `ImportGraph` from the mathlib repo and add it as a dependency. ESTIMATED CHANGES Deleted ImportGraph/Main.lean - def asDotGraph - def graph - def importGraphCLI - def main Modified Mathlib.lean Modified Mathlib/Init/Logic.lean Modified Mathlib/Lean/Expr/Basic.lean - def Lean.Environment.getModuleFor? - def Lean.Environment.requiredModules - def Lean.Name.requiredModules Modified Mathlib/Lean/Name.lean - def getModule Modified Mathlib/Tactic/Common.lean Deleted Mathlib/Util/Imports.lean - def Lean.Environment.importsOf - def Lean.Environment.minimalRequiredModules - def Lean.Name.findHome - def Lean.NameMap.downstreamOf - def Lean.NameMap.filterGraph - def Lean.NameMap.transitiveFilteredUpstream - def Lean.NameMap.transitiveReduction - def Lean.NameMap.upstreamOf - def redundantImports Modified lake-manifest.json Modified lakefile.lean Deleted test/Imports.lean 2024-01-10 11:30:59 c2e1bcc feat(CategoryTheory): definition of Galois categories (#9557) Adds the definition of Galois categories in the sense of SGA1 following notes by Lenstra. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Galois/Basic.lean 2024-01-10 10:28:17 7c3197c feat(Algebra/Homology/HomotopyCategory): various prerequisites for the triangulated structure (#9592) This PR adds various small prerequisites for the construction of the triangulated structure on the homotopy category of cochain complexes. ESTIMATED CHANGES Modified Mathlib/Algebra/Homology/HomotopyCategory.lean + theorem HomotopyCategory.isZero_quotient_obj_iff Modified Mathlib/Algebra/Homology/HomotopyCategory/HomComplex.lean + theorem CochainComplex.HomComplex.Cocycle.coe_units_smul + theorem CochainComplex.HomComplex.δ_comp_ofHom + theorem CochainComplex.HomComplex.δ_comp_zero_cocycle + theorem CochainComplex.HomComplex.δ_ofHom_comp + theorem CochainComplex.HomComplex.δ_zero_cocycle_comp Modified Mathlib/Algebra/Homology/HomotopyCategory/HomComplexShift.lean Modified Mathlib/Algebra/Homology/HomotopyCategory/Shift.lean + theorem CochainComplex.shiftFunctor_obj_X' Modified Mathlib/CategoryTheory/Triangulated/Basic.lean + theorem CategoryTheory.Iso.hom_inv_id_triangle_hom₁ + theorem CategoryTheory.Iso.hom_inv_id_triangle_hom₂ + theorem CategoryTheory.Iso.hom_inv_id_triangle_hom₃ + theorem CategoryTheory.Iso.inv_hom_id_triangle_hom₁ + theorem CategoryTheory.Iso.inv_hom_id_triangle_hom₂ + theorem CategoryTheory.Iso.inv_hom_id_triangle_hom₃ + theorem CategoryTheory.Pretriangulated.comp_hom₁ + theorem CategoryTheory.Pretriangulated.comp_hom₂ + theorem CategoryTheory.Pretriangulated.comp_hom₃ + theorem CategoryTheory.Pretriangulated.id_hom₁ + theorem CategoryTheory.Pretriangulated.id_hom₂ + theorem CategoryTheory.Pretriangulated.id_hom₃ 2024-01-10 10:28:16 0788787 feat(Analysis/Analytic): define meromorphic functions (#9590) This patch defines `MeromorphicAt`, for functions on nontrivially normed fields, and prove it is preserved by sums and products (routine) and inverses (much less trivial). Along the way, we define "order of vanishing" for a function analytic at a point (as an `ENat`). ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Analysis/Analytic/IsolatedZeros.lean + theorem AnalyticAt.exists_eventuallyEq_pow_smul_nonzero_iff + theorem AnalyticAt.order_eq_nat_iff + theorem AnalyticAt.order_eq_top_iff + theorem AnalyticAt.unique_eventuallyEq_pow_smul_nonzero Added Mathlib/Analysis/Analytic/Meromorphic.lean + theorem AnalyticAt.meromorphicAt + theorem MeromorphicAt.add + theorem MeromorphicAt.congr + theorem MeromorphicAt.div + theorem MeromorphicAt.inv + theorem MeromorphicAt.inv_iff + theorem MeromorphicAt.mul + theorem MeromorphicAt.neg + theorem MeromorphicAt.neg_iff + theorem MeromorphicAt.smul + theorem MeromorphicAt.sub + def MeromorphicAt + theorem meromorphicAt_const + theorem meromorphicAt_id 2024-01-10 10:28:15 b8dc366 chore: Relocate big operator lemmas (#9383) A bunch of lemmas in `Algebra.BigOperators.Ring` were not about rings. This PR moves them along with some lemmas from `Data.Fintype.BigOperators` to their correct place. I create a new file with the content from #6605 to avoid importing `Fin` material in finset files as a result. From LeanAPAP ESTIMATED CHANGES Modified Archive/Wiedijk100Theorems/SumOfPrimeReciprocalsDiverges.lean Modified Mathlib.lean Modified Mathlib/Algebra/BigOperators/Basic.lean +/- theorem Finset.prod_attach + theorem Finset.prod_attach_univ + theorem Finset.prod_pow_eq_pow_sum + theorem Finset.prod_powerset + theorem Finset.prod_powerset_cons + theorem Finset.prod_powerset_insert + theorem Finset.prod_univ_pi Modified Mathlib/Algebra/BigOperators/Ring.lean +/- theorem Finset.dvd_sum +/- theorem Finset.mul_sum +/- theorem Finset.prod_add +/- theorem Finset.prod_add_ordered +/- theorem Finset.prod_natCast +/- theorem Finset.prod_one_sub_ordered - theorem Finset.prod_pow_eq_pow_sum - theorem Finset.prod_powerset - theorem Finset.prod_powerset_insert +/- theorem Finset.prod_sub_ordered +/- theorem Finset.prod_sum + theorem Finset.prod_univ_sum +/- theorem Finset.sum_boole_mul +/- theorem Finset.sum_div +/- theorem Finset.sum_mul +/- theorem Finset.sum_mul_boole +/- theorem Finset.sum_mul_sum + theorem Finset.sum_pow' +/- theorem Finset.sum_pow_mul_eq_add_pow + theorem Finset.sum_prod_piFinset +/- theorem Finset.sum_range_succ_mul_sum_range_succ + theorem Fintype.sum_pow_mul_eq_add_pow Modified Mathlib/Analysis/Convex/Combination.lean Modified Mathlib/Analysis/Hofer.lean - theorem pos_div_pow_pos Modified Mathlib/Analysis/Matrix.lean Modified Mathlib/Analysis/NormedSpace/FiniteDimension.lean Modified Mathlib/Data/Complex/Exponential.lean Added Mathlib/Data/Fin/Tuple/Finset.lean + theorem Fin.cons_mem_piFinset_cons + theorem Fin.mem_piFinset_succ' + theorem Fin.mem_piFinset_succ + theorem Fin.snoc_mem_piFinset_snoc Modified Mathlib/Data/Fintype/BigOperators.lean - theorem Finset.prod_attach_univ - theorem Finset.prod_univ_pi - theorem Finset.prod_univ_sum - theorem Fintype.sum_pow_mul_eq_add_pow Modified Mathlib/Data/Fintype/Pi.lean - theorem Fin.cons_mem_piFinset_cons_iff - theorem Fin.mem_piFinset_succ_iff' - theorem Fin.mem_piFinset_succ_iff - theorem Fin.snoc_mem_piFinset_snoc_iff Modified Mathlib/Data/Polynomial/Identities.lean Modified Mathlib/Data/Real/NNReal.lean - theorem NNReal.sum_div Modified Mathlib/FieldTheory/ChevalleyWarning.lean Modified Mathlib/LinearAlgebra/Matrix/Determinant.lean Modified Mathlib/MeasureTheory/Function/SimpleFunc.lean Modified Mathlib/NumberTheory/ArithmeticFunction.lean Modified Mathlib/NumberTheory/LegendreSymbol/GaussEisensteinLemmas.lean Modified Mathlib/RingTheory/Adjoin/PowerBasis.lean Modified Mathlib/RingTheory/Polynomial/ScaleRoots.lean 2024-01-10 10:28:14 2d16ed0 feat(Mathlib/Analysis/Analytic): continuously polynomial functions (#9269) This defines "continuously polynomial" (shortened to "cpolynomial") functions as a special cases of analytic functions: they are the functions that admit a development as a *finite* formal multilinear series. Then we prove their basic properties. The point of doing is this is that finite series are always summable, so we can remove the completeness assumptions in some results about analytic functions (differentiability for example). Examples of continuously polynomial functions include continuous multilinear maps, and functions defined by polynomials. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Analysis/Analytic/Basic.lean + theorem FormalMultilinearSeries.changeOriginSeriesTerm_changeOriginIndexEquiv_symm Added Mathlib/Analysis/Analytic/CPolynomial.lean + theorem CPolynomialAt.add + theorem CPolynomialAt.analyticAt + theorem CPolynomialAt.congr + theorem CPolynomialAt.eventually_cPolynomialAt + theorem CPolynomialAt.exists_ball_cPolynomialOn + theorem CPolynomialAt.exists_mem_nhds_cPolynomialOn + theorem CPolynomialAt.neg + theorem CPolynomialAt.sub + def CPolynomialAt + theorem CPolynomialAt_congr + theorem CPolynomialAt_const + theorem CPolynomialOn.add + theorem CPolynomialOn.analyticOn + theorem CPolynomialOn.congr' + theorem CPolynomialOn.congr + theorem CPolynomialOn.continuous + theorem CPolynomialOn.mono + theorem CPolynomialOn.sub + def CPolynomialOn + theorem CPolynomialOn_congr' + theorem CPolynomialOn_congr + theorem CPolynomialOn_const + theorem ContinuousLinearMap.comp_cPolynomialOn + theorem ContinuousLinearMap.comp_hasFiniteFPowerSeriesOnBall + theorem FormalMultilinearSeries.cPolynomialAt_changeOrigin_of_finite + theorem FormalMultilinearSeries.changeOriginSeriesTerm_bound + theorem FormalMultilinearSeries.changeOriginSeries_finite_of_finite + theorem FormalMultilinearSeries.changeOriginSeries_sum_eq_partialSum_of_finite + theorem FormalMultilinearSeries.changeOrigin_eval_of_finite + theorem FormalMultilinearSeries.changeOrigin_finite_of_finite + theorem FormalMultilinearSeries.hasFiniteFPowerSeriesOnBall_changeOrigin + theorem HasFiniteFPowerSeriesAt.add + theorem HasFiniteFPowerSeriesAt.cPolynomialAt + theorem HasFiniteFPowerSeriesAt.congr + theorem HasFiniteFPowerSeriesAt.eventually_const_of_bound_one + theorem HasFiniteFPowerSeriesAt.eventually_zero_of_bound_zero + theorem HasFiniteFPowerSeriesAt.finite + theorem HasFiniteFPowerSeriesAt.neg + theorem HasFiniteFPowerSeriesAt.sub + theorem HasFiniteFPowerSeriesAt.toHasFPowerSeriesAt + def HasFiniteFPowerSeriesAt + theorem HasFiniteFPowerSeriesOnBall.add + theorem HasFiniteFPowerSeriesOnBall.bound_zero_of_eq_zero + theorem HasFiniteFPowerSeriesOnBall.cPolynomialAt + theorem HasFiniteFPowerSeriesOnBall.cPolynomialAt_of_mem + theorem HasFiniteFPowerSeriesOnBall.cPolynomialOn + theorem HasFiniteFPowerSeriesOnBall.changeOrigin + theorem HasFiniteFPowerSeriesOnBall.comp_sub + theorem HasFiniteFPowerSeriesOnBall.congr + theorem HasFiniteFPowerSeriesOnBall.eq_const_of_bound_one + theorem HasFiniteFPowerSeriesOnBall.eq_partialSum' + theorem HasFiniteFPowerSeriesOnBall.eq_partialSum + theorem HasFiniteFPowerSeriesOnBall.eq_zero_of_bound_zero + theorem HasFiniteFPowerSeriesOnBall.hasFiniteFPowerSeriesAt + theorem HasFiniteFPowerSeriesOnBall.mono + theorem HasFiniteFPowerSeriesOnBall.neg + theorem HasFiniteFPowerSeriesOnBall.sub + theorem HasFiniteFPowerSeriesOnBall.sum + structure HasFiniteFPowerSeriesOnBall + theorem hasFiniteFPowerSeriesAt_const + theorem hasFiniteFPowerSeriesOnBall_const + theorem isOpen_cPolynomialAt Modified Mathlib/Analysis/Calculus/FDeriv/Analytic.lean + theorem CPolynomialAt.contDiffAt + theorem CPolynomialOn.contDiffOn + theorem CPolynomialOn.fderiv + theorem CPolynomialOn.iteratedFDeriv + theorem CPolynomialOn.iterated_deriv + theorem HasFiniteFPowerSeriesOnBall.differentiableOn + theorem HasFiniteFPowerSeriesOnBall.fderiv' + theorem HasFiniteFPowerSeriesOnBall.fderiv_eq + theorem HasFiniteFPowerSeriesOnBall.hasFDerivAt 2024-01-10 10:28:12 16a2a52 chore(Order/PFilter): cosmetic improvement (#9177) ESTIMATED CHANGES Modified Mathlib/Order/PFilter.lean +/- structure Order.PFilter 2024-01-10 09:09:14 476bd97 feat: Strong induction on nonempty finsets (#9308) See https://leanprover.zulipchat.com/#narrow/stream/217875-Is-there-code-for-X.3F/topic/Proof.20by.20descent.20on.20finite.20sets ESTIMATED CHANGES Modified Mathlib/Data/Finset/Basic.lean Modified Mathlib/Data/Finset/Card.lean 2024-01-10 09:09:12 33ffe52 feat: Add Basis.of_isLocalizedModule (#9210) Let `Mₛ` be a `R`-module and let `M` be a submodule of `Mₛ` such that `Mₛ` is the localization at `S` of `M` where `S` is a submonoid of `R`. Assume that `Mₛ` is a `Rₛ`-module where `Rₛ` is a localization of `R` at `S`. Then, any `R`-basis of `M` is a `Rₛ`-basis of `Mₛ`. This result is used to prove the results about `Basis.localizationLocalization`. For that, it is necessary to move some results between files and modify some imports. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Algebra/Bilinear.lean + theorem Algebra.lmul_isUnit_iff Modified Mathlib/Algebra/Group/Units.lean + theorem IsUnit.isUnit_iff_mulLeft_bijective + theorem IsUnit.isUnit_iff_mulRight_bijective Modified Mathlib/Algebra/Module/LocalizedModule.lean - theorem IsLocalizedModule.isBaseChange + theorem IsLocalizedModule.of_linearEquiv + theorem isLocalizedModule_id + theorem isLocalizedModule_iff_isLocalization' + theorem isLocalizedModule_iff_isLocalization Modified Mathlib/Algebra/Module/Submodule/Localization.lean Modified Mathlib/LinearAlgebra/Dimension/Localization.lean Added Mathlib/RingTheory/Localization/BaseChange.lean + theorem IsLocalizedModule.isBaseChange + theorem isLocalizedModule_iff_isBaseChange Modified Mathlib/RingTheory/Localization/Basic.lean Modified Mathlib/RingTheory/Localization/Module.lean + theorem Basis.ofIsLocalizedModule_apply + theorem Basis.ofIsLocalizedModule_repr_apply + theorem Basis.ofIsLocalizedModule_span + theorem LinearIndependent.of_isLocalizedModule - theorem SpanEqTop.localization_localization + theorem span_eq_top_localization_localization + theorem span_eq_top_of_isLocalizedModule 2024-01-10 08:02:52 e5e233f feat(CategoryTheory/SingleObj): add functor and NatTrans constructors for `SingleObj` (#9586) Adds constructors for functors of type `SingleObj α ⥤ C` and natural transformations of functors `SingleObj α ⥤ C`. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/SingleObj.lean + def CategoryTheory.SingleObj.functor + def CategoryTheory.SingleObj.natTrans 2024-01-10 08:02:51 497ed07 refactor: Split off basic `Nat` file (#9551) `Data.Nat.Basic` is currently made of two things: * Basic lemmas that continue the theory in Std (and could belong there, really) * Basic algebraic order instances I need the first ones earlier in the algebraic order hierarchy, hence the split. Part of #9411. Similar to #9443 ESTIMATED CHANGES Modified Archive/Arithcc.lean Modified Mathlib.lean Modified Mathlib/Algebra/GroupPower/CovariantClass.lean Modified Mathlib/Combinatorics/Quiver/Arborescence.lean Modified Mathlib/Control/Random.lean Modified Mathlib/Data/Nat/Basic.lean - theorem LT.lt.nat_succ_le - theorem Nat.add_def - theorem Nat.add_mod_eq_add_mod_left - theorem Nat.add_mod_eq_add_mod_right - theorem Nat.add_one_le_iff - theorem Nat.add_succ_sub_one - theorem Nat.and_forall_succ - def Nat.decreasingInduction' - def Nat.decreasingInduction - theorem Nat.decreasingInduction_self - theorem Nat.decreasingInduction_succ' - theorem Nat.decreasingInduction_succ - theorem Nat.decreasingInduction_succ_left - theorem Nat.decreasingInduction_trans - theorem Nat.div_add_mod' - theorem Nat.div_le_div_left - theorem Nat.div_le_iff_le_mul_add_pred - theorem Nat.div_lt_iff_lt_mul' - theorem Nat.div_lt_one_iff - theorem Nat.div_lt_self' - theorem Nat.div_mul_div_comm - theorem Nat.eq_of_dvd_of_div_eq_one - theorem Nat.eq_of_le_of_lt_succ - theorem Nat.eq_of_lt_succ_of_not_lt - theorem Nat.eq_zero_of_dvd_of_div_eq_zero - theorem Nat.exists_eq_add_of_le' - theorem Nat.exists_eq_add_of_le - theorem Nat.exists_eq_add_of_lt - theorem Nat.exists_lt_succ - theorem Nat.findGreatest_eq - theorem Nat.findGreatest_of_not - theorem Nat.findGreatest_succ - theorem Nat.findGreatest_zero - theorem Nat.find_comp_succ - theorem Nat.find_eq_iff - theorem Nat.find_eq_zero - theorem Nat.find_le - theorem Nat.find_le_iff - theorem Nat.find_lt_iff - theorem Nat.find_mono - theorem Nat.forall_lt_succ - def Nat.leRecOn' - def Nat.leRecOn - theorem Nat.leRecOn_injective - theorem Nat.leRecOn_self - theorem Nat.leRecOn_succ' - theorem Nat.leRecOn_succ - theorem Nat.leRecOn_succ_left - theorem Nat.leRecOn_surjective - theorem Nat.leRecOn_trans - theorem Nat.le_div_iff_mul_le' - theorem Nat.le_find_iff - theorem Nat.le_induction - theorem Nat.le_of_pred_lt - theorem Nat.lt_add_one_iff - theorem Nat.lt_div_mul_add - theorem Nat.lt_find_iff - theorem Nat.lt_iff_add_one_le - theorem Nat.lt_iff_le_pred - theorem Nat.lt_mul_div_succ - theorem Nat.lt_mul_of_div_lt - theorem Nat.lt_of_div_lt_div - theorem Nat.lt_one_add_iff - theorem Nat.lt_succ_iff - theorem Nat.lt_succ_iff_lt_or_eq - theorem Nat.mod_add_div' - theorem Nat.mod_eq_iff_lt - theorem Nat.mod_mod_of_dvd - theorem Nat.mod_succ - theorem Nat.mod_succ_eq_iff_lt - theorem Nat.mul_add_mod' - theorem Nat.mul_add_mod_of_lt - theorem Nat.mul_def - theorem Nat.mul_div_le_mul_div_assoc - theorem Nat.mul_dvd_of_dvd_div - theorem Nat.mul_left_eq_self_iff - theorem Nat.mul_ne_mul_left - theorem Nat.mul_ne_mul_right - theorem Nat.mul_right_eq_self_iff - theorem Nat.not_succ_lt_self - theorem Nat.of_le_succ - theorem Nat.one_add_le_iff - theorem Nat.one_le_div_iff - theorem Nat.one_lt_mul_iff - theorem Nat.one_lt_succ_succ - theorem Nat.or_exists_succ - def Nat.pincerRecursion - theorem Nat.pred_add_self - theorem Nat.pred_eq_of_eq_succ - theorem Nat.pred_eq_self_iff - theorem Nat.pred_eq_sub_one - theorem Nat.pred_eq_succ_iff - theorem Nat.pred_one_add - theorem Nat.pred_sub - theorem Nat.rec_add_one - theorem Nat.rec_zero - theorem Nat.self_add_pred - theorem Nat.self_add_sub_one - def Nat.strongRecOn' - theorem Nat.strongRecOn'_beta - def Nat.strongSubRecursion - theorem Nat.sub_one_add_self - theorem Nat.succ_add_sub_one - theorem Nat.succ_injective - theorem Nat.succ_le_iff - theorem Nat.succ_ne_succ - theorem Nat.succ_pos' - theorem Nat.succ_succ_ne_one - theorem Nat.two_lt_of_ne - theorem Nat.two_mul_ne_two_mul_add_one Added Mathlib/Data/Nat/Defs.lean + theorem Nat.add_def + theorem Nat.add_mod_eq_add_mod_left + theorem Nat.add_mod_eq_add_mod_right + theorem Nat.add_one_le_iff + theorem Nat.add_succ_sub_one + theorem Nat.and_forall_succ + def Nat.decreasingInduction' + def Nat.decreasingInduction + theorem Nat.decreasingInduction_self + theorem Nat.decreasingInduction_succ' + theorem Nat.decreasingInduction_succ + theorem Nat.decreasingInduction_succ_left + theorem Nat.decreasingInduction_trans + theorem Nat.div_add_mod' + theorem Nat.div_le_div_left + theorem Nat.div_le_iff_le_mul_add_pred + theorem Nat.div_lt_iff_lt_mul' + theorem Nat.div_lt_one_iff + theorem Nat.div_lt_self' + theorem Nat.div_mul_div_comm + theorem Nat.eq_of_dvd_of_div_eq_one + theorem Nat.eq_of_le_of_lt_succ + theorem Nat.eq_of_lt_succ_of_not_lt + theorem Nat.eq_zero_of_dvd_of_div_eq_zero + theorem Nat.exists_eq_add_of_le' + theorem Nat.exists_eq_add_of_le + theorem Nat.exists_eq_add_of_lt + theorem Nat.exists_lt_succ + def Nat.findGreatest + theorem Nat.findGreatest_eq + theorem Nat.findGreatest_of_not + theorem Nat.findGreatest_succ + theorem Nat.findGreatest_zero + theorem Nat.find_comp_succ + theorem Nat.find_eq_iff + theorem Nat.find_eq_zero + theorem Nat.find_le + theorem Nat.find_le_iff + theorem Nat.find_lt_iff + theorem Nat.find_mono + theorem Nat.forall_lt_succ + def Nat.leRecOn' + def Nat.leRecOn + theorem Nat.leRecOn_injective + theorem Nat.leRecOn_self + theorem Nat.leRecOn_succ' + theorem Nat.leRecOn_succ + theorem Nat.leRecOn_succ_left + theorem Nat.leRecOn_surjective + theorem Nat.leRecOn_trans + theorem Nat.le_div_iff_mul_le' + theorem Nat.le_find_iff + theorem Nat.le_induction + theorem Nat.le_of_pred_lt + theorem Nat.le_one_iff_eq_zero_or_eq_one + theorem Nat.le_succ_iff + theorem Nat.lt_add_one_iff + theorem Nat.lt_div_mul_add + theorem Nat.lt_find_iff + theorem Nat.lt_iff_add_one_le + theorem Nat.lt_iff_le_pred + theorem Nat.lt_mul_div_succ + theorem Nat.lt_mul_of_div_lt + theorem Nat.lt_of_div_lt_div + theorem Nat.lt_one_add_iff + theorem Nat.lt_succ_iff + theorem Nat.lt_succ_iff_lt_or_eq + theorem Nat.mod_add_div' + theorem Nat.mod_eq_iff_lt + theorem Nat.mod_mod_of_dvd + theorem Nat.mod_succ + theorem Nat.mod_succ_eq_iff_lt + theorem Nat.mul_add_mod' + theorem Nat.mul_add_mod_of_lt + theorem Nat.mul_def + theorem Nat.mul_div_le_mul_div_assoc + theorem Nat.mul_dvd_of_dvd_div + theorem Nat.mul_eq_left + theorem Nat.mul_eq_right + theorem Nat.mul_left_eq_self_iff + theorem Nat.mul_right_eq_self_iff + theorem Nat.not_succ_lt_self + theorem Nat.one_add_le_iff + theorem Nat.one_le_div_iff + theorem Nat.one_le_iff_ne_zero + theorem Nat.one_lt_iff_ne_zero_and_ne_one + theorem Nat.one_lt_mul_iff + theorem Nat.one_lt_succ_succ + theorem Nat.or_exists_succ + def Nat.pincerRecursion + theorem Nat.pred_add_self + theorem Nat.pred_eq_of_eq_succ + theorem Nat.pred_eq_self_iff + theorem Nat.pred_eq_sub_one + theorem Nat.pred_eq_succ_iff + theorem Nat.pred_one_add + theorem Nat.pred_sub + theorem Nat.rec_add_one + theorem Nat.rec_zero + theorem Nat.self_add_pred + theorem Nat.self_add_sub_one + def Nat.strongRecOn' + theorem Nat.strongRecOn'_beta + def Nat.strongSubRecursion + theorem Nat.sub_one_add_self + theorem Nat.succ_add_sub_one + theorem Nat.succ_injective + theorem Nat.succ_le_iff + theorem Nat.succ_ne_succ + theorem Nat.succ_pos' + theorem Nat.succ_succ_ne_one + theorem Nat.two_lt_of_ne + theorem Nat.two_mul_ne_two_mul_add_one Modified Mathlib/Data/Nat/EvenOddRec.lean Modified Mathlib/Data/Nat/Factorial/Basic.lean Modified Mathlib/Data/Nat/Order/Basic.lean - theorem Nat.le_one_iff_eq_zero_or_eq_one - theorem Nat.one_le_iff_ne_zero - theorem Nat.one_lt_iff_ne_zero_and_ne_one Modified Mathlib/Data/Nat/Parity.lean Modified Mathlib/Data/Seq/Seq.lean Modified Mathlib/ModelTheory/DirectLimit.lean Modified Mathlib/Testing/SlimCheck/Gen.lean Modified Mathlib/Testing/SlimCheck/Sampleable.lean Modified Mathlib/Topology/MetricSpace/Gluing.lean 2024-01-10 08:02:50 bf66c90 feat: BinomialRing instance for integers (#9537) We add a binomial ring instance for integers. To prove the necessary identity for negative integers, we add a lemma comparing evaluations of ascending and descending Pochhammer polynomials. ESTIMATED CHANGES Modified Mathlib/RingTheory/Binomial.lean + def Int.multichoose Modified Mathlib/RingTheory/Polynomial/Pochhammer.lean + theorem ascPochhammer_eval_neg_eq_descPochhammer 2024-01-10 08:02:49 95e61f3 feat: define power-associativity in unital setting (#9439) introduce Prop-valued mixin NatPowAssoc and show that power-associativity holds for monoids. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Group/NatPowAssoc.lean + theorem Int.cast_npow + theorem Nat.cast_npow + theorem npow_add + theorem npow_mul' + theorem npow_mul + theorem npow_mul_assoc + theorem npow_mul_comm + theorem npow_one + theorem npow_zero 2024-01-10 07:33:52 b520d4a feat: Generalizing two lemmas from CommRing to CommSemiring (#9599) ESTIMATED CHANGES Modified Mathlib/AlgebraicGeometry/PrimeSpectrum/Basic.lean +/- theorem PrimeSpectrum.vanishingIdeal_isClosed_isIrreducible +/- theorem PrimeSpectrum.vanishingIdeal_isIrreducible 2024-01-10 06:51:29 b071b57 feat(Algebra/DirectSum/Decomposition): degree of a non-zero homogeneous element is unique (#9597) if $x \in M = \bigoplus M_i$ is not $0$ such that $x \in M_i$ and $x \in M_j$, then $i = j$ ESTIMATED CHANGES Modified Mathlib/Algebra/DirectSum/Decomposition.lean + theorem DirectSum.degree_eq_of_mem_mem 2024-01-10 02:32:21 7d5dce5 chore: CI: improve comment created on lean PRs (#9585) this mirrors the change in https://github.com/leanprover/lean4/pull/3148 ESTIMATED CHANGES Modified scripts/lean-pr-testing-comments.sh 2024-01-09 23:05:16 518fe03 chore(Analysis.NormedSpace.Star.Matrix): add missing `nnnorm` lemmas (#9600) ESTIMATED CHANGES Modified Mathlib/Analysis/NormedSpace/Star/Matrix.lean + theorem Matrix.l2_op_nnnorm_conjTranspose + theorem Matrix.l2_op_nnnorm_conjTranspose_mul_self 2024-01-09 22:39:03 03a46de feat(RepresentationTheory/Action): add preservation of (co)limits lemmas for functors into `Action V G` (#9558) Shows that a functor into `Action V G` preserves a given (co)limit if it does after postcomposing with the forgetful functor to `V`. ESTIMATED CHANGES Modified Mathlib/RepresentationTheory/Action/Limits.lean + def Action.preservesColimitOfPreserves + def Action.preservesColimitsOfShapeOfPreserves + def Action.preservesColimitsOfSizeOfPreserves + def Action.preservesLimitOfPreserves + def Action.preservesLimitsOfShapeOfPreserves + def Action.preservesLimitsOfSizeOfPreserves 2024-01-09 21:58:40 b8370f8 feat: Basic `Complex` lemmas (#9527) and rename `ofReal_mul_re → re_mul_ofReal`, `ofReal_mul_im → im_mul_ofReal`. From LeanAPAP ESTIMATED CHANGES Modified Mathlib/Analysis/Complex/PhragmenLindelof.lean Modified Mathlib/Analysis/Fourier/AddCircle.lean Modified Mathlib/Analysis/InnerProductSpace/Basic.lean Modified Mathlib/Analysis/SpecialFunctions/CompareExp.lean Modified Mathlib/Analysis/SpecialFunctions/Complex/Arg.lean Modified Mathlib/Analysis/SpecialFunctions/Gamma/Basic.lean Modified Mathlib/Analysis/SpecialFunctions/Gamma/Beta.lean Modified Mathlib/Analysis/SpecialFunctions/Gaussian.lean Modified Mathlib/Analysis/SpecialFunctions/Integrals.lean Modified Mathlib/Analysis/SpecialFunctions/Pow/Real.lean Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Basic.lean Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/EulerSineProd.lean Modified Mathlib/Data/Complex/Abs.lean + theorem Complex.abs_add_mul_I Modified Mathlib/Data/Complex/Basic.lean +/- theorem Complex.I_ne_zero + theorem Complex.im_mul_ofReal + theorem Complex.im_ofReal_mul - theorem Complex.ofReal_mul_im - theorem Complex.ofReal_mul_re + theorem Complex.ofReal_nsmul + theorem Complex.ofReal_zsmul + theorem Complex.re_mul_ofReal + theorem Complex.re_ofReal_mul Modified Mathlib/Data/IsROrC/Basic.lean + theorem IsROrC.im_ofReal_mul - theorem IsROrC.ofReal_mul_im - theorem IsROrC.ofReal_mul_re + theorem IsROrC.re_ofReal_mul Modified Mathlib/NumberTheory/Modular.lean Modified Mathlib/NumberTheory/ModularForms/JacobiTheta/Basic.lean Modified Mathlib/NumberTheory/ZetaFunction.lean 2024-01-09 21:58:39 316407d feat(AlgebraicTopology/SimplicialSet): constructors for subfaces (#9363) constructors for subfaces of the standard simplex and horn simplices ESTIMATED CHANGES Modified Mathlib/AlgebraicTopology/SimplicialSet.lean + def SSet.horn.const + def SSet.horn.edge + def SSet.horn.edge₃ + def SSet.horn.primitiveEdge + def SSet.horn.primitiveTriangle + theorem SSet.standardSimplex.coe_edge_toOrderHom + theorem SSet.standardSimplex.coe_triangle_toOrderHom + def SSet.standardSimplex.const + theorem SSet.standardSimplex.const_toOrderHom + def SSet.standardSimplex.edge + def SSet.standardSimplex.triangle 2024-01-09 21:58:38 4a55c95 refactor(CategoryTheory/Sites): sheafification as an abstract left adjoint (#9012) We define a typeclass `HasSheafify` which says that presheaves on a site with values in some category can be sheafified, i.e. that the inclusion functor from sheaves to presheaves has a left exact left adjoint. We redefine `presheafToSheaf` as an arbitrary choice of such a left adjoint. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/CategoryTheory/Sites/Adjunction.lean Modified Mathlib/CategoryTheory/Sites/CompatibleSheafification.lean Modified Mathlib/CategoryTheory/Sites/ConcreteSheafification.lean +/- theorem CategoryTheory.GrothendieckTopology.toSheafification_app Modified Mathlib/CategoryTheory/Sites/ConstantSheaf.lean Modified Mathlib/CategoryTheory/Sites/CoverLifting.lean Modified Mathlib/CategoryTheory/Sites/DenseSubsite.lean Modified Mathlib/CategoryTheory/Sites/LeftExact.lean + def CategoryTheory.plusPlusFunctorIsoSheafification + def CategoryTheory.plusPlusIsoSheafify + def CategoryTheory.plusPlusSheafIsoPresheafToSheaf Added Mathlib/CategoryTheory/Sites/Sheafification.lean + theorem CategoryTheory.HasSheafify.mk' + theorem CategoryTheory.isIso_toSheafify + theorem CategoryTheory.isoSheafify_hom + theorem CategoryTheory.isoSheafify_inv + def CategoryTheory.presheafToSheaf + def CategoryTheory.sheafificationAdjunction + theorem CategoryTheory.sheafificationAdjunction_counit_app_val + theorem CategoryTheory.sheafificationAdjunction_unit_app + theorem CategoryTheory.sheafification_map + theorem CategoryTheory.sheafification_obj + theorem CategoryTheory.sheafifyLift_unique + theorem CategoryTheory.sheafifyMap_comp + theorem CategoryTheory.sheafifyMap_id + theorem CategoryTheory.sheafifyMap_sheafifyLift + theorem CategoryTheory.sheafify_hom_ext + theorem CategoryTheory.toSheafification_app + theorem CategoryTheory.toSheafify_naturality + theorem CategoryTheory.toSheafify_sheafifyLift Modified Mathlib/CategoryTheory/Sites/Subsheaf.lean Modified Mathlib/CategoryTheory/Sites/Surjective.lean Modified Mathlib/Condensed/Discrete.lean 2024-01-09 20:44:29 0470fa9 feat: MonoidHom is equivalent to MulAction + IsScalarTower (#9381) Natural strengthening/extension of `MonoidHom/RingHom.smulOneHom`. Follow-up of #9064. `monoidHomEquivMulActionIsScalarTower`: A homomorphism between two monoids M and N can be equivalently specified by a multiplicative action of M on N that is compatible with the multiplication on N. `ringHomEquivModuleIsScalarTower`: A homomorphism between semirings R and S can be equivalently specified by a R-module structure on S such that S/S/R is a scalar tower. Mathlib doesn't have a typeclass for RingHom between noncommutative rings, but `ringHomEquivModuleIsScalarTower` shows we can achieve the same effect with the combination of Module + IsScalarTower. ESTIMATED CHANGES Modified Mathlib/Algebra/Module/Basic.lean + def ringHomEquivModuleIsScalarTower Modified Mathlib/GroupTheory/GroupAction/Defs.lean + def monoidHomEquivMulActionIsScalarTower 2024-01-09 20:08:45 487e198 feat(Algebra/Homology): the mapping cone (#8951) This PR completes the basic API for the mapping cone which shall be used in order to show that the homotopy category of cochain complexes is a triangulated category. ESTIMATED CHANGES Modified Mathlib/Algebra/Homology/HomotopyCategory/MappingCone.lean + theorem CochainComplex.mappingCone.liftCochain_descCochain + theorem CochainComplex.mappingCone.liftCochain_fst + theorem CochainComplex.mappingCone.liftCochain_snd + theorem CochainComplex.mappingCone.liftCochain_v_descCochain_v + theorem CochainComplex.mappingCone.liftCochain_v_fst_v + theorem CochainComplex.mappingCone.liftCochain_v_snd_v + theorem CochainComplex.mappingCone.lift_desc_f + theorem CochainComplex.mappingCone.lift_f + theorem CochainComplex.mappingCone.lift_f_fst_v + theorem CochainComplex.mappingCone.lift_f_snd_v + theorem CochainComplex.mappingCone.lift_fst + theorem CochainComplex.mappingCone.lift_snd + theorem CochainComplex.mappingCone.ofHom_lift + theorem CochainComplex.mappingCone.δ_liftCochain Modified Mathlib/Algebra/Homology/HomotopyCofiber.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Biproducts.lean + theorem CategoryTheory.Limits.biprod_isZero_iff 2024-01-09 19:00:38 de2a15b refactor(Probability/Distributions/Exponential): exponential distrubtion as special case of Gamma distribution (#9462) Refactor most proofs of `Probability/Distributions/Exponential.lean` in terms of the proofs in `Probability/Distributions/Gamma.lean`, as the exponential distribution is a special case of the Gamma distribution. Adds `stronglyMeasurable_gammaPdfReal` to `Probability/Distributions/Gamma` and [@measurability] tags to the necessary results in `Probability/Distributions/Gamma` and `Probability/Distributions/Exponential. ` Style : improve consistency in notation. ESTIMATED CHANGES Modified Mathlib/Probability/Distributions/Exponential.lean +/- def ProbabilityTheory.expMeasure +/- theorem ProbabilityTheory.exponentialCdfReal_eq +/- theorem ProbabilityTheory.exponentialCdfReal_eq_integral +/- theorem ProbabilityTheory.exponentialCdfReal_eq_lintegral +/- theorem ProbabilityTheory.exponentialPdfReal_pos +/- theorem ProbabilityTheory.exponentialPdf_of_neg - theorem ProbabilityTheory.hasDerivAt_exp_neg + theorem ProbabilityTheory.isProbabilityMeasureExponential +/- theorem ProbabilityTheory.lintegral_exponentialPdf_eq_antiDeriv +/- theorem ProbabilityTheory.lintegral_exponentialPdf_eq_one +/- theorem ProbabilityTheory.measurable_exponentialPdfReal +/- theorem ProbabilityTheory.stronglyMeasurable_exponentialPdfReal - theorem lintegral_eq_lintegral_Ici_add_Iio Modified Mathlib/Probability/Distributions/Gamma.lean + theorem ProbabilityTheory.stronglyMeasurable_gammaPdfReal 2024-01-09 19:00:37 4fd6d05 chore(AlgebraicTopology/TopologicalSimplex): clean up, golf (#9431) ESTIMATED CHANGES Modified Mathlib/AlgebraicTopology/TopologicalSimplex.lean +/- def SimplexCategory.toTopMap +/- def SimplexCategory.toTopObj Modified Mathlib/Data/Finset/Basic.lean + theorem Set.pairwiseDisjoint_filter 2024-01-09 18:26:12 a072462 chore(SpecificLimits/FloorPow): use `gcongr` (#9595) ESTIMATED CHANGES Modified Mathlib/Analysis/SpecificLimits/FloorPow.lean 2024-01-09 18:26:11 bdd7632 chore(*): fix more names (#9593) Grep for `^[^#].*deriv_within` and fix all occurrences. ESTIMATED CHANGES Modified Mathlib/Analysis/Calculus/ContDiff/Defs.lean Modified Mathlib/Analysis/Calculus/FDeriv/Basic.lean + theorem Filter.EventuallyEq.fderivWithin' - theorem Filter.EventuallyEq.fderiv_within' Modified Mathlib/Analysis/Calculus/Taylor.lean + theorem hasDerivWithinAt_taylorWithinEval_at_Icc - theorem has_deriv_within_taylorWithinEval_at_Icc Modified Mathlib/MeasureTheory/Integral/DivergenceTheorem.lean + theorem MeasureTheory.integral_eq_of_hasDerivWithinAt_off_countable - theorem MeasureTheory.integral_eq_of_has_deriv_within_at_off_countable 2024-01-09 18:26:10 40c4f80 chore(AlgebraicTopology/SingularSet): factor topology out of `SimplicialSet` into new file (#9428) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/AlgebraicTopology/SimplicialSet.lean Added Mathlib/AlgebraicTopology/SingularSet.lean Modified Mathlib/AlgebraicTopology/TopologicalSimplex.lean 2024-01-09 17:40:24 47a0261 chore: Move `x ⊔ y = (x + y + |y - x|) / 2` (#9466) Part of #9411 ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Group/PosPart.lean - theorem inf_eq_half_smul_add_sub_abs_sub' - theorem inf_eq_half_smul_add_sub_abs_sub - theorem sup_eq_half_smul_add_add_abs_sub' - theorem sup_eq_half_smul_add_add_abs_sub Modified Mathlib/Algebra/Order/Module/OrderedSMul.lean + theorem inf_eq_half_smul_add_sub_abs_sub' + theorem inf_eq_half_smul_add_sub_abs_sub + theorem sup_eq_half_smul_add_add_abs_sub' + theorem sup_eq_half_smul_add_add_abs_sub 2024-01-09 17:16:41 25bcbbb feat: Flooring/ceiling division (#9149) This PR defines flooring and ceiling division as the right and left adjoints to the map `b ↦ a • b`. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Order/Floor/Div.lean + theorem Finsupp.ceilDiv_apply + theorem Finsupp.ceilDiv_def + theorem Finsupp.floorDiv_apply + theorem Finsupp.floorDiv_def + theorem Finsupp.support_ceilDiv_subset + theorem Finsupp.support_floorDiv_subset + theorem Nat.ceilDiv_eq_add_pred_div + theorem Nat.floorDiv_eq_div + theorem Pi.ceilDiv_apply + theorem Pi.ceilDiv_def + theorem Pi.floorDiv_apply + theorem Pi.floorDiv_def + theorem ceilDiv_le_iff_le_mul + theorem ceilDiv_le_iff_le_smul + theorem ceilDiv_of_nonpos + theorem ceilDiv_one + theorem ceilDiv_zero + theorem floorDiv_le_ceilDiv + theorem floorDiv_of_nonpos + theorem floorDiv_one + theorem floorDiv_zero + theorem gc_floorDiv_mul + theorem gc_floorDiv_smul + theorem gc_mul_ceilDiv + theorem gc_smul_ceilDiv + theorem le_floorDiv_iff_mul_le + theorem le_floorDiv_iff_smul_le + theorem le_smul_ceilDiv + theorem smul_ceilDiv + theorem smul_floorDiv + theorem smul_floorDiv_le + theorem zero_ceilDiv + theorem zero_floorDiv 2024-01-09 16:50:56 4346630 refactor(ProperCone): redefine ProperCone using PointedCone (#8878) We change the definition of a `ProperCone` from being a nonempty, closed, `ConvexCone` to a closed, `PointedCone`. This is mathematically (not definitionally) equivalent to the earlier definition as a `PointedCone` is mathematically (not definitionally) the same as a nonempty, `ConvexCone`. The definition of `PointedCone` was added after `ProperCone`. Hence, needed to go back and update the definition. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/Convex/Cone/Closure.lean + theorem ConvexCone.closure_eq + theorem ConvexCone.coe_closure + theorem PointedCone.closure_eq + theorem PointedCone.coe_closure + theorem PointedCone.toConvexCone_closure_pointed Modified Mathlib/Analysis/Convex/Cone/Pointed.lean Modified Mathlib/Analysis/Convex/Cone/Proper.lean - theorem ConvexCone.closure_eq - theorem ConvexCone.coe_closure +/- theorem ProperCone.coe_dual - theorem ProperCone.ext' +/- theorem ProperCone.mem_coe +/- theorem ProperCone.pointed_zero + theorem ProperCone.toPointedCone_injective 2024-01-09 15:48:26 400ca88 chore(*): rename IsPwo to IsPWO (#9582) Rename `Set.IsPwo` → `Set.IsPWO` and `Set.IsWf` → `Set.IsWF`. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Data/Finset/MulAntidiagonal.lean + theorem Finset.isPWO_support_mulAntidiagonal - theorem Finset.isPwo_support_mulAntidiagonal + theorem Set.IsPWO.mul - theorem Set.IsPwo.mul + theorem Set.IsWF.min_mul + theorem Set.IsWF.mul - theorem Set.IsWf.min_mul - theorem Set.IsWf.mul Renamed Mathlib/Data/Finsupp/Pwo.lean to Mathlib/Data/Finsupp/PWO.lean + theorem Finsupp.isPWO - theorem Finsupp.isPwo Modified Mathlib/Data/Set/MulAntidiagonal.lean + theorem Set.MulAntidiagonal.finite_of_isPWO - theorem Set.MulAntidiagonal.finite_of_isPwo + theorem Set.MulAntidiagonal.finite_of_isWF - theorem Set.MulAntidiagonal.finite_of_isWf Modified Mathlib/GroupTheory/Submonoid/Pointwise.lean + theorem Set.IsPWO.submonoid_closure - theorem Set.IsPwo.submonoid_closure Modified Mathlib/Order/WellFoundedSet.lean + theorem Finset.isPWO_bUnion + theorem Finset.isPWO_sup - theorem Finset.isPwo_bUnion - theorem Finset.isPwo_sup + theorem Finset.isWF_bUnion + theorem Finset.isWF_sup - theorem Finset.isWf_bUnion - theorem Finset.isWf_sup + theorem Pi.isPWO - theorem Pi.isPwo + theorem Set.IsPWO.image_of_monotone + theorem Set.IsPWO.image_of_monotoneOn + def Set.IsPWO - theorem Set.IsPwo.image_of_monotone - theorem Set.IsPwo.image_of_monotoneOn - def Set.IsPwo + theorem Set.IsWF.le_min_iff + theorem Set.IsWF.min_le + theorem Set.IsWF.min_le_min_of_subset + theorem Set.IsWF.min_mem + theorem Set.IsWF.min_union + theorem Set.IsWF.mono + def Set.IsWF - theorem Set.IsWf.le_min_iff - theorem Set.IsWf.min_le - theorem Set.IsWf.min_le_min_of_subset - theorem Set.IsWf.min_mem - theorem Set.IsWf.min_union - theorem Set.IsWf.mono - def Set.IsWf + theorem Set.isPWO_empty + theorem Set.isPWO_iff_exists_monotone_subseq + theorem Set.isPWO_insert + theorem Set.isPWO_of_finite + theorem Set.isPWO_singleton + theorem Set.isPWO_union - theorem Set.isPwo_empty - theorem Set.isPwo_iff_exists_monotone_subseq - theorem Set.isPwo_insert - theorem Set.isPwo_of_finite - theorem Set.isPwo_singleton - theorem Set.isPwo_union + theorem Set.isWF_empty + theorem Set.isWF_iff_isPWO + theorem Set.isWF_iff_no_descending_seq + theorem Set.isWF_insert + theorem Set.isWF_min_singleton + theorem Set.isWF_singleton + theorem Set.isWF_union + theorem Set.isWF_univ_iff - theorem Set.isWf_empty - theorem Set.isWf_iff_isPwo - theorem Set.isWf_iff_no_descending_seq - theorem Set.isWf_insert - theorem Set.isWf_min_singleton - theorem Set.isWf_singleton - theorem Set.isWf_union - theorem Set.isWf_univ_iff + theorem WellFounded.isWF - theorem WellFounded.isWf Modified Mathlib/RingTheory/HahnSeries.lean + theorem HahnSeries.SummableFamily.isPWO_iUnion_support - theorem HahnSeries.SummableFamily.isPwo_iUnion_support + theorem HahnSeries.isPWO_iUnion_support_powers + theorem HahnSeries.isPWO_support - theorem HahnSeries.isPwo_iUnion_support_powers - theorem HahnSeries.isPwo_support + theorem HahnSeries.isWF_support - theorem HahnSeries.isWf_support Modified scripts/nolints.json 2024-01-09 14:39:29 b97b7e4 chore: rename meagre to isMeagre in two lemma names (#9591) The corresponding Prop is called `IsMeagre`. ESTIMATED CHANGES Modified Mathlib/Topology/GDelta.lean + theorem isMeagre_iUnion + theorem isMeagre_iff_countable_union_isNowhereDense - theorem meagre_iUnion - theorem meagre_iff_countable_union_isNowhereDense 2024-01-09 14:39:28 8802cc5 chore: improve proof of discr_prime_pow (#9589) The new proof is more robust and does not rewrite a type equality. ESTIMATED CHANGES Modified Mathlib/NumberTheory/Cyclotomic/Discriminant.lean 2024-01-09 14:39:27 0df5fae Fix two typos in `Data.Fin.Basic` (#9587) ESTIMATED CHANGES Modified Mathlib/Data/Fin/Basic.lean 2024-01-09 14:39:26 9d2a0f8 feat: provide the ℓ² operator norm on matrices (#9474) This adds the (unique) C⋆-norm on matrices `Matrix n n 𝕜` with `IsROrC 𝕜` within the scope `Matrix.L2OpNorm`. This norm coincides with the operator norm induced by the ℓ² norm (i.e., the norm on `Matrix m n 𝕜` obtained by pulling back the norm from `EuclideanSpace 𝕜 n →L[𝕜] EuclideanSpace 𝕜 m`). Where possible, we state results for rectangular matrices. ESTIMATED CHANGES Modified Mathlib/Analysis/InnerProductSpace/Adjoint.lean Modified Mathlib/Analysis/InnerProductSpace/PiL2.lean + theorem Matrix.toEuclideanLin_eq_toLin_orthonormal Modified Mathlib/Analysis/Matrix.lean Modified Mathlib/Analysis/NormedSpace/Star/Matrix.lean + theorem Matrix.coe_toEuclideanClm_eq_toEuclideanLin + theorem Matrix.cstar_nnnorm_def + theorem Matrix.cstar_norm_def + theorem Matrix.instCstarRing + def Matrix.instL2OpMetricSpace + def Matrix.instL2OpNormedAddCommGroup + def Matrix.instL2OpNormedAlgebra + def Matrix.instL2OpNormedRing + def Matrix.instL2OpNormedSpace + def Matrix.l2OpNormedAddCommGroupAux + def Matrix.l2OpNormedRingAux + theorem Matrix.l2_op_nnnorm_def + theorem Matrix.l2_op_nnnorm_mul + theorem Matrix.l2_op_nnnorm_mulVec + theorem Matrix.l2_op_norm_conjTranspose + theorem Matrix.l2_op_norm_conjTranspose_mul_self + theorem Matrix.l2_op_norm_def + theorem Matrix.l2_op_norm_mul + theorem Matrix.l2_op_norm_mulVec + theorem Matrix.piLp_equiv_toEuclideanClm + def Matrix.toEuclideanClm + theorem Matrix.toEuclideanClm_piLp_equiv_symm 2024-01-09 14:03:56 bca393b chore(ContDiffAt): fix several names (#9584) Rename - `Filter.EventuallyEq.iterated_fderiv_within'` → `Filter.EventuallyEq.iteratedFDerivWithin'` - `contDiffOn_succ_iff_has_fderiv_within` → `contDiffOn_succ_iff_hasFDerivWithin` - `contDiff_succ_iff_has_fderiv` → `contDiff_succ_iff_hasFDerivAt` ESTIMATED CHANGES Modified Mathlib/Analysis/Calculus/ContDiff/Defs.lean + theorem Filter.EventuallyEq.iteratedFDerivWithin' - theorem Filter.EventuallyEq.iterated_fderiv_within' + theorem contDiffOn_succ_iff_hasFDerivWithin - theorem contDiffOn_succ_iff_has_fderiv_within + theorem contDiff_succ_iff_hasFDerivAt - theorem contDiff_succ_iff_has_fderiv 2024-01-09 10:40:57 bb7a43e chore: minimize some imports (#9559) Started from Algebra/Periodic.lean with some snowball sampling. Seems to be somewhat disjoint from the tree shaking in #9347. ESTIMATED CHANGES Modified Mathlib/Algebra/Module/Basic.lean Modified Mathlib/Algebra/Order/Archimedean.lean Modified Mathlib/Algebra/Periodic.lean Modified Mathlib/Combinatorics/Schnirelmann.lean Modified Mathlib/Data/Nat/Parity.lean Modified Mathlib/Data/Nat/Periodic.lean Modified Mathlib/GroupTheory/Submonoid/Membership.lean Modified Mathlib/NumberTheory/DirichletCharacter/Basic.lean Modified Mathlib/NumberTheory/NumberField/Basic.lean Modified Mathlib/Topology/ContinuousFunction/Algebra.lean 2024-01-09 10:40:55 0c15e42 chore: shift Nat.ascFactorial down by one (#7965) change `ascending factorial` function `Nat.ascFactorial` to agree with mathematical literature. This means `Nat.ascFactorial n k` becomes `n (n + 1) ⋯ (n + k - 1)` instead of `(n + 1) ⋯ (n + k)` ESTIMATED CHANGES Modified Mathlib/Combinatorics/Derangements/Finite.lean Modified Mathlib/Data/Nat/Choose/Basic.lean + theorem Nat.ascFactorial_eq_factorial_mul_choose' + theorem Nat.choose_eq_asc_factorial_div_factorial' Modified Mathlib/Data/Nat/Factorial/Basic.lean + theorem Nat.add_descFactorial_eq_ascFactorial' +/- theorem Nat.add_descFactorial_eq_ascFactorial + theorem Nat.ascFactorial_eq_div' +/- theorem Nat.ascFactorial_eq_div +/- theorem Nat.ascFactorial_le_pow_add +/- theorem Nat.ascFactorial_lt_pow_add +/- theorem Nat.ascFactorial_of_sub +/- theorem Nat.ascFactorial_pos +/- theorem Nat.ascFactorial_succ + theorem Nat.factorial_mul_ascFactorial' +/- theorem Nat.factorial_mul_ascFactorial + theorem Nat.one_ascFactorial +/- theorem Nat.pow_lt_ascFactorial' +/- theorem Nat.pow_lt_ascFactorial +/- theorem Nat.pow_succ_le_ascFactorial +/- theorem Nat.zero_ascFactorial Modified Mathlib/Data/Nat/Factorial/Cast.lean +/- theorem Nat.cast_ascFactorial Modified Mathlib/RingTheory/Polynomial/Pochhammer.lean Modified Mathlib/Tactic/Positivity/Basic.lean Modified test/positivity.lean 2024-01-09 09:25:10 f846056 feat(Topology/Order): add `le_of_tendsto_of_frequently` (#9583) Also add `ge_of_tendsto_of_frequently` ESTIMATED CHANGES Modified Mathlib/Topology/Order/Basic.lean + theorem ge_of_tendsto_of_frequently + theorem le_of_tendsto_of_frequently 2024-01-09 09:25:09 043fa2f chore(ZeroAtInfty): rename `toBcf` to `toBCF` (#9581) ESTIMATED CHANGES Modified Mathlib/Topology/ContinuousFunction/ZeroAtInfty.lean + theorem ZeroAtInftyContinuousMap.closed_range_toBCF - theorem ZeroAtInftyContinuousMap.closed_range_toBcf + theorem ZeroAtInftyContinuousMap.dist_toBCF_eq_dist - theorem ZeroAtInftyContinuousMap.dist_toBcf_eq_dist + theorem ZeroAtInftyContinuousMap.isometry_toBCF - theorem ZeroAtInftyContinuousMap.isometry_toBcf + theorem ZeroAtInftyContinuousMap.norm_toBCF_eq_norm - theorem ZeroAtInftyContinuousMap.norm_toBcf_eq_norm + def ZeroAtInftyContinuousMap.toBCF + theorem ZeroAtInftyContinuousMap.toBCF_injective - def ZeroAtInftyContinuousMap.toBcf - theorem ZeroAtInftyContinuousMap.toBcf_injective 2024-01-09 09:25:08 fb274b3 feat: More `WithBot` lemmas (#9580) This makes simp stronger on `WithBot`, for use in #9083. Also reorder the relevant lemmas so that the `WithTop` and `WithBot` sections are more identical. ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Interval.lean +/- theorem Interval.bot_ne_one +/- theorem Interval.one_ne_bot Modified Mathlib/Algebra/Order/Monoid/WithTop.lean + theorem WithBot.bot_ne_one +/- theorem WithBot.coe_eq_one +/- theorem WithBot.coe_le_one +/- theorem WithBot.coe_lt_one +/- theorem WithBot.coe_one + theorem WithBot.one_eq_coe +/- theorem WithBot.one_le_coe +/- theorem WithBot.one_lt_coe + theorem WithBot.one_ne_bot +/- theorem WithBot.unbot_one' +/- theorem WithTop.coe_eq_one +/- theorem WithTop.one_eq_coe +/- theorem WithTop.one_ne_top +/- theorem WithTop.top_ne_one Modified Mathlib/Algebra/Order/Ring/WithTop.lean Modified Mathlib/Data/Polynomial/FieldDivision.lean Modified Mathlib/RingTheory/Polynomial/Nilpotent.lean 2024-01-09 09:25:07 8b47b2f chore(Covby): rename `Covby` to `CovBy` (#9578) Rename - `Covby` → `CovBy`, `Wcovby` → `WCovBy` - `*covby*` → `*covBy*` - `wcovby.finset_val` → `WCovBy.finset_val`, `wcovby.finset_coe` → `WCovBy.finset_coe` - `Covby.is_coatom` → `CovBy.isCoatom` ESTIMATED CHANGES Modified Mathlib/Algebra/Function/Support.lean Modified Mathlib/Algebra/Order/ToIntervalMod.lean + theorem toIocDiv_wcovBy_toIcoDiv - theorem toIocDiv_wcovby_toIcoDiv Modified Mathlib/Combinatorics/SetFamily/Shadow.lean Modified Mathlib/Combinatorics/SimpleGraph/ConcreteColorings.lean Modified Mathlib/Combinatorics/SimpleGraph/Hasse.lean Modified Mathlib/Data/Fin/FlagRange.lean +/- theorem Flag.mem_rangeFin + theorem IsMaxChain.range_fin_of_covBy - theorem IsMaxChain.range_fin_of_covby Modified Mathlib/Data/Finset/Grade.lean + theorem CovBy.card_finset + theorem CovBy.card_multiset + theorem CovBy.exists_finset_cons + theorem CovBy.exists_finset_erase + theorem CovBy.exists_finset_insert + theorem CovBy.exists_multiset_cons - theorem Covby.card_finset - theorem Covby.card_multiset - theorem Covby.exists_finset_cons - theorem Covby.exists_finset_erase - theorem Covby.exists_finset_insert - theorem Covby.exists_multiset_cons + theorem Finset.coe_covBy_coe - theorem Finset.coe_covby_coe + theorem Finset.coe_wcovBy_coe - theorem Finset.coe_wcovby_coe + theorem Finset.covBy_cons + theorem Finset.covBy_iff_card_sdiff_eq_one + theorem Finset.covBy_iff_exists_cons + theorem Finset.covBy_iff_exists_erase + theorem Finset.covBy_iff_exists_insert + theorem Finset.covBy_insert - theorem Finset.covby_cons - theorem Finset.covby_iff_card_sdiff_eq_one - theorem Finset.covby_iff_exists_cons - theorem Finset.covby_iff_exists_erase - theorem Finset.covby_iff_exists_insert - theorem Finset.covby_insert + theorem Finset.erase_covBy - theorem Finset.erase_covby + theorem Finset.erase_wcovBy - theorem Finset.erase_wcovby + theorem Finset.val_covBy_val - theorem Finset.val_covby_val + theorem Finset.val_wcovBy_val - theorem Finset.val_wcovby_val + theorem Finset.wcovBy_insert - theorem Finset.wcovby_insert + theorem Multiset.covBy_cons + theorem Multiset.covBy_iff - theorem Multiset.covby_cons - theorem Multiset.covby_iff +/- theorem Multiset.isAtom_iff Modified Mathlib/Data/Finset/Interval.lean Modified Mathlib/Data/Finset/LocallyFinite.lean + theorem antitone_iff_forall_covBy - theorem antitone_iff_forall_covby + theorem antitone_iff_forall_wcovBy - theorem antitone_iff_forall_wcovby + theorem le_iff_reflTransGen_covBy - theorem le_iff_reflTransGen_covby + theorem le_iff_transGen_wcovBy - theorem le_iff_transGen_wcovby + theorem lt_iff_transGen_covBy - theorem lt_iff_transGen_covby + theorem monotone_iff_forall_covBy - theorem monotone_iff_forall_covby + theorem monotone_iff_forall_wcovBy - theorem monotone_iff_forall_wcovby + theorem strictAnti_iff_forall_covBy - theorem strictAnti_iff_forall_covby + theorem strictMono_iff_forall_covBy - theorem strictMono_iff_forall_covby + theorem transGen_covBy_of_lt - theorem transGen_covby_of_lt + theorem transGen_wcovBy_of_le - theorem transGen_wcovby_of_le Modified Mathlib/Data/Int/SuccPred.lean + theorem Int.covBy_add_one - theorem Int.covby_add_one + theorem Int.sub_one_covBy - theorem Int.sub_one_covby + theorem Nat.cast_int_covBy_iff - theorem Nat.cast_int_covby_iff Modified Mathlib/Data/Nat/SuccPred.lean + theorem Fin.coe_covBy_iff - theorem Fin.coe_covby_iff Modified Mathlib/LinearAlgebra/Basis/Flag.lean + theorem Basis.flag_covBy - theorem Basis.flag_covby + theorem Basis.flag_wcovBy - theorem Basis.flag_wcovby Modified Mathlib/LinearAlgebra/Span.lean + theorem Submodule.covBy_span_singleton_sup - theorem Submodule.covby_span_singleton_sup + theorem Submodule.wcovBy_span_singleton_sup - theorem Submodule.wcovby_span_singleton_sup Modified Mathlib/Order/Atoms.lean + theorem bot_covBy_iff + theorem bot_covBy_top - theorem bot_covby_iff - theorem bot_covby_top + theorem covBy_iff_atom_Ici + theorem covBy_iff_coatom_Iic + theorem covBy_top_iff - theorem covby_iff_atom_Ici - theorem covby_iff_coatom_Iic - theorem covby_top_iff Modified Mathlib/Order/Cover.lean + theorem AntisymmRel.trans_covBy - theorem AntisymmRel.trans_covby + theorem AntisymmRel.trans_wcovBy - theorem AntisymmRel.trans_wcovby + theorem AntisymmRel.wcovBy - theorem AntisymmRel.wcovby + theorem CovBy.Icc_eq + theorem CovBy.Ico_eq + theorem CovBy.Iio_eq + theorem CovBy.Ioc_eq + theorem CovBy.Ioi_eq + theorem CovBy.Ioo_eq + theorem CovBy.eq_of_between + theorem CovBy.eq_or_eq + theorem CovBy.exists_set_insert + theorem CovBy.exists_set_sdiff_singleton + theorem CovBy.ge_of_gt + theorem CovBy.image + theorem CovBy.le + theorem CovBy.le_of_lt + theorem CovBy.lt + theorem CovBy.ne' + theorem CovBy.of_image + theorem CovBy.of_le_of_lt + theorem CovBy.of_lt_of_le + theorem CovBy.trans_antisymmRel + theorem CovBy.unique_left + theorem CovBy.unique_right + def CovBy - theorem Covby.Icc_eq - theorem Covby.Ico_eq - theorem Covby.Iio_eq - theorem Covby.Ioc_eq - theorem Covby.Ioi_eq - theorem Covby.Ioo_eq - theorem Covby.eq_of_between - theorem Covby.eq_or_eq - theorem Covby.exists_set_insert - theorem Covby.exists_set_sdiff_singleton - theorem Covby.ge_of_gt - theorem Covby.image - theorem Covby.le - theorem Covby.le_of_lt - theorem Covby.lt - theorem Covby.ne' - theorem Covby.of_image - theorem Covby.of_le_of_lt - theorem Covby.of_lt_of_le - theorem Covby.trans_antisymmRel - theorem Covby.unique_left - theorem Covby.unique_right - def Covby + theorem Prod.covBy_iff - theorem Prod.covby_iff + theorem Prod.fst_eq_or_snd_eq_of_wcovBy - theorem Prod.fst_eq_or_snd_eq_of_wcovby + theorem Prod.mk_covBy_mk_iff + theorem Prod.mk_covBy_mk_iff_left + theorem Prod.mk_covBy_mk_iff_right - theorem Prod.mk_covby_mk_iff - theorem Prod.mk_covby_mk_iff_left - theorem Prod.mk_covby_mk_iff_right + theorem Prod.mk_wcovBy_mk_iff + theorem Prod.mk_wcovBy_mk_iff_left + theorem Prod.mk_wcovBy_mk_iff_right - theorem Prod.mk_wcovby_mk_iff - theorem Prod.mk_wcovby_mk_iff_left - theorem Prod.mk_wcovby_mk_iff_right + theorem Prod.swap_covBy_swap - theorem Prod.swap_covby_swap + theorem Prod.swap_wcovBy_swap - theorem Prod.swap_wcovby_swap + theorem Prod.wcovBy_iff - theorem Prod.wcovby_iff + theorem Set.OrdConnected.apply_covBy_apply_iff - theorem Set.OrdConnected.apply_covby_apply_iff + theorem Set.OrdConnected.apply_wcovBy_apply_iff - theorem Set.OrdConnected.apply_wcovby_apply_iff + theorem Set.covBy_iff_exists_insert + theorem Set.covBy_iff_exists_sdiff_singleton + theorem Set.covBy_insert - theorem Set.covby_iff_exists_insert - theorem Set.covby_iff_exists_sdiff_singleton - theorem Set.covby_insert + theorem Set.sdiff_singleton_covBy - theorem Set.sdiff_singleton_covby + theorem Set.sdiff_singleton_wcovBy - theorem Set.sdiff_singleton_wcovby + theorem Set.wcovBy_insert - theorem Set.wcovby_insert + theorem WCovBy.Icc_eq + theorem WCovBy.Ico_subset + theorem WCovBy.Ioc_subset + theorem WCovBy.Ioo_eq + theorem WCovBy.covBy_of_lt + theorem WCovBy.covBy_of_ne + theorem WCovBy.covBy_of_not_le + theorem WCovBy.eq_or_eq + theorem WCovBy.fst + theorem WCovBy.ge_of_gt + theorem WCovBy.image + theorem WCovBy.inf_eq + theorem WCovBy.le + theorem WCovBy.le_and_le_iff + theorem WCovBy.le_of_lt + theorem WCovBy.of_image + theorem WCovBy.of_le_of_le' + theorem WCovBy.of_le_of_le + theorem WCovBy.refl + theorem WCovBy.rfl + theorem WCovBy.snd + theorem WCovBy.sup_eq + theorem WCovBy.trans_antisymm_rel + theorem WCovBy.wcovBy_iff_le + def WCovBy - theorem Wcovby.Icc_eq - theorem Wcovby.Ico_subset - theorem Wcovby.Ioc_subset - theorem Wcovby.Ioo_eq - theorem Wcovby.covby_of_lt - theorem Wcovby.covby_of_ne - theorem Wcovby.covby_of_not_le - theorem Wcovby.eq_or_eq - theorem Wcovby.fst - theorem Wcovby.ge_of_gt - theorem Wcovby.image - theorem Wcovby.inf_eq - theorem Wcovby.le - theorem Wcovby.le_and_le_iff - theorem Wcovby.le_of_lt - theorem Wcovby.of_image - theorem Wcovby.of_le_of_le' - theorem Wcovby.of_le_of_le - theorem Wcovby.refl - theorem Wcovby.rfl - theorem Wcovby.snd - theorem Wcovby.sup_eq - theorem Wcovby.trans_antisymm_rel - theorem Wcovby.wcovby_iff_le - def Wcovby + theorem apply_covBy_apply_iff - theorem apply_covby_apply_iff + theorem apply_wcovBy_apply_iff - theorem apply_wcovby_apply_iff + theorem covBy_congr_left + theorem covBy_congr_right + theorem covBy_iff_Ioo_eq + theorem covBy_iff_lt_and_eq_or_eq + theorem covBy_iff_wcovBy_and_lt + theorem covBy_iff_wcovBy_and_ne + theorem covBy_iff_wcovBy_and_not_le + theorem covBy_of_eq_or_eq - theorem covby_congr_left - theorem covby_congr_right - theorem covby_iff_Ioo_eq - theorem covby_iff_lt_and_eq_or_eq - theorem covby_iff_wcovby_and_lt - theorem covby_iff_wcovby_and_ne - theorem covby_iff_wcovby_and_not_le - theorem covby_of_eq_or_eq + theorem densely_ordered_iff_forall_not_covBy - theorem densely_ordered_iff_forall_not_covby + theorem not_covBy + theorem not_covBy_iff + theorem not_covBy_of_lt_of_lt - theorem not_covby - theorem not_covby_iff - theorem not_covby_of_lt_of_lt + theorem not_wcovBy_iff - theorem not_wcovby_iff + theorem ofDual_covBy_ofDual_iff - theorem ofDual_covby_ofDual_iff + theorem ofDual_wcovBy_ofDual_iff - theorem ofDual_wcovby_ofDual_iff + theorem reflTransGen_wcovBy_eq_reflTransGen_covBy - theorem reflTransGen_wcovby_eq_reflTransGen_covby + theorem toDual_covBy_toDual_iff - theorem toDual_covby_toDual_iff + theorem toDual_wcovBy_toDual_iff - theorem toDual_wcovby_toDual_iff + theorem transGen_wcovBy_eq_reflTransGen_covBy - theorem transGen_wcovby_eq_reflTransGen_covby + theorem wcovBy_congr_left + theorem wcovBy_congr_right + theorem wcovBy_eq_reflGen_covBy + theorem wcovBy_iff_Ioo_eq + theorem wcovBy_iff_covBy_or_eq + theorem wcovBy_iff_covBy_or_le_and_le + theorem wcovBy_iff_eq_or_covBy + theorem wcovBy_iff_le_and_eq_or_eq + theorem wcovBy_of_eq_or_eq + theorem wcovBy_of_le_of_le - theorem wcovby_congr_left - theorem wcovby_congr_right - theorem wcovby_eq_reflGen_covby - theorem wcovby_iff_Ioo_eq - theorem wcovby_iff_covby_or_eq - theorem wcovby_iff_covby_or_le_and_le - theorem wcovby_iff_eq_or_covby - theorem wcovby_iff_le_and_eq_or_eq - theorem wcovby_of_eq_or_eq - theorem wcovby_of_le_of_le Modified Mathlib/Order/Grade.lean + theorem covBy_iff_lt_covBy_grade - theorem covby_iff_lt_covby_grade + theorem grade_covBy_grade_iff - theorem grade_covby_grade_iff Modified Mathlib/Order/ModularLattice.lean + theorem covBy_sup_of_inf_covBy_left + theorem covBy_sup_of_inf_covBy_of_inf_covBy_left + theorem covBy_sup_of_inf_covBy_of_inf_covBy_right + theorem covBy_sup_of_inf_covBy_right - theorem covby_sup_of_inf_covby_left - theorem covby_sup_of_inf_covby_of_inf_covby_left - theorem covby_sup_of_inf_covby_of_inf_covby_right - theorem covby_sup_of_inf_covby_right + theorem inf_covBy_of_covBy_sup_left + theorem inf_covBy_of_covBy_sup_of_covBy_sup_left + theorem inf_covBy_of_covBy_sup_of_covBy_sup_right + theorem inf_covBy_of_covBy_sup_right - theorem inf_covby_of_covby_sup_left - theorem inf_covby_of_covby_sup_of_covby_sup_left - theorem inf_covby_of_covby_sup_of_covby_sup_right - theorem inf_covby_of_covby_sup_right Modified Mathlib/Order/SuccPred/Basic.lean + theorem CovBy.pred_eq + theorem CovBy.succ_eq - theorem Covby.pred_eq - theorem Covby.succ_eq + theorem Order.covBy_succ + theorem Order.covBy_succ_of_not_isMax - theorem Order.covby_succ - theorem Order.covby_succ_of_not_isMax + theorem Order.pred_covBy + theorem Order.pred_covBy_of_not_isMin - theorem Order.pred_covby - theorem Order.pred_covby_of_not_isMin + theorem Order.pred_eq_iff_covBy - theorem Order.pred_eq_iff_covby + theorem Order.pred_wcovBy - theorem Order.pred_wcovby + theorem Order.succ_eq_iff_covBy - theorem Order.succ_eq_iff_covby + theorem Order.wcovBy_succ - theorem Order.wcovby_succ + theorem WCovBy.le_succ + theorem WCovBy.pred_le - theorem Wcovby.le_succ - theorem Wcovby.pred_le Modified Mathlib/Order/SuccPred/Limit.lean +/- theorem Order.isPredLimit_of_dense +/- theorem Order.isSuccLimit_of_dense + theorem Order.not_isPredLimit_iff_exists_covBy - theorem Order.not_isPredLimit_iff_exists_covby + theorem Order.not_isSuccLimit_iff_exists_covBy - theorem Order.not_isSuccLimit_iff_exists_covby Modified Mathlib/RingTheory/SimpleModule.lean + theorem covBy_iff_quot_is_simple - theorem covby_iff_quot_is_simple Modified Mathlib/SetTheory/Ordinal/Topology.lean +/- theorem Ordinal.nhds_right' Modified Mathlib/Topology/Order/Basic.lean + theorem CovBy.nhdsWithin_Iio + theorem CovBy.nhdsWithin_Ioi - theorem Covby.nhdsWithin_Iio - theorem Covby.nhdsWithin_Ioi + theorem countable_setOf_covBy_left + theorem countable_setOf_covBy_right - theorem countable_setOf_covby_left - theorem countable_setOf_covby_right Modified Mathlib/Topology/Support.lean 2024-01-09 09:25:06 4c48de0 chore(Topology/Maps): rename type variables (#9548) This file was mostly using Greek letters, but used letters X, Y, Z in comments and one theorem. Switch to using the latter consistently, per [Zulip discussion](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/Naming.20convention.3A.20topological.20spaces/near/395769893). ESTIMATED CHANGES Modified Mathlib/Topology/Inseparable.lean Modified Mathlib/Topology/Maps.lean +/- theorem ClosedEmbedding.closed_iff_image_closed +/- theorem ClosedEmbedding.closed_iff_preimage_closed +/- theorem ClosedEmbedding.closure_image_eq +/- theorem ClosedEmbedding.tendsto_nhds_iff +/- structure ClosedEmbedding +/- theorem Embedding.closure_eq_preimage_closure_image +/- theorem Embedding.discreteTopology +/- theorem Embedding.map_nhds_eq +/- theorem Embedding.map_nhds_of_mem +/- theorem Embedding.mk' +/- theorem Embedding.tendsto_nhds_iff +/- structure Embedding +/- theorem Function.Injective.embedding_induced +/- theorem Inducing.closure_eq_preimage_closure_image +/- theorem Inducing.continuousAt_iff' +/- theorem Inducing.continuousAt_iff +/- theorem Inducing.dense_iff +/- theorem Inducing.image_mem_nhdsWithin +/- theorem Inducing.isClosed_iff' +/- theorem Inducing.isClosed_iff +/- theorem Inducing.isClosed_preimage +/- theorem Inducing.isOpen_iff +/- theorem Inducing.mapClusterPt_iff +/- theorem Inducing.map_nhds_eq +/- theorem Inducing.map_nhds_of_mem +/- theorem Inducing.nhdsSet_eq_comap +/- theorem Inducing.nhds_eq_comap +/- theorem Inducing.tendsto_nhds_iff +/- structure Inducing +/- theorem IsClosedMap.closure_image_subset +/- theorem IsClosedMap.of_inverse +/- def IsClosedMap +/- theorem IsOpenMap.image_interior_subset +/- theorem IsOpenMap.image_mem_nhds +/- theorem IsOpenMap.interior_preimage_subset_preimage_interior +/- theorem IsOpenMap.mapsTo_interior +/- theorem IsOpenMap.nhds_le +/- theorem IsOpenMap.of_inverse +/- theorem IsOpenMap.of_nhds_le +/- theorem IsOpenMap.preimage_closure_eq_closure_preimage +/- theorem IsOpenMap.preimage_closure_subset_closure_preimage +/- theorem IsOpenMap.preimage_frontier_eq_frontier_preimage +/- theorem IsOpenMap.preimage_frontier_subset_frontier_preimage +/- theorem IsOpenMap.range_mem_nhds +/- def IsOpenMap +/- theorem OpenEmbedding.continuousAt_iff +/- theorem OpenEmbedding.map_nhds_eq +/- theorem OpenEmbedding.of_comp +/- theorem OpenEmbedding.of_comp_iff +/- theorem OpenEmbedding.open_iff_image_open +/- theorem OpenEmbedding.open_iff_preimage_open +/- theorem OpenEmbedding.tendsto_nhds_iff' +/- theorem OpenEmbedding.tendsto_nhds_iff +/- structure OpenEmbedding +/- theorem QuotientMap.of_inverse +/- def QuotientMap +/- theorem closedEmbedding_id +/- theorem embedding_id +/- theorem inducing_id +/- theorem inducing_iff_nhds +/- theorem inducing_induced +/- theorem isOpenMap_iff_nhds_le +/- theorem openEmbedding_id +/- theorem quotientMap_iff 2024-01-09 09:25:04 3a13ea5 feat: `‖a - c‖ ≤ ‖a - b‖ + ‖b - c‖` (#9517) From LeanAPAP ESTIMATED CHANGES Modified Mathlib/Analysis/Normed/Group/Basic.lean + theorem norm_div_le_norm_div_add_norm_div 2024-01-09 09:25:03 6520136 feat: Finite order elements have norm one (#9516) This lemma already existed, but with an impractical spelling. From LeanAPAP ESTIMATED CHANGES Modified Mathlib/Analysis/Normed/Field/Basic.lean - theorem norm_map_one_of_pow_eq_one - theorem norm_one_of_pow_eq_one Modified Mathlib/NumberTheory/NumberField/Units.lean 2024-01-09 09:25:02 c64c9a8 feat(Algebra/Homology): morphisms from the mapping cone (#9509) This PR studies morphisms from the mapping cone. ESTIMATED CHANGES Modified Mathlib/Algebra/Homology/HomotopyCategory/HomComplex.lean + theorem CochainComplex.HomComplex.Cochain.comp_units_smul + theorem CochainComplex.HomComplex.Cochain.units_smul_comp + theorem CochainComplex.HomComplex.δ_units_smul Modified Mathlib/Algebra/Homology/HomotopyCategory/MappingCone.lean + theorem CochainComplex.mappingCone.d_fst_v' + theorem CochainComplex.mappingCone.d_fst_v + theorem CochainComplex.mappingCone.d_snd_v' + theorem CochainComplex.mappingCone.d_snd_v + theorem CochainComplex.mappingCone.desc_f + theorem CochainComplex.mappingCone.ext_cochain_from_iff + theorem CochainComplex.mappingCone.ext_cochain_to_iff + theorem CochainComplex.mappingCone.id + theorem CochainComplex.mappingCone.id_X + theorem CochainComplex.mappingCone.inl_desc + theorem CochainComplex.mappingCone.inl_descCochain + theorem CochainComplex.mappingCone.inl_v_d + theorem CochainComplex.mappingCone.inl_v_descCochain_v + theorem CochainComplex.mappingCone.inl_v_desc_f + theorem CochainComplex.mappingCone.inr_desc + theorem CochainComplex.mappingCone.inr_descCochain + theorem CochainComplex.mappingCone.inr_f_d + theorem CochainComplex.mappingCone.inr_f_descCochain_v + theorem CochainComplex.mappingCone.inr_f_desc_f + theorem CochainComplex.mappingCone.ofHom_desc + theorem CochainComplex.mappingCone.δ_descCochain + theorem CochainComplex.mappingCone.δ_inl + theorem CochainComplex.mappingCone.δ_snd 2024-01-09 09:25:01 e1b05c5 chore: Move `Int` and `Nat` cast lemmas (#9503) Part of #9411 ESTIMATED CHANGES Modified Mathlib/Algebra/Group/TypeTags.lean Modified Mathlib/Algebra/GroupPower/Lemmas.lean - theorem AddMonoidHom.apply_nat - theorem Commute.cast_int_left - theorem Commute.cast_int_mul_cast_int_mul - theorem Commute.cast_int_mul_left - theorem Commute.cast_int_mul_right - theorem Commute.cast_int_mul_self - theorem Commute.cast_int_right - theorem Commute.cast_nat_mul_cast_nat_mul - theorem Commute.cast_nat_mul_left - theorem Commute.cast_nat_mul_right - theorem Commute.cast_nat_mul_self - theorem Commute.self_cast_int_mul - theorem Commute.self_cast_int_mul_cast_int_mul - theorem Commute.self_cast_nat_mul - theorem Commute.self_cast_nat_mul_cast_nat_mul - theorem Int.cast_pow - theorem Int.coe_nat_pow - theorem Int.natAbs_pow - theorem Int.ofAdd_mul - theorem Int.toAdd_pow - theorem Int.toAdd_zpow - theorem MonoidHom.apply_mnat - theorem MonoidHom.ext_mnat - theorem Nat.cast_pow - theorem Nat.ofAdd_mul - theorem Nat.toAdd_pow - theorem SemiconjBy.cast_int_mul_cast_int_mul - theorem SemiconjBy.cast_int_mul_left - theorem SemiconjBy.cast_int_mul_right - theorem SemiconjBy.cast_nat_mul_cast_nat_mul - theorem SemiconjBy.cast_nat_mul_left - theorem SemiconjBy.cast_nat_mul_right - def multiplesAddHom - theorem multiplesAddHom_apply - theorem multiplesAddHom_symm_apply - def multiplesHom - theorem multiplesHom_apply - theorem multiplesHom_symm_apply - theorem nsmul_eq_mul' - theorem nsmul_eq_mul - theorem nsmul_one +/- theorem pow_eq - def powersHom - theorem powersHom_apply - theorem powersHom_symm_apply - def powersMulHom - theorem powersMulHom_apply - theorem powersMulHom_symm_apply - theorem zsmul_eq_mul' - theorem zsmul_eq_mul - theorem zsmul_int_int - theorem zsmul_int_one - theorem zsmul_one Modified Mathlib/Data/Countable/Defs.lean Modified Mathlib/Data/Finite/Defs.lean Modified Mathlib/Data/Int/Basic.lean + theorem Int.cast_pow + theorem Int.natAbs_pow + theorem Int.ofAdd_mul + theorem Int.toAdd_pow + theorem Int.toAdd_zpow + theorem zsmul_int_int + theorem zsmul_int_one Modified Mathlib/Data/Int/Cast/Lemmas.lean + theorem Commute.cast_int_left + theorem Commute.cast_int_mul_cast_int_mul + theorem Commute.cast_int_mul_left + theorem Commute.cast_int_mul_right + theorem Commute.cast_int_mul_self + theorem Commute.cast_int_right + theorem Commute.self_cast_int_mul + theorem Commute.self_cast_int_mul_cast_int_mul +/- def Int.castRingHom +/- theorem Int.cast_comm +/- theorem Int.cast_commute +/- theorem Int.coe_castRingHom + theorem Int.coe_nat_pow +/- theorem Int.commute_cast + theorem SemiconjBy.cast_int_mul_cast_int_mul + theorem SemiconjBy.cast_int_mul_left + theorem SemiconjBy.cast_int_mul_right + theorem zsmul_eq_mul' + theorem zsmul_eq_mul + theorem zsmul_one Modified Mathlib/Data/List/BigOperators/Basic.lean Modified Mathlib/Data/Nat/Basic.lean + theorem Nat.ofAdd_mul + theorem Nat.toAdd_pow Modified Mathlib/Data/Nat/Cast/Basic.lean + theorem AddMonoidHom.apply_nat + theorem MonoidHom.apply_mnat + theorem MonoidHom.ext_mnat +/- def Nat.castRingHom +/- theorem Nat.cast_mul + theorem Nat.cast_pow +/- theorem Nat.coe_castRingHom +/- theorem Nat.coe_nat_dvd + def multiplesAddHom + theorem multiplesAddHom_apply + theorem multiplesAddHom_symm_apply + def multiplesHom + theorem multiplesHom_apply + theorem multiplesHom_symm_apply + theorem nsmul_eq_mul' + theorem nsmul_eq_mul + theorem nsmul_one + def powersHom + theorem powersHom_apply + theorem powersHom_symm_apply + def powersMulHom + theorem powersMulHom_apply + theorem powersMulHom_symm_apply Modified Mathlib/Data/Nat/Cast/Commute.lean + theorem Commute.cast_nat_mul_cast_nat_mul + theorem Commute.cast_nat_mul_left + theorem Commute.cast_nat_mul_right + theorem Commute.cast_nat_mul_self + theorem Commute.self_cast_nat_mul + theorem Commute.self_cast_nat_mul_cast_nat_mul + theorem SemiconjBy.cast_nat_mul_cast_nat_mul + theorem SemiconjBy.cast_nat_mul_left + theorem SemiconjBy.cast_nat_mul_right Modified Mathlib/Data/ZMod/Algebra.lean Modified Mathlib/Logic/Equiv/Basic.lean - theorem Equiv.ofBijective_apply_symm_apply - theorem Equiv.ofBijective_symm_apply_apply Modified Mathlib/Logic/Equiv/Defs.lean + theorem Equiv.ofBijective_apply_symm_apply + theorem Equiv.ofBijective_symm_apply_apply 2024-01-09 09:25:00 7ab8c78 feat: `a / b = c / d ↔ a * d = c * b` when `b`, `d` commute (#9389) This involves moving a bunch of lemmas from `Algebra.Group.Units.Hom` to `Algebra.Group.Units` (without modification). From LeanAPAP ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Commute/Units.lean + theorem Commute.div_eq_div_iff_of_isUnit +/- theorem Commute.isUnit_mul_iff +/- theorem Commute.units_zpow_left +/- theorem Commute.units_zpow_right +/- def Units.leftOfMul +/- def Units.rightOfMul +/- theorem isUnit_mul_self_iff Modified Mathlib/Algebra/Group/Units.lean + theorem Group.isUnit + theorem IsUnit.div + theorem IsUnit.inv + def IsUnit.unit' + theorem IsUnit.val_inv_unit' + theorem divp_eq_div Modified Mathlib/Algebra/Group/Units/Hom.lean - theorem Group.isUnit - theorem IsUnit.div - theorem IsUnit.inv - def IsUnit.unit' - theorem IsUnit.val_inv_unit' - theorem divp_eq_div Modified Mathlib/Algebra/GroupWithZero/Units/Lemmas.lean 2024-01-09 09:24:59 2a95018 feat: Define `intNorm` and `intTrace`. (#9265) ESTIMATED CHANGES Modified Mathlib/RingTheory/IntegralRestrict.lean + theorem Algebra.algebraMap_intNorm + theorem Algebra.algebraMap_intNorm_fractionRing + theorem Algebra.algebraMap_intNorm_of_isGalois + theorem Algebra.algebraMap_intTrace + theorem Algebra.algebraMap_intTrace_fractionRing + def Algebra.intNorm + def Algebra.intNormAux + theorem Algebra.intNorm_eq_norm + theorem Algebra.intNorm_eq_of_isLocalization + theorem Algebra.intNorm_eq_zero + theorem Algebra.intNorm_ne_zero + theorem Algebra.intNorm_zero + def Algebra.intTrace + def Algebra.intTraceAux + theorem Algebra.intTrace_eq_of_isLocalization + theorem Algebra.intTrace_eq_trace + theorem Algebra.map_intNormAux + theorem Algebra.map_intTraceAux Modified Mathlib/RingTheory/LocalProperties.lean + theorem Module.Finite_of_isLocalization Modified Mathlib/RingTheory/Localization/Integral.lean + theorem isAlgebraic_of_isFractionRing + theorem isAlgebraic_of_isLocalization 2024-01-09 09:24:58 420479f feat(CategoryTheory): define countable categories and countable limits (#8674) We define a class `CountableCategory` analogous to `FinCategory`, and provide some API for countable limits. This will be necessary to develop the theory of light condensed sets. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Countable.lean + def CategoryTheory.CountableCategory.HomAsType Added Mathlib/CategoryTheory/Limits/Shapes/Countable.lean + theorem CategoryTheory.Limits.sequentialFunctor_initial_aux + theorem CategoryTheory.Limits.sequentialFunctor_map 2024-01-09 08:14:38 c41fe72 chore(Geometry/Manifold): use dot notation for IsOpen lemmas more (#9567) While at it, switch from refine' to refine (easy cases only) in the lines I'm touching anyway. ESTIMATED CHANGES Modified Mathlib/Geometry/Manifold/BumpFunction.lean Modified Mathlib/Geometry/Manifold/ChartedSpace.lean Modified Mathlib/Geometry/Manifold/ContMDiff/Defs.lean Modified Mathlib/Geometry/Manifold/ContMDiffMFDeriv.lean Modified Mathlib/Geometry/Manifold/LocalInvariantProperties.lean Modified Mathlib/Geometry/Manifold/SmoothManifoldWithCorners.lean 2024-01-09 08:14:37 6eb51c6 feat: add multiplicative versions of `equivOfFullyFaithful` and `isoEquivOfFullyFaithful` (#9566) Adds multiplicative versions of `equivOfFullyFaithful` and `isoEquivOfFullyFaithful`. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Endomorphism.lean + def CategoryTheory.Functor.autMulEquivOfFullyFaithful + def CategoryTheory.Functor.mulEquivOfFullyFaithful 2024-01-09 08:14:36 54b67ab chore: Fix statement of `Finset.cast_card_sdiff` (#9563) The two types were accidentally the same. ESTIMATED CHANGES Modified Mathlib/Data/Finset/Card.lean +/- theorem Finset.cast_card_sdiff 2024-01-09 08:14:34 8924613 chore: Rearrange arguments to `Nat.multinomial_insert` (#9562) and a few other `multinomial` lemmas ESTIMATED CHANGES Modified Mathlib/Data/Nat/Choose/Multinomial.lean +/- theorem Nat.multinomial_cons +/- theorem Nat.multinomial_insert +/- theorem Nat.multinomial_singleton 2024-01-09 08:14:33 aa782a7 chore: `pp_dot` on `Finset.card` (#9560) ESTIMATED CHANGES Modified Mathlib/Data/Finset/Card.lean +/- def Finset.card 2024-01-09 08:14:32 2b75532 chore: Move Bernoulli's inequality (#9456) The first versions for ordered semirings do not need to import so much but: * they have no obvious place to go * nobody needs them that early (in particular, it seems nobody needs them without also needing the ordered field version) Part of #9411 ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/GroupPower/Lemmas.lean - theorem one_add_mul_le_pow' - theorem one_add_mul_le_pow - theorem one_add_mul_sub_le_pow Modified Mathlib/Algebra/Order/Field/Power.lean Added Mathlib/Algebra/Order/Ring/Pow.lean + theorem one_add_mul_le_pow' + theorem one_add_mul_le_pow + theorem one_add_mul_sub_le_pow 2024-01-09 07:49:34 c147cdf refactor: split graph maps into a new file (#9579) A continuation from https://github.com/leanprover-community/mathlib4/pull/9267#discussion_r1437052000. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Combinatorics/SimpleGraph/Basic.lean - theorem Equiv.simpleGraph_refl - theorem Equiv.simpleGraph_trans - theorem Equiv.symm_simpleGraph - theorem SimpleGraph.Embedding.apply_mem_neighborSet_iff - theorem SimpleGraph.Embedding.coe_comp - theorem SimpleGraph.Embedding.coe_toHom - theorem SimpleGraph.Embedding.comap_apply - def SimpleGraph.Embedding.mapEdgeSet - def SimpleGraph.Embedding.mapNeighborSet - theorem SimpleGraph.Embedding.map_adj_iff - theorem SimpleGraph.Embedding.map_apply - theorem SimpleGraph.Embedding.map_mem_edgeSet_iff - theorem SimpleGraph.Hom.apply_mem_neighborSet - theorem SimpleGraph.Hom.coe_comp - theorem SimpleGraph.Hom.coe_id - theorem SimpleGraph.Hom.coe_ofLe - theorem SimpleGraph.Hom.injective_of_top_hom - def SimpleGraph.Hom.mapDart - theorem SimpleGraph.Hom.mapDart_apply - theorem SimpleGraph.Hom.mapEdgeSet.injective - def SimpleGraph.Hom.mapEdgeSet - def SimpleGraph.Hom.mapNeighborSet - def SimpleGraph.Hom.mapSpanningSubgraphs - theorem SimpleGraph.Hom.map_adj - theorem SimpleGraph.Hom.map_mem_edgeSet - def SimpleGraph.Hom.ofLe - theorem SimpleGraph.Iso.apply_mem_neighborSet_iff - theorem SimpleGraph.Iso.card_eq_of_iso - theorem SimpleGraph.Iso.coe_comp - theorem SimpleGraph.Iso.comap_apply - theorem SimpleGraph.Iso.comap_symm_apply - def SimpleGraph.Iso.mapEdgeSet - def SimpleGraph.Iso.mapNeighborSet - theorem SimpleGraph.Iso.map_adj_iff - theorem SimpleGraph.Iso.map_apply - theorem SimpleGraph.Iso.map_mem_edgeSet_iff - theorem SimpleGraph.Iso.map_symm_apply - theorem SimpleGraph.Iso.toEmbedding_completeGraph - theorem SimpleGraph.coe_induceHom - theorem SimpleGraph.comap_adj - theorem SimpleGraph.comap_comap - theorem SimpleGraph.comap_id - theorem SimpleGraph.comap_map_eq - theorem SimpleGraph.comap_monotone - theorem SimpleGraph.comap_surjective - theorem SimpleGraph.comap_symm - def SimpleGraph.induce - def SimpleGraph.induceHom - def SimpleGraph.induceHomOfLE - theorem SimpleGraph.induceHomOfLE_apply - theorem SimpleGraph.induceHomOfLE_toHom - theorem SimpleGraph.induceHom_comp - theorem SimpleGraph.induceHom_id - theorem SimpleGraph.induceHom_injective - def SimpleGraph.induceUnivIso - theorem SimpleGraph.induce_singleton_eq_top - theorem SimpleGraph.induce_spanningCoe - theorem SimpleGraph.le_comap_of_subsingleton - theorem SimpleGraph.leftInverse_comap_map - theorem SimpleGraph.map_adj - theorem SimpleGraph.map_adj_apply - theorem SimpleGraph.map_comap_le - theorem SimpleGraph.map_id - theorem SimpleGraph.map_injective - theorem SimpleGraph.map_le_iff_le_comap - theorem SimpleGraph.map_le_of_subsingleton - theorem SimpleGraph.map_map - theorem SimpleGraph.map_monotone - theorem SimpleGraph.map_symm - def SimpleGraph.spanningCoe - theorem SimpleGraph.spanningCoe_induce_le Modified Mathlib/Combinatorics/SimpleGraph/Clique.lean Added Mathlib/Combinatorics/SimpleGraph/Maps.lean + theorem Equiv.simpleGraph_refl + theorem Equiv.simpleGraph_trans + theorem Equiv.symm_simpleGraph + theorem SimpleGraph.Embedding.apply_mem_neighborSet_iff + theorem SimpleGraph.Embedding.coe_comp + theorem SimpleGraph.Embedding.coe_toHom + theorem SimpleGraph.Embedding.comap_apply + def SimpleGraph.Embedding.mapEdgeSet + def SimpleGraph.Embedding.mapNeighborSet + theorem SimpleGraph.Embedding.map_adj_iff + theorem SimpleGraph.Embedding.map_apply + theorem SimpleGraph.Embedding.map_mem_edgeSet_iff + theorem SimpleGraph.Hom.apply_mem_neighborSet + theorem SimpleGraph.Hom.coe_comp + theorem SimpleGraph.Hom.coe_id + theorem SimpleGraph.Hom.coe_ofLe + theorem SimpleGraph.Hom.injective_of_top_hom + def SimpleGraph.Hom.mapDart + theorem SimpleGraph.Hom.mapDart_apply + theorem SimpleGraph.Hom.mapEdgeSet.injective + def SimpleGraph.Hom.mapEdgeSet + def SimpleGraph.Hom.mapNeighborSet + def SimpleGraph.Hom.mapSpanningSubgraphs + theorem SimpleGraph.Hom.map_adj + theorem SimpleGraph.Hom.map_mem_edgeSet + def SimpleGraph.Hom.ofLe + theorem SimpleGraph.Iso.apply_mem_neighborSet_iff + theorem SimpleGraph.Iso.card_eq_of_iso + theorem SimpleGraph.Iso.coe_comp + theorem SimpleGraph.Iso.comap_apply + theorem SimpleGraph.Iso.comap_symm_apply + def SimpleGraph.Iso.mapEdgeSet + def SimpleGraph.Iso.mapNeighborSet + theorem SimpleGraph.Iso.map_adj_iff + theorem SimpleGraph.Iso.map_apply + theorem SimpleGraph.Iso.map_mem_edgeSet_iff + theorem SimpleGraph.Iso.map_symm_apply + theorem SimpleGraph.Iso.toEmbedding_completeGraph + theorem SimpleGraph.coe_induceHom + theorem SimpleGraph.comap_adj + theorem SimpleGraph.comap_comap + theorem SimpleGraph.comap_id + theorem SimpleGraph.comap_map_eq + theorem SimpleGraph.comap_monotone + theorem SimpleGraph.comap_surjective + theorem SimpleGraph.comap_symm + def SimpleGraph.induce + def SimpleGraph.induceHom + def SimpleGraph.induceHomOfLE + theorem SimpleGraph.induceHomOfLE_apply + theorem SimpleGraph.induceHomOfLE_toHom + theorem SimpleGraph.induceHom_comp + theorem SimpleGraph.induceHom_id + theorem SimpleGraph.induceHom_injective + def SimpleGraph.induceUnivIso + theorem SimpleGraph.induce_singleton_eq_top + theorem SimpleGraph.induce_spanningCoe + theorem SimpleGraph.le_comap_of_subsingleton + theorem SimpleGraph.leftInverse_comap_map + theorem SimpleGraph.map_adj + theorem SimpleGraph.map_adj_apply + theorem SimpleGraph.map_comap_le + theorem SimpleGraph.map_id + theorem SimpleGraph.map_injective + theorem SimpleGraph.map_le_iff_le_comap + theorem SimpleGraph.map_le_of_subsingleton + theorem SimpleGraph.map_map + theorem SimpleGraph.map_monotone + theorem SimpleGraph.map_symm + def SimpleGraph.spanningCoe + theorem SimpleGraph.spanningCoe_induce_le Modified Mathlib/Combinatorics/SimpleGraph/Subgraph.lean 2024-01-09 07:49:33 b9f04de chore: reduce imports (#9575) ESTIMATED CHANGES Modified Mathlib/Util/Superscript.lean 2024-01-09 07:26:35 a9d1aea chore(*): minor golfs, mostly using `gcongr` (#9577) ESTIMATED CHANGES Modified Mathlib/Analysis/Calculus/Monotone.lean Modified Mathlib/Combinatorics/Schnirelmann.lean Modified Mathlib/Combinatorics/SimpleGraph/Regularity/Bound.lean Modified Mathlib/Combinatorics/SimpleGraph/Regularity/Chunk.lean Modified Mathlib/NumberTheory/NumberField/Discriminant.lean 2024-01-09 07:03:17 bb297ad feat: The Ahlswede-Zhang identity (#8171) The Ahlswede-Zhang identity is a sharpening of the [Lubell-Yamamoto-Meshalkin inequality](https://leanprover-community.github.io/mathlib_docs/combinatorics/set_family/lym.html#finset.sum_card_slice_div_choose_le_one), by expliciting the correction term. This PR defines `Finset.truncatedSup`/`Finset.truncatedInf`, whose cardinalities show up in the correction term, and subsequently proves the Ahlswede-Zhang identity itself. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Combinatorics/SetFamily/AhlswedeZhang.lean + theorem AhlswedeZhang.IsAntichain.le_infSum + def AhlswedeZhang.infSum + theorem AhlswedeZhang.infSum_compls_add_supSum + theorem AhlswedeZhang.infSum_eq_one + theorem AhlswedeZhang.infSum_union_add_infSum_sups + def AhlswedeZhang.supSum + theorem AhlswedeZhang.supSum_of_not_univ_mem + theorem AhlswedeZhang.supSum_singleton + theorem AhlswedeZhang.supSum_union_add_supSum_infs + theorem Finset.card_truncatedInf_union_add_card_truncatedInf_sups + theorem Finset.card_truncatedSup_union_add_card_truncatedSup_infs + theorem Finset.compl_truncatedInf + theorem Finset.compl_truncatedSup + theorem Finset.le_truncatedSup + theorem Finset.map_truncatedInf + theorem Finset.map_truncatedSup + def Finset.truncatedInf + theorem Finset.truncatedInf_empty + theorem Finset.truncatedInf_le + theorem Finset.truncatedInf_of_isAntichain + theorem Finset.truncatedInf_of_mem + theorem Finset.truncatedInf_of_not_mem + theorem Finset.truncatedInf_singleton + theorem Finset.truncatedInf_sups + theorem Finset.truncatedInf_sups_of_not_mem + theorem Finset.truncatedInf_union + theorem Finset.truncatedInf_union_left + theorem Finset.truncatedInf_union_of_not_mem + theorem Finset.truncatedInf_union_right + def Finset.truncatedSup + theorem Finset.truncatedSup_empty + theorem Finset.truncatedSup_infs + theorem Finset.truncatedSup_infs_of_not_mem + theorem Finset.truncatedSup_of_isAntichain + theorem Finset.truncatedSup_of_mem + theorem Finset.truncatedSup_of_not_mem + theorem Finset.truncatedSup_singleton + theorem Finset.truncatedSup_union + theorem Finset.truncatedSup_union_left + theorem Finset.truncatedSup_union_of_not_mem + theorem Finset.truncatedSup_union_right 2024-01-09 02:35:29 ef72bdb feat(Analysis/InnerProductSpace/Adjoint): add `norm_adjoint_comp_self` (#9569) This is a non-square version of `norm_star_mul_self` ESTIMATED CHANGES Modified Mathlib/Analysis/InnerProductSpace/Adjoint.lean +/- theorem ContinuousLinearMap.apply_norm_eq_sqrt_inner_adjoint_left +/- theorem ContinuousLinearMap.apply_norm_eq_sqrt_inner_adjoint_right +/- theorem ContinuousLinearMap.apply_norm_sq_eq_inner_adjoint_left +/- theorem ContinuousLinearMap.apply_norm_sq_eq_inner_adjoint_right + theorem ContinuousLinearMap.norm_adjoint_comp_self 2024-01-09 02:13:04 7649e80 feat: local existence of integral curves of vector field (#8483) Port of [mathlib#17140](https://github.com/leanprover-community/mathlib/pull/17140) plus much more. Comments therein addressed. For any continuously differentiable vector field (section of tangent bundle) on a manifold `M` and any chosen interior point `x₀ : M`, there exists an integral curve `γ : ℝ → M` such that `γ t₀ = x₀` for any real number `t₀` and the tangent vector of `γ` at `t` coincides with the vector field at `γ t` for all `t` within an open interval around `t₀`. As a corollary, such an integral curve exists for any starting point `x₀` if `M` is a manifold without boundary. We define three `Prop`s: 1. `IsIntegralCurveOn γ v s` means `γ t` is tangent to `v (γ t)` for all `t` within `s : Set ℝ`. 2. `IsIntegralCurveAt γ v t₀` means `γ` is a local integral curve to `v`. That is, `γ t` is tangent to `v (γ t)` for all `t` within some open interval of `t₀`. 3. `IsIntegralCurve γ v` means `γ` is a global integral curve to `v`. That is, `γ t` is tangent to `v (γ t)` for all `t : ℝ`. Lemmas about rescaling and translation of integral curves are proven: * If `γ` solves `v` at `t₀`, then `γ (t + dt)` is tangent to `v` at `t₀ - dt`. * If `γ` solves `v` at `t₀`, then `γ (a * t)` is tangent to `a • v` at `t₀ / a` for any non-zero `a`. * The constant function at `x₀` solves any `v` with `v x₀ = 0`. We also shuffle the position of `∃ ε > (0 : ℝ)` in `PicardLindelof` to one that makes more sense, since `f t₀ = x₀` does not depend on `ε` yet. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Analysis/ODE/PicardLindelof.lean Added Mathlib/Geometry/Manifold/IntegralCurve.lean + theorem IsIntegralCurve.comp_add + theorem IsIntegralCurve.comp_mul + theorem IsIntegralCurve.isIntegralCurveAt + theorem IsIntegralCurve.isIntegralCurveOn + def IsIntegralCurve + theorem IsIntegralCurveAt.comp_add + theorem IsIntegralCurveAt.comp_mul_ne_zero + theorem IsIntegralCurveAt.hasMFDerivAt + theorem IsIntegralCurveAt.isIntegralCurveOn + def IsIntegralCurveAt + theorem IsIntegralCurveOn.comp_add + theorem IsIntegralCurveOn.comp_mul + theorem IsIntegralCurveOn.isIntegralCurveAt + theorem IsIntegralCurveOn.mono + theorem IsIntegralCurveOn.of_union + def IsIntegralCurveOn + theorem exists_isIntegralCurveAt_of_contMDiffAt + theorem exists_isIntegralCurveAt_of_contMDiffAt_boundaryless + theorem isIntegralCurvOn_comp_mul_ne_zero + theorem isIntegralCurveAt_comp_add + theorem isIntegralCurveAt_comp_mul_ne_zero + theorem isIntegralCurveAt_iff' + theorem isIntegralCurveAt_iff + theorem isIntegralCurveOn_comp_add + theorem isIntegralCurveOn_iff_isIntegralCurveAt + theorem isIntegralCurve_comp_add + theorem isIntegralCurve_comp_mul_ne_zero + theorem isIntegralCurve_const + theorem isIntegralCurve_iff_isIntegralCurveAt + theorem isIntegralCurve_iff_isIntegralCurveOn Modified Mathlib/Geometry/Manifold/InteriorBoundary.lean 2024-01-09 00:24:54 b2daba4 chore(*): golf, mostly using `gcongr`/`positivity` (#9546) ESTIMATED CHANGES Modified Archive/Wiedijk100Theorems/HeronsFormula.lean Modified Counterexamples/Phillips.lean Modified Counterexamples/SeminormLatticeNotDistrib.lean Modified Mathlib/Analysis/Analytic/Basic.lean Modified Mathlib/Analysis/Calculus/BumpFunction/FiniteDimension.lean Modified Mathlib/Analysis/Calculus/FDeriv/Measurable.lean Modified Mathlib/Analysis/Complex/PhragmenLindelof.lean Modified Mathlib/Analysis/Convex/StoneSeparation.lean Modified Mathlib/Analysis/Fourier/PoissonSummation.lean Modified Mathlib/Analysis/Hofer.lean Modified Mathlib/Analysis/InnerProductSpace/Basic.lean Modified Mathlib/Analysis/InnerProductSpace/LaxMilgram.lean Modified Mathlib/Analysis/NormedSpace/Banach.lean Modified Mathlib/Analysis/SpecificLimits/Basic.lean Modified Mathlib/MeasureTheory/Function/UniformIntegrable.lean 2024-01-09 00:24:53 a131be4 feat: `z⁻¹ = conj z` when `z` has norm one (#9535) and other simple lemmas From LeanAPAP ESTIMATED CHANGES Modified Mathlib/Analysis/Complex/Basic.lean + theorem Complex.conj_mul' + theorem Complex.exists_norm_eq_mul_self + theorem Complex.exists_norm_mul_eq_self + theorem Complex.inv_eq_conj + theorem Complex.mul_conj' + theorem Complex.norm_I Modified Mathlib/Analysis/InnerProductSpace/Basic.lean Modified Mathlib/Analysis/InnerProductSpace/PiL2.lean Modified Mathlib/Analysis/NormedSpace/Extend.lean Modified Mathlib/Data/IsROrC/Basic.lean + theorem IsROrC.conj_div +/- theorem IsROrC.conj_mul + theorem IsROrC.exists_norm_eq_mul_self + theorem IsROrC.exists_norm_mul_eq_self + theorem IsROrC.inv_eq_conj +/- theorem IsROrC.lt_iff_re_im +/- theorem IsROrC.mul_conj +/- theorem IsROrC.neg_iff + theorem IsROrC.neg_iff_exists_ofReal +/- theorem IsROrC.nonneg_iff + theorem IsROrC.nonneg_iff_exists_ofReal +/- theorem IsROrC.nonpos_iff + theorem IsROrC.nonpos_iff_exists_ofReal +/- theorem IsROrC.pos_iff + theorem IsROrC.pos_iff_exists_ofReal Modified Mathlib/Topology/ContinuousFunction/StoneWeierstrass.lean 2024-01-08 23:13:22 49dcbe7 perf (Homology.ProjectiveResolution): remove `MkStruct`, re-jigger proof, and suppress compilation (#9555) Currently `CategoryTheory.Abelian.ProjectiveResolution` requires more than double the next largest file in terms of CPU instructions. This reduces the load by replacing ad-hoc `MkStruct` with `ShortComplex` and pushing around the existing proof. Follow-up clean-up should be done. ESTIMATED CHANGES Modified Mathlib/Algebra/Homology/HomologicalComplex.lean - def ChainComplex.MkStruct.flat - structure ChainComplex.MkStruct +/- def ChainComplex.mkAux Modified Mathlib/CategoryTheory/Abelian/ProjectiveResolution.lean 2024-01-08 23:13:21 fe5b748 chore: mark neg_div_neg_eq as simp (#9332) ESTIMATED CHANGES Modified Mathlib/Algebra/Field/Basic.lean Modified Mathlib/NumberTheory/ModularForms/JacobiTheta/Basic.lean 2024-01-08 23:13:20 30667e2 chore(Data/List/Sort): names of assumptions not like names of data (#9324) ESTIMATED CHANGES Modified Mathlib/Data/List/Sort.lean +/- theorem List.eq_of_perm_of_sorted +/- theorem List.sublist_of_subperm_of_sorted 2024-01-08 21:36:46 a6cf8f5 feat(Algebra/GroupPower): Miscellaneous lemmas (#9388) Generalise `pow_ite`/`ite_pow` and give a version of `pow_add_pow_le` that doesn't require the exponent to be nonzero. From LeanAPAP ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Basic.lean + theorem dite_pow + theorem ite_pow + theorem pow_dite + theorem pow_ite Modified Mathlib/Algebra/GroupPower/Basic.lean - theorem ite_pow - theorem pow_ite Modified Mathlib/Algebra/GroupPower/Order.lean + theorem pow_add_pow_le' Modified Mathlib/Algebra/SMulWithZero.lean Modified Mathlib/Analysis/Convex/Combination.lean Modified Mathlib/GroupTheory/GroupAction/Defs.lean - theorem ite_smul - theorem smul_ite 2024-01-08 19:30:31 484839a feat(RingTheory/Ideal/QuotientOperations): remove commutativity instances (#9556) Remove one commutativity instances for the universal property of a quotient algebra : the target algebra only needs to have `Semiring`. ESTIMATED CHANGES Modified Mathlib/RingTheory/Ideal/QuotientOperations.lean 2024-01-08 19:30:30 1f780d6 feat: generalize `FiniteDimensional.finrank_mul_finrank` (#9046) Generalize the conditions of the tower law [FiniteDimensional.finrank_mul_finrank'](https://leanprover-community.github.io/mathlib4_docs/Mathlib/FieldTheory/Tower.html#FiniteDimensional.finrank_mul_finrank') in FieldTheory/Tower from `[CommRing F] [Algebra F K]` to `[Ring F] [Module F K]`, and remove the `[Module.Finite F K]` and `[Module.Finite K A]` conditions. The generalized version applies to situations when we have a tower C/B/A where the A-module structure on C is induced from the B-module structure via a RingHom from A to B, and the A-module structure on B is induced by the same RingHom. In particular, it applies when the A-module structure on B and the B-module structure on C come from two RingHoms, and the A-module structure on C comes from the composition of them, regardless of whether A and B are commutative or not. As prerequisites, I also generalized lemmas originally introduced by @kckennylau in [mathlib3#3355](https://github.com/leanprover-community/mathlib/pull/3355/files) to prove the tower law. They were split into three PRs: + LinearAlgebra/Span #9380: add `span_eq_closure` and `closure_induction` which say that `Submodule.span R s` is generated by `R • s` as an AddSubmonoid. I feel that the existing `span_induction` should be replaced by `closure_induction` as the latter is stronger, and allow us to remove the commutativity condition in `span_smul_of_span_eq_top` in Algebra/Tower. + Algebra/Tower #9382: switching from CommSemiring/Algebra to Semiring/Module here requires proving the curious lemma `IsScalarTower.isLinearMap` which states that for a tower of modules A/S/R, any S-linear map from S to A is also R-linear. If the map is injective, we can deduce that S/S/R also form a tower. (By `ringHomEquivModuleIsScalarTower` in #9381, there is therefore a canonical RingHom from R to S.) + Lemmas for free modules over rings including `finrank_mul_finrank'` are moved from FieldTheory/Tower to LinearAlgebra/Dimension/Free [Zulip](https://leanprover.zulipchat.com/#narrow/stream/116395-maths/topic/Puzzle.3A.20noncommutative.20RingHom.20as.20typeclasses/near/407347711) ESTIMATED CHANGES Modified Mathlib/FieldTheory/Galois.lean Modified Mathlib/FieldTheory/PolynomialGaloisGroup.lean Modified Mathlib/FieldTheory/Tower.lean +/- theorem FiniteDimensional.Subalgebra.isSimpleOrder_of_finrank_prime - theorem FiniteDimensional.finrank_mul_finrank' - theorem FiniteDimensional.finrank_mul_finrank +/- theorem FiniteDimensional.left - theorem lift_rank_mul_lift_rank - theorem rank_mul_rank Modified Mathlib/LinearAlgebra/Dimension/Free.lean + theorem FiniteDimensional.finrank_mul_finrank + theorem lift_rank_mul_lift_rank + theorem rank_mul_rank 2024-01-08 19:08:32 77e5628 feat(Analysis/NormedSpace/TrivSqZeroExt): generalize to topological spaces (#9491) These results are still true even if the exponential does not converge, because in those cases all the terms are zero. The `hasSum_fst_expSeries` lemma has been dropped because it's a trivial consequence of the new `fst_expSeries`; the fact that the series are elementwise equal. ESTIMATED CHANGES Modified Mathlib/Analysis/NormedSpace/TrivSqZeroExt.lean + theorem TrivSqZeroExt.fst_expSeries +/- theorem TrivSqZeroExt.hasSum_expSeries_of_smul_comm - theorem TrivSqZeroExt.hasSum_fst_expSeries +/- theorem TrivSqZeroExt.hasSum_snd_expSeries_of_smul_comm + theorem TrivSqZeroExt.snd_expSeries_of_smul_comm 2024-01-08 18:09:08 cabd20e feat: Rank-nullity theorem for commutative domains (#9412) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Module/LocalizedModule.lean + theorem IsLocalizedModule.mk'_smul_mk' Added Mathlib/Algebra/Module/Submodule/Localization.lean + def Submodule.localized' + def Submodule.toLocalized' + def Submodule.toLocalizedQuotient' + theorem Submodule.toLocalizedQuotient'_mk Modified Mathlib/Algebra/Module/Zlattice.lean Modified Mathlib/LinearAlgebra/Dimension/Constructions.lean + theorem finrank_range_le_card + theorem finrank_span_eq_card + theorem finrank_span_finset_eq_card + theorem finrank_span_finset_le_card + theorem finrank_span_le_card + theorem finrank_span_set_eq_card + theorem rank_span_le - theorem rank_span_le_of_finite + theorem span_lt_of_subset_of_card_lt_finrank + theorem span_lt_top_of_card_lt_finrank Modified Mathlib/LinearAlgebra/Dimension/DivisionRing.lean - theorem finrank_range_le_card - theorem finrank_span_eq_card - theorem finrank_span_finset_eq_card - theorem finrank_span_finset_le_card - theorem finrank_span_le_card - theorem finrank_span_set_eq_card - theorem rank_span_le - theorem span_lt_of_subset_of_card_lt_finrank - theorem span_lt_top_of_card_lt_finrank Added Mathlib/LinearAlgebra/Dimension/Localization.lean + theorem IsLocalizedModule.lift_rank_eq + theorem IsLocalizedModule.rank_eq + theorem rank_quotient_add_rank_of_isDomain Modified Mathlib/NumberTheory/NumberField/Basic.lean 2024-01-08 16:53:22 ac9e42e feat(Algebra/Homology): definition of the mapping cone (#9508) This PR defines the mapping cone of a morphism between cochain complexes. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Homology/ComplexShape.lean Added Mathlib/Algebra/Homology/HomotopyCategory/MappingCone.lean + theorem CochainComplex.mappingCone.ext_from + theorem CochainComplex.mappingCone.ext_from_iff + theorem CochainComplex.mappingCone.ext_to + theorem CochainComplex.mappingCone.ext_to_iff + theorem CochainComplex.mappingCone.inl_fst + theorem CochainComplex.mappingCone.inl_fst_assoc + theorem CochainComplex.mappingCone.inl_snd + theorem CochainComplex.mappingCone.inl_snd_assoc + theorem CochainComplex.mappingCone.inl_v_fst_v + theorem CochainComplex.mappingCone.inl_v_snd_v + theorem CochainComplex.mappingCone.inr_f_fst_v + theorem CochainComplex.mappingCone.inr_f_snd_v + theorem CochainComplex.mappingCone.inr_fst + theorem CochainComplex.mappingCone.inr_fst_assoc + theorem CochainComplex.mappingCone.inr_snd + theorem CochainComplex.mappingCone.inr_snd_assoc 2024-01-08 16:53:20 dfdfce5 refactor(LinearAlgebra/Matrix/BilinearForm): Derive BilinearForm results from SesquilinearForm (#9485) Give definitions in `LinearAlgebra/Matrix/BilinearForm` in terms of the equivalent definitions in `LinearAlgebra/Matrix/SesquilinearForm` and derive the `BilinearForm` results as effectively special cases of the equivalent results in `SesquilinearForm`. This reduces the length of `LinearAlgebra/Matrix/BilinearForm` by over 100 lines. The aim is to: * Clarify how results in `BilinearForm` relate to results in `SesquilinearForm` * Reduce duplication of argument between the two files * Validate that the results in `SesquilinearForm` are sufficiently general to provide the results in `BilinearForm` in their existing form - in fact, some loosening of the hypothesis in `SesquilinearForm` is required. Further loosening was already applied in #9475 ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/Matrix/BilinearForm.lean +/- def BilinForm.toMatrixAux +/- def Matrix.toBilin'Aux Modified Mathlib/LinearAlgebra/Matrix/SesquilinearForm.lean 2024-01-08 16:08:58 87fc407 chore(LocallyCompact): rename the "of basis" constructor (#9327) Rename `locallyCompactSpace_of_hasBasis` to `LocallyCompactSpace.of_hasBasis` to allow the new-style dot notation. ESTIMATED CHANGES Modified Mathlib/Geometry/Manifold/ChartedSpace.lean Modified Mathlib/Geometry/Manifold/SmoothManifoldWithCorners.lean Modified Mathlib/Topology/Compactness/LocallyCompact.lean + theorem LocallyCompactSpace.of_hasBasis - theorem locallyCompactSpace_of_hasBasis Modified Mathlib/Topology/MetricSpace/PseudoMetric.lean 2024-01-08 14:36:29 f880f9c feat(Monotonicity): Register `subset_refl` as `mono` (#9547) `mono` already knows about various subset lemmas, but doesn't know that `s ⊆ s` which is useful for closing leaf goals. [Zulip discussion](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/Understanding.20the.20gcongr.20relation.20restriction/near/411707075) ESTIMATED CHANGES Modified Mathlib/Tactic/Monotonicity/Lemmas.lean 2024-01-08 14:36:28 aab088c feat: `n⁻¹ ≤ 1` (#9533) From LeanAPAP ESTIMATED CHANGES Modified Mathlib/Data/Nat/Cast/Field.lean + theorem Nat.cast_inv_le_one 2024-01-08 14:36:27 ca1a92f feat(FieldTheory/Adjoin): add `exists_finset_of_mem_adjoin` (#9524) ESTIMATED CHANGES Modified Mathlib/FieldTheory/Adjoin.lean + theorem IntermediateField.exists_finset_of_mem_adjoin 2024-01-08 14:36:25 417f344 feat(FieldTheory/IsSepClosed): add some results on separable closure and perfect field (#9522) - `IsSepClosure.isAlgClosure_of_perfectField`, `IsSepClosure.of_isAlgClosure_of_perfectField`: if `k` is a perfect field, then its separable closure coincides with its algebraic closure. - `IsSepClosed.isAlgClosed_of_perfectField`: a separably closed perfect field is also algebraically closed. - `Algebra.IsAlgebraic.[isSeparable_of_]perfectField`: if `L / K` is an algebraic extension, `K` is a perfect field, then `L / K` is separable and `L` is perfect. ESTIMATED CHANGES Modified Mathlib/FieldTheory/IsSepClosed.lean Modified Mathlib/FieldTheory/Perfect.lean + theorem Algebra.IsAlgebraic.isSeparable_of_perfectField + theorem Algebra.IsAlgebraic.perfectField Modified Mathlib/RingTheory/AdjoinRoot.lean + theorem Irreducible.exists_dvd_monic_irreducible_of_isIntegral 2024-01-08 14:36:24 70edc53 doc(FieldTheory/IsAlgClosed/Basic): add a TODO (#9519) ... which is: prove that if `K / k` is algebraic, and any monic irreducible polynomial over `k` has a root in `K`, then `K` is algebraically closed (in fact an algebraic closure of `k`). Reference: , Theorem 2. From the reference it looks like that the proof of this result needs purely inseparable argument, so probably it can't be done in this file. ESTIMATED CHANGES Modified Mathlib/FieldTheory/IsAlgClosed/Basic.lean 2024-01-08 14:36:23 3b8d080 feat: Generalizing some results from CommRing to CommSemiring (#9512) Most of the changes are minor. ESTIMATED CHANGES Modified Mathlib/Algebra/Module/LocalizedModule.lean Modified Mathlib/RingTheory/IsTensorProduct.lean Modified Mathlib/RingTheory/Localization/Integer.lean Modified Mathlib/RingTheory/Localization/Module.lean 2024-01-08 14:36:21 a6640ab feat(Analysis.Normed.Group): Tannery's theorem (#9415) This adds Tannery's theorem, a useful result about interchanging sums and pointwise limits. See Zulip thread here: https://leanprover.zulipchat.com/#narrow/stream/217875-Is-there-code-for-X.3F/topic/Tannery's.20theorem ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/Normed/Group/Tannery.lean + theorem tendsto_tsum_of_dominated_convergence 2024-01-08 13:15:33 869c023 feat(Set/Function): define `Set.graphOn` (#9497) Also prove that `s : Set (α × β)` is a graph of a function on a set if and only if `Prod.fst` is injective on `s`. ESTIMATED CHANGES Modified Mathlib/Data/Set/Function.lean + theorem Set.InjOn.image_of_comp + theorem Set.exists_eq_graphOn + theorem Set.exists_eq_graphOn_image_fst + def Set.graphOn + theorem Set.graphOn_empty + theorem Set.graphOn_insert + theorem Set.graphOn_singleton + theorem Set.graphOn_union + theorem Set.image_fst_graphOn Modified Mathlib/MeasureTheory/Covering/Besicovitch.lean 2024-01-08 13:15:32 2357687 fix(OuterMeasure): drop an unused `DecidablePred` assumption (#9496) Also add 2 `@[gcongr]` attributes ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Measure/OuterMeasure.lean 2024-01-08 13:15:31 4fc93c2 chore: Move `WithTop` lemmas earlier (#9463) Part of #9411 ESTIMATED CHANGES Modified Mathlib/Algebra/GroupPower/Lemmas.lean - theorem WithBot.coe_nsmul Modified Mathlib/Algebra/Order/Group/WithTop.lean Modified Mathlib/Algebra/Order/Monoid/WithTop.lean + def WithBot.addHom +/- theorem WithBot.bot_ne_nat + theorem WithBot.coe_addHom +/- theorem WithBot.coe_nat + theorem WithBot.coe_nsmul +/- theorem WithBot.nat_ne_bot +/- def WithTop.addHom +/- theorem WithTop.coe_add + theorem WithTop.coe_addHom +/- theorem WithTop.coe_nat + theorem WithTop.coe_nsmul +/- theorem WithTop.nat_ne_top +/- theorem WithTop.top_ne_nat Modified Mathlib/Data/Real/ENNReal.lean +/- theorem ENNReal.coe_add 2024-01-08 13:15:30 33c5d03 chore: New file for lattice ordered groups (#9457) Split `Algebra.Order.LatticeGroup` into two files: * `Algebra.Order.Group.Lattice` for general properties of lattice ordered groups * `Algebra.Order.Group.PosPart` for properties of the positive and negative parts Note that the latter also contains properties of the absolute value. These will be moved to `Algebra.Order.Group.Abs` in a later PR. Part of #9411 ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/GroupPower/CovariantClass.lean Added Mathlib/Algebra/Order/Group/Lattice.lean + def CommGroup.toDistribLattice + theorem div_inf + theorem div_sup + theorem inf_div + theorem inf_mul + theorem inf_mul_sup + theorem inv_inf + theorem inv_sup + theorem mul_inf + theorem mul_sup + theorem pow_two_semiclosed + theorem sup_div + theorem sup_mul Renamed Mathlib/Algebra/Order/LatticeGroup.lean to Mathlib/Algebra/Order/Group/PosPart.lean - def LatticeOrderedCommGroup.latticeOrderedCommGroupToDistribLattice - theorem LatticeOrderedGroup.mul_inf_eq_mul_inf_mul - theorem inf_mul - theorem inf_mul_sup - theorem inv_inf_eq_sup_inv - theorem inv_sup_eq_inv_inf_inv - theorem mul_inf - theorem mul_sup - theorem sup_mul Modified Mathlib/Analysis/Normed/Order/Lattice.lean Modified Mathlib/Topology/ContinuousFunction/Algebra.lean 2024-01-08 13:15:29 081b41a feat: allow naming the hypothesis generated by have? (#9454) Previously, there was no way to specify the name for a hypothesis generated by `have?` (and if it suggested a let, it used an inaccessible `this`). (Also, fixes a problem with `observe?`, that the suggestion was not respecting the requested name.) ESTIMATED CHANGES Modified Mathlib/Tactic/Observe.lean Modified Mathlib/Tactic/Propose.lean Modified Mathlib/Tactic/TryThis.lean +/- def addHaveSuggestion Modified test/LibrarySearch/observe.lean Modified test/propose.lean 2024-01-08 13:15:27 3d1cf78 chore(*): use `∃ x ∈ s, p x` instead of `∃ x (_ : x ∈ s), p x` (#9326) This is a follow-up to #9215. It changes the following theorems and definitions: - `IsOpen.exists_subset_affineIndependent_span_eq_top` - `IsConformalMap` - `SimpleGraph.induce_connected_of_patches` - `Submonoid.exists_list_of_mem_closure` - `AddSubmonoid.exists_list_of_mem_closure` - `AffineSubspace.mem_affineSpan_insert_iff` - `AffineBasis.exists_affine_subbasis` - `exists_affineIndependent` - `LinearMap.mem_submoduleImage` - `Basis.basis_singleton_iff` - `atom_iff_nonzero_span` - `finrank_eq_one_iff'` - `Submodule.basis_of_pid_aux` - `exists_linearIndependent_extension` - `exists_linearIndependent` - `countable_cover_nhdsWithin_of_sigma_compact` - `mem_residual` Also deprecate `ENNReal.exists_ne_top'`. ESTIMATED CHANGES Modified Mathlib/Analysis/Analytic/Composition.lean Modified Mathlib/Analysis/NormedSpace/AddTorsorBases.lean Modified Mathlib/Analysis/NormedSpace/ConformalLinearMap.lean Modified Mathlib/Combinatorics/SimpleGraph/Connectivity/Subgraph.lean Modified Mathlib/Data/Real/ENNReal.lean +/- theorem ENNReal.exists_ne_top Modified Mathlib/Geometry/Euclidean/Circumcenter.lean Modified Mathlib/GroupTheory/Submonoid/Membership.lean Modified Mathlib/LinearAlgebra/AffineSpace/AffineSubspace.lean Modified Mathlib/LinearAlgebra/AffineSpace/Basis.lean Modified Mathlib/LinearAlgebra/AffineSpace/Independent.lean Modified Mathlib/LinearAlgebra/Basic.lean Modified Mathlib/LinearAlgebra/Basis.lean Modified Mathlib/LinearAlgebra/Basis/VectorSpace.lean Modified Mathlib/LinearAlgebra/FiniteDimensional.lean +/- theorem finrank_eq_one_iff' Modified Mathlib/LinearAlgebra/FreeModule/PID.lean Modified Mathlib/LinearAlgebra/LinearIndependent.lean Modified Mathlib/Topology/Compactness/SigmaCompact.lean Modified Mathlib/Topology/MetricSpace/Baire.lean +/- theorem mem_residual 2024-01-08 13:15:26 1583a70 feat: Extract a computable `Finsupp.extendDomain` from `restrictSupportEquiv` (#9325) This PR adds two constructions of finitely supported functions: * `Finsupp.piecewise`: define a finitely supported function from two functions, according to a decidable predicate * `Finsupp.extendDomain`: extends by 0 a finitely supported function on a subtype by 0. This is a computable version of `embDomain (.subtype _)`, which also has a simpler defeq. * adjust accordingly the definition of `Finsupp.restrictSupportEquiv`. This may be used to simplify some parts of #7904. ESTIMATED CHANGES Modified Mathlib/Data/Finsupp/Basic.lean + def Finsupp.extendDomain + theorem Finsupp.extendDomain_eq_embDomain_subtype + theorem Finsupp.extendDomain_single + theorem Finsupp.extendDomain_subtypeDomain + def Finsupp.piecewise + theorem Finsupp.subtypeDomain_extendDomain + theorem Finsupp.subtypeDomain_not_piecewise + theorem Finsupp.subtypeDomain_piecewise + theorem Finsupp.support_extendDomain_subset 2024-01-08 13:15:25 303bf51 chore(Topology/Maps): small clean-ups (#9268) - Make sure each new definition is in a separate section. - Add corresponding namespaces where missing. - Collect `TopologicalSpace` assumptions. - Collect variables $\{f : \alpha \to \beta\}$ and $\{g : \beta \to \gamma\}$ in theorems; we leave definitions alone. - In a later PR, we will rename the type variables in this file: this reduces the diff in doing so. ESTIMATED CHANGES Modified Mathlib/AlgebraicGeometry/Morphisms/UniversallyClosed.lean Modified Mathlib/Topology/Maps.lean +/- theorem ClosedEmbedding.closed_iff_image_closed +/- theorem ClosedEmbedding.closed_iff_preimage_closed +/- theorem ClosedEmbedding.closure_image_eq +/- theorem ClosedEmbedding.comp +/- theorem ClosedEmbedding.continuous +/- theorem ClosedEmbedding.isClosedMap +/- theorem ClosedEmbedding.tendsto_nhds_iff +/- theorem Embedding.continuous +/- theorem Embedding.continuous_iff +/- theorem Embedding.map_nhds_eq +/- theorem Embedding.map_nhds_of_mem +/- theorem Embedding.tendsto_nhds_iff +/- theorem Embedding.toOpenEmbedding_of_surjective +/- theorem Inducing.closure_eq_preimage_closure_image +/- theorem Inducing.continuousAt_iff' +/- theorem Inducing.continuousAt_iff +/- theorem Inducing.continuous_iff +/- theorem Inducing.dense_iff +/- theorem Inducing.image_mem_nhdsWithin +/- theorem Inducing.isClosedMap +/- theorem Inducing.isClosed_iff' +/- theorem Inducing.isClosed_iff +/- theorem Inducing.isClosed_preimage +/- theorem Inducing.isOpen_iff +/- theorem Inducing.mapClusterPt_iff +/- theorem Inducing.map_nhds_eq +/- theorem Inducing.map_nhds_of_mem +/- theorem Inducing.nhdsSet_eq_comap +/- theorem Inducing.nhds_eq_comap +/- theorem Inducing.setOf_isOpen +/- theorem Inducing.tendsto_nhds_iff +/- theorem IsClosedMap.closed_range +/- theorem IsClosedMap.closure_image_eq_of_continuous +/- theorem IsClosedMap.closure_image_subset +/- theorem IsClosedMap.lift'_closure_map_eq +/- theorem IsClosedMap.mapClusterPt_iff_lift'_closure +/- theorem IsClosedMap.of_inverse +/- theorem IsClosedMap.of_nonempty +/- theorem IsClosedMap.to_quotientMap +/- theorem IsOpenMap.of_inverse +/- theorem IsOpenMap.of_sections +/- theorem IsOpenMap.to_quotientMap +/- theorem OpenEmbedding.continuous +/- theorem OpenEmbedding.continuousAt_iff +/- theorem OpenEmbedding.isOpenMap +/- theorem OpenEmbedding.isOpenMap_iff +/- theorem OpenEmbedding.map_nhds_eq +/- theorem OpenEmbedding.of_comp +/- theorem OpenEmbedding.of_comp_iff +/- theorem OpenEmbedding.open_iff_image_open +/- theorem OpenEmbedding.open_iff_preimage_open +/- theorem OpenEmbedding.tendsto_nhds_iff' +/- theorem OpenEmbedding.tendsto_nhds_iff +/- theorem closedEmbedding_id +/- theorem closedEmbedding_of_continuous_injective_closed +/- theorem closedEmbedding_of_embedding_closed +/- theorem embedding_of_embedding_compose +/- theorem inducing_iff_nhds +/- theorem inducing_of_inducing_compose +/- theorem isClosedMap_iff_closure_image +/- theorem isClosedMap_iff_clusterPt +/- theorem isOpenMap_iff_interior +/- theorem isOpenMap_iff_nhds_le +/- theorem openEmbedding_iff_continuous_injective_open +/- theorem openEmbedding_iff_embedding_open +/- theorem openEmbedding_of_continuous_injective_open +/- theorem openEmbedding_of_embedding_open +/- theorem quotientMap_iff +/- theorem quotientMap_iff_closed 2024-01-08 13:15:24 9df25a9 chore: last LocalHomeomorph -> PartialHomeomorph renames (#9238) Follow-up to #8982; a few lemma names were still wrong. ESTIMATED CHANGES Modified Mathlib/Geometry/Manifold/ChartedSpace.lean Modified Mathlib/Geometry/Manifold/MFDeriv.lean Modified Mathlib/Geometry/Manifold/VectorBundle/Basic.lean Modified Mathlib/Geometry/Manifold/VectorBundle/FiberwiseLinear.lean - def FiberwiseLinear.localHomeomorph + def FiberwiseLinear.partialHomeomorph - theorem FiberwiseLinear.source_trans_localHomeomorph + theorem FiberwiseLinear.source_trans_partialHomeomorph - theorem FiberwiseLinear.target_trans_localHomeomorph + theorem FiberwiseLinear.target_trans_partialHomeomorph - theorem FiberwiseLinear.trans_localHomeomorph_apply + theorem FiberwiseLinear.trans_partialHomeomorph_apply Modified Mathlib/Topology/PartialHomeomorph.lean +/- theorem PartialHomeomorph.subtypeRestr_def - theorem TopologicalSpace.Opens.localHomeomorphSubtypeCoe_coe - theorem TopologicalSpace.Opens.localHomeomorphSubtypeCoe_source - theorem TopologicalSpace.Opens.localHomeomorphSubtypeCoe_target + theorem TopologicalSpace.Opens.partialHomeomorphSubtypeCoe_coe + theorem TopologicalSpace.Opens.partialHomeomorphSubtypeCoe_source + theorem TopologicalSpace.Opens.partialHomeomorphSubtypeCoe_target 2024-01-08 13:15:23 3b80012 feat : generalize PrimeSpectrum from Ring to Semiring (#8763) Some results of PrimeSpectrum generalized from CommRing to CommSemiring. ESTIMATED CHANGES Modified Mathlib/AlgebraicGeometry/PrimeSpectrum/Basic.lean +/- theorem LocalRing.PrimeSpectrum.comap_residue +/- theorem LocalRing.comap_closedPoint +/- theorem LocalRing.isLocalRingHom_iff_comap_closedPoint +/- def PrimeSpectrum.closedsEmbedding +/- theorem PrimeSpectrum.localization_away_comap_range +/- theorem PrimeSpectrum.localization_away_openEmbedding +/- structure PrimeSpectrum 2024-01-08 12:05:53 006e9a3 chore: Move `a ^ m = b ^ n ↔ ∃ c, a = c ^ n ∧ b = c ^ m` (#9505) Those lemmas were very recently added in #9397. Also make them iffs and golf. Part of #9411 ESTIMATED CHANGES Modified Mathlib/Algebra/GroupWithZero/Bitwise.lean Modified Mathlib/Algebra/GroupWithZero/Power.lean - theorem Commute.exists_eq_pow_of_pow_eq_pow_of_coprime - theorem pow_mem_range_pow_of_coprime Modified Mathlib/Data/Int/GCD.lean + theorem pow_eq_pow_iff_of_coprime + theorem pow_mem_range_pow_of_coprime Modified Mathlib/NumberTheory/NumberField/Norm.lean 2024-01-08 12:05:52 4f95216 chore: Move `(r • x) ^ n = r ^ n • x ^ n` earlier (#9502) Part of #9411 ESTIMATED CHANGES Modified Mathlib/Algebra/GroupPower/Lemmas.lean - theorem smul_pow' - theorem smul_pow Modified Mathlib/GroupTheory/GroupAction/Defs.lean + theorem smul_pow' + theorem smul_pow 2024-01-08 12:05:51 2098be6 refactor: Generalise absolute value of continuous map to topological lattices (#9501) Delete `ContinuousMap.abs` in favor of the general construction in lattice ordered groups. Part of #9411 ESTIMATED CHANGES Modified Mathlib/Topology/ContinuousFunction/Algebra.lean + theorem ContinuousMap.coe_mabs + theorem ContinuousMap.mabs_apply Modified Mathlib/Topology/ContinuousFunction/Ordered.lean - def ContinuousMap.abs - theorem ContinuousMap.abs_apply + theorem ContinuousMap.coe_inf' + theorem ContinuousMap.coe_inf + theorem ContinuousMap.coe_sup' + theorem ContinuousMap.coe_sup +/- theorem ContinuousMap.inf'_apply - theorem ContinuousMap.inf'_coe +/- theorem ContinuousMap.inf_apply - theorem ContinuousMap.inf_coe +/- theorem ContinuousMap.sup'_apply - theorem ContinuousMap.sup'_coe +/- theorem ContinuousMap.sup_apply - theorem ContinuousMap.sup_coe Modified Mathlib/Topology/ContinuousFunction/StoneWeierstrass.lean 2024-01-08 12:05:50 8b2dcf6 feat (RingTheory/Ideal/QuotientOperations) : remove commutativity assumption (#9495) This PR removes commutativity instances on the target of lift lemmas as well as some equivalences. It adds two short lemmas: * `RingHom.quotientKerEquivRangeS`, a version of the first isomorphism theorem when the target is only a `Semiring` * `RingHom.ker_rangeSRestrict `, a version of `RingHom.ker_rangeRestrict` when the target is only a `Semiring`. ESTIMATED CHANGES Modified Mathlib/RingTheory/Ideal/Operations.lean + theorem RingHom.ker_rangeSRestrict Modified Mathlib/RingTheory/Ideal/QuotientOperations.lean +/- theorem Ideal.ker_quotient_lift +/- theorem RingHom.kerLift_injective 2024-01-08 11:01:33 afe6b29 chore: improvements to Presheaf simp lemmas (#9542) Various things break in the simpset for `Presheaf` when the simp algorithm changes in leanprover/lean4#3124. These backwards compatible fixes are, I think, improvements anyway. One could further add a `Presheaf.id_app` lemma, and do further cleanup in the proofs which now use `dsimp [-Presheaf.comp_app]`, but I'd prefer if these are done in a followup PR in order to not hold up #9500. ESTIMATED CHANGES Modified Mathlib/AlgebraicGeometry/Spec.lean Modified Mathlib/Geometry/RingedSpace/PresheafedSpace.lean Modified Mathlib/Geometry/RingedSpace/PresheafedSpace/HasColimits.lean Modified Mathlib/Topology/Sheaves/Presheaf.lean + theorem TopCat.Presheaf.comp_app Modified Mathlib/Topology/Sheaves/Skyscraper.lean 2024-01-08 11:01:32 320fe23 chore: cleanup simp calls (#9539) Remove some unnecessary arguments in `simp` calls, which will become problematic when the `simp` algorithm changes in leanprover/lean4#3124. ESTIMATED CHANGES Modified Mathlib/Algebra/BigOperators/Fin.lean Modified Mathlib/Analysis/InnerProductSpace/l2Space.lean Modified Mathlib/CategoryTheory/Limits/Opposites.lean Modified Mathlib/Combinatorics/SimpleGraph/AdjMatrix.lean Modified Mathlib/Data/Vector/Snoc.lean Modified Mathlib/ModelTheory/Semantics.lean Modified Mathlib/Testing/SlimCheck/Sampleable.lean 2024-01-08 11:01:31 967b09f feat(Order/Filter): add `Frequently.uncurry` (#9536) ESTIMATED CHANGES Modified Mathlib/Order/Filter/Prod.lean 2024-01-08 11:01:30 028b969 chore(Data/Nat/Choose/Multinomial): Golf (#9534) and `n ! ≤ n ^ n` From LeanAPAP ESTIMATED CHANGES Modified Mathlib/Data/Nat/Choose/Multinomial.lean + theorem Nat.multinomial_cons +/- theorem Nat.multinomial_insert +/- theorem Nat.multinomial_singleton Modified Mathlib/Data/Nat/Factorial/Basic.lean + theorem Nat.factorial_le_pow 2024-01-08 11:01:29 7445e72 feat: Basic finset lemmas (#9530) From LeanAPAP ESTIMATED CHANGES Modified Mathlib/Data/Finset/Card.lean + theorem Finset.cast_card_sdiff Modified Mathlib/Data/Finset/Powerset.lean +/- theorem Finset.mem_powersetCard +/- theorem Finset.powersetCard_card_add - theorem Finset.powersetCard_empty + theorem Finset.powersetCard_empty_subsingleton + theorem Finset.powersetCard_eq_empty Modified Mathlib/Data/Fintype/Lattice.lean + theorem Finset.mem_inf Modified Mathlib/Data/Fintype/Powerset.lean +/- theorem Finset.mem_powersetCard_univ Modified Mathlib/Data/Multiset/Powerset.lean - theorem Multiset.powersetCard_empty + theorem Multiset.powersetCard_eq_empty 2024-01-08 11:01:27 f5eb4a8 chore(Filter/AtTopBot): golf (#9521) Golf lemmas about sequential convergence and related concepts. Also add `Filter.frequently_iff_seq_forall`. ESTIMATED CHANGES Modified Mathlib/Order/Filter/AtTopBot.lean + theorem Filter.frequently_iff_seq_forall - theorem Filter.not_tendsto_iff_exists_frequently_nmem - theorem Filter.tendsto_iff_forall_eventually_mem Modified Mathlib/Order/Filter/Basic.lean + theorem Filter.Tendsto.eventually_mem + theorem Filter.not_tendsto_iff_exists_frequently_nmem + theorem Filter.tendsto_iff_forall_eventually_mem 2024-01-08 11:01:26 494478b chore: Rename `rpow_nonneg_of_nonneg` to `rpow_nonneg` (#9518) This better matches other lemma names. From LeanAPAP ESTIMATED CHANGES Modified Mathlib/Analysis/Distribution/SchwartzSpace.lean Modified Mathlib/Analysis/Fourier/PoissonSummation.lean Modified Mathlib/Analysis/MeanInequalities.lean Modified Mathlib/Analysis/MeanInequalitiesPow.lean Modified Mathlib/Analysis/MellinTransform.lean Modified Mathlib/Analysis/NormedSpace/PiLp.lean Modified Mathlib/Analysis/NormedSpace/ProdLp.lean Modified Mathlib/Analysis/NormedSpace/lpSpace.lean Modified Mathlib/Analysis/SpecialFunctions/Gamma/Beta.lean Modified Mathlib/Analysis/SpecialFunctions/Gamma/BohrMollerup.lean Modified Mathlib/Analysis/SpecialFunctions/Gaussian.lean Modified Mathlib/Analysis/SpecialFunctions/ImproperIntegrals.lean Modified Mathlib/Analysis/SpecialFunctions/Integrals.lean Modified Mathlib/Analysis/SpecialFunctions/JapaneseBracket.lean Modified Mathlib/Analysis/SpecialFunctions/Pow/Asymptotics.lean Modified Mathlib/Analysis/SpecialFunctions/Pow/Continuity.lean Modified Mathlib/Analysis/SpecialFunctions/Pow/NNReal.lean Modified Mathlib/Analysis/SpecialFunctions/Pow/Real.lean + theorem Real.rpow_nonneg - theorem Real.rpow_nonneg_of_nonneg Modified Mathlib/Analysis/SpecificLimits/FloorPow.lean Modified Mathlib/Combinatorics/Additive/Behrend.lean Modified Mathlib/Computability/AkraBazzi/AkraBazzi.lean Modified Mathlib/MeasureTheory/Function/ContinuousMapDense.lean Modified Mathlib/MeasureTheory/Function/LpSeminorm.lean Modified Mathlib/MeasureTheory/Function/UniformIntegrable.lean Modified Mathlib/MeasureTheory/Integral/Bochner.lean Modified Mathlib/MeasureTheory/Integral/IntegralEqImproper.lean Modified Mathlib/MeasureTheory/Integral/Layercake.lean Modified Mathlib/MeasureTheory/Measure/Lebesgue/VolumeOfBalls.lean Modified Mathlib/NumberTheory/Bertrand.lean Modified Mathlib/NumberTheory/NumberField/CanonicalEmbedding.lean Modified Mathlib/NumberTheory/NumberField/Discriminant.lean Modified Mathlib/NumberTheory/ZetaFunction.lean 2024-01-08 09:51:32 46aac50 chore: replace a proof in Combinatorics/Composition (#9540) This proof has been causing timeouts for both leanprover/lean4#3124 and leanprover/lean4#3139 (and its in-progress fixes), so I'm just fixing it pre-emptively here. (Fix due to @joehendrix.) ESTIMATED CHANGES Modified Mathlib/Combinatorics/Composition.lean 2024-01-08 09:51:31 f8a022d chore: remove a bad @[simp] in Control/Traversable (#9538) This @[simp] attribute was bad all along, and with a change to the simp algorithm in leanprover/lean4#3124, finally starting breaking things. ESTIMATED CHANGES Modified Mathlib/Control/Bitraversable/Instances.lean Modified Mathlib/Control/Traversable/Basic.lean 2024-01-08 09:51:30 5618e43 chore(*): use α → β instead of ∀ _ : α, β (#9529) ESTIMATED CHANGES Modified Mathlib/Algebra/BigOperators/Fin.lean Modified Mathlib/Algebra/Homology/HomologicalComplex.lean +/- def ChainComplex.mkAux +/- def CochainComplex.mkAux Modified Mathlib/Algebra/Lie/Engel.lean Modified Mathlib/Algebra/Opposites.lean Modified Mathlib/AlgebraicGeometry/OpenImmersion.lean Modified Mathlib/AlgebraicTopology/SimplexCategory.lean Modified Mathlib/CategoryTheory/GradedObject.lean +/- theorem CategoryTheory.GradedObject.eqToHom_apply Modified Mathlib/CategoryTheory/Limits/Shapes/WideEqualizers.lean Modified Mathlib/Data/Fin/Tuple/Basic.lean +/- theorem Fin.tuple0_le Modified Mathlib/Data/Finset/Basic.lean Modified Mathlib/Data/Fintype/Card.lean Modified Mathlib/Data/Set/Prod.lean +/- theorem Set.univ_pi_update Modified Mathlib/Deprecated/Submonoid.lean Modified Mathlib/FieldTheory/RatFunc.lean +/- theorem RatFunc.liftOn'_div +/- theorem RatFunc.liftOn'_mk +/- theorem RatFunc.liftOn_condition_of_liftOn'_condition +/- theorem RatFunc.liftOn_div +/- theorem RatFunc.liftOn_mk +/- theorem RatFunc.liftOn_ofFractionRing_mk Modified Mathlib/FieldTheory/SplittingField/Construction.lean +/- def Polynomial.SplittingFieldAuxAux Modified Mathlib/GroupTheory/Nilpotent.lean Modified Mathlib/LinearAlgebra/AffineSpace/AffineMap.lean Modified Mathlib/LinearAlgebra/AffineSpace/MidpointZero.lean +/- theorem pi_midpoint_apply Modified Mathlib/LinearAlgebra/FreeModule/IdealQuotient.lean Modified Mathlib/LinearAlgebra/PiTensorProduct.lean +/- theorem PiTensorProduct.reindex_tprod Modified Mathlib/LinearAlgebra/StdBasis.lean Modified Mathlib/MeasureTheory/Covering/VitaliFamily.lean Modified Mathlib/MeasureTheory/Function/ConditionalExpectation/AEMeasurable.lean Modified Mathlib/ModelTheory/Definability.lean +/- theorem Set.definable_finset_biInter +/- theorem Set.definable_finset_biUnion +/- theorem Set.definable_finset_inf +/- theorem Set.definable_finset_sup Modified Mathlib/ModelTheory/Syntax.lean Modified Mathlib/NumberTheory/Dioph.lean +/- theorem Dioph.reindex_dioph Modified Mathlib/Order/ConditionallyCompleteLattice/Basic.lean Modified Mathlib/Order/RelIso/Basic.lean Modified Mathlib/Probability/Independence/Kernel.lean Modified Mathlib/Probability/Martingale/OptionalStopping.lean Modified Mathlib/RingTheory/QuotientNilpotent.lean Modified Mathlib/SetTheory/Game/Nim.lean Modified Mathlib/SetTheory/Game/PGame.lean +/- def SetTheory.PGame.Relabelling.leftMovesEquiv +/- def SetTheory.PGame.Relabelling.rightMovesEquiv Modified Mathlib/Testing/SlimCheck/Testable.lean Modified Mathlib/Topology/ContinuousFunction/StoneWeierstrass.lean Modified Mathlib/Topology/FiberBundle/Constructions.lean Modified Mathlib/Topology/VectorBundle/Hom.lean 2024-01-08 09:51:29 1de7e66 chore(FieldTheory/SeparableDegree): add `Separable.natSepDegree_eq_natDegree` and golf (#9525) ... which is the same as `Polynomial.natSepDegree_eq_natDegree_of_separable`, but enables the use of dot notation. ESTIMATED CHANGES Modified Mathlib/FieldTheory/SeparableDegree.lean + theorem Polynomial.Separable.natSepDegree_eq_natDegree 2024-01-08 08:42:14 6688f91 chore(UnitInterval): golf (#9544) ESTIMATED CHANGES Modified Mathlib/Topology/UnitInterval.lean 2024-01-08 08:42:13 78002f2 feat(Set/Pairwise): add 2 lemmas (#9499) Add `Set.injOn_iff_pairwise_ne` and `Set.Pairwise.image`. ESTIMATED CHANGES Modified Mathlib/Data/Set/Pairwise/Basic.lean + theorem Set.injOn_iff_pairwise_ne 2024-01-08 08:22:23 03bf774 chore(*): use `∞` for `⊤ : ENNReal` (#9541) ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Measure/MeasureSpace.lean +/- theorem MeasureTheory.measure_liminf_eq_zero Modified Mathlib/MeasureTheory/Measure/Regular.lean Modified Mathlib/MeasureTheory/Measure/Typeclasses.lean Modified Mathlib/MeasureTheory/Measure/WithDensity.lean Modified Mathlib/Topology/Instances/ENNReal.lean +/- theorem ENNReal.continuous_sub_left +/- theorem ENNReal.iInf_mul_left' +/- theorem ENNReal.iInf_mul_right' +/- theorem ENNReal.isOpen_ne_top +/- theorem ENNReal.nhds_of_ne_top +/- theorem ENNReal.sub_iSup +/- theorem ENNReal.tendsto_toNNReal +/- theorem ENNReal.tendsto_toReal +/- theorem ENNReal.tsum_lt_tsum +/- theorem Summable.countable_support_ennreal +/- theorem continuous_of_le_add_edist +/- theorem edist_ne_top_of_mem_ball 2024-01-07 19:34:35 9f6d338 chore(*): replace `$` with `<|` (#9319) See [Zulip thread](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/Coding.20style.3A.20.3C.7C.20vs.20.24) for the discussion. ESTIMATED CHANGES Modified Archive/Imo/Imo2005Q4.lean Modified Cache/Hashing.lean Modified Cache/IO.lean +/- def Cache.IO.getLocalCacheSet +/- def Cache.IO.mkBuildPaths Modified Cache/Main.lean Modified Cache/Requests.lean +/- def Cache.Requests.getFilesInfo Modified Counterexamples/SorgenfreyLine.lean Modified Mathlib/Algebra/Algebra/RestrictScalars.lean Modified Mathlib/Algebra/Algebra/Subalgebra/Basic.lean Modified Mathlib/Algebra/Algebra/Subalgebra/Tower.lean Modified Mathlib/Algebra/BigOperators/Basic.lean Modified Mathlib/Algebra/BigOperators/Order.lean Modified Mathlib/Algebra/ContinuedFractions/Computation/ApproximationCorollaries.lean Modified Mathlib/Algebra/ContinuedFractions/Computation/Approximations.lean Modified Mathlib/Algebra/DirectSum/Internal.lean Modified Mathlib/Algebra/DirectSum/Ring.lean Modified Mathlib/Algebra/Field/Opposite.lean Modified Mathlib/Algebra/GeomSum.lean Modified Mathlib/Algebra/Group/Opposite.lean Modified Mathlib/Algebra/HierarchyDesign.lean Modified Mathlib/Algebra/Lie/Killing.lean Modified Mathlib/Algebra/Lie/Subalgebra.lean Modified Mathlib/Algebra/Module/Basic.lean Modified Mathlib/Algebra/Opposites.lean +/- theorem MulOpposite.op_inj Modified Mathlib/Algebra/Order/Archimedean.lean Modified Mathlib/Algebra/Order/Floor.lean Modified Mathlib/Algebra/Order/Module/Defs.lean Modified Mathlib/Algebra/Order/Monovary.lean Modified Mathlib/Algebra/Order/Ring/Defs.lean +/- theorem sub_one_lt Modified Mathlib/Algebra/Pointwise/Stabilizer.lean Modified Mathlib/Algebra/SMulWithZero.lean +/- theorem right_ne_zero_of_smul Modified Mathlib/Analysis/Analytic/Basic.lean Modified Mathlib/Analysis/BoxIntegral/Integrability.lean Modified Mathlib/Analysis/Calculus/Deriv/Basic.lean Modified Mathlib/Analysis/Complex/Basic.lean Modified Mathlib/Analysis/Convex/Combination.lean Modified Mathlib/Analysis/Convex/Function.lean Modified Mathlib/Analysis/Convex/Jensen.lean Modified Mathlib/Analysis/Convex/KreinMilman.lean Modified Mathlib/Analysis/Convex/Mul.lean Modified Mathlib/Analysis/Convex/Radon.lean Modified Mathlib/Analysis/Convex/SpecificFunctions/Basic.lean Modified Mathlib/Analysis/Convex/Strong.lean Modified Mathlib/Analysis/Convex/Topology.lean Modified Mathlib/Analysis/LocallyConvex/WithSeminorms.lean Modified Mathlib/Analysis/Seminorm.lean Modified Mathlib/Analysis/SpecialFunctions/Pow/Real.lean Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Series.lean Modified Mathlib/Analysis/SpecificLimits/Basic.lean Modified Mathlib/CategoryTheory/Adhesive.lean Modified Mathlib/CategoryTheory/Closed/Cartesian.lean Modified Mathlib/CategoryTheory/Extensive.lean Modified Mathlib/CategoryTheory/Groupoid/FreeGroupoid.lean Modified Mathlib/CategoryTheory/Limits/VanKampen.lean Modified Mathlib/CategoryTheory/Quotient.lean Modified Mathlib/Combinatorics/Additive/Behrend.lean Modified Mathlib/Combinatorics/Colex.lean Modified Mathlib/Combinatorics/Configuration.lean Modified Mathlib/Combinatorics/Schnirelmann.lean Modified Mathlib/Combinatorics/SetFamily/CauchyDavenport.lean Modified Mathlib/Combinatorics/SetFamily/Compression/UV.lean Modified Mathlib/Combinatorics/SetFamily/FourFunctions.lean Modified Mathlib/Combinatorics/SetFamily/Shadow.lean Modified Mathlib/Combinatorics/SimpleGraph/Basic.lean Modified Mathlib/Combinatorics/SimpleGraph/Regularity/Increment.lean Modified Mathlib/Computability/ContextFreeGrammar.lean Modified Mathlib/Control/EquivFunctor.lean Modified Mathlib/Control/Monad/Writer.lean Modified Mathlib/Control/Random.lean Modified Mathlib/Data/BinaryHeap.lean Modified Mathlib/Data/Bool/Basic.lean Modified Mathlib/Data/Complex/Exponential.lean Modified Mathlib/Data/DFinsupp/Basic.lean Modified Mathlib/Data/DFinsupp/Order.lean Modified Mathlib/Data/Fin/Basic.lean Modified Mathlib/Data/Finset/Basic.lean Modified Mathlib/Data/Finset/Card.lean Modified Mathlib/Data/Finset/Grade.lean +/- theorem Finset.ordConnected_range_val Modified Mathlib/Data/Finset/NatAntidiagonal.lean Modified Mathlib/Data/Finset/Pointwise.lean Modified Mathlib/Data/Finset/Sups.lean Modified Mathlib/Data/Finsupp/Notation.lean Modified Mathlib/Data/Fintype/BigOperators.lean Modified Mathlib/Data/Fintype/Card.lean Modified Mathlib/Data/FunLike/Basic.lean Modified Mathlib/Data/FunLike/Equiv.lean Modified Mathlib/Data/Int/Cast/Lemmas.lean Modified Mathlib/Data/Int/CharZero.lean Modified Mathlib/Data/Int/GCD.lean Modified Mathlib/Data/Int/Interval.lean +/- theorem Int.card_Icc +/- theorem Int.card_Ico +/- theorem Int.card_Ioc +/- theorem Int.card_Ioo Modified Mathlib/Data/List/Chain.lean Modified Mathlib/Data/List/Defs.lean Modified Mathlib/Data/List/Lattice.lean Modified Mathlib/Data/List/OfFn.lean Modified Mathlib/Data/Multiset/Basic.lean Modified Mathlib/Data/Multiset/Nodup.lean Modified Mathlib/Data/MvPolynomial/Basic.lean Modified Mathlib/Data/Nat/Cast/Defs.lean Modified Mathlib/Data/Nat/Choose/Central.lean Modified Mathlib/Data/Nat/Factorial/Basic.lean Modified Mathlib/Data/Nat/Factorization/Basic.lean Modified Mathlib/Data/Nat/Factorization/PrimePow.lean Modified Mathlib/Data/Nat/Fib/Basic.lean Modified Mathlib/Data/Nat/Fib/Zeckendorf.lean Modified Mathlib/Data/Nat/ForSqrt.lean Modified Mathlib/Data/Nat/ModEq.lean +/- theorem Nat.ModEq.of_dvd +/- theorem Nat.modEq_one +/- theorem Nat.modEq_sub Modified Mathlib/Data/Nat/Order/Basic.lean Modified Mathlib/Data/Nat/Pow.lean Modified Mathlib/Data/Nat/PrimeFin.lean Modified Mathlib/Data/Nat/Sqrt.lean Modified Mathlib/Data/Nat/Squarefree.lean Modified Mathlib/Data/PFun.lean Modified Mathlib/Data/Pi/Algebra.lean Modified Mathlib/Data/Polynomial/Degree/Lemmas.lean Modified Mathlib/Data/Polynomial/FieldDivision.lean Modified Mathlib/Data/Polynomial/RingDivision.lean Modified Mathlib/Data/Prod/Basic.lean Modified Mathlib/Data/Rat/Defs.lean Modified Mathlib/Data/Set/Basic.lean Modified Mathlib/Data/Set/Finite.lean Modified Mathlib/Data/Set/Function.lean Modified Mathlib/Data/Set/Intervals/ProjIcc.lean +/- theorem Set.projIci_of_le +/- theorem Set.projIic_of_le Modified Mathlib/Data/Set/Intervals/UnorderedInterval.lean +/- theorem Set.uIcc_of_not_ge +/- theorem Set.uIcc_of_not_le Modified Mathlib/Data/Set/Lattice.lean Modified Mathlib/Data/Set/Sups.lean Modified Mathlib/Data/SetLike/Basic.lean Modified Mathlib/Data/Sigma/Lex.lean Modified Mathlib/Data/Subtype.lean Modified Mathlib/Data/Sum/Interval.lean Modified Mathlib/Data/Sum/Lattice.lean Modified Mathlib/Data/UInt.lean Modified Mathlib/Data/ULift.lean Modified Mathlib/Data/UnionFind.lean Modified Mathlib/Dynamics/Ergodic/MeasurePreserving.lean Modified Mathlib/Dynamics/PeriodicPts.lean +/- theorem Function.iterate_injOn_Iio_minimalPeriod Modified Mathlib/FieldTheory/Perfect.lean Modified Mathlib/FieldTheory/PerfectClosure.lean Modified Mathlib/FieldTheory/SeparableDegree.lean Modified Mathlib/Geometry/Euclidean/Angle/Oriented/Rotation.lean Modified Mathlib/GroupTheory/Complement.lean Modified Mathlib/GroupTheory/FreeGroup/Basic.lean Modified Mathlib/GroupTheory/GroupAction/Basic.lean Modified Mathlib/GroupTheory/MonoidLocalization.lean Modified Mathlib/GroupTheory/Nilpotent.lean Modified Mathlib/GroupTheory/Order/Min.lean Modified Mathlib/GroupTheory/OrderOfElement.lean +/- theorem pow_injOn_Iio_orderOf Modified Mathlib/GroupTheory/Perm/Basic.lean Modified Mathlib/GroupTheory/QuotientGroup.lean Modified Mathlib/GroupTheory/SpecificGroups/Dihedral.lean Modified Mathlib/GroupTheory/Subgroup/Basic.lean +/- theorem Subgroup.closure_eq_bot_iff Modified Mathlib/GroupTheory/Submonoid/Membership.lean +/- theorem Submonoid.powers_one Modified Mathlib/GroupTheory/Subsemigroup/Operations.lean Modified Mathlib/GroupTheory/Sylow.lean Modified Mathlib/Init/Data/List/Instances.lean Modified Mathlib/Init/Data/Nat/Lemmas.lean Modified Mathlib/Init/Logic.lean Modified Mathlib/Init/Set.lean Modified Mathlib/Lean/Expr/Basic.lean Modified Mathlib/Lean/Meta.lean Modified Mathlib/Lean/Name.lean Modified Mathlib/Lean/PrettyPrinter/Delaborator.lean Modified Mathlib/LinearAlgebra/AffineSpace/Combination.lean Modified Mathlib/LinearAlgebra/Basic.lean Modified Mathlib/LinearAlgebra/CliffordAlgebra/Even.lean Modified Mathlib/LinearAlgebra/ExteriorAlgebra/Basic.lean Modified Mathlib/LinearAlgebra/LinearIndependent.lean Modified Mathlib/LinearAlgebra/Matrix/Spectrum.lean Modified Mathlib/LinearAlgebra/Pi.lean Modified Mathlib/LinearAlgebra/Prod.lean +/- theorem LinearMap.disjoint_inl_inr +/- theorem LinearMap.isCompl_range_inl_inr +/- theorem LinearMap.sup_range_inl_inr Modified Mathlib/LinearAlgebra/QuadraticForm/Dual.lean Modified Mathlib/LinearAlgebra/SesquilinearForm.lean Modified Mathlib/LinearAlgebra/Span.lean Modified Mathlib/Logic/Function/Basic.lean Modified Mathlib/Logic/Relator.lean Modified Mathlib/Mathport/Rename.lean Modified Mathlib/MeasureTheory/Decomposition/Lebesgue.lean Modified Mathlib/MeasureTheory/Integral/Bochner.lean Modified Mathlib/MeasureTheory/Integral/Lebesgue.lean Modified Mathlib/MeasureTheory/MeasurableSpace/Basic.lean Modified Mathlib/MeasureTheory/MeasurableSpace/Defs.lean Modified Mathlib/MeasureTheory/Measure/Haar/Basic.lean Modified Mathlib/MeasureTheory/Measure/MeasureSpace.lean Modified Mathlib/MeasureTheory/Measure/MeasureSpaceDef.lean +/- theorem MeasureTheory.measure_le_measure_union_left +/- theorem MeasureTheory.measure_le_measure_union_right Modified Mathlib/MeasureTheory/Measure/Typeclasses.lean Modified Mathlib/NumberTheory/ArithmeticFunction.lean Modified Mathlib/NumberTheory/Dioph.lean Modified Mathlib/NumberTheory/FLT/Basic.lean Modified Mathlib/NumberTheory/MaricaSchoenheim.lean Modified Mathlib/NumberTheory/NumberField/CanonicalEmbedding.lean Modified Mathlib/NumberTheory/WellApproximable.lean Modified Mathlib/Order/Atoms.lean Modified Mathlib/Order/Birkhoff.lean Modified Mathlib/Order/BooleanAlgebra.lean Modified Mathlib/Order/Booleanisation.lean Modified Mathlib/Order/Closure.lean +/- theorem ClosureOperator.isClosed_closure Modified Mathlib/Order/CompleteLattice.lean Modified Mathlib/Order/CompletePartialOrder.lean Modified Mathlib/Order/ConditionallyCompleteLattice/Basic.lean Modified Mathlib/Order/Cover.lean Modified Mathlib/Order/Filter/Bases.lean Modified Mathlib/Order/Filter/Basic.lean +/- theorem Filter.ker_eq_univ Modified Mathlib/Order/GameAdd.lean Modified Mathlib/Order/Hom/Bounded.lean Modified Mathlib/Order/Hom/Lattice.lean Modified Mathlib/Order/Iterate.lean Modified Mathlib/Order/Lattice.lean Modified Mathlib/Order/Monotone/Basic.lean Modified Mathlib/Order/OmegaCompletePartialOrder.lean Modified Mathlib/Order/Sublattice.lean +/- theorem Sublattice.inclusion_injective +/- theorem Sublattice.map_id +/- theorem Sublattice.subtype_injective Modified Mathlib/Order/SuccPred/Basic.lean Modified Mathlib/Order/SupClosed.lean Modified Mathlib/Order/UpperLower/Basic.lean Modified Mathlib/Probability/Independence/Basic.lean Modified Mathlib/Probability/Independence/Conditional.lean Modified Mathlib/Probability/Independence/Kernel.lean Modified Mathlib/Probability/Martingale/Convergence.lean Modified Mathlib/Probability/ProbabilityMassFunction/Integrals.lean Modified Mathlib/Probability/StrongLaw.lean Modified Mathlib/RepresentationTheory/GroupCohomology/Hilbert90.lean Modified Mathlib/RepresentationTheory/GroupCohomology/LowDegree.lean Modified Mathlib/RingTheory/Discriminant.lean Modified Mathlib/RingTheory/HahnSeries.lean Modified Mathlib/RingTheory/Ideal/Quotient.lean Modified Mathlib/RingTheory/MvPolynomial/Basic.lean Modified Mathlib/RingTheory/Noetherian.lean Modified Mathlib/RingTheory/Polynomial/Cyclotomic/Roots.lean Modified Mathlib/RingTheory/Polynomial/GaussLemma.lean Modified Mathlib/RingTheory/Polynomial/Nilpotent.lean Modified Mathlib/RingTheory/Subring/Basic.lean Modified Mathlib/SetTheory/Cardinal/Finite.lean Modified Mathlib/SetTheory/ZFC/Basic.lean Modified Mathlib/Tactic/Cases.lean Modified Mathlib/Tactic/Choose.lean Modified Mathlib/Tactic/Core.lean Modified Mathlib/Tactic/Find.lean Modified Mathlib/Tactic/GeneralizeProofs.lean Modified Mathlib/Tactic/Lift.lean Modified Mathlib/Tactic/Linarith/Preprocessing.lean Modified Mathlib/Tactic/ProjectionNotation.lean Modified Mathlib/Tactic/RenameBVar.lean Modified Mathlib/Tactic/Sat/FromLRAT.lean Modified Mathlib/Tactic/SlimCheck.lean Modified Mathlib/Tactic/SudoSetOption.lean Modified Mathlib/Tactic/ToAdditive.lean Modified Mathlib/Tactic/Widget/Congrm.lean Modified Mathlib/Tactic/Widget/Conv.lean Modified Mathlib/Tactic/Widget/Gcongr.lean Modified Mathlib/Testing/SlimCheck/Gen.lean Modified Mathlib/Testing/SlimCheck/Sampleable.lean Modified Mathlib/Testing/SlimCheck/Testable.lean Modified Mathlib/Topology/AlexandrovDiscrete.lean Modified Mathlib/Topology/Algebra/GroupCompletion.lean Modified Mathlib/Topology/Algebra/Order/Rolle.lean Modified Mathlib/Topology/Bases.lean Modified Mathlib/Topology/ContinuousFunction/Weierstrass.lean Modified Mathlib/Topology/EMetricSpace/Basic.lean Modified Mathlib/Topology/Instances/AddCircle.lean Modified Mathlib/Topology/Instances/Real.lean Modified Mathlib/Topology/NoetherianSpace.lean Modified Mathlib/Topology/Order/Basic.lean Modified Mathlib/Topology/Order/Category/AlexDisc.lean Modified Mathlib/Topology/Order/ScottTopology.lean Modified Mathlib/Topology/Separation.lean Modified Mathlib/Topology/Sets/Closeds.lean Modified Mathlib/Topology/Sets/Opens.lean Modified Mathlib/Topology/Sheaves/SheafCondition/Sites.lean Modified Mathlib/Topology/Specialization.lean Modified Mathlib/Topology/UniformSpace/Separation.lean Modified Mathlib/Topology/UniformSpace/UniformConvergenceTopology.lean Modified Mathlib/Util/AddRelatedDecl.lean Modified Mathlib/Util/Export.lean Modified Mathlib/Util/LongNames.lean Modified Mathlib/Util/MemoFix.lean Modified Mathlib/Util/WhatsNew.lean Modified test/Expr.lean Modified test/MLList.lean Modified test/Monotonicity.lean Modified test/Real.lean Modified test/Simps.lean +/- def CountNested.nested1 Modified test/Traversable.lean Modified test/apply_fun.lean Modified test/polyrith.lean Modified test/search/DepthFirst.lean Modified test/toAdditive.lean 2024-01-07 18:13:16 d274b39 feat: estimates for the complex logarithm (#9270) This PR adds estimates for the difference of the complex logarithm `log (1+z)` and its `n`th Taylor polynomial in terms of `‖z‖` when `‖z‖ < 1`. See [this thread](https://leanprover.zulipchat.com/#narrow/stream/217875-Is-there-code-for-X.3F/topic/Power.20series.20.2F.20bound.20for.20complex.20logarithm/near/401637775) on Zulip. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/SpecialFunctions/Complex/LogBounds.lean + theorem Complex.continuousOn_one_add_mul_inv + theorem Complex.hasDerivAt_logTaylor + theorem Complex.hasDerivAt_log_sub_logTaylor + theorem Complex.hasSum_taylorSeries_log + theorem Complex.hasSum_taylorSeries_neg_log + theorem Complex.integrable_pow_mul_norm_one_add_mul_inv + def Complex.logTaylor + theorem Complex.logTaylor_at_zero + theorem Complex.logTaylor_succ + theorem Complex.logTaylor_zero + theorem Complex.log_eq_integral + theorem Complex.log_inv_eq_integral + theorem Complex.norm_log_one_add_sub_self_le + theorem Complex.norm_log_one_sub_inv_add_logTaylor_neg_le + theorem Complex.norm_log_one_sub_inv_sub_self_le + theorem Complex.norm_log_sub_logTaylor_le + theorem Complex.norm_one_add_mul_inv_le Modified Mathlib/Analysis/SpecialFunctions/Complex/LogDeriv.lean + theorem Complex.differentiableAt_log + theorem Complex.hasDerivAt_log 2024-01-07 11:52:57 a7c1abf feat: `ContMDiffOn.congr_mono` (#9507) Mirror `ContDiffOn.congr_mono`. ESTIMATED CHANGES Modified Mathlib/Geometry/Manifold/ContMDiff/Defs.lean + theorem ContMDiffOn.congr_mono 2024-01-07 11:52:57 de9d093 feat: add trans assoc type lemmas for `(Partial)Equiv` and `(Partial)Homeomorph` (#9506) Let `e`s denote `Equiv`s and `f`s denote `PartialEquiv`s. Let `>` denote `Equiv.trans`, `PartialEquiv.trans`, `Equiv.transPartialEquiv`, or `PartialEquiv.transEquiv`. We want to simplify expressions like `e1 > e2 > f3 > f4 > e5 > e6` to `(e1 > e2) > (f3 > f4) > (e5 > e6)`, so that simp lemmas about `Equiv.trans` and `PartialEquiv.trans` may apply. This means adding four lemmas: 1. `e1 > e2 > f3 = (e1 > e2) > f3` 2. `(e1 > f2) > f3 = e1 > (f2 > f3)` 3. (1) with `e` and `f` flipped 4. (2) with `e` and `f` flipped The definitions `Equiv.transPartialEquiv` and `PartialEquiv.transEquiv` are moved to later in the document, so that they stay together with these lemmas. The argument order of these two definitions has also been reversed so as to match `Equiv.trans` and `PartialEquiv.trans`. The same is done for `Homeomorph`/`PartialHomeomorph`. ESTIMATED CHANGES Modified Mathlib/Logic/Equiv/PartialEquiv.lean +/- def Equiv.transPartialEquiv +/- theorem Equiv.transPartialEquiv_eq_trans + theorem Equiv.transPartialEquiv_trans + theorem Equiv.trans_transPartialEquiv +/- theorem PartialEquiv.symm_trans_self +/- def PartialEquiv.transEquiv +/- theorem PartialEquiv.transEquiv_eq_trans + theorem PartialEquiv.transEquiv_transEquiv + theorem PartialEquiv.trans_transEquiv Modified Mathlib/Topology/PartialHomeomorph.lean +/- def Homeomorph.transPartialHomeomorph +/- theorem Homeomorph.transPartialHomeomorph_eq_trans + theorem Homeomorph.transPartialHomeomorph_trans + theorem Homeomorph.trans_transPartialHomeomorph +/- def PartialHomeomorph.transHomeomorph +/- theorem PartialHomeomorph.transHomeomorph_eq_trans + theorem PartialHomeomorph.transHomeomorph_transHomeomorph + theorem PartialHomeomorph.trans_transHomeomorph 2024-01-07 10:52:05 83b4d8d feat: Every star ring is a `Nat`-star module (#9470) and other basic star lemmas From LeanAPAP ESTIMATED CHANGES Modified Mathlib/Algebra/Star/Basic.lean +/- theorem RingHom.star_apply +/- theorem RingHom.star_def + theorem conj_trivial +/- def starRingAut +/- def starRingEnd +/- theorem starRingEnd_apply +/- theorem starRingEnd_self_apply Modified Mathlib/Algebra/Star/Pi.lean + theorem Pi.conj_apply Modified Mathlib/Algebra/Star/SelfAdjoint.lean + theorem IsSelfAdjoint.conj_eq +/- theorem isSelfAdjoint_one +/- theorem isSelfAdjoint_zero Modified Mathlib/Data/IsROrC/Basic.lean 2024-01-07 09:42:46 b6d00f3 chore(Covering/Besicovitch): golf, reflow lines (#9498) ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Covering/Besicovitch.lean 2024-01-06 21:08:42 526457f feat(RingTheory/Ideal/Quotient): assume Semiring instance instead of CommRing (#9493) Ideal.Quotient.lift only needs `Semiring S` on the target to work. This PR only changes one line : `variable [CommRing S]` to `variable [Semiring S]` ESTIMATED CHANGES Modified Mathlib/RingTheory/Ideal/Quotient.lean 2024-01-06 20:00:22 1b3fb34 feat: Criteria for `X ^ n - C a` to be irreducible for odd `n`. (#9397) ESTIMATED CHANGES Modified Mathlib/Algebra/GroupWithZero/Power.lean + theorem Commute.exists_eq_pow_of_pow_eq_pow_of_coprime + theorem pow_mem_range_pow_of_coprime Modified Mathlib/Data/Polynomial/RingDivision.lean + theorem Polynomial.associated_of_dvd_of_degree_eq + theorem Polynomial.associated_of_dvd_of_natDegree_le + theorem Polynomial.associated_of_dvd_of_natDegree_le_of_leadingCoeff + theorem Polynomial.eq_of_dvd_of_natDegree_le_of_leadingCoeff Modified Mathlib/FieldTheory/Adjoin.lean + theorem IntermediateField.AdjoinSimple.coe_gen + theorem IntermediateField.adjoin_root_eq_top + theorem IntermediateField.finrank_top' + theorem IntermediateField.rank_top' + theorem Polynomial.irreducible_comp Modified Mathlib/FieldTheory/IntermediateField.lean + theorem IntermediateField.algebraMap_apply + theorem IntermediateField.coe_algebraMap_apply Modified Mathlib/FieldTheory/KummerExtension.lean + theorem X_pow_mul_sub_C_irreducible + theorem X_pow_sub_C_irreducible_iff_forall_prime_of_odd + theorem X_pow_sub_C_irreducible_iff_of_odd + theorem X_pow_sub_C_irreducible_iff_of_prime + theorem X_pow_sub_C_irreducible_iff_of_prime_pow + theorem X_pow_sub_C_irreducible_of_odd + theorem X_pow_sub_C_irreducible_of_prime + theorem X_pow_sub_C_irreducible_of_prime_pow + theorem pow_ne_of_irreducible_X_pow_sub_C 2024-01-06 18:06:50 c99fdac feat(GroupTheory/Perm/DomMulAct) : Subgroup of `Equiv.Perm α` preserving a function `p : α → ι` (#9342) Subgroup of `Equiv.Perm α` preserving a function Let `α` and `ι` by types and let `p : α → ι` * `DomMulAct.mem_stabilizer_iff` proves that the stabilizer of `p : α → ι` in `(Equiv.Perm α)ᵈᵐᵃ` is the set of `g : (Equiv.Perm α)ᵈᵐᵃ` such that `p ∘ (mk.symm g) = p`. The natural equivalence from `stabilizer (Perm α)ᵈᵐᵃ p` to `{ g : Perm α // p ∘ g = p }` can be obtained as `subtypeEquiv mk.symm (fun _ => mem_stabilizer_iff)` * `DomMulAct.stabilizerMulEquiv` is the `MulEquiv` from the MulOpposite of this stabilizer to the product, for `i : ι`, of `Equiv.Perm {a // p a = i}`. * Under `Fintype α` and `Fintype ι`, `DomMulAct.stabilizer_card p` computes the cardinality of the type of permutations preserving `p` : `Fintype.card {f : Perm α // p ∘ f = p} = ∏ i , (Fintype.card ({a // p a = i})).factorial` Co-Authored by : Junyan Xu ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/GroupTheory/Perm/DomMulAct.lean + theorem DomMulAct.comp_stabilizerEquiv_invFun + theorem DomMulAct.mem_stabilizer_iff + def DomMulAct.stabilizerEquiv_invFun + def DomMulAct.stabilizerEquiv_invFun_aux + theorem DomMulAct.stabilizerEquiv_invFun_eq + def DomMulAct.stabilizerMulEquiv + theorem DomMulAct.stabilizerMulEquiv_apply + theorem DomMulAct.stabilizer_card: 2024-01-06 18:06:48 8532fe9 feat: define BinomialRing mixin (#6934) This file introduces the `BinomialRing` mixin (for semirings) and the `Ring.multichoose` function, which generalizes `Nat.multichoose`. These are preliminaries to introducing generalized binomial coefficients. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Data/Nat/Cast/Commute.lean +/- theorem Commute.ofNat_left +/- theorem Commute.ofNat_right +/- theorem Nat.cast_comm +/- theorem Nat.cast_commute +/- theorem Nat.commute_cast Added Mathlib/RingTheory/Binomial.lean + theorem Ring.factorial_nsmul_multichoose_eq_eval_ascPochhammer + def Ring.multichoose + theorem Ring.multichoose_eq_multichoose + theorem Ring.nsmul_right_injective Modified docs/references.bib 2024-01-06 17:34:35 9cbd1e2 feat: uliftFunctor preserves arbitrary colimits (#8545) Rescuing and porting my [old proof](https://leanprover.zulipchat.com/#narrow/stream/217875-Is-there-code-for-X.3F/topic/tensor.20products.20commute.20with.20direct.20limits/near/275178330) now that @dagurtomas created a file for it. Also includes some universe generalizations in the file Limits/Types which overlap with @joelriou's #7020. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Limits/Creates.lean + def CategoryTheory.createsColimitOfFullyFaithfulOfPreserves + def CategoryTheory.createsLimitOfFullyFaithfulOfPreserves Modified Mathlib/CategoryTheory/Limits/Preserves/Ulift.lean + def CategoryTheory.Limits.Types.coconeOfSet + theorem CategoryTheory.Limits.Types.descFun_apply_spec + theorem CategoryTheory.Limits.Types.descFun_spec + def CategoryTheory.Limits.Types.descSet + theorem CategoryTheory.Limits.Types.descSet_empty + theorem CategoryTheory.Limits.Types.descSet_inter_of_ne + theorem CategoryTheory.Limits.Types.descSet_spec + theorem CategoryTheory.Limits.Types.descSet_univ + theorem CategoryTheory.Limits.Types.exists_unique_mem_descSet + theorem CategoryTheory.Limits.Types.iUnion_descSet_singleton + theorem CategoryTheory.Limits.Types.mem_descSet_singleton - def CategoryTheory.Limits.Types.quotEquiv - def CategoryTheory.Limits.Types.sectionsEquiv' +/- def CategoryTheory.Limits.Types.sectionsEquiv Modified Mathlib/CategoryTheory/Limits/Types.lean +/- def CategoryTheory.Limits.Types.colimitCoconeIsColimit + theorem CategoryTheory.Limits.Types.jointly_surjective_of_isColimit 2024-01-06 15:29:41 5dcfd14 feat(Algebra/Homology): the cylinder of a homological complex (#9483) In this PR, the cylinder object of a homological complex is constructed. It is used to show that a functor which inverts homotopy equivalences sends homotopic maps to the same map. In the future, it shall be used in order to show that homotopic maps become equal in the derived category. ESTIMATED CHANGES Modified Mathlib/Algebra/Homology/HomotopyCofiber.lean + theorem HomologicalComplex.cylinder.inlX_π + theorem HomologicalComplex.cylinder.inrX_π + theorem HomologicalComplex.cylinder.map_ι₀_eq_map_ι₁ + theorem HomologicalComplex.cylinder.ι₀_desc + theorem HomologicalComplex.cylinder.ι₀_π + theorem HomologicalComplex.cylinder.ι₁_desc + theorem HomologicalComplex.cylinder.ι₁_π + theorem HomologicalComplex.cylinder.πCompι₀Homotopy.biprod_lift_id_sub_id + theorem HomologicalComplex.cylinder.πCompι₀Homotopy.inlX_nullHomotopy_f + theorem HomologicalComplex.cylinder.πCompι₀Homotopy.inrX_nullHomotopy_f + theorem HomologicalComplex.cylinder.πCompι₀Homotopy.nullHomotopicMap_eq + theorem Homotopy.map_eq_of_inverts_homotopyEquivalences 2024-01-06 14:22:44 f292905 feat: Any derivative is equal to `deriv` (#9481) stated using `Set.EqOn` From LeanAPAP ESTIMATED CHANGES Modified Mathlib/Analysis/Calculus/Deriv/Basic.lean + theorem deriv_eqOn 2024-01-06 14:22:43 47ca285 feat: `c • x = 0 ↔ c = 0` and similar lemmas (#9390) and rename and generalise `smul_eq_zero_iff_eq'`/`smul_ne_zero_iff_ne'` From LeanAPAP ESTIMATED CHANGES Modified Mathlib/Algebra/Module/Basic.lean + theorem smul_eq_zero_iff_left + theorem smul_eq_zero_iff_right + theorem smul_ne_zero_iff_left + theorem smul_ne_zero_iff_right Modified Mathlib/GroupTheory/GroupAction/Group.lean - theorem smul_eq_zero_iff_eq' - theorem smul_ne_zero_iff_ne' Modified Mathlib/NumberTheory/NumberField/CanonicalEmbedding.lean 2024-01-06 14:22:42 66b9ecc feat: Finite sum under an injective map (#9226) From PFR ESTIMATED CHANGES Modified Mathlib/Algebra/BigOperators/Basic.lean + theorem Finset.prod_of_injOn + theorem Fintype.prod_of_injective 2024-01-06 13:21:53 fa82996 feat(Data/Real/EReal): add lemmas about intervals (#9404) This adds statements like `lemma Ici_of_Real {x : ℝ} : Real.toEReal '' Set.Ici x = Set.Ico ↑x ⊤` for the eight kinds of intervals (plus versions of `exists_between` when one endpoint is a real number). See [here](https://leanprover.zulipchat.com/#narrow/stream/217875-Is-there-code-for-X.3F/topic/sInf.20.28Real.2EtoEReal.20'.20'.20.2E.2E.2E.29/near/410765558) on Zulip. ESTIMATED CHANGES Modified Mathlib/Data/Real/EReal.lean + theorem EReal.exists_between_coe_real + theorem EReal.image_coe_Icc + theorem EReal.image_coe_Ici + theorem EReal.image_coe_Ico + theorem EReal.image_coe_Iic + theorem EReal.image_coe_Iio + theorem EReal.image_coe_Ioc + theorem EReal.image_coe_Ioi + theorem EReal.image_coe_Ioo + theorem EReal.preimage_coe_Icc + theorem EReal.preimage_coe_Ici + theorem EReal.preimage_coe_Ico + theorem EReal.preimage_coe_Ico_top + theorem EReal.preimage_coe_Iic + theorem EReal.preimage_coe_Iio + theorem EReal.preimage_coe_Iio_top + theorem EReal.preimage_coe_Ioc + theorem EReal.preimage_coe_Ioc_bot + theorem EReal.preimage_coe_Ioi + theorem EReal.preimage_coe_Ioi_bot + theorem EReal.preimage_coe_Ioo + theorem EReal.preimage_coe_Ioo_bot + theorem EReal.preimage_coe_Ioo_bot_top + theorem EReal.preimage_coe_Ioo_top 2024-01-06 13:21:52 63e722e feat(Algebra): generalize `Basis.smul` (#9382) Add various `LinearMap.CompatibleSMul` instances that ultimately lead to generalization of `Basis.smul` to allow a noncommutative base ring. The key observations that allows the generalization are `IsScalarTower.smulHomClass` and `isScalarTower_of_injective`. ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/Tower.lean Modified Mathlib/Algebra/Module/LinearMap.lean + theorem LinearMap.isLinearMap_of_compatibleSMul + theorem LinearMap.isScalarTower_of_injective +/- theorem LinearMap.map_smul_of_tower Modified Mathlib/GroupTheory/GroupAction/Hom.lean + def IsScalarTower.smulHomClass Modified Mathlib/LinearAlgebra/Finsupp.lean Modified Mathlib/LinearAlgebra/Pi.lean Modified Mathlib/RingTheory/AlgebraTower.lean + theorem Basis.isScalarTower_finsupp + theorem Basis.isScalarTower_of_nonempty Modified Mathlib/RingTheory/Kaehler.lean 2024-01-06 13:21:52 39e9756 feat: Cyclic extensions are kummer. (#9368) ESTIMATED CHANGES Modified Mathlib/FieldTheory/KummerExtension.lean + theorem exists_root_adjoin_eq_top_of_isCyclic + theorem irreducible_X_pow_sub_C_of_root_adjoin_eq_top + theorem isCyclic_tfae + theorem isSplittingField_X_pow_sub_C_of_root_adjoin_eq_top Modified Mathlib/FieldTheory/Minpoly/Field.lean + theorem minpoly_algEquiv_toLinearMap + theorem minpoly_algHom_toLinearMap Modified Mathlib/GroupTheory/OrderOfElement.lean + theorem IsOfFinOrder.isUnit + def IsOfFinOrder.unit Modified Mathlib/LinearAlgebra/Eigenspace/Basic.lean + theorem Module.End.HasEigenvector.pow_apply Modified Mathlib/LinearAlgebra/LinearIndependent.lean + theorem linearIndependent_algHom_toLinearMap' + theorem linearIndependent_algHom_toLinearMap 2024-01-06 13:21:51 6c1c802 feat: Define `IsUnramifiedAtInfinitePlaces`. (#9293) ESTIMATED CHANGES Modified Mathlib/NumberTheory/NumberField/Embeddings.lean + theorem IsUnramifiedAtInfinitePlaces.bot + theorem IsUnramifiedAtInfinitePlaces.card_infinitePlace + theorem IsUnramifiedAtInfinitePlaces.top + theorem IsUnramifiedAtInfinitePlaces.trans + theorem IsUnramifiedAtInfinitePlaces_of_odd_card_aut + theorem IsUnramifiedAtInfinitePlaces_of_odd_finrank + theorem NumberField.InfinitePlace.IsUnramified.comap + theorem NumberField.InfinitePlace.IsUnramified.comap_algHom + theorem NumberField.InfinitePlace.IsUnramified.eq + theorem NumberField.InfinitePlace.IsUnramified.of_restrictScalars + theorem NumberField.InfinitePlace.card_mono + theorem NumberField.InfinitePlace.comap_id + theorem NumberField.InfinitePlace.isUnramified + theorem NumberField.InfinitePlace.isUnramifiedIn + theorem NumberField.InfinitePlace.isUnramified_iff_mult_le + theorem NumberField.InfinitePlace.isUnramified_self + theorem NumberField.InfinitePlace.mult_comap_le 2024-01-06 12:14:33 a2b7daf chore(Finset/Lattice): add `simp` to `sup_image`/`inf_image` (#9340) ESTIMATED CHANGES Modified Mathlib/Data/Finset/Lattice.lean 2024-01-06 11:11:02 87ffb36 chore: move a few results from `Archive.Hairer` into mathlib (#9315) ESTIMATED CHANGES Modified Archive/Hairer.lean - theorem MvPolynomial.continuous_eval +/- theorem SmoothSupportedOn.integrable_eval_mul Modified Mathlib.lean Modified Mathlib/Data/Set/Finite.lean + theorem Set.Finite.pi' +/- theorem Set.Finite.pi Modified Mathlib/RingTheory/MvPolynomial/Basic.lean Added Mathlib/Topology/Algebra/MvPolynomial.lean + theorem MvPolynomial.continuous_eval 2024-01-06 09:51:17 2ec3210 feat(minpoly): equivalent conditions for degree = 1 or ≥ 2 (#9479) ESTIMATED CHANGES Modified Mathlib/FieldTheory/Minpoly/Basic.lean + theorem minpoly.degree_eq_one_iff + theorem minpoly.natDegree_eq_one_iff + theorem minpoly.two_le_natDegree_iff + theorem minpoly.two_le_natDegree_subalgebra 2024-01-06 09:51:15 cd6e906 chore(Set/Function): don't use `Sort _` (#9478) Use `Sort*` or `Type*` instead. Also slightly golf 1 proof. ESTIMATED CHANGES Modified Mathlib/Data/Set/Function.lean +/- theorem Function.antitoneOn_of_rightInvOn_of_mapsTo +/- theorem Function.monotoneOn_of_rightInvOn_of_mapsTo +/- theorem Function.update_comp_eq_of_not_mem_range' +/- theorem Function.update_comp_eq_of_not_mem_range 2024-01-06 09:51:14 95f4d79 feat(Analysis/Matrix): `linfty_op_nnnorm` agrees with the operator norm (#9476) The witness used in the proof is inspired by https://math.stackexchange.com/a/1119933/1896. Trying to weaken the field assumption used in the proof is largely meaningless, since we can't even state the theorem without it. ESTIMATED CHANGES Modified Mathlib/Analysis/Matrix.lean + theorem Matrix.linfty_op_nnnorm_eq_op_nnnorm + theorem Matrix.linfty_op_nnnorm_toMatrix + theorem Matrix.linfty_op_norm_eq_op_norm + theorem Matrix.linfty_op_norm_toMatrix 2024-01-06 09:51:13 f20d888 feat: relate `Matrix.conjTranspose` to `LinearMap.adjoint` (#9471) ESTIMATED CHANGES Modified Mathlib/Analysis/InnerProductSpace/Adjoint.lean + def LinearMap.toMatrixOrthonormal + theorem LinearMap.toMatrix_adjoint +/- theorem Matrix.toEuclideanLin_conjTranspose_eq_adjoint + theorem Matrix.toLin_conjTranspose 2024-01-06 09:51:12 465865c feat: show matrices form a `UniformAddGroup` (#9468) ESTIMATED CHANGES Modified Mathlib/Topology/Algebra/UniformGroup.lean Modified Mathlib/Topology/UniformSpace/Matrix.lean 2024-01-06 09:51:11 7522333 Chore: Move `Units` lemmas earlier (#9461) Part of #9411 ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Commute/Units.lean + theorem Commute.units_zpow_left + theorem Commute.units_zpow_right + def Units.ofPow + def Units.ofPowEqOne + theorem Units.pow_ofPowEqOne + theorem isUnit_ofPowEqOne + theorem isUnit_pow_iff + theorem isUnit_pow_succ_iff Modified Mathlib/Algebra/Group/Semiconj/Units.lean + theorem SemiconjBy.units_zpow_right + theorem Units.conj_pow' + theorem Units.conj_pow +/- theorem Units.mk_semiconjBy Modified Mathlib/Algebra/Group/Units.lean +/- theorem IsUnit.exists_left_inv +/- theorem IsUnit.exists_right_inv +/- theorem IsUnit.mul + theorem IsUnit.pow + theorem Units.commute_coe_inv + theorem Units.commute_inv_coe + theorem Units.val_div_eq_div_val +/- theorem Units.val_inv_eq_inv_val + theorem Units.val_pow_eq_pow_val Modified Mathlib/Algebra/Group/Units/Hom.lean - theorem Units.val_div_eq_div_val - theorem Units.val_pow_eq_pow_val Modified Mathlib/Algebra/GroupPower/Lemmas.lean - theorem Commute.units_zpow_left - theorem Commute.units_zpow_right - theorem IsUnit.pow - theorem SemiconjBy.units_zpow_right - theorem Units.conj_pow' - theorem Units.conj_pow - def Units.ofPow - def Units.ofPowEqOne - theorem Units.pow_ofPowEqOne - theorem invOf_pow - def invertibleOfPowEqOne - theorem isUnit_ofPowEqOne - theorem isUnit_pow_iff - theorem isUnit_pow_succ_iff Modified Mathlib/Algebra/Invertible/Basic.lean + theorem invOf_pow + def invertibleOfPowEqOne Modified Mathlib/GroupTheory/GroupAction/Units.lean Modified Mathlib/RingTheory/Valuation/ValuationSubring.lean Modified Mathlib/RingTheory/WittVector/DiscreteValuationRing.lean Modified test/instance_diamonds.lean 2024-01-06 09:51:10 49f7d61 refactor: Split off basic `Int` file (#9443) `Data.Int.Basic` is currently made of two things: * Basic lemmas that continue the theory in Std (and could belong there, really) * Basic algebraic order instances I need the first ones earlier in the algebraic order hierarchy, hence the split. Part of #9411 ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Data/Int/Basic.lean - theorem Int.cast_eq_cast_iff_Nat - theorem Int.coe_nat_div - theorem Int.coe_nat_ediv - theorem Int.coe_nat_inj' - theorem Int.coe_nat_mod - theorem Int.coe_nat_nonneg - theorem Int.coe_pred_of_pos - theorem Int.ediv_of_neg_of_pos - theorem Int.natAbs_cast - theorem Int.natAbs_ne_zero_of_ne_zero - theorem Int.natAbs_surjective - theorem Int.nat_succ_eq_int_succ - theorem Int.neg_nat_succ - theorem Int.neg_pred - theorem Int.neg_succ - theorem Int.ofNat_eq_cast - def Int.pred - theorem Int.pred_nat_succ - theorem Int.pred_neg_pred - theorem Int.pred_succ - theorem Int.sign_coe_add_one - theorem Int.sign_coe_nat_of_nonzero - def Int.succ - theorem Int.succ_neg_nat_succ - theorem Int.succ_neg_succ - theorem Int.succ_pred - theorem Int.toNat_coe_nat - theorem Int.toNat_coe_nat_add_one Modified Mathlib/Data/Int/Cast/Basic.lean - theorem Int.ofNat_bit0 - theorem Int.ofNat_bit1 Added Mathlib/Data/Int/Defs.lean + theorem Int.cast_eq_cast_iff_Nat + theorem Int.coe_nat_div + theorem Int.coe_nat_ediv + theorem Int.coe_nat_inj' + theorem Int.coe_nat_mod + theorem Int.coe_nat_nonneg + theorem Int.coe_pred_of_pos + theorem Int.ediv_of_neg_of_pos + theorem Int.natAbs_cast + theorem Int.natAbs_ne_zero_of_ne_zero + theorem Int.natAbs_surjective + theorem Int.nat_succ_eq_int_succ + theorem Int.neg_nat_succ + theorem Int.neg_pred + theorem Int.neg_succ + theorem Int.ofNat_bit0 + theorem Int.ofNat_bit1 + theorem Int.ofNat_eq_cast + theorem Int.pow_eq + def Int.pred + theorem Int.pred_nat_succ + theorem Int.pred_neg_pred + theorem Int.pred_succ + theorem Int.sign_coe_add_one + theorem Int.sign_coe_nat_of_nonzero + def Int.succ + theorem Int.succ_neg_nat_succ + theorem Int.succ_neg_succ + theorem Int.succ_pred + theorem Int.toNat_coe_nat + theorem Int.toNat_coe_nat_add_one Modified Mathlib/Tactic/NormNum/Pow.lean 2024-01-06 09:51:09 6dafc7f refactor: change argument order in `with` clause of `peel` tactic (#9413) Per this [Zulip thread](https://leanprover.zulipchat.com/#narrow/stream/217875-Is-there-code-for-X.3F/topic/pulling.20continuity.20past.20integrals/near/411065361), this changes the argument order of `peel h with h_peel x y z ...` to `peel h with x y z ... h_peel`, as the former behavior was deemed confusing. ESTIMATED CHANGES Modified Mathlib/GroupTheory/Exponent.lean Modified Mathlib/Tactic/Peel.lean Modified test/peel.lean 2024-01-06 09:51:08 90bee82 feat: generalize `Module.Finite.trans` (#9380) Add `span_eq_closure` and `closure_induction` which say that `Submodule.span R s` is generated by `R • s` as an AddSubmonoid. I feel that the existing `span_induction` should be replaced by `closure_induction` as the latter is stronger, and allow us to remove the commutativity condition in `span_smul_of_span_eq_top` in Algebra/Tower and generalize `Module.Finite.trans` to allow a non-commutative base ring. ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/Tower.lean Modified Mathlib/LinearAlgebra/Span.lean + theorem Submodule.closure_induction' + theorem Submodule.closure_induction + theorem Submodule.span_eq_closure Modified Mathlib/RingTheory/FiniteType.lean Modified Mathlib/RingTheory/Finiteness.lean +/- theorem Module.Finite.trans 2024-01-06 09:51:07 4bd6aa2 chore(Data/Finset): drop some `Nonempty` arguments (#9377) * rename `Finset.Nonempty.image_iff` to `Finset.image_nonempty`, deprecate the old version; * rename `Set.nonempty_image_iff` to `Set.image_nonempty`, deprecate the old version; * drop unneeded `Finset.Nonempty` arguments here and there; * add versions of some lemmas that assume `Nonempty s` instead of `Nonempty (s.image f)` or `Nonempty (s.map f)`. ESTIMATED CHANGES Modified Archive/Wiedijk100Theorems/BallotProblem.lean Modified Mathlib/Analysis/Convex/Independent.lean Modified Mathlib/Analysis/Convex/Intrinsic.lean Modified Mathlib/Analysis/Normed/Group/Quotient.lean Modified Mathlib/Analysis/NormedSpace/OperatorNorm.lean Modified Mathlib/Combinatorics/Hall/Finite.lean Modified Mathlib/Data/Finset/Image.lean +/- theorem Finset.coe_image + theorem Finset.image_nonempty Modified Mathlib/Data/Finset/Lattice.lean + theorem Finset.inf'_comp_eq_image + theorem Finset.inf'_comp_eq_map +/- theorem Finset.inf'_cons +/- theorem Finset.inf'_insert +/- theorem Finset.inf'_map +/- theorem Finset.inf'_singleton +/- theorem Finset.le_sup' + theorem Finset.sup'_comp_eq_image + theorem Finset.sup'_comp_eq_map +/- theorem Finset.sup'_cons +/- theorem Finset.sup'_insert - theorem Finset.sup'_le +/- theorem Finset.sup'_le_iff +/- theorem Finset.sup'_map +/- theorem Finset.sup'_singleton + theorem Monotone.map_finset_max' + theorem Monotone.map_finset_min' Modified Mathlib/Data/Finset/Pointwise.lean +/- theorem Finset.inv_nonempty_iff Modified Mathlib/Data/Set/Image.lean + theorem Set.image_nonempty - theorem Set.nonempty_image_iff Modified Mathlib/Data/Set/Pointwise/SMul.lean Modified Mathlib/LinearAlgebra/AffineSpace/FiniteDimensional.lean Modified Mathlib/MeasureTheory/Covering/Besicovitch.lean Modified Mathlib/MeasureTheory/Covering/Vitali.lean Modified Mathlib/MeasureTheory/Integral/RieszMarkovKakutani.lean Modified Mathlib/MeasureTheory/Measure/Haar/OfBasis.lean Modified Mathlib/MeasureTheory/Measure/Hausdorff.lean Modified Mathlib/MeasureTheory/Measure/OuterMeasure.lean Modified Mathlib/Probability/Process/Filtration.lean Modified Mathlib/SetTheory/Cardinal/Cofinality.lean Modified Mathlib/Topology/Algebra/Order/LeftRightLim.lean Modified Mathlib/Topology/Connected/Basic.lean Modified Mathlib/Topology/Connected/PathConnected.lean Modified Mathlib/Topology/Homeomorph.lean Modified Mathlib/Topology/Order/Basic.lean 2024-01-06 09:51:06 8235416 feat: Provide glue between `AddCommGroup` and `Module ℤ` (#9345) ESTIMATED CHANGES Modified Mathlib/Algebra/DirectSum/LinearMap.lean Modified Mathlib/Algebra/Lie/Killing.lean Modified Mathlib/Algebra/Lie/Weights/Linear.lean Modified Mathlib/Algebra/Module/Submodule/Lattice.lean + theorem Submodule.bot_toAddSubgroup + theorem Submodule.top_toAddSubgroup Modified Mathlib/Algebra/Module/Torsion.lean + theorem Submodule.AddMonoid.IsTorsionFree_iff_noZeroSMulDivisors + theorem Submodule.torsion_int Modified Mathlib/Algebra/Module/Zlattice.lean Modified Mathlib/GroupTheory/OrderOfElement.lean + theorem isOfFinOrder_iff_zpow_eq_one Modified Mathlib/GroupTheory/Torsion.lean + theorem Monoid.isTorsionFree_iff_torsion_eq_bot Modified Mathlib/LinearAlgebra/FreeModule/PID.lean + theorem Module.free_iff_noZeroSMulDivisors - theorem Module.free_of_finite_type_torsion_free' Modified Mathlib/RingTheory/DedekindDomain/IntegralClosure.lean 2024-01-06 09:04:43 357e37b refactor(LinearAlgebra) : Remove unused commutativity hypothesis (#9475) Remove unused commutativity hypothesis: * Removes the requirement for the Semirings to be commutative in `LinearMap.ext_basis` and `LinearMap.sum_repr_mul_repr_mulₛₗ` in `LinearAlgebra/Basis/Bilinear` * Remove the requirement for some Semirings to be commutative in `AuxToLinearMap`, `CommSemiring` and `CommRing` in `LinearAlgebra/Matrix/SesquilinearForm` * In addition, the rings in `CommRing` can just be `Semiring` No changes to the proofs are required. It would also be possible to weaken commutativity from `Rₗ` in `LinearMap.sum_repr_mul_repr_mul` to `[SMulCommClass Rₗ Rₗ Pₗ]` in order to make `sum_repr_mul_repr_mulₛₗ` and `sum_repr_mul_repr_mul` consistent, but I have not done that in this PR because there might be a performance impact (see https://github.com/leanprover-community/mathlib4/pull/7538#pullrequestreview-1663000126). ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/Basis/Bilinear.lean +/- theorem LinearMap.sum_repr_mul_repr_mul Modified Mathlib/LinearAlgebra/Matrix/SesquilinearForm.lean 2024-01-06 05:23:43 c652905 fix(Analysis/NormedSpace/OperatorNorm): muddled norm and nnnorm (#9473) This is a lemma about `nnnorm`, but it seems one of the arguments was forgotten. ESTIMATED CHANGES Modified Mathlib/Analysis/NormedSpace/OperatorNorm.lean +/- theorem ContinuousLinearMap.op_nnnorm_eq_of_bounds 2024-01-05 18:57:29 26ccd1e feat (Mathlib/Algebra/Regular/Basic.lean): Add lemmas on RightRegular (#9464) A couple of lemmas on RightRegular that could be useful for future work on Localization ESTIMATED CHANGES Modified Mathlib/Algebra/Regular/Basic.lean + theorem Commute.isRightRegular_iff + theorem IsRightRegular.left_of_commute 2024-01-05 17:56:11 401d914 chore: Downgrade `Algebra.Associated` (#9459) Part of #9411 ESTIMATED CHANGES Modified Mathlib/Algebra/Associated.lean 2024-01-05 14:50:14 b180173 feat(Algebra/Homology): morphisms from the homotopy cofiber (#9447) In this PR, we obtain `HomologicalComplex.homotopyCofiber.descEquiv` which expresses that if `φ : F ⟶ G` is a morphism of homological complexes, then a morphism `homotopyCofiber φ ⟶ K` is uniquely determined by a morphism `α : G ⟶ K` and a homotopy from `φ ≫ α` to `0`. ESTIMATED CHANGES Modified Mathlib/Algebra/Homology/HomotopyCofiber.lean + theorem HomologicalComplex.homotopyCofiber.descSigma_ext_iff + theorem HomologicalComplex.homotopyCofiber.desc_f' + theorem HomologicalComplex.homotopyCofiber.desc_f + theorem HomologicalComplex.homotopyCofiber.eq_desc + theorem HomologicalComplex.homotopyCofiber.inlX_desc_f + theorem HomologicalComplex.homotopyCofiber.inrCompHomotopy_hom + theorem HomologicalComplex.homotopyCofiber.inrCompHomotopy_hom_desc_hom + theorem HomologicalComplex.homotopyCofiber.inrCompHomotopy_hom_eq_zero + theorem HomologicalComplex.homotopyCofiber.inrX_desc_f + theorem HomologicalComplex.homotopyCofiber.inr_desc 2024-01-05 14:50:13 710ecf0 feat(Algebra/Homology): left shifting cochains (#9054) In this PR, we study the behaviour of cochains (of the complex of homomorphisms) with respect to shifts on the source. In particular, we obtain an additive equivalence `leftShiftAddEquiv K L n a n' h : Cochain K L n ≃+ Cochain K⟦a⟧ L n'` when `h : n + a = n'`. ESTIMATED CHANGES Modified Mathlib/Algebra/GroupPower/NegOnePow.lean + theorem Int.negOnePow_mul_self Modified Mathlib/Algebra/Homology/HomotopyCategory/HomComplexShift.lean + def CochainComplex.HomComplex.Cochain.leftShift + def CochainComplex.HomComplex.Cochain.leftShiftAddEquiv + def CochainComplex.HomComplex.Cochain.leftShiftLinearEquiv + theorem CochainComplex.HomComplex.Cochain.leftShift_add + theorem CochainComplex.HomComplex.Cochain.leftShift_comp + theorem CochainComplex.HomComplex.Cochain.leftShift_comp_zero_cochain + theorem CochainComplex.HomComplex.Cochain.leftShift_leftUnshift + theorem CochainComplex.HomComplex.Cochain.leftShift_neg + theorem CochainComplex.HomComplex.Cochain.leftShift_rightShift + theorem CochainComplex.HomComplex.Cochain.leftShift_rightShift_eq_negOnePow_rightShift_leftShift + theorem CochainComplex.HomComplex.Cochain.leftShift_smul + theorem CochainComplex.HomComplex.Cochain.leftShift_units_smul + theorem CochainComplex.HomComplex.Cochain.leftShift_v + theorem CochainComplex.HomComplex.Cochain.leftShift_zero + def CochainComplex.HomComplex.Cochain.leftUnshift + theorem CochainComplex.HomComplex.Cochain.leftUnshift_add + theorem CochainComplex.HomComplex.Cochain.leftUnshift_leftShift + theorem CochainComplex.HomComplex.Cochain.leftUnshift_neg + theorem CochainComplex.HomComplex.Cochain.leftUnshift_smul + theorem CochainComplex.HomComplex.Cochain.leftUnshift_units_smul + theorem CochainComplex.HomComplex.Cochain.leftUnshift_v + theorem CochainComplex.HomComplex.Cochain.leftUnshift_zero + theorem CochainComplex.HomComplex.Cochain.rightShift_leftShift + def CochainComplex.HomComplex.Cochain.shift + def CochainComplex.HomComplex.Cochain.shiftAddHom + def CochainComplex.HomComplex.Cochain.shiftLinearMap + theorem CochainComplex.HomComplex.Cochain.shift_add + theorem CochainComplex.HomComplex.Cochain.shift_neg + theorem CochainComplex.HomComplex.Cochain.shift_smul + theorem CochainComplex.HomComplex.Cochain.shift_units_smul + theorem CochainComplex.HomComplex.Cochain.shift_v' + theorem CochainComplex.HomComplex.Cochain.shift_v + theorem CochainComplex.HomComplex.Cochain.shift_zero + theorem CochainComplex.HomComplex.Cochain.δ_leftShift + theorem CochainComplex.HomComplex.Cochain.δ_leftUnshift + theorem CochainComplex.HomComplex.Cochain.δ_shift + def CochainComplex.HomComplex.Cocycle.leftShift + def CochainComplex.HomComplex.Cocycle.leftUnshift + def CochainComplex.HomComplex.Cocycle.shift 2024-01-05 13:39:42 e3d1c7a feat(Mathlib/Algebra/Ring/Basic): Subsingleton, NoZeroDivisors and IsDomain (#9407) Added some results relating NoZeroDivisors and IsDomain for Ring. ESTIMATED CHANGES Modified Mathlib/Algebra/Ring/Basic.lean + theorem isCancelMulZero_iff_isDomain_or_subsingleton + theorem isCancelMulZero_iff_noZeroDivisors + theorem isDomain_iff_cancelMulZero_and_nontrivial + theorem isDomain_iff_noZeroDivisors_and_nontrivial + theorem noZeroDivisors_iff_isDomain_or_subsingleton 2024-01-05 13:07:01 cace5e5 feat : Add Gamma distribution (#9408) Add pdf, CDF and measure of Gamma distribution. Add proof that this is indeed a probability distribution. Add proofs that relate the various definitions. TODO: Refactor Probability/Distributions/Exponential.lean using calls to the results in this file. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Analysis/SpecialFunctions/Gamma/Basic.lean + theorem Complex.integral_cpow_mul_exp_neg_mul_Ioi + theorem Real.integral_rpow_mul_exp_neg_mul_Ioi Modified Mathlib/Probability/Distributions/Exponential.lean - theorem lintegral_Iic_eq_lintegral_Iio_add_Icc Added Mathlib/Probability/Distributions/Gamma.lean + def ProbabilityTheory.gammaCdfReal + theorem ProbabilityTheory.gammaCdfReal_eq_integral + theorem ProbabilityTheory.gammaCdfReal_eq_lintegral + def ProbabilityTheory.gammaMeasure + def ProbabilityTheory.gammaPdf + def ProbabilityTheory.gammaPdfReal + theorem ProbabilityTheory.gammaPdfReal_nonneg + theorem ProbabilityTheory.gammaPdfReal_pos + theorem ProbabilityTheory.gammaPdf_eq + theorem ProbabilityTheory.gammaPdf_of_neg + theorem ProbabilityTheory.gammaPdf_of_nonneg + theorem ProbabilityTheory.isProbabilityMeasureGamma + theorem ProbabilityTheory.lintegral_gammaPdf_eq_one + theorem ProbabilityTheory.lintegral_gammaPdf_of_nonpos + theorem ProbabilityTheory.measurable_gammaPdfReal + theorem lintegral_Iic_eq_lintegral_Iio_add_Icc 2024-01-05 11:32:33 cf880ce chore: Move scalar compatibility instance for `ℤ` and `ℕ` on rings to their own files (#9455) Part of #9411. Also corrects some instance names in the docstrings. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Algebra/Subalgebra/Unitization.lean Modified Mathlib/Algebra/GroupPower/Lemmas.lean Modified Mathlib/Algebra/Lie/Free.lean Modified Mathlib/Algebra/Ring/CentroidHom.lean Modified Mathlib/Algebra/Ring/Divisibility/Lemmas.lean Modified Mathlib/Data/Real/CauSeq.lean Added Mathlib/GroupTheory/GroupAction/Ring.lean 2024-01-05 11:32:32 0c2c47a feat(Algebra/QuaternionBasis): extensionality for algebra morphisms from quaternions (#9441) This result was basically already here, this just registers it with `ext`. ESTIMATED CHANGES Modified Mathlib/Algebra/QuaternionBasis.lean + theorem Quaternion.hom_ext + theorem QuaternionAlgebra.hom_ext Modified Mathlib/LinearAlgebra/CliffordAlgebra/Equivs.lean 2024-01-05 11:32:31 c8d50df chore: Move `Commute` results earlier (#9440) These lemmas aren't really proved any faster using units, and I will soon need them not to be proved using units. Part of #9411 ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Commute/Basic.lean + theorem Commute.inv_left_iff + theorem Commute.inv_mul_cancel_assoc + theorem Commute.inv_right_iff Modified Mathlib/Algebra/Group/Commute/Units.lean - theorem Commute.inv_left - theorem Commute.inv_left_iff - theorem Commute.inv_mul_cancel_assoc - theorem Commute.inv_right - theorem Commute.inv_right_iff - theorem inv_mul_cancel_comm - theorem inv_mul_cancel_comm_assoc Modified Mathlib/Algebra/Group/Defs.lean + theorem inv_mul_cancel_comm + theorem inv_mul_cancel_comm_assoc + theorem zpow_coe_nat Modified Mathlib/Algebra/Group/Semiconj/Basic.lean - theorem SemiconjBy.inv_inv_symm +/- theorem SemiconjBy.inv_inv_symm_iff + theorem SemiconjBy.inv_right_iff + theorem SemiconjBy.inv_symm_left_iff Modified Mathlib/Algebra/Group/Semiconj/Units.lean - theorem SemiconjBy.inv_right - theorem SemiconjBy.inv_right_iff - theorem SemiconjBy.inv_symm_left - theorem SemiconjBy.inv_symm_left_iff Modified Mathlib/Algebra/GroupPower/Basic.lean Modified Mathlib/Data/Int/Basic.lean - theorem zpow_coe_nat 2024-01-05 11:32:30 57ca123 feat: refactor lemma `LieModule.dualAnnihilator_ker_traceForm_le_span_weight` (#9047) Also add some API for related results such as `LinearMap.dualCoannihilator_range_eq_ker_flip`, which is not needed here but worth having. ESTIMATED CHANGES Modified Mathlib/Algebra/Lie/Killing.lean - theorem LieModule.dualAnnihilator_ker_traceForm_le_span_weight + theorem LieModule.range_traceForm_le_span_weight + theorem LieModule.traceForm_eq_sum_finrank_nsmul +/- theorem LieModule.traceForm_eq_sum_finrank_nsmul_mul Modified Mathlib/LinearAlgebra/Dual.lean + theorem LinearMap.dualAnnihilator_ker_eq_range_flip + theorem LinearMap.dualCoannihilator_range_eq_ker_flip + theorem LinearMap.ker_dualMap_eq_dualCoannihilator_range 2024-01-05 11:32:28 e1da93f feat(Geometry/Manifold/VectorBundle/Tangent): tangentCoordChange (#8672) We define `tangentCoordChange` as a convenient abbreviation for coordinate changes on the tangent bundle. We also restate the axioms of `VectorBundleCore` as lemmas involving `extChartAt`. Currently, we need to write `(tangentBundleCore I M).coordChange (achart H x) (achart H y)`, referring explicitly to the atlas of `M`. Since `tangentBundleCore` uses the same base sets as the preferred charts of the base manifold, we wish to work directly with points `x y : M` and the preferred extended charts at those points (`extChartAt`). We find this definition and related lemmas useful in #8483 in shortening proofs. ESTIMATED CHANGES Modified Mathlib/Geometry/Manifold/VectorBundle/Tangent.lean + theorem continuousOn_tangentCoordChange + theorem hasFDerivWithinAt_tangentCoordChange + theorem tangentCoordChange_comp + theorem tangentCoordChange_def + theorem tangentCoordChange_self 2024-01-05 10:45:53 a5346b6 chore: rename in `PartialEquiv`, `Homeomorph`, `PartialHomeomorph` (#9430) Items 4-5 in [reference Zulip](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/Assorted.20renames/near/411096017) Also added `symm` and `trans` definitions for `PartialEquiv`, `Homeomorph`, and `PartialHomeomorph`. ESTIMATED CHANGES Modified Mathlib/Geometry/Manifold/ChartedSpace.lean Modified Mathlib/Geometry/Manifold/Diffeomorph.lean Modified Mathlib/Geometry/Manifold/SmoothManifoldWithCorners.lean Modified Mathlib/Logic/Equiv/PartialEquiv.lean + theorem PartialEquiv.self_trans_symm + theorem PartialEquiv.symm_trans_self - theorem PartialEquiv.trans_self_symm - theorem PartialEquiv.trans_symm_self Modified Mathlib/Topology/Homeomorph.lean Modified Mathlib/Topology/PartialHomeomorph.lean + theorem PartialHomeomorph.self_trans_symm + theorem PartialHomeomorph.symm_trans_self - theorem PartialHomeomorph.trans_self_symm - theorem PartialHomeomorph.trans_symm_self 2024-01-05 10:17:16 4d38539 feat: `IndepFun.symm` of different domains (#9425) ESTIMATED CHANGES Modified Mathlib/Probability/Independence/Basic.lean +/- theorem ProbabilityTheory.IndepFun.ae_eq Modified Mathlib/Probability/Independence/Kernel.lean +/- theorem ProbabilityTheory.kernel.IndepFun.ae_eq 2024-01-05 09:42:52 a310a89 feat: Boundaryless manifold (#9323) This is a more general notion of boundaryless manifold than `ModelWithCorners.Boundaryless`, which requires the `ModelWithCorners` to map to the whole model vector space. To justify this new type class, consider the interior of a manifold with non-empty boundary. It inherits a manifold structure via its embedding, and it would be convenient to use the same `ModelWithCorners` for the interior as for the whole space. Even though the interior is boundaryless, its inherited `ModelWithCorners` doesn't satisfy `ModelWithCorners.Boundaryless`. ESTIMATED CHANGES Modified Mathlib/Geometry/Manifold/InteriorBoundary.lean + theorem BoundarylessManifold.isInteriorPoint - theorem ModelWithCorners.isInteriorPoint Modified Mathlib/Geometry/Manifold/SmoothManifoldWithCorners.lean 2024-01-05 06:57:28 901b783 feat: Zhu Shijie's identity (#9427) Cf. https://leanprover.zulipchat.com/#narrow/stream/270676-lean4/topic/Proof.20of.20Combinatorial.20Identities/near/411120131 ESTIMATED CHANGES Modified Mathlib/Data/Nat/Choose/Sum.lean + theorem Nat.sum_Icc_choose 2024-01-05 05:55:40 b50557c feat: Add Uncountable (#9254) Adds the Uncountable class to `Countable/Defs` and some basic API. ESTIMATED CHANGES Modified Mathlib/Data/Countable/Basic.lean + theorem Sigma.uncountable + theorem uncountable_iff_isEmpty_embedding Modified Mathlib/Data/Countable/Defs.lean + theorem Equiv.uncountable_iff + theorem Uncountable.of_equiv + theorem not_countable + theorem not_countable_iff + theorem not_injective_uncountable_countable + theorem not_surjective_countable_uncountable + theorem not_uncountable + theorem not_uncountable_iff + theorem uncountable_iff_forall_not_surjective 2024-01-05 04:56:48 03433ad chore: prune proofwidgets oleans (#9450) The `.olean` files delivered via Lake from ProofWidgets have often been built using a different toolchain than Mathlib wants. These have been a perennial source of problems, and it seems easiest to just discard them and rely on the local build to generate them correctly. (This change was made by Joachim on `nightly-testing`, this PR is porting it back to `master`.) @tydeu @nomeata @digama0 ESTIMATED CHANGES Modified .github/workflows/bors.yml Modified .github/workflows/build.yml Modified .github/workflows/build.yml.in Modified .github/workflows/build_fork.yml 2024-01-05 02:29:29 26348e8 chore: remove unused `cases'` names (#9451) These unused names will soon acquire a linter warning. Easiest to clean them up pre-emptively. (Thanks to @nomeata for fixing these on `nightly-testing`.) ESTIMATED CHANGES Modified Mathlib/Data/FP/Basic.lean Modified Mathlib/Data/List/MinMax.lean Modified Mathlib/Data/PFunctor/Univariate/M.lean Modified Mathlib/Data/QPF/Univariate/Basic.lean Modified Mathlib/Logic/Encodable/Basic.lean Modified Mathlib/Order/Estimator.lean Modified Mathlib/Order/InitialSeg.lean Modified Mathlib/RingTheory/Ideal/Norm.lean Modified Mathlib/SetTheory/Ordinal/Notation.lean 2024-01-05 02:29:28 cf7dace chore: bump ProofWidgets to v0.0.25 (#9448) ESTIMATED CHANGES Modified lake-manifest.json Modified lakefile.lean 2024-01-05 01:23:51 2297cb1 fix: add beta reduction in BigOperator norm_num extensions (#9446) Inserts a call to `Expr.betaRev` in the `cons` case of `evalFinsetBigop`. This prevents `norm_num` from getting stuck on a beta redex applied to a nat literal, as currently happens in the third example below: ```lean import Mathlib.Tactic.NormNum import Mathlib.Tactic.NormNum.BigOperators open BigOperators -- works example : (∑ i in Finset.range 10, (i^2 : ℕ)) = 285 := by norm_num1 -- also works (via the evalOfNat extension) example : (∑ i in Finset.range 10, (OfNat.ofNat i)) = 45 := by norm_num1 -- does not work example : (∑ i in Finset.range 10, i) = 45 := by norm_num1 ``` Also, adds a test and removes some unnecessary parens from neighboring tests. ESTIMATED CHANGES Modified Mathlib/Tactic/NormNum/BigOperators.lean Modified test/norm_num_ext.lean 2024-01-05 01:23:50 19557c7 chore: bump std4 dependency (#9426) This is quite a substantial bump as `Nondet` / `backtrack` / `solve_by_elim` have all moved to Std. ESTIMATED CHANGES Modified ImportGraph/Main.lean Modified Mathlib.lean Modified Mathlib/Algebra/ContinuedFractions/Computation/Approximations.lean Modified Mathlib/Computability/PartrecCode.lean Deleted Mathlib/Data/MLList/Basic.lean - def MLList.singleton - def MLList.singletonM Modified Mathlib/Data/Nat/PSub.lean Deleted Mathlib/Data/Nondet/Basic.lean - def Nondet.filter - def Nondet.filterMap - def Nondet.firstM - def Nondet.head - def Nondet.map - def Nondet.nil - def Nondet.ofList - def Nondet.ofListM - def Nondet.ofOption - def Nondet.ofOptionM - def Nondet.singleton - def Nondet.singletonM - def Nondet.squash - def Nondet.toList' - def Nondet.toList - def Nondet.toMLList' - structure Nondet Modified Mathlib/Data/Option/Basic.lean + theorem Option.bind_eq_bind' - theorem Option.bind_eq_bind - theorem Option.bind_eq_none' Modified Mathlib/Data/Set/Enumerate.lean Deleted Mathlib/Lean/Data/NameMap.lean - def Lean.NameMap.filter - def Lean.NameMap.filterMap Deleted Mathlib/Lean/IO/Process.lean - def IO.Process.runCmdWithInput' - def IO.Process.runCmdWithInput Modified Mathlib/Lean/Meta.lean - def Lean.MVarId.note - def Lean.MVarId.synthInstance Modified Mathlib/Lean/Name.lean Deleted Mathlib/Lean/SMap.lean - def Lean.SMap.foldM Modified Mathlib/Mathport/Syntax.lean Modified Mathlib/Tactic.lean Deleted Mathlib/Tactic/Backtrack.lean - def Except.emoji - def List.tryAllM - structure Mathlib.Tactic.BacktrackConfig Modified Mathlib/Tactic/Common.lean Modified Mathlib/Tactic/GCongr/Core.lean Modified Mathlib/Tactic/Hint.lean Modified Mathlib/Tactic/LibrarySearch.lean Modified Mathlib/Tactic/Monotonicity/Basic.lean Modified Mathlib/Tactic/Nontriviality/Core.lean Modified Mathlib/Tactic/Propose.lean Modified Mathlib/Tactic/Relation/Symm.lean - def Lean.MVarId.symmSaturate Modified Mathlib/Tactic/Rewrites.lean Deleted Mathlib/Tactic/SolveByElim.lean - def Lean.MVarId.applyRules - structure Mathlib.Tactic.SolveByElim.ApplyRulesConfig - def Mathlib.Tactic.SolveByElim.Config.accept - def Mathlib.Tactic.SolveByElim.Config.intros - def Mathlib.Tactic.SolveByElim.Config.introsAfter - def Mathlib.Tactic.SolveByElim.Config.mainGoalProc - def Mathlib.Tactic.SolveByElim.Config.requireUsingAll - def Mathlib.Tactic.SolveByElim.Config.synthInstance - def Mathlib.Tactic.SolveByElim.Config.synthInstanceAfter - def Mathlib.Tactic.SolveByElim.Config.testPartialSolutions - def Mathlib.Tactic.SolveByElim.Config.testSolutions - def Mathlib.Tactic.SolveByElim.Config.withDischarge - structure Mathlib.Tactic.SolveByElim.Config - def Mathlib.Tactic.SolveByElim.applyFirst - def Mathlib.Tactic.SolveByElim.applyFirstLemma - def Mathlib.Tactic.SolveByElim.applyLemmas - def Mathlib.Tactic.SolveByElim.applyTactics - def Mathlib.Tactic.SolveByElim.elabContextLemmas - def Mathlib.Tactic.SolveByElim.mkAssumptionSet - def Mathlib.Tactic.SolveByElim.parseArgs - def Mathlib.Tactic.SolveByElim.parseUsing - def Mathlib.Tactic.SolveByElim.solveByElim.processSyntax - def Mathlib.Tactic.SolveByElim.solveByElim Modified Mathlib/Tactic/Tauto.lean Modified Mathlib/Util/Imports.lean Modified lake-manifest.json Deleted test/Nondet.lean - def M - def divisors - def divisorsM - def iotaM - def record - def x - def y Modified test/apply_rules.lean Modified test/solve_by_elim/basic.lean Modified test/solve_by_elim/instances.lean 2024-01-05 00:28:18 86decee chore(Tactic/CancelDenoms/Core): slightly Qq-ify and golf (#9421) Using a stronger type for `synthesizeUsingNormNum` removes the need for a handful of `let`s. ESTIMATED CHANGES Modified Mathlib/Tactic/CancelDenoms/Core.lean +/- theorem CancelDenoms.derive_trans +/- def CancelDenoms.synthesizeUsingNormNum 2024-01-04 23:32:25 8e19af9 chore: Rename over-general names (#9429) Items 1-3 in [reference Zulip](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/Assorted.20renames/near/411096017) Rename `chartedSpace`, `smoothMfldWithCorners`, and `funLike`. ESTIMATED CHANGES Modified Mathlib/Geometry/Manifold/Instances/Sphere.lean Modified Mathlib/NumberTheory/LegendreSymbol/MulCharacter.lean Modified docs/overview.yaml 2024-01-04 22:32:41 02d418d chore: Move `MulOpposite.op_pow` (#9442) These lemmas can actually be proved much earlier than they were. Part of #9411 ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Opposite.lean + theorem MulOpposite.op_pow + theorem MulOpposite.op_zpow + theorem MulOpposite.unop_pow + theorem MulOpposite.unop_zpow Modified Mathlib/Algebra/GroupPower/Lemmas.lean - theorem MulOpposite.op_pow - theorem MulOpposite.op_zpow - theorem MulOpposite.unop_pow - theorem MulOpposite.unop_zpow 2024-01-04 18:16:26 561e9af feat(Order/Filter) : add 2 constructors (#9200) Add two constructors to create filters from a property on sets: - `Filter.comk` if the property is stable under finite unions and set shrinking. - `Filter.ofCountableUnion` if the property is stable under countable unions and set shrinking `Filter.comk` is the key ingredient in `IsCompact.induction_on` but may be convenient to have as individual building block. A `Filter` generated by `Filter.ofCountableUnion` is a `CountableInterFilter`, which is given by the instance `Filter.countableInter_ofCountableUnion`. ### Other changes - Use `Filter.comk` for `Filter.cofinite`, `Bornology.ofBounded` and `MeasureTheory.Measure.cofinite`. - Use `Filter.ofCountableUnion` for `MeasureTheory.Measure.ae`. - Use `{_ : Bornology _}` instead of `[Bornology _]` in some lemmas so that `rw/simp` work with non-instance bornologies. ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Measure/MeasureSpace.lean +/- def MeasureTheory.Measure.cofinite Modified Mathlib/MeasureTheory/Measure/MeasureSpaceDef.lean +/- def MeasureTheory.Measure.ae Modified Mathlib/Order/Filter/Basic.lean + def Filter.comk + theorem Filter.compl_mem_comk + theorem Filter.mem_comk Modified Mathlib/Order/Filter/Cofinite.lean +/- def Filter.cofinite Modified Mathlib/Order/Filter/CountableInter.lean + theorem Filter.mem_ofCountableUnion + def Filter.ofCountableUnion Modified Mathlib/Topology/Bornology/Basic.lean +/- def Bornology.IsBounded +/- def Bornology.IsCobounded Modified Mathlib/Topology/Compactness/Compact.lean 2024-01-04 10:15:58 95f91f8 fix(Cache): don't check stderr for shell commands (#9434) #9419 caused `lean exe cache unpack` to fail with this error: ``` installing leantar 0.1.10 uncaught exception: % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0 100 954k 100 954k 0 0 1608k 0 --:--:-- --:--:-- --:--:-- 1608k ``` This is because `Cache.IO.runCmd` was changed to check `!stderr.isEmpty`, but by default `curl` prints a progress bar which fails this check. ESTIMATED CHANGES Modified Cache/IO.lean 2024-01-04 09:05:47 b6aa685 feat: deprecate `div_le_div_of_le_of_nonneg` (#9399) This was noticed in the discussion around #9393. ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Field/Basic.lean Modified Mathlib/Algebra/Order/Floor.lean Modified Mathlib/Analysis/Calculus/Monotone.lean Modified Mathlib/Analysis/NormedSpace/AddTorsor.lean Modified Mathlib/Combinatorics/Additive/Behrend.lean Modified Mathlib/Combinatorics/SimpleGraph/Regularity/Chunk.lean Modified Mathlib/Combinatorics/SimpleGraph/Regularity/Increment.lean Modified Mathlib/Dynamics/Circle/RotationNumber/TranslationNumber.lean Modified Mathlib/Topology/UrysohnsLemma.lean 2024-01-04 07:13:13 f61a485 feat: move `replaceVertex` to its own file (#9400) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Combinatorics/SimpleGraph/Basic.lean - theorem SimpleGraph.adj_replaceVertex_iff_of_ne - theorem SimpleGraph.adj_replaceVertex_iff_of_ne_left - theorem SimpleGraph.adj_replaceVertex_iff_of_ne_right - theorem SimpleGraph.not_adj_replaceVertex_same - theorem SimpleGraph.replaceVertex_self Modified Mathlib/Combinatorics/SimpleGraph/Clique.lean Added Mathlib/Combinatorics/SimpleGraph/Operations.lean + theorem SimpleGraph.adj_replaceVertex_iff_of_ne + theorem SimpleGraph.adj_replaceVertex_iff_of_ne_left + theorem SimpleGraph.adj_replaceVertex_iff_of_ne_right + theorem SimpleGraph.not_adj_replaceVertex_same + theorem SimpleGraph.replaceVertex_self 2024-01-04 04:39:26 7c03101 fix: partial revert of #9409 (re-enable Azure cache) (#9419) As [reported on Zulip](https://leanprover.zulipchat.com/#narrow/stream/113488-general/topic/The.20cache.20doesn't.20work/near/411058849), we're still working out some issues in the new cache provider. Since Azure is back online, let's move back to them while we work out the issues with cloudflare. The code is now set up to be able to toggle between both. ESTIMATED CHANGES Modified .github/workflows/bors.yml Modified .github/workflows/build.yml Modified .github/workflows/build.yml.in Modified .github/workflows/build_fork.yml Modified Cache/IO.lean - def Cache.IO.getToken +/- def Cache.IO.packCache Modified Cache/Main.lean Modified Cache/Requests.lean + def Cache.Requests.QueryType.desc + def Cache.Requests.QueryType.prefix + inductive Cache.Requests.QueryType + def Cache.Requests.formatError + def Cache.Requests.getFilesInfo + def Cache.Requests.getToken +/- def Cache.Requests.mkFileURL +/- def Cache.Requests.mkPutConfigContent + def Cache.Requests.useFROCache Modified test/LibrarySearch/basic.lean Modified test/RewriteSearch/Basic.lean 2024-01-04 03:16:59 6117aba chore: bump dependencies (#9424) ESTIMATED CHANGES Modified Mathlib/Data/BitVec/Lemmas.lean Modified Mathlib/Data/Nat/Basic.lean - theorem Nat.dvd_one Modified lake-manifest.json 2024-01-04 01:46:08 570a85c chore: rename Finset.card_doubleton to Finset.card_pair (#9379) ESTIMATED CHANGES Modified Mathlib/Combinatorics/SimpleGraph/Clique.lean Modified Mathlib/Combinatorics/SimpleGraph/IncMatrix.lean Modified Mathlib/Data/Finset/Card.lean - theorem Finset.card_doubleton + theorem Finset.card_pair Modified Mathlib/NumberTheory/LegendreSymbol/QuadraticChar/Basic.lean Modified Mathlib/NumberTheory/NumberField/Embeddings.lean 2024-01-03 20:40:42 26c28ad chore: Tag `abs_le_abs_of_nonneg` as `gcongr` (#9391) From LeanAPAP ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Group/Abs.lean Modified Mathlib/Analysis/Asymptotics/SuperpolynomialDecay.lean Modified Mathlib/Analysis/Calculus/Taylor.lean 2024-01-03 17:22:35 e23b087 doc(AlgebraicIndependent): remove outdated TODO and add new (#9396) The TODO item was already completed as [IsTranscendenceBasis.isAlgebraic](https://leanprover-community.github.io/mathlib4_docs/Mathlib/RingTheory/AlgebraicIndependent.html#IsTranscendenceBasis.isAlgebraic). However, transcendence degree is nowhere to be found even though it appears in the tags. ESTIMATED CHANGES Modified Mathlib/RingTheory/AlgebraicIndependent.lean 2024-01-03 15:13:20 7d58fa3 chore: switch cache to Lean FRO R2 bucket (#9409) This will use a new, fresh cache from this commit onward. We are still working on reviving the old cache for old commits. ESTIMATED CHANGES Modified .github/workflows/bors.yml Modified .github/workflows/build.yml Modified .github/workflows/build.yml.in Modified .github/workflows/build_fork.yml Modified Cache/IO.lean Modified Cache/Requests.lean - def Cache.Requests.QueryType.desc - def Cache.Requests.QueryType.prefix - inductive Cache.Requests.QueryType + def Cache.Requests.UPLOAD_URL - def Cache.Requests.formatError - def Cache.Requests.getFilesInfo +/- def Cache.Requests.mkFileURL +/- def Cache.Requests.mkPutConfigContent Modified test/LibrarySearch/basic.lean Modified test/RewriteSearch/Basic.lean 2024-01-02 08:29:00 089e95f doc(FormalMultilinearSeries): clarify relationship between `shift`, `sum`, derivative and Taylor series (#9373) ESTIMATED CHANGES Modified Mathlib/Analysis/Calculus/ContDiff/Defs.lean Modified Mathlib/Analysis/Calculus/FormalMultilinearSeries.lean 2024-01-02 07:02:46 a4e04c2 feat: Prove isomorphism implies equality of normal closure subgroups (#9185) feat: Prove isomorphism implies equality of normal closure subgroups ESTIMATED CHANGES Modified Mathlib/GroupTheory/Subgroup/Basic.lean + theorem Subgroup.comap_equiv_eq_map_symm' + theorem Subgroup.comap_normalClosure + theorem Subgroup.map_equiv_eq_comap_symm' + theorem Subgroup.map_normalClosure 2024-01-02 05:36:50 4f83eae chore(MeasureTheory): golf (#9374) Reorder/golf lemmas, add `ae_restrict_iff₀`. Also remove 3 lemmas that are no longer needed and can be proved in 1 line each. ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Integral/SetIntegral.lean - theorem MeasureTheory.ae_restrict_eq_const_iff_ae_eq_const_of_mem' - theorem MeasureTheory.ae_restrict_eq_const_iff_ae_eq_const_of_mem - theorem MeasureTheory.set_integral_eq_integral_of_ae_restrict_eq_zero Modified Mathlib/MeasureTheory/Measure/Restrict.lean + theorem MeasureTheory.ae_restrict_iff₀ +/- theorem MeasureTheory.ae_restrict_mem₀ 2024-01-01 22:36:28 2a17457 feat: missing lemmas about `Finsupp.update` (#9316) ESTIMATED CHANGES Modified Mathlib/Data/Finsupp/Defs.lean + theorem Finsupp.erase_eq_update_zero + theorem Finsupp.erase_idem + theorem Finsupp.erase_update_eq_erase + theorem Finsupp.erase_update_of_ne + theorem Finsupp.support_update_subset + theorem Finsupp.update_comm + theorem Finsupp.update_erase_eq_update + theorem Finsupp.update_idem 2024-01-01 22:36:27 16877b9 chore: use string gaps (#9193) For error messages that span multiple lines, now we can use the new "string gap" escape sequence (a `\` at the end of the line, which causes all the whitespace at the beginning of the next line ignored), rather than using append operations or hacks involving `{` and `}` for `s!` and `m!` strings. Style-wise, we suggest for long messages that the body of the message start on the next line if possible, by starting the message with a string gap sequence. This eliminates needing to decide whether to indent continuing lines at the `"` or at the next column. For example: ```lean logError m!"\ Tactic 'more_magic' cannot \ apply expression{indentD e}\n\ due to some reason or another." ``` Note that to get whitespace to appear between one line and the next, you include it before the `\`. ESTIMATED CHANGES Modified Cache/Requests.lean Modified ImportGraph/Main.lean Modified Mathlib/Data/Matrix/Notation.lean Modified Mathlib/Data/PNat/Xgcd.lean Modified Mathlib/Lean/Expr/Basic.lean Modified Mathlib/Mathport/Notation.lean Modified Mathlib/Mathport/Rename.lean Modified Mathlib/MeasureTheory/Constructions/BorelSpace/Basic.lean Modified Mathlib/Tactic/Cases.lean Modified Mathlib/Tactic/CategoryTheory/Coherence.lean Modified Mathlib/Tactic/CategoryTheory/Elementwise.lean Modified Mathlib/Tactic/Change.lean Modified Mathlib/Tactic/ComputeDegree.lean Modified Mathlib/Tactic/Core.lean Modified Mathlib/Tactic/DeriveFintype.lean Modified Mathlib/Tactic/Eqns.lean Modified Mathlib/Tactic/FinCases.lean Modified Mathlib/Tactic/GCongr/Core.lean Modified Mathlib/Tactic/LibrarySearch.lean Modified Mathlib/Tactic/MoveAdd.lean Modified Mathlib/Tactic/Nontriviality/Core.lean Modified Mathlib/Tactic/ProxyType.lean Modified Mathlib/Tactic/Recall.lean Modified Mathlib/Tactic/RewriteSearch.lean Modified Mathlib/Tactic/Rewrites.lean Modified Mathlib/Tactic/Says.lean Modified Mathlib/Tactic/Simps/Basic.lean Modified Mathlib/Tactic/Simps/NotationClass.lean Modified Mathlib/Tactic/TermCongr.lean Modified Mathlib/Tactic/ToAdditive.lean Modified Mathlib/Tactic/Variable.lean Modified Mathlib/Tactic/Widget/Calc.lean Modified Mathlib/Util/AssertExists.lean Modified Mathlib/Util/Imports.lean Modified test/GCongr/inequalities.lean Modified test/eqns.lean 2024-01-01 21:12:39 bc21de1 refactor(Algebra/Homology): the category of bicomplexes (#9333) This PR introduces the abbreviation `abbrev HomologicalComplex₂ := HomologicalComplex (HomologicalComplex C c₂) c₁` for bicomplexes. The content of the file `Algebra.Homology.Flip` is also moved to the new file `Algebra.Homology.HomologicalBicomplex`. ESTIMATED CHANGES Modified Mathlib.lean Deleted Mathlib/Algebra/Homology/Flip.lean - def HomologicalComplex.flip - def HomologicalComplex.flipEquivalence - def HomologicalComplex.flipEquivalenceCounitIso - def HomologicalComplex.flipEquivalenceUnitIso - def HomologicalComplex.flipObj Added Mathlib/Algebra/Homology/HomologicalBicomplex.lean + theorem HomologicalComplex₂.comm_f + theorem HomologicalComplex₂.d_comm + theorem HomologicalComplex₂.d_f_comp_d_f + def HomologicalComplex₂.flip + def HomologicalComplex₂.flipEquivalence + def HomologicalComplex₂.flipEquivalenceCounitIso + def HomologicalComplex₂.flipEquivalenceUnitIso + def HomologicalComplex₂.flipFunctor + theorem HomologicalComplex₂.shape_f + def HomologicalComplex₂.toGradedObject Modified Mathlib/Algebra/Homology/HomologicalComplex.lean 2024-01-01 21:12:38 3a5d914 feat(Algebra/Homology): right shifting cochains (#8937) In this PR, we study the behaviour of cochains (of the complex of homomorphisms) with respect to shifts (on the target). In particular, we obtain an additive equivalence `rightShiftAddEquiv K L n a n' h : Cochain K L n ≃+ Cochain K L⟦a⟧ n'` when `n' + a = n`. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Homology/HomotopyCategory/HomComplexShift.lean + def CochainComplex.HomComplex.Cochain.rightShift + def CochainComplex.HomComplex.Cochain.rightShiftAddEquiv + def CochainComplex.HomComplex.Cochain.rightShiftLinearEquiv + theorem CochainComplex.HomComplex.Cochain.rightShift_add + theorem CochainComplex.HomComplex.Cochain.rightShift_neg + theorem CochainComplex.HomComplex.Cochain.rightShift_rightUnshift + theorem CochainComplex.HomComplex.Cochain.rightShift_smul + theorem CochainComplex.HomComplex.Cochain.rightShift_units_smul + theorem CochainComplex.HomComplex.Cochain.rightShift_v + theorem CochainComplex.HomComplex.Cochain.rightShift_zero + def CochainComplex.HomComplex.Cochain.rightUnshift + theorem CochainComplex.HomComplex.Cochain.rightUnshift_add + theorem CochainComplex.HomComplex.Cochain.rightUnshift_comp + theorem CochainComplex.HomComplex.Cochain.rightUnshift_neg + theorem CochainComplex.HomComplex.Cochain.rightUnshift_rightShift + theorem CochainComplex.HomComplex.Cochain.rightUnshift_smul + theorem CochainComplex.HomComplex.Cochain.rightUnshift_units_smul + theorem CochainComplex.HomComplex.Cochain.rightUnshift_v + theorem CochainComplex.HomComplex.Cochain.rightUnshift_zero + theorem CochainComplex.HomComplex.Cochain.δ_rightShift + theorem CochainComplex.HomComplex.Cochain.δ_rightUnshift + def CochainComplex.HomComplex.Cocycle.rightShift + def CochainComplex.HomComplex.Cocycle.rightUnshift 2024-01-01 19:29:52 5192777 refactor: decapitalize names in `@[mk_iff]` (#9378) * `@[mk_iff] class MyPred` now generates `myPred_iff`, not `MyPred_iff` * add `Lean.Name.decapitalize` * fix indentation and a few typos in the docs/comments. Partially addresses issue #9129 ESTIMATED CHANGES Modified Archive/Imo/Imo1981Q3.lean Modified Mathlib/Algebra/CharP/Basic.lean Modified Mathlib/AlgebraicGeometry/Morphisms/FiniteType.lean Modified Mathlib/AlgebraicGeometry/Morphisms/QuasiCompact.lean Modified Mathlib/AlgebraicGeometry/Morphisms/QuasiSeparated.lean Modified Mathlib/AlgebraicGeometry/Morphisms/UniversallyClosed.lean Modified Mathlib/Analysis/Calculus/TangentCone.lean Modified Mathlib/Combinatorics/SimpleGraph/Acyclic.lean Modified Mathlib/Combinatorics/SimpleGraph/Connectivity.lean Modified Mathlib/Data/Multiset/Basic.lean +/- theorem Multiset.rel_zero_left +/- theorem Multiset.rel_zero_right Modified Mathlib/GroupTheory/Subsemigroup/Center.lean Modified Mathlib/Lean/Name.lean + def Lean.Name.decapitalize Modified Mathlib/LinearAlgebra/Dimension/DivisionRing.lean Modified Mathlib/Logic/Relation.lean Modified Mathlib/Logic/UnivLE.lean Modified Mathlib/NumberTheory/Cyclotomic/Basic.lean Modified Mathlib/Order/Atoms.lean Modified Mathlib/Order/PrimeIdeal.lean Modified Mathlib/Order/RelClasses.lean Modified Mathlib/RingTheory/Etale.lean Modified Mathlib/RingTheory/Ideal/Cotangent.lean Modified Mathlib/RingTheory/Nilpotent.lean Modified Mathlib/RingTheory/Polynomial/Eisenstein/Basic.lean Modified Mathlib/RingTheory/PrincipalIdealDomain.lean Modified Mathlib/SetTheory/Game/PGame.lean Modified Mathlib/Tactic/MkIffOfInductiveProp.lean +/- def Mathlib.Tactic.MkIff.List.init Modified Mathlib/Topology/Bases.lean Modified Mathlib/Topology/CompletelyRegular.lean Modified Mathlib/Topology/Connected/TotallyDisconnected.lean Modified Mathlib/Topology/FiberBundle/Basic.lean Modified Mathlib/Topology/Maps.lean Modified Mathlib/Topology/NoetherianSpace.lean Modified Mathlib/Topology/QuasiSeparated.lean Modified Mathlib/Topology/Separation.lean Modified Mathlib/Topology/Sequences.lean Modified Mathlib/Topology/Sober.lean Modified Mathlib/Topology/UniformSpace/UniformEmbedding.lean Modified test/MkIffOfInductive.lean 2024-01-01 17:53:37 4ae4613 chore(Algebra/GroupPower/Order): Fix "See also" comment (#9384) Reported by Alex [here](https://github.com/leanprover-community/mathlib4/commit/d61c95e1653dffe3f92c8927a905826929f50bce) ESTIMATED CHANGES Modified Mathlib/Algebra/GroupPower/Order.lean 2024-01-01 15:59:48 5683185 feat(RepresentationTheory/GroupCohomology/LowDegree): Identify `groupCohomology A n`with `Hn A` for `n = 0, 1, 2` (#8802) ESTIMATED CHANGES Modified Mathlib/RepresentationTheory/GroupCohomology/Basic.lean Modified Mathlib/RepresentationTheory/GroupCohomology/LowDegree.lean + def groupCohomology.dZeroArrowIso + theorem groupCohomology.dZero_comp_H0_subtype + theorem groupCohomology.groupCohomologyπ_comp_isoH0_hom + theorem groupCohomology.groupCohomologyπ_comp_isoH1_hom + theorem groupCohomology.groupCohomologyπ_comp_isoH2_hom + def groupCohomology.isoH0 + def groupCohomology.isoH1 + def groupCohomology.isoH2 + def groupCohomology.isoOneCocycles + theorem groupCohomology.isoOneCocycles_hom_comp_subtype + def groupCohomology.isoTwoCocycles + theorem groupCohomology.isoTwoCocycles_hom_comp_subtype + def groupCohomology.isoZeroCocycles + theorem groupCohomology.isoZeroCocycles_hom_comp_subtype + def groupCohomology.shortComplexH0 + theorem groupCohomology.shortComplexH0_exact + def groupCohomology.shortComplexH1 + def groupCohomology.shortComplexH1Iso + def groupCohomology.shortComplexH2 + def groupCohomology.shortComplexH2Iso + theorem groupCohomology.toCocycles_comp_isoOneCocycles_hom + theorem groupCohomology.toCocycles_comp_isoTwoCocycles_hom 2024-01-01 14:48:15 0b41ea9 chore: Reorganize results about `rank` and `finrank`. (#9349) The files `Mathlib.LinearAlgebra.FreeModule.Rank`, `Mathlib.LinearAlgebra.FreeModule.Finite.Rank`, `Mathlib.LinearAlgebra.Dimension` and `Mathlib.LinearAlgebra.Finrank` were reorganized into a folder `Mathlib.LinearAlgebra.Dimension`, containing the following files - `Basic.lean`: Contains the definition of `Module.rank`. - `Finrank.lean`: Contains the definition of `FiniteDimensional.finrank`. - `StrongRankCondition.lean`: Contains results about `rank` and `finrank` over rings satisfying strong rank condition - `Free.lean`: Contains results about `rank` and `finrank` of free modules - `Finite.lean`: Contains conditions or consequences for `rank` to be finite or zero - `Constructions.lean`: Contains the calculation of the `rank` of various constructions. - `DivisionRing.lean`: Contains results about `rank` and `finrank` of spaces over division rings. - `LinearMap.lean`: Contains results about `LinearMap.rank` API changes: `IsNoetherian.rank_lt_aleph0` and `FiniteDimensional.rank_lt_aleph0` are replaced with `rank_lt_aleph0`. `Module.Free.finite_basis` was renamed to `Module.Finite.finite_basis`. `FiniteDimensional.finrank_eq_rank` was renamed to `finrank_eq_rank`. `rank_eq_cardinal_basis` and `rank_eq_cardinal_basis'` were removed in favour of `Basis.mk_eq_mk` and `Basis.mk_eq_mk''`. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Category/ModuleCat/Free.lean Modified Mathlib/Algebra/DirectSum/LinearMap.lean Modified Mathlib/Algebra/Lie/Weights/Linear.lean Modified Mathlib/Algebra/LinearRecurrence.lean Modified Mathlib/Algebra/Quaternion.lean Modified Mathlib/Analysis/NormedSpace/Connected.lean Modified Mathlib/Data/Matrix/Rank.lean Modified Mathlib/FieldTheory/Finiteness.lean - theorem IsNoetherian.rank_lt_aleph0 Modified Mathlib/FieldTheory/MvPolynomial.lean Modified Mathlib/GroupTheory/FreeAbelianGroupFinsupp.lean Modified Mathlib/LinearAlgebra/Charpoly/ToMatrix.lean Deleted Mathlib/LinearAlgebra/Dimension.lean - theorem Algebra.lift_rank_eq_of_equiv_equiv - theorem Algebra.lift_rank_le_of_injective_injective - theorem Algebra.lift_rank_le_of_surjective_injective - theorem Algebra.rank_eq_of_equiv_equiv - theorem Algebra.rank_le_of_injective_injective - theorem Algebra.rank_le_of_surjective_injective - theorem Basis.card_le_card_of_le - theorem Basis.card_le_card_of_linearIndependent - theorem Basis.card_le_card_of_linearIndependent_aux - theorem Basis.card_le_card_of_submodule - theorem Basis.finite_index_of_rank_lt_aleph0 - theorem Basis.finite_ofVectorSpaceIndex_of_rank_lt_aleph0 - def Basis.indexEquiv - theorem Basis.le_span'' - theorem Basis.le_span - theorem Basis.mk_eq_rank'' - theorem Basis.mk_eq_rank'.{m} - theorem Basis.mk_eq_rank - theorem Basis.mk_range_eq_rank - theorem Basis.nonempty_fintype_index_of_rank_lt_aleph0 - def Basis.ofRankEqZero - theorem Basis.ofRankEqZero_apply - theorem CompleteLattice.Independent.subtype_ne_bot_le_rank - theorem Ideal.rank_eq - theorem LinearEquiv.lift_rank_eq - theorem LinearEquiv.nonempty_equiv_iff_lift_rank_eq - theorem LinearEquiv.nonempty_equiv_iff_rank_eq - def LinearEquiv.ofLiftRankEq - def LinearEquiv.ofRankEq - theorem LinearEquiv.rank_eq - theorem LinearEquiv.rank_map_eq - theorem LinearIndependent.aleph0_le_rank - theorem LinearIndependent.cardinal_le_rank' - theorem LinearIndependent.cardinal_le_rank - theorem LinearIndependent.cardinal_lift_le_rank - theorem LinearIndependent.finite_of_le_span_finite - theorem LinearMap.le_rank_iff_exists_linearIndependent - theorem LinearMap.le_rank_iff_exists_linearIndependent_finset - theorem LinearMap.lift_rank_comp_le - theorem LinearMap.lift_rank_comp_le_right - theorem LinearMap.lift_rank_le_of_injective - theorem LinearMap.rank_add_le - theorem LinearMap.rank_comp_le - theorem LinearMap.rank_comp_le_left - theorem LinearMap.rank_comp_le_right - theorem LinearMap.rank_finset_sum_le - theorem LinearMap.rank_le_domain - theorem LinearMap.rank_le_of_injective - theorem LinearMap.rank_le_of_surjective - theorem LinearMap.rank_le_range - theorem LinearMap.rank_zero - theorem Module.Free.rank_eq_card_chooseBasisIndex - theorem Module.Free.rank_eq_mk_of_infinite_lt - theorem Module.rank_le_one_iff_top_isPrincipal - def Submodule.inductionOnRank - theorem Submodule.rank_add_le_rank_add_rank - theorem Submodule.rank_le_one_iff_isPrincipal - theorem Submodule.rank_sup_add_rank_inf_eq - theorem basis_le_span' - theorem exists_linearIndependent_cons_of_lt_rank - theorem exists_linearIndependent_pair_of_one_lt_rank - theorem exists_linearIndependent_snoc_of_lt_rank - theorem exists_mem_ne_zero_of_rank_pos - def finDimVectorspaceEquiv - theorem le_rank_iff_exists_linearIndependent - theorem le_rank_iff_exists_linearIndependent_finset - theorem lift_rank_add_lift_rank_le_rank_prod - theorem lift_rank_eq_of_equiv_equiv - theorem lift_rank_le_of_injective_injective - theorem lift_rank_le_of_surjective_injective - theorem lift_rank_map_le - theorem lift_rank_range_le - theorem linearIndependent_le_basis - theorem linearIndependent_le_infinite_basis - theorem linearIndependent_le_span' - theorem linearIndependent_le_span - theorem linearIndependent_le_span_aux' - theorem linearIndependent_le_span_finset - theorem maximal_linearIndependent_eq_infinite_basis - theorem mk_eq_mk_of_basis' - theorem mk_eq_mk_of_basis - theorem nonempty_linearEquiv_of_lift_rank_eq - theorem nonempty_linearEquiv_of_rank_eq - theorem nonempty_linearIndependent_set - theorem rank_add_rank_le_rank_prod - theorem rank_add_rank_split - theorem rank_bot - theorem rank_eq_card_basis - theorem rank_eq_of_equiv_equiv - theorem rank_eq_of_surjective - theorem rank_eq_zero_iff - theorem rank_eq_zero_iff_isTorsion - theorem rank_fin_fun - theorem rank_fun' - theorem rank_fun - theorem rank_fun_eq_lift_mul - theorem rank_le - theorem rank_le_card - theorem rank_le_of_injective_injective - theorem rank_le_of_submodule - theorem rank_le_of_surjective_injective - theorem rank_le_one_iff - theorem rank_map_le - theorem rank_pi - theorem rank_pos - theorem rank_pos_iff_exists_ne_zero - theorem rank_pos_iff_nontrivial - theorem rank_prod' - theorem rank_prod - theorem rank_punit - theorem rank_quotient_add_rank - theorem rank_quotient_add_rank_le - theorem rank_quotient_eq_of_le_torsion - theorem rank_quotient_le - theorem rank_range_add_rank_ker - theorem rank_range_le - theorem rank_range_of_injective - theorem rank_range_of_surjective - theorem rank_self - theorem rank_span - theorem rank_span_finset_le - theorem rank_span_le - theorem rank_span_le_of_finite - theorem rank_span_of_finset - theorem rank_span_set - theorem rank_submodule_le - theorem rank_submodule_le_one_iff' - theorem rank_submodule_le_one_iff - theorem rank_subsingleton - theorem rank_top - theorem rank_ulift - theorem rank_zero_iff - theorem rank_zero_iff_forall_zero Added Mathlib/LinearAlgebra/Dimension/Basic.lean + theorem Algebra.lift_rank_eq_of_equiv_equiv + theorem Algebra.lift_rank_le_of_injective_injective + theorem Algebra.lift_rank_le_of_surjective_injective + theorem Algebra.rank_eq_of_equiv_equiv + theorem Algebra.rank_le_of_injective_injective + theorem Algebra.rank_le_of_surjective_injective + theorem LinearEquiv.lift_rank_eq + theorem LinearEquiv.lift_rank_map_eq + theorem LinearEquiv.rank_eq + theorem LinearEquiv.rank_map_eq + theorem LinearIndependent.aleph0_le_rank + theorem LinearIndependent.cardinal_le_rank' + theorem LinearIndependent.cardinal_le_rank + theorem LinearIndependent.cardinal_lift_le_rank + theorem LinearMap.lift_rank_le_of_injective + theorem LinearMap.lift_rank_le_of_surjective + theorem LinearMap.rank_le_of_injective + theorem LinearMap.rank_le_of_surjective + theorem lift_rank_eq_of_equiv_equiv + theorem lift_rank_le_of_injective_injective + theorem lift_rank_le_of_surjective_injective + theorem lift_rank_map_le + theorem lift_rank_range_le + theorem lift_rank_range_of_injective + theorem nonempty_linearIndependent_set + theorem rank_eq_of_equiv_equiv + theorem rank_le_card + theorem rank_le_of_injective_injective + theorem rank_le_of_submodule + theorem rank_le_of_surjective_injective + theorem rank_map_le + theorem rank_range_le + theorem rank_range_of_injective + theorem rank_range_of_surjective + theorem rank_submodule_le + theorem rank_subsingleton + theorem rank_top Added Mathlib/LinearAlgebra/Dimension/Constructions.lean + theorem FiniteDimensional.finrank_directSum + theorem FiniteDimensional.finrank_fin_fun + theorem FiniteDimensional.finrank_finsupp + theorem FiniteDimensional.finrank_finsupp_self + theorem FiniteDimensional.finrank_fintype_fun_eq_card + theorem FiniteDimensional.finrank_matrix + theorem FiniteDimensional.finrank_pi + theorem FiniteDimensional.finrank_pi_fintype + theorem FiniteDimensional.finrank_prod + theorem FiniteDimensional.finrank_tensorProduct + theorem Subalgebra.finrank_bot + theorem Subalgebra.finrank_toSubmodule + theorem Subalgebra.rank_bot + theorem Subalgebra.rank_toSubmodule + theorem Subalgebra.rank_top + theorem Submodule.finrank_le + theorem Submodule.finrank_le_finrank_of_le + theorem Submodule.finrank_map_le + theorem Submodule.finrank_quotient_le + theorem Submodule.lt_of_le_of_finrank_lt_finrank + theorem Submodule.lt_top_of_finrank_lt_finrank + def finDimVectorspaceEquiv + theorem finrank_ulift + theorem lift_rank_add_lift_rank_le_rank_prod + theorem rank_add_rank_le_rank_prod + theorem rank_directSum + theorem rank_fin_fun + theorem rank_finsupp' + theorem rank_finsupp + theorem rank_finsupp_self' + theorem rank_finsupp_self + theorem rank_fun' + theorem rank_fun + theorem rank_fun_eq_lift_mul + theorem rank_matrix'' + theorem rank_matrix' + theorem rank_matrix + theorem rank_pi + theorem rank_prod' + theorem rank_prod + theorem rank_quotient_add_rank_le + theorem rank_quotient_eq_of_le_torsion + theorem rank_quotient_le + theorem rank_span_finset_le + theorem rank_span_le_of_finite + theorem rank_span_of_finset + theorem rank_tensorProduct' + theorem rank_tensorProduct + theorem rank_ulift + theorem subalgebra_top_finrank_eq_submodule_top_finrank + theorem subalgebra_top_rank_eq_submodule_top_rank Added Mathlib/LinearAlgebra/Dimension/DivisionRing.lean + theorem Basis.finite_ofVectorSpaceIndex_of_rank_lt_aleph0 + def Basis.ofRankEqZero + theorem Basis.ofRankEqZero_apply + theorem Module.rank_le_one_iff_top_isPrincipal + theorem Submodule.rank_add_le_rank_add_rank + theorem Submodule.rank_le_one_iff_isPrincipal + theorem Submodule.rank_sup_add_rank_inf_eq + theorem coe_basisOfTopLeSpanOfCardEqFinrank + theorem exists_linearIndependent_cons_of_lt_finrank + theorem exists_linearIndependent_cons_of_lt_rank + theorem exists_linearIndependent_pair_of_one_lt_finrank + theorem exists_linearIndependent_pair_of_one_lt_rank + theorem exists_linearIndependent_snoc_of_lt_finrank + theorem exists_linearIndependent_snoc_of_lt_rank + theorem finrank_range_le_card + theorem finrank_span_eq_card + theorem finrank_span_finset_eq_card + theorem finrank_span_finset_le_card + theorem finrank_span_le_card + theorem finrank_span_set_eq_card + theorem le_rank_iff_exists_linearIndependent + theorem le_rank_iff_exists_linearIndependent_finset + theorem lift_rank_lt_rank_dual' + theorem lift_rank_lt_rank_dual + theorem linearIndependent_iff_card_eq_finrank_span + theorem linearIndependent_iff_card_le_finrank_span + theorem linearIndependent_of_top_le_span_of_card_eq_finrank + theorem max_aleph0_card_le_rank_fun_nat + theorem rank_add_rank_split + theorem rank_dual_eq_card_dual_of_aleph0_le_rank' + theorem rank_dual_eq_card_dual_of_aleph0_le_rank + theorem rank_eq_of_surjective + theorem rank_fun_infinite + theorem rank_le_one_iff + theorem rank_lt_rank_dual' + theorem rank_lt_rank_dual + theorem rank_quotient_add_rank + theorem rank_range_add_rank_ker + theorem rank_span_le + theorem rank_submodule_le_one_iff' + theorem rank_submodule_le_one_iff + theorem span_lt_of_subset_of_card_lt_finrank + theorem span_lt_top_of_card_lt_finrank Added Mathlib/LinearAlgebra/Dimension/Finite.lean + theorem Basis.finite_index_of_rank_lt_aleph0 + theorem Basis.nonempty_fintype_index_of_rank_lt_aleph0 + theorem CompleteLattice.Independent.subtype_ne_bot_le_finrank + theorem CompleteLattice.Independent.subtype_ne_bot_le_finrank_aux + theorem CompleteLattice.Independent.subtype_ne_bot_le_rank + theorem FiniteDimensional.finrank_eq_zero_iff + theorem FiniteDimensional.finrank_eq_zero_iff_isTorsion + theorem FiniteDimensional.finrank_eq_zero_of_rank_eq_zero + theorem FiniteDimensional.finrank_pos + theorem FiniteDimensional.finrank_pos_iff + theorem FiniteDimensional.finrank_pos_iff_exists_ne_zero + theorem FiniteDimensional.finrank_zero_iff + theorem FiniteDimensional.finrank_zero_of_subsingleton + theorem FiniteDimensional.nontrivial_of_finrank_eq_succ + theorem FiniteDimensional.nontrivial_of_finrank_pos + theorem LinearIndependent.cardinal_mk_le_finrank + theorem LinearIndependent.finite + theorem LinearIndependent.finrank_eq_zero_of_infinite + theorem LinearIndependent.finset_card_le_finrank + theorem LinearIndependent.fintype_card_le_finrank + theorem LinearIndependent.lt_aleph0_of_finite + theorem LinearIndependent.setFinite + theorem Module.Finite.not_linearIndependent_of_infinite + theorem Module.exists_nontrivial_relation_of_finrank_lt_card + theorem Module.exists_nontrivial_relation_sum_zero_of_finrank_succ_lt_card + theorem Module.finite_of_rank_eq_nat + theorem Module.finite_of_rank_eq_one + theorem Module.finite_of_rank_eq_zero + theorem Submodule.bot_eq_top_of_rank_eq_zero + theorem Submodule.finrank_eq_zero + theorem Submodule.rank_eq_zero + theorem exists_mem_ne_zero_of_rank_pos + theorem finrank_bot + theorem finrank_eq_one + theorem finrank_eq_zero_of_basis_imp_false + theorem finrank_eq_zero_of_basis_imp_not_finite + theorem finrank_eq_zero_of_not_exists_basis + theorem finrank_eq_zero_of_not_exists_basis_finite + theorem finrank_eq_zero_of_not_exists_basis_finset + theorem finrank_le_one + theorem rank_bot + theorem rank_eq_one + theorem rank_eq_zero_iff + theorem rank_eq_zero_iff_isTorsion + theorem rank_le + theorem rank_pos + theorem rank_pos_iff_exists_ne_zero + theorem rank_pos_iff_nontrivial + theorem rank_punit + theorem rank_subsingleton' + theorem rank_zero_iff + theorem rank_zero_iff_forall_zero Added Mathlib/LinearAlgebra/Dimension/Finrank.lean + theorem FiniteDimensional.finrank_eq_of_rank_eq + theorem FiniteDimensional.finrank_le_finrank_of_rank_le_rank + theorem FiniteDimensional.finrank_le_of_rank_le + theorem FiniteDimensional.finrank_lt_of_rank_lt + theorem FiniteDimensional.lt_rank_of_lt_finrank + theorem FiniteDimensional.one_lt_rank_of_one_lt_finrank + theorem FiniteDimensional.rank_eq_ofNat_iff_finrank_eq_ofNat + theorem FiniteDimensional.rank_eq_one_iff_finrank_eq_one + theorem LinearEquiv.finrank_eq + theorem LinearEquiv.finrank_map_eq + theorem LinearMap.finrank_range_of_inj + theorem Submodule.finrank_map_subtype_eq + theorem finrank_top Added Mathlib/LinearAlgebra/Dimension/Free.lean + theorem FiniteDimensional.basisUnique_repr_eq_zero_iff + theorem FiniteDimensional.finrank_eq_card_chooseBasisIndex + theorem FiniteDimensional.finrank_of_not_finite + theorem FiniteDimensional.nonempty_linearEquiv_iff_finrank_eq + theorem FiniteDimensional.nonempty_linearEquiv_of_finrank_eq + theorem LinearEquiv.nonempty_equiv_iff_lift_rank_eq + theorem LinearEquiv.nonempty_equiv_iff_rank_eq + def LinearEquiv.ofLiftRankEq + def LinearEquiv.ofRankEq + theorem Module.Free.rank_eq_card_chooseBasisIndex + theorem Module.Free.rank_eq_mk_of_infinite_lt + theorem Module.finite_iff_of_rank_eq_nsmul + theorem Module.finite_of_finrank_eq_succ + theorem Module.finite_of_finrank_pos + theorem Module.rank_lt_alpeh0_iff + theorem nonempty_linearEquiv_of_lift_rank_eq + theorem nonempty_linearEquiv_of_rank_eq Added Mathlib/LinearAlgebra/Dimension/LinearMap.lean + theorem LinearMap.le_rank_iff_exists_linearIndependent + theorem LinearMap.le_rank_iff_exists_linearIndependent_finset + theorem LinearMap.lift_rank_comp_le + theorem LinearMap.lift_rank_comp_le_right + theorem LinearMap.rank_add_le + theorem LinearMap.rank_comp_le + theorem LinearMap.rank_comp_le_left + theorem LinearMap.rank_comp_le_right + theorem LinearMap.rank_finset_sum_le + theorem LinearMap.rank_le_domain + theorem LinearMap.rank_le_range + theorem LinearMap.rank_zero Added Mathlib/LinearAlgebra/Dimension/StrongRankCondition.lean + theorem Basis.card_le_card_of_le + theorem Basis.card_le_card_of_linearIndependent + theorem Basis.card_le_card_of_linearIndependent_aux + theorem Basis.card_le_card_of_submodule + def Basis.indexEquiv + theorem Basis.le_span'' + theorem Basis.le_span + theorem Basis.mk_eq_rank'' + theorem Basis.mk_eq_rank'.{m} + theorem Basis.mk_eq_rank + theorem Basis.mk_range_eq_rank + theorem FiniteDimensional.finrank_eq_card_basis + theorem FiniteDimensional.finrank_eq_card_finset_basis + theorem FiniteDimensional.finrank_self + theorem Ideal.rank_eq + theorem LinearIndependent.finite_of_le_span_finite + theorem LinearMap.finrank_le_finrank_of_injective + theorem LinearMap.finrank_range_le + theorem Module.mk_finrank_eq_card_basis + def Submodule.inductionOnRank + theorem basis_le_span' + theorem finrank_eq_nat_card_basis + theorem finrank_eq_rank + theorem linearIndependent_le_basis + theorem linearIndependent_le_infinite_basis + theorem linearIndependent_le_span' + theorem linearIndependent_le_span + theorem linearIndependent_le_span_aux' + theorem linearIndependent_le_span_finset + theorem maximal_linearIndependent_eq_infinite_basis + theorem mk_eq_mk_of_basis' + theorem mk_eq_mk_of_basis + theorem rank_eq_card_basis + theorem rank_lt_aleph0 + theorem rank_self + theorem rank_span + theorem rank_span_set Modified Mathlib/LinearAlgebra/FiniteDimensional.lean Deleted Mathlib/LinearAlgebra/Finrank.lean - theorem FiniteDimensional.Basis.subset_extend - theorem FiniteDimensional.finrank_eq_card_basis - theorem FiniteDimensional.finrank_eq_card_finset_basis - theorem FiniteDimensional.finrank_eq_of_rank_eq - theorem FiniteDimensional.finrank_fin_fun - theorem FiniteDimensional.finrank_fintype_fun_eq_card - theorem FiniteDimensional.finrank_le_finrank_of_rank_le_rank - theorem FiniteDimensional.finrank_le_of_rank_le - theorem FiniteDimensional.finrank_lt_of_rank_lt - theorem FiniteDimensional.finrank_self - theorem FiniteDimensional.finrank_zero_of_subsingleton - theorem FiniteDimensional.lt_rank_of_lt_finrank - theorem FiniteDimensional.nontrivial_of_finrank_eq_succ - theorem FiniteDimensional.nontrivial_of_finrank_pos - theorem FiniteDimensional.one_lt_rank_of_one_lt_finrank - theorem FiniteDimensional.rank_eq_ofNat_iff_finrank_eq_ofNat - theorem FiniteDimensional.rank_eq_one_iff_finrank_eq_one - theorem LinearEquiv.finrank_eq - theorem LinearEquiv.finrank_map_eq - theorem LinearIndependent.finrank_eq_zero_of_infinite - theorem LinearMap.finrank_range_of_inj - theorem Subalgebra.finrank_bot - theorem Subalgebra.finrank_toSubmodule - theorem Subalgebra.rank_bot - theorem Subalgebra.rank_toSubmodule - theorem Subalgebra.rank_top - theorem Submodule.lt_of_le_of_finrank_lt_finrank - theorem Submodule.lt_top_of_finrank_lt_finrank - theorem coe_basisOfTopLeSpanOfCardEqFinrank - theorem exists_linearIndependent_cons_of_lt_finrank - theorem exists_linearIndependent_pair_of_one_lt_finrank - theorem exists_linearIndependent_snoc_of_lt_finrank - theorem finrank_bot - theorem finrank_eq_nat_card_basis - theorem finrank_eq_one - theorem finrank_eq_zero_of_basis_imp_false - theorem finrank_eq_zero_of_basis_imp_not_finite - theorem finrank_eq_zero_of_not_exists_basis - theorem finrank_eq_zero_of_not_exists_basis_finite - theorem finrank_eq_zero_of_not_exists_basis_finset - theorem finrank_le_one - theorem finrank_range_le_card - theorem finrank_span_eq_card - theorem finrank_span_finset_eq_card - theorem finrank_span_finset_le_card - theorem finrank_span_le_card - theorem finrank_span_set_eq_card - theorem finrank_top - theorem linearIndependent_iff_card_eq_finrank_span - theorem linearIndependent_iff_card_le_finrank_span - theorem linearIndependent_of_top_le_span_of_card_eq_finrank - theorem span_lt_of_subset_of_card_lt_finrank - theorem span_lt_top_of_card_lt_finrank - theorem subalgebra_top_finrank_eq_submodule_top_finrank - theorem subalgebra_top_rank_eq_submodule_top_rank Modified Mathlib/LinearAlgebra/FreeAlgebra.lean Modified Mathlib/LinearAlgebra/FreeModule/Finite/Basic.lean - theorem Module.Free.finite_basis Modified Mathlib/LinearAlgebra/FreeModule/Finite/Matrix.lean Deleted Mathlib/LinearAlgebra/FreeModule/Finite/Rank.lean - theorem CompleteLattice.Independent.subtype_ne_bot_le_finrank - theorem CompleteLattice.Independent.subtype_ne_bot_le_finrank_aux - theorem FiniteDimensional.Submodule.finrank_map_subtype_eq - theorem FiniteDimensional.basisUnique_repr_eq_zero_iff - theorem FiniteDimensional.finrank_directSum - theorem FiniteDimensional.finrank_eq_card_chooseBasisIndex - theorem FiniteDimensional.finrank_eq_rank - theorem FiniteDimensional.finrank_eq_zero_iff - theorem FiniteDimensional.finrank_eq_zero_iff_isTorsion - theorem FiniteDimensional.finrank_eq_zero_of_rank_eq_zero - theorem FiniteDimensional.finrank_finsupp - theorem FiniteDimensional.finrank_finsupp_self - theorem FiniteDimensional.finrank_matrix - theorem FiniteDimensional.finrank_of_not_finite - theorem FiniteDimensional.finrank_pi - theorem FiniteDimensional.finrank_pi_fintype - theorem FiniteDimensional.finrank_pos - theorem FiniteDimensional.finrank_pos_iff - theorem FiniteDimensional.finrank_pos_iff_exists_ne_zero - theorem FiniteDimensional.finrank_prod - theorem FiniteDimensional.finrank_tensorProduct - theorem FiniteDimensional.finrank_ulift - theorem FiniteDimensional.finrank_zero_iff - theorem FiniteDimensional.nonempty_linearEquiv_iff_finrank_eq - theorem FiniteDimensional.nonempty_linearEquiv_of_finrank_eq - theorem FiniteDimensional.rank_lt_aleph0 - theorem LinearIndependent.cardinal_mk_le_finrank - theorem LinearIndependent.finite - theorem LinearIndependent.finset_card_le_finrank - theorem LinearIndependent.fintype_card_le_finrank - theorem LinearIndependent.lt_aleph0_of_finite - theorem LinearIndependent.setFinite - theorem LinearMap.finrank_le_finrank_of_injective - theorem LinearMap.finrank_range_le - theorem Module.Finite.not_linearIndependent_of_infinite - theorem Module.exists_nontrivial_relation_of_finrank_lt_card - theorem Module.exists_nontrivial_relation_sum_zero_of_finrank_succ_lt_card - theorem Module.finite_iff_of_rank_eq_nsmul - theorem Module.finite_of_finrank_eq_succ - theorem Module.finite_of_finrank_pos - theorem Module.finite_of_rank_eq_nat - theorem Module.finite_of_rank_eq_one - theorem Module.finite_of_rank_eq_zero - theorem Module.mk_finrank_eq_card_basis - theorem Module.rank_lt_alpeh0_iff - theorem Submodule.bot_eq_top_of_rank_eq_zero - theorem Submodule.finrank_eq_zero - theorem Submodule.finrank_le - theorem Submodule.finrank_le_finrank_of_le - theorem Submodule.finrank_map_le - theorem Submodule.finrank_quotient_le - theorem Submodule.rank_eq_zero Modified Mathlib/LinearAlgebra/FreeModule/IdealQuotient.lean Modified Mathlib/LinearAlgebra/FreeModule/PID.lean Deleted Mathlib/LinearAlgebra/FreeModule/Rank.lean - theorem lift_rank_lt_rank_dual' - theorem lift_rank_lt_rank_dual - theorem max_aleph0_card_le_rank_fun_nat - theorem rank_directSum - theorem rank_dual_eq_card_dual_of_aleph0_le_rank' - theorem rank_dual_eq_card_dual_of_aleph0_le_rank - theorem rank_eq_cardinal_basis' - theorem rank_eq_cardinal_basis - theorem rank_finsupp' - theorem rank_finsupp - theorem rank_finsupp_self' - theorem rank_finsupp_self - theorem rank_fun_infinite - theorem rank_lt_rank_dual' - theorem rank_lt_rank_dual - theorem rank_matrix'' - theorem rank_matrix' - theorem rank_matrix - theorem rank_tensorProduct' - theorem rank_tensorProduct Modified Mathlib/LinearAlgebra/Matrix/Diagonal.lean Modified Mathlib/LinearAlgebra/TensorAlgebra/Basis.lean Modified Mathlib/LinearAlgebra/Trace.lean Modified Mathlib/MeasureTheory/Measure/Lebesgue/EqHaar.lean Modified Mathlib/NumberTheory/RamificationInertia.lean Modified Mathlib/RingTheory/Finiteness.lean + theorem Module.Finite.finite_basis 2024-01-01 12:02:33 0d6117a feat: Cauchy-Schwarz in semirings (#9371) This is a version of the Cauchy-Schwarz inequality that works in semirings. From LeanAPAP and PFR ESTIMATED CHANGES Modified Mathlib/Algebra/BigOperators/Order.lean + theorem Finset.sum_mul_sq_le_sq_mul_sq +/- theorem Fintype.prod_eq_one_iff_of_le_one +/- theorem Fintype.prod_eq_one_iff_of_one_le 2024-01-01 07:00:57 0c9d411 chore: Generalise monotonicity of multiplication lemmas to semirings (#9369) Many lemmas about `BlahOrderedRing α` did not mention negation. I could generalise almost all those lemmas to `BlahOrderedSemiring α` + `ExistsAddOfLE α` except for a series of five lemmas (left a TODO about them). Now those lemmas apply to things like the naturals. This is not very useful on its own, because those lemmas are trivially true on canonically ordered semirings (they are about multiplication by negative elements, of which there are none, or nonnegativity of squares, but we already know everything is nonnegative), except that I will soon add more complicated inequalities that are based on those, and it would be a shame having to write two versions of each: one for ordered rings, one for canonically ordered semirings. A similar refactor could be made for scalar multiplication, but this PR is big enough already. From LeanAPAP ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Divisibility/Basic.lean + theorem dvd_pow + theorem dvd_pow_self + theorem pow_dvd_pow Modified Mathlib/Algebra/FreeMonoid/Basic.lean Modified Mathlib/Algebra/GroupPower/Basic.lean - theorem dvd_pow - theorem dvd_pow_self - def powMonoidHom - theorem pow_dvd_pow - def zpowGroupHom Added Mathlib/Algebra/GroupPower/Hom.lean + def powMonoidHom + def zpowGroupHom Modified Mathlib/Algebra/GroupPower/Order.lean - theorem sq_nonneg +/- theorem sq_pos_of_pos - theorem two_mul_le_add_sq Modified Mathlib/Algebra/GroupPower/Ring.lean Modified Mathlib/Algebra/Order/Monoid/MinMax.lean + theorem fn_max_mul_fn_min +/- theorem fn_min_mul_fn_max + theorem max_mul_min +/- theorem min_mul_max Modified Mathlib/Algebra/Order/Ring/Canonical.lean - theorem add_sq_le - theorem mul_add_mul_le_mul_add_mul' - theorem mul_add_mul_le_mul_add_mul - theorem mul_add_mul_lt_mul_add_mul' - theorem mul_add_mul_lt_mul_add_mul Modified Mathlib/Algebra/Order/Ring/Defs.lean + theorem add_sq_le +/- theorem eq_zero_of_mul_self_add_mul_self_eq_zero +/- theorem le_iff_exists_nonneg_add +/- theorem max_mul_mul_le_max_mul_max + theorem mul_add_mul_le_mul_add_mul' + theorem mul_add_mul_le_mul_add_mul + theorem mul_add_mul_lt_mul_add_mul' + theorem mul_add_mul_lt_mul_add_mul +/- theorem mul_neg_iff +/- theorem mul_nonpos_iff +/- theorem mul_self_add_mul_self_eq_zero +/- theorem mul_self_le_mul_self_of_le_of_neg_le +/- theorem mul_self_nonneg +/- theorem neg_one_lt_zero + theorem sq_nonneg +/- theorem sub_one_lt + theorem two_mul_le_add_sq Modified Mathlib/Algebra/Ring/Idempotents.lean Modified Mathlib/Data/Int/Cast/Lemmas.lean Modified Mathlib/Data/Multiset/Bind.lean Modified Mathlib/Data/Set/Pointwise/Basic.lean 2024-01-01 07:00:56 bded32a feat(FieldTheory/SeparableClosure): (relative) separable closure (#9338) Main definitions: - `separableClosure`: the (relative) separable closure of `E / F`, or called maximal separable subextension of `E / F`, is defined to be the intermediate field of `E / F` consisting of all separable elements. - `Field.sepDegree F E`: the (infinite) separable degree `[E:F]_s` of an algebraic extension `E / F` of fields, defined to be the degree of `separableClosure F E / F`. - `Field.insepDegree F E`: the (infinite) inseparable degree `[E:F]_i` of an algebraic extension `E / F` of fields, defined to be the degree of `E / separableClosure F E`. - `Field.finInsepDegree F E`: the (finite) inseparable degree `[E:F]_i` of an algebraic extension `E / F` of fields, defined to be the degree of `E / separableClosure F E` as a natural number. It is zero if such field extension is not finite. Main results: - `le_separableClosure_iff`: an intermediate field of `E / F` is contained in the (relative) separable closure of `E / F` if and only if it is separable over `F`. - `separableClosure.normalClosure_eq_self`: the normal closure of the (relative) separable closure of `E / F` is equal to itself. - `separableClosure.normal`: the (relative) separable closure of a normal extension is normal. - `separableClosure.isSepClosure`: the (relative) separable closure of a separably closed extension is a separable closure of the base field. - `IntermediateField.isSeparable_adjoin_iff_separable`: `F(S) / F` is a separable extension if and only if all elements of `S` are separable elements. - `separableClosure.eq_top_iff`: the (relative) separable closure of `E / F` is equal to `E` if and only if `E / F` is separable. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/FieldTheory/Adjoin.lean Modified Mathlib/FieldTheory/IsAlgClosed/Basic.lean + theorem IntermediateField.eq_bot_of_isAlgClosed_of_isAlgebraic Modified Mathlib/FieldTheory/IsSepClosed.lean + theorem IntermediateField.eq_bot_of_isSepClosed_of_isSeparable Added Mathlib/FieldTheory/SeparableClosure.lean + def Field.finInsepDegree + theorem Field.finInsepDegree_def' + theorem Field.finInsepDegree_eq_of_equiv + theorem Field.finInsepDegree_self + def Field.insepDegree + theorem Field.insepDegree_eq_of_equiv + theorem Field.insepDegree_self + theorem Field.lift_insepDegree_eq_of_equiv + theorem Field.lift_sepDegree_eq_of_equiv + def Field.sepDegree + theorem Field.sepDegree_eq_of_equiv + theorem Field.sepDegree_mul_insepDegree + theorem Field.sepDegree_self + theorem IntermediateField.finInsepDegree_bot' + theorem IntermediateField.finInsepDegree_bot + theorem IntermediateField.finInsepDegree_top + theorem IntermediateField.insepDegree_bot' + theorem IntermediateField.insepDegree_bot + theorem IntermediateField.insepDegree_top + theorem IntermediateField.isSeparable_adjoin_iff_separable + theorem IntermediateField.lift_insepDegree_bot' + theorem IntermediateField.lift_sepDegree_bot' + theorem IntermediateField.sepDegree_bot' + theorem IntermediateField.sepDegree_bot + theorem IntermediateField.sepDegree_top + theorem IsSepClosed.separableClosure_eq_bot_iff + theorem le_separableClosure' + theorem le_separableClosure + theorem le_separableClosure_iff + theorem map_mem_separableClosure_iff + theorem mem_separableClosure_iff + theorem separableClosure.adjoin_le + def separableClosure.algEquivOfAlgEquiv + theorem separableClosure.eq_comap_of_algHom + theorem separableClosure.eq_map_of_algEquiv + theorem separableClosure.eq_map_of_separableClosure_eq_bot + theorem separableClosure.eq_restrictScalars_of_isSeparable + theorem separableClosure.eq_top_iff + theorem separableClosure.isAlgebraic + theorem separableClosure.le_restrictScalars + theorem separableClosure.map_le_of_algHom + theorem separableClosure.normalClosure_eq_self + theorem separableClosure.separableClosure_eq_bot + def separableClosure Modified Mathlib/FieldTheory/SeparableDegree.lean + theorem Polynomial.Separable.comap_minpoly_of_isSeparable 2024-01-01 07:00:55 f3a2680 feat(AlgebraicGeometry/PrimeSpectrum/*) : the collection of minimal prime ideals of a Noetherian ring is finite (#9088) Co-PR : #9087 (maximal ideals of Artinian ring are finite) ESTIMATED CHANGES Modified Mathlib/AlgebraicGeometry/PrimeSpectrum/Basic.lean + theorem PrimeSpectrum.vanishingIdeal_irreducibleComponents + theorem PrimeSpectrum.vanishingIdeal_isClosed_isIrreducible + theorem PrimeSpectrum.vanishingIdeal_isIrreducible + theorem PrimeSpectrum.vanishingIdeal_mem_minimalPrimes + theorem PrimeSpectrum.zeroLocus_ideal_mem_irreducibleComponents + theorem PrimeSpectrum.zeroLocus_minimalPrimes Modified Mathlib/AlgebraicGeometry/PrimeSpectrum/Noetherian.lean + theorem minimalPrimes.finite_of_isNoetherianRing Modified Mathlib/RingTheory/Ideal/MinimalPrime.lean + theorem minimalPrimes_eq_minimals 2024-01-01 05:58:55 37c36be feat(Data/Finset/Card): bounds on cardinalities of explicit finsets (#9362) ESTIMATED CHANGES Modified Mathlib/Data/Finset/Card.lean + theorem Finset.card_le_five + theorem Finset.card_le_four + theorem Finset.card_le_six + theorem Finset.card_le_three + theorem Finset.card_le_two 2023-12-31 21:44:50 7d31d03 feat: Fin CharP and lemmas for Fin rollover (#9033) ESTIMATED CHANGES Modified Mathlib/Algebra/CharP/Basic.lean Modified Mathlib/Data/Fin/Basic.lean + theorem Fin.add_one_le_of_lt + theorem Fin.exists_eq_add_of_le + theorem Fin.exists_eq_add_of_lt + theorem Fin.neg_last + theorem Fin.neg_nat_cast_eq_one + theorem Fin.pos_of_ne_zero 2023-12-31 14:56:38 a59d013 chore(Algebra.Module.LocalizedModule): use `IsLocalization` instead of `Localization` (#9167) The construction of `LocalizedModule` is done using `IsLocalization` rather than `Localization`. The corresponding instances for `Localization` are deduced automatically by Lean. One drawback is that many instances are now marked `noncomputable`. ESTIMATED CHANGES Modified Mathlib/Algebra/Module/LocalizedModule.lean + theorem LocalizedModule.algebraMap_mk' + theorem LocalizedModule.mk'_smul_mk + theorem LocalizedModule.mul_smul' + theorem LocalizedModule.smul'_mul + theorem LocalizedModule.smul_def Modified Mathlib/GroupTheory/MonoidLocalization.lean + theorem Submonoid.LocalizationMap.mk'_cancel Modified Mathlib/RingTheory/Localization/Basic.lean + theorem IsLocalization.mk'_cancel 2023-12-31 11:54:35 aa6b836 feat(MeasureTheory): log-likelihood ratio of two measures (#9355) Define the log-likelihood ratio between measures `μ` and `ν`: this is the function `x ↦ log (μ.rnDeriv ν x).toReal`. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/MeasureTheory/Measure/LogLikelihoodRatio.lean + theorem MeasureTheory.exp_llr + theorem MeasureTheory.exp_llr_of_ac' + theorem MeasureTheory.exp_llr_of_ac + theorem MeasureTheory.exp_neg_llr' + theorem MeasureTheory.exp_neg_llr + theorem MeasureTheory.integrable_llr_tilted_left + theorem MeasureTheory.integrable_llr_tilted_right + theorem MeasureTheory.integral_llr_tilted_left + theorem MeasureTheory.integral_llr_tilted_right + theorem MeasureTheory.llr_def + theorem MeasureTheory.llr_smul_left + theorem MeasureTheory.llr_smul_right + theorem MeasureTheory.llr_tilted_left + theorem MeasureTheory.llr_tilted_right + theorem MeasureTheory.measurable_llr + theorem MeasureTheory.neg_llr + theorem MeasureTheory.stronglyMeasurable_llr 2023-12-31 10:00:31 b9715de chore: remove duplicate prodPrimeFactors_apply_of_ne_zero (#9366) ESTIMATED CHANGES Modified Mathlib/NumberTheory/ArithmeticFunction.lean - theorem Nat.ArithmeticFunction.prodPrimeFactors_apply_of_ne_zero 2023-12-30 21:45:05 3694e27 chore(*): drop `$`/`<|` before `fun` (#9361) Subset of #9319 ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/NonUnitalSubalgebra.lean Modified Mathlib/Algebra/Algebra/Subalgebra/Basic.lean Modified Mathlib/Algebra/Associated.lean Modified Mathlib/Algebra/BigOperators/Associated.lean Modified Mathlib/Algebra/BigOperators/Basic.lean Modified Mathlib/Algebra/Category/GroupCat/Colimits.lean Modified Mathlib/Algebra/Category/GroupCat/Kernels.lean Modified Mathlib/Algebra/Category/ModuleCat/ChangeOfRings.lean Modified Mathlib/Algebra/Category/MonCat/Colimits.lean Modified Mathlib/Algebra/Category/Ring/Colimits.lean Modified Mathlib/Algebra/GCDMonoid/Finset.lean Modified Mathlib/Algebra/GCDMonoid/Multiset.lean Modified Mathlib/Algebra/GradedMonoid.lean Modified Mathlib/Algebra/Group/Equiv/Basic.lean Modified Mathlib/Algebra/Group/Pi.lean Modified Mathlib/Algebra/GroupWithZero/Basic.lean Modified Mathlib/Algebra/GroupWithZero/InjSurj.lean Modified Mathlib/Algebra/Module/Submodule/Pointwise.lean Modified Mathlib/Algebra/MonoidAlgebra/Basic.lean Modified Mathlib/Algebra/Order/Module/OrderedSMul.lean Modified Mathlib/Algebra/Order/Monovary.lean Modified Mathlib/Algebra/Order/Ring/WithTop.lean Modified Mathlib/Algebra/Ring/CentroidHom.lean Modified Mathlib/Algebra/RingQuot.lean Modified Mathlib/Algebra/SMulWithZero.lean +/- theorem left_ne_zero_of_smul Modified Mathlib/AlgebraicTopology/SimplexCategory.lean Modified Mathlib/AlgebraicTopology/SimplicialObject.lean Modified Mathlib/Analysis/Calculus/ContDiff/Basic.lean Modified Mathlib/Analysis/Calculus/MeanValue.lean Modified Mathlib/Analysis/Complex/CauchyIntegral.lean Modified Mathlib/Analysis/Matrix.lean Modified Mathlib/Analysis/Normed/Field/InfiniteSum.lean Modified Mathlib/Analysis/SpecialFunctions/Bernstein.lean Modified Mathlib/CategoryTheory/Extensive.lean Modified Mathlib/CategoryTheory/Limits/VanKampen.lean Modified Mathlib/CategoryTheory/PathCategory.lean Modified Mathlib/Combinatorics/Partition.lean Modified Mathlib/Combinatorics/Pigeonhole.lean Modified Mathlib/Combinatorics/SetFamily/FourFunctions.lean +/- theorem collapse_nonneg Modified Mathlib/Combinatorics/SetFamily/Shatter.lean Modified Mathlib/Combinatorics/SimpleGraph/Basic.lean Modified Mathlib/Computability/AkraBazzi/AkraBazzi.lean Modified Mathlib/Computability/Primrec.lean Modified Mathlib/Control/EquivFunctor.lean Modified Mathlib/Control/Functor.lean Modified Mathlib/Data/Fin/Tuple/NatAntidiagonal.lean Modified Mathlib/Data/Finmap.lean Modified Mathlib/Data/Finset/Basic.lean Modified Mathlib/Data/Finset/Powerset.lean Modified Mathlib/Data/Finsupp/Multiset.lean Modified Mathlib/Data/Fintype/Basic.lean Modified Mathlib/Data/Fintype/Pi.lean Modified Mathlib/Data/FunLike/Equiv.lean Modified Mathlib/Data/List/Defs.lean Modified Mathlib/Data/List/Forall2.lean Modified Mathlib/Data/List/Prime.lean Modified Mathlib/Data/List/Sublists.lean Modified Mathlib/Data/Matrix/Basic.lean Modified Mathlib/Data/Matroid/Basic.lean Modified Mathlib/Data/Matroid/IndepAxioms.lean Modified Mathlib/Data/Multiset/Antidiagonal.lean Modified Mathlib/Data/Multiset/Basic.lean Modified Mathlib/Data/Multiset/Nodup.lean Modified Mathlib/Data/Nat/Digits.lean Modified Mathlib/Data/PFun.lean Modified Mathlib/Data/Real/CauSeq.lean Modified Mathlib/Data/Real/EReal.lean Modified Mathlib/Data/Real/Hyperreal.lean Modified Mathlib/Data/Semiquot.lean Modified Mathlib/Data/Set/Basic.lean Modified Mathlib/Data/Set/Finite.lean Modified Mathlib/Data/Set/Function.lean Modified Mathlib/Data/Set/Lattice.lean Modified Mathlib/Data/Set/List.lean Modified Mathlib/Data/Set/Prod.lean Modified Mathlib/Data/Sigma/Lex.lean Modified Mathlib/Data/TypeVec.lean Modified Mathlib/FieldTheory/Fixed.lean Modified Mathlib/FieldTheory/IsSepClosed.lean Modified Mathlib/FieldTheory/Perfect.lean Modified Mathlib/FieldTheory/SeparableDegree.lean Modified Mathlib/Geometry/Euclidean/Inversion/ImageHyperplane.lean Modified Mathlib/Geometry/Euclidean/PerpBisector.lean Modified Mathlib/GroupTheory/Congruence.lean Modified Mathlib/GroupTheory/GroupAction/DomAct/Basic.lean Modified Mathlib/GroupTheory/OrderOfElement.lean Modified Mathlib/GroupTheory/Perm/Basic.lean Modified Mathlib/GroupTheory/PushoutI.lean Modified Mathlib/GroupTheory/Transfer.lean Modified Mathlib/Init/Data/List/Instances.lean Modified Mathlib/Lean/Expr/Traverse.lean Modified Mathlib/LinearAlgebra/BilinearForm/Basic.lean Modified Mathlib/LinearAlgebra/CliffordAlgebra/Conjugation.lean Modified Mathlib/LinearAlgebra/DFinsupp.lean Modified Mathlib/LinearAlgebra/Eigenspace/Basic.lean Modified Mathlib/LinearAlgebra/InvariantBasisNumber.lean Modified Mathlib/LinearAlgebra/Matrix/PosDef.lean Modified Mathlib/LinearAlgebra/Matrix/Spectrum.lean Modified Mathlib/LinearAlgebra/QuadraticForm/Basic.lean Modified Mathlib/LinearAlgebra/QuadraticForm/Prod.lean Modified Mathlib/LinearAlgebra/TensorAlgebra/Basis.lean Modified Mathlib/LinearAlgebra/TensorProduct/RightExactness.lean Modified Mathlib/LinearAlgebra/TensorProduct/Tower.lean Modified Mathlib/Logic/Function/Basic.lean Modified Mathlib/Logic/Relator.lean Modified Mathlib/Mathport/Notation.lean Modified Mathlib/MeasureTheory/Function/AEEqFun.lean Modified Mathlib/MeasureTheory/Function/LpSpace.lean Modified Mathlib/MeasureTheory/Group/Measure.lean Modified Mathlib/MeasureTheory/Integral/IntegralEqImproper.lean Modified Mathlib/MeasureTheory/Integral/MeanInequalities.lean Modified Mathlib/NumberTheory/BernoulliPolynomials.lean Modified Mathlib/NumberTheory/NumberField/Embeddings.lean Modified Mathlib/NumberTheory/Padics/PadicNumbers.lean Modified Mathlib/NumberTheory/SmoothNumbers.lean Modified Mathlib/NumberTheory/SumPrimeReciprocals.lean Modified Mathlib/Order/Closure.lean Modified Mathlib/Order/CompleteLattice.lean Modified Mathlib/Order/Filter/Bases.lean Modified Mathlib/Order/Filter/Basic.lean Modified Mathlib/Order/Filter/Germ.lean Modified Mathlib/Order/Iterate.lean Modified Mathlib/Order/Lattice.lean Modified Mathlib/Order/Minimal.lean Modified Mathlib/Order/OmegaCompletePartialOrder.lean Modified Mathlib/Order/RelSeries.lean Modified Mathlib/Order/Sublattice.lean Modified Mathlib/Order/SupClosed.lean Modified Mathlib/Order/WellFoundedSet.lean Modified Mathlib/Probability/Kernel/Basic.lean Modified Mathlib/Probability/Kernel/Disintegration.lean Modified Mathlib/RepresentationTheory/GroupCohomology/Hilbert90.lean Modified Mathlib/RingTheory/DedekindDomain/Different.lean Modified Mathlib/RingTheory/TensorProduct.lean Modified Mathlib/SetTheory/Game/PGame.lean Modified Mathlib/Tactic/ApplyCongr.lean Modified Mathlib/Tactic/Linarith/Datatypes.lean Modified Mathlib/Tactic/Linarith/Elimination.lean Modified Mathlib/Tactic/Linarith/Parsing.lean Modified Mathlib/Tactic/Linarith/Preprocessing.lean Modified Mathlib/Tactic/ReduceModChar.lean Modified Mathlib/Tactic/ToAdditive.lean Modified Mathlib/Tactic/WLOG.lean Modified Mathlib/Testing/SlimCheck/Functions.lean Modified Mathlib/Testing/SlimCheck/Testable.lean Modified Mathlib/Topology/AlexandrovDiscrete.lean +/- theorem subset_exterior Modified Mathlib/Topology/Algebra/GroupWithZero.lean Modified Mathlib/Topology/Algebra/Order/Compact.lean Modified Mathlib/Topology/Algebra/Order/Floor.lean Modified Mathlib/Topology/Algebra/UniformGroup.lean Modified Mathlib/Topology/Basic.lean Modified Mathlib/Topology/Category/TopCat/Limits/Basic.lean Modified Mathlib/Topology/Compactness/Compact.lean Modified Mathlib/Topology/Connected/LocallyConnected.lean Modified Mathlib/Topology/Constructions.lean Modified Mathlib/Topology/ContinuousOn.lean Modified Mathlib/Topology/EMetricSpace/Basic.lean Modified Mathlib/Topology/Homeomorph.lean Modified Mathlib/Topology/LocallyConstant/Basic.lean Modified Mathlib/Topology/MetricSpace/Algebra.lean Modified Mathlib/Topology/MetricSpace/Basic.lean Modified Mathlib/Topology/MetricSpace/Dilation.lean Modified Mathlib/Topology/NoetherianSpace.lean Modified Mathlib/Topology/Order/ScottTopology.lean Modified Mathlib/Topology/PartialHomeomorph.lean Modified Mathlib/Topology/UniformSpace/Basic.lean Modified Mathlib/Topology/UniformSpace/Equiv.lean Modified Mathlib/Topology/UniformSpace/UniformConvergence.lean Modified Mathlib/Util/Delaborators.lean Modified test/Traversable.lean 2023-12-30 19:16:20 ba4be74 feat: Kummer extensions are cyclic. (#9119) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Group/Units/Hom.lean + theorem Units.map_injective Modified Mathlib/Data/Polynomial/RingDivision.lean + theorem Polynomial.nthRoots_zero_right Added Mathlib/FieldTheory/KummerExtension.lean + def AdjoinRootXPowSubCEquivToRootsOfUnity + theorem Algebra.adjoin_root_eq_top_of_isSplittingField + theorem IntermediateField.adjoin_root_eq_top_of_isSplittingField + theorem Polynomial.separable_X_pow_sub_C_of_irreducible + theorem X_pow_sub_C_eq_prod + theorem X_pow_sub_C_splits_of_isPrimitiveRoot + def adjoinRootXPowSubCEquiv + theorem adjoinRootXPowSubCEquiv_root + theorem adjoinRootXPowSubCEquiv_symm_eq_root + def autAdjoinRootXPowSubC + def autAdjoinRootXPowSubCEquiv + theorem autAdjoinRootXPowSubCEquiv_root + theorem autAdjoinRootXPowSubCEquiv_symm_smul + def autAdjoinRootXPowSubCHom + theorem autAdjoinRootXPowSubC_root + def autEquivRootsOfUnity + theorem autEquivRootsOfUnity_apply_rootOfSplit + theorem autEquivRootsOfUnity_smul + def autEquivZmod + theorem autEquivZmod_symm_apply_intCast + theorem autEquivZmod_symm_apply_natCast + theorem finrank_of_isSplittingField_X_pow_sub_C + theorem isCyclic_of_isSplittingField_X_pow_sub_C + theorem isGalois_of_isSplittingField_X_pow_sub_C + theorem isSplittingField_AdjoinRoot_X_pow_sub_C + theorem ne_zero_of_irreducible_X_pow_sub_C' + theorem ne_zero_of_irreducible_X_pow_sub_C + theorem rootOfSplitsXPowSubC_pow + theorem root_X_pow_sub_C_eq_zero_iff + theorem root_X_pow_sub_C_ne_zero' + theorem root_X_pow_sub_C_ne_zero + theorem root_X_pow_sub_C_ne_zero_iff + theorem root_X_pow_sub_C_pow Modified Mathlib/GroupTheory/Subgroup/Basic.lean + theorem MulEquiv.subgroupCongr_apply + theorem MulEquiv.subgroupCongr_symm_apply Modified Mathlib/RingTheory/Polynomial/Cyclotomic/Basic.lean Modified Mathlib/RingTheory/Polynomial/Cyclotomic/Roots.lean Modified Mathlib/RingTheory/RootsOfUnity/Basic.lean + theorem IsPrimitiveRoot.card_nthRoots + theorem IsPrimitiveRoot.card_nthRoots_one + theorem IsPrimitiveRoot.injOn_pow + theorem IsPrimitiveRoot.injOn_pow_mul + theorem IsPrimitiveRoot.isUnit_unit' + theorem IsPrimitiveRoot.isUnit_unit + theorem IsPrimitiveRoot.map_rootsOfUnity + theorem IsPrimitiveRoot.nthRoots_eq +/- theorem IsPrimitiveRoot.nthRoots_nodup + theorem IsPrimitiveRoot.nthRoots_one_nodup + def rootsOfUnityEquivOfPrimitiveRoots + theorem rootsOfUnityEquivOfPrimitiveRoots_symm_apply Modified docs/references.bib 2023-12-30 16:32:38 b13975c chore(AlgebraicTopology/SimplicialSet): add delaborator (#9358) add delaborator for standard simplex and horn notation ESTIMATED CHANGES Modified Mathlib/AlgebraicTopology/SimplicialSet.lean 2023-12-30 16:05:21 d641c68 feat(AlgebraicTopology): definition of Kan complex and quasicategory (#9357) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/AlgebraicTopology/KanComplex.lean Added Mathlib/AlgebraicTopology/Quasicategory.lean + theorem SSet.Quasicategory.hornFilling 2023-12-30 06:21:32 3286bea chore(Topology/CompactOpen): rename type variables (#9328) Use `X`, `Y`, `Z` instead of `α`, `β`, `γ` for topological spaces. ESTIMATED CHANGES Modified Mathlib/Topology/CompactOpen.lean +/- def ContinuousMap.CompactOpen.gen +/- theorem ContinuousMap.coe_const' +/- def ContinuousMap.coev +/- theorem ContinuousMap.compactOpen_eq +/- theorem ContinuousMap.compactOpen_le_induced +/- def ContinuousMap.const' +/- theorem ContinuousMap.continuous.comp' +/- theorem ContinuousMap.continuous_coe +/- theorem ContinuousMap.continuous_coev +/- theorem ContinuousMap.continuous_comp' +/- theorem ContinuousMap.continuous_comp +/- theorem ContinuousMap.continuous_comp_left +/- theorem ContinuousMap.continuous_compactOpen +/- theorem ContinuousMap.continuous_const' +/- theorem ContinuousMap.continuous_curry' +/- theorem ContinuousMap.continuous_curry +/- theorem ContinuousMap.continuous_eval +/- theorem ContinuousMap.continuous_eval_const +/- theorem ContinuousMap.continuous_of_continuous_uncurry +/- theorem ContinuousMap.continuous_restrict +/- theorem ContinuousMap.continuous_uncurry +/- theorem ContinuousMap.continuous_uncurry_of_continuous +/- def ContinuousMap.curry' +/- def ContinuousMap.curry +/- theorem ContinuousMap.curry_apply +/- theorem ContinuousMap.embedding_comp +/- theorem ContinuousMap.eventually_mapsTo +/- theorem ContinuousMap.exists_tendsto_compactOpen_iff_forall +/- theorem ContinuousMap.gen_empty +/- theorem ContinuousMap.gen_empty_right +/- theorem ContinuousMap.gen_inter +/- theorem ContinuousMap.gen_union +/- theorem ContinuousMap.gen_univ +/- theorem ContinuousMap.image_coev +/- theorem ContinuousMap.inducing_comp +/- theorem ContinuousMap.isClopen_setOf_mapsTo +/- theorem ContinuousMap.isClosed_setOf_mapsTo +/- theorem ContinuousMap.isOpen_setOf_mapsTo +/- theorem ContinuousMap.nhds_compactOpen_eq_sInf_nhds_induced +/- theorem ContinuousMap.tendsto_compactOpen_iff_forall +/- theorem ContinuousMap.tendsto_compactOpen_restrict +/- theorem ContinuousMap.tendsto_nhds_compactOpen +/- def ContinuousMap.uncurry +/- def Homeomorph.continuousMapOfUnique +/- theorem Homeomorph.continuousMapOfUnique_apply +/- theorem Homeomorph.continuousMapOfUnique_symm_apply +/- def Homeomorph.curry 2023-12-30 05:21:35 d54b614 feat(*/Pointwise): generalize some lemmas to `SMulZeroClass` (#9243) ESTIMATED CHANGES Modified Mathlib/Data/Finset/Pointwise.lean +/- theorem Finset.Nonempty.smul_zero +/- theorem Finset.smul_zero_subset +/- theorem Finset.zero_mem_smul_finset +/- theorem Finset.zero_mem_smul_finset_iff Modified Mathlib/Data/Set/Pointwise/SMul.lean +/- theorem Set.zero_mem_smul_set 2023-12-30 03:42:52 f656e60 chore: Move misplaced lemmas in `Mathlib/LinearAlgebra/FreeModule/Finite/Rank.lean`. (#9301) ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/FreeModule/Finite/Rank.lean - theorem Module.Finite.span_of_finite - theorem Submodule.fg_iff_finite Modified Mathlib/RingTheory/Finiteness.lean + theorem Module.Finite.iff_fg + theorem Module.Finite.span_of_finite 2023-12-30 03:42:51 7392ea7 chore: deduplicate `LinearIndependent.set_finite_of_isNoetherian` (#9300) Also moved several lemmas into `Mathlib/LinearAlgebra/Basis.lean`. ESTIMATED CHANGES Modified Mathlib/FieldTheory/Finiteness.lean Modified Mathlib/LinearAlgebra/Basis.lean + theorem basis_finite_of_finite_spans + theorem infinite_basis_le_maximal_linearIndependent' + theorem infinite_basis_le_maximal_linearIndependent + theorem union_support_maximal_linearIndependent_eq_range_basis Modified Mathlib/LinearAlgebra/Dimension.lean - theorem LinearIndependent.finite_of_isNoetherian - theorem LinearIndependent.set_finite_of_isNoetherian - theorem basis_finite_of_finite_spans - theorem infinite_basis_le_maximal_linearIndependent' - theorem infinite_basis_le_maximal_linearIndependent - theorem union_support_maximal_linearIndependent_eq_range_basis Modified Mathlib/LinearAlgebra/FiniteDimensional.lean Modified Mathlib/RingTheory/Noetherian.lean + theorem LinearIndependent.finite_of_isNoetherian + theorem LinearIndependent.set_finite_of_isNoetherian - theorem finite_of_linearIndependent 2023-12-30 02:51:00 d8b7c07 chore: rename `IsScalarTower.of_ring_hom` (#9330) It's about `AlgHom` not `RingHom`. ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/Tower.lean Modified Mathlib/NumberTheory/Cyclotomic/Basic.lean 2023-12-30 02:50:59 42060a2 chore: reduce imports in Mathlib.RingTheory.Noetherian (#9322) ESTIMATED CHANGES Modified Mathlib/RingTheory/Filtration.lean Modified Mathlib/RingTheory/Noetherian.lean 2023-12-30 02:31:11 b060d4a chore(Data/Fintype/Fin): golf a proof (#9336) We already have it for `Set.range`. ESTIMATED CHANGES Modified Mathlib/Data/Fintype/Fin.lean +/- theorem Fin.Iio_last_eq_map +/- theorem Fin.Ioi_zero_eq_map 2023-12-29 07:09:09 e04a464 style: use `cases x with | ...` instead of `cases x; case => ...` (#9321) This converts usages of the pattern ```lean cases h case inl h' => ... case inr h' => ... ``` which derive from mathported code, to the "structured `cases`" syntax: ```lean cases h with | inl h' => ... | inr h' => ... ``` The case where the subgoals are handled with `·` instead of `case` is more contentious (and much more numerous) so I left those alone. This pattern also appears with `cases'`, `induction`, `induction'`, and `rcases`. Furthermore, there is a similar transformation for `by_cases`: ```lean by_cases h : cond case pos => ... case neg => ... ``` is replaced by: ```lean if h : cond then ... else ... ``` ESTIMATED CHANGES Modified Archive/Arithcc.lean +/- theorem Arithcc.compiler_correctness Modified Archive/Imo/Imo1962Q1.lean Modified Mathlib/Algebra/Associated.lean Modified Mathlib/Algebra/CharP/ExpChar.lean Modified Mathlib/Algebra/ContinuedFractions/Computation/Approximations.lean Modified Mathlib/Algebra/ContinuedFractions/Computation/TerminatesIffRat.lean Modified Mathlib/Algebra/ContinuedFractions/ConvergentsEquiv.lean Modified Mathlib/Algebra/ContinuedFractions/TerminatedStable.lean Modified Mathlib/Algebra/FreeAlgebra.lean Modified Mathlib/Algebra/GroupPower/Lemmas.lean Modified Mathlib/Algebra/Lie/Free.lean Modified Mathlib/Algebra/Module/LinearMap.lean Modified Mathlib/Analysis/Calculus/Deriv/Polynomial.lean Modified Mathlib/Analysis/Convex/SpecificFunctions/Pow.lean Modified Mathlib/Analysis/SpecialFunctions/Log/Basic.lean Modified Mathlib/Analysis/SpecialFunctions/Pow/NNReal.lean Modified Mathlib/CategoryTheory/Limits/ConcreteCategory.lean Modified Mathlib/CategoryTheory/Limits/Final.lean Modified Mathlib/Computability/AkraBazzi/AkraBazzi.lean Modified Mathlib/Computability/AkraBazzi/GrowsPolynomially.lean Modified Mathlib/Computability/Halting.lean Modified Mathlib/Computability/PartrecCode.lean +/- theorem Nat.Partrec.Code.evaln_complete +/- theorem Nat.Partrec.Code.exists_code Modified Mathlib/Computability/Primrec.lean Modified Mathlib/Computability/RegularExpressions.lean Modified Mathlib/Computability/TMToPartrec.lean Modified Mathlib/Computability/TuringMachine.lean Modified Mathlib/Control/Fold.lean Modified Mathlib/Data/List/BigOperators/Basic.lean Modified Mathlib/Data/List/EditDistance/Defs.lean Modified Mathlib/Data/List/Func.lean Modified Mathlib/Data/List/Perm.lean Modified Mathlib/Data/List/Sublists.lean Modified Mathlib/Data/Multiset/Basic.lean Modified Mathlib/Data/Multiset/Bind.lean Modified Mathlib/Data/Multiset/Functor.lean Modified Mathlib/Data/Multiset/Sections.lean Modified Mathlib/Data/MvPolynomial/Basic.lean Modified Mathlib/Data/Nat/Choose/Sum.lean Modified Mathlib/Data/Nat/Factorization/Basic.lean Modified Mathlib/Data/Nat/ForSqrt.lean Modified Mathlib/Data/Nat/GCD/Basic.lean Modified Mathlib/Data/Num/Lemmas.lean Modified Mathlib/Data/QPF/Multivariate/Constructions/Cofix.lean Modified Mathlib/Data/QPF/Multivariate/Constructions/Fix.lean Modified Mathlib/Data/QPF/Univariate/Basic.lean Modified Mathlib/Data/Set/Enumerate.lean Modified Mathlib/Data/Stream/Init.lean Modified Mathlib/Data/TypeVec.lean Modified Mathlib/Data/Vector/Basic.lean Modified Mathlib/Data/Vector/MapLemmas.lean Modified Mathlib/Data/Vector/Snoc.lean Modified Mathlib/Deprecated/Submonoid.lean Modified Mathlib/FieldTheory/PerfectClosure.lean Modified Mathlib/GroupTheory/Coprod/Basic.lean Modified Mathlib/GroupTheory/FreeGroup/Basic.lean +/- theorem FreeGroup.reduce.not Modified Mathlib/Init/Data/Nat/Bitwise.lean Modified Mathlib/Init/Data/Nat/Lemmas.lean Modified Mathlib/Init/Order/Defs.lean Modified Mathlib/LinearAlgebra/CliffordAlgebra/Conjugation.lean Modified Mathlib/LinearAlgebra/CliffordAlgebra/Equivs.lean Modified Mathlib/LinearAlgebra/CliffordAlgebra/EvenEquiv.lean Modified Mathlib/Logic/Denumerable.lean Modified Mathlib/Logic/Hydra.lean Modified Mathlib/Logic/Relation.lean Modified Mathlib/MeasureTheory/Constructions/BorelSpace/Basic.lean Modified Mathlib/MeasureTheory/Integral/Marginal.lean Modified Mathlib/MeasureTheory/Integral/MeanInequalities.lean Modified Mathlib/ModelTheory/Satisfiability.lean Modified Mathlib/ModelTheory/Ultraproducts.lean Modified Mathlib/Order/Atoms.lean Modified Mathlib/Order/Chain.lean Modified Mathlib/Order/CompleteBooleanAlgebra.lean Modified Mathlib/Order/Filter/Basic.lean Modified Mathlib/RingTheory/Int/Basic.lean Modified Mathlib/RingTheory/PrincipalIdealDomain.lean Modified Mathlib/Topology/Connected/Basic.lean Modified Mathlib/Topology/EMetricSpace/Basic.lean Modified Mathlib/Topology/Irreducible.lean Modified Mathlib/Topology/List.lean Modified Mathlib/Topology/Order/LowerUpperTopology.lean 2023-12-29 07:09:08 b8c9740 feat(Topology): clopen subsets of products of compact spaces are unions of clopen boxes (#8678) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Topology/ClopenBox.lean + theorem TopologicalSpace.Clopens.exists_finset_eq_sup_prod + theorem TopologicalSpace.Clopens.exists_prod_subset + theorem TopologicalSpace.Clopens.surjective_finset_sup_prod Modified Mathlib/Topology/CompactOpen.lean + theorem ContinuousMap.isClopen_setOf_mapsTo + theorem ContinuousMap.isClosed_setOf_mapsTo Modified Mathlib/Topology/Constructions.lean + theorem IsClosed.setOf_mapsTo Modified Mathlib/Topology/Sets/Closeds.lean + theorem TopologicalSpace.Clopens.mem_mk Modified docs/references.bib 2023-12-29 06:46:33 8f17470 refactor(*): change definition of `Set.image2` etc (#9275) - Redefine `Set.image2` to use `∃ a ∈ s, ∃ b ∈ t, f a b = c` instead of `∃ a b, a ∈ s ∧ b ∈ t ∧ f a b = c`. - Redefine `Set.seq` as `Set.image2`. The new definition is equal to the old one but `rw [Set.seq]` gives a different result. - Redefine `Filter.map₂` to use `∃ u ∈ f, ∃ v ∈ g, image2 m u v ⊆ s` instead of `∃ u v, u ∈ f ∧ v ∈ g ∧ ...` - Update lemmas like `Set.mem_image2`, `Finset.mem_image₂`, `Set.mem_mul`, `Finset.mem_div` etc The two reasons to make the change are: - `∃ a ∈ s, ∃ b ∈ t, _` is a `simp`-normal form, and - it looks a bit nicer. ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/Tower.lean Modified Mathlib/Algebra/Group/UniqueProds.lean Modified Mathlib/Algebra/Module/Injective.lean Modified Mathlib/Algebra/Module/Submodule/Bilinear.lean Modified Mathlib/Algebra/Module/Submodule/Pointwise.lean Modified Mathlib/Algebra/Order/CompleteField.lean Modified Mathlib/Algebra/Pointwise/Stabilizer.lean Modified Mathlib/Analysis/Convex/Basic.lean Modified Mathlib/Analysis/Convex/Cone/Basic.lean Modified Mathlib/Analysis/Convex/Side.lean Modified Mathlib/Analysis/Convex/Star.lean Modified Mathlib/Analysis/Convex/Strict.lean Modified Mathlib/Analysis/Convolution.lean Modified Mathlib/Analysis/Normed/Group/AddTorsor.lean Modified Mathlib/Analysis/Normed/Group/Pointwise.lean Modified Mathlib/Analysis/NormedSpace/lpSpace.lean Modified Mathlib/Analysis/Seminorm.lean Modified Mathlib/Combinatorics/Additive/PluenneckeRuzsa.lean Modified Mathlib/Combinatorics/Additive/RuzsaCovering.lean Modified Mathlib/Computability/DFA.lean Modified Mathlib/Computability/Language.lean +/- theorem Language.mem_mul Modified Mathlib/Data/Finset/MulAntidiagonal.lean Modified Mathlib/Data/Finset/NAry.lean +/- theorem Finset.mem_image₂ Modified Mathlib/Data/Finset/NatDivisors.lean Modified Mathlib/Data/Finset/Pointwise.lean +/- theorem Finset.mem_div +/- theorem Finset.mem_mul +/- theorem Finset.mem_smul +/- theorem Finset.mem_vsub Modified Mathlib/Data/Set/Basic.lean + theorem Set.eq_of_forall_subset_iff Modified Mathlib/Data/Set/Lattice.lean +/- def Set.seq +/- theorem Set.seq_eq_image2 +/- theorem Set.seq_singleton +/- theorem Set.singleton_seq Modified Mathlib/Data/Set/NAry.lean +/- theorem Set.image2_mk_eq_prod +/- theorem Set.mem_image2 Modified Mathlib/Data/Set/Pointwise/Basic.lean +/- theorem Set.mem_div +/- theorem Set.mem_mul Modified Mathlib/Data/Set/Pointwise/BigOperators.lean Modified Mathlib/Data/Set/Pointwise/Interval.lean Modified Mathlib/Data/Set/Pointwise/ListOfFn.lean Modified Mathlib/Data/Set/Pointwise/SMul.lean +/- theorem Set.mem_smul +/- theorem Set.mem_vsub Modified Mathlib/Dynamics/OmegaLimit.lean Modified Mathlib/FieldTheory/KrullTopology.lean Modified Mathlib/Geometry/Manifold/ChartedSpace.lean Modified Mathlib/Geometry/Manifold/LocalInvariantProperties.lean Modified Mathlib/Geometry/Manifold/SmoothManifoldWithCorners.lean Modified Mathlib/GroupTheory/Complement.lean Modified Mathlib/GroupTheory/DoubleCoset.lean + theorem Doset.doset_eq_image2 +/- theorem Doset.mem_doset Modified Mathlib/GroupTheory/GroupAction/SubMulAction/Pointwise.lean +/- theorem SubMulAction.mem_mul Modified Mathlib/GroupTheory/QuotientGroup.lean Modified Mathlib/GroupTheory/Schreier.lean Modified Mathlib/GroupTheory/Subgroup/Pointwise.lean Modified Mathlib/GroupTheory/Submonoid/Pointwise.lean Modified Mathlib/LinearAlgebra/AffineSpace/AffineSubspace.lean Modified Mathlib/LinearAlgebra/TensorProduct.lean Modified Mathlib/MeasureTheory/Constructions/Prod/Basic.lean Modified Mathlib/MeasureTheory/Function/Jacobian.lean Modified Mathlib/MeasureTheory/Measure/Haar/Basic.lean Modified Mathlib/MeasureTheory/Measure/Haar/Unique.lean Modified Mathlib/Order/Filter/NAry.lean +/- theorem Filter.mem_map₂_iff Modified Mathlib/Order/Filter/Pointwise.lean +/- theorem Filter.mem_div +/- theorem Filter.mem_mul +/- theorem Filter.mem_smul +/- theorem Filter.mem_vsub Modified Mathlib/Probability/Kernel/Disintegration.lean Modified Mathlib/RingTheory/Adjoin/FG.lean Modified Mathlib/RingTheory/Adjoin/Tower.lean Modified Mathlib/RingTheory/HahnSeries.lean Modified Mathlib/RingTheory/Ideal/Norm.lean Modified Mathlib/Topology/Algebra/FilterBasis.lean Modified Mathlib/Topology/Algebra/Group/Basic.lean Modified Mathlib/Topology/Algebra/Monoid.lean Modified Mathlib/Topology/Algebra/Nonarchimedean/AdicTopology.lean Modified Mathlib/Topology/Algebra/Nonarchimedean/Bases.lean Modified Mathlib/Topology/Algebra/Nonarchimedean/Basic.lean Modified Mathlib/Topology/Algebra/UniformGroup.lean Modified Mathlib/Topology/Algebra/Valuation.lean Modified Mathlib/Topology/Bases.lean Modified Mathlib/Topology/EMetricSpace/Lipschitz.lean 2023-12-28 21:07:40 288b6c5 doc(FieldTheory/SeparableDegree): fix the formula in docstring (#9318) ESTIMATED CHANGES Modified Mathlib/FieldTheory/SeparableDegree.lean 2023-12-28 19:05:58 a58c4fe feat(NumberTheory/SumPrimeReciprocals): the sum of 1/p over primes p diverges (#9313) This adds the fact that `∑ p prime, 1/p` diverges. We follow the elementary proof due to Erdős given in "THE BOOK". See [here](https://leanprover.zulipchat.com/#narrow/stream/217875-Is-there-code-for-X.3F/topic/Sum.20over.201.2Fp.20diverges/near/409835682) on Zulip. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/NumberTheory/SumPrimeReciprocals.lean + theorem Nat.Primes.not_summable_one_div + theorem Nat.Primes.summable_rpow + theorem Nat.roughNumbersUpTo_card_le' + theorem not_summable_one_div_on_primes + theorem one_half_le_sum_primes_ge_one_div 2023-12-28 17:56:41 bf19b01 chore: remove `Name.isInternal'` in favour of `Name.isInternalDetail` (#9196) We can remove `Name.isInternal'` as it exists in `std` as `Name.isInternalDetail`. ESTIMATED CHANGES Modified Mathlib/Lean/Expr/Basic.lean - def Lean.Name.isInternal' Modified Mathlib/Lean/Name.lean Modified Mathlib/Tactic/Simps/Basic.lean Modified Mathlib/Tactic/ToAdditive.lean 2023-12-28 07:15:20 fb3fd7c feat: add some constructions about `RelSeries` (`append`, `insert_nth`, `map`, `comap`) (#3858) - appending a relation series to another one - insert an element into a relation series to make a longer relation series - map a relation series across a relation preserving function - pullback a lt series across a surjective strictly co-monotonic function. (`f` is strictly co-monotonic if `f x < f y` implies `x < y`) ESTIMATED CHANGES Modified Mathlib/Order/RelSeries.lean + def LTSeries.map + def LTSeries.mk + def RelSeries.append + def RelSeries.head + theorem RelSeries.head_mem + def RelSeries.insertNth + def RelSeries.last + theorem RelSeries.last_mem + def RelSeries.map + theorem RelSeries.mem_def 2023-12-28 06:17:56 8788d9a feat(FieldTheory/SeparableDegree): further properties of separable degree of fields and polynomials (#9041) Breaking changes: - remove `Field.sepDegree` since it is not quite correct for infinite case; will be added in later PR (see #8696) New definitions (non-exhaustive): - `Polynomial.natSepDegree`: the separable degree of a polynomial is a natural number, defined to be the number of distinct roots of it over its splitting field. New results (non-exhaustive): - `Polynomial.natSepDegree_le_natDegree`: the separable degree of a polynomial is smaller than its degree. - `Polynomial.natSepDegree_eq_natDegree_iff`: the separable degree of a non-zero polynomial is equal to its degree if and only if it is separable. - `Polynomial.natSepDegree_dvd_natDegree_of_irreducible`: the separable degree of an irreducible polynomial divides its degree. - `Field.finSepDegree_adjoin_simple_eq_natSepDegree`: the (finite) separable degree of `F⟮α⟯ / F` is equal to the separable degree of the minimal polynomial of `α` over `F`. - `Field.finSepDegree_dvd_finrank`: the separable degree of any field extension `E / F` divides the degree of `E / F`. - `Field.finSepDegree_le_finrank`: the separable degree of a finite extension `E / F` is smaller than the degree of `E / F`. - `Field.finSepDegree_eq_finrank_iff`: if `E / F` is a finite extension, then its separable degree is equal to its degree if and only if it is a separable extension. ESTIMATED CHANGES Modified Mathlib/FieldTheory/SeparableDegree.lean +/- def Field.finSepDegree - theorem Field.finSepDegree_bot' - theorem Field.finSepDegree_bot + theorem Field.finSepDegree_dvd_finrank + theorem Field.finSepDegree_eq_finrank_iff + theorem Field.finSepDegree_eq_finrank_of_isSeparable + theorem Field.finSepDegree_le_finrank - theorem Field.finSepDegree_top' - theorem Field.finSepDegree_top - theorem Field.lift_sepDegree_mul_lift_sepDegree_of_isAlgebraic - def Field.sepDegree - theorem Field.sepDegree_bot'' - theorem Field.sepDegree_bot' - theorem Field.sepDegree_bot - theorem Field.sepDegree_eq_of_adjoin_splits - theorem Field.sepDegree_eq_of_equiv - theorem Field.sepDegree_eq_of_isAlgClosed - theorem Field.sepDegree_mul_sepDegree_of_isAlgebraic - theorem Field.sepDegree_self - theorem Field.sepDegree_top' - theorem Field.sepDegree_top + theorem Field.separable_add + theorem Field.separable_algebraMap + theorem Field.separable_inv + theorem Field.separable_mul + theorem IntermediateField.finSepDegree_adjoin_simple_eq_finrank_iff + theorem IntermediateField.finSepDegree_adjoin_simple_eq_natSepDegree + theorem IntermediateField.finSepDegree_adjoin_simple_le_finrank + theorem IntermediateField.finSepDegree_bot' + theorem IntermediateField.finSepDegree_bot + theorem IntermediateField.finSepDegree_top + theorem IntermediateField.isSeparable_adjoin_pair_of_separable + theorem IntermediateField.isSeparable_adjoin_simple_iff_separable + theorem IntermediateField.separable_of_mem_isSeparable + theorem Irreducible.natSepDegree_dvd_natDegree + theorem Irreducible.natSepDegree_eq_one_iff_of_monic' + theorem Irreducible.natSepDegree_eq_one_iff_of_monic + theorem IsSeparable.trans + theorem Polynomial.HasSeparableContraction.natSepDegree_eq + theorem Polynomial.IsSeparableContraction.natSepDegree_eq + def Polynomial.natSepDegree + theorem Polynomial.natSepDegree_C + theorem Polynomial.natSepDegree_C_mul + theorem Polynomial.natSepDegree_C_mul_X_sub_C_pow + theorem Polynomial.natSepDegree_X + theorem Polynomial.natSepDegree_X_pow + theorem Polynomial.natSepDegree_X_pow_char_sub_C + theorem Polynomial.natSepDegree_X_sub_C + theorem Polynomial.natSepDegree_X_sub_C_pow + theorem Polynomial.natSepDegree_eq_natDegree_iff + theorem Polynomial.natSepDegree_eq_natDegree_of_separable + theorem Polynomial.natSepDegree_eq_of_isAlgClosed + theorem Polynomial.natSepDegree_eq_of_splits + theorem Polynomial.natSepDegree_eq_zero + theorem Polynomial.natSepDegree_eq_zero_iff + theorem Polynomial.natSepDegree_expand + theorem Polynomial.natSepDegree_le_natDegree + theorem Polynomial.natSepDegree_le_of_dvd + theorem Polynomial.natSepDegree_mul + theorem Polynomial.natSepDegree_ne_zero + theorem Polynomial.natSepDegree_ne_zero_iff + theorem Polynomial.natSepDegree_one + theorem Polynomial.natSepDegree_pow + theorem Polynomial.natSepDegree_smul_nonzero + theorem Polynomial.natSepDegree_zero + theorem minpoly.natSepDegree_eq_one_iff_eq_X_pow_sub_C + theorem minpoly.natSepDegree_eq_one_iff_eq_X_sub_C_pow + theorem minpoly.natSepDegree_eq_one_iff_eq_expand_X_sub_C + theorem minpoly.natSepDegree_eq_one_iff_mem_pow 2023-12-28 01:33:58 6cab3d6 feat(NumberTheory.SmoothNumbers): add `{smooth|rough}NumbersUpTo` and some API (#9240) This adds definitions of the `k`-smooth numbers up to and including `N` as a `Finset` and of its complement in `{1, ..., N}` plus some API, in particular cardinality bounds. There are also a few additional API lemmas for `Nat.primesBelow` and `Nat.smoothNumbers` (including a decidability instance for membership in the latter). This is a PR in preparation of the divergence of the sum of the reciprocals of the primes. See [here](https://leanprover.zulipchat.com/#narrow/stream/217875-Is-there-code-for-X.3F/topic/Sum.20over.201.2Fp.20diverges/near/409835682) on Zulip. ESTIMATED CHANGES Modified Mathlib/Data/Nat/Factorization/Basic.lean + theorem Nat.card_multiples' Modified Mathlib/NumberTheory/SmoothNumbers.lean + theorem Nat.eq_prod_primes_mul_sq_of_mem_smoothNumbers + theorem Nat.mem_primesBelow + theorem Nat.mem_smoothNumbersUpTo + theorem Nat.mem_smoothNumbers_iff_forall_le + theorem Nat.mem_smoothNumbers_of_dvd + theorem Nat.ne_zero_of_mem_smoothNumbers + def Nat.roughNumbersUpTo + theorem Nat.roughNumbersUpTo_card_le + theorem Nat.roughNumbersUpTo_eq_biUnion + def Nat.smoothNumbersUpTo + theorem Nat.smoothNumbersUpTo_card_add_roughNumbersUpTo_card + theorem Nat.smoothNumbersUpTo_card_le + theorem Nat.smoothNumbersUpTo_subset_image 2023-12-27 22:11:11 5dee9c0 fix(Tactic/MoveAdd): add missing `withContext` (#9306) Adds a missing `withContext`, as mentioned in this [Zulip message](https://leanprover.zulipchat.com/#narrow/stream/144837-PR-reviews/topic/.2313483.20.60move_add.60/near/409960750). I also added the relevant test. ESTIMATED CHANGES Modified Mathlib/Tactic/MoveAdd.lean Modified test/MoveAdd.lean 2023-12-27 20:59:09 521f71f feat: misc lemmas on uniform spaces (#9305) ESTIMATED CHANGES Modified Mathlib/Topology/UniformSpace/Basic.lean + theorem UniformSpace.ball_mem_nhdsWithin + theorem nhdsWithin_eq_comap_uniformity + theorem nhdsWithin_eq_comap_uniformity_of_mem Modified Mathlib/Topology/UniformSpace/UniformEmbedding.lean + theorem UniformInducing.uniformContinuousOn_iff 2023-12-27 20:59:08 82c6032 feat: Better lemmas for transferring finite sums along equivalences (#9237) Lemmas around this were a mess, throth in terms of names, statement and location. This PR standardises everything to be in `Algebra.BigOperators.Basic` and changes the lemmas to take in `InjOn` and `SurjOn` assumptions where possible (and where impossible make sure the hypotheses are taken in the correct order) and moves the equality of functions hypothesis last. Also add a few lemmas that help fix downstream uses by golfing. From LeanAPAP and LeanCamCombi ESTIMATED CHANGES Modified Mathlib/Algebra/BigOperators/Basic.lean + theorem Equiv.prod_comp - theorem Finset.Equiv.prod_comp_finset +/- theorem Finset.prod_attach +/- theorem Finset.prod_bij' +/- theorem Finset.prod_bij + theorem Finset.prod_bijective +/- theorem Finset.prod_coe_sort + theorem Finset.prod_diag + theorem Finset.prod_equiv + theorem Finset.prod_fiberwise' + theorem Finset.prod_fiberwise + theorem Finset.prod_fiberwise_of_maps_to' +/- theorem Finset.prod_fiberwise_of_maps_to +/- theorem Finset.prod_ite_one + theorem Finset.prod_mulIndicator_eq_prod_inter + theorem Finset.prod_mul_prod_comm + theorem Finset.prod_nbij' + theorem Finset.prod_nbij + theorem Finset.prod_union_eq_left + theorem Finset.prod_union_eq_right +/- theorem Fintype.prod_bijective +/- theorem Fintype.prod_equiv + theorem Fintype.prod_fiberwise' + theorem Fintype.prod_fiberwise + theorem Function.Bijective.prod_comp Modified Mathlib/Algebra/BigOperators/Finprod.lean Modified Mathlib/Algebra/BigOperators/Finsupp.lean Modified Mathlib/Algebra/BigOperators/Intervals.lean Modified Mathlib/Algebra/BigOperators/Ring.lean Modified Mathlib/Algebra/Tropical/BigOperators.lean Modified Mathlib/AlgebraicTopology/AlternatingFaceMapComplex.lean Modified Mathlib/Analysis/Analytic/Composition.lean Modified Mathlib/Combinatorics/Configuration.lean Modified Mathlib/Data/Complex/Exponential.lean Modified Mathlib/Data/DFinsupp/Basic.lean Modified Mathlib/Data/Finset/Card.lean Modified Mathlib/Data/Finset/LocallyFinite.lean Modified Mathlib/Data/Finsupp/Antidiagonal.lean Modified Mathlib/Data/Finsupp/Basic.lean Modified Mathlib/Data/Fintype/BigOperators.lean - theorem Equiv.prod_comp' - theorem Equiv.prod_comp - theorem Finset.prod_fiberwise - theorem Fintype.prod_fiberwise - theorem Function.Bijective.prod_comp Modified Mathlib/Data/Multiset/Nodup.lean Modified Mathlib/Data/Polynomial/Mirror.lean Modified Mathlib/Data/Set/Card.lean Modified Mathlib/Data/Set/Finite.lean Modified Mathlib/Data/Sign.lean Modified Mathlib/FieldTheory/Fixed.lean Modified Mathlib/GroupTheory/PGroup.lean Modified Mathlib/GroupTheory/Perm/Sign.lean - theorem Equiv.Perm.signBijAux_inj + theorem Equiv.Perm.signBijAux_injOn Modified Mathlib/GroupTheory/SchurZassenhaus.lean Modified Mathlib/GroupTheory/Transfer.lean Modified Mathlib/LinearAlgebra/Matrix/Determinant.lean Modified Mathlib/NumberTheory/ArithmeticFunction.lean Modified Mathlib/NumberTheory/LegendreSymbol/GaussEisensteinLemmas.lean Modified Mathlib/NumberTheory/NumberField/Embeddings.lean Modified Mathlib/NumberTheory/Wilson.lean Modified Mathlib/Probability/StrongLaw.lean Modified Mathlib/RingTheory/Discriminant.lean Modified Mathlib/RingTheory/HahnSeries.lean Modified Mathlib/RingTheory/IntegralDomain.lean Modified Mathlib/RingTheory/Noetherian.lean Modified Mathlib/RingTheory/Polynomial/IntegralNormalization.lean Modified Mathlib/RingTheory/PowerSeries/Basic.lean 2023-12-27 20:59:07 7b59a5f feat: `(a • s)⁻¹ = s⁻¹ • a⁻¹` (#9199) and other simple pointwise lemmas for `Set` and `Finset`. Also add supporting `Fintype.piFinset` lemmas and fix the names of two lemmas. From LeanAPAP and LeanCamCombi ESTIMATED CHANGES Modified Mathlib/Algebra/Opposites.lean Modified Mathlib/Analysis/InnerProductSpace/GramSchmidtOrtho.lean Modified Mathlib/Data/Finset/NAry.lean + theorem Fintype.piFinset_image₂ Modified Mathlib/Data/Finset/Pi.lean + theorem Finset.pi_nonempty Modified Mathlib/Data/Finset/Pointwise.lean +/- theorem Finset.Nonempty.smul_zero +/- theorem Finset.Nonempty.zero_smul +/- theorem Finset.card_inv + theorem Finset.coe_eq_one +/- theorem Finset.coe_inv - theorem Finset.image_div_prod + theorem Finset.image_div_product + theorem Finset.image_op_inv + theorem Finset.inv_op_smul_finset_distrib + theorem Finset.inv_op_smul_finset_distrib₀ + theorem Finset.inv_smul_finset_distrib + theorem Finset.inv_smul_finset_distrib₀ + theorem Finset.inv_univ + theorem Finset.mem_inv' +/- theorem Finset.preimage_inv + theorem Finset.prod_inv_index + theorem Finset.prod_neg_index +/- theorem Finset.smul_finset_univ₀ + theorem Finset.smul_univ₀' +/- theorem Finset.smul_zero_subset + theorem Finset.sum_inv_index + theorem Finset.univ_div_univ +/- theorem Finset.zero_mem_smul_finset +/- theorem Finset.zero_mem_smul_finset_iff +/- theorem Finset.zero_mem_smul_iff +/- theorem Finset.zero_smul_finset +/- theorem Finset.zero_smul_finset_subset +/- theorem Finset.zero_smul_subset + theorem Fintype.piFinset_div + theorem Fintype.piFinset_inv + theorem Fintype.piFinset_mul + theorem Fintype.piFinset_smul + theorem Fintype.piFinset_smul_finset Modified Mathlib/Data/Fintype/Pi.lean + theorem Fintype.eval_image_piFinset + theorem Fintype.eval_image_piFinset_subset + theorem Fintype.filter_piFinset_of_not_mem + theorem Fintype.piFinset_image + theorem Fintype.piFinset_nonempty + theorem Fintype.piFinset_of_isEmpty Modified Mathlib/Data/Set/Pointwise/Basic.lean + theorem Set.univ_div_univ Modified Mathlib/Data/Set/Pointwise/SMul.lean + theorem Set.inv_op_smul_set_distrib + theorem Set.inv_op_smul_set_distrib₀ + theorem Set.inv_smul_set_distrib + theorem Set.inv_smul_set_distrib₀ +/- theorem Set.zero_smul_set 2023-12-27 19:56:00 d2d0dcd chore(NumberTheory/Zsqrtd): use `@[ext]` (#9299) Added `@[ext]` to definition `structure Zsqrtd (d : ℤ)`. (also added lemma `sub_re`, `sub_im`) ESTIMATED CHANGES Modified Mathlib/NumberTheory/Pell.lean Modified Mathlib/NumberTheory/PellMatiyasevic.lean +/- theorem Pell.pellZd_succ Modified Mathlib/NumberTheory/Zsqrtd/Basic.lean +/- theorem Zsqrtd.coe_int_val +/- theorem Zsqrtd.decompose +/- theorem Zsqrtd.dmuld - theorem Zsqrtd.ext +/- theorem Zsqrtd.muld_val +/- theorem Zsqrtd.ofInt_eq_coe +/- theorem Zsqrtd.smul_val +/- theorem Zsqrtd.smuld_val + theorem Zsqrtd.sub_im + theorem Zsqrtd.sub_re Modified Mathlib/NumberTheory/Zsqrtd/QuadraticReciprocity.lean 2023-12-27 19:55:59 04a0488 feat(LinearAlgebra): the Erdős-Kaplansky theorem (#9159) The dimension of an infinite dimensional dual space is equal to its cardinality. As a consequence (`linearEquiv_dual_iff_finiteDimensional`), a vector space is isomorphic to its dual iff it's finite dimensional. The [main argument](https://github.com/leanprover-community/mathlib4/pull/9159/files#diff-cb173017e1157ddc4b9f868be06c18ec2a38f8cf82e856e18d59ed49f97395d8R146) is from https://mathoverflow.net/a/168624. There is a [slicker proof](https://mathoverflow.net/a/420455/3332) in the field case but Vandermonde determinants don't work in a non-commutative ring. Resolves [TODO item](https://leanprover-community.github.io/mathlib4_docs/Mathlib/LinearAlgebra/Dual.html#TODO) posed by Julian Külshammer - [x] depends on: #8941 - [x] depends on: #8942 ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/Dimension.lean + theorem rank_le_card Modified Mathlib/LinearAlgebra/Dual.lean + theorem Basis.linearEquiv_dual_iff_finiteDimensional Modified Mathlib/LinearAlgebra/FreeModule/Rank.lean + theorem lift_rank_lt_rank_dual' + theorem lift_rank_lt_rank_dual + theorem max_aleph0_card_le_rank_fun_nat + theorem rank_dual_eq_card_dual_of_aleph0_le_rank' + theorem rank_dual_eq_card_dual_of_aleph0_le_rank + theorem rank_eq_cardinal_basis' + theorem rank_eq_cardinal_basis + theorem rank_fun_infinite + theorem rank_lt_rank_dual' + theorem rank_lt_rank_dual 2023-12-27 19:55:58 71bf288 feat: add lemmas about `Fin.rev` (#8814) ESTIMATED CHANGES Modified Mathlib/Data/Fin/Basic.lean + theorem Fin.cast_eq_self + theorem Fin.cast_rev + theorem Fin.rev_succAbove Modified Mathlib/Data/Fin/Tuple/Basic.lean + theorem Fin.append_comp_rev + theorem Fin.append_cons + theorem Fin.append_rev + theorem Fin.append_snoc + theorem Fin.cons_comp_rev + theorem Fin.cons_rev + theorem Fin.insertNth_comp_rev + theorem Fin.insertNth_rev + theorem Fin.snoc_comp_rev + theorem Fin.snoc_rev 2023-12-27 18:34:46 98e2ce2 archive: smooth functions whose integral calculates the values of polynomials (#9138) Test case of the library suggested by Martin Hairer, see https://leanprover.zulipchat.com/#narrow/stream/116395-maths/topic/Hairer.20challenge/near/404836147. ESTIMATED CHANGES Modified Archive.lean Added Archive/Hairer.lean + def L + theorem MvPolynomial.continuous_eval + theorem SmoothSupportedOn.coe_mk + theorem SmoothSupportedOn.contDiff + theorem SmoothSupportedOn.continuous + theorem SmoothSupportedOn.hasCompactSupport + theorem SmoothSupportedOn.integrable_eval_mul + theorem SmoothSupportedOn.support_subset + theorem SmoothSupportedOn.tsupport_subset + def SmoothSupportedOn + theorem hairer + theorem inj_L Modified Mathlib.lean Added Mathlib/Analysis/Analytic/Polynomial.lean + theorem AnalyticAt.aeval_mvPolynomial + theorem AnalyticAt.aeval_polynomial + theorem AnalyticOn.aeval_mvPolynomial + theorem AnalyticOn.aeval_polynomial + theorem AnalyticOn.eval_continuousLinearMap' + theorem AnalyticOn.eval_continuousLinearMap + theorem AnalyticOn.eval_linearMap' + theorem AnalyticOn.eval_linearMap + theorem AnalyticOn.eval_mvPolynomial + theorem AnalyticOn.eval_polynomial Modified Mathlib/RingTheory/MvPolynomial/Basic.lean + def MvPolynomial.basisRestrictSupport + def MvPolynomial.restrictSupport + theorem MvPolynomial.restrictSupport_mono +/- def MvPolynomial.restrictTotalDegree + theorem MvPolynomial.restrictTotalDegree_le_restrictDegree 2023-12-27 18:34:45 a63bd3b feat(Tactic/ExtendDoc): add `extend_doc` command (#7446) This PR is related to [Issue leanprover/lean4#2622](https://github.com/leanprover/lean4/issues/2622). In the file where declaration `decl` is defined, writing ```lean extend_doc decl before "I will be added as a prefix to the docs of `decl`" after "I will be added as a suffix to the docs of `decl`" ``` does what is probably clear: it extends the doc-string of `decl` by adding the string immediately following `before` at the beginning and the string immediately following`after` at the end. This is useful, for instance, when the docs of `decl` are obtained via `inherit_doc`. [Zulip discussion](https://leanprover.zulipchat.com/#narrow/stream/270676-lean4/topic/tactic.20docstrings) By way of example, I redefine the docs over `rw`. The new doc-string is ```lean `rw` is like `rewrite` (see below), but also tries to close the goal by "cheap" (reducible) `rfl` afterwards. `rewrite [e]` applies identity `e` as a rewrite rule to the target of the main goal. If `e` is preceded by left arrow (`←` or `<-`), the rewrite is applied in the reverse direction. If `e` is a defined constant, then the equational theorems associated with `e` are used. This provides a convenient way to unfold `e`. - `rewrite [e₁, ..., eₙ]` applies the given rules sequentially. - `rewrite [e] at l` rewrites `e` at location(s) `l`, where `l` is either `*` or a list of hypotheses in the local context. In the latter case, a turnstile `⊢` or `|-` can also be used, to signify the target of the goal. Using `rw (config := {occs := .pos L}) [e]`, where `L : List Nat`, you can control which "occurrences" are rewritten. (This option applies to each rule, so usually this will only be used with a single rule.) Occurrences count from `1`. At the first occurrence, whether allowed or not, arguments of the rewrite rule `e` may be instantiated, restricting which later rewrites can be found. `{occs := .neg L}` allows skipping specified occurrences. ``` ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Tactic.lean Modified Mathlib/Tactic/Basic.lean Added Mathlib/Tactic/ExtendDoc.lean 2023-12-27 17:24:01 49d59e7 feat: define `prodPrimeFactors` as an `ArithmeticFunction` (#6662) Define the arithmetic function $n \mapsto \prod_{p \mid n} f(p)$. This PR further proves that it's multiplicative and relates it to Dirichlet convolution. Finally it proves two identities that can be applied in a context where you're not working exclusively with `ArithmeticFunction`s This construction was mentioned on [zulip](https://leanprover.zulipchat.com/#narrow/stream/217875-Is-there-code-for-X.3F/topic/finite.20product.20of.20infinite.20sums/near/379577022) ESTIMATED CHANGES Modified Mathlib/Data/Nat/Squarefree.lean + theorem Nat.prod_primeFactors_sdiff_of_squarefree Modified Mathlib/NumberTheory/ArithmeticFunction.lean + theorem Nat.ArithmeticFunction.IsMultiplicative.map_prod_of_prime + theorem Nat.ArithmeticFunction.IsMultiplicative.map_prod_of_subset_primeFactors + theorem Nat.ArithmeticFunction.IsMultiplicative.prodPrimeFactors + theorem Nat.ArithmeticFunction.IsMultiplicative.prodPrimeFactors_add_of_squarefree + theorem Nat.ArithmeticFunction.IsMultiplicative.prodPrimeFactors_one_add_of_squarefree + theorem Nat.ArithmeticFunction.IsMultiplicative.prodPrimeFactors_one_sub_of_squarefree + def Nat.ArithmeticFunction.prodPrimeFactors + theorem Nat.ArithmeticFunction.prodPrimeFactors_apply + theorem Nat.ArithmeticFunction.prodPrimeFactors_apply_of_ne_zero 2023-12-27 15:22:06 3d732b1 chore: remove now-unneeded dsimp and its associated porting note (#9304) The `dsimp only` is no longer needed after #3222 adjusted the definition of `Units.ext`. ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Units/Hom.lean 2023-12-27 14:16:48 33e9813 feat(RingTheory/TensorProduct): Tensor product for CommSemiring (#9125) Added the instance of TensorProduct.instCommRing. Previously we only had the `CommRing` and `Semiring` instance; this moves an existing proof to populate the intermediate instance. ESTIMATED CHANGES Modified Mathlib/RingTheory/Kaehler.lean Modified Mathlib/RingTheory/TensorProduct.lean 2023-12-27 13:14:19 6ecca6c feat(GroupTheory/GroupAction/Opposite): add notation for right and left actions (#8909) The new notations (with `open scoped RightActions`) are: * `r •> m` as an alias for `r • m` * `m <• r` as an alias for `MulOpposite.op r • m` * `r +ᵥ> m` as an alias for `r +ᵥ m` * `m <+ᵥ r` as an alias for `AddOpposite.op r +ᵥ m` An alternative proposal was to use variants of `•` with arrows inside: * `r ⮊ m` as an alias for `r • m` * `m ⮈ r` as an alias for `MulOpposite.op r • m` but this doesn't have an obvious additive counterpart, and apparently has font issues. Zulip messages: * ["And `m <• r` would be notation for `(to_opposite r) • m`, or something like that?"](https://leanprover.zulipchat.com/#narrow/stream/116395-maths/topic/left.20vs.20right.20modules.20in.20tensor.20products/near/262063344) * ["I rather like the idea of having a new piece of notation for right actions"](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/Noncommutative.20ring.20things/near/390011490) * [I like your proposed notation `<•` for the right scalar action. Maybe we should even introduce `•>` as an alias for `•`](https://leanprover.zulipchat.com/#narrow/stream/116395-maths/topic/ideals.20in.20non-comm.20rings/near/252156362) ESTIMATED CHANGES Modified Mathlib/GroupTheory/GroupAction/Opposite.lean + theorem op_smul_mul + theorem op_smul_op_smul Added test/right_actions.lean 2023-12-27 13:14:18 d5dea34 feat(CategoryTheory): another constructor for ComposableArrows (#8541) In this PR, given objects `obj : Fin (n + 1) → C` and `mapSucc i : obj i.castSucc ⟶ obj i.succ` (i.e. a sequence of morphisms), we construct `mkOfObjOfMapSucc obj mapSucc : ComposableArrows C n`. On objects, this constructor has good definitional properties. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/ComposableArrows.lean + def CategoryTheory.ComposableArrows.arrow + theorem CategoryTheory.ComposableArrows.mkOfObjOfMapSucc_arrow + theorem CategoryTheory.ComposableArrows.mkOfObjOfMapSucc_exists + theorem CategoryTheory.ComposableArrows.mkOfObjOfMapSucc_map_succ + theorem CategoryTheory.ComposableArrows.mkOfObjOfMapSucc_obj Modified Mathlib/CategoryTheory/NatIso.lean + def CategoryTheory.Functor.copyObj + def CategoryTheory.Functor.isoCopyObj 2023-12-27 12:26:55 120ddec feat: OrderIso between finite-codimensional subspaces and finite-dimensional subspaces in the dual (#9124) + Introduce the nondegenerate pairing (`(flip_)quotDualCoannihilatorToDual_injective`) between `M ⧸ W.dualCoannihilator` and `W` . If `M` is a vector space and `W` is a finite-dimensional subspace of its dual, this is a perfect pairing (`quotDualCoannihilatorToDual_bijective`), and `W` is equal to the annihilator of its coannihilator. + Use this pairing to show that `dualAnnihilator` and `dualCoannihilator` give an antitone order isomorphism `orderIsoFiniteCodimDim` between finite-codimensional subspaces in a vector space and finite-dimensional subspaces in its dual. This result can be e.g. found in Bourbaki's Algebra. For a finite-dimensional vector space, this gives an OrderIso between all subspaces and all subspaces of the dual. + Add some lemmas about the image and preimage of annihilators and coannihilators under `Dual.eval`. + Expand the docstring of `basis_finite_of_finite_spans` with comments on generalizations. - [x] depends on: #8820 ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/Dimension.lean Modified Mathlib/LinearAlgebra/Dual.lean + theorem Submodule.comap_dualAnnihilator +/- theorem Submodule.dualAnnihilator_gc + theorem Submodule.finite_dualAnnihilator_iff + theorem Submodule.flip_quotDualCoannihilatorToDual_injective + theorem Submodule.map_dualCoannihilator_le + def Submodule.quotDualCoannihilatorToDual + theorem Submodule.quotDualCoannihilatorToDual_apply + theorem Submodule.quotDualCoannihilatorToDual_injective + theorem Submodule.quotDualCoannihilatorToDual_nondegenerate + theorem Subspace.comap_dualAnnihilator_dualAnnihilator + theorem Subspace.dualAnnihilator_dualAnnihilator_eq_map + theorem Subspace.dualCoannihilator_dualAnnihilator_eq + theorem Subspace.finiteDimensional_quot_dualCoannihilator_iff + theorem Subspace.flip_quotDualCoannihilatorToDual_bijective + theorem Subspace.map_dualCoannihilator + theorem Subspace.map_le_dualAnnihilator_dualAnnihilator + def Subspace.orderIsoFiniteCodimDim + def Subspace.orderIsoFiniteDimensional + theorem Subspace.quotDualCoannihilatorToDual_bijective Modified Mathlib/RingTheory/Finiteness.lean + theorem Module.Finite.equiv_iff 2023-12-27 10:11:18 1346526 feat: When `a \ b = b \ a` (#9109) and other simple order lemmas From LeanAPAP and LeanCamCombi ESTIMATED CHANGES Modified Mathlib/Order/BooleanAlgebra.lean + theorem himp_eq_left + theorem himp_le_iff + theorem himp_ne_right + theorem sdiff_eq_right + theorem sdiff_ne_right Modified Mathlib/Order/ConditionallyCompleteLattice/Basic.lean +/- theorem ciInf_le' + theorem ciInf_le_of_le' +/- theorem csInf_le' Modified Mathlib/Order/ConditionallyCompleteLattice/Finset.lean +/- theorem Finset.inf'_eq_csInf_image +/- theorem Finset.inf'_id_eq_csInf + theorem Finset.inf'_univ_eq_ciInf +/- theorem Finset.sup'_eq_csSup_image +/- theorem Finset.sup'_id_eq_csSup + theorem Finset.sup'_univ_eq_ciSup Modified Mathlib/Order/Disjoint.lean + theorem Codisjoint.eq_iff + theorem Codisjoint.ne_iff + theorem Disjoint.eq_iff + theorem Disjoint.ne_iff Modified Mathlib/Order/Heyting/Basic.lean + theorem himp_eq_himp_iff + theorem himp_ne_himp_iff + theorem sdiff_eq_sdiff_iff + theorem sdiff_ne_sdiff_iff 2023-12-27 10:11:17 d412c82 feat(Algebra/Homology): computation of the connecting homomorphism of the homology sequence (#8771) This PR adds a variant of a lemma introduced in #8512: `ShortComplex.SnakeInput.δ_apply'` computes the connecting homomorphism of the snake lemma in a concrete categoriy `C` with a phrasing based on the functor `forget₂ C Ab` rather than `forget C`. From this, the lemma `ShortComplex.ShortExact.δ_apply` is obtained in a new file `Algebra.Homology.ConcreteCategory`: it gives a computation in terms of (co)cycles of the connecting homomorphism in homology attached to a short exact sequence of homological complexes in `C`. This PR also adds a lemma which computes "up to refinements" the connecting homomorphism of the homology sequence in general abelian categories. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Homology/ConcreteCategory.lean + theorem CategoryTheory.ShortComplex.ShortExact.δ_apply' + theorem CategoryTheory.ShortComplex.ShortExact.δ_apply + theorem HomologicalComplex.i_cyclesMk Modified Mathlib/Algebra/Homology/HomologySequence.lean + theorem CategoryTheory.ShortComplex.ShortExact.δ_eq' + theorem CategoryTheory.ShortComplex.ShortExact.δ_eq Modified Mathlib/Algebra/Homology/ShortComplex/Ab.lean + theorem CategoryTheory.ShortComplex.abCyclesIso_inv_apply_iCycles Modified Mathlib/Algebra/Homology/ShortComplex/ConcreteCategory.lean - theorem CategoryTheory.Preadditive.epi_iff_injective + theorem CategoryTheory.Preadditive.epi_iff_surjective + theorem CategoryTheory.ShortComplex.SnakeInput.δ_apply' + theorem CategoryTheory.ShortComplex.i_cyclesMk Modified Mathlib/Algebra/Homology/ShortComplex/PreservesHomology.lean + theorem CategoryTheory.ShortComplex.mapCyclesIso_hom_iCycles Modified Mathlib/CategoryTheory/ConcreteCategory/Basic.lean + theorem CategoryTheory.forget₂_comp_apply 2023-12-27 09:02:06 e0ae51d chore: Rename monotonicity of `•` lemmas in modules (#9302) Fix the names of the lemmas moved in #9241 to match the naming convention. ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Module/Defs.lean - def OrderIso.smulLeftDual + def OrderIso.smulRightDual +/- theorem antitone_smul_left - theorem smul_le_smul_iff_of_neg + theorem smul_le_smul_iff_of_neg_left - theorem smul_le_smul_of_nonpos + theorem smul_le_smul_of_nonpos_left - theorem smul_lt_smul_iff_of_neg + theorem smul_lt_smul_iff_of_neg_left - theorem smul_lt_smul_of_neg + theorem smul_lt_smul_of_neg_left - theorem smul_neg_iff_of_neg + theorem smul_neg_iff_of_neg_left - theorem smul_pos_iff_of_neg + theorem smul_pos_iff_of_neg_left + theorem strictAnti_smul_left - theorem strict_anti_smul_left Modified Mathlib/Algebra/Order/Module/Pointwise.lean Modified Mathlib/Data/Real/Pointwise.lean 2023-12-27 09:02:05 2380f2a fix: change HahnSeries linearMap to use modules (#9297) This PR corrects what appears to be a minor oversight. We replace the scalar ring `R` with the module `V` in two spots. The proofs are unchanged. ESTIMATED CHANGES Modified Mathlib/RingTheory/HahnSeries.lean +/- def HahnSeries.coeff.linearMap +/- def HahnSeries.single.linearMap 2023-12-27 09:02:04 565cdcb chore(ArithmeticFunction): add `cardFactors_zero` (#9287) * Add a `dsimp` lemma `cardFactors_zero` * Make `cardFactors_one` a `dsimp` lemma * make `cardFactors_eq_one_iff_prime` a `simp` lemma ESTIMATED CHANGES Modified Mathlib/NumberTheory/ArithmeticFunction.lean +/- theorem Nat.ArithmeticFunction.cardFactors_one + theorem Nat.ArithmeticFunction.cardFactors_zero 2023-12-27 09:02:03 bbf5f35 chore(Topology/FilterBasis): rename `GroupFilterBasis.prod_subset_self` (#9233) ... to `subset_mul_self` ESTIMATED CHANGES Modified Mathlib/Topology/Algebra/FilterBasis.lean - theorem GroupFilterBasis.prod_subset_self + theorem GroupFilterBasis.subset_mul_self 2023-12-27 09:02:01 dccbc02 feat: Completeness criterion for normed additive groups (#9117) This PR adds a proof that a normed additive group is complete iff every absolutely convergent series converges in the space. This is Lemma 2.2.1 from the book "Interpolation Spaces" by Bergh and Löfström. I wasn't too sure where to put `Metric.exists_subseq_summable_dist_of_cauchySeq` -- I would be happy to move it somewhere else. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/Normed/Group/Completeness.lean + theorem Metric.exists_subseq_summable_dist_of_cauchySeq + theorem NormedAddCommGroup.completeSpace_of_summable_imp_tendsto + theorem NormedAddCommGroup.summable_imp_tendsto_iff_completeSpace + theorem NormedAddCommGroup.summable_imp_tendsto_of_complete Modified Mathlib/Topology/MetricSpace/Cauchy.lean + theorem Metric.exists_subseq_bounded_of_cauchySeq Modified docs/references.bib 2023-12-27 09:02:00 b58270e feat(CategoryTheory/Shift): sequences of functors from a category with a shift (#9001) Let `F : C ⥤ A` be a functor from a category `C` that is equipped with a shift by an additive monoid `M`. In this PR, we define a typeclass `F.ShiftSequence M` which includes the data of a sequence of functors `F.shift a : C ⥤ A` for all `a : A`. For each `a : A`, we have an isomorphism `F.isoShift a : shiftFunctor C a ⋙ F ≅ F.shift a` which satisfies some coherence relations. This will allow a better formulation of the long exact sequence attached to homological functors from a triangulated category to an abelian category. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Shift/ShiftSequence.lean + def CategoryTheory.Functor.isoShift + def CategoryTheory.Functor.isoShiftZero + theorem CategoryTheory.Functor.isoShift_hom_naturality + theorem CategoryTheory.Functor.isoShift_inv_naturality + def CategoryTheory.Functor.shift + def CategoryTheory.Functor.shiftIso + theorem CategoryTheory.Functor.shiftIso_add' + theorem CategoryTheory.Functor.shiftIso_add'_hom_app + theorem CategoryTheory.Functor.shiftIso_add'_inv_app + theorem CategoryTheory.Functor.shiftIso_add + theorem CategoryTheory.Functor.shiftIso_add_hom_app + theorem CategoryTheory.Functor.shiftIso_add_inv_app + theorem CategoryTheory.Functor.shiftIso_hom_app_comp + theorem CategoryTheory.Functor.shiftIso_hom_naturality + theorem CategoryTheory.Functor.shiftIso_inv_naturality + theorem CategoryTheory.Functor.shiftIso_zero + theorem CategoryTheory.Functor.shiftIso_zero_hom_app + theorem CategoryTheory.Functor.shiftIso_zero_inv_app 2023-12-27 09:01:59 e0f4e43 feat(Algebra/Homology): construction of the homotopy cofiber (#8969) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Homology/Homotopy.lean + theorem dNext_eq_zero + theorem prevD_eq_zero Added Mathlib/Algebra/Homology/HomotopyCofiber.lean + theorem HomologicalComplex.homotopyCofiber.d_fstX + theorem HomologicalComplex.homotopyCofiber.d_sndX + theorem HomologicalComplex.homotopyCofiber.ext_from_X' + theorem HomologicalComplex.homotopyCofiber.ext_from_X + theorem HomologicalComplex.homotopyCofiber.ext_to_X' + theorem HomologicalComplex.homotopyCofiber.ext_to_X + theorem HomologicalComplex.homotopyCofiber.inlX_d' + theorem HomologicalComplex.homotopyCofiber.inlX_d + theorem HomologicalComplex.homotopyCofiber.inlX_fstX + theorem HomologicalComplex.homotopyCofiber.inlX_sndX + theorem HomologicalComplex.homotopyCofiber.inrX_d + theorem HomologicalComplex.homotopyCofiber.inrX_fstX + theorem HomologicalComplex.homotopyCofiber.inrX_sndX + theorem HomologicalComplex.homotopyCofiber.shape + theorem HomologicalComplex.homotopyCofiber.sndX_inrX 2023-12-27 09:01:58 7d3d6e4 chore: Improve `Finset` lemma names (#8894) Change a few lemma names that have historically bothered me. * `Finset.card_le_of_subset` → `Finset.card_le_card` * `Multiset.card_le_of_le` → `Multiset.card_le_card` * `Multiset.card_lt_of_lt` → `Multiset.card_lt_card` * `Set.ncard_le_of_subset` → `Set.ncard_le_ncard` * `Finset.image_filter` → `Finset.filter_image` * `CompleteLattice.finset_sup_compact_of_compact` → `CompleteLattice.isCompactElement_finset_sup` ESTIMATED CHANGES Modified Archive/Imo/Imo1994Q1.lean Modified Archive/Imo/Imo2006Q5.lean Modified Archive/Sensitivity.lean Modified Archive/Wiedijk100Theorems/AscendingDescendingSequences.lean Modified Archive/Wiedijk100Theorems/SumOfPrimeReciprocalsDiverges.lean Modified Mathlib/Algebra/BigOperators/Order.lean Modified Mathlib/Algebra/Module/Zlattice.lean Modified Mathlib/Analysis/BoxIntegral/Basic.lean Modified Mathlib/Analysis/BoxIntegral/Partition/Tagged.lean Modified Mathlib/Combinatorics/Additive/Energy.lean Modified Mathlib/Combinatorics/Additive/PluenneckeRuzsa.lean Modified Mathlib/Combinatorics/Additive/RuzsaCovering.lean Modified Mathlib/Combinatorics/Additive/SalemSpencer.lean Modified Mathlib/Combinatorics/Hall/Basic.lean Modified Mathlib/Combinatorics/Hall/Finite.lean Modified Mathlib/Combinatorics/Schnirelmann.lean Modified Mathlib/Combinatorics/SetFamily/Compression/Down.lean Modified Mathlib/Combinatorics/SetFamily/Compression/UV.lean Modified Mathlib/Combinatorics/SetFamily/HarrisKleitman.lean Modified Mathlib/Combinatorics/SetFamily/Kleitman.lean Modified Mathlib/Combinatorics/SetFamily/LYM.lean Modified Mathlib/Combinatorics/SetFamily/Shadow.lean Modified Mathlib/Combinatorics/SetFamily/Shatter.lean Modified Mathlib/Combinatorics/SimpleGraph/Basic.lean Modified Mathlib/Combinatorics/SimpleGraph/Density.lean Modified Mathlib/Combinatorics/SimpleGraph/Regularity/Bound.lean Modified Mathlib/Combinatorics/SimpleGraph/Regularity/Chunk.lean Modified Mathlib/Combinatorics/SimpleGraph/Regularity/Equitabilise.lean Modified Mathlib/Combinatorics/SimpleGraph/Regularity/Uniform.lean Modified Mathlib/Combinatorics/SimpleGraph/Subgraph.lean Modified Mathlib/Data/Finset/Card.lean + theorem Finset.card_le_card - theorem Finset.card_le_of_subset - theorem Finset.card_lt_card +/- theorem Finset.card_mono Modified Mathlib/Data/Finset/Grade.lean Modified Mathlib/Data/Finset/Image.lean + theorem Finset.filter_image - theorem Finset.image_filter Modified Mathlib/Data/Finset/LocallyFinite.lean Modified Mathlib/Data/Finset/NAry.lean Modified Mathlib/Data/Finset/Powerset.lean Modified Mathlib/Data/Finset/Slice.lean Modified Mathlib/Data/Finset/Sups.lean Modified Mathlib/Data/Finsupp/Multiset.lean Modified Mathlib/Data/Fintype/Card.lean Modified Mathlib/Data/Matroid/Basic.lean Modified Mathlib/Data/Matroid/IndepAxioms.lean Modified Mathlib/Data/Multiset/Basic.lean + theorem Multiset.card_le_card - theorem Multiset.card_le_of_le + theorem Multiset.card_lt_card - theorem Multiset.card_lt_of_lt +/- theorem Multiset.card_mono +/- theorem Multiset.card_strictMono Modified Mathlib/Data/MvPolynomial/Variables.lean Modified Mathlib/Data/Nat/Choose/Sum.lean Modified Mathlib/Data/Nat/Count.lean Modified Mathlib/Data/Polynomial/Degree/Definitions.lean Modified Mathlib/Data/Polynomial/Monomial.lean Modified Mathlib/Data/Polynomial/RingDivision.lean Modified Mathlib/Data/Set/Card.lean + theorem Set.encard_le_card - theorem Set.encard_le_of_subset + theorem Set.ncard_le_ncard - theorem Set.ncard_le_of_subset +/- theorem Set.ncard_mono Modified Mathlib/Data/Set/Finite.lean + theorem Set.card_le_card - theorem Set.card_le_of_subset Modified Mathlib/Data/Setoid/Partition.lean Modified Mathlib/FieldTheory/Adjoin.lean Modified Mathlib/GroupTheory/SpecificGroups/Cyclic.lean Modified Mathlib/LinearAlgebra/Lagrange.lean Modified Mathlib/LinearAlgebra/LinearIndependent.lean Modified Mathlib/LinearAlgebra/Multilinear/Basic.lean Modified Mathlib/LinearAlgebra/Span.lean Modified Mathlib/NumberTheory/Bertrand.lean Modified Mathlib/NumberTheory/PrimeCounting.lean Modified Mathlib/Order/CompactlyGenerated.lean - theorem CompleteLattice.finset_sup_compact_of_compact + theorem CompleteLattice.isCompactElement_finsetSup Modified Mathlib/Order/Partition/Finpartition.lean Modified Mathlib/RingTheory/ChainOfDivisors.lean Modified Mathlib/RingTheory/Finiteness.lean Modified Mathlib/RingTheory/RootsOfUnity/Basic.lean Modified Mathlib/RingTheory/RootsOfUnity/Minpoly.lean Modified Mathlib/SetTheory/Cardinal/CountableCover.lean 2023-12-27 08:00:29 df4f655 feat: Finite supremum over a product (#9223) From LeanCamCombi ESTIMATED CHANGES Modified Mathlib/Data/Finset/Lattice.lean + theorem Finset.inf'_prodMap + theorem Finset.inf_prodMap + theorem Finset.prodMk_inf'_inf' + theorem Finset.prodMk_sup'_sup' + theorem Finset.sup'_prodMap + theorem Finset.sup_prodMap 2023-12-27 08:00:28 7a0da1d test: `induction'` error conditions when `generalizing` (#9194) ESTIMATED CHANGES Modified test/cases.lean 2023-12-27 08:00:26 4d78a65 chore(Perm/Basic): generalize `swap_smul_involutive` (#9180) Generalize `Equiv.Perm.ModSumCongr.swap_smul_involutive` to any action of `Equiv.Perm _`, move it to `Perm/Basic`. ESTIMATED CHANGES Modified Mathlib/GroupTheory/Perm/Basic.lean +/- theorem Equiv.swap_mul_self_mul + theorem Equiv.swap_smul_involutive + theorem Equiv.swap_smul_self_smul Modified Mathlib/LinearAlgebra/Alternating/DomCoprod.lean - theorem Equiv.Perm.ModSumCongr.swap_smul_involutive 2023-12-27 08:00:25 2e77db7 feat: cardinality of `Subfield.closure` (#8942) Also generalize results about the cardinality of WType to be universe polymorphic. [Zulip discussion](https://leanprover.zulipchat.com/#narrow/stream/217875-Is-there-code-for-X.3F/topic/Cardinality.20of.20division.20ring.20generated.20by.20.2E.2E.2E/near/406991528) about the approach - [x] depends on: #8941 ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Data/W/Cardinal.lean + theorem WType.cardinal_mk_eq_sum' +/- theorem WType.cardinal_mk_eq_sum + theorem WType.cardinal_mk_le_max_aleph0_of_finite' + theorem WType.cardinal_mk_le_of_le' Added Mathlib/SetTheory/Cardinal/Subfield.lean + theorem Subfield.cardinal_mk_closure + theorem Subfield.cardinal_mk_closure_le_max 2023-12-27 08:00:24 54cf2f5 feat(CategoryTheory/GradedObject): action of a composition of bifunctors (#8242) The action on graded objects of a trifunctor obtained by composition of two bifunctors can be computed as a composition of the actions of these two bifunctors. In this PR, we consider the case when we apply a bifunctor to the first two variables and then a bifunctor to this result and the remaining third variable. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/GradedObject.lean + def CategoryTheory.GradedObject.cofanMapObjComp + theorem CategoryTheory.GradedObject.hasMap_comp + def CategoryTheory.GradedObject.isColimitCofanMapObjComp Modified Mathlib/CategoryTheory/GradedObject/Trifunctor.lean + structure CategoryTheory.GradedObject.BifunctorComp₁₂IndexData + theorem CategoryTheory.GradedObject.HasGoodTrifunctor₁₂Obj.hasMap 2023-12-27 07:29:51 7a302eb feat(Analysis/Calculus/Series): specialize to `deriv` (#9295) Asked by @MichaelStollBayreuth on [Zulip](https://leanprover.zulipchat.com/#narrow/stream/217875-Is-there-code-for-X.3F/topic/Derivative.20of.20series/near/410063277) ESTIMATED CHANGES Modified Mathlib/Analysis/Calculus/Series.lean + theorem deriv_tsum + theorem deriv_tsum_apply + theorem differentiable_tsum' + theorem hasDerivAt_tsum + theorem hasDerivAt_tsum_of_isPreconnected + theorem summable_of_summable_hasDerivAt + theorem summable_of_summable_hasDerivAt_of_isPreconnected 2023-12-27 07:29:50 4fab13d chore: shortcut instances for IntermediateField over an IntermediateField (#9291) Removes [manual letI/haveI](https://github.com/leanprover-community/mathlib4/blob/fe76ea7c2bb0c725ad161755ac158171aa9c545a/Mathlib/FieldTheory/SeparableDegree.lean#L568-L571) that appear in four proofs of #9041 ESTIMATED CHANGES Modified Mathlib/FieldTheory/IntermediateField.lean 2023-12-27 05:26:46 7c5331d doc:Move misplaced docstring (#9296) ESTIMATED CHANGES Modified Mathlib/Computability/TuringMachine.lean 2023-12-27 05:26:45 aede330 chore(*): golf, mostly dropping unused `have`s (#9292) ESTIMATED CHANGES Modified Mathlib/Algebra/ContinuedFractions/ConvergentsEquiv.lean Modified Mathlib/Analysis/MeanInequalitiesPow.lean Modified Mathlib/Analysis/SpecialFunctions/CompareExp.lean Modified Mathlib/Data/Fin/Tuple/Basic.lean Modified Mathlib/Data/Matroid/IndepAxioms.lean Modified Mathlib/Data/Rat/Cast/Defs.lean Modified Mathlib/Init/Data/Nat/Lemmas.lean Modified Mathlib/LinearAlgebra/AffineSpace/Basis.lean Modified Mathlib/LinearAlgebra/FreeModule/Basic.lean Modified Mathlib/MeasureTheory/Integral/Lebesgue.lean Modified Mathlib/MeasureTheory/Integral/MeanInequalities.lean Modified Mathlib/MeasureTheory/Measure/Trim.lean Modified Mathlib/NumberTheory/LegendreSymbol/GaussSum.lean Modified Mathlib/RingTheory/DedekindDomain/Dvr.lean Modified Mathlib/RingTheory/Henselian.lean Modified Mathlib/RingTheory/PowerSeries/Basic.lean 2023-12-27 05:26:44 b6d6921 feat(Algebra/Homology): the category of complexes up to quasi-isomorphisms (#8970) In this PR, we define the category of homological complexes up to quasi-isomorphisms. The derived category of an abelian category shall be a particular case on this construction, but the additional structures on the derived category will require more work. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Homology/Localization.lean + theorem HomologicalComplex.homologyFunctor_inverts_qis Added Mathlib/CategoryTheory/Localization/HasLocalization.lean + def CategoryTheory.MorphismProperty.HasLocalization.standard + def CategoryTheory.MorphismProperty.Localization' + def CategoryTheory.MorphismProperty.Q' 2023-12-27 05:26:43 e981962 feat(CategoryTheory): the localized category when there is a left calculus of fractions (#8921) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Localization/CalculusOfFractions.lean + theorem CategoryTheory.MorphismProperty.LeftFraction.Localization.Hom.comp_eq + def CategoryTheory.MorphismProperty.LeftFraction.Localization.Q + def CategoryTheory.MorphismProperty.LeftFraction.Localization 2023-12-27 05:26:42 e270b05 feat(CategoryTheory): localization of product categories (#8864) The product of finitely many localized categories is the localized category of the product category, provided the classes of morphisms contain identities. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Localization/Pi.lean Modified Mathlib/CategoryTheory/Localization/Predicate.lean + theorem CategoryTheory.Functor.IsLocalization.of_isEquivalence 2023-12-27 05:26:41 9623806 feat(Algebra/Homology): API for the computation of the homology of homological complexes (#8845) This PR introduces more homology API in order to ease the computation of group cohomology in low degrees #8802. The main definition `HomologicalComplex.homologyIsoSc' : K.homology j ≅ (K.sc' i j k).homology` relates the homology of a complex `K` in degree `j` to the homology of a short complex `K.X i ⟶ K.X j ⟶ K.X k` when `i` and `k` are degrees which appear respectively before `j` and after `j`. ESTIMATED CHANGES Modified Mathlib/Algebra/Homology/ShortComplex/HomologicalComplex.lean + theorem HomologicalComplex.cyclesIsoSc'_hom_iCycles + theorem HomologicalComplex.cyclesIsoSc'_inv_iCycles + theorem HomologicalComplex.homologyIsoSc'_hom_ι + theorem HomologicalComplex.homologyIsoSc'_inv_ι + theorem HomologicalComplex.opcyclesIsoSc'_inv_fromOpcycles + theorem HomologicalComplex.pOpcycles_opcyclesIsoSc'_hom + theorem HomologicalComplex.pOpcycles_opcyclesIsoSc'_inv + theorem HomologicalComplex.toCycles_cyclesIsoSc'_hom + theorem HomologicalComplex.π_homologyIsoSc'_hom + theorem HomologicalComplex.π_homologyIsoSc'_inv Modified Mathlib/Algebra/Homology/ShortComplex/ModuleCat.lean + theorem CategoryTheory.ShortComplex.moduleCatCyclesIso_hom_subtype + theorem CategoryTheory.ShortComplex.moduleCatCyclesIso_inv_iCycles + theorem CategoryTheory.ShortComplex.moduleCatCyclesIso_inv_π + theorem CategoryTheory.ShortComplex.toCycles_moduleCatCyclesIso_hom + theorem CategoryTheory.ShortComplex.π_moduleCatCyclesIso_hom 2023-12-27 05:26:40 9ed6b90 refactor: remove `Sym2`'s global `Prod` setoid instance, use `s(x, y)` notation for unordered pairs (#8729) The `Sym2` type used a global setoid instance on `α × α` so that `⟦(x, y)⟧` could stand for an unordered pair using standard `Quotient` syntax. This commit refactors `Sym2` to not use `Quotient` and instead use its own `s(x, y)` notation. One benefit to this is that this notation produces a term with type `Sym2` rather than `Quotient`. The `Fintype` instance for `Sym2` is in `Mathlib.Data.Finset.Sym`. We switch from using the one for `Quotient` because it does not require `DecidableEq`. ESTIMATED CHANGES Modified Mathlib/Combinatorics/SimpleGraph/Acyclic.lean Modified Mathlib/Combinatorics/SimpleGraph/Basic.lean +/- theorem SimpleGraph.Dart.edge_mk +/- theorem SimpleGraph.adj_iff_exists_edge_coe +/- theorem SimpleGraph.fromEdgeSet_adj +/- theorem SimpleGraph.mem_edgeSet +/- theorem SimpleGraph.mem_incidenceSet +/- theorem SimpleGraph.mem_incidence_iff_neighbor +/- theorem SimpleGraph.mk'_mem_incidenceSet_iff +/- theorem SimpleGraph.mk'_mem_incidenceSet_left_iff +/- theorem SimpleGraph.mk'_mem_incidenceSet_right_iff Modified Mathlib/Combinatorics/SimpleGraph/Connectivity.lean +/- theorem SimpleGraph.Walk.adj_of_mem_edges +/- theorem SimpleGraph.Walk.fst_mem_support_of_mem_edges +/- theorem SimpleGraph.Walk.snd_mem_support_of_mem_edges +/- theorem SimpleGraph.isBridge_iff_adj_and_forall_cycle_not_mem Modified Mathlib/Combinatorics/SimpleGraph/DegreeSum.lean Modified Mathlib/Combinatorics/SimpleGraph/IncMatrix.lean Modified Mathlib/Combinatorics/SimpleGraph/Matching.lean Modified Mathlib/Combinatorics/SimpleGraph/Subgraph.lean +/- theorem SimpleGraph.Subgraph.deleteEdges_adj +/- theorem SimpleGraph.Subgraph.mem_edgeSet Modified Mathlib/Combinatorics/SimpleGraph/Triangle/Basic.lean Modified Mathlib/Data/Finset/Sym.lean +/- theorem Finset.isDiag_mk_of_mem_diag +/- theorem Finset.mk_mem_sym2_iff +/- theorem Finset.not_isDiag_mk_of_mem_offDiag +/- theorem Finset.sym2_eq_image Modified Mathlib/Data/List/Sym.lean Modified Mathlib/Data/Multiset/Sym.lean Modified Mathlib/Data/Sym/Card.lean +/- theorem Sym2.card_image_diag Modified Mathlib/Data/Sym/Sym2.lean + def Sym2.Rel.setoid +/- theorem Sym2.ball +/- theorem Sym2.congr_left +/- theorem Sym2.congr_right +/- def Sym2.diag +/- theorem Sym2.eq_iff +/- theorem Sym2.eq_swap + theorem Sym2.filter_image_mk_isDiag + theorem Sym2.filter_image_mk_not_isDiag - theorem Sym2.filter_image_quotient_mk''_isDiag - theorem Sym2.filter_image_quotient_mk''_not_isDiag +/- theorem Sym2.fromRel_proj_prop +/- theorem Sym2.fromRel_prop +/- theorem Sym2.isDiag_iff_proj_eq - theorem Sym2.lift_mk'' + theorem Sym2.lift_mk - theorem Sym2.lift₂_mk'' + theorem Sym2.lift₂_mk +/- theorem Sym2.map_pair_eq +/- theorem Sym2.mem_and_mem_iff +/- theorem Sym2.mem_iff' +/- theorem Sym2.mem_iff +/- theorem Sym2.mem_iff_exists - theorem Sym2.mem_mk''_left - theorem Sym2.mem_mk''_right + theorem Sym2.mem_mk_left + theorem Sym2.mem_mk_right - theorem Sym2.mk''_eq_mk''_iff - theorem Sym2.mk''_isDiag_iff - theorem Sym2.mk''_prod_swap_eq + theorem Sym2.mk_eq_mk_iff + theorem Sym2.mk_isDiag_iff + theorem Sym2.mk_prod_swap_eq +/- theorem Sym2.other_spec' +/- theorem Sym2.other_spec + theorem Sym2.rel_iff' +/- theorem Sym2.rel_iff +/- theorem Sym2.toRel_prop +/- def Sym2 Modified Mathlib/Order/GameAdd.lean +/- theorem Sym2.GameAdd.fst +/- theorem Sym2.GameAdd.fst_snd +/- theorem Sym2.GameAdd.snd +/- theorem Sym2.GameAdd.snd_fst +/- theorem Sym2.gameAdd_iff 2023-12-27 05:26:39 c9e4122 feat(CategoryTheory/Sites): objects which cover the terminal object (#8632) In this PR, given a site `(C, J)`, we introduce the notion of a family of objects `Y : I → C` which "cover the final object". This notion is used in order to formulate results about global sections of sheaves. It shall also be useful in future PRs in order to formulate descent properties of sheaves. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Sites/CoversTop.lean + theorem CategoryTheory.GrothendieckTopology.CoversTop.ext + theorem CategoryTheory.GrothendieckTopology.CoversTop.sections_ext + def CategoryTheory.GrothendieckTopology.CoversTop + theorem CategoryTheory.GrothendieckTopology.coversTop_iff_of_isTerminal + theorem CategoryTheory.Presheaf.FamilyOfElementsOnObjects.IsCompatible.exists_unique_section + theorem CategoryTheory.Presheaf.FamilyOfElementsOnObjects.IsCompatible.familyOfElements_apply + theorem CategoryTheory.Presheaf.FamilyOfElementsOnObjects.IsCompatible.familyOfElements_isCompatible + theorem CategoryTheory.Presheaf.FamilyOfElementsOnObjects.IsCompatible.section_apply + def CategoryTheory.Presheaf.FamilyOfElementsOnObjects.IsCompatible + def CategoryTheory.Presheaf.FamilyOfElementsOnObjects Modified Mathlib/CategoryTheory/Sites/EqualizerSheafCondition.lean +/- theorem CategoryTheory.Equalizer.Presieve.Arrows.sheaf_condition Modified Mathlib/CategoryTheory/Sites/Sieves.lean + theorem CategoryTheory.Sieve.mem_ofArrows_iff + theorem CategoryTheory.Sieve.mem_ofObjects_iff + theorem CategoryTheory.Sieve.ofArrows_eq_ofObjects + theorem CategoryTheory.Sieve.ofArrows_le_ofObjects + theorem CategoryTheory.Sieve.ofArrows_mk + def CategoryTheory.Sieve.ofObjects + theorem CategoryTheory.Sieve.pullback_ofObjects_eq_top 2023-12-27 05:26:38 f9e2c2c refactor(AlgebraicTopology): using the cofan API for SplitSimplicialObject (#8531) This PR changes the definition of a splitting of simplicial objects. The new definition makes a better use of the cofan API. As a result, it is no longer necessary to assume that the category has finite coproducts. ESTIMATED CHANGES Modified Mathlib/AlgebraicTopology/DoldKan/FunctorGamma.lean - theorem AlgebraicTopology.DoldKan.Γ₀.splitting_iso_hom_eq_id - theorem AlgebraicTopology.DoldKan.Γ₀.splitting_map_eq_id Modified Mathlib/AlgebraicTopology/DoldKan/GammaCompN.lean Modified Mathlib/AlgebraicTopology/DoldKan/NCompGamma.lean Modified Mathlib/AlgebraicTopology/DoldKan/SplitSimplicialObject.lean + theorem SimplicialObject.Splitting.cofan_inj_comp_PInfty_eq_zero + theorem SimplicialObject.Splitting.cofan_inj_πSummand_eq_id + theorem SimplicialObject.Splitting.cofan_inj_πSummand_eq_zero - theorem SimplicialObject.Splitting.ιSummand_comp_PInfty_eq_zero - theorem SimplicialObject.Splitting.ι_πSummand_eq_id - theorem SimplicialObject.Splitting.ι_πSummand_eq_zero + theorem SimplicialObject.Splitting.πSummand_comp_cofan_inj_id_comp_PInfty_eq_PInfty - theorem SimplicialObject.Splitting.πSummand_comp_ιSummand_comp_PInfty_eq_PInfty Modified Mathlib/AlgebraicTopology/SplitSimplicialObject.lean + theorem SimplicialObject.Split.cofan_inj_naturality_symm + def SimplicialObject.Split.natTransCofanInj - def SimplicialObject.Split.natTransιSummand - theorem SimplicialObject.Split.ιSummand_naturality_symm + def SimplicialObject.Splitting.cofan' + def SimplicialObject.Splitting.cofan + theorem SimplicialObject.Splitting.cofan_inj_comp_app + theorem SimplicialObject.Splitting.cofan_inj_epi_naturality + theorem SimplicialObject.Splitting.cofan_inj_eq + theorem SimplicialObject.Splitting.cofan_inj_id + def SimplicialObject.Splitting.isColimit - def SimplicialObject.Splitting.iso - theorem SimplicialObject.Splitting.iso_hom - theorem SimplicialObject.Splitting.iso_inv - def SimplicialObject.Splitting.map - def SimplicialObject.Splitting.ιCoprod - def SimplicialObject.Splitting.ιSummand - theorem SimplicialObject.Splitting.ιSummand_comp_app - theorem SimplicialObject.Splitting.ιSummand_epi_naturality - theorem SimplicialObject.Splitting.ιSummand_eq - theorem SimplicialObject.Splitting.ιSummand_id 2023-12-27 05:26:37 c7483a3 feat: In a ring, sets act on submodules (#7140) If $M$ is an $R$-module, $N$ a submodule and $S$ a subset of $R$. Then we can define $S \cdot N$ to be the smallest submodule containing all $s \cdot n$ where $s \in S$ and $n \in N$ ESTIMATED CHANGES Modified Mathlib/Algebra/Module/Submodule/Pointwise.lean + theorem Submodule.coe_span_smul + theorem Submodule.empty_set_smul + theorem Submodule.mem_set_smul(x + theorem Submodule.mem_set_smul_def + theorem Submodule.mem_set_smul_of_mem_mem + theorem Submodule.mem_singleton_set_smul + theorem Submodule.set_smul_bot + theorem Submodule.set_smul_eq_iSup + theorem Submodule.set_smul_eq_map + theorem Submodule.set_smul_eq_of_le + theorem Submodule.set_smul_inductionOn + theorem Submodule.set_smul_le + theorem Submodule.set_smul_le_iff + theorem Submodule.set_smul_le_of_le_le + theorem Submodule.set_smul_mono_left + theorem Submodule.set_smul_mono_right + theorem Submodule.singleton_set_smul + theorem Submodule.sup_set_smul Modified Mathlib/RingTheory/Ideal/Operations.lean + theorem Submodule.coe_set_smul + theorem Submodule.span_smul_eq 2023-12-27 04:42:56 fb6ba07 chore(LinearAlgebra): rename to enable `LinearIndependent` dot notation (#9144) + Rename `cardinal_lift_le_rank_of_linearIndependent`, `cardinal_le_rank_of_linearIndependent(')`, `cardinal_mk/fintype_card/finset_card_le_finrank_of_linearIndependent`, `fintype_card_le_finrank_of_linearIndependent`, `finset_card_le_finrank_of_linearIndependent` by removing trailing `_of_linearIndependent` in favor of namespace `LinearIndependent.` + Remove `cardinal_lift_le_rank_of_linearIndependent'`, exact duplicate of the version without the prime + Rename `FiniteDimensional/Module.Finite.lt_aleph0_of_linearIndependent` to `LinearIndependent.lt_aleph0_of_finiteDimensional/finite` + Add one lemma `LinearIndependent.aleph0_le_rank` in LinearAlgebra/Dimension and two lemmas `LinearIndependent.finrank_eq_zero_of_infinite` and `finrank_eq_nat_card_basis` in LinearAlgebra/Finrank + Remove `StrongRankCondition` from `finrank_eq_zero_of_basis_imp_not_finite` and four subsequent lemmas ESTIMATED CHANGES Modified Mathlib/FieldTheory/Fixed.lean Modified Mathlib/LinearAlgebra/Dimension.lean + theorem LinearIndependent.aleph0_le_rank + theorem LinearIndependent.cardinal_le_rank' + theorem LinearIndependent.cardinal_le_rank + theorem LinearIndependent.cardinal_lift_le_rank - theorem cardinal_le_rank_of_linearIndependent' - theorem cardinal_le_rank_of_linearIndependent - theorem cardinal_lift_le_rank_of_linearIndependent' - theorem cardinal_lift_le_rank_of_linearIndependent Modified Mathlib/LinearAlgebra/FiniteDimensional.lean - theorem FiniteDimensional.lt_aleph0_of_linearIndependent + theorem LinearIndependent.lt_aleph0_of_finiteDimensional Modified Mathlib/LinearAlgebra/Finrank.lean + theorem LinearIndependent.finrank_eq_zero_of_infinite + theorem finrank_eq_nat_card_basis Modified Mathlib/LinearAlgebra/FreeModule/Finite/Rank.lean - theorem FiniteDimensional.cardinal_mk_le_finrank_of_linearIndependent - theorem FiniteDimensional.finset_card_le_finrank_of_linearIndependent - theorem FiniteDimensional.fintype_card_le_finrank_of_linearIndependent + theorem LinearIndependent.cardinal_mk_le_finrank +/- theorem LinearIndependent.finite + theorem LinearIndependent.finset_card_le_finrank + theorem LinearIndependent.fintype_card_le_finrank + theorem LinearIndependent.lt_aleph0_of_finite +/- theorem LinearIndependent.setFinite - theorem Module.Finite.lt_aleph0_of_linearIndependent 2023-12-27 00:57:40 b4b3958 chore: delete omega syntax stub (#9294) as omega is now in std ESTIMATED CHANGES Modified Mathlib/Mathport/Syntax.lean 2023-12-26 23:40:24 c8b9760 chore: deprecate `prod_zero_iff_exists_zero` (#9281) - Make `Multiset.prod_eq_zero_iff` a `simp` lemma. - Golf and deprecate `prod_zero_iff_exists_zero`; it was a bad API version of `Multiset.prod_eq_zero_iff`. - Make `Ideal.mul_eq_bot` a `simp` lemma`. - Add `Ideal.multiset_prod_eq_bot` (a `simp` lemma), deprecate `Ideal.prod_eq_bot`. The deprecated lemmas `prod_zero_iff_exists_zero` and `Ideal.prod_eq_bot` use `∃ x ∈ s, x = 0` instead of a simpler `0 ∈ s` in the RHS. ESTIMATED CHANGES Modified Mathlib/Algebra/BigOperators/Multiset/Basic.lean Modified Mathlib/Algebra/GroupWithZero/NonZeroDivisors.lean Modified Mathlib/NumberTheory/ArithmeticFunction.lean Modified Mathlib/RingTheory/Ideal/Operations.lean + theorem Ideal.multiset_prod_eq_bot 2023-12-26 22:33:55 9757df4 chore: remove workarounds for lean4#1891 (#9290) We no longer need to explicitly specify the `Monotone` and `StrictMono` arguments, after https://github.com/leanprover/lean4/commit/069873d8e5e0e7bed18f71edb63d18da50748ec9 fixed https://github.com/leanprover/lean4/issues/1891. Compare to the mathlib3 declarations: https://github.com/leanprover-community/mathlib/blob/65a1391a0106c9204fe45bc73a039f056558cb83/src/data/prod/lex.lean#L93-L107 ESTIMATED CHANGES Modified Mathlib/Data/Prod/Lex.lean +/- theorem Prod.Lex.toLex_mono +/- theorem Prod.Lex.toLex_strictMono 2023-12-26 22:33:54 04c6d77 chore: use elab_as_elim directly, now that lean4#1900 is fixed (#9288) Adds the attribute `elab_as_elim` directly to the declarations of `strongSubRecursion` and `pincerRecursion`, rather than in separate commands. This change was made possible by https://github.com/leanprover/lean4/commit/8a573b5d87a42bd19307522ee747aaed44d9d71c, which fixed https://github.com/leanprover/lean4/issues/1900. ESTIMATED CHANGES Modified Mathlib/Data/Nat/Basic.lean 2023-12-26 22:33:53 c228bcf chore: Remove superfluous lemma that uses `n.factors.toFinset` (#9248) I added `prod_factors_toFinset_of_squarefree` before `primeFactors` existed. I suspect it was missed during the refactor. ESTIMATED CHANGES Modified Mathlib/Data/Nat/Squarefree.lean - theorem Nat.prod_factors_toFinset_of_squarefree 2023-12-26 22:33:52 a76fbc3 chore: audit remaining uses of "local homeomorphism" in comments (#9245) Almost all of them should speak about partial homeomorphisms instead. In two cases, I decided removing the "local" was clearer than adding "partial". Follow-up to #8982; complements #9238. ESTIMATED CHANGES Modified Mathlib/Analysis/Calculus/ContDiff/Basic.lean Modified Mathlib/Analysis/Calculus/Deriv/Inverse.lean Modified Mathlib/Analysis/Calculus/FDeriv/Equiv.lean Modified Mathlib/Analysis/Calculus/Implicit.lean Modified Mathlib/Analysis/Calculus/InverseFunctionTheorem/ApproximatesLinearOn.lean Modified Mathlib/Analysis/NormedSpace/HomeomorphBall.lean Modified Mathlib/Analysis/SpecialFunctions/PolarCoord.lean Modified Mathlib/Geometry/Manifold/ChartedSpace.lean Modified Mathlib/Geometry/Manifold/ConformalGroupoid.lean Modified Mathlib/Geometry/Manifold/ContMDiff/Atlas.lean Modified Mathlib/Geometry/Manifold/Instances/Sphere.lean Modified Mathlib/Geometry/Manifold/LocalInvariantProperties.lean Modified Mathlib/Geometry/Manifold/MFDeriv.lean Modified Mathlib/Geometry/Manifold/SmoothManifoldWithCorners.lean Modified Mathlib/Geometry/Manifold/VectorBundle/Basic.lean Modified Mathlib/Topology/FiberBundle/Basic.lean Modified Mathlib/Topology/FiberBundle/Trivialization.lean Modified Mathlib/Topology/VectorBundle/Basic.lean 2023-12-26 22:33:51 299792d chore: Generalise monotonicity of `•` lemmas in modules (#9241) Sort the lemmas in `Algebra.Order.Module` into `Algebra.Order.Module.Defs` and `Algebra.Order.Module.Pointwise`. Generalise them. A later PR will rename the lemmas to better match the naming convention. ESTIMATED CHANGES Modified Mathlib.lean Deleted Mathlib/Algebra/Order/Module.lean - theorem BddAbove.smul_of_nonpos - theorem BddBelow.smul_of_nonpos - def OrderIso.smulLeftDual - theorem antitone_smul_left - theorem bddAbove_smul_iff_of_neg - theorem bddBelow_smul_iff_of_neg - theorem inv_smul_le_iff_of_neg - theorem inv_smul_lt_iff_of_neg - theorem lowerBounds_smul_of_neg - theorem lt_of_smul_lt_smul_of_nonpos - theorem nonneg_and_nonneg_or_nonpos_and_nonpos_of_smul_nonneg - theorem smul_add_smul_le_smul_add_smul' - theorem smul_add_smul_le_smul_add_smul - theorem smul_add_smul_lt_smul_add_smul' - theorem smul_add_smul_lt_smul_add_smul - theorem smul_inv_le_iff_of_neg - theorem smul_inv_lt_iff_of_neg - theorem smul_le_smul_iff_of_neg - theorem smul_le_smul_of_nonpos - theorem smul_lowerBounds_subset_upperBounds_smul - theorem smul_lt_smul_iff_of_neg - theorem smul_lt_smul_of_neg - theorem smul_max_of_nonpos - theorem smul_min_of_nonpos - theorem smul_neg_iff_of_neg - theorem smul_neg_iff_of_pos - theorem smul_nonneg_iff - theorem smul_nonneg_iff_neg_imp_nonpos - theorem smul_nonneg_iff_pos_imp_nonneg - theorem smul_nonneg_of_nonpos_of_nonpos - theorem smul_nonpos_iff - theorem smul_nonpos_iff_neg_imp_nonneg - theorem smul_nonpos_iff_pos_imp_nonpos - theorem smul_pos_iff_of_neg - theorem smul_upperBounds_subset_lowerBounds_smul - theorem strict_anti_smul_left - theorem upperBounds_smul_of_neg Modified Mathlib/Algebra/Order/Module/Defs.lean + def OrderIso.smulLeftDual + theorem antitone_smul_left + theorem inv_smul_le_iff_of_neg + theorem inv_smul_lt_iff_of_neg + theorem le_of_smul_le_smul_of_neg + theorem lt_of_smul_lt_smul_of_nonpos +/- theorem neg_of_smul_neg_left +/- theorem neg_of_smul_neg_right' +/- theorem neg_of_smul_neg_right + theorem nonneg_and_nonneg_or_nonpos_and_nonpos_of_smul_nonneg +/- theorem pos_of_smul_pos_left +/- theorem pos_of_smul_pos_right + theorem smul_add_smul_le_smul_add_smul' + theorem smul_add_smul_le_smul_add_smul + theorem smul_add_smul_lt_smul_add_smul' + theorem smul_add_smul_lt_smul_add_smul + theorem smul_inv_le_iff_of_neg + theorem smul_inv_lt_iff_of_neg + theorem smul_le_smul_iff_of_neg + theorem smul_le_smul_of_nonpos + theorem smul_lt_smul_iff_of_neg + theorem smul_lt_smul_of_neg + theorem smul_max_of_nonpos + theorem smul_min_of_nonpos + theorem smul_neg_iff_of_neg + theorem smul_neg_iff_of_pos_left + theorem smul_nonneg_iff + theorem smul_nonneg_iff_neg_imp_nonpos + theorem smul_nonneg_iff_pos_imp_nonneg + theorem smul_nonneg_of_nonpos_of_nonpos + theorem smul_nonpos_iff + theorem smul_nonpos_iff_neg_imp_nonneg + theorem smul_nonpos_iff_pos_imp_nonpos + theorem smul_pos_iff_of_neg + theorem strict_anti_smul_left Modified Mathlib/Algebra/Order/Module/Pointwise.lean + theorem BddAbove.smul_of_nonpos + theorem BddBelow.smul_of_nonpos + theorem bddAbove_smul_iff_of_neg + theorem bddBelow_smul_iff_of_neg + theorem lowerBounds_smul_of_neg + theorem smul_lowerBounds_subset_upperBounds_smul + theorem smul_upperBounds_subset_lowerBounds_smul + theorem upperBounds_smul_of_neg Modified Mathlib/Algebra/Order/Module/Synonym.lean Modified Mathlib/Algebra/Order/Monovary.lean Modified Mathlib/Algebra/Order/Nonneg/Module.lean Modified Mathlib/Algebra/Order/Rearrangement.lean Modified Mathlib/Analysis/Convex/Basic.lean Modified Mathlib/Data/Real/Pointwise.lean Modified Mathlib/LinearAlgebra/AffineSpace/Ordered.lean 2023-12-26 22:33:50 401acd5 feat: Basic finset lemmas (#9225) From LeanAPAP and LeanCamCombi ESTIMATED CHANGES Modified Mathlib/Data/Finset/Basic.lean + theorem Finset.Nonempty.exists_cons_eq + theorem Finset.Nontrivial.exists_cons_eq + theorem Finset.coe_subset_singleton + theorem Finset.cons_sdiff_cons + theorem Finset.disjoint_erase_insert + theorem Finset.disjoint_insert_erase + theorem Finset.erase_nonempty + theorem Finset.erase_sdiff_erase + theorem Finset.insert_sdiff_insert' + theorem Finset.singleton_subset_coe Modified Mathlib/Data/Fintype/Basic.lean + theorem Finset.filter_univ_mem + theorem Finset.singleton_eq_univ + theorem Finset.subset_compl_comm + theorem Finset.subset_compl_singleton Modified Mathlib/Data/Fintype/Card.lean + theorem Fintype.card_additive + theorem Fintype.card_multiplicative 2023-12-26 22:33:49 2bb32b6 feat(Data/ZMod/Basic): add `inv_eq_of_mul_eq_one` (#9140) ESTIMATED CHANGES Modified Mathlib/Data/ZMod/Basic.lean 2023-12-26 22:33:48 230b6ac feat(Algebra/Homology): binary biproducts of homological complexes (#8966) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Homology/HomologicalComplexBiprod.lean + theorem HomologicalComplex.biprodXIso_hom_fst + theorem HomologicalComplex.biprodXIso_hom_snd + theorem HomologicalComplex.biprod_inl_desc_f + theorem HomologicalComplex.biprod_inl_fst_f + theorem HomologicalComplex.biprod_inl_snd_f + theorem HomologicalComplex.biprod_inr_desc_f + theorem HomologicalComplex.biprod_inr_fst_f + theorem HomologicalComplex.biprod_inr_snd_f + theorem HomologicalComplex.biprod_lift_fst_f + theorem HomologicalComplex.biprod_lift_snd_f + theorem HomologicalComplex.inl_biprodXIso_inv + theorem HomologicalComplex.inr_biprodXIso_inv 2023-12-26 21:38:01 4ad935a feat(LinearAlgebra, Cardinal): new cardinal lemmas to generalize some results about `Module.rank` in #9151 (#9253) + Proves that `Sup` (ciSup) commutes with cardinal addition (`ciSup_add_ciSup`) and multiplication. Generalize results in Cardinal/Basic introduced in #8842 to achieve this. + Use `ciSup_add_ciSup` to prove that the rank of a module is always at least the rank of a submodule plus the rank of the quotient by the submodule. Deduce that the rank of a product module is at least the sum of the ranks of the two factors. + Show that quotienting by a torsion submodule preserves the rank. + Golf `rank_zero_iff_forall_zero` using a recently added lemma. ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/Dimension.lean + theorem lift_rank_add_lift_rank_le_rank_prod + theorem nonempty_linearIndependent_set + theorem rank_add_rank_le_rank_prod + theorem rank_quotient_add_rank_le + theorem rank_quotient_eq_of_le_torsion Modified Mathlib/SetTheory/Cardinal/Basic.lean +/- theorem Cardinal.exists_eq_natCast_of_iSup_eq Modified Mathlib/SetTheory/Cardinal/Ordinal.lean 2023-12-26 21:14:30 44b647d feat(FieldTheory/PolynomialGaloisGroup): The Galois group of an irreducible polynomial acts transitively on the roots (#9121) This PR adds a lemma stating that the Galois group of an irreducible polynomial acts transitively on the roots. ESTIMATED CHANGES Modified Mathlib/FieldTheory/PolynomialGaloisGroup.lean + theorem Polynomial.Gal.galAction_isPretransitive 2023-12-26 20:50:31 a8d482d docs: kmill update areas (#9289) ESTIMATED CHANGES Modified README.md 2023-12-26 20:26:20 fae2023 chore: Make Szeméredi regularity calculation more readable (#9284) by using `calc`, `gcongr` and `positivity`. This should be much more maintainable now. Nicely enough, this reduces the total number of lines. ESTIMATED CHANGES Modified Mathlib/Combinatorics/SimpleGraph/Regularity/Bound.lean + theorem SzemerediRegularity.coe_stepBound Modified Mathlib/Combinatorics/SimpleGraph/Regularity/Increment.lean +/- theorem SzemerediRegularity.energy_increment + theorem SzemerediRegularity.le_sum_distinctPairs_edgeDensity_sq - theorem SzemerediRegularity.offDiag_pairs_le_increment_energy - theorem SzemerediRegularity.pairContrib_lower_bound - theorem SzemerediRegularity.uniform_add_nonuniform_eq_offDiag_pairs Modified Mathlib/Combinatorics/SimpleGraph/Regularity/Lemma.lean 2023-12-26 19:32:16 e62554d feat: Basic probability lemmas assuming null-measurability (#9222) and transferring probabiity measures across `ULift` From LeanCamCombi and PFR ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Measure/Typeclasses.lean +/- theorem MeasureTheory.isProbabilityMeasure_map + theorem MeasureTheory.mem_ae_iff_prob_eq_one₀ +/- theorem MeasureTheory.one_le_prob_iff +/- theorem MeasureTheory.prob_compl_eq_one_iff + theorem MeasureTheory.prob_compl_eq_one_iff₀ +/- theorem MeasureTheory.prob_compl_eq_one_sub + theorem MeasureTheory.prob_compl_eq_one_sub₀ +/- theorem MeasureTheory.prob_compl_eq_zero_iff + theorem MeasureTheory.prob_compl_eq_zero_iff₀ 2023-12-26 16:00:04 be0b59d chore(*): use `∀ s ⊆ t, _` etc (#9276) Changes in this PR shouldn't change the public API. The only changes about `∃ x ∈ s, _` is inside a proof. ESTIMATED CHANGES Modified Archive/Imo/Imo2021Q1.lean Modified Mathlib/Algebra/Function/Support.lean Modified Mathlib/Analysis/Calculus/TangentCone.lean Modified Mathlib/Analysis/InnerProductSpace/Projection.lean Modified Mathlib/Analysis/NormedSpace/lpSpace.lean Modified Mathlib/Combinatorics/Additive/PluenneckeRuzsa.lean +/- theorem Finset.card_mul_pow_le Modified Mathlib/Computability/Partrec.lean Modified Mathlib/Computability/Primrec.lean Modified Mathlib/Data/Nat/Prime.lean +/- theorem Nat.prime_def_lt'' Modified Mathlib/GroupTheory/Submonoid/Membership.lean +/- def Submonoid.closureCommMonoidOfComm Modified Mathlib/GroupTheory/Subsemigroup/Membership.lean Modified Mathlib/LinearAlgebra/Eigenspace/Basic.lean Modified Mathlib/LinearAlgebra/LinearIndependent.lean Modified Mathlib/MeasureTheory/Measure/VectorMeasure.lean Modified Mathlib/NumberTheory/DiophantineApproximation.lean Modified Mathlib/RingTheory/DedekindDomain/Dvr.lean Modified Mathlib/RingTheory/DedekindDomain/Ideal.lean Modified Mathlib/Topology/Category/TopCat/Limits/Cofiltered.lean Modified Mathlib/Topology/Semicontinuous.lean +/- theorem lowerSemicontinuousAt_biSup +/- theorem lowerSemicontinuousOn_biSup +/- theorem lowerSemicontinuousWithinAt_biSup +/- theorem lowerSemicontinuous_biSup +/- theorem upperSemicontinuousAt_biInf +/- theorem upperSemicontinuousOn_biInf +/- theorem upperSemicontinuousWithinAt_biInf +/- theorem upperSemicontinuous_biInf Modified Mathlib/Topology/ShrinkingLemma.lean 2023-12-26 13:40:32 5a809b6 feat: Define `IsUnramified` for infinite places (#9285) ESTIMATED CHANGES Modified Mathlib/NumberTheory/NumberField/Embeddings.lean + theorem NumberField.ComplexEmbedding.IsConj.coe_stabilzer_mk + theorem NumberField.ComplexEmbedding.IsConj.eq + theorem NumberField.ComplexEmbedding.IsConj.ext + theorem NumberField.ComplexEmbedding.IsConj.ext_iff + theorem NumberField.ComplexEmbedding.IsConj.isReal_comp + theorem NumberField.ComplexEmbedding.IsConj.isUnramified_mk_iff + theorem NumberField.ComplexEmbedding.IsConj.symm + def NumberField.ComplexEmbedding.IsConj + theorem NumberField.ComplexEmbedding.isConj_one_iff + theorem NumberField.ComplexEmbedding.isConj_symm + theorem NumberField.InfinitePlace.IsReal.isUnramified + theorem NumberField.InfinitePlace.IsUnramified.stabilizer_eq_bot + def NumberField.InfinitePlace.IsUnramified + def NumberField.InfinitePlace.IsUnramifiedIn + theorem NumberField.InfinitePlace.card_eq_card_isUnramifiedIn + theorem NumberField.InfinitePlace.card_isUnramified + theorem NumberField.InfinitePlace.card_isUnramified_compl + theorem NumberField.InfinitePlace.card_stabilizer + theorem NumberField.InfinitePlace.even_card_aut_of_not_isUnramified + theorem NumberField.InfinitePlace.even_card_aut_of_not_isUnramifiedIn + theorem NumberField.InfinitePlace.even_finrank_of_not_isUnramified + theorem NumberField.InfinitePlace.even_finrank_of_not_isUnramifiedIn + theorem NumberField.InfinitePlace.even_nat_card_aut_of_not_isUnramified +/- theorem NumberField.InfinitePlace.exists_smul_eq_of_comap_eq + theorem NumberField.InfinitePlace.isUnramifiedIn_comap + theorem NumberField.InfinitePlace.isUnramified_iff + theorem NumberField.InfinitePlace.isUnramified_iff_card_stabilizer_eq_one + theorem NumberField.InfinitePlace.isUnramified_iff_stabilizer_eq_bot + theorem NumberField.InfinitePlace.isUnramified_mk_iff_forall_isConj + theorem NumberField.InfinitePlace.isUnramified_smul_iff + theorem NumberField.InfinitePlace.mem_stabilizer_mk_iff + theorem NumberField.InfinitePlace.nat_card_stabilizer_eq_one_or_two + theorem NumberField.InfinitePlace.not_isComplex_iff_isReal + theorem NumberField.InfinitePlace.not_isUnramified_iff + theorem NumberField.InfinitePlace.not_isUnramified_iff_card_stabilizer_eq_two 2023-12-26 13:40:31 2d7e88a feat: A dedekind domain that is local is a PID. (#9282) ESTIMATED CHANGES Modified Mathlib/RingTheory/Artinian.lean Modified Mathlib/RingTheory/DiscreteValuationRing/TFAE.lean + theorem LocalRing.finrank_CotangentSpace_eq_one + theorem LocalRing.finrank_CotangentSpace_eq_one_iff + theorem tfae_of_isNoetherianRing_of_localRing_of_isDomain Modified Mathlib/RingTheory/Filtration.lean + theorem Ideal.isIdempotentElem_iff_eq_bot_or_top_of_localRing Modified Mathlib/RingTheory/Ideal/Cotangent.lean + theorem LocalRing.CotangentSpace.map_eq_top_iff + theorem LocalRing.CotangentSpace.span_image_eq_top_iff + theorem LocalRing.finrank_cotangentSpace_eq_zero + theorem LocalRing.finrank_cotangentSpace_eq_zero_iff + theorem LocalRing.finrank_cotangentSpace_le_one_iff + theorem LocalRing.subsingleton_cotangentSpace_iff Modified Mathlib/RingTheory/Nakayama.lean Modified Mathlib/RingTheory/Valuation/ValuationRing.lean +/- theorem ValuationRing.iff_local_bezout_domain 2023-12-26 13:18:05 08636fb feat: derivative of minpoly is in the different ideal. (#9283) ESTIMATED CHANGES Modified Mathlib/NumberTheory/KummerDedekind.lean + theorem mem_coeSubmodule_conductor Modified Mathlib/RingTheory/DedekindDomain/Different.lean + theorem aeval_derivative_mem_differentIdeal + theorem conductor_mul_differentIdeal + theorem traceForm_dualSubmodule_adjoin 2023-12-26 12:09:06 cd497df feat: Taylor series for `cosh` and `sinh` (#9100) and derive `cosh x ≤ exp (x ^ 2 / 2)` as a corollary ESTIMATED CHANGES Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Series.lean + theorem Complex.cosh_eq_tsum + theorem Complex.hasSum_cosh + theorem Complex.hasSum_sinh + theorem Complex.sinh_eq_tsum + theorem Real.cosh_eq_tsum + theorem Real.cosh_le_exp_half_sq + theorem Real.hasSum_cosh + theorem Real.hasSum_sinh + theorem Real.sinh_eq_tsum 2023-12-26 12:09:05 351b5cc feat: Positivity extensions for `Real.sinh`, `Real.cosh` (#9098) Also fix the name of `Real.Mathlib.Meta.Positivity.evalExp` to `Mathlib.Meta.Positivity.evalRealPi`. ESTIMATED CHANGES Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Basic.lean + def Mathlib.Meta.Positivity.evalRealPi - def Real.Mathlib.Meta.Positivity.evalExp Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Deriv.lean + def Mathlib.Meta.Positivity.evalSinh + theorem Real.sinh_eq_zero + theorem Real.sinh_ne_zero Modified Mathlib/Data/Complex/Exponential.lean + def Mathlib.Meta.Positivity.evalCosh 2023-12-26 12:09:04 9a4fb8e Adding Descartes' Rule of Signs to the 100 problems (#9086) Adding Descartes' Rule of Signs to the 100 problems ESTIMATED CHANGES Modified docs/100.yaml 2023-12-26 12:09:03 9d8e41e feat(CategoryTheory/Triangulated): Functor.mapTriangle commutes with the shift (#9073) If `F : C ⥤ D` is an additive functor which commutes with a shift by `ℤ`, then `F.mapTriangle : Triangle C ⥤ Triangle D` also commutes with the shift. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Shift/CommShift.lean + theorem CategoryTheory.Functor.map_shiftFunctorComm_hom_app Modified Mathlib/CategoryTheory/Triangulated/Functor.lean Modified Mathlib/CategoryTheory/Triangulated/TriangleShift.lean + theorem CategoryTheory.Pretriangulated.Triangle.shiftFunctorAdd'_eq + theorem CategoryTheory.Pretriangulated.Triangle.shiftFunctorAdd_eq + theorem CategoryTheory.Pretriangulated.Triangle.shiftFunctorZero_eq + theorem CategoryTheory.Pretriangulated.Triangle.shiftFunctor_eq 2023-12-26 11:03:27 40d7ce1 feat(Set/NAry): add `Set.image2_range` (#9220) Generalize `Set.range_smul_range` to any `Set.image2`. ESTIMATED CHANGES Modified Mathlib/Data/Set/NAry.lean + theorem Set.image2_range Modified Mathlib/Data/Set/Pointwise/SMul.lean 2023-12-26 11:03:26 10597c9 feat: Lemmas about `ZMod` (#9143) Added some lemmas about `ZMod` and its units: * Generalized `lt` to `le` in two lemmas * `((a : ZMod n) : ZMod m) = a` if `m ≤ n` * `unitsMap` is surjective * `Units.map f (-a) = -Units.map f a` (which can be applied to `unitsMap`) * `Units.map (-1) = -1` (which can be applied to `unitsMap`) ESTIMATED CHANGES Modified Mathlib/Algebra/Ring/Units.lean Modified Mathlib/Data/ZMod/Basic.lean + theorem ZMod.cast_cast_zmod_of_le + theorem ZMod.cast_injective_of_le - theorem ZMod.cast_injective_of_lt + theorem ZMod.cast_zmod_eq_zero_iff_of_le - theorem ZMod.cast_zmod_eq_zero_iff_of_lt Modified Mathlib/Data/ZMod/Units.lean + theorem ZMod.unitsMap_surjective 2023-12-26 11:03:25 37eaeb0 feat(Algebra/Ring/CentroidHom): CentroidHom and algebras (#8699) Explore the relationship between the Centroid of a ring and algebra: - A a non-unital, non-associative semiring α is an algebra over the Semiring CentroidHom α - When the non-unital, non-associative semiring α is an algebra over the commutative semiring R, then CentroidHom α is a ring over R, provided the range of the natural ring homomorphism from R into CentroidHom α lies in the center of CentroidHom α. ESTIMATED CHANGES Modified Mathlib/Algebra/Ring/CentroidHom.lean + theorem CentroidHom.smul_def + def Module.toCentroidHom 2023-12-26 10:38:23 499d538 feat: define `QuadraticForm.IsOrtho` as `Q (x + y) = Q x + Q y` (#9141) This includes some basic API, and the connection with `BilinForm.IsOrtho`. The motivation for this definition are the results about vectors commuting in a clifford algebra. ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/CliffordAlgebra/Basic.lean + theorem CliffordAlgebra.mul_ι_mul_ι_of_isOrtho - theorem CliffordAlgebra.ι_mul_comm + theorem CliffordAlgebra.ι_mul_ι_add_swap_of_isOrtho + theorem CliffordAlgebra.ι_mul_ι_comm + theorem CliffordAlgebra.ι_mul_ι_comm_of_isOrtho + theorem CliffordAlgebra.ι_mul_ι_mul_of_isOrtho Modified Mathlib/LinearAlgebra/ExteriorAlgebra/Basic.lean Modified Mathlib/LinearAlgebra/QuadraticForm/Basic.lean + theorem BilinForm.toQuadraticForm_isOrtho + theorem QuadraticForm.IsOrtho.all + theorem QuadraticForm.IsOrtho.polar_eq_zero + theorem QuadraticForm.IsOrtho.zero_left + theorem QuadraticForm.IsOrtho.zero_right + def QuadraticForm.IsOrtho + theorem QuadraticForm.associated_isOrtho + theorem QuadraticForm.isOrtho_comm + theorem QuadraticForm.isOrtho_def + theorem QuadraticForm.isOrtho_polarBilin + theorem QuadraticForm.ne_zero_of_not_isOrtho_self Modified Mathlib/LinearAlgebra/QuadraticForm/IsometryEquiv.lean Modified Mathlib/LinearAlgebra/QuadraticForm/Prod.lean + theorem QuadraticForm.IsOrtho.inl_inr + theorem QuadraticForm.IsOrtho.inr_inl + theorem QuadraticForm.IsOrtho.prod + theorem QuadraticForm.isOrtho_inl_inl_iff + theorem QuadraticForm.isOrtho_inr_inr_iff 2023-12-26 07:50:43 9672388 chore(SpecialFunctions/Gamma): golf a proof (#9277) Use `induction .. generalizing` instead of `suffices`. ESTIMATED CHANGES Modified Mathlib/Analysis/SpecialFunctions/Gamma/Beta.lean +/- theorem Complex.differentiable_one_div_Gamma 2023-12-26 07:50:42 cb22168 doc(Algebra/Order/Group/Defs): fix typo `monoid` -> `group` for `LinearOrderedAddCommGroupWithTop` (#9266) ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Group/Defs.lean 2023-12-26 07:50:41 6f7d92d feat(CompactOpen): unify 2 `continuous_eval` lemmas (#9264) Introduce a typeclass `LocallyCompactPair` that allows us to unify different versions of `ContinuousMap.continuous_eval` and similar lemmas. ESTIMATED CHANGES Modified Mathlib/Topology/CompactOpen.lean +/- theorem ContinuousMap.continuous.comp' +/- theorem ContinuousMap.continuous_comp' + theorem ContinuousMap.continuous_compactOpen - theorem ContinuousMap.continuous_eval' + theorem ContinuousMap.continuous_eval + theorem ContinuousMap.eventually_mapsTo + theorem ContinuousMap.isOpen_setOf_mapsTo + theorem ContinuousMap.tendsto_nhds_compactOpen Modified Mathlib/Topology/Compactness/Compact.lean + theorem IsCompact.elim_nhds_subcover_nhdsSet' + theorem IsCompact.elim_nhds_subcover_nhdsSet Modified Mathlib/Topology/Compactness/LocallyCompact.lean +/- theorem exists_compact_between + theorem exists_mem_nhdsSet_isCompact_mapsTo Modified Mathlib/Topology/Connected/PathConnected.lean Modified Mathlib/Topology/ContinuousFunction/Algebra.lean Modified Mathlib/Topology/ContinuousFunction/Compact.lean - theorem ContinuousMap.continuous_eval Modified Mathlib/Topology/Homotopy/HomotopyGroup.lean Modified Mathlib/Topology/Separation.lean 2023-12-26 07:50:40 1b3fc93 chore: Protect `Nat.Prime.factorization` (#9242) Else this conflicts with `Nat.factorization`. ESTIMATED CHANGES Modified Mathlib/Data/Nat/Factorization/Basic.lean - theorem Nat.Prime.factorization 2023-12-26 07:50:39 23429eb feat: `0 ≤ a * b ↔ (0 < a → 0 ≤ b) ∧ (0 < b → 0 ≤ a)` (#9219) I had a slightly logic-heavy argument that was nicely simplified by stating this lemma. Also fix a few lemma names. From LeanAPAP and LeanCamCombi ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Floor.lean Modified Mathlib/Algebra/Order/Monoid/Canonical/Defs.lean +/- theorem eq_one_or_one_lt Modified Mathlib/Algebra/Order/Ring/Canonical.lean - theorem CanonicallyOrderedCommSemiring.mul_pos + theorem add_sq_le Modified Mathlib/Algebra/Order/Ring/Defs.lean + theorem mul_nonneg_iff_neg_imp_nonpos + theorem mul_nonneg_iff_of_pos_left + theorem mul_nonneg_iff_of_pos_right + theorem mul_nonneg_iff_pos_imp_nonneg + theorem mul_nonpos_iff_neg_imp_nonneg + theorem mul_nonpos_iff_pos_imp_nonpos - theorem zero_le_mul_left - theorem zero_le_mul_right Modified Mathlib/Algebra/Order/Ring/Lemmas.lean + theorem mul_pos_iff_of_pos_left + theorem mul_pos_iff_of_pos_right - theorem zero_lt_mul_left - theorem zero_lt_mul_right Modified Mathlib/Analysis/Hofer.lean Modified Mathlib/Analysis/InnerProductSpace/Spectrum.lean Modified Mathlib/Analysis/NormedSpace/OperatorNorm.lean Modified Mathlib/Analysis/SpecificLimits/Normed.lean Modified Mathlib/Combinatorics/SimpleGraph/DegreeSum.lean Modified Mathlib/Combinatorics/SimpleGraph/Regularity/Bound.lean Modified Mathlib/MeasureTheory/Covering/LiminfLimsup.lean Modified Mathlib/NumberTheory/DiophantineApproximation.lean Modified Mathlib/NumberTheory/FLT/Four.lean Modified Mathlib/NumberTheory/SumFourSquares.lean Modified Mathlib/Probability/Distributions/Gaussian.lean Modified Mathlib/Tactic/NormNum/Prime.lean 2023-12-26 07:50:38 760ba70 chore: address wlog porting note in OrdConnectedComponent (#9183) `Data.Set.Intervals.OrdConnectedComponent` was ported in #1303 and `wlog` was added later in #2144. Before this change, `trace.profiler` reports that elaborating this proof takes 0.13 seconds. After this change, it reports 0.10 seconds. ESTIMATED CHANGES Modified Mathlib/Data/Set/Intervals/OrdConnectedComponent.lean 2023-12-26 07:50:37 e49f0e6 chore: remove deprecated MulEquiv.map_prod, AddEquiv.map_sum (#9078) ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/Equiv.lean - theorem AlgEquiv.map_sum Modified Mathlib/Algebra/BigOperators/Basic.lean Modified Mathlib/Algebra/Star/BigOperators.lean 2023-12-26 07:27:10 0fd6ae7 chore(ExteriorAlgebra.Grading): drop `ExteriorAlgebra.instZero` (#9274) Locally change the priority of `MulZeroClass.toZero` instead. See also [Zulip chat](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/Exterior.20algebras.20everywhere.2E.2E.2E) ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/ExteriorAlgebra/Grading.lean 2023-12-26 07:02:18 4fda6f7 feat: The galois group acts on infinite places. (#9280) ESTIMATED CHANGES Modified Mathlib/NumberTheory/NumberField/Embeddings.lean + theorem NumberField.ComplexEmbedding.IsReal.comp + theorem NumberField.ComplexEmbedding.exists_comp_symm_eq_of_comp_eq + theorem NumberField.ComplexEmbedding.isReal_comp_iff + theorem NumberField.InfinitePlace.ComplexEmbedding.exists_comp_symm_eq_of_comp_eq + theorem NumberField.InfinitePlace.IsReal.comap + def NumberField.InfinitePlace.comap + theorem NumberField.InfinitePlace.comap_comp + theorem NumberField.InfinitePlace.comap_mk + theorem NumberField.InfinitePlace.comap_smul + theorem NumberField.InfinitePlace.comap_surjective + theorem NumberField.InfinitePlace.exists_smul_eq_of_comap_eq + theorem NumberField.InfinitePlace.isComplex_mk_iff + theorem NumberField.InfinitePlace.isComplex_smul_iff + theorem NumberField.InfinitePlace.isReal_comap_iff + theorem NumberField.InfinitePlace.isReal_mk_iff + theorem NumberField.InfinitePlace.isReal_smul_iff + theorem NumberField.InfinitePlace.mem_orbit_iff + def NumberField.InfinitePlace.orbitRelEquiv + theorem NumberField.InfinitePlace.orbitRelEquiv_apply_mk'' + theorem NumberField.InfinitePlace.smul_apply + theorem NumberField.InfinitePlace.smul_eq_comap + theorem NumberField.InfinitePlace.smul_mk 2023-12-26 07:02:17 925559d chore(TopCat/Limits/Cofiltered): golf (#9279) ESTIMATED CHANGES Modified Mathlib/Topology/Category/TopCat/Limits/Cofiltered.lean 2023-12-26 07:02:16 9d6b50d chore(DedekindDomain): use `wlog` (#9278) * Use `wlog` tactic instead of an explicit `suffices`. * Restate a lemma in terms of an inequality between fractional ideals. * Drop an unneeded assumption, thanks to @erdOne ESTIMATED CHANGES Modified Mathlib/RingTheory/DedekindDomain/Ideal.lean +/- theorem FractionalIdeal.exists_not_mem_one_of_ne_bot + theorem FractionalIdeal.not_inv_le_one_of_ne_bot 2023-12-26 06:34:16 2041984 feat(FieldTheory/Perfect): add `rootsExpand[Pow]EquivRoots[_apply]` (#9271) ... which state that over a perfect integral domain `R` of characteristic `p`, `x ↦ x ^ p ^ n` is a bijection from the set of roots of `Polynomial.expand R (p ^ n) f` to the set of roots of `f`. ESTIMATED CHANGES Modified Mathlib/FieldTheory/Perfect.lean + theorem Polynomial.rootsExpandEquivRoots_apply + theorem Polynomial.rootsExpandPowEquivRoots_apply 2023-12-26 06:12:03 caeafef chore(RingTheory/Polynomial/SeparableDegree): add `HasSeparableContraction.isSeparableContraction` and ... (#9272) … move `Irreducible.hasSeparableContraction` to global namespace ESTIMATED CHANGES Modified Mathlib/RingTheory/Polynomial/SeparableDegree.lean + theorem Irreducible.hasSeparableContraction + theorem Polynomial.HasSeparableContraction.isSeparableContraction - theorem Polynomial.Irreducible.hasSeparableContraction 2023-12-26 04:50:59 081c672 feat: `AddCommGroup` is `ZMod n` module if `n • x = 0` for all `x` (#9017) Generalization of content from PFR for doing linear algebra over $C_2^n$. ESTIMATED CHANGES Modified Mathlib/Data/ZMod/Module.lean + def AddCommGroup.zmodModule + def AddCommMonoid.zmodModule 2023-12-26 03:42:24 61efe6d feat: The double factorial is positive (#9102) and other basic results. Also include a positivity extension to encode that new result. From LeanAPAP ESTIMATED CHANGES Modified Mathlib/Data/Nat/Factorial/Basic.lean + theorem Nat.factorial_two_mul_le + theorem Nat.two_pow_mul_factorial_le_factorial_two_mul Modified Mathlib/Data/Nat/Factorial/BigOperators.lean Modified Mathlib/Data/Nat/Factorial/DoubleFactorial.lean + def Mathlib.Meta.Positivity.evalDoubleFactorial + theorem Nat.doubleFactorial_le_factorial + theorem Nat.doubleFactorial_pos 2023-12-25 18:43:45 93e820f feat: bijective local homeomorphisms are homeomorphisms (#9247) Basis for generalising the result for local diffeomorphism to local structomorphisms. ESTIMATED CHANGES Modified Mathlib/Topology/IsLocalHomeomorph.lean Modified Mathlib/Topology/Maps.lean + theorem Embedding.toOpenEmbedding_of_surjective 2023-12-25 18:43:44 76d03d7 refactor: Subfield of DivisionRing, not just Field (#8941) The definition of `Subfield.closure` is changed to use `sInf` like many substructures. In the commutative case (at the end of the file), it's shown to be equal to the original version, renamed to `commClosure`, in the new lemma `commClosure_eq_closure`. No lemma is removed, and all lemma statements remain the same. I do not change the name `Subfield` to `SubdivisionRing` as this kind of name abuse is accepted practice in mathlib, and since a division ring is also called a skew field. Also generalizes `RingHom.eqLocus(Field)` slightly. ESTIMATED CHANGES Modified Mathlib/FieldTheory/Subfield.lean +/- def RingHom.eqLocusField +/- def Subfield.closure +/- theorem Subfield.subring_closure_le +/- theorem Subfield.subset_closure +/- theorem Subfield.toSubring_subtype_eq_subtype +/- structure Subfield Modified Mathlib/RingTheory/Subring/Basic.lean 2023-12-25 18:05:55 b1556bb feat(Data/Polynomial/Expand): add `leadingCoeff_expand` and `monic_expand_iff` (#9261) The first states that `expand` preserves leading coefficient; the second states that `expand` preserves monicity, hence gives a converse to `Monic.expand`. ESTIMATED CHANGES Modified Mathlib/Data/Polynomial/Expand.lean - theorem Polynomial.Monic.expand + theorem Polynomial.leadingCoeff_expand + theorem Polynomial.monic_expand_iff 2023-12-25 18:05:54 5ca2c4b feat(Algebra/CharP/ExpChar): add `expChar[_pow]_pos` (#9260) ... which states that (the power of) exponential characteristic is positive. ESTIMATED CHANGES Modified Mathlib/Algebra/CharP/ExpChar.lean + theorem expChar_pos + theorem expChar_pow_pos 2023-12-25 18:05:53 c26c85d feat(Stirling): add a version in terms of `IsEquivalent` (#9231) ESTIMATED CHANGES Modified Mathlib/Analysis/SpecialFunctions/Stirling.lean + theorem Stirling.factorial_isEquivalent_stirling 2023-12-25 17:37:26 f1addf8 feat(FieldTheory/Adjoin): add `exists_lt_finrank_of_infinite_dimensional` (#9262) ... which state that an infinite algebraic extension has finite subextension with arbitrary large degree. ESTIMATED CHANGES Modified Mathlib/FieldTheory/Adjoin.lean + theorem IntermediateField.exists_lt_finrank_of_infinite_dimensional 2023-12-25 16:17:43 0a89f46 chore: Deprecate pow monotonicity lemmas (#9235) Add deprecated aliases for all the lemmas removed in #9095 and fix a few renames that were botched. ESTIMATED CHANGES Modified Mathlib/Algebra/GroupPower/CovariantClass.lean + theorem Monotone.pow_const - theorem Monotone.pow_right + theorem pow_left_mono - theorem pow_mono_right Modified Mathlib/Algebra/GroupPower/Order.lean Modified Mathlib/Data/Nat/Pow.lean 2023-12-25 15:55:16 42ab70e feat: (partial) homeomorphisms are local homeomorphisms (#9246) ESTIMATED CHANGES Modified Mathlib/Topology/IsLocalHomeomorph.lean + theorem IsLocalHomeomorph.Homeomorph.isLocalHomeomorph + theorem IsLocalHomeomorphOn.PartialHomeomorph.isLocalHomeomorphOn 2023-12-25 14:38:04 1edf6ce feat(Normed/Group): add `Filter.HasBasis.cobounded_of_norm` (#9244) ESTIMATED CHANGES Modified Mathlib/Analysis/Normed/Group/Basic.lean + theorem Filter.HasBasis.cobounded_of_norm' + theorem Filter.hasBasis_cobounded_norm' Modified Mathlib/Analysis/NormedSpace/Spectrum.lean 2023-12-25 13:26:05 490c92f feat(FieldTheory/Separable): add some results regarding separable and no repeated roots (#9263) - `nodup_[a]roots_iff_of_splits`: a polynomial has no repeated roots if and only if it is separable. - `card_rootSet_eq_natDegree_iff_of_splits`: a polynomial has number of roots equal to its degree if and only if it is separable. A converse to `card_rootSet_eq_natDegree`. Also add some convenience lemmas: - `Separable.ne_zero`: a separable polynomial is not zero. - `Separable.map_minpoly`: if an element is separable over a small field, then it's also separable over a large field. ESTIMATED CHANGES Modified Mathlib/FieldTheory/Separable.lean + theorem Polynomial.Separable.map_minpoly + theorem Polynomial.Separable.ne_zero + theorem Polynomial.card_rootSet_eq_natDegree_iff_of_splits + theorem Polynomial.nodup_aroots_iff_of_splits + theorem Polynomial.nodup_roots_iff_of_splits 2023-12-25 13:26:04 ef974f8 chore(*): use `∃ x ∈ s, _` instead of `∃ (x) (_ : x ∈ s), _` (#9215) Follow-up #9184 ESTIMATED CHANGES Modified Archive/Imo/Imo2021Q1.lean Modified Mathlib/Algebra/Order/Interval.lean +/- theorem Interval.bot_pow Modified Mathlib/Analysis/Calculus/BumpFunction/FiniteDimension.lean Modified Mathlib/Analysis/Calculus/ContDiff/Defs.lean Modified Mathlib/Analysis/Calculus/TangentCone.lean Modified Mathlib/Analysis/Complex/OpenMapping.lean Modified Mathlib/Analysis/Distribution/SchwartzSpace.lean Modified Mathlib/Analysis/InnerProductSpace/Basic.lean Modified Mathlib/Analysis/SpecialFunctions/ImproperIntegrals.lean Modified Mathlib/Analysis/SpecialFunctions/Stirling.lean Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Bounds.lean Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Complex.lean Modified Mathlib/Data/DFinsupp/Basic.lean +/- theorem DFinsupp.support_subset_iff Modified Mathlib/Data/Finset/PiInduction.lean Modified Mathlib/Data/Finset/Powerset.lean Modified Mathlib/Data/Finsupp/BigOperators.lean Modified Mathlib/Data/Finsupp/Defs.lean Modified Mathlib/Data/Fintype/BigOperators.lean +/- theorem Fintype.prod_eq_single Modified Mathlib/Data/Fintype/Perm.lean +/- theorem nodup_permsOfList Modified Mathlib/Data/Int/Order/Basic.lean +/- theorem Int.ediv_dvd_ediv Modified Mathlib/Data/Nat/EvenOddRec.lean +/- def Nat.evenOddRec Modified Mathlib/Data/Nat/Factorization/PrimePow.lean Modified Mathlib/Data/Nat/Pow.lean +/- theorem Nat.pow_dvd_pow_iff_pow_le_pow Modified Mathlib/Data/Part.lean +/- theorem Part.ext' Modified Mathlib/GroupTheory/SchurZassenhaus.lean Modified Mathlib/LinearAlgebra/AffineSpace/Combination.lean Modified Mathlib/LinearAlgebra/Finsupp.lean Modified Mathlib/LinearAlgebra/Span.lean Modified Mathlib/MeasureTheory/Covering/Vitali.lean Modified Mathlib/MeasureTheory/Function/ConditionalExpectation/AEMeasurable.lean Modified Mathlib/MeasureTheory/Function/ConvergenceInMeasure.lean Modified Mathlib/MeasureTheory/Function/LpSpace.lean Modified Mathlib/MeasureTheory/Function/StronglyMeasurable/Basic.lean Modified Mathlib/MeasureTheory/Group/FundamentalDomain.lean Modified Mathlib/MeasureTheory/Measure/MeasureSpace.lean Modified Mathlib/MeasureTheory/Measure/OuterMeasure.lean Modified Mathlib/MeasureTheory/Measure/VectorMeasure.lean Modified Mathlib/NumberTheory/LegendreSymbol/JacobiSymbol.lean Modified Mathlib/NumberTheory/Padics/PadicNumbers.lean Modified Mathlib/NumberTheory/ZetaFunction.lean Modified Mathlib/Order/CountableDenseLinearOrder.lean Modified Mathlib/Order/Extension/Linear.lean Modified Mathlib/Order/Filter/Basic.lean Modified Mathlib/Order/GaloisConnection.lean Modified Mathlib/Order/Monotone/Basic.lean Modified Mathlib/RingTheory/DedekindDomain/IntegralClosure.lean Modified Mathlib/RingTheory/Ideal/Operations.lean Modified Mathlib/RingTheory/Ideal/Over.lean Modified Mathlib/RingTheory/IntegralDomain.lean Modified Mathlib/Topology/Algebra/UniformGroup.lean Modified Mathlib/Topology/PartitionOfUnity.lean Modified Mathlib/Topology/UniformSpace/CompactConvergence.lean 2023-12-25 12:41:35 60af8c9 feat: add some missing API lemmas about `Nat.properDivisors` and `Nat.primeFactors` (#8858) ESTIMATED CHANGES Modified Mathlib/Data/Nat/PrimeFin.lean + theorem Nat.nonempty_primeFactors Modified Mathlib/NumberTheory/Divisors.lean + theorem Nat.divisors_eq_empty + theorem Nat.mem_properDivisors_iff_exists + theorem Nat.nonempty_divisors + theorem Nat.nonempty_properDivisors + theorem Nat.one_lt_div_of_mem_properDivisors + theorem Nat.one_lt_of_mem_properDivisors + theorem Nat.properDivisors_eq_empty 2023-12-25 02:03:07 de998ec chore(Algebra/Operations): golf a proof (#9201) Golf the proof of `Submodule.smul_singleton` and rename it to `Submodule.singleton_smul`. ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/Operations.lean + theorem Submodule.singleton_smul - theorem Submodule.smul_singleton 2023-12-25 01:16:24 db487f1 feat(Topology/Order): upgrade `continuous_generateFrom` to an `iff` (#9259) Similarly, upgrade `tendsto_nhds_generateFrom`, `IsTopologicalBasis.continuous`, `Topology.IsLower.continuous_of_Ici`, and `Topology.IsUpper.continuous_iff_Iic`. The old lemmas are now deprecated, and the new ones have `_iff` in their names. Once we remove the old lemmas, we can drop the `_iff` suffixes. ESTIMATED CHANGES Modified Mathlib/AlgebraicGeometry/GammaSpecAdjunction.lean Modified Mathlib/AlgebraicGeometry/ProjectiveSpectrum/Scheme.lean Modified Mathlib/Combinatorics/Hindman.lean Modified Mathlib/MeasureTheory/Constructions/Polish.lean Modified Mathlib/Topology/Algebra/Order/MonotoneContinuity.lean Modified Mathlib/Topology/Bases.lean Modified Mathlib/Topology/CompactOpen.lean Modified Mathlib/Topology/Order.lean - theorem TopologicalSpace.tendsto_nhds_generateFrom + theorem TopologicalSpace.tendsto_nhds_generateFrom_iff - theorem continuous_generateFrom + theorem continuous_generateFrom_iff Modified Mathlib/Topology/Order/LowerUpperTopology.lean + theorem Topology.IsLower.continuous_iff_Ici - theorem Topology.IsLower.continuous_of_Ici + theorem Topology.IsUpper.continuous_iff_Iic 2023-12-25 00:48:40 8919646 chore(Data/Set/Function): rename some lemmas (#9257) - `Set.maps_image_to` → `Set.mapsTo_image_iff`; - `Set.maps_univ_to` → `Set.mapsTo_univ_iff`; - `Set.maps_range_to` → `Set.mapsTo_range_iff`. In all cases, use implicit arguments instead of explicit arguments. In the last case, also generalize from `Type*` to `Sort*` and replace the RHS with its `simp`-normal form. Old lemmas stay there but are now deprecated. ESTIMATED CHANGES Modified Mathlib/Algebra/Module/Zlattice.lean Modified Mathlib/Data/Set/Finite.lean Modified Mathlib/Data/Set/Function.lean + theorem Set.mapsTo_image_iff + theorem Set.mapsTo_range_iff + theorem Set.mapsTo_univ_iff +/- theorem Set.maps_image_to 2023-12-24 16:01:18 dd0886f chore(Measure/Hausdorff): use `· ^ ·` instead of `NNReal.rpow` (#9255) Also reflow some newlines ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Measure/Hausdorff.lean 2023-12-24 16:01:17 640097f feat: the volume in a MeasureSpace over an empty index is the Dirac mass (#8799) ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Constructions/Pi.lean + theorem MeasureTheory.Measure.volume_pi_eq_dirac Modified Mathlib/MeasureTheory/Measure/Haar/InnerProductSpace.lean + theorem volume_euclideanSpace_eq_dirac 2023-12-24 15:08:39 86393c8 refactor: Use `Pairwise` wherever possible (#9236) Performed with a regex search for `∀ (.) (.), \1 ≠ \2 →`, and a few variants to catch implicit binders and explicit types. I have deliberately avoided trying to make the analogous `Set.Pairwise` transformation (or any `Pairwise (foo on bar)` transformations) in this PR, to keep the diff small. ESTIMATED CHANGES Modified Mathlib/Algebra/Lie/DirectSum.lean Modified Mathlib/Analysis/InnerProductSpace/Basic.lean Modified Mathlib/Analysis/NormedSpace/FiniteDimension.lean Modified Mathlib/CategoryTheory/Preadditive/HomOrthogonal.lean Modified Mathlib/CategoryTheory/Sites/Preserves.lean Modified Mathlib/Combinatorics/SimpleGraph/StronglyRegular.lean Modified Mathlib/Data/Fintype/Basic.lean Modified Mathlib/Data/Matrix/Basis.lean Modified Mathlib/Data/Set/Lattice.lean +/- theorem Set.sigmaToiUnion_bijective +/- theorem Set.sigmaToiUnion_injective Modified Mathlib/Data/Setoid/Partition.lean +/- theorem IndexedPartition.disjoint Modified Mathlib/Data/ZMod/Quotient.lean Modified Mathlib/GroupTheory/NoncommPiCoprod.lean Modified Mathlib/GroupTheory/Perm/Sign.lean Modified Mathlib/LinearAlgebra/Matrix/IsDiag.lean Modified Mathlib/LinearAlgebra/Matrix/ToLinearEquiv.lean Modified Mathlib/MeasureTheory/Covering/Besicovitch.lean Modified Mathlib/MeasureTheory/Covering/BesicovitchVectorSpace.lean Modified Mathlib/MeasureTheory/Integral/SetToL1.lean Modified Mathlib/Order/Filter/Basic.lean Modified Mathlib/RingTheory/DedekindDomain/Ideal.lean Modified Mathlib/RingTheory/Ideal/Operations.lean Modified Mathlib/RingTheory/Ideal/QuotientOperations.lean Modified Mathlib/SetTheory/Cardinal/Basic.lean Modified Mathlib/Topology/ExtremallyDisconnected.lean Modified Mathlib/Topology/SeparatedMap.lean Modified Mathlib/Topology/Separation.lean +/- theorem t2Space_iff_disjoint_nhds +/- theorem t2Space_iff_nhds Modified Mathlib/Topology/UniformSpace/Separation.lean 2023-12-23 21:23:09 e9fb5b3 chore(Subfield): use `rintro` (#9230) Also explain why it can't be used in another field ESTIMATED CHANGES Modified Mathlib/FieldTheory/Subfield.lean 2023-12-23 21:23:08 4d1c265 fix: wrong links to (un)bundledHom (#9198) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/ConcreteCategory/Bundled.lean 2023-12-23 20:27:39 9dd8f15 doc: Example use case of `Finset.filter` (#9239) Mention the spelling `s.filter (· ∈ t)` for the intersection of `s : Finset α` and `t : Set α` as a `Finset α` in the docstring of `Finset.filter`. See [here](https://leanprover.zulipchat.com/#narrow/stream/217875-Is-there-code-for-X.3F/topic/Intersection.20of.20a.20Finset.20and.20a.20Set.20as.20a.20Finset.3F/near/409632763) on Zulip. ESTIMATED CHANGES Modified Mathlib/Data/Finset/Basic.lean 2023-12-23 18:42:55 4a33597 chore(Data/Set/Pointwise): golf (#9205) ESTIMATED CHANGES Modified Mathlib/Data/Set/Pointwise/Basic.lean + theorem Set.BddAbove.mul - theorem Set.bddAbove_mul 2023-12-23 10:52:46 ea70e84 refactor: Deduplicate monotonicity of `•` lemmas (#9179) Remove the duplicates introduced in #8869 by sorting the lemmas in `Algebra.Order.SMul` into three files: * `Algebra.Order.Module.Defs` for the order isomorphism induced by scalar multiplication by a positivity element * `Algebra.Order.Module.Pointwise` for the order properties of scalar multiplication of sets. This file is new. I credit myself for https://github.com/leanprover-community/mathlib/pull/9078 * `Algebra.Order.Module.OrderedSMul`: The material about `OrderedSMul` per se. Inherits the copyright header from `Algebra.Order.SMul`. This file should eventually be deleted. I move each `#align` to the correct file. On top of that, I delete unused redundant `OrderedSMul` instances (they were useful in Lean 3, but not anymore) and `eq_of_smul_eq_smul_of_pos_of_le`/`eq_of_smul_eq_smul_of_neg_of_le` since those lemmas are weird and unused. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Order/Algebra.lean Modified Mathlib/Algebra/Order/Module.lean - theorem eq_of_smul_eq_smul_of_neg_of_le Modified Mathlib/Algebra/Order/Module/Defs.lean + def Mathlib.Meta.Positivity.evalHSMul + def OrderIso.smulRight +/- theorem smul_le_smul_of_nonneg_left +/- theorem smul_le_smul_of_nonneg_right +/- theorem smul_lt_smul_of_pos_left +/- theorem smul_lt_smul_of_pos_right Added Mathlib/Algebra/Order/Module/OrderedSMul.lean + theorem OrderedSMul.mk'' + theorem OrderedSMul.mk' Added Mathlib/Algebra/Order/Module/Pointwise.lean + theorem BddAbove.smul_of_nonneg + theorem BddBelow.smul_of_nonneg + theorem bddAbove_smul_iff_of_pos + theorem bddBelow_smul_iff_of_pos + theorem lowerBounds_smul_of_pos + theorem smul_lowerBounds_subset_lowerBounds_smul_of_nonneg + theorem smul_upperBounds_subset_upperBounds_smul_of_nonneg + theorem upperBounds_smul_of_pos Deleted Mathlib/Algebra/Order/SMul.lean - theorem BddAbove.smul_of_nonneg - theorem BddBelow.smul_of_nonneg - def Mathlib.Meta.Positivity.evalHSMul - def OrderIso.smulLeft - theorem OrderedSMul.mk'' - theorem OrderedSMul.mk' - theorem bddAbove_smul_iff_of_pos - theorem bddBelow_smul_iff_of_pos - theorem eq_of_smul_eq_smul_of_pos_of_le - theorem inv_smul_le_iff - theorem inv_smul_lt_iff - theorem le_inv_smul_iff - theorem lowerBounds_smul_of_pos - theorem lt_inv_smul_iff - theorem lt_of_smul_lt_smul_of_nonneg - theorem monotone_smul_left - theorem smul_le_smul_iff_of_pos - theorem smul_le_smul_of_nonneg - theorem smul_lowerBounds_subset_lowerBounds_smul - theorem smul_lt_smul_iff_of_pos - theorem smul_lt_smul_of_pos - theorem smul_max - theorem smul_min - theorem smul_pos_iff_of_pos - theorem smul_upperBounds_subset_upperBounds_smul - theorem strictMono_smul_left - theorem upperBounds_smul_of_pos Modified Mathlib/Algebra/Star/CHSH.lean Modified Mathlib/Analysis/Convex/Basic.lean Modified Mathlib/Analysis/Convex/Combination.lean Modified Mathlib/Analysis/Convex/Extrema.lean Modified Mathlib/Analysis/Convex/Function.lean Modified Mathlib/Analysis/Convex/Jensen.lean Modified Mathlib/Analysis/Convex/Segment.lean Modified Mathlib/Analysis/Convex/Star.lean Modified Mathlib/Analysis/Normed/Group/Basic.lean + theorem nnnorm_pos' Modified Mathlib/Analysis/NormedSpace/Pointwise.lean Modified Mathlib/Data/Complex/Module.lean Modified Mathlib/Data/Real/ENNReal.lean Modified Mathlib/Data/Real/Pointwise.lean Modified Mathlib/GroupTheory/GroupAction/Group.lean + def Equiv.smulRight Modified Mathlib/LinearAlgebra/AffineSpace/Ordered.lean Modified Mathlib/MeasureTheory/Function/LpSeminorm.lean Modified Mathlib/MeasureTheory/Measure/Hausdorff.lean Modified Mathlib/Probability/Martingale/Basic.lean 2023-12-23 07:20:05 bb307ab refactor(Order/Extension): use `OrderHom` (#9232) Redefine `toLinearExtension` as an `OrderHom`. ESTIMATED CHANGES Modified Mathlib/Order/Extension/Linear.lean +/- def toLinearExtension 2023-12-23 07:20:04 539b49a chore(Filter/NAry): use `Filter.copy` to define `map₂` (#9217) ESTIMATED CHANGES Modified Mathlib/Order/Filter/NAry.lean +/- def Filter.map₂ 2023-12-23 07:20:03 66c1128 feat: If the monoid S contains 0 then the localization at S is trivial (#9207) ESTIMATED CHANGES Modified Mathlib/Algebra/Module/LocalizedModule.lean + theorem LocalizedModule.subsingleton Modified Mathlib/GroupTheory/MonoidLocalization.lean + theorem Submonoid.LocalizationMap.subsingleton Modified Mathlib/RingTheory/Localization/Basic.lean + theorem IsLocalization.subsingleton 2023-12-23 07:20:02 08e759d feat: `OrderIso` between `minimals` and `maximals` (#9190) Also extracts some lemmas from `minimals_image_of_rel_iff_rel` and remove `_on` from `maximals_image_of_rel_iff_rel_on` to match the former. for [#9088](https://github.com/leanprover-community/mathlib4/pull/9088#discussion_r1434641111) ESTIMATED CHANGES Modified Mathlib/Order/Minimal.lean + def OrderIso.mapMaximals + def OrderIso.mapMinimals + theorem OrderIso.map_mem_maximals + def OrderIso.maximalsIsoMinimals + def OrderIso.minimalsIsoMaximals + theorem RelEmbedding.image_maximals_eq + theorem RelEmbedding.image_minimals_eq - theorem RelEmbedding.maximals_image_eq - theorem RelEmbedding.minimals_image_eq + theorem image_maximals_of_rel_iff_rel + theorem image_maximals_univ + theorem image_minimals_of_rel_iff_rel + theorem image_minimals_univ + theorem map_mem_maximals + theorem map_mem_maximals_iff + theorem map_mem_minimals + theorem map_mem_minimals_iff - theorem maximals_image_of_rel_iff_rel_on - theorem minimals_image_of_rel_iff_rel 2023-12-23 07:20:01 a9c72c7 feat(SetTheory/Cardinal/Basic): add missing `lift` versions of `iUnion` lemmas (#9187) Also move some lift lemmas to be next to their non-lift counterparts. For now this does not generalize to `ι : Sort v` as this would make a mess with `PLift`. ESTIMATED CHANGES Modified Mathlib/SetTheory/Cardinal/Basic.lean + theorem Cardinal.mk_biUnion_le_lift + theorem Cardinal.mk_iUnion_eq_sum_mk_lift + theorem Cardinal.mk_iUnion_le_lift + theorem Cardinal.mk_iUnion_le_sum_mk_lift 2023-12-23 06:38:50 a7fbc9e feat(Analysis/SpecialFunctions/Complex/Arg): add definition for slit plane and API, and use it (#9116) In preparation of future PRs dealing with estimates of the complex logarithm and its Taylor series, this introduces `Complex.slitPlane` for the set of complex numbers not on the closed negative real axis (in `Analysis.SpecialFunctions.Complex.Arg`), adds a bunch of API lemmas, and replaces hypotheses of the form `0 < x.re ∨ x.im ≠ 0` by `x ∈ slitPlane` in several other files. (We do not introduce a new file for that to avoid circular imports with `Analysis.SpecialFunctions.Complex.Arg`.) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Analysis/Complex/Basic.lean + theorem Complex.ball_one_subset_slitPlane + theorem Complex.isOpen_slitPlane + theorem Complex.mem_slitPlane_iff + theorem Complex.mem_slitPlane_iff_not_le_zero + theorem Complex.mem_slitPlane_of_norm_lt_one + theorem Complex.nat_cast_mem_slitPlane + theorem Complex.neg_ofReal_mem_slitPlane + theorem Complex.ofNat_mem_slitPlane + theorem Complex.ofReal_mem_slitPlane + theorem Complex.one_mem_slitPlane + def Complex.slitPlane + theorem Complex.slitPlane_eq_union + theorem Complex.slitPlane_ne_zero + theorem Complex.zero_not_mem_slitPlane Added Mathlib/Analysis/Complex/Convex.lean + theorem Complex.convexHull_reProdIm + theorem Complex.starConvex_ofReal_slitPlane + theorem Complex.starConvex_one_slitPlane + theorem Complex.starConvex_slitPlane Modified Mathlib/Analysis/Convex/Star.lean + theorem starConvex_compl_Ici + theorem starConvex_compl_Iic Modified Mathlib/Analysis/SpecialFunctions/Complex/Arg.lean + theorem Complex.arg_eq_pi_iff_lt_zero + theorem Complex.arg_eq_zero_iff_zero_le +/- theorem Complex.continuousAt_arg + theorem Complex.mem_slitPlane_iff_arg + theorem Complex.slitPlane_arg_ne_pi Modified Mathlib/Analysis/SpecialFunctions/Complex/Log.lean +/- theorem continuousAt_clog Modified Mathlib/Analysis/SpecialFunctions/Complex/LogDeriv.lean +/- theorem Complex.contDiffAt_log +/- theorem Complex.hasStrictDerivAt_log +/- theorem Complex.hasStrictFDerivAt_log_real Modified Mathlib/Analysis/SpecialFunctions/Gamma/Basic.lean Modified Mathlib/Analysis/SpecialFunctions/Gamma/Beta.lean Modified Mathlib/Analysis/SpecialFunctions/Integrals.lean Modified Mathlib/Analysis/SpecialFunctions/PolarCoord.lean Modified Mathlib/Analysis/SpecialFunctions/Pow/Continuity.lean +/- theorem continuousAt_cpow +/- theorem continuousAt_cpow_const Modified Mathlib/Analysis/SpecialFunctions/Pow/Deriv.lean +/- theorem Complex.hasFDerivAt_cpow +/- theorem Complex.hasStrictDerivAt_cpow_const +/- theorem Complex.hasStrictFDerivAt_cpow' +/- theorem Complex.hasStrictFDerivAt_cpow +/- theorem HasDerivAt.cpow_const 2023-12-23 00:28:56 c56af57 feat(Algebra/GradedMonoid): missing lemmas about `fst` and `snd` (#9227) ESTIMATED CHANGES Modified Mathlib/Algebra/GradedMonoid.lean + theorem GradedMonoid.fst_mul + theorem GradedMonoid.fst_one + theorem GradedMonoid.fst_pow + theorem GradedMonoid.fst_smul +/- def GradedMonoid.mkZeroMonoidHom +/- theorem GradedMonoid.smul_mk + theorem GradedMonoid.snd_mul + theorem GradedMonoid.snd_one + theorem GradedMonoid.snd_pow + theorem GradedMonoid.snd_smul 2023-12-23 00:28:55 161290d feat(ModularForm): Graded Ring instance on spaces of modular forms (#9164) This adds the graded ring instance to spaces of modular forms. ESTIMATED CHANGES Modified Mathlib/NumberTheory/ModularForms/Basic.lean + theorem ModularForm.coe_intCast + theorem ModularForm.coe_natCast + def ModularForm.const + theorem ModularForm.gradedMonoid_eq_of_cast + def ModularForm.mcast +/- theorem ModularForm.one_coe_eq_one + theorem ModularForm.toSlashInvariantForm_intCast + theorem ModularForm.toSlashInvariantForm_natCast Modified Mathlib/NumberTheory/ModularForms/SlashActions.lean + theorem ModularForm.is_invariant_const +/- theorem ModularForm.is_invariant_one Modified Mathlib/NumberTheory/ModularForms/SlashInvariantForms.lean + theorem SlashInvariantForm.coe_intCast + theorem SlashInvariantForm.coe_natCast + def SlashInvariantForm.const 2023-12-22 23:36:01 e9294e6 chore(Subgroup/Pointwise): golf, use `∩` (#9208) ESTIMATED CHANGES Modified Mathlib/GroupTheory/Subgroup/Pointwise.lean 2023-12-22 23:36:00 983cf22 chore(*): use `rintro` to golf some proofs (#9204) ESTIMATED CHANGES Modified Mathlib/Analysis/Convex/Star.lean Modified Mathlib/LinearAlgebra/AffineSpace/AffineSubspace.lean Modified Mathlib/LinearAlgebra/CliffordAlgebra/Grading.lean Modified Mathlib/Probability/Kernel/Disintegration.lean Modified Mathlib/Topology/Algebra/Group/Basic.lean 2023-12-22 23:13:09 038fe40 chore(Topology/../Nonarchimedean): minor golf (#9209) ESTIMATED CHANGES Modified Mathlib/Topology/Algebra/Nonarchimedean/Bases.lean Modified Mathlib/Topology/Algebra/Nonarchimedean/Basic.lean 2023-12-22 22:10:09 503aade feat: Antidiagonal lemmas (#9224) From LeanAPAP ESTIMATED CHANGES Modified Mathlib/Data/Finset/Antidiagonal.lean + theorem Finset.antidiagonal_congr' +/- theorem Finset.antidiagonal_congr +/- theorem Finset.antidiagonal_subtype_ext Modified Mathlib/Data/Finset/NatAntidiagonal.lean + theorem Finset.Nat.antidiagonal_eq_image' + theorem Finset.Nat.antidiagonal_eq_image + theorem Finset.Nat.antidiagonal_eq_map' + theorem Finset.Nat.antidiagonal_eq_map 2023-12-22 22:10:08 3b841d1 doc(Filter/Pointwise): fix comments (#9202) ESTIMATED CHANGES Modified Mathlib/Order/Filter/Pointwise.lean 2023-12-22 20:59:56 21e45c8 chore(Set/NAry): drop `Set.image3` (#9221) `Set.image3` was only used to prove associativity of `Set.image2`. It had basically no API and had exactly one (easily replaced) use outside `Data.Set.NAry`). There is no specific function as a replacement, but it can be obtained by combining `Set.image2` twice. ESTIMATED CHANGES Modified Mathlib/Data/Set/Lattice.lean Modified Mathlib/Data/Set/NAry.lean - theorem Set.image2_image2_left - theorem Set.image2_image2_right - def Set.image3 - theorem Set.image3_congr' - theorem Set.image3_congr - theorem Set.image3_mono - theorem Set.mem_image3 2023-12-22 20:59:55 090f9f7 chore(Computability/RegularExpressions): golf (#9218) Golf a proof. Also add `Language.mem_kstar_iff_exists_nonempty`. ESTIMATED CHANGES Modified Mathlib/Computability/Language.lean + theorem Language.mem_kstar_iff_exists_nonempty Modified Mathlib/Computability/RegularExpressions.lean +/- theorem RegularExpression.rmatch_iff_matches' 2023-12-22 20:59:54 0328934 chore(Algebra/FilterBasis): use `mul_mem_mul` to improve readability (#9216) ESTIMATED CHANGES Modified Mathlib/Topology/Algebra/FilterBasis.lean 2023-12-22 20:59:53 eb17faa chore(Set/Pointwise/Finite): golf (#9214) ESTIMATED CHANGES Modified Mathlib/Data/Set/Pointwise/Finite.lean 2023-12-22 20:59:52 1462ef7 chore(Normed/../AddTorsor): improve readability (#9213) Pass more arguments to `choose!` to avoid using projections later in the proof. ESTIMATED CHANGES Modified Mathlib/Analysis/Normed/Group/AddTorsor.lean 2023-12-22 20:59:51 83012aa chore(Topology/../MulAction): golf (#9212) ESTIMATED CHANGES Modified Mathlib/Topology/Algebra/MulAction.lean 2023-12-22 20:59:50 763e4db chore(*): use `Set.image2_subset_iff` (#9206) Use `Set.image2_subset_iff`, `Set.mul_subset_iff`, and `Set.add_subset_iff` instead of `rintro`s. Also protect some `*.image2` lemmas. ESTIMATED CHANGES Modified Mathlib/Analysis/LocallyConvex/Bounded.lean Modified Mathlib/GroupTheory/Submonoid/Pointwise.lean +/- theorem Submonoid.mul_subset Modified Mathlib/Order/Bounds/Basic.lean - theorem BddAbove.image2 - theorem BddBelow.image2 - theorem IsGreatest.image2 - theorem IsLeast.image2 Modified Mathlib/RingTheory/Adjoin/FG.lean 2023-12-22 20:03:33 07756d1 feat: Stabilizers of sets/finsets (#8924) Prove a bunch of results about `stabilizer G s` where `Group G`, `MulAction G α`, `s : Set α`. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Pointwise/Stabilizer.lean + theorem MulAction.map_stabilizer_le + theorem MulAction.mem_stabilizer_finset' + theorem MulAction.mem_stabilizer_finset + theorem MulAction.mem_stabilizer_finset_iff_smul_finset_subset + theorem MulAction.mem_stabilizer_finset_iff_subset_smul_finset + theorem MulAction.mem_stabilizer_set' + theorem MulAction.mem_stabilizer_set + theorem MulAction.mem_stabilizer_set_iff_smul_set_subset + theorem MulAction.mem_stabilizer_set_iff_subset_smul_set + theorem MulAction.mul_stabilizer_self + theorem MulAction.stabilizer_coe_finset + theorem MulAction.stabilizer_empty + theorem MulAction.stabilizer_finset_empty + theorem MulAction.stabilizer_finset_singleton + theorem MulAction.stabilizer_image_coe_quotient + theorem MulAction.stabilizer_mul_self + theorem MulAction.stabilizer_op_subgroup + theorem MulAction.stabilizer_singleton + theorem MulAction.stabilizer_subgroup + theorem MulAction.stabilizer_subgroup_op Modified Mathlib/GroupTheory/GroupAction/Basic.lean + theorem MulAction.le_stabilizer_smul_left + theorem MulAction.le_stabilizer_smul_right + theorem MulAction.stabilizer_mul_eq_left + theorem MulAction.stabilizer_mul_eq_right + theorem MulAction.stabilizer_smul_eq_left + theorem MulAction.stabilizer_smul_eq_right Modified Mathlib/GroupTheory/QuotientGroup.lean + theorem QuotientGroup.image_coe + theorem QuotientGroup.image_coe_inj + theorem QuotientGroup.map_mk'_self + theorem QuotientGroup.preimage_image_coe 2023-12-22 16:32:20 e885101 doc(Analysis.Complex.CauchyIntegral): add missing word (#9211) Replace "continuous the closed annulus" with " continuous on the closed annulus" ESTIMATED CHANGES Modified Mathlib/Analysis/Complex/CauchyIntegral.lean 2023-12-22 14:46:31 623cc31 feat(Computability/ContextFreeGrammar): derivations with prefix or postfix (#8630) ESTIMATED CHANGES Modified Mathlib/Computability/ContextFreeGrammar.lean + theorem ContextFreeGrammar.Derives.append_left + theorem ContextFreeGrammar.Derives.append_right + theorem ContextFreeGrammar.Produces.append_left + theorem ContextFreeGrammar.Produces.append_right + theorem ContextFreeRule.Rewrites.append_left + theorem ContextFreeRule.Rewrites.append_right 2023-12-22 13:50:36 9d20fb4 fix: use `--install` flag in `lake update` hook (#9197) Fixes an issue [reported on Zulip](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/post-update.20hook.20failure/near/409543553). Without the `--install` flag elan will not download the new toolchain if it doesn't already have it. Since this is in an update call which is already expected to download things I think this should be okay. ESTIMATED CHANGES Modified lakefile.lean 2023-12-22 13:04:11 c54f3fb feat: `1` is the only positive element of finite order (#9110) and other simple lemmas about the order of elements in a group From LeanAPAP ESTIMATED CHANGES Modified Mathlib/GroupTheory/OrderOfElement.lean + theorem IsOfFinOrder.pow + theorem Nat.Coprime.pow_left_bijective - theorem pow_eq_mod_card + theorem pow_mod_card - theorem zpow_eq_mod_card + theorem zpow_mod_card Modified Mathlib/GroupTheory/Perm/Cycle/Basic.lean 2023-12-22 10:33:26 98067b2 feat(LinearAlgebra/Dimension): add various `surjective_injective` results (#9156) Add various results concerning modules `M / R` and `M' / R'` with maps `i : R -> R'` and `j : M -> M'` which are compatible with scalar multiplications on `M` and `M'`. - if `i : R' -> R` is injective and `j` is injective, then: - `LinearIndependent.map_of_injective_injective`: `j` preserves linear independent subsets. - `[lift_]rank_le_of_injective_injective`: rank of `M / R` is smaller than or equal to the rank of `M' / R'`. - if `i` is surjective and `j` is injective, then: - `LinearIndependent.map_of_surjective_injective`: `j` preserves linear independent subsets. - `[lift_]rank_le_of_surjective_injective`: rank of `M / R` is smaller than or equal to the rank of `M' / R'`. - if `i` and `j` are both bijective, then `[lift_]rank_eq_of_equiv_equiv`: rank of `M / R` is equal to the rank of `M' / R'`. Also add the `Algebra` versions of these results. ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/Dimension.lean + theorem Algebra.lift_rank_eq_of_equiv_equiv + theorem Algebra.lift_rank_le_of_injective_injective + theorem Algebra.lift_rank_le_of_surjective_injective + theorem Algebra.rank_eq_of_equiv_equiv + theorem Algebra.rank_le_of_injective_injective + theorem Algebra.rank_le_of_surjective_injective + theorem lift_rank_eq_of_equiv_equiv + theorem lift_rank_le_of_injective_injective + theorem lift_rank_le_of_surjective_injective + theorem rank_eq_of_equiv_equiv + theorem rank_le_of_injective_injective + theorem rank_le_of_surjective_injective Modified Mathlib/LinearAlgebra/LinearIndependent.lean + theorem LinearIndependent.map_of_injective_injective + theorem LinearIndependent.map_of_surjective_injective 2023-12-22 09:50:03 d025663 chore(LinearAlgebra): golf two proofs (#9192) Golf two old proofs from [mathlib3#3056](https://github.com/leanprover-community/mathlib/commit/cc16d35b642fc1bb838f6a2555b37a32a5465c32) ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/FreeModule/Finite/Rank.lean 2023-12-22 09:27:59 ccbb556 feat: local diffeomorphisms (#8736) Define local diffeomorphisms between smooth manifolds. As an auxiliary definition, we add `PartialDiffeomorph`, the analogue of `PartialHomeomorph` for diffeomorphisms. In future PRs, we will - show that local diffeomorphisms have invertible differential - show the converse, using the inverse function theorem: if the differential of $f$ at $x$ is invertible, $f$ is a local diffeomorphism at $x$ ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Geometry/Manifold/LocalDiffeomorph.lean + theorem Diffeomorph.isLocalDiffeomorph + def Diffeomorph.toPartialDiffeomorph + theorem IsLocalDiffeomorph.contMDiff + def IsLocalDiffeomorph.image + theorem IsLocalDiffeomorph.image_coe + theorem IsLocalDiffeomorph.isLocalDiffeomorphOn + theorem IsLocalDiffeomorph.isLocalHomeomorph + theorem IsLocalDiffeomorph.isOpenMap + theorem IsLocalDiffeomorph.isOpen_range + theorem IsLocalDiffeomorph.mdifferentiable + def IsLocalDiffeomorph + theorem IsLocalDiffeomorphAt.contMDiffAt + theorem IsLocalDiffeomorphAt.mdifferentiableAt + def IsLocalDiffeomorphAt + theorem IsLocalDiffeomorphOn.contMDiffOn + theorem IsLocalDiffeomorphOn.isLocalHomeomorphOn + theorem IsLocalDiffeomorphOn.mdifferentiableOn + def IsLocalDiffeomorphOn + def PartialDiffeomorph.toPartialHomeomorph + structure PartialDiffeomorph + theorem isLocalDiffeomorphOn_iff + theorem isLocalDiffeomorph_iff + theorem isLocalDiffeomorph_iff_isLocalDiffeomorphOn_univ 2023-12-22 08:43:20 a2edc39 chore(Order/Filter/NAry): drop `Filter.map₃` (#9182) It was used only once to prove associativity of `Filter.map₂`. ESTIMATED CHANGES Modified Mathlib/Order/Filter/NAry.lean - theorem Filter.map₂_map₂_left - theorem Filter.map₂_map₂_right - def Filter.map₃ 2023-12-22 06:58:39 8f013c4 chore(ContinuousMonoidHom): golf (#9189) ESTIMATED CHANGES Modified Mathlib/Topology/Algebra/ContinuousMonoidHom.lean + theorem ContinuousMonoidHom.range_toContinuousMap 2023-12-22 05:11:55 d7fc2c5 fix: remove `++` in `throwError` in favor of {""} (#8132) This correctly interpolates the error messages in the `cases'` tactic. Reported at: https://leanprover.zulipchat.com/#narrow/stream/270676-lean4/topic/uninterpolated.20error.20message.3A.20unecessary.20generalizing/near/400018518 ESTIMATED CHANGES Modified Mathlib/Tactic/Cases.lean 2023-12-22 02:15:40 1be5db8 chore: bump ProofWidgets to v0.0.24 (#9191) ESTIMATED CHANGES Modified lake-manifest.json Modified lakefile.lean 2023-12-22 00:30:57 58eef79 chore: move to v4.5.0-rc1, and merge changes from `bump/v4.5.0` branch. (#9188) This PR: * bumps to lean-toolchain to `v4.5.0-rc1` * bumps the Std and Aesop dependencies to their versions using `v4.5.0-rc1` * merge the already reviewed changes from the `bump/v4.5.0` branch * adaptations for leanprover/lean4#2923 in #9011 * adaptations for leanprover/lean4#2973 in #9161 * adaptations for leanprover/lean4#2964 in #9176 ESTIMATED CHANGES Modified .github/workflows/bors.yml Modified .github/workflows/build.yml Modified .github/workflows/build.yml.in Modified .github/workflows/build_fork.yml Modified Archive/Examples/IfNormalization/WithoutAesop.lean Modified Mathlib/CategoryTheory/Monoidal/Preadditive.lean Modified Mathlib/Data/Finset/NoncommProd.lean Modified Mathlib/Data/List/Func.lean Modified Mathlib/Data/List/Join.lean Modified Mathlib/Data/List/Perm.lean Modified Mathlib/Data/List/Sigma.lean Modified Mathlib/Data/Nat/Bits.lean Modified Mathlib/Data/PFun.lean Modified Mathlib/Data/Seq/Parallel.lean Modified Mathlib/Data/Set/Intervals/Basic.lean Modified Mathlib/Data/Stream/Init.lean Modified Mathlib/Init/Data/Nat/Bitwise.lean Modified Mathlib/MeasureTheory/Covering/BesicovitchVectorSpace.lean Modified Mathlib/MeasureTheory/Measure/Stieltjes.lean Modified Mathlib/NumberTheory/Dioph.lean Modified Mathlib/NumberTheory/LucasLehmer.lean Modified Mathlib/NumberTheory/Padics/Hensel.lean Modified Mathlib/Tactic/Clean.lean Modified Mathlib/Tactic/Widget/Calc.lean Modified Mathlib/Tactic/Widget/Congrm.lean Modified Mathlib/Tactic/Widget/Conv.lean Modified Mathlib/Tactic/Widget/Gcongr.lean Modified lake-manifest.json Modified lakefile.lean Modified lean-toolchain Modified test/abel.lean Modified test/matrix.lean 2023-12-21 23:05:32 cf8e23a chore: move toolchain to v4.4.0 (#9186) ESTIMATED CHANGES Modified lake-manifest.json Modified lean-toolchain 2023-12-21 20:35:54 14c7296 chore(*): use `∃ x ∈ s, _` instead of `∃ (x) (_ : x ∈ s), _` (#9184) Search for `[∀∃].*(_` and manually replace some occurrences with more readable versions. In case of `∀`, the new expressions are defeq to the old ones. In case of `∃`, they differ by `exists_prop`. In some rare cases, golf proofs that needed fixing. ESTIMATED CHANGES Modified Archive/Imo/Imo1994Q1.lean Modified Counterexamples/LinearOrderWithPosMulPosEqZero.lean Modified Mathlib/Algebra/Algebra/Operations.lean Modified Mathlib/Algebra/BigOperators/Basic.lean Modified Mathlib/Algebra/BigOperators/Multiset/Basic.lean +/- theorem Multiset.prod_eq_pow_single Modified Mathlib/Algebra/BigOperators/Order.lean Modified Mathlib/Algebra/GroupPower/Order.lean +/- theorem pow_le_one +/- theorem pow_lt_one Modified Mathlib/Algebra/Order/Support.lean +/- theorem Set.le_mulIndicator +/- theorem Set.mulIndicator_le_self' Modified Mathlib/AlgebraicGeometry/PrimeSpectrum/Noetherian.lean Modified Mathlib/Analysis/Analytic/Basic.lean Modified Mathlib/Analysis/Calculus/FDeriv/Extend.lean Modified Mathlib/Analysis/Calculus/FDeriv/Measurable.lean Modified Mathlib/Analysis/Calculus/Taylor.lean Modified Mathlib/Analysis/ConstantSpeed.lean Modified Mathlib/Analysis/Convex/Caratheodory.lean Modified Mathlib/Analysis/Convex/Combination.lean Modified Mathlib/Analysis/Convex/Extreme.lean Modified Mathlib/Analysis/Convex/Segment.lean Modified Mathlib/Analysis/Convex/Side.lean Modified Mathlib/Analysis/Convex/SimplicialComplex/Basic.lean +/- theorem Geometry.SimplicialComplex.mem_space_iff Modified Mathlib/Analysis/LocallyConvex/BalancedCoreHull.lean +/- theorem mem_balancedHull_iff +/- theorem subset_balancedCore Modified Mathlib/Analysis/LocallyConvex/Bounded.lean Modified Mathlib/Analysis/LocallyConvex/ContinuousOfBounded.lean Modified Mathlib/Analysis/LocallyConvex/WithSeminorms.lean Modified Mathlib/Analysis/NormedSpace/AddTorsorBases.lean Modified Mathlib/Analysis/NormedSpace/LpEquiv.lean Modified Mathlib/Analysis/NormedSpace/lpSpace.lean Modified Mathlib/Analysis/SpecificLimits/Normed.lean Modified Mathlib/Combinatorics/Configuration.lean Modified Mathlib/Combinatorics/Pigeonhole.lean Modified Mathlib/Combinatorics/SimpleGraph/Ends/Defs.lean Modified Mathlib/Computability/Partrec.lean Modified Mathlib/Data/Finset/Basic.lean +/- theorem Multiset.toFinset_nsmul Modified Mathlib/Data/Finset/Card.lean +/- def Finset.strongInduction +/- theorem Finset.strongInduction_eq Modified Mathlib/Data/Finset/Lattice.lean +/- theorem Finset.inf'_mem +/- theorem Finset.inf_mem +/- theorem Finset.sup'_mem +/- theorem Finset.sup_mem Modified Mathlib/Data/Finset/PiInduction.lean Modified Mathlib/Data/Finset/Powerset.lean Modified Mathlib/Data/Finset/Preimage.lean Modified Mathlib/Data/List/Basic.lean Modified Mathlib/Data/List/BigOperators/Basic.lean +/- theorem List.prod_isUnit Modified Mathlib/Data/List/Chain.lean +/- theorem List.Chain'.tail Modified Mathlib/Data/List/Cycle.lean +/- def List.prev Modified Mathlib/Data/List/Nodup.lean Modified Mathlib/Data/List/NodupEquivFin.lean Modified Mathlib/Data/List/Sort.lean +/- theorem List.Sorted.insertionSort_eq Modified Mathlib/Data/List/Zip.lean Modified Mathlib/Data/Matrix/Basic.lean Modified Mathlib/Data/Multiset/Basic.lean Modified Mathlib/Data/MvPolynomial/Variables.lean +/- theorem MvPolynomial.mem_vars Modified Mathlib/Data/Polynomial/AlgebraMap.lean Modified Mathlib/Data/Real/CauSeq.lean Modified Mathlib/Data/Semiquot.lean +/- def Semiquot.liftOn Modified Mathlib/Data/Set/Basic.lean +/- theorem Set.Nontrivial.exists_lt +/- theorem Set.Nontrivial.pair_subset +/- theorem Set.nontrivial_iff_pair_subset Modified Mathlib/Data/Set/Card.lean Modified Mathlib/Data/Set/Function.lean Modified Mathlib/Data/Set/Image.lean +/- theorem Set.mem_image Modified Mathlib/Data/Set/Intervals/OrdConnected.lean +/- theorem Set.ordConnected_biInter Modified Mathlib/Data/Set/Intervals/Pi.lean Modified Mathlib/Data/Set/Intervals/UnorderedInterval.lean Modified Mathlib/Data/Set/Lattice.lean +/- theorem Set.InjOn.image_biInter_eq Modified Mathlib/Data/Set/Pairwise/Basic.lean Modified Mathlib/Data/Set/Prod.lean +/- theorem Set.update_preimage_univ_pi Modified Mathlib/Data/Set/UnionLift.lean Modified Mathlib/FieldTheory/Subfield.lean Modified Mathlib/GroupTheory/MonoidLocalization.lean +/- theorem Localization.liftOn_mk' +/- theorem Localization.liftOn_mk +/- theorem Localization.liftOn_zero Modified Mathlib/GroupTheory/Perm/Cycle/Basic.lean Modified Mathlib/GroupTheory/Perm/Cycle/Concrete.lean +/- def Cycle.formPerm Modified Mathlib/GroupTheory/Subgroup/Basic.lean +/- def Subgroup.ofDiv Modified Mathlib/LinearAlgebra/FreeModule/PID.lean Modified Mathlib/LinearAlgebra/LinearIndependent.lean Modified Mathlib/LinearAlgebra/Matrix/ToLinearEquiv.lean Modified Mathlib/MeasureTheory/Constructions/BorelSpace/Metrizable.lean Modified Mathlib/MeasureTheory/Constructions/Cylinders.lean Modified Mathlib/MeasureTheory/Function/Egorov.lean Modified Mathlib/MeasureTheory/Function/StronglyMeasurable/Basic.lean Modified Mathlib/MeasureTheory/Measure/Doubling.lean Modified Mathlib/MeasureTheory/Measure/Haar/OfBasis.lean Modified Mathlib/MeasureTheory/Measure/MeasureSpace.lean Modified Mathlib/MeasureTheory/Measure/Restrict.lean Modified Mathlib/MeasureTheory/Measure/VectorMeasure.lean +/- theorem MeasureTheory.VectorMeasure.MutuallySingular.mk Modified Mathlib/MeasureTheory/PiSystem.lean Modified Mathlib/Order/Filter/Interval.lean Modified Mathlib/Order/Zorn.lean Modified Mathlib/RingTheory/AlgebraicIndependent.lean Modified Mathlib/RingTheory/DedekindDomain/Ideal.lean Modified Mathlib/RingTheory/UniqueFactorizationDomain.lean Modified Mathlib/Topology/Algebra/FilterBasis.lean Modified Mathlib/Topology/Algebra/Semigroup.lean Modified Mathlib/Topology/Algebra/UniformFilterBasis.lean Modified Mathlib/Topology/Algebra/Valuation.lean Modified Mathlib/Topology/Bornology/Basic.lean Modified Mathlib/Topology/Category/Profinite/CofilteredLimit.lean Modified Mathlib/Topology/Connected/PathConnected.lean Modified Mathlib/Topology/ContinuousFunction/Bounded.lean Modified Mathlib/Topology/ContinuousFunction/Ideals.lean Modified Mathlib/Topology/ContinuousFunction/StoneWeierstrass.lean Modified Mathlib/Topology/UniformSpace/Equicontinuity.lean 2023-12-21 16:16:28 da34c25 fix(Data/Option/Defs): Remove `Option.rel` and `Option.maybe`, superceded by std4 (#9178) Remove `Option.rel` and `Option.maybe`, which have identical definitions to `Option.Rel` and `Option.sequence`, and aren't used anywhere. ESTIMATED CHANGES Modified Mathlib/Data/Option/Defs.lean - def Option.maybe.{u, - inductive Option.rel 2023-12-21 16:16:27 3fca282 chore: remove uses of `cases'` (#9171) I literally went through and regex'd some uses of `cases'`, replacing them with `rcases`; this is meant to be a low effort PR as I hope that tools can do this in the future. `rcases` is an easier replacement than `cases`, though with better tools we could in future do a second pass converting simple `rcases` added here (and existing ones) to `cases`. ESTIMATED CHANGES Modified Archive/Arithcc.lean Modified Archive/Imo/Imo2011Q5.lean Modified Counterexamples/SeminormLatticeNotDistrib.lean Modified Counterexamples/SorgenfreyLine.lean Modified Mathlib/Algebra/BigOperators/Ring.lean Modified Mathlib/Algebra/ContinuedFractions/Computation/Translations.lean Modified Mathlib/Algebra/GeomSum.lean Modified Mathlib/Algebra/GroupPower/Lemmas.lean Modified Mathlib/Algebra/Homology/LocalCohomology.lean Modified Mathlib/Algebra/Lie/Nilpotent.lean Modified Mathlib/Algebra/Module/Torsion.lean Modified Mathlib/Algebra/Order/Field/Basic.lean Modified Mathlib/Algebra/Order/Floor.lean Modified Mathlib/Algebra/Order/Group/Abs.lean Modified Mathlib/Algebra/Order/Monoid/Canonical/Defs.lean Modified Mathlib/Algebra/Order/Monoid/MinMax.lean Modified Mathlib/Algebra/Order/Ring/Abs.lean Modified Mathlib/Algebra/Order/Sub/Canonical.lean Modified Mathlib/Algebra/Order/ToIntervalMod.lean Modified Mathlib/Algebra/Polynomial/BigOperators.lean Modified Mathlib/Algebra/Tropical/Basic.lean Modified Mathlib/AlgebraicGeometry/Properties.lean Modified Mathlib/AlgebraicTopology/SimplexCategory.lean Modified Mathlib/Analysis/Analytic/Basic.lean Modified Mathlib/Analysis/Asymptotics/Asymptotics.lean Modified Mathlib/Analysis/BoundedVariation.lean Modified Mathlib/Analysis/BoxIntegral/Partition/Basic.lean Modified Mathlib/Analysis/Calculus/Darboux.lean Modified Mathlib/Analysis/Calculus/Deriv/ZPow.lean Modified Mathlib/Analysis/Calculus/InverseFunctionTheorem/ApproximatesLinearOn.lean Modified Mathlib/Analysis/Calculus/LocalExtr/Polynomial.lean Modified Mathlib/Analysis/Complex/PhragmenLindelof.lean Modified Mathlib/Analysis/Complex/Schwarz.lean Modified Mathlib/Analysis/Convex/Integral.lean Modified Mathlib/Analysis/Convex/Segment.lean Modified Mathlib/Analysis/Convex/SpecificFunctions/Basic.lean Modified Mathlib/Analysis/Convex/SpecificFunctions/Deriv.lean Modified Mathlib/Analysis/Convex/StrictConvexSpace.lean Modified Mathlib/Analysis/MeanInequalities.lean Modified Mathlib/Analysis/Normed/Group/AddCircle.lean Modified Mathlib/Analysis/Normed/Group/Basic.lean Modified Mathlib/Analysis/NormedSpace/AddTorsor.lean Modified Mathlib/Analysis/NormedSpace/RieszLemma.lean Modified Mathlib/Analysis/ODE/PicardLindelof.lean Modified Mathlib/Analysis/PSeries.lean Modified Mathlib/Analysis/SpecialFunctions/CompareExp.lean Modified Mathlib/Analysis/SpecialFunctions/Complex/Arg.lean Modified Mathlib/Analysis/SpecialFunctions/Integrals.lean Modified Mathlib/Analysis/SpecialFunctions/Polynomials.lean Modified Mathlib/Analysis/SpecialFunctions/Pow/Real.lean Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Arctan.lean Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Inverse.lean Modified Mathlib/Combinatorics/Hindman.lean Modified Mathlib/Computability/TuringMachine.lean Modified Mathlib/Control/LawfulFix.lean Modified Mathlib/Data/Fin/Basic.lean Modified Mathlib/Data/Finset/PiInduction.lean Modified Mathlib/Data/Finset/Powerset.lean Modified Mathlib/Data/Fintype/Card.lean Modified Mathlib/Data/Int/Log.lean Modified Mathlib/Data/List/Basic.lean Modified Mathlib/Data/List/Intervals.lean Modified Mathlib/Data/List/Rotate.lean Modified Mathlib/Data/Nat/Cast/Order.lean Modified Mathlib/Data/Nat/Choose/Basic.lean Modified Mathlib/Data/Nat/Digits.lean Modified Mathlib/Data/Nat/Fib/Basic.lean Modified Mathlib/Data/Nat/GCD/Basic.lean Modified Mathlib/Data/Nat/Log.lean Modified Mathlib/Data/Nat/Order/Basic.lean Modified Mathlib/Data/Nat/Order/Lemmas.lean Modified Mathlib/Data/Nat/Prime.lean Modified Mathlib/Data/Nat/Squarefree.lean Modified Mathlib/Data/Ordmap/Ordset.lean Modified Mathlib/Data/Pi/Lex.lean Modified Mathlib/Data/Polynomial/Derivative.lean Modified Mathlib/Data/Polynomial/Expand.lean Modified Mathlib/Data/Rat/NNRat.lean Modified Mathlib/Data/Rat/Order.lean Modified Mathlib/Data/Real/ENNReal.lean Modified Mathlib/Data/Real/NNReal.lean Modified Mathlib/Data/Real/Sqrt.lean Modified Mathlib/Data/Set/Finite.lean Modified Mathlib/Data/Set/Intervals/Basic.lean Modified Mathlib/Data/Set/Intervals/OrdConnectedComponent.lean Modified Mathlib/Data/Set/Intervals/ProjIcc.lean Modified Mathlib/Data/Set/Intervals/UnorderedInterval.lean Modified Mathlib/Data/Set/Prod.lean Modified Mathlib/Dynamics/Ergodic/AddCircle.lean Modified Mathlib/Dynamics/PeriodicPts.lean Modified Mathlib/FieldTheory/IsAlgClosed/Basic.lean Modified Mathlib/FieldTheory/IsSepClosed.lean Modified Mathlib/FieldTheory/Minpoly/Basic.lean Modified Mathlib/Geometry/Manifold/ChartedSpace.lean Modified Mathlib/GroupTheory/Perm/List.lean Modified Mathlib/LinearAlgebra/AffineSpace/AffineSubspace.lean Modified Mathlib/LinearAlgebra/AffineSpace/Basis.lean Modified Mathlib/LinearAlgebra/AffineSpace/Combination.lean Modified Mathlib/LinearAlgebra/Basis.lean Modified Mathlib/LinearAlgebra/LinearPMap.lean Modified Mathlib/LinearAlgebra/Matrix/Adjugate.lean Modified Mathlib/LinearAlgebra/Matrix/Charpoly/Coeff.lean Modified Mathlib/LinearAlgebra/Matrix/NonsingularInverse.lean Modified Mathlib/LinearAlgebra/Matrix/Polynomial.lean Modified Mathlib/LinearAlgebra/Matrix/ZPow.lean Modified Mathlib/MeasureTheory/Constructions/BorelSpace/Basic.lean Modified Mathlib/MeasureTheory/Constructions/Pi.lean Modified Mathlib/MeasureTheory/Covering/LiminfLimsup.lean Modified Mathlib/MeasureTheory/Function/Floor.lean Modified Mathlib/MeasureTheory/Function/LpSeminorm.lean Modified Mathlib/MeasureTheory/Function/LpSpace.lean Modified Mathlib/MeasureTheory/Function/StronglyMeasurable/Basic.lean Modified Mathlib/MeasureTheory/Group/AddCircle.lean Modified Mathlib/MeasureTheory/Integral/Average.lean Modified Mathlib/MeasureTheory/Integral/CircleIntegral.lean Modified Mathlib/MeasureTheory/Integral/DivergenceTheorem.lean Modified Mathlib/MeasureTheory/Integral/FundThmCalculus.lean Modified Mathlib/MeasureTheory/Integral/IntervalAverage.lean Modified Mathlib/MeasureTheory/Integral/IntervalIntegral.lean Modified Mathlib/MeasureTheory/Integral/Lebesgue.lean Modified Mathlib/MeasureTheory/MeasurableSpace/Basic.lean Modified Mathlib/MeasureTheory/Measure/Content.lean Modified Mathlib/MeasureTheory/Measure/Haar/OfBasis.lean Modified Mathlib/MeasureTheory/Measure/MeasureSpace.lean Modified Mathlib/MeasureTheory/Measure/OuterMeasure.lean Modified Mathlib/MeasureTheory/Measure/Regular.lean Modified Mathlib/MeasureTheory/Measure/Restrict.lean Modified Mathlib/MeasureTheory/Measure/Stieltjes.lean Modified Mathlib/ModelTheory/FinitelyGenerated.lean Modified Mathlib/NumberTheory/Dioph.lean Modified Mathlib/NumberTheory/DiophantineApproximation.lean Modified Mathlib/NumberTheory/LegendreSymbol/Basic.lean Modified Mathlib/NumberTheory/LegendreSymbol/GaussSum.lean Modified Mathlib/NumberTheory/LegendreSymbol/JacobiSymbol.lean Modified Mathlib/NumberTheory/LegendreSymbol/QuadraticReciprocity.lean Modified Mathlib/NumberTheory/Liouville/LiouvilleWith.lean Modified Mathlib/NumberTheory/Pell.lean Modified Mathlib/NumberTheory/PellMatiyasevic.lean Modified Mathlib/NumberTheory/PythagoreanTriples.lean Modified Mathlib/Order/Atoms.lean Modified Mathlib/Order/Bounds/Basic.lean Modified Mathlib/Order/Circular.lean Modified Mathlib/Order/CompactlyGenerated.lean Modified Mathlib/Order/ConditionallyCompleteLattice/Basic.lean Modified Mathlib/Order/Filter/Bases.lean Modified Mathlib/Order/Filter/FilterProduct.lean Modified Mathlib/Order/Filter/Interval.lean Modified Mathlib/Order/Height.lean Modified Mathlib/Order/LiminfLimsup.lean Modified Mathlib/Order/MinMax.lean Modified Mathlib/Order/ModularLattice.lean Modified Mathlib/Order/OmegaCompletePartialOrder.lean Modified Mathlib/Order/OrderIsoNat.lean Modified Mathlib/Order/SuccPred/Basic.lean Modified Mathlib/Order/SuccPred/IntervalSucc.lean Modified Mathlib/Order/SuccPred/LinearLocallyFinite.lean Modified Mathlib/Order/SuccPred/Relation.lean Modified Mathlib/Probability/Kernel/Disintegration.lean Modified Mathlib/Probability/Moments.lean Modified Mathlib/Probability/Process/HittingTime.lean Modified Mathlib/Probability/Process/Stopping.lean Modified Mathlib/RingTheory/Artinian.lean Modified Mathlib/RingTheory/DiscreteValuationRing/TFAE.lean Modified Mathlib/RingTheory/Ideal/Operations.lean Modified Mathlib/RingTheory/Localization/Away/Basic.lean Modified Mathlib/RingTheory/Noetherian.lean Modified Mathlib/RingTheory/Polynomial/Basic.lean Modified Mathlib/RingTheory/Polynomial/Hermite/Basic.lean Modified Mathlib/RingTheory/Polynomial/Nilpotent.lean Modified Mathlib/RingTheory/RootsOfUnity/Basic.lean Modified Mathlib/RingTheory/Valuation/Basic.lean Modified Mathlib/RingTheory/Valuation/ValuationRing.lean Modified Mathlib/RingTheory/Valuation/ValuationSubring.lean Modified Mathlib/SetTheory/Cardinal/Divisibility.lean Modified Mathlib/SetTheory/Cardinal/Ordinal.lean Modified Mathlib/SetTheory/Ordinal/Arithmetic.lean Modified Mathlib/SetTheory/Ordinal/CantorNormalForm.lean Modified Mathlib/SetTheory/Ordinal/Exponential.lean Modified Mathlib/SetTheory/Ordinal/FixedPoint.lean Modified Mathlib/SetTheory/Ordinal/Notation.lean Modified Mathlib/SetTheory/Ordinal/Principal.lean Modified Mathlib/SetTheory/Ordinal/Topology.lean Modified Mathlib/Topology/Algebra/Order/Compact.lean Modified Mathlib/Topology/Algebra/Order/IntermediateValue.lean Modified Mathlib/Topology/Algebra/ValuedField.lean Modified Mathlib/Topology/Constructions.lean Modified Mathlib/Topology/FiberBundle/Basic.lean Modified Mathlib/Topology/Maps.lean Modified Mathlib/Topology/MetricSpace/Baire.lean Modified Mathlib/Topology/MetricSpace/Cauchy.lean Modified Mathlib/Topology/MetricSpace/HausdorffDistance.lean Modified Mathlib/Topology/MetricSpace/Kuratowski.lean Modified Mathlib/Topology/MetricSpace/PseudoMetric.lean Modified Mathlib/Topology/Metrizable/Uniformity.lean Modified Mathlib/Topology/Metrizable/Urysohn.lean Modified Mathlib/Topology/Order/Basic.lean Modified Mathlib/Topology/Separation.lean Modified Mathlib/Topology/TietzeExtension.lean Modified Mathlib/Topology/UniformSpace/Cauchy.lean 2023-12-21 16:16:26 850c640 refactor: use the new homology API for the four and the five lemmas (#9022) This PR refactors the four and the five lemmas so as to use the new homology API. The files `Algebra.Homology.ShortExact.Abelian` and `Algebra.Homology.ShortExact.Preadditive` are also removed because the content of these files has become redundant with the new homology API. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Category/ModuleCat/Biproducts.lean Modified Mathlib/Algebra/Category/ModuleCat/Free.lean +/- def ModuleCat.Basis.ofShortExact +/- theorem ModuleCat.free_shortExact +/- theorem ModuleCat.free_shortExact_finrank_add +/- theorem ModuleCat.free_shortExact_rank_add +/- theorem ModuleCat.linearIndependent_leftExact +/- theorem ModuleCat.linearIndependent_shortExact +/- theorem ModuleCat.span_exact +/- theorem ModuleCat.span_rightExact Modified Mathlib/Algebra/Homology/ExactSequence.lean + theorem CategoryTheory.ComposableArrows.Exact.exact' - theorem CategoryTheory.ComposableArrows.IsExact.exact' + theorem CategoryTheory.ComposableArrows.exact_iff_δlast Deleted Mathlib/Algebra/Homology/ShortExact/Abelian.lean - def CategoryTheory.LeftSplit.splitting - def CategoryTheory.RightSplit.splitting - def CategoryTheory.Splitting.mk'' - def CategoryTheory.Splitting.mk' - theorem CategoryTheory.isIso_of_shortExact_of_isIso_of_isIso Deleted Mathlib/Algebra/Homology/ShortExact/Preadditive.lean - theorem CategoryTheory.LeftSplit.shortExact - structure CategoryTheory.LeftSplit - theorem CategoryTheory.RightSplit.shortExact - structure CategoryTheory.RightSplit - structure CategoryTheory.ShortExact - theorem CategoryTheory.Split.exact - theorem CategoryTheory.Split.leftSplit - theorem CategoryTheory.Split.map - theorem CategoryTheory.Split.rightSplit - theorem CategoryTheory.Split.shortExact - structure CategoryTheory.Split - theorem CategoryTheory.Splitting.comp_eq_zero - theorem CategoryTheory.Splitting.inl_comp_iso_eq - theorem CategoryTheory.Splitting.inr_iso_inv - theorem CategoryTheory.Splitting.iso_comp_eq_snd - theorem CategoryTheory.Splitting.iso_hom_fst - def CategoryTheory.Splitting.retraction - theorem CategoryTheory.Splitting.retraction_ι_eq_id_sub - theorem CategoryTheory.Splitting.section_retraction - theorem CategoryTheory.Splitting.section_π - theorem CategoryTheory.Splitting.split - theorem CategoryTheory.Splitting.split_add - def CategoryTheory.Splitting.splittingOfIsIsoZero - theorem CategoryTheory.Splitting.splittings_comm - def CategoryTheory.Splitting.«section» - theorem CategoryTheory.Splitting.ι_retraction - theorem CategoryTheory.Splitting.π_section_eq_id_sub - structure CategoryTheory.Splitting - theorem CategoryTheory.exact_inl_snd - theorem CategoryTheory.exact_inr_fst - theorem CategoryTheory.exact_of_split Modified Mathlib/CategoryTheory/Abelian/DiagramLemmas/Four.lean + theorem CategoryTheory.Abelian.epi_of_epi_of_epi_of_mono' +/- theorem CategoryTheory.Abelian.epi_of_epi_of_epi_of_mono +/- theorem CategoryTheory.Abelian.isIso_of_epi_of_isIso_of_isIso_of_mono + theorem CategoryTheory.Abelian.mono_of_epi_of_mono_of_mono' +/- theorem CategoryTheory.Abelian.mono_of_epi_of_mono_of_mono Modified Mathlib/CategoryTheory/ComposableArrows.lean + def CategoryTheory.ComposableArrows.δlastFunctor + def Fin.castSuccFunctor Modified Mathlib/Topology/Category/Profinite/Nobeling.lean 2023-12-21 15:05:02 7ab2941 feat(Order/RelIso): define missing instances (#9170) Define `EmbeddingLike (r ↪r s) α β` and `EquivLike (r ≃r s) α β`. ESTIMATED CHANGES Modified Mathlib/Order/RelIso/Basic.lean - def RelEmbedding.Simps.apply +/- theorem RelEmbedding.inj 2023-12-21 09:38:26 e7c657f chore(Perm/Basic): golf (#9174) Golf 3 proofs ESTIMATED CHANGES Modified Mathlib/GroupTheory/Perm/Basic.lean +/- theorem Equiv.mul_swap_eq_iff +/- theorem Equiv.swap_mul_eq_iff +/- theorem Equiv.swap_mul_swap_mul_swap 2023-12-21 08:37:10 4cf0095 feat(Topology/Compact): an infinite set has an accumulation point (#9173) Add more versions of this statement. Also remove `simp` from `Filter.disjoint_cofinite_{left,right}` as RHS is not much simpler than LHS. ESTIMATED CHANGES Modified Mathlib/Order/Filter/Cofinite.lean + theorem Filter.cofinite_inf_principal_neBot_iff + theorem Filter.frequently_cofinite_mem_iff_infinite + theorem Set.Finite.cofinite_inf_principal_compl + theorem Set.Finite.cofinite_inf_principal_diff Modified Mathlib/Topology/Compactness/Compact.lean + theorem Set.Infinite.exists_accPt_cofinite_inf_principal + theorem Set.Infinite.exists_accPt_cofinite_inf_principal_of_subset_isCompact + theorem Set.Infinite.exists_accPt_of_subset_isCompact + theorem Set.Infinite.exists_accPt_principal 2023-12-21 07:24:09 e352bb7 chore: bump Std to leanprover/std4#463 (#9175) ESTIMATED CHANGES Modified lake-manifest.json 2023-12-21 04:20:55 9795746 chore: bump Std to leanprover/std4#277 (#9172) ESTIMATED CHANGES Modified Mathlib/Data/List/Basic.lean - theorem List.drop_add - theorem List.drop_eq_get_cons - theorem List.drop_left' - theorem List.drop_left - theorem List.drop_one Modified Mathlib/Data/List/Zip.lean - theorem List.map_fst_zip - theorem List.map_snd_zip - theorem List.map_zipWith - theorem List.zipWith_append - theorem List.zipWith_distrib_drop - theorem List.zipWith_distrib_tail - theorem List.zipWith_distrib_take - theorem List.zipWith_eq_nil_iff - theorem List.zip_append - theorem List.zip_map' Modified lake-manifest.json 2023-12-20 23:32:43 56ce93a chore(UniformConvergenceTopology): use `variable`, fix types (#9132) * Use `variable`. * Add `toFun`/`ofFun` to abuse the definitional equality less often. * Review instances in `Topology.Algebra.UniformConvergence`. * Replace `*_apply` lemmas with `toFun_*`/`ofFun_*` lemmas. ESTIMATED CHANGES Modified Mathlib/Topology/Algebra/UniformConvergence.lean - theorem UniformFun.div_apply - theorem UniformFun.inv_apply - theorem UniformFun.mul_apply + theorem UniformFun.ofFun_div + theorem UniformFun.ofFun_inv + theorem UniformFun.ofFun_mul + theorem UniformFun.ofFun_one + theorem UniformFun.ofFun_smul - theorem UniformFun.one_apply + theorem UniformFun.toFun_div + theorem UniformFun.toFun_inv + theorem UniformFun.toFun_mul + theorem UniformFun.toFun_one + theorem UniformFun.toFun_smul - theorem UniformOnFun.div_apply - theorem UniformOnFun.inv_apply - theorem UniformOnFun.mul_apply + theorem UniformOnFun.ofFun_div + theorem UniformOnFun.ofFun_inv + theorem UniformOnFun.ofFun_mul + theorem UniformOnFun.ofFun_smul +/- theorem UniformOnFun.one_apply + theorem UniformOnFun.toFun_div + theorem UniformOnFun.toFun_inv + theorem UniformOnFun.toFun_mul + theorem UniformOnFun.toFun_one + theorem UniformOnFun.toFun_smul Modified Mathlib/Topology/UniformSpace/UniformConvergenceTopology.lean +/- def UniformFun.ofFun + theorem UniformFun.ofFun_toFun +/- def UniformFun.toFun + theorem UniformFun.toFun_ofFun +/- def UniformOnFun.ofFun + theorem UniformOnFun.ofFun_toFun +/- def UniformOnFun.toFun + theorem UniformOnFun.toFun_ofFun 2023-12-20 20:21:09 e4dff73 doc: Explain relative Sylow theorems (#9158) Requested by @urkud ESTIMATED CHANGES Modified Mathlib/GroupTheory/Sylow.lean +/- theorem Sylow.exists_subgroup_card_pow_prime_of_le_card +/- theorem Sylow.exists_subgroup_le_card_pow_prime_of_le_card 2023-12-20 19:25:45 d9b8c71 feat(NumberTheory/ZetaFunction): residue of Riemann zeta at s = 1 (#9165) We add the computation of the residue of the completed and non-completed Riemann zeta functions at `s = 1`. ESTIMATED CHANGES Modified Mathlib/NumberTheory/ZetaFunction.lean + theorem riemannCompletedZeta_residue_one + theorem riemannZeta_residue_one 2023-12-20 19:25:44 9643670 feat(RingTheory/Artinian): the collection of maximal ideals in an artinian ring is finite (#9087) Co-PR: #9088 (minimal prime ideals in Noetherian ring are finite) ESTIMATED CHANGES Modified Mathlib/RingTheory/Artinian.lean + theorem IsArtinianRing.isPrime_iff_isMaximal + theorem IsArtinianRing.maximal_ideals_finite + theorem IsArtinianRing.primeSpectrum_finite 2023-12-20 19:25:43 58d258c feat(Filter/{NAry,Pointwise}): add missing `NeBot` instances (#9055) - Add missing `Filter.NeBot` instances for `Filter.map₂` and pointwise operations, rename `Filter.prod_neBot'` to `Filter.prod.instNeBot`. - Make `Filter.prod_eq_bot` a `simp` lemma. - Protect some lemmas. - Golf some proofs. - Make `Filter.map₂_left` and `Filter.map₂_right` take `NeBot` argument as an instance. ESTIMATED CHANGES Modified Mathlib/Order/Filter/NAry.lean - theorem Filter.NeBot.map₂ +/- theorem Filter.NeBot.of_map₂_left +/- theorem Filter.NeBot.of_map₂_right +/- theorem Filter.map₂_bot_left +/- theorem Filter.map₂_bot_right +/- theorem Filter.map₂_eq_bot_iff +/- theorem Filter.map₂_left +/- theorem Filter.map₂_neBot_iff +/- theorem Filter.map₂_pure_left +/- theorem Filter.map₂_pure_right +/- theorem Filter.map₂_right +/- def Filter.map₃ Modified Mathlib/Order/Filter/Pointwise.lean - theorem Filter.NeBot.div - theorem Filter.NeBot.inv - theorem Filter.NeBot.mul - theorem Filter.NeBot.smul - theorem Filter.NeBot.vsub + theorem Filter.div.instNeBot + theorem Filter.inv.instNeBot + theorem Filter.smul.instNeBot + theorem Filter.smul_filter.instNeBot + theorem Filter.vsub.instNeBot Modified Mathlib/Order/Filter/Prod.lean - theorem Filter.NeBot.prod 2023-12-20 19:25:42 051aa73 feat: non-integrability results of derivatives on `[a, +oo)` (#8712) We have in the library the lemma `not_intervalIntegrable_of_tendsto_norm_atTop_of_deriv_isBigO_filter`, saying that if a function tends to infinity at a point in an interval `[a, b]`, then its derivative is not interval-integrable on `[a, b]`. We generalize this result to allow for any set instead of `[a, b]`, and apply it to half-infinite intervals. In particular, we characterize integrability of `x^s` on `[a, +oo)`, and deduce that `x^s` is never integrable on `[0, +oo)`. This makes it possible to remove one assumption in Lemma `mellin_comp_rpow` on the Mellin transform. ESTIMATED CHANGES Modified Mathlib/Analysis/Asymptotics/Asymptotics.lean + theorem Filter.EventuallyEq.isBigO Modified Mathlib/Analysis/MellinTransform.lean +/- theorem mellin_comp_rpow Modified Mathlib/Analysis/SpecialFunctions/Gamma/Basic.lean - def Complex.Gamma Modified Mathlib/Analysis/SpecialFunctions/Gamma/Beta.lean Modified Mathlib/Analysis/SpecialFunctions/Gaussian.lean Modified Mathlib/Analysis/SpecialFunctions/ImproperIntegrals.lean + theorem integrableOn_Ioi_cpow_iff + theorem integrableOn_Ioi_rpow_iff + theorem not_integrableOn_Ioi_cpow + theorem not_integrableOn_Ioi_rpow + theorem setIntegral_Ioi_zero_cpow + theorem setIntegral_Ioi_zero_rpow Modified Mathlib/Analysis/SpecialFunctions/Integrals.lean + theorem intervalIntegral.integrableOn_Ioo_cpow_iff + theorem intervalIntegral.integrableOn_Ioo_rpow_iff Modified Mathlib/Analysis/SpecialFunctions/JapaneseBracket.lean Modified Mathlib/Analysis/SpecialFunctions/NonIntegrable.lean + theorem not_IntegrableOn_Ici_inv + theorem not_IntegrableOn_Ioi_inv + theorem not_integrableOn_of_tendsto_norm_atTop_of_deriv_isBigO_filter + theorem not_integrableOn_of_tendsto_norm_atTop_of_deriv_isBigO_filter_aux Modified Mathlib/MeasureTheory/Integral/DivergenceTheorem.lean Modified Mathlib/MeasureTheory/Integral/ExpDecay.lean Modified Mathlib/MeasureTheory/Integral/FundThmCalculus.lean +/- theorem intervalIntegral.integral_comp_smul_deriv''' +/- theorem intervalIntegral.integral_comp_smul_deriv'' +/- theorem intervalIntegral.integral_comp_smul_deriv' +/- theorem intervalIntegral.integral_comp_smul_deriv Modified Mathlib/MeasureTheory/Integral/IntegralEqImproper.lean Modified Mathlib/MeasureTheory/Integral/IntervalIntegral.lean + theorem intervalIntegrable_iff_integrableOn_Icc_of_le + theorem intervalIntegrable_iff_integrableOn_Ico_of_le + theorem intervalIntegrable_iff_integrableOn_Ioc_of_le + theorem intervalIntegrable_iff_integrableOn_Ioo_of_le - theorem intervalIntegrable_iff_integrable_Icc_of_le - theorem intervalIntegrable_iff_integrable_Ioc_of_le Modified Mathlib/MeasureTheory/Measure/Haar/NormedSpace.lean Modified Mathlib/NumberTheory/ZetaFunction.lean +/- theorem zetaKernel₂_one_div Modified Mathlib/Order/Filter/Interval.lean Modified Mathlib/Topology/Algebra/InfiniteSum/Basic.lean + theorem summable_const_iff + theorem tsum_const 2023-12-20 19:00:34 65a96a1 feat: define nonunital power-associativity (#8618) introduce `Prop`-valued mixin `PNatPowAssoc` and show that power-associativity holds for semigroups. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Group/PNatPowAssoc.lean + theorem ppow_add + theorem ppow_eq_pow + theorem ppow_mul' + theorem ppow_mul + theorem ppow_mul_assoc + theorem ppow_mul_comm + theorem ppow_one 2023-12-20 15:54:22 fb0bfc6 feat(Order/Filter): add lemmas about `Eventually*` and `iInter`/`iUnion` (#9090) As requested by Terence Tao on [Zulip](https://leanprover.zulipchat.com/#narrow/stream/217875-Is-there-code-for-X.3F/topic/Where.20is.20EventuallyEq.2Efinite_iInter.3F) ESTIMATED CHANGES Modified Mathlib/Order/Filter/Basic.lean + theorem Finset.eventuallyEq_iInter + theorem Finset.eventuallyEq_iUnion + theorem Finset.eventuallyLE_iInter + theorem Finset.eventuallyLE_iUnion + theorem Set.Finite.eventuallyEq_iInter + theorem Set.Finite.eventuallyEq_iUnion + theorem Set.Finite.eventuallyLE_iInter + theorem Set.Finite.eventuallyLE_iUnion 2023-12-20 15:54:21 56c6c09 feat: `f i * f j`, `f k * f l` are independent if `f` is (#8971) Also prove that a subsingleton family is always independent and that an independent family implies the measure is a probability measure. This latter result means we can drop `IsProbabilityMeasure μ` assumptions from many theorems. From PFR ESTIMATED CHANGES Modified Mathlib/Probability/Independence/Basic.lean + theorem ProbabilityTheory.iIndepFun.indepFun_div_div + theorem ProbabilityTheory.iIndepFun.indepFun_div_left + theorem ProbabilityTheory.iIndepFun.indepFun_div_right +/- theorem ProbabilityTheory.iIndepFun.indepFun_finset +/- theorem ProbabilityTheory.iIndepFun.indepFun_finset_prod_of_not_mem + theorem ProbabilityTheory.iIndepFun.indepFun_mul_left + theorem ProbabilityTheory.iIndepFun.indepFun_mul_mul + theorem ProbabilityTheory.iIndepFun.indepFun_mul_right - theorem ProbabilityTheory.iIndepFun.indepFun_prod + theorem ProbabilityTheory.iIndepFun.indepFun_prod_mk + theorem ProbabilityTheory.iIndepFun.indepFun_prod_mk_prod_mk +/- theorem ProbabilityTheory.iIndepFun.indepFun_prod_range_succ + theorem ProbabilityTheory.iIndepFun.isProbabilityMeasure - theorem ProbabilityTheory.iIndepFun.mul + theorem ProbabilityTheory.iIndepFun.of_subsingleton Modified Mathlib/Probability/Independence/Conditional.lean +/- theorem ProbabilityTheory.CondIndep.symm +/- theorem ProbabilityTheory.condIndep_of_condIndep_of_le_right - theorem ProbabilityTheory.iCondIndepFun.condIndepFun_prod + theorem ProbabilityTheory.iCondIndepFun.condIndepFun_prod_mk + theorem ProbabilityTheory.iCondIndepFun.condIndepFun_prod_mk_prod_mk +/- theorem ProbabilityTheory.iCondIndepFun.condIndepFun_prod_range_succ + theorem ProbabilityTheory.iCondIndepFun.indepFun_div_div + theorem ProbabilityTheory.iCondIndepFun.indepFun_div_left + theorem ProbabilityTheory.iCondIndepFun.indepFun_div_right + theorem ProbabilityTheory.iCondIndepFun.indepFun_mul_left + theorem ProbabilityTheory.iCondIndepFun.indepFun_mul_mul + theorem ProbabilityTheory.iCondIndepFun.indepFun_mul_right - theorem ProbabilityTheory.iCondIndepFun.mul + theorem ProbabilityTheory.iCondIndepFun.of_subsingleton Modified Mathlib/Probability/Independence/Kernel.lean + theorem ProbabilityTheory.kernel.iIndepFun.ae_isProbabilityMeasure + theorem ProbabilityTheory.kernel.iIndepFun.indepFun_div_div + theorem ProbabilityTheory.kernel.iIndepFun.indepFun_div_left + theorem ProbabilityTheory.kernel.iIndepFun.indepFun_div_right +/- theorem ProbabilityTheory.kernel.iIndepFun.indepFun_finset +/- theorem ProbabilityTheory.kernel.iIndepFun.indepFun_finset_prod_of_not_mem + theorem ProbabilityTheory.kernel.iIndepFun.indepFun_mul_left + theorem ProbabilityTheory.kernel.iIndepFun.indepFun_mul_mul + theorem ProbabilityTheory.kernel.iIndepFun.indepFun_mul_right - theorem ProbabilityTheory.kernel.iIndepFun.indepFun_prod + theorem ProbabilityTheory.kernel.iIndepFun.indepFun_prod_mk + theorem ProbabilityTheory.kernel.iIndepFun.indepFun_prod_mk_prod_mk +/- theorem ProbabilityTheory.kernel.iIndepFun.indepFun_prod_range_succ - theorem ProbabilityTheory.kernel.iIndepFun.mul + theorem ProbabilityTheory.kernel.iIndepFun.of_subsingleton 2023-12-20 15:10:33 a4a7700 refactor: Closure predicate for `ClosureOperator` (#9153) This PR is the result of two years and a half of pondering. The only way we ever define closure operators is by having a pre-existing "closedness" predicate and defining the closure of an element `x` as the infimum of all closed `y ≥ x` (assuming we're in a complete lattice). In particular, the emphasis is not on the **preorder of closed elements**, but on the **closedness predicate**. Morally, this is because a closure operator is the same as a Galois connection to the preorder of closed elements, but without mentioning the preorder of closed elements. That means that if we cared about the preorder of closed elements, we would not have wanted a closure operator in the first place, but a Galois connection. All this said, here's what this PR does * Add an `IsClosed` predicate to `ClosureOperator`. This redundant field is here to fix definitional equalities. * Remove the set `closeds`. This is mostly replaced by the predicate, except in the map `toCloseds`, so we... * ... Introduce an `abbrev Closeds` for the order of closed elements * Rename `toClosed` to `toCloseds` to match. * Rename the constructor `mk₃` to the more sexy `ofPred`. This is virtually the only useful constructor. Maybe it should even be taken as the definition, but I haven't gone that far. * Rename the old `ofPred` to `ofCompletePred`. `ofCompletePred` is a specialisation of `ofPred` to the case where we are in a complete lattice. * Remove a bunch of lemmas that are junk now that the definitional equality for `IsClosed` can be controlled. * Golf existing uses of `ClosureOperator`. The diff here, I think, truly demonstrates that this PR is a step forward. I am not extending the refactor to `LowerAdjoint` because: * I am still not sure we want `LowerAdjoint` to even exist * The rationale of preferring the closedness predicate over the preorder of closed elements is less strong here. * I am lazy. It is however easy to do the same refactor if wanted. ESTIMATED CHANGES Modified Mathlib/Analysis/Convex/Hull.lean - theorem Convex.convexHull_eq +/- def convexHull +/- theorem convexHull_eq_iInter + theorem convexHull_eq_self +/- theorem convexHull_min +/- theorem convex_convexHull Modified Mathlib/CategoryTheory/Sites/Closed.lean - theorem CategoryTheory.GrothendieckTopology.closed_iff_closed +/- theorem CategoryTheory.GrothendieckTopology.isClosed_iff_close_eq_self Modified Mathlib/Order/Closure.lean + theorem ClosureOperator.IsClosed.closure_eq + theorem ClosureOperator.IsClosed.closure_le_iff - def ClosureOperator.closed - theorem ClosureOperator.closed_eq_range_close - theorem ClosureOperator.closed_ofPred - theorem ClosureOperator.closure_eq_self_of_mem_closed - theorem ClosureOperator.closure_is_closed - theorem ClosureOperator.closure_le_closed_iff_le - theorem ClosureOperator.closure_le_mk₃_iff - theorem ClosureOperator.closure_mem_mk₃ + theorem ClosureOperator.closure_min - theorem ClosureOperator.eq_mk₃_closed + theorem ClosureOperator.eq_ofPred_closed +/- theorem ClosureOperator.ext +/- def ClosureOperator.gi + theorem ClosureOperator.isClosed_closure + theorem ClosureOperator.isClosed_iff_closure_le + theorem ClosureOperator.isClosed_top +/- theorem ClosureOperator.le_closure_iff - theorem ClosureOperator.mem_closed_iff - theorem ClosureOperator.mem_closed_iff_closure_le - theorem ClosureOperator.mem_closed_ofPred - theorem ClosureOperator.mem_mk₃_closed - def ClosureOperator.mk₃ + def ClosureOperator.ofCompletePred +/- def ClosureOperator.ofPred - theorem ClosureOperator.ofPred_spec + theorem ClosureOperator.setOf_isClosed_eq_range_closure - def ClosureOperator.toClosed + def ClosureOperator.toCloseds - theorem ClosureOperator.top_mem_closed Modified Mathlib/Order/SupClosed.lean +/- theorem infClosed_infClosure +/- def infClosure - theorem infClosure_closed +/- theorem infClosure_eq_self +/- theorem infClosure_min - theorem latticeClosure_closed +/- theorem latticeClosure_min +/- theorem supClosed_supClosure +/- def supClosure - theorem supClosure_closed +/- theorem supClosure_eq_self +/- theorem supClosure_min 2023-12-20 14:02:36 49ee3b2 refactor(FDeriv): use `structure` (#8907) This way we can easily change the definition so that it works for topological vector spaces without generalizing any of the theorems right away. ESTIMATED CHANGES Modified Mathlib/Analysis/BoxIntegral/DivergenceTheorem.lean Modified Mathlib/Analysis/Calculus/Deriv/Basic.lean Modified Mathlib/Analysis/Calculus/FDeriv/Add.lean + theorem HasFDerivAtFilter.add Modified Mathlib/Analysis/Calculus/FDeriv/Basic.lean + structure HasFDerivAtFilter - def HasFDerivAtFilter Modified Mathlib/Analysis/Calculus/FDeriv/Comp.lean Modified Mathlib/Analysis/Calculus/FDeriv/Equiv.lean Modified Mathlib/Analysis/Calculus/FDeriv/Extend.lean Modified Mathlib/Analysis/Calculus/FDeriv/Linear.lean Modified Mathlib/Analysis/Calculus/FDeriv/Measurable.lean Modified Mathlib/Analysis/Calculus/FDeriv/Prod.lean Modified Mathlib/Analysis/Calculus/FDeriv/RestrictScalars.lean + theorem HasFDerivWithinAt.of_restrictScalars - theorem hasFDerivWithinAt_of_restrictScalars Modified Mathlib/Analysis/Calculus/FDeriv/Symmetric.lean Modified Mathlib/Analysis/Calculus/Gradient/Basic.lean Modified Mathlib/MeasureTheory/Function/Jacobian.lean Modified Mathlib/MeasureTheory/Integral/FundThmCalculus.lean Modified Mathlib/Topology/Basic.lean + theorem not_mem_closure_iff_nhdsWithin_eq_bot Modified test/Recall.lean 2023-12-20 13:39:57 fdfe843 feat(MeasureTheory): define semi-rings of sets (#8867) A semi-ring of sets `C` (in the sense of measure theory) is a family of sets containing `∅`, stable by intersection and such that for all `s, t ∈ C`, `s \ t` is equal to a disjoint union of finitely many sets in `C`. Part of the formalization of the Kolmogorov Extension theorem. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/MeasureTheory/SetSemiring.lean + theorem MeasureTheory.IsSetSemiring.diffFinset_subset + theorem MeasureTheory.IsSetSemiring.diffFinset₀_subset + theorem MeasureTheory.IsSetSemiring.diff_sUnion_eq_sUnion_diffFinset₀ + theorem MeasureTheory.IsSetSemiring.disjoint_diffFinset₀ + theorem MeasureTheory.IsSetSemiring.disjoint_sUnion_diffFinset + theorem MeasureTheory.IsSetSemiring.disjoint_sUnion_diffFinset₀ + theorem MeasureTheory.IsSetSemiring.empty_not_mem_diffFinset + theorem MeasureTheory.IsSetSemiring.empty_not_mem_diffFinset₀ + theorem MeasureTheory.IsSetSemiring.exists_disjoint_finset_diff_eq + theorem MeasureTheory.IsSetSemiring.isPiSystem + theorem MeasureTheory.IsSetSemiring.not_mem_diffFinset + theorem MeasureTheory.IsSetSemiring.pairwiseDisjoint_diffFinset + theorem MeasureTheory.IsSetSemiring.pairwiseDisjoint_diffFinset₀ + theorem MeasureTheory.IsSetSemiring.pairwiseDisjoint_insert_diffFinset + theorem MeasureTheory.IsSetSemiring.pairwiseDisjoint_union_diffFinset₀ + theorem MeasureTheory.IsSetSemiring.sUnion_diffFinset + theorem MeasureTheory.IsSetSemiring.sUnion_diffFinset₀_subset + theorem MeasureTheory.IsSetSemiring.sUnion_insert_diffFinset + theorem MeasureTheory.IsSetSemiring.sUnion_union_diffFinset₀_of_subset + theorem MeasureTheory.IsSetSemiring.sUnion_union_sUnion_diffFinset₀_of_subset + structure MeasureTheory.IsSetSemiring 2023-12-20 13:11:49 905338f feat: projective families of measures and projective limits (#8933) Part of the formalization of the Kolmogorov Extension theorem. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/MeasureTheory/Constructions/Projective.lean + theorem MeasureTheory.IsProjectiveLimit.isFiniteMeasure + theorem MeasureTheory.IsProjectiveLimit.isProbabilityMeasure + theorem MeasureTheory.IsProjectiveLimit.measure_cylinder + theorem MeasureTheory.IsProjectiveLimit.measure_univ_eq + theorem MeasureTheory.IsProjectiveLimit.measure_univ_unique + theorem MeasureTheory.IsProjectiveLimit.unique + def MeasureTheory.IsProjectiveLimit + theorem MeasureTheory.IsProjectiveMeasureFamily.congr_cylinder + theorem MeasureTheory.IsProjectiveMeasureFamily.congr_cylinder_of_subset + theorem MeasureTheory.IsProjectiveMeasureFamily.measure_univ_eq + theorem MeasureTheory.IsProjectiveMeasureFamily.measure_univ_eq_of_subset + def MeasureTheory.IsProjectiveMeasureFamily 2023-12-20 12:26:06 f1c7086 chore(LinearAlgebra): remove some StrongRankCondition (#9152) ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/FreeModule/Finite/Rank.lean +/- theorem Submodule.finrank_eq_zero +/- theorem Submodule.rank_eq_zero 2023-12-20 10:04:48 95ddd89 chore: tidy various files (#9016) ESTIMATED CHANGES Modified Mathlib/Algebra/ContinuedFractions/Computation/ApproximationCorollaries.lean Modified Mathlib/Analysis/NormedSpace/Multilinear/Basic.lean Modified Mathlib/Condensed/Explicit.lean Modified Mathlib/FieldTheory/RatFunc.lean Modified Mathlib/Logic/Equiv/Defs.lean Modified Mathlib/MeasureTheory/Constructions/BorelSpace/Basic.lean +/- theorem isPiSystem_isClosed +/- theorem isPiSystem_isOpen Modified Mathlib/MeasureTheory/Constructions/Prod/Basic.lean Modified Mathlib/MeasureTheory/Decomposition/SignedLebesgue.lean Modified Mathlib/MeasureTheory/Measure/HasOuterApproxClosed.lean Modified Mathlib/MeasureTheory/Measure/VectorMeasure.lean + theorem MeasureTheory.Measure.toENNRealVectorMeasure_ennrealToMeasure + theorem MeasureTheory.VectorMeasure.ennrealToMeasure_toENNRealVectorMeasure Modified Mathlib/NumberTheory/Divisors.lean Modified Mathlib/Order/SupIndep.lean Modified Mathlib/RingTheory/Finiteness.lean Modified Mathlib/RingTheory/Localization/Basic.lean Modified Mathlib/RingTheory/Localization/FractionRing.lean Modified Mathlib/Testing/SlimCheck/Functions.lean Modified Mathlib/Topology/UniformSpace/UniformConvergenceTopology.lean 2023-12-20 09:20:41 3f93618 chore: bump Std to match leanprover/std4#438 (#9157) ESTIMATED CHANGES Modified Mathlib/Computability/Halting.lean Modified Mathlib/Computability/Partrec.lean Modified Mathlib/Computability/TMToPartrec.lean Modified Mathlib/Data/Bool/Basic.lean Modified Mathlib/Data/List/Basic.lean - theorem List.indexOf_cons - theorem List.indexOf_nil Modified Mathlib/Data/List/MinMax.lean Modified Mathlib/NumberTheory/SmoothNumbers.lean Modified lake-manifest.json 2023-12-20 00:53:37 b8e33bb feat: add `ContinuousMap.compStarAlgHom`, postcomposition by a `StarAlgHom` (#8992) ESTIMATED CHANGES Modified Mathlib/Topology/ContinuousFunction/Algebra.lean + def ContinuousMap.compStarAlgHom + theorem ContinuousMap.compStarAlgHom_comp + theorem ContinuousMap.compStarAlgHom_id 2023-12-19 21:09:56 363e9f6 feat: Relative Sylow's first theorems (#8944) Prove variants of Sylow' first theorem relative to a subgroup. From PFR ESTIMATED CHANGES Modified Mathlib/GroupTheory/PGroup.lean Modified Mathlib/GroupTheory/Sylow.lean + theorem Sylow.exists_subgroup_card_pow_prime_of_le_card + theorem Sylow.exists_subgroup_le_card_le + theorem Sylow.exists_subgroup_le_card_pow_prime_of_le_card 2023-12-19 17:29:48 e851153 feat(Data/Finset/Card): the number of element satisfying `P` is no greater than `n` iff every subset with more than `n` elements contains an element not satisfying `P` (#9048) ESTIMATED CHANGES Modified Mathlib/Data/Finset/Card.lean + theorem Finset.card_filter_le_iff Modified Mathlib/Data/Multiset/Basic.lean + theorem Multiset.card_filter_le_iff 2023-12-19 16:45:06 9bf055e refactor(Topology/IsLocalHomeomorph): various small clean-ups (#9150) - revamp and extend the module docstring - add some lemma docstrings - use EqOn where possible - use \mapsto instead of => - replace one terminal rfl by the explicit lemma invoked ESTIMATED CHANGES Modified Mathlib/Topology/IsLocalHomeomorph.lean +/- theorem IsLocalHomeomorph.mk +/- theorem IsLocalHomeomorphOn.mk +/- theorem IsLocalHomeomorphOn.mono 2023-12-19 16:45:05 ef00eda feat(LinearAlgebra/CliffordAlgebra): invertibility of quadratic form elements (#9076) This also includes a lemma about transferring invertibility of the base ring between algebras. ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/Basic.lean + theorem IsUnit.algebraMap_of_algebraMap Modified Mathlib/LinearAlgebra/CliffordAlgebra/Inversion.lean + def CliffordAlgebra.invertibleOfInvertibleι + theorem CliffordAlgebra.isUnit_of_isUnit_ι + theorem CliffordAlgebra.isUnit_ι_iff 2023-12-19 15:21:13 ea02b9e feat: More `rpow` lemmas (#9108) A bunch of easy lemmas about `Real.pow` and the golf of existing lemmas with them. Also rename `log_le_log` to `log_le_log_iff` and `log_le_log'` to `log_le_log`. Those misnames caused several proofs to bother with side conditions they didn't need. From LeanAPAP ESTIMATED CHANGES Modified Archive/Imo/Imo2001Q2.lean Modified Mathlib/Analysis/SpecialFunctions/CompareExp.lean Modified Mathlib/Analysis/SpecialFunctions/Log/Base.lean Modified Mathlib/Analysis/SpecialFunctions/Log/Basic.lean - theorem Real.log_le_log' +/- theorem Real.log_le_log + theorem Real.log_le_log_iff +/- theorem Real.log_lt_log Modified Mathlib/Analysis/SpecialFunctions/Pow/NNReal.lean - theorem NNReal.pow_nat_rpow_nat_inv + theorem NNReal.pow_rpow_inv_natCast + theorem NNReal.rpow_inv_natCast_pow - theorem NNReal.rpow_nat_inv_pow_nat Modified Mathlib/Analysis/SpecialFunctions/Pow/Real.lean + theorem Real.eq_rpow_inv + theorem Real.exp_one_pow + theorem Real.le_rpow_inv_iff_of_pos + theorem Real.lt_rpow_inv_iff_of_pos +/- theorem Real.mul_rpow - theorem Real.pow_nat_rpow_nat_inv + theorem Real.pow_rpow_inv_natCast + theorem Real.rpow_add_int' + theorem Real.rpow_add_nat' + theorem Real.rpow_add_one' + theorem Real.rpow_eq_zero +/- theorem Real.rpow_eq_zero_iff_of_nonneg + theorem Real.rpow_intCast_mul + theorem Real.rpow_inv_eq + theorem Real.rpow_inv_le_iff_of_pos + theorem Real.rpow_inv_lt_iff_of_pos + theorem Real.rpow_inv_natCast_pow + theorem Real.rpow_inv_rpow + theorem Real.rpow_le_rpow_iff_of_neg + theorem Real.rpow_le_rpow_of_nonpos + theorem Real.rpow_left_inj + theorem Real.rpow_lt_rpow_iff_of_neg + theorem Real.rpow_lt_rpow_of_neg + theorem Real.rpow_mul_intCast + theorem Real.rpow_mul_natCast + theorem Real.rpow_natCast_mul +/- theorem Real.rpow_nat_cast - theorem Real.rpow_nat_inv_pow_nat + theorem Real.rpow_one_add' + theorem Real.rpow_one_sub' + theorem Real.rpow_rpow_inv + theorem Real.rpow_sub_int' + theorem Real.rpow_sub_nat' + theorem Real.rpow_sub_one' Modified Mathlib/Analysis/SpecialFunctions/Stirling.lean Modified Mathlib/Combinatorics/Additive/Behrend.lean Modified Mathlib/Computability/AkraBazzi/AkraBazzi.lean Modified Mathlib/Data/Complex/Exponential.lean + theorem Complex.exp_nsmul + theorem Real.exp_nsmul 2023-12-19 15:21:11 45a5e1b feat: Define the different ideal. (#9063) ESTIMATED CHANGES Modified Mathlib/FieldTheory/Separable.lean + theorem IsSeparable.of_equiv_equiv Modified Mathlib/RingTheory/DedekindDomain/Different.lean + theorem coeIdeal_differentIdeal + theorem coeSubmodule_differentIdeal + theorem coeSubmodule_differentIdeal_fractionRing + def differentIdeal + theorem differentialIdeal_le_fractionalIdeal_iff + theorem differentialIdeal_le_iff + theorem map_equiv_traceDual Modified Mathlib/RingTheory/DedekindDomain/Ideal.lean + theorem FractionalIdeal.inv_le_comm + theorem FractionalIdeal.le_inv_comm Modified Mathlib/RingTheory/Finiteness.lean + theorem Module.Finite.of_equiv_equiv Modified Mathlib/RingTheory/IntegrallyClosed.lean + theorem IsIntegralClosure.of_isIntegrallyClosed 2023-12-19 13:41:23 deb0c4a feat: Monotonicity of `•` on `Finsupp` (#9148) ESTIMATED CHANGES Modified Mathlib/Data/DFinsupp/Order.lean Modified Mathlib/Data/Finsupp/Order.lean 2023-12-19 13:41:21 a369b3d feat(Data/Set/Function): add MapsTo.map_nonempty (#9093) Extracted from #8160. ESTIMATED CHANGES Modified Mathlib/Data/Set/Function.lean + theorem Set.MapsTo.nonempty 2023-12-19 12:55:32 98fe17f feat: `MeasurableSpace` instance for `ULift` (#8967) ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Constructions/BorelSpace/Basic.lean + theorem MeasurableEmbedding.borelSpace Modified Mathlib/MeasureTheory/MeasurableSpace/Basic.lean + def MeasurableEquiv.ulift.{u, + theorem measurableSet_preimage_down + theorem measurableSet_preimage_up + theorem measurable_down + theorem measurable_up 2023-12-19 12:55:31 5e71f8d feat: Ruzsa covering for sets (#8916) Add a version covering for `Set α` and `Nat.card`. From PFR ESTIMATED CHANGES Modified Mathlib/Combinatorics/Additive/RuzsaCovering.lean + theorem Set.exists_subset_mul_div Modified Mathlib/Data/Set/Card.lean +/- theorem Set.Nat.card_coe_set_eq 2023-12-19 12:55:30 1150c07 feat: interior and boundary of a manifold (#8624) We use the standard definition, with respect to the preferred charts at each point. Open-ness of the interior is non-trivial, hence left to a future PR: - for instance, in finite dimensions this requires e.g. knowing the homology of spheres, which mathlib doesn't yet have. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Geometry/Manifold/InteriorBoundary.lean + theorem ModelWithCorners.Boundaryless.boundary_eq_empty + def ModelWithCorners.IsBoundaryPoint + def ModelWithCorners.IsInteriorPoint + theorem ModelWithCorners.boundary_eq_complement_interior + theorem ModelWithCorners.disjoint_interior_boundary + theorem ModelWithCorners.interior_eq_univ + theorem ModelWithCorners.interior_union_boundary_eq_univ + theorem ModelWithCorners.isBoundaryPoint_iff + theorem ModelWithCorners.isInteriorPoint + theorem ModelWithCorners.isInteriorPoint_iff + theorem ModelWithCorners.isInteriorPoint_or_isBoundaryPoint + theorem range_mem_nhds_isInteriorPoint Modified Mathlib/Geometry/Manifold/SmoothManifoldWithCorners.lean + theorem PartialHomeomorph.interior_extend_target_subset_interior_range + theorem PartialHomeomorph.isOpen_extend_target + theorem PartialHomeomorph.mem_interior_extend_target Modified Mathlib/Topology/Basic.lean + theorem disjoint_interior_frontier 2023-12-19 12:00:10 7d208e6 feat: Preimage of pointwise multiplication (#8956) From PFR ESTIMATED CHANGES Modified Mathlib/Data/Finset/Pointwise.lean + theorem Set.card_div_le + theorem Set.card_inv + theorem Set.card_mul_le + theorem Set.card_smul_set Modified Mathlib/Data/Nat/Totient.lean Modified Mathlib/Data/Set/Finite.lean +/- theorem Set.Finite.of_preimage +/- theorem Set.Finite.preimage + theorem Set.Infinite.preimage' + theorem Set.finite_image2 +/- theorem Set.finite_of_finite_preimage Modified Mathlib/Data/Set/Pointwise/Basic.lean + theorem Set.div_subset_range + theorem Set.mul_subset_range + theorem Set.preimage_div + theorem Set.preimage_mul Modified Mathlib/Data/Set/Pointwise/Finite.lean + theorem Set.finite_mul Modified Mathlib/NumberTheory/MaricaSchoenheim.lean Modified Mathlib/SetTheory/Cardinal/Finite.lean + theorem Nat.card_eq_card_finite_toFinset + theorem Nat.card_eq_card_toFinset + theorem Nat.card_eq_finsetCard + theorem Nat.card_image_equiv + theorem Nat.card_image_le + theorem Nat.card_image_of_injOn + theorem Nat.card_image_of_injective +/- theorem Nat.card_mono + theorem Nat.card_preimage_of_injOn + theorem Nat.card_preimage_of_injective + theorem Set.card_prod_singleton + theorem Set.card_singleton_prod 2023-12-19 09:58:07 fdcf8b6 feat: Relation between `IsSuccLimit` and `iSup`. (#8842) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Order/SuccPred/CompleteLinearOrder.lean + theorem IsGLB.exists_of_nonempty_of_not_isPredLimit + theorem IsGLB.exists_of_not_isPredLimit + theorem IsGLB.mem_of_nonempty_of_not_isPredLimit + theorem IsGLB.mem_of_not_isPredLimit + theorem IsLUB.exists_of_nonempty_of_not_isSuccLimit + theorem IsLUB.exists_of_not_isSuccLimit + theorem IsLUB.mem_of_nonempty_of_not_isSuccLimit + theorem IsLUB.mem_of_not_isSuccLimit + theorem csInf_mem_of_not_isPredLimit + theorem csSup_mem_of_not_isSuccLimit' + theorem csSup_mem_of_not_isSuccLimit + theorem exists_eq_ciInf_of_not_isPredLimit + theorem exists_eq_ciSup_of_not_isSuccLimit' + theorem exists_eq_ciSup_of_not_isSuccLimit + theorem exists_eq_iInf_of_not_isPredLimit + theorem exists_eq_iSup_of_not_isSuccLimit + theorem sInf_mem_of_not_isPredLimit + theorem sSup_mem_of_not_isSuccLimit Modified Mathlib/SetTheory/Cardinal/Basic.lean + theorem Cardinal.exists_eq_natCast_of_iSup_eq + theorem Cardinal.exists_eq_of_iSup_eq_of_not_isLimit + theorem Cardinal.exists_eq_of_iSup_eq_of_not_isSuccLimit + theorem Cardinal.not_isLimit_natCast 2023-12-19 09:33:21 7c98318 feat(LinearAlgebra/Matrix/PosDef): integer powers preserve `PosSemidef` (#9147) ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/Matrix/PosDef.lean + theorem Matrix.PosSemidef.conjTranspose 2023-12-19 08:26:03 21ad2c6 feat: Mixins for monotonicity of scalar multiplication (#8869) This PR introduces eight typeclasses for monotonicity of left/right scalar multiplication by nonnegative elements: * `PosSMulMono`: If `a ≥ 0`, then `b₁ ≤ b₂` implies `a • b₁ ≤ a • b₂`. * `PosSMulStrictMono`: If `a > 0`, then `b₁ < b₂` implies `a • b₁ < a • b₂`. * `PosSMulReflectLT`: If `a ≥ 0`, then `a • b₁ < a • b₂` implies `b₁ < b₂`. * `PosSMulReflectLE`: If `a > 0`, then `a • b₁ ≤ a • b₂` implies `b₁ ≤ b₂`. * `SMulPosMono`: If `b ≥ 0`, then `a₁ ≤ a₂` implies `a₁ • b ≤ a₂ • b`. * `SMulPosStrictMono`: If `b > 0`, then `a₁ < a₂` implies `a₁ • b < a₂ • b`. * `SMulPosReflectLT`: If `b ≥ 0`, then `a₁ • b < a₂ • b` implies `a₁ < a₂`. * `SMulPosReflectLE`: If `b > 0`, then `a₁ • b ≤ a₂ • b` implies `a₁ ≤ a₂`. The design is heavily inspired to the corresponding one for multiplication (see `Algebra.Order.Ring.Lemmas`). Note however the following differences: * The new typeclasses are custom typeclasses instead of abbreviations for the correct `CovariantClass`/`ContravariantClass` invokations. This has the following benefits: * They get displayed as classes in the docs. In particular, one can see their list of instances, instead of their instances being invariably dumped to the `CovariantClass`/`ContravariantClass` list. * They don't pollute other typeclass searches. Having many abbreviations of the same typeclass for different purposes always felt like a performance issue to me (more instances with the same key, for no added benefit), and indeed a previous version of this PR hit timeouts due to the higher number of `CovariantClass`/`ContravariantClass` instances. * `SMulPosReflectLT`/`SMulPosReflectLE` did not fit in the framework since they relate `≤` on two different types. So I would have had to generalise `CovariantClass`/`ContravariantClass` to three types and two relations. * Very minor, but the constructors let you work with `a : α`, `h : 0 ≤ a` instead of `a : {a : α // 0 ≤ a}`. This actually makes some instances surprisingly cleaner to prove. * The `CovariantClass`/`ContravariantClass` framework was only used to automate very simple logic anyway. It was easily copied over. * We replace undocumented lemmas stating the equivalence of the four typeclasses mentioning nonnegativity with their positivity version by motivated constructors. * We abandon series of lemmas of dubious utility. Those were already marked as such in `Algebra.Order.Ring.Lemmas` (by myself). * Some lemmas about commutativity of multiplication don't make sense for scalar multiplication. This PR links the new typeclasses to `OrderedSMul` and makes all old lemmas in `Algebra.Order.SMul` one-liners in terms of the new lemmas (except when they have the same name, in which case the lemma is simply moved) but doesn't delete the old ones to reduce churn. What remains to be done afterwards is thus: * finish the transition by deleting the duplicate lemmas from `Algebra.Order.SMul` * rearrange the non-duplicate lemmas into new files * generalise (most of) the lemmas from `Algebra.Order.Module` to `Algebra.Order.Module.Defs` * rethink `OrderedSMul` ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Order/Module.lean - theorem smul_le_smul - theorem smul_le_smul_of_nonneg_right - theorem smul_nonpos_of_nonpos_of_nonneg Added Mathlib/Algebra/Order/Module/Defs.lean + theorem PosSMulMono.lift + theorem PosSMulMono.of_pos + theorem PosSMulMono.toPosSMulStrictMono + theorem PosSMulReflectLE.lift + theorem PosSMulReflectLE.toPosSMulStrictMono + theorem PosSMulReflectLE_iff_posSMulReflectLT + theorem PosSMulReflectLT.lift + theorem PosSMulReflectLT.of_pos + theorem PosSMulReflectLT.toPosSMulMono + theorem PosSMulStrictMono.lift + theorem SMulPosMono.lift + theorem SMulPosMono.of_pos + theorem SMulPosMono.toSMulPosReflectLT + theorem SMulPosMono.toSMulPosStrictMono + theorem SMulPosReflectLE.lift + theorem SMulPosReflectLE.toSMulPosStrictMono + theorem SMulPosReflectLE_iff_smulPosReflectLT + theorem SMulPosReflectLT.lift + theorem SMulPosReflectLT.of_pos + theorem SMulPosReflectLT.toSMulPosMono + theorem SMulPosReflectLT.toSMulPosReflectLE + theorem SMulPosStrictMono.lift + theorem inv_smul_le_iff_of_pos + theorem inv_smul_lt_iff_of_pos + theorem le_inv_smul_iff_of_pos + theorem le_of_smul_le_smul_left + theorem le_of_smul_le_smul_right + theorem le_smul_iff_one_le_left + theorem le_smul_of_one_le_left + theorem lt_inv_smul_iff_of_pos + theorem lt_of_smul_lt_smul_left + theorem lt_of_smul_lt_smul_right + theorem lt_smul_iff_one_lt_left + theorem lt_smul_of_one_lt_left + theorem monotone_smul_left_of_nonneg + theorem monotone_smul_right_of_nonneg + theorem neg_iff_neg_of_smul_pos + theorem neg_of_smul_neg_left' + theorem neg_of_smul_neg_left + theorem neg_of_smul_neg_right' + theorem neg_of_smul_neg_right + theorem neg_of_smul_pos_left + theorem neg_of_smul_pos_right + theorem posSMulMono_iff_posSMulReflectLT + theorem posSMulMono_iff_posSMulStrictMono + theorem posSMulStrictMono_iff_PosSMulReflectLE + theorem pos_and_pos_or_neg_and_neg_of_smul_pos + theorem pos_iff_pos_of_smul_pos + theorem pos_of_smul_pos_left + theorem pos_of_smul_pos_right + theorem smulPosMono_iff_smulPosReflectLT + theorem smulPosMono_iff_smulPosStrictMono + theorem smulPosStrictMono_iff_SMulPosReflectLE + theorem smul_eq_smul_iff_eq_and_eq_of_pos' + theorem smul_eq_smul_iff_eq_and_eq_of_pos + theorem smul_le_iff_le_one_left + theorem smul_le_of_le_one_left + theorem smul_le_smul' + theorem smul_le_smul + theorem smul_le_smul_iff_of_pos_left + theorem smul_le_smul_iff_of_pos_right + theorem smul_le_smul_of_nonneg_left + theorem smul_le_smul_of_nonneg_right + theorem smul_lt_iff_lt_one_left + theorem smul_lt_of_lt_one_left + theorem smul_lt_smul' + theorem smul_lt_smul + theorem smul_lt_smul_iff_of_pos_left + theorem smul_lt_smul_iff_of_pos_right + theorem smul_lt_smul_of_le_of_lt' + theorem smul_lt_smul_of_le_of_lt + theorem smul_lt_smul_of_lt_of_le' + theorem smul_lt_smul_of_lt_of_le + theorem smul_lt_smul_of_pos_left + theorem smul_lt_smul_of_pos_right + theorem smul_max_of_nonneg + theorem smul_min_of_nonneg + theorem smul_neg_of_neg_of_pos + theorem smul_neg_of_pos_of_neg + theorem smul_nonneg' + theorem smul_nonneg + theorem smul_nonpos_of_nonneg_of_nonpos + theorem smul_nonpos_of_nonpos_of_nonneg + theorem smul_pos' + theorem smul_pos + theorem smul_pos_iff_of_pos_left + theorem smul_pos_iff_of_pos_right + theorem strictMono_smul_left_of_pos + theorem strictMono_smul_right_of_pos Modified Mathlib/Algebra/Order/SMul.lean +/- theorem inv_smul_le_iff +/- theorem inv_smul_lt_iff +/- theorem le_inv_smul_iff +/- theorem lt_inv_smul_iff +/- theorem monotone_smul_left +/- theorem smul_le_smul_of_nonneg +/- theorem smul_lt_smul_of_pos - theorem smul_nonneg - theorem smul_nonpos_of_nonneg_of_nonpos +/- theorem smul_pos_iff_of_pos +/- theorem strictMono_smul_left 2023-12-19 00:17:00 8d91b8e feat: `Finset/Multiset.powersetCard 1` (#9137) for [#9130](https://github.com/leanprover-community/mathlib4/pull/9130/files#r1429368677) ESTIMATED CHANGES Modified Mathlib/Data/Finset/Powerset.lean + theorem Finset.powersetCard_one +/- theorem Finset.powersetCard_zero Modified Mathlib/Data/List/Sublists.lean + theorem List.sublistsLen_one Modified Mathlib/Data/Multiset/Powerset.lean + theorem Multiset.powersetCard_one 2023-12-18 20:33:43 448da11 feat(LinearAlgebra/Matrix/PosDef): unique positive semidef square root (#8809) This PR adds two main results about positive semidefinite matrices: - a positive semidefinite matrix has a unique positive semidefinite square root; - if `A` is positive semidefinite then `x* A x = 0` implies `A x = 0` (proof extracted from #8594). ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/Matrix/Hermitian.lean + theorem Matrix.isHermitian_diagonal_iff Modified Mathlib/LinearAlgebra/Matrix/PosDef.lean + theorem Matrix.IsHermitian.posSemidef_of_eigenvalues_nonneg + theorem Matrix.PosSemidef.conjTranspose_mul_mul_same + def Matrix.PosSemidef.delabSqrt + theorem Matrix.PosSemidef.dotProduct_mulVec_zero_iff +/- theorem Matrix.PosSemidef.eigenvalues_nonneg + theorem Matrix.PosSemidef.eq_of_sq_eq_sq + theorem Matrix.PosSemidef.eq_sqrt_of_sq_eq + theorem Matrix.PosSemidef.isHermitian + theorem Matrix.PosSemidef.mul_mul_conjTranspose_same + theorem Matrix.PosSemidef.posSemidef_sqrt +/- theorem Matrix.PosSemidef.re_dotProduct_nonneg + theorem Matrix.PosSemidef.sq_sqrt + theorem Matrix.PosSemidef.sqrt_mul_self + theorem Matrix.PosSemidef.sqrt_sq +/- theorem Matrix.PosSemidef.submatrix + theorem Matrix.PosSemidef.toLinearMap₂'_zero_iff + theorem Matrix.PosSemidef.transpose +/- theorem Matrix.posSemidef_conjTranspose_mul_self + theorem Matrix.posSemidef_diagonal_iff + theorem Matrix.posSemidef_iff_eq_transpose_mul_self +/- theorem Matrix.posSemidef_self_mul_conjTranspose Modified Mathlib/LinearAlgebra/Matrix/Spectrum.lean + theorem Matrix.IsHermitian.exists_eigenvector_of_ne_zero + theorem Matrix.IsHermitian.mulVec_eigenvectorBasis 2023-12-18 19:32:57 564283d feat: Comap of a probability measure under an ae surjective embedding (#8954) From PFR ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Measure/ProbabilityMeasure.lean + theorem MeasureTheory.ProbabilityMeasure.coe_mk Modified Mathlib/MeasureTheory/Measure/Typeclasses.lean + theorem MeasureTheory.ae_iff_prob_eq_one + theorem MeasureTheory.isProbabilityMeasure_comap + theorem MeasureTheory.isProbabilityMeasure_iff + theorem MeasureTheory.mem_ae_iff_prob_eq_one 2023-12-18 16:03:42 a3e8d01 feat: injective bilinear pairing V→W* with V f.d. induces surjective W→V* (#8820) From the Hairer challenge + add `flip_in/sur/bijective_iff₁₂`: if either of the spaces V and W is finite-dimensional, a linear map `V → W*` is injective/surjective/bijective iff the flipped map `W → V*` is surjective/injective/bijective. + also add consequence for SeparatingDual from the [projective space thread](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/Projective.20space/near/392642695) (cc @smorel394) + remove the `FiniteDimensional` condition from `dual_finrank_eq`, `finrank_range_dualMap_eq_finrank_range`, and `dualMap_injective/bijective_iff`, completing two TODO items by @kmill + add two lemmas `toDual_injective` and `finite_dual_iff` + golf several proofs in LinearAlgebra/Dual ESTIMATED CHANGES Modified Mathlib/Analysis/NormedSpace/HahnBanach/SeparatingDual.lean + theorem SeparatingDual.dualMap_surjective_iff + theorem separatingDual_iff_injective Modified Mathlib/LinearAlgebra/Dimension.lean + theorem LinearIndependent.finite_of_le_span_finite +/- def Submodule.inductionOnRank - def linearIndependentFintypeOfLeSpanFintype Modified Mathlib/LinearAlgebra/Dual.lean +/- theorem Basis.toDual_inj + theorem Basis.toDual_injective +/- def LinearEquiv.dualMap + theorem LinearMap.flip_bijective_iff₁ + theorem LinearMap.flip_bijective_iff₂ + theorem LinearMap.flip_injective_iff₁ + theorem LinearMap.flip_injective_iff₂ + theorem LinearMap.flip_surjective_iff₁ + theorem LinearMap.flip_surjective_iff₂ +/- theorem Module.apply_evalEquiv_symm_apply +/- theorem Module.bijective_dual_eval + theorem Module.finite_dual_iff +/- theorem Subspace.dualLift_of_subtype 2023-12-18 13:47:30 9e1e18d feat: Restriction of galois group onto integrally closed subrings. (#9113) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/NumberTheory/NumberField/Basic.lean Modified Mathlib/RingTheory/DedekindDomain/IntegralClosure.lean +/- theorem IsIntegralClosure.isLocalization + theorem IsIntegralClosure.isLocalization_of_isSeparable Added Mathlib/RingTheory/IntegralRestrict.lean + theorem algebraMap_galRestrictHom_apply + theorem algebraMap_galRestrict_apply + theorem coe_galRestrict_apply + def galLift + def galRestrict + def galRestrictHom + theorem galRestrictHom_symm_algebraMap_apply + theorem galRestrict_apply + theorem prod_galRestrict_eq_norm 2023-12-18 13:47:29 6c05c41 feat(Algebra/Star/Order): more lemmas (#9096) ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Ring/Star.lean Modified Mathlib/Algebra/Star/Order.lean + theorem IsSelfAdjoint.mono + theorem IsSelfAdjoint.of_nonneg + theorem one_le_star_iff + theorem one_lt_star_iff + theorem star_le_iff + theorem star_le_one_iff + theorem star_le_star_iff + theorem star_lt_iff + theorem star_lt_one_iff + theorem star_lt_star_iff + theorem star_neg_iff + theorem star_nonneg_iff + theorem star_nonpos_iff + theorem star_pos_iff 2023-12-18 12:58:57 302fdbb chore: Generalize results on `finrank` to rings. (#8912) A portion of results in `Mathlib/LinearAlgebra/FiniteDimensional.lean` were generalized to rings and moved to `Mathlib/LinearAlgebra/FreeModule/Finite/Rank.lean`. Most API lemmas for `FiniteDimensional` are kept but replaced with one lemma proofs. Definitions and niche lemmas are replaced by the generalized version completely. ESTIMATED CHANGES Modified Mathlib/Analysis/InnerProductSpace/Projection.lean Modified Mathlib/Analysis/InnerProductSpace/l2Space.lean Modified Mathlib/LinearAlgebra/Dimension.lean + theorem rank_eq_zero_iff + theorem rank_eq_zero_iff_isTorsion + theorem rank_span_finset_le + theorem rank_span_le_of_finite +/- theorem rank_span_of_finset Modified Mathlib/LinearAlgebra/Dual.lean Modified Mathlib/LinearAlgebra/Eigenspace/Triangularizable.lean Modified Mathlib/LinearAlgebra/FiniteDimensional.lean - theorem CompleteLattice.Independent.subtype_ne_bot_le_finrank - theorem CompleteLattice.Independent.subtype_ne_bot_le_finrank_aux - theorem FiniteDimensional.basisUnique.repr_eq_zero_iff - theorem FiniteDimensional.cardinal_mk_le_finrank_of_linearIndependent - theorem FiniteDimensional.exists_nontrivial_relation_of_rank_lt_card - theorem FiniteDimensional.exists_nontrivial_relation_sum_zero_of_rank_succ_lt_card + theorem FiniteDimensional.exists_relation_sum_zero_pos_coefficient_of_finrank_succ_lt_card - theorem FiniteDimensional.exists_relation_sum_zero_pos_coefficient_of_rank_succ_lt_card +/- theorem FiniteDimensional.fact_finiteDimensional_of_finrank_eq_succ +/- theorem FiniteDimensional.finiteDimensional_of_finrank - theorem FiniteDimensional.finrank_pos - theorem FiniteDimensional.finrank_pos_iff - theorem FiniteDimensional.finrank_pos_iff_exists_ne_zero - theorem FiniteDimensional.finrank_zero_iff - theorem FiniteDimensional.finset_card_le_finrank_of_linearIndependent - theorem FiniteDimensional.fintype_card_le_finrank_of_linearIndependent - theorem FiniteDimensional.not_linearIndependent_of_infinite +/- theorem FiniteDimensional.of_fintype_basis - theorem LinearIndependent.finite - theorem LinearIndependent.setFinite - theorem bot_eq_top_of_rank_eq_zero - theorem finrank_eq_zero - theorem finrank_eq_zero_of_rank_eq_zero - theorem rank_eq_zero Modified Mathlib/LinearAlgebra/FreeModule/Finite/Basic.lean +/- theorem Module.Finite.of_basis + theorem Module.Free.finite_basis Modified Mathlib/LinearAlgebra/FreeModule/Finite/Rank.lean + theorem CompleteLattice.Independent.subtype_ne_bot_le_finrank + theorem CompleteLattice.Independent.subtype_ne_bot_le_finrank_aux + theorem FiniteDimensional.basisUnique_repr_eq_zero_iff + theorem FiniteDimensional.cardinal_mk_le_finrank_of_linearIndependent + theorem FiniteDimensional.finrank_eq_zero_iff + theorem FiniteDimensional.finrank_eq_zero_iff_isTorsion + theorem FiniteDimensional.finrank_eq_zero_of_rank_eq_zero +/- theorem FiniteDimensional.finrank_finsupp + theorem FiniteDimensional.finrank_finsupp_self + theorem FiniteDimensional.finrank_of_not_finite + theorem FiniteDimensional.finrank_pos + theorem FiniteDimensional.finrank_pos_iff + theorem FiniteDimensional.finrank_pos_iff_exists_ne_zero + theorem FiniteDimensional.finrank_zero_iff + theorem FiniteDimensional.finset_card_le_finrank_of_linearIndependent + theorem FiniteDimensional.fintype_card_le_finrank_of_linearIndependent + theorem LinearIndependent.finite + theorem LinearIndependent.setFinite + theorem Module.Finite.lt_aleph0_of_linearIndependent + theorem Module.Finite.not_linearIndependent_of_infinite + theorem Module.Finite.span_of_finite + theorem Module.exists_nontrivial_relation_of_finrank_lt_card + theorem Module.exists_nontrivial_relation_sum_zero_of_finrank_succ_lt_card + theorem Module.finite_iff_of_rank_eq_nsmul + theorem Module.finite_of_finrank_eq_succ + theorem Module.finite_of_finrank_pos + theorem Module.finite_of_rank_eq_nat + theorem Module.finite_of_rank_eq_one + theorem Module.finite_of_rank_eq_zero + theorem Module.mk_finrank_eq_card_basis + theorem Module.rank_lt_alpeh0_iff + theorem Submodule.bot_eq_top_of_rank_eq_zero + theorem Submodule.fg_iff_finite + theorem Submodule.finrank_eq_zero + theorem Submodule.rank_eq_zero Modified Mathlib/MeasureTheory/Measure/Lebesgue/EqHaar.lean Modified Mathlib/RingTheory/Finiteness.lean Modified Mathlib/Topology/Algebra/Module/Basic.lean Modified Mathlib/Topology/Algebra/Module/FiniteDimension.lean 2023-12-18 10:05:21 8eef7fa feat: demote the instance Fintype.ofIsEmpty to a def (#8816) Rationale: this instance creates (empty) data out of nothing, which may conflict with other data. If you have in the context `[Fintype i]` and case on whether `i` is empty or not, then this gave two non-defeq instances of `[Fintype i]` around. ESTIMATED CHANGES Modified Archive/ZagierTwoSquares.lean Modified Mathlib/Analysis/InnerProductSpace/TwoDim.lean Modified Mathlib/Analysis/MeanInequalities.lean Modified Mathlib/Data/Fintype/Basic.lean + def Fintype.ofIsEmpty +/- theorem Fintype.univ_of_isEmpty Modified Mathlib/Data/Fintype/Card.lean +/- theorem Fintype.card_eq_zero +/- theorem Fintype.card_of_isEmpty Modified Mathlib/Data/Fintype/CardEmbedding.lean Modified Mathlib/Data/Set/Finite.lean Modified Mathlib/LinearAlgebra/Orientation.lean Modified Mathlib/MeasureTheory/Constructions/BorelSpace/Basic.lean Modified Mathlib/MeasureTheory/Constructions/Pi.lean +/- theorem MeasureTheory.Measure.pi_empty_univ +/- theorem MeasureTheory.Measure.pi_of_empty +/- theorem MeasureTheory.measurePreserving_pi_empty +/- theorem MeasureTheory.volume_preserving_pi_empty Modified Mathlib/ModelTheory/Basic.lean Modified Mathlib/SetTheory/Cardinal/Basic.lean Modified Mathlib/SetTheory/Cardinal/Cofinality.lean Modified Mathlib/SetTheory/Cardinal/Finite.lean - theorem Nat.card_eq_zero_of_isEmpty +/- theorem Nat.card_of_isEmpty Modified Mathlib/SetTheory/Game/Short.lean +/- def SetTheory.PGame.Short.ofIsEmpty 2023-12-18 09:44:02 6fab96d feat: OrderedCancelAddCommMonoidWithBounds is bad (#9072) ESTIMATED CHANGES Modified Counterexamples.lean Added Counterexamples/OrderedCancelAddCommMonoidWithBounds.lean 2023-12-18 08:56:03 b6e8469 feat: add mulTSupport_mul/tsupport_add (#9060) From the hairer branch. ESTIMATED CHANGES Modified Mathlib/Topology/Support.lean + theorem mulTSupport_mul 2023-12-18 07:15:58 d61c95e chore: Rename pow monotonicity lemmas (#9095) The names for lemmas about monotonicity of `(a ^ ·)` and `(· ^ n)` were a mess. This PR tidies up everything related by following the naming convention for `(a * ·)` and `(· * b)`. Namely, `(a ^ ·)` is `pow_right` and `(· ^ n)` is `pow_left` in lemma names. All lemma renames follow the corresponding multiplication lemma names closely. ## Renames ### `Algebra.GroupPower.Order` * `pow_mono` → `pow_right_mono` * `pow_le_pow` → `pow_le_pow_right` * `pow_le_pow_of_le_left` → `pow_le_pow_left` * `pow_lt_pow_of_lt_left` → `pow_lt_pow_left` * `strictMonoOn_pow` → `pow_left_strictMonoOn` * `pow_strictMono_right` → `pow_right_strictMono` * `pow_lt_pow` → `pow_lt_pow_right` * `pow_lt_pow_iff` → `pow_lt_pow_iff_right` * `pow_le_pow_iff` → `pow_le_pow_iff_right` * `self_lt_pow` → `lt_self_pow` * `strictAnti_pow` → `pow_right_strictAnti` * `pow_lt_pow_iff_of_lt_one` → `pow_lt_pow_iff_right_of_lt_one` * `pow_lt_pow_of_lt_one` → `pow_lt_pow_right_of_lt_one` * `lt_of_pow_lt_pow` → `lt_of_pow_lt_pow_left` * `le_of_pow_le_pow` → `le_of_pow_le_pow_left` * `pow_lt_pow₀` → `pow_lt_pow_right₀` ### `Algebra.GroupPower.CovariantClass` * `pow_le_pow_of_le_left'` → `pow_le_pow_left'` * `nsmul_le_nsmul_of_le_right` → `nsmul_le_nsmul_right` * `pow_lt_pow'` → `pow_lt_pow_right'` * `nsmul_lt_nsmul` → `nsmul_lt_nsmul_left` * `pow_strictMono_left` → `pow_right_strictMono'` * `nsmul_strictMono_right` → `nsmul_left_strictMono` * `StrictMono.pow_right'` → `StrictMono.pow_const` * `StrictMono.nsmul_left` → `StrictMono.const_nsmul` * `pow_strictMono_right'` → `pow_left_strictMono` * `nsmul_strictMono_left` → `nsmul_right_strictMono` * `Monotone.pow_right` → `Monotone.pow_const` * `Monotone.nsmul_left` → `Monotone.const_nsmul` * `lt_of_pow_lt_pow'` → `lt_of_pow_lt_pow_left'` * `lt_of_nsmul_lt_nsmul` → `lt_of_nsmul_lt_nsmul_right` * `pow_le_pow'` → `pow_le_pow_right'` * `nsmul_le_nsmul` → `nsmul_le_nsmul_left` * `pow_le_pow_of_le_one'` → `pow_le_pow_right_of_le_one'` * `nsmul_le_nsmul_of_nonpos` → `nsmul_le_nsmul_left_of_nonpos` * `le_of_pow_le_pow'` → `le_of_pow_le_pow_left'` * `le_of_nsmul_le_nsmul'` → `le_of_nsmul_le_nsmul_right'` * `pow_le_pow_iff'` → `pow_le_pow_iff_right'` * `nsmul_le_nsmul_iff` → `nsmul_le_nsmul_iff_left` * `pow_lt_pow_iff'` → `pow_lt_pow_iff_right'` * `nsmul_lt_nsmul_iff` → `nsmul_lt_nsmul_iff_left` ### `Data.Nat.Pow` * `Nat.pow_lt_pow_of_lt_left` → `Nat.pow_lt_pow_left` * `Nat.pow_le_iff_le_left` → `Nat.pow_le_pow_iff_left` * `Nat.pow_lt_iff_lt_left` → `Nat.pow_lt_pow_iff_left` ## Lemmas added * `pow_le_pow_iff_left` * `pow_lt_pow_iff_left` * `pow_right_injective` * `pow_right_inj` * `Nat.pow_le_pow_left` to have the correct name since `Nat.pow_le_pow_of_le_left` is in Std. * `Nat.pow_le_pow_right` to have the correct name since `Nat.pow_le_pow_of_le_right` is in Std. ## Lemmas removed * `self_le_pow` was a duplicate of `le_self_pow`. * `Nat.pow_lt_pow_of_lt_right` is defeq to `pow_lt_pow_right`. * `Nat.pow_right_strictMono` is defeq to `pow_right_strictMono`. * `Nat.pow_le_iff_le_right` is defeq to `pow_le_pow_iff_right`. * `Nat.pow_lt_iff_lt_right` is defeq to `pow_lt_pow_iff_right`. ## Other changes * A bunch of proofs have been golfed. * Some lemma assumptions have been turned from `0 < n` or `1 ≤ n` to `n ≠ 0`. * A few `Nat` lemmas have been `protected`. * One docstring has been fixed. ESTIMATED CHANGES Modified Archive/Imo/Imo1962Q1.lean Modified Archive/Imo/Imo1969Q1.lean Modified Archive/Imo/Imo2001Q2.lean Modified Archive/Imo/Imo2006Q3.lean Modified Archive/Imo/Imo2008Q3.lean Modified Archive/Imo/Imo2008Q4.lean Modified Archive/Wiedijk100Theorems/AbelRuffini.lean Modified Archive/Wiedijk100Theorems/PerfectNumbers.lean Modified Archive/Wiedijk100Theorems/SumOfPrimeReciprocalsDiverges.lean Modified Mathlib/Algebra/GeomSum.lean Modified Mathlib/Algebra/GroupPower/CovariantClass.lean + theorem StrictMono.pow_const - theorem StrictMono.pow_right' - theorem le_of_pow_le_pow' + theorem le_of_pow_le_pow_left' - theorem lt_of_pow_lt_pow' + theorem lt_of_pow_lt_pow_left' - theorem pow_le_pow' - theorem pow_le_pow_iff' + theorem pow_le_pow_iff_right' + theorem pow_le_pow_left' - theorem pow_le_pow_of_le_left' - theorem pow_le_pow_of_le_one' + theorem pow_le_pow_right' + theorem pow_le_pow_right_of_le_one' + theorem pow_left_strictMono - theorem pow_lt_pow' - theorem pow_lt_pow_iff' + theorem pow_lt_pow_iff_right' + theorem pow_lt_pow_right' + theorem pow_right_strictMono' - theorem pow_strictMono_left - theorem pow_strictMono_right' Modified Mathlib/Algebra/GroupPower/Lemmas.lean + theorem zpow_right_strictMono - theorem zpow_strictMono_right Modified Mathlib/Algebra/GroupPower/Order.lean +/- theorem abs_pow_eq_one - theorem le_of_pow_le_pow + theorem le_of_pow_le_pow_left +/- theorem le_self_pow - theorem lt_of_pow_lt_pow + theorem lt_of_pow_lt_pow_left + theorem lt_self_pow +/- theorem one_le_pow_iff_of_nonneg +/- theorem one_lt_pow_iff_of_nonneg +/- theorem pow_eq_one_iff_of_nonneg +/- theorem pow_le_one_iff_of_nonneg - theorem pow_le_pow - theorem pow_le_pow_iff + theorem pow_le_pow_iff_left + theorem pow_le_pow_iff_right + theorem pow_le_pow_left - theorem pow_le_pow_of_le_left + theorem pow_le_pow_right +/- theorem pow_left_inj + theorem pow_left_strictMonoOn +/- theorem pow_lt_one_iff_of_nonneg - theorem pow_lt_pow - theorem pow_lt_pow_iff + theorem pow_lt_pow_iff_left - theorem pow_lt_pow_iff_of_lt_one + theorem pow_lt_pow_iff_right + theorem pow_lt_pow_iff_right_of_lt_one + theorem pow_lt_pow_left - theorem pow_lt_pow_of_lt_left - theorem pow_lt_pow_of_lt_one + theorem pow_lt_pow_right + theorem pow_lt_pow_right_of_lt_one + theorem pow_lt_pow_right₀ - theorem pow_lt_pow₀ +/- theorem pow_lt_self_of_lt_one - theorem pow_mono + theorem pow_right_inj + theorem pow_right_injective + theorem pow_right_mono + theorem pow_right_strictAnti + theorem pow_right_strictMono - theorem pow_strictMono_right - theorem self_le_pow - theorem self_lt_pow - theorem strictAnti_pow - theorem strictMonoOn_pow Modified Mathlib/Algebra/Homology/LocalCohomology.lean Modified Mathlib/Algebra/IsPrimePow.lean Modified Mathlib/Algebra/Order/Archimedean.lean Modified Mathlib/Algebra/Order/Field/Basic.lean Modified Mathlib/Algebra/Order/Interval.lean Modified Mathlib/Algebra/Order/Monovary.lean Modified Mathlib/Algebra/Tropical/Basic.lean Modified Mathlib/Analysis/Analytic/Composition.lean Modified Mathlib/Analysis/Asymptotics/Asymptotics.lean Modified Mathlib/Analysis/BoxIntegral/Basic.lean Modified Mathlib/Analysis/Calculus/FDeriv/Measurable.lean Modified Mathlib/Analysis/Complex/Basic.lean +/- theorem Complex.nnnorm_eq_one_of_pow_eq_one Modified Mathlib/Analysis/Complex/UpperHalfPlane/Metric.lean Modified Mathlib/Analysis/Convex/SpecificFunctions/Deriv.lean Modified Mathlib/Analysis/Distribution/SchwartzSpace.lean Modified Mathlib/Analysis/InnerProductSpace/Basic.lean Modified Mathlib/Analysis/InnerProductSpace/Projection.lean Modified Mathlib/Analysis/Normed/Field/Basic.lean Modified Mathlib/Analysis/NormedSpace/FiniteDimension.lean Modified Mathlib/Analysis/NormedSpace/Multilinear/Basic.lean Modified Mathlib/Analysis/NormedSpace/Star/Multiplier.lean Modified Mathlib/Analysis/PSeries.lean Modified Mathlib/Analysis/SpecialFunctions/Exp.lean Modified Mathlib/Analysis/SpecialFunctions/JapaneseBracket.lean Modified Mathlib/Analysis/SpecialFunctions/Pow/Continuity.lean Modified Mathlib/Analysis/SpecificLimits/Basic.lean Modified Mathlib/Analysis/SpecificLimits/FloorPow.lean Modified Mathlib/Analysis/SpecificLimits/Normed.lean Modified Mathlib/Combinatorics/Additive/Behrend.lean +/- theorem Behrend.bound - theorem Behrend.two_le_nValue Modified Mathlib/Combinatorics/SetFamily/FourFunctions.lean Modified Mathlib/Combinatorics/SetFamily/Kleitman.lean Modified Mathlib/Combinatorics/SimpleGraph/Regularity/Bound.lean Modified Mathlib/Combinatorics/SimpleGraph/Regularity/Chunk.lean Modified Mathlib/Combinatorics/SimpleGraph/Regularity/Increment.lean Modified Mathlib/Combinatorics/SimpleGraph/Regularity/Lemma.lean Modified Mathlib/Computability/Ackermann.lean Modified Mathlib/Data/Complex/Exponential.lean Modified Mathlib/Data/Nat/Bitwise.lean Modified Mathlib/Data/Nat/Choose/Factorization.lean Modified Mathlib/Data/Nat/Factorial/Basic.lean Modified Mathlib/Data/Nat/Factorization/Basic.lean Modified Mathlib/Data/Nat/Log.lean Modified Mathlib/Data/Nat/Pow.lean +/- theorem Nat.one_lt_pow +/- theorem Nat.one_lt_pow_iff +/- theorem Nat.one_lt_two_pow - theorem Nat.pow_le_iff_le_left - theorem Nat.pow_le_iff_le_right +/- theorem Nat.pow_left_injective - theorem Nat.pow_left_strictMono - theorem Nat.pow_lt_iff_lt_left - theorem Nat.pow_lt_iff_lt_right - theorem Nat.pow_lt_pow_of_lt_left - theorem Nat.pow_lt_pow_of_lt_right - theorem Nat.pow_right_injective - theorem Nat.pow_right_strictMono +/- theorem StrictMono.nat_pow Modified Mathlib/Data/Nat/Size.lean Modified Mathlib/Data/Nat/Squarefree.lean Modified Mathlib/Data/Num/Lemmas.lean Modified Mathlib/Data/Polynomial/Degree/CardPowDegree.lean Modified Mathlib/Data/Polynomial/Degree/Lemmas.lean Modified Mathlib/Data/Real/ENNReal.lean Modified Mathlib/Data/Real/Pi/Bounds.lean Modified Mathlib/Data/Real/Pi/Leibniz.lean Modified Mathlib/FieldTheory/Finite/Basic.lean Modified Mathlib/FieldTheory/Finite/Polynomial.lean Modified Mathlib/GroupTheory/Archimedean.lean Modified Mathlib/GroupTheory/Schreier.lean Modified Mathlib/LinearAlgebra/AdicCompletion.lean Modified Mathlib/MeasureTheory/Group/AddCircle.lean Modified Mathlib/MeasureTheory/Integral/PeakFunction.lean Modified Mathlib/MeasureTheory/Measure/Hausdorff.lean Modified Mathlib/MeasureTheory/Measure/Lebesgue/EqHaar.lean Modified Mathlib/NumberTheory/Bertrand.lean Modified Mathlib/NumberTheory/ClassNumber/AdmissibleCardPowDegree.lean Modified Mathlib/NumberTheory/ClassNumber/Finite.lean Modified Mathlib/NumberTheory/Cyclotomic/PrimitiveRoots.lean Modified Mathlib/NumberTheory/Divisors.lean Modified Mathlib/NumberTheory/EulerProduct/Basic.lean Modified Mathlib/NumberTheory/FLT/Four.lean Modified Mathlib/NumberTheory/FermatPsp.lean Modified Mathlib/NumberTheory/Liouville/LiouvilleNumber.lean Modified Mathlib/NumberTheory/LucasLehmer.lean +/- theorem LucasLehmer.mersenne_int_ne_zero +/- theorem LucasLehmer.mersenne_int_pos +/- theorem LucasLehmer.sMod_lt +/- theorem LucasLehmer.sMod_nonneg Modified Mathlib/NumberTheory/Multiplicity.lean +/- theorem padicValNat.pow_sub_pow +/- theorem padicValNat.pow_two_sub_pow Modified Mathlib/NumberTheory/NumberField/Discriminant.lean Modified Mathlib/NumberTheory/NumberField/Units.lean Modified Mathlib/NumberTheory/Padics/Hensel.lean Modified Mathlib/NumberTheory/Padics/PadicIntegers.lean Modified Mathlib/NumberTheory/Padics/PadicVal.lean Modified Mathlib/NumberTheory/Padics/RingHoms.lean Modified Mathlib/NumberTheory/PellMatiyasevic.lean Modified Mathlib/NumberTheory/RamificationInertia.lean Modified Mathlib/NumberTheory/SumFourSquares.lean Modified Mathlib/Order/Filter/Archimedean.lean Modified Mathlib/Order/Filter/AtTopBot.lean Modified Mathlib/Probability/StrongLaw.lean Modified Mathlib/RingTheory/Artinian.lean Modified Mathlib/RingTheory/DedekindDomain/Ideal.lean + theorem Ideal.pow_right_strictAnti - theorem Ideal.strictAnti_pow Modified Mathlib/RingTheory/DiscreteValuationRing/TFAE.lean Modified Mathlib/RingTheory/Etale.lean Modified Mathlib/RingTheory/Finiteness.lean Modified Mathlib/RingTheory/Henselian.lean Modified Mathlib/RingTheory/Ideal/Operations.lean - theorem Ideal.pow_le_pow + theorem Ideal.pow_le_pow_right - theorem Ideal.pow_mono + theorem Ideal.pow_right_mono Modified Mathlib/RingTheory/LittleWedderburn.lean Modified Mathlib/RingTheory/Perfection.lean Modified Mathlib/RingTheory/Polynomial/Basic.lean Modified Mathlib/RingTheory/Polynomial/Cyclotomic/Expand.lean Modified Mathlib/RingTheory/QuotientNilpotent.lean Modified Mathlib/RingTheory/Valuation/Integral.lean Modified Mathlib/RingTheory/WittVector/Frobenius.lean Modified Mathlib/Tactic/GCongr.lean Modified Mathlib/Topology/Algebra/InfiniteSum/Order.lean Modified Mathlib/Topology/Algebra/Nonarchimedean/AdicTopology.lean Modified Mathlib/Topology/EMetricSpace/Paracompact.lean Modified Mathlib/Topology/Instances/NNReal.lean Modified Mathlib/Topology/MetricSpace/HausdorffDistance.lean Modified Mathlib/Topology/MetricSpace/PiNat.lean Modified Mathlib/Topology/Metrizable/Uniformity.lean Modified Mathlib/Topology/UnitInterval.lean 2023-12-18 06:06:32 608404e chore(Algebra/Order/Group): change simp lemmas (#7867) ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Group/Defs.lean Modified Mathlib/Algebra/Order/Sub/Defs.lean +/- theorem tsub_le_iff_right Modified Mathlib/Topology/MetricSpace/PseudoMetric.lean 2023-12-18 04:53:03 f94379b feat(Mathlib/FieldTheory/Separable): add `Polynomial.Separable.isIntegral` and golf (#9134) ESTIMATED CHANGES Modified Mathlib/FieldTheory/Separable.lean +/- theorem IsSeparable.isIntegral + theorem Polynomial.Separable.isIntegral 2023-12-18 04:53:02 7b7e844 chore: better error message for assert_not_exists (#9070) ESTIMATED CHANGES Modified Mathlib/Util/AssertExists.lean 2023-12-18 04:53:00 4abd905 feat(RingTheory/NonUnitalSubsemiring): point-free statement of centrality (#9053) Also adds `isMulCentral_iff` using `mk_iff`. ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Hom/Instances.lean - theorem AddMonoid.End.comm_mulRight_eq_mulLeft + theorem AddMonoid.End.mulRight_eq_mulLeft - theorem AddMonoid.End.mulRight_eq_mulLeft_of_commute + theorem AddMonoidHom.mulLeft_eq_mulRight_iff_forall_commute + theorem AddMonoidHom.mulRight_eq_mulLeft_iff_forall_commute Modified Mathlib/GroupTheory/Subsemigroup/Center.lean Modified Mathlib/RingTheory/NonUnitalSubsemiring/Basic.lean + theorem Set.mem_center_iff_addMonoidHom 2023-12-18 04:13:57 3f7c7ee feat: the graded tensor product (#7394) This adds the graded tensor product $A \hat\otimes_R B$, imbued with a multiplication defined on homogeneous tensors by: $$(a \hat\otimes b) \cdot (a' \hat\otimes b') = (-1)^{\deg a' \deg b} (a \cdot a') \hat\otimes (b \cdot b')$$ where $A$ and $B$ are algebras graded by `ℕ`, `ℤ`, or `ZMod 2` (or more generally, any index that satisfies `Module ι (Additive ℤˣ)`). We do this in two phases: * Define bundled morphisms that perform the multiplication and braiding maps on regular tensor products of `DirectSum`s * Define a new `GradedTensorProduct` type synonym that attaches the multiplication operator to `*` notation, and restricts itself to internally-graded algebras. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/LinearAlgebra/TensorProduct/Graded/External.lean + theorem TensorProduct.algebraMap_gradedMul + def TensorProduct.gradedComm + def TensorProduct.gradedCommAux + theorem TensorProduct.gradedCommAux_comp_gradedCommAux + theorem TensorProduct.gradedCommAux_lof_tmul + theorem TensorProduct.gradedComm_algebraMap + theorem TensorProduct.gradedComm_algebraMap_tmul + theorem TensorProduct.gradedComm_gradedMul + theorem TensorProduct.gradedComm_of_tmul_of + theorem TensorProduct.gradedComm_of_zero_tmul + theorem TensorProduct.gradedComm_one + theorem TensorProduct.gradedComm_one_tmul + theorem TensorProduct.gradedComm_symm + theorem TensorProduct.gradedComm_tmul_algebraMap + theorem TensorProduct.gradedComm_tmul_of_zero + theorem TensorProduct.gradedComm_tmul_one + theorem TensorProduct.gradedMul_algebraMap + theorem TensorProduct.gradedMul_assoc + theorem TensorProduct.gradedMul_one + theorem TensorProduct.one_gradedMul + theorem TensorProduct.tmul_of_gradedMul_of_tmul Added Mathlib/LinearAlgebra/TensorProduct/Graded/Internal.lean + theorem GradedTensorProduct.algHom_ext + theorem GradedTensorProduct.algebraMap_def' + theorem GradedTensorProduct.algebraMap_def + theorem GradedTensorProduct.auxEquiv_comm + theorem GradedTensorProduct.auxEquiv_mul + theorem GradedTensorProduct.auxEquiv_one + theorem GradedTensorProduct.auxEquiv_symm_one + theorem GradedTensorProduct.auxEquiv_tmul + def GradedTensorProduct.comm + theorem GradedTensorProduct.comm_coe_tmul_coe + theorem GradedTensorProduct.hom_ext + def GradedTensorProduct.includeLeft + def GradedTensorProduct.includeLeftRingHom + def GradedTensorProduct.includeRight + def GradedTensorProduct.lift + def GradedTensorProduct.liftEquiv + theorem GradedTensorProduct.lift_tmul + theorem GradedTensorProduct.mulHom_apply + theorem GradedTensorProduct.mul_def + def GradedTensorProduct.of + theorem GradedTensorProduct.of_one + theorem GradedTensorProduct.of_symm_of + theorem GradedTensorProduct.of_symm_one + theorem GradedTensorProduct.symm_of_of + theorem GradedTensorProduct.tmul_algebraMap_mul_coe_tmul + theorem GradedTensorProduct.tmul_coe_mul_algebraMap_tmul + theorem GradedTensorProduct.tmul_coe_mul_coe_tmul + theorem GradedTensorProduct.tmul_coe_mul_one_tmul + theorem GradedTensorProduct.tmul_coe_mul_zero_coe_tmul + theorem GradedTensorProduct.tmul_one_mul_coe_tmul + theorem GradedTensorProduct.tmul_one_mul_one_tmul + theorem GradedTensorProduct.tmul_zero_coe_mul_coe_tmul + def GradedTensorProduct Modified Mathlib/RingTheory/TensorProduct.lean 2023-12-18 01:51:44 6a04469 feat: properties of `x ↦ - x * log x` (#8922) Continuity, concavity, first two derivatives of `x ↦ - x * log x`. From the PFR project. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/SpecialFunctions/Log/NegMulLog.lean + theorem Real.concaveOn_negMulLog + theorem Real.continuous_mul_log + theorem Real.continuous_negMulLog + theorem Real.convexOn_mul_log + theorem Real.deriv2_mul_log + theorem Real.deriv2_negMulLog + theorem Real.deriv_mul_log + theorem Real.deriv_negMulLog + theorem Real.differentiableOn_mul_log + theorem Real.differentiableOn_negMulLog + theorem Real.hasDerivAt_mul_log + theorem Real.hasDerivAt_negMulLog + theorem Real.mul_log_nonneg + theorem Real.mul_log_nonpos + theorem Real.negMulLog_def + theorem Real.negMulLog_eq_neg + theorem Real.negMulLog_mul + theorem Real.negMulLog_nonneg + theorem Real.negMulLog_one + theorem Real.negMulLog_zero + theorem Real.strictConcaveOn_negMulLog + theorem Real.strictConvexOn_mul_log Modified Mathlib/Analysis/SpecialFunctions/Pow/Asymptotics.lean + theorem tendsto_log_mul_self_nhds_zero_left 2023-12-18 01:08:32 bca1c69 feat: define `NonUnital(Semi)NormedCommRing` (#8664) This adds commutative versions of the existing `NonUnital(Semi)NormedRing` classes. This is essential for talking about, for example, non-unital commutative C⋆-algebras. ESTIMATED CHANGES Modified Mathlib/Analysis/Normed/Field/Basic.lean + def NonUnitalNormedCommRing.induced + def NonUnitalSeminormedCommRing.induced 2023-12-17 23:56:58 eda0f8d fix: use colGt in `#help` parser (#9128) Fixes #9126. The parsers had to be split into a separate `syntax` declaration to allow for the `withPosition` combinator to set the position so that `colGt` works as intended. ESTIMATED CHANGES Modified Mathlib/Tactic/HelpCmd.lean Added test/help_cmd.lean + def foo 2023-12-17 23:08:30 91ef688 feat(Data/Polynomial/RingDivision): Negation lemmas for `roots`, `aroots`, and `rootSet` (#9133) This PR adds negation lemmas for `roots`, `aroots`, and `rootSet`. ESTIMATED CHANGES Modified Mathlib/Data/Polynomial/RingDivision.lean + theorem Polynomial.aroots_neg + theorem Polynomial.rootSet_neg + theorem Polynomial.rootSet_one + theorem Polynomial.roots_neg 2023-12-17 21:55:08 fad7cd8 feat: `exp (t * x) ≤ cosh x + t * sinh x` (#9097) From LeanAPAP ESTIMATED CHANGES Modified Mathlib/Analysis/Convex/SpecificFunctions/Basic.lean + theorem Real.exp_mul_le_cosh_add_mul_sinh 2023-12-17 21:55:07 079c7b4 chore(Set/NAry): fix docstring, golf (#9059) - Fix the module docstring of `Data.Set.NAry`. It looks like it was copied from `Data.Finset.NAry` while synchronizing the files. - Golf some proofs. ESTIMATED CHANGES Modified Mathlib/Data/Set/NAry.lean +/- theorem Set.image2_inter_subset_left +/- theorem Set.image2_inter_subset_right 2023-12-17 21:55:06 27b7e3e feat: add `CharP.natCast_eq_natCast_mod` and relax typeclass assumptions (#9050) ESTIMATED CHANGES Modified Mathlib/Algebra/CharP/Basic.lean + theorem CharP.intCast_eq_intCast_mod + theorem CharP.natCast_eq_natCast' +/- theorem CharP.natCast_eq_natCast + theorem CharP.natCast_eq_natCast_mod 2023-12-17 21:55:04 4bb736f refactor(Testing/SlimCheck/Sampleable): Qq-ify (#8857) This makes things a little less fragile to refactors, as the types are checked up front. It also means we get better error messages. ESTIMATED CHANGES Modified Mathlib/Testing/SlimCheck/Sampleable.lean +/- def SlimCheck.mkGenerator 2023-12-17 21:55:04 c9df764 chore: various style improvements in positivity extensions (#8098) - match with ~q() - put type ascriptions inline ESTIMATED CHANGES Modified Mathlib/Tactic/Positivity/Basic.lean +/- def Mathlib.Meta.Positivity.evalAbs +/- def Mathlib.Meta.Positivity.evalNatAbs +/- def Mathlib.Meta.Positivity.evalNatSucc 2023-12-17 21:55:03 7b1f933 feat: positivity extension for zpow (#8003) This PR adds a positivity extension for integer powers, i.e. `a ^ (r : ℤ)`. It's basically copy-pasted from the natural power extension. Note that this makes the imports of `Mathlib.Tactic.Positivity.Basic` slightly heavier since the required lemmas were not there (and the relevant file doesn't import positivity so I couldn't put it there either). It's probably not too bad, but I can put it in a new file if people think this would be better. ESTIMATED CHANGES Modified Mathlib/Analysis/SpecialFunctions/Bernstein.lean Modified Mathlib/MeasureTheory/Covering/Differentiation.lean Modified Mathlib/Tactic/Positivity/Basic.lean + def Mathlib.Meta.Positivity.evalZpow Modified test/positivity.lean 2023-12-17 21:55:01 2362ccd feat: make `mod_cases` work on Nat, in addition to Int (#3922) The current `mod_cases`, as implemented in #593, only works on integers. This pull request extends it to also work on natural numbers. ESTIMATED CHANGES Modified Mathlib/Tactic/ModCases.lean + def Mathlib.Tactic.ModCases.IntMod.OnModCases + def Mathlib.Tactic.ModCases.IntMod.modCases + def Mathlib.Tactic.ModCases.IntMod.onModCases_start + def Mathlib.Tactic.ModCases.IntMod.onModCases_stop + def Mathlib.Tactic.ModCases.IntMod.onModCases_succ + def Mathlib.Tactic.ModCases.NatMod.OnModCases + def Mathlib.Tactic.ModCases.NatMod.modCases + def Mathlib.Tactic.ModCases.NatMod.onModCases_start + def Mathlib.Tactic.ModCases.NatMod.onModCases_stop + def Mathlib.Tactic.ModCases.NatMod.onModCases_succ - def Mathlib.Tactic.ModCases.OnModCases - def Mathlib.Tactic.ModCases.onModCases_start - def Mathlib.Tactic.ModCases.onModCases_stop - def Mathlib.Tactic.ModCases.onModCases_succ Modified test/mod_cases.lean 2023-12-17 20:55:43 4310b58 chore: fix linarith docs and test (#9127) ESTIMATED CHANGES Modified Mathlib/Tactic/Linarith/Frontend.lean Modified test/linarith.lean 2023-12-17 20:55:42 b067a6f feat: add Homeomorph.empty (#9092) This came up in #8160 and (independently) sphere-eversion. ESTIMATED CHANGES Modified Mathlib/Topology/Homeomorph.lean 2023-12-17 20:55:41 d0dee32 feat({ Tactic + test }/ComputeDegree): Add `monicity(!)?` (#8668) This PR adds a macro `monicity` for showing that a polynomial is `Monic` and the analogous `monicity!` macro that tries harder. [Zulip discussion](https://leanprover.zulipchat.com/#narrow/stream/113488-general/topic/compute_total_degree/near/404491025) ESTIMATED CHANGES Modified Mathlib/Tactic/ComputeDegree.lean Modified test/ComputeDegree.lean 2023-12-17 20:55:40 1fb36f8 feat({ Tactic + test }/ComputeDegree): Add support for `hsmul` (#8666) This PR adds support for `smul` in `compute_degree`. [Zulip discussion](https://leanprover.zulipchat.com/#narrow/stream/113488-general/topic/compute_total_degree/near/404468840) ESTIMATED CHANGES Modified Mathlib/Tactic/ComputeDegree.lean + theorem Mathlib.Tactic.ComputeDegree.coeff_smul + theorem Mathlib.Tactic.ComputeDegree.degree_smul_le_of_le + theorem Mathlib.Tactic.ComputeDegree.natDegree_smul_le_of_le Modified test/ComputeDegree.lean 2023-12-17 20:09:12 f1ba211 chore(LinearAlgebra/CliffordAlgebra): move results about inversion to a new file (#9075) I plan to contribute a few more of these, and this provides a better place for them to live. No lemma statements or proofs have changed. These were originally contributed in leanprover-community/mathlib#16077. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/LinearAlgebra/CliffordAlgebra/Basic.lean - theorem CliffordAlgebra.invOf_ι - theorem CliffordAlgebra.invOf_ι_mul_ι_mul_ι - def CliffordAlgebra.invertibleιOfInvertible - theorem CliffordAlgebra.isUnit_ι_of_isUnit - theorem CliffordAlgebra.ι_mul_ι_mul_invOf_ι Added Mathlib/LinearAlgebra/CliffordAlgebra/Inversion.lean + theorem CliffordAlgebra.invOf_ι + theorem CliffordAlgebra.invOf_ι_mul_ι_mul_ι + def CliffordAlgebra.invertibleιOfInvertible + theorem CliffordAlgebra.isUnit_ι_of_isUnit + theorem CliffordAlgebra.ι_mul_ι_mul_invOf_ι 2023-12-17 20:09:10 07b02ce feat(Algebra/MonoidAlgebra): when `single` and `of` commute (#8975) Also removes an `autoImplicit` that tripped me up when working on this file. ESTIMATED CHANGES Modified Mathlib/Algebra/MonoidAlgebra/Basic.lean + theorem AddMonoidAlgebra.of'_commute + theorem AddMonoidAlgebra.single_commute_single +/- theorem AddMonoidAlgebra.sum_single_index + theorem MonoidAlgebra.of_commute + theorem MonoidAlgebra.single_commute + theorem MonoidAlgebra.single_commute_single +/- theorem MonoidAlgebra.sum_single_index 2023-12-17 19:25:17 1515c7e feat: Dual basis of power basis wrt trace form (#8835) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Data/Polynomial/RingDivision.lean + theorem Polynomial.eq_zero_of_natDegree_lt_card_of_eval_eq_zero' + theorem Polynomial.eq_zero_of_natDegree_lt_card_of_eval_eq_zero Added Mathlib/FieldTheory/Minpoly/MinpolyDiv.lean + theorem coeff_minpolyDiv + theorem coeff_minpolyDiv_mem_adjoin + theorem coeff_minpolyDiv_sub_pow_mem_span + theorem eval_minpolyDiv_of_aeval_eq_zero + theorem eval_minpolyDiv_self + theorem eval₂_minpolyDiv_of_eval₂_eq_zero + theorem eval₂_minpolyDiv_self + theorem minpolyDiv_eq_of_isIntegrallyClosed + theorem minpolyDiv_eq_zero + theorem minpolyDiv_eval_eq_zero_of_ne_of_aeval_eq_zero + theorem minpolyDiv_monic + theorem minpolyDiv_ne_zero + theorem minpolyDiv_spec + theorem natDegree_minpolyDiv + theorem natDegree_minpolyDiv_lt + theorem natDegree_minpolyDiv_succ + theorem span_coeff_minpolyDiv + theorem sum_smul_minpolyDiv_eq_X_pow Modified Mathlib/FieldTheory/Separable.lean + theorem Polynomial.Separable.aeval_derivative_ne_zero + theorem Polynomial.Separable.eval₂_derivative_ne_zero Modified Mathlib/RingTheory/IntegralClosure.lean + theorem Submodule.span_range_natDegree_eq_adjoin Modified Mathlib/RingTheory/Trace.lean + theorem traceForm_dualBasis_powerBasis_eq 2023-12-17 17:55:02 b3a1d74 chore: bump Std dependency to leanprover/std4#432 (#9094) This covers these changes in Std: https://github.com/leanprover/std4/compare/6b4cf96c89e53cfcd73350bbcd90333a051ff4f0...9dd24a3493cceefa2bede383f21e4ef548990b68 * `Int.ofNat_natAbs_eq_of_nonneg` has become `Int.natAbs_of_nonneg` (and one argument has become implicit) * `List.map_id''` and `List.map_id'` have exchanged names. (Yay naming things using primes!) * Some meta functions have moved to Std and can be deleted here. ESTIMATED CHANGES Modified Mathlib/Control/Random.lean Modified Mathlib/Data/Fintype/Card.lean Modified Mathlib/Data/Int/ModEq.lean Modified Mathlib/Data/List/Basic.lean +/- theorem List.map_id'' - theorem List.map_id' Modified Mathlib/Data/List/BigOperators/Basic.lean Modified Mathlib/Data/List/Sublists.lean Modified Mathlib/Data/Nat/Squarefree.lean Modified Mathlib/Init/Data/Int/CompLemmas.lean Modified Mathlib/Lean/Expr/Basic.lean - def Lean.Expr.int? - def Lean.Expr.intLit! - def Lean.Expr.nat? - def Lean.Expr.natLit! Modified Mathlib/Lean/Meta.lean - def Lean.MVarId.applyConst - def Lean.Meta.getLocalHyps Modified lake-manifest.json 2023-12-17 17:55:01 9764993 feat: Checking `ae` on a countable type (#8945) and other simple measure lemmas From PFR and LeanCamCombi ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Decomposition/Lebesgue.lean Modified Mathlib/MeasureTheory/Measure/AEMeasurable.lean Modified Mathlib/MeasureTheory/Measure/Dirac.lean Modified Mathlib/MeasureTheory/Measure/MeasureSpace.lean + theorem AEMeasurable.nullMeasurableSet_preimage + theorem MeasureTheory.Measure.absolutelyContinuous_smul +/- theorem MeasureTheory.Measure.map_apply +/- theorem MeasureTheory.Measure.map_apply_of_aemeasurable + theorem MeasureTheory.Measure.map_eq_zero_iff + theorem MeasureTheory.Measure.map_ne_zero_iff +/- theorem MeasureTheory.Measure.map_toOuterMeasure + theorem MeasureTheory.Measure.mapₗ_eq_zero_iff + theorem MeasureTheory.Measure.mapₗ_ne_zero_iff + theorem MeasureTheory.Measure.smul_absolutelyContinuous +/- theorem MeasureTheory.measure_compl + theorem MeasureTheory.measure_compl₀ + theorem MeasureTheory.measure_inter_conull' + theorem MeasureTheory.measure_inter_conull + theorem MeasureTheory.measure_preimage_eq_zero_iff_of_countable Modified Mathlib/MeasureTheory/Measure/MeasureSpaceDef.lean +/- theorem MeasureTheory.ae_ball_iff + theorem MeasureTheory.ae_iff_of_countable + theorem MeasureTheory.measure_null_iff_singleton 2023-12-17 16:54:46 bced263 feat(RingTheory/Polynomial/Basic): add thms on degree of span and non-finiteness of polynomial ring as module (#9029) This shows with minimal requirements on `R`, that the `R`-module `R[X]` is not finite, or if `R` is a field, that equivalently `R[X]` is infinite-dimensional. On the way, some theorems are proven on how the `R`-span of a set of polynomials in `R[X]` interacts with the degree of the elements, and that the span of finitely many polynomials is always contained in some `Polynomial.degreeLE n` and some `Polynomial.degreeLT n`. ESTIMATED CHANGES Modified Mathlib/RingTheory/Polynomial/Basic.lean + theorem Polynomial.degreeLT_succ_eq_degreeLE + theorem Polynomial.exists_degree_le_of_mem_span + theorem Polynomial.exists_degree_le_of_mem_span_of_finite + theorem Polynomial.not_finite + theorem Polynomial.span_le_degreeLE_of_finite + theorem Polynomial.span_of_finite_le_degreeLT 2023-12-17 16:54:45 4f94e7d feat(Data/Sum/Basic): Add `LiftRel` lemmas. (#6729) Add lemmas that allow `IsLeft`/`IsRight` conclusions from `LiftRel` and allow for apply functions. This is necessary because `cases` cannot run on statements like `LiftRel r s (f t) y`. ESTIMATED CHANGES Modified Mathlib/Data/Sum/Basic.lean + theorem Sum.LiftRel.exists_of_isLeft_left + theorem Sum.LiftRel.exists_of_isLeft_right + theorem Sum.LiftRel.exists_of_isRight_left + theorem Sum.LiftRel.exists_of_isRight_right + theorem Sum.LiftRel.isLeft_congr + theorem Sum.LiftRel.isLeft_left + theorem Sum.LiftRel.isLeft_right + theorem Sum.LiftRel.isRight_congr + theorem Sum.LiftRel.isRight_left + theorem Sum.LiftRel.isRight_right 2023-12-17 15:16:30 f4794c2 chore(Ideal/Operations): remove extraneous nonempty conditions (#9115) Also generalizes `Ideal.subset_union` to `Subgroup`. ESTIMATED CHANGES Modified Mathlib/GroupTheory/Subgroup/Basic.lean + theorem SubgroupClass.subset_union Modified Mathlib/RingTheory/DedekindDomain/Ideal.lean Modified Mathlib/RingTheory/Ideal/Operations.lean +/- theorem Ideal.IsPrime.inf_le' +/- theorem Ideal.IsPrime.mul_le +/- theorem Ideal.IsPrime.multiset_prod_le +/- theorem Ideal.IsPrime.prod_le 2023-12-17 15:16:29 d84bf68 feat: `x ^ n / n ! ≤ exp x` (#9099) Also make private/delete the intermediate lemmas of the form `x + 1 ≤ Real.exp x` so that people use the more general final results instead. ESTIMATED CHANGES Modified Mathlib/Analysis/Convex/SpecificFunctions/Basic.lean Modified Mathlib/Analysis/SpecialFunctions/Log/Basic.lean Modified Mathlib/Combinatorics/Additive/Behrend.lean Modified Mathlib/Data/Complex/Exponential.lean - theorem Real.add_one_le_exp_of_nonneg + theorem Real.add_one_lt_exp - theorem Real.add_one_lt_exp_of_neg - theorem Real.add_one_lt_exp_of_nonzero - theorem Real.add_one_lt_exp_of_pos + theorem Real.exp_abs_le + theorem Real.exp_nonneg - theorem Real.one_sub_le_exp_minus_of_nonneg + theorem Real.one_sub_le_exp_neg - theorem Real.one_sub_lt_exp_minus_of_pos + theorem Real.one_sub_lt_exp_neg + theorem Real.pow_div_factorial_le_exp 2023-12-17 15:16:28 92d4b01 feat: add topological lemmas for `ULift` (#8958) This also adds a handful of easy instances Arguably the topological space instance should be defined via `coinduced` to make these true by `Iff.rfl`, but that creates a headache with constructors for normed spaces, so is not in this PR. ESTIMATED CHANGES Modified Mathlib/AlgebraicTopology/FundamentalGroupoid/InducedMaps.lean Modified Mathlib/Topology/Constructions.lean + theorem ULift.isClosed_iff + theorem ULift.isOpen_iff Modified Mathlib/Topology/Separation.lean 2023-12-17 14:38:33 af42783 feat: A lin. indep. family of vectors in a fin. dim. space is finite (#9103) This is just a repackaging of existing lemmas, except that the correct name is already taken by the `Set` version, so we fix that too. From LeanAPAP ESTIMATED CHANGES Modified Mathlib/Algebra/Module/Zlattice.lean Modified Mathlib/Analysis/InnerProductSpace/PiL2.lean Modified Mathlib/LinearAlgebra/FiniteDimensional.lean +/- theorem FiniteDimensional.not_linearIndependent_of_infinite +/- theorem LinearIndependent.finite + theorem LinearIndependent.setFinite 2023-12-17 09:33:31 5541d21 feat: add `Algebra ℝ A` instance given `Algebra ℂ A` (#8991) ESTIMATED CHANGES Modified Mathlib/Data/Complex/Module.lean Modified test/instance_diamonds.lean 2023-12-17 07:58:06 b835302 feat: Add `congr_mfderiv` lemmas mirroring `congr_fderiv` (#9066) Add convenience lemmas * `HasMFDerivAt.congr_mfderiv` * `HasMFDerivWithinAt.congr_mfderiv` These mirror the already existing * `HasFDerivAt.congr_fderiv` * `HasFDerivWithinAt.congr_fderiv` ESTIMATED CHANGES Modified Mathlib/Geometry/Manifold/MFDeriv.lean + theorem HasMFDerivAt.congr_mfderiv + theorem HasMFDerivWithinAt.congr_mfderiv 2023-12-16 18:08:21 c014896 feat (RingTheory/Localization/LocalizationLocalization): Generalize from CommRing to CommSemiring (#9112) Change hypothesis CommRing to CommSemiring in the first section of the file ESTIMATED CHANGES Modified Mathlib/RingTheory/Localization/LocalizationLocalization.lean 2023-12-16 08:47:18 4160b2a chore: Remove nonterminal `simp at` (#7795) Removes nonterminal uses of `simp at`. Replaces most of these with instances of `simp? ... says`. ESTIMATED CHANGES Modified Mathlib/Algebra/Associated.lean Modified Mathlib/Algebra/Category/MonCat/FilteredColimits.lean Modified Mathlib/Algebra/Group/Freiman.lean Modified Mathlib/Algebra/Homology/Augment.lean Modified Mathlib/Algebra/Lie/DirectSum.lean Modified Mathlib/Algebra/RingQuot.lean Modified Mathlib/AlgebraicTopology/SimplexCategory.lean Modified Mathlib/Analysis/Convex/Function.lean Modified Mathlib/Analysis/Convex/SpecificFunctions/Deriv.lean Modified Mathlib/Analysis/NormedSpace/Multilinear/Basic.lean Modified Mathlib/Analysis/SpecialFunctions/Bernstein.lean Modified Mathlib/Analysis/SpecialFunctions/Gamma/Beta.lean Modified Mathlib/CategoryTheory/Abelian/Transfer.lean Modified Mathlib/CategoryTheory/GradedObject.lean Modified Mathlib/CategoryTheory/Limits/FilteredColimitCommutesFiniteLimit.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Images.lean Modified Mathlib/CategoryTheory/Limits/Shapes/NormalMono/Equalizers.lean Modified Mathlib/CategoryTheory/Monoidal/OfChosenFiniteProducts/Basic.lean Modified Mathlib/CategoryTheory/Products/Basic.lean Modified Mathlib/Combinatorics/Composition.lean Modified Mathlib/Combinatorics/Young/YoungDiagram.lean Modified Mathlib/Computability/Halting.lean Modified Mathlib/Computability/Partrec.lean Modified Mathlib/Computability/PartrecCode.lean Modified Mathlib/Computability/TMToPartrec.lean Modified Mathlib/Data/Finset/NoncommProd.lean Modified Mathlib/Data/Fintype/Quotient.lean Modified Mathlib/Data/List/Basic.lean Modified Mathlib/Data/List/Join.lean Modified Mathlib/Data/List/Perm.lean Modified Mathlib/Data/List/Sigma.lean Modified Mathlib/Data/List/Sublists.lean Modified Mathlib/Data/List/Zip.lean Modified Mathlib/Data/MvPolynomial/Rename.lean Modified Mathlib/Data/Nat/Factorial/Basic.lean Modified Mathlib/Data/Nat/Pairing.lean Modified Mathlib/Data/Ordmap/Ordset.lean Modified Mathlib/Data/PFunctor/Multivariate/M.lean Modified Mathlib/Data/Polynomial/Coeff.lean Modified Mathlib/Data/Polynomial/Eval.lean Modified Mathlib/Data/Polynomial/Lifts.lean Modified Mathlib/Data/QPF/Multivariate/Constructions/Fix.lean Modified Mathlib/Data/Real/CauSeq.lean Modified Mathlib/Data/Seq/Parallel.lean Modified Mathlib/Data/Seq/WSeq.lean Modified Mathlib/Data/Set/Enumerate.lean Modified Mathlib/Data/Set/Intervals/Basic.lean Modified Mathlib/Data/Stream/Init.lean Modified Mathlib/Data/String/Basic.lean Modified Mathlib/Data/TypeVec.lean Modified Mathlib/FieldTheory/IsAlgClosed/Classification.lean Modified Mathlib/FieldTheory/SplittingField/Construction.lean Modified Mathlib/Geometry/Euclidean/Circumcenter.lean Modified Mathlib/Geometry/Manifold/PartitionOfUnity.lean Modified Mathlib/GroupTheory/CoprodI.lean Modified Mathlib/GroupTheory/FreeGroup/Basic.lean Modified Mathlib/GroupTheory/HNNExtension.lean Modified Mathlib/GroupTheory/Perm/Sign.lean Modified Mathlib/Init/Data/Nat/Bitwise.lean Modified Mathlib/LinearAlgebra/SesquilinearForm.lean Modified Mathlib/Logic/Equiv/Set.lean Modified Mathlib/MeasureTheory/Constructions/BorelSpace/Basic.lean Modified Mathlib/MeasureTheory/Covering/Besicovitch.lean Modified Mathlib/MeasureTheory/Covering/BesicovitchVectorSpace.lean Modified Mathlib/MeasureTheory/Decomposition/Lebesgue.lean Modified Mathlib/MeasureTheory/Integral/Lebesgue.lean Modified Mathlib/MeasureTheory/Measure/OuterMeasure.lean Modified Mathlib/MeasureTheory/Measure/Stieltjes.lean Modified Mathlib/NumberTheory/Bernoulli.lean Modified Mathlib/NumberTheory/Dioph.lean Modified Mathlib/NumberTheory/LucasLehmer.lean Modified Mathlib/NumberTheory/Padics/Hensel.lean Modified Mathlib/NumberTheory/PellMatiyasevic.lean Modified Mathlib/NumberTheory/Zsqrtd/Basic.lean Modified Mathlib/Probability/ProbabilityMassFunction/Monad.lean Modified Mathlib/RingTheory/DedekindDomain/Factorization.lean Modified Mathlib/RingTheory/Henselian.lean Modified Mathlib/SetTheory/Cardinal/Cofinality.lean Modified Mathlib/SetTheory/Ordinal/Notation.lean Modified Mathlib/Tactic/NormNum/Basic.lean Modified Mathlib/Tactic/NormNum/Ineq.lean Modified Mathlib/Topology/ContinuousFunction/Compact.lean Modified Mathlib/Topology/MetricSpace/CauSeqFilter.lean Modified Mathlib/Topology/MetricSpace/Completion.lean Modified Mathlib/Topology/UniformSpace/Cauchy.lean Modified Mathlib/Topology/UniformSpace/Equicontinuity.lean 2023-12-16 07:33:49 9b2f0dc chore: `Nsmul` -> `NSMul`, `Zpow` -> `ZPow`, etc (#9067) Normalising to naming convention rule number 6. ESTIMATED CHANGES Modified Mathlib/Algebra/Category/ModuleCat/FilteredColimits.lean Modified Mathlib/Algebra/FreeAlgebra.lean + def FreeAlgebra.Pre.hasSMul - def FreeAlgebra.Pre.hasSmul Modified Mathlib/Algebra/GradedMulAction.lean +/- theorem GradedMonoid.mk_smul_mk + theorem SetLike.coe_GSMul - theorem SetLike.coe_GSmul Modified Mathlib/Algebra/GroupWithZero/NonZeroDivisors.lean + theorem nonZeroSMulDivisors_mulOpposite_eq_op_nonZeroDivisors - theorem nonZeroSmulDivisors_mulOpposite_eq_op_nonZeroDivisors + theorem unop_nonZeroSMulDivisors_mulOpposite_eq_nonZeroDivisors - theorem unop_nonZeroSmulDivisors_mulOpposite_eq_nonZeroDivisors Modified Mathlib/Algebra/Lie/Basic.lean Modified Mathlib/Algebra/Module/GradedModule.lean Modified Mathlib/Algebra/Module/ULift.lean Modified Mathlib/Algebra/MonoidAlgebra/Basic.lean + def MonoidAlgebra.GroupSMul.linearMap + theorem MonoidAlgebra.GroupSMul.linearMap_apply - def MonoidAlgebra.GroupSmul.linearMap - theorem MonoidAlgebra.GroupSmul.linearMap_apply + def MonoidAlgebra.submoduleOfSMulMem - def MonoidAlgebra.submoduleOfSmulMem Modified Mathlib/Algebra/Order/Chebyshev.lean Modified Mathlib/Algebra/Order/Interval.lean Modified Mathlib/Algebra/Order/Nonneg/Module.lean Modified Mathlib/Algebra/Order/Rearrangement.lean Modified Mathlib/Algebra/Polynomial/GroupRingAction.lean + theorem prodXSubSMul.coeff + theorem prodXSubSMul.eval + theorem prodXSubSMul.monic + theorem prodXSubSMul.smul - theorem prodXSubSmul.coeff - theorem prodXSubSmul.eval - theorem prodXSubSmul.monic - theorem prodXSubSmul.smul Modified Mathlib/Algebra/Ring/CentroidHom.lean Modified Mathlib/Algebra/Star/Module.lean Modified Mathlib/Analysis/Asymptotics/AsymptoticEquivalent.lean Modified Mathlib/Analysis/Calculus/ContDiff/Basic.lean Modified Mathlib/Analysis/Calculus/Deriv/Mul.lean Modified Mathlib/Analysis/Calculus/FDeriv/Add.lean Modified Mathlib/Analysis/Convex/Strict.lean Modified Mathlib/Analysis/Distribution/SchwartzSpace.lean Modified Mathlib/Analysis/NormedSpace/OperatorNorm.lean Modified Mathlib/Analysis/NormedSpace/Spectrum.lean Modified Mathlib/Analysis/NormedSpace/WeakDual.lean Modified Mathlib/CategoryTheory/Sites/Sheaf.lean Modified Mathlib/Data/Fin/VecNotation.lean Modified Mathlib/Data/Int/Log.lean + def Int.clogZPowGi - def Int.clogZpowGi Modified Mathlib/Data/Matrix/Notation.lean Modified Mathlib/Data/Set/Pointwise/Finite.lean Modified Mathlib/Data/Set/Pointwise/SMul.lean Modified Mathlib/Data/ZMod/Quotient.lean + theorem AddAction.orbitZMultiplesEquiv_symm_apply' - theorem AddAction.orbitZmultiplesEquiv_symm_apply' + def Int.quotientZMultiplesEquivZMod + def Int.quotientZMultiplesNatEquivZMod - def Int.quotientZmultiplesEquivZMod - def Int.quotientZmultiplesNatEquivZMod + theorem MulAction.orbitZPowersEquiv_symm_apply' + theorem MulAction.orbitZPowersEquiv_symm_apply - theorem MulAction.orbitZpowersEquiv_symm_apply' - theorem MulAction.orbitZpowersEquiv_symm_apply Modified Mathlib/FieldTheory/Fixed.lean Modified Mathlib/GroupTheory/Complement.lean Modified Mathlib/GroupTheory/Divisible.lean Modified Mathlib/GroupTheory/OrderOfElement.lean + theorem finEquivZPowers_apply + theorem finEquivZPowers_symm_apply - theorem finEquivZpowers_apply - theorem finEquivZpowers_symm_apply + theorem zpowersEquivZPowers_apply - theorem zpowersEquivZpowers_apply Modified Mathlib/GroupTheory/Perm/Cycle/Basic.lean Modified Mathlib/GroupTheory/Subgroup/ZPowers.lean Modified Mathlib/LinearAlgebra/FreeModule/IdealQuotient.lean Modified Mathlib/Logic/Function/Basic.lean Modified Mathlib/MeasureTheory/Function/AEEqFun.lean Modified Mathlib/MeasureTheory/Group/Arithmetic.lean Modified Mathlib/MeasureTheory/Integral/Bochner.lean Modified Mathlib/NumberTheory/Dioph.lean + def Dioph.DiophPFun - def Dioph.DiophPfun +/- theorem Dioph.diophFn_iff_pFun + theorem Dioph.diophPFun_comp1 + theorem Dioph.diophPFun_vec - theorem Dioph.diophPfun_comp1 - theorem Dioph.diophPfun_vec +/- theorem Dioph.dom_dioph +/- theorem Dioph.xn_dioph Modified Mathlib/Order/Filter/Pointwise.lean Modified Mathlib/RepresentationTheory/Maschke.lean Modified Mathlib/RingTheory/Congruence.lean Modified Mathlib/RingTheory/DedekindDomain/SelmerGroup.lean Modified Mathlib/RingTheory/Discriminant.lean Modified Mathlib/RingTheory/Localization/Away/Basic.lean + theorem selfZPow_add + theorem selfZPow_coe_nat + theorem selfZPow_mul_neg + theorem selfZPow_neg_coe_nat + theorem selfZPow_neg_mul + theorem selfZPow_of_neg + theorem selfZPow_of_nonneg + theorem selfZPow_of_nonpos + theorem selfZPow_pow_sub + theorem selfZPow_sub_cast_nat + theorem selfZPow_zero - theorem selfZpow_add - theorem selfZpow_coe_nat - theorem selfZpow_mul_neg - theorem selfZpow_neg_coe_nat - theorem selfZpow_neg_mul - theorem selfZpow_of_neg - theorem selfZpow_of_nonneg - theorem selfZpow_of_nonpos - theorem selfZpow_pow_sub - theorem selfZpow_sub_cast_nat - theorem selfZpow_zero Modified Mathlib/RingTheory/RootsOfUnity/Basic.lean + def IsPrimitiveRoot.zmodEquivZPowers + theorem IsPrimitiveRoot.zmodEquivZPowers_apply_coe_int + theorem IsPrimitiveRoot.zmodEquivZPowers_apply_coe_nat + theorem IsPrimitiveRoot.zmodEquivZPowers_symm_apply_pow' + theorem IsPrimitiveRoot.zmodEquivZPowers_symm_apply_pow + theorem IsPrimitiveRoot.zmodEquivZPowers_symm_apply_zpow' + theorem IsPrimitiveRoot.zmodEquivZPowers_symm_apply_zpow - def IsPrimitiveRoot.zmodEquivZpowers - theorem IsPrimitiveRoot.zmodEquivZpowers_apply_coe_int - theorem IsPrimitiveRoot.zmodEquivZpowers_apply_coe_nat - theorem IsPrimitiveRoot.zmodEquivZpowers_symm_apply_pow' - theorem IsPrimitiveRoot.zmodEquivZpowers_symm_apply_pow - theorem IsPrimitiveRoot.zmodEquivZpowers_symm_apply_zpow' - theorem IsPrimitiveRoot.zmodEquivZpowers_symm_apply_zpow Modified Mathlib/SetTheory/Game/Ordinal.lean Modified Mathlib/Topology/Algebra/Group/Basic.lean Modified Mathlib/Topology/Algebra/GroupWithZero.lean Modified Mathlib/Topology/Algebra/InfiniteSum/Basic.lean Modified Mathlib/Topology/Algebra/InfiniteSum/Module.lean Modified Mathlib/Topology/Algebra/Module/Alternating/Basic.lean Modified Mathlib/Topology/Algebra/Module/Multilinear/Basic.lean Modified Mathlib/Topology/ContinuousFunction/Bounded.lean Modified Mathlib/Topology/MetricSpace/Holder.lean Modified Mathlib/Topology/UnitInterval.lean + theorem Set.Icc.abs_sub_addNSMul_le - theorem Set.Icc.abs_sub_addNsmul_le + def Set.Icc.addNSMul + theorem Set.Icc.addNSMul_eq_right + theorem Set.Icc.addNSMul_zero - def Set.Icc.addNsmul - theorem Set.Icc.addNsmul_eq_right - theorem Set.Icc.addNsmul_zero + theorem Set.Icc.monotone_addNSMul - theorem Set.Icc.monotone_addNsmul 2023-12-16 07:33:48 5e43fdc feat(Algebra/Module/Basic): add RingHom.smulOneHom (#9064) This also renames the existing `smulOneHom` to `MonoidHom.smulOneHom`. ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/Basic.lean + theorem RingHom.smulOneHom_eq_algebraMap Modified Mathlib/Algebra/Module/Basic.lean + def RingHom.smulOneHom Modified Mathlib/GroupTheory/GroupAction/Defs.lean + def MonoidHom.smulOneHom - def smulOneHom 2023-12-16 07:33:47 1be2f3f feat: Convenience lemmas for affine independence (#8929) ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/AffineSpace/FiniteDimensional.lean + theorem AffineIndependent.card_le_finrank_succ Modified Mathlib/LinearAlgebra/AffineSpace/Independent.lean + theorem AffineIndependent.eq_of_sum_eq_sum + theorem AffineIndependent.eq_of_sum_eq_sum_subtype + theorem AffineIndependent.eq_zero_of_sum_eq_zero + theorem AffineIndependent.eq_zero_of_sum_eq_zero_subtype 2023-12-16 06:46:24 4ded391 feat: A finite topological space is second countable (#8955) From PFR ESTIMATED CHANGES Modified Mathlib/Topology/Bases.lean Modified Mathlib/Topology/Clopen.lean +/- theorem isClopen_empty +/- theorem isClopen_univ 2023-12-16 04:19:45 fdf57b0 chore: bump Std to match leanprover/std4#448 (#9044) ESTIMATED CHANGES Modified Mathlib/Data/List/Basic.lean +/- theorem List.insert_neg Modified Mathlib/Data/List/Infix.lean - theorem List.insert.def + theorem List.insert_eq_ite Modified Mathlib/Logic/Basic.lean - theorem dite_eq_ite Modified lake-manifest.json 2023-12-16 02:09:06 a5732e8 chore(ModelTheory/ElementarySubstructures): Split elementary substructures into their own file (#9026) This PR splits the file `ModelTheory/ElementaryMaps` into two files, moving elementary substructure code into `ModelTheory/ElementarySubstructures`, to make room for new API on those. Two basic lemmas, `FirstOrder.Language.Substructure.realize_boundedFormula_top` and `FirstOrder.Language.Substructure.realize_formula_top`, are instead moved to the file `ModelTheory/Substructures`. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/ModelTheory/Bundled.lean Modified Mathlib/ModelTheory/ElementaryMaps.lean - theorem FirstOrder.Language.ElementarySubstructure.coeSubtype - theorem FirstOrder.Language.ElementarySubstructure.coe_top - theorem FirstOrder.Language.ElementarySubstructure.elementarilyEquivalent - theorem FirstOrder.Language.ElementarySubstructure.isElementary - theorem FirstOrder.Language.ElementarySubstructure.mem_top - theorem FirstOrder.Language.ElementarySubstructure.realize_sentence - def FirstOrder.Language.ElementarySubstructure.subtype - theorem FirstOrder.Language.ElementarySubstructure.theory_model_iff - structure FirstOrder.Language.ElementarySubstructure - def FirstOrder.Language.Substructure.IsElementary - theorem FirstOrder.Language.Substructure.isElementary_of_exists - theorem FirstOrder.Language.Substructure.realize_boundedFormula_top - theorem FirstOrder.Language.Substructure.realize_formula_top - def FirstOrder.Language.Substructure.toElementarySubstructure Added Mathlib/ModelTheory/ElementarySubstructures.lean + theorem FirstOrder.Language.ElementarySubstructure.coeSubtype + theorem FirstOrder.Language.ElementarySubstructure.coe_top + theorem FirstOrder.Language.ElementarySubstructure.elementarilyEquivalent + theorem FirstOrder.Language.ElementarySubstructure.isElementary + theorem FirstOrder.Language.ElementarySubstructure.mem_top + theorem FirstOrder.Language.ElementarySubstructure.realize_sentence + def FirstOrder.Language.ElementarySubstructure.subtype + theorem FirstOrder.Language.ElementarySubstructure.theory_model_iff + structure FirstOrder.Language.ElementarySubstructure + def FirstOrder.Language.Substructure.IsElementary + theorem FirstOrder.Language.Substructure.isElementary_of_exists + def FirstOrder.Language.Substructure.toElementarySubstructure Modified Mathlib/ModelTheory/Skolem.lean Modified Mathlib/ModelTheory/Substructures.lean + theorem FirstOrder.Language.Substructure.realize_boundedFormula_top + theorem FirstOrder.Language.Substructure.realize_formula_top 2023-12-16 00:58:55 a45fd77 feat(Data/Fin): add lemmas (#8974) - move `Nat.dvd_one` to `Data.Nat.Basic`; it should go to Std4; - rename `Fin.ofNat_eq_val` to `Fin.ofNat''_eq_cast`; - add `@[simp]` lemmas `Fin.val_nat_cast`, `Fin.nat_cast_self`, and `Fin.nat_cast_eq_zero`; - add `@[simp]` to `Fin.cast_nat_eq_last` and `ZMod.val_nat_cast`; - add `binomial_apply_last`, as the LHS of `binomial_apply_self` is no longer in simp normal form. ESTIMATED CHANGES Modified Mathlib/Data/Fin/Basic.lean +/- theorem Fin.cast_nat_eq_last +/- theorem Fin.cast_val_eq_self + theorem Fin.nat_cast_eq_zero + theorem Fin.nat_cast_self + theorem Fin.ofNat''_eq_cast - theorem Fin.ofNat_eq_val +/- theorem Fin.one_eq_zero_iff +/- theorem Fin.val_cast_of_lt + theorem Fin.val_nat_cast +/- theorem Fin.zero_eq_one_iff Modified Mathlib/Data/Nat/Basic.lean + theorem Nat.dvd_one Modified Mathlib/Data/Nat/Order/Lemmas.lean Modified Mathlib/Data/ZMod/Basic.lean Modified Mathlib/Probability/ProbabilityMassFunction/Binomial.lean + theorem PMF.binomial_apply_last 2023-12-16 00:58:54 eb4573a feat(RingTheory/Congruence): add the `CompleteLattice` instance (#8313) The code is copied from `GroupTheory/Congruence.lean`, and then modified to fix the errors. I haven't copied the full contents of `GroupTheory/Congruencee`, only the results about the lattice structure. This replaces leanprover-community/mathlib#18588 ESTIMATED CHANGES Modified Mathlib/GroupTheory/Congruence.lean + theorem Con.coe_iInf Modified Mathlib/RingTheory/Congruence.lean + theorem RingCon.coe_iInf + theorem RingCon.coe_inf + theorem RingCon.coe_sInf + theorem RingCon.coe_top + theorem RingCon.ext' + theorem RingCon.ext + theorem RingCon.inf_iff_and + theorem RingCon.le_def +/- theorem RingCon.rel_mk + theorem RingCon.ringConGen_eq + theorem RingCon.ringConGen_idem + theorem RingCon.ringConGen_le + theorem RingCon.ringConGen_mono + theorem RingCon.ringConGen_of_ringCon + theorem RingCon.sInf_toSetoid + theorem RingCon.sSup_def + theorem RingCon.sSup_eq_ringConGen + theorem RingCon.sup_def + theorem RingCon.sup_eq_ringConGen 2023-12-16 00:27:09 1f95ef7 feat: Add `congr_deriv` lemmas mirroring `congr_fderiv` (#9065) Add convenience lemmas * `HasStrictDerivAt.congr_deriv` * `HasDerivAt.congr_deriv` * `HasDerivWithinAt.congr_deriv` These mirror the already existing * `HasStrictFDerivAt.congr_fderiv` * `HasFDerivAt.congr_fderiv` * `HasFDerivWithinAt.congr_fderiv` ESTIMATED CHANGES Modified Mathlib/Analysis/Calculus/Deriv/Basic.lean + theorem HasDerivAt.congr_deriv + theorem HasDerivWithinAt.congr_deriv + theorem HasStrictDerivAt.congr_deriv 2023-12-15 23:57:43 120efa7 feat(LinearAlgebra/Matrix): powers preserve `IsSymm` and `IsHermitian` (#9036) ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/Matrix/Hermitian.lean + theorem Matrix.IsHermitian.pow + theorem Matrix.IsHermitian.zpow + theorem Matrix.commute_iff Modified Mathlib/LinearAlgebra/Matrix/Symmetric.lean + theorem Matrix.IsSymm.pow Modified Mathlib/LinearAlgebra/Matrix/ZPow.lean + theorem Matrix.IsSymm.zpow 2023-12-15 21:44:18 f48b102 feat: subgroups of Z/nZ-modules are submodules (#9045) Together with #9017 and #8965 we can convert group theory problems to linear algebra problems as in the [homomorphism form of PFR](https://teorth.github.io/pfr/blueprint/sect0008.html). ESTIMATED CHANGES Modified Mathlib/Data/ZMod/Module.lean + theorem AddSubgroup.coe_toZModSubmodule + def AddSubgroup.toZModSubmodule + theorem AddSubgroup.toZModSubmodule_symm + theorem AddSubgroup.toZModSubmodule_toAddSubgroup + theorem Submodule.toAddSubgroup_toZModSubmodule +/- theorem ZMod.map_smul + theorem ZMod.smul_mem 2023-12-15 20:19:44 e609a7e refactor: Generalise archimedean lemmas to semirings (#8943) A bunch of lemmas are true in `ℕ` but previously did not apply there. ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Archimedean.lean +/- theorem add_one_pow_unbounded_of_pos +/- theorem exists_nat_gt +/- theorem exists_nat_one_div_lt +/- theorem exists_nat_pow_near +/- theorem pow_unbounded_of_one_lt 2023-12-15 19:04:53 d58b572 feat: port test/instance_diamonds.lean (#9037) This reveals that `Smul.ext_iff` is hard to work with unless we also have a lemma to convert `SMul.smul` to `HSMul.hsMul` ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Defs.lean + theorem SMul.smul_eq_hSMul Modified Mathlib/Data/Complex/Module.lean Added test/instance_diamonds.lean + theorem TensorProduct.f_apply 2023-12-15 17:44:25 fab6ab7 fix: rename `tsum_congr_subtype` (#9080) The lemma `tsum_congr_subtype` is currently stated in terms of set coercions rather than subtypes. This PR renames `tsum_congr_subtype` to `tsum_congr_set_coe`, and adds a new lemma `tsum_congr_subtype` whose statement is explicitly about subtypes. ESTIMATED CHANGES Modified Mathlib/Topology/Algebra/InfiniteSum/Basic.lean + theorem tsum_congr_set_coe +/- theorem tsum_congr_subtype Modified Mathlib/Topology/Instances/ENNReal.lean 2023-12-15 16:32:49 1250aa8 feat: show that `BitVec` is a commutative ring (#8711) ESTIMATED CHANGES Modified Mathlib/Data/BitVec/Defs.lean Modified Mathlib/Data/BitVec/Lemmas.lean + theorem Std.BitVec.ofFin_add + theorem Std.BitVec.ofFin_and + theorem Std.BitVec.ofFin_mul + theorem Std.BitVec.ofFin_natCast + theorem Std.BitVec.ofFin_neg + theorem Std.BitVec.ofFin_nsmul + theorem Std.BitVec.ofFin_ofNat + theorem Std.BitVec.ofFin_one + theorem Std.BitVec.ofFin_or + theorem Std.BitVec.ofFin_pow + theorem Std.BitVec.ofFin_sub + theorem Std.BitVec.ofFin_xor + theorem Std.BitVec.ofFin_zero + theorem Std.BitVec.ofFin_zsmul + theorem Std.BitVec.toFin_add + theorem Std.BitVec.toFin_and + theorem Std.BitVec.toFin_inj + theorem Std.BitVec.toFin_injective + theorem Std.BitVec.toFin_mul + theorem Std.BitVec.toFin_natCast + theorem Std.BitVec.toFin_neg + theorem Std.BitVec.toFin_nsmul + theorem Std.BitVec.toFin_ofNat + theorem Std.BitVec.toFin_one + theorem Std.BitVec.toFin_or + theorem Std.BitVec.toFin_pow + theorem Std.BitVec.toFin_sub + theorem Std.BitVec.toFin_xor + theorem Std.BitVec.toFin_zero + theorem Std.BitVec.toFin_zsmul +/- theorem Std.BitVec.toNat_injective 2023-12-15 14:16:46 8aa9689 feat(Data/Sign): add missing API lemmas (#9074) This adds three `simp` and `norm_cast` lemmas for `SignType`. ESTIMATED CHANGES Modified Mathlib/Data/Sign.lean + theorem SignType.coe_mul + theorem SignType.coe_pow + theorem SignType.coe_zpow 2023-12-15 13:12:58 03c8eec feat: coefficients of division by X-x (#9071) ESTIMATED CHANGES Modified Mathlib/Data/Polynomial/Div.lean + theorem Polynomial.coeff_divByMonic_X_sub_C + theorem Polynomial.coeff_divByMonic_X_sub_C_rec 2023-12-15 13:12:57 d08e3e0 feat(Set/Lattice): add `Set.seq_eq_image2`, use it to golf some proofs (#9062) ESTIMATED CHANGES Modified Mathlib/Data/Set/Lattice.lean +/- theorem Set.iUnion_image_right +/- theorem Set.seq_def + theorem Set.seq_eq_image2 +/- theorem Set.seq_singleton +/- theorem Set.singleton_seq 2023-12-15 13:12:56 c8c1c7a feat(Filter/Basic): define `Filter.copy` (#9056) ESTIMATED CHANGES Modified Mathlib/Order/Filter/Basic.lean + theorem Filter.copy_eq + theorem Filter.mem_copy 2023-12-15 12:17:19 4f9bbba chore(Data/Finset): golf (#9058) Golf the proof of `Finset.subset_image₂` by reusing `Finset.subset_image_iff`. ESTIMATED CHANGES Modified Mathlib/Data/Finset/NAry.lean 2023-12-15 12:17:18 c371f59 chore(Submodule/Bilinear): golf a proof (#9057) ESTIMATED CHANGES Modified Mathlib/Algebra/Module/Submodule/Bilinear.lean 2023-12-15 11:08:55 ea8ece1 chore: improve error message from says in CI (#9061) ESTIMATED CHANGES Modified Mathlib/Tactic/Says.lean Modified test/says.lean 2023-12-15 10:22:44 5ab7021 chore: golf and generalize `discr_eq_discr_of_algEquiv` (#9068) ESTIMATED CHANGES Modified Mathlib/NumberTheory/NumberField/Discriminant.lean Modified Mathlib/RingTheory/Discriminant.lean +/- theorem Algebra.discr_eq_discr_of_algEquiv 2023-12-15 09:19:52 e216be2 feat: noncommutative coproduct for MonoidHom (#7335) Add `MonoidHom.noncommCoprod` which allows to define a morphism from a product `M x N` to a monoid `P` given two monoid morphisms `M -> P` and `N -> P`, provided a commutativity assumption on the ranges. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Group/Prod.lean + theorem MonoidHom.commute_inl_inr Added Mathlib/GroupTheory/NoncommCoprod.lean + theorem MonoidHom.comp_noncommCoprod + def MonoidHom.noncommCoprod + theorem MonoidHom.noncommCoprod_comp_inl + theorem MonoidHom.noncommCoprod_comp_inr + theorem MonoidHom.noncommCoprod_inl_inr + theorem MonoidHom.noncommCoprod_unique + theorem MulHom.comp_noncommCoprod + def MulHom.noncommCoprod 2023-12-14 22:43:10 ce9ef8b fix: renable some slim check tests and make them pass (#9021) Previously `addDecorations` was creating ill-typed expressions that in the presence of function types placed a `Type` where a `Prop` was expected. A few of the tests needed some minor fixes to make them pass. ESTIMATED CHANGES Modified Mathlib/Tactic/SlimCheck.lean Modified Mathlib/Testing/SlimCheck/Testable.lean Modified test/slim_check.lean 2023-12-14 21:31:13 b92d742 chore (Order.Defs): reorder parents to simplify instances and avoid non-reducible defeq checks (#9034) Currently, `OrderDual.orderedCommMonoid` unifies with `LinearOrderedAddCommMonoid.toOrderedAddCommMonoid` at instance transparency because of an extra eta expansion in its definition. The provided instances can be synthesized by Lean and deleted. This removes the extraneous eta expansion but causes defeq to fail at instance transparency. To fix this, we reorder the parents of `LinearOrderedAddCommMonoid`. We also do this for the non-`Add` version. ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Monoid/Defs.lean Modified Mathlib/Algebra/Order/Monoid/OrderDual.lean Modified Mathlib/RingTheory/Valuation/ValuationRing.lean 2023-12-14 17:26:21 0b290c7 feat(CategoryTheory/Triangulated): triangulated functors (#9049) This PR defines the notion of triangulated functors between pretriangulated categories. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Triangulated/Functor.lean + def CategoryTheory.Functor.mapTriangle + theorem CategoryTheory.Functor.map_distinguished 2023-12-14 13:12:38 3465d1a feat: Define the dual of a fractional ideal. (#8833) Also moved `Algebra.discr_eq_discr_of_toMatrix_coeff_isIntegral` to `Mathlib/NumberTheory/NumberField/Discriminant.lean`. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/NumberTheory/Cyclotomic/Discriminant.lean Modified Mathlib/NumberTheory/NumberField/Discriminant.lean + theorem Algebra.discr_eq_discr_of_toMatrix_coeff_isIntegral Added Mathlib/RingTheory/DedekindDomain/Different.lean + theorem FractionalIdeal.coe_dual + theorem FractionalIdeal.coe_dual_one + def FractionalIdeal.dual + theorem FractionalIdeal.dual_div_dual + theorem FractionalIdeal.dual_dual + theorem FractionalIdeal.dual_eq_mul_inv + theorem FractionalIdeal.dual_eq_zero_iff + theorem FractionalIdeal.dual_injective + theorem FractionalIdeal.dual_inv + theorem FractionalIdeal.dual_inv_le + theorem FractionalIdeal.dual_involutive + theorem FractionalIdeal.dual_le_dual + theorem FractionalIdeal.dual_mul_self + theorem FractionalIdeal.dual_ne_zero + theorem FractionalIdeal.dual_ne_zero_iff + theorem FractionalIdeal.dual_zero + theorem FractionalIdeal.inv_le_dual + theorem FractionalIdeal.le_dual_iff + theorem FractionalIdeal.le_dual_inv_aux + theorem FractionalIdeal.mem_dual + theorem FractionalIdeal.one_le_dual_one + theorem FractionalIdeal.self_mul_dual + theorem Submodule.le_traceDual + theorem Submodule.le_traceDual_comm + theorem Submodule.le_traceDual_iff_map_le_one + theorem Submodule.le_traceDual_mul_iff + theorem Submodule.le_traceDual_traceDual + theorem Submodule.mem_traceDual + theorem Submodule.mem_traceDual_iff_isIntegral + theorem Submodule.one_le_traceDual_one + def Submodule.traceDual + theorem Submodule.traceDual_bot + theorem Submodule.traceDual_top' + theorem Submodule.traceDual_top + theorem isIntegral_discr_mul_of_mem_traceDual Modified Mathlib/RingTheory/DedekindDomain/IntegralClosure.lean Modified Mathlib/RingTheory/Discriminant.lean - theorem Algebra.discr_eq_discr_of_toMatrix_coeff_isIntegral Modified Mathlib/RingTheory/Localization/FractionRing.lean + theorem IsFractionRing.surjective_iff_isField Modified Mathlib/RingTheory/Trace.lean + theorem Algebra.trace_ne_zero + theorem Algebra.trace_surjective 2023-12-14 12:44:06 c6e2a24 feat(Data/Nat/GCD/BigOperators): add lemmas about coprimality with `List.prod`, `Multiset.prod`, `Finset.prod` (#9005) Add `coprime_xxx_prod_left_iff`, `coprime_xxx_prod_right_iff` lemma for `List`, `Multiset`, `Finset` and `Fintype`. This is a PR separated from #8887. ESTIMATED CHANGES Modified Mathlib/Data/Nat/GCD/BigOperators.lean + theorem Nat.coprime_fintype_prod_left_iff + theorem Nat.coprime_fintype_prod_right_iff + theorem Nat.coprime_list_prod_left_iff + theorem Nat.coprime_list_prod_right_iff + theorem Nat.coprime_multiset_prod_left_iff + theorem Nat.coprime_multiset_prod_right_iff - theorem Nat.coprime_prod_left + theorem Nat.coprime_prod_left_iff - theorem Nat.coprime_prod_right + theorem Nat.coprime_prod_right_iff Modified Mathlib/GroupTheory/NoncommPiCoprod.lean Modified Mathlib/NumberTheory/ArithmeticFunction.lean 2023-12-14 11:42:15 95427d9 perf (AlgebraicGeometry.Properties): Speed up one declaration (#9035) This speeds up on declaration by breaking up a defeq check into a single task. ESTIMATED CHANGES Modified Mathlib/AlgebraicGeometry/Properties.lean 2023-12-14 10:29:29 62d40c8 fix: do not abuse `Set.Ioo` as a predicate (#9027) ESTIMATED CHANGES Modified Mathlib/Data/Polynomial/UnitTrinomial.lean 2023-12-14 10:29:28 bb973d5 chore: discharge porting note about 'change ... at' (#9018) `RingTheory.Adjoin.Basic` was ported in #2817. `change ... at` was added in #2836. ESTIMATED CHANGES Modified Mathlib/RingTheory/Adjoin/Basic.lean 2023-12-14 10:29:27 8511c2c feat(Logic/Equiv/TransferInstance): shrinking types preserves algebraic structures (#8998) ESTIMATED CHANGES Modified Mathlib/Logic/Equiv/TransferInstance.lean 2023-12-14 10:29:26 778aba6 feat: More clique lemmas (#8007) Forward port https://github.com/leanprover-community/mathlib/pull/19203 ESTIMATED CHANGES Modified Mathlib/Combinatorics/SimpleGraph/Basic.lean +/- theorem SimpleGraph.Hom.coe_id - theorem SimpleGraph.deleteEdges_eq + theorem SimpleGraph.deleteEdges_eq_self + theorem SimpleGraph.not_mem_neighborSet_self Modified Mathlib/Combinatorics/SimpleGraph/Clique.lean + theorem SimpleGraph.CliqueFreeOn.anti + theorem SimpleGraph.CliqueFreeOn.mono + theorem SimpleGraph.CliqueFreeOn.of_succ + theorem SimpleGraph.CliqueFreeOn.subset + def SimpleGraph.CliqueFreeOn + theorem SimpleGraph.IsClique.insert +/- theorem SimpleGraph.IsClique.mono +/- theorem SimpleGraph.IsClique.subset + theorem SimpleGraph.IsNClique.insert + theorem SimpleGraph.card_cliqueFinset_le + theorem SimpleGraph.cliqueFinset_map + theorem SimpleGraph.cliqueFinset_map_of_equiv + theorem SimpleGraph.cliqueFreeOn_empty + theorem SimpleGraph.cliqueFreeOn_of_card_lt + theorem SimpleGraph.cliqueFreeOn_singleton + theorem SimpleGraph.cliqueFreeOn_two + theorem SimpleGraph.cliqueFreeOn_univ + theorem SimpleGraph.cliqueFree_two + theorem SimpleGraph.cliqueSet_bot + theorem SimpleGraph.cliqueSet_map + theorem SimpleGraph.cliqueSet_map_of_equiv + theorem SimpleGraph.cliqueSet_one + theorem SimpleGraph.cliqueSet_zero + theorem SimpleGraph.isClique_empty + theorem SimpleGraph.isClique_insert + theorem SimpleGraph.isClique_insert_of_not_mem + theorem SimpleGraph.isClique_pair + theorem SimpleGraph.isClique_singleton + theorem SimpleGraph.isNClique_empty + theorem SimpleGraph.isNClique_one + theorem SimpleGraph.isNClique_singleton + theorem SimpleGraph.isNClique_zero Modified Mathlib/Combinatorics/SimpleGraph/Triangle/Basic.lean Modified Mathlib/Data/Finset/Card.lean + theorem Finset.exists_mem_ne Modified Mathlib/Data/Finset/Preimage.lean + theorem Finset.preimage_map Modified Mathlib/Logic/Basic.lean Modified Mathlib/Logic/Relation.lean + theorem Relation.map_apply 2023-12-14 09:19:37 1efef4c chore: `Nat.mod_succ` (#9031) A simp lemma specialized to `n % n.succ` ESTIMATED CHANGES Modified Mathlib/Data/Nat/Basic.lean + theorem Nat.mod_succ 2023-12-14 06:19:23 d2fe557 refactor(CategoryTheory/Sites): rename Sheafification file (#9042) In preparation for #9012, to make the diff nicer. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/CategoryTheory/Sites/Adjunction.lean Modified Mathlib/CategoryTheory/Sites/CompatibleSheafification.lean Renamed Mathlib/CategoryTheory/Sites/Sheafification.lean to Mathlib/CategoryTheory/Sites/ConcreteSheafification.lean Modified Mathlib/CategoryTheory/Sites/ConstantSheaf.lean Modified Mathlib/CategoryTheory/Sites/CoverLifting.lean Modified Mathlib/CategoryTheory/Sites/LeftExact.lean Modified Mathlib/CategoryTheory/Sites/Limits.lean Modified Mathlib/CategoryTheory/Sites/Subsheaf.lean 2023-12-14 06:19:22 1d5e93a feat(Algebra/CharP/ExpChar): add some results parallel to `CharP` (#8860) - change the condition of `CharP.neg_one_pow_char` and `CharP.neg_one_pow_char_pow` from `CommRing` to `Ring` - add `ExpChar.exists`, `expChar_of_injective_algebraMap` - add `add_pow_expChar` and 9 similar functions parallel to that of `CharP` - add `{charP|charZero|expChar}_of_injective_ringHom` ESTIMATED CHANGES Modified Mathlib/Algebra/CharP/Algebra.lean + theorem charP_of_injective_ringHom + theorem charZero_of_injective_ringHom Modified Mathlib/Algebra/CharP/Basic.lean +/- theorem CharP.neg_one_pow_char +/- theorem CharP.neg_one_pow_char_pow Modified Mathlib/Algebra/CharP/ExpChar.lean + theorem ExpChar.exists + theorem ExpChar.neg_one_pow_expChar + theorem ExpChar.neg_one_pow_expChar_pow + theorem add_pow_expChar + theorem add_pow_expChar_of_commute + theorem add_pow_expChar_pow + theorem add_pow_expChar_pow_of_commute + theorem expChar_of_injective_algebraMap + theorem expChar_of_injective_ringHom + theorem sub_pow_expChar + theorem sub_pow_expChar_of_commute + theorem sub_pow_expChar_pow + theorem sub_pow_expChar_pow_of_commute 2023-12-14 05:07:58 a169d1d chore: update Std dependency to match leanprover/std4#397 (#9039) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Computability/Primrec.lean Modified Mathlib/Data/List/Basic.lean +/- theorem List.indexOf_cons_eq +/- theorem List.indexOf_cons_ne Modified Mathlib/Data/List/MinMax.lean Modified Mathlib/Data/Multiset/Basic.lean Deleted Mathlib/Lean/System/IO.lean - def IO.waitAny' - def List.waitAll Modified Mathlib/NumberTheory/SmoothNumbers.lean Modified lake-manifest.json 2023-12-14 04:11:51 08b0740 chore: bump Std dependency up to leanprover/std4#445 (#9043) I think this one should merge cleanly, after which we have some work to do for #9039 ESTIMATED CHANGES Modified Mathlib/Data/List/Basic.lean - theorem List.reverse_eq_nil Modified Mathlib/Data/List/DropRight.lean Modified lake-manifest.json 2023-12-13 23:06:07 5973b71 chore: replace `piFinSuccAboveEquiv` with `piFinSuccAbove` (#9030) Replaces `Equiv.piFinSuccAboveEquiv` with `.piFinSuccAbove`, and same for `MeasurableEquiv.piFinSuccAboveEquiv` ESTIMATED CHANGES Modified Mathlib/Logic/Equiv/Fin.lean + def Equiv.piFinSuccAbove - def Equiv.piFinSuccAboveEquiv Modified Mathlib/MeasureTheory/Constructions/Pi.lean + theorem MeasureTheory.measurePreserving_piFinSuccAbove - theorem MeasureTheory.measurePreserving_piFinSuccAboveEquiv + theorem MeasureTheory.volume_preserving_piFinSuccAbove - theorem MeasureTheory.volume_preserving_piFinSuccAboveEquiv Modified Mathlib/MeasureTheory/Integral/Pi.lean Modified Mathlib/MeasureTheory/Integral/TorusIntegral.lean Modified Mathlib/MeasureTheory/MeasurableSpace/Basic.lean + def MeasurableEquiv.piFinSuccAbove - def MeasurableEquiv.piFinSuccAboveEquiv Modified Mathlib/RepresentationTheory/Action/Monoidal.lean Modified Mathlib/RepresentationTheory/GroupCohomology/Resolution.lean 2023-12-13 20:14:46 91ebbbe doc: Make the docs more uniform for the Category and Quiver modules (#8928) Fix the description of the definition of `Quiver` and change the example of the use of `⊚` to be consistent with the above use of `≫`. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Category/Basic.lean Modified Mathlib/Combinatorics/Quiver/Basic.lean 2023-12-13 19:05:43 39229b7 feat(FieldTheory/IntermediateField): generalize `eq_of_le_of_finrank_{le|eq}` (#8873) - generalize `IntermediateField.eq_of_le_of_finrank_{le|eq}`: the condition `FiniteDimensional K L` is generalized to `FiniteDimensional K E` (credits: @riccardobrasca) - generalize `IntermediateField.eq_of_le_of_finrank_{le|eq}'`: the condition `FiniteDimensional K L` is generalized to `FiniteDimensional F L` (original proof credits: @riccardobrasca) - add `Subalgebra.eq_of_le_of_finrank_{le|eq}` - add `IntermediateField.extendScalars` and its basic properties ESTIMATED CHANGES Modified Mathlib/FieldTheory/IntermediateField.lean + theorem IntermediateField.coe_extendScalars +/- theorem IntermediateField.eq_of_le_of_finrank_eq' +/- theorem IntermediateField.eq_of_le_of_finrank_eq +/- theorem IntermediateField.eq_of_le_of_finrank_le' + theorem IntermediateField.eq_of_le_of_finrank_le + def IntermediateField.extendScalars.orderIso + def IntermediateField.extendScalars + theorem IntermediateField.extendScalars_injective + theorem IntermediateField.extendScalars_le_extendScalars_iff + theorem IntermediateField.extendScalars_le_iff + theorem IntermediateField.extendScalars_restrictScalars + theorem IntermediateField.extendScalars_toSubfield + theorem IntermediateField.le_extendScalars_iff + theorem IntermediateField.mem_extendScalars Modified Mathlib/LinearAlgebra/FiniteDimensional.lean + theorem Subalgebra.eq_of_le_of_finrank_eq + theorem Subalgebra.eq_of_le_of_finrank_le 2023-12-13 19:05:42 8a22187 feat(Data/Polynomial/RingDivision): improvements to `Polynomial.rootMultiplicity` (#8563) Main changes: - add `Monic.mem_nonZeroDivisors` and `mem_nonZeroDivisors_of_leadingCoeff` which states that a monic polynomial (resp. a polynomial whose leading coefficient is not zero divisor) is not a zero divisor. - add `rootMultiplicity_mul_X_sub_C_pow` which states that `* (X - a) ^ n` adds the root multiplicity at `a` by `n`. - change the conditions in `rootMultiplicity_X_sub_C_self`, `rootMultiplicity_X_sub_C` and `rootMultiplicity_X_sub_C_pow` from `IsDomain` to `Nontrivial`. - add `rootMultiplicity_eq_natTrailingDegree` which relates `rootMultiplicity` and `natTrailingDegree`, and `eval_divByMonic_eq_trailingCoeff_comp`. - add `le_rootMultiplicity_mul` which is similar to `le_trailingDegree_mul`. - add `rootMultiplicity_mul'` which slightly generalizes `rootMultiplicity_mul` In `Data/Polynomial/FieldDivision`: - add `rootMultiplicity_sub_one_le_derivative_rootMultiplicity_of_ne_zero` which slightly generalizes `rootMultiplicity_sub_one_le_derivative_rootMultiplicity`. - add `derivative_rootMultiplicity_of_root_of_mem_nonZeroDivisors` which slightly generalizes `derivative_rootMultiplicity_of_root`. - add several theorems relating roots of iterate derivative to `rootMultiplicity` In addition: - move `eq_of_monic_of_associated` from RingDivision to Monic and generalize. - add `dvd_cancel` lemmas to NonZeroDivisors. - add `algEquivOfCompEqX`: two polynomials that compose to X both ways induces an isomorphism of the polynomial algebra. - add divisibility lemmas to Polynomial/Derivative. ESTIMATED CHANGES Modified Mathlib/Algebra/Divisibility/Basic.lean +/- theorem MonoidHom.map_dvd +/- theorem MulHom.map_dvd +/- theorem map_dvd Modified Mathlib/Algebra/GroupWithZero/NonZeroDivisors.lean + theorem dvd_cancel_left_coe_nonZeroDivisors + theorem dvd_cancel_left_mem_nonZeroDivisors + theorem dvd_cancel_right_coe_nonZeroDivisors + theorem dvd_cancel_right_mem_nonZeroDivisors Modified Mathlib/Algebra/Ring/Divisibility/Basic.lean + theorem map_dvd_iff Modified Mathlib/Data/Polynomial/AlgebraMap.lean + def Polynomial.algEquivAevalXAddC + def Polynomial.algEquivOfCompEqX + theorem Polynomial.comp_eq_aeval Modified Mathlib/Data/Polynomial/Derivative.lean + theorem Polynomial.iterate_derivative_X_sub_pow_self + theorem Polynomial.pow_sub_dvd_iterate_derivative_of_pow_dvd + theorem Polynomial.pow_sub_dvd_iterate_derivative_pow + theorem Polynomial.pow_sub_one_dvd_derivative_of_pow_dvd Modified Mathlib/Data/Polynomial/Div.lean + theorem Polynomial.exists_eq_pow_rootMultiplicity_mul_and_not_dvd Modified Mathlib/Data/Polynomial/FieldDivision.lean + theorem Polynomial.derivative_rootMultiplicity_of_root_of_mem_nonZeroDivisors + theorem Polynomial.eval_iterate_derivative_rootMultiplicity + theorem Polynomial.isRoot_iterate_derivative_of_lt_rootMultiplicity + theorem Polynomial.lt_rootMultiplicity_iff_isRoot_iterate_derivative + theorem Polynomial.lt_rootMultiplicity_iff_isRoot_iterate_derivative_of_mem_nonZeroDivisors' + theorem Polynomial.lt_rootMultiplicity_iff_isRoot_iterate_derivative_of_mem_nonZeroDivisors + theorem Polynomial.lt_rootMultiplicity_of_isRoot_iterate_derivative + theorem Polynomial.lt_rootMultiplicity_of_isRoot_iterate_derivative_of_mem_nonZeroDivisors' + theorem Polynomial.lt_rootMultiplicity_of_isRoot_iterate_derivative_of_mem_nonZeroDivisors + theorem Polynomial.one_lt_rootMultiplicity_iff_isRoot + theorem Polynomial.one_lt_rootMultiplicity_iff_isRoot_gcd + theorem Polynomial.one_lt_rootMultiplicity_iff_isRoot_iterate_derivative + theorem Polynomial.rootMultiplicity_sub_one_le_derivative_rootMultiplicity_of_ne_zero Modified Mathlib/Data/Polynomial/Monic.lean + theorem Polynomial.eq_of_monic_of_associated Modified Mathlib/Data/Polynomial/RingDivision.lean + theorem Polynomial.Monic.mem_nonZeroDivisors + theorem Polynomial.X_sub_C_pow_dvd_iff + theorem Polynomial.comp_X_add_C_eq_zero_iff + theorem Polynomial.comp_X_add_C_ne_zero_iff - theorem Polynomial.eq_of_monic_of_associated + theorem Polynomial.eval_divByMonic_eq_trailingCoeff_comp + theorem Polynomial.le_rootMultiplicity_mul + theorem Polynomial.mem_nonZeroDivisors_of_leadingCoeff +/- theorem Polynomial.rootMultiplicity_X_sub_C +/- theorem Polynomial.rootMultiplicity_X_sub_C_pow +/- theorem Polynomial.rootMultiplicity_X_sub_C_self + theorem Polynomial.rootMultiplicity_eq_natTrailingDegree' + theorem Polynomial.rootMultiplicity_eq_natTrailingDegree + theorem Polynomial.rootMultiplicity_eq_rootMultiplicity + theorem Polynomial.rootMultiplicity_mul' + theorem Polynomial.rootMultiplicity_mul_X_sub_C_pow Modified Mathlib/RingTheory/Multiplicity.lean + theorem multiplicity.le_multiplicity_map +/- theorem multiplicity.multiplicity_eq_multiplicity_iff +/- theorem multiplicity.multiplicity_le_multiplicity_iff - theorem multiplicity.multiplicity_lt_iff_neg_dvd + theorem multiplicity.multiplicity_lt_iff_not_dvd + theorem multiplicity.multiplicity_map_eq 2023-12-13 18:20:22 c4988d1 feat: make isNoetherian_of_isNoetherianRing_of_finite an instance (#8999) Make `isNoetherian_of_isNoetherianRing_of_finite an instance`: this was impossible in Lean 3 because of a loop. ESTIMATED CHANGES Modified Mathlib/Algebra/DirectSum/LinearMap.lean Modified Mathlib/Algebra/Lie/Killing.lean Modified Mathlib/Algebra/Lie/Weights/Linear.lean Modified Mathlib/Algebra/Module/PID.lean Modified Mathlib/NumberTheory/Cyclotomic/Basic.lean Modified Mathlib/Probability/Cdf.lean Modified Mathlib/RingTheory/Adjoin/Tower.lean Modified Mathlib/RingTheory/DedekindDomain/PID.lean Modified Mathlib/RingTheory/Filtration.lean Modified Mathlib/RingTheory/Noetherian.lean - theorem isNoetherian_of_isNoetherianRing_of_finite 2023-12-13 17:31:57 a210341 chore: also install neovim in gitpod to enable lean.nvim use (#9024) This doesn't actually *install* [`lean.nvim`](https://github.com/Julian/lean.nvim), it leaves that to each user's dotfiles, but it does install neovim, meaning if one does do so (have dotfiles which tell neovim to use lean.nvim), that it works the same as VSCode in Gitpod. Zulip: https://leanprover.zulipchat.com/#narrow/stream/113488-general/topic/lean.2Envim/near/404290395 ESTIMATED CHANGES Modified .docker/gitpod/Dockerfile 2023-12-13 17:01:32 3e7a07f feat: define root data / systems (#8882) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/LinearAlgebra/PerfectPairing.lean + def IsReflexive.toPerfectPairingDual + theorem PerfectPairing.flip_flip + structure PerfectPairing Added Mathlib/LinearAlgebra/RootSystem/Basic.lean + def RootPairing.IsCrystallographic + def RootPairing.IsReduced + theorem RootPairing.bijOn_coreflection_coroot + theorem RootPairing.bijOn_reflection_root + def RootPairing.coreflection + theorem RootPairing.coreflection_apply + theorem RootPairing.coreflection_image_eq + theorem RootPairing.coroot_eq_coreflection_of_root_eq_of_span_eq_top' + theorem RootPairing.coroot_eq_coreflection_of_root_eq_of_span_eq_top + theorem RootPairing.coroot_root_two + theorem RootPairing.eq_of_forall_coroot_root_eq + theorem RootPairing.flip_flip + theorem RootPairing.injOn_dualMap_subtype_span_root_coroot + theorem RootPairing.ne_zero' + theorem RootPairing.ne_zero + def RootPairing.reflection + theorem RootPairing.reflection_apply + theorem RootPairing.reflection_apply_self + theorem RootPairing.reflection_dualMap_eq_coreflection + theorem RootPairing.reflection_image_eq + structure RootPairing + theorem RootSystem.coroot_eq_coreflection_of_root_eq + def RootSystem.mk' + structure RootSystem 2023-12-13 16:04:15 4275e9e feat: Wedderburn's Little Theorem (#6800) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/RingTheory/IntegralDomain.lean Added Mathlib/RingTheory/LittleWedderburn.lean + theorem Finite.isDomain_to_isField Modified Mathlib/RingTheory/Subring/Basic.lean + theorem Subring.card_top Modified docs/references.bib 2023-12-13 12:12:03 d85330e feat: Norm and trace under isomorphisms. (#8682) ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/Trace.lean Modified Mathlib/RingTheory/Norm.lean + theorem Algebra.norm_eq_of_algEquiv + theorem Algebra.norm_eq_of_equiv_equiv + theorem Algebra.norm_eq_of_ringEquiv Modified Mathlib/RingTheory/Trace.lean + theorem Algebra.trace_eq_of_algEquiv + theorem Algebra.trace_eq_of_equiv_equiv + theorem Algebra.trace_eq_of_ringEquiv 2023-12-13 09:43:18 6bb383b chore: address `rsuffices` porting notes (#9014) Updates proofs that had been doing `rsuffices` manually. ESTIMATED CHANGES Modified Mathlib/Order/Filter/AtTopBot.lean Modified Mathlib/RingTheory/Subring/Basic.lean Modified Mathlib/Topology/Algebra/Semigroup.lean Modified Mathlib/Topology/FiberBundle/Basic.lean 2023-12-13 09:43:17 f7006a7 chore: rename LocalEquiv to PartialEquiv (#8984) The current name is misleading: there's no open set involved; it's just an equivalence between subsets of domain and target. [zulip discussion](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/Naming.20around.20local.20homeomorphisms/near/407090631) `PEquiv` is similarly named: this is fine, as they're different designs for the same concept. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Analysis/Calculus/InverseFunctionTheorem/ApproximatesLinearOn.lean - def ApproximatesLinearOn.toLocalEquiv + def ApproximatesLinearOn.toPartialEquiv Modified Mathlib/Analysis/SpecialFunctions/Complex/Circle.lean Modified Mathlib/Data/PEquiv.lean Modified Mathlib/Geometry/Manifold/ChartedSpace.lean Modified Mathlib/Geometry/Manifold/ContMDiff/Atlas.lean Modified Mathlib/Geometry/Manifold/ContMDiff/Defs.lean Modified Mathlib/Geometry/Manifold/ContMDiff/Product.lean Modified Mathlib/Geometry/Manifold/ContMDiffMFDeriv.lean Modified Mathlib/Geometry/Manifold/Diffeomorph.lean Modified Mathlib/Geometry/Manifold/Instances/Sphere.lean Modified Mathlib/Geometry/Manifold/MFDeriv.lean Modified Mathlib/Geometry/Manifold/SmoothManifoldWithCorners.lean +/- theorem ModelWithCorners.mk_coe +/- theorem ModelWithCorners.mk_symm - theorem ModelWithCorners.toLocalEquiv_coe - theorem ModelWithCorners.toLocalEquiv_coe_symm + theorem ModelWithCorners.toPartialEquiv_coe + theorem ModelWithCorners.toPartialEquiv_coe_symm +/- def PartialHomeomorph.extend +/- def extChartAt +/- theorem extChartAt_model_space_eq_id +/- theorem modelWithCornersSelf_localEquiv - theorem modelWithCorners_prod_toLocalEquiv + theorem modelWithCorners_prod_toPartialEquiv Modified Mathlib/Geometry/Manifold/VectorBundle/Basic.lean Modified Mathlib/Geometry/Manifold/VectorBundle/FiberwiseLinear.lean Modified Mathlib/Geometry/Manifold/VectorBundle/Tangent.lean - theorem TangentBundle.chartAt_toLocalEquiv + theorem TangentBundle.chartAt_toPartialEquiv Renamed Mathlib/Logic/Equiv/LocalEquiv.lean to Mathlib/Logic/Equiv/PartialEquiv.lean - theorem Equiv.refl_toLocalEquiv + theorem Equiv.refl_toPartialEquiv - theorem Equiv.symm_toLocalEquiv + theorem Equiv.symm_toPartialEquiv - def Equiv.toLocalEquiv - def Equiv.toLocalEquivOfImageEq + def Equiv.toPartialEquiv + def Equiv.toPartialEquivOfImageEq - def Equiv.transLocalEquiv - theorem Equiv.transLocalEquiv_eq_trans + def Equiv.transPartialEquiv + theorem Equiv.transPartialEquiv_eq_trans - theorem Equiv.trans_toLocalEquiv + theorem Equiv.trans_toPartialEquiv - theorem LocalEquiv.EqOnSource.eqOn - theorem LocalEquiv.EqOnSource.restr - theorem LocalEquiv.EqOnSource.source_eq - theorem LocalEquiv.EqOnSource.source_inter_preimage_eq - theorem LocalEquiv.EqOnSource.symm' - theorem LocalEquiv.EqOnSource.symm_eqOn - theorem LocalEquiv.EqOnSource.target_eq - theorem LocalEquiv.EqOnSource.trans' - def LocalEquiv.EqOnSource - theorem LocalEquiv.IsImage.apply_mem_iff - theorem LocalEquiv.IsImage.iff_preimage_eq - theorem LocalEquiv.IsImage.iff_symm_preimage_eq - theorem LocalEquiv.IsImage.image_eq - theorem LocalEquiv.IsImage.inter_eq_of_inter_eq_of_eqOn - theorem LocalEquiv.IsImage.leftInvOn_piecewise - theorem LocalEquiv.IsImage.of_image_eq - theorem LocalEquiv.IsImage.of_symm_image_eq - def LocalEquiv.IsImage.restr - theorem LocalEquiv.IsImage.symm_apply_mem_iff - theorem LocalEquiv.IsImage.symm_eq_on_of_inter_eq_of_eqOn - theorem LocalEquiv.IsImage.symm_iff - theorem LocalEquiv.IsImage.symm_image_eq - theorem LocalEquiv.IsImage.symm_mapsTo - def LocalEquiv.IsImage - def LocalEquiv.Simps.symm_apply - theorem LocalEquiv.coe_symm_mk - theorem LocalEquiv.coe_trans - theorem LocalEquiv.coe_trans_symm - def LocalEquiv.copy - theorem LocalEquiv.copy_eq - def LocalEquiv.disjointUnion - theorem LocalEquiv.disjointUnion_eq_piecewise - theorem LocalEquiv.eqOnSource_refl - theorem LocalEquiv.eq_of_eqOnSource_univ - theorem LocalEquiv.eq_symm_apply - theorem LocalEquiv.exists_mem_target - theorem LocalEquiv.forall_mem_target - theorem LocalEquiv.image_eq_target_inter_inv_preimage - theorem LocalEquiv.image_source_eq_target - theorem LocalEquiv.image_source_inter_eq' - theorem LocalEquiv.image_source_inter_eq - theorem LocalEquiv.image_symm_image_of_subset_target - theorem LocalEquiv.image_trans_source - theorem LocalEquiv.invFun_as_coe - theorem LocalEquiv.inv_image_trans_target - theorem LocalEquiv.isImage_source_target - theorem LocalEquiv.isImage_source_target_of_disjoint - theorem LocalEquiv.left_inv - theorem LocalEquiv.map_source'' - theorem LocalEquiv.map_source - theorem LocalEquiv.map_target - theorem LocalEquiv.mem_symm_trans_source - def LocalEquiv.ofSet - theorem LocalEquiv.ofSet_coe - theorem LocalEquiv.ofSet_source - theorem LocalEquiv.ofSet_symm - theorem LocalEquiv.ofSet_target - theorem LocalEquiv.pi_refl - theorem LocalEquiv.pi_symm - theorem LocalEquiv.pi_symm_apply - theorem LocalEquiv.pi_trans - def LocalEquiv.piecewise - def LocalEquiv.prod - theorem LocalEquiv.prod_coe - theorem LocalEquiv.prod_coe_symm - theorem LocalEquiv.prod_source - theorem LocalEquiv.prod_symm - theorem LocalEquiv.prod_target - theorem LocalEquiv.prod_trans - theorem LocalEquiv.refl_coe - theorem LocalEquiv.refl_prod_refl - theorem LocalEquiv.refl_restr_source - theorem LocalEquiv.refl_restr_target - theorem LocalEquiv.refl_source - theorem LocalEquiv.refl_symm - theorem LocalEquiv.refl_target - theorem LocalEquiv.refl_trans - theorem LocalEquiv.restr_coe - theorem LocalEquiv.restr_coe_symm - theorem LocalEquiv.restr_eq_of_source_subset - theorem LocalEquiv.restr_source - theorem LocalEquiv.restr_target - theorem LocalEquiv.restr_trans - theorem LocalEquiv.restr_univ - theorem LocalEquiv.right_inv - theorem LocalEquiv.source_inter_preimage_inv_preimage - theorem LocalEquiv.source_inter_preimage_target_inter - theorem LocalEquiv.source_subset_preimage_target - theorem LocalEquiv.symm_bijective - theorem LocalEquiv.symm_image_eq_source_inter_preimage - theorem LocalEquiv.symm_image_image_of_subset_source - theorem LocalEquiv.symm_image_target_eq_source - theorem LocalEquiv.symm_image_target_inter_eq' - theorem LocalEquiv.symm_image_target_inter_eq - theorem LocalEquiv.symm_mapsTo - theorem LocalEquiv.symm_piecewise - theorem LocalEquiv.symm_source - theorem LocalEquiv.symm_symm - theorem LocalEquiv.symm_target - theorem LocalEquiv.target_inter_inv_preimage_preimage - theorem LocalEquiv.target_subset_preimage_source - def LocalEquiv.transEquiv - theorem LocalEquiv.transEquiv_eq_trans - theorem LocalEquiv.trans_apply - theorem LocalEquiv.trans_assoc - theorem LocalEquiv.trans_ofSet - theorem LocalEquiv.trans_refl - theorem LocalEquiv.trans_refl_restr' - theorem LocalEquiv.trans_refl_restr - theorem LocalEquiv.trans_self_symm - theorem LocalEquiv.trans_source'' - theorem LocalEquiv.trans_source' - theorem LocalEquiv.trans_source - theorem LocalEquiv.trans_symm_eq_symm_trans_symm - theorem LocalEquiv.trans_symm_self - theorem LocalEquiv.trans_target'' - theorem LocalEquiv.trans_target' - theorem LocalEquiv.trans_target - structure LocalEquiv + theorem PartialEquiv.EqOnSource.eqOn + theorem PartialEquiv.EqOnSource.restr + theorem PartialEquiv.EqOnSource.source_eq + theorem PartialEquiv.EqOnSource.source_inter_preimage_eq + theorem PartialEquiv.EqOnSource.symm' + theorem PartialEquiv.EqOnSource.symm_eqOn + theorem PartialEquiv.EqOnSource.target_eq + theorem PartialEquiv.EqOnSource.trans' + def PartialEquiv.EqOnSource + theorem PartialEquiv.IsImage.apply_mem_iff + theorem PartialEquiv.IsImage.iff_preimage_eq + theorem PartialEquiv.IsImage.iff_symm_preimage_eq + theorem PartialEquiv.IsImage.image_eq + theorem PartialEquiv.IsImage.inter_eq_of_inter_eq_of_eqOn + theorem PartialEquiv.IsImage.leftInvOn_piecewise + theorem PartialEquiv.IsImage.of_image_eq + theorem PartialEquiv.IsImage.of_symm_image_eq + def PartialEquiv.IsImage.restr + theorem PartialEquiv.IsImage.symm_apply_mem_iff + theorem PartialEquiv.IsImage.symm_eq_on_of_inter_eq_of_eqOn + theorem PartialEquiv.IsImage.symm_iff + theorem PartialEquiv.IsImage.symm_image_eq + theorem PartialEquiv.IsImage.symm_mapsTo + def PartialEquiv.IsImage + def PartialEquiv.Simps.symm_apply + theorem PartialEquiv.coe_symm_mk + theorem PartialEquiv.coe_trans + theorem PartialEquiv.coe_trans_symm + def PartialEquiv.copy + theorem PartialEquiv.copy_eq + def PartialEquiv.disjointUnion + theorem PartialEquiv.disjointUnion_eq_piecewise + theorem PartialEquiv.eqOnSource_refl + theorem PartialEquiv.eq_of_eqOnSource_univ + theorem PartialEquiv.eq_symm_apply + theorem PartialEquiv.exists_mem_target + theorem PartialEquiv.forall_mem_target + theorem PartialEquiv.image_eq_target_inter_inv_preimage + theorem PartialEquiv.image_source_eq_target + theorem PartialEquiv.image_source_inter_eq' + theorem PartialEquiv.image_source_inter_eq + theorem PartialEquiv.image_symm_image_of_subset_target + theorem PartialEquiv.image_trans_source + theorem PartialEquiv.invFun_as_coe + theorem PartialEquiv.inv_image_trans_target + theorem PartialEquiv.isImage_source_target + theorem PartialEquiv.isImage_source_target_of_disjoint + theorem PartialEquiv.left_inv + theorem PartialEquiv.map_source'' + theorem PartialEquiv.map_source + theorem PartialEquiv.map_target + theorem PartialEquiv.mem_symm_trans_source + def PartialEquiv.ofSet + theorem PartialEquiv.ofSet_coe + theorem PartialEquiv.ofSet_source + theorem PartialEquiv.ofSet_symm + theorem PartialEquiv.ofSet_target + theorem PartialEquiv.pi_refl + theorem PartialEquiv.pi_symm + theorem PartialEquiv.pi_symm_apply + theorem PartialEquiv.pi_trans + def PartialEquiv.piecewise + def PartialEquiv.prod + theorem PartialEquiv.prod_coe + theorem PartialEquiv.prod_coe_symm + theorem PartialEquiv.prod_source + theorem PartialEquiv.prod_symm + theorem PartialEquiv.prod_target + theorem PartialEquiv.prod_trans + theorem PartialEquiv.refl_coe + theorem PartialEquiv.refl_prod_refl + theorem PartialEquiv.refl_restr_source + theorem PartialEquiv.refl_restr_target + theorem PartialEquiv.refl_source + theorem PartialEquiv.refl_symm + theorem PartialEquiv.refl_target + theorem PartialEquiv.refl_trans + theorem PartialEquiv.restr_coe + theorem PartialEquiv.restr_coe_symm + theorem PartialEquiv.restr_eq_of_source_subset + theorem PartialEquiv.restr_source + theorem PartialEquiv.restr_target + theorem PartialEquiv.restr_trans + theorem PartialEquiv.restr_univ + theorem PartialEquiv.right_inv + theorem PartialEquiv.source_inter_preimage_inv_preimage + theorem PartialEquiv.source_inter_preimage_target_inter + theorem PartialEquiv.source_subset_preimage_target + theorem PartialEquiv.symm_bijective + theorem PartialEquiv.symm_image_eq_source_inter_preimage + theorem PartialEquiv.symm_image_image_of_subset_source + theorem PartialEquiv.symm_image_target_eq_source + theorem PartialEquiv.symm_image_target_inter_eq' + theorem PartialEquiv.symm_image_target_inter_eq + theorem PartialEquiv.symm_mapsTo + theorem PartialEquiv.symm_piecewise + theorem PartialEquiv.symm_source + theorem PartialEquiv.symm_symm + theorem PartialEquiv.symm_target + theorem PartialEquiv.target_inter_inv_preimage_preimage + theorem PartialEquiv.target_subset_preimage_source + def PartialEquiv.transEquiv + theorem PartialEquiv.transEquiv_eq_trans + theorem PartialEquiv.trans_apply + theorem PartialEquiv.trans_assoc + theorem PartialEquiv.trans_ofSet + theorem PartialEquiv.trans_refl + theorem PartialEquiv.trans_refl_restr' + theorem PartialEquiv.trans_refl_restr + theorem PartialEquiv.trans_self_symm + theorem PartialEquiv.trans_source'' + theorem PartialEquiv.trans_source' + theorem PartialEquiv.trans_source + theorem PartialEquiv.trans_symm_eq_symm_trans_symm + theorem PartialEquiv.trans_symm_self + theorem PartialEquiv.trans_target'' + theorem PartialEquiv.trans_target' + theorem PartialEquiv.trans_target + structure PartialEquiv Modified Mathlib/Mathport/Syntax.lean Modified Mathlib/MeasureTheory/Function/Jacobian.lean Modified Mathlib/Topology/Covering.lean Modified Mathlib/Topology/FiberBundle/Basic.lean - def FiberBundleCore.localTrivAsLocalEquiv - theorem FiberBundleCore.localTrivAsLocalEquiv_apply - theorem FiberBundleCore.localTrivAsLocalEquiv_coe - theorem FiberBundleCore.localTrivAsLocalEquiv_source - theorem FiberBundleCore.localTrivAsLocalEquiv_symm - theorem FiberBundleCore.localTrivAsLocalEquiv_target - theorem FiberBundleCore.localTrivAsLocalEquiv_trans + def FiberBundleCore.localTrivAsPartialEquiv + theorem FiberBundleCore.localTrivAsPartialEquiv_apply + theorem FiberBundleCore.localTrivAsPartialEquiv_coe + theorem FiberBundleCore.localTrivAsPartialEquiv_source + theorem FiberBundleCore.localTrivAsPartialEquiv_symm + theorem FiberBundleCore.localTrivAsPartialEquiv_target + theorem FiberBundleCore.localTrivAsPartialEquiv_trans - theorem FiberBundleCore.mem_localTrivAsLocalEquiv_source - theorem FiberBundleCore.mem_localTrivAsLocalEquiv_target + theorem FiberBundleCore.mem_localTrivAsPartialEquiv_source + theorem FiberBundleCore.mem_localTrivAsPartialEquiv_target +/- theorem FiberBundleCore.open_source' Modified Mathlib/Topology/FiberBundle/Constructions.lean Modified Mathlib/Topology/FiberBundle/Trivialization.lean +/- theorem Pretrivialization.apply_symm_apply +/- theorem Pretrivialization.coe_coe +/- theorem Pretrivialization.ext' +/- theorem Pretrivialization.proj_symm_apply +/- theorem Pretrivialization.symm_apply_apply - theorem Pretrivialization.toLocalEquiv_injective + theorem Pretrivialization.toPartialEquiv_injective +/- structure Pretrivialization Modified Mathlib/Topology/IsLocalHomeomorph.lean Modified Mathlib/Topology/PartialHomeomorph.lean - theorem PartialHomeomorph.IsImage.toLocalEquiv + theorem PartialHomeomorph.IsImage.toPartialEquiv +/- theorem PartialHomeomorph.coe_coe +/- theorem PartialHomeomorph.coe_coe_symm +/- theorem PartialHomeomorph.eq_of_localEquiv_eq +/- theorem PartialHomeomorph.mk_coe +/- theorem PartialHomeomorph.mk_coe_symm +/- def PartialHomeomorph.ofContinuousOpen +/- def PartialHomeomorph.ofContinuousOpenRestrict - theorem PartialHomeomorph.ofSet_toLocalEquiv + theorem PartialHomeomorph.ofSet_toPartialEquiv +/- theorem PartialHomeomorph.refl_localEquiv +/- def PartialHomeomorph.replaceEquiv +/- theorem PartialHomeomorph.replaceEquiv_eq_self - theorem PartialHomeomorph.restrOpen_toLocalEquiv + theorem PartialHomeomorph.restrOpen_toPartialEquiv - theorem PartialHomeomorph.restr_toLocalEquiv' - theorem PartialHomeomorph.restr_toLocalEquiv + theorem PartialHomeomorph.restr_toPartialEquiv' + theorem PartialHomeomorph.restr_toPartialEquiv - theorem PartialHomeomorph.symm_toLocalEquiv + theorem PartialHomeomorph.symm_toPartialEquiv - theorem PartialHomeomorph.toLocalEquiv_injective + theorem PartialHomeomorph.toPartialEquiv_injective - theorem PartialHomeomorph.trans_toLocalEquiv + theorem PartialHomeomorph.trans_toPartialEquiv Modified Mathlib/Topology/VectorBundle/Hom.lean Modified scripts/style-exceptions.txt Modified test/MfldSetTac.lean +/- def ModelWithCorners.symm +/- structure ModelWithCorners - theorem PartialHomeomorph.symm_to_LocalEquiv + theorem PartialHomeomorph.symm_to_PartialEquiv +/- structure PartialHomeomorph 2023-12-13 09:43:16 82ddb54 chore: Sink `Algebra.Support` down the import tree (#8919) `Function.support` is a very basic definition. Nevertheless, it is a pretty heavy import because it imports most objects a `support` lemma can be written about. This PR reverses the dependencies between those objects and `Function.support`, so that the latter can become a much more lightweight import. Only two import could not easily be reversed, namely the ones to `Data.Set.Finite` and `Order.ConditionallyCompleteLattice.Basic`, so I created two new files instead. I credit: * Yury for https://github.com/leanprover-community/mathlib/pull/6791 * Oliver for https://github.com/leanprover-community/mathlib/pull/7439 ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/BigOperators/Basic.lean + theorem Finset.mulIndicator_biUnion + theorem Finset.mulIndicator_biUnion_apply + theorem Finset.mulIndicator_prod + theorem Finset.mulSupport_prod + theorem Finset.prod_mulIndicator_eq_prod_filter + theorem Finset.prod_mulIndicator_subset + theorem Finset.prod_mulIndicator_subset_of_eq_one + theorem Finset.support_prod + theorem Finset.support_prod_subset Modified Mathlib/Algebra/BigOperators/Finprod.lean Modified Mathlib/Algebra/CharZero/Lemmas.lean + theorem Function.mulSupport_nat_cast + theorem Function.support_nat_cast Added Mathlib/Algebra/Function/Finite.lean + theorem Function.mulSupport_along_fiber_finite_of_finite Renamed Mathlib/Algebra/IndicatorFunction.lean to Mathlib/Algebra/Function/Indicator.lean - theorem Finset.prod_mulIndicator_eq_prod_filter - theorem Set.abs_indicator_symmDiff - theorem Set.indicator_const_smul - theorem Set.indicator_const_smul_apply - theorem Set.indicator_le_indicator_nonneg - theorem Set.indicator_nonpos_le_indicator - theorem Set.indicator_smul - theorem Set.indicator_smul_apply - theorem Set.indicator_smul_apply_left - theorem Set.indicator_smul_const - theorem Set.indicator_smul_const_apply - theorem Set.indicator_smul_left - theorem Set.le_mulIndicator - theorem Set.le_mulIndicator_apply - theorem Set.mulIndicator_apply_le' - theorem Set.mulIndicator_apply_le - theorem Set.mulIndicator_apply_le_one - theorem Set.mulIndicator_finset_biUnion - theorem Set.mulIndicator_finset_biUnion_apply - theorem Set.mulIndicator_finset_prod - theorem Set.mulIndicator_iInter_apply - theorem Set.mulIndicator_iUnion_apply - theorem Set.mulIndicator_le' - theorem Set.mulIndicator_le - theorem Set.mulIndicator_le_mulIndicator - theorem Set.mulIndicator_le_mulIndicator_of_subset - theorem Set.mulIndicator_le_one - theorem Set.mulIndicator_le_self' - theorem Set.mulIndicator_le_self - theorem Set.one_le_mulIndicator - theorem Set.one_le_mulIndicator_apply - theorem Set.prod_mulIndicator_subset - theorem Set.prod_mulIndicator_subset_of_eq_one Renamed Mathlib/Algebra/Support.lean to Mathlib/Algebra/Function/Support.lean - theorem Function.mulSupport_along_fiber_finite_of_finite - theorem Function.mulSupport_iInf - theorem Function.mulSupport_iSup - theorem Function.mulSupport_inf - theorem Function.mulSupport_int_cast - theorem Function.mulSupport_max - theorem Function.mulSupport_min - theorem Function.mulSupport_nat_cast - theorem Function.mulSupport_prod - theorem Function.mulSupport_sup - theorem Function.support_const_smul_of_ne_zero - theorem Function.support_int_cast - theorem Function.support_nat_cast - theorem Function.support_prod - theorem Function.support_prod_subset - theorem Function.support_smul - theorem Function.support_smul_subset_left - theorem Function.support_smul_subset_right Modified Mathlib/Algebra/Module/Basic.lean + theorem Function.support_const_smul_of_ne_zero + theorem Function.support_smul + theorem Function.support_smul_subset_left + theorem Function.support_smul_subset_right + theorem Set.indicator_const_smul + theorem Set.indicator_const_smul_apply + theorem Set.indicator_smul + theorem Set.indicator_smul_apply + theorem Set.indicator_smul_apply_left + theorem Set.indicator_smul_const + theorem Set.indicator_smul_const_apply + theorem Set.indicator_smul_left Added Mathlib/Algebra/Order/Support.lean + theorem Function.mulSupport_iInf + theorem Function.mulSupport_iSup + theorem Function.mulSupport_inf + theorem Function.mulSupport_max + theorem Function.mulSupport_min + theorem Function.mulSupport_sup + theorem Set.abs_indicator_symmDiff + theorem Set.indicator_le_indicator_nonneg + theorem Set.indicator_nonpos_le_indicator + theorem Set.le_mulIndicator + theorem Set.le_mulIndicator_apply + theorem Set.mulIndicator_apply_le' + theorem Set.mulIndicator_apply_le + theorem Set.mulIndicator_apply_le_one + theorem Set.mulIndicator_iInter_apply + theorem Set.mulIndicator_iUnion_apply + theorem Set.mulIndicator_le' + theorem Set.mulIndicator_le + theorem Set.mulIndicator_le_mulIndicator + theorem Set.mulIndicator_le_mulIndicator_of_subset + theorem Set.mulIndicator_le_one + theorem Set.mulIndicator_le_self' + theorem Set.mulIndicator_le_self + theorem Set.one_le_mulIndicator + theorem Set.one_le_mulIndicator_apply Modified Mathlib/Analysis/NormedSpace/IndicatorFunction.lean Modified Mathlib/Data/Finsupp/Defs.lean Modified Mathlib/Data/Finsupp/Pointwise.lean Modified Mathlib/Data/Int/CharZero.lean + theorem Function.mulSupport_int_cast + theorem Function.support_int_cast Modified Mathlib/Data/Rat/NNRat.lean Modified Mathlib/Data/Real/NNReal.lean Modified Mathlib/Data/Set/Pointwise/Support.lean Modified Mathlib/Geometry/Euclidean/Circumcenter.lean Modified Mathlib/LinearAlgebra/AffineSpace/Combination.lean Modified Mathlib/LinearAlgebra/AffineSpace/Independent.lean Modified Mathlib/MeasureTheory/Function/SimpleFunc.lean Modified Mathlib/MeasureTheory/Function/UniformIntegrable.lean Modified Mathlib/MeasureTheory/MeasurableSpace/Basic.lean Modified Mathlib/Order/Filter/EventuallyConst.lean Modified Mathlib/Order/Filter/IndicatorFunction.lean Modified Mathlib/Probability/Martingale/Upcrossing.lean Modified Mathlib/SetTheory/Cardinal/Basic.lean Modified Mathlib/Topology/Algebra/InfiniteSum/Basic.lean Modified Mathlib/Topology/Algebra/Order/LiminfLimsup.lean Modified Mathlib/Topology/Basic.lean Modified Mathlib/Topology/ContinuousOn.lean Modified Mathlib/Topology/IndicatorConstPointwise.lean Modified Mathlib/Topology/LocallyConstant/Basic.lean Modified Mathlib/Topology/Semicontinuous.lean Modified Mathlib/Topology/Support.lean 2023-12-13 09:43:14 395e853 feat(Geometry/Manifold/Instances/UnitsOfNormedAlgebra): Lie group structure (#8397) Port of [mathlib#15763](https://github.com/leanprover-community/mathlib/pull/15763) We complete the construction of the Lie group of units of a complete normed ring. To show that multiplication and inversion are smooth, we add some more lemmas: 1. For a manifold `M` whose chart structure is induced by an open embedding from `M` to `H`, the open embedding itself is a smooth manifold map. 2. The inverse of this open embedding is smooth on its range. 3. For a manifold map `f : M → M'` whose target space `M'` has a chart structure induced by an open embedding `e' : M' → H'`, if `e' ∘ f` is smooth, then `f` is smooth. Lemmas previously not ported are now ported: 1. `open_embedding.to_local_homeomorph_left_inv` 2. `open_embedding.to_local_homeomorph_right_inv` ESTIMATED CHANGES Modified Mathlib/Geometry/Manifold/ContMDiff/Basic.lean + theorem ContMDiff.of_comp_openEmbedding + theorem contMDiffOn_openEmbedding_symm + theorem contMDiff_openEmbedding Modified Mathlib/Geometry/Manifold/Instances/UnitsOfNormedAlgebra.lean + theorem Units.contMDiff_val Modified Mathlib/Topology/PartialHomeomorph.lean + theorem OpenEmbedding.toPartialHomeomorph_left_inv + theorem OpenEmbedding.toPartialHomeomorph_right_inv 2023-12-13 09:14:07 86e78bc feat: Modify incorrect definition from Semiring to CommSemiring (#9003) The definition of RingEquiv.toCommSemiRingCatIso was incorrectly stated as equal to the RingEquiv.toSemiRingCatIso ESTIMATED CHANGES Modified Mathlib/Algebra/Category/Ring/Basic.lean 2023-12-13 08:05:58 441b6ce feat(Combinatorics): definition and basic properties of Schnirelmann density (#7342) Provide the definition of the Schnirelmann density, basic properties of it, and some simple useful calculations. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Combinatorics/Schnirelmann.lean + theorem exists_of_schnirelmannDensity_eq_zero + theorem le_schnirelmannDensity_iff + theorem schnirelmannDensity_congr' + theorem schnirelmannDensity_congr + theorem schnirelmannDensity_diff_singleton_zero + theorem schnirelmannDensity_empty + theorem schnirelmannDensity_eq_one_iff + theorem schnirelmannDensity_eq_one_iff_of_zero_mem + theorem schnirelmannDensity_eq_zero_of_one_not_mem + theorem schnirelmannDensity_finite + theorem schnirelmannDensity_finset + theorem schnirelmannDensity_insert_zero + theorem schnirelmannDensity_le_div + theorem schnirelmannDensity_le_iff_forall + theorem schnirelmannDensity_le_of_le + theorem schnirelmannDensity_le_of_not_mem + theorem schnirelmannDensity_le_of_subset + theorem schnirelmannDensity_le_one + theorem schnirelmannDensity_lt_iff + theorem schnirelmannDensity_mul_le_card_filter + theorem schnirelmannDensity_nonneg + theorem schnirelmannDensity_setOf_Odd + theorem schnirelmannDensity_setOf_even + theorem schnirelmannDensity_setOf_mod_eq_one + theorem schnirelmannDensity_setOf_modeq_one + theorem schnirelmannDensity_setOf_prime + theorem schnirelmannDensity_univ Modified Mathlib/Data/Nat/Order/Basic.lean + theorem Nat.one_mod_of_ne_one Modified docs/references.bib 2023-12-13 06:01:08 f7c6fc1 feat: Hermite-Minkowski theorem (#8478) We prove lower bounds for the abs. value of the discriminant of a number field in terms of its degree and deduce from it Hermite-Minkowski theorem: a nontrivial number field has nontrivial absolute discriminant. ```lean theorem abs_discr_ge (h : 1 < finrank ℚ K) : (4 / 9 : ℝ) * (3 * π / 4) ^ finrank ℚ K ≤ |discr K| theorem discr_gt_one (h : 1 < finrank ℚ K) : 2 < |discr K| ``` ESTIMATED CHANGES Modified Mathlib/NumberTheory/NumberField/CanonicalEmbedding.lean + theorem NumberField.mixedEmbedding.convexBodySumFactor_ne_top + theorem NumberField.mixedEmbedding.convexBodySumFactor_ne_zero + theorem NumberField.mixedEmbedding.convexBodySumFun_add_le + theorem NumberField.mixedEmbedding.convexBodySumFun_continuous + theorem NumberField.mixedEmbedding.convexBodySumFun_eq_zero_iff + theorem NumberField.mixedEmbedding.convexBodySumFun_neg + theorem NumberField.mixedEmbedding.convexBodySumFun_nonneg + theorem NumberField.mixedEmbedding.convexBodySumFun_smul + theorem NumberField.mixedEmbedding.convexBodySum_compact - theorem NumberField.mixedEmbedding.convexBodySum_empty + theorem NumberField.mixedEmbedding.convexBodySum_isBounded +/- theorem NumberField.mixedEmbedding.convexBodySum_symmetric + theorem NumberField.mixedEmbedding.convexBodySum_volume + theorem NumberField.mixedEmbedding.convexBodySum_volume_eq_zero_of_le_zero + theorem NumberField.mixedEmbedding.minkowskiBound_pos + theorem NumberField.mixedEmbedding.norm_le_convexBodySumFun Modified Mathlib/NumberTheory/NumberField/Discriminant.lean + theorem NumberField.abs_discr_ge + theorem NumberField.discr_gt_one + theorem NumberField.exists_ne_zero_mem_ringOfIntegers_of_norm_le_mul_sqrt_discr 2023-12-13 00:39:19 681a4da feat: homomorphisms are linear over Z/nZ scalars (#8965) Port from PFR for using linear algebra on C_2^n, following the convention of `AddMonoidHom.to{Int,Nat,Rat}LinearMap` but in a different file to avoid circular import. For a separate PR: ```lean @[reducible] def module (h : ∀ (x : M), n • x = 0) : Module (ZMod n) M ``` ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Data/ZMod/Module.lean + theorem AddMonoidHom.coe_toZModLinearMap + def AddMonoidHom.toZModLinearMap + theorem AddMonoidHom.toZModLinearMap_injective: + theorem ZMod.map_smul 2023-12-13 00:15:27 d14945b chore: remove now-unneeded line that worked around linarith preprocessing bug (#9009) After #8310, the workaround in `eq_zero_of_d_neg` is no longer needed. I observed (via trace.profiler) no performance difference with this change. ESTIMATED CHANGES Modified Mathlib/NumberTheory/Pell.lean 2023-12-13 00:15:26 3889cd2 chore: fix number of runs of "open Mathlib" benchmark (#8891) ESTIMATED CHANGES Modified scripts/bench/temci-config.run.yml Modified scripts/bench/temci-config.yml 2023-12-13 00:15:25 ef12d9d feat: matroid duality (#8732) This PR adds the definition of the dual of a matroid and co-independent sets, as well as some notation and API. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Data/Matroid/Basic.lean Added Mathlib/Data/Matroid/Dual.lean + theorem Matroid.Base.compl_base_dual + theorem Matroid.Base.compl_base_of_dual + theorem Matroid.Base.compl_inter_basis_of_inter_basis + theorem Matroid.Base.inter_basis_iff_compl_inter_basis_dual + theorem Matroid.Base.ssubset_ground + theorem Matroid.Coindep.exists_base_subset_compl + theorem Matroid.Coindep.exists_subset_compl_base + theorem Matroid.Coindep.indep + theorem Matroid.Coindep.subset_ground + theorem Matroid.Indep.coindep + theorem Matroid.Indep.ssubset_ground + theorem Matroid.base_iff_dual_base_compl + theorem Matroid.coindep_def + theorem Matroid.coindep_iff_exists' + theorem Matroid.coindep_iff_exists + theorem Matroid.coindep_iff_subset_compl_base + def Matroid.dual + def Matroid.dualIndepMatroid + theorem Matroid.dual_base_iff' + theorem Matroid.dual_base_iff + theorem Matroid.dual_coindep_iff + theorem Matroid.dual_dep_iff_forall + theorem Matroid.dual_dual + theorem Matroid.dual_ground + theorem Matroid.dual_indep_iff_exists' + theorem Matroid.dual_indep_iff_exists + theorem Matroid.dual_inj + theorem Matroid.dual_injective + theorem Matroid.dual_involutive + theorem Matroid.eq_dual_comm + theorem Matroid.eq_dual_iff_dual_eq + theorem Matroid.ground_not_base + theorem Matroid.setOf_dual_base_eq Modified Mathlib/Data/Matroid/IndepAxioms.lean 2023-12-12 23:03:49 416fba9 fix: remove references to Nat.pow outside of tactic code (#9008) ESTIMATED CHANGES Modified Mathlib/Data/Nat/Factorization/Basic.lean Modified Mathlib/NumberTheory/Divisors.lean 2023-12-12 23:03:48 a6c8a98 feat: primality criteria for `Monoid.exponent` (#8723) This PR shows a few facts related to `Monoid.exponent`, especially when it is prime: 1. A nontrivial finite cancellative monoid has exponent greater than 1. 2. A nontrivial monoid has prime exponent `p` if and only if every non-identity element has order `p`. 3. A group of order `p ^ 2` with `p` prime is not cyclic if and only if it has exponent `p`. ESTIMATED CHANGES Modified Mathlib/Algebra/GroupPower/Basic.lean + theorem eq_zero_or_one_of_sq_eq_self Modified Mathlib/GroupTheory/Exponent.lean + theorem Group.one_lt_exponent + theorem Monoid.exponent_eq_prime_iff Modified Mathlib/GroupTheory/SpecificGroups/Cyclic.lean + theorem not_isCyclic_iff_exponent_eq_prime 2023-12-12 22:29:23 3cfc8ef chore: make `Complex.ext` only a local `ext` lemma (#9010) In accordance with this [Zulip thread](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/Complex.2Eext/near/393560116), this remove `Complex.ext` from the global `ext` attribute list and only enables it locally in certain files. ESTIMATED CHANGES Modified Mathlib/Analysis/InnerProductSpace/TwoDim.lean Modified Mathlib/Analysis/SpecialFunctions/Complex/Arg.lean Modified Mathlib/Data/Complex/Basic.lean Modified Mathlib/Data/Complex/Exponential.lean Modified Mathlib/Data/Complex/Module.lean Modified Mathlib/Data/Complex/Order.lean Modified Mathlib/FieldTheory/PolynomialGaloisGroup.lean Modified Mathlib/MeasureTheory/Decomposition/SignedLebesgue.lean Modified Mathlib/NumberTheory/NumberField/Embeddings.lean Modified Mathlib/RingTheory/Polynomial/Cyclotomic/Eval.lean 2023-12-12 21:55:05 27afdd8 feat: add aliases and a simple lemma for spectrum (#8986) ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/Spectrum.lean + theorem spectrum.subset_singleton_zero_compl 2023-12-12 19:59:15 cc5a723 feat: add `StarAlgHom.ofId` (#8993) ESTIMATED CHANGES Modified Mathlib/Algebra/Star/StarAlgHom.lean + def StarAlgHom.ofId 2023-12-12 19:59:14 15f6474 feat({ Tactic + test }/MoveAdd): make `And/Or` left-associative (#8607) In this [Zulip discussion](https://leanprover.zulipchat.com/#narrow/stream/113489-new-members/topic/move_oper.20.20HAnd.2EhAnd.3F/near/403820462) it was pointed out that `move_oper` always assumes right-associativity also for `And/Or`. This PR makes `move_oper` left-associative on `And/Or`. Affected files: ```bash Tactic/MoveAdd test/MoveAdd ``` ESTIMATED CHANGES Modified Mathlib/Tactic/MoveAdd.lean +/- def Mathlib.MoveAdd.sumList Modified test/MoveAdd.lean 2023-12-12 19:36:44 aa38bca test: port some continuity tests from mathlib3 (#8985) ESTIMATED CHANGES Modified test/Continuity.lean 2023-12-12 16:52:56 a9f7e64 feat: add `star` instances for `ℝ≥0` (#8988) ESTIMATED CHANGES Modified Mathlib/Data/Real/NNReal.lean Modified Mathlib/Topology/Instances/NNReal.lean 2023-12-12 16:52:55 114d3b7 chore: remove workaround natEmbeddingAux_injective_aux in Data.Fintype.Card (#8501) Data.Fintype.Card was ported in #1668. After that, `wlog` was added in #2144. This means that we can now avoid needing the private workaround theorem `natEmbeddingAux_injective_aux`. ESTIMATED CHANGES Modified Mathlib/Data/Fintype/Card.lean 2023-12-12 15:39:16 31536e6 fix(Logic/Equiv/Set): fix `simpNF` (#9002) This was not a false positive becahse `h` appears in the RHS, so `simp` had no way to apply the lemma if it has some other proof of `f x ∈ f '' s`. ESTIMATED CHANGES Modified Mathlib/Logic/Equiv/Set.lean 2023-12-12 15:39:15 55d4437 feat: Define dual submodule wrt bilinear form (#8997) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/LinearAlgebra/BilinearForm/Basic.lean + theorem BilinForm.smul_left_of_tower + theorem BilinForm.smul_right_of_tower Added Mathlib/LinearAlgebra/BilinearForm/DualLattice.lean + def BilinForm.dualSubmodule + def BilinForm.dualSubmoduleParing + theorem BilinForm.dualSubmoduleParing_spec + def BilinForm.dualSubmoduleToDual + theorem BilinForm.dualSubmoduleToDual_injective + theorem BilinForm.dualSubmodule_dualSubmodule_flip_of_basis + theorem BilinForm.dualSubmodule_dualSubmodule_of_basis + theorem BilinForm.dualSubmodule_flip_dualSubmodule_of_basis + theorem BilinForm.dualSubmodule_span_of_basis + theorem BilinForm.le_flip_dualSubmodule + theorem BilinForm.mem_dualSubmodule Modified Mathlib/LinearAlgebra/BilinearForm/Properties.lean + theorem BilinForm.Nondegenerate.flip + theorem BilinForm.dualBasis_dualBasis + theorem BilinForm.dualBasis_dualBasis_flip + theorem BilinForm.dualBasis_flip_dualBasis + theorem BilinForm.nonDegenerateFlip_iff 2023-12-12 14:35:51 5497c1c feat: Strict Jensen inequality (#8972) and equality case From PFR ESTIMATED CHANGES Modified Mathlib/Algebra/BigOperators/Basic.lean +/- theorem Finset.prod_filter_ne_one Modified Mathlib/Analysis/Convex/Jensen.lean + theorem ConcaveOn.map_add_sum_le + theorem ConvexOn.map_add_sum_le + theorem StrictConcaveOn.eq_of_map_sum_eq + theorem StrictConcaveOn.lt_map_sum + theorem StrictConcaveOn.map_sum_eq_iff' + theorem StrictConcaveOn.map_sum_eq_iff + theorem StrictConvexOn.eq_of_le_map_sum + theorem StrictConvexOn.map_sum_eq_iff' + theorem StrictConvexOn.map_sum_eq_iff + theorem StrictConvexOn.map_sum_lt Modified Mathlib/Data/Finset/Option.lean + theorem Finset.forall_mem_eraseNone + theorem Finset.forall_mem_insertNone Modified Mathlib/RingTheory/HahnSeries.lean 2023-12-12 12:47:15 8e572f2 docs(Algebra/Order/Ring/Defs): tiny `IsDomain` corrections (#8489) ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Ring/Defs.lean 2023-12-12 11:45:53 669cc3a feat: definition of reflections and root system uniqueness lemma (#8981) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/LinearAlgebra/FiniteSpan.lean + theorem LinearEquiv.isOfFinOrder_of_finite_of_span_eq_top_of_mapsTo Added Mathlib/LinearAlgebra/Reflection.lean + theorem Module.Dual.eq_of_preReflection_mapsTo' + theorem Module.Dual.eq_of_preReflection_mapsTo + theorem Module.involutive_preReflection + theorem Module.involutive_reflection + def Module.preReflection + theorem Module.preReflection_apply + theorem Module.preReflection_apply_self + theorem Module.preReflection_preReflection + def Module.reflection + theorem Module.reflection_apply + theorem Module.reflection_apply_self + theorem Module.reflection_symm 2023-12-12 11:45:52 9153d27 feat: `LinearMap.submoduleMap` (#8963) Re-opening #8923 since that was from a fork. ESTIMATED CHANGES Modified Mathlib/Algebra/Module/Submodule/Map.lean + def LinearMap.submoduleMap + theorem LinearMap.submoduleMap_coe_apply + theorem LinearMap.submoduleMap_surjective 2023-12-12 11:00:46 3a722fd feat(Data/Set/Pointwise/Interval): inclusions of pointwise +/* (#8368) As remarked in the docstring, to avoid an explosion of lemmas, the subset operations only cover the cases with the largest possible intervals on the LHS: to conclude that `Ioo a b * Ioo c d ⊆ Ioo (a * c) (c * d)`, you can use monotonicity of `*` and `Finset.Ico_mul_Ioc_subset`. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Data/Finset/Pointwise/Interval.lean + theorem Finset.Icc_mul_Icc_subset' + theorem Finset.Icc_mul_Ico_subset' + theorem Finset.Ici_mul_Ici_subset' + theorem Finset.Ici_mul_Ioi_subset' + theorem Finset.Ico_mul_Icc_subset' + theorem Finset.Ico_mul_Ioc_subset' + theorem Finset.Iic_mul_Iic_subset' + theorem Finset.Iic_mul_Iio_subset' + theorem Finset.Iio_mul_Iic_subset' + theorem Finset.Ioc_mul_Ico_subset' + theorem Finset.Ioi_mul_Ici_subset' Modified Mathlib/Data/Set/Pointwise/Interval.lean + theorem Set.Icc_mul_Icc_subset' + theorem Set.Icc_mul_Ico_subset' + theorem Set.Ici_mul_Ici_subset' + theorem Set.Ici_mul_Ioi_subset' + theorem Set.Ico_mul_Icc_subset' + theorem Set.Ico_mul_Ioc_subset' + theorem Set.Iic_mul_Iic_subset' + theorem Set.Iic_mul_Iio_subset' + theorem Set.Iio_mul_Iic_subset' + theorem Set.Ioc_mul_Ico_subset' + theorem Set.Ioi_mul_Ici_subset' 2023-12-12 09:55:05 8a3329c feat: The descending factorial in `ZMod` (#8465) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Data/ZMod/Factorial.lean + theorem ZMod.cast_descFactorial 2023-12-12 09:17:49 2dd59ba chore: address porting notes in Archive.Wiedijk100Theorems.Partition (#8499) `convert` no longer hits a timeout here. ESTIMATED CHANGES Modified Archive/Wiedijk100Theorems/Partition.lean 2023-12-12 08:19:34 0688c2d chore: rename `StarSemigroup.to_starModule` (#8994) ESTIMATED CHANGES Modified Mathlib/Algebra/Star/Basic.lean 2023-12-12 07:55:33 b4f0e65 feat(Mathlib/Control/Random): enhance to a monad transformer (#8876) This follows the pattern that is already present in the haskell version ESTIMATED CHANGES Modified Mathlib/Control/Random.lean +/- def IO.runRand +/- def IO.runRandWith +/- def Rand.next +/- def Rand.range +/- def Rand.split +/- def Random.rand +/- def Random.randBool +/- def Random.randBound +/- def Random.randFin Modified Mathlib/Testing/SlimCheck/Gen.lean +/- def SlimCheck.Gen.choose +/- def SlimCheck.Gen.chooseAny Modified Mathlib/Testing/SlimCheck/Testable.lean Added test/random.lean 2023-12-12 07:30:31 1c9929f feat : direct limit and tensor product commutes (#8473) Given a family of $R$-module $G_i$'s and compatible $f : G_i \to G_j$ whenever $i \le j$ and $M$ another $R$-module, we have $\lim G_i \otimes M \cong \lim (G_i \otimes M)$ ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Module/DirectLimitAndTensorProduct.lean + theorem TensorProduct.directLimitLeft_symm_of_tmul + theorem TensorProduct.directLimitLeft_tmul_of + theorem TensorProduct.directLimitRight_symm_of_tmul + theorem TensorProduct.directLimitRight_tmul_of + theorem TensorProduct.fromDirectLimit_of_tmul + theorem TensorProduct.toDirectLimit_tmul_of 2023-12-12 02:48:22 00056bc chore: bump std to leanprover/lean4#429 (#8990) ESTIMATED CHANGES Modified Mathlib/Data/List/Perm.lean - theorem List.singleton_subperm_iff - theorem List.subperm_singleton_iff' + theorem List.subperm_singleton_iff Modified Mathlib/Data/Multiset/Basic.lean Modified lake-manifest.json 2023-12-12 01:09:25 8ec98e4 refactor(Control/ULiftable): use `outParam` and adjust universe orders (#8849) The most useful universe argument to `up` and `down` (the one in the `ULift` type) is now first. Combined with the `outParam`, this makes using `ULiftable.up` more ergonomic downstream, removing a handful of type annotations. ESTIMATED CHANGES Modified Mathlib/Control/Random.lean Modified Mathlib/Control/ULiftable.lean +/- def ULiftable.down +/- def ULiftable.up Modified Mathlib/Testing/SlimCheck/Functions.lean Modified Mathlib/Testing/SlimCheck/Gen.lean 2023-12-11 22:56:50 e8acc5c feat: supporting lemmas for defining root systems (#8980) A collection of loosely-related lemmas, split out from other work in the hopes of simplifying review. ESTIMATED CHANGES Modified Mathlib/Algebra/Module/Basic.lean + theorem CharZero.of_noZeroSMulDivisors + theorem NoZeroSMulDivisors.int_of_charZero Modified Mathlib/Algebra/Module/Equiv.lean + theorem LinearEquiv.coe_one + theorem LinearEquiv.coe_pow + theorem LinearEquiv.coe_toLinearMap_mul + theorem LinearEquiv.coe_toLinearMap_one + theorem LinearEquiv.pow_apply Modified Mathlib/Algebra/Module/LinearMap.lean + theorem LinearMap.smulRight_apply_eq_zero_iff + theorem LinearMap.smulRight_zero + theorem LinearMap.zero_smulRight Modified Mathlib/Data/Finite/Card.lean + theorem Set.Finite.card_lt_card + theorem Set.Finite.eq_of_subset_of_card_le + theorem Set.Finite.equiv_image_eq_iff_subset Modified Mathlib/Data/Set/Finite.lean + theorem Set.Finite.injOn_iff_bijOn_of_mapsTo + theorem Set.Finite.surjOn_iff_bijOn_of_mapsTo Modified Mathlib/Data/Set/Function.lean + theorem Equiv.image_eq_iff_bijOn + theorem Set.MapsTo.coe_iterate_restrict Modified Mathlib/Data/Set/Image.lean + theorem Set.image_comp_eq + theorem Set.image_id_eq + theorem Set.image_iterate_eq + theorem Set.image_mono Modified Mathlib/Dynamics/FixedPoints/Basic.lean + theorem Function.IsFixedPt.image_iterate Modified Mathlib/GroupTheory/OrderOfElement.lean + theorem Function.Injective.isOfFinOrder_iff Modified Mathlib/GroupTheory/Subgroup/ZPowers.lean + theorem Int.zmultiples_one Modified Mathlib/LinearAlgebra/Span.lean + theorem Submodule.span_setOf_mem_eq_top 2023-12-11 21:49:33 f2f86bd feat(Algebra/Module): use `notation3` for composition notation (#8847) This means that `comp` is printed with this notation in the goal view. ESTIMATED CHANGES Modified Mathlib/Algebra/Module/Equiv.lean Modified Mathlib/Algebra/Module/LinearMap.lean 2023-12-11 20:54:43 bbc6e56 chore: rename LocalHomeomorph to PartialHomeomorph (#8982) `LocalHomeomorph` evokes a "local homeomorphism": this is *not* what this means. Instead, this is a homeomorphism on an open set of the domain (extended to the whole space, by the junk value pattern). Hence, partial homeomorphism is more appropriate, and avoids confusion with `IsLocallyHomeomorph`. A future PR will rename `LocalEquiv` to `PartialEquiv`. [Zulip discussion](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/Naming.20around.20local.20homeomorphisms/near/407090631) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Analysis/Asymptotics/Asymptotics.lean - theorem LocalHomeomorph.isBigOWith_congr - theorem LocalHomeomorph.isBigO_congr - theorem LocalHomeomorph.isLittleO_congr + theorem PartialHomeomorph.isBigOWith_congr + theorem PartialHomeomorph.isBigO_congr + theorem PartialHomeomorph.isLittleO_congr Modified Mathlib/Analysis/Calculus/ContDiff/Basic.lean - theorem LocalHomeomorph.contDiffAt_symm - theorem LocalHomeomorph.contDiffAt_symm_deriv - theorem LocalHomeomorph.contDiffOn_restrContDiff_source - theorem LocalHomeomorph.contDiffOn_restrContDiff_target - def LocalHomeomorph.restrContDiff + theorem PartialHomeomorph.contDiffAt_symm + theorem PartialHomeomorph.contDiffAt_symm_deriv + theorem PartialHomeomorph.contDiffOn_restrContDiff_source + theorem PartialHomeomorph.contDiffOn_restrContDiff_target + def PartialHomeomorph.restrContDiff Modified Mathlib/Analysis/Calculus/Deriv/Inverse.lean - theorem LocalHomeomorph.hasDerivAt_symm - theorem LocalHomeomorph.hasStrictDerivAt_symm + theorem PartialHomeomorph.hasDerivAt_symm + theorem PartialHomeomorph.hasStrictDerivAt_symm Modified Mathlib/Analysis/Calculus/FDeriv/Equiv.lean - theorem LocalHomeomorph.hasFDerivAt_symm - theorem LocalHomeomorph.hasStrictFDerivAt_symm + theorem PartialHomeomorph.hasFDerivAt_symm + theorem PartialHomeomorph.hasStrictFDerivAt_symm Modified Mathlib/Analysis/Calculus/Implicit.lean - def HasStrictFDerivAt.implicitToLocalHomeomorph - def HasStrictFDerivAt.implicitToLocalHomeomorphOfComplemented - theorem HasStrictFDerivAt.implicitToLocalHomeomorphOfComplemented_apply - theorem HasStrictFDerivAt.implicitToLocalHomeomorphOfComplemented_apply_ker - theorem HasStrictFDerivAt.implicitToLocalHomeomorphOfComplemented_fst - theorem HasStrictFDerivAt.implicitToLocalHomeomorphOfComplemented_self - theorem HasStrictFDerivAt.implicitToLocalHomeomorph_apply_ker - theorem HasStrictFDerivAt.implicitToLocalHomeomorph_fst - theorem HasStrictFDerivAt.implicitToLocalHomeomorph_self + def HasStrictFDerivAt.implicitToPartialHomeomorph + def HasStrictFDerivAt.implicitToPartialHomeomorphOfComplemented + theorem HasStrictFDerivAt.implicitToPartialHomeomorphOfComplemented_apply + theorem HasStrictFDerivAt.implicitToPartialHomeomorphOfComplemented_apply_ker + theorem HasStrictFDerivAt.implicitToPartialHomeomorphOfComplemented_fst + theorem HasStrictFDerivAt.implicitToPartialHomeomorphOfComplemented_self + theorem HasStrictFDerivAt.implicitToPartialHomeomorph_apply_ker + theorem HasStrictFDerivAt.implicitToPartialHomeomorph_fst + theorem HasStrictFDerivAt.implicitToPartialHomeomorph_self - theorem HasStrictFDerivAt.mem_implicitToLocalHomeomorphOfComplemented_source - theorem HasStrictFDerivAt.mem_implicitToLocalHomeomorphOfComplemented_target - theorem HasStrictFDerivAt.mem_implicitToLocalHomeomorph_source - theorem HasStrictFDerivAt.mem_implicitToLocalHomeomorph_target + theorem HasStrictFDerivAt.mem_implicitToPartialHomeomorphOfComplemented_source + theorem HasStrictFDerivAt.mem_implicitToPartialHomeomorphOfComplemented_target + theorem HasStrictFDerivAt.mem_implicitToPartialHomeomorph_source + theorem HasStrictFDerivAt.mem_implicitToPartialHomeomorph_target - theorem ImplicitFunctionData.map_pt_mem_toLocalHomeomorph_target + theorem ImplicitFunctionData.map_pt_mem_toPartialHomeomorph_target - theorem ImplicitFunctionData.pt_mem_toLocalHomeomorph_source + theorem ImplicitFunctionData.pt_mem_toPartialHomeomorph_source - def ImplicitFunctionData.toLocalHomeomorph - theorem ImplicitFunctionData.toLocalHomeomorph_apply - theorem ImplicitFunctionData.toLocalHomeomorph_coe + def ImplicitFunctionData.toPartialHomeomorph + theorem ImplicitFunctionData.toPartialHomeomorph_apply + theorem ImplicitFunctionData.toPartialHomeomorph_coe Modified Mathlib/Analysis/Calculus/InverseFunctionTheorem/ApproximatesLinearOn.lean - def ApproximatesLinearOn.toLocalHomeomorph - theorem ApproximatesLinearOn.toLocalHomeomorph_coe - theorem ApproximatesLinearOn.toLocalHomeomorph_source - theorem ApproximatesLinearOn.toLocalHomeomorph_target + def ApproximatesLinearOn.toPartialHomeomorph + theorem ApproximatesLinearOn.toPartialHomeomorph_coe + theorem ApproximatesLinearOn.toPartialHomeomorph_source + theorem ApproximatesLinearOn.toPartialHomeomorph_target Modified Mathlib/Analysis/Calculus/InverseFunctionTheorem/ContDiff.lean - theorem ContDiffAt.image_mem_toLocalHomeomorph_target + theorem ContDiffAt.image_mem_toPartialHomeomorph_target - theorem ContDiffAt.mem_toLocalHomeomorph_source + theorem ContDiffAt.mem_toPartialHomeomorph_source - def ContDiffAt.toLocalHomeomorph - theorem ContDiffAt.toLocalHomeomorph_coe + def ContDiffAt.toPartialHomeomorph + theorem ContDiffAt.toPartialHomeomorph_coe Modified Mathlib/Analysis/Calculus/InverseFunctionTheorem/FDeriv.lean - theorem HasStrictFDerivAt.image_mem_toLocalHomeomorph_target + theorem HasStrictFDerivAt.image_mem_toPartialHomeomorph_target - theorem HasStrictFDerivAt.mem_toLocalHomeomorph_source + theorem HasStrictFDerivAt.mem_toPartialHomeomorph_source - def HasStrictFDerivAt.toLocalHomeomorph - theorem HasStrictFDerivAt.toLocalHomeomorph_coe + def HasStrictFDerivAt.toPartialHomeomorph + theorem HasStrictFDerivAt.toPartialHomeomorph_coe Modified Mathlib/Analysis/InnerProductSpace/Calculus.lean - theorem LocalHomeomorph.contDiffOn_univBall_symm - theorem LocalHomeomorph.contDiffOn_univUnitBall_symm - theorem LocalHomeomorph.contDiff_unitBallBall - theorem LocalHomeomorph.contDiff_unitBallBall_symm - theorem LocalHomeomorph.contDiff_univBall - theorem LocalHomeomorph.contDiff_univUnitBall + theorem PartialHomeomorph.contDiffOn_univBall_symm + theorem PartialHomeomorph.contDiffOn_univUnitBall_symm + theorem PartialHomeomorph.contDiff_unitBallBall + theorem PartialHomeomorph.contDiff_unitBallBall_symm + theorem PartialHomeomorph.contDiff_univBall + theorem PartialHomeomorph.contDiff_univUnitBall Modified Mathlib/Analysis/NormedSpace/HomeomorphBall.lean - theorem LocalHomeomorph.ball_subset_univBall_target - theorem LocalHomeomorph.continuousOn_univBall_symm - theorem LocalHomeomorph.continuous_univBall - def LocalHomeomorph.unitBallBall - def LocalHomeomorph.univBall - theorem LocalHomeomorph.univBall_apply_zero - theorem LocalHomeomorph.univBall_source - theorem LocalHomeomorph.univBall_symm_apply_center - theorem LocalHomeomorph.univBall_target - def LocalHomeomorph.univUnitBall - theorem LocalHomeomorph.univUnitBall_apply_zero - theorem LocalHomeomorph.univUnitBall_symm_apply_zero + theorem PartialHomeomorph.ball_subset_univBall_target + theorem PartialHomeomorph.continuousOn_univBall_symm + theorem PartialHomeomorph.continuous_univBall + def PartialHomeomorph.unitBallBall + def PartialHomeomorph.univBall + theorem PartialHomeomorph.univBall_apply_zero + theorem PartialHomeomorph.univBall_source + theorem PartialHomeomorph.univBall_symm_apply_center + theorem PartialHomeomorph.univBall_target + def PartialHomeomorph.univUnitBall + theorem PartialHomeomorph.univUnitBall_apply_zero + theorem PartialHomeomorph.univUnitBall_symm_apply_zero Modified Mathlib/Analysis/NormedSpace/SphereNormEquiv.lean Modified Mathlib/Analysis/SpecialFunctions/Arsinh.lean Modified Mathlib/Analysis/SpecialFunctions/Complex/LogDeriv.lean Modified Mathlib/Analysis/SpecialFunctions/PolarCoord.lean +/- def polarCoord Modified Mathlib/Analysis/SpecialFunctions/Sqrt.lean Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Arctan.lean - theorem Real.coe_tanLocalHomeomorph - theorem Real.coe_tanLocalHomeomorph_symm + theorem Real.coe_tanPartialHomeomorph + theorem Real.coe_tanPartialHomeomorph_symm - def Real.tanLocalHomeomorph + def Real.tanPartialHomeomorph Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/ArctanDeriv.lean Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Inverse.lean - def Real.sinLocalHomeomorph + def Real.sinPartialHomeomorph Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/InverseDeriv.lean Modified Mathlib/Geometry/Manifold/ChartedSpace.lean - def LocalHomeomorph.singletonChartedSpace - theorem LocalHomeomorph.singletonChartedSpace_chartAt_eq - theorem LocalHomeomorph.singletonChartedSpace_chartAt_source - theorem LocalHomeomorph.singletonChartedSpace_mem_atlas_eq - theorem LocalHomeomorph.singleton_hasGroupoid + def PartialHomeomorph.singletonChartedSpace + theorem PartialHomeomorph.singletonChartedSpace_chartAt_eq + theorem PartialHomeomorph.singletonChartedSpace_chartAt_source + theorem PartialHomeomorph.singletonChartedSpace_mem_atlas_eq + theorem PartialHomeomorph.singleton_hasGroupoid +/- theorem StructureGroupoid.compatible_of_mem_maximalAtlas +/- theorem StructureGroupoid.eq_on_source +/- theorem StructureGroupoid.id_mem +/- theorem StructureGroupoid.id_mem_maximalAtlas +/- theorem StructureGroupoid.locality +/- def StructureGroupoid.maximalAtlas +/- theorem StructureGroupoid.mem_maximalAtlas_of_mem_groupoid +/- theorem StructureGroupoid.symm +/- theorem StructureGroupoid.trans +/- theorem chartedSpaceSelf_atlas +/- theorem coe_achart +/- theorem hasGroupoid_of_pregroupoid +/- theorem mem_groupoid_of_pregroupoid +/- theorem mem_maximalAtlas_iff +/- theorem mem_pregroupoid_of_eq_on_source Modified Mathlib/Geometry/Manifold/ContMDiff/Atlas.lean +/- theorem contMDiffOn_of_mem_contDiffGroupoid +/- theorem isLocalStructomorphOn_contDiffGroupoid_iff +/- theorem isLocalStructomorphOn_contDiffGroupoid_iff_aux Modified Mathlib/Geometry/Manifold/ContMDiff/Basic.lean Modified Mathlib/Geometry/Manifold/ContMDiff/Defs.lean Modified Mathlib/Geometry/Manifold/ContMDiff/Product.lean Modified Mathlib/Geometry/Manifold/ContMDiffMFDeriv.lean Modified Mathlib/Geometry/Manifold/Diffeomorph.lean - theorem Diffeomorph.toLocalHomeomorph_mdifferentiable + theorem Diffeomorph.toPartialHomeomorph_mdifferentiable Modified Mathlib/Geometry/Manifold/Instances/Real.lean Modified Mathlib/Geometry/Manifold/Instances/Sphere.lean +/- def stereographic Modified Mathlib/Geometry/Manifold/LocalInvariantProperties.lean - theorem LocalHomeomorph.isLocalStructomorphWithinAt_iff' - theorem LocalHomeomorph.isLocalStructomorphWithinAt_iff - theorem LocalHomeomorph.isLocalStructomorphWithinAt_source_iff + theorem PartialHomeomorph.isLocalStructomorphWithinAt_iff' + theorem PartialHomeomorph.isLocalStructomorphWithinAt_iff + theorem PartialHomeomorph.isLocalStructomorphWithinAt_source_iff +/- theorem StructureGroupoid.LocalInvariantProp.left_invariance +/- theorem StructureGroupoid.LocalInvariantProp.liftPropWithinAt_indep_chart_target_aux +/- theorem StructureGroupoid.LocalInvariantProp.right_invariance Modified Mathlib/Geometry/Manifold/MFDeriv.lean - theorem LocalHomeomorph.MDifferentiable.comp_symm_deriv - theorem LocalHomeomorph.MDifferentiable.ker_mfderiv_eq_bot - theorem LocalHomeomorph.MDifferentiable.mdifferentiableAt_symm - theorem LocalHomeomorph.MDifferentiable.mfderiv_bijective - theorem LocalHomeomorph.MDifferentiable.mfderiv_injective - theorem LocalHomeomorph.MDifferentiable.mfderiv_surjective - theorem LocalHomeomorph.MDifferentiable.range_mfderiv_eq_top - theorem LocalHomeomorph.MDifferentiable.range_mfderiv_eq_univ - theorem LocalHomeomorph.MDifferentiable.symm_comp_deriv - theorem LocalHomeomorph.MDifferentiable.trans - def LocalHomeomorph.MDifferentiable + theorem PartialHomeomorph.MDifferentiable.comp_symm_deriv + theorem PartialHomeomorph.MDifferentiable.ker_mfderiv_eq_bot + theorem PartialHomeomorph.MDifferentiable.mdifferentiableAt_symm + theorem PartialHomeomorph.MDifferentiable.mfderiv_bijective + theorem PartialHomeomorph.MDifferentiable.mfderiv_injective + theorem PartialHomeomorph.MDifferentiable.mfderiv_surjective + theorem PartialHomeomorph.MDifferentiable.range_mfderiv_eq_top + theorem PartialHomeomorph.MDifferentiable.range_mfderiv_eq_univ + theorem PartialHomeomorph.MDifferentiable.symm_comp_deriv + theorem PartialHomeomorph.MDifferentiable.trans + def PartialHomeomorph.MDifferentiable +/- theorem UniqueMDiffOn.uniqueMDiffOn_preimage Modified Mathlib/Geometry/Manifold/PartitionOfUnity.lean Modified Mathlib/Geometry/Manifold/SmoothManifoldWithCorners.lean - theorem LocalHomeomorph.contDiffOn_extend_coord_change - theorem LocalHomeomorph.contDiffWithinAt_extend_coord_change' - theorem LocalHomeomorph.contDiffWithinAt_extend_coord_change - theorem LocalHomeomorph.continuousAt_extend - theorem LocalHomeomorph.continuousAt_extend_symm' - theorem LocalHomeomorph.continuousAt_extend_symm - theorem LocalHomeomorph.continuousOn_extend - theorem LocalHomeomorph.continuousOn_extend_symm - theorem LocalHomeomorph.continuousOn_writtenInExtend_iff - theorem LocalHomeomorph.continuousWithinAt_writtenInExtend_iff - def LocalHomeomorph.extend - theorem LocalHomeomorph.extend_coe - theorem LocalHomeomorph.extend_coe_symm - theorem LocalHomeomorph.extend_coord_change_source - theorem LocalHomeomorph.extend_coord_change_source_mem_nhdsWithin' - theorem LocalHomeomorph.extend_coord_change_source_mem_nhdsWithin - theorem LocalHomeomorph.extend_image_source_inter - theorem LocalHomeomorph.extend_left_inv' - theorem LocalHomeomorph.extend_left_inv - theorem LocalHomeomorph.extend_preimage_inter_eq - theorem LocalHomeomorph.extend_preimage_mem_nhds - theorem LocalHomeomorph.extend_preimage_mem_nhdsWithin - theorem LocalHomeomorph.extend_source - theorem LocalHomeomorph.extend_source_mem_nhds - theorem LocalHomeomorph.extend_source_mem_nhdsWithin - theorem LocalHomeomorph.extend_symm_continuousWithinAt_comp_right_iff - theorem LocalHomeomorph.extend_symm_preimage_inter_range_eventuallyEq - theorem LocalHomeomorph.extend_symm_preimage_inter_range_eventuallyEq_aux - theorem LocalHomeomorph.extend_target - theorem LocalHomeomorph.extend_target_mem_nhdsWithin - theorem LocalHomeomorph.extend_target_subset_range - theorem LocalHomeomorph.isOpen_extend_preimage' - theorem LocalHomeomorph.isOpen_extend_preimage - theorem LocalHomeomorph.isOpen_extend_source - theorem LocalHomeomorph.map_extend_nhds - theorem LocalHomeomorph.map_extend_nhdsWithin - theorem LocalHomeomorph.map_extend_nhdsWithin_eq_image - theorem LocalHomeomorph.map_extend_nhdsWithin_eq_image_of_subset - theorem LocalHomeomorph.map_extend_symm_nhdsWithin - theorem LocalHomeomorph.map_extend_symm_nhdsWithin_range - theorem LocalHomeomorph.mapsTo_extend - theorem LocalHomeomorph.nhdsWithin_extend_target_eq - theorem LocalHomeomorph.singleton_smoothManifoldWithCorners - theorem LocalHomeomorph.tendsto_extend_comp_iff +/- theorem ModelWithCorners.unique_diff_preimage_source + theorem PartialHomeomorph.contDiffOn_extend_coord_change + theorem PartialHomeomorph.contDiffWithinAt_extend_coord_change' + theorem PartialHomeomorph.contDiffWithinAt_extend_coord_change + theorem PartialHomeomorph.continuousAt_extend + theorem PartialHomeomorph.continuousAt_extend_symm' + theorem PartialHomeomorph.continuousAt_extend_symm + theorem PartialHomeomorph.continuousOn_extend + theorem PartialHomeomorph.continuousOn_extend_symm + theorem PartialHomeomorph.continuousOn_writtenInExtend_iff + theorem PartialHomeomorph.continuousWithinAt_writtenInExtend_iff + def PartialHomeomorph.extend + theorem PartialHomeomorph.extend_coe + theorem PartialHomeomorph.extend_coe_symm + theorem PartialHomeomorph.extend_coord_change_source + theorem PartialHomeomorph.extend_coord_change_source_mem_nhdsWithin' + theorem PartialHomeomorph.extend_coord_change_source_mem_nhdsWithin + theorem PartialHomeomorph.extend_image_source_inter + theorem PartialHomeomorph.extend_left_inv' + theorem PartialHomeomorph.extend_left_inv + theorem PartialHomeomorph.extend_preimage_inter_eq + theorem PartialHomeomorph.extend_preimage_mem_nhds + theorem PartialHomeomorph.extend_preimage_mem_nhdsWithin + theorem PartialHomeomorph.extend_source + theorem PartialHomeomorph.extend_source_mem_nhds + theorem PartialHomeomorph.extend_source_mem_nhdsWithin + theorem PartialHomeomorph.extend_symm_continuousWithinAt_comp_right_iff + theorem PartialHomeomorph.extend_symm_preimage_inter_range_eventuallyEq + theorem PartialHomeomorph.extend_symm_preimage_inter_range_eventuallyEq_aux + theorem PartialHomeomorph.extend_target + theorem PartialHomeomorph.extend_target_mem_nhdsWithin + theorem PartialHomeomorph.extend_target_subset_range + theorem PartialHomeomorph.isOpen_extend_preimage' + theorem PartialHomeomorph.isOpen_extend_preimage + theorem PartialHomeomorph.isOpen_extend_source + theorem PartialHomeomorph.map_extend_nhds + theorem PartialHomeomorph.map_extend_nhdsWithin + theorem PartialHomeomorph.map_extend_nhdsWithin_eq_image + theorem PartialHomeomorph.map_extend_nhdsWithin_eq_image_of_subset + theorem PartialHomeomorph.map_extend_symm_nhdsWithin + theorem PartialHomeomorph.map_extend_symm_nhdsWithin_range + theorem PartialHomeomorph.mapsTo_extend + theorem PartialHomeomorph.nhdsWithin_extend_target_eq + theorem PartialHomeomorph.singleton_smoothManifoldWithCorners + theorem PartialHomeomorph.tendsto_extend_comp_iff +/- theorem SmoothManifoldWithCorners.compatible_of_mem_maximalAtlas +/- theorem symm_trans_mem_analyticGroupoid +/- theorem symm_trans_mem_contDiffGroupoid Modified Mathlib/Geometry/Manifold/VectorBundle/Basic.lean Modified Mathlib/Geometry/Manifold/VectorBundle/FiberwiseLinear.lean +/- theorem SmoothFiberwiseLinear.locality_aux₁ +/- theorem SmoothFiberwiseLinear.locality_aux₂ +/- theorem mem_smoothFiberwiseLinear_iff Modified Mathlib/Geometry/Manifold/VectorBundle/Hom.lean Modified Mathlib/Geometry/Manifold/VectorBundle/Tangent.lean Modified Mathlib/Logic/Equiv/LocalEquiv.lean Modified Mathlib/MeasureTheory/Function/Jacobian.lean +/- theorem MeasureTheory.integral_target_eq_integral_abs_det_fderiv_smul Modified Mathlib/Topology/Covering.lean Modified Mathlib/Topology/FiberBundle/Basic.lean +/- def FiberBundleCore.trivChange Modified Mathlib/Topology/FiberBundle/Constructions.lean Modified Mathlib/Topology/FiberBundle/Trivialization.lean +/- theorem Trivialization.apply_symm_apply +/- theorem Trivialization.coe_coe +/- theorem Trivialization.coe_mk +/- theorem Trivialization.ext' +/- theorem Trivialization.map_target +/- theorem Trivialization.proj_symm_apply +/- theorem Trivialization.symm_apply_mk_proj +/- structure Trivialization Modified Mathlib/Topology/IsLocalHomeomorph.lean +/- theorem IsLocalHomeomorph.mk +/- theorem IsLocalHomeomorphOn.mk Renamed Mathlib/Topology/LocalHomeomorph.lean to Mathlib/Topology/PartialHomeomorph.lean - theorem Homeomorph.refl_toLocalHomeomorph + theorem Homeomorph.refl_toPartialHomeomorph - theorem Homeomorph.symm_toLocalHomeomorph + theorem Homeomorph.symm_toPartialHomeomorph - def Homeomorph.toLocalHomeomorph - def Homeomorph.toLocalHomeomorphOfImageEq + def Homeomorph.toPartialHomeomorph + def Homeomorph.toPartialHomeomorphOfImageEq - def Homeomorph.transLocalHomeomorph - theorem Homeomorph.transLocalHomeomorph_eq_trans + def Homeomorph.transPartialHomeomorph + theorem Homeomorph.transPartialHomeomorph_eq_trans - theorem Homeomorph.trans_toLocalHomeomorph + theorem Homeomorph.trans_toPartialHomeomorph - theorem LocalHomeomorph.EqOnSource.eqOn - theorem LocalHomeomorph.EqOnSource.restr - theorem LocalHomeomorph.EqOnSource.source_eq - theorem LocalHomeomorph.EqOnSource.symm' - theorem LocalHomeomorph.EqOnSource.symm_eqOn_target - theorem LocalHomeomorph.EqOnSource.target_eq - theorem LocalHomeomorph.EqOnSource.trans' - def LocalHomeomorph.EqOnSource - theorem LocalHomeomorph.IsImage.apply_mem_iff - theorem LocalHomeomorph.IsImage.iff_preimage_eq' - theorem LocalHomeomorph.IsImage.iff_preimage_eq - theorem LocalHomeomorph.IsImage.iff_symm_preimage_eq' - theorem LocalHomeomorph.IsImage.iff_symm_preimage_eq - theorem LocalHomeomorph.IsImage.image_eq - theorem LocalHomeomorph.IsImage.inter_eq_of_inter_eq_of_eqOn - theorem LocalHomeomorph.IsImage.isOpen_iff - theorem LocalHomeomorph.IsImage.leftInvOn_piecewise - theorem LocalHomeomorph.IsImage.map_nhdsWithin_eq - theorem LocalHomeomorph.IsImage.of_image_eq - theorem LocalHomeomorph.IsImage.of_symm_image_eq - def LocalHomeomorph.IsImage.restr - theorem LocalHomeomorph.IsImage.symm_apply_mem_iff - theorem LocalHomeomorph.IsImage.symm_eqOn_of_inter_eq_of_eqOn - theorem LocalHomeomorph.IsImage.symm_iff - theorem LocalHomeomorph.IsImage.symm_image_eq - theorem LocalHomeomorph.IsImage.symm_mapsTo - theorem LocalHomeomorph.IsImage.toLocalEquiv - def LocalHomeomorph.IsImage - theorem LocalHomeomorph.Set.EqOn.restr_eqOn_source - def LocalHomeomorph.Simps.apply - def LocalHomeomorph.Simps.symm_apply - theorem LocalHomeomorph.coe_coe - theorem LocalHomeomorph.coe_coe_symm - theorem LocalHomeomorph.coe_trans - theorem LocalHomeomorph.coe_trans_symm - theorem LocalHomeomorph.continuousAt_iff_continuousAt_comp_left - theorem LocalHomeomorph.continuousAt_iff_continuousAt_comp_right - theorem LocalHomeomorph.continuousAt_symm - theorem LocalHomeomorph.continuousOn_iff_continuousOn_comp_left - theorem LocalHomeomorph.continuousOn_iff_continuousOn_comp_right - theorem LocalHomeomorph.continuousOn_symm - theorem LocalHomeomorph.continuousWithinAt_iff_continuousWithinAt_comp_left - theorem LocalHomeomorph.continuousWithinAt_iff_continuousWithinAt_comp_right - theorem LocalHomeomorph.continuous_iff_continuous_comp_left - def LocalHomeomorph.disjointUnion - theorem LocalHomeomorph.eqOnSource_iff - theorem LocalHomeomorph.eqOnSource_refl - theorem LocalHomeomorph.eq_of_eqOnSource_univ - theorem LocalHomeomorph.eq_of_localEquiv_eq - theorem LocalHomeomorph.eq_symm_apply - theorem LocalHomeomorph.eventually_left_inverse' - theorem LocalHomeomorph.eventually_left_inverse - theorem LocalHomeomorph.eventually_ne_nhdsWithin - theorem LocalHomeomorph.eventually_nhds' - theorem LocalHomeomorph.eventually_nhds - theorem LocalHomeomorph.eventually_nhdsWithin' - theorem LocalHomeomorph.eventually_nhdsWithin - theorem LocalHomeomorph.eventually_right_inverse' - theorem LocalHomeomorph.eventually_right_inverse - def LocalHomeomorph.homeomorphOfImageSubsetSource - theorem LocalHomeomorph.image_eq_target_inter_inv_preimage - theorem LocalHomeomorph.image_isOpen_of_isOpen' - theorem LocalHomeomorph.image_isOpen_of_isOpen - theorem LocalHomeomorph.image_mem_nhds - theorem LocalHomeomorph.image_source_eq_target - theorem LocalHomeomorph.image_source_inter_eq' - theorem LocalHomeomorph.image_source_inter_eq - theorem LocalHomeomorph.image_trans_source - theorem LocalHomeomorph.invFun_eq_coe - theorem LocalHomeomorph.inv_image_trans_target - theorem LocalHomeomorph.isImage_source_target - theorem LocalHomeomorph.isImage_source_target_of_disjoint - theorem LocalHomeomorph.isOpen_image_of_subset_source - theorem LocalHomeomorph.isOpen_image_symm_of_subset_target - theorem LocalHomeomorph.isOpen_inter_preimage - theorem LocalHomeomorph.isOpen_inter_preimage_symm - theorem LocalHomeomorph.left_inv - theorem LocalHomeomorph.map_nhdsWithin_eq - theorem LocalHomeomorph.map_nhdsWithin_preimage_eq - theorem LocalHomeomorph.map_nhds_eq - theorem LocalHomeomorph.map_source'' - theorem LocalHomeomorph.map_source - theorem LocalHomeomorph.map_subtype_source - theorem LocalHomeomorph.map_target - theorem LocalHomeomorph.mk_coe - theorem LocalHomeomorph.mk_coe_symm - theorem LocalHomeomorph.nhdsWithin_source_inter - theorem LocalHomeomorph.nhdsWithin_target_inter - theorem LocalHomeomorph.nhds_eq_comap_inf_principal - def LocalHomeomorph.ofContinuousOpen - def LocalHomeomorph.ofContinuousOpenRestrict - def LocalHomeomorph.ofSet - theorem LocalHomeomorph.ofSet_symm - theorem LocalHomeomorph.ofSet_toLocalEquiv - theorem LocalHomeomorph.ofSet_trans' - theorem LocalHomeomorph.ofSet_trans - theorem LocalHomeomorph.ofSet_trans_ofSet - theorem LocalHomeomorph.ofSet_univ_eq_refl - theorem LocalHomeomorph.openEmbedding_restrict - def LocalHomeomorph.pi - def LocalHomeomorph.piecewise - theorem LocalHomeomorph.preimage_closure - theorem LocalHomeomorph.preimage_eventuallyEq_target_inter_preimage_inter - theorem LocalHomeomorph.preimage_frontier - theorem LocalHomeomorph.preimage_interior - def LocalHomeomorph.prod - theorem LocalHomeomorph.prod_eq_prod_of_nonempty' - theorem LocalHomeomorph.prod_eq_prod_of_nonempty - theorem LocalHomeomorph.prod_symm - theorem LocalHomeomorph.prod_trans - theorem LocalHomeomorph.refl_localEquiv - theorem LocalHomeomorph.refl_prod_refl - theorem LocalHomeomorph.refl_symm - theorem LocalHomeomorph.refl_trans - def LocalHomeomorph.replaceEquiv - theorem LocalHomeomorph.replaceEquiv_eq_self - theorem LocalHomeomorph.restrOpen_source - theorem LocalHomeomorph.restrOpen_toLocalEquiv - theorem LocalHomeomorph.restr_eq_of_source_subset - theorem LocalHomeomorph.restr_source' - theorem LocalHomeomorph.restr_source_inter - theorem LocalHomeomorph.restr_toLocalEquiv' - theorem LocalHomeomorph.restr_toLocalEquiv - theorem LocalHomeomorph.restr_trans - theorem LocalHomeomorph.restr_univ - theorem LocalHomeomorph.right_inv - theorem LocalHomeomorph.secondCountableTopology_source - theorem LocalHomeomorph.source_inter_preimage_inv_preimage - theorem LocalHomeomorph.source_inter_preimage_target_inter - theorem LocalHomeomorph.source_preimage_target - theorem LocalHomeomorph.subtypeRestr_coe - theorem LocalHomeomorph.subtypeRestr_def - theorem LocalHomeomorph.subtypeRestr_source - theorem LocalHomeomorph.subtypeRestr_symm_eqOn - theorem LocalHomeomorph.subtypeRestr_symm_eqOn_of_le - theorem LocalHomeomorph.subtypeRestr_symm_trans_subtypeRestr - theorem LocalHomeomorph.symm_bijective - theorem LocalHomeomorph.symm_image_eq_source_inter_preimage - theorem LocalHomeomorph.symm_image_target_eq_source - theorem LocalHomeomorph.symm_image_target_inter_eq - theorem LocalHomeomorph.symm_map_nhds_eq - theorem LocalHomeomorph.symm_piecewise - theorem LocalHomeomorph.symm_source - theorem LocalHomeomorph.symm_symm - theorem LocalHomeomorph.symm_target - theorem LocalHomeomorph.symm_toLocalEquiv - theorem LocalHomeomorph.target_inter_inv_preimage_preimage - theorem LocalHomeomorph.tendsto_symm - def LocalHomeomorph.toFun' - theorem LocalHomeomorph.toFun_eq_coe - def LocalHomeomorph.toHomeomorphOfSourceEqUnivTargetEqUniv - def LocalHomeomorph.toHomeomorphSourceTarget - theorem LocalHomeomorph.toLocalEquiv_injective - theorem LocalHomeomorph.to_openEmbedding - def LocalHomeomorph.transHomeomorph - theorem LocalHomeomorph.transHomeomorph_eq_trans - theorem LocalHomeomorph.trans_apply - theorem LocalHomeomorph.trans_assoc - theorem LocalHomeomorph.trans_ofSet - theorem LocalHomeomorph.trans_of_set' - theorem LocalHomeomorph.trans_refl - theorem LocalHomeomorph.trans_self_symm - theorem LocalHomeomorph.trans_source'' - theorem LocalHomeomorph.trans_source' - theorem LocalHomeomorph.trans_source - theorem LocalHomeomorph.trans_symm_eq_symm_trans_symm - theorem LocalHomeomorph.trans_symm_self - theorem LocalHomeomorph.trans_target'' - theorem LocalHomeomorph.trans_target' - theorem LocalHomeomorph.trans_target - theorem LocalHomeomorph.trans_toLocalEquiv - structure LocalHomeomorph + theorem PartialHomeomorph.EqOnSource.eqOn + theorem PartialHomeomorph.EqOnSource.restr + theorem PartialHomeomorph.EqOnSource.source_eq + theorem PartialHomeomorph.EqOnSource.symm' + theorem PartialHomeomorph.EqOnSource.symm_eqOn_target + theorem PartialHomeomorph.EqOnSource.target_eq + theorem PartialHomeomorph.EqOnSource.trans' + def PartialHomeomorph.EqOnSource + theorem PartialHomeomorph.IsImage.apply_mem_iff + theorem PartialHomeomorph.IsImage.iff_preimage_eq' + theorem PartialHomeomorph.IsImage.iff_preimage_eq + theorem PartialHomeomorph.IsImage.iff_symm_preimage_eq' + theorem PartialHomeomorph.IsImage.iff_symm_preimage_eq + theorem PartialHomeomorph.IsImage.image_eq + theorem PartialHomeomorph.IsImage.inter_eq_of_inter_eq_of_eqOn + theorem PartialHomeomorph.IsImage.isOpen_iff + theorem PartialHomeomorph.IsImage.leftInvOn_piecewise + theorem PartialHomeomorph.IsImage.map_nhdsWithin_eq + theorem PartialHomeomorph.IsImage.of_image_eq + theorem PartialHomeomorph.IsImage.of_symm_image_eq + def PartialHomeomorph.IsImage.restr + theorem PartialHomeomorph.IsImage.symm_apply_mem_iff + theorem PartialHomeomorph.IsImage.symm_eqOn_of_inter_eq_of_eqOn + theorem PartialHomeomorph.IsImage.symm_iff + theorem PartialHomeomorph.IsImage.symm_image_eq + theorem PartialHomeomorph.IsImage.symm_mapsTo + theorem PartialHomeomorph.IsImage.toLocalEquiv + def PartialHomeomorph.IsImage + theorem PartialHomeomorph.Set.EqOn.restr_eqOn_source + def PartialHomeomorph.Simps.apply + def PartialHomeomorph.Simps.symm_apply + theorem PartialHomeomorph.coe_coe + theorem PartialHomeomorph.coe_coe_symm + theorem PartialHomeomorph.coe_trans + theorem PartialHomeomorph.coe_trans_symm + theorem PartialHomeomorph.continuousAt_iff_continuousAt_comp_left + theorem PartialHomeomorph.continuousAt_iff_continuousAt_comp_right + theorem PartialHomeomorph.continuousAt_symm + theorem PartialHomeomorph.continuousOn_iff_continuousOn_comp_left + theorem PartialHomeomorph.continuousOn_iff_continuousOn_comp_right + theorem PartialHomeomorph.continuousOn_symm + theorem PartialHomeomorph.continuousWithinAt_iff_continuousWithinAt_comp_left + theorem PartialHomeomorph.continuousWithinAt_iff_continuousWithinAt_comp_right + theorem PartialHomeomorph.continuous_iff_continuous_comp_left + def PartialHomeomorph.disjointUnion + theorem PartialHomeomorph.eqOnSource_iff + theorem PartialHomeomorph.eqOnSource_refl + theorem PartialHomeomorph.eq_of_eqOnSource_univ + theorem PartialHomeomorph.eq_of_localEquiv_eq + theorem PartialHomeomorph.eq_symm_apply + theorem PartialHomeomorph.eventually_left_inverse' + theorem PartialHomeomorph.eventually_left_inverse + theorem PartialHomeomorph.eventually_ne_nhdsWithin + theorem PartialHomeomorph.eventually_nhds' + theorem PartialHomeomorph.eventually_nhds + theorem PartialHomeomorph.eventually_nhdsWithin' + theorem PartialHomeomorph.eventually_nhdsWithin + theorem PartialHomeomorph.eventually_right_inverse' + theorem PartialHomeomorph.eventually_right_inverse + def PartialHomeomorph.homeomorphOfImageSubsetSource + theorem PartialHomeomorph.image_eq_target_inter_inv_preimage + theorem PartialHomeomorph.image_isOpen_of_isOpen' + theorem PartialHomeomorph.image_isOpen_of_isOpen + theorem PartialHomeomorph.image_mem_nhds + theorem PartialHomeomorph.image_source_eq_target + theorem PartialHomeomorph.image_source_inter_eq' + theorem PartialHomeomorph.image_source_inter_eq + theorem PartialHomeomorph.image_trans_source + theorem PartialHomeomorph.invFun_eq_coe + theorem PartialHomeomorph.inv_image_trans_target + theorem PartialHomeomorph.isImage_source_target + theorem PartialHomeomorph.isImage_source_target_of_disjoint + theorem PartialHomeomorph.isOpen_image_of_subset_source + theorem PartialHomeomorph.isOpen_image_symm_of_subset_target + theorem PartialHomeomorph.isOpen_inter_preimage + theorem PartialHomeomorph.isOpen_inter_preimage_symm + theorem PartialHomeomorph.left_inv + theorem PartialHomeomorph.map_nhdsWithin_eq + theorem PartialHomeomorph.map_nhdsWithin_preimage_eq + theorem PartialHomeomorph.map_nhds_eq + theorem PartialHomeomorph.map_source'' + theorem PartialHomeomorph.map_source + theorem PartialHomeomorph.map_subtype_source + theorem PartialHomeomorph.map_target + theorem PartialHomeomorph.mk_coe + theorem PartialHomeomorph.mk_coe_symm + theorem PartialHomeomorph.nhdsWithin_source_inter + theorem PartialHomeomorph.nhdsWithin_target_inter + theorem PartialHomeomorph.nhds_eq_comap_inf_principal + def PartialHomeomorph.ofContinuousOpen + def PartialHomeomorph.ofContinuousOpenRestrict + def PartialHomeomorph.ofSet + theorem PartialHomeomorph.ofSet_symm + theorem PartialHomeomorph.ofSet_toLocalEquiv + theorem PartialHomeomorph.ofSet_trans' + theorem PartialHomeomorph.ofSet_trans + theorem PartialHomeomorph.ofSet_trans_ofSet + theorem PartialHomeomorph.ofSet_univ_eq_refl + theorem PartialHomeomorph.openEmbedding_restrict + def PartialHomeomorph.pi + def PartialHomeomorph.piecewise + theorem PartialHomeomorph.preimage_closure + theorem PartialHomeomorph.preimage_eventuallyEq_target_inter_preimage_inter + theorem PartialHomeomorph.preimage_frontier + theorem PartialHomeomorph.preimage_interior + def PartialHomeomorph.prod + theorem PartialHomeomorph.prod_eq_prod_of_nonempty' + theorem PartialHomeomorph.prod_eq_prod_of_nonempty + theorem PartialHomeomorph.prod_symm + theorem PartialHomeomorph.prod_trans + theorem PartialHomeomorph.refl_localEquiv + theorem PartialHomeomorph.refl_prod_refl + theorem PartialHomeomorph.refl_symm + theorem PartialHomeomorph.refl_trans + def PartialHomeomorph.replaceEquiv + theorem PartialHomeomorph.replaceEquiv_eq_self + theorem PartialHomeomorph.restrOpen_source + theorem PartialHomeomorph.restrOpen_toLocalEquiv + theorem PartialHomeomorph.restr_eq_of_source_subset + theorem PartialHomeomorph.restr_source' + theorem PartialHomeomorph.restr_source_inter + theorem PartialHomeomorph.restr_toLocalEquiv' + theorem PartialHomeomorph.restr_toLocalEquiv + theorem PartialHomeomorph.restr_trans + theorem PartialHomeomorph.restr_univ + theorem PartialHomeomorph.right_inv + theorem PartialHomeomorph.secondCountableTopology_source + theorem PartialHomeomorph.source_inter_preimage_inv_preimage + theorem PartialHomeomorph.source_inter_preimage_target_inter + theorem PartialHomeomorph.source_preimage_target + theorem PartialHomeomorph.subtypeRestr_coe + theorem PartialHomeomorph.subtypeRestr_def + theorem PartialHomeomorph.subtypeRestr_source + theorem PartialHomeomorph.subtypeRestr_symm_eqOn + theorem PartialHomeomorph.subtypeRestr_symm_eqOn_of_le + theorem PartialHomeomorph.subtypeRestr_symm_trans_subtypeRestr + theorem PartialHomeomorph.symm_bijective + theorem PartialHomeomorph.symm_image_eq_source_inter_preimage + theorem PartialHomeomorph.symm_image_target_eq_source + theorem PartialHomeomorph.symm_image_target_inter_eq + theorem PartialHomeomorph.symm_map_nhds_eq + theorem PartialHomeomorph.symm_piecewise + theorem PartialHomeomorph.symm_source + theorem PartialHomeomorph.symm_symm + theorem PartialHomeomorph.symm_target + theorem PartialHomeomorph.symm_toLocalEquiv + theorem PartialHomeomorph.target_inter_inv_preimage_preimage + theorem PartialHomeomorph.tendsto_symm + def PartialHomeomorph.toFun' + theorem PartialHomeomorph.toFun_eq_coe + def PartialHomeomorph.toHomeomorphOfSourceEqUnivTargetEqUniv + def PartialHomeomorph.toHomeomorphSourceTarget + theorem PartialHomeomorph.toLocalEquiv_injective + theorem PartialHomeomorph.to_openEmbedding + def PartialHomeomorph.transHomeomorph + theorem PartialHomeomorph.transHomeomorph_eq_trans + theorem PartialHomeomorph.trans_apply + theorem PartialHomeomorph.trans_assoc + theorem PartialHomeomorph.trans_ofSet + theorem PartialHomeomorph.trans_of_set' + theorem PartialHomeomorph.trans_refl + theorem PartialHomeomorph.trans_self_symm + theorem PartialHomeomorph.trans_source'' + theorem PartialHomeomorph.trans_source' + theorem PartialHomeomorph.trans_source + theorem PartialHomeomorph.trans_symm_eq_symm_trans_symm + theorem PartialHomeomorph.trans_symm_self + theorem PartialHomeomorph.trans_target'' + theorem PartialHomeomorph.trans_target' + theorem PartialHomeomorph.trans_target + theorem PartialHomeomorph.trans_toLocalEquiv + structure PartialHomeomorph Modified Mathlib/Topology/Sheaves/LocalPredicate.lean Modified Mathlib/Topology/VectorBundle/Basic.lean +/- def VectorBundleCore.trivChange Modified scripts/nolints.json Modified test/MfldSetTac.lean - theorem LocalHomeomorph.coe_coe - theorem LocalHomeomorph.coe_coe_symm - theorem LocalHomeomorph.left_inv - def LocalHomeomorph.symm - theorem LocalHomeomorph.symm_to_LocalEquiv - structure LocalHomeomorph + theorem PartialHomeomorph.coe_coe + theorem PartialHomeomorph.coe_coe_symm + theorem PartialHomeomorph.left_inv + def PartialHomeomorph.symm + theorem PartialHomeomorph.symm_to_LocalEquiv + structure PartialHomeomorph 2023-12-11 20:22:59 556f648 chore: cleanups following #8609 and #8714 (#8962) + generalize `image_rootSet`, `adjoin_rootSet_eq_range` and `splits_comp_of_splits` in Data/Polynomial/Splits and use the last one to golf `splits_of_algHom`, `splits_of_isScalarTower` (introduced in # 8609). + add three new lemmas `mem_range_x_of_minpoly_splits` to simplify the construction of `IntermediateField.algHomEquivAlgHomOfIsAlgClosed` and `Algebra.IsAlgebraic.algHomEquivAlgHomOfIsAlgClosed`, remove the `IsAlgClosed` condition and rename. ~~They could be moved to an earlier file but I refrain from doing that. (#find_home says it's already in the right place)~~ + golf `primitive_element_iff_algHom_eq_of_eval` from # 8609, using a new lemma `IsIntegral.minpoly_splits_tower_top` for the last step. + make `integralClosure_algEquiv_restrict` (from # 8714) computable and rename to `AlgEquiv.mapIntegralClosure` to follow camelCase naming convention and enable dot notation. ESTIMATED CHANGES Modified Mathlib/Data/Polynomial/Splits.lean +/- theorem Polynomial.adjoin_rootSet_eq_range +/- theorem Polynomial.image_rootSet +/- theorem Polynomial.mem_lift_of_splits_of_roots_mem_range +/- theorem Polynomial.splits_comp_of_splits +/- theorem Polynomial.splits_of_algHom +/- theorem Polynomial.splits_of_isScalarTower Modified Mathlib/FieldTheory/Adjoin.lean Modified Mathlib/FieldTheory/IsAlgClosed/Basic.lean - theorem Algebra.IsAlgebraic.algHomEquivAlgHomOfIsAlgClosed_apply_apply + theorem Algebra.IsAlgebraic.algHomEquivAlgHomOfSplits_apply_apply +/- theorem Algebra.IsAlgebraic.range_eval_eq_rootSet_minpoly - def IntermediateField.algHomEquivAlgHomOfIsAlgClosed - theorem IntermediateField.algHomEquivAlgHomOfIsAlgClosed_apply_apply + def IntermediateField.algHomEquivAlgHomOfSplits + theorem IntermediateField.algHomEquivAlgHomOfSplits_apply_apply Modified Mathlib/FieldTheory/PrimitiveElement.lean Modified Mathlib/FieldTheory/SplittingField/IsSplittingField.lean +/- theorem IntermediateField.splits_of_splits + theorem IsIntegral.mem_intermediateField_of_minpoly_splits Modified Mathlib/NumberTheory/NumberField/Discriminant.lean Modified Mathlib/RingTheory/Adjoin/Field.lean + theorem IsIntegral.mem_range_algHom_of_minpoly_splits + theorem IsIntegral.mem_range_algebraMap_of_minpoly_splits + theorem IsIntegral.minpoly_splits_tower_top Modified Mathlib/RingTheory/IntegralClosure.lean + theorem AlgEquiv.coe_mapIntegralClosure + def AlgEquiv.mapIntegralClosure + theorem AlgHom.coe_mapIntegralClosure + def AlgHom.mapIntegralClosure - def integralClosure_algHom_restrict - theorem integralClosure_coe_algEquiv_restrict - theorem integralClosure_coe_algHom_restrict 2023-12-11 18:22:24 fe44d90 chore: rename IsLocallyHomeomorph{On} to IsLocalHomeomorph{On} (#8983) This matches informal math terminology: `IsLocallyHomeomorph f` means "f is a local homeomorphism". [zulip discussion](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/Naming.20around.20local.20homeomorphisms/near/407090631) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Topology/Covering.lean Renamed Mathlib/Topology/IsLocallyHomeomorph.lean to Mathlib/Topology/IsLocalHomeomorph.lean + theorem Homeomorph.isLocalHomeomorph - theorem Homeomorph.isLocallyHomeomorph + theorem IsLocalHomeomorph.isLocallyInjective + theorem IsLocalHomeomorph.isTopologicalBasis + theorem IsLocalHomeomorph.map_nhds_eq + theorem IsLocalHomeomorph.mk + theorem IsLocalHomeomorph.of_comp + theorem IsLocalHomeomorph.openEmbedding_of_comp + theorem IsLocalHomeomorph.openEmbedding_of_injective + def IsLocalHomeomorph + theorem IsLocalHomeomorphOn.map_nhds_eq + theorem IsLocalHomeomorphOn.mk + theorem IsLocalHomeomorphOn.mono + theorem IsLocalHomeomorphOn.of_comp_left + theorem IsLocalHomeomorphOn.of_comp_right + def IsLocalHomeomorphOn - theorem IsLocallyHomeomorph.isLocallyInjective - theorem IsLocallyHomeomorph.isTopologicalBasis - theorem IsLocallyHomeomorph.map_nhds_eq - theorem IsLocallyHomeomorph.mk - theorem IsLocallyHomeomorph.of_comp - theorem IsLocallyHomeomorph.openEmbedding_of_comp - theorem IsLocallyHomeomorph.openEmbedding_of_injective - def IsLocallyHomeomorph - theorem IsLocallyHomeomorphOn.map_nhds_eq - theorem IsLocallyHomeomorphOn.mk - theorem IsLocallyHomeomorphOn.mono - theorem IsLocallyHomeomorphOn.of_comp_left - theorem IsLocallyHomeomorphOn.of_comp_right - def IsLocallyHomeomorphOn + theorem OpenEmbedding.isLocalHomeomorph - theorem OpenEmbedding.isLocallyHomeomorph + theorem isLocalHomeomorphOn_iff_openEmbedding_restrict + theorem isLocalHomeomorph_iff_isLocalHomeomorphOn_univ + theorem isLocalHomeomorph_iff_openEmbedding_restrict - theorem isLocallyHomeomorphOn_iff_openEmbedding_restrict - theorem isLocallyHomeomorph_iff_isLocallyHomeomorphOn_univ - theorem isLocallyHomeomorph_iff_openEmbedding_restrict 2023-12-11 16:31:56 de48aea feat: `s × t = univ ↔ s = univ ∧ t = univ` (#8976) for sets and finsets From LeanCamCombi ESTIMATED CHANGES Modified Mathlib/Data/Fintype/Prod.lean + theorem Finset.product_eq_univ +/- theorem Finset.univ_product_univ Modified Mathlib/Data/Set/Prod.lean + theorem Set.prod_eq_univ 2023-12-11 14:48:59 33095fe feat(RingTheory/Coalgebra): generalize the `Finsupp` instance (#8868) The original `Coalgebra R (ι →₀ R)` is now recovered from `[Coalgebra R A] : Coalgebra R (ι →₀ A)` as a special case. Salvaged from https://github.com/leanprover-community/mathlib4/pull/8621#discussion_r1408532458 ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/Finsupp.lean + theorem Finsupp.lapply_comp_lsingle_of_ne + theorem Finsupp.lapply_comp_lsingle_same + theorem Finsupp.lsum_comp_lsingle Modified Mathlib/RingTheory/Coalgebra.lean + theorem Finsupp.comul_comp_lapply + theorem Finsupp.comul_comp_lsingle +/- theorem Finsupp.comul_single + theorem Finsupp.counit_comp_lsingle +/- theorem Finsupp.counit_single 2023-12-11 13:18:40 ad02f2a feat: Measurability of logic operators (#8952) From PFR ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Constructions/BorelSpace/Basic.lean Modified Mathlib/MeasureTheory/MeasurableSpace/Basic.lean + theorem Measurable.and + theorem Measurable.exists + theorem Measurable.forall + theorem Measurable.iff + theorem Measurable.imp + theorem Measurable.not + theorem Measurable.or Modified Mathlib/MeasureTheory/MeasurableSpace/Defs.lean 2023-12-11 12:15:00 886b5aa feat(Algebra/FreeMonoid): the units are unique (#8904) ESTIMATED CHANGES Modified Mathlib/Algebra/FreeMonoid/Basic.lean 2023-12-11 11:08:08 9f2bb70 fix: correct bad handling of rat literals in `ring_nf` (#8836) Reported [on Zulip](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/ring_nf.20returns.20ugly.20literals/near/400988184): > ```lean > import Mathlib.Data.Real.Basic > > local macro_rules | `($x ^ $y) => `(HPow.hPow $x $y) -- Porting note: See issue lean4#2220 > > example {n : ℝ} : (n + 1 / 2) ^ 2 * (n + 1 + 1 / 3) ≤ (n + 1 / 3) * (n + 1) ^ 2 := by > ring_nf > ``` > After the `ring_nf` call, the goal looks like: > ```lean > ↑(Int.ofNat 1) / ↑3 + n * (↑(Int.ofNat 19) / ↑12) + n ^ 2 * (↑(Int.ofNat 7) / ↑3) + n ^ 3 ≤ > ↑(Int.ofNat 1) / ↑3 + n * (↑(Int.ofNat 5) / ↑3) + n ^ 2 * (↑(Int.ofNat 7) / ↑3) + n ^ 3 > ``` This removes the unwanted `Int.ofNat` and coercions. The docstring was apparently incorrect on `Rat.rawCast` (according to @digama0). With that in mind, it's just a case of fixing the local lemmas used to clean up, to reflect the actual invariant instead of the previously-documented one. This also fixes a hang when using `mode = .raw`, by using only a single pass to prevent `1` recursively expanding to `Nat.rawCast 1 + 0`. ESTIMATED CHANGES Modified Mathlib/Tactic/NormNum/Result.lean Modified Mathlib/Tactic/Ring/RingNF.lean - theorem Mathlib.Tactic.RingNF.int_rawCast_1 - theorem Mathlib.Tactic.RingNF.int_rawCast_2 + theorem Mathlib.Tactic.RingNF.int_rawCast_neg - theorem Mathlib.Tactic.RingNF.rat_rawCast_2 + theorem Mathlib.Tactic.RingNF.rat_rawCast_neg + theorem Mathlib.Tactic.RingNF.rat_rawCast_pos Modified test/ring.lean 2023-12-11 09:59:07 7be3f99 feat(MonoidAlgebra): add `AddMonoidAlgebra.lift_of'` (#8938) Add `AddMonoidAlgebra.lift_of'`. `simp` can prove it but it's useful for rewriting right to left. Other changes: - Move `MonoidAlgebra.lift_of` and prove it `by simp` to make it clear that `simp` can prove it. - Stop abusing `Multiplicative G = G` in the statement of `AddMonoidAlgebra.of'_eq_of`. - Reuse lemmas about `MonoidAlgebra` in some proofs about `AddMonoidAlgebra`. ESTIMATED CHANGES Modified Mathlib/Algebra/MonoidAlgebra/Basic.lean + theorem AddMonoidAlgebra.lift_of' +/- theorem AddMonoidAlgebra.of'_eq_of +/- theorem AddMonoidAlgebra.of_injective +/- theorem MonoidAlgebra.lift_of 2023-12-11 07:34:23 1ec8402 feat: lake exe cache lookup (#8838) This allows you to query information regarding the cache: ``` $ lake exe cache lookup Mathlib/MeasureTheory/Measure/FiniteMeasureProd.lean Mathlib/MeasureTheory/Measure/FiniteMeasureProd.lean: /home/mario/.cache/mathlib/0875116721fafda8.ltar comment: git=mathlib4@a4d9e50aa274cb8057bf09c845de139ccd4b0164 ``` This says, for a given lean file, where to find the ltar file that it is unpacked from/to, as well as the metadata contained in the file, which currently means the commit which built the file. (This is not necessarily the same as the current commit, because not every commit builds all files, many files are grandfathered from earlier commits, sometimes even builds that failed, like in this example.) This is useful for debugging [certain issues](https://github.com/leanprover-community/mathlib4/pull/8834/files#r1416613607). The leantar version was bumped [from `0.1.9` to `0.1.10`](https://github.com/digama0/leangz/compare/v0.1.9..v0.1.10), mainly because this includes a bugfix for the `-k` option of leantar that was exposed while testing this command. ESTIMATED CHANGES Modified Cache/IO.lean + def Cache.IO.lookup Modified Cache/Main.lean 2023-12-11 03:29:20 193e156 chore: bump std to 604b407, catching up to leanprover/std4#361 (#8959) ESTIMATED CHANGES Modified Mathlib/Data/Int/Basic.lean - theorem Int.sign_negSucc Modified lake-manifest.json 2023-12-11 00:41:01 bacd2ec chore: update std4 to b197bd2, catching up to leanprover/std4#427 (#8888) ESTIMATED CHANGES Modified Mathlib/Combinatorics/SetFamily/Shadow.lean +/- theorem Finset.mem_upShadow_iff Modified Mathlib/Data/Finset/Basic.lean +/- theorem Finset.ssubset_iff Modified Mathlib/Data/Finset/Grade.lean +/- theorem Covby.exists_finset_insert +/- theorem Finset.covby_iff_exists_insert Modified Mathlib/Data/List/Perm.lean Modified Mathlib/Data/Set/Basic.lean +/- theorem Set.ssubset_iff_insert Modified Mathlib/MeasureTheory/Integral/Marginal.lean Modified Mathlib/Order/Cover.lean +/- theorem Covby.exists_set_insert +/- theorem Set.covby_iff_exists_insert Modified lake-manifest.json Modified test/delaborators.lean 2023-12-10 22:40:36 7df4ff9 chore: reduce imports of Data.List.Defs (#8635) Currently `Data.List.Defs` depends on `Algebra.Group.Defs`, rather unnecessarily. (This then prevents importing `Data.List.Defs` into `Tactic.Common`, without breaking various `assert_not_exists` statements.) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Data/List/Basic.lean Modified Mathlib/Data/List/BigOperators/Basic.lean + theorem List.rel_prod Added Mathlib/Data/List/BigOperators/Defs.lean + def List.alternatingProd + def List.alternatingSum + def List.prod Modified Mathlib/Data/List/Defs.lean - def List.alternatingProd - def List.alternatingSum - def List.prod - def List.sum Modified Mathlib/Data/List/Forall2.lean - theorem List.rel_prod Modified test/congr.lean Modified test/convert2.lean 2023-12-10 21:34:25 ee5a1c5 chore: patch std4#89 (#8566) ESTIMATED CHANGES Modified Archive/Wiedijk100Theorems/BallotProblem.lean Modified Mathlib/Data/Finset/Basic.lean Modified Mathlib/Data/Finset/Sort.lean Modified Mathlib/Data/Finsupp/BigOperators.lean Modified Mathlib/Data/List/FinRange.lean Modified Mathlib/Data/List/Perm.lean - theorem List.Nodup.sublist_ext - theorem List.Pairwise.perm - theorem List.Perm.append - theorem List.Perm.append_cons - theorem List.Perm.append_left - theorem List.Perm.append_right - theorem List.Perm.bind_right - theorem List.Perm.cons_inv - theorem List.Perm.countP_congr - theorem List.Perm.countP_eq - theorem List.Perm.count_eq - theorem List.Perm.diff - theorem List.Perm.diff_left - theorem List.Perm.diff_right - theorem List.Perm.eq_nil - theorem List.Perm.eqv - theorem List.Perm.erase - theorem List.Perm.filter - theorem List.Perm.filterMap - theorem List.Perm.foldl_eq' - theorem List.Perm.inter - theorem List.Perm.inter_left - theorem List.Perm.inter_right - theorem List.Perm.join - theorem List.Perm.join_congr - theorem List.Perm.length_eq - theorem List.Perm.map - theorem List.Perm.mem_iff - theorem List.Perm.nil_eq - theorem List.Perm.nodup_iff - theorem List.Perm.of_eq - theorem List.Perm.pairwise - theorem List.Perm.pairwise_iff - theorem List.Perm.pmap - theorem List.Perm.rec_heq - theorem List.Perm.sizeOf_eq_sizeOf - theorem List.Perm.subperm - theorem List.Perm.subperm_left - theorem List.Perm.subperm_right - theorem List.Perm.subset - theorem List.Perm.swap' - theorem List.Perm.union - theorem List.Perm.union_left - theorem List.Perm.union_right - inductive List.Perm - theorem List.Sublist.exists_perm_append - theorem List.Sublist.subperm - theorem List.Subperm.antisymm - theorem List.Subperm.cons_left - theorem List.Subperm.cons_right - theorem List.Subperm.countP_le - theorem List.Subperm.count_le - theorem List.Subperm.diff_right - theorem List.Subperm.erase - theorem List.Subperm.exists_of_length_lt - theorem List.Subperm.filter - theorem List.Subperm.length_le - theorem List.Subperm.perm_of_length_le - theorem List.Subperm.refl - theorem List.Subperm.subset - theorem List.Subperm.trans - def List.Subperm - theorem List.concat_perm - theorem List.cons_perm_iff_perm_erase - theorem List.countP_eq_countP_filter_add - theorem List.erase_cons_subperm_cons_erase - theorem List.erase_subperm - theorem List.exists_perm_sublist - theorem List.filter_append_perm - theorem List.nil_perm - theorem List.nil_subperm - theorem List.not_perm_nil_cons - theorem List.perm_append_comm - theorem List.perm_append_left_iff - theorem List.perm_append_right_iff - theorem List.perm_append_singleton - theorem List.perm_comm - theorem List.perm_cons - theorem List.perm_cons_append_cons - theorem List.perm_cons_erase - theorem List.perm_ext - theorem List.perm_iff_count - theorem List.perm_induction_on - theorem List.perm_insertNth - theorem List.perm_insert_swap - theorem List.perm_inv_core - theorem List.perm_middle - theorem List.perm_nil - theorem List.perm_replicate - theorem List.perm_singleton - theorem List.replicate_perm - theorem List.reverse_perm - theorem List.singleton_perm - theorem List.singleton_perm_singleton +/- theorem List.singleton_subperm_iff - theorem List.subperm_append_diff_self_of_count_le - theorem List.subperm_append_left - theorem List.subperm_append_right - theorem List.subperm_cons - theorem List.subperm_cons_diff - theorem List.subperm_cons_erase - theorem List.subperm_ext_iff + theorem List.subperm_singleton_iff' - theorem List.subperm_singleton_iff - theorem List.subset_cons_diff Modified Mathlib/Data/List/Sigma.lean Modified Mathlib/Data/List/Sublists.lean Modified Mathlib/Data/Multiset/Basic.lean Modified Mathlib/Data/Multiset/Nodup.lean Modified Mathlib/Data/Multiset/Powerset.lean Modified Mathlib/Data/Multiset/Sym.lean Modified Mathlib/Data/Nat/Factors.lean Modified Mathlib/Data/Sym/Basic.lean Modified Mathlib/GroupTheory/Perm/Cycle/Basic.lean Modified Mathlib/GroupTheory/Perm/Cycle/Type.lean Modified Mathlib/GroupTheory/Perm/Support.lean Modified Mathlib/NumberTheory/SmoothNumbers.lean Modified Mathlib/Testing/SlimCheck/Functions.lean Modified lake-manifest.json Modified test/MkIffOfInductive.lean 2023-12-10 15:17:46 38c82ba feat: Add some equivalent characterisations of primitive elements in finite extensions of fields (#8609) See the [Zulip thread](https://leanprover.zulipchat.com/#narrow/stream/217875-Is-there-code-for-X.3F/topic/Characterization.20of.20primitive.20elements.20in.20field.20extensions/near/403369086) ESTIMATED CHANGES Modified Mathlib/Data/Polynomial/Splits.lean + theorem Polynomial.splits_of_algHom + theorem Polynomial.splits_of_isScalarTower Modified Mathlib/FieldTheory/Adjoin.lean + theorem Algebra.IsAlgebraic.range_eval_eq_rootSet_minpoly_of_splits Modified Mathlib/FieldTheory/IsAlgClosed/Basic.lean + theorem Algebra.IsAlgebraic.algHomEquivAlgHomOfIsAlgClosed_apply_apply +/- theorem Algebra.IsAlgebraic.range_eval_eq_rootSet_minpoly + def IntermediateField.algHomEquivAlgHomOfIsAlgClosed + theorem IntermediateField.algHomEquivAlgHomOfIsAlgClosed_apply_apply Modified Mathlib/FieldTheory/PrimitiveElement.lean +/- theorem AlgHom.card + theorem AlgHom.card_of_splits + theorem Field.primitive_element_iff_algHom_eq_of_eval' + theorem Field.primitive_element_iff_algHom_eq_of_eval + theorem Field.primitive_element_iff_minpoly_degree_eq + theorem Field.primitive_element_iff_minpoly_natDegree_eq 2023-12-10 14:38:33 390d5fb feat(MeasureTheory/Integral/Pi): dependent types, values in R or C (#8948) This is a generalisation of the lemmas in `MeasureTheory.Integral.Pi` to consider functions on products `(i : ι) → E i`, rather than just products of multiple copies of the same type. I also allowed complex-valued functions, and renamed some lemmas slightly (since the lemmas had `finset` in their names but were about fintypes, not finsets). ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Integral/Pi.lean + theorem MeasureTheory.integral_fin_nat_prod_eq_prod - theorem MeasureTheory.integral_finset_prod_eq_pow - theorem MeasureTheory.integral_finset_prod_eq_prod' - theorem MeasureTheory.integral_finset_prod_eq_prod + theorem MeasureTheory.integral_fintype_prod_eq_pow + theorem MeasureTheory.integral_fintype_prod_eq_prod Modified Mathlib/MeasureTheory/Measure/Lebesgue/VolumeOfBalls.lean 2023-12-10 14:38:32 d50e8db chore(MeasureTheory/Function): fix duplicated assumption in L2Space (#8947) This fixes a tiny glitch in the instance arguments in the L2Space file: if you invoke some of these lemmas with `@` then you find you need to give a measure twice over, once for the `[MeasureSpace α]` instance and once for the explicit argument. ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Function/L2Space.lean 2023-12-10 13:47:32 3c2df66 feat: `MeasurableSpace (Set α)` instance (#8946) As a demonstration, prove that the complement operation is measurable. From LeanCamCombi ESTIMATED CHANGES Modified Mathlib/MeasureTheory/MeasurableSpace/Basic.lean + theorem measurableSet_mem + theorem measurableSet_not_mem + theorem measurable_compl + theorem measurable_set_iff + theorem measurable_set_mem + theorem measurable_set_not_mem 2023-12-10 10:44:20 f13f197 chore: Rename `Set.Sigma` to `Set.sigma` (#8927) This was a misport. Also adds missing whitespace after some `Σ`s while we're here, and some other arbitrary lime re-wrappings. ESTIMATED CHANGES Modified Mathlib/Data/Finset/Sigma.lean Modified Mathlib/Data/Set/Sigma.lean +/- theorem Set.Nonempty.sigma_fst +/- theorem Set.Nonempty.sigma_snd +/- theorem Set.empty_sigma +/- theorem Set.forall_sigma_iff +/- theorem Set.fst_image_sigma +/- theorem Set.fst_image_sigma_subset +/- theorem Set.image_sigmaMk_subset_sigma_right +/- theorem Set.insert_sigma +/- theorem Set.mem_sigma_iff +/- theorem Set.mk_mem_sigma +/- theorem Set.mk_preimage_sigma +/- theorem Set.mk_preimage_sigma_eq_empty +/- theorem Set.mk_sigma_iff +/- theorem Set.sigma_diff_sigma +/- theorem Set.sigma_empty +/- theorem Set.sigma_eq_empty_iff +/- theorem Set.sigma_inter_sigma +/- theorem Set.sigma_mono +/- theorem Set.sigma_nonempty_iff +/- theorem Set.sigma_subset_iff +/- theorem Set.sigma_subset_preimage_fst +/- theorem Set.sigma_union +/- theorem Set.sigma_univ +/- theorem Set.singleton_sigma +/- theorem Set.union_sigma +/- theorem Set.univ_sigma_univ 2023-12-10 09:51:05 759a69c feat: Existence of tranversals of a subgroup (#8932) Specialises the existence of tranversals to the case where one subgroup is contained in another. Also replace `⊤ : Set G` by `Set.univ` and modify the lemma names accordingly. From PFR ESTIMATED CHANGES Modified Mathlib/GroupTheory/Complement.lean + theorem Subgroup.IsComplement.card_mul_card + theorem Subgroup.IsComplement.mul_eq +/- theorem Subgroup.exists_left_transversal + theorem Subgroup.exists_left_transversal_of_le +/- theorem Subgroup.exists_right_transversal + theorem Subgroup.exists_right_transversal_of_le +/- theorem Subgroup.isComplement_singleton_left +/- theorem Subgroup.isComplement_singleton_right - theorem Subgroup.isComplement_singleton_top + theorem Subgroup.isComplement_singleton_univ - theorem Subgroup.isComplement_top_left - theorem Subgroup.isComplement_top_right - theorem Subgroup.isComplement_top_singleton + theorem Subgroup.isComplement_univ_left + theorem Subgroup.isComplement_univ_right + theorem Subgroup.isComplement_univ_singleton Modified Mathlib/GroupTheory/HNNExtension.lean Modified Mathlib/GroupTheory/PushoutI.lean Modified Mathlib/GroupTheory/Schreier.lean 2023-12-09 23:54:17 0629511 chore(Order/Filter): protect `Filter.map_smul` (#8935) We use `SMulHomClass.map_smul` much more often, even when the `Filter` namespace is opened. ESTIMATED CHANGES Modified Mathlib/Algebra/Category/ModuleCat/Free.lean Modified Mathlib/Algebra/Module/Submodule/Bilinear.lean Modified Mathlib/Analysis/InnerProductSpace/PiL2.lean Modified Mathlib/LinearAlgebra/Basis.lean Modified Mathlib/MeasureTheory/Function/LpSpace.lean Modified Mathlib/Order/Filter/Pointwise.lean - theorem Filter.map_smul +/- theorem Filter.mem_smul_filter Modified Mathlib/Topology/Algebra/UniformConvergence.lean 2023-12-09 23:54:16 a4d7dad feat: `¬ Subsingleton α ↔ Nontrivial α` (#8926) ESTIMATED CHANGES Modified Mathlib/Logic/Nontrivial/Defs.lean + theorem not_subsingleton_iff_nontrivial 2023-12-09 23:33:24 c2b1517 fix: `scoped notation3` should create scoped delaborators (#8934) This is tested in #8909 ESTIMATED CHANGES Modified Mathlib/Mathport/Notation.lean 2023-12-09 21:16:40 4de90b3 fix: accidental `getFileHash` state reset (#7876) As [reported on Zulip](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/infinite.20loop.20in.20CI.3A.20get.20cache/near/398158750). The use of `set` instead of `modify` was accidentally retaining old values of the state, which would clobber insertions and cause files to be revisited. ESTIMATED CHANGES Modified Cache/Hashing.lean 2023-12-09 15:59:44 603ba0e feat: Marica-Schönheim special case of Graham's conjecture (#8579) Prove the special case of Graham's conjecture when the numbers are squarefree. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Combinatorics/SetFamily/FourFunctions.lean Added Mathlib/NumberTheory/MaricaSchoenheim.lean + def Nat.GrahamConjecture + theorem Nat.grahamConjecture_of_squarefree Modified docs/references.bib 2023-12-09 13:26:09 818337c feat: Finsets and multisets are graded (#8892) Characterise `IsAtom`, `IsCoatom`, `Covby` in `Set α`, `Multiset α`, `Finset α` and deduce that `Multiset α`, `Finset α` are graded orders. Note I am moving some existing characterisations to here because it makes sense thematically, but I could be convinced otherwise. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Combinatorics/SetFamily/Shadow.lean Modified Mathlib/Combinatorics/SimpleGraph/Basic.lean Modified Mathlib/Data/Finset/Basic.lean - theorem Finset.covby_cons - theorem Finset.covby_iff_exists_cons - theorem Finset.covby_iff_exists_erase - theorem Finset.covby_iff_exists_insert - theorem Finset.covby_insert + theorem Finset.insert_empty +/- theorem Finset.ssubset_iff + theorem Finset.val_strictMono Modified Mathlib/Data/Finset/Card.lean + theorem Finset.card_strictMono - theorem Finset.covby_iff_card_sdiff_eq_one Added Mathlib/Data/Finset/Grade.lean + theorem Covby.card_finset + theorem Covby.card_multiset + theorem Covby.exists_finset_cons + theorem Covby.exists_finset_erase + theorem Covby.exists_finset_insert + theorem Covby.exists_multiset_cons + theorem Finset.coe_covby_coe + theorem Finset.coe_wcovby_coe + theorem Finset.covby_cons + theorem Finset.covby_iff_card_sdiff_eq_one + theorem Finset.covby_iff_exists_cons + theorem Finset.covby_iff_exists_erase + theorem Finset.covby_iff_exists_insert + theorem Finset.covby_insert + theorem Finset.erase_covby + theorem Finset.erase_wcovby + theorem Finset.grade_eq + theorem Finset.grade_multiset_eq + theorem Finset.isAtom_singleton + theorem Finset.isCoatom_compl_singleton + theorem Finset.ordConnected_range_coe + theorem Finset.ordConnected_range_val + theorem Finset.val_covby_val + theorem Finset.val_wcovby_val + theorem Finset.wcovby_insert + theorem Multiset.covby_cons + theorem Multiset.covby_iff + theorem Multiset.grade_eq + theorem Multiset.isAtom_iff + theorem Multiset.isAtom_singleton Modified Mathlib/Data/Finset/Interval.lean Modified Mathlib/Data/List/Basic.lean + theorem List.sublist_singleton Modified Mathlib/Data/List/Perm.lean + theorem List.perm_rfl + theorem List.singleton_subperm_iff + theorem List.subperm_iff +/- theorem List.subperm_singleton_iff Modified Mathlib/Data/Multiset/Basic.lean + theorem Multiset.card_strictMono + theorem Multiset.cons_lt_cons + theorem Multiset.cons_lt_cons_iff + theorem Multiset.le_singleton + theorem Multiset.lt_singleton + theorem Multiset.singleton_subset + theorem Multiset.ssubset_singleton_iff +/- theorem Multiset.subset_zero + theorem Multiset.zero_ssubset Modified Mathlib/Data/Set/Basic.lean +/- theorem Set.ssubset_iff_insert + theorem Set.ssubset_iff_sdiff_singleton Modified Mathlib/Order/Atoms.lean + theorem IsAtom.le_iff_eq + theorem IsCoatom.le_iff_eq +/- theorem Set.isAtom_iff + theorem isAtom_compl - theorem isAtom_iff + theorem isAtom_iff_le_of_ge + theorem isCoatom_compl - theorem isCoatom_iff + theorem isCoatom_iff_ge_of_le Modified Mathlib/Order/Cover.lean + theorem Covby.exists_set_insert + theorem Covby.exists_set_sdiff_singleton + theorem Set.covby_iff_exists_insert + theorem Set.covby_iff_exists_sdiff_singleton +/- theorem Set.covby_insert + theorem Set.sdiff_singleton_covby + theorem Set.sdiff_singleton_wcovby +/- theorem Set.wcovby_insert +/- theorem Wcovby.rfl Modified Mathlib/Order/Filter/Ultrafilter.lean Modified Mathlib/Order/RelClasses.lean + theorem eq_of_subset_of_not_ssubset + theorem eq_of_superset_of_not_ssuperset Modified Mathlib/Topology/Sets/Closeds.lean + theorem TopologicalSpace.Closeds.coe_eq_singleton_of_isAtom + theorem TopologicalSpace.Closeds.isAtom_coe + theorem TopologicalSpace.Closeds.mem_singleton 2023-12-09 12:32:15 5ef74df chore(*Deriv*): golf (#8899) Assorted golf I did while working on a refactor. Submitting as a separate PR. - Move `not_differentiableAt_abs_zero` to `Calculus.Deriv.Add`, golf. - Rename `HasFDerivWithinAt_of_nhdsWithin_eq_bot` to `HasFDerivWithinAt.of_nhdsWithin_eq_bot`, golf. - Protect `Filter.EventuallyEq.rfl`. - Golf here and there. ESTIMATED CHANGES Modified Mathlib/Analysis/Calculus/Deriv/Add.lean + theorem not_differentiableAt_abs_zero Modified Mathlib/Analysis/Calculus/FDeriv/Basic.lean + theorem HasFDerivWithinAt.of_nhdsWithin_eq_bot - theorem HasFDerivWithinAt_of_nhdsWithin_eq_bot +/- theorem hasFDerivWithinAt_of_nmem_closure Modified Mathlib/Analysis/Calculus/FDeriv/Equiv.lean Modified Mathlib/Analysis/Calculus/FDeriv/Measurable.lean Modified Mathlib/Analysis/InnerProductSpace/Calculus.lean - theorem not_differentiableAt_abs_zero Modified Mathlib/Order/Filter/Basic.lean - theorem Filter.EventuallyEq.rfl Modified Mathlib/Topology/ContinuousOn.lean +/- theorem continuousWithinAt_of_not_mem_closure 2023-12-09 12:05:53 8fe6d2d refactor(Gronwall): Restate in terms of `LipschitzOnWith`, `EqOn` (#8920) Restate the uniqueness theorems for solutions to ODEs using `LipschitzOnWith` and `EqOn` rather than the equivalent raw propositions, so that relevant APIs may be used for arguments of these theorems. ESTIMATED CHANGES Modified Mathlib/Analysis/ODE/Gronwall.lean +/- theorem ODE_solution_unique_of_mem_set +/- theorem dist_le_of_approx_trajectories_ODE_of_mem_set +/- theorem dist_le_of_trajectories_ODE_of_mem_set 2023-12-09 11:15:41 9e53f21 feat: `CompactSpace (stdSimplex ℝ ι)` (#8917) This is just packaging an existing lemma as an instance. From PFR ESTIMATED CHANGES Modified Mathlib/Analysis/Convex/Topology.lean 2023-12-09 11:15:40 3d06b09 doc: add/edit some FLT docstrings (#8910) Fix two arguably incorrect docstrings, clarify one, add one more. ESTIMATED CHANGES Modified Mathlib/NumberTheory/FLT/Basic.lean Modified Mathlib/NumberTheory/FLT/Four.lean 2023-12-09 10:21:57 b20b0dd feat: Continuity of an indicator function (#8918) From PFR ESTIMATED CHANGES Modified Mathlib/Topology/ContinuousOn.lean + theorem continuous_mulIndicator 2023-12-09 09:17:31 aa99c9f refactor: Remove `leftCoset`/`rightCoset` (#8877) Those two definitions are completely obsolete now that we have the pointwise API. This PR removes them but not the corresponding API. A much more tedious subsequent PR will be needed to merge the two API. Note that I need to tweak simp lemmas to keep confluence since I'm merging two pairs of head keys together. ESTIMATED CHANGES Modified Mathlib/Algebra/Category/GroupCat/EpiMono.lean +/- theorem GroupCat.SurjectiveOfEpiAuxs.agree +/- theorem GroupCat.SurjectiveOfEpiAuxs.g_apply_fromCoset +/- theorem GroupCat.SurjectiveOfEpiAuxs.τ_apply_fromCoset +/- theorem GroupCat.SurjectiveOfEpiAuxs.τ_apply_infinity +/- theorem GroupCat.SurjectiveOfEpiAuxs.τ_symm_apply_fromCoset Modified Mathlib/FieldTheory/KrullTopology.lean Modified Mathlib/GroupTheory/Complement.lean Modified Mathlib/GroupTheory/Coset.lean +/- def Subgroup.leftCosetEquivSubgroup +/- def Subgroup.rightCosetEquivSubgroup +/- theorem eq_cosets_of_normal - def leftCoset +/- theorem leftCoset_assoc +/- theorem leftCoset_eq_iff +/- theorem leftCoset_mem_leftCoset +/- theorem leftCoset_rightCoset +/- theorem mem_leftCoset +/- theorem mem_leftCoset_iff +/- theorem mem_leftCoset_leftCoset +/- theorem mem_own_leftCoset +/- theorem mem_own_rightCoset +/- theorem mem_rightCoset +/- theorem mem_rightCoset_iff +/- theorem mem_rightCoset_rightCoset +/- theorem normal_iff_eq_cosets +/- theorem normal_of_eq_cosets +/- theorem one_leftCoset +/- theorem orbit_subgroup_eq_rightCoset - def rightCoset +/- theorem rightCoset_assoc +/- theorem rightCoset_eq_iff +/- theorem rightCoset_mem_rightCoset +/- theorem rightCoset_one Modified Mathlib/GroupTheory/DoubleCoset.lean Modified Mathlib/GroupTheory/Subgroup/Pointwise.lean + theorem op_smul_coe_set + theorem smul_coe_set Modified Mathlib/Topology/Algebra/Group/Basic.lean +/- theorem IsClosed.leftCoset +/- theorem IsClosed.rightCoset +/- theorem IsOpen.leftCoset +/- theorem IsOpen.rightCoset 2023-12-09 02:01:12 5d4fa55 chore(Calculus/Inverse): split (#8603) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Analysis/Calculus/FDeriv/Equiv.lean Modified Mathlib/Analysis/Calculus/FDeriv/Mul.lean Modified Mathlib/Analysis/Calculus/Implicit.lean Renamed Mathlib/Analysis/Calculus/Inverse.lean to Mathlib/Analysis/Calculus/InverseFunctionTheorem/ApproximatesLinearOn.lean - theorem ApproximatesLinearOn.exists_homeomorph_extension - theorem ContDiffAt.image_mem_toLocalHomeomorph_target - def ContDiffAt.localInverse - theorem ContDiffAt.localInverse_apply_image - theorem ContDiffAt.mem_toLocalHomeomorph_source - def ContDiffAt.toLocalHomeomorph - theorem ContDiffAt.toLocalHomeomorph_coe - theorem ContDiffAt.to_localInverse - def HasStrictDerivAt.localInverse - theorem HasStrictDerivAt.map_nhds_eq - theorem HasStrictDerivAt.to_localInverse - theorem HasStrictDerivAt.to_local_left_inverse - theorem HasStrictFDerivAt.approximates_deriv_on_nhds - theorem HasStrictFDerivAt.approximates_deriv_on_open_nhds - theorem HasStrictFDerivAt.eventually_left_inverse - theorem HasStrictFDerivAt.eventually_right_inverse - theorem HasStrictFDerivAt.image_mem_toLocalHomeomorph_target - def HasStrictFDerivAt.localInverse - theorem HasStrictFDerivAt.localInverse_apply_image - theorem HasStrictFDerivAt.localInverse_continuousAt - theorem HasStrictFDerivAt.localInverse_def - theorem HasStrictFDerivAt.localInverse_tendsto - theorem HasStrictFDerivAt.localInverse_unique - theorem HasStrictFDerivAt.map_nhds_eq_of_equiv - theorem HasStrictFDerivAt.map_nhds_eq_of_surj - theorem HasStrictFDerivAt.mem_toLocalHomeomorph_source - def HasStrictFDerivAt.toLocalHomeomorph - theorem HasStrictFDerivAt.toLocalHomeomorph_coe - theorem HasStrictFDerivAt.to_localInverse - theorem HasStrictFDerivAt.to_local_left_inverse - theorem open_map_of_strict_deriv - theorem open_map_of_strict_fderiv_equiv Added Mathlib/Analysis/Calculus/InverseFunctionTheorem/ContDiff.lean + theorem ContDiffAt.image_mem_toLocalHomeomorph_target + def ContDiffAt.localInverse + theorem ContDiffAt.localInverse_apply_image + theorem ContDiffAt.mem_toLocalHomeomorph_source + def ContDiffAt.toLocalHomeomorph + theorem ContDiffAt.toLocalHomeomorph_coe + theorem ContDiffAt.to_localInverse Added Mathlib/Analysis/Calculus/InverseFunctionTheorem/Deriv.lean + def HasStrictDerivAt.localInverse + theorem HasStrictDerivAt.map_nhds_eq + theorem HasStrictDerivAt.to_localInverse + theorem HasStrictDerivAt.to_local_left_inverse + theorem open_map_of_strict_deriv Added Mathlib/Analysis/Calculus/InverseFunctionTheorem/FDeriv.lean + theorem HasStrictFDerivAt.approximates_deriv_on_nhds + theorem HasStrictFDerivAt.approximates_deriv_on_open_nhds + theorem HasStrictFDerivAt.eventually_left_inverse + theorem HasStrictFDerivAt.eventually_right_inverse + theorem HasStrictFDerivAt.image_mem_toLocalHomeomorph_target + def HasStrictFDerivAt.localInverse + theorem HasStrictFDerivAt.localInverse_apply_image + theorem HasStrictFDerivAt.localInverse_continuousAt + theorem HasStrictFDerivAt.localInverse_def + theorem HasStrictFDerivAt.localInverse_tendsto + theorem HasStrictFDerivAt.localInverse_unique + theorem HasStrictFDerivAt.map_nhds_eq_of_equiv + theorem HasStrictFDerivAt.map_nhds_eq_of_surj + theorem HasStrictFDerivAt.mem_toLocalHomeomorph_source + def HasStrictFDerivAt.toLocalHomeomorph + theorem HasStrictFDerivAt.toLocalHomeomorph_coe + theorem HasStrictFDerivAt.to_localInverse + theorem HasStrictFDerivAt.to_local_left_inverse + theorem open_map_of_strict_fderiv_equiv Added Mathlib/Analysis/Calculus/InverseFunctionTheorem/FiniteDimensional.lean + theorem ApproximatesLinearOn.exists_homeomorph_extension Modified Mathlib/Analysis/Calculus/LagrangeMultipliers.lean Modified Mathlib/Analysis/SpecialFunctions/Complex/LogDeriv.lean Modified Mathlib/MeasureTheory/Function/Jacobian.lean 2023-12-09 00:12:34 b46b244 fix: bad lakefile from #6202 (#8914) ESTIMATED CHANGES Modified lake-manifest.json Modified lakefile.lean 2023-12-08 22:49:43 cf68d15 fix: `apply ... at` with field notation (#8911) add a test to make sure `apply h.mp at` can be parsed and fix it. ESTIMATED CHANGES Modified Mathlib/Tactic/ApplyAt.lean Modified test/ApplyAt.lean 2023-12-08 22:28:28 d76f152 fix: patch for std4#197 (More add lemmas for `Nat`) (#6202) ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Floor.lean Modified Mathlib/Control/Fix.lean Modified Mathlib/Data/Fin/Tuple/Basic.lean Modified Mathlib/Data/List/Sort.lean Modified Mathlib/Data/Nat/Bitwise.lean Modified Mathlib/Data/Nat/Choose/Multinomial.lean Modified Mathlib/Data/Nat/Order/Basic.lean Modified Mathlib/Data/Nat/Pairing.lean Modified Mathlib/Data/Polynomial/Derivative.lean Modified Mathlib/Init/Data/Nat/Lemmas.lean Modified Mathlib/Init/Meta/WellFoundedTactics.lean - theorem Nat.lt_add_left Modified Mathlib/Logic/Equiv/Fin.lean +/- theorem finAddFlip_apply_mk_left Modified Mathlib/NumberTheory/Bernoulli.lean Modified Mathlib/NumberTheory/Multiplicity.lean Modified Mathlib/RingTheory/Polynomial/Hermite/Basic.lean Modified Mathlib/RingTheory/PowerSeries/Derivative.lean Modified Mathlib/Tactic/NormNum/Prime.lean Modified lake-manifest.json Modified lakefile.lean 2023-12-08 18:34:27 3cffd04 chore: bump std (#8897) Since this bump does not include https://github.com/leanprover/std4/pull/427 (in order to avoid having to handle the intermediate commits all at once), we temporarily remove the single use of a `∀ i ∉ s,` binder, and the two tests of it. We can revert these changes in a later Std bump, once we've address the other awkward bumps inbetween. This unblocks #8711. ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Integral/Marginal.lean Modified lake-manifest.json Modified test/delaborators.lean 2023-12-08 15:24:44 b383ae3 chore: Fix dead links (#8902) https://en.wikipedia.org/wiki/Ordered_module doesn't exist but https://en.wikipedia.org/wiki/Ordered_vector_space does. Also delete `instModuleOrderDual`, which was accidentally duplicated (with a more general statement) as `OrderDual.instModule'` in #8840. ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Module.lean Modified Mathlib/Algebra/Order/SMul.lean 2023-12-08 15:24:42 75d413b feat: The Cauchy-Davenport theorem (#8429) This PR proves a very general version of the Cauchy-Davenport theorem, namely a lower bound on the size of the product `s * t` of two finsets in terms of the size of `s` and `t`. We also provide a different proof for linearly ordered cancellative semigroups. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Combinatorics/SetFamily/CauchyDavenport.lean + theorem Finset.card_add_card_sub_one_le_card_mul + theorem Finset.min_le_card_mul + theorem Monoid.IsTorsionFree.card_add_card_sub_one_le_card_mul + theorem ZMod.min_le_card_add 2023-12-08 14:37:22 c04ed1c feat: 3 small filter lemmas (#8898) * Written by @PatrickMassot in #7851 * Needed for #7851 ESTIMATED CHANGES Modified Mathlib/Order/LiminfLimsup.lean + theorem Filter.liminf_comp + theorem Filter.limsup_comp Modified Mathlib/Topology/Basic.lean + theorem isClosed_iff_forall_filter 2023-12-08 13:37:49 d510164 chore: tidy various files (#8880) ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/NonUnitalSubalgebra.lean Modified Mathlib/Algebra/MonoidAlgebra/Degree.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Biproducts.lean Modified Mathlib/CategoryTheory/Subobject/MonoOver.lean Modified Mathlib/Combinatorics/Partition.lean - theorem Nat.Partition.indiscretePartition_parts + theorem Nat.Partition.indiscrete_parts Modified Mathlib/Data/String/Basic.lean Modified Mathlib/GroupTheory/Subgroup/Basic.lean Modified Mathlib/Logic/Equiv/TransferInstance.lean Modified Mathlib/MeasureTheory/Measure/MeasureSpaceDef.lean Modified Mathlib/NumberTheory/NumberField/CanonicalEmbedding.lean +/- theorem NumberField.mixedEmbedding.adjust_f + theorem NumberField.mixedEmbedding.convexBodyLTFactor_lt_top + theorem NumberField.mixedEmbedding.convexBodyLTFactor_pos + theorem NumberField.mixedEmbedding.convexBodyLT_convex + theorem NumberField.mixedEmbedding.convexBodyLT_mem + theorem NumberField.mixedEmbedding.convexBodyLT_symmetric + theorem NumberField.mixedEmbedding.convexBodyLT_volume - theorem NumberField.mixedEmbedding.convexBodyLtFactor_lt_top - theorem NumberField.mixedEmbedding.convexBodyLtFactor_pos - theorem NumberField.mixedEmbedding.convexBodyLt_convex - theorem NumberField.mixedEmbedding.convexBodyLt_mem - theorem NumberField.mixedEmbedding.convexBodyLt_symmetric - theorem NumberField.mixedEmbedding.convexBodyLt_volume +/- theorem NumberField.mixedEmbedding.exists_ne_zero_mem_ringOfIntegers_lt Modified Mathlib/NumberTheory/NumberField/Units.lean Modified Mathlib/Topology/MetricSpace/Infsep.lean +/- theorem Set.Subsingleton.infsep_zero +/- theorem Set.einfsep_pos +/- theorem Set.einfsep_zero +/- theorem Set.le_einfsep +/- theorem Set.le_einfsep_of_forall_dist_le Modified Mathlib/Topology/ProperMap.lean 2023-12-08 12:43:12 31037d9 feat: Invertible matrices (#8219) We add some results on invertible matrices, showing that for a finite square matrix `A`, `IsUnit A` is equivalent to the surjectivity/injectivity of left/right multiplication, and to the linear independence of the set of rows/columns. We also add a couple of lemmas about the existence of left/right inverses for nonsquare matrices, and a bit of API for `mulVecLin` and `vecMulLinear`. ESTIMATED CHANGES Modified Mathlib/Data/Matrix/Basic.lean + theorem Matrix.mul_apply_eq_vecMul Modified Mathlib/LinearAlgebra/Matrix/NonsingularInverse.lean + theorem Matrix.exists_left_inverse_iff_isUnit + theorem Matrix.exists_right_inverse_iff_isUnit + theorem Matrix.linearIndependent_cols_iff_isUnit + theorem Matrix.linearIndependent_cols_of_invertible + theorem Matrix.linearIndependent_rows_iff_isUnit + theorem Matrix.linearIndependent_rows_of_invertible + theorem Matrix.mulVec_injective_iff_isUnit + theorem Matrix.mulVec_injective_of_invertible + theorem Matrix.mulVec_surjective_iff_exists_right_inverse + theorem Matrix.mulVec_surjective_iff_isUnit + theorem Matrix.mulVec_surjective_of_invertible + theorem Matrix.vecMul_injective_iff_isUnit + theorem Matrix.vecMul_injective_of_invertible + theorem Matrix.vecMul_surjective_iff_exists_left_inverse + theorem Matrix.vecMul_surjective_iff_isUnit + theorem Matrix.vecMul_surjective_of_invertible Modified Mathlib/LinearAlgebra/Matrix/ToLin.lean + theorem Matrix.coe_mulVecLin + theorem Matrix.coe_vecMulLinear +/- theorem Matrix.ker_mulVecLin_eq_bot_iff + theorem Matrix.mulVecLin_transpose + theorem Matrix.mulVec_injective_iff + theorem Matrix.vecMulLinear_apply + theorem Matrix.vecMulLinear_transpose + theorem Matrix.vecMul_injective_iff + theorem range_vecMulLinear 2023-12-08 12:07:23 62d6fef feat: Discrete measurable spaces (#8859) Adds a typeclass for measurable spaces where all sets are measurable Proves several instances relating these to other classes ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Group/Arithmetic.lean Modified Mathlib/MeasureTheory/Integral/Lebesgue.lean Modified Mathlib/MeasureTheory/MeasurableSpace/Defs.lean - theorem MeasurableSpace.Top.measurable + theorem measurableSet_discrete + theorem measurable_discrete Modified Mathlib/MeasureTheory/Measure/Dirac.lean 2023-12-08 10:23:06 4fe66bb chore: Rename `...MonoRev` to `...ReflectLE` in classes (#8890) Either `ReflectLT` should be called `StrictMonoRev` or `ReflectLE` should be called `MonoRev`, but we can't have both and hope people understand the relation between them. ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Ring/Lemmas.lean - theorem MulPosMonoRev.toMulPosStrictMono + theorem MulPosReflectLE.toMulPosStrictMono - theorem MulPosReflectLT.toMulPosMonoRev + theorem MulPosReflectLT.toMulPosReflectLE - theorem PosMulMonoRev.toPosMulStrictMono + theorem PosMulReflectLE.toPosMulStrictMono - theorem PosMulReflectLT.toPosMulMonoRev + theorem PosMulReflectLT.toPosMulReflectLE +/- theorem le_mul_iff_one_le_left +/- theorem le_mul_iff_one_le_right +/- theorem le_of_mul_le_mul_left +/- theorem le_of_mul_le_mul_right - theorem mulPosMonoRev_iff_mulPosReflectLT + theorem mulPosReflectLE_iff_mulPosReflectLT - theorem mulPosStrictMono_iff_mulPosMonoRev + theorem mulPosStrictMono_iff_mulPosReflectLE +/- theorem mul_le_iff_le_one_left +/- theorem mul_le_iff_le_one_right +/- theorem mul_le_mul_left +/- theorem mul_le_mul_right +/- theorem mul_left_cancel_iff_of_pos +/- theorem mul_right_cancel_iff_of_pos - theorem posMulMonoRev_iff_mulPosMonoRev - theorem posMulMonoRev_iff_posMulReflectLT + theorem posMulReflectLE_iff_mulPosReflectLE + theorem posMulReflectLE_iff_posMulReflectLT - theorem posMulStrictMono_iff_posMulMonoRev + theorem posMulStrictMono_iff_posMulReflectLE Modified Mathlib/Algebra/Order/Ring/WithTop.lean 2023-12-08 10:23:05 d14658b chore: Replace `(· op ·) a` by `(a op ·)` (#8843) I used the regex `\(\(· (.) ·\) (.)\)`, replacing with `($2 $1 ·)`. ESTIMATED CHANGES Modified Counterexamples/HomogeneousPrimeNotPrime.lean Modified Mathlib/Algebra/AddTorsor.lean +/- theorem Equiv.coe_constVAdd +/- theorem Equiv.coe_constVSub Modified Mathlib/Algebra/Algebra/Spectrum.lean Modified Mathlib/Algebra/Algebra/Tower.lean +/- theorem Algebra.lsmul_coe Modified Mathlib/Algebra/BigOperators/Order.lean +/- theorem Finset.le_sum_card +/- theorem Finset.le_sum_card_inter +/- theorem Finset.sum_card +/- theorem Finset.sum_card_inter +/- theorem Finset.sum_card_inter_le +/- theorem Finset.sum_card_le Modified Mathlib/Algebra/ContinuedFractions/Computation/Translations.lean Modified Mathlib/Algebra/GCDMonoid/Multiset.lean +/- theorem Multiset.gcd_map_mul Modified Mathlib/Algebra/Group/Basic.lean +/- theorem mul_left_surjective +/- theorem one_mul_eq_id Modified Mathlib/Algebra/Group/Defs.lean +/- theorem mul_right_injective Modified Mathlib/Algebra/Group/Units.lean Modified Mathlib/Algebra/Group/Units/Equiv.lean +/- theorem Equiv.coe_mulLeft Modified Mathlib/Algebra/GroupPower/CovariantClass.lean Modified Mathlib/Algebra/GroupPower/Lemmas.lean Modified Mathlib/Algebra/GroupWithZero/Basic.lean +/- theorem zero_mul_eq_const Modified Mathlib/Algebra/GroupWithZero/Defs.lean +/- theorem mul_right_injective₀ Modified Mathlib/Algebra/GroupWithZero/Units/Equiv.lean +/- theorem mulLeft_bijective₀ Modified Mathlib/Algebra/Lie/Free.lean Modified Mathlib/Algebra/Module/Basic.lean Modified Mathlib/Algebra/Module/Injective.lean Modified Mathlib/Algebra/Module/LocalizedModule.lean Modified Mathlib/Algebra/Module/MinimalAxioms.lean Modified Mathlib/Algebra/MonoidAlgebra/Division.lean Modified Mathlib/Algebra/MonoidAlgebra/Support.lean Modified Mathlib/Algebra/Order/Field/Power.lean +/- theorem zpow_injective +/- theorem zpow_strictAnti +/- theorem zpow_strictMono Modified Mathlib/Algebra/Order/Monoid/Lemmas.lean Modified Mathlib/Algebra/Order/Ring/Defs.lean +/- theorem antitone_mul_left +/- theorem strictAnti_mul_left Modified Mathlib/Algebra/Order/UpperLower.lean Modified Mathlib/Algebra/Regular/Basic.lean Modified Mathlib/Algebra/Ring/Basic.lean Modified Mathlib/Algebra/SMulWithZero.lean Modified Mathlib/Analysis/Complex/CauchyIntegral.lean Modified Mathlib/Analysis/Complex/UpperHalfPlane/Basic.lean Modified Mathlib/Analysis/Complex/UpperHalfPlane/Metric.lean +/- theorem UpperHalfPlane.isometry_pos_mul +/- theorem UpperHalfPlane.isometry_real_vadd Modified Mathlib/Analysis/InnerProductSpace/Projection.lean Modified Mathlib/Analysis/LocallyConvex/WithSeminorms.lean Modified Mathlib/Analysis/Normed/Group/Basic.lean +/- theorem preimage_mul_ball +/- theorem preimage_mul_sphere Modified Mathlib/Analysis/Normed/MulAction.lean +/- theorem lipschitzWith_smul Modified Mathlib/Analysis/NormedSpace/AffineIsometry.lean +/- theorem AffineIsometryEquiv.coe_constVAdd +/- theorem AffineIsometryEquiv.coe_constVSub Modified Mathlib/Analysis/Seminorm.lean Modified Mathlib/Analysis/SpecialFunctions/Log/Deriv.lean Modified Mathlib/Combinatorics/Additive/SalemSpencer.lean +/- theorem MulSalemSpencer.mul_left +/- theorem mulSalemSpencer_mul_left_iff Modified Mathlib/Computability/RegularExpressions.lean Modified Mathlib/Control/Applicative.lean +/- theorem Applicative.pure_seq_eq_map' Modified Mathlib/Control/Functor.lean +/- theorem Functor.Comp.map_mk +/- theorem Functor.map_id Modified Mathlib/Control/Traversable/Instances.lean Modified Mathlib/Data/DFinsupp/Basic.lean +/- theorem DFinsupp.filter_ne_eq_erase' Modified Mathlib/Data/Finset/Interval.lean +/- theorem Finset.Icc_eq_filter_powerset +/- theorem Finset.Icc_eq_image_powerset +/- theorem Finset.Ico_eq_filter_ssubsets +/- theorem Finset.Ico_eq_image_ssubsets +/- theorem Finset.Ioc_eq_filter_powerset +/- theorem Finset.Ioo_eq_filter_ssubsets Modified Mathlib/Data/Finset/Lattice.lean Modified Mathlib/Data/Finset/LocallyFinite.lean +/- theorem Finset.Ico_filter_le_of_le_left +/- theorem Finset.Ico_filter_le_of_left_le +/- theorem Finset.Ico_filter_le_of_right_le +/- theorem Finset.filter_le_eq_Ici +/- theorem Finset.filter_lt_eq_Ioi +/- theorem Finset.image_add_left_Icc +/- theorem Finset.image_add_left_Ico +/- theorem Finset.image_add_left_Ioc +/- theorem Finset.image_add_left_Ioo Modified Mathlib/Data/Finset/Pointwise.lean +/- theorem Finset.preimage_mul_left_one' +/- theorem Finset.preimage_mul_left_one +/- theorem Finset.singleton_div +/- theorem Finset.singleton_mul +/- theorem Finset.singleton_vsub +/- theorem Finset.smul_finset_def Modified Mathlib/Data/Finsupp/Basic.lean +/- def Finsupp.comapSMul +/- theorem Finsupp.comapSMul_def Modified Mathlib/Data/Finsupp/BigOperators.lean Modified Mathlib/Data/Finsupp/Defs.lean Modified Mathlib/Data/List/Intervals.lean +/- theorem List.Ico.map_add Modified Mathlib/Data/List/Perm.lean Modified Mathlib/Data/Multiset/LocallyFinite.lean +/- theorem Multiset.Ico_filter_le_of_le_left +/- theorem Multiset.Ico_filter_le_of_left_le +/- theorem Multiset.Ico_filter_le_of_right_le +/- theorem Multiset.map_add_left_Icc +/- theorem Multiset.map_add_left_Ico +/- theorem Multiset.map_add_left_Ioc +/- theorem Multiset.map_add_left_Ioo Modified Mathlib/Data/Multiset/Sections.lean Modified Mathlib/Data/Nat/Choose/Multinomial.lean Modified Mathlib/Data/Nat/Interval.lean Modified Mathlib/Data/Real/CauSeqCompletion.lean Modified Mathlib/Data/Seq/WSeq.lean Modified Mathlib/Data/Set/Function.lean Modified Mathlib/Data/Set/Image.lean Modified Mathlib/Data/Set/Lattice.lean Modified Mathlib/Data/Set/Pointwise/Basic.lean +/- theorem Set.iUnion_div_left_image +/- theorem Set.iUnion_mul_left_image +/- theorem Set.image_mul_left' +/- theorem Set.image_mul_left +/- theorem Set.preimage_mul_left_one' +/- theorem Set.preimage_mul_left_one +/- theorem Set.preimage_mul_left_singleton +/- theorem Set.singleton_mul Modified Mathlib/Data/Set/Pointwise/Interval.lean +/- theorem Set.image_const_mul_uIcc +/- theorem Set.image_mul_const_uIcc +/- theorem Set.preimage_const_mul_Ici +/- theorem Set.preimage_const_mul_Iic +/- theorem Set.preimage_const_mul_Iio +/- theorem Set.preimage_const_mul_Ioi Modified Mathlib/Data/Set/Pointwise/SMul.lean +/- theorem Set.iUnion_vsub_left_image +/- theorem Set.singleton_vsub Modified Mathlib/Data/Set/Sups.lean +/- theorem Set.iUnion_image_inf_left +/- theorem Set.image_subset_infs_right Modified Mathlib/Data/Sym/Basic.lean Modified Mathlib/Data/ZMod/Basic.lean Modified Mathlib/Data/ZMod/Quotient.lean +/- theorem AddAction.zmultiplesQuotientStabilizerEquiv_symm_apply +/- theorem MulAction.orbitZpowersEquiv_symm_apply +/- theorem MulAction.zpowersQuotientStabilizerEquiv_symm_apply Modified Mathlib/Dynamics/Minimal.lean Modified Mathlib/Dynamics/OmegaLimit.lean +/- theorem Flow.isInvariant_omegaLimit +/- theorem Flow.omegaLimit_omegaLimit Modified Mathlib/Dynamics/PeriodicPts.lean Modified Mathlib/Geometry/Euclidean/MongePoint.lean Modified Mathlib/GroupTheory/Complement.lean Modified Mathlib/GroupTheory/Congruence.lean Modified Mathlib/GroupTheory/FreeAbelianGroup.lean Modified Mathlib/GroupTheory/GroupAction/Basic.lean +/- theorem MulAction.mapsTo_smul_orbit Modified Mathlib/GroupTheory/GroupAction/BigOperators.lean +/- theorem List.smul_prod +/- theorem List.smul_sum +/- theorem Multiset.smul_prod +/- theorem Multiset.smul_sum Modified Mathlib/GroupTheory/GroupAction/Defs.lean +/- theorem comp_smul_left +/- theorem one_smul_eq_id Modified Mathlib/GroupTheory/GroupAction/Group.lean Modified Mathlib/GroupTheory/GroupAction/Option.lean +/- theorem Option.smul_def Modified Mathlib/GroupTheory/GroupAction/Pi.lean Modified Mathlib/GroupTheory/GroupAction/Quotient.lean Modified Mathlib/GroupTheory/GroupAction/Sigma.lean +/- theorem Sigma.smul_def Modified Mathlib/GroupTheory/GroupAction/Sum.lean +/- theorem Sum.smul_def Modified Mathlib/GroupTheory/OrderOfElement.lean +/- theorem isPeriodicPt_mul_iff_pow_eq_one Modified Mathlib/GroupTheory/Perm/Basic.lean +/- theorem Equiv.swap_mul_involutive Modified Mathlib/GroupTheory/Schreier.lean Modified Mathlib/GroupTheory/Subgroup/ZPowers.lean Modified Mathlib/GroupTheory/Submonoid/Membership.lean Modified Mathlib/GroupTheory/Transfer.lean Modified Mathlib/LinearAlgebra/AffineSpace/AffineEquiv.lean +/- theorem AffineEquiv.coe_constVSub Modified Mathlib/LinearAlgebra/AffineSpace/AffineSubspace.lean Modified Mathlib/LinearAlgebra/Alternating/Basic.lean Modified Mathlib/LinearAlgebra/Basic.lean Modified Mathlib/LinearAlgebra/BilinearForm/Properties.lean Modified Mathlib/LinearAlgebra/ExteriorAlgebra/Basic.lean Modified Mathlib/LinearAlgebra/Matrix/Trace.lean Modified Mathlib/LinearAlgebra/Quotient.lean Modified Mathlib/LinearAlgebra/Ray.lean Modified Mathlib/Logic/Function/Basic.lean Modified Mathlib/MeasureTheory/Constructions/Pi.lean Modified Mathlib/MeasureTheory/Function/AEEqFun.lean Modified Mathlib/MeasureTheory/Function/SimpleFunc.lean +/- theorem MeasureTheory.SimpleFunc.smul_eq_map Modified Mathlib/MeasureTheory/Group/Action.lean Modified Mathlib/MeasureTheory/Group/Arithmetic.lean Modified Mathlib/MeasureTheory/Group/FundamentalDomain.lean Modified Mathlib/MeasureTheory/Group/MeasurableEquiv.lean +/- theorem MeasurableEquiv.coe_mulLeft +/- theorem MeasurableEquiv.coe_mulLeft₀ +/- theorem MeasurableEquiv.coe_smul₀ +/- theorem measurableEmbedding_const_smul +/- theorem measurableEmbedding_mulLeft Modified Mathlib/MeasureTheory/Integral/CircleIntegral.lean Modified Mathlib/MeasureTheory/Measure/Hausdorff.lean Modified Mathlib/MeasureTheory/Measure/Lebesgue/EqHaar.lean Modified Mathlib/MeasureTheory/Measure/MeasureSpace.lean Modified Mathlib/NumberTheory/Liouville/LiouvilleNumber.lean Modified Mathlib/NumberTheory/NumberField/Embeddings.lean Modified Mathlib/NumberTheory/WellApproximable.lean Modified Mathlib/Order/BoundedOrder.lean +/- theorem monotone_le +/- theorem monotone_lt Modified Mathlib/Order/CompactlyGenerated.lean Modified Mathlib/Order/Filter/Germ.lean Modified Mathlib/Order/Filter/Pointwise.lean +/- theorem Filter.mem_smul_filter +/- theorem Filter.pure_div +/- theorem Filter.pure_mul +/- theorem Filter.pure_smul +/- theorem Filter.pure_vsub Modified Mathlib/Order/Heyting/Basic.lean Modified Mathlib/Order/LiminfLimsup.lean Modified Mathlib/Order/SymmDiff.lean +/- theorem bihimp_right_injective +/- theorem bihimp_right_involutive +/- theorem bihimp_right_surjective +/- theorem symmDiff_right_injective +/- theorem symmDiff_right_involutive +/- theorem symmDiff_right_surjective Modified Mathlib/Probability/Density.lean Modified Mathlib/RepresentationTheory/Basic.lean +/- theorem Representation.ofMulAction_def Modified Mathlib/RingTheory/DedekindDomain/Ideal.lean Modified Mathlib/RingTheory/FractionalIdeal.lean +/- theorem FractionalIdeal.mul_left_mono Modified Mathlib/RingTheory/Ideal/Operations.lean Modified Mathlib/RingTheory/Localization/Module.lean Modified Mathlib/RingTheory/UniqueFactorizationDomain.lean Modified Mathlib/SetTheory/Cardinal/Ordinal.lean Modified Mathlib/SetTheory/Ordinal/Arithmetic.lean +/- theorem Ordinal.add_isNormal +/- theorem Ordinal.mul_isNormal Modified Mathlib/SetTheory/Ordinal/FixedPoint.lean Modified Mathlib/SetTheory/Ordinal/NaturalOps.lean Modified Mathlib/SetTheory/Ordinal/Principal.lean Modified Mathlib/Topology/Algebra/Group/Basic.lean +/- theorem Homeomorph.coe_mulLeft +/- theorem Homeomorph.coe_mulRight +/- theorem continuous_div_left' +/- theorem continuous_div_right' +/- theorem isClosedMap_div_left +/- theorem isClosedMap_div_right +/- theorem isClosedMap_mul_left +/- theorem isClosedMap_mul_right +/- theorem isOpenMap_div_left +/- theorem isOpenMap_div_right +/- theorem isOpenMap_mul_left +/- theorem isOpenMap_mul_right +/- theorem map_mul_left_nhds +/- theorem map_mul_left_nhds_one +/- theorem map_mul_right_nhds +/- theorem map_mul_right_nhds_one +/- theorem nhds_translation_mul_inv Modified Mathlib/Topology/Algebra/Module/LocallyConvex.lean Modified Mathlib/Topology/Algebra/UniformMulAction.lean Modified Mathlib/Topology/Algebra/UniformRing.lean Modified Mathlib/Topology/Instances/ENNReal.lean Modified Mathlib/Topology/Instances/Real.lean +/- theorem Real.uniformContinuous_const_mul Modified Mathlib/Topology/MetricSpace/IsometricSMul.lean +/- theorem Metric.preimage_smul_ball Modified Mathlib/Topology/UniformSpace/Equicontinuity.lean 2023-12-08 10:23:04 cf7d718 feat: invariance of the derivative under translation (#8614) This adds a new file `Mathlib.Analysis.Calculus.Deriv.Shift` that contains two lemmas ```lean lemma HasDerivAt.comp_const_add {𝕜 : Type*} [NontriviallyNormedField 𝕜] (a x : 𝕜) {𝕜' : Type*} [NormedAddCommGroup 𝕜'] [NormedSpace 𝕜 𝕜'] {h : 𝕜 → 𝕜'} {h' : 𝕜'} (hh : HasDerivAt h h' (a + x)) : HasDerivAt (fun x ↦ h (a + x)) h' x := ... lemma HasDerivAt.comp_add_const {𝕜 : Type*} [NontriviallyNormedField 𝕜] (x a : 𝕜) {𝕜' : Type*} [NormedAddCommGroup 𝕜'] [NormedSpace 𝕜 𝕜'] {h : 𝕜 → 𝕜'} {h' : 𝕜'} (hh : HasDerivAt h h' (x + a)) : HasDerivAt (fun x ↦ h (x + a)) h' x := ... ``` ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/Calculus/Deriv/Shift.lean + theorem HasDerivAt.comp_add_const + theorem HasDerivAt.comp_const_add 2023-12-08 09:33:38 64c626a chore: generalize Polynomial.Div to noncommutative rings (#8889) ESTIMATED CHANGES Modified Mathlib/Data/Polynomial/Div.lean - theorem Polynomial.divByMonic_mul_pow_rootMultiplicity_eq +/- theorem Polynomial.map_divByMonic +/- theorem Polynomial.map_dvd_map +/- theorem Polynomial.map_modByMonic +/- theorem Polynomial.map_mod_divByMonic +/- theorem Polynomial.natDegree_divByMonic + theorem Polynomial.pow_mul_divByMonic_rootMultiplicity_eq Modified Mathlib/Data/Polynomial/FieldDivision.lean 2023-12-08 09:00:25 41bbd19 chore: Split `LinearAlgebra.BilinearForm`. (#8879) Also renamed `BilinearForm.restrictSymm` to `BilinearForm.IsSymm.restrict`. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Analysis/InnerProductSpace/Basic.lean Modified Mathlib/Analysis/InnerProductSpace/Orthogonal.lean Deleted Mathlib/LinearAlgebra/BilinearForm.lean - theorem BilinForm.IsAdjointPair.add - theorem BilinForm.IsAdjointPair.comp - theorem BilinForm.IsAdjointPair.eq - theorem BilinForm.IsAdjointPair.mul - theorem BilinForm.IsAdjointPair.smul - theorem BilinForm.IsAdjointPair.sub - def BilinForm.IsAdjointPair - theorem BilinForm.IsAlt.isRefl - theorem BilinForm.IsAlt.neg_eq - theorem BilinForm.IsAlt.ortho_comm - theorem BilinForm.IsAlt.self_eq_zero - def BilinForm.IsAlt - def BilinForm.IsOrtho - def BilinForm.IsPairSelfAdjoint - theorem BilinForm.IsRefl.eq_zero - theorem BilinForm.IsRefl.ortho_comm - def BilinForm.IsRefl - def BilinForm.IsSelfAdjoint - def BilinForm.IsSkewAdjoint - theorem BilinForm.IsSymm.isRefl - theorem BilinForm.IsSymm.ortho_comm - def BilinForm.IsSymm - theorem BilinForm.Nondegenerate.congr - theorem BilinForm.Nondegenerate.ker_eq_bot - theorem BilinForm.Nondegenerate.ne_zero - def BilinForm.Nondegenerate - theorem BilinForm.add_apply - theorem BilinForm.add_left - theorem BilinForm.add_right - theorem BilinForm.apply_dualBasis_left - theorem BilinForm.apply_dualBasis_right - def BilinForm.coeFnAddMonoidHom - theorem BilinForm.coeFn_congr - theorem BilinForm.coeFn_mk - theorem BilinForm.coe_add - theorem BilinForm.coe_injective - theorem BilinForm.coe_neg - theorem BilinForm.coe_smul - theorem BilinForm.coe_sub - theorem BilinForm.coe_zero - def BilinForm.comp - def BilinForm.compLeft - theorem BilinForm.compLeft_apply - theorem BilinForm.compLeft_compRight - theorem BilinForm.compLeft_id - theorem BilinForm.compLeft_injective - def BilinForm.compRight - theorem BilinForm.compRight_apply - theorem BilinForm.compRight_compLeft - theorem BilinForm.compRight_id - theorem BilinForm.comp_apply - theorem BilinForm.comp_comp - theorem BilinForm.comp_congr - theorem BilinForm.comp_id_id - theorem BilinForm.comp_id_left - theorem BilinForm.comp_id_right - theorem BilinForm.comp_inj - theorem BilinForm.comp_symmCompOfNondegenerate_apply - def BilinForm.congr - theorem BilinForm.congr_apply - theorem BilinForm.congr_comp - theorem BilinForm.congr_congr - theorem BilinForm.congr_fun - theorem BilinForm.congr_refl - theorem BilinForm.congr_symm - theorem BilinForm.congr_trans - theorem BilinForm.dualBasis_repr_apply - theorem BilinForm.ext - theorem BilinForm.ext_basis - theorem BilinForm.ext_iff - theorem BilinForm.finrank_add_finrank_orthogonal - def BilinForm.flipHom - def BilinForm.flipHomAux - theorem BilinForm.flip_apply - theorem BilinForm.flip_flip - theorem BilinForm.flip_flip_aux - theorem BilinForm.iIsOrtho.nondegenerate_iff_not_isOrtho_basis_self - theorem BilinForm.iIsOrtho.not_isOrtho_basis_self_of_nondegenerate - def BilinForm.iIsOrtho - theorem BilinForm.iIsOrtho_def - theorem BilinForm.isAdjointPairLeftAdjointOfNondegenerate - theorem BilinForm.isAdjointPair_id - theorem BilinForm.isAdjointPair_iff_compLeft_eq_compRight - theorem BilinForm.isAdjointPair_iff_eq_of_nondegenerate - theorem BilinForm.isAdjointPair_unique_of_nondegenerate - theorem BilinForm.isAdjointPair_zero - theorem BilinForm.isAlt_neg - theorem BilinForm.isAlt_zero - theorem BilinForm.isCompl_span_singleton_orthogonal - theorem BilinForm.isOrtho_def - theorem BilinForm.isOrtho_smul_left - theorem BilinForm.isOrtho_smul_right - theorem BilinForm.isOrtho_zero_left - theorem BilinForm.isOrtho_zero_right - def BilinForm.isPairSelfAdjointSubmodule - theorem BilinForm.isPairSelfAdjoint_equiv - theorem BilinForm.isRefl_neg - theorem BilinForm.isRefl_zero - theorem BilinForm.isSkewAdjoint_iff_neg_self_adjoint - theorem BilinForm.isSymm_iff_flip - theorem BilinForm.isSymm_neg - theorem BilinForm.isSymm_zero - theorem BilinForm.le_orthogonal_orthogonal - def BilinForm.linMulLin - theorem BilinForm.linMulLin_apply - theorem BilinForm.linMulLin_comp - theorem BilinForm.linMulLin_compLeft - theorem BilinForm.linMulLin_compRight - theorem BilinForm.linearIndependent_of_iIsOrtho - theorem BilinForm.mem_isPairSelfAdjointSubmodule - theorem BilinForm.mem_orthogonal_iff - theorem BilinForm.mem_selfAdjointSubmodule - theorem BilinForm.mem_skewAdjointSubmodule - theorem BilinForm.ne_zero_of_not_isOrtho_self - theorem BilinForm.neg_apply - theorem BilinForm.neg_left - theorem BilinForm.neg_right - theorem BilinForm.nondegenerateRestrictOfDisjointOrthogonal - theorem BilinForm.nondegenerate_congr_iff - theorem BilinForm.nondegenerate_iff_ker_eq_bot - theorem BilinForm.not_nondegenerate_zero - def BilinForm.orthogonal - theorem BilinForm.orthogonal_le - theorem BilinForm.orthogonal_span_singleton_eq_toLin_ker - def BilinForm.restrict - theorem BilinForm.restrictOrthogonalSpanSingletonNondegenerate - theorem BilinForm.restrictSymm - theorem BilinForm.restrict_nondegenerate_iff_isCompl_orthogonal - theorem BilinForm.restrict_nondegenerate_of_isCompl_orthogonal - def BilinForm.selfAdjointSubmodule - def BilinForm.skewAdjointSubmodule - theorem BilinForm.smul_apply - theorem BilinForm.smul_left - theorem BilinForm.smul_right - theorem BilinForm.span_singleton_inf_orthogonal_eq_bot - theorem BilinForm.span_singleton_sup_orthogonal_eq_top - theorem BilinForm.sub_apply - theorem BilinForm.sub_left - theorem BilinForm.sub_right - theorem BilinForm.sum_apply - theorem BilinForm.sum_left - theorem BilinForm.sum_repr_mul_repr_mul - theorem BilinForm.sum_right - theorem BilinForm.symmCompOfNondegenerate_left_apply - theorem BilinForm.toDual_def - theorem BilinForm.toLin'Flip_apply - theorem BilinForm.toLin'_apply - def BilinForm.toLin - def BilinForm.toLinHom - def BilinForm.toLinHomAux₁ - def BilinForm.toLinHomAux₂ - def BilinForm.toLinHomFlip - theorem BilinForm.toLin_apply - theorem BilinForm.toLin_restrict_ker_eq_inf_orthogonal - theorem BilinForm.toLin_restrict_range_dualCoannihilator_eq_orthogonal - theorem BilinForm.toLin_symm - theorem BilinForm.zero_apply - theorem BilinForm.zero_left - theorem BilinForm.zero_right - structure BilinForm - def LinearMap.compBilinForm - def LinearMap.toBilin - def LinearMap.toBilinAux - theorem LinearMap.toBilinAux_eq - theorem LinearMap.toBilin_apply - theorem LinearMap.toBilin_symm Added Mathlib/LinearAlgebra/BilinearForm/Basic.lean + theorem BilinForm.add_apply + theorem BilinForm.add_left + theorem BilinForm.add_right + def BilinForm.coeFnAddMonoidHom + theorem BilinForm.coeFn_congr + theorem BilinForm.coeFn_mk + theorem BilinForm.coe_add + theorem BilinForm.coe_injective + theorem BilinForm.coe_neg + theorem BilinForm.coe_smul + theorem BilinForm.coe_sub + theorem BilinForm.coe_zero + theorem BilinForm.congr_fun + theorem BilinForm.ext + theorem BilinForm.ext_iff + def BilinForm.flipHom + def BilinForm.flipHomAux + theorem BilinForm.flip_apply + theorem BilinForm.flip_flip + theorem BilinForm.flip_flip_aux + theorem BilinForm.neg_apply + theorem BilinForm.neg_left + theorem BilinForm.neg_right + def BilinForm.restrict + theorem BilinForm.smul_apply + theorem BilinForm.smul_left + theorem BilinForm.smul_right + theorem BilinForm.sub_apply + theorem BilinForm.sub_left + theorem BilinForm.sub_right + theorem BilinForm.zero_apply + theorem BilinForm.zero_left + theorem BilinForm.zero_right + structure BilinForm Added Mathlib/LinearAlgebra/BilinearForm/Hom.lean + def BilinForm.comp + def BilinForm.compLeft + theorem BilinForm.compLeft_apply + theorem BilinForm.compLeft_compRight + theorem BilinForm.compLeft_id + def BilinForm.compRight + theorem BilinForm.compRight_apply + theorem BilinForm.compRight_compLeft + theorem BilinForm.compRight_id + theorem BilinForm.comp_apply + theorem BilinForm.comp_comp + theorem BilinForm.comp_congr + theorem BilinForm.comp_id_id + theorem BilinForm.comp_id_left + theorem BilinForm.comp_id_right + theorem BilinForm.comp_inj + def BilinForm.congr + theorem BilinForm.congr_apply + theorem BilinForm.congr_comp + theorem BilinForm.congr_congr + theorem BilinForm.congr_refl + theorem BilinForm.congr_symm + theorem BilinForm.congr_trans + theorem BilinForm.ext_basis + def BilinForm.linMulLin + theorem BilinForm.linMulLin_apply + theorem BilinForm.linMulLin_comp + theorem BilinForm.linMulLin_compLeft + theorem BilinForm.linMulLin_compRight + theorem BilinForm.sum_apply + theorem BilinForm.sum_left + theorem BilinForm.sum_repr_mul_repr_mul + theorem BilinForm.sum_right + theorem BilinForm.toLin'Flip_apply + theorem BilinForm.toLin'_apply + def BilinForm.toLin + def BilinForm.toLinHom + def BilinForm.toLinHomAux₁ + def BilinForm.toLinHomAux₂ + def BilinForm.toLinHomFlip + theorem BilinForm.toLin_apply + theorem BilinForm.toLin_symm + def LinearMap.compBilinForm + def LinearMap.toBilin + def LinearMap.toBilinAux + theorem LinearMap.toBilinAux_eq + theorem LinearMap.toBilin_apply + theorem LinearMap.toBilin_symm Added Mathlib/LinearAlgebra/BilinearForm/Orthogonal.lean + theorem BilinForm.IsAlt.ortho_comm + def BilinForm.IsOrtho + theorem BilinForm.IsRefl.ortho_comm + theorem BilinForm.IsSymm.ortho_comm + theorem BilinForm.finrank_add_finrank_orthogonal + theorem BilinForm.iIsOrtho.nondegenerate_iff_not_isOrtho_basis_self + theorem BilinForm.iIsOrtho.not_isOrtho_basis_self_of_nondegenerate + def BilinForm.iIsOrtho + theorem BilinForm.iIsOrtho_def + theorem BilinForm.isCompl_span_singleton_orthogonal + theorem BilinForm.isOrtho_def + theorem BilinForm.isOrtho_smul_left + theorem BilinForm.isOrtho_smul_right + theorem BilinForm.isOrtho_zero_left + theorem BilinForm.isOrtho_zero_right + theorem BilinForm.le_orthogonal_orthogonal + theorem BilinForm.linearIndependent_of_iIsOrtho + theorem BilinForm.mem_orthogonal_iff + theorem BilinForm.ne_zero_of_not_isOrtho_self + theorem BilinForm.nondegenerateRestrictOfDisjointOrthogonal + def BilinForm.orthogonal + theorem BilinForm.orthogonal_le + theorem BilinForm.orthogonal_span_singleton_eq_toLin_ker + theorem BilinForm.restrictOrthogonalSpanSingletonNondegenerate + theorem BilinForm.restrict_nondegenerate_iff_isCompl_orthogonal + theorem BilinForm.restrict_nondegenerate_of_isCompl_orthogonal + theorem BilinForm.span_singleton_inf_orthogonal_eq_bot + theorem BilinForm.span_singleton_sup_orthogonal_eq_top + theorem BilinForm.toLin_restrict_ker_eq_inf_orthogonal + theorem BilinForm.toLin_restrict_range_dualCoannihilator_eq_orthogonal Added Mathlib/LinearAlgebra/BilinearForm/Properties.lean + theorem BilinForm.IsAdjointPair.add + theorem BilinForm.IsAdjointPair.comp + theorem BilinForm.IsAdjointPair.eq + theorem BilinForm.IsAdjointPair.mul + theorem BilinForm.IsAdjointPair.smul + theorem BilinForm.IsAdjointPair.sub + def BilinForm.IsAdjointPair + theorem BilinForm.IsAlt.isRefl + theorem BilinForm.IsAlt.neg_eq + theorem BilinForm.IsAlt.self_eq_zero + def BilinForm.IsAlt + def BilinForm.IsPairSelfAdjoint + theorem BilinForm.IsRefl.eq_zero + def BilinForm.IsRefl + def BilinForm.IsSelfAdjoint + def BilinForm.IsSkewAdjoint + theorem BilinForm.IsSymm.isRefl + theorem BilinForm.IsSymm.restrict + def BilinForm.IsSymm + theorem BilinForm.Nondegenerate.congr + theorem BilinForm.Nondegenerate.ker_eq_bot + theorem BilinForm.Nondegenerate.ne_zero + def BilinForm.Nondegenerate + theorem BilinForm.apply_dualBasis_left + theorem BilinForm.apply_dualBasis_right + theorem BilinForm.compLeft_injective + theorem BilinForm.comp_symmCompOfNondegenerate_apply + theorem BilinForm.dualBasis_repr_apply + theorem BilinForm.isAdjointPairLeftAdjointOfNondegenerate + theorem BilinForm.isAdjointPair_id + theorem BilinForm.isAdjointPair_iff_compLeft_eq_compRight + theorem BilinForm.isAdjointPair_iff_eq_of_nondegenerate + theorem BilinForm.isAdjointPair_unique_of_nondegenerate + theorem BilinForm.isAdjointPair_zero + theorem BilinForm.isAlt_neg + theorem BilinForm.isAlt_zero + def BilinForm.isPairSelfAdjointSubmodule + theorem BilinForm.isPairSelfAdjoint_equiv + theorem BilinForm.isRefl_neg + theorem BilinForm.isRefl_zero + theorem BilinForm.isSkewAdjoint_iff_neg_self_adjoint + theorem BilinForm.isSymm_iff_flip + theorem BilinForm.isSymm_neg + theorem BilinForm.isSymm_zero + theorem BilinForm.mem_isPairSelfAdjointSubmodule + theorem BilinForm.mem_selfAdjointSubmodule + theorem BilinForm.mem_skewAdjointSubmodule + theorem BilinForm.nondegenerate_congr_iff + theorem BilinForm.nondegenerate_iff_ker_eq_bot + theorem BilinForm.not_nondegenerate_zero + def BilinForm.selfAdjointSubmodule + def BilinForm.skewAdjointSubmodule + theorem BilinForm.symmCompOfNondegenerate_left_apply + theorem BilinForm.toDual_def Modified Mathlib/LinearAlgebra/BilinearForm/TensorProduct.lean Modified Mathlib/LinearAlgebra/Matrix/BilinearForm.lean Modified Mathlib/LinearAlgebra/QuadraticForm/Basic.lean 2023-12-08 07:58:05 027651a feat: minor refactors for speedups/easier unification (#8884) I think these are all positive or neutral in isolation, and they avoid breakages from a more interesting PR (providing a `@[csimp]` lemma for `npowRec`). ESTIMATED CHANGES Modified Counterexamples/Monic_nonRegular.lean Modified Mathlib/Algebra/Module/LocalizedModule.lean Modified Mathlib/Data/Num/Lemmas.lean Modified Mathlib/GroupTheory/Perm/Basic.lean 2023-12-08 05:51:36 7713281 feat: instances on colimits in category of actions (#8881) Adds the dual instances `HasFiniteCoproducts` and `HasFiniteColimits` for `Action V G`. ESTIMATED CHANGES Modified Mathlib/RepresentationTheory/Action/Limits.lean 2023-12-08 01:40:25 7ba954b feat: have `extract_goal` give full context when it detects a contradiction proof (#8250) If the goal is `False`, `extract_goal` would delete all hypotheses and leave an impossible goal. Now in this case `extract_goal` has the behavior of `extract_goal*`. (Suggested by Bhavik Mehta.) Also changes the `extract_goal` syntax to ``` "extract_goal" ("*" <|> ident*) ("using" ident)? ``` The "using" clause replaces the autogenerated name for the extracted theorem/def. The `extract_goal` tactic has the same behavior as before, `extract_goal *` extracts the entire local context like before, and `extract_goal a b c ...` removes everything from the local context except for fvars `a`, `b`, `c`, ... and their (and the goal's) dependencies. This last form does not automatically include prop variables that depend on preserved fvars, unlike `extract_goal`, which does. The thought is that including prop variables is useful in the default case, but if you are configuring which variables to take you can always take them manually. ESTIMATED CHANGES Modified Mathlib/Tactic/ExtractGoal.lean Modified test/ExtractGoal.lean 2023-12-07 22:44:32 049f6f9 feat: Scott topology on a preorder (#2508) Introduce the Scott topology on a preorder, defined in terms of directed sets. There is already a related notion of Scott topology defined in `topology.omega_complete_partial_order`, where it is defined on ω-complete partial orders in terms of ω-chains. In some circumstances the definition given here coincides with that given in `topology.omega_complete_partial_order` but in general they are different. Abramsky and Jung ([Domain Theory, 2.2.4][abramsky_gabbay_maibaum_1994]) argue that the ω-chain approach has pedagogical advantages, but the directed sets approach is more appropriate as a theoretical foundation. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Analysis/Convex/Cone/Extension.lean Modified Mathlib/Order/CompleteLattice.lean - theorem IsGLB.sInf_eq - theorem IsLUB.sSup_eq + theorem isGLB_iff_sInf_eq + theorem isLUB_iff_sSup_eq Modified Mathlib/Order/Directed.lean +/- theorem DirectedOn.mono Modified Mathlib/Order/UpperLower/Basic.lean + theorem IsLowerSet.lowerBounds_subset + theorem IsUpperSet.upperBounds_subset Added Mathlib/Topology/Order/ScottTopology.lean + theorem DirSupClosed.inter + def DirSupClosed + theorem DirSupInacc.union + def DirSupInacc + theorem IsLowerSet.dirSupInacc + theorem IsUpperSet.dirSupClosed + theorem Topology.IsLower.scottHausdorff_le + theorem Topology.IsScott.closure_singleton + theorem Topology.IsScott.isClosed_Iic + theorem Topology.IsScott.isClosed_iff_isLowerSet_and_dirSupClosed + theorem Topology.IsScott.isLowerSet_of_isClosed + theorem Topology.IsScott.isOpen_iff_isUpperSet_and_dirSupInacc + theorem Topology.IsScott.isOpen_iff_isUpperSet_and_scottHausdorff_open + theorem Topology.IsScott.isUpperSet_of_isOpen + theorem Topology.IsScott.lowerClosure_subset_closure + theorem Topology.IsScott.monotone_of_continuous + theorem Topology.IsScott.scottContinuous_iff_continuous + theorem Topology.IsScott.scottHausdorff_le + theorem Topology.IsScott.topology_eq + theorem Topology.IsScottHausdorff.dirSupClosed_of_isClosed + theorem Topology.IsScottHausdorff.dirSupInacc_of_isOpen + theorem Topology.IsScottHausdorff.isClosed_of_isUpperSet + theorem Topology.IsScottHausdorff.isOpen_iff + theorem Topology.IsScottHausdorff.isOpen_of_isLowerSet + theorem Topology.IsScottHausdorff.topology_eq + theorem Topology.WithScott.isOpen_iff_isUpperSet_and_scottHausdorff_open' + def Topology.WithScott.ofScott + theorem Topology.WithScott.ofScott_inj + theorem Topology.WithScott.ofScott_symm_eq + theorem Topology.WithScott.ofScott_toScott + def Topology.WithScott.toScott + theorem Topology.WithScott.toScott_inj + theorem Topology.WithScott.toScott_ofScott + theorem Topology.WithScott.toScott_symm_eq + def Topology.WithScott.withScottHomeomorph + def Topology.WithScott + def Topology.scott + def Topology.scottHausdorff + theorem Topology.scottHausdorff_le_scott + theorem Topology.upperSet_le_scott + theorem dirSupClosed_Iic + theorem dirSupClosed_compl + theorem dirSupClosed_iff_forall_sSup + theorem dirSupInacc_compl + theorem dirSupInacc_iff_forall_sSup Modified Mathlib/Topology/UniformSpace/UniformConvergenceTopology.lean Modified docs/references.bib 2023-12-07 22:15:02 e09fd6d feat(FieldTheory/Separable): add `AlgEquiv.isSeparable`, `AlgEquiv.isSeparable_iff` and `IsSeparable.isAlgebraic` (#8861) - add `AlgEquiv.isSeparable`, `AlgEquiv.isSeparable_iff` which states that `IsSeparable` is invariant under `AlgEquiv` - also add `IsSeparable.isAlgebraic` which states that separable extension is algebraic ESTIMATED CHANGES Modified Mathlib/FieldTheory/Separable.lean + theorem AlgEquiv.isSeparable + theorem AlgEquiv.isSeparable_iff + theorem IsSeparable.isAlgebraic 2023-12-07 21:29:53 5522fc3 feat: exponentially tilted measures (#7676) Define exponentially tilted measures. The exponential tilting of a measure `μ` on `α` by a function `f : α → ℝ` is the measure with density `x ↦ exp (f x) / ∫ y, exp (f y) ∂μ` with respect to `μ`. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/MeasureTheory/Decomposition/Lebesgue.lean + theorem MeasureTheory.Measure.rnDeriv_withDensity₀ Modified Mathlib/MeasureTheory/Decomposition/RadonNikodym.lean + theorem MeasureTheory.Measure.rnDeriv_mul_rnDeriv Modified Mathlib/MeasureTheory/Function/SpecialFunctions/Basic.lean + theorem Real.aemeasurable_of_aemeasurable_exp + theorem Real.measurable_of_measurable_exp Modified Mathlib/MeasureTheory/Integral/Bochner.lean + theorem MeasureTheory.integral_exp_pos Modified Mathlib/MeasureTheory/Integral/SetIntegral.lean + theorem set_integral_withDensity_eq_set_integral_smul₀' Added Mathlib/MeasureTheory/Measure/Tilted.lean + def MeasureTheory.Measure.tilted + theorem MeasureTheory.absolutelyContinuous_tilted + theorem MeasureTheory.integral_exp_tilted + theorem MeasureTheory.integral_tilted + theorem MeasureTheory.isProbabilityMeasure_tilted + theorem MeasureTheory.lintegral_tilted + theorem MeasureTheory.log_rnDeriv_tilted_left_self + theorem MeasureTheory.rnDeriv_tilted_left + theorem MeasureTheory.rnDeriv_tilted_left_self + theorem MeasureTheory.rnDeriv_tilted_right + theorem MeasureTheory.set_integral_tilted' + theorem MeasureTheory.set_integral_tilted + theorem MeasureTheory.set_lintegral_tilted' + theorem MeasureTheory.set_lintegral_tilted + theorem MeasureTheory.tilted_absolutelyContinuous + theorem MeasureTheory.tilted_apply' + theorem MeasureTheory.tilted_apply + theorem MeasureTheory.tilted_apply_eq_ofReal_integral' + theorem MeasureTheory.tilted_apply_eq_ofReal_integral + theorem MeasureTheory.tilted_comm + theorem MeasureTheory.tilted_congr + theorem MeasureTheory.tilted_const' + theorem MeasureTheory.tilted_const + theorem MeasureTheory.tilted_eq_withDensity_nnreal + theorem MeasureTheory.tilted_neg_same' + theorem MeasureTheory.tilted_neg_same + theorem MeasureTheory.tilted_of_not_aemeasurable + theorem MeasureTheory.tilted_of_not_integrable + theorem MeasureTheory.tilted_tilted + theorem MeasureTheory.tilted_zero' + theorem MeasureTheory.tilted_zero + theorem MeasureTheory.tilted_zero_measure + theorem MeasureTheory.toReal_rnDeriv_tilted_left + theorem MeasureTheory.toReal_rnDeriv_tilted_right Modified Mathlib/MeasureTheory/Measure/WithDensity.lean + theorem MeasureTheory.restrict_withDensity' + theorem MeasureTheory.set_lintegral_withDensity_eq_set_lintegral_mul_non_measurable₀' 2023-12-07 20:36:05 b5120c0 feat: add a version of FTC-2 with an integral over the unit interval (#8615) This adds the following version of the Fundamental Theorem of Calculus: ```lean lemma integral_unitInterval_eq_sub {C E : Type*} [IsROrC C] [NormedAddCommGroup E] [NormedSpace ℝ E] [NormedSpace C E] [CompleteSpace E] [IsScalarTower ℝ C E] {f f' : C → E} {z₀ z₁ : C} (hcont : ContinuousOn (fun t : ℝ ↦ f' (z₀ + t • z₁)) (Set.Icc 0 1)) (hderiv : ∀ t ∈ Set.Icc (0 : ℝ) 1, HasDerivAt f (f' (z₀ + t • z₁)) (z₀ + t • z₁)) : z₁ • ∫ t in (0 : ℝ)..1, f' (z₀ + t • z₁) = f (z₀ + z₁) - f z₀ := ... ``` This is helpful for, e.g., estimating the complex logarithm. ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Integral/FundThmCalculus.lean + theorem intervalIntegral.integral_unitInterval_deriv_eq_sub 2023-12-07 17:41:57 9a694d3 doc: fix typo in Coalgebra docstring (#8874) ESTIMATED CHANGES Modified Mathlib/RingTheory/Coalgebra.lean 2023-12-07 17:41:56 cd73b84 feat: define the composition-product of a measure and a kernel (#8852) The composition-product of a measure and a kernel, denoted by `⊗ₘ`, takes `μ : Measure α` and `κ : kernel α β` and creates `μ ⊗ₘ κ : Measure (α × β)`. The integral of a function against `μ ⊗ₘ κ` is `∫⁻ x, f x ∂(μ ⊗ₘ κ) = ∫⁻ a, ∫⁻ b, f (a, b) ∂(κ a) ∂μ`. This PR also modifies the Disintegration file to use the new definition. From the PFR project. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Probability/Kernel/Basic.lean + theorem ProbabilityTheory.kernel.sum_const Modified Mathlib/Probability/Kernel/CondDistrib.lean Modified Mathlib/Probability/Kernel/Disintegration.lean +/- theorem ProbabilityTheory.measure_eq_compProd +/- theorem ProbabilityTheory.measure_eq_compProd_real Added Mathlib/Probability/Kernel/MeasureCompProd.lean + def MeasureTheory.Measure.compProd + theorem MeasureTheory.Measure.compProd_apply + theorem MeasureTheory.Measure.compProd_congr + theorem MeasureTheory.Measure.compProd_zero_left + theorem MeasureTheory.Measure.compProd_zero_right + theorem MeasureTheory.Measure.dirac_compProd_apply + theorem MeasureTheory.Measure.dirac_unit_compProd + theorem MeasureTheory.Measure.dirac_unit_compProd_const + theorem MeasureTheory.Measure.integrable_compProd_iff + theorem MeasureTheory.Measure.integral_compProd + theorem MeasureTheory.Measure.lintegral_compProd + theorem MeasureTheory.Measure.set_integral_compProd + theorem MeasureTheory.Measure.set_lintegral_compProd + theorem MeasureTheory.Measure.snd_dirac_unit_compProd_const 2023-12-07 17:41:55 c83d3d5 feat: add a discrete topology instance for zlattice (#8480) Add the following ```lean variable [NormedAddCommGroup E] [NormedSpace ℝ E] (b : Basis ι ℝ E) instance [Fintype ι] : DiscreteTopology (span ℤ (Set.range b)) ``` ESTIMATED CHANGES Modified Mathlib/Algebra/Module/Zlattice.lean + theorem Zspan.discreteTopology_pi_basisFun 2023-12-07 17:41:54 f24e05a feat: Compute volume of balls of higher dimension for Lp norms (#8030) We give a formula `measure_unitBall_eq_integral_div_gamma` for computing the volume of the unit ball in a normed finite dimensional `ℝ`-vector space `E` with an Haar measure: ```lean theorem measure_unitBall_eq_integral_div_gamma {E : Type*} {p : ℝ} [NormedAddCommGroup E] [NormedSpace ℝ E] [FiniteDimensional ℝ E] [MeasurableSpace E] [BorelSpace E] (μ : Measure E) [IsAddHaarMeasure μ] (hp : 0 < p) : μ (Metric.ball 0 1) = ENNReal.ofReal ((∫ (x : E), Real.exp (- ‖x‖ ^ p) ∂μ) / Real.Gamma (finrank ℝ E / p + 1)) ``` We also provide a theorem `measure_lt_one_eq_integral_div_gamma` to compute the volume of the ball `{x : E | g x < 1}` for a function `g : E → ℝ` defining a norm. ```lean theorem measure_lt_one_eq_integral_div_gamma {E : Type*} [AddCommGroup E] [Module ℝ E] [FiniteDimensional ℝ E] [mE : MeasurableSpace E] [tE : TopologicalSpace E] [TopologicalAddGroup E] [BorelSpace E] [T2Space E] [ContinuousSMul ℝ E] (μ : Measure E) [IsAddHaarMeasure μ] {g : E → ℝ} (hg0 : g 0 = 0) (hgn : ∀ x, g (- x) = g x) (hgt : ∀ x y, g (x + y) ≤ g x + g y) (hgs : ∀ {x}, g x = 0 → x = 0) (hns : ∀ r x, g (r • x) ≤ |r| * (g x)) {p : ℝ} (hp : 0 < p) : μ {x : E | g x < 1} = ENNReal.ofReal ((∫ (x : E), Real.exp (- (g x) ^ p) ∂μ) / Real.Gamma (finrank ℝ E / p + 1)) ``` This provides a way to compute the volume of the unit ball for the norms `L_p` for `1 ≤ p` in any dimension over the reals `MeasureTheory.volume_sum_rpow_lt_one` and the complex `Complex.volume_sum_rpow_lt_one`. ```lean variable (ι : Type*) [Fintype ι] {p : ℝ} (hp : 1 ≤ p) theorem volume_sum_rpow_lt_one : volume {x : ι → ℝ | ∑ i, |x i| ^ p < 1} = ENNReal.ofReal ((2 * Real.Gamma (1 / p + 1)) ^ card ι / Real.Gamma (card ι / p + 1)) theorem Complex.volume_sum_rpow_lt_one {p : ℝ} (hp : 1 ≤ p) : volume {x : ι → ℂ | ∑ i, ‖x i‖ ^ p < 1} = ENNReal.ofReal ((π * Real.Gamma (2 / p + 1)) ^ card ι / Real.Gamma (2 * card ι / p + 1)) ``` From these, we deduce the volume of balls in several situations. -- Other significant changes include: - Adding `MeasurePreserving.integral_comp'`: when the theorem `MeasurePreserving.integral_comp` is used with `f` a measurable equiv, it is necessary to specify that it is a measurable embedding although it is trivial in this case. This version bypasses this hypothesis - Proof of volume computations of the unit ball in `ℂ` and in `EuclideanSpace ℝ (Fin 2)` which are now done with the methods of the file `VolumeOfBalls` have been moved to this file. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Analysis/SpecialFunctions/Pow/Real.lean + theorem Real.rpow_lt_one_iff' Modified Mathlib/MeasureTheory/Constructions/Pi.lean + theorem MeasureTheory.Measure.pi_empty_univ Modified Mathlib/MeasureTheory/Integral/Bochner.lean + theorem MeasureTheory.MeasurePreserving.integral_comp' Added Mathlib/MeasureTheory/Integral/Gamma.lean + theorem Complex.integral_exp_neg_mul_rpow + theorem Complex.integral_exp_neg_rpow + theorem Complex.integral_rpow_mul_exp_neg_mul_rpow + theorem Complex.integral_rpow_mul_exp_neg_rpow + theorem integral_exp_neg_mul_rpow + theorem integral_exp_neg_rpow + theorem integral_rpow_mul_exp_neg_mul_rpow + theorem integral_rpow_mul_exp_neg_rpow Added Mathlib/MeasureTheory/Integral/Pi.lean + theorem MeasureTheory.integral_finset_prod_eq_pow + theorem MeasureTheory.integral_finset_prod_eq_prod' + theorem MeasureTheory.integral_finset_prod_eq_prod Modified Mathlib/MeasureTheory/Measure/Haar/InnerProductSpace.lean - theorem EuclideanSpace.volume_ball Modified Mathlib/MeasureTheory/Measure/Lebesgue/Complex.lean - theorem Complex.volume_ball - theorem Complex.volume_closedBall Added Mathlib/MeasureTheory/Measure/Lebesgue/VolumeOfBalls.lean + theorem Complex.volume_ball + theorem Complex.volume_closedBall + theorem Complex.volume_sum_rpow_le + theorem Complex.volume_sum_rpow_lt + theorem Complex.volume_sum_rpow_lt_one + theorem Euclidean_space.volume_ball + theorem Euclidean_space.volume_closedBall + theorem InnerProductSpace.volume_ball + theorem InnerProductSpace.volume_closedBall + theorem MeasureTheory.measure_le_eq_lt + theorem MeasureTheory.measure_lt_one_eq_integral_div_gamma + theorem MeasureTheory.measure_unitBall_eq_integral_div_gamma + theorem MeasureTheory.volume_sum_rpow_le + theorem MeasureTheory.volume_sum_rpow_lt + theorem MeasureTheory.volume_sum_rpow_lt_one Modified Mathlib/NumberTheory/NumberField/CanonicalEmbedding.lean 2023-12-07 16:10:06 9c4be1c chore: Change arguments to `smul_le_smul` (#8870) This matches `mul_le_mul`. The old version will be made a lemma again in #8869. ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Module.lean +/- theorem smul_le_smul Modified Mathlib/Analysis/Convex/Mul.lean 2023-12-07 16:10:05 243f402 feat(CategoryTheory): more API for product categories (#8865) This PR develops notions about product categories (natural isomorphisms, equivalences) in order to fill the prerequisites of PR #8864 about the localization of product categories. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/MorphismProperty.lean + theorem CategoryTheory.MorphismProperty.IsInvertedBy.pi + def CategoryTheory.MorphismProperty.pi Modified Mathlib/CategoryTheory/Pi/Basic.lean + def CategoryTheory.Equivalence.pi + def CategoryTheory.Functor.pi'CompEval + def CategoryTheory.NatIso.pi' + def CategoryTheory.NatIso.pi + def CategoryTheory.NatTrans.pi' + def CategoryTheory.Pi.eqToEquivalence + def CategoryTheory.Pi.eqToEquivalenceFunctorIso + def CategoryTheory.Pi.evalCompEqToEquivalenceFunctor + def CategoryTheory.Pi.optionEquivalence + theorem CategoryTheory.isIso_pi_iff 2023-12-07 16:10:04 0ce4f99 feat: PiLp over an empty base is trivial (#8863) ESTIMATED CHANGES Modified Mathlib/Analysis/NormedSpace/WithLp.lean 2023-12-07 16:10:02 8289b55 chore(Order/RelIso): drop a duplicate lemma (#2390) Duplicate of `coe_fn_toEquiv` several lines below. ESTIMATED CHANGES Modified Mathlib/Order/RelIso/Basic.lean - theorem RelIso.coe_toEquiv 2023-12-07 14:58:06 49c5721 refactor(Algebra/Module): Move `Module.ofCore` to a MinimalAxioms file, and rename it `ofMinimalAxioms` (#8853) This makes it consistent with Ring, Field and Group. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Module/Basic.lean - structure Module.Core - def Module.ofCore Added Mathlib/Algebra/Module/MinimalAxioms.lean + def Module.ofMinimalAxioms Modified Mathlib/Topology/ContinuousFunction/Bounded.lean 2023-12-07 14:58:05 a27d7b3 doc: Better documentation for `PosMulMono` and friends (#8841) And also improve the docstrings of the eight typeclasses. I always wished they told me what they state, rather than what nonsense they're the abbreviation of! ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Ring/Lemmas.lean 2023-12-07 14:18:40 b61b03c feat: the affine span is contained in the linear span (#8866) Also lint the corresponding file. ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/AffineSpace/AffineSubspace.lean + theorem affineSpan_le_toAffineSubspace_span + theorem affineSpan_subset_span 2023-12-07 11:12:45 2016a40 feat: When `Finsupp.prod` is nonzero (#8844) Also replace `Finsupp.nonzero_iff_exists` by a more general lemma. ESTIMATED CHANGES Modified Mathlib/Algebra/BigOperators/Finsupp.lean + theorem Finsupp.prod_eq_zero_iff + theorem Finsupp.prod_ne_zero_iff Modified Mathlib/Data/DFinsupp/Basic.lean +/- theorem DFinsupp.coe_mk' +/- theorem DFinsupp.coe_neg +/- theorem DFinsupp.coe_update +/- theorem DFinsupp.coe_zero + theorem DFinsupp.ne_iff + theorem DFinsupp.prod_eq_zero_iff + theorem DFinsupp.prod_ne_zero_iff Modified Mathlib/Data/DFinsupp/Order.lean - theorem DFinsupp.coeFn_mono + theorem DFinsupp.coe_inf + theorem DFinsupp.coe_le_coe + theorem DFinsupp.coe_lt_coe + theorem DFinsupp.coe_mono + theorem DFinsupp.coe_orderEmbeddingToFun + theorem DFinsupp.coe_strictMono + theorem DFinsupp.coe_sup +/- theorem DFinsupp.le_def + theorem DFinsupp.lt_def Modified Mathlib/Data/Finsupp/Basic.lean Modified Mathlib/Data/Finsupp/Defs.lean +/- theorem Finsupp.coe_add +/- theorem Finsupp.coe_neg +/- theorem Finsupp.coe_sub +/- theorem Finsupp.coe_zero + theorem Finsupp.ne_iff - theorem Finsupp.nonzero_iff_exists Modified Mathlib/Data/Finsupp/Order.lean + theorem Finsupp.coe_le_coe + theorem Finsupp.coe_lt_coe + theorem Finsupp.coe_mono + theorem Finsupp.coe_strictMono +/- theorem Finsupp.coe_tsub +/- theorem Finsupp.le_def + theorem Finsupp.lt_def - theorem Finsupp.monotone_toFun Modified Mathlib/Data/MvPolynomial/Equiv.lean 2023-12-07 11:12:44 1003870 feat(RingTheory/Coalgebra): product of coalgebras (#8822) This also splits out a `CoalgebraStruct` typeclass, to allow defining the operators and their definitional properties before committing to proving coassociativity. These proofs are extremely painful, as you're fighting associativity all the time (and `LinearMap.comp` is very verbose in the goal view) ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/Prod.lean + theorem LinearMap.fst_comp_inl + theorem LinearMap.fst_comp_inr + theorem LinearMap.snd_comp_inl + theorem LinearMap.snd_comp_inr Modified Mathlib/LinearAlgebra/TensorProduct.lean + theorem LinearMap.lTensor_comp_mk + theorem LinearMap.rTensor_comp_flip_mk + theorem TensorProduct.map_comm + theorem TensorProduct.map_map_assoc + theorem TensorProduct.map_map_assoc_symm + theorem TensorProduct.map_map_comp_assoc_eq + theorem TensorProduct.map_map_comp_assoc_symm_eq + theorem TensorProduct.map_zero_left + theorem TensorProduct.map_zero_right Modified Mathlib/RingTheory/Coalgebra.lean + theorem Prod.comul_apply + theorem Prod.comul_comp_fst + theorem Prod.comul_comp_inl + theorem Prod.comul_comp_inr + theorem Prod.comul_comp_snd + theorem Prod.counit_apply + theorem Prod.counit_comp_inl + theorem Prod.counit_comp_inr 2023-12-07 10:41:56 f516ea2 chore: remove redundant integrality condition in IsSeparable (#8862) ESTIMATED CHANGES Modified Mathlib/FieldTheory/Fixed.lean Modified Mathlib/FieldTheory/IsAlgClosed/Basic.lean Modified Mathlib/FieldTheory/IsSepClosed.lean Modified Mathlib/FieldTheory/Separable.lean +/- theorem IsSeparable.isIntegral 2023-12-07 09:40:49 8a9d4f0 feat(Set/Pointwise/SMul): add 2 missing instances (#8856) ESTIMATED CHANGES Modified Mathlib/Data/Finset/Pointwise.lean Modified Mathlib/Data/Set/Pointwise/SMul.lean 2023-12-07 09:17:04 85fd915 refactor(Topology): simplify proofs that `CompHaus` and friends are `Precoherent` (#8644) We prove that `CompHaus` and friends are `Precoherent` by proving that they are `Preregular` and `FinitaryExtensive`, removing the previous hacky proofs of characterisations of effective epimorphic families. We also give new, cleaner proofs of those characterisations. - [x] depends on: #8643 ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Sites/EffectiveEpimorphic.lean Modified Mathlib/Topology/Category/CompHaus/EffectiveEpi.lean - def CompHaus.EffectiveEpiFamily.QB - def CompHaus.EffectiveEpiFamily.relation - def CompHaus.EffectiveEpiFamily.struct - def CompHaus.EffectiveEpiFamily.structAux - def CompHaus.EffectiveEpiFamily.ι - def CompHaus.EffectiveEpiFamily.ιFun - theorem CompHaus.EffectiveEpiFamily.ιFun_continuous - theorem CompHaus.EffectiveEpiFamily.ιFun_injective - def CompHaus.EffectiveEpiFamily.ιHom - def CompHaus.EffectiveEpiFamily.π' - theorem CompHaus.EffectiveEpiFamily.π'_comp_ι_hom - theorem CompHaus.EffectiveEpiFamily.π_comp_ι_inv - theorem CompHaus.effectiveEpi_iff_surjective + theorem CompHaus.effectiveEpi_tfae + def CompHaus.struct Modified Mathlib/Topology/Category/Profinite/EffectiveEpi.lean - def Profinite.EffectiveEpiFamily.QB' - def Profinite.EffectiveEpiFamily.QB - def Profinite.EffectiveEpiFamily.relation - def Profinite.EffectiveEpiFamily.struct - def Profinite.EffectiveEpiFamily.structAux - def Profinite.EffectiveEpiFamily.ιFun - theorem Profinite.EffectiveEpiFamily.ιFun_continuous - theorem Profinite.EffectiveEpiFamily.ιFun_injective - def Profinite.EffectiveEpiFamily.ιHom' - def Profinite.EffectiveEpiFamily.ιHom - def Profinite.EffectiveEpiFamily.ιIso' - def Profinite.EffectiveEpiFamily.ιIso - def Profinite.EffectiveEpiFamily.π' - theorem Profinite.EffectiveEpiFamily.π'_comp_ι_hom - theorem Profinite.EffectiveEpiFamily.π_comp_ι_inv +/- theorem Profinite.effectiveEpiFamily_tfae - theorem Profinite.effectiveEpi_iff_surjective + theorem Profinite.effectiveEpi_tfae + def Profinite.struct Modified Mathlib/Topology/Category/Stonean/EffectiveEpi.lean - theorem Stonean.EffectiveEpiFamily.lift_desc_condition - def Stonean.EffectiveEpiFamily.struct +/- theorem Stonean.effectiveEpiFamily_tfae - theorem Stonean.effectiveEpi_iff_surjective + theorem Stonean.effectiveEpi_tfae + def Stonean.struct 2023-12-07 08:20:02 b06c98e feat: a function with vanishing integral against smooth functions supported in U is ae zero in U (#8805) A stronger version of #8800, the differences are: + assume either `IsSigmaCompact U` or `SigmaCompactSpace M`; + only need test functions satisfying `tsupport g ⊆ U` rather than `support g ⊆ U`; + requires `LocallyIntegrableOn` U rather than `LocallyIntegrable` on the whole space. Also fills in some missing APIs around the manifold and measure theory libraries. ESTIMATED CHANGES Modified Mathlib/Algebra/Support.lean + theorem Function.mulSupport_extend_one + theorem Function.mulSupport_extend_one_subset Modified Mathlib/Analysis/Distribution/AEEqOfIntegralContDiff.lean + theorem IsOpen.ae_eq_zero_of_integral_contDiff_smul_eq_zero + theorem IsOpen.ae_eq_zero_of_integral_smooth_smul_eq_zero Modified Mathlib/Geometry/Manifold/ChartedSpace.lean + theorem TopologicalSpace.Opens.chartAt_subtype_val_symm_eventuallyEq Modified Mathlib/Geometry/Manifold/ContMDiff/Basic.lean + theorem ContMDiff.extend_one + theorem Smooth.extend_one + theorem contMDiff_subtype_val + theorem contMdiffAt_subtype_iff + theorem smooth_subtype_iff + theorem smooth_subtype_val Modified Mathlib/Geometry/Manifold/LocalInvariantProperties.lean + theorem StructureGroupoid.LocalInvariantProp.liftPropAt_iff_comp_subtype_val + theorem StructureGroupoid.LocalInvariantProp.liftProp_subtype_val Modified Mathlib/MeasureTheory/Function/LocallyIntegrable.lean + theorem MeasureTheory.LocallyIntegrable.mono +/- theorem MeasureTheory.LocallyIntegrableOn.mono + theorem MeasureTheory.LocallyIntegrableOn.mono_set + theorem MeasureTheory.locallyIntegrable_comap Modified Mathlib/MeasureTheory/Integral/IntegrableOn.lean + theorem MeasurableEmbedding.integrableAtFilter_iff_comap + theorem MeasurableEmbedding.integrableAtFilter_map_iff + theorem MeasurableEmbedding.integrableOn_iff_comap + theorem MeasureTheory.IntegrableOn.inter_of_restrict Modified Mathlib/Topology/LocalHomeomorph.lean + theorem LocalHomeomorph.subtypeRestr_symm_eqOn - theorem OpenEmbedding.continuousAt_iff Modified Mathlib/Topology/Maps.lean + theorem OpenEmbedding.continuousAt_iff Modified Mathlib/Topology/Sets/Opens.lean + theorem TopologicalSpace.Opens.openEmbedding' Modified Mathlib/Topology/Support.lean + theorem HasCompactMulSupport.continuous_extend_one + theorem HasCompactMulSupport.extend_one + theorem HasCompactMulSupport.mulTSupport_extend_one + theorem HasCompactMulSupport.mulTSupport_extend_one_subset 2023-12-07 06:32:46 0b3cbe3 feat: Lemmas for pointwise smul on submodules. (#8654) ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/Operations.lean + theorem Submodule.mem_smul_iff_inv_mul_mem + theorem Submodule.mul_mem_smul_iff + theorem Submodule.span_singleton_mul 2023-12-07 05:20:33 23e13ca feat(Algebra/Ring/CentroidHom): The centroid is the centralizer of multiplication operators (#8581) The centroid of a non-associative, non-unital algebra coincides with the centralizer of the left and right multiplication operators. ESTIMATED CHANGES Modified Mathlib/Algebra/Ring/CentroidHom.lean + theorem CentroidHom.centroid_eq_centralizer_mulLeftRight 2023-12-07 00:37:46 d10d71d chore: rename {LocalHomeomorph,ChartedSpace}.continuous_{to,inv}Fun fields to continuousOn_{to,inv}Fun (#8848) They have type ContinuousOn ..., hence should be named accordingly. Suggested by @fpvandoorn in #8736. ESTIMATED CHANGES Modified Mathlib/Analysis/Calculus/ContDiff/Basic.lean Modified Mathlib/Analysis/Calculus/Inverse.lean Modified Mathlib/Analysis/NormedSpace/HomeomorphBall.lean Modified Mathlib/Analysis/SpecialFunctions/PolarCoord.lean Modified Mathlib/Analysis/SpecialFunctions/Sqrt.lean Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Arctan.lean Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Inverse.lean Modified Mathlib/Geometry/Manifold/ChartedSpace.lean Modified Mathlib/Geometry/Manifold/ContMDiff/Defs.lean Modified Mathlib/Geometry/Manifold/Instances/Real.lean Modified Mathlib/Geometry/Manifold/Instances/Sphere.lean Modified Mathlib/Geometry/Manifold/VectorBundle/FiberwiseLinear.lean Modified Mathlib/Topology/Covering.lean Modified Mathlib/Topology/FiberBundle/Basic.lean Modified Mathlib/Topology/FiberBundle/Constructions.lean Modified Mathlib/Topology/FiberBundle/Trivialization.lean Modified Mathlib/Topology/IsLocallyHomeomorph.lean Modified Mathlib/Topology/LocalHomeomorph.lean Modified scripts/nolints.json 2023-12-06 23:43:05 5e79832 feat: allow pattern matching in set-builder notation (#8850) Allow the use of pattern matching in set-builder notation. For example, `{ (m, n) : ℕ × ℕ | m * n = 12 }` denotes the set of all ordered pairs of natural numbers whose product is 12. ESTIMATED CHANGES Modified Mathlib/Init/Set.lean + def Set.setOfPatternMatchUnexpander 2023-12-06 22:58:28 fccca5a chore(Topology/ContinuousFunction/Bounded): add a `BoundedSMul` instance (#8854) This typeclass probably didn't exist yet when this was written. Also cleans up some nearby style and comments. ESTIMATED CHANGES Modified Mathlib/Analysis/NormedSpace/Basic.lean Modified Mathlib/Topology/ContinuousFunction/Bounded.lean - theorem BoundedContinuousFunction.norm_smul_le 2023-12-06 21:57:04 796fc3f feat : add lemma on nilpotent and powers (#8831) Changed `IsNilpotent.pow to IsNilpotent.pow_succ`. Added `IsNilpotent.of_pow` and `IsNilpotent.pow_iff_pos`. ESTIMATED CHANGES Modified Mathlib/RingTheory/Nilpotent.lean + theorem IsNilpotent.of_pow - theorem IsNilpotent.pow + theorem IsNilpotent.pow_iff_pos + theorem IsNilpotent.pow_succ 2023-12-06 19:19:17 11980d2 chore: Move `OrderDual` action instances to their own file (#8840) Also add a few missing ones: * `OrderDual.instSMulWithZero` * `OrderDual.instMulAction` * `OrderDual.instMulActionWithZero` * `OrderDual.instDistribMulAction` In every case, we prime the originally unprimed/unnamed version. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Order/Module/Synonym.lean Modified Mathlib/Algebra/Order/SMul.lean 2023-12-06 14:30:22 561ab09 feat(NumberTheory/EulerProduct): add Euler Products for zeta function and Dirichlet L series (#8751) This adds proofs of the Euler product formula for the Riemann zeta function and Dirichlet L-series. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Data/Complex/Abs.lean + theorem Complex.ne_zero_of_one_lt_re + theorem Complex.re_neg_ne_zero_of_one_lt_re Added Mathlib/NumberTheory/EulerProduct/DirichletLSeries.lean + theorem dirichletLSeries_eulerProduct + def dirichletSummandHom + def riemannZetaSummandHom + theorem riemannZeta_eulerProduct + theorem summable_dirichletSummand + theorem summable_riemannZetaSummand 2023-12-06 13:34:29 dc62cf3 feat: Add `norm_one_add_smul`. (#8681) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/LinearAlgebra/Matrix/Charpoly/Coeff.lean + theorem Matrix.coeff_det_one_add_X_smul_one + theorem Matrix.derivative_det_one_add_X_smul + theorem Matrix.derivative_det_one_add_X_smul_aux + theorem Matrix.det_one_add_X_smul + theorem Matrix.det_one_add_smul + theorem Matrix.eval_det_add_X_smul Modified Mathlib/LinearAlgebra/Matrix/Trace.lean + theorem Matrix.trace_submatrix_succ Added Mathlib/RingTheory/NormTrace.lean + theorem Algebra.norm_one_add_smul Modified Mathlib/RingTheory/PolynomialAlgebra.lean + theorem matPolyEquiv_map_smul 2023-12-06 12:31:23 d464fed feat(Init/Control/Lawful): The IO monad is lawful (#8772) The motivation is to provide a no-op `ULiftable IO IO` instance; otherwise APIs developed in terms of universe polymorphic monads can't be used with `IO`, even if specialized to a single universe. ESTIMATED CHANGES Modified Mathlib/Control/ULiftable.lean Modified Mathlib/Init/Control/Lawful.lean 2023-12-06 12:08:45 9d4c128 feat: mul for DirichletCharacter (#8770) Multiply Dirichlet characters at a common level and obtain their associated primitive character. It also includes a lemma confirming the primitiveness of the resulting character. ESTIMATED CHANGES Modified Mathlib/NumberTheory/DirichletCharacter/Basic.lean + theorem DirichletCharacter.isPrimitive.primitive_mul + theorem DirichletCharacter.mul_def 2023-12-06 11:04:34 07e59b7 chore: Move `RingTheory/NonZeroDivisors` under `Algebra` instead. (#8685) ESTIMATED CHANGES Modified Mathlib.lean Renamed Mathlib/RingTheory/NonZeroDivisors.lean to Mathlib/Algebra/GroupWithZero/NonZeroDivisors.lean + theorem coe_nonZeroDivisorsLeft_eq + theorem coe_nonZeroDivisorsRight_eq + theorem mem_nonZeroDivisorsLeft_iff + theorem mem_nonZeroDivisorsRight_iff + def nonZeroDivisorsLeft + theorem nonZeroDivisorsLeft_eq_right + def nonZeroDivisorsRight Deleted Mathlib/GroupTheory/Submonoid/ZeroDivisors.lean - theorem coe_nonZeroDivisorsLeft_eq - theorem coe_nonZeroDivisorsRight_eq - theorem mem_nonZeroDivisorsLeft_iff - theorem mem_nonZeroDivisorsRight_iff - def nonZeroDivisorsLeft - theorem nonZeroDivisorsLeft_eq_right - def nonZeroDivisorsRight Modified Mathlib/LinearAlgebra/SesquilinearForm.lean Modified Mathlib/RingTheory/Ideal/Operations.lean Modified Mathlib/RingTheory/Localization/Basic.lean Modified Mathlib/RingTheory/Localization/Integral.lean Modified Mathlib/RingTheory/Nilpotent.lean Modified Mathlib/RingTheory/OreLocalization/Basic.lean Modified Mathlib/RingTheory/Polynomial/ScaleRoots.lean 2023-12-06 10:33:18 5b80db7 feat: Add `Submodule.le_of_le_smul_of_le_jacobson_bot`. (#8679) ESTIMATED CHANGES Modified Mathlib/RingTheory/Artinian.lean Modified Mathlib/RingTheory/DiscreteValuationRing/TFAE.lean Modified Mathlib/RingTheory/Nakayama.lean + theorem Submodule.le_of_le_smul_of_le_jacobson_bot + theorem Submodule.smul_le_of_le_smul_of_le_jacobson_bot - theorem Submodule.smul_sup_eq_smul_sup_of_le_smul_of_le_jacobson - theorem Submodule.smul_sup_le_of_le_smul_of_le_jacobson_bot + theorem Submodule.sup_eq_sup_smul_of_le_smul_of_le_jacobson + theorem Submodule.sup_smul_eq_sup_smul_of_le_smul_of_le_jacobson 2023-12-06 07:02:47 ae28400 chore(Measure/AEMeasurable): golf a proof (#8837) Use recently added `map_apply₀` to golf `map_map_of_aemeasurable`. ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Measure/AEMeasurable.lean 2023-12-06 04:15:38 a357dd5 chore: bump Std (#8834) ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Measure/FiniteMeasureProd.lean Modified lake-manifest.json 2023-12-05 22:38:02 c6ea155 feat: Binary products of finite measures and probability measures. (#8721) [Upstreaming from PFR project](https://teorth.github.io/pfr/docs/PFR/ForMathlib/FiniteMeasureProd.html) This PR defines binary products of finite measures and probability measures. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/MeasureTheory/Measure/FiniteMeasure.lean +/- theorem MeasureTheory.FiniteMeasure.map_apply +/- theorem MeasureTheory.FiniteMeasure.map_smul + theorem MeasureTheory.FiniteMeasure.toMeasure_map Added Mathlib/MeasureTheory/Measure/FiniteMeasureProd.lean + theorem MeasureTheory.FiniteMeasure.map_fst_prod + theorem MeasureTheory.FiniteMeasure.map_prod_map + theorem MeasureTheory.FiniteMeasure.map_snd_prod + theorem MeasureTheory.FiniteMeasure.mass_prod + theorem MeasureTheory.FiniteMeasure.prod_apply + theorem MeasureTheory.FiniteMeasure.prod_apply_symm + theorem MeasureTheory.FiniteMeasure.prod_prod + theorem MeasureTheory.FiniteMeasure.prod_swap + theorem MeasureTheory.FiniteMeasure.prod_zero + theorem MeasureTheory.FiniteMeasure.toMeasure_prod + theorem MeasureTheory.FiniteMeasure.zero_prod + theorem MeasureTheory.ProbabilityMeasure.map_fst_prod + theorem MeasureTheory.ProbabilityMeasure.map_prod_map + theorem MeasureTheory.ProbabilityMeasure.map_snd_prod + theorem MeasureTheory.ProbabilityMeasure.prod_apply + theorem MeasureTheory.ProbabilityMeasure.prod_apply_symm + theorem MeasureTheory.ProbabilityMeasure.prod_prod + theorem MeasureTheory.ProbabilityMeasure.prod_swap + theorem MeasureTheory.ProbabilityMeasure.toMeasure_prod Modified Mathlib/MeasureTheory/Measure/ProbabilityMeasure.lean +/- theorem MeasureTheory.ProbabilityMeasure.map_apply + theorem MeasureTheory.ProbabilityMeasure.toMeasure_map 2023-12-05 18:54:46 bcd9607 feat: Add API for `AlgEquiv`. (#8639) ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/Equiv.lean + def AlgEquiv.algHomUnitsEquiv + theorem AlgEquiv.one_toLinearMap + theorem AlgEquiv.pow_toLinearMap + theorem AlgEquiv.toAlgHom_toRingHom + def AlgEquiv.toLinearMapHom Modified Mathlib/Algebra/Algebra/Hom.lean + theorem RingHom.toIntAlgHom_injective Modified Mathlib/Algebra/Group/Equiv/Basic.lean + theorem MulEquivClass.toMulEquiv_injective Modified Mathlib/Logic/Equiv/Defs.lean + theorem EquivLike.coe_coe Modified Mathlib/RepresentationTheory/Rep.lean 2023-12-05 16:55:45 55a024a feat: pi-systems generating the product sigma algebra (#7566) We define pi-systems of cylinders and prove that they generate `MeasurableSpace.pi`. From the Kolmogorov extension theorem project. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Data/Set/Prod.lean + theorem Set.union_pi_inter Added Mathlib/MeasureTheory/Constructions/Cylinders.lean + theorem MeasurableSet.cylinder + theorem MeasureTheory.IsClosed.cylinder + theorem MeasureTheory.comap_eval_le_generateFrom_squareCylinders_singleton + theorem MeasureTheory.compl_cylinder + theorem MeasureTheory.compl_mem_measurableCylinders + def MeasureTheory.cylinder + theorem MeasureTheory.cylinder_empty + theorem MeasureTheory.cylinder_eq_cylinder_union + theorem MeasureTheory.cylinder_eq_empty_iff + theorem MeasureTheory.cylinder_mem_measurableCylinders + theorem MeasureTheory.cylinder_univ + theorem MeasureTheory.diff_cylinder_same + theorem MeasureTheory.diff_mem_measurableCylinders + theorem MeasureTheory.disjoint_cylinder_iff + theorem MeasureTheory.empty_mem_measurableCylinders + theorem MeasureTheory.eq_of_cylinder_eq_of_subset + theorem MeasureTheory.generateFrom_measurableCylinders + theorem MeasureTheory.generateFrom_squareCylinders + theorem MeasureTheory.inter_cylinder + theorem MeasureTheory.inter_cylinder_same + theorem MeasureTheory.inter_mem_measurableCylinders + theorem MeasureTheory.isPiSystem_measurableCylinders + theorem MeasureTheory.isPiSystem_squareCylinders + theorem MeasureTheory.measurableCylinders.eq_cylinder + theorem MeasureTheory.measurableCylinders.measurableSet + def MeasureTheory.measurableCylinders.set + def MeasureTheory.measurableCylinders + theorem MeasureTheory.mem_cylinder + theorem MeasureTheory.mem_measurableCylinders + def MeasureTheory.squareCylinders + theorem MeasureTheory.squareCylinders_eq_iUnion_image + theorem MeasureTheory.union_cylinder + theorem MeasureTheory.union_cylinder_same + theorem MeasureTheory.union_mem_measurableCylinders + theorem MeasureTheory.univ_mem_measurableCylinders 2023-12-05 15:20:57 0ea5803 feat: lemmas about perfect pairings and dual (co)annihilators (#8824) ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/Dual.lean Modified Mathlib/LinearAlgebra/PerfectPairing.lean +/- theorem LinearEquiv.symm_flip +/- theorem LinearEquiv.trans_dualMap_symm_flip + theorem Submodule.dualAnnihilator_map_linearEquiv_flip_symm + theorem Submodule.dualCoannihilator_map_linearEquiv_flip + theorem Submodule.map_dualAnnihilator_linearEquiv_flip_symm + theorem Submodule.map_dualCoannihilator_linearEquiv_flip 2023-12-05 14:12:56 c2164f0 chore: tidy various files (#8823) ESTIMATED CHANGES Modified Counterexamples/Phillips.lean Modified Mathlib/Algebra/Category/ModuleCat/Monoidal/Basic.lean Modified Mathlib/Algebra/Homology/ShortComplex/Preadditive.lean +/- theorem CategoryTheory.ShortComplex.homologyMap_add +/- theorem CategoryTheory.ShortComplex.homologyMap_neg +/- theorem CategoryTheory.ShortComplex.leftHomologyMap_add +/- theorem CategoryTheory.ShortComplex.leftHomologyMap_neg +/- theorem CategoryTheory.ShortComplex.rightHomologyMap_neg Modified Mathlib/Algebra/Lie/Killing.lean Modified Mathlib/Algebra/Module/Zlattice.lean Modified Mathlib/Analysis/Calculus/BumpFunction/Convolution.lean + theorem ContDiffBump.ae_convolution_tendsto_right_of_locallyIntegrable - theorem ContDiffBump.ae_convolution_tendsto_right_of_locally_integrable Modified Mathlib/Analysis/Calculus/FormalMultilinearSeries.lean + theorem ContinuousLinearMap.fpowerSeries_apply_one + theorem ContinuousLinearMap.fpowerSeries_apply_zero - theorem ContinuousLinearMap.fpower_series_apply_one - theorem ContinuousLinearMap.fpower_series_apply_zero Modified Mathlib/CategoryTheory/Monoidal/Transport.lean Modified Mathlib/CategoryTheory/Sites/EqualizerSheafCondition.lean Modified Mathlib/CategoryTheory/Sites/SheafOfTypes.lean Modified Mathlib/Data/List/Basic.lean Modified Mathlib/Data/List/Range.lean Modified Mathlib/Data/Nat/Cast/Defs.lean Modified Mathlib/Data/Num/Lemmas.lean Modified Mathlib/Data/Polynomial/FieldDivision.lean Modified Mathlib/Data/Polynomial/RingDivision.lean Modified Mathlib/Data/Polynomial/UnitTrinomial.lean Modified Mathlib/Data/Rat/Lemmas.lean Modified Mathlib/Data/Real/ENNReal.lean Modified Mathlib/Data/Sign.lean Modified Mathlib/GroupTheory/Subgroup/Finite.lean Modified Mathlib/GroupTheory/Submonoid/Operations.lean Modified Mathlib/MeasureTheory/Constructions/Prod/Integral.lean Modified Mathlib/MeasureTheory/Group/GeometryOfNumbers.lean Modified Mathlib/MeasureTheory/Integral/SetIntegral.lean Modified Mathlib/RingTheory/Artinian.lean Modified Mathlib/Topology/Category/Profinite/Product.lean Modified Mathlib/Topology/ContinuousFunction/StoneWeierstrass.lean Modified Mathlib/Topology/GDelta.lean + theorem isNowhereDense_empty - theorem isNowhereDense_of_empty Modified Mathlib/Topology/Sheaves/Skyscraper.lean Modified Mathlib/Topology/Support.lean 2023-12-05 11:51:27 b06172d chore: add no space after "←" to lint-style.py (#8789) ESTIMATED CHANGES Modified Counterexamples/CliffordAlgebra_not_injective.lean Modified Mathlib/Combinatorics/SimpleGraph/Basic.lean +/- theorem SimpleGraph.edgeSet_eq_empty Modified Mathlib/Logic/Relation.lean Modified Mathlib/MeasureTheory/Measure/HasOuterApproxClosed.lean Modified Mathlib/RingTheory/PolynomialAlgebra.lean Modified scripts/lint-style.py 2023-12-05 09:47:53 ac94cca chore: split RepresentationTheory.Action in multiple files (#8660) Splits `Mathlib.RepresentationTheory.Action` in multiple files. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Category/MonCat/Basic.lean Deleted Mathlib/RepresentationTheory/Action.lean - def Action.FunctorCategoryEquivalence.counitIso - def Action.FunctorCategoryEquivalence.functor - def Action.FunctorCategoryEquivalence.inverse - def Action.FunctorCategoryEquivalence.unitIso - def Action.Hom.comp - def Action.Hom.id - structure Action.Hom - theorem Action.Iso.conj_ρ - def Action.abelianAux - def Action.actionPunitEquivalence - theorem Action.add_hom - theorem Action.associator_hom_hom - theorem Action.associator_inv_hom - theorem Action.comp_hom - def Action.diagonal - def Action.diagonalOneIsoLeftRegular - def Action.forget - def Action.forgetBraided - def Action.forgetMonoidal - def Action.functorCategoryEquivalence - def Action.functorCategoryEquivalenceCompEvaluation - theorem Action.functorCategoryMonoidalEquivalence.counit_app - theorem Action.functorCategoryMonoidalEquivalence.functor_map - theorem Action.functorCategoryMonoidalEquivalence.inv_counit_app_hom - theorem Action.functorCategoryMonoidalEquivalence.inv_unit_app_app - theorem Action.functorCategoryMonoidalEquivalence.inverse_map - theorem Action.functorCategoryMonoidalEquivalence.unit_app_hom - theorem Action.functorCategoryMonoidalEquivalence.ε_app - theorem Action.functorCategoryMonoidalEquivalence.μIso_inv_app - theorem Action.functorCategoryMonoidalEquivalence.μ_app - def Action.functorCategoryMonoidalEquivalence - theorem Action.hom_ext - theorem Action.id_hom - theorem Action.leftDual_v - theorem Action.leftDual_ρ - def Action.leftRegular - theorem Action.leftUnitor_hom_hom - theorem Action.leftUnitor_inv_hom - def Action.mkIso - theorem Action.neg_hom - def Action.ofMulAction - def Action.ofMulActionLimitCone - theorem Action.ofMulAction_apply - def Action.res - def Action.resComp - def Action.resId - theorem Action.rightDual_v - theorem Action.rightDual_ρ - theorem Action.rightUnitor_hom_hom - theorem Action.rightUnitor_inv_hom - theorem Action.smul_hom - theorem Action.sum_hom - def Action.tensorUnitIso - theorem Action.tensorUnit_rho - theorem Action.tensorUnit_v - theorem Action.tensor_hom - theorem Action.tensor_rho - theorem Action.tensor_v - def Action.trivial - theorem Action.whiskerLeft_hom - theorem Action.whiskerRight_hom - theorem Action.zero_hom - def Action.ρAut - theorem Action.ρ_one - structure Action - def CategoryTheory.Functor.mapAction - def CategoryTheory.MonoidalFunctor.mapAction - theorem CategoryTheory.MonoidalFunctor.mapAction_ε_inv_hom - theorem CategoryTheory.MonoidalFunctor.mapAction_μ_inv_hom Added Mathlib/RepresentationTheory/Action/Basic.lean + def Action.FunctorCategoryEquivalence.counitIso + def Action.FunctorCategoryEquivalence.functor + def Action.FunctorCategoryEquivalence.inverse + def Action.FunctorCategoryEquivalence.unitIso + def Action.Hom.comp + def Action.Hom.id + structure Action.Hom + theorem Action.Iso.conj_ρ + def Action.actionPunitEquivalence + theorem Action.comp_hom + def Action.diagonal + def Action.diagonalOneIsoLeftRegular + def Action.forget + def Action.functorCategoryEquivalence + def Action.functorCategoryEquivalenceCompEvaluation + theorem Action.hom_ext + theorem Action.id_hom + def Action.leftRegular + def Action.mkIso + def Action.ofMulAction + def Action.ofMulActionLimitCone + theorem Action.ofMulAction_apply + def Action.res + def Action.resComp + def Action.resId + def Action.trivial + def Action.ρAut + theorem Action.ρ_one + structure Action + def CategoryTheory.Functor.mapAction Added Mathlib/RepresentationTheory/Action/Limits.lean + def Action.abelianAux + theorem Action.add_hom + theorem Action.neg_hom + theorem Action.smul_hom + theorem Action.sum_hom + theorem Action.zero_hom Added Mathlib/RepresentationTheory/Action/Monoidal.lean + theorem Action.associator_hom_hom + theorem Action.associator_inv_hom + def Action.forgetBraided + def Action.forgetMonoidal + theorem Action.functorCategoryMonoidalEquivalence.counit_app + theorem Action.functorCategoryMonoidalEquivalence.functor_map + theorem Action.functorCategoryMonoidalEquivalence.inv_counit_app_hom + theorem Action.functorCategoryMonoidalEquivalence.inv_unit_app_app + theorem Action.functorCategoryMonoidalEquivalence.inverse_map + theorem Action.functorCategoryMonoidalEquivalence.unit_app_hom + theorem Action.functorCategoryMonoidalEquivalence.ε_app + theorem Action.functorCategoryMonoidalEquivalence.μIso_inv_app + theorem Action.functorCategoryMonoidalEquivalence.μ_app + def Action.functorCategoryMonoidalEquivalence + theorem Action.leftDual_v + theorem Action.leftDual_ρ + theorem Action.leftUnitor_hom_hom + theorem Action.leftUnitor_inv_hom + theorem Action.rightDual_v + theorem Action.rightDual_ρ + theorem Action.rightUnitor_hom_hom + theorem Action.rightUnitor_inv_hom + def Action.tensorUnitIso + theorem Action.tensorUnit_rho + theorem Action.tensorUnit_v + theorem Action.tensor_hom + theorem Action.tensor_rho + theorem Action.tensor_v + theorem Action.whiskerLeft_hom + theorem Action.whiskerRight_hom + def CategoryTheory.MonoidalFunctor.mapAction + theorem CategoryTheory.MonoidalFunctor.mapAction_ε_inv_hom + theorem CategoryTheory.MonoidalFunctor.mapAction_μ_inv_hom Modified Mathlib/RepresentationTheory/Rep.lean 2023-12-05 09:14:34 0b07d87 feat: the homology sequence of a short exact sequence of complexes (#8468) If `0 ⟶ X₁ ⟶ X₂ ⟶ X₃ ⟶ 0` is a short exact sequence in a category of complexes `HomologicalComplex C c` in an abelian category, then whenever `i` and `j` are consecutive degrees, there is a long exact sequence : `... ⟶ X₁.homology i ⟶ X₂.homology i ⟶ X₃.homology i ⟶ X₁.homology j ⟶ ...`. ESTIMATED CHANGES Modified Mathlib/Algebra/Homology/ExactSequence.lean Modified Mathlib/Algebra/Homology/HomologySequence.lean + theorem CategoryTheory.ShortComplex.ShortExact.comp_δ + theorem CategoryTheory.ShortComplex.ShortExact.homology_exact₁ + theorem CategoryTheory.ShortComplex.ShortExact.homology_exact₂ + theorem CategoryTheory.ShortComplex.ShortExact.homology_exact₃ + theorem CategoryTheory.ShortComplex.ShortExact.δ_comp + theorem HomologicalComplex.cycles_left_exact + theorem HomologicalComplex.opcycles_right_exact Modified Mathlib/CategoryTheory/Limits/Shapes/Kernels.lean + def CategoryTheory.Limits.CokernelCofork.IsColimit.ofπ' + def CategoryTheory.Limits.KernelFork.IsLimit.ofι' 2023-12-05 08:35:36 c5eb45f feat(Condensed): Explicit descriptions of condensed sets (#6731) We prove the characterisation of condensed sets as finite-product preserving presheaves satisfying the equalizer condition on `CompHaus`/`Profinite`, and just finite-product preserving presheaves on `Stonean`. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/CategoryTheory/Limits/Preserves/Finite.lean Added Mathlib/Condensed/Explicit.lean + theorem CategoryTheory.isSheaf_coherent_iff_regular_and_extensive + theorem CompHaus.isSheaf_iff_preservesFiniteProducts_and_equalizerCondition' + theorem CompHaus.isSheaf_iff_preservesFiniteProducts_and_equalizerCondition + theorem CondensedSet.equalizerCondition + theorem Profinite.isSheaf_iff_preservesFiniteProducts_and_equalizerCondition' + theorem Profinite.isSheaf_iff_preservesFiniteProducts_and_equalizerCondition + theorem Stonean.isSheaf_iff_preservesFiniteProducts' + theorem Stonean.isSheaf_iff_preservesFiniteProducts 2023-12-05 08:06:32 1751be6 chore: fix "open Mathlib" benchmark (#8808) ESTIMATED CHANGES Modified scripts/bench/temci-config.run.yml 2023-12-05 07:12:36 34bb97b feat(Algebra/Category/GroupCat/Injective) : commutative multiplicative groups have enough injectives (#8819) since commutative additive groups have enough injectives, multiplicative ones have enough injectives as well. ESTIMATED CHANGES Modified Mathlib/Algebra/Category/GroupCat/Injective.lean 2023-12-05 06:29:54 bb71af2 chore(UniformConvergenceTopology): golf, reflow (#8812) - Move a proof up, golf. - Replace `(· ∘ ·) f` with `(f ∘ ·)`. - Reflow structure constructors. ESTIMATED CHANGES Modified Mathlib/Topology/UniformSpace/UniformConvergenceTopology.lean +/- theorem UniformOnFun.t2Space_of_covering 2023-12-05 05:47:06 9ea21ba feat(UniformGroup): add `UniformInducing.uniformGroup` (#8813) ESTIMATED CHANGES Modified Mathlib/Topology/Algebra/Module/StrongTopology.lean Modified Mathlib/Topology/Algebra/UniformGroup.lean + theorem UniformInducing.uniformGroup - theorem uniformGroup_comap 2023-12-05 00:40:34 befd8b2 feat(RingTheory): coalgebra definition (#8621) Add definition and example of a coalgebra. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/RingTheory/Coalgebra.lean + theorem Coalgebra.coassoc_apply + theorem Coalgebra.coassoc_symm + theorem Coalgebra.coassoc_symm_apply + theorem Coalgebra.lTensor_counit_comul + theorem Coalgebra.rTensor_counit_comul + theorem CommSemiring.comul_apply + theorem CommSemiring.counit_apply + theorem Finsupp.comul_single + theorem Finsupp.counit_single 2023-12-04 23:32:33 c3269f9 refactor: code cleanup in gcongr (#8796) * Extract the default side-goal and main-goal gcongr dischargers into functions * Change the default main-goal discharger to `gcongr_forward` (instead of `assumption` which is never used) * add `subset_of_ssubset` as a `gcongr_forward` lemma ESTIMATED CHANGES Modified Mathlib/Tactic/GCongr.lean + def exactSubsetOfSSubset Modified Mathlib/Tactic/GCongr/Core.lean + def Mathlib.Tactic.GCongr.gcongrDischarger + def Mathlib.Tactic.GCongr.gcongrForwardDischarger 2023-12-04 23:32:32 b8e4d75 doc: Mark named theorems including Compactness Theorem, Halting Problem, Tarski Vaught, Łoś (#8743) ESTIMATED CHANGES Modified Mathlib/Computability/Halting.lean Modified Mathlib/ModelTheory/ElementaryMaps.lean Modified Mathlib/ModelTheory/Satisfiability.lean Modified Mathlib/ModelTheory/Ultraproducts.lean 2023-12-04 22:16:18 397ec08 chore: tidy various files (#8818) ESTIMATED CHANGES Modified Mathlib/Algebra/Category/ModuleCat/Free.lean Modified Mathlib/Algebra/Lie/Submodule.lean Modified Mathlib/Analysis/Normed/Group/Basic.lean Modified Mathlib/Analysis/NormedSpace/Pointwise.lean Modified Mathlib/Analysis/SpecialFunctions/Gamma/Basic.lean +/- theorem Complex.Gamma_one Modified Mathlib/Analysis/SpecialFunctions/Gaussian.lean Modified Mathlib/Analysis/SpecialFunctions/Log/Base.lean Modified Mathlib/CategoryTheory/Limits/Fubini.lean Modified Mathlib/CategoryTheory/Limits/Preserves/Ulift.lean Modified Mathlib/Control/Traversable/Equiv.lean + theorem Equiv.traverse_def Modified Mathlib/Data/DFinsupp/Basic.lean Modified Mathlib/Data/Fin/Tuple/Basic.lean Modified Mathlib/Data/Int/ModEq.lean Modified Mathlib/Data/Int/Parity.lean Modified Mathlib/Data/List/Basic.lean Modified Mathlib/Data/Rel.lean Modified Mathlib/FieldTheory/Normal.lean Modified Mathlib/FieldTheory/NormalClosure.lean Modified Mathlib/GroupTheory/Order/Min.lean Modified Mathlib/GroupTheory/PushoutI.lean Modified Mathlib/GroupTheory/Torsion.lean Modified Mathlib/LinearAlgebra/Eigenspace/Triangularizable.lean Modified Mathlib/MeasureTheory/Constructions/HaarToSphere.lean Modified Mathlib/MeasureTheory/Function/L1Space.lean Modified Mathlib/MeasureTheory/MeasurableSpace/Basic.lean Modified Mathlib/Order/Filter/Basic.lean Modified Mathlib/Probability/Distributions/Exponential.lean Modified Mathlib/Probability/Independence/Kernel.lean Modified Mathlib/Topology/Basic.lean Modified Mathlib/Topology/CompletelyRegular.lean Modified Mathlib/Topology/MetricSpace/Infsep.lean 2023-12-04 22:16:17 32c3acd feat(Algebra/Order/Sub/Canonical): add `tsub_tsub_eq_add_tsub_of_le` (#8804) ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Sub/Canonical.lean + theorem tsub_tsub_eq_add_tsub_of_le 2023-12-04 21:08:39 df634f2 refactor: replace some `@foo _ _ _ _ _ ...` by named arguments (#8702) Using Lean4's named arguments, we manage to remove a few hard-to-read explicit function calls `@foo _ _ _ _ _ ...` which used to be necessary in Lean3. Occasionally, this results in slightly longer code. The benefit of named arguments is readability, as well as to reduce the brittleness of the code when the argument order is changed. ESTIMATED CHANGES Modified Mathlib/Algebra/Bounds.lean Modified Mathlib/Algebra/Category/ModuleCat/Basic.lean Modified Mathlib/Algebra/Module/DedekindDomain.lean Modified Mathlib/Algebra/Module/PID.lean Modified Mathlib/Algebra/Order/Group/DenselyOrdered.lean Modified Mathlib/Algebra/Order/Monoid/WithTop.lean Modified Mathlib/Analysis/Calculus/BumpFunction/FiniteDimension.lean Modified Mathlib/Analysis/Calculus/ContDiff/Basic.lean Modified Mathlib/Analysis/Convex/Extrema.lean Modified Mathlib/Analysis/Convex/Function.lean Modified Mathlib/Analysis/Convex/Jensen.lean Modified Mathlib/Analysis/InnerProductSpace/EuclideanDist.lean Modified Mathlib/Analysis/SpecialFunctions/Exponential.lean Modified Mathlib/Analysis/SpecialFunctions/Pow/Continuity.lean Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/InverseDeriv.lean Modified Mathlib/CategoryTheory/Limits/Over.lean Modified Mathlib/CategoryTheory/Limits/Shapes/CommSq.lean Modified Mathlib/Combinatorics/Pigeonhole.lean Modified Mathlib/Data/Polynomial/Module.lean Modified Mathlib/Geometry/Manifold/ContMDiff/NormedSpace.lean Modified Mathlib/GroupTheory/Congruence.lean Modified Mathlib/LinearAlgebra/AffineSpace/AffineSubspace.lean Modified Mathlib/LinearAlgebra/AffineSpace/Ordered.lean Modified Mathlib/LinearAlgebra/Basic.lean Modified Mathlib/LinearAlgebra/Basis/VectorSpace.lean Modified Mathlib/LinearAlgebra/DirectSum/TensorProduct.lean Modified Mathlib/LinearAlgebra/FiniteDimensional.lean Modified Mathlib/LinearAlgebra/LinearIndependent.lean Modified Mathlib/MeasureTheory/Function/ConditionalExpectation/Real.lean Modified Mathlib/MeasureTheory/Group/Action.lean Modified Mathlib/MeasureTheory/Measure/Haar/OfBasis.lean Modified Mathlib/Order/ConditionallyCompleteLattice/Basic.lean Modified Mathlib/Order/ConditionallyCompleteLattice/Group.lean Modified Mathlib/Order/GaloisConnection.lean Modified Mathlib/Order/Max.lean Modified Mathlib/Order/SuccPred/Basic.lean Modified Mathlib/RingTheory/Etale.lean Modified Mathlib/RingTheory/Finiteness.lean Modified Mathlib/RingTheory/Localization/Basic.lean Modified Mathlib/RingTheory/Trace.lean Modified Mathlib/Topology/Algebra/Module/Star.lean Modified Mathlib/Topology/Algebra/Order/IntermediateValue.lean Modified Mathlib/Topology/Sheaves/Stalks.lean Modified Mathlib/Topology/UnitInterval.lean 2023-12-04 20:27:47 0fee6f3 feat: add a few lemmas about MvPolynomial.totalDegree (#8815) From hairer. ESTIMATED CHANGES Modified Mathlib/Data/MvPolynomial/CommRing.lean + theorem MvPolynomial.totalDegree_sub_C_le Modified Mathlib/Data/MvPolynomial/Variables.lean + theorem MvPolynomial.totalDegree_le_of_support_subset 2023-12-04 20:27:46 3399e7d refactor(AlgebraicGeometry/EllipticCurve/*): split EllipticCurve.Point into two files (#8540) Refactor the files in `AlgebraicGeometry/EllipticCurve/*` as follows: - `Weierstrass.lean` contains general definitions common to all Weierstrass and elliptic curves, namely quantities associated to their coefficients, variable and base changes, and models with prescribed j-invariants. - `Affine.lean` contains definitions specific to Weierstrass curves written in affine coordinates, including `equation` and `nonsingular` from the old `Weierstrass.lean`, but also the `Point` inductive and group operations from the old `Point.lean`. - `Group.lean` contains a standalone proof of the group law for `Point`, including instances for `CoordinateRing` in the old `Weierstrass.lean`, and ideal computations in its `ClassGroup` in the old `Point.lean`. This refactor is done in preparation for the new `Projective.lean` in #8485 (and the upcoming `Jacobian.lean`), which shares all the general definitions in `Weierstrass.lean`, but none of those in `Affine.lean` and `Group.lean` except their proofs (analogous lemmas are proven by "reducing to the affine case"). Most of the definitions and lemmas for `equation`, `nonsingular`, `CoordinateRing`, and `ClassGroup` are specific to the affine representation of Weierstrass curves, so they are now in the `WeierstrassCurve.Affine` namespace, which is just an abbreviation for `WeierstrassCurve`. Further documentation is added to `Group.lean` to explain the argument for the group law, but otherwise few things are changed from the original files. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/AlgebraicGeometry/EllipticCurve/Affine.lean + theorem EllipticCurve.Affine.nonsingular + theorem WeierstrassCurve.Affine.C_addPolynomial + theorem WeierstrassCurve.Affine.Point.add_def + def WeierstrassCurve.Affine.Point.neg + theorem WeierstrassCurve.Affine.Point.neg_def + theorem WeierstrassCurve.Affine.Point.neg_some + theorem WeierstrassCurve.Affine.Point.neg_zero + def WeierstrassCurve.Affine.Point.ofBaseChange + def WeierstrassCurve.Affine.Point.ofBaseChangeFun + theorem WeierstrassCurve.Affine.Point.ofBaseChange_injective + theorem WeierstrassCurve.Affine.Point.some_add_self_of_Yeq + theorem WeierstrassCurve.Affine.Point.some_add_self_of_Yne' + theorem WeierstrassCurve.Affine.Point.some_add_self_of_Yne + theorem WeierstrassCurve.Affine.Point.some_add_some_of_Xne' + theorem WeierstrassCurve.Affine.Point.some_add_some_of_Xne + theorem WeierstrassCurve.Affine.Point.some_add_some_of_Yeq + theorem WeierstrassCurve.Affine.Point.some_add_some_of_Yne' + theorem WeierstrassCurve.Affine.Point.some_add_some_of_Yne + theorem WeierstrassCurve.Affine.Point.zero_def + inductive WeierstrassCurve.Affine.Point + theorem WeierstrassCurve.Affine.Yeq_of_Xeq + theorem WeierstrassCurve.Affine.Yeq_of_Yne + theorem WeierstrassCurve.Affine.addPolynomial_eq + theorem WeierstrassCurve.Affine.addPolynomial_slope + def WeierstrassCurve.Affine.addX + def WeierstrassCurve.Affine.addY' + def WeierstrassCurve.Affine.addY + theorem WeierstrassCurve.Affine.baseChange_addX + theorem WeierstrassCurve.Affine.baseChange_addX_of_baseChange + theorem WeierstrassCurve.Affine.baseChange_addY' + theorem WeierstrassCurve.Affine.baseChange_addY'_of_baseChange + theorem WeierstrassCurve.Affine.baseChange_addY + theorem WeierstrassCurve.Affine.baseChange_addY_of_baseChange + theorem WeierstrassCurve.Affine.baseChange_negY + theorem WeierstrassCurve.Affine.baseChange_negY_of_baseChange + theorem WeierstrassCurve.Affine.baseChange_slope + theorem WeierstrassCurve.Affine.baseChange_slope_of_baseChange + theorem WeierstrassCurve.Affine.degree_polynomial + theorem WeierstrassCurve.Affine.derivative_addPolynomial_slope + def WeierstrassCurve.Affine.equation + theorem WeierstrassCurve.Affine.equation_add' + theorem WeierstrassCurve.Affine.equation_add + theorem WeierstrassCurve.Affine.equation_add_iff + theorem WeierstrassCurve.Affine.equation_iff' + theorem WeierstrassCurve.Affine.equation_iff + theorem WeierstrassCurve.Affine.equation_iff_baseChange + theorem WeierstrassCurve.Affine.equation_iff_baseChange_of_baseChange + theorem WeierstrassCurve.Affine.equation_iff_variableChange + theorem WeierstrassCurve.Affine.equation_neg + theorem WeierstrassCurve.Affine.equation_neg_iff + theorem WeierstrassCurve.Affine.equation_neg_of + theorem WeierstrassCurve.Affine.equation_zero + theorem WeierstrassCurve.Affine.eval_negPolynomial + theorem WeierstrassCurve.Affine.eval_polynomial + theorem WeierstrassCurve.Affine.eval_polynomialX + theorem WeierstrassCurve.Affine.eval_polynomialX_zero + theorem WeierstrassCurve.Affine.eval_polynomialY + theorem WeierstrassCurve.Affine.eval_polynomialY_zero + theorem WeierstrassCurve.Affine.eval_polynomial_zero + theorem WeierstrassCurve.Affine.irreducible_polynomial + theorem WeierstrassCurve.Affine.monic_polynomial + theorem WeierstrassCurve.Affine.natDegree_polynomial + def WeierstrassCurve.Affine.negY + theorem WeierstrassCurve.Affine.negY_negY + def WeierstrassCurve.Affine.nonsingular + theorem WeierstrassCurve.Affine.nonsingular_add' + theorem WeierstrassCurve.Affine.nonsingular_add + theorem WeierstrassCurve.Affine.nonsingular_add_of_eval_derivative_ne_zero + theorem WeierstrassCurve.Affine.nonsingular_iff' + theorem WeierstrassCurve.Affine.nonsingular_iff + theorem WeierstrassCurve.Affine.nonsingular_iff_baseChange + theorem WeierstrassCurve.Affine.nonsingular_iff_baseChange_of_baseChange + theorem WeierstrassCurve.Affine.nonsingular_iff_variableChange + theorem WeierstrassCurve.Affine.nonsingular_neg + theorem WeierstrassCurve.Affine.nonsingular_neg_iff + theorem WeierstrassCurve.Affine.nonsingular_neg_of + theorem WeierstrassCurve.Affine.nonsingular_of_Δ_ne_zero + theorem WeierstrassCurve.Affine.nonsingular_zero + theorem WeierstrassCurve.Affine.nonsingular_zero_of_Δ_ne_zero + theorem WeierstrassCurve.Affine.polynomial_eq + theorem WeierstrassCurve.Affine.polynomial_ne_zero + theorem WeierstrassCurve.Affine.slope_of_Xne + theorem WeierstrassCurve.Affine.slope_of_Yeq + theorem WeierstrassCurve.Affine.slope_of_Yne + theorem WeierstrassCurve.Affine.slope_of_Yne_eq_eval Added Mathlib/AlgebraicGeometry/EllipticCurve/Group.lean + def EllipticCurve.Affine.Point.mk + theorem WeierstrassCurve.Affine.CoordinateRing.C_addPolynomial + theorem WeierstrassCurve.Affine.CoordinateRing.C_addPolynomial_slope + theorem WeierstrassCurve.Affine.CoordinateRing.XClass_ne_zero + theorem WeierstrassCurve.Affine.CoordinateRing.XYIdeal'_eq + theorem WeierstrassCurve.Affine.CoordinateRing.XYIdeal_add_eq + theorem WeierstrassCurve.Affine.CoordinateRing.XYIdeal_eq₁ + theorem WeierstrassCurve.Affine.CoordinateRing.XYIdeal_eq₂ + theorem WeierstrassCurve.Affine.CoordinateRing.XYIdeal_mul_XYIdeal + theorem WeierstrassCurve.Affine.CoordinateRing.XYIdeal_neg_mul + theorem WeierstrassCurve.Affine.CoordinateRing.YClass_ne_zero + theorem WeierstrassCurve.Affine.CoordinateRing.basis_apply + theorem WeierstrassCurve.Affine.CoordinateRing.basis_one + theorem WeierstrassCurve.Affine.CoordinateRing.basis_zero + theorem WeierstrassCurve.Affine.CoordinateRing.coe_basis + theorem WeierstrassCurve.Affine.CoordinateRing.coe_norm_smul_basis + theorem WeierstrassCurve.Affine.CoordinateRing.degree_norm_ne_one + theorem WeierstrassCurve.Affine.CoordinateRing.degree_norm_smul_basis + theorem WeierstrassCurve.Affine.CoordinateRing.exists_smul_basis_eq + theorem WeierstrassCurve.Affine.CoordinateRing.mk_XYIdeal'_mul_mk_XYIdeal' + theorem WeierstrassCurve.Affine.CoordinateRing.mk_XYIdeal'_mul_mk_XYIdeal'_of_Yeq + theorem WeierstrassCurve.Affine.CoordinateRing.natDegree_norm_ne_one + theorem WeierstrassCurve.Affine.CoordinateRing.norm_smul_basis + theorem WeierstrassCurve.Affine.CoordinateRing.smul + theorem WeierstrassCurve.Affine.CoordinateRing.smul_basis_eq_zero + theorem WeierstrassCurve.Affine.CoordinateRing.smul_basis_mul_C + theorem WeierstrassCurve.Affine.CoordinateRing.smul_basis_mul_Y + theorem WeierstrassCurve.Affine.Point.add_assoc + theorem WeierstrassCurve.Affine.Point.add_comm + theorem WeierstrassCurve.Affine.Point.add_eq_zero + theorem WeierstrassCurve.Affine.Point.add_left_neg + theorem WeierstrassCurve.Affine.Point.neg_add_eq_zero + theorem WeierstrassCurve.Affine.Point.toClass_eq_zero + theorem WeierstrassCurve.Affine.Point.toClass_injective + theorem WeierstrassCurve.Affine.Point.toClass_some + theorem WeierstrassCurve.Affine.Point.toClass_zero Deleted Mathlib/AlgebraicGeometry/EllipticCurve/Point.lean - def EllipticCurve.Point.mk - theorem WeierstrassCurve.C_addPolynomial - theorem WeierstrassCurve.CoordinateRing.C_addPolynomial - theorem WeierstrassCurve.CoordinateRing.C_addPolynomial_slope - theorem WeierstrassCurve.Point.add_assoc - theorem WeierstrassCurve.Point.add_comm - theorem WeierstrassCurve.Point.add_def - theorem WeierstrassCurve.Point.add_eq_zero - theorem WeierstrassCurve.Point.add_left_neg - def WeierstrassCurve.Point.neg - theorem WeierstrassCurve.Point.neg_add_eq_zero - theorem WeierstrassCurve.Point.neg_def - theorem WeierstrassCurve.Point.neg_some - theorem WeierstrassCurve.Point.neg_zero - def WeierstrassCurve.Point.ofBaseChange - def WeierstrassCurve.Point.ofBaseChangeFun - theorem WeierstrassCurve.Point.ofBaseChange_injective - theorem WeierstrassCurve.Point.some_add_self_of_Y_eq - theorem WeierstrassCurve.Point.some_add_self_of_Y_ne' - theorem WeierstrassCurve.Point.some_add_self_of_Y_ne - theorem WeierstrassCurve.Point.some_add_some_of_X_ne' - theorem WeierstrassCurve.Point.some_add_some_of_X_ne - theorem WeierstrassCurve.Point.some_add_some_of_Y_eq - theorem WeierstrassCurve.Point.some_add_some_of_Y_ne' - theorem WeierstrassCurve.Point.some_add_some_of_Y_ne - theorem WeierstrassCurve.Point.toClass_eq_zero - theorem WeierstrassCurve.Point.toClass_injective - theorem WeierstrassCurve.Point.toClass_some - theorem WeierstrassCurve.Point.toClass_zero - theorem WeierstrassCurve.Point.zero_def - inductive WeierstrassCurve.Point - theorem WeierstrassCurve.XYIdeal'_eq - theorem WeierstrassCurve.XYIdeal_add_eq - theorem WeierstrassCurve.XYIdeal_eq₁ - theorem WeierstrassCurve.XYIdeal_eq₂ - theorem WeierstrassCurve.XYIdeal_mul_XYIdeal - theorem WeierstrassCurve.XYIdeal_neg_mul - theorem WeierstrassCurve.Y_eq_of_X_eq - theorem WeierstrassCurve.Y_eq_of_Y_ne - theorem WeierstrassCurve.addPolynomial_eq - theorem WeierstrassCurve.addPolynomial_slope - def WeierstrassCurve.addX - def WeierstrassCurve.addY' - def WeierstrassCurve.addY - theorem WeierstrassCurve.baseChange_addX - theorem WeierstrassCurve.baseChange_addX_of_baseChange - theorem WeierstrassCurve.baseChange_addY' - theorem WeierstrassCurve.baseChange_addY'_of_baseChange - theorem WeierstrassCurve.baseChange_addY - theorem WeierstrassCurve.baseChange_addY_of_baseChange - theorem WeierstrassCurve.baseChange_negY - theorem WeierstrassCurve.baseChange_negY_of_baseChange - theorem WeierstrassCurve.baseChange_slope - theorem WeierstrassCurve.baseChange_slope_of_baseChange - theorem WeierstrassCurve.derivative_addPolynomial_slope - theorem WeierstrassCurve.equation_add' - theorem WeierstrassCurve.equation_add - theorem WeierstrassCurve.equation_add_iff - theorem WeierstrassCurve.equation_neg - theorem WeierstrassCurve.equation_neg_iff - theorem WeierstrassCurve.equation_neg_of - theorem WeierstrassCurve.eval_negPolynomial - theorem WeierstrassCurve.mk_XYIdeal'_mul_mk_XYIdeal' - theorem WeierstrassCurve.mk_XYIdeal'_mul_mk_XYIdeal'_of_Y_eq - def WeierstrassCurve.negY - theorem WeierstrassCurve.negY_negY - theorem WeierstrassCurve.nonsingular_add' - theorem WeierstrassCurve.nonsingular_add - theorem WeierstrassCurve.nonsingular_add_of_eval_derivative_ne_zero - theorem WeierstrassCurve.nonsingular_neg - theorem WeierstrassCurve.nonsingular_neg_iff - theorem WeierstrassCurve.nonsingular_neg_of - theorem WeierstrassCurve.slope_of_X_ne - theorem WeierstrassCurve.slope_of_Y_eq - theorem WeierstrassCurve.slope_of_Y_ne - theorem WeierstrassCurve.slope_of_Y_ne_eq_eval Modified Mathlib/AlgebraicGeometry/EllipticCurve/Weierstrass.lean - theorem EllipticCurve.nonsingular +/- theorem EllipticCurve.ofJ_ne_0_ne_1728 - theorem WeierstrassCurve.CoordinateRing.XClass_ne_zero - theorem WeierstrassCurve.CoordinateRing.YClass_ne_zero - theorem WeierstrassCurve.CoordinateRing.basis_apply - theorem WeierstrassCurve.CoordinateRing.basis_one - theorem WeierstrassCurve.CoordinateRing.basis_zero - theorem WeierstrassCurve.CoordinateRing.coe_basis - theorem WeierstrassCurve.CoordinateRing.coe_norm_smul_basis - theorem WeierstrassCurve.CoordinateRing.degree_norm_ne_one - theorem WeierstrassCurve.CoordinateRing.degree_norm_smul_basis - theorem WeierstrassCurve.CoordinateRing.exists_smul_basis_eq - theorem WeierstrassCurve.CoordinateRing.natDegree_norm_ne_one - theorem WeierstrassCurve.CoordinateRing.norm_smul_basis - theorem WeierstrassCurve.CoordinateRing.smul - theorem WeierstrassCurve.CoordinateRing.smul_basis_eq_zero - theorem WeierstrassCurve.CoordinateRing.smul_basis_mul_C - theorem WeierstrassCurve.CoordinateRing.smul_basis_mul_Y - theorem WeierstrassCurve.degree_polynomial - theorem WeierstrassCurve.equation_iff' - theorem WeierstrassCurve.equation_iff - theorem WeierstrassCurve.equation_iff_baseChange - theorem WeierstrassCurve.equation_iff_baseChange_of_baseChange - theorem WeierstrassCurve.equation_iff_variableChange - theorem WeierstrassCurve.equation_zero - theorem WeierstrassCurve.eval_polynomial - theorem WeierstrassCurve.eval_polynomialX - theorem WeierstrassCurve.eval_polynomialX_zero - theorem WeierstrassCurve.eval_polynomialY - theorem WeierstrassCurve.eval_polynomialY_zero - theorem WeierstrassCurve.eval_polynomial_zero - theorem WeierstrassCurve.irreducible_polynomial - theorem WeierstrassCurve.monic_polynomial - theorem WeierstrassCurve.natDegree_polynomial - theorem WeierstrassCurve.nonsingular_iff' - theorem WeierstrassCurve.nonsingular_iff - theorem WeierstrassCurve.nonsingular_iff_baseChange - theorem WeierstrassCurve.nonsingular_iff_baseChange_of_baseChange - theorem WeierstrassCurve.nonsingular_iff_variableChange - theorem WeierstrassCurve.nonsingular_of_Δ_ne_zero - theorem WeierstrassCurve.nonsingular_zero - theorem WeierstrassCurve.nonsingular_zero_of_Δ_ne_zero - theorem WeierstrassCurve.polynomial_eq - theorem WeierstrassCurve.polynomial_ne_zero +/- theorem WeierstrassCurve.variableChange_b₆ +/- theorem WeierstrassCurve.variableChange_b₈ 2023-12-04 20:02:48 21b6375 refactor(LinearAlgebra/Matrix/PosDef): separate `PosDef` lemmas from `PosSemidef` lemmas (#8810) There are no new or deleted lemmas here, only a reordering; but to enable dot notation I have renamed: * `posDef_toQuadraticForm'` to `PosDef.toQuadraticForm'` * `posDef_of_toQuadraticForm'` to `PosDef.of_toQuadraticForm'` Split from #8809 ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/Matrix/PosDef.lean +/- theorem Matrix.PosDef.det_pos +/- theorem Matrix.PosDef.eigenvalues_pos +/- theorem Matrix.PosDef.isHermitian + theorem Matrix.PosDef.of_toQuadraticForm' +/- theorem Matrix.PosDef.posSemidef +/- theorem Matrix.PosDef.re_dotProduct_pos + theorem Matrix.PosDef.toQuadraticForm' +/- theorem Matrix.PosDef.transpose - theorem Matrix.posDef_of_toQuadraticForm' - theorem Matrix.posDef_toQuadraticForm' 2023-12-04 20:02:47 43d6e4f feat(CategoryTheory/Sites): the sheaf of morphisms between two sheaves (#8737) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Sites/Over.lean + theorem CategoryTheory.GrothendieckTopology.over_map_compatiblePreserving + theorem CategoryTheory.GrothendieckTopology.over_map_coverPreserving + theorem CategoryTheory.Sieve.functorPushforward_over_map Modified Mathlib/CategoryTheory/Sites/SheafHom.lean + def CategoryTheory.sheafHom' + def CategoryTheory.sheafHom'Iso + def CategoryTheory.sheafHom + def CategoryTheory.sheafHomSectionsEquiv + theorem CategoryTheory.sheafHomSectionsEquiv_symm_apply_coe_apply Modified Mathlib/CategoryTheory/Types.lean + def CategoryTheory.Functor.sectionsFunctor 2023-12-04 18:10:59 2c200e2 feat(Order/Filter): add `Filter.tendsto_image_smallSets` (#8811) - Add `Filter.tendsto_image_smallSets` and `Filter.Tendsto.image_smallSets`. - Generalize `Filter.eventually_all` from `Type*` to `Sort*`. - Protect `Filter.HasBasis.smallSets`. - Fix a porting note about `Filter.eventually_smallSets`: the Lean 3 proof works in Lean 4 now. ESTIMATED CHANGES Modified Mathlib/Order/Filter/Basic.lean +/- theorem Filter.eventually_all Modified Mathlib/Order/Filter/SmallSets.lean - theorem Filter.HasBasis.smallSets + theorem Filter.tendsto_image_smallSets 2023-12-04 18:10:58 f26f1d9 feat(Algebra/Group): lemmas about `Commute` (#8756) ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Pi.lean + theorem Commute.pi + theorem Pi.commute_iff + theorem Pi.semiconjBy_iff + theorem SemiconjBy.pi Modified Mathlib/Algebra/Group/Prod.lean + theorem Commute.prod + theorem Prod.commute_iff + theorem Prod.semiconjBy_iff + theorem SemiconjBy.prod 2023-12-04 18:10:57 a370849 doc: Mark named theorems (#8749) ESTIMATED CHANGES Modified Mathlib/Combinatorics/HalesJewett.lean Modified Mathlib/Geometry/Euclidean/Angle/Unoriented/Affine.lean Modified Mathlib/Geometry/Euclidean/Triangle.lean Modified Mathlib/Geometry/Manifold/MFDeriv.lean Modified Mathlib/GroupTheory/Congruence.lean Modified Mathlib/GroupTheory/CoprodI.lean Modified Mathlib/GroupTheory/FreeGroup/Basic.lean Modified Mathlib/GroupTheory/GroupAction/Quotient.lean Modified Mathlib/GroupTheory/Transfer.lean Modified Mathlib/LinearAlgebra/CrossProduct.lean Modified Mathlib/LinearAlgebra/Dimension.lean Modified Mathlib/LinearAlgebra/Isomorphisms.lean Modified Mathlib/LinearAlgebra/Matrix/Spectrum.lean Modified Mathlib/Logic/Basic.lean Modified Mathlib/MeasureTheory/Constructions/Polish.lean Modified Mathlib/MeasureTheory/Covering/Besicovitch.lean Modified Mathlib/MeasureTheory/Covering/Vitali.lean Modified Mathlib/MeasureTheory/Function/Jacobian.lean Modified Mathlib/MeasureTheory/Function/L1Space.lean Modified Mathlib/MeasureTheory/Integral/Bochner.lean Modified Mathlib/MeasureTheory/Integral/Layercake.lean Modified Mathlib/MeasureTheory/Integral/Lebesgue.lean Modified Mathlib/MeasureTheory/Integral/MeanInequalities.lean Modified Mathlib/MeasureTheory/Measure/Portmanteau.lean Modified Mathlib/NumberTheory/Bertrand.lean Modified Mathlib/NumberTheory/ClassNumber/Finite.lean Modified Mathlib/NumberTheory/FermatPsp.lean Modified Mathlib/NumberTheory/LegendreSymbol/GaussEisensteinLemmas.lean Modified Mathlib/NumberTheory/LegendreSymbol/JacobiSymbol.lean Modified Mathlib/NumberTheory/LucasLehmer.lean Modified Mathlib/NumberTheory/Modular.lean Modified Mathlib/NumberTheory/NumberField/CanonicalEmbedding.lean Modified Mathlib/NumberTheory/PrimeCounting.lean Modified Mathlib/NumberTheory/Rayleigh.lean Modified Mathlib/NumberTheory/ZetaFunction.lean Modified Mathlib/Order/ConditionallyCompleteLattice/Basic.lean Modified Mathlib/Probability/Variance.lean Modified Mathlib/RingTheory/Ideal/QuotientOperations.lean Modified Mathlib/RingTheory/Polynomial/RationalRoot.lean Modified Mathlib/RingTheory/Polynomial/Vieta.lean Modified Mathlib/RingTheory/PowerSeries/Derivative.lean Modified Mathlib/Topology/MetricSpace/ShrinkingLemma.lean Modified Mathlib/Topology/UrysohnsBounded.lean 2023-12-04 18:10:55 6b65939 feat(Algebra/Ring/CentroidHom): missing scalar instances (#8742) This generalizes the ℕ and ℤ actions to arbitrary monoids, and provides various compatibility instances. The `simpNF` annotations are no longer needed, as the the `smul` lemmas are now about general actions, not just `nsmul` and `zsmul` which have different simp-normal forms. ESTIMATED CHANGES Modified Mathlib/Algebra/Ring/CentroidHom.lean - theorem CentroidHom.coe_nsmul + theorem CentroidHom.coe_smul - theorem CentroidHom.nsmul_apply + theorem CentroidHom.smul_apply + def CentroidHom.toEndRingHom - theorem CentroidHom.toEnd_nsmul + theorem CentroidHom.toEnd_smul - theorem CentroidHom.toEnd_zsmul 2023-12-04 17:29:44 5dfe05b feat: UnivLE version of EnoughInjectives in ModuleCat (#8734) ESTIMATED CHANGES Modified Mathlib/Algebra/Category/ModuleCat/ChangeOfRings.lean Modified Mathlib/Algebra/Category/ModuleCat/Injective.lean 2023-12-04 15:55:57 fba9b45 feat: `(if P then 1 else 0) • a` (#8347) Two simple lemmas, `smul_ite_zero`, and `ite_smul_zero`. Also delete `Finset.sum_univ_ite` since it is now provable by `simp` thanks to these. Rename and turn around the following to match the direction that `simp` goes in: * `ite_mul_zero_left` → `ite_zero_mul` * `ite_mul_zero_right` → `mul_ite_zero` * `ite_and_mul_zero` → `ite_zero_mul_ite_zero` ESTIMATED CHANGES Modified Mathlib/Algebra/Ring/Defs.lean - theorem ite_and_mul_zero - theorem ite_mul_zero_left - theorem ite_mul_zero_right + theorem ite_zero_mul + theorem ite_zero_mul_ite_zero + theorem mul_ite_zero Modified Mathlib/Algebra/SMulWithZero.lean + theorem boole_smul + theorem ite_zero_smul Modified Mathlib/Combinatorics/SimpleGraph/IncMatrix.lean Modified Mathlib/GroupTheory/GroupAction/Defs.lean + theorem smul_ite_zero Modified Mathlib/LinearAlgebra/FinsuppVectorSpace.lean - theorem Finset.sum_univ_ite Modified Mathlib/MeasureTheory/Measure/Lebesgue/EqHaar.lean Modified Mathlib/NumberTheory/ArithmeticFunction.lean Modified Mathlib/NumberTheory/RamificationInertia.lean Modified Mathlib/RingTheory/PolynomialAlgebra.lean 2023-12-04 15:55:56 31d8db6 feat: rify tactic (#7990) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Data/Rat/Cast/Defs.lean + theorem Rat.cast_ofNat Modified Mathlib/Data/Rat/Floor.lean Modified Mathlib/Tactic.lean Modified Mathlib/Tactic/Attr/Register.lean Added Mathlib/Tactic/Rify.lean + theorem Mathlib.Tactic.Rify.ofNat_rat_real + theorem Mathlib.Tactic.Rify.rat_cast_eq + theorem Mathlib.Tactic.Rify.rat_cast_le + theorem Mathlib.Tactic.Rify.rat_cast_lt + theorem Mathlib.Tactic.Rify.rat_cast_ne Modified Mathlib/Tactic/Zify.lean + theorem Mathlib.Tactic.Zify.Nat.cast_sub_of_add_le + theorem Mathlib.Tactic.Zify.Nat.cast_sub_of_lt Added test/Rify.lean 2023-12-04 15:55:54 772b606 feat(Algebra/Hom/Centroid) : Homomorphism from centre into centroid (#7843) Defines the natural homomorphism from the centre of a non-unital, non-associative semiring into the centroid of the semiring. When the semiring is unital, the centre and the centroid are isomorphic. ESTIMATED CHANGES Modified Mathlib/Algebra/Ring/CentroidHom.lean + def CentroidHom.centerIsoCentroid + def CentroidHom.centerToCentroid + theorem CentroidHom.centerToCentroid_apply + theorem CentroidHom.center_iff_op_centroid 2023-12-04 14:42:09 65c51ee chore: space after ← in tactics (#8791) ESTIMATED CHANGES Modified Mathlib/Lean/Meta.lean Modified Mathlib/Tactic/Lift.lean Modified Mathlib/Tactic/Linarith/Datatypes.lean Modified Mathlib/Tactic/MkIffOfInductiveProp.lean Modified Mathlib/Tactic/Nontriviality/Core.lean Modified Mathlib/Tactic/PushNeg.lean Modified Mathlib/Tactic/Rewrites.lean Modified Mathlib/Tactic/SimpRw.lean Modified Mathlib/Tactic/SplitIfs.lean Modified Mathlib/Tactic/Tauto.lean Modified Mathlib/Tactic/Widget/Conv.lean 2023-12-04 13:54:53 19096ec chore(NormedSpace/Complemented): review API (#8596) - use `And` instead of `Exists`; - move lemmas from `Subspace` to `Submodule` namespace; - rename some lemmas to enable dot notation; - add `ClosedComplemented.exists_submodule_equiv_prod`. ESTIMATED CHANGES Modified Mathlib/Analysis/NormedSpace/Complemented.lean + theorem Submodule.ClosedComplemented.of_isCompl_isClosed + theorem Submodule.ClosedComplemented.of_quotient_finiteDimensional + theorem Submodule.closedComplemented_iff_isClosed_exists_isClosed_isCompl + theorem Submodule.coe_continuous_linearProjOfClosedCompl' + theorem Submodule.coe_continuous_linearProjOfClosedCompl + theorem Submodule.coe_prodEquivOfClosedCompl + theorem Submodule.coe_prodEquivOfClosedCompl_symm + def Submodule.linearProjOfClosedCompl + def Submodule.prodEquivOfClosedCompl - theorem Subspace.closedComplemented_iff_has_closed_compl - theorem Subspace.closedComplemented_of_closed_compl - theorem Subspace.closedComplemented_of_quotient_finiteDimensional - theorem Subspace.coe_continuous_linearProjOfClosedCompl' - theorem Subspace.coe_continuous_linearProjOfClosedCompl - theorem Subspace.coe_prodEquivOfClosedCompl - theorem Subspace.coe_prodEquivOfClosedCompl_symm - def Subspace.linearProjOfClosedCompl - def Subspace.prodEquivOfClosedCompl Modified Mathlib/Topology/Algebra/Module/Basic.lean + theorem Submodule.ClosedComplemented.exists_isClosed_isCompl + theorem Submodule.ClosedComplemented.exists_submodule_equiv_prod - theorem Submodule.ClosedComplemented.has_closed_complement 2023-12-04 12:41:47 7d9d044 fix(NumberTheory/LegendreSymbol/AddCharacter): Disentangle coercion mess for `AddChar` (#8803) There are two things going on here: * `AddChar G R` has two syntactically different coercions to function `G → R`: * `FunLike.coe` via `AddChar.monoidHomClass` * `AddChar.toFun` via `AddChar.hasCoeToFun` * `AddChar.hasCoeToFun` and `AddChar.monoidHomClass` together create a diamond for the typeclass problem `FunLike (AddChar G R) _ _` This PR fixes both problems by * removing the `HasCoeToFun` instance and the corresponding `AddChar.toFun` * changing `MonoidHomClass (AddChar G R) (Multiplicative G) R` to `FunLike (AddChar G R) G fun _ ↦ R` (isn't the whole point of `AddChar` to go from an additive group to a multiplicative one anyway?) This PR isn't meant to be perfect. It is a stopgag to an issue that has completely startled progress on LeanAPAP. Once it is fixed, a much more thorough refactor will follow. This breaks a rewrite downstream that now unifies to some defeq but not syntactically equal type. This is more an indication of fragility in the original proof. ESTIMATED CHANGES Modified Mathlib/NumberTheory/LegendreSymbol/AddCharacter.lean - def AddChar.toFun Modified Mathlib/NumberTheory/LegendreSymbol/GaussSum.lean 2023-12-04 12:41:46 0ce369d feat: restore simp attribute to coeff_zero_C (#8792) It (no longer?) seems to be the case that simp can prove this. ESTIMATED CHANGES Modified Mathlib/Data/MvPolynomial/Basic.lean 2023-12-04 12:41:45 3ce1e1f feat(Algebra/DirectLimit): add `map, congr, lift_injective` for direct limits of modules, abelian groups and rings (#8692) Consider direct limits `lim G` and `lim G'` with direct system `f` and `f'` respectively, any family of linear maps `gᵢ : Gᵢ ⟶ G'ᵢ` such that `g ∘ f = f' ∘ g` induces a linear map `lim G ⟶ lim G'`. When `gᵢ`'s are equivalence, so is the induced. Similarly for direct limits of groups and rings This PR is splitted from #8473 ESTIMATED CHANGES Modified Mathlib/Algebra/DirectLimit.lean + def AddCommGroup.DirectLimit.congr + theorem AddCommGroup.DirectLimit.congr_apply_of + theorem AddCommGroup.DirectLimit.congr_symm_apply_of +/- def AddCommGroup.DirectLimit.lift + theorem AddCommGroup.DirectLimit.lift_injective + def AddCommGroup.DirectLimit.map + theorem AddCommGroup.DirectLimit.map_apply_of + theorem AddCommGroup.DirectLimit.map_comp + theorem AddCommGroup.DirectLimit.map_id +/- def AddCommGroup.DirectLimit.of + def Module.DirectLimit.congr + theorem Module.DirectLimit.congr_apply_of + theorem Module.DirectLimit.congr_symm_apply_of + theorem Module.DirectLimit.lift_injective + def Module.DirectLimit.map + theorem Module.DirectLimit.map_apply_of + theorem Module.DirectLimit.map_comp + theorem Module.DirectLimit.map_id + def Ring.DirectLimit.congr + theorem Ring.DirectLimit.congr_apply_of + theorem Ring.DirectLimit.congr_symm_apply_of + theorem Ring.DirectLimit.lift_injective + def Ring.DirectLimit.map + theorem Ring.DirectLimit.map_apply_of + theorem Ring.DirectLimit.map_comp + theorem Ring.DirectLimit.map_id 2023-12-04 12:41:44 c987c7d chore: update jq filter in lean-pr-testing-comments.sh (#8520) Minor change, to make sure we only try to edit-in-place comments that were created by the right bot. (There are some older PRs still open where the tokens were wrong, and so the initial comment was created by the wrong bot.) ESTIMATED CHANGES Modified scripts/lean-pr-testing-comments.sh 2023-12-04 12:41:43 070be71 fix: add missing `no_index` around `OfNat.ofNat ` (#8317) ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Floor.lean +/- theorem Int.ceil_add_ofNat +/- theorem Int.ceil_ofNat +/- theorem Int.ceil_sub_ofNat +/- theorem Int.floor_ofNat +/- theorem Int.fract_add_ofNat +/- theorem Int.fract_ofNat +/- theorem Int.fract_ofNat_add +/- theorem Int.fract_sub_ofNat +/- theorem round_ofNat Modified Mathlib/Data/Real/ENatENNReal.lean +/- theorem ENat.toENNReal_ofNat Modified Mathlib/Data/Real/Hyperreal.lean +/- theorem Hyperreal.coe_ofNat Modified Mathlib/GroupTheory/Subsemigroup/Center.lean Modified Mathlib/Order/Filter/Germ.lean Modified Mathlib/SetTheory/Cardinal/Basic.lean +/- theorem Cardinal.toNat_ofNat 2023-12-04 11:39:45 aca3f23 chore: remove deprecated MonoidHom.map_prod, AddMonoidHom.map_sum (#8787) ESTIMATED CHANGES Modified Mathlib/Algebra/BigOperators/Basic.lean Modified Mathlib/Algebra/BigOperators/Finprod.lean Modified Mathlib/Algebra/BigOperators/Finsupp.lean Modified Mathlib/Algebra/BigOperators/Order.lean - theorem AbsoluteValue.map_prod Modified Mathlib/Algebra/BigOperators/Pi.lean Modified Mathlib/Algebra/IndicatorFunction.lean Modified Mathlib/Algebra/Module/BigOperators.lean Modified Mathlib/Analysis/BoxIntegral/Partition/Additive.lean Modified Mathlib/Analysis/Normed/Field/Basic.lean Modified Mathlib/Analysis/Normed/Group/Hom.lean Modified Mathlib/CategoryTheory/Monoidal/Preadditive.lean Modified Mathlib/CategoryTheory/Preadditive/AdditiveFunctor.lean - theorem CategoryTheory.Functor.map_sum Modified Mathlib/CategoryTheory/Preadditive/Opposite.lean Modified Mathlib/Data/Complex/BigOperators.lean Modified Mathlib/Data/DFinsupp/Basic.lean Modified Mathlib/Data/Finsupp/Basic.lean Modified Mathlib/Data/Matrix/Basic.lean Modified Mathlib/Data/MvPolynomial/Basic.lean Modified Mathlib/Data/Polynomial/Eval.lean Modified Mathlib/Data/Real/ENNReal.lean Modified Mathlib/FieldTheory/Finite/Polynomial.lean Modified Mathlib/GroupTheory/GroupAction/BigOperators.lean Modified Mathlib/GroupTheory/Submonoid/Membership.lean Modified Mathlib/LinearAlgebra/QuadraticForm/Basic.lean Modified Mathlib/MeasureTheory/Measure/MeasureSpace.lean Modified Mathlib/NumberTheory/Wilson.lean Modified Mathlib/Probability/Kernel/Basic.lean Modified Mathlib/RingTheory/Localization/Basic.lean Modified Mathlib/RingTheory/Localization/Integer.lean Modified Mathlib/Topology/Algebra/Module/Alternating/Basic.lean Modified Mathlib/Topology/Algebra/Module/Basic.lean Modified Mathlib/Topology/Algebra/Module/Multilinear/Basic.lean Modified Mathlib/Topology/ContinuousFunction/Algebra.lean Modified Mathlib/Topology/ContinuousFunction/Bounded.lean 2023-12-04 11:39:44 5128251 even/odd for DirichletCharacter (#8784) ESTIMATED CHANGES Modified Mathlib/NumberTheory/DirichletCharacter/Basic.lean + theorem DirichletCharacter.Even.eval_neg + theorem DirichletCharacter.Even.toUnitHom_eval_neg_one + def DirichletCharacter.Even + theorem DirichletCharacter.Odd.eval_neg + theorem DirichletCharacter.Odd.toUnitHom_eval_neg_one + def DirichletCharacter.Odd + theorem DirichletCharacter.even_or_odd 2023-12-04 11:39:43 afa2032 chore: move Associates.quot_out earlier (#8484) And don't require commutativity while we're here. ESTIMATED CHANGES Modified Mathlib/Algebra/Associated.lean + theorem Associates.quot_out Modified Mathlib/RingTheory/UniqueFactorizationDomain.lean - theorem Associates.quot_out 2023-12-04 10:29:37 b9a6d49 fix(Tactic/ToAdditive): handle `AddCommute` and `AddSemiconjBy` correctly (#8757) This removes the need for many manual overrides, and corrects some bad names. We have to make sure to leave `function_commute` and `function_semiconjBy` untouched. ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Commute/Defs.lean Modified Mathlib/Algebra/Group/Opposite.lean - theorem MulOpposite.Commute.unop Modified Mathlib/Algebra/Group/Pi.lean Modified Mathlib/Algebra/Group/Semiconj/Defs.lean Modified Mathlib/Algebra/Group/Semiconj/Units.lean Modified Mathlib/Data/Finset/NoncommProd.lean Modified Mathlib/GroupTheory/NoncommPiCoprod.lean Modified Mathlib/GroupTheory/Subgroup/Basic.lean Modified Mathlib/Tactic/ToAdditive.lean 2023-12-04 10:29:36 f6f78d3 chore: golf `TensorProduct.liftAux` (#8659) This incurs a very slight performance hit globally. ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/TensorProduct.lean 2023-12-04 08:33:37 464b566 feat(Algebra/Homology): computation of the connecting morphism of the snake lemma (#8766) This PR introduces a lemma which allows to compute the connecting homomorphism of the snake lemma by diagram chase. ESTIMATED CHANGES Modified Mathlib/Algebra/Homology/ShortComplex/SnakeLemma.lean + theorem CategoryTheory.ShortComplex.SnakeInput.lift_φ₂ + theorem CategoryTheory.ShortComplex.SnakeInput.δ_eq 2023-12-04 08:33:36 d6b8ac1 feat(Algebra/Homology): preliminary definitions for the homology sequence (#8765) As a preliminary step towards the homology sequence, given a homological complex `K` and two degrees `i` and `j` such that `c.Rel i j`, we construct an exact sequence `0 ⟶ K.homology i ⟶ K.opcycles i ⟶ K.cycles j ⟶ K.homology j ⟶ 0`. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Homology/HomologySequence.lean + theorem HomologicalComplex.HomologySequence.composableArrows₃_exact + theorem HomologicalComplex.homologyι_opcyclesToCycles + theorem HomologicalComplex.opcyclesToCycles_homologyπ + theorem HomologicalComplex.opcyclesToCycles_iCycles + theorem HomologicalComplex.opcyclesToCycles_naturality + theorem HomologicalComplex.pOpcycles_opcyclesToCycles + theorem HomologicalComplex.pOpcycles_opcyclesToCycles_iCycles Modified Mathlib/Algebra/Homology/ShortComplex/HomologicalComplex.lean 2023-12-04 08:33:35 8c4338d chore: tidy various files (#8560) ESTIMATED CHANGES Modified Mathlib/Algebra/Associated.lean Modified Mathlib/Algebra/Group/TypeTags.lean Modified Mathlib/Algebra/Order/WithZero.lean Modified Mathlib/Analysis/Analytic/Constructions.lean Modified Mathlib/Analysis/Convex/Topology.lean + theorem JoinedIn.of_segment_subset - theorem JoinedIn_of_segment_subset Modified Mathlib/Analysis/NormedSpace/Connected.lean Modified Mathlib/Analysis/NormedSpace/Multilinear/Basic.lean +/- theorem ContinuousMultilinearMap.continuous_eval Modified Mathlib/Analysis/NormedSpace/Multilinear/Curry.lean Modified Mathlib/Analysis/NormedSpace/Star/Unitization.lean Modified Mathlib/Geometry/Euclidean/Inversion/Calculus.lean Modified Mathlib/GroupTheory/GroupAction/Basic.lean Modified Mathlib/MeasureTheory/Integral/Lebesgue.lean Modified Mathlib/RingTheory/Nilpotent.lean Modified Mathlib/RingTheory/Polynomial/Nilpotent.lean Modified Mathlib/Tactic/Nontriviality/Core.lean Modified Mathlib/Topology/UnitInterval.lean 2023-12-04 08:33:34 0012c94 feat(CategoryTheory): the action of a trifunctor on graded objects (#8239) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/CategoryTheory/Functor/Category.lean Added Mathlib/CategoryTheory/GradedObject/Trifunctor.lean + def CategoryTheory.GradedObject.mapTrifunctor + def CategoryTheory.GradedObject.mapTrifunctorMapIso + def CategoryTheory.GradedObject.mapTrifunctorMapNatTrans + theorem CategoryTheory.GradedObject.mapTrifunctorMapObj_ext + def CategoryTheory.GradedObject.mapTrifunctorObj + theorem CategoryTheory.GradedObject.ι_mapTrifunctorMapMap 2023-12-04 07:49:30 90d520a chore: split Algebra.CharP.Basic, reduce imports in RingTheory.Multiplicity (#8637) This was adding unnecessary imports to `Data.ZMod.Basic`. ESTIMATED CHANGES Modified Counterexamples/CharPZeroNeCharZero.lean Modified Mathlib.lean Modified Mathlib/Algebra/CharP/Basic.lean - theorem CharP.pow_prime_pow_mul_eq_one_iff - theorem frobenius_inj - theorem isSquare_of_charTwo' Modified Mathlib/Algebra/CharP/Quotient.lean Added Mathlib/Algebra/CharP/Reduced.lean + theorem CharP.pow_prime_pow_mul_eq_one_iff + theorem frobenius_inj + theorem isSquare_of_charTwo' Modified Mathlib/Data/ZMod/Basic.lean Modified Mathlib/FieldTheory/Finite/Basic.lean Modified Mathlib/FieldTheory/Perfect.lean Modified Mathlib/NumberTheory/Padics/PadicNumbers.lean Modified Mathlib/RingTheory/DiscreteValuationRing/Basic.lean Modified Mathlib/RingTheory/Multiplicity.lean - theorem multiplicity.addValuation_apply Added Mathlib/RingTheory/Valuation/PrimeMultiplicity.lean + theorem multiplicity.addValuation_apply 2023-12-04 06:38:40 2cf3f03 feat: uniqueness of weak limits of finite measures (#8498) This PR adds a type class `HasOuterApproxClosed` for topological spaces in which indicator functions of closed sets can be approximated from above by sequences of bounded continuous functions. All pseudo-(e)metrizable spaces satisfy this. In spaces with this property, finite Borel measures are characterized by the integrals of bounded continuous functions. Also weak limits of finite Borel measures are unique. More precisely, the topologies of weak convergence of finite Borel measures and of Borel probability measures are Hausdorff. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/MeasureTheory/Constructions/BorelSpace/Basic.lean + theorem isPiSystem_isClosed Modified Mathlib/MeasureTheory/Measure/FiniteMeasure.lean + theorem MeasureTheory.FiniteMeasure.embedding_toWeakDualBCNN + theorem MeasureTheory.FiniteMeasure.ext_of_forall_lintegral_eq + theorem MeasureTheory.FiniteMeasure.injective_toWeakDualBCNN - theorem MeasureTheory.FiniteMeasure.tendsto_lintegral_nn_filter_of_le_const Added Mathlib/MeasureTheory/Measure/HasOuterApproxClosed.lean + theorem HasOuterApproxClosed.apprSeq_apply_eq_one + theorem HasOuterApproxClosed.apprSeq_apply_le_one + theorem HasOuterApproxClosed.indicator_le_apprSeq + theorem HasOuterApproxClosed.measure_le_lintegral + theorem HasOuterApproxClosed.tendsto_apprSeq + theorem HasOuterApproxClosed.tendsto_lintegral_apprSeq + theorem MeasureTheory.ext_of_forall_lintegral_eq_of_IsFiniteMeasure + theorem MeasureTheory.measure_isClosed_eq_of_forall_lintegral_eq_of_isFiniteMeasure + theorem MeasureTheory.measure_of_cont_bdd_of_tendsto_filter_indicator + theorem MeasureTheory.measure_of_cont_bdd_of_tendsto_indicator + theorem MeasureTheory.tendsto_lintegral_nn_filter_of_le_const + theorem MeasureTheory.tendsto_lintegral_thickenedIndicator_of_isClosed Modified Mathlib/MeasureTheory/Measure/Portmanteau.lean - theorem MeasureTheory.measure_of_cont_bdd_of_tendsto_filter_indicator - theorem MeasureTheory.measure_of_cont_bdd_of_tendsto_indicator - theorem MeasureTheory.tendsto_lintegral_thickenedIndicator_of_isClosed Modified Mathlib/MeasureTheory/Measure/ProbabilityMeasure.lean Modified Mathlib/Topology/MetricSpace/ThickenedIndicator.lean + theorem one_le_thickenedIndicator_apply' + theorem one_le_thickenedIndicator_apply 2023-12-03 23:47:41 ee87d34 refactor(Algebra/Group/Defs): Separate commutative and associative multiplication (addition) (#7060) Currently in Mathlib there is no class for magma that are commutative but not associative - `Field` extends `CommRing` and `DivisionRing`, `CommRing` extends `Ring` and `CommMonoid`, `CommGroup` extends `Group` and `CommMonoid` and `CommMonoid` extends `CommSemigroup` and `Monoid`. `CommSemigroup` currently extends only `Semigroup` and has `mul_comm` as a property. This PR moves `mul_comm` into a new `CommMagma` (`AddCommMagma`) class which extends `Mul` (`Add`). `CommSemigroup` now extends `Semigroup` and `CommMagma`. The rest of Mathlib4 compiles as before, except with the need to increase `synthInstance.maxHeartbeats` for `lift_of_splits`. (Update: The linter is objecting to an unused argument in what seems to be a completely unrelated bit of code (`AddEquiv.lpPiLp`). Trying a `nolint` for now.) Also referenced in https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/.60add_comm.60.20without.20.60add_assoc.60 ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Commute/Defs.lean Modified Mathlib/Algebra/Group/Defs.lean + theorem CommMagma.IsLeftCancelMul.toIsCancelMul + theorem CommMagma.IsLeftCancelMul.toIsRightCancelMul + theorem CommMagma.IsRightCancelMul.toIsCancelMul + theorem CommMagma.IsRightCancelMul.toIsLeftCancelMul - theorem CommSemigroup.IsLeftCancelMul.toIsCancelMul - theorem CommSemigroup.IsLeftCancelMul.toIsRightCancelMul - theorem CommSemigroup.IsRightCancelMul.toIsCancelMul - theorem CommSemigroup.IsRightCancelMul.toIsLeftCancelMul +/- theorem mul_comm Modified Mathlib/Algebra/Group/Hom/Instances.lean + theorem AddMonoid.End.comm_mulRight_eq_mulLeft + theorem AddMonoid.End.mulRight_eq_mulLeft_of_commute Modified Mathlib/Algebra/Jordan/Basic.lean Modified Mathlib/Algebra/Ring/Defs.lean Modified Mathlib/Algebra/Symmetrized.lean Modified Mathlib/Analysis/NormedSpace/LpEquiv.lean +/- def AddEquiv.lpPiLp +/- theorem coe_addEquiv_lpPiLp +/- theorem coe_addEquiv_lpPiLp_symm Modified Mathlib/LinearAlgebra/CliffordAlgebra/EvenEquiv.lean Modified Mathlib/NumberTheory/NumberField/Discriminant.lean Modified Mathlib/NumberTheory/NumberField/Units.lean Modified Mathlib/Probability/Cdf.lean 2023-12-03 22:58:17 5b49f9f feat(Data/Matrix): scalar if commutes with every stdBasisMatrix (#7810) `M` is a scalar matrix if it commutes with every non-diagonal `stdBasisMatrix`. ESTIMATED CHANGES Modified Mathlib/Data/Matrix/Basis.lean + theorem Matrix.StdBasisMatrix.col_eq_zero_of_commute_stdBasisMatrix + theorem Matrix.StdBasisMatrix.diag_eq_of_commute_stdBasisMatrix + theorem Matrix.StdBasisMatrix.mem_range_scalar_of_commute_stdBasisMatrix + theorem Matrix.StdBasisMatrix.row_eq_zero_of_commute_stdBasisMatrix 2023-12-03 21:46:12 5295012 feat: More simple simple graph lemmas (#7712) A bunch of simple lemmas for simple graphs. ESTIMATED CHANGES Modified Mathlib/Combinatorics/SimpleGraph/Basic.lean + theorem Equiv.simpleGraph_refl + theorem Equiv.simpleGraph_trans + theorem Equiv.symm_simpleGraph + theorem SimpleGraph.Embedding.coe_toHom +/- theorem SimpleGraph.Embedding.map_adj_iff + theorem SimpleGraph.Hom.coe_id + theorem SimpleGraph.Hom.coe_ofLe + def SimpleGraph.Hom.ofLe + theorem SimpleGraph.comap_adj + theorem SimpleGraph.comap_comap + theorem SimpleGraph.comap_id + theorem SimpleGraph.comap_symm + theorem SimpleGraph.deleteEdges_eq + theorem SimpleGraph.disjoint_edgeSet + theorem SimpleGraph.disjoint_fromEdgeSet + theorem SimpleGraph.edgeSet_eq_empty + theorem SimpleGraph.edgeSet_nonempty + theorem SimpleGraph.fromEdgeSet_disjoint + theorem SimpleGraph.map_adj_apply + theorem SimpleGraph.map_id + theorem SimpleGraph.map_map + theorem SimpleGraph.map_symm Modified Mathlib/Combinatorics/SimpleGraph/Triangle/Basic.lean +/- theorem SimpleGraph.farFromTriangleFree_iff Modified Mathlib/Logic/Basic.lean + theorem Iff.ne_left + theorem Iff.ne_right Modified Mathlib/Logic/Relation.lean + theorem Relation.map_apply_apply + theorem Relation.map_id_id + theorem Relation.map_map 2023-12-03 19:31:20 d1931fc feat(ContDiff): define `LocalHomeomorph.restrContDiff` (#8605) Restrict the source and the target of a local homeomorphism to the sets where both `f` and `f.symm` are `C^n`. ESTIMATED CHANGES Modified Mathlib/Analysis/Calculus/ContDiff/Basic.lean + theorem LocalHomeomorph.contDiffOn_restrContDiff_source + theorem LocalHomeomorph.contDiffOn_restrContDiff_target + def LocalHomeomorph.restrContDiff 2023-12-03 18:24:30 db61ac2 feat: import new widgets in Tactic.Common (#8794) ESTIMATED CHANGES Modified Mathlib/Tactic/Common.lean 2023-12-03 14:46:01 3e42364 feat: add some lemmas about nthRootsFinset (#7464) From flt-regular. ESTIMATED CHANGES Modified Mathlib/Data/Polynomial/RingDivision.lean + theorem Polynomial.mul_mem_nthRootsFinset + theorem Polynomial.ne_zero_of_mem_nthRootsFinset + theorem Polynomial.one_mem_nthRootsFinset 2023-12-03 13:01:06 738b1a9 chore: rename `by_contra'` to `by_contra!` (#8797) To fit with the "please try harder" convention of `!` tactics. ESTIMATED CHANGES Modified Archive/Imo/Imo1972Q5.lean Modified Archive/Imo/Imo1994Q1.lean Modified Archive/Imo/Imo2008Q4.lean Modified Archive/Imo/Imo2013Q5.lean Modified Archive/Wiedijk100Theorems/AscendingDescendingSequences.lean Modified Counterexamples/Phillips.lean Modified Mathlib/Algebra/BigOperators/Finprod.lean Modified Mathlib/Algebra/Order/CompleteField.lean Modified Mathlib/Algebra/Order/Hom/Ring.lean Modified Mathlib/Algebra/Order/ToIntervalMod.lean Modified Mathlib/AlgebraicGeometry/Properties.lean Modified Mathlib/Analysis/Complex/Polynomial.lean Modified Mathlib/Analysis/ConstantSpeed.lean Modified Mathlib/Analysis/Convex/Extreme.lean Modified Mathlib/Analysis/Convex/SimplicialComplex/Basic.lean Modified Mathlib/Analysis/Convex/StoneSeparation.lean Modified Mathlib/Analysis/LocallyConvex/Bounded.lean Modified Mathlib/Analysis/LocallyConvex/WithSeminorms.lean Modified Mathlib/Analysis/NormedSpace/Spectrum.lean Modified Mathlib/Analysis/SpecialFunctions/Gaussian.lean Modified Mathlib/Analysis/SpecificLimits/FloorPow.lean Modified Mathlib/Analysis/SpecificLimits/Normed.lean Modified Mathlib/CategoryTheory/Preadditive/Biproducts.lean Modified Mathlib/Combinatorics/Colex.lean Modified Mathlib/Combinatorics/Composition.lean Modified Mathlib/Combinatorics/SetFamily/Intersecting.lean Modified Mathlib/Combinatorics/SimpleGraph/Connectivity.lean Modified Mathlib/Combinatorics/SimpleGraph/Ends/Defs.lean Modified Mathlib/Combinatorics/Young/YoungDiagram.lean Modified Mathlib/Data/Fin/FlagRange.lean Modified Mathlib/Data/Fin/Tuple/Sort.lean Modified Mathlib/Data/Finset/Card.lean Modified Mathlib/Data/Fintype/Card.lean Modified Mathlib/Data/List/Chain.lean Modified Mathlib/Data/MvPolynomial/CommRing.lean Modified Mathlib/Data/Nat/Count.lean Modified Mathlib/Data/Nat/Prime.lean Modified Mathlib/Data/Polynomial/Degree/Definitions.lean Modified Mathlib/Data/Polynomial/Derivative.lean Modified Mathlib/Data/Real/ENNReal.lean Modified Mathlib/Data/Set/Basic.lean Modified Mathlib/Data/Set/Card.lean Modified Mathlib/Data/Set/Finite.lean Modified Mathlib/Data/Set/Intervals/Basic.lean Modified Mathlib/Data/Set/Pointwise/SMul.lean Modified Mathlib/Dynamics/Circle/RotationNumber/TranslationNumber.lean Modified Mathlib/Dynamics/PeriodicPts.lean Modified Mathlib/FieldTheory/Finite/Trace.lean Modified Mathlib/FieldTheory/Minpoly/Basic.lean Modified Mathlib/Geometry/Manifold/PartitionOfUnity.lean Modified Mathlib/GroupTheory/Exponent.lean Modified Mathlib/GroupTheory/Perm/Support.lean Modified Mathlib/LinearAlgebra/Matrix/PosDef.lean Modified Mathlib/MeasureTheory/Constructions/Polish.lean Modified Mathlib/MeasureTheory/Covering/BesicovitchVectorSpace.lean Modified Mathlib/MeasureTheory/Decomposition/SignedHahn.lean Modified Mathlib/MeasureTheory/Function/LpSpace.lean Modified Mathlib/MeasureTheory/Integral/FundThmCalculus.lean Modified Mathlib/MeasureTheory/Measure/Hausdorff.lean Modified Mathlib/MeasureTheory/Measure/Typeclasses.lean Modified Mathlib/ModelTheory/Satisfiability.lean Modified Mathlib/NumberTheory/ClassNumber/AdmissibleCardPowDegree.lean Modified Mathlib/NumberTheory/ClassNumber/Finite.lean Modified Mathlib/NumberTheory/Cyclotomic/PrimitiveRoots.lean Modified Mathlib/NumberTheory/Divisors.lean Modified Mathlib/NumberTheory/Padics/PadicNumbers.lean Modified Mathlib/Order/Category/NonemptyFinLinOrd.lean Modified Mathlib/Order/Extension/Linear.lean Modified Mathlib/Order/SuccPred/LinearLocallyFinite.lean Modified Mathlib/Order/SupIndep.lean Modified Mathlib/Order/UpperLower/Basic.lean Modified Mathlib/Order/WellFounded.lean Modified Mathlib/Order/WellFoundedSet.lean Modified Mathlib/RingTheory/DedekindDomain/PID.lean Modified Mathlib/RingTheory/DiscreteValuationRing/Basic.lean Modified Mathlib/RingTheory/DiscreteValuationRing/TFAE.lean Modified Mathlib/RingTheory/GradedAlgebra/Radical.lean Modified Mathlib/RingTheory/Ideal/Basic.lean Modified Mathlib/RingTheory/IntegralClosure.lean Modified Mathlib/RingTheory/Polynomial/Content.lean Modified Mathlib/RingTheory/Polynomial/Cyclotomic/Eval.lean Modified Mathlib/RingTheory/WittVector/Domain.lean Modified Mathlib/SetTheory/Cardinal/Basic.lean Modified Mathlib/SetTheory/Cardinal/Cofinality.lean Modified Mathlib/SetTheory/Ordinal/Arithmetic.lean Modified Mathlib/SetTheory/Ordinal/Exponential.lean Modified Mathlib/SetTheory/Ordinal/NaturalOps.lean Modified Mathlib/SetTheory/Ordinal/Principal.lean Modified Mathlib/SetTheory/Ordinal/Topology.lean Modified Mathlib/SetTheory/ZFC/Basic.lean Modified Mathlib/Tactic/ByContra.lean Modified Mathlib/Topology/Algebra/Module/Basic.lean Modified Mathlib/Topology/Algebra/Module/FiniteDimension.lean Modified Mathlib/Topology/Algebra/Order/LiminfLimsup.lean Modified Mathlib/Topology/Category/Stonean/Basic.lean Modified Mathlib/Topology/Compactness/Compact.lean Modified Mathlib/Topology/Connected/Basic.lean Modified Mathlib/Topology/Connected/TotallyDisconnected.lean Modified Mathlib/Topology/EMetricSpace/Paracompact.lean Modified Mathlib/Topology/Instances/RatLemmas.lean Modified Mathlib/Topology/MetricSpace/PiNat.lean Modified Mathlib/Topology/Order/Basic.lean Modified Mathlib/Topology/Perfect.lean Modified Mathlib/Topology/Separation/NotNormal.lean Modified test/byContra.lean Modified test/linarith.lean Modified test/observe.lean 2023-12-03 09:54:12 6e7be96 feat(Analysis/HahnBanach): extension of a CLM with finite dimensional range (#8604) Also add 2 missing `simp` lemmas and prove that a finite dimensional subspace is `ClosedComplemented`. ESTIMATED CHANGES Modified Mathlib/Analysis/NormedSpace/HahnBanach/Extension.lean + theorem ContinuousLinearMap.exist_extension_of_finiteDimensional_range + theorem Submodule.ClosedComplemented.of_finiteDimensional +/- theorem exists_extension_norm_eq Modified Mathlib/Topology/Algebra/Module/FiniteDimension.lean + theorem Basis.equivFunL_symm_apply_repr 2023-12-03 09:54:11 106c099 feat(Topology/Order): continuity of `Finset.sup`, `partialSups` etc (#8141) Also rename `Filter.Tendsto.sup_right_nhds` to `Filter.Tendsto.sup_nhds` etc. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/MeasureTheory/Function/StronglyMeasurable/Basic.lean Modified Mathlib/Order/PartialSups.lean + theorem partialSups_apply Modified Mathlib/Topology/Order/Lattice.lean + theorem Continuous.finset_inf' + theorem Continuous.finset_inf'_apply + theorem Continuous.finset_inf + theorem Continuous.finset_inf_apply + theorem Continuous.finset_sup' + theorem Continuous.finset_sup'_apply + theorem Continuous.finset_sup + theorem Continuous.finset_sup_apply + theorem Continuous.inf' + theorem Continuous.sup' + theorem ContinuousAt.finset_inf' + theorem ContinuousAt.finset_inf'_apply + theorem ContinuousAt.finset_inf + theorem ContinuousAt.finset_inf_apply + theorem ContinuousAt.finset_sup' + theorem ContinuousAt.finset_sup'_apply + theorem ContinuousAt.finset_sup + theorem ContinuousAt.finset_sup_apply + theorem ContinuousAt.inf' + theorem ContinuousAt.inf + theorem ContinuousAt.sup' + theorem ContinuousAt.sup + theorem ContinuousOn.finset_inf' + theorem ContinuousOn.finset_inf'_apply + theorem ContinuousOn.finset_inf + theorem ContinuousOn.finset_inf_apply + theorem ContinuousOn.finset_sup' + theorem ContinuousOn.finset_sup'_apply + theorem ContinuousOn.finset_sup + theorem ContinuousOn.finset_sup_apply + theorem ContinuousOn.inf' + theorem ContinuousOn.inf + theorem ContinuousOn.sup' + theorem ContinuousOn.sup + theorem ContinuousWithinAt.finset_inf' + theorem ContinuousWithinAt.finset_inf'_apply + theorem ContinuousWithinAt.finset_inf + theorem ContinuousWithinAt.finset_inf_apply + theorem ContinuousWithinAt.finset_sup' + theorem ContinuousWithinAt.finset_sup'_apply + theorem ContinuousWithinAt.finset_sup + theorem ContinuousWithinAt.finset_sup_apply + theorem ContinuousWithinAt.inf' + theorem ContinuousWithinAt.inf + theorem ContinuousWithinAt.sup' + theorem ContinuousWithinAt.sup + theorem Filter.Tendsto.finset_inf'_nhds + theorem Filter.Tendsto.finset_inf'_nhds_apply + theorem Filter.Tendsto.finset_inf_nhds + theorem Filter.Tendsto.finset_inf_nhds_apply + theorem Filter.Tendsto.finset_sup'_nhds + theorem Filter.Tendsto.finset_sup'_nhds_apply + theorem Filter.Tendsto.finset_sup_nhds + theorem Filter.Tendsto.finset_sup_nhds_apply + theorem Filter.Tendsto.inf_nhds' + theorem Filter.Tendsto.inf_nhds - theorem Filter.Tendsto.inf_right_nhds' - theorem Filter.Tendsto.inf_right_nhds + theorem Filter.Tendsto.sup_nhds' + theorem Filter.Tendsto.sup_nhds - theorem Filter.Tendsto.sup_right_nhds' - theorem Filter.Tendsto.sup_right_nhds Added Mathlib/Topology/Order/PartialSups.lean 2023-12-03 09:21:24 373c9fe chore(Dynamics/../Conservative): small fixes (#8597) - rename `exists_mem_image_mem*` to `exists_mem_iterate_mem*` because there is no `Set.image` in the statement. - Add type annotations to a proof. I made these changes to improve readability for a conference talk, so why not make them in the library? ESTIMATED CHANGES Modified Mathlib/Dynamics/Ergodic/Conservative.lean Modified Mathlib/Dynamics/Ergodic/MeasurePreserving.lean - theorem MeasureTheory.MeasurePreserving.exists_mem_image_mem - theorem MeasureTheory.MeasurePreserving.exists_mem_image_mem_of_volume_lt_mul_volume + theorem MeasureTheory.MeasurePreserving.exists_mem_iterate_mem + theorem MeasureTheory.MeasurePreserving.exists_mem_iterate_mem_of_volume_lt_mul_volume 2023-12-03 07:50:49 b1cd52a chore: use by_contra' instead of by_contra + push_neg (#8798) ESTIMATED CHANGES Modified Archive/Wiedijk100Theorems/AscendingDescendingSequences.lean Modified Mathlib/Data/Set/Intervals/Basic.lean Modified Mathlib/Geometry/Manifold/PartitionOfUnity.lean Modified Mathlib/ModelTheory/Satisfiability.lean Modified Mathlib/NumberTheory/ClassNumber/AdmissibleCardPowDegree.lean Modified Mathlib/Order/SuccPred/LinearLocallyFinite.lean Modified Mathlib/RingTheory/DiscreteValuationRing/TFAE.lean Modified Mathlib/RingTheory/GradedAlgebra/Radical.lean Modified Mathlib/RingTheory/IntegralClosure.lean Modified Mathlib/Topology/Algebra/Order/LiminfLimsup.lean Modified test/linarith.lean 2023-12-03 05:24:11 fa76ed8 doc: Tactic.Common notes about missing tactics (#8795) We might consider rearranging these tactics so they can be imported in `Tactic.Common`, and their extensions are then created at the first relevant point. ESTIMATED CHANGES Modified Mathlib/Tactic/Common.lean 2023-12-02 18:50:50 006b23a chore(*/Multilinear): move some files (#8786) I'm going to add more files, so I need to move some of the existing files to subfolders. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Analysis/Calculus/FormalMultilinearSeries.lean Modified Mathlib/Analysis/NormedSpace/BoundedLinearMaps.lean Renamed Mathlib/Analysis/NormedSpace/Multilinear.lean to Mathlib/Analysis/NormedSpace/Multilinear/Basic.lean Renamed Mathlib/Analysis/NormedSpace/MultilinearCurrying.lean to Mathlib/Analysis/NormedSpace/Multilinear/Curry.lean Renamed Mathlib/Topology/Algebra/Module/Alternating.lean to Mathlib/Topology/Algebra/Module/Alternating/Basic.lean Renamed Mathlib/Topology/Algebra/Module/Multilinear.lean to Mathlib/Topology/Algebra/Module/Multilinear/Basic.lean 2023-12-02 16:31:18 c0f7586 chore: Add limit spelling variation (#8477) Adding `Tendsto (fun n : ℕ ↦ 1/(n : ℝ)) atTop (𝓝 0)`. We already have an equivalent statement but it is very hard to find and I've seen several students struggling to find it. I also took the opportunity to fix mapsto arrows in this file, but `tendsto_one_div_atTop_nhds_0_nat` is the only new content. ESTIMATED CHANGES Modified Mathlib/Analysis/SpecificLimits/Basic.lean +/- theorem NNReal.hasSum_geometric +/- theorem NNReal.summable_geometric +/- theorem aux_hasSum_of_le_geometric +/- theorem hasSum_geometric_two' +/- theorem hasSum_geometric_two +/- theorem summable_geometric_two' +/- theorem summable_geometric_two +/- theorem tendsto_const_div_atTop_nhds_0_nat +/- theorem tendsto_inverse_atTop_nhds_0_nat +/- theorem tendsto_nat_ceil_div_atTop +/- theorem tendsto_nat_floor_div_atTop + theorem tendsto_one_div_atTop_nhds_0_nat 2023-12-02 15:52:14 5fb9bea chore: space after `←` (#8178) ESTIMATED CHANGES Modified Archive/Imo/Imo2021Q1.lean Modified Mathlib/Algebra/Algebra/NonUnitalSubalgebra.lean Modified Mathlib/Algebra/Algebra/Operations.lean Modified Mathlib/Algebra/Algebra/Subalgebra/Unitization.lean Modified Mathlib/Algebra/BigOperators/Associated.lean Modified Mathlib/Algebra/BigOperators/Finsupp.lean Modified Mathlib/Algebra/BigOperators/Intervals.lean Modified Mathlib/Algebra/BigOperators/Multiset/Basic.lean Modified Mathlib/Algebra/BigOperators/NatAntidiagonal.lean Modified Mathlib/Algebra/BigOperators/Order.lean Modified Mathlib/Algebra/Category/GroupCat/Adjunctions.lean Modified Mathlib/Algebra/Category/GroupCat/Colimits.lean Modified Mathlib/Algebra/Category/GroupCat/EpiMono.lean Modified Mathlib/Algebra/Category/ModuleCat/ChangeOfRings.lean Modified Mathlib/Algebra/Category/Ring/Colimits.lean Modified Mathlib/Algebra/Category/Ring/Constructions.lean Modified Mathlib/Algebra/CharP/LocalRing.lean Modified Mathlib/Algebra/CharP/Quotient.lean Modified Mathlib/Algebra/CharZero/Defs.lean Modified Mathlib/Algebra/DirectSum/Algebra.lean Modified Mathlib/Algebra/DualNumber.lean Modified Mathlib/Algebra/EuclideanDomain/Instances.lean Modified Mathlib/Algebra/FreeAlgebra.lean Modified Mathlib/Algebra/Group/Basic.lean Modified Mathlib/Algebra/Group/InjSurj.lean Modified Mathlib/Algebra/Group/Semiconj/Defs.lean Modified Mathlib/Algebra/Group/UniqueProds.lean Modified Mathlib/Algebra/Group/Units.lean Modified Mathlib/Algebra/Group/Units/Hom.lean Modified Mathlib/Algebra/IsPrimePow.lean Modified Mathlib/Algebra/Lie/Weights/Basic.lean Modified Mathlib/Algebra/Module/Basic.lean Modified Mathlib/Algebra/Module/LocalizedModule.lean Modified Mathlib/Algebra/MonoidAlgebra/Ideal.lean Modified Mathlib/Algebra/Order/Field/Basic.lean Modified Mathlib/Algebra/Order/Floor.lean Modified Mathlib/Algebra/Order/LatticeGroup.lean Modified Mathlib/Algebra/Order/Module.lean Modified Mathlib/Algebra/Order/Monoid/Canonical/Defs.lean Modified Mathlib/Algebra/Order/Monoid/WithTop.lean Modified Mathlib/Algebra/Order/Monovary.lean Modified Mathlib/Algebra/Order/Ring/Lemmas.lean Modified Mathlib/Algebra/Order/Ring/Star.lean Modified Mathlib/Algebra/Order/Sub/Defs.lean Modified Mathlib/Algebra/Quandle.lean +/- theorem UnitalShelf.act_idem Modified Mathlib/Algebra/Quaternion.lean Modified Mathlib/Algebra/Regular/SMul.lean Modified Mathlib/Algebra/Ring/Basic.lean Modified Mathlib/Algebra/Ring/Units.lean Modified Mathlib/Algebra/SMulWithZero.lean Modified Mathlib/Algebra/Squarefree.lean Modified Mathlib/Algebra/Star/NonUnitalSubalgebra.lean Modified Mathlib/Algebra/Star/Subalgebra.lean Modified Mathlib/AlgebraicGeometry/GammaSpecAdjunction.lean Modified Mathlib/AlgebraicGeometry/Morphisms/QuasiSeparated.lean Modified Mathlib/AlgebraicGeometry/Morphisms/RingHomProperties.lean Modified Mathlib/AlgebraicGeometry/Spec.lean Modified Mathlib/Analysis/Analytic/Constructions.lean Modified Mathlib/Analysis/Analytic/RadiusLiminf.lean Modified Mathlib/Analysis/Asymptotics/Asymptotics.lean Modified Mathlib/Analysis/Convex/Combination.lean Modified Mathlib/Analysis/Convex/Extreme.lean Modified Mathlib/Analysis/Convex/Function.lean Modified Mathlib/Analysis/Convex/KreinMilman.lean Modified Mathlib/Analysis/Convex/Mul.lean Modified Mathlib/Analysis/Convex/Radon.lean Modified Mathlib/Analysis/Convex/SpecificFunctions/Pow.lean Modified Mathlib/Analysis/Convex/StrictConvexBetween.lean Modified Mathlib/Analysis/Convex/Strong.lean Modified Mathlib/Analysis/InnerProductSpace/Basic.lean Modified Mathlib/Analysis/InnerProductSpace/Spectrum.lean Modified Mathlib/Analysis/Normed/Field/Basic.lean Modified Mathlib/Analysis/Normed/Group/AddTorsor.lean Modified Mathlib/Analysis/Normed/Group/Basic.lean Modified Mathlib/Analysis/Normed/Group/Hom.lean Modified Mathlib/Analysis/Normed/Group/SemiNormedGroupCat/Kernels.lean Modified Mathlib/Analysis/Normed/Group/Seminorm.lean Modified Mathlib/Analysis/NormedSpace/MStructure.lean Modified Mathlib/Analysis/NormedSpace/RieszLemma.lean Modified Mathlib/Analysis/NormedSpace/Spectrum.lean Modified Mathlib/Analysis/NormedSpace/Star/Unitization.lean Modified Mathlib/Analysis/SpecialFunctions/Complex/Log.lean Modified Mathlib/Analysis/SpecialFunctions/Exp.lean Modified Mathlib/Analysis/SpecialFunctions/Gaussian.lean Modified Mathlib/Analysis/SpecialFunctions/Log/Base.lean Modified Mathlib/Analysis/SpecialFunctions/Log/Basic.lean Modified Mathlib/Analysis/SpecialFunctions/Pow/Asymptotics.lean Modified Mathlib/Analysis/SpecialFunctions/Pow/NNReal.lean Modified Mathlib/Analysis/SpecialFunctions/Pow/Real.lean Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Angle.lean Modified Mathlib/Analysis/VonNeumannAlgebra/Basic.lean Modified Mathlib/CategoryTheory/Adjunction/Evaluation.lean Modified Mathlib/CategoryTheory/Arrow.lean Modified Mathlib/CategoryTheory/Bicategory/Coherence.lean Modified Mathlib/CategoryTheory/Endofunctor/Algebra.lean +/- theorem CategoryTheory.Endofunctor.Algebra.Initial.left_inv' Modified Mathlib/CategoryTheory/Filtered/Basic.lean Modified Mathlib/CategoryTheory/Functor/Currying.lean Modified Mathlib/CategoryTheory/Functor/FullyFaithful.lean Modified Mathlib/CategoryTheory/Groupoid/FreeGroupoid.lean Modified Mathlib/CategoryTheory/Limits/IsLimit.lean Modified Mathlib/CategoryTheory/Limits/Preserves/Shapes/Pullbacks.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Equalizers.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Images.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Kernels.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Pullbacks.lean Modified Mathlib/CategoryTheory/Limits/Shapes/StrongEpi.lean Modified Mathlib/CategoryTheory/Limits/Shapes/ZeroMorphisms.lean Modified Mathlib/CategoryTheory/Monoidal/Category.lean Modified Mathlib/CategoryTheory/Monoidal/Transport.lean Modified Mathlib/CategoryTheory/Over.lean Modified Mathlib/CategoryTheory/Shift/Induced.lean Modified Mathlib/CategoryTheory/Sites/Coherent.lean Modified Mathlib/CategoryTheory/Sites/Coverage.lean Modified Mathlib/CategoryTheory/Sites/Sheafification.lean Modified Mathlib/CategoryTheory/Sites/Surjective.lean Modified Mathlib/CategoryTheory/StructuredArrow.lean Modified Mathlib/CategoryTheory/Yoneda.lean Modified Mathlib/Combinatorics/Catalan.lean Modified Mathlib/Combinatorics/Colex.lean Modified Mathlib/Combinatorics/Composition.lean Modified Mathlib/Combinatorics/Partition.lean Modified Mathlib/Combinatorics/Quiver/Symmetric.lean Modified Mathlib/Combinatorics/SetFamily/Compression/Down.lean Modified Mathlib/Combinatorics/SetFamily/Compression/UV.lean Modified Mathlib/Combinatorics/SetFamily/FourFunctions.lean Modified Mathlib/Combinatorics/SetFamily/Shadow.lean Modified Mathlib/Combinatorics/SetFamily/Shatter.lean Modified Mathlib/Combinatorics/SimpleGraph/Girth.lean Modified Mathlib/Combinatorics/SimpleGraph/Regularity/Bound.lean Modified Mathlib/Combinatorics/SimpleGraph/Regularity/Uniform.lean Modified Mathlib/Combinatorics/Young/YoungDiagram.lean Modified Mathlib/Computability/AkraBazzi/GrowsPolynomially.lean Modified Mathlib/Computability/Language.lean Modified Mathlib/Control/Random.lean Modified Mathlib/Data/Complex/Exponential.lean Modified Mathlib/Data/Complex/Module.lean Modified Mathlib/Data/DFinsupp/Interval.lean Modified Mathlib/Data/DFinsupp/Order.lean Modified Mathlib/Data/Fin/Basic.lean Modified Mathlib/Data/Fin/Tuple/NatAntidiagonal.lean Modified Mathlib/Data/Finset/Basic.lean Modified Mathlib/Data/Finset/Card.lean Modified Mathlib/Data/Finset/Functor.lean Modified Mathlib/Data/Finset/Image.lean Modified Mathlib/Data/Finset/Lattice.lean Modified Mathlib/Data/Finset/PImage.lean Modified Mathlib/Data/Finset/Sups.lean +/- theorem Finset.compls_subset_iff +/- theorem Finset.infs_self +/- theorem Finset.sups_eq_self Modified Mathlib/Data/Finsupp/AList.lean Modified Mathlib/Data/Finsupp/Antidiagonal.lean Modified Mathlib/Data/Finsupp/Basic.lean Modified Mathlib/Data/Finsupp/Order.lean Modified Mathlib/Data/Fintype/Basic.lean Modified Mathlib/Data/Fintype/Card.lean Modified Mathlib/Data/Fintype/CardEmbedding.lean Modified Mathlib/Data/Holor.lean Modified Mathlib/Data/Int/Bitwise.lean Modified Mathlib/Data/Int/Cast/Lemmas.lean Modified Mathlib/Data/Int/Dvd/Basic.lean Modified Mathlib/Data/Int/Order/Basic.lean Modified Mathlib/Data/Int/Sqrt.lean Modified Mathlib/Data/List/Basic.lean Modified Mathlib/Data/List/Count.lean Modified Mathlib/Data/List/EditDistance/Estimator.lean Modified Mathlib/Data/List/NodupEquivFin.lean Modified Mathlib/Data/Matrix/Basic.lean Modified Mathlib/Data/Matrix/Invertible.lean Modified Mathlib/Data/Matroid/Basic.lean Modified Mathlib/Data/Matroid/IndepAxioms.lean Modified Mathlib/Data/Multiset/Basic.lean Modified Mathlib/Data/Multiset/Bind.lean Modified Mathlib/Data/Multiset/Fintype.lean Modified Mathlib/Data/Multiset/Nodup.lean Modified Mathlib/Data/MvPolynomial/Basic.lean Modified Mathlib/Data/MvPolynomial/Equiv.lean Modified Mathlib/Data/Nat/Basic.lean Modified Mathlib/Data/Nat/Bitwise.lean Modified Mathlib/Data/Nat/Cast/Defs.lean Modified Mathlib/Data/Nat/Digits.lean Modified Mathlib/Data/Nat/Factorization/Basic.lean Modified Mathlib/Data/Nat/Factorization/PrimePow.lean Modified Mathlib/Data/Nat/Fib/Basic.lean Modified Mathlib/Data/Nat/Fib/Zeckendorf.lean Modified Mathlib/Data/Nat/GCD/Basic.lean Modified Mathlib/Data/Nat/MaxPowDiv.lean Modified Mathlib/Data/Nat/Parity.lean Modified Mathlib/Data/Nat/PartENat.lean Modified Mathlib/Data/Nat/Prime.lean Modified Mathlib/Data/Nat/PrimeFin.lean Modified Mathlib/Data/Nat/Sqrt.lean Modified Mathlib/Data/Nat/Squarefree.lean Modified Mathlib/Data/Num/Lemmas.lean Modified Mathlib/Data/PNat/Interval.lean Modified Mathlib/Data/Polynomial/Degree/Definitions.lean Modified Mathlib/Data/Polynomial/Degree/TrailingDegree.lean Modified Mathlib/Data/Polynomial/DenomsClearable.lean Modified Mathlib/Data/Polynomial/Derivation.lean Modified Mathlib/Data/Polynomial/FieldDivision.lean Modified Mathlib/Data/Polynomial/HasseDeriv.lean Modified Mathlib/Data/Polynomial/Lifts.lean Modified Mathlib/Data/Polynomial/Module.lean Modified Mathlib/Data/Polynomial/RingDivision.lean Modified Mathlib/Data/QPF/Multivariate/Constructions/Cofix.lean Modified Mathlib/Data/Rat/Defs.lean Modified Mathlib/Data/Rat/Lemmas.lean Modified Mathlib/Data/Rat/Order.lean Modified Mathlib/Data/Rat/Sqrt.lean Modified Mathlib/Data/Real/ENNReal.lean Modified Mathlib/Data/Rel.lean Modified Mathlib/Data/Semiquot.lean Modified Mathlib/Data/Seq/WSeq.lean Modified Mathlib/Data/Set/Basic.lean Modified Mathlib/Data/Set/Card.lean Modified Mathlib/Data/Set/Function.lean Modified Mathlib/Data/Set/Image.lean Modified Mathlib/Data/Set/Intervals/UnorderedInterval.lean Modified Mathlib/Data/Set/NAry.lean Modified Mathlib/Data/Setoid/Partition.lean Modified Mathlib/Data/Sign.lean Modified Mathlib/Data/Sum/Lattice.lean Modified Mathlib/Data/Sym/Sym2.lean Modified Mathlib/Data/Vector/Basic.lean Modified Mathlib/Data/ZMod/Basic.lean Modified Mathlib/Data/ZMod/IntUnitsPower.lean Modified Mathlib/Dynamics/Flow.lean Modified Mathlib/FieldTheory/Adjoin.lean Modified Mathlib/FieldTheory/Finite/Basic.lean Modified Mathlib/FieldTheory/RatFunc.lean Modified Mathlib/FieldTheory/SplittingField/Construction.lean Modified Mathlib/Geometry/Euclidean/MongePoint.lean Modified Mathlib/Geometry/Manifold/Instances/Sphere.lean Modified Mathlib/Geometry/RingedSpace/Basic.lean Modified Mathlib/Geometry/RingedSpace/LocallyRingedSpace/HasColimits.lean Modified Mathlib/Geometry/RingedSpace/OpenImmersion.lean Modified Mathlib/Geometry/RingedSpace/PresheafedSpace/Gluing.lean Modified Mathlib/Geometry/RingedSpace/PresheafedSpace/HasColimits.lean Modified Mathlib/GroupTheory/ClassEquation.lean Modified Mathlib/GroupTheory/CommutingProbability.lean Modified Mathlib/GroupTheory/Complement.lean Modified Mathlib/GroupTheory/Exponent.lean Modified Mathlib/GroupTheory/GroupAction/Quotient.lean Modified Mathlib/GroupTheory/OrderOfElement.lean Modified Mathlib/GroupTheory/PGroup.lean Modified Mathlib/GroupTheory/Perm/Cycle/Basic.lean Modified Mathlib/GroupTheory/Perm/Cycle/Concrete.lean Modified Mathlib/GroupTheory/QuotientGroup.lean Modified Mathlib/GroupTheory/SchurZassenhaus.lean Modified Mathlib/GroupTheory/SpecificGroups/Cyclic.lean Modified Mathlib/GroupTheory/SpecificGroups/Dihedral.lean Modified Mathlib/GroupTheory/SpecificGroups/KleinFour.lean Modified Mathlib/GroupTheory/Subgroup/Basic.lean Modified Mathlib/GroupTheory/Submonoid/Membership.lean Modified Mathlib/GroupTheory/Subsemigroup/Center.lean Modified Mathlib/GroupTheory/Sylow.lean Modified Mathlib/GroupTheory/Transfer.lean Modified Mathlib/Init/Data/Nat/Bitwise.lean Modified Mathlib/Lean/Expr/Basic.lean Modified Mathlib/LinearAlgebra/CliffordAlgebra/BaseChange.lean Modified Mathlib/LinearAlgebra/Dual.lean Modified Mathlib/LinearAlgebra/Finsupp.lean Modified Mathlib/LinearAlgebra/FreeAlgebra.lean Modified Mathlib/LinearAlgebra/Matrix/Charpoly/Coeff.lean Modified Mathlib/LinearAlgebra/Matrix/SchurComplement.lean Modified Mathlib/LinearAlgebra/Matrix/SesquilinearForm.lean Modified Mathlib/LinearAlgebra/QuadraticForm/Basic.lean Modified Mathlib/LinearAlgebra/QuadraticForm/TensorProduct.lean Modified Mathlib/LinearAlgebra/StdBasis.lean Modified Mathlib/Logic/Embedding/Basic.lean Modified Mathlib/Logic/Equiv/LocalEquiv.lean Modified Mathlib/Logic/Function/Iterate.lean Modified Mathlib/Logic/Relation.lean Modified Mathlib/MeasureTheory/Group/Action.lean Modified Mathlib/MeasureTheory/Group/AddCircle.lean Modified Mathlib/MeasureTheory/Integral/Average.lean Modified Mathlib/MeasureTheory/Integral/Lebesgue.lean Modified Mathlib/MeasureTheory/MeasurableSpace/Basic.lean Modified Mathlib/MeasureTheory/Measure/Haar/InnerProductSpace.lean Modified Mathlib/MeasureTheory/Measure/ProbabilityMeasure.lean Modified Mathlib/NumberTheory/ArithmeticFunction.lean Modified Mathlib/NumberTheory/Bernoulli.lean Modified Mathlib/NumberTheory/Cyclotomic/Gal.lean Modified Mathlib/NumberTheory/DiophantineApproximation.lean Modified Mathlib/NumberTheory/FLT/Basic.lean Modified Mathlib/NumberTheory/Padics/PadicNumbers.lean Modified Mathlib/NumberTheory/Padics/PadicVal.lean Modified Mathlib/Order/Birkhoff.lean Modified Mathlib/Order/BooleanAlgebra.lean Modified Mathlib/Order/Bounds/Basic.lean Modified Mathlib/Order/Closure.lean Modified Mathlib/Order/CompleteLattice.lean Modified Mathlib/Order/CompleteLatticeIntervals.lean Modified Mathlib/Order/Filter/Archimedean.lean Modified Mathlib/Order/Filter/AtTopBot.lean Modified Mathlib/Order/Filter/Basic.lean +/- theorem Filter.ker_pure Modified Mathlib/Order/Filter/Cofinite.lean Modified Mathlib/Order/Filter/Partial.lean Modified Mathlib/Order/Lattice.lean +/- theorem inf_eq_sup Modified Mathlib/Order/LiminfLimsup.lean Modified Mathlib/Order/Minimal.lean Modified Mathlib/Order/Monotone/Basic.lean Modified Mathlib/Order/OmegaCompletePartialOrder.lean Modified Mathlib/Order/RelClasses.lean +/- theorem ssubset_of_ssubset_of_eq +/- theorem subset_of_subset_of_eq Modified Mathlib/Order/Sublattice.lean +/- theorem Sublattice.coe_eq_empty +/- theorem Sublattice.coe_eq_univ Modified Mathlib/Order/SupClosed.lean Modified Mathlib/Order/UpperLower/Basic.lean +/- theorem LowerSet.erase_eq +/- theorem UpperSet.erase_eq Modified Mathlib/Probability/Distributions/Exponential.lean Modified Mathlib/Probability/Distributions/Gaussian.lean Modified Mathlib/Probability/Independence/Basic.lean Modified Mathlib/RepresentationTheory/Basic.lean Modified Mathlib/RepresentationTheory/GroupCohomology/Basic.lean Modified Mathlib/RepresentationTheory/GroupCohomology/Hilbert90.lean Modified Mathlib/RepresentationTheory/GroupCohomology/LowDegree.lean Modified Mathlib/RepresentationTheory/GroupCohomology/Resolution.lean Modified Mathlib/RepresentationTheory/Rep.lean Modified Mathlib/RingTheory/DedekindDomain/Ideal.lean Modified Mathlib/RingTheory/FiniteType.lean Modified Mathlib/RingTheory/Flat.lean Modified Mathlib/RingTheory/HahnSeries.lean Modified Mathlib/RingTheory/Ideal/Basic.lean Modified Mathlib/RingTheory/Ideal/Over.lean Modified Mathlib/RingTheory/Int/Basic.lean Modified Mathlib/RingTheory/Multiplicity.lean Modified Mathlib/RingTheory/Nilpotent.lean Modified Mathlib/RingTheory/Noetherian.lean Modified Mathlib/RingTheory/Polynomial/Content.lean Modified Mathlib/RingTheory/Polynomial/Vieta.lean Modified Mathlib/RingTheory/PolynomialAlgebra.lean Modified Mathlib/RingTheory/PowerSeries/Basic.lean Modified Mathlib/RingTheory/PowerSeries/Derivative.lean Modified Mathlib/RingTheory/RootsOfUnity/Basic.lean Modified Mathlib/RingTheory/Subsemiring/Basic.lean Modified Mathlib/RingTheory/TensorProduct.lean Modified Mathlib/RingTheory/Valuation/Basic.lean Modified Mathlib/SetTheory/Cardinal/Basic.lean +/- theorem Cardinal.lift_two +/- theorem Cardinal.mk_set Modified Mathlib/SetTheory/Cardinal/Divisibility.lean Modified Mathlib/SetTheory/Ordinal/Basic.lean Modified Mathlib/SetTheory/Ordinal/FixedPoint.lean Modified Mathlib/SetTheory/Ordinal/Notation.lean Modified Mathlib/SetTheory/ZFC/Basic.lean Modified Mathlib/Tactic/ApplyFun.lean Modified Mathlib/Tactic/CancelDenoms/Core.lean Modified Mathlib/Tactic/CategoryTheory/Slice.lean Modified Mathlib/Tactic/Explode/Pretty.lean Modified Mathlib/Tactic/Group.lean Modified Mathlib/Tactic/Linarith/Verification.lean Modified Mathlib/Tactic/MkIffOfInductiveProp.lean Modified Mathlib/Tactic/NormNum/Basic.lean Modified Mathlib/Tactic/NormNum/BigOperators.lean Modified Mathlib/Tactic/Rewrites.lean Modified Mathlib/Tactic/Simps/Basic.lean Modified Mathlib/Tactic/Widget/Conv.lean Modified Mathlib/Testing/SlimCheck/Gen.lean Modified Mathlib/Testing/SlimCheck/Sampleable.lean Modified Mathlib/Testing/SlimCheck/Testable.lean Modified Mathlib/Topology/AlexandrovDiscrete.lean Modified Mathlib/Topology/Algebra/UniformGroup.lean Modified Mathlib/Topology/Category/TopCat/Basic.lean Modified Mathlib/Topology/Category/TopCat/Limits/Basic.lean Modified Mathlib/Topology/Category/TopCat/Limits/Cofiltered.lean Modified Mathlib/Topology/Category/TopCat/Limits/Products.lean Modified Mathlib/Topology/Category/TopCat/Limits/Pullbacks.lean Modified Mathlib/Topology/ContinuousFunction/Algebra.lean Modified Mathlib/Topology/DiscreteSubset.lean Modified Mathlib/Topology/Gluing.lean Modified Mathlib/Topology/Instances/AddCircle.lean Modified Mathlib/Topology/MetricSpace/Kuratowski.lean Modified Mathlib/Topology/NhdsSet.lean Modified Mathlib/Topology/Sheaves/Operations.lean Modified Mathlib/Topology/Sheaves/Presheaf.lean Modified Mathlib/Topology/Sheaves/SheafCondition/PairwiseIntersections.lean Modified Mathlib/Topology/Sheaves/Stalks.lean Modified Mathlib/Topology/UniformSpace/AbstractCompletion.lean Modified Mathlib/Topology/UnitInterval.lean Modified test/NthRewrite.lean Modified test/convert.lean 2023-12-02 14:02:22 5f9aeff feat(Analysis/Seminorm): add more `*ball_smul_*ball` (#8783) We had `ball_smul_ball` and `closedBall_smul_closedBall`. Add versions with mixed `ball` and `closedBall`. Also move this lemmas below and golf the proofs. This was already merged in #8724 but accidentally got reverted in #8725 See [Zulip](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/bump.2Fv4.2E4.2E0/near/405505687) ESTIMATED CHANGES Modified Mathlib/Analysis/Seminorm.lean + theorem Seminorm.ball_smul_closedBall + theorem Seminorm.closedBall_smul_ball 2023-12-02 12:22:52 9df2cbf feat: add slim_check generators for Rat (#8759) ESTIMATED CHANGES Modified Mathlib/Testing/SlimCheck/Sampleable.lean 2023-12-02 09:32:42 d148891 chore: bump dependencies (#8782) ESTIMATED CHANGES Modified lake-manifest.json 2023-12-02 07:05:28 75641ab chore: bump Mathlib to Lean v4.4.0-rc1 (#8781) The commits below are all approved PRs, as planned, except: * the second last one which resolves conflicts in `lake-manifest.json` and `lean-toolchain`. * the last one the reverts a mysterious change in `Mathlib.Analysis.Seminorm`, discussed in the comment below. ESTIMATED CHANGES Modified Mathlib/Tactic/Core.lean Modified Mathlib/Tactic/Find.lean Modified Mathlib/Tactic/LibrarySearch.lean Modified Mathlib/Tactic/Propose.lean Modified Mathlib/Tactic/Rewrites.lean Modified lake-manifest.json Modified lakefile.lean - def moreLeanArgs - def moreServerArgs - def weakLeanArgs Modified lean-toolchain 2023-12-02 00:33:08 c72f4d0 fix: nonspecific lemmas are poisoning apply? (#8764) I would like to include the "nonspecific" lemmas in the results, but it will need more work (making sure they come after more specific results, and that they don't slow down output). ESTIMATED CHANGES Modified Mathlib/Lean/Meta/DiscrTree.lean + def Lean.Meta.DiscrTree.keysSpecific Modified Mathlib/Tactic/LibrarySearch.lean Modified Mathlib/Tactic/Rewrites.lean - def Mathlib.Tactic.Rewrites.keysSpecific Modified test/LibrarySearch/basic.lean 2023-12-01 21:17:51 f04afed chore: Remove `le_antisymm'` (#8760) This was a duplicate of `le_antisymm` for use in e-match, but e-matching never was ported. ESTIMATED CHANGES Modified Mathlib/Order/Lattice.lean - theorem le_antisymm' Modified test/LibrarySearch/basic.lean 2023-12-01 20:35:26 d7ae0ec refactor: review normed group structure on `ContinuousLinearMap` (#8725) Move parts of the proof of "two uniformities are equal" up while generalizing it. Also add a `ContinuousConstSMul` instance that needs less assumptions than `ContinuousSMul`. ESTIMATED CHANGES Modified Mathlib/Analysis/Normed/Group/Basic.lean +/- def NormedGroup.ofSeparation Modified Mathlib/Analysis/NormedSpace/CompactOperator.lean Modified Mathlib/Analysis/NormedSpace/OperatorNorm.lean Modified Mathlib/Analysis/Seminorm.lean - theorem Seminorm.ball_smul_closedBall - theorem Seminorm.closedBall_smul_ball + theorem Seminorm.uniformSpace_eq_of_hasBasis + theorem Seminorm.uniformity_eq_of_hasBasis Modified Mathlib/Topology/Algebra/Module/Basic.lean Modified Mathlib/Topology/Algebra/Module/StrongTopology.lean + theorem ContinuousLinearMap.strongTopology.continuousConstSMul 2023-12-01 19:15:32 7c99b77 chore(NumberTheory/Divisors): golf (#8698) - use `∃ j ≤ k, _` instead of `∃ j (_ : j ≤ k)` in `Nat.mem_divisors_prime_pow`; - golf `Nat.divisors_prime_pow`. ESTIMATED CHANGES Modified Mathlib/NumberTheory/Divisors.lean 2023-12-01 16:02:13 8b8aaa2 chore: rename lemmas containing "of_open" to match the naming convention (#8229) Mostly, this means replacing "of_open" by "of_isOpen". A few lemmas names were misleading and are corrected differently. [Zulip discussion](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/Naming.20convention/near/402702125). ESTIMATED CHANGES Modified Mathlib/AlgebraicGeometry/OpenImmersion.lean Modified Mathlib/AlgebraicGeometry/PrimeSpectrum/Basic.lean Modified Mathlib/AlgebraicGeometry/ProjectiveSpectrum/Topology.lean Modified Mathlib/Analysis/Calculus/ContDiff/Basic.lean + theorem ContDiffOn.continuousOn_deriv_of_isOpen - theorem ContDiffOn.continuousOn_deriv_of_open + theorem ContDiffOn.deriv_of_isOpen - theorem ContDiffOn.deriv_of_open + theorem contDiffOn_succ_iff_deriv_of_isOpen - theorem contDiffOn_succ_iff_deriv_of_open + theorem contDiffOn_top_iff_deriv_of_isOpen - theorem contDiffOn_top_iff_deriv_of_open Modified Mathlib/Analysis/Calculus/ContDiff/Defs.lean + theorem ContDiffOn.continuousOn_fderiv_of_isOpen - theorem ContDiffOn.continuousOn_fderiv_of_open + theorem ContDiffOn.fderiv_of_isOpen - theorem ContDiffOn.fderiv_of_open + theorem contDiffOn_succ_iff_fderiv_of_isOpen - theorem contDiffOn_succ_iff_fderiv_of_open + theorem contDiffOn_top_iff_fderiv_of_isOpen - theorem contDiffOn_top_iff_fderiv_of_open Modified Mathlib/Analysis/Calculus/Deriv/Basic.lean + theorem derivWithin_of_isOpen - theorem derivWithin_of_open Modified Mathlib/Analysis/Calculus/LineDeriv/Basic.lean + theorem lineDerivWithin_of_isOpen - theorem lineDerivWithin_of_open Modified Mathlib/Analysis/Complex/AbsMax.lean Modified Mathlib/Analysis/Convex/Gauge.lean + theorem gaugeSeminorm_lt_one_of_isOpen - theorem gaugeSeminorm_lt_one_of_open + theorem gauge_lt_one_eq_self_of_isOpen - theorem gauge_lt_one_eq_self_of_open + theorem gauge_lt_one_of_mem_of_isOpen - theorem gauge_lt_one_of_mem_of_open Modified Mathlib/Analysis/Convex/Strict.lean Modified Mathlib/Analysis/Convolution.lean Modified Mathlib/Analysis/LocallyConvex/AbsConvex.lean Modified Mathlib/Analysis/NormedSpace/Basic.lean Modified Mathlib/Analysis/NormedSpace/HahnBanach/Separation.lean Modified Mathlib/Analysis/SpecialFunctions/Log/Deriv.lean Modified Mathlib/Geometry/Manifold/ChartedSpace.lean Modified Mathlib/Geometry/Manifold/Complex.lean Modified Mathlib/Geometry/Manifold/PartitionOfUnity.lean Modified Mathlib/Geometry/Manifold/SmoothManifoldWithCorners.lean Modified Mathlib/MeasureTheory/Measure/Regular.lean + theorem MeasureTheory.Measure.InnerRegularWRT.measurableSet_of_isOpen - theorem MeasureTheory.Measure.InnerRegularWRT.measurableSet_of_open Modified Mathlib/MeasureTheory/Measure/Typeclasses.lean Modified Mathlib/NumberTheory/NumberField/Units.lean Modified Mathlib/Topology/Algebra/Group/Basic.lean + theorem discreteTopology_iff_isOpen_singleton_one - theorem discreteTopology_iff_open_singleton_one + theorem discreteTopology_of_isOpen_singleton_one - theorem discreteTopology_of_open_singleton_one Modified Mathlib/Topology/Algebra/Nonarchimedean/AdicTopology.lean Modified Mathlib/Topology/Algebra/OpenSubgroup.lean + theorem Ideal.isOpen_of_isOpen_subideal - theorem Ideal.isOpen_of_open_subideal Modified Mathlib/Topology/Bases.lean + theorem TopologicalSpace.isTopologicalBasis_of_isOpen_of_nhds - theorem TopologicalSpace.isTopologicalBasis_of_open_of_nhds Modified Mathlib/Topology/Basic.lean + theorem Dense.inter_of_isOpen_left + theorem Dense.inter_of_isOpen_right - theorem Dense.inter_of_open_left - theorem Dense.inter_of_open_right Modified Mathlib/Topology/Category/Profinite/Basic.lean Modified Mathlib/Topology/Category/Profinite/CofilteredLimit.lean Modified Mathlib/Topology/Category/Stonean/Basic.lean Modified Mathlib/Topology/Clopen.lean Modified Mathlib/Topology/Connected/Basic.lean + theorem IsConnected.preimage_of_isOpenMap - theorem IsConnected.preimage_of_openMap + theorem IsPreconnected.preimage_of_isOpenMap - theorem IsPreconnected.preimage_of_open_map Modified Mathlib/Topology/Connected/LocallyConnected.lean Modified Mathlib/Topology/ContinuousOn.lean + theorem ContinuousOn.isOpen_inter_preimage - theorem ContinuousOn.preimage_open_of_open + theorem continuousOn_isOpen_of_generateFrom - theorem continuousOn_open_of_generateFrom Modified Mathlib/Topology/Covering.lean Modified Mathlib/Topology/FiberBundle/Basic.lean Modified Mathlib/Topology/GDelta.lean + theorem isGδ_biInter_of_isOpen - theorem isGδ_biInter_of_open + theorem isGδ_iInter_of_isOpen - theorem isGδ_iInter_of_open Modified Mathlib/Topology/Instances/Real.lean Modified Mathlib/Topology/IsLocallyHomeomorph.lean Modified Mathlib/Topology/LocalHomeomorph.lean + theorem LocalHomeomorph.image_isOpen_of_isOpen' + theorem LocalHomeomorph.image_isOpen_of_isOpen - theorem LocalHomeomorph.image_open_of_open' - theorem LocalHomeomorph.image_open_of_open + theorem LocalHomeomorph.isOpen_inter_preimage + theorem LocalHomeomorph.isOpen_inter_preimage_symm - theorem LocalHomeomorph.preimage_open_of_open - theorem LocalHomeomorph.preimage_open_of_open_symm Modified Mathlib/Topology/MetricSpace/Baire.lean + theorem dense_biInter_of_isOpen - theorem dense_biInter_of_open + theorem dense_iInter_of_isOpen + theorem dense_iInter_of_isOpen_nat - theorem dense_iInter_of_open - theorem dense_iInter_of_open_nat + theorem dense_sInter_of_isOpen - theorem dense_sInter_of_open Modified Mathlib/Topology/MetricSpace/PiNat.lean Modified Mathlib/Topology/Separation.lean - theorem compact_exists_clopen_in_open + theorem compact_exists_isClopen_in_isOpen + theorem exists_isOpen_singleton_of_isOpen_finite - theorem exists_open_singleton_of_open_finite - theorem isTopologicalBasis_clopen + theorem isTopologicalBasis_isClopen Modified Mathlib/Topology/Sets/Opens.lean Modified Mathlib/Topology/UniformSpace/Basic.lean + theorem isOpen_of_uniformity_sum_aux - theorem open_of_uniformity_sum_aux + theorem uniformity_sum_of_isOpen_aux - theorem uniformity_sum_of_open_aux Modified Mathlib/Topology/UniformSpace/Cauchy.lean Modified docs/overview.yaml 2023-12-01 14:20:25 42649c4 chore: use StandardBorelSpace instead of PolishSpace in the Probability folder (#8762) Also replace some `Type _` with `Type*`. ESTIMATED CHANGES Modified Mathlib/Probability/Independence/Conditional.lean +/- theorem ProbabilityTheory.CondIndep.symm +/- theorem ProbabilityTheory.CondIndepFun.comp +/- def ProbabilityTheory.CondIndepFun +/- theorem ProbabilityTheory.condIndepFun_iff +/- theorem ProbabilityTheory.condIndepFun_iff_condIndep +/- theorem ProbabilityTheory.condIndep_iff_condIndepSets +/- theorem ProbabilityTheory.iCondIndepFun.condIndepFun +/- theorem ProbabilityTheory.iCondIndepFun.condIndepFun_finset +/- theorem ProbabilityTheory.iCondIndepFun.condIndepFun_prod +/- def ProbabilityTheory.iCondIndepFun +/- theorem ProbabilityTheory.iCondIndepFun_iff +/- theorem ProbabilityTheory.iCondIndepFun_iff_condexp_inter_preimage_eq_mul +/- theorem ProbabilityTheory.iCondIndepFun_iff_iCondIndep Modified Mathlib/Probability/Independence/ZeroOne.lean +/- theorem ProbabilityTheory.condIndep_biSup_compl +/- theorem ProbabilityTheory.condIndep_biSup_limsup +/- theorem ProbabilityTheory.condIndep_iSup_directed_limsup +/- theorem ProbabilityTheory.condIndep_iSup_limsup +/- theorem ProbabilityTheory.condIndep_limsup_atBot_self +/- theorem ProbabilityTheory.condIndep_limsup_atTop_self +/- theorem ProbabilityTheory.condIndep_limsup_self +/- theorem ProbabilityTheory.condexp_zero_or_one_of_measurableSet_limsup +/- theorem ProbabilityTheory.condexp_zero_or_one_of_measurableSet_limsup_atBot +/- theorem ProbabilityTheory.condexp_zero_or_one_of_measurableSet_limsup_atTop 2023-12-01 11:18:55 e368f2a feat(*/Equiv/*): Add `symm_bijective` lemmas next to `symm_symm`s (#8444) ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/Equiv.lean Modified Mathlib/Algebra/Group/Equiv/Basic.lean +/- theorem MulEquiv.symm_bijective Modified Mathlib/Algebra/Homology/ComplexShape.lean + theorem ComplexShape.symm_bijective Modified Mathlib/Algebra/Lie/Basic.lean + theorem LieEquiv.symm_bijective + theorem LieModuleEquiv.symm_bijective Modified Mathlib/Algebra/Module/Equiv.lean Modified Mathlib/Algebra/Order/Hom/Ring.lean +/- theorem OrderRingIso.symm_bijective Modified Mathlib/Algebra/Ring/Equiv.lean +/- theorem RingEquiv.symm_bijective Modified Mathlib/Algebra/Star/StarAlgHom.lean Modified Mathlib/AlgebraicTopology/FundamentalGroupoid/Basic.lean Modified Mathlib/Data/PEquiv.lean + theorem PEquiv.symm_bijective Modified Mathlib/Logic/Equiv/Defs.lean + theorem Equiv.symm_bijective Modified Mathlib/Logic/Equiv/LocalEquiv.lean + theorem LocalEquiv.symm_bijective Modified Mathlib/MeasureTheory/MeasurableSpace/Basic.lean + theorem MeasurableEquiv.symm_bijective Modified Mathlib/Order/Hom/Basic.lean + theorem OrderIso.symm_bijective +/- theorem OrderIso.symm_injective Modified Mathlib/Topology/Connected/PathConnected.lean + theorem Path.symm_bijective +/- theorem Path.symm_symm Modified Mathlib/Topology/Homeomorph.lean + theorem Homeomorph.symm_bijective Modified Mathlib/Topology/Homotopy/Basic.lean + theorem ContinuousMap.Homotopy.symm_bijective + theorem ContinuousMap.HomotopyRel.symm_bijective + theorem ContinuousMap.HomotopyWith.symm_bijective Modified Mathlib/Topology/Homotopy/Path.lean + theorem Path.Homotopy.symm_bijective Modified Mathlib/Topology/LocalHomeomorph.lean + theorem LocalHomeomorph.symm_bijective Modified Mathlib/Topology/MetricSpace/DilationEquiv.lean + theorem DilationEquiv.symm_bijective Modified Mathlib/Topology/MetricSpace/Isometry.lean + theorem IsometryEquiv.symm_bijective Modified Mathlib/Topology/UnitInterval.lean + theorem unitInterval.symm_bijective 2023-12-01 10:42:14 98e6de4 chore: bump Std (#8761) ESTIMATED CHANGES Modified lake-manifest.json 2023-12-01 08:27:37 7f904e5 feat: extend results on product measures from sigma-finite to s-finite measures (#8713) ESTIMATED CHANGES Modified Mathlib/Analysis/Calculus/Rademacher.lean Modified Mathlib/Logic/Function/Basic.lean - theorem Function.FactorsThrough.apply_extend - theorem Function.Injective.apply_extend + theorem Function.apply_extend Modified Mathlib/MeasureTheory/Constructions/Pi.lean Modified Mathlib/MeasureTheory/Constructions/Prod/Basic.lean +/- theorem AEMeasurable.fst +/- theorem AEMeasurable.prod_swap +/- theorem AEMeasurable.snd +/- theorem Measurable.lintegral_prod_left' +/- theorem Measurable.lintegral_prod_left +/- theorem Measurable.lintegral_prod_right' +/- theorem Measurable.lintegral_prod_right +/- theorem Measurable.map_prod_mk_left +/- theorem Measurable.map_prod_mk_right +/- theorem MeasureTheory.Measure.AbsolutelyContinuous.prod +/- theorem MeasureTheory.Measure.add_prod +/- theorem MeasureTheory.Measure.map_prod_map +/- theorem MeasureTheory.Measure.prodAssoc_prod +/- theorem MeasureTheory.Measure.prod_add +/- theorem MeasureTheory.Measure.prod_eq +/- theorem MeasureTheory.Measure.prod_sum + theorem MeasureTheory.Measure.prod_sum_left + theorem MeasureTheory.Measure.prod_sum_right - theorem MeasureTheory.Measure.sum_prod +/- theorem MeasureTheory.MeasurePreserving.skew_product +/- theorem MeasureTheory.lintegral_lintegral_swap +/- theorem MeasureTheory.lintegral_lintegral_symm +/- theorem MeasureTheory.lintegral_prod_swap +/- theorem MeasureTheory.lintegral_prod_symm' +/- theorem MeasureTheory.lintegral_prod_symm +/- theorem measurable_measure_prod_mk_left +/- theorem measurable_measure_prod_mk_right Modified Mathlib/MeasureTheory/Group/Measure.lean Modified Mathlib/MeasureTheory/Measure/AEMeasurable.lean + theorem MeasureTheory.Measure.map_sum Modified Mathlib/MeasureTheory/Measure/Haar/OfBasis.lean Modified Mathlib/MeasureTheory/Measure/MeasureSpace.lean +/- theorem MeasureTheory.Measure.sum_add_sum +/- theorem MeasureTheory.Measure.sum_apply + theorem MeasureTheory.Measure.sum_apply_of_countable + theorem MeasureTheory.Measure.sum_comp_equiv + theorem MeasureTheory.Measure.sum_extend_zero + theorem MeasureTheory.Measure.sum_sum Modified Mathlib/MeasureTheory/Measure/Restrict.lean + theorem MeasureTheory.Measure.restrict_sum_of_countable Modified Mathlib/MeasureTheory/Measure/Typeclasses.lean + theorem MeasureTheory.sfinite_sum_of_countable Modified Mathlib/Topology/Algebra/InfiniteSum/Basic.lean + theorem tsum_extend_zero 2023-12-01 03:39:39 41c3a6c fix: use `githash` instead of `versionString` in cache (#8755) Fixes (or at least mitigates) an issue [reported on Zulip](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/lake.20exe.20cache.20get.20errors/near/405231700), see there for the explanation. It is unclear whether we should be using the toolchain name or just the lean githash for cache invalidation purposes, but we should be consistent with lake's own recompilation strategy or we can get wrong results. ESTIMATED CHANGES Modified Cache/Hashing.lean 2023-12-01 02:12:13 561c005 fix: make List.choose 'more' reducible (#8753) The pattern match (on the `And`) was blocking (some kinds of) reduction. This is presumably because eta reduction doesn't apply in `Prop`, as described in [this Zulip thread](https://leanprover.zulipchat.com/#narrow/stream/236446-Type-theory/topic/And.2Erec/near/398483665). [Zulip thread that reported this](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/Finset.2Echoose/near/405217150). ESTIMATED CHANGES Modified Mathlib/Data/List/Defs.lean Added test/choose_reduction.lean + theorem Finset.foo + theorem List.foo + theorem Multiset.foo 2023-11-30 23:41:28 1c6d0ce chore: bump Std, changes for leanprover/std4#366 (#8700) Notably leanprover/std4#366 changed the definition of `testBit` (to something equivalent) when upstreaming it, which broke a handful of proofs. Other conflicting changes in Std, resolved for now by priming the mathlib name: * `Std.BitVec.adc`: the type was changed from `BitVec (n + 1)` to `Bool × BitVec w` * `Nat.mul_add_mod`: the type was changed from `(a * b + c) % b = c % b` to `(b * a + c) % b = c % b` [Zulip thread](https://leanprover.zulipchat.com/#narrow/stream/348111-std4/topic/Mathlib.20bump.20for.20.22Operations.20for.20bit.20representation.20of.20.2E.2E.2E.22/near/404801443) ESTIMATED CHANGES Modified Mathlib/Data/BitVec/Defs.lean + def Std.BitVec.adc' - def Std.BitVec.adc Modified Mathlib/Data/BitVec/Lemmas.lean - theorem Std.BitVec.getLsb_eq_testBit +/- theorem Std.BitVec.ofFin_val - theorem Std.BitVec.ofNat_eq_mod_two_pow +/- theorem Std.BitVec.ofNat_toNat' - theorem Std.BitVec.ofNat_toNat + theorem Std.BitVec.ofNat_toNat_of_eq - theorem Std.BitVec.toNat_append - theorem Std.BitVec.toNat_ofFin - theorem Std.BitVec.toNat_ofNat + theorem Std.BitVec.toNat_ofNat_of_lt Modified Mathlib/Data/Bool/Basic.lean - theorem Bool.false_eq_decide_iff - def Bool.toNat - theorem Bool.toNat_false - theorem Bool.toNat_le_one - theorem Bool.toNat_true - theorem Bool.true_eq_decide_iff Modified Mathlib/Data/Int/Bitwise.lean Modified Mathlib/Data/Nat/Basic.lean + theorem Nat.mul_add_mod' - theorem Nat.mul_add_mod Modified Mathlib/Data/Nat/Bitwise.lean - theorem Nat.eq_of_testBit_eq - theorem Nat.land_zero - theorem Nat.lor_zero - theorem Nat.testBit_bitwise - theorem Nat.testBit_xor - theorem Nat.zero_land - theorem Nat.zero_lor - theorem Nat.zero_testBit Modified Mathlib/Data/Nat/Order/Lemmas.lean - theorem Nat.mod_div_self Modified Mathlib/Data/Nat/Size.lean - theorem Nat.zero_shiftLeft Modified Mathlib/Data/Num/Lemmas.lean Modified Mathlib/Init/Data/Nat/Bitwise.lean + theorem Nat.bodd_eq_and_one_ne_zero - theorem Nat.shiftLeft_succ - theorem Nat.shiftLeft_zero - def Nat.testBit +/- theorem Nat.testBit_zero Modified lake-manifest.json 2023-11-30 22:26:40 d3855b8 feat: golf using gcongr throughout the library (#8752) Following on from previous `gcongr` golfing PRs #4702 and #4784. This is a replacement for #7901: this round of golfs, first introduced there, there exposed some performance issues in `gcongr`, hopefully fixed by #8731, and I am opening a new PR so that the performance can be checked against current master rather than master at the time of #7901. ESTIMATED CHANGES Modified Mathlib/Algebra/ContinuedFractions/Computation/ApproximationCorollaries.lean Modified Mathlib/Analysis/Analytic/Inverse.lean Modified Mathlib/Analysis/BoxIntegral/DivergenceTheorem.lean Modified Mathlib/Analysis/BoxIntegral/Integrability.lean Modified Mathlib/Analysis/Calculus/ContDiff/Bounds.lean Modified Mathlib/Analysis/Fourier/PoissonSummation.lean Modified Mathlib/Analysis/Matrix.lean Modified Mathlib/Analysis/MellinTransform.lean Modified Mathlib/Analysis/NormedSpace/PiLp.lean Modified Mathlib/Analysis/NormedSpace/ProdLp.lean Modified Mathlib/Analysis/NormedSpace/lpSpace.lean Modified Mathlib/Analysis/PSeries.lean Modified Mathlib/Analysis/SpecialFunctions/Gamma/BohrMollerup.lean Modified Mathlib/Analysis/SpecialFunctions/Gaussian.lean Modified Mathlib/Analysis/SpecialFunctions/Log/Monotone.lean Modified Mathlib/Analysis/SpecialFunctions/Stirling.lean Modified Mathlib/MeasureTheory/Covering/Differentiation.lean Modified Mathlib/MeasureTheory/Function/ConditionalExpectation/CondexpL2.lean Modified Mathlib/MeasureTheory/Function/LpSeminorm.lean Modified Mathlib/MeasureTheory/Function/SimpleFuncDenseLp.lean Modified Mathlib/MeasureTheory/Integral/BoundedContinuousFunction.lean Modified Mathlib/MeasureTheory/Integral/Lebesgue.lean Modified Mathlib/MeasureTheory/Integral/MeanInequalities.lean Modified Mathlib/MeasureTheory/Measure/FiniteMeasure.lean Modified Mathlib/NumberTheory/Bertrand.lean Modified Mathlib/NumberTheory/Liouville/LiouvilleWith.lean Modified Mathlib/NumberTheory/ModularForms/JacobiTheta/Basic.lean Modified Mathlib/Topology/MetricSpace/Holder.lean 2023-11-30 22:26:39 89670c5 feat: add a few simp lemmas (#8750) * Remove simp-lemma `bitwise_of_ne_zero`, since it wasn't used, and could cause loops in an inconsistent context. ESTIMATED CHANGES Modified Mathlib/Algebra/CharZero/Lemmas.lean +/- theorem eq_neg_self_iff +/- theorem neg_eq_self_iff Modified Mathlib/Algebra/GroupPower/Ring.lean Modified Mathlib/Analysis/SpecificLimits/Normed.lean Modified Mathlib/Data/Int/ModEq.lean Modified Mathlib/Data/Int/Order/Units.lean +/- theorem Int.neg_one_pow_ne_zero Modified Mathlib/Data/Nat/Bitwise.lean Modified Mathlib/Geometry/Euclidean/Triangle.lean Modified Mathlib/RingTheory/Polynomial/IntegralNormalization.lean Modified Mathlib/RingTheory/WittVector/Frobenius.lean Modified Mathlib/Topology/MetricSpace/PiNat.lean 2023-11-30 22:26:38 d9ec145 feat: make `imp_false` a simp-lemma (#8744) * This shortens various proofs * There is already a unification hint in core from `¬ p` to `p → False`, which is probably why we didn't miss this simp-lemma too badly. * There was an inconsistency that `simp` pull out most connectives into `Filter.eventually`/`Filter.frequently`, but pushed negations inside. This loops together with this new simp-lemma, and the fact that there is a unification hint . So I removed some simp attributes in `Filter.Basic`. ESTIMATED CHANGES Modified Archive/Examples/IfNormalization/WithoutAesop.lean Modified Mathlib/GroupTheory/Perm/List.lean Modified Mathlib/Logic/Basic.lean Modified Mathlib/ModelTheory/Semantics.lean Modified Mathlib/Order/Filter/Basic.lean 2023-11-30 21:45:07 6ddf26a doc: modernize induction syntax in Ordinal.induction documentation (#8747) ESTIMATED CHANGES Modified Mathlib/SetTheory/Ordinal/Basic.lean 2023-11-30 20:57:49 85239de chore(Topology/{Compactness/Compact}, Irreducible}): rename type variables (#7591) X, Y, Z are standard mathematical names for topological spaces. As [discussed](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/Naming.20convention.3A.20topological.20spaces/near/395769893) on zulip, let us rename them. As a drive-by commit, re-use the declared variables $\iota$, $s$ and $t$ (more) when stating theorems. ESTIMATED CHANGES Modified Mathlib/AlgebraicGeometry/FunctionField.lean Modified Mathlib/Topology/Algebra/Group/Basic.lean Modified Mathlib/Topology/CompactOpen.lean Modified Mathlib/Topology/Compactness/Compact.lean +/- theorem Bornology.inCompact.isBounded_iff +/- def Bornology.inCompact +/- theorem ClosedEmbedding.isCompact_preimage +/- theorem ClosedEmbedding.tendsto_cocompact +/- theorem CompactSpace.elim_nhds_subcover +/- theorem Embedding.isCompact_iff +/- theorem Filter.Tendsto.isCompact_insert_range +/- theorem Filter.Tendsto.isCompact_insert_range_of_cocompact +/- theorem Filter.Tendsto.isCompact_insert_range_of_cofinite +/- def Filter.coclosedCompact +/- def Filter.cocompact +/- theorem Filter.cocompact_eq_bot +/- theorem Filter.cocompact_eq_cofinite +/- theorem Filter.cocompact_le_coclosedCompact +/- theorem Filter.cocompact_le_cofinite +/- theorem Filter.cocompact_neBot_iff +/- theorem Filter.comap_cocompact_le +/- theorem Filter.coprodᵢ_cocompact +/- theorem Filter.hasBasis_cocompact +/- theorem Filter.mem_coclosedCompact +/- theorem Filter.mem_coclosed_compact' +/- theorem Filter.mem_cocompact' +/- theorem Filter.mem_cocompact +/- theorem Finset.isCompact_biUnion +/- theorem Inducing.isCompact_iff +/- theorem Inducing.isCompact_preimage +/- theorem IsClosed.exists_minimal_nonempty_closed_subset +/- theorem IsClosed.isCompact +/- theorem IsCompact.adherence_nhdset +/- theorem IsCompact.compl_mem_cocompact +/- theorem IsCompact.compl_mem_sets +/- theorem IsCompact.compl_mem_sets_of_nhdsWithin +/- theorem IsCompact.disjoint_nhdsSet_left +/- theorem IsCompact.disjoint_nhdsSet_right +/- theorem IsCompact.elim_finite_subcover +/- theorem IsCompact.elim_finite_subcover_image +/- theorem IsCompact.elim_finite_subfamily_closed +/- theorem IsCompact.elim_nhds_subcover' +/- theorem IsCompact.elim_nhds_subcover +/- theorem IsCompact.eventually_forall_of_forall_eventually +/- theorem IsCompact.finite +/- theorem IsCompact.finite_of_discrete +/- theorem IsCompact.image +/- theorem IsCompact.image_of_continuousOn +/- theorem IsCompact.induction_on +/- theorem IsCompact.inter_iInter_nonempty +/- theorem IsCompact.le_nhds_of_unique_clusterPt +/- theorem IsCompact.mem_nhdsSet_prod_of_forall +/- theorem IsCompact.mem_prod_nhdsSet_of_forall +/- theorem IsCompact.ne_univ +/- theorem IsCompact.nhdsSet_prod_eq +/- theorem IsCompact.nhdsSet_prod_eq_biSup +/- theorem IsCompact.nonempty_iInter_of_sequence_nonempty_compact_closed +/- theorem IsCompact.prod +/- theorem IsCompact.prod_nhdsSet_eq_biSup +/- theorem IsCompact.tendsto_nhds_of_unique_mapClusterPt +/- def IsCompact +/- theorem LocallyFinite.finite_nonempty_inter_compact +/- theorem LocallyFinite.finite_nonempty_of_compact +/- theorem LocallyFinite.finite_of_compact +/- theorem Set.Finite.isCompact_biUnion +/- theorem Set.Finite.isCompact_sUnion +/- theorem Set.Subsingleton.isCompact +/- theorem Subtype.isCompact_iff +/- theorem cluster_point_of_compact +/- theorem exists_nhds_ne_inf_principal_neBot +/- theorem exists_nhds_ne_neBot +/- theorem exists_subset_nhds_of_compactSpace +/- theorem exists_subset_nhds_of_isCompact' +/- theorem finite_cover_nhds +/- theorem finite_cover_nhds_interior +/- theorem finite_of_compact_of_discrete +/- theorem generalized_tube_lemma +/- theorem isClosedMap_fst_of_compactSpace +/- theorem isClosedMap_snd_of_compactSpace +/- theorem isCompact_accumulate +/- theorem isCompact_diagonal +/- theorem isCompact_empty +/- theorem isCompact_iUnion +/- theorem isCompact_iff_compactSpace +/- theorem isCompact_iff_finite +/- theorem isCompact_iff_isCompact_univ +/- theorem isCompact_open_iff_eq_finite_iUnion_of_isTopologicalBasis +/- theorem isCompact_pi_infinite +/- theorem isCompact_range +/- theorem isCompact_singleton +/- theorem isCompact_univ +/- theorem isCompact_univ_iff +/- theorem isCompact_univ_pi +/- theorem le_nhds_of_unique_clusterPt +/- theorem nhdsSet_prod_le +/- theorem noncompactSpace_of_neBot +/- theorem noncompact_univ +/- theorem not_compactSpace_iff +/- theorem tendsto_nhds_of_unique_mapClusterPt Modified Mathlib/Topology/Irreducible.lean +/- theorem IrreducibleSpace.isIrreducible_univ +/- theorem IsIrreducible.image +/- theorem IsIrreducible.isPreirreducible +/- theorem IsIrreducible.nonempty +/- def IsIrreducible +/- theorem IsPreirreducible.image +/- theorem IsPreirreducible.interior +/- theorem IsPreirreducible.open_subset +/- theorem IsPreirreducible.preimage +/- theorem IsPreirreducible.subset_irreducible +/- def IsPreirreducible +/- theorem Set.Subsingleton.isPreirreducible +/- theorem Subtype.irreducibleSpace +/- theorem Subtype.preirreducibleSpace +/- theorem eq_irreducibleComponent +/- theorem exists_preirreducible +/- def irreducibleComponent +/- theorem irreducibleComponent_mem_irreducibleComponents +/- theorem irreducibleComponent_property +/- def irreducibleComponents +/- theorem irreducibleComponents_eq_maximals_closed +/- theorem irreducibleSpace_def +/- theorem isClosed_irreducibleComponent +/- theorem isClosed_of_mem_irreducibleComponents +/- theorem isIrreducible_iff_closure +/- theorem isIrreducible_iff_sInter +/- theorem isIrreducible_iff_sUnion_closed +/- theorem isIrreducible_irreducibleComponent +/- theorem isIrreducible_singleton +/- theorem isPreirreducible_empty +/- theorem isPreirreducible_iff_closed_union_closed +/- theorem isPreirreducible_iff_closure +/- theorem isPreirreducible_singleton +/- theorem mem_irreducibleComponent +/- theorem nonempty_preirreducible_inter +/- theorem subset_closure_inter_of_isPreirreducible_of_isOpen Modified Mathlib/Topology/Separation.lean 2023-11-30 20:26:35 c799ea0 feat: two isomorphic number fields have the same discriminant (#8714) ESTIMATED CHANGES Modified Mathlib/NumberTheory/NumberField/Discriminant.lean + theorem NumberField.discr_eq_discr_of_algEquiv Modified Mathlib/RingTheory/Discriminant.lean + theorem Algebra.discr_eq_discr_of_algEquiv Modified Mathlib/RingTheory/IntegralClosure.lean + def integralClosure_algHom_restrict + theorem integralClosure_coe_algEquiv_restrict + theorem integralClosure_coe_algHom_restrict 2023-11-30 20:26:34 41529d1 refactor(Algebra/Homology): use the new homology API (#8706) This PR refactors the construction of left derived functors using the new homology API: this also affects the dependencies (Ext functors, group cohomology, local cohomology). As a result, the old homology API is no longer used in any significant way in mathlib. Then, with this PR, the homology refactor is essentially complete. The organization of the files was made more coherent: the definition of a projective resolution is in `Preadditive.ProjectiveResolution`, the existence of resolutions when there are enough projectives is shown in `Abelian.ProjectiveResolution`, and the left derived functor is constructed in `Abelian.LeftDerived`; the dual results are in `Preadditive.InjectiveResolution`, `Abelian.InjectiveResolution` and `Abelian.RightDerived`. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Homology/Opposite.lean + def HomologicalComplex.homologyOp + def HomologicalComplex.homologyUnop Modified Mathlib/Algebra/Homology/QuasiIso.lean + theorem HomologicalComplex.quasiIsoAt_map_iff_of_preservesHomology + theorem HomologicalComplex.quasiIso_map_iff_of_preservesHomology Modified Mathlib/Algebra/Homology/ShortComplex/Exact.lean + theorem CategoryTheory.ShortComplex.Exact.liftFromProjective_comp + theorem CategoryTheory.ShortComplex.exact_and_epi_g_iff_g_is_cokernel - theorem CategoryTheory.ShortComplex.exact_and_epi_g_iff_g_is_kernel Modified Mathlib/Algebra/Homology/ShortComplex/HomologicalComplex.lean + theorem ChainComplex.isIso_descOpcycles_iff Modified Mathlib/Algebra/Homology/ShortComplex/Homology.lean Modified Mathlib/Algebra/Homology/ShortComplex/PreservesHomology.lean + theorem CategoryTheory.ShortComplex.quasiIso_map_iff_of_preservesLeftHomology Modified Mathlib/Algebra/Homology/SingleHomology.lean + theorem ChainComplex.exactAt_succ_single_obj Modified Mathlib/CategoryTheory/Abelian/Ext.lean + def CategoryTheory.ProjectiveResolution.isoExt + def ChainComplex.linearYonedaObj - def extSuccOfProjective + theorem isZero_Ext_succ_of_projective Modified Mathlib/CategoryTheory/Abelian/InjectiveResolution.lean Modified Mathlib/CategoryTheory/Abelian/LeftDerived.lean - theorem CategoryTheory.Abelian.Functor.exact_of_map_projectiveResolution - def CategoryTheory.Abelian.Functor.leftDerivedZeroIsoSelf - def CategoryTheory.Abelian.Functor.leftDerivedZeroToSelfApp - def CategoryTheory.Abelian.Functor.leftDerivedZeroToSelfAppInv - theorem CategoryTheory.Abelian.Functor.leftDerivedZeroToSelfAppInv_comp - def CategoryTheory.Abelian.Functor.leftDerivedZeroToSelfAppIso - theorem CategoryTheory.Abelian.Functor.leftDerivedZeroToSelfApp_comp_inv - theorem CategoryTheory.Abelian.Functor.leftDerived_zero_to_self_natural - theorem CategoryTheory.Abelian.Functor.preserves_exact_of_PreservesFiniteColimits_of_epi + theorem CategoryTheory.Functor.isZero_leftDerived_obj_projective_succ + theorem CategoryTheory.Functor.leftDerivedZeroIsoSelf_hom_inv_id + theorem CategoryTheory.Functor.leftDerivedZeroIsoSelf_hom_inv_id_app + theorem CategoryTheory.Functor.leftDerivedZeroIsoSelf_inv_hom_id + theorem CategoryTheory.Functor.leftDerivedZeroIsoSelf_inv_hom_id_app + theorem CategoryTheory.Functor.leftDerived_map_eq + theorem CategoryTheory.NatTrans.leftDerivedToHomotopyCategory_comp + theorem CategoryTheory.NatTrans.leftDerivedToHomotopyCategory_id + theorem CategoryTheory.NatTrans.leftDerived_comp + theorem CategoryTheory.NatTrans.leftDerived_id + theorem CategoryTheory.ProjectiveResolution.fromLeftDerivedZero'_naturality + theorem CategoryTheory.ProjectiveResolution.fromLeftDerivedZero_eq + theorem CategoryTheory.ProjectiveResolution.isoLeftDerivedObj_hom_naturality + theorem CategoryTheory.ProjectiveResolution.isoLeftDerivedObj_inv_naturality + theorem CategoryTheory.ProjectiveResolution.isoLeftDerivedToHomotopyCategoryObj_hom_naturality + theorem CategoryTheory.ProjectiveResolution.isoLeftDerivedToHomotopyCategoryObj_inv_naturality + theorem CategoryTheory.ProjectiveResolution.leftDerivedToHomotopyCategory_app_eq + theorem CategoryTheory.ProjectiveResolution.leftDerived_app_eq + theorem CategoryTheory.ProjectiveResolution.pOpcycles_comp_fromLeftDerivedZero' Modified Mathlib/CategoryTheory/Abelian/Projective.lean - theorem CategoryTheory.ProjectiveResolution.exact_ofComplex - def CategoryTheory.ProjectiveResolution.ofComplex - theorem CategoryTheory.ProjectiveResolution.ofComplex_sq_10_comm - theorem CategoryTheory.exact_d_f - def CategoryTheory.preservesFiniteColimitsPreadditiveCoyonedaObjOfProjective - def HomologicalComplex.Hom.toSingle₀ProjectiveResolution Added Mathlib/CategoryTheory/Abelian/ProjectiveResolution.lean + theorem CategoryTheory.ProjectiveResolution.exact₀ + def CategoryTheory.ProjectiveResolution.homotopyEquiv + theorem CategoryTheory.ProjectiveResolution.homotopyEquiv_hom_π + theorem CategoryTheory.ProjectiveResolution.homotopyEquiv_inv_π + def CategoryTheory.ProjectiveResolution.iso + theorem CategoryTheory.ProjectiveResolution.iso_hom_naturality + theorem CategoryTheory.ProjectiveResolution.iso_inv_naturality + def CategoryTheory.ProjectiveResolution.lift + def CategoryTheory.ProjectiveResolution.liftCompHomotopy + def CategoryTheory.ProjectiveResolution.liftFOne + theorem CategoryTheory.ProjectiveResolution.liftFOne_zero_comm + def CategoryTheory.ProjectiveResolution.liftFSucc + def CategoryTheory.ProjectiveResolution.liftFZero + def CategoryTheory.ProjectiveResolution.liftHomotopy + def CategoryTheory.ProjectiveResolution.liftHomotopyZero + def CategoryTheory.ProjectiveResolution.liftHomotopyZeroOne + theorem CategoryTheory.ProjectiveResolution.liftHomotopyZeroOne_comp + def CategoryTheory.ProjectiveResolution.liftHomotopyZeroSucc + theorem CategoryTheory.ProjectiveResolution.liftHomotopyZeroSucc_comp + def CategoryTheory.ProjectiveResolution.liftHomotopyZeroZero + theorem CategoryTheory.ProjectiveResolution.liftHomotopyZeroZero_comp + def CategoryTheory.ProjectiveResolution.liftIdHomotopy + theorem CategoryTheory.ProjectiveResolution.lift_commutes + theorem CategoryTheory.ProjectiveResolution.lift_commutes_zero + def CategoryTheory.ProjectiveResolution.ofComplex + theorem CategoryTheory.ProjectiveResolution.ofComplex_d_1_0 + theorem CategoryTheory.ProjectiveResolution.ofComplex_exactAt_succ + theorem CategoryTheory.exact_d_f + def CategoryTheory.projectiveResolutions Modified Mathlib/CategoryTheory/Abelian/RightDerived.lean Deleted Mathlib/CategoryTheory/Functor/LeftDerived.lean - def CategoryTheory.Functor.leftDerived - def CategoryTheory.Functor.leftDerivedObjIso - def CategoryTheory.Functor.leftDerivedObjProjectiveSucc - def CategoryTheory.Functor.leftDerivedObjProjectiveZero - theorem CategoryTheory.Functor.leftDerived_map_eq - def CategoryTheory.NatTrans.leftDerived - theorem CategoryTheory.NatTrans.leftDerived_comp - theorem CategoryTheory.NatTrans.leftDerived_eq - theorem CategoryTheory.NatTrans.leftDerived_id Modified Mathlib/CategoryTheory/Monoidal/Tor.lean + theorem CategoryTheory.isZero_Tor'_succ_of_projective + theorem CategoryTheory.isZero_Tor_succ_of_projective - def CategoryTheory.tor'SuccOfProjective - def CategoryTheory.torSuccOfProjective Modified Mathlib/CategoryTheory/Preadditive/InjectiveResolution.lean +/- theorem CategoryTheory.InjectiveResolution.exact_succ Modified Mathlib/CategoryTheory/Preadditive/Projective.lean Modified Mathlib/CategoryTheory/Preadditive/ProjectiveResolution.lean +/- theorem CategoryTheory.ProjectiveResolution.complex_d_comp_π_f_zero +/- theorem CategoryTheory.ProjectiveResolution.complex_d_succ_comp + theorem CategoryTheory.ProjectiveResolution.complex_exactAt_succ + theorem CategoryTheory.ProjectiveResolution.exact_succ - def CategoryTheory.ProjectiveResolution.homotopyEquiv - theorem CategoryTheory.ProjectiveResolution.homotopyEquiv_hom_π - theorem CategoryTheory.ProjectiveResolution.homotopyEquiv_inv_π - def CategoryTheory.ProjectiveResolution.lift - def CategoryTheory.ProjectiveResolution.liftCompHomotopy - def CategoryTheory.ProjectiveResolution.liftHomotopy - def CategoryTheory.ProjectiveResolution.liftHomotopyZero - def CategoryTheory.ProjectiveResolution.liftHomotopyZeroOne - def CategoryTheory.ProjectiveResolution.liftHomotopyZeroSucc - def CategoryTheory.ProjectiveResolution.liftHomotopyZeroZero - def CategoryTheory.ProjectiveResolution.liftIdHomotopy - def CategoryTheory.ProjectiveResolution.liftOne - theorem CategoryTheory.ProjectiveResolution.liftOne_zero_comm - def CategoryTheory.ProjectiveResolution.liftSucc - def CategoryTheory.ProjectiveResolution.liftZero - theorem CategoryTheory.ProjectiveResolution.lift_commutes - theorem CategoryTheory.ProjectiveResolution.lift_commutes_zero - def CategoryTheory.ProjectiveResolution.self +/- theorem CategoryTheory.ProjectiveResolution.π_f_succ - def CategoryTheory.projectiveResolution - def CategoryTheory.projectiveResolutions Modified Mathlib/RepresentationTheory/GroupCohomology/Basic.lean Modified Mathlib/RepresentationTheory/GroupCohomology/Resolution.lean +/- def groupCohomology.projectiveResolution - theorem groupCohomology.resolution.quasiIso'OfForget₂εToSingle₀ + theorem groupCohomology.resolution.quasiIso_forget₂_εToSingle₀ - theorem groupCohomology.resolution.x_projective 2023-11-30 19:19:08 569aea6 feat(Algebra/Group/Hom/Instances): missing instances on `AddMonoid.End` (#8741) We already had these instance for `AddMonoidHom`, but did not copy them across. This also corrects some instances names, both for cosmetic reasons, and to avoid name clashes. ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Defs.lean Modified Mathlib/Algebra/Group/Hom/Instances.lean Modified Mathlib/Algebra/Module/Hom.lean + theorem AddMonoid.End.coe_smul + theorem AddMonoid.End.smul_apply Modified Mathlib/Data/ZMod/IntUnitsPower.lean 2023-11-30 19:19:07 4ff17db chore: split Geometry/Manifold/ContMDiff (#8726) At about 2200 lines, this is currently the longest file in the Geometry/Manifolds. (It also moves the slowly compiling proof of `ContMDiffWithinAt.cle_arrowCongr` out of a common recompilation path.) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Geometry/Manifold/BumpFunction.lean Deleted Mathlib/Geometry/Manifold/ContMDiff.lean - theorem ContDiff.comp_contMDiff - theorem ContDiff.comp_contMDiffAt - theorem ContDiff.comp_contMDiffWithinAt - theorem ContDiffAt.comp_contMDiffAt - theorem ContDiffAt.comp_contMDiffWithinAt - theorem ContDiffWithinAt.comp_contMDiffWithinAt - def ContDiffWithinAtProp - theorem ContMDiff.cle_arrowCongr - theorem ContMDiff.clm_apply - theorem ContMDiff.clm_comp - theorem ContMDiff.clm_postcomp - theorem ContMDiff.clm_precomp - theorem ContMDiff.clm_prodMap - theorem ContMDiff.comp - theorem ContMDiff.comp_contMDiffOn - theorem ContMDiff.contMDiffAt - theorem ContMDiff.contMDiffOn - theorem ContMDiff.continuous - theorem ContMDiff.fst - theorem ContMDiff.of_le - theorem ContMDiff.of_succ - theorem ContMDiff.prod_map - theorem ContMDiff.prod_mk_space - theorem ContMDiff.smooth - theorem ContMDiff.smul - theorem ContMDiff.snd - def ContMDiff - theorem ContMDiffAt.clm_comp - theorem ContMDiffAt.comp_contMDiffWithinAt - theorem ContMDiffAt.comp_of_eq - theorem ContMDiffAt.congr_of_eventuallyEq - theorem ContMDiffAt.contMDiffWithinAt - theorem ContMDiffAt.continuousAt - theorem ContMDiffAt.fst - theorem ContMDiffAt.of_le - theorem ContMDiffAt.of_succ - theorem ContMDiffAt.prod_map' - theorem ContMDiffAt.prod_map - theorem ContMDiffAt.smoothAt - theorem ContMDiffAt.snd - def ContMDiffAt - theorem ContMDiffOn.cle_arrowCongr - theorem ContMDiffOn.clm_apply - theorem ContMDiffOn.clm_comp - theorem ContMDiffOn.clm_precomp - theorem ContMDiffOn.clm_prodMap - theorem ContMDiffOn.comp' - theorem ContMDiffOn.comp - theorem ContMDiffOn.comp_contMDiff - theorem ContMDiffOn.congr - theorem ContMDiffOn.contMDiffAt - theorem ContMDiffOn.continuousOn - theorem ContMDiffOn.mono - theorem ContMDiffOn.of_le - theorem ContMDiffOn.of_succ - theorem ContMDiffOn.prod_map - theorem ContMDiffOn.prod_mk - theorem ContMDiffOn.prod_mk_space - theorem ContMDiffOn.smoothOn - theorem ContMDiffOn.smul - def ContMDiffOn - theorem ContMDiffWithinAt.cle_arrowCongr - theorem ContMDiffWithinAt.clm_apply - theorem ContMDiffWithinAt.clm_comp - theorem ContMDiffWithinAt.clm_postcomp - theorem ContMDiffWithinAt.clm_precomp - theorem ContMDiffWithinAt.clm_prodMap - theorem ContMDiffWithinAt.comp' - theorem ContMDiffWithinAt.comp - theorem ContMDiffWithinAt.comp_of_eq - theorem ContMDiffWithinAt.congr - theorem ContMDiffWithinAt.congr_of_eventuallyEq - theorem ContMDiffWithinAt.contMDiffAt - theorem ContMDiffWithinAt.continuousWithinAt - theorem ContMDiffWithinAt.fst - theorem ContMDiffWithinAt.insert - theorem ContMDiffWithinAt.mono - theorem ContMDiffWithinAt.mono_of_mem - theorem ContMDiffWithinAt.of_le - theorem ContMDiffWithinAt.of_succ - theorem ContMDiffWithinAt.prod_map' - theorem ContMDiffWithinAt.prod_map - theorem ContMDiffWithinAt.prod_mk - theorem ContMDiffWithinAt.prod_mk_space - theorem ContMDiffWithinAt.smoothWithinAt - theorem ContMDiffWithinAt.smul - theorem ContMDiffWithinAt.snd - def ContMDiffWithinAt - theorem ContinuousLinearMap.contMDiff - theorem ContinuousLinearMap.contMDiffAt - theorem ContinuousLinearMap.contMDiffOn - theorem ContinuousLinearMap.contMDiffWithinAt - theorem ContinuousLinearMap.smooth - theorem Filter.EventuallyEq.contMDiffAt_iff - theorem Filter.EventuallyEq.contMDiffWithinAt_iff - theorem Smooth.comp_smoothOn - theorem Smooth.contMDiff - theorem Smooth.fst - theorem Smooth.smoothAt - theorem Smooth.smoothOn - theorem Smooth.snd - def Smooth - theorem SmoothAt.comp_smoothWithinAt - theorem SmoothAt.contMDiffAt - theorem SmoothAt.fst - theorem SmoothAt.smoothWithinAt - theorem SmoothAt.snd - def SmoothAt - theorem SmoothOn.comp_smooth - theorem SmoothOn.contMDiffOn - theorem SmoothOn.smoothAt - def SmoothOn - theorem SmoothWithinAt.contMDiffWithinAt - theorem SmoothWithinAt.smoothAt - def SmoothWithinAt - theorem contDiffWithinAtProp_id - theorem contDiffWithinAtProp_mono_of_mem - theorem contDiffWithinAtProp_self - theorem contDiffWithinAtProp_self_source - theorem contDiffWithinAtProp_self_target - theorem contDiffWithinAt_localInvariantProp - theorem contMDiffAt_const - theorem contMDiffAt_extChartAt' - theorem contMDiffAt_extChartAt - theorem contMDiffAt_extend - theorem contMDiffAt_fst - theorem contMDiffAt_id - theorem contMDiffAt_iff - theorem contMDiffAt_iff_contDiffAt - theorem contMDiffAt_iff_contMDiffAt_nhds - theorem contMDiffAt_iff_contMDiffOn_nhds - theorem contMDiffAt_iff_of_mem_source - theorem contMDiffAt_iff_source_of_mem_source - theorem contMDiffAt_iff_target - theorem contMDiffAt_iff_target_of_mem_source - theorem contMDiffAt_of_mem_maximalAtlas - theorem contMDiffAt_one - theorem contMDiffAt_pi_space - theorem contMDiffAt_prod_iff - theorem contMDiffAt_snd - theorem contMDiffAt_symm_of_mem_maximalAtlas - theorem contMDiffAt_top - theorem contMDiffOn_chart - theorem contMDiffOn_chart_symm - theorem contMDiffOn_congr - theorem contMDiffOn_const - theorem contMDiffOn_extChartAt - theorem contMDiffOn_extChartAt_symm - theorem contMDiffOn_extend_symm - theorem contMDiffOn_fst - theorem contMDiffOn_id - theorem contMDiffOn_iff - theorem contMDiffOn_iff_contDiffOn - theorem contMDiffOn_iff_of_mem_maximalAtlas' - theorem contMDiffOn_iff_of_mem_maximalAtlas - theorem contMDiffOn_iff_of_subset_source' - theorem contMDiffOn_iff_of_subset_source - theorem contMDiffOn_iff_source_of_mem_maximalAtlas - theorem contMDiffOn_iff_target - theorem contMDiffOn_model_symm - theorem contMDiffOn_of_locally_contMDiffOn - theorem contMDiffOn_of_mem_contDiffGroupoid - theorem contMDiffOn_of_mem_maximalAtlas - theorem contMDiffOn_one - theorem contMDiffOn_pi_space - theorem contMDiffOn_snd - theorem contMDiffOn_symm_of_mem_maximalAtlas - theorem contMDiffOn_top - theorem contMDiffOn_univ - theorem contMDiffWithinAt_congr - theorem contMDiffWithinAt_congr_nhds - theorem contMDiffWithinAt_const - theorem contMDiffWithinAt_fst - theorem contMDiffWithinAt_id - theorem contMDiffWithinAt_iff' - theorem contMDiffWithinAt_iff - theorem contMDiffWithinAt_iff_contDiffWithinAt - theorem contMDiffWithinAt_iff_contMDiffOn_nhds - theorem contMDiffWithinAt_iff_image - theorem contMDiffWithinAt_iff_nat - theorem contMDiffWithinAt_iff_of_mem_maximalAtlas - theorem contMDiffWithinAt_iff_of_mem_source' - theorem contMDiffWithinAt_iff_of_mem_source - theorem contMDiffWithinAt_iff_source_of_mem_maximalAtlas - theorem contMDiffWithinAt_iff_source_of_mem_source - theorem contMDiffWithinAt_iff_target - theorem contMDiffWithinAt_iff_target_of_mem_source - theorem contMDiffWithinAt_insert_self - theorem contMDiffWithinAt_inter' - theorem contMDiffWithinAt_inter - theorem contMDiffWithinAt_one - theorem contMDiffWithinAt_pi_space - theorem contMDiffWithinAt_prod_iff - theorem contMDiffWithinAt_snd - theorem contMDiffWithinAt_top - theorem contMDiffWithinAt_univ - theorem contMDiff_const - theorem contMDiff_fst - theorem contMDiff_id - theorem contMDiff_iff - theorem contMDiff_iff_contDiff - theorem contMDiff_iff_target - theorem contMDiff_inclusion - theorem contMDiff_model - theorem contMDiff_of_locally_contMDiffOn - theorem contMDiff_of_support - theorem contMDiff_one - theorem contMDiff_pi_space - theorem contMDiff_prod_iff - theorem contMDiff_snd - theorem contMDiff_top - theorem isLocalStructomorphOn_contDiffGroupoid_iff - theorem isLocalStructomorphOn_contDiffGroupoid_iff_aux - theorem smoothAt_const - theorem smoothAt_fst - theorem smoothAt_id - theorem smoothAt_iff_target - theorem smoothAt_one - theorem smoothAt_pi_space - theorem smoothAt_prod_iff - theorem smoothAt_snd - theorem smoothOn_const - theorem smoothOn_fst - theorem smoothOn_id - theorem smoothOn_iff - theorem smoothOn_iff_target - theorem smoothOn_one - theorem smoothOn_pi_space - theorem smoothOn_snd - theorem smoothOn_univ - theorem smoothWithinAt_const - theorem smoothWithinAt_fst - theorem smoothWithinAt_id - theorem smoothWithinAt_iff - theorem smoothWithinAt_iff_target - theorem smoothWithinAt_one - theorem smoothWithinAt_pi_space - theorem smoothWithinAt_snd - theorem smoothWithinAt_univ - theorem smooth_const - theorem smooth_fst - theorem smooth_id - theorem smooth_iff - theorem smooth_iff_target - theorem smooth_inclusion - theorem smooth_one - theorem smooth_pi_space - theorem smooth_prod_assoc - theorem smooth_prod_iff - theorem smooth_smul - theorem smooth_snd Added Mathlib/Geometry/Manifold/ContMDiff/Atlas.lean + theorem contMDiffAt_extChartAt' + theorem contMDiffAt_extChartAt + theorem contMDiffAt_extend + theorem contMDiffAt_of_mem_maximalAtlas + theorem contMDiffAt_symm_of_mem_maximalAtlas + theorem contMDiffOn_chart + theorem contMDiffOn_chart_symm + theorem contMDiffOn_extChartAt + theorem contMDiffOn_extChartAt_symm + theorem contMDiffOn_extend_symm + theorem contMDiffOn_model_symm + theorem contMDiffOn_of_mem_contDiffGroupoid + theorem contMDiffOn_of_mem_maximalAtlas + theorem contMDiffOn_symm_of_mem_maximalAtlas + theorem contMDiff_model + theorem isLocalStructomorphOn_contDiffGroupoid_iff + theorem isLocalStructomorphOn_contDiffGroupoid_iff_aux Added Mathlib/Geometry/Manifold/ContMDiff/Basic.lean + theorem ContMDiff.comp + theorem ContMDiff.comp_contMDiffOn + theorem ContMDiffAt.comp_contMDiffWithinAt + theorem ContMDiffAt.comp_of_eq + theorem ContMDiffOn.comp' + theorem ContMDiffOn.comp + theorem ContMDiffOn.comp_contMDiff + theorem ContMDiffWithinAt.comp' + theorem ContMDiffWithinAt.comp + theorem ContMDiffWithinAt.comp_of_eq + theorem Smooth.comp_smoothOn + theorem SmoothAt.comp_smoothWithinAt + theorem SmoothOn.comp_smooth + theorem contMDiffAt_const + theorem contMDiffAt_id + theorem contMDiffAt_one + theorem contMDiffOn_const + theorem contMDiffOn_id + theorem contMDiffOn_one + theorem contMDiffWithinAt_const + theorem contMDiffWithinAt_id + theorem contMDiffWithinAt_one + theorem contMDiff_const + theorem contMDiff_id + theorem contMDiff_inclusion + theorem contMDiff_of_support + theorem contMDiff_one + theorem smoothAt_const + theorem smoothAt_id + theorem smoothAt_one + theorem smoothOn_const + theorem smoothOn_id + theorem smoothOn_one + theorem smoothWithinAt_const + theorem smoothWithinAt_id + theorem smoothWithinAt_one + theorem smooth_const + theorem smooth_id + theorem smooth_inclusion + theorem smooth_one Added Mathlib/Geometry/Manifold/ContMDiff/Defs.lean + def ContDiffWithinAtProp + theorem ContMDiff.contMDiffAt + theorem ContMDiff.contMDiffOn + theorem ContMDiff.continuous + theorem ContMDiff.of_le + theorem ContMDiff.of_succ + theorem ContMDiff.smooth + def ContMDiff + theorem ContMDiffAt.congr_of_eventuallyEq + theorem ContMDiffAt.contMDiffWithinAt + theorem ContMDiffAt.continuousAt + theorem ContMDiffAt.of_le + theorem ContMDiffAt.of_succ + theorem ContMDiffAt.smoothAt + def ContMDiffAt + theorem ContMDiffOn.congr + theorem ContMDiffOn.contMDiffAt + theorem ContMDiffOn.continuousOn + theorem ContMDiffOn.mono + theorem ContMDiffOn.of_le + theorem ContMDiffOn.of_succ + theorem ContMDiffOn.smoothOn + def ContMDiffOn + theorem ContMDiffWithinAt.congr + theorem ContMDiffWithinAt.congr_of_eventuallyEq + theorem ContMDiffWithinAt.contMDiffAt + theorem ContMDiffWithinAt.continuousWithinAt + theorem ContMDiffWithinAt.insert + theorem ContMDiffWithinAt.mono + theorem ContMDiffWithinAt.mono_of_mem + theorem ContMDiffWithinAt.of_le + theorem ContMDiffWithinAt.of_succ + theorem ContMDiffWithinAt.smoothWithinAt + def ContMDiffWithinAt + theorem Filter.EventuallyEq.contMDiffAt_iff + theorem Filter.EventuallyEq.contMDiffWithinAt_iff + theorem Smooth.contMDiff + theorem Smooth.smoothAt + theorem Smooth.smoothOn + def Smooth + theorem SmoothAt.contMDiffAt + theorem SmoothAt.smoothWithinAt + def SmoothAt + theorem SmoothOn.contMDiffOn + theorem SmoothOn.smoothAt + def SmoothOn + theorem SmoothWithinAt.contMDiffWithinAt + theorem SmoothWithinAt.smoothAt + def SmoothWithinAt + theorem contDiffWithinAtProp_id + theorem contDiffWithinAtProp_mono_of_mem + theorem contDiffWithinAtProp_self + theorem contDiffWithinAtProp_self_source + theorem contDiffWithinAtProp_self_target + theorem contDiffWithinAt_localInvariantProp + theorem contMDiffAt_iff + theorem contMDiffAt_iff_contMDiffAt_nhds + theorem contMDiffAt_iff_contMDiffOn_nhds + theorem contMDiffAt_iff_of_mem_source + theorem contMDiffAt_iff_source_of_mem_source + theorem contMDiffAt_iff_target + theorem contMDiffAt_iff_target_of_mem_source + theorem contMDiffAt_top + theorem contMDiffOn_congr + theorem contMDiffOn_iff + theorem contMDiffOn_iff_of_mem_maximalAtlas' + theorem contMDiffOn_iff_of_mem_maximalAtlas + theorem contMDiffOn_iff_of_subset_source' + theorem contMDiffOn_iff_of_subset_source + theorem contMDiffOn_iff_source_of_mem_maximalAtlas + theorem contMDiffOn_iff_target + theorem contMDiffOn_of_locally_contMDiffOn + theorem contMDiffOn_top + theorem contMDiffOn_univ + theorem contMDiffWithinAt_congr + theorem contMDiffWithinAt_congr_nhds + theorem contMDiffWithinAt_iff' + theorem contMDiffWithinAt_iff + theorem contMDiffWithinAt_iff_contMDiffOn_nhds + theorem contMDiffWithinAt_iff_image + theorem contMDiffWithinAt_iff_nat + theorem contMDiffWithinAt_iff_of_mem_maximalAtlas + theorem contMDiffWithinAt_iff_of_mem_source' + theorem contMDiffWithinAt_iff_of_mem_source + theorem contMDiffWithinAt_iff_source_of_mem_maximalAtlas + theorem contMDiffWithinAt_iff_source_of_mem_source + theorem contMDiffWithinAt_iff_target + theorem contMDiffWithinAt_iff_target_of_mem_source + theorem contMDiffWithinAt_insert_self + theorem contMDiffWithinAt_inter' + theorem contMDiffWithinAt_inter + theorem contMDiffWithinAt_top + theorem contMDiffWithinAt_univ + theorem contMDiff_iff + theorem contMDiff_iff_target + theorem contMDiff_of_locally_contMDiffOn + theorem contMDiff_top + theorem smoothAt_iff_target + theorem smoothOn_iff + theorem smoothOn_iff_target + theorem smoothOn_univ + theorem smoothWithinAt_iff + theorem smoothWithinAt_iff_target + theorem smoothWithinAt_univ + theorem smooth_iff + theorem smooth_iff_target Added Mathlib/Geometry/Manifold/ContMDiff/NormedSpace.lean + theorem ContDiff.comp_contMDiff + theorem ContDiff.comp_contMDiffAt + theorem ContDiff.comp_contMDiffWithinAt + theorem ContDiffAt.comp_contMDiffAt + theorem ContDiffAt.comp_contMDiffWithinAt + theorem ContDiffWithinAt.comp_contMDiffWithinAt + theorem ContMDiff.cle_arrowCongr + theorem ContMDiff.clm_apply + theorem ContMDiff.clm_comp + theorem ContMDiff.clm_postcomp + theorem ContMDiff.clm_precomp + theorem ContMDiff.clm_prodMap + theorem ContMDiff.smul + theorem ContMDiffAt.clm_comp + theorem ContMDiffOn.cle_arrowCongr + theorem ContMDiffOn.clm_apply + theorem ContMDiffOn.clm_comp + theorem ContMDiffOn.clm_precomp + theorem ContMDiffOn.clm_prodMap + theorem ContMDiffOn.smul + theorem ContMDiffWithinAt.cle_arrowCongr + theorem ContMDiffWithinAt.clm_apply + theorem ContMDiffWithinAt.clm_comp + theorem ContMDiffWithinAt.clm_postcomp + theorem ContMDiffWithinAt.clm_precomp + theorem ContMDiffWithinAt.clm_prodMap + theorem ContMDiffWithinAt.smul + theorem ContinuousLinearMap.contMDiff + theorem ContinuousLinearMap.contMDiffAt + theorem ContinuousLinearMap.contMDiffOn + theorem ContinuousLinearMap.contMDiffWithinAt + theorem ContinuousLinearMap.smooth + theorem contMDiffAt_iff_contDiffAt + theorem contMDiffOn_iff_contDiffOn + theorem contMDiffWithinAt_iff_contDiffWithinAt + theorem contMDiff_iff_contDiff + theorem smooth_smul Added Mathlib/Geometry/Manifold/ContMDiff/Product.lean + theorem ContMDiff.fst + theorem ContMDiff.prod_map + theorem ContMDiff.prod_mk_space + theorem ContMDiff.snd + theorem ContMDiffAt.fst + theorem ContMDiffAt.prod_map' + theorem ContMDiffAt.prod_map + theorem ContMDiffAt.snd + theorem ContMDiffOn.prod_map + theorem ContMDiffOn.prod_mk + theorem ContMDiffOn.prod_mk_space + theorem ContMDiffWithinAt.fst + theorem ContMDiffWithinAt.prod_map' + theorem ContMDiffWithinAt.prod_map + theorem ContMDiffWithinAt.prod_mk + theorem ContMDiffWithinAt.prod_mk_space + theorem ContMDiffWithinAt.snd + theorem Smooth.fst + theorem Smooth.snd + theorem SmoothAt.fst + theorem SmoothAt.snd + theorem contMDiffAt_fst + theorem contMDiffAt_pi_space + theorem contMDiffAt_prod_iff + theorem contMDiffAt_snd + theorem contMDiffOn_fst + theorem contMDiffOn_pi_space + theorem contMDiffOn_snd + theorem contMDiffWithinAt_fst + theorem contMDiffWithinAt_pi_space + theorem contMDiffWithinAt_prod_iff + theorem contMDiffWithinAt_snd + theorem contMDiff_fst + theorem contMDiff_pi_space + theorem contMDiff_prod_iff + theorem contMDiff_snd + theorem smoothAt_fst + theorem smoothAt_pi_space + theorem smoothAt_prod_iff + theorem smoothAt_snd + theorem smoothOn_fst + theorem smoothOn_pi_space + theorem smoothOn_snd + theorem smoothWithinAt_fst + theorem smoothWithinAt_pi_space + theorem smoothWithinAt_snd + theorem smooth_fst + theorem smooth_pi_space + theorem smooth_prod_assoc + theorem smooth_prod_iff + theorem smooth_snd Modified Mathlib/Geometry/Manifold/ContMDiffMap.lean Modified Mathlib/Geometry/Manifold/VectorBundle/Basic.lean Modified Mathlib/Geometry/Manifold/VectorBundle/FiberwiseLinear.lean 2023-11-30 19:19:06 92958d4 chore: rename most lemmas involving clopen to isClopen (#8720) This PR renames the field Clopens.clopen' -> Clopens.isClopen', and the lemmas * preimage_closed_of_closed -> ContinuousOn.preimage_isClosed_of_isClosed as well as: ClopenUpperSet.clopen -> ClopenUpperSet.isClopen connectedComponent_eq_iInter_clopen -> connectedComponent_eq_iInter_isClopen connectedComponent_subset_iInter_clopen -> connectedComponent_subset_iInter_isClopen continuous_boolIndicator_iff_clopen -> continuous_boolIndicator_iff_isClopen continuousOn_boolIndicator_iff_clopen -> continuousOn_boolIndicator_iff_isClopen DiscreteQuotient.ofClopen -> DiscreteQuotient.ofIsClopen disjoint_or_subset_of_clopen -> disjoint_or_subset_of_isClopen exists_clopen_{lower,upper}_of_not_le -> exists_isClopen_{lower,upper}_of_not_le exists_clopen_of_cofiltered -> exists_isClopen_of_cofiltered exists_clopen_of_totally_separated -> exists_isClopen_of_totally_separated exists_clopen_upper_or_lower_of_ne -> exists_isClopen_upper_or_lower_of_ne IsPreconnected.subset_clopen -> IsPreconnected.subset_isClopen isTotallyDisconnected_of_clopen_set -> isTotallyDisconnected_of_isClopen_set LocallyConstant.ofClopen_fiber_one -> LocallyConstant.ofIsClopen_fiber_one LocallyConstant.ofClopen_fiber_zero -> LocallyConstant.ofIsClopen_fiber_zero LocallyConstant.ofClopen -> LocallyConstant.ofIsClopen preimage_clopen_of_clopen -> preimage_isClopen_of_isClopen TopologicalSpace.Clopens.clopen -> TopologicalSpace.Clopens.isClopen ESTIMATED CHANGES Modified Counterexamples/SorgenfreyLine.lean Modified Mathlib/Analysis/Calculus/MeanValue.lean Modified Mathlib/FieldTheory/KrullTopology.lean Modified Mathlib/Geometry/Manifold/BumpFunction.lean Modified Mathlib/MeasureTheory/Integral/FundThmCalculus.lean Modified Mathlib/Topology/Category/Profinite/Basic.lean Modified Mathlib/Topology/Category/Profinite/CofilteredLimit.lean - theorem Profinite.exists_clopen_of_cofiltered + theorem Profinite.exists_isClopen_of_cofiltered Modified Mathlib/Topology/Category/Profinite/Nobeling.lean Modified Mathlib/Topology/Category/Stonean/Basic.lean Modified Mathlib/Topology/Clopen.lean - theorem ContinuousOn.preimage_clopen_of_clopen + theorem ContinuousOn.preimage_isClopen_of_isClopen - theorem continuousOn_boolIndicator_iff_clopen + theorem continuousOn_boolIndicator_iff_isClopen - theorem continuous_boolIndicator_iff_clopen + theorem continuous_boolIndicator_iff_isClopen Modified Mathlib/Topology/Connected/Basic.lean - theorem IsPreconnected.subset_clopen + theorem IsPreconnected.subset_isClopen - theorem connectedComponent_subset_iInter_clopen + theorem connectedComponent_subset_iInter_isClopen - theorem disjoint_or_subset_of_clopen + theorem disjoint_or_subset_of_isClopen Modified Mathlib/Topology/Connected/TotallyDisconnected.lean - theorem exists_clopen_of_totally_separated + theorem exists_isClopen_of_totally_separated - theorem isTotallyDisconnected_of_clopen_set + theorem isTotallyDisconnected_of_isClopen_set Modified Mathlib/Topology/ContinuousOn.lean - theorem ContinuousOn.preimage_closed_of_closed + theorem ContinuousOn.preimage_isClosed_of_isClosed Modified Mathlib/Topology/DiscreteQuotient.lean - def DiscreteQuotient.ofClopen + def DiscreteQuotient.ofIsClopen Modified Mathlib/Topology/LocallyConstant/Basic.lean - def LocallyConstant.ofClopen - theorem LocallyConstant.ofClopen_fiber_one - theorem LocallyConstant.ofClopen_fiber_zero + def LocallyConstant.ofIsClopen + theorem LocallyConstant.ofIsClopen_fiber_one + theorem LocallyConstant.ofIsClopen_fiber_zero Modified Mathlib/Topology/Order/Basic.lean Modified Mathlib/Topology/Order/Priestley.lean - theorem exists_clopen_lower_of_not_le - theorem exists_clopen_upper_of_not_le - theorem exists_clopen_upper_or_lower_of_ne + theorem exists_isClopen_lower_of_not_le + theorem exists_isClopen_upper_of_not_le + theorem exists_isClopen_upper_or_lower_of_ne Modified Mathlib/Topology/Separation.lean - theorem connectedComponent_eq_iInter_clopen + theorem connectedComponent_eq_iInter_isClopen Modified Mathlib/Topology/Sets/Closeds.lean - theorem TopologicalSpace.Clopens.clopen + theorem TopologicalSpace.Clopens.isClopen Modified Mathlib/Topology/Sets/Order.lean - theorem ClopenUpperSet.clopen + theorem ClopenUpperSet.isClopen Modified Mathlib/Topology/StoneCech.lean Modified scripts/nolints.json 2023-11-30 19:19:04 e9d333b feat(Data/List/Basic): bijectivity of `List.map` (#8642) This adds `Function.{LeftInverse,RightInverse,Involutive,Surjective,Bijective}.list_map`, and corresponding `iff` lemmas. `List.map_injective_iff` already existed, but has been golfed. The rest are new. ESTIMATED CHANGES Modified Mathlib/Data/List/Basic.lean + theorem Function.Bijective.list_map + theorem Function.Injective.list_map + theorem Function.LeftInverse.list_map + theorem Function.Surjective.list_map + theorem List.map_bijective_iff + theorem List.map_involutive_iff + theorem List.map_leftInverse_iff + theorem List.map_rightInverse_iff + theorem List.map_surjective_iff 2023-11-30 19:19:03 1b08a55 feat: abstract `KleinFour` into a class `IsKleinFour`. (#8565) This removes `KleinFour` in favor of a class `IsKleinFour` and proves that any two `IsKleinFour` groups are isomorphic via any identity-preserving equivalence. In addition, we prove that a group of order 4 is not cyclic if and only if it has exponent two. There are several advantages: 1. this provides a general API accessible by other groups 2. we prove some generic facts about groups of exponent two 3. it is easy to `@[to_additive]` everything If we want, we can always redefine an explicit `KleinFour` group, and give it an `IsKleinFour` instance. In that case we probably want to make a bespoke type for it, so that it can be `to_additive`-ized. ESTIMATED CHANGES Modified Mathlib/GroupTheory/SpecificGroups/KleinFour.lean + theorem IsKleinFour.card_four' + theorem IsKleinFour.eq_finset_univ + theorem IsKleinFour.eq_mul_of_ne_all + theorem IsKleinFour.inv_eq_self + def IsKleinFour.mulEquiv' + def IsKleinFour.mulEquiv + theorem IsKleinFour.mul_self + theorem IsKleinFour.nonempty_mulEquiv + theorem IsKleinFour.not_isCyclic - def KleinFour.a - theorem KleinFour.a_sq - def KleinFour.b - theorem KleinFour.b_sq - def KleinFour.c - theorem KleinFour.c_sq - theorem KleinFour.card - theorem KleinFour.exponent - def KleinFour.mulEquivDihedralGroupTwo - theorem KleinFour.nat_card - theorem KleinFour.notIsCyclic - theorem KleinFour.orderOf_a - theorem KleinFour.orderOf_b - theorem KleinFour.orderOf_c + def instCommGroupOfExponentTwo + theorem inv_eq_self_of_exponent_two + theorem inv_eq_self_of_orderOf_eq_two + theorem mul_comm_of_exponent_two + theorem mul_not_mem_of_exponent_two + theorem mul_not_mem_of_orderOf_eq_two + theorem orderOf_eq_two_iff 2023-11-30 18:08:28 af2acbf feat: add missing `IsCancelMul` instances (#8748) This is not exhaustive ESTIMATED CHANGES Modified Mathlib/Algebra/Group/OrderSynonym.lean Modified Mathlib/Algebra/Group/Pi.lean Modified Mathlib/Algebra/Group/Prod.lean Modified Mathlib/Order/Filter/Germ.lean 2023-11-30 18:08:27 6aa2928 chore: use StandardBorelSpace everywhere in the probability folder instead of PolishSpace (#8746) ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Constructions/Polish.lean Modified Mathlib/Probability/Kernel/CondDistrib.lean Modified Mathlib/Probability/Kernel/Condexp.lean +/- theorem ProbabilityTheory.condexpKernel_apply_eq_condDistrib Modified Mathlib/Probability/Kernel/Disintegration.lean 2023-11-30 18:08:25 7a22f15 feat: define the marginal of a function (#8379) * This is a convenient way to work with iterated integrals and apply Fubini's theorem, without requiring the hassle of working with measurable equivalences. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Data/Finset/Update.lean + theorem Function.updateFinset_def Modified Mathlib/MeasureTheory/Constructions/Pi.lean Added Mathlib/MeasureTheory/Integral/Marginal.lean + theorem Measurable.lmarginal + theorem MeasureTheory.lintegral_eq_lmarginal_univ + theorem MeasureTheory.lintegral_eq_of_lmarginal_eq + theorem MeasureTheory.lintegral_le_of_lmarginal_le + def MeasureTheory.lmarginal + theorem MeasureTheory.lmarginal_congr + theorem MeasureTheory.lmarginal_empty + theorem MeasureTheory.lmarginal_eq_of_subset + theorem MeasureTheory.lmarginal_erase' + theorem MeasureTheory.lmarginal_erase + theorem MeasureTheory.lmarginal_image + theorem MeasureTheory.lmarginal_insert' + theorem MeasureTheory.lmarginal_insert + theorem MeasureTheory.lmarginal_le_of_subset + theorem MeasureTheory.lmarginal_mono + theorem MeasureTheory.lmarginal_singleton + theorem MeasureTheory.lmarginal_union' + theorem MeasureTheory.lmarginal_union + theorem MeasureTheory.lmarginal_univ + theorem MeasureTheory.lmarginal_update_of_mem + theorem MeasureTheory.lmarginal_update_of_not_mem 2023-11-30 16:55:46 125ea26 feat: existence of simultaneous eigenvectors given simultaneous generalized eigenvectors for Lie modules (#8745) ESTIMATED CHANGES Modified Mathlib/Algebra/Lie/Weights/Linear.lean + theorem LieModule.exists_forall_lie_eq_smul_of_weightSpace_ne_bot +/- def LieModule.shiftedWeightSpace.shift 2023-11-30 16:55:45 6f6ec73 feat: MulAction by product monoid (#8634) Commuting (Distrib)MulActions by two monoids on the same type give rise to a (Distrib)MulAction by the product monoid, and vice versa. ESTIMATED CHANGES Modified Mathlib/GroupTheory/GroupAction/Prod.lean + def DistribMulAction.prodEquiv + def MulAction.prodEquiv Modified Mathlib/Init/Logic.lean + theorem heq_prop 2023-11-30 16:55:43 ab3f697 feat(Probability/Independence): add conditional independence (#6098) Define conditional independence of sigma-algebras, sets and functions. This is a special case of independence with respect to a kernel and a measure. Conditional independence is obtained by using the conditional expectation kernel `condexpKernel`. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Probability/Independence/Conditional.lean + theorem ProbabilityTheory.CondIndep.condIndepSet_of_measurableSet + theorem ProbabilityTheory.CondIndep.condIndepSets + theorem ProbabilityTheory.CondIndep.symm + def ProbabilityTheory.CondIndep + theorem ProbabilityTheory.CondIndepFun.comp + def ProbabilityTheory.CondIndepFun + def ProbabilityTheory.CondIndepSet + theorem ProbabilityTheory.CondIndepSets.bInter + theorem ProbabilityTheory.CondIndepSets.bUnion + theorem ProbabilityTheory.CondIndepSets.condIndep' + theorem ProbabilityTheory.CondIndepSets.condIndep + theorem ProbabilityTheory.CondIndepSets.condIndepSet_of_mem + theorem ProbabilityTheory.CondIndepSets.iInter + theorem ProbabilityTheory.CondIndepSets.iUnion + theorem ProbabilityTheory.CondIndepSets.inter + theorem ProbabilityTheory.CondIndepSets.symm + theorem ProbabilityTheory.CondIndepSets.union + theorem ProbabilityTheory.CondIndepSets.union_iff + def ProbabilityTheory.CondIndepSets + theorem ProbabilityTheory.condIndepFun_iff + theorem ProbabilityTheory.condIndepFun_iff_condIndep + theorem ProbabilityTheory.condIndepFun_iff_condIndepSet_preimage + theorem ProbabilityTheory.condIndepFun_iff_condexp_inter_preimage_eq_mul + theorem ProbabilityTheory.condIndepSet_empty_left + theorem ProbabilityTheory.condIndepSet_empty_right + theorem ProbabilityTheory.condIndepSet_iff + theorem ProbabilityTheory.condIndepSet_iff_condIndep + theorem ProbabilityTheory.condIndepSet_iff_condIndepSets_singleton + theorem ProbabilityTheory.condIndepSets_iff + theorem ProbabilityTheory.condIndepSets_of_condIndepSets_of_le_left + theorem ProbabilityTheory.condIndepSets_of_condIndepSets_of_le_right + theorem ProbabilityTheory.condIndepSets_piiUnionInter_of_disjoint + theorem ProbabilityTheory.condIndepSets_singleton_iff + theorem ProbabilityTheory.condIndep_bot_left + theorem ProbabilityTheory.condIndep_bot_right + theorem ProbabilityTheory.condIndep_iSup_of_antitone + theorem ProbabilityTheory.condIndep_iSup_of_directed_le + theorem ProbabilityTheory.condIndep_iSup_of_disjoint + theorem ProbabilityTheory.condIndep_iSup_of_monotone + theorem ProbabilityTheory.condIndep_iff + theorem ProbabilityTheory.condIndep_iff_condIndepSets + theorem ProbabilityTheory.condIndep_iff_forall_condIndepSet + theorem ProbabilityTheory.condIndep_of_condIndep_of_le_left + theorem ProbabilityTheory.condIndep_of_condIndep_of_le_right + theorem ProbabilityTheory.iCondIndep.condIndep + theorem ProbabilityTheory.iCondIndep.iCondIndepSets + def ProbabilityTheory.iCondIndep + theorem ProbabilityTheory.iCondIndepFun.condIndepFun + theorem ProbabilityTheory.iCondIndepFun.condIndepFun_finset + theorem ProbabilityTheory.iCondIndepFun.condIndepFun_finset_prod_of_not_mem + theorem ProbabilityTheory.iCondIndepFun.condIndepFun_prod + theorem ProbabilityTheory.iCondIndepFun.condIndepFun_prod_range_succ + theorem ProbabilityTheory.iCondIndepFun.mul + def ProbabilityTheory.iCondIndepFun + theorem ProbabilityTheory.iCondIndepFun_iff + theorem ProbabilityTheory.iCondIndepFun_iff_condexp_inter_preimage_eq_mul + theorem ProbabilityTheory.iCondIndepFun_iff_iCondIndep + theorem ProbabilityTheory.iCondIndepSet.condIndep_generateFrom_le + theorem ProbabilityTheory.iCondIndepSet.condIndep_generateFrom_le_nat + theorem ProbabilityTheory.iCondIndepSet.condIndep_generateFrom_lt + theorem ProbabilityTheory.iCondIndepSet.condIndep_generateFrom_of_disjoint + theorem ProbabilityTheory.iCondIndepSet.iCondIndepFun_indicator + def ProbabilityTheory.iCondIndepSet + theorem ProbabilityTheory.iCondIndepSet_iff + theorem ProbabilityTheory.iCondIndepSet_iff_iCondIndep + theorem ProbabilityTheory.iCondIndepSet_iff_iCondIndepSets_singleton + theorem ProbabilityTheory.iCondIndepSets.condIndepSets + theorem ProbabilityTheory.iCondIndepSets.iCondIndep + theorem ProbabilityTheory.iCondIndepSets.piiUnionInter_of_not_mem + def ProbabilityTheory.iCondIndepSets + theorem ProbabilityTheory.iCondIndepSets_iff + theorem ProbabilityTheory.iCondIndepSets_singleton_iff + theorem ProbabilityTheory.iCondIndep_iff + theorem ProbabilityTheory.iCondIndep_iff_iCondIndepSets Modified Mathlib/Probability/Independence/ZeroOne.lean + theorem ProbabilityTheory.condIndep_biSup_compl + theorem ProbabilityTheory.condIndep_biSup_limsup + theorem ProbabilityTheory.condIndep_iSup_directed_limsup + theorem ProbabilityTheory.condIndep_iSup_limsup + theorem ProbabilityTheory.condIndep_limsup_atBot_self + theorem ProbabilityTheory.condIndep_limsup_atTop_self + theorem ProbabilityTheory.condIndep_limsup_self + theorem ProbabilityTheory.condexp_eq_zero_or_one_of_condIndepSet_self + theorem ProbabilityTheory.condexp_zero_or_one_of_measurableSet_limsup + theorem ProbabilityTheory.condexp_zero_or_one_of_measurableSet_limsup_atBot + theorem ProbabilityTheory.condexp_zero_or_one_of_measurableSet_limsup_atTop + theorem ProbabilityTheory.kernel.indep_biSup_compl + theorem ProbabilityTheory.kernel.indep_biSup_limsup + theorem ProbabilityTheory.kernel.indep_iSup_directed_limsup + theorem ProbabilityTheory.kernel.indep_iSup_limsup + theorem ProbabilityTheory.kernel.indep_limsup_atBot_self + theorem ProbabilityTheory.kernel.indep_limsup_atTop_self + theorem ProbabilityTheory.kernel.indep_limsup_self + theorem ProbabilityTheory.kernel.measure_eq_zero_or_one_of_indepSet_self + theorem ProbabilityTheory.kernel.measure_eq_zero_or_one_or_top_of_indepSet_self + theorem ProbabilityTheory.kernel.measure_zero_or_one_of_measurableSet_limsup + theorem ProbabilityTheory.kernel.measure_zero_or_one_of_measurableSet_limsup_atBot + theorem ProbabilityTheory.kernel.measure_zero_or_one_of_measurableSet_limsup_atTop 2023-11-30 16:16:08 01678d0 feat(Data/Finset/NatDivisors): Nat.divisors of a product (#8695) The function `Nat.divisors` as a multiplicative homomorphism `ℕ →* Finset ℕ`. This result is in a new file `Data/Finset/NatDivisors`, to avoid adding imports and/or lengthening existing files. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Data/Finset/NatDivisors.lean + theorem Finset.nat_divisors_prod + theorem List.nat_divisors_prod + theorem Multiset.nat_divisors_prod + theorem Nat.Prime.divisors_sq + def Nat.divisorsHom + theorem Nat.divisors_mul Modified Mathlib/NumberTheory/Divisors.lean + theorem Nat.divisors_inj + theorem Nat.divisors_injective + theorem Nat.sup_divisors_id 2023-11-30 15:26:16 392482f feat: partition into subintervals/squares adapted to an open cover (#7915) Also adds some useful instances and lemmas about the unit interval. The subsquares version will be useful for Van Kampen. ESTIMATED CHANGES Modified Mathlib/Topology/UnitInterval.lean + theorem Set.Icc.abs_sub_addNsmul_le + def Set.Icc.addNsmul + theorem Set.Icc.addNsmul_eq_right + theorem Set.Icc.addNsmul_zero + theorem Set.Icc.monotone_addNsmul + theorem Set.abs_projIcc_sub_projIcc + theorem exists_monotone_Icc_subset_open_cover_Icc + theorem exists_monotone_Icc_subset_open_cover_unitInterval + theorem exists_monotone_Icc_subset_open_cover_unitInterval_prod_self + theorem unitInterval.bijective_symm + theorem unitInterval.half_le_symm_iff + theorem unitInterval.involutive_symm + theorem unitInterval.strictAnti_symm + theorem unitInterval.univ_eq_Icc 2023-11-30 11:39:31 9706527 feat: the annihilator of the kernel of the trace form of a Lie module is contained in the span of its weights (#8739) ESTIMATED CHANGES Modified Mathlib/Algebra/Lie/Killing.lean + theorem LieModule.dualAnnihilator_ker_traceForm_le_span_weight - theorem LieModule.span_weight_eq_top_of_ker_traceForm_eq_bot Modified Mathlib/LinearAlgebra/Dual.lean - theorem Module.exists_dual_map_eq_bot_of_lt_top + theorem Submodule.exists_dual_map_eq_bot_of_lt_top + theorem Submodule.exists_dual_map_eq_bot_of_nmem 2023-11-30 10:58:35 9e9a528 feat(Analysis/Seminorm): add more `*ball_smul_*ball` (#8724) We had `ball_smul_ball` and `closedBall_smul_closedBall`. Add versions with mixed `ball` and `closedBall`. Also move this lemmas below and golf the proofs. ESTIMATED CHANGES Modified Mathlib/Analysis/Seminorm.lean + theorem Seminorm.ball_smul_closedBall + theorem Seminorm.closedBall_smul_ball 2023-11-30 10:58:34 a12664f feat(CategoryTheory): `Preregular` and `FinitaryPreExtensive` implies `Precoherent` (#8643) We prove some results about effective epimorphisms which allow us to deduce that a category which is `FinitaryPreExtensive` and `Preregular` is also `Precoherent`. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Limits/Shapes/Products.lean Modified Mathlib/CategoryTheory/Sites/EffectiveEpimorphic.lean - def CategoryTheory.EffectiveEpiFamilyStruct_of_isIso_desc - def CategoryTheory.EffectiveEpiFamily_descStruct - def CategoryTheory.EffectiveEpiStructId - def CategoryTheory.EffectiveEpiStruct_ofFamily - def CategoryTheory.EffectiveEpi_familyStruct +/- def CategoryTheory.effectiveEpiFamilyStructId + def CategoryTheory.effectiveEpiFamilyStructOfEffectiveEpiDesc + theorem CategoryTheory.effectiveEpiFamilyStructOfEffectiveEpiDesc_aux + def CategoryTheory.effectiveEpiFamilyStructOfIsIsoDesc + def CategoryTheory.effectiveEpiFamilyStructSingletonOfEffectiveEpi + def CategoryTheory.effectiveEpiStructCompOfEffectiveEpiSplitEpi' + def CategoryTheory.effectiveEpiStructCompOfEffectiveEpiSplitEpi + def CategoryTheory.effectiveEpiStructDescOfEffectiveEpiFamily + def CategoryTheory.effectiveEpiStructOfEffectiveEpiFamilySingleton + def CategoryTheory.effectiveEpiStructOfIsIso +/- theorem CategoryTheory.effectiveEpi_iff_effectiveEpiFamily Modified Mathlib/CategoryTheory/Sites/RegularExtensive.lean + theorem CategoryTheory.effectiveEpi_desc_iff_effectiveEpiFamily +/- theorem CategoryTheory.extensive_regular_generate_coherent 2023-11-30 10:58:33 ee1b50f chore(Profinite): allow more universe flexibility in Profinite/CofilteredLimit (#8613) We allow the indexing category for the cofiltered limit in the result `Profinite.exists_locallyConstant` to live in a smaller universe than our profinite sets. ESTIMATED CHANGES Modified Mathlib/Topology/Category/Profinite/AsLimit.lean +/- def Profinite.asLimitConeIso +/- def Profinite.isoAsLimitConeLift Modified Mathlib/Topology/Category/Profinite/Basic.lean +/- def Profinite.limitCone +/- def Profinite.limitConeIsLimit Modified Mathlib/Topology/Category/Profinite/CofilteredLimit.lean Modified Mathlib/Topology/Category/Profinite/Nobeling.lean Modified Mathlib/Topology/Category/Profinite/Product.lean +/- def Profinite.asLimitindexConeIso 2023-11-30 09:46:30 b9b9fdb feat: Mapping extreme points under continuous maps (#8574) Prove that extreme points are preserved under affine equivalences, and the less trivial statement that a continuous affine map sends extreme points of a compact set to a superset of the extreme points of the image of that set. Also fix a few name and tweak the API a bit. ESTIMATED CHANGES Modified Mathlib/Algebra/Module/LinearMap.lean +/- structure LinearMap Modified Mathlib/Analysis/Convex/Exposed.lean Modified Mathlib/Analysis/Convex/Extreme.lean + theorem image_extremePoints + theorem isExtreme_singleton - theorem mem_extremePoints_iff_extreme_singleton Modified Mathlib/Analysis/Convex/KreinMilman.lean + theorem IsCompact.extremePoints_nonempty - theorem IsCompact.has_extreme_point + theorem surjOn_extremePoints_image 2023-11-30 08:39:20 153b6b0 feat(to_additive + Cyclic): auto `Cyclic --> addCyclic` (#8722) Teach the conversion `Cyclic ↦ addCyclic` to `to_additive`. Affected files: ```bash GroupTheory/SpecificGroups/Cyclic Tactic/ToAdditive ``` ESTIMATED CHANGES Modified Mathlib/GroupTheory/SpecificGroups/Cyclic.lean Modified Mathlib/Tactic/ToAdditive.lean 2023-11-30 08:39:19 7816795 chore: rename `Data.Bitvec` to `Data.BitVec` (#8710) This matches the name of `Std.BitVec`. Performing the rename was deliberately left out of #5920, to avoid creating a break in the git history. ESTIMATED CHANGES Modified Mathlib.lean Renamed Mathlib/Data/Bitvec/Defs.lean to Mathlib/Data/BitVec/Defs.lean Renamed Mathlib/Data/Bitvec/Lemmas.lean to Mathlib/Data/BitVec/Lemmas.lean 2023-11-30 08:39:18 3b761ec feat(Algebra/Module/Injective): injective modules are Baer (#8587) We already know that Baer modules are injective, the other direction is easier ESTIMATED CHANGES Modified Mathlib/Algebra/Module/Injective.lean 2023-11-30 08:14:04 68ef006 feat: Add OrthonormalBasis.measurePreserving_measurableEquiv (#8427) Let `F` be a finite-dimensional inner product space. Then any orthonormal basis of `F` defines a measurable equivalence between `F` and the euclidean space of the same dimension that is volume preserving. ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Measure/Haar/InnerProductSpace.lean + theorem OrthonormalBasis.measurePreserving_measurableEquiv + theorem OrthonormalBasis.measurePreserving_repr + theorem OrthonormalBasis.measurePreserving_repr_symm 2023-11-30 05:35:04 4c9ea25 perf: adjust reducibility setting in gcongr (#8731) ESTIMATED CHANGES Modified Mathlib/Tactic/GCongr/Core.lean Modified test/GCongr/inequalities.lean + def dontUnfoldMe 2023-11-30 05:11:58 a9a186c chore: move toolchain to v4.3.0 (#8733) This is essentially a noop, beyond changing version numbers. `v4.3.0` is identical to `v4.3.0-rc2`, which we were previously on. ESTIMATED CHANGES Modified .github/workflows/bors.yml Modified .github/workflows/build.yml Modified .github/workflows/build.yml.in Modified .github/workflows/build_fork.yml Modified lean-toolchain 2023-11-30 03:34:09 1937b42 fix: do not discard error messages if tests fail (#8716) ESTIMATED CHANGES Modified GNUmakefile Added scripts/check_silent.sh 2023-11-30 02:18:08 d9c853b feat: number of edges in a complete graph (#8631) ESTIMATED CHANGES Modified Mathlib/Combinatorics/SimpleGraph/Basic.lean + theorem SimpleGraph.card_edgeFinset_le_card_choose_two + theorem SimpleGraph.card_edgeFinset_top_eq_card_choose_two + theorem SimpleGraph.edgeFinset_top + theorem SimpleGraph.edgeSet_subset_setOf_not_isDiag + theorem SimpleGraph.edgeSet_top Modified Mathlib/Combinatorics/SimpleGraph/DegreeSum.lean Modified Mathlib/Data/Sym/Sym2.lean + theorem Sym2.fromRel_ne 2023-11-29 22:38:36 fb9a01e Matroid independence axioms (#8071) This PR provides several ways to construct a matroid with alternative versions of the axiom sets, in particular in terms of an independence predicate. It will be used to define duals and minors of matroids in future PRs. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Data/Matroid/Basic.lean + theorem Matroid.Base.mem_of_insert_indep + theorem Matroid.Basis'.insert_not_indep + theorem Matroid.Indep.exists_insert_of_not_mem_maximals - theorem Matroid.exists_base Added Mathlib/Data/Matroid/IndepAxioms.lean + theorem IndepMatroid.matroid_indep_iff + theorem IndepMatroid.ofBddAugment_E + theorem IndepMatroid.ofBddAugment_indep + theorem IndepMatroid.ofBdd_indep + theorem IndepMatroid.ofFinitary_indep + theorem IndepMatroid.ofFinite_E + theorem IndepMatroid.ofFinite_indep + theorem IndepMatroid.ofFinset_E + theorem IndepMatroid.ofFinset_indep' + theorem IndepMatroid.ofFinset_indep + structure IndepMatroid + theorem Matroid.existsMaximalSubsetProperty_of_bdd + theorem Matroid.ofBaseOfFinite_E + theorem Matroid.ofBaseOfFinite_base + theorem Matroid.ofExistsFiniteBase_base 2023-11-29 21:38:13 f3e560f refactor: get rid of `comap norm atTop` (#8262) ESTIMATED CHANGES Modified Mathlib/Analysis/Asymptotics/Asymptotics.lean + theorem Asymptotics.isLittleO_const_id_cobounded - theorem Asymptotics.isLittleO_const_id_comap_norm_atTop Modified Mathlib/Analysis/Complex/PhragmenLindelof.lean Modified Mathlib/Analysis/Normed/Field/Basic.lean + def DilationEquiv.mulLeft + def DilationEquiv.mulRight + theorem Filter.comap_mul_left_cobounded + theorem Filter.comap_mul_right_cobounded +/- theorem Filter.inv_cobounded₀ +/- theorem Filter.inv_nhdsWithin_ne_zero + theorem Filter.map_mul_left_cobounded + theorem Filter.map_mul_right_cobounded +/- theorem Filter.tendsto_inv₀_cobounded' +/- theorem Filter.tendsto_inv₀_cobounded +/- theorem Filter.tendsto_inv₀_nhdsWithin_ne_zero +/- theorem Filter.tendsto_mul_left_cobounded +/- theorem Filter.tendsto_mul_right_cobounded + theorem antilipschitzWith_mul_left + theorem antilipschitzWith_mul_right Modified Mathlib/Analysis/Normed/Group/Basic.lean + theorem Filter.inv_cobounded +/- theorem Filter.tendsto_inv_cobounded + theorem eventually_cobounded_le_norm' Modified Mathlib/Analysis/SpecialFunctions/Complex/Log.lean +/- theorem Complex.map_exp_comap_re_atTop Modified Mathlib/Analysis/SpecialFunctions/Exp.lean + theorem Complex.comap_exp_cobounded - theorem Complex.comap_exp_comap_abs_atTop +/- theorem Complex.tendsto_exp_comap_re_atTop Modified Mathlib/Topology/MetricSpace/Dilation.lean + theorem Dilation.comap_cobounded + theorem Dilation.tendsto_cobounded Modified Mathlib/Topology/MetricSpace/DilationEquiv.lean + theorem DilationEquiv.map_cobounded 2023-11-29 19:54:44 ae010c1 chore: introduce notation for `AlternatingMap` (#8697) Use `M [Λ^ι]→ₗ[R] N` for `AlternatingMap R M N ι`, similarly to the existing notation `M [Λ^ι]→L[R] N` for `ContinuousAlternatingMap R M N ι`. ESTIMATED CHANGES Modified Mathlib/Analysis/InnerProductSpace/Orientation.lean Modified Mathlib/Analysis/InnerProductSpace/TwoDim.lean Modified Mathlib/LinearAlgebra/Alternating/Basic.lean +/- theorem AlternatingMap.add_compLinearMap +/- def AlternatingMap.codRestrict +/- theorem AlternatingMap.coeFn_smul +/- theorem AlternatingMap.coe_alternatization +/- theorem AlternatingMap.coe_compLinearMap +/- theorem AlternatingMap.coe_inj +/- theorem AlternatingMap.coe_injective +/- theorem AlternatingMap.coe_neg +/- theorem AlternatingMap.coe_prod +/- theorem AlternatingMap.coe_zero +/- theorem AlternatingMap.compLinearEquiv_eq_zero_iff +/- def AlternatingMap.compLinearMap +/- theorem AlternatingMap.compLinearMap_apply +/- theorem AlternatingMap.compLinearMap_assoc +/- theorem AlternatingMap.compLinearMap_id +/- theorem AlternatingMap.compLinearMap_zero +/- theorem AlternatingMap.congr_arg +/- theorem AlternatingMap.congr_fun +/- def AlternatingMap.constLinearEquivOfIsEmpty +/- def AlternatingMap.constOfIsEmpty +/- def AlternatingMap.curryLeft +/- theorem AlternatingMap.curryLeft_add +/- theorem AlternatingMap.curryLeft_same +/- theorem AlternatingMap.curryLeft_smul +/- theorem AlternatingMap.curryLeft_zero +/- def AlternatingMap.domDomCongr +/- def AlternatingMap.domDomCongrEquiv +/- theorem AlternatingMap.domDomCongr_add +/- theorem AlternatingMap.domDomCongr_eq_iff +/- theorem AlternatingMap.domDomCongr_eq_zero_iff +/- theorem AlternatingMap.domDomCongr_refl +/- theorem AlternatingMap.domDomCongr_trans +/- theorem AlternatingMap.domDomCongr_zero + def AlternatingMap.domDomCongrₗ + theorem AlternatingMap.domDomCongrₗ_refl + theorem AlternatingMap.domDomCongrₗ_toAddEquiv - def AlternatingMap.domDomLcongr - theorem AlternatingMap.domDomLcongr_refl - theorem AlternatingMap.domDomLcongr_toAddEquiv +/- def AlternatingMap.domLCongr +/- theorem AlternatingMap.ext +/- theorem AlternatingMap.ext_iff +/- theorem AlternatingMap.map_vecCons_add +/- theorem AlternatingMap.map_vecCons_smul +/- def AlternatingMap.ofSubsingleton +/- def AlternatingMap.prod +/- theorem AlternatingMap.zero_apply +/- theorem AlternatingMap.zero_compLinearMap +/- theorem Basis.ext_alternating +/- theorem LinearMap.coe_compAlternatingMap +/- def LinearMap.compAlternatingMap +/- theorem LinearMap.compAlternatingMap_apply +/- theorem LinearMap.compAlternatingMap_codRestrict +/- theorem LinearMap.subtype_compAlternatingMap_codRestrict +/- def MultilinearMap.alternatization Modified Mathlib/LinearAlgebra/Alternating/DomCoprod.lean +/- theorem AlternatingMap.domCoprod'_apply +/- def AlternatingMap.domCoprod.summand +/- theorem AlternatingMap.domCoprod.summand_add_swap_smul_eq_zero +/- theorem AlternatingMap.domCoprod.summand_eq_zero_of_smul_invariant +/- theorem AlternatingMap.domCoprod.summand_mk'' +/- def AlternatingMap.domCoprod +/- theorem AlternatingMap.domCoprod_coe Modified Mathlib/LinearAlgebra/Determinant.lean +/- theorem AlternatingMap.eq_smul_basis_det Modified Mathlib/LinearAlgebra/ExteriorAlgebra/Basic.lean +/- def ExteriorAlgebra.ιMulti Modified Mathlib/LinearAlgebra/ExteriorAlgebra/OfAlternating.lean +/- def ExteriorAlgebra.liftAlternating +/- def ExteriorAlgebra.liftAlternatingEquiv +/- theorem ExteriorAlgebra.liftAlternating_algebraMap +/- theorem ExteriorAlgebra.liftAlternating_apply_ιMulti +/- theorem ExteriorAlgebra.liftAlternating_comp +/- theorem ExteriorAlgebra.liftAlternating_comp_ιMulti +/- theorem ExteriorAlgebra.liftAlternating_one +/- theorem ExteriorAlgebra.liftAlternating_ι +/- theorem ExteriorAlgebra.liftAlternating_ι_mul Modified Mathlib/LinearAlgebra/Matrix/Determinant.lean +/- def Matrix.detRowAlternating Modified Mathlib/LinearAlgebra/Orientation.lean +/- theorem Orientation.map_apply +/- theorem Orientation.reindex_apply Modified Mathlib/MeasureTheory/Measure/Lebesgue/EqHaar.lean +/- theorem AlternatingMap.measure_parallelepiped Modified Mathlib/Topology/Algebra/Module/Alternating.lean 2023-11-29 19:15:58 381a16d feat: generalise results about Lie module weight spans from Abelian to nilpotent Lie algebras (#8718) ESTIMATED CHANGES Modified Mathlib/Algebra/Lie/Killing.lean + theorem LieAlgebra.IsKilling.ker_restrictBilinear_eq_bot_of_isCartanSubalgebra - theorem LieAlgebra.IsKilling.ker_restrictBilinear_of_isCartanSubalgebra_eq_bot + theorem LieAlgebra.IsKilling.ker_traceForm_eq_bot_of_isCartanSubalgebra +/- theorem LieModule.span_weight_eq_top_of_ker_traceForm_eq_bot +/- theorem LieModule.traceForm_eq_sum_finrank_nsmul_mul + theorem LieModule.traceForm_weightSpace_eq + theorem LieModule.trace_toEndomorphism_weightSpace Modified Mathlib/Algebra/Lie/Submodule.lean Modified Mathlib/Algebra/Lie/Weights/Linear.lean + theorem LieModule.shiftedWeightSpace.coe_lie_shiftedWeightSpace_apply + def LieModule.shiftedWeightSpace.shift + theorem LieModule.shiftedWeightSpace.toEndomorphism_eq + def LieModule.shiftedWeightSpace + theorem LieModule.weight.toLinear_apply_lie 2023-11-29 19:15:56 7ba6897 feat: category of $R$-modules has enough injectives (#7392) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Category/ModuleCat/ChangeOfRings.lean Added Mathlib/Algebra/Category/ModuleCat/Injective.lean + theorem ModuleCat.enoughInjectives Modified Mathlib/CategoryTheory/Functor/EpiMono.lean Modified Mathlib/CategoryTheory/Preadditive/Injective.lean + def CategoryTheory.Adjunction.injectivePresentationOfMap + theorem CategoryTheory.EnoughInjectives.of_adjunction + theorem CategoryTheory.EnoughInjectives.of_equivalence +/- theorem CategoryTheory.Equivalence.enoughInjectives_iff 2023-11-29 18:21:02 0622d7e chore: generalised some results from ring to semiring (#8715) Changed the hypothesis of some results from ring to semiring, without changing the proofs. ESTIMATED CHANGES Modified Mathlib/RingTheory/Ideal/Basic.lean +/- theorem Ideal.bot_prime +/- theorem Ideal.factors_decreasing +/- theorem Ideal.maximal_of_no_maximal +/- theorem Ideal.span_singleton_lt_span_singleton 2023-11-29 17:02:16 addb469 feat(Topology, CategoryTheory): define light profinite sets (#8676) We define light profinite sets as structures containing the data of a sequential limit in `Profinite`. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Topology/Category/LightProfinite/Basic.lean + def FintypeCat.toLightProfinite + def LightProfinite'.toLightFunctor + def LightProfinite'.toProfinite + structure LightProfinite' + def LightProfinite.equivSmall + theorem LightProfinite.ext + def LightProfinite.fintypeCatToLightProfinite + def LightProfinite.lightToProfinite + def LightProfinite.toProfinite + structure LightProfinite 2023-11-29 15:49:19 d8ade14 chore: rename some lemmas involving "of_closed" (#8492) Three particular examples which caught my eye; not exhaustive. ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Function/ContinuousMapDense.lean Modified Mathlib/Topology/Category/CompHaus/Basic.lean Modified Mathlib/Topology/CompletelyRegular.lean Modified Mathlib/Topology/Connected/Basic.lean - theorem IsConnected.preimage_of_closedMap + theorem IsConnected.preimage_of_isClosedMap - theorem IsPreconnected.preimage_of_closed_map + theorem IsPreconnected.preimage_of_isClosedMap Modified Mathlib/Topology/ContinuousFunction/Ideals.lean Modified Mathlib/Topology/Metrizable/Urysohn.lean Modified Mathlib/Topology/PartitionOfUnity.lean Modified Mathlib/Topology/UrysohnsBounded.lean Modified Mathlib/Topology/UrysohnsLemma.lean - theorem exists_continuous_zero_one_of_closed + theorem exists_continuous_zero_one_of_isClosed Modified docs/overview.yaml 2023-11-29 14:38:58 6490dc2 doc(LinearAlgebra/TensorProduct): mention R-balanced maps in liftAddHom docstring (#8709) Mention R-balanced maps in liftAddHom docstring. The terminology "`R`-balanced" and "middle linear with respect to `R`" is used in Dummit and Foote (top of p.365 in section 10.4) ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/TensorProduct.lean 2023-11-29 14:38:56 c503521 feat(RepresentationTheory/GroupCohomology): Noether's generalization of Hilbert's Theorem 90 (#8599) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Algebra/Equiv.lean Modified Mathlib/Algebra/Algebra/Hom.lean Modified Mathlib/Algebra/Group/Equiv/TypeTags.lean + def addMonoidEndToMultiplicative + def monoidEndToAdditive Modified Mathlib/LinearAlgebra/Basic.lean + def addMonoidEndRingEquivInt Modified Mathlib/RepresentationTheory/Basic.lean + def Representation.ofDistribMulAction + theorem Representation.ofDistribMulAction_apply_apply + def Representation.ofMulDistribMulAction + theorem Representation.ofMulDistribMulAction_apply_apply Added Mathlib/RepresentationTheory/GroupCohomology/Hilbert90.lean + theorem Hilbert90.aux_ne_zero + theorem hilbert90 Modified Mathlib/RepresentationTheory/Rep.lean + def Rep.ofAlgebraAut + def Rep.ofAlgebraAutOnUnits + def Rep.ofDistribMulAction + theorem Rep.ofDistribMulAction_ρ_apply_apply + def Rep.ofMulDistribMulAction + theorem Rep.ofMulDistribMulAction_ρ_apply_apply 2023-11-29 14:38:55 722e62a feat: uniqueness of Haar measure in general locally compact groups (#8198) We prove that two regular Haar measures in a locally compact group coincide up to scalar multiplication, and the same thing for inner regular Haar measures. This is implemented in a new file `MeasureTheory.Measure.Haar.Unique`. A few results that used to be in the `MeasureTheory.Measure.Haar.Basic` are moved to this file (and extended) so several imports have to be changed. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Analysis/Calculus/BumpFunction/Convolution.lean Modified Mathlib/Analysis/Fourier/RiemannLebesgueLemma.lean Modified Mathlib/Dynamics/Ergodic/AddCircle.lean Modified Mathlib/MeasureTheory/Group/Measure.lean +/- theorem MeasureTheory.regular_inv_iff Modified Mathlib/MeasureTheory/Group/Prod.lean Modified Mathlib/MeasureTheory/Measure/Haar/Basic.lean - theorem MeasureTheory.Measure.MeasurePreserving.zpow - theorem MeasureTheory.Measure.absolutelyContinuous_isHaarMeasure - theorem MeasureTheory.Measure.isHaarMeasure_eq_smul_isHaarMeasure - theorem MeasureTheory.Measure.measurePreserving_zpow Modified Mathlib/MeasureTheory/Measure/Haar/Disintegration.lean Added Mathlib/MeasureTheory/Measure/Haar/Unique.lean + theorem IsCompact.measure_eq_biInf_integral_hasCompactSupport + theorem MeasureTheory.Measure.MeasurePreserving.zpow + theorem MeasureTheory.Measure.absolutelyContinuous_isHaarMeasure + theorem MeasureTheory.Measure.integral_isMulLeftInvariant_eq_smul_of_hasCompactSupport + theorem MeasureTheory.Measure.integral_isMulLeftInvariant_isMulRightInvariant_combo + theorem MeasureTheory.Measure.isHaarMeasure_eq_smul + theorem MeasureTheory.Measure.isHaarMeasure_eq_smul_of_innerRegular + theorem MeasureTheory.Measure.isHaarMeasure_eq_smul_of_regular + theorem MeasureTheory.Measure.isMulLeftInvariant_eq_of_isProbabilityMeasure + theorem MeasureTheory.Measure.isMulLeftInvariant_eq_smul_of_innerRegular + theorem MeasureTheory.Measure.isMulLeftInvariant_eq_smul_of_regular + theorem MeasureTheory.Measure.measurePreserving_zpow + theorem MeasureTheory.Measure.measure_isMulLeftInvariant_eq_smul_of_ne_top + theorem MeasureTheory.continuous_integral_apply_inv_mul Modified Mathlib/MeasureTheory/Measure/Lebesgue/Integral.lean 2023-11-29 13:20:39 f961562 feat: `Multiset.sum_lt_sum` et al (#8707) Lean discussion: https://leanprover.zulipchat.com/#narrow/stream/217875-Is-there-code-for-X.3F/topic/Multiset.2Esum_lt_sum ESTIMATED CHANGES Modified Mathlib/Algebra/BigOperators/Multiset/Basic.lean + theorem Multiset.prod_lt_prod' + theorem Multiset.prod_lt_prod_of_nonempty' Modified Mathlib/Algebra/BigOperators/Order.lean +/- theorem Finset.prod_lt_prod' +/- theorem Finset.prod_lt_prod_of_nonempty' 2023-11-29 12:22:36 e761b4e refactor: replace Bitvec with Std.BitVec (#5920) re-adding definitions and theorems about bitvectors that mathlib has for `Bitvec` to the new `Std.BitVec` type, and getting rid of the former. In std, the choice was made to define ult (unsigned less than) and related comparisons as `Bool`-valued, where the corresponding defs for `Bitvec` in mathlib are `Prop`-valued. Std does not have definitions for the respective greater-equal or greater-than comparisons, so we add those here, but we choose to be consistent with std and make them `Bool`-valued as well, breaking with the old API. ESTIMATED CHANGES Modified Mathlib/Data/Bitvec/Defs.lean - def Bitvec.Sge - def Bitvec.Sgt - def Bitvec.Sle - def Bitvec.Slt - def Bitvec.Uge - def Bitvec.Ugt - def Bitvec.Ule - def Bitvec.Ult - def Bitvec.adc - def Bitvec.addLsb - def Bitvec.append - def Bitvec.bitsToNat - def Bitvec.ofFin - def Bitvec.sbb - def Bitvec.sborrow - def Bitvec.shl - def Bitvec.sshr - def Bitvec.toFin - def Bitvec.uborrow - def Bitvec.ushr - def Bitvec + def Std.BitVec.adc + def Std.BitVec.addLsb + def Std.BitVec.getLsb' + def Std.BitVec.getMsb' + def Std.BitVec.sbb + def Std.BitVec.toBEList + def Std.BitVec.toLEList Modified Mathlib/Data/Bitvec/Lemmas.lean - theorem Bitvec.addLsb_div_two - theorem Bitvec.addLsb_eq_twice_add_one - theorem Bitvec.bitsToNat_toList - theorem Bitvec.bits_toNat_decide - theorem Bitvec.decide_addLsb_mod_two - theorem Bitvec.ofFin_le_ofFin_of_le - theorem Bitvec.ofFin_toFin - theorem Bitvec.ofFin_val - theorem Bitvec.ofNat_succ - theorem Bitvec.ofNat_toNat - theorem Bitvec.toFin_le_toFin_of_le - theorem Bitvec.toFin_ofFin - theorem Bitvec.toFin_val - theorem Bitvec.toNat_append - theorem Bitvec.toNat_eq_foldr_reverse - theorem Bitvec.toNat_lt - theorem Bitvec.toNat_ofNat + theorem Std.BitVec.addLsb_div_two + theorem Std.BitVec.addLsb_eq_twice_add_one + theorem Std.BitVec.decide_addLsb_mod_two + theorem Std.BitVec.extractLsb_eq + theorem Std.BitVec.getLsb_eq_testBit + theorem Std.BitVec.ofFin_le_ofFin_of_le + theorem Std.BitVec.ofFin_toFin + theorem Std.BitVec.ofFin_val + theorem Std.BitVec.ofNat_eq_mod_two_pow + theorem Std.BitVec.ofNat_toNat' + theorem Std.BitVec.ofNat_toNat + theorem Std.BitVec.toFin_le_toFin_of_le + theorem Std.BitVec.toFin_ofFin + theorem Std.BitVec.toFin_val + theorem Std.BitVec.toNat_append + theorem Std.BitVec.toNat_extractLsb' + theorem Std.BitVec.toNat_inj + theorem Std.BitVec.toNat_injective + theorem Std.BitVec.toNat_lt + theorem Std.BitVec.toNat_lt_toNat + theorem Std.BitVec.toNat_ofFin + theorem Std.BitVec.toNat_ofNat 2023-11-29 11:22:19 4938396 feat (Mathlib.RingTheory.Ideal.Operations) : Change hypotheses from ring to semiring (#8469) Moved some results from ring to semiring. ESTIMATED CHANGES Modified Mathlib/RingTheory/Ideal/Operations.lean + theorem Ideal.comap_symm + theorem Ideal.map_symm Modified Mathlib/RingTheory/Ideal/Prod.lean 2023-11-29 10:49:06 d826029 chore: bump Std (#8704) ESTIMATED CHANGES Modified lake-manifest.json 2023-11-29 10:49:05 d8177a0 feat(CategoryTheory): more on the naturality of the connecting homomorphism of the snake lemma (#8491) In this PR, more constructors are defined for `ComposableArrows` in order to formulate the naturality of the snake lemma by the construction of a functor `composableArrowsFunctor : SnakeInput C ⥤ ComposableArrows C 5`. ESTIMATED CHANGES Modified Mathlib/Algebra/Homology/ShortComplex/SnakeLemma.lean Modified Mathlib/CategoryTheory/ComposableArrows.lean + theorem CategoryTheory.ComposableArrows.ext₄ + theorem CategoryTheory.ComposableArrows.ext₅ + def CategoryTheory.ComposableArrows.homMk₄ + theorem CategoryTheory.ComposableArrows.homMk₄_app_four + theorem CategoryTheory.ComposableArrows.homMk₄_app_one + theorem CategoryTheory.ComposableArrows.homMk₄_app_three + theorem CategoryTheory.ComposableArrows.homMk₄_app_two + theorem CategoryTheory.ComposableArrows.homMk₄_app_zero + def CategoryTheory.ComposableArrows.homMk₅ + theorem CategoryTheory.ComposableArrows.homMk₅_app_five + theorem CategoryTheory.ComposableArrows.homMk₅_app_four + theorem CategoryTheory.ComposableArrows.homMk₅_app_one + theorem CategoryTheory.ComposableArrows.homMk₅_app_three + theorem CategoryTheory.ComposableArrows.homMk₅_app_two + theorem CategoryTheory.ComposableArrows.homMk₅_app_zero + theorem CategoryTheory.ComposableArrows.hom_ext₄ + theorem CategoryTheory.ComposableArrows.hom_ext₅ + def CategoryTheory.ComposableArrows.isoMk₄ + def CategoryTheory.ComposableArrows.isoMk₅ + theorem CategoryTheory.ComposableArrows.mk₄_surjective + theorem CategoryTheory.ComposableArrows.mk₅_surjective 2023-11-29 10:17:55 345c6ba feat: the roots of a Lie algebra with non-singular Killing form span the dual of the Cartan subalgebra (#8688) In combination with existing work the changes here mean that the following now works (and furthermore, makes no assumptions about characteristic): ```lean example {K L : Type*} [Field K] [IsAlgClosed K] [LieRing L] [LieAlgebra K L] [FiniteDimensional K L] [LieAlgebra.IsKilling K L] (H : LieSubalgebra K L) [H.IsCartanSubalgebra] : Submodule.span K (range (LieModule.weight.toLinear K H L)) = ⊤ := by simp ``` ESTIMATED CHANGES Modified Mathlib/Algebra/Lie/Killing.lean + theorem LieAlgebra.IsKilling.span_weight_eq_top + theorem LieModule.span_weight_eq_top_of_ker_traceForm_eq_bot + theorem LieModule.traceForm_eq_sum_finrank_nsmul_mul Modified Mathlib/Algebra/Lie/Weights/Basic.lean Modified Mathlib/Algebra/Lie/Weights/Linear.lean - def LieModule.linearWeight + def LieModule.weight.toLinear Modified Mathlib/LinearAlgebra/Dual.lean + theorem Module.exists_dual_map_eq_bot_of_lt_top + theorem Module.nontrivial_dual_iff + theorem Module.subsingleton_dual_iff 2023-11-29 07:55:14 a67e41e chore: bump leantar 0.1.9 (#8670) leanprover/lean4#2766 changed the format of .olean files, so `leantar` also needs to be updated to support it. `leantar 0.1.9` supports both the new format and the old one, and is fully backward compatible, so it is safe to land this in advance of the next RC bump. (This change has already been tested on [`lean-pr-testing-2766`](https://github.com/leanprover-community/mathlib4/commit/0c9d1236ee4ebdbfdee75eb0c196a9e610b2ee3e).) In fact, leantar is also forward-compatible in this release: old leantar can pack and unpack oleans made by new lean, but it does not recognize the files as oleans, so it falls back to plain old gzip (with a significant loss in compression quality). But it's probably best to land this first so we don't waste space and download time. ESTIMATED CHANGES Modified Cache/IO.lean 2023-11-29 07:29:04 63c5a7e feat(GroupTheory/SpecificGroups/Cyclic): Add non-cyclic -> nontrivial (#8693) A non-cyclic group is also non-trivial, whether it is multiplicative or additive. ESTIMATED CHANGES Modified Mathlib/GroupTheory/SpecificGroups/Cyclic.lean + theorem Nontrivial.of_not_isCyclic 2023-11-29 06:54:02 79254c9 fix: lean4-ify names of inductive constructors (#8652) These inductive types carry data, so these should be `functionCase` not `theorem_case`. It seems that mathport didn't do this. ESTIMATED CHANGES Modified Mathlib/Algebra/FreeAlgebra.lean +/- def FreeAlgebra.Pre.hasCoeSemiring +/- def FreeAlgebra.Pre.hasOne +/- def FreeAlgebra.Pre.hasSmul +/- def FreeAlgebra.Pre.hasZero Modified Mathlib/CategoryTheory/Monoidal/Free/Basic.lean +/- theorem CategoryTheory.FreeMonoidalCategory.unit_eq_unit Modified Mathlib/CategoryTheory/Monoidal/Free/Coherence.lean Modified Mathlib/Geometry/Euclidean/Circumcenter.lean Modified Mathlib/Geometry/Euclidean/MongePoint.lean Modified Mathlib/Tactic/CategoryTheory/Coherence.lean 2023-11-29 06:08:23 bc29663 fix: Use notation3 for neighborhood notations (#8690) The point is to get delaborators for free. This was previously blocked on `notation3` not supporting `scoped`. ESTIMATED CHANGES Modified Mathlib/Topology/Basic.lean 2023-11-29 00:23:33 b9d519b refactor(*/Multilinear): change `*.ofSubsingleton` (#8694) Change `MultilinearMap.ofSubsingleton` and other similar definitions so that they are now equivalences between linear maps and `1`-multilinear maps. ESTIMATED CHANGES Modified Mathlib/Analysis/NormedSpace/Multilinear.lean +/- theorem ContinuousMultilinearMap.nnnorm_ofSubsingleton + theorem ContinuousMultilinearMap.nnnorm_ofSubsingleton_id + theorem ContinuousMultilinearMap.nnnorm_ofSubsingleton_id_le - theorem ContinuousMultilinearMap.nnnorm_ofSubsingleton_le +/- theorem ContinuousMultilinearMap.norm_ofSubsingleton + theorem ContinuousMultilinearMap.norm_ofSubsingleton_id + theorem ContinuousMultilinearMap.norm_ofSubsingleton_id_le - theorem ContinuousMultilinearMap.norm_ofSubsingleton_le + def ContinuousMultilinearMap.ofSubsingletonₗᵢ Modified Mathlib/Analysis/NormedSpace/OperatorNorm.lean + theorem ContinuousLinearMap.nnnorm_id Modified Mathlib/LinearAlgebra/Alternating/Basic.lean +/- def AlternatingMap.ofSubsingleton Modified Mathlib/LinearAlgebra/Multilinear/Basic.lean +/- def MultilinearMap.ofSubsingleton + def MultilinearMap.ofSubsingletonₗ Modified Mathlib/LinearAlgebra/PiTensorProduct.lean Modified Mathlib/Topology/Algebra/Module/Alternating.lean +/- def ContinuousAlternatingMap.ofSubsingleton +/- theorem ContinuousAlternatingMap.ofSubsingleton_toAlternatingMap Modified Mathlib/Topology/Algebra/Module/Multilinear.lean +/- def ContinuousMultilinearMap.ofSubsingleton 2023-11-28 21:58:51 0cac4cb feat: Add `Polynomial.separable_map'`. (#8680) ESTIMATED CHANGES Modified Mathlib/FieldTheory/Separable.lean +/- theorem Polynomial.separable_map 2023-11-28 20:47:10 df0fd9f feat: composition of a multilinear map and linear maps is multilinear (#8687) ESTIMATED CHANGES Modified Mathlib/Analysis/NormedSpace/Multilinear.lean 2023-11-28 20:10:42 ad70e02 feat: multilinearity of the `MultilinearMap.compLinearMap` operation (#8684) ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/Multilinear/Basic.lean + def MultilinearMap.compLinearMapMultilinear + def MultilinearMap.compLinearMapₗ 2023-11-28 18:48:49 ce7d2c1 feat(Topology/GDelta): rename "nowhereDense" to "isNowhereDense" (#8567) The corresponding definition is called `IsNowhereDense`; this matches rules 1 and 5 of the naming convention. While at it, fix a doc comment (missing word), use a focusing dot (small oversight) and fix line length. ESTIMATED CHANGES Modified Mathlib/Topology/GDelta.lean + theorem IsNowhereDense.subset_of_closed_isNowhereDense - theorem IsNowhereDense.subset_of_closed_nowhereDense - theorem closed_isNowhereDense_iff_compl + theorem isClosed_isNowhereDense_iff_compl + theorem meagre_iff_countable_union_isNowhereDense - theorem meagre_iff_countable_union_nowhereDense 2023-11-28 18:28:41 d6652f7 fix: CI badge appears twice in readme (#8689) ESTIMATED CHANGES Modified README.md 2023-11-28 18:08:16 c28500a feat(CategoryTheory/Sites): internal hom of (pre)sheaves (#8622) In this PR, we define a presheaf `presheafHom F G` when `F` and `G` are presheaves `Cᵒᵖ ⥤ A` and show that it is a sheaf when `G` is a sheaf (for a certain Grothendieck topology on `C`). ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/CategoryTheory/Limits/Over.lean Modified Mathlib/CategoryTheory/Over.lean Added Mathlib/CategoryTheory/Sites/SheafHom.lean + theorem CategoryTheory.Presheaf.IsSheaf.hom + theorem CategoryTheory.PresheafHom.IsSheafFor.app_cond + theorem CategoryTheory.PresheafHom.IsSheafFor.exists_app + theorem CategoryTheory.PresheafHom.isAmalgamation_iff + def CategoryTheory.presheafHom + def CategoryTheory.presheafHomSectionsEquiv + theorem CategoryTheory.presheafHom_isSheafFor + theorem CategoryTheory.presheafHom_map_app + theorem CategoryTheory.presheafHom_map_app_op_mk_id Modified Mathlib/CategoryTheory/Subobject/Basic.lean Modified Mathlib/CategoryTheory/Subobject/MonoOver.lean 2023-11-28 15:55:18 60b5e23 feat(FieldTheory/SeparableDegree): basic definition of separable degree of field extension (#8117) Main changes: - rename current `Mathlib/FieldTheory/SeparableDegree` to `Mathlib/RingTheory/Polynomial/SeparableDegree` and create new `Mathlib/FieldTheory/SeparableDegree` Main definitions - `Emb F E`: the type of `F`-algebra homomorphisms from `E` to the algebraic closure of `E`. - `sepDegree F E`: the separable degree of an algebraic extension `E / F` of fields, defined to be the cardinal of `F`-algebra homomorphisms from `E` to the algebraic closure of `E`. (Mathematically, it should be the algebraic closure of `F`, but in order to make the type compatible with `Module.rank F E`, we use the algebraic closure of `E`.) Note that if `E / F` is not algebraic, then this definition makes no mathematical sense. - `finSepDegree F E`: the separable degree of `E / F` as a natural number, which is zero if `sepDegree F E` is not finite. Main results - `embEquivOfEquiv`, `sepDegree_eq_of_equiv`, `finSepDegree_eq_of_equiv`: a random isomorphism between `Emb F E` and `Emb F E'` when `E` and `E'` are isomorphic as `F`-algebras. In particular, they have the same cardinality (so `sepDegree` and `finSepDegree` are equal). - `embEquivOfAdjoinSplits'`, `sepDegree_eq_of_adjoin_splits'`, `finSepDegree_eq_of_adjoin_splits'`: a random isomorphism between `Emb F E` and `E →ₐ[F] K` if `E = F(S)` such that every element `s` of `S` is integral (= algebraic) over `F` and whose minimal polynomial splits in `K`. In particular, they have the same cardinality. - `embEquivOfIsAlgClosed`, `sepDegree_eq_of_isAlgClosed`, `finSepDegree_eq_of_isAlgClosed`: a random isomorphism between `Emb F E` and `E →ₐ[F] K` when `E / F` is algebraic and `K / F` is algebraically closed. In particular, they have the same cardinality. - `embProdEmbOfIsAlgebraic`, `lift_sepDegree_mul_lift_sepDegree_of_isAlgebraic`, `sepDegree_mul_sepDegree_of_isAlgebraic`, `finSepDegree_mul_finSepDegree_of_isAlgebraic`: if `K / E / F` is a field extension tower, such that `K / E` is algebraic, then there is a non-canonical isomorphism `(Emb F E) × (Emb E K) ≃ (Emb F K)`. In particular, the separable degree satisfies the tower law: `[E:F]_s [K:E]_s = [K:F]_s`. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/FieldTheory/SeparableDegree.lean + def Field.Emb + def Field.embEquivOfAdjoinSplits + def Field.embEquivOfEquiv + def Field.embEquivOfIsAlgClosed + def Field.embProdEmbOfIsAlgebraic + def Field.finSepDegree + theorem Field.finSepDegree_bot' + theorem Field.finSepDegree_bot + theorem Field.finSepDegree_eq_of_adjoin_splits + theorem Field.finSepDegree_eq_of_equiv + theorem Field.finSepDegree_eq_of_isAlgClosed + theorem Field.finSepDegree_mul_finSepDegree_of_isAlgebraic + theorem Field.finSepDegree_self + theorem Field.finSepDegree_top' + theorem Field.finSepDegree_top + theorem Field.lift_sepDegree_mul_lift_sepDegree_of_isAlgebraic + def Field.sepDegree + theorem Field.sepDegree_bot'' + theorem Field.sepDegree_bot' + theorem Field.sepDegree_bot + theorem Field.sepDegree_eq_of_adjoin_splits + theorem Field.sepDegree_eq_of_equiv + theorem Field.sepDegree_eq_of_isAlgClosed + theorem Field.sepDegree_mul_sepDegree_of_isAlgebraic + theorem Field.sepDegree_self + theorem Field.sepDegree_top' + theorem Field.sepDegree_top - def Polynomial.HasSeparableContraction.contraction - def Polynomial.HasSeparableContraction.degree - theorem Polynomial.HasSeparableContraction.dvd_degree' - theorem Polynomial.HasSeparableContraction.dvd_degree - theorem Polynomial.HasSeparableContraction.eq_degree - def Polynomial.HasSeparableContraction - theorem Polynomial.Irreducible.hasSeparableContraction - theorem Polynomial.IsSeparableContraction.degree_eq - theorem Polynomial.IsSeparableContraction.dvd_degree' - def Polynomial.IsSeparableContraction - theorem Polynomial.contraction_degree_eq_or_insep Added Mathlib/RingTheory/Polynomial/SeparableDegree.lean + def Polynomial.HasSeparableContraction.contraction + def Polynomial.HasSeparableContraction.degree + theorem Polynomial.HasSeparableContraction.dvd_degree' + theorem Polynomial.HasSeparableContraction.dvd_degree + theorem Polynomial.HasSeparableContraction.eq_degree + def Polynomial.HasSeparableContraction + theorem Polynomial.Irreducible.hasSeparableContraction + theorem Polynomial.IsSeparableContraction.degree_eq + theorem Polynomial.IsSeparableContraction.dvd_degree' + def Polynomial.IsSeparableContraction + theorem Polynomial.contraction_degree_eq_or_insep 2023-11-28 14:52:06 547a841 refactor: use the new homology API for right derived functors (#8593) Injective resolutions and right derived functors are redefined using the new homology API. ESTIMATED CHANGES Modified Mathlib/Algebra/Homology/HomotopyCategory.lean + def CategoryTheory.Functor.mapHomotopyCategoryFactors Modified Mathlib/Algebra/Homology/ShortComplex/Exact.lean + theorem CategoryTheory.ShortComplex.Exact.comp_descToInjective + theorem CategoryTheory.ShortComplex.exact_and_epi_g_iff_g_is_kernel + theorem CategoryTheory.ShortComplex.exact_and_epi_g_iff_of_iso + theorem CategoryTheory.ShortComplex.exact_and_mono_f_iff_f_is_kernel + theorem CategoryTheory.ShortComplex.exact_and_mono_f_iff_of_iso Modified Mathlib/Algebra/Homology/ShortComplex/HomologicalComplex.lean + theorem CochainComplex.isIso_liftCycles_iff Modified Mathlib/Algebra/Homology/SingleHomology.lean + theorem CochainComplex.exactAt_succ_single_obj Modified Mathlib/CategoryTheory/Abelian/InjectiveResolution.lean + theorem CategoryTheory.InjectiveResolution.comp_descHomotopyZeroOne + theorem CategoryTheory.InjectiveResolution.comp_descHomotopyZeroSucc + theorem CategoryTheory.InjectiveResolution.comp_descHomotopyZeroZero - theorem CategoryTheory.InjectiveResolution.exact_ofCocomplex + theorem CategoryTheory.InjectiveResolution.exact₀ + def CategoryTheory.InjectiveResolution.iso + theorem CategoryTheory.InjectiveResolution.iso_hom_naturality + theorem CategoryTheory.InjectiveResolution.iso_inv_naturality +/- def CategoryTheory.InjectiveResolution.ofCocomplex + theorem CategoryTheory.InjectiveResolution.ofCocomplex_d_0_1 + theorem CategoryTheory.InjectiveResolution.ofCocomplex_exactAt_succ - theorem CategoryTheory.InjectiveResolution.ofCocomplex_sq_01_comm +/- theorem CategoryTheory.exact_f_d - def HomologicalComplex.Hom.HomologicalComplex.Hom.fromSingle₀InjectiveResolution Modified Mathlib/CategoryTheory/Abelian/RightDerived.lean - theorem CategoryTheory.Abelian.Functor.exact_of_map_injectiveResolution - theorem CategoryTheory.Abelian.Functor.preserves_exact_of_preservesFiniteLimits_of_mono - def CategoryTheory.Abelian.Functor.rightDerivedZeroIsoSelf - def CategoryTheory.Abelian.Functor.rightDerivedZeroToSelfApp - def CategoryTheory.Abelian.Functor.rightDerivedZeroToSelfAppInv - theorem CategoryTheory.Abelian.Functor.rightDerivedZeroToSelfAppInv_comp - def CategoryTheory.Abelian.Functor.rightDerivedZeroToSelfAppIso - theorem CategoryTheory.Abelian.Functor.rightDerivedZeroToSelfApp_comp_inv - theorem CategoryTheory.Abelian.Functor.rightDerivedZeroToSelf_natural + theorem CategoryTheory.Functor.isZero_rightDerived_obj_injective_succ - def CategoryTheory.Functor.rightDerived - def CategoryTheory.Functor.rightDerivedObjInjectiveSucc - def CategoryTheory.Functor.rightDerivedObjInjectiveZero - def CategoryTheory.Functor.rightDerivedObjIso + theorem CategoryTheory.Functor.rightDerivedZeroIsoSelf_hom_inv_id + theorem CategoryTheory.Functor.rightDerivedZeroIsoSelf_hom_inv_id_app + theorem CategoryTheory.Functor.rightDerivedZeroIsoSelf_inv_hom_id + theorem CategoryTheory.Functor.rightDerivedZeroIsoSelf_inv_hom_id_app +/- theorem CategoryTheory.Functor.rightDerived_map_eq + theorem CategoryTheory.InjectiveResolution.isoRightDerivedObj_hom_naturality + theorem CategoryTheory.InjectiveResolution.isoRightDerivedObj_inv_naturality + theorem CategoryTheory.InjectiveResolution.isoRightDerivedToHomotopyCategoryObj_hom_naturality + theorem CategoryTheory.InjectiveResolution.isoRightDerivedToHomotopyCategoryObj_inv_naturality + theorem CategoryTheory.InjectiveResolution.rightDerivedToHomotopyCategory_app_eq + theorem CategoryTheory.InjectiveResolution.rightDerived_app_eq + theorem CategoryTheory.InjectiveResolution.toRightDerivedZero'_comp_iCycles + theorem CategoryTheory.InjectiveResolution.toRightDerivedZero'_naturality + theorem CategoryTheory.InjectiveResolution.toRightDerivedZero_eq - def CategoryTheory.NatTrans.rightDerived + theorem CategoryTheory.NatTrans.rightDerivedToHomotopyCategory_comp + theorem CategoryTheory.NatTrans.rightDerivedToHomotopyCategory_id - theorem CategoryTheory.NatTrans.rightDerived_eq Modified Mathlib/CategoryTheory/Limits/Preserves/Shapes/Zero.lean + theorem CategoryTheory.Functor.map_isZero Modified Mathlib/CategoryTheory/Preadditive/InjectiveResolution.lean + theorem CategoryTheory.InjectiveResolution.cocomplex_exactAt_succ +/- theorem CategoryTheory.InjectiveResolution.complex_d_comp + theorem CategoryTheory.InjectiveResolution.exact_succ + def CategoryTheory.InjectiveResolution.isLimitKernelFork + def CategoryTheory.InjectiveResolution.kernelFork +/- def CategoryTheory.InjectiveResolution.self +/- theorem CategoryTheory.InjectiveResolution.ι_f_succ +/- theorem CategoryTheory.InjectiveResolution.ι_f_zero_comp_complex_d 2023-11-28 14:52:05 2bfea86 feat(CategoryTheory): the localized category of a product category (#8516) This PR develops the API for cartesian products of categories (natural isomorphisms, equivalences, morphism properties) in order to show that under simple assumptions, the localized category of a product of two categories identifies to a product of the localized categories. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/CategoryTheory/Functor/Currying.lean + theorem CategoryTheory.Functor.curry_obj_injective + theorem CategoryTheory.Functor.curry_obj_uncurry_obj + theorem CategoryTheory.Functor.flip_flip + theorem CategoryTheory.Functor.flip_injective + theorem CategoryTheory.Functor.uncurry_obj_curry_obj + theorem CategoryTheory.Functor.uncurry_obj_curry_obj_flip_flip' + theorem CategoryTheory.Functor.uncurry_obj_curry_obj_flip_flip + theorem CategoryTheory.Functor.uncurry_obj_injective Added Mathlib/CategoryTheory/Localization/Prod.lean + theorem CategoryTheory.Localization.Construction.prodIsLocalization + theorem CategoryTheory.Localization.StrictUniversalPropertyFixedTarget.prod_fac + theorem CategoryTheory.Localization.StrictUniversalPropertyFixedTarget.prod_fac₁ + theorem CategoryTheory.Localization.StrictUniversalPropertyFixedTarget.prod_fac₂ + theorem CategoryTheory.Localization.StrictUniversalPropertyFixedTarget.prod_uniq Modified Mathlib/CategoryTheory/MorphismProperty.lean + theorem CategoryTheory.MorphismProperty.IsInvertedBy.prod + def CategoryTheory.MorphismProperty.prod Modified Mathlib/CategoryTheory/Products/Basic.lean + def CategoryTheory.Equivalence.prod + def CategoryTheory.NatIso.prod 2023-11-28 14:52:03 b4ed581 feat(CategoryTheory): naturality of the connecting homomorphism of the snake lemma (#8490) In this PR, it is shown that the connecting homomorphism of the snake lemma is natural. ESTIMATED CHANGES Modified Mathlib/Algebra/Homology/ShortComplex/SnakeLemma.lean + def CategoryTheory.ShortComplex.SnakeInput.Hom.comp + def CategoryTheory.ShortComplex.SnakeInput.Hom.id + structure CategoryTheory.ShortComplex.SnakeInput.Hom + theorem CategoryTheory.ShortComplex.SnakeInput.comp_f₀ + theorem CategoryTheory.ShortComplex.SnakeInput.comp_f₁ + theorem CategoryTheory.ShortComplex.SnakeInput.comp_f₂ + theorem CategoryTheory.ShortComplex.SnakeInput.comp_f₃ + def CategoryTheory.ShortComplex.SnakeInput.functorL₁ + def CategoryTheory.ShortComplex.SnakeInput.functorL₂ + def CategoryTheory.ShortComplex.SnakeInput.functorL₃ + def CategoryTheory.ShortComplex.SnakeInput.functorL₉ + theorem CategoryTheory.ShortComplex.SnakeInput.id_f₀ + theorem CategoryTheory.ShortComplex.SnakeInput.id_f₁ + theorem CategoryTheory.ShortComplex.SnakeInput.id_f₂ + theorem CategoryTheory.ShortComplex.SnakeInput.id_f₃ + theorem CategoryTheory.ShortComplex.SnakeInput.naturality_δ + theorem CategoryTheory.ShortComplex.SnakeInput.naturality_φ₁ + theorem CategoryTheory.ShortComplex.SnakeInput.naturality_φ₂ 2023-11-28 14:12:21 4bfed3e feat: weights of Lie modules are linear functions (#8677) Since we have already proved Cartan subalgebras of Lie algebras with non-singular Killing forms are Abelian, the changes here mean that the following now works without any assumptions on characteristic: ```lean example {K L : Type*} [Field K] [LieRing L] [LieAlgebra K L] [FiniteDimensional K L] [LieAlgebra.IsKilling K L] (H : LieSubalgebra K L) [H.IsCartanSubalgebra] : LieModule.LinearWeights K H L := inferInstance ``` ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Lie/Weights/Basic.lean + theorem LieModule.exists_weightSpace_le_ker_of_isNoetherian + theorem LieModule.isNilpotent_toEndomorphism_sub_algebraMap +/- theorem LieModule.isNilpotent_toEndomorphism_weightSpace_zero Added Mathlib/Algebra/Lie/Weights/Linear.lean + def LieModule.linearWeight + theorem LieModule.trace_comp_toEndomorphism_weight_space_eq + theorem LieModule.zero_lt_finrank_weightSpace Modified Mathlib/RingTheory/Nilpotent.lean + theorem IsNilpotent.smul 2023-11-28 12:41:26 88b4f4c feat: Relax arguments of going-up theorems. (#8645) ESTIMATED CHANGES Modified Mathlib/RingTheory/Ideal/Over.lean + theorem Ideal.exists_ideal_comap_le_prime +/- theorem Ideal.exists_ideal_over_maximal_of_isIntegral - theorem Ideal.exists_ideal_over_prime_of_isIntegral' + theorem Ideal.exists_ideal_over_prime_of_isIntegral_of_isDomain + theorem Ideal.exists_ideal_over_prime_of_isIntegral_of_isPrime + theorem Ideal.map_eq_top_iff + theorem Ideal.map_eq_top_iff_of_ker_le 2023-11-28 11:57:53 baf3763 feat: `IsFractionRing R R` if `R` is a field. (#8641) ESTIMATED CHANGES Modified Mathlib/RingTheory/Localization/Away/Basic.lean Modified Mathlib/RingTheory/Localization/Basic.lean + theorem IsLocalization.at_units Modified Mathlib/RingTheory/Localization/FractionRing.lean - theorem FractionRing.isScalarTower_liftAlgebra 2023-11-28 11:15:44 65fce9b feat: Add lemmas about `Polynomial.scaleRoots`. (#8653) ESTIMATED CHANGES Modified Mathlib/Data/Polynomial/Degree/Definitions.lean + theorem Polynomial.natDegree_eq_of_natDegree_add_eq_zero + theorem Polynomial.natDegree_eq_of_natDegree_add_lt_left + theorem Polynomial.natDegree_eq_of_natDegree_add_lt_right Modified Mathlib/RingTheory/Polynomial/ScaleRoots.lean + theorem Polynomial.add_scaleRoots_of_natDegree_eq + theorem Polynomial.isCoprime_scaleRoots + theorem Polynomial.mul_scaleRoots' + theorem Polynomial.mul_scaleRoots + theorem Polynomial.mul_scaleRoots_of_noZeroDivisors + theorem Polynomial.one_scaleRoots + theorem Polynomial.scaleRoots_C + theorem Polynomial.scaleRoots_dvd' + theorem Polynomial.scaleRoots_dvd + theorem Polynomial.scaleRoots_dvd_iff + theorem Polynomial.scaleRoots_mul + theorem Polynomial.scaleRoots_one + theorem Polynomial.scaleRoots_zero 2023-11-28 09:41:02 39b23ff feat: Add `IsAlgebraic.inv_iff`. (#8651) ESTIMATED CHANGES Modified Mathlib/RingTheory/Algebraic.lean + theorem IsAlgebraic.invOf + theorem IsAlgebraic.invOf_iff + theorem IsAlgebraic.inv_iff 2023-11-28 08:56:19 666326c feat: add some results about IsCyclic (#8625) From flt-regular. ESTIMATED CHANGES Modified Mathlib/GroupTheory/SpecificGroups/Cyclic.lean + theorem isAddCyclic_additive_iff + theorem isCyclic_multiplicative_iff + theorem isCyclic_of_surjective 2023-11-28 08:01:11 3f88a47 refactor(Probability/Density): define pdf using rnDeriv (#8544) Defines `pdf` in terms of `rnDeriv`. Main definition change: ```lean /-- A random variable `X : Ω → E` is said to `HasPDF` with respect to the measure `ℙ` on `Ω` and `μ` on `E` if the push-forward measure of `ℙ` along `X` is absolutely continuous with respect to `μ` and they `HaveLebesgueDecomposition`. -/ class HasPDF {m : MeasurableSpace Ω} (X : Ω → E) (ℙ : Measure Ω) (μ : Measure E := by volume_tac) : Prop where pdf' : Measurable X ∧ HaveLebesgueDecomposition (map X ℙ) μ ∧ map X ℙ ≪ μ /-- If `X` is a random variable that `HasPDF X ℙ μ`, then `pdf X` is the Radon–Nikodym derivative of the push-forward measure of `ℙ` along `X` with respect to `μ`. -/ def pdf {_ : MeasurableSpace Ω} (X : Ω → E) (ℙ : Measure Ω) (μ : Measure E := by volume_tac) : E → ℝ≥0∞ := if HasPDF X ℙ μ then (map X ℙ).rnDeriv μ else 0 ``` The law of the unconscious statistician is first generalized to `rnDeriv` on a general Banach space (`∫ x, (μ.rnDeriv ν x).toReal • f x ∂ν = ∫ x, f x ∂μ`), and then proven for PDFs. [Zulip thread](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/Definition.20of.20pdf.20as.20rnDeriv) ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Decomposition/Lebesgue.lean + theorem MeasureTheory.Measure.haveLebesgueDecomposition_withDensity Modified Mathlib/MeasureTheory/Decomposition/RadonNikodym.lean + theorem MeasureTheory.integrable_rnDeriv_smul_iff + theorem MeasureTheory.integral_rnDeriv_smul + theorem MeasureTheory.lintegral_rnDeriv_mul + theorem MeasureTheory.withDensityᵥ_rnDeriv_smul Modified Mathlib/MeasureTheory/Measure/WithDensityVectorMeasure.lean + theorem MeasureTheory.withDensityᵥ_smul_eq_withDensityᵥ_withDensity' + theorem MeasureTheory.withDensityᵥ_smul_eq_withDensityᵥ_withDensity Modified Mathlib/Probability/Density.lean + theorem MeasureTheory.HasPDF.absolutelyContinuous + theorem MeasureTheory.HasPDF.aemeasurable + theorem MeasureTheory.HasPDF.congr' + theorem MeasureTheory.HasPDF.congr - theorem MeasureTheory.HasPDF.measurable + theorem MeasureTheory.HasPDF.quasiMeasurePreserving_of_measurable + theorem MeasureTheory.aemeasurable_of_pdf_ne_zero + theorem MeasureTheory.hasPDF_iff + theorem MeasureTheory.hasPDF_iff_of_aemeasurable + theorem MeasureTheory.hasPDF_of_map_eq_withDensity - theorem MeasureTheory.measurable_of_pdf_ne_zero + theorem MeasureTheory.pdf.IsUniform.absolutelyContinuous + theorem MeasureTheory.pdf.IsUniform.aemeasurable +/- theorem MeasureTheory.pdf.IsUniform.hasPDF + theorem MeasureTheory.pdf.IsUniform.hasPDF₀ +/- theorem MeasureTheory.pdf.IsUniform.integral_eq +/- theorem MeasureTheory.pdf.IsUniform.isProbabilityMeasure +/- theorem MeasureTheory.pdf.IsUniform.measure_preimage + theorem MeasureTheory.pdf.IsUniform.pdf_eq +/- theorem MeasureTheory.pdf.IsUniform.pdf_toReal_ae_eq +/- def MeasureTheory.pdf.IsUniform + theorem MeasureTheory.pdf.eq_of_map_eq_withDensity' + theorem MeasureTheory.pdf.eq_of_map_eq_withDensity - theorem MeasureTheory.pdf.hasPDF_iff - theorem MeasureTheory.pdf.hasPDF_iff_of_measurable - theorem MeasureTheory.pdf.haveLebesgueDecomposition_of_hasPDF - theorem MeasureTheory.pdf.integrable_iff_integrable_mul_pdf + theorem MeasureTheory.pdf.integrable_pdf_smul_iff - theorem MeasureTheory.pdf.integral_fun_mul_eq_integral + theorem MeasureTheory.pdf.integral_pdf_smul + theorem MeasureTheory.pdf.lintegral_pdf_mul - theorem MeasureTheory.pdf.map_absolutelyContinuous +/- theorem MeasureTheory.pdf.quasiMeasurePreserving_hasPDF - theorem MeasureTheory.pdf.to_quasiMeasurePreserving - theorem MeasureTheory.pdf.unique' - theorem MeasureTheory.pdf.unique + theorem MeasureTheory.pdf_def - theorem MeasureTheory.pdf_eq_zero_of_not_measurable + theorem MeasureTheory.pdf_of_not_aemeasurable + theorem MeasureTheory.pdf_of_not_haveLebesgueDecomposition - theorem MeasureTheory.pdf_undef + theorem MeasureTheory.set_lintegral_pdf_le_map + theorem MeasureTheory.withDensity_pdf_le_map +/- theorem Real.hasPDF_iff Modified Mathlib/Probability/Independence/Basic.lean 2023-11-28 07:37:32 d835056 feat: computation of the connecting homomorphism of the snake lemma in concrete categories (#8512) This PR provides a lemma `ShortComplex.SnakeInput.δ_apply` which allows the computation of the connecting homomorphism in concrete categories. Incidentally, we also deduce from previous results that functors which preserve homology preserve finite limits and finite colimits. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Homology/ShortComplex/ConcreteCategory.lean + theorem CategoryTheory.Preadditive.epi_iff_surjective' + theorem CategoryTheory.Preadditive.mono_iff_injective' + theorem CategoryTheory.ShortComplex.SnakeInput.δ_apply Added Mathlib/Algebra/Homology/ShortComplex/ExactFunctor.lean 2023-11-28 06:13:32 dc2eb24 chore: bump dependencies (#8671) ESTIMATED CHANGES Modified lake-manifest.json 2023-11-28 04:40:08 16f64a1 chore: build lean4checker with current toolchain (#8669) After leanprover/lean4#2766 lands, the git hash of will be embedded in every olean. `lean4checker` will thus reject oleans unless it was compiled on the same toolchain as they were! We may want to relax this later, but for now, since we are building `lean4checker` in CI anyway, let's just make sure it is on the same toolchain as mathlib. ESTIMATED CHANGES Modified .github/workflows/bors.yml Modified .github/workflows/build.yml Modified .github/workflows/build.yml.in Modified .github/workflows/build_fork.yml 2023-11-28 03:17:59 2577ef7 chore: bump for std4#241 (#6975) - [x] depends on: https://github.com/leanprover/std4/pull/241 ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Control/Traversable/Basic.lean Modified Mathlib/Data/List/Defs.lean Modified Mathlib/Init/Data/Nat/Bitwise.lean Modified Mathlib/Lean/Expr/Basic.lean - def Lean.Expr.constName - def Lean.Expr.getAppFnArgs Modified Mathlib/Mathport/Syntax.lean Modified Mathlib/Tactic.lean Modified Mathlib/Tactic/Common.lean Modified Mathlib/Tactic/Lift.lean Deleted Mathlib/Tactic/PermuteGoals.lean - def Mathlib.Tactic.splitGoalsAndGetNth Modified lake-manifest.json Modified scripts/style-exceptions.txt Deleted test/PermuteGoals.lean Modified test/classical.lean Modified test/lift.lean Modified test/solve_by_elim/basic.lean 2023-11-28 01:23:25 aa204e9 Update docstring of `squeeze_one_norm'` (#8667) `squeeze_one_norm'` and `squeeze_zero_norm'` had the same docstring. The docstring of `squeeze_zero_norm'` was strictly speaking incorrect (writing `1` instead of `0`). The docstring of `squeeze_one_norm'` was correct but perhaps this change makes it easier for people to notice the difference and what `E` is. ESTIMATED CHANGES Modified Mathlib/Analysis/Normed/Group/Basic.lean 2023-11-28 00:02:51 7cc262f fix(Cache): correctly handle local copies of `Mathlib` (#8662) This parses the `lake-manifest` to work out where mathlib is. Previously this assumed it was in `.lake/packages`, but this is only true of `git` packages. As a result, it would fail with: ``` uncaught exception: no such file or directory (error code: 2) file: .lake/packages/mathlib/lakefile.lean ``` Tested on a blank project created with `lake new test math`, with `require mathlib from "../mathlib4"` in the lakefile. ESTIMATED CHANGES Modified Cache/Hashing.lean Modified Cache/IO.lean +/- def Cache.IO.getPackageDirs +/- def Cache.IO.mathlibDepPath + def Cache.IO.parseMathlibDepPath Modified Cache/Requests.lean 2023-11-27 21:37:15 3c30dbb feat: a family of generalized eigenvalues for a commuting linear family of endomorphims must be linear (#8656) ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/Eigenspace/Basic.lean + theorem Module.End.iSup_generalizedEigenspace_inf_le_add + theorem Module.End.iSup_generalizedEigenspace_le_smul + theorem Module.End.map_add_of_iInf_generalizedEigenspace_ne_bot_of_commute + theorem Module.End.map_smul_of_iInf_generalizedEigenspace_ne_bot 2023-11-27 20:16:25 c77ae20 feat: bounds for Dirichlet characters (#8449) This adds `NumberTheory.DirichletCharacter.Bounds` containing proofs of `‖χ a‖ = 1` if `a` is a unit and `‖χ a‖ ≤ 1` in general, where `χ` is a Dirichlet character with values in a normed field. There are also two API lemmas added elsewhere that are used in the proofs. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/GroupPower/Order.lean + theorem pow_eq_one_iff_of_nonneg Modified Mathlib/FieldTheory/Finite/Basic.lean Added Mathlib/NumberTheory/DirichletCharacter/Bounds.lean + theorem DirichletCharacter.norm_le_one + theorem DirichletCharacter.unit_norm_eq_one 2023-11-27 18:31:13 313ebb4 feat: Add `AlgHom.map_adjoin_singleton`. (#8655) ESTIMATED CHANGES Modified Mathlib/RingTheory/Adjoin/Basic.lean + theorem AlgHom.map_adjoin_singleton 2023-11-27 17:05:45 fa1d892 feat: Add `Submodule.restrictScalars_mul`. (#8649) ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/Operations.lean + theorem Submodule.restrictScalars_mul 2023-11-27 17:05:43 27d3a24 feat: Add `not_isNilpotent_one`. (#8648) ESTIMATED CHANGES Modified Mathlib/RingTheory/Nilpotent.lean + theorem not_isNilpotent_one 2023-11-27 17:05:42 098e254 feat(Data/Set/Lattice): generalize `Set.iUnion_univ_pi` (#8647) Allow `ι : Type*` to depend on `a : α`. ESTIMATED CHANGES Modified Mathlib/Data/Set/Lattice.lean +/- theorem Set.iUnion_univ_pi 2023-11-27 17:05:41 04c2181 feat(Topology/Bornology): add convenience lemmas (#8640) Add `Bornology.IsBounded.image_fst`, `Bornology.IsBounded.image_snd`, and `Bornology.IsBounded.image_eval`. ESTIMATED CHANGES Modified Mathlib/Topology/Bornology/Constructions.lean + theorem Bornology.IsBounded.image_eval + theorem Bornology.IsBounded.image_fst + theorem Bornology.IsBounded.image_snd 2023-11-27 16:21:01 187f84f feat: remove an assumption (#8646) The assumption `hn` in [finEquivZpowers_symm_apply](https://leanprover-community.github.io/mathlib4_docs/Mathlib/GroupTheory/OrderOfElement.html#finEquivZpowers_symm_apply) always holds. ESTIMATED CHANGES Modified Mathlib/GroupTheory/OrderOfElement.lean +/- theorem finEquivZpowers_symm_apply 2023-11-27 15:05:53 b70e89f feat(SpecialFunctions/Log): add `tendsto_log_nhdsWithin_zero_right` (#8554) I use this lemma several times in an external project. Also, this lemma doesn't rely on our non-canonical extension of `Real.log` to negative numbers. ESTIMATED CHANGES Modified Mathlib/Analysis/SpecialFunctions/Log/Basic.lean + theorem Real.tendsto_log_nhdsWithin_zero_right 2023-11-27 14:14:00 1412ef2 feat(LinearAlgebra/TensorProduct): add `liftAddHom` (#8584) This new `TensorProduct.liftAddHom` doesn't require bilinearity, only that scalar multiplication can be moved between the arguments. In theory this could be used to golf some later definitions, but in practice this resulted in performance regressions (#8519). For now we just leave a TODO, so that the performance/deduplication tradeoff doesn't hold up further mathematics. ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/TensorProduct.lean + def TensorProduct.liftAddHom + theorem TensorProduct.liftAddHom_tmul 2023-11-27 11:28:51 c1f4e11 chore: update the nightly-with-mathlib branch at leanprover/lean4 (#8628) This should result in the `nightly-with-mathlib` branch at leanprover/lean4 always being: * the latest commit which was released as a nightly `nightly-YYYY-MM-DD` * on which Mathlib CI has completed, using the `nightly-testing` branch * and hence Mathlib has a `nightly-testing-YYYY-MM-DD` branch using that nightly. If this works as planned, `nightly-with-mathlib` will become the new recommended base branch for Lean PRs that require Mathlib testing. (It will still work if you base off `nightly`, you might just get a message about Mathlib not being ready. And if you base off `master` you might get a message about needing to rebase to get Mathlib testing.) ESTIMATED CHANGES Modified .github/workflows/nightly_detect_failure.yml 2023-11-27 11:06:42 efd2961 chore: merge master into nightly-testing via cron, not on every commit (#8627) In the current setup, every commit to master is being merged into `nightly-testing`. This results in the cancellation of the previous CI job running on `nightly-testing`. If commits to master land often enough, this means that successful results never occur, and so the `nightly-testing-YYYY-MM-DD` branch is never created, even if `nightly-testing` would actually get green CI. This changes to only merging master on a regular basis, long enough for CI to complete. ESTIMATED CHANGES Modified .github/workflows/nightly_merge_master.yml 2023-11-27 11:06:40 319c50b chore: `ValuedCsp` and `ValuedCsp.Instance` changed from `def` to `abbrev` (#8623) ESTIMATED CHANGES Modified Mathlib/Combinatorics/Optimization/ValuedCSP.lean - def ValuedCsp.Instance - def ValuedCsp 2023-11-27 10:05:04 3f5910b feat(Data/Finset/Card): add converse to some existing theorems (#8515) - Add `Multiset.toFinset_card_eq_card_iff_nodup` which is converse to `Multiset.toFinset_card_of_nodup` (credits: @Ruben-VandeVelde) - Add `Finset.card_eq_of_equiv_fin` and `Finset.card_eq_of_equiv` which are converse to `Finset.equivFinOfCardEq` and `Finset.equivOfCardEq`, respectively. I'm not sure for the necessarily of these two, since they are also easy corollaries of `Fintype.card_eq` and `Fintype.card_coe`. ESTIMATED CHANGES Modified Mathlib/Data/Finset/Card.lean + theorem Multiset.dedup_card_eq_card_iff_nodup + theorem Multiset.toFinset_card_eq_card_iff_nodup Modified Mathlib/Data/Fintype/Card.lean + theorem Finset.card_eq_of_equiv + theorem Finset.card_eq_of_equiv_fin + theorem Finset.card_eq_of_equiv_fintype 2023-11-27 10:05:03 4b30f25 refactor(Data/Matrix/Basic): use a defeq for scalar that matches its docstring (#8115) This changes the defeq from `scalar a = a • 1` to `scalar a = diagonal fun _ => a`, which has the nice bonus of making `algebraMap_eq_diagonal` true by `rfl`. As a result, we need a new `smul_one_eq_diagonal` lemma to rewrite `diagonal fun _ => a` back into `a • 1`, along with some variants for convenience. In the long term we could generalize this to non-unital rings, now that it needs no `1`. ESTIMATED CHANGES Modified Mathlib/Data/Matrix/Basic.lean - theorem Matrix.algebraMap_eq_smul - theorem Matrix.coe_scalar +/- theorem Matrix.mul_mul_right + theorem Matrix.op_smul_eq_mul_diagonal + theorem Matrix.op_smul_one_eq_diagonal - theorem Matrix.scalar.commute + theorem Matrix.scalar_apply - theorem Matrix.scalar_apply_eq - theorem Matrix.scalar_apply_ne + theorem Matrix.scalar_commute +/- theorem Matrix.scalar_inj +/- theorem Matrix.smul_eq_mul_diagonal + theorem Matrix.smul_one_eq_diagonal Modified Mathlib/LinearAlgebra/Charpoly/ToMatrix.lean Modified Mathlib/LinearAlgebra/Matrix/Charpoly/Basic.lean Modified Mathlib/LinearAlgebra/Matrix/Charpoly/Coeff.lean Modified Mathlib/LinearAlgebra/Matrix/Charpoly/LinearMap.lean + theorem Matrix.Represents.algebraMap Modified Mathlib/LinearAlgebra/Matrix/Circulant.lean Modified Mathlib/LinearAlgebra/Matrix/ToLin.lean Modified Mathlib/RingTheory/Trace.lean 2023-11-27 09:11:38 55eb812 chore(GroupTheory/Congruence): small cleanups (#8314) Switches to `where` notation in a couple of places and removes a default `lt` field. Also replaces uses of `.r` with `coeFn`, since the latter is declared simp-normal by this file. ESTIMATED CHANGES Modified Mathlib/GroupTheory/Congruence.lean + theorem Con.coe_inf + theorem Con.coe_inj + theorem Con.coe_sInf +/- theorem Con.conGen_le +/- theorem Con.ext' - theorem Con.ext'_iff - theorem Con.inf_def - theorem Con.sInf_def +/- theorem Con.sup_def Modified Mathlib/GroupTheory/CoprodI.lean 2023-11-26 22:11:30 83d4f22 chore: add docs + alias for `prod_bijective` (#8439) ESTIMATED CHANGES Modified Mathlib/Algebra/BigOperators/Basic.lean 2023-11-26 21:03:04 4e2498e chore: implement simp_rw config matching better (#8592) ESTIMATED CHANGES Modified Mathlib/Tactic/SimpRw.lean 2023-11-26 13:22:21 12d7898 chore: bump dependencies (#8626) ESTIMATED CHANGES Modified lake-manifest.json 2023-11-26 04:56:08 c159834 fix: patch for std4#203 (more sub lemmas for `Nat`) (#6216) ESTIMATED CHANGES Modified Archive/Wiedijk100Theorems/SumOfPrimeReciprocalsDiverges.lean Modified Mathlib/AlgebraicTopology/DoldKan/Homotopies.lean Modified Mathlib/Analysis/BoundedVariation.lean Modified Mathlib/Control/Random.lean Modified Mathlib/Data/Fin/Basic.lean Modified Mathlib/Data/Fin/Interval.lean Modified Mathlib/Data/Nat/Basic.lean +/- theorem Nat.add_succ_sub_one +/- theorem Nat.succ_add_sub_one Modified Mathlib/Data/Nat/Factorial/Cast.lean Modified Mathlib/Data/Nat/Order/Basic.lean Modified Mathlib/Data/Polynomial/Derivative.lean Modified Mathlib/Data/Stream/Init.lean Modified Mathlib/Data/ZMod/Basic.lean Modified Mathlib/Init/Data/Nat/Lemmas.lean Modified Mathlib/NumberTheory/Cyclotomic/Discriminant.lean Modified Mathlib/NumberTheory/LegendreSymbol/GaussEisensteinLemmas.lean Modified Mathlib/NumberTheory/Wilson.lean Modified Mathlib/Order/JordanHolder.lean Modified Mathlib/RingTheory/Polynomial/Eisenstein/IsIntegral.lean Modified Mathlib/RingTheory/Polynomial/Hermite/Basic.lean Modified Mathlib/RingTheory/Polynomial/Vieta.lean Modified lake-manifest.json 2023-11-25 18:19:04 632ea77 chore: delete `LinearMap.extendScalars` which duplicates `LinearMap.baseChange` (#8617) For consistency, we also rename `Submodule.extendScalars` to `Submodule.baseChange` and likewise for `LieSubmodule`. ESTIMATED CHANGES Modified Mathlib/Algebra/Lie/BaseChange.lean + theorem LieModule.toEndomorphism_baseChange - theorem LieModule.toEndomorphism_extendScalars + def LieSubmodule.baseChange + theorem LieSubmodule.baseChange_bot + theorem LieSubmodule.baseChange_top + theorem LieSubmodule.coe_baseChange - theorem LieSubmodule.coe_extendScalars - def LieSubmodule.extendScalars - theorem LieSubmodule.extendScalars_bot - theorem LieSubmodule.extendScalars_top + theorem LieSubmodule.lie_baseChange - theorem LieSubmodule.lie_extendScalars + theorem LieSubmodule.mem_baseChange_iff - theorem LieSubmodule.mem_extendScalars_iff + theorem LieSubmodule.tmul_mem_baseChange_of_mem - theorem LieSubmodule.tmul_mem_extendScalars_of_mem Modified Mathlib/Algebra/Lie/Killing.lean Modified Mathlib/Algebra/Lie/Nilpotent.lean + theorem LieSubmodule.lowerCentralSeries_tensor_eq_baseChange - theorem LieSubmodule.lowerCentralSeries_tensor_eq_extendScalars Modified Mathlib/LinearAlgebra/TensorProduct/Tower.lean - def LinearMap.extendScalars - theorem LinearMap.extendScalars_comp - theorem LinearMap.extendScalars_tmul + def Submodule.baseChange + theorem Submodule.baseChange_bot + theorem Submodule.baseChange_span + theorem Submodule.baseChange_top - def Submodule.extendScalars - theorem Submodule.extendScalars_bot - theorem Submodule.extendScalars_span - theorem Submodule.extendScalars_top + theorem Submodule.tmul_mem_baseChange_of_mem - theorem Submodule.tmul_mem_extendScalars_of_mem Modified Mathlib/LinearAlgebra/Trace.lean + theorem LinearMap.trace_baseChange - theorem LinearMap.trace_extendScalars Modified Mathlib/RingTheory/TensorProduct.lean + theorem LinearMap.baseChange_comp + theorem LinearMap.toMatrix_baseChange - theorem LinearMap.toMatrix_extendScalars 2023-11-25 17:55:53 4b97b73 doc(Computability/Halting): Mark named theorems (#8577) Mark these named theorems: Rice, Downward and Upward Skolem ESTIMATED CHANGES Modified Mathlib/Computability/Halting.lean Modified Mathlib/Computability/TuringMachine.lean Modified Mathlib/ModelTheory/Satisfiability.lean Modified Mathlib/ModelTheory/Skolem.lean 2023-11-25 17:07:36 a538c32 feat: prove an upper bound on bitwise operations (#8598) A simple result which shows that if `x` and `y` fit within `n` bits, then the result of any bitwise operation on `x` and `y` also fits within `n` bits. ESTIMATED CHANGES Modified Mathlib/Data/Nat/Bitwise.lean + theorem Nat.append_lt + theorem Nat.bit_lt_two_pow_succ_iff + theorem Nat.bitwise_lt + theorem Nat.shiftLeft_lt 2023-11-25 15:38:44 706be65 doc: add a better docstring for `fun₀` (#8601) ESTIMATED CHANGES Modified Mathlib/Data/Finsupp/Notation.lean 2023-11-25 15:15:58 1c6e8b5 chore: Fix universe (misprint in Portmanteau.lean). (#8620) In my earlier PR #8097 there there was a typo `variable {Ω : Type}` which should have been a universe polymorphic `variable {Ω : Type*}`. This PR fixes 1 character. Apologies! ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Measure/Portmanteau.lean 2023-11-25 10:19:50 5ddf761 feat(AlgebraicGeometry): the big Zariski site (#8549) This PR defines the Zariski topology on the category of schemes. It may have some applications, but it should also be considered as a test case for the Grothendieck topologies API in order to check that is general enough, in particular in terms of universes: a priori, the category which shall form the small étale site of a scheme will have the same universe parameters. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/AlgebraicGeometry/OpenImmersion.lean + def AlgebraicGeometry.Scheme.OpenCover.pullbackCover' Added Mathlib/AlgebraicGeometry/Sites/BigZariski.lean + def AlgebraicGeometry.Scheme.zariskiPretopology + theorem AlgebraicGeometry.Scheme.zariskiPretopology_openCover + theorem AlgebraicGeometry.Scheme.zariskiTopology_openCover 2023-11-25 10:19:49 0ac02f4 chore: better phrasing of pointwise convergence of indicators (#8331) In some recently added results, pointwise convergence of constant indicators of sets was phrased in terms of `Tendsto` in the product topology. The relevant notion is more elementary, however: it is (usually) equivalent to eventually constantness of the set membership of any point; in particular the topology of the underlying set plays almost no role (apart from mild separation axioms). This PR adds equivalences between the conditions and refactors some results. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/MeasureTheory/Constructions/BorelSpace/Metrizable.lean Modified Mathlib/MeasureTheory/Integral/Indicator.lean Modified Mathlib/MeasureTheory/Integral/Lebesgue.lean Added Mathlib/Topology/IndicatorConstPointwise.lean + theorem tendsto_indicator_const_apply_iff_eventually' + theorem tendsto_indicator_const_apply_iff_eventually + theorem tendsto_indicator_const_iff_forall_eventually' + theorem tendsto_indicator_const_iff_forall_eventually + theorem tendsto_indicator_const_iff_tendsto_pi_pure' + theorem tendsto_indicator_const_iff_tendsto_pi_pure + theorem tendsto_ite 2023-11-25 10:19:48 cfedb30 perf: process imported `#align`s lazily (#8199) ESTIMATED CHANGES Modified Mathlib/Mathport/Rename.lean Modified scripts/bench/temci-config.run.yml 2023-11-25 09:44:15 e9d46c6 feat(CategoryTheory): description of products and pullbacks in concrete categories (#8507) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Homology/ModuleCat.lean Modified Mathlib/CategoryTheory/Limits/ConcreteCategory.lean - def CategoryTheory.Limits.Concrete.multiequalizerEquivAux - theorem CategoryTheory.Limits.Concrete.multiequalizerEquiv_apply - theorem CategoryTheory.Limits.Concrete.multiequalizer_ext - theorem CategoryTheory.Limits.Concrete.widePullback_ext' - theorem CategoryTheory.Limits.Concrete.widePullback_ext - theorem CategoryTheory.Limits.Concrete.widePushout_exists_rep' - theorem CategoryTheory.Limits.Concrete.widePushout_exists_rep - theorem CategoryTheory.Limits.cokernel_funext Modified Mathlib/CategoryTheory/Limits/Shapes/BinaryProducts.lean Added Mathlib/CategoryTheory/Limits/Shapes/ConcreteCategory.lean + theorem CategoryTheory.Limits.Concrete.cokernel_funext + def CategoryTheory.Limits.Concrete.multiequalizerEquivAux + theorem CategoryTheory.Limits.Concrete.multiequalizerEquiv_apply + theorem CategoryTheory.Limits.Concrete.multiequalizer_ext + theorem CategoryTheory.Limits.Concrete.prodEquiv_apply_fst + theorem CategoryTheory.Limits.Concrete.prodEquiv_apply_snd + theorem CategoryTheory.Limits.Concrete.prodEquiv_symm_apply_fst + theorem CategoryTheory.Limits.Concrete.prodEquiv_symm_apply_snd + theorem CategoryTheory.Limits.Concrete.productEquiv_apply_apply + theorem CategoryTheory.Limits.Concrete.productEquiv_symm_apply_π + theorem CategoryTheory.Limits.Concrete.pullbackMk_fst + theorem CategoryTheory.Limits.Concrete.pullbackMk_snd + theorem CategoryTheory.Limits.Concrete.pullbackMk_surjective + theorem CategoryTheory.Limits.Concrete.widePullback_ext' + theorem CategoryTheory.Limits.Concrete.widePullback_ext + theorem CategoryTheory.Limits.Concrete.widePushout_exists_rep' + theorem CategoryTheory.Limits.Concrete.widePushout_exists_rep Modified Mathlib/CategoryTheory/Limits/VanKampen.lean Modified Mathlib/CategoryTheory/Sites/Sheafification.lean Modified Mathlib/Topology/Category/TopCat/Limits/Products.lean 2023-11-24 23:28:47 a785b32 feat: Asymptotic order of divide-and-conquer recurrences (Akra-Bazzi theorem) (#6583) This PR proves the [Akra-Bazzi theorem](https://en.wikipedia.org/wiki/Akra%E2%80%93Bazzi_method), which gives the asymptotic order of divide-and-conquer recurrences of the form ``` T n = (∑ i in Fin k, a i * T (r i n)) + g n ``` where `T : ℕ → ℝ`, and where `r i n` is close to `b i * n` for a set of coefficients `b : Fin k → ℝ`. These recurrences arise mainly in the analysis of divide-and-conquer algorithms such as mergesort or Strassen's algorithm for matrix multiplication. Note that the traditional proof first proves a continuous version (i.e. for `T : ℝ → ℝ`) and then discretizes it to get a version that is relevant for algorithms. Here we prove the discrete version directly, which shortens the proof considerably. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Analysis/SpecificLimits/Basic.lean + theorem tendsto_nat_floor_mul_atTop Added Mathlib/Computability/AkraBazzi/AkraBazzi.lean + theorem AkraBazziRecurrence.T_isBigO_smoothingFn_mul_asympBound + theorem AkraBazziRecurrence.T_nonneg + theorem AkraBazziRecurrence.T_pos + theorem AkraBazziRecurrence.asympBound_def' + theorem AkraBazziRecurrence.asympBound_def + theorem AkraBazziRecurrence.asympBound_pos + theorem AkraBazziRecurrence.base_nonempty + theorem AkraBazziRecurrence.bi_min_div_two_lt_one + theorem AkraBazziRecurrence.bi_min_div_two_pos + theorem AkraBazziRecurrence.continuous_sumCoeffsExp + theorem AkraBazziRecurrence.deriv_smoothingFn + theorem AkraBazziRecurrence.differentiableAt_one_add_smoothingFn + theorem AkraBazziRecurrence.differentiableAt_one_sub_smoothingFn + theorem AkraBazziRecurrence.differentiableAt_smoothingFn + theorem AkraBazziRecurrence.differentiableOn_one_add_smoothingFn + theorem AkraBazziRecurrence.differentiableOn_one_sub_smoothingFn + theorem AkraBazziRecurrence.dist_r_b' + theorem AkraBazziRecurrence.eventually_asympBound_pos + theorem AkraBazziRecurrence.eventually_asympBound_r_pos + theorem AkraBazziRecurrence.eventually_atTop_sumTransform_ge + theorem AkraBazziRecurrence.eventually_atTop_sumTransform_le + theorem AkraBazziRecurrence.eventually_b_le_r + theorem AkraBazziRecurrence.eventually_bi_mul_le_r + theorem AkraBazziRecurrence.eventually_deriv_one_add_smoothingFn + theorem AkraBazziRecurrence.eventually_deriv_one_sub_smoothingFn + theorem AkraBazziRecurrence.eventually_deriv_rpow_p_mul_one_add_smoothingFn + theorem AkraBazziRecurrence.eventually_deriv_rpow_p_mul_one_sub_smoothingFn + theorem AkraBazziRecurrence.eventually_log_b_mul_pos + theorem AkraBazziRecurrence.eventually_one_add_smoothingFn_nonneg + theorem AkraBazziRecurrence.eventually_one_add_smoothingFn_pos + theorem AkraBazziRecurrence.eventually_one_add_smoothingFn_r_pos + theorem AkraBazziRecurrence.eventually_one_sub_smoothingFn_gt_const + theorem AkraBazziRecurrence.eventually_one_sub_smoothingFn_gt_const_real + theorem AkraBazziRecurrence.eventually_one_sub_smoothingFn_nonneg + theorem AkraBazziRecurrence.eventually_one_sub_smoothingFn_pos + theorem AkraBazziRecurrence.eventually_one_sub_smoothingFn_pos_real + theorem AkraBazziRecurrence.eventually_one_sub_smoothingFn_r_pos + theorem AkraBazziRecurrence.eventually_r_ge + theorem AkraBazziRecurrence.eventually_r_le_b + theorem AkraBazziRecurrence.eventually_r_lt_n + theorem AkraBazziRecurrence.eventually_r_pos + theorem AkraBazziRecurrence.exists_eventually_const_mul_le_r + theorem AkraBazziRecurrence.exists_eventually_r_le_const_mul + theorem AkraBazziRecurrence.growsPolynomially_deriv_rpow_p_mul_one_add_smoothingFn + theorem AkraBazziRecurrence.growsPolynomially_deriv_rpow_p_mul_one_sub_smoothingFn + theorem AkraBazziRecurrence.growsPolynomially_one_add_smoothingFn + theorem AkraBazziRecurrence.growsPolynomially_one_sub_smoothingFn + theorem AkraBazziRecurrence.injective_sumCoeffsExp + theorem AkraBazziRecurrence.isBigO_apply_r_sub_b + theorem AkraBazziRecurrence.isBigO_asympBound + theorem AkraBazziRecurrence.isBigO_symm_asympBound + theorem AkraBazziRecurrence.isEquivalent_deriv_rpow_p_mul_one_add_smoothingFn + theorem AkraBazziRecurrence.isEquivalent_deriv_rpow_p_mul_one_sub_smoothingFn + theorem AkraBazziRecurrence.isEquivalent_one_add_smoothingFn_one + theorem AkraBazziRecurrence.isEquivalent_one_sub_smoothingFn_one + theorem AkraBazziRecurrence.isEquivalent_smoothingFn_sub_self + theorem AkraBazziRecurrence.isLittleO_deriv_one_add_smoothingFn + theorem AkraBazziRecurrence.isLittleO_deriv_one_sub_smoothingFn + theorem AkraBazziRecurrence.isLittleO_deriv_smoothingFn + theorem AkraBazziRecurrence.isLittleO_self_div_log_id + theorem AkraBazziRecurrence.isLittleO_smoothingFn_one + theorem AkraBazziRecurrence.isTheta_asympBound + theorem AkraBazziRecurrence.isTheta_deriv_rpow_p_mul_one_add_smoothingFn + theorem AkraBazziRecurrence.isTheta_deriv_rpow_p_mul_one_sub_smoothingFn + theorem AkraBazziRecurrence.isTheta_smoothingFn_sub_self + theorem AkraBazziRecurrence.max_bi_le + theorem AkraBazziRecurrence.min_bi_le + theorem AkraBazziRecurrence.one_add_smoothingFn_le_two + theorem AkraBazziRecurrence.one_mem_range_sumCoeffsExp + theorem AkraBazziRecurrence.rpow_p_mul_one_add_smoothingFn_ge + theorem AkraBazziRecurrence.rpow_p_mul_one_sub_smoothingFn_le + theorem AkraBazziRecurrence.smoothingFn_mul_asympBound_isBigO_T + theorem AkraBazziRecurrence.strictAntiOn_one_add_smoothingFn + theorem AkraBazziRecurrence.strictAntiOn_smoothingFn + theorem AkraBazziRecurrence.strictAnti_sumCoeffsExp + theorem AkraBazziRecurrence.strictMonoOn_one_sub_smoothingFn + theorem AkraBazziRecurrence.sumCoeffsExp_p_eq_one + theorem AkraBazziRecurrence.sumTransform_def + theorem AkraBazziRecurrence.tendsto_atTop_r + theorem AkraBazziRecurrence.tendsto_atTop_r_real + theorem AkraBazziRecurrence.tendsto_atTop_sumCoeffsExp + theorem AkraBazziRecurrence.tendsto_zero_sumCoeffsExp + structure AkraBazziRecurrence Added Mathlib/Computability/AkraBazzi/GrowsPolynomially.lean + theorem AkraBazziRecurrence.GrowsPolynomially.add_isLittleO + theorem AkraBazziRecurrence.GrowsPolynomially.congr_of_eventuallyEq + theorem AkraBazziRecurrence.GrowsPolynomially.const_mul + theorem AkraBazziRecurrence.GrowsPolynomially.eventually_atTop_ge + theorem AkraBazziRecurrence.GrowsPolynomially.eventually_atTop_ge_nat + theorem AkraBazziRecurrence.GrowsPolynomially.eventually_atTop_le + theorem AkraBazziRecurrence.GrowsPolynomially.eventually_atTop_le_nat + theorem AkraBazziRecurrence.GrowsPolynomially.eventually_atTop_nonneg_or_nonpos + theorem AkraBazziRecurrence.GrowsPolynomially.eventually_atTop_zero_or_pos_or_neg + theorem AkraBazziRecurrence.GrowsPolynomially.eventually_zero_of_frequently_zero + theorem AkraBazziRecurrence.GrowsPolynomially.iff_eventuallyEq + theorem AkraBazziRecurrence.GrowsPolynomially.of_isEquivalent + theorem AkraBazziRecurrence.GrowsPolynomially.of_isEquivalent_const + theorem AkraBazziRecurrence.GrowsPolynomially.of_isTheta + def AkraBazziRecurrence.GrowsPolynomially + theorem AkraBazziRecurrence.growsPolynomially_const + theorem AkraBazziRecurrence.growsPolynomially_id + theorem AkraBazziRecurrence.growsPolynomially_log + theorem AkraBazziRecurrence.growsPolynomially_pow + theorem AkraBazziRecurrence.growsPolynomially_rpow + theorem AkraBazziRecurrence.growsPolynomially_zpow 2023-11-24 22:08:35 83613d2 refactor(CategoryTheory/Sites): continuous functors (#8408) This PR introduces the typeclass `Functor.IsContinuous` which says that the precomposition with a functor preserves the sheaf condition for Grothendieck topologies. It slightly refactors the previous main theorem about `CoverPreserving` and `CompatiblePreserving` functors: it now states that such functors are continuous. The *pushforward* functor for a continuous functor is defined under the `Functor.IsContinuous` assumption rather than the combination of both `CoverPreserving` and `CompatiblePreserving`. The property `CoverLifting` is renamed `IsCocontinuous` and it is made a class. The property `IsCoverDense` is also made a class. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/CategoryTheory/Sites/CoverLifting.lean - structure CategoryTheory.CoverLifting + theorem CategoryTheory.Functor.cover_lift + def CategoryTheory.Functor.pushforwardContinuousSheafificationCompatibility + theorem CategoryTheory.Functor.pushforwardContinuousSheafificationCompatibility_hom_app_val + def CategoryTheory.Functor.sheafPushforwardCocontinuous + theorem CategoryTheory.Functor.toSheafify_pullbackSheafificationCompatibility - def CategoryTheory.RanIsSheafOfCoverLifting.getSection - theorem CategoryTheory.RanIsSheafOfCoverLifting.getSection_commute - theorem CategoryTheory.RanIsSheafOfCoverLifting.getSection_isAmalgamation - theorem CategoryTheory.RanIsSheafOfCoverLifting.getSection_is_unique - def CategoryTheory.RanIsSheafOfCoverLifting.gluedLimitCone - theorem CategoryTheory.RanIsSheafOfCoverLifting.gluedLimitCone_π_app - def CategoryTheory.RanIsSheafOfCoverLifting.gluedSection - theorem CategoryTheory.RanIsSheafOfCoverLifting.gluedSection_isAmalgamation - theorem CategoryTheory.RanIsSheafOfCoverLifting.gluedSection_is_unique - theorem CategoryTheory.RanIsSheafOfCoverLifting.helper - def CategoryTheory.RanIsSheafOfCoverLifting.pulledbackFamily - theorem CategoryTheory.RanIsSheafOfCoverLifting.pulledbackFamily_apply + def CategoryTheory.RanIsSheafOfIsCocontinuous.getSection + theorem CategoryTheory.RanIsSheafOfIsCocontinuous.getSection_commute + theorem CategoryTheory.RanIsSheafOfIsCocontinuous.getSection_isAmalgamation + theorem CategoryTheory.RanIsSheafOfIsCocontinuous.getSection_is_unique + def CategoryTheory.RanIsSheafOfIsCocontinuous.gluedLimitCone + theorem CategoryTheory.RanIsSheafOfIsCocontinuous.gluedLimitCone_π_app + def CategoryTheory.RanIsSheafOfIsCocontinuous.gluedSection + theorem CategoryTheory.RanIsSheafOfIsCocontinuous.gluedSection_isAmalgamation + theorem CategoryTheory.RanIsSheafOfIsCocontinuous.gluedSection_is_unique + theorem CategoryTheory.RanIsSheafOfIsCocontinuous.helper + def CategoryTheory.RanIsSheafOfIsCocontinuous.pulledbackFamily + theorem CategoryTheory.RanIsSheafOfIsCocontinuous.pulledbackFamily_apply - def CategoryTheory.Sites.copullback - def CategoryTheory.Sites.pullbackSheafificationCompatibility - theorem CategoryTheory.Sites.pullbackSheafificationCompatibility_hom_app_val - theorem CategoryTheory.Sites.toSheafify_pullbackSheafificationCompatibility - theorem CategoryTheory.compCoverLifting - theorem CategoryTheory.idCoverLifting + theorem CategoryTheory.isCocontinuous_comp - theorem CategoryTheory.ran_isSheaf_of_coverLifting + theorem CategoryTheory.ran_isSheaf_of_isCocontinuous Modified Mathlib/CategoryTheory/Sites/CoverPreserving.lean + theorem CategoryTheory.Functor.isContinuous_comp' + theorem CategoryTheory.Functor.isContinuous_comp + theorem CategoryTheory.Functor.isContinuous_of_coverPreserving + theorem CategoryTheory.Functor.isContinuous_of_iso + theorem CategoryTheory.Functor.op_comp_isSheaf + theorem CategoryTheory.Functor.op_comp_isSheafOfTypes + def CategoryTheory.Functor.sheafPushforwardContinuous - def CategoryTheory.Sites.pullback - def CategoryTheory.pullbackSheaf - theorem CategoryTheory.pullback_isSheaf_of_coverPreserving Modified Mathlib/CategoryTheory/Sites/DenseSubsite.lean - theorem CategoryTheory.CoverDense.Types.appHom_restrict - theorem CategoryTheory.CoverDense.Types.appHom_valid_glue - theorem CategoryTheory.CoverDense.Types.pushforwardFamily_apply - theorem CategoryTheory.CoverDense.Types.pushforwardFamily_compatible - theorem CategoryTheory.CoverDense.Types.pushforwardFamily_def - theorem CategoryTheory.CoverDense.compatiblePreserving - theorem CategoryTheory.CoverDense.ext - theorem CategoryTheory.CoverDense.functorPullback_pushforward_covering - def CategoryTheory.CoverDense.homOver - def CategoryTheory.CoverDense.isoOver - theorem CategoryTheory.CoverDense.iso_of_restrict_iso - theorem CategoryTheory.CoverDense.sheafHom_eq - theorem CategoryTheory.CoverDense.sheafHom_restrict_eq - theorem CategoryTheory.CoverDense.sheaf_eq_amalgamation - structure CategoryTheory.CoverDense + theorem CategoryTheory.Functor.IsCoverDense.Types.appHom_restrict + theorem CategoryTheory.Functor.IsCoverDense.Types.appHom_valid_glue + theorem CategoryTheory.Functor.IsCoverDense.Types.pushforwardFamily_apply + theorem CategoryTheory.Functor.IsCoverDense.Types.pushforwardFamily_compatible + theorem CategoryTheory.Functor.IsCoverDense.Types.pushforwardFamily_def + theorem CategoryTheory.Functor.IsCoverDense.compatiblePreserving + theorem CategoryTheory.Functor.IsCoverDense.ext + theorem CategoryTheory.Functor.IsCoverDense.functorPullback_pushforward_covering + def CategoryTheory.Functor.IsCoverDense.homOver + theorem CategoryTheory.Functor.IsCoverDense.isContinuous + def CategoryTheory.Functor.IsCoverDense.isoOver + theorem CategoryTheory.Functor.IsCoverDense.iso_of_restrict_iso + theorem CategoryTheory.Functor.IsCoverDense.sheafHom_eq + theorem CategoryTheory.Functor.IsCoverDense.sheafHom_restrict_eq + theorem CategoryTheory.Functor.IsCoverDense.sheaf_eq_amalgamation + theorem CategoryTheory.Functor.is_cover_of_isCoverDense Modified Mathlib/CategoryTheory/Sites/InducedTopology.lean - theorem CategoryTheory.CoverDense.locallyCoverDense + theorem CategoryTheory.Functor.locallyCoverDense_of_isCoverDense - theorem CategoryTheory.LocallyCoverDense.inducedTopology_coverLifting + theorem CategoryTheory.LocallyCoverDense.inducedTopology_isCocontinuous Modified Mathlib/CategoryTheory/Sites/Over.lean - theorem CategoryTheory.GrothendieckTopology.over_forget_coverLifting Renamed Mathlib/CategoryTheory/Sites/Pushforward.lean to Mathlib/CategoryTheory/Sites/Pullback.lean + def CategoryTheory.Functor.sheafAdjunctionContinuous + def CategoryTheory.Functor.sheafPullback - def CategoryTheory.Sites.pullbackPushforwardAdjunction - def CategoryTheory.Sites.pushforward Modified Mathlib/Condensed/Equivalence.lean - theorem Condensed.StoneanCompHaus.coverDense - theorem Condensed.StoneanCompHaus.coverLifting - theorem Condensed.StoneanProfinite.coverDense - theorem Condensed.StoneanProfinite.coverLifting Modified Mathlib/Topology/Sheaves/Functors.lean Modified Mathlib/Topology/Sheaves/SheafCondition/Sites.lean + theorem OpenEmbedding.functor_isContinuous +/- def TopCat.Sheaf.restrictHomEquivHom Modified Mathlib/Topology/Sheaves/Stalks.lean 2023-11-24 20:37:30 9eed8c4 refactor: New `Colex` API (#7715) This fully rewrites `Combinatorics.Colex` to use a type synonym approach instead of abusing defeq. We also provide some API about initial segments of colex. ESTIMATED CHANGES Modified Mathlib/Algebra/BigOperators/Order.lean + theorem Finset.prod_sdiff_le_prod_sdiff + theorem Finset.prod_sdiff_lt_prod_sdiff Modified Mathlib/Algebra/GeomSum.lean + theorem Nat.geomSum_eq + theorem Nat.geomSum_lt Modified Mathlib/Combinatorics/Colex.lean - theorem Colex.colex_le_of_subset - theorem Colex.colex_lt_of_ssubset - theorem Colex.empty_toColex_le - theorem Colex.empty_toColex_lt - theorem Colex.eq_iff - theorem Colex.forall_lt_of_colex_lt_of_forall_lt - theorem Colex.hom_fin_le_iff - theorem Colex.hom_fin_lt_iff - theorem Colex.hom_le_iff - theorem Colex.hom_lt_iff - theorem Colex.le_def - theorem Colex.le_trans - theorem Colex.lt_def - theorem Colex.lt_singleton_iff_mem_lt - theorem Colex.lt_trans - theorem Colex.lt_trichotomy - theorem Colex.mem_le_of_singleton_le - theorem Colex.sdiff_le_sdiff_iff_le - theorem Colex.sdiff_lt_sdiff_iff_lt - theorem Colex.singleton_le_iff_le - theorem Colex.singleton_lt_iff_lt - theorem Colex.sum_two_pow_le_iff_lt - theorem Colex.sum_two_pow_lt_iff_lt - def Colex.toColexRelHom + theorem Finset.Colex.IsInitSeg.exists_initSeg + theorem Finset.Colex.IsInitSeg.total + def Finset.Colex.IsInitSeg + theorem Finset.Colex.forall_le_mono + theorem Finset.Colex.forall_lt_mono + def Finset.Colex.initSeg + theorem Finset.Colex.initSeg_nonempty + theorem Finset.Colex.isInitSeg_empty + theorem Finset.Colex.isInitSeg_iff_exists_initSeg + theorem Finset.Colex.isInitSeg_initSeg + theorem Finset.Colex.le_def + theorem Finset.Colex.le_iff_max'_mem + theorem Finset.Colex.le_iff_sdiff_subset_lowerClosure + theorem Finset.Colex.lt_iff_exists_forall_lt + theorem Finset.Colex.lt_iff_max'_mem + theorem Finset.Colex.mem_initSeg + theorem Finset.Colex.mem_initSeg_self + theorem Finset.Colex.ofColex_bot + theorem Finset.Colex.singleton_le_singleton + theorem Finset.Colex.singleton_le_toColex + theorem Finset.Colex.singleton_lt_singleton + theorem Finset.Colex.toColex_empty + theorem Finset.Colex.toColex_image_le_toColex_image + theorem Finset.Colex.toColex_image_lt_toColex_image + theorem Finset.Colex.toColex_image_ofColex_strictMono + theorem Finset.Colex.toColex_le_singleton + theorem Finset.Colex.toColex_le_toColex + theorem Finset.Colex.toColex_le_toColex_iff_max'_mem + theorem Finset.Colex.toColex_le_toColex_of_subset + theorem Finset.Colex.toColex_lt_singleton + theorem Finset.Colex.toColex_lt_toColex + theorem Finset.Colex.toColex_lt_toColex_iff_exists_forall_lt + theorem Finset.Colex.toColex_lt_toColex_iff_max'_mem + theorem Finset.Colex.toColex_lt_toColex_of_ssubset + theorem Finset.Colex.toColex_mono + theorem Finset.Colex.toColex_sdiff_le_toColex_sdiff' + theorem Finset.Colex.toColex_sdiff_le_toColex_sdiff + theorem Finset.Colex.toColex_sdiff_lt_toColex_sdiff' + theorem Finset.Colex.toColex_sdiff_lt_toColex_sdiff + theorem Finset.Colex.toColex_strictMono + structure Finset.Colex - def Finset.Colex + theorem Finset.geomSum_le_geomSum_iff_toColex_le_toColex + theorem Finset.geomSum_lt_geomSum_iff_toColex_lt_toColex + theorem Finset.geomSum_ofColex_strictMono + theorem Finset.ofColex_inj + theorem Finset.ofColex_injective + theorem Finset.ofColex_ne_ofColex + theorem Finset.ofColex_toColex - def Finset.toColex + theorem Finset.toColex_inj + theorem Finset.toColex_injective + theorem Finset.toColex_ne_toColex + theorem Finset.toColex_ofColex - theorem Nat.sum_two_pow_lt Modified Mathlib/Data/Finset/Basic.lean + theorem Finset.forall_mem_not_eq' + theorem Finset.forall_mem_not_eq Modified Mathlib/Order/BooleanAlgebra.lean + theorem sdiff_sdiff_sdiff_cancel_left + theorem sdiff_sdiff_sdiff_cancel_right 2023-11-24 19:52:23 54f7158 feat: Multiplication of convex function (#7650) We prove that the product of nonnegative monovarying convex functions is convex. We take the opportunity to golf the various proofs of the convexity of `x ↦ x ^ n`. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/Convex/Mul.lean + theorem ConcaveOn.mul' + theorem ConcaveOn.mul + theorem ConcaveOn.mul_convexOn' + theorem ConcaveOn.mul_convexOn + theorem ConcaveOn.smul'' + theorem ConcaveOn.smul' + theorem ConcaveOn.smul_convexOn' + theorem ConcaveOn.smul_convexOn + theorem ConvexOn.mul' + theorem ConvexOn.mul + theorem ConvexOn.mul_concaveOn' + theorem ConvexOn.mul_concaveOn + theorem ConvexOn.pow + theorem ConvexOn.smul'' + theorem ConvexOn.smul' + theorem ConvexOn.smul_concaveOn' + theorem ConvexOn.smul_concaveOn + theorem convexOn_pow + theorem convexOn_zpow Modified Mathlib/Analysis/Convex/SpecificFunctions/Basic.lean - theorem convexOn_pow - theorem convexOn_zpow Modified Mathlib/Analysis/MeanInequalitiesPow.lean 2023-11-24 18:46:42 bae5525 style(Algebra): write `coe_pow` lemmas more clearly (#8292) ESTIMATED CHANGES Modified Mathlib/Algebra/Group/WithOne/Defs.lean +/- theorem WithZero.coe_zpow Modified Mathlib/Data/Rat/Cast/CharZero.lean +/- theorem Rat.cast_pow Modified Mathlib/GroupTheory/GroupAction/SubMulAction/Pointwise.lean +/- theorem SubMulAction.coe_pow +/- theorem SubMulAction.subset_coe_pow 2023-11-24 18:13:10 9987526 feat: remove triangularizability assumption from proof that Cartan subalgebras are Abelian (#8583) ESTIMATED CHANGES Modified Mathlib/Algebra/Lie/Abelian.lean +/- theorem LieModule.commute_toEndomorphism_of_mem_center_left + theorem LieModule.commute_toEndomorphism_of_mem_center_right Modified Mathlib/Algebra/Lie/BaseChange.lean + theorem LieModule.toEndomorphism_extendScalars + theorem LieSubmodule.coe_extendScalars + def LieSubmodule.extendScalars + theorem LieSubmodule.extendScalars_bot + theorem LieSubmodule.extendScalars_top + theorem LieSubmodule.lie_extendScalars + theorem LieSubmodule.mem_extendScalars_iff + theorem LieSubmodule.tmul_mem_extendScalars_of_mem Modified Mathlib/Algebra/Lie/Killing.lean +/- theorem LieModule.traceForm_eq_sum_weightSpaceOf Modified Mathlib/Algebra/Lie/Nilpotent.lean + theorem LieSubmodule.lowerCentralSeries_tensor_eq_extendScalars 2023-11-24 14:23:26 afb00b0 refactor(CategoryTheory/Idempotents): replacing equalities of functors by isomorphisms (#8562) In the context of idempotent completion of categories and the Dold-Kan equivalence, constructing some isomorphisms was very slow in Lean 3 but has been much faster in Lean 4, while using equalities of functors in Lean 3 was fast, but in Lean 4 it became very slow. In this PR, we switch to using mostly isomorphisms of functors: this also became necessary in order to make the refactor #8531 possible. ESTIMATED CHANGES Modified Mathlib/AlgebraicTopology/DoldKan/EquivalencePseudoabelian.lean + theorem CategoryTheory.Idempotents.DoldKan.N₂_map_isoΓ₀_hom_app_f - theorem CategoryTheory.Idempotents.DoldKan.hN₁ - theorem CategoryTheory.Idempotents.DoldKan.hΓ₀ + def CategoryTheory.Idempotents.DoldKan.isoN₁ + theorem CategoryTheory.Idempotents.DoldKan.isoN₁_hom_app_f + def CategoryTheory.Idempotents.DoldKan.isoΓ₀ Modified Mathlib/AlgebraicTopology/DoldKan/FunctorN.lean - theorem AlgebraicTopology.DoldKan.compatibility_N₁_N₂ + def AlgebraicTopology.DoldKan.toKaroubiCompN₂IsoN₁ + theorem AlgebraicTopology.DoldKan.toKaroubiCompN₂IsoN₁_hom_app + theorem AlgebraicTopology.DoldKan.toKaroubiCompN₂IsoN₁_inv_app Modified Mathlib/AlgebraicTopology/DoldKan/GammaCompN.lean + theorem AlgebraicTopology.DoldKan.N₂Γ₂ToKaroubiIso_hom_app + theorem AlgebraicTopology.DoldKan.N₂Γ₂ToKaroubiIso_inv_app - theorem AlgebraicTopology.DoldKan.N₂Γ₂_toKaroubi Modified Mathlib/AlgebraicTopology/DoldKan/NCompGamma.lean - def AlgebraicTopology.DoldKan.compatibility_Γ₂N₁_Γ₂N₂ - theorem AlgebraicTopology.DoldKan.compatibility_Γ₂N₁_Γ₂N₂_hom_app - theorem AlgebraicTopology.DoldKan.compatibility_Γ₂N₁_Γ₂N₂_inv_app + def AlgebraicTopology.DoldKan.Γ₂N₂ToKaroubiIso + theorem AlgebraicTopology.DoldKan.Γ₂N₂ToKaroubiIso_hom_app + theorem AlgebraicTopology.DoldKan.Γ₂N₂ToKaroubiIso_inv_app Modified Mathlib/CategoryTheory/Idempotents/FunctorExtension.lean + def CategoryTheory.Idempotents.functorExtension₁Comp + def CategoryTheory.Idempotents.functorExtension₁CompWhiskeringLeftToKaroubiIso - theorem CategoryTheory.Idempotents.functorExtension₁_comp - theorem CategoryTheory.Idempotents.functorExtension₁_comp_whiskeringLeft_toKaroubi - def CategoryTheory.Idempotents.functorExtension₁_comp_whiskeringLeft_toKaroubi_iso - theorem CategoryTheory.Idempotents.functorExtension₂_comp_whiskeringLeft_toKaroubi 2023-11-24 13:15:16 244c4fd feat(CategoryTheory): more constructors for ComposableArrows (#8475) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/ComposableArrows.lean + theorem CategoryTheory.ComposableArrows.ext_succ + theorem CategoryTheory.ComposableArrows.ext₂ + theorem CategoryTheory.ComposableArrows.ext₃ + def CategoryTheory.ComposableArrows.homMkSucc + theorem CategoryTheory.ComposableArrows.homMkSucc_app_succ + theorem CategoryTheory.ComposableArrows.homMkSucc_app_zero + def CategoryTheory.ComposableArrows.homMk₂ + theorem CategoryTheory.ComposableArrows.homMk₂_app_one + theorem CategoryTheory.ComposableArrows.homMk₂_app_two + theorem CategoryTheory.ComposableArrows.homMk₂_app_zero + def CategoryTheory.ComposableArrows.homMk₃ + theorem CategoryTheory.ComposableArrows.homMk₃_app_one + theorem CategoryTheory.ComposableArrows.homMk₃_app_three + theorem CategoryTheory.ComposableArrows.homMk₃_app_two + theorem CategoryTheory.ComposableArrows.homMk₃_app_zero + theorem CategoryTheory.ComposableArrows.hom_ext_succ + theorem CategoryTheory.ComposableArrows.hom_ext₂ + theorem CategoryTheory.ComposableArrows.hom_ext₃ + def CategoryTheory.ComposableArrows.isoMkSucc + def CategoryTheory.ComposableArrows.isoMk₂ + def CategoryTheory.ComposableArrows.isoMk₃ + theorem CategoryTheory.ComposableArrows.mk₂_surjective + theorem CategoryTheory.ComposableArrows.mk₃_surjective + theorem CategoryTheory.ComposableArrows.naturality' + theorem CategoryTheory.ComposableArrows.precomp_surjective 2023-11-24 13:15:15 9988ed6 feat: limits and colimits in the category of homological complexes (#8472) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Homology/HomologicalComplexLimits.lean + def HomologicalComplex.isColimitOfEval + def HomologicalComplex.isLimitOfEval + def HomologicalComplex.preservesColimitsOfShapeOfEval + def HomologicalComplex.preservesLimitsOfShapeOfEval 2023-11-24 12:19:18 afce553 feat: on a countable type, if singletons are measurable the discrete topology is Borel (#8591) Extracted from the PFR Project: https://github.com/teorth/pfr/pull/67 ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Constructions/BorelSpace/Basic.lean 2023-11-24 12:19:17 7efcade feat: various linear algebra results (#8572) ESTIMATED CHANGES Modified Mathlib/Algebra/DirectSum/LinearMap.lean + theorem LinearMap.trace_comp_eq_zero_of_commute_of_trace_restrict_eq_zero Modified Mathlib/Algebra/Module/Submodule/LinearMap.lean + theorem LinearMap.restrict_commute + theorem LinearMap.restrict_comp Modified Mathlib/LinearAlgebra/TensorProduct/Tower.lean + def LinearMap.extendScalars + theorem LinearMap.extendScalars_comp + theorem LinearMap.extendScalars_tmul + def Submodule.extendScalars + theorem Submodule.extendScalars_bot + theorem Submodule.extendScalars_span + theorem Submodule.extendScalars_top + theorem Submodule.tmul_mem_extendScalars_of_mem Modified Mathlib/LinearAlgebra/Trace.lean + theorem LinearMap.trace_extendScalars Modified Mathlib/Logic/Basic.lean + theorem exists_exists_and_exists_and_eq_and Modified Mathlib/RingTheory/TensorProduct.lean + theorem Algebra.TensorProduct.basis_apply + theorem LinearMap.toMatrix_extendScalars 2023-11-24 11:47:47 b112cb6 feat: the homology functor on the homotopy category for the new API (#8595) ESTIMATED CHANGES Modified Mathlib/Algebra/Homology/Homotopy.lean + def HomologicalComplex.homotopyEquivalences + theorem Homotopy.homologyMap_eq Modified Mathlib/Algebra/Homology/HomotopyCategory.lean Modified Mathlib/Algebra/Homology/QuasiIso.lean + def HomologicalComplex.qis + theorem HomologicalComplex.qis_iff + theorem homotopyEquivalences_subset_qis Modified Mathlib/Algebra/Homology/ShortComplex/HomologicalComplex.lean + theorem HomologicalComplex.homologyMap_add + theorem HomologicalComplex.homologyMap_neg + theorem HomologicalComplex.homologyMap_sub Modified Mathlib/CategoryTheory/Preadditive/AdditiveFunctor.lean + theorem CategoryTheory.Functor.additive_of_comp_faithful + theorem CategoryTheory.Functor.additive_of_full_essSurj_comp + theorem CategoryTheory.Functor.additive_of_iso Modified Mathlib/CategoryTheory/Quotient.lean 2023-11-24 10:23:13 e4e24a5 feat: `m/gcd m n` and `n` coprime if `m` squarefree (#8578) ESTIMATED CHANGES Modified Mathlib/Data/Nat/Squarefree.lean + theorem Nat.coprime_div_gcd_of_squarefree 2023-11-24 09:10:51 988870b feat: switch to weaker UnivLE (#8556) Switch from the strong version of UnivLE `∀ α : Type max u v, Small.{v} α` to the weaker version `∀ α : Type u, Small.{v} α`. Transfer Has/Preserves/Reflects(Co)limitsOfSize from a larger size (higher universe) to a smaller size. In a few places it's now necessary to make the type explicit (for Lean to infer the `Small` instance, I think). Also prove a characterization of UnivLE and the totality of the UnivLE relation. A pared down version of #7695. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/CategoryTheory/EssentiallySmall.lean Modified Mathlib/CategoryTheory/Limits/HasLimits.lean + theorem CategoryTheory.Limits.hasColimitsOfSizeOfUnivLE + theorem CategoryTheory.Limits.hasColimitsOfSizeShrink - theorem CategoryTheory.Limits.hasColimitsOfSize_shrink + theorem CategoryTheory.Limits.hasLimitsOfSizeOfUnivLE Modified Mathlib/CategoryTheory/Limits/Preserves/Basic.lean + def CategoryTheory.Limits.preservesColimitsOfSizeOfUnivLE + def CategoryTheory.Limits.preservesLimitsOfSizeOfUnivLE + def CategoryTheory.Limits.reflectsColimitsOfSizeOfUnivLE + def CategoryTheory.Limits.reflectsLimitsOfSizeOfUnivLE Modified Mathlib/CategoryTheory/Limits/Shapes/FiniteLimits.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Types.lean + theorem CategoryTheory.Limits.Types.Small.productIso_hom_comp_eval + theorem CategoryTheory.Limits.Types.Small.productIso_hom_comp_eval_apply + theorem CategoryTheory.Limits.Types.Small.productIso_inv_comp_π - theorem CategoryTheory.Limits.Types.UnivLE.productIso_hom_comp_eval - theorem CategoryTheory.Limits.Types.UnivLE.productIso_hom_comp_eval_apply - theorem CategoryTheory.Limits.Types.UnivLE.productIso_inv_comp_π +/- theorem CategoryTheory.Limits.Types.pi_lift_π_apply +/- theorem CategoryTheory.Limits.Types.pi_map_π_apply Modified Mathlib/CategoryTheory/Limits/Types.lean + theorem CategoryTheory.Limits.Types.Small.limitCone_pt_ext - theorem CategoryTheory.Limits.Types.UnivLE.limitCone_pt_ext Modified Mathlib/CategoryTheory/Limits/Yoneda.lean Modified Mathlib/CategoryTheory/Sites/Grothendieck.lean Modified Mathlib/CategoryTheory/UnivLE.lean +/- def UnivLE.witness.{u, Modified Mathlib/Logic/Small/Basic.lean - theorem Shrink.ext - def Shrink - theorem Small.mk' - theorem not_small_type - theorem small_congr - theorem small_lift - theorem small_map - theorem small_type Added Mathlib/Logic/Small/Defs.lean + theorem Shrink.ext + def Shrink + theorem Small.mk' + theorem not_small_type + theorem small_congr + theorem small_lift + theorem small_map + theorem small_max + theorem small_type Modified Mathlib/Logic/Small/Group.lean Modified Mathlib/Logic/Small/Ring.lean Modified Mathlib/Logic/UnivLE.lean + theorem Small.trans_univLE.{u, + theorem UnivLE.trans + theorem univLE_max Modified Mathlib/RepresentationTheory/GroupCohomology/Resolution.lean Added Mathlib/SetTheory/Cardinal/UnivLE.lean + theorem univLE_iff_cardinal_le + theorem univLE_total Modified Mathlib/SetTheory/Ordinal/Basic.lean 2023-11-24 03:30:59 c26fbb1 feat: analysis delaborator for `LinearIndependent` (#8602) This is an experimental delaborator that works by analyzing the expression and tagging it with `pp.analysis`-style hints. This causes pretty printing `LinearIndependent` like `LinearIndependent K fun (b : ↑s) ↦ ↑b` rather than `LinearIndependent K fun b ↦ ↑b` and `LinearIndependent (ι := { x // x ∈ s }) K Subtype.val` rather than `LinearIndependent K Subtype.val`. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Lean/Expr/ExtraRecognizers.lean + def Lean.Expr.coeTypeSet? Modified Mathlib/Lean/PrettyPrinter/Delaborator.lean + def Lean.PrettyPrinter.Delaborator.OptionsPerPos.setBool Modified Mathlib/LinearAlgebra/LinearIndependent.lean + def delabLinearIndependent Added test/delabLinearIndependent.lean 2023-11-23 19:13:50 84c26b2 feat(Calculus/ContDiff): add `ContDiffAt.contDiffOn` (#8600) ESTIMATED CHANGES Modified Mathlib/Analysis/Calculus/ContDiff/Defs.lean 2023-11-23 14:01:58 e9bcfc6 style(Algebra/Module/Injective): fix weird bracket position (#8589) The bracket position seems off ESTIMATED CHANGES Modified Mathlib/Algebra/Module/Injective.lean 2023-11-23 14:01:57 40cf206 doc: update bors link (#8588) ESTIMATED CHANGES Modified README.md 2023-11-23 12:56:43 c9fe098 chore: Move `Data.Nat.Fib` → `Data.Nat.Fib.Basic` (#8576) This was postponed to after the Zeckendorf PR. ESTIMATED CHANGES Modified Archive/Imo/Imo1981Q3.lean Modified Mathlib.lean Modified Mathlib/Algebra/ContinuedFractions/Computation/Approximations.lean Renamed Mathlib/Data/Nat/Fib.lean to Mathlib/Data/Nat/Fib/Basic.lean Modified Mathlib/Data/Nat/Fib/Zeckendorf.lean Modified Mathlib/Data/Real/GoldenRatio.lean Modified Mathlib/Tactic/NormNum/NatFib.lean 2023-11-23 12:56:42 29bc69a feat(Algebra/GroupRingAction/Basic): `RingHom` application forms a `MulDistribMulAction` (#8396) This replaces a previous weaker result that it formed a `DistribMulAction`. The docstring seemed to assume this already existed, but forgot to mention the `RingAut` version in another file. ESTIMATED CHANGES Modified Mathlib/Algebra/GroupRingAction/Basic.lean Modified Mathlib/Algebra/Module/Basic.lean Modified Mathlib/GroupTheory/GroupAction/Defs.lean 2023-11-23 12:56:41 a07f307 feat(Algebra/Module/Hom): `AddMonoid.End` application forms a `Module` (#8395) Mathlib already knew it formed a `DistribMulAction`. This also cleans up some duplicate definitions from @urkud's #2968. ESTIMATED CHANGES Modified Mathlib/Algebra/Module/Hom.lean Modified Mathlib/Geometry/Euclidean/Angle/Oriented/Affine.lean Modified Mathlib/GroupTheory/GroupAction/Defs.lean 2023-11-23 12:56:40 d34a7de chore: golf tsum_setElem_eq_tsum_setElem_diff (#8393) ESTIMATED CHANGES Modified Mathlib/Topology/Algebra/InfiniteSum/Basic.lean 2023-11-23 11:18:59 aa7a291 chore(Algebra/Regular/Basic): generalize to `IsCancelMul` (#8428) This lets lemmas about cancellative monoids work for cancellative semigroups Some docstrings have been rewritten, as adjusting the wording was too awkward. The new `.all` names are intended to match `Commute.all`. ESTIMATED CHANGES Modified Mathlib/Algebra/CovariantAndContravariant.lean Modified Mathlib/Algebra/Group/Embedding.lean +/- def mulLeftEmbedding +/- theorem mulLeftEmbedding_eq_mulRightEmbedding +/- def mulRightEmbedding Modified Mathlib/Algebra/MonoidAlgebra/Support.lean +/- theorem AddMonoidAlgebra.support_mul_single +/- theorem AddMonoidAlgebra.support_single_mul +/- theorem MonoidAlgebra.support_mul_single +/- theorem MonoidAlgebra.support_single_mul Modified Mathlib/Algebra/Order/Group/Defs.lean Modified Mathlib/Algebra/Order/WithZero.lean Modified Mathlib/Algebra/Regular/Basic.lean + theorem IsLeftRegular.all + theorem IsRegular.all + theorem IsRightRegular.all - theorem isLeftRegular_of_leftCancelSemigroup - theorem isRegular_of_cancelMonoid - theorem isRightRegular_of_rightCancelSemigroup Modified Mathlib/Data/Finset/Pointwise.lean Modified Mathlib/Data/Set/Pointwise/SMul.lean 2023-11-23 10:43:15 0cacf07 feat: reduction of DirichletCharacter (#8440) ESTIMATED CHANGES Modified Mathlib/Data/ZMod/Units.lean +/- theorem ZMod.IsUnit_cast_of_dvd Modified Mathlib/NumberTheory/DirichletCharacter/Basic.lean + theorem DirichletCharacter.conductor_le_conductor_mem_conductorSet + theorem DirichletCharacter.primitiveCharacter_isPrimitive + theorem DirichletCharacter.primitiveCharacter_one 2023-11-23 09:45:05 80876c8 chore(LinearAlgebra/TensorProduct): make the bad instance private (#8571) This instance is needed to set things up, but then should never be used again. To ensure this, it is made private and given a scary name. ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/TensorProduct.lean - def TensorProduct.addMonoid 2023-11-23 03:28:14 6834a65 feat: add List.enum_eq_nil and List.mapIdx_eq_nil (#8493) Adds `List.enum_eq_nil` and `List.mapIdx_eq_nil`. These are analogous to [`List.map_eq_nil`](https://github.com/leanprover/std4/blob/c14f6a65b2c08caa38e1ab5db83451460d6cde3e//Std/Data/List/Lemmas.lean#L166-L167). ESTIMATED CHANGES Modified Mathlib/Data/List/Basic.lean + theorem List.enumFrom_eq_nil + theorem List.enum_eq_nil Modified Mathlib/Data/List/Indexes.lean + theorem List.mapIdx_eq_nil 2023-11-23 00:23:48 e34836b chore: fix lakefile for docs (#8553) Looks like #8456 broke doc-gen https://github.com/leanprover-community/mathlib4_docs/actions/runs/6927181810, this looks like the likely culprit (but I haven't tested the full workflow). ESTIMATED CHANGES Modified lakefile.lean 2023-11-23 00:03:06 244a020 fix: makefile missing semicolon, silence tests (#8580) **Note:** *if you have a branch failing CI with "Error: Test output is not empty" then merge the `master` branch.* Silences remaining tests. (The change that required silent tests seems to have passed its own test through bors, but in CI these tests remain noisy.) ESTIMATED CHANGES Modified GNUmakefile Modified test/SimpRw.lean Modified test/apply_fun.lean Modified test/convert2.lean Modified test/norm_cast.lean +/- theorem b 2023-11-22 22:57:52 e2426ff fix: decapitalize names of proof-valued fields (#8509) Only `Prop`-values fields should be capitalized, not `P`-valued fields where `P` is `Prop`-valued. Rather than fixing `Nonempty := ` in constructors, I just deleted the line as the instance can almost always be found automatically. ESTIMATED CHANGES Modified Mathlib/Algebra/AddTorsor.lean Modified Mathlib/Algebra/Category/ModuleCat/FilteredColimits.lean Modified Mathlib/Algebra/Category/MonCat/FilteredColimits.lean Modified Mathlib/AlgebraicTopology/FundamentalGroupoid/SimplyConnected.lean Modified Mathlib/CategoryTheory/Extensive.lean Modified Mathlib/CategoryTheory/Filtered/Basic.lean +/- theorem CategoryTheory.IsCofiltered.cone_nonempty +/- theorem CategoryTheory.IsCofiltered.inf_objs_exists +/- theorem CategoryTheory.IsFiltered.cocone_nonempty +/- theorem CategoryTheory.IsFiltered.sup_objs_exists Modified Mathlib/CategoryTheory/Filtered/Small.lean Modified Mathlib/CategoryTheory/Functor/Flat.lean Modified Mathlib/CategoryTheory/Limits/Final.lean Modified Mathlib/CategoryTheory/Limits/Shapes/ZeroMorphisms.lean Modified Mathlib/CategoryTheory/Preadditive/Basic.lean Modified Mathlib/CategoryTheory/Preadditive/Mat.lean Modified Mathlib/Data/Opposite.lean Modified Mathlib/Geometry/Euclidean/Circumcenter.lean Modified Mathlib/LinearAlgebra/AffineSpace/AffineMap.lean Modified Mathlib/LinearAlgebra/AffineSpace/AffineSubspace.lean Modified Mathlib/LinearAlgebra/AffineSpace/Combination.lean Modified Mathlib/LinearAlgebra/AffineSpace/Independent.lean Modified Mathlib/Topology/Category/Profinite/Basic.lean Modified Mathlib/Topology/Category/Profinite/EffectiveEpi.lean Modified Mathlib/Topology/Category/Stonean/Basic.lean Modified Mathlib/Topology/Connected/PathConnected.lean 2023-11-22 20:53:39 bf215ce fix: missing `withContext` in `linarith` preprocessing (#8573) 1. Adds missing `withContext`s (test had unknown fvar errors) 2. Fixes `removeNe_aux` so that it instantiate metavariables 3. Makes `removeNe` preprocessor come after conjunction splitting, since that opens up strictly more opportunities. ESTIMATED CHANGES Modified Mathlib/Tactic/Linarith/Frontend.lean Modified Mathlib/Tactic/Linarith/Preprocessing.lean Modified test/linarith.lean 2023-11-22 20:00:31 2df406b feat: add two power-of-two theorems to bitwise (#8558) These are generally useful and split out of #5920. ESTIMATED CHANGES Modified Mathlib/Data/Nat/Bitwise.lean + theorem Nat.and_two_pow + theorem Nat.testBit_eq_false_of_lt + theorem Nat.two_pow_and 2023-11-22 15:18:26 029b3d7 feat: `Squarefree` lemmas for `Nat` (#8323) ESTIMATED CHANGES Modified Mathlib/Data/Nat/Order/Lemmas.lean Modified Mathlib/Data/Nat/Squarefree.lean - theorem Nat.Squarefree.factorization_le_one + theorem Nat.factorization_eq_one_of_squarefree + theorem Nat.primeFactors_div_gcd + theorem Nat.primeFactors_prod + theorem Nat.prod_primeFactors_invOn_squarefree + theorem Nat.prod_primeFactors_of_squarefree + theorem Squarefree.natFactorization_le_one Modified Mathlib/NumberTheory/SumTwoSquares.lean 2023-11-22 12:41:29 555fdde feat: improve simp_rw config handling (#8569) ESTIMATED CHANGES Modified Mathlib/Tactic/SimpRw.lean Modified test/SimpRw.lean 2023-11-22 09:06:38 5be6ac5 chore(Algebra/Module/Submodule): add some missing `simps`s (#8550) ESTIMATED CHANGES Modified Mathlib/Algebra/Module/Submodule/LinearMap.lean 2023-11-22 06:12:46 af56a1a fix: elaborate `linarith` arguments without errToSorry (#8561) This means that `linarith` will fail before executing its algorithm if there is an elaboration error in one of its supplied terms, rather than going ahead and silently failing. Also, checks for new metavariables in the elaborated terms, which can't be used since `linarith` is a finishing tactic. Lastly, copies these (and pre-existing) fixes to `nlinarith`. ESTIMATED CHANGES Modified Mathlib/Tactic/Linarith/Frontend.lean + def elabLinarithArg Modified test/linarith.lean 2023-11-22 05:01:01 f70d883 feat: add div/mod/dvd on Nat/Int to `norm_num` (#8534) ESTIMATED CHANGES Modified .vscode/settings.json Modified Mathlib.lean Modified Mathlib/Tactic.lean Modified Mathlib/Tactic/NormNum.lean Modified Mathlib/Tactic/NormNum/Basic.lean + theorem Mathlib.Meta.NormNum.IsInt.raw_refl +/- def Mathlib.Meta.NormNum.evalNatDiv + def Mathlib.Meta.NormNum.evalNatDvd + theorem Mathlib.Meta.NormNum.isNat_dvd_false + theorem Mathlib.Meta.NormNum.isNat_dvd_true Added Mathlib/Tactic/NormNum/DivMod.lean + def Mathlib.Meta.NormNum.evalIntDvd + theorem Mathlib.Meta.NormNum.isInt_dvd_false + theorem Mathlib.Meta.NormNum.isInt_dvd_true + theorem Mathlib.Meta.NormNum.isInt_ediv + theorem Mathlib.Meta.NormNum.isInt_ediv_neg + theorem Mathlib.Meta.NormNum.isInt_ediv_zero + theorem Mathlib.Meta.NormNum.isInt_emod + theorem Mathlib.Meta.NormNum.isInt_emod_neg + theorem Mathlib.Meta.NormNum.isInt_emod_zero + theorem Mathlib.Meta.NormNum.isNat_neg_of_isNegNat Deleted Mathlib/Tactic/NormNum/Mod.lean - theorem Mathlib.Meta.NormNum.isInt_emod - theorem Mathlib.Meta.NormNum.isInt_emod_neg - theorem Mathlib.Meta.NormNum.isInt_refl - theorem Mathlib.Meta.NormNum.isNat_neg_of_isNegNat Modified Mathlib/Tactic/NormNum/Result.lean Modified Mathlib/Tactic/ReduceModChar.lean +/- theorem Tactic.ReduceModChar.CharP.isInt_of_mod Modified test/norm_num.lean Modified test/norm_num_ext.lean 2023-11-22 05:01:00 9bb53f8 feat: simp_rw (config := ...) (#8192) ESTIMATED CHANGES Modified Mathlib/Tactic/SimpRw.lean 2023-11-22 03:54:04 4e64f9b fix: local context handling in `fail_if_no_progress` (#8482) ESTIMATED CHANGES Modified Mathlib/Tactic/FailIfNoProgress.lean Modified test/fail_if_no_progress.lean 2023-11-22 00:12:26 6212c86 feat: term elaborator for associativity equivalences between iterated products. (#8551) For example, ```lean (prod_assoc% : (α × β) × (γ × δ) ≃ α × (β × γ) × δ) ``` gives the "obvious" equivalence between `(α × β) × (γ × δ)` and `α × (β × γ) × δ`. Special thanks to @kmill for help getting the expected type to work in the elaborator! ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Lean/Expr/Basic.lean + def Lean.Expr.type? Modified Mathlib/Tactic.lean Added Mathlib/Tactic/ProdAssoc.lean + def Lean.Expr.ProdTree.components + def Lean.Expr.ProdTree.convertTo + def Lean.Expr.ProdTree.getType + def Lean.Expr.ProdTree.pack + def Lean.Expr.ProdTree.size + def Lean.Expr.ProdTree.unpack + inductive Lean.Expr.ProdTree + def Lean.Expr.elabProdAssoc + def Lean.Expr.mkProdEquiv + def Lean.Expr.mkProdFun Added test/ProdAssoc.lean 2023-11-21 14:35:04-08:00 d0c0a7f Revert "fix: elaborate linarith arguments without errToSorry" This reverts commit 383ec12856a51cae18f9790f4e66595289b574a6. ESTIMATED CHANGES Modified Mathlib/Tactic/Linarith/Frontend.lean - def elabLinarithArg Modified test/linarith.lean 2023-11-21 14:32:06-08:00 383ec12 fix: elaborate linarith arguments without errToSorry Also, checks for new metavariables in the elaborated terms, which are almost surely not usable in a reliable way. ESTIMATED CHANGES Modified Mathlib/Tactic/Linarith/Frontend.lean + def elabLinarithArg Modified test/linarith.lean 2023-11-21 21:57:01 3f12ad8 feat: Real Exponential Distribution (#8253) Introduction of the real-valued exponential PDF and CDF ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Probability/Distributions/Exponential.lean + def ProbabilityTheory.expMeasure + theorem ProbabilityTheory.exp_neg_integrableOn_Ioc + def ProbabilityTheory.exponentialCdfReal + theorem ProbabilityTheory.exponentialCdfReal_eq + theorem ProbabilityTheory.exponentialCdfReal_eq_integral + theorem ProbabilityTheory.exponentialCdfReal_eq_lintegral + def ProbabilityTheory.exponentialPdf + def ProbabilityTheory.exponentialPdfReal + theorem ProbabilityTheory.exponentialPdfReal_nonneg + theorem ProbabilityTheory.exponentialPdfReal_pos + theorem ProbabilityTheory.exponentialPdf_eq + theorem ProbabilityTheory.exponentialPdf_of_neg + theorem ProbabilityTheory.exponentialPdf_of_nonneg + theorem ProbabilityTheory.hasDerivAt_exp_neg + theorem ProbabilityTheory.hasDerivAt_neg_exp_mul_exp + theorem ProbabilityTheory.lintegral_exponentialPdf_eq_antiDeriv + theorem ProbabilityTheory.lintegral_exponentialPdf_eq_one + theorem ProbabilityTheory.lintegral_exponentialPdf_of_nonpos + theorem ProbabilityTheory.measurable_exponentialPdfReal + theorem ProbabilityTheory.stronglyMeasurable_exponentialPdfReal + theorem lintegral_Iic_eq_lintegral_Iio_add_Icc + theorem lintegral_eq_lintegral_Ici_add_Iio 2023-11-21 17:38:19 7886578 chore: fix `Set` docstring (#8552) Indented docstring get parsed as a Markdown code block, so we remove the indentation ESTIMATED CHANGES Modified Mathlib/Init/Set.lean 2023-11-21 17:38:18 29764c6 refactor: generalize `Bool.beq_eq_decide_eq` (#8532) This PR generalizes `Bool.beq_eq_decide_eq` to also be applicable for types whose `BEq α` is different from the default instance implied by `DecidableEq α`. An example of such a type is `Nat`. ESTIMATED CHANGES Modified Mathlib/Data/Bool/Basic.lean +/- theorem Bool.beq_eq_decide_eq 2023-11-21 16:32:56 a098d27 feat: theorems about power of twos (#8547) These were factored out of #5920 as they seem generally useful. ESTIMATED CHANGES Modified Mathlib/Data/Nat/Pow.lean + theorem Nat.two_pow_pos + theorem Nat.two_pow_succ 2023-11-21 14:17:00 3c14836 feat: base change for Lie modules (#8546) ESTIMATED CHANGES Modified Mathlib/Algebra/Lie/BaseChange.lean +/- theorem LieAlgebra.ExtendScalars.bracket_tmul 2023-11-21 12:27:19 366aa49 chore: bump std4 (#8548) ESTIMATED CHANGES Modified Mathlib/Data/List/Basic.lean - theorem List.length_dropLast Modified Mathlib/Data/Prod/Basic.lean - theorem Prod.ext Modified Mathlib/Data/Sigma/Basic.lean - theorem PSigma.ext - theorem Sigma.ext Modified Mathlib/Logic/Basic.lean Modified lake-manifest.json 2023-11-21 08:44:54 81e04e3 feat(CategoryTheory): the regular topology is subcanonical (#8529) We prove that the regular topology on any `Preregular` category is subcanonical. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Sites/Coherent.lean - theorem CategoryTheory.coherentTopology.isSubcanonical + theorem CategoryTheory.coherentTopology.subcanonical Modified Mathlib/CategoryTheory/Sites/RegularExtensive.lean - theorem CategoryTheory.EqualizerCondition.isSheafFor - theorem CategoryTheory.EqualizerCondition.isSheaf_iff - def CategoryTheory.EqualizerCondition - def CategoryTheory.MapToEqualizer - theorem CategoryTheory.equalizerCondition_of_regular - theorem CategoryTheory.isSheafFor_regular_of_projective - theorem CategoryTheory.isSheaf_of_projective + theorem CategoryTheory.regularCoverage.EqualizerCondition.isSheafFor + theorem CategoryTheory.regularCoverage.EqualizerCondition.isSheaf_iff + def CategoryTheory.regularCoverage.EqualizerCondition + def CategoryTheory.regularCoverage.MapToEqualizer + theorem CategoryTheory.regularCoverage.equalizerCondition_of_regular + theorem CategoryTheory.regularCoverage.isSheafFor_regular_of_projective + theorem CategoryTheory.regularCoverage.isSheaf_of_projective + theorem CategoryTheory.regularCoverage.isSheaf_yoneda_obj + theorem CategoryTheory.regularCoverage.subcanonical 2023-11-21 07:51:48 7d85f2f feat(Probability): add simp lemmas for kernels (#8497) ESTIMATED CHANGES Modified Mathlib/Probability/Kernel/Basic.lean + theorem ProbabilityTheory.kernel.const_zero Modified Mathlib/Probability/Kernel/Composition.lean + theorem ProbabilityTheory.kernel.fst_compProd + theorem ProbabilityTheory.kernel.fst_map_prod + theorem ProbabilityTheory.kernel.fst_swapRight + theorem ProbabilityTheory.kernel.fst_zero + theorem ProbabilityTheory.kernel.map_const + theorem ProbabilityTheory.kernel.prodMkLeft_zero + theorem ProbabilityTheory.kernel.snd_map_prod + theorem ProbabilityTheory.kernel.snd_swapRight + theorem ProbabilityTheory.kernel.snd_zero +/- theorem ProbabilityTheory.kernel.swapLeft_apply 2023-11-21 07:27:47 0f2ac91 chore(CategoryTheory): relax assumptions on category for regular sheaf condition (#8514) The sheaf condition on the regular topology should only assume that effective epis have kernel pairs instead of all pullbacks existing. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Sites/RegularExtensive.lean + theorem CategoryTheory.EqualizerCondition.isSheaf_iff - theorem CategoryTheory.isSheaf_iff_equalizerCondition 2023-11-21 01:12:33 100f5c2 chore(Combinatorics): golf and cleanup partitions (#8517) ESTIMATED CHANGES Modified Mathlib/Combinatorics/Partition.lean + def Nat.Partition.indiscrete - def Nat.Partition.indiscretePartition + theorem Nat.Partition.indiscretePartition_parts +/- def Nat.Partition.ofComposition +/- def Nat.Partition.ofMultiset +/- def Nat.Partition.ofSums + theorem Nat.Partition.partition_one_parts + theorem Nat.Partition.partition_zero_parts 2023-11-21 00:03:11 c1f0c26 chore(MeasureTheory/Decomposition): simplify proof of eq_rnDeriv₀ (#8537) Simplify proof of eq_rnDeriv₀ using withDensity_eq_iff ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Decomposition/Lebesgue.lean 2023-11-20 23:28:33 f659b7b chore: fix imports (#8538) ESTIMATED CHANGES Modified Mathlib/Algebra/Field/Defs.lean Modified Mathlib/Data/HashMap.lean Modified Mathlib/Data/MLList/Dedup.lean Modified Mathlib/Data/Rat/Init.lean Modified Mathlib/Data/Tree.lean Modified Mathlib/Lean/Data/NameMap.lean Modified Mathlib/Lean/Name.lean Modified Mathlib/Util/LongNames.lean 2023-11-20 21:32:33 43b4712 feat: if a Lie algebra has non-degenerate Killing form then its Cartan subalgebras are Abelian (#8430) Note: the proof (due to Zassenhaus) makes no assumption about the characteristic of the coefficients. ESTIMATED CHANGES Modified Mathlib/Algebra/DirectSum/LinearMap.lean + theorem LinearMap.trace_eq_sum_trace_restrict' Modified Mathlib/Algebra/DirectSum/Module.lean + theorem DirectSum.isInternal_ne_bot_iff Modified Mathlib/Algebra/Lie/Abelian.lean - theorem LieAlgebra.isLieAbelian_bot + theorem LieModule.commute_toEndomorphism_of_mem_center_left Modified Mathlib/Algebra/Lie/Killing.lean + theorem LieModule.isLieAbelian_of_ker_traceForm_eq_bot + theorem LieModule.lowerCentralSeries_one_inf_center_le_ker_traceForm + theorem LieModule.traceForm_eq_sum_weightSpaceOf + theorem LieModule.trace_toEndomorphism_eq_zero_of_mem_lcs Modified Mathlib/Algebra/Lie/Nilpotent.lean + theorem LieModule.disjoint_lowerCentralSeries_maxTrivSubmodule_iff + theorem LieModule.isTrivial_of_nilpotencyLength_le_one + theorem LieModule.lowerCentralSeriesLast_le_of_not_isTrivial + theorem LieModule.nilpotencyLength_eq_one_iff Modified Mathlib/Algebra/Lie/Semisimple.lean Modified Mathlib/Algebra/Lie/Solvable.lean Modified Mathlib/Algebra/Lie/Submodule.lean + theorem LieSubmodule.iSup_eq_top_iff_coe_toSubmodule + theorem LieSubmodule.independent_iff_coe_toSubmodule Modified Mathlib/Algebra/Lie/Weights/Basic.lean + theorem LieModule.finite_weightSpaceOf_ne_bot + theorem LieModule.finite_weightSpace_ne_bot + theorem LieModule.independent_weightSpaceOf Modified Mathlib/LinearAlgebra/Eigenspace/Basic.lean + theorem Module.End.isNilpotent_restrict_iSup_sub_algebraMap + theorem Module.End.isNilpotent_restrict_sub_algebraMap Modified Mathlib/LinearAlgebra/Trace.lean + theorem LinearMap.trace_comp_eq_mul_of_commute_of_isNilpotent Modified Mathlib/RingTheory/Artinian.lean - theorem isArtinian_of_fg_of_artinian' Modified Mathlib/RingTheory/Ideal/Basic.lean + def Ideal.equivFinTwo 2023-11-20 21:32:32 d8fa728 docs: improve `Set` documentation (#8320) Document the fact that the defeq between `Set α` and `α → Prop` is an internal implementation detail ESTIMATED CHANGES Modified Mathlib/Init/Set.lean 2023-11-20 20:24:15 d1be80c fix: stop exposing an implicit accessible name in by_cases (#8542) This makes us use the core implementation of `by_cases`, which is more consistent with other lean 4 tactics. ESTIMATED CHANGES Modified Mathlib/Tactic/Basic.lean 2023-11-20 19:06:29 9a4ae4a chore: add some Unique instances (#8500) The aim is to remove some extraneous Nonempty assumptions in Algebra/DirectLimit. ESTIMATED CHANGES Modified Mathlib/Algebra/Category/ModuleCat/Limits.lean +/- def ModuleCat.directLimitIsColimit Modified Mathlib/Algebra/DirectLimit.lean +/- theorem AddCommGroup.DirectLimit.lift_unique +/- theorem Module.DirectLimit.lift_unique +/- theorem Ring.DirectLimit.lift_unique Modified Mathlib/Algebra/Group/TypeTags.lean Modified Mathlib/Data/Multiset/Basic.lean Modified Mathlib/Data/Quot.lean Modified Mathlib/GroupTheory/Abelianization.lean Modified Mathlib/GroupTheory/FreeAbelianGroup.lean Modified Mathlib/GroupTheory/FreeGroup/Basic.lean Modified Mathlib/LinearAlgebra/TensorProduct.lean Modified Mathlib/SetTheory/Cardinal/Ordinal.lean 2023-11-20 18:03:08 2009db6 chore: add missing hypothesis names to by_cases (#8533) I've also got a change to make this required, but I'd like to land this first. ESTIMATED CHANGES Modified Archive/Examples/IfNormalization/WithoutAesop.lean Modified Mathlib/Algebra/CharP/MixedCharZero.lean Modified Mathlib/Algebra/Homology/HomotopyCategory/HomComplex.lean Modified Mathlib/Algebra/Homology/ShortComplex/HomologicalComplex.lean Modified Mathlib/Algebra/Homology/Single.lean Modified Mathlib/Algebra/Squarefree.lean Modified Mathlib/AlgebraicTopology/DoldKan/Degeneracies.lean Modified Mathlib/AlgebraicTopology/DoldKan/NCompGamma.lean Modified Mathlib/AlgebraicTopology/DoldKan/SplitSimplicialObject.lean Modified Mathlib/AlgebraicTopology/ExtraDegeneracy.lean Modified Mathlib/AlgebraicTopology/SimplexCategory.lean Modified Mathlib/Analysis/Complex/OpenMapping.lean Modified Mathlib/Analysis/Complex/Schwarz.lean Modified Mathlib/Analysis/InnerProductSpace/Calculus.lean Modified Mathlib/Analysis/NormedSpace/Spectrum.lean Modified Mathlib/Analysis/SpecialFunctions/Gamma/Basic.lean Modified Mathlib/Analysis/SpecialFunctions/Pow/Complex.lean Modified Mathlib/Analysis/SpecialFunctions/Pow/Continuity.lean Modified Mathlib/Analysis/SpecialFunctions/Pow/Real.lean Modified Mathlib/CategoryTheory/Extensive.lean Modified Mathlib/CategoryTheory/Limits/Shapes/FiniteLimits.lean Modified Mathlib/CategoryTheory/Preadditive/Mat.lean Modified Mathlib/Combinatorics/SimpleGraph/AdjMatrix.lean Modified Mathlib/Combinatorics/SimpleGraph/Basic.lean Modified Mathlib/Computability/TMToPartrec.lean Modified Mathlib/Data/DFinsupp/WellFounded.lean Modified Mathlib/Data/List/Intervals.lean Modified Mathlib/Data/Matrix/Basic.lean Modified Mathlib/Data/Matrix/Block.lean Modified Mathlib/Data/Matrix/RowCol.lean Modified Mathlib/Data/Nat/Choose/Multinomial.lean Modified Mathlib/Data/Nat/Digits.lean Modified Mathlib/Data/Nat/MaxPowDiv.lean Modified Mathlib/Data/Polynomial/FieldDivision.lean Modified Mathlib/Data/Rat/Defs.lean Modified Mathlib/GroupTheory/Exponent.lean Modified Mathlib/Init/IteSimp.lean Modified Mathlib/LinearAlgebra/Matrix/Adjugate.lean Modified Mathlib/LinearAlgebra/Matrix/Charpoly/Coeff.lean Modified Mathlib/MeasureTheory/Decomposition/SignedHahn.lean Modified Mathlib/MeasureTheory/Function/Jacobian.lean Modified Mathlib/MeasureTheory/Function/LpSeminorm.lean Modified Mathlib/MeasureTheory/Function/UniformIntegrable.lean Modified Mathlib/MeasureTheory/Integral/Layercake.lean Modified Mathlib/ModelTheory/Semantics.lean Modified Mathlib/NumberTheory/Bertrand.lean Modified Mathlib/NumberTheory/Padics/PadicVal.lean Modified Mathlib/Order/Atoms.lean Modified Mathlib/Order/Birkhoff.lean Modified Mathlib/Order/CompleteBooleanAlgebra.lean Modified Mathlib/Order/Height.lean Modified Mathlib/RingTheory/Jacobson.lean Modified Mathlib/RingTheory/Polynomial/Pochhammer.lean Modified Mathlib/RingTheory/PowerBasis.lean Modified Mathlib/RingTheory/PowerSeries/Derivative.lean Modified Mathlib/RingTheory/UniqueFactorizationDomain.lean Modified Mathlib/RingTheory/Valuation/ValuationRing.lean Modified Mathlib/RingTheory/Valuation/ValuationSubring.lean Modified Mathlib/SetTheory/Ordinal/Notation.lean Modified Mathlib/Topology/Category/TopCat/Limits/Products.lean Modified Mathlib/Topology/Instances/AddCircle.lean Modified Mathlib/Topology/MetricSpace/ThickenedIndicator.lean 2023-11-20 17:20:53 d574737 chore: bump leantar 0.1.8 (#8506) The latest version of leantar [includes](https://github.com/digama0/leangz/compare/v0.1.7...v0.1.8) the following features and bug fixes: * Compression for `.hash` files * Support for non-GMP bignum (de)compression This is a backward compatible release, meaning that v0.1.8 can understand .ltar files produced by v0.1.7 and previous versions. So there should not be any hiccups during the transition period. The important fix is the non-GMP bignum bug: previously, leantar would always compress and decompress olean files as if they contained GMP bignums, but GMP is only enabled on some architectures. The CI machines enable GMP, so compression is not a problem, but decompression happens on user machines of all architectures and this can cause crashes or invalid .olean files on MacOS Arm64, Linux Arm64 and Windows. Surprisingly, no one has noticed this, and I believe the reason is because mathlib has never contained a numeric literal of size 2^64 or larger. Lean [has one](https://github.com/leanprover/lean4/blob/65d08fdcdd9fb825b588660cce4e082a758954fa/src/Init/Prelude.lean#L1972), but we don't ship oleans from the Init package as these come with the toolchain. ESTIMATED CHANGES Modified Cache/IO.lean 2023-11-20 16:56:57 1fe92bf feat(CategoryTheory): finite-product preserving presheaves are sheaves for extensive presieves (#7949) We prove that finite-product preserving presheaves on extensive categories are sheaves for `extensive` presieves. - [x] depends on: #7804 ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Sites/RegularExtensive.lean + theorem CategoryTheory.isSheafFor_extensive_of_preservesFiniteProducts + theorem CategoryTheory.isSheaf_iff_preservesFiniteProducts 2023-11-20 16:11:19 51d2ec9 feat(Probability/BorelCantelli): clarify documentation (#8527) Some of the students from my Lean seminar got quite confused trying to find the Borel-Cantelli lemmas in Mathlib, because there is a file `Probability.Martingale.BorelCantelli` but neither of the Borel-Cantelli lemmas are in it! This PR adds cross-links between the documentation strings for the various files concerned. (There are no changes to actual code.) ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Measure/MeasureSpace.lean Modified Mathlib/Probability/BorelCantelli.lean Modified Mathlib/Probability/Martingale/BorelCantelli.lean 2023-11-20 15:07:04 56336bf feat(Condensed): definition of solid abelian groups (#8238) We define solid abelian groups. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Condensed/Adjunctions.lean Added Mathlib/Condensed/Limits.lean Added Mathlib/Condensed/Solid.lean + def Condensed.profiniteSolid + def Condensed.profiniteSolidification 2023-11-20 12:33:30 1a01316 fix(CategoryTheory): remove unnecessary noncomputable modifier (#8528) The `EffectiveEpiStruct` for a `RegularEpi` turned out to become computable after applying suggestions from code review. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Sites/EffectiveEpimorphic.lean + def CategoryTheory.effectiveEpiStructOfRegularEpi 2023-11-20 11:31:55 a9ef2c3 feat(RingTheory/Ideal/Basic): an ideal is prime if it is maximally disjoint from a submonoid (#7460) ESTIMATED CHANGES Modified Mathlib/RingTheory/Ideal/Basic.lean + theorem Ideal.isPrime_of_maximally_disjoint 2023-11-20 10:21:53 7275625 feat: add Algebra.coe_trace_int (#8513) From flt-regular. ESTIMATED CHANGES Modified Mathlib/NumberTheory/NumberField/Norm.lean +/- theorem Algebra.coe_norm_int + theorem Algebra.coe_trace_int 2023-11-20 10:21:52 c21c11f chore: exact? runs nonspecific lemmas too (#8459) Previously, `exact?` has only indexed lemmas with a "specific" `DiscrTree` key (this meant: anything except `#[star]` or `#[Eq, star, star, star]`). This means that it wouldn't apply some very general lemmas, e.g. `le_antisymm`. The performance improvement here is pretty minor: the `DiscrTree` returns the more specific matches first, so we only attempt to apply the nonspecific keys last (i.e. if we would otherwise have already failed). ESTIMATED CHANGES Modified Mathlib/Tactic/LibrarySearch.lean - def Mathlib.Tactic.LibrarySearch.addLemma Modified test/LibrarySearch/basic.lean 2023-11-20 10:21:51 01a486f chore(LinearAlgebra/AffineSpace/AffineSubspace): trivial affine morphisms (#8434) We already have the `LinearEquiv` versions of these. This also copies the lemmas around the definition ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/AffineSpace/AffineSubspace.lean + theorem AffineEquiv.coe_ofEq_apply + def AffineEquiv.ofEq + theorem AffineEquiv.ofEq_rfl + theorem AffineEquiv.ofEq_symm + theorem AffineSubspace.coe_inclusion_apply + def AffineSubspace.inclusion + theorem AffineSubspace.inclusion_rfl + def AffineSubspace.topEquiv 2023-11-20 09:57:50 cf21ac0 chore: bump Std (#8526) ESTIMATED CHANGES Modified Mathlib/Tactic/Basic.lean - def Lean.MVarId.changeLocalDecl' - def Lean.MVarId.withReverted Modified Mathlib/Tactic/Coe.lean Modified lake-manifest.json Modified lakefile.lean Modified test/Change.lean - def foo Modified test/FunLike.lean Modified test/RewriteSearch/Polynomial.lean 2023-11-20 08:02:25 0f76a69 chore: keep fewer toolchains on the CI runners (#8525) The CI runner machines are continually running out of disk space. Really, we just need more space: I don't see any sign it is growing out of control. This PR slims down the toolchain directory a bit more, to give us some more slack. ESTIMATED CHANGES Modified .github/workflows/bors.yml Modified .github/workflows/build.yml Modified .github/workflows/build.yml.in Modified .github/workflows/build_fork.yml 2023-11-20 08:02:24 9d8dfde chore: weaken norm_num test to cope with slow multiplication on non-GMP systems (#8523) Per zulip [discussion](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/.6010.5E40000000.20.3D.2010.5E40000000.20.3A.3D.20by.20norm_num.60/near/402795350). ESTIMATED CHANGES Modified test/norm_num.lean 2023-11-20 07:39:35 12dd16a feat(Order/LiminfLimsup): lemmas on set liminf/sup (#8524) Add two simple lemmas identifying "liminf" of a family of sets along a filter as "things which are eventually members", and "limsup" as "things which are frequently members". ESTIMATED CHANGES Modified Mathlib/Order/LiminfLimsup.lean + theorem Filter.mem_liminf_iff_eventually_mem + theorem Filter.mem_limsup_iff_frequently_mem 2023-11-20 04:04:38 28f19fe chore: bump Std (#8505) ESTIMATED CHANGES Modified Mathlib/Order/Basic.lean - theorem ge_iff_le - theorem gt_iff_lt - theorem le_of_eq_of_le - theorem le_of_le_of_eq - theorem lt_of_eq_of_lt - theorem lt_of_lt_of_eq Modified Mathlib/Tactic/Common.lean Modified Mathlib/Tactic/LibrarySearch.lean Modified Mathlib/Tactic/Rewrites.lean - def Mathlib.Tactic.Rewrites.addLemma + def Mathlib.Tactic.Rewrites.keysSpecific Modified lake-manifest.json Modified test/LibrarySearch/basic.lean Modified test/hint.lean Modified test/rewrites.lean 2023-11-20 03:02:35 fd32573 chore: silence tests, and enforce this (#8438) ESTIMATED CHANGES Modified GNUmakefile Modified test/DeriveFintype.lean Modified test/Expr.lean Modified test/FBinop.lean Modified test/Find.lean Modified test/Imports.lean Modified test/MaxPowDiv.lean Modified test/TypeCheck.lean Modified test/eqns.lean Modified test/finsupp_notation.lean Modified test/search/DepthFirst.lean Modified test/success_if_fail_with_msg.lean Modified test/symm.lean 2023-11-20 01:56:27 8b144fa refactor(Logic/Unique): remove dependency on `Fin` (#8510) `Unique` should be available earlier than results about `Fin n`, by virtue of being a very basic logic typeclass with no dependencies on Nat or algebra. This also generalizes some of the moved instances and lemmas. There are no new declarations in this PR, only renames of existing ones. ESTIMATED CHANGES Modified Mathlib/Data/Countable/Defs.lean Modified Mathlib/Data/Fin/Basic.lean + theorem Fin.default_eq_zero + theorem Fin.eq_zero Modified Mathlib/Data/List/Nodup.lean Modified Mathlib/Data/ZMod/Defs.lean Modified Mathlib/Logic/Unique.lean - theorem Fin.default_eq_zero - theorem Fin.eq_zero 2023-11-20 00:38:19 d98fa2b chore: rewrite lakefile.lean (#8456) Reorganize lakefile.lean, and remove unnecessary stuff. ESTIMATED CHANGES Modified Archive/Imo/Imo1987Q1.lean Modified lakefile.lean 2023-11-19 22:31:37 c697956 Extend RingTheory.Flat.iff_rTensor_injective to all ideals (#8494) Extend `RingTheory.Flat.iff_rTensor_injective` to all ideals Using an elementary argument after Dummit and Foote (2004, Ex. 10.25) ESTIMATED CHANGES Modified Mathlib/RingTheory/Finiteness.lean + theorem Submodule.exists_fg_le_eq_rTensor_inclusion Modified Mathlib/RingTheory/Flat.lean + theorem Module.Flat.iff_rTensor_injective' 2023-11-19 21:13:39 b5586ed chore: faster help text from 'lake exe cache' (#8454) Don't traverse the project when the user just wants help text. Reduces runtime of `lake exe cache` (with pre-built binary) from 600ms to 200ms. ESTIMATED CHANGES Modified Cache/Main.lean 2023-11-19 20:53:09 34ab8d4 chore: build ProofWidgets before tests (#8416) After leanprover/lean4#2766 this becomes critical. ESTIMATED CHANGES Modified .github/workflows/bors.yml Modified .github/workflows/build.yml Modified .github/workflows/build.yml.in Modified .github/workflows/build_fork.yml 2023-11-19 20:53:08 693fd79 chore: replace `exact_mod_cast` tactic with `mod_cast` elaborator where possible (#8404) We still have the `exact_mod_cast` tactic, used in a few places, which somehow (?) works a little bit harder to prevent the expected type influencing the elaboration of the term. I would like to get to the bottom of this, and it will be easier once the only usages of `exact_mod_cast` are the ones that don't work using the term elaborator by itself. ESTIMATED CHANGES Modified Archive/Imo/Imo1981Q3.lean +/- theorem Imo1981Q3.NatPredicate.m_pos +/- theorem Imo1981Q3.NatPredicate.n_le_N +/- theorem Imo1981Q3.NatPredicate.n_pos Modified Archive/Imo/Imo1988Q6.lean Modified Archive/Imo/Imo2013Q5.lean Modified Archive/Sensitivity.lean Modified Archive/Wiedijk100Theorems/AbelRuffini.lean Modified Archive/Wiedijk100Theorems/Partition.lean Modified Archive/Wiedijk100Theorems/SumOfPrimeReciprocalsDiverges.lean Modified Mathlib/Algebra/CharP/CharAndCard.lean Modified Mathlib/Algebra/CharP/Invertible.lean Modified Mathlib/Algebra/CharZero/Lemmas.lean Modified Mathlib/Algebra/ContinuedFractions/Computation/ApproximationCorollaries.lean Modified Mathlib/Algebra/ContinuedFractions/Computation/Approximations.lean Modified Mathlib/Algebra/GeomSum.lean +/- theorem Odd.nat_add_dvd_pow_add_pow Modified Mathlib/Algebra/LinearRecurrence.lean Modified Mathlib/Algebra/Module/Injective.lean Modified Mathlib/Algebra/Module/Submodule/Lattice.lean +/- theorem Submodule.eq_zero_of_coe_mem_of_disjoint Modified Mathlib/Algebra/Order/Archimedean.lean Modified Mathlib/Algebra/Order/CompleteField.lean +/- theorem LinearOrderedField.inducedMap_one +/- theorem LinearOrderedField.inducedMap_zero Modified Mathlib/Algebra/Order/Field/Power.lean Modified Mathlib/Algebra/Order/Floor.lean +/- theorem Int.ceil_eq_on_Ioc' +/- theorem Int.ceil_nonneg +/- theorem Int.floor_sub_one +/- theorem Int.fract_add_one +/- theorem Int.fract_one_add +/- theorem Int.fract_sub_one +/- theorem Nat.floor_sub_one +/- theorem Nat.lt_one_of_floor_lt_one +/- theorem Nat.one_le_floor_iff +/- theorem round_add_nat +/- theorem round_sub_nat Modified Mathlib/Algebra/Periodic.lean Modified Mathlib/Analysis/Analytic/Basic.lean Modified Mathlib/Analysis/Calculus/ContDiff/Defs.lean Modified Mathlib/Analysis/Convex/SpecificFunctions/Pow.lean Modified Mathlib/Analysis/Distribution/SchwartzSpace.lean Modified Mathlib/Analysis/InnerProductSpace/Basic.lean Modified Mathlib/Analysis/InnerProductSpace/GramSchmidtOrtho.lean Modified Mathlib/Analysis/InnerProductSpace/OfNorm.lean Modified Mathlib/Analysis/InnerProductSpace/Spectrum.lean Modified Mathlib/Analysis/InnerProductSpace/l2Space.lean Modified Mathlib/Analysis/MeanInequalities.lean Modified Mathlib/Analysis/MeanInequalitiesPow.lean Modified Mathlib/Analysis/Normed/Field/Basic.lean +/- theorem NormedField.exists_lt_nnnorm_lt Modified Mathlib/Analysis/NormedSpace/PiLp.lean Modified Mathlib/Analysis/NormedSpace/Pointwise.lean Modified Mathlib/Analysis/NormedSpace/ProdLp.lean Modified Mathlib/Analysis/NormedSpace/Spectrum.lean Modified Mathlib/Analysis/SpecialFunctions/Bernstein.lean Modified Mathlib/Analysis/SpecialFunctions/CompareExp.lean Modified Mathlib/Analysis/SpecialFunctions/Complex/Arg.lean Modified Mathlib/Analysis/SpecialFunctions/Exp.lean Modified Mathlib/Analysis/SpecialFunctions/Exponential.lean Modified Mathlib/Analysis/SpecialFunctions/Gamma/Basic.lean Modified Mathlib/Analysis/SpecialFunctions/Integrals.lean Modified Mathlib/Analysis/SpecialFunctions/Log/Basic.lean Modified Mathlib/Analysis/SpecialFunctions/Pow/Asymptotics.lean Modified Mathlib/Analysis/SpecialFunctions/Pow/Complex.lean +/- theorem Complex.cpow_nat_mul Modified Mathlib/Analysis/SpecialFunctions/Pow/Continuity.lean Modified Mathlib/Analysis/SpecialFunctions/Pow/NNReal.lean Modified Mathlib/Analysis/SpecialFunctions/Pow/Real.lean Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Angle.lean Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/ArctanDeriv.lean +/- theorem Real.hasDerivAt_tan +/- theorem Real.hasStrictDerivAt_tan Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Basic.lean +/- theorem NNReal.pi_pos Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Chebyshev.lean +/- theorem Polynomial.Chebyshev.T_real_cos +/- theorem Polynomial.Chebyshev.U_real_cos Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Complex.lean +/- theorem Real.cos_eq_zero_iff Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Series.lean Modified Mathlib/Analysis/SpecificLimits/Basic.lean Modified Mathlib/Combinatorics/Additive/Behrend.lean Modified Mathlib/Combinatorics/Additive/PluenneckeRuzsa.lean Modified Mathlib/Combinatorics/Catalan.lean Modified Mathlib/Combinatorics/SimpleGraph/Density.lean Modified Mathlib/Combinatorics/SimpleGraph/Regularity/Bound.lean Modified Mathlib/Combinatorics/SimpleGraph/Regularity/Chunk.lean Modified Mathlib/Combinatorics/SimpleGraph/Regularity/Increment.lean Modified Mathlib/Combinatorics/SimpleGraph/Regularity/Lemma.lean Modified Mathlib/Data/Complex/Basic.lean +/- theorem Complex.div_int_cast +/- theorem Complex.div_nat_cast +/- theorem Complex.div_rat_cast Modified Mathlib/Data/Complex/Exponential.lean Modified Mathlib/Data/Finset/Basic.lean +/- theorem Finset.ssubset_iff Modified Mathlib/Data/Finsupp/Basic.lean Modified Mathlib/Data/Finsupp/Defs.lean +/- theorem Finsupp.support_eq_empty Modified Mathlib/Data/Int/Cast/Lemmas.lean +/- theorem Int.cast_one_le_of_pos Modified Mathlib/Data/Int/Log.lean Modified Mathlib/Data/Nat/Choose/Bounds.lean Modified Mathlib/Data/Nat/Multiplicity.lean Modified Mathlib/Data/Nat/Squarefree.lean Modified Mathlib/Data/Polynomial/Degree/CardPowDegree.lean Modified Mathlib/Data/Polynomial/RingDivision.lean Modified Mathlib/Data/Rat/Floor.lean Modified Mathlib/Data/Rat/Lemmas.lean Modified Mathlib/Data/Rat/Order.lean Modified Mathlib/Data/Real/ENNReal.lean Modified Mathlib/Data/Real/Irrational.lean +/- theorem Irrational.ne_zero Modified Mathlib/Data/Real/NNReal.lean +/- theorem Real.toNNReal_eq_nat_cast Modified Mathlib/Data/Real/Pi/Bounds.lean Modified Mathlib/Data/ZMod/Basic.lean Modified Mathlib/Dynamics/Circle/RotationNumber/TranslationNumber.lean Modified Mathlib/FieldTheory/Finite/Basic.lean Modified Mathlib/Geometry/Euclidean/MongePoint.lean Modified Mathlib/GroupTheory/Divisible.lean Modified Mathlib/GroupTheory/FreeAbelianGroupFinsupp.lean Modified Mathlib/GroupTheory/SpecificGroups/Cyclic.lean Modified Mathlib/InformationTheory/Hamming.lean Modified Mathlib/LinearAlgebra/AffineSpace/FiniteDimensional.lean Modified Mathlib/LinearAlgebra/FiniteDimensional.lean Modified Mathlib/LinearAlgebra/Finrank.lean Modified Mathlib/LinearAlgebra/LinearPMap.lean Modified Mathlib/MeasureTheory/Constructions/BorelSpace/Basic.lean Modified Mathlib/MeasureTheory/Covering/BesicovitchVectorSpace.lean Modified Mathlib/MeasureTheory/Function/L1Space.lean Modified Mathlib/MeasureTheory/Function/LpSpace.lean Modified Mathlib/MeasureTheory/Function/SimpleFuncDenseLp.lean Modified Mathlib/MeasureTheory/Integral/Lebesgue.lean Modified Mathlib/MeasureTheory/MeasurableSpace/Card.lean Modified Mathlib/MeasureTheory/Measure/Haar/Basic.lean Modified Mathlib/MeasureTheory/Measure/Hausdorff.lean Modified Mathlib/NumberTheory/Bernoulli.lean Modified Mathlib/NumberTheory/BernoulliPolynomials.lean Modified Mathlib/NumberTheory/Bertrand.lean Modified Mathlib/NumberTheory/ClassNumber/AdmissibleCardPowDegree.lean Modified Mathlib/NumberTheory/ClassNumber/Finite.lean Modified Mathlib/NumberTheory/Cyclotomic/Basic.lean Modified Mathlib/NumberTheory/Cyclotomic/Discriminant.lean Modified Mathlib/NumberTheory/DiophantineApproximation.lean Modified Mathlib/NumberTheory/FLT/Basic.lean Modified Mathlib/NumberTheory/FermatPsp.lean Modified Mathlib/NumberTheory/LegendreSymbol/AddCharacter.lean Modified Mathlib/NumberTheory/LegendreSymbol/Basic.lean Modified Mathlib/NumberTheory/LegendreSymbol/QuadraticReciprocity.lean Modified Mathlib/NumberTheory/LegendreSymbol/ZModChar.lean Modified Mathlib/NumberTheory/Liouville/Basic.lean Modified Mathlib/NumberTheory/Liouville/LiouvilleWith.lean Modified Mathlib/NumberTheory/LucasLehmer.lean Modified Mathlib/NumberTheory/Modular.lean Modified Mathlib/NumberTheory/Padics/PadicIntegers.lean Modified Mathlib/NumberTheory/Padics/PadicNorm.lean Modified Mathlib/NumberTheory/Padics/PadicNumbers.lean Modified Mathlib/NumberTheory/Padics/PadicVal.lean Modified Mathlib/NumberTheory/Padics/RingHoms.lean Modified Mathlib/NumberTheory/Pell.lean Modified Mathlib/NumberTheory/PellMatiyasevic.lean Modified Mathlib/NumberTheory/PrimesCongruentOne.lean Modified Mathlib/NumberTheory/SumFourSquares.lean Modified Mathlib/NumberTheory/ZetaValues.lean Modified Mathlib/NumberTheory/Zsqrtd/Basic.lean Modified Mathlib/Order/Filter/Archimedean.lean Modified Mathlib/Order/Filter/Basic.lean Modified Mathlib/Probability/Kernel/CondCdf.lean Modified Mathlib/Probability/Variance.lean Modified Mathlib/RingTheory/DiscreteValuationRing/Basic.lean Modified Mathlib/RingTheory/Perfection.lean Modified Mathlib/RingTheory/Polynomial/Bernstein.lean Modified Mathlib/RingTheory/Polynomial/Cyclotomic/Eval.lean Modified Mathlib/RingTheory/Polynomial/Eisenstein/IsIntegral.lean Modified Mathlib/RingTheory/Polynomial/Pochhammer.lean Modified Mathlib/RingTheory/RootsOfUnity/Basic.lean Modified Mathlib/RingTheory/RootsOfUnity/Complex.lean Modified Mathlib/RingTheory/WittVector/Frobenius.lean Modified Mathlib/RingTheory/WittVector/FrobeniusFractionField.lean Modified Mathlib/RingTheory/WittVector/MulCoeff.lean Modified Mathlib/RingTheory/WittVector/StructurePolynomial.lean Modified Mathlib/RingTheory/WittVector/WittPolynomial.lean Modified Mathlib/SetTheory/Cardinal/Cofinality.lean Modified Mathlib/SetTheory/Cardinal/Divisibility.lean Modified Mathlib/SetTheory/Cardinal/Ordinal.lean Modified Mathlib/SetTheory/Surreal/Dyadic.lean Modified Mathlib/Tactic/NormNum/Eq.lean Modified Mathlib/Tactic/NormNum/GCD.lean Modified Mathlib/Topology/Algebra/GroupCompletion.lean Modified Mathlib/Topology/Algebra/InfiniteSum/Real.lean Modified Mathlib/Topology/Algebra/Module/Basic.lean Modified Mathlib/Topology/Algebra/Polynomial.lean Modified Mathlib/Topology/Algebra/Valuation.lean Modified Mathlib/Topology/ContinuousFunction/StoneWeierstrass.lean Modified Mathlib/Topology/Instances/AddCircle.lean Modified Mathlib/Topology/Instances/ENNReal.lean Modified Mathlib/Topology/Instances/Nat.lean +/- theorem Nat.pairwise_one_le_dist Modified Mathlib/Topology/MetricSpace/Antilipschitz.lean Modified Mathlib/Topology/MetricSpace/Dilation.lean Modified Mathlib/Topology/MetricSpace/PseudoMetric.lean Modified Mathlib/Topology/Separation.lean 2023-11-19 18:46:11 7b0cbe2 chore: use Std's runLinter (#8461) ESTIMATED CHANGES Modified .github/workflows/bors.yml Modified .github/workflows/build.yml Modified .github/workflows/build.yml.in Modified .github/workflows/build_fork.yml Modified GNUmakefile Modified lakefile.lean Deleted scripts/runMathlibLinter.lean - def readJsonFile - def writeJsonFile 2023-11-19 15:17:30 778f663 chore: restore simpler code in foldrRecOn and foldlRecOn (#8508) #1720 made `List.rec` computable and therefore made it possible to restore the simpler versions of `foldrRecOn` and `foldlRecOn`. ESTIMATED CHANGES Modified Mathlib/Data/List/Basic.lean 2023-11-19 10:31:56 35f9ee3 chore: typo in `MeasurableSet[m]` docstring (#8502) ESTIMATED CHANGES Modified Mathlib/MeasureTheory/MeasurableSpace/Defs.lean 2023-11-19 10:31:55 55ad9df chore: address porting note in Archive/Imo/Imo1994Q1 -- linarith works now (#8496) According to `git bisect`, #7905 is what made the single `linarith` call work here. ESTIMATED CHANGES Modified Archive/Imo/Imo1994Q1.lean 2023-11-19 10:31:54 6f853a6 feat: move the lemma Algebra.coe_norm_int (#8481) The following lemma: ```lean theorem Algebra.coe_norm_int {K : Type*} [Field K] [NumberField K] (x : 𝓞 K) : Algebra.norm ℤ x = Algebra.norm ℚ (x : K) ``` is currently in `NumberField.Units` but it belongs to `NumberField.Norm` ESTIMATED CHANGES Modified Mathlib/NumberTheory/NumberField/Norm.lean + theorem Algebra.coe_norm_int Modified Mathlib/NumberTheory/NumberField/Units.lean - theorem Algebra.coe_norm_int 2023-11-19 10:08:45 e49b5d0 feat(NumberTheory/EulerProduct): general statements about Euler products (#8410) This adds a folder `NumberTheory.EulerProduct` and within it the file `Basic.lean`, which contains some general results on Euler products (for functions from the naturals into a complete normed field, with suitable properties). ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/NumberTheory/EulerProduct/Basic.lean + theorem EulerProduct.eulerProduct + theorem EulerProduct.eulerProduct_completely_multiplicative + theorem EulerProduct.norm_tsum_smoothNumbers_sub_tsum_lt + theorem EulerProduct.prod_primesBelow_geometric_eq_tsum_smoothNumbers + theorem EulerProduct.prod_primesBelow_tsum_eq_tsum_smoothNumbers + theorem EulerProduct.summable_and_hasSum_smoothNumbers_prod_primesBelow_geometric + theorem EulerProduct.summable_and_hasSum_smoothNumbers_prod_primesBelow_tsum + theorem Summable.norm_lt_one Modified Mathlib/NumberTheory/SmoothNumbers.lean + theorem Nat.map_prime_pow_mul 2023-11-19 05:23:04 de1f917 chore: fix branches for dependencies (#8504) ESTIMATED CHANGES Modified lake-manifest.json Modified lakefile.lean 2023-11-19 01:23:35 c8d9ed0 feat(Data/Nat): add Nat.div_pow (#8327) Adds the missing lemma Nat.div_pow, which seemed to be missing (at least, `exact?%` couldn't find it with all of Mathlib imported). Also moves `div_mul_div_comm` higher in the hierarchy (and golf) because it doesn't need the ordered semiring instance, cf the docstring of `Data/Nat/Order/Basic`. ESTIMATED CHANGES Modified Mathlib/Data/Nat/Basic.lean + theorem Nat.div_mul_div_comm Modified Mathlib/Data/Nat/Order/Basic.lean - theorem Nat.div_mul_div_comm 2023-11-18 22:29:22 5d29e6c refactor: fold isStrictIntComparison into mkNonstrictIntProof in Linarith.Preprocessing (#8488) Implements the refactor proposed in https://github.com/leanprover-community/mathlib4/pull/8310#issuecomment-1817330246. ESTIMATED CHANGES Modified Mathlib/Tactic/Linarith/Preprocessing.lean - def Linarith.isStrictIntComparison +/- def Linarith.mkNonstrictIntProof 2023-11-18 21:30:09 1d2d1d0 feat(NormedSpace/FiniteDimension): add `IsBigO.comp_summable` (#8359) Add `Asymptotics.IsBigO.comp_summable`. ESTIMATED CHANGES Modified Mathlib/Analysis/Asymptotics/Asymptotics.lean + theorem Asymptotics.IsBigO.comp_summable_norm +/- theorem summable_of_isBigO +/- theorem summable_of_isBigO_nat Modified Mathlib/Analysis/NormedSpace/FiniteDimension.lean + theorem Asymptotics.IsBigO.comp_summable 2023-11-18 16:07:41 cfed43f feat: abel_nf fails if it makes no progress (#8487) As requested on [zulip](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/abel.20and.20progress/near/402762053). ESTIMATED CHANGES Modified Mathlib/Tactic/Abel.lean Modified test/abel.lean 2023-11-18 13:18:23 d78d69d chore: check exact? is fixed by leanprover/std4#368 (#8458) Adds a test for an `exact?` failure reported on [zulip](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/apply.3F.20failure/near/402534407) ESTIMATED CHANGES Modified Mathlib/Lean/Meta.lean - def Lean.MVarId.independent? - def Lean.MVarId.subsingleton? Modified Mathlib/Tactic/Backtrack.lean Modified test/LibrarySearch/basic.lean 2023-11-18 10:10:57 8759327 feat: some lemmas about UniqueFactorizationMonoids (#8486) From flt-regular. ESTIMATED CHANGES Modified Mathlib/RingTheory/UniqueFactorizationDomain.lean + theorem UniqueFactorizationMonoid.factors_pow_count_prod + theorem UniqueFactorizationMonoid.mem_normalizedFactors_iff + theorem UniqueFactorizationMonoid.normalizedFactors_multiset_prod 2023-11-18 09:34:25 af527f2 chore: make fullyFaithfulReflects(Co)Limits instances (#8462) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Limits/Preserves/Basic.lean - def CategoryTheory.Limits.fullyFaithfulReflectsColimits - def CategoryTheory.Limits.fullyFaithfulReflectsLimits Modified Mathlib/CategoryTheory/Limits/Shapes/NormalMono/Basic.lean Modified Mathlib/CategoryTheory/Limits/Yoneda.lean Modified Mathlib/Topology/Category/CompHaus/Limits.lean Modified Mathlib/Topology/Category/Profinite/Basic.lean Modified Mathlib/Topology/Category/Profinite/Limits.lean Modified Mathlib/Topology/Category/Stonean/Limits.lean 2023-11-18 03:56:53 b9e2e65 feat: remove `DecidableEq` argument from `Finset.sym2` (#8211) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Data/Finset/Sym.lean + theorem Finset.card_sym2 + theorem Finset.injective_sym2 - theorem Finset.isDiag_mk'_of_mem_diag + theorem Finset.isDiag_mk_of_mem_diag +/- theorem Finset.mem_sym2_iff - theorem Finset.mk'_mem_sym2_iff + theorem Finset.mk_mem_sym2_iff + theorem Finset.monotone_sym2 - theorem Finset.not_isDiag_mk'_of_mem_offDiag + theorem Finset.not_isDiag_mk_of_mem_offDiag + theorem Finset.strictMono_sym2 + theorem Finset.sym2_eq_image +/- theorem Finset.sym2_mono +/- theorem Finset.sym2_singleton + theorem Finset.sym2_toFinset +/- theorem Finset.sym2_univ Added Mathlib/Data/List/Sym.lean + theorem List.first_mem_of_cons_mem_sym + theorem List.left_mem_of_mk_mem_sym2 + theorem List.length_sym2 + theorem List.length_sym + theorem List.mem_of_mem_of_mem_sym + theorem List.mem_sym2_cons_iff + theorem List.mem_sym2_iff + theorem List.mk_mem_sym2 + theorem List.mk_mem_sym2_iff + theorem List.right_mem_of_mk_mem_sym2 + theorem List.sym2_eq_nil_iff + theorem List.sym2_eq_sym_two + theorem List.sym_map + theorem List.sym_one_eq + theorem List.sym_sublist_sym_cons Added Mathlib/Data/Multiset/Sym.lean + theorem Multiset.card_sym2 + theorem Multiset.mem_sym2_iff + theorem Multiset.mk_mem_sym2_iff + theorem Multiset.monotone_sym2 + theorem Multiset.sym2_coe + theorem Multiset.sym2_eq_zero_iff + theorem Multiset.sym2_mono Modified Mathlib/Data/Sym/Basic.lean + theorem Sym.exists_cons_of_mem + theorem Sym.not_mem_nil Modified Mathlib/Data/Sym/Card.lean - theorem Finset.card_sym2 +/- theorem Sym2.card_image_diag 2023-11-18 03:04:42 5e4a27b fix: add some missing whnfR in Linarith/Preprocess (#8310) Fixes this example reported on zulip: ``` import Mathlib.Tactic.Linarith --set_option pp.raw true --set_option trace.linarith true example (k : ℤ) (h : k < 1) (h₁ : -1 < k) : k = 0 := by -- linarith -- works change -1 < _ at h₁ -- linarith -- fails! have hk : k = 0 := by linarith exact hk ``` See https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/linarith.20fails.20in.20a.20simple.20example/near/401267407. In the failure case, when the strengthenStrictInt preprocessor does inferType on the h₁ : -1 < k hypothesis, it sees it as an mvar, and therefore the match on `getAppFnArgs` fails. ESTIMATED CHANGES Modified Mathlib/Tactic/Linarith/Preprocessing.lean +/- def Linarith.isStrictIntComparison Modified test/linarith.lean 2023-11-18 01:09:04 b0e957d fix: remove remaining `^` fixes (#8463) ESTIMATED CHANGES Modified Archive/Imo/Imo2020Q2.lean Modified Counterexamples/CliffordAlgebra_not_injective.lean Modified Mathlib/Algebra/Module/Submodule/LinearMap.lean Modified Mathlib/Algebra/Quaternion.lean +/- theorem Cardinal.mk_quaternion +/- theorem Cardinal.mk_quaternionAlgebra +/- theorem Cardinal.mk_univ_quaternion +/- theorem Cardinal.mk_univ_quaternionAlgebra Modified Mathlib/Analysis/NormedSpace/Spectrum.lean Modified Mathlib/Data/Complex/Basic.lean Modified Mathlib/LinearAlgebra/TensorAlgebra/Basis.lean Modified Mathlib/MeasureTheory/Constructions/HaarToSphere.lean Modified Mathlib/MeasureTheory/Function/UniformIntegrable.lean Modified Mathlib/MeasureTheory/Measure/Hausdorff.lean Modified Mathlib/NumberTheory/NumberField/CanonicalEmbedding.lean Modified Mathlib/NumberTheory/NumberField/Discriminant.lean Modified Mathlib/NumberTheory/NumberField/Units.lean Modified Mathlib/SetTheory/Cardinal/Basic.lean +/- theorem Cardinal.mk_finset_of_fintype +/- theorem Cardinal.mk_list_eq_sum_pow +/- theorem Cardinal.mk_vector +/- theorem Cardinal.pow_cast_right Modified Mathlib/SetTheory/Cardinal/Cofinality.lean Modified Mathlib/SetTheory/Cardinal/Ordinal.lean +/- theorem Cardinal.power_nat_eq +/- theorem Cardinal.power_nat_le Modified Mathlib/SetTheory/Ordinal/Notation.lean Modified test/norm_cast.lean 2023-11-18 00:38:30 b6646ed feat: IsNormalClosure predicate (#8418) Main changes are to the file NormalClosure: + Introduce predicate `IsNormalClosure` to characterize normal closures L/F of a field extension K/F by the conditions that every minimal polynomial of an element of K over F splits in L, and that L is generated by roots of such polynomials. (When K/F is not necessarily algebraic, the conditions actually says L/F is a normal closure of the algebraic closure of F in K over F. + `IsNormalClosure.normal`: a normal closure is always normal. + `isNormalClosure_iff `: if K/F is algebraic, the "generated by roots" condition in IsNormalClosure can be replaced by "generated by images of embeddings". To prove it, we split out the two inclusions in `restrictScalars_eq_iSup_adjoin` and golf its proof. `restrictScalars_eq_iSup_adjoin` is renamed to `normalClosure_eq_iSup_adjoin` as it has nothing to do with `restrictScalars`. + `IsNormalClosure.lift`: a normal closure of K/F embeds into any L/F such that the minpolys of K/F splits in L/F. + `IsNormalClosure.equiv`: normal closures are unique up to F-algebra isomorphisms. + `isNormalClosure_normalClosure`: `normalClosure F K L` is a valid normal closure if K/F is algebraic and all minpolys of K/F splits in L/F; in particular, if there is at least one F-embedding of K into L, and L/F is normal. + `Algebra.IsAlgebraic.cardinal_mk_algHom_le_of_splits`: if every minpoly of `K/F` splits in `L/F`, then `L` is maximal w.r.t. `F`-embeddings of `K`, in the sense that `K →ₐ[F] L` achieves maximal cardinality. In the file Normal: + `splits_of_mem_adjoin`: If a set of algebraic elements in a field extension `K/F` have minimal polynomials that split in another extension `L/F`, then all minimal polynomials in the intermediate field generated by the set also split in `L/F`. This is in preparation for connecting `IsNormalClosure` and `IsSplittingField`. In the file IntermediateField: + Add `comap` and show it forms a Galois connection with `map`. In the file FieldTheory/Adjoin: + Add `map_sup/iSup` lemmas that follow from the Galois connection, plus an additional convenience lemma. In the file RingTheory/Algebraic: add a lemma `AlgHom.isAlgebraic_of_injective`. ESTIMATED CHANGES Modified Mathlib/FieldTheory/Adjoin.lean +/- theorem AlgEquiv.fieldRange_eq_top +/- theorem AlgHom.fieldRange_eq_map +/- theorem AlgHom.fieldRange_eq_top +/- theorem AlgHom.map_fieldRange +/- theorem IntermediateField.biSup_adjoin_simple +/- theorem IntermediateField.map_bot + theorem IntermediateField.map_iSup + theorem IntermediateField.map_sup + theorem isSplittingField_iff_intermediateField Modified Mathlib/FieldTheory/IntermediateField.lean + def IntermediateField.comap + theorem IntermediateField.gc_map_comap + theorem IntermediateField.map_le_iff_le_comap Modified Mathlib/FieldTheory/Normal.lean + theorem IntermediateField.splits_of_mem_adjoin Modified Mathlib/FieldTheory/NormalClosure.lean +/- theorem AlgHom.fieldRange_le_normalClosure + theorem Algebra.IsAlgebraic.isNormalClosure_iff + theorem Algebra.IsAlgebraic.isNormalClosure_normalClosure + theorem Algebra.IsAlgebraic.normalClosure_eq_iSup_adjoin_of_splits + theorem Algebra.IsAlgebraic.normalClosure_le_iSup_adjoin + theorem IsNormalClosure.normal - theorem normalClosure.restrictScalars_eq_iSup_adjoin + theorem normalClosure_eq_iSup_adjoin' + theorem normalClosure_eq_iSup_adjoin 2023-11-17 21:01:04 0847db5 feat: convenient meta declarations (#7519) These declarations are picked from #5938. ESTIMATED CHANGES Modified Mathlib/Lean/Expr/Basic.lean + def Lean.Expr.getAppApps + def Lean.Expr.reduceProjStruct? Modified Mathlib/Lean/Meta/Basic.lean + def Lean.Meta.mkRel + def Lean.Meta.pureIsDefEq Modified Mathlib/Tactic/Relation/Rfl.lean + def Lean.Expr.relSidesIfRefl? Modified Mathlib/Tactic/Relation/Symm.lean + def Lean.Expr.relSidesIfSymm? Added test/meta.lean + def Tests.eFalse + def Tests.eNat + def Tests.eNatOne + def Tests.eNatZero + def Tests.eTrue + def Tests.eq2 + theorem Tests.eq2_symm 2023-11-17 19:26:15 b1febe5 refactor: rename `Submodule.ofLe` to `Submodule.inclusion` (#8470) This matches `Set.inclusion`, `Subring.inclusion`, `Subalgebra.inclusion`, etc. Also renames the `homOfLe` spellings in `Algebra/Lie` to match. Note that we leave `LieSubalgebra.ofLe`, as this is a completely different statement! As requested by @alreadydone. ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/NonUnitalSubalgebra.lean Modified Mathlib/Algebra/Algebra/Subalgebra/Basic.lean Modified Mathlib/Algebra/Category/ModuleCat/Subobject.lean Modified Mathlib/Algebra/Lie/Semisimple.lean Modified Mathlib/Algebra/Lie/Solvable.lean Modified Mathlib/Algebra/Lie/Subalgebra.lean - theorem LieSubalgebra.coe_homOfLe + theorem LieSubalgebra.coe_inclusion +/- theorem LieSubalgebra.coe_ofLe +/- theorem LieSubalgebra.equivOfLe_apply - def LieSubalgebra.homOfLe - theorem LieSubalgebra.homOfLe_apply - theorem LieSubalgebra.homOfLe_injective + def LieSubalgebra.inclusion + theorem LieSubalgebra.inclusion_apply + theorem LieSubalgebra.inclusion_injective Modified Mathlib/Algebra/Lie/Submodule.lean - theorem LieIdeal.coe_homOfLe + theorem LieIdeal.coe_inclusion - def LieIdeal.homOfLe - theorem LieIdeal.homOfLe_apply - theorem LieIdeal.homOfLe_injective + def LieIdeal.inclusion + theorem LieIdeal.inclusion_apply + theorem LieIdeal.inclusion_injective - theorem LieSubmodule.coe_homOfLe + theorem LieSubmodule.coe_inclusion - def LieSubmodule.homOfLe - theorem LieSubmodule.homOfLe_apply - theorem LieSubmodule.homOfLe_injective + def LieSubmodule.inclusion + theorem LieSubmodule.inclusion_apply + theorem LieSubmodule.inclusion_injective Modified Mathlib/Algebra/Module/Submodule/LinearMap.lean + theorem Submodule.coe_inclusion - theorem Submodule.coe_ofLe + def Submodule.inclusion + theorem Submodule.inclusion_apply + theorem Submodule.inclusion_injective - def Submodule.ofLe - theorem Submodule.ofLe_apply - theorem Submodule.ofLe_injective + theorem Submodule.subtype_comp_inclusion - theorem Submodule.subtype_comp_ofLe Modified Mathlib/Algebra/Star/NonUnitalSubalgebra.lean Modified Mathlib/Analysis/Convex/Cone/Extension.lean Modified Mathlib/LinearAlgebra/Basic.lean - theorem LinearMap.submoduleImage_apply_ofLe + theorem LinearMap.submoduleImage_apply_of_le + theorem Submodule.ker_inclusion - theorem Submodule.ker_ofLe + theorem Submodule.map_subtype_range_inclusion - theorem Submodule.map_subtype_range_ofLe + theorem Submodule.range_inclusion - theorem Submodule.range_ofLe Modified Mathlib/LinearAlgebra/Basis.lean Modified Mathlib/LinearAlgebra/Dimension.lean Modified Mathlib/LinearAlgebra/FreeModule/PID.lean Modified Mathlib/LinearAlgebra/Isomorphisms.lean Modified Mathlib/LinearAlgebra/LinearPMap.lean + theorem LinearPMap.apply_comp_inclusion - theorem LinearPMap.apply_comp_ofLe Modified Mathlib/RingTheory/Artinian.lean Modified Mathlib/RingTheory/DedekindDomain/IntegralClosure.lean 2023-11-17 18:20:48 05ad6c6 feat: add some Multiset.Nodup lemmas (#8464) Based on results from flt-regular. ESTIMATED CHANGES Modified Mathlib/Data/List/Nodup.lean + theorem List.nodup_iff_count_eq_one Modified Mathlib/Data/Multiset/Nodup.lean + theorem Multiset.nodup_iff_count_eq_one + theorem Multiset.nodup_map_iff_of_inj_on + theorem Multiset.nodup_map_iff_of_injective 2023-11-17 16:12:02 92bfd3b fix(LinearAlgebra/AffineSpace/Independent): fix case of `Simplex.Independent` (#8419) This holds a proof not a `Prop`, so should be lowercase. ESTIMATED CHANGES Modified Mathlib/Analysis/Convex/Between.lean Modified Mathlib/Geometry/Euclidean/Angle/Sphere.lean Modified Mathlib/Geometry/Euclidean/Circumcenter.lean Modified Mathlib/Geometry/Euclidean/MongePoint.lean Modified Mathlib/LinearAlgebra/AffineSpace/FiniteDimensional.lean Modified Mathlib/LinearAlgebra/AffineSpace/Independent.lean Modified scripts/nolints.json 2023-11-17 15:04:20 f8794a0 chore: bump Std (#8474) ESTIMATED CHANGES Modified lake-manifest.json 2023-11-17 14:37:26 e4e3f2f chore: exp -> NormedSpace.exp (#8436) Per discussion at [zulip](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/Real.2Eexp/near/401485920) ESTIMATED CHANGES Modified Mathlib/Analysis/NormedSpace/DualNumber.lean Modified Mathlib/Analysis/NormedSpace/Exponential.lean +/- theorem Commute.exp +/- theorem Commute.exp_left +/- theorem Commute.exp_right +/- theorem Function.update_exp +/- theorem IsSelfAdjoint.exp + theorem NormedSpace.algebraMap_exp_comm + theorem NormedSpace.algebraMap_exp_comm_of_mem_ball + theorem NormedSpace.analyticAt_exp_of_mem_ball + theorem NormedSpace.continuousOn_exp + def NormedSpace.expSeries + theorem NormedSpace.expSeries_apply_eq' + theorem NormedSpace.expSeries_apply_eq + theorem NormedSpace.expSeries_apply_eq_div' + theorem NormedSpace.expSeries_apply_eq_div + theorem NormedSpace.expSeries_apply_zero + theorem NormedSpace.expSeries_div_hasSum_exp + theorem NormedSpace.expSeries_div_hasSum_exp_of_mem_ball + theorem NormedSpace.expSeries_div_summable + theorem NormedSpace.expSeries_div_summable_of_mem_ball + theorem NormedSpace.expSeries_eq_expSeries + theorem NormedSpace.expSeries_hasSum_exp + theorem NormedSpace.expSeries_hasSum_exp_of_mem_ball' + theorem NormedSpace.expSeries_hasSum_exp_of_mem_ball + theorem NormedSpace.expSeries_radius_eq_top + theorem NormedSpace.expSeries_radius_pos + theorem NormedSpace.expSeries_sum_eq + theorem NormedSpace.expSeries_sum_eq_div + theorem NormedSpace.expSeries_summable' + theorem NormedSpace.expSeries_summable + theorem NormedSpace.expSeries_summable_of_mem_ball' + theorem NormedSpace.expSeries_summable_of_mem_ball + theorem NormedSpace.exp_add + theorem NormedSpace.exp_add_of_commute + theorem NormedSpace.exp_add_of_commute_of_mem_ball + theorem NormedSpace.exp_add_of_mem_ball + theorem NormedSpace.exp_analytic + theorem NormedSpace.exp_conj' + theorem NormedSpace.exp_conj + theorem NormedSpace.exp_continuous + theorem NormedSpace.exp_eq_exp + theorem NormedSpace.exp_eq_tsum + theorem NormedSpace.exp_eq_tsum_div + theorem NormedSpace.exp_hasFPowerSeriesAt_zero + theorem NormedSpace.exp_hasFPowerSeriesOnBall + theorem NormedSpace.exp_mem_unitary_of_mem_skewAdjoint + theorem NormedSpace.exp_neg + theorem NormedSpace.exp_neg_of_mem_ball + theorem NormedSpace.exp_nsmul + theorem NormedSpace.exp_op + theorem NormedSpace.exp_series_hasSum_exp' + theorem NormedSpace.exp_smul + theorem NormedSpace.exp_sum + theorem NormedSpace.exp_sum_of_commute + theorem NormedSpace.exp_units_conj' + theorem NormedSpace.exp_units_conj + theorem NormedSpace.exp_unop + theorem NormedSpace.exp_zero + theorem NormedSpace.exp_zsmul + theorem NormedSpace.exp_ℝ_ℂ_eq_exp_ℂ_ℂ + theorem NormedSpace.hasFPowerSeriesAt_exp_zero_of_radius_pos + theorem NormedSpace.hasFPowerSeriesOnBall_exp_of_radius_pos + theorem NormedSpace.invOf_exp + theorem NormedSpace.invOf_exp_of_mem_ball + theorem NormedSpace.isUnit_exp + theorem NormedSpace.isUnit_exp_of_mem_ball + theorem NormedSpace.map_exp + theorem NormedSpace.map_exp_of_mem_ball + theorem NormedSpace.norm_expSeries_div_summable + theorem NormedSpace.norm_expSeries_div_summable_of_mem_ball + theorem NormedSpace.norm_expSeries_summable' + theorem NormedSpace.norm_expSeries_summable + theorem NormedSpace.norm_expSeries_summable_of_mem_ball' + theorem NormedSpace.norm_expSeries_summable_of_mem_ball + theorem NormedSpace.of_real_exp_ℝ_ℝ + theorem NormedSpace.star_exp +/- theorem Pi.exp_apply +/- theorem Pi.exp_def +/- theorem Prod.fst_exp +/- theorem Prod.snd_exp +/- theorem Ring.inverse_exp - theorem algebraMap_exp_comm - theorem algebraMap_exp_comm_of_mem_ball - theorem analyticAt_exp_of_mem_ball - theorem continuousOn_exp - def expSeries - theorem expSeries_apply_eq' - theorem expSeries_apply_eq - theorem expSeries_apply_eq_div' - theorem expSeries_apply_eq_div - theorem expSeries_apply_zero - theorem expSeries_div_hasSum_exp - theorem expSeries_div_hasSum_exp_of_mem_ball - theorem expSeries_div_summable - theorem expSeries_div_summable_of_mem_ball - theorem expSeries_eq_expSeries - theorem expSeries_hasSum_exp - theorem expSeries_hasSum_exp_of_mem_ball' - theorem expSeries_hasSum_exp_of_mem_ball - theorem expSeries_radius_eq_top - theorem expSeries_radius_pos - theorem expSeries_sum_eq - theorem expSeries_sum_eq_div - theorem expSeries_summable' - theorem expSeries_summable - theorem expSeries_summable_of_mem_ball' - theorem expSeries_summable_of_mem_ball - theorem exp_add - theorem exp_add_of_commute - theorem exp_add_of_commute_of_mem_ball - theorem exp_add_of_mem_ball - theorem exp_analytic - theorem exp_conj' - theorem exp_conj - theorem exp_continuous - theorem exp_eq_exp - theorem exp_eq_tsum - theorem exp_eq_tsum_div - theorem exp_hasFPowerSeriesAt_zero - theorem exp_hasFPowerSeriesOnBall - theorem exp_mem_unitary_of_mem_skewAdjoint - theorem exp_neg - theorem exp_neg_of_mem_ball - theorem exp_nsmul - theorem exp_op - theorem exp_series_hasSum_exp' - theorem exp_smul - theorem exp_sum - theorem exp_sum_of_commute - theorem exp_units_conj' - theorem exp_units_conj - theorem exp_unop - theorem exp_zero - theorem exp_zsmul - theorem exp_ℝ_ℂ_eq_exp_ℂ_ℂ - theorem hasFPowerSeriesAt_exp_zero_of_radius_pos - theorem hasFPowerSeriesOnBall_exp_of_radius_pos - theorem invOf_exp - theorem invOf_exp_of_mem_ball - theorem isUnit_exp - theorem isUnit_exp_of_mem_ball - theorem map_exp - theorem map_exp_of_mem_ball - theorem norm_expSeries_div_summable - theorem norm_expSeries_div_summable_of_mem_ball - theorem norm_expSeries_summable' - theorem norm_expSeries_summable - theorem norm_expSeries_summable_of_mem_ball' - theorem norm_expSeries_summable_of_mem_ball - theorem of_real_exp_ℝ_ℝ - theorem star_exp Modified Mathlib/Analysis/NormedSpace/MatrixExponential.lean Modified Mathlib/Analysis/NormedSpace/QuaternionExponential.lean Modified Mathlib/Analysis/NormedSpace/Spectrum.lean Modified Mathlib/Analysis/NormedSpace/Star/Exponential.lean Modified Mathlib/Analysis/NormedSpace/Star/Spectrum.lean Modified Mathlib/Analysis/NormedSpace/TrivSqZeroExt.lean Modified Mathlib/Analysis/SpecialFunctions/Exponential.lean +/- theorem Complex.exp_eq_exp_ℂ +/- theorem Real.exp_eq_exp_ℝ Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Series.lean Modified Mathlib/Combinatorics/Derangements/Exponential.lean Modified docs/undergrad.yaml 2023-11-17 14:04:08 19210bc fix: new build directory location in benchmark script (#8467) ESTIMATED CHANGES Modified scripts/bench/temci-config.run.yml 2023-11-17 13:15:53 03c06be docs (Order/GaloisConnection): typo (#8447) ESTIMATED CHANGES Modified Mathlib/Order/GaloisConnection.lean 2023-11-17 13:15:51 ac1ea48 chore(Order): replace `Top` and `Bot` ancestors with `OrderTop` and `OrderBot` (#8446) ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Monoid/Canonical/Defs.lean Modified Mathlib/Algebra/Order/Monoid/Defs.lean Modified Mathlib/Order/Heyting/Basic.lean 2023-11-17 13:15:50 c02d0ce fix(Condensed): remove a name that doesn't exist anymore from a docstring (#8442) ESTIMATED CHANGES Modified Mathlib/Condensed/Functors.lean 2023-11-17 13:15:49 8dba065 chore(IntegralClosure): noncommutative generalizations and golfs (#8406) [Zulip](https://leanprover.zulipchat.com/#narrow/stream/144837-PR-reviews/topic/.238406.20IsIntegral.20dot.20notation.2C.20noncomm.20generalization.20.26.20golf/near/402028285) Initially I just wanted to add more dot notations for IsIntegral and IsAlgebraic (done in #8437); then I noticed near-duplicates [Algebra.isIntegral_of_finite](https://leanprover-community.github.io/mathlib4_docs/Mathlib/RingTheory/IntegralClosure.html#Algebra.isIntegral_of_finite) `[Field R] [Ring A]` and [RingHom.IsIntegral.of_finite](https://leanprover-community.github.io/mathlib4_docs/Mathlib/RingTheory/IntegralClosure.html#RingHom.IsIntegral.of_finite) `[CommRing R] [CommRing A]` so I went on to generalize the latter to cover the former, and generalized everything in the IntegralClosure file to the noncommutative case whenever possible. In the process I noticed more golfs, which result in this PR. Most notably, [isIntegral_of_mem_of_FG](https://leanprover-community.github.io/mathlib4_docs/Mathlib/RingTheory/IntegralClosure.html#isIntegral_of_mem_of_FG) is now proven using [Cayley-Hamilton](https://math.stackexchange.com/a/2494433/12932) and doesn't depend on the Noetherian case [isIntegral_of_noetherian](https://leanprover-community.github.io/mathlib4_docs/Mathlib/RingTheory/IntegralClosure.html#isIntegral_of_noetherian); the latter is now proven using the former. In total the golfs makes mathlib 227 lines leaner (+487 -714). The main changes are in the single file [RingTheory/IntegralClosure](https://github.com/leanprover-community/mathlib4/pull/8406/files#diff-426d60d7e9edc9e20379127612410ad633864c2d5a9cd001729d128f0993b00e): + Change the definition of `Algebra.IsIntegral` which makes it unfold to `IsIntegral` rather than `RingHom.IsIntegralElem` because the former has much more APIs. + Fix lemma names involving `is_integral` which are actually about `IsIntegralElem`: `RingHom.is_integral_map` → `RingHom.isIntegralElem_map` `RingHom.is_integral_of_mem_closure` → `RingHom.IsIntegralElem.of_mem_closure` `RingHom.is_integral_zero/one` → `RingHom.isIntegralElem_zero/one` `RingHom.is_integral_add/neg/sub/mul/of_mul_unit` → `RingHom.IsIntegralElem.add/neg/sub/mul/of_mul_unit` + Add a lemma `Algebra.IsIntegral.of_injective`. + Move `isIntegral_of_(submodule_)noetherian` down and golf them. + Remove `(Algebra.)isIntegral_of_finite` that work only over fields, in favor of the more general `(Algebra.)isIntegral.of_finite`. + Merge duplicate lemmas `isIntegral_of_isScalarTower` and `isIntegral_tower_top_of_isIntegral` into `IsIntegral.tower_top`. + Golf `IsIntegral.of_mem_of_fg` by first proving `IsIntegral.of_finite` using Cayley-Hamilton. + Add a docstring mentioning the Kurosh problem at `Algebra.IsIntegral.finite`. The negative solution to the problem means the theorem doesn't generalize to noncommutative algebras. + Golf `IsIntegral.tmul` and `isField_of_isIntegral_of_isField(')`. + Combine `isIntegral_trans_aux` into `isIntegral_trans` and golf. + Add `Algebra` namespace to `isIntegral_sup`. + rename lemmas for dot notation: `RingHom.isIntegral_trans` → `RingHom.IsIntegral.trans` `RingHom.isIntegral_quotient/tower_bot/top_of_isIntegral` → `RingHom.IsIntegral.quotient/tower_bot/top` `isIntegral_of_mem_closure'` → `IsIntegral.of_mem_closure'` (and the '' version) `isIntegral_of_surjective` → `Algebra.isIntegral_of_surjective` The next changed file is RingTheory/Algebraic: + Rename: `of_larger_base` → `tower_top` (for consistency with `IsIntegral`) `Algebra.isAlgebraic_of_finite` → `Algebra.IsAlgebraic.of_finite` `Algebra.isAlgebraic_trans` → `Algebra.IsAlgebraic.trans` + Add new lemmas`Algebra.IsIntegral.isAlgebraic`, `isAlgebraic_algHom_iff`, and `Algebra.IsAlgebraic.of_injective` to streamline some proofs. The generalization from CommRing to Ring requires an additional lemma `scaleRoots_eval₂_mul_of_commute` in Polynomial/ScaleRoots. A lemma `Algebra.lmul_injective` is added to Algebra/Bilinear (in order to golf the proof of `IsIntegral.of_mem_of_fg`). In all other files, I merely fix the changed names, or use newly available dot notations. ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/Bilinear.lean + theorem Algebra.lmul_injective Modified Mathlib/FieldTheory/AbelRuffini.lean Modified Mathlib/FieldTheory/Adjoin.lean Modified Mathlib/FieldTheory/AxGrothendieck.lean Modified Mathlib/FieldTheory/Fixed.lean Modified Mathlib/FieldTheory/Galois.lean Modified Mathlib/FieldTheory/IsAlgClosed/AlgebraicClosure.lean Modified Mathlib/FieldTheory/IsAlgClosed/Basic.lean Modified Mathlib/FieldTheory/IsSepClosed.lean Modified Mathlib/FieldTheory/Minpoly/Field.lean Modified Mathlib/FieldTheory/Normal.lean Modified Mathlib/FieldTheory/Perfect.lean Modified Mathlib/FieldTheory/PolynomialGaloisGroup.lean Modified Mathlib/FieldTheory/PrimitiveElement.lean Modified Mathlib/FieldTheory/Separable.lean Modified Mathlib/FieldTheory/SplittingField/Construction.lean Modified Mathlib/FieldTheory/SplittingField/IsSplittingField.lean Modified Mathlib/NumberTheory/ClassNumber/Finite.lean Modified Mathlib/NumberTheory/Cyclotomic/Discriminant.lean Modified Mathlib/NumberTheory/Cyclotomic/PrimitiveRoots.lean Modified Mathlib/NumberTheory/Cyclotomic/Rat.lean Modified Mathlib/NumberTheory/NumberField/Basic.lean Modified Mathlib/NumberTheory/NumberField/Norm.lean Modified Mathlib/NumberTheory/RamificationInertia.lean Modified Mathlib/RingTheory/Adjoin/Field.lean Modified Mathlib/RingTheory/Adjoin/PowerBasis.lean Modified Mathlib/RingTheory/AdjoinRoot.lean Modified Mathlib/RingTheory/Algebraic.lean +/- theorem AlgEquiv.isAlgebraic +/- theorem AlgEquiv.isAlgebraic_iff +/- theorem Algebra.IsAlgebraic.algHom_bijective +/- theorem Algebra.IsAlgebraic.algHom_bijective₂ +/- theorem Algebra.IsAlgebraic.bijective_of_isScalarTower' +/- theorem Algebra.IsAlgebraic.bijective_of_isScalarTower + theorem Algebra.IsAlgebraic.of_finite + theorem Algebra.IsAlgebraic.of_injective + theorem Algebra.IsAlgebraic.tower_top + theorem Algebra.IsAlgebraic.tower_top_of_injective + theorem Algebra.IsIntegral.isAlgebraic - theorem Algebra.isAlgebraic_of_finite - theorem Algebra.isAlgebraic_of_larger_base - theorem Algebra.isAlgebraic_of_larger_base_of_injective - theorem Algebra.isAlgebraic_trans - theorem IsAlgebraic.of_larger_base - theorem IsAlgebraic.of_larger_base_of_injective + theorem IsAlgebraic.tower_top + theorem IsAlgebraic.tower_top_of_injective + theorem isAlgebraic_algHom_iff Modified Mathlib/RingTheory/DedekindDomain/IntegralClosure.lean Modified Mathlib/RingTheory/Discriminant.lean Modified Mathlib/RingTheory/FractionalIdeal.lean Modified Mathlib/RingTheory/Ideal/Over.lean Modified Mathlib/RingTheory/IntegralClosure.lean +/- theorem Algebra.IsIntegral.isField_iff_isField +/- theorem Algebra.IsIntegral.of_finite + theorem Algebra.IsIntegral.of_injective - theorem Algebra.isIntegral_of_finite + theorem Algebra.isIntegral_of_surjective + theorem Algebra.isIntegral_sup - theorem IsIntegral.add +/- theorem IsIntegral.fg_adjoin_singleton +/- theorem IsIntegral.map_of_comp_eq - theorem IsIntegral.mul +/- theorem IsIntegral.neg +/- theorem IsIntegral.nsmul +/- theorem IsIntegral.of_finite + theorem IsIntegral.of_mem_closure'' + theorem IsIntegral.of_mem_closure' - theorem IsIntegral.of_mem_closure +/- theorem IsIntegral.of_mem_of_fg +/- theorem IsIntegral.of_mul_unit +/- theorem IsIntegral.of_pow +/- theorem IsIntegral.of_subring +/- theorem IsIntegral.pow +/- theorem IsIntegral.smul - theorem IsIntegral.sub + theorem IsIntegral.tower_top +/- theorem IsIntegral.zsmul + theorem RingHom.IsIntegral.quotient +/- theorem RingHom.IsIntegral.to_finite + theorem RingHom.IsIntegral.tower_top + theorem RingHom.IsIntegralElem.add + theorem RingHom.IsIntegralElem.mul + theorem RingHom.IsIntegralElem.neg + theorem RingHom.IsIntegralElem.of_mem_closure + theorem RingHom.IsIntegralElem.of_mul_unit + theorem RingHom.IsIntegralElem.sub + theorem RingHom.isIntegralElem.of_comp + theorem RingHom.isIntegralElem_map - theorem RingHom.isIntegralElem_of_isIntegralElem_comp + theorem RingHom.isIntegralElem_one + theorem RingHom.isIntegralElem_zero - theorem RingHom.isIntegral_of_isIntegral_mul_unit +/- theorem RingHom.isIntegral_of_surjective - theorem RingHom.isIntegral_quotient_of_isIntegral - theorem RingHom.isIntegral_tower_top_of_isIntegral - theorem RingHom.isIntegral_trans - theorem RingHom.is_integral_add - theorem RingHom.is_integral_map - theorem RingHom.is_integral_mul - theorem RingHom.is_integral_neg - theorem RingHom.is_integral_of_mem_closure - theorem RingHom.is_integral_one - theorem RingHom.is_integral_sub - theorem RingHom.is_integral_zero +/- theorem integralClosure_idem +/- theorem integralClosure_map_algEquiv +/- theorem isField_of_isIntegral_of_isField +/- theorem isIntegral_algHom_iff +/- theorem isIntegral_iff_isIntegral_closure_finite - theorem isIntegral_of_isScalarTower - theorem isIntegral_of_mem_closure'' - theorem isIntegral_of_mem_closure' +/- theorem isIntegral_of_noetherian +/- theorem isIntegral_of_submodule_noetherian - theorem isIntegral_of_surjective +/- theorem isIntegral_one - theorem isIntegral_sup - theorem isIntegral_tower_top_of_isIntegral - theorem isIntegral_trans_aux +/- theorem isIntegral_zero Modified Mathlib/RingTheory/IntegrallyClosed.lean Modified Mathlib/RingTheory/Jacobson.lean Modified Mathlib/RingTheory/Localization/Integral.lean Modified Mathlib/RingTheory/Norm.lean Modified Mathlib/RingTheory/Polynomial/Eisenstein/IsIntegral.lean Modified Mathlib/RingTheory/Polynomial/ScaleRoots.lean + theorem Polynomial.scaleRoots_eval₂_mul_of_commute Modified Mathlib/RingTheory/RingHom/Integral.lean Modified Mathlib/RingTheory/Trace.lean 2023-11-17 13:15:48 f9b4adb chore(Data/Nat/Choose/Multinomial): Fix typo in module docstring (#8390) ESTIMATED CHANGES Modified Mathlib/Data/Nat/Choose/Multinomial.lean 2023-11-17 13:15:47 3cc786f refactor(Algebra/DualNumber): generalize the universal property to non-commutative rings (#7934) The current universal properties of `TrivSqZeroExt` and `DualNumber` work only when the underlying ring is commutative. This is not the case for things like the dual quaternions. This generalizes both sets of results to the non-commutative case. Unfortunately the new `TrivSqZeroExt` version is rather involved, so this keeps the old statement as a special case. The new `DualNumber` version is less bad, so I just discarded the commutative special case. For dual numbers, the generalization is from `R[ε] →ₐ[R] B` to `A[ε] →ₐ[R] B`, where `R` is commutative but `A` may not be. Some variable names had to be shuffled to make the new statement look nice. ESTIMATED CHANGES Modified Mathlib/Algebra/DualNumber.lean - theorem DualNumber.algHom_ext + theorem DualNumber.coe_lift_symm_apply +/- def DualNumber.lift + theorem DualNumber.lift_apply_apply +/- theorem DualNumber.lift_apply_eps + theorem DualNumber.lift_apply_inl - theorem DualNumber.lift_eps + theorem DualNumber.lift_inlAlgHom_eps + theorem DualNumber.lift_op_smul + theorem DualNumber.lift_smul Modified Mathlib/Algebra/TrivSqZeroExt.lean +/- theorem TrivSqZeroExt.algHom_ext' + def TrivSqZeroExt.inlAlgHom + theorem TrivSqZeroExt.inl_mul_eq_smul +/- def TrivSqZeroExt.lift - def TrivSqZeroExt.liftAux - theorem TrivSqZeroExt.liftAux_apply_inr - theorem TrivSqZeroExt.liftAux_comp_inrHom - theorem TrivSqZeroExt.liftAux_inrHom + def TrivSqZeroExt.liftEquiv + def TrivSqZeroExt.liftEquivOfComm + theorem TrivSqZeroExt.lift_apply_inl + theorem TrivSqZeroExt.lift_apply_inr + theorem TrivSqZeroExt.lift_comp_inlHom + theorem TrivSqZeroExt.lift_comp_inrHom + theorem TrivSqZeroExt.lift_inlAlgHom_inrHom + theorem TrivSqZeroExt.mul_inl_eq_op_smul Modified Mathlib/LinearAlgebra/CliffordAlgebra/Equivs.lean 2023-11-17 12:55:02 b70c910 chore: use lean4checker matching the toolchain (#8471) ESTIMATED CHANGES Modified .github/workflows/bors.yml Modified .github/workflows/build.yml Modified .github/workflows/build.yml.in Modified .github/workflows/build_fork.yml 2023-11-17 11:02:18 7c1536f feat: add and use not_irreducible_pow (#8452) Also rename `pow_not_prime` theorems to match. `not_irreducible_pow` is extracted from flt-regular. ESTIMATED CHANGES Modified Mathlib/Algebra/Associated.lean + theorem not_irreducible_pow + theorem not_prime_pow - theorem of_irreducible_pow - theorem pow_not_prime Modified Mathlib/Data/Nat/Prime.lean + theorem Nat.Prime.not_prime_pow' + theorem Nat.Prime.not_prime_pow - theorem Nat.Prime.pow_not_prime' - theorem Nat.Prime.pow_not_prime Modified Mathlib/FieldTheory/Perfect.lean 2023-11-17 11:02:17 414c0c8 feat: Add Set.Nonempty.eq_zero and variations (#8423) See [the Zulip thread](https://leanprover.zulipchat.com/#narrow/stream/217875-Is-there-code-for-X.3F/topic/Subset.20equal.20.7B0.7D.20of.20Subsingleton/near/402193512) ESTIMATED CHANGES Modified Mathlib/Data/Set/Basic.lean + theorem Set.Nonempty.eq_one + theorem Set.Nonempty.eq_zero + theorem Set.eq_of_nonempty_of_subsingleton' + theorem Set.eq_of_nonempty_of_subsingleton 2023-11-17 11:02:16 e7f5d81 fix: some cleanup in `Nat.Factorial.Basic` (#8422) * Also remove some unimportant porting notes in `Order.Concept`. ESTIMATED CHANGES Modified Archive/Imo/Imo2019Q4.lean Modified Mathlib/Data/Nat/Factorial/Basic.lean +/- theorem Nat.ascFactorial_succ +/- theorem Nat.descFactorial_one +/- theorem Nat.descFactorial_succ + theorem Nat.factorial_inj' +/- theorem Nat.factorial_inj - theorem Nat.factorial_le_of_le +/- theorem Nat.factorial_mul_pow_le_factorial +/- theorem Nat.factorial_one +/- theorem Nat.factorial_succ +/- theorem Nat.factorial_two +/- theorem Nat.factorial_zero +/- theorem Nat.zero_descFactorial_succ Modified Mathlib/Order/Concept.lean 2023-11-17 10:38:43 909a2b4 chore: fix double section (#8466) ESTIMATED CHANGES Modified Mathlib/Data/ZMod/IntUnitsPower.lean 2023-11-17 08:38:36 f8feee9 chore: bump Std (#8460) ESTIMATED CHANGES Modified lake-manifest.json 2023-11-17 05:53:46 40b64f7 chore: bump to v4.3.0-rc2 (#8366) # PR contents This is the supremum of - #8284 - #8056 - #8023 - #8332 - #8226 (already approved) - #7834 (already approved) along with some minor fixes from failures on nightly-testing as Mathlib `master` is merged into it. Note that some PRs for changes that are already compatible with the current toolchain and will be necessary have already been split out: #8380. I am hopeful that in future we will be able to progressively merge adaptation PRs into a `bump/v4.X.0` branch, so we never end up with a "big merge" like this. However one of these adaptation PRs (#8056) predates my new scheme for combined CI, and it wasn't possible to keep that PR viable in the meantime. # Lean PRs involved in this bump In particular this includes adjustments for the Lean PRs * leanprover/lean4#2778 * leanprover/lean4#2790 * leanprover/lean4#2783 * leanprover/lean4#2825 * leanprover/lean4#2722 ## leanprover/lean4#2778 We can get rid of all the ``` local macro_rules | `($x ^ $y) => `(HPow.hPow $x $y) -- Porting note: See issue lean4#2220 ``` macros across Mathlib (and in any projects that want to write natural number powers of reals). ## leanprover/lean4#2722 Changes the default behaviour of `simp` to `(config := {decide := false})`. This makes `simp` (and consequentially `norm_num`) less powerful, but also more consistent, and less likely to blow up in long failures. This requires a variety of changes: changing some previously by `simp` or `norm_num` to `decide` or `rfl`, or adding `(config := {decide := true})`. ## leanprover/lean4#2783 This changed the behaviour of `simp` so that `simp [f]` will only unfold "fully applied" occurrences of `f`. The old behaviour can be recovered with `simp (config := { unfoldPartialApp := true })`. We may in future add a syntax for this, e.g. `simp [!f]`; please provide feedback! In the meantime, we have made the following changes: * switching to using explicit lemmas that have the intended level of application * `(config := { unfoldPartialApp := true })` in some places, to recover the old behaviour * Using `@[eqns]` to manually adjust the equation lemmas for a particular definition, recovering the old behaviour just for that definition. See #8371, where we do this for `Function.comp` and `Function.flip`. This change in Lean may require further changes down the line (e.g. adding the `!f` syntax, and/or upstreaming the special treatment for `Function.comp` and `Function.flip`, and/or removing this special treatment). Please keep an open and skeptical mind about these changes! ESTIMATED CHANGES Modified .gitignore Modified Archive/Examples/IfNormalization/Result.lean - theorem IfExpr.decide_eq_true_eq Modified Archive/Examples/IfNormalization/WithoutAesop.lean - theorem IfExpr.decide_eq_true_eq' Modified Archive/Imo/Imo1960Q1.lean Modified Archive/Imo/Imo1962Q1.lean Modified Archive/Imo/Imo1962Q4.lean Modified Archive/Imo/Imo1964Q1.lean Modified Archive/Imo/Imo1981Q3.lean Modified Archive/Imo/Imo2001Q2.lean Modified Archive/Imo/Imo2005Q4.lean Modified Archive/Imo/Imo2008Q3.lean Modified Archive/Imo/Imo2013Q5.lean Modified Archive/Imo/Imo2019Q1.lean Modified Archive/Imo/Imo2019Q2.lean Modified Archive/Imo/Imo2019Q4.lean Modified Archive/MiuLanguage/DecisionNec.lean Modified Archive/MiuLanguage/DecisionSuf.lean Modified Archive/Sensitivity.lean Modified Archive/Wiedijk100Theorems/AbelRuffini.lean Modified Archive/Wiedijk100Theorems/AreaOfACircle.lean Modified Archive/Wiedijk100Theorems/BallotProblem.lean Modified Archive/Wiedijk100Theorems/BirthdayProblem.lean Modified Archive/Wiedijk100Theorems/HeronsFormula.lean Modified Archive/Wiedijk100Theorems/Konigsberg.lean Modified Archive/Wiedijk100Theorems/PerfectNumbers.lean Modified Archive/Wiedijk100Theorems/SumOfPrimeReciprocalsDiverges.lean Modified Archive/ZagierTwoSquares.lean Modified Cache/IO.lean Modified Counterexamples/CliffordAlgebra_not_injective.lean Modified Counterexamples/Cyclotomic105.lean Modified Counterexamples/HomogeneousPrimeNotPrime.lean Modified Mathlib.lean Modified Mathlib/Algebra/Algebra/NonUnitalSubalgebra.lean Modified Mathlib/Algebra/BigOperators/Basic.lean Modified Mathlib/Algebra/Category/ModuleCat/ChangeOfRings.lean Modified Mathlib/Algebra/CharP/Basic.lean Modified Mathlib/Algebra/CharP/LocalRing.lean Modified Mathlib/Algebra/CharZero/Quotient.lean Modified Mathlib/Algebra/GeomSum.lean Modified Mathlib/Algebra/GradedMonoid.lean Modified Mathlib/Algebra/Group/Defs.lean Modified Mathlib/Algebra/GroupPower/NegOnePow.lean Modified Mathlib/Algebra/Homology/Augment.lean Modified Mathlib/Algebra/Homology/Exact.lean Modified Mathlib/Algebra/Homology/ExactSequence.lean Modified Mathlib/Algebra/Homology/Flip.lean Modified Mathlib/Algebra/Homology/Homotopy.lean Modified Mathlib/Algebra/Homology/Single.lean Modified Mathlib/Algebra/IsPrimePow.lean Modified Mathlib/Algebra/Lie/DirectSum.lean Modified Mathlib/Algebra/Module/DedekindDomain.lean Modified Mathlib/Algebra/Module/Injective.lean Modified Mathlib/Algebra/Order/Interval.lean Modified Mathlib/Algebra/Order/Positive/Ring.lean Modified Mathlib/Algebra/Order/Ring/WithTop.lean Modified Mathlib/Algebra/Order/Sub/WithTop.lean Modified Mathlib/Algebra/Quaternion.lean Modified Mathlib/Algebra/Regular/SMul.lean Modified Mathlib/Algebra/RingQuot.lean Modified Mathlib/Algebra/Star/NonUnitalSubalgebra.lean Modified Mathlib/AlgebraicGeometry/EllipticCurve/Weierstrass.lean Modified Mathlib/AlgebraicTopology/DoldKan/NReflectsIso.lean Modified Mathlib/Analysis/Analytic/Basic.lean Modified Mathlib/Analysis/Analytic/Composition.lean Modified Mathlib/Analysis/Analytic/RadiusLiminf.lean Modified Mathlib/Analysis/Asymptotics/AsymptoticEquivalent.lean Modified Mathlib/Analysis/BoxIntegral/Basic.lean Modified Mathlib/Analysis/BoxIntegral/DivergenceTheorem.lean Modified Mathlib/Analysis/BoxIntegral/Partition/Split.lean Modified Mathlib/Analysis/Calculus/BumpFunction/Convolution.lean Modified Mathlib/Analysis/Calculus/BumpFunction/Normed.lean Modified Mathlib/Analysis/Calculus/Monotone.lean Modified Mathlib/Analysis/Complex/AbsMax.lean Modified Mathlib/Analysis/Complex/Liouville.lean Modified Mathlib/Analysis/Complex/LocallyUniformLimit.lean Modified Mathlib/Analysis/Complex/PhragmenLindelof.lean Modified Mathlib/Analysis/Complex/RemovableSingularity.lean Modified Mathlib/Analysis/ConstantSpeed.lean Modified Mathlib/Analysis/Convex/Between.lean Modified Mathlib/Analysis/Convex/SpecificFunctions/Basic.lean Modified Mathlib/Analysis/Convex/SpecificFunctions/Deriv.lean Modified Mathlib/Analysis/Convex/SpecificFunctions/Pow.lean Modified Mathlib/Analysis/Convex/Strong.lean Modified Mathlib/Analysis/Convolution.lean Modified Mathlib/Analysis/Distribution/SchwartzSpace.lean Modified Mathlib/Analysis/Fourier/AddCircle.lean +/- theorem fourier_apply Modified Mathlib/Analysis/Fourier/RiemannLebesgueLemma.lean Modified Mathlib/Analysis/InnerProductSpace/Adjoint.lean Modified Mathlib/Analysis/InnerProductSpace/Calculus.lean Modified Mathlib/Analysis/InnerProductSpace/PiL2.lean Modified Mathlib/Analysis/InnerProductSpace/Rayleigh.lean Modified Mathlib/Analysis/InnerProductSpace/Spectrum.lean Modified Mathlib/Analysis/InnerProductSpace/TwoDim.lean Modified Mathlib/Analysis/InnerProductSpace/l2Space.lean Modified Mathlib/Analysis/Matrix.lean Modified Mathlib/Analysis/MeanInequalities.lean Modified Mathlib/Analysis/MeanInequalitiesPow.lean Modified Mathlib/Analysis/MellinTransform.lean Modified Mathlib/Analysis/NormedSpace/DualNumber.lean Modified Mathlib/Analysis/NormedSpace/Exponential.lean Modified Mathlib/Analysis/NormedSpace/Multilinear.lean Modified Mathlib/Analysis/NormedSpace/PiLp.lean Modified Mathlib/Analysis/NormedSpace/ProdLp.lean +/- theorem WithLp.prod_norm_eq_of_L2 Modified Mathlib/Analysis/NormedSpace/QuaternionExponential.lean Modified Mathlib/Analysis/NormedSpace/Spectrum.lean Modified Mathlib/Analysis/NormedSpace/Star/Matrix.lean Modified Mathlib/Analysis/NormedSpace/lpSpace.lean Modified Mathlib/Analysis/ODE/PicardLindelof.lean Modified Mathlib/Analysis/PSeries.lean +/- theorem sum_Ioo_inv_sq_le Modified Mathlib/Analysis/SpecialFunctions/CompareExp.lean Modified Mathlib/Analysis/SpecialFunctions/Gamma/Basic.lean Modified Mathlib/Analysis/SpecialFunctions/Gamma/Beta.lean Modified Mathlib/Analysis/SpecialFunctions/Gaussian.lean Modified Mathlib/Analysis/SpecialFunctions/Integrals.lean +/- theorem integral_sqrt_one_sub_sq Modified Mathlib/Analysis/SpecialFunctions/JapaneseBracket.lean Modified Mathlib/Analysis/SpecialFunctions/Log/Base.lean Modified Mathlib/Analysis/SpecialFunctions/Log/Basic.lean Modified Mathlib/Analysis/SpecialFunctions/PolarCoord.lean Modified Mathlib/Analysis/SpecialFunctions/Pow/Complex.lean Modified Mathlib/Analysis/SpecialFunctions/Pow/Continuity.lean Modified Mathlib/Analysis/SpecialFunctions/Pow/Deriv.lean Modified Mathlib/Analysis/SpecialFunctions/Pow/NNReal.lean Modified Mathlib/Analysis/SpecialFunctions/Pow/Real.lean +/- theorem Complex.cpow_ofReal_im Modified Mathlib/Analysis/SpecialFunctions/SmoothTransition.lean Modified Mathlib/Analysis/SpecialFunctions/Stirling.lean Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Angle.lean Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Arctan.lean Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/ArctanDeriv.lean Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Bounds.lean Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Complex.lean Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/ComplexDeriv.lean Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/EulerSineProd.lean Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Series.lean Modified Mathlib/Analysis/SpecificLimits/FloorPow.lean Modified Mathlib/CategoryTheory/Action.lean +/- def CategoryTheory.ActionCategory.homOfPair Modified Mathlib/CategoryTheory/Category/Basic.lean Modified Mathlib/CategoryTheory/Category/KleisliCat.lean Modified Mathlib/CategoryTheory/CofilteredSystem.lean Modified Mathlib/CategoryTheory/DifferentialObject.lean Modified Mathlib/CategoryTheory/Elements.lean Modified Mathlib/CategoryTheory/Groupoid/Subgroupoid.lean Modified Mathlib/CategoryTheory/Limits/Preserves/Shapes/Biproducts.lean Modified Mathlib/CategoryTheory/Preadditive/Mat.lean Modified Mathlib/CategoryTheory/Sites/Types.lean Modified Mathlib/Combinatorics/Additive/Behrend.lean +/- theorem Behrend.bound_aux' +/- theorem Behrend.exists_large_sphere Modified Mathlib/Combinatorics/Quiver/Covering.lean Modified Mathlib/Combinatorics/SetFamily/FourFunctions.lean Modified Mathlib/Combinatorics/SetFamily/HarrisKleitman.lean Modified Mathlib/Combinatorics/SimpleGraph/Clique.lean Modified Mathlib/Combinatorics/SimpleGraph/Regularity/Bound.lean Modified Mathlib/Combinatorics/SimpleGraph/Regularity/Chunk.lean Modified Mathlib/Combinatorics/SimpleGraph/Regularity/Energy.lean Modified Mathlib/Combinatorics/SimpleGraph/Regularity/Increment.lean Modified Mathlib/Combinatorics/SimpleGraph/Regularity/Lemma.lean Modified Mathlib/Combinatorics/SimpleGraph/StronglyRegular.lean Modified Mathlib/Combinatorics/Young/YoungDiagram.lean Modified Mathlib/Computability/Ackermann.lean Modified Mathlib/Computability/Halting.lean Modified Mathlib/Computability/Primrec.lean Modified Mathlib/Computability/TMComputable.lean Modified Mathlib/Computability/TMToPartrec.lean Modified Mathlib/Control/Applicative.lean Modified Mathlib/Control/Basic.lean +/- theorem fish_pipe +/- theorem fish_pure Modified Mathlib/Control/Functor/Multivariate.lean Modified Mathlib/Control/Traversable/Equiv.lean Modified Mathlib/Data/Bitvec/Lemmas.lean Modified Mathlib/Data/Bool/Basic.lean Modified Mathlib/Data/Complex/Exponential.lean Modified Mathlib/Data/DFinsupp/WellFounded.lean Modified Mathlib/Data/ENat/Basic.lean + theorem ENat.zero_lt_top Modified Mathlib/Data/Fin/Basic.lean Modified Mathlib/Data/Fin/Tuple/Basic.lean +/- theorem Fin.tail_cons Modified Mathlib/Data/Fin/Tuple/Curry.lean Modified Mathlib/Data/Fin/Tuple/Monotone.lean +/- theorem monotone_vecEmpty +/- theorem strictMono_vecEmpty Modified Mathlib/Data/Fin/Tuple/NatAntidiagonal.lean Modified Mathlib/Data/Finset/NAry.lean Modified Mathlib/Data/Finsupp/BigOperators.lean Modified Mathlib/Data/Finsupp/Defs.lean Modified Mathlib/Data/Holor.lean Modified Mathlib/Data/Int/Bitwise.lean +/- theorem Int.shiftLeft_eq_mul_pow +/- theorem Int.shiftRight_eq_div_pow Modified Mathlib/Data/Int/Lemmas.lean Modified Mathlib/Data/Int/ModEq.lean Modified Mathlib/Data/Int/Parity.lean + theorem Int.one_emod_two Modified Mathlib/Data/Int/Range.lean Modified Mathlib/Data/Int/Units.lean Deleted Mathlib/Data/KVMap.lean - def Lean.KVMap.erase - def Lean.KVMap.eraseCore - def Lean.KVMap.updateBool Modified Mathlib/Data/LazyList/Basic.lean Modified Mathlib/Data/List/Basic.lean Modified Mathlib/Data/List/BigOperators/Basic.lean Modified Mathlib/Data/List/Chain.lean Modified Mathlib/Data/List/DropRight.lean - def List.dropRight - def List.dropRightWhile - theorem List.dropRightWhile_concat - theorem List.dropRightWhile_concat_neg - theorem List.dropRightWhile_concat_pos - theorem List.dropRightWhile_eq_nil_iff - theorem List.dropRightWhile_eq_self_iff - theorem List.dropRightWhile_idempotent - theorem List.dropRightWhile_last_not - theorem List.dropRightWhile_nil - theorem List.dropRightWhile_prefix - theorem List.dropRightWhile_singleton - theorem List.dropRight_concat_succ - theorem List.dropRight_eq_reverse_drop_reverse - theorem List.dropRight_nil - theorem List.dropRight_zero +/- theorem List.dropWhile_eq_self_iff + theorem List.mem_rtakeWhile_imp - theorem List.mem_takeRightWhile_imp + def List.rdrop + def List.rdropWhile + theorem List.rdropWhile_concat + theorem List.rdropWhile_concat_neg + theorem List.rdropWhile_concat_pos + theorem List.rdropWhile_eq_nil_iff + theorem List.rdropWhile_eq_self_iff + theorem List.rdropWhile_idempotent + theorem List.rdropWhile_last_not + theorem List.rdropWhile_nil + theorem List.rdropWhile_prefix + theorem List.rdropWhile_singleton + theorem List.rdrop_concat_succ + theorem List.rdrop_eq_reverse_drop_reverse + theorem List.rdrop_nil + theorem List.rdrop_zero + def List.rtake + def List.rtakeWhile + theorem List.rtakeWhile_concat + theorem List.rtakeWhile_concat_neg + theorem List.rtakeWhile_concat_pos + theorem List.rtakeWhile_eq_nil_iff + theorem List.rtakeWhile_eq_self_iff + theorem List.rtakeWhile_idempotent + theorem List.rtakeWhile_nil + theorem List.rtakeWhile_suffix + theorem List.rtake_concat_succ + theorem List.rtake_eq_reverse_take_reverse + theorem List.rtake_nil + theorem List.rtake_zero - def List.takeRight - def List.takeRightWhile - theorem List.takeRightWhile_concat - theorem List.takeRightWhile_concat_neg - theorem List.takeRightWhile_concat_pos - theorem List.takeRightWhile_eq_nil_iff - theorem List.takeRightWhile_eq_self_iff - theorem List.takeRightWhile_idempotent - theorem List.takeRightWhile_nil - theorem List.takeRightWhile_suffix - theorem List.takeRight_concat_succ - theorem List.takeRight_eq_reverse_take_reverse - theorem List.takeRight_nil - theorem List.takeRight_zero Modified Mathlib/Data/List/EditDistance/Defs.lean Modified Mathlib/Data/List/Indexes.lean Modified Mathlib/Data/List/Infix.lean Modified Mathlib/Data/List/Intervals.lean Modified Mathlib/Data/List/Lattice.lean Modified Mathlib/Data/List/Perm.lean Modified Mathlib/Data/List/Range.lean +/- theorem List.nodup_range Modified Mathlib/Data/List/Sigma.lean Modified Mathlib/Data/Matrix/Basis.lean Modified Mathlib/Data/Multiset/Basic.lean Modified Mathlib/Data/MvPolynomial/Division.lean Modified Mathlib/Data/MvPolynomial/Variables.lean Modified Mathlib/Data/Nat/Bitwise.lean +/- theorem Nat.zero_xor Modified Mathlib/Data/Nat/Choose/Multinomial.lean Modified Mathlib/Data/Nat/Digits.lean Modified Mathlib/Data/Nat/Factorial/BigOperators.lean Modified Mathlib/Data/Nat/Factorization/Basic.lean +/- theorem Nat.factorization_one +/- theorem Nat.factorization_zero Modified Mathlib/Data/Nat/Hyperoperation.lean Modified Mathlib/Data/Nat/Log.lean Modified Mathlib/Data/Nat/ModEq.lean Modified Mathlib/Data/Nat/Parity.lean Modified Mathlib/Data/Nat/PartENat.lean Modified Mathlib/Data/Nat/Sqrt.lean Modified Mathlib/Data/Nat/Squarefree.lean Modified Mathlib/Data/Nat/WithBot.lean Modified Mathlib/Data/Num/Lemmas.lean Modified Mathlib/Data/Option/Basic.lean Modified Mathlib/Data/PFunctor/Multivariate/W.lean Modified Mathlib/Data/PNat/Basic.lean +/- theorem PNat.pow_coe Modified Mathlib/Data/PNat/Prime.lean +/- theorem PNat.Coprime.pow Modified Mathlib/Data/Polynomial/Coeff.lean Modified Mathlib/Data/Polynomial/Div.lean Modified Mathlib/Data/Polynomial/FieldDivision.lean Modified Mathlib/Data/Polynomial/RingDivision.lean Modified Mathlib/Data/Polynomial/UnitTrinomial.lean Modified Mathlib/Data/QPF/Multivariate/Constructions/Cofix.lean Modified Mathlib/Data/QPF/Multivariate/Constructions/Comp.lean Modified Mathlib/Data/QPF/Univariate/Basic.lean Modified Mathlib/Data/Quot.lean Modified Mathlib/Data/Rat/Cast/CharZero.lean +/- theorem Rat.cast_pow Modified Mathlib/Data/Rat/Defs.lean Modified Mathlib/Data/Rat/Lemmas.lean Modified Mathlib/Data/Real/ENNReal.lean + theorem ENNReal.two_lt_top +/- theorem ENNReal.two_ne_top + theorem ENNReal.zero_lt_top Modified Mathlib/Data/Real/Pi/Bounds.lean Modified Mathlib/Data/Real/Pi/Leibniz.lean Modified Mathlib/Data/Real/Pi/Wallis.lean Modified Mathlib/Data/Rel.lean +/- theorem Function.graph_id +/- theorem Rel.inv_bot +/- theorem Rel.inv_top Modified Mathlib/Data/Seq/Parallel.lean Modified Mathlib/Data/Seq/WSeq.lean Modified Mathlib/Data/Set/Card.lean Modified Mathlib/Data/Set/Function.lean Modified Mathlib/Data/Set/Intervals/Group.lean Modified Mathlib/Data/Set/Intervals/OrdConnectedComponent.lean Modified Mathlib/Data/Set/Pointwise/Interval.lean Modified Mathlib/Data/Sign.lean Modified Mathlib/Data/String/Basic.lean Modified Mathlib/Data/Sym/Card.lean Modified Mathlib/Data/ZMod/Basic.lean Modified Mathlib/Data/ZMod/IntUnitsPower.lean Modified Mathlib/FieldTheory/AbelRuffini.lean Modified Mathlib/FieldTheory/IsAlgClosed/Spectrum.lean Modified Mathlib/FieldTheory/PrimitiveElement.lean Modified Mathlib/FieldTheory/RatFunc.lean Modified Mathlib/FieldTheory/Subfield.lean +/- theorem SubfieldClass.coe_rat_smul Modified Mathlib/Geometry/Euclidean/Angle/Oriented/Basic.lean Modified Mathlib/Geometry/Euclidean/Angle/Unoriented/RightAngle.lean Modified Mathlib/Geometry/Euclidean/Inversion/Calculus.lean Modified Mathlib/Geometry/Euclidean/MongePoint.lean Modified Mathlib/Geometry/Euclidean/Sphere/Basic.lean Modified Mathlib/Geometry/Euclidean/Triangle.lean Modified Mathlib/Geometry/Manifold/ChartedSpace.lean Modified Mathlib/Geometry/Manifold/ContMDiff.lean Modified Mathlib/Geometry/Manifold/ContMDiffMFDeriv.lean Modified Mathlib/Geometry/Manifold/Instances/Sphere.lean Modified Mathlib/Geometry/Manifold/VectorBundle/Tangent.lean Modified Mathlib/GroupTheory/CommutingProbability.lean Modified Mathlib/GroupTheory/FiniteAbelian.lean Modified Mathlib/GroupTheory/GroupAction/Quotient.lean Modified Mathlib/GroupTheory/GroupAction/SubMulAction/Pointwise.lean +/- theorem SubMulAction.coe_pow +/- theorem SubMulAction.subset_coe_pow Modified Mathlib/GroupTheory/HNNExtension.lean Modified Mathlib/GroupTheory/OrderOfElement.lean Modified Mathlib/GroupTheory/Perm/Fin.lean Modified Mathlib/GroupTheory/PushoutI.lean Modified Mathlib/GroupTheory/SpecificGroups/Alternating.lean Modified Mathlib/GroupTheory/SpecificGroups/Dihedral.lean Modified Mathlib/GroupTheory/SpecificGroups/KleinFour.lean Modified Mathlib/GroupTheory/Submonoid/Operations.lean Modified Mathlib/Init/Data/Bool/Lemmas.lean +/- theorem Bool.decide_false_iff Modified Mathlib/Init/Data/Nat/Lemmas.lean Modified Mathlib/Init/Function.lean - theorem Function.comp_def Modified Mathlib/Init/Order/Defs.lean Modified Mathlib/Init/Quot.lean + theorem Quotient.mk'_eq_mk Deleted Mathlib/Lean/Linter.lean - def Lean.Linter.logLintIf Modified Mathlib/LinearAlgebra/AffineSpace/FiniteDimensional.lean Modified Mathlib/LinearAlgebra/AffineSpace/Independent.lean Modified Mathlib/LinearAlgebra/Alternating/Basic.lean +/- theorem AlternatingMap.coe_smul Modified Mathlib/LinearAlgebra/Basic.lean Modified Mathlib/LinearAlgebra/Determinant.lean Modified Mathlib/LinearAlgebra/ExteriorAlgebra/Grading.lean Modified Mathlib/LinearAlgebra/Finrank.lean Modified Mathlib/LinearAlgebra/LinearPMap.lean Modified Mathlib/LinearAlgebra/Matrix/Polynomial.lean Modified Mathlib/LinearAlgebra/Matrix/Transvection.lean Modified Mathlib/Logic/Basic.lean +/- theorem xor_true Modified Mathlib/Logic/Embedding/Basic.lean Modified Mathlib/MeasureTheory/Constructions/BorelSpace/Basic.lean Modified Mathlib/MeasureTheory/Constructions/Pi.lean Modified Mathlib/MeasureTheory/Covering/Besicovitch.lean Modified Mathlib/MeasureTheory/Covering/BesicovitchVectorSpace.lean Modified Mathlib/MeasureTheory/Covering/Differentiation.lean Modified Mathlib/MeasureTheory/Decomposition/Lebesgue.lean +/- theorem MeasureTheory.Measure.rnDeriv_singularPart Modified Mathlib/MeasureTheory/Function/ConvergenceInMeasure.lean Modified Mathlib/MeasureTheory/Function/Jacobian.lean Modified Mathlib/MeasureTheory/Function/L1Space.lean Modified Mathlib/MeasureTheory/Function/L2Space.lean Modified Mathlib/MeasureTheory/Function/LpSeminorm.lean Modified Mathlib/MeasureTheory/Function/LpSpace.lean Modified Mathlib/MeasureTheory/Function/SimpleFunc.lean Modified Mathlib/MeasureTheory/Function/SimpleFuncDense.lean Modified Mathlib/MeasureTheory/Function/SimpleFuncDenseLp.lean Modified Mathlib/MeasureTheory/Function/StronglyMeasurable/Basic.lean Modified Mathlib/MeasureTheory/Function/UniformIntegrable.lean Modified Mathlib/MeasureTheory/Group/Measure.lean +/- theorem MeasureTheory.regular_inv_iff Modified Mathlib/MeasureTheory/Integral/Bochner.lean Modified Mathlib/MeasureTheory/Integral/CircleIntegral.lean Modified Mathlib/MeasureTheory/Integral/CircleTransform.lean Modified Mathlib/MeasureTheory/Integral/MeanInequalities.lean Modified Mathlib/MeasureTheory/Integral/PeakFunction.lean Modified Mathlib/MeasureTheory/Integral/SetIntegral.lean Modified Mathlib/MeasureTheory/Integral/TorusIntegral.lean Modified Mathlib/MeasureTheory/MeasurableSpace/Basic.lean Modified Mathlib/MeasureTheory/Measure/Doubling.lean Modified Mathlib/MeasureTheory/Measure/Haar/Basic.lean Modified Mathlib/MeasureTheory/Measure/Haar/InnerProductSpace.lean Modified Mathlib/MeasureTheory/Measure/Haar/NormedSpace.lean Modified Mathlib/MeasureTheory/Measure/Lebesgue/Basic.lean Modified Mathlib/MeasureTheory/Measure/Lebesgue/Complex.lean Modified Mathlib/MeasureTheory/Measure/Lebesgue/EqHaar.lean Modified Mathlib/MeasureTheory/Measure/ProbabilityMeasure.lean Modified Mathlib/MeasureTheory/Measure/Typeclasses.lean Modified Mathlib/NumberTheory/Basic.lean Modified Mathlib/NumberTheory/Bernoulli.lean Modified Mathlib/NumberTheory/Bertrand.lean Modified Mathlib/NumberTheory/ClassNumber/Finite.lean Modified Mathlib/NumberTheory/Cyclotomic/Discriminant.lean Modified Mathlib/NumberTheory/Cyclotomic/PrimitiveRoots.lean Modified Mathlib/NumberTheory/Cyclotomic/Rat.lean Modified Mathlib/NumberTheory/Dioph.lean Modified Mathlib/NumberTheory/Divisors.lean Modified Mathlib/NumberTheory/FLT/Four.lean Modified Mathlib/NumberTheory/LegendreSymbol/GaussEisensteinLemmas.lean Modified Mathlib/NumberTheory/LegendreSymbol/JacobiSymbol.lean Modified Mathlib/NumberTheory/LegendreSymbol/QuadraticChar/Basic.lean Modified Mathlib/NumberTheory/LegendreSymbol/QuadraticChar/GaussSum.lean Modified Mathlib/NumberTheory/LegendreSymbol/QuadraticReciprocity.lean Modified Mathlib/NumberTheory/LegendreSymbol/ZModChar.lean Modified Mathlib/NumberTheory/Liouville/LiouvilleNumber.lean Modified Mathlib/NumberTheory/Liouville/LiouvilleWith.lean Modified Mathlib/NumberTheory/Liouville/Measure.lean Modified Mathlib/NumberTheory/Modular.lean Modified Mathlib/NumberTheory/ModularForms/JacobiTheta/Basic.lean +/- theorem jacobiTheta_T_sq_smul Modified Mathlib/NumberTheory/ModularForms/SlashActions.lean Modified Mathlib/NumberTheory/Multiplicity.lean Modified Mathlib/NumberTheory/NumberField/CanonicalEmbedding.lean Modified Mathlib/NumberTheory/NumberField/Embeddings.lean Modified Mathlib/NumberTheory/NumberField/Units.lean +/- theorem NumberField.Units.coe_pow +/- theorem NumberField.Units.coe_zpow Modified Mathlib/NumberTheory/Padics/PadicIntegers.lean Modified Mathlib/NumberTheory/Padics/PadicVal.lean Modified Mathlib/NumberTheory/Padics/RingHoms.lean +/- theorem PadicInt.nthHom_zero Modified Mathlib/NumberTheory/Pell.lean Modified Mathlib/NumberTheory/PellMatiyasevic.lean Modified Mathlib/NumberTheory/PythagoreanTriples.lean Modified Mathlib/NumberTheory/Rayleigh.lean Modified Mathlib/NumberTheory/SmoothNumbers.lean +/- theorem Nat.smoothNumbers_one Modified Mathlib/NumberTheory/SumFourSquares.lean Modified Mathlib/NumberTheory/SumTwoSquares.lean Modified Mathlib/NumberTheory/ZetaFunction.lean Modified Mathlib/NumberTheory/ZetaValues.lean Modified Mathlib/NumberTheory/Zsqrtd/QuadraticReciprocity.lean Modified Mathlib/Order/Filter/AtTopBot.lean Modified Mathlib/Order/Filter/ENNReal.lean Modified Mathlib/Order/Filter/IndicatorFunction.lean Modified Mathlib/Order/LocallyFinite.lean Modified Mathlib/Probability/Distributions/Gaussian.lean Modified Mathlib/Probability/Integration.lean Modified Mathlib/Probability/Kernel/Composition.lean Modified Mathlib/Probability/Martingale/BorelCantelli.lean Modified Mathlib/Probability/Martingale/Convergence.lean Modified Mathlib/Probability/Martingale/Upcrossing.lean Modified Mathlib/Probability/Notation.lean Modified Mathlib/Probability/Process/Stopping.lean Modified Mathlib/Probability/StrongLaw.lean Modified Mathlib/Probability/Variance.lean Modified Mathlib/RepresentationTheory/GroupCohomology/Resolution.lean Modified Mathlib/RingTheory/GradedAlgebra/HomogeneousLocalization.lean Modified Mathlib/RingTheory/LocalProperties.lean Modified Mathlib/RingTheory/MvPolynomial/NewtonIdentities.lean Modified Mathlib/RingTheory/Polynomial/Cyclotomic/Basic.lean Modified Mathlib/RingTheory/Polynomial/Selmer.lean Modified Mathlib/RingTheory/RootsOfUnity/Basic.lean Modified Mathlib/RingTheory/WittVector/Basic.lean Modified Mathlib/RingTheory/WittVector/DiscreteValuationRing.lean Modified Mathlib/RingTheory/WittVector/Frobenius.lean Modified Mathlib/RingTheory/WittVector/IsPoly.lean Modified Mathlib/RingTheory/WittVector/MulCoeff.lean Modified Mathlib/RingTheory/WittVector/StructurePolynomial.lean Modified Mathlib/SetTheory/Cardinal/Basic.lean +/- theorem Cardinal.le_powerlt +/- theorem Cardinal.natCast_pow +/- theorem Cardinal.one_power +/- theorem Cardinal.power_def +/- theorem Cardinal.power_one +/- theorem Cardinal.power_zero +/- theorem Cardinal.zero_power Modified Mathlib/SetTheory/Cardinal/Divisibility.lean Modified Mathlib/SetTheory/Cardinal/Finite.lean Modified Mathlib/SetTheory/Lists.lean Modified Mathlib/SetTheory/Ordinal/Arithmetic.lean Modified Mathlib/SetTheory/Ordinal/Basic.lean Modified Mathlib/SetTheory/Ordinal/CantorNormalForm.lean Modified Mathlib/SetTheory/Ordinal/Exponential.lean +/- theorem Ordinal.log_nonempty +/- theorem Ordinal.nat_cast_opow +/- theorem Ordinal.one_opow +/- theorem Ordinal.opow_one +/- theorem Ordinal.opow_zero +/- theorem Ordinal.sup_opow_nat +/- theorem Ordinal.zero_opow Modified Mathlib/SetTheory/Ordinal/Notation.lean Modified Mathlib/SetTheory/Ordinal/Principal.lean Modified Mathlib/Tactic/ComputeDegree.lean Modified Mathlib/Tactic/DeriveTraversable.lean Modified Mathlib/Tactic/LibrarySearch.lean Modified Mathlib/Tactic/NormNum/LegendreSymbol.lean Modified Mathlib/Tactic/Rewrites.lean Modified Mathlib/Tactic/Simps/Basic.lean Modified Mathlib/Tactic/ToAdditive.lean Modified Mathlib/Tactic/UnsetOption.lean Modified Mathlib/Topology/Algebra/InfiniteSum/Basic.lean Modified Mathlib/Topology/Algebra/Module/Basic.lean Modified Mathlib/Topology/Algebra/Module/Cardinality.lean Modified Mathlib/Topology/Algebra/Monoid.lean Modified Mathlib/Topology/Algebra/Nonarchimedean/AdicTopology.lean Modified Mathlib/Topology/Algebra/ValuedField.lean Modified Mathlib/Topology/Basic.lean Modified Mathlib/Topology/Category/Profinite/Nobeling.lean Modified Mathlib/Topology/Category/TopCat/Limits/Pullbacks.lean Modified Mathlib/Topology/Constructions.lean Modified Mathlib/Topology/ContinuousFunction/Basic.lean Modified Mathlib/Topology/EMetricSpace/Paracompact.lean Modified Mathlib/Topology/Instances/ENNReal.lean Modified Mathlib/Topology/MetricSpace/GromovHausdorff.lean Modified Mathlib/Topology/MetricSpace/HausdorffDimension.lean Modified Mathlib/Topology/MetricSpace/ThickenedIndicator.lean Modified Mathlib/Topology/Sequences.lean Modified Mathlib/Topology/Sheaves/Presheaf.lean Modified Mathlib/Topology/Sheaves/SheafCondition/UniqueGluing.lean Modified Mathlib/Topology/UniformSpace/Pi.lean Modified Mathlib/Topology/VectorBundle/Basic.lean Modified lake-manifest.json Modified lakefile.lean Modified lean-toolchain Modified test/Clean.lean + theorem Tests.withClean - def Tests.withClean + theorem Tests.withoutClean - def Tests.withoutClean Modified test/RewriteSearch/Basic.lean Modified test/hint.lean Modified test/linear_combination.lean Modified test/matrix.lean Modified test/norm_num_ext.lean Modified test/positivity.lean 2023-11-17 00:15:30 a2ca43e refactor(CategoryTheory): simplify the proof of the characterisation of regular sheaves using the new arrows API (#8443) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Sites/RegularExtensive.lean - def CategoryTheory.EqualizerFirstObjIso - def CategoryTheory.EqualizerSecondObjIso - theorem CategoryTheory.IsSheafForRegular.equalizerCondition + theorem CategoryTheory.equalizerCondition_of_regular 2023-11-16 23:07:20 c81061b feat: add lemmas on Complex.arg (x * y) and Complex.log (x * y) (#8346) This adds lemmas as in the title (plus one for `arg (x * r)` with real `r`): ```lean lemma arg_mul_eq_add_arg_iff {x y : ℂ} (hx₀ : x ≠ 0) (hy₀ : y ≠ 0) : (x * y).arg = x.arg + y.arg ↔ arg x + arg y ∈ Set.Ioc (-π) π lemma arg_mul {x y : ℂ} (hx₀ : x ≠ 0) (hx₁ : -π / 2 < x.arg) (hx₂ : x.arg ≤ π / 2) (hy₀ : y ≠ 0) (hy₁ : -π / 2 < y.arg) (hy₂ : y.arg ≤ π / 2) : (x * y).arg = x.arg + y.arg lemma log_mul_eq_add_log_iff {x y : ℂ} (hx₀ : x ≠ 0) (hy₀ : y ≠ 0) : log (x * y) = log x + log y ↔ arg x + arg y ∈ Set.Ioc (-π) π lemma log_mul {x y : ℂ} (hx₀ : x ≠ 0) (hx₁ : -π / 2 < x.arg) (hx₂ : x.arg ≤ π / 2) (hy₀ : y ≠ 0) (hy₁ : -π / 2 < y.arg) (hy₂ : y.arg ≤ π / 2) : (x * y).log = x.log + y.log ``` See [here](https://leanprover.zulipchat.com/#narrow/stream/217875-Is-there-code-for-X.3F/topic/log.20.28x*y.29.20.3D.20log.20x.20.2B.20log.20y.20for.20complex.20numbers/near/401233495) on Zulip. ESTIMATED CHANGES Modified Mathlib/Analysis/SpecialFunctions/Complex/Arg.lean + theorem Complex.arg_mul_eq_add_arg_iff + theorem Complex.arg_mul_real Modified Mathlib/Analysis/SpecialFunctions/Complex/Log.lean + theorem Complex.log_mul_eq_add_log_iff 2023-11-16 23:07:19 79da87b fix: remove references to non-heterogenous operators in theorem statements (#8086) Some of these are likely porting errors. Statements should always be about the heterogenous versions because these are the ones with notation. For places where we are abusing defeq, this debuts the trick of using `(by exact a : B) = (by exact a1) + (by exact b2)` to ensure the `=` and `+` are typed as `B` instead of `A`. ESTIMATED CHANGES Modified Mathlib/Algebra/Category/GroupCat/Colimits.lean +/- theorem AddCommGroupCat.Colimits.quot_neg Modified Mathlib/Algebra/Category/Ring/Colimits.lean Modified Mathlib/Algebra/CharP/Two.lean +/- theorem CharTwo.sub_eq_add' Modified Mathlib/Algebra/Free.lean Modified Mathlib/Algebra/Group/Ext.lean +/- theorem CancelCommMonoid.ext +/- theorem CancelMonoid.ext +/- theorem CommMonoid.ext +/- theorem DivInvMonoid.ext +/- theorem LeftCancelMonoid.ext +/- theorem Monoid.ext +/- theorem RightCancelMonoid.ext Modified Mathlib/Algebra/Order/LatticeGroup.lean +/- theorem LatticeOrderedGroup.neg_eq_one_iff Modified Mathlib/Algebra/Order/Monoid/OrderDual.lean Modified Mathlib/Geometry/Manifold/MFDeriv.lean 2023-11-16 21:53:44 59a1489 fix: make `lake exe cache get` in post-update hook conditional (#8448) This is required for projects that want to run `lake update` without `lake exe cache get`, until `lake` gets the ability to turn off post-update hooks. ESTIMATED CHANGES Modified lakefile.lean 2023-11-16 20:59:43 86d828e feat(Condensed): adjunctions between categories of condensed objects (#8210) Creates the file `Condensed/Adjunctions`. For now there is only the free-forgetful adjunction for condensed sets/abelian groups, but there are others on the to-do list. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Condensed/Adjunctions.lean + def Condensed.abForget + def Condensed.freeAb + def Condensed.setAbAdjunction 2023-11-16 19:44:40 276f2a3 fix: `have` should check that the type is a type (#8445) As [reported on Zulip](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/bug.20in.20mathlib's.20have.20extension/near/402472594). ESTIMATED CHANGES Modified Mathlib/Tactic/Have.lean Modified test/Have.lean 2023-11-16 19:44:39 5e9b46e style: cleanup by putting `by` on the same line as `:=` (#8407) ESTIMATED CHANGES Modified Archive/Imo/Imo2005Q3.lean Modified Archive/Wiedijk100Theorems/Partition.lean Modified Archive/Wiedijk100Theorems/SolutionOfCubic.lean Modified Mathlib/Algebra/Algebra/Basic.lean +/- theorem Algebra.right_comm Modified Mathlib/Algebra/Algebra/Operations.lean Modified Mathlib/Algebra/Algebra/Spectrum.lean Modified Mathlib/Algebra/Algebra/Tower.lean Modified Mathlib/Algebra/Associated.lean Modified Mathlib/Algebra/BigOperators/Intervals.lean Modified Mathlib/Algebra/BigOperators/NatAntidiagonal.lean Modified Mathlib/Algebra/BigOperators/Ring.lean Modified Mathlib/Algebra/Category/ModuleCat/Free.lean Modified Mathlib/Algebra/Category/ModuleCat/Monoidal/Basic.lean Modified Mathlib/Algebra/Free.lean Modified Mathlib/Algebra/GeomSum.lean Modified Mathlib/Algebra/GradedMonoid.lean Modified Mathlib/Algebra/IndicatorFunction.lean Modified Mathlib/Algebra/Periodic.lean +/- theorem Function.Antiperiodic.neg_eq Modified Mathlib/Algebra/Quaternion.lean +/- theorem Quaternion.coe_normSq_add Modified Mathlib/Algebra/RingQuot.lean +/- theorem RingQuot.mkAlgHom_rel Modified Mathlib/Algebra/Support.lean +/- theorem Function.disjoint_mulSupport_iff Modified Mathlib/GroupTheory/Submonoid/Pointwise.lean +/- theorem AddSubmonoid.pow_eq_closure_pow_set Modified Mathlib/GroupTheory/Subsemigroup/Center.lean Modified Mathlib/GroupTheory/Subsemigroup/Centralizer.lean +/- theorem Set.inv_mem_centralizer Modified Mathlib/Init/Logic.lean Modified Mathlib/LinearAlgebra/Basic.lean +/- theorem LinearMap.disjoint_ker Modified Mathlib/LinearAlgebra/Basis.lean +/- theorem Basis.coord_repr_symm Modified Mathlib/LinearAlgebra/Determinant.lean Modified Mathlib/Order/Category/CompleteLat.lean Modified Mathlib/Order/CompactlyGenerated.lean Modified Mathlib/Order/CompleteBooleanAlgebra.lean +/- theorem iSup₂_inf_eq +/- theorem inf_iSup₂_eq Modified Mathlib/Order/CompleteLattice.lean +/- theorem iInf_false +/- theorem iSup_false +/- theorem iSup_union Modified Mathlib/Order/ConditionallyCompleteLattice/Finset.lean +/- theorem Finset.Nonempty.sup'_id_eq_cSup Modified Mathlib/Order/Filter/Bases.lean +/- theorem Filter.HasBasis.le_iff +/- theorem Filter.hasBasis_pure Modified Mathlib/Order/Filter/Basic.lean Modified Mathlib/Order/Filter/Extr.lean +/- theorem IsMaxOn.sub +/- theorem IsMinOn.sub Modified Mathlib/Order/Filter/Pi.lean Modified Mathlib/Order/Filter/Prod.lean Modified Mathlib/Order/Heyting/Basic.lean +/- theorem le_sup_sdiff_sup_sdiff Modified Mathlib/Order/Interval.lean +/- theorem NonemptyInterval.toProd_injective Modified Mathlib/Order/LiminfLimsup.lean +/- theorem Filter.limsSup_principal Modified Mathlib/Order/OrdContinuous.lean Modified Mathlib/Order/RelClasses.lean Modified Mathlib/Order/WithBot.lean +/- theorem WithBot.some_le_some Modified Mathlib/Tactic/Positivity/Basic.lean Modified Mathlib/Topology/Algebra/Group/Basic.lean Modified Mathlib/Topology/Algebra/InfiniteSum/Basic.lean Modified Mathlib/Topology/Algebra/Module/Basic.lean Modified Mathlib/Topology/Algebra/Monoid.lean Modified Mathlib/Topology/Algebra/UniformGroup.lean Modified Mathlib/Topology/Basic.lean +/- theorem acc_principal_iff_cluster +/- theorem isClosed_iff_nhds Modified Mathlib/Topology/Constructions.lean +/- theorem discreteTopology_subtype_iff +/- theorem frontier_prod_univ_eq +/- theorem frontier_univ_prod_eq Modified Mathlib/Topology/ContinuousFunction/Basic.lean +/- theorem Homeomorph.symm_comp_toContinuousMap +/- theorem Homeomorph.toContinuousMap_comp_symm Modified Mathlib/Topology/ContinuousFunction/Ideals.lean Modified Mathlib/Topology/ContinuousOn.lean Modified Mathlib/Topology/FiberBundle/IsHomeomorphicTrivialBundle.lean Modified Mathlib/Topology/FiberBundle/Trivialization.lean Modified Mathlib/Topology/Filter.lean +/- theorem Filter.nhds_nhds Modified Mathlib/Topology/Inseparable.lean +/- theorem SeparationQuotient.map_prod_map_mk_nhds Modified Mathlib/Topology/LocalHomeomorph.lean +/- theorem LocalHomeomorph.ofSet_trans' Modified Mathlib/Topology/MetricSpace/Gluing.lean Modified Mathlib/Topology/MetricSpace/GromovHausdorff.lean Modified Mathlib/Topology/MetricSpace/HausdorffDistance.lean +/- theorem EMetric.infEdist_pos_iff_not_mem_closure Modified Mathlib/Topology/MetricSpace/Infsep.lean +/- theorem Set.einfsep_zero +/- theorem Set.le_einfsep_image_iff Modified Mathlib/Topology/MetricSpace/IsometricSMul.lean +/- theorem EMetric.preimage_smul_ball Modified Mathlib/Topology/ProperMap.lean Modified Mathlib/Topology/Separation.lean Modified Mathlib/Topology/Sober.lean +/- theorem genericPoint_spec 2023-11-16 18:34:57 9b25884 feat: local context selection in conv? widget (#8217) ESTIMATED CHANGES Modified Mathlib/Tactic/Widget/Conv.lean 2023-11-16 18:34:56 0c72655 feat: add `Trans` instance for List.Perm and a lemma on `List`s (#8189) This PR adds - a lemma `List.count_filter_add_count_filter` in `Data.List.Count` - an instance `Trans (@List.Perm α) (@List.Perm α) (@List.Perm α)` to allow using permutation equivalence of `Lists` in a `calc` block in `Data.List.Perm` See [here on Zulip](https://leanprover.zulipchat.com/#narrow/stream/217875-Is-there-code-for-X.3F/topic/Struggling.20with.20List.2Efilter/near/400293835). ESTIMATED CHANGES Modified Mathlib/Data/List/Perm.lean + theorem List.count_eq_count_filter_add 2023-11-16 17:27:07 26fbe28 chore(Algebra/Invertible/Defs): extract a variable command (#8441) As requested by @YaelDillies ESTIMATED CHANGES Modified Mathlib/Algebra/Invertible/Defs.lean +/- theorem invOf_mul_eq_iff_eq_mul_left +/- theorem mul_invOf_eq_iff_eq_mul_right +/- theorem mul_left_eq_iff_eq_invOf_mul +/- theorem mul_left_inj_of_invertible +/- theorem mul_right_eq_iff_eq_mul_invOf +/- theorem mul_right_inj_of_invertible 2023-11-16 14:12:31 48237d4 style: cleanup some autoImplicits (#8288) In some cases adding the arguments manually results in a more obvious argument order anyway ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Defs.lean Modified Mathlib/Algebra/Group/MinimalAxioms.lean Modified Mathlib/Algebra/Group/Semiconj/Basic.lean Modified Mathlib/Algebra/Group/Semiconj/Defs.lean Modified Mathlib/Algebra/Group/Semiconj/Units.lean Modified Mathlib/Algebra/GroupWithZero/Defs.lean Modified Mathlib/Algebra/GroupWithZero/NeZero.lean Modified Mathlib/Algebra/Invertible/Defs.lean +/- theorem invOf_mul_eq_iff_eq_mul_left +/- theorem mul_invOf_eq_iff_eq_mul_right +/- theorem mul_left_eq_iff_eq_invOf_mul +/- theorem mul_left_inj_of_invertible +/- theorem mul_right_eq_iff_eq_mul_invOf +/- theorem mul_right_inj_of_invertible Modified Mathlib/Algebra/Invertible/GroupWithZero.lean Modified Mathlib/Algebra/Opposites.lean 2023-11-16 13:41:58 a76dc22 chore(RingTheory/{Algebraic, Localization/Integral}): rename decls to use dot notation (#8437) This PR tests a string-based tool for renaming declarations. Inspired by [this Zulip thread](https://leanprover.zulipchat.com/#narrow/stream/270676-lean4/topic/Renaming.20decls.20using.20LSP/near/402399853), I am trying to reduce the diff of #8406. This PR makes the following renames: | From | To | ESTIMATED CHANGES Modified Mathlib/FieldTheory/AbelRuffini.lean Modified Mathlib/FieldTheory/Adjoin.lean Modified Mathlib/FieldTheory/IsAlgClosed/AlgebraicClosure.lean Modified Mathlib/FieldTheory/Minpoly/Field.lean Modified Mathlib/FieldTheory/Normal.lean Modified Mathlib/FieldTheory/Perfect.lean Modified Mathlib/FieldTheory/PrimitiveElement.lean Modified Mathlib/FieldTheory/Separable.lean Modified Mathlib/FieldTheory/SplittingField/IsSplittingField.lean Modified Mathlib/NumberTheory/Cyclotomic/Basic.lean Modified Mathlib/NumberTheory/Cyclotomic/Discriminant.lean Modified Mathlib/NumberTheory/Cyclotomic/PrimitiveRoots.lean Modified Mathlib/NumberTheory/Cyclotomic/Rat.lean Modified Mathlib/NumberTheory/NumberField/Norm.lean Modified Mathlib/RingTheory/Adjoin/Field.lean Modified Mathlib/RingTheory/Adjoin/PowerBasis.lean Modified Mathlib/RingTheory/Algebraic.lean + theorem IsAlgebraic.of_finite + theorem IsAlgebraic.of_larger_base + theorem IsAlgebraic.of_larger_base_of_injective + theorem IsAlgebraic.of_pow - theorem isAlgebraic_algHom_of_isAlgebraic - theorem isAlgebraic_algebraMap_of_isAlgebraic - theorem isAlgebraic_of_finite - theorem isAlgebraic_of_larger_base - theorem isAlgebraic_of_larger_base_of_injective - theorem isAlgebraic_of_pow Modified Mathlib/RingTheory/DedekindDomain/Ideal.lean Modified Mathlib/RingTheory/DedekindDomain/IntegralClosure.lean Modified Mathlib/RingTheory/Discriminant.lean Modified Mathlib/RingTheory/FractionalIdeal.lean Modified Mathlib/RingTheory/Ideal/Over.lean Modified Mathlib/RingTheory/IntegralClosure.lean + theorem Algebra.IsIntegral.quotient - theorem FG_adjoin_of_finite - theorem FG_adjoin_singleton_of_integral + theorem IsIntegral.add - theorem IsIntegral.algebraMap + theorem IsIntegral.fg_adjoin_singleton + theorem IsIntegral.map + theorem IsIntegral.map_of_comp_eq + theorem IsIntegral.mul + theorem IsIntegral.neg + theorem IsIntegral.of_finite + theorem IsIntegral.of_mem_closure + theorem IsIntegral.of_mem_of_fg + theorem IsIntegral.of_mul_unit + theorem IsIntegral.of_pow + theorem IsIntegral.of_subring + theorem IsIntegral.smul + theorem IsIntegral.sub + theorem IsIntegral.tower_bot + theorem IsIntegral.tower_bot_of_field + theorem fg_adjoin_of_finite - theorem isIntegral_add - theorem isIntegral_map_of_comp_eq_of_isIntegral - theorem isIntegral_mul - theorem isIntegral_neg - theorem isIntegral_ofSubring - theorem isIntegral_of_finite - theorem isIntegral_of_isIntegral_mul_unit - theorem isIntegral_of_mem_closure - theorem isIntegral_of_mem_of_FG - theorem isIntegral_of_pow - theorem isIntegral_quotient_of_isIntegral - theorem isIntegral_smul - theorem isIntegral_sub - theorem isIntegral_tower_bot_of_isIntegral - theorem isIntegral_tower_bot_of_isIntegral_field - theorem map_isIntegral - theorem mem_integralClosure_iff_mem_FG + theorem mem_integralClosure_iff_mem_fg Modified Mathlib/RingTheory/IntegrallyClosed.lean Modified Mathlib/RingTheory/Jacobson.lean Modified Mathlib/RingTheory/Localization/Integral.lean Modified Mathlib/RingTheory/Norm.lean Modified Mathlib/RingTheory/Polynomial/Eisenstein/IsIntegral.lean Modified Mathlib/RingTheory/RingHom/Integral.lean Modified Mathlib/RingTheory/Trace.lean 2023-11-16 11:33:41 7c434b4 chore(CategoryTheory): universe polymorphic `CategoryTheory.Limits.Types.coproductIso` (#8421) Fixes a typo requiring matching universe levels in `CategoryTheory.Limits.Types.coproductIso`. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/GlueData.lean +/- theorem CategoryTheory.GlueData.types_ι_jointly_surjective Modified Mathlib/CategoryTheory/Limits/Shapes/Types.lean +/- def CategoryTheory.Limits.Types.coproductColimitCocone +/- theorem CategoryTheory.Limits.Types.coproductIso_mk_comp_inv +/- theorem CategoryTheory.Limits.Types.coproductIso_ι_comp_hom 2023-11-16 11:33:40 6d09b20 feat: define gradient of scalar-valued function on a Hilbert space (#7074) This file describes the transformation of the fderiv to gradient for functions from H to ℝ, where H is a Hilbert (complete inner product) space. This is a substitution for the previous pull request #7011. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/Calculus/Gradient/Basic.lean + theorem DifferentiableAt.hasGradientAt + theorem DifferentiableOn.hasGradientAt + theorem DifferentiableWithinAt.hasGradientWithinAt + theorem Filter.EventuallyEq.gradient_eq + theorem Filter.EventuallyEq.hasGradientAtFilter_iff + theorem HasDerivAt.hasGradientAt' + theorem HasDerivAt.hasGradientAt + theorem HasDerivAtFilter.hasGradientAtFilter' + theorem HasDerivAtFilter.hasGradientAtFilter + theorem HasGradientAt.congr_of_eventuallyEq + theorem HasGradientAt.continuousAt + theorem HasGradientAt.differentiableAt + theorem HasGradientAt.gradient + theorem HasGradientAt.hasDerivAt' + theorem HasGradientAt.hasDerivAt + theorem HasGradientAt.unique + def HasGradientAt + theorem HasGradientAtFilter.congr_of_eventuallyEq + theorem HasGradientAtFilter.hasDerivAtFilter' + theorem HasGradientAtFilter.hasDerivAtFilter + theorem HasGradientAtFilter.isBigO_sub + def HasGradientAtFilter + theorem HasGradientWithinAt.congr + theorem HasGradientWithinAt.congr_mono + theorem HasGradientWithinAt.congr_of_eventuallyEq + theorem HasGradientWithinAt.congr_of_eventuallyEq_of_mem + theorem HasGradientWithinAt.congr_of_mem + theorem HasGradientWithinAt.continuousWithinAt + theorem HasGradientWithinAt.differentiableWithinAt + def HasGradientWithinAt + def gradient + def gradientWithin + theorem gradient_const' + theorem gradient_const + theorem gradient_eq + theorem gradient_eq_deriv' + theorem gradient_eq_deriv + theorem gradient_eq_zero_of_not_differentiableAt + theorem hasFDerivAt_iff_hasGradientAt + theorem hasFDerivWithinAt_iff_hasGradientWithinAt + theorem hasGradientAtFilter_const + theorem hasGradientAtFilter_iff_isLittleO + theorem hasGradientAt_const + theorem hasGradientAt_iff_hasFDerivAt + theorem hasGradientAt_iff_isLittleO + theorem hasGradientAt_iff_isLittleO_nhds_zero + theorem hasGradientAt_iff_tendsto + theorem hasGradientWithinAt_congr_set' + theorem hasGradientWithinAt_congr_set + theorem hasGradientWithinAt_const + theorem hasGradientWithinAt_iff_hasFDerivWithinAt + theorem hasGradientWithinAt_iff_isLittleO + theorem hasGradientWithinAt_iff_tendsto + theorem hasGradientWithinAt_univ 2023-11-16 10:23:30 0e1fb8d feat: the trace of a direct sum is the sum of the traces (#8369) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/DirectSum/LinearMap.lean + theorem LinearMap.toMatrix_directSum_collectedBasis_eq_blockDiagonal' + theorem LinearMap.trace_eq_sum_trace_restrict Modified Mathlib/Algebra/DirectSum/Module.lean + theorem DirectSum.IsInternal.collectedBasis_repr_of_mem + theorem DirectSum.IsInternal.collectedBasis_repr_of_mem_ne + theorem DirectSum.IsInternal.ofBijective_coeLinearMap_of_mem + theorem DirectSum.IsInternal.ofBijective_coeLinearMap_of_mem_ne + theorem DirectSum.IsInternal.ofBijective_coeLinearMap_of_ne + theorem DirectSum.IsInternal.ofBijective_coeLinearMap_same Modified Mathlib/Analysis/InnerProductSpace/PiL2.lean Modified Mathlib/Data/Set/Finite.lean +/- theorem Set.Finite.coeSort_toFinset + def Set.Finite.subtypeEquivToFinset Modified Mathlib/LinearAlgebra/Basic.lean + theorem LinearEquiv.ofBijective_symm_apply_apply Modified Mathlib/LinearAlgebra/Matrix/Trace.lean + theorem Matrix.trace_blockDiagonal' + theorem Matrix.trace_blockDiagonal Modified Mathlib/Order/CompactlyGenerated.lean + theorem CompleteLattice.WellFounded.finite_ne_bot_of_independent Modified Mathlib/Order/CompleteLattice.lean Modified Mathlib/Order/SupIndep.lean + theorem CompleteLattice.independent_ne_bot_iff_independent Modified Mathlib/RingTheory/Noetherian.lean + theorem Submodule.finite_ne_bot_of_independent 2023-11-16 09:53:02 886de86 feat(CategoryTheory): relate mathlib's notion of `EffectiveEpi` to more standard definitions and `RegularEpi` (#8426) We prove that `RegularEpi` implies `EffectiveEpi` in full generality, and its converse under additional hypotheses. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Limits/Shapes/RegularMono.lean Modified Mathlib/CategoryTheory/Sites/EffectiveEpimorphic.lean + theorem CategoryTheory.effectiveEpiOfKernelPair 2023-11-16 08:44:20 da342c7 fix: add 'squash' to 'norm_cast' attribute for 'Int.cast_negSucc' (#8365) This is an attempt at fixing the following behavior of `norm_cast`. ```lean example (n : ℤ) : (-37 : ℤ) = n := by norm_cast -- goal is `Int.negSucc 36 = n` sorry ``` See [this discussion](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/linarith.20fails.20in.20a.20simple.20example/near/401592369). ESTIMATED CHANGES Modified Mathlib/Data/Int/Cast/Basic.lean 2023-11-16 07:03:28 52199f5 chore: replace IsLocalization.eq_iff_exists' by exists_of_eq (#8335) The other direction is a consequence of `IsLocalization.map_units`. Also do the same for `LocalizationMap` and `IsLocalizedModule`. This means we have one less fact to prove when constructing an `IsLocalization` (etc.) instance (thus many proofs are golfed), but once we construct it we still have access to the `eq_iff_exists` lemmas (without the prime) so the API doesn't get less powerful. ESTIMATED CHANGES Modified Mathlib/Algebra/Module/LocalizedModule.lean Modified Mathlib/AlgebraicGeometry/Morphisms/QuasiCompact.lean Modified Mathlib/AlgebraicGeometry/Morphisms/QuasiSeparated.lean Modified Mathlib/Data/Polynomial/Laurent.lean Modified Mathlib/FieldTheory/RatFunc.lean Modified Mathlib/GroupTheory/MonoidLocalization.lean Modified Mathlib/NumberTheory/Cyclotomic/Basic.lean Modified Mathlib/NumberTheory/Padics/PadicIntegers.lean Modified Mathlib/RingTheory/DedekindDomain/IntegralClosure.lean Modified Mathlib/RingTheory/LaurentSeries.lean Modified Mathlib/RingTheory/Localization/Away/Basic.lean Modified Mathlib/RingTheory/Localization/Basic.lean +/- def IsLocalization.toLocalizationWithZeroMap Modified Mathlib/RingTheory/Localization/FractionRing.lean Modified Mathlib/RingTheory/Localization/Integral.lean Modified Mathlib/RingTheory/Localization/LocalizationLocalization.lean - theorem IsLocalization.localization_localization_eq_iff_exists + theorem IsLocalization.localization_localization_exists_of_eq Modified Mathlib/RingTheory/OreLocalization/Basic.lean Modified Mathlib/RingTheory/Valuation/ValuationSubring.lean 2023-11-16 06:00:20 57db954 chore: remove upstreamed lemmas (#8432) ESTIMATED CHANGES Modified Mathlib/Data/List/Basic.lean - theorem List.length_enum - theorem List.length_enumFrom 2023-11-16 06:00:19 e3e88aa feat: pow_card_mul_prod (#8412) ESTIMATED CHANGES Modified Mathlib/Algebra/BigOperators/Basic.lean + theorem Finset.pow_card_mul_prod + theorem Finset.prod_mul_pow_card 2023-11-16 06:00:18 8a95474 chore: split Analysis.Convex.Cone.Basic (#8357) Splits `Mathlib.Analysis.Convex.Cone.Basic`, to move Riesz extension and Hahn-Banach out of the basic file about definitions. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Analysis/Convex/Cone/Basic.lean - theorem RieszExtension.exists_top - theorem RieszExtension.step - theorem exists_extension_of_le_sublinear - theorem riesz_extension Modified Mathlib/Analysis/Convex/Cone/Dual.lean Added Mathlib/Analysis/Convex/Cone/Extension.lean + theorem RieszExtension.exists_top + theorem RieszExtension.step + theorem exists_extension_of_le_sublinear + theorem riesz_extension Modified Mathlib/Analysis/NormedSpace/HahnBanach/Extension.lean Modified Mathlib/Analysis/NormedSpace/HahnBanach/Separation.lean 2023-11-16 06:00:17 7a22fac feat(Data/Setoid/Partition): equivalence classes and quotient (#7444) Adds the equivalence between the type of equivalence classes of an equivalence relation and its quotient. ESTIMATED CHANGES Modified Mathlib/Data/Setoid/Partition.lean + theorem Setoid.quotientEquivClasses_mk_eq 2023-11-16 04:47:35 576416f doc: explain extended set notation (#8425) ESTIMATED CHANGES Modified Mathlib/Init/Set.lean 2023-11-16 01:34:04 5c59815 feat: the 'hint' tactic (#8363) ``` example (h : 1 < 0) : False := by hint example {P Q : Prop} (p : P) (f : P → Q) : Q := by hint example {P Q R: Prop} (x : P ∧ Q ∧ R ∧ R) : Q ∧ P ∧ R := by hint example {a b : ℚ} (h : a < b) : ¬ b < a := by hint example : 37^2 - 35^2 = 72 * 2 := by hint example : Nat.Prime 37 := by hint ``` Tries out any tactics registered using `register_hint tac`, and reports which ones succeed using the new "Try these: " multiple suggestion widgets. Tactics that close the goal are highlighted in green. Tactics that succeed but don't close the goal display the new subgoals in the widget. If `tac` produces a "Try this: " message, use that instead of `tac`. I haven't hooked up `aesop` yet, because of https://github.com/leanprover-community/aesop/issues/85. Similarly for `norm_num`. I would like to parallelize this, but I don't think that needs to happen right away. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Mathport/Attributes.lean Modified Mathlib/Mathport/Syntax.lean Modified Mathlib/Tactic.lean Modified Mathlib/Tactic/Common.lean Added Mathlib/Tactic/Hint.lean + def Mathlib.Tactic.Hint.addHint + def Mathlib.Tactic.Hint.getHints + def Mathlib.Tactic.Hint.hint + def Mathlib.Tactic.Hint.suggestion + def Mathlib.Tactic.Hint.withMessageLog + def Mathlib.Tactic.Hint.withoutInfoTrees Modified Mathlib/Tactic/Linarith.lean Modified Mathlib/Tactic/Linarith/Frontend.lean Modified scripts/lint-style.py Added test/hint.lean 2023-11-16 01:14:24 4231b89 chore: better .gitignore (#8431) ESTIMATED CHANGES Modified .gitignore 2023-11-15 21:24:58 e194c75 perf(FunLike.Basic): beta reduce `CoeFun.coe` (#7905) This eliminates `(fun a ↦ β) α` in the type when applying a `FunLike`. ESTIMATED CHANGES Modified Archive/Sensitivity.lean Modified Mathlib/Algebra/Algebra/RestrictScalars.lean Modified Mathlib/Algebra/Category/ModuleCat/ChangeOfRings.lean Modified Mathlib/Algebra/DirectLimit.lean Modified Mathlib/Algebra/Group/Hom/Defs.lean Modified Mathlib/Algebra/Homology/ModuleCat.lean Modified Mathlib/Algebra/Module/Torsion.lean Modified Mathlib/Algebra/Order/Monoid/ToMulBot.lean Modified Mathlib/Algebra/Polynomial/BigOperators.lean Modified Mathlib/Algebra/Quaternion.lean +/- theorem Quaternion.coe_normSq_add Modified Mathlib/Algebra/Ring/BooleanRing.lean Modified Mathlib/AlgebraicGeometry/GammaSpecAdjunction.lean Modified Mathlib/AlgebraicGeometry/PrimeSpectrum/Basic.lean Modified Mathlib/AlgebraicGeometry/Scheme.lean Modified Mathlib/AlgebraicGeometry/Spec.lean Modified Mathlib/AlgebraicGeometry/StructureSheaf.lean Modified Mathlib/Analysis/Calculus/AffineMap.lean Modified Mathlib/Analysis/Convex/Between.lean Modified Mathlib/Analysis/Fourier/AddCircle.lean Modified Mathlib/Analysis/Fourier/FourierTransform.lean Modified Mathlib/Analysis/SpecialFunctions/Complex/Arg.lean Modified Mathlib/CategoryTheory/Limits/Opposites.lean Modified Mathlib/CategoryTheory/SingleObj.lean Modified Mathlib/Data/Finset/Image.lean Modified Mathlib/Data/Finsupp/Basic.lean Modified Mathlib/Data/Finsupp/Defs.lean Modified Mathlib/Data/Finsupp/Pointwise.lean +/- theorem Finsupp.coe_pointwise_smul Modified Mathlib/Data/FunLike/Basic.lean Modified Mathlib/Data/IsROrC/Basic.lean Modified Mathlib/Data/MvPolynomial/Basic.lean Modified Mathlib/Data/Nat/Factorization/Basic.lean Modified Mathlib/Data/Polynomial/RingDivision.lean Modified Mathlib/Data/ZMod/Basic.lean Modified Mathlib/FieldTheory/Fixed.lean Modified Mathlib/FieldTheory/IntermediateField.lean Modified Mathlib/FieldTheory/Laurent.lean Modified Mathlib/FieldTheory/Minpoly/Basic.lean Modified Mathlib/FieldTheory/RatFunc.lean Modified Mathlib/Geometry/RingedSpace/LocallyRingedSpace/HasColimits.lean Modified Mathlib/Geometry/RingedSpace/Stalks.lean Modified Mathlib/GroupTheory/FreeGroup/Basic.lean Modified Mathlib/GroupTheory/Perm/Cycle/Basic.lean Modified Mathlib/GroupTheory/SpecificGroups/Alternating.lean Modified Mathlib/LinearAlgebra/CliffordAlgebra/Contraction.lean Modified Mathlib/LinearAlgebra/ExteriorAlgebra/Basic.lean Modified Mathlib/LinearAlgebra/ExteriorAlgebra/Grading.lean Modified Mathlib/LinearAlgebra/QuadraticForm/TensorProduct.lean Modified Mathlib/LinearAlgebra/StdBasis.lean Modified Mathlib/LinearAlgebra/TensorAlgebra/Basic.lean Modified Mathlib/LinearAlgebra/TensorAlgebra/ToTensorPower.lean Modified Mathlib/Logic/Equiv/Set.lean Modified Mathlib/Logic/Equiv/TransferInstance.lean Modified Mathlib/MeasureTheory/Function/UniformIntegrable.lean Modified Mathlib/MeasureTheory/Integral/SetToL1.lean Modified Mathlib/NumberTheory/ArithmeticFunction.lean Modified Mathlib/NumberTheory/ClassNumber/Finite.lean Modified Mathlib/NumberTheory/FunctionField.lean Modified Mathlib/NumberTheory/NumberField/Units.lean Modified Mathlib/Order/WithBot.lean Modified Mathlib/Probability/ProbabilityMassFunction/Monad.lean Modified Mathlib/RingTheory/AdjoinRoot.lean Modified Mathlib/RingTheory/DedekindDomain/AdicValuation.lean Modified Mathlib/RingTheory/EisensteinCriterion.lean Modified Mathlib/RingTheory/FractionalIdeal.lean Modified Mathlib/RingTheory/HahnSeries.lean Modified Mathlib/RingTheory/IsTensorProduct.lean Modified Mathlib/RingTheory/LaurentSeries.lean Modified Mathlib/RingTheory/Localization/Basic.lean Modified Mathlib/RingTheory/Localization/FractionRing.lean Modified Mathlib/RingTheory/Localization/Integral.lean Modified Mathlib/RingTheory/Perfection.lean Modified Mathlib/RingTheory/Polynomial/Cyclotomic/Expand.lean Modified Mathlib/RingTheory/RingHom/Surjective.lean Modified Mathlib/RingTheory/RootsOfUnity/Basic.lean Modified Mathlib/RingTheory/Trace.lean Modified Mathlib/RingTheory/WittVector/Frobenius.lean Modified Mathlib/RingTheory/WittVector/FrobeniusFractionField.lean Modified Mathlib/RingTheory/WittVector/Identities.lean Modified Mathlib/RingTheory/WittVector/MulCoeff.lean Modified Mathlib/RingTheory/WittVector/StructurePolynomial.lean Modified Mathlib/SetTheory/Ordinal/Basic.lean Modified Mathlib/Topology/Category/Profinite/Nobeling.lean Modified Mathlib/Topology/Category/TopCat/Limits/Products.lean Modified Mathlib/Topology/Category/TopCat/Limits/Pullbacks.lean Modified Mathlib/Topology/Gluing.lean Modified Mathlib/Topology/Sheaves/Stalks.lean Added test/FunLike.lean 2023-11-15 20:16:30 f5f44c5 chore: tidy various files (#8409) ESTIMATED CHANGES Modified Mathlib/Algebra/CovariantAndContravariant.lean Modified Mathlib/Algebra/Group/UniqueProds.lean Modified Mathlib/Algebra/MonoidAlgebra/NoZeroDivisors.lean Modified Mathlib/Analysis/Convex/Cone/Proper.lean Modified Mathlib/Data/Polynomial/Div.lean Modified Mathlib/Data/Polynomial/Inductions.lean Modified Mathlib/MeasureTheory/Measure/VectorMeasure.lean Modified Mathlib/ModelTheory/Algebra/Field/Basic.lean Modified Mathlib/Order/Filter/Basic.lean Modified Mathlib/Order/Monotone/Basic.lean + theorem antitoneOn_dual_iff - theorem antitone_on_dual_iff + theorem monotoneOn_dual_iff - theorem monotone_on_dual_iff + theorem strictAntiOn_dual_iff + theorem strictAnti_dual_iff + theorem strictMonoOn_dual_iff + theorem strictMono_dual_iff - theorem strict_anti_dual_iff - theorem strict_anti_on_dual_iff - theorem strict_mono_dual_iff - theorem strict_mono_on_dual_iff Modified Mathlib/Topology/AlexandrovDiscrete.lean +/- theorem subset_exterior 2023-11-15 19:17:08 0b12836 feat: non-zero smul-divisors (#7138) If $R$ is a monoid with $0$ and $M$ an additive monoid with an $R$-action, then the set of non-zero smul-divisors of $R$ is a submonoid. for any $r \in R$, $r$ is a non-zero smul-divisors if and only if for any $m\in M$, $r \cdot m = 0$ implies $m = 0$. These elements are also called $M$-regular. They are useful in regular sequences. ESTIMATED CHANGES Modified Mathlib/RingTheory/NonZeroDivisors.lean + theorem mem_nonZeroSMulDivisors_iff + def nonZeroSMulDivisors + theorem nonZeroSmulDivisors_mulOpposite_eq_op_nonZeroDivisors + theorem unop_nonZeroSmulDivisors_mulOpposite_eq_nonZeroDivisors 2023-11-15 18:03:32 e0e141f feat(Condensed): functors from test objects to condensed sets (#8236) We define the natural functor `CompHaus ⥤ CondensedSet` and its friends for profinite and Stonean spaces. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Condensed/Basic.lean Added Mathlib/Condensed/Functors.lean + def Condensed.ulift + def compHausToCondensed' + def compHausToCondensed + def profiniteToCondensed + def stoneanToCondensed 2023-11-15 16:58:48 eb29282 chore: redistribute some of the results in LinearAlgebra.Basic (#7801) This reduces the file from ~2600 lines to ~1600 lines. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Algebra/Basic.lean Modified Mathlib/Algebra/Algebra/Hom.lean Modified Mathlib/Algebra/BigOperators/Pi.lean + theorem pi_eq_sum_univ Modified Mathlib/Algebra/Category/ModuleCat/Basic.lean Modified Mathlib/Algebra/Category/ModuleCat/Products.lean Modified Mathlib/Algebra/Lie/Basic.lean Modified Mathlib/Algebra/Module/Equiv.lean + def LinearMap.ringLmapEquivSelf Modified Mathlib/Algebra/Module/LinearMap.lean + def LinearMap.applyₗ' + def LinearMap.applyₗ + theorem LinearMap.coe_smulRight + def LinearMap.compRight + theorem LinearMap.compRight_apply + def LinearMap.smulRight + theorem LinearMap.smulRight_apply + def LinearMap.smulRightₗ + theorem LinearMap.smulRightₗ_apply Modified Mathlib/Algebra/Module/Submodule/Basic.lean - theorem Submodule.coeSubtype - theorem Submodule.coe_sum - theorem Submodule.injective_subtype + theorem Submodule.neg_coe - def Submodule.restrictScalarsEquiv - theorem Submodule.subtype_apply Modified Mathlib/Algebra/Module/Submodule/Lattice.lean Added Mathlib/Algebra/Module/Submodule/LinearMap.lean + def LinearMap.codRestrict + theorem LinearMap.codRestrict_apply + theorem LinearMap.coeFn_sum + theorem LinearMap.comp_codRestrict + def LinearMap.domRestrict' + theorem LinearMap.domRestrict'_apply + def LinearMap.domRestrict + theorem LinearMap.domRestrict_apply + def LinearMap.evalAddMonoidHom + theorem LinearMap.pow_apply_mem_of_forall_mem + theorem LinearMap.pow_restrict + def LinearMap.restrict + theorem LinearMap.restrict_apply + theorem LinearMap.restrict_coe_apply + theorem LinearMap.restrict_eq_codRestrict_domRestrict + theorem LinearMap.restrict_eq_domRestrict_codRestrict + theorem LinearMap.submodule_pow_eq_zero_of_pow_eq_zero + theorem LinearMap.subtype_comp_codRestrict + theorem LinearMap.subtype_comp_restrict + theorem LinearMap.sum_apply + def LinearMap.toAddMonoidHom' + theorem Submodule.coeSubtype + theorem Submodule.coe_ofLe + theorem Submodule.coe_sum + theorem Submodule.injective_subtype + def Submodule.ofLe + theorem Submodule.ofLe_apply + theorem Submodule.ofLe_injective + def Submodule.restrictScalarsEquiv + theorem Submodule.subtype_apply + theorem Submodule.subtype_comp_ofLe Modified Mathlib/Algebra/TrivSqZeroExt.lean Modified Mathlib/Data/Matrix/Basic.lean Modified Mathlib/Data/Rat/NNRat.lean Modified Mathlib/Data/Real/NNReal.lean Modified Mathlib/FieldTheory/Finite/Polynomial.lean Modified Mathlib/LinearAlgebra/Basic.lean - theorem Finsupp.LinearEquiv.finsuppUnique_apply - theorem Finsupp.LinearEquiv.finsuppUnique_symm_apply - theorem Finsupp.linearEquivFunOnFinite_single - theorem Finsupp.linearEquivFunOnFinite_symm_coe - theorem Finsupp.linearEquivFunOnFinite_symm_single - theorem Finsupp.smul_sum - theorem Finsupp.sum_smul_index_linearMap' - theorem LinearEquiv.map_dfinsupp_sumAddHom - def LinearMap.applyₗ' - def LinearMap.applyₗ - def LinearMap.codRestrict - theorem LinearMap.codRestrict_apply - theorem LinearMap.coeFn_sum - theorem LinearMap.coe_dfinsupp_sum - theorem LinearMap.coe_finsupp_sum - theorem LinearMap.coe_smulRight - def LinearMap.compRight - theorem LinearMap.compRight_apply - theorem LinearMap.comp_codRestrict - theorem LinearMap.dfinsupp_sum_apply - def LinearMap.domRestrict' - theorem LinearMap.domRestrict'_apply - def LinearMap.domRestrict - theorem LinearMap.domRestrict_apply - def LinearMap.evalAddMonoidHom - theorem LinearMap.finsupp_sum_apply - theorem LinearMap.map_dfinsupp_sumAddHom - theorem LinearMap.pi_apply_eq_sum_univ - theorem LinearMap.pow_apply_mem_of_forall_mem - theorem LinearMap.pow_restrict - def LinearMap.restrict - theorem LinearMap.restrict_apply - theorem LinearMap.restrict_coe_apply - theorem LinearMap.restrict_eq_codRestrict_domRestrict - theorem LinearMap.restrict_eq_domRestrict_codRestrict - def LinearMap.ringLmapEquivSelf - def LinearMap.smulRight - theorem LinearMap.smulRight_apply - def LinearMap.smulRightₗ - theorem LinearMap.smulRightₗ_apply - theorem LinearMap.submodule_pow_eq_zero_of_pow_eq_zero - theorem LinearMap.subtype_comp_codRestrict - theorem LinearMap.subtype_comp_restrict - theorem LinearMap.sum_apply - def LinearMap.toAddMonoidHom' - theorem Submodule.coe_ofLe - theorem Submodule.neg_coe - def Submodule.ofLe - theorem Submodule.ofLe_apply - theorem Submodule.ofLe_injective - theorem Submodule.subtype_comp_ofLe - theorem pi_eq_sum_univ Modified Mathlib/LinearAlgebra/DFinsupp.lean + theorem LinearEquiv.map_dfinsupp_sumAddHom + theorem LinearMap.coe_dfinsupp_sum + theorem LinearMap.dfinsupp_sum_apply + theorem LinearMap.map_dfinsupp_sumAddHom Modified Mathlib/LinearAlgebra/Finsupp.lean + theorem Finsupp.LinearEquiv.finsuppUnique_apply + theorem Finsupp.LinearEquiv.finsuppUnique_symm_apply + theorem Finsupp.linearEquivFunOnFinite_single + theorem Finsupp.linearEquivFunOnFinite_symm_coe + theorem Finsupp.linearEquivFunOnFinite_symm_single + theorem Finsupp.smul_sum + theorem Finsupp.sum_smul_index_linearMap' + theorem LinearMap.coe_finsupp_sum + theorem LinearMap.finsupp_sum_apply Modified Mathlib/LinearAlgebra/LinearPMap.lean Modified Mathlib/LinearAlgebra/Multilinear/Basic.lean Modified Mathlib/LinearAlgebra/Pi.lean + theorem LinearMap.pi_apply_eq_sum_univ Modified Mathlib/LinearAlgebra/Span.lean Modified Mathlib/RepresentationTheory/Rep.lean Modified Mathlib/RingTheory/Ideal/Basic.lean Modified Mathlib/Topology/EMetricSpace/Basic.lean 2023-11-15 15:04:31 3fbcf0e chore: bump Std (#8424) ESTIMATED CHANGES Modified lake-manifest.json 2023-11-15 15:04:30 7ad0a36 feat: Minimum torsion of a group (#8411) This PR define `Monoid.minOrder α`, the minimum order of an element of the monoid `α`. This is also the minimum size of a nontrivial subgroup. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Data/ZMod/Quotient.lean Added Mathlib/GroupTheory/Order/Min.lean + theorem Monoid.le_minOrder + theorem Monoid.le_minOrder_iff_forall_subgroup + theorem Monoid.minOrder_eq_top + theorem Monoid.minOrder_le_natCard + theorem Monoid.minOrder_le_orderOf + theorem ZMod.minOrder_of_prime Modified Mathlib/GroupTheory/OrderOfElement.lean 2023-11-15 15:04:28 8e99d22 refactor(LinearAlgebra.ProjectiveSpace): localize notation and rename folder (#8394) Following https://leanprover.zulipchat.com/#narrow/stream/116395-maths/topic/Projectivization I localize the notation $\mathbb{P}$ to the namespace `LinearAlgebra.Projectivization`. Following the discussion there, the namespace `Projectivization` is not optimal, as the notion can refer to different constructions, hence the choice of adding `LinearAlgebra.` in front of it. Also, in accordance with the philosophy in the implementation, I replace "Projective Space" by "Projectivization" in the name of the folder, because the idea is that there is no "canonical" choice of the vector space one should start with to construct the projectivization. ESTIMATED CHANGES Modified Mathlib.lean Renamed Mathlib/LinearAlgebra/ProjectiveSpace/Basic.lean to Mathlib/LinearAlgebra/Projectivization/Basic.lean Renamed Mathlib/LinearAlgebra/ProjectiveSpace/Independence.lean to Mathlib/LinearAlgebra/Projectivization/Independence.lean Renamed Mathlib/LinearAlgebra/ProjectiveSpace/Subspace.lean to Mathlib/LinearAlgebra/Projectivization/Subspace.lean 2023-11-15 13:53:51 9772ef6 feat: Monovariance under algebraic operations (#7648) Prove a bunch of results relating `monovary` to algebraic operations in ordered groups. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Order/Group/Defs.lean + theorem lt_or_lt_of_div_lt_div Added Mathlib/Algebra/Order/Monovary.lean + theorem Antivary.div_left + theorem Antivary.div_left₀ + theorem Antivary.div_right + theorem Antivary.div_right₀ + theorem Antivary.mul_left + theorem Antivary.mul_left₀ + theorem Antivary.mul_right + theorem Antivary.mul_right₀ + theorem Antivary.pow_left + theorem Antivary.pow_left₀ + theorem Antivary.pow_right + theorem Antivary.pow_right₀ + theorem AntivaryOn.div_left + theorem AntivaryOn.div_left₀ + theorem AntivaryOn.div_right + theorem AntivaryOn.div_right₀ + theorem AntivaryOn.mul_left + theorem AntivaryOn.mul_left₀ + theorem AntivaryOn.mul_right + theorem AntivaryOn.mul_right₀ + theorem AntivaryOn.pow_left + theorem AntivaryOn.pow_left₀ + theorem AntivaryOn.pow_right + theorem AntivaryOn.pow_right₀ + theorem Monovary.div_left + theorem Monovary.div_left₀ + theorem Monovary.div_right + theorem Monovary.div_right₀ + theorem Monovary.mul_left + theorem Monovary.mul_left₀ + theorem Monovary.mul_right + theorem Monovary.mul_right₀ + theorem Monovary.pow_left + theorem Monovary.pow_left₀ + theorem Monovary.pow_right + theorem Monovary.pow_right₀ + theorem MonovaryOn.div_left + theorem MonovaryOn.div_left₀ + theorem MonovaryOn.div_right + theorem MonovaryOn.div_right₀ + theorem MonovaryOn.mul_left + theorem MonovaryOn.mul_left₀ + theorem MonovaryOn.mul_right + theorem MonovaryOn.mul_right₀ + theorem MonovaryOn.pow_left + theorem MonovaryOn.pow_left₀ + theorem MonovaryOn.pow_right + theorem MonovaryOn.pow_right₀ + theorem antivaryOn_iff_forall_mul_nonpos + theorem antivaryOn_iff_forall_smul_nonpos + theorem antivaryOn_iff_mul_rearrangement + theorem antivaryOn_iff_smul_rearrangement + theorem antivaryOn_inv + theorem antivaryOn_inv_left + theorem antivaryOn_inv_left₀ + theorem antivaryOn_inv_right + theorem antivaryOn_inv_right₀ + theorem antivaryOn_inv₀ + theorem antivary_iff_forall_mul_nonpos + theorem antivary_iff_forall_smul_nonpos + theorem antivary_iff_mul_rearrangement + theorem antivary_iff_smul_rearrangement + theorem antivary_inv + theorem antivary_inv_left + theorem antivary_inv_left₀ + theorem antivary_inv_right + theorem antivary_inv_right₀ + theorem antivary_inv₀ + theorem monovaryOn_iff_forall_mul_nonneg + theorem monovaryOn_iff_forall_smul_nonneg + theorem monovaryOn_iff_mul_rearrangement + theorem monovaryOn_iff_smul_rearrangement + theorem monovaryOn_inv + theorem monovaryOn_inv_left + theorem monovaryOn_inv_left₀ + theorem monovaryOn_inv_right + theorem monovaryOn_inv_right₀ + theorem monovaryOn_inv₀ + theorem monovary_iff_forall_mul_nonneg + theorem monovary_iff_forall_smul_nonneg + theorem monovary_iff_mul_rearrangement + theorem monovary_iff_smul_rearrangement + theorem monovary_inv + theorem monovary_inv_left + theorem monovary_inv_left₀ + theorem monovary_inv_right + theorem monovary_inv_right₀ + theorem monovary_inv₀ 2023-11-15 09:39:22 91e2d02 feat(CategoryTheory): `ULift` creates small (co)limits (#8209) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Limits/Preserves/Ulift.lean + def CategoryTheory.Limits.Types.quotEquiv + def CategoryTheory.Limits.Types.sectionsEquiv' + def CategoryTheory.Limits.Types.sectionsEquiv 2023-11-15 04:56:01 2608d1e chore: report lean4checker results back to Lean PRs (#8417) ESTIMATED CHANGES Modified .github/workflows/bors.yml Modified .github/workflows/build.yml Modified .github/workflows/build.yml.in Modified .github/workflows/build_fork.yml Modified scripts/lean-pr-testing-comments.sh 2023-11-15 02:48:10 cecaa2d chore: bump Quote4 (#8414) This pulls in leanprover-community/quote4#26 ESTIMATED CHANGES Modified lake-manifest.json 2023-11-15 00:39:48 65ff221 feat: make `Set.monad` not an instance and add `(Subtype.val '' ·)` coercion (#8413) The monad instance on `Set` isn't computationally relevant, and it causes Lean's monad lifting coercion logic to activate. We introduce a coercion instance for the case that's actually used in practice: when `s : Set X` and `t : Set s` then `(t : Set X)` ought to be `Subtype.val '' t`. This way we do not see `Lean.Internal.coeM` terms. If the monad is still wanted, it can be activated using a local attribute or by using the `SetM.run` function. ESTIMATED CHANGES Modified Mathlib/Data/Set/Finite.lean Modified Mathlib/Data/Set/Functor.lean + theorem Set.coe_eq_image_val + theorem Set.eq_univ_of_image_val_eq + theorem Set.image_image_val_eq_restrict_image + theorem Set.image_val_subset + theorem Set.mem_image_val_of_mem + theorem Set.mem_of_mem_image_val + def SetM Modified Mathlib/RingTheory/Polynomial/Dickson.lean Modified Mathlib/Topology/Constructions.lean Modified Mathlib/Topology/ExtremallyDisconnected.lean 2023-11-14 23:20:47 a73e36d chore: fix post_update hook (#8401) See zulip discussion at * https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/Disable.20lake.20post-hook.20when.20importing.20mathlib.3F/near/401811422 * https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/lake.20update.3A.20invalid.20toolchain.20name/near/401860157 ESTIMATED CHANGES Modified lakefile.lean 2023-11-14 18:47:47 e004ac1 feat: add 2-coloring of `pathGraph` and prove its chromatic number is 2 (#8166) Define a bicoloring for `pathGraph` and prove that when `2 ≤ n` its chromatic number is 2. Creates a ConcreteColorings module to hold such colorings of concrete graphs. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Combinatorics/SimpleGraph/ConcreteColorings.lean + theorem SimpleGraph.chromaticNumber_pathGraph + def SimpleGraph.pathGraph.bicoloring + def SimpleGraph.pathGraph_two_embedding Modified Mathlib/Combinatorics/SimpleGraph/Hasse.lean + theorem SimpleGraph.pathGraph_adj + theorem SimpleGraph.pathGraph_two_eq_top Modified Mathlib/Data/Nat/Parity.lean + theorem Nat.succ_mod_two_eq_one_iff + theorem Nat.succ_mod_two_eq_zero_iff 2023-11-14 18:13:02 ee3bd06 feat: Order of elements of a subgroup (#8385) The cardinality of a subgroup is greater than the order of any of its elements. Rename * `order_eq_card_zpowers` → `Fintype.card_zpowers` * `order_eq_card_zpowers'` → `Nat.card_zpowers` (and turn it around to match `Nat.card_subgroupPowers`) * `Submonoid.powers_subset` → `Submonoid.powers_le` * `orderOf_dvd_card_univ` → `orderOf_dvd_card` * `orderOf_subgroup` → `Subgroup.orderOf` * `Subgroup.nonempty` → `Subgroup.coe_nonempty` ESTIMATED CHANGES Modified Mathlib/AlgebraicGeometry/StructureSheaf.lean Modified Mathlib/Data/Nat/Totient.lean Modified Mathlib/Data/ZMod/Quotient.lean - theorem IsOfFinOrder.finite_zpowers + theorem Nat.card_zpowers + theorem finite_zpowers + theorem infinite_zpowers - theorem order_eq_card_zpowers' Modified Mathlib/FieldTheory/Finite/Basic.lean Modified Mathlib/GroupTheory/Exponent.lean Modified Mathlib/GroupTheory/NoncommPiCoprod.lean Modified Mathlib/GroupTheory/OrderOfElement.lean + theorem Fintype.card_zpowers + theorem Subgroup.orderOf_coe + theorem Subgroup.orderOf_le_card + theorem Subgroup.orderOf_mk + theorem Submonoid.orderOf_le_card + theorem orderOf_dvd_card - theorem orderOf_dvd_card_univ + theorem orderOf_dvd_natCard - theorem orderOf_dvd_nat_card - theorem orderOf_eq_card_zpowers - theorem orderOf_subgroup Modified Mathlib/GroupTheory/PGroup.lean Modified Mathlib/GroupTheory/Perm/Cycle/Basic.lean Modified Mathlib/GroupTheory/Perm/Cycle/Type.lean Modified Mathlib/GroupTheory/SpecificGroups/Cyclic.lean Modified Mathlib/GroupTheory/Subgroup/Basic.lean + theorem Subgroup.coe_nonempty - theorem Subgroup.nonempty Modified Mathlib/GroupTheory/Submonoid/Membership.lean + theorem Submonoid.powers_le +/- theorem Submonoid.powers_one - theorem Submonoid.powers_subset Modified Mathlib/GroupTheory/Sylow.lean Modified Mathlib/MeasureTheory/Group/AddCircle.lean Modified Mathlib/NumberTheory/Cyclotomic/Gal.lean Modified Mathlib/NumberTheory/NumberField/Units.lean Modified Mathlib/RingTheory/RootsOfUnity/Basic.lean 2023-11-14 16:55:07 e29251b chore: split Analysis.NormedSpace.Multilinear (#8392) This moves the isomorphisms corresponding to currying or uncurrying variables into a separate file, as they're mostly independent of the rest of the file. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Analysis/Calculus/FormalMultilinearSeries.lean Modified Mathlib/Analysis/NormedSpace/Multilinear.lean - theorem ContinuousLinearMap.curry_uncurryLeft - theorem ContinuousLinearMap.norm_map_tail_le - def ContinuousLinearMap.uncurryLeft - theorem ContinuousLinearMap.uncurryLeft_apply - theorem ContinuousLinearMap.uncurryLeft_norm - theorem ContinuousMultilinearMap.apply_zero_curry0 - def ContinuousMultilinearMap.curry0 - theorem ContinuousMultilinearMap.curry0_apply - theorem ContinuousMultilinearMap.curry0_norm - theorem ContinuousMultilinearMap.curry0_uncurry0 - def ContinuousMultilinearMap.curryFinFinset - theorem ContinuousMultilinearMap.curryFinFinset_apply - theorem ContinuousMultilinearMap.curryFinFinset_apply_const - theorem ContinuousMultilinearMap.curryFinFinset_symm_apply - theorem ContinuousMultilinearMap.curryFinFinset_symm_apply_const - theorem ContinuousMultilinearMap.curryFinFinset_symm_apply_piecewise_const - def ContinuousMultilinearMap.curryLeft - theorem ContinuousMultilinearMap.curryLeft_apply - theorem ContinuousMultilinearMap.curryLeft_norm - def ContinuousMultilinearMap.curryRight - theorem ContinuousMultilinearMap.curryRight_apply - theorem ContinuousMultilinearMap.curryRight_norm - def ContinuousMultilinearMap.currySum - def ContinuousMultilinearMap.currySumEquiv - theorem ContinuousMultilinearMap.currySum_apply - theorem ContinuousMultilinearMap.curry_uncurryRight - def ContinuousMultilinearMap.domDomCongrₗᵢ - theorem ContinuousMultilinearMap.fin0_apply_norm - theorem ContinuousMultilinearMap.norm_domDomCongr - theorem ContinuousMultilinearMap.norm_map_cons_le - theorem ContinuousMultilinearMap.norm_map_init_le - theorem ContinuousMultilinearMap.norm_map_snoc_le - def ContinuousMultilinearMap.uncurry0 - theorem ContinuousMultilinearMap.uncurry0_apply - theorem ContinuousMultilinearMap.uncurry0_curry0 - theorem ContinuousMultilinearMap.uncurry0_norm - def ContinuousMultilinearMap.uncurryRight - theorem ContinuousMultilinearMap.uncurryRight_apply - theorem ContinuousMultilinearMap.uncurryRight_norm - def ContinuousMultilinearMap.uncurrySum - theorem ContinuousMultilinearMap.uncurrySum_apply - theorem ContinuousMultilinearMap.uncurry_curryLeft - theorem ContinuousMultilinearMap.uncurry_curryRight - def continuousMultilinearCurryFin0 - theorem continuousMultilinearCurryFin0_apply - theorem continuousMultilinearCurryFin0_symm_apply - def continuousMultilinearCurryFin1 - theorem continuousMultilinearCurryFin1_apply - theorem continuousMultilinearCurryFin1_symm_apply - def continuousMultilinearCurryLeftEquiv - theorem continuousMultilinearCurryLeftEquiv_apply - theorem continuousMultilinearCurryLeftEquiv_symm_apply - def continuousMultilinearCurryRightEquiv' - def continuousMultilinearCurryRightEquiv - theorem continuousMultilinearCurryRightEquiv_apply' - theorem continuousMultilinearCurryRightEquiv_apply - theorem continuousMultilinearCurryRightEquiv_symm_apply' - theorem continuousMultilinearCurryRightEquiv_symm_apply Added Mathlib/Analysis/NormedSpace/MultilinearCurrying.lean + theorem ContinuousLinearMap.curry_uncurryLeft + theorem ContinuousLinearMap.norm_map_tail_le + def ContinuousLinearMap.uncurryLeft + theorem ContinuousLinearMap.uncurryLeft_apply + theorem ContinuousLinearMap.uncurryLeft_norm + theorem ContinuousMultilinearMap.apply_zero_curry0 + def ContinuousMultilinearMap.curry0 + theorem ContinuousMultilinearMap.curry0_apply + theorem ContinuousMultilinearMap.curry0_norm + theorem ContinuousMultilinearMap.curry0_uncurry0 + def ContinuousMultilinearMap.curryFinFinset + theorem ContinuousMultilinearMap.curryFinFinset_apply + theorem ContinuousMultilinearMap.curryFinFinset_apply_const + theorem ContinuousMultilinearMap.curryFinFinset_symm_apply + theorem ContinuousMultilinearMap.curryFinFinset_symm_apply_const + theorem ContinuousMultilinearMap.curryFinFinset_symm_apply_piecewise_const + def ContinuousMultilinearMap.curryLeft + theorem ContinuousMultilinearMap.curryLeft_apply + theorem ContinuousMultilinearMap.curryLeft_norm + def ContinuousMultilinearMap.curryRight + theorem ContinuousMultilinearMap.curryRight_apply + theorem ContinuousMultilinearMap.curryRight_norm + def ContinuousMultilinearMap.currySum + def ContinuousMultilinearMap.currySumEquiv + theorem ContinuousMultilinearMap.currySum_apply + theorem ContinuousMultilinearMap.curry_uncurryRight + def ContinuousMultilinearMap.domDomCongrₗᵢ + theorem ContinuousMultilinearMap.fin0_apply_norm + theorem ContinuousMultilinearMap.norm_domDomCongr + theorem ContinuousMultilinearMap.norm_map_cons_le + theorem ContinuousMultilinearMap.norm_map_init_le + theorem ContinuousMultilinearMap.norm_map_snoc_le + def ContinuousMultilinearMap.uncurry0 + theorem ContinuousMultilinearMap.uncurry0_apply + theorem ContinuousMultilinearMap.uncurry0_curry0 + theorem ContinuousMultilinearMap.uncurry0_norm + def ContinuousMultilinearMap.uncurryRight + theorem ContinuousMultilinearMap.uncurryRight_apply + theorem ContinuousMultilinearMap.uncurryRight_norm + def ContinuousMultilinearMap.uncurrySum + theorem ContinuousMultilinearMap.uncurrySum_apply + theorem ContinuousMultilinearMap.uncurry_curryLeft + theorem ContinuousMultilinearMap.uncurry_curryRight + def continuousMultilinearCurryFin0 + theorem continuousMultilinearCurryFin0_apply + theorem continuousMultilinearCurryFin0_symm_apply + def continuousMultilinearCurryFin1 + theorem continuousMultilinearCurryFin1_apply + theorem continuousMultilinearCurryFin1_symm_apply + def continuousMultilinearCurryLeftEquiv + theorem continuousMultilinearCurryLeftEquiv_apply + theorem continuousMultilinearCurryLeftEquiv_symm_apply + def continuousMultilinearCurryRightEquiv' + def continuousMultilinearCurryRightEquiv + theorem continuousMultilinearCurryRightEquiv_apply' + theorem continuousMultilinearCurryRightEquiv_apply + theorem continuousMultilinearCurryRightEquiv_symm_apply' + theorem continuousMultilinearCurryRightEquiv_symm_apply 2023-11-14 15:34:26 87c833e feat: weight space decomposition of Lie modules (#7963) ESTIMATED CHANGES Modified Mathlib/Algebra/Lie/CartanSubalgebra.lean Modified Mathlib/Algebra/Lie/OfAssociative.lean + theorem LieSubmodule.mapsTo_pow_toEndomorphism_sub_algebraMap Modified Mathlib/Algebra/Lie/Submodule.lean + theorem LieSubmodule.codisjoint_iff_coe_toSubmodule + theorem LieSubmodule.coeSubmodule_eq_bot_iff + theorem LieSubmodule.coeSubmodule_eq_top_iff + theorem LieSubmodule.disjoint_iff_coe_toSubmodule + theorem LieSubmodule.injective_incl + theorem LieSubmodule.isCompactElement_lieSpan_singleton +/- theorem LieSubmodule.map_iSup + theorem LieSubmodule.sSup_image_lieSpan_singleton Modified Mathlib/Algebra/Lie/Weights/Basic.lean +/- theorem LieModule.comap_weightSpace_eq_of_injective + theorem LieModule.disjoint_weightSpace + theorem LieModule.disjoint_weightSpaceOf + theorem LieModule.iSup_weightSpaceOf_eq_top + theorem LieModule.iSup_weightSpace_eq_top + theorem LieModule.independent_weightSpace + theorem LieModule.injOn_weightSpace +/- theorem LieModule.map_weightSpace_eq_of_injective + theorem LieModule.weightSpace_le_weightSpaceOf + theorem LieModule.weightSpace_weightSpaceOf_map_incl 2023-11-14 15:34:25 a107e34 feat: amalgamated products of groups (#6803) ESTIMATED CHANGES Modified Mathlib/GroupTheory/PushoutI.lean + structure Monoid.PushoutI.NormalWord.Pair + structure Monoid.PushoutI.NormalWord.Transversal + theorem Monoid.PushoutI.NormalWord.base_smul_def' + theorem Monoid.PushoutI.NormalWord.base_smul_def + theorem Monoid.PushoutI.NormalWord.base_smul_eq_smul + theorem Monoid.PushoutI.NormalWord.cons_eq_smul + def Monoid.PushoutI.NormalWord.empty + theorem Monoid.PushoutI.NormalWord.eq_one_of_smul_normalized + theorem Monoid.PushoutI.NormalWord.ext + theorem Monoid.PushoutI.NormalWord.ext_iff + theorem Monoid.PushoutI.NormalWord.ext_smul + theorem Monoid.PushoutI.NormalWord.of_smul_eq_smul + def Monoid.PushoutI.NormalWord.prod + theorem Monoid.PushoutI.NormalWord.prod_base_smul + theorem Monoid.PushoutI.NormalWord.prod_cons + theorem Monoid.PushoutI.NormalWord.prod_empty + theorem Monoid.PushoutI.NormalWord.prod_injective + theorem Monoid.PushoutI.NormalWord.prod_smul + theorem Monoid.PushoutI.NormalWord.prod_smul_empty + theorem Monoid.PushoutI.NormalWord.prod_summand_smul + theorem Monoid.PushoutI.NormalWord.rcons_injective + theorem Monoid.PushoutI.NormalWord.summand_smul_def' + theorem Monoid.PushoutI.NormalWord.summand_smul_def + theorem Monoid.PushoutI.NormalWord.transversal_nonempty + structure Monoid.PushoutI.NormalWord + theorem Monoid.PushoutI.Reduced.eq_empty_of_mem_range + theorem Monoid.PushoutI.Reduced.exists_normalWord_prod_eq + def Monoid.PushoutI.Reduced + theorem Monoid.PushoutI.base_injective + theorem Monoid.PushoutI.inf_of_range_eq_base_range + theorem Monoid.PushoutI.of_injective 2023-11-14 14:30:20 e6e9cec chore(Topology/UniformSpace): change defeq (#8334) Make `toTopologicalSpace_top` a `rfl`. Also move some lemmas to the `UniformSpace` namespace. ESTIMATED CHANGES Modified Mathlib/Analysis/LocallyConvex/WithSeminorms.lean Modified Mathlib/Topology/UniformSpace/Basic.lean + theorem UniformSpace.toTopologicalSpace_bot + theorem UniformSpace.toTopologicalSpace_comap + theorem UniformSpace.toTopologicalSpace_iInf + theorem UniformSpace.toTopologicalSpace_inf + theorem UniformSpace.toTopologicalSpace_mono + theorem UniformSpace.toTopologicalSpace_sInf + theorem UniformSpace.toTopologicalSpace_top + theorem UniformSpace.to_nhds_mono + theorem bot_uniformity +/- theorem inf_uniformity - theorem toTopologicalSpace_bot - theorem toTopologicalSpace_comap - theorem toTopologicalSpace_iInf - theorem toTopologicalSpace_inf - theorem toTopologicalSpace_mono - theorem toTopologicalSpace_sInf - theorem toTopologicalSpace_top - theorem to_nhds_mono + theorem top_uniformity Modified Mathlib/Topology/UniformSpace/UniformConvergenceTopology.lean 2023-11-14 14:30:19 fc881b7 refactor: Int.negOnePow as a map to ℤˣ rather than ℤ (#8307) Following #7866, `Int.negOnePow` is redefined as a map `ℤ → ℤˣ` rather than `ℤ → ℤ`. ESTIMATED CHANGES Modified Mathlib/Algebra/GroupPower/NegOnePow.lean +/- def Int.negOnePow - theorem Int.negOnePow_mul_self Modified Mathlib/Algebra/Homology/HomotopyCategory/HomComplex.lean + theorem CochainComplex.HomComplex.Cochain.smul_v + theorem CochainComplex.HomComplex.Cochain.units_smul_v - theorem CochainComplex.HomComplex.Cochain.zsmul_v + theorem CochainComplex.HomComplex.Cocycle.coe_smul - theorem CochainComplex.HomComplex.Cocycle.coe_zsmul +/- def CochainComplex.HomComplex.δ_hom + theorem CochainComplex.HomComplex.δ_smul +/- theorem CochainComplex.HomComplex.δ_zero - theorem CochainComplex.HomComplex.δ_zsmul Modified Mathlib/Algebra/Homology/HomotopyCategory/Shift.lean Modified Mathlib/Algebra/Module/Basic.lean Modified Mathlib/CategoryTheory/Linear/Basic.lean + theorem CategoryTheory.Linear.comp_units_smul + theorem CategoryTheory.Linear.units_smul_comp Modified Mathlib/CategoryTheory/Linear/LinearFunctor.lean + theorem CategoryTheory.Functor.map_units_smul Modified Mathlib/CategoryTheory/Triangulated/TriangleShift.lean 2023-11-14 13:27:38 1e1b274 feat: Finset of arbitrary size in an infinite type (#8348) and a few other easy lemmas ESTIMATED CHANGES Modified Mathlib/Data/Set/Finite.lean + theorem Finset.exists_card_eq + theorem Finset.exists_not_mem + theorem Set.Finite.exists_not_mem + theorem Set.Finite.of_surjOn + theorem Set.Infinite.exists_not_mem_finite +/- theorem Set.Infinite.exists_not_mem_finset 2023-11-14 12:32:12 21b5939 feat: generalize some lemmas using `withDensity_apply'` (#8383) @sgouezel added a version of `withDensity_apply` that does not require measurability of the set if the measure is s-finite. This PR uses that result in other files of the library. For results about `rnDeriv`, I put a prime on the version that assumes measurability of the set and no prime on the version for s-finite measures, as the second one should be the main use case. ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Decomposition/RadonNikodym.lean + theorem MeasureTheory.Measure.set_integral_toReal_rnDeriv' +/- theorem MeasureTheory.Measure.set_integral_toReal_rnDeriv + theorem MeasureTheory.Measure.set_integral_toReal_rnDeriv_eq_withDensity' +/- theorem MeasureTheory.Measure.set_integral_toReal_rnDeriv_eq_withDensity + theorem MeasureTheory.Measure.set_lintegral_rnDeriv' +/- theorem MeasureTheory.Measure.set_lintegral_rnDeriv Modified Mathlib/Probability/Distributions/Gaussian.lean +/- theorem ProbabilityTheory.gaussianReal_apply +/- theorem ProbabilityTheory.gaussianReal_apply_eq_integral Modified Mathlib/Probability/Kernel/Basic.lean Modified Mathlib/Probability/Kernel/WithDensity.lean - theorem ProbabilityTheory.kernel.withDensity_apply' 2023-11-14 10:54:25 3f81073 feat: s-finite measures (#8405) We define s-finite measures, i.e., measures which can be written as a countable sum of finite measures. We show that sigma-finite measures are s-finite, and extend a few results in the library from the sigma-finite case to the s-finite case. ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Covering/Differentiation.lean Modified Mathlib/MeasureTheory/Measure/Lebesgue/EqHaar.lean Modified Mathlib/MeasureTheory/Measure/MeasureSpace.lean + theorem MeasureTheory.Measure.sum_apply₀ Modified Mathlib/MeasureTheory/Measure/MeasureSpaceDef.lean Modified Mathlib/MeasureTheory/Measure/Typeclasses.lean +/- theorem MeasureTheory.Measure.countable_meas_level_set_pos +/- theorem MeasureTheory.Measure.countable_meas_level_set_pos₀ +/- theorem MeasureTheory.Measure.countable_meas_pos_of_disjoint_iUnion +/- theorem MeasureTheory.Measure.countable_meas_pos_of_disjoint_iUnion₀ +/- theorem MeasureTheory.Measure.countable_meas_pos_of_disjoint_of_meas_iUnion_ne_top +/- theorem MeasureTheory.Measure.countable_meas_pos_of_disjoint_of_meas_iUnion_ne_top₀ + theorem MeasureTheory.Measure.measure_toMeasurable_inter_of_sFinite - theorem MeasureTheory.Measure.measure_toMeasurable_inter_of_sigmaFinite + theorem MeasureTheory.Measure.measure_toMeasurable_inter_of_sum + theorem MeasureTheory.Measure.restrict_toMeasurable_of_sFinite - theorem MeasureTheory.Measure.restrict_toMeasurable_of_sigmaFinite + def MeasureTheory.sFiniteSeq + theorem MeasureTheory.sum_restrict_disjointed_spanningSets + theorem MeasureTheory.sum_sFiniteSeq Modified Mathlib/MeasureTheory/Measure/WithDensity.lean +/- theorem MeasureTheory.withDensity_apply' 2023-11-14 09:51:28 43c3206 chore: tidy various files (#8398) ESTIMATED CHANGES Modified Mathlib/Analysis/Asymptotics/Asymptotics.lean +/- theorem Asymptotics.IsBigO.exists_nonneg +/- theorem Asymptotics.IsBigO.exists_pos +/- theorem Asymptotics.isBigOWith_principal +/- theorem Asymptotics.isBigOWith_top +/- theorem Asymptotics.isBigO_top Modified Mathlib/Combinatorics/SetFamily/FourFunctions.lean +/- theorem collapse_nonneg Modified Mathlib/Topology/Category/Stonean/Limits.lean Modified Mathlib/Topology/Category/TopCat/Limits/Pullbacks.lean 2023-11-14 09:14:58 a977ca1 chore: bump Std (#8403) ESTIMATED CHANGES Modified Archive/Imo/Imo1969Q1.lean Modified Mathlib.lean Modified Mathlib/Algebra/CharZero/Defs.lean Modified Mathlib/Data/FunLike/Basic.lean Modified Mathlib/Data/Set/Lattice.lean Modified Mathlib/Init/Data/Ordering/Lemmas.lean +/- theorem cmpUsing_eq_lt Modified Mathlib/Lean/Meta/Simp.lean - def Lean.Meta.Simp.mkCast - def Lean.Meta.Simp.mkEqSymm - def Lean.Meta.Simp.mkSimpContext' Modified Mathlib/Logic/Basic.lean - theorem dite_eq_left_iff - theorem dite_eq_right_iff - theorem forall_prop_of_false - theorem ite_eq_left_iff - theorem ite_eq_right_iff Modified Mathlib/Mathport/Syntax.lean Modified Mathlib/Tactic.lean Modified Mathlib/Tactic/Common.lean Modified Mathlib/Tactic/Find.lean Modified Mathlib/Tactic/LibrarySearch.lean Deleted Mathlib/Tactic/NormCast.lean Deleted Mathlib/Tactic/NormCast/Tactic.lean - def Tactic.NormCast.derive - def Tactic.NormCast.evalConvNormCast - def Tactic.NormCast.evalPushCast - def Tactic.NormCast.isCoeOf? - def Tactic.NormCast.isNumeral? - def Tactic.NormCast.mkCoe - def Tactic.NormCast.normCastHyp - def Tactic.NormCast.normCastTarget - def Tactic.NormCast.numeralToCoe - def Tactic.NormCast.prove - def Tactic.NormCast.proveEqUsing - def Tactic.NormCast.proveEqUsingDown - def Tactic.NormCast.splittingProcedure Modified Mathlib/Tactic/Propose.lean Modified Mathlib/Tactic/Qify.lean Modified Mathlib/Tactic/ReduceModChar.lean Modified Mathlib/Tactic/Rewrites.lean Modified Mathlib/Tactic/Zify.lean Modified lake-manifest.json Modified test/norm_cast.lean Modified test/toAdditive.lean 2023-11-14 07:28:43 4b14c4c feat(CategoryTheory): a presheaf preserves certain products iff it `IsSheafFor` certain presieves (#7804) A presheaf preserving a particular product `IsSheafFor` the corresponding `Presieve.ofArrows`. Conversely, if a presheaf `IsSheafFor` a `Presieve.ofArrows` and the empty presive on an initial object, then it preserves the corresponding product. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Products.lean + def CategoryTheory.Limits.Cofan.ext + def CategoryTheory.Limits.Cofan.isColimitOfIsIsoSigmaDesc Added Mathlib/CategoryTheory/Sites/Preserves.lean + theorem CategoryTheory.Presieve.firstMap_eq_secondMap + theorem CategoryTheory.Presieve.isSheafFor_iff_preservesProduct + theorem CategoryTheory.Presieve.isSheafFor_of_preservesProduct + def CategoryTheory.Presieve.isTerminal_of_isSheafFor_empty_presieve + theorem CategoryTheory.Presieve.piComparison_fac + def CategoryTheory.Presieve.preservesProductOfIsSheafFor + def CategoryTheory.Presieve.preservesTerminalOfIsSheafForEmpty 2023-11-14 05:03:22 b6a9eb9 feat: conceptualize the proof of the fundamental theorem of algebra (#8245) Uses the corollary `Differentiable.apply_eq_of_tendsto_cocompact` of Liouville's theorem to refactor the proof of the Fundamental theorem of Algebra in order to make it slightly more conceptual. - [x] depends on: #8234 - [x] depends on: #8244 ESTIMATED CHANGES Modified Mathlib/Analysis/Complex/Polynomial.lean 2023-11-14 03:24:13 6f8dabb chore: split Data.Complex.Basic (#8355) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Data/Complex/Abs.lean + theorem Complex.AbsTheory.abs_conj + theorem Complex.abs_I + theorem Complex.abs_abs + theorem Complex.abs_apply + theorem Complex.abs_conj + theorem Complex.abs_def + theorem Complex.abs_im_div_abs_le_one + theorem Complex.abs_im_eq_abs + theorem Complex.abs_im_le_abs + theorem Complex.abs_im_lt_abs + theorem Complex.abs_le_abs_re_add_abs_im + theorem Complex.abs_le_sqrt_two_mul_max + theorem Complex.abs_natCast + theorem Complex.abs_ofNat + theorem Complex.abs_ofReal + theorem Complex.abs_pow + theorem Complex.abs_prod + theorem Complex.abs_re_div_abs_le_one + theorem Complex.abs_re_eq_abs + theorem Complex.abs_re_le_abs + theorem Complex.abs_re_lt_abs + theorem Complex.abs_two + theorem Complex.abs_zpow + theorem Complex.equiv_limAux + theorem Complex.im_le_abs + theorem Complex.int_cast_abs + theorem Complex.isCauSeq_abs + theorem Complex.isCauSeq_conj + theorem Complex.isCauSeq_im + theorem Complex.isCauSeq_re + theorem Complex.lim_abs + theorem Complex.lim_conj + theorem Complex.lim_eq_lim_im_add_lim_re + theorem Complex.lim_im + theorem Complex.lim_re + theorem Complex.mul_self_abs + theorem Complex.normSq_eq_abs + theorem Complex.range_abs + theorem Complex.range_normSq + theorem Complex.re_le_abs + theorem Complex.sq_abs + theorem Complex.sq_abs_sub_sq_im + theorem Complex.sq_abs_sub_sq_re Modified Mathlib/Data/Complex/Basic.lean - theorem Complex.AbsTheory.abs_conj - theorem Complex.abs_I - theorem Complex.abs_abs - theorem Complex.abs_apply - theorem Complex.abs_conj - theorem Complex.abs_def - theorem Complex.abs_im_div_abs_le_one - theorem Complex.abs_im_eq_abs - theorem Complex.abs_im_le_abs - theorem Complex.abs_im_lt_abs - theorem Complex.abs_le_abs_re_add_abs_im - theorem Complex.abs_le_sqrt_two_mul_max - theorem Complex.abs_natCast - theorem Complex.abs_ofNat - theorem Complex.abs_ofReal - theorem Complex.abs_pow - theorem Complex.abs_prod - theorem Complex.abs_re_div_abs_le_one - theorem Complex.abs_re_eq_abs - theorem Complex.abs_re_le_abs - theorem Complex.abs_re_lt_abs - theorem Complex.abs_two - theorem Complex.abs_zpow - theorem Complex.equiv_limAux - theorem Complex.im_le_abs - theorem Complex.im_sum - theorem Complex.int_cast_abs - theorem Complex.isCauSeq_abs - theorem Complex.isCauSeq_conj - theorem Complex.isCauSeq_im - theorem Complex.isCauSeq_re - theorem Complex.lim_abs - theorem Complex.lim_conj - theorem Complex.lim_eq_lim_im_add_lim_re - theorem Complex.lim_im - theorem Complex.lim_re - theorem Complex.mul_self_abs - theorem Complex.normSq_eq_abs - theorem Complex.ofReal_prod - theorem Complex.ofReal_sum - theorem Complex.range_abs - theorem Complex.range_normSq - theorem Complex.re_le_abs - theorem Complex.re_sum - theorem Complex.sq_abs - theorem Complex.sq_abs_sub_sq_im - theorem Complex.sq_abs_sub_sq_re Added Mathlib/Data/Complex/BigOperators.lean + theorem Complex.im_sum + theorem Complex.ofReal_prod + theorem Complex.ofReal_sum + theorem Complex.re_sum Modified Mathlib/Data/Complex/Exponential.lean Modified Mathlib/Data/Complex/Module.lean Modified Mathlib/Data/Complex/Order.lean Modified Mathlib/NumberTheory/Zsqrtd/GaussianInt.lean 2023-11-14 03:24:12 86eae0c feat: Simple `Subgroup` lemmas (#8341) ESTIMATED CHANGES Modified Mathlib/GroupTheory/Subgroup/Actions.lean + theorem Subgroup.mk_smul +/- theorem Subgroup.smul_def Modified Mathlib/GroupTheory/Subgroup/Basic.lean +/- theorem Subgroup.closure_eq_bot_iff + theorem Subgroup.nonempty Modified Mathlib/GroupTheory/Submonoid/Operations.lean + theorem Submonoid.mk_smul +/- theorem Submonoid.smul_def 2023-11-14 03:24:10 0a0580b feat: Shattering (#7524) Define when a finset family shatters a finset, the shatterer of a finset, define the Vapnik-Chervonenkis dimension of a finset family and prove the Sauer-Shelah lemma ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Combinatorics/SetFamily/Shatter.lean + theorem Finset.Shatters.card_le_vcDim + theorem Finset.Shatters.exists_inter_eq_singleton + theorem Finset.Shatters.exists_superset + theorem Finset.Shatters.mono_left + theorem Finset.Shatters.mono_right + theorem Finset.Shatters.of_compression + def Finset.Shatters + theorem Finset.card_le_card_shatterer + theorem Finset.card_shatterer_le_sum_vcDim + theorem Finset.isLowerSet_shatterer + theorem Finset.mem_shatterer + def Finset.shatterer + theorem Finset.shatterer_compress_subset_shatterer + theorem Finset.shatterer_eq + theorem Finset.shatterer_idem + theorem Finset.shatterer_mono + theorem Finset.shatters_empty + theorem Finset.shatters_iff + theorem Finset.shatters_of_forall_subset + theorem Finset.shatters_shatterer + theorem Finset.shatters_univ + theorem Finset.subset_shatterer + theorem Finset.univ_shatters + def Finset.vcDim + theorem Finset.vcDim_compress_le 2023-11-14 03:03:18 3eee033 chore: bump ProofWidgets to 0.0.22 (#8400) ESTIMATED CHANGES Modified lake-manifest.json Modified lakefile.lean 2023-11-14 01:03:47 931dd81 feat: add induction principle for intervals (#8350) This PR adds an induction principle that says that if a proposition `P` is true on `[x₀, r * x₀)` and if `P` for `[x₀, r^n * x₀)` implies `P` for `[r^n * x₀, r^(n+1) * x₀)`, then `P` is true for all `x ≥ x₀`. It also adds a few missing lemmas about `logb`. ESTIMATED CHANGES Modified Mathlib/Analysis/SpecialFunctions/Log/Base.lean + theorem Real.induction_Ico_mul + theorem Real.logb_le_logb_of_le + theorem Real.logb_self_eq_one + theorem Real.logb_self_eq_one_iff 2023-11-13 21:35:10 2fed2bb refactor(Algebra): Define the center appropriately for non-associative algebras (#6996) For a sensible theory, we require that the centre of an algebra is closed under multiplication. The definition currently in Mathlib works for associative algebras, but not non-associative algebras. This PR uses the definition from Cabrera García and Rodríguez Palacios, which works for any multiplication (addition) and which coincides with the current definition in the associative case. I did consider whether the centralizer should also be re-defined in terms of operator commutation, but this still results in a centralizer which is not closed under multiplication in the non-associative case. I have therefore retained the current definition, but changed `centralizer_eq_top_iff_subset` and `centralizer_univ` to only work in the associative case. ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/NonUnitalSubalgebra.lean +/- theorem Set.smul_mem_center Modified Mathlib/Algebra/Algebra/Subalgebra/Basic.lean Modified Mathlib/Algebra/Star/Center.lean +/- theorem Set.star_mem_center Modified Mathlib/Algebra/Star/NonUnitalSubalgebra.lean Modified Mathlib/GroupTheory/Nilpotent.lean Modified Mathlib/GroupTheory/SchurZassenhaus.lean Modified Mathlib/GroupTheory/Subgroup/Basic.lean +/- theorem Subgroup.mem_center_iff Modified Mathlib/GroupTheory/Submonoid/Center.lean +/- theorem Submonoid.mem_center_iff Modified Mathlib/GroupTheory/Subsemigroup/Center.lean + structure IsAddCentral + structure IsMulCentral + theorem Semigroup.mem_center_iff +/- def Set.center +/- theorem Set.center_eq_univ +/- theorem Set.intCast_mem_center +/- theorem Set.inv_mem_center +/- theorem Set.mem_center_iff +/- theorem Set.mul_mem_center +/- theorem Set.natCast_mem_center +/- theorem Set.one_mem_center +/- theorem Set.zero_mem_center +/- theorem Subsemigroup.mem_center_iff Modified Mathlib/GroupTheory/Subsemigroup/Centralizer.lean +/- theorem Set.centralizer_eq_top_iff_subset +/- theorem Set.centralizer_univ Modified Mathlib/GroupTheory/Transfer.lean Modified Mathlib/LinearAlgebra/Basis.lean Modified Mathlib/RingTheory/NonUnitalSubring/Basic.lean +/- theorem NonUnitalSubring.mem_center_iff Modified Mathlib/RingTheory/NonUnitalSubsemiring/Basic.lean +/- def NonUnitalSubsemiring.center +/- theorem NonUnitalSubsemiring.center_toSubsemigroup +/- theorem NonUnitalSubsemiring.coe_center +/- theorem NonUnitalSubsemiring.mem_center_iff Modified Mathlib/RingTheory/Subring/Basic.lean Modified Mathlib/RingTheory/Subsemiring/Basic.lean +/- def Subsemiring.center +/- theorem Subsemiring.center_toSubmonoid +/- theorem Subsemiring.coe_center 2023-11-13 18:56:18 b460f53 chore: typo `ascPochhammer` (#8391) ESTIMATED CHANGES Modified Mathlib/Data/Nat/Factorial/Basic.lean 2023-11-13 17:59:15 f5eb981 fix(Mathlib/Algebra/Lie/DirectSum): remove unused `R` argument from lemmas (#8388) This made them not actually work as a `simp` lemma. Also extracts a common result that can be used to prove `single_add` for `DFinsupp` and `Finsupp`, and a new `Finsupp.single_mul` lemma. ESTIMATED CHANGES Modified Mathlib/Algebra/Lie/DirectSum.lean - theorem DirectSum.lie_of_of_eq +/- theorem DirectSum.lie_of_of_ne + theorem DirectSum.lie_of_same Modified Mathlib/Data/DFinsupp/Basic.lean + theorem DFinsupp.zipWith_single_single Modified Mathlib/Data/Finsupp/Defs.lean + theorem Finsupp.zipWith_single_single Modified Mathlib/Data/Finsupp/Pointwise.lean + theorem Finsupp.single_mul 2023-11-13 17:14:15 69a0d13 feat: polar coords integral in a normed space (#7693) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Analysis/NormedSpace/Pointwise.lean + theorem Ioo_smul_sphere_zero + theorem set_smul_sphere_zero Added Mathlib/Analysis/NormedSpace/SphereNormEquiv.lean Modified Mathlib/LinearAlgebra/Finrank.lean Added Mathlib/MeasureTheory/Constructions/HaarToSphere.lean + def MeasureTheory.Measure.finiteSpanningSetsIn_volumeIoiPow_range_Iio + theorem MeasureTheory.Measure.measurePreserving_homeomorphUnitSphereProd + def MeasureTheory.Measure.toSphere + theorem MeasureTheory.Measure.toSphere_apply' + theorem MeasureTheory.Measure.toSphere_apply_aux + theorem MeasureTheory.Measure.toSphere_apply_univ' + theorem MeasureTheory.Measure.toSphere_apply_univ + def MeasureTheory.Measure.volumeIoiPow + theorem MeasureTheory.Measure.volumeIoiPow_apply_Iio + theorem MeasureTheory.integral_fun_norm_addHaar Modified Mathlib/MeasureTheory/Measure/MeasureSpace.lean + theorem MeasureTheory.Measure.apply_eq_zero_of_isEmpty Modified Mathlib/Topology/MetricSpace/PseudoMetric.lean - theorem Metric.sphere_isEmpty_of_subsingleton 2023-11-13 16:29:25 5c9c13d chore: split `MeasureSpace.lean` into 3 files (#8389) The original file `MeasureSpace.lean` is a mess of 4580 lines, with a lot of changes of namespaces, active variables, and so on. We split it into three files: * `MeasureSpace`, with 2095 lines left (some stuff could still be moved to other files, but it already makes much more sense) * `Restrict`, with everything on restriction of measures (1100 lines) * `Typeclasses`, defining finite measures, sigma-finite measures, and so on (1443 lines) The new files are still large, but less so. This is 99% moving around and ensuring that variables and namespaces remain the same (#align statements have been very useful for this), and 1% adding `classical` in proofs and `[Decidable ...]` assumptions in statements, as I haven't opened `Classical` in the new files. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/MeasureTheory/Decomposition/UnsignedHahn.lean Modified Mathlib/MeasureTheory/Measure/Dirac.lean Modified Mathlib/MeasureTheory/Measure/MeasureSpace.lean - theorem Bornology.IsBounded.measure_lt_top - theorem Filter.EventuallyEq.restrict - theorem Finset.measure_zero - theorem IsCompact.exists_open_superset_measure_lt_top' - theorem IsCompact.exists_open_superset_measure_lt_top - theorem IsCompact.measure_lt_top - theorem IsCompact.measure_lt_top_of_nhdsWithin - theorem IsCompact.measure_zero_of_nhdsWithin - theorem MeasurableEmbedding.ae_map_iff - theorem MeasurableEmbedding.comap_apply - theorem MeasurableEmbedding.comap_map - theorem MeasurableEmbedding.comap_restrict - theorem MeasurableEmbedding.map_comap - theorem MeasurableEmbedding.restrict_comap - theorem MeasurableEmbedding.restrict_map - theorem MeasurableEquiv.restrict_map - theorem MeasurableEquiv.sigmaFinite_map - theorem MeasurableSet.map_coe_volume - theorem MeasureTheory.Ico_ae_eq_Icc - theorem MeasureTheory.Ico_ae_eq_Ioc - theorem MeasureTheory.Iio_ae_eq_Iic - theorem MeasureTheory.Ioc_ae_eq_Icc - theorem MeasureTheory.Ioi_ae_eq_Ici - theorem MeasureTheory.Ioo_ae_eq_Icc - theorem MeasureTheory.Ioo_ae_eq_Ico - theorem MeasureTheory.Ioo_ae_eq_Ioc - theorem MeasureTheory.IsProbabilityMeasure.ae_neBot - theorem MeasureTheory.IsProbabilityMeasure.ne_zero - theorem MeasureTheory.Measure.AbsolutelyContinuous.restrict - theorem MeasureTheory.Measure.FiniteAtFilter.exists_mem_basis - theorem MeasureTheory.Measure.FiniteAtFilter.filterSup - theorem MeasureTheory.Measure.FiniteAtFilter.filter_mono - theorem MeasureTheory.Measure.FiniteAtFilter.filter_mono_ae - theorem MeasureTheory.Measure.FiniteAtFilter.inf_ae_iff - theorem MeasureTheory.Measure.FiniteAtFilter.inf_of_left - theorem MeasureTheory.Measure.FiniteAtFilter.inf_of_right - def MeasureTheory.Measure.FiniteAtFilter - theorem MeasureTheory.Measure.FiniteSpanningSetsIn.disjointed_set_eq - def MeasureTheory.Measure.FiniteSpanningSetsIn.ofLE - structure MeasureTheory.Measure.FiniteSpanningSetsIn - theorem MeasureTheory.Measure.MeasurableSet.nullMeasurableSet_subtype_coe - theorem MeasureTheory.Measure.NullMeasurableSet.subtype_coe - theorem MeasureTheory.Measure.QuasiMeasurePreserving.ae_eq_comp - def MeasureTheory.Measure.Subtype.measureSpace - theorem MeasureTheory.Measure.Subtype.volume_def - theorem MeasureTheory.Measure.Subtype.volume_univ - theorem MeasureTheory.Measure.add_left_inj - theorem MeasureTheory.Measure.add_right_inj - theorem MeasureTheory.Measure.countable_meas_level_set_pos - theorem MeasureTheory.Measure.countable_meas_level_set_pos₀ - theorem MeasureTheory.Measure.countable_meas_pos_of_disjoint_iUnion - theorem MeasureTheory.Measure.countable_meas_pos_of_disjoint_iUnion₀ - theorem MeasureTheory.Measure.countable_meas_pos_of_disjoint_of_meas_iUnion_ne_top - theorem MeasureTheory.Measure.countable_meas_pos_of_disjoint_of_meas_iUnion_ne_top₀ - theorem MeasureTheory.Measure.exists_eq_disjoint_finiteSpanningSetsIn - theorem MeasureTheory.Measure.exists_isOpen_measure_lt_top - theorem MeasureTheory.Measure.exists_measure_inter_spanningSets_pos - theorem MeasureTheory.Measure.exists_mem_of_measure_ne_zero_of_ae - theorem MeasureTheory.Measure.exists_subset_measure_lt_top - theorem MeasureTheory.Measure.ext_iff_of_biUnion_eq_univ - theorem MeasureTheory.Measure.ext_iff_of_iUnion_eq_univ - theorem MeasureTheory.Measure.ext_iff_of_sUnion_eq_univ - theorem MeasureTheory.Measure.ext_of_generateFrom_of_cover - theorem MeasureTheory.Measure.ext_of_generateFrom_of_cover_subset - theorem MeasureTheory.Measure.ext_of_generateFrom_of_iUnion - theorem MeasureTheory.Measure.finiteAtBot - theorem MeasureTheory.Measure.finiteAtFilter_of_finite - theorem MeasureTheory.Measure.finiteAt_nhds - theorem MeasureTheory.Measure.finiteAt_nhdsWithin - theorem MeasureTheory.Measure.finiteAt_principal - def MeasureTheory.Measure.finiteSpanningSetsInCompact - def MeasureTheory.Measure.finiteSpanningSetsInOpen - theorem MeasureTheory.Measure.finite_const_le_meas_of_disjoint_iUnion - theorem MeasureTheory.Measure.finite_const_le_meas_of_disjoint_iUnion₀ - theorem MeasureTheory.Measure.forall_measure_inter_spanningSets_eq_zero - theorem MeasureTheory.Measure.iSup_restrict_spanningSets - theorem MeasureTheory.Measure.isFiniteMeasure_map - theorem MeasureTheory.Measure.isLocallyFiniteMeasure_of_le - theorem MeasureTheory.Measure.le_of_add_le_add_left - theorem MeasureTheory.Measure.le_restrict_apply - theorem MeasureTheory.Measure.measure_inter_eq_zero_of_restrict - theorem MeasureTheory.Measure.measure_subtype_coe_eq_zero_of_comap_eq_zero - theorem MeasureTheory.Measure.measure_subtype_coe_le_comap - theorem MeasureTheory.Measure.measure_toMeasurable_inter_of_cover - theorem MeasureTheory.Measure.measure_toMeasurable_inter_of_sigmaFinite - def MeasureTheory.Measure.restrict - theorem MeasureTheory.Measure.restrict_add - theorem MeasureTheory.Measure.restrict_add_restrict_compl - theorem MeasureTheory.Measure.restrict_apply' - theorem MeasureTheory.Measure.restrict_apply - theorem MeasureTheory.Measure.restrict_apply_eq_zero' - theorem MeasureTheory.Measure.restrict_apply_eq_zero - theorem MeasureTheory.Measure.restrict_apply_le - theorem MeasureTheory.Measure.restrict_apply_self - theorem MeasureTheory.Measure.restrict_apply_superset - theorem MeasureTheory.Measure.restrict_apply_univ - theorem MeasureTheory.Measure.restrict_apply₀' - theorem MeasureTheory.Measure.restrict_apply₀ - theorem MeasureTheory.Measure.restrict_biUnion_congr - theorem MeasureTheory.Measure.restrict_comm - theorem MeasureTheory.Measure.restrict_compl_add_restrict - theorem MeasureTheory.Measure.restrict_congr_meas - theorem MeasureTheory.Measure.restrict_congr_mono - theorem MeasureTheory.Measure.restrict_congr_set - theorem MeasureTheory.Measure.restrict_empty - theorem MeasureTheory.Measure.restrict_eq_self - theorem MeasureTheory.Measure.restrict_eq_self_of_ae_mem - theorem MeasureTheory.Measure.restrict_eq_zero - theorem MeasureTheory.Measure.restrict_finset_biUnion_congr - theorem MeasureTheory.Measure.restrict_iUnion - theorem MeasureTheory.Measure.restrict_iUnion_ae - theorem MeasureTheory.Measure.restrict_iUnion_apply - theorem MeasureTheory.Measure.restrict_iUnion_apply_ae - theorem MeasureTheory.Measure.restrict_iUnion_apply_eq_iSup - theorem MeasureTheory.Measure.restrict_iUnion_congr - theorem MeasureTheory.Measure.restrict_iUnion_le - theorem MeasureTheory.Measure.restrict_inter_add_diff - theorem MeasureTheory.Measure.restrict_inter_add_diff₀ - theorem MeasureTheory.Measure.restrict_le_self - theorem MeasureTheory.Measure.restrict_map - theorem MeasureTheory.Measure.restrict_mono' - theorem MeasureTheory.Measure.restrict_mono - theorem MeasureTheory.Measure.restrict_mono_ae - theorem MeasureTheory.Measure.restrict_restrict' - theorem MeasureTheory.Measure.restrict_restrict - theorem MeasureTheory.Measure.restrict_restrict_of_subset - theorem MeasureTheory.Measure.restrict_restrict₀' - theorem MeasureTheory.Measure.restrict_restrict₀ - theorem MeasureTheory.Measure.restrict_sInf_eq_sInf_restrict - theorem MeasureTheory.Measure.restrict_sUnion_congr - theorem MeasureTheory.Measure.restrict_singleton' - theorem MeasureTheory.Measure.restrict_smul - theorem MeasureTheory.Measure.restrict_sum - theorem MeasureTheory.Measure.restrict_toMeasurable - theorem MeasureTheory.Measure.restrict_toMeasurable_of_cover - theorem MeasureTheory.Measure.restrict_toMeasurable_of_sigmaFinite - theorem MeasureTheory.Measure.restrict_toOuterMeasure_eq_toOuterMeasure_restrict - theorem MeasureTheory.Measure.restrict_union' - theorem MeasureTheory.Measure.restrict_union - theorem MeasureTheory.Measure.restrict_union_add_inter' - theorem MeasureTheory.Measure.restrict_union_add_inter - theorem MeasureTheory.Measure.restrict_union_add_inter₀ - theorem MeasureTheory.Measure.restrict_union_congr - theorem MeasureTheory.Measure.restrict_union_le - theorem MeasureTheory.Measure.restrict_union₀ - theorem MeasureTheory.Measure.restrict_univ - theorem MeasureTheory.Measure.restrict_zero - theorem MeasureTheory.Measure.restrict_zero_set - def MeasureTheory.Measure.restrictₗ - theorem MeasureTheory.Measure.restrictₗ_apply - theorem MeasureTheory.Measure.sigmaFinite_of_countable - theorem MeasureTheory.Measure.sigmaFinite_of_le - theorem MeasureTheory.Measure.smul_finite - def MeasureTheory.Measure.sum - def MeasureTheory.Measure.toFiniteSpanningSetsIn - theorem MeasureTheory.Measure.volume_subtype_coe_eq_zero_of_volume_eq_zero - theorem MeasureTheory.Measure.volume_subtype_coe_le_volume - theorem MeasureTheory.NullMeasurable.measure_preimage_eq_measure_restrict_preimage_of_ae_compl_eq_const - theorem MeasureTheory.SigmaFinite.of_map - theorem MeasureTheory.SigmaFinite.out - theorem MeasureTheory.abs_toReal_measure_sub_le_measure_symmDiff' - theorem MeasureTheory.abs_toReal_measure_sub_le_measure_symmDiff - theorem MeasureTheory.ae_add_measure_iff - theorem MeasureTheory.ae_eq_comp' - theorem MeasureTheory.ae_eq_comp - theorem MeasureTheory.ae_eq_restrict_biUnion_finset_iff - theorem MeasureTheory.ae_eq_restrict_biUnion_iff - theorem MeasureTheory.ae_eq_restrict_iUnion_iff - theorem MeasureTheory.ae_eq_univ_iff_measure_eq - theorem MeasureTheory.ae_eventually_not_mem - theorem MeasureTheory.ae_iff_measure_eq - theorem MeasureTheory.ae_imp_of_ae_restrict - theorem MeasureTheory.ae_mem_iff_measure_eq - theorem MeasureTheory.ae_of_ae_restrict_of_ae_restrict_compl - theorem MeasureTheory.ae_of_forall_measure_lt_top_ae_restrict' - theorem MeasureTheory.ae_of_forall_measure_lt_top_ae_restrict - theorem MeasureTheory.ae_restrict_biUnion_eq - theorem MeasureTheory.ae_restrict_biUnion_finset_eq - theorem MeasureTheory.ae_restrict_biUnion_finset_iff - theorem MeasureTheory.ae_restrict_biUnion_iff - theorem MeasureTheory.ae_restrict_congr_set - theorem MeasureTheory.ae_restrict_eq - theorem MeasureTheory.ae_restrict_eq_bot - theorem MeasureTheory.ae_restrict_iUnion_eq - theorem MeasureTheory.ae_restrict_iUnion_iff - theorem MeasureTheory.ae_restrict_iff' - theorem MeasureTheory.ae_restrict_iff'₀ - theorem MeasureTheory.ae_restrict_iff - theorem MeasureTheory.ae_restrict_mem - theorem MeasureTheory.ae_restrict_mem₀ - theorem MeasureTheory.ae_restrict_neBot - theorem MeasureTheory.ae_restrict_of_ae - theorem MeasureTheory.ae_restrict_of_ae_eq_of_ae_restrict - theorem MeasureTheory.ae_restrict_of_ae_restrict_of_subset - theorem MeasureTheory.ae_restrict_uIoc_eq - theorem MeasureTheory.ae_restrict_uIoc_iff - theorem MeasureTheory.ae_restrict_union_eq - theorem MeasureTheory.ae_restrict_union_iff - theorem MeasureTheory.ae_smul_measure - theorem MeasureTheory.coe_measureUnivNNReal - theorem MeasureTheory.eventually_mem_spanningSets - theorem MeasureTheory.exists_mem_forall_mem_nhdsWithin_pos_measure - theorem MeasureTheory.exists_ne_forall_mem_nhds_pos_measure_preimage - theorem MeasureTheory.exists_pos_ball - theorem MeasureTheory.exists_pos_measure_of_cover - theorem MeasureTheory.exists_pos_preimage_ball - theorem MeasureTheory.ext_of_generate_finite - theorem MeasureTheory.ext_on_measurableSpace_of_generate_finite - theorem MeasureTheory.iUnion_spanningSets - theorem MeasureTheory.insert_ae_eq_self - theorem MeasureTheory.isCountablySpanning_spanningSets - theorem MeasureTheory.isFiniteMeasure_of_le - theorem MeasureTheory.isProbabilityMeasure_map - theorem MeasureTheory.ite_ae_eq_of_measure_compl_zero - theorem MeasureTheory.ite_ae_eq_of_measure_zero - theorem MeasureTheory.le_ae_restrict - theorem MeasureTheory.measurable_spanningSets - theorem MeasureTheory.measurable_spanningSetsIndex - def MeasureTheory.measureUnivNNReal - theorem MeasureTheory.measureUnivNNReal_eq_zero - theorem MeasureTheory.measureUnivNNReal_pos - theorem MeasureTheory.measureUnivNNReal_zero - theorem MeasureTheory.measure_ball_lt_top - theorem MeasureTheory.measure_closedBall_lt_top - theorem MeasureTheory.measure_compl_le_add_iff - theorem MeasureTheory.measure_compl_le_add_of_le_add - theorem MeasureTheory.measure_lt_top - theorem MeasureTheory.measure_ne_top - theorem MeasureTheory.measure_setOf_frequently_eq_zero - theorem MeasureTheory.measure_spanningSets_lt_top - theorem MeasureTheory.mem_disjointed_spanningSetsIndex - theorem MeasureTheory.mem_map_restrict_ae_iff - theorem MeasureTheory.mem_spanningSetsIndex - theorem MeasureTheory.mem_spanningSets_of_index_le - theorem MeasureTheory.monotone_spanningSets - theorem MeasureTheory.not_isFiniteMeasure_iff - theorem MeasureTheory.null_of_locally_null - theorem MeasureTheory.one_le_prob_iff - theorem MeasureTheory.preimage_spanningSetsIndex_singleton - theorem MeasureTheory.prob_add_prob_compl - theorem MeasureTheory.prob_compl_eq_one_iff - theorem MeasureTheory.prob_compl_eq_one_sub - theorem MeasureTheory.prob_compl_eq_zero_iff - theorem MeasureTheory.prob_le_one - theorem MeasureTheory.restrict_Ico_eq_restrict_Icc - theorem MeasureTheory.restrict_Ico_eq_restrict_Ioc - theorem MeasureTheory.restrict_Iio_eq_restrict_Iic - theorem MeasureTheory.restrict_Ioc_eq_restrict_Icc - theorem MeasureTheory.restrict_Ioi_eq_restrict_Ici - theorem MeasureTheory.restrict_Ioo_eq_restrict_Icc - theorem MeasureTheory.restrict_Ioo_eq_restrict_Ico - theorem MeasureTheory.restrict_Ioo_eq_restrict_Ioc - theorem MeasureTheory.restrict_compl_singleton - theorem MeasureTheory.self_mem_ae_restrict - theorem MeasureTheory.sigmaFinite_bot_iff - theorem MeasureTheory.sigmaFinite_iff - def MeasureTheory.spanningSets - def MeasureTheory.spanningSetsIndex - theorem MeasureTheory.spanningSetsIndex_eq_iff - theorem MeasureTheory.sub_ae_eq_zero - theorem MeasureTheory.summable_measure_toReal - theorem MeasureTheory.uIoc_ae_eq_interval - theorem Set.Countable.ae_not_mem - theorem Set.Countable.measure_restrict_compl - theorem Set.Countable.measure_zero - theorem Set.Finite.measure_zero - theorem Set.Infinite.meas_eq_top - theorem Set.Subsingleton.measure_zero - theorem ae_eq_restrict_iff_indicator_ae_eq - theorem ae_restrict_iff_subtype - theorem comap_subtype_coe_apply - theorem indicator_ae_eq_of_ae_eq_set - theorem indicator_ae_eq_of_restrict_compl_ae_eq_zero - theorem indicator_ae_eq_restrict - theorem indicator_ae_eq_restrict_compl - theorem indicator_ae_eq_zero_of_restrict_ae_eq_zero - theorem indicator_meas_zero - theorem isFiniteMeasure_iff_isFiniteMeasureOnCompacts_of_compactSpace - theorem map_comap_subtype_coe - theorem map_restrict_ae_le_map_indicator_ae - theorem measure_Icc_lt_top - theorem measure_Ico_lt_top - theorem measure_Ioc_lt_top - theorem measure_Ioo_lt_top - theorem mem_map_indicator_ae_iff_mem_map_restrict_ae_of_zero_mem - theorem mem_map_indicator_ae_iff_of_zero_nmem - theorem piecewise_ae_eq_of_ae_eq_set - theorem piecewise_ae_eq_restrict - theorem piecewise_ae_eq_restrict_compl - theorem volume_image_subtype_coe - theorem volume_preimage_coe - theorem volume_set_coe_def Modified Mathlib/MeasureTheory/Measure/MutuallySingular.lean Added Mathlib/MeasureTheory/Measure/Restrict.lean + theorem Filter.EventuallyEq.restrict + theorem MeasurableEmbedding.ae_map_iff + theorem MeasurableEmbedding.comap_apply + theorem MeasurableEmbedding.comap_map + theorem MeasurableEmbedding.comap_restrict + theorem MeasurableEmbedding.map_comap + theorem MeasurableEmbedding.restrict_comap + theorem MeasurableEmbedding.restrict_map + theorem MeasurableEquiv.restrict_map + theorem MeasurableSet.map_coe_volume + theorem MeasureTheory.Measure.AbsolutelyContinuous.restrict + theorem MeasureTheory.Measure.MeasurableSet.nullMeasurableSet_subtype_coe + theorem MeasureTheory.Measure.NullMeasurableSet.subtype_coe + theorem MeasureTheory.Measure.QuasiMeasurePreserving.ae_eq_comp + theorem MeasureTheory.Measure.Subtype.volume_def + theorem MeasureTheory.Measure.Subtype.volume_univ + theorem MeasureTheory.Measure.exists_mem_of_measure_ne_zero_of_ae + theorem MeasureTheory.Measure.ext_iff_of_biUnion_eq_univ + theorem MeasureTheory.Measure.ext_iff_of_iUnion_eq_univ + theorem MeasureTheory.Measure.ext_iff_of_sUnion_eq_univ + theorem MeasureTheory.Measure.ext_of_generateFrom_of_cover + theorem MeasureTheory.Measure.ext_of_generateFrom_of_cover_subset + theorem MeasureTheory.Measure.ext_of_generateFrom_of_iUnion + theorem MeasureTheory.Measure.le_restrict_apply + theorem MeasureTheory.Measure.measure_inter_eq_zero_of_restrict + theorem MeasureTheory.Measure.measure_subtype_coe_eq_zero_of_comap_eq_zero + theorem MeasureTheory.Measure.measure_subtype_coe_le_comap + theorem MeasureTheory.Measure.restrict_add + theorem MeasureTheory.Measure.restrict_add_restrict_compl + theorem MeasureTheory.Measure.restrict_apply' + theorem MeasureTheory.Measure.restrict_apply + theorem MeasureTheory.Measure.restrict_apply_eq_zero' + theorem MeasureTheory.Measure.restrict_apply_eq_zero + theorem MeasureTheory.Measure.restrict_apply_le + theorem MeasureTheory.Measure.restrict_apply_self + theorem MeasureTheory.Measure.restrict_apply_superset + theorem MeasureTheory.Measure.restrict_apply_univ + theorem MeasureTheory.Measure.restrict_apply₀' + theorem MeasureTheory.Measure.restrict_apply₀ + theorem MeasureTheory.Measure.restrict_biUnion_congr + theorem MeasureTheory.Measure.restrict_comm + theorem MeasureTheory.Measure.restrict_compl_add_restrict + theorem MeasureTheory.Measure.restrict_congr_meas + theorem MeasureTheory.Measure.restrict_congr_mono + theorem MeasureTheory.Measure.restrict_congr_set + theorem MeasureTheory.Measure.restrict_empty + theorem MeasureTheory.Measure.restrict_eq_self + theorem MeasureTheory.Measure.restrict_eq_self_of_ae_mem + theorem MeasureTheory.Measure.restrict_eq_zero + theorem MeasureTheory.Measure.restrict_finset_biUnion_congr + theorem MeasureTheory.Measure.restrict_iUnion + theorem MeasureTheory.Measure.restrict_iUnion_ae + theorem MeasureTheory.Measure.restrict_iUnion_apply + theorem MeasureTheory.Measure.restrict_iUnion_apply_ae + theorem MeasureTheory.Measure.restrict_iUnion_apply_eq_iSup + theorem MeasureTheory.Measure.restrict_iUnion_congr + theorem MeasureTheory.Measure.restrict_iUnion_le + theorem MeasureTheory.Measure.restrict_inter_add_diff + theorem MeasureTheory.Measure.restrict_inter_add_diff₀ + theorem MeasureTheory.Measure.restrict_le_self + theorem MeasureTheory.Measure.restrict_map + theorem MeasureTheory.Measure.restrict_mono' + theorem MeasureTheory.Measure.restrict_mono + theorem MeasureTheory.Measure.restrict_mono_ae + theorem MeasureTheory.Measure.restrict_restrict' + theorem MeasureTheory.Measure.restrict_restrict + theorem MeasureTheory.Measure.restrict_restrict_of_subset + theorem MeasureTheory.Measure.restrict_restrict₀' + theorem MeasureTheory.Measure.restrict_restrict₀ + theorem MeasureTheory.Measure.restrict_sInf_eq_sInf_restrict + theorem MeasureTheory.Measure.restrict_sUnion_congr + theorem MeasureTheory.Measure.restrict_smul + theorem MeasureTheory.Measure.restrict_sum + theorem MeasureTheory.Measure.restrict_toMeasurable + theorem MeasureTheory.Measure.restrict_toOuterMeasure_eq_toOuterMeasure_restrict + theorem MeasureTheory.Measure.restrict_union' + theorem MeasureTheory.Measure.restrict_union + theorem MeasureTheory.Measure.restrict_union_add_inter' + theorem MeasureTheory.Measure.restrict_union_add_inter + theorem MeasureTheory.Measure.restrict_union_add_inter₀ + theorem MeasureTheory.Measure.restrict_union_congr + theorem MeasureTheory.Measure.restrict_union_le + theorem MeasureTheory.Measure.restrict_union₀ + theorem MeasureTheory.Measure.restrict_univ + theorem MeasureTheory.Measure.restrict_zero + theorem MeasureTheory.Measure.restrict_zero_set + theorem MeasureTheory.Measure.restrictₗ_apply + theorem MeasureTheory.Measure.volume_subtype_coe_eq_zero_of_volume_eq_zero + theorem MeasureTheory.Measure.volume_subtype_coe_le_volume + theorem MeasureTheory.NullMeasurable.measure_preimage_eq_measure_restrict_preimage_of_ae_compl_eq_const + theorem MeasureTheory.ae_add_measure_iff + theorem MeasureTheory.ae_eq_comp' + theorem MeasureTheory.ae_eq_comp + theorem MeasureTheory.ae_eq_restrict_biUnion_finset_iff + theorem MeasureTheory.ae_eq_restrict_biUnion_iff + theorem MeasureTheory.ae_eq_restrict_iUnion_iff + theorem MeasureTheory.ae_eventually_not_mem + theorem MeasureTheory.ae_imp_of_ae_restrict + theorem MeasureTheory.ae_of_ae_restrict_of_ae_restrict_compl + theorem MeasureTheory.ae_restrict_biUnion_eq + theorem MeasureTheory.ae_restrict_biUnion_finset_eq + theorem MeasureTheory.ae_restrict_biUnion_finset_iff + theorem MeasureTheory.ae_restrict_biUnion_iff + theorem MeasureTheory.ae_restrict_congr_set + theorem MeasureTheory.ae_restrict_eq + theorem MeasureTheory.ae_restrict_eq_bot + theorem MeasureTheory.ae_restrict_iUnion_eq + theorem MeasureTheory.ae_restrict_iUnion_iff + theorem MeasureTheory.ae_restrict_iff' + theorem MeasureTheory.ae_restrict_iff'₀ + theorem MeasureTheory.ae_restrict_iff + theorem MeasureTheory.ae_restrict_mem + theorem MeasureTheory.ae_restrict_mem₀ + theorem MeasureTheory.ae_restrict_neBot + theorem MeasureTheory.ae_restrict_of_ae + theorem MeasureTheory.ae_restrict_of_ae_eq_of_ae_restrict + theorem MeasureTheory.ae_restrict_of_ae_restrict_of_subset + theorem MeasureTheory.ae_restrict_uIoc_eq + theorem MeasureTheory.ae_restrict_uIoc_iff + theorem MeasureTheory.ae_restrict_union_eq + theorem MeasureTheory.ae_restrict_union_iff + theorem MeasureTheory.ae_smul_measure + theorem MeasureTheory.le_ae_restrict + theorem MeasureTheory.measure_setOf_frequently_eq_zero + theorem MeasureTheory.mem_map_restrict_ae_iff + theorem MeasureTheory.self_mem_ae_restrict + theorem MeasureTheory.sub_ae_eq_zero + theorem ae_eq_restrict_iff_indicator_ae_eq + theorem ae_restrict_iff_subtype + theorem comap_subtype_coe_apply + theorem indicator_ae_eq_of_ae_eq_set + theorem indicator_ae_eq_of_restrict_compl_ae_eq_zero + theorem indicator_ae_eq_restrict + theorem indicator_ae_eq_restrict_compl + theorem indicator_ae_eq_zero_of_restrict_ae_eq_zero + theorem indicator_meas_zero + theorem map_comap_subtype_coe + theorem map_restrict_ae_le_map_indicator_ae + theorem mem_map_indicator_ae_iff_mem_map_restrict_ae_of_zero_mem + theorem mem_map_indicator_ae_iff_of_zero_nmem + theorem piecewise_ae_eq_of_ae_eq_set + theorem piecewise_ae_eq_restrict + theorem piecewise_ae_eq_restrict_compl + theorem volume_image_subtype_coe + theorem volume_preimage_coe + theorem volume_set_coe_def Modified Mathlib/MeasureTheory/Measure/Sub.lean Modified Mathlib/MeasureTheory/Measure/Trim.lean Added Mathlib/MeasureTheory/Measure/Typeclasses.lean + theorem Bornology.IsBounded.measure_lt_top + theorem Finset.measure_zero + theorem IsCompact.exists_open_superset_measure_lt_top' + theorem IsCompact.exists_open_superset_measure_lt_top + theorem IsCompact.measure_lt_top + theorem IsCompact.measure_lt_top_of_nhdsWithin + theorem IsCompact.measure_zero_of_nhdsWithin + theorem MeasurableEquiv.sigmaFinite_map + theorem MeasureTheory.Ico_ae_eq_Icc + theorem MeasureTheory.Ico_ae_eq_Ioc + theorem MeasureTheory.Iio_ae_eq_Iic + theorem MeasureTheory.Ioc_ae_eq_Icc + theorem MeasureTheory.Ioi_ae_eq_Ici + theorem MeasureTheory.Ioo_ae_eq_Icc + theorem MeasureTheory.Ioo_ae_eq_Ico + theorem MeasureTheory.Ioo_ae_eq_Ioc + theorem MeasureTheory.IsProbabilityMeasure.ae_neBot + theorem MeasureTheory.IsProbabilityMeasure.ne_zero + theorem MeasureTheory.Measure.FiniteAtFilter.exists_mem_basis + theorem MeasureTheory.Measure.FiniteAtFilter.filterSup + theorem MeasureTheory.Measure.FiniteAtFilter.filter_mono + theorem MeasureTheory.Measure.FiniteAtFilter.filter_mono_ae + theorem MeasureTheory.Measure.FiniteAtFilter.inf_ae_iff + theorem MeasureTheory.Measure.FiniteAtFilter.inf_of_left + theorem MeasureTheory.Measure.FiniteAtFilter.inf_of_right + def MeasureTheory.Measure.FiniteAtFilter + theorem MeasureTheory.Measure.FiniteSpanningSetsIn.disjointed_set_eq + def MeasureTheory.Measure.FiniteSpanningSetsIn.ofLE + structure MeasureTheory.Measure.FiniteSpanningSetsIn + theorem MeasureTheory.Measure.add_left_inj + theorem MeasureTheory.Measure.add_right_inj + theorem MeasureTheory.Measure.countable_meas_level_set_pos + theorem MeasureTheory.Measure.countable_meas_level_set_pos₀ + theorem MeasureTheory.Measure.countable_meas_pos_of_disjoint_iUnion + theorem MeasureTheory.Measure.countable_meas_pos_of_disjoint_iUnion₀ + theorem MeasureTheory.Measure.countable_meas_pos_of_disjoint_of_meas_iUnion_ne_top + theorem MeasureTheory.Measure.countable_meas_pos_of_disjoint_of_meas_iUnion_ne_top₀ + theorem MeasureTheory.Measure.exists_eq_disjoint_finiteSpanningSetsIn + theorem MeasureTheory.Measure.exists_isOpen_measure_lt_top + theorem MeasureTheory.Measure.exists_measure_inter_spanningSets_pos + theorem MeasureTheory.Measure.exists_subset_measure_lt_top + theorem MeasureTheory.Measure.finiteAtBot + theorem MeasureTheory.Measure.finiteAtFilter_of_finite + theorem MeasureTheory.Measure.finiteAt_nhds + theorem MeasureTheory.Measure.finiteAt_nhdsWithin + theorem MeasureTheory.Measure.finiteAt_principal + def MeasureTheory.Measure.finiteSpanningSetsInCompact + def MeasureTheory.Measure.finiteSpanningSetsInOpen + theorem MeasureTheory.Measure.finite_const_le_meas_of_disjoint_iUnion + theorem MeasureTheory.Measure.finite_const_le_meas_of_disjoint_iUnion₀ + theorem MeasureTheory.Measure.forall_measure_inter_spanningSets_eq_zero + theorem MeasureTheory.Measure.iSup_restrict_spanningSets + theorem MeasureTheory.Measure.isFiniteMeasure_map + theorem MeasureTheory.Measure.isLocallyFiniteMeasure_of_le + theorem MeasureTheory.Measure.le_of_add_le_add_left + theorem MeasureTheory.Measure.measure_toMeasurable_inter_of_cover + theorem MeasureTheory.Measure.measure_toMeasurable_inter_of_sigmaFinite + theorem MeasureTheory.Measure.restrict_singleton' + theorem MeasureTheory.Measure.restrict_toMeasurable_of_cover + theorem MeasureTheory.Measure.restrict_toMeasurable_of_sigmaFinite + theorem MeasureTheory.Measure.sigmaFinite_of_countable + theorem MeasureTheory.Measure.sigmaFinite_of_le + theorem MeasureTheory.Measure.smul_finite + def MeasureTheory.Measure.toFiniteSpanningSetsIn + theorem MeasureTheory.SigmaFinite.of_map + theorem MeasureTheory.SigmaFinite.out + theorem MeasureTheory.abs_toReal_measure_sub_le_measure_symmDiff' + theorem MeasureTheory.abs_toReal_measure_sub_le_measure_symmDiff + theorem MeasureTheory.ae_eq_univ_iff_measure_eq + theorem MeasureTheory.ae_iff_measure_eq + theorem MeasureTheory.ae_mem_iff_measure_eq + theorem MeasureTheory.ae_of_forall_measure_lt_top_ae_restrict' + theorem MeasureTheory.ae_of_forall_measure_lt_top_ae_restrict + theorem MeasureTheory.coe_measureUnivNNReal + theorem MeasureTheory.eventually_mem_spanningSets + theorem MeasureTheory.exists_mem_forall_mem_nhdsWithin_pos_measure + theorem MeasureTheory.exists_ne_forall_mem_nhds_pos_measure_preimage + theorem MeasureTheory.exists_pos_ball + theorem MeasureTheory.exists_pos_measure_of_cover + theorem MeasureTheory.exists_pos_preimage_ball + theorem MeasureTheory.ext_of_generate_finite + theorem MeasureTheory.ext_on_measurableSpace_of_generate_finite + theorem MeasureTheory.iUnion_spanningSets + theorem MeasureTheory.insert_ae_eq_self + theorem MeasureTheory.isCountablySpanning_spanningSets + theorem MeasureTheory.isFiniteMeasure_of_le + theorem MeasureTheory.isProbabilityMeasure_map + theorem MeasureTheory.ite_ae_eq_of_measure_compl_zero + theorem MeasureTheory.ite_ae_eq_of_measure_zero + theorem MeasureTheory.measurable_spanningSets + theorem MeasureTheory.measurable_spanningSetsIndex + def MeasureTheory.measureUnivNNReal + theorem MeasureTheory.measureUnivNNReal_eq_zero + theorem MeasureTheory.measureUnivNNReal_pos + theorem MeasureTheory.measureUnivNNReal_zero + theorem MeasureTheory.measure_ball_lt_top + theorem MeasureTheory.measure_closedBall_lt_top + theorem MeasureTheory.measure_compl_le_add_iff + theorem MeasureTheory.measure_compl_le_add_of_le_add + theorem MeasureTheory.measure_lt_top + theorem MeasureTheory.measure_ne_top + theorem MeasureTheory.measure_spanningSets_lt_top + theorem MeasureTheory.mem_disjointed_spanningSetsIndex + theorem MeasureTheory.mem_spanningSetsIndex + theorem MeasureTheory.mem_spanningSets_of_index_le + theorem MeasureTheory.monotone_spanningSets + theorem MeasureTheory.not_isFiniteMeasure_iff + theorem MeasureTheory.null_of_locally_null + theorem MeasureTheory.one_le_prob_iff + theorem MeasureTheory.preimage_spanningSetsIndex_singleton + theorem MeasureTheory.prob_add_prob_compl + theorem MeasureTheory.prob_compl_eq_one_iff + theorem MeasureTheory.prob_compl_eq_one_sub + theorem MeasureTheory.prob_compl_eq_zero_iff + theorem MeasureTheory.prob_le_one + theorem MeasureTheory.restrict_Ico_eq_restrict_Icc + theorem MeasureTheory.restrict_Ico_eq_restrict_Ioc + theorem MeasureTheory.restrict_Iio_eq_restrict_Iic + theorem MeasureTheory.restrict_Ioc_eq_restrict_Icc + theorem MeasureTheory.restrict_Ioi_eq_restrict_Ici + theorem MeasureTheory.restrict_Ioo_eq_restrict_Icc + theorem MeasureTheory.restrict_Ioo_eq_restrict_Ico + theorem MeasureTheory.restrict_Ioo_eq_restrict_Ioc + theorem MeasureTheory.restrict_compl_singleton + theorem MeasureTheory.sigmaFinite_bot_iff + theorem MeasureTheory.sigmaFinite_iff + def MeasureTheory.spanningSets + theorem MeasureTheory.spanningSetsIndex_eq_iff + theorem MeasureTheory.summable_measure_toReal + theorem MeasureTheory.uIoc_ae_eq_interval + theorem Set.Countable.ae_not_mem + theorem Set.Countable.measure_restrict_compl + theorem Set.Countable.measure_zero + theorem Set.Finite.measure_zero + theorem Set.Infinite.meas_eq_top + theorem Set.Subsingleton.measure_zero + theorem isFiniteMeasure_iff_isFiniteMeasureOnCompacts_of_compactSpace + theorem measure_Icc_lt_top + theorem measure_Ico_lt_top + theorem measure_Ioc_lt_top + theorem measure_Ioo_lt_top Modified Mathlib/MeasureTheory/Measure/VectorMeasure.lean Modified Mathlib/Probability/ConditionalProbability.lean 2023-11-13 16:05:10 aa0957f fix(Mathlib/Analysis/NormedSpace/AddTorsor): remove bad simp lemma (#8387) This didn't actually work with `simp`, as the RHS needs a `𝕜` that can't be guessed. ESTIMATED CHANGES Modified Mathlib/Analysis/NormedSpace/AddTorsor.lean +/- theorem dist_pointReflection_right +/- theorem dist_right_pointReflection 2023-11-13 13:49:23 d030880 chore: suppress compilation in `NormedSpace.Multilinear` (#8382) ESTIMATED CHANGES Modified Mathlib/Analysis/NormedSpace/Multilinear.lean 2023-11-13 13:49:22 022c683 chore: disable global instance `Subtype.measureSpace` (#8381) Currently, a subtype of a `MeasureSpace` has a `MeasureSpace` instance, obtained by restricting the initial measure. There are however other reasonable constructions, like the normalized restriction for a probability measure, or the subspace measure when restricting to a vector subspace. We disable the global instance `Subtype.measureSpace` to make these other choices possible, as discussed [on Zulip](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/MeasureSpace.20instance.20on.20Subtype/near/395920337). It turns out that this instance was duplicated in `SetCoe.measureSpace`, so we delete the other one. ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Integral/Bochner.lean Modified Mathlib/MeasureTheory/Integral/Periodic.lean Modified Mathlib/MeasureTheory/Measure/MeasureSpace.lean + def MeasureTheory.Measure.Subtype.measureSpace 2023-11-13 12:59:34 5c23e7f fix: remove unused arguments (#8380) These are split from #8226 (and subsequent changes in #8366), and arise from the fact the latest Lean is better at detecting these due to better abstraction. I can't comment on whether any of these should be concerning, but putting them in a small commit makes it easier for someone to find and review them later. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Limits/FintypeCat.lean Modified Mathlib/CategoryTheory/Preadditive/Injective.lean Modified Mathlib/CategoryTheory/Preadditive/Projective.lean Modified Mathlib/CategoryTheory/Sites/RegularExtensive.lean +/- def CategoryTheory.EqualizerSecondObjIso Modified Mathlib/GroupTheory/GroupAction/DomAct/Basic.lean Modified Mathlib/MeasureTheory/Decomposition/Lebesgue.lean +/- theorem MeasureTheory.Measure.rnDeriv_singularPart Modified Mathlib/Topology/Category/Profinite/Nobeling.lean +/- def Profinite.NobelingProof.spanCone_isLimit Modified Mathlib/Topology/Category/Profinite/Product.lean +/- def Profinite.asLimitindexConeIso +/- def Profinite.indexCone_isLimit +/- def Profinite.isoindexConeLift Modified Mathlib/Topology/Order/Basic.lean 2023-11-13 12:15:53 1ec654b feat: add four lemmas on topological sums (#8325) This adds four API lemmas that are useful for establishing Euler products: ```lean @[simp] lemma hasSum_unique [Unique β] (f : β → α) : HasSum f (f default) @[simp] lemma hasSum_singleton (m : β) (f : β → α) : HasSum (({m} : Set β).restrict f) (f m) lemma tsum_setElem_eq_tsum_setElem_diff [T2Space α] {f : β → α} (s t : Set β) (hf₀ : ∀ b ∈ t, f b = 0) : ∑' a : s, f a = ∑' a : (s \ t : Set β), f a lemma tsum_eq_tsum_diff_singleton {α β : Type*} [AddCommMonoid α] [TopologicalSpace α] [T2Space α] {f : β → α} (s : Set β) (b : β) (hf₀ : f b = 0) : ∑' a : s, f a = ∑' a : (s \ {b} : Set β), f a ``` ESTIMATED CHANGES Modified Mathlib/Topology/Algebra/InfiniteSum/Basic.lean + theorem hasSum_singleton + theorem hasSum_unique + theorem tsum_eq_tsum_diff_singleton + theorem tsum_setElem_eq_tsum_setElem_diff 2023-11-13 11:26:23 15ce6b6 feat(Algebra/DirectSum/Decomposition): some convenience API (#8374) ESTIMATED CHANGES Modified Mathlib/Algebra/DirectSum/Decomposition.lean 2023-11-13 11:26:22 c289678 feat: in finite dimensions, if a linear endomorphism is triangularizable, so is its restriction to any invariant submodule (#8212) ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/Eigenspace/Triangularizable.lean + theorem Module.End.iSup_generalizedEigenspace_restrict_eq_top + theorem Submodule.eq_iSup_inf_generalizedEigenspace + theorem Submodule.inf_iSup_generalizedEigenspace 2023-11-13 10:29:06 a5f8409 feat(CategoryTheory/Sites): the topology on Over categories (#8329) Given a Grothendieck topology on a category `C`, this PR constructs the induced Grothendieck topology on the category `Over X` for any `X : C`. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Sites/Over.lean + theorem CategoryTheory.GrothendieckTopology.mem_over_iff + def CategoryTheory.GrothendieckTopology.over + theorem CategoryTheory.GrothendieckTopology.overEquiv_symm_mem_over + theorem CategoryTheory.GrothendieckTopology.over_forget_compatiblePreserving + theorem CategoryTheory.GrothendieckTopology.over_forget_coverLifting + theorem CategoryTheory.GrothendieckTopology.over_forget_coverPreserving + def CategoryTheory.Sieve.overEquiv + theorem CategoryTheory.Sieve.overEquiv_iff + theorem CategoryTheory.Sieve.overEquiv_pullback + theorem CategoryTheory.Sieve.overEquiv_symm_iff + theorem CategoryTheory.Sieve.overEquiv_symm_top + theorem CategoryTheory.Sieve.overEquiv_top 2023-11-13 10:29:04 b0be9aa feat(CategoryTheory): more properties of exact sequences (#8159) The basic API of exact sequences in developed in this PR. As a result, the snake lemma can be formulated as a 6-term exact sequence. ESTIMATED CHANGES Modified Mathlib/Algebra/Homology/ExactSequence.lean + theorem CategoryTheory.ComposableArrows.exact_iff_δ₀ + theorem CategoryTheory.ComposableArrows.exact_of_δ₀ + theorem CategoryTheory.ComposableArrows.exact₀ + theorem CategoryTheory.ComposableArrows.exact₁ + theorem CategoryTheory.ComposableArrows.exact₂_iff + theorem CategoryTheory.ComposableArrows.exact₂_mk + theorem CategoryTheory.ComposableArrows.isComplex₂_iff + theorem CategoryTheory.ComposableArrows.isComplex₂_mk + theorem CategoryTheory.ShortComplex.Exact.exact_toComposableArrows + theorem CategoryTheory.ShortComplex.exact_iff_exact_toComposableArrows + theorem CategoryTheory.ShortComplex.isComplex_toComposableArrows Modified Mathlib/Algebra/Homology/ShortComplex/SnakeLemma.lean + theorem CategoryTheory.ShortComplex.SnakeInput.snake_lemma Modified Mathlib/CategoryTheory/ComposableArrows.lean + def CategoryTheory.ComposableArrows.mk₄ + def CategoryTheory.ComposableArrows.mk₅ 2023-11-13 10:03:11 87b37fc feat: simplify proof of `spectrum.nonempty` using the cobounded filter (#8246) This uses the API developed in these recent PRs (for the cobounded filter and some corollaries to Liouville's theorem) to greatly simplify the proof of `spectrum.nonempty`. Previously, this depended on the technical lemma `spectrum.norm_resolvent_le_forall`, and now we instead prove the greatly simplified `spectrum.resolvent_isBigO_inv` and `spectrum.resolvent_tendsto_cobounded`. - [ ] depends on: #8234 - [ ] depends on: #8244 ESTIMATED CHANGES Modified Mathlib/Analysis/NormedSpace/Spectrum.lean + theorem spectrum.eventually_isUnit_resolvent - theorem spectrum.norm_resolvent_le_forall + theorem spectrum.resolvent_isBigO_inv + theorem spectrum.resolvent_tendsto_cobounded 2023-11-13 09:12:38 295f071 feat: in a sigma-finite space, `withDensity f s` is the integral of `f` over `s` even if `s` is not measurable (#8377) ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Decomposition/RadonNikodym.lean Modified Mathlib/MeasureTheory/Measure/WithDensity.lean + theorem MeasureTheory.withDensity_apply' + theorem MeasureTheory.withDensity_apply_le 2023-11-13 08:38:42 b67998a chore: remove redundant coercion in SlashInvariantForms (#8376) This coercion is redundant with one already available via a FunLike instance. It's not actually particularly significant by itself, but it is shows up in many typeclass search traces, and because it comes first, obscures more serious problems! ESTIMATED CHANGES Modified Mathlib/NumberTheory/ModularForms/SlashInvariantForms.lean 2023-11-13 07:42:20 43e3265 chore: split Data.Real.Basic (#8356) ESTIMATED CHANGES Modified Archive/Imo/Imo2005Q3.lean Modified Archive/Imo/Imo2008Q2.lean Modified Archive/Imo/Imo2011Q3.lean Modified Archive/Imo/Imo2013Q5.lean Modified Archive/Wiedijk100Theorems/CubingACube.lean Modified Archive/Wiedijk100Theorems/InverseTriangleSum.lean Modified Mathlib.lean Modified Mathlib/Analysis/Convex/Cone/Basic.lean Added Mathlib/Data/Real/Archimedean.lean + theorem Real.add_neg_lt_sSup + theorem Real.cauSeq_converges + theorem Real.ciInf_const_zero + theorem Real.ciInf_empty + theorem Real.ciSup_const_zero + theorem Real.ciSup_empty + theorem Real.exists_floor + theorem Real.exists_isLUB + theorem Real.iInf_Ioi_eq_iInf_rat_gt + theorem Real.iInf_nonneg + theorem Real.iInf_of_not_bddBelow + theorem Real.iSup_of_not_bddAbove + theorem Real.isCauSeq_iff_lift + theorem Real.le_sSup_iff + theorem Real.lt_sInf_add_pos + theorem Real.of_near + theorem Real.sInf_def + theorem Real.sInf_empty + theorem Real.sInf_le_iff + theorem Real.sInf_le_sSup + theorem Real.sInf_nonneg + theorem Real.sInf_nonpos + theorem Real.sInf_of_not_bddBelow + theorem Real.sSup_def + theorem Real.sSup_empty + theorem Real.sSup_nonneg + theorem Real.sSup_nonpos + theorem Real.sSup_of_not_bddAbove + theorem Real.sSup_univ Modified Mathlib/Data/Real/Basic.lean - theorem Real.add_neg_lt_sSup - theorem Real.cauSeq_converges - theorem Real.ciInf_const_zero - theorem Real.ciInf_empty - theorem Real.ciSup_const_zero - theorem Real.ciSup_empty - theorem Real.exists_floor - theorem Real.exists_isLUB - theorem Real.iInf_Ioi_eq_iInf_rat_gt - theorem Real.iInf_nonneg - theorem Real.iInf_of_not_bddBelow - theorem Real.iSup_of_not_bddAbove - theorem Real.isCauSeq_iff_lift - theorem Real.le_sSup_iff - theorem Real.lt_sInf_add_pos - theorem Real.of_near - theorem Real.sInf_def - theorem Real.sInf_empty - theorem Real.sInf_le_iff - theorem Real.sInf_le_sSup - theorem Real.sInf_nonneg - theorem Real.sInf_nonpos - theorem Real.sInf_of_not_bddBelow - theorem Real.sSup_def - theorem Real.sSup_empty - theorem Real.sSup_nonneg - theorem Real.sSup_nonpos - theorem Real.sSup_of_not_bddAbove - theorem Real.sSup_univ Modified Mathlib/Data/Real/Pointwise.lean Modified Mathlib/NumberTheory/ClassNumber/AdmissibleAbs.lean 2023-11-13 07:42:19 771e087 chore: Generalise lemmas from finite groups to torsion elements (#8342) Many lemmas in `GroupTheory.OrderOfElement` were stated for elements of finite groups even though they work more generally for torsion elements of possibly infinite groups. This PR generalises those lemmas (and leaves convenience lemmas stated for finite groups), and fixes a bunch of names to use dot notation. ## Renames * `Function.eq_of_lt_minimalPeriod_of_iterate_eq` → `Function.iterate_injOn_Iio_minimalPeriod` * `Function.eq_iff_lt_minimalPeriod_of_iterate_eq` → `Function.iterate_eq_iterate_iff_of_lt_minimalPeriod` * `isOfFinOrder_iff_coe` → `Submonoid.isOfFinOrder_coe` * `orderOf_pos'` → `IsOfFinOrder.orderOf_pos` * `pow_eq_mod_orderOf` → `pow_mod_orderOf` (and turned around) * `pow_injective_of_lt_orderOf` → `pow_injOn_Iio_orderOf` * `mem_powers_iff_mem_range_order_of'` → `IsOfFinOrder.mem_powers_iff_mem_range_orderOf` * `orderOf_pow''` → `IsOfFinOrder.orderOf_pow` * `orderOf_pow_coprime` → `Nat.Coprime.orderOf_pow` * `zpow_eq_mod_orderOf` → `zpow_mod_orderOf` (and turned around) * `exists_pow_eq_one` → `isOfFinOrder_of_finite` * `pow_apply_eq_pow_mod_orderOf_cycleOf_apply` → `pow_mod_orderOf_cycleOf_apply` ## New lemmas * `IsOfFinOrder.powers_eq_image_range_orderOf` * `IsOfFinOrder.natCard_powers_le_orderOf` * `IsOfFinOrder.finite_powers` * `finite_powers` * `infinite_powers` * `Nat.card_submonoidPowers` * `IsOfFinOrder.mem_powers_iff_mem_zpowers` * `IsOfFinOrder.powers_eq_zpowers` * `IsOfFinOrder.mem_zpowers_iff_mem_range_orderOf` * `IsOfFinOrder.exists_pow_eq_one` ## Other changes * Move `decidableMemPowers`/`fintypePowers` to `GroupTheory.Submonoid.Membership` and `decidableMemZpowers`/`fintypeZpowers` to `GroupTheory.Subgroup.ZPowers`. * `finEquivPowers`, `finEquivZpowers`, `powersEquivPowers` and `zpowersEquivZpowers` now assume `IsOfFinTorsion x` instead of `Finite G`. * `isOfFinOrder_iff_pow_eq_one` now takes one less explicit argument. * Delete `Equiv.Perm.IsCycle.exists_pow_eq_one` since it was saying that a permutation over a finite type is torsion, but this is trivial since the group of permutation is itself finite, so we can use `isOfFinOrder_of_finite` instead. ESTIMATED CHANGES Modified Mathlib/Algebra/Module/Torsion.lean Modified Mathlib/Dynamics/PeriodicPts.lean - theorem Function.eq_iff_lt_minimalPeriod_of_iterate_eq - theorem Function.eq_of_lt_minimalPeriod_of_iterate_eq + theorem Function.iterate_eq_iterate_iff_of_lt_minimalPeriod + theorem Function.iterate_injOn_Iio_minimalPeriod +/- theorem Function.minimalPeriod_id Modified Mathlib/GroupTheory/Exponent.lean Modified Mathlib/GroupTheory/OrderOfElement.lean + theorem IsOfFinOrder.finite_powers - theorem IsOfFinOrder.inv + theorem IsOfFinOrder.mem_powers_iff_mem_zpowers + theorem IsOfFinOrder.mem_zpowers_iff_mem_range_orderOf + theorem IsOfFinOrder.natCard_powers_le_orderOf + theorem IsOfFinOrder.powers_eq_zpowers + theorem Nat.Coprime.orderOf_pow + theorem Nat.card_submonoidPowers + theorem Submonoid.isOfFinOrder_coe - theorem exists_pow_eq_one +/- theorem exists_zpow_eq_one +/- theorem finEquivPowers_apply +/- theorem finEquivPowers_symm_apply +/- theorem finEquivZpowers_apply +/- theorem finEquivZpowers_symm_apply + theorem finite_powers + theorem infinite_powers +/- theorem injective_pow_iff_not_isOfFinOrder - theorem isOfFinOrder_iff_coe +/- theorem isOfFinOrder_iff_pow_eq_one +/- theorem isOfFinOrder_inv_iff +/- theorem isOfFinOrder_ofAdd_iff + theorem isOfFinOrder_of_finite +/- theorem mem_powers_iff_mem_range_orderOf - theorem mem_powers_iff_mem_range_order_of' +/- theorem mem_powers_iff_mem_zpowers +/- theorem mem_zpowers_iff_mem_range_orderOf +/- theorem orderOf_eq_card_powers +/- theorem orderOf_ofAdd_eq_addOrderOf - theorem orderOf_pos' +/- theorem orderOf_pos - theorem orderOf_pow'' +/- theorem orderOf_pow - theorem orderOf_pow_coprime - theorem pow_eq_mod_orderOf + theorem pow_injOn_Iio_orderOf +/- theorem pow_inj_mod - theorem pow_injective_of_lt_orderOf + theorem pow_mod_orderOf +/- theorem powersEquivPowers_apply +/- theorem powers_eq_zpowers - theorem zpow_eq_mod_orderOf + theorem zpow_mod_orderOf +/- theorem zpowersEquivZpowers_apply Modified Mathlib/GroupTheory/Perm/Cycle/Basic.lean - theorem Equiv.Perm.IsCycle.exists_pow_eq_one - theorem Equiv.Perm.pow_apply_eq_pow_mod_orderOf_cycleOf_apply + theorem Equiv.Perm.pow_mod_orderOf_cycleOf_apply Modified Mathlib/GroupTheory/Perm/Cycle/Concrete.lean Modified Mathlib/GroupTheory/SpecificGroups/Cyclic.lean Modified Mathlib/GroupTheory/Subgroup/ZPowers.lean Modified Mathlib/GroupTheory/Submonoid/Membership.lean Modified Mathlib/GroupTheory/Torsion.lean Modified Mathlib/MeasureTheory/Group/AddCircle.lean Modified Mathlib/NumberTheory/NumberField/Units.lean Modified Mathlib/NumberTheory/WellApproximable.lean Modified Mathlib/RingTheory/IntegralDomain.lean Modified Mathlib/RingTheory/Polynomial/Cyclotomic/Roots.lean Modified Mathlib/RingTheory/RootsOfUnity/Basic.lean Modified Mathlib/Topology/Instances/AddCircle.lean 2023-11-13 07:42:17 6924ba8 chore: Fix name of `Nat.card_mono` (#8340) This was accidentally put in the `PartENat` namespace in #8202. Also add `Set.Infinite.card_eq_zero` and fix capitalisation errors. ESTIMATED CHANGES Modified Mathlib/SetTheory/Cardinal/Finite.lean + theorem Nat.card_mono - theorem PartENat.card_mono - theorem PartENat.card_pLift + theorem PartENat.card_plift - theorem PartENat.card_uLift + theorem PartENat.card_ulift + theorem Set.Infinite.card_eq_zero 2023-11-13 06:59:23 6eb9f7b chore(InfiniteSum): use dot notation (#8358) ## Rename - `summable_of_norm_bounded` -> `Summable.of_norm_bounded`; - `summable_of_norm_bounded_eventually` -> `Summable.of_norm_bounded_eventually`; - `summable_of_nnnorm_bounded` -> `Summable.of_nnnorm_bounded`; - `summable_of_summable_norm` -> `Summable.of_norm`; - `summable_of_summable_nnnorm` -> `Summable.of_nnnorm`; ## New lemmas - `Summable.of_norm_bounded_eventually_nat` - `Summable.norm` ## Misc changes - Golf a few proofs. ESTIMATED CHANGES Modified Mathlib/Analysis/Analytic/Basic.lean Modified Mathlib/Analysis/Asymptotics/Asymptotics.lean Modified Mathlib/Analysis/Calculus/BumpFunction/FiniteDimension.lean Modified Mathlib/Analysis/Calculus/Series.lean Modified Mathlib/Analysis/Fourier/AddCircle.lean Modified Mathlib/Analysis/InnerProductSpace/l2Space.lean Modified Mathlib/Analysis/Normed/Field/InfiniteSum.lean Modified Mathlib/Analysis/Normed/Group/InfiniteSum.lean + theorem Summable.of_nnnorm + theorem Summable.of_nnnorm_bounded + theorem Summable.of_norm + theorem Summable.of_norm_bounded + theorem Summable.of_norm_bounded_eventually + theorem Summable.of_norm_bounded_eventually_nat - theorem summable_of_nnnorm_bounded - theorem summable_of_norm_bounded - theorem summable_of_norm_bounded_eventually - theorem summable_of_summable_nnnorm - theorem summable_of_summable_norm Modified Mathlib/Analysis/NormedSpace/Banach.lean Modified Mathlib/Analysis/NormedSpace/Exponential.lean Modified Mathlib/Analysis/NormedSpace/FiniteDimension.lean Modified Mathlib/Analysis/NormedSpace/Spectrum.lean Modified Mathlib/Analysis/NormedSpace/lpSpace.lean Modified Mathlib/Analysis/SpecialFunctions/Log/Deriv.lean Modified Mathlib/Analysis/SpecificLimits/Basic.lean Modified Mathlib/Analysis/SpecificLimits/Normed.lean Modified Mathlib/MeasureTheory/Decomposition/SignedHahn.lean Modified Mathlib/MeasureTheory/Function/LpSpace.lean Modified Mathlib/MeasureTheory/Integral/Bochner.lean Modified Mathlib/MeasureTheory/Integral/IntervalIntegral.lean Modified Mathlib/MeasureTheory/Integral/SetIntegral.lean Modified Mathlib/MeasureTheory/Measure/Lebesgue/Integral.lean Modified Mathlib/MeasureTheory/Measure/VectorMeasure.lean Modified Mathlib/NumberTheory/LSeries.lean Modified Mathlib/NumberTheory/ModularForms/JacobiTheta/Basic.lean Modified Mathlib/NumberTheory/ZetaFunction.lean Modified Mathlib/NumberTheory/ZetaValues.lean Modified Mathlib/Topology/ContinuousFunction/Compact.lean Modified Mathlib/Topology/Instances/ENNReal.lean + theorem Summable.of_nonneg_of_le - theorem summable_of_nonneg_of_le Modified Mathlib/Topology/MetricSpace/PiNat.lean Modified docs/overview.yaml Modified docs/undergrad.yaml 2023-11-12 23:30:52 30d39f9 fix(LinearAlgebra/{Free,Tensor,Clifford}Algebra): remove an unused `SMulCommClass` argument (#8373) `SMulCommClass R S A` is always true when `Algebra R A` and `Algebra S A` and `A` is commutative, since the two actions factor via multiplication in `A`. I don't think mathlib actually knows this fact yet, but in this particular case it's also true by definition. ESTIMATED CHANGES Modified Mathlib/Algebra/FreeAlgebra.lean Modified Mathlib/LinearAlgebra/CliffordAlgebra/Basic.lean Modified Mathlib/LinearAlgebra/TensorAlgebra/Basic.lean 2023-11-12 23:30:51 4cb02b4 feat: add aesop attribute to Nat.not_prime_one (#8332) @**Yaël Dillies**'s recent proof at #8164 uses `aesop` in a way that relies on `simp` using `decide := true` by default, which we have now disabled, and hence this breaks on `nightly-testing`. I propose we add `@[aesop safe destruct]` to `Nat.not_prime_one` (and `Nat.not_prime_zero` while we're there). ESTIMATED CHANGES Modified Mathlib/Data/Nat/Prime.lean +/- theorem Nat.not_prime_one +/- theorem Nat.not_prime_zero 2023-11-12 22:21:22 9c97b76 refactor: add explicit equation lemmas for `comp` and `flip` (#8371) This will mostly be a no-op in the current version of Lean, but will override the new behavior from leanprover/lean4#2783. Once consequence of this is that `rw [comp]` no longer uses "smart unfolding"; it introduces a non-beta reduced term if the composition was applied. As a result, these places need to use `rw [comp_apply]` instead. My claim is that this is no big deal. This is split from the lean bump PR #8023, targeting master, to make clear what the fallout is. ESTIMATED CHANGES Modified Archive/Wiedijk100Theorems/CubingACube.lean Modified Mathlib/Algebra/Category/ModuleCat/ChangeOfRings.lean Modified Mathlib/Data/Fin/Tuple/Basic.lean Modified Mathlib/Data/MvPolynomial/Rename.lean Modified Mathlib/Init/Function.lean + theorem Function.flip_def Modified Mathlib/NumberTheory/NumberField/Discriminant.lean Modified Mathlib/Topology/UniformSpace/AbstractCompletion.lean 2023-11-12 21:46:02 ace6e09 perf(AlgebraicGeometry): Fix slow and bad proofs (#7747) Fixed `AlgebraicGeometry/AffineSchemes.lean`, `AlgebraicGeometry/Morphisms/QuasiSeparated.lean` and `AlgebraicGeometry/Morphisms/RingHomProperties.lean`. ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/Equiv.lean + theorem AlgEquiv.toRingEquiv_toRingHom Modified Mathlib/AlgebraicGeometry/AffineScheme.lean +/- theorem AlgebraicGeometry.IsAffineOpen.SpecΓIdentity_hom_app_fromSpec +/- theorem AlgebraicGeometry.IsAffineOpen.basicOpenIsAffine + def AlgebraicGeometry.IsAffineOpen.basicOpenSectionsToAffine + theorem AlgebraicGeometry.IsAffineOpen.basicOpen_basicOpen_is_basicOpen +/- theorem AlgebraicGeometry.IsAffineOpen.basicOpen_fromSpec_app +/- theorem AlgebraicGeometry.IsAffineOpen.basicOpen_union_eq_self_iff +/- theorem AlgebraicGeometry.IsAffineOpen.exists_basicOpen_le +/- def AlgebraicGeometry.IsAffineOpen.fromSpec - theorem AlgebraicGeometry.IsAffineOpen.fromSpec_app_eq + theorem AlgebraicGeometry.IsAffineOpen.fromSpec_app_self +/- theorem AlgebraicGeometry.IsAffineOpen.fromSpec_base_preimage +/- theorem AlgebraicGeometry.IsAffineOpen.fromSpec_image_top + theorem AlgebraicGeometry.IsAffineOpen.fromSpec_map_basicOpen' +/- theorem AlgebraicGeometry.IsAffineOpen.fromSpec_map_basicOpen +/- theorem AlgebraicGeometry.IsAffineOpen.fromSpec_primeIdealOf +/- theorem AlgebraicGeometry.IsAffineOpen.fromSpec_range +/- theorem AlgebraicGeometry.IsAffineOpen.imageIsOpenImmersion - theorem AlgebraicGeometry.IsAffineOpen.isCompact + theorem AlgebraicGeometry.IsAffineOpen.isLocalization_basicOpen + theorem AlgebraicGeometry.IsAffineOpen.isLocalization_of_eq_basicOpen +/- theorem AlgebraicGeometry.IsAffineOpen.isLocalization_stalk' +/- theorem AlgebraicGeometry.IsAffineOpen.isLocalization_stalk - theorem AlgebraicGeometry.IsAffineOpen.isLocalization_stalk_aux' - theorem AlgebraicGeometry.IsAffineOpen.isLocalization_stalk_aux +/- theorem AlgebraicGeometry.IsAffineOpen.mapRestrictBasicOpen + theorem AlgebraicGeometry.IsAffineOpen.opensFunctor_map_basicOpen - theorem AlgebraicGeometry.IsAffineOpen.opens_map_fromSpec_basicOpen +/- theorem AlgebraicGeometry.IsAffineOpen.self_le_basicOpen_union_iff + theorem AlgebraicGeometry.Scheme.Hom.isAffineOpen_iff_of_isOpenImmersion - theorem AlgebraicGeometry.Scheme.Spec_map_presheaf_map_eqToHom +/- def AlgebraicGeometry.Scheme.affineBasicOpen +/- theorem AlgebraicGeometry.Scheme.map_PrimeSpectrum_basicOpen_of_affine - def AlgebraicGeometry.basicOpenSectionsToAffine - theorem AlgebraicGeometry.basicOpen_basicOpen_is_basicOpen +/- theorem AlgebraicGeometry.exists_basicOpen_le_affine_inter - theorem AlgebraicGeometry.isAffineOpen_iff_of_isOpenImmersion - theorem AlgebraicGeometry.isLocalization_basicOpen - theorem AlgebraicGeometry.isLocalization_of_eq_basicOpen Modified Mathlib/AlgebraicGeometry/FunctionField.lean Modified Mathlib/AlgebraicGeometry/GammaSpecAdjunction.lean + theorem AlgebraicGeometry.SpecΓIdentity_hom_app_presheaf_obj + theorem AlgebraicGeometry.SpecΓIdentity_naturality Modified Mathlib/AlgebraicGeometry/Morphisms/QuasiCompact.lean Modified Mathlib/AlgebraicGeometry/Morphisms/QuasiSeparated.lean + theorem AlgebraicGeometry.exists_eq_pow_mul_of_is_compact_of_quasi_separated_space_aux_aux Modified Mathlib/AlgebraicGeometry/Morphisms/RingHomProperties.lean Modified Mathlib/AlgebraicGeometry/Restrict.lean + theorem AlgebraicGeometry.Scheme.eq_restrict_presheaf_map_eqToHom + theorem AlgebraicGeometry.Scheme.map_basicOpen' + theorem AlgebraicGeometry.Scheme.map_basicOpen + theorem AlgebraicGeometry.Scheme.map_basicOpen_map + theorem AlgebraicGeometry.Scheme.ofRestrict_val_c_app_self +/- theorem AlgebraicGeometry.image_morphismRestrict_preimage Modified Mathlib/AlgebraicGeometry/Scheme.lean + theorem AlgebraicGeometry.Scheme.Spec_map_presheaf_map_eqToHom + theorem AlgebraicGeometry.Scheme.basicOpen_restrict + theorem AlgebraicGeometry.Scheme.inv_val_c_app_top Modified Mathlib/RingTheory/LocalProperties.lean + theorem RingHom.OfLocalizationSpanTarget.ofIsLocalization Modified Mathlib/RingTheory/Localization/Basic.lean + theorem Localization.coe_algEquiv + theorem Localization.coe_algEquiv_symm Modified Mathlib/Topology/Category/TopCat/Opens.lean + theorem OpenEmbedding.functor_obj_injective + theorem TopologicalSpace.Opens.map_top Modified Mathlib/Topology/Sheaves/Presheaf.lean Modified Mathlib/Topology/Sheaves/SheafCondition/UniqueGluing.lean + theorem TopCat.Sheaf.objSupIsoProdEqLocus_inv_eq_iff Modified lean-toolchain 2023-11-12 18:17:28 daf40d2 feat(MeasureTheory): remove an `AbsolutelyContinuous` hypothesis from `inv_rnDeriv` (#8351) In order to remove that hypothesis, we also: - add some basic lemmas about absolute continuity and mutually singular measures. - add HaveLebesgueDecomposition instances - rewrite the proof of `withDensity_rnDeriv_eq` to use the new API instead of unfolding the definitions - generalize `rnDeriv_restrict` and `rnDeriv_withDensity` to possibly different measures ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Covering/Differentiation.lean Modified Mathlib/MeasureTheory/Decomposition/Lebesgue.lean + theorem AEMeasurable.singularPart + theorem AEMeasurable.withDensity_rnDeriv + theorem MeasureTheory.Measure.MutuallySingular.singularPart + theorem MeasureTheory.Measure.absolutelyContinuous_withDensity_rnDeriv + theorem MeasureTheory.Measure.rnDeriv_add_of_mutuallySingular - theorem MeasureTheory.Measure.rnDeriv_restrict + theorem MeasureTheory.Measure.rnDeriv_restrict_self + theorem MeasureTheory.Measure.rnDeriv_self + theorem MeasureTheory.Measure.rnDeriv_singularPart + theorem MeasureTheory.Measure.rnDeriv_zero Modified Mathlib/MeasureTheory/Decomposition/RadonNikodym.lean + theorem MeasureTheory.Measure.inv_rnDeriv' +/- theorem MeasureTheory.Measure.inv_rnDeriv + theorem MeasureTheory.Measure.inv_rnDeriv_aux + theorem MeasureTheory.Measure.rnDeriv_add_right_of_absolutelyContinuous_of_mutuallySingular + theorem MeasureTheory.Measure.rnDeriv_add_right_of_mutuallySingular' + theorem MeasureTheory.Measure.rnDeriv_add_right_of_mutuallySingular + theorem MeasureTheory.Measure.rnDeriv_eq_zero_of_mutuallySingular + theorem MeasureTheory.Measure.rnDeriv_pos' + theorem MeasureTheory.Measure.rnDeriv_restrict + theorem MeasureTheory.Measure.rnDeriv_withDensity_left + theorem MeasureTheory.Measure.rnDeriv_withDensity_left_of_absolutelyContinuous + theorem MeasureTheory.Measure.rnDeriv_withDensity_right + theorem MeasureTheory.Measure.rnDeriv_withDensity_right_of_absolutelyContinuous + theorem MeasureTheory.Measure.rnDeriv_withDensity_rnDeriv + theorem MeasureTheory.Measure.rnDeriv_withDensity_withDensity_rnDeriv_left + theorem MeasureTheory.Measure.rnDeriv_withDensity_withDensity_rnDeriv_right Modified Mathlib/MeasureTheory/Measure/MeasureSpace.lean + theorem MeasureTheory.Measure.AbsolutelyContinuous.add_right + theorem MeasureTheory.Measure.AbsolutelyContinuous.restrict Modified Mathlib/MeasureTheory/Measure/MutuallySingular.lean + theorem MeasureTheory.Measure.MutuallySingular.measurableSet_nullSet + theorem MeasureTheory.Measure.MutuallySingular.measure_compl_nullSet + theorem MeasureTheory.Measure.MutuallySingular.measure_nullSet + def MeasureTheory.Measure.MutuallySingular.nullSet + theorem MeasureTheory.Measure.MutuallySingular.restrict_compl_nullSet + theorem MeasureTheory.Measure.MutuallySingular.restrict_nullSet Modified Mathlib/MeasureTheory/Measure/WithDensity.lean + theorem MeasureTheory.Measure.MutuallySingular.withDensity 2023-11-12 17:09:35 708c4de feat(MeasureTheory): integrals of rnDeriv without absolute continuity (#8343) Add Lemmas about Lebesgue and Bochner integrals of rnDeriv without absolute continuity assumptions. Also remove a duplicate lemma I introduced in a previous PR: `set_integral_toReal_rnDeriv` was already there under the name `withDensity_rnDeriv_toReal_eq`. I kept the name `set_integral_toReal_rnDeriv `. ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Decomposition/RadonNikodym.lean + theorem MeasureTheory.Measure.integrableOn_toReal_rnDeriv +/- theorem MeasureTheory.Measure.integral_toReal_rnDeriv +/- theorem MeasureTheory.Measure.set_integral_toReal_rnDeriv + theorem MeasureTheory.Measure.set_integral_toReal_rnDeriv_eq_withDensity + theorem MeasureTheory.Measure.set_integral_toReal_rnDeriv_le + theorem MeasureTheory.Measure.set_lintegral_rnDeriv_le - theorem MeasureTheory.Measure.withDensity_rnDeriv_toReal_eq 2023-11-12 15:48:33 bac379f feat(CategoryTheory): a version of `sheafCompose` for functors preserving smaller limits (#8235) Introduces a new typeclass `GrothendieckTopology.HasSheafCompose F` which says that a sheaf postcomposed with the functor `F` is still a sheaf. The previous API proved that a functor preserving certain limits has this property, this PR also adds a proof that a functor preserving limits of a smaller size has this property. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Sites/CompatibleSheafification.lean Modified Mathlib/CategoryTheory/Sites/Whiskering.lean - theorem CategoryTheory.Presheaf.IsSheaf.comp Modified Mathlib/Geometry/Manifold/Sheaf/Smooth.lean 2023-11-12 13:54:28 a1a0995 chore: cleanup imports of Analysis.Calculus.ContDiff (#8354) Not moving anything around this time, just postponing imports. ESTIMATED CHANGES Modified Mathlib/Analysis/Calculus/ContDiff/Basic.lean Modified Mathlib/Analysis/Calculus/ContDiff/Defs.lean 2023-11-12 13:54:27 63c34b1 refactor(CategoryTheory): change the API for opposite (co)products to accept general (co)fans (#8302) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Limits/Opposites.lean + def CategoryTheory.Limits.Cofan.IsColimit.op + def CategoryTheory.Limits.Cofan.op + def CategoryTheory.Limits.Fan.IsLimit.op + def CategoryTheory.Limits.Fan.op + theorem CategoryTheory.Limits.desc_op_comp_opCoproductIsoProduct'_hom +/- theorem CategoryTheory.Limits.desc_op_comp_opCoproductIsoProduct_hom + def CategoryTheory.Limits.opCoproductIsoProduct' + theorem CategoryTheory.Limits.opCoproductIsoProduct'_inv_comp_inj +/- def CategoryTheory.Limits.opCoproductIsoProduct +/- theorem CategoryTheory.Limits.opCoproductIsoProduct_inv_comp_ι + def CategoryTheory.Limits.opProductIsoCoproduct' + theorem CategoryTheory.Limits.opProductIsoCoproduct'_inv_comp_lift +/- def CategoryTheory.Limits.opProductIsoCoproduct + theorem CategoryTheory.Limits.opProductIsoCoproduct_inv_comp_lift - theorem CategoryTheory.Limits.opProductIsoCoproduct_inv_comp_π_op + theorem CategoryTheory.Limits.proj_comp_opProductIsoCoproduct'_hom + theorem CategoryTheory.Limits.proj_comp_opProductIsoCoproduct_hom - theorem CategoryTheory.Limits.π_comp_opProductIsoCoproduct 2023-11-12 13:14:02 5c09e95 feat: infinite normed field is noncompact (#8349) Generalize from nontrivially normed fields to normed fields. Also prove that a nontrivially normed field is infinite. ESTIMATED CHANGES Modified Mathlib/Analysis/Normed/Field/Basic.lean + def NontriviallyNormedField.ofNormNeOne Modified Mathlib/Analysis/NormedSpace/Basic.lean 2023-11-12 11:28:08 1fe8771 fix: `attribute [simp] ... in` -> `attribute [local simp] ... in` (#7678) Mathlib.Logic.Unique contains the line `attribute [simp] eq_iff_true_of_subsingleton in ...`: https://github.com/leanprover-community/mathlib4/blob/96a11c7aac574c00370c2b3dab483cb676405c5d/Mathlib/Logic/Unique.lean#L255-L256 Despite what the `in` part may imply, this adds the lemma to the simp set "globally", including for downstream files; it is likely that `attribute [local simp] eq_iff_true_of_subsingleton in ...` was meant instead (or maybe `scoped simp`, but I think "scoped" refers to the current namespace). Indeed, the relevant lemma is not marked with `@[simp]` for possible slowness: https://github.com/leanprover/std4/blob/846e9e1d6bb534774d1acd2dc430e70987da3c18/Std/Logic.lean#L749. Adding it to the simp set causes the example at https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/Regression.20in.20simp to slow down. This PR changes this and fixes the relevant downstream `simp`s. There was also one ocurrence of `attribute [simp] FullSubcategory.comp_def FullSubcategory.id_def in` in Mathlib.CategoryTheory.Monoidal.Subcategory but that was much easier to fix. https://github.com/leanprover-community/mathlib4/blob/bc49eb9ba756a233370b4b68bcdedd60402f71ed/Mathlib/CategoryTheory/Monoidal/Subcategory.lean#L118-L119 ESTIMATED CHANGES Modified Mathlib/Algebra/Associated.lean +/- theorem Associates.coe_unit_eq_one Modified Mathlib/Algebra/BigOperators/Finprod.lean Modified Mathlib/Algebra/GCDMonoid/Basic.lean Modified Mathlib/Algebra/Group/UniqueProds.lean +/- theorem UniqueMul.of_subsingleton Modified Mathlib/Algebra/Lie/Abelian.lean Modified Mathlib/Algebra/Module/Equiv.lean Modified Mathlib/Algebra/Ring/Prod.lean Modified Mathlib/Analysis/Calculus/ContDiff/Defs.lean Modified Mathlib/Analysis/NormedSpace/lpSpace.lean Modified Mathlib/CategoryTheory/Adjunction/Comma.lean Modified Mathlib/CategoryTheory/Category/Basic.lean Modified Mathlib/CategoryTheory/Closed/Zero.lean Modified Mathlib/CategoryTheory/Limits/Shapes/BinaryProducts.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Biproducts.lean Modified Mathlib/CategoryTheory/Limits/Shapes/CommSq.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Pullbacks.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Terminal.lean Modified Mathlib/CategoryTheory/Limits/Unit.lean Modified Mathlib/CategoryTheory/Monoidal/Subcategory.lean Modified Mathlib/CategoryTheory/PUnit.lean Modified Mathlib/CategoryTheory/Subobject/Lattice.lean Modified Mathlib/Combinatorics/Additive/Behrend.lean Modified Mathlib/Combinatorics/Quiver/Path.lean Modified Mathlib/Control/EquivFunctor/Instances.lean Modified Mathlib/Data/Fin/Basic.lean +/- theorem Fin.symm_castIso Modified Mathlib/Data/Fin/VecNotation.lean +/- theorem Matrix.empty_vecAlt0 +/- theorem Matrix.empty_vecAlt1 Modified Mathlib/Data/Finset/Basic.lean Modified Mathlib/Data/Nat/Choose/Multinomial.lean Modified Mathlib/Data/Polynomial/Basic.lean Modified Mathlib/Data/Polynomial/Div.lean Modified Mathlib/Data/Polynomial/Monic.lean Modified Mathlib/Data/Sym/Basic.lean Modified Mathlib/Data/ZMod/Basic.lean Modified Mathlib/FieldTheory/Minpoly/Basic.lean Modified Mathlib/FieldTheory/Separable.lean Modified Mathlib/GroupTheory/Exponent.lean Modified Mathlib/GroupTheory/Solvable.lean Modified Mathlib/GroupTheory/Sylow.lean Modified Mathlib/LinearAlgebra/AffineSpace/Basis.lean Modified Mathlib/LinearAlgebra/Basis.lean Modified Mathlib/LinearAlgebra/InvariantBasisNumber.lean Modified Mathlib/LinearAlgebra/Matrix/Circulant.lean Modified Mathlib/LinearAlgebra/Matrix/NonsingularInverse.lean Modified Mathlib/LinearAlgebra/Matrix/Polynomial.lean Modified Mathlib/LinearAlgebra/PiTensorProduct.lean Modified Mathlib/LinearAlgebra/Trace.lean Modified Mathlib/Logic/Unique.lean Modified Mathlib/MeasureTheory/Function/StronglyMeasurable/Basic.lean Modified Mathlib/MeasureTheory/MeasurableSpace/Basic.lean Modified Mathlib/MeasureTheory/Measure/MeasureSpace.lean Modified Mathlib/ModelTheory/Semantics.lean Modified Mathlib/ModelTheory/Syntax.lean Modified Mathlib/NumberTheory/ModularForms/CongruenceSubgroups.lean Modified Mathlib/Order/Birkhoff.lean Modified Mathlib/RingTheory/ChainOfDivisors.lean Modified Mathlib/RingTheory/Ideal/Norm.lean Modified Mathlib/RingTheory/Localization/NormTrace.lean Modified Mathlib/RingTheory/UniqueFactorizationDomain.lean Modified Mathlib/SetTheory/Game/Nim.lean Modified Mathlib/SetTheory/Game/Ordinal.lean Modified Mathlib/Tactic/Nontriviality/Core.lean Modified Mathlib/Topology/ContinuousFunction/Algebra.lean Modified Mathlib/Topology/Sheaves/Presheaf.lean Modified Mathlib/Topology/Sheaves/SheafCondition/Sites.lean 2023-11-12 09:37:50 d680257 chore(Topology/Compact): golf `Filter.coprod_cocompact` (#8338) ESTIMATED CHANGES Modified Mathlib/Topology/Compactness/Compact.lean 2023-11-12 09:37:49 42a9855 chore(AlgebraicGeometry.Morphisms.RingHomProperties): speedups (#8299) I don't really understand this file, but I was bothered by the sole declaration requiring more than a million heartbeats. I noticed strategically adding a few `conv`s can make `sourceAffineLocally_of_source_open_cover_aux` not require a bump. ESTIMATED CHANGES Modified Mathlib/AlgebraicGeometry/Morphisms/RingHomProperties.lean 2023-11-12 09:05:07 b9566b3 feat(Calculus/FDeriv): add `DifferentiableAt.isBigO_sub` (#8352) * rename `HasFDerivWithinAt.isBigO` to `HasFDerivWithinAt.isBigO_sub`; * rename `HasFDerivAt.isBigO` to `HasFDerivAt.isBigO_sub`; * add `DifferentiableWithinAt.isBigO_sub`; * add `DifferentiableAt.isBigO_sub`. ESTIMATED CHANGES Modified Mathlib/Analysis/Calculus/FDeriv/Basic.lean + theorem DifferentiableWithinAt.isBigO_sub 2023-11-12 00:13:56 adefdc2 feat: add last implication of portmanteau characterizations of weak convergence (#8097) This PR adds the last missing implication of the general case of portmanteau equivalent characterizations of convergence in distribution: a sufficient condition for convergence in distribution of a sequence of probability measures is that for all open sets the candidate limit measure is at most the liminf of the measures. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/MeasureTheory/Integral/BoundedContinuousFunction.lean + theorem BoundedContinuousFunction.apply_le_nndist_zero + theorem BoundedContinuousFunction.lintegral_le_edist_mul Modified Mathlib/MeasureTheory/Measure/Portmanteau.lean + theorem MeasureTheory.integral_le_liminf_integral_of_forall_isOpen_measure_le_liminf_measure + theorem MeasureTheory.lintegral_le_liminf_lintegral_of_forall_isOpen_measure_le_liminf_measure + theorem MeasureTheory.tendsto_integral_of_forall_integral_le_liminf_integral + theorem MeasureTheory.tendsto_of_forall_isOpen_le_liminf Modified Mathlib/Topology/Instances/ENNReal.lean + theorem ENNReal.continuousOn_toReal + theorem ENNReal.continuous_truncateToReal + theorem ENNReal.liminf_toReal_eq + theorem ENNReal.limsup_toReal_eq + theorem ENNReal.monotone_truncateToReal + theorem ENNReal.truncateToReal_eq_toReal + theorem ENNReal.truncateToReal_le + theorem ENNReal.truncateToReal_nonneg Modified Mathlib/Topology/MetricSpace/Lipschitz.lean + theorem Real.lipschitzWith_toNNReal Added Mathlib/Topology/Order/Bounded.lean + theorem Filter.isBounded_ge_map_of_bounded_range + theorem Filter.isBounded_le_map_of_bounded_range 2023-11-11 20:09:44 2def5da chore: remove SubfieldWithHom (#8333) It has become our consensus that `SubfieldWithHom` should be deprecated in favor of `IntermediateField.Lifts` after discussing with @acmepjz in #6670. @acmepjz [got rid of](https://github.com/leanprover-community/mathlib4/pull/6670#issuecomment-1793789736) the use of `SubfieldWithHom` in `IsAlgClosed.lift`, so nothing depends on it now. In #8221 I extracted some proofs from `SubfieldWithHom` that are simpler than their `Lifts` counterparts, so I think now is the time to delete `SubfieldWithHom` completely, and get rid of this [slow proof](https://github.com/leanprover-community/mathlib4/compare/remove_SubfieldWithHom?expand=1#diff-abe22930a9c8ef025fcfdec88b7a436960fd44bb8738c6ea3418d19de32f67f3L310) as a bonus. ESTIMATED CHANGES Modified Mathlib/FieldTheory/IsAlgClosed/Basic.lean - theorem IsAlgClosed.lift.SubfieldWithHom.compat - theorem IsAlgClosed.lift.SubfieldWithHom.exists_maximal_subfieldWithHom - theorem IsAlgClosed.lift.SubfieldWithHom.le_def - theorem IsAlgClosed.lift.SubfieldWithHom.maximalSubfieldWithHom_eq_top - theorem IsAlgClosed.lift.SubfieldWithHom.maximalSubfieldWithHom_is_maximal - theorem IsAlgClosed.lift.SubfieldWithHom.maximal_subfieldWithHom_chain_bounded - structure IsAlgClosed.lift.SubfieldWithHom 2023-11-11 17:12:08 5ac3430 chore: split Mathlib.Analysis.Calculus.ContDiff.Basic (#8344) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Analysis/Calculus/ContDiff/Basic.lean - theorem ContDiff.hasStrictDerivAt - theorem ContDiff.hasStrictFDerivAt - theorem ContDiff.lipschitzWith_of_hasCompactSupport - theorem ContDiff.locallyLipschitz - theorem ContDiffAt.exists_lipschitzOnWith - theorem ContDiffAt.exists_lipschitzOnWith_of_nnnorm_lt - theorem ContDiffAt.hasStrictDerivAt' - theorem ContDiffAt.hasStrictDerivAt - theorem ContDiffAt.hasStrictFDerivAt' - theorem ContDiffAt.hasStrictFDerivAt - theorem ContDiffWithinAt.exists_lipschitzOnWith - theorem ContinuousLinearMap.norm_iteratedFDerivWithin_le_of_bilinear - theorem ContinuousLinearMap.norm_iteratedFDerivWithin_le_of_bilinear_aux - theorem ContinuousLinearMap.norm_iteratedFDerivWithin_le_of_bilinear_of_le_one - theorem ContinuousLinearMap.norm_iteratedFDeriv_le_of_bilinear - theorem ContinuousLinearMap.norm_iteratedFDeriv_le_of_bilinear_of_le_one - theorem HasFTaylorSeriesUpToOn.exists_lipschitzOnWith - theorem HasFTaylorSeriesUpToOn.exists_lipschitzOnWith_of_nnnorm_lt - theorem HasFTaylorSeriesUpToOn.hasStrictFDerivAt - theorem contDiffOn_clm_apply - theorem contDiffOn_succ_iff_fderiv_apply - theorem contDiffOn_succ_of_fderiv_apply - theorem contDiff_clm_apply_iff - theorem contDiff_succ_iff_fderiv_apply - theorem norm_iteratedFDerivWithin_clm_apply - theorem norm_iteratedFDerivWithin_clm_apply_const - theorem norm_iteratedFDerivWithin_comp_le - theorem norm_iteratedFDerivWithin_comp_le_aux - theorem norm_iteratedFDerivWithin_mul_le - theorem norm_iteratedFDerivWithin_smul_le - theorem norm_iteratedFDeriv_clm_apply - theorem norm_iteratedFDeriv_clm_apply_const - theorem norm_iteratedFDeriv_comp_le - theorem norm_iteratedFDeriv_mul_le - theorem norm_iteratedFDeriv_smul_le Added Mathlib/Analysis/Calculus/ContDiff/Bounds.lean + theorem ContinuousLinearMap.norm_iteratedFDerivWithin_le_of_bilinear + theorem ContinuousLinearMap.norm_iteratedFDerivWithin_le_of_bilinear_aux + theorem ContinuousLinearMap.norm_iteratedFDerivWithin_le_of_bilinear_of_le_one + theorem ContinuousLinearMap.norm_iteratedFDeriv_le_of_bilinear + theorem ContinuousLinearMap.norm_iteratedFDeriv_le_of_bilinear_of_le_one + theorem norm_iteratedFDerivWithin_clm_apply + theorem norm_iteratedFDerivWithin_clm_apply_const + theorem norm_iteratedFDerivWithin_comp_le + theorem norm_iteratedFDerivWithin_comp_le_aux + theorem norm_iteratedFDerivWithin_mul_le + theorem norm_iteratedFDerivWithin_smul_le + theorem norm_iteratedFDeriv_clm_apply + theorem norm_iteratedFDeriv_clm_apply_const + theorem norm_iteratedFDeriv_comp_le + theorem norm_iteratedFDeriv_mul_le + theorem norm_iteratedFDeriv_smul_le Added Mathlib/Analysis/Calculus/ContDiff/FiniteDimension.lean + theorem contDiffOn_clm_apply + theorem contDiffOn_succ_iff_fderiv_apply + theorem contDiffOn_succ_of_fderiv_apply + theorem contDiff_clm_apply_iff + theorem contDiff_succ_iff_fderiv_apply Added Mathlib/Analysis/Calculus/ContDiff/IsROrC.lean + theorem ContDiff.hasStrictDerivAt + theorem ContDiff.hasStrictFDerivAt + theorem ContDiff.lipschitzWith_of_hasCompactSupport + theorem ContDiff.locallyLipschitz + theorem ContDiffAt.exists_lipschitzOnWith + theorem ContDiffAt.exists_lipschitzOnWith_of_nnnorm_lt + theorem ContDiffAt.hasStrictDerivAt' + theorem ContDiffAt.hasStrictDerivAt + theorem ContDiffAt.hasStrictFDerivAt' + theorem ContDiffAt.hasStrictFDerivAt + theorem ContDiffWithinAt.exists_lipschitzOnWith + theorem HasFTaylorSeriesUpToOn.exists_lipschitzOnWith + theorem HasFTaylorSeriesUpToOn.exists_lipschitzOnWith_of_nnnorm_lt + theorem HasFTaylorSeriesUpToOn.hasStrictFDerivAt Modified Mathlib/Analysis/Calculus/Inverse.lean Modified Mathlib/Analysis/Calculus/Series.lean Modified Mathlib/Analysis/Distribution/SchwartzSpace.lean Modified Mathlib/Analysis/SpecialFunctions/ExpDeriv.lean Modified Mathlib/Geometry/Manifold/SmoothManifoldWithCorners.lean Modified Mathlib/Geometry/Manifold/VectorBundle/Tangent.lean 2023-11-11 15:52:40 1cb42bf feat: add definition of and statements about the set of smooth numbers (#8252) We define the set `Nat.smoothNumbers n` consisting of the positive natural numbers all of whose prime factors are strictly less than `n`. We also define the finite set `Nat.primesBelow n` to be the set of prime numbers less than `n`. The main definition `Nat.equivProdNatSmoothNumbers` establishes the bijection between `ℕ × (smoothNumbers p)` and `smoothNumbers (p+1)` given by sending `(e, n)` to `p^e * n`. Here `p` is a prime number. This is in preparation of Euler Products; see [this Zulip thread](https://leanprover.zulipchat.com/#narrow/stream/217875-Is-there-code-for-X.3F/topic/Euler.20products/near/400111270). ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/NumberTheory/PrimeCounting.lean + theorem Nat.primesBelow_card_eq_primeCounting' Added Mathlib/NumberTheory/SmoothNumbers.lean + theorem Nat.Prime.smoothNumbers_coprime + def Nat.equivProdNatSmoothNumbers + theorem Nat.equivProdNatSmoothNumbers_apply' + theorem Nat.equivProdNatSmoothNumbers_apply + theorem Nat.lt_of_mem_primesBelow + theorem Nat.mem_smoothNumbers' + theorem Nat.mem_smoothNumbers + theorem Nat.not_mem_primesBelow + theorem Nat.pow_mul_mem_smoothNumbers + theorem Nat.prime_of_mem_primesBelow + def Nat.primesBelow + theorem Nat.primesBelow_succ + theorem Nat.primesBelow_zero + theorem Nat.prod_mem_smoothNumbers + def Nat.smoothNumbers + theorem Nat.smoothNumbers_compl + theorem Nat.smoothNumbers_mono + theorem Nat.smoothNumbers_one + theorem Nat.smoothNumbers_succ + theorem Nat.smoothNumbers_zero 2023-11-11 11:20:43 d8a661e feat: Add to `List.finRange` and `Fin.castLE` APIs (#8306) Add a lemma that unfolds `finRange n.succ` in terms of `List.concat`, and add a few simp-lemmas for `Fin.castLE` ESTIMATED CHANGES Modified Mathlib/Data/Fin/Basic.lean + theorem Fin.castLE_castSucc + theorem Fin.castLE_comp_castSucc + theorem Fin.castLE_rfl Modified Mathlib/Data/List/FinRange.lean + theorem List.finRange_succ 2023-11-11 09:59:50 546faa6 feat: lemmas about `Bool.toNat` (#8328) ESTIMATED CHANGES Modified Mathlib/Data/Bool/Basic.lean + theorem Bool.toNat_beq_one + theorem Bool.toNat_beq_zero + theorem Bool.toNat_bne_one + theorem Bool.toNat_bne_zero + theorem Bool.toNat_false + theorem Bool.toNat_le_one + theorem Bool.toNat_true 2023-11-11 09:24:56 7766bcc chore: move Analysis/ContDiff to Analysis/ContDiff/Basic to make room for splitting (#8337) No changes to content, or splitting, just a rename so there is room for more files. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Analysis/Calculus/AffineMap.lean Modified Mathlib/Analysis/Calculus/BumpFunction/Basic.lean Renamed Mathlib/Analysis/Calculus/ContDiff.lean to Mathlib/Analysis/Calculus/ContDiff/Basic.lean Renamed Mathlib/Analysis/Calculus/ContDiffDef.lean to Mathlib/Analysis/Calculus/ContDiff/Defs.lean Modified Mathlib/Analysis/Calculus/FDeriv/Analytic.lean Modified Mathlib/Analysis/Calculus/Inverse.lean Modified Mathlib/Analysis/Calculus/IteratedDeriv.lean Modified Mathlib/Analysis/Calculus/Series.lean Modified Mathlib/Analysis/Complex/RealDeriv.lean Modified Mathlib/Analysis/Convolution.lean Modified Mathlib/Analysis/Distribution/SchwartzSpace.lean Modified Mathlib/Analysis/SpecialFunctions/Sqrt.lean Modified Mathlib/Geometry/Manifold/SmoothManifoldWithCorners.lean Modified Mathlib/Topology/MetricSpace/HausdorffDimension.lean 2023-11-11 08:27:29 5f066e7 chore: generalize CauchySeq to Preorder (#8339) ESTIMATED CHANGES Modified Mathlib/Analysis/Normed/Group/InfiniteSum.lean Modified Mathlib/Topology/Algebra/InfiniteSum/Basic.lean +/- theorem cauchySeq_finset_iff_tsum_vanishing +/- theorem cauchySeq_finset_iff_vanishing +/- theorem summable_iff_cauchySeq_finset Modified Mathlib/Topology/Algebra/UniformGroup.lean +/- theorem CauchySeq.const_mul +/- theorem CauchySeq.inv +/- theorem CauchySeq.mul +/- theorem CauchySeq.mul_const Modified Mathlib/Topology/UniformSpace/Cauchy.lean +/- theorem CauchySeq.comp_tendsto +/- theorem CauchySeq.nonempty +/- theorem CauchySeq.prod +/- theorem CauchySeq.prod_map +/- theorem CauchySeq.tendsto_limUnder +/- theorem CauchySeq.tendsto_uniformity +/- def CauchySeq +/- theorem UniformContinuous.comp_cauchySeq +/- theorem cauchySeq_tendsto_of_complete +/- theorem cauchySeq_tendsto_of_isComplete +/- theorem tendsto_nhds_of_cauchySeq_of_subseq 2023-11-11 07:17:55 ea682fb feat: `⨅ i : ι, 0 = 0` in `ℕ` (#8324) ESTIMATED CHANGES Modified Mathlib/Data/Nat/Lattice.lean + theorem Nat.iInf_const_zero 2023-11-11 06:37:20 e052b5e feat: more facts on measures in topological groups (#8286) Prerequisites for #8198 ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Group/LIntegral.lean +/- theorem MeasureTheory.lintegral_eq_zero_of_isMulLeftInvariant Modified Mathlib/MeasureTheory/Group/Measure.lean + theorem IsCompact.closure_subset_of_measurableSet_of_group + theorem IsCompact.measure_closure_eq_of_group + theorem MeasurableSet.mul_closure_one_eq + theorem MeasureTheory.Measure.inv_def + theorem MeasureTheory.Measure.isHaarMeasure_map_of_isFiniteMeasure + theorem MeasureTheory.innerRegular_inv_iff - theorem MeasureTheory.isOpenPosMeasure_of_mulLeftInvariant_of_regular + theorem MeasureTheory.measure_mul_closure_one +/- theorem MeasureTheory.regular_inv_iff 2023-11-11 06:00:42 f6ba16a chore: add comments in CI about || true (#8336) ESTIMATED CHANGES Modified .github/workflows/nightly_bump_toolchain.yml Modified .github/workflows/nightly_merge_master.yml 2023-11-11 01:53:59 76efc30 feat: measurability of uniqueElim and piFinsetUnion (#8249) * The extra import doesn't add any additional imports transitively * Also use implicit arguments for some `MeasurableSpace` arguments for consistency with other lemmas. * Redefine `Equiv.piSubsingleton` and `MulEquiv.piSubsingleton` to `Equiv.piUnique` and `MulEquiv.piUnique`. ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Equiv/Basic.lean - def MulEquiv.piSubsingleton + def MulEquiv.piUnique Modified Mathlib/GroupTheory/Sylow.lean - theorem Sylow.subsingleton_of_normal Modified Mathlib/Logic/Equiv/Defs.lean +/- def Equiv.funUnique - def Equiv.piSubsingleton + def Equiv.piUnique Modified Mathlib/Logic/Unique.lean + theorem uniqueElim_const Modified Mathlib/MeasureTheory/Constructions/Pi.lean +/- theorem MeasureTheory.measurePreserving_funUnique + theorem MeasureTheory.measurePreserving_piFinsetUnion + theorem MeasureTheory.measurePreserving_piUnique +/- theorem MeasureTheory.measurePreserving_sumPiEquivProdPi +/- theorem MeasureTheory.measurePreserving_sumPiEquivProdPi_symm + theorem MeasureTheory.volume_preserving_piFinsetUnion + theorem MeasureTheory.volume_preserving_piUnique Modified Mathlib/MeasureTheory/MeasurableSpace/Basic.lean +/- def MeasurableEquiv.funUnique + def MeasurableEquiv.piFinsetUnion + def MeasurableEquiv.piUnique + theorem measurable_uniqueElim + theorem measurable_updateFinset 2023-11-11 00:04:56 1cdc72c refactor: Split out ...DistribClass instances for WithZero (#8108) ESTIMATED CHANGES Modified Mathlib/Algebra/Group/WithOne/Defs.lean 2023-11-10 21:41:59 001301a chore: fix typo in docstring (#8326) `Metric.bounded` doesn't exist any more. ESTIMATED CHANGES Modified Mathlib/Order/RelClasses.lean 2023-11-10 21:41:58 52c6af8 feat: When `Nat.card` is zero (#8202) and lemmas about injectivity/surjectivity of `PLift.map`/`ULift.map`. ESTIMATED CHANGES Modified Mathlib/Control/ULift.lean +/- theorem ULift.map_up Modified Mathlib/Data/Nat/Totient.lean Modified Mathlib/Data/ULift.lean + theorem PLift.map_bijective + theorem PLift.map_injective + theorem PLift.map_surjective + theorem ULift.map_bijective + theorem ULift.map_injective + theorem ULift.map_surjective Modified Mathlib/GroupTheory/SpecificGroups/Cyclic.lean Modified Mathlib/SetTheory/Cardinal/Basic.lean + theorem Cardinal.aleph0_le_mk_iff + theorem Cardinal.mk_lt_aleph0_iff + theorem Cardinal.toNat_eq_zero + theorem Cardinal.toNat_ne_zero + theorem Cardinal.toNat_pos Modified Mathlib/SetTheory/Cardinal/Finite.lean + theorem Nat.card_eq_zero +/- theorem Nat.card_eq_zero_of_infinite + theorem Nat.card_eq_zero_of_isEmpty + theorem Nat.card_le_card_of_injective + theorem Nat.card_le_card_of_surjective + theorem Nat.card_ne_zero + theorem Nat.card_pos + theorem Nat.card_pos_iff +/- theorem Nat.finite_of_card_ne_zero + theorem PartENat.card_mono 2023-11-10 20:41:39 d3470ca feat(CategoryTheory): the action of a bifunctor on graded objects (#8237) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/GradedObject/Bifunctor.lean + def CategoryTheory.GradedObject.mapBifunctor + theorem CategoryTheory.GradedObject.ι_mapBifunctorMapMap 2023-11-10 20:41:38 9cc270f refactor: golf IntermediateField.Lifts (#8221) Inspired by the [IsAlgClosed.lift.SubfieldWithHom](https://leanprover-community.github.io/mathlib4_docs/Mathlib/FieldTheory/IsAlgClosed/Basic.html#IsAlgClosed.lift.SubfieldWithHom) counterpart: + Change `Lifts` from a Sigma type to a structure with fields `carrier` and `emb`. + Change the definition of the partial order on `Lifts` to use `IntermediateField.inclusion`. + Use [Subalgebra.iSupLift](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Algebra/Algebra/Subalgebra/Basic.html#Subalgebra.iSupLift) in the proof of `Lifts.exists_upper_bound`. Also: + Inline multiple auxiliary definitions for `Lifts.exists_upper_bound` and `Lifts.exists_lift_of_splits` into the proofs proper. + Move the `Supremum` section much further up, in order to use the new lemma `toSubalgebra_iSup_of_directed` to prove stuff about `Lifts` (and golf a proof about `CompactElement`). `isAlgebraic_iSup` however can't be moved up, so I put it near `adjoin.finiteDimensional`, the last lemma it depends on. ESTIMATED CHANGES Modified Mathlib/FieldTheory/AbelRuffini.lean Modified Mathlib/FieldTheory/Adjoin.lean - theorem IntermediateField.Lifts.eq_of_le - theorem IntermediateField.Lifts.exists_max_three - theorem IntermediateField.Lifts.exists_max_two - theorem IntermediateField.Lifts.le_lifts_of_splits - theorem IntermediateField.Lifts.mem_lifts_of_splits - def IntermediateField.Lifts.upperBoundIntermediateField + structure IntermediateField.Lifts - def IntermediateField.Lifts + theorem IntermediateField.adjoin_eq_top_of_algebra - theorem IntermediateField.algHom_mk_adjoin_splits' - theorem IntermediateField.algHom_mk_adjoin_splits + theorem IntermediateField.biSup_adjoin_simple + theorem IntermediateField.coe_iSup_of_directed +/- def IntermediateField.equivOfEq + theorem IntermediateField.exists_algHom_adjoin_of_splits + theorem IntermediateField.exists_algHom_adjoin_of_splits_of_aeval + theorem IntermediateField.exists_algHom_of_adjoin_splits + theorem IntermediateField.exists_algHom_of_adjoin_splits_of_aeval + theorem IntermediateField.exists_algHom_of_splits + theorem IntermediateField.exists_algHom_of_splits_of_aeval + theorem IntermediateField.finiteDimensional_adjoin - theorem IntermediateField.finiteDimensional_adjoin_of_finite_of_isAlgebraic +/- theorem IntermediateField.finiteDimensional_iSup_of_finset' + theorem IntermediateField.isAlgebraic_adjoin + theorem IntermediateField.isAlgebraic_adjoin_simple +/- theorem IntermediateField.isAlgebraic_iSup +/- theorem IntermediateField.isSplittingField_iSup + theorem IntermediateField.nonempty_algHom_adjoin_of_splits + theorem IntermediateField.nonempty_algHom_of_adjoin_splits + theorem IntermediateField.nonempty_algHom_of_splits + theorem IntermediateField.toSubalgebra_iSup_of_directed Modified Mathlib/FieldTheory/IsAlgClosed/Basic.lean Modified Mathlib/FieldTheory/IsSepClosed.lean Modified Mathlib/FieldTheory/Normal.lean Modified Mathlib/Order/Zorn.lean 2023-11-10 20:41:37 ecdd87a refactor(Algebra/Homology): remove single₀ (#8208) This PR removes the special definitions of `single₀` for chain and cochain complexes, so as to avoid duplication of code with `HomologicalComplex.single` which is the functor constructing the complex that is supported by a single arbitrary degree. `single₀` was supposed to have better definitional properties, but it turns out that in Lean4, it is no longer true (at least for the action of this functor on objects). The computation of the homology of these single complexes is generalized for `HomologicalComplex.single` using the new homology API: this result is moved to a separate file `Algebra.Homology.SingleHomology`. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Homology/Additive.lean - def ChainComplex.single₀MapHomologicalComplex - theorem ChainComplex.single₀MapHomologicalComplex_hom_app_succ - theorem ChainComplex.single₀MapHomologicalComplex_hom_app_zero - theorem ChainComplex.single₀MapHomologicalComplex_inv_app_succ - theorem ChainComplex.single₀MapHomologicalComplex_inv_app_zero - def CochainComplex.single₀MapHomologicalComplex - theorem CochainComplex.single₀MapHomologicalComplex_hom_app_succ - theorem CochainComplex.single₀MapHomologicalComplex_hom_app_zero - theorem CochainComplex.single₀MapHomologicalComplex_inv_app_succ - theorem CochainComplex.single₀MapHomologicalComplex_inv_app_zero - def HomologicalComplex.singleMapHomologicalComplex Modified Mathlib/Algebra/Homology/QuasiIso.lean Modified Mathlib/Algebra/Homology/Single.lean - def ChainComplex.fromSingle₀Equiv + theorem ChainComplex.fromSingle₀Equiv_symm_apply_f_succ + theorem ChainComplex.fromSingle₀Equiv_symm_apply_f_zero - def ChainComplex.single₀ - def ChainComplex.single₀IsoSingle + theorem ChainComplex.single₀ObjXSelf - theorem ChainComplex.single₀_map_f_0 - theorem ChainComplex.single₀_map_f_succ + theorem ChainComplex.single₀_map_f_zero - theorem ChainComplex.single₀_obj_X_0 - theorem ChainComplex.single₀_obj_X_d - theorem ChainComplex.single₀_obj_X_dTo - theorem ChainComplex.single₀_obj_X_succ - theorem ChainComplex.single₀_obj_x_dFrom + theorem ChainComplex.single₀_obj_zero - def ChainComplex.toSingle₀Equiv + theorem ChainComplex.toSingle₀Equiv_symm_apply_f_zero - theorem ChainComplex.to_single₀_ext - def CochainComplex.fromSingle₀Equiv + theorem CochainComplex.fromSingle₀Equiv_symm_apply_f_zero - theorem CochainComplex.from_single₀_ext - def CochainComplex.single₀ - def CochainComplex.single₀IsoSingle + theorem CochainComplex.single₀ObjXSelf - theorem CochainComplex.single₀_map_f_0 - theorem CochainComplex.single₀_map_f_succ + theorem CochainComplex.single₀_map_f_zero - theorem CochainComplex.single₀_obj_X_0 - theorem CochainComplex.single₀_obj_X_d - theorem CochainComplex.single₀_obj_X_succ - theorem CochainComplex.single₀_obj_x_dFrom - theorem CochainComplex.single₀_obj_x_dTo + theorem CochainComplex.single₀_obj_zero + theorem CochainComplex.toSingle₀Equiv_symm_apply_f_succ + theorem CochainComplex.toSingle₀Equiv_symm_apply_f_zero + theorem HomologicalComplex.from_single_hom_ext + theorem HomologicalComplex.isZero_single_obj_X + theorem HomologicalComplex.mkHomFromSingle_f + theorem HomologicalComplex.mkHomToSingle_f - def HomologicalComplex.single - def HomologicalComplex.singleObjXSelf + theorem HomologicalComplex.single_obj_X_self + theorem HomologicalComplex.single_obj_d + theorem HomologicalComplex.to_single_hom_ext Added Mathlib/Algebra/Homology/SingleHomology.lean + theorem HomologicalComplex.exactAt_single_obj + theorem HomologicalComplex.homologyι_singleObjOpcyclesSelfIso_inv + theorem HomologicalComplex.homologyπ_singleObjHomologySelfIso_hom + theorem HomologicalComplex.isZero_single_obj_homology + theorem HomologicalComplex.singleObjCyclesSelfIso_hom + theorem HomologicalComplex.singleObjCyclesSelfIso_hom_naturality + theorem HomologicalComplex.singleObjCyclesSelfIso_hom_singleObjOpcyclesSelfIso_hom + theorem HomologicalComplex.singleObjCyclesSelfIso_inv_homologyπ + theorem HomologicalComplex.singleObjCyclesSelfIso_inv_iCycles + theorem HomologicalComplex.singleObjCyclesSelfIso_inv_naturality + theorem HomologicalComplex.singleObjHomologySelfIso_hom_naturality + theorem HomologicalComplex.singleObjHomologySelfIso_hom_singleObjHomologySelfIso_inv + theorem HomologicalComplex.singleObjHomologySelfIso_hom_singleObjOpcyclesSelfIso_hom + theorem HomologicalComplex.singleObjHomologySelfIso_inv_homologyι + theorem HomologicalComplex.singleObjHomologySelfIso_inv_naturality + theorem HomologicalComplex.singleObjOpcyclesSelfIso_hom + theorem HomologicalComplex.singleObjOpcyclesSelfIso_hom_naturality + theorem HomologicalComplex.singleObjOpcyclesSelfIso_inv_naturality Modified Mathlib/AlgebraicTopology/AlternatingFaceMapComplex.lean + theorem AlgebraicTopology.AlternatingFaceMapComplex.ε_app_f_succ + theorem AlgebraicTopology.AlternatingFaceMapComplex.ε_app_f_zero Modified Mathlib/AlgebraicTopology/ExtraDegeneracy.lean Modified Mathlib/CategoryTheory/Abelian/InjectiveResolution.lean + theorem CategoryTheory.InjectiveResolution.desc_commutes_zero Modified Mathlib/CategoryTheory/Abelian/LeftDerived.lean Modified Mathlib/CategoryTheory/Abelian/Projective.lean Modified Mathlib/CategoryTheory/Abelian/RightDerived.lean Modified Mathlib/CategoryTheory/Functor/LeftDerived.lean Modified Mathlib/CategoryTheory/Preadditive/Injective.lean + theorem CategoryTheory.Limits.IsZero.injective Modified Mathlib/CategoryTheory/Preadditive/InjectiveResolution.lean Modified Mathlib/CategoryTheory/Preadditive/Projective.lean + theorem CategoryTheory.Limits.IsZero.projective Modified Mathlib/CategoryTheory/Preadditive/ProjectiveResolution.lean + theorem CategoryTheory.ProjectiveResolution.lift_commutes_zero Modified Mathlib/RepresentationTheory/GroupCohomology/Resolution.lean 2023-11-10 20:41:36 3901cb5 feat: characterize summability by vanishing of `tsum`s (#8194) ESTIMATED CHANGES Modified Mathlib/Analysis/Calculus/Series.lean Modified Mathlib/Topology/Algebra/InfiniteSum/Basic.lean +/- theorem HasSum.unique + theorem Summable.nat_tsum_vanishing + theorem Summable.tsum_vanishing + theorem cauchySeq_finset_iff_nat_tsum_vanishing + theorem cauchySeq_finset_iff_tsum_vanishing +/- theorem cauchySeq_finset_iff_vanishing +/- theorem summable_iff_cauchySeq_finset + theorem summable_iff_nat_tsum_vanishing + theorem summable_iff_tsum_vanishing +/- theorem tendsto_tsum_compl_atTop_zero +/- theorem tsum_eq_add_tsum_ite' 2023-11-10 19:51:27 ad65c15 chore: Golf `AffineSubspace.convex` (#8322) ESTIMATED CHANGES Modified Mathlib/Analysis/Convex/Basic.lean +/- theorem AffineSubspace.convex 2023-11-10 19:19:01 5da767a feat: Simple `Finpartition` lemmas (#8321) ESTIMATED CHANGES Modified Mathlib/Order/Partition/Equipartition.lean + theorem Finpartition.not_isEquipartition Modified Mathlib/Order/Partition/Finpartition.lean + theorem Finpartition.eq_of_mem_parts 2023-11-10 19:19:00 8c926b7 Feat (GroupTheory.SpecificGroups.KleinFour): Add the Klein four-group to specific groups. (#7937) Feat: Add the Klein four-group to specific groups. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/GroupTheory/SpecificGroups/KleinFour.lean + def KleinFour.a + theorem KleinFour.a_sq + def KleinFour.b + theorem KleinFour.b_sq + def KleinFour.c + theorem KleinFour.c_sq + theorem KleinFour.card + theorem KleinFour.exponent + def KleinFour.mulEquivDihedralGroupTwo + theorem KleinFour.nat_card + theorem KleinFour.notIsCyclic + theorem KleinFour.orderOf_a + theorem KleinFour.orderOf_b + theorem KleinFour.orderOf_c 2023-11-10 18:21:17 b0bb59c feat: Minkowski Convex Body Theorem for compact convex body (#8274) ESTIMATED CHANGES Modified Mathlib/Analysis/Convex/Body.lean + theorem ConvexBody.iInter_smul_eq_self + theorem ConvexBody.smul_le_of_le + theorem ConvexBody.zero_mem_of_symmetric Modified Mathlib/MeasureTheory/Group/GeometryOfNumbers.lean + theorem MeasureTheory.exists_ne_zero_mem_lattice_of_measure_mul_two_pow_le_measure Modified Mathlib/NumberTheory/NumberField/CanonicalEmbedding.lean Modified Mathlib/Topology/Separation.lean + theorem isOpen_inter_eq_singleton_of_mem_discrete 2023-11-10 17:28:19 1fb1275 fix: continuity: remove npowRec rule (#8312) This rule used to unfold the recursive function `npowRec` unconditionally, so Aesop would loop during normalisation unless another normalisation rule (usually simp) happened to close the goal. To prevent this issue, Aesop master now disallows recursive unfold rules, so we have to remove the `npowRec` rule. ESTIMATED CHANGES Modified Mathlib/Tactic/Continuity.lean Modified Mathlib/Topology/Algebra/Monoid.lean 2023-11-10 17:28:18 f3ca338 feat(LiminfLimsup, LpSeminorm): add lemmas/golf (#8300) - Add `blimsup_eq_limsup` and `bliminf_eq_liminf` - Generalize `limsup_nat_add` and `liminf_nat_add` to a `ConditionallyCompleteLattice`. - Add `Filter.HasBasis.blimsup_eq_iInf_iSup`. - Add `limsup_sup_filter`, `liminf_sup_filter`, `blimsup_sup_not`, `bliminf_inf_not`, `blimsup_not_sup`, `bliminf_not_inf`, `limsup_piecewise`, and `liminf_piecewise`. - Add `essSup_piecewise`. - Assume that the codomain is `ℝ≥0∞` in `essSup_indicator_eq_essSup_restrict`. This allows us to drop assumptions `0 ≤ᵐ[_] f` and `μ s ≠ 0`. - Upgrade inequality to an equality in `snormEssSup_piecewise_le` (now `snormEssSup_piecewise`) and `snorm_top_piecewise_le` (now `snorm_top_piecewise`). - Use new lemmas to golf some proofs. ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Function/EssSup.lean + theorem ENNReal.essSup_indicator_eq_essSup_restrict + theorem ENNReal.essSup_piecewise - theorem essSup_indicator_eq_essSup_restrict +/- theorem essSup_le_of_ae_le Modified Mathlib/MeasureTheory/Function/LpSeminorm.lean + theorem MeasureTheory.snormEssSup_piecewise - theorem MeasureTheory.snormEssSup_piecewise_le + theorem MeasureTheory.snorm_top_piecewise - theorem MeasureTheory.snorm_top_piecewise_le Modified Mathlib/MeasureTheory/Function/LpSpace.lean Modified Mathlib/Order/LiminfLimsup.lean + theorem Filter.HasBasis.blimsup_eq_iInf_iSup + theorem Filter.bliminf_eq_liminf + theorem Filter.bliminf_inf_not + theorem Filter.bliminf_not_inf + theorem Filter.blimsup_eq_limsup + theorem Filter.blimsup_not_sup + theorem Filter.blimsup_sup_not + theorem Filter.liminf_piecewise + theorem Filter.liminf_sup_filter + theorem Filter.limsup_piecewise + theorem Filter.limsup_sup_filter 2023-11-10 16:50:24 929bdfc chore: re-enable norm_cast tests (#8193) Many of these tests were commented out because this file was ported before the rest of Mathlib. ESTIMATED CHANGES Modified test/norm_cast.lean 2023-11-10 15:36:46 b5b9c97 chore: rename `LinearAlgebra.Eigenspace.IsAlgClosed` to `LinearAlgebra.Eigenspace.Triangularizable` (#8318) The motivation is that I wish to add further results about triangularizability of linear endomorphisms and I claim this file is a natural home. This rename-only PR exists to prevent breaking 'nightly-testing'. ESTIMATED CHANGES Modified Mathlib.lean Renamed Mathlib/LinearAlgebra/Eigenspace/IsAlgClosed.lean to Mathlib/LinearAlgebra/Eigenspace/Triangularizable.lean 2023-11-10 15:36:45 c4bf273 feat: add zeta_sub_one_prime (#8228) We add `zeta_sub_one_prime`: in a `p^(k+1)`-th cyclotomic extension `ζ-1` is prime. ESTIMATED CHANGES Modified Mathlib/NumberTheory/Cyclotomic/Rat.lean + theorem IsPrimitiveRoot.subOneIntegralPowerBasis'_gen_prime + theorem IsPrimitiveRoot.subOneIntegralPowerBasis_gen_prime + theorem IsPrimitiveRoot.zeta_sub_one_prime' + theorem IsPrimitiveRoot.zeta_sub_one_prime + theorem IsPrimitiveRoot.zeta_sub_one_prime_of_ne_two + theorem IsPrimitiveRoot.zeta_sub_one_prime_of_two_pow 2023-11-10 14:22:54 68b9af6 chore: add missing "no_index around OfNat.ofNat" library notes (#8316) ESTIMATED CHANGES Modified Mathlib/Data/Complex/Basic.lean Modified Mathlib/Data/Int/Cast/Basic.lean Modified Mathlib/Data/IsROrC/Basic.lean Modified Mathlib/Data/Nat/Cast/Basic.lean Modified Mathlib/Data/Polynomial/Coeff.lean Modified Mathlib/Data/Polynomial/Eval.lean Modified Mathlib/Data/Real/ENNReal.lean Modified Mathlib/Data/Real/NNReal.lean Modified Mathlib/NumberTheory/LucasLehmer.lean 2023-11-10 14:22:53 508efdc feat: two missing injOn lemmas (#8303) ESTIMATED CHANGES Modified Mathlib/Data/Set/Function.lean + theorem Set.exists_image_eq_and_injOn + theorem Set.exists_image_eq_injOn_of_subset_range + theorem Set.exists_subset_bijOn +/- theorem Set.surjOn_iff_exists_bijOn_subset 2023-11-10 14:22:52 28a049b chore: updating nightly-testing should not fail (#8277) As this CI step runs on commits to `master`, it is important that it does not fail, even if something goes wrong. I would prefer that we commit garbage to `nightly-testing` where something goes wrong: a separate CI job already notifies us of CI failures on the `nightly-testing` branch, so they will be picked up there. ESTIMATED CHANGES Modified .github/workflows/nightly_bump_toolchain.yml Modified .github/workflows/nightly_merge_master.yml 2023-11-10 14:22:51 b000223 feat: corollaries of Liouville's theorem with limits at infinity (#8244) If `f : E → F` is differentiable (over `ℂ`) and `Tendsto f (cocompact E) (𝓝 c)` then `f = Function.const E c`. This is useful to make the proof of the fundamental theorem of algebra slightly more conceptual, as well as to simplify the proof that the spectrum of an element in a Banach algebra over `ℂ` is nonempty. - [ ] depends on: #8234 ESTIMATED CHANGES Modified Mathlib/Analysis/Complex/Liouville.lean + theorem Differentiable.apply_eq_of_tendsto_cocompact + theorem Differentiable.eq_const_of_tendsto_cocompact Modified Mathlib/Topology/MetricSpace/Bounded.lean + theorem Metric.exists_isBounded_image_of_tendsto 2023-11-10 14:22:50 a189a12 feat: quasi-isomorphisms of homological complexes (#8206) This PR defines the typeclass `QuasiIso` which corresponds to quasi-isomorphisms of homological complexes for the new homology API. ESTIMATED CHANGES Modified Mathlib/Algebra/Homology/QuasiIso.lean + theorem ChainComplex.quasiIsoAt₀_iff + theorem CochainComplex.quasiIsoAt₀_iff + theorem isoOfQuasiIsoAt_hom_inv_id + theorem isoOfQuasiIsoAt_inv_hom_id + theorem quasiIsoAt_iff' + theorem quasiIsoAt_iff + theorem quasiIsoAt_iff_comp_left + theorem quasiIsoAt_iff_comp_right + theorem quasiIsoAt_iff_exactAt' + theorem quasiIsoAt_iff_exactAt + theorem quasiIsoAt_iff_isIso_homologyMap + theorem quasiIsoAt_of_comp_left + theorem quasiIsoAt_of_comp_right + theorem quasiIso_iff + theorem quasiIso_iff_comp_left + theorem quasiIso_iff_comp_right + theorem quasiIso_iff_of_arrow_mk_iso + theorem quasiIso_of_arrow_mk_iso + theorem quasiIso_of_comp_left + theorem quasiIso_of_comp_right 2023-11-10 13:54:15 9e03d9c fix: make primeFactors_one about one (#8315) ESTIMATED CHANGES Modified Mathlib/Data/Nat/PrimeFin.lean +/- theorem Nat.primeFactors_one 2023-11-10 13:54:14 89e204a feat(CategoryTheory): Trifunctors obtained by composition of bifunctors (#8240) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Functor/Trifunctor.lean + def CategoryTheory.bifunctorComp₁₂ + def CategoryTheory.bifunctorComp₁₂Obj + def CategoryTheory.bifunctorComp₂₃ + def CategoryTheory.bifunctorComp₂₃Obj 2023-11-10 13:09:51 f3baa4c feat(CategoryTheory): more API for limit kernel forks (#8200) In this PR, we introduce `KernelFork.mapIsoOfIsLimit` which is the isomorphism between the "points" of two limit kernel forks of maps which are isomorphic in the category of arrows. This generalizes `kernel.mapIso` which is the case where the limit kernel forks are given by `limit.isLimit`. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Arrow.lean + theorem CategoryTheory.Arrow.hom_inv_id_left + theorem CategoryTheory.Arrow.hom_inv_id_right + theorem CategoryTheory.Arrow.inv_hom_id_left + theorem CategoryTheory.Arrow.inv_hom_id_right Modified Mathlib/CategoryTheory/Limits/Shapes/Kernels.lean + def CategoryTheory.Limits.CokernelCofork.mapIsoOfIsColimit + def CategoryTheory.Limits.CokernelCofork.mapOfIsColimit + theorem CategoryTheory.Limits.CokernelCofork.π_mapOfIsColimit + def CategoryTheory.Limits.KernelFork.mapIsoOfIsLimit + def CategoryTheory.Limits.KernelFork.mapOfIsLimit + theorem CategoryTheory.Limits.KernelFork.mapOfIsLimit_ι 2023-11-10 13:09:50 27e5b0c feat: homology of short complexes of modules (#8174) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Homology/ShortComplex/Ab.lean Added Mathlib/Algebra/Homology/ShortComplex/ModuleCat.lean + theorem CategoryTheory.ShortComplex.Exact.moduleCat_of_range_eq_ker + theorem CategoryTheory.ShortComplex.Exact.moduleCat_range_eq_ker + theorem CategoryTheory.ShortComplex.ShortExact.moduleCat_injective_f + theorem CategoryTheory.ShortComplex.ShortExact.moduleCat_surjective_g + theorem CategoryTheory.ShortComplex.exact_iff_surjective_moduleCatToCycles + def CategoryTheory.ShortComplex.moduleCatLeftHomologyData + theorem CategoryTheory.ShortComplex.moduleCatLeftHomologyData_f' + def CategoryTheory.ShortComplex.moduleCatMk + def CategoryTheory.ShortComplex.moduleCatMkOfKerLERange + def CategoryTheory.ShortComplex.moduleCatToCycles + theorem CategoryTheory.ShortComplex.moduleCat_exact_iff + theorem CategoryTheory.ShortComplex.moduleCat_exact_iff_ker_sub_range + theorem CategoryTheory.ShortComplex.moduleCat_exact_iff_range_eq_ker + theorem CategoryTheory.ShortComplex.moduleCat_zero_apply 2023-11-10 12:46:12 101dcc0 feat(CategoryTheory): exact sequences (#8152) This PR defines the predicate `ComposableArrows.Exact`. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Homology/ExactSequence.lean + structure CategoryTheory.ComposableArrows.Exact + theorem CategoryTheory.ComposableArrows.IsComplex.zero' + structure CategoryTheory.ComposableArrows.IsComplex + theorem CategoryTheory.ComposableArrows.IsExact.exact' + theorem CategoryTheory.ComposableArrows.exact_iff_of_iso + theorem CategoryTheory.ComposableArrows.exact_of_iso + theorem CategoryTheory.ComposableArrows.isComplex_iff_of_iso + theorem CategoryTheory.ComposableArrows.isComplex_of_iso + theorem CategoryTheory.ComposableArrows.isComplex₀ + theorem CategoryTheory.ComposableArrows.isComplex₁ + def CategoryTheory.ComposableArrows.sc' + def CategoryTheory.ComposableArrows.sc'Map + def CategoryTheory.ComposableArrows.sc'MapIso + def CategoryTheory.ComposableArrows.scMap + def CategoryTheory.ComposableArrows.scMapIso + def CategoryTheory.ShortComplex.toComposableArrows 2023-11-10 12:09:33 c9afd27 chore(Analysis/InnerProductSpace): LinearMap.isAdjointPair_inner generalization to isROrC (#8309) I forgot in the previous PR (#8295) that there are two versions of the adjoint. ESTIMATED CHANGES Modified Mathlib/Analysis/InnerProductSpace/Adjoint.lean +/- theorem LinearMap.isAdjointPair_inner 2023-11-10 10:42:45 7a1bf93 chore: rename `star_mul_self_nonneg'` (#8305) ESTIMATED CHANGES Modified Mathlib/Algebra/Star/Order.lean + theorem mul_star_self_nonneg - theorem star_mul_self_nonneg' Modified Mathlib/LinearAlgebra/Matrix/DotProduct.lean 2023-11-10 10:42:44 1d77564 feat: Simple results about `ZMod` (#8205) ESTIMATED CHANGES Modified Mathlib/Data/ZMod/Defs.lean Modified Mathlib/GroupTheory/SpecificGroups/Cyclic.lean Modified Mathlib/GroupTheory/Torsion.lean + theorem Monoid.isTorsionFree_of_subsingleton 2023-11-10 10:07:45 e72b701 feat(Condensed): discrete-underlying adjunction (#8270) We define a functor, associating to an object of a concrete category with nice properties, a "discrete" condensed object, and prove that this functor is left adjoint to the forgetful functor from `Condensed C` to `C`. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Sites/ConstantSheaf.lean Modified Mathlib/CategoryTheory/Sites/Sheaf.lean Added Mathlib/Condensed/Discrete.lean 2023-11-10 10:07:44 92f0def feat: Diagonality of `Sym2.map` (#8183) ESTIMATED CHANGES Modified Mathlib/Data/Sym/Sym2.lean + theorem Sym2.isDiag_map 2023-11-10 09:14:01 5ced22e refactor: Unify spelling of "prime factors" (#8164) mathlib can't make up its mind on whether to spell "the prime factors of `n`" as `n.factors.toFinset` or `n.factorization.support`, even though those two are defeq. This PR proposes to unify everything to a new definition `Nat.primeFactors`, and streamline the existing scattered API about `n.factors.toFinset` and `n.factorization.support` to `Nat.primeFactors`. We also get to write a bit more API that didn't make sense before, eg `primeFactors_mono`. ESTIMATED CHANGES Modified Mathlib/Data/Nat/Factorization/Basic.lean - theorem Nat.dvd_of_mem_factorization - theorem Nat.factor_iff_mem_factorization - theorem Nat.factorization_disjoint_of_coprime - theorem Nat.factorization_mul_support - theorem Nat.factorization_mul_support_of_coprime - theorem Nat.le_of_mem_factorization - theorem Nat.pos_of_mem_factorization - theorem Nat.prime_of_mem_factorization - theorem Nat.prod_factorization_eq_prod_factors + theorem Nat.prod_factorization_eq_prod_primeFactors - theorem Nat.prod_factors_gcd_mul_prod_factors_mul + theorem Nat.prod_primeFactors_dvd + theorem Nat.prod_primeFactors_gcd_mul_prod_primeFactors_mul + theorem Nat.prod_primeFactors_prod_factorization - theorem Nat.prod_prime_factors_dvd +/- theorem Nat.support_factorization Modified Mathlib/Data/Nat/Factorization/PrimePow.lean + theorem isPrimePow_iff_card_primeFactors_eq_one - theorem isPrimePow_iff_card_support_factorization_eq_one Modified Mathlib/Data/Nat/Factors.lean + theorem Nat.mem_factors' Modified Mathlib/Data/Nat/PrimeFin.lean + theorem Nat.Coprime.primeFactors_mul + theorem Nat.disjoint_primeFactors + theorem Nat.dvd_of_mem_primeFactors - theorem Nat.factors_mul_toFinset - theorem Nat.factors_mul_toFinset_of_coprime + theorem Nat.le_of_mem_primeFactors + theorem Nat.mem_primeFactors + theorem Nat.mem_primeFactors_iff_mem_factors + theorem Nat.mem_primeFactors_of_ne_zero + theorem Nat.pos_of_mem_primeFactors - theorem Nat.pow_factors_toFinset - theorem Nat.pow_succ_factors_toFinset + def Nat.primeFactors + theorem Nat.primeFactors_eq_empty + theorem Nat.primeFactors_gcd + theorem Nat.primeFactors_mono + theorem Nat.primeFactors_mul + theorem Nat.primeFactors_one + theorem Nat.primeFactors_pow + theorem Nat.primeFactors_pow_succ + theorem Nat.primeFactors_prime_pow + theorem Nat.primeFactors_zero + theorem Nat.prime_of_mem_primeFactors - theorem Nat.prime_pow_prime_divisor + theorem Nat.toFinset_factors Modified Mathlib/Data/Nat/Totient.lean - theorem Nat.totient_eq_div_factors_mul + theorem Nat.totient_eq_div_primeFactors_mul - theorem Nat.totient_mul_prod_factors + theorem Nat.totient_mul_prod_primeFactors Modified Mathlib/GroupTheory/Exponent.lean Modified Mathlib/GroupTheory/Nilpotent.lean Modified Mathlib/GroupTheory/Sylow.lean Modified Mathlib/NumberTheory/ArithmeticFunction.lean Modified Mathlib/NumberTheory/Cyclotomic/PrimitiveRoots.lean 2023-11-10 09:14:00 48b0f03 feat(Data/Polynomial/AlgebraMap): more results for non-commutative polynomials (#8116) This adds an `AlgHom` version of `eval₂RingHom'`, and a stronger ext lemma for noncommutative algebras. This is a follow-up to leanprover-community/mathlib#9250 This better ext lemma golfs away most of a nasty proof. ESTIMATED CHANGES Modified Mathlib/Data/Matrix/Basic.lean + theorem Matrix.map_id' Modified Mathlib/Data/Polynomial/AlgebraMap.lean + def Polynomial.CAlgHom +/- theorem Polynomial.algHom_ext' +/- theorem Polynomial.algHom_ext + def Polynomial.eval₂AlgHom' Modified Mathlib/Data/Polynomial/Eval.lean Modified Mathlib/LinearAlgebra/Matrix/Charpoly/Coeff.lean + theorem Matrix.matPolyEquiv_eval_eq_map + theorem Matrix.matPolyEquiv_symm_map_eval Modified Mathlib/RingTheory/Localization/Integral.lean Modified Mathlib/RingTheory/PowerBasis.lean 2023-11-10 09:13:59 0ffba7e feat(FieldTheory/PrimitiveElement): Steinitz Theorem (#7788) Added `Field.exists_primitive_element_iff_finite_intermediateField`: a finite extension `E / F` has a primitive element if and only if the intermediate fields between `E / F` are finitely many. Also known as Steinitz Theorem . ESTIMATED CHANGES Modified Mathlib/FieldTheory/Adjoin.lean + theorem IntermediateField.adjoin_eq_top_of_adjoin_eq_top + theorem IntermediateField.adjoin_minpoly_coeff_of_exists_primitive_element + theorem IntermediateField.adjoin_self + theorem IntermediateField.finiteDimensional_adjoin_of_finite_of_isAlgebraic + theorem IntermediateField.lift_adjoin + theorem IntermediateField.lift_adjoin_simple + theorem IntermediateField.lift_bot + theorem IntermediateField.lift_top + theorem IntermediateField.mem_adjoin_iff + theorem IntermediateField.mem_adjoin_simple_iff + theorem IntermediateField.restrictScalars_adjoin Modified Mathlib/FieldTheory/PrimitiveElement.lean + theorem Field.exists_primitive_element_iff_finite_intermediateField + theorem Field.exists_primitive_element_of_finite_intermediateField + theorem Field.finiteDimensional_of_exists_primitive_element + theorem Field.finiteDimensional_of_finite_intermediateField + theorem Field.finite_intermediateField_of_exists_primitive_element + theorem Field.isAlgebraic_of_adjoin_eq_adjoin + theorem Field.isAlgebraic_of_finite_intermediateField Modified Mathlib/RingTheory/Polynomial/Basic.lean Modified docs/overview.yaml Modified docs/undergrad.yaml 2023-11-10 09:13:57 d83e9b6 feat(FieldTheory/IsSepClosed): add `IsSepClosed.lift` and `IsSepClosure.equiv` (#6670) - `IsSepClosed.lift` is a map from a separable extension `L` of `K`, into any separably closed extension `M` of `K`. - `IsSepClosure.equiv` is a proof that any two separable closures of the same field are isomorphic. ESTIMATED CHANGES Modified Mathlib/FieldTheory/IsAlgClosed/Basic.lean Modified Mathlib/FieldTheory/IsSepClosed.lean Modified Mathlib/RingTheory/Algebraic.lean 2023-11-10 08:35:41 a244138 chore(Data/Complex/Basic): add missing cast lemmas for `Rat` (#8225) One `Nat` lemma was duplicated ESTIMATED CHANGES Modified Mathlib/Data/Complex/Basic.lean +/- theorem Complex.I_pow_bit0 +/- theorem Complex.I_pow_bit1 +/- theorem Complex.I_zpow_bit0 +/- theorem Complex.I_zpow_bit1 - theorem Complex.abs_cast_nat +/- theorem Complex.int_cast_im +/- theorem Complex.int_cast_re +/- theorem Complex.nat_cast_im +/- theorem Complex.nat_cast_re + theorem Complex.normSq_int_cast + theorem Complex.normSq_nat_cast + theorem Complex.normSq_rat_cast +/- theorem Complex.ofReal_int_cast +/- theorem Complex.ofReal_nat_cast +/- theorem Complex.ofReal_rat_cast +/- theorem Complex.rat_cast_im +/- theorem Complex.rat_cast_re Modified Mathlib/Data/Complex/Exponential.lean Modified Mathlib/NumberTheory/LSeries.lean 2023-11-10 02:14:06 0a4a67e chore: bump dependencies (#8308) ESTIMATED CHANGES Modified lake-manifest.json 2023-11-09 19:09:39 332340d fix: correct precedence for coercion arrows (#8297) The new precedences match `coeNotation` in core: ```lean syntax:1024 (name := coeNotation) "↑" term:1024 : term ``` They also match the precedence in Lean 3. ESTIMATED CHANGES Modified Mathlib/Algebra/BigOperators/Basic.lean Modified Mathlib/CategoryTheory/ConcreteCategory/BundledHom.lean Modified Mathlib/Data/DFinsupp/Basic.lean Modified Mathlib/LinearAlgebra/Ray.lean +/- theorem sameRay_of_mem_orbit Modified Mathlib/MeasureTheory/MeasurableSpace/Basic.lean Modified Mathlib/Order/Hom/Basic.lean +/- theorem OrderIso.coe_dualDual +/- theorem OrderIso.coe_refl +/- theorem OrderIso.coe_trans Modified Mathlib/Tactic/Coe.lean 2023-11-09 17:46:13 91dfb1a feat(RingTheory/PolynomialAlgebra): lemmas about `X` and `C` (#8294) ESTIMATED CHANGES Modified Mathlib/RingTheory/PolynomialAlgebra.lean + theorem matPolyEquiv_diagonal_X + theorem matPolyEquiv_map_C + theorem matPolyEquiv_symm_C + theorem matPolyEquiv_symm_X 2023-11-09 17:46:12 b9c3765 feat: Prove that a fundamental domain has nonzero volume (#8287) ESTIMATED CHANGES Modified Mathlib/Algebra/Module/Zlattice.lean + theorem Zspan.measure_fundamentalDomain_ne_zero Modified Mathlib/MeasureTheory/Group/FundamentalDomain.lean + theorem MeasureTheory.IsFundamentalDomain.measure_ne_zero 2023-11-09 16:27:14 e063717 style: shorten simps configurations (#8296) Use `.asFn` and `.lemmasOnly` as `simps` configuration options. For reference, these are defined here: https://github.com/leanprover-community/mathlib4/blob/4055c8b471380825f07416b12cb0cf266da44d84/Mathlib/Tactic/Simps/Basic.lean#L843-L851 ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/Opposite.lean Modified Mathlib/Algebra/Group/Equiv/Basic.lean Modified Mathlib/Algebra/Group/Opposite.lean Modified Mathlib/Algebra/Group/Units/Equiv.lean Modified Mathlib/Algebra/GroupWithZero/Units/Equiv.lean Modified Mathlib/Algebra/MonoidAlgebra/ToDirectSum.lean Modified Mathlib/Algebra/Opposites.lean Modified Mathlib/Algebra/Order/Monoid/Units.lean Modified Mathlib/Algebra/Order/Monoid/WithTop.lean Modified Mathlib/Algebra/Order/Ring/WithTop.lean Modified Mathlib/Algebra/Quaternion.lean Modified Mathlib/Algebra/Ring/Basic.lean Modified Mathlib/Algebra/Ring/Opposite.lean Modified Mathlib/Analysis/BoxIntegral/Partition/Additive.lean Modified Mathlib/Analysis/BoxIntegral/Partition/Tagged.lean Modified Mathlib/Analysis/NormedSpace/OperatorNorm.lean Modified Mathlib/Analysis/NormedSpace/PiLp.lean Modified Mathlib/Analysis/NormedSpace/ProdLp.lean Modified Mathlib/Analysis/NormedSpace/WithLp.lean Modified Mathlib/Analysis/SpecialFunctions/Complex/Circle.lean Modified Mathlib/CategoryTheory/Preadditive/AdditiveFunctor.lean Modified Mathlib/Data/Bundle.lean Modified Mathlib/Data/Finsupp/ToDFinsupp.lean Modified Mathlib/Data/Nat/Cast/Order.lean Modified Mathlib/Data/Nat/Pairing.lean Modified Mathlib/Data/PNat/Basic.lean Modified Mathlib/Data/Real/ENatENNReal.lean Modified Mathlib/GroupTheory/Coprod/Basic.lean Modified Mathlib/LinearAlgebra/Alternating/Basic.lean Modified Mathlib/LinearAlgebra/CliffordAlgebra/Even.lean Modified Mathlib/LinearAlgebra/Matrix/GeneralLinearGroup.lean Modified Mathlib/LinearAlgebra/Multilinear/Basic.lean Modified Mathlib/LinearAlgebra/Pi.lean Modified Mathlib/Logic/Embedding/Basic.lean Modified Mathlib/Logic/Equiv/Basic.lean Modified Mathlib/Logic/Equiv/Defs.lean Modified Mathlib/Logic/Equiv/Fin.lean Modified Mathlib/Logic/Equiv/LocalEquiv.lean Modified Mathlib/MeasureTheory/Group/MeasurableEquiv.lean Modified Mathlib/MeasureTheory/MeasurableSpace/Basic.lean Modified Mathlib/Order/Hom/Basic.lean Modified Mathlib/Order/OmegaCompletePartialOrder.lean Modified Mathlib/RingTheory/AdjoinRoot.lean Modified Mathlib/RingTheory/Derivation/ToSquareZero.lean Modified Mathlib/RingTheory/IsTensorProduct.lean Modified Mathlib/RingTheory/PowerBasis.lean Modified Mathlib/RingTheory/WittVector/Frobenius.lean Modified Mathlib/SetTheory/Cardinal/Basic.lean Modified Mathlib/Tactic/Simps/Basic.lean Modified Mathlib/Topology/Algebra/Module/Alternating.lean Modified Mathlib/Topology/Algebra/Module/Basic.lean Modified Mathlib/Topology/Category/TopCat/Opens.lean Modified Mathlib/Topology/ContinuousFunction/Bounded.lean Modified Mathlib/Topology/ContinuousFunction/Compact.lean Modified Mathlib/Topology/Homeomorph.lean Modified Mathlib/Topology/Instances/NNReal.lean Modified Mathlib/Topology/LocalHomeomorph.lean Modified Mathlib/Topology/MetricSpace/Dilation.lean Modified Mathlib/Topology/Sets/Opens.lean Modified Mathlib/Topology/UniformSpace/Equiv.lean Modified Mathlib/Topology/VectorBundle/Basic.lean Modified test/Simps.lean 2023-11-09 15:38:57 ac00de1 feat: port smul positivity extension (#8067) ESTIMATED CHANGES Modified Mathlib/Algebra/Order/SMul.lean + def Mathlib.Meta.Positivity.evalHSMul Modified test/positivity.lean 2023-11-09 15:05:19 4bca330 feat(SpecialFunctions/Pow): add 2 more `rpow_ofNat` (#8281) - Add `NNReal.rpow_ofNat` and `ENNReal.rpow_ofNat`. - Add `ENNReal.rpow_lt_top_iff_of_pos`. ESTIMATED CHANGES Modified Mathlib/Analysis/SpecialFunctions/Pow/NNReal.lean + theorem ENNReal.rpow_lt_top_iff_of_pos + theorem ENNReal.rpow_ofNat +/- theorem ENNReal.rpow_two + theorem NNReal.rpow_ofNat +/- theorem NNReal.rpow_two 2023-11-09 13:54:39 928e39c feat: `reduce_mod_char` tactic for reducing numeric expressions in positive characteristic (#5376) This PR defines the `reduce_mod_char` tactic, which traverses expressions looking for numerals `n`, such that the type of `n` is a ring of (positive) characteristic `p`, and reduces these numerals modulo `p`, to lie between `0` and `p`. This is one of my first Lean 4 metaprogramming projects, so I eagerly await you pointing out all my mistakes. Especially I would like to learn where I should insert those magical `withContext` and `instantiateMVars` incantations. Zulip thread: https://leanprover.zulipchat.com/#narrow/stream/217875-Is-there-code-for-X.3F/topic/tactic.20for.20easy.20calculations.20in.20ZMod.20p.3F ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/RingTheory/Polynomial/Basic.lean Modified Mathlib/Tactic.lean Added Mathlib/Tactic/NormNum/Mod.lean + theorem Mathlib.Meta.NormNum.isInt_emod + theorem Mathlib.Meta.NormNum.isInt_emod_neg + theorem Mathlib.Meta.NormNum.isInt_refl + theorem Mathlib.Meta.NormNum.isNat_neg_of_isNegNat Modified Mathlib/Tactic/NormNum/Result.lean + def Mathlib.Meta.NormNum.Result.eqTrans Added Mathlib/Tactic/ReduceModChar.lean + theorem Tactic.ReduceModChar.CharP.cast_int_eq_mod + theorem Tactic.ReduceModChar.CharP.isInt_of_mod + theorem Tactic.ReduceModChar.CharP.neg_eq_sub_one_mul + theorem Tactic.ReduceModChar.CharP.neg_mul_eq_sub_one_mul + inductive Tactic.ReduceModChar.TypeToCharPResult Added Mathlib/Tactic/ReduceModChar/Ext.lean Modified test/norm_num_ext.lean Added test/reduce_mod_char.lean + theorem foo 2023-11-09 12:45:53 645905b chore(InnerProductSpace/Adjoint): isAdjointPair_inner for IsROrC (#8295) ESTIMATED CHANGES Modified Mathlib/Analysis/InnerProductSpace/Adjoint.lean +/- theorem ContinuousLinearMap.isAdjointPair_inner 2023-11-09 12:45:52 c488ddf style: add missing spaces around colons (#8293) This is not exhaustive ESTIMATED CHANGES Modified Mathlib/Algebra/Group/TypeTags.lean Modified Mathlib/Algebra/Homology/ShortComplex/FunctorEquivalence.lean +/- def CategoryTheory.ShortComplex.FunctorEquivalence.counitIso Modified Mathlib/Algebra/PUnitInstances.lean Modified Mathlib/Analysis/NormedSpace/lpSpace.lean Modified Mathlib/CategoryTheory/Monad/Monadicity.lean Modified Mathlib/CategoryTheory/Monoidal/Category.lean +/- theorem CategoryTheory.MonoidalCategory.tensorHom_def' Modified Mathlib/Combinatorics/Partition.lean Modified Mathlib/Data/List/MinMax.lean Modified Mathlib/Data/Nat/Digits.lean +/- theorem Nat.sum_le_ofDigits Modified Mathlib/Data/Nat/PartENat.lean +/- theorem PartENat.get_ofNat' Modified Mathlib/Data/Ordmap/Ordnode.lean Modified Mathlib/Data/QPF/Multivariate/Constructions/Cofix.lean +/- theorem MvQPF.liftR_map_last Modified Mathlib/Geometry/Manifold/Algebra/SmoothFunctions.lean Modified Mathlib/Init/Algebra/Classes.lean Modified Mathlib/Order/Basic.lean Modified Mathlib/RingTheory/Derivation/Lie.lean Modified Mathlib/RingTheory/Flat.lean Modified Mathlib/RingTheory/PowerSeries/Derivative.lean Modified Mathlib/RingTheory/TensorProduct.lean +/- theorem Algebra.TensorProduct.map_id Modified Mathlib/SetTheory/Ordinal/NaturalOps.lean Modified Mathlib/Tactic/Linarith/Preprocessing.lean +/- def Linarith.isNatCoe Modified Mathlib/Topology/Category/Profinite/Nobeling.lean +/- theorem Profinite.NobelingProof.Products.isGood_nil Modified Mathlib/Topology/LocallyConstant/Algebra.lean +/- def LocallyConstant.comapₐ +/- def LocallyConstant.congrLeftₐ +/- def LocallyConstant.congrLeftₗ 2023-11-09 12:45:50 934bdf3 chore: add missing API around `Fin.snoc` (#8231) Adds a recursion principle for `Fin n` in terms of `Fin.snoc` and `Fin.elim0`, and a few related theorems ESTIMATED CHANGES Modified Mathlib/Data/Fin/Tuple/Basic.lean + theorem Fin.append_cast_left + theorem Fin.append_cast_right + theorem Fin.append_left_snoc + theorem Fin.append_right_cons + theorem Fin.cons_eq_append + def Fin.snocCases + theorem Fin.snocCases_snoc + def Fin.snocInduction + theorem Fin.snoc_eq_append 2023-11-09 12:45:49 db05266 featl(CategoryTheory/Bicategory/Adjunction): define composition (#6407) - [x] depends on: #6406 ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Bicategory/Adjunction.lean + def CategoryTheory.Bicategory.Adjunction.comp + def CategoryTheory.Bicategory.Adjunction.compCounit + def CategoryTheory.Bicategory.Adjunction.compUnit + theorem CategoryTheory.Bicategory.Adjunction.comp_left_triangle_aux + theorem CategoryTheory.Bicategory.Adjunction.comp_right_triangle_aux 2023-11-09 12:07:17 4055c8b feat: change definition for `p = 0` in `piLp` (#8290) The current definition of the distance in `piLp` uses the distance for `p > 0`, but avoids it for `p = 0`. We change the definition for `p = 0` to also have it in terms of the distance, to make sure it is reasonable even when one uses non-Hausdorff spaces.This matches what has been done for `prodLp` in #6136. ESTIMATED CHANGES Modified Mathlib/Analysis/NormedSpace/LpEquiv.lean Modified Mathlib/Analysis/NormedSpace/PiLp.lean +/- theorem PiLp.dist_eq_card +/- theorem PiLp.edist_eq_card +/- theorem PiLp.norm_eq_card 2023-11-09 12:07:16 7901bf4 feat(MeasureSpace): add `Measure.map_apply₀` (#8283) Add a version of `map_apply` for `NullMeasurableSet`s. Also remove some empty lines and golf the proof of `ae_le_of_ae_lt`. ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Measure/MeasureSpace.lean + theorem MeasureTheory.Measure.liftLinear_apply₀ + theorem MeasureTheory.Measure.map_apply₀ Modified Mathlib/MeasureTheory/Measure/MeasureSpaceDef.lean +/- theorem MeasureTheory.ae_le_of_ae_lt 2023-11-09 10:14:31 4dd5ba0 chore(Data/Real/ENNReal): rename `some` to `ofNNReal` (#8276) The `some` name feels like an implementation detail. ESTIMATED CHANGES Modified Mathlib/Data/Real/ENNReal.lean +/- theorem ENNReal.coe_max +/- theorem ENNReal.coe_min +/- theorem ENNReal.coe_mono +/- theorem ENNReal.coe_strictMono + def ENNReal.ofNNReal +/- theorem ENNReal.range_coe' +/- theorem ENNReal.range_coe - def ENNReal.some + def Mathlib.Meta.Positivity.evalENNRealOfNNReal - def Mathlib.Meta.Positivity.evalENNRealSome Modified Mathlib/MeasureTheory/Function/L1Space.lean Modified Mathlib/MeasureTheory/Integral/Lebesgue.lean Modified Mathlib/Probability/Variance.lean Modified Mathlib/Topology/Instances/ENNReal.lean Modified Mathlib/Topology/MetricSpace/PseudoMetric.lean 2023-11-09 10:14:30 f19e98e feat: Generalize results around the Gaussian integrals to powers other than two (#8033) These are straight generalisations of results related to Gauss integrals to real positive powers other than 2. They will be useful for #8030 ESTIMATED CHANGES Modified Mathlib/Analysis/SpecialFunctions/Gaussian.lean + theorem exp_neg_mul_rpow_isLittleO_exp_neg + theorem integrableOn_rpow_mul_exp_neg_mul_rpow + theorem integrableOn_rpow_mul_exp_neg_rpow + theorem rpow_mul_exp_neg_mul_rpow_isLittleO_exp_neg 2023-11-09 09:05:05 376952a feat: Add polar change of coordinates for complex variable (#8034) ESTIMATED CHANGES Modified Mathlib/Analysis/Complex/Basic.lean + theorem Complex.equivRealProdClm_symm_apply Modified Mathlib/Analysis/SpecialFunctions/PolarCoord.lean + theorem Complex.polardCoord_symm_abs Modified Mathlib/Data/Complex/Module.lean + theorem Complex.equivRealProdAddHom_symm_apply + theorem Complex.equivRealProdLm_symm_apply Modified Mathlib/MeasureTheory/Measure/Lebesgue/Complex.lean 2023-11-09 08:02:33 e8a32f1 feat(StronglyMeasurable): add `AEStronglyMeasurable.nullMeasurableSet_support` (#8282) ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Function/StronglyMeasurable/Basic.lean + theorem MeasureTheory.AEStronglyMeasurable.nullMeasurableSet_mulSupport 2023-11-09 04:02:45 66e5402 chore(NormedSpace/PiLp): drop unneeded `dite` (#8280) Use non-dependent `if` instead. ESTIMATED CHANGES Modified Mathlib/Analysis/NormedSpace/PiLp.lean 2023-11-09 04:02:44 a084bd5 style(SetTheory): remove useless parentheses (#8279) These were caused by a bad notation precedence in mathlib3, where the local version of `^` was given precedence 0. We're not using the local notation at all in Mathlib4 (partly because it was broken, which this PR fixes). ESTIMATED CHANGES Modified Mathlib/SetTheory/Cardinal/Basic.lean +/- theorem Cardinal.cantor' +/- theorem Cardinal.cantor +/- theorem Cardinal.le_powerlt +/- theorem Cardinal.lift_power +/- theorem Cardinal.lift_two_power +/- theorem Cardinal.mk_powerset +/- theorem Cardinal.mk_set +/- theorem Cardinal.mul_power +/- theorem Cardinal.natCast_pow +/- theorem Cardinal.one_power +/- theorem Cardinal.pow_cast_right +/- theorem Cardinal.power_add +/- theorem Cardinal.power_bit0 +/- theorem Cardinal.power_bit1 +/- theorem Cardinal.power_le_max_power_one +/- theorem Cardinal.power_le_power_left +/- theorem Cardinal.power_le_power_right +/- theorem Cardinal.power_lt_aleph0 +/- theorem Cardinal.power_mul +/- theorem Cardinal.power_ne_zero +/- theorem Cardinal.power_one +/- theorem Cardinal.power_pos +/- theorem Cardinal.power_zero +/- theorem Cardinal.powerlt_le +/- theorem Cardinal.powerlt_succ +/- theorem Cardinal.prod_const' +/- theorem Cardinal.self_le_power +/- theorem Cardinal.zero_power +/- theorem Cardinal.zero_power_le Modified Mathlib/SetTheory/Cardinal/Ordinal.lean Modified Mathlib/SetTheory/Ordinal/Exponential.lean +/- theorem Ordinal.div_opow_log_lt +/- theorem Ordinal.div_opow_log_pos +/- theorem Ordinal.left_le_opow +/- theorem Ordinal.log_def +/- theorem Ordinal.log_mono_right +/- theorem Ordinal.log_nonempty +/- theorem Ordinal.log_opow +/- theorem Ordinal.lt_opow_iff_log_lt +/- theorem Ordinal.mod_opow_log_lt_self +/- theorem Ordinal.nat_cast_opow +/- theorem Ordinal.one_opow +/- theorem Ordinal.opow_add +/- theorem Ordinal.opow_dvd_opow +/- theorem Ordinal.opow_dvd_opow_iff +/- theorem Ordinal.opow_isLimit +/- theorem Ordinal.opow_isLimit_left +/- theorem Ordinal.opow_isNormal +/- theorem Ordinal.opow_le_iff_le_log +/- theorem Ordinal.opow_le_opow_iff_right +/- theorem Ordinal.opow_le_opow_left +/- theorem Ordinal.opow_le_opow_right +/- theorem Ordinal.opow_log_le_self +/- theorem Ordinal.opow_lt_opow_iff_right +/- theorem Ordinal.opow_lt_opow_left_of_succ +/- theorem Ordinal.opow_mul +/- theorem Ordinal.opow_mul_add_lt_opow_mul_succ +/- theorem Ordinal.opow_mul_add_lt_opow_succ +/- theorem Ordinal.opow_mul_add_pos +/- theorem Ordinal.opow_ne_zero +/- theorem Ordinal.opow_one +/- theorem Ordinal.opow_one_add +/- theorem Ordinal.opow_pos +/- theorem Ordinal.opow_right_inj +/- theorem Ordinal.opow_succ +/- theorem Ordinal.opow_zero +/- theorem Ordinal.right_le_opow +/- theorem Ordinal.sup_opow_nat +/- theorem Ordinal.zero_opow' +/- theorem Ordinal.zero_opow 2023-11-09 03:06:13 6032e3a feat: inv interchanges cobounded and 𝓝[≠] 0 in normed division rings (#8234) ESTIMATED CHANGES Modified Mathlib/Analysis/Normed/Field/Basic.lean + theorem Filter.inv_cobounded₀ + theorem Filter.inv_nhdsWithin_ne_zero + theorem Filter.tendsto_inv₀_cobounded' + theorem Filter.tendsto_inv₀_cobounded + theorem Filter.tendsto_inv₀_nhdsWithin_ne_zero Modified Mathlib/Analysis/Normed/Group/Basic.lean + theorem comap_norm_nhdsWithin_Ioi_zero' Modified Mathlib/Order/Filter/AtTopBot.lean + theorem Filter.atTop_basis_Ioi' Modified Mathlib/Order/Filter/Bases.lean Modified Mathlib/Topology/Algebra/Order/Field.lean + theorem inv_atTop₀ + theorem inv_nhdsWithin_Ioi_zero +/- theorem tendsto_inv_atTop_zero' +/- theorem tendsto_inv_zero_atTop Modified Mathlib/Topology/Order/Basic.lean + theorem nhdsWithin_Ioi_basis 2023-11-09 01:53:06 76c21f6 feat: update toolchain & fetch cache on Mathlib update (#8243) Make use of the new `post_update` hooks in Lake to match Mathlib's toolchain and fetch cache when a downstream package runs `lake update`. ESTIMATED CHANGES Modified lakefile.lean 2023-11-09 00:36:38 1dfce85 chore: Merge back ordered cancellative stuff (#8170) There really is no reason (mathematically nor import graphically) to have `OrderedCancelCommMonoid` be defined in a separate file from `OrderedCommMonoid`. Also take the opportunity to: * make `OrderedCancelCommMonoid` extend `OrderedCommMonoid` * fix capitalisation in instance names * standardise to defining the additive of each structure version first, so that `to_additive` can be called directly on the multiplicative version * inline at no cost a few auxiliary lemmas ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Order/Group/Defs.lean Modified Mathlib/Algebra/Order/Monoid/Basic.lean + def Function.Injective.linearOrderedCancelCommMonoid + def Function.Injective.orderedCancelCommMonoid Deleted Mathlib/Algebra/Order/Monoid/Cancel/Basic.lean - def Function.Injective.linearOrderedCancelCommMonoid - def Function.Injective.orderedCancelCommMonoid Deleted Mathlib/Algebra/Order/Monoid/Cancel/Defs.lean - theorem OrderedCancelCommMonoid.lt_of_mul_lt_mul_left Modified Mathlib/Algebra/Order/Monoid/Defs.lean Modified Mathlib/Algebra/Order/Monoid/OrderDual.lean Modified Mathlib/Algebra/Order/Monoid/Prod.lean Modified Mathlib/Algebra/Order/Monoid/TypeTags.lean Modified Mathlib/Algebra/Order/Pi.lean Modified Mathlib/Algebra/Order/Ring/Defs.lean Modified Mathlib/Algebra/Order/Ring/InjSurj.lean Modified Mathlib/Algebra/Order/WithZero.lean Modified Mathlib/Data/Num/Lemmas.lean + theorem Num.toNat_injective +/- theorem Num.to_nat_inj Modified Mathlib/Data/Set/Intervals/Monoid.lean Modified Mathlib/GroupTheory/Submonoid/Operations.lean Modified Mathlib/RingTheory/DedekindDomain/FiniteAdeleRing.lean 2023-11-08 23:58:05 049141b feat: new class `InnerRegular` of measures (#8251) Towards general uniqueness results for the Haar measure, we introduce a new class of regular measures called `InnerRegular`, for measures which are inner regular with respect to compact sets. We also introduce `InnerRegularWRT` for more general classes of inner regular measures with properties to be prescribed, and `InnerRegularCompactLTTop` for measures which are regular for finite measure sets with respect to compact sets -- the latter property is the common denominator to the two main classes of Haar measures, the regular ones and the inner regular ones. ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Constructions/BorelSpace/Basic.lean Modified Mathlib/MeasureTheory/Measure/MeasureSpace.lean - theorem MeasureTheory.CompactSpace.isFiniteMeasure + theorem MeasureTheory.Measure.le_map_apply_image + theorem MeasureTheory.Measure.restrict_apply_le - theorem MeasureTheory.isLocallyFiniteMeasure_of_isFiniteMeasureOnCompacts Modified Mathlib/MeasureTheory/Measure/Regular.lean +/- theorem MeasurableSet.exists_isCompact_lt_add + theorem MeasurableSet.exists_lt_isCompact +/- theorem MeasurableSet.exists_lt_isCompact_of_ne_top + theorem MeasurableSet.measure_eq_iSup_isCompact +/- theorem MeasurableSet.measure_eq_iSup_isCompact_of_ne_top + theorem MeasureTheory.Measure.InnerRegular.exists_compact_not_null - theorem MeasureTheory.Measure.InnerRegular.exists_subset_lt_add + theorem MeasureTheory.Measure.InnerRegular.innerRegularWRT_isClosed_isOpen - theorem MeasureTheory.Measure.InnerRegular.isCompact_isClosed - theorem MeasureTheory.Measure.InnerRegular.map - theorem MeasureTheory.Measure.InnerRegular.measurableSet_of_open - theorem MeasureTheory.Measure.InnerRegular.measure_eq_iSup - theorem MeasureTheory.Measure.InnerRegular.of_pseudoEMetricSpace - theorem MeasureTheory.Measure.InnerRegular.smul - theorem MeasureTheory.Measure.InnerRegular.trans - theorem MeasureTheory.Measure.InnerRegular.weaklyRegular_of_finite - def MeasureTheory.Measure.InnerRegular + theorem MeasureTheory.Measure.InnerRegularWRT.exists_subset_lt_add + theorem MeasureTheory.Measure.InnerRegularWRT.isCompact_isClosed + theorem MeasureTheory.Measure.InnerRegularWRT.map' + theorem MeasureTheory.Measure.InnerRegularWRT.measurableSet_of_open + theorem MeasureTheory.Measure.InnerRegularWRT.measure_eq_iSup + theorem MeasureTheory.Measure.InnerRegularWRT.mono + theorem MeasureTheory.Measure.InnerRegularWRT.of_imp + theorem MeasureTheory.Measure.InnerRegularWRT.of_pseudoMetrizableSpace + theorem MeasureTheory.Measure.InnerRegularWRT.of_restrict + theorem MeasureTheory.Measure.InnerRegularWRT.of_sigmaFinite + theorem MeasureTheory.Measure.InnerRegularWRT.restrict + theorem MeasureTheory.Measure.InnerRegularWRT.restrict_of_measure_ne_top + theorem MeasureTheory.Measure.InnerRegularWRT.rfl + theorem MeasureTheory.Measure.InnerRegularWRT.smul + theorem MeasureTheory.Measure.InnerRegularWRT.trans + theorem MeasureTheory.Measure.InnerRegularWRT.weaklyRegular_of_finite + def MeasureTheory.Measure.InnerRegularWRT + theorem MeasureTheory.Measure.OuterRegular.of_restrict - theorem MeasureTheory.Measure.Regular.innerRegular_measurable + theorem MeasureTheory.Measure.Regular.restrict_of_measure_ne_top - theorem MeasureTheory.Measure.WeaklyRegular.restrict_of_measurableSet + theorem MeasureTheory.Measure.WeaklyRegular.restrict_of_measure_ne_top Modified docs/references.bib 2023-11-08 22:44:32 fe7e9d0 chore: split MeasureTheory.Decomposition.Lebesgue (#8272) Put all results about decomposition of signed measures into a new file. This does not significantly change the imports of the original file, because signed measures are used in the proof of the Lebesgue decomposition theorem for `Measure`. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/MeasureTheory/Decomposition/Lebesgue.lean - theorem MeasureTheory.ComplexMeasure.integrable_rnDeriv - def MeasureTheory.ComplexMeasure.rnDeriv - def MeasureTheory.ComplexMeasure.singularPart - theorem MeasureTheory.ComplexMeasure.singularPart_add_withDensity_rnDeriv_eq - theorem MeasureTheory.SignedMeasure.eq_rnDeriv - theorem MeasureTheory.SignedMeasure.eq_singularPart - theorem MeasureTheory.SignedMeasure.haveLebesgueDecomposition_mk - theorem MeasureTheory.SignedMeasure.integrable_rnDeriv - theorem MeasureTheory.SignedMeasure.jordanDecomposition_add_withDensity_mutuallySingular - theorem MeasureTheory.SignedMeasure.measurable_rnDeriv - theorem MeasureTheory.SignedMeasure.not_haveLebesgueDecomposition_iff - def MeasureTheory.SignedMeasure.rnDeriv - theorem MeasureTheory.SignedMeasure.rnDeriv_add - theorem MeasureTheory.SignedMeasure.rnDeriv_def - theorem MeasureTheory.SignedMeasure.rnDeriv_neg - theorem MeasureTheory.SignedMeasure.rnDeriv_smul - theorem MeasureTheory.SignedMeasure.rnDeriv_sub - def MeasureTheory.SignedMeasure.singularPart - theorem MeasureTheory.SignedMeasure.singularPart_add - theorem MeasureTheory.SignedMeasure.singularPart_add_withDensity_rnDeriv_eq - theorem MeasureTheory.SignedMeasure.singularPart_mutuallySingular - theorem MeasureTheory.SignedMeasure.singularPart_neg - theorem MeasureTheory.SignedMeasure.singularPart_smul_nnreal - theorem MeasureTheory.SignedMeasure.singularPart_sub - theorem MeasureTheory.SignedMeasure.singularPart_totalVariation - theorem MeasureTheory.SignedMeasure.singularPart_zero - theorem MeasureTheory.SignedMeasure.toJordanDecomposition_eq_of_eq_add_withDensity Modified Mathlib/MeasureTheory/Decomposition/RadonNikodym.lean Added Mathlib/MeasureTheory/Decomposition/SignedLebesgue.lean + theorem MeasureTheory.ComplexMeasure.integrable_rnDeriv + def MeasureTheory.ComplexMeasure.rnDeriv + def MeasureTheory.ComplexMeasure.singularPart + theorem MeasureTheory.ComplexMeasure.singularPart_add_withDensity_rnDeriv_eq + theorem MeasureTheory.SignedMeasure.eq_rnDeriv + theorem MeasureTheory.SignedMeasure.eq_singularPart + theorem MeasureTheory.SignedMeasure.haveLebesgueDecomposition_mk + theorem MeasureTheory.SignedMeasure.integrable_rnDeriv + theorem MeasureTheory.SignedMeasure.jordanDecomposition_add_withDensity_mutuallySingular + theorem MeasureTheory.SignedMeasure.measurable_rnDeriv + theorem MeasureTheory.SignedMeasure.not_haveLebesgueDecomposition_iff + def MeasureTheory.SignedMeasure.rnDeriv + theorem MeasureTheory.SignedMeasure.rnDeriv_add + theorem MeasureTheory.SignedMeasure.rnDeriv_def + theorem MeasureTheory.SignedMeasure.rnDeriv_neg + theorem MeasureTheory.SignedMeasure.rnDeriv_smul + theorem MeasureTheory.SignedMeasure.rnDeriv_sub + def MeasureTheory.SignedMeasure.singularPart + theorem MeasureTheory.SignedMeasure.singularPart_add + theorem MeasureTheory.SignedMeasure.singularPart_add_withDensity_rnDeriv_eq + theorem MeasureTheory.SignedMeasure.singularPart_mutuallySingular + theorem MeasureTheory.SignedMeasure.singularPart_neg + theorem MeasureTheory.SignedMeasure.singularPart_smul_nnreal + theorem MeasureTheory.SignedMeasure.singularPart_sub + theorem MeasureTheory.SignedMeasure.singularPart_totalVariation + theorem MeasureTheory.SignedMeasure.singularPart_zero + theorem MeasureTheory.SignedMeasure.toJordanDecomposition_eq_of_eq_add_withDensity 2023-11-08 22:44:31 cd9849d feat(Algebra/Algebra/Hom): add a trivial ext lemma (#8168) This caused a few downstream proofs to fail with "no goals", forcing them to be golfed! ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/Hom.lean + theorem Algebra.ext_id Modified Mathlib/Data/MvPolynomial/Equiv.lean Modified Mathlib/LinearAlgebra/CliffordAlgebra/BaseChange.lean Modified Mathlib/LinearAlgebra/CliffordAlgebra/Equivs.lean 2023-11-08 22:44:30 92d78f8 feat: `attach` and `filter` lemmas (#1470) Match https://github.com/leanprover-community/mathlib/pull/18087 ESTIMATED CHANGES Modified Mathlib/Algebra/BigOperators/Basic.lean + theorem Finset.card_filter + theorem Finset.natCast_card_filter + theorem Finset.prod_map_val +/- theorem Finset.sum_boole Modified Mathlib/Algebra/BigOperators/Order.lean Modified Mathlib/Data/Finset/Card.lean + theorem Finset.card_val Modified Mathlib/Data/Finset/Image.lean + theorem Finset.filter_attach' + theorem Finset.filter_attach + theorem Finset.map_filter' Modified Mathlib/Data/List/Basic.lean + theorem List.attach_nil + theorem List.filter_attach' + theorem List.filter_attach + theorem List.filter_comm + theorem List.map_filter' Modified Mathlib/Data/List/Count.lean + theorem List.countP_attach + theorem List.count_attach Modified Mathlib/Data/List/Perm.lean Modified Mathlib/Data/Multiset/Basic.lean - theorem Multiset.attach_count_eq_count_coe + theorem Multiset.countP_attach + theorem Multiset.count_attach + theorem Multiset.filter_attach' + theorem Multiset.filter_attach + theorem Multiset.filter_comm + theorem Multiset.map_filter' Modified Mathlib/Data/Multiset/Lattice.lean Modified Mathlib/Data/Set/Finite.lean Modified Mathlib/NumberTheory/KummerDedekind.lean 2023-11-08 21:29:32 0821e8f feat: SigmaFinite instances for Measure.withDensity (#8271) If a measure `μ` is sigma-finite, then `μ.withDensity f` is sigma-finite for any a.e.-measurable and a.e. finite function `f`. ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Constructions/BorelSpace/Basic.lean + theorem AEMeasurable.ennreal_ofReal + theorem exists_spanning_measurableSet_le Modified Mathlib/MeasureTheory/Function/StronglyMeasurable/Basic.lean Modified Mathlib/MeasureTheory/Measure/WithDensity.lean + theorem MeasureTheory.SigmaFinite.withDensity + theorem MeasureTheory.SigmaFinite.withDensity_ofReal + theorem MeasureTheory.SigmaFinite.withDensity_of_ne_top' + theorem MeasureTheory.SigmaFinite.withDensity_of_ne_top 2023-11-08 21:29:31 21e2d92 chore(Order): restore missing simp attribute (#8162) This lemma was marked `simp` in mathlib3, and the attribute seems to have gone missing during the port. ESTIMATED CHANGES Modified Mathlib/Order/Hom/Basic.lean Modified Mathlib/Order/RelIso/Basic.lean +/- theorem RelEmbedding.inj 2023-11-08 20:09:25 3dc73bd chore: make sure all #align's are on a single line (#8215) We'll need to do this step anyway when it is time to remove them all. (See #8214 where I'm benchmarking the removal.) ESTIMATED CHANGES Modified Mathlib/Analysis/SpecialFunctions/Complex/Arg.lean Modified Mathlib/Analysis/SpecialFunctions/Complex/Log.lean Modified Mathlib/Data/Set/Card.lean Modified Mathlib/FieldTheory/Adjoin.lean Modified Mathlib/GroupTheory/Schreier.lean Modified Mathlib/MeasureTheory/Function/StronglyMeasurable/Basic.lean Modified Mathlib/NumberTheory/Cyclotomic/Basic.lean Modified Mathlib/RepresentationTheory/Action.lean Modified Mathlib/RingTheory/IntegralClosure.lean Modified Mathlib/Topology/Connected/Basic.lean Modified Mathlib/Topology/Connected/LocallyConnected.lean Modified Mathlib/Topology/Connected/TotallyDisconnected.lean Modified Mathlib/Topology/ContinuousFunction/Basic.lean 2023-11-08 20:09:24 9718370 feat: a relation is "function-like" iff it is given by `(f · = ·)` (#8190) Partially inspired by [this thread](https://leanprover.zulipchat.com/#narrow/stream/270676-lean4/topic/Is.20False.20.E2.86.92.20p.20an.20axiom.20in.20Lean.204.20.3F) on Zulip. ESTIMATED CHANGES Modified Mathlib/Logic/Function/Basic.lean + theorem Function.symmetric_apply_eq_iff + theorem forall_existsUnique_iff' + theorem forall_existsUnique_iff 2023-11-08 20:09:23 b438445 feat(Algebra/BigOperators): add `mul_le_prod`/`add_le_sum` (#8188) ESTIMATED CHANGES Modified Mathlib/Algebra/BigOperators/Order.lean + theorem Finset.mul_le_prod 2023-11-08 20:09:22 4b6c5c9 feat: Sum of lattices (#8181) The lexicographic sum of lattices is a lattice. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Data/Sum/Lattice.lean + def Sum.Lex.inlLatticeHom + theorem Sum.Lex.inl_inf + theorem Sum.Lex.inl_sup + def Sum.Lex.inrLatticeHom + theorem Sum.Lex.inr_inf + theorem Sum.Lex.inr_sup Modified Mathlib/Order/Disjoint.lean + theorem isCompl_comm Modified Mathlib/Order/Synonym.lean + theorem Lex.exists + theorem Lex.forall 2023-11-08 20:09:21 ab19b3c feat: Product of generalized boolean algebras (#8180) ESTIMATED CHANGES Modified Mathlib/Order/BooleanAlgebra.lean 2023-11-08 18:36:43 2f574a6 chore(Algebra/Order/Monoid/Prod): unify type names (#8273) ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Monoid/Prod.lean 2023-11-08 18:36:42 83bf88a feat: add HasDerivAt.norm_sq (#8268) This is just a special case of the `HasFDerivAt` version ESTIMATED CHANGES Modified Mathlib/Analysis/InnerProductSpace/Calculus.lean + theorem HasDerivAt.norm_sq + theorem HasDerivWithinAt.norm_sq 2023-11-08 18:36:41 6b362d1 fix: Fix `FundamentalGroupoid` being reducible. (#8257) Instead it is now the opposite -- a structure with a single field. [zulip discussion](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/Groupoid.2EtoCategory/near/400820106) ESTIMATED CHANGES Modified Mathlib/AlgebraicTopology/FundamentalGroupoid/Basic.lean + def FundamentalGroupoid.equiv +/- def FundamentalGroupoid.fromPath +/- def FundamentalGroupoid.fromTop +/- theorem FundamentalGroupoid.id_eq_path_refl + theorem FundamentalGroupoid.isEmpty_iff + theorem FundamentalGroupoid.nonempty_iff + theorem FundamentalGroupoid.subsingleton_iff +/- def FundamentalGroupoid.toPath +/- def FundamentalGroupoid.toTop + structure FundamentalGroupoid - def FundamentalGroupoid Modified Mathlib/AlgebraicTopology/FundamentalGroupoid/FundamentalGroup.lean Modified Mathlib/AlgebraicTopology/FundamentalGroupoid/InducedMaps.lean +/- theorem ContinuousMap.Homotopy.hcast_def Modified Mathlib/AlgebraicTopology/FundamentalGroupoid/PUnit.lean Modified Mathlib/AlgebraicTopology/FundamentalGroupoid/Product.lean Modified Mathlib/AlgebraicTopology/FundamentalGroupoid/SimplyConnected.lean 2023-11-08 18:36:40 7fbfeaf feat: generalized eigenspaces are independent (#8177) The main change is to upgrade the existing `Module.End.eigenspaces_independent`, which applied only to eigenspaces (and required a `[Field K]` assumption) to `Module.End.independent_generalizedEigenspace`, which applies to generalized eigenspaces (and requires only `[NoZeroSMulDivisors R M]`) ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/Eigenspace/Basic.lean + theorem Module.End.disjoint_generalizedEigenspace + theorem Module.End.disjoint_iSup_generalizedEigenspace +/- theorem Module.End.eigenspaces_independent +/- theorem Module.End.eigenvectors_linearIndependent + theorem Module.End.iSup_generalizedEigenspace_eq_generalizedEigenspace_finrank + theorem Module.End.independent_generalizedEigenspace + theorem Module.End.injOn_generalizedEigenspace + theorem Module.End.mapsTo_generalizedEigenspace_of_comm + theorem Module.End.mapsTo_iSup_generalizedEigenspace_of_comm + theorem Submodule.inf_generalizedEigenspace Modified Mathlib/LinearAlgebra/Eigenspace/Minpoly.lean + theorem Module.End.finite_hasEigenvalue 2023-11-08 18:36:39 d34f0e9 chore: add basic @[simp]s for `Gamma` (#7977) I don't personally have any need for these. It just seemed like these would make the API more complete. ESTIMATED CHANGES Modified Mathlib/Analysis/SpecialFunctions/Gamma/Basic.lean + theorem Complex.Gamma_ofNat_eq_factorial +/- theorem Complex.Gamma_one + theorem Real.Gamma_ofNat_eq_factorial Modified Mathlib/Analysis/SpecialFunctions/Gamma/BohrMollerup.lean +/- theorem Real.Gamma_two 2023-11-08 17:18:18 761f297 chore: bump dependencies (#8266) ESTIMATED CHANGES Modified lake-manifest.json 2023-11-08 15:51:56 11572f1 chore: tidy various files (#8175) ESTIMATED CHANGES Modified Archive/Imo/Imo2005Q4.lean Modified Mathlib/Analysis/Normed/Group/Basic.lean Modified Mathlib/Analysis/Normed/Group/SemiNormedGroupCat/Completion.lean Modified Mathlib/Data/List/Lex.lean Modified Mathlib/Data/Set/Function.lean + theorem Set.eqOn_univ Modified Mathlib/MeasureTheory/Constructions/BorelSpace/Basic.lean + theorem measurable_of_isClosed' - theorem measurable_of_is_closed' Modified Mathlib/MeasureTheory/Constructions/BorelSpace/Metrizable.lean Modified Mathlib/MeasureTheory/Measure/MeasureSpace.lean Modified Mathlib/NumberTheory/ArithmeticFunction.lean Modified Mathlib/Order/Filter/AtTopBot.lean Modified Mathlib/RingTheory/HahnSeries.lean +/- theorem HahnSeries.single_eq_zero_iff Modified Mathlib/RingTheory/PowerSeries/Derivative.lean Modified Mathlib/Topology/Connected/PathConnected.lean Modified Mathlib/Topology/MetricSpace/Basic.lean Modified Mathlib/Topology/MetricSpace/Bounded.lean Modified Mathlib/Topology/MetricSpace/Cauchy.lean Modified Mathlib/Topology/MetricSpace/PseudoMetric.lean Modified Mathlib/Topology/Sheaves/Functors.lean Modified Mathlib/Topology/Sheaves/SheafCondition/Sites.lean 2023-11-08 15:51:55 8e84de5 chore(PartENat): golf and improve `ofNat` support (#8002) This PR adds simp lemmas for `OfNat.ofNat n : PartENat`, `0 : PartENat`, and `1 : PartENat` in every place where there was a simp lemma for `((n : ℕ) : PartENat)`. This is necessary for simp confluence in the presence of lemmas such as `Nat.cast_ofNat`. In addition, instances for `CharZero` and `ZeroLEOneClass` are provided so that the lemmas from `Data/Nat/Cast/Order.lean` will apply, golfing some proofs. ESTIMATED CHANGES Modified Mathlib/Algebra/CharZero/Defs.lean Modified Mathlib/Data/Nat/PartENat.lean - theorem PartENat.coe_coeHom +/- theorem PartENat.coe_le_coe +/- theorem PartENat.coe_lt_coe + theorem PartENat.dom_ofNat + theorem PartENat.dom_one + theorem PartENat.dom_zero + theorem PartENat.get_ofNat' - def PartENat.natCast_AddMonoidHom + theorem PartENat.ofNat_lt_top + theorem PartENat.ofNat_ne_top + theorem PartENat.one_lt_top + theorem PartENat.one_ne_top +/- theorem PartENat.toWithTop_natCast' + theorem PartENat.toWithTop_ofNat + theorem PartENat.toWithTop_one' + theorem PartENat.toWithTop_one + theorem PartENat.withTopEquiv_ofNat + theorem PartENat.withTopEquiv_one + theorem PartENat.withTopEquiv_symm_ofNat + theorem PartENat.withTopEquiv_symm_one + theorem PartENat.zero_lt_top + theorem PartENat.zero_ne_top Modified Mathlib/Data/Polynomial/PartialFractions.lean 2023-11-08 15:00:38 5c17a3a chore(Topology/Algebra/Module/Basic): missing cast lemmas and better defeq (#8267) ESTIMATED CHANGES Modified Mathlib/Algebra/Module/LinearMap.lean + theorem Module.End.ofNat_apply Modified Mathlib/Topology/Algebra/Module/Basic.lean + theorem ContinuousLinearMap.algebraMap_apply + theorem ContinuousLinearMap.intCast_apply + theorem ContinuousLinearMap.natCast_apply + theorem ContinuousLinearMap.ofNat_apply 2023-11-08 13:26:55 d4e028d feat: add lemmas about `Inv.inv` for `Filter`s (#8261) ESTIMATED CHANGES Modified Mathlib/Order/Filter/AtTopBot.lean Modified Mathlib/Order/Filter/Pointwise.lean + theorem Filter.inv_atTop Modified Mathlib/Topology/Algebra/GroupWithZero.lean + theorem nhds_inv₀ + theorem tendsto_inv_iff₀ 2023-11-08 11:24:51 9efe273 feat: superFactorial_dvd_vandermonde_det (#6893) - [x] depends on: #6806 - [x] depends on: #6812 - [x] depends on: #6918 - [x] depends on: #6927 - [x] depends on: #6929 ESTIMATED CHANGES Modified Mathlib/Data/Nat/Factorial/SuperFactorial.lean + theorem Nat.prod_range_succ_factorial + theorem Nat.superFactorial_dvd_vandermonde_det Modified Mathlib/LinearAlgebra/Matrix/Block.lean + theorem Matrix.det_matrixOfPolynomials + theorem Matrix.matrixOfPolynomials_blockTriangular Modified Mathlib/LinearAlgebra/Vandermonde.lean + theorem Matrix.det_eval_matrixOfPolynomials_eq_det_vandermonde + theorem Matrix.eval_matrixOfPolynomials_eq_vandermonde_mul_matrixOfPolynomials Modified docs/references.bib 2023-11-08 09:33:31 b8b86fa feat(Bornology): add 2 lemmas (#8263) Add `Bornology.eventually_ne_cobounded` and `Filter.Tendsto.eventually_ne_cobounded`. ESTIMATED CHANGES Modified Mathlib/Topology/Bornology/Basic.lean + theorem Bornology.eventually_ne_cobounded 2023-11-08 08:49:13 b463603 chore(Lipschitz): split (#8264) Move parts that don't need `MetricSpace`s to a new file. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Topology/EMetricSpace/Lipschitz.lean + theorem LipschitzOnWith.ediam_image2_le + theorem LipschitzOnWith.edist_le_mul_of_le + theorem LipschitzOnWith.edist_lt_of_edist_lt_div + theorem LipschitzOnWith.mono + def LipschitzOnWith + theorem LipschitzWith.comp_lipschitzOnWith + theorem LipschitzWith.ediam_image_le + theorem LipschitzWith.edist_iterate_succ_le_geometric + theorem LipschitzWith.edist_le_mul + theorem LipschitzWith.edist_le_mul_of_le + theorem LipschitzWith.edist_lt_mul_of_lt + theorem LipschitzWith.edist_lt_of_edist_lt_div + theorem LipschitzWith.edist_lt_top + theorem LipschitzWith.mapsTo_emetric_ball + theorem LipschitzWith.mapsTo_emetric_closedBall + theorem LipschitzWith.mul_edist_le + theorem LipschitzWith.subtype_mk + def LipschitzWith + def LocallyLipschitz + theorem MapsTo.lipschitzOnWith_iff_restrict + theorem continuousOn_prod_of_continuousOn_lipschitzOnWith + theorem continuousOn_prod_of_subset_closure_continuousOn_lipschitzOnWith + theorem continuous_prod_of_continuous_lipschitzWith + theorem continuous_prod_of_dense_continuous_lipschitzWith + theorem lipschitzOnWith_empty + theorem lipschitzOnWith_iff_restrict + theorem lipschitzOn_univ Modified Mathlib/Topology/MetricSpace/Lipschitz.lean - theorem LipschitzOnWith.ediam_image2_le - theorem LipschitzOnWith.edist_le_mul_of_le - theorem LipschitzOnWith.edist_lt_of_edist_lt_div +/- theorem LipschitzOnWith.extend_pi +/- theorem LipschitzOnWith.extend_real - theorem LipschitzOnWith.mono - def LipschitzOnWith - theorem LipschitzWith.comp_lipschitzOnWith - theorem LipschitzWith.ediam_image_le - theorem LipschitzWith.edist_iterate_succ_le_geometric - theorem LipschitzWith.edist_le_mul - theorem LipschitzWith.edist_le_mul_of_le - theorem LipschitzWith.edist_lt_mul_of_lt - theorem LipschitzWith.edist_lt_of_edist_lt_div - theorem LipschitzWith.edist_lt_top - theorem LipschitzWith.mapsTo_emetric_ball - theorem LipschitzWith.mapsTo_emetric_closedBall - theorem LipschitzWith.mul_edist_le - theorem LipschitzWith.subtype_mk - def LipschitzWith - def LocallyLipschitz - theorem MapsTo.lipschitzOnWith_iff_restrict +/- theorem continuousAt_of_locally_lipschitz - theorem continuousOn_prod_of_continuousOn_lipschitzOnWith - theorem continuousOn_prod_of_subset_closure_continuousOn_lipschitzOnWith - theorem continuous_prod_of_continuous_lipschitzWith - theorem continuous_prod_of_dense_continuous_lipschitzWith - theorem lipschitzOnWith_empty - theorem lipschitzOnWith_iff_restrict - theorem lipschitzOn_univ 2023-11-08 07:48:12 aff5c83 feat: continuity of parametric integrals with weaker assumptions (#8247) The current version of continuity of parametric integrals assume a first countable topology, to apply the dominated convergence theorem. When one deals with continuous compactly supported functions, this is not necessary, and a direct elementary approach makes it possible to remove the first countable assumption. ESTIMATED CHANGES Modified Mathlib/Analysis/Convolution.lean +/- theorem BddAbove.continuous_convolution_right_of_integrable +/- theorem HasCompactSupport.continuous_convolution_left - theorem continuousOn_convolution_right_with_param' +/- theorem continuousOn_convolution_right_with_param - theorem continuousOn_convolution_right_with_param_comp' +/- theorem continuousOn_convolution_right_with_param_comp Modified Mathlib/MeasureTheory/Integral/SetIntegral.lean + theorem continuousOn_integral_bilinear_of_locally_integrable_of_compact_support + theorem continuousOn_integral_of_compact_support 2023-11-08 06:59:37 4a70d87 chore: move TopologicalSpace.SecondCountableTopology into the root namespace (#8186) All the other properties of topological spaces like T0Space or RegularSpace are in the root namespace. Many files were opening `TopologicalSpace` just for the sake of shortening `TopologicalSpace.SecondCountableTopology`... ESTIMATED CHANGES Modified Mathlib/Analysis/Calculus/LineDeriv/Measurable.lean Modified Mathlib/Analysis/Complex/UpperHalfPlane/Topology.lean Modified Mathlib/Analysis/Distribution/SchwartzSpace.lean Modified Mathlib/Analysis/Fourier/FourierTransform.lean +/- theorem VectorFourier.fourierIntegral_continuous Modified Mathlib/Analysis/LocallyConvex/WithSeminorms.lean Modified Mathlib/MeasureTheory/Function/SpecialFunctions/Inner.lean Modified Mathlib/MeasureTheory/Integral/BoundedContinuousFunction.lean Modified Mathlib/MeasureTheory/Integral/FundThmCalculus.lean Modified Mathlib/MeasureTheory/Integral/IntervalIntegral.lean Modified Mathlib/MeasureTheory/Integral/LebesgueNormedSpace.lean Modified Mathlib/MeasureTheory/Measure/Hausdorff.lean Modified Mathlib/MeasureTheory/Measure/MeasureSpace.lean Modified Mathlib/MeasureTheory/Measure/OuterMeasure.lean Modified Mathlib/MeasureTheory/Measure/Regular.lean Modified Mathlib/Topology/Algebra/InfiniteSum/Basic.lean +/- theorem Summable.countable_support Modified Mathlib/Topology/Algebra/Order/LeftRightLim.lean +/- theorem Antitone.countable_not_continuousAt +/- theorem Monotone.countable_not_continuousAt +/- theorem Monotone.countable_not_continuousWithinAt_Iio +/- theorem Monotone.countable_not_continuousWithinAt_Ioi Modified Mathlib/Topology/Bases.lean Modified Mathlib/Topology/Homeomorph.lean Modified Mathlib/Topology/Instances/NNReal.lean Modified Mathlib/Topology/LocalHomeomorph.lean Modified Mathlib/Topology/Metrizable/Basic.lean Modified Mathlib/Topology/Order/Basic.lean + theorem SecondCountableTopology.of_separableSpace_orderTopology - theorem TopologicalSpace.SecondCountableTopology.of_separableSpace_orderTopology Modified Mathlib/Topology/Sequences.lean 2023-11-08 04:41:32 2852d23 feat(RepresentationTheory/GroupCohomology/LowDegree): `H¹(G, A) ≃ Hom(G, A)` for a trivial representation (#7988) ESTIMATED CHANGES Modified Mathlib/RepresentationTheory/Basic.lean + theorem Representation.apply_eq_self Modified Mathlib/RepresentationTheory/GroupCohomology/LowDegree.lean + def groupCohomology.H0LequivOfIsTrivial + theorem groupCohomology.H0LequivOfIsTrivial_apply + theorem groupCohomology.H0LequivOfIsTrivial_eq_subtype + theorem groupCohomology.H0LequivOfIsTrivial_symm_apply + def groupCohomology.H1LequivOfIsTrivial + theorem groupCohomology.H1LequivOfIsTrivial_H1_π_apply_apply + theorem groupCohomology.H1LequivOfIsTrivial_comp_H1_π + theorem groupCohomology.H1LequivOfIsTrivial_symm_apply +/- theorem groupCohomology.dOne_comp_eq +/- theorem groupCohomology.dZero_comp_eq + theorem groupCohomology.dZero_eq_zero + theorem groupCohomology.mem_oneCocycles_of_addMonoidHom + theorem groupCohomology.oneCoboundaries_eq_bot_of_isTrivial + def groupCohomology.oneCochainsLequiv - def groupCohomology.oneCochainsLinearEquiv + def groupCohomology.oneCocyclesLequivOfIsTrivial +/- theorem groupCohomology.oneCocycles_map_inv + theorem groupCohomology.oneCocycles_map_mul_of_isTrivial +/- theorem groupCohomology.oneCocycles_map_one + def groupCohomology.threeCochainsLequiv - def groupCohomology.threeCochainsLinearEquiv + def groupCohomology.twoCochainsLequiv - def groupCohomology.twoCochainsLinearEquiv + def groupCohomology.zeroCochainsLequiv - def groupCohomology.zeroCochainsLinearEquiv Modified Mathlib/RepresentationTheory/Invariants.lean + theorem Representation.invariants_eq_top Modified Mathlib/RepresentationTheory/Rep.lean 2023-11-08 03:57:14 ba16f9f feat: Strictly convex functions have unique minima (#8182) ESTIMATED CHANGES Modified Mathlib/Analysis/Convex/Function.lean + theorem StrictConcaveOn.eq_of_isMaxOn + theorem StrictConvexOn.eq_of_isMinOn 2023-11-08 03:09:50 6991735 feat: Add extensionality theorem to `PresentedGroup`. (#8260) Add `ext` theorem to `PresentedGroup`. ESTIMATED CHANGES Modified Mathlib/GroupTheory/PresentedGroup.lean + theorem PresentedGroup.ext 2023-11-08 02:26:39 7e2818f chore: fix typo in Nobeling.lean docstring (#8254) ESTIMATED CHANGES Modified Mathlib/Topology/Category/Profinite/Nobeling.lean 2023-11-08 02:26:38 5ed5d16 feat(CategoryTheory/Products): opposite of product of categories (#8150) Equivalence between the opposite of a product of categories and the product of the opposites. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Products/Basic.lean + def CategoryTheory.prodOpEquiv 2023-11-08 01:47:28 2956f07 feat(Topology/MetricSpace): weaker TC assumptions (#8259) Assume `[WeaklyLocallyCompactSpace α]` instead of `[LocallyCompactSpace α]` in 2 lemmas. ESTIMATED CHANGES Modified Mathlib/Topology/MetricSpace/PseudoMetric.lean +/- theorem Metric.eventually_isCompact_closedBall +/- theorem Metric.exists_isCompact_closedBall 2023-11-08 01:47:26 05b4a23 feat: When a function is not equitable (#8204) ESTIMATED CHANGES Modified Mathlib/Data/Set/Equitable.lean + theorem Set.not_equitableOn 2023-11-08 01:25:44 ba62dc5 feat(Asymptotics/Theta): add 3 trivial lemmas (#8258) Add `Filter.EventuallyEq.isTheta`, `Asymptotics.IsTheta.isTheta_congr_left`, and `Asymptotics.IsTheta.isTheta_congr_right`. ESTIMATED CHANGES Modified Mathlib/Analysis/Asymptotics/Theta.lean + theorem Asymptotics.IsTheta.isTheta_congr_left + theorem Asymptotics.IsTheta.isTheta_congr_right + theorem Filter.EventuallyEq.isTheta 2023-11-07 20:49:48 c97b9b0 fix: fixes of 3 PRs (#8248) Fixes mistake introduced in #7976 (ping to @alreadydone that you should use `@[to_additive (attr := simp)]` and not `@[to_additive, simp]`) and some namespacing mistakes from my own PRs #7337 and #7755 ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Group/Defs.lean Modified Mathlib/Algebra/Order/Monoid/Defs.lean Modified Mathlib/Data/Fintype/Card.lean + theorem Finset.card_add_card_compl + theorem Finset.card_compl_add_card - theorem card_add_card_compl - theorem card_compl_add_card Modified Mathlib/Data/Set/Pointwise/SMul.lean Modified Mathlib/Logic/Equiv/TransferInstance.lean Modified Mathlib/MeasureTheory/Integral/IntegralEqImproper.lean + theorem HasCompactSupport.integral_Iic_deriv_eq + theorem HasCompactSupport.integral_Ioi_deriv_eq - theorem MeasureTheory.HasCompactSupport.integral_Iic_deriv_eq - theorem MeasureTheory.HasCompactSupport.integral_Ioi_deriv_eq Modified Mathlib/MeasureTheory/MeasurableSpace/Basic.lean 2023-11-07 19:35:02 b782596 chore: golf all coe_iSup_of_directed (#8232) ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/NonUnitalSubalgebra.lean Modified Mathlib/Algebra/Algebra/Subalgebra/Basic.lean +/- theorem Subalgebra.coe_iSup_of_directed +/- def Subalgebra.equivOfEq Modified Mathlib/Algebra/Star/NonUnitalSubalgebra.lean Modified Mathlib/FieldTheory/Subfield.lean Modified Mathlib/GroupTheory/Subgroup/Basic.lean Modified Mathlib/GroupTheory/Submonoid/Membership.lean Modified Mathlib/GroupTheory/Subsemigroup/Membership.lean Modified Mathlib/LinearAlgebra/Span.lean +/- theorem Submodule.coe_iSup_of_directed Modified Mathlib/RingTheory/NonUnitalSubring/Basic.lean +/- theorem NonUnitalSubring.coe_iSup_of_directed Modified Mathlib/RingTheory/NonUnitalSubsemiring/Basic.lean Modified Mathlib/RingTheory/Subring/Basic.lean Modified Mathlib/RingTheory/Subsemiring/Basic.lean 2023-11-07 19:35:01 c8f6b01 chore: remove porting notes about `simp [(lemma)]` (#8227) Most (but not all) of these are now fixed, presumably due to the latest lean release. There is still one porting note that remains, about a `(Submonoid.smul_def)` that cannot be un-parenthesized. ESTIMATED CHANGES Modified Mathlib/Analysis/Normed/Group/AddTorsor.lean Modified Mathlib/Analysis/NormedSpace/AffineIsometry.lean +/- theorem AffineIsometry.edist_map +/- theorem AffineIsometry.nndist_map Modified Mathlib/LinearAlgebra/AffineSpace/AffineEquiv.lean Modified Mathlib/LinearAlgebra/AffineSpace/AffineMap.lean 2023-11-07 18:26:52 5a90dad docs: clarify endianness of `Nat.bits` (#8241) ESTIMATED CHANGES Modified Mathlib/Init/Data/Nat/Bitwise.lean 2023-11-07 18:03:42 251baaf chore: Fix capitalisation of e-transforms (#8203) Everything was wrong here. ESTIMATED CHANGES Modified Mathlib.lean Renamed Mathlib/Combinatorics/Additive/Etransform.lean to Mathlib/Combinatorics/Additive/ETransform.lean + theorem Finset.mulDysonETransform.card + theorem Finset.mulDysonETransform.smul_finset_snd_subset_fst + theorem Finset.mulDysonETransform.subset + def Finset.mulDysonETransform + theorem Finset.mulDysonETransform_idem - theorem Finset.mulDysonEtransform.card - theorem Finset.mulDysonEtransform.smul_finset_snd_subset_fst - theorem Finset.mulDysonEtransform.subset - def Finset.mulDysonEtransform - theorem Finset.mulDysonEtransform_idem + theorem Finset.mulETransformLeft.card + theorem Finset.mulETransformLeft.fst_mul_snd_subset + def Finset.mulETransformLeft + theorem Finset.mulETransformLeft_inv + theorem Finset.mulETransformLeft_one + theorem Finset.mulETransformRight.card + theorem Finset.mulETransformRight.fst_mul_snd_subset + def Finset.mulETransformRight + theorem Finset.mulETransformRight_inv + theorem Finset.mulETransformRight_one - theorem Finset.mulEtransformLeft.card - theorem Finset.mulEtransformLeft.fst_mul_snd_subset - def Finset.mulEtransformLeft - theorem Finset.mulEtransformLeft_inv - theorem Finset.mulEtransformLeft_one - theorem Finset.mulEtransformRight.card - theorem Finset.mulEtransformRight.fst_mul_snd_subset - def Finset.mulEtransformRight - theorem Finset.mulEtransformRight_inv - theorem Finset.mulEtransformRight_one 2023-11-07 17:41:55 a051ac5 feat: improve `polyrith` by testing for membership in the radical (#7790) In @hrmacbeth 's tutorial on `polyrith`, there were examples of problems that it could almost solve, but failed. The goal was not expressible as a linear combination of the hypotheses but a power of the goal was. ```lean example (x y z : ℚ) (h : x = y) (h2 : x * y = 0) : x + y*z = 0 := sorry ``` Mathematically, `x+y*z` is in the radical of the ideal generated by `x-y, x*y`. There's a "standard trick" for testing membership in the radical without a search for the proper exponent: see e.g. section 2.2 of [arxiv.org/pdf/1007.3615.pdf](https://arxiv.org/pdf/1007.3615.pdf) or 4.2 Prop 8 of Cox, Little, O'Shea. This PR implements the trick in the Sage call made by `polyrith`. When the power returned is `n > 1`, we use `linear_combination (exp := n)` to check the certificate (#7789 ). The `polyrith` test infrastructure still needs to be ported from mathlib3. All tests in the test file succeed when they are uncommented. A future PR will restore the old test suite. ESTIMATED CHANGES Modified Mathlib/Tactic/Polyrith.lean + structure Mathlib.Tactic.Polyrith.SageCoeffAndPower Modified scripts/polyrith_sage.py Modified test/polyrith.lean 2023-11-07 17:20:00 9183ab2 feat: lemmas about Finset.card (#7605) ESTIMATED CHANGES Modified Mathlib/Data/Finset/Card.lean + theorem Finset.card_inter_add_card_sdiff + theorem Finset.card_sdiff_add_card_inter 2023-11-07 14:42:36 bd3e369 feat(Data/../ENNReal): add lemmas about `ENNReal.ofReal` (#8163) Compare `ENNReal.ofReal r` to `Nat.cast n` and literals. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) ESTIMATED CHANGES Modified Mathlib/Data/Real/ENNReal.lean + theorem ENNReal.nat_cast_le_ofReal + theorem ENNReal.nat_cast_lt_ofReal + theorem ENNReal.ofNat_le_ofReal + theorem ENNReal.ofNat_lt_ofReal +/- theorem ENNReal.ofReal_coe_nat + theorem ENNReal.ofReal_eq_nat_cast + theorem ENNReal.ofReal_eq_ofNat + theorem ENNReal.ofReal_eq_one + theorem ENNReal.ofReal_le_nat_cast + theorem ENNReal.ofReal_le_ofNat + theorem ENNReal.ofReal_le_ofReal_iff' + theorem ENNReal.ofReal_le_one + theorem ENNReal.ofReal_lt_nat_cast + theorem ENNReal.ofReal_lt_ofNat + theorem ENNReal.ofReal_lt_ofReal_iff' + theorem ENNReal.ofReal_lt_one + theorem ENNReal.one_le_ofReal + theorem ENNReal.one_lt_ofReal 2023-11-07 14:42:01 64b26c9 feat(CategoryTheory/Monoidal): add lemmas for whiskering operators (#8191) Extracted from #6307 as suggested in https://github.com/leanprover-community/mathlib4/pull/6307#discussion_r1371849810 . --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) ESTIMATED CHANGES Modified Mathlib/Algebra/Category/ModuleCat/Monoidal/Basic.lean + theorem ModuleCat.MonoidalCategory.whiskerLeft_apply + theorem ModuleCat.MonoidalCategory.whiskerRight_apply Modified Mathlib/Algebra/Category/ModuleCat/Monoidal/Symmetric.lean + theorem ModuleCat.MonoidalCategory.braiding_naturality_left + theorem ModuleCat.MonoidalCategory.braiding_naturality_right Modified Mathlib/CategoryTheory/Monoidal/Types/Basic.lean + theorem CategoryTheory.whiskerLeft_apply + theorem CategoryTheory.whiskerRight_apply Modified Mathlib/RepresentationTheory/Action.lean - theorem Action.tensorHom + theorem Action.tensor_hom + theorem Action.whiskerLeft_hom + theorem Action.whiskerRight_hom 2023-11-07 14:27:34 430ef65 feat: lemmas analogous to fderiv_within_of_isOpen (#8057) - from the project towards Sard's theorem --------- ESTIMATED CHANGES Modified Mathlib/Analysis/Calculus/ContDiffDef.lean Modified Mathlib/Analysis/Calculus/FDeriv/Basic.lean + theorem fderivWithin_of_isOpen - theorem fderivWithin_of_open + theorem hasFDerivWithinAt_of_isOpen + theorem hasFDerivWithinAt_of_mem_nhds Modified Mathlib/Geometry/Manifold/MFDeriv.lean + theorem mfderivWithin_eq_mfderiv + theorem mfderivWithin_of_isOpen + theorem mfderivWithin_of_mem_nhds 2023-11-07 13:59:13 0eb6b93 feat: define `updateFinset` which updates a finite number components of a vector (#7341) * from the Sobolev project (formerly: marginal project) --------- ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Data/Finset/Basic.lean + def Equiv.Finset.union + theorem Equiv.Finset.union_symm_inl + theorem Equiv.Finset.union_symm_inr + def Equiv.piFinsetUnion + theorem Finset.coe_disjUnion + theorem Finset.default_singleton Added Mathlib/Data/Finset/Update.lean + def Function.updateFinset + theorem Function.updateFinset_empty + theorem Function.updateFinset_singleton + theorem Function.updateFinset_updateFinset + theorem Function.update_eq_updateFinset Modified Mathlib/Data/Set/Prod.lean + theorem Set.uniqueElim_preimage Modified Mathlib/Logic/Function/Basic.lean + theorem Function.pred_update Modified Mathlib/Logic/Unique.lean + def uniqueElim + theorem uniqueElim_default 2023-11-07 13:32:30 a1f33eb feat: miscellaneous lemmas about local homeomorphisms (#8062) - variant of extend_left_inv', stated in terms of images (instead of point-wise) - variant of map_source', stated for images of subsets (instead of point-wise) - a local homeomorphism and its inverse are open on its source --------- ESTIMATED CHANGES Modified Mathlib/Data/Set/Function.lean + theorem Set.EqOn.image_eq_self Modified Mathlib/Geometry/Manifold/SmoothManifoldWithCorners.lean + theorem LocalHomeomorph.extend_left_inv' Modified Mathlib/Logic/Equiv/LocalEquiv.lean + theorem LocalEquiv.map_source'' Modified Mathlib/Topology/LocalHomeomorph.lean + theorem LocalHomeomorph.isOpen_image_of_subset_source + theorem LocalHomeomorph.isOpen_image_symm_of_subset_target + theorem LocalHomeomorph.map_source'' 2023-11-07 13:31:26 61adfa9 feat: bound the measure of a set by the integral of a function, from above and from below (#8123) Also weaken some T2 space assumptions in some integration lemmas. --------- ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Function/LocallyIntegrable.lean +/- theorem Continuous.integrableOn_Icc +/- theorem Continuous.integrableOn_Ioc +/- theorem Continuous.integrableOn_uIcc +/- theorem Continuous.integrableOn_uIoc +/- theorem Continuous.locallyIntegrable +/- theorem ContinuousOn.integrableOn_Icc + theorem ContinuousOn.integrableOn_compact' +/- theorem ContinuousOn.integrableOn_compact +/- theorem ContinuousOn.integrableOn_uIcc +/- theorem ContinuousOn.locallyIntegrableOn Modified Mathlib/MeasureTheory/Integral/Bochner.lean + theorem MeasureTheory.integral_smul_nnreal_measure Modified Mathlib/MeasureTheory/Integral/Lebesgue.lean + theorem MeasureTheory.lintegral_indicator_const_le + theorem MeasureTheory.lintegral_indicator_le + theorem MeasureTheory.lintegral_indicator_one_le + theorem MeasureTheory.lintegral_indicator_one₀ + theorem MeasureTheory.lintegral_le_meas + theorem MeasureTheory.meas_le_lintegral₀ Modified Mathlib/MeasureTheory/Integral/SetIntegral.lean + theorem MeasureTheory.Integrable.measure_le_integral + theorem MeasureTheory.integral_le_measure 2023-11-07 11:01:17 18d2099 feat: add `Integrable.piecewise` (#8080) ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Function/LpSeminorm.lean + theorem MeasureTheory.snormEssSup_piecewise_le + theorem MeasureTheory.snorm_top_piecewise_le Modified Mathlib/MeasureTheory/Function/LpSpace.lean + theorem MeasureTheory.Memℒp.piecewise Modified Mathlib/MeasureTheory/Function/StronglyMeasurable/Basic.lean + theorem MeasureTheory.AEStronglyMeasurable.piecewise Modified Mathlib/MeasureTheory/Integral/IntegrableOn.lean + theorem MeasureTheory.Integrable.piecewise 2023-11-07 11:00:57 1c4e5ae chore(MeasureTheory/MeasurableSpace/Basic): change reference to file in docs (#8230) An nonexistent file is mentioned in the intro docs, it is changed to refer to the correct file. ESTIMATED CHANGES Modified Mathlib/MeasureTheory/MeasurableSpace/Basic.lean 2023-11-07 11:00:13 b0a6f35 feat: Add NoAtoms instances for product measures (#8207) The instance exists for `Measure.pi`, see [MeasureTheory.Measure.pi_noAtoms'](https://leanprover-community.github.io/mathlib4_docs/Mathlib/MeasureTheory/Constructions/Pi.html#MeasureTheory.Measure.pi_noAtoms'), but not for `Measure.prod`. ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Constructions/Prod/Basic.lean 2023-11-07 10:14:47 b792832 chore: rename List.rdrop to dropRight (#8233) --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Data/List/DropRight.lean + def List.dropRight + def List.dropRightWhile + theorem List.dropRightWhile_concat + theorem List.dropRightWhile_concat_neg + theorem List.dropRightWhile_concat_pos + theorem List.dropRightWhile_eq_nil_iff + theorem List.dropRightWhile_eq_self_iff + theorem List.dropRightWhile_idempotent + theorem List.dropRightWhile_last_not + theorem List.dropRightWhile_nil + theorem List.dropRightWhile_prefix + theorem List.dropRightWhile_singleton + theorem List.dropRight_concat_succ + theorem List.dropRight_eq_reverse_drop_reverse + theorem List.dropRight_nil + theorem List.dropRight_zero + theorem List.dropWhile_eq_self_iff + theorem List.dropWhile_idempotent + theorem List.mem_takeRightWhile_imp + def List.takeRight + def List.takeRightWhile + theorem List.takeRightWhile_concat + theorem List.takeRightWhile_concat_neg + theorem List.takeRightWhile_concat_pos + theorem List.takeRightWhile_eq_nil_iff + theorem List.takeRightWhile_eq_self_iff + theorem List.takeRightWhile_idempotent + theorem List.takeRightWhile_nil + theorem List.takeRightWhile_suffix + theorem List.takeRight_concat_succ + theorem List.takeRight_eq_reverse_take_reverse + theorem List.takeRight_nil + theorem List.takeRight_zero Deleted Mathlib/Data/List/Rdrop.lean - theorem List.dropWhile_eq_self_iff - theorem List.dropWhile_idempotent - theorem List.mem_rtakeWhile_imp - def List.rdrop - def List.rdropWhile - theorem List.rdropWhile_concat - theorem List.rdropWhile_concat_neg - theorem List.rdropWhile_concat_pos - theorem List.rdropWhile_eq_nil_iff - theorem List.rdropWhile_eq_self_iff - theorem List.rdropWhile_idempotent - theorem List.rdropWhile_last_not - theorem List.rdropWhile_nil - theorem List.rdropWhile_prefix - theorem List.rdropWhile_singleton - theorem List.rdrop_concat_succ - theorem List.rdrop_eq_reverse_drop_reverse - theorem List.rdrop_nil - theorem List.rdrop_zero - def List.rtake - def List.rtakeWhile - theorem List.rtakeWhile_concat - theorem List.rtakeWhile_concat_neg - theorem List.rtakeWhile_concat_pos - theorem List.rtakeWhile_eq_nil_iff - theorem List.rtakeWhile_eq_self_iff - theorem List.rtakeWhile_idempotent - theorem List.rtakeWhile_nil - theorem List.rtakeWhile_suffix - theorem List.rtake_concat_succ - theorem List.rtake_eq_reverse_take_reverse - theorem List.rtake_nil - theorem List.rtake_zero 2023-11-07 10:06:24 048fe93 feat: Urysohn lemma in regular locally compact spaces (#8124) Also change a few theorems to instances, as instance loops are not a problem any more. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) ESTIMATED CHANGES Modified Mathlib/Topology/EMetricSpace/Basic.lean - theorem EMetric.secondCountable_of_sigmaCompact Modified Mathlib/Topology/Metrizable/Urysohn.lean - theorem TopologicalSpace.PseudoMetrizableSpace.of_regularSpace_secondCountableTopology - theorem TopologicalSpace.metrizableSpace_of_t3_second_countable Modified Mathlib/Topology/Separation.lean Modified Mathlib/Topology/UrysohnsLemma.lean +/- theorem Urysohns.CU.approx_le_approx_of_U_sub_C +/- theorem Urysohns.CU.approx_le_lim +/- theorem Urysohns.CU.approx_le_one +/- theorem Urysohns.CU.approx_le_succ +/- theorem Urysohns.CU.approx_mem_Icc_right_left +/- theorem Urysohns.CU.approx_mono +/- theorem Urysohns.CU.approx_nonneg +/- theorem Urysohns.CU.approx_of_mem_C +/- theorem Urysohns.CU.approx_of_nmem_U +/- theorem Urysohns.CU.bddAbove_range_approx +/- theorem Urysohns.CU.continuous_lim +/- def Urysohns.CU.left +/- theorem Urysohns.CU.left_U_subset +/- theorem Urysohns.CU.left_U_subset_right_C +/- theorem Urysohns.CU.lim_eq_midpoint +/- theorem Urysohns.CU.lim_le_one +/- theorem Urysohns.CU.lim_mem_Icc +/- theorem Urysohns.CU.lim_nonneg +/- theorem Urysohns.CU.lim_of_mem_C +/- theorem Urysohns.CU.lim_of_nmem_U +/- def Urysohns.CU.right +/- theorem Urysohns.CU.subset_right_C +/- theorem Urysohns.CU.tendsto_approx_atTop +/- structure Urysohns.CU + theorem exists_continuous_one_zero_of_isCompact +/- theorem exists_continuous_zero_one_of_closed + theorem exists_continuous_zero_one_of_isCompact 2023-11-06 21:15:25+11:00 b6ec745 chore: update CI; lean4checker tests are now deterministic ESTIMATED CHANGES Modified .github/workflows/bors.yml Modified .github/workflows/build.yml Modified .github/workflows/build.yml.in Modified .github/workflows/build_fork.yml 2023-11-06 08:35:23 81dd376 chore: bump dependencies (#8220) --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) ESTIMATED CHANGES Modified lake-manifest.json 2023-11-05 22:16:02 9257586 feat: Hölder's inequality for more than 2 functions (#7756) * From the Sobolev project 25316162+hrmacbeth@users.noreply.github.com --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) --------- ESTIMATED CHANGES Modified Mathlib/Algebra/BigOperators/Basic.lean + theorem Finset.prod_insert_div Modified Mathlib/Analysis/SpecialFunctions/Pow/NNReal.lean + theorem ENNReal.prod_coe_rpow + theorem ENNReal.prod_rpow_of_ne_top + theorem ENNReal.prod_rpow_of_nonneg Modified Mathlib/Data/Finset/Option.lean + theorem Finset.insertNone_nonempty + theorem Finset.none_mem_insertNone Modified Mathlib/MeasureTheory/Integral/MeanInequalities.lean + theorem ENNReal.lintegral_mul_norm_pow_le + theorem ENNReal.lintegral_mul_prod_norm_pow_le + theorem ENNReal.lintegral_prod_norm_pow_le 2023-11-05 21:55:45 ce4b7e4 feat(Data/Matrix/Basic): add missing lemmas about `natCast` and `intCast` (#8088) * feat(Data/Matrix/Basic): add missing lemmas about `natCast` and `intCast` This also gives the `intCast` instance a nicer defeq. This remains unopinionated about which side of `diagonal 37 = 37` is the simp-normal form. * lintfix ESTIMATED CHANGES Modified Mathlib/Data/Matrix/Basic.lean + theorem Matrix.diagonal_intCast' + theorem Matrix.diagonal_intCast + theorem Matrix.diagonal_natCast' + theorem Matrix.diagonal_natCast +/- theorem Matrix.diagonal_neg + theorem Matrix.diagonal_ofNat' + theorem Matrix.diagonal_ofNat + theorem Matrix.diagonal_sub 2023-11-05 21:52:40 ef9e306 fix: allow `peel` to hand `∃ ε > 0 ... ↔` goals (#8184) ESTIMATED CHANGES Modified Mathlib/Tactic/Peel.lean Modified test/peel.lean 2023-11-05 21:52:06 37eb068 feat: a solution to if-normalization (#8035) * feat: a solution to if-normalization * lint * import all * duplicated names * Update Archive/Examples/IfNormalization/Statement.lean * resist the temptation to let aesop specify the data * typo in doc-string * workaround * fix * fix * fix --------- ESTIMATED CHANGES Modified Archive.lean Added Archive/Examples/IfNormalization/Result.lean + theorem IfExpr.decide_eq_true_eq + theorem IfExpr.eval_ite_ite + theorem IfExpr.eval_ite_lit + theorem IfExpr.eval_ite_var + theorem IfExpr.eval_lit + theorem IfExpr.eval_var + def IfExpr.normSize + def IfExpr.normalize Added Archive/Examples/IfNormalization/Statement.lean + def IfExpr.disjoint + def IfExpr.eval + def IfExpr.hasConstantIf + def IfExpr.hasNestedIf + def IfExpr.hasRedundantIf + def IfExpr.normalized + def IfExpr.vars + inductive IfExpr + def IfNormalization + def List.disjoint Added Archive/Examples/IfNormalization/WithoutAesop.lean + theorem IfExpr.decide_eq_true_eq' + theorem IfExpr.eval_ite_ite' + def IfExpr.normSize' + def IfExpr.normalize' 2023-11-05 16:49:33-05:00 cdd069a chore: run ci on merge queue event (#8213) ESTIMATED CHANGES Modified .github/workflows/build.yml Modified .github/workflows/mk_build_yml.sh 2023-11-05 21:37:13+11:00 df32aa2 chore: add `open Mathlib` benchmark (#8196) ESTIMATED CHANGES Modified scripts/bench/temci-config.run.yml 2023-11-05 20:38:22+11:00 cf8bb09 chore: cleanup zify imports in preparation of upstreaming (#8176) ESTIMATED CHANGES Modified Mathlib/Tactic/Zify.lean +/- theorem Mathlib.Tactic.Zify.nat_cast_dvd +/- theorem Mathlib.Tactic.Zify.nat_cast_eq +/- theorem Mathlib.Tactic.Zify.nat_cast_le +/- theorem Mathlib.Tactic.Zify.nat_cast_lt +/- theorem Mathlib.Tactic.Zify.nat_cast_ne Modified test/Zify.lean 2023-11-05 14:19:30+11:00 5f84b04 fix: patch for std4#194 (more order lemmas for `Nat`) (#8077) ESTIMATED CHANGES Modified Mathlib/Combinatorics/Composition.lean Modified Mathlib/Combinatorics/SimpleGraph/Clique.lean Modified Mathlib/Combinatorics/SimpleGraph/Coloring.lean Modified Mathlib/Data/Fin/Basic.lean Modified Mathlib/Data/Nat/Prime.lean Modified Mathlib/Data/Nat/Squarefree.lean Modified Mathlib/Init/Data/Nat/Lemmas.lean Modified Mathlib/NumberTheory/FLT/Four.lean Modified lake-manifest.json 2023-11-05 13:30:43+11:00 cdcad96 fix: patch for std4#195 (more succ/pred lemmas for `Nat`) (#6203) ESTIMATED CHANGES Modified Mathlib/Algebra/BigOperators/Intervals.lean Modified Mathlib/Algebra/CharP/Basic.lean Modified Mathlib/Algebra/GeomSum.lean Modified Mathlib/AlgebraicTopology/AlternatingFaceMapComplex.lean Modified Mathlib/AlgebraicTopology/SimplexCategory.lean Modified Mathlib/Analysis/Calculus/FDeriv/Measurable.lean Modified Mathlib/Combinatorics/Additive/Behrend.lean Modified Mathlib/Combinatorics/Hall/Finite.lean Modified Mathlib/Combinatorics/SimpleGraph/Regularity/Bound.lean Modified Mathlib/Data/Fin/Basic.lean Modified Mathlib/Data/Finset/Powerset.lean Modified Mathlib/Data/Finset/Sort.lean Modified Mathlib/Data/List/Cycle.lean Modified Mathlib/Data/Nat/Basic.lean Modified Mathlib/Data/Nat/Digits.lean Modified Mathlib/Data/Nat/Totient.lean Modified Mathlib/Data/Polynomial/Derivative.lean Modified Mathlib/Data/Polynomial/EraseLead.lean Modified Mathlib/Data/Polynomial/Module.lean Modified Mathlib/Init/Data/Nat/Lemmas.lean Modified Mathlib/Init/Meta/WellFoundedTactics.lean +/- theorem Nat.zero_lt_one_add Modified Mathlib/NumberTheory/Multiplicity.lean Modified Mathlib/Probability/Martingale/Upcrossing.lean Modified Mathlib/Probability/StrongLaw.lean Modified Mathlib/RingTheory/IntegralClosure.lean Modified Mathlib/RingTheory/MvPolynomial/NewtonIdentities.lean Modified Mathlib/RingTheory/Polynomial/Bernstein.lean Modified Mathlib/RingTheory/Polynomial/IntegralNormalization.lean Modified Mathlib/Testing/SlimCheck/Gen.lean Modified Mathlib/Util/DischargerAsTactic.lean Modified lake-manifest.json Modified test/lift.lean 2023-11-04 17:09:44 e11f169 feat: descend a continuous map along a quotient map (#8090) This was done for profinite sets in LTE. We give a homeomorphism from the quotient of a quotient map to its codomain, and prove that a continuous map which is constant on the fibres of a quotient map can be descended along the quotient map. ESTIMATED CHANGES Modified Mathlib/Topology/ContinuousFunction/Basic.lean + def Function.RightInverse.homeomorph + theorem QuotientMap.lift_comp 2023-11-04 15:05:11 2fd9651 chore: Fix name of `SimpleGraph.Adj` projection (#8179) `simps` was generating lemmas named `_Adj`. This PR makes it generate `_adj` instead, to follow the naming convention. ESTIMATED CHANGES Modified Mathlib/Combinatorics/SimpleGraph/AdjMatrix.lean Modified Mathlib/Combinatorics/SimpleGraph/Basic.lean Modified Mathlib/Combinatorics/SimpleGraph/Clique.lean Modified Mathlib/Combinatorics/SimpleGraph/Subgraph.lean - theorem SimpleGraph.Subgraph.coeSubgraph_Adj + theorem SimpleGraph.Subgraph.coeSubgraph_adj - theorem SimpleGraph.Subgraph.restrict_Adj + theorem SimpleGraph.Subgraph.restrict_adj 2023-11-04 14:26:25 0a1d2bb refactor(Data/ZMod/IntUnitsPower): generalize ZMod 2 to work for `Nat` and `Int` too (#7866) Instead of providing `instance : Pow ℤˣ (ZMod 2)`, this now provides `instance [Module R (Additive ℤˣ)] : Pow ℤˣ R`. It turns out that this instance already exists for `ℕ` and `ℤ`, so all we need to do is create `instance : Module (ZMod 2) (Additive ℤˣ)` and we obtain new definitions that generalize over all three types. As a result of the generalization, `z₂pow` has been renamed in lemmas to `uzpow` (`u`nits of `ℤ`). The motivation here is that I need $(-1) ^ i$ to make sense (and be lawful) for `ZMod 2` (on clifford algebras) and `ℕ` (on exterior algebras). [Zulip thread](https://leanprover.zulipchat.com/#narrow/stream/116395-maths/topic/Powers.20of.20.60.E2.84.A4.CB.A3.60.20by.20.60ZMod.202.60/near/397569279) ESTIMATED CHANGES Modified Mathlib/Data/ZMod/IntUnitsPower.lean + theorem ZMod.natCast_smul_units + theorem ZMod.smul_units_def +/- theorem mul_uzpow + theorem ofMul_uzpow +/- theorem one_uzpow + theorem toMul_uzpow +/- theorem uzpow_add - theorem uzpow_def + theorem uzpow_intCast +/- theorem uzpow_mul +/- theorem uzpow_natCast +/- theorem uzpow_neg +/- theorem uzpow_one +/- theorem uzpow_sub +/- theorem uzpow_zero 2023-11-04 10:29:27 99332a0 feat: (co)limits in FintypeCat (#8137) Shows that (co)limits exist in `FintypeCat` and that they are created and preserved by `FintypeCat.incl`. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Limits/FintypeCat.lean 2023-11-04 10:04:10 3fdde99 feat: explicit volume computations in NumberTheory.NumberField.CanonicalEmbedding (#6886) We compute the values of the volumes used in `CanonicalEmbedding`. In particular, we prove that ```lean volume (fundamentalDomain (latticeBasis K)) = (2 : ℝ≥0∞)⁻¹ ^ (NrComplexPlaces K) * NNReal.sqrt ‖discr K‖₊ ``` This will be useful later on to prove Hermite and Hermite-Minkowski theorems. ESTIMATED CHANGES Modified Mathlib/NumberTheory/NumberField/CanonicalEmbedding.lean + theorem NumberField.mixedEmbedding.det_matrixToStdBasis + theorem NumberField.mixedEmbedding.fundamentalDomain_stdBasis + def NumberField.mixedEmbedding.indexEquiv + theorem NumberField.mixedEmbedding.indexEquiv_apply_ofIsComplex_fst + theorem NumberField.mixedEmbedding.indexEquiv_apply_ofIsComplex_snd + theorem NumberField.mixedEmbedding.indexEquiv_apply_ofIsReal + def NumberField.mixedEmbedding.matrixToStdBasis + def NumberField.mixedEmbedding.stdBasis + theorem NumberField.mixedEmbedding.stdBasis_apply_ofIsComplex_fst + theorem NumberField.mixedEmbedding.stdBasis_apply_ofIsComplex_snd + theorem NumberField.mixedEmbedding.stdBasis_apply_ofIsReal + theorem NumberField.mixedEmbedding.stdBasis_repr_eq_matrixToStdBasis_mul + theorem NumberField.mixedEmbedding.volume_fundamentalDomain_stdBasis Modified Mathlib/NumberTheory/NumberField/Discriminant.lean + theorem NumberField.mixedEmbedding.volume_fundamentalDomain_latticeBasis Modified Mathlib/NumberTheory/NumberField/Embeddings.lean + theorem NumberField.InfinitePlace.conjugate_embedding_eq_of_isReal Modified Mathlib/NumberTheory/NumberField/Units.lean 2023-11-04 08:45:44 7e0b41d feat: homology of chain complexes in degree 0 (#8169) ESTIMATED CHANGES Modified Mathlib/Algebra/Homology/ShortComplex/HomologicalComplex.lean + theorem ChainComplex.isoHomologyι₀_inv_naturality + theorem CochainComplex.isoHomologyπ₀_inv_naturality +/- theorem HomologicalComplex.exactAt_iff_isZero_homology + theorem HomologicalComplex.iCyclesIso_hom_inv_id + theorem HomologicalComplex.iCyclesIso_inv_hom_id + theorem HomologicalComplex.isIso_homologyι + theorem HomologicalComplex.isIso_homologyπ + theorem HomologicalComplex.isIso_iCycles + theorem HomologicalComplex.isIso_pOpcycles + theorem HomologicalComplex.isoHomologyι_hom_inv_id + theorem HomologicalComplex.isoHomologyι_inv_hom_id + theorem HomologicalComplex.isoHomologyπ_hom_inv_id + theorem HomologicalComplex.isoHomologyπ_inv_hom_id + theorem HomologicalComplex.pOpcyclesIso_hom_inv_id + theorem HomologicalComplex.pOpcyclesIso_inv_hom_id 2023-11-04 06:42:33 dd572a6 chore: minimize imports for simps (#8140) ESTIMATED CHANGES Modified Mathlib/Tactic/NormNum/Result.lean Modified Mathlib/Tactic/Simps/Basic.lean +/- def Simps.findProjectionIndices +/- def Simps.getCompositeOfProjections Modified Mathlib/Tactic/Simps/NotationClass.lean 2023-11-04 06:17:19 e853cef feat: add actions script to label new contributors (#8172) This action will add the `new-contributor' label to any PR from a GitHub user with fewer than 5 closed PRs. ESTIMATED CHANGES Added .github/workflows/label_new_contributor.yml 2023-11-04 02:30:05 4e5518c feat: rewrite lemma for `Monoid.exponent (Multiplicative G)` (#8093) This also fixes a `to_additive` naming error ESTIMATED CHANGES Modified Mathlib/GroupTheory/Exponent.lean + theorem AddMonoid.exponent_additive + theorem Monoid.exponent_multiplicative + theorem MulOpposite.exponent 2023-11-04 01:23:39 e849590 feat: compute the exponent of `ZMod` (#8094) ESTIMATED CHANGES Modified Mathlib/GroupTheory/SpecificGroups/Cyclic.lean 2023-11-04 00:57:10 035f424 chore(Algebra/Algebra/NonUnitalSubalgebra): generalize lemmas to non-associative cases (#8147) Notably this generalizes `instNonUnitalSubringClass` and makes `toNonUnitalSubring` work in the non-associative case. The types themselves were already sufficiently general. ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/NonUnitalSubalgebra.lean +/- theorem NonUnitalAlgebra.top_toSubring +/- theorem NonUnitalSubalgebra.coe_toNonUnitalSubring +/- theorem NonUnitalSubalgebra.mem_toNonUnitalSubring +/- def NonUnitalSubalgebra.toNonUnitalSubring' +/- def NonUnitalSubalgebra.toNonUnitalSubring +/- theorem NonUnitalSubalgebra.toNonUnitalSubring_inj +/- theorem NonUnitalSubalgebra.toNonUnitalSubring_injective +/- def NonUnitalSubalgebra.toNonUnitalSubsemiring' +/- def NonUnitalSubalgebra.toSubmodule' 2023-11-03 21:31:48 874ff05 chore: add condition to lean-pr-testing-comments.sh (#8082) This looks for one additional emoji, which now may be added from the Lean 4 side if it decides it is not ready to attempt Mathlib CI. ESTIMATED CHANGES Modified scripts/lean-pr-testing-comments.sh 2023-11-03 20:42:48 00b8ded fix: discharger syntax for field_simp (#8165) The original code was passing the wrong term to `tacticToDischarge`, which made the discharger argument unusable. ESTIMATED CHANGES Modified Mathlib/Tactic/FieldSimp.lean Modified test/FieldSimp.lean 2023-11-03 20:42:47 85b362e chore(LinearAlgebra/QuadraticForm/Basic): update SHA (#8161) The change from `@[reducible] def` to `abbreviation` is meaningless in Lean 4 (in lean3 it was to force the generation of equation lemmas). At any rate we already use `abbrev`: https://github.com/leanprover-community/mathlib4/blob/ad7876f1efce582b6da61e520d1a73f6f840b4e9/Mathlib/LinearAlgebra/QuadraticForm/Basic.lean#L908-L909 ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/QuadraticForm/Basic.lean 2023-11-03 20:42:46 dfb1283 feat(CategoryTheory): inductive construction of composable arrows (#8146) ESTIMATED CHANGES Modified Mathlib/AlgebraicTopology/Nerve.lean + theorem CategoryTheory.Nerve.δ₀_eq Modified Mathlib/CategoryTheory/ComposableArrows.lean + def CategoryTheory.ComposableArrows.Precomp.map + theorem CategoryTheory.ComposableArrows.Precomp.map_comp + theorem CategoryTheory.ComposableArrows.Precomp.map_id + theorem CategoryTheory.ComposableArrows.Precomp.map_one_one + theorem CategoryTheory.ComposableArrows.Precomp.map_one_succ + theorem CategoryTheory.ComposableArrows.Precomp.map_succ_succ + theorem CategoryTheory.ComposableArrows.Precomp.map_zero_one' + theorem CategoryTheory.ComposableArrows.Precomp.map_zero_one + theorem CategoryTheory.ComposableArrows.Precomp.map_zero_succ_succ + theorem CategoryTheory.ComposableArrows.Precomp.map_zero_zero + def CategoryTheory.ComposableArrows.Precomp.obj + theorem CategoryTheory.ComposableArrows.Precomp.obj_one + theorem CategoryTheory.ComposableArrows.Precomp.obj_succ + theorem CategoryTheory.ComposableArrows.Precomp.obj_zero + def CategoryTheory.ComposableArrows.mk₂ + def CategoryTheory.ComposableArrows.mk₃ + def CategoryTheory.ComposableArrows.precomp + theorem CategoryTheory.ComposableArrows.precomp_δ₀ + def CategoryTheory.ComposableArrows.whiskerLeft + def CategoryTheory.ComposableArrows.whiskerLeftFunctor + def CategoryTheory.ComposableArrows.δ₀Functor + def CategoryTheory.Functor.mapComposableArrows - theorem CategoryTheory.nerve_obj_eq_composableArrows + def Fin.succFunctor 2023-11-03 20:42:45 f4243b9 feat: Lemmas about the iterated shadow (#7863) Move the lemmas characterising `Covby` on `Finset α` from `Data.Finset.Interval` to `Data.Finset.Basic`. Golf the other proofs in `Data.Finset.Interval` and make sure the lemma names reflect whether each lemma is about `insert` or `cons`. ESTIMATED CHANGES Modified Mathlib/Combinatorics/SetFamily/Shadow.lean +/- theorem Finset.exists_subset_of_mem_shadow +/- theorem Finset.mem_shadow_iff - theorem Finset.mem_shadow_iff_exists_mem_card_add +/- theorem Finset.mem_shadow_iff_exists_mem_card_add_one + theorem Finset.mem_shadow_iff_exists_sdiff +/- theorem Finset.mem_shadow_iff_insert_mem + theorem Finset.mem_shadow_iterate_iff_exists_card + theorem Finset.mem_shadow_iterate_iff_exists_mem_card_add + theorem Finset.mem_shadow_iterate_iff_exists_sdiff +/- theorem Finset.mem_upShadow_iff +/- theorem Finset.mem_upShadow_iff_erase_mem +/- theorem Finset.mem_upShadow_iff_exists_mem_card_add_one + theorem Finset.mem_upShadow_iff_exists_sdiff + theorem Finset.mem_upShadow_iterate_iff_exists_card + theorem Finset.mem_upShadow_iterate_iff_exists_mem_card_add + theorem Finset.mem_upShadow_iterate_iff_exists_sdiff + theorem Finset.shadow_iterate_empty + theorem Set.Sized.shadow_iterate Modified Mathlib/Data/Finset/Basic.lean + theorem Finset.covby_cons + theorem Finset.covby_iff_exists_cons + theorem Finset.covby_iff_exists_erase + theorem Finset.covby_iff_exists_insert + theorem Finset.covby_insert +/- theorem Finset.insert_erase +/- theorem Finset.insert_sdiff_cancel +/- theorem Finset.subset_insert Modified Mathlib/Data/Finset/Card.lean +/- theorem Finset.card_eq_succ +/- theorem Finset.card_eq_three +/- theorem Finset.card_eq_two + theorem Finset.covby_iff_card_sdiff_eq_one Modified Mathlib/Data/Finset/Interval.lean - theorem Finset.antitone_iff' - theorem Finset.antitone_iff + theorem Finset.antitone_iff_forall_cons_le + theorem Finset.antitone_iff_forall_insert_le - theorem Finset.covby_cons - theorem Finset.covby_iff' - theorem Finset.covby_iff - theorem Finset.covby_insert - theorem Finset.monotone_iff' - theorem Finset.monotone_iff + theorem Finset.monotone_iff_forall_le_cons + theorem Finset.monotone_iff_forall_le_insert - theorem Finset.strictAnti_iff' - theorem Finset.strictAnti_iff + theorem Finset.strictAnti_iff_forall_cons_lt + theorem Finset.strictAnti_iff_forall_lt_insert - theorem Finset.strictMono_iff' - theorem Finset.strictMono_iff + theorem Finset.strictMono_iff_forall_lt_cons + theorem Finset.strictMono_iff_forall_lt_insert 2023-11-03 20:42:44 2c48e92 feat(Data/Polynomial/Derivation): add version of chain rule (#7419) If `A` is an `R`-algebra and `d : A → M` is a derivation, then for any polynomial `f : R[X]` and any `a : A`, `d(f(a)) = f'(a) d a`. ESTIMATED CHANGES Modified Mathlib/Data/Polynomial/Derivation.lean + def Derivation.compAEval + theorem Derivation.compAEval_eq + theorem Derivation.comp_aeval_eq 2023-11-03 20:42:43 b49464e feat(Counterexamples/CliffordAlgebra_not_injective): algebraMap is not always injective. (#6657) This provides a counterexample for the claim that `Function.Injective (algebraMap R <| CliffordAlgebra Q)`. This is a formalization of https://mathoverflow.net/questions/60596/clifford-pbw-theorem-for-quadratic-form/87958#87958 Some Zulip discussion is at https://leanprover.zulipchat.com/#narrow/stream/113489-new-members/topic/.F0.9D.94.BD.E2.82.82.5B.CE.B1.2C.20.CE.B2.2C.20.CE.B3.5D.20.2F.20.28.CE.B1.C2.B2.2C.20.CE.B2.C2.B2.2C.20.CE.B3.C2.B2.29/near/222716333. ESTIMATED CHANGES Modified Counterexamples.lean Added Counterexamples/CliffordAlgebra_not_injective.lean + theorem CliffordAlgebra.not_forall_algebraMap_injective.{v} + def Q60596.K.gen + def Q60596.K + def Q60596.Q' + theorem Q60596.Q'_add + theorem Q60596.Q'_apply + theorem Q60596.Q'_apply_single + theorem Q60596.Q'_sub + theorem Q60596.Q'_zero_under_ideal + def Q60596.Q + theorem Q60596.X0_X1_X2_not_mem_kIdeal + theorem Q60596.X_sq + theorem Q60596.algebraMap_not_injective + theorem Q60596.algebraMap_αβγ_eq_zero + theorem Q60596.comap_C_kIdeal + def Q60596.gen + theorem Q60596.gen_mul_gen + def Q60596.kIdeal + def Q60596.lFunc + theorem Q60596.mem_kIdeal_iff + theorem Q60596.mul_self_mem_kIdeal_of_X0_X1_X2_mul_mem + theorem Q60596.quot_obv + def Q60596.sq + theorem Q60596.sq_map_add_char_two + theorem Q60596.sq_map_sub_char_two + theorem Q60596.sq_zero_of_αβγ_mul + theorem Q60596.αβγ_ne_zero + theorem Q60596.αβγ_smul_eq_zero Modified Mathlib/RingTheory/Ideal/Operations.lean + theorem Finsupp.mem_ideal_span_range_iff_exists_finsupp + theorem mem_ideal_span_range_iff_exists_fun 2023-11-03 19:29:42 ccd1576 feat: miscellaneous linear algebra lemmas (#8157) ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/Basic.lean + theorem Algebra.commute_algebraMap_left + theorem Algebra.commute_algebraMap_right Modified Mathlib/Algebra/Module/Submodule/Lattice.lean +/- theorem Submodule.eq_bot_of_subsingleton + theorem Submodule.nontrivial_iff_ne_bot + theorem Submodule.subsingleton_iff_eq_bot Modified Mathlib/Analysis/InnerProductSpace/Spectrum.lean Modified Mathlib/Data/Set/Function.lean + theorem Set.MapsTo.restrict_surjective_iff Modified Mathlib/LinearAlgebra/Basic.lean + theorem LinearMap.injective_restrict_iff_disjoint + theorem LinearMap.ker_le_comap + theorem LinearMap.ker_sup_ker_le_ker_comp_of_commute Modified Mathlib/LinearAlgebra/DFinsupp.lean + theorem Submodule.mem_iSup_iff_exists_finsupp Modified Mathlib/LinearAlgebra/FiniteDimensional.lean + theorem LinearMap.comap_eq_sup_ker_of_disjoint + theorem LinearMap.injOn_iff_surjOn + theorem LinearMap.ker_comp_eq_of_commute_of_disjoint_ker + theorem LinearMap.ker_noncommProd_eq_of_supIndep_ker Modified Mathlib/LinearAlgebra/Matrix/Gershgorin.lean 2023-11-03 16:55:31 baa7aa8 feat: basic lemmas about nilpotency in rings (#8156) ESTIMATED CHANGES Modified Mathlib/RingTheory/Nilpotent.lean + theorem IsNilpotent.map_iff + theorem NoZeroSMulDivisors.isReduced 2023-11-03 16:55:30 edcf920 feat: expand `Finset.noncommProd` API (#8155) ESTIMATED CHANGES Modified Mathlib/Data/Finset/NoncommProd.lean + theorem Finset.mul_noncommProd_erase + theorem Finset.noncommProd_erase_mul + theorem Finset.noncommProd_induction + theorem Multiset.mul_noncommProd_erase + theorem Multiset.noncommProd_erase_mul + theorem Multiset.noncommProd_induction Modified Mathlib/Data/List/BigOperators/Basic.lean +/- theorem List.prod_erase + theorem List.prod_erase_of_comm + theorem List.prod_induction Modified Mathlib/Data/Multiset/Basic.lean + theorem Multiset.erase_cons_tail_of_mem + theorem Multiset.map_erase_of_mem 2023-11-03 16:55:29 721d46e feat: characterise independence in compactly-generated lattices (#8154) Also some loosely-related short lemmas ESTIMATED CHANGES Modified Mathlib/Order/CompactlyGenerated.lean + theorem CompleteLattice.independent_iff_supIndep_of_injOn Modified Mathlib/Order/CompleteLattice.lean + theorem biInf_congr + theorem biSup_congr Modified Mathlib/Order/Disjoint.lean + theorem disjoint_of_subsingleton Modified Mathlib/Order/SupIndep.lean + theorem CompleteLattice.Independent.injOn + theorem CompleteLattice.Independent.supIndep' 2023-11-03 16:13:51 bf4260c chore(RingTheory/Derivation/Basic): generalize `Derivation.compAlgebraMap` to semirings (#8151) Also adds a `simps` configuration so we get nice lemmas names with `@[simps]` and shuffles the variable order to put all the types first ESTIMATED CHANGES Modified Mathlib/RingTheory/Derivation/Basic.lean + def Derivation.Simps.apply + def Derivation.compAlgebraMap +/- structure Derivation Modified Mathlib/RingTheory/Kaehler.lean - def Derivation.compAlgebraMap 2023-11-03 16:13:50 7d18b6d chore: bump dependencies (#8149) ESTIMATED CHANGES Modified Mathlib/Logic/Basic.lean - theorem or_iff_not_imp_left - theorem or_iff_not_imp_right Modified lake-manifest.json 2023-11-03 16:13:48 2e15c5a feat: use Minkowski's theorem to prove the existence of algebraic integers of small norm (#8128) We define the convex body `convexBodySum` and prove the following ```lean theorem exists_ne_zero_mem_ringOfIntegers_of_norm_le {B : ℝ} (h : (minkowskiBound K) < volume (convexBodySum K B)) : ∃ (a : 𝓞 K), a ≠ 0 ∧ |Algebra.norm ℚ (a:K)| ≤ ((finrank ℚ K : ℝ)⁻¹ * B) ^ (finrank ℚ K) ``` Computation of the `volume (convexBodySum K B))` and applications of the result are coming in a following PR. ESTIMATED CHANGES Modified Mathlib/Analysis/Convex/Basic.lean + theorem Convex_subadditive_le Modified Mathlib/Analysis/MeanInequalities.lean + theorem Real.geom_mean_le_arith_mean Modified Mathlib/NumberTheory/NumberField/CanonicalEmbedding.lean + theorem NumberField.mixedEmbedding.convexBodySum_convex + theorem NumberField.mixedEmbedding.convexBodySum_empty + theorem NumberField.mixedEmbedding.convexBodySum_mem + theorem NumberField.mixedEmbedding.convexBodySum_symmetric + theorem NumberField.mixedEmbedding.exists_ne_zero_mem_ringOfIntegers_of_norm_le Modified Mathlib/NumberTheory/NumberField/Embeddings.lean + theorem NumberField.InfinitePlace.sum_mult_eq 2023-11-03 16:13:47 f17743c docs: prevent lists running onto a single line (#8122) ESTIMATED CHANGES Modified Mathlib/Control/Functor/Multivariate.lean Modified Mathlib/Data/List/Infix.lean Modified Mathlib/Data/QPF/Univariate/Basic.lean Modified Mathlib/Logic/Equiv/LocalEquiv.lean Modified Mathlib/Topology/LocalHomeomorph.lean 2023-11-03 16:13:46 6480cf3 feat(FieldTheory.AbsoluteGaloisGroup): add the absolute Galois group and its topological abelianization (#7783) We define the absolute Galois group of a field `K` and its topological abelianization. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/FieldTheory/AbsoluteGaloisGroup.lean + def Field.absoluteGaloisGroup Added Mathlib/Topology/Algebra/Group/TopologicalAbelianization.lean Modified lean-toolchain 2023-11-03 16:13:45 5db1ef3 feat: The four functions theorem (#7551) Prove the four functions theorem, aka Ahlswede-Daykin inequality, and derive the Holley, Fortuin-Kastelyn-Ginibre and Marica-Schönheim inequalities. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Combinatorics/SetFamily/FourFunctions.lean + theorem Finset.card_le_card_diffs + theorem Finset.le_card_diffs_mul_card_diffs + theorem Finset.le_card_infs_mul_card_sups + theorem collapse_eq + theorem collapse_modular + theorem collapse_nonneg + theorem collapse_of_mem + theorem fkg + theorem four_functions_theorem + theorem four_functions_theorem_univ + theorem holley + theorem le_collapse_of_insert_mem + theorem le_collapse_of_mem + theorem sum_collapse Modified Mathlib/Data/Finset/Sups.lean + theorem Finset.inter_mem_infs + theorem Finset.powerset_infs_powerset_self + theorem Finset.powerset_sups_powerset_self + theorem Finset.union_mem_sups + theorem Finset.univ_infs_univ + theorem Finset.univ_sups_univ 2023-11-03 14:53:29 ad7876f chore (NumberTheory/ZetaFunction): fix typo (#8153) Fix a typo in module doc string (pointed out on zulip: https://leanprover.zulipchat.com/#narrow/stream/217875-Is-there-code-for-X.3F/topic/Euler.20products/near/400126787) ESTIMATED CHANGES Modified Mathlib/NumberTheory/ZetaFunction.lean 2023-11-03 14:28:59 500b9f9 feat: `CompHaus` and friends are preregular (#8126) We prove that `CompHaus`, `Profinite` and `Stonean` are preregular (that effective epis can be pulled back). ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Sites/EffectiveEpimorphic.lean + def CategoryTheory.EffectiveEpiStructId Modified Mathlib/Topology/Category/CompHaus/EffectiveEpi.lean Modified Mathlib/Topology/Category/Profinite/EffectiveEpi.lean Modified Mathlib/Topology/Category/Stonean/Basic.lean Modified Mathlib/Topology/Category/Stonean/EffectiveEpi.lean 2023-11-03 14:28:57 ab3030a feat: Fubini for functions with compact support and non-sigma-finite measures (#8125) ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Constructions/Prod/Integral.lean + theorem MeasureTheory.integral_integral_swap_of_hasCompactSupport Modified Mathlib/MeasureTheory/Function/SimpleFuncDense.lean + theorem HasCompactSupport.exists_simpleFunc_approx_of_prod + theorem HasCompactSupport.measurable_of_prod Modified Mathlib/MeasureTheory/Function/StronglyMeasurable/Basic.lean + theorem Continuous.stronglyMeasurable_of_hasCompactMulSupport - theorem Continuous.stronglyMeasurable_of_hasCompactSupport + theorem Continuous.stronglyMeasurable_of_mulSupport_subset_isCompact + theorem HasCompactSupport.stronglyMeasurable_of_prod 2023-11-03 14:01:16 36d7949 feat: finite-dimensional manifolds are locally compact (#7822) ... assuming they're modelled over a locally compact field. (Currently, the only such instances in mathlib are $\mathbb{R}$ and $\mathbb{C}$. Once local compactness of the $p$-adic numbers is added to mathlib, this theorem will apply to them also.) - part of the road towards Sard's theorem ESTIMATED CHANGES Modified Mathlib/Geometry/Manifold/SmoothManifoldWithCorners.lean + theorem Manifold.locallyCompact_of_finiteDimensional 2023-11-03 11:59:05 a717942 feat: make Quotient.mk notation pretty print (#8022) ESTIMATED CHANGES Modified Mathlib/Data/Quot.lean 2023-11-03 10:44:39 83b113a feat: separated and locally injective maps (#7911) A function from a topological space `X` to a type `Y` is a separated map if any two distinct points in `X` with the same image in `Y` can be separated by open neighborhoods. A constant function is a separated map if and only if `X` is a `T2Space`. A function from a topological space `X` is locally injective if every point of `X` has a neighborhood on which `f` is injective. A constant function is locally injective if and only if `X` is discrete. Given `f : X → Y` one can form the pullback $X \times_Y X$; the diagonal map $\Delta: X \to X \times_Y X$ is always an embedding. It is a closed embedding iff `f` is a separated map, iff the equal locus of any two continuous maps equalized by `f` is closed. It is an open embedding iff `f` is locally injective, iff any such equal locus is open. Therefore, if `f` is a locally injective separated map (e.g. a covering map), the equal locus of two continuous maps equalized by `f` is clopen, so if the two maps agree on a point, then they agree on the whole connected component. This is crucial to showing the uniqueness of path lifting and the uniqueness and continuity of homotopy lifting for covering spaces. The analogue of separated maps and locally injective maps in algebraic geometry are separated morphisms and unramified morphisms, respectively. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Data/Set/Prod.lean + theorem Function.Injective.preimage_pullbackDiagonal + def Function.Pullback.fst + def Function.Pullback.snd + def Function.PullbackSelf.map_fst + def Function.PullbackSelf.map_snd + def Function.mapPullback + def Function.pullbackDiagonal + theorem Function.pullback_comm_sq + theorem image_toPullbackDiag + theorem injective_toPullbackDiag + theorem preimage_map_fst_pullbackDiagonal + theorem range_toPullbackDiag + def toPullbackDiag Modified Mathlib/Topology/Covering.lean + theorem IsCoveringMap.constOn_of_comp + theorem IsCoveringMap.const_of_comp + theorem IsCoveringMap.eqOn_of_comp_eqOn + theorem IsCoveringMap.eq_of_comp_eq Modified Mathlib/Topology/IsLocallyHomeomorph.lean + theorem Homeomorph.isLocallyHomeomorph + theorem IsLocallyHomeomorph.isLocallyInjective - theorem isLocallyHomeomorph_homeomorph Added Mathlib/Topology/SeparatedMap.lean + theorem Continuous.mapPullback + theorem Function.Injective.IsLocallyInjective + theorem Function.Injective.isSeparatedMap + theorem IsLocallyInjective.comp_left + theorem IsLocallyInjective.comp_right + theorem IsLocallyInjective.isOpen_eqLocus + def IsLocallyInjective + theorem IsLocallyInjective_iff_openEmbedding + theorem IsSeparatedMap.comp_left + theorem IsSeparatedMap.comp_right + theorem IsSeparatedMap.constOn_of_comp + theorem IsSeparatedMap.const_of_comp + theorem IsSeparatedMap.eqOn_of_comp_eqOn + theorem IsSeparatedMap.eq_of_comp_eq + theorem IsSeparatedMap.isClosed_eqLocus + theorem IsSeparatedMap.pullback + def IsSeparatedMap + theorem T2Space.isSeparatedMap + theorem discreteTopology_iff_locallyInjective + theorem embedding_toPullbackDiag + theorem isLocallyInjective_iff_isOpenMap + theorem isLocallyInjective_iff_isOpen_diagonal + theorem isLocallyInjective_iff_nhds + theorem isSeparatedMap_iff_closedEmbedding + theorem isSeparatedMap_iff_disjoint_nhds + theorem isSeparatedMap_iff_isClosedMap + theorem isSeparatedMap_iff_isClosed_diagonal + theorem isSeparatedMap_iff_nhds + theorem t2space_iff_isSeparatedMap 2023-11-03 10:44:37 0030ea7 feat: Shorthands for well-foundedness of `<` and `>` (#7865) We already have `WellFoundedLT`/`WellFoundedGT` as wrappers around `IsWellFounded`, but we didn't have the corresponding wrapper lemmas. ESTIMATED CHANGES Modified Mathlib/Analysis/InnerProductSpace/GramSchmidtOrtho.lean Modified Mathlib/Data/Multiset/Basic.lean - theorem Multiset.wellFounded_lt Modified Mathlib/Data/Nat/PartENat.lean Modified Mathlib/Data/Polynomial/Degree/Definitions.lean Modified Mathlib/Data/Polynomial/Degree/TrailingDegree.lean Modified Mathlib/Order/ConditionallyCompleteLattice/Basic.lean +/- theorem sInf_eq_argmin_on Modified Mathlib/Order/RelClasses.lean + theorem wellFounded_gt + theorem wellFounded_lt Modified Mathlib/Order/WithBot.lean - theorem WithBot.wellFounded_gt - theorem WithBot.wellFounded_lt - theorem WithTop.wellFounded_gt - theorem WithTop.wellFounded_lt Modified Mathlib/RingTheory/DedekindDomain/Ideal.lean Modified Mathlib/RingTheory/Int/Basic.lean Modified Mathlib/RingTheory/Polynomial/Basic.lean Modified Mathlib/RingTheory/UniqueFactorizationDomain.lean Modified Mathlib/SetTheory/Ordinal/Arithmetic.lean 2023-11-03 09:35:02 c539f36 chore: avoid `subst` by `rfl` (#8145) ESTIMATED CHANGES Modified Mathlib/Analysis/BoundedVariation.lean Modified Mathlib/Data/List/Perm.lean 2023-11-03 09:35:00 b7a9938 feat(MeasureTheory/SimpleFunc): add `piecewise_same` (#8144) ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Function/SimpleFunc.lean + theorem MeasureTheory.SimpleFunc.piecewise_same 2023-11-03 09:34:59 bfdf7d0 chore: golf IsSplittingField.algEquiv (#8142) Also golfs `Normal.of_algEquiv` and `Algebra.IsIntegral.of_finite` and refactors `Algebra.IsAlgebraic.bijective_of_isScalarTower`. ESTIMATED CHANGES Modified Mathlib/FieldTheory/Normal.lean +/- theorem Normal.of_algEquiv Modified Mathlib/FieldTheory/SplittingField/Construction.lean +/- def Polynomial.IsSplittingField.algEquiv Modified Mathlib/Logic/Function/Basic.lean + theorem Function.Injective.bijective₂_of_surjective +/- theorem Function.Injective.of_comp_iff + theorem Function.Surjective.bijective₂_of_injective Modified Mathlib/RingTheory/Algebraic.lean + theorem Algebra.IsAlgebraic.algHom_bijective₂ Modified Mathlib/RingTheory/IntegralClosure.lean +/- theorem Algebra.IsIntegral.of_finite 2023-11-03 09:34:58 b3e4ef9 feat(Order/PartialSups): golf, add lemmas (#8138) - Add `partialSups_iff_forall` and `partialSups_le_iff`. - Use them to golf some proofs. - Drop `partialSups_apply_mono` because it's just `(partialSups f).mono`. - Add `disjoint_partialSups_left` and `disjoint_partialSups_right`. Motivated by `partialSups_le_iff` from the Mandelbrot Set Connectedness Project. ESTIMATED CHANGES Modified Mathlib/Order/PartialSups.lean + theorem disjoint_partialSups_left + theorem disjoint_partialSups_right +/- theorem le_partialSups_of_le - theorem partialSups_apply_mono +/- theorem partialSups_eq_ciSup_Iic + theorem partialSups_iff_forall + theorem partialSups_le_iff +/- theorem partialSups_mono + theorem upperBounds_range_partialSups 2023-11-03 09:34:57 d8418cc feat(Data/Real/NNReal): add lemmas about `Real.toNNReal` (#8136) Add lemmas about comparison between `Real.toNNReal` and `Nat.cast`/`OfNat.ofNat`. Also add a few supporting lemmas. ESTIMATED CHANGES Modified Mathlib/Data/Nat/Cast/Defs.lean + theorem Nat.AtLeastTwo.ne_one + theorem Nat.AtLeastTwo.ne_zero Modified Mathlib/Data/Real/NNReal.lean + theorem Real.nat_cast_le_toNNReal' + theorem Real.nat_cast_le_toNNReal + theorem Real.nat_cast_lt_toNNReal + theorem Real.ofNat_le_toNNReal + theorem Real.ofNat_lt_toNNReal + theorem Real.one_le_toNNReal + theorem Real.one_lt_toNNReal + theorem Real.toNNReal_eq_iff_eq_coe + theorem Real.toNNReal_eq_nat_cast + theorem Real.toNNReal_eq_ofNat + theorem Real.toNNReal_eq_one + theorem Real.toNNReal_le_nat_cast + theorem Real.toNNReal_le_ofNat + theorem Real.toNNReal_le_one + theorem Real.toNNReal_le_toNNReal_iff' + theorem Real.toNNReal_le_toNNReal_iff_of_pos + theorem Real.toNNReal_lt_nat_cast' + theorem Real.toNNReal_lt_nat_cast + theorem Real.toNNReal_lt_ofNat + theorem Real.toNNReal_lt_one 2023-11-03 09:34:56 0bc95f4 feat: add `totallyDisconnectedSpace_subtype_iff` (#8134) Also add a version about `Embedding`. Motivated by a lemma in the Mandelbrot Set Connectedness Project. ESTIMATED CHANGES Modified Mathlib/Topology/Connected/TotallyDisconnected.lean + theorem Embedding.isTotallyDisconnected_image + theorem Embedding.isTotallyDisconnected_range + theorem totallyDisconnectedSpace_subtype_iff 2023-11-03 09:34:55 8b4ab5e chore: rename eq_of_eq_on_source_univ to eq_of_eqOnSource_univ (#8121) Matches the naming convention, [zulip discussion](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/Naming.20convention/near/399951002). This is probably a left-over from the port; in mathlib3, the hypothesis and the lemma were named using "eq_on_source". In passing, we also - add missing periods to all docstrings involved - add a docstring for the LocalHomeomorph version (matching its LocalEquiv clone) - fix a missed rename in a doc comment. ESTIMATED CHANGES Modified Mathlib/Geometry/Manifold/ChartedSpace.lean Modified Mathlib/Logic/Equiv/LocalEquiv.lean + theorem LocalEquiv.eq_of_eqOnSource_univ - theorem LocalEquiv.eq_of_eq_on_source_univ Modified Mathlib/Topology/LocalHomeomorph.lean + theorem LocalHomeomorph.eq_of_eqOnSource_univ - theorem LocalHomeomorph.eq_of_eq_on_source_univ 2023-11-03 09:34:54 ff8432d feat: categorical sheaf condition for presieves of arrows (#7918) - [x] depends on: #7855 ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Sites/EqualizerSheafCondition.lean + theorem CategoryTheory.Equalizer.Presieve.Arrows.FirstObj.ext + def CategoryTheory.Equalizer.Presieve.Arrows.FirstObj + theorem CategoryTheory.Equalizer.Presieve.Arrows.SecondObj.ext + def CategoryTheory.Equalizer.Presieve.Arrows.SecondObj + theorem CategoryTheory.Equalizer.Presieve.Arrows.compatible_iff + def CategoryTheory.Equalizer.Presieve.Arrows.firstMap + def CategoryTheory.Equalizer.Presieve.Arrows.forkMap + def CategoryTheory.Equalizer.Presieve.Arrows.secondMap + theorem CategoryTheory.Equalizer.Presieve.Arrows.sheaf_condition + theorem CategoryTheory.Equalizer.Presieve.Arrows.w 2023-11-03 07:56:13 d816541 feat(CategoryTheory): more extensionality properties for ComposableArrows (#8119) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/ComposableArrows.lean + theorem CategoryTheory.ComposableArrows.ext + theorem CategoryTheory.ComposableArrows.ext₀ + theorem CategoryTheory.ComposableArrows.ext₁ + def CategoryTheory.ComposableArrows.homMk + def CategoryTheory.ComposableArrows.homMk₀ + def CategoryTheory.ComposableArrows.homMk₁ + theorem CategoryTheory.ComposableArrows.hom_ext₀ + theorem CategoryTheory.ComposableArrows.hom_ext₁ + def CategoryTheory.ComposableArrows.isoMk + def CategoryTheory.ComposableArrows.isoMk₀ + def CategoryTheory.ComposableArrows.isoMk₁ + theorem CategoryTheory.ComposableArrows.map'_eq_hom₁ + theorem CategoryTheory.ComposableArrows.mk₀_surjective + theorem CategoryTheory.ComposableArrows.mk₁_surjective Modified Mathlib/CategoryTheory/EqToHom.lean + theorem CategoryTheory.Functor.ext_of_iso 2023-11-03 07:56:11 9fcd4d8 feat: two homotopic maps of short complexes induce the same map in homology (#8079) ESTIMATED CHANGES Modified Mathlib/Algebra/Homology/ShortComplex/Preadditive.lean + theorem CategoryTheory.ShortComplex.Homotopy.homologyMap'_congr + theorem CategoryTheory.ShortComplex.Homotopy.homologyMap_congr + theorem CategoryTheory.ShortComplex.Homotopy.leftHomologyMap'_congr + theorem CategoryTheory.ShortComplex.Homotopy.leftHomologyMap_congr + theorem CategoryTheory.ShortComplex.Homotopy.rightHomologyMap'_congr + theorem CategoryTheory.ShortComplex.Homotopy.rightHomologyMap_congr + def CategoryTheory.ShortComplex.HomotopyEquiv.refl + def CategoryTheory.ShortComplex.HomotopyEquiv.symm + def CategoryTheory.ShortComplex.HomotopyEquiv.trans + structure CategoryTheory.ShortComplex.HomotopyEquiv + def CategoryTheory.ShortComplex.LeftHomologyMapData.ofNullHomotopic + def CategoryTheory.ShortComplex.RightHomologyMapData.ofNullHomotopic + theorem CategoryTheory.ShortComplex.homologyMap'_nullHomotopic + theorem CategoryTheory.ShortComplex.homologyMap_nullHomotopic + theorem CategoryTheory.ShortComplex.leftHomologyMap'_nullHomotopic + theorem CategoryTheory.ShortComplex.leftHomologyMap_nullHomotopic + theorem CategoryTheory.ShortComplex.rightHomologyMap'_nullHomotopic + theorem CategoryTheory.ShortComplex.rightHomologyMap_nullHomotopic 2023-11-03 07:31:20 8ddc254 feat: exactness of short complexes in concrete categories (#8060) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Homology/ShortComplex/Ab.lean + theorem CategoryTheory.ShortComplex.ShortExact.ab_injective_f + theorem CategoryTheory.ShortComplex.ShortExact.ab_surjective_g Added Mathlib/Algebra/Homology/ShortComplex/ConcreteCategory.lean + theorem CategoryTheory.Preadditive.epi_iff_injective + theorem CategoryTheory.Preadditive.mono_iff_injective + theorem CategoryTheory.ShortComplex.ShortExact.injective_f + theorem CategoryTheory.ShortComplex.ShortExact.surjective_g + theorem CategoryTheory.ShortComplex.exact_iff_exact_map_forget₂ + theorem CategoryTheory.ShortComplex.exact_iff_of_concreteCategory + theorem CategoryTheory.ShortComplex.zero_apply 2023-11-03 07:03:21 f7d628c chore: remove unnecessary imports from BinaryHeap (#8143) ESTIMATED CHANGES Modified Mathlib/Data/BinaryHeap.lean 2023-11-03 06:27:32 9eab056 feat(SpecialFunctions/Pow): prove `cpow_int_mul` etc (#7942) * Add `Complex.cpow_int_mul`, `Complex.cpow_mul_int`, `Complex.cpow_nat_mul`, and `Complex.cpow_mul_nat`. * Generalize `Complex.cpow_two` to `Complex.cpow_ofNat`. * Golf some proofs using new lemmas. Motivated by a lemma in the Mandelbrot set connectedness project. Co-Authored-By: @girving ESTIMATED CHANGES Modified Mathlib/Analysis/SpecialFunctions/Complex/Arg.lean + theorem Complex.neg_pi_div_two_lt_arg_iff Modified Mathlib/Analysis/SpecialFunctions/Pow/Complex.lean +/- theorem Complex.cpow_int_cast + theorem Complex.cpow_int_mul' + theorem Complex.cpow_int_mul + theorem Complex.cpow_mul_int + theorem Complex.cpow_mul_nat + theorem Complex.cpow_mul_ofNat +/- theorem Complex.cpow_nat_cast + theorem Complex.cpow_nat_mul' + theorem Complex.cpow_nat_mul + theorem Complex.cpow_ofNat + theorem Complex.cpow_ofNat_inv_pow + theorem Complex.cpow_ofNat_mul' + theorem Complex.cpow_ofNat_mul +/- theorem Complex.cpow_two + theorem Complex.pow_cpow_nat_inv + theorem Complex.pow_cpow_ofNat_inv + theorem Complex.sq_cpow_two_inv 2023-11-03 02:19:17 433ae22 chore: bump aesop dependency (#8139) ESTIMATED CHANGES Modified lake-manifest.json 2023-11-02 23:47:07 778883a chore: `exact`, not `refine` when possible (#8130) ESTIMATED CHANGES Modified Mathlib/Algebra/BigOperators/Finsupp.lean Modified Mathlib/AlgebraicGeometry/Restrict.lean Modified Mathlib/CategoryTheory/Limits/VanKampen.lean Modified Mathlib/CategoryTheory/Sites/Coherent.lean Modified Mathlib/CategoryTheory/Sites/EffectiveEpimorphic.lean Modified Mathlib/CategoryTheory/Sites/RegularExtensive.lean Modified Mathlib/Data/List/EditDistance/Defs.lean Modified Mathlib/LinearAlgebra/Dual.lean Modified Mathlib/LinearAlgebra/FreeModule/Norm.lean Modified Mathlib/MeasureTheory/Function/StronglyMeasurable/Basic.lean Modified Mathlib/MeasureTheory/Integral/IntegrableOn.lean Modified Mathlib/MeasureTheory/Integral/Layercake.lean Modified Mathlib/Order/Atoms.lean Modified Mathlib/Order/CompleteBooleanAlgebra.lean Modified Mathlib/Tactic/NormNum/Inv.lean Modified Mathlib/Topology/Algebra/MulAction.lean Modified Mathlib/Topology/Connected/Basic.lean Modified Mathlib/Topology/Filter.lean 2023-11-02 22:31:11 7fbda2f chore: fix universe issue in FinitaryExtensive Stonean (#8131) Now `Stonean.{u}` is finitary extensive for any universe `u`. ESTIMATED CHANGES Modified Mathlib/Topology/Category/Stonean/Limits.lean 2023-11-02 21:53:28 78305a2 chore(LinearAlgebra): remove redundant `[Nontrivial R]` (#8129) These can be inferred from `[StrictOrderedSemiring R]`. ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/Orientation.lean +/- theorem Basis.abs_det_adjustToOrientation +/- def Basis.adjustToOrientation +/- theorem Basis.adjustToOrientation_apply_eq_or_eq_neg +/- theorem Basis.det_adjustToOrientation +/- theorem Basis.orientation_adjustToOrientation +/- theorem Basis.orientation_isEmpty +/- theorem Basis.orientation_map +/- theorem Basis.orientation_neg_single +/- theorem Basis.orientation_reindex +/- theorem Basis.orientation_unitsSMul +/- theorem Orientation.eq_or_eq_neg_of_isEmpty +/- theorem Orientation.map_positiveOrientation_of_isEmpty 2023-11-02 21:53:27 7f7a1f0 chore(RingTheory/TensorProduct): missing trivial lemmas (#8120) This also tweaks some argument explicitness, and removes unnecessary type ascriptions ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/TensorProduct/Tower.lean + theorem TensorProduct.AlgebraTensorModule.rid_symm_apply Modified Mathlib/RingTheory/TensorProduct.lean + theorem Algebra.TensorProduct.assoc_symm_tmul + theorem Algebra.TensorProduct.comm_symm + theorem Algebra.TensorProduct.comm_symm_tmul + theorem Algebra.TensorProduct.lid_symm_apply +/- theorem Algebra.TensorProduct.lid_tmul + theorem Algebra.TensorProduct.rid_symm_apply 2023-11-02 21:04:23 dd5b3da feat: the universal property of a disjoint union of topological spaces (#8092) ESTIMATED CHANGES Modified Mathlib/Topology/ContinuousFunction/Basic.lean + def ContinuousMap.piEquiv + def ContinuousMap.sigma + def ContinuousMap.sigmaEquiv +/- def ContinuousMap.sigmaMk 2023-11-02 20:10:54 ec3e666 feat: functoriality of the homology of homological complexes (#8113) ESTIMATED CHANGES Modified Mathlib/Algebra/Homology/ShortComplex/HomologicalComplex.lean + def HomologicalComplex.ExactAt + theorem HomologicalComplex.cyclesMap_comp + theorem HomologicalComplex.cyclesMap_i + theorem HomologicalComplex.cyclesMap_id + theorem HomologicalComplex.cyclesMap_zero + theorem HomologicalComplex.exactAt_iff' + theorem HomologicalComplex.exactAt_iff + theorem HomologicalComplex.exactAt_iff_isZero_homology + theorem HomologicalComplex.homologyMap_comp + theorem HomologicalComplex.homologyMap_id + theorem HomologicalComplex.homologyMap_zero + theorem HomologicalComplex.homology_π_ι + theorem HomologicalComplex.homologyι_naturality + theorem HomologicalComplex.homologyπ_naturality + theorem HomologicalComplex.liftCycles_comp_cyclesMap + theorem HomologicalComplex.opcyclesMap_comp + theorem HomologicalComplex.opcyclesMap_comp_descOpcycles + theorem HomologicalComplex.opcyclesMap_id + theorem HomologicalComplex.opcyclesMap_zero + theorem HomologicalComplex.p_opcyclesMap 2023-11-02 19:35:19 4396482 feat: add some missing PowerSeries.coeff_C lemmas (#8019) These parallel the lemmas for Polynomial ESTIMATED CHANGES Modified Mathlib/RingTheory/HahnSeries.lean Modified Mathlib/RingTheory/PowerSeries/Basic.lean + theorem PowerSeries.coeff_ne_zero_C + theorem PowerSeries.coeff_succ_C Modified Mathlib/RingTheory/PowerSeries/Derivative.lean 2023-11-02 16:15:35 c77531a feat: comparison isomorphism for the two homology APIs (#8114) This PR also changes the definition of group cohomology so as to use the new homology API. ESTIMATED CHANGES Modified Mathlib/Algebra/Homology/ShortComplex/Abelian.lean Modified Mathlib/Algebra/Homology/ShortComplex/HomologicalComplex.lean Modified Mathlib/RepresentationTheory/GroupCohomology/Basic.lean 2023-11-02 16:15:34 10702b5 feat: the snake lemma (#8084) ESTIMATED CHANGES Modified Mathlib/Algebra/Homology/ShortComplex/SnakeLemma.lean + theorem CategoryTheory.ShortComplex.SnakeInput.L₀'_exact + theorem CategoryTheory.ShortComplex.SnakeInput.L₀X₂ToP_comp_pullback_snd + theorem CategoryTheory.ShortComplex.SnakeInput.L₀X₂ToP_comp_φ₁ + theorem CategoryTheory.ShortComplex.SnakeInput.L₀_exact + theorem CategoryTheory.ShortComplex.SnakeInput.L₀_g_δ + theorem CategoryTheory.ShortComplex.SnakeInput.L₁'_exact + theorem CategoryTheory.ShortComplex.SnakeInput.L₁_f_φ₁ + theorem CategoryTheory.ShortComplex.SnakeInput.L₂'_exact + theorem CategoryTheory.ShortComplex.SnakeInput.L₃_exact + theorem CategoryTheory.ShortComplex.SnakeInput.op_δ + theorem CategoryTheory.ShortComplex.SnakeInput.snd_δ + theorem CategoryTheory.ShortComplex.SnakeInput.snd_δ_inr + theorem CategoryTheory.ShortComplex.SnakeInput.δ_L₃_f + theorem CategoryTheory.ShortComplex.SnakeInput.φ₁_L₂_f 2023-11-02 16:15:33 502bbf5 feat: Galois orbits in a normal extension are determined by minimal polynomials (#8028) Add [Normal.minpoly_eq_iff_mem_orbit](https://github.com/leanprover-community/mathlib4/pull/8028/files#diff-d131e3bbd4cfdca7517989f6f30e131ae00a40b34315ac02e6c342c183b6e449R443-R457): addresses https://github.com/leanprover-community/mathlib4/pull/6718/files#r1328899532 Also generalize AlgHom.normal_bijective to `Algebra.IsAlgebraic.bijective_of_isScalarTower'` and golf the proof using a set-theoretic lemma `Surjective.of_comp_left` (slow to build, awaiting CI). ESTIMATED CHANGES Modified Mathlib/FieldTheory/Normal.lean + theorem Normal.minpoly_eq_iff_mem_orbit Modified Mathlib/Logic/Function/Basic.lean +/- theorem Function.Injective.of_comp + theorem Function.Injective.of_comp_right + theorem Function.Surjective.of_comp_left Modified Mathlib/RingTheory/Algebraic.lean + theorem Algebra.IsAlgebraic.bijective_of_isScalarTower' + theorem Algebra.IsAlgebraic.bijective_of_isScalarTower 2023-11-02 15:26:35 6668fec refactor: use `PFunctor.map` instead of `Functor.map` (#7743) `Functor.map` is monomorphic, so the universe of `α` in this theorem is fixed to the universe of `P`: ```lean theorem dest_corec {P : PFunctor.{u}} {α : Type u} (g : α → P α) (x : α) : M.dest (M.corec g x) = M.corec g <$> g x ``` `PFunctor.map` is polymorphic, so the universe of `α` is free from the universe of `P`: ```lean theorem dest_corec {P : PFunctor.{u}} {α : Type v} (g : α → P α) (x : α) : M.dest (M.corec g x) = P.map (M.corec g) (g x) ``` ESTIMATED CHANGES Modified Mathlib/Data/PFunctor/Univariate/Basic.lean +/- theorem PFunctor.fst_map +/- theorem PFunctor.iget_map + theorem PFunctor.map_eq_map Modified Mathlib/Data/PFunctor/Univariate/M.lean +/- theorem PFunctor.M.corec_def +/- theorem PFunctor.M.corec_unique +/- theorem PFunctor.M.dest_corec Modified Mathlib/Data/QPF/Univariate/Basic.lean 2023-11-02 14:15:36 b35ec2f chore: bump CI actions generating deprecation warnings (#8110) ESTIMATED CHANGES Modified .github/workflows/nightly_bump_toolchain.yml Modified .github/workflows/nightly_detect_failure.yml Modified .github/workflows/nightly_merge_master.yml 2023-11-02 14:15:35 72912a3 chore: fix script that updates nightly-testing-YYYY-MM-DD branches (#8109) ESTIMATED CHANGES Modified .github/workflows/nightly_detect_failure.yml 2023-11-02 14:15:34 7e9b515 feat(Data/Rel): prove simple propositions about images, preimages and graphs of relations (#6559) Add lemmas about relation composition with top and bottom elements, conditions under which images under a relation form the whole codomain, and the equivalence between being a functional relation and representable by the graph of a function. ESTIMATED CHANGES Modified Mathlib/Data/Rel.lean + theorem Equiv.graph_inv + theorem Function.graph_comp + theorem Function.graph_def + theorem Function.graph_id + theorem Rel.comp_left_bot + theorem Rel.comp_left_top + theorem Rel.comp_right_bot + theorem Rel.comp_right_top + theorem Rel.image_bot + theorem Rel.image_empty + theorem Rel.image_eq_dom_of_codomain_subset + theorem Rel.image_inter_dom_eq + theorem Rel.image_preimage_subset_inter_codom + theorem Rel.image_top + theorem Rel.inter_dom_subset_preimage_image + theorem Rel.inv_bot + theorem Rel.inv_top + theorem Rel.preimage_bot + theorem Rel.preimage_empty + theorem Rel.preimage_eq_codom_of_domain_subset + theorem Rel.preimage_inter_codom_eq + theorem Rel.preimage_inv + theorem Rel.preimage_top + theorem Relation.is_graph_iff 2023-11-02 13:03:44 1400397 chore: bump Std to Std#254 (#8106) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Lean/Meta/DiscrTree.lean - def Lean.Meta.DiscrTree.insertIfSpecific - def Lean.Meta.DiscrTree.mapArrays Modified Mathlib/Logic/Basic.lean Modified Mathlib/Mathport/Syntax.lean Modified Mathlib/Tactic.lean Deleted Mathlib/Tactic/Cache.lean - def Mathlib.Tactic.Cache.get - def Mathlib.Tactic.Cache.mk - def Mathlib.Tactic.Cache - def Mathlib.Tactic.DeclCache.get - def Mathlib.Tactic.DeclCache.mk - structure Mathlib.Tactic.DeclCache - def Mathlib.Tactic.DiscrTreeCache.getMatch - def Mathlib.Tactic.DiscrTreeCache.mk - def Mathlib.Tactic.DiscrTreeCache Modified Mathlib/Tactic/Common.lean Modified Mathlib/Tactic/Find.lean Deleted Mathlib/Tactic/LeftRight.lean - def Mathlib.Tactic.LeftRight.leftRightMeta Modified Mathlib/Tactic/LibrarySearch.lean Modified Mathlib/Tactic/MkIffOfInductiveProp.lean Modified Mathlib/Tactic/Propose.lean Modified Mathlib/Tactic/Rewrites.lean Modified lake-manifest.json Deleted test/left_right.lean - def two - def zero Modified test/propose.lean 2023-11-02 11:46:30 e817b78 chore(Order/BooleanAlgebra): reduce risk of instance diamonds (#8099) We need `sup` and `max` to be defeq, and `max` is defined in Std. To achieve this, we define one in terms of the other. Until #8105 was merged (which fixed up leanprover/std4#183), they were not defeq: ```lean example : (GeneralizedCoheytingAlgebra.toLattice : Lattice Bool).sup = DistribLattice.toLattice.sup := rfl -- failed ``` This instance in this PR should have been written such that it couldn't silently cause a diamond in the first place, by reusing existing data rather than creating new data. ESTIMATED CHANGES Modified Mathlib/Order/BooleanAlgebra.lean Modified Mathlib/Order/Lattice.lean 2023-11-02 11:46:29 3a5265f feat: bijective_iff_map_univ_eq_univ (#7120) For functions on finite sets, they are bijections iff they map universes into universes. ESTIMATED CHANGES Modified Mathlib/Data/Fintype/Basic.lean + theorem Multiset.bijective_iff_map_univ_eq_univ +/- theorem Multiset.count_univ 2023-11-02 10:35:45 92fe122 refactor(Algebra/Hom): transpose `Hom` and file name (#8095) I believe the file defining a type of morphisms belongs alongside the file defining the structure this morphism works on. So I would like to reorganize the files in the `Mathlib.Algebra.Hom` folder so that e.g. `Mathlib.Algebra.Hom.Ring` becomes `Mathlib.Algebra.Ring.Hom` and `Mathlib.Algebra.Hom.NonUnitalAlg` becomes `Mathlib.Algebra.Algebra.NonUnitalHom`. While fixing the imports I went ahead and sorted them for good luck. The full list of changes is: renamed: Mathlib/Algebra/Hom/NonUnitalAlg.lean -> Mathlib/Algebra/Algebra/NonUnitalHom.lean renamed: Mathlib/Algebra/Hom/Aut.lean -> Mathlib/Algebra/Group/Aut.lean renamed: Mathlib/Algebra/Hom/Commute.lean -> Mathlib/Algebra/Group/Commute/Hom.lean renamed: Mathlib/Algebra/Hom/Embedding.lean -> Mathlib/Algebra/Group/Embedding.lean renamed: Mathlib/Algebra/Hom/Equiv/Basic.lean -> Mathlib/Algebra/Group/Equiv/Basic.lean renamed: Mathlib/Algebra/Hom/Equiv/TypeTags.lean -> Mathlib/Algebra/Group/Equiv/TypeTags.lean renamed: Mathlib/Algebra/Hom/Equiv/Units/Basic.lean -> Mathlib/Algebra/Group/Units/Equiv.lean renamed: Mathlib/Algebra/Hom/Equiv/Units/GroupWithZero.lean -> Mathlib/Algebra/GroupWithZero/Units/Equiv.lean renamed: Mathlib/Algebra/Hom/Freiman.lean -> Mathlib/Algebra/Group/Freiman.lean renamed: Mathlib/Algebra/Hom/Group/Basic.lean -> Mathlib/Algebra/Group/Hom/Basic.lean renamed: Mathlib/Algebra/Hom/Group/Defs.lean -> Mathlib/Algebra/Group/Hom/Defs.lean renamed: Mathlib/Algebra/Hom/GroupAction.lean -> Mathlib/GroupTheory/GroupAction/Hom.lean renamed: Mathlib/Algebra/Hom/GroupInstances.lean -> Mathlib/Algebra/Group/Hom/Instances.lean renamed: Mathlib/Algebra/Hom/Iterate.lean -> Mathlib/Algebra/GroupPower/IterateHom.lean renamed: Mathlib/Algebra/Hom/Centroid.lean -> Mathlib/Algebra/Ring/CentroidHom.lean renamed: Mathlib/Algebra/Hom/Ring/Basic.lean -> Mathlib/Algebra/Ring/Hom/Basic.lean renamed: Mathlib/Algebra/Hom/Ring/Defs.lean -> Mathlib/Algebra/Ring/Hom/Defs.lean renamed: Mathlib/Algebra/Hom/Units.lean -> Mathlib/Algebra/Group/Units/Hom.lean Zulip thread: https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/Reorganizing.20.60Mathlib.2EAlgebra.2EHom.60 ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Algebra/Bilinear.lean Renamed Mathlib/Algebra/Hom/NonUnitalAlg.lean to Mathlib/Algebra/Algebra/NonUnitalHom.lean Modified Mathlib/Algebra/Algebra/NonUnitalSubalgebra.lean Modified Mathlib/Algebra/Algebra/Unitization.lean Modified Mathlib/Algebra/BigOperators/Basic.lean Modified Mathlib/Algebra/Category/GroupCat/EquivalenceGroupAddGroup.lean Modified Mathlib/Algebra/Category/SemigroupCat/Basic.lean Modified Mathlib/Algebra/Divisibility/Basic.lean Modified Mathlib/Algebra/Field/Basic.lean Modified Mathlib/Algebra/Free.lean Renamed Mathlib/Algebra/Hom/Aut.lean to Mathlib/Algebra/Group/Aut.lean Renamed Mathlib/Algebra/Hom/Commute.lean to Mathlib/Algebra/Group/Commute/Hom.lean Modified Mathlib/Algebra/Group/Conj.lean Renamed Mathlib/Algebra/Hom/Embedding.lean to Mathlib/Algebra/Group/Embedding.lean Renamed Mathlib/Algebra/Hom/Equiv/Basic.lean to Mathlib/Algebra/Group/Equiv/Basic.lean Renamed Mathlib/Algebra/Hom/Equiv/TypeTags.lean to Mathlib/Algebra/Group/Equiv/TypeTags.lean Modified Mathlib/Algebra/Group/Ext.lean Renamed Mathlib/Algebra/Hom/Freiman.lean to Mathlib/Algebra/Group/Freiman.lean Renamed Mathlib/Algebra/Hom/Group/Basic.lean to Mathlib/Algebra/Group/Hom/Basic.lean Renamed Mathlib/Algebra/Hom/Group/Defs.lean to Mathlib/Algebra/Group/Hom/Defs.lean Renamed Mathlib/Algebra/Hom/GroupInstances.lean to Mathlib/Algebra/Group/Hom/Instances.lean Modified Mathlib/Algebra/Group/Opposite.lean Modified Mathlib/Algebra/Group/Pi.lean Modified Mathlib/Algebra/Group/Prod.lean Modified Mathlib/Algebra/Group/TypeTags.lean Modified Mathlib/Algebra/Group/ULift.lean Renamed Mathlib/Algebra/Hom/Equiv/Units/Basic.lean to Mathlib/Algebra/Group/Units/Equiv.lean Renamed Mathlib/Algebra/Hom/Units.lean to Mathlib/Algebra/Group/Units/Hom.lean Modified Mathlib/Algebra/Group/WithOne/Basic.lean Renamed Mathlib/Algebra/Hom/Iterate.lean to Mathlib/Algebra/GroupPower/IterateHom.lean Modified Mathlib/Algebra/GroupPower/Ring.lean Modified Mathlib/Algebra/GroupRingAction/Invariant.lean Renamed Mathlib/Algebra/Hom/Equiv/Units/GroupWithZero.lean to Mathlib/Algebra/GroupWithZero/Units/Equiv.lean Modified Mathlib/Algebra/GroupWithZero/Units/Lemmas.lean Modified Mathlib/Algebra/Lie/NonUnitalNonAssocAlgebra.lean Modified Mathlib/Algebra/Module/LinearMap.lean Modified Mathlib/Algebra/MonoidAlgebra/Basic.lean Modified Mathlib/Algebra/Order/Group/OrderIso.lean Modified Mathlib/Algebra/Order/Hom/Monoid.lean Modified Mathlib/Algebra/Order/Monoid/WithTop.lean Modified Mathlib/Algebra/Order/Ring/WithTop.lean Modified Mathlib/Algebra/Order/Sub/Basic.lean Modified Mathlib/Algebra/Order/WithZero.lean Modified Mathlib/Algebra/Polynomial/GroupRingAction.lean Modified Mathlib/Algebra/Quandle.lean Modified Mathlib/Algebra/Regular/Pow.lean Modified Mathlib/Algebra/Ring/Aut.lean Modified Mathlib/Algebra/Ring/Basic.lean Renamed Mathlib/Algebra/Hom/Centroid.lean to Mathlib/Algebra/Ring/CentroidHom.lean Modified Mathlib/Algebra/Ring/Divisibility/Basic.lean Modified Mathlib/Algebra/Ring/Equiv.lean Renamed Mathlib/Algebra/Hom/Ring/Basic.lean to Mathlib/Algebra/Ring/Hom/Basic.lean Renamed Mathlib/Algebra/Hom/Ring/Defs.lean to Mathlib/Algebra/Ring/Hom/Defs.lean Modified Mathlib/Algebra/Ring/Opposite.lean Modified Mathlib/Algebra/Ring/Pi.lean Modified Mathlib/Algebra/Star/StarAlgHom.lean Modified Mathlib/CategoryTheory/Conj.lean Modified Mathlib/CategoryTheory/Endomorphism.lean Modified Mathlib/CategoryTheory/Groupoid/VertexGroup.lean Modified Mathlib/CategoryTheory/Monoidal/Discrete.lean Modified Mathlib/CategoryTheory/Preadditive/Basic.lean Modified Mathlib/Combinatorics/Additive/SalemSpencer.lean Modified Mathlib/Computability/Language.lean Modified Mathlib/Data/Finset/Image.lean Modified Mathlib/Data/Finset/NoncommProd.lean Modified Mathlib/Data/Finsupp/Basic.lean Modified Mathlib/Data/Int/Cast/Lemmas.lean Modified Mathlib/Data/Nat/Cast/Basic.lean Modified Mathlib/Data/Nat/PartENat.lean Modified Mathlib/Data/Polynomial/Derivative.lean Modified Mathlib/Data/Set/Pointwise/Basic.lean Modified Mathlib/Data/Set/Pointwise/Iterate.lean Modified Mathlib/Data/ZMod/Quotient.lean Modified Mathlib/Deprecated/Group.lean Modified Mathlib/Dynamics/Circle/RotationNumber/TranslationNumber.lean Modified Mathlib/Dynamics/PeriodicPts.lean Modified Mathlib/GroupTheory/Congruence.lean Modified Mathlib/GroupTheory/FreeAbelianGroupFinsupp.lean Modified Mathlib/GroupTheory/GroupAction/Defs.lean Modified Mathlib/GroupTheory/GroupAction/DomAct/ActionHom.lean Modified Mathlib/GroupTheory/GroupAction/Group.lean Renamed Mathlib/Algebra/Hom/GroupAction.lean to Mathlib/GroupTheory/GroupAction/Hom.lean Modified Mathlib/GroupTheory/GroupAction/Quotient.lean Modified Mathlib/GroupTheory/GroupAction/SubMulAction.lean Modified Mathlib/GroupTheory/OrderOfElement.lean Modified Mathlib/GroupTheory/Perm/Basic.lean Modified Mathlib/GroupTheory/SemidirectProduct.lean Modified Mathlib/GroupTheory/Submonoid/Basic.lean Modified Mathlib/GroupTheory/Subsemigroup/Basic.lean Modified Mathlib/MeasureTheory/Group/Action.lean Modified Mathlib/MeasureTheory/Group/Measure.lean Modified Mathlib/Order/SemiconjSup.lean Modified Mathlib/RingTheory/Congruence.lean Modified Mathlib/RingTheory/Coprime/Basic.lean Modified Mathlib/RingTheory/DedekindDomain/SelmerGroup.lean Modified test/symm.lean 2023-11-02 09:33:32 404b225 docs(Order/LocallyFinite): Add a `'` in a doc-string (#8112) I did not label it as `easy`, since you may want to check the definition with a `'` to make sure that the doc-strings are now referring to the correct declarations, but the other declaration is not shown in the diff! ESTIMATED CHANGES Modified Mathlib/Order/LocallyFinite.lean 2023-11-02 09:33:31 ee77c38 refactor(Data/Matrix/Basic): split row/column decls (#8089) This splits out `row`/`col`/`updateRow`/`updateColumn` to their own file, as `Data/Matrix/Basic` is getting rather large. The copyright comes from https://github.com/leanprover-community/mathlib/pull/1816 and https://github.com/leanprover-community/mathlib/pull/2480 There are no new lemmas in this PR, nor were any existing lemmas deleted. It's possible that even more lemmas could migrate to this new file (for instance, flipping the import with `Matrix.Notation` or `LinearAlgebra.Matrix.Trace`), but I've taken the conservative option of leaving those lemmas alone for now. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Data/Matrix/Basic.lean - def Matrix.col - theorem Matrix.col_add - theorem Matrix.col_apply - theorem Matrix.col_eq_zero - theorem Matrix.col_inj - theorem Matrix.col_injective - theorem Matrix.col_mulVec - theorem Matrix.col_smul - theorem Matrix.col_vecMul - theorem Matrix.col_zero - theorem Matrix.conjTranspose_col - theorem Matrix.conjTranspose_row - theorem Matrix.diag_col_mul_row - theorem Matrix.diagonal_updateColumn_single - theorem Matrix.diagonal_updateRow_single - theorem Matrix.map_updateColumn - theorem Matrix.map_updateRow - theorem Matrix.reindex_updateColumn - theorem Matrix.reindex_updateRow - def Matrix.row - theorem Matrix.row_add - theorem Matrix.row_apply - theorem Matrix.row_eq_zero - theorem Matrix.row_inj - theorem Matrix.row_injective - theorem Matrix.row_mulVec - theorem Matrix.row_mul_col_apply - theorem Matrix.row_smul - theorem Matrix.row_vecMul - theorem Matrix.row_zero - theorem Matrix.submatrix_updateColumn_equiv - theorem Matrix.submatrix_updateRow_equiv - theorem Matrix.transpose_col - theorem Matrix.transpose_row - def Matrix.updateColumn - theorem Matrix.updateColumn_apply - theorem Matrix.updateColumn_conjTranspose - theorem Matrix.updateColumn_eq_self - theorem Matrix.updateColumn_ne - theorem Matrix.updateColumn_reindex - theorem Matrix.updateColumn_self - theorem Matrix.updateColumn_submatrix_equiv - theorem Matrix.updateColumn_subsingleton - theorem Matrix.updateColumn_transpose - def Matrix.updateRow - theorem Matrix.updateRow_apply - theorem Matrix.updateRow_conjTranspose - theorem Matrix.updateRow_eq_self - theorem Matrix.updateRow_ne - theorem Matrix.updateRow_reindex - theorem Matrix.updateRow_self - theorem Matrix.updateRow_submatrix_equiv - theorem Matrix.updateRow_subsingleton - theorem Matrix.updateRow_transpose - theorem Matrix.vecMulVec_eq Modified Mathlib/Data/Matrix/Notation.lean Added Mathlib/Data/Matrix/RowCol.lean + def Matrix.col + theorem Matrix.col_add + theorem Matrix.col_apply + theorem Matrix.col_eq_zero + theorem Matrix.col_inj + theorem Matrix.col_injective + theorem Matrix.col_mulVec + theorem Matrix.col_smul + theorem Matrix.col_vecMul + theorem Matrix.col_zero + theorem Matrix.conjTranspose_col + theorem Matrix.conjTranspose_row + theorem Matrix.diag_col_mul_row + theorem Matrix.diagonal_updateColumn_single + theorem Matrix.diagonal_updateRow_single + theorem Matrix.map_updateColumn + theorem Matrix.map_updateRow + theorem Matrix.reindex_updateColumn + theorem Matrix.reindex_updateRow + def Matrix.row + theorem Matrix.row_add + theorem Matrix.row_apply + theorem Matrix.row_eq_zero + theorem Matrix.row_inj + theorem Matrix.row_injective + theorem Matrix.row_mulVec + theorem Matrix.row_mul_col_apply + theorem Matrix.row_smul + theorem Matrix.row_vecMul + theorem Matrix.row_zero + theorem Matrix.submatrix_updateColumn_equiv + theorem Matrix.submatrix_updateRow_equiv + theorem Matrix.transpose_col + theorem Matrix.transpose_row + def Matrix.updateColumn + theorem Matrix.updateColumn_apply + theorem Matrix.updateColumn_conjTranspose + theorem Matrix.updateColumn_eq_self + theorem Matrix.updateColumn_ne + theorem Matrix.updateColumn_reindex + theorem Matrix.updateColumn_self + theorem Matrix.updateColumn_submatrix_equiv + theorem Matrix.updateColumn_subsingleton + theorem Matrix.updateColumn_transpose + def Matrix.updateRow + theorem Matrix.updateRow_apply + theorem Matrix.updateRow_conjTranspose + theorem Matrix.updateRow_eq_self + theorem Matrix.updateRow_ne + theorem Matrix.updateRow_reindex + theorem Matrix.updateRow_self + theorem Matrix.updateRow_submatrix_equiv + theorem Matrix.updateRow_subsingleton + theorem Matrix.updateRow_transpose + theorem Matrix.vecMulVec_eq Modified Mathlib/LinearAlgebra/Matrix/Trace.lean 2023-11-02 08:54:03 726dd08 chore: bump Std to #329 (#8105) This bumps Std up to leanprover/std4#329. This is a replacement for #8005, which I'll now close. ESTIMATED CHANGES Modified Mathlib/Data/Bool/Basic.lean Modified Mathlib/Data/Nat/Bitwise.lean Modified Mathlib/Init/Data/Bool/Lemmas.lean - theorem Bool.false_xor - theorem Bool.xor_false Modified Mathlib/Init/Data/Nat/Bitwise.lean Modified lake-manifest.json 2023-11-02 08:18:43 9fa322a feat: properties of rnDeriv (#7675) Various results about `rnDeriv`, notably `rnDeriv_add`, `rnDeriv_smul_left` and `rnDeriv_smul_right`. These results describe the Radon-Nikodym derivatives of sums and scaling of measures. These lemmas were already there for signed measures, but not for `Measure`. The proofs for signed measures use that addition is cancelative (`μ + ν₁ = μ + ν₂ ↔ ν₁ = ν₂`). This is not true in general for measures, but is true when `μ` is mutually singular with the two other measures or when `μ` is sigma-finite, which is enough for these proofs. ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Decomposition/Lebesgue.lean + theorem MeasureTheory.Measure.MutuallySingular.rnDeriv_ae_eq_zero + theorem MeasureTheory.Measure.eq_rnDeriv₀ + theorem MeasureTheory.Measure.eq_withDensity_rnDeriv₀ + theorem MeasureTheory.Measure.integrable_toReal_rnDeriv + theorem MeasureTheory.Measure.rnDeriv_add' + theorem MeasureTheory.Measure.rnDeriv_add + theorem MeasureTheory.Measure.rnDeriv_eq_zero + theorem MeasureTheory.Measure.rnDeriv_ne_top + theorem MeasureTheory.Measure.rnDeriv_of_not_haveLebesgueDecomposition + theorem MeasureTheory.Measure.rnDeriv_smul_left' + theorem MeasureTheory.Measure.rnDeriv_smul_left + theorem MeasureTheory.Measure.rnDeriv_smul_left_of_ne_top' + theorem MeasureTheory.Measure.rnDeriv_smul_left_of_ne_top + theorem MeasureTheory.Measure.rnDeriv_smul_right' + theorem MeasureTheory.Measure.rnDeriv_smul_right + theorem MeasureTheory.Measure.rnDeriv_smul_right_of_ne_top' + theorem MeasureTheory.Measure.rnDeriv_smul_right_of_ne_top + theorem MeasureTheory.Measure.singularPart_of_not_haveLebesgueDecomposition + theorem MeasureTheory.Measure.withDensity_rnDeriv_eq_zero Modified Mathlib/MeasureTheory/Decomposition/RadonNikodym.lean +/- theorem MeasureTheory.Measure.absolutelyContinuous_iff_withDensity_rnDeriv_eq + theorem MeasureTheory.Measure.integral_toReal_rnDeriv + theorem MeasureTheory.Measure.inv_rnDeriv + theorem MeasureTheory.Measure.lintegral_rnDeriv + theorem MeasureTheory.Measure.rnDeriv_pos + theorem MeasureTheory.Measure.set_integral_toReal_rnDeriv + theorem MeasureTheory.Measure.set_lintegral_rnDeriv +/- theorem MeasureTheory.Measure.withDensity_rnDeriv_toReal_eq Modified Mathlib/MeasureTheory/Function/AEEqOfIntegral.lean Modified Mathlib/MeasureTheory/Measure/MutuallySingular.lean + theorem MeasureTheory.Measure.MutuallySingular.self_iff 2023-11-02 05:05:17 6f355e3 feat: patch for std4#196 (more min/max lemmas for `Nat`) (#8074) ESTIMATED CHANGES Modified Mathlib/Data/List/Basic.lean Modified Mathlib/Data/List/Func.lean Modified Mathlib/Data/Nat/Basic.lean - theorem Nat.max_succ_succ Modified Mathlib/Data/Nat/Order/Basic.lean - theorem Nat.zero_max Modified Mathlib/Data/Stream/Init.lean Modified Mathlib/Init/Data/List/Lemmas.lean Modified Mathlib/Init/Data/Nat/Lemmas.lean Modified Mathlib/Tactic/Backtrack.lean - def Lean.MVarId.firstContinuation - def Mathlib.Tactic.ppMVarIds Modified lake-manifest.json 2023-11-02 03:46:20 92e1606 chore: bump Std to Std#340 (#8104) ESTIMATED CHANGES Modified Archive/MiuLanguage/DecisionNec.lean Modified Mathlib/Algebra/Group/Commute/Units.lean Modified Mathlib/Algebra/Hom/Centroid.lean Modified Mathlib/Data/Finset/Basic.lean Modified Mathlib/Data/Finset/Sym.lean Modified Mathlib/Data/Set/Basic.lean Modified Mathlib/GroupTheory/Perm/Support.lean Modified Mathlib/Init/CCLemmas.lean Modified Mathlib/Init/Logic.lean - theorem and_self_iff - theorem or_self_iff Modified Mathlib/NumberTheory/PythagoreanTriples.lean Modified Mathlib/Order/Circular.lean Modified Mathlib/Order/RelClasses.lean Modified Mathlib/RingTheory/Int/Basic.lean Modified Mathlib/Topology/Bornology/Constructions.lean Modified lake-manifest.json 2023-11-02 03:46:19 8befe9d fix: add withMainContext to rw_search, and add a test case (#8101) Fixes a bug where `rw_search` could fail with the error: "unknown free variable". Also adds a missing `whnfR` to `localHypotheses`, which fixes bad behavior that could be seen in `rw?` and `rw_search`. ESTIMATED CHANGES Modified Mathlib/Tactic/RewriteSearch.lean Modified Mathlib/Tactic/Rewrites.lean Modified test/RewriteSearch/Basic.lean + def makeSingleton 2023-11-02 00:50:44 8666bd8 chore: bump Cli (#8103) Sorry, my previous PR updated the `lakefile.lean` but not the manifest, and so is giving everyone `lake update` warnings. :-( ESTIMATED CHANGES Modified lake-manifest.json 2023-11-01 20:56:03 3831ec3 feat: more API for cycles and opcycles of homological complexes (#8091) ESTIMATED CHANGES Modified Mathlib/Algebra/Homology/ShortComplex/HomologicalComplex.lean + theorem HomologicalComplex.comp_liftCycles + theorem HomologicalComplex.d_pOpcycles + theorem HomologicalComplex.d_toCycles + theorem HomologicalComplex.descOpcycles_comp + theorem HomologicalComplex.fromOpcycles_d + theorem HomologicalComplex.homologyι_comp_fromOpcycles + theorem HomologicalComplex.homologyι_descOpcycles_eq_zero_of_boundary + theorem HomologicalComplex.iCycles_d + theorem HomologicalComplex.liftCycles_homologyπ_eq_zero_of_boundary + theorem HomologicalComplex.liftCycles_i + theorem HomologicalComplex.p_descOpcycles + theorem HomologicalComplex.p_fromOpcycles + theorem HomologicalComplex.toCycles_comp_homologyπ + theorem HomologicalComplex.toCycles_i Modified Mathlib/Algebra/Homology/ShortComplex/Homology.lean + theorem CategoryTheory.ShortComplex.homologyι_descOpcycles_eq_zero_of_boundary - theorem CategoryTheory.ShortComplex.homologyι_descOpcycles_π_eq_zero_of_boundary 2023-11-01 19:45:41 cbe29e8 feat: enable `scoped[ns]` prefix for `notation3` (#8096) ESTIMATED CHANGES Modified Mathlib/Algebra/BigOperators/Finprod.lean Modified Mathlib/Algebra/DirectSum/Basic.lean Modified Mathlib/LinearAlgebra/PiTensorProduct.lean Modified Mathlib/Mathport/Notation.lean Modified test/notation3.lean 2023-11-01 17:24:21 aedc01b feat: Inf variants of `ciSup_mul` and related lemmas (#8078) ESTIMATED CHANGES Modified Mathlib/Algebra/Bounds.lean + theorem ciInf_div + theorem ciInf_mul + theorem mul_ciInf 2023-11-01 17:24:20 0e345e8 feat(Data/Polynomial/Module) : define an R[X] module, given a linear map. (#7728) Given an element `a` in an `R`-algebra `A` and an `A`-module `M`, define an `R[X]`-module `Module.AEval R M a`, whose elements correspond to elements of `M`, and where the action of `f : R[X]` is `f • m = aeval a f • m`. Equivalently, `X • m = a • m`. This module is abbreviated to `Module.AEval' φ` in the special case that `A` is the algebra of `R`-linear maps and `φ : M → M` is an `R`-linear map. This is needed in #7419. ESTIMATED CHANGES Modified Mathlib/Data/Polynomial/Module.lean + theorem Module.AEval'.X_smul_of + theorem Module.AEval'.of_symm_X_smul + theorem Module.AEval'_def + theorem Module.AEval.X_smul_of + def Module.AEval.of + theorem Module.AEval.of_aeval_smul + theorem Module.AEval.of_symm_X_smul + theorem Module.AEval.of_symm_smul + def Module.AEval + theorem PolynomialModule.smul_def Modified Mathlib/RingTheory/FiniteType.lean +/- theorem Module.Finite.injective_of_surjective_endomorphism - theorem modulePolynomialOfEndo.isScalarTower - def modulePolynomialOfEndo - theorem modulePolynomialOfEndo_smul_def 2023-11-01 17:24:18 4bda10c feat: Filtering `sups` (#7254) Match https://github.com/leanprover-community/mathlib/pull/18612. The lemmas were already added in #7382, though a slight difference in the statement means that we need a new `decidableExistsAndFinsetCoe` instance. ESTIMATED CHANGES Modified Mathlib/Data/Finset/Basic.lean Modified Mathlib/Data/Finset/Sups.lean Modified Mathlib/NumberTheory/LegendreSymbol/GaussEisensteinLemmas.lean 2023-11-01 16:07:04 e15cc5f chore(Data/ZMod/IntUnitsPower): rename lemmas (#8087) This reduces a diff in a future PR (#7866). ESTIMATED CHANGES Modified Mathlib/Data/ZMod/IntUnitsPower.lean + theorem mul_uzpow - theorem mul_z₂pow + theorem one_uzpow - theorem one_z₂pow + theorem uzpow_add + theorem uzpow_def + theorem uzpow_mul + theorem uzpow_natCast + theorem uzpow_neg + theorem uzpow_ofNat + theorem uzpow_one + theorem uzpow_sub + theorem uzpow_zero - theorem z₂pow_add - theorem z₂pow_def - theorem z₂pow_mul - theorem z₂pow_natCast - theorem z₂pow_neg - theorem z₂pow_ofNat - theorem z₂pow_one - theorem z₂pow_sub - theorem z₂pow_zero 2023-11-01 16:07:02 b5711ab chore: Golf `BoundedGENhdsClass (α × β)` instance (#8085) and the correspond pi instance. ESTIMATED CHANGES Modified Mathlib/Topology/Algebra/Order/LiminfLimsup.lean 2023-11-01 16:07:01 f48ec12 chore: move Cli dependency from nightly to main (which tracks stable releases) (#8010) ESTIMATED CHANGES Modified lake-manifest.json Modified lakefile.lean 2023-11-01 16:07:00 bc2e279 chore: demote `charZero_of_expChar_one'` instance to a theorem (#7777) The low-priority instance `charZero_of_expChar_one'` takes as an input a `Nontrivial R` and a `ExpChar R 1` instance, but there are no such `ExpChar` instances in Mathlib. It is tried before `StrictOrderedSemiring.to_charZero` when synthesizing `CharZero Nat`, and the former takes a long time to fail (~100ms) because Lean tries to construct `Nontrivial Nat` in all possible ways before giving up, for some reason. See [Zulip thread](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/Regression.20in.20simp) and [the synthInstance trace](https://gist.github.com/collares/8590a08c79eed16879a823233b03ba70) for context. ESTIMATED CHANGES Modified Mathlib/Algebra/CharP/ExpChar.lean + theorem charZero_of_expChar_one' 2023-11-01 16:06:59 9a7e2f0 fix(test/{ MLList + finset_repr + trace + vec_notation }): silence tests (#7269) More silencing of tests, mostly trading ```lean #eval (show MetaM Unit from) do ``` for ```lean run_cmd Lean.Elab.Command.liftTermElabM do ``` Added `import Mathlib.Tactic.RunCmd` to `test/MLList.lean`. Added `#guard_msgs` in `test/trace.lean` Affected files: ```bash test/MLList test/finset_repr test/trace test/vec_notation ``` ESTIMATED CHANGES Modified test/MLList.lean Modified test/finset_repr.lean Modified test/trace.lean Modified test/vec_notation.lean 2023-11-01 15:16:33 5a2b014 chore: forward-port leanprover-community/mathlib#19028 (#8083) This was "feat(topology/metric_space): diameter of pointwise zero and addition" ESTIMATED CHANGES Modified Mathlib/Analysis/Normed/Group/Pointwise.lean + theorem Bornology.IsBounded.of_mul + theorem ediam_mul_le Modified Mathlib/Topology/Bornology/Basic.lean + theorem Bornology.nonempty_of_not_isBounded Modified Mathlib/Topology/EMetricSpace/Basic.lean + theorem EMetric.diam_one Modified Mathlib/Topology/MetricSpace/Antilipschitz.lean + theorem AntilipschitzWith.isBounded_of_image2_left + theorem AntilipschitzWith.isBounded_of_image2_right Modified Mathlib/Topology/MetricSpace/Basic.lean Modified Mathlib/Topology/MetricSpace/Bounded.lean + theorem Metric.diam_one Modified Mathlib/Topology/MetricSpace/Lipschitz.lean + theorem LipschitzOnWith.ediam_image2_le + theorem LipschitzOnWith.isBounded_image2 2023-11-01 14:02:29 35e0a30 chore: remove extraneous Set. qualifiers (#8053) It's [proposed](https://github.com/leanprover-community/mathlib4/issues/7217) that a code formatter remove those automatically, so we might as well remove them as we see them. ESTIMATED CHANGES Modified Mathlib/Data/Set/Image.lean +/- theorem Set.Nonempty.preimage' Modified Mathlib/Geometry/Manifold/SmoothManifoldWithCorners.lean 2023-11-01 13:33:22 e896b09 feat: introducing the input data of the snake lemma (#8081) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Homology/ShortComplex/SnakeLemma.lean + theorem CategoryTheory.ShortComplex.SnakeInput.exact_C₁_down: + theorem CategoryTheory.ShortComplex.SnakeInput.exact_C₁_up + theorem CategoryTheory.ShortComplex.SnakeInput.exact_C₂_down + theorem CategoryTheory.ShortComplex.SnakeInput.exact_C₂_up + theorem CategoryTheory.ShortComplex.SnakeInput.exact_C₃_down + theorem CategoryTheory.ShortComplex.SnakeInput.exact_C₃_up + theorem CategoryTheory.ShortComplex.SnakeInput.w₀₂_τ₁ + theorem CategoryTheory.ShortComplex.SnakeInput.w₀₂_τ₂ + theorem CategoryTheory.ShortComplex.SnakeInput.w₀₂_τ₃ + theorem CategoryTheory.ShortComplex.SnakeInput.w₁₃_τ₁ + theorem CategoryTheory.ShortComplex.SnakeInput.w₁₃_τ₂ + theorem CategoryTheory.ShortComplex.SnakeInput.w₁₃_τ₃ + structure CategoryTheory.ShortComplex.SnakeInput 2023-11-01 13:33:21 b5013c2 feat: compute `Monoid.exponent` as the lcm over pi types and `Prod` (#8066) ESTIMATED CHANGES Modified Mathlib/GroupTheory/Exponent.lean + theorem Monoid.exponent_pi + theorem Monoid.exponent_pi_eq_zero + theorem Monoid.exponent_prod + theorem MonoidHom.exponent_dvd 2023-11-01 13:33:20 3ef1fe9 refactor: golf Normal.of_isSplittingField (#8004) Before: *Construction* only imports *Normal*, which transitively imports *IsSplittingField* Now: *Normal* imports *Construction*, *Construction* only imports *IsSplittingField* So no extra transitive import is added to any file other than *Construction* and *Normal*. As a consequence, `Polynomial.SplittingField.instNormal` is moved from *Construction* to *Normal*. `adjoin_rootSet_eq_range` is added to *IsSplittingField*. `splits_of_comp` in *Splits* is extracted from `splits_of_splits` in *IsSplittingField*. Source of proof: https://math.stackexchange.com/a/2585087/12932 Move `Algebra.adjoin.liftSingleton` from *IsAlgClosed/Basic* to *Adjoin/Field* in order to speed up `lift_of_splits` (renamed to add namespace `Polynomial`). ESTIMATED CHANGES Modified Mathlib/Data/Polynomial/Splits.lean + theorem Polynomial.splits_id_of_splits + theorem Polynomial.splits_of_comp Modified Mathlib/FieldTheory/Adjoin.lean + theorem IntermediateField.algHomAdjoinIntegralEquiv_symm_apply_gen Modified Mathlib/FieldTheory/IsAlgClosed/Basic.lean Modified Mathlib/FieldTheory/Normal.lean Modified Mathlib/FieldTheory/SplittingField/Construction.lean Modified Mathlib/FieldTheory/SplittingField/IsSplittingField.lean + theorem Polynomial.IsSplittingField.adjoin_rootSet_eq_range Modified Mathlib/RingTheory/Adjoin/Field.lean + theorem Polynomial.lift_of_splits - theorem lift_of_splits 2023-11-01 12:39:16 95dc804 feat(Topology/Category): `CompHaus`, `Profinite` and `Stonean` are `FinitaryExtensive`. (#8012) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Limits/Preserves/Finite.lean Modified Mathlib/Topology/Category/CompHaus/Limits.lean Modified Mathlib/Topology/Category/Profinite/Limits.lean Modified Mathlib/Topology/Category/Stonean/Limits.lean + def Stonean.createsPullbacksOfOpenEmbedding Modified Mathlib/Topology/Category/TopCat/Limits/Pullbacks.lean + def TopCat.pullbackHomeoPreimage 2023-11-01 12:39:15 36a2a82 feat: Eventual boundedness of neighborhoods (#8009) Forward port https://github.com/leanprover-community/mathlib/pull/18629 ESTIMATED CHANGES Modified Mathlib/Order/Filter/Pi.lean + theorem Filter.Eventually.eval_pi + theorem Filter.eventually_pi Modified Mathlib/Topology/Algebra/Order/LiminfLimsup.lean +/- theorem Filter.Tendsto.bddAbove_range +/- theorem Filter.Tendsto.bddAbove_range_of_cofinite +/- theorem Filter.Tendsto.bddBelow_range +/- theorem Filter.Tendsto.bddBelow_range_of_cofinite +/- theorem Filter.Tendsto.isBoundedUnder_ge +/- theorem Filter.Tendsto.isBoundedUnder_le +/- theorem Filter.Tendsto.isCoboundedUnder_ge +/- theorem Filter.Tendsto.isCoboundedUnder_le +/- theorem iUnion_Ici_eq_Ioi_of_lt_of_tendsto +/- theorem iUnion_Iic_eq_Iio_of_lt_of_tendsto 2023-11-01 11:37:18 479779e feat: The lexicographic sum of two locally finite orders is locally finite (#6340) Forward-ports https://github.com/leanprover-community/mathlib/pull/11352 ESTIMATED CHANGES Modified Mathlib/Data/Finset/Sum.lean + theorem Finset.disjSum_eq_empty Modified Mathlib/Data/Sum/Interval.lean + theorem Finset.inl_mem_sumLexLift + theorem Finset.inr_mem_sumLexLift + theorem Finset.mem_sumLexLift + def Finset.sumLexLift + theorem Finset.sumLexLift_eq_empty + theorem Finset.sumLexLift_inl_inl + theorem Finset.sumLexLift_inl_inr + theorem Finset.sumLexLift_inr_inl + theorem Finset.sumLexLift_inr_inr + theorem Finset.sumLexLift_mono + theorem Finset.sumLexLift_nonempty + theorem Sum.Lex.Icc_inl_inl + theorem Sum.Lex.Icc_inl_inr + theorem Sum.Lex.Icc_inr_inl + theorem Sum.Lex.Icc_inr_inr + theorem Sum.Lex.Ico_inl_inl + theorem Sum.Lex.Ico_inl_inr + theorem Sum.Lex.Ico_inr_inl + theorem Sum.Lex.Ico_inr_inr + theorem Sum.Lex.Ioc_inl_inl + theorem Sum.Lex.Ioc_inl_inr + theorem Sum.Lex.Ioc_inr_inl + theorem Sum.Lex.Ioc_inr_inr + theorem Sum.Lex.Ioo_inl_inl + theorem Sum.Lex.Ioo_inl_inr + theorem Sum.Lex.Ioo_inr_inl + theorem Sum.Lex.Ioo_inr_inr 2023-11-01 10:38:21 00cb945 feat(LinearAlgebra/Basis): commuting with basis elements places an element in the center (#7833) ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/Basis.lean + theorem Basis.mem_center_iff 2023-11-01 10:38:20 51dd9ef refactor(GroupTheory/GroupAction/Basic): re-organise, rename, and make some variables implicit (#7786) - Re-organise the namespace and section structure of GroupTheory/GroupAction/Basic.lean. - Remove the namespaces `MulAction.Stabilizer` and `AddAction.Stabilizer`, renaming `MulAction.Stabilizer.submonoid` to `MulAction.stabilizerSubmonoid`. - Make variables for the monoid/group/set implicit when an element or subset is used in the statement. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Action.lean +/- def CategoryTheory.ActionCategory.stabilizerIsoEnd +/- theorem CategoryTheory.ActionCategory.stabilizerIsoEnd_apply Modified Mathlib/FieldTheory/Fixed.lean Modified Mathlib/GroupTheory/GroupAction/Basic.lean - def MulAction.Stabilizer.submonoid +/- theorem MulAction.fixed_eq_iInter_fixedBy +/- theorem MulAction.mem_fixedBy +/- theorem MulAction.mem_orbit + theorem MulAction.mem_stabilizerSubmonoid_iff +/- theorem MulAction.mem_stabilizer_iff - theorem MulAction.mem_stabilizer_submonoid_iff + def MulAction.stabilizerSubmonoid Modified Mathlib/GroupTheory/GroupAction/Quotient.lean +/- theorem MulAction.sum_card_fixedBy_eq_card_orbits_mul_card_group Modified Mathlib/GroupTheory/GroupAction/SubMulAction.lean Modified Mathlib/GroupTheory/PGroup.lean Modified Mathlib/GroupTheory/Sylow.lean 2023-11-01 10:38:19 7c1c7ff feat: Nobeling's theorem (#6286) Nobeling's theorem: the Z-module of locally constant maps from a profinite set to the integers is free. - [x] depends on: #6360 - [x] depends on: #6373 - [x] depends on: #6395 - [x] depends on: #6396 - [x] depends on: #6432 - [x] depends on: #6520 - [x] depends on: #6578 - [x] depends on: #6589 - [x] depends on: #6722 - [x] depends on: #7829 - [x] depends on: #7895 - [x] depends on: #7896 - [x] depends on: #7897 - [x] depends on: #7899 ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Topology/Category/Profinite/Nobeling.lean + theorem Profinite.Nobeling.embedding + def Profinite.Nobeling.ι + def Profinite.NobelingProof.C' + def Profinite.NobelingProof.C0 + theorem Profinite.NobelingProof.C0_projOrd + def Profinite.NobelingProof.C1 + theorem Profinite.NobelingProof.C1_projOrd + def Profinite.NobelingProof.CC'₀ + def Profinite.NobelingProof.CC'₁ + theorem Profinite.NobelingProof.CC_comp_zero + theorem Profinite.NobelingProof.CC_exact + def Profinite.NobelingProof.GoodProducts.Basis + def Profinite.NobelingProof.GoodProducts.MaxProducts + def Profinite.NobelingProof.GoodProducts.MaxToGood + theorem Profinite.NobelingProof.GoodProducts.P0 + theorem Profinite.NobelingProof.GoodProducts.Plimit + def Profinite.NobelingProof.GoodProducts.SumEval + theorem Profinite.NobelingProof.GoodProducts.chain'_cons_of_lt + def Profinite.NobelingProof.GoodProducts.equiv_range + theorem Profinite.NobelingProof.GoodProducts.equiv_toFun_eq_eval + def Profinite.NobelingProof.GoodProducts.eval + theorem Profinite.NobelingProof.GoodProducts.finsupp_sum_mem_span_eval + theorem Profinite.NobelingProof.GoodProducts.good_lt_maxProducts + theorem Profinite.NobelingProof.GoodProducts.head!_eq_o_of_maxProducts + theorem Profinite.NobelingProof.GoodProducts.injective + theorem Profinite.NobelingProof.GoodProducts.injective_sum_to + theorem Profinite.NobelingProof.GoodProducts.linearIndependent + theorem Profinite.NobelingProof.GoodProducts.linearIndependentAux + theorem Profinite.NobelingProof.GoodProducts.linearIndependentEmpty + theorem Profinite.NobelingProof.GoodProducts.linearIndependentSingleton + theorem Profinite.NobelingProof.GoodProducts.linearIndependent_comp_of_eval + theorem Profinite.NobelingProof.GoodProducts.linearIndependent_iff_range + theorem Profinite.NobelingProof.GoodProducts.linearIndependent_iff_smaller + theorem Profinite.NobelingProof.GoodProducts.linearIndependent_iff_sum + theorem Profinite.NobelingProof.GoodProducts.linearIndependent_iff_union_smaller + theorem Profinite.NobelingProof.GoodProducts.maxTail_isGood + theorem Profinite.NobelingProof.GoodProducts.maxToGood_injective + theorem Profinite.NobelingProof.GoodProducts.max_eq_eval + theorem Profinite.NobelingProof.GoodProducts.max_eq_eval_unapply + theorem Profinite.NobelingProof.GoodProducts.max_eq_o_cons_tail + def Profinite.NobelingProof.GoodProducts.range + def Profinite.NobelingProof.GoodProducts.range_equiv + theorem Profinite.NobelingProof.GoodProducts.range_equiv_factorization + def Profinite.NobelingProof.GoodProducts.range_equiv_smaller + def Profinite.NobelingProof.GoodProducts.range_equiv_smaller_toFun + theorem Profinite.NobelingProof.GoodProducts.range_equiv_smaller_toFun_bijective + def Profinite.NobelingProof.GoodProducts.smaller + theorem Profinite.NobelingProof.GoodProducts.smaller_factorization + theorem Profinite.NobelingProof.GoodProducts.smaller_mono + theorem Profinite.NobelingProof.GoodProducts.span + theorem Profinite.NobelingProof.GoodProducts.spanFin + theorem Profinite.NobelingProof.GoodProducts.span_iff_products + theorem Profinite.NobelingProof.GoodProducts.span_sum + theorem Profinite.NobelingProof.GoodProducts.square_commutes + def Profinite.NobelingProof.GoodProducts.sum_equiv + theorem Profinite.NobelingProof.GoodProducts.sum_equiv_comp_eval_eq_elim + def Profinite.NobelingProof.GoodProducts.sum_to + theorem Profinite.NobelingProof.GoodProducts.sum_to_range + theorem Profinite.NobelingProof.GoodProducts.union + theorem Profinite.NobelingProof.GoodProducts.union_succ + def Profinite.NobelingProof.GoodProducts + def Profinite.NobelingProof.Linear_CC' + def Profinite.NobelingProof.Linear_CC'₀ + def Profinite.NobelingProof.Linear_CC'₁ + theorem Profinite.NobelingProof.Nobeling_aux + def Profinite.NobelingProof.P + def Profinite.NobelingProof.Products.Tail + def Profinite.NobelingProof.Products.eval + theorem Profinite.NobelingProof.Products.evalCons + theorem Profinite.NobelingProof.Products.evalFacProp + theorem Profinite.NobelingProof.Products.evalFacProps + theorem Profinite.NobelingProof.Products.eval_eq + theorem Profinite.NobelingProof.Products.eval_mem_span_goodProducts + theorem Profinite.NobelingProof.Products.eval_πs' + theorem Profinite.NobelingProof.Products.eval_πs + theorem Profinite.NobelingProof.Products.eval_πs_image' + theorem Profinite.NobelingProof.Products.eval_πs_image + theorem Profinite.NobelingProof.Products.head!_le_of_lt + theorem Profinite.NobelingProof.Products.head_lt_ord_of_isGood + def Profinite.NobelingProof.Products.isGood + theorem Profinite.NobelingProof.Products.isGood_mono + theorem Profinite.NobelingProof.Products.isGood_nil + theorem Profinite.NobelingProof.Products.limitOrdinal + theorem Profinite.NobelingProof.Products.lt_iff_lex_lt + theorem Profinite.NobelingProof.Products.lt_nil_empty + theorem Profinite.NobelingProof.Products.lt_ord_of_lt + theorem Profinite.NobelingProof.Products.max_eq_eval + theorem Profinite.NobelingProof.Products.max_eq_o_cons_tail' + theorem Profinite.NobelingProof.Products.max_eq_o_cons_tail + def Profinite.NobelingProof.Products.nil + theorem Profinite.NobelingProof.Products.prop_of_isGood + theorem Profinite.NobelingProof.Products.prop_of_isGood_of_contained + theorem Profinite.NobelingProof.Products.rel_head!_of_mem + theorem Profinite.NobelingProof.Products.span_nil_eq_top + def Profinite.NobelingProof.Products + def Profinite.NobelingProof.Proj + def Profinite.NobelingProof.ProjRestrict + def Profinite.NobelingProof.ProjRestricts + def Profinite.NobelingProof.SwapTrue + theorem Profinite.NobelingProof.coe_πs' + theorem Profinite.NobelingProof.coe_πs + def Profinite.NobelingProof.contained + theorem Profinite.NobelingProof.contained_C' + theorem Profinite.NobelingProof.contained_C1 + theorem Profinite.NobelingProof.contained_eq_proj + theorem Profinite.NobelingProof.contained_proj + theorem Profinite.NobelingProof.continuous_CC'₀ + theorem Profinite.NobelingProof.continuous_CC'₁ + theorem Profinite.NobelingProof.continuous_proj + theorem Profinite.NobelingProof.continuous_projRestrict + theorem Profinite.NobelingProof.continuous_projRestricts + theorem Profinite.NobelingProof.continuous_swapTrue + def Profinite.NobelingProof.e + theorem Profinite.NobelingProof.e_mem_of_eq_true + theorem Profinite.NobelingProof.eval_eq_πJ + def Profinite.NobelingProof.factors + theorem Profinite.NobelingProof.factors_prod_eq_basis + theorem Profinite.NobelingProof.factors_prod_eq_basis_of_eq + theorem Profinite.NobelingProof.factors_prod_eq_basis_of_ne + theorem Profinite.NobelingProof.fin_comap_jointlySurjective + theorem Profinite.NobelingProof.injective_πs' + theorem Profinite.NobelingProof.injective_πs + theorem Profinite.NobelingProof.isClosed_C' + theorem Profinite.NobelingProof.isClosed_C0 + theorem Profinite.NobelingProof.isClosed_C1 + theorem Profinite.NobelingProof.isClosed_proj + def Profinite.NobelingProof.iso_map + theorem Profinite.NobelingProof.iso_map_bijective + theorem Profinite.NobelingProof.list_prod_apply + theorem Profinite.NobelingProof.mem_C'_eq_false + theorem Profinite.NobelingProof.one_sub_e_mem_of_false + def Profinite.NobelingProof.ord + theorem Profinite.NobelingProof.ord_term + theorem Profinite.NobelingProof.ord_term_aux + theorem Profinite.NobelingProof.projRestricts_comp_projRestrict + theorem Profinite.NobelingProof.projRestricts_eq_comp + theorem Profinite.NobelingProof.projRestricts_eq_id + theorem Profinite.NobelingProof.proj_comp_of_subset + theorem Profinite.NobelingProof.proj_eq_of_subset + theorem Profinite.NobelingProof.proj_eq_self + theorem Profinite.NobelingProof.proj_prop_eq_self + def Profinite.NobelingProof.spanCone + def Profinite.NobelingProof.spanCone_isLimit + theorem Profinite.NobelingProof.spanFinBasis.span + def Profinite.NobelingProof.spanFinBasis + def Profinite.NobelingProof.spanFunctor + theorem Profinite.NobelingProof.succ_exact + theorem Profinite.NobelingProof.succ_mono + theorem Profinite.NobelingProof.surjective_projRestricts + theorem Profinite.NobelingProof.swapTrue_eq_true + theorem Profinite.NobelingProof.swapTrue_mem_C1 + def Profinite.NobelingProof.term + theorem Profinite.NobelingProof.term_ord_aux + theorem Profinite.NobelingProof.union_C0C1_eq + def Profinite.NobelingProof.π + def Profinite.NobelingProof.πJ + def Profinite.NobelingProof.πs' + def Profinite.NobelingProof.πs 2023-11-01 09:55:48 e3bc933 chore(CategoryTheory/Limits/Shapes/Terminal): remove some unnecessary `HasLimit` and `HasColimit` hypotheses (#8068) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Limits/Shapes/Terminal.lean +/- def CategoryTheory.Limits.colimitOfInitial +/- def CategoryTheory.Limits.colimitOfTerminal +/- def CategoryTheory.Limits.limitOfInitial +/- def CategoryTheory.Limits.limitOfTerminal 2023-11-01 09:55:46 fa84cf7 feat: short exact short complexes (#8058) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Homology/ShortComplex/ShortExact.lean + theorem CategoryTheory.ShortComplex.ShortExact.isIso_f_iff + theorem CategoryTheory.ShortComplex.ShortExact.isIso_g_iff + theorem CategoryTheory.ShortComplex.ShortExact.map + theorem CategoryTheory.ShortComplex.ShortExact.map_of_exact + theorem CategoryTheory.ShortComplex.ShortExact.mk' + theorem CategoryTheory.ShortComplex.ShortExact.op + theorem CategoryTheory.ShortComplex.ShortExact.unop + structure CategoryTheory.ShortComplex.ShortExact + theorem CategoryTheory.ShortComplex.Splitting.shortExact + theorem CategoryTheory.ShortComplex.isIso₂_of_shortExact_of_isIso₁₃' + theorem CategoryTheory.ShortComplex.isIso₂_of_shortExact_of_isIso₁₃ + theorem CategoryTheory.ShortComplex.shortExact_iff_of_iso + theorem CategoryTheory.ShortComplex.shortExact_iff_op + theorem CategoryTheory.ShortComplex.shortExact_iff_unop + theorem CategoryTheory.ShortComplex.shortExact_of_iso 2023-11-01 08:43:57 d3e3459 feat: restriction to `{a}ᶜ` is equal to the original measure (#8073) Also reuse variables from `variable` here and there. ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Measure/MeasureSpace.lean +/- theorem Finset.measure_zero + theorem MeasureTheory.restrict_compl_singleton +/- theorem Set.Countable.ae_not_mem + theorem Set.Countable.measure_restrict_compl +/- theorem Set.Countable.measure_zero +/- theorem Set.Finite.measure_zero +/- theorem Set.Subsingleton.measure_zero 2023-11-01 08:43:56 c2d0272 chore: clear some porting notes on rfl (#8063) We remove some porting notes for `rfl`s that by now work again. ESTIMATED CHANGES Modified Mathlib/Algebra/DirectLimit.lean Modified Mathlib/Algebra/Lie/Submodule.lean Modified Mathlib/Algebra/Order/Ring/Defs.lean Modified Mathlib/Combinatorics/SimpleGraph/IncMatrix.lean Modified Mathlib/Data/Finsupp/AList.lean Modified Mathlib/Logic/Hydra.lean Modified Mathlib/RingTheory/WittVector/Isocrystal.lean 2023-11-01 07:43:32 d188948 feat: more API for homotopies of short complexes (#8069) ESTIMATED CHANGES Modified Mathlib/Algebra/Homology/ShortComplex/Preadditive.lean + def CategoryTheory.ShortComplex.Homotopy.add + def CategoryTheory.ShortComplex.Homotopy.comp + def CategoryTheory.ShortComplex.Homotopy.compLeft + def CategoryTheory.ShortComplex.Homotopy.compRight + theorem CategoryTheory.ShortComplex.Homotopy.eq_add_nullHomotopic + def CategoryTheory.ShortComplex.Homotopy.equivSubZero + def CategoryTheory.ShortComplex.Homotopy.neg + def CategoryTheory.ShortComplex.Homotopy.ofEq + def CategoryTheory.ShortComplex.Homotopy.ofNullHomotopic + def CategoryTheory.ShortComplex.Homotopy.op + def CategoryTheory.ShortComplex.Homotopy.refl + def CategoryTheory.ShortComplex.Homotopy.sub + def CategoryTheory.ShortComplex.Homotopy.symm + def CategoryTheory.ShortComplex.Homotopy.trans + def CategoryTheory.ShortComplex.Homotopy.unop + def CategoryTheory.ShortComplex.nullHomotopic 2023-11-01 07:43:31 12b7b97 feat(CategoryTheory/Localization): equivalence relation on left fractions (#8055) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Localization/CalculusOfFractions.lean + def CategoryTheory.MorphismProperty.LeftFraction.Localization.Hom.mk + theorem CategoryTheory.MorphismProperty.LeftFraction.Localization.Hom.mk_surjective + def CategoryTheory.MorphismProperty.LeftFraction.Localization.Hom + theorem CategoryTheory.MorphismProperty.LeftFraction.comp_eq + def CategoryTheory.MorphismProperty.LeftFraction.comp₀ + theorem CategoryTheory.MorphismProperty.LeftFraction.comp₀_rel + theorem CategoryTheory.MorphismProperty.LeftFraction.exists_rightFraction + theorem CategoryTheory.MorphismProperty.LeftFraction.rightFraction_fac + theorem CategoryTheory.MorphismProperty.LeftFractionRel.refl + theorem CategoryTheory.MorphismProperty.LeftFractionRel.symm + theorem CategoryTheory.MorphismProperty.LeftFractionRel.trans + def CategoryTheory.MorphismProperty.LeftFractionRel + theorem CategoryTheory.MorphismProperty.RightFraction.exists_leftFraction + theorem CategoryTheory.MorphismProperty.RightFraction.leftFraction_fac + theorem CategoryTheory.MorphismProperty.equivalenceLeftFractionRel 2023-11-01 07:43:30 feebec3 feat: multiplication by `closure {1}` in topological groups does not change closed and open subsets (#7858) ESTIMATED CHANGES Modified Mathlib/Data/Set/Pointwise/SMul.lean Modified Mathlib/Topology/Algebra/Group/Basic.lean + theorem HasCompactSupport.eq_zero_or_locallyCompactSpace_of_group + theorem IsClosed.mul_closure_one_eq + theorem IsCompact.locallyCompactSpace_of_mem_nhds_of_group + theorem IsCompact.mul_closure_one_eq_closure +/- theorem IsOpen.closure_div +/- theorem IsOpen.closure_mul +/- theorem IsOpen.div_closure +/- theorem IsOpen.mul_closure + theorem IsOpen.mul_closure_one_eq +/- theorem QuotientGroup.isClosedMap_coe + theorem Subgroup.coe_topologicalClosure_bot + theorem compl_mul_closure_one_eq + theorem compl_mul_closure_one_eq_iff + theorem eq_zero_or_locallyCompactSpace_of_support_subset_isCompact_of_group + theorem subset_mul_closure_one Modified Mathlib/Topology/Algebra/MulAction.lean + theorem IsCompact.smul_set + theorem smul_set_closure_subset 2023-11-01 06:34:20 350a374 feat(CategoryTheory): the category of composable arrows (#7999) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/ComposableArrows.lean + def CategoryTheory.ComposableArrows.Mk₁.map + theorem CategoryTheory.ComposableArrows.Mk₁.map_comp + theorem CategoryTheory.ComposableArrows.Mk₁.map_id + def CategoryTheory.ComposableArrows.Mk₁.obj + theorem CategoryTheory.ComposableArrows.map'_comp + theorem CategoryTheory.ComposableArrows.map'_self + def CategoryTheory.ComposableArrows.mk₀ + def CategoryTheory.ComposableArrows.mk₁ + theorem CategoryTheory.nerve_obj_eq_composableArrows Modified Mathlib/Data/Fin/Basic.lean + theorem Fin.eq_one_of_neq_zero 2023-11-01 05:48:09 8f16322 fix: make CI-task "check for noisy stdout lines" more verbose. (#7868) linter warnings print the following messages to stdout: ``` stdout: ./././MyProject/MyFile.lean:19:53: warning: unused variable `x` [linter.unusedVariables] ./././MyProject/MyFile.lean:19:53: warning: unused variable `y` [linter.unusedVariables] ``` With this change, the CI would at least print the first line after `stdout:`, partially helping with debugging. ESTIMATED CHANGES Modified .github/workflows/bors.yml Modified .github/workflows/build.yml Modified .github/workflows/build.yml.in Modified .github/workflows/build_fork.yml 2023-11-01 05:25:24 62ca97d chore(scripts/lean-pr-testing-comments.sh): better link target (#7357) previously, it would link to , which contains lots and lots of commits unrelated to the Lean PR. It seems cleaner to use , ESTIMATED CHANGES Modified scripts/lean-pr-testing-comments.sh 2023-11-01 02:56:25 845846d feat: the `rw_search` tactic (#6120) Example usage: ``` example (xs ys : List α) : (xs ++ ys ++ ys).length = 2 * ys.length + xs.length := by rw_search -- Try this: rw [@List.length_append, @List.length_append, @add_rotate, Nat.two_mul] ``` ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Data/List/EditDistance/Defs.lean + def Levenshtein.stringLengthCost + def Levenshtein.stringLogLengthCost + def Levenshtein.weightCost Modified Mathlib/Data/MLList/BestFirst.lean + def BestFirstNode.estimate + structure BestFirstNode + def BestFirstQueue.insertAndEject + def BestFirstQueue.pop + def BestFirstQueue.popWithPriority + def BestFirstQueue.toMLList + def BestFirstQueue - def bestFirstSearchAux + def bestFirstSearchCore + def impl + def implMaxDepth Modified Mathlib/Lean/Thunk.lean + def Thunk.add + theorem Thunk.add_get Modified Mathlib/Order/Estimator.lean +/- structure Estimator.fst +/- def Estimator.fstInst +/- def Estimator.improveUntil +/- def Estimator.improveUntilAux Modified Mathlib/Tactic.lean Added Mathlib/Tactic/RewriteSearch.lean + def Mathlib.Tactic.RewriteSearch.SearchNode.compute_dist? + def Mathlib.Tactic.RewriteSearch.SearchNode.compute_rfl? + def Mathlib.Tactic.RewriteSearch.SearchNode.editCost + def Mathlib.Tactic.RewriteSearch.SearchNode.init + def Mathlib.Tactic.RewriteSearch.SearchNode.lastIdx + def Mathlib.Tactic.RewriteSearch.SearchNode.mk + def Mathlib.Tactic.RewriteSearch.SearchNode.penalty + def Mathlib.Tactic.RewriteSearch.SearchNode.push + def Mathlib.Tactic.RewriteSearch.SearchNode.rewrite + def Mathlib.Tactic.RewriteSearch.SearchNode.rewrites + def Mathlib.Tactic.RewriteSearch.SearchNode.search + def Mathlib.Tactic.RewriteSearch.SearchNode.toString + structure Mathlib.Tactic.RewriteSearch.SearchNode + def Mathlib.Tactic.RewriteSearch.tokenize Modified Mathlib/Tactic/Rewrites.lean Added test/RewriteSearch/Basic.lean Added test/RewriteSearch/Polynomial.lean Modified test/rewrites.lean Modified test/search/BestFirst.lean + def Point + def emb + theorem emb_injective +/- def nbhd +/- def wall 2023-11-01 01:49:26 e4ce444 feat: port Rat.cast positivity extension (#8042) See the mathlib3 version here: https://github.com/leanprover-community/mathlib/blob/3365b20c2ffa7c35e47e5209b89ba9abdddf3ffe/src/tactic/positivity.lean#L737-L741 ESTIMATED CHANGES Modified Mathlib/Tactic/Positivity/Basic.lean + def Mathlib.Meta.Positivity.evalRatCast Modified test/positivity.lean 2023-11-01 00:15:40 056e725 feat: add `DecidableEq` instances for `Multiplicative` and `Additive` (#8072) ESTIMATED CHANGES Modified Mathlib/Algebra/Group/TypeTags.lean 2023-11-01 00:15:39 f294621 doc: put a period at the end of a sentence (#8064) This matches the surrounding definitions. ESTIMATED CHANGES Modified Mathlib/Order/Bounds/Basic.lean 2023-11-01 00:15:38 370c9af chore(Data/Set/Image): re-use some variables (#8054) This also generalizes a universe from `Type` to `Sort` in `Set.range_eval` ESTIMATED CHANGES Modified Mathlib/Data/Set/Image.lean +/- theorem Set.preimage_subtype_coe_eq_compl +/- theorem Set.range_eval +/- theorem Set.subsingleton_of_image +/- theorem Set.subsingleton_of_preimage 2023-11-01 00:15:37 ad46b68 chore: automate nightly-testing-YYYY-MM-DD branches (#7940) These branches will track `nightly-testing` while it is using the `nightly-YYYY-MM-DD` toolchain. This enables better combined CI: it gives the option of testing a Lean 4 PR not against `nightly-testing`, but against the previous `nightly-testing-YYYY-MM-DD` branch, avoiding our frequent problems with `nightly-testing` moving on too fast. Note that this approach will only update the `nightly-testing-YYYY-MM-DD` branch after successful CI on the `nightly-testing` branch. It isn't a complete solution by itself, but these tracking branches at least give us more options. ESTIMATED CHANGES Modified .github/workflows/nightly_detect_failure.yml 2023-10-31 23:08:19 5561bd3 chore: refactor `prod_take_succ` to `List.get` (#8043) Needed to finish what was started in #8039 ESTIMATED CHANGES Modified Mathlib/Analysis/Analytic/Composition.lean Modified Mathlib/Combinatorics/Composition.lean Modified Mathlib/Data/List/BigOperators/Basic.lean Modified Mathlib/Data/List/Join.lean 2023-10-31 22:32:02 901dede perf (Functor.Flat): restructure proof to reduce simp time (#8065) This file recently jumped almost 200% in #8051. Changing a `simpa using X` call into a `convert X <;> simp` cuts the clock time for the file in half. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Functor/Flat.lean 2023-10-31 19:34:07 41442e1 fix: Exists delaborator merging (#8070) The binder merging feature of the delaborator was matching too much and creating ill-formed terms like `∃ (_ : True) x, True`. ESTIMATED CHANGES Modified Mathlib/Util/Delaborators.lean Modified test/delaborators.lean 2023-10-31 18:07:01 4303049 feat: let `push_neg` replace `not (Set.Nonempty s)` with `s = emptyset` (#8000) ESTIMATED CHANGES Modified Counterexamples/Phillips.lean Modified Mathlib/AlgebraicGeometry/PrimeSpectrum/Basic.lean Modified Mathlib/Analysis/Convex/StoneSeparation.lean Modified Mathlib/Analysis/LocallyConvex/BalancedCoreHull.lean Modified Mathlib/Data/Set/Basic.lean Modified Mathlib/Init/Set.lean Modified Mathlib/MeasureTheory/Covering/Vitali.lean Modified Mathlib/MeasureTheory/Measure/MeasureSpace.lean Modified Mathlib/Order/ConditionallyCompleteLattice/Basic.lean Modified Mathlib/Tactic/PushNeg.lean + theorem Mathlib.Tactic.PushNeg.empty_ne_eq_nonempty + theorem Mathlib.Tactic.PushNeg.ne_empty_eq_nonempty + theorem Mathlib.Tactic.PushNeg.not_nonempty_eq Modified Mathlib/Topology/Algebra/Order/LiminfLimsup.lean Modified Mathlib/Topology/Compactness/Compact.lean Modified Mathlib/Topology/Connected/Basic.lean Modified Mathlib/Topology/ExtremallyDisconnected.lean Modified test/push_neg.lean 2023-10-31 17:03:10 7957773 feat: new class `ClosableCompactSubsetOpenSpace` of topological spaces (#7860) Useful to uniformize proofs for T2 spaces and regular spaces, notably to discuss regular measures in topological groups. ESTIMATED CHANGES Modified Mathlib/Algebra/Support.lean + theorem Function.range_eq_image_or_of_mulSupport_subset Modified Mathlib/Topology/Compactness/LocallyCompact.lean Modified Mathlib/Topology/Constructions.lean + theorem mem_nhdsWithin_prod_iff Modified Mathlib/Topology/Separation.lean + theorem IsCompact.closure_subset_of_isOpen + theorem exists_compact_closed_between Modified Mathlib/Topology/Support.lean + theorem HasCompactMulSupport.intro' + theorem isCompact_range_of_mulSupport_subset_isCompact Modified Mathlib/Topology/UniformSpace/Compact.lean + theorem IsCompact.mem_uniformity_of_prod 2023-10-31 15:03:20 95e9bc1 feat(Probability/Density): Random variables are independent iff joint density is product (#8026) This PR proves that two random variables are independent, iff their joint distribution is the product measure of marginal distributions, iff their joint density is a product of their marginal densities up to AE equality. It also uses lemmas stating that `μ.withDensity` is injective up to AE equality. ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Function/AEEqOfIntegral.lean + theorem MeasureTheory.withDensity_eq_iff + theorem MeasureTheory.withDensity_eq_iff_of_sigmaFinite Modified Mathlib/Probability/Density.lean + theorem MeasureTheory.pdf.indepFun_iff_pdf_prod_eq_pdf_mul_pdf + theorem MeasureTheory.pdf.unique' + theorem MeasureTheory.pdf.unique Modified Mathlib/Probability/Independence/Basic.lean + theorem ProbabilityTheory.indepFun_iff_map_prod_eq_prod_map_map 2023-10-31 14:39:57 0c484a5 feat: pushouts of monoids (#8061) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/GroupTheory/PushoutI.lean + def Monoid.PushoutI.base + def Monoid.PushoutI.con + def Monoid.PushoutI.homEquiv + theorem Monoid.PushoutI.hom_ext + theorem Monoid.PushoutI.hom_ext_nonempty + theorem Monoid.PushoutI.induction_on + def Monoid.PushoutI.lift + theorem Monoid.PushoutI.lift_base + theorem Monoid.PushoutI.lift_of + def Monoid.PushoutI.of + def Monoid.PushoutI.ofCoprodI + theorem Monoid.PushoutI.ofCoprodI_of + theorem Monoid.PushoutI.of_apply_eq_base + theorem Monoid.PushoutI.of_comp_eq_base + def Monoid.PushoutI 2023-10-31 13:19:56 c13d8d6 feat(Data/Complex): add lemmas like `re_eq_abs` (#8025) ESTIMATED CHANGES Modified Mathlib/Data/Complex/Basic.lean + theorem Complex.abs_im_eq_abs + theorem Complex.abs_re_eq_abs Modified Mathlib/Data/Complex/Order.lean - theorem Complex.eq_re_ofReal_le + theorem Complex.eq_re_of_ofReal_le + theorem Complex.neg_re_eq_abs + theorem Complex.re_eq_abs + theorem Complex.re_eq_neg_abs 2023-10-31 11:24:46 2bff6b4 fix(Topology/CompletelyRegular): Typo (#8059) Fix a small typo in the copyright notice. ESTIMATED CHANGES Modified Mathlib/Topology/CompletelyRegular.lean 2023-10-31 11:24:45 d09f697 chore(CategoryTheory/Limits/Fubini): Fubini theorem for colimits (#8046) Dualize all statements in `CategoryTheory/Limits/Fubini.lean`. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Limits/Fubini.lean + def CategoryTheory.Limits.DiagramOfCocones.coconePoints + theorem CategoryTheory.Limits.DiagramOfCocones.mkOfHasColimits_coconePoints + structure CategoryTheory.Limits.DiagramOfCocones + def CategoryTheory.Limits.coconeOfCoconeUncurry + def CategoryTheory.Limits.coconeOfCoconeUncurryIsColimit + theorem CategoryTheory.Limits.colimitCurrySwapCompColimIsoColimitCurryCompColim_ι_ι_hom + theorem CategoryTheory.Limits.colimitCurrySwapCompColimIsoColimitCurryCompColim_ι_ι_inv + theorem CategoryTheory.Limits.colimitFlipCompColimIsoColimitCompColim_ι_ι_hom + theorem CategoryTheory.Limits.colimitFlipCompColimIsoColimitCompColim_ι_ι_inv + theorem CategoryTheory.Limits.colimitIsoColimitCurryCompColim_ι_hom + theorem CategoryTheory.Limits.colimitIsoColimitCurryCompColim_ι_ι_inv + theorem CategoryTheory.Limits.colimitUncurryIsoColimitCompColim_ι_hom + theorem CategoryTheory.Limits.colimitUncurryIsoColimitCompColim_ι_ι_inv 2023-10-31 11:24:44 2d242e7 feat: Independence of singletons (#7251) Port a bit of https://github.com/leanprover-community/mathlib/pull/18506, but it's mostly handmade. ESTIMATED CHANGES Modified Mathlib/Probability/Independence/Basic.lean + theorem ProbabilityTheory.IndepFun.meas_inter + theorem ProbabilityTheory.iIndep.iIndepSets' + theorem ProbabilityTheory.iIndep.meas_biInter + theorem ProbabilityTheory.iIndep.meas_iInter + theorem ProbabilityTheory.iIndepFun.meas_biInter + theorem ProbabilityTheory.iIndepFun.meas_iInter + theorem ProbabilityTheory.iIndepSet_iff_iIndepSets_singleton + theorem ProbabilityTheory.iIndepSet_iff_meas_biInter + theorem ProbabilityTheory.iIndepSets.iIndepSet_of_mem + theorem ProbabilityTheory.iIndepSets.meas_biInter + theorem ProbabilityTheory.iIndepSets.meas_iInter + theorem ProbabilityTheory.iIndepSets_singleton_iff + theorem ProbabilityTheory.iIndep_comap_mem_iff Modified Mathlib/Probability/Independence/Kernel.lean + theorem ProbabilityTheory.kernel.IndepFun.meas_inter + theorem ProbabilityTheory.kernel.iIndep.iIndepSets' + theorem ProbabilityTheory.kernel.iIndep.meas_biInter + theorem ProbabilityTheory.kernel.iIndep.meas_iInter + theorem ProbabilityTheory.kernel.iIndepFun.meas_biInter + theorem ProbabilityTheory.kernel.iIndepFun.meas_iInter + theorem ProbabilityTheory.kernel.iIndepSet_iff_iIndepSets_singleton + theorem ProbabilityTheory.kernel.iIndepSet_iff_meas_biInter + theorem ProbabilityTheory.kernel.iIndepSets.iIndepSet_of_mem + theorem ProbabilityTheory.kernel.iIndepSets.meas_biInter + theorem ProbabilityTheory.kernel.iIndepSets.meas_iInter + theorem ProbabilityTheory.kernel.iIndepSets_singleton_iff + theorem ProbabilityTheory.kernel.iIndep_comap_mem_iff 2023-10-31 10:54:31 cddb28f feat(RingTheory/Flat): free and projective modules over a `CommRing` are flat (#7567) Prove that flat modules are stable under retracts, isomorphisms and direct sums. Use this to deduce that free and projective modules are flat. ESTIMATED CHANGES Modified Mathlib/RingTheory/Flat.lean + theorem Module.Flat.iff_rTensor_injective + theorem Module.Flat.of_linearEquiv + theorem Module.Flat.of_projective_surjective + theorem Module.Flat.of_retract 2023-10-31 09:38:50 1ff3bf3 chore: bump toolchain to v4.3.0-rc1 (#8051) This incorporates changes from * #7845 * #7847 * #7853 * #7872 (was never actually made to work, but the diffs in `nightly-testing` are unexciting: we need to fully qualify a few names) They can all be closed when this is merged. ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/Operations.lean Modified Mathlib/Algebra/BigOperators/Ring.lean Modified Mathlib/Algebra/Homology/Homology.lean Modified Mathlib/Algebra/Homology/Single.lean Modified Mathlib/Algebra/Jordan/Basic.lean Modified Mathlib/Algebra/Order/CompleteField.lean Modified Mathlib/AlgebraicGeometry/GammaSpecAdjunction.lean Modified Mathlib/Analysis/Analytic/Inverse.lean Modified Mathlib/Analysis/MeanInequalities.lean Modified Mathlib/CategoryTheory/Comma.lean +/- theorem CategoryTheory.Comma.eqToHom_right Modified Mathlib/CategoryTheory/DifferentialObject.lean Modified Mathlib/CategoryTheory/Functor/Flat.lean Modified Mathlib/CategoryTheory/Idempotents/FunctorCategories.lean Modified Mathlib/Combinatorics/SimpleGraph/Regularity/Chunk.lean Modified Mathlib/Data/Complex/Module.lean - theorem IsSelfAdjoint.imaginaryPart Modified Mathlib/Data/Ordmap/Ordset.lean Modified Mathlib/Data/Prod/TProd.lean Modified Mathlib/Data/Set/Basic.lean Modified Mathlib/Data/UInt.lean +/- theorem UInt16.val_eq_of_lt +/- theorem UInt32.val_eq_of_lt +/- theorem UInt64.val_eq_of_lt +/- theorem UInt8.val_eq_of_lt +/- theorem USize.val_eq_of_lt Modified Mathlib/Lean/Meta/DiscrTree.lean +/- def Lean.Meta.DiscrTree.insertIfSpecific +/- def Lean.Meta.DiscrTree.mapArrays Modified Mathlib/LinearAlgebra/CliffordAlgebra/Grading.lean Modified Mathlib/LinearAlgebra/QuadraticForm/Complex.lean Modified Mathlib/Logic/Equiv/Set.lean Modified Mathlib/MeasureTheory/Function/Jacobian.lean Modified Mathlib/MeasureTheory/Function/L1Space.lean Modified Mathlib/MeasureTheory/Measure/OuterMeasure.lean Modified Mathlib/NumberTheory/LegendreSymbol/GaussEisensteinLemmas.lean Modified Mathlib/NumberTheory/Padics/RingHoms.lean Modified Mathlib/NumberTheory/PythagoreanTriples.lean Modified Mathlib/Probability/Kernel/Composition.lean Modified Mathlib/Probability/Kernel/WithDensity.lean Modified Mathlib/RingTheory/MvPolynomial/Homogeneous.lean Modified Mathlib/Tactic/Cache.lean +/- def Mathlib.Tactic.DiscrTreeCache.getMatch Modified Mathlib/Tactic/LibrarySearch.lean + def Mathlib.Tactic.LibrarySearch.discrTreeConfig Modified Mathlib/Tactic/NormNum/Core.lean + def Mathlib.Meta.NormNum.discrTreeConfig Modified Mathlib/Tactic/Positivity/Core.lean + def Mathlib.Meta.Positivity.discrTreeConfig Modified Mathlib/Tactic/Propose.lean + def Mathlib.Tactic.Propose.discrTreeConfig +/- def Mathlib.Tactic.Propose.propose Modified Mathlib/Tactic/Relation/Rfl.lean Modified Mathlib/Tactic/Relation/Trans.lean + def Mathlib.Tactic.transExt.config Modified Mathlib/Tactic/Rewrites.lean + def Mathlib.Tactic.Rewrites.discrTreeConfig Modified Mathlib/Tactic/Widget/Calc.lean +/- def createCalc Modified Mathlib/Topology/Constructions.lean Modified Mathlib/Topology/DenseEmbedding.lean Modified lake-manifest.json Modified lean-toolchain 2023-10-31 08:51:20 f8593ac Chore(CategoryTheory/Extensive): Fix docstring (#8048) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Extensive.lean 2023-10-31 07:55:06 0830b6a feat: more explicit sheaf condition for presieves of arrows (#7855) We give more explicit analogues for compatible families of elements for a `Presieve.ofArrows` and prove that if such families have unique amalgamation then the sheaf condition is satisfied. - [x] depends on: #7854 ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Sites/IsSheafFor.lean + theorem CategoryTheory.Presieve.Arrows.Compatible.exists_familyOfElements + def CategoryTheory.Presieve.Arrows.Compatible.familyOfElements + theorem CategoryTheory.Presieve.Arrows.Compatible.familyOfElements_compatible + theorem CategoryTheory.Presieve.Arrows.Compatible.familyOfElements_ofArrows_mk + def CategoryTheory.Presieve.Arrows.Compatible + def CategoryTheory.Presieve.Arrows.PullbackCompatible + theorem CategoryTheory.Presieve.Arrows.pullbackCompatible_iff + theorem CategoryTheory.Presieve.FamilyOfElements.isAmalgamation_iff_ofArrows + theorem CategoryTheory.Presieve.isSheafFor_arrows_iff + theorem CategoryTheory.Presieve.isSheafFor_arrows_iff_pullbacks Modified Mathlib/CategoryTheory/Sites/Sieves.lean + theorem CategoryTheory.Presieve.ofArrows_surj 2023-10-31 06:01:35 85a1f28 feat(Data.Finset.Antidiagonal): generalize `Finset.Nat.antidiagonal` (#7486) We define a type class `Finset.HasAntidiagonal A` which contains a function `antidiagonal : A → Finset (A × A)` such that `antidiagonal n` is the Finset of all pairs adding to `n`, as witnessed by `mem_antidiagonal`. When `A` is a canonically ordered add monoid with locally finite order this typeclass can be instantiated with `Finset.antidiagonalOfLocallyFinite`. This applies in particular when `A` is `ℕ`, more generally or `σ →₀ ℕ`, or even `ι →₀ A` under the additional assumption `OrderedSub A` that make it a canonically ordered add monoid. (In fact, we would just need an `AddMonoid` with a compatible order, finite `Iic`, such that if `a + b = n`, then `a, b ≤ n`, and any finiteness condition would be OK.) For computational reasons it is better to manually provide instances for `ℕ` and `σ →₀ ℕ`, to avoid quadratic runtime performance. These instances are provided as `Finset.Nat.instHasAntidiagonal` and `Finsupp.instHasAntidiagonal`. This is why `Finset.antidiagonalOfLocallyFinite` is an `abbrev` and not an `instance`. This definition does not exactly match with that of `Multiset.antidiagonal` defined in `Mathlib.Data.Multiset.Antidiagonal`, because of the multiplicities. Indeed, by counting multiplicities, `Multiset α` is equivalent to `α →₀ ℕ`, but `Finset.antidiagonal` and `Multiset.antidiagonal` will return different objects. For example, for `s : Multiset ℕ := {0,0,0}`, `Multiset.antidiagonal s` has 8 elements but `Finset.antidiagonal s` has only 4. ```lean def s : Multiset ℕ := {0, 0, 0} #eval (Finset.antidiagonal s).card -- 4 #eval Multiset.card (Multiset.antidiagonal s) -- 8 ``` ## TODO * Define `HasMulAntidiagonal` (for monoids). For `PNat`, we will recover the set of divisors of a strictly positive integer. This closes #7917 Co-authored by: María Inés de Frutos-Fernández and Eric Wieser ESTIMATED CHANGES Modified Archive/Wiedijk100Theorems/Partition.lean Modified Mathlib.lean Modified Mathlib/Algebra/BigOperators/NatAntidiagonal.lean Modified Mathlib/Algebra/Lie/Weights/Basic.lean Modified Mathlib/Analysis/Normed/Field/InfiniteSum.lean Modified Mathlib/Analysis/NormedSpace/Exponential.lean Modified Mathlib/Combinatorics/Catalan.lean Modified Mathlib/Data/Fin/Tuple/NatAntidiagonal.lean Added Mathlib/Data/Finset/Antidiagonal.lean + theorem Finset.antidiagonal.fst_le + theorem Finset.antidiagonal.snd_le + theorem Finset.antidiagonal_congr + theorem Finset.antidiagonal_subtype_ext + theorem Finset.antidiagonal_zero + theorem Finset.filter_fst_eq_antidiagonal + theorem Finset.filter_snd_eq_antidiagonal + theorem Finset.hasAntidiagonal_congr + theorem Finset.map_prodComm_antidiagonal + theorem Finset.map_swap_antidiagonal + def Finset.sigmaAntidiagonalEquivProd + theorem Finset.swap_mem_antidiagonal Modified Mathlib/Data/Finset/NatAntidiagonal.lean - theorem Finset.Nat.antidiagonal.fst_le - theorem Finset.Nat.antidiagonal.snd_le - def Finset.Nat.antidiagonal - theorem Finset.Nat.antidiagonal_congr - theorem Finset.Nat.antidiagonal_subtype_ext - theorem Finset.Nat.filter_fst_eq_antidiagonal - theorem Finset.Nat.filter_snd_eq_antidiagonal - theorem Finset.Nat.map_prodComm_antidiagonal - theorem Finset.Nat.map_swap_antidiagonal - theorem Finset.Nat.mem_antidiagonal - def Finset.Nat.sigmaAntidiagonalEquivProd Modified Mathlib/Data/Finsupp/Antidiagonal.lean - def Finsupp.antidiagonal - theorem Finsupp.antidiagonal_filter_fst_eq - theorem Finsupp.antidiagonal_filter_snd_eq - theorem Finsupp.mem_antidiagonal - theorem Finsupp.swap_mem_antidiagonal Modified Mathlib/Data/MvPolynomial/Basic.lean Modified Mathlib/Data/MvPolynomial/Variables.lean Modified Mathlib/Data/Nat/Choose/Sum.lean Modified Mathlib/Data/Nat/Choose/Vandermonde.lean Modified Mathlib/Data/Nat/Fib.lean Modified Mathlib/Data/Polynomial/Coeff.lean Modified Mathlib/Data/Polynomial/Degree/Definitions.lean Modified Mathlib/Data/Polynomial/Degree/TrailingDegree.lean Modified Mathlib/Data/Polynomial/HasseDeriv.lean Modified Mathlib/Data/Polynomial/Module.lean Modified Mathlib/Data/Polynomial/Monic.lean Modified Mathlib/RingTheory/Filtration.lean Modified Mathlib/RingTheory/HahnSeries.lean Modified Mathlib/RingTheory/MvPolynomial/Homogeneous.lean Modified Mathlib/RingTheory/MvPolynomial/WeightedHomogeneous.lean Modified Mathlib/RingTheory/Nilpotent.lean Modified Mathlib/RingTheory/Polynomial/Basic.lean Modified Mathlib/RingTheory/PolynomialAlgebra.lean Modified Mathlib/RingTheory/PowerSeries/Basic.lean Modified Mathlib/RingTheory/ReesAlgebra.lean Modified Mathlib/Topology/Algebra/InfiniteSum/Ring.lean 2023-10-31 05:35:43 7531592 chore: bump toolchain to v4.2.0 (#8050) ESTIMATED CHANGES Modified lean-toolchain 2023-10-31 04:30:30 13d875a feat: completion of the file Algebra.Homology.ShortComplex.Exact (#7997) ESTIMATED CHANGES Modified Mathlib/Algebra/Homology/ShortComplex/Exact.lean + theorem CategoryTheory.ShortComplex.Exact.epi_f + theorem CategoryTheory.ShortComplex.Exact.epi_f_iff + theorem CategoryTheory.ShortComplex.Exact.isZero_X₂ + theorem CategoryTheory.ShortComplex.Exact.isZero_X₂_iff + theorem CategoryTheory.ShortComplex.Exact.mono_g + theorem CategoryTheory.ShortComplex.Exact.mono_g_iff + theorem CategoryTheory.ShortComplex.quasiIso_iff_of_zeros' + theorem CategoryTheory.ShortComplex.quasiIso_iff_of_zeros 2023-10-31 02:45:12 23717cb feat(Topology/CompletelyRegular): Add definition `CompletelyRegularSpace` (#7926) Add definitions `CompletelyRegularSpace` and `T35Space`. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Order/Filter/Basic.lean + theorem Filter.disjoint_of_map Added Mathlib/Topology/CompletelyRegular.lean Modified Mathlib/Topology/NhdsSet.lean + theorem Continuous.tendsto_nhdsSet_nhds 2023-10-31 02:18:21 2d044ba docs: fix name is ValuedCsp.Instance.IsOptimumSolution (#8037) ESTIMATED CHANGES Modified Mathlib/Combinatorics/Optimization/ValuedCSP.lean 2023-10-31 02:18:20 ab1d5a4 refactor(Data/Sym/Sym2): simplify decidability instances (#8020) There shouldn't be any need for a custom boolean algorithm here, typeclass search can find it. Removes a porting comment from #1805 about `boolEq`, which isn't needed after all. ESTIMATED CHANGES Modified Mathlib/Data/Sym/Sym2.lean - def Sym2.eqBool - theorem Sym2.eqBool_spec - def Sym2.relBool - theorem Sym2.relBool_spec 2023-10-31 02:18:19 0965c0b chore(Algebra/CharP/Quotient): slightly golf (#7992) removes a todo but not sure if the most principled. ESTIMATED CHANGES Modified Mathlib/Algebra/CharP/Quotient.lean 2023-10-31 01:57:43 d99ad9b chore: uncomment a norm_num test that passes now (#8049) This test started passing in https://github.com/leanprover-community/mathlib4/commit/60790d4fd15e2d67606041b9f7058872911a8ac8. ESTIMATED CHANGES Modified test/norm_num.lean 2023-10-30 22:21:32 1c0dba6 doc: convert comments to docstrings and doc-comments (#7951) ESTIMATED CHANGES Modified Mathlib/Algebra/BigOperators/Basic.lean Modified Mathlib/Algebra/DualNumber.lean Modified Mathlib/Algebra/Order/Floor.lean Modified Mathlib/Algebra/TrivSqZeroExt.lean Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Chebyshev.lean Modified Mathlib/CategoryTheory/Sites/Grothendieck.lean Modified Mathlib/Data/Nat/Cast/Order.lean Modified Mathlib/Data/Nat/GCD/Basic.lean Modified Mathlib/LinearAlgebra/Matrix/BilinearForm.lean Modified Mathlib/SetTheory/Ordinal/Basic.lean Modified Mathlib/Topology/ContinuousFunction/Algebra.lean 2023-10-30 21:42:57 57cf5ff chore: refactor to `List.get` (#8039) ESTIMATED CHANGES Modified Mathlib/Analysis/Analytic/Composition.lean Modified Mathlib/Combinatorics/Composition.lean +/- def Composition.blocksFun +/- theorem Composition.blocks_pos' +/- theorem Composition.one_le_blocks' + theorem List.get_splitWrtComposition' + theorem List.get_splitWrtCompositionAux - theorem List.nthLe_splitWrtComposition - theorem List.nthLe_splitWrtCompositionAux 2023-10-30 21:12:01 aaa97c7 feat: (Data.Matroid) basic matroid theory (#6352) This PR is the first in a series that are intended to add matroid theory to mathlib. The file `Data.Matroid.Basic` contains the definition of (possibly infinite) matroids, API relating bases, independent/dependent sets and bases of sets, and some simple typeclasses related to finiteness/nonemptiness of matroids. We also define a tactic whose job is to prove that a set is contained in the ground set of a matroid (using aesop); it is imperfect, but does an ok job. Alternative axiomatizations, duality, minors, rank, circuits, closure, flats, etc etc are all ready to go, and will be added in a sequence of future PRs. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Data/Matroid/Basic.lean + theorem Matroid.Base.base_of_basis_superset + theorem Matroid.Base.basis_ground + theorem Matroid.Base.basis_of_subset + theorem Matroid.Base.card_eq_card_of_base + theorem Matroid.Base.dep_of_insert + theorem Matroid.Base.dep_of_ssubset + theorem Matroid.Base.diff_finite_comm + theorem Matroid.Base.diff_infinite_comm + theorem Matroid.Base.encard_diff_comm + theorem Matroid.Base.eq_exchange_of_diff_eq_singleton + theorem Matroid.Base.eq_of_subset_base + theorem Matroid.Base.eq_of_subset_indep + theorem Matroid.Base.exchange + theorem Matroid.Base.exchange_base_of_indep' + theorem Matroid.Base.exchange_base_of_indep + theorem Matroid.Base.exchange_mem + theorem Matroid.Base.exists_insert_of_ssubset + theorem Matroid.Base.finite + theorem Matroid.Base.finiteRk_of_finite + theorem Matroid.Base.finite_of_finite + theorem Matroid.Base.indep + theorem Matroid.Base.infinite + theorem Matroid.Base.infiniteRk_of_infinite + theorem Matroid.Base.infinite_of_infinite + theorem Matroid.Base.insert_dep + theorem Matroid.Base.insert_not_base + theorem Matroid.Base.ncard_diff_comm + theorem Matroid.Base.ncard_eq_ncard_of_base + theorem Matroid.Base.nonempty + theorem Matroid.Base.not_base_of_ssubset + theorem Matroid.Base.rkPos_of_nonempty + theorem Matroid.Base.subset_ground + theorem Matroid.Basis'.basis + theorem Matroid.Basis'.basis_inter_ground + theorem Matroid.Basis'.eq_of_subset_indep + theorem Matroid.Basis'.indep + theorem Matroid.Basis'.subset + def Matroid.Basis' + theorem Matroid.Basis.Finite + theorem Matroid.Basis.basis' + theorem Matroid.Basis.basis_iUnion + theorem Matroid.Basis.basis_inter_ground + theorem Matroid.Basis.basis_sUnion + theorem Matroid.Basis.basis_subset + theorem Matroid.Basis.basis_union + theorem Matroid.Basis.basis_union_of_subset + theorem Matroid.Basis.dep_of_ssubset + theorem Matroid.Basis.eq_of_subset_indep + theorem Matroid.Basis.exists_base + theorem Matroid.Basis.exists_basis_inter_eq_of_superset + theorem Matroid.Basis.iUnion_basis_iUnion + theorem Matroid.Basis.indep + theorem Matroid.Basis.insert_basis_insert + theorem Matroid.Basis.insert_dep + theorem Matroid.Basis.inter_eq_of_subset_indep + theorem Matroid.Basis.left_subset_ground + theorem Matroid.Basis.mem_of_insert_indep + theorem Matroid.Basis.not_basis_of_ssubset + theorem Matroid.Basis.subset + theorem Matroid.Basis.subset_ground + theorem Matroid.Basis.union_basis_union + def Matroid.Basis + theorem Matroid.Dep.nonempty + theorem Matroid.Dep.not_indep + theorem Matroid.Dep.subset_ground + theorem Matroid.Dep.superset + def Matroid.Dep + theorem Matroid.ExchangeProperty.antichain + theorem Matroid.ExchangeProperty.encard_base_eq + theorem Matroid.ExchangeProperty.encard_diff_eq + theorem Matroid.ExchangeProperty.encard_diff_le_aux + def Matroid.ExchangeProperty + def Matroid.ExistsMaximalSubsetProperty + theorem Matroid.Indep.base_of_maximal + theorem Matroid.Indep.basis_iff_forall_insert_dep + theorem Matroid.Indep.basis_insert_iff + theorem Matroid.Indep.basis_of_forall_insert + theorem Matroid.Indep.basis_of_maximal_subset + theorem Matroid.Indep.basis_self + theorem Matroid.Indep.basis_setOf_insert_basis + theorem Matroid.Indep.diff + theorem Matroid.Indep.eq_of_basis + theorem Matroid.Indep.exists_base_subset_union_base + theorem Matroid.Indep.exists_base_superset + theorem Matroid.Indep.exists_insert_of_not_base + theorem Matroid.Indep.finite + theorem Matroid.Indep.inter_left + theorem Matroid.Indep.inter_right + theorem Matroid.Indep.not_dep + theorem Matroid.Indep.rkPos_of_nonempty + theorem Matroid.Indep.subset + theorem Matroid.Indep.subset_basis'_of_subset + theorem Matroid.Indep.subset_basis_of_subset + theorem Matroid.Indep.subset_ground + def Matroid.Indep + theorem Matroid.base_compl_iff_mem_maximals_disjoint_base + theorem Matroid.base_iff_maximal_indep + theorem Matroid.basis'_iff_basis + theorem Matroid.basis'_iff_basis_inter_ground + theorem Matroid.basis_empty_iff + theorem Matroid.basis_ground_iff + theorem Matroid.basis_iff' + theorem Matroid.basis_iff + theorem Matroid.basis_iff_basis'_subset_ground + theorem Matroid.basis_iff_mem_maximals + theorem Matroid.basis_iff_mem_maximals_Prop + theorem Matroid.basis_self_iff_indep + theorem Matroid.dep_iff + theorem Matroid.dep_of_not_indep + theorem Matroid.empty_indep + theorem Matroid.empty_not_base + theorem Matroid.eq_iff_indep_iff_indep_forall + theorem Matroid.eq_of_base_iff_base_forall + theorem Matroid.eq_of_indep_iff_indep_forall + theorem Matroid.existsMaximalSubsetProperty_indep + theorem Matroid.exists_base + theorem Matroid.exists_basis' + theorem Matroid.exists_basis + theorem Matroid.exists_basis_subset_basis + theorem Matroid.exists_basis_union_inter_basis + theorem Matroid.finite_or_infiniteRk + theorem Matroid.ground_finite + theorem Matroid.ground_indep_iff_base + theorem Matroid.ground_nonempty + theorem Matroid.indep_iff_forall_finite_subset_indep + theorem Matroid.indep_iff_not_dep + theorem Matroid.indep_iff_subset_base + theorem Matroid.indep_of_forall_finite_subset_indep + theorem Matroid.indep_of_not_dep + theorem Matroid.indep_or_dep + theorem Matroid.not_dep_iff + theorem Matroid.not_finiteRk + theorem Matroid.not_indep_iff + theorem Matroid.not_infiniteRk + theorem Matroid.rkPos_iff_empty_not_base + theorem Matroid.setOf_base_eq_maximals_setOf_indep + theorem Matroid.setOf_basis_eq + theorem Matroid.setOf_dep_eq + theorem Matroid.setOf_indep_eq + theorem Matroid.set_finite + structure Matroid Added Mathlib/Data/Matroid/Init.lean Modified docs/references.bib 2023-10-30 20:20:42 4ad9d1e feat: additional version of FTC-2 for improper integrals (#7755) * The extra import doesn't import any additional files transitively. * From the Sobolev project ESTIMATED CHANGES Modified Mathlib/Analysis/Calculus/Deriv/Support.lean - theorem HasCompactSupport.deriv Modified Mathlib/MeasureTheory/Integral/IntegralEqImproper.lean + theorem MeasureTheory.HasCompactSupport.integral_Iic_deriv_eq + theorem MeasureTheory.HasCompactSupport.integral_Ioi_deriv_eq +/- theorem MeasureTheory.integrableOn_Ioi_deriv_of_nonneg +/- theorem MeasureTheory.integrableOn_Ioi_deriv_of_nonpos + theorem MeasureTheory.integral_Iic_of_hasDerivAt_of_tendsto' + theorem MeasureTheory.integral_Iic_of_hasDerivAt_of_tendsto +/- theorem MeasureTheory.integral_Ioi_of_hasDerivAt_of_nonneg +/- theorem MeasureTheory.integral_Ioi_of_hasDerivAt_of_nonpos +/- theorem MeasureTheory.integral_Ioi_of_hasDerivAt_of_tendsto Modified Mathlib/Topology/Basic.lean + theorem Filter.EventuallyEq.tendsto Modified Mathlib/Topology/Instances/Real.lean + theorem Real.atBot_le_cocompact + theorem Real.atTop_le_cocompact 2023-10-30 19:25:52 6b83e01 feat: add `withDensity_eq_zero_iff` (#8045) ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Measure/WithDensity.lean + theorem MeasureTheory.withDensity_eq_zero_iff 2023-10-30 19:25:51 67f7621 fix: make sure types of `Set.encard` and `Set.ncard` are beta reduced (#8044) ESTIMATED CHANGES Modified Mathlib/Data/Set/Card.lean 2023-10-30 19:25:50 5a69faf feat(CategoryTheory): calculus of fractions (#8041) This PR introduces notions of left and right fractions for a morphism property in a category. The typeclasses `MorphismProperty.HasLeftCalculusOfFractions` and `MorphismProperty.HasRightCalculusOfFractions` are also introduced. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Localization/CalculusOfFractions.lean + theorem CategoryTheory.MorphismProperty.LeftFraction.cases + theorem CategoryTheory.MorphismProperty.LeftFraction.map_comp_map_s + theorem CategoryTheory.MorphismProperty.LeftFraction.map_hom_ofInv_id + theorem CategoryTheory.MorphismProperty.LeftFraction.map_ofHom + theorem CategoryTheory.MorphismProperty.LeftFraction.map_ofInv_hom_id + def CategoryTheory.MorphismProperty.LeftFraction.ofHom + def CategoryTheory.MorphismProperty.LeftFraction.ofInv + structure CategoryTheory.MorphismProperty.LeftFraction + theorem CategoryTheory.MorphismProperty.RightFraction.cases + theorem CategoryTheory.MorphismProperty.RightFraction.map_hom_ofInv_id + theorem CategoryTheory.MorphismProperty.RightFraction.map_ofHom + theorem CategoryTheory.MorphismProperty.RightFraction.map_ofInv_hom_id + theorem CategoryTheory.MorphismProperty.RightFraction.map_s_comp_map + def CategoryTheory.MorphismProperty.RightFraction.ofHom + def CategoryTheory.MorphismProperty.RightFraction.ofInv + structure CategoryTheory.MorphismProperty.RightFraction 2023-10-30 19:25:49 2b448f2 refactor(Algebra/Algebra/Subalgebra/Basic): use a better defeq for `⊥ : Subalgebra R A` (#8038) And the same thing for `StarSubalgebra R A`. `IntermediateField` was already handled in #7957. As a result, nine (obvious) lemmas are now true by definition. This slightly adjusts the statement of `Algebra.toSubmodule_bot` to make it simpler and true by definition; the original statement can be recovered by rewriting by `Submodule.one_eq_span`, which I've had to add in some downstream proofs. ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/Subalgebra/Basic.lean +/- theorem Algebra.coe_bot +/- theorem Algebra.mem_bot +/- theorem Algebra.toSubmodule_bot + theorem Subalgebra.toSubmodule_injective Modified Mathlib/Algebra/Star/Subalgebra.lean +/- theorem StarSubalgebra.bot_toSubalgebra +/- theorem StarSubalgebra.coe_bot +/- theorem StarSubalgebra.mem_bot Modified Mathlib/FieldTheory/Adjoin.lean +/- theorem IntermediateField.coe_bot Modified Mathlib/LinearAlgebra/Finrank.lean Modified Mathlib/NumberTheory/Cyclotomic/Basic.lean Modified Mathlib/RingTheory/DedekindDomain/Ideal.lean Modified Mathlib/RingTheory/Finiteness.lean Modified Mathlib/RingTheory/IntegralClosure.lean Modified Mathlib/Topology/Instances/Complex.lean 2023-10-30 19:25:47 35528f8 feat: exactness of short complexes in balanced categories (#7996) ESTIMATED CHANGES Modified Mathlib/Algebra/Homology/ShortComplex/Exact.lean + theorem CategoryTheory.ShortComplex.Exact.desc' + theorem CategoryTheory.ShortComplex.Exact.g_desc + theorem CategoryTheory.ShortComplex.Exact.isIso_f' + theorem CategoryTheory.ShortComplex.Exact.isIso_fromOpcycles + theorem CategoryTheory.ShortComplex.Exact.isIso_g' + theorem CategoryTheory.ShortComplex.Exact.isIso_toCycles + theorem CategoryTheory.ShortComplex.Exact.lift' + theorem CategoryTheory.ShortComplex.Exact.lift_f + theorem CategoryTheory.ShortComplex.Exact.map_of_epi_of_preservesCokernel + theorem CategoryTheory.ShortComplex.Exact.map_of_mono_of_preservesKernel + theorem CategoryTheory.ShortComplex.epi_τ₂_of_exact_of_epi + theorem CategoryTheory.ShortComplex.mono_τ₂_of_exact_of_mono 2023-10-30 19:25:46 32d292c feat: quasi-isomorphisms are preserved by functors which preserve homology (#7993) ESTIMATED CHANGES Modified Mathlib/Algebra/Homology/ShortComplex/PreservesHomology.lean + theorem CategoryTheory.NatTrans.app_homology + theorem CategoryTheory.ShortComplex.LeftHomologyMapData.quasiIso_map_iff + theorem CategoryTheory.ShortComplex.RightHomologyMapData.quasiIso_map_iff + theorem CategoryTheory.ShortComplex.quasiIso_map_iff_of_preservesRightHomology 2023-10-30 19:25:45 8d64882 feat: add `peel` tactic (#7685) As requested on [Zulip](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/Logical.20congruence.20or.20weakening.20tactic). Given `p q : ℕ → Prop`, `h : ∀ x, p x`, and a goal `⊢ : ∀ x, q x`, the tactic `peel h with h' x` will introduce `x : ℕ`, `h' : p x` into the context and the new goal will be `⊢ q x`. This works with `∃`, as well as `∀ᶠ` and `∃ᶠ`, and it can even be applied to a sequence of quantifiers. For a more complex example, given a hypothesis and a goal: ``` h : ∀ ε > (0 : ℝ), ∃ N : ℕ, ∀ n ≥ N, 1 / (n + 1 : ℝ) < ε ⊢ ∀ ε > (0 : ℝ), ∃ N : ℕ, ∀ n ≥ N, 1 / (n + 1 : ℝ) ≤ ε ``` (which differ only in `<`/`≤`), applying `peel h with h_peel ε hε N n hn` will yield a tactic state: ``` h : ∀ ε > (0 : ℝ), ∃ N : ℕ, ∀ n ≥ N, 1 / (n + 1 : ℝ) < ε ε : ℝ hε : 0 < ε N n : ℕ hn : N ≤ n h_peel : 1 / (n + 1 : ℝ) < ε ⊢ 1 / (n + 1 : ℝ) ≤ ε ``` and the goal can be closed with `exact h_peel.le`. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Tactic.lean Added Mathlib/Tactic/Peel.lean + def Mathlib.Tactic.Peel.applyPeelThm + def Mathlib.Tactic.Peel.mkFreshBinderName + def Mathlib.Tactic.Peel.peelArgs + def Mathlib.Tactic.Peel.peelArgsIff + def Mathlib.Tactic.Peel.peelCore + def Mathlib.Tactic.Peel.peelIffAux + def Mathlib.Tactic.Peel.quantifiers + def Mathlib.Tactic.Peel.throwPeelError + def Mathlib.Tactic.Peel.whnfQuantifier Added test/peel.lean + def toInf 2023-10-30 17:26:56 db4f21d feat: Prove that the integral of a function composed with the absolute value is twice the integral over the positive (#8036) ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Measure/Lebesgue/Integral.lean + theorem integral_comp_abs 2023-10-30 17:26:54 46d7a40 Misc lemmas about Specializes, Inseparable and path-connectedness (#7970) Generalizing one of the proofs introduced in #7878 ESTIMATED CHANGES Modified Mathlib/Data/Set/Basic.lean + theorem Set.ite_eq_of_subset_left + theorem Set.ite_eq_of_subset_right Modified Mathlib/Topology/Basic.lean +/- theorem Continuous.congr + theorem continuous_congr Modified Mathlib/Topology/Connected/PathConnected.lean Modified Mathlib/Topology/Inseparable.lean + theorem IsClosed.continuous_piecewise_of_specializes + theorem IsOpen.continuous_piecewise_of_specializes + theorem continuous_congr_of_inseparable 2023-10-30 17:26:53 f6bb43b chore(Topology/Separation): rename type variables (#7589) This file was using a mix of Greek letters and standard math convention (X, Y, Z). `connectedComponent_eq_iInter_clopen` was even using `X` in comments and $\alpha$ in the code. As [discussed](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/Naming.20convention.3A.20topological.20spaces/near/395769893) on zulip, standardize on the latter. ESTIMATED CHANGES Modified Mathlib/Topology/Separation.lean +/- theorem Bornology.relativelyCompact.isBounded_iff +/- def Bornology.relativelyCompact +/- theorem Bornology.relativelyCompact_eq_inCompact +/- theorem CofiniteTopology.continuous_of +/- theorem CompactExhaustion.isClosed +/- theorem ConnectedSpace.infinite +/- theorem Continuous.closedEmbedding +/- theorem Continuous.ext_on +/- theorem Continuous.isOpen_mulSupport +/- theorem Continuous.limUnder_eq +/- theorem ContinuousAt.eventually_ne +/- theorem Dense.diff_finite +/- theorem Dense.diff_finset +/- theorem Dense.diff_singleton +/- theorem Embedding.t2Space +/- theorem Embedding.t5Space +/- theorem Filter.HasBasis.nhds_closure +/- theorem Filter.Tendsto.eventually_ne +/- theorem Filter.Tendsto.limUnder_eq +/- theorem Filter.coclosedCompact_eq_cocompact +/- theorem Filter.coclosedCompact_le_cofinite +/- theorem Filter.limUnder_eq_iff +/- theorem Function.LeftInverse.closedEmbedding +/- theorem Function.LeftInverse.closed_range +/- theorem Inseparable.eq +/- theorem IsClosed.exists_closed_singleton +/- theorem IsCompact.binary_compact_cover +/- theorem IsCompact.finite_compact_cover +/- theorem IsCompact.inter +/- theorem IsCompact.isClosed +/- theorem IsCompact.preimage_continuous +/- theorem IsPreconnected.infinite_of_nontrivial +/- theorem Ne.nhdsWithin_compl_singleton +/- theorem Ne.nhdsWithin_diff_singleton +/- theorem PreconnectedSpace.trivial_of_discrete +/- theorem QuotientMap.of_surjective_continuous +/- theorem RegularSpace.ofBasis +/- theorem RegularSpace.ofLift'_closure +/- theorem SeparatedNhds.comm +/- theorem SeparatedNhds.empty_left +/- theorem SeparatedNhds.empty_right +/- theorem SeparatedNhds.preimage +/- def SeparatedNhds +/- theorem Set.EqOn.of_subset_closure +/- theorem Set.Finite.t2_separation +/- theorem Set.Subsingleton.closure +/- theorem Specializes.eq +/- theorem T0Space.of_cover +/- theorem T0Space.of_open_cover +/- theorem T2Space.of_injective_continuous +/- theorem TopologicalSpace.IsTopologicalBasis.eq_iff +/- theorem TopologicalSpace.IsTopologicalBasis.exists_closure_subset +/- theorem TopologicalSpace.IsTopologicalBasis.exists_mem_of_ne +/- theorem TopologicalSpace.IsTopologicalBasis.inseparable_iff +/- theorem TopologicalSpace.IsTopologicalBasis.nhds_basis_closure +/- theorem TopologicalSpace.subset_trans +/- theorem Ultrafilter.lim_eq_iff_le_nhds +/- theorem biInter_basis_nhds +/- theorem closed_nhds_basis +/- theorem closure_singleton +/- theorem compact_exists_clopen_in_open +/- theorem compact_t2_tot_disc_iff_tot_sep +/- theorem compl_singleton_mem_nhds +/- theorem compl_singleton_mem_nhdsSet_iff +/- theorem compl_singleton_mem_nhds_iff +/- theorem connectedComponent_eq_iInter_clopen +/- theorem continuousAt_of_tendsto_nhds +/- theorem continuousAt_update_of_ne +/- theorem continuousOn_update_iff +/- theorem continuousWithinAt_update_of_ne +/- theorem discrete_of_t1_of_finite +/- theorem disjoint_lift'_closure_nhds +/- theorem disjoint_nested_nhds +/- theorem disjoint_nhdsSet_nhds +/- theorem disjoint_nhdsSet_nhdsSet +/- theorem disjoint_nhdsWithin_of_mem_discrete +/- theorem disjoint_nhds_nhds +/- theorem disjoint_nhds_nhdsSet +/- theorem disjoint_nhds_nhds_iff_not_specializes +/- theorem disjoint_nhds_pure +/- theorem disjoint_pure_nhds +/- theorem embedding_iff_inducing +/- theorem eqOn_closure₂' +/- theorem eqOn_closure₂ +/- theorem eq_of_nhds_neBot +/- theorem eq_of_tendsto_nhds +/- theorem eventually_ne_nhds +/- theorem eventually_ne_nhdsWithin +/- theorem exists_compact_superset_iff +/- theorem exists_isOpen_xor'_mem +/- theorem exists_mem_nhds_isClosed_subset +/- theorem exists_nhds_disjoint_closure +/- theorem exists_open_between_and_isCompact_closure +/- theorem exists_open_nhds_disjoint_closure +/- theorem exists_open_singleton_of_finite +/- theorem exists_open_singleton_of_open_finite +/- theorem exists_open_superset_and_isCompact_closure +/- theorem exists_open_with_compact_closure +/- theorem exists_subset_nhds_of_isCompact +/- theorem finset_disjoint_finset_opens_of_t2 +/- theorem hasBasis_nhds_closure +/- theorem hasBasis_opens_closure +/- theorem image_closure_of_isCompact +/- theorem infinite_of_mem_nhds +/- theorem injective_nhdsSet +/- theorem inseparable_eq_eq +/- theorem inseparable_iff_eq +/- theorem insert_mem_nhdsWithin_of_subset_insert +/- theorem isClosedMap_const +/- theorem isClosed_diagonal +/- theorem isClosed_eq +/- theorem isClosed_setOf_inseparable +/- theorem isClosed_setOf_specializes +/- theorem isClosed_singleton +/- theorem isCompact_closure_of_subset_compact +/- theorem isCompact_isCompact_separated +/- theorem isIrreducible_iff_singleton +/- theorem isOpen_compl_singleton +/- theorem isOpen_iff_ultrafilter' +/- theorem isOpen_ne +/- theorem isOpen_ne_fun +/- theorem isOpen_setOf_disjoint_nhds_nhds +/- theorem isOpen_setOf_eventually_nhdsWithin +/- theorem isOpen_singleton_of_finite_mem_nhds +/- theorem isPreirreducible_iff_subsingleton +/- theorem isTopologicalBasis_clopen +/- theorem ker_nhds +/- theorem lift'_nhds_closure +/- theorem limUnder_nhdsWithin_id +/- theorem limUnder_nhds_id +/- theorem lim_eq +/- theorem lim_eq_iff +/- theorem lim_nhds +/- theorem lim_nhdsWithin +/- theorem locally_compact_of_compact +/- theorem minimal_nonempty_closed_eq_singleton +/- theorem minimal_nonempty_closed_subsingleton +/- theorem minimal_nonempty_open_eq_singleton +/- theorem minimal_nonempty_open_subsingleton +/- theorem nhdsSet_inj_iff +/- theorem nhdsSet_le_iff +/- theorem nhdsWithin_compl_singleton_le +/- theorem nhdsWithin_insert_of_ne +/- theorem nhdsWithin_of_mem_discrete +/- theorem nhds_basis_clopen +/- theorem nhds_eq_nhds_iff +/- theorem nhds_injective +/- theorem nhds_inter_eq_singleton_of_mem_discrete +/- theorem nhds_le_nhdsSet_iff +/- theorem nhds_le_nhds_iff +/- theorem normal_exists_closure_subset +/- theorem normal_separation +/- theorem not_preirreducible_nontrivial_t2 +/- theorem pairwise_disjoint_nhds +/- theorem point_disjoint_finset_opens_of_t2 +/- theorem pure_le_nhds_iff +/- theorem regularSpace_TFAE +/- theorem regularSpace_induced +/- theorem separatedNhds_iff_disjoint +/- theorem separated_by_continuous +/- theorem separated_by_openEmbedding +/- theorem singleton_mem_nhdsWithin_of_mem_discrete +/- def specializationOrder +/- theorem specializes_comm +/- theorem specializes_eq_eq +/- theorem specializes_iff_eq +/- theorem specializes_iff_inseparable +/- theorem strictMono_nhdsSet +/- theorem subsingleton_closure +/- theorem t0Space_iff_exists_isOpen_xor'_mem +/- theorem t0Space_iff_inseparable +/- theorem t0Space_iff_nhds_injective +/- theorem t0Space_iff_not_inseparable +/- theorem t0Space_iff_or_not_mem_closure +/- theorem t0Space_of_injective_of_continuous +/- theorem t1Space_TFAE +/- theorem t1Space_antitone +/- theorem t1Space_iff_continuous_cofinite_of +/- theorem t1Space_iff_disjoint_nhds_pure +/- theorem t1Space_iff_disjoint_pure_nhds +/- theorem t1Space_iff_specializes_imp_eq +/- theorem t1Space_of_injective_of_continuous +/- theorem t2Space_iff_disjoint_nhds +/- theorem t2Space_iff_nhds +/- theorem t2_iff_isClosed_diagonal +/- theorem t2_iff_nhds +/- theorem t2_separation +/- theorem t2_separation_compact_nhds +/- theorem t2_separation_nhds +/- theorem tendsto_const_nhds_iff +/- theorem tendsto_nhds_unique' +/- theorem tendsto_nhds_unique +/- theorem tendsto_nhds_unique_of_eventuallyEq +/- theorem tendsto_nhds_unique_of_frequently_eq +/- theorem totallySeparatedSpace_of_t1_of_basis_clopen 2023-10-30 17:26:52 04c1707 feat: Birkhoff representation theorem (#7417) Any finite distributive lattice is isomorphic to the lattice of lower sets of its irreducible elements (and to the lattice of irreducible elements of its lower sets). In particular, it can be represented as a sublattice of some powerset algebra. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Order/Birkhoff.lean + theorem LatticeHom.birkhoffFinset_injective + theorem LowerSet.supIrred_Iic + theorem LowerSet.supIrred_iff_of_finite + theorem OrderEmbedding.birkhoffFinset_inf + theorem OrderEmbedding.birkhoffFinset_sup + theorem OrderEmbedding.birkhoffSet_apply + theorem OrderEmbedding.birkhoffSet_inf + theorem OrderEmbedding.birkhoffSet_sup + theorem OrderEmbedding.coe_birkhoffFinset + theorem UpperSet.infIrred_Ici + theorem UpperSet.infIrred_iff_of_finite + theorem exists_birkhoff_representation.{u} Modified Mathlib/Order/Hom/Basic.lean + theorem OrderEmbedding.coe_ofIsEmpty + def OrderEmbedding.ofIsEmpty 2023-10-30 16:19:04 61e8e68 feat(CategoryTheory/Extensive): Relax typeclass requirements (#8015) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Extensive.lean +/- theorem CategoryTheory.finitaryExtensive_of_reflective Modified Mathlib/CategoryTheory/Limits/VanKampen.lean + theorem CategoryTheory.IsUniversalColimit.of_mapCocone 2023-10-30 16:19:03 dcc69c7 chore: split GroupPower/Order (#7978) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/GroupPower/CovariantClass.lean + theorem Left.one_le_pow_of_le + theorem Left.pow_le_one_of_le + theorem Left.pow_lt_one_iff' + theorem Left.pow_lt_one_iff + theorem Left.pow_lt_one_of_lt + theorem Monotone.pow_right + theorem Right.one_le_pow_of_le + theorem Right.pow_le_one_of_le + theorem Right.pow_lt_one_iff + theorem Right.pow_lt_one_of_lt + theorem StrictMono.pow_right' + theorem le_max_of_sq_le_mul + theorem le_of_pow_le_pow' + theorem lt_max_of_sq_lt_mul + theorem lt_of_pow_lt_pow' + theorem min_le_of_mul_le_sq + theorem min_lt_of_mul_lt_sq + theorem one_le_pow_iff + theorem one_le_pow_of_one_le' + theorem one_le_zpow + theorem one_lt_pow' + theorem one_lt_pow_iff + theorem pow_eq_one_iff + theorem pow_le_one' + theorem pow_le_one_iff + theorem pow_le_pow' + theorem pow_le_pow_iff' + theorem pow_le_pow_of_le_left' + theorem pow_le_pow_of_le_one' + theorem pow_lt_one' + theorem pow_lt_one_iff + theorem pow_lt_pow' + theorem pow_lt_pow_iff' + theorem pow_mono_right + theorem pow_strictMono_left + theorem pow_strictMono_right' Modified Mathlib/Algebra/GroupPower/Order.lean - theorem Left.one_le_pow_of_le - theorem Left.pow_le_one_of_le - theorem Left.pow_lt_one_iff' - theorem Left.pow_lt_one_iff - theorem Left.pow_lt_one_of_lt - theorem Monotone.pow_right - theorem Right.one_le_pow_of_le - theorem Right.pow_le_one_of_le - theorem Right.pow_lt_one_iff - theorem Right.pow_lt_one_of_lt - theorem StrictMono.pow_right' - theorem le_max_of_sq_le_mul - theorem le_of_pow_le_pow' - theorem lt_max_of_sq_lt_mul - theorem lt_of_pow_lt_pow' - theorem min_le_of_mul_le_sq - theorem min_lt_of_mul_lt_sq - theorem one_le_pow_iff - theorem one_le_pow_of_one_le' - theorem one_le_zpow - theorem one_lt_pow' - theorem one_lt_pow_iff - theorem pow_eq_one_iff - theorem pow_le_one' - theorem pow_le_one_iff - theorem pow_le_pow' - theorem pow_le_pow_iff' - theorem pow_le_pow_of_le_left' - theorem pow_le_pow_of_le_one' - theorem pow_lt_one' - theorem pow_lt_one_iff - theorem pow_lt_pow' - theorem pow_lt_pow_iff' - theorem pow_mono_right - theorem pow_strictMono_left - theorem pow_strictMono_right' 2023-10-30 15:05:24 333277c feat(MeasureTheory): `μ.singularPart (r • ν) = μ.singularPart ν` (#8040) Prove 3 lemmas: - an instance `MeasurableSMul ℝ≥0 ℝ≥0∞` - `instance haveLebesgueDecomposition_smul_right (μ ν : Measure α) [HaveLebesgueDecomposition μ ν] (r : ℝ≥0) : μ.HaveLebesgueDecomposition (r • ν)` - `theorem singularPart_smul_right (μ ν : Measure α) (r : ℝ≥0) (hr : r ≠ 0) : μ.singularPart (r • ν) = μ.singularPart ν` ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Constructions/BorelSpace/Basic.lean Modified Mathlib/MeasureTheory/Decomposition/Lebesgue.lean + theorem MeasureTheory.Measure.singularPart_smul_right 2023-10-30 15:05:23 b7434b9 feat: more API for split short complexes (#7995) ESTIMATED CHANGES Modified Mathlib/Algebra/Homology/ShortComplex/Exact.lean + def CategoryTheory.ShortComplex.Splitting.map + def CategoryTheory.ShortComplex.Splitting.ofIso + def CategoryTheory.ShortComplex.Splitting.op + def CategoryTheory.ShortComplex.Splitting.unop 2023-10-30 15:05:22 24cd315 chore: remove some double spaces (#7983) ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/Equiv.lean Modified Mathlib/Algebra/Algebra/Opposite.lean Modified Mathlib/Algebra/ContinuedFractions/Translations.lean Modified Mathlib/Algebra/GradedMulAction.lean Modified Mathlib/Algebra/Homology/HomotopyCategory/Shift.lean +/- def CochainComplex.shiftFunctorAdd' Modified Mathlib/Algebra/Homology/ShortComplex/Homology.lean Modified Mathlib/Algebra/Homology/ShortComplex/Preadditive.lean Modified Mathlib/AlgebraicTopology/DoldKan/EquivalencePseudoabelian.lean +/- def CategoryTheory.Idempotents.DoldKan.N +/- def CategoryTheory.Idempotents.DoldKan.Γ Modified Mathlib/Analysis/NormedSpace/OperatorNorm.lean Modified Mathlib/CategoryTheory/Limits/Preserves/Basic.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Biproducts.lean +/- def CategoryTheory.Limits.biprod.associator Modified Mathlib/CategoryTheory/Monoidal/Skeleton.lean Modified Mathlib/CategoryTheory/Shift/Induced.lean Modified Mathlib/CategoryTheory/Sites/IsSheafFor.lean Modified Mathlib/CategoryTheory/Yoneda.lean +/- theorem CategoryTheory.yonedaEquiv_comp' +/- theorem CategoryTheory.yonedaEquiv_comp Modified Mathlib/Combinatorics/SetFamily/Compression/UV.lean Modified Mathlib/Data/Complex/Basic.lean +/- theorem Complex.ofReal_bit0 Modified Mathlib/Data/Finset/LocallyFinite.lean Modified Mathlib/FieldTheory/Subfield.lean +/- theorem Subfield.coe_subtype Modified Mathlib/GroupTheory/OrderOfElement.lean Modified Mathlib/LinearAlgebra/QuadraticForm/QuadraticModuleCat.lean +/- theorem QuadraticModuleCat.toIsometry_id Modified Mathlib/LinearAlgebra/QuadraticForm/TensorProduct.lean +/- theorem QuadraticForm.associated_baseChange +/- theorem QuadraticForm.polarBilin_baseChange Modified Mathlib/MeasureTheory/Integral/Layercake.lean Modified Mathlib/MeasureTheory/Measure/FiniteMeasure.lean +/- theorem MeasureTheory.FiniteMeasure.map_add +/- theorem MeasureTheory.FiniteMeasure.map_smul Modified Mathlib/NumberTheory/NumberField/Units.lean +/- theorem NumberField.Units.dirichletUnitTheorem.exists_unit Modified Mathlib/Order/Filter/Germ.lean Modified Mathlib/Probability/Independence/Basic.lean +/- theorem ProbabilityTheory.Indep_iff +/- theorem ProbabilityTheory.Indep_iff_IndepSets Modified Mathlib/Tactic/MkIffOfInductiveProp.lean Modified Mathlib/Tactic/NormNum/OfScientific.lean Modified Mathlib/Tactic/ToAdditive.lean Modified Mathlib/Tactic/Widget/Calc.lean Modified Mathlib/Testing/SlimCheck/Testable.lean Modified Mathlib/Topology/Clopen.lean Modified Mathlib/Topology/Connected/Basic.lean Modified Mathlib/Topology/NoetherianSpace.lean Modified scripts/fix-by-linebreaks.sh Modified test/Real.lean 2023-10-30 15:05:21 0121543 feat(CategoryTheory): allow diagram chases by arguing up to refinements (#7821) This PR introduces the most basic results which enable doing diagram chases in general abelian categories by arguing "up to refinements". ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Abelian/Refinements.lean + theorem CategoryTheory.ShortComplex.Exact.exact_up_to_refinements + theorem CategoryTheory.ShortComplex.exact_iff_exact_up_to_refinements + theorem CategoryTheory.epi_iff_surjective_up_to_refinements + theorem CategoryTheory.surjective_up_to_refinements_of_epi 2023-10-30 15:05:20 baf4bc6 feat: Basic lemmas about positivity of `a • b` (#7647) All lemmas and lemma names are taken from their `mul` counterpart. ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Module.lean + theorem nonneg_and_nonneg_or_nonpos_and_nonpos_of_smul_nonneg + theorem smul_le_smul + theorem smul_le_smul_of_nonneg_right + theorem smul_nonneg_iff + theorem smul_nonneg_iff_neg_imp_nonpos + theorem smul_nonneg_iff_pos_imp_nonneg + theorem smul_nonpos_iff + theorem smul_nonpos_iff_neg_imp_nonneg + theorem smul_nonpos_iff_pos_imp_nonpos Modified Mathlib/Algebra/Order/SMul.lean 2023-10-30 13:56:11 185dddf feat: if X is Gaussian, then `X+y` and `c*X` are Gaussian (#7674) ESTIMATED CHANGES Modified Mathlib/Algebra/NeZero.lean + theorem neZero_zero_iff_false Modified Mathlib/MeasureTheory/Function/Jacobian.lean + theorem MeasurableEmbedding.withDensity_ofReal_comap_apply_eq_integral_abs_deriv_mul' + theorem MeasurableEmbedding.withDensity_ofReal_comap_apply_eq_integral_abs_deriv_mul + theorem MeasurableEmbedding.withDensity_ofReal_comap_apply_eq_integral_abs_det_fderiv_mul + theorem MeasurableEquiv.withDensity_ofReal_map_symm_apply_eq_integral_abs_deriv_mul' + theorem MeasurableEquiv.withDensity_ofReal_map_symm_apply_eq_integral_abs_deriv_mul + theorem MeasurableEquiv.withDensity_ofReal_map_symm_apply_eq_integral_abs_det_fderiv_mul Modified Mathlib/MeasureTheory/Measure/AEMeasurable.lean + theorem aemeasurable_of_map_neZero Modified Mathlib/MeasureTheory/Measure/Dirac.lean + theorem MeasureTheory.Measure.map_const Modified Mathlib/MeasureTheory/Measure/MeasureSpace.lean Modified Mathlib/Probability/Distributions/Gaussian.lean + theorem MeasurableEmbedding.gaussianReal_comap_apply + theorem MeasurableEquiv.gaussianReal_map_symm_apply + theorem ProbabilityTheory.gaussianPdfReal_add + theorem ProbabilityTheory.gaussianPdfReal_inv_mul + theorem ProbabilityTheory.gaussianPdfReal_mul + theorem ProbabilityTheory.gaussianPdfReal_sub + theorem ProbabilityTheory.gaussianReal_add_const + theorem ProbabilityTheory.gaussianReal_const_add + theorem ProbabilityTheory.gaussianReal_const_mul + theorem ProbabilityTheory.gaussianReal_map_add_const + theorem ProbabilityTheory.gaussianReal_map_const_add + theorem ProbabilityTheory.gaussianReal_map_const_mul + theorem ProbabilityTheory.gaussianReal_map_mul_const + theorem ProbabilityTheory.gaussianReal_mul_const 2023-10-30 12:55:36 d1f2a8e feat(Data/Complex): add lemmas like `div_ofReal_re` (#8024) ESTIMATED CHANGES Modified Mathlib/Data/Complex/Basic.lean + theorem Complex.div_int_cast + theorem Complex.div_int_cast_im + theorem Complex.div_int_cast_re + theorem Complex.div_nat_cast + theorem Complex.div_nat_cast_im + theorem Complex.div_nat_cast_re + theorem Complex.div_ofNat + theorem Complex.div_ofNat_im + theorem Complex.div_ofNat_re + theorem Complex.div_ofReal + theorem Complex.div_ofReal_im + theorem Complex.div_ofReal_re + theorem Complex.div_rat_cast + theorem Complex.div_rat_cast_im + theorem Complex.div_rat_cast_re 2023-10-30 12:55:34 fd0d3ac feat: explicit formula for the complex square root (#7968) Also add formula for `cos (x / 2)`, `sin (x / 2)` and golf some proofs. ESTIMATED CHANGES Modified Mathlib/Analysis/SpecialFunctions/Complex/Arg.lean + theorem Complex.abs_mul_cos_arg + theorem Complex.abs_mul_sin_arg Modified Mathlib/Analysis/SpecialFunctions/PolarCoord.lean Modified Mathlib/Analysis/SpecialFunctions/Pow/Real.lean + theorem Complex.abs_cpow_inv_two_im + theorem Complex.cpow_inv_two_im_eq_neg_sqrt + theorem Complex.cpow_inv_two_im_eq_sqrt + theorem Complex.cpow_inv_two_re + theorem Complex.cpow_ofReal + theorem Complex.cpow_ofReal_im + theorem Complex.cpow_ofReal_re Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Basic.lean + theorem Real.abs_sin_half + theorem Real.cos_half + theorem Real.sin_half_eq_neg_sqrt + theorem Real.sin_half_eq_sqrt Modified Mathlib/Data/Complex/Exponential.lean + theorem Real.sin_sq_eq_half_sub 2023-10-30 12:28:46 7f1c6f7 feat: generalize `ae_le_of_forall_set_lintegral_le_of_sigmaFinite` to AEMeasurable functions (#8032) ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Function/AEEqOfIntegral.lean + theorem MeasureTheory.ae_eq_of_forall_set_lintegral_eq_of_sigmaFinite₀ + theorem MeasureTheory.ae_le_of_forall_set_lintegral_le_of_sigmaFinite₀ 2023-10-30 11:10:32 b71f1c8 feat: add `Set.InjOn.exists_mem_nhdsSet` (#7947) A continuous function injective on a compact set and injective on a neighborhood of each point of this set is injective on a neighborhood of this set. From the Mandelbrot set connectedness project. ESTIMATED CHANGES Modified Mathlib/Order/Filter/Bases.lean + theorem Filter.eventually_prod_self_iff Modified Mathlib/Topology/Separation.lean + theorem Set.InjOn.exists_isOpen_superset + theorem Set.InjOn.exists_mem_nhdsSet 2023-10-30 11:10:31 553dd6b chore(Topology/Clopen): rename type variables (#7921) This file was using a mixture of Greek letters and letters X, Y, Z. Switch to using the latter consistently, per [Zulip discussion](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/Naming.20convention.3A.20topological.20spaces/near/395769893). Best reviewed commit by commit; each is self-contained and should be quick to review. ESTIMATED CHANGES Modified Mathlib/Topology/Clopen.lean +/- theorem ContinuousOn.preimage_clopen_of_clopen +/- theorem IsClopen.compl +/- theorem IsClopen.diff +/- theorem IsClopen.inter +/- theorem IsClopen.preimage +/- theorem IsClopen.prod +/- theorem IsClopen.union +/- def IsClopen +/- theorem Set.Finite.isClopen_biInter +/- theorem Set.Finite.isClopen_biUnion +/- theorem isClopen_biInter_finset +/- theorem isClopen_biUnion_finset +/- theorem isClopen_compl_iff +/- theorem isClopen_discrete +/- theorem isClopen_empty +/- theorem isClopen_iInter_of_finite +/- theorem isClopen_iUnion_of_finite +/- theorem isClopen_iff_frontier_eq_empty +/- theorem isClopen_inter_of_disjoint_cover_clopen +/- theorem isClopen_range_inl +/- theorem isClopen_range_inr +/- theorem isClopen_range_sigmaMk +/- theorem isClopen_univ 2023-10-30 11:10:30 2d628e7 feat: open maps from I × X, I discrete (#7809) ESTIMATED CHANGES Modified Mathlib/Topology/ContinuousOn.lean + theorem isOpenMap_prod_of_discrete_left + theorem isOpenMap_prod_of_discrete_right 2023-10-30 11:10:29 7d300cd chore(Topology/Compactness/SigmaCompact): rename type variables (#7730) Greek letters for topological spaces are outdated, use letters X, Y, Z instead. [Zulip discussion](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/Naming.20convention.3A.20topological.20spaces/near/395769893). ESTIMATED CHANGES Modified Mathlib/Topology/Compactness/SigmaCompact.lean +/- theorem CompactExhaustion.exists_mem +/- theorem CompactExhaustion.find_shiftr +/- theorem CompactExhaustion.mem_diff_shiftr_find +/- theorem CompactExhaustion.mem_find +/- theorem CompactExhaustion.mem_iff_find_le +/- def CompactExhaustion.shiftr +/- theorem Embedding.isSigmaCompact_iff +/- theorem Inducing.isSigmaCompact_iff +/- theorem IsClosed.sigmaCompactSpace +/- theorem IsCompact.isSigmaCompact +/- theorem IsSigmaCompact.image +/- theorem IsSigmaCompact.image_of_continuousOn +/- theorem IsSigmaCompact.of_isClosed_subset +/- def IsSigmaCompact +/- theorem SigmaCompactSpace.exists_compact_covering +/- theorem SigmaCompactSpace.of_countable +/- theorem Subtype.isSigmaCompact_iff +/- def compactCovering +/- theorem compactCovering_subset +/- theorem countable_cover_nhdsWithin_of_sigma_compact +/- theorem countable_cover_nhds_of_sigma_compact +/- theorem exists_mem_compactCovering +/- theorem iUnion_compactCovering +/- theorem isCompact_compactCovering +/- theorem isSigmaCompact_biUnion +/- theorem isSigmaCompact_empty +/- theorem isSigmaCompact_iUnion +/- theorem isSigmaCompact_iUnion_of_isCompact +/- theorem isSigmaCompact_iff_isSigmaCompact_univ +/- theorem isSigmaCompact_iff_sigmaCompactSpace +/- theorem isSigmaCompact_range +/- theorem isSigmaCompact_sUnion +/- theorem isSigmaCompact_sUnion_of_isCompact +/- theorem isSigmaCompact_univ +/- theorem isSigmaCompact_univ_iff 2023-10-30 10:24:57 2904132 chore: split MetricSpace.basic (#7920) This reduces the main file from 3340 to 2220 lines. The remaining file is somewhat entangled, so splitting is less obvious. Help is welcome, though a follow-up PR is probably better :-) I've kept copyright and authors as they were originally. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Analysis/BoxIntegral/Box/Basic.lean Modified Mathlib/Analysis/Convex/Extrema.lean Modified Mathlib/Analysis/Normed/Group/Basic.lean Modified Mathlib/MeasureTheory/Covering/Vitali.lean Modified Mathlib/Topology/Instances/Int.lean Modified Mathlib/Topology/Instances/Rat.lean Modified Mathlib/Topology/Instances/Real.lean Modified Mathlib/Topology/MetricSpace/Basic.lean - theorem Bornology.IsBounded.isCompact_closure - theorem Bornology.IsBounded.subset_ball - theorem Bornology.IsBounded.subset_ball_lt - theorem Bornology.IsBounded.subset_closedBall - theorem Bornology.IsBounded.subset_closedBall_lt - def Bornology.ofDist - theorem CauchySeq.isBounded_range - theorem ContinuousOn.isSeparable_image - theorem Dense.exists_dist_lt - theorem Filter.Tendsto.congr_dist - theorem Fin.dist_insertNth_insertNth - theorem Fin.nndist_insertNth_insertNth - def Inducing.comapPseudoMetricSpace - theorem IsCompact.isBounded - theorem IsCompact.isSeparable - theorem IsComplete.nonempty_iInter_of_nonempty_biInter - def Mathlib.Meta.Positivity.evalDiam - def Mathlib.Meta.Positivity.evalDist - def Metric.ball - theorem Metric.ball_disjoint_ball - theorem Metric.ball_disjoint_closedBall - theorem Metric.ball_eq_ball' - theorem Metric.ball_eq_ball - theorem Metric.ball_eq_empty - theorem Metric.ball_half_subset - theorem Metric.ball_mem_nhds - theorem Metric.ball_subset - theorem Metric.ball_subset_ball' - theorem Metric.ball_subset_ball - theorem Metric.ball_subset_closedBall - theorem Metric.ball_subset_interior_closedBall - theorem Metric.ball_union_sphere - theorem Metric.ball_zero - theorem Metric.cauchySeq_iff' - theorem Metric.cauchySeq_iff - def Metric.closedBall - theorem Metric.closedBall_diff_ball - theorem Metric.closedBall_diff_sphere - theorem Metric.closedBall_disjoint_ball - theorem Metric.closedBall_disjoint_closedBall - theorem Metric.closedBall_eq_bInter_ball - theorem Metric.closedBall_eq_empty - theorem Metric.closedBall_eq_sphere_of_nonpos - theorem Metric.closedBall_mem_nhds - theorem Metric.closedBall_mem_nhds_of_mem - theorem Metric.closedBall_subset_ball' - theorem Metric.closedBall_subset_ball - theorem Metric.closedBall_subset_closedBall' - theorem Metric.closedBall_subset_closedBall - theorem Metric.closedBall_zero' - theorem Metric.closure_ball_subset_closedBall - theorem Metric.closure_closedBall - theorem Metric.closure_sphere - theorem Metric.cobounded_eq_cocompact - theorem Metric.cobounded_le_cocompact - theorem Metric.comap_dist_left_atTop - theorem Metric.comap_dist_right_atTop - theorem Metric.compactSpace_iff_isBounded_univ - theorem Metric.complete_of_cauchySeq_tendsto - theorem Metric.complete_of_convergent_controlled_sequences - theorem Metric.continuousAt_iff' - theorem Metric.continuousAt_iff - theorem Metric.continuousOn_iff' - theorem Metric.continuousOn_iff - theorem Metric.continuousWithinAt_iff' - theorem Metric.continuousWithinAt_iff - theorem Metric.continuous_iff' - theorem Metric.continuous_iff - theorem Metric.controlled_of_uniformEmbedding - theorem Metric.denseRange_iff - theorem Metric.dense_iff - theorem Metric.diam_ball - theorem Metric.diam_closedBall - theorem Metric.diam_empty - theorem Metric.diam_eq_zero_of_unbounded - theorem Metric.diam_le_of_forall_dist_le - theorem Metric.diam_le_of_forall_dist_le_of_nonempty - theorem Metric.diam_le_of_subset_closedBall - theorem Metric.diam_mono - theorem Metric.diam_nonneg - theorem Metric.diam_pair - theorem Metric.diam_singleton - theorem Metric.diam_subsingleton - theorem Metric.diam_triple - theorem Metric.diam_union' - theorem Metric.diam_union - theorem Metric.diam_univ_of_noncompact - theorem Metric.disjoint_cobounded_nhds - theorem Metric.disjoint_cobounded_nhdsSet - theorem Metric.disjoint_nhdsSet_cobounded - theorem Metric.disjoint_nhds_cobounded - theorem Metric.dist_le_add_of_nonempty_closedBall_inter_closedBall - theorem Metric.dist_le_diam_of_mem' - theorem Metric.dist_le_diam_of_mem - theorem Metric.dist_lt_add_of_nonempty_ball_inter_ball - theorem Metric.dist_lt_add_of_nonempty_ball_inter_closedBall - theorem Metric.dist_lt_add_of_nonempty_closedBall_inter_ball - theorem Metric.dist_mem_uniformity - theorem Metric.eball_top_eq_univ - theorem Metric.ediam_eq_top_iff_unbounded - theorem Metric.ediam_le_of_forall_dist_le - theorem Metric.ediam_of_unbounded - theorem Metric.ediam_univ_eq_top_iff_noncompact - theorem Metric.ediam_univ_of_noncompact - theorem Metric.emetric_ball - theorem Metric.emetric_ball_nnreal - theorem Metric.emetric_ball_top - theorem Metric.emetric_closedBall - theorem Metric.emetric_closedBall_nnreal - theorem Metric.eventually_isCompact_closedBall - theorem Metric.eventually_nhds_iff - theorem Metric.eventually_nhds_iff_ball - theorem Metric.eventually_nhds_prod_iff - theorem Metric.eventually_prod_nhds_iff - theorem Metric.exists_ball_inter_eq_singleton_of_mem_discrete - theorem Metric.exists_ball_subset_ball - theorem Metric.exists_closedBall_inter_eq_singleton_of_discrete - theorem Metric.exists_isCompact_closedBall - theorem Metric.exists_isLocalMin_mem_ball - theorem Metric.exists_isOpen_isBounded_image_inter_of_isCompact_of_continuousOn - theorem Metric.exists_isOpen_isBounded_image_inter_of_isCompact_of_forall_continuousWithinAt - theorem Metric.exists_isOpen_isBounded_image_of_isCompact_of_continuousOn - theorem Metric.exists_isOpen_isBounded_image_of_isCompact_of_forall_continuousAt - theorem Metric.exists_lt_mem_ball_of_mem_ball - theorem Metric.finite_approx_of_totallyBounded - theorem Metric.finite_isBounded_inter_isClosed - theorem Metric.forall_of_forall_mem_ball - theorem Metric.forall_of_forall_mem_closedBall - theorem Metric.frontier_ball_subset_sphere - theorem Metric.frontier_closedBall_subset_sphere - theorem Metric.hasBasis_cobounded_compl_ball - theorem Metric.hasBasis_cobounded_compl_closedBall - theorem Metric.iUnion_ball_nat - theorem Metric.iUnion_ball_nat_succ - theorem Metric.iUnion_closedBall_nat - theorem Metric.iUnion_inter_closedBall_nat - theorem Metric.inseparable_iff - theorem Metric.isBounded_Icc - theorem Metric.isBounded_Ico - theorem Metric.isBounded_Ioc - theorem Metric.isBounded_Ioo - theorem Metric.isBounded_ball - theorem Metric.isBounded_closedBall - theorem Metric.isBounded_closure_iff - theorem Metric.isBounded_closure_of_isBounded - theorem Metric.isBounded_iff - theorem Metric.isBounded_iff_ediam_ne_top - theorem Metric.isBounded_iff_eventually - theorem Metric.isBounded_iff_exists_ge - theorem Metric.isBounded_iff_nndist - theorem Metric.isBounded_iff_subset_ball - theorem Metric.isBounded_iff_subset_closedBall - theorem Metric.isBounded_image_iff - theorem Metric.isBounded_of_bddAbove_of_bddBelow - theorem Metric.isBounded_of_compactSpace - theorem Metric.isBounded_range_iff - theorem Metric.isBounded_range_of_cauchy_map_cofinite - theorem Metric.isBounded_range_of_tendsto - theorem Metric.isBounded_range_of_tendsto_cofinite - theorem Metric.isBounded_range_of_tendsto_cofinite_uniformity - theorem Metric.isBounded_sphere - theorem Metric.isClosed_ball - theorem Metric.isClosed_sphere - theorem Metric.isCompact_iff_isClosed_bounded - theorem Metric.isCompact_of_isClosed_isBounded - theorem Metric.isOpen_ball - theorem Metric.isOpen_iff - theorem Metric.isOpen_singleton_iff - theorem Metric.mem_ball' - theorem Metric.mem_ball - theorem Metric.mem_ball_comm - theorem Metric.mem_ball_self - theorem Metric.mem_closedBall' - theorem Metric.mem_closedBall - theorem Metric.mem_closedBall_comm - theorem Metric.mem_closedBall_self - theorem Metric.mem_closure_iff - theorem Metric.mem_closure_range_iff - theorem Metric.mem_closure_range_iff_nat - theorem Metric.mem_nhdsWithin_iff - theorem Metric.mem_nhds_iff - theorem Metric.mem_of_closed' - theorem Metric.mem_sphere' - theorem Metric.mem_sphere - theorem Metric.mem_sphere_comm - theorem Metric.mem_uniformity_dist - theorem Metric.ne_of_mem_sphere - theorem Metric.nhdsWithin_basis_ball - theorem Metric.nhds_basis_ball - theorem Metric.nhds_basis_ball_inv_nat_pos - theorem Metric.nhds_basis_ball_inv_nat_succ - theorem Metric.nhds_basis_ball_pow - theorem Metric.nhds_basis_closedBall - theorem Metric.nhds_basis_closedBall_pow - theorem Metric.nonempty_ball - theorem Metric.nonempty_closedBall - theorem Metric.nonempty_iInter_of_nonempty_biInter - theorem Metric.nonneg_of_mem_sphere - theorem Metric.pos_of_mem_ball - theorem Metric.secondCountable_of_almost_dense_set - def Metric.sphere - theorem Metric.sphere_disjoint_ball - theorem Metric.sphere_eq_empty_of_neg - theorem Metric.sphere_eq_empty_of_subsingleton - theorem Metric.sphere_isEmpty_of_subsingleton - theorem Metric.sphere_subset_ball - theorem Metric.sphere_subset_closedBall - theorem Metric.sphere_union_ball - theorem Metric.tendstoLocallyUniformlyOn_iff - theorem Metric.tendstoLocallyUniformly_iff - theorem Metric.tendstoUniformlyOnFilter_iff - theorem Metric.tendstoUniformlyOn_iff - theorem Metric.tendstoUniformly_iff - theorem Metric.tendsto_atTop' - theorem Metric.tendsto_atTop - theorem Metric.tendsto_dist_left_atTop_iff - theorem Metric.tendsto_dist_left_cobounded_atTop - theorem Metric.tendsto_dist_right_atTop_iff - theorem Metric.tendsto_dist_right_cobounded_atTop - theorem Metric.tendsto_nhds - theorem Metric.tendsto_nhdsWithin_nhds - theorem Metric.tendsto_nhdsWithin_nhdsWithin - theorem Metric.tendsto_nhds_nhds - theorem Metric.toUniformSpace_eq - theorem Metric.totallyBounded_iff - theorem Metric.totallyBounded_of_finite_discretization - theorem Metric.uniformCauchySeqOn_iff - theorem Metric.uniformContinuousOn_iff - theorem Metric.uniformContinuousOn_iff_le - theorem Metric.uniformContinuous_iff - theorem Metric.uniformity_basis_dist - theorem Metric.uniformity_basis_dist_inv_nat_pos - theorem Metric.uniformity_basis_dist_inv_nat_succ - theorem Metric.uniformity_basis_dist_le - theorem Metric.uniformity_basis_dist_le_pow - theorem Metric.uniformity_basis_dist_lt - theorem Metric.uniformity_basis_dist_pow - theorem Metric.uniformity_basis_dist_rat - theorem Metric.uniformity_edist - theorem Metric.uniformity_edist_aux - theorem Metric.uniformity_eq_comap_nhds_zero - theorem MulOpposite.dist_op - theorem MulOpposite.dist_unop - theorem MulOpposite.nndist_op - theorem MulOpposite.nndist_unop - theorem NNReal.dist_eq - theorem NNReal.le_add_nndist - theorem NNReal.nndist_eq - theorem NNReal.nndist_zero_eq_val' - theorem NNReal.nndist_zero_eq_val - theorem Prod.dist_eq - def PseudoEMetricSpace.toPseudoMetricSpace - def PseudoEMetricSpace.toPseudoMetricSpaceOfDist - theorem PseudoMetricSpace.ext - def PseudoMetricSpace.induced - def PseudoMetricSpace.ofDistTopology - def PseudoMetricSpace.replaceBornology - theorem PseudoMetricSpace.replaceBornology_eq - def PseudoMetricSpace.replaceTopology - theorem PseudoMetricSpace.replaceTopology_eq - def PseudoMetricSpace.replaceUniformity - theorem PseudoMetricSpace.replaceUniformity_eq - theorem Real.Icc_eq_closedBall - theorem Real.Ioo_eq_ball - theorem Real.ball_eq_Ioo - theorem Real.closedBall_eq_Icc - theorem Real.dist_0_eq_abs - theorem Real.dist_eq - theorem Real.dist_le_of_mem_Icc - theorem Real.dist_le_of_mem_Icc_01 - theorem Real.dist_le_of_mem_pi_Icc - theorem Real.dist_le_of_mem_uIcc - theorem Real.dist_left_le_of_mem_uIcc - theorem Real.dist_right_le_of_mem_uIcc - theorem Real.nndist_eq' - theorem Real.nndist_eq - theorem Subtype.dist_eq - theorem Subtype.nndist_eq - theorem TotallyBounded.isBounded - theorem ULift.dist_eq - theorem ULift.dist_up_up - theorem ULift.nndist_eq - theorem ULift.nndist_up_up - def UniformInducing.comapPseudoMetricSpace - def UniformSpace.ofDist - theorem abs_dist - theorem abs_dist_sub_le - theorem ball_pi' - theorem ball_pi - theorem ball_prod_same - theorem cauchySeq_bdd - theorem cauchySeq_iff_le_tendsto_0 - theorem cauchySeq_iff_tendsto_dist_atTop_0 - theorem cauchySeq_of_le_tendsto_0' - theorem cauchySeq_of_le_tendsto_0 - theorem closedBall_pi' - theorem closedBall_pi - theorem closedBall_prod_same - theorem coe_nndist - theorem coe_nnreal_ennreal_nndist - theorem comap_dist_left_atTop_eq_cocompact - theorem continuous_dist - theorem continuous_iff_continuous_dist - theorem continuous_nndist - theorem dist_comm - theorem dist_dist_dist_le - theorem dist_dist_dist_le_left - theorem dist_dist_dist_le_right - theorem dist_edist - theorem dist_le_Ico_sum_dist - theorem dist_le_Ico_sum_of_dist_le - theorem dist_le_coe - theorem dist_le_pi_dist - theorem dist_le_range_sum_dist - theorem dist_le_range_sum_of_dist_le - theorem dist_lt_coe - theorem dist_nndist - theorem dist_nonneg - theorem dist_pi_const - theorem dist_pi_const_le - theorem dist_pi_def - theorem dist_pi_eq_iff - theorem dist_pi_le_iff' - theorem dist_pi_le_iff - theorem dist_pi_lt_iff - theorem dist_prod_same_left - theorem dist_prod_same_right - theorem dist_self - theorem dist_triangle4 - theorem dist_triangle4_left - theorem dist_triangle4_right - theorem dist_triangle - theorem dist_triangle_left - theorem dist_triangle_right - theorem edist_dist - theorem edist_le_coe - theorem edist_le_ofReal - theorem edist_lt_coe - theorem edist_lt_ofReal - theorem edist_lt_top - theorem edist_ne_top - theorem edist_nndist - theorem eventually_closedBall_subset - theorem exists_lt_subset_ball - theorem exists_pos_lt_subset_ball - theorem finite_cover_balls_of_compact - theorem isCompact_sphere - theorem lebesgue_number_lemma_of_metric - theorem lebesgue_number_lemma_of_metric_sUnion - theorem nhds_comap_dist - theorem nndist_comm - theorem nndist_dist - theorem nndist_edist - theorem nndist_le_pi_nndist - theorem nndist_pi_const - theorem nndist_pi_const_le - theorem nndist_pi_def - theorem nndist_pi_eq_iff - theorem nndist_pi_le_iff - theorem nndist_pi_lt_iff - theorem nndist_self - theorem nndist_triangle - theorem nndist_triangle_left - theorem nndist_triangle_right - theorem properSpace_of_compact_closedBall_of_le - theorem sphere_pi - theorem sphere_prod - theorem squeeze_zero' - theorem squeeze_zero - theorem swap_dist - theorem tendsto_cocompact_of_tendsto_dist_comp_atTop - theorem tendsto_dist_left_cocompact_atTop - theorem tendsto_dist_right_cocompact_atTop - theorem tendsto_iff_dist_tendsto_zero - theorem tendsto_iff_of_dist - theorem tendsto_uniformity_iff_dist_tendsto_zero - theorem totallyBounded_Icc - theorem totallyBounded_Ico - theorem totallyBounded_Ioc - theorem totallyBounded_Ioo - theorem uniformContinuous_dist - theorem uniformContinuous_nndist Added Mathlib/Topology/MetricSpace/Bounded.lean + theorem Bornology.IsBounded.isCompact_closure + theorem Bornology.IsBounded.subset_ball + theorem Bornology.IsBounded.subset_ball_lt + theorem Bornology.IsBounded.subset_closedBall + theorem Bornology.IsBounded.subset_closedBall_lt + theorem CauchySeq.isBounded_range + theorem IsCompact.isBounded + theorem IsComplete.nonempty_iInter_of_nonempty_biInter + def Mathlib.Meta.Positivity.evalDiam + theorem Metric.cobounded_eq_cocompact + theorem Metric.cobounded_le_cocompact + theorem Metric.comap_dist_left_atTop + theorem Metric.comap_dist_right_atTop + theorem Metric.compactSpace_iff_isBounded_univ + theorem Metric.diam_ball + theorem Metric.diam_closedBall + theorem Metric.diam_empty + theorem Metric.diam_eq_zero_of_unbounded + theorem Metric.diam_le_of_forall_dist_le + theorem Metric.diam_le_of_forall_dist_le_of_nonempty + theorem Metric.diam_le_of_subset_closedBall + theorem Metric.diam_mono + theorem Metric.diam_nonneg + theorem Metric.diam_pair + theorem Metric.diam_singleton + theorem Metric.diam_subsingleton + theorem Metric.diam_triple + theorem Metric.diam_union' + theorem Metric.diam_union + theorem Metric.diam_univ_of_noncompact + theorem Metric.disjoint_cobounded_nhds + theorem Metric.disjoint_cobounded_nhdsSet + theorem Metric.disjoint_nhdsSet_cobounded + theorem Metric.disjoint_nhds_cobounded + theorem Metric.dist_le_diam_of_mem' + theorem Metric.dist_le_diam_of_mem + theorem Metric.ediam_eq_top_iff_unbounded + theorem Metric.ediam_le_of_forall_dist_le + theorem Metric.ediam_of_unbounded + theorem Metric.ediam_univ_eq_top_iff_noncompact + theorem Metric.ediam_univ_of_noncompact + theorem Metric.exists_isOpen_isBounded_image_inter_of_isCompact_of_continuousOn + theorem Metric.exists_isOpen_isBounded_image_inter_of_isCompact_of_forall_continuousWithinAt + theorem Metric.exists_isOpen_isBounded_image_of_isCompact_of_continuousOn + theorem Metric.exists_isOpen_isBounded_image_of_isCompact_of_forall_continuousAt + theorem Metric.finite_isBounded_inter_isClosed + theorem Metric.hasBasis_cobounded_compl_ball + theorem Metric.hasBasis_cobounded_compl_closedBall + theorem Metric.isBounded_Icc + theorem Metric.isBounded_Ico + theorem Metric.isBounded_Ioc + theorem Metric.isBounded_Ioo + theorem Metric.isBounded_ball + theorem Metric.isBounded_closedBall + theorem Metric.isBounded_closure_iff + theorem Metric.isBounded_closure_of_isBounded + theorem Metric.isBounded_iff_ediam_ne_top + theorem Metric.isBounded_iff_subset_ball + theorem Metric.isBounded_iff_subset_closedBall + theorem Metric.isBounded_image_iff + theorem Metric.isBounded_of_bddAbove_of_bddBelow + theorem Metric.isBounded_of_compactSpace + theorem Metric.isBounded_range_iff + theorem Metric.isBounded_range_of_cauchy_map_cofinite + theorem Metric.isBounded_range_of_tendsto + theorem Metric.isBounded_range_of_tendsto_cofinite + theorem Metric.isBounded_range_of_tendsto_cofinite_uniformity + theorem Metric.isBounded_sphere + theorem Metric.isCompact_iff_isClosed_bounded + theorem Metric.isCompact_of_isClosed_isBounded + theorem Metric.nonempty_iInter_of_nonempty_biInter + theorem Metric.tendsto_dist_left_atTop_iff + theorem Metric.tendsto_dist_left_cobounded_atTop + theorem Metric.tendsto_dist_right_atTop_iff + theorem Metric.tendsto_dist_right_cobounded_atTop + theorem TotallyBounded.isBounded + theorem comap_dist_left_atTop_eq_cocompact + theorem tendsto_cocompact_of_tendsto_dist_comp_atTop + theorem tendsto_dist_left_cocompact_atTop + theorem tendsto_dist_right_cocompact_atTop Added Mathlib/Topology/MetricSpace/Cauchy.lean + theorem Metric.cauchySeq_iff' + theorem Metric.cauchySeq_iff + theorem Metric.complete_of_cauchySeq_tendsto + theorem Metric.complete_of_convergent_controlled_sequences + theorem Metric.uniformCauchySeqOn_iff + theorem cauchySeq_bdd + theorem cauchySeq_iff_le_tendsto_0 + theorem cauchySeq_of_le_tendsto_0' + theorem cauchySeq_of_le_tendsto_0 Modified Mathlib/Topology/MetricSpace/Equicontinuity.lean Modified Mathlib/Topology/MetricSpace/Lipschitz.lean Added Mathlib/Topology/MetricSpace/PseudoMetric.lean + def Bornology.ofDist + theorem ContinuousOn.isSeparable_image + theorem Dense.exists_dist_lt + theorem Filter.Tendsto.congr_dist + theorem Fin.dist_insertNth_insertNth + theorem Fin.nndist_insertNth_insertNth + def Inducing.comapPseudoMetricSpace + theorem IsCompact.isSeparable + def Mathlib.Meta.Positivity.evalDist + def Metric.ball + theorem Metric.ball_disjoint_ball + theorem Metric.ball_disjoint_closedBall + theorem Metric.ball_eq_ball' + theorem Metric.ball_eq_ball + theorem Metric.ball_eq_empty + theorem Metric.ball_half_subset + theorem Metric.ball_mem_nhds + theorem Metric.ball_subset + theorem Metric.ball_subset_ball' + theorem Metric.ball_subset_ball + theorem Metric.ball_subset_closedBall + theorem Metric.ball_subset_interior_closedBall + theorem Metric.ball_union_sphere + theorem Metric.ball_zero + def Metric.closedBall + theorem Metric.closedBall_diff_ball + theorem Metric.closedBall_diff_sphere + theorem Metric.closedBall_disjoint_ball + theorem Metric.closedBall_disjoint_closedBall + theorem Metric.closedBall_eq_bInter_ball + theorem Metric.closedBall_eq_empty + theorem Metric.closedBall_eq_sphere_of_nonpos + theorem Metric.closedBall_mem_nhds + theorem Metric.closedBall_mem_nhds_of_mem + theorem Metric.closedBall_subset_ball' + theorem Metric.closedBall_subset_ball + theorem Metric.closedBall_subset_closedBall' + theorem Metric.closedBall_subset_closedBall + theorem Metric.closedBall_zero' + theorem Metric.closure_ball_subset_closedBall + theorem Metric.closure_closedBall + theorem Metric.closure_sphere + theorem Metric.continuousAt_iff' + theorem Metric.continuousAt_iff + theorem Metric.continuousOn_iff' + theorem Metric.continuousOn_iff + theorem Metric.continuousWithinAt_iff' + theorem Metric.continuousWithinAt_iff + theorem Metric.continuous_iff' + theorem Metric.continuous_iff + theorem Metric.controlled_of_uniformEmbedding + theorem Metric.denseRange_iff + theorem Metric.dense_iff + theorem Metric.dist_le_add_of_nonempty_closedBall_inter_closedBall + theorem Metric.dist_lt_add_of_nonempty_ball_inter_ball + theorem Metric.dist_lt_add_of_nonempty_ball_inter_closedBall + theorem Metric.dist_lt_add_of_nonempty_closedBall_inter_ball + theorem Metric.dist_mem_uniformity + theorem Metric.eball_top_eq_univ + theorem Metric.emetric_ball + theorem Metric.emetric_ball_nnreal + theorem Metric.emetric_ball_top + theorem Metric.emetric_closedBall + theorem Metric.emetric_closedBall_nnreal + theorem Metric.eventually_isCompact_closedBall + theorem Metric.eventually_nhds_iff + theorem Metric.eventually_nhds_iff_ball + theorem Metric.eventually_nhds_prod_iff + theorem Metric.eventually_prod_nhds_iff + theorem Metric.exists_ball_inter_eq_singleton_of_mem_discrete + theorem Metric.exists_ball_subset_ball + theorem Metric.exists_closedBall_inter_eq_singleton_of_discrete + theorem Metric.exists_isCompact_closedBall + theorem Metric.exists_isLocalMin_mem_ball + theorem Metric.exists_lt_mem_ball_of_mem_ball + theorem Metric.finite_approx_of_totallyBounded + theorem Metric.forall_of_forall_mem_ball + theorem Metric.forall_of_forall_mem_closedBall + theorem Metric.frontier_ball_subset_sphere + theorem Metric.frontier_closedBall_subset_sphere + theorem Metric.iUnion_ball_nat + theorem Metric.iUnion_ball_nat_succ + theorem Metric.iUnion_closedBall_nat + theorem Metric.iUnion_inter_closedBall_nat + theorem Metric.inseparable_iff + theorem Metric.isBounded_iff + theorem Metric.isBounded_iff_eventually + theorem Metric.isBounded_iff_exists_ge + theorem Metric.isBounded_iff_nndist + theorem Metric.isClosed_ball + theorem Metric.isClosed_sphere + theorem Metric.isOpen_ball + theorem Metric.isOpen_iff + theorem Metric.isOpen_singleton_iff + theorem Metric.mem_ball' + theorem Metric.mem_ball + theorem Metric.mem_ball_comm + theorem Metric.mem_ball_self + theorem Metric.mem_closedBall' + theorem Metric.mem_closedBall + theorem Metric.mem_closedBall_comm + theorem Metric.mem_closedBall_self + theorem Metric.mem_closure_iff + theorem Metric.mem_closure_range_iff + theorem Metric.mem_closure_range_iff_nat + theorem Metric.mem_nhdsWithin_iff + theorem Metric.mem_nhds_iff + theorem Metric.mem_of_closed' + theorem Metric.mem_sphere' + theorem Metric.mem_sphere + theorem Metric.mem_sphere_comm + theorem Metric.mem_uniformity_dist + theorem Metric.ne_of_mem_sphere + theorem Metric.nhdsWithin_basis_ball + theorem Metric.nhds_basis_ball + theorem Metric.nhds_basis_ball_inv_nat_pos + theorem Metric.nhds_basis_ball_inv_nat_succ + theorem Metric.nhds_basis_ball_pow + theorem Metric.nhds_basis_closedBall + theorem Metric.nhds_basis_closedBall_pow + theorem Metric.nonempty_ball + theorem Metric.nonempty_closedBall + theorem Metric.nonneg_of_mem_sphere + theorem Metric.pos_of_mem_ball + theorem Metric.secondCountable_of_almost_dense_set + def Metric.sphere + theorem Metric.sphere_disjoint_ball + theorem Metric.sphere_eq_empty_of_neg + theorem Metric.sphere_eq_empty_of_subsingleton + theorem Metric.sphere_isEmpty_of_subsingleton + theorem Metric.sphere_subset_ball + theorem Metric.sphere_subset_closedBall + theorem Metric.sphere_union_ball + theorem Metric.tendstoLocallyUniformlyOn_iff + theorem Metric.tendstoLocallyUniformly_iff + theorem Metric.tendstoUniformlyOnFilter_iff + theorem Metric.tendstoUniformlyOn_iff + theorem Metric.tendstoUniformly_iff + theorem Metric.tendsto_atTop' + theorem Metric.tendsto_atTop + theorem Metric.tendsto_nhds + theorem Metric.tendsto_nhdsWithin_nhds + theorem Metric.tendsto_nhdsWithin_nhdsWithin + theorem Metric.tendsto_nhds_nhds + theorem Metric.toUniformSpace_eq + theorem Metric.totallyBounded_iff + theorem Metric.totallyBounded_of_finite_discretization + theorem Metric.uniformContinuousOn_iff + theorem Metric.uniformContinuousOn_iff_le + theorem Metric.uniformContinuous_iff + theorem Metric.uniformity_basis_dist + theorem Metric.uniformity_basis_dist_inv_nat_pos + theorem Metric.uniformity_basis_dist_inv_nat_succ + theorem Metric.uniformity_basis_dist_le + theorem Metric.uniformity_basis_dist_le_pow + theorem Metric.uniformity_basis_dist_lt + theorem Metric.uniformity_basis_dist_pow + theorem Metric.uniformity_basis_dist_rat + theorem Metric.uniformity_edist + theorem Metric.uniformity_edist_aux + theorem Metric.uniformity_eq_comap_nhds_zero + theorem MulOpposite.dist_op + theorem MulOpposite.dist_unop + theorem MulOpposite.nndist_op + theorem MulOpposite.nndist_unop + theorem NNReal.dist_eq + theorem NNReal.le_add_nndist + theorem NNReal.nndist_eq + theorem NNReal.nndist_zero_eq_val' + theorem NNReal.nndist_zero_eq_val + theorem Prod.dist_eq + def PseudoEMetricSpace.toPseudoMetricSpace + def PseudoEMetricSpace.toPseudoMetricSpaceOfDist + theorem PseudoMetricSpace.ext + def PseudoMetricSpace.induced + def PseudoMetricSpace.ofDistTopology + def PseudoMetricSpace.replaceBornology + theorem PseudoMetricSpace.replaceBornology_eq + def PseudoMetricSpace.replaceTopology + theorem PseudoMetricSpace.replaceTopology_eq + def PseudoMetricSpace.replaceUniformity + theorem PseudoMetricSpace.replaceUniformity_eq + theorem Real.Icc_eq_closedBall + theorem Real.Ioo_eq_ball + theorem Real.ball_eq_Ioo + theorem Real.closedBall_eq_Icc + theorem Real.dist_0_eq_abs + theorem Real.dist_eq + theorem Real.dist_le_of_mem_Icc + theorem Real.dist_le_of_mem_Icc_01 + theorem Real.dist_le_of_mem_pi_Icc + theorem Real.dist_le_of_mem_uIcc + theorem Real.dist_left_le_of_mem_uIcc + theorem Real.dist_right_le_of_mem_uIcc + theorem Real.nndist_eq' + theorem Real.nndist_eq + theorem Subtype.dist_eq + theorem Subtype.nndist_eq + theorem ULift.dist_eq + theorem ULift.dist_up_up + theorem ULift.nndist_eq + theorem ULift.nndist_up_up + def UniformInducing.comapPseudoMetricSpace + def UniformSpace.ofDist + theorem abs_dist + theorem abs_dist_sub_le + theorem ball_pi' + theorem ball_pi + theorem ball_prod_same + theorem cauchySeq_iff_tendsto_dist_atTop_0 + theorem closedBall_pi' + theorem closedBall_pi + theorem closedBall_prod_same + theorem coe_nndist + theorem coe_nnreal_ennreal_nndist + theorem continuous_dist + theorem continuous_iff_continuous_dist + theorem continuous_nndist + theorem dist_comm + theorem dist_dist_dist_le + theorem dist_dist_dist_le_left + theorem dist_dist_dist_le_right + theorem dist_edist + theorem dist_le_Ico_sum_dist + theorem dist_le_Ico_sum_of_dist_le + theorem dist_le_coe + theorem dist_le_pi_dist + theorem dist_le_range_sum_dist + theorem dist_le_range_sum_of_dist_le + theorem dist_lt_coe + theorem dist_nndist + theorem dist_nonneg + theorem dist_pi_const + theorem dist_pi_const_le + theorem dist_pi_def + theorem dist_pi_eq_iff + theorem dist_pi_le_iff' + theorem dist_pi_le_iff + theorem dist_pi_lt_iff + theorem dist_prod_same_left + theorem dist_prod_same_right + theorem dist_self + theorem dist_triangle4 + theorem dist_triangle4_left + theorem dist_triangle4_right + theorem dist_triangle + theorem dist_triangle_left + theorem dist_triangle_right + theorem edist_dist + theorem edist_le_coe + theorem edist_le_ofReal + theorem edist_lt_coe + theorem edist_lt_ofReal + theorem edist_lt_top + theorem edist_ne_top + theorem edist_nndist + theorem eventually_closedBall_subset + theorem exists_lt_subset_ball + theorem exists_pos_lt_subset_ball + theorem finite_cover_balls_of_compact + theorem isCompact_sphere + theorem lebesgue_number_lemma_of_metric + theorem lebesgue_number_lemma_of_metric_sUnion + theorem nhds_comap_dist + theorem nndist_comm + theorem nndist_dist + theorem nndist_edist + theorem nndist_le_pi_nndist + theorem nndist_pi_const + theorem nndist_pi_const_le + theorem nndist_pi_def + theorem nndist_pi_eq_iff + theorem nndist_pi_le_iff + theorem nndist_pi_lt_iff + theorem nndist_self + theorem nndist_triangle + theorem nndist_triangle_left + theorem nndist_triangle_right + theorem properSpace_of_compact_closedBall_of_le + theorem sphere_pi + theorem sphere_prod + theorem squeeze_zero' + theorem squeeze_zero + theorem swap_dist + theorem tendsto_iff_dist_tendsto_zero + theorem tendsto_iff_of_dist + theorem tendsto_uniformity_iff_dist_tendsto_zero + theorem totallyBounded_Icc + theorem totallyBounded_Ico + theorem totallyBounded_Ioc + theorem totallyBounded_Ioo + theorem uniformContinuous_dist + theorem uniformContinuous_nndist Modified Mathlib/Topology/Sequences.lean 2023-10-30 08:37:46 0b6d797 feat(Data/Set): images of intervals under `Subtype.val` (#7653) Add `simp` lemmas for images of intervals in other intervals under `Subtype.val`. ESTIMATED CHANGES Modified Mathlib/Analysis/InnerProductSpace/GramSchmidtOrtho.lean Modified Mathlib/Data/Set/Intervals/Image.lean + theorem Set.image_subtype_val_Icc_Ici + theorem Set.image_subtype_val_Icc_Iic + theorem Set.image_subtype_val_Icc_Iio + theorem Set.image_subtype_val_Icc_Ioi + theorem Set.image_subtype_val_Ici_Ici + theorem Set.image_subtype_val_Ici_Iic + theorem Set.image_subtype_val_Ici_Iio + theorem Set.image_subtype_val_Ici_Ioi + theorem Set.image_subtype_val_Ico_Ici + theorem Set.image_subtype_val_Ico_Iic + theorem Set.image_subtype_val_Ico_Iio + theorem Set.image_subtype_val_Ico_Ioi + theorem Set.image_subtype_val_Iic_Ici + theorem Set.image_subtype_val_Iic_Iic + theorem Set.image_subtype_val_Iic_Iio + theorem Set.image_subtype_val_Iic_Ioi + theorem Set.image_subtype_val_Iio_Ici + theorem Set.image_subtype_val_Iio_Iic + theorem Set.image_subtype_val_Iio_Iio + theorem Set.image_subtype_val_Iio_Ioi + theorem Set.image_subtype_val_Ioc_Ici + theorem Set.image_subtype_val_Ioc_Iic + theorem Set.image_subtype_val_Ioc_Iio + theorem Set.image_subtype_val_Ioc_Ioi + theorem Set.image_subtype_val_Ioi_Ici + theorem Set.image_subtype_val_Ioi_Iic + theorem Set.image_subtype_val_Ioi_Iio + theorem Set.image_subtype_val_Ioi_Ioi + theorem Set.image_subtype_val_Ioo_Ici + theorem Set.image_subtype_val_Ioo_Iic + theorem Set.image_subtype_val_Ioo_Iio + theorem Set.image_subtype_val_Ioo_Ioi + theorem Set.preimage_subtype_val_Icc + theorem Set.preimage_subtype_val_Ici + theorem Set.preimage_subtype_val_Ico + theorem Set.preimage_subtype_val_Iic + theorem Set.preimage_subtype_val_Iio + theorem Set.preimage_subtype_val_Ioc + theorem Set.preimage_subtype_val_Ioi + theorem Set.preimage_subtype_val_Ioo Modified Mathlib/Data/Set/Intervals/OrdConnected.lean + theorem Set.image_subtype_val_Icc + theorem Set.image_subtype_val_Ico + theorem Set.image_subtype_val_Ioc + theorem Set.image_subtype_val_Ioo 2023-10-30 03:57:44 41b0e9c refactor: generalize Abs lemmas from rings to groups (#7976) Four lemmas are moved from [Algebra/Order/Monoid/Defs.lean](https://github.com/leanprover-community/mathlib4/pull/7976/files#diff-b7e2a9cad39a929d367ebafb50a8fee9a683847bfe6cf4965d26c8b73d938162) to [Algebra/Order/Group/Defs.lean](https://github.com/leanprover-community/mathlib4/pull/7976/files#diff-1ea79e1c68d33cde0e0d03b5cd88acada0fe81a37be3c91e0dbdf5734e81b824) and generalized Four lemmas are moved from [Algebra/Order/Ring/Abs.lean](https://github.com/leanprover-community/mathlib4/pull/7976/files#diff-df3e020492662385d4cf526fc26cd5d5292e333cecb7aa35591abbf597ff36d7) to [Algebra/Order/Group/Abs.lean](https://github.com/leanprover-community/mathlib4/pull/7976/files#diff-04fe7d4ab1d9e83e80baaa4ff56278e736e3ec0a4ddace3fa767ddc86c69821b) and generalized Four lemmas are added in [Algebra/Order/Monoid/Defs.lean](https://github.com/leanprover-community/mathlib4/pull/7976/files#diff-b7e2a9cad39a929d367ebafb50a8fee9a683847bfe6cf4965d26c8b73d938162). They're special cases of [one_le_pow_iff](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Algebra/GroupPower/Order.html#one_le_pow_iff), but I can't import the file without offending assert_not_exists. ESTIMATED CHANGES Modified Archive/Wiedijk100Theorems/AreaOfACircle.lean Modified Mathlib/Algebra/Order/Group/Abs.lean + theorem abs_cases + theorem abs_eq_neg_self + theorem abs_eq_self + theorem max_zero_add_max_neg_zero_eq_abs_self Modified Mathlib/Algebra/Order/Group/Defs.lean + theorem inv_le_self_iff + theorem inv_lt_self_iff + theorem le_inv_self_iff + theorem lt_inv_self_iff Modified Mathlib/Algebra/Order/Monoid/Defs.lean + theorem mul_self_le_one_iff + theorem mul_self_lt_one_iff + theorem one_le_mul_self_iff + theorem one_lt_mul_self_iff Modified Mathlib/Algebra/Order/Ring/Abs.lean - theorem abs_cases - theorem abs_eq_neg_self - theorem abs_eq_self - theorem max_zero_add_max_neg_zero_eq_abs_self Modified Mathlib/Algebra/Order/Ring/Defs.lean - theorem le_neg_self_iff - theorem lt_neg_self_iff - theorem neg_le_self_iff - theorem neg_lt_self_iff Modified Mathlib/MeasureTheory/Function/L1Space.lean 2023-10-30 03:09:05 0044ce8 refactor(FieldTheory/Adjoin): provide a better defeq for `⊥` (#7957) This means `(⊥ : IntermediateField F E).toSubalgebra = ⊥` is true by definition. Also adds `IntermediateField.map_bot` now that the proof is trivial. ESTIMATED CHANGES Modified Mathlib/FieldTheory/Adjoin.lean +/- theorem IntermediateField.bot_toSubalgebra +/- theorem IntermediateField.coe_bot + theorem IntermediateField.map_bot 2023-10-30 03:09:04 65ab68c feat: `∃ᶠ x in 𝓝 a, x < a` (#7941) * Add `frequently_lt_nhds` and `frequently_gt_nhds`. * Move some lemmas from `Topology/Order/Basic` to `Topology/Algebra/Order/LeftRight`. * Relax TC assumptions in `Filter.Eventually.exists_lt` (and `*_gt`). New versions assume `NeBot (𝓝[<] a)` and `NeBot (𝓝[>] a)`, so the latter one can be applied, e.g., to `((a : ℝ≥0) : ℝ≥0∞)`. From the Mandelbrot set connectedness project. Co-Authored-By: @girving ESTIMATED CHANGES Modified Mathlib/Topology/Algebra/Order/LeftRight.lean + theorem Filter.Eventually.exists_gt + theorem Filter.Eventually.exists_lt + theorem frequently_gt_nhds + theorem frequently_lt_nhds + theorem nhdsWithin_Ici_neBot + theorem nhdsWithin_Iic_neBot Modified Mathlib/Topology/Order/Basic.lean - theorem Filter.Eventually.exists_gt - theorem Filter.Eventually.exists_lt - theorem nhdsWithin_Ici_neBot - theorem nhdsWithin_Ici_self_neBot - theorem nhdsWithin_Iic_neBot - theorem nhdsWithin_Iic_self_neBot 2023-10-30 02:26:44 442eef6 chore: split `Topology.MetricSpace.Metrizable*` (#7912) Move - basic definitions to `Topology.Metrizable.Basic`, - Urysohn's metrization theorem to `Topology.Metrizable.Urysohns', and - metrizability of a uniform space with countably generated uniformity to `Topology.Metrizable.Uniform`. The next step is to redefine `Metrizable` as "uniformizable with countably generated uniformity" and make this definition available much earlier. ESTIMATED CHANGES Modified Counterexamples/SorgenfreyLine.lean Modified Mathlib.lean Modified Mathlib/Geometry/Manifold/Metrizable.lean Modified Mathlib/MeasureTheory/Constructions/BorelSpace/Metrizable.lean Modified Mathlib/Topology/Instances/Discrete.lean Modified Mathlib/Topology/Instances/ENNReal.lean Renamed Mathlib/Topology/MetricSpace/Metrizable.lean to Mathlib/Topology/Metrizable/Basic.lean - theorem TopologicalSpace.exists_embedding_l_infty - theorem TopologicalSpace.metrizableSpace_of_t3_second_countable Renamed Mathlib/Topology/MetricSpace/MetrizableUniformity.lean to Mathlib/Topology/Metrizable/Uniformity.lean Added Mathlib/Topology/Metrizable/Urysohn.lean + theorem TopologicalSpace.PseudoMetrizableSpace.of_regularSpace_secondCountableTopology + theorem TopologicalSpace.exists_embedding_l_infty + theorem TopologicalSpace.exists_inducing_l_infty + theorem TopologicalSpace.metrizableSpace_of_t3_second_countable 2023-10-30 00:16:29 eeb791d feat: more delaborators (#7964) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Data/Set/Basic.lean Renamed Mathlib/Util/PiNotation.lean to Mathlib/Util/Delaborators.lean + def delab_not_in Modified test/delaborators.lean Modified test/propose.lean 2023-10-29 23:01:10 5ce799c chore: bump aesop (#8011) This requires removing some rules that `aesop` rejects. They aren't needed, and in fact I think were never doing anything? ESTIMATED CHANGES Modified Mathlib/Data/Sym/Sym2.lean Modified Mathlib/Tactic/Continuity.lean Modified Mathlib/Tactic/Measurability.lean Modified lake-manifest.json 2023-10-29 21:47:08 c347095 chore: bump std (#8008) This bumps std up to and including the merge of leanprover/std4#321 ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Tactic.lean Modified Mathlib/Tactic/Common.lean Deleted Mathlib/Tactic/PrintPrefix.lean - def Lean.Elab.Command.elabPrintPrefix - structure Lean.Meta.FindOptions - def Lean.Meta.find - def Lean.Meta.findCore Modified lake-manifest.json 2023-10-29 21:47:07 8c5976f feat: sheaves for unions of Grothendieck topologies (#7961) A presheaf is a sheaf for a union of two grothendieck topologies iff it is a sheaf for each separately. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Sites/Coverage.lean + theorem CategoryTheory.Presieve.isSheaf_sup 2023-10-29 20:49:34 7b40926 chore: coe_ratCast remove note (#8017) Applies the suggestion in the porting note ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/Basic.lean +/- theorem algebraMap.coe_ratCast 2023-10-29 15:52:05 3a9b57c chore: update Mathlib for leanprover/std4#183 (#7982) ESTIMATED CHANGES Modified Mathlib/Analysis/BoxIntegral/Basic.lean Modified Mathlib/Data/Bool/Basic.lean - theorem Bool.and_comm - theorem Bool.and_left_comm - theorem Bool.and_not_self - theorem Bool.and_or_distrib_left - theorem Bool.and_or_distrib_right - theorem Bool.and_xor_distrib_left - theorem Bool.and_xor_distrib_right - theorem Bool.false_le - theorem Bool.le_true - theorem Bool.max_eq_or - theorem Bool.min_eq_and - theorem Bool.not_and - theorem Bool.not_and_self - theorem Bool.not_inj - theorem Bool.not_or - theorem Bool.not_or_self - theorem Bool.or_and_distrib_left - theorem Bool.or_and_distrib_right - theorem Bool.or_comm - theorem Bool.or_left_comm - theorem Bool.or_not_self - theorem Bool.xor_assoc - theorem Bool.xor_comm - theorem Bool.xor_false_left - theorem Bool.xor_false_right - theorem Bool.xor_left_comm - theorem Bool.xor_not_left - theorem Bool.xor_not_not - theorem Bool.xor_not_right Modified Mathlib/Init/Data/Bool/Basic.lean - def xor Modified Mathlib/Init/Data/Bool/Lemmas.lean - theorem Bool.true_xor - theorem Bool.xor_self - theorem Bool.xor_true Modified Mathlib/Init/Data/Nat/Bitwise.lean Modified Mathlib/Order/BoundedOrder.lean Modified lake-manifest.json 2023-10-29 15:21:32 a0343c1 fix: catch 'none' exception in Real.sqrt positivity extension (#8014) This example currently fails ```lean example (x : ℝ) : 0 ≤ Real.sqrt x := by positivity ``` due to the exception being thrown here: https://github.com/leanprover-community/mathlib4/blob/b56efa53d7479fda9740f364170cbaef34699dee/Mathlib/Tactic/Positivity/Core.lean#L304 It should succeed, because the junk value used for `sqrt` of a negative number is non-negative. This PR fixes it by catching the exception, a pattern used elsewhere: https://github.com/leanprover-community/mathlib4/blob/b56efa53d7479fda9740f364170cbaef34699dee/Mathlib/Tactic/Positivity/Core.lean#L325 ESTIMATED CHANGES Modified Mathlib/Data/Real/Sqrt.lean Modified test/positivity.lean 2023-10-29 11:56:41 b56efa5 feat(Analysis/Analytic): A few more analyticity lemmas (#7967) 1. Analytic at a point means analytic in a ball 2. In addition to `AnalyticAt.{smul,mul,pow}`, do `AnalyticOn.{smul,mul,pow}` Also change `AnalyticAt.smul` and `AnalyticAt.pow` to use pointwise `smul` and `pow` rather than function `smul` and `pow`, as I think this is more ergonomic when used in practice (from experience with https://github.com/girving/ray). ESTIMATED CHANGES Modified Mathlib/Analysis/Analytic/Basic.lean + theorem AnalyticAt.exists_ball_analyticOn Modified Mathlib/Analysis/Analytic/Constructions.lean +/- theorem AnalyticAt.mul +/- theorem AnalyticAt.pow +/- theorem AnalyticAt.smul + theorem AnalyticOn.mul + theorem AnalyticOn.pow + theorem AnalyticOn.smul 2023-10-29 04:04:31 a988ad9 feat: a unique cluster pt of a filter is its limit (#7944) If a filter has a unique cluster point in a compact set, then this point is a limit of the filter. We add four versions of this fact: - for a compact set or a compact space; - for a `ClusterPt` and `_ ≤ 𝓝 _` or `MapClusterPt` and `Filter.Tendsto _ _ (𝓝 _)`. Also - add `isCompact_iff_ultrafilter_le_nhds'` that uses `s ∈ f` instead of `↑f ≤ 𝓟 s`; - move `Ultrafilter.le_nhds_lim` to a more appropriate file. Motivated by a lemma in the Mandelbrot set connectedness project. Co-Authored-By: @girving ESTIMATED CHANGES Modified Mathlib/Topology/Compactness/Compact.lean + theorem IsCompact.le_nhds_of_unique_clusterPt + theorem IsCompact.tendsto_nhds_of_unique_mapClusterPt + theorem isCompact_iff_ultrafilter_le_nhds' + theorem le_nhds_of_unique_clusterPt + theorem tendsto_nhds_of_unique_mapClusterPt Modified Mathlib/Topology/Compactness/LocallyCompact.lean 2023-10-28 19:07:15 bab0575 feat: change `IsFreeGroup` to a `Prop` (#7698) Currently, the class `IsFreeGroup` contains data (namely, a specific set of generators). This is bad, as there are many sets of generators in a free group, and changing sets of generators happens all the time in geometric group theory. We switch to a design in which * we define `FreeGroupBasis`, following the definition and API of bases of vector spaces. Most existing API around `IsFreeGroup` is transferred to lemmas taking a free group basis as a variable. * The typeclass `IsFreeGroup` is Prop-valued, and requires only the existence of a free group basis. ESTIMATED CHANGES Modified Mathlib/GroupTheory/CoprodI.lean + def Monoid.CoprodI.FreeGroupBasis.coprodI Modified Mathlib/GroupTheory/FreeGroup/IsFreeGroup.lean + theorem FreeGroupBasis.ext_hom + theorem FreeGroupBasis.isFreeGroup + def FreeGroupBasis.lift + theorem FreeGroupBasis.map_apply + def FreeGroupBasis.ofFreeGroup + theorem FreeGroupBasis.ofFreeGroup_apply + def FreeGroupBasis.ofLift + def FreeGroupBasis.ofUniqueLift + theorem FreeGroupBasis.reindex_apply + theorem FreeGroupBasis.repr_apply_coe + structure FreeGroupBasis + def IsFreeGroup.Generators - def IsFreeGroup.MulEquiv + def IsFreeGroup.basis - theorem IsFreeGroup.lift'_eq_freeGroup_lift + theorem IsFreeGroup.ofLift - def IsFreeGroup.ofLift + theorem IsFreeGroup.ofMulEquiv - def IsFreeGroup.ofMulEquiv + theorem IsFreeGroup.ofUniqueLift - theorem IsFreeGroup.of_eq_freeGroup_of Modified Mathlib/GroupTheory/FreeGroup/NielsenSchreier.lean + theorem IsFreeGroupoid.SpanningTree.endIsFree - def IsFreeGroupoid.SpanningTree.endIsFree 2023-10-28 15:58:35 7b6b2a9 fix timezone and decoding issues in port status script (#8001) Fixes timezone and decoding issues in the `make_port_status.py` script. ESTIMATED CHANGES Modified scripts/make_port_status.py 2023-10-28 15:29:01 8063e2b refactor(CategoryTheory/Monoidal/Transport): flip the direction of `μIso` and `εIso` (#7922) Reversing these makes the API closer to that of `CategoryTheory.LaxMonoidalFunctor`, and doesn't seem to have much impact on proof difficulty. This also golfs a proof rather than attempting to fix the old one. ESTIMATED CHANGES Modified Mathlib/Algebra/Category/AlgebraCat/Monoidal.lean Modified Mathlib/CategoryTheory/Monoidal/Subcategory.lean Modified Mathlib/CategoryTheory/Monoidal/Transport.lean Modified Mathlib/LinearAlgebra/QuadraticForm/QuadraticModuleCat/Monoidal.lean 2023-10-28 14:53:25 2aead33 add @[inherit_doc] to equiv notation (#7998) This makes hovering over `≃` display the docstring for `Equiv` (if I've understood things correctly). ESTIMATED CHANGES Modified Mathlib/Logic/Equiv/Defs.lean 2023-10-28 11:22:32 d70b029 feat: Remove `Extensive` in favour of `FinitaryExtensive`. (#7731) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Extensive.lean + theorem CategoryTheory.FinitaryExtensive.isPullback_initial_to + theorem CategoryTheory.FinitaryExtensive.isPullback_initial_to_sigma_ι + theorem CategoryTheory.FinitaryExtensive.isVanKampen_finiteCoproducts + theorem CategoryTheory.FinitaryExtensive.isVanKampen_finiteCoproducts_Fin + theorem CategoryTheory.FinitaryExtensive.mono_ι + theorem CategoryTheory.FinitaryPreExtensive.hasPullbacks_of_is_coproduct + theorem CategoryTheory.FinitaryPreExtensive.isUniversal_finiteCoproducts + theorem CategoryTheory.FinitaryPreExtensive.isUniversal_finiteCoproducts_Fin + theorem CategoryTheory.FinitaryPreExtensive.sigma_desc_iso Modified Mathlib/CategoryTheory/Limits/VanKampen.lean + theorem CategoryTheory.IsUniversalColimit.of_iso + theorem CategoryTheory.IsUniversalColimit.precompose_isIso + theorem CategoryTheory.IsUniversalColimit.whiskerEquivalence + theorem CategoryTheory.IsUniversalColimit.whiskerEquivalence_iff + theorem CategoryTheory.isPullback_initial_to_of_cofan_isVanKampen + theorem CategoryTheory.isPullback_of_cofan_isVanKampen + theorem CategoryTheory.mono_of_cofan_isVanKampen Modified Mathlib/CategoryTheory/Sites/RegularExtensive.lean +/- def CategoryTheory.extensiveCoverage +/- theorem CategoryTheory.extensive_regular_generate_coherent 2023-10-27 21:59:33 77ccc30 fix: `push_neg` shouldn't unfold projections (#7989) ESTIMATED CHANGES Modified Mathlib/RingTheory/PowerSeries/Basic.lean Modified Mathlib/Tactic/PushNeg.lean Modified test/push_neg.lean + structure no_proj.G + def no_proj.g 2023-10-27 17:59:35 9045cd8 chore(Data/Bool/Basic): lemmas about min and max (#7984) ESTIMATED CHANGES Modified Mathlib/Data/Bool/Basic.lean +/- theorem Bool.beq_comm +/- theorem Bool.beq_eq_decide_eq + theorem Bool.max_eq_or + theorem Bool.min_eq_and 2023-10-27 17:59:34 09820a5 fix(FieldTheory): add the missing `_root_` lost during porting (#7981) You can tell this was a porting error because the `#align`s were weird. ESTIMATED CHANGES Modified Mathlib/FieldTheory/Adjoin.lean + theorem AlgEquiv.fieldRange_eq_top + theorem AlgHom.fieldRange_eq_map + theorem AlgHom.fieldRange_eq_top + theorem AlgHom.map_fieldRange - theorem IntermediateField.AlgEquiv.fieldRange_eq_top - theorem IntermediateField.AlgHom.fieldRange_eq_map - theorem IntermediateField.AlgHom.fieldRange_eq_top - theorem IntermediateField.AlgHom.map_fieldRange Modified Mathlib/FieldTheory/Normal.lean 2023-10-27 17:59:33 a795473 fix(Tactic/ApplyFun): do not silence errors (#7972) `MVarId.assumption` is dangerous because you can't tell whether it failed due to a crash or no suitable assumption. In the case of `apply_fun`, this meant the behavior would change depending on the recursion depth (or presumably heartbeat limit). ESTIMATED CHANGES Modified Mathlib/Tactic/ApplyFun.lean Modified test/apply_fun.lean + def funFamily 2023-10-27 17:59:32 220023c fix: resolve some `nolint simpNF` commands (#7929) ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/Subalgebra/Basic.lean +/- def AlgEquiv.subalgebraMap Modified Mathlib/Algebra/Category/GroupCat/Basic.lean Modified Mathlib/Algebra/Category/ModuleCat/Monoidal/Closed.lean Modified Mathlib/LinearAlgebra/Finrank.lean 2023-10-27 17:23:08 f52e271 chore: ofNat lemmas for Complex.normSq and abs (#7975) Having `_ofNat` lemmas is important for confluence given that for both `normSq` and `abs`, the `_ofReal` lemma is `@[simp]` and so is `ofReal_ofNat`. We already have lemmas for 0 and 1 from the bundled classes for both functions, so I'm only adding lemmas for the `AtLeastTwo` case here. ESTIMATED CHANGES Modified Mathlib/Analysis/Complex/Basic.lean Modified Mathlib/Data/Complex/Basic.lean + theorem Complex.abs_natCast + theorem Complex.abs_ofNat - theorem Complex.abs_of_nat +/- theorem Complex.abs_two + theorem Complex.normSq_ofNat Modified Mathlib/NumberTheory/LSeries.lean 2023-10-27 16:31:29 8903aac feat (Data/Polynomial/RingDivision): add lemmas for subtraction and negation (#7971) Adds two lemmas that show that negation and subtraction commute with polynomial division. ESTIMATED CHANGES Modified Mathlib/Data/Polynomial/RingDivision.lean + theorem Polynomial.neg_modByMonic + theorem Polynomial.sub_modByMonic 2023-10-27 15:47:55 377e205 chore: fix Lean3-ism in SetLike docs (#7986) Although most of the docs were ported, we still used old function syntax and `congr'` instead of `congr!`. I tested the new version on `Subgroup`. ESTIMATED CHANGES Modified Mathlib/Data/SetLike/Basic.lean 2023-10-27 15:47:54 b0a73d4 feat: Nontrivial instances for ExteriorAlgebra, CliffordAlgebra (#7985) Using methods suggested by @eric-wieser [Zulip discussion](https://leanprover.zulipchat.com/#narrow/stream/113489-new-members/topic/Nontrivial.20algebras) ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/CliffordAlgebra/Contraction.lean Modified Mathlib/LinearAlgebra/ExteriorAlgebra/Basic.lean 2023-10-27 14:12:39 b65c6a3 feat: the homology of short complexes of abelian groups (#7966) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Homology/ShortComplex/Ab.lean + def CategoryTheory.ShortComplex.abLeftHomologyData + theorem CategoryTheory.ShortComplex.abLeftHomologyData_f' + def CategoryTheory.ShortComplex.abToCycles + theorem CategoryTheory.ShortComplex.ab_exact_iff + theorem CategoryTheory.ShortComplex.ab_exact_iff_ker_le_range + theorem CategoryTheory.ShortComplex.ab_exact_iff_range_eq_ker + theorem CategoryTheory.ShortComplex.ab_zero_apply + theorem CategoryTheory.ShortComplex.exact_iff_surjective_abToCycles 2023-10-27 14:12:38 c5fe451 refactor: introduce the new homology API for homological complex and rename the old one (#7954) This PR renames definitions of the current homology API (adding a `'` to `homology`, `cycles`, `QuasiIso`) so as to create space for the development of the new homology API of homological complexes: this PR also contains the new definition of `HomologicalComplex.homology` which involves the homology theory of short complexes. ESTIMATED CHANGES Modified Mathlib/Algebra/Homology/Additive.lean Modified Mathlib/Algebra/Homology/Exact.lean + theorem CategoryTheory.Preadditive.exact_iff_homology'_zero - theorem CategoryTheory.Preadditive.exact_iff_homology_zero Modified Mathlib/Algebra/Homology/HomologicalComplex.lean - theorem ChainComplex.mk_d_2_0 + theorem ChainComplex.mk_d_2_1 Modified Mathlib/Algebra/Homology/Homology.lean + def ChainComplex.homology'SuccIso + def ChainComplex.homology'ZeroIso - def ChainComplex.homologySuccIso - def ChainComplex.homologyZeroIso + def CochainComplex.homology'SuccIso + def CochainComplex.homology'ZeroIso - def CochainComplex.homologySuccIso - def CochainComplex.homologyZeroIso + theorem HomologicalComplex.boundaries_le_cycles' - theorem HomologicalComplex.boundaries_le_cycles + def HomologicalComplex.cycles'IsoKernel + theorem HomologicalComplex.cycles'_eq_kernelSubobject - def HomologicalComplex.cyclesIsoKernel - theorem HomologicalComplex.cycles_eq_kernelSubobject +/- theorem HomologicalComplex.cycles_eq_top + def HomologicalComplex.homology'Iso - def HomologicalComplex.homologyIso + theorem HomologicalComplex.imageToKernel_as_boundariesToCycles' - theorem HomologicalComplex.imageToKernel_as_boundariesToCycles + def boundariesToCycles'NatTrans + theorem boundariesToCycles'_naturality - def boundariesToCyclesNatTrans - theorem boundariesToCycles_naturality + def cycles'Functor + theorem cycles'Map_arrow + theorem cycles'Map_comp + theorem cycles'Map_id - def cyclesFunctor - theorem cyclesMap_arrow - theorem cyclesMap_comp - theorem cyclesMap_id + def gradedHomology'Functor - def gradedHomologyFunctor + def homology'Functor - def homologyFunctor Modified Mathlib/Algebra/Homology/Homotopy.lean + theorem homology'_map_eq_of_homotopy - theorem homology_map_eq_of_homotopy Modified Mathlib/Algebra/Homology/HomotopyCategory.lean + def HomotopyCategory.homology'Factors + theorem HomotopyCategory.homology'Factors_hom_app + theorem HomotopyCategory.homology'Factors_inv_app + def HomotopyCategory.homology'Functor + theorem HomotopyCategory.homology'Functor_map_factors - def HomotopyCategory.homologyFactors - theorem HomotopyCategory.homologyFactors_hom_app - theorem HomotopyCategory.homologyFactors_inv_app - def HomotopyCategory.homologyFunctor - theorem HomotopyCategory.homologyFunctor_map_factors Modified Mathlib/Algebra/Homology/ImageToKernel.lean + theorem homology'.comp_right_eq_comp_left + theorem homology'.condition + def homology'.congr + def homology'.desc + theorem homology'.ext + def homology'.map + def homology'.mapIso + theorem homology'.map_comp + theorem homology'.map_desc + theorem homology'.map_id + def homology'.π + theorem homology'.π_desc + theorem homology'.π_map + theorem homology'.π_map_apply + def homology' + def homology'IsoCokernelImageToKernel' + def homology'IsoCokernelLift + def homology'OfZeroLeft + def homology'OfZeroRight + def homology'ZeroZero - theorem homology.comp_right_eq_comp_left - theorem homology.condition - def homology.congr - def homology.desc - theorem homology.ext - def homology.map - def homology.mapIso - theorem homology.map_comp - theorem homology.map_desc - theorem homology.map_id - def homology.π - theorem homology.π_desc - theorem homology.π_map - theorem homology.π_map_apply - def homology - def homologyIsoCokernelImageToKernel' - def homologyIsoCokernelLift - def homologyOfZeroLeft - def homologyOfZeroRight - def homologyZeroZero Modified Mathlib/Algebra/Homology/ModuleCat.lean + theorem ModuleCat.cycles'Map_toCycles' + theorem ModuleCat.cycles'_ext - theorem ModuleCat.cyclesMap_toCycles - theorem ModuleCat.cycles_ext + theorem ModuleCat.homology'_ext' + theorem ModuleCat.homology'_ext - theorem ModuleCat.homology_ext' - theorem ModuleCat.homology_ext Modified Mathlib/Algebra/Homology/Opposite.lean + def HomologicalComplex.homology'OpDef + def HomologicalComplex.homology'UnopDef - def HomologicalComplex.homologyOpDef - def HomologicalComplex.homologyUnopDef + def homology'Op + def homology'Unop - def homologyOp - def homologyUnop Modified Mathlib/Algebra/Homology/QuasiIso.lean + theorem CategoryTheory.Functor.quasiIso'_of_map_quasiIso' - theorem CategoryTheory.Functor.quasiIso_of_map_quasiIso +/- theorem HomologicalComplex.Hom.fromSingle₀KernelAtZeroIso_inv_eq +/- theorem HomologicalComplex.Hom.from_single₀_exact_at_succ +/- theorem HomologicalComplex.Hom.from_single₀_exact_f_d_at_zero +/- theorem HomologicalComplex.Hom.from_single₀_mono_at_zero +/- theorem HomologicalComplex.Hom.toSingle₀CokernelAtZeroIso_hom_eq +/- theorem HomologicalComplex.Hom.to_single₀_epi_at_zero +/- theorem HomologicalComplex.Hom.to_single₀_exact_at_succ +/- theorem HomologicalComplex.Hom.to_single₀_exact_d_f_at_zero + theorem HomotopyEquiv.toQuasiIso' + theorem HomotopyEquiv.toQuasiIso'_inv - theorem HomotopyEquiv.toQuasiIso - theorem HomotopyEquiv.toQuasiIso_inv + theorem quasiIso'_of_comp_left + theorem quasiIso'_of_comp_right - theorem quasiIso_of_comp_left - theorem quasiIso_of_comp_right Modified Mathlib/Algebra/Homology/ShortComplex/HomologicalComplex.lean Modified Mathlib/Algebra/Homology/Single.lean Modified Mathlib/CategoryTheory/Abelian/Homology.lean + theorem homology'.condition_ι + theorem homology'.condition_π' + def homology'.desc' + theorem homology'.hom_from_ext + theorem homology'.hom_to_ext + def homology'.lift + theorem homology'.lift_ι + theorem homology'.map_eq_desc'_lift_left + theorem homology'.map_eq_desc'_lift_right + theorem homology'.map_eq_lift_desc'_left + theorem homology'.map_eq_lift_desc'_right + theorem homology'.map_ι + def homology'.ι + def homology'.π' + theorem homology'.π'_desc' + theorem homology'.π'_eq_π + theorem homology'.π'_map + theorem homology'.π'_ι + def homology'IsoKernelDesc - theorem homology.condition_ι - theorem homology.condition_π' - def homology.desc' - theorem homology.hom_from_ext - theorem homology.hom_to_ext - def homology.lift - theorem homology.lift_ι - theorem homology.map_eq_desc'_lift_left - theorem homology.map_eq_desc'_lift_right - theorem homology.map_eq_lift_desc'_left - theorem homology.map_eq_lift_desc'_right - theorem homology.map_ι - def homology.ι - def homology.π' - theorem homology.π'_desc' - theorem homology.π'_eq_π - theorem homology.π'_map - theorem homology.π'_ι - def homologyIsoKernelDesc Modified Mathlib/CategoryTheory/Abelian/InjectiveResolution.lean Modified Mathlib/CategoryTheory/Abelian/LeftDerived.lean Modified Mathlib/CategoryTheory/Abelian/Projective.lean Modified Mathlib/CategoryTheory/Abelian/RightDerived.lean Modified Mathlib/CategoryTheory/Functor/LeftDerived.lean Modified Mathlib/RepresentationTheory/GroupCohomology/Basic.lean Modified Mathlib/RepresentationTheory/GroupCohomology/Resolution.lean + theorem groupCohomology.resolution.quasiIso'OfForget₂εToSingle₀ - theorem groupCohomology.resolution.quasiIsoOfForget₂εToSingle₀ 2023-10-27 13:10:02 a6c4c7e feat: Fintype.prod_prod_type (#7955) ESTIMATED CHANGES Modified Mathlib/Data/Fintype/BigOperators.lean + theorem Fintype.prod_prod_type' + theorem Fintype.prod_prod_type + theorem Fintype.prod_prod_type_right' + theorem Fintype.prod_prod_type_right 2023-10-27 12:02:32 0608933 chore: bump aesop, incompletely (#7980) ESTIMATED CHANGES Modified lake-manifest.json 2023-10-27 10:36:44 7a2492c add minimum_of_length_pos_mem (#7974) add `minimum_of_length_pos_mem` to `Mathlib/Data/List` ESTIMATED CHANGES Modified Mathlib/Data/List/MinMax.lean + theorem List.maximum_of_length_pos_mem + theorem List.minimum_of_length_pos_mem 2023-10-27 09:57:00 02b5c76 feat(RepresentationTheory/GroupCohomology): add some API for group cohomology in low degree (#7734) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/RepresentationTheory/GroupCohomology/Basic.lean + theorem groupCohomology.inhomogeneousCochains.d_def Added Mathlib/RepresentationTheory/GroupCohomology/LowDegree.lean + def groupCohomology.H1_π + def groupCohomology.H2_π + def groupCohomology.dOne + theorem groupCohomology.dOne_comp_dZero + theorem groupCohomology.dOne_comp_eq + def groupCohomology.dTwo + theorem groupCohomology.dTwo_comp_dOne + theorem groupCohomology.dTwo_comp_eq + def groupCohomology.dZero + theorem groupCohomology.dZero_comp_eq + theorem groupCohomology.dZero_ker_eq_invariants + theorem groupCohomology.mem_oneCoboundaries_of_dZero_apply + theorem groupCohomology.mem_oneCoboundaries_of_mem_range + theorem groupCohomology.mem_oneCocycles_def + theorem groupCohomology.mem_oneCocycles_iff + theorem groupCohomology.mem_range_of_mem_oneCoboundaries + theorem groupCohomology.mem_range_of_mem_twoCoboundaries + theorem groupCohomology.mem_twoCoboundaries_of_dOne_apply + theorem groupCohomology.mem_twoCoboundaries_of_mem_range + theorem groupCohomology.mem_twoCocycles_def + theorem groupCohomology.mem_twoCocycles_iff + def groupCohomology.oneCoboundaries + def groupCohomology.oneCochainsLinearEquiv + def groupCohomology.oneCocycles + theorem groupCohomology.oneCocycles_map_inv + theorem groupCohomology.oneCocycles_map_one + def groupCohomology.threeCochainsLinearEquiv + def groupCohomology.twoCoboundaries + def groupCohomology.twoCochainsLinearEquiv + def groupCohomology.twoCocycles + theorem groupCohomology.twoCocycles_map_one_fst + theorem groupCohomology.twoCocycles_map_one_snd + theorem groupCohomology.twoCocycles_ρ_map_inv_sub_map_inv + def groupCohomology.zeroCochainsLinearEquiv 2023-10-27 08:33:36 d8f3f71 chore: bump std (#7979) ESTIMATED CHANGES Modified lake-manifest.json 2023-10-27 08:10:44 257fd3f feat: more properties of homology in preadditive categories (#7817) This PR also introduces the notion of homotopy of morphisms between short complexes in preadditive categories. ESTIMATED CHANGES Modified Mathlib/Algebra/Homology/ShortComplex/Preadditive.lean + def CategoryTheory.ShortComplex.HomologyMapData.add + def CategoryTheory.ShortComplex.HomologyMapData.neg + structure CategoryTheory.ShortComplex.Homotopy + def CategoryTheory.ShortComplex.RightHomologyMapData.add + def CategoryTheory.ShortComplex.RightHomologyMapData.neg + theorem CategoryTheory.ShortComplex.homologyMap'_add + theorem CategoryTheory.ShortComplex.homologyMap'_neg + theorem CategoryTheory.ShortComplex.homologyMap'_sub + theorem CategoryTheory.ShortComplex.homologyMap_add + theorem CategoryTheory.ShortComplex.homologyMap_neg + theorem CategoryTheory.ShortComplex.homologyMap_sub + theorem CategoryTheory.ShortComplex.opcyclesMap'_add + theorem CategoryTheory.ShortComplex.opcyclesMap'_neg + theorem CategoryTheory.ShortComplex.opcyclesMap'_sub + theorem CategoryTheory.ShortComplex.opcyclesMap_add + theorem CategoryTheory.ShortComplex.opcyclesMap_neg + theorem CategoryTheory.ShortComplex.opcyclesMap_sub + theorem CategoryTheory.ShortComplex.rightHomologyMap'_add + theorem CategoryTheory.ShortComplex.rightHomologyMap'_neg + theorem CategoryTheory.ShortComplex.rightHomologyMap'_sub + theorem CategoryTheory.ShortComplex.rightHomologyMap_add + theorem CategoryTheory.ShortComplex.rightHomologyMap_neg + theorem CategoryTheory.ShortComplex.rightHomologyMap_sub 2023-10-27 07:47:56 dc43514 feat: a split short complex is exact (#7816) ESTIMATED CHANGES Modified Mathlib/Algebra/Homology/ShortComplex/Exact.lean + theorem CategoryTheory.ShortComplex.QuasiIso.exact_iff + theorem CategoryTheory.ShortComplex.Splitting.epi_g + theorem CategoryTheory.ShortComplex.Splitting.exact + theorem CategoryTheory.ShortComplex.Splitting.ext_r + theorem CategoryTheory.ShortComplex.Splitting.ext_s + theorem CategoryTheory.ShortComplex.Splitting.g_s + theorem CategoryTheory.ShortComplex.Splitting.isSplitEpi_g + theorem CategoryTheory.ShortComplex.Splitting.isSplitMono_f + theorem CategoryTheory.ShortComplex.Splitting.mono_f + theorem CategoryTheory.ShortComplex.Splitting.r_f + theorem CategoryTheory.ShortComplex.Splitting.s_r + def CategoryTheory.ShortComplex.Splitting.splitEpi_g + def CategoryTheory.ShortComplex.Splitting.splitMono_f + structure CategoryTheory.ShortComplex.Splitting + theorem CategoryTheory.ShortComplex.exact_of_f_is_kernel + theorem CategoryTheory.ShortComplex.exact_of_g_is_cokernel 2023-10-27 07:19:54 5f258eb doc(Algebra/DualNumber): notation docstrings (#7969) ESTIMATED CHANGES Modified Mathlib/Algebra/DualNumber.lean 2023-10-27 06:11:52 e3f29f2 feat: inequalities of decreasing lists (#7896) ESTIMATED CHANGES Modified Mathlib/Data/List/Chain.lean + theorem List.Chain'.cons_of_le 2023-10-27 01:06:27 7c56cc1 chore: better error handling in congr! (#7945) ESTIMATED CHANGES Modified Mathlib/Tactic/Convert.lean Added test/convert2.lean 2023-10-26 23:50:21 2ebf8b9 chore: allow more heartbeats in Algebra/Jordan/Basic (#7952) This was already extremely close to the limit, and becomes a tiny bit over on `nightly-2023-10-26` (no significant overall change, see discussion at https://github.com/leanprover/lean4/pull/2714#issuecomment-1779912951). ESTIMATED CHANGES Modified Mathlib/Algebra/Jordan/Basic.lean 2023-10-26 22:15:23 57d9c35 feat(CategoryTheory/Adhesive): Sheaf toposes are finitary extensive and adhesive (#7721) Port of https://github.com/leanprover-community/mathlib/pull/17637 ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Adhesive.lean + theorem CategoryTheory.adhesive_of_preserves_and_reflects + theorem CategoryTheory.adhesive_of_preserves_and_reflects_isomorphism + theorem CategoryTheory.adhesive_of_reflective Modified Mathlib/CategoryTheory/Extensive.lean + theorem CategoryTheory.finitaryExtensive_of_reflective Modified Mathlib/CategoryTheory/Limits/VanKampen.lean + theorem CategoryTheory.IsUniversalColimit.map_reflective + theorem CategoryTheory.IsVanKampenColimit.map_reflective Modified Mathlib/CategoryTheory/Sites/LeftExact.lean Modified Mathlib/CategoryTheory/Sites/Limits.lean 2023-10-26 21:10:38 c38470f feat: port positivity extension for Nat.ascFactorial (#7931) Adds a positivity extension for `Nat.ascFactorial`. (Compare to the lean 3 version: https://github.com/leanprover-community/mathlib/blob/3365b20c2ffa7c35e47e5209b89ba9abdddf3ffe/src/tactic/positivity.lean#L762-L767) Also updates the `Nat.factorial` positivity extension to use a more idiomatic `~q()` match. ESTIMATED CHANGES Modified Mathlib/Tactic/Positivity/Basic.lean + def Mathlib.Meta.Positivity.evalAscFactorial +/- def Mathlib.Meta.Positivity.evalFactorial Modified test/positivity.lean 2023-10-26 21:10:37 c09b989 feat(MeasureTheory/Integral/Lebesgue): add `set_lintegral_subtype` (#7679) * Add `MeasureTheory.set_lintegral_eq_subtype` and `MeasureTheory.set_lintegral_subtype`. * Add `MeasurableEmbedding.comap_map`, `MeasurableEmbedding.comap_restrict`, and `MeasurableEmbedding.restrict_comap`. * Drop measurability assumption in `MeasurableEmbedding.comap_preimage`. * Remove some empty lines. ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Integral/Bochner.lean + theorem MeasureTheory.integral_subtype + theorem MeasureTheory.integral_subtype_comap - theorem MeasureTheory.set_integral_eq_subtype' - theorem MeasureTheory.set_integral_eq_subtype Modified Mathlib/MeasureTheory/Integral/Lebesgue.lean + theorem MeasureTheory.lintegral_subtype_comap + theorem MeasureTheory.set_lintegral_subtype Modified Mathlib/MeasureTheory/Integral/Periodic.lean Modified Mathlib/MeasureTheory/Measure/MeasureSpace.lean + theorem MeasurableEmbedding.comap_map + theorem MeasurableEmbedding.comap_restrict + theorem MeasurableEmbedding.restrict_comap 2023-10-26 21:10:36 b8e3802 feat: Sublattices (#7549) Basic API for sublattices (there's more to come). ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Order/Sublattice.lean + theorem Sublattice.apply_coe_mem_map + theorem Sublattice.apply_mem_map_iff + theorem Sublattice.coe_bot + theorem Sublattice.coe_comap + theorem Sublattice.coe_copy + theorem Sublattice.coe_eq_empty + theorem Sublattice.coe_eq_univ + theorem Sublattice.coe_iInf + theorem Sublattice.coe_inclusion + theorem Sublattice.coe_inf' + theorem Sublattice.coe_inf + theorem Sublattice.coe_inj + theorem Sublattice.coe_map + theorem Sublattice.coe_mk + theorem Sublattice.coe_sInf + theorem Sublattice.coe_subtype + theorem Sublattice.coe_sup + theorem Sublattice.coe_top + def Sublattice.comap + theorem Sublattice.comap_comap + theorem Sublattice.comap_equiv_eq_map_symm + theorem Sublattice.comap_iInf + theorem Sublattice.comap_id + theorem Sublattice.comap_inf + theorem Sublattice.comap_mono + theorem Sublattice.comap_top + theorem Sublattice.copy_eq + theorem Sublattice.ext + theorem Sublattice.gc_map_comap + def Sublattice.inclusion + theorem Sublattice.inclusion_apply + theorem Sublattice.inclusion_injective + theorem Sublattice.inclusion_rfl + theorem Sublattice.infClosed + theorem Sublattice.isSublattice + theorem Sublattice.le_comap_iSup + theorem Sublattice.le_comap_sup + def Sublattice.map + theorem Sublattice.map_bot + theorem Sublattice.map_equiv_eq_comap_symm + theorem Sublattice.map_iSup + theorem Sublattice.map_id + theorem Sublattice.map_inf + theorem Sublattice.map_inf_le + theorem Sublattice.map_le_iff_le_comap + theorem Sublattice.map_map + theorem Sublattice.map_mono + theorem Sublattice.map_sup + theorem Sublattice.map_symm_eq_iff_eq_map + theorem Sublattice.map_top + theorem Sublattice.mem_carrier + theorem Sublattice.mem_comap + theorem Sublattice.mem_iInf + theorem Sublattice.mem_inf + theorem Sublattice.mem_map + theorem Sublattice.mem_map_equiv + theorem Sublattice.mem_map_of_mem + theorem Sublattice.mem_mk + theorem Sublattice.mem_sInf + theorem Sublattice.mem_top + theorem Sublattice.mk_inf_mk + theorem Sublattice.mk_le_mk + theorem Sublattice.mk_lt_mk + theorem Sublattice.mk_sup_mk + theorem Sublattice.not_mem_bot + theorem Sublattice.subsingleton_iff + def Sublattice.subtype + theorem Sublattice.subtype_apply + theorem Sublattice.subtype_comp_inclusion + theorem Sublattice.subtype_injective + theorem Sublattice.supClosed + def Sublattice.topEquiv + structure Sublattice 2023-10-26 19:51:53 8b0098c doc: typos in to_additive docs (#7956) ESTIMATED CHANGES Modified Mathlib/Algebra/BigOperators/Basic.lean Modified Mathlib/Algebra/BigOperators/Finprod.lean Modified Mathlib/Algebra/Group/Prod.lean 2023-10-26 19:14:04 168f6c2 chore(FieldTheory/IntermediateField): some lemmas about `toSubalgebra` (#7958) ESTIMATED CHANGES Modified Mathlib/FieldTheory/IntermediateField.lean +/- def IntermediateField.map +/- theorem IntermediateField.toSubalgebra_injective + theorem IntermediateField.toSubalgebra_map + theorem IntermediateField.toSubfield_map 2023-10-26 18:40:29 1ffe117 chore(SpecialFunctions/Pow): golf (#7960) ESTIMATED CHANGES Modified Mathlib/Analysis/SpecialFunctions/Pow/Real.lean 2023-10-26 17:29:41 9e92f67 feat(Data/*/Sqrt): decidability of `IsSquare` (#7935) [Zulip thread](https://leanprover.zulipchat.com/#narrow/stream/217875-Is-there-code-for-X.3F/topic/.E2.9C.94.20Case.20checking.20in.20combinatorics/near/398517440) ESTIMATED CHANGES Modified Mathlib/Algebra/Parity.lean + theorem even_ofMul_iff + theorem even_toAdd_iff + theorem isSquare_ofAdd_iff +/- theorem isSquare_op_iff + theorem isSquare_toMul_iff + theorem isSquare_unop_iff Modified Mathlib/Data/Int/Sqrt.lean Modified Mathlib/Data/Nat/Sqrt.lean Modified Mathlib/Data/Rat/Sqrt.lean 2023-10-26 16:24:49 645da3e feat (GroupTheory.Perm.Cycle.PossibleTypes) : cycleTypes of perm (#7433) Characterize the possible types of permutations: given `m : Multiset ℕ`, there are permutations in `Equiv.Perm α` with cycleType `m` if and only if `m.sum`is at most `Fintype.card α` and the members of `m` are at least 2. This result will be used in later PR which computes the cardinality of conjugacy classes in `Equiv.Perm α` and `alternatingGroup α` ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Data/Fintype/Card.lean + theorem List.exists_pw_disjoint_with_card Modified Mathlib/Data/List/Basic.lean + theorem List.disjoint_map + theorem List.disjoint_pmap Modified Mathlib/Data/List/Join.lean + theorem List.sublist_join Modified Mathlib/Data/List/Range.lean + theorem List.mem_mem_ranges_iff_lt_sum + def List.ranges + theorem List.ranges_disjoint + theorem List.ranges_join + theorem List.ranges_length + theorem List.ranges_nodup Added Mathlib/GroupTheory/Perm/Cycle/PossibleTypes.lean + theorem Equiv.Perm.exists_with_cycleType_iff 2023-10-26 14:48:11 8cd944d Fix: add two simp lemmas about complete lattice homs (#7959) related lemmas for sInf etc are simp ESTIMATED CHANGES Modified Mathlib/Order/Hom/CompleteLattice.lean +/- theorem map_iInf +/- theorem map_iSup 2023-10-26 14:48:10 2392a12 chore: use Qq in new Gamma positivity extension (#7900) Adds Qq static checking, as requested in this comment: https://github.com/leanprover-community/mathlib4/pull/7888#issuecomment-1777483059 The `have pa' : Q(..) := pa` lines are necessary to sort out typeclass instances of `LE` and `LT`. ESTIMATED CHANGES Modified Mathlib/Analysis/SpecialFunctions/Gamma/Basic.lean 2023-10-26 14:48:09 5f70385 feat: Flat triangles have aligned vertices (#7733) In a normed torsor over a strictly convex space, if the triangle inequality `dist a c ≤ dist a b + dist b c` is an equality, then `b` lies between `a` and `c`. ESTIMATED CHANGES Modified Mathlib/Analysis/Convex/Between.lean + theorem mem_segment_iff_wbtw Modified Mathlib/Analysis/Convex/Normed.lean + theorem Wbtw.dist_add_dist Modified Mathlib/Analysis/Convex/StrictConvexBetween.lean + theorem Isometry.affineIsometryOfStrictConvexSpace_apply + theorem Isometry.coe_affineIsometryOfStrictConvexSpace + theorem dist_add_dist_eq_iff + theorem eq_lineMap_of_dist_eq_mul_of_dist_eq_mul + theorem eq_midpoint_of_dist_eq_half Modified Mathlib/Analysis/Convex/StrictConvexSpace.lean - theorem Isometry.affineIsometryOfStrictConvexSpace_apply - theorem Isometry.coe_affineIsometryOfStrictConvexSpace - theorem dist_add_dist_eq_iff - theorem eq_lineMap_of_dist_eq_mul_of_dist_eq_mul - theorem eq_midpoint_of_dist_eq_half 2023-10-26 13:37:38 a5627a8 chore: bump dependencies (#7953) ESTIMATED CHANGES Modified lake-manifest.json Modified lakefile.lean 2023-10-26 13:37:37 b73fc7e feat: add `Metric.sphere_subset_ball` (#7946) From the Mandelbrot set boundedness project Co-Authored-By: @girving ESTIMATED CHANGES Modified Mathlib/Topology/MetricSpace/Basic.lean + theorem Metric.sphere_subset_ball 2023-10-26 13:37:36 e43f362 feat: path-connectedness is preserved by homeomorphisms (#7878) Mirrors the corresponding proofs for connectedness. ESTIMATED CHANGES Modified Mathlib/Topology/Connected/PathConnected.lean +/- theorem Filter.Tendsto.path_extend + theorem Homeomorph.isPathConnected_image + theorem Homeomorph.isPathConnected_preimage + theorem Inseparable.joinedIn +/- theorem IsPathConnected.exists_path_through_family' +/- theorem IsPathConnected.exists_path_through_family +/- theorem IsPathConnected.image' +/- theorem IsPathConnected.image +/- theorem Path.continuous_uncurry_extend_of_continuous_family +/- theorem Path.extend_extends' +/- theorem Path.extend_extends +/- theorem Path.extend_of_le_zero +/- theorem Path.extend_of_one_le +/- theorem Path.extend_range +/- def Path.map' +/- def Path.map +/- theorem Path.map_coe +/- theorem Path.map_map +/- theorem Path.map_symm +/- theorem Path.map_trans +/- theorem Path.refl_extend +/- theorem Path.refl_trans_refl +/- theorem Path.symm_cast +/- theorem Path.symm_continuous_family +/- theorem Path.trans_cast +/- theorem Path.trans_continuous_family +/- theorem Path.trans_range +/- theorem Path.truncate_const_continuous_family +/- theorem Path.truncate_continuous_family +/- theorem Path.truncate_one_one +/- theorem Path.truncate_range +/- theorem Path.truncate_self +/- theorem Path.truncate_zero_one +/- theorem Path.truncate_zero_zero + theorem Specializes.joinedIn Modified Mathlib/Topology/UnitInterval.lean 2023-10-26 12:30:34 57a0a1a feat: `Prod.fst : X × Y → X` is a closed map if `Y` is compact (#7936) From the Mandelbrot set connectedness project Co-Authored-By: @girving ESTIMATED CHANGES Modified Mathlib/Topology/Compactness/Compact.lean + theorem isClosedMap_fst_of_compactSpace Modified Mathlib/Topology/Constructions.lean + theorem isClosedMap_swap 2023-10-26 11:12:33 7adc50c chore: fix whitespace typos (#7950) ESTIMATED CHANGES Modified Mathlib/Algebra/Category/ModuleCat/Free.lean Modified Mathlib/Algebra/Hom/Freiman.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Kernels.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Pullbacks.lean Modified Mathlib/Data/List/Basic.lean Modified Mathlib/Data/Sym/Basic.lean Modified Mathlib/NumberTheory/NumberField/CanonicalEmbedding.lean +/- theorem NumberField.mixedEmbedding.disjoint_span_commMap_ker Modified Mathlib/NumberTheory/Padics/PadicVal.lean +/- theorem padicValNat_factorial_mul Modified Mathlib/Order/LocallyFinite.lean +/- theorem Set.finite_iff_bddAbove Modified Mathlib/RingTheory/Polynomial/Pochhammer.lean +/- theorem descPochhammer_natDegree 2023-10-26 11:12:32 1a6b42a chore: use more `∏` instead of `Finset.prod` (#7948) ESTIMATED CHANGES Modified Archive/Wiedijk100Theorems/SumOfPrimeReciprocalsDiverges.lean Modified Mathlib/LinearAlgebra/Vandermonde.lean 2023-10-26 11:12:31 7026a0c chore(Algebra/DualNumber): `ε` commutes (#7928) This doesn't generalize to `TrivSqZeroExt`, as we do not have a notion of `Commute` for `smul`. ESTIMATED CHANGES Modified Mathlib/Algebra/DualNumber.lean + theorem DualNumber.commute_eps_left + theorem DualNumber.commute_eps_right 2023-10-26 11:12:30 d8e5144 feat (RingTheory/PowerSeries) add formal derivative operation (#7820) Given a commutative semiring R, define the formal derivative R[[X]] \to R[[X]] and prove some basic properties. This is a part of #7271. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/RingTheory/PowerSeries/Derivative.lean + theorem PowerSeries.coeff_derivative + theorem PowerSeries.coeff_derivativeFun + theorem PowerSeries.derivative.ext + theorem PowerSeries.derivativeFun_C + theorem PowerSeries.derivativeFun_add + theorem PowerSeries.derivativeFun_coe + theorem PowerSeries.derivativeFun_mul + theorem PowerSeries.derivativeFun_one + theorem PowerSeries.derivativeFun_smul + theorem PowerSeries.derivative_C + theorem PowerSeries.derivative_X + theorem PowerSeries.derivative_coe + theorem PowerSeries.derivative_inv' + theorem PowerSeries.derivative_inv + theorem PowerSeries.derivative_invOf + theorem PowerSeries.trunc_derivative' + theorem PowerSeries.trunc_derivative + theorem PowerSeries.trunc_derivativeFun 2023-10-26 10:03:35 49f7f62 chore: move Submodule.{map,comap} to Algebra.Module.Submodule.Map (#7925) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Module/Submodule/Map.lean + theorem AddMonoidHom.coe_toIntLinearMap_map + theorem AddMonoidHom.coe_toMultiplicative_map + theorem LinearMap.iInf_invariant + theorem MonoidHom.coe_toAdditive_map + theorem Submodule.AddMonoidHom.coe_toIntLinearMap_comap + theorem Submodule.apply_coe_mem_map + theorem Submodule.coe_equivMapOfInjective_apply + def Submodule.comap + def Submodule.comapSubtypeEquivOfLe + theorem Submodule.comapSubtypeEquivOfLe_apply_coe + theorem Submodule.comap_coe + theorem Submodule.comap_comp + theorem Submodule.comap_equiv_eq_map_symm + theorem Submodule.comap_iInf + theorem Submodule.comap_iInf_map_of_injective + theorem Submodule.comap_iSup_map_of_injective + theorem Submodule.comap_id + theorem Submodule.comap_inf + theorem Submodule.comap_inf_map_of_injective + theorem Submodule.comap_injective_of_surjective + theorem Submodule.comap_le_comap_iff_of_surjective + theorem Submodule.comap_le_comap_smul + theorem Submodule.comap_map_eq_of_injective + theorem Submodule.comap_mono + theorem Submodule.comap_smul' + theorem Submodule.comap_smul + theorem Submodule.comap_strictMono_of_surjective + theorem Submodule.comap_sup_map_of_injective + theorem Submodule.comap_surjective_of_injective + theorem Submodule.comap_top + theorem Submodule.comap_zero + def Submodule.compatibleMaps + theorem Submodule.eq_zero_of_bot_submodule + theorem Submodule.gc_map_comap + def Submodule.gciMapComap + def Submodule.giMapComap + theorem Submodule.inf_comap_le_comap_add + theorem Submodule.le_comap_map + theorem Submodule.le_comap_pow_of_le_comap + def Submodule.map + theorem Submodule.map_add_le + theorem Submodule.map_bot + theorem Submodule.map_coe + theorem Submodule.map_comap_eq_of_surjective + theorem Submodule.map_comap_le + theorem Submodule.map_comap_subtype + theorem Submodule.map_comp + theorem Submodule.map_equiv_eq_comap_symm + theorem Submodule.map_iInf_comap_of_surjective + theorem Submodule.map_iSup + theorem Submodule.map_iSup_comap_of_sujective + theorem Submodule.map_id + theorem Submodule.map_inf + theorem Submodule.map_inf_comap_of_surjective + theorem Submodule.map_inf_eq_map_inf_comap + theorem Submodule.map_inf_le + theorem Submodule.map_injective_of_injective + theorem Submodule.map_le_iff_le_comap + theorem Submodule.map_le_map_iff_of_injective + theorem Submodule.map_mono + theorem Submodule.map_smul' + theorem Submodule.map_strictMono_of_injective + theorem Submodule.map_sup + theorem Submodule.map_sup_comap_of_surjective + theorem Submodule.map_surjective_of_surjective + theorem Submodule.map_symm_eq_iff + theorem Submodule.map_toAddSubmonoid' + theorem Submodule.map_toAddSubmonoid + theorem Submodule.map_zero + theorem Submodule.mem_comap + theorem Submodule.mem_map + theorem Submodule.mem_map_equiv + theorem Submodule.mem_map_of_mem + def Submodule.orderIsoMapComap + theorem Submodule.orderIsoMapComap_apply' + theorem Submodule.orderIsoMapComap_symm_apply' + theorem Submodule.range_map_nonempty Modified Mathlib/LinearAlgebra/Basic.lean - theorem AddMonoidHom.coe_toIntLinearMap_map - theorem AddMonoidHom.coe_toMultiplicative_map - theorem LinearMap.iInf_invariant - theorem MonoidHom.coe_toAdditive_map - theorem Submodule.AddMonoidHom.coe_toIntLinearMap_comap - theorem Submodule.apply_coe_mem_map - theorem Submodule.coe_equivMapOfInjective_apply - def Submodule.comap - def Submodule.comapSubtypeEquivOfLe - theorem Submodule.comapSubtypeEquivOfLe_apply_coe - theorem Submodule.comap_coe - theorem Submodule.comap_comp - theorem Submodule.comap_equiv_eq_map_symm - theorem Submodule.comap_iInf - theorem Submodule.comap_iInf_map_of_injective - theorem Submodule.comap_iSup_map_of_injective - theorem Submodule.comap_id - theorem Submodule.comap_inf - theorem Submodule.comap_inf_map_of_injective - theorem Submodule.comap_injective_of_surjective - theorem Submodule.comap_le_comap_iff_of_surjective - theorem Submodule.comap_le_comap_smul - theorem Submodule.comap_map_eq_of_injective - theorem Submodule.comap_mono - theorem Submodule.comap_smul' - theorem Submodule.comap_smul - theorem Submodule.comap_strictMono_of_surjective - theorem Submodule.comap_sup_map_of_injective - theorem Submodule.comap_surjective_of_injective - theorem Submodule.comap_top - theorem Submodule.comap_zero - def Submodule.compatibleMaps - theorem Submodule.eq_zero_of_bot_submodule - theorem Submodule.gc_map_comap - def Submodule.gciMapComap - def Submodule.giMapComap - theorem Submodule.inf_comap_le_comap_add - theorem Submodule.le_comap_map - theorem Submodule.le_comap_pow_of_le_comap - def Submodule.map - theorem Submodule.map_add_le - theorem Submodule.map_bot - theorem Submodule.map_coe - theorem Submodule.map_comap_eq_of_surjective - theorem Submodule.map_comap_le - theorem Submodule.map_comap_subtype - theorem Submodule.map_comp - theorem Submodule.map_equiv_eq_comap_symm - theorem Submodule.map_iInf_comap_of_surjective - theorem Submodule.map_iSup - theorem Submodule.map_iSup_comap_of_sujective - theorem Submodule.map_id - theorem Submodule.map_inf - theorem Submodule.map_inf_comap_of_surjective - theorem Submodule.map_inf_eq_map_inf_comap - theorem Submodule.map_inf_le - theorem Submodule.map_injective_of_injective - theorem Submodule.map_le_iff_le_comap - theorem Submodule.map_le_map_iff_of_injective - theorem Submodule.map_mono - theorem Submodule.map_smul' - theorem Submodule.map_strictMono_of_injective - theorem Submodule.map_sup - theorem Submodule.map_sup_comap_of_surjective - theorem Submodule.map_surjective_of_surjective - theorem Submodule.map_symm_eq_iff - theorem Submodule.map_toAddSubmonoid' - theorem Submodule.map_toAddSubmonoid - theorem Submodule.map_zero - theorem Submodule.mem_comap - theorem Submodule.mem_map - theorem Submodule.mem_map_equiv - theorem Submodule.mem_map_of_mem - def Submodule.orderIsoMapComap - theorem Submodule.orderIsoMapComap_apply' - theorem Submodule.orderIsoMapComap_symm_apply' - theorem Submodule.range_map_nonempty 2023-10-26 10:03:34 c6cb8b6 feat: condition for being < an ordinal in a decreasing list (#7899) ESTIMATED CHANGES Modified Mathlib/Data/List/Lex.lean +/- theorem List.head!_le_of_lt + theorem List.head_le_of_lt Modified Mathlib/SetTheory/Ordinal/Basic.lean + theorem List.Sorted.lt_ord_of_lt 2023-10-26 10:03:33 3716d38 feat(CategoryTheory/Limits/VanKampen): Properties of van Kampen colimits (#7745) Also moves the definition of van Kampen colimits from `CategoryTheory/Extensive.lean` into a new file. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/CategoryTheory/Extensive.lean - theorem CategoryTheory.BinaryCofan.isPullback_initial_to_of_isVanKampen - theorem CategoryTheory.BinaryCofan.isVanKampen_iff - theorem CategoryTheory.BinaryCofan.isVanKampen_mk - theorem CategoryTheory.BinaryCofan.mono_inr_of_isVanKampen - theorem CategoryTheory.IsInitial.isVanKampenColimit - def CategoryTheory.IsUniversalColimit - theorem CategoryTheory.IsVanKampenColimit.isUniversal - theorem CategoryTheory.IsVanKampenColimit.of_iso - theorem CategoryTheory.IsVanKampenColimit.of_map - def CategoryTheory.IsVanKampenColimit - theorem CategoryTheory.NatTrans.Equifibered.comp - theorem CategoryTheory.NatTrans.Equifibered.whiskerRight - def CategoryTheory.NatTrans.Equifibered - theorem CategoryTheory.NatTrans.equifibered_of_isIso - theorem CategoryTheory.hasStrictInitial_of_isUniversal - theorem CategoryTheory.isVanKampenColimit_of_evaluation - theorem CategoryTheory.mapPair_equifibered Added Mathlib/CategoryTheory/Limits/VanKampen.lean + theorem CategoryTheory.BinaryCofan.isPullback_initial_to_of_isVanKampen + theorem CategoryTheory.BinaryCofan.isVanKampen_iff + theorem CategoryTheory.BinaryCofan.isVanKampen_mk + theorem CategoryTheory.BinaryCofan.mono_inr_of_isVanKampen + theorem CategoryTheory.IsInitial.isVanKampenColimit + def CategoryTheory.IsUniversalColimit + theorem CategoryTheory.IsVanKampenColimit.isUniversal + theorem CategoryTheory.IsVanKampenColimit.mapCocone_iff + theorem CategoryTheory.IsVanKampenColimit.of_iso + theorem CategoryTheory.IsVanKampenColimit.of_mapCocone + theorem CategoryTheory.IsVanKampenColimit.precompose_isIso + theorem CategoryTheory.IsVanKampenColimit.precompose_isIso_iff + theorem CategoryTheory.IsVanKampenColimit.whiskerEquivalence + theorem CategoryTheory.IsVanKampenColimit.whiskerEquivalence_iff + def CategoryTheory.IsVanKampenColimit + theorem CategoryTheory.NatTrans.Equifibered.comp + theorem CategoryTheory.NatTrans.Equifibered.whiskerLeft + theorem CategoryTheory.NatTrans.Equifibered.whiskerRight + def CategoryTheory.NatTrans.Equifibered + theorem CategoryTheory.NatTrans.equifibered_of_discrete + theorem CategoryTheory.NatTrans.equifibered_of_isIso + theorem CategoryTheory.hasStrictInitial_of_isUniversal + theorem CategoryTheory.isUniversalColimit_extendCofan + theorem CategoryTheory.isVanKampenColimit_extendCofan + theorem CategoryTheory.isVanKampenColimit_of_evaluation + theorem CategoryTheory.isVanKampenColimit_of_isEmpty + theorem CategoryTheory.mapPair_equifibered Modified Mathlib/CategoryTheory/PEmpty.lean - def CategoryTheory.Functor.emptyEquivalence + def CategoryTheory.Functor.isEmptyExt + def CategoryTheory.emptyEquivalence + def CategoryTheory.equivalenceOfIsEmpty + def CategoryTheory.functorOfIsEmpty 2023-10-26 10:03:32 d03396c feat: Lattice closedness (#7548) Define when a set in a lattice is closed under lattice operations. ESTIMATED CHANGES Modified Mathlib/Order/Closure.lean + theorem ClosureOperator.closed_ofPred + theorem ClosureOperator.mem_closed_ofPred + def ClosureOperator.ofPred + theorem ClosureOperator.ofPred_spec Modified Mathlib/Order/SupClosed.lean + theorem InfClosed.image + theorem InfClosed.preimage + theorem InfClosed.prod + theorem IsSublattice.image + theorem IsSublattice.inter + theorem IsSublattice.preimage + theorem IsSublattice.prod + structure IsSublattice + theorem IsSublattice_range + theorem Set.Finite.latticeClosure + theorem SupClosed.image + theorem SupClosed.preimage + theorem SupClosed.prod + theorem finsetInf'_mem_infClosure + theorem finsetSup'_mem_supClosure + theorem infClosed_pi +/- theorem infClosed_preimage_ofDual +/- theorem infClosed_preimage_toDual + theorem infClosed_range + theorem infClosure_closed + theorem infClosure_min + theorem infClosure_supClosure + theorem inf_mem_infClosure + theorem isSublattice_empty + theorem isSublattice_iInter + theorem isSublattice_latticeClosure + theorem isSublattice_pi + theorem isSublattice_preimage_ofDual + theorem isSublattice_preimage_toDual + theorem isSublattice_sInter + theorem isSublattice_singleton + theorem isSublattice_univ + def latticeClosure + theorem latticeClosure_closed + theorem latticeClosure_empty + theorem latticeClosure_eq_self + theorem latticeClosure_idem + theorem latticeClosure_min + theorem latticeClosure_mono + theorem latticeClosure_singleton + theorem latticeClosure_univ + theorem subset_latticeClosure + theorem supClosed_pi +/- theorem supClosed_preimage_ofDual +/- theorem supClosed_preimage_toDual + theorem supClosed_range + theorem supClosure_closed + theorem supClosure_infClosure + theorem supClosure_min + theorem sup_mem_supClosure 2023-10-26 08:57:17 840db66 feat: adding an element at the head of lists preserves non-strict lexicographic inequality (#7897) ESTIMATED CHANGES Modified Mathlib/Data/List/Lex.lean + theorem List.cons_le_cons 2023-10-26 03:07:05 cccdf1f fix: make `replace` not inadvertently close goal (#7939) If `replace` couldn't clear the hypothesis, it would accidentally leave no more goals. (Note that `pure ()` doesn't work because the main goal has already been assigned by that point so will be deleted from the goals list.) ESTIMATED CHANGES Modified Mathlib/Tactic/Replace.lean Modified test/Replace.lean 2023-10-26 03:07:04 f1bf090 feat: `ring` for `PNat` (#6570) This is a (relatively low-effort) implementation of `ring` on `PNat` which works by using a typeclass to lift expressions to `Nat`, where the more usual methods apply. It is written in a generic style so it can be extended with typeclasses for other types, which extends the applicability to any type which has an injective map to a commutative semiring. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Tactic.lean Modified Mathlib/Tactic/Ring.lean Modified Mathlib/Tactic/Ring/Basic.lean + theorem Mathlib.Tactic.Ring.of_lift Added Mathlib/Tactic/Ring/PNat.lean Modified test/ring.lean 2023-10-26 02:36:44 f10c022 chore: Scope the adjoin element notation (#7938) ESTIMATED CHANGES Modified Mathlib/FieldTheory/AbelRuffini.lean Modified Mathlib/FieldTheory/Adjoin.lean Modified Mathlib/FieldTheory/Galois.lean Modified Mathlib/FieldTheory/PolynomialGaloisGroup.lean Modified Mathlib/NumberTheory/Cyclotomic/PrimitiveRoots.lean 2023-10-26 01:32:06 452129a feat: have `notation3` use elaborator when generating matchers, add support for pi/lambda (#6833) `notation3` was generating matchers directly from syntax, which included a half-baked implementation of a term elaborator. This switches to elaborating the term and then generating matchers from the elaborated term. This 1. is more robust and consistent, since it uses the main elaborator and one can make use of other notations 2. has the nice side effect of adding term info to expansions in the `notation3` command 3. can unfortunately generate matchers that are more restrictive than before since they also match against elaborated features such as implicit arguments. We now also generate matchers for expansions that have pi types and lambda expressions. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Lie/Weights/Basic.lean Modified Mathlib/Algebra/Order/Nonneg/Module.lean Modified Mathlib/AlgebraicGeometry/Restrict.lean Modified Mathlib/Combinatorics/SimpleGraph/Regularity/Bound.lean Modified Mathlib/Combinatorics/SimpleGraph/Regularity/Chunk.lean Modified Mathlib/Combinatorics/SimpleGraph/Regularity/Increment.lean Modified Mathlib/Data/PSigma/Order.lean Added Mathlib/Lean/Elab/Term.lean + def Lean.Elab.Term.elabPattern Added Mathlib/Lean/PrettyPrinter/Delaborator.lean + def Lean.PrettyPrinter.Delaborator.SubExpr.withBindingBody' + def Lean.PrettyPrinter.Delaborator.withBindingBodyUnusedName' Modified Mathlib/LinearAlgebra/PiTensorProduct.lean Modified Mathlib/Mathport/Notation.lean - def Mathlib.Notation3.fnArgMatcher - def Mathlib.Notation3.getExplicitArgIndices + def Mathlib.Notation3.matchApp - def Mathlib.Notation3.matchConst + def Mathlib.Notation3.matchExpr +/- def Mathlib.Notation3.matchFVar + def Mathlib.Notation3.matchForall + def Mathlib.Notation3.matchLambda + def Mathlib.Notation3.matchTypeOf + def Mathlib.Notation3.setupLCtx Modified Mathlib/RingTheory/Kaehler.lean Modified test/notation3.lean + structure Test.MyUnit' + def Test.idStr 2023-10-25 20:48:06 57e4e03 feat(Filter): lemmas from Mandelbrot connectedness project (#7913) - Add `Filter.frequently_iff_neBot` and `Filter.frequently_mem_iff_neBot`. - Drop some implicit arguments that are available from `variable`. - Add `Filter.disjoint_prod` and `Filter.frequently_prod_and`. - Swap `Filter.le_prod` with `Filter.tendsto_prod_iff'` to use the latter in the proof of the former. Co-Authored-By: @girving ESTIMATED CHANGES Modified Mathlib/Order/Filter/Basic.lean + theorem Filter.frequently_iff_neBot + theorem Filter.frequently_mem_iff_neBot Modified Mathlib/Order/Filter/Prod.lean +/- theorem Filter.Eventually.diag_of_prod +/- theorem Filter.NeBot.prod +/- theorem Filter.Tendsto.prod_mk +/- theorem Filter.bot_prod + theorem Filter.disjoint_prod +/- theorem Filter.eventually_prod_iff + theorem Filter.frequently_prod_and +/- theorem Filter.inf_prod +/- theorem Filter.map_swap4_prod +/- theorem Filter.mem_prod_iff_left +/- theorem Filter.mem_prod_iff_right +/- theorem Filter.mem_prod_principal +/- theorem Filter.mem_prod_top +/- theorem Filter.prod_bot +/- theorem Filter.prod_eq +/- theorem Filter.prod_eq_bot +/- theorem Filter.prod_inf +/- theorem Filter.prod_mem_prod +/- theorem Filter.prod_mem_prod_iff +/- theorem Filter.prod_neBot +/- theorem Filter.prod_pure +/- theorem Filter.prod_top +/- theorem Filter.tendsto_fst +/- theorem Filter.tendsto_prodAssoc +/- theorem Filter.tendsto_prodAssoc_symm +/- theorem Filter.tendsto_prod_iff' +/- theorem Filter.tendsto_prod_swap +/- theorem Filter.tendsto_snd +/- theorem Filter.tendsto_swap4_prod Modified Mathlib/Probability/Kernel/Disintegration.lean 2023-10-25 20:01:32 c60a780 feat(NhdsSet): lemmas from the Mandelbrot set connectedness project (#7914) Add `eventually_nhdsSet_iff_exists`, `eventually_nhdsSet_iff_forall`, and `IsOpen.mem_nhdsSet_self`. ESTIMATED CHANGES Modified Mathlib/Topology/NhdsSet.lean + theorem IsOpen.mem_nhdsSet_self + theorem eventually_nhdsSet_iff_exists + theorem eventually_nhdsSet_iff_forall 2023-10-25 17:48:18 0eda3bb fix(CategoryTheory/Monoidal/Category): correct mathport-ized lemma names (#7923) `tensor_hom_inv_id`, which matches `tensor_inv_hom_id`, was incorrectly renamed during porting to `tensorHom_inv_id`. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Monoidal/Category.lean - theorem CategoryTheory.MonoidalCategory.tensorHom_inv_id' - theorem CategoryTheory.MonoidalCategory.tensorHom_inv_id + theorem CategoryTheory.MonoidalCategory.tensor_hom_inv_id' + theorem CategoryTheory.MonoidalCategory.tensor_hom_inv_id 2023-10-25 17:26:24 7f885ee feat: pretty print as `↥S` instead of `{ x // x ∈ S }` for SetLike (#7927) Adds a delaborator detecting `{ x // x ∈ S }` where the membership uses `SetLike.instMembership`, since then this matches the `CoeSort` instance for `SetLike`. ESTIMATED CHANGES Modified Mathlib/Data/SetLike/Basic.lean + def SetLike.delabSubtypeSetLike Modified test/set_like.lean 2023-10-25 14:17:59 65b7d16 feat: generalize some lemmas to directed types (#7852) ## New lemmas / instances - An archimedean ordered semiring is directed upwards. - `Filter.hasAntitoneBasis_atTop`; - `Filter.HasAntitoneBasis.iInf_principal`; ## Fix typos - Docstrings: "if the agree" -> "if they agree". - `ProbabilityTheory.measure_eq_zero_or_one_of_indepSetCat_self` -> `ProbabilityTheory.measure_eq_zero_or_one_of_indepSet_self`. ## Weaken typeclass assumptions ### From a semilattice to a directed type - `MeasureTheory.tendsto_measure_iUnion`; - `MeasureTheory.tendsto_measure_iInter`; - `Monotone.directed_le`, `Monotone.directed_ge`; - `Antitone.directed_le`, `Antitone.directed_ge`; - `directed_of_sup`, renamed to `directed_of_isDirected_le`; - `directed_of_inf`, renamed to `directed_of_isDirected_ge`; ### From a strict ordered semiring to an ordered semiring - `tendsto_nat_cast_atTop_atTop`; - `Filter.Eventually.nat_cast_atTop`; - `atTop_hasAntitoneBasis_of_archimedean`; ESTIMATED CHANGES Modified Counterexamples/SorgenfreyLine.lean Modified Mathlib/Algebra/Order/Archimedean.lean Modified Mathlib/Analysis/SpecificLimits/Basic.lean Modified Mathlib/LinearAlgebra/LinearIndependent.lean Modified Mathlib/MeasureTheory/Constructions/BorelSpace/Basic.lean Modified Mathlib/MeasureTheory/Integral/Lebesgue.lean Modified Mathlib/MeasureTheory/Measure/MeasureSpace.lean +/- theorem MeasureTheory.tendsto_measure_iInter +/- theorem MeasureTheory.tendsto_measure_iUnion Modified Mathlib/Order/Directed.lean +/- theorem Antitone.directed_ge +/- theorem Antitone.directed_le +/- theorem Monotone.directed_ge +/- theorem Monotone.directed_le +/- theorem directed_id - theorem directed_of_inf + theorem directed_of_isDirected_ge + theorem directed_of_isDirected_le - theorem directed_of_sup Modified Mathlib/Order/Filter/Archimedean.lean +/- theorem Filter.Eventually.nat_cast_atTop +/- theorem atTop_hasAntitoneBasis_of_archimedean +/- theorem tendsto_nat_cast_atTop_atTop Modified Mathlib/Order/Filter/AtTopBot.lean + theorem Filter.hasAntitoneBasis_atTop Modified Mathlib/Order/Filter/Bases.lean + theorem Filter.HasAntitoneBasis.iInf_principal Modified Mathlib/Order/Filter/Basic.lean Modified Mathlib/Probability/Independence/Kernel.lean Modified Mathlib/Probability/Independence/ZeroOne.lean - theorem ProbabilityTheory.measure_eq_zero_or_one_of_indepSetCat_self + theorem ProbabilityTheory.measure_eq_zero_or_one_of_indepSet_self Modified Mathlib/Topology/Algebra/Order/Compact.lean Modified Mathlib/Topology/Algebra/WithZeroTopology.lean Modified Mathlib/Topology/Category/Profinite/Product.lean Modified Mathlib/Topology/Compactness/Compact.lean Modified Mathlib/Topology/DiscreteQuotient.lean Modified Mathlib/Topology/UniformSpace/Cauchy.lean 2023-10-25 13:20:53 34d930a feat(Analysis/Analytic): A few lemmas that simple things are analytic (#7677) We record various simple lemmas that things are `analyticAt` or `analyticOn`. There's no hard work here, just corollaries of other results: 1. `id`, `fst`, `snd` 2. Power series terms, in the origin (we already know they have power series, this is just the `.analyticAt_changeOrigin` corollary 3. Finite sums 4. Pairs of analytic functions: `x ↦ (f x, g x)` We also add a few lemmas for dealing with curried analytic functions. Starting with `AnalyticOn 𝕜 (uncurry h) s`, 1. `AnalyticOn.curry_comp` composes it with two input analytic functions 2. `AnalyticOn.along_fst/snd` show analyticity along each coordinate ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Analysis/Analytic/Basic.lean - theorem AnalyticAt.prod + theorem AnalyticOn.continuous - theorem AnalyticOn.prod + theorem FormalMultilinearSeries.analyticAt_changeOrigin - theorem FormalMultilinearSeries.radius_prod_eq_min - theorem HasFPowerSeriesAt.prod - theorem HasFPowerSeriesOnBall.prod - theorem analyticAt_inv_one_sub - theorem formalMultilinearSeries_geometric_radius - theorem hasFPowerSeriesOnBall_inv_one_sub Added Mathlib/Analysis/Analytic/Constructions.lean + theorem AnalyticAt.along_fst + theorem AnalyticAt.along_snd + theorem AnalyticAt.comp₂ + theorem AnalyticAt.div + theorem AnalyticAt.inv + theorem AnalyticAt.mul + theorem AnalyticAt.pow + theorem AnalyticAt.prod + theorem AnalyticAt.smul + theorem AnalyticOn.along_fst + theorem AnalyticOn.along_snd + theorem AnalyticOn.comp₂ + theorem AnalyticOn.div + theorem AnalyticOn.inv + theorem AnalyticOn.prod + theorem Finset.analyticAt_prod + theorem Finset.analyticAt_sum + theorem Finset.analyticOn_prod + theorem Finset.analyticOn_sum + theorem FormalMultilinearSeries.radius_prod_eq_min + theorem HasFPowerSeriesAt.prod + theorem HasFPowerSeriesOnBall.prod + theorem analyticAt_inv + theorem analyticAt_inv_one_sub + theorem analyticAt_mul + theorem analyticAt_smul + theorem analyticOn_inv + def formalMultilinearSeries_geometric + theorem formalMultilinearSeries_geometric_apply_norm + theorem formalMultilinearSeries_geometric_radius + theorem hasFPowerSeriesOnBall_inv_one_sub Modified Mathlib/Analysis/Analytic/Linear.lean - theorem AnalyticAt.mul - theorem AnalyticAt.pow - theorem AnalyticAt.smul + theorem analyticAt_fst - theorem analyticAt_inv - theorem analyticAt_mul - theorem analyticAt_smul + theorem analyticAt_snd + theorem analyticOn_fst + theorem analyticOn_id + theorem analyticOn_snd Modified Mathlib/Analysis/Calculus/FormalMultilinearSeries.lean - def formalMultilinearSeries_geometric - theorem formalMultilinearSeries_geometric_apply_norm 2023-10-25 11:20:52 7c069f7 feat(Algebra/BigOperators/Order): prod_lt_prod (#7844) Add a product variant of [mul_lt_mul](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Algebra/Order/Ring/Defs.html#mul_lt_mul), following the pattern of [Finset.prod_lt_prod'](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Algebra/BigOperators/Order.html#Finset.prod_lt_prod'). This fills in a gap between [Finset.prod_le_prod](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Algebra/BigOperators/Order.html#Finset.prod_le_prod), [Finset.prod_le_prod'](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Algebra/BigOperators/Order.html#Finset.prod_le_prod') and [Finset.prod_lt_prod'](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Algebra/BigOperators/Order.html#Finset.prod_lt_prod'). ESTIMATED CHANGES Modified Mathlib/Algebra/BigOperators/Order.lean + theorem Finset.prod_lt_prod + theorem Finset.prod_lt_prod_of_nonempty 2023-10-25 10:47:24 f81eaba refactor: Move the data fields of `MonoidalCategory` into a `Struct` class (#7279) This matches the approach for `CategoryStruct`, and allows us to use the notation within `MonoidalCategory`. It also makes it easier to induce the lawful structure along a faithful functor, as again it means by the time we are providing the proof fields, the notation is already available. This also eliminates `tensorUnit` vs `tensorUnit'`, adding a custom pretty-printer to provide the unprimed version with appropriate notation. ESTIMATED CHANGES Modified Mathlib/Algebra/Category/AlgebraCat/Monoidal.lean + theorem AlgebraCat.forget₂_map_associator_hom + theorem AlgebraCat.forget₂_map_associator_inv - theorem AlgebraCat.instMonoidalCategory.forget₂_map_associator_hom - theorem AlgebraCat.instMonoidalCategory.forget₂_map_associator_inv +/- def AlgebraCat.toModuleCatMonoidalFunctor Modified Mathlib/Algebra/Category/ModuleCat/Monoidal/Basic.lean Modified Mathlib/CategoryTheory/Bicategory/End.lean Modified Mathlib/CategoryTheory/Monoidal/Category.lean + def CategoryTheory.MonoidalCategory.delabTensorUnit - def CategoryTheory.MonoidalCategory.ofTensorHom Modified Mathlib/CategoryTheory/Monoidal/Center.lean Modified Mathlib/CategoryTheory/Monoidal/Discrete.lean Modified Mathlib/CategoryTheory/Monoidal/End.lean + theorem CategoryTheory.endofunctorMonoidalCategory_whiskerLeft_app + theorem CategoryTheory.endofunctorMonoidalCategory_whiskerRight_app Modified Mathlib/CategoryTheory/Monoidal/Free/Basic.lean Modified Mathlib/CategoryTheory/Monoidal/Functor.lean Modified Mathlib/CategoryTheory/Monoidal/FunctorCategory.lean + theorem CategoryTheory.Monoidal.whiskerLeft_app + theorem CategoryTheory.Monoidal.whiskerRight_app Modified Mathlib/CategoryTheory/Monoidal/Mon_.lean Modified Mathlib/CategoryTheory/Monoidal/OfChosenFiniteProducts/Basic.lean +/- def CategoryTheory.monoidalOfChosenFiniteProducts Modified Mathlib/CategoryTheory/Monoidal/OfHasFiniteProducts.lean Modified Mathlib/CategoryTheory/Monoidal/Opposite.lean Modified Mathlib/CategoryTheory/Monoidal/Subcategory.lean Modified Mathlib/CategoryTheory/Monoidal/Transport.lean +/- structure CategoryTheory.Monoidal.InducingFunctorData +/- def CategoryTheory.Monoidal.fromInduced +/- def CategoryTheory.Monoidal.fromTransported + def CategoryTheory.Monoidal.transportStruct Modified Mathlib/LinearAlgebra/QuadraticForm/QuadraticModuleCat/Monoidal.lean + theorem QuadraticModuleCat.forget₂_map_associator_hom + theorem QuadraticModuleCat.forget₂_map_associator_inv - theorem QuadraticModuleCat.instMonoidalCategory.forget₂_map_associator_hom - theorem QuadraticModuleCat.instMonoidalCategory.forget₂_map_associator_inv +/- def QuadraticModuleCat.toModuleCatMonoidalFunctor Modified Mathlib/RepresentationTheory/Action.lean 2023-10-25 09:51:56 f04a8ee fix: catch instance failures in linarith (#7916) As [reported on Zulip](https://leanprover.zulipchat.com/#narrow/stream/270676-lean4/topic/Running.20out.20of.20heartbeats/near/398418838). ESTIMATED CHANGES Modified Mathlib/Tactic/Linarith/Preprocessing.lean +/- def Linarith.flipNegatedComparison Modified test/linarith.lean 2023-10-25 07:40:01 8c5a066 feat(NumberTheory/ArithmeticFunction): lemma about lcm, gcd and multiplicative functions (#7787) This lemma came out of my Selberg sieve project. ESTIMATED CHANGES Modified Mathlib/NumberTheory/ArithmeticFunction.lean + theorem Nat.ArithmeticFunction.IsMultiplicative.lcm_apply_mul_gcd_apply 2023-10-25 03:39:52 0935274 chore: bump Std (#7908) ESTIMATED CHANGES Modified lake-manifest.json 2023-10-25 02:51:13 a8f9b16 feat: beta% term elaborator (#7207) Defines a `beta% t` syntax that elaborates `t` and then does one level of beta reduction using `Lean.Expr.headBeta`. This is useful for defining notations that insert a function under a binder and want to substitute the bound variable, for example `∀ i, beta% p i`. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Util/TermBeta.lean + def Mathlib.Util.TermBeta.elabBeta Added test/TermBeta.lean 2023-10-25 01:20:42 6c71243 chore: move `tendsto_zpow_atTop_atTop` (#7887) Also move it to the `Filter` namespace and drop `Strict` from some TC assumptions. ESTIMATED CHANGES Modified Mathlib/Analysis/Asymptotics/SpecificAsymptotics.lean - theorem tendsto_zpow_atTop_atTop Modified Mathlib/Order/Filter/AtTopBot.lean + theorem Filter.tendsto_zpow_atTop_atTop 2023-10-24 21:58:52 1a79f4b feat: gt versions of some lemmas about sorted lists and finsets (#7895) ESTIMATED CHANGES Modified Mathlib/Data/Finset/Sort.lean + theorem Finset.sort_sorted_gt Modified Mathlib/Data/List/Sort.lean 2023-10-24 20:48:10 270b0ea chore: remove `Equiv.toFun_as_coe_apply` (#7902) This `simp` lemma was added during the port but tagged as probably unnecessary after fixing https://github.com/leanprover/lean4/issues/1937. This PR confirms it is indeed no longer necessary. The only proofs that needed fixing were the one explicitly calling the new simp lemma. The porting note can go too. ESTIMATED CHANGES Modified Mathlib/Data/MvPolynomial/Equiv.lean Modified Mathlib/Logic/Equiv/Defs.lean - theorem Equiv.toFun_as_coe_apply Modified Mathlib/Logic/Equiv/TransferInstance.lean Modified Mathlib/Topology/Homeomorph.lean Modified Mathlib/Topology/UniformSpace/Equiv.lean 2023-10-24 17:18:56 bf077b1 chore: positivity extension for the Gamma function (#7888) ESTIMATED CHANGES Modified Mathlib/Analysis/SpecialFunctions/Gamma/Basic.lean + def Mathlib.Meta.Positivity.evalGamma + theorem Real.Gamma_nonneg_of_nonneg 2023-10-24 16:07:05 5fcd552 chore: gcongr tagging (#7889) Tag lemmas about `tsub` (truncated subtraction), nnreal and ennreal powers, and measures for `gcongr`. ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Sub/Defs.lean +/- theorem tsub_le_tsub +/- theorem tsub_le_tsub_left +/- theorem tsub_le_tsub_right Modified Mathlib/Analysis/SpecialFunctions/Pow/NNReal.lean +/- theorem ENNReal.rpow_le_rpow +/- theorem ENNReal.rpow_le_rpow_of_exponent_le +/- theorem ENNReal.rpow_lt_rpow +/- theorem NNReal.rpow_le_rpow +/- theorem NNReal.rpow_le_rpow_of_exponent_le +/- theorem NNReal.rpow_lt_rpow +/- theorem NNReal.rpow_lt_rpow_of_exponent_lt Modified Mathlib/MeasureTheory/Integral/Layercake.lean Modified Mathlib/MeasureTheory/Integral/Lebesgue.lean Modified Mathlib/MeasureTheory/Measure/MeasureSpaceDef.lean +/- theorem MeasureTheory.measure_mono 2023-10-24 14:44:31 2737bd9 feat: `apply _ at _` tactic (#7527) See relevant zulip discussions [here](https://leanprover.zulipchat.com/#narrow/stream/270676-lean4/topic/MVars.20from.20implicit.20variables/near/394893597) and [here](https://leanprover.zulipchat.com/#narrow/stream/113488-general/topic/apply.20at/near/394509077) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Lean/Meta/Basic.lean + def Lean.Meta.forallMetaTelescopeReducingUntilDefEq Modified Mathlib/Tactic.lean Added Mathlib/Tactic/ApplyAt.lean Modified Mathlib/Tactic/Common.lean Added test/ApplyAt.lean 2023-10-24 13:49:40 bca93b9 feat: add Fin.cons_mem_piFinset_iff (#6605) Adds a lemma about when `Fin.cons` is an element of `piFinset` ESTIMATED CHANGES Modified Mathlib/Data/Fin/Basic.lean + theorem Fin.eq_castSucc_or_eq_last + theorem Fin.forall_fin_succ' Modified Mathlib/Data/Fintype/Pi.lean + theorem Fin.cons_mem_piFinset_cons_iff + theorem Fin.mem_piFinset_succ_iff' + theorem Fin.mem_piFinset_succ_iff + theorem Fin.snoc_mem_piFinset_snoc_iff 2023-10-24 10:48:40 9eb5aaf General valued constraint satisfaction problem defined (#7404) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Combinatorics/Optimization/ValuedCSP.lean + def ValuedCsp.Instance.IsOptimumSolution + def ValuedCsp.Instance.evalSolution + def ValuedCsp.Instance + def ValuedCsp.Term.evalSolution + structure ValuedCsp.Term + def ValuedCsp Modified docs/references.bib 2023-10-24 10:15:47 d918edc perf: speed up `Ring.DirectLimit.field` instance (#7864) This is split off from #7584 ESTIMATED CHANGES Modified Mathlib/Algebra/DirectLimit.lean 2023-10-24 09:40:28 a9da37b feat: volume of a complex ball (#6907) We prove the formula for the area of a disc ```lean theorem volume_ball (x : EuclideanSpace ℝ (Fin 2)) (r : ℝ) : volume (Metric.ball x r) = NNReal.pi * (ENNReal.ofReal r) ^ 2 ``` and deduce from this, the volume of complex balls ```lean theorem volume_ball (a : ℂ) (r : ℝ) : volume (Metric.ball a r) = NNReal.pi * (ENNReal.ofReal r) ^ 2 ``` ESTIMATED CHANGES Modified Mathlib/Analysis/InnerProductSpace/PiL2.lean + theorem EuclideanSpace.ball_zero_eq + theorem EuclideanSpace.closedBall_zero_eq + theorem EuclideanSpace.sphere_zero_eq Modified Mathlib/Analysis/NormedSpace/WithLp.lean Modified Mathlib/Dynamics/Ergodic/MeasurePreserving.lean Modified Mathlib/MeasureTheory/MeasurableSpace/Basic.lean + theorem MeasurableEquiv.coe_trans Modified Mathlib/MeasureTheory/Measure/Haar/InnerProductSpace.lean + theorem EuclideanSpace.volume_ball Modified Mathlib/MeasureTheory/Measure/Lebesgue/Complex.lean + theorem Complex.measurableEquivPi_apply + theorem Complex.measurableEquivPi_symm_apply + theorem Complex.measurableEquivRealProd_apply + theorem Complex.measurableEquivRealProd_symm_apply + theorem Complex.volume_ball + theorem Complex.volume_closedBall 2023-10-24 09:20:12 16ccdcd chore: bump Std and ProofWidgets ('Try these:' widget) (#7881) ESTIMATED CHANGES Modified Mathlib/Tactic/TryThis.lean Modified lake-manifest.json 2023-10-24 07:55:51 f201111 fix: Incorrect integral curve existence theorem for vector fields (#6875) `exists_isPicardLindelof_const_of_contDiffOn_nhds` had unnecessarily specific assumptions. `ContDiffOn` assumption is replaced with `ContDiffAt`. `ProperSpace E` assumption is removed. ESTIMATED CHANGES Modified Mathlib/Analysis/ODE/PicardLindelof.lean - theorem exists_forall_deriv_at_Ioo_eq_of_contDiffOn_nhds + theorem exists_forall_hasDerivAt_Ioo_eq_of_contDiffAt + theorem exists_isPicardLindelof_const_of_contDiffAt - theorem exists_isPicardLindelof_const_of_contDiffOn_nhds 2023-10-24 06:52:26 b5128f3 chore: fix porting note about Comma.eqToHom_right by adding simp lemmas (#7884) There are two things going on here: the change in behaviour in `simp` (currently, but not for much longer, requiring `zeta := false`), and some defeq abuse that I'm resolving here by adding additional `simp` lemmas. This will slightly clarify one of the changes required in #7847 ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Elements.lean Modified Mathlib/CategoryTheory/Functor/Flat.lean Modified Mathlib/CategoryTheory/StructuredArrow.lean 2023-10-24 06:28:38 ef3af0d chore: bump std dependency (#7880) ESTIMATED CHANGES Modified Mathlib/Tactic/Widget/Calc.lean Modified lake-manifest.json Modified lakefile.lean 2023-10-23 23:48:21 1391538 chore: split `CategoryTheory/Sites/SheafOfTypes (#7854) I was planning to add some stuff to this file which was already over 1000 lines long. - The explicit sheaf condition for a sieve/presieve `IsSheafFor` is now in `CategoryTheory/Sites/IsSheafFor`. - The sheaf condition for a sieve/presieve in terms of equalizer diagrams is now in `CategoryTheory/Sites/EqualizerSheafCondition` - Only things related to `IsSheaf`/`IsSeparated` are left in the file `CategoryTheory/Sites/SheafOfTypes`. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Sites/EqualizerSheafCondition.lean + theorem CategoryTheory.Equalizer.FirstObj.ext + def CategoryTheory.Equalizer.FirstObj + def CategoryTheory.Equalizer.Presieve.SecondObj + theorem CategoryTheory.Equalizer.Presieve.compatible_iff + def CategoryTheory.Equalizer.Presieve.firstMap + def CategoryTheory.Equalizer.Presieve.secondMap + theorem CategoryTheory.Equalizer.Presieve.sheaf_condition + theorem CategoryTheory.Equalizer.Presieve.w + theorem CategoryTheory.Equalizer.Sieve.SecondObj.ext + def CategoryTheory.Equalizer.Sieve.SecondObj + theorem CategoryTheory.Equalizer.Sieve.compatible_iff + theorem CategoryTheory.Equalizer.Sieve.equalizer_sheaf_condition + def CategoryTheory.Equalizer.Sieve.firstMap + def CategoryTheory.Equalizer.Sieve.secondMap + theorem CategoryTheory.Equalizer.Sieve.w + def CategoryTheory.Equalizer.firstObjEqFamily + def CategoryTheory.Equalizer.forkMap Added Mathlib/CategoryTheory/Sites/IsSheafFor.lean + theorem CategoryTheory.Presieve.FamilyOfElements.Compatible.compPresheafMap + theorem CategoryTheory.Presieve.FamilyOfElements.Compatible.functorPullback + theorem CategoryTheory.Presieve.FamilyOfElements.Compatible.pullback + theorem CategoryTheory.Presieve.FamilyOfElements.Compatible.restrict + theorem CategoryTheory.Presieve.FamilyOfElements.Compatible.sieveExtend + theorem CategoryTheory.Presieve.FamilyOfElements.Compatible.to_sieveCompatible + def CategoryTheory.Presieve.FamilyOfElements.Compatible + theorem CategoryTheory.Presieve.FamilyOfElements.IsAmalgamation.compPresheafMap + def CategoryTheory.Presieve.FamilyOfElements.IsAmalgamation + def CategoryTheory.Presieve.FamilyOfElements.PullbackCompatible + def CategoryTheory.Presieve.FamilyOfElements.SieveCompatible + def CategoryTheory.Presieve.FamilyOfElements.compPresheafMap + theorem CategoryTheory.Presieve.FamilyOfElements.compPresheafMap_comp + theorem CategoryTheory.Presieve.FamilyOfElements.compPresheafMap_id + theorem CategoryTheory.Presieve.FamilyOfElements.comp_of_compatible + def CategoryTheory.Presieve.FamilyOfElements.functorPullback + def CategoryTheory.Presieve.FamilyOfElements.pullback + def CategoryTheory.Presieve.FamilyOfElements.restrict + def CategoryTheory.Presieve.FamilyOfElements + theorem CategoryTheory.Presieve.IsSeparatedFor.ext + theorem CategoryTheory.Presieve.IsSeparatedFor.isSheafFor + def CategoryTheory.Presieve.IsSeparatedFor + theorem CategoryTheory.Presieve.IsSheafFor.functorInclusion_comp_extend + theorem CategoryTheory.Presieve.IsSheafFor.hom_ext + theorem CategoryTheory.Presieve.IsSheafFor.isAmalgamation + theorem CategoryTheory.Presieve.IsSheafFor.isSeparatedFor + theorem CategoryTheory.Presieve.IsSheafFor.unique_extend + theorem CategoryTheory.Presieve.IsSheafFor.valid_glue + def CategoryTheory.Presieve.IsSheafFor + def CategoryTheory.Presieve.YonedaSheafCondition + theorem CategoryTheory.Presieve.compatible_iff_sieveCompatible + theorem CategoryTheory.Presieve.extend_agrees + theorem CategoryTheory.Presieve.extend_restrict + theorem CategoryTheory.Presieve.extension_iff_amalgamation + theorem CategoryTheory.Presieve.isAmalgamation_restrict + theorem CategoryTheory.Presieve.isAmalgamation_sieveExtend + theorem CategoryTheory.Presieve.isSeparatedFor_and_exists_isAmalgamation_iff_isSheafFor + theorem CategoryTheory.Presieve.isSeparatedFor_iff_generate + theorem CategoryTheory.Presieve.isSeparatedFor_top + theorem CategoryTheory.Presieve.isSheafFor_iff_generate + theorem CategoryTheory.Presieve.isSheafFor_iff_yonedaSheafCondition + theorem CategoryTheory.Presieve.isSheafFor_iso + theorem CategoryTheory.Presieve.isSheafFor_singleton_iso + theorem CategoryTheory.Presieve.isSheafFor_subsieve + theorem CategoryTheory.Presieve.isSheafFor_subsieve_aux + theorem CategoryTheory.Presieve.isSheafFor_top_sieve + theorem CategoryTheory.Presieve.is_compatible_of_exists_amalgamation + def CategoryTheory.Presieve.natTransEquivCompatibleFamily + theorem CategoryTheory.Presieve.pullbackCompatible_iff + theorem CategoryTheory.Presieve.restrict_extend + theorem CategoryTheory.Presieve.restrict_inj Modified Mathlib/CategoryTheory/Sites/RegularExtensive.lean Modified Mathlib/CategoryTheory/Sites/Sheaf.lean Modified Mathlib/CategoryTheory/Sites/SheafOfTypes.lean - theorem CategoryTheory.Equalizer.FirstObj.ext - def CategoryTheory.Equalizer.FirstObj - def CategoryTheory.Equalizer.Presieve.SecondObj - theorem CategoryTheory.Equalizer.Presieve.compatible_iff - def CategoryTheory.Equalizer.Presieve.firstMap - def CategoryTheory.Equalizer.Presieve.secondMap - theorem CategoryTheory.Equalizer.Presieve.sheaf_condition - theorem CategoryTheory.Equalizer.Presieve.w - theorem CategoryTheory.Equalizer.Sieve.SecondObj.ext - def CategoryTheory.Equalizer.Sieve.SecondObj - theorem CategoryTheory.Equalizer.Sieve.compatible_iff - theorem CategoryTheory.Equalizer.Sieve.equalizer_sheaf_condition - def CategoryTheory.Equalizer.Sieve.firstMap - def CategoryTheory.Equalizer.Sieve.secondMap - theorem CategoryTheory.Equalizer.Sieve.w - def CategoryTheory.Equalizer.firstObjEqFamily - def CategoryTheory.Equalizer.forkMap - theorem CategoryTheory.Presieve.FamilyOfElements.Compatible.compPresheafMap - theorem CategoryTheory.Presieve.FamilyOfElements.Compatible.functorPullback - theorem CategoryTheory.Presieve.FamilyOfElements.Compatible.pullback - theorem CategoryTheory.Presieve.FamilyOfElements.Compatible.restrict - theorem CategoryTheory.Presieve.FamilyOfElements.Compatible.sieveExtend - theorem CategoryTheory.Presieve.FamilyOfElements.Compatible.to_sieveCompatible - def CategoryTheory.Presieve.FamilyOfElements.Compatible - theorem CategoryTheory.Presieve.FamilyOfElements.IsAmalgamation.compPresheafMap - def CategoryTheory.Presieve.FamilyOfElements.IsAmalgamation - def CategoryTheory.Presieve.FamilyOfElements.PullbackCompatible - def CategoryTheory.Presieve.FamilyOfElements.SieveCompatible - def CategoryTheory.Presieve.FamilyOfElements.compPresheafMap - theorem CategoryTheory.Presieve.FamilyOfElements.compPresheafMap_comp - theorem CategoryTheory.Presieve.FamilyOfElements.compPresheafMap_id - theorem CategoryTheory.Presieve.FamilyOfElements.comp_of_compatible - def CategoryTheory.Presieve.FamilyOfElements.functorPullback - def CategoryTheory.Presieve.FamilyOfElements.pullback - def CategoryTheory.Presieve.FamilyOfElements.restrict - def CategoryTheory.Presieve.FamilyOfElements - theorem CategoryTheory.Presieve.IsSeparatedFor.ext - theorem CategoryTheory.Presieve.IsSeparatedFor.isSheafFor - def CategoryTheory.Presieve.IsSeparatedFor - theorem CategoryTheory.Presieve.IsSheafFor.functorInclusion_comp_extend - theorem CategoryTheory.Presieve.IsSheafFor.hom_ext - theorem CategoryTheory.Presieve.IsSheafFor.isAmalgamation - theorem CategoryTheory.Presieve.IsSheafFor.isSeparatedFor - theorem CategoryTheory.Presieve.IsSheafFor.unique_extend - theorem CategoryTheory.Presieve.IsSheafFor.valid_glue - def CategoryTheory.Presieve.IsSheafFor - def CategoryTheory.Presieve.YonedaSheafCondition - theorem CategoryTheory.Presieve.compatible_iff_sieveCompatible - theorem CategoryTheory.Presieve.extend_agrees - theorem CategoryTheory.Presieve.extend_restrict - theorem CategoryTheory.Presieve.extension_iff_amalgamation - theorem CategoryTheory.Presieve.isAmalgamation_restrict - theorem CategoryTheory.Presieve.isAmalgamation_sieveExtend - theorem CategoryTheory.Presieve.isSeparatedFor_and_exists_isAmalgamation_iff_isSheafFor - theorem CategoryTheory.Presieve.isSeparatedFor_iff_generate - theorem CategoryTheory.Presieve.isSeparatedFor_top - theorem CategoryTheory.Presieve.isSheafFor_iff_generate - theorem CategoryTheory.Presieve.isSheafFor_iff_yonedaSheafCondition - theorem CategoryTheory.Presieve.isSheafFor_iso - theorem CategoryTheory.Presieve.isSheafFor_singleton_iso - theorem CategoryTheory.Presieve.isSheafFor_subsieve - theorem CategoryTheory.Presieve.isSheafFor_subsieve_aux - theorem CategoryTheory.Presieve.isSheafFor_top_sieve +/- theorem CategoryTheory.Presieve.isSheaf_of_yoneda - theorem CategoryTheory.Presieve.is_compatible_of_exists_amalgamation - def CategoryTheory.Presieve.natTransEquivCompatibleFamily - theorem CategoryTheory.Presieve.pullbackCompatible_iff - theorem CategoryTheory.Presieve.restrict_extend - theorem CategoryTheory.Presieve.restrict_inj +/- structure CategoryTheory.SheafOfTypes Modified Mathlib/CategoryTheory/Sites/Types.lean 2023-10-23 22:39:25 eb68871 feat: allow configuration of discharger for rw? (#7798) It's pretty minor configuration: you can choose between no discharger, `assumption`, or `solve_by_elim`. Moreover it's only configurable in the plumbing, not the porcelain. Both of these are intentional. I'll happily review PRs that add user-facing customisation. ESTIMATED CHANGES Modified Mathlib/Tactic/Rewrites.lean + inductive Mathlib.Tactic.Rewrites.SideConditions Modified test/rewrites.lean 2023-10-23 22:39:24 37fc6aa feat: Make proxy type elaborator add docstrings for aux definitions (#7793) The linter complains about missing docstrings on definitions generated by the proxy type elaborator and one of the Fintype deriving handlers. Adds useful docstrings to these generated definitions. Removes some nolints. ESTIMATED CHANGES Modified Mathlib/Tactic/DeriveFintype.lean Modified Mathlib/Tactic/ProxyType.lean Modified scripts/nolints.json 2023-10-23 22:39:23 8fa9951 fix: improve the output of `trace.to_additive_detail` a bit (#7642) * Also improve troubleshooting instructions ESTIMATED CHANGES Modified Mathlib/Tactic/ToAdditive.lean 2023-10-23 21:31:28 e9da486 feat: add docstring to generated `notation3` pretty printers (#7794) Removes a number of nolints, and also improves the warning when a pretty printer can't be generated. ESTIMATED CHANGES Modified Mathlib/Mathport/Notation.lean Modified scripts/nolints.json Modified test/notation3.lean 2023-10-23 20:24:44 5610251 fix: Put golden ratio notation in a specific namespace. (#7871) The current situation blocks two very common letters if you `import Mathlib` and `open Real`. ESTIMATED CHANGES Modified Mathlib/Data/Real/GoldenRatio.lean 2023-10-23 18:45:44 5a2e66e chore(Analysis): minor golfs using positivity (#7870) ESTIMATED CHANGES Modified Mathlib/Analysis/Calculus/Taylor.lean Modified Mathlib/Analysis/Seminorm.lean 2023-10-23 17:38:56 55c2519 chore(Algebra/Group/TypeTags): lemmas about pow and smul (#7862) Half of these lemmas already existed, but were a long way from the definition that define the operators. For the ones that did exist, the `#align`s have been kept. The new lemmas are all `@[simp]` since that matches the corresponding `add`/`mul` lemmas. This makes some lemmas about `Int` and `Nat` not simp-normal any more (they disagree on commutativity), but that doesn't seem to matter. ESTIMATED CHANGES Modified Mathlib/Algebra/Group/TypeTags.lean + theorem ofAdd_nsmul + theorem ofAdd_zsmul + theorem ofMul_pow + theorem ofMul_zpow + theorem toAdd_pow + theorem toAdd_zpow + theorem toMul_nsmul + theorem toMul_zsmul Modified Mathlib/Algebra/GroupPower/Basic.lean - theorem ofAdd_nsmul - theorem ofAdd_zsmul - theorem ofMul_pow - theorem ofMul_zpow Modified Mathlib/Algebra/GroupPower/Lemmas.lean 2023-10-23 16:32:22 7db2b0a feat: two small lemmas about ordered lists (#7829) We prove that in a sorted list, the `head!` is the smallest element, and that if a list is lexicographically smaller than another list, then its `head!` is smaller than or equal to that of the other. ESTIMATED CHANGES Modified Mathlib/Data/List/Lex.lean + theorem List.head!_le_of_lt Modified Mathlib/Data/List/Sort.lean + theorem List.Sorted.head!_le + theorem List.Sorted.le_head! 2023-10-23 14:19:53 482fff7 feat(Logic/Function/OfArity): generalize the return type (#7859) ESTIMATED CHANGES Modified Mathlib/Data/Fin/Tuple/Curry.lean +/- def Function.OfArity.curry +/- def Function.OfArity.curryEquiv +/- theorem Function.OfArity.curry_uncurry +/- def Function.OfArity.uncurry +/- theorem Function.OfArity.uncurry_curry Modified Mathlib/Logic/Function/OfArity.lean +/- def Function.OfArity.const +/- theorem Function.OfArity.const_succ +/- theorem Function.OfArity.const_succ_apply +/- theorem Function.OfArity.const_zero +/- def Function.OfArity +/- theorem Function.ofArity_succ +/- theorem Function.ofArity_zero Modified Mathlib/SetTheory/ZFC/Basic.lean +/- def PSet.Arity.Equiv +/- theorem PSet.Arity.equiv_const +/- def PSet.Definable.EqMk +/- def PSet.Definable.Resp +/- def PSet.Resp.eval +/- theorem PSet.Resp.eval_val 2023-10-23 14:19:52 1beeb5e refactor: remove redundant condition in HomotopyRel (#7848) For a homotopy `F` between `f₀` and `f₁` to be a homotopy relative to a set S, it suffices that `F (t, x) = f₀ x` for all `x ∈ S` and `t : I`, from which `F (t, x) = f₁ x` can be derived. Also add `HomotopyRel.compContinuousMap`. ESTIMATED CHANGES Modified Mathlib/Topology/Homotopy/Basic.lean + def ContinuousMap.HomotopyRel.compContinuousMap +/- theorem ContinuousMap.HomotopyRel.eq_snd +/- def ContinuousMap.HomotopyRel.trans Modified Mathlib/Topology/Homotopy/HSpaces.lean Modified Mathlib/Topology/Homotopy/HomotopyGroup.lean Modified Mathlib/Topology/Homotopy/Product.lean 2023-10-23 14:19:51 cf041cc chore: fix the names of some `Bool` lemmas (#7841) ESTIMATED CHANGES Modified Mathlib/Combinatorics/SimpleGraph/Basic.lean Modified Mathlib/Computability/RegularExpressions.lean Modified Mathlib/Data/Bool/AllAny.lean Modified Mathlib/Data/Bool/Basic.lean - theorem Bool.coe_bool_iff + theorem Bool.coe_iff_coe Modified Mathlib/Init/Data/Bool/Lemmas.lean - theorem Bool.and_coe_iff + theorem Bool.coe_and_iff + theorem Bool.coe_or_iff + theorem Bool.coe_xor_iff - theorem Bool.or_coe_iff - theorem Bool.xor_coe_iff 2023-10-23 14:19:50 9492740 feat(Algebra/CharP/Quotient): iff lemmas (#7748) ESTIMATED CHANGES Modified Mathlib/Algebra/CharP/Quotient.lean + theorem CharP.quotient_iff + theorem CharP.quotient_iff_le_ker_natCast 2023-10-23 14:19:48 759f2af feat(Data/ZMod/IntUnitsPower): The power operator by `ZMod 2` on `ℤˣ` (#7661) [Zulip thread](https://leanprover.zulipchat.com/#narrow/stream/116395-maths/topic/Powers.20of.20.60.E2.84.A4.CB.A3.60.20by.20.60ZMod.202.60/near/396291926) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Data/Int/Order/Units.lean + theorem Int.units_div_eq_mul Added Mathlib/Data/ZMod/IntUnitsPower.lean + theorem mul_z₂pow + theorem one_z₂pow + theorem z₂pow_add + theorem z₂pow_def + theorem z₂pow_mul + theorem z₂pow_natCast + theorem z₂pow_neg + theorem z₂pow_ofNat + theorem z₂pow_one + theorem z₂pow_sub + theorem z₂pow_zero 2023-10-23 14:19:47 2b385e2 feat: locally ringed space structure on a manifold (#7423) Equip a smooth manifold-with-corners with the structure of a locally ringed space. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Geometry/Manifold/Sheaf/LocallyRingedSpace.lean + def SmoothManifoldWithCorners.locallyRingedSpace + theorem smoothSheafCommRing.isUnit_stalk_iff + theorem smoothSheafCommRing.nonunits_stalk Modified Mathlib/Geometry/Manifold/Sheaf/Smooth.lean +/- theorem smoothSheaf.eval_germ + theorem smoothSheafCommRing.evalHom_germ + theorem smoothSheafCommRing.eval_germ 2023-10-23 14:19:46 e3421e3 feat: commutative star-ordered rings are ordered rings (#7309) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Order/Ring/Star.lean + def StarOrderedRing.toOrderedCommRing + def StarOrderedRing.toOrderedCommSemiring 2023-10-23 14:19:45 f977d71 chore(RepresentationTheory.GroupCohomology): make namespaces lower camel case (#6029) ESTIMATED CHANGES Modified Mathlib/RepresentationTheory/GroupCohomology/Basic.lean - def GroupCohomology.inhomogeneousCochainsIso - theorem GroupCohomology.linearYonedaObjResolution_d_apply - def InhomogeneousCochains.d - theorem InhomogeneousCochains.d_eq + def groupCohomology.inhomogeneousCochainsIso + theorem groupCohomology.linearYonedaObjResolution_d_apply + def inhomogeneousCochains.d + theorem inhomogeneousCochains.d_eq Modified Mathlib/RepresentationTheory/GroupCohomology/Resolution.lean - def GroupCohomology.Resolution.actionDiagonalSucc - theorem GroupCohomology.Resolution.actionDiagonalSucc_hom_apply - theorem GroupCohomology.Resolution.actionDiagonalSucc_inv_apply - def GroupCohomology.Resolution.compForgetAugmentedIso - def GroupCohomology.Resolution.d - theorem GroupCohomology.Resolution.d_comp_ε - theorem GroupCohomology.Resolution.d_eq - theorem GroupCohomology.Resolution.d_of - def GroupCohomology.Resolution.diagonalSucc - theorem GroupCohomology.Resolution.diagonalSucc_hom_single - theorem GroupCohomology.Resolution.diagonalSucc_inv_single_left - theorem GroupCohomology.Resolution.diagonalSucc_inv_single_right - theorem GroupCohomology.Resolution.diagonalSucc_inv_single_single - def GroupCohomology.Resolution.forget₂ToModuleCat - def GroupCohomology.Resolution.forget₂ToModuleCatHomotopyEquiv - theorem GroupCohomology.Resolution.forget₂ToModuleCatHomotopyEquiv_f_0_eq - def GroupCohomology.Resolution.ofMulActionBasis - def GroupCohomology.Resolution.ofMulActionBasisAux - theorem GroupCohomology.Resolution.ofMulAction_free - theorem GroupCohomology.Resolution.quasiIsoOfForget₂εToSingle₀ - def GroupCohomology.Resolution.xIso - theorem GroupCohomology.Resolution.x_projective - def GroupCohomology.Resolution.ε - def GroupCohomology.Resolution.εToSingle₀ - theorem GroupCohomology.Resolution.εToSingle₀_comp_eq - def GroupCohomology.extIso - def GroupCohomology.projectiveResolution - def GroupCohomology.resolution + def groupCohomology.extIso + def groupCohomology.projectiveResolution + def groupCohomology.resolution.actionDiagonalSucc + theorem groupCohomology.resolution.actionDiagonalSucc_hom_apply + theorem groupCohomology.resolution.actionDiagonalSucc_inv_apply + def groupCohomology.resolution.compForgetAugmentedIso + def groupCohomology.resolution.d + theorem groupCohomology.resolution.d_comp_ε + theorem groupCohomology.resolution.d_eq + theorem groupCohomology.resolution.d_of + def groupCohomology.resolution.diagonalSucc + theorem groupCohomology.resolution.diagonalSucc_hom_single + theorem groupCohomology.resolution.diagonalSucc_inv_single_left + theorem groupCohomology.resolution.diagonalSucc_inv_single_right + theorem groupCohomology.resolution.diagonalSucc_inv_single_single + def groupCohomology.resolution.forget₂ToModuleCat + def groupCohomology.resolution.forget₂ToModuleCatHomotopyEquiv + theorem groupCohomology.resolution.forget₂ToModuleCatHomotopyEquiv_f_0_eq + def groupCohomology.resolution.ofMulActionBasis + def groupCohomology.resolution.ofMulActionBasisAux + theorem groupCohomology.resolution.ofMulAction_free + theorem groupCohomology.resolution.quasiIsoOfForget₂εToSingle₀ + def groupCohomology.resolution.xIso + theorem groupCohomology.resolution.x_projective + def groupCohomology.resolution.ε + def groupCohomology.resolution.εToSingle₀ + theorem groupCohomology.resolution.εToSingle₀_comp_eq + def groupCohomology.resolution 2023-10-23 13:22:49 9f4d6c3 chore: reorder variables for `to_additive` (#7856) `to_additive` heuristics work best when the type to be additivized comes first. We make sure this is the case for later applications. ESTIMATED CHANGES Modified Mathlib/Topology/Algebra/Group/Basic.lean Modified Mathlib/Topology/Algebra/Monoid.lean 2023-10-23 12:31:08 e4247f2 feat(Logic/Function/OfArity): curry and uncurry (#7773) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Data/Fin/Tuple/Curry.lean + def Function.OfArity.curry + def Function.OfArity.curryEquiv + theorem Function.OfArity.curry_uncurry + def Function.OfArity.uncurry + theorem Function.OfArity.uncurry_curry 2023-10-23 12:31:06 cf2788d feat: Pointwise set difference, complement (#7383) Define `Finset.diffs` and `Finset.compls`, the pointwise set difference of two finsets and pointwise complement of a finset. `diffs` appears in the statement of the Marica-Schönheim inequality and `compls` in the proof. Also fix the corresponding statements for `sups` and `infs` to use the new `·` notation. ESTIMATED CHANGES Modified Mathlib/Combinatorics/SetFamily/Shadow.lean + theorem Finset.shadow_compls - theorem Finset.shadow_image_compl + theorem Finset.upShadow_compls - theorem Finset.upShadow_image_compl Modified Mathlib/Data/Finset/Sups.lean + theorem Finset.Nonempty.of_diffs_left + theorem Finset.Nonempty.of_diffs_right +/- theorem Finset.biUnion_image_inf_left +/- theorem Finset.biUnion_image_inf_right + theorem Finset.biUnion_image_sdiff_left + theorem Finset.biUnion_image_sdiff_right +/- theorem Finset.biUnion_image_sup_left +/- theorem Finset.biUnion_image_sup_right + theorem Finset.card_compls + theorem Finset.card_diffs_iff + theorem Finset.card_diffs_le + theorem Finset.coe_compls + theorem Finset.coe_diffs + theorem Finset.compl_mem_compls + def Finset.compls + theorem Finset.compls_compls + theorem Finset.compls_empty + theorem Finset.compls_eq_empty + theorem Finset.compls_infs + theorem Finset.compls_infs_eq_diffs + theorem Finset.compls_inter + theorem Finset.compls_nonempty + theorem Finset.compls_singleton + theorem Finset.compls_subset_compls + theorem Finset.compls_subset_iff + theorem Finset.compls_sups + theorem Finset.compls_union + theorem Finset.compls_univ + def Finset.diffs + theorem Finset.diffs_compls_eq_infs + theorem Finset.diffs_empty + theorem Finset.diffs_eq_empty + theorem Finset.diffs_inter_subset_left + theorem Finset.diffs_inter_subset_right + theorem Finset.diffs_nonempty + theorem Finset.diffs_right_comm + theorem Finset.diffs_singleton + theorem Finset.diffs_subset + theorem Finset.diffs_subset_iff + theorem Finset.diffs_subset_left + theorem Finset.diffs_subset_right + theorem Finset.diffs_union_left + theorem Finset.diffs_union_right + theorem Finset.empty_diffs + theorem Finset.exists_compls_iff + theorem Finset.forall_mem_compls + theorem Finset.forall_mem_diffs + theorem Finset.image_compl + theorem Finset.image_sdiff_product + theorem Finset.image_subset_diffs_left + theorem Finset.image_subset_diffs_right +/- theorem Finset.image_subset_infs_left +/- theorem Finset.image_subset_infs_right +/- theorem Finset.image_subset_sups_left +/- theorem Finset.image_subset_sups_right + theorem Finset.infs_compls_eq_diffs +/- theorem Finset.infs_singleton + theorem Finset.mem_compls + theorem Finset.mem_diffs + theorem Finset.sdiff_mem_diffs + theorem Finset.singleton_diffs + theorem Finset.singleton_diffs_singleton +/- theorem Finset.singleton_infs +/- theorem Finset.singleton_sups + theorem Finset.sized_compls + theorem Finset.subset_diffs +/- theorem Finset.sups_singleton 2023-10-23 11:47:15 d245266 fix(Tactic/Cases): fix context for induction' (#7684) Adding a test case for `induction'` that failed and fixing it: `induction' a` would accidentally leave `a` and variables depending on `a` in context. ESTIMATED CHANGES Modified Mathlib/Computability/TuringMachine.lean Modified Mathlib/Data/PFunctor/Univariate/M.lean Modified Mathlib/GroupTheory/FreeGroup/Basic.lean Modified Mathlib/Tactic/Cases.lean Modified test/cases.lean Modified test/propose.lean 2023-10-23 10:59:38 f51f9ac fix(Analysis/../CompareExp): fix natural powers (#7837) Because of leanprover/lean4#2220, `z ^ (n : ℕ)` was interpreted as `z ^ (↑n : ℂ)`. Add a workaround, fix proofs, move part of a proof to a new lemma. ESTIMATED CHANGES Modified Mathlib/Analysis/SpecialFunctions/CompareExp.lean + theorem Complex.IsExpCmpFilter.isTheta_cpow_exp_re_mul_log 2023-10-23 10:25:49 cd9eb31 refactor: more readable error message when `borelize` fails (#7231) `borelize X` fails when `‹TopologicalSpace X›` depends on `i : MeasurableSpace X`, but this message isn't readable: ```lean failed to create binder due to failure when reverting variable dependencies ``` This is probrem in this case: https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/borelize.20gives.20.22failed.20to.20create.20binder.2E.2E.2E.22 This PR make error messages more readable: ```lean ‹TopologicalSpace X› := (expr depends on i)" depends on i : MeasurableSpace X so `borelize` isn't avaliable ``` ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Constructions/BorelSpace/Basic.lean 2023-10-23 09:44:58 72c71a7 chore(counterexamples): remove incorrect counterexample (#7836) This was a counterexample I suggested to a certain problem, and it was added to counterexamples/ without proof. I later realised it doesn't actually work, so I'm removing it from this file. Damiano's example does still work, and provide a counterexample to the claim. ESTIMATED CHANGES Modified Counterexamples/CanonicallyOrderedCommSemiringTwoMul.lean - def Counterexample.FromBhavik.K 2023-10-23 09:44:57 37079e5 feat: reduce FLT to odd primes (#7485) ESTIMATED CHANGES Modified Mathlib/Data/Nat/Factors.lean + theorem Nat.four_dvd_or_exists_odd_prime_and_dvd_of_two_lt Modified Mathlib/NumberTheory/FLT/Four.lean + theorem FermatLastTheorem.of_odd_primes 2023-10-23 09:15:58 4a242ae feat: properties of the conductor (#7352) ESTIMATED CHANGES Modified Mathlib/NumberTheory/DirichletCharacter/Basic.lean + theorem DirichletCharacter.changeLevel_one + theorem DirichletCharacter.conductor_dvd_level + theorem DirichletCharacter.conductor_eq_zero_iff_level_eq_zero + theorem DirichletCharacter.conductor_mem_conductorSet + theorem DirichletCharacter.conductor_ne_zero + theorem DirichletCharacter.conductor_one + theorem DirichletCharacter.conductor_one_dvd + theorem DirichletCharacter.eq_one_iff_conductor_eq_one + theorem DirichletCharacter.factorsThrough_conductor + theorem DirichletCharacter.factorsThrough_one_iff + def DirichletCharacter.isPrimitive + theorem DirichletCharacter.isPrimitive_def + theorem DirichletCharacter.isPrimitive_one_level_one + theorem DirichletCharacter.isPritive_one_level_zero + theorem DirichletCharacter.level_one' + theorem DirichletCharacter.level_one 2023-10-23 05:48:15 16ab7dd fix: Make `rightInverse_inv` use `RightInverse`. (#7792) fix: Make `rightInverse_inv` use `RightInverse`. ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Basic.lean +/- theorem rightInverse_inv 2023-10-23 02:56:48 49b7459 feat: add gcongr lemmas for `Nat.floor`, `Nat.ceil`, `Int.floor`, `Int.ceil` (#7811) The lemmas are just restatements of lemmas of the form `Monotone Nat.floor` etc, but these cannot be tagged directly with the gcongr attribute. ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Floor.lean + theorem Int.ceil_le_ceil + theorem Int.floor_le_floor + theorem Nat.ceil_le_ceil + theorem Nat.floor_le_floor 2023-10-23 00:35:17 801dc0d chore: update dependencies (#7832) ESTIMATED CHANGES Modified lake-manifest.json 2023-10-22 12:47:47 5c9a285 chore: add docstring on says syntax (#7818) ESTIMATED CHANGES Modified Mathlib/Tactic/Says.lean 2023-10-22 11:10:56 3d8d336 Support coersions from Nat to ordered semirings in linarith (#7439) feat: Assume natural numbers are nonnegative when cast to any ordered semiring inside `linarith` Previously this would only work when casting to an integer. ESTIMATED CHANGES Modified Mathlib/Tactic/Linarith/Lemmas.lean + theorem Linarith.nat_cast_nonneg Modified Mathlib/Tactic/Linarith/Preprocessing.lean + def Linarith.Expr.Ord - def Linarith.Expr.compare + def Linarith.isNatCoe - def Linarith.isNatIntCoe +/- def Linarith.mk_coe_nat_nonneg_prf Modified test/linarith.lean 2023-10-22 10:07:23 004800e refactor: List.All₂ to List.Forall (#7797) This renames `List.All₂` to `List.Forall`, because the `₂` is highly confusing when it usually means “two lists”, and we had users on Zulip not find `List.Forall` because of that () ESTIMATED CHANGES Modified Mathlib/Data/List/Basic.lean - theorem List.All₂.imp + theorem List.Forall.imp - theorem List.all₂_cons - theorem List.all₂_iff_forall - theorem List.all₂_map_iff + theorem List.forall_cons + theorem List.forall_iff_forall_mem + theorem List.forall_map_iff Modified Mathlib/Data/List/Defs.lean - def List.All₂ + def List.Forall Modified Mathlib/Data/List/Zip.lean - theorem List.all₂_zipWith + theorem List.forall_zipWith Modified Mathlib/NumberTheory/Dioph.lean - theorem Dioph.DiophList.all₂ + theorem Dioph.DiophList.forall +/- theorem Dioph.inter +/- theorem Poly.sumsq_eq_zero Modified Mathlib/Topology/MetricSpace/MetrizableUniformity.lean 2023-10-22 08:08:28 85acbc3 chore: bump std and aesop (#7746) This includes leanprover/std4#301 which requires slight tweaks to the `List.sublists` API. One other proof also breaks, presumably due to other Std4 commits. ESTIMATED CHANGES Modified Mathlib/Algebra/Star/CHSH.lean Modified Mathlib/Data/List/Sublists.lean - theorem List.sublists_eq_sublistsAux + theorem List.sublists_eq_sublistsFast Modified lake-manifest.json 2023-10-21 19:10:27 3ce43c1 feat: Handle powers and multiplicative inverses in cancel_denoms (#7819) fixes #7732 ESTIMATED CHANGES Modified Mathlib/Tactic/CancelDenoms/Core.lean + theorem CancelDenoms.inv_subst + theorem CancelDenoms.pow_subst Modified test/cancel_denoms.lean Modified test/linarith.lean 2023-10-21 16:58:26 6bdaf22 fix: context handling for `use` tactic (#7827) Fixes error reported by Patrick Massot [on Zulip](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/use.20bug/near/397784284). ESTIMATED CHANGES Modified Mathlib/Tactic/Use.lean Modified test/Use.lean 2023-10-21 12:59:20 30c9475 chore(Algebra/FreeAlgebra): fix ported comments (#7824) Per discussion on [zulip](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/FreeAlgebra.2ERel). ESTIMATED CHANGES Modified Mathlib/Algebra/FreeAlgebra.lean 2023-10-21 10:50:37 512169b feat: Removing elements from a lower set (#7374) If a set `t` is an upper set inside a lower set `s`, then `s \ t` is a lower set. ESTIMATED CHANGES Modified Mathlib/Data/SetLike/Basic.lean + theorem SetLike.coe_ne_coe Modified Mathlib/Order/UpperLower/Basic.lean + theorem IsLowerSet.disjoint_upperClosure_left + theorem IsLowerSet.disjoint_upperClosure_right + theorem IsLowerSet.erase + theorem IsLowerSet.isUpperSet_preimage_coe + theorem IsLowerSet.sdiff + theorem IsLowerSet.sdiff_of_isUpperSet + theorem IsUpperSet.disjoint_lowerClosure_left + theorem IsUpperSet.disjoint_lowerClosure_right + theorem IsUpperSet.erase + theorem IsUpperSet.isLowerSet_preimage_coe + theorem IsUpperSet.sdiff + theorem IsUpperSet.sdiff_of_isLowerSet + theorem LowerSet.Iic_inj + theorem LowerSet.Iic_le + theorem LowerSet.Iic_ne_Iic + theorem LowerSet.Iic_ne_bot + theorem LowerSet.Iic_sup_erase + theorem LowerSet.bot_lt_Iic + theorem LowerSet.coe_erase + theorem LowerSet.coe_mk + theorem LowerSet.coe_nonempty + theorem LowerSet.coe_sdiff + theorem LowerSet.coe_ssubset_coe +/- theorem LowerSet.coe_subset_coe + def LowerSet.erase + theorem LowerSet.erase_eq + theorem LowerSet.erase_idem + theorem LowerSet.erase_le + theorem LowerSet.erase_lt + theorem LowerSet.erase_sup_Iic + theorem LowerSet.lowerClosure_sup_sdiff +/- theorem LowerSet.mem_mk + def LowerSet.sdiff + theorem LowerSet.sdiff_le_left + theorem LowerSet.sdiff_lt_left + theorem LowerSet.sdiff_singleton + theorem LowerSet.sdiff_sup_lowerClosure + theorem UpperSet.Ici_inf_erase + theorem UpperSet.Ici_inj + theorem UpperSet.Ici_lt_top + theorem UpperSet.Ici_ne_Ici + theorem UpperSet.Ici_ne_top + theorem UpperSet.coe_erase + theorem UpperSet.coe_mk + theorem UpperSet.coe_nonempty + theorem UpperSet.coe_sdiff + theorem UpperSet.coe_ssubset_coe + def UpperSet.erase + theorem UpperSet.erase_eq + theorem UpperSet.erase_idem + theorem UpperSet.erase_inf_Ici + theorem UpperSet.le_Ici + theorem UpperSet.le_erase + theorem UpperSet.le_sdiff_left + theorem UpperSet.lt_erase + theorem UpperSet.lt_sdiff_left +/- theorem UpperSet.mem_mk + def UpperSet.sdiff + theorem UpperSet.sdiff_inf_upperClosure + theorem UpperSet.sdiff_singleton + theorem UpperSet.upperClosure_inf_sdiff + theorem le_upperClosure + theorem lowerClosure_le 2023-10-21 09:35:34 6f830e6 chore: bump toolchain to v4.2.0-rc4 (#7813) ESTIMATED CHANGES Modified lean-toolchain 2023-10-21 09:35:33 ce6094f feat(CategoryTheory): a product of distinguished triangles is distinguished (#7641) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Triangulated/Basic.lean + theorem CategoryTheory.Pretriangulated.Triangle.isIso_of_isIsos + def CategoryTheory.Pretriangulated.productTriangle.fan + def CategoryTheory.Pretriangulated.productTriangle.isLimitFan + def CategoryTheory.Pretriangulated.productTriangle.lift + theorem CategoryTheory.Pretriangulated.productTriangle.zero₃₁ + def CategoryTheory.Pretriangulated.productTriangle.π + def CategoryTheory.Pretriangulated.productTriangle Modified Mathlib/CategoryTheory/Triangulated/Pretriangulated.lean + def CategoryTheory.Pretriangulated.completeDistinguishedTriangleMorphism + theorem CategoryTheory.Pretriangulated.productTriangle_distinguished 2023-10-21 09:35:32 21c7184 feat: Adjunction between topological spaces and locales (#4593) We define the contravariant functors between the categories of Frames and Topological Spaces and prove that they form an adjunction. Work started at the BIRS workshop "Formalization of Cohomology Theories", Banff, May 2023. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Data/Set/Basic.lean + theorem Set.setOf_bot + theorem Set.setOf_top Added Mathlib/Topology/Order/Category/FrameAdjunction.lean + theorem Locale.PT.isOpen_iff + def Locale.PT + def Locale.adjunctionTopToLocalePT + def Locale.counitAppCont + def Locale.localePointOfSpacePoint + def Locale.openOfElementHom + def Locale.pt Modified Mathlib/Topology/Sets/Opens.lean + theorem TopologicalSpace.Opens.mk_empty + theorem TopologicalSpace.Opens.mk_univ Modified docs/references.bib 2023-10-21 07:39:00 1623012 chore: bump Std dependency (shiftRight lemmas) (#7771) ESTIMATED CHANGES Modified Mathlib/Data/Nat/Size.lean - theorem Nat.shiftRight_eq_div_pow Modified Mathlib/Init/Data/Nat/Bitwise.lean - theorem Nat.shiftRight_add - theorem Nat.shiftRight_succ - theorem Nat.shiftRight_zero - theorem Nat.zero_shiftRight Modified lake-manifest.json 2023-10-21 06:49:10 ed50fee feat: miscellaneous lemmas about local homeomorphisms (#7655) ESTIMATED CHANGES Modified Mathlib/Topology/IsLocallyHomeomorph.lean + theorem IsLocallyHomeomorph.isTopologicalBasis + theorem IsLocallyHomeomorph.of_comp + theorem IsLocallyHomeomorph.openEmbedding_of_comp + theorem IsLocallyHomeomorph.openEmbedding_of_injective + theorem IsLocallyHomeomorphOn.mono + theorem IsLocallyHomeomorphOn.of_comp_left + theorem IsLocallyHomeomorphOn.of_comp_right + theorem OpenEmbedding.isLocallyHomeomorph + theorem isLocallyHomeomorphOn_iff_openEmbedding_restrict + theorem isLocallyHomeomorph_homeomorph + theorem isLocallyHomeomorph_iff_openEmbedding_restrict Modified Mathlib/Topology/LocalHomeomorph.lean + theorem LocalHomeomorph.openEmbedding_restrict +/- theorem LocalHomeomorph.to_openEmbedding 2023-10-21 06:49:09 dac8099 feat: universe generalizations in UniqueGluing and Forget (#7654) + Add a criterion `isLimit_iff` for a cone to be a limit in Limits/Types.lean. + Use the criterion to show the equivalence between the UniqueGluing and PairwiseIntersection sheaf conditions without going through EqualizerProducts, thereby generalize the universes. + Remove theorems/def that are now unnecessary. (cc @justus-springer) + Generalize `isSheaf_iff_isSheaf_forget` for sheaves on sites using `isSheaf_iff_isLimit`; use it to prove and generalize the result on topological spaces, removing a large chunk of code. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Limits/Types.lean + def CategoryTheory.Limits.Types.coneOfSection +/- theorem CategoryTheory.Limits.Types.isLimitEquivSections_apply +/- theorem CategoryTheory.Limits.Types.isLimitEquivSections_symm_apply + theorem CategoryTheory.Limits.Types.isLimit_iff + def CategoryTheory.Limits.Types.sectionOfCone Modified Mathlib/CategoryTheory/Sites/Sheaf.lean + theorem CategoryTheory.Presheaf.isSheaf_comp_of_isSheaf + theorem CategoryTheory.Presheaf.isSheaf_iff_isSheaf_comp + theorem CategoryTheory.Presheaf.isSheaf_of_isSheaf_comp Modified Mathlib/Topology/Sheaves/Forget.lean - def TopCat.Presheaf.SheafCondition.diagramCompPreservesLimits - def TopCat.Presheaf.SheafCondition.mapConeFork + theorem TopCat.Presheaf.isSheaf_iff_isSheaf_comp' +/- theorem TopCat.Presheaf.isSheaf_iff_isSheaf_comp Modified Mathlib/Topology/Sheaves/SheafCondition/UniqueGluing.lean + def TopCat.Presheaf.IsCompatible.sectionPairwise - theorem TopCat.Presheaf.compatible_iff_leftRes_eq_rightRes - theorem TopCat.Presheaf.isGluing_iff_eq_res + theorem TopCat.Presheaf.isGluing_iff_pairwise - theorem TopCat.Presheaf.isSheafUniqueGluing_of_isSheaf_types +/- theorem TopCat.Presheaf.isSheaf_iff_isSheafUniqueGluing_types +/- theorem TopCat.Presheaf.isSheaf_of_isSheafUniqueGluing_types + def TopCat.Presheaf.objPairwiseOfFamily - def TopCat.Presheaf.piOpensIsoSectionsFamily - theorem TopCat.Presheaf.piOpensIsoSectionsFamily_apply 2023-10-21 06:11:50 490560e feat: various criteria for the exactness of short complexes (#7806) ESTIMATED CHANGES Modified Mathlib/Algebra/Homology/ShortComplex/Exact.lean + theorem CategoryTheory.ShortComplex.Exact.epi_f' + theorem CategoryTheory.ShortComplex.Exact.epi_toCycles + theorem CategoryTheory.ShortComplex.Exact.mono_fromOpcycles + theorem CategoryTheory.ShortComplex.Exact.mono_g' + theorem CategoryTheory.ShortComplex.LeftHomologyData.exact_iff_epi_f' + theorem CategoryTheory.ShortComplex.RightHomologyData.exact_iff_mono_g' + theorem CategoryTheory.ShortComplex.exact_iff_epi + theorem CategoryTheory.ShortComplex.exact_iff_epi_kernel_lift + theorem CategoryTheory.ShortComplex.exact_iff_epi_toCycles + theorem CategoryTheory.ShortComplex.exact_iff_mono + theorem CategoryTheory.ShortComplex.exact_iff_mono_cokernel_desc + theorem CategoryTheory.ShortComplex.exact_iff_mono_fromOpcycles Modified Mathlib/CategoryTheory/Preadditive/Basic.lean + theorem CategoryTheory.Preadditive.epi_of_isZero_cokernel' + theorem CategoryTheory.Preadditive.epi_of_isZero_cokernel + theorem CategoryTheory.Preadditive.mono_of_isZero_kernel' + theorem CategoryTheory.Preadditive.mono_of_isZero_kernel 2023-10-20 20:51:30 0ca6e02 feat: preimage of an analytic set is an analytic set (#7805) Also golf a proof. ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Constructions/Polish.lean 2023-10-20 20:51:29 214e72f feat: add a `SetLike` default rule set for `aesop` (#7111) This creates a new `aesop` rule set called `SetLike` to house lemmas about membership in subobjects. Lemmas like `pow_mem` should be included in the rule set: ```lean @[to_additive (attr := aesop safe apply (rule_sets [SetLike]))] theorem pow_mem {M A} [Monoid M] [SetLike A M] [SubmonoidClass A M] {S : A} {x : M} (hx : x ∈ S) : ∀ n : ℕ, x ^ n ∈ S ``` Lemmas about closures, like `AddSubmonoid.closure` should be included in the rule set, but they should be assigned a penalty (here we choose `20` throughout) so that they are not attempted before the general purpose ones like `pow_mem`. ```lean @[to_additive (attr := simp, aesop safe 20 apply (rule_sets [SetLike])) "The `AddSubmonoid` generated by a set includes the set."] theorem subset_closure : s ⊆ closure s := fun _ hx => mem_closure.2 fun _ hS => hS hx ``` In order for `aesop` to make effective use of `AddSubmonoid.closure` it needs the following new lemma. ```lean @[aesop 5% apply (rule_sets [SetLike])] lemma mem_of_subset {s : Set B} (hp : s ⊆ p) {x : B} (hx : x ∈ s) : x ∈ p := hp hx ``` Note: this lemma is marked as very unsafe (`5%`) because it will apply *whenever* the goal is of the form `x ∈ p` where `p` is any term of a `SetLike` instance; and moreover, it will create `s` as a metavariable, which is in general a terrible idea, but necessary for the reason mentioned above. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Algebra/NonUnitalSubalgebra.lean Modified Mathlib/Algebra/Algebra/Subalgebra/Basic.lean Modified Mathlib/Algebra/Star/Basic.lean Modified Mathlib/Algebra/Star/NonUnitalSubalgebra.lean Modified Mathlib/Algebra/Star/SelfAdjoint.lean Modified Mathlib/Algebra/Star/Subalgebra.lean Modified Mathlib/Analysis/Convex/Cone/Basic.lean Modified Mathlib/Data/SetLike/Basic.lean + theorem SetLike.mem_of_subset Modified Mathlib/FieldTheory/Subfield.lean + theorem SubfieldClass.ofScientific_mem Modified Mathlib/GroupTheory/GroupAction/SubMulAction.lean Modified Mathlib/GroupTheory/Subgroup/Basic.lean Modified Mathlib/GroupTheory/Submonoid/Basic.lean Modified Mathlib/GroupTheory/Subsemigroup/Basic.lean Modified Mathlib/LinearAlgebra/Span.lean Modified Mathlib/RingTheory/Adjoin/Basic.lean Modified Mathlib/RingTheory/NonUnitalSubring/Basic.lean Modified Mathlib/RingTheory/NonUnitalSubsemiring/Basic.lean Modified Mathlib/RingTheory/Subring/Basic.lean Modified Mathlib/RingTheory/Subsemiring/Basic.lean + theorem ofNat_mem Modified Mathlib/Tactic.lean Added Mathlib/Tactic/SetLike.lean Modified Mathlib/Topology/Algebra/Algebra.lean Modified Mathlib/Topology/Algebra/StarSubalgebra.lean Added test/set_like.lean 2023-10-20 20:51:28 bd6067c feat: Uniformly and strongly convex functions (#7040) We define uniform convex functions with modulus `φ` and `m`-strongly convex functions on a normed space. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/Convex/Strong.lean + def StrongConcaveOn + def StrongConvexOn + theorem UniformConcaveOn.add + theorem UniformConcaveOn.concaveOn + theorem UniformConcaveOn.mono + theorem UniformConcaveOn.neg + theorem UniformConcaveOn.strictConcaveOn + theorem UniformConcaveOn.sub + def UniformConcaveOn + theorem UniformConvexOn.add + theorem UniformConvexOn.convexOn + theorem UniformConvexOn.mono + theorem UniformConvexOn.neg + theorem UniformConvexOn.strictConvexOn + theorem UniformConvexOn.sub + def UniformConvexOn + theorem strongConcaveOn_iff_convex + theorem strongConcaveOn_zero + theorem strongConvexOn_iff_convex + theorem strongConvexOn_zero + theorem uniformConcaveOn_zero + theorem uniformConvexOn_zero 2023-10-20 19:41:35 142eedb chore: Remove DiscrTree.getElements, use std4’s `.values` (#7800) it duplicates a definition found in `std4`. In fact, it duplicates two definitions found in `std4`, so use `.values` consistently, so that `.elements` can be dropped from `std4` (in https://github.com/leanprover/std4/pull/285). ESTIMATED CHANGES Modified Mathlib/Lean/Meta/Simp.lean - def Lean.Meta.DiscrTree.getElements Modified Mathlib/Tactic/ToAdditive.lean 2023-10-20 18:15:22 1020213 chore: refactor de-duplication in rw? (#7799) Slight refactor of how de-duplication works in `rw?`. ESTIMATED CHANGES Modified Mathlib/Tactic/Rewrites.lean + def Mathlib.Tactic.Rewrites.RewriteResult.ppResult + def Mathlib.Tactic.Rewrites.RewriteResult.prepare_ppResult + def Mathlib.Tactic.Rewrites.rewritesDedup 2023-10-20 17:53:21 d6a0663 chore: ignore PRs from master (#7807) The popular (and very useful for mathlib reviewing) extension "github pull requests and issues" helpfully suggests people are reviewing #7215 when they check out master, this is sub-optimal so we add a setting to ignore this branch. See https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/PR.20associated.20with.20default.20branch/near/397749801 ESTIMATED CHANGES Modified .vscode/settings.json 2023-10-20 16:10:14 b8e9a28 fix(says tactic): Don’t stumble over `Try this:\n` instead of `Try this:␣` (#7803) as discussed in https://leanprover.zulipchat.com/#narrow/stream/113489-new-members/topic/.E2.9C.94.20Lake.20build.20succeeds.20on.20local.2C.20but.20fails.20on.20GitHub.20Action/near/397679705 ESTIMATED CHANGES Modified Mathlib/Tactic/Says.lean Modified test/says.lean + def P + def Q + def very_long_lemma_name_aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + def very_long_lemma_name_bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb 2023-10-20 15:15:33 1b4e26a chore(Topology): minimize some imports (#7775) For faster build times and clearer dependencies. No attempt at being exhaustive. The new import in `Clopen.lean` had been transitively imported before. ESTIMATED CHANGES Modified Mathlib/Topology/Clopen.lean Modified Mathlib/Topology/CompactOpen.lean Modified Mathlib/Topology/Compactness/Compact.lean Modified Mathlib/Topology/Connected/Basic.lean Modified Mathlib/Topology/Connected/PathConnected.lean Modified Mathlib/Topology/EMetricSpace/Basic.lean Modified Mathlib/Topology/Inseparable.lean Modified Mathlib/Topology/MetricSpace/Lipschitz.lean Modified Mathlib/Topology/NoetherianSpace.lean 2023-10-20 14:35:26 33e0d3e feat(Topology/Sheaves/Functors): Specialize pullback-pushforward adjunction to sheaves over topological spaces. (#7722) Port of https://github.com/leanprover-community/mathlib/pull/17561 ESTIMATED CHANGES Modified Mathlib/AlgebraicGeometry/GammaSpecAdjunction.lean Modified Mathlib/AlgebraicGeometry/Spec.lean Modified Mathlib/Geometry/RingedSpace/OpenImmersion.lean Modified Mathlib/Topology/Sheaves/Functors.lean - theorem TopCat.Presheaf.SheafConditionPairwiseIntersections.mapCocone - theorem TopCat.Presheaf.SheafConditionPairwiseIntersections.map_diagram - theorem TopCat.Presheaf.SheafConditionPairwiseIntersections.pushforward_sheaf_of_sheaf + def TopCat.Sheaf.pullback + def TopCat.Sheaf.pullbackIso + def TopCat.Sheaf.pullbackPushforwardAdjunction + theorem TopCat.Sheaf.pullback_eq +/- def TopCat.Sheaf.pushforward + def TopCat.Sheaf.pushforwardForgetIso + theorem TopCat.Sheaf.pushforward_forget + theorem TopCat.Sheaf.pushforward_map + theorem TopCat.Sheaf.pushforward_obj_val +/- theorem TopCat.Sheaf.pushforward_sheaf_of_sheaf Modified Mathlib/Topology/Sheaves/SheafCondition/Sites.lean + theorem compatiblePreserving_opens_map + theorem coverPreserving_opens_map 2023-10-20 14:35:25 3b7adb7 feat: a homotopy of maps of cochain complexes identifies to (-1)-cochains in the complex of homomorphisms (#7656) This PR introduces an equivalence between homotopy of maps of cochains complexes and `(-1)`-cochains satisfying suitable conditions. It also introduces the action of an additive functor on cochains. ESTIMATED CHANGES Modified Mathlib/Algebra/Homology/HomotopyCategory/HomComplex.lean + def CochainComplex.HomComplex.Cochain.equivHomotopy + theorem CochainComplex.HomComplex.Cochain.equivHomotopy_apply_of_eq + def CochainComplex.HomComplex.Cochain.map + theorem CochainComplex.HomComplex.Cochain.map_add + theorem CochainComplex.HomComplex.Cochain.map_comp + theorem CochainComplex.HomComplex.Cochain.map_neg + theorem CochainComplex.HomComplex.Cochain.map_ofHom + theorem CochainComplex.HomComplex.Cochain.map_sub + theorem CochainComplex.HomComplex.Cochain.map_v + theorem CochainComplex.HomComplex.Cochain.map_zero + theorem CochainComplex.HomComplex.Cochain.ofHom_injective + theorem CochainComplex.HomComplex.δ_map 2023-10-20 14:35:24 54f4b74 feat: pretriangulated categories have finite biproducts (#7626) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Triangulated/Basic.lean + def CategoryTheory.Pretriangulated.binaryBiproductTriangle + def CategoryTheory.Pretriangulated.binaryProductTriangle + def CategoryTheory.Pretriangulated.binaryProductTriangleIsoBinaryBiproductTriangle Modified Mathlib/CategoryTheory/Triangulated/Pretriangulated.lean + def CategoryTheory.Pretriangulated.binaryBiproductData + theorem CategoryTheory.Pretriangulated.binaryBiproductTriangle_distinguished + theorem CategoryTheory.Pretriangulated.binaryProductTriangle_distinguished + theorem CategoryTheory.Pretriangulated.exists_iso_binaryBiproduct_of_distTriang 2023-10-20 14:35:23 585294d feat(CategoryTheory): covariant functoriality of graded objects on the index set (#7425) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/GradedObject.lean + theorem CategoryTheory.GradedObject.CofanMapObjFun.hasMap + theorem CategoryTheory.GradedObject.CofanMapObjFun.inj_iso_hom + def CategoryTheory.GradedObject.CofanMapObjFun.mk + theorem CategoryTheory.GradedObject.CofanMapObjFun.ιMapObj_iso_inv + theorem CategoryTheory.GradedObject.congr_mapMap + theorem CategoryTheory.GradedObject.isIso_of_isIso_apply + def CategoryTheory.GradedObject.isoMk + theorem CategoryTheory.GradedObject.iso_hom_inv_id_apply + theorem CategoryTheory.GradedObject.iso_inv_hom_id_apply + theorem CategoryTheory.GradedObject.mapMap_comp + theorem CategoryTheory.GradedObject.mapMap_id + theorem CategoryTheory.GradedObject.mapObj_ext + theorem CategoryTheory.GradedObject.ι_descMapObj + theorem CategoryTheory.GradedObject.ι_mapMap Modified Mathlib/CategoryTheory/Limits/Shapes/Products.lean + def CategoryTheory.Limits.Cofan.IsColimit.desc + theorem CategoryTheory.Limits.Cofan.IsColimit.fac + theorem CategoryTheory.Limits.Cofan.IsColimit.hom_ext + def CategoryTheory.Limits.Fan.IsLimit.desc + theorem CategoryTheory.Limits.Fan.IsLimit.fac + theorem CategoryTheory.Limits.Fan.IsLimit.hom_ext 2023-10-20 14:35:21 1a371eb feat: exactness for short complexes coincides with CategoryTheory.Exact (#7280) ESTIMATED CHANGES Modified Mathlib/Algebra/Homology/ShortComplex/Exact.lean + theorem CategoryTheory.ShortComplex.Exact.comp_eq_zero + theorem CategoryTheory.ShortComplex.Exact.isZero_of_both_zeros + theorem CategoryTheory.ShortComplex.Exact.map + theorem CategoryTheory.ShortComplex.Exact.map_of_preservesLeftHomologyOf + theorem CategoryTheory.ShortComplex.Exact.map_of_preservesRightHomologyOf + theorem CategoryTheory.ShortComplex.LeftHomologyData.exact_map_iff + theorem CategoryTheory.ShortComplex.RightHomologyData.exact_map_iff + theorem CategoryTheory.ShortComplex.exact_iff_iCycles_pOpcycles_zero + theorem CategoryTheory.ShortComplex.exact_iff_i_p_zero + theorem CategoryTheory.ShortComplex.exact_iff_kernel_ι_comp_cokernel_π_zero + theorem CategoryTheory.ShortComplex.exact_map_iff_of_faithful + theorem CategoryTheory.exact_iff_shortComplex_exact 2023-10-20 14:35:20 0227fee feat: description of sheaves for regular sieves (#6919) We prove that presheaves satisfying an equaliser condition on preregular categories are sheaves for `regular` presieves. - [x] depends on: #6876 ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Sites/RegularExtensive.lean + theorem CategoryTheory.EqualizerCondition.isSheafFor + def CategoryTheory.EqualizerCondition + def CategoryTheory.EqualizerFirstObjIso + def CategoryTheory.EqualizerSecondObjIso + theorem CategoryTheory.IsSheafForRegular.equalizerCondition + def CategoryTheory.MapToEqualizer + theorem CategoryTheory.isSheafFor_regular_of_projective + theorem CategoryTheory.isSheaf_iff_equalizerCondition + theorem CategoryTheory.isSheaf_of_projective 2023-10-20 14:35:19 93521b7 feat: condensed sets are equivalent to sheaves on `Stonean` and `Profinite` (#6810) - [x] depends on: #6809 ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Condensed/Equivalence.lean + def Condensed.ProfiniteCompHaus.equivalence + theorem Condensed.StoneanCompHaus.coherentTopology_is_induced + theorem Condensed.StoneanCompHaus.coverDense.inducedTopology_Sieve_iff_EffectiveEpiFamily + theorem Condensed.StoneanCompHaus.coverDense + theorem Condensed.StoneanCompHaus.coverLifting + theorem Condensed.StoneanCompHaus.coverPreserving + def Condensed.StoneanCompHaus.equivalence + theorem Condensed.StoneanCompHaus.generate_singleton_mem_coherentTopology + theorem Condensed.StoneanProfinite.coherentTopology_is_induced + theorem Condensed.StoneanProfinite.coverDense.inducedTopology_Sieve_iff_EffectiveEpiFamily + theorem Condensed.StoneanProfinite.coverDense + theorem Condensed.StoneanProfinite.coverLifting + theorem Condensed.StoneanProfinite.coverPreserving + def Condensed.StoneanProfinite.equivalence + theorem Condensed.StoneanProfinite.generate_singleton_mem_coherentTopology 2023-10-20 13:51:26 6f69c1a feat: the pretriangulated structure on the opposite category (#7336) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Opposites.lean + theorem CategoryTheory.Iso.unop_hom_inv_id_app + theorem CategoryTheory.Iso.unop_inv_hom_id_app Modified Mathlib/CategoryTheory/Preadditive/Basic.lean + theorem CategoryTheory.Preadditive.neg_iso_hom + theorem CategoryTheory.Preadditive.neg_iso_inv + theorem CategoryTheory.Preadditive.smul_iso_hom + theorem CategoryTheory.Preadditive.smul_iso_inv Modified Mathlib/CategoryTheory/Triangulated/Opposite.lean + theorem CategoryTheory.Pretriangulated.Opposite.complete_distinguished_triangle_morphism + theorem CategoryTheory.Pretriangulated.Opposite.contractible_distinguished + theorem CategoryTheory.Pretriangulated.Opposite.distinguished_cocone_triangle + theorem CategoryTheory.Pretriangulated.Opposite.rotate_distinguished_triangle + theorem CategoryTheory.Pretriangulated.mem_distTriang_op_iff' + theorem CategoryTheory.Pretriangulated.mem_distTriang_op_iff + theorem CategoryTheory.Pretriangulated.opShiftFunctorEquivalence_counitIso_hom_naturality + theorem CategoryTheory.Pretriangulated.opShiftFunctorEquivalence_counitIso_inv_naturality + theorem CategoryTheory.Pretriangulated.opShiftFunctorEquivalence_unitIso_hom_naturality + theorem CategoryTheory.Pretriangulated.opShiftFunctorEquivalence_unitIso_inv_naturality + theorem CategoryTheory.Pretriangulated.op_distinguished + theorem CategoryTheory.Pretriangulated.unop_distinguished 2023-10-20 09:11:20 53ae52b fix(Order/Hom): coercion lemmas for lattice and complete lattice (#7796) These are a number of small fixes of coercions of lattices and complete lattices, made by Yaël Dillies in the context of a larger refactor of the branch `frametopadjunction`. Co-authored by: Yaël Dillies ESTIMATED CHANGES Modified Mathlib/Order/Hom/CompleteLattice.lean + theorem CompleteLatticeHom.coe_mk + theorem CompleteLatticeHom.coe_toBoundedLatticeHom + theorem CompleteLatticeHom.coe_tosInfHom + theorem CompleteLatticeHom.coe_tosSupHom +/- theorem CompleteLatticeHom.toFun_eq_coe - theorem CompleteLatticeHom.toFun_eq_coe_aux + theorem FrameHom.coe_mk + theorem FrameHom.coe_toInfTopHom + theorem FrameHom.coe_toLatticeHom +/- theorem FrameHom.toFun_eq_coe - theorem FrameHom.toFun_eq_coe_aux + theorem sInfHom.coe_mk +/- theorem sInfHom.toFun_eq_coe + theorem sSupHom.coe_mk +/- theorem sSupHom.toFun_eq_coe Modified Mathlib/Order/Hom/Lattice.lean + theorem BoundedLatticeHom.coe_mk + theorem BoundedLatticeHom.coe_toBoundedOrderHom + theorem BoundedLatticeHom.coe_toInfTopHom +/- theorem BoundedLatticeHom.coe_toLatticeHom + theorem BoundedLatticeHom.coe_toSupBotHom +/- theorem BoundedLatticeHom.toFun_eq_coe + theorem InfHom.coe_mk +/- theorem InfHom.toFun_eq_coe + theorem InfTopHom.coe_mk +/- theorem InfTopHom.coe_toInfHom +/- theorem InfTopHom.coe_toTopHom +/- theorem InfTopHom.toFun_eq_coe + theorem LatticeHom.coe_mk +/- theorem LatticeHom.coe_toInfHom +/- theorem LatticeHom.coe_toSupHom +/- theorem LatticeHom.toFun_eq_coe + theorem SupBotHom.coe_mk +/- theorem SupBotHom.coe_toBotHom +/- theorem SupBotHom.coe_toSupHom +/- theorem SupBotHom.toFun_eq_coe + theorem SupHom.coe_mk +/- theorem SupHom.toFun_eq_coe 2023-10-20 06:54:16 afc5703 feat: add exponentiation option back to `linear_combination` (#7789) [mathlib3#15428](https://github.com/leanprover-community/mathlib/pull/15428) added an exponent option to `linear_combination`. The idea is that `linear_combination (exp := 2) ...` will take a linear combination of hypotheses adding up to the *square* of the goal. This is only mildly useful on its own, but it's a very useful certificate syntax for [mathlib3#15425](https://github.com/leanprover-community/mathlib/pull/15425). ESTIMATED CHANGES Modified Mathlib/Tactic/LinearCombination.lean - structure Mathlib.Tactic.LinearCombination.Config + theorem Mathlib.Tactic.LinearCombination.eq_of_add_pow Modified test/linear_combination.lean 2023-10-20 05:41:11 08a8af0 fix: `eta_reduce` tactic should recursively reduce (#7785) Reported by eric-wieser in #7773 ESTIMATED CHANGES Modified Mathlib/Tactic/DefEqTransformations.lean Modified test/DefEqTransformations.lean 2023-10-20 05:04:14 aa0ff04 style: rename `Stream'.nth` to `Stream'.get` (#7514) Many of `nth` (e.g. `list.nth`, `stream.seq.nth`) are renamed to `get?` in Mathlib 4, but `Stream'.nth` had been remained as it. ESTIMATED CHANGES Modified Mathlib/Algebra/ContinuedFractions/Computation/TerminatesIffRat.lean Modified Mathlib/Algebra/ContinuedFractions/Computation/Translations.lean Modified Mathlib/Combinatorics/Hindman.lean +/- theorem Hindman.FP.singleton Modified Mathlib/Control/LawfulFix.lean Modified Mathlib/Data/Seq/Computation.lean Modified Mathlib/Data/Seq/Seq.lean + theorem Stream'.Seq.ofList_get - theorem Stream'.Seq.ofList_nth Modified Mathlib/Data/Seq/WSeq.lean Modified Mathlib/Data/Stream/Defs.lean +/- def Stream'.All +/- def Stream'.Any +/- def Stream'.apply +/- def Stream'.drop +/- def Stream'.enum + def Stream'.get +/- def Stream'.map - def Stream'.nth +/- def Stream'.tail Modified Mathlib/Data/Stream/Init.lean +/- theorem Stream'.all_def +/- theorem Stream'.any_def + theorem Stream'.concat_take_get - theorem Stream'.concat_take_nth + theorem Stream'.cons_get_inits_core - theorem Stream'.cons_nth_inits_core +/- theorem Stream'.get?_take + theorem Stream'.get_const + theorem Stream'.get_drop + theorem Stream'.get_enum + theorem Stream'.get_even + theorem Stream'.get_inits + theorem Stream'.get_interleave_left + theorem Stream'.get_interleave_right + theorem Stream'.get_map + theorem Stream'.get_nats + theorem Stream'.get_odd + theorem Stream'.get_of_bisim + theorem Stream'.get_succ + theorem Stream'.get_succ_cons + theorem Stream'.get_succ_iterate' + theorem Stream'.get_succ_iterate + theorem Stream'.get_tail + theorem Stream'.get_tails + theorem Stream'.get_unfolds_head_tail + theorem Stream'.get_zero_cons + theorem Stream'.get_zero_iterate + theorem Stream'.get_zip +/- theorem Stream'.head_drop + theorem Stream'.mem_of_get_eq - theorem Stream'.mem_of_nth_eq - theorem Stream'.nth_const - theorem Stream'.nth_drop - theorem Stream'.nth_enum - theorem Stream'.nth_even - theorem Stream'.nth_inits - theorem Stream'.nth_interleave_left - theorem Stream'.nth_interleave_right - theorem Stream'.nth_map - theorem Stream'.nth_nats - theorem Stream'.nth_odd - theorem Stream'.nth_of_bisim - theorem Stream'.nth_succ - theorem Stream'.nth_succ_cons - theorem Stream'.nth_succ_iterate' - theorem Stream'.nth_succ_iterate - theorem Stream'.nth_tail - theorem Stream'.nth_tails - theorem Stream'.nth_unfolds_head_tail - theorem Stream'.nth_zero_cons - theorem Stream'.nth_zero_iterate - theorem Stream'.nth_zip +/- theorem Stream'.take_succ' 2023-10-19 22:44:39 afd3aca feat: rw? can discharge side conditions using local hypotheses (#7770) ESTIMATED CHANGES Modified Mathlib/Tactic/Rewrites.lean + def Lean.Meta.RewriteResult.by? + def Mathlib.Tactic.Rewrites.solveByElim Modified test/rewrites.lean 2023-10-19 22:16:10 0a44be3 feat(LinearAlgebra/Matrix): transvection matrix is block triangular (#7765) ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/Matrix/Block.lean + theorem Matrix.blockTriangular_one + theorem Matrix.blockTriangular_stdBasisMatrix' + theorem Matrix.blockTriangular_stdBasisMatrix + theorem Matrix.blockTriangular_transvection' + theorem Matrix.blockTriangular_transvection 2023-10-19 21:13:11 9eb25ab feat: miscellaneous Lie algebra lemmas (#7782) ESTIMATED CHANGES Modified Mathlib/Algebra/Lie/Basic.lean + theorem Module.Dual.lie_apply Modified Mathlib/Algebra/Lie/Killing.lean + theorem LieAlgebra.IsKilling.restrictBilinear_killingForm + theorem LieIdeal.restrictBilinear_killingForm + theorem LieModule.lie_traceForm_eq_zero +/- theorem LieModule.traceForm_apply_apply + theorem LieModule.traceForm_apply_eq_zero_of_mem_lcs_of_mem_center + theorem LieModule.traceForm_eq_zero_if_mem_lcs_of_mem_ucs Modified Mathlib/Algebra/Lie/Nilpotent.lean + theorem LieSubmodule.ucs_bot_one Modified Mathlib/Algebra/Lie/OfAssociative.lean Modified Mathlib/Algebra/Lie/Solvable.lean + theorem LieAlgebra.radical_eq_top_of_isSolvable 2023-10-19 20:25:27 267b8cb feat: natDegree_sub_C (#7776) Adds `degree_sub_C, natDegree_sub_C`, analogous to `..._add_C`. Also relocates `C_neg` and `C_sub` to `Basic.lean` (where `C_add` is) so that the new lemmas can be in the same file as their `add` counterparts. ESTIMATED CHANGES Modified Mathlib/Data/Polynomial/Basic.lean + theorem Polynomial.C_neg + theorem Polynomial.C_sub Modified Mathlib/Data/Polynomial/Degree/Definitions.lean + theorem Polynomial.degree_sub_C +/- theorem Polynomial.natDegree_X_sub_C + theorem Polynomial.natDegree_sub_C Modified Mathlib/Data/Polynomial/Eval.lean - theorem Polynomial.C_neg - theorem Polynomial.C_sub Modified Mathlib/LinearAlgebra/Matrix/Charpoly/Coeff.lean 2023-10-19 20:25:26 50e3588 chore(Logic/Function/OfArity): rename `Arity` to `Function.OfArity` (#7772) Also puts it in a new file. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Logic/Function/OfArity.lean + def Function.OfArity.const + theorem Function.OfArity.const_succ + theorem Function.OfArity.const_succ_apply + theorem Function.OfArity.const_zero + def Function.OfArity + theorem Function.ofArity_succ + theorem Function.ofArity_zero Modified Mathlib/SetTheory/ZFC/Basic.lean - def Arity.const - theorem Arity.const_succ - theorem Arity.const_succ_apply - theorem Arity.const_zero - def Arity +/- def PSet.Arity.Equiv +/- theorem PSet.Arity.equiv_const +/- def PSet.Definable.EqMk +/- def PSet.Definable.Resp +/- def PSet.Resp.eval +/- theorem PSet.Resp.eval_val - theorem arity_succ - theorem arity_zero 2023-10-19 20:25:25 924eae1 chore: protect `Int.xor` (#7757) This cleans up some local notation needed to work around the clash with the `Bool` `xor` in the root namespace. ESTIMATED CHANGES Modified Mathlib/Data/Int/Bitwise.lean +/- theorem Int.bitwise_xor +/- theorem Int.bodd_add +/- theorem Int.bodd_subNatNat +/- theorem Int.lxor_bit +/- theorem Int.testBit_lxor Modified Mathlib/Init/Data/Int/Bitwise.lean - def Int.xor 2023-10-19 19:17:45 97c0e22 docs: capitalize `List.All` in it's own docstring (#7784) ESTIMATED CHANGES Modified Mathlib/Data/List/Defs.lean 2023-10-19 18:23:45 20a9a01 chore (ValuationSubring): change from set to subtype (#7780) Currently the file uses `{S | A ≤ S}` for `primeSpectrumEquiv` and other declarations. This changes those to `{S // A ≤ S}` which makes the `simpNF` happier about the generated `simp` lemmas. ESTIMATED CHANGES Modified Mathlib/RingTheory/Valuation/ValuationSubring.lean +/- def ValuationSubring.primeSpectrumEquiv +/- def ValuationSubring.primeSpectrumOrderEquiv 2023-10-19 17:07:06 6fc8e6e chore: remove nonterminal simp (#7580) Removes nonterminal simps on lines looking like `simp [...]` ESTIMATED CHANGES Modified Mathlib/Algebra/Associated.lean Modified Mathlib/Algebra/ContinuedFractions/Computation/Translations.lean Modified Mathlib/Algebra/DirectSum/Ring.lean Modified Mathlib/Algebra/Group/Basic.lean Modified Mathlib/Algebra/GroupPower/Lemmas.lean Modified Mathlib/Algebra/Order/Field/Basic.lean Modified Mathlib/Algebra/Order/Floor.lean Modified Mathlib/Algebra/Order/Ring/WithTop.lean Modified Mathlib/Algebra/Polynomial/BigOperators.lean Modified Mathlib/Algebra/QuaternionBasis.lean Modified Mathlib/Algebra/RingQuot.lean Modified Mathlib/Algebra/Tropical/Lattice.lean Modified Mathlib/AlgebraicTopology/SimplexCategory.lean Modified Mathlib/Analysis/Calculus/FDeriv/Bilinear.lean Modified Mathlib/Analysis/Complex/Isometry.lean Modified Mathlib/Analysis/Convex/Between.lean Modified Mathlib/Analysis/Normed/Order/UpperLower.lean Modified Mathlib/Analysis/NormedSpace/BoundedLinearMaps.lean Modified Mathlib/Analysis/NormedSpace/Pointwise.lean Modified Mathlib/Analysis/NormedSpace/RieszLemma.lean Modified Mathlib/CategoryTheory/Adjunction/Basic.lean Modified Mathlib/CategoryTheory/Triangulated/Pretriangulated.lean Modified Mathlib/Combinatorics/SimpleGraph/Basic.lean Modified Mathlib/Combinatorics/SimpleGraph/Connectivity.lean Modified Mathlib/Combinatorics/SimpleGraph/IncMatrix.lean Modified Mathlib/Computability/Partrec.lean Modified Mathlib/Computability/PartrecCode.lean Modified Mathlib/Computability/Primrec.lean Modified Mathlib/Computability/TMToPartrec.lean Modified Mathlib/Control/Applicative.lean Modified Mathlib/Control/Basic.lean Modified Mathlib/Data/Bitvec/Lemmas.lean Modified Mathlib/Data/Complex/Exponential.lean Modified Mathlib/Data/DFinsupp/Basic.lean Modified Mathlib/Data/Fin/Basic.lean Modified Mathlib/Data/FinEnum.lean Modified Mathlib/Data/Finset/Basic.lean Modified Mathlib/Data/Finset/NoncommProd.lean Modified Mathlib/Data/Finsupp/Basic.lean Modified Mathlib/Data/Finsupp/Defs.lean Modified Mathlib/Data/Fintype/Quotient.lean Modified Mathlib/Data/Int/GCD.lean Modified Mathlib/Data/List/Basic.lean Modified Mathlib/Data/List/Card.lean Modified Mathlib/Data/List/Count.lean Modified Mathlib/Data/List/Cycle.lean Modified Mathlib/Data/List/Infix.lean Modified Mathlib/Data/List/MinMax.lean Modified Mathlib/Data/List/Perm.lean Modified Mathlib/Data/List/Permutation.lean Modified Mathlib/Data/List/Sigma.lean Modified Mathlib/Data/Matrix/DualNumber.lean Modified Mathlib/Data/Multiset/Basic.lean Modified Mathlib/Data/Multiset/Powerset.lean Modified Mathlib/Data/Nat/Factorization/Basic.lean Modified Mathlib/Data/Nat/Factors.lean Modified Mathlib/Data/Nat/PSub.lean Modified Mathlib/Data/Nat/Pairing.lean Modified Mathlib/Data/Nat/Prime.lean Modified Mathlib/Data/Num/Lemmas.lean Modified Mathlib/Data/Ordmap/Ordset.lean Modified Mathlib/Data/PFun.lean Modified Mathlib/Data/Part.lean Modified Mathlib/Data/Polynomial/Basic.lean Modified Mathlib/Data/Rat/Defs.lean Modified Mathlib/Data/Rat/Floor.lean Modified Mathlib/Data/Rat/Order.lean Modified Mathlib/Data/Real/CauSeqCompletion.lean Modified Mathlib/Data/Seq/Computation.lean Modified Mathlib/Data/Seq/Parallel.lean Modified Mathlib/Data/Seq/Seq.lean Modified Mathlib/Data/Seq/WSeq.lean Modified Mathlib/Data/Set/Enumerate.lean Modified Mathlib/Data/Set/Function.lean Modified Mathlib/Data/Set/Image.lean Modified Mathlib/Data/Set/Intervals/Basic.lean Modified Mathlib/Data/Set/Intervals/OrdConnectedComponent.lean Modified Mathlib/Data/Set/Intervals/Pi.lean Modified Mathlib/Data/Set/Prod.lean Modified Mathlib/Data/String/Basic.lean Modified Mathlib/Data/Sum/Order.lean Modified Mathlib/Data/Sym/Sym2.lean Modified Mathlib/Data/TypeVec.lean Modified Mathlib/Data/Vector/Basic.lean Modified Mathlib/Data/ZMod/Basic.lean Modified Mathlib/Deprecated/Submonoid.lean Modified Mathlib/Dynamics/PeriodicPts.lean Modified Mathlib/Geometry/Euclidean/Angle/Unoriented/Affine.lean Modified Mathlib/Geometry/Euclidean/MongePoint.lean Modified Mathlib/Geometry/Manifold/ContMDiff.lean Modified Mathlib/GroupTheory/CoprodI.lean Modified Mathlib/GroupTheory/HNNExtension.lean Modified Mathlib/GroupTheory/Perm/Cycle/Concrete.lean Modified Mathlib/GroupTheory/Perm/Option.lean Modified Mathlib/GroupTheory/Subgroup/Finite.lean Modified Mathlib/Init/Data/Nat/Bitwise.lean Modified Mathlib/Init/Meta/WellFoundedTactics.lean Modified Mathlib/LinearAlgebra/Finsupp.lean Modified Mathlib/LinearAlgebra/Matrix/Circulant.lean Modified Mathlib/LinearAlgebra/Matrix/Determinant.lean Modified Mathlib/LinearAlgebra/Orientation.lean Modified Mathlib/LinearAlgebra/QuadraticForm/Basic.lean Modified Mathlib/Logic/Equiv/Basic.lean Modified Mathlib/Logic/Equiv/LocalEquiv.lean Modified Mathlib/MeasureTheory/Constructions/BorelSpace/Basic.lean Modified Mathlib/MeasureTheory/Function/L1Space.lean Modified Mathlib/MeasureTheory/Measure/FiniteMeasure.lean Modified Mathlib/MeasureTheory/Measure/MeasureSpace.lean Modified Mathlib/MeasureTheory/Measure/OuterMeasure.lean Modified Mathlib/MeasureTheory/PiSystem.lean Modified Mathlib/ModelTheory/DirectLimit.lean Modified Mathlib/ModelTheory/ElementaryMaps.lean Modified Mathlib/NumberTheory/PellMatiyasevic.lean Modified Mathlib/NumberTheory/Zsqrtd/Basic.lean Modified Mathlib/Order/CompleteLattice.lean Modified Mathlib/Order/Filter/Prod.lean Modified Mathlib/Order/JordanHolder.lean Modified Mathlib/Order/OmegaCompletePartialOrder.lean Modified Mathlib/Probability/Process/Filtration.lean Modified Mathlib/Probability/Variance.lean Modified Mathlib/RingTheory/IntegralClosure.lean Modified Mathlib/RingTheory/IntegralDomain.lean Modified Mathlib/RingTheory/IsTensorProduct.lean Modified Mathlib/RingTheory/Polynomial/Basic.lean Modified Mathlib/RingTheory/WittVector/InitTail.lean Modified Mathlib/SetTheory/Ordinal/Notation.lean Modified Mathlib/Tactic/Abel.lean Modified Mathlib/Tactic/NormNum/Basic.lean Modified Mathlib/Testing/SlimCheck/Sampleable.lean Modified Mathlib/Topology/Algebra/InfiniteSum/Basic.lean Modified Mathlib/Topology/Algebra/Valuation.lean Modified Mathlib/Topology/List.lean Modified Mathlib/Topology/Sheaves/SheafCondition/UniqueGluing.lean Modified Mathlib/Topology/UniformSpace/Cauchy.lean Modified Mathlib/Topology/UniformSpace/Equicontinuity.lean 2023-10-19 16:29:14 6549ac3 feat(Analysis/InnerProductSpace/Calculus): Add theorem that abs on ℝ is not differentiable at 0 (#7362) Adds a theorem which states that the absolute value function on ℝ is not differentiable at zero. ESTIMATED CHANGES Modified Mathlib/Analysis/InnerProductSpace/Calculus.lean + theorem not_differentiableAt_abs_zero 2023-10-19 14:38:29 fca1e12 feat(Algebra/DirectSum/Decomposition): extensionality lemma for maps from a decomposition (#7662) Two linear maps from a module with a decomposition agree if they agree on every piece. Also replaces some bad `simps` lemmas with manual ones. ESTIMATED CHANGES Modified Mathlib/Algebra/DirectSum/Decomposition.lean + theorem DirectSum.decomposeLinearEquiv_apply + theorem DirectSum.decomposeLinearEquiv_symm_apply + theorem DirectSum.decomposeLinearEquiv_symm_comp_lof + theorem DirectSum.decompose_lhom_ext 2023-10-19 13:51:19 3203ad2 chore: improve documentation of lake exe graph (#7738) ESTIMATED CHANGES Modified ImportGraph/Main.lean 2023-10-19 13:16:50 4b5f7e5 fix: revert 3c0fc273d6875eef3177eb9d9b4876c0606638b4 (#7774) This reverts PR #7205 which seems to be causing trouble (though we do not understand why). See: https://leanprover.zulipchat.com/#narrow/stream/144837-PR-reviews/topic/.237341.20updateFinset/near/397477372 https://leanprover.zulipchat.com/#narrow/stream/144837-PR-reviews/topic/.237205.20pp.2Ebeta/near/397342667 An example error is: ``` libc++abi: terminating due to uncaught exception of type lean::exception: cannot evaluate `[init]` declaration 'Lean.pp.beta' in the same module ``` ESTIMATED CHANGES Modified Mathlib.lean Deleted Mathlib/Util/PPBeta.lean - def Mathlib.Util.PPBeta.betaReduceFirst Deleted Mathlib/Util/PPBetaOption.lean - def Lean.getPPBeta Deleted test/PPBeta.lean 2023-10-19 13:16:49 ab701ca feat(LinearAlgebra/QuadraticForm/Prod): `inl`, `inr`, and `single` are isometries (#7723) ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/QuadraticForm/Prod.lean + def QuadraticForm.Isometry.inl + def QuadraticForm.Isometry.inr + def QuadraticForm.Isometry.single + theorem QuadraticForm.pi_apply_single 2023-10-19 13:16:47 cf3ecdf feat(LinearAlgebra/QuadraticForm/Prod): lemmas about `polar`,`polarBilin`, and `associated` (#7664) This also slightly adjusts the file sectioning in order to introduce the temporary `Ring` assumption. ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/BilinearForm.lean + theorem BilinForm.sum_apply Modified Mathlib/LinearAlgebra/QuadraticForm/Prod.lean + theorem QuadraticForm.Ring.associated_pi + theorem QuadraticForm.Ring.polarBilin_pi + theorem QuadraticForm.Ring.polar_pi + theorem QuadraticForm.associated_prod + theorem QuadraticForm.polarBilin_prod + theorem QuadraticForm.polar_prod 2023-10-19 13:16:46 d3c0421 feat(Algebra/Module/GradedModule): generalize `+` to `+ᵥ` in indicies (#7573) The action is now of signature `A i → M j → M (i +ᵥ j)` instead of `A i → M j → M (i + j)`. These are defeq when `i` and `j` are of the same type. This allow the grading type of the ring and module to be different, as long as one acts additively on the other, as requested on Zulip: @AntoineChambert-Loir [said](https://leanprover.zulipchat.com/#narrow/stream/116395-maths/topic/submodules.20of.20a.20graded.20module/near/395408542): > In our work with Maria Ines, we had the impression that some basic work on graded stuff is still missing. For example, [...] graduations which are not indexed by the same thing on the ring and on the module (some action of one on the other would be required, of course ) @kbuzzard [said](https://leanprover.zulipchat.com/#narrow/stream/116395-maths/topic/submodules.20of.20a.20graded.20module/near/395411889): > In alg geom it's pretty common to have the rings indexed by $ℕ$ and the modules by $ℤ$. Mathlib is rather short on instances for additive actions, but with suitable instances this will allow the ring to be ℕ-graded and the module to be ℤ-graded. ESTIMATED CHANGES Modified Mathlib/Algebra/GradedMulAction.lean +/- theorem GradedMonoid.mk_smul_mk +/- theorem SetLike.Homogeneous.graded_smul +/- theorem SetLike.coe_GSmul Modified Mathlib/Algebra/Module/GradedModule.lean +/- theorem DirectSum.Gmodule.of_smul_of +/- def DirectSum.Gmodule.smulAddMonoidHom +/- theorem DirectSum.Gmodule.smulAddMonoidHom_apply_of_of +/- theorem DirectSum.Gmodule.smul_def +/- def DirectSum.gsmulHom +/- def GradedModule.isModule +/- def GradedModule.linearEquiv 2023-10-19 12:40:28 7099860 feat(Mathlib/AlgebraicGeometry): Move material on restriction to new file (#7749) Also provides new notations and fixed slow proofs ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/AlgebraicGeometry/AffineScheme.lean Modified Mathlib/AlgebraicGeometry/Morphisms/Basic.lean Modified Mathlib/AlgebraicGeometry/Morphisms/QuasiSeparated.lean Modified Mathlib/AlgebraicGeometry/Morphisms/RingHomProperties.lean + theorem RingHom.RespectsIso.ofRestrict_morphismRestrict_iff_of_isAffine Modified Mathlib/AlgebraicGeometry/OpenImmersion.lean + theorem AlgebraicGeometry.IsOpenImmersion.isoOfRangeEq_hom_fac + theorem AlgebraicGeometry.IsOpenImmersion.isoOfRangeEq_inv_fac - def AlgebraicGeometry.Scheme.restrictFunctor - theorem AlgebraicGeometry.Scheme.restrictFunctor_map_app - theorem AlgebraicGeometry.Scheme.restrictFunctor_map_app_aux - theorem AlgebraicGeometry.Scheme.restrictFunctor_map_base - theorem AlgebraicGeometry.Scheme.restrictFunctor_map_left - theorem AlgebraicGeometry.Scheme.restrictFunctor_map_ofRestrict - theorem AlgebraicGeometry.Scheme.restrictFunctor_obj_hom - theorem AlgebraicGeometry.Scheme.restrictFunctor_obj_left - def AlgebraicGeometry.Scheme.restrictFunctorΓ + theorem AlgebraicGeometry.Scheme.restrict_toPresheafedSpace - theorem AlgebraicGeometry.image_morphismRestrict_preimage - theorem AlgebraicGeometry.isPullback_morphismRestrict - def AlgebraicGeometry.morphismRestrict - def AlgebraicGeometry.morphismRestrictEq - def AlgebraicGeometry.morphismRestrictOpensRange - def AlgebraicGeometry.morphismRestrictRestrict - def AlgebraicGeometry.morphismRestrictRestrictBasicOpen - def AlgebraicGeometry.morphismRestrictStalkMap - theorem AlgebraicGeometry.morphismRestrict_base_coe - theorem AlgebraicGeometry.morphismRestrict_c_app - theorem AlgebraicGeometry.morphismRestrict_comp - theorem AlgebraicGeometry.morphismRestrict_val_base - theorem AlgebraicGeometry.morphismRestrict_ι - def AlgebraicGeometry.pullbackRestrictIsoRestrict - theorem AlgebraicGeometry.pullbackRestrictIsoRestrict_hom_morphismRestrict - theorem AlgebraicGeometry.pullbackRestrictIsoRestrict_hom_restrict - theorem AlgebraicGeometry.pullbackRestrictIsoRestrict_inv_fst - theorem AlgebraicGeometry.Γ_map_morphismRestrict Added Mathlib/AlgebraicGeometry/Restrict.lean + def AlgebraicGeometry.Scheme.restrictFunctor + theorem AlgebraicGeometry.Scheme.restrictFunctor_map_app + theorem AlgebraicGeometry.Scheme.restrictFunctor_map_app_aux + theorem AlgebraicGeometry.Scheme.restrictFunctor_map_base + theorem AlgebraicGeometry.Scheme.restrictFunctor_map_left + theorem AlgebraicGeometry.Scheme.restrictFunctor_map_ofRestrict + theorem AlgebraicGeometry.Scheme.restrictFunctor_obj_hom + theorem AlgebraicGeometry.Scheme.restrictFunctor_obj_left + def AlgebraicGeometry.Scheme.restrictFunctorΓ + def AlgebraicGeometry.Scheme.restrictIsoOfEq + def AlgebraicGeometry.Scheme.restrictRestrict + def AlgebraicGeometry.Scheme.restrictRestrictComm + theorem AlgebraicGeometry.Scheme.restrictRestrict_hom_restrict + theorem AlgebraicGeometry.Scheme.restrictRestrict_inv_restrict_restrict + theorem AlgebraicGeometry.image_morphismRestrict_preimage + theorem AlgebraicGeometry.isPullback_morphismRestrict + def AlgebraicGeometry.morphismRestrict + def AlgebraicGeometry.morphismRestrictEq + def AlgebraicGeometry.morphismRestrictOpensRange + def AlgebraicGeometry.morphismRestrictRestrict + def AlgebraicGeometry.morphismRestrictRestrictBasicOpen + def AlgebraicGeometry.morphismRestrictStalkMap + theorem AlgebraicGeometry.morphismRestrict_base_coe + theorem AlgebraicGeometry.morphismRestrict_c_app + theorem AlgebraicGeometry.morphismRestrict_comp + theorem AlgebraicGeometry.morphismRestrict_val_base + theorem AlgebraicGeometry.morphismRestrict_ι + def AlgebraicGeometry.pullbackRestrictIsoRestrict + theorem AlgebraicGeometry.pullbackRestrictIsoRestrict_hom_morphismRestrict + theorem AlgebraicGeometry.pullbackRestrictIsoRestrict_hom_restrict + theorem AlgebraicGeometry.pullbackRestrictIsoRestrict_inv_fst + theorem AlgebraicGeometry.Γ_map_morphismRestrict Modified Mathlib/Geometry/RingedSpace/Stalks.lean + theorem AlgebraicGeometry.PresheafedSpace.stalkMap_germ' Modified Mathlib/Topology/Category/TopCat/Opens.lean + theorem TopologicalSpace.Opens.coe_inclusion 2023-10-19 11:58:17 58a6689 feat: some measure preserving equivalences on pi-types (#7751) * Also fix the statement of some lemmas of an earlier PR. * From the Sobolev project * There are more that depend on #7341 ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Constructions/Pi.lean + theorem MeasureTheory.measurePreserving_piCongrLeft +/- theorem MeasureTheory.measurePreserving_piEquivPiSubtypeProd + theorem MeasureTheory.measurePreserving_sumPiEquivProdPi + theorem MeasureTheory.measurePreserving_sumPiEquivProdPi_symm + theorem MeasureTheory.volume_measurePreserving_piCongrLeft + theorem MeasureTheory.volume_measurePreserving_sumPiEquivProdPi + theorem MeasureTheory.volume_measurePreserving_sumPiEquivProdPi_symm +/- theorem MeasureTheory.volume_preserving_piEquivPiSubtypeProd Modified Mathlib/MeasureTheory/MeasurableSpace/Basic.lean + theorem MeasurableEquiv.coe_piCongrLeft - theorem MeasurableEquiv.piCongrLeft_eq 2023-10-19 11:09:13 36114b7 feat: some lemmas about nnnorm and integration / L1-norm (#7753) * From the Sobolev project ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Function/L1Space.lean + theorem MeasureTheory.Integrable.nnnorm_toL1 Modified Mathlib/MeasureTheory/Integral/Bochner.lean + theorem MeasureTheory.L1.nnnorm_Integral_le_one + theorem MeasureTheory.L1.nnnorm_integral_le +/- theorem MeasureTheory.L1.norm_Integral_le_one 2023-10-19 09:56:51 c1b8ef2 chore: linarith rolls back the meta state if it fails (#7769) ESTIMATED CHANGES Modified Mathlib/Tactic/Linarith/Frontend.lean 2023-10-19 09:56:50 b9ac893 refactor: use bitwise notation for `Nat.land`, `Nat.lor`, and `Nat.xor` (#7759) This didn't exist in Lean 3. ESTIMATED CHANGES Modified Mathlib/Data/Int/Bitwise.lean Modified Mathlib/Data/Nat/Bitwise.lean +/- theorem Nat.land_assoc +/- theorem Nat.land_bit +/- theorem Nat.land_comm +/- theorem Nat.land_zero +/- theorem Nat.lor_assoc +/- theorem Nat.lor_bit +/- theorem Nat.lor_comm +/- theorem Nat.lor_zero +/- theorem Nat.lt_xor_cases +/- theorem Nat.lxor_cancel_right +/- theorem Nat.testBit_land +/- theorem Nat.testBit_lor +/- theorem Nat.testBit_xor +/- theorem Nat.xor_assoc +/- theorem Nat.xor_bit +/- theorem Nat.xor_cancel_left +/- theorem Nat.xor_comm +/- theorem Nat.xor_eq_zero +/- theorem Nat.xor_left_inj +/- theorem Nat.xor_left_injective +/- theorem Nat.xor_ne_zero +/- theorem Nat.xor_right_inj +/- theorem Nat.xor_right_injective +/- theorem Nat.xor_self +/- theorem Nat.xor_trichotomy +/- theorem Nat.xor_zero +/- theorem Nat.zero_land +/- theorem Nat.zero_lor +/- theorem Nat.zero_xor Modified Mathlib/Init/Data/Int/Bitwise.lean Modified Mathlib/SetTheory/Game/Nim.lean +/- theorem SetTheory.PGame.nim_add_nim_equiv 2023-10-19 09:56:49 311c20b chore(Data/Num/Lemmas): fix lemma names (#7758) ESTIMATED CHANGES Modified Mathlib/Data/Num/Lemmas.lean - theorem Num.bitwise_to_nat + theorem Num.castNum_and + theorem Num.castNum_eq_bitwise + theorem Num.castNum_ldiff + theorem Num.castNum_or + theorem Num.castNum_shiftLeft + theorem Num.castNum_shiftRight + theorem Num.castNum_testBit + theorem Num.castNum_xor - theorem Num.land_to_nat - theorem Num.ldiff_to_nat - theorem Num.lor_to_nat - theorem Num.lxor_to_nat - theorem Num.shiftl_to_nat - theorem Num.shiftr_to_nat - theorem Num.testBit_to_nat 2023-10-19 09:56:46 c1696ee style: `CoeFun` for `PFunctor.Obj` & `MvPFunctor.Obj` (#7526) ESTIMATED CHANGES Modified Mathlib/Data/PFunctor/Multivariate/Basic.lean +/- def MvPFunctor.comp.get +/- theorem MvPFunctor.comp.get_map +/- theorem MvPFunctor.comp.get_mk +/- def MvPFunctor.comp.mk +/- theorem MvPFunctor.comp.mk_get +/- def MvPFunctor.comp +/- def MvPFunctor.const.get +/- theorem MvPFunctor.const.get_map +/- theorem MvPFunctor.const.get_mk +/- def MvPFunctor.const.mk +/- theorem MvPFunctor.const.mk_get +/- theorem MvPFunctor.id_map +/- theorem MvPFunctor.liftP_iff +/- theorem MvPFunctor.liftR_iff +/- def MvPFunctor.map Modified Mathlib/Data/PFunctor/Multivariate/M.lean +/- def MvPFunctor.M.corec +/- def MvPFunctor.M.dest +/- theorem MvPFunctor.M.dest_corec +/- def MvPFunctor.M.mk Modified Mathlib/Data/PFunctor/Multivariate/W.lean +/- def MvPFunctor.wDest' +/- theorem MvPFunctor.wDest'_wMk' +/- def MvPFunctor.wMk' Modified Mathlib/Data/PFunctor/Univariate/Basic.lean +/- def PFunctor.Obj.iget +/- def PFunctor.Obj +/- def PFunctor.W.dest +/- theorem PFunctor.W.dest_mk +/- def PFunctor.W.mk +/- def PFunctor.comp.get +/- def PFunctor.comp.mk +/- theorem PFunctor.fst_map +/- theorem PFunctor.iget_map +/- theorem PFunctor.liftp_iff +/- theorem PFunctor.liftr_iff +/- def PFunctor.map Modified Mathlib/Data/PFunctor/Univariate/M.lean +/- theorem PFunctor.M.casesOn_mk +/- theorem PFunctor.M.cases_mk +/- def PFunctor.M.corec' +/- def PFunctor.M.corecOn +/- theorem PFunctor.M.corec_def +/- theorem PFunctor.M.corec_unique +/- def PFunctor.M.corec₁ +/- def PFunctor.M.dest +/- theorem PFunctor.M.dest_corec +/- theorem PFunctor.M.dest_mk +/- theorem PFunctor.M.head_mk +/- theorem PFunctor.M.ichildren_mk +/- theorem PFunctor.M.mk_inj Modified Mathlib/Data/QPF/Multivariate/Basic.lean Modified Mathlib/Data/QPF/Multivariate/Constructions/Cofix.lean +/- def MvQPF.Cofix.corec' Modified Mathlib/Data/QPF/Multivariate/Constructions/Comp.lean Modified Mathlib/Data/QPF/Multivariate/Constructions/Const.lean Modified Mathlib/Data/QPF/Multivariate/Constructions/Prj.lean +/- def MvQPF.Prj.abs +/- def MvQPF.Prj.repr Modified Mathlib/Data/QPF/Multivariate/Constructions/Sigma.lean Modified Mathlib/Data/QPF/Univariate/Basic.lean 2023-10-19 09:00:56 ae7ec61 chore: removing unneeded maxHeartbeats (#7761) Due to recent changes in core we can reduce or remove many `set_option maxHeartbeats` statements. I have tried to be careful to not leave anything too close to the line, so don't be surprised if some of these can still be reduced further. This reduces us from 96 `maxHeartbeats` statements to `44`. (There are 10 false positives in meta or testing code.) ESTIMATED CHANGES Modified Archive/Imo/Imo1960Q1.lean Modified Mathlib/Algebra/Category/AlgebraCat/Monoidal.lean Modified Mathlib/Algebra/Category/FGModuleCat/Basic.lean Modified Mathlib/Algebra/Category/ModuleCat/Monoidal/Basic.lean Modified Mathlib/Algebra/Homology/LocalCohomology.lean Modified Mathlib/Algebra/Jordan/Basic.lean Modified Mathlib/Algebra/Module/PID.lean Modified Mathlib/AlgebraicGeometry/AffineScheme.lean Modified Mathlib/AlgebraicGeometry/EllipticCurve/Point.lean Modified Mathlib/AlgebraicGeometry/Morphisms/RingHomProperties.lean Modified Mathlib/AlgebraicGeometry/Properties.lean Modified Mathlib/Analysis/BoxIntegral/Integrability.lean Modified Mathlib/Analysis/Convolution.lean Modified Mathlib/Analysis/InnerProductSpace/Basic.lean Modified Mathlib/Analysis/NormedSpace/OperatorNorm.lean Modified Mathlib/CategoryTheory/Monoidal/Bimod.lean Modified Mathlib/FieldTheory/AbelRuffini.lean Modified Mathlib/FieldTheory/Cardinality.lean Modified Mathlib/FieldTheory/IsAlgClosed/Basic.lean Modified Mathlib/FieldTheory/Normal.lean Modified Mathlib/FieldTheory/PolynomialGaloisGroup.lean Modified Mathlib/Geometry/Euclidean/Angle/Oriented/Basic.lean Modified Mathlib/Geometry/Manifold/Algebra/LeftInvariantDerivation.lean Modified Mathlib/GroupTheory/Perm/List.lean Modified Mathlib/LinearAlgebra/AdicCompletion.lean Modified Mathlib/LinearAlgebra/FreeModule/Norm.lean Modified Mathlib/LinearAlgebra/QuadraticForm/QuadraticModuleCat/Monoidal.lean Modified Mathlib/MeasureTheory/Integral/Bochner.lean Modified Mathlib/NumberTheory/LegendreSymbol/GaussSum.lean Modified Mathlib/NumberTheory/LegendreSymbol/ZModChar.lean Modified Mathlib/NumberTheory/Modular.lean Modified Mathlib/NumberTheory/ModularForms/SlashActions.lean Modified Mathlib/RepresentationTheory/Action.lean Modified Mathlib/RepresentationTheory/GroupCohomology/Resolution.lean Modified Mathlib/RepresentationTheory/Rep.lean Modified Mathlib/RingTheory/Adjoin/Field.lean Modified Mathlib/RingTheory/AdjoinRoot.lean Modified Mathlib/RingTheory/Jacobson.lean 2023-10-19 08:30:18 d478563 chore: bump dependencies (#7767) ESTIMATED CHANGES Modified Mathlib/Init/Align.lean Modified Mathlib/Init/Core.lean Modified Mathlib/Init/Logic.lean Modified Mathlib/Lean/Meta.lean - def Lean.Elab.Tactic.liftMetaFinishingTactic - def Lean.MVarId.replace Modified Mathlib/Logic/Function/Conjugate.lean Modified Mathlib/Mathport/Syntax.lean Modified Mathlib/Tactic/Common.lean Modified Mathlib/Tactic/GCongr/Core.lean Modified Mathlib/Tactic/LibrarySearch.lean Modified Mathlib/Tactic/Relation/Rfl.lean - def Lean.MVarId.rfl Modified Mathlib/Tactic/Relation/Symm.lean - def Lean.Expr.symm - def Lean.Expr.symmAux - def Lean.MVarId.symm - def Lean.MVarId.symmAt - def Lean.MVarId.symmAux Modified Mathlib/Tactic/Rewrites.lean Modified Mathlib/Tactic/ToAdditive.lean Modified lake-manifest.json Deleted test/rfl.lean - def Foo.le - theorem Foo.le_refl - structure Foo - def iseqv_refl 2023-10-19 05:10:43 23a69c7 chore: update dependency URLs (#7764) All of Mathlib's dependencies now live under `leanprover` or `leanprover-community`! 🎉 ESTIMATED CHANGES Modified lake-manifest.json Modified lakefile.lean 2023-10-19 03:49:19 69c9fa5 feat(Order/CompleteLatticeIntervals): Complete lattice instance on `Set.Icc` (#7740) This PR adds a complete lattice instance on `Set.Icc`. ESTIMATED CHANGES Modified Mathlib/Order/CompleteLatticeIntervals.lean + theorem Set.Icc.coe_iInf + theorem Set.Icc.coe_iSup + theorem Set.Icc.coe_sInf + theorem Set.Icc.coe_sSup 2023-10-19 02:29:31 a3e0e08 chore: cleanup of Data.Nat.Bitwise (#7763) We would like to move much of the content of this file up to Std, as projects working on SMT automation need them. This is a preliminary cleanup to reduce imports in preparation for upstreaming. ESTIMATED CHANGES Modified Mathlib/Data/Int/Lemmas.lean Modified Mathlib/Data/Nat/Bitwise.lean Modified Mathlib/Data/Nat/Digits.lean Modified Mathlib/Data/Nat/Order/Lemmas.lean 2023-10-18 21:09:58 51c7969 feat: split Topology/Connected.lean (#7646) In the last step, I have removed *redundant* imports: those which are implied by the other imports. I can revert those changes if desired/if this seems too brittle. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/AlgebraicTopology/FundamentalGroupoid/FundamentalGroup.lean Modified Mathlib/Analysis/Convex/Topology.lean Modified Mathlib/Topology/Category/Profinite/Basic.lean Renamed Mathlib/Topology/Connected.lean to Mathlib/Topology/Connected/Basic.lean - def Continuous.connectedComponentsLift - theorem Continuous.connectedComponentsLift_apply_coe - theorem Continuous.connectedComponentsLift_comp_coe - theorem Continuous.connectedComponentsLift_continuous - theorem Continuous.connectedComponentsLift_unique - def Continuous.connectedComponentsMap - theorem Continuous.connectedComponentsMap_continuous - theorem Continuous.image_connectedComponent_eq_singleton - theorem Continuous.image_eq_of_connectedComponent_eq - theorem Embedding.isTotallyDisconnected - theorem IsOpen.locallyConnectedSpace - theorem IsPreconnected.constant - theorem IsPreconnected.constant_of_mapsTo - theorem IsPreconnected.eqOn_const_of_mapsTo - theorem IsPreconnected.subsingleton - def IsTotallyDisconnected - def IsTotallySeparated - theorem OpenEmbedding.locallyConnectedSpace - theorem PreconnectedSpace.constant - theorem connectedComponentIn_mem_nhds - theorem connectedComponent_eq_singleton - theorem connectedComponents_lift_unique' - theorem exists_clopen_of_totally_separated - theorem isClopen_connectedComponent - theorem isOpen_connectedComponent - theorem isTotallyDisconnected_empty - theorem isTotallyDisconnected_of_clopen_set - theorem isTotallyDisconnected_of_image - theorem isTotallyDisconnected_of_isTotallySeparated - theorem isTotallyDisconnected_of_totallyDisconnectedSpace - theorem isTotallyDisconnected_singleton - theorem isTotallySeparated_empty - theorem isTotallySeparated_singleton - theorem locallyConnectedSpace_iff_connectedComponentIn_open - theorem locallyConnectedSpace_iff_connected_basis - theorem locallyConnectedSpace_iff_connected_subsets - theorem locallyConnectedSpace_iff_open_connected_basis - theorem locallyConnectedSpace_iff_open_connected_subsets - theorem locallyConnectedSpace_of_connected_bases - theorem totallyDisconnectedSpace_iff_connectedComponent_singleton - theorem totallyDisconnectedSpace_iff_connectedComponent_subsingleton Added Mathlib/Topology/Connected/LocallyConnected.lean + theorem IsOpen.locallyConnectedSpace + theorem OpenEmbedding.locallyConnectedSpace + theorem connectedComponentIn_mem_nhds + theorem isClopen_connectedComponent + theorem isOpen_connectedComponent + theorem locallyConnectedSpace_iff_connectedComponentIn_open + theorem locallyConnectedSpace_iff_connected_basis + theorem locallyConnectedSpace_iff_connected_subsets + theorem locallyConnectedSpace_iff_open_connected_basis + theorem locallyConnectedSpace_iff_open_connected_subsets + theorem locallyConnectedSpace_of_connected_bases Renamed Mathlib/Topology/PathConnected.lean to Mathlib/Topology/Connected/PathConnected.lean Added Mathlib/Topology/Connected/TotallyDisconnected.lean + def Continuous.connectedComponentsLift + theorem Continuous.connectedComponentsLift_apply_coe + theorem Continuous.connectedComponentsLift_comp_coe + theorem Continuous.connectedComponentsLift_continuous + theorem Continuous.connectedComponentsLift_unique + def Continuous.connectedComponentsMap + theorem Continuous.connectedComponentsMap_continuous + theorem Continuous.image_connectedComponent_eq_singleton + theorem Continuous.image_eq_of_connectedComponent_eq + theorem Embedding.isTotallyDisconnected + theorem IsPreconnected.constant + theorem IsPreconnected.constant_of_mapsTo + theorem IsPreconnected.eqOn_const_of_mapsTo + theorem IsPreconnected.subsingleton + def IsTotallyDisconnected + def IsTotallySeparated + theorem PreconnectedSpace.constant + theorem connectedComponent_eq_singleton + theorem connectedComponents_lift_unique' + theorem exists_clopen_of_totally_separated + theorem isTotallyDisconnected_empty + theorem isTotallyDisconnected_of_clopen_set + theorem isTotallyDisconnected_of_image + theorem isTotallyDisconnected_of_isTotallySeparated + theorem isTotallyDisconnected_of_totallyDisconnectedSpace + theorem isTotallyDisconnected_singleton + theorem isTotallySeparated_empty + theorem isTotallySeparated_singleton + theorem totallyDisconnectedSpace_iff_connectedComponent_singleton + theorem totallyDisconnectedSpace_iff_connectedComponent_subsingleton Modified Mathlib/Topology/ContinuousFunction/Sigma.lean Modified Mathlib/Topology/Homotopy/Path.lean Modified Mathlib/Topology/Instances/AddCircle.lean Modified Mathlib/Topology/LocallyConstant/Basic.lean Modified Mathlib/Topology/Separation.lean 2023-10-18 16:31:47 813c10a chore: remove `Nat.bitwise'` (#7451) Building upon the proof that `Nat.bitwise` and `Nat.bitwise'` are equal (from #7410), this PR completely removes `bitwise'` and changes all uses to `bitwise` instead. In particular, `land'/lor'/lxor'` are replaced with the `bitwise`-based equivalent operations in core, which have overriden optimized implementations in the compiler. ESTIMATED CHANGES Modified Mathlib/Data/Bool/Basic.lean + theorem Bool.bne_eq_xor Modified Mathlib/Data/Int/Bitwise.lean +/- theorem Int.bitwise_diff +/- theorem Int.bitwise_xor +/- theorem Int.bodd_add +/- theorem Int.bodd_subNatNat +/- theorem Int.ldiff_bit +/- theorem Int.lxor_bit +/- theorem Int.testBit_ldiff +/- theorem Int.testBit_lxor Modified Mathlib/Data/Nat/Bitwise.lean + theorem Nat.binaryRec_of_ne_zero + theorem Nat.bit_mod_two + theorem Nat.bit_mod_two_eq_one_iff + theorem Nat.bit_mod_two_eq_zero_iff + theorem Nat.bit_ne_zero_iff - theorem Nat.bitwise'_bit' - theorem Nat.bitwise'_comm - theorem Nat.bitwise'_eq_bitwise - theorem Nat.bitwise'_of_ne_zero - theorem Nat.bitwise'_swap - theorem Nat.bitwise'_zero_right + theorem Nat.bitwise_bit' + theorem Nat.bitwise_comm + theorem Nat.bitwise_eq_binaryRec + theorem Nat.bitwise_swap - theorem Nat.land'_assoc - theorem Nat.land'_comm - theorem Nat.land'_eq_land - theorem Nat.land'_zero + theorem Nat.land_assoc + theorem Nat.land_comm + theorem Nat.land_zero + theorem Nat.ldiff_bit - theorem Nat.lor'_assoc - theorem Nat.lor'_comm - theorem Nat.lor'_eq_lor - theorem Nat.lor'_zero + theorem Nat.lor_assoc + theorem Nat.lor_comm + theorem Nat.lor_zero - theorem Nat.lt_lxor'_cases + theorem Nat.lt_xor_cases - theorem Nat.lxor'_assoc - theorem Nat.lxor'_cancel_left - theorem Nat.lxor'_comm - theorem Nat.lxor'_eq_zero - theorem Nat.lxor'_left_inj - theorem Nat.lxor'_left_injective - theorem Nat.lxor'_ne_zero - theorem Nat.lxor'_right_inj - theorem Nat.lxor'_right_injective - theorem Nat.lxor'_self - theorem Nat.lxor'_trichotomy - theorem Nat.lxor'_zero - theorem Nat.lxor_bit +/- theorem Nat.lxor_cancel_right + theorem Nat.testBit_bitwise + theorem Nat.testBit_land + theorem Nat.testBit_ldiff + theorem Nat.testBit_lor + theorem Nat.testBit_xor - theorem Nat.xor'_eq_xor + theorem Nat.xor_assoc + theorem Nat.xor_bit + theorem Nat.xor_cancel_left + theorem Nat.xor_comm + theorem Nat.xor_eq_zero + theorem Nat.xor_left_inj + theorem Nat.xor_left_injective + theorem Nat.xor_ne_zero + theorem Nat.xor_right_inj + theorem Nat.xor_right_injective + theorem Nat.xor_self + theorem Nat.xor_trichotomy + theorem Nat.xor_zero - theorem Nat.zero_land' + theorem Nat.zero_land - theorem Nat.zero_lor' + theorem Nat.zero_lor - theorem Nat.zero_lxor' + theorem Nat.zero_xor Modified Mathlib/Data/Num/Lemmas.lean - theorem Num.bitwise'_to_nat + theorem Num.bitwise_to_nat - theorem Num.land'_to_nat + theorem Num.land_to_nat - theorem Num.ldiff'_to_nat + theorem Num.ldiff_to_nat - theorem Num.lor'_to_nat + theorem Num.lor_to_nat - theorem Num.lxor'_to_nat + theorem Num.lxor_to_nat Modified Mathlib/Init/Data/Int/Bitwise.lean - def Int.ldiff' + def Int.ldiff - def Int.lxor' + def Int.xor Modified Mathlib/Init/Data/Nat/Bitwise.lean - def Nat.bitwise' - theorem Nat.bitwise'_bit - theorem Nat.bitwise'_bit_aux - theorem Nat.bitwise'_zero - theorem Nat.bitwise'_zero_left - def Nat.land' - theorem Nat.land'_bit - def Nat.ldiff' - theorem Nat.ldiff'_bit + def Nat.ldiff - def Nat.lor' - theorem Nat.lor'_bit - def Nat.lxor' - theorem Nat.lxor'_bit - theorem Nat.testBit_bitwise' - theorem Nat.testBit_land' - theorem Nat.testBit_ldiff' - theorem Nat.testBit_lor' - theorem Nat.testBit_lxor' Modified Mathlib/SetTheory/Game/Nim.lean +/- theorem SetTheory.PGame.nim_add_nim_equiv 2023-10-18 13:39:57 7891de9 chore: update std (#7744) This commit includes the new BitVec library in std. No further changes are needed on the mathlib side. ESTIMATED CHANGES Modified lake-manifest.json 2023-10-18 11:36:11 e05d9ae chore(Tactic/Polyrith): show stderr if something goes wrong (#7737) In particular, on gitpod what goes wrong is that `requests` is not installed, which this also fixes. ESTIMATED CHANGES Modified .docker/gitpod/Dockerfile Modified Mathlib/Tactic/Polyrith.lean 2023-10-18 11:36:10 ea1c5f8 feat(Analysis/Analytic): some more API for analytic functions (#7552) This PR adds some basic results about analytic functions: products of analytic functions are analytic, and the inverse map on a normed field is analytic away from 0. ESTIMATED CHANGES Modified Mathlib/Analysis/Analytic/Basic.lean + theorem AnalyticAt.prod + theorem AnalyticOn.prod + theorem FormalMultilinearSeries.radius_prod_eq_min + theorem HasFPowerSeriesAt.prod + theorem HasFPowerSeriesOnBall.prod + theorem analyticAt_inv_one_sub + theorem formalMultilinearSeries_geometric_radius + theorem hasFPowerSeriesOnBall_inv_one_sub Modified Mathlib/Analysis/Analytic/Linear.lean + theorem AnalyticAt.mul + theorem AnalyticAt.pow + theorem AnalyticAt.smul - def ContinuousLinearMap.fpowerSeries - theorem ContinuousLinearMap.fpowerSeries_apply_add_two - theorem ContinuousLinearMap.fpower_series_apply_one - theorem ContinuousLinearMap.fpower_series_apply_zero + theorem analyticAt_id + theorem analyticAt_inv + theorem analyticAt_mul + theorem analyticAt_smul Modified Mathlib/Analysis/Calculus/FormalMultilinearSeries.lean + def ContinuousLinearMap.fpowerSeries + theorem ContinuousLinearMap.fpowerSeries_apply_add_two + theorem ContinuousLinearMap.fpower_series_apply_one + theorem ContinuousLinearMap.fpower_series_apply_zero + theorem FormalMultilinearSeries.neg_apply + def FormalMultilinearSeries.prod + theorem FormalMultilinearSeries.zero_apply + def formalMultilinearSeries_geometric + theorem formalMultilinearSeries_geometric_apply_norm - theorem neg_apply - theorem zero_apply 2023-10-18 09:57:57 68b12e1 style: `pp_with_univ` for `TypeVec` & `PFunctor` & `MvPFunctor` (#7742) ESTIMATED CHANGES Modified Mathlib/Data/PFunctor/Multivariate/Basic.lean Modified Mathlib/Data/PFunctor/Univariate/Basic.lean Modified Mathlib/Data/TypeVec.lean 2023-10-18 09:57:56 5cff8eb chore: bump Std dependency (#7724) ESTIMATED CHANGES Modified Mathlib/Logic/Basic.lean - theorem exists_const - theorem forall_apply_eq_imp_iff - theorem forall_apply_eq_imp_iff₂ - theorem forall_eq_apply_imp_iff - theorem not_exists_not - theorem not_forall Modified lake-manifest.json 2023-10-18 09:57:53 3c0fc27 feat: pp.beta (#7205) I do not recommend using this feature, but since Lean 3 had it, and since it's possible for us to implement it as mathlib code, here it is. This is future-proof against core implementing it in the sense that [if it gets implemented](https://github.com/leanprover/lean4/issues/715) there will likely be a name collision, and then these two modules can be deleted. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Util/PPBeta.lean + def Mathlib.Util.PPBeta.betaReduceFirst Added Mathlib/Util/PPBetaOption.lean + def Lean.getPPBeta Added test/PPBeta.lean 2023-10-18 08:53:57 d2e0ba3 feat (LinearAlgebra/TensorProduct/RightExactness): right exactness of tensor product for algebras (#7533) Prove right exactness of tensor product for algebras. * `Algebra.TensorProduct.ker_map` computes the kernel of `Algebra.TensorProduct.map f g` * `Algebra.TensorProduct.lTensor_ker` and `Algebra.TensorProduct.rTensor_ker` compute the kernels of `Algebra.TensorProduct.map f id` and `Algebra.TensorProduct.map id g` ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/TensorProduct/RightExactness.lean + theorem Algebra.TensorProduct.lTensor_ker + theorem Algebra.TensorProduct.map_ker + theorem Algebra.TensorProduct.rTensor_ker + theorem Ideal.map_includeLeft_eq + theorem Ideal.map_includeRight_eq - def lTensor.inverse_of_rightInverse - def lTensor.toFun - def rTensor.inverse_of_rightInverse - def rTensor.toFun Modified Mathlib/RingTheory/Ideal/Operations.lean + theorem AlgHom.coe_ideal_map + theorem AlgHom.coe_ker 2023-10-18 08:18:16 54436a7 chore(CategoryTheory.Triangulated): use more camelCase for distTriang (#7643) This PR renames lemmas like `rot_of_dist_triang` as `rot_of_distTriang`. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Triangulated/Pretriangulated.lean + theorem CategoryTheory.Pretriangulated.comp_distTriang_mor_zero₁₂ + theorem CategoryTheory.Pretriangulated.comp_distTriang_mor_zero₂₃ + theorem CategoryTheory.Pretriangulated.comp_distTriang_mor_zero₃₁ - theorem CategoryTheory.Pretriangulated.comp_dist_triangle_mor_zero₁₂ - theorem CategoryTheory.Pretriangulated.comp_dist_triangle_mor_zero₂₃ - theorem CategoryTheory.Pretriangulated.comp_dist_triangle_mor_zero₃₁ + theorem CategoryTheory.Pretriangulated.inv_rot_of_distTriang - theorem CategoryTheory.Pretriangulated.inv_rot_of_dist_triangle + theorem CategoryTheory.Pretriangulated.rot_of_distTriang - theorem CategoryTheory.Pretriangulated.rot_of_dist_triangle 2023-10-18 08:18:15 e21dcf9 chore: make `SimplexCategory.skeletalFunctor` a functor to NonemptyFinLinOrdCat.{0} (#7272) `SimplexCategory` used to have a universe parameter, but for already some time, it is no longer the case. However, the functor `SimplexCategory.skeletalFunctor` was still a functor from the simplex category to `NonemptyFinLinOrdCat.{v}`. This PR changes this to `NonemptyFinLinOrdCat.{0}`. The main consequence of this is that if `C` is a category, the `n`-simplices of the simplicial set `nerve C` (see `AlgebraicTopology.Nerve`) are now definitionally equal to `Fin (n+1) ⥤ C`. ESTIMATED CHANGES Modified Mathlib/AlgebraicTopology/SimplexCategory.lean +/- def SimplexCategory.skeletalFunctor 2023-10-18 07:22:01 4a7ff0e refactor(Data/Polynomial): remove `open Classical` (#7706) This doesn't change any polynomial operations, but: * Makes some `Decidable` values computable (otherwise, they're pointless!) * Add a few missing arguments to lemmas here and there to make them more general This is exhaustive, within the directories it touches. Once again, the use of `letI := Classical.decEq R` instead of `classical` here is because of the weird style of proofs in these files, where `if` is preferred to `by_cases`. ESTIMATED CHANGES Modified Mathlib/Algebra/Polynomial/GroupRingAction.lean Modified Mathlib/Data/Polynomial/Degree/CardPowDegree.lean +/- theorem Polynomial.cardPowDegree_apply Modified Mathlib/Data/Polynomial/Degree/Definitions.lean Modified Mathlib/Data/Polynomial/Degree/Lemmas.lean Modified Mathlib/Data/Polynomial/Degree/TrailingDegree.lean Modified Mathlib/Data/Polynomial/Div.lean +/- def Polynomial.decidableDvdMonic +/- theorem Polynomial.rootMultiplicity_eq_multiplicity +/- theorem Polynomial.rootMultiplicity_eq_nat_find_of_nonzero Modified Mathlib/Data/Polynomial/EraseLead.lean Modified Mathlib/Data/Polynomial/Expand.lean Modified Mathlib/Data/Polynomial/Inductions.lean Modified Mathlib/Data/Polynomial/Laurent.lean +/- theorem LaurentPolynomial.degree_C_ite +/- theorem LaurentPolynomial.degree_C_mul_T_ite Modified Mathlib/Data/Polynomial/Lifts.lean Modified Mathlib/Data/Polynomial/Monic.lean Modified Mathlib/Data/Polynomial/PartialFractions.lean Modified Mathlib/Data/Polynomial/Reverse.lean Modified Mathlib/Data/Polynomial/RingDivision.lean Modified Mathlib/RingTheory/Polynomial/Basic.lean +/- theorem Polynomial.degreeLE_eq_span_X_pow +/- theorem Polynomial.degreeLT_eq_span_X_pow Modified Mathlib/RingTheory/Polynomial/Content.lean Modified Mathlib/RingTheory/Polynomial/Cyclotomic/Basic.lean 2023-10-18 06:36:48 29fc60f feat: Prove Measure.add_right_inj for sigma-finite measures (#7727) * Generalizes a lemma from #7713. ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Measure/MeasureSpace.lean + theorem MeasureTheory.Measure.add_left_inj + theorem MeasureTheory.Measure.add_right_inj Modified Mathlib/MeasureTheory/Measure/MeasureSpaceDef.lean + theorem MeasureTheory.Measure.ext_iff' 2023-10-18 06:03:33 a7c12f1 fix(Algebra/Order/Ring/Defs): typo in nonneg (#7736) ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Ring/Defs.lean - theorem nonneg_and_nonneg_or_nonpos_and_nonpos_of_mul_nnonneg + theorem nonneg_and_nonneg_or_nonpos_and_nonpos_of_mul_nonneg 2023-10-18 01:20:20 e5d58e8 fix(Tactic/Polyrith): fix crash when hypotheses are constant polynomials (#7586) This forward-ports leanprover-community/mathlib#17142 The tests are commented out because the test framework for polyrith was never ported. You can check out the branch and run polyrith manually to see that everything is ok. ESTIMATED CHANGES Modified Mathlib/Tactic/Polyrith.lean Modified scripts/polyrith_sage.py Modified test/polyrith.lean 2023-10-17 22:13:41 bf083fc CI: print lean and lake versions (#7726) this makes it easier to check if really the lean version was used that was expected. Maybe elan could be more chatty (https://github.com/leanprover/elan/issues/111), but it doesn’t hurt to have this here. ESTIMATED CHANGES Modified .github/workflows/bors.yml Modified .github/workflows/build.yml Modified .github/workflows/build.yml.in Modified .github/workflows/build_fork.yml 2023-10-17 20:58:44 75dfd25 chore: rename Finset.powersetLen to powersetCard (#7667) I don't understand why this was ever named `powersetLen`, there isn't even the notion of the length of a Finset/Multiset. ESTIMATED CHANGES Modified Mathlib/Algebra/BigOperators/Basic.lean + theorem Finset.prod_powersetCard - theorem Finset.prod_powersetLen Modified Mathlib/Algebra/BigOperators/Ring.lean Modified Mathlib/Combinatorics/Additive/SalemSpencer.lean Modified Mathlib/Combinatorics/SetFamily/LYM.lean Modified Mathlib/Data/Finset/Powerset.lean + theorem Finset.card_powersetCard - theorem Finset.card_powersetLen + theorem Finset.map_val_val_powersetCard - theorem Finset.map_val_val_powersetLen + theorem Finset.mem_powersetCard - theorem Finset.mem_powersetLen + theorem Finset.pairwise_disjoint_powersetCard - theorem Finset.pairwise_disjoint_powersetLen + def Finset.powersetCard + theorem Finset.powersetCard_card_add + theorem Finset.powersetCard_empty + theorem Finset.powersetCard_eq_filter + theorem Finset.powersetCard_map + theorem Finset.powersetCard_mono + theorem Finset.powersetCard_nonempty + theorem Finset.powersetCard_self + theorem Finset.powersetCard_succ_insert + theorem Finset.powersetCard_sup + theorem Finset.powersetCard_zero - def Finset.powersetLen - theorem Finset.powersetLen_card_add - theorem Finset.powersetLen_empty - theorem Finset.powersetLen_eq_filter - theorem Finset.powersetLen_map - theorem Finset.powersetLen_mono - theorem Finset.powersetLen_nonempty - theorem Finset.powersetLen_self - theorem Finset.powersetLen_succ_insert - theorem Finset.powersetLen_sup - theorem Finset.powersetLen_zero Modified Mathlib/Data/Finset/Slice.lean + theorem Finset.subset_powersetCard_univ_iff - theorem Finset.subset_powersetLen_univ_iff + theorem Set.sized_powersetCard - theorem Set.sized_powersetLen Modified Mathlib/Data/Fintype/Powerset.lean + theorem Finset.mem_powersetCard_univ - theorem Finset.mem_powersetLen_univ Modified Mathlib/Data/Multiset/Powerset.lean + theorem Multiset.card_powersetCard - theorem Multiset.card_powersetLen + theorem Multiset.mem_powersetCard + theorem Multiset.mem_powersetCardAux - theorem Multiset.mem_powersetLen - theorem Multiset.mem_powersetLenAux + theorem Multiset.pairwise_disjoint_powersetCard - theorem Multiset.pairwise_disjoint_powersetLen + def Multiset.powersetCard + def Multiset.powersetCardAux + theorem Multiset.powersetCardAux_cons + theorem Multiset.powersetCardAux_eq_map_coe + theorem Multiset.powersetCardAux_nil + theorem Multiset.powersetCardAux_perm + theorem Multiset.powersetCardAux_zero + theorem Multiset.powersetCard_card_add + theorem Multiset.powersetCard_coe' + theorem Multiset.powersetCard_coe + theorem Multiset.powersetCard_cons + theorem Multiset.powersetCard_empty + theorem Multiset.powersetCard_le_powerset + theorem Multiset.powersetCard_map + theorem Multiset.powersetCard_mono + theorem Multiset.powersetCard_zero_left + theorem Multiset.powersetCard_zero_right - def Multiset.powersetLen - def Multiset.powersetLenAux - theorem Multiset.powersetLenAux_cons - theorem Multiset.powersetLenAux_eq_map_coe - theorem Multiset.powersetLenAux_nil - theorem Multiset.powersetLenAux_perm - theorem Multiset.powersetLenAux_zero - theorem Multiset.powersetLen_card_add - theorem Multiset.powersetLen_coe' - theorem Multiset.powersetLen_coe - theorem Multiset.powersetLen_cons - theorem Multiset.powersetLen_empty - theorem Multiset.powersetLen_le_powerset - theorem Multiset.powersetLen_map - theorem Multiset.powersetLen_mono - theorem Multiset.powersetLen_zero_left - theorem Multiset.powersetLen_zero_right Modified Mathlib/Data/Nat/Choose/Sum.lean Modified Mathlib/RingTheory/MvPolynomial/NewtonIdentities.lean Modified Mathlib/RingTheory/MvPolynomial/Symmetric.lean Modified Mathlib/RingTheory/Polynomial/Vieta.lean Modified Mathlib/Topology/Algebra/Polynomial.lean Modified docs/100.yaml 2023-10-17 17:20:14 b940be2 chore(Algebra/BigOperators/Finsupp): sums of `Finsupp.single` (#7716) This adds a new lemma to match the existing `Pi` lemma, and renames the existing lemmas to avoid inconsistent naming. The `equivFunOnFinite` lemma is motivated by #6657. ESTIMATED CHANGES Modified Mathlib/Algebra/BigOperators/Finsupp.lean + theorem Finsupp.equivFunOnFinite_symm_eq_sum - theorem Finsupp.sum_univ_single' - theorem Finsupp.sum_univ_single + theorem Finsupp.univ_sum_single + theorem Finsupp.univ_sum_single_apply' + theorem Finsupp.univ_sum_single_apply 2023-10-17 13:38:07 c559424 chore: missing spaces after `rcases`, `convert` and `congrm` (#7725) Replace `rcases(` with `rcases (`. Same thing for `convert(` and `congrm(`. No other change. ESTIMATED CHANGES Modified Counterexamples/Phillips.lean Modified Mathlib/Algebra/Associated.lean Modified Mathlib/Algebra/CharP/CharAndCard.lean Modified Mathlib/Algebra/ContinuedFractions/Computation/ApproximationCorollaries.lean Modified Mathlib/Algebra/DirectLimit.lean Modified Mathlib/Algebra/QuadraticDiscriminant.lean Modified Mathlib/AlgebraicGeometry/OpenImmersion.lean Modified Mathlib/AlgebraicGeometry/PrimeSpectrum/Basic.lean Modified Mathlib/AlgebraicGeometry/ProjectiveSpectrum/Topology.lean Modified Mathlib/Analysis/Analytic/Inverse.lean Modified Mathlib/Analysis/Asymptotics/Asymptotics.lean Modified Mathlib/Analysis/BoxIntegral/Box/SubboxInduction.lean Modified Mathlib/Analysis/BoxIntegral/DivergenceTheorem.lean Modified Mathlib/Analysis/Calculus/ContDiff.lean Modified Mathlib/Analysis/Calculus/ContDiffDef.lean Modified Mathlib/Analysis/Convex/Extrema.lean Modified Mathlib/Analysis/Convex/Integral.lean Modified Mathlib/Analysis/Convex/Jensen.lean Modified Mathlib/Analysis/InnerProductSpace/Projection.lean Modified Mathlib/Analysis/InnerProductSpace/TwoDim.lean Modified Mathlib/Analysis/LocallyConvex/AbsConvex.lean Modified Mathlib/Analysis/LocallyConvex/ContinuousOfBounded.lean Modified Mathlib/Analysis/Normed/Group/ControlledClosure.lean Modified Mathlib/Analysis/NormedSpace/Banach.lean Modified Mathlib/Analysis/NormedSpace/Exponential.lean Modified Mathlib/Analysis/NormedSpace/OperatorNorm.lean Modified Mathlib/Analysis/SpecialFunctions/Exp.lean Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Basic.lean Modified Mathlib/Analysis/SpecificLimits/FloorPow.lean Modified Mathlib/CategoryTheory/Extensive.lean Modified Mathlib/CategoryTheory/GlueData.lean Modified Mathlib/CategoryTheory/Sites/Subsheaf.lean Modified Mathlib/Combinatorics/Additive/SalemSpencer.lean Modified Mathlib/Combinatorics/Composition.lean Modified Mathlib/Combinatorics/Configuration.lean Modified Mathlib/Computability/TuringMachine.lean Modified Mathlib/Data/Complex/Module.lean Modified Mathlib/Data/Finset/Lattice.lean Modified Mathlib/Data/List/Perm.lean Modified Mathlib/Data/Nat/Totient.lean Modified Mathlib/Data/Polynomial/Splits.lean Modified Mathlib/Data/QPF/Multivariate/Basic.lean Modified Mathlib/Data/Set/Countable.lean Modified Mathlib/Dynamics/Ergodic/Conservative.lean Modified Mathlib/Geometry/Euclidean/Basic.lean Modified Mathlib/Geometry/Manifold/ContMDiff.lean Modified Mathlib/Geometry/Manifold/LocalInvariantProperties.lean Modified Mathlib/GroupTheory/OrderOfElement.lean Modified Mathlib/LinearAlgebra/AffineSpace/AffineSubspace.lean Modified Mathlib/LinearAlgebra/Basis/VectorSpace.lean Modified Mathlib/LinearAlgebra/Dual.lean Modified Mathlib/LinearAlgebra/Eigenspace/Minpoly.lean Modified Mathlib/LinearAlgebra/Matrix/NonsingularInverse.lean Modified Mathlib/LinearAlgebra/Span.lean Modified Mathlib/MeasureTheory/Constructions/Polish.lean Modified Mathlib/MeasureTheory/Covering/Besicovitch.lean Modified Mathlib/MeasureTheory/Function/AEEqOfIntegral.lean Modified Mathlib/MeasureTheory/Function/Jacobian.lean Modified Mathlib/MeasureTheory/Function/StronglyMeasurable/Basic.lean Modified Mathlib/MeasureTheory/Integral/FundThmCalculus.lean Modified Mathlib/MeasureTheory/Integral/IntegralEqImproper.lean Modified Mathlib/MeasureTheory/Integral/Lebesgue.lean Modified Mathlib/MeasureTheory/Measure/MeasureSpace.lean Modified Mathlib/MeasureTheory/Measure/MeasureSpaceDef.lean Modified Mathlib/MeasureTheory/Measure/Regular.lean Modified Mathlib/NumberTheory/Liouville/LiouvilleNumber.lean Modified Mathlib/NumberTheory/Liouville/LiouvilleWith.lean Modified Mathlib/NumberTheory/Padics/RingHoms.lean Modified Mathlib/Order/CountableDenseLinearOrder.lean Modified Mathlib/Order/Directed.lean Modified Mathlib/Order/Filter/AtTopBot.lean Modified Mathlib/Order/Filter/Ultrafilter.lean Modified Mathlib/Order/LiminfLimsup.lean Modified Mathlib/Probability/IdentDistrib.lean Modified Mathlib/RingTheory/DedekindDomain/SelmerGroup.lean Modified Mathlib/RingTheory/FractionalIdeal.lean Modified Mathlib/RingTheory/IntegralClosure.lean Modified Mathlib/RingTheory/Polynomial/Dickson.lean Modified Mathlib/RingTheory/PrincipalIdealDomain.lean Modified Mathlib/SetTheory/Ordinal/Exponential.lean Modified Mathlib/SetTheory/Ordinal/Principal.lean Modified Mathlib/Topology/Algebra/Group/Basic.lean Modified Mathlib/Topology/Algebra/Order/Compact.lean Modified Mathlib/Topology/Algebra/Order/MonotoneContinuity.lean Modified Mathlib/Topology/Algebra/StarSubalgebra.lean Modified Mathlib/Topology/Bases.lean Modified Mathlib/Topology/ContinuousFunction/Bounded.lean Modified Mathlib/Topology/EMetricSpace/Paracompact.lean Modified Mathlib/Topology/GDelta.lean Modified Mathlib/Topology/Gluing.lean Modified Mathlib/Topology/List.lean Modified Mathlib/Topology/MetricSpace/Closeds.lean Modified Mathlib/Topology/MetricSpace/GromovHausdorff.lean Modified Mathlib/Topology/MetricSpace/HausdorffDistance.lean Modified Mathlib/Topology/PathConnected.lean Modified Mathlib/Topology/Perfect.lean Modified Mathlib/Topology/Separation.lean Modified Mathlib/Topology/ShrinkingLemma.lean Modified Mathlib/Topology/TietzeExtension.lean 2023-10-17 12:30:07 751fcc9 Add `MeasureTheory.IsLocallyFiniteMeasure.withDensity_coe` (#7692) .. and `MeasureTheory.IsLocallyFiniteMeasure.withDensity_ofReal` ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Measure/WithDensity.lean + theorem MeasureTheory.IsLocallyFiniteMeasure.withDensity_coe + theorem MeasureTheory.IsLocallyFiniteMeasure.withDensity_ofReal 2023-10-17 11:24:09 7501209 chore: cleanup typo in `filter_upwards` (#7719) mathport was forgetting a space in `filter_upwards [...]with` instead of `filter_upwards [...] with`. ESTIMATED CHANGES Modified Mathlib/Analysis/Analytic/Basic.lean Modified Mathlib/Analysis/Asymptotics/Asymptotics.lean Modified Mathlib/Analysis/Asymptotics/SpecificAsymptotics.lean Modified Mathlib/Analysis/Calculus/FDeriv/Measurable.lean Modified Mathlib/Analysis/Calculus/Series.lean Modified Mathlib/Analysis/Calculus/TangentCone.lean Modified Mathlib/Analysis/Calculus/UniformLimitsDeriv.lean Modified Mathlib/Analysis/LocallyConvex/Bounded.lean Modified Mathlib/Analysis/Normed/Field/Basic.lean Modified Mathlib/Analysis/Normed/Group/Basic.lean Modified Mathlib/Analysis/NormedSpace/Pointwise.lean Modified Mathlib/Analysis/SpecialFunctions/Pow/Asymptotics.lean Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Basic.lean Modified Mathlib/Analysis/SpecificLimits/FloorPow.lean Modified Mathlib/Analysis/SpecificLimits/Normed.lean Modified Mathlib/Combinatorics/Quiver/Covering.lean Modified Mathlib/Combinatorics/SimpleGraph/Prod.lean Modified Mathlib/MeasureTheory/Constructions/BorelSpace/Metrizable.lean Modified Mathlib/MeasureTheory/Constructions/Prod/Basic.lean Modified Mathlib/MeasureTheory/Covering/VitaliFamily.lean Modified Mathlib/MeasureTheory/Function/AEMeasurableOrder.lean Modified Mathlib/MeasureTheory/Function/LocallyIntegrable.lean Modified Mathlib/MeasureTheory/Function/LpSeminorm.lean Modified Mathlib/MeasureTheory/Function/StronglyMeasurable/Basic.lean Modified Mathlib/MeasureTheory/Group/Arithmetic.lean Modified Mathlib/MeasureTheory/Integral/Bochner.lean Modified Mathlib/MeasureTheory/Integral/IntegrableOn.lean Modified Mathlib/MeasureTheory/Integral/Lebesgue.lean Modified Mathlib/MeasureTheory/Integral/SetToL1.lean Modified Mathlib/MeasureTheory/Measure/AEMeasurable.lean Modified Mathlib/MeasureTheory/Measure/Doubling.lean Modified Mathlib/MeasureTheory/Measure/MeasureSpace.lean Modified Mathlib/MeasureTheory/Measure/Stieltjes.lean Modified Mathlib/Order/Filter/Archimedean.lean Modified Mathlib/Order/Filter/AtTopBot.lean Modified Mathlib/Order/Filter/Pi.lean Modified Mathlib/Order/LiminfLimsup.lean Modified Mathlib/Topology/Algebra/Field.lean Modified Mathlib/Topology/Algebra/Order/Field.lean Modified Mathlib/Topology/Algebra/Order/LeftRightLim.lean Modified Mathlib/Topology/Algebra/ValuedField.lean Modified Mathlib/Topology/Category/Compactum.lean Modified Mathlib/Topology/Compactness/Compact.lean Modified Mathlib/Topology/DenseEmbedding.lean Modified Mathlib/Topology/GDelta.lean Modified Mathlib/Topology/Instances/ENNReal.lean Modified Mathlib/Topology/MetricSpace/Basic.lean Modified Mathlib/Topology/MetricSpace/PiNat.lean Modified Mathlib/Topology/Semicontinuous.lean Modified Mathlib/Topology/Support.lean Modified Mathlib/Topology/UniformSpace/Basic.lean Modified Mathlib/Topology/UniformSpace/UniformConvergence.lean Modified Mathlib/Topology/UrysohnsLemma.lean 2023-10-17 10:36:17 3759c6d feat: simple lemmas about withDensity (#7714) ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Integral/Lebesgue.lean + theorem MeasureTheory.set_lintegral_smul_measure Modified Mathlib/MeasureTheory/Measure/AEMeasurable.lean + theorem AEMeasurable.mono_ac Modified Mathlib/MeasureTheory/Measure/WithDensity.lean + theorem MeasureTheory.withDensity_const + theorem MeasureTheory.withDensity_smul_measure + theorem MeasureTheory.withDensity_zero_left 2023-10-17 10:36:16 46b5f1b feat(LinearAlgebra/Matrix/SchurComplement): adding matrix determinant lemma (#7086) ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/Matrix/SchurComplement.lean + theorem Matrix.det_add_col_mul_row + theorem Matrix.det_add_mul 2023-10-17 09:07:15 fe33c1a chore: remove some unnecessary 'open private' (#7720) While having a look at how bad the use of `open private` has become, found two that are trivial to remove. ESTIMATED CHANGES Modified Mathlib/Tactic/ApplyCongr.lean Modified Mathlib/Tactic/WLOG.lean 2023-10-17 09:07:14 fe9572d chore: remove many `Type _` before the colon (#7718) We have turned to `Type*` instead of `Type _`, but many of them remained in mathlib because the straight replacement did not work. In general, having `Type _` before the colon is a code smell, though, as it hides which types should be in the same universe and which shouldn't, and is not very robust. This PR replaces most of the remaining `Type _` before the colon (except those in category theory) by `Type*` or `Type u`. This has uncovered a few bugs (where declarations were not as polymorphic as they should be). I had to increase heartbeats at two places when replacing `Type _` by `Type*`, but I think it's worth it as it's really more robust. ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/Hom.lean +/- def AlgHom.Simps.apply Modified Mathlib/Algebra/Algebra/Opposite.lean Modified Mathlib/Algebra/Group/Defs.lean Modified Mathlib/Algebra/Hom/Iterate.lean +/- theorem iterate_map_mul Modified Mathlib/Algebra/Module/LocalizedModule.lean Modified Mathlib/Algebra/Ring/CompTypeclasses.lean Modified Mathlib/AlgebraicTopology/FundamentalGroupoid/SimplyConnected.lean Modified Mathlib/Analysis/Convex/Jensen.lean Modified Mathlib/Analysis/InnerProductSpace/MeanErgodic.lean Modified Mathlib/Analysis/NormedSpace/AddTorsor.lean Modified Mathlib/Analysis/NormedSpace/OperatorNorm.lean Modified Mathlib/Analysis/NormedSpace/Ray.lean Modified Mathlib/Data/Fin/FlagRange.lean Modified Mathlib/Data/Finset/Functor.lean +/- theorem Finset.image₂_def Modified Mathlib/Data/List/Defs.lean Modified Mathlib/Data/List/EditDistance/Defs.lean +/- structure Levenshtein.Cost Modified Mathlib/Data/Multiset/Basic.lean +/- theorem Multiset.map_hcongr Modified Mathlib/Data/Multiset/Bind.lean +/- theorem Multiset.bind_hcongr Modified Mathlib/Data/Option/Basic.lean +/- theorem Option.bind_eq_bind Modified Mathlib/Data/Option/Defs.lean Modified Mathlib/Data/Option/NAry.lean +/- theorem Option.map₂_def Modified Mathlib/Data/PFunctor/Multivariate/W.lean +/- def MvPFunctor.objAppend1 Modified Mathlib/Data/PFunctor/Univariate/Basic.lean Modified Mathlib/Data/QPF/Multivariate/Constructions/Cofix.lean +/- def MvQPF.corecF +/- theorem MvQPF.corecF_eq Modified Mathlib/Data/QPF/Multivariate/Constructions/Fix.lean +/- theorem MvQPF.Fix.ind_rec +/- theorem MvQPF.Fix.rec_unique +/- def MvQPF.recF +/- theorem MvQPF.recF_eq' +/- theorem MvQPF.recF_eq +/- theorem MvQPF.recF_eq_of_wEquiv Modified Mathlib/Data/Quot.lean +/- theorem Equivalence.quot_mk_eq_iff Modified Mathlib/Data/Set/Basic.lean Modified Mathlib/Data/Set/Functor.lean +/- theorem Set.image2_def Modified Mathlib/Data/Set/Prod.lean +/- theorem Equiv.sumPiEquivProdPi_symm_preimage_univ_pi Modified Mathlib/Data/TypeVec.lean +/- def TypeVec.Curry +/- def TypeVec.RelLast +/- theorem TypeVec.appendFun_comp_id Modified Mathlib/Data/Vector/Basic.lean Modified Mathlib/FieldTheory/Perfect.lean +/- theorem PerfectRing.ofSurjective +/- theorem PerfectRing.toPerfectField Modified Mathlib/GroupTheory/GroupAction/Quotient.lean Modified Mathlib/GroupTheory/QuotientGroup.lean +/- theorem QuotientGroup.mk_prod Modified Mathlib/GroupTheory/Subgroup/Basic.lean +/- theorem ConjClasses.mk_bijOn +/- def ConjClasses.noncenter Modified Mathlib/GroupTheory/Submonoid/ZeroDivisors.lean +/- theorem nonZeroDivisorsLeft_eq_right Modified Mathlib/LinearAlgebra/Basis/Flag.lean Modified Mathlib/LinearAlgebra/Dimension.lean +/- theorem linearIndependent_le_basis +/- theorem linearIndependent_le_infinite_basis +/- theorem maximal_linearIndependent_eq_infinite_basis Modified Mathlib/Logic/Equiv/Basic.lean +/- theorem Equiv.piCongrLeft_sum_inl +/- theorem Equiv.piCongrLeft_sum_inr +/- def Equiv.prodPiEquivSumPi +/- def Equiv.sumPiEquivProdPi Modified Mathlib/Logic/Equiv/Option.lean +/- theorem Equiv.optionCongr_eq_equivFunctor_mapEquiv Modified Mathlib/Logic/Function/Basic.lean +/- theorem cast_inj Modified Mathlib/MeasureTheory/Constructions/BorelSpace/Metrizable.lean Modified Mathlib/MeasureTheory/Measure/FiniteMeasure.lean Modified Mathlib/MeasureTheory/Measure/ProbabilityMeasure.lean Modified Mathlib/Order/Category/DistLat.lean +/- theorem DistLat.coe_of +/- def DistLat.of Modified Mathlib/Order/Estimator.lean Modified Mathlib/Order/Filter/Basic.lean +/- theorem Filter.seq_eq_filter_seq Modified Mathlib/Order/RelSeries.lean Modified Mathlib/Probability/ProbabilityMassFunction/Constructions.lean +/- theorem PMF.monad_map_eq_map +/- theorem PMF.monad_seq_eq_seq Modified Mathlib/Probability/ProbabilityMassFunction/Integrals.lean Modified Mathlib/RingTheory/Adjoin/Basic.lean +/- theorem Algebra.adjoin_int +/- theorem Algebra.adjoin_nat Modified Mathlib/RingTheory/DedekindDomain/Basic.lean +/- theorem isDedekindRing_iff Modified Mathlib/RingTheory/Nilpotent.lean +/- theorem isNilpotent_sum Modified Mathlib/RingTheory/Polynomial/Nilpotent.lean Modified Mathlib/RingTheory/RingHomProperties.lean +/- theorem RingHom.RespectsIso.is_localization_away_iff Modified Mathlib/SetTheory/Cardinal/Cofinality.lean +/- theorem Cardinal.exists_infinite_fiber Modified Mathlib/SetTheory/Cardinal/Ordinal.lean +/- theorem Cardinal.add_mk_eq_max' +/- theorem Cardinal.add_mk_eq_max +/- theorem Cardinal.mul_mk_eq_max +/- theorem Ordinal.Cardinal.mk_iUnion_Ordinal_le_of_le Modified Mathlib/SetTheory/Ordinal/Basic.lean Modified Mathlib/Topology/Algebra/Module/FiniteDimension.lean Modified Mathlib/Topology/ContinuousFunction/StoneWeierstrass.lean Modified Mathlib/Topology/Homotopy/Contractible.lean + theorem ContractibleSpace.hequiv Modified Mathlib/Topology/MetricSpace/Isometry.lean +/- structure IsometryEquiv 2023-10-17 09:07:12 be3dd2c feat: some polynomial coeff mul lemmas (#7717) from https://leanprover.zulipchat.com/#narrow/stream/217875-Is-there-code-for-X.3F/topic/Polynomial.20coefficient/near/396950541 ESTIMATED CHANGES Modified Mathlib/Data/Polynomial/Coeff.lean + theorem Polynomial.coeff_intCast_mul + theorem Polynomial.coeff_mul_intCast + theorem Polynomial.coeff_mul_natCast + theorem Polynomial.coeff_mul_ofNat + theorem Polynomial.coeff_natCast_mul + theorem Polynomial.coeff_ofNat_mul 2023-10-17 07:53:03 7ee0847 fix(Data/Polynomial/Degree/TrailingDegree): correct porting mistake on Decidable instance (#7711) ESTIMATED CHANGES Modified Mathlib/Data/Polynomial/Degree/TrailingDegree.lean 2023-10-17 07:52:56 9211d76 chore: add decidable instances for stabilizer membership (#7709) ESTIMATED CHANGES Modified Mathlib/GroupTheory/GroupAction/Basic.lean 2023-10-17 07:52:53 0b9b714 chore: Fix decidability issues in UV-compression (#7708) We had been a bit lazy in Lean 3 with the decidability instances here, and it recently bit me. This PR reorders the lemmas to avoid `decidableEqOfDecidableLE`. There's only one new lemma: `Set.Sized.uvCompression`. Also golf a bit and fix style. ESTIMATED CHANGES Modified Mathlib/Combinatorics/SetFamily/Compression/UV.lean + theorem Set.Sized.uvCompression +/- theorem UV.compress_disjoint + theorem UV.compress_injOn +/- theorem UV.compression_idem + theorem UV.isCompressed_self - theorem UV.is_compressed_self +/- theorem UV.sup_sdiff_mem_of_mem_compression 2023-10-17 07:52:50 1323ee5 feat: MonoidalCategory (QuadraticModuleCat R) (#7244) Together with #7130, this now results in a `CommMonoid (Skeleton (QuadraticModuleCat R))`, which is similar to the multiplicative part of the [Grothendieck-Witt ring](https://en.wikipedia.org/wiki/Witt_group#Grothendieck-Witt_ring) of quadratic forms. (Strictly the Grothendieck-Witt ring would introduce a subcategory of QuadraticModuleCat for the non-singular forms) This is largely a copy-and-paste from #7598 (though it was written first) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/LinearAlgebra/QuadraticForm/QuadraticModuleCat.lean Added Mathlib/LinearAlgebra/QuadraticForm/QuadraticModuleCat/Monoidal.lean + theorem QuadraticModuleCat.instMonoidalCategory.forget₂_map_associator_hom + theorem QuadraticModuleCat.instMonoidalCategory.forget₂_map_associator_inv + def QuadraticModuleCat.toModuleCatMonoidalFunctor Added Mathlib/LinearAlgebra/QuadraticForm/QuadraticModuleCat/Symmetric.lean + def QuadraticModuleCat.toModuleCatBraidedFunctor Modified Mathlib/LinearAlgebra/QuadraticForm/TensorProduct/Isometries.lean 2023-10-17 06:25:10 2da494d chore: swap primes on forall_apply_eq_imp_iff (#7705) Two pairs of the form `foo` and `foo'`, where `foo'` is the simp lemma (and hence used in many `simp only`s) and `foo` is not used at all. Swap the primes, so that when it is time (now!) to upstream the lemma we actually use, it doesn't need to have a prime... ESTIMATED CHANGES Modified Mathlib/Analysis/NormedSpace/lpSpace.lean Modified Mathlib/Data/Set/Card.lean Modified Mathlib/LinearAlgebra/Matrix/Determinant.lean Modified Mathlib/LinearAlgebra/Matrix/Polynomial.lean Modified Mathlib/Logic/Basic.lean +/- theorem forall_apply_eq_imp_iff' +/- theorem forall_apply_eq_imp_iff +/- theorem forall_eq_apply_imp_iff' +/- theorem forall_eq_apply_imp_iff Modified Mathlib/MeasureTheory/Covering/BesicovitchVectorSpace.lean Modified Mathlib/Order/OmegaCompletePartialOrder.lean Modified Mathlib/Probability/Kernel/Disintegration.lean Modified Mathlib/Topology/Algebra/Order/LiminfLimsup.lean 2023-10-17 14:33:30+11:00 4de9b98 chore: bump toolchain to v4.2.0-rc3 ESTIMATED CHANGES Modified lean-toolchain 2023-10-17 14:33:07+11:00 ab56fa2 Revert "chore: revert #7703 (#7710)" This reverts commit f3695eb20c685cfcb5e45f75b1e68a59b8de7efb. ESTIMATED CHANGES Modified Archive/Sensitivity.lean Modified Counterexamples/DirectSumIsInternal.lean Modified Counterexamples/Pseudoelement.lean Modified Mathlib/Algebra/Algebra/Subalgebra/Basic.lean Modified Mathlib/Algebra/Category/AlgebraCat/Basic.lean Modified Mathlib/Algebra/Category/AlgebraCat/Limits.lean Modified Mathlib/Algebra/Category/GroupCat/Adjunctions.lean Modified Mathlib/Algebra/Category/GroupCat/Basic.lean Modified Mathlib/Algebra/Category/GroupCat/Biproducts.lean Modified Mathlib/Algebra/Category/GroupCat/EquivalenceGroupAddGroup.lean Modified Mathlib/Algebra/Category/GroupCat/Injective.lean Modified Mathlib/Algebra/Category/GroupCat/Limits.lean Modified Mathlib/Algebra/Category/ModuleCat/Adjunctions.lean Modified Mathlib/Algebra/Category/ModuleCat/Basic.lean Modified Mathlib/Algebra/Category/ModuleCat/Biproducts.lean Modified Mathlib/Algebra/Category/ModuleCat/ChangeOfRings.lean Modified Mathlib/Algebra/Category/ModuleCat/Colimits.lean Modified Mathlib/Algebra/Category/ModuleCat/Kernels.lean Modified Mathlib/Algebra/Category/ModuleCat/Monoidal/Basic.lean Modified Mathlib/Algebra/Category/ModuleCat/Monoidal/Closed.lean Modified Mathlib/Algebra/Category/ModuleCat/Projective.lean Modified Mathlib/Algebra/Category/MonCat/Basic.lean Modified Mathlib/Algebra/Category/MonCat/FilteredColimits.lean Modified Mathlib/Algebra/Category/Ring/Colimits.lean Modified Mathlib/Algebra/Category/Ring/Constructions.lean Modified Mathlib/Algebra/DirectSum/Ring.lean Modified Mathlib/Algebra/Homology/ModuleCat.lean Modified Mathlib/Algebra/Lie/Classical.lean Modified Mathlib/Algebra/Lie/DirectSum.lean Modified Mathlib/Algebra/Lie/Submodule.lean +/- theorem LieModuleEquiv.ofTop_apply Modified Mathlib/Algebra/Lie/UniversalEnveloping.lean Modified Mathlib/Algebra/MonoidAlgebra/Basic.lean Modified Mathlib/Algebra/MonoidAlgebra/ToDirectSum.lean Modified Mathlib/AlgebraicGeometry/AffineScheme.lean Modified Mathlib/AlgebraicGeometry/GammaSpecAdjunction.lean Modified Mathlib/AlgebraicGeometry/Morphisms/RingHomProperties.lean Modified Mathlib/AlgebraicGeometry/OpenImmersion.lean Modified Mathlib/AlgebraicGeometry/ProjectiveSpectrum/StructureSheaf.lean Modified Mathlib/AlgebraicGeometry/Spec.lean Modified Mathlib/AlgebraicGeometry/StructureSheaf.lean Modified Mathlib/AlgebraicTopology/CechNerve.lean Modified Mathlib/AlgebraicTopology/FundamentalGroupoid/Basic.lean Modified Mathlib/AlgebraicTopology/FundamentalGroupoid/InducedMaps.lean Modified Mathlib/AlgebraicTopology/SimplexCategory.lean Modified Mathlib/AlgebraicTopology/TopologicalSimplex.lean Modified Mathlib/Analysis/InnerProductSpace/LinearPMap.lean - theorem IsSelfAdjoint.isClosed - theorem LinearPMap.adjoint_graph_eq_graph_adjoint - theorem LinearPMap.adjoint_isClosed - theorem LinearPMap.graph_adjoint_toLinearPMap_eq_adjoint - def Submodule.adjoint - theorem Submodule.mem_adjoint_iff Modified Mathlib/Analysis/InnerProductSpace/PiL2.lean Modified Mathlib/Analysis/InnerProductSpace/Projection.lean Modified Mathlib/Analysis/Normed/Group/SemiNormedGroupCat.lean Modified Mathlib/Analysis/Normed/Group/SemiNormedGroupCat/Completion.lean Modified Mathlib/Analysis/Normed/Group/SemiNormedGroupCat/Kernels.lean Modified Mathlib/Analysis/NormedSpace/HahnBanach/Extension.lean Modified Mathlib/CategoryTheory/Abelian/Pseudoelements.lean Modified Mathlib/CategoryTheory/Adjunction/Comma.lean Modified Mathlib/CategoryTheory/Adjunction/Evaluation.lean Modified Mathlib/CategoryTheory/Adjunction/Lifting.lean Modified Mathlib/CategoryTheory/Closed/Cartesian.lean Modified Mathlib/CategoryTheory/Closed/FunctorCategory.lean Modified Mathlib/CategoryTheory/Closed/Monoidal.lean Modified Mathlib/CategoryTheory/Limits/HasLimits.lean Modified Mathlib/CategoryTheory/Limits/KanExtension.lean Modified Mathlib/CategoryTheory/Limits/Over.lean Modified Mathlib/CategoryTheory/Limits/Presheaf.lean Modified Mathlib/CategoryTheory/Monad/Algebra.lean Modified Mathlib/CategoryTheory/Monoidal/Internal/Module.lean Modified Mathlib/CategoryTheory/Preadditive/Yoneda/Basic.lean Modified Mathlib/CategoryTheory/Sites/Adjunction.lean Modified Mathlib/CategoryTheory/Sites/Sheaf.lean Modified Mathlib/CategoryTheory/Subobject/Comma.lean Modified Mathlib/CategoryTheory/Yoneda.lean Modified Mathlib/Combinatorics/Quiver/Covering.lean Modified Mathlib/Combinatorics/SimpleGraph/Clique.lean Modified Mathlib/Control/Fold.lean Modified Mathlib/Data/Matrix/Reflection.lean Modified Mathlib/Data/MvPolynomial/Rename.lean Modified Mathlib/FieldTheory/AbelRuffini.lean Modified Mathlib/FieldTheory/Adjoin.lean Modified Mathlib/FieldTheory/IntermediateField.lean Modified Mathlib/FieldTheory/IsAlgClosed/AlgebraicClosure.lean Modified Mathlib/FieldTheory/SplittingField/Construction.lean Modified Mathlib/Geometry/Manifold/Algebra/LeftInvariantDerivation.lean Modified Mathlib/Geometry/Manifold/ContMDiffMFDeriv.lean Modified Mathlib/Geometry/Manifold/MFDeriv.lean Modified Mathlib/Geometry/RingedSpace/PresheafedSpace/Gluing.lean Modified Mathlib/GroupTheory/Complement.lean Modified Mathlib/GroupTheory/CoprodI.lean Modified Mathlib/GroupTheory/HNNExtension.lean Modified Mathlib/GroupTheory/OrderOfElement.lean Modified Mathlib/GroupTheory/Perm/Cycle/Basic.lean Modified Mathlib/GroupTheory/Perm/Sign.lean Modified Mathlib/Lean/Expr/Basic.lean - def Lean.ConstantInfo.getUsedConstants - def Lean.Expr.getUsedConstants' - def Lean.NameSet.append Modified Mathlib/LinearAlgebra/AffineSpace/Independent.lean Modified Mathlib/LinearAlgebra/CliffordAlgebra/Equivs.lean Modified Mathlib/LinearAlgebra/DFinsupp.lean Modified Mathlib/LinearAlgebra/Finrank.lean Modified Mathlib/LinearAlgebra/FreeModule/Norm.lean Modified Mathlib/LinearAlgebra/Isomorphisms.lean Modified Mathlib/LinearAlgebra/PiTensorProduct.lean Modified Mathlib/LinearAlgebra/Prod.lean - theorem LinearEquiv.skewSwap_apply - theorem LinearEquiv.skewSwap_symm_apply Modified Mathlib/ModelTheory/DirectLimit.lean Modified Mathlib/ModelTheory/Fraisse.lean Modified Mathlib/ModelTheory/Semantics.lean Modified Mathlib/Order/Category/PartOrd.lean Modified Mathlib/Order/InitialSeg.lean Modified Mathlib/Order/LocallyFinite.lean Modified Mathlib/RepresentationTheory/Action.lean Modified Mathlib/RepresentationTheory/GroupCohomology/Basic.lean Modified Mathlib/RepresentationTheory/GroupCohomology/Resolution.lean Modified Mathlib/RepresentationTheory/Rep.lean Modified Mathlib/RingTheory/ClassGroup.lean Modified Mathlib/RingTheory/DedekindDomain/AdicValuation.lean Modified Mathlib/RingTheory/DedekindDomain/Ideal.lean Modified Mathlib/RingTheory/DedekindDomain/SelmerGroup.lean Modified Mathlib/RingTheory/Etale.lean Modified Mathlib/RingTheory/Ideal/Operations.lean Modified Mathlib/RingTheory/Ideal/QuotientOperations.lean Modified Mathlib/RingTheory/Kaehler.lean Modified Mathlib/RingTheory/LaurentSeries.lean Modified Mathlib/RingTheory/Norm.lean Modified Mathlib/RingTheory/PowerSeries/Basic.lean Modified Mathlib/RingTheory/SimpleModule.lean Modified Mathlib/RingTheory/Subring/Basic.lean Modified Mathlib/RingTheory/Subsemiring/Basic.lean Modified Mathlib/RingTheory/Valuation/ValuationSubring.lean Modified Mathlib/Topology/Category/CompHaus/Projective.lean Modified Mathlib/Topology/Category/Profinite/Basic.lean Modified Mathlib/Topology/Category/Profinite/CofilteredLimit.lean Modified Mathlib/Topology/Category/Profinite/Projective.lean Modified Mathlib/Topology/Category/Stonean/Limits.lean Modified Mathlib/Topology/Category/TopCat/Limits/Pullbacks.lean Modified Mathlib/Topology/ContinuousFunction/Compact.lean Modified Mathlib/Topology/ContinuousFunction/StoneWeierstrass.lean Modified Mathlib/Topology/Gluing.lean Modified Mathlib/Topology/Instances/Complex.lean Modified lake-manifest.json Modified lean-toolchain 2023-10-16 22:36:22 eece5ad feat: sigma-compact sets (#7576) Define sigma-compact subsets of a topological space and show their basic properties. * compact sets are sigma-compact * countable unions of (sigma-)compact sets are sigma-compact * closed subsets of sigma-compact sets are sigma-compact. Relate them to sigma-compact space: a set is sigma-compact iff it is a sigma-compact space (w.r.t. the subspace topology). In a later PR, we'll show that sigma-compact measure zero sets are nowhere dense. - [x] depends on: #7528 ESTIMATED CHANGES Modified Mathlib/Analysis/Complex/UpperHalfPlane/Metric.lean Modified Mathlib/Analysis/NormedSpace/WeakDual.lean Modified Mathlib/Topology/Compactness/Compact.lean + theorem Embedding.isCompact_iff - theorem Embedding.isCompact_iff_isCompact_image + theorem Subtype.isCompact_iff - theorem isCompact_iff_isCompact_in_subtype Modified Mathlib/Topology/Compactness/LocallyCompact.lean Modified Mathlib/Topology/Compactness/SigmaCompact.lean + theorem Embedding.isSigmaCompact_iff + theorem Inducing.isSigmaCompact_iff + theorem IsCompact.isSigmaCompact + theorem IsSigmaCompact.image + theorem IsSigmaCompact.image_of_continuousOn + theorem IsSigmaCompact.of_isClosed_subset + def IsSigmaCompact + theorem SigmaCompactSpace.exists_compact_covering + theorem SigmaCompactSpace_iff_exists_compact_covering + theorem Subtype.isSigmaCompact_iff + theorem isSigmaCompact_biUnion + theorem isSigmaCompact_empty + theorem isSigmaCompact_iUnion + theorem isSigmaCompact_iUnion_of_isCompact + theorem isSigmaCompact_iff_isSigmaCompact_univ + theorem isSigmaCompact_iff_sigmaCompactSpace + theorem isSigmaCompact_range + theorem isSigmaCompact_sUnion + theorem isSigmaCompact_sUnion_of_isCompact + theorem isSigmaCompact_univ + theorem isSigmaCompact_univ_iff Modified Mathlib/Topology/Homeomorph.lean + theorem Homeomorph.isSigmaCompact_image + theorem Homeomorph.isSigmaCompact_preimage Modified Mathlib/Topology/MetricSpace/Closeds.lean Modified Mathlib/Topology/NoetherianSpace.lean Modified Mathlib/Topology/QuasiSeparated.lean 2023-10-16 21:28:35 76f48d1 feat(Data.Nat.Multiplicity): sub_one_mul_multiplicity_factorial (#6546) ESTIMATED CHANGES Modified Mathlib/Data/Nat/Multiplicity.lean + theorem Nat.Prime.sub_one_mul_multiplicity_factorial Modified Mathlib/NumberTheory/Padics/PadicVal.lean + theorem sub_one_mul_padicValNat_factorial - theorem sub_one_mul_padicValNat_factorial_eq_sub_sum_digits 2023-10-16 19:01:58 f3695eb chore: revert #7703 (#7710) This reverts commit 26eb2b0ade1d7e252d07b13ea9253f9c8652facd. ESTIMATED CHANGES Modified Archive/Sensitivity.lean Modified Counterexamples/DirectSumIsInternal.lean Modified Counterexamples/Pseudoelement.lean Modified Mathlib/Algebra/Algebra/Subalgebra/Basic.lean Modified Mathlib/Algebra/Category/AlgebraCat/Basic.lean Modified Mathlib/Algebra/Category/AlgebraCat/Limits.lean Modified Mathlib/Algebra/Category/GroupCat/Adjunctions.lean Modified Mathlib/Algebra/Category/GroupCat/Basic.lean Modified Mathlib/Algebra/Category/GroupCat/Biproducts.lean Modified Mathlib/Algebra/Category/GroupCat/EquivalenceGroupAddGroup.lean Modified Mathlib/Algebra/Category/GroupCat/Injective.lean Modified Mathlib/Algebra/Category/GroupCat/Limits.lean Modified Mathlib/Algebra/Category/ModuleCat/Adjunctions.lean Modified Mathlib/Algebra/Category/ModuleCat/Basic.lean Modified Mathlib/Algebra/Category/ModuleCat/Biproducts.lean Modified Mathlib/Algebra/Category/ModuleCat/ChangeOfRings.lean Modified Mathlib/Algebra/Category/ModuleCat/Colimits.lean Modified Mathlib/Algebra/Category/ModuleCat/Kernels.lean Modified Mathlib/Algebra/Category/ModuleCat/Monoidal/Basic.lean Modified Mathlib/Algebra/Category/ModuleCat/Monoidal/Closed.lean Modified Mathlib/Algebra/Category/ModuleCat/Projective.lean Modified Mathlib/Algebra/Category/MonCat/Basic.lean Modified Mathlib/Algebra/Category/MonCat/FilteredColimits.lean Modified Mathlib/Algebra/Category/Ring/Colimits.lean Modified Mathlib/Algebra/Category/Ring/Constructions.lean Modified Mathlib/Algebra/DirectSum/Ring.lean Modified Mathlib/Algebra/Homology/ModuleCat.lean Modified Mathlib/Algebra/Lie/Classical.lean Modified Mathlib/Algebra/Lie/DirectSum.lean Modified Mathlib/Algebra/Lie/Submodule.lean +/- theorem LieModuleEquiv.ofTop_apply Modified Mathlib/Algebra/Lie/UniversalEnveloping.lean Modified Mathlib/Algebra/MonoidAlgebra/Basic.lean Modified Mathlib/Algebra/MonoidAlgebra/ToDirectSum.lean Modified Mathlib/AlgebraicGeometry/AffineScheme.lean Modified Mathlib/AlgebraicGeometry/GammaSpecAdjunction.lean Modified Mathlib/AlgebraicGeometry/Morphisms/RingHomProperties.lean Modified Mathlib/AlgebraicGeometry/OpenImmersion.lean Modified Mathlib/AlgebraicGeometry/ProjectiveSpectrum/StructureSheaf.lean Modified Mathlib/AlgebraicGeometry/Spec.lean Modified Mathlib/AlgebraicGeometry/StructureSheaf.lean Modified Mathlib/AlgebraicTopology/CechNerve.lean Modified Mathlib/AlgebraicTopology/FundamentalGroupoid/Basic.lean Modified Mathlib/AlgebraicTopology/FundamentalGroupoid/InducedMaps.lean Modified Mathlib/AlgebraicTopology/SimplexCategory.lean Modified Mathlib/AlgebraicTopology/TopologicalSimplex.lean Modified Mathlib/Analysis/InnerProductSpace/LinearPMap.lean + theorem IsSelfAdjoint.isClosed + theorem LinearPMap.adjoint_graph_eq_graph_adjoint + theorem LinearPMap.adjoint_isClosed + theorem LinearPMap.graph_adjoint_toLinearPMap_eq_adjoint + def Submodule.adjoint + theorem Submodule.mem_adjoint_iff Modified Mathlib/Analysis/InnerProductSpace/PiL2.lean Modified Mathlib/Analysis/InnerProductSpace/Projection.lean Modified Mathlib/Analysis/Normed/Group/SemiNormedGroupCat.lean Modified Mathlib/Analysis/Normed/Group/SemiNormedGroupCat/Completion.lean Modified Mathlib/Analysis/Normed/Group/SemiNormedGroupCat/Kernels.lean Modified Mathlib/Analysis/NormedSpace/HahnBanach/Extension.lean Modified Mathlib/CategoryTheory/Abelian/Pseudoelements.lean Modified Mathlib/CategoryTheory/Adjunction/Comma.lean Modified Mathlib/CategoryTheory/Adjunction/Evaluation.lean Modified Mathlib/CategoryTheory/Adjunction/Lifting.lean Modified Mathlib/CategoryTheory/Closed/Cartesian.lean Modified Mathlib/CategoryTheory/Closed/FunctorCategory.lean Modified Mathlib/CategoryTheory/Closed/Monoidal.lean Modified Mathlib/CategoryTheory/Limits/HasLimits.lean Modified Mathlib/CategoryTheory/Limits/KanExtension.lean Modified Mathlib/CategoryTheory/Limits/Over.lean Modified Mathlib/CategoryTheory/Limits/Presheaf.lean Modified Mathlib/CategoryTheory/Monad/Algebra.lean Modified Mathlib/CategoryTheory/Monoidal/Internal/Module.lean Modified Mathlib/CategoryTheory/Preadditive/Yoneda/Basic.lean Modified Mathlib/CategoryTheory/Sites/Adjunction.lean Modified Mathlib/CategoryTheory/Sites/Sheaf.lean Modified Mathlib/CategoryTheory/Subobject/Comma.lean Modified Mathlib/CategoryTheory/Yoneda.lean Modified Mathlib/Combinatorics/Quiver/Covering.lean Modified Mathlib/Combinatorics/SimpleGraph/Clique.lean Modified Mathlib/Control/Fold.lean Modified Mathlib/Data/Matrix/Reflection.lean Modified Mathlib/Data/MvPolynomial/Rename.lean Modified Mathlib/FieldTheory/AbelRuffini.lean Modified Mathlib/FieldTheory/Adjoin.lean Modified Mathlib/FieldTheory/IntermediateField.lean Modified Mathlib/FieldTheory/IsAlgClosed/AlgebraicClosure.lean Modified Mathlib/FieldTheory/SplittingField/Construction.lean Modified Mathlib/Geometry/Manifold/Algebra/LeftInvariantDerivation.lean Modified Mathlib/Geometry/Manifold/ContMDiffMFDeriv.lean Modified Mathlib/Geometry/Manifold/MFDeriv.lean Modified Mathlib/Geometry/RingedSpace/PresheafedSpace/Gluing.lean Modified Mathlib/GroupTheory/Complement.lean Modified Mathlib/GroupTheory/CoprodI.lean Modified Mathlib/GroupTheory/HNNExtension.lean Modified Mathlib/GroupTheory/OrderOfElement.lean Modified Mathlib/GroupTheory/Perm/Cycle/Basic.lean Modified Mathlib/GroupTheory/Perm/Sign.lean Modified Mathlib/Lean/Expr/Basic.lean + def Lean.ConstantInfo.getUsedConstants + def Lean.Expr.getUsedConstants' + def Lean.NameSet.append Modified Mathlib/LinearAlgebra/AffineSpace/Independent.lean Modified Mathlib/LinearAlgebra/CliffordAlgebra/Equivs.lean Modified Mathlib/LinearAlgebra/DFinsupp.lean Modified Mathlib/LinearAlgebra/Finrank.lean Modified Mathlib/LinearAlgebra/FreeModule/Norm.lean Modified Mathlib/LinearAlgebra/Isomorphisms.lean Modified Mathlib/LinearAlgebra/PiTensorProduct.lean Modified Mathlib/LinearAlgebra/Prod.lean + theorem LinearEquiv.skewSwap_apply + theorem LinearEquiv.skewSwap_symm_apply Modified Mathlib/ModelTheory/DirectLimit.lean Modified Mathlib/ModelTheory/Fraisse.lean Modified Mathlib/ModelTheory/Semantics.lean Modified Mathlib/Order/Category/PartOrd.lean Modified Mathlib/Order/InitialSeg.lean Modified Mathlib/Order/LocallyFinite.lean Modified Mathlib/RepresentationTheory/Action.lean Modified Mathlib/RepresentationTheory/GroupCohomology/Basic.lean Modified Mathlib/RepresentationTheory/GroupCohomology/Resolution.lean Modified Mathlib/RepresentationTheory/Rep.lean Modified Mathlib/RingTheory/ClassGroup.lean Modified Mathlib/RingTheory/DedekindDomain/AdicValuation.lean Modified Mathlib/RingTheory/DedekindDomain/Ideal.lean Modified Mathlib/RingTheory/DedekindDomain/SelmerGroup.lean Modified Mathlib/RingTheory/Etale.lean Modified Mathlib/RingTheory/Ideal/Operations.lean Modified Mathlib/RingTheory/Ideal/QuotientOperations.lean Modified Mathlib/RingTheory/Kaehler.lean Modified Mathlib/RingTheory/LaurentSeries.lean Modified Mathlib/RingTheory/Norm.lean Modified Mathlib/RingTheory/PowerSeries/Basic.lean Modified Mathlib/RingTheory/SimpleModule.lean Modified Mathlib/RingTheory/Subring/Basic.lean Modified Mathlib/RingTheory/Subsemiring/Basic.lean Modified Mathlib/RingTheory/Valuation/ValuationSubring.lean Modified Mathlib/Topology/Category/CompHaus/Projective.lean Modified Mathlib/Topology/Category/Profinite/Basic.lean Modified Mathlib/Topology/Category/Profinite/CofilteredLimit.lean Modified Mathlib/Topology/Category/Profinite/Projective.lean Modified Mathlib/Topology/Category/Stonean/Limits.lean Modified Mathlib/Topology/Category/TopCat/Limits/Pullbacks.lean Modified Mathlib/Topology/ContinuousFunction/Compact.lean Modified Mathlib/Topology/ContinuousFunction/StoneWeierstrass.lean Modified Mathlib/Topology/Gluing.lean Modified Mathlib/Topology/Instances/Complex.lean Modified lake-manifest.json Modified lean-toolchain 2023-10-16 17:17:47 db23244 feat: `IsCancelAdd` instances for (d)finsupp and monoid algebra (#7582) The left and right versions would be pointless on `AddMonoidAlgebra` as addition is commutative. ESTIMATED CHANGES Modified Mathlib/Algebra/MonoidAlgebra/Basic.lean Modified Mathlib/Data/DFinsupp/Basic.lean Modified Mathlib/Data/Finsupp/Defs.lean 2023-10-16 15:56:26 7de0271 feat: add a Gaussian probability distribution over ℝ (#7671) - Create a new `Distributions` folder for particular probability distributions. - Define a Gaussian distribution over ℝ by its pdf From a project started at LftCM 2023. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/MeasureTheory/Measure/Dirac.lean + theorem MeasureTheory.mutuallySingular_dirac Added Mathlib/Probability/Distributions/Gaussian.lean + def ProbabilityTheory.gaussianPdf + def ProbabilityTheory.gaussianPdfReal + theorem ProbabilityTheory.gaussianPdfReal_def + theorem ProbabilityTheory.gaussianPdfReal_nonneg + theorem ProbabilityTheory.gaussianPdfReal_pos + theorem ProbabilityTheory.gaussianPdfReal_zero_var + theorem ProbabilityTheory.gaussianPdf_def + theorem ProbabilityTheory.gaussianPdf_pos + theorem ProbabilityTheory.gaussianPdf_zero_var + def ProbabilityTheory.gaussianReal + theorem ProbabilityTheory.gaussianReal_absolutelyContinuous' + theorem ProbabilityTheory.gaussianReal_absolutelyContinuous + theorem ProbabilityTheory.gaussianReal_apply + theorem ProbabilityTheory.gaussianReal_apply_eq_integral + theorem ProbabilityTheory.gaussianReal_of_var_ne_zero + theorem ProbabilityTheory.gaussianReal_zero_var + theorem ProbabilityTheory.integrable_gaussianPdfReal + theorem ProbabilityTheory.integral_gaussianPdfReal_eq_one + theorem ProbabilityTheory.lintegral_gaussianPdfReal_eq_one + theorem ProbabilityTheory.lintegral_gaussianPdf_eq_one + theorem ProbabilityTheory.measurable_gaussianPdf + theorem ProbabilityTheory.measurable_gaussianPdfReal + theorem ProbabilityTheory.rnDeriv_gaussianReal + theorem ProbabilityTheory.stronglyMeasurable_gaussianPdfReal 2023-10-16 14:39:41 bdfd1fa feat: lemmas about derivatives (#7683) * From the Sobolev project ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Analysis/Calculus/ContDiff.lean + theorem contDiff_single + theorem contDiff_update Modified Mathlib/Analysis/Calculus/Deriv/Add.lean Added Mathlib/Analysis/Calculus/Deriv/Pi.lean + theorem deriv_single + theorem deriv_update + theorem hasDerivAt_single + theorem hasDerivAt_update Modified Mathlib/Analysis/Calculus/FDeriv/Add.lean + theorem hasFDerivAt_sub_const + theorem hasStrictFDerivAt_sub_const Added Mathlib/Analysis/Calculus/FDeriv/Pi.lean + theorem fderiv_single + theorem fderiv_update + theorem hasFDerivAt_single + theorem hasFDerivAt_update 2023-10-16 14:39:40 b3740a5 feat: lemmas for MeasurableSpace.Basic (#7682) * From the Sobolev project ESTIMATED CHANGES Modified Mathlib/MeasureTheory/MeasurableSpace/Basic.lean + theorem Measurable.eq_mp + theorem MeasurableEquiv.coe_sumPiEquivProdPi + theorem MeasurableEquiv.coe_sumPiEquivProdPi_symm + def MeasurableEquiv.piCongrLeft + theorem MeasurableEquiv.piCongrLeft_eq + def MeasurableEquiv.sumPiEquivProdPi + theorem measurable_eq_mp + theorem measurable_piCongrLeft + theorem measurable_update' +/- theorem measurable_update + theorem measurable_update_left 2023-10-16 14:39:39 bf0bc23 feat: lemmas about Lebesgue integral (#7681) * From the Sobolev project ESTIMATED CHANGES Modified Mathlib/Data/Real/ENNReal.lean Modified Mathlib/MeasureTheory/Integral/Lebesgue.lean + theorem MeasureTheory.lintegral_mono_fn' + theorem MeasureTheory.lintegral_mono_fn + theorem MeasureTheory.lintegral_of_isEmpty 2023-10-16 13:44:02 e3644b2 feat: add a Module.Finite instance for units of number field (#7412) Add the following instance ```lean instance : Module.Finite ℤ (Additive (𝓞 K)ˣ) ``` To prove this instance, it is helpful to add some `rfl` lemmas about `Additive` and `AddMonoidHom.toIntLinearMap` This PR also fixes a couple of typo in the docstring ESTIMATED CHANGES Modified Mathlib/GroupTheory/Subgroup/Basic.lean + theorem AddSubgroup.toSubgroup_comap + theorem MonoidHom.coe_toAdditive_ker + theorem MonoidHom.coe_toAdditive_range + theorem MonoidHom.coe_toMultiplicative_ker + theorem MonoidHom.coe_toMultiplicative_range + theorem Subgroup.toAddSubgroup_comap Modified Mathlib/LinearAlgebra/Basic.lean + theorem AddMonoidHom.coe_toIntLinearMap_ker + theorem AddMonoidHom.coe_toIntLinearMap_map + theorem AddMonoidHom.coe_toIntLinearMap_range + theorem AddMonoidHom.coe_toMultiplicative_map + theorem MonoidHom.coe_toAdditive_map + theorem Submodule.AddMonoidHom.coe_toIntLinearMap_comap Modified Mathlib/NumberTheory/NumberField/Units.lean +/- theorem NumberField.Units.dirichletUnitTheorem.exists_unit 2023-10-16 11:33:02 5744925 chore: cleanup Init/Data/Nat/Lemmas (#7704) ~~I'll upstream `Nat.find` shortly~~, just cleaning up the cruft here first. ESTIMATED CHANGES Modified Mathlib/Algebra/CharZero/Defs.lean Modified Mathlib/Init/Data/List/Lemmas.lean Modified Mathlib/Init/Data/Nat/Lemmas.lean 2023-10-16 11:33:00 ecab3f2 feat: Monotonicity of `Finsupp.support` (#7697) ESTIMATED CHANGES Modified Mathlib/Data/DFinsupp/Order.lean + theorem DFinsupp.support_mono + theorem DFinsupp.support_monotone Modified Mathlib/Data/Finsupp/Order.lean + theorem Finsupp.support_mono + theorem Finsupp.support_monotone 2023-10-16 11:32:58 979bf9a doc: Clarify the use case of `Function.extend` (#7547) Confusion was recently expressed so as to how to use `Function.extend`. This is an attempt to clear it up. Also fix the name of `Injective.factorsThrough`. ESTIMATED CHANGES Modified Mathlib/Logic/Function/Basic.lean - theorem Function.Injective.FactorsThrough + theorem Function.Injective.factorsThrough +/- def Function.extend 2023-10-16 09:02:36 38db825 chore(RingTheory/PowerSeries/Basic): remove `open Classical` (#7665) Only two lemma statements have changed: * `coeff_truncFun` now contains the missing `[DecidableEq σ]` needed to make the statement make sense * `order_eq_multiplicity_X` now contains a missing `DecidableRel` argument needed to make the RHS fully general. Everywhere else, `classical` has just been inserted into the proof. ESTIMATED CHANGES Modified Mathlib/Data/Finsupp/Order.lean Modified Mathlib/RingTheory/PowerSeries/Basic.lean +/- theorem MvPowerSeries.coeff_truncFun +/- theorem PowerSeries.order_eq_multiplicity_X 2023-10-16 08:03:53 7e8b89e fix: add missing `DecidableEq` arguments (#7702) These make the lemmas strictly more (syntactically) general. As usual, the way to find these is to remove `open Classical` and fix what breaks. Usually this means adding `classical` to the start of the proof, but there are lots of weird term-mode proofs here for which adding a more surgical `letI := Classical.decEq` is easier. ESTIMATED CHANGES Modified Mathlib/Data/Polynomial/Derivative.lean +/- theorem Polynomial.derivative_prod +/- theorem Polynomial.eval_multiset_prod_X_sub_C_derivative Modified Mathlib/Data/Polynomial/Splits.lean +/- theorem Polynomial.aeval_root_derivative_of_splits +/- theorem Polynomial.splits_of_splits_gcd_left +/- theorem Polynomial.splits_of_splits_gcd_right 2023-10-16 04:14:16 26eb2b0 chore: bump toolchain to v4.2.0-rc2 (#7703) This includes all the changes from #7606. ESTIMATED CHANGES Modified Archive/Sensitivity.lean Modified Counterexamples/DirectSumIsInternal.lean Modified Counterexamples/Pseudoelement.lean Modified Mathlib/Algebra/Algebra/Subalgebra/Basic.lean Modified Mathlib/Algebra/Category/AlgebraCat/Basic.lean Modified Mathlib/Algebra/Category/AlgebraCat/Limits.lean Modified Mathlib/Algebra/Category/GroupCat/Adjunctions.lean Modified Mathlib/Algebra/Category/GroupCat/Basic.lean Modified Mathlib/Algebra/Category/GroupCat/Biproducts.lean Modified Mathlib/Algebra/Category/GroupCat/EquivalenceGroupAddGroup.lean Modified Mathlib/Algebra/Category/GroupCat/Injective.lean Modified Mathlib/Algebra/Category/GroupCat/Limits.lean Modified Mathlib/Algebra/Category/ModuleCat/Adjunctions.lean Modified Mathlib/Algebra/Category/ModuleCat/Basic.lean Modified Mathlib/Algebra/Category/ModuleCat/Biproducts.lean Modified Mathlib/Algebra/Category/ModuleCat/ChangeOfRings.lean Modified Mathlib/Algebra/Category/ModuleCat/Colimits.lean Modified Mathlib/Algebra/Category/ModuleCat/Kernels.lean Modified Mathlib/Algebra/Category/ModuleCat/Monoidal/Basic.lean Modified Mathlib/Algebra/Category/ModuleCat/Monoidal/Closed.lean Modified Mathlib/Algebra/Category/ModuleCat/Projective.lean Modified Mathlib/Algebra/Category/MonCat/Basic.lean Modified Mathlib/Algebra/Category/MonCat/FilteredColimits.lean Modified Mathlib/Algebra/Category/Ring/Colimits.lean Modified Mathlib/Algebra/Category/Ring/Constructions.lean Modified Mathlib/Algebra/DirectSum/Ring.lean Modified Mathlib/Algebra/Homology/ModuleCat.lean Modified Mathlib/Algebra/Lie/Classical.lean Modified Mathlib/Algebra/Lie/DirectSum.lean Modified Mathlib/Algebra/Lie/Submodule.lean +/- theorem LieModuleEquiv.ofTop_apply Modified Mathlib/Algebra/Lie/UniversalEnveloping.lean Modified Mathlib/Algebra/MonoidAlgebra/Basic.lean Modified Mathlib/Algebra/MonoidAlgebra/ToDirectSum.lean Modified Mathlib/AlgebraicGeometry/AffineScheme.lean Modified Mathlib/AlgebraicGeometry/GammaSpecAdjunction.lean Modified Mathlib/AlgebraicGeometry/Morphisms/RingHomProperties.lean Modified Mathlib/AlgebraicGeometry/OpenImmersion.lean Modified Mathlib/AlgebraicGeometry/ProjectiveSpectrum/StructureSheaf.lean Modified Mathlib/AlgebraicGeometry/Spec.lean Modified Mathlib/AlgebraicGeometry/StructureSheaf.lean Modified Mathlib/AlgebraicTopology/CechNerve.lean Modified Mathlib/AlgebraicTopology/FundamentalGroupoid/Basic.lean Modified Mathlib/AlgebraicTopology/FundamentalGroupoid/InducedMaps.lean Modified Mathlib/AlgebraicTopology/SimplexCategory.lean Modified Mathlib/AlgebraicTopology/TopologicalSimplex.lean Modified Mathlib/Analysis/InnerProductSpace/LinearPMap.lean - theorem IsSelfAdjoint.isClosed - theorem LinearPMap.adjoint_graph_eq_graph_adjoint - theorem LinearPMap.adjoint_isClosed - theorem LinearPMap.graph_adjoint_toLinearPMap_eq_adjoint - def Submodule.adjoint - theorem Submodule.mem_adjoint_iff Modified Mathlib/Analysis/InnerProductSpace/PiL2.lean Modified Mathlib/Analysis/InnerProductSpace/Projection.lean Modified Mathlib/Analysis/Normed/Group/SemiNormedGroupCat.lean Modified Mathlib/Analysis/Normed/Group/SemiNormedGroupCat/Completion.lean Modified Mathlib/Analysis/Normed/Group/SemiNormedGroupCat/Kernels.lean Modified Mathlib/Analysis/NormedSpace/HahnBanach/Extension.lean Modified Mathlib/CategoryTheory/Abelian/Pseudoelements.lean Modified Mathlib/CategoryTheory/Adjunction/Comma.lean Modified Mathlib/CategoryTheory/Adjunction/Evaluation.lean Modified Mathlib/CategoryTheory/Adjunction/Lifting.lean Modified Mathlib/CategoryTheory/Closed/Cartesian.lean Modified Mathlib/CategoryTheory/Closed/FunctorCategory.lean Modified Mathlib/CategoryTheory/Closed/Monoidal.lean Modified Mathlib/CategoryTheory/Limits/HasLimits.lean Modified Mathlib/CategoryTheory/Limits/KanExtension.lean Modified Mathlib/CategoryTheory/Limits/Over.lean Modified Mathlib/CategoryTheory/Limits/Presheaf.lean Modified Mathlib/CategoryTheory/Monad/Algebra.lean Modified Mathlib/CategoryTheory/Monoidal/Internal/Module.lean Modified Mathlib/CategoryTheory/Preadditive/Yoneda/Basic.lean Modified Mathlib/CategoryTheory/Sites/Adjunction.lean Modified Mathlib/CategoryTheory/Sites/Sheaf.lean Modified Mathlib/CategoryTheory/Subobject/Comma.lean Modified Mathlib/CategoryTheory/Yoneda.lean Modified Mathlib/Combinatorics/Quiver/Covering.lean Modified Mathlib/Combinatorics/SimpleGraph/Clique.lean Modified Mathlib/Control/Fold.lean Modified Mathlib/Data/Matrix/Reflection.lean Modified Mathlib/Data/MvPolynomial/Rename.lean Modified Mathlib/FieldTheory/AbelRuffini.lean Modified Mathlib/FieldTheory/Adjoin.lean Modified Mathlib/FieldTheory/IntermediateField.lean Modified Mathlib/FieldTheory/IsAlgClosed/AlgebraicClosure.lean Modified Mathlib/FieldTheory/SplittingField/Construction.lean Modified Mathlib/Geometry/Manifold/Algebra/LeftInvariantDerivation.lean Modified Mathlib/Geometry/Manifold/ContMDiffMFDeriv.lean Modified Mathlib/Geometry/Manifold/MFDeriv.lean Modified Mathlib/Geometry/RingedSpace/PresheafedSpace/Gluing.lean Modified Mathlib/GroupTheory/Complement.lean Modified Mathlib/GroupTheory/CoprodI.lean Modified Mathlib/GroupTheory/HNNExtension.lean Modified Mathlib/GroupTheory/OrderOfElement.lean Modified Mathlib/GroupTheory/Perm/Cycle/Basic.lean Modified Mathlib/GroupTheory/Perm/Sign.lean Modified Mathlib/Lean/Expr/Basic.lean - def Lean.ConstantInfo.getUsedConstants - def Lean.Expr.getUsedConstants' - def Lean.NameSet.append Modified Mathlib/LinearAlgebra/AffineSpace/Independent.lean Modified Mathlib/LinearAlgebra/CliffordAlgebra/Equivs.lean Modified Mathlib/LinearAlgebra/DFinsupp.lean Modified Mathlib/LinearAlgebra/Finrank.lean Modified Mathlib/LinearAlgebra/FreeModule/Norm.lean Modified Mathlib/LinearAlgebra/Isomorphisms.lean Modified Mathlib/LinearAlgebra/PiTensorProduct.lean Modified Mathlib/LinearAlgebra/Prod.lean - theorem LinearEquiv.skewSwap_apply - theorem LinearEquiv.skewSwap_symm_apply Modified Mathlib/ModelTheory/DirectLimit.lean Modified Mathlib/ModelTheory/Fraisse.lean Modified Mathlib/ModelTheory/Semantics.lean Modified Mathlib/Order/Category/PartOrd.lean Modified Mathlib/Order/InitialSeg.lean Modified Mathlib/Order/LocallyFinite.lean Modified Mathlib/RepresentationTheory/Action.lean Modified Mathlib/RepresentationTheory/GroupCohomology/Basic.lean Modified Mathlib/RepresentationTheory/GroupCohomology/Resolution.lean Modified Mathlib/RepresentationTheory/Rep.lean Modified Mathlib/RingTheory/ClassGroup.lean Modified Mathlib/RingTheory/DedekindDomain/AdicValuation.lean Modified Mathlib/RingTheory/DedekindDomain/Ideal.lean Modified Mathlib/RingTheory/DedekindDomain/SelmerGroup.lean Modified Mathlib/RingTheory/Etale.lean Modified Mathlib/RingTheory/Ideal/Operations.lean Modified Mathlib/RingTheory/Ideal/QuotientOperations.lean Modified Mathlib/RingTheory/Kaehler.lean Modified Mathlib/RingTheory/LaurentSeries.lean Modified Mathlib/RingTheory/Norm.lean Modified Mathlib/RingTheory/PowerSeries/Basic.lean Modified Mathlib/RingTheory/SimpleModule.lean Modified Mathlib/RingTheory/Subring/Basic.lean Modified Mathlib/RingTheory/Subsemiring/Basic.lean Modified Mathlib/RingTheory/Valuation/ValuationSubring.lean Modified Mathlib/Topology/Category/CompHaus/Projective.lean Modified Mathlib/Topology/Category/Profinite/Basic.lean Modified Mathlib/Topology/Category/Profinite/CofilteredLimit.lean Modified Mathlib/Topology/Category/Profinite/Projective.lean Modified Mathlib/Topology/Category/Stonean/Limits.lean Modified Mathlib/Topology/Category/TopCat/Limits/Pullbacks.lean Modified Mathlib/Topology/ContinuousFunction/Compact.lean Modified Mathlib/Topology/ContinuousFunction/StoneWeierstrass.lean Modified Mathlib/Topology/Gluing.lean Modified Mathlib/Topology/Instances/Complex.lean Modified lake-manifest.json Modified lean-toolchain 2023-10-16 02:18:21 7f121a4 feat(Analysis/InnerProductSpace/LinearPMap): the adjoint is closed (#6537) Define the graph of the adjoint and prove that the adjoint operator is always closed. ESTIMATED CHANGES Modified Mathlib/Analysis/InnerProductSpace/LinearPMap.lean + theorem IsSelfAdjoint.isClosed + theorem LinearPMap.adjoint_graph_eq_graph_adjoint + theorem LinearPMap.adjoint_isClosed + theorem LinearPMap.graph_adjoint_toLinearPMap_eq_adjoint + def Submodule.adjoint + theorem Submodule.mem_adjoint_iff Modified Mathlib/LinearAlgebra/Prod.lean + theorem LinearEquiv.skewSwap_apply + theorem LinearEquiv.skewSwap_symm_apply 2023-10-15 23:39:49 a33e3ec chore: bump std (#7694) Some deleted lemmas have been upstreamed to Std. Note that the statements of `List.zipWith_map_left` (and `_right`) have been changed, requiring slight changes here. ESTIMATED CHANGES Modified Mathlib/Data/List/Basic.lean - theorem List.findIdx_cons - theorem List.findIdx_nil Modified Mathlib/Data/List/Indexes.lean Modified Mathlib/Data/List/Zip.lean - theorem List.zipWith_map - theorem List.zipWith_map_left - theorem List.zipWith_map_right - theorem List.zip_map - theorem List.zip_map_left - theorem List.zip_map_right Modified Mathlib/Data/Nat/Digits.lean Modified Mathlib/SetTheory/Lists.lean Modified lake-manifest.json 2023-10-15 22:40:20 a24cd27 chore(RingTheory/TensorProduct): extract a helper lemma (#7699) ESTIMATED CHANGES Modified Mathlib/RingTheory/TensorProduct.lean + theorem Algebra.TensorProduct.algebraMap_apply' 2023-10-15 22:40:19 ed915e6 chore: relax unnecessarily strict heartbeats (#7651) This was causing failures in unrelated PRs. ESTIMATED CHANGES Modified Mathlib/RingTheory/Adjoin/Field.lean 2023-10-15 21:38:45 5ac9cb3 feat: drop more `CompleteSpace` assumptions (#7691) Also add `completeSpace_prod`, `integrable_prod`. ESTIMATED CHANGES Modified Mathlib/Analysis/SpecialFunctions/PolarCoord.lean Modified Mathlib/MeasureTheory/Function/Jacobian.lean +/- theorem MeasureTheory.integral_image_eq_integral_abs_det_fderiv_smul +/- theorem MeasureTheory.integral_target_eq_integral_abs_det_fderiv_smul Modified Mathlib/MeasureTheory/Function/L1Space.lean + theorem MeasureTheory.Integrable.fst + theorem MeasureTheory.Integrable.snd + theorem MeasureTheory.integrable_prod Modified Mathlib/MeasureTheory/Integral/SetIntegral.lean +/- theorem ContinuousLinearEquiv.integral_comp_comm +/- theorem fst_integral +/- theorem integral_pair +/- theorem integral_smul_const +/- theorem snd_integral + theorem swap_integral Modified Mathlib/Probability/Kernel/WithDensity.lean +/- theorem ProbabilityTheory.kernel.integral_withDensity Modified Mathlib/Topology/Algebra/Module/Basic.lean + def ContinuousLinearEquiv.prodComm + theorem ContinuousLinearEquiv.prodComm_symm Modified Mathlib/Topology/UniformSpace/Cauchy.lean + theorem CompleteSpace.fst_of_prod + theorem CompleteSpace.snd_of_prod + theorem completeSpace_prod_of_nonempty 2023-10-15 18:32:52 a577026 feat: some simp lemmas to compute more cardinals (#7660) ESTIMATED CHANGES Modified Mathlib/SetTheory/Cardinal/Basic.lean + theorem Cardinal.aleph0_add_ofNat + theorem Cardinal.aleph0_mul_ofNat + theorem Cardinal.ofNat_add_aleph0 + theorem Cardinal.ofNat_mul_aleph0 Modified Mathlib/SetTheory/Cardinal/Continuum.lean + theorem Cardinal.continuum_add_ofNat + theorem Cardinal.continuum_mul_ofNat + theorem Cardinal.ofNat_add_continuum + theorem Cardinal.ofNat_mul_continuum Modified Mathlib/SetTheory/Cardinal/Ordinal.lean + theorem Cardinal.nat_add_eq 2023-10-15 14:34:55 84f5ad0 refactor: AddCircle (#7700) This is a refactor of `AddCircle`, changing it from a `def` to an `abbrev`. This fixes issues arising from a `deriving` statement that failed during the port, and allows for much better inference of instances. ESTIMATED CHANGES Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Angle.lean Modified Mathlib/MeasureTheory/Integral/Periodic.lean Modified Mathlib/Topology/Instances/AddCircle.lean - def AddCircle 2023-10-15 14:04:48 d7cb8fe feat: remove sigma-finiteness assumption in layercake formula (#7454) Currently, the layercake formula for the Lebesgue integral assumes sigma-finiteness of the measure, while the layercake formula for the Bochner integral (and integrable functions) doesn't. At the cost of a more complicated proof, we remove the sigma-finiteness also from the Lebesgue measure case. ESTIMATED CHANGES Modified Mathlib/Data/Set/Intervals/Disjoint.lean +/- theorem Set.Ico_disjoint_Ico_same +/- theorem Set.Ioc_disjoint_Ioc_same + theorem Set.Ioc_disjoint_Ioi + theorem Set.Ioc_disjoint_Ioi_same Modified Mathlib/MeasureTheory/Integral/Layercake.lean - theorem Measure.countable_meas_le_ne_meas_lt - theorem Measure.countable_meas_le_ne_meas_lt₀ - theorem Measure.meas_eq_pos_of_meas_le_ne_meas_lt - theorem Measure.meas_le_ae_eq_meas_lt - theorem Measure.meas_le_ae_eq_meas_lt₀ + theorem MeasureTheory.countable_meas_le_ne_meas_lt +/- theorem MeasureTheory.lintegral_comp_eq_lintegral_meas_le_mul +/- theorem MeasureTheory.lintegral_comp_eq_lintegral_meas_le_mul_of_measurable + theorem MeasureTheory.lintegral_comp_eq_lintegral_meas_le_mul_of_measurable_of_sigmaFinite + theorem MeasureTheory.lintegral_comp_eq_lintegral_meas_lt_mul +/- theorem MeasureTheory.lintegral_eq_lintegral_meas_le + theorem MeasureTheory.lintegral_eq_lintegral_meas_lt +/- theorem MeasureTheory.lintegral_rpow_eq_lintegral_meas_le_mul + theorem MeasureTheory.lintegral_rpow_eq_lintegral_meas_lt_mul + theorem MeasureTheory.meas_le_ae_eq_meas_lt - theorem lintegral_comp_eq_lintegral_meas_lt_mul - theorem lintegral_eq_lintegral_meas_lt - theorem lintegral_rpow_eq_lintegral_meas_lt_mul Modified Mathlib/MeasureTheory/Integral/Lebesgue.lean + theorem MeasureTheory.set_lintegral_le_lintegral Modified Mathlib/MeasureTheory/Measure/MeasureSpace.lean + theorem MeasureTheory.restrict_Ico_eq_restrict_Icc + theorem MeasureTheory.restrict_Ico_eq_restrict_Ioc + theorem MeasureTheory.restrict_Iio_eq_restrict_Iic + theorem MeasureTheory.restrict_Ioc_eq_restrict_Icc + theorem MeasureTheory.restrict_Ioi_eq_restrict_Ici + theorem MeasureTheory.restrict_Ioo_eq_restrict_Icc + theorem MeasureTheory.restrict_Ioo_eq_restrict_Ico + theorem MeasureTheory.restrict_Ioo_eq_restrict_Ioc Modified Mathlib/Topology/Algebra/Order/LeftRightLim.lean Modified Mathlib/Topology/Order/Basic.lean + theorem countable_image_gt_image_Iio + theorem countable_image_gt_image_Ioi + theorem countable_image_lt_image_Iio + theorem countable_image_lt_image_Ioi 2023-10-15 08:02:12 39796d1 feat: Cache check for toolchains mismatch (#7652) See [Zulip Thread](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/.60lake.20exe.20cache.20get.60.20should.20check.20toolchains) TLDR: When a project uses mathlib as a dependency check if it has the same lean-toolchain. If it does not use the same lean-toolchain print out an error message and exit ESTIMATED CHANGES Modified Cache/Requests.lean + def Cache.Requests.checkForToolchainMismatch 2023-10-15 07:15:58 d80a329 chore: add `Homeomorph.measurableEmbedding` (#7689) ESTIMATED CHANGES Modified Mathlib/Analysis/Convolution.lean Modified Mathlib/Analysis/SpecialFunctions/Gaussian.lean Modified Mathlib/MeasureTheory/Constructions/BorelSpace/Basic.lean + theorem Homeomorph.measurableEmbedding Modified Mathlib/MeasureTheory/Integral/DivergenceTheorem.lean 2023-10-15 07:15:57 a25db8a chore: remove @[simp] attribute already in Std (#7687) This attribute is already there at the point of definition in Std now. ESTIMATED CHANGES Modified Mathlib/Data/Int/Cast/Defs.lean 2023-10-15 07:15:56 7a1fb80 feat: add `withDensity_mono`, `withDensity_inv_same` and a few others (#7544) ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Measure/WithDensity.lean + theorem MeasureTheory.withDensity_absolutelyContinuous' + theorem MeasureTheory.withDensity_inv_same + theorem MeasureTheory.withDensity_inv_same_le + theorem MeasureTheory.withDensity_inv_same₀ + theorem MeasureTheory.withDensity_mono + theorem MeasureTheory.withDensity_mul₀ 2023-10-15 06:31:45 7b81b5f feat: generalize `MeasureTheory.Measure.Regular.sigmaFinite` (#7690) Generalize `MeasureTheory.Measure.Regular.sigmaFinite` from a regular measure to a measure finite on compacts, rename it to `MeasureTheory.SigmaFinite.of_isFiniteMeasureOnCompacts`. ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Measure/MeasureSpace.lean Modified Mathlib/MeasureTheory/Measure/Regular.lean 2023-10-15 01:17:53 a3d674a chore: remove unnecessary Subsingleton.elim from aesop_cat (#7668) I think this was a workaround that is no longer necessary. If CI disagrees I'll just close this. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Category/Basic.lean 2023-10-14 22:22:02 ba16895 feat(Data.Finset): add `Finset.filterMap` (#7672) ESTIMATED CHANGES Modified Mathlib/Data/Finset/Image.lean + theorem Finset.coe_filterMap + def Finset.filterMap + theorem Finset.filterMap_empty + theorem Finset.filterMap_mono + theorem Finset.filterMap_some + theorem Finset.filterMap_val + theorem Finset.mem_filterMap 2023-10-14 20:52:53 47a07c7 feat: a map to an empty type is measure preserving (#7680) ESTIMATED CHANGES Modified Mathlib/Dynamics/Ergodic/MeasurePreserving.lean + theorem MeasureTheory.MeasurePreserving.of_isEmpty 2023-10-14 13:46:09 04245a8 chore: remove autoImplicit in NeZero.lean (#7673) I was unaware there was some of these still lying around - should we tidy these up? ESTIMATED CHANGES Modified Mathlib/Algebra/NeZero.lean +/- theorem NeZero.ne' +/- theorem NeZero.ne +/- theorem eq_zero_or_neZero +/- theorem neZero_iff +/- theorem not_neZero 2023-10-14 13:46:05 f4abbaa feat: some basic quaternion facts (#7119) ESTIMATED CHANGES Modified Mathlib/Algebra/Quaternion.lean + theorem Quaternion.algebraMap_injective + theorem QuaternionAlgebra.algebraMap_injective + def QuaternionAlgebra.swapEquiv 2023-10-14 07:05:40 6c63dfb feat: vertex replacement (#6808) `cliqueFree_of_replaceVertex_cliqueFree` is still quite long. ESTIMATED CHANGES Modified Mathlib/Combinatorics/SimpleGraph/Basic.lean + theorem SimpleGraph.adj_replaceVertex_iff_of_ne + theorem SimpleGraph.adj_replaceVertex_iff_of_ne_left + theorem SimpleGraph.adj_replaceVertex_iff_of_ne_right + theorem SimpleGraph.not_adj_replaceVertex_same + theorem SimpleGraph.replaceVertex_self Modified Mathlib/Combinatorics/SimpleGraph/Clique.lean + theorem SimpleGraph.cliqueFree_of_replaceVertex_cliqueFree 2023-10-14 06:04:53 8437cda chore(Archive,Counterexamples): use `Type*` not `Type _` (#7663) This is an exhaustive replacement. ESTIMATED CHANGES Modified Archive/Examples/PropEncodable.lean +/- inductive PropEncodable.PropForm Modified Archive/Imo/Imo1962Q4.lean +/- theorem Imo1962Q4.formula Modified Archive/Imo/Imo1987Q1.lean Modified Archive/Imo/Imo1998Q2.lean +/- theorem Imo1998Q2.add_sq_add_sq_sub Modified Archive/Imo/Imo2019Q2.lean Modified Archive/OxfordInvariants/Summer2021/Week3P1.lean Modified Archive/Wiedijk100Theorems/AbelRuffini.lean +/- theorem AbelRuffini.map_Phi Modified Archive/Wiedijk100Theorems/AscendingDescendingSequences.lean Modified Archive/Wiedijk100Theorems/BallotProblem.lean +/- theorem Ballot.headI_mem_of_nonempty Modified Archive/Wiedijk100Theorems/HeronsFormula.lean Modified Archive/Wiedijk100Theorems/Partition.lean +/- theorem Theorems100.coeff_prod_range +/- def Theorems100.cut +/- theorem Theorems100.cut_empty_succ +/- theorem Theorems100.cut_insert +/- theorem Theorems100.cut_zero +/- def Theorems100.indicatorSeries +/- theorem Theorems100.mem_cut +/- theorem Theorems100.partialGF_prop Modified Archive/Wiedijk100Theorems/SolutionOfCubic.lean Modified Counterexamples/HomogeneousPrimeNotPrime.lean Modified Counterexamples/QuadraticForm.lean 2023-10-13 21:18:05 0166642 feat: long overdue delaborators (#7633) This brings to Mathlib assorted delaborators written by @kmill for various projects including Mathematics in Lean. They mostly fix regressions compared to Lean 3. ESTIMATED CHANGES Modified Mathlib/Data/Prod/Basic.lean + def delabProdProjs + def unexpandProdFst + def unexpandProdSnd Modified Mathlib/Data/Set/Lattice.lean + def Set.iUnion_delab + def Set.sInter_delab Modified Mathlib/Order/CompleteLattice.lean + def iInf_delab + def iSup_delab Modified Mathlib/Util/PiNotation.lean + def PiNotation.delabPi' + def exists_delab Added test/delaborators.lean Modified test/propose.lean 2023-10-13 13:56:51 11add7f feat: a non-singular Killing form remains non-singular when restricted to a Cartan subalgebra (#7613) They key addition is the lemma `LieAlgebra.IsKilling.ker_restrictBilinear_of_isCartanSubalgebra_eq_bot`. ESTIMATED CHANGES Modified Mathlib/Algebra/Lie/Killing.lean + theorem LieAlgebra.IsKilling.ker_killingForm_eq_bot + theorem LieAlgebra.IsKilling.ker_restrictBilinear_of_isCartanSubalgebra_eq_bot + theorem LieIdeal.coe_killingCompl_top + theorem LieModule.eq_zero_of_mem_weightSpace_mem_posFitting + theorem LieModule.traceForm_apply_lie_apply' + theorem killingForm_eq_zero_of_mem_zeroRoot_mem_posFitting Modified Mathlib/Algebra/Lie/Submodule.lean Modified Mathlib/Algebra/Lie/Weights/Cartan.lean + theorem LieAlgebra.rootSpace_zero_eq Modified Mathlib/Algebra/Module/Submodule/Bilinear.lean + theorem LinearMap.ker_restrictBilinear_eq_of_codisjoint Modified Mathlib/LinearAlgebra/BilinearMap.lean Modified Mathlib/LinearAlgebra/Span.lean + theorem Submodule.exists_add_eq_of_codisjoint 2023-10-13 13:56:49 7a8ef17 feat: `MonoidalCategory (AlgebraCat R)` (#7598) Some of these proofs are a little awkward as they have to fight with: * non-reducible type issues with `Quiver.Hom` vs `AlgHom` * mazes of coercions between `AlgEquiv` and `LinearMap` * defeqs not matching between module and algebra tensor product This also corrects an accidental mis-statement of `Algebra.TensorProduct.assoc_tmul`. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Category/AlgebraCat/Basic.lean + theorem AlgebraCat.forget₂_module_map + theorem AlgebraCat.forget₂_module_obj Added Mathlib/Algebra/Category/AlgebraCat/Monoidal.lean + theorem AlgebraCat.instMonoidalCategory.forget₂_map_associator_hom + theorem AlgebraCat.instMonoidalCategory.forget₂_map_associator_inv + def AlgebraCat.toModuleCatMonoidalFunctor Added Mathlib/Algebra/Category/AlgebraCat/Symmetric.lean + def AlgebraCat.toModuleCatBraidedFunctor Modified Mathlib/LinearAlgebra/TensorProduct/Tower.lean + theorem TensorProduct.AlgebraTensorModule.rid_eq_rid Modified Mathlib/RingTheory/TensorProduct.lean + theorem Algebra.TensorProduct.assoc_toLinearEquiv + theorem Algebra.TensorProduct.comm_toLinearEquiv + theorem Algebra.TensorProduct.congr_toLinearEquiv + theorem Algebra.TensorProduct.lid_toLinearEquiv + theorem Algebra.TensorProduct.rid_toLinearEquiv 2023-10-13 13:23:14 d6f894a chore(GroupTheory/QuotientGroup): unindent `theorem` (#7659) Discovered following [this Zulip thread](https://leanprover.zulipchat.com/#narrow/stream/113489-new-members/topic/Should.20namespaces.20be.20indented.3F). ESTIMATED CHANGES Modified Mathlib/GroupTheory/QuotientGroup.lean +/- theorem QuotientGroup.mk_prod 2023-10-13 12:52:43 faa8dc9 feat(Computability/CFG): define context-free grammars (#6385) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Computability/ContextFreeGrammar.lean + theorem ContextFreeGrammar.Derives.eq_or_head + theorem ContextFreeGrammar.Derives.eq_or_tail + theorem ContextFreeGrammar.Derives.refl + theorem ContextFreeGrammar.Derives.trans + theorem ContextFreeGrammar.Derives.trans_produces + def ContextFreeGrammar.Generates + theorem ContextFreeGrammar.Produces.single + theorem ContextFreeGrammar.Produces.trans_derives + def ContextFreeGrammar.Produces + def ContextFreeGrammar.language + theorem ContextFreeGrammar.mem_language_iff + structure ContextFreeGrammar.{uN,uT} + theorem ContextFreeRule.Rewrites.exists_parts + inductive ContextFreeRule.Rewrites + theorem ContextFreeRule.rewrites_iff + theorem ContextFreeRule.rewrites_of_exists_parts + structure ContextFreeRule Modified Mathlib/Computability/Language.lean + inductive Symbol 2023-10-12 21:38:12 c98e6b7 feat: Finset family induction (#7522) Provide an induction principle for finset families: One can increase the support of a finset family one by one. ESTIMATED CHANGES Modified Mathlib/Combinatorics/SetFamily/Compression/Down.lean + theorem Finset.image_insert_memberSubfamily + theorem Finset.memberFamily_induction_on + theorem Finset.memberSubfamily_image_erase + theorem Finset.memberSubfamily_image_insert + theorem Finset.nonMemberSubfamily_image_insert Modified Mathlib/Data/Finset/Basic.lean + theorem Finset.insert_subset_insert_iff Modified Mathlib/Data/Set/Basic.lean +/- theorem Set.insert_subset_insert_iff 2023-10-12 18:21:12 d8093fd feat: 2-adic norm of the n-th harmonic number (#7635) feat: 2-adic norm of the n-th harmonic number ESTIMATED CHANGES Modified Mathlib/NumberTheory/Padics/Harmonic.lean + theorem padicNorm_two_harmonic +/- theorem padicValRat_two_harmonic 2023-10-12 17:10:25 bdd2abe feat: integral of `f x • g y` over `α × β` (#7627) * Generalize `integral_prod_mul` to `integral_prod_smul`, add `Integrable.prod_smul`. * Rename `integrable_prod_mul` to `Integrable.prod_mul`. * Add `integral_fun_fst` and `integral_fun_snd`. ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Constructions/Prod/Integral.lean + theorem MeasureTheory.Integrable.prod_mul + theorem MeasureTheory.Integrable.prod_smul - theorem MeasureTheory.integrable_prod_mul + theorem MeasureTheory.integral_fun_fst + theorem MeasureTheory.integral_fun_snd + theorem MeasureTheory.integral_prod_smul 2023-10-12 12:34:10 42b62d4 feat: `NullMeasurable` function is `AEMeasurable` (#7604) This is true if the function admits an a.e. range with countably generated σ-algebra. In particular, a function is `AEStronglyMeasurable` iff it is `NullMeasurable` and it admits a separable a.e. range. ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Function/StronglyMeasurable/Basic.lean + theorem aestronglyMeasurable_iff_nullMeasurable_separable Modified Mathlib/MeasureTheory/MeasurableSpace/Basic.lean + theorem MeasurableSet.of_union_cover Modified Mathlib/MeasureTheory/Measure/AEMeasurable.lean + theorem MeasureTheory.NullMeasurable.aemeasurable + theorem MeasureTheory.NullMeasurable.aemeasurable_of_aerange Modified Mathlib/MeasureTheory/Measure/NullMeasurable.lean + theorem MeasureTheory.Measure.ae_completion 2023-10-12 12:34:08 1145885 feat(Data/Num): use bitwise notation (#7593) This enables the existing `|||`, `&&&`, `<<<`, `>>>`, and `^^^` notation for `Num` and `PosNum`, and makes them simp-normal form. ESTIMATED CHANGES Modified Mathlib/Data/Num/Bitwise.lean + theorem Num.land_eq_and - def Num.lor + theorem Num.lor_eq_or + theorem Num.lxor_eq_xor + theorem Num.shiftl_eq_shiftLeft + theorem Num.shiftr_eq_shiftRight + theorem PosNum.land_eq_and + theorem PosNum.lor_eq_or + theorem PosNum.lxor_eq_xor + theorem PosNum.shiftl_eq_shiftLeft +/- theorem PosNum.shiftl_succ_eq_bit0_shiftl + theorem PosNum.shiftr_eq_shiftRight Modified Mathlib/Data/Num/Lemmas.lean +/- theorem Num.land'_to_nat +/- theorem Num.ldiff'_to_nat +/- theorem Num.lor'_to_nat +/- theorem Num.lxor'_to_nat +/- theorem Num.shiftl_to_nat +/- theorem Num.shiftr_to_nat 2023-10-12 10:52:41 7b2163c chore(Topology/GDelta.lean): rename type variables (#7637) Greek letters for topological spaces are outdated, use letters X, Y, Z instead. [Zulip discussion](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/Naming.20convention.3A.20topological.20spaces/near/395769893). ESTIMATED CHANGES Modified Mathlib/Topology/GDelta.lean +/- theorem Finset.isGδ_compl +/- theorem IsClosed.isGδ +/- theorem IsClosed.isNowhereDense_iff +/- theorem IsGδ.inter +/- theorem IsGδ.union +/- def IsGδ +/- theorem IsMeagre.inter +/- theorem IsMeagre.mono +/- def IsMeagre +/- theorem IsNowhereDense.subset_of_closed_nowhereDense +/- def IsNowhereDense +/- theorem IsOpen.isGδ +/- theorem Set.Countable.isGδ_compl +/- theorem Set.Finite.isGδ +/- theorem Set.Finite.isGδ_compl +/- theorem Set.Subsingleton.isGδ_compl +/- theorem closed_isNowhereDense_iff_compl +/- theorem isGδ_biInter +/- theorem isGδ_biInter_of_open +/- theorem isGδ_biUnion +/- theorem isGδ_compl_singleton +/- theorem isGδ_empty +/- theorem isGδ_iInter +/- theorem isGδ_iInter_of_open +/- theorem isGδ_sInter +/- theorem isGδ_setOf_continuousAt +/- theorem isGδ_singleton +/- theorem isGδ_univ +/- theorem isNowhereDense_of_empty +/- theorem meagre_empty +/- theorem meagre_iUnion +/- theorem meagre_iff_countable_union_nowhereDense +/- theorem mem_residual_iff +/- def residual +/- theorem residual_of_dense_Gδ +/- theorem residual_of_dense_open 2023-10-12 10:52:40 1955a8e chore(Topology/LocallyCompact.lean): rename type variables (#7636) Greek letters for topological spaces are outdated, use letters X, Y, Z instead. [Zulip discussion](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/Naming.20convention.3A.20topological.20spaces/near/395769893). Also generalise universes to Type* in two places. ESTIMATED CHANGES Modified Mathlib/Topology/Compactness/LocallyCompact.lean +/- theorem compact_basis_nhds +/- theorem disjoint_nhds_cocompact +/- theorem exists_compact_between +/- theorem exists_compact_subset +/- theorem exists_compact_superset +/- theorem local_compact_nhds +/- theorem locallyCompactSpace_of_hasBasis 2023-10-12 10:52:39 238b460 feat: naturality of the isomorphisms induced by functors which preserves homology (#7624) If `F : C ⥤ D` is a functor which preserves homlogy (e.g. preserves finite limits/colimits), there is a natural isomorphism `F.mapShortComplex ⋙ ShortComplex.homologyFunctor D ≅ ShortComplex.homologyFunctor C ⋙ F` which expresses that `F` "commutes" with homology. ESTIMATED CHANGES Modified Mathlib/Algebra/Homology/ShortComplex/PreservesHomology.lean + def CategoryTheory.ShortComplex.HomologyMapData.natTransApp + def CategoryTheory.ShortComplex.LeftHomologyMapData.natTransApp + def CategoryTheory.ShortComplex.RightHomologyMapData.natTransApp + theorem CategoryTheory.ShortComplex.homologyMap_mapNatTrans + theorem CategoryTheory.ShortComplex.mapHomologyIso'_eq_mapHomologyIso + theorem CategoryTheory.ShortComplex.mapHomologyIso'_hom_naturality + theorem CategoryTheory.ShortComplex.mapHomologyIso'_inv_naturality + theorem CategoryTheory.ShortComplex.mapHomologyIso_hom_naturality + theorem CategoryTheory.ShortComplex.mapHomologyIso_inv_naturality + theorem CategoryTheory.ShortComplex.mapOpcyclesIso_hom_naturality + theorem CategoryTheory.ShortComplex.mapOpcyclesIso_inv_naturality + theorem CategoryTheory.ShortComplex.mapRightHomologyIso_hom_naturality + theorem CategoryTheory.ShortComplex.mapRightHomologyIso_inv_naturality 2023-10-12 10:52:38 6025756 chore: improve defeq for `Sup` and `sSup` of `LieSubmodule`s (#7608) The point is that the following four lemmas are now all true by definition: - `LieSubmodule.inf_coe_toSubmodule` - `LieSubmodule.sInf_coe_toSubmodule` - `LieSubmodule.sup_coe_toSubmodule` [previously existed but not true by definition] - `LieSubmodule.sSup_coe_toSubmodule` [previously did not exist] ESTIMATED CHANGES Modified Mathlib/Algebra/Lie/Submodule.lean + theorem LieSubmodule.iSup_coe_toSubmodule + theorem LieSubmodule.iSup_induction' + theorem LieSubmodule.iSup_induction + theorem LieSubmodule.mem_iSup_of_mem + theorem LieSubmodule.sInf_coe_toSubmodule' - theorem LieSubmodule.sInf_glb + theorem LieSubmodule.sSup_coe_toSubmodule' + theorem LieSubmodule.sSup_coe_toSubmodule Modified Mathlib/LinearAlgebra/Finsupp.lean + theorem Submodule.mem_sSup_iff_exists_finset Modified Mathlib/LinearAlgebra/Span.lean + theorem Submodule.mem_sSup 2023-10-12 10:52:37 f9c9999 chore(Algebra/DirectSum/Algebra): remove a redundant assumption (#7585) `commutes` is implied by `hone` and linearity. This matches the approach taken by `AlgHom.ofLinearMap`. ESTIMATED CHANGES Modified Mathlib/Algebra/DirectSum/Algebra.lean Modified Mathlib/Algebra/DirectSum/Internal.lean Modified Mathlib/LinearAlgebra/TensorAlgebra/ToTensorPower.lean 2023-10-12 10:52:35 d99c52e chore: replace Nat.digits_add_two_add_one with a syntactic matching simp lemma (#7428) This seems more useful once the theory is set up. Previously ``` Nat.digits 10 (n + 1) = l ``` would simp to ``` (n + 1) % (8 + 2) :: Nat.digits (8 + 2) ((n + 1) / (8 + 2)) = l ``` now it simps to ``` (n + 1) % 10 :: Nat.digits 10 ((n + 1) / 10) = l ``` ESTIMATED CHANGES Modified Mathlib/Data/Nat/Digits.lean + theorem Nat.digits_of_two_le_of_pos 2023-10-12 10:52:34 560cd07 refactor: No need for CachedData in library_search and rw? (#7305) Previously, `Mathlib.Tactic.Cache` defined a `CachedData` data structure to keep a reference to the `CompactedRegion` that we get when unpickling the cache from a file, but it was never used. It also seems to be the case that keeping that reference is not necessary to keep the unpickled data alive. (It is the other way around: The data stays alive until `.free` is called explicitly, which we do not plan to do here.) Therefore, to simplify the code, this PR removes `CachedData`. This came out of working on `#find` in #6363 ESTIMATED CHANGES Modified Mathlib/Tactic/Cache.lean - structure Mathlib.Tactic.CachedData Modified Mathlib/Tactic/LibrarySearch.lean - def Mathlib.Tactic.LibrarySearch.librarySearchLemmas Modified Mathlib/Tactic/Rewrites.lean - def Mathlib.Tactic.Rewrites.rewriteLemmas 2023-10-12 10:52:33 6742182 feat: self_le_pow (#7101) ESTIMATED CHANGES Modified Mathlib/Algebra/GroupPower/Order.lean + theorem self_le_pow 2023-10-12 09:37:04 ab2d44e chore(RingTheory/TensorProduct): golf (#7539) This adds `LinearMap.map_mul_iff` to match `AddMonoidHom.map_mul_iff` and uses it (along with `AlgHom.ofLinearMap`) to golf away some induction proof in favor of `ext`. The main motivation is the `map_mul_iff` lemma itself, not the golfing. Also fixes some incorrect docstrings that were mangled during porting, and adds an explicit name to an instance. ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/Bilinear.lean + theorem LinearMap.map_mul_iff Modified Mathlib/Algebra/Algebra/RestrictScalars.lean Modified Mathlib/LinearAlgebra/BilinearMap.lean + theorem LinearMap.ext_iff₂ Modified Mathlib/RingTheory/TensorProduct.lean 2023-10-12 09:02:48 423fc25 refactor(NumberTheory/FLT): Define Fermat's Last Theorem for fixed exponent (#7494) This PR adds a definition of Fermat's Last Theorem for fixed exponent. The motivation for this is that `FermatLastTheoremWith ℕ n`, `FermatLastTheoremWith ℤ n`, and `FermatLastTheoremWith ℚ n` are all equivalent, so it would be nice to have a canonical name, rather than sometimes referring to one and sometimes referring to another. ESTIMATED CHANGES Modified Mathlib/NumberTheory/FLT/Basic.lean +/- def FermatLastTheorem + theorem FermatLastTheoremFor.mono + def FermatLastTheoremFor + theorem fermatLastTheoremFor_iff_int + theorem fermatLastTheoremFor_iff_nat + theorem fermatLastTheoremFor_iff_rat + theorem fermatLastTheoremFor_zero + theorem not_fermatLastTheoremFor_one + theorem not_fermatLastTheoremFor_two Modified Mathlib/NumberTheory/FLT/Four.lean +/- theorem fermatLastTheoremFour 2023-10-12 07:34:25 780c5ba feat(Integral/Bochner): golf Markov's inequality, drop an assumption (#7619) * Golf the proof of `MeasureTheory.mul_meas_ge_le_integral_of_nonneg`. * Drop the assumption `[IsFiniteMeasure μ]`. * Assume `0 ≤ᵐ[μ] f` instead of `0 ≤ f`. ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Integral/Bochner.lean +/- theorem MeasureTheory.mul_meas_ge_le_integral_of_nonneg Modified Mathlib/Probability/Moments.lean 2023-10-12 03:09:00 644ffce feat: small missing group lemmas (#7614) ESTIMATED CHANGES Modified Mathlib/GroupTheory/Subgroup/Basic.lean + theorem MonoidHom.ker_prod Modified Mathlib/GroupTheory/Subgroup/Finite.lean + theorem Subgroup.eq_bot_iff_card Modified Mathlib/GroupTheory/Submonoid/Membership.lean + theorem Submonoid.card_bot + theorem Submonoid.card_le_one_iff_eq_bot + theorem Submonoid.eq_bot_iff_card + theorem Submonoid.eq_bot_of_card_eq + theorem Submonoid.eq_bot_of_card_le Modified Mathlib/GroupTheory/Submonoid/Operations.lean + theorem Submonoid.eq_bot_of_subsingleton Modified Mathlib/GroupTheory/Sylow.lean 2023-10-11 23:57:15 eea0ff0 feat: check workflows are consistent in CI (#7625) Hopefully this will save a little time with things like #7622 in the long run ESTIMATED CHANGES Modified .github/workflows/bors.yml Modified .github/workflows/build.yml Modified .github/workflows/build.yml.in Modified .github/workflows/build_fork.yml 2023-10-11 21:40:46 13444d8 chore(Topology/SubsetProperties): Refactor SubsetProperties.lean (#7628) Split up the 2000-line `Topology/SubsetProperties.lean` into several smaller files. Not only is it too huge, but the name is very unhelpful, since actually about 90% of the file is about compactness; I've moved this material into various files inside a new subdirectory `Topology/Compactness/`. ESTIMATED CHANGES Modified Counterexamples/SorgenfreyLine.lean Modified Mathlib.lean Modified Mathlib/Geometry/Manifold/Metrizable.lean Modified Mathlib/Topology/AlexandrovDiscrete.lean Modified Mathlib/Topology/Category/Profinite/Basic.lean Added Mathlib/Topology/Clopen.lean + theorem ContinuousOn.preimage_clopen_of_clopen + theorem IsClopen.compl + theorem IsClopen.diff + theorem IsClopen.inter + theorem IsClopen.preimage + theorem IsClopen.prod + theorem IsClopen.union + def IsClopen + theorem Set.Finite.isClopen_biInter + theorem Set.Finite.isClopen_biUnion + theorem continuousOn_boolIndicator_iff_clopen + theorem continuous_boolIndicator_iff_clopen + theorem isClopen_biInter_finset + theorem isClopen_biUnion_finset + theorem isClopen_compl_iff + theorem isClopen_discrete + theorem isClopen_empty + theorem isClopen_iInter_of_finite + theorem isClopen_iUnion_of_finite + theorem isClopen_iff_frontier_eq_empty + theorem isClopen_inter_of_disjoint_cover_clopen + theorem isClopen_range_inl + theorem isClopen_range_inr + theorem isClopen_range_sigmaMk + theorem isClopen_univ Modified Mathlib/Topology/CompactOpen.lean Renamed Mathlib/Topology/SubsetProperties.lean to Mathlib/Topology/Compactness/Compact.lean - theorem CompactExhaustion.exists_mem - theorem CompactExhaustion.find_shiftr - theorem CompactExhaustion.iUnion_eq - theorem CompactExhaustion.mem_diff_shiftr_find - theorem CompactExhaustion.mem_find - theorem CompactExhaustion.mem_iff_find_le - def CompactExhaustion.shiftr - theorem CompactExhaustion.subset_interior - theorem CompactExhaustion.subset_interior_succ - theorem CompactExhaustion.subset_succ - theorem CompactExhaustion.toFun_eq_coe - structure CompactExhaustion - theorem ContinuousOn.preimage_clopen_of_clopen - def Filter.codiscrete - theorem IrreducibleSpace.isIrreducible_univ - theorem IsClopen.compl - theorem IsClopen.diff - theorem IsClopen.inter - theorem IsClopen.preimage - theorem IsClopen.prod - theorem IsClopen.union - def IsClopen - theorem IsClosed.sigmaCompactSpace - theorem IsIrreducible.image - theorem IsIrreducible.isPreirreducible - theorem IsIrreducible.nonempty - def IsIrreducible - theorem IsPreirreducible.image - theorem IsPreirreducible.interior - theorem IsPreirreducible.open_subset - theorem IsPreirreducible.preimage - theorem IsPreirreducible.subset_irreducible - def IsPreirreducible - theorem Set.Finite.isClopen_biInter - theorem Set.Finite.isClopen_biUnion - theorem Set.Subsingleton.isPreirreducible - theorem SigmaCompactSpace.of_countable - theorem Subtype.irreducibleSpace - theorem Subtype.preirreducibleSpace - def compactCovering - theorem compactCovering_subset - theorem compact_basis_nhds - theorem continuousOn_boolIndicator_iff_clopen - theorem continuous_boolIndicator_iff_clopen - theorem countable_cover_nhdsWithin_of_sigma_compact - theorem countable_cover_nhds_of_sigma_compact - theorem disjoint_nhds_cocompact - theorem eq_irreducibleComponent - theorem exists_compact_between - theorem exists_compact_subset - theorem exists_compact_superset - theorem exists_mem_compactCovering - theorem exists_preirreducible - theorem iUnion_compactCovering - def irreducibleComponent - theorem irreducibleComponent_mem_irreducibleComponents - theorem irreducibleComponent_property - def irreducibleComponents - theorem irreducibleComponents_eq_maximals_closed - theorem irreducibleSpace_def - theorem isClopen_biInter_finset - theorem isClopen_biUnion_finset - theorem isClopen_compl_iff - theorem isClopen_discrete - theorem isClopen_empty - theorem isClopen_iInter_of_finite - theorem isClopen_iUnion_of_finite - theorem isClopen_iff_frontier_eq_empty - theorem isClopen_inter_of_disjoint_cover_clopen - theorem isClopen_range_inl - theorem isClopen_range_inr - theorem isClopen_range_sigmaMk - theorem isClopen_univ - theorem isClosed_and_discrete_iff - theorem isClosed_irreducibleComponent - theorem isClosed_of_mem_irreducibleComponents - theorem isCompact_compactCovering - theorem isIrreducible_iff_closure - theorem isIrreducible_iff_sInter - theorem isIrreducible_iff_sUnion_closed - theorem isIrreducible_irreducibleComponent - theorem isIrreducible_singleton - theorem isPreirreducible_empty - theorem isPreirreducible_iff_closed_union_closed - theorem isPreirreducible_iff_closure - theorem isPreirreducible_singleton - theorem local_compact_nhds - theorem locallyCompactSpace_of_hasBasis - theorem mem_irreducibleComponent - theorem nonempty_preirreducible_inter - theorem subset_closure_inter_of_isPreirreducible_of_isOpen Added Mathlib/Topology/Compactness/LocallyCompact.lean + theorem compact_basis_nhds + theorem disjoint_nhds_cocompact + theorem exists_compact_between + theorem exists_compact_subset + theorem exists_compact_superset + theorem local_compact_nhds + theorem locallyCompactSpace_of_hasBasis Renamed Mathlib/Topology/Paracompact.lean to Mathlib/Topology/Compactness/Paracompact.lean Added Mathlib/Topology/Compactness/SigmaCompact.lean + theorem CompactExhaustion.exists_mem + theorem CompactExhaustion.find_shiftr + theorem CompactExhaustion.iUnion_eq + theorem CompactExhaustion.mem_diff_shiftr_find + theorem CompactExhaustion.mem_find + theorem CompactExhaustion.mem_iff_find_le + def CompactExhaustion.shiftr + theorem CompactExhaustion.subset_interior + theorem CompactExhaustion.subset_interior_succ + theorem CompactExhaustion.subset_succ + theorem CompactExhaustion.toFun_eq_coe + structure CompactExhaustion + theorem IsClosed.sigmaCompactSpace + theorem SigmaCompactSpace.of_countable + def compactCovering + theorem compactCovering_subset + theorem countable_cover_nhdsWithin_of_sigma_compact + theorem countable_cover_nhds_of_sigma_compact + theorem exists_mem_compactCovering + theorem iUnion_compactCovering + theorem isCompact_compactCovering Modified Mathlib/Topology/Connected.lean Modified Mathlib/Topology/DiscreteQuotient.lean Modified Mathlib/Topology/DiscreteSubset.lean + def Filter.codiscrete + theorem isClosed_and_discrete_iff Modified Mathlib/Topology/EMetricSpace/Paracompact.lean Added Mathlib/Topology/Irreducible.lean + theorem IrreducibleSpace.isIrreducible_univ + theorem IsIrreducible.image + theorem IsIrreducible.isPreirreducible + theorem IsIrreducible.nonempty + def IsIrreducible + theorem IsPreirreducible.image + theorem IsPreirreducible.interior + theorem IsPreirreducible.open_subset + theorem IsPreirreducible.preimage + theorem IsPreirreducible.subset_irreducible + def IsPreirreducible + theorem Set.Subsingleton.isPreirreducible + theorem Subtype.irreducibleSpace + theorem Subtype.preirreducibleSpace + theorem eq_irreducibleComponent + theorem exists_preirreducible + def irreducibleComponent + theorem irreducibleComponent_mem_irreducibleComponents + theorem irreducibleComponent_property + def irreducibleComponents + theorem irreducibleComponents_eq_maximals_closed + theorem irreducibleSpace_def + theorem isClosed_irreducibleComponent + theorem isClosed_of_mem_irreducibleComponents + theorem isIrreducible_iff_closure + theorem isIrreducible_iff_sInter + theorem isIrreducible_iff_sUnion_closed + theorem isIrreducible_irreducibleComponent + theorem isIrreducible_singleton + theorem isPreirreducible_empty + theorem isPreirreducible_iff_closed_union_closed + theorem isPreirreducible_iff_closure + theorem isPreirreducible_singleton + theorem mem_irreducibleComponent + theorem nonempty_preirreducible_inter + theorem subset_closure_inter_of_isPreirreducible_of_isOpen Modified Mathlib/Topology/LocallyConstant/Basic.lean Modified Mathlib/Topology/PartitionOfUnity.lean Modified Mathlib/Topology/QuasiSeparated.lean Modified Mathlib/Topology/Separation.lean Modified Mathlib/Topology/Sequences.lean Modified Mathlib/Topology/UniformSpace/Basic.lean 2023-10-11 20:05:10 1e58771 feat: homology isomorphism for a functor which preserves homology (#7623) When a functor `F` preserves the homology of a short complex `S`, it is shown in this PR that there is an isomorphism `(S.map F).homology ≅ F.obj S.homology`. ESTIMATED CHANGES Modified Mathlib/Algebra/Homology/ShortComplex/PreservesHomology.lean + theorem CategoryTheory.ShortComplex.HomologyData.map_homologyMap' + theorem CategoryTheory.ShortComplex.LeftHomologyData.mapCyclesIso_eq + theorem CategoryTheory.ShortComplex.LeftHomologyData.mapHomologyIso_eq + theorem CategoryTheory.ShortComplex.LeftHomologyData.mapLeftHomologyIso_eq + theorem CategoryTheory.ShortComplex.LeftHomologyData.map_cyclesMap' + theorem CategoryTheory.ShortComplex.LeftHomologyData.map_leftHomologyMap' + theorem CategoryTheory.ShortComplex.RightHomologyData.mapHomologyIso'_eq + theorem CategoryTheory.ShortComplex.RightHomologyData.mapOpcyclesIso_eq + theorem CategoryTheory.ShortComplex.RightHomologyData.mapRightHomologyIso_eq + theorem CategoryTheory.ShortComplex.RightHomologyData.map_opcyclesMap' + theorem CategoryTheory.ShortComplex.RightHomologyData.map_rightHomologyMap' + theorem CategoryTheory.ShortComplex.mapCyclesIso_hom_naturality + theorem CategoryTheory.ShortComplex.mapCyclesIso_inv_naturality + theorem CategoryTheory.ShortComplex.mapLeftHomologyIso_hom_naturality + theorem CategoryTheory.ShortComplex.mapLeftHomologyIso_inv_naturality 2023-10-11 20:05:09 7dffcc4 feat(MeasureTheory/../Prod): drop unneeded assumptions (#7620) * Drop `CompleteSpace` assumption in all theorems about Bochner integral on `α × β`. * Drop measurability assumption in `lintegral_prod_swap`. ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Constructions/Prod/Basic.lean +/- theorem MeasureTheory.lintegral_prod_swap Modified Mathlib/MeasureTheory/Constructions/Prod/Integral.lean +/- theorem MeasureTheory.integral_prod 2023-10-11 20:05:08 2c0ab8d feat: Fitting decomposition of a representation of a nilpotent Lie algebra (#7556) ESTIMATED CHANGES Modified Mathlib.lean Renamed Mathlib/Algebra/Lie/Weights.lean to Mathlib/Algebra/Lie/Weights/Basic.lean - theorem LieAlgebra.coe_rootSpaceWeightSpaceProduct_tmul - theorem LieAlgebra.coe_zeroRootSubalgebra - theorem LieAlgebra.is_cartan_of_zeroRootSubalgebra_eq - theorem LieAlgebra.le_zeroRootSubalgebra - theorem LieAlgebra.lie_mem_weightSpace_of_mem_weightSpace - theorem LieAlgebra.mem_zeroRootSubalgebra - def LieAlgebra.rootSpaceProduct - theorem LieAlgebra.rootSpaceProduct_def - theorem LieAlgebra.rootSpaceProduct_tmul - def LieAlgebra.rootSpaceWeightSpaceProduct - def LieAlgebra.rootSpaceWeightSpaceProductAux - theorem LieAlgebra.rootSpace_comap_eq_weightSpace - theorem LieAlgebra.toLieSubmodule_le_rootSpace_zero - def LieAlgebra.zeroRootSubalgebra - theorem LieAlgebra.zeroRootSubalgebra_eq_iff_is_cartan - theorem LieAlgebra.zeroRootSubalgebra_eq_of_is_cartan - theorem LieAlgebra.zeroRootSubalgebra_normalizer_eq_self - theorem LieAlgebra.zero_rootSpace_eq_top_of_nilpotent - def LieModule.IsWeight + theorem LieModule.coe_weightSpaceOf_zero +/- theorem LieModule.coe_weightSpace_of_top + theorem LieModule.comap_weightSpace_eq_of_injective +/- theorem LieModule.iSup_ucs_eq_weightSpace_zero +/- theorem LieModule.iSup_ucs_le_weightSpace_zero + theorem LieModule.isCompl_weightSpaceOf_zero_posFittingCompOf + theorem LieModule.isCompl_weightSpace_zero_posFittingComp +/- theorem LieModule.isNilpotent_toEndomorphism_weightSpace_zero - theorem LieModule.isWeight_zero_of_nilpotent + theorem LieModule.map_posFittingComp_eq + theorem LieModule.map_posFittingComp_le + theorem LieModule.map_weightSpace_eq + theorem LieModule.map_weightSpace_eq_of_injective + theorem LieModule.map_weightSpace_le +/- theorem LieModule.mem_posFittingComp +/- theorem LieModule.mem_posFittingCompOf +/- theorem LieModule.mem_weightSpace +/- theorem LieModule.mem_weightSpaceOf +/- def LieModule.posFittingComp +/- def LieModule.posFittingCompOf +/- theorem LieModule.posFittingCompOf_le_lowerCentralSeries +/- theorem LieModule.posFittingCompOf_le_posFittingComp +/- theorem LieModule.posFittingComp_le_iInf_lowerCentralSeries + theorem LieModule.posFittingComp_map_incl_sup_of_codisjoint +/- def LieModule.weightSpace +/- def LieModule.weightSpaceOf +/- theorem LieModule.weightSpace_zero_normalizer_eq_self +/- theorem LieModule.zero_weightSpace_eq_top_of_nilpotent' +/- theorem LieModule.zero_weightSpace_eq_top_of_nilpotent Added Mathlib/Algebra/Lie/Weights/Cartan.lean + theorem LieAlgebra.coe_rootSpaceWeightSpaceProduct_tmul + theorem LieAlgebra.coe_zeroRootSubalgebra + theorem LieAlgebra.is_cartan_of_zeroRootSubalgebra_eq + theorem LieAlgebra.le_zeroRootSubalgebra + theorem LieAlgebra.lie_mem_weightSpace_of_mem_weightSpace + theorem LieAlgebra.mem_zeroRootSubalgebra + def LieAlgebra.rootSpaceProduct + theorem LieAlgebra.rootSpaceProduct_def + theorem LieAlgebra.rootSpaceProduct_tmul + def LieAlgebra.rootSpaceWeightSpaceProduct + def LieAlgebra.rootSpaceWeightSpaceProductAux + theorem LieAlgebra.rootSpace_comap_eq_weightSpace + theorem LieAlgebra.toLieSubmodule_le_rootSpace_zero + def LieAlgebra.zeroRootSubalgebra + theorem LieAlgebra.zeroRootSubalgebra_eq_iff_is_cartan + theorem LieAlgebra.zeroRootSubalgebra_eq_of_is_cartan + theorem LieAlgebra.zeroRootSubalgebra_normalizer_eq_self + theorem LieAlgebra.zero_rootSpace_eq_top_of_nilpotent + def LieModule.IsWeight + theorem LieModule.isWeight_zero_of_nilpotent 2023-10-11 20:05:07 c00742d refactor(Lean.Meta.DiscrTree): Stackless `mapArrays` (#7387) the naive implementation of `mapArrays`, when run in the interpreter, can stack overflow when creating the `find_theorems` cache in CI, this blocks #7244. While more fundamental fixes are possible (e.g. a Trie structure that cannot be that deep, https://github.com/leanprover/lean4/pull/2577), simply rewriting `mapArrays` to be a single tail-recursive function (which the interpreter is able to execute without using stack space) should prevent more unrelated PRs from failing CI. ESTIMATED CHANGES Modified Mathlib/Lean/Meta/DiscrTree.lean - def Lean.Meta.DiscrTree.mapArraysM 2023-10-11 19:02:46 b39fc2a chore(Topology/Homeomorph): rename type variables (#7587) X, Y, Z are standard mathematical names for topological spaces. As [discussed](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/Naming.20convention.3A.20topological.20spaces/near/395769893) on zulip, let us rename them. ESTIMATED CHANGES Modified Mathlib/Topology/Homeomorph.lean +/- theorem Continuous.continuous_symm_of_equiv_compact_to_t2 +/- def Continuous.homeoOfEquivCompactToT2 +/- theorem Equiv.coe_toHomeomorph +/- def Equiv.toHomeomorph +/- def Equiv.toHomeomorphOfInducing +/- theorem Equiv.toHomeomorph_apply +/- theorem Equiv.toHomeomorph_symm +/- theorem Equiv.toHomeomorph_trans +/- theorem HasCompactMulSupport.comp_homeomorph +/- def Homeomorph.Set.prod +/- def Homeomorph.Set.univ +/- def Homeomorph.Simps.symm_apply +/- theorem Homeomorph.apply_symm_apply +/- def Homeomorph.changeInv +/- theorem Homeomorph.coe_prodComm +/- theorem Homeomorph.coe_prodCongr +/- theorem Homeomorph.coe_punitProd +/- theorem Homeomorph.coe_symm_toEquiv +/- theorem Homeomorph.coe_toEquiv +/- theorem Homeomorph.coinduced_eq +/- theorem Homeomorph.comap_cocompact +/- theorem Homeomorph.comap_nhds_eq +/- theorem Homeomorph.comp_continuousAt_iff' +/- theorem Homeomorph.comp_continuousAt_iff +/- theorem Homeomorph.comp_continuousOn_iff +/- theorem Homeomorph.comp_continuousWithinAt_iff +/- theorem Homeomorph.comp_continuous_iff' +/- theorem Homeomorph.comp_continuous_iff +/- theorem Homeomorph.comp_isOpenMap_iff' +/- theorem Homeomorph.comp_isOpenMap_iff +/- theorem Homeomorph.ext +/- def Homeomorph.finTwoArrow +/- def Homeomorph.funSplitAt +/- def Homeomorph.funUnique +/- def Homeomorph.homeomorphOfContinuousOpen +/- def Homeomorph.homeomorphOfUnique +/- theorem Homeomorph.homeomorph_mk_coe +/- theorem Homeomorph.homeomorph_mk_coe_symm +/- def Homeomorph.image +/- theorem Homeomorph.image_closure +/- theorem Homeomorph.image_frontier +/- theorem Homeomorph.image_interior +/- theorem Homeomorph.image_preimage +/- theorem Homeomorph.image_symm +/- theorem Homeomorph.induced_eq +/- theorem Homeomorph.isClosed_image +/- theorem Homeomorph.isClosed_preimage +/- theorem Homeomorph.isCompact_image +/- theorem Homeomorph.isCompact_preimage +/- theorem Homeomorph.isConnected_image +/- theorem Homeomorph.isConnected_preimage +/- theorem Homeomorph.isOpen_image +/- theorem Homeomorph.isOpen_preimage +/- theorem Homeomorph.isPreconnected_image +/- theorem Homeomorph.isPreconnected_preimage +/- theorem Homeomorph.locallyConnectedSpace +/- theorem Homeomorph.map_cocompact +/- theorem Homeomorph.map_nhds_eq +/- theorem Homeomorph.nhds_eq_comap +/- def Homeomorph.piCongr +/- def Homeomorph.piCongrLeft +/- def Homeomorph.piCongrRight +/- theorem Homeomorph.piCongrRight_symm +/- def Homeomorph.piEquivPiSubtypeProd +/- def Homeomorph.piFinTwo.{u} +/- def Homeomorph.piSplitAt +/- theorem Homeomorph.preimage_closure +/- theorem Homeomorph.preimage_frontier +/- theorem Homeomorph.preimage_image +/- theorem Homeomorph.preimage_interior +/- theorem Homeomorph.preimage_symm +/- def Homeomorph.prodAssoc +/- def Homeomorph.prodComm +/- theorem Homeomorph.prodComm_symm +/- def Homeomorph.prodCongr +/- theorem Homeomorph.prodCongr_symm +/- def Homeomorph.prodPUnit +/- def Homeomorph.prodSumDistrib +/- def Homeomorph.punitProd +/- theorem Homeomorph.range_coe +/- theorem Homeomorph.refl_symm +/- theorem Homeomorph.self_comp_symm +/- theorem Homeomorph.self_trans_symm +/- def Homeomorph.setCongr +/- def Homeomorph.sigmaProdDistrib +/- def Homeomorph.sumCongr +/- def Homeomorph.sumProdDistrib +/- theorem Homeomorph.symm_apply_apply +/- theorem Homeomorph.symm_comp_self +/- theorem Homeomorph.symm_map_nhds_eq +/- theorem Homeomorph.symm_symm +/- theorem Homeomorph.symm_trans_apply +/- theorem Homeomorph.symm_trans_self +/- theorem Homeomorph.toEquiv_injective +/- theorem Homeomorph.trans_apply +/- def Homeomorph.ulift.{u, +/- structure Homeomorph 2023-10-11 14:21:16 8e92c5f chore: typo (#7621) ESTIMATED CHANGES Modified docs/100.yaml 2023-10-11 12:19:13 9532a8e feat(MeasureTheory/../Prod): null measurability of `f ∘ fst` (#7610) A function on the product that depends only on one component is null measurable iff it is null measurable as a function of one variable. ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Constructions/Prod/Basic.lean + theorem MeasureTheory.Measure.nullMeasurableSet_preimage_fst + theorem MeasureTheory.Measure.nullMeasurableSet_preimage_snd + theorem MeasureTheory.Measure.nullMeasurable_comp_fst + theorem MeasureTheory.Measure.nullMeasurable_comp_snd + theorem MeasureTheory.NullMeasurableSet.of_preimage_fst + theorem MeasureTheory.NullMeasurableSet.of_preimage_snd 2023-10-11 11:21:49 6b31fee chore: Make groupoidOfElements use Groupoid.inv instead of CategoryTheory.inv (#7616) It seemed suspicious to me that the definition of the action groupoid was noncomputable, since the definition is so explicit. It turns out CategoryTheory.groupoidOfElements was marked noncomputable because its definition of Groupoid.inv used CategoryTheory.inv to choose an inverse. This seems like it was probably just a namespace issue, and the author intended to use Groupoid.inv (which is computable). It seems like this definition would be a lot easier to work with in practice. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Action.lean Modified Mathlib/CategoryTheory/Elements.lean 2023-10-11 09:58:11 b0b0f7c chore(LinearAlgebra/Basic): change a `CommSemiring`instance to a `Semiring` instance (#7611) Generalize `mem_map_equiv` and likes to `Semiring` (previously used `CommSemiring` instances). ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/Basic.lean 2023-10-11 09:58:10 9ff5b6f feat: use suppress_compilation in tensor products (#7504) More principled version of #7281. ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/Bilinear.lean - def LinearMap.mul' Modified Mathlib/Algebra/Category/ModuleCat/ChangeOfRings.lean Modified Mathlib/Algebra/Category/ModuleCat/Monoidal/Basic.lean Modified Mathlib/Algebra/Category/ModuleCat/Monoidal/Closed.lean Modified Mathlib/Algebra/Category/ModuleCat/Monoidal/Symmetric.lean Modified Mathlib/Algebra/Category/Ring/Constructions.lean Modified Mathlib/Algebra/Lie/BaseChange.lean Modified Mathlib/Algebra/Lie/TensorProduct.lean Modified Mathlib/Algebra/Lie/Weights.lean Modified Mathlib/AlgebraicGeometry/Limits.lean Modified Mathlib/CategoryTheory/Monoidal/Internal/Module.lean Modified Mathlib/Data/Matrix/Kronecker.lean Modified Mathlib/LinearAlgebra/Alternating/DomCoprod.lean Modified Mathlib/LinearAlgebra/BilinearForm/TensorProduct.lean Modified Mathlib/LinearAlgebra/Contraction.lean Modified Mathlib/LinearAlgebra/DirectSum/TensorProduct.lean Modified Mathlib/LinearAlgebra/Multilinear/TensorProduct.lean Modified Mathlib/LinearAlgebra/PiTensorProduct.lean Modified Mathlib/LinearAlgebra/QuadraticForm/TensorProduct/Isometries.lean Modified Mathlib/LinearAlgebra/TensorAlgebra/ToTensorPower.lean Modified Mathlib/LinearAlgebra/TensorPower.lean Modified Mathlib/LinearAlgebra/TensorProduct.lean Modified Mathlib/LinearAlgebra/TensorProduct/Opposite.lean Modified Mathlib/LinearAlgebra/TensorProduct/Prod.lean Modified Mathlib/LinearAlgebra/TensorProduct/RightExactness.lean Modified Mathlib/LinearAlgebra/TensorProduct/Tower.lean Modified Mathlib/RepresentationTheory/Basic.lean - def Representation.tprod Modified Mathlib/RepresentationTheory/FdRep.lean Modified Mathlib/RepresentationTheory/Invariants.lean Modified Mathlib/RepresentationTheory/Rep.lean Modified Mathlib/RingTheory/Finiteness.lean Modified Mathlib/RingTheory/Kaehler.lean Modified Mathlib/RingTheory/MatrixAlgebra.lean Modified Mathlib/RingTheory/TensorProduct.lean Modified Mathlib/Tactic/SuppressCompilation.lean + def expandSuppressCompilationNotation 2023-10-11 08:25:00 fbb3ffb chore: run mk_build_yml (#7622) Wasn't run after the second change in #7618. ESTIMATED CHANGES Modified .github/workflows/bors.yml Modified .github/workflows/build.yml Modified .github/workflows/build_fork.yml 2023-10-11 08:24:59 9106dcf chore: remove trailing space in backticks (#7617) This will improve spaces in the mathlib4 docs. ESTIMATED CHANGES Modified Mathlib/Algebra/Category/AlgebraCat/Basic.lean Modified Mathlib/Algebra/Homology/ShortComplex/LeftHomology.lean Modified Mathlib/Algebra/Homology/ShortComplex/RightHomology.lean Modified Mathlib/Algebra/Module/Basic.lean Modified Mathlib/Algebra/Module/Equiv.lean Modified Mathlib/AlgebraicTopology/DoldKan/Decomposition.lean Modified Mathlib/Analysis/Complex/UpperHalfPlane/FunctionsBoundedAtInfty.lean Modified Mathlib/Analysis/Convex/Jensen.lean Modified Mathlib/Analysis/SpecialFunctions/Pow/NNReal.lean Modified Mathlib/Analysis/SpecialFunctions/SmoothTransition.lean Modified Mathlib/CategoryTheory/ConcreteCategory/Basic.lean Modified Mathlib/CategoryTheory/Endomorphism.lean Modified Mathlib/CategoryTheory/Limits/Preserves/Shapes/Terminal.lean Modified Mathlib/CategoryTheory/Limits/Shapes/BinaryProducts.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Biproducts.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Pullbacks.lean Modified Mathlib/CategoryTheory/Subobject/Comma.lean Modified Mathlib/Combinatorics/Catalan.lean Modified Mathlib/Combinatorics/SimpleGraph/Basic.lean Modified Mathlib/Data/Finsupp/ToDFinsupp.lean Modified Mathlib/Data/Seq/Seq.lean Modified Mathlib/FieldTheory/Separable.lean Modified Mathlib/Geometry/Manifold/ContMDiff.lean Modified Mathlib/GroupTheory/GroupAction/Prod.lean Modified Mathlib/LinearAlgebra/Basic.lean Modified Mathlib/LinearAlgebra/Dimension.lean Modified Mathlib/LinearAlgebra/Multilinear/Basic.lean Modified Mathlib/MeasureTheory/Function/LpSpace.lean Modified Mathlib/MeasureTheory/Measure/Haar/Quotient.lean Modified Mathlib/NumberTheory/Cyclotomic/Basic.lean Modified Mathlib/NumberTheory/NumberField/Units.lean Modified Mathlib/Order/Filter/Bases.lean Modified Mathlib/Order/PartialSups.lean Modified Mathlib/Probability/Independence/Basic.lean Modified Mathlib/RingTheory/Discriminant.lean Modified Mathlib/RingTheory/Ideal/QuotientOperations.lean Modified Mathlib/RingTheory/Prime.lean Modified Mathlib/Topology/Algebra/Nonarchimedean/Bases.lean Modified Mathlib/Topology/NoetherianSpace.lean Modified Mathlib/Topology/UniformSpace/UniformConvergence.lean 2023-10-11 08:24:58 8de3e10 chore: bump std (#7602) ESTIMATED CHANGES Modified Mathlib/Data/Bool/Basic.lean +/- theorem Bool.not_ne_id Modified Mathlib/Data/List/Defs.lean Modified Mathlib/Data/List/Infix.lean + theorem List.IsPrefix.filter_map + theorem List.IsPrefix.map + theorem List.IsPrefix.reduceOption - theorem List.isPrefix.filter_map - theorem List.isPrefix.map - theorem List.isPrefix.reduceOption Modified Mathlib/Data/List/Rdrop.lean Modified Mathlib/Data/Nat/Bitwise.lean Modified Mathlib/Data/String/Defs.lean + def String.IsPrefix + def String.IsSuffix - def String.isPrefix - def String.isSuffix Modified Mathlib/Data/String/Lemmas.lean +/- theorem String.leftpad_prefix +/- theorem String.leftpad_suffix Modified Mathlib/Data/TwoPointing.lean Modified lake-manifest.json 2023-10-11 07:51:31 451325f feat: functors which preserves right homology (#7256) ESTIMATED CHANGES Modified Mathlib/Algebra/Homology/ShortComplex/PreservesHomology.lean + def CategoryTheory.Functor.PreservesLeftHomologyOf.mk' + def CategoryTheory.Functor.PreservesRightHomologyOf.mk' + def CategoryTheory.ShortComplex.HomologyMapData.map + def CategoryTheory.ShortComplex.RightHomologyData.IsPreservedBy.hf + def CategoryTheory.ShortComplex.RightHomologyData.IsPreservedBy.hg' + theorem CategoryTheory.ShortComplex.RightHomologyData.map_g' + def CategoryTheory.ShortComplex.RightHomologyMapData.map 2023-10-11 06:19:03 ad5f243 chore: build lean4checker until it works (#7618) ESTIMATED CHANGES Modified .github/workflows/bors.yml Modified .github/workflows/build.yml Modified .github/workflows/build.yml.in Modified .github/workflows/build_fork.yml 2023-10-10 23:14:16 a40e5ba chore(MeasureTheory/Function): golf some proofs (#7588) ESTIMATED CHANGES Modified Mathlib/Data/Set/Image.lean + theorem Set.exists_eq_const_of_preimage_singleton Modified Mathlib/MeasureTheory/Function/SimpleFunc.lean Modified Mathlib/MeasureTheory/Function/StronglyMeasurable/Basic.lean 2023-10-10 23:14:15 b400da1 feat: improve API for Fitting decomposition of a linear endomorphism (#7487) Especially the new lemma `LinearMap.eventually_isCompl_ker_pow_range_pow` ESTIMATED CHANGES Modified Mathlib/Algebra/Lie/Weights.lean - theorem LieModule.exists_coe_posFittingCompOf_eq_of_isArtinian Modified Mathlib/RingTheory/Artinian.lean + theorem IsArtinian.eventuallyConst_of_isArtinian - theorem IsArtinian.exists_endomorphism_iterate_ker_sup_range_eq_top + theorem LinearMap.eventually_codisjoint_ker_pow_range_pow + theorem LinearMap.eventually_iInf_range_pow_eq + theorem LinearMap.eventually_isCompl_ker_pow_range_pow - theorem LinearMap.exists_range_pow_eq_iInf + theorem LinearMap.isCompl_iSup_ker_pow_iInf_range_pow Modified Mathlib/RingTheory/Noetherian.lean +/- theorem IsNoetherian.bijective_of_surjective_endomorphism +/- theorem IsNoetherian.disjoint_partialSups_eventually_bot - theorem IsNoetherian.exists_endomorphism_iterate_ker_inf_range_eq_bot +/- theorem IsNoetherian.injective_of_surjective_endomorphism + theorem LinearMap.eventually_disjoint_ker_pow_range_pow + theorem LinearMap.eventually_iSup_ker_pow_eq + theorem eventuallyConst_of_isNoetherian +/- theorem finite_of_linearIndependent +/- theorem isNoetherian_of_range_eq_ker 2023-10-10 21:36:52 69c11af feat: nowhere dense and meagre sets (#7180) Define nowhere dense and meagre sets and show their basic properties. Meagre sets are defined as the complement of comeagre(=residual) sets (and shown to be equivalent to the standard definition); we deduce their API from the API for comeagre sets. ESTIMATED CHANGES Modified Mathlib/Data/Set/Lattice.lean + theorem Set.sUnion_mono_subsets + theorem Set.sUnion_mono_supsets Modified Mathlib/Topology/GDelta.lean + theorem IsClosed.isNowhereDense_iff + theorem IsMeagre.inter + theorem IsMeagre.mono + def IsMeagre + theorem IsNowhereDense.subset_of_closed_nowhereDense + def IsNowhereDense + theorem closed_isNowhereDense_iff_compl + theorem isNowhereDense_of_empty + theorem meagre_empty + theorem meagre_iUnion + theorem meagre_iff_countable_union_nowhereDense 2023-10-10 20:30:52 6dbefa3 chore: fix typo in docstring (#7612) ESTIMATED CHANGES Modified Mathlib/Topology/UniformSpace/Basic.lean 2023-10-10 20:30:50 d34032a feat: compact subsets in products as cofiltered limits of projections (#6578) We exhibit a compact subset in a product of totally disconnected Hausdorff spaces as a limit of its projections to finite subsets of the indexing set, in the category `Profinite`. The proof is structured in the same way as `Profinite.isIso_asLimitCone_lift` and `DiscreteQuotient.exists_of_compat`. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Topology/Category/Profinite/Product.lean + theorem Profinite.IndexFunctor.eq_of_forall_π_app_eq + def Profinite.IndexFunctor.map + theorem Profinite.IndexFunctor.map_comp_π_app + def Profinite.IndexFunctor.obj + theorem Profinite.IndexFunctor.surjective_π_app + def Profinite.IndexFunctor.π_app + def Profinite.asLimitindexConeIso + def Profinite.indexCone + def Profinite.indexCone_isLimit + def Profinite.indexFunctor + def Profinite.isoindexConeLift Modified Mathlib/Topology/ContinuousFunction/Basic.lean + def ContinuousMap.precomp 2023-10-10 18:38:41 10922d6 doc(Topology/Homeomorph): two docstrings (#7595) ESTIMATED CHANGES Modified Mathlib/Topology/Homeomorph.lean 2023-10-10 17:21:15 201c8ee feat: Chinese remainder for ZMod. (#7599) ESTIMATED CHANGES Modified Mathlib/Data/ZMod/Quotient.lean + def ZMod.prodEquivPi Modified Mathlib/RingTheory/Coprime/Basic.lean + theorem IsCoprime.intCast Modified Mathlib/RingTheory/Coprime/Lemmas.lean + theorem Nat.Coprime.cast Modified Mathlib/RingTheory/Ideal/Operations.lean +/- theorem Ideal.iInf_span_singleton + theorem Ideal.iInf_span_singleton_natCast Modified Mathlib/RingTheory/Ideal/Quotient.lean Modified Mathlib/RingTheory/Ideal/QuotientOperations.lean 2023-10-10 10:33:30 2937b75 chore: use `zeta = false` in `push_neg` (#7592) There is no reason to expand local definitions while pushing negations inside a formula. ESTIMATED CHANGES Modified Mathlib/Tactic/PushNeg.lean Modified test/push_neg.lean 2023-10-10 07:17:49 7fb3d8a chore(MeasureTheory/Measure): use `∧` instead of `∃` (#7603) Use `∃ t', t' ⊆ t ∧ _` instead of `∃ t' (_ : t' ⊆ t), _` and similarly with `⊇` in `MeasureTheory.toMeasurable` and related lemmas. Also reflow linebreaks in an unrelated proof. ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Measure/AEMeasurable.lean Modified Mathlib/MeasureTheory/Measure/MeasureSpace.lean Modified Mathlib/MeasureTheory/Measure/MeasureSpaceDef.lean Modified Mathlib/MeasureTheory/Measure/NullMeasurable.lean 2023-10-10 07:17:48 c4caeb2 fix(Algebra/Algebra/Basic): missing universe polymorphism (#7597) This was previously inferred as `PUnit.{1}` ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/Basic.lean 2023-10-09 21:43:43 3f4910d chore: mark Homeomorph.isCompact_{pre}image simp (#7594) The analogous lemmas for open, closed, preconnected, connected sets are all tagged simp. ESTIMATED CHANGES Modified Mathlib/Topology/Homeomorph.lean 2023-10-09 21:43:41 0bf6843 feat(Topology/Separation): filter of codiscrete sets (#7456) This PR shows that, in any topological space, the sets whose complement is discrete and closed form a filter. (The only somewhat nontrivial step is to check that unions of discrete closed sets are discrete.) This is intended as a preliminary for introducing meromorphic functions on opens in $\mathbb{C}$ (which are, by definition, holomorphic on a co-discrete set). ESTIMATED CHANGES Modified Mathlib/Topology/SubsetProperties.lean + def Filter.codiscrete + theorem isClosed_and_discrete_iff 2023-10-09 20:03:06 6ddda3a feat: simp lemmas for polynomial coefficients (#7557) Code by Ruben-VandeVelde ESTIMATED CHANGES Modified Mathlib/Data/Nat/Cast/Defs.lean Modified Mathlib/Data/Polynomial/Basic.lean + theorem Polynomial.coeff_ofNat_succ + theorem Polynomial.coeff_ofNat_zero 2023-10-09 18:38:16 bc49eb9 feat(CategoryTheory/Monoidal/Transport): generalize to a faithful functor (#7237) I needed this to transfer the monoidal structure from `ModuleCat` to `QuadraticModuleCat`, but would also work for transferring the same structure from `ModuleCat` to `AlgebraCat`. The changes are: * A new `CategoryTheory.Monoidal.induced` definition, proven from scratch with slightly uglier proofs than what `transport` used. The new proofs use `simp` rather more than targeted slice commands, mainly due to lack of patience on my part. * `CategoryTheory.Monoidal.transport` now has a trivial implementation in terms of `induced`, as does `CategoryTheory.MonoidalCategory.fullMonoidalSubcategory` (though this was already fairly trivial) * `CategoryTheory.Monoidal.laxToTransported` has been removed, as it's just a less useful version of `CategoryTheory.Monoidal.toTransported` * `CategoryTheory.Monoidal.toTransported` has been golfed to oblivion, as it now falls out trivially by showing `fromTransported` first. ESTIMATED CHANGES Modified Mathlib/Algebra/Category/FGModuleCat/Basic.lean Modified Mathlib/CategoryTheory/FullSubcategory.lean + theorem CategoryTheory.FullSubcategory.comp_def + theorem CategoryTheory.FullSubcategory.id_def Modified Mathlib/CategoryTheory/Monoidal/Subcategory.lean Modified Mathlib/CategoryTheory/Monoidal/Transport.lean + structure CategoryTheory.Monoidal.InducingFunctorData + def CategoryTheory.Monoidal.fromInduced +/- def CategoryTheory.Monoidal.fromTransported - def CategoryTheory.Monoidal.laxToTransported +/- def CategoryTheory.Monoidal.toTransported +/- def CategoryTheory.Monoidal.transport Modified Mathlib/RepresentationTheory/Action.lean +/- def CategoryTheory.MonoidalFunctor.mapAction Modified Mathlib/RepresentationTheory/Rep.lean 2023-10-09 17:08:12 54e9f32 doc(GroupTheory.Index): update main definitions to use `relindex_mul_index`. (#7472) doc(GroupTheory.Index): update main definitions to use `relindex_mul_index`. ESTIMATED CHANGES Modified Mathlib/GroupTheory/Index.lean 2023-10-09 15:23:52 fff0bc6 feat: prove equality of `Nat.bitwise` and `Nat.bitwise'` (#7410) This PR proves that `Nat.bitwise` (from core) and `Nat.bitwise'` (from mathlib) are equal ESTIMATED CHANGES Modified Mathlib/Data/Int/Bitwise.lean Modified Mathlib/Data/Nat/Bitwise.lean + theorem Nat.bitwise'_bit' + theorem Nat.bitwise'_eq_bitwise + theorem Nat.bitwise'_of_ne_zero + theorem Nat.bitwise'_swap + theorem Nat.bitwise'_zero_right + theorem Nat.bitwise_bit + theorem Nat.bitwise_of_ne_zero + theorem Nat.bitwise_zero + theorem Nat.bitwise_zero_left + theorem Nat.bitwise_zero_right + theorem Nat.land'_eq_land + theorem Nat.land_bit + theorem Nat.lor'_eq_lor + theorem Nat.lor_bit + theorem Nat.lxor_bit + theorem Nat.xor'_eq_xor Modified Mathlib/Data/Num/Lemmas.lean Modified Mathlib/Init/Data/Nat/Bitwise.lean - theorem Nat.bitwise'_swap - theorem Nat.bitwise'_zero_right 2023-10-09 13:35:44 2ee7c9f doc: add docstrings for vector and matrix notation (#7583) ESTIMATED CHANGES Modified Mathlib/Data/Fin/VecNotation.lean Modified Mathlib/Data/Matrix/Notation.lean Modified scripts/nolints.json 2023-10-09 13:35:43 281dea7 refactor(LinearAlgebra/QuadraticForm/Basic): remove non-commutativity support (#7581) As discussed [on Zulip](https://leanprover.zulipchat.com/#narrow/stream/116395-maths/topic/Quadratic.20Maps/near/395529867), this generalization seems nonsensical as currently implemented. There are sensible ways to make this generalization, but they are much larger refactors, and in the meantime the current generalization is useless anyway. ESTIMATED CHANGES Modified Counterexamples/QuadraticForm.lean Modified Mathlib/LinearAlgebra/CliffordAlgebra/Contraction.lean Modified Mathlib/LinearAlgebra/Matrix/PosDef.lean Modified Mathlib/LinearAlgebra/QuadraticForm/Basic.lean +/- def Matrix.toQuadraticForm' +/- theorem QuadraticForm.associated_linMulLin +/- theorem QuadraticForm.associated_sq +/- theorem QuadraticForm.basisRepr_eq_of_iIsOrtho +/- def QuadraticForm.discr +/- theorem QuadraticForm.discr_comp +/- theorem QuadraticForm.discr_smul +/- theorem QuadraticForm.isSymm_toMatrix' +/- theorem QuadraticForm.polar_comp +/- def QuadraticForm.toMatrix' +/- theorem QuadraticForm.toMatrix'_comp +/- theorem QuadraticForm.toMatrix'_smul +/- def QuadraticForm.weightedSumSquares +/- theorem QuadraticForm.weightedSumSquares_apply +/- structure QuadraticForm Modified Mathlib/LinearAlgebra/QuadraticForm/Complex.lean Modified Mathlib/LinearAlgebra/QuadraticForm/Isometry.lean Modified Mathlib/LinearAlgebra/QuadraticForm/IsometryEquiv.lean Modified Mathlib/LinearAlgebra/QuadraticForm/Prod.lean +/- theorem QuadraticForm.PosDef.prod +/- theorem QuadraticForm.anisotropic_of_pi +/- theorem QuadraticForm.anisotropic_of_prod +/- theorem QuadraticForm.nonneg_pi_iff +/- theorem QuadraticForm.nonneg_prod_iff +/- theorem QuadraticForm.posDef_pi_iff +/- theorem QuadraticForm.posDef_prod_iff Modified Mathlib/LinearAlgebra/QuadraticForm/Real.lean Modified Mathlib/LinearAlgebra/QuadraticForm/TensorProduct.lean 2023-10-09 13:35:41 68b3c5a perf (Filter.Germ): direct inheritance patterns for instances (#7540) We replace uses of `Function.Surjective.x` with terms constructed using direct inheritance from parents. ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Function/AEEqFun.lean Modified Mathlib/Order/Filter/Germ.lean 2023-10-09 13:35:40 4f086f9 feat: structure sheaf of a manifold (#7332) In https://github.com/leanprover-community/mathlib/pull/19146, we defined `StructureGroupoid.LocalInvariantProp.sheaf`, the sheaf-of-types of functions `f : M → M'` (for charted spaces `M`, `M'`) satisfying some local property in the sense of `StructureGroupoid.LocalInvariantProp` (for example continuity, differentiability, smoothness). In this PR, in the case of smoothness, we upgrade this to a sheaf of groups if `M'` is a Lie group, a sheaf of abelian groups if `M'` is an abelian Lie group, and a sheaf of rings if `M'` is a "smooth ring". ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Category/GroupCat/Limits.lean Modified Mathlib/Condensed/Abelian.lean Added Mathlib/Geometry/Manifold/Sheaf/Smooth.lean + def smoothPresheafCommRing + def smoothPresheafRing + def smoothSheaf.eval + def smoothSheaf.evalAt + def smoothSheaf.evalHom + theorem smoothSheaf.eval_germ + theorem smoothSheaf.eval_surjective + theorem smoothSheaf.obj_eq + theorem smoothSheaf.smooth_section + theorem smoothSheaf.ι_evalHom + def smoothSheaf + def smoothSheafCommGroup.compLeft + def smoothSheafCommRing.eval + def smoothSheafCommRing.evalAt + def smoothSheafCommRing.evalHom + theorem smoothSheafCommRing.eval_surjective + def smoothSheafCommRing.forgetStalk + theorem smoothSheafCommRing.forgetStalk_hom_comp_evalHom + theorem smoothSheafCommRing.forgetStalk_inv_comp_eval + theorem smoothSheafCommRing.ι_evalHom + theorem smoothSheafCommRing.ι_forgetStalk_hom + theorem smoothSheafCommRing.ι_forgetStalk_inv + def smoothSheafCommRing + def smoothSheafRing Modified Mathlib/Topology/Basic.lean Modified Mathlib/Topology/Category/TopCat/Basic.lean 2023-10-09 12:27:07 159651e feat: effective epi iff surjective in `CompHaus`/`Profinite`/`Stonean` (#7421) - [x] depends on: #7420 ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Sites/EffectiveEpimorphic.lean + theorem CategoryTheory.effectiveEpi_iff_epi Modified Mathlib/Topology/Category/CompHaus/EffectiveEpi.lean + theorem CompHaus.effectiveEpi_iff_surjective Modified Mathlib/Topology/Category/Profinite/EffectiveEpi.lean + theorem Profinite.effectiveEpi_iff_surjective Modified Mathlib/Topology/Category/Stonean/EffectiveEpi.lean + theorem Stonean.effectiveEpi_iff_surjective 2023-10-09 12:27:06 768beda feat(Tactic/MoveAdd): port `move_add` (#6576) This PR is a short implementation of the `move_add` tactic. It is intended as a preliminary port, featuring the reordering strategy and a very naïve proof-algorithm. A more refined version with a more robust proof will appear in a later PR. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Tactic.lean Added Mathlib/Tactic/MoveAdd.lean + def Lean.Expr.getExprInputs + def Lean.Expr.size + def Mathlib.MoveAdd.move_oper_simpCtx + def Mathlib.MoveAdd.pairUp + def Mathlib.MoveAdd.parseArrows + def Mathlib.MoveAdd.permuteExpr + def Mathlib.MoveAdd.prepareOp + def Mathlib.MoveAdd.rankSums + def Mathlib.MoveAdd.reorderAndSimp + def Mathlib.MoveAdd.reorderUsing + def Mathlib.MoveAdd.sumList + def Mathlib.MoveAdd.unifyMovements + def Mathlib.MoveAdd.uniquify + def Mathlib.MoveAdd.weight Added test/MoveAdd.lean 2023-10-09 10:41:46 c475337 feat(Algebra/DirectSum/Algebra): graded multiplication as a bilinear map (#7577) Also adds some missing actions on `GradedMonoid` which cleans up the definition of `DirectSum.GAlgebra` slightly. This also replaces `(⟨i, x⟩ : GradedMonoid _)` with `.mk i x` as the former uses `Sigma.mk` instead of `GradedMonoid.mk`, which is annoying for `rw`. ESTIMATED CHANGES Modified Mathlib/Algebra/DirectSum/Algebra.lean + def DirectSum.gMulLHom Modified Mathlib/Algebra/GradedMonoid.lean + theorem GradedMonoid.smul_mk 2023-10-09 10:41:45 953f84a fix(RingTheory/GradedAlgebra/Basic): rewrite `simps` lemma by hand (#7574) The simps lemmas generated here were bad. The porting note matches the one on `decomposeAddEquiv` which also needed manual lemmas. This also adds new lemmas that help keep `simp` confluent. ESTIMATED CHANGES Modified Mathlib/RingTheory/GradedAlgebra/Basic.lean + theorem DirectSum.decomposeAlgEquiv_apply + theorem DirectSum.decomposeAlgEquiv_symm_apply + theorem DirectSum.decompose_algebraMap + theorem DirectSum.decompose_symm_algebraMap 2023-10-09 10:41:44 2cf88de feat(Algebra/Order/Ring/Defs): auto-derive one of the fields of `OrderCommSemiring` (#7572) Commutativity means one field of `OrderSemiring` follows from the other. ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Ring/Defs.lean 2023-10-09 10:41:42 28df819 refactor(Algebra/Algebra/Equiv): align `AlgEquiv.ofLinearEquiv` with `AlgHom.ofLinearMap` (#7537) The former previously took a hypothesis about `f (algebraMap R A r) = algebraMap R B r`, but now needs only `f 1 = 1`, matching the latter. This doesn't make much difference at the two callers. ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/Equiv.lean +/- theorem AlgEquiv.ofLinearEquiv_toLinearEquiv +/- theorem AlgEquiv.toLinearEquiv_ofLinearEquiv Modified Mathlib/Algebra/MonoidAlgebra/Basic.lean Modified Mathlib/LinearAlgebra/Matrix/ToLin.lean + theorem LinearMap.toMatrix'_one 2023-10-09 10:04:53 1d33c1b chore(Algebra/DirectSum/Ring): add missing rfl lemma (#7575) This isn't a simp lemma for the same reason that `Algebra.TensorProduct.one_def` isn't. Also simplifies the term in the instance. ESTIMATED CHANGES Modified Mathlib/Algebra/DirectSum/Ring.lean + theorem DirectSum.one_def 2023-10-09 08:36:24 196e587 style: `Qpf` to `QPF` & `PFunctor.IdxCat` to `PFunctor.Idx` (#7499) `IdxCat` was a mathport-ism caused by the name being capitalized in Lean 3. ESTIMATED CHANGES Modified Mathlib/Data/PFunctor/Univariate/Basic.lean + def PFunctor.Idx - def PFunctor.IdxCat +/- def PFunctor.Obj.iget Modified Mathlib/Data/PFunctor/Univariate/M.lean +/- def PFunctor.M.ichildren +/- theorem PFunctor.M.ichildren_mk Modified Mathlib/Data/QPF/Univariate/Basic.lean + theorem QPF.Cofix.bisim' + theorem QPF.Cofix.bisim + theorem QPF.Cofix.bisim_rel + def QPF.Cofix.corec + def QPF.Cofix.dest + theorem QPF.Cofix.dest_corec + def QPF.Cofix + def QPF.Fix.dest + theorem QPF.Fix.dest_mk + theorem QPF.Fix.ind + theorem QPF.Fix.ind_aux + theorem QPF.Fix.ind_rec + def QPF.Fix.mk + theorem QPF.Fix.mk_dest + def QPF.Fix.rec + theorem QPF.Fix.rec_eq + theorem QPF.Fix.rec_unique + def QPF.Fix + def QPF.IsPrecongr + def QPF.IsUniform + def QPF.LiftpPreservation + def QPF.Mcongr + def QPF.SuppPreservation + theorem QPF.Wequiv.abs' + theorem QPF.Wequiv.refl + theorem QPF.Wequiv.symm + inductive QPF.Wequiv + def QPF.Wrepr + theorem QPF.Wrepr_equiv + def QPF.Wsetoid + def QPF.comp + theorem QPF.comp_map + def QPF.corecF + theorem QPF.corecF_eq + def QPF.fixToW + theorem QPF.has_good_supp_iff + theorem QPF.id_map + theorem QPF.lawfulFunctor + theorem QPF.liftpPreservation_iff_uniform + theorem QPF.liftp_iff' + theorem QPF.liftp_iff + theorem QPF.liftp_iff_of_isUniform + theorem QPF.liftr_iff + theorem QPF.mem_supp + def QPF.quotientQPF + def QPF.recF + theorem QPF.recF_eq' + theorem QPF.recF_eq + theorem QPF.recF_eq_of_Wequiv + theorem QPF.suppPreservation_iff_liftpPreservation + theorem QPF.suppPreservation_iff_uniform + theorem QPF.supp_eq + theorem QPF.supp_eq_of_isUniform + theorem QPF.supp_map - theorem Qpf.Cofix.bisim' - theorem Qpf.Cofix.bisim - theorem Qpf.Cofix.bisim_rel - def Qpf.Cofix.corec - def Qpf.Cofix.dest - theorem Qpf.Cofix.dest_corec - def Qpf.Cofix - def Qpf.Fix.dest - theorem Qpf.Fix.dest_mk - theorem Qpf.Fix.ind - theorem Qpf.Fix.ind_aux - theorem Qpf.Fix.ind_rec - def Qpf.Fix.mk - theorem Qpf.Fix.mk_dest - def Qpf.Fix.rec - theorem Qpf.Fix.rec_eq - theorem Qpf.Fix.rec_unique - def Qpf.Fix - def Qpf.IsPrecongr - def Qpf.IsUniform - def Qpf.LiftpPreservation - def Qpf.Mcongr - def Qpf.SuppPreservation - theorem Qpf.Wequiv.abs' - theorem Qpf.Wequiv.refl - theorem Qpf.Wequiv.symm - inductive Qpf.Wequiv - def Qpf.Wrepr - theorem Qpf.Wrepr_equiv - def Qpf.Wsetoid - def Qpf.comp - theorem Qpf.comp_map - def Qpf.corecF - theorem Qpf.corecF_eq - def Qpf.fixToW - theorem Qpf.has_good_supp_iff - theorem Qpf.id_map - theorem Qpf.lawfulFunctor - theorem Qpf.liftpPreservation_iff_uniform - theorem Qpf.liftp_iff' - theorem Qpf.liftp_iff - theorem Qpf.liftp_iff_of_isUniform - theorem Qpf.liftr_iff - theorem Qpf.mem_supp - def Qpf.quotientQpf - def Qpf.recF - theorem Qpf.recF_eq' - theorem Qpf.recF_eq - theorem Qpf.recF_eq_of_Wequiv - theorem Qpf.suppPreservation_iff_liftpPreservation - theorem Qpf.suppPreservation_iff_uniform - theorem Qpf.supp_eq - theorem Qpf.supp_eq_of_isUniform - theorem Qpf.supp_map Modified scripts/nolints.json 2023-10-09 07:13:01 60c0549 chore(CircleIntegral): fix a docstring, golf a proof (#7570) ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Integral/CircleIntegral.lean 2023-10-09 06:37:14 0247200 chore(MeasureTheory/../Prod/Integral): Drop an assumption, golf (#7579) Drop some measurability assumptions by using the fact that `Prod.swap` is a measurable equivalence. ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Constructions/Prod/Integral.lean +/- theorem MeasureTheory.integrable_swap_iff +/- theorem MeasureTheory.integral_prod_swap 2023-10-09 05:50:08 0cb7083 feat(MeasureTheory/../Prod): add lemmas about `NullMeasurableSet` (#7578) Also golf a proof. The informal proof was provided by Felix Weilacher on [Zulip](https://leanprover.zulipchat.com/#narrow/stream/116395-maths/topic/Product.20of.20nonmeasurable.20sets). ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Constructions/Prod/Basic.lean + theorem MeasureTheory.Measure.ae_ae_eq_curry_of_prod + theorem MeasureTheory.Measure.ae_ae_eq_of_ae_eq_uncurry + theorem MeasureTheory.Measure.nullMeasurableSet_prod + theorem MeasureTheory.Measure.nullMeasurableSet_prod_of_ne_zero + theorem MeasureTheory.Measure.set_prod_ae_eq + theorem MeasureTheory.NullMeasurableSet.left_of_prod + theorem MeasureTheory.NullMeasurableSet.right_of_prod 2023-10-08 22:56:40 44c2586 feat: analogue of iSup.prod for sets (#7528) ESTIMATED CHANGES Modified Mathlib/Data/Set/Lattice.lean + theorem Set.iUnion_prod' 2023-10-08 22:03:22 60e96a1 doc(MeasureTheory/Constructions/Polish): fix typo (#7571) ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Constructions/Polish.lean 2023-10-08 20:38:27 8cdd933 feat: various Lie algebra definitions / lemmas (#7507) These are all motivated by a result I've proved but I believe they make sense in their own right so I have split them out in the hopes of simplifying review. ESTIMATED CHANGES Modified Mathlib/Algebra/Lie/Basic.lean + theorem LieModuleEquiv.apply_eq_iff_eq_symm_apply + theorem LieModuleEquiv.coe_coe + theorem LieModuleEquiv.surjective Modified Mathlib/Algebra/Lie/Nilpotent.lean + theorem LieModule.eventually_iInf_lowerCentralSeries_eq + theorem LieSubmodule.lcs_sup Modified Mathlib/Algebra/Lie/OfAssociative.lean + theorem LieModule.toEndomorphism_pow_apply_map + theorem LieModule.toEndomorphism_pow_comp_lieHom Modified Mathlib/Algebra/Lie/Submodule.lean + def LieModuleEquiv.ofTop + theorem LieModuleEquiv.ofTop_apply + theorem LieModuleEquiv.range_coe + theorem LieSubmodule.coe_map + theorem LieSubmodule.comap_inf + def LieSubmodule.mapOrderEmbedding + theorem LieSubmodule.map_bot + theorem LieSubmodule.map_comp + theorem LieSubmodule.map_iSup + theorem LieSubmodule.map_id + theorem LieSubmodule.map_incl_le + theorem LieSubmodule.map_incl_lt_iff_lt_top + theorem LieSubmodule.map_incl_top + theorem LieSubmodule.map_inf + theorem LieSubmodule.map_inf_le + theorem LieSubmodule.map_injective_of_injective + theorem LieSubmodule.map_le_map_iff + theorem LieSubmodule.map_le_range + theorem LieSubmodule.map_mono + theorem LieSubmodule.mem_map_of_mem + def LieSubmodule.orderIsoMapComap + def LieSubmodule.toSubmodule_orderEmbedding + theorem LieSubmodule.wellFounded_of_isArtinian Modified Mathlib/LinearAlgebra/Basic.lean + theorem Submodule.map_inf + theorem Submodule.map_inf_le 2023-10-07 21:08:08 81fa8d9 chore: fix aligns (#7529) ESTIMATED CHANGES Modified Mathlib/Data/Set/Basic.lean 2023-10-07 19:56:17 e09f6c6 feat: Polynomial.sum_comp (#7559) ESTIMATED CHANGES Modified Mathlib/Data/Polynomial/Eval.lean + theorem Polynomial.sum_comp 2023-10-07 18:13:03 fd3a089 feat(NumberTheory): Rayleigh's theorem (#7027) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/NumberTheory/Rayleigh.lean + theorem Irrational.beattySeq'_pos_eq + theorem Irrational.beattySeq_symmDiff_beattySeq_pos + theorem beattySeq'_symmDiff_beattySeq_pos + theorem beattySeq_symmDiff_beattySeq'_pos + theorem compl_beattySeq' + theorem compl_beattySeq 2023-10-07 16:42:58 fe7a998 feat: lemmas about accumulate/partialSups/biUnion (#7562) From the Kolmogorov extension theorem project. ESTIMATED CHANGES Modified Mathlib/Data/Nat/Lattice.lean + theorem Nat.iInf_le_succ' + theorem Nat.iInf_le_succ + theorem Nat.iSup_le_succ' + theorem Nat.iSup_le_succ + theorem Set.biInter_le_succ' + theorem Set.biInter_le_succ + theorem Set.biUnion_le_succ' + theorem Set.biUnion_le_succ Modified Mathlib/Data/Set/Accumulate.lean + theorem Set.accumulate_subset_iUnion Modified Mathlib/Order/PartialSups.lean + theorem partialSups_apply_mono 2023-10-07 08:18:22 b097a5a feat: open mapping theorem for surjective morphisms between locally compact groups (#7356) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/GroupTheory/GroupAction/Defs.lean + theorem MulAction.compHom_smul_def + theorem MulAction.isPretransitive_compHom Modified Mathlib/Topology/Algebra/Group/Basic.lean + theorem exists_closed_nhds_one_inv_eq_mul_subset Added Mathlib/Topology/Algebra/Group/OpenMapping.lean + theorem MonoidHom.isOpenMap_of_sigmaCompact + theorem isOpenMap_smul_of_sigmaCompact + theorem smul_singleton_mem_nhds_of_sigmaCompact Modified Mathlib/Topology/Algebra/MulAction.lean + theorem MulAction.continuousSMul_compHom 2023-10-07 06:50:46 7732480 chore: relax typeclass assumptions in two modular lattice lemmas (#7555) ESTIMATED CHANGES Modified Mathlib/Order/ModularLattice.lean +/- theorem Disjoint.isCompl_sup_left_of_isCompl_sup_right +/- theorem Disjoint.isCompl_sup_right_of_isCompl_sup_left 2023-10-06 21:21:17 fb3884a chore: add a couple of to_additives (#7535) ESTIMATED CHANGES Modified Mathlib/Algebra/BigOperators/Multiset/Basic.lean Modified Mathlib/Data/Finsupp/Multiset.lean 2023-10-06 15:59:03 8ec1ec7 chore(Topology/../Order): weaken TC assumptions (#7553) Generalize some lemmas from `ConditionallyCompleteLinearOrder` to `LinearOrder`. Also drop an unused `variable`. ESTIMATED CHANGES Modified Mathlib/Topology/Algebra/Order/Compact.lean 2023-10-06 15:59:02 c151d07 chore: clean up names with iUnion instead of Union (#7550) ESTIMATED CHANGES Modified Mathlib/Analysis/BoxIntegral/Box/SubboxInduction.lean Modified Mathlib/Analysis/LocallyConvex/Basic.lean Modified Mathlib/Data/Set/Pointwise/SMul.lean - theorem Set.smul_set_Union + theorem Set.smul_set_iUnion Modified Mathlib/GroupTheory/Perm/Cycle/Basic.lean - theorem Finset.product_self_eq_disjUnion_perm - theorem Finset.product_self_eq_disj_Union_perm_aux + theorem Finset.product_self_eq_disjiUnion_perm + theorem Finset.product_self_eq_disjiUnion_perm_aux Modified Mathlib/MeasureTheory/Group/FundamentalDomain.lean Modified Mathlib/Order/Concept.lean - theorem extentClosure_Union₂ + theorem extentClosure_iUnion₂ Modified Mathlib/Order/ConditionallyCompleteLattice/Basic.lean - theorem Monotone.ciSup_mem_Inter_Icc_of_antitone + theorem Monotone.ciSup_mem_iInter_Icc_of_antitone - theorem ciSup_mem_Inter_Icc_of_antitone_Icc + theorem ciSup_mem_iInter_Icc_of_antitone_Icc Modified Mathlib/Order/Filter/CountableInter.lean Modified Mathlib/Probability/Kernel/CondCdf.lean Modified Mathlib/Topology/Basic.lean - theorem closure_Union_of_finite + theorem closure_iUnion_of_finite - theorem interior_Inter₂_subset + theorem interior_iInter₂_subset Modified Mathlib/Topology/Separation.lean 2023-10-06 15:59:00 88e8df9 chore: make CanonicallyLinearOrdered[Add]CommMonoid extend more (#7515) Originally: ``` class CanonicallyLinearOrderedAddCommMonoid (α : Type*) extends CanonicallyOrderedAddCommMonoid α, LinearOrder α class CanonicallyLinearOrderedCommMonoid (α : Type*) extends CanonicallyOrderedCommMonoid α, LinearOrder α ``` Now: ``` class CanonicallyLinearOrderedAddCommMonoid (α : Type*) extends CanonicallyOrderedAddCommMonoid α, LinearOrderedAddCommMonoid α class CanonicallyLinearOrderedCommMonoid (α : Type*) extends CanonicallyOrderedCommMonoid α, LinearOrderedCommMonoid α ``` It gives the same union of properties as before, but now we have two more conversions for free: `CanonicallyLinearOrderedAddCommMonoid ` -> `LinearOrderedAddCommMonoid ` `CanonicallyLinearOrderedCommMonoid ` -> `LinearOrderedCommMonoid ` ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Monoid/Canonical/Defs.lean 2023-10-06 14:17:29 f182837 refactor(TensorProduct): golf the definition of Neg (#7546) ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/TensorProduct.lean +/- def TensorProduct.Neg.aux - theorem TensorProduct.Neg.aux_of 2023-10-06 14:17:27 5c40b84 refactor(MetricSpace/Basic): use `cobounded` more (#7543) ESTIMATED CHANGES Modified Mathlib/Analysis/Normed/Group/Basic.lean + theorem comap_norm_atTop' + theorem tendsto_norm_atTop_iff_cobounded' + theorem tendsto_norm_cobounded_atTop' +/- theorem tendsto_norm_cocompact_atTop' Modified Mathlib/Topology/Bornology/Basic.lean Modified Mathlib/Topology/Instances/Int.lean + theorem Int.cobounded_eq Modified Mathlib/Topology/Instances/Real.lean + theorem Real.cobounded_eq Modified Mathlib/Topology/MetricSpace/Basic.lean + theorem Metric.cobounded_eq_cocompact + theorem Metric.cobounded_le_cocompact + theorem Metric.comap_dist_left_atTop + theorem Metric.comap_dist_right_atTop + theorem Metric.hasBasis_cobounded_compl_ball + theorem Metric.hasBasis_cobounded_compl_closedBall + theorem Metric.isBounded_iff_subset_ball + theorem Metric.tendsto_dist_left_atTop_iff + theorem Metric.tendsto_dist_left_cobounded_atTop + theorem Metric.tendsto_dist_right_atTop_iff + theorem Metric.tendsto_dist_right_cobounded_atTop - theorem comap_dist_left_atTop_le_cocompact - theorem comap_dist_right_atTop_eq_cocompact - theorem comap_dist_right_atTop_le_cocompact 2023-10-06 14:17:26 2dac27d chore(Probability): rename `Pmf` to `PMF` (#7542) Search and replace `Pmf` with `PMF`. ESTIMATED CHANGES Modified Mathlib/Probability/ProbabilityMassFunction/Basic.lean + def MeasureTheory.Measure.toPMF + theorem MeasureTheory.Measure.toPMF_apply + theorem MeasureTheory.Measure.toPMF_toMeasure - def MeasureTheory.Measure.toPmf - theorem MeasureTheory.Measure.toPmf_apply - theorem MeasureTheory.Measure.toPmf_toMeasure + theorem PMF.apply_eq_one_iff + theorem PMF.apply_eq_zero_iff + theorem PMF.apply_lt_top + theorem PMF.apply_ne_top + theorem PMF.apply_pos_iff + theorem PMF.coe_le_one + theorem PMF.coe_ne_zero + theorem PMF.ext_iff + theorem PMF.hasSum_coe_one + theorem PMF.mem_support_iff + theorem PMF.restrict_toMeasure_support + def PMF.support + theorem PMF.support_countable + theorem PMF.support_nonempty + def PMF.toMeasure + theorem PMF.toMeasure_apply + theorem PMF.toMeasure_apply_eq_of_inter_support_eq + theorem PMF.toMeasure_apply_eq_one_iff + theorem PMF.toMeasure_apply_eq_toOuterMeasure_apply + theorem PMF.toMeasure_apply_eq_zero_iff + theorem PMF.toMeasure_apply_finset + theorem PMF.toMeasure_apply_fintype + theorem PMF.toMeasure_apply_inter_support + theorem PMF.toMeasure_apply_of_finite + theorem PMF.toMeasure_apply_singleton + theorem PMF.toMeasure_eq_iff_eq_toPMF + theorem PMF.toMeasure_inj + theorem PMF.toMeasure_injective + theorem PMF.toMeasure_mono + theorem PMF.toMeasure_toPMF + def PMF.toOuterMeasure + theorem PMF.toOuterMeasure_apply + theorem PMF.toOuterMeasure_apply_eq_of_inter_support_eq + theorem PMF.toOuterMeasure_apply_eq_one_iff + theorem PMF.toOuterMeasure_apply_eq_zero_iff + theorem PMF.toOuterMeasure_apply_finset + theorem PMF.toOuterMeasure_apply_fintype + theorem PMF.toOuterMeasure_apply_inter_support + theorem PMF.toOuterMeasure_apply_le_toMeasure_apply + theorem PMF.toOuterMeasure_apply_singleton + theorem PMF.toOuterMeasure_caratheodory + theorem PMF.toOuterMeasure_inj + theorem PMF.toOuterMeasure_injective + theorem PMF.toOuterMeasure_mono + theorem PMF.toPMF_eq_iff_toMeasure_eq + theorem PMF.tsum_coe + theorem PMF.tsum_coe_indicator_ne_top + theorem PMF.tsum_coe_ne_top + def PMF.{u} - theorem Pmf.apply_eq_one_iff - theorem Pmf.apply_eq_zero_iff - theorem Pmf.apply_lt_top - theorem Pmf.apply_ne_top - theorem Pmf.apply_pos_iff - theorem Pmf.coe_le_one - theorem Pmf.coe_ne_zero - theorem Pmf.ext_iff - theorem Pmf.hasSum_coe_one - theorem Pmf.mem_support_iff - theorem Pmf.restrict_toMeasure_support - def Pmf.support - theorem Pmf.support_countable - theorem Pmf.support_nonempty - def Pmf.toMeasure - theorem Pmf.toMeasure_apply - theorem Pmf.toMeasure_apply_eq_of_inter_support_eq - theorem Pmf.toMeasure_apply_eq_one_iff - theorem Pmf.toMeasure_apply_eq_toOuterMeasure_apply - theorem Pmf.toMeasure_apply_eq_zero_iff - theorem Pmf.toMeasure_apply_finset - theorem Pmf.toMeasure_apply_fintype - theorem Pmf.toMeasure_apply_inter_support - theorem Pmf.toMeasure_apply_of_finite - theorem Pmf.toMeasure_apply_singleton - theorem Pmf.toMeasure_eq_iff_eq_toPmf - theorem Pmf.toMeasure_inj - theorem Pmf.toMeasure_injective - theorem Pmf.toMeasure_mono - theorem Pmf.toMeasure_toPmf - def Pmf.toOuterMeasure - theorem Pmf.toOuterMeasure_apply - theorem Pmf.toOuterMeasure_apply_eq_of_inter_support_eq - theorem Pmf.toOuterMeasure_apply_eq_one_iff - theorem Pmf.toOuterMeasure_apply_eq_zero_iff - theorem Pmf.toOuterMeasure_apply_finset - theorem Pmf.toOuterMeasure_apply_fintype - theorem Pmf.toOuterMeasure_apply_inter_support - theorem Pmf.toOuterMeasure_apply_le_toMeasure_apply - theorem Pmf.toOuterMeasure_apply_singleton - theorem Pmf.toOuterMeasure_caratheodory - theorem Pmf.toOuterMeasure_inj - theorem Pmf.toOuterMeasure_injective - theorem Pmf.toOuterMeasure_mono - theorem Pmf.toPmf_eq_iff_toMeasure_eq - theorem Pmf.tsum_coe - theorem Pmf.tsum_coe_indicator_ne_top - theorem Pmf.tsum_coe_ne_top - def Pmf.{u} Modified Mathlib/Probability/ProbabilityMassFunction/Binomial.lean + def PMF.binomial + theorem PMF.binomial_apply + theorem PMF.binomial_apply_self + theorem PMF.binomial_apply_zero + theorem PMF.binomial_one_eq_bernoulli - def Pmf.binomial - theorem Pmf.binomial_apply - theorem Pmf.binomial_apply_self - theorem Pmf.binomial_apply_zero - theorem Pmf.binomial_one_eq_bernoulli Modified Mathlib/Probability/ProbabilityMassFunction/Constructions.lean + def PMF.bernoulli + theorem PMF.bernoulli_apply + theorem PMF.bind_map + theorem PMF.bind_pure_comp + def PMF.filter + theorem PMF.filter_apply + theorem PMF.filter_apply_eq_zero_iff + theorem PMF.filter_apply_eq_zero_of_not_mem + theorem PMF.filter_apply_ne_zero_iff + def PMF.map + theorem PMF.map_apply + theorem PMF.map_bind + theorem PMF.map_comp + theorem PMF.map_const + theorem PMF.map_id + theorem PMF.mem_support_bernoulli_iff + theorem PMF.mem_support_filter_iff + theorem PMF.mem_support_map_iff + theorem PMF.mem_support_normalize_iff + theorem PMF.mem_support_ofFinset_iff + theorem PMF.mem_support_ofFintype_iff + theorem PMF.mem_support_seq_iff + theorem PMF.monad_map_eq_map + theorem PMF.monad_seq_eq_seq + def PMF.normalize + theorem PMF.normalize_apply + def PMF.ofFinset + theorem PMF.ofFinset_apply + theorem PMF.ofFinset_apply_of_not_mem + def PMF.ofFintype + theorem PMF.ofFintype_apply + theorem PMF.pure_map + def PMF.seq + theorem PMF.seq_apply + theorem PMF.support_bernoulli + theorem PMF.support_filter + theorem PMF.support_map + theorem PMF.support_normalize + theorem PMF.support_ofFinset + theorem PMF.support_ofFintype + theorem PMF.support_seq + theorem PMF.toMeasure_map_apply + theorem PMF.toMeasure_ofFinset_apply + theorem PMF.toMeasure_ofFintype_apply + theorem PMF.toOuterMeasure_map_apply + theorem PMF.toOuterMeasure_ofFinset_apply + theorem PMF.toOuterMeasure_ofFintype_apply - def Pmf.bernoulli - theorem Pmf.bernoulli_apply - theorem Pmf.bind_map - theorem Pmf.bind_pure_comp - def Pmf.filter - theorem Pmf.filter_apply - theorem Pmf.filter_apply_eq_zero_iff - theorem Pmf.filter_apply_eq_zero_of_not_mem - theorem Pmf.filter_apply_ne_zero_iff - def Pmf.map - theorem Pmf.map_apply - theorem Pmf.map_bind - theorem Pmf.map_comp - theorem Pmf.map_const - theorem Pmf.map_id - theorem Pmf.mem_support_bernoulli_iff - theorem Pmf.mem_support_filter_iff - theorem Pmf.mem_support_map_iff - theorem Pmf.mem_support_normalize_iff - theorem Pmf.mem_support_ofFinset_iff - theorem Pmf.mem_support_ofFintype_iff - theorem Pmf.mem_support_seq_iff - theorem Pmf.monad_map_eq_map - theorem Pmf.monad_seq_eq_seq - def Pmf.normalize - theorem Pmf.normalize_apply - def Pmf.ofFinset - theorem Pmf.ofFinset_apply - theorem Pmf.ofFinset_apply_of_not_mem - def Pmf.ofFintype - theorem Pmf.ofFintype_apply - theorem Pmf.pure_map - def Pmf.seq - theorem Pmf.seq_apply - theorem Pmf.support_bernoulli - theorem Pmf.support_filter - theorem Pmf.support_map - theorem Pmf.support_normalize - theorem Pmf.support_ofFinset - theorem Pmf.support_ofFintype - theorem Pmf.support_seq - theorem Pmf.toMeasure_map_apply - theorem Pmf.toMeasure_ofFinset_apply - theorem Pmf.toMeasure_ofFintype_apply - theorem Pmf.toOuterMeasure_map_apply - theorem Pmf.toOuterMeasure_ofFinset_apply - theorem Pmf.toOuterMeasure_ofFintype_apply Modified Mathlib/Probability/ProbabilityMassFunction/Integrals.lean + theorem PMF.bernoulli_expectation + theorem PMF.integral_eq_sum + theorem PMF.integral_eq_tsum - theorem Pmf.bernoulli_expectation - theorem Pmf.integral_eq_sum - theorem Pmf.integral_eq_tsum Modified Mathlib/Probability/ProbabilityMassFunction/Monad.lean + def PMF.bind + def PMF.bindOnSupport + theorem PMF.bindOnSupport_apply + theorem PMF.bindOnSupport_bindOnSupport + theorem PMF.bindOnSupport_comm + theorem PMF.bindOnSupport_eq_bind + theorem PMF.bindOnSupport_eq_zero_iff + theorem PMF.bindOnSupport_pure + theorem PMF.bind_apply + theorem PMF.bind_bind + theorem PMF.bind_comm + theorem PMF.bind_const + theorem PMF.bind_pure + theorem PMF.mem_support_bindOnSupport_iff + theorem PMF.mem_support_bind_iff + theorem PMF.mem_support_pure_iff + def PMF.pure + theorem PMF.pure_apply + theorem PMF.pure_apply_of_ne + theorem PMF.pure_apply_self + theorem PMF.pure_bind + theorem PMF.pure_bindOnSupport + theorem PMF.support_bind + theorem PMF.support_bindOnSupport + theorem PMF.support_pure + theorem PMF.toMeasure_bindOnSupport_apply + theorem PMF.toMeasure_bind_apply + theorem PMF.toMeasure_pure + theorem PMF.toMeasure_pure_apply + theorem PMF.toOuterMeasure_bindOnSupport_apply + theorem PMF.toOuterMeasure_bind_apply + theorem PMF.toOuterMeasure_pure_apply + theorem PMF.toPMF_dirac - def Pmf.bind - def Pmf.bindOnSupport - theorem Pmf.bindOnSupport_apply - theorem Pmf.bindOnSupport_bindOnSupport - theorem Pmf.bindOnSupport_comm - theorem Pmf.bindOnSupport_eq_bind - theorem Pmf.bindOnSupport_eq_zero_iff - theorem Pmf.bindOnSupport_pure - theorem Pmf.bind_apply - theorem Pmf.bind_bind - theorem Pmf.bind_comm - theorem Pmf.bind_const - theorem Pmf.bind_pure - theorem Pmf.mem_support_bindOnSupport_iff - theorem Pmf.mem_support_bind_iff - theorem Pmf.mem_support_pure_iff - def Pmf.pure - theorem Pmf.pure_apply - theorem Pmf.pure_apply_of_ne - theorem Pmf.pure_apply_self - theorem Pmf.pure_bind - theorem Pmf.pure_bindOnSupport - theorem Pmf.support_bind - theorem Pmf.support_bindOnSupport - theorem Pmf.support_pure - theorem Pmf.toMeasure_bindOnSupport_apply - theorem Pmf.toMeasure_bind_apply - theorem Pmf.toMeasure_pure - theorem Pmf.toMeasure_pure_apply - theorem Pmf.toOuterMeasure_bindOnSupport_apply - theorem Pmf.toOuterMeasure_bind_apply - theorem Pmf.toOuterMeasure_pure_apply - theorem Pmf.toPmf_dirac Modified Mathlib/Probability/ProbabilityMassFunction/Uniform.lean + theorem PMF.mem_support_ofMultiset_iff + theorem PMF.mem_support_uniformOfFinset_iff + theorem PMF.mem_support_uniformOfFintype + def PMF.ofMultiset + theorem PMF.ofMultiset_apply + theorem PMF.ofMultiset_apply_of_not_mem + theorem PMF.support_ofMultiset + theorem PMF.support_uniformOfFinset + theorem PMF.support_uniformOfFintype + theorem PMF.toMeasure_ofMultiset_apply + theorem PMF.toMeasure_uniformOfFinset_apply + theorem PMF.toMeasure_uniformOfFintype_apply + theorem PMF.toOuterMeasure_ofMultiset_apply + theorem PMF.toOuterMeasure_uniformOfFinset_apply + theorem PMF.toOuterMeasure_uniformOfFintype_apply + def PMF.uniformOfFinset + theorem PMF.uniformOfFinset_apply + theorem PMF.uniformOfFinset_apply_of_mem + theorem PMF.uniformOfFinset_apply_of_not_mem + def PMF.uniformOfFintype + theorem PMF.uniformOfFintype_apply - theorem Pmf.mem_support_ofMultiset_iff - theorem Pmf.mem_support_uniformOfFinset_iff - theorem Pmf.mem_support_uniformOfFintype - def Pmf.ofMultiset - theorem Pmf.ofMultiset_apply - theorem Pmf.ofMultiset_apply_of_not_mem - theorem Pmf.support_ofMultiset - theorem Pmf.support_uniformOfFinset - theorem Pmf.support_uniformOfFintype - theorem Pmf.toMeasure_ofMultiset_apply - theorem Pmf.toMeasure_uniformOfFinset_apply - theorem Pmf.toMeasure_uniformOfFintype_apply - theorem Pmf.toOuterMeasure_ofMultiset_apply - theorem Pmf.toOuterMeasure_uniformOfFinset_apply - theorem Pmf.toOuterMeasure_uniformOfFintype_apply - def Pmf.uniformOfFinset - theorem Pmf.uniformOfFinset_apply - theorem Pmf.uniformOfFinset_apply_of_mem - theorem Pmf.uniformOfFinset_apply_of_not_mem - def Pmf.uniformOfFintype - theorem Pmf.uniformOfFintype_apply Modified docs/overview.yaml Modified docs/undergrad.yaml 2023-10-06 14:17:25 f47760b chore: Refactor Chinese remainders (#7532) ESTIMATED CHANGES Modified Mathlib/RingTheory/DedekindDomain/Ideal.lean Modified Mathlib/RingTheory/Ideal/Operations.lean + theorem Ideal.isCoprime_biInf + theorem Pi.ker_ringHom Modified Mathlib/RingTheory/Ideal/Quotient.lean - theorem Ideal.exists_sub_mem - theorem Ideal.exists_sub_one_mem_and_mem - theorem Ideal.fst_comp_quotientInfEquivQuotientProd - theorem Ideal.quotientInfEquivQuotientProd_fst - theorem Ideal.quotientInfEquivQuotientProd_snd - def Ideal.quotientInfToPiQuotient - theorem Ideal.quotientInfToPiQuotient_bijective - theorem Ideal.snd_comp_quotientInfEquivQuotientProd Modified Mathlib/RingTheory/Ideal/QuotientOperations.lean + theorem Ideal.fst_comp_quotientInfEquivQuotientProd + theorem Ideal.injective_lift_iff + theorem Ideal.ker_Pi_Quotient_mk +/- theorem Ideal.mk_ker + theorem Ideal.quotientInfEquivQuotientProd_fst + theorem Ideal.quotientInfEquivQuotientProd_snd + def Ideal.quotientInfToPiQuotient + theorem Ideal.quotientInfToPiQuotient_inj + theorem Ideal.quotientInfToPiQuotient_mk' + theorem Ideal.quotientInfToPiQuotient_mk + theorem Ideal.quotientInfToPiQuotient_surj + theorem Ideal.snd_comp_quotientInfEquivQuotientProd 2023-10-06 14:17:24 dd73238 feat: Rademacher theorem (#7003) We prove Rademacher theorem, stating that a Lipschitz function between finite-dimensional real vector spaces is differentiable almost everywhere. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Analysis/BoundedVariation.lean - theorem LipschitzOnWith.ae_differentiableWithinAt - theorem LipschitzOnWith.ae_differentiableWithinAt_of_mem + theorem LipschitzOnWith.ae_differentiableWithinAt_of_mem_real + theorem LipschitzOnWith.ae_differentiableWithinAt_real - theorem LipschitzWith.ae_differentiableAt + theorem LipschitzWith.ae_differentiableAt_real Added Mathlib/Analysis/Calculus/Rademacher.lean + theorem LipschitzOnWith.ae_differentiableWithinAt + theorem LipschitzOnWith.ae_differentiableWithinAt_of_mem + theorem LipschitzOnWith.ae_differentiableWithinAt_of_mem_of_real + theorem LipschitzOnWith.ae_differentiableWithinAt_of_mem_pi + theorem LipschitzWith.ae_differentiableAt + theorem LipschitzWith.ae_differentiableAt_of_real + theorem LipschitzWith.ae_exists_fderiv_of_countable + theorem LipschitzWith.ae_lineDeriv_sum_eq + theorem LipschitzWith.ae_lineDifferentiableAt + theorem LipschitzWith.hasFderivAt_of_hasLineDerivAt_of_closure + theorem LipschitzWith.integral_inv_smul_sub_mul_tendsto_integral_lineDeriv_mul' + theorem LipschitzWith.integral_inv_smul_sub_mul_tendsto_integral_lineDeriv_mul + theorem LipschitzWith.integral_lineDeriv_mul_eq + theorem LipschitzWith.locallyIntegrable_lineDeriv + theorem LipschitzWith.memℒp_lineDeriv Modified docs/references.bib 2023-10-06 14:17:21 caeb3fe feat: Extending convex functions (#6339) Forward-ports https://github.com/leanprover-community/mathlib/pull/18797 The changes to `Mathlib.Data.Set.Intervals.Basic` were independently added to mathlib4 in `Mathlib.Data.Set.Intervals.Image`, so the `#align`s have been added there instead of the original file. ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Module.lean + theorem smul_max_of_nonpos + theorem smul_min_of_nonpos Modified Mathlib/Algebra/Order/Monoid/Lemmas.lean + theorem max_mul_mul_le_max_mul_max' + theorem min_mul_min_le_min_mul_mul' Modified Mathlib/Algebra/Order/SMul.lean + theorem smul_max + theorem smul_min Modified Mathlib/Data/Set/Intervals/Basic.lean Modified Mathlib/Data/Set/Intervals/Image.lean Modified Mathlib/Order/Lattice.lean + theorem AntitoneOn.of_map_inf + theorem AntitoneOn.of_map_sup + theorem MonotoneOn.of_map_inf + theorem MonotoneOn.of_map_sup 2023-10-06 12:22:33 e2c210a feat: add lemmas `Disjoint.isCompl_sup_right_of_isCompl_sup_left` (and partner) (#7483) ESTIMATED CHANGES Modified Mathlib/Order/ModularLattice.lean +/- theorem Disjoint.disjoint_sup_left_of_disjoint_sup_right +/- theorem Disjoint.disjoint_sup_right_of_disjoint_sup_left + theorem Disjoint.isCompl_sup_left_of_isCompl_sup_right + theorem Disjoint.isCompl_sup_right_of_isCompl_sup_left 2023-10-06 12:22:32 9115321 feat: define the positive Fitting component of the representation of a nilpotent Lie algebra (#7360) ESTIMATED CHANGES Modified Mathlib/Algebra/Lie/Nilpotent.lean + theorem LieModule.iInf_lcs_le_of_isNilpotent_quot + theorem LieModule.iInf_lowerCentralSeries_eq_bot_of_isNilpotent + theorem LieModule.isNilpotent_of_top_iff' + theorem LieModule.isNilpotent_quotient_iff + theorem LieModule.map_lowerCentralSeries_eq +/- theorem LieModule.map_lowerCentralSeries_le Modified Mathlib/Algebra/Lie/Quotient.lean + theorem LieSubmodule.Quotient.range_mk' + theorem LieSubmodule.Quotient.surjective_mk' + theorem LieSubmodule.Quotient.toEndomorphism_comp_mk' Modified Mathlib/Algebra/Lie/Submodule.lean + theorem LieModuleHom.range_eq_top Modified Mathlib/Algebra/Lie/Weights.lean + theorem LieModule.exists_coe_posFittingCompOf_eq_of_isArtinian + theorem LieModule.iInf_lowerCentralSeries_eq_posFittingComp + theorem LieModule.iSup_ucs_eq_weightSpace_zero + theorem LieModule.iSup_ucs_le_weightSpace_zero + theorem LieModule.mem_posFittingComp + theorem LieModule.mem_posFittingCompOf + def LieModule.posFittingComp + def LieModule.posFittingCompOf + theorem LieModule.posFittingCompOf_eq_bot_of_isNilpotent + theorem LieModule.posFittingCompOf_le_lowerCentralSeries + theorem LieModule.posFittingCompOf_le_posFittingComp + theorem LieModule.posFittingComp_eq_bot_of_isNilpotent + theorem LieModule.posFittingComp_le_iInf_lowerCentralSeries + theorem LieModule.weightSpace_zero_normalizer_eq_self Modified Mathlib/RingTheory/Artinian.lean + theorem LinearMap.exists_range_pow_eq_iInf 2023-10-06 00:26:26 911cd30 feat: first isomorphism theorem for rings (#7536) This matches the textbook version which does not assume surjectivity, and is also consistent with the Mathlib group theory version. ESTIMATED CHANGES Modified Mathlib/RingTheory/Ideal/Operations.lean + theorem RingHom.ker_rangeRestrict Modified Mathlib/RingTheory/Ideal/QuotientOperations.lean 2023-10-05 21:41:38 167880b feat: open subsets of locally connected spaces are locally connected (#7530) ESTIMATED CHANGES Modified Mathlib/Topology/Connected.lean + theorem IsOpen.locallyConnectedSpace + theorem OpenEmbedding.locallyConnectedSpace 2023-10-05 21:41:36 dc0ee37 refactor: purge aesop_cat_nonterminal (#7505) `aesop_cat_nonterminal` is a non-terminal variant of `aesop`. It's not supposed to be used in production code since it's even worse than non-terminal `simp`. However, there were a few occurrences left (presumably from the port), which this PR removes. The only nontrivial change is that I add mathlib's `rfl` tactic to the `CategoryTheory` Aesop rule set. ESTIMATED CHANGES Modified Mathlib/Algebra/Category/ModuleCat/Algebra.lean Modified Mathlib/CategoryTheory/Bicategory/Basic.lean Modified Mathlib/CategoryTheory/Category/Basic.lean Modified Mathlib/CategoryTheory/Limits/IsLimit.lean Modified Mathlib/CategoryTheory/Limits/Shapes/WidePullbacks.lean Modified Mathlib/CategoryTheory/Monoidal/Category.lean Modified Mathlib/CategoryTheory/Opposites.lean Modified Mathlib/CategoryTheory/Over.lean Modified Mathlib/CategoryTheory/Sums/Basic.lean + theorem CategoryTheory.hom_inl_inr_false + theorem CategoryTheory.hom_inr_inl_false Modified Mathlib/Tactic/Relation/Rfl.lean + def Mathlib.Tactic.rflTac 2023-10-05 21:41:34 13ed79e chore: mark map_prod/map_sum as simp (#7481) ESTIMATED CHANGES Modified Mathlib/Algebra/BigOperators/Basic.lean Modified Mathlib/Data/Complex/Basic.lean Modified Mathlib/LinearAlgebra/Alternating/Basic.lean Modified Mathlib/LinearAlgebra/Matrix/Adjugate.lean Modified Mathlib/LinearAlgebra/Pi.lean Modified Mathlib/NumberTheory/ClassNumber/Finite.lean Modified Mathlib/RingTheory/WittVector/MulCoeff.lean 2023-10-05 19:52:52 19ca95b chore: fix nonterminal simps (#7497) Fixes the nonterminal simps identified by #7496 ESTIMATED CHANGES Modified Mathlib/Algebra/Hom/Centroid.lean Modified Mathlib/Algebra/Homology/Single.lean Modified Mathlib/Algebra/MonoidAlgebra/Basic.lean Modified Mathlib/Algebra/Order/Floor.lean Modified Mathlib/Algebra/Order/LatticeGroup.lean Modified Mathlib/Analysis/NormedSpace/AddTorsor.lean Modified Mathlib/Analysis/NormedSpace/Banach.lean Modified Mathlib/Analysis/NormedSpace/Multilinear.lean Modified Mathlib/Analysis/SpecificLimits/Basic.lean Modified Mathlib/CategoryTheory/Equivalence.lean Modified Mathlib/CategoryTheory/Monoidal/Limits.lean Modified Mathlib/CategoryTheory/Monoidal/Mon_.lean Modified Mathlib/Computability/Halting.lean Modified Mathlib/Computability/Partrec.lean Modified Mathlib/Computability/PartrecCode.lean Modified Mathlib/Computability/Primrec.lean Modified Mathlib/Computability/TMToPartrec.lean Modified Mathlib/Computability/TuringMachine.lean Modified Mathlib/Data/Bitvec/Lemmas.lean Modified Mathlib/Data/Fin/Basic.lean Modified Mathlib/Data/Finset/Basic.lean Modified Mathlib/Data/Finset/NoncommProd.lean Modified Mathlib/Data/List/Chain.lean Modified Mathlib/Data/List/NatAntidiagonal.lean Modified Mathlib/Data/Multiset/Pi.lean Modified Mathlib/Data/Multiset/Sections.lean Modified Mathlib/Data/Nat/ModEq.lean Modified Mathlib/Data/PEquiv.lean Modified Mathlib/Data/PFunctor/Multivariate/M.lean Modified Mathlib/Init/Data/Nat/Bitwise.lean Modified Mathlib/LinearAlgebra/Orientation.lean Modified Mathlib/LinearAlgebra/QuadraticForm/Basic.lean Modified Mathlib/LinearAlgebra/TensorAlgebra/Basic.lean Modified Mathlib/Logic/Encodable/Lattice.lean Modified Mathlib/Logic/Equiv/Option.lean Modified Mathlib/Logic/Equiv/TransferInstance.lean Modified Mathlib/MeasureTheory/Measure/Hausdorff.lean Modified Mathlib/MeasureTheory/Measure/OuterMeasure.lean Modified Mathlib/ModelTheory/DirectLimit.lean Modified Mathlib/NumberTheory/Dioph.lean Modified Mathlib/NumberTheory/Zsqrtd/Basic.lean Modified Mathlib/SetTheory/Ordinal/Basic.lean Modified Mathlib/SetTheory/Ordinal/Notation.lean Modified Mathlib/Topology/Algebra/ValuedField.lean 2023-10-05 18:27:14 63e3334 chore: Use IsCoprime for ideals. (#7523) Make `IsCoprime I J` the preferred way to say that two ideals are coprime, provide lemmas translating to other formulations. ESTIMATED CHANGES Modified Mathlib/Data/List/TFAE.lean + theorem List.tfae_cons_self Modified Mathlib/RingTheory/DedekindDomain/Ideal.lean +/- theorem Ideal.inf_eq_mul_of_coprime Modified Mathlib/RingTheory/Ideal/Norm.lean Modified Mathlib/RingTheory/Ideal/Operations.lean + theorem Ideal.add_eq_one_iff + theorem Ideal.isCoprime_iff_exists + theorem Ideal.isCoprime_iff_sup_eq + theorem Ideal.isCoprime_tfae + theorem IsCoprime.add_eq + theorem IsCoprime.codisjoint + theorem IsCoprime.exists + theorem IsCoprime.sup_eq 2023-10-05 17:31:32 943f6a1 chore: put Measure.withDensity into a new file (#7508) It was in Integral.Lebesgue, which is about the definition of the Lebesgue integral. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/MeasureTheory/Function/StronglyMeasurable/Basic.lean Modified Mathlib/MeasureTheory/Integral/Lebesgue.lean - def MeasureTheory.Measure.withDensity - theorem MeasureTheory.ae_withDensity_iff - theorem MeasureTheory.ae_withDensity_iff_ae_restrict - theorem MeasureTheory.aemeasurable_withDensity_ennreal_iff - theorem MeasureTheory.exists_absolutelyContinuous_isFiniteMeasure - theorem MeasureTheory.isFiniteMeasure_withDensity - theorem MeasureTheory.lintegral_withDensity_eq_lintegral_mul - theorem MeasureTheory.lintegral_withDensity_eq_lintegral_mul_non_measurable - theorem MeasureTheory.lintegral_withDensity_eq_lintegral_mul_non_measurable₀ - theorem MeasureTheory.lintegral_withDensity_eq_lintegral_mul₀' - theorem MeasureTheory.lintegral_withDensity_eq_lintegral_mul₀ - theorem MeasureTheory.lintegral_withDensity_le_lintegral_mul - theorem MeasureTheory.restrict_withDensity - theorem MeasureTheory.set_lintegral_withDensity_eq_set_lintegral_mul - theorem MeasureTheory.set_lintegral_withDensity_eq_set_lintegral_mul_non_measurable - theorem MeasureTheory.set_lintegral_withDensity_eq_set_lintegral_mul_non_measurable₀ - theorem MeasureTheory.withDensity_absolutelyContinuous - theorem MeasureTheory.withDensity_add_left - theorem MeasureTheory.withDensity_add_measure - theorem MeasureTheory.withDensity_add_right - theorem MeasureTheory.withDensity_apply - theorem MeasureTheory.withDensity_apply_eq_zero - theorem MeasureTheory.withDensity_congr_ae - theorem MeasureTheory.withDensity_eq_zero - theorem MeasureTheory.withDensity_indicator - theorem MeasureTheory.withDensity_indicator_one - theorem MeasureTheory.withDensity_mul - theorem MeasureTheory.withDensity_ofReal_mutuallySingular - theorem MeasureTheory.withDensity_one - theorem MeasureTheory.withDensity_smul' - theorem MeasureTheory.withDensity_smul - theorem MeasureTheory.withDensity_sum - theorem MeasureTheory.withDensity_tsum - theorem MeasureTheory.withDensity_zero Modified Mathlib/MeasureTheory/Integral/LebesgueNormedSpace.lean Added Mathlib/MeasureTheory/Measure/WithDensity.lean + def MeasureTheory.Measure.withDensity + theorem MeasureTheory.ae_withDensity_iff + theorem MeasureTheory.ae_withDensity_iff_ae_restrict + theorem MeasureTheory.aemeasurable_withDensity_ennreal_iff + theorem MeasureTheory.exists_absolutelyContinuous_isFiniteMeasure + theorem MeasureTheory.isFiniteMeasure_withDensity + theorem MeasureTheory.lintegral_withDensity_eq_lintegral_mul + theorem MeasureTheory.lintegral_withDensity_eq_lintegral_mul_non_measurable + theorem MeasureTheory.lintegral_withDensity_eq_lintegral_mul_non_measurable₀ + theorem MeasureTheory.lintegral_withDensity_eq_lintegral_mul₀' + theorem MeasureTheory.lintegral_withDensity_eq_lintegral_mul₀ + theorem MeasureTheory.lintegral_withDensity_le_lintegral_mul + theorem MeasureTheory.restrict_withDensity + theorem MeasureTheory.set_lintegral_withDensity_eq_set_lintegral_mul + theorem MeasureTheory.set_lintegral_withDensity_eq_set_lintegral_mul_non_measurable + theorem MeasureTheory.set_lintegral_withDensity_eq_set_lintegral_mul_non_measurable₀ + theorem MeasureTheory.withDensity_absolutelyContinuous + theorem MeasureTheory.withDensity_add_left + theorem MeasureTheory.withDensity_add_measure + theorem MeasureTheory.withDensity_add_right + theorem MeasureTheory.withDensity_apply + theorem MeasureTheory.withDensity_apply_eq_zero + theorem MeasureTheory.withDensity_congr_ae + theorem MeasureTheory.withDensity_eq_zero + theorem MeasureTheory.withDensity_indicator + theorem MeasureTheory.withDensity_indicator_one + theorem MeasureTheory.withDensity_mul + theorem MeasureTheory.withDensity_ofReal_mutuallySingular + theorem MeasureTheory.withDensity_one + theorem MeasureTheory.withDensity_smul' + theorem MeasureTheory.withDensity_smul + theorem MeasureTheory.withDensity_sum + theorem MeasureTheory.withDensity_tsum + theorem MeasureTheory.withDensity_zero 2023-10-05 14:55:57 d7f380a perf(Polynomial): fix CommSemiring instance missed in #7434 (#7518) ESTIMATED CHANGES Modified Mathlib/Data/Polynomial/Basic.lean 2023-10-05 13:18:23 87eb696 feat(Topology): continuity from a product with a discrete space (#7511) + Add four pairs of lemmas continuous((Within)At/On)_prod_of_discrete_left/right in ContinuousOn.lean: to check continuity of a function from `X × Y` to `Z` with `X` discrete, it suffices to check continuity of every slice of it with `x : X` fixed. + Remove duplicate lemmas continuous_uncurry_of_discreteTopology(_left) from Constructions.lean in favor of the more general (iff) version. + Move the lemma continuous_iff_continuousOn_univ up. ESTIMATED CHANGES Modified Mathlib/Dynamics/Flow.lean Modified Mathlib/Topology/Algebra/Group/Basic.lean Modified Mathlib/Topology/Algebra/Monoid.lean Modified Mathlib/Topology/Constructions.lean - theorem continuous_uncurry_of_discreteTopology - theorem continuous_uncurry_of_discreteTopology_left Modified Mathlib/Topology/ContinuousOn.lean + theorem continuousAt_prod_of_discrete_left + theorem continuousAt_prod_of_discrete_right + theorem continuousOn_prod_of_discrete_left + theorem continuousOn_prod_of_discrete_right + theorem continuousWithinAt_prod_of_discrete_left + theorem continuousWithinAt_prod_of_discrete_right + theorem continuous_prod_of_discrete_left + theorem continuous_prod_of_discrete_right 2023-10-05 13:18:22 a71a502 feat: add `forall_or_exists_not` and `exists_or_forall_not` (#7458) ESTIMATED CHANGES Modified Mathlib/Logic/Basic.lean + theorem exists_or_forall_not + theorem forall_or_exists_not 2023-10-05 11:48:18 37bce19 chore: 'cache' hashes Lean.versionString (#7513) ESTIMATED CHANGES Modified Cache/Hashing.lean 2023-10-05 11:48:17 ed78eef perf (LinearAlgebra.Quotient): direct inheritance for extended SMul classes (#7459) We replace the calls to `Function.Surjective.x` for constructing instances with a more direct inheritance pattern. ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/Quotient.lean 2023-10-05 11:48:16 994364d feat: add lemma List.getD_map (#7307) Adds a lemma, analogous to [Option.getD_map](https://leanprover-community.github.io/mathlib4_docs/Std/Data/Option/Lemmas.html#Option.getD_map), but for `List`. Also fixes a few nearby lemmas to use `induction`/`cases` instead of `induction'`/`cases'` ~~ ESTIMATED CHANGES Modified Mathlib/Data/List/Basic.lean + theorem List.getD_map 2023-10-05 11:48:14 f7d61d5 feat: new lemma totalDegree_coeff_finSuccEquiv_add_le (#7206) Adds a new lemma ESTIMATED CHANGES Modified Mathlib/Data/MvPolynomial/Equiv.lean + theorem MvPolynomial.totalDegree_coeff_finSuccEquiv_add_le 2023-10-05 10:24:42 49f7188 feat: add simple lemmas about MeasurableEquiv (#7509) ESTIMATED CHANGES Modified Mathlib/MeasureTheory/MeasurableSpace/Basic.lean + theorem MeasurableEquiv.eq_image_iff_symm_image_eq + theorem MeasurableEquiv.image_preimage + theorem MeasurableEquiv.image_symm + theorem MeasurableEquiv.preimage_image + theorem MeasurableEquiv.preimage_symm + theorem MeasurableEquiv.symm_symm Modified Mathlib/MeasureTheory/Measure/MeasureSpace.lean + theorem MeasurableEquiv.comap_symm + theorem MeasurableEquiv.map_symm 2023-10-05 10:24:41 4b53c17 perf: improve some instances in Polynomial (#7434) ESTIMATED CHANGES Modified Mathlib/Data/Polynomial/Basic.lean 2023-10-05 10:24:39 7f01c99 perf: improve some instances in Finsupp (#7430) ESTIMATED CHANGES Modified Mathlib/Data/Finsupp/Defs.lean 2023-10-05 09:03:14 e640058 feat: Right exactness of tensor product of modules (#6447) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Exact.lean + theorem Function.Exact.comp_eq_zero + theorem Function.Exact.linearMap_comp_eq_zero + theorem Function.Exact.linearMap_ker_eq + def Function.Exact + theorem Function.LinearMap.exact_iff Modified Mathlib/LinearAlgebra/TensorProduct.lean + theorem LinearMap.comm_comp_lTensor_comp_comm_eq + theorem LinearMap.comm_comp_rTensor_comp_comm_eq + theorem TensorProduct.lift_comp_comm_eq + theorem TensorProduct.map_comp_comm_eq Added Mathlib/LinearAlgebra/TensorProduct/RightExactness.lean + theorem LinearMap.exact_map_mkQ_range + theorem LinearMap.exact_subtype_ker_map + theorem LinearMap.exact_subtype_mkQ + theorem TensorProduct.map_ker + theorem TensorProduct.map_surjective + def lTensor.inverse + theorem lTensor.inverse_apply + theorem lTensor.inverse_comp_lTensor + def lTensor.inverse_of_rightInverse + theorem lTensor.inverse_of_rightInverse_apply + theorem lTensor.inverse_of_rightInverse_comp_lTensor + def lTensor.linearEquiv_of_rightInverse + theorem lTensor.surjective + def lTensor.toFun + theorem lTensor_exact + theorem lTensor_mkQ + theorem le_comap_range_lTensor + theorem le_comap_range_rTensor + def rTensor.inverse + theorem rTensor.inverse_apply + theorem rTensor.inverse_comp_rTensor + def rTensor.inverse_of_rightInverse + theorem rTensor.inverse_of_rightInverse_apply + theorem rTensor.inverse_of_rightInverse_comp_rTensor + def rTensor.linearEquiv_of_rightInverse + theorem rTensor.surjective + def rTensor.toFun + theorem rTensor_exact + theorem rTensor_mkQ Modified docs/references.bib 2023-10-05 06:34:46 f3bc24c chore: rename CanonicallyOrderedAddMonoid to ..AddCommMonoid (#7503) Renames: `CanonicallyOrderedMonoid` -> `CanonicallyOrderedCommMonoid` `CanonicallyOrderedAddMonoid` -> `CanonicallyOrderedAddCommMonoid` `CanonicallyLinearOrderedMonoid` -> `CanonicallyLinearOrderedCommMonoid` `CanonicallyLinearOrderedAddMonoid` -> `CanonicallyLinearOrderedAddCommMonoid` ESTIMATED CHANGES Modified Mathlib/Algebra/Associated.lean Modified Mathlib/Algebra/BigOperators/Basic.lean +/- theorem Finset.sum_range_tsub Modified Mathlib/Algebra/BigOperators/Multiset/Basic.lean +/- theorem Multiset.le_prod_of_mem Modified Mathlib/Algebra/BigOperators/Multiset/Lemmas.lean +/- theorem Multiset.prod_eq_one_iff Modified Mathlib/Algebra/BigOperators/Order.lean Modified Mathlib/Algebra/DirectSum/Internal.lean Modified Mathlib/Algebra/IndicatorFunction.lean Modified Mathlib/Algebra/Lie/Subalgebra.lean Modified Mathlib/Algebra/Module/Submodule/Pointwise.lean Modified Mathlib/Algebra/Order/Field/Canonical/Defs.lean Modified Mathlib/Algebra/Order/Kleene.lean Modified Mathlib/Algebra/Order/Monoid/Canonical/Defs.lean +/- theorem NeZero.of_gt +/- theorem NeZero.pos +/- theorem pos_of_gt Modified Mathlib/Algebra/Order/Monoid/Prod.lean Modified Mathlib/Algebra/Order/Monoid/TypeTags.lean Modified Mathlib/Algebra/Order/Monoid/WithTop.lean Modified Mathlib/Algebra/Order/Monoid/WithZero/Defs.lean Modified Mathlib/Algebra/Order/Nonneg/Ring.lean Modified Mathlib/Algebra/Order/Pi.lean Modified Mathlib/Algebra/Order/Ring/Canonical.lean Modified Mathlib/Algebra/Order/Ring/WithTop.lean Modified Mathlib/Algebra/Order/Sub/Canonical.lean + def CanonicallyOrderedAddCommMonoid.toAddCancelCommMonoid - def CanonicallyOrderedAddMonoid.toAddCancelCommMonoid Modified Mathlib/Algebra/Order/Sub/Defs.lean Modified Mathlib/Algebra/Order/Sub/WithTop.lean Modified Mathlib/Algebra/PUnitInstances.lean Modified Mathlib/Algebra/Parity.lean +/- theorem Even.tsub Modified Mathlib/Data/DFinsupp/Interval.lean Modified Mathlib/Data/DFinsupp/Lex.lean Modified Mathlib/Data/DFinsupp/Order.lean Modified Mathlib/Data/DFinsupp/WellFounded.lean Modified Mathlib/Data/ENat/Basic.lean Modified Mathlib/Data/Finsupp/Interval.lean Modified Mathlib/Data/Finsupp/Lex.lean Modified Mathlib/Data/Finsupp/Order.lean Modified Mathlib/Data/Finsupp/WellFounded.lean Modified Mathlib/Data/List/BigOperators/Basic.lean +/- theorem List.monotone_prod_take Modified Mathlib/Data/List/BigOperators/Lemmas.lean +/- theorem List.prod_eq_one_iff Modified Mathlib/Data/List/EditDistance/Bounds.lean Modified Mathlib/Data/List/EditDistance/Estimator.lean Modified Mathlib/Data/Multiset/Basic.lean Modified Mathlib/Data/Multiset/Fold.lean +/- theorem Multiset.max_le_of_forall_le Modified Mathlib/Data/Nat/Interval.lean Modified Mathlib/Data/Nat/Order/Basic.lean Modified Mathlib/Data/Nat/PartENat.lean Modified Mathlib/Data/PNat/Factors.lean Modified Mathlib/Data/Real/ENNReal.lean Modified Mathlib/Data/Real/NNReal.lean Modified Mathlib/Dynamics/Flow.lean +/- theorem IsFwInvariant.isInvariant +/- theorem isFwInvariant_iff_isInvariant Modified Mathlib/Order/Filter/Germ.lean Modified Mathlib/RingTheory/GradedAlgebra/Basic.lean Modified Mathlib/RingTheory/GradedAlgebra/HomogeneousIdeal.lean Modified Mathlib/RingTheory/MvPolynomial/WeightedHomogeneous.lean Modified Mathlib/SetTheory/Cardinal/Basic.lean Modified Mathlib/Tactic/Positivity/Core.lean Modified Mathlib/Topology/Algebra/InfiniteSum/Order.lean +/- theorem hasSum_of_isLUB 2023-10-05 06:34:45 d926a38 chore(RingTheory): golf, generalize, fix docs (#7500) ESTIMATED CHANGES Modified Mathlib/AlgebraicGeometry/EllipticCurve/Point.lean Modified Mathlib/FieldTheory/Minpoly/IsIntegrallyClosed.lean +/- theorem minpoly.isIntegrallyClosed_dvd +/- theorem minpoly.isIntegrallyClosed_dvd_iff Modified Mathlib/FieldTheory/Normal.lean Modified Mathlib/RingTheory/Adjoin/Field.lean Modified Mathlib/RingTheory/AdjoinRoot.lean +/- theorem AdjoinRoot.mk_surjective 2023-10-05 06:34:44 e080fe9 feat: support `zify` on divisibility propositions (#7489) ESTIMATED CHANGES Modified Mathlib/Tactic/Zify.lean + theorem Mathlib.Tactic.Zify.nat_cast_dvd Modified test/Zify.lean 2023-10-05 06:34:43 463ad29 fix: restore simp confluence for `qify [(h : n ∣ m)]` (#7488) Fixes #7480 ESTIMATED CHANGES Modified Mathlib/Data/Int/CharZero.lean + theorem Int.cast_div_ofNat_charZero Modified test/Qify.lean 2023-10-05 06:05:44 321e7c6 chore: in CI, retry operations that use the network (#7495) Network errors cause fairly frequent transient failures in CI. Let's square the probability of this happening. ESTIMATED CHANGES Modified .github/workflows/bors.yml Modified .github/workflows/build.yml Modified .github/workflows/build.yml.in Modified .github/workflows/build_fork.yml 2023-10-05 03:08:57 1bacc4e feat: Select and insert widgets (#7260) Builds a framework to define widgets allowing users to select some sub-expressions of the main goal to generate a tactic call. Four examples using this framework are included, generating calls to tactics `conv`, `congrm` and `gcongr` and generating new calc steps. Also includes a `calc` tactic code action to start a calc proof. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/AlgebraicGeometry/Morphisms/QuasiSeparated.lean Modified Mathlib/Tactic.lean Added Mathlib/Tactic/Widget/Calc.lean + def CalcPanel.rpc + def CalcPanel + structure CalcParams + def createCalc + def suggestSteps Added Mathlib/Tactic/Widget/Congrm.lean + def CongrmSelectionPanel.rpc + def CongrmSelectionPanel + def makeCongrmString Added Mathlib/Tactic/Widget/Conv.lean + def ConvSelectionPanel.rpc + def ConvSelectionPanel + def insertEnter Added Mathlib/Tactic/Widget/Gcongr.lean + def GCongrSelectionPanel.rpc + def GCongrSelectionPanel + def makeGCongrString Added Mathlib/Tactic/Widget/SelectInsertParamsClass.lean + def Lean.Elab.mkSelectInsertParamsInstanceHandler Added Mathlib/Tactic/Widget/SelectPanelUtils.lean + structure SelectInsertParams + def String.renameMetaVar + def getGoalLocations + def insertMetaVar + def mkSelectionPanelRPC Modified lake-manifest.json Modified lakefile.lean 2023-10-04 23:56:43 2b8dea4 chore: disable CI cache check for lean-pr-testing-NNNN branches (#7510) ESTIMATED CHANGES Modified .github/workflows/bors.yml Modified .github/workflows/build.yml Modified .github/workflows/build.yml.in Modified .github/workflows/build_fork.yml 2023-10-04 21:53:11 68abdcd fix: notation for concrete cyclic perms (#7492) ESTIMATED CHANGES Modified Mathlib/GroupTheory/Perm/Cycle/Concrete.lean 2023-10-04 14:04:33 a5516f5 chore: fix deprecated identifier (#7502) I came across a few places in Mathlib that still used this name that has been deprecated for a few years now. Now we're consistent again and I don't have to suffer when encountering the wrong version :) ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/Matrix/Determinant.lean Modified Mathlib/LinearAlgebra/Matrix/NonsingularInverse.lean Modified Mathlib/Tactic/Ring/Basic.lean Modified Mathlib/Tactic/Ring/RingNF.lean 2023-10-04 14:04:32 8045a47 feat: unreachableTactic support for `notation3` (#7501) This is needed to avoid a `unreachableTactic` lint warning when using `by tac` inside `notation3`. (The same thing is built in for the other `notation` variants.) ESTIMATED CHANGES Modified Mathlib/Mathport/Notation.lean Modified test/notation3.lean 2023-10-04 14:04:31 0090c60 chore: fix docstrings (#7491) ESTIMATED CHANGES Modified Mathlib/GroupTheory/Perm/Cycle/Basic.lean 2023-10-04 14:04:29 c93575a chore: cleanup some spaces (#7484) Purely cosmetic PR. ESTIMATED CHANGES Modified Archive/Sensitivity.lean Modified Mathlib/Algebra/GradedMonoid.lean Modified Mathlib/AlgebraicTopology/DoldKan/FunctorGamma.lean Modified Mathlib/AlgebraicTopology/DoldKan/Homotopies.lean Modified Mathlib/Analysis/Analytic/IsolatedZeros.lean Modified Mathlib/Analysis/Convex/Segment.lean Modified Mathlib/CategoryTheory/Abelian/RightDerived.lean Modified Mathlib/CategoryTheory/Functor/Currying.lean Modified Mathlib/CategoryTheory/Generator.lean Modified Mathlib/CategoryTheory/Grothendieck.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Equalizers.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Pullbacks.lean Modified Mathlib/CategoryTheory/Localization/Construction.lean Modified Mathlib/CategoryTheory/Monoidal/Free/Coherence.lean Modified Mathlib/CategoryTheory/Preadditive/Mat.lean Modified Mathlib/CategoryTheory/Shift/Basic.lean Modified Mathlib/CategoryTheory/Shift/Pullback.lean Modified Mathlib/CategoryTheory/StructuredArrow.lean Modified Mathlib/Combinatorics/HalesJewett.lean Modified Mathlib/Combinatorics/SimpleGraph/Connectivity/Subgraph.lean Modified Mathlib/Data/Finset/Pointwise.lean Modified Mathlib/Data/List/Basic.lean Modified Mathlib/Data/PNat/Factors.lean Modified Mathlib/Data/Part.lean Modified Mathlib/Data/QPF/Multivariate/Constructions/Fix.lean Modified Mathlib/GroupTheory/QuotientGroup.lean +/- theorem QuotientGroup.lift_mk' +/- theorem QuotientGroup.lift_mk +/- theorem QuotientGroup.mk_div +/- theorem QuotientGroup.mk_inv +/- theorem QuotientGroup.mk_mul +/- theorem QuotientGroup.mk_one +/- theorem QuotientGroup.mk_pow +/- theorem QuotientGroup.mk_zpow Modified Mathlib/LinearAlgebra/AffineSpace/Independent.lean Modified Mathlib/LinearAlgebra/Basic.lean Modified Mathlib/LinearAlgebra/Dual.lean Modified Mathlib/Mathport/Notation.lean Modified Mathlib/MeasureTheory/Integral/Bochner.lean Modified Mathlib/ModelTheory/Algebra/Ring/Basic.lean Modified Mathlib/NumberTheory/KummerDedekind.lean Modified Mathlib/NumberTheory/LegendreSymbol/Basic.lean Modified Mathlib/NumberTheory/NumberField/Units.lean +/- theorem NumberField.Units.dirichletUnitTheorem.exists_unit Modified Mathlib/RingTheory/AdjoinRoot.lean Modified Mathlib/RingTheory/Discriminant.lean Modified Mathlib/RingTheory/Henselian.lean Modified Mathlib/RingTheory/Localization/FractionRing.lean Modified Mathlib/RingTheory/Nullstellensatz.lean Modified Mathlib/RingTheory/Perfection.lean Modified Mathlib/RingTheory/WittVector/Basic.lean Modified Mathlib/Tactic/ByContra.lean Modified Mathlib/Tactic/NoncommRing.lean Modified Mathlib/Topology/ContinuousFunction/Ideals.lean Modified test/linarith.lean 2023-10-04 14:04:27 ffcd2b0 perf: change one instance in coprods of groups (#7292) ESTIMATED CHANGES Modified Mathlib/GroupTheory/Coprod/Basic.lean 2023-10-04 12:39:58 1b346a7 feat: add some ring theory lemmas (#7466) From flt-regular. ESTIMATED CHANGES Modified Mathlib/RingTheory/DedekindDomain/Ideal.lean + theorem Ideal.isCoprime_iff_gcd Modified Mathlib/RingTheory/Ideal/Norm.lean + theorem Ideal.absNorm_eq_zero_iff + theorem Ideal.norm_dvd_iff + theorem Ideal.span_singleton_absNorm Modified Mathlib/RingTheory/Ideal/Operations.lean + theorem Ideal.isCoprime_iff_add + theorem Ideal.isCoprime_iff_codisjoint + theorem Ideal.isCoprime_span_singleton_iff Modified Mathlib/RingTheory/Ideal/Quotient.lean + theorem Ideal.Quotient.eq_zero_iff_dvd Modified Mathlib/RingTheory/RootsOfUnity/Basic.lean + theorem IsPrimitiveRoot.sub_one_ne_zero Modified Mathlib/RingTheory/Subsemiring/Basic.lean 2023-10-04 10:59:17 be0d066 chore: fix some cases in names (#7469) And fix some names in comments where this revealed issues ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/Basic.lean Modified Mathlib/Algebra/Algebra/Opposite.lean Modified Mathlib/Algebra/Algebra/Unitization.lean Modified Mathlib/Algebra/ContinuedFractions/Computation/TerminatesIffRat.lean Modified Mathlib/Algebra/ContinuedFractions/ConvergentsEquiv.lean Modified Mathlib/Algebra/Group/WithOne/Defs.lean Modified Mathlib/Algebra/Module/GradedModule.lean Modified Mathlib/Algebra/Module/Submodule/Basic.lean Modified Mathlib/Algebra/Order/AbsoluteValue.lean Modified Mathlib/AlgebraicTopology/DoldKan/Normalized.lean Modified Mathlib/AlgebraicTopology/DoldKan/SplitSimplicialObject.lean Modified Mathlib/Analysis/Analytic/Composition.lean Modified Mathlib/Analysis/BoxIntegral/Integrability.lean Modified Mathlib/Analysis/Convolution.lean Modified Mathlib/Analysis/InnerProductSpace/Basic.lean Modified Mathlib/Analysis/InnerProductSpace/Symmetric.lean Modified Mathlib/Analysis/LocallyConvex/WithSeminorms.lean Modified Mathlib/Analysis/MellinTransform.lean Modified Mathlib/Analysis/Normed/Group/AddCircle.lean Modified Mathlib/Analysis/NormedSpace/Star/Multiplier.lean Modified Mathlib/Analysis/SpecialFunctions/ImproperIntegrals.lean Modified Mathlib/CategoryTheory/DiscreteCategory.lean Modified Mathlib/CategoryTheory/Limits/Cones.lean Modified Mathlib/CategoryTheory/Limits/Shapes/NormalMono/Basic.lean Modified Mathlib/CategoryTheory/Localization/Adjunction.lean Modified Mathlib/CategoryTheory/Preadditive/Injective.lean Modified Mathlib/CategoryTheory/Preadditive/Projective.lean Modified Mathlib/CategoryTheory/Sites/Subsheaf.lean Modified Mathlib/CategoryTheory/Subobject/MonoOver.lean Modified Mathlib/Computability/TMToPartrec.lean Modified Mathlib/Data/Finset/NoncommProd.lean Modified Mathlib/Data/Fintype/Card.lean Modified Mathlib/Data/List/Defs.lean Modified Mathlib/Data/Matrix/Basis.lean Modified Mathlib/Data/Nat/Squarefree.lean Modified Mathlib/Geometry/Manifold/Instances/Sphere.lean Modified Mathlib/GroupTheory/FreeGroup/IsFreeGroup.lean Modified Mathlib/GroupTheory/GroupAction/Basic.lean Modified Mathlib/Init/Data/Nat/Lemmas.lean Modified Mathlib/LinearAlgebra/Alternating/Basic.lean Modified Mathlib/LinearAlgebra/CliffordAlgebra/Conjugation.lean Modified Mathlib/LinearAlgebra/FreeModule/PID.lean Modified Mathlib/LinearAlgebra/Matrix/Block.lean Modified Mathlib/LinearAlgebra/Span.lean Modified Mathlib/Logic/Basic.lean Modified Mathlib/Logic/Embedding/Basic.lean Modified Mathlib/RingTheory/DedekindDomain/AdicValuation.lean Modified Mathlib/Topology/LocallyConstant/Basic.lean Modified Mathlib/Topology/Sheaves/Sheaf.lean Modified Mathlib/Topology/Sheaves/SheafCondition/PairwiseIntersections.lean Modified Mathlib/Topology/Sheaves/Skyscraper.lean Modified Mathlib/Topology/Spectral/Hom.lean Modified Mathlib/Topology/UniformSpace/UniformConvergenceTopology.lean Modified Mathlib/Topology/UniformSpace/UniformEmbedding.lean 2023-10-04 10:09:10 5eb7748 doc: add an algebraic number theory section to Mathlib overview (#7429) ESTIMATED CHANGES Modified Mathlib/NumberTheory/NumberField/ClassNumber.lean Modified docs/overview.yaml 2023-10-04 08:36:54 39a866a chore: cleanup some spaces (#7490) Purely cosmetic PR ESTIMATED CHANGES Modified Archive/Sensitivity.lean Modified Mathlib/Algebra/Category/MonCat/FilteredColimits.lean Modified Mathlib/Algebra/GeomSum.lean Modified Mathlib/Algebra/Homology/HomotopyCategory/HomComplex.lean Modified Mathlib/Algebra/Homology/ShortComplex/Exact.lean +/- theorem CategoryTheory.ShortComplex.exact_op_iff Modified Mathlib/Algebra/Ring/Aut.lean +/- def RingAut.toPerm Modified Mathlib/CategoryTheory/Triangulated/Pretriangulated.lean Modified Mathlib/Data/Holor.lean Modified Mathlib/Data/List/Sigma.lean Modified Mathlib/Data/Nat/GCD/Basic.lean +/- theorem Nat.coprime_sub_self_right Modified Mathlib/Data/Nat/PartENat.lean +/- theorem PartENat.coe_succ_le_iff Modified Mathlib/Data/QPF/Multivariate/Constructions/Cofix.lean Modified Mathlib/Data/Rat/Lemmas.lean Modified Mathlib/FieldTheory/IsAlgClosed/AlgebraicClosure.lean Modified Mathlib/GroupTheory/MonoidLocalization.lean Modified Mathlib/LinearAlgebra/TensorProduct.lean Modified Mathlib/MeasureTheory/Decomposition/UnsignedHahn.lean Modified Mathlib/MeasureTheory/Integral/Bochner.lean Modified Mathlib/NumberTheory/ArithmeticFunction.lean Modified Mathlib/Order/Partition/Finpartition.lean Modified Mathlib/RingTheory/IsAdjoinRoot.lean Modified Mathlib/RingTheory/Norm.lean Modified Mathlib/RingTheory/Valuation/Integers.lean Modified Mathlib/SetTheory/Ordinal/Notation.lean Modified Mathlib/Tactic/NormNum/Inv.lean +/- def Mathlib.Meta.NormNum.evalMkRat Modified Mathlib/Topology/Algebra/InfiniteSum/Basic.lean Modified Mathlib/Topology/Order/UpperLowerSetTopology.lean Modified test/push_neg.lean 2023-10-03 19:47:12 b2540cf feat: add some Associated/Prime lemmas (#7465) From flt-regular. ESTIMATED CHANGES Modified Mathlib/Algebra/Associated.lean + theorem Prime.dvd_pow_iff_dvd Modified Mathlib/Algebra/BigOperators/Associated.lean + theorem Associated.prod Modified Mathlib/Algebra/Ring/Units.lean + theorem isUnit_neg_one 2023-10-03 12:58:14 df7b042 chore: tidy various files (#7359) ESTIMATED CHANGES Modified Mathlib/Algebra/Category/GroupCat/Injective.lean Modified Mathlib/Algebra/MonoidAlgebra/Basic.lean +/- def AddMonoidAlgebra.singleZeroAlgHom Modified Mathlib/Algebra/MonoidAlgebra/Degree.lean Modified Mathlib/Analysis/Calculus/FDeriv/Measurable.lean Modified Mathlib/Analysis/InnerProductSpace/l2Space.lean Modified Mathlib/Data/Polynomial/Derivative.lean Modified Mathlib/Data/Real/Basic.lean Modified Mathlib/FieldTheory/Finite/Polynomial.lean Modified Mathlib/GroupTheory/HNNExtension.lean Modified Mathlib/LinearAlgebra/Basis.lean Modified Mathlib/MeasureTheory/Function/LpSpace.lean Modified Mathlib/ModelTheory/Fraisse.lean - theorem FirstOrder.Language.Hereditary.is_equiv_invariant_of_fG + theorem FirstOrder.Language.Hereditary.is_equiv_invariant_of_fg Modified Mathlib/Order/Bounds/Basic.lean Modified Mathlib/Order/OmegaCompletePartialOrder.lean - theorem OmegaCompletePartialOrder.IsLUB_of_ScottContinuous - theorem OmegaCompletePartialOrder.IsLUB_range_ωSup + theorem OmegaCompletePartialOrder.isLUB_of_scottContinuous + theorem OmegaCompletePartialOrder.isLUB_range_ωSup - theorem OmegaCompletePartialOrder.ωSup_eq_of_IsLUB + theorem OmegaCompletePartialOrder.ωSup_eq_of_isLUB Modified Mathlib/RingTheory/Adjoin/PowerBasis.lean Modified scripts/nolints.json 2023-10-03 12:58:11 7afe52a feat: the union of the regular and extensive coverages generates the coherent topology (#6876) We define the regular and extensive coverages on categories and prove that their union generates the coherent topology on extensive, regular, precoherent categories. - [x] depends on: #6878 - [x] depends on: #6879 - [x] depends on: #6896 ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Sites/RegularExtensive.lean + theorem CategoryTheory.extensive_regular_generate_coherent 2023-10-03 11:52:09 363a0f7 feat: new tactic suppress_compilation, use it in OperatorNorm (#7326) The tactic `suppress_compilation` makes sure that `def` and `instance` are replaced by `noncomputable def` and `noncomputable instance` so that the compiler does not try to produce executable code. This leads to gains in compilation time and olean sizes. Using it in OperatorNorm.lean reduces the olean size from 10756 kB to 6626 kB, for instance. Implementation due to @tydeu, see https://leanprover.zulipchat.com/#narrow/stream/270676-lean4/topic/noncomputability.20and.20oleans/near/392451565 ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Analysis/NormedSpace/OperatorNorm.lean + def ContinuousLinearMap.apply' + def ContinuousLinearMap.apply + def ContinuousLinearMap.compSL Modified Mathlib/Analysis/NormedSpace/Unitization.lean Modified Mathlib/Tactic.lean Added Mathlib/Tactic/SuppressCompilation.lean + def elabSuppressCompilationDecl 2023-10-03 11:52:07 374447a feat: add degree_map_eq_iff (#7170) Stub lemma for `degree_map_eq_iff`. Feel free to try proving it! ESTIMATED CHANGES Modified Mathlib/Data/Polynomial/Degree/Lemmas.lean + theorem Polynomial.degree_map_eq_iff + theorem Polynomial.natDegree_map_eq_iff 2023-10-03 10:19:33 d17c882 chore (AlgebraicGeometry.StructureSheaf): clean up some instances (#7473) We replace a few `show X from inferInstance` with `inferInstanceAs` which reduces some `let_fun`'s in the resulting term. We also align the names with casing convention. ESTIMATED CHANGES Modified Mathlib/AlgebraicGeometry/StructureSheaf.lean 2023-10-03 10:19:32 7144232 feat: sup_eq_closure for Submonoid and Subgroup (#7468) ESTIMATED CHANGES Modified Mathlib/GroupTheory/Subgroup/Basic.lean + theorem Subgroup.sup_eq_closure Modified Mathlib/GroupTheory/Subgroup/Pointwise.lean - theorem Subgroup.sup_eq_closure + theorem Subgroup.sup_eq_closure_mul Modified Mathlib/GroupTheory/Submonoid/Basic.lean + theorem Submonoid.sup_eq_closure Modified Mathlib/GroupTheory/Submonoid/Pointwise.lean - theorem Submonoid.sup_eq_closure + theorem Submonoid.sup_eq_closure_mul 2023-10-03 10:19:31 87799c2 feat: add Algebra.coe_norm_int (#7463) From flt-regular. ESTIMATED CHANGES Modified Mathlib/NumberTheory/NumberField/Units.lean + theorem Algebra.coe_norm_int 2023-10-03 10:19:30 20cc2dc feat: lemmas about equiv and logic (#7338) * From the marginal project ESTIMATED CHANGES Modified Mathlib/Data/Option/Basic.lean + theorem Option.elim_apply + theorem Option.elim_comp + theorem Option.elim_comp₂ Modified Mathlib/Data/Set/Prod.lean + theorem Equiv.piCongrLeft_preimage_pi + theorem Equiv.piCongrLeft_preimage_univ_pi + theorem Equiv.piCongrLeft_symm_preimage_pi + theorem Equiv.piCongrLeft_symm_preimage_univ_pi + theorem Equiv.sumPiEquivProdPi_symm_preimage_univ_pi + theorem Set.pi_univ_ite Modified Mathlib/Data/Sum/Basic.lean + theorem Sum.sum_rec_congr Modified Mathlib/Logic/Basic.lean + theorem Eq.rec_eq_cast + theorem imp_and_neg_imp_iff Modified Mathlib/Logic/Equiv/Basic.lean + theorem Equiv.piCongrLeft_apply_eq_cast + theorem Equiv.piCongrLeft_sum_inl + theorem Equiv.piCongrLeft_sum_inr + def Equiv.prodPiEquivSumPi + theorem Equiv.subtypeEquivRight_apply + theorem Equiv.subtypeEquivRight_symm_apply + def Equiv.sumPiEquivProdPi 2023-10-03 08:56:45 bc669d2 chore: run 'lean4checker' during CI (#7368) ESTIMATED CHANGES Modified .github/workflows/bors.yml Modified .github/workflows/build.yml Modified .github/workflows/build.yml.in Modified .github/workflows/build_fork.yml 2023-10-03 08:56:44 56e8939 chore: move some code to Algebra.Module.Submodule.Lattice and add some comments (#7366) ESTIMATED CHANGES Modified Mathlib/Algebra/Module/Submodule/Lattice.lean + theorem Submodule.mem_left_iff_eq_zero_of_disjoint + theorem Submodule.mem_right_iff_eq_zero_of_disjoint + theorem Submodule.nontrivial_iff + theorem Submodule.subsingleton_iff Modified Mathlib/LinearAlgebra/Basic.lean - theorem Submodule.mem_left_iff_eq_zero_of_disjoint - theorem Submodule.mem_right_iff_eq_zero_of_disjoint - theorem Submodule.nontrivial_iff - theorem Submodule.subsingleton_iff 2023-10-03 07:51:22 7d19641 feat: some golfing in AlgebraicGeometry.PrimeSpectrum.Basic (#7373) ESTIMATED CHANGES Modified Mathlib/AlgebraicGeometry/Limits.lean Modified Mathlib/AlgebraicGeometry/PrimeSpectrum/Basic.lean +/- theorem PrimeSpectrum.isCompact_basicOpen - theorem PrimeSpectrum.punit Modified Mathlib/RingTheory/Ideal/Basic.lean + theorem Ideal.isCompactElement_top 2023-10-03 07:21:41 68c7277 doc: fix typos (#7470) Co-Authored-By: newell ESTIMATED CHANGES Modified Mathlib/AlgebraicGeometry/OpenImmersion.lean Modified Mathlib/Geometry/RingedSpace/LocallyRingedSpace.lean Modified Mathlib/GroupTheory/Subgroup/Basic.lean 2023-10-03 00:57:03 eaac61b chore : revert 1c1f211fab568c (#7474) This reverts commit 1c1f211fab568c513da3f142512f154bb139a82c. I did not make two weeks much less a month. ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Opposite.lean 2023-10-02 20:49:50-04:00 1c1f211 change ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Opposite.lean 2023-10-02 17:58:22 71a0cb8 chore: remove some Aesop calls in Category.Basic (#7462) This is in preparation for the next Aesop version, which will include a change to the handling of simp theorems. That change can affect the order in which simp lemmas are applied. Some Aesop calls in CategoryTheory.Category.Basic were sensitive to this ordering, so I've replaced them with simpler proofs. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Category/Basic.lean 2023-10-02 15:34:07 c0de767 feat: disintegration of Lebesgue measure in vector spaces (#7252) To check that a property is true ae in a vector space, it suffices to check that it is true ae along all translates of a given vector subspace. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Analysis/NormedSpace/FiniteDimension.lean + theorem properSpace_of_locallyCompact_module Modified Mathlib/LinearAlgebra/Basic.lean + theorem LinearMap.injective_domRestrict_iff + theorem LinearMap.range_domRestrict_le_range Modified Mathlib/LinearAlgebra/Span.lean + theorem LinearMap.range_domRestrict_eq_range_iff + theorem LinearMap.surjective_domRestrict_iff Modified Mathlib/MeasureTheory/Constructions/Prod/Basic.lean + theorem MeasureTheory.Measure.map_fst_prod + theorem MeasureTheory.Measure.map_snd_prod Added Mathlib/MeasureTheory/Measure/Haar/Disintegration.lean + theorem LinearMap.exists_map_addHaar_eq_smul_addHaar' + theorem LinearMap.exists_map_addHaar_eq_smul_addHaar + theorem MeasureTheory.ae_ae_add_linearMap_mem_iff + theorem MeasureTheory.ae_comp_linearMap_mem_iff + theorem MeasureTheory.ae_mem_of_ae_add_linearMap_mem 2023-10-02 15:09:41 89ef311 chore: drop redundant LinearMap/LinearEquiv.map_sum (#7426) Note that `_root_.map_sum` is not marked as `@[simp]`. ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/Alternating/Basic.lean Modified Mathlib/LinearAlgebra/Basic.lean - theorem LinearEquiv.map_sum - theorem LinearMap.map_sum Modified Mathlib/LinearAlgebra/Basis.lean Modified Mathlib/LinearAlgebra/Matrix/Adjugate.lean Modified Mathlib/LinearAlgebra/Pi.lean Modified Mathlib/NumberTheory/ClassNumber/Finite.lean 2023-10-02 11:21:20 f1a26d7 chore: fix typo `mimimal` to `minimal` (#7455) ESTIMATED CHANGES Modified Mathlib/RingTheory/Ideal/MinimalPrime.lean - theorem Ideal.mimimal_primes_comap_of_surjective + theorem Ideal.minimal_primes_comap_of_surjective 2023-10-02 09:36:07 80b890f chore(LinearAlgebra/DirectSum/TensorProduct): missing lemma (#7399) We had the lemma about how the forward direction of this equivalence behaves, but not the reverse direction. ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/DirectSum/TensorProduct.lean + theorem TensorProduct.directSum_symm_lof_tmul 2023-10-02 09:36:06 4298bf3 chore: CI compiles 'graph' (#7347) ESTIMATED CHANGES Modified .github/workflows/bors.yml Modified .github/workflows/build.yml Modified .github/workflows/build.yml.in Modified .github/workflows/build_fork.yml 2023-10-02 07:53:23 89df0a5 chore: golf some Nat.Prime proofs (#7452) Also correct indentation for another. ESTIMATED CHANGES Modified Mathlib/Data/Nat/Prime.lean +/- theorem Nat.Prime.dvd_of_dvd_pow +/- theorem Nat.Prime.pow_not_prime' +/- theorem Nat.Prime.pow_not_prime 2023-10-02 07:53:22 d36df78 chore(LinearAlgebra/Alternating): split (#7448) I'm going to refactor/expand API about `domCoprod`, and I don't want to rebuild the whole library when I do it. ESTIMATED CHANGES Modified Mathlib.lean Renamed Mathlib/LinearAlgebra/Alternating.lean to Mathlib/LinearAlgebra/Alternating/Basic.lean - def AlternatingMap.domCoprod' - theorem AlternatingMap.domCoprod'_apply - def AlternatingMap.domCoprod.summand - theorem AlternatingMap.domCoprod.summand_add_swap_smul_eq_zero - theorem AlternatingMap.domCoprod.summand_eq_zero_of_smul_invariant - theorem AlternatingMap.domCoprod.summand_mk'' - def AlternatingMap.domCoprod - theorem AlternatingMap.domCoprod_coe +/- theorem AlternatingMap.domDomCongr_refl +/- def AlternatingMap.domDomLcongr - theorem Equiv.Perm.ModSumCongr.swap_smul_involutive - theorem MultilinearMap.domCoprod_alternization - theorem MultilinearMap.domCoprod_alternization_coe - theorem MultilinearMap.domCoprod_alternization_eq Added Mathlib/LinearAlgebra/Alternating/DomCoprod.lean + def AlternatingMap.domCoprod' + theorem AlternatingMap.domCoprod'_apply + def AlternatingMap.domCoprod.summand + theorem AlternatingMap.domCoprod.summand_add_swap_smul_eq_zero + theorem AlternatingMap.domCoprod.summand_eq_zero_of_smul_invariant + theorem AlternatingMap.domCoprod.summand_mk'' + def AlternatingMap.domCoprod + theorem AlternatingMap.domCoprod_coe + theorem Equiv.Perm.ModSumCongr.swap_smul_involutive + theorem MultilinearMap.domCoprod_alternization + theorem MultilinearMap.domCoprod_alternization_coe + theorem MultilinearMap.domCoprod_alternization_eq Modified Mathlib/LinearAlgebra/ExteriorAlgebra/Basic.lean Modified Mathlib/LinearAlgebra/Matrix/Determinant.lean Modified Mathlib/Topology/Algebra/Module/Alternating.lean 2023-10-02 06:27:42 51089d8 feat: some lemmas about associated and prime elements (#7453) From flt-regular. ESTIMATED CHANGES Modified Mathlib/Algebra/Associated.lean +/- theorem Irreducible.associated_of_dvd + theorem Irreducible.dvd_iff +/- theorem Irreducible.dvd_irreducible_iff_associated + theorem Irreducible.isUnit_iff_not_associated_of_dvd + theorem Prime.dvd_mul + theorem Prime.not_dvd_mul Modified Mathlib/Algebra/GCDMonoid/Basic.lean + theorem Irreducible.gcd_eq_one_iff + theorem Irreducible.isUnit_gcd_iff + theorem associated_gcd_left_iff + theorem associated_gcd_right_iff + theorem dvd_gcd_mul_iff_dvd_mul + theorem dvd_mul_gcd_iff_dvd_mul Modified test/propose.lean 2023-10-02 06:27:41 465105c feat: some lemmas about List and ZMod (#7424) ESTIMATED CHANGES Modified Mathlib/Data/List/Basic.lean + theorem List.drop_tail Modified Mathlib/Data/ZMod/Basic.lean + theorem ZMod.cast_injective_of_lt + theorem ZMod.cast_zmod_eq_zero_iff_of_lt + theorem ZMod.val_add_le + theorem ZMod.val_add_of_le + theorem ZMod.val_add_of_lt + theorem ZMod.val_add_val_of_le + theorem ZMod.val_cast_eq_val_of_lt +/- theorem ZMod.val_injective + theorem ZMod.val_mul_le + theorem ZMod.val_mul_of_lt + theorem ZMod.val_nat_cast_of_lt + theorem ZMod.val_ne_zero + theorem ZMod.val_neg_of_ne_zero + theorem ZMod.val_sub Modified Mathlib/Logic/Basic.lean + theorem dite_prop_iff_and + theorem dite_prop_iff_or + theorem ite_prop_iff_and + theorem ite_prop_iff_or 2023-10-02 06:06:53 2372c7a chore: update Mathlib.Mathport.Syntax (#7443) ESTIMATED CHANGES Modified Mathlib/Mathport/Syntax.lean 2023-10-01 12:14:58 aef0410 chore: Make `Set`/`Finset` lemmas match lattice lemma names (#7378) Rename `union_eq_left_iff_subset` to `union_eq_left` to match `sup_eq_left`. Similarly for the `right` and `inter` versions. ESTIMATED CHANGES Modified Archive/Imo/Imo2021Q1.lean Modified Archive/Wiedijk100Theorems/BallotProblem.lean Modified Mathlib/AlgebraicGeometry/AffineScheme.lean Modified Mathlib/AlgebraicGeometry/Morphisms/QuasiCompact.lean Modified Mathlib/AlgebraicGeometry/Morphisms/RingHomProperties.lean Modified Mathlib/AlgebraicGeometry/OpenImmersion.lean Modified Mathlib/Analysis/BoxIntegral/Partition/Basic.lean Modified Mathlib/Analysis/Normed/Group/AddCircle.lean Modified Mathlib/Analysis/SpecialFunctions/Gamma/Basic.lean Modified Mathlib/Analysis/SpecialFunctions/Gamma/BohrMollerup.lean Modified Mathlib/Combinatorics/Additive/Etransform.lean Modified Mathlib/Combinatorics/Additive/SalemSpencer.lean Modified Mathlib/Combinatorics/Colex.lean Modified Mathlib/Computability/TMToPartrec.lean Modified Mathlib/Data/Finset/Basic.lean + theorem Finset.inter_eq_left - theorem Finset.inter_eq_left_iff_subset + theorem Finset.inter_eq_right - theorem Finset.inter_eq_right_iff_subset + theorem Finset.left_eq_union - theorem Finset.left_eq_union_iff_subset + theorem Finset.right_eq_union - theorem Finset.right_eq_union_iff_subset + theorem Finset.union_eq_empty - theorem Finset.union_eq_empty_iff + theorem Finset.union_eq_left - theorem Finset.union_eq_left_iff_subset + theorem Finset.union_eq_right - theorem Finset.union_eq_right_iff_subset Modified Mathlib/Data/Finset/NAry.lean Modified Mathlib/Data/Finset/Sups.lean Modified Mathlib/Data/Set/Basic.lean + theorem Set.inter_eq_left - theorem Set.inter_eq_left_iff_subset + theorem Set.inter_eq_right - theorem Set.inter_eq_right_iff_subset + theorem Set.union_eq_left - theorem Set.union_eq_left_iff_subset + theorem Set.union_eq_right - theorem Set.union_eq_right_iff_subset Modified Mathlib/Data/Set/Semiring.lean Modified Mathlib/Geometry/Manifold/ContMDiff.lean Modified Mathlib/Geometry/Manifold/LocalInvariantProperties.lean Modified Mathlib/Geometry/RingedSpace/OpenImmersion.lean Modified Mathlib/GroupTheory/Perm/Cycle/Basic.lean Modified Mathlib/LinearAlgebra/Multilinear/Basic.lean Modified Mathlib/MeasureTheory/Constructions/BorelSpace/Basic.lean Modified Mathlib/MeasureTheory/Function/LocallyIntegrable.lean Modified Mathlib/MeasureTheory/Integral/Periodic.lean Modified Mathlib/MeasureTheory/Measure/VectorMeasure.lean Modified Mathlib/Order/Filter/Basic.lean Modified Mathlib/Probability/Process/HittingTime.lean Modified Mathlib/Topology/Connected.lean Modified Mathlib/Topology/FiberBundle/Trivialization.lean Modified Mathlib/Topology/MetricSpace/Basic.lean Modified Mathlib/Topology/MetricSpace/HausdorffDistance.lean Modified Mathlib/Topology/NoetherianSpace.lean Modified Mathlib/Topology/QuasiSeparated.lean Modified Mathlib/Topology/SubsetProperties.lean 2023-09-30 17:02:19 86831e8 feat: Add a basic layercake formula for Bochner integral. (#7167) Layer cake formulas currently exist for `ENNReal`-valued functions and Lebesgue integrals. This PR adds the most common version of the layer cake formula for integrable a.e.-nonnegative real-valued functions and Bochner integrals. ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Function/L1Space.lean + theorem MeasureTheory.HasFiniteIntegral.restrict +/- theorem MeasureTheory.Integrable.measure_ge_lt_top + theorem MeasureTheory.Integrable.measure_gt_lt_top + theorem MeasureTheory.Integrable.measure_le_lt_top + theorem MeasureTheory.Integrable.measure_lt_lt_top + theorem MeasureTheory.Integrable.measure_norm_ge_lt_top + theorem MeasureTheory.Integrable.measure_norm_gt_lt_top + theorem MeasureTheory.Integrable.restrict Modified Mathlib/MeasureTheory/Integral/IntegrableOn.lean Modified Mathlib/MeasureTheory/Integral/Layercake.lean + theorem MeasureTheory.Integrable.integral_eq_integral_meas_lt Modified Mathlib/MeasureTheory/Integral/SetIntegral.lean + theorem MeasureTheory.ae_restrict_eq_const_iff_ae_eq_const_of_mem' + theorem MeasureTheory.ae_restrict_eq_const_iff_ae_eq_const_of_mem + theorem MeasureTheory.set_integral_eq_integral_of_ae_restrict_eq_zero Modified Mathlib/MeasureTheory/Measure/MeasureSpace.lean + theorem MeasureTheory.NullMeasurable.measure_preimage_eq_measure_restrict_preimage_of_ae_compl_eq_const 2023-09-29 15:19:12 071f47d feat: add some List.takeWhile lemmas (#7397) ESTIMATED CHANGES Modified Mathlib/Data/List/Basic.lean + theorem List.takeWhile_cons + theorem List.takeWhile_cons_of_neg + theorem List.takeWhile_cons_of_pos + theorem List.takeWhile_nil 2023-09-29 15:19:11 2cb209a style: a linter for four spaces (#7283) Includes an auto-fix feature with the `--fix` flag so that spacing suggestions will be automatically applied in review also. ESTIMATED CHANGES Modified Mathlib/GroupTheory/SpecificGroups/Cyclic.lean Modified Mathlib/LinearAlgebra/Prod.lean +/- def Submodule.fstEquiv Modified Mathlib/NumberTheory/NumberField/Units.lean Modified Mathlib/Tactic/ToAdditive.lean Modified scripts/lint-style.py 2023-09-29 14:27:54 3d72934 feat(RingTheory/TensorProduct): the universal property of the tensor product of algebras (#7409) The construction used for `CliffordAlgebra.ofBaseChange` generalizes into a universal property for building arbitrary algebra morphisms out of the tensor product. It turns out this is a known result; it is mentioned at https://en.wikipedia.org/wiki/Tensor_product_of_algebras#Further_properties which cites the linked reference, though the version added by this PR is heterobasic like the rest of this file. This is a generalization of the existing `Algebra.TensorProduct.productLeftAlgHom` to non-commutative rings. ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/CliffordAlgebra/BaseChange.lean Modified Mathlib/RingTheory/TensorProduct.lean +/- theorem Algebra.TensorProduct.lid_tmul + def Algebra.TensorProduct.lift + def Algebra.TensorProduct.liftEquiv + theorem Algebra.TensorProduct.lift_comp_includeLeft + theorem Algebra.TensorProduct.lift_comp_includeRight + theorem Algebra.TensorProduct.lift_includeLeft_includeRight + theorem Algebra.TensorProduct.lift_tmul - def Algebra.TensorProduct.productLeftAlgHom +/- def Algebra.TensorProduct.productMap + theorem Algebra.TensorProduct.productMap_eq_comp_map + theorem SemiconjBy.tmul Modified docs/references.bib 2023-09-29 14:27:53 6d73bdf feat(Analysis): add WithLp for products (#6136) The file `NormedSpace.ProdLp` is copied from `NormedSpace.PiLp` with a two changes - For `p = 0` we define the distance by using and if-else block which in turn makes it necessary to add some classicality assumptions - We omit the sections about basis and constant maps ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/InnerProductSpace/ProdL2.lean + theorem WithLp.prod_inner_apply Added Mathlib/Analysis/NormedSpace/ProdLp.lean + theorem WithLp.add_fst + theorem WithLp.add_snd + theorem WithLp.dist_equiv_symm_fst + theorem WithLp.dist_equiv_symm_snd + theorem WithLp.edist_equiv_symm_fst + theorem WithLp.edist_equiv_symm_snd + theorem WithLp.equiv_fst + theorem WithLp.equiv_snd + theorem WithLp.equiv_symm_fst + theorem WithLp.equiv_symm_snd + theorem WithLp.neg_fst + theorem WithLp.neg_snd + theorem WithLp.nndist_equiv_symm_fst + theorem WithLp.nndist_equiv_symm_snd + theorem WithLp.nnnorm_equiv_symm_fst + theorem WithLp.nnnorm_equiv_symm_snd + theorem WithLp.norm_equiv_symm_fst + theorem WithLp.norm_equiv_symm_snd + def WithLp.prodEquivₗᵢ + def WithLp.prodPseudoEMetricAux + def WithLp.prodPseudoMetricAux + theorem WithLp.prod_antilipschitzWith_equiv + theorem WithLp.prod_antilipschitzWith_equiv_aux + theorem WithLp.prod_aux_cobounded_eq + theorem WithLp.prod_aux_uniformity_eq + theorem WithLp.prod_continuous_equiv + theorem WithLp.prod_continuous_equiv_symm + theorem WithLp.prod_dist_eq_add + theorem WithLp.prod_dist_eq_card + theorem WithLp.prod_dist_eq_of_L2 + theorem WithLp.prod_dist_eq_sup + theorem WithLp.prod_edist_comm + theorem WithLp.prod_edist_eq_add + theorem WithLp.prod_edist_eq_card + theorem WithLp.prod_edist_eq_of_L2 + theorem WithLp.prod_edist_eq_sup + theorem WithLp.prod_edist_self + theorem WithLp.prod_infty_equiv_isometry + theorem WithLp.prod_lipschitzWith_equiv + theorem WithLp.prod_lipschitzWith_equiv_aux + theorem WithLp.prod_nndist_eq_add + theorem WithLp.prod_nndist_eq_of_L2 + theorem WithLp.prod_nndist_eq_sup + theorem WithLp.prod_nnnorm_eq_add + theorem WithLp.prod_nnnorm_eq_of_L2 + theorem WithLp.prod_nnnorm_eq_sup + theorem WithLp.prod_norm_eq_add + theorem WithLp.prod_norm_eq_card + theorem WithLp.prod_norm_eq_of_L2 + theorem WithLp.prod_norm_eq_of_nat + theorem WithLp.prod_norm_eq_sup + theorem WithLp.prod_norm_sq_eq_of_L2 + theorem WithLp.prod_sup_edist_ne_top_aux + theorem WithLp.prod_uniformContinuous_equiv + theorem WithLp.prod_uniformContinuous_equiv_symm + theorem WithLp.smul_fst + theorem WithLp.smul_snd + theorem WithLp.sub_fst + theorem WithLp.sub_snd + theorem WithLp.zero_fst + theorem WithLp.zero_snd 2023-09-29 13:54:33 042888f feat(Probability/Kernel/Disintegration): Uniqueness of the disintegration kernel (#6110) ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Measure/MeasureSpaceDef.lean + theorem MeasurableSpace.ae_induction_on_inter + theorem MeasureTheory.all_ae_of Modified Mathlib/Probability/Kernel/CondDistrib.lean + theorem ProbabilityTheory.condDistrib_ae_eq_of_measure_eq_compProd Modified Mathlib/Probability/Kernel/Disintegration.lean + theorem ProbabilityTheory.eq_condKernel_of_measure_eq_compProd' + theorem ProbabilityTheory.eq_condKernel_of_measure_eq_compProd + theorem ProbabilityTheory.eq_condKernel_of_measure_eq_compProd_real 2023-09-29 13:26:33 d8905e7 docs: Create CONTRIBUTING.md (#7367) This file is surfaced in several places in the github UI, if it exists. Actually writing something of substance here risks it going out of sync; but this should hopefully lead new contributors towards the guide if they found mathlib through github rathe than the website. ESTIMATED CHANGES Added .github/CONTRIBUTING.md 2023-09-29 10:41:02 7017600 perf: improve some instances in GroupTheory/Congruence (#6874) ESTIMATED CHANGES Modified Mathlib/GroupTheory/Congruence.lean 2023-09-29 06:57:45 b3b5ba1 feat: Supremum of `Finset.Iic a` (#7416) and lemmas about `Set.toFinset` of `Finset.Ixx` ESTIMATED CHANGES Modified Mathlib/Data/Finset/LocallyFinite.lean + theorem Finset.inf'_Ici + theorem Finset.inf_Ici + theorem Finset.nonempty_Ici + theorem Finset.nonempty_Iic + theorem Finset.nonempty_Iio + theorem Finset.nonempty_Ioi + theorem Finset.sup'_Iic + theorem Finset.sup_Iic Modified Mathlib/Order/LocallyFinite.lean + theorem Set.toFinset_Icc + theorem Set.toFinset_Ici + theorem Set.toFinset_Ico + theorem Set.toFinset_Iic + theorem Set.toFinset_Iio + theorem Set.toFinset_Ioc + theorem Set.toFinset_Ioi + theorem Set.toFinset_Ioo 2023-09-29 06:57:44 d3263b2 chore: exactly 4 spaces in theorems (#7328) ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/NonUnitalSubalgebra.lean Modified Mathlib/Algebra/Group/Defs.lean Modified Mathlib/Algebra/Group/Ext.lean Modified Mathlib/Algebra/Group/Pi.lean Modified Mathlib/Algebra/GroupPower/Lemmas.lean Modified Mathlib/Algebra/Hom/Equiv/Basic.lean Modified Mathlib/Algebra/Hom/Equiv/Units/Basic.lean Modified Mathlib/Algebra/Hom/Group/Basic.lean Modified Mathlib/Algebra/Hom/Group/Defs.lean Modified Mathlib/Algebra/Hom/GroupAction.lean Modified Mathlib/Algebra/Hom/Units.lean Modified Mathlib/Algebra/Homology/HomotopyCategory/HomComplex.lean Modified Mathlib/Algebra/MonoidAlgebra/ToDirectSum.lean Modified Mathlib/AlgebraicTopology/SimplicialObject.lean Modified Mathlib/Analysis/Convex/Combination.lean Modified Mathlib/Analysis/NormedSpace/WeakDual.lean Modified Mathlib/Analysis/SpecialFunctions/Log/Basic.lean Modified Mathlib/CategoryTheory/Functor/Basic.lean +/- theorem CategoryTheory.Functor.map_comp_assoc Modified Mathlib/CategoryTheory/Limits/Shapes/Images.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Multiequalizer.lean Modified Mathlib/CategoryTheory/Limits/Shapes/WideEqualizers.lean Modified Mathlib/CategoryTheory/Preadditive/HomOrthogonal.lean Modified Mathlib/CategoryTheory/Sites/EffectiveEpimorphic.lean Modified Mathlib/CategoryTheory/Subobject/MonoOver.lean Modified Mathlib/CategoryTheory/Triangulated/Basic.lean Modified Mathlib/CategoryTheory/Triangulated/Triangulated.lean Modified Mathlib/CategoryTheory/Types.lean Modified Mathlib/Combinatorics/Quiver/Path.lean Modified Mathlib/Combinatorics/SetFamily/Compression/UV.lean Modified Mathlib/Combinatorics/SimpleGraph/Connectivity.lean Modified Mathlib/Combinatorics/SimpleGraph/Triangle/Basic.lean Modified Mathlib/Computability/TMToPartrec.lean Modified Mathlib/Control/Fold.lean Modified Mathlib/Control/Functor/Multivariate.lean Modified Mathlib/Data/Analysis/Topology.lean +/- theorem locallyFinite_iff_exists_realizer Modified Mathlib/Data/Array/Defs.lean Modified Mathlib/Data/ByteArray.lean Modified Mathlib/Data/ENat/Basic.lean Modified Mathlib/Data/Fin/Basic.lean Modified Mathlib/Data/Int/GCD.lean Modified Mathlib/Data/List/Basic.lean Modified Mathlib/Data/List/Chain.lean Modified Mathlib/Data/List/Defs.lean Modified Mathlib/Data/Nat/Cast/Field.lean Modified Mathlib/Data/Nat/Fib.lean Modified Mathlib/Data/Option/Basic.lean Modified Mathlib/Data/PFunctor/Multivariate/M.lean Modified Mathlib/Data/PFunctor/Univariate/M.lean Modified Mathlib/Data/Polynomial/FieldDivision.lean Modified Mathlib/Data/QPF/Multivariate/Constructions/Fix.lean Modified Mathlib/Data/Real/Sqrt.lean Modified Mathlib/Data/Seq/Computation.lean Modified Mathlib/Data/Set/Card.lean Modified Mathlib/Data/Sigma/Basic.lean Modified Mathlib/Data/Sigma/Lex.lean Modified Mathlib/Data/Sign.lean Modified Mathlib/Data/String/Basic.lean Modified Mathlib/Data/Sym/Sym2.lean Modified Mathlib/Data/TypeVec.lean Modified Mathlib/Data/UnionFind.lean +/- theorem UFModel.Agrees.mk' Modified Mathlib/Data/Vector/Basic.lean Modified Mathlib/Data/Vector/MapLemmas.lean Modified Mathlib/FieldTheory/IsAlgClosed/AlgebraicClosure.lean Modified Mathlib/FieldTheory/Subfield.lean Modified Mathlib/Geometry/Manifold/ChartedSpace.lean Modified Mathlib/Geometry/Manifold/Complex.lean Modified Mathlib/GroupTheory/FreeGroup/Basic.lean Modified Mathlib/GroupTheory/GroupAction/SubMulAction.lean Modified Mathlib/GroupTheory/Perm/Support.lean Modified Mathlib/GroupTheory/SchurZassenhaus.lean Modified Mathlib/GroupTheory/Transfer.lean Modified Mathlib/Lean/Meta/Simp.lean Modified Mathlib/LinearAlgebra/Lagrange.lean Modified Mathlib/LinearAlgebra/Orientation.lean Modified Mathlib/LinearAlgebra/Prod.lean +/- def Submodule.sndEquiv Modified Mathlib/Logic/Function/Basic.lean Modified Mathlib/Logic/Relation.lean Modified Mathlib/MeasureTheory/Measure/Complex.lean Modified Mathlib/MeasureTheory/Measure/OuterMeasure.lean Modified Mathlib/NumberTheory/ArithmeticFunction.lean Modified Mathlib/Order/Atoms.lean Modified Mathlib/Order/Hom/Set.lean +/- def OrderIso.Set.univ Modified Mathlib/Order/Lattice.lean Modified Mathlib/Order/MinMax.lean Modified Mathlib/Order/SuccPred/Basic.lean Modified Mathlib/RingTheory/EisensteinCriterion.lean Modified Mathlib/RingTheory/FreeCommRing.lean Modified Mathlib/RingTheory/IntegralClosure.lean Modified Mathlib/RingTheory/IntegralDomain.lean Modified Mathlib/RingTheory/Nilpotent.lean Modified Mathlib/RingTheory/UniqueFactorizationDomain.lean Modified Mathlib/SetTheory/Ordinal/Basic.lean Modified Mathlib/Tactic/Abel.lean Modified Mathlib/Tactic/Have.lean Modified Mathlib/Tactic/Linarith/Datatypes.lean Modified Mathlib/Tactic/Linarith/Parsing.lean Modified Mathlib/Tactic/MkIffOfInductiveProp.lean Modified Mathlib/Tactic/NormNum/Pow.lean Modified Mathlib/Tactic/NormNum/Prime.lean Modified Mathlib/Tactic/PrintPrefix.lean Modified Mathlib/Tactic/Relation/Trans.lean Modified Mathlib/Tactic/Sat/FromLRAT.lean Modified Mathlib/Tactic/SimpRw.lean Modified Mathlib/Tactic/Simps/Basic.lean Modified Mathlib/Tactic/ToAdditive.lean +/- def ToAdditive.updateDecl Modified Mathlib/Tactic/TryThis.lean Modified Mathlib/Tactic/Zify.lean Modified Mathlib/Topology/AlexandrovDiscrete.lean Modified Mathlib/Topology/Algebra/Order/Archimedean.lean Modified Mathlib/Topology/Bases.lean Modified Mathlib/Topology/Basic.lean Modified Mathlib/Topology/Connected.lean Modified Mathlib/Topology/EMetricSpace/Basic.lean Modified Mathlib/Topology/PathConnected.lean Modified Mathlib/Topology/Sheaves/Presheaf.lean Modified Mathlib/Topology/Sheaves/Stalks.lean 2023-09-29 06:57:43 c0af8b8 feat: add standard Borel space class (#7243) add a class `StandardBorelSpace`, whose relationship to `PolishSpace` is analogous to the relationship between `PolishSpace` and complete metric space. The usefulness is shown by `_root_.MeasurableSet.standardBorel`: A measurable subset of a standard Borel space is Polish. Note that a borel measurable subset of a Polish space will not typically be Polish in the induced topology! Specific things done in this PR: - added some basic instances for `StandardBorelSpace` - changed theorems with hypotheses `[MeasurableSpace X] [TopologicalSpace X] [BorelSpace X] [PolishSpace X]` but which do not refer to the topology on `X` to depend instead on `[MeasurableSpace X][StandardBorelSpace X]`. These automatically generalize the old theorems thanks to `standardBorel_of_polish`. I believe this sort of refactoring can be pushed a lot farther in future PRs. ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Constructions/Polish.lean +/- theorem Continuous.measurableEmbedding +/- theorem ContinuousOn.measurableEmbedding +/- theorem IsClosed.measurableSet_image_of_continuousOn_injOn +/- theorem Measurable.measurableEmbedding +/- theorem MeasurableSet.analyticSet_image +/- theorem MeasurableSet.image_of_continuousOn_injOn +/- theorem MeasurableSet.image_of_measurable_injOn + theorem MeasurableSet.isClopenable' + theorem MeasurableSet.standardBorel + theorem MeasureTheory.borel_eq_borel_of_le +/- theorem MeasureTheory.isClopenable_iff_measurableSet +/- theorem MeasureTheory.measurableSet_exists_tendsto +/- theorem MeasureTheory.measurableSet_range_of_continuous_injective + theorem eq_borel_upgradeStandardBorel + def upgradeStandardBorel Modified Mathlib/Probability/Martingale/Convergence.lean Modified Mathlib/Topology/MetricSpace/Polish.lean 2023-09-29 04:40:00 5d32dbd feat: the n-th harmonic number is not an integer for n > 1. (#7319) The n-th Harmonic number is not an integer for n > 1. This proof uses 2-adic valuations. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Data/Finset/Basic.lean + theorem Finset.Nontrivial.sdiff_singleton_nonempty + theorem Finset.range_nontrivial Modified Mathlib/Data/Rat/Defs.lean + theorem Rat.eq_num_of_isInt Added Mathlib/NumberTheory/Padics/Harmonic.lean + def harmonic + theorem harmonic_not_int + theorem harmonic_pos + theorem harmonic_succ + theorem harmonic_zero + theorem padicValRat_two_harmonic Modified Mathlib/NumberTheory/Padics/PadicNorm.lean + theorem padicNorm.not_int_of_not_padic_int Modified Mathlib/NumberTheory/Padics/PadicVal.lean + theorem Nat.log_ne_padicValNat_succ + theorem Nat.max_log_padicValNat_succ_eq_log_succ + theorem nat_log_eq_padicValNat_iff + theorem padicValNat_le_nat_log + theorem padicValRat.add_eq_min + theorem padicValRat.add_eq_of_lt + theorem padicValRat.lt_add_of_lt + theorem padicValRat.lt_sum_of_lt + theorem padicValRat.self_pow_inv + theorem padicValRat_def 2023-09-29 04:01:44 3167989 feat: a single element `EffectiveEpiFamily` consists of an `EffectiveEpi` (#7420) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Sites/EffectiveEpimorphic.lean + def CategoryTheory.EffectiveEpiStruct_ofFamily + theorem CategoryTheory.effectiveEpi_iff_effectiveEpiFamily 2023-09-29 03:32:53 f706948 feat(Analysis): define pointed cones (#6437) We define `PointedCone` as `Submodule 𝕜≥0 E`. Most of this code is copied from the `ConvexCone` file. The main reason for this type synonym is to be able to work with direct sums/products of cones (which are now just direct sums/products of submodules). ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Order/Nonneg/Module.lean + theorem Nonneg.coe_smul + theorem Nonneg.mk_smul Modified Mathlib/Analysis/Convex/Cone/Basic.lean + theorem ConvexCone.coe_map Added Mathlib/Analysis/Convex/Cone/Pointed.lean + theorem ConvexCone.coe_toPointedCone + theorem ConvexCone.mem_toPointedCone + def ConvexCone.toPointedCone + theorem PointedCone.coe_comap + theorem PointedCone.coe_map + def PointedCone.comap + theorem PointedCone.comap_comap + theorem PointedCone.comap_id + def PointedCone.dual + theorem PointedCone.ext + def PointedCone.map + theorem PointedCone.map_id + theorem PointedCone.map_map + theorem PointedCone.mem_comap + theorem PointedCone.mem_dual + theorem PointedCone.mem_map + theorem PointedCone.mem_positive + def PointedCone.positive + def PointedCone.toConvexCone + theorem PointedCone.toConvexCone_dual + theorem PointedCone.toConvexCone_injective + theorem PointedCone.toConvexCone_map + theorem PointedCone.toConvexCone_pointed + theorem PointedCone.toConvexCone_positive 2023-09-28 22:53:26 8de1ab0 chore: bump ProofWidgets to v0.0.17 (#7414) ESTIMATED CHANGES Modified lake-manifest.json Modified lakefile.lean 2023-09-28 22:53:25 4b23a87 chore(CategoryTheory/Adjunction/Basic): missing dsimp lemmas (#7361) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Adjunction/Basic.lean - theorem CategoryTheory.Equivalence.asEquivalence_toAdjunction_counit - theorem CategoryTheory.Equivalence.asEquivalence_toAdjunction_unit Modified Mathlib/CategoryTheory/Monoidal/NaturalTransformation.lean 2023-09-28 21:41:02 7101b4c feat: Extend a nonnegative function (#7418) The result of extending a nonnegative function by a nonnegative function is nonnegative. ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Pi.lean + theorem Function.extend_le_one + theorem Function.one_le_extend Modified Mathlib/Order/Basic.lean + theorem dite_le_one + theorem dite_lt_one + theorem ite_le_one + theorem ite_lt_one + theorem one_le_dite + theorem one_le_ite + theorem one_lt_dite + theorem one_lt_ite 2023-09-28 19:35:27 b2d4152 chore(CategoryTheory): rename Cofan.proj as Cofan.inj (#7406) This PR renames the "injections" of a cofan as `Cofan.inj`. The previous name `Cofan.proj` was confusing. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Limits/Shapes/Biproducts.lean + theorem CategoryTheory.Limits.Bicone.toCocone_inj - theorem CategoryTheory.Limits.Bicone.toCocone_proj Modified Mathlib/CategoryTheory/Limits/Shapes/Products.lean + def CategoryTheory.Limits.Cofan.inj - def CategoryTheory.Limits.Cofan.proj + theorem CategoryTheory.Limits.cofan_mk_inj - theorem CategoryTheory.Limits.cofan_mk_proj 2023-09-28 17:09:58 6d330f7 perf: improve instances in TensorProduct (#7401) ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/TensorProduct.lean 2023-09-28 17:09:57 3f15d77 chore: split Measure.Trim definition from MeasureSpace.lean (#7385) The file MeasureSpace has more than 4000 lines: let's move some results out of it. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/MeasureTheory/Measure/AEMeasurable.lean Modified Mathlib/MeasureTheory/Measure/MeasureSpace.lean - def MeasureTheory.Measure.trim - theorem MeasureTheory.ae_eq_of_ae_eq_trim - theorem MeasureTheory.ae_le_of_ae_le_trim - theorem MeasureTheory.ae_of_ae_trim - theorem MeasureTheory.le_trim - theorem MeasureTheory.measure_eq_zero_of_trim_eq_zero - theorem MeasureTheory.measure_trim_toMeasurable_eq_zero - theorem MeasureTheory.restrict_trim - theorem MeasureTheory.sigmaFiniteTrim_mono - theorem MeasureTheory.sigmaFinite_trim_bot_iff - theorem MeasureTheory.toOuterMeasure_trim_eq_trim_toOuterMeasure - theorem MeasureTheory.trim_eq_self - theorem MeasureTheory.trim_measurableSet_eq - theorem MeasureTheory.trim_trim - theorem MeasureTheory.zero_trim Added Mathlib/MeasureTheory/Measure/Trim.lean + def MeasureTheory.Measure.trim + theorem MeasureTheory.ae_eq_of_ae_eq_trim + theorem MeasureTheory.ae_le_of_ae_le_trim + theorem MeasureTheory.ae_of_ae_trim + theorem MeasureTheory.le_trim + theorem MeasureTheory.measure_eq_zero_of_trim_eq_zero + theorem MeasureTheory.measure_trim_toMeasurable_eq_zero + theorem MeasureTheory.restrict_trim + theorem MeasureTheory.sigmaFiniteTrim_mono + theorem MeasureTheory.sigmaFinite_trim_bot_iff + theorem MeasureTheory.toOuterMeasure_trim_eq_trim_toOuterMeasure + theorem MeasureTheory.trim_eq_self + theorem MeasureTheory.trim_measurableSet_eq + theorem MeasureTheory.trim_trim + theorem MeasureTheory.zero_trim 2023-09-28 15:48:39 ca81ad4 fix: name of `AEMeasurable.ae_eq_of_forall_set_lintegral_eq` (#7380) ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Function/AEEqOfIntegral.lean + theorem MeasureTheory.AEMeasurable.ae_eq_of_forall_set_lintegral_eq - theorem MeasureTheory.AeMeasurable.ae_eq_of_forall_set_lintegral_eq 2023-09-28 15:48:37 42019ce feat: add theorem cast_subgroup_of_units_card_ne_zero (#6500) Adds a theorem saying the cardinality of a multiplicative subgroup of a field, cast to the field, is nonzero. As well as `sum_subgroup_units_zero_of_ne_bot` and other theorems about summing over multiplicative subgroups. ESTIMATED CHANGES Modified Mathlib/Data/Fintype/Basic.lean + theorem Multiset.map_univ_val_equiv Modified Mathlib/FieldTheory/Finite/Basic.lean + theorem FiniteField.card_cast_subgroup_card_ne_zero + theorem FiniteField.sum_subgroup_pow_eq_zero + theorem FiniteField.sum_subgroup_units + theorem FiniteField.sum_subgroup_units_eq_zero Modified Mathlib/GroupTheory/OrderOfElement.lean + theorem card_zpowers_le Modified Mathlib/GroupTheory/SpecificGroups/Cyclic.lean + theorem exists_pow_ne_one_of_isCyclic Modified Mathlib/GroupTheory/Subgroup/Basic.lean + theorem Subgroup.exists_ne_one_of_nontrivial + theorem Subgroup.ne_bot_iff_exists_ne_one + theorem Subgroup.nontrivial_iff_ne_bot 2023-09-28 12:57:04 edaa10a feat(GroupTheory/Submonoid): add opposite submonoids (#7415) We already have API for the multiplicative opposite of subgroups. This tidies the API for subgroups by introducing separate `.op` and `.unop` definitions (as dot notation on `.opposite` worked in Lean 3 but not Lean 4), and adds the same API for submonoids. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/GroupTheory/Coset.lean Modified Mathlib/GroupTheory/GroupAction/Quotient.lean Modified Mathlib/GroupTheory/Subgroup/MulOpposite.lean + def Subgroup.equivOp + def Subgroup.opEquiv + theorem Subgroup.op_toSubmonoid - def Subgroup.opposite - def Subgroup.oppositeEquiv +/- theorem Subgroup.smul_opposite_mul + theorem Subgroup.unop_toSubmonoid Modified Mathlib/GroupTheory/Subgroup/Pointwise.lean +/- theorem Subgroup.smul_opposite_image_mul_preimage Added Mathlib/GroupTheory/Submonoid/MulOpposite.lean + def Submonoid.equivOp + def Submonoid.opEquiv Modified Mathlib/MeasureTheory/Integral/Periodic.lean Modified Mathlib/MeasureTheory/Measure/Haar/Quotient.lean Modified Mathlib/Topology/Algebra/Group/Basic.lean Modified Mathlib/Topology/Instances/AddCircle.lean 2023-09-28 12:57:02 94638cd feat: Order isomorphism between `Finset α` and `Set α` (#7375) over a fintype. Also fix the name of `Finset.mem_powerset_len_univ_iff` (it should be `powersetLen`, not `powerset_len`). ESTIMATED CHANGES Modified Mathlib/Data/Finset/Slice.lean Modified Mathlib/Data/Fintype/Basic.lean + theorem Finset.compl_ssubset_compl + theorem Finset.compl_subset_compl + theorem Finset.inter_eq_univ +/- theorem Finset.inter_univ + theorem Finset.subtype_eq_univ + theorem Finset.subtype_univ +/- theorem Finset.univ_inter + theorem Fintype.coe_finsetEquivSet + theorem Fintype.coe_finsetOrderIsoSet + theorem Fintype.coe_finsetOrderIsoSet_symm +/- theorem Fintype.finsetEquivSet_apply +/- theorem Fintype.finsetEquivSet_symm_apply Modified Mathlib/Data/Fintype/Powerset.lean + theorem Finset.filter_subset_univ + theorem Finset.mem_powersetLen_univ - theorem Finset.mem_powerset_len_univ_iff +/- theorem Finset.powerset_eq_univ +/- theorem Finset.powerset_univ +/- theorem Finset.univ_filter_card_eq Modified Mathlib/Order/BooleanAlgebra.lean + theorem compl_lt_compl_iff_lt Modified Mathlib/RingTheory/MvPolynomial/NewtonIdentities.lean Modified Mathlib/RingTheory/MvPolynomial/Symmetric.lean 2023-09-28 12:57:00 dae39b2 feat(Data/Set/Intervals/Image): Complete API (#7146) Dualise all existing lemmas and prove their strictly monotone versions. The lemmas are grouped as * `mapsTo`, `image_subset` * `On`, not `On` * `Monotone`, `Antitone`, `StrictMono`, `StrictAnti` * `Ixi`, `Iix`, `Ixx` ESTIMATED CHANGES Modified Mathlib/Data/Set/Intervals/Image.lean + theorem Antitone.image_Icc_subset + theorem Antitone.image_Ici_subset + theorem Antitone.image_Iic_subset + theorem Antitone.mapsTo_Icc + theorem Antitone.mapsTo_Ici + theorem Antitone.mapsTo_Iic + theorem AntitoneOn.image_Icc_subset + theorem AntitoneOn.image_Ici_subset + theorem AntitoneOn.image_Iic_subset + theorem AntitoneOn.mapsTo_Icc + theorem AntitoneOn.mapsTo_Ici + theorem AntitoneOn.mapsTo_Iic +/- theorem Monotone.image_Icc_subset +/- theorem Monotone.image_Ici_subset +/- theorem Monotone.image_Iic_subset +/- theorem Monotone.mapsTo_Icc +/- theorem Monotone.mapsTo_Ici +/- theorem Monotone.mapsTo_Iic + theorem MonotoneOn.image_Icc_subset + theorem MonotoneOn.image_Ici_subset + theorem MonotoneOn.image_Iic_subset + theorem MonotoneOn.mapsTo_Icc + theorem MonotoneOn.mapsTo_Ici + theorem MonotoneOn.mapsTo_Iic + theorem StrictAnti.image_Ico_subset + theorem StrictAnti.image_Iio_subset + theorem StrictAnti.image_Ioc_subset + theorem StrictAnti.image_Ioi_subset + theorem StrictAnti.image_Ioo_subset + theorem StrictAnti.mapsTo_Ico + theorem StrictAnti.mapsTo_Iio + theorem StrictAnti.mapsTo_Ioc + theorem StrictAnti.mapsTo_Ioi + theorem StrictAnti.mapsTo_Ioo + theorem StrictAntiOn.image_Ico_subset + theorem StrictAntiOn.image_Iio_subset + theorem StrictAntiOn.image_Ioc_subset + theorem StrictAntiOn.image_Ioi_subset + theorem StrictAntiOn.image_Ioo_subset + theorem StrictAntiOn.mapsTo_Ico + theorem StrictAntiOn.mapsTo_Iio + theorem StrictAntiOn.mapsTo_Ioc + theorem StrictAntiOn.mapsTo_Ioi + theorem StrictAntiOn.mapsTo_Ioo - theorem StrictMono.imageIco_subset - theorem StrictMono.imageIoc_subset + theorem StrictMono.image_Ico_subset +/- theorem StrictMono.image_Iio_subset + theorem StrictMono.image_Ioc_subset +/- theorem StrictMono.image_Ioi_subset +/- theorem StrictMono.image_Ioo_subset +/- theorem StrictMono.mapsTo_Ico +/- theorem StrictMono.mapsTo_Iio +/- theorem StrictMono.mapsTo_Ioc +/- theorem StrictMono.mapsTo_Ioi +/- theorem StrictMono.mapsTo_Ioo + theorem StrictMonoOn.image_Ico_subset + theorem StrictMonoOn.image_Iio_subset + theorem StrictMonoOn.image_Ioc_subset + theorem StrictMonoOn.image_Ioi_subset + theorem StrictMonoOn.image_Ioo_subset + theorem StrictMonoOn.mapsTo_Ico + theorem StrictMonoOn.mapsTo_Iio + theorem StrictMonoOn.mapsTo_Ioc + theorem StrictMonoOn.mapsTo_Ioi + theorem StrictMonoOn.mapsTo_Ioo Modified Mathlib/Data/Set/Intervals/UnorderedInterval.lean + theorem Antitone.image_uIcc_subset + theorem Antitone.mapsTo_uIcc + theorem AntitoneOn.image_uIcc_subset + theorem AntitoneOn.mapsTo_uIcc + theorem Monotone.image_uIcc_subset + theorem Monotone.mapsTo_uIcc + theorem MonotoneOn.image_uIcc_subset + theorem MonotoneOn.mapsTo_uIcc Modified Mathlib/Order/Lattice.lean + theorem AntitoneOn.map_inf + theorem AntitoneOn.map_sup + theorem MonotoneOn.map_inf + theorem MonotoneOn.map_sup 2023-09-28 08:57:05 b86770a feat: add Finsupp.prod/sum_eq_single (#7349) In several places, we unfold `Finsupp.sum` just to use `Finset.sum_eq_single`; this adds the missing lemma. ESTIMATED CHANGES Modified Mathlib/Algebra/BigOperators/Finsupp.lean + theorem Finsupp.prod_eq_single Modified Mathlib/Data/Finsupp/Basic.lean Modified Mathlib/Data/Finsupp/Multiset.lean Modified Mathlib/Data/Polynomial/Coeff.lean Modified Mathlib/LinearAlgebra/Dual.lean Modified Mathlib/LinearAlgebra/Finsupp.lean 2023-09-28 08:35:04 2f22e29 feat: LocallyConstant.piecewise' (#6589) We define a variant of `LocallyConstant.piecewise` which defines a locally constant map on a subset given locally constant maps on two closed subsets covering it, that agree on the intersection. - [x] depends on: #6616 ESTIMATED CHANGES Modified Mathlib/Topology/LocallyConstant/Basic.lean + theorem LocallyConstant.piecewise'_apply_left + theorem LocallyConstant.piecewise'_apply_right + theorem LocallyConstant.piecewise_apply_left + theorem LocallyConstant.piecewise_apply_right 2023-09-28 05:09:39 51e00c7 feat: Extra `sups` lemmas (#7382) ESTIMATED CHANGES Modified Mathlib/Data/Finset/Sups.lean + theorem Finset.filter_infs_le + theorem Finset.filter_sups_le + theorem Finset.image_infs + theorem Finset.image_sups + theorem Finset.infs_self + theorem Finset.infs_self_subset + theorem Finset.map_infs + theorem Finset.map_sups + theorem Finset.powerset_inter + theorem Finset.powerset_union + theorem Finset.subset_infs_self + theorem Finset.subset_sups_self + theorem Finset.sups_eq_self + theorem Finset.sups_subset_self Modified Mathlib/Data/Set/Sups.lean + theorem Set.image_infs + theorem Set.image_sups + theorem Set.infs_self + theorem Set.infs_self_subset + theorem Set.sep_infs_le + theorem Set.sep_sups_le + theorem Set.subset_infs_self + theorem Set.subset_sups_self + theorem Set.sups_eq_self + theorem Set.sups_subset_self Modified Mathlib/Order/SupClosed.lean + theorem IsLowerSet.infClosed + theorem IsUpperSet.supClosed Modified Mathlib/Order/UpperLower/Basic.lean 2023-09-27 23:08:24 926c0c5 fix: add `symm_map_mul` to fix simp issue. (#7407) [Zulip thread](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/!4.234183.20.60simps.60.20maximum.20recursion.20depth) ESTIMATED CHANGES Modified Mathlib/Algebra/Hom/Equiv/Basic.lean + theorem MulEquiv.symm_map_mul 2023-09-27 23:08:23 d07cdbe feat: Lemmas about integrals of bounded continuous functions. (#7222) This PR adds some lemmas about integrals of bounded continuous functions. The lemmas are collected in a separate file. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/MeasureTheory/Integral/BoundedContinuousFunction.lean + theorem BoundedContinuousFunction.integrable + theorem BoundedContinuousFunction.integrable_of_nnreal + theorem BoundedContinuousFunction.integral_add_const + theorem BoundedContinuousFunction.integral_const_sub + theorem BoundedContinuousFunction.integral_eq_integral_nnrealPart_sub + theorem BoundedContinuousFunction.isBounded_range_integral + theorem BoundedContinuousFunction.lintegral_lt_top_of_nnreal + theorem BoundedContinuousFunction.lintegral_nnnorm_le + theorem BoundedContinuousFunction.lintegral_of_real_lt_top + theorem BoundedContinuousFunction.measurable_coe_ennreal_comp + theorem BoundedContinuousFunction.norm_integral_le_mul_norm + theorem BoundedContinuousFunction.norm_integral_le_norm + theorem BoundedContinuousFunction.toReal_lintegral_coe_eq_integral Modified Mathlib/MeasureTheory/Measure/FiniteMeasure.lean - theorem BoundedContinuousFunction.NNReal.coe_ennreal_comp_measurable - theorem BoundedContinuousFunction.NNReal.toReal_lintegral_eq_integral - theorem BoundedContinuousFunction.integral_eq_integral_nnrealPart_sub - theorem MeasureTheory.FiniteMeasure.integrable_of_boundedContinuous_to_nnreal - theorem MeasureTheory.FiniteMeasure.integrable_of_boundedContinuous_to_real - theorem MeasureTheory.FiniteMeasure.lintegral_lt_top_of_boundedContinuous_to_real - theorem MeasureTheory.lintegral_lt_top_of_boundedContinuous_to_nnreal Modified Mathlib/MeasureTheory/Measure/Portmanteau.lean Modified Mathlib/Topology/ContinuousFunction/Bounded.lean + theorem BoundedContinuousFunction.NNReal.upper_bound - theorem BoundedContinuousFunction.Nnreal.upper_bound + theorem BoundedContinuousFunction.add_norm_nonneg + theorem BoundedContinuousFunction.apply_le_norm + theorem BoundedContinuousFunction.neg_norm_le_apply + theorem BoundedContinuousFunction.norm_sub_nonneg 2023-09-27 21:48:16 4158495 style: fix multiple spaces before colon (#7411) Purely cosmetic PR ESTIMATED CHANGES Modified Mathlib/Algebra/Homology/HomotopyCategory/HomComplex.lean +/- theorem CochainComplex.HomComplex.Cochain.d_comp_ofHom_v +/- theorem CochainComplex.HomComplex.Cochain.d_comp_ofHoms_v Modified Mathlib/Algebra/Tropical/Lattice.lean Modified Mathlib/Analysis/Normed/Group/HomCompletion.lean Modified Mathlib/CategoryTheory/Abelian/NonPreadditive.lean Modified Mathlib/CategoryTheory/Bicategory/Free.lean Modified Mathlib/CategoryTheory/Category/Factorisation.lean Modified Mathlib/CategoryTheory/Iso.lean Modified Mathlib/CategoryTheory/Over.lean Modified Mathlib/CategoryTheory/Shift/Basic.lean Modified Mathlib/CategoryTheory/Shift/Localization.lean Modified Mathlib/CategoryTheory/Whiskering.lean Modified Mathlib/Data/Finset/Pointwise.lean +/- theorem Finset.coe_pow Modified Mathlib/Data/Nat/GCD/Basic.lean Modified Mathlib/FieldTheory/Finite/GaloisField.lean +/- def GaloisField Modified Mathlib/GroupTheory/FreeGroup/Basic.lean Modified Mathlib/LinearAlgebra/DFinsupp.lean Modified Mathlib/MeasureTheory/Group/Action.lean Modified Mathlib/Order/Basic.lean Modified Mathlib/Order/Booleanisation.lean Modified Mathlib/Order/Hom/CompleteLattice.lean +/- theorem sSupHom.toFun_eq_coe Modified Mathlib/RingTheory/Ideal/Operations.lean Modified Mathlib/RingTheory/Localization/Basic.lean +/- theorem IsLocalization.smul_mk' Modified Mathlib/SetTheory/Lists.lean Modified Mathlib/Tactic/Explode.lean Modified Mathlib/Tactic/Simps/Basic.lean Modified Mathlib/Testing/SlimCheck/Testable.lean Modified Mathlib/Topology/Algebra/ValuedField.lean Modified Mathlib/Topology/Order/Category/AlexDisc.lean +/- def alexDiscEquivPreord Modified test/Simps.lean 2023-09-27 21:48:15 0dbbded refactor(RingTheory/TensorProduct): simplify assumptions (#7403) Rather than showing agreement on all the scalars in `algHomOfLinearMapTensorProduct`, it suffices to show agreement on `1`. This also replaces a few downstream proofs with `rfl` in order to make them eligible for `dsimp`. These results were always true by `rfl`, but it was easier to make this change than fix the old proofs. ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/CliffordAlgebra/BaseChange.lean Modified Mathlib/LinearAlgebra/TensorProduct/Opposite.lean Modified Mathlib/RingTheory/MatrixAlgebra.lean Modified Mathlib/RingTheory/PolynomialAlgebra.lean - theorem PolyEquivTensor.toFunLinear_algebraMap_tmul_one + theorem PolyEquivTensor.toFunLinear_one_tmul_one Modified Mathlib/RingTheory/TensorProduct.lean +/- theorem Algebra.TensorProduct.algEquivOfLinearEquivTensorProduct_apply +/- theorem Algebra.TensorProduct.algEquivOfLinearEquivTripleTensorProduct_apply +/- theorem Algebra.TensorProduct.algHomOfLinearMapTensorProduct_apply +/- theorem Algebra.TensorProduct.assoc_aux_2 2023-09-27 20:27:46 3ac819d feat: Miscellaneous `Finset` lemmas (#7379) ESTIMATED CHANGES Modified Mathlib/Combinatorics/SetFamily/Compression/Down.lean Modified Mathlib/Combinatorics/SetFamily/Compression/UV.lean Modified Mathlib/Data/Finset/Basic.lean + theorem Finset.erase_eq_iff_eq_insert + theorem Finset.insert_erase_invOn + theorem Finset.insert_sdiff_cancel + theorem Finset.symmDiff_eq_empty + theorem Finset.symmDiff_nonempty Modified Mathlib/Data/Finset/Card.lean + theorem Finset.card_sdiff_comm Modified Mathlib/Data/Finset/Image.lean + theorem Finset.image_inj + theorem Finset.image_injective + theorem Finset.image_ssubset_image Modified Mathlib/Data/Finset/Slice.lean - theorem Finset.Set.Sized.card_le + theorem Set.Sized.card_le + theorem Set.sized_empty + theorem Set.sized_singleton 2023-09-27 20:27:45 c8320ac feat: When the sum of a nonneg function is zero (#7372) Also fix implicitness of arguments to `Finset.sum_singleton`. ESTIMATED CHANGES Modified Mathlib/Algebra/BigOperators/Basic.lean + theorem Finset.prod_powersetLen +/- theorem Finset.prod_singleton Modified Mathlib/Algebra/BigOperators/Order.lean + theorem Fintype.one_le_prod + theorem Fintype.one_lt_prod + theorem Fintype.one_lt_prod_iff_of_one_le + theorem Fintype.prod_eq_one_iff_of_le_one + theorem Fintype.prod_eq_one_iff_of_one_le + theorem Fintype.prod_le_one + theorem Fintype.prod_lt_one + theorem Fintype.prod_lt_one_iff_of_le_one +/- theorem Fintype.prod_mono' +/- theorem Fintype.prod_strictMono' Modified Mathlib/Analysis/Convex/Combination.lean Modified Mathlib/Data/Nat/Digits.lean Modified Mathlib/NumberTheory/Divisors.lean Modified Mathlib/Topology/Algebra/InfiniteSum/Order.lean 2023-09-27 19:04:39 fad287b feat: `Finset α` has decidable `≤` (#7377) This is surprisingly missing. Also correct the porting note: `decidableDforallFinset` could not have possibly been picked up when looking for `Decidable (s ⊂ t)`. ESTIMATED CHANGES Modified Mathlib/Data/Finset/Basic.lean 2023-09-27 17:02:00 61a9412 feat(RingTheory/TensorProduct): non-unital algebras (#7106) Mathlib already knows that the tensor product of two rings is a ring. This splits the instance into multiple intermediate pieces so as to conclude analogous results for non-unital and non-associative rings. ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/CliffordAlgebra/BaseChange.lean Modified Mathlib/RingTheory/Kaehler.lean Modified Mathlib/RingTheory/TensorProduct.lean 2023-09-27 15:18:25 af392cb fix: 100.yaml was missing a line (#7402) ESTIMATED CHANGES Modified docs/100.yaml 2023-09-27 15:18:24 b42cde1 feat(Probability/Kernel): add simp lemmas about the zero kernel (#7381) ESTIMATED CHANGES Modified Mathlib/Probability/Kernel/Composition.lean + theorem ProbabilityTheory.kernel.comap_zero + theorem ProbabilityTheory.kernel.compProd_zero_left + theorem ProbabilityTheory.kernel.compProd_zero_right + theorem ProbabilityTheory.kernel.map_zero 2023-09-27 14:09:47 2b8f139 feat(NumberTheory.NumberField.Units): proof of Dirichlet's unit theorem (#5960) We prove Dirichlet's unit theorem. More precisely, the main results are: ```lean def basisModTorsion : Basis (Fin (Units.rank K)) ℤ (Additive ((𝓞 K)ˣ ⧸ (torsion K))) ``` where `Units.rank := Fintype.card (InfinitePlace K) - 1` and ```lean theorem exist_unique_eq_mul_prod (x : (𝓞 K)ˣ) : ∃! (ζ : torsion K) (e : Fin (Units.rank K) → ℤ), x = ζ * ∏ i, (fundSystem K i) ^ (e i) ``` where `fundSystem : Fin (rank K) → (𝓞 K)ˣ` is a fundamental system of units. The exponents in `exist_unique_eq_mul_prod` can be computed via the following result: ```lean theorem fun_eq_repr {x ζ : (𝓞 K)ˣ} {f : Fin (rank K) → ℤ} (hζ : ζ ∈ torsion K) (h : x = ζ * ∏ i, (fundSystem K i) ^ (f i)) : f = (basisModTorsion K).repr (Additive.ofMul ↑x) ``` ESTIMATED CHANGES Modified Mathlib/GroupTheory/QuotientGroup.lean + theorem QuotientGroup.mk_prod Modified Mathlib/NumberTheory/NumberField/CanonicalEmbedding.lean - theorem NumberField.mixedEmbedding.convexBodyLtFactor_lt_pos + theorem NumberField.mixedEmbedding.convexBodyLtFactor_pos Modified Mathlib/NumberTheory/NumberField/Units.lean + def NumberField.Units.basisModTorsion + theorem NumberField.Units.dirichletUnitTheorem.exists_unit + def NumberField.Units.dirichletUnitTheorem.logEmbedding + theorem NumberField.Units.dirichletUnitTheorem.logEmbedding_component + theorem NumberField.Units.dirichletUnitTheorem.logEmbedding_component_le + theorem NumberField.Units.dirichletUnitTheorem.logEmbedding_eq_zero_iff + theorem NumberField.Units.dirichletUnitTheorem.log_le_of_logEmbedding_le + theorem NumberField.Units.dirichletUnitTheorem.mult_log_place_eq_zero + def NumberField.Units.dirichletUnitTheorem.seq + theorem NumberField.Units.dirichletUnitTheorem.seq_decreasing + theorem NumberField.Units.dirichletUnitTheorem.seq_ne_zero + theorem NumberField.Units.dirichletUnitTheorem.seq_next + theorem NumberField.Units.dirichletUnitTheorem.seq_norm_le + theorem NumberField.Units.dirichletUnitTheorem.seq_norm_ne_zero + theorem NumberField.Units.dirichletUnitTheorem.sum_logEmbedding_component + theorem NumberField.Units.dirichletUnitTheorem.unitLattice_inter_ball_finite + theorem NumberField.Units.dirichletUnitTheorem.unitLattice_span_eq_top + def NumberField.Units.dirichletUnitTheorem.w₀ + theorem NumberField.Units.exist_unique_eq_mul_prod + theorem NumberField.Units.fun_eq_repr + def NumberField.Units.fundSystem + def NumberField.Units.rank + theorem NumberField.Units.rank_modTorsion +/- theorem NumberField.Units.rootsOfUnity_eq_one + def NumberField.Units.unitLatticeEquiv + theorem NumberField.Units.unitLattice_rank + theorem NumberField.isUnit_iff_norm - theorem isUnit_iff_norm 2023-09-27 08:12:49 aa7c8c3 feat: Embed a gen. Bool. alg. into a Bool. alg. (#7371) This is useful to prove that Boolean algebra results not mentioning `compl` and `top` also hold in generalised Boolean algebras. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Order/Booleanisation.lean + def Booleanisation.comp + theorem Booleanisation.comp_bot + theorem Booleanisation.comp_inf_comp + theorem Booleanisation.comp_inf_lift + theorem Booleanisation.comp_le_comp + theorem Booleanisation.comp_lt_comp + theorem Booleanisation.comp_sdiff_comp + theorem Booleanisation.comp_sdiff_lift + theorem Booleanisation.comp_sup_comp + theorem Booleanisation.comp_sup_lift + theorem Booleanisation.compl_comp + theorem Booleanisation.compl_lift + def Booleanisation.lift + def Booleanisation.liftLatticeHom + theorem Booleanisation.liftLatticeHom_injective + theorem Booleanisation.lift_bot + theorem Booleanisation.lift_inf_comp + theorem Booleanisation.lift_inf_lift + theorem Booleanisation.lift_le_comp + theorem Booleanisation.lift_le_lift + theorem Booleanisation.lift_lt_comp + theorem Booleanisation.lift_lt_lift + theorem Booleanisation.lift_sdiff_comp + theorem Booleanisation.lift_sdiff_lift + theorem Booleanisation.lift_sup_comp + theorem Booleanisation.lift_sup_lift + theorem Booleanisation.not_comp_le_lift + theorem Booleanisation.not_comp_lt_lift + def Booleanisation 2023-09-27 06:47:17 7a2b5b8 refactor: Change `OrderBot` ext lemma to `Subsingleton` (#7376) This ext lemma had no assumption, so it can be turned into a `Subsingleton` instance. Note that in Lean 3, `subsingleton` instances were a performance concern for simp. This concern is gone in Lean 4. ESTIMATED CHANGES Modified Mathlib/Order/BoundedOrder.lean - theorem BoundedOrder.ext - theorem OrderBot.ext - theorem OrderTop.ext 2023-09-27 03:37:04 ad44c68 chore(RingTheory/TensorProduct): extra lemmas about `{nat,int}Cast` (#7391) ESTIMATED CHANGES Modified Mathlib/RingTheory/TensorProduct.lean + theorem Algebra.TensorProduct.intCast_def' + theorem Algebra.TensorProduct.natCast_def' 2023-09-27 03:37:03 2c8d12c chore: bump to std#260 (#7134) ESTIMATED CHANGES Modified Mathlib/Combinatorics/Composition.lean Modified Mathlib/Data/List/Basic.lean - theorem List.dropLast_cons_cons - theorem List.enumFrom_cons - theorem List.enumFrom_nil - theorem List.find?_nil - theorem List.foldlM_cons - theorem List.foldlM_nil - theorem List.foldl_cons - theorem List.foldl_nil - theorem List.foldr_cons - theorem List.foldr_nil - theorem List.intersperse_nil - theorem List.take_zero Modified Mathlib/Data/List/Chain.lean Modified Mathlib/Data/List/EditDistance/Defs.lean Modified Mathlib/Data/List/Indexes.lean Modified Mathlib/Data/List/Zip.lean - theorem List.length_zip - theorem List.unzip_cons - theorem List.unzip_nil - theorem List.zipWith_cons_cons - theorem List.zipWith_nil_left - theorem List.zipWith_nil_right - theorem List.zip_cons_cons - theorem List.zip_nil_left - theorem List.zip_nil_right Modified Mathlib/Data/UnionFind.lean Modified Mathlib/Data/Vector/Basic.lean Modified lake-manifest.json 2023-09-27 02:09:58 bb43800 chore: add more pp_dot attributes (#7288) ESTIMATED CHANGES Modified Mathlib/Init/Logic.lean Modified Mathlib/Logic/Equiv/Defs.lean Modified test/Explode.lean Modified test/LibrarySearch/basic.lean 2023-09-27 00:21:57 81a57fb chore: bump Mathlib dependencies (#7393) ESTIMATED CHANGES Modified lake-manifest.json 2023-09-26 17:40:28 26b2588 feat: Port positivity extensions for `Nat.ceil`, `Int.ceil`, `Int.floor` (#7089) ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Floor.lean + def Mathlib.Meta.Positivity.evalIntCeil + def Mathlib.Meta.Positivity.evalIntFloor + def Mathlib.Meta.Positivity.evalNatCeil Modified test/positivity.lean 2023-09-26 17:18:42 0984a59 feat: super factorial written as product (#6806) ESTIMATED CHANGES Modified Mathlib/Data/Nat/Factorial/SuperFactorial.lean + theorem Nat.prod_Icc_factorial + theorem Nat.prod_range_factorial_succ 2023-09-26 14:05:30 5c902e0 feat: locally Lipschitz maps (#7314) Define locally Lipschitz maps and show their basic properties. In particular, they are continuous and stable under composition and products. As an application, we conclude that C¹ maps are locally Lipschitz. ESTIMATED CHANGES Modified Mathlib/Analysis/Calculus/ContDiff.lean + theorem ContDiff.locallyLipschitz Modified Mathlib/Topology/MetricSpace/Lipschitz.lean + theorem LocallyLipschitz.const_max + theorem LocallyLipschitz.const_min + theorem LocallyLipschitz.max_const + theorem LocallyLipschitz.min_const + def LocallyLipschitz 2023-09-26 13:13:24 1bda3b4 feat(Topology/SubsetProperties): add Inducing.isCompact_preimage (#7290) Simple generalisation of `ClosedEmbedding.isCompact_preimage`; its injectivity hypothesis was never used. ESTIMATED CHANGES Modified Mathlib/Topology/SubsetProperties.lean +/- theorem ClosedEmbedding.isCompact_preimage + theorem Inducing.isCompact_preimage 2023-09-26 13:13:23 c881294 feat: strong law of large numbers for vector-valued random variables (#7218) We already have the strong law of large numbers for real-valued integrable random variables. We generalize it to general vector-valued integrable random variables. This does not require any second-countability assumptions as integrable functions can by definition be approximated by simple functions, for which the result is deduced from the one-dimensional one. Along the way, we extend a few lemmas in the library from the real case to the vector case, and remove unneeded second-countability assumptions. ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Function/SimpleFunc.lean + theorem Measurable.add_simpleFunc + theorem Measurable.simpleFunc_add Modified Mathlib/MeasureTheory/Function/StronglyMeasurable/Basic.lean + theorem Measurable.add_stronglyMeasurable + theorem Measurable.stronglyMeasurable_add + theorem Measurable.sub_stronglyMeasurable Modified Mathlib/MeasureTheory/Function/UniformIntegrable.lean +/- theorem MeasureTheory.uniformIntegrable_average + theorem MeasureTheory.uniformIntegrable_average_real Modified Mathlib/MeasureTheory/Integral/Bochner.lean + theorem MeasureTheory.tendsto_integral_norm_approxOn_sub Modified Mathlib/Probability/IdentDistrib.lean + theorem MeasureTheory.AEMeasurable.identDistrib_mk + theorem MeasureTheory.AEStronglyMeasurable.identDistrib_mk Modified Mathlib/Probability/StrongLaw.lean +/- theorem ProbabilityTheory.strong_law_Lp +/- theorem ProbabilityTheory.strong_law_ae + theorem ProbabilityTheory.strong_law_ae_of_measurable + theorem ProbabilityTheory.strong_law_ae_real + theorem ProbabilityTheory.strong_law_ae_simpleFunc_comp 2023-09-26 11:46:27 4d91cd8 feat: lemmas about finset (#7337) From the marginal project ESTIMATED CHANGES Modified Mathlib/Algebra/BigOperators/Option.lean + theorem Finset.mul_prod_eq_prod_insertNone Modified Mathlib/Data/Finset/Card.lean + theorem Finset.cast_card_erase_of_mem Modified Mathlib/Data/Fintype/Basic.lean + theorem Finset.image_univ_equiv + theorem Finset.insert_compl_insert Modified Mathlib/Data/Fintype/Card.lean + theorem card_add_card_compl + theorem card_compl_add_card 2023-09-26 11:46:26 c332153 feat: eigenvalues of AᴴA and AAᴴ are non-negative (#7312) The PR provides two lemmas showing that the eigenvalues of $A\^HA$ and $AA^H$ are non-negative: - `eigenvalues_conjTranspose_mul_self_nonneg`: $$\text{eig}(A\^H A) \geq 0 $$ - `eigenvalues_self_mul_conjTranspose_nonneg`: $$\text{eig}(A A\^H) \geq 0 $$ This was suggested by @Vierkantor in PR #6042 ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/Matrix/PosDef.lean + theorem Matrix.eigenvalues_conjTranspose_mul_self_nonneg + theorem Matrix.eigenvalues_self_mul_conjTranspose_nonneg 2023-09-26 11:46:25 d84c8d2 feat: Sigma-algebra generated by a singleton (#2513) Match https://github.com/leanprover-community/mathlib/pull/18506 ESTIMATED CHANGES Modified Mathlib/Data/Set/Basic.lean + theorem Prop.compl_singleton Modified Mathlib/Data/Set/Image.lean + theorem Set.preimage_singleton_false + theorem Set.preimage_singleton_true Modified Mathlib/Init/Function.lean + theorem Function.comp_def Modified Mathlib/MeasureTheory/MeasurableSpace/Basic.lean + theorem MeasurableEmbedding.comap_eq + theorem MeasurableEmbedding.iff_comap_eq + theorem MeasurableEquiv.map_eq + def MeasurableEquiv.ofInvolutive + theorem MeasurableEquiv.ofInvolutive_apply + theorem MeasurableEquiv.ofInvolutive_symm + theorem MeasurableSpace.comap_compl + theorem MeasurableSpace.comap_const + theorem MeasurableSpace.comap_not + theorem MeasurableSpace.generateFrom_singleton + theorem MeasurableSpace.map_const + theorem MeasurableSpace.map_def + theorem measurableSet_setOf + theorem measurable_mem + theorem measurable_to_prop Modified Mathlib/MeasureTheory/MeasurableSpace/Defs.lean 2023-09-26 10:21:49 b2f9c24 chore: bump toolchain to v4.2.0-rc1 (#7370) This rolls in the changed from #6928. ESTIMATED CHANGES Modified ImportGraph/Main.lean Modified Mathlib/Algebra/Module/Injective.lean Modified Mathlib/AlgebraicGeometry/Morphisms/RingHomProperties.lean Modified Mathlib/Analysis/Fourier/FourierTransform.lean Modified Mathlib/Analysis/NormedSpace/PiLp.lean Modified Mathlib/CategoryTheory/Limits/Yoneda.lean Modified Mathlib/Computability/TMToPartrec.lean Modified Mathlib/Data/Finset/NoncommProd.lean Modified Mathlib/NumberTheory/KummerDedekind.lean Modified lean-toolchain 2023-09-26 09:02:00 bf1ceb8 feat: lemmas about divisibility, mostly related to nilpotency (#7355) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/BigOperators/Multiset/Basic.lean Modified Mathlib/Algebra/BigOperators/Ring.lean +/- theorem Finset.dvd_sum Modified Mathlib/Algebra/EuclideanDomain/Basic.lean Modified Mathlib/Algebra/GroupPower/Ring.lean + theorem neg_pow' Modified Mathlib/Algebra/Order/Ring/Abs.lean Renamed Mathlib/Algebra/Ring/Divisibility.lean to Mathlib/Algebra/Ring/Divisibility/Basic.lean Added Mathlib/Algebra/Ring/Divisibility/Lemmas.lean + theorem Commute.add_pow_dvd_pow_of_pow_eq_zero_left + theorem Commute.add_pow_dvd_pow_of_pow_eq_zero_right + theorem Commute.pow_dvd_add_pow_of_pow_eq_zero_left + theorem Commute.pow_dvd_add_pow_of_pow_eq_zero_right + theorem Commute.pow_dvd_pow_of_add_pow_eq_zero + theorem Commute.pow_dvd_pow_of_sub_pow_eq_zero + theorem Commute.pow_dvd_sub_pow_of_pow_eq_zero_left + theorem Commute.pow_dvd_sub_pow_of_pow_eq_zero_right + theorem dvd_nsmul_of_dvd + theorem dvd_smul_of_dvd + theorem dvd_zsmul_of_dvd Modified Mathlib/Data/Int/Order/Basic.lean Modified Mathlib/Data/List/BigOperators/Lemmas.lean +/- theorem List.dvd_sum Modified Mathlib/Data/Nat/Order/Lemmas.lean Modified Mathlib/RingTheory/Coprime/Basic.lean 2023-09-26 08:43:02 f203f2e chore: bump toolchain to v4.1.0 (#7369) ESTIMATED CHANGES Modified lean-toolchain 2023-09-25 17:31:14 0fd376a chore: add @mattrobball to maintainer list (#7358) Not sure how aspirational the claims of expertise can be. ESTIMATED CHANGES Modified README.md 2023-09-25 14:23:45 448e347 feat: SameCycle.equivalence and SameCycle.setoid (#7353) I'm exploring @kmill's combinatorial maps work and these two definitions are part of it: https://github.com/kmill/lean-graphs/blob/bd3139daf81c0f41ce5ade951195858cdf038bd2/src/myequiv.lean#L72-L76 ESTIMATED CHANGES Modified Mathlib/GroupTheory/Perm/Cycle/Basic.lean + theorem Equiv.Perm.SameCycle.equivalence + def Equiv.Perm.SameCycle.setoid 2023-09-25 14:23:43 8f4cf33 feat(RingTheory/Nilpotent): add lemma on powers of nilpotents (#7340) add lemma saying that powers of nilpotent elements are nilpotent. ESTIMATED CHANGES Modified Mathlib/RingTheory/Nilpotent.lean + theorem IsNilpotent.pow + theorem IsNilpotent.pow_of_pos 2023-09-25 13:30:46 b915222 feat(Order/WithBot): add some lemmas (#6275) The `WithTop` version of the last 3 lemmas already exists. ESTIMATED CHANGES Modified Mathlib/Data/Polynomial/Degree/Definitions.lean Modified Mathlib/Order/GaloisConnection.lean Modified Mathlib/Order/WithBot.lean - theorem WithBot.unbot'_bot_le_iff + theorem WithBot.unbot'_le_iff +/- theorem WithBot.unbot'_lt_iff + theorem WithTop.coe_untop'_le + theorem WithTop.le_untop'_iff + theorem WithTop.lt_untop'_iff 2023-09-25 09:45:27 fe2c350 chore: attempt to fix broken links in docs (#7350) For example, the page of [`Mathlib.Data.List.BigOperators.Basic`](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Data/List/BigOperators/Basic.html) is trying to link to [`Mathlib.Data.List.Defs`](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Data/List/Defs.html) using `./defs` but that becomes `../../../../././defs` and a broken link. ESTIMATED CHANGES Modified Mathlib/Algebra/Star/StarAlgHom.lean Modified Mathlib/Analysis/NormedSpace/Exponential.lean Modified Mathlib/Data/List/BigOperators/Basic.lean 2023-09-25 05:21:56 6f7f5f3 feat(OperatorNorm,Multilinear): add lemmas, golf (#7302) ### `Analysis/NormedSpace/OperatorNorm` * Add `ContinuousLinearMap.isLeast_op_norm`, `ContinuousLinearMap.op_nnnorm_le_iff`, and `ContinuousLinearMap.isLeast_op_nnnorm`. * Golf some proofs. * Drop `RingHomIsometric` assumption here and there. ### `Analysis/NormedSpace/Multilinear` * Add `ContinuousMultilinearMap.isLeast_op_norm`, `ContinuousMultilinearMap.isLeast_op_nnnorm`, `ContinuousMultilinearMap.le_mul_prod_of_le_op_norm_of_le`, `ContinuousMultilinearMap.op_norm_le_iff`, `ContinuousMultilinearMap.op_nnnorm_le_iff`, `ContinuousMultilinearMap.op_nnnorm_prod`, `ContinuousMultilinearMap.op_nnnorm_pi`. * Golf/move some proofs. * Change implicit/explicit arguments in some lemmas. ESTIMATED CHANGES Modified Mathlib/Analysis/NormedSpace/Multilinear.lean + theorem ContinuousMultilinearMap.isLeast_op_nnnorm + theorem ContinuousMultilinearMap.isLeast_op_norm + theorem ContinuousMultilinearMap.le_mul_prod_of_le_op_norm_of_le +/- theorem ContinuousMultilinearMap.le_op_norm +/- theorem ContinuousMultilinearMap.le_op_norm_mul_pow_card_of_le - theorem ContinuousMultilinearMap.norm_pi + theorem ContinuousMultilinearMap.op_nnnorm_le_iff + theorem ContinuousMultilinearMap.op_nnnorm_pi + theorem ContinuousMultilinearMap.op_nnnorm_prod + theorem ContinuousMultilinearMap.op_norm_le_iff + theorem ContinuousMultilinearMap.op_norm_pi +/- theorem ContinuousMultilinearMap.op_norm_zero_iff Modified Mathlib/Analysis/NormedSpace/OperatorNorm.lean + theorem ContinuousLinearMap.isLeast_op_nnnorm + theorem ContinuousLinearMap.isLeast_op_norm +/- theorem ContinuousLinearMap.le_op_norm + theorem ContinuousLinearMap.op_nnnorm_le_iff +/- theorem ContinuousLinearMap.op_norm_nonneg 2023-09-25 00:55:30 2517504 chore: add IsROrC.toDecidableEq (#7315) We already have noncomputable `DecidableEq` instances for `Real` and `Complex`; putting them here too reduces friction in code generalized to `IsROrC K`. ESTIMATED CHANGES Modified Mathlib/Analysis/InnerProductSpace/Spectrum.lean Modified Mathlib/Data/IsROrC/Basic.lean Modified Mathlib/LinearAlgebra/Matrix/PosDef.lean +/- theorem Matrix.PosDef.eigenvalues_pos +/- theorem Matrix.PosSemidef.eigenvalues_nonneg Modified Mathlib/LinearAlgebra/Matrix/Spectrum.lean 2023-09-24 21:00:38 ee7626c chore: tidy various files (#7343) ESTIMATED CHANGES Modified Mathlib/Algebra/Order/LatticeGroup.lean Modified Mathlib/Algebra/Order/Monoid/NatCast.lean Modified Mathlib/Algebra/Ring/Basic.lean Modified Mathlib/Analysis/Calculus/ContDiff.lean Modified Mathlib/Data/Countable/Defs.lean Modified Mathlib/Data/List/Basic.lean Modified Mathlib/Data/MvPolynomial/Basic.lean Modified Mathlib/Data/Nat/ModEq.lean Modified Mathlib/Logic/Relator.lean Modified Mathlib/MeasureTheory/Integral/SetIntegral.lean Modified Mathlib/MeasureTheory/Measure/OuterMeasure.lean Modified Mathlib/Order/LocallyFinite.lean Modified Mathlib/Tactic/Linarith/Lemmas.lean 2023-09-24 20:16:20 7916792 refactor: Create FreeGroup folder in GroupTheory (#7334) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/GroupTheory/CoprodI.lean Modified Mathlib/GroupTheory/FreeAbelianGroup.lean Modified Mathlib/GroupTheory/FreeAbelianGroupFinsupp.lean Renamed Mathlib/GroupTheory/FreeGroup.lean to Mathlib/GroupTheory/FreeGroup/Basic.lean Renamed Mathlib/GroupTheory/IsFreeGroup.lean to Mathlib/GroupTheory/FreeGroup/IsFreeGroup.lean Renamed Mathlib/GroupTheory/NielsenSchreier.lean to Mathlib/GroupTheory/FreeGroup/NielsenSchreier.lean Modified Mathlib/GroupTheory/PresentedGroup.lean 2023-09-24 19:47:54 6a6a3a8 refactor(Topology/Order): Rename order topologies (#7310) Rename the Upper/Lower UpperSet/LowerSet topologies to the conventions suggested by @YaelDillies in https://github.com/leanprover-community/mathlib4/pull/2508#discussion_r1306711450 ESTIMATED CHANGES Modified Mathlib/Topology/Order/Category/AlexDisc.lean Modified Mathlib/Topology/Order/LowerUpperTopology.lean - theorem LowerTopology.closure_singleton - theorem LowerTopology.continuous_of_Ici - theorem LowerTopology.isClosed_upperClosure - theorem LowerTopology.isLowerSet_of_isOpen - theorem LowerTopology.isOpen_iff_generate_Ici_compl - theorem LowerTopology.isUpperSet_of_isClosed - def LowerTopology.lowerBasis - theorem LowerTopology.topology_eq - def LowerTopology.withLowerTopologyHomeomorph + def Topology.IsLower.WithLowerHomeomorph + theorem Topology.IsLower.closure_singleton + theorem Topology.IsLower.continuous_of_Ici + theorem Topology.IsLower.isClosed_upperClosure + theorem Topology.IsLower.isLowerSet_of_isOpen + theorem Topology.IsLower.isOpen_iff_generate_Ici_compl + theorem Topology.IsLower.isUpperSet_of_isClosed + def Topology.IsLower.lowerBasis + theorem Topology.IsLower.topology_eq + def Topology.IsUpper.WithUpperHomeomorph + theorem Topology.IsUpper.closure_singleton + theorem Topology.IsUpper.continuous_of_Iic + theorem Topology.IsUpper.isClosed_lowerClosure + theorem Topology.IsUpper.isLowerSet_of_isClosed + theorem Topology.IsUpper.isOpen_iff_generate_Iic_compl + theorem Topology.IsUpper.isUpperSet_of_isOpen + theorem Topology.IsUpper.topology_eq + def Topology.IsUpper.upperBasis + theorem Topology.WithLower.isOpen_def + theorem Topology.WithLower.isOpen_preimage_ofLower + def Topology.WithLower.ofLower + theorem Topology.WithLower.ofLower_inj + theorem Topology.WithLower.ofLower_toLower + theorem Topology.WithLower.of_WithLower_symm_eq + def Topology.WithLower.toDualHomeomorph + def Topology.WithLower.toLower + theorem Topology.WithLower.toLower_inj + theorem Topology.WithLower.toLower_ofLower + theorem Topology.WithLower.to_WithLower_symm_eq + def Topology.WithLower + theorem Topology.WithUpper.isOpen_def + theorem Topology.WithUpper.isOpen_preimage_ofUpper + def Topology.WithUpper.ofUpper + theorem Topology.WithUpper.ofUpper_inj + theorem Topology.WithUpper.ofUpper_toUpper + theorem Topology.WithUpper.of_WithUpper_symm_eq + def Topology.WithUpper.toUpper + theorem Topology.WithUpper.toUpper_inj + theorem Topology.WithUpper.toUpper_ofUpper + theorem Topology.WithUpper.to_WithUpper_symm_eq + def Topology.WithUpper + theorem Topology.isLower_orderDual + theorem Topology.isUpper_orderDual + def Topology.lower + def Topology.upper - theorem UpperTopology.closure_singleton - theorem UpperTopology.continuous_of_Iic - theorem UpperTopology.isClosed_lowerClosure - theorem UpperTopology.isLowerSet_of_isClosed - theorem UpperTopology.isOpen_iff_generate_Iic_compl - theorem UpperTopology.isUpperSet_of_isOpen - theorem UpperTopology.topology_eq - def UpperTopology.upperBasis - def UpperTopology.withUpperTopologyHomeomorph - theorem WithLowerTopology.isOpen_def - theorem WithLowerTopology.isOpen_preimage_ofLower - def WithLowerTopology.ofLower - theorem WithLowerTopology.ofLower_inj - theorem WithLowerTopology.ofLower_toLower - theorem WithLowerTopology.of_withLowerTopology_symm_eq - def WithLowerTopology.toDualHomeomorph - def WithLowerTopology.toLower - theorem WithLowerTopology.toLower_inj - theorem WithLowerTopology.toLower_ofLower - theorem WithLowerTopology.to_withLowerTopology_symm_eq - def WithLowerTopology - theorem WithUpperTopology.isOpen_def - theorem WithUpperTopology.isOpen_preimage_ofUpper - def WithUpperTopology.ofUpper - theorem WithUpperTopology.ofUpper_inj - theorem WithUpperTopology.ofUpper_toUpper - theorem WithUpperTopology.of_withUpperTopology_symm_eq - def WithUpperTopology.toUpper - theorem WithUpperTopology.toUpper_inj - theorem WithUpperTopology.toUpper_ofUpper - theorem WithUpperTopology.to_withUpperTopology_symm_eq - def WithUpperTopology - theorem lower_dual_iff_upper - theorem upper_dual_iff_lower Modified Mathlib/Topology/Order/UpperLowerSetTopology.lean - theorem LowerSetTopology.closure_eq_upperClosure - theorem LowerSetTopology.closure_singleton - theorem LowerSetTopology.isClosed_iff_isUpper - theorem LowerSetTopology.isClosed_isUpper - theorem LowerSetTopology.isOpen_iff_isLowerSet - theorem LowerSetTopology.lowerSet_LE_lower - theorem LowerSetTopology.monotone_to_lowerTopology_continuous - theorem LowerSetTopology.topology_eq - def LowerSetTopology.withLowerSetTopologyHomeomorph + def Topology.IsLowerSet.WithLowerSetHomeomorph + theorem Topology.IsLowerSet.closure_eq_upperClosure + theorem Topology.IsLowerSet.closure_singleton + theorem Topology.IsLowerSet.isClosed_iff_isUpper + theorem Topology.IsLowerSet.isOpen_iff_isLowerSet + theorem Topology.IsLowerSet.lowerSet_le_lower + theorem Topology.IsLowerSet.monotone_to_lowerTopology_continuous + theorem Topology.IsLowerSet.topology_eq + def Topology.IsUpperSet.WithUpperSetHomeomorph + theorem Topology.IsUpperSet.closure_eq_lowerClosure + theorem Topology.IsUpperSet.closure_singleton + theorem Topology.IsUpperSet.isClosed_iff_isLower + theorem Topology.IsUpperSet.isOpen_iff_isUpperSet + theorem Topology.IsUpperSet.monotone_to_upperTopology_continuous + theorem Topology.IsUpperSet.topology_eq + theorem Topology.IsUpperSet.upperSet_le_upper + theorem Topology.WithLowerSet.isLowerSet_toLowerSet_preimage + theorem Topology.WithLowerSet.isOpen_ofLowerSet_preimage + def Topology.WithLowerSet.map + theorem Topology.WithLowerSet.map_comp + theorem Topology.WithLowerSet.map_id + def Topology.WithLowerSet.ofLowerSet + def Topology.WithLowerSet.ofLowerSetOrderIso + theorem Topology.WithLowerSet.ofLowerSet_inj + theorem Topology.WithLowerSet.ofLowerSet_le_iff + theorem Topology.WithLowerSet.ofLowerSet_le_ofLowerSet + theorem Topology.WithLowerSet.ofLowerSet_toLowerSet + theorem Topology.WithLowerSet.of_WithLowerSet_symm_eq + def Topology.WithLowerSet.toLowerSet + def Topology.WithLowerSet.toLowerSetOrderIso + theorem Topology.WithLowerSet.toLowerSet_inj + theorem Topology.WithLowerSet.toLowerSet_le_iff + theorem Topology.WithLowerSet.toLowerSet_ofLowerSet + theorem Topology.WithLowerSet.toLowerSet_specializes_toLowerSet + theorem Topology.WithLowerSet.to_WithLowerSet_symm_eq + def Topology.WithLowerSet + theorem Topology.WithUpperSet.isOpen_ofUpperSet_preimage + theorem Topology.WithUpperSet.isUpperSet_toUpperSet_preimage + def Topology.WithUpperSet.map + theorem Topology.WithUpperSet.map_comp + theorem Topology.WithUpperSet.map_id + def Topology.WithUpperSet.ofUpperSet + def Topology.WithUpperSet.ofUpperSetOrderIso + theorem Topology.WithUpperSet.ofUpperSet_inj + theorem Topology.WithUpperSet.ofUpperSet_le_iff + theorem Topology.WithUpperSet.ofUpperSet_le_ofUpperSet + theorem Topology.WithUpperSet.ofUpperSet_toUpperSet + theorem Topology.WithUpperSet.of_WithUpperSet_symm_eq + def Topology.WithUpperSet.toDualHomeomorph + def Topology.WithUpperSet.toUpperSet + def Topology.WithUpperSet.toUpperSetOrderIso + theorem Topology.WithUpperSet.toUpperSet_inj + theorem Topology.WithUpperSet.toUpperSet_le_iff + theorem Topology.WithUpperSet.toUpperSet_ofUpperSet + theorem Topology.WithUpperSet.toUpperSet_specializes_toUpperSet + theorem Topology.WithUpperSet.to_WithUpperSet_symm_eq + def Topology.WithUpperSet + theorem Topology.isLowerSet_orderDual + theorem Topology.isUpperSet_orderDual + def Topology.lowerSet + def Topology.upperSet - theorem UpperSetTopology.closure_eq_lowerClosure - theorem UpperSetTopology.closure_singleton - theorem UpperSetTopology.isClosed_iff_isLower - theorem UpperSetTopology.isClosed_isLower - theorem UpperSetTopology.isOpen_iff_isUpperSet - theorem UpperSetTopology.monotone_to_upperTopology_continuous - theorem UpperSetTopology.topology_eq - theorem UpperSetTopology.upperSet_LE_upper - def UpperSetTopology.withUpperSetTopologyHomeomorph - theorem WithLowerSetTopology.isLowerSet_toLowerSet_preimage - theorem WithLowerSetTopology.isOpen_ofLowerSet_preimage - def WithLowerSetTopology.map - theorem WithLowerSetTopology.map_comp - theorem WithLowerSetTopology.map_id - def WithLowerSetTopology.ofLowerSet - def WithLowerSetTopology.ofLowerSetOrderIso - theorem WithLowerSetTopology.ofLowerSet_inj - theorem WithLowerSetTopology.ofLowerSet_le_iff - theorem WithLowerSetTopology.ofLowerSet_le_ofLowerSet - theorem WithLowerSetTopology.ofLowerSet_toLowerSet - theorem WithLowerSetTopology.of_withLowerSetTopology_symm_eq - def WithLowerSetTopology.toLowerSet - def WithLowerSetTopology.toLowerSetOrderIso - theorem WithLowerSetTopology.toLowerSet_inj - theorem WithLowerSetTopology.toLowerSet_le_iff - theorem WithLowerSetTopology.toLowerSet_ofLowerSet - theorem WithLowerSetTopology.toLowerSet_specializes_toLowerSet - theorem WithLowerSetTopology.to_withLowerSetTopology_symm_eq - def WithLowerSetTopology - theorem WithUpperSetTopology.isOpen_ofUpperSet_preimage - theorem WithUpperSetTopology.isUpperSet_toUpperSet_preimage - def WithUpperSetTopology.map - theorem WithUpperSetTopology.map_comp - theorem WithUpperSetTopology.map_id - def WithUpperSetTopology.ofUpperSet - def WithUpperSetTopology.ofUpperSetOrderIso - theorem WithUpperSetTopology.ofUpperSet_inj - theorem WithUpperSetTopology.ofUpperSet_le_iff - theorem WithUpperSetTopology.ofUpperSet_le_ofUpperSet - theorem WithUpperSetTopology.ofUpperSet_toUpperSet - theorem WithUpperSetTopology.of_withUpperSetTopology_symm_eq - def WithUpperSetTopology.toDualHomeomorph - def WithUpperSetTopology.toUpperSet - def WithUpperSetTopology.toUpperSetOrderIso - theorem WithUpperSetTopology.toUpperSet_inj - theorem WithUpperSetTopology.toUpperSet_le_iff - theorem WithUpperSetTopology.toUpperSet_ofUpperSet - theorem WithUpperSetTopology.toUpperSet_specializes_toUpperSet - theorem WithUpperSetTopology.to_withUpperSetTopology_symm_eq - def WithUpperSetTopology - def lowerSetTopology' - theorem lowerSet_dual_iff_upperSet - def upperSetTopology' - theorem upperSet_dual_iff_lowerSet Modified Mathlib/Topology/Specialization.lean 2023-09-24 17:11:38 c2c14af fix: rm off-by-one error in finset.eventually_constant_prod (#7333) The hypothesis is that the function is trivial for all indices `\geq N`, and the original conclusion is that for `n \geq N` the product up to `n` is equal to the product up to `N` (namely `range N+1`), but we can strengthen this by removing the index `N` part. This change is especially important for simplifying products and sums with only the initial term nontrivial. ESTIMATED CHANGES Modified Mathlib/Algebra/BigOperators/Basic.lean Modified Mathlib/Analysis/Normed/Group/Basic.lean 2023-09-24 16:27:40 7bb9c63 chore: fix references to `toUniformSpace` in docstrings (#7348) ESTIMATED CHANGES Modified Mathlib/Topology/Algebra/UniformGroup.lean 2023-09-24 16:09:06 3a62351 chore: fix docgen link in readme (#7354) Noticed in #7350 ESTIMATED CHANGES Modified README.md 2023-09-24 12:30:35 e95989a feat: add Nat.descFactorial_eq_prod_range (#7261) ESTIMATED CHANGES Modified Mathlib/Data/Nat/Factorial/BigOperators.lean + theorem Nat.descFactorial_eq_prod_range 2023-09-24 12:02:48 e6937e6 feat: conductor of Dirichlet character (#7320) ESTIMATED CHANGES Modified Mathlib/Data/ZMod/Units.lean + theorem ZMod.IsUnit_cast_of_dvd Modified Mathlib/NumberTheory/DirichletCharacter/Basic.lean + theorem DirichletCharacter.FactorsThrough.dvd + theorem DirichletCharacter.FactorsThrough.eq_changeLevel + theorem DirichletCharacter.FactorsThrough.same_level + def DirichletCharacter.FactorsThrough.χ₀ + def DirichletCharacter.FactorsThrough + theorem DirichletCharacter.changeLevel_eq_cast_of_dvd + def DirichletCharacter.conductorSet + theorem DirichletCharacter.level_mem_conductorSet + theorem DirichletCharacter.mem_conductorSet_dvd + theorem DirichletCharacter.mem_conductorSet_iff 2023-09-24 09:09:01 e876531 feat: add theorem natDegree_modByMonic_lt (#7278) Adds the natDegree analogue of this theorem ESTIMATED CHANGES Modified Mathlib/Data/Polynomial/Div.lean + theorem Polynomial.natDegree_modByMonic_lt 2023-09-23 22:49:28 37ef3d5 chore(CategoryTheory): swapping the names of opOp and unopUnop (#7344) This PR swaps the names of `opOp` and `unopUnop` which are the functors of the equivalence of categories `opOpEquivalence : Cᵒᵖᵒᵖ ≌ C`. As `Opposite.op` is the map `C → Cᵒᵖ`, the functor `C ⥤ Cᵒᵖᵒᵖ` should be named `opOp` and the functor `Cᵒᵖᵒᵖ ⥤ C` should be named `unopUnop`. It was previously the opposite; this PR fixes this. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Opposites.lean +/- def CategoryTheory.opOp +/- def CategoryTheory.unopUnop 2023-09-23 09:00:57 f0d1951 fix: extension logic for `#align_import` (#7329) There was a bug in the previous implementation causing none of the mod4's to be saved properly. ESTIMATED CHANGES Modified Mathlib/Mathport/Rename.lean 2023-09-23 04:39:14 8276aae chore: move (locally) ringed spaces out of `AlgebraicGeometry` (#7330) Create new folder `Geometry.RingedSpace` for (locally) ringed spaces and move about half of the contents of `AlgebraicGeometry` there. Files renamed: ``` AlgebraicGeometry.OpenImmersion.Scheme → AlgebraicGeometry.OpenImmersion AlgebraicGeometry.RingedSpace → Geometry.RingedSpace.Basic AlgebraicGeometry.LocallyRingedSpace → Geometry.RingedSpace.LocallyRingedSpace AlgebraicGeometry.LocallyRingedSpace.HasColimits → Geometry.RingedSpace.LocallyRingedSpace.HasColimits AlgebraicGeometry.OpenImmersion.Basic → Geometry.RingedSpace.OpenImmersion AlgebraicGeometry.PresheafedSpace → Geometry.RingedSpace.PresheafedSpace AlgebraicGeometry.PresheafedSpace.Gluing → Geometry.RingedSpace.PresheafedSpace.Gluing AlgebraicGeometry.PresheafedSpace.HasColimits → Geometry.RingedSpace.PresheafedSpace.HasColimits AlgebraicGeometry.SheafedSpace → Geometry.RingedSpace.SheafedSpace AlgebraicGeometry.Stalks → Geometry.RingedSpace.Stalks ``` See [Zulip](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/split.20AlgebraicGeometry). ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/AlgebraicGeometry/AffineScheme.lean Modified Mathlib/AlgebraicGeometry/Gluing.lean Renamed Mathlib/AlgebraicGeometry/OpenImmersion/Scheme.lean to Mathlib/AlgebraicGeometry/OpenImmersion.lean Modified Mathlib/AlgebraicGeometry/ProjectiveSpectrum/StructureSheaf.lean Modified Mathlib/AlgebraicGeometry/Spec.lean Renamed Mathlib/AlgebraicGeometry/RingedSpace.lean to Mathlib/Geometry/RingedSpace/Basic.lean Renamed Mathlib/AlgebraicGeometry/LocallyRingedSpace.lean to Mathlib/Geometry/RingedSpace/LocallyRingedSpace.lean Renamed Mathlib/AlgebraicGeometry/LocallyRingedSpace/HasColimits.lean to Mathlib/Geometry/RingedSpace/LocallyRingedSpace/HasColimits.lean Renamed Mathlib/AlgebraicGeometry/OpenImmersion/Basic.lean to Mathlib/Geometry/RingedSpace/OpenImmersion.lean Renamed Mathlib/AlgebraicGeometry/PresheafedSpace.lean to Mathlib/Geometry/RingedSpace/PresheafedSpace.lean Renamed Mathlib/AlgebraicGeometry/PresheafedSpace/Gluing.lean to Mathlib/Geometry/RingedSpace/PresheafedSpace/Gluing.lean Renamed Mathlib/AlgebraicGeometry/PresheafedSpace/HasColimits.lean to Mathlib/Geometry/RingedSpace/PresheafedSpace/HasColimits.lean Renamed Mathlib/AlgebraicGeometry/SheafedSpace.lean to Mathlib/Geometry/RingedSpace/SheafedSpace.lean Renamed Mathlib/AlgebraicGeometry/Stalks.lean to Mathlib/Geometry/RingedSpace/Stalks.lean 2023-09-22 18:39:50 d0f7245 feat(Topology/Order): add `IsClosed.isLeast_csInf` (#7301) Also add `IsClosed.isGreatest_csSup`. ESTIMATED CHANGES Modified Mathlib/Topology/Order/Basic.lean + theorem IsClosed.isGreatest_csSup + theorem IsClosed.isLeast_csInf 2023-09-22 17:59:08 3430a1f feat: definition of the distinguished triangles in the opposite category (#7327) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Opposites.lean Modified Mathlib/CategoryTheory/Triangulated/Opposite.lean + def CategoryTheory.Pretriangulated.Opposite.distinguishedTriangles + theorem CategoryTheory.Pretriangulated.Opposite.isomorphic_distinguished + theorem CategoryTheory.Pretriangulated.Opposite.mem_distinguishedTriangles_iff' + theorem CategoryTheory.Pretriangulated.Opposite.mem_distinguishedTriangles_iff 2023-09-22 17:22:32 fc88c1f feat(RingTheory/PowerSeries): add lemmas on formal power series (#7294) Add lemmas on truncation of pormal power series ESTIMATED CHANGES Modified Mathlib/RingTheory/PowerSeries/Basic.lean + theorem Polynomial.eval₂_C_X_eq_coe +/- def PowerSeries.C +/- theorem PowerSeries.C_eq_algebraMap +/- def PowerSeries.X +/- theorem PowerSeries.X_dvd_iff +/- theorem PowerSeries.X_eq +/- theorem PowerSeries.X_ne_zero +/- theorem PowerSeries.X_pow_dvd_iff +/- theorem PowerSeries.X_pow_eq +/- theorem PowerSeries.X_prime +/- theorem PowerSeries.algebraMap_apply' +/- theorem PowerSeries.algebraMap_apply +/- def PowerSeries.coeff +/- theorem PowerSeries.coeff_C +/- theorem PowerSeries.coeff_C_mul +/- theorem PowerSeries.coeff_X +/- theorem PowerSeries.coeff_X_pow +/- theorem PowerSeries.coeff_X_pow_mul' +/- theorem PowerSeries.coeff_X_pow_mul +/- theorem PowerSeries.coeff_X_pow_self + theorem PowerSeries.coeff_coe_trunc_of_lt +/- theorem PowerSeries.coeff_invOfUnit +/- theorem PowerSeries.coeff_inv_aux +/- theorem PowerSeries.coeff_map +/- theorem PowerSeries.coeff_mul +/- theorem PowerSeries.coeff_mul_C +/- theorem PowerSeries.coeff_mul_X_pow' +/- theorem PowerSeries.coeff_mul_X_pow + theorem PowerSeries.coeff_mul_eq_coeff_trunc_mul_trunc + theorem PowerSeries.coeff_mul_eq_coeff_trunc_mul_trunc₂ +/- theorem PowerSeries.coeff_mul_of_lt_order +/- theorem PowerSeries.coeff_mul_one_sub_of_lt_order +/- theorem PowerSeries.coeff_one +/- theorem PowerSeries.coeff_one_X +/- theorem PowerSeries.coeff_rescale +/- theorem PowerSeries.coeff_succ_X_mul +/- theorem PowerSeries.coeff_succ_mul_X +/- theorem PowerSeries.coeff_trunc +/- theorem PowerSeries.coeff_zero_X +/- theorem PowerSeries.coeff_zero_X_mul +/- theorem PowerSeries.coeff_zero_eq_constantCoeff_apply +/- theorem PowerSeries.coeff_zero_mul_X +/- theorem PowerSeries.coeff_zero_one +/- theorem PowerSeries.commute_X +/- def PowerSeries.constantCoeff +/- theorem PowerSeries.constantCoeff_invOfUnit + theorem PowerSeries.degree_trunc_lt +/- theorem PowerSeries.eq_X_mul_shift_add_const +/- theorem PowerSeries.eq_shift_mul_X_add_const +/- theorem PowerSeries.eq_zero_or_eq_zero_of_mul_eq_zero +/- theorem PowerSeries.evalNegHom_X + theorem PowerSeries.eval₂_trunc_eq_sum_range +/- theorem PowerSeries.ext +/- theorem PowerSeries.ext_iff +/- def PowerSeries.invOfUnit +/- theorem PowerSeries.isUnit_constantCoeff +/- theorem PowerSeries.le_order +/- theorem PowerSeries.le_order_add +/- def PowerSeries.map +/- theorem PowerSeries.map_id +/- def PowerSeries.mk +/- def PowerSeries.monomial +/- theorem PowerSeries.mul_invOfUnit + theorem PowerSeries.natDegree_trunc_lt +/- theorem PowerSeries.nat_le_order +/- def PowerSeries.order +/- theorem PowerSeries.order_X +/- theorem PowerSeries.order_X_pow +/- theorem PowerSeries.order_add_of_order_eq +/- theorem PowerSeries.order_eq +/- theorem PowerSeries.order_eq_multiplicity_X +/- theorem PowerSeries.order_eq_nat +/- theorem PowerSeries.order_eq_top +/- theorem PowerSeries.order_mul +/- theorem PowerSeries.order_mul_ge +/- theorem PowerSeries.order_one +/- theorem PowerSeries.order_zero +/- theorem PowerSeries.rescale_one +/- theorem PowerSeries.rescale_rescale +/- theorem PowerSeries.smul_eq_C_mul +/- theorem PowerSeries.span_X_isPrime +/- theorem PowerSeries.sub_const_eq_X_mul_shift +/- theorem PowerSeries.sub_const_eq_shift_mul_X +/- def PowerSeries.trunc + theorem PowerSeries.trunc_X + theorem PowerSeries.trunc_X_of +/- theorem PowerSeries.trunc_add + theorem PowerSeries.trunc_coe_eq_self + theorem PowerSeries.trunc_mul_trunc +/- theorem PowerSeries.trunc_one + theorem PowerSeries.trunc_succ + theorem PowerSeries.trunc_trunc + theorem PowerSeries.trunc_trunc_mul + theorem PowerSeries.trunc_trunc_mul_trunc + theorem PowerSeries.trunc_trunc_of_le + theorem PowerSeries.trunc_trunc_pow + theorem PowerSeries.trunc_zero' +/- theorem PowerSeries.trunc_zero 2023-09-22 12:58:10 c97e6da feat: the shift on the opposite category (#7324) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/CategoryTheory/Shift/Opposite.lean Added Mathlib/CategoryTheory/Triangulated/Opposite.lean + theorem CategoryTheory.Pretriangulated.opShiftFunctorEquivalence_counitIso_hom_app_shift + theorem CategoryTheory.Pretriangulated.opShiftFunctorEquivalence_counitIso_inv_app_shift + theorem CategoryTheory.Pretriangulated.shiftFunctorAdd'_op_hom_app + theorem CategoryTheory.Pretriangulated.shiftFunctorAdd'_op_inv_app + theorem CategoryTheory.Pretriangulated.shiftFunctorZero_op_hom_app + theorem CategoryTheory.Pretriangulated.shiftFunctorZero_op_inv_app + theorem CategoryTheory.Pretriangulated.shiftFunctor_op_map + theorem CategoryTheory.Pretriangulated.shift_unop_opShiftFunctorEquivalence_counitIso_hom_app + theorem CategoryTheory.Pretriangulated.shift_unop_opShiftFunctorEquivalence_counitIso_inv_app 2023-09-22 11:29:25 11dbfb2 chore: exactly 4 spaces in subsequent lines for def (#7321) ESTIMATED CHANGES Modified Mathlib/Algebra/Category/MonCat/Basic.lean Modified Mathlib/Algebra/Hom/Equiv/Basic.lean Modified Mathlib/Algebra/Hom/Group/Defs.lean Modified Mathlib/Algebra/Homology/HomologicalComplex.lean +/- def HomologicalComplex.XIsoOfEq Modified Mathlib/Algebra/Homology/HomotopyCategory/HomComplex.lean Modified Mathlib/Algebra/Homology/ShortComplex/RightHomology.lean Modified Mathlib/Algebra/Ring/Equiv.lean Modified Mathlib/Algebra/Ring/Opposite.lean Modified Mathlib/CategoryTheory/Adjunction/Limits.lean Modified Mathlib/CategoryTheory/Adjunction/Reflective.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Equalizers.lean Modified Mathlib/CategoryTheory/Limits/Shapes/NormalMono/Equalizers.lean Modified Mathlib/CategoryTheory/Localization/Predicate.lean Modified Mathlib/CategoryTheory/Shift/Basic.lean Modified Mathlib/CategoryTheory/Sites/EffectiveEpimorphic.lean +/- def CategoryTheory.EffectiveEpi.getStruct Modified Mathlib/Data/BinaryHeap.lean Modified Mathlib/Data/Equiv/Functor.lean Modified Mathlib/Data/TypeVec.lean Modified Mathlib/Data/UnionFind.lean Modified Mathlib/Lean/Expr/Basic.lean Modified Mathlib/Lean/Meta/Simp.lean Modified Mathlib/LinearAlgebra/ExteriorAlgebra/Grading.lean Modified Mathlib/LinearAlgebra/QuadraticForm/Dual.lean Modified Mathlib/LinearAlgebra/TensorProduct/Tower.lean Modified Mathlib/Logic/Equiv/Functor.lean Modified Mathlib/NumberTheory/ArithmeticFunction.lean Modified Mathlib/RingTheory/PolynomialAlgebra.lean Modified Mathlib/Tactic/CasesM.lean Modified Mathlib/Tactic/Choose.lean Modified Mathlib/Tactic/Core.lean Modified Mathlib/Tactic/MkIffOfInductiveProp.lean Modified Mathlib/Tactic/PrintPrefix.lean Modified Mathlib/Tactic/Ring/Basic.lean Modified Mathlib/Tactic/Simps/Basic.lean Modified Mathlib/Testing/SlimCheck/Testable.lean Modified Mathlib/Topology/Category/TopCat/Limits/Products.lean +/- def TopCat.piIsoPi Modified Mathlib/Topology/Sheaves/Presheaf.lean Modified Mathlib/Topology/Sheaves/SheafCondition/OpensLeCover.lean Modified Mathlib/Topology/Sheaves/SheafCondition/PairwiseIntersections.lean Modified Mathlib/Topology/Specialization.lean Modified test/Simps.lean +/- def AddHomPlus2.Simps.mul 2023-09-22 11:29:24 d1b8745 feat: self-adjoint elements commute iff their product is self-adjoint (#7318) ESTIMATED CHANGES Modified Mathlib/Algebra/Star/SelfAdjoint.lean + theorem IsSelfAdjoint.commute_iff 2023-09-22 11:29:23 5f0e89d chore: drop redundant LinearMap/LinearEquiv.map_finsupp_sum (#7313) ESTIMATED CHANGES Modified Mathlib/Algebra/Module/Projective.lean Modified Mathlib/LinearAlgebra/Basic.lean - theorem LinearEquiv.map_finsupp_sum - theorem LinearMap.map_finsupp_sum Modified Mathlib/LinearAlgebra/FreeModule/PID.lean 2023-09-22 11:29:22 b68cba4 chore(Topology/SubsetProperties): rename isCompact_of_isClosed_subset (#7298) As discussed [on Zulip](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/naming.20in.20docs.23SubsetProperties/near/392310506). ESTIMATED CHANGES Modified Mathlib/Analysis/Calculus/ContDiffDef.lean Modified Mathlib/Analysis/Convex/Exposed.lean Modified Mathlib/Analysis/Convex/KreinMilman.lean Modified Mathlib/Analysis/Convolution.lean Modified Mathlib/Analysis/NormedSpace/Algebra.lean Modified Mathlib/Analysis/NormedSpace/FiniteDimension.lean Modified Mathlib/Dynamics/OmegaLimit.lean Modified Mathlib/Geometry/Manifold/BumpFunction.lean Modified Mathlib/MeasureTheory/Function/LocallyIntegrable.lean Modified Mathlib/Topology/Algebra/Group/Basic.lean Modified Mathlib/Topology/Compactification/OnePoint.lean Modified Mathlib/Topology/ContinuousFunction/Bounded.lean Modified Mathlib/Topology/ContinuousFunction/CocompactMap.lean Modified Mathlib/Topology/MetricSpace/Basic.lean Modified Mathlib/Topology/MetricSpace/HausdorffDistance.lean Modified Mathlib/Topology/ProperMap.lean Modified Mathlib/Topology/Separation.lean Modified Mathlib/Topology/SubsetProperties.lean + theorem IsCompact.of_isClosed_subset - theorem isCompact_of_isClosed_subset Modified Mathlib/Topology/Support.lean 2023-09-22 11:29:20 d44ca29 feat: quasi-isomorphisms of short complexes (#7262) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Homology/ShortComplex/QuasiIso.lean + theorem CategoryTheory.ShortComplex.LeftHomologyMapData.quasiIso_iff + theorem CategoryTheory.ShortComplex.RightHomologyMapData.quasiIso_iff + theorem CategoryTheory.ShortComplex.quasiIso_iff + theorem CategoryTheory.ShortComplex.quasiIso_iff_comp_left + theorem CategoryTheory.ShortComplex.quasiIso_iff_comp_right + theorem CategoryTheory.ShortComplex.quasiIso_iff_isIso_descOpcycles + theorem CategoryTheory.ShortComplex.quasiIso_iff_isIso_homologyMap' + theorem CategoryTheory.ShortComplex.quasiIso_iff_isIso_leftHomologyMap' + theorem CategoryTheory.ShortComplex.quasiIso_iff_isIso_liftCycles + theorem CategoryTheory.ShortComplex.quasiIso_iff_isIso_rightHomologyMap' + theorem CategoryTheory.ShortComplex.quasiIso_iff_of_arrow_mk_iso + theorem CategoryTheory.ShortComplex.quasiIso_of_arrow_mk_iso + theorem CategoryTheory.ShortComplex.quasiIso_of_comp_left + theorem CategoryTheory.ShortComplex.quasiIso_of_comp_right + theorem CategoryTheory.ShortComplex.quasiIso_of_epi_of_isIso_of_mono + theorem CategoryTheory.ShortComplex.quasiIso_opMap + theorem CategoryTheory.ShortComplex.quasiIso_opMap_iff + theorem CategoryTheory.ShortComplex.quasiIso_unopMap 2023-09-22 09:46:43 1097d1a feat: environment extension for `#align_import` (#6926) Implements the environment extension corresponding to the `#align_import` command. This is a prerequisite for making it work in mathport. I also made the origin information (git repo & commit) optional, since this may not be available for e.g. local projects, and mathport doesn't need it to work. ESTIMATED CHANGES Modified Mathlib/Mathport/Rename.lean + structure Mathlib.Prelude.Rename.ImportEntry + structure Mathlib.Prelude.Rename.ImportState - def Mathlib.Prelude.Rename.getRenameMap 2023-09-22 08:17:09 1d02ef7 feat: Zeckendorf's theorem (#6880) Prove Zeckendorf's theorem: Every natural number can be written uniquely as a sum of distinct non-consecutive Fibonacci numbers. Instead of proving an `ExistsUnique` statement, I define an equivalence between natural numbers and Zeckendorf representations. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/ContinuedFractions/Computation/ApproximationCorollaries.lean Modified Mathlib/Algebra/ContinuedFractions/Computation/Approximations.lean Modified Mathlib/Data/Nat/Fib.lean + theorem Nat.fib_add_one + theorem Nat.fib_eq_zero + theorem Nat.fib_lt_fib +/- theorem Nat.fib_pos + theorem Nat.fib_strictMonoOn + theorem Nat.le_fib_add_one Added Mathlib/Data/Nat/Fib/Zeckendorf.lean + theorem List.IsZeckendorfRep.sum_fib_lt + def List.IsZeckendorfRep + theorem Nat.fib_greatestFib_le + def Nat.greatestFib + theorem Nat.greatestFib_eq_zero + theorem Nat.greatestFib_fib + theorem Nat.greatestFib_lt + theorem Nat.greatestFib_mono + theorem Nat.greatestFib_ne_zero + theorem Nat.greatestFib_pos + theorem Nat.greatestFib_sub_fib_greatestFib_le_greatestFib + theorem Nat.isZeckendorfRep_zeckendorf + theorem Nat.le_greatestFib + theorem Nat.lt_fib_greatestFib_add_one + theorem Nat.sum_zeckendorf_fib + def Nat.zeckendorf + def Nat.zeckendorfEquiv + theorem Nat.zeckendorf_of_pos + theorem Nat.zeckendorf_succ + theorem Nat.zeckendorf_sum_fib + theorem Nat.zeckendorf_zero Modified Mathlib/Data/Nat/Order/Basic.lean + theorem Nat.findGreatest_pos 2023-09-22 07:38:24 40fe512 chore: Remove `Cat` suffixes (#3730) These names needn't change in the first place. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Category/BoolRing.lean + def BoolRing.Iso.mk + theorem BoolRing.coe_of + def BoolRing.of + def BoolRing + def boolRingCatEquivBoolAlg Deleted Mathlib/Algebra/Category/BoolRingCat.lean - def BoolRingCat.Iso.mk - theorem BoolRingCat.coe_of - def BoolRingCat.of - def BoolRingCat - def boolRingCatEquivBoolAlgCat Modified Mathlib/AlgebraicTopology/SimplexCategory.lean +/- def SimplexCategory.skeletalFunctor Renamed Mathlib/CategoryTheory/Category/QuivCat.lean to Mathlib/CategoryTheory/Category/Quiv.lean +/- def CategoryTheory.Cat.free + def CategoryTheory.Quiv.adj + def CategoryTheory.Quiv.forget + def CategoryTheory.Quiv.lift + def CategoryTheory.Quiv.of + def CategoryTheory.Quiv - def CategoryTheory.QuivCat.adj - def CategoryTheory.QuivCat.forget - def CategoryTheory.QuivCat.lift - def CategoryTheory.QuivCat.of - def CategoryTheory.QuivCat Modified Mathlib/CategoryTheory/Localization/Construction.lean Added Mathlib/Order/Category/BddDistLat.lean + def BddDistLat.Iso.mk + theorem BddDistLat.coe_of + theorem BddDistLat.coe_toBddLat + def BddDistLat.dual + def BddDistLat.dualEquiv + theorem BddDistLat.forget_bddLat_lat_eq_forget_distLat_lat + def BddDistLat.of + def BddDistLat.toBddLat + structure BddDistLat + theorem bddDistLat_dual_comp_forget_to_distLat Deleted Mathlib/Order/Category/BddDistLatCat.lean - def BddDistLatCat.Iso.mk - theorem BddDistLatCat.coe_of - theorem BddDistLatCat.coe_toBddLat - def BddDistLatCat.dual - def BddDistLatCat.dualEquiv - theorem BddDistLatCat.forget_bddLat_latCat_eq_forget_distLatCat_latCat - def BddDistLatCat.of - def BddDistLatCat.toBddLat - structure BddDistLatCat - theorem bddDistLatCat_dual_comp_forget_to_distLatCat Added Mathlib/Order/Category/BddLat.lean + def BddLat.Iso.mk + theorem BddLat.coe_forget_to_bddOrd + theorem BddLat.coe_forget_to_lat + theorem BddLat.coe_forget_to_semilatInf + theorem BddLat.coe_forget_to_semilatSup + theorem BddLat.coe_of + def BddLat.dual + def BddLat.dualEquiv + theorem BddLat.forget_lat_partOrd_eq_forget_bddOrd_partOrd + theorem BddLat.forget_semilatInf_partOrd_eq_forget_bddOrd_partOrd + theorem BddLat.forget_semilatSup_partOrd_eq_forget_bddOrd_partOrd + def BddLat.of + structure BddLat + theorem bddLat_dual_comp_forget_to_bddOrd + theorem bddLat_dual_comp_forget_to_lat + theorem bddLat_dual_comp_forget_to_semilatInfCat + theorem bddLat_dual_comp_forget_to_semilatSupCat + def latToBddLat + def latToBddLatCompDualIsoDualCompLatToBddLat + def latToBddLatForgetAdjunction Deleted Mathlib/Order/Category/BddLatCat.lean - def BddLatCat.Iso.mk - theorem BddLatCat.coe_forget_to_bddOrd - theorem BddLatCat.coe_forget_to_latCat - theorem BddLatCat.coe_forget_to_semilatInf - theorem BddLatCat.coe_forget_to_semilatSup - theorem BddLatCat.coe_of - def BddLatCat.dual - def BddLatCat.dualEquiv - theorem BddLatCat.forget_latCat_partOrdCat_eq_forget_bddOrd_partOrdCat - theorem BddLatCat.forget_semilatInf_partOrdCat_eq_forget_bddOrd_partOrdCat - theorem BddLatCat.forget_semilatSup_partOrdCat_eq_forget_bddOrd_partOrdCat - def BddLatCat.of - structure BddLatCat - theorem bddLatCat_dual_comp_forget_to_bddOrdCat - theorem bddLatCat_dual_comp_forget_to_latCat - theorem bddLatCat_dual_comp_forget_to_semilatInfCat - theorem bddLatCat_dual_comp_forget_to_semilatSupCat - def latToBddLatCat - def latToBddLatCatCompDualIsoDualCompLatToBddLatCat - def latToBddLatCatForgetAdjunction Renamed Mathlib/Order/Category/BddOrdCat.lean to Mathlib/Order/Category/BddOrd.lean + def BddOrd.Iso.mk + theorem BddOrd.coe_of + def BddOrd.dual + def BddOrd.dualEquiv + def BddOrd.of + structure BddOrd - def BddOrdCat.Iso.mk - theorem BddOrdCat.coe_of - def BddOrdCat.dual - def BddOrdCat.dualEquiv - def BddOrdCat.of - structure BddOrdCat + theorem bddOrd_dual_comp_forget_to_partOrd - theorem bddOrd_dual_comp_forget_to_partOrdCat Added Mathlib/Order/Category/BoolAlg.lean + def BoolAlg.Iso.mk + theorem BoolAlg.coe_of + theorem BoolAlg.coe_toBddDistLat + def BoolAlg.dual + def BoolAlg.dualEquiv + def BoolAlg.of + def BoolAlg.toBddDistLat + def BoolAlg + theorem boolAlg_dual_comp_forget_to_bddDistLat Deleted Mathlib/Order/Category/BoolAlgCat.lean - def BoolAlgCat.Iso.mk - theorem BoolAlgCat.coe_of - theorem BoolAlgCat.coe_toBddDistLatCat - def BoolAlgCat.dual - def BoolAlgCat.dualEquiv - def BoolAlgCat.of - def BoolAlgCat.toBddDistLatCat - def BoolAlgCat - theorem boolAlgCat_dual_comp_forget_to_bddDistLatCat Added Mathlib/Order/Category/CompleteLat.lean + def CompleteLat.Iso.mk + theorem CompleteLat.coe_of + def CompleteLat.dual + def CompleteLat.dualEquiv + def CompleteLat.of + def CompleteLat + theorem completeLat_dual_comp_forget_to_bddLat Deleted Mathlib/Order/Category/CompleteLatCat.lean - def CompleteLatCat.Iso.mk - theorem CompleteLatCat.coe_of - def CompleteLatCat.dual - def CompleteLatCat.dualEquiv - def CompleteLatCat.of - def CompleteLatCat - theorem completeLatCat_dual_comp_forget_to_bddLatCat Added Mathlib/Order/Category/DistLat.lean + def DistLat.Iso.mk + theorem DistLat.coe_of + def DistLat.dual + def DistLat.dualEquiv + def DistLat.of + def DistLat + theorem distLat_dual_comp_forget_to_Lat Deleted Mathlib/Order/Category/DistLatCat.lean - def DistLatCat.Iso.mk - theorem DistLatCat.coe_of - def DistLatCat.dual - def DistLatCat.dualEquiv - def DistLatCat.of - def DistLatCat - theorem distLatCat_dual_comp_forget_to_latCat Added Mathlib/Order/Category/FinBddDistLat.lean + def FinBddDistLat.Iso.mk + def FinBddDistLat.dual + def FinBddDistLat.dualEquiv + def FinBddDistLat.of' + def FinBddDistLat.of + structure FinBddDistLat + theorem finBddDistLat_dual_comp_forget_to_bddDistLat Deleted Mathlib/Order/Category/FinBddDistLatCat.lean - def FinBddDistLatCat.Iso.mk - def FinBddDistLatCat.dual - def FinBddDistLatCat.dualEquiv - def FinBddDistLatCat.of' - def FinBddDistLatCat.of - structure FinBddDistLatCat - theorem finBddDistLatCat_dual_comp_forget_to_bddDistLatCat Added Mathlib/Order/Category/FinBoolAlg.lean + def FinBoolAlg.Iso.mk + theorem FinBoolAlg.coe_of + def FinBoolAlg.dual + def FinBoolAlg.dualEquiv + def FinBoolAlg.of + structure FinBoolAlg + theorem finBoolAlg_dual_comp_forget_to_finBddDistLat + def fintypeToFinBoolAlgOp Deleted Mathlib/Order/Category/FinBoolAlgCat.lean - def FinBoolAlgCat.Iso.mk - theorem FinBoolAlgCat.coe_of - def FinBoolAlgCat.dual - def FinBoolAlgCat.dualEquiv - def FinBoolAlgCat.of - structure FinBoolAlgCat - theorem finBoolAlgCat_dual_comp_forget_to_finBddDistLatCat - def fintypeToFinBoolAlgCatOp Modified Mathlib/Order/Category/FinPartOrd.lean + theorem FinPartOrd_dual_comp_forget_to_partOrd - theorem FinPartOrd_dual_comp_forget_to_partOrdCat Renamed Mathlib/Order/Category/FrmCat.lean to Mathlib/Order/Category/Frm.lean + def Frm.Iso.mk + theorem Frm.coe_of + def Frm.of + def Frm - def FrmCat.Iso.mk - theorem FrmCat.coe_of - def FrmCat.of - def FrmCat - def topCatOpToFrameCat + def topCatOpToFrm Renamed Mathlib/Order/Category/HeytAlgCat.lean to Mathlib/Order/Category/HeytAlg.lean + def HeytAlg.Iso.mk + theorem HeytAlg.coe_of + def HeytAlg.of + def HeytAlg - def HeytAlgCat.Iso.mk - theorem HeytAlgCat.coe_of - def HeytAlgCat.of - def HeytAlgCat Renamed Mathlib/Order/Category/LatCat.lean to Mathlib/Order/Category/Lat.lean + def Lat.Iso.mk + theorem Lat.coe_of + def Lat.dual + def Lat.dualEquiv + def Lat.of + def Lat - def LatCat.Iso.mk - theorem LatCat.coe_of - def LatCat.dual - def LatCat.dualEquiv - def LatCat.of - def LatCat + theorem Lat_dual_comp_forget_to_partOrd - theorem latCat_dual_comp_forget_to_partOrdCat Renamed Mathlib/Order/Category/LinOrdCat.lean to Mathlib/Order/Category/LinOrd.lean + def LinOrd.Iso.mk + theorem LinOrd.coe_of + def LinOrd.dual + def LinOrd.dualEquiv + def LinOrd.of + def LinOrd - def LinOrdCat.Iso.mk - theorem LinOrdCat.coe_of - def LinOrdCat.dual - def LinOrdCat.dualEquiv - def LinOrdCat.of - def LinOrdCat - theorem linOrdCat_dual_comp_forget_to_latCat + theorem linOrd_dual_comp_forget_to_Lat Renamed Mathlib/Order/Category/NonemptyFinLinOrdCat.lean to Mathlib/Order/Category/NonemptyFinLinOrd.lean + def NonemptyFinLinOrd.Iso.mk + theorem NonemptyFinLinOrd.coe_of + def NonemptyFinLinOrd.dual + def NonemptyFinLinOrd.dualEquiv + theorem NonemptyFinLinOrd.epi_iff_surjective + theorem NonemptyFinLinOrd.forget_map_apply + theorem NonemptyFinLinOrd.mono_iff_injective + def NonemptyFinLinOrd.of + def NonemptyFinLinOrd - def NonemptyFinLinOrdCat.Iso.mk - theorem NonemptyFinLinOrdCat.coe_of - def NonemptyFinLinOrdCat.dual - def NonemptyFinLinOrdCat.dualEquiv - theorem NonemptyFinLinOrdCat.epi_iff_surjective - theorem NonemptyFinLinOrdCat.forget_map_apply - theorem NonemptyFinLinOrdCat.mono_iff_injective - def NonemptyFinLinOrdCat.of - def NonemptyFinLinOrdCat - theorem nonemptyFinLinOrdCat_dual_comp_forget_to_linOrdCat + theorem nonemptyFinLinOrd_dual_comp_forget_to_linOrd Renamed Mathlib/Order/Category/PartOrdCat.lean to Mathlib/Order/Category/PartOrd.lean + def PartOrd.Iso.mk + theorem PartOrd.coe_of + def PartOrd.dual + def PartOrd.dualEquiv + def PartOrd.of + def PartOrd - def PartOrdCat.Iso.mk - theorem PartOrdCat.coe_of - def PartOrdCat.dual - def PartOrdCat.dualEquiv - def PartOrdCat.of - def PartOrdCat - theorem partOrdCat_dual_comp_forget_to_preordCat + theorem partOrd_dual_comp_forget_to_preord - def preordCatToPartOrdCat - def preordCatToPartOrdCatCompToDualIsoToDualCompPreordCatToPartOrdCat - def preordCatToPartOrdCatForgetAdjunction + def preordToPartOrd + def preordToPartOrdCompToDualIsoToDualCompPreordToPartOrd + def preordToPartOrdForgetAdjunction Renamed Mathlib/Order/Category/PreordCat.lean to Mathlib/Order/Category/Preord.lean + def Preord.Iso.mk + theorem Preord.coe_of + def Preord.dual + def Preord.dualEquiv + def Preord.of + def Preord - def PreordCat.Iso.mk - theorem PreordCat.coe_of - def PreordCat.dual - def PreordCat.dualEquiv - def PreordCat.of - def PreordCat - def preordCatToCat + def preordToCat Renamed Mathlib/Order/Category/SemilatCat.lean to Mathlib/Order/Category/Semilat.lean + theorem SemilatInfCat.coe_forget_to_partOrd - theorem SemilatInfCat.coe_forget_to_partOrdCat + theorem SemilatInfCat_dual_comp_forget_to_partOrd - theorem SemilatInfCat_dual_comp_forget_to_partOrdCat + theorem SemilatSupCat.coe_forget_to_partOrd - theorem SemilatSupCat.coe_forget_to_partOrdCat + theorem SemilatSupCat_dual_comp_forget_to_partOrd - theorem SemilatSupCat_dual_comp_forget_to_partOrdCat Modified Mathlib/Topology/Category/Locale.lean Modified Mathlib/Topology/Order/Category/AlexDisc.lean +/- def alexDiscEquivPreord Modified Mathlib/Topology/Specialization.lean +/- def topToPreord Modified scripts/nolints.json 2023-09-22 06:15:54 4220ff1 chore: add further comments in #7291 (#7317) Just recording an explanation from the review of #7291 into the source code. ESTIMATED CHANGES Modified Cache/IO.lean 2023-09-22 06:15:53 3d4c881 feat: `BoundedSMul` on `Prod` and `Pi` (#7311) Requested by Sophie Morel. From LeanAPAP. ESTIMATED CHANGES Modified Mathlib/Topology/MetricSpace/Algebra.lean 2023-09-22 06:15:51 43ed95a chore: exactly 4 spaces in subsequent lines (#7296) ESTIMATED CHANGES Modified Mathlib/Algebra/Hom/Equiv/Basic.lean Modified Mathlib/Algebra/Hom/Group/Defs.lean Modified Mathlib/Algebra/Hom/Units.lean Modified Mathlib/Algebra/Star/StarAlgHom.lean Modified Mathlib/Control/Traversable/Instances.lean Modified Mathlib/Data/Analysis/Topology.lean Modified Mathlib/Data/Countable/Defs.lean Modified Mathlib/FieldTheory/RatFunc.lean Modified Mathlib/LinearAlgebra/TensorProduct/Tower.lean Modified Mathlib/Order/Filter/Bases.lean 2023-09-22 06:15:49 b85546b chore: remove invalid trans argument on EqOn.trans (#7285) ESTIMATED CHANGES Modified Mathlib/Data/Set/Function.lean Modified Mathlib/Topology/Homotopy/Basic.lean 2023-09-22 05:30:27 8a285a6 perf (AlgebraicGeometry): tricks to mildly improve performance (#7306) These changes mildly improve performance. They are put in place until `AlgebraicGeometry` is refactored. ESTIMATED CHANGES Modified Mathlib/AlgebraicGeometry/AffineScheme.lean Modified Mathlib/AlgebraicGeometry/GammaSpecAdjunction.lean Modified Mathlib/AlgebraicGeometry/Spec.lean 2023-09-22 04:37:14 4b5f759 perf (DirectSum.Finsupp): mark `finsuppTensorFinsupp` noncomputable (#7308) This shaves off ~13s from this file, see #7103 ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/DirectSum/Finsupp.lean - def finsuppTensorFinsupp 2023-09-22 04:13:07 28ab491 fix (RingTheory.Kaehler): short cut instances to remove timeouts (#6149) This obviates the need for bumping timeout limits in `RingTheory.Kaehler` at the expense of explicit instances that Lean should easily be finding. ESTIMATED CHANGES Modified Mathlib/RingTheory/Kaehler.lean +/- def KaehlerDifferential 2023-09-21 23:28:44 21c933a chore(Complex/Exponential,PadicNumbers): minor golf (#7303) Cherry-picked from #7128 ESTIMATED CHANGES Modified Mathlib/Data/Complex/Exponential.lean Modified Mathlib/NumberTheory/Padics/PadicNumbers.lean 2023-09-21 23:09:26 08c9bdd fix: deduplicate and make exp notation scoped (#7297) [Zulip](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/duplicate.20notation.20cexp) ESTIMATED CHANGES Modified Mathlib/Analysis/SpecialFunctions/Gamma/Beta.lean Modified Mathlib/Analysis/SpecialFunctions/Gaussian.lean Modified Mathlib/Data/Complex/Exponential.lean 2023-09-21 20:48:30 2e62146 chore: remove unused unification hints (#7304) These unification hints appear to do nothing. ESTIMATED CHANGES Modified Mathlib/AlgebraicGeometry/GammaSpecAdjunction.lean 2023-09-21 19:25:55 89ce9cf feat: the category of `CategoryTheory.Limits.Bicone`s (#7209) We already had this for `Limits.Cone` and `Limits.Cocone`. This also promotes `Bicone.toCone` and `Bicone.toCocone` to functors, leaving the old names as a shorthand for `Functor.obj`. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Limits/Shapes/Biproducts.lean - def CategoryTheory.Limits.Bicone.toCocone + def CategoryTheory.Limits.Bicone.toCoconeFunctor - def CategoryTheory.Limits.Bicone.toCone + def CategoryTheory.Limits.Bicone.toConeFunctor + theorem CategoryTheory.Limits.BiconeMorphism.ext + structure CategoryTheory.Limits.BiconeMorphism + def CategoryTheory.Limits.Bicones.ext + def CategoryTheory.Limits.Bicones.functoriality 2023-09-21 19:02:02 766dbab feat: remove `IsNoetherian R L` hypothesis from proof that zero-weight space of a Lie module is nilpotent (#7295) This is possible thanks to the commit: 63ca289d983f26977a4c956c729ec33b4e2ad0d6 ESTIMATED CHANGES Modified Mathlib/Algebra/Lie/Engel.lean +/- theorem LieAlgebra.isEngelian_of_isNoetherian +/- theorem LieAlgebra.isNilpotent_iff_forall + theorem LieModule.isNilpotent_iff_forall' +/- theorem LieModule.isNilpotent_iff_forall Modified Mathlib/Algebra/Lie/Weights.lean 2023-09-21 17:41:54 95aba72 feat: the Unfolding Trick (#6223) This PR is a forward port of mathlib3 PR !3#18863 ESTIMATED CHANGES Modified Mathlib/GroupTheory/GroupAction/Group.lean + def DistribMulAction.toAddEquiv₀ Modified Mathlib/MeasureTheory/Group/FundamentalDomain.lean + theorem MeasureTheory.IsFundamentalDomain.integral_eq_tsum'' + theorem MeasureTheory.IsFundamentalDomain.lintegral_eq_tsum'' Modified Mathlib/MeasureTheory/Measure/Haar/Quotient.lean +/- theorem MeasurePreservingQuotientGroup.mk' + theorem MeasureTheory.IsFundamentalDomain.absolutelyContinuous_map +/- theorem MeasureTheory.IsFundamentalDomain.map_restrict_quotient + theorem QuotientAddGroup.integral_mul_eq_integral_automorphize_mul + theorem QuotientGroup.integral_eq_integral_automorphize + theorem QuotientGroup.integral_mul_eq_integral_automorphize_mul + theorem essSup_comp_quotientGroup_mk Modified Mathlib/Topology/Algebra/InfiniteSum/Basic.lean + theorem AddAction.automorphize_smul_left + theorem MulAction.automorphize_smul_left + theorem QuotientAddGroup.automorphize_smul_left + theorem QuotientGroup.automorphize_smul_left + theorem tsum_const_smul'' + theorem tsum_const_smul' 2023-09-21 16:56:50 4ac1d22 perf: make some defs noncomputable (#7299) These declarations in `NormedSpace.OperatorNorm` take an inordinate of time to compile (see #7103). As there is no actual executable code built upon these definitions currently, we make them `noncomputable` until a better solution arises. ESTIMATED CHANGES Modified Mathlib/Analysis/NormedSpace/OperatorNorm.lean - def ContinuousLinearMap.apply' - def ContinuousLinearMap.apply - def ContinuousLinearMap.compSL 2023-09-21 16:56:49 80106b7 feat(CategoryTheory): the pullback of a shift by a monoid morphism (#7270) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/CategoryTheory/Monoidal/Discrete.lean Added Mathlib/CategoryTheory/Shift/Pullback.lean + def CategoryTheory.PullbackShift + theorem CategoryTheory.pullbackShiftFunctorAdd'_hom_app + theorem CategoryTheory.pullbackShiftFunctorAdd'_inv_app + theorem CategoryTheory.pullbackShiftFunctorZero_hom_app + theorem CategoryTheory.pullbackShiftFunctorZero_inv_app 2023-09-21 15:29:32 a856ab3 doc(Topology/SubsetProperties): fix typos (#7289) ESTIMATED CHANGES Modified Mathlib/Topology/SubsetProperties.lean 2023-09-21 15:29:31 f328333 feat(LinearAlgebra/Multilinear): generalize some defs to `Semiring` (#7284) Also cleanup `FunLike`-related code and move code about `Semiring`s to a new section. For linear equivalences, generalization to a `Semiring` required introducing a new `Semiring` argument, so that `R`-linear objects are related by an `S`-linear equivalence. ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/Multilinear/Basic.lean + def MultilinearMap.coeAddMonoidHom +/- theorem MultilinearMap.coe_injective + theorem MultilinearMap.coe_sum +/- def MultilinearMap.constLinearEquivOfIsEmpty +/- theorem MultilinearMap.sum_apply +/- structure MultilinearMap Modified Mathlib/LinearAlgebra/Multilinear/FiniteDimensional.lean 2023-09-21 14:06:38 1b0c360 fix: add .hash files to the cache (#7291) These files are new in v4.1.0. If we don't cache them (or regenerate them, but they are tiny files so there is no reason not to cache them) then lake gets messed up unless you use the `-R` option in the next `lake build`. ESTIMATED CHANGES Modified Cache/IO.lean Modified lake-manifest.json 2023-09-21 13:09:08 a526f3e fix: fix coercion of `Heyting.Regular` (#7293) [Zulip thread](https://leanprover.zulipchat.com/#narrow/stream/113489-new-members/topic/import.20Mathlib.20leads.20to.20Lean.20not.20terminating) ESTIMATED CHANGES Modified Mathlib/Order/Heyting/Regular.lean 2023-09-21 11:01:58 d383329 feat: the naive shift on the opposite category (#7268) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Shift/Opposite.lean + def CategoryTheory.OppositeShift + theorem CategoryTheory.oppositeShiftFunctorAdd'_hom_app + theorem CategoryTheory.oppositeShiftFunctorAdd'_inv_app + theorem CategoryTheory.oppositeShiftFunctorAdd_hom_app + theorem CategoryTheory.oppositeShiftFunctorAdd_inv_app + theorem CategoryTheory.oppositeShiftFunctorZero_hom_app + theorem CategoryTheory.oppositeShiftFunctorZero_inv_app 2023-09-21 09:45:57 63ca289 feat: `Hom(N, M)` is Noetherian when `M` is Noetherian and `N` is finitely-generated. (#7276) ESTIMATED CHANGES Modified Mathlib/Algebra/Module/LinearMap.lean + theorem Function.Injective.injective_linearMapComp_left + theorem Function.Surjective.injective_linearMapComp_right +/- theorem LinearMap.cancel_left +/- theorem LinearMap.cancel_right Modified Mathlib/LinearAlgebra/Basis.lean +/- theorem Basis.constr_range Modified Mathlib/LinearAlgebra/BilinearMap.lean Modified Mathlib/LinearAlgebra/Finsupp.lean +/- theorem Finsupp.lmapDomain_supported Modified Mathlib/LinearAlgebra/StdBasis.lean + theorem Module.piEquiv_apply_apply + theorem Module.range_piEquiv + theorem Module.surjective_piEquiv_apply_iff Modified Mathlib/RingTheory/Finiteness.lean + theorem Module.Finite.exists_fin' Modified Mathlib/RingTheory/Noetherian.lean 2023-09-21 09:16:40 0c7d6fa chore: only four spaces for subsequent lines (#7286) ESTIMATED CHANGES Modified Counterexamples/SorgenfreyLine.lean Modified Mathlib/Algebra/Algebra/Operations.lean Modified Mathlib/Algebra/Category/GroupCat/Preadditive.lean +/- theorem AddCommGroupCat.hom_add_apply Modified Mathlib/Algebra/Category/MonCat/Basic.lean Modified Mathlib/Algebra/Category/Ring/Colimits.lean Modified Mathlib/Algebra/CharP/Basic.lean Modified Mathlib/Algebra/DirectSum/Decomposition.lean Modified Mathlib/Algebra/GCDMonoid/Basic.lean +/- theorem Associates.normalize_out +/- theorem normalize_gcd +/- theorem normalize_lcm Modified Mathlib/Algebra/Group/Commutator.lean Modified Mathlib/Algebra/Group/Defs.lean Modified Mathlib/Algebra/GroupPower/Lemmas.lean Modified Mathlib/Algebra/Hom/Equiv/Basic.lean Modified Mathlib/Algebra/Hom/Group/Basic.lean Modified Mathlib/Algebra/Hom/Group/Defs.lean Modified Mathlib/Algebra/Hom/Iterate.lean Modified Mathlib/Algebra/Hom/Units.lean Modified Mathlib/Algebra/Homology/ComplexShape.lean Modified Mathlib/Algebra/Homology/HomologicalComplex.lean Modified Mathlib/Algebra/Homology/HomotopyCategory.lean Modified Mathlib/Algebra/Homology/HomotopyCategory/HomComplex.lean Modified Mathlib/Algebra/Homology/ShortComplex/Abelian.lean Modified Mathlib/Algebra/Homology/ShortComplex/Homology.lean Modified Mathlib/Algebra/Homology/ShortComplex/RightHomology.lean +/- theorem CategoryTheory.ShortComplex.RightHomologyData.p_descQ Modified Mathlib/Algebra/Invertible/Defs.lean Modified Mathlib/Algebra/Lie/Basic.lean Modified Mathlib/Algebra/MonoidAlgebra/Basic.lean Modified Mathlib/Algebra/Order/LatticeGroup.lean Modified Mathlib/Algebra/Order/Monoid/NatCast.lean Modified Mathlib/Algebra/Ring/Basic.lean Modified Mathlib/Algebra/Star/NonUnitalSubalgebra.lean Modified Mathlib/Algebra/Star/StarAlgHom.lean Modified Mathlib/AlgebraicGeometry/GammaSpecAdjunction.lean Modified Mathlib/AlgebraicGeometry/SheafedSpace.lean Modified Mathlib/AlgebraicGeometry/StructureSheaf.lean Modified Mathlib/AlgebraicTopology/DoldKan/FunctorGamma.lean Modified Mathlib/AlgebraicTopology/DoldKan/NCompGamma.lean Modified Mathlib/Analysis/Analytic/RadiusLiminf.lean Modified Mathlib/Analysis/NormedSpace/MStructure.lean Modified Mathlib/CategoryTheory/Arrow.lean Modified Mathlib/CategoryTheory/Bicategory/Basic.lean Modified Mathlib/CategoryTheory/CatCommSq.lean Modified Mathlib/CategoryTheory/ConcreteCategory/Basic.lean Modified Mathlib/CategoryTheory/Functor/Basic.lean Modified Mathlib/CategoryTheory/Idempotents/KaroubiKaroubi.lean +/- theorem CategoryTheory.Idempotents.KaroubiKaroubi.p_comm_f Modified Mathlib/CategoryTheory/Limits/Final.lean Modified Mathlib/CategoryTheory/Limits/Shapes/KernelPair.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Multiequalizer.lean +/- theorem CategoryTheory.Limits.WalkingMultispan.Hom.id_eq_id Modified Mathlib/CategoryTheory/Limits/Shapes/Reflexive.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Types.lean Modified Mathlib/CategoryTheory/Limits/Types.lean Modified Mathlib/CategoryTheory/Localization/Adjunction.lean Modified Mathlib/CategoryTheory/Monoidal/Category.lean Modified Mathlib/CategoryTheory/Monoidal/CommMon_.lean Modified Mathlib/CategoryTheory/Monoidal/Discrete.lean +/- theorem CategoryTheory.Discrete.monoidal_tensorUnit_as Modified Mathlib/CategoryTheory/MorphismProperty.lean Modified Mathlib/CategoryTheory/Shift/Basic.lean +/- theorem CategoryTheory.shiftFunctorAdd_add_zero_hom_app +/- theorem CategoryTheory.shiftFunctorAdd_add_zero_inv_app +/- theorem CategoryTheory.shiftFunctorAdd_zero_add_inv_app Modified Mathlib/CategoryTheory/Sites/Coherent.lean Modified Mathlib/CategoryTheory/Sites/CompatiblePlus.lean Modified Mathlib/CategoryTheory/Sites/Subsheaf.lean Modified Mathlib/CategoryTheory/Sites/Whiskering.lean Modified Mathlib/CategoryTheory/StructuredArrow.lean +/- theorem CategoryTheory.CostructuredArrow.id_left +/- theorem CategoryTheory.CostructuredArrow.right_eq_id +/- theorem CategoryTheory.StructuredArrow.id_right +/- theorem CategoryTheory.StructuredArrow.left_eq_id Modified Mathlib/CategoryTheory/Triangulated/Pretriangulated.lean Modified Mathlib/Combinatorics/SetFamily/Compression/UV.lean Modified Mathlib/Combinatorics/SimpleGraph/Basic.lean Modified Mathlib/Combinatorics/SimpleGraph/Girth.lean Modified Mathlib/Combinatorics/SimpleGraph/StronglyRegular.lean Modified Mathlib/Computability/Primrec.lean Modified Mathlib/Control/Basic.lean Modified Mathlib/Control/Traversable/Basic.lean Modified Mathlib/Control/Traversable/Lemmas.lean Modified Mathlib/Control/ULift.lean Modified Mathlib/Data/Complex/Basic.lean Modified Mathlib/Data/Countable/Defs.lean +/- theorem Countable.exists_injective_nat Modified Mathlib/Data/Equiv/Functor.lean +/- theorem Functor.map_equiv_apply Modified Mathlib/Data/Fin/Basic.lean Modified Mathlib/Data/Finsupp/Multiset.lean Modified Mathlib/Data/Holor.lean Modified Mathlib/Data/List/Basic.lean Modified Mathlib/Data/List/Card.lean Modified Mathlib/Data/List/EditDistance/Defs.lean Modified Mathlib/Data/List/MinMax.lean Modified Mathlib/Data/Matrix/Basic.lean Modified Mathlib/Data/MvPolynomial/Basic.lean +/- theorem MvPolynomial.algebraMap_apply Modified Mathlib/Data/Nat/Cast/NeZero.lean +/- theorem NeZero.natCast_ne Modified Mathlib/Data/Nat/Digits.lean Modified Mathlib/Data/Nat/Factorial/SuperFactorial.lean Modified Mathlib/Data/Nat/Log.lean Modified Mathlib/Data/Nat/ModEq.lean Modified Mathlib/Data/PNat/Defs.lean Modified Mathlib/Data/Polynomial/FieldDivision.lean Modified Mathlib/Data/Quot.lean Modified Mathlib/Data/Rat/Cast/Defs.lean Modified Mathlib/Data/Set/Function.lean Modified Mathlib/Data/Set/Image.lean +/- theorem Set.coe_comp_rangeFactorization +/- theorem Set.comp_rangeSplitting +/- theorem Subtype.coe_image_of_subset +/- theorem Subtype.image_preimage_coe Modified Mathlib/Data/Set/Intervals/UnorderedInterval.lean Modified Mathlib/Data/Set/MulAntidiagonal.lean Modified Mathlib/Data/Set/NAry.lean Modified Mathlib/Data/Set/Pairwise/Basic.lean Modified Mathlib/Data/Subtype.lean Modified Mathlib/Data/Sym/Sym2.lean Modified Mathlib/Data/UnionFind.lean +/- theorem UFModel.Agrees.size_eq Modified Mathlib/Data/Vector.lean Modified Mathlib/FieldTheory/Minpoly/IsIntegrallyClosed.lean Modified Mathlib/FieldTheory/SplittingField/Construction.lean Modified Mathlib/GroupTheory/FreeGroup.lean Modified Mathlib/GroupTheory/GroupAction/SubMulAction.lean Modified Mathlib/GroupTheory/SemidirectProduct.lean +/- theorem SemidirectProduct.mul_def Modified Mathlib/Init/CCLemmas.lean Modified Mathlib/Init/Data/Nat/Lemmas.lean Modified Mathlib/LinearAlgebra/AffineSpace/Ordered.lean Modified Mathlib/LinearAlgebra/BilinearMap.lean Modified Mathlib/LinearAlgebra/CliffordAlgebra/Conjugation.lean Modified Mathlib/LinearAlgebra/CliffordAlgebra/Contraction.lean Modified Mathlib/LinearAlgebra/Dual.lean Modified Mathlib/LinearAlgebra/Finsupp.lean Modified Mathlib/LinearAlgebra/Lagrange.lean Modified Mathlib/LinearAlgebra/Matrix/Gershgorin.lean Modified Mathlib/LinearAlgebra/Matrix/SesquilinearForm.lean Modified Mathlib/LinearAlgebra/PiTensorProduct.lean Modified Mathlib/LinearAlgebra/TensorProduct.lean Modified Mathlib/Logic/Function/Basic.lean +/- theorem Function.factorsThrough_iff Modified Mathlib/Logic/Nonempty.lean Modified Mathlib/Logic/Relator.lean +/- theorem Relator.left_unique_of_rel_eq Modified Mathlib/MeasureTheory/Measure/Haar/OfBasis.lean Modified Mathlib/MeasureTheory/Measure/OuterMeasure.lean Modified Mathlib/ModelTheory/Basic.lean Modified Mathlib/NumberTheory/Bernoulli.lean Modified Mathlib/NumberTheory/BernoulliPolynomials.lean Modified Mathlib/NumberTheory/FLT/Basic.lean Modified Mathlib/NumberTheory/NumberField/CanonicalEmbedding.lean Modified Mathlib/NumberTheory/Padics/RingHoms.lean Modified Mathlib/Order/Category/NonemptyFinLinOrdCat.lean Modified Mathlib/Order/CompleteLattice.lean Modified Mathlib/Order/CompletePartialOrder.lean Modified Mathlib/Order/Filter/AtTopBot.lean Modified Mathlib/Order/Filter/Basic.lean Modified Mathlib/Order/Lattice.lean Modified Mathlib/Order/LiminfLimsup.lean Modified Mathlib/Order/LocallyFinite.lean Modified Mathlib/Order/Minimal.lean Modified Mathlib/Order/Monotone/Basic.lean Modified Mathlib/Order/SupClosed.lean Modified Mathlib/Probability/Kernel/Composition.lean Modified Mathlib/RepresentationTheory/Character.lean Modified Mathlib/RepresentationTheory/Rep.lean Modified Mathlib/RingTheory/FreeCommRing.lean +/- theorem FreeCommRing.of_cons Modified Mathlib/RingTheory/Jacobson.lean Modified Mathlib/RingTheory/Localization/NormTrace.lean Modified Mathlib/RingTheory/NonUnitalSubring/Basic.lean Modified Mathlib/RingTheory/Valuation/ValuationRing.lean Modified Mathlib/RingTheory/WittVector/Frobenius.lean Modified Mathlib/RingTheory/WittVector/IsPoly.lean Modified Mathlib/RingTheory/WittVector/Verschiebung.lean Modified Mathlib/SetTheory/Cardinal/Basic.lean Modified Mathlib/SetTheory/Cardinal/Finite.lean Modified Mathlib/SetTheory/Ordinal/NaturalOps.lean Modified Mathlib/SetTheory/ZFC/Basic.lean Modified Mathlib/Tactic/CategoryTheory/Elementwise.lean Modified Mathlib/Tactic/Eqns.lean Modified Mathlib/Tactic/Linarith/Lemmas.lean Modified Mathlib/Tactic/Ring/Basic.lean Modified Mathlib/Tactic/Sat/FromLRAT.lean Modified Mathlib/Topology/AlexandrovDiscrete.lean Modified Mathlib/Topology/Algebra/Monoid.lean Modified Mathlib/Topology/Basic.lean Modified Mathlib/Topology/Category/CompHaus/Limits.lean Modified Mathlib/Topology/Category/Profinite/Limits.lean Modified Mathlib/Topology/Category/Stonean/Limits.lean Modified Mathlib/Topology/Category/TopCat/Basic.lean +/- theorem TopCat.hom_apply Modified Mathlib/Topology/FiberBundle/Basic.lean Modified Mathlib/Topology/Homeomorph.lean Modified Mathlib/Topology/Homotopy/HomotopyGroup.lean Modified Mathlib/Topology/Instances/AddCircle.lean Modified test/CategoryTheory/Elementwise.lean Modified test/eqns.lean +/- theorem transpose_apply 2023-09-21 02:30:20 9fbca06 feat: dont add reviewdog suggestions to draft prs (#7259) This will allow people a way to silence the bot if its too annoying. (thinking of https://github.com/leanprover-community/mathlib4/pull/4197) ESTIMATED CHANGES Modified .github/workflows/lint_and_suggest_pr.yml 2023-09-21 01:54:54 18c578f feat: changeLevel for Dirichlet characters (#7263) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Data/ZMod/Basic.lean + theorem ZMod.castHom_comp +/- theorem ZMod.castHom_self Added Mathlib/Data/ZMod/Units.lean + def ZMod.unitsMap + theorem ZMod.unitsMap_comp + theorem ZMod.unitsMap_def + theorem ZMod.unitsMap_self Modified Mathlib/NumberTheory/DirichletCharacter/Basic.lean + theorem DirichletCharacter.changeLevel_def' + theorem DirichletCharacter.changeLevel_def + theorem DirichletCharacter.changeLevel_self + theorem DirichletCharacter.changeLevel_self_toUnitHom + theorem DirichletCharacter.changeLevel_trans +/- theorem DirichletCharacter.eval_modulus_sub +/- theorem DirichletCharacter.toUnitHom_eq_char' +/- theorem DirichletCharacter.toUnitHom_eq_iff 2023-09-20 17:47:56 236a4f5 feat: add some lemmas about polynomials and ofNat to enable simplifying with nat literals (#7110) ESTIMATED CHANGES Modified Mathlib/Data/Polynomial/Eval.lean + theorem Polynomial.eval_ofNat + theorem Polynomial.eval₂_at_ofNat + theorem Polynomial.eval₂_ofNat 2023-09-20 16:02:45 96a11c7 feat: add `Function.update_eq_const` and `eq_const_of_subsingleton` (#7275) Also golf `Function.update_apply`. ESTIMATED CHANGES Modified Mathlib/Logic/Function/Basic.lean + theorem Function.update_eq_const_of_subsingleton Modified Mathlib/Logic/Unique.lean + theorem eq_const_of_subsingleton +/- theorem eq_const_of_unique 2023-09-20 14:54:00 a959734 feat: `Nat.lcm_mul_left` and `Nat.lcm_mul_right` (#6990) Add two lemmas about `Nat.lcm`. These results mirror [Nat.gcd_mul_left](https://leanprover-community.github.io/mathlib4_docs/Std/Data/Nat/Gcd.html#Nat.gcd_mul_left) present in Std. ESTIMATED CHANGES Modified Mathlib/Data/Int/GCD.lean + theorem Int.lcm_mul_left + theorem Int.lcm_mul_right Modified Mathlib/Data/Nat/GCD/Basic.lean + theorem Nat.lcm_mul_left + theorem Nat.lcm_mul_right 2023-09-20 12:37:16 db04a97 feat: injectivity of multiplication with matrices whose product is 1 (#7266) Given two matrices $A$ and $B$ whose product is 1 $AB = 1$, then left multiplication/right multiplication with these matrices from the appropriate side is an injection. Suggested by @Vierkantor in PR #6042 ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/Matrix/NonsingularInverse.lean + theorem Matrix.mul_left_injective_of_inv + theorem Matrix.mul_right_injective_of_inv 2023-09-20 12:37:14 d7fb6a3 feat: bump ProofWidgets4 (#7258) ESTIMATED CHANGES Modified lake-manifest.json Modified lakefile.lean 2023-09-20 11:42:11 4026e6f feat: some theorems about iterated polynomial derivatives (#7274) ESTIMATED CHANGES Modified Mathlib/Data/Polynomial/Derivative.lean + theorem Polynomial.coeff_iterate_derivative - theorem Polynomial.coeff_iterate_derivative_as_prod_Ico - theorem Polynomial.coeff_iterate_derivative_as_prod_range + theorem Polynomial.natDegree_iterate_derivative 2023-09-20 09:59:37 a2b2bcf chore: another non-class instance (#7250) Following https://github.com/leanprover-community/mathlib4/pull/7245, https://leanprover.zulipchat.com/#narrow/stream/270676-lean4/topic/isClass.3F.20panic!/near/391779504. There is one exception that it is unclear how to fix, it seems lean makes the internal declarations in a block of mutual instances also instances perhaps? Seeing as it is internal I hope it won't cause too much trouble ESTIMATED CHANGES Modified Mathlib/Algebra/Category/ModuleCat/ChangeOfRings.lean 2023-09-20 09:38:15 14b1439 feat(NumberTheory.NumberField.CanonicalEmbedding): add exists_ne_zero_mem_ringOfIntegers_lt (#5650) This PR proves the following result: ```lean theorem exists_ne_zero_mem_ringOfIntegers_lt (h : minkowski_bound K < volume (convex_body_lt K f)) : ∃ (a : 𝓞 K), a ≠ 0 ∧ ∀ w : InfinitePlace K, w a < f w ``` where `f : InfinitePlace K → ℝ≥0` and `convex_body_lt K f` is the set of points `x` such that `‖x w‖ < f w` for all infinite places `w`. This is a key result in the proof of Dirichlet's unit theorem #5960 ESTIMATED CHANGES Modified Mathlib/NumberTheory/NumberField/CanonicalEmbedding.lean + theorem NumberField.mixedEmbedding.adjust_f + theorem NumberField.mixedEmbedding.commMap_apply_of_isComplex + theorem NumberField.mixedEmbedding.commMap_apply_of_isReal + theorem NumberField.mixedEmbedding.commMap_canonical_eq_mixed + theorem NumberField.mixedEmbedding.convexBodyLtFactor_lt_pos + theorem NumberField.mixedEmbedding.convexBodyLtFactor_lt_top + theorem NumberField.mixedEmbedding.convexBodyLt_convex + theorem NumberField.mixedEmbedding.convexBodyLt_mem + theorem NumberField.mixedEmbedding.convexBodyLt_symmetric + theorem NumberField.mixedEmbedding.convexBodyLt_volume + theorem NumberField.mixedEmbedding.disjoint_span_commMap_ker + theorem NumberField.mixedEmbedding.exists_ne_zero_mem_ringOfIntegers_lt + theorem NumberField.mixedEmbedding.latticeBasis_apply + theorem NumberField.mixedEmbedding.mem_span_latticeBasis + theorem NumberField.mixedEmbedding.minkowskiBound_lt_top + theorem NumberField.mixedEmbedding_injective 2023-09-20 09:16:07 f2ec396 perf: make `QuadraticForm.tensorDistrib` noncomputable (#7265) It's actually (trivially) computable, but Lean takes such an extraordinarily long time to compile it that its better to pretend that it isn't. Another instance of #7103. ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/CliffordAlgebra/BaseChange.lean - def CliffordAlgebra.equivBaseChange - def CliffordAlgebra.ofBaseChange - def CliffordAlgebra.ofBaseChangeAux - def CliffordAlgebra.toBaseChange Modified Mathlib/LinearAlgebra/QuadraticForm/TensorProduct.lean - def QuadraticForm.tensorDistrib 2023-09-20 04:57:33 2c3ee37 chore(test/*): add `test_sorry` axiom in tests to make them less noisy (#6868) This PR adds `axiom test_sorry` for the `sorry`s in tests, in order to remove the noisy output of `sorry`. In `test/rewrites.lean` and `test/IsCompact.lean` some of the `#guard_msgs` are `#guard_msgs(warning)`, due to further messages. Affected files: ``` test/apply_fun.lean test/cancel_denoms.lean test/Change.lean test/congr.lean test/congrm.lean test/convert.lean test/DefEqTransformations.lean test/FBinop.lean test/GCongr/inequalities.lean test/GeneralizeProofs.lean test/ImplicitUniverses.lean test/InstanceTransparency.lean test/LibrarySearch/IsCompact.lean test/LiftLets.lean test/linarith.lean test/MfldSetTac.lean test/mod_cases.lean test/Monotonicity.lean test/nontriviality.lean test/norm_num.lean test/push_neg.lean test/Real.lean test/rewrites.lean test/ring.lean test/Zify.lean ``` [Zulip discussion](https://leanprover.zulipchat.com/#narrow/stream/113488-general/topic/noisy.20tests) ESTIMATED CHANGES Modified test/Change.lean Modified test/DefEqTransformations.lean Modified test/FBinop.lean Modified test/GCongr/inequalities.lean Modified test/GeneralizeProofs.lean - def List.nthLe Modified test/ImplicitUniverses.lean Modified test/InstanceTransparency.lean Modified test/LibrarySearch/IsCompact.lean Modified test/LiftLets.lean Modified test/MfldSetTac.lean +/- def LocalHomeomorph.symm +/- def ModelWithCorners.symm Modified test/Monotonicity.lean Modified test/Real.lean Modified test/Zify.lean Modified test/apply_fun.lean Modified test/cancel_denoms.lean +/- def C Modified test/congr.lean Modified test/congrm.lean Modified test/convert.lean Modified test/linarith.lean +/- def P Modified test/mod_cases.lean Modified test/nontriviality.lean +/- def R +/- theorem Set.empty_union Modified test/norm_num.lean +/- def R Modified test/push_neg.lean Modified test/rewrites.lean - def foo +/- theorem six_eq_seven Modified test/ring.lean +/- def R - def f 2023-09-20 00:51:48 f1e1b39 feat(ModelTheory): The theory of fields of charP (#7188) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/ModelTheory/Algebra/Field/CharP.lean + theorem FirstOrder.Field.charP_iff_model_fieldOfChar + theorem FirstOrder.Field.charP_of_model_fieldOfChar + theorem FirstOrder.Field.realize_eqZero + def FirstOrder.Language.Theory.fieldOfChar 2023-09-19 18:49:01 ef379b9 fix: make linarith recognize not-equals when splitNe is true (#7255) This is fixing an error discovered in an example reported by Dan Velleman [on Zulip](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/.E2.9C.94.20Strange.20linarith.20behavior/near/390786695). ESTIMATED CHANGES Modified Mathlib/Lean/Expr/Basic.lean + def Lean.Expr.ne?' Modified Mathlib/Tactic/Linarith/Frontend.lean Modified Mathlib/Tactic/Linarith/Preprocessing.lean Modified test/linarith.lean 2023-09-19 14:59:09 8da7f36 feat: add Prod.associated_iff (#7235) ESTIMATED CHANGES Modified Mathlib/Algebra/BigOperators/Associated.lean + theorem Prod.associated_iff 2023-09-19 14:59:07 fe39449 chore: rm `@simp` from factorial (#7078) ESTIMATED CHANGES Modified Mathlib/Algebra/BigOperators/Intervals.lean Modified Mathlib/Analysis/Calculus/Taylor.lean Modified Mathlib/Analysis/SpecialFunctions/Exponential.lean Modified Mathlib/Analysis/SpecialFunctions/Gamma/BohrMollerup.lean +/- theorem Real.Gamma_two Modified Mathlib/Data/Complex/Exponential.lean Modified Mathlib/Data/Nat/Factorial/Basic.lean Modified Mathlib/Data/Nat/Multiplicity.lean Modified Mathlib/NumberTheory/Bernoulli.lean Modified Mathlib/NumberTheory/ZetaValues.lean 2023-09-19 14:38:03 6af751e feat: completion of the basic ShortComplex.Homology API (#7195) This PR marks the completion of the file `Algebra.Homology.ShortComplex.Homology`. It adds various API definitions and lemmas, including a comparison of the homology in a category and its opposite category. ESTIMATED CHANGES Modified Mathlib/Algebra/Homology/ShortComplex/Homology.lean + theorem CategoryTheory.ShortComplex.asIsoHomologyι_inv_comp_homologyι + theorem CategoryTheory.ShortComplex.asIsoHomologyπ_inv_comp_homologyπ + theorem CategoryTheory.ShortComplex.epi_homologyMap_of_epi_cyclesMap' + theorem CategoryTheory.ShortComplex.homologyMap'_op + theorem CategoryTheory.ShortComplex.homologyMap_op + theorem CategoryTheory.ShortComplex.homologyι_comp_asIsoHomologyι_inv + theorem CategoryTheory.ShortComplex.homologyι_descOpcycles_π_eq_zero_of_boundary + theorem CategoryTheory.ShortComplex.homologyπ_comp_asIsoHomologyπ_inv + theorem CategoryTheory.ShortComplex.isIso_homologyMap_of_isIso_cyclesMap_of_epi + theorem CategoryTheory.ShortComplex.isIso_homologyMap_of_isIso_opcyclesMap_of_mono + theorem CategoryTheory.ShortComplex.isIso_homologyι + theorem CategoryTheory.ShortComplex.isIso_homologyπ + theorem CategoryTheory.ShortComplex.isZero_homology_of_isZero_X₂ + theorem CategoryTheory.ShortComplex.liftCycles_homologyπ_eq_zero_of_boundary + theorem CategoryTheory.ShortComplex.mono_homologyMap_of_mono_opcyclesMap' 2023-09-19 14:15:00 96747a0 feat: Dirichlet character (#7010) - [x] depends on: #7013 ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/NumberTheory/DirichletCharacter/Basic.lean + theorem DirichletCharacter.eval_modulus_sub + theorem DirichletCharacter.periodic + theorem DirichletCharacter.toUnitHom_eq_char' + theorem DirichletCharacter.toUnitHom_eq_iff Modified Mathlib/NumberTheory/LegendreSymbol/MulCharacter.lean + theorem MulChar.coe_toMonoidHom 2023-09-19 12:32:54 904dc41 port the clean tactic from lean 3 to lean 4 (#5909) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Mathport/Syntax.lean Modified Mathlib/Tactic.lean Added Mathlib/Tactic/Clean.lean + def Lean.Expr.clean + def Lean.Expr.cleanConsts + def Mathlib.Tactic.elabClean Added test/Clean.lean + def Tests.withClean + def Tests.withoutClean + def Tests.x' + def Tests.x 2023-09-19 11:30:25 172bfff chore: fix docstrings in RingTheory.Nakayama (#7253) ESTIMATED CHANGES Modified Mathlib/RingTheory/Nakayama.lean 2023-09-19 11:30:24 750d5a4 feat(ModelTheory): the theory of fields (#7186) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/ModelTheory/Algebra/Field/Basic.lean + theorem FirstOrder.Field.FieldAxiom.realize_toSentence_iff_toProp + def FirstOrder.Field.FieldAxiom.toProp + theorem FirstOrder.Field.FieldAxiom.toProp_of_model + def FirstOrder.Field.FieldAxiom.toSentence + inductive FirstOrder.Field.FieldAxiom + def FirstOrder.Language.Theory.field 2023-09-19 11:30:23 4cfea61 feat(UniqueProds): two theorems of Strojnowski (#7171) ESTIMATED CHANGES Modified Mathlib/Algebra/Group/UniqueProds.lean + theorem UniqueProds.of_same + theorem UniqueProds.toIsCancelMul + theorem UniqueProds.toTwoUniqueProds_of_group Modified docs/references.bib 2023-09-19 11:09:01 dd7a1c2 feat: relations between cycles, opcycles and homology of short complexes (#7194) ESTIMATED CHANGES Modified Mathlib/Algebra/Homology/ShortComplex/Homology.lean + theorem CategoryTheory.ShortComplex.LeftHomologyData.homologyIso_hom_comp_leftHomologyIso_inv + theorem CategoryTheory.ShortComplex.LeftHomologyData.homologyπ_comp_homologyIso_hom + theorem CategoryTheory.ShortComplex.LeftHomologyData.leftHomologyIso_hom_comp_homologyIso_inv + theorem CategoryTheory.ShortComplex.LeftHomologyData.π_comp_homologyIso_inv + theorem CategoryTheory.ShortComplex.RightHomologyData.homologyIso_hom_comp_rightHomologyIso_inv + theorem CategoryTheory.ShortComplex.RightHomologyData.homologyIso_hom_comp_ι + theorem CategoryTheory.ShortComplex.RightHomologyData.homologyIso_inv_comp_homologyι + theorem CategoryTheory.ShortComplex.RightHomologyData.rightHomologyIso_hom_comp_homologyIso_inv + theorem CategoryTheory.ShortComplex.comp_homologyMap_comp + theorem CategoryTheory.ShortComplex.homology_π_ι + theorem CategoryTheory.ShortComplex.homologyι_comp_fromOpcycles + theorem CategoryTheory.ShortComplex.homologyι_naturality + theorem CategoryTheory.ShortComplex.homologyπ_comp_leftHomologyIso_inv: + theorem CategoryTheory.ShortComplex.homologyπ_naturality + theorem CategoryTheory.ShortComplex.liftHomology_ι + theorem CategoryTheory.ShortComplex.rightHomologyIso_hom_comp_homologyι + theorem CategoryTheory.ShortComplex.toCycles_comp_homologyπ + theorem CategoryTheory.ShortComplex.π_descHomology + theorem CategoryTheory.ShortComplex.π_homologyMap_ι 2023-09-19 10:04:40 2c07b50 feat: `IsDedekindRing` is `IsDedekindDomain` minus `IsDomain` (#6127) This PR defines `IsDedekindRing` as `IsDedekindDomain` without the bundled `IsDomain` hypothesis. Zulip thread: https://leanprover.zulipchat.com/#narrow/stream/113488-general/topic/Should.20.60IsDedekindDomain.60.20extend.20.60IsDomain.60.3F ESTIMATED CHANGES Modified Mathlib/RingTheory/DedekindDomain/Basic.lean + theorem isDedekindRing_iff Modified Mathlib/RingTheory/DedekindDomain/Dvr.lean Modified Mathlib/RingTheory/DedekindDomain/Ideal.lean Modified Mathlib/RingTheory/IntegrallyClosed.lean +/- theorem IsIntegrallyClosed.exists_algebraMap_eq_of_pow_mem_subalgebra 2023-09-19 07:20:50 c299a42 feat (Data/Matrix/Blocks): simp lemmas for toBlocks of diagonal matrices (#7249) Lemmas `toBlocks₁₁_diagonal`, `toBlocks₂₂_diagonal`, `toBlocks₁₂_diagonal`, `toBlocks₂₁_diagonal` to make dealing with sub blocks of diagonal matrices a bit easier Useful for PR #6042 ESTIMATED CHANGES Modified Mathlib/Data/Matrix/Block.lean + theorem Matrix.toBlocks₁₁_diagonal + theorem Matrix.toBlocks₁₂_diagonal + theorem Matrix.toBlocks₂₁_diagonal + theorem Matrix.toBlocks₂₂_diagonal 2023-09-19 07:20:48 6d8747c chore(GroupCat/Injective): golf (#7204) ESTIMATED CHANGES Modified Mathlib/Algebra/Category/GroupCat/Injective.lean + theorem AddCommGroupCat.enough_injectives_aux_proofs.divBy_self + theorem AddCommGroupCat.enough_injectives_aux_proofs.eq_zero_of_toRatCircle_apply_self + theorem AddCommGroupCat.enough_injectives_aux_proofs.equivZModSpanAddOrderOf_apply_self - theorem AddCommGroupCat.enough_injectives_aux_proofs.finite_order.divBy_addOrderOf_addOrderOf - theorem AddCommGroupCat.enough_injectives_aux_proofs.finite_order.toRatCircle_apply_self_eq - theorem AddCommGroupCat.enough_injectives_aux_proofs.finite_order.toRatCircle_apply_self_eq_aux - theorem AddCommGroupCat.enough_injectives_aux_proofs.finite_order.toRatCircle_apply_self_ne_zero - theorem AddCommGroupCat.enough_injectives_aux_proofs.infinite_order.toRatCircle_apply_self_eq - theorem AddCommGroupCat.enough_injectives_aux_proofs.infinite_order.toRatCircle_apply_self_eq_aux - theorem AddCommGroupCat.enough_injectives_aux_proofs.infinite_order.toRatCircle_apply_self_ne_zero +/- def AddCommGroupCat.enough_injectives_aux_proofs.presentation +/- theorem AddCommGroupCat.enough_injectives_aux_proofs.toNext_inj - theorem AddCommGroupCat.enough_injectives_aux_proofs.toNext_inj_of_exists + theorem AddCommGroupCat.injective_as_module_iff - theorem AddCommGroupCat.injective_as_module_of_injective_as_Ab - theorem AddCommGroupCat.injective_of_injective_as_module Modified Mathlib/CategoryTheory/Preadditive/Injective.lean + theorem CategoryTheory.Equivalence.map_injective_iff Modified Mathlib/CategoryTheory/Preadditive/Projective.lean + theorem CategoryTheory.Equivalence.map_projective_iff 2023-09-19 07:20:47 44ec4f1 feat: the type of cocycles in the complex of morphisms between cochain complexes (#7201) ESTIMATED CHANGES Modified Mathlib/Algebra/Homology/HomotopyCategory/HomComplex.lean + theorem CochainComplex.HomComplex.Cocycle.cochain_ofHom_homOf_eq_coe + theorem CochainComplex.HomComplex.Cocycle.coe_add + theorem CochainComplex.HomComplex.Cocycle.coe_neg + theorem CochainComplex.HomComplex.Cocycle.coe_sub + theorem CochainComplex.HomComplex.Cocycle.coe_zero + theorem CochainComplex.HomComplex.Cocycle.coe_zsmul + def CochainComplex.HomComplex.Cocycle.diff + def CochainComplex.HomComplex.Cocycle.equivHom + theorem CochainComplex.HomComplex.Cocycle.ext + theorem CochainComplex.HomComplex.Cocycle.ext_iff + def CochainComplex.HomComplex.Cocycle.homOf + theorem CochainComplex.HomComplex.Cocycle.homOf_ofHom_eq_self + theorem CochainComplex.HomComplex.Cocycle.mem_iff + def CochainComplex.HomComplex.Cocycle.mk + def CochainComplex.HomComplex.Cocycle.ofHom + theorem CochainComplex.HomComplex.Cocycle.ofHom_homOf_eq_self + theorem CochainComplex.HomComplex.Cocycle.δ_eq_zero + def CochainComplex.HomComplex.Cocycle + def CochainComplex.HomComplex.cocycle 2023-09-19 07:20:46 7b9379f feat: more API for the homology of short complexes (#7193) This PR develops the homology API. This includes the introduction of the notion of category with homology, i.e. a category where all short complexes have homology. ESTIMATED CHANGES Modified Mathlib/Algebra/Homology/ShortComplex/Abelian.lean Modified Mathlib/Algebra/Homology/ShortComplex/Homology.lean + theorem CategoryTheory.ShortComplex.LeftHomologyData.leftHomologyIso_hom_naturality + theorem CategoryTheory.ShortComplex.LeftHomologyData.leftHomologyIso_inv_naturality + theorem CategoryTheory.ShortComplex.RightHomologyData.rightHomologyIso_hom_naturality + theorem CategoryTheory.ShortComplex.RightHomologyData.rightHomologyIso_inv_naturality + theorem CategoryTheory.ShortComplex.isIso_homologyMap_of_epi_of_isIso_of_mono' + theorem CategoryTheory.ShortComplex.leftHomologyIso_hom_naturality + theorem CategoryTheory.ShortComplex.leftHomologyIso_inv_naturality + theorem CategoryTheory.ShortComplex.rightHomologyIso_hom_naturality + theorem CategoryTheory.ShortComplex.rightHomologyIso_inv_naturality 2023-09-19 06:23:54 957593f chore(CategoryTheory): pp_dot for `NatTrans` and `Equivalence` (#7241) The goal view gets pretty unreadable when working with `Equivalence`s without these. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Equivalence.lean Modified Mathlib/CategoryTheory/NatTrans.lean 2023-09-19 04:03:05 98e78f9 refactor(Topology/MetricSpace): remove `Metric.Bounded` (#7240) Use `Bornology.IsBounded` instead. ESTIMATED CHANGES Modified Mathlib/Algebra/Module/Zlattice.lean - theorem Zspan.fundamentalDomain_bounded + theorem Zspan.fundamentalDomain_isBounded Modified Mathlib/Analysis/BoxIntegral/DivergenceTheorem.lean Modified Mathlib/Analysis/BoxIntegral/Partition/Tagged.lean Modified Mathlib/Analysis/Calculus/BumpFunction/FiniteDimension.lean Modified Mathlib/Analysis/Complex/AbsMax.lean +/- theorem Complex.eqOn_closure_of_eqOn_frontier +/- theorem Complex.eqOn_of_eqOn_frontier +/- theorem Complex.norm_le_of_forall_mem_frontier_norm_le Modified Mathlib/Analysis/Complex/Liouville.lean +/- theorem Complex.liouville_theorem_aux +/- theorem Differentiable.apply_eq_apply_of_bounded +/- theorem Differentiable.exists_eq_const_of_bounded Modified Mathlib/Analysis/Complex/PhragmenLindelof.lean Modified Mathlib/Analysis/Complex/Polynomial.lean Modified Mathlib/Analysis/Complex/ReImTopology.lean + theorem Bornology.IsBounded.reProdIm - theorem Metric.Bounded.reProdIm Modified Mathlib/Analysis/Complex/Schwarz.lean Modified Mathlib/Analysis/Convex/Body.lean Modified Mathlib/Analysis/Convex/Measure.lean Modified Mathlib/Analysis/Convex/Normed.lean - theorem bounded_convexHull + theorem isBounded_convexHull Modified Mathlib/Analysis/Convex/Topology.lean +/- theorem bounded_stdSimplex +/- theorem stdSimplex_subset_closedBall Modified Mathlib/Analysis/Convolution.lean Modified Mathlib/Analysis/Fourier/PoissonSummation.lean Modified Mathlib/Analysis/InnerProductSpace/MeanErgodic.lean Modified Mathlib/Analysis/LocallyConvex/Bounded.lean Modified Mathlib/Analysis/Normed/Group/Basic.lean + theorem Bornology.IsBounded.exists_pos_norm_le' - theorem Metric.Bounded.exists_pos_norm_le' - theorem bounded_iff_forall_norm_le' + theorem isBounded_iff_forall_norm_le' Modified Mathlib/Analysis/Normed/Group/Pointwise.lean + theorem Bornology.IsBounded.div + theorem Bornology.IsBounded.inv + theorem Bornology.IsBounded.mul - theorem Metric.Bounded.div - theorem Metric.Bounded.inv - theorem Metric.Bounded.mul Modified Mathlib/Analysis/NormedSpace/Basic.lean Modified Mathlib/Analysis/NormedSpace/CompactOperator.lean Modified Mathlib/Analysis/NormedSpace/Dual.lean - theorem NormedSpace.bounded_polar_of_mem_nhds_zero + theorem NormedSpace.isBounded_polar_of_mem_nhds_zero Modified Mathlib/Analysis/NormedSpace/OperatorNorm.lean +/- theorem ContinuousLinearMap.isClosed_image_coe_of_bounded_of_weak_closed +/- def ContinuousLinearMap.ofMemClosureImageCoeBounded Modified Mathlib/Analysis/NormedSpace/Pointwise.lean + theorem Bornology.IsBounded.smul₀ - theorem Metric.Bounded.smul₀ +/- theorem eventually_singleton_add_smul_subset Modified Mathlib/Analysis/NormedSpace/Spectrum.lean + theorem spectrum.isBounded - theorem spectrum.is_bounded Modified Mathlib/Analysis/NormedSpace/WeakDual.lean Modified Mathlib/Analysis/NormedSpace/lpSpace.lean +/- theorem lp.memℓp_of_tendsto Modified Mathlib/Data/Set/Image.lean Modified Mathlib/Dynamics/BirkhoffSum/NormedSpace.lean Modified Mathlib/MeasureTheory/Constructions/BorelSpace/Basic.lean Modified Mathlib/MeasureTheory/Constructions/Polish.lean Modified Mathlib/MeasureTheory/Function/ContinuousMapDense.lean Modified Mathlib/MeasureTheory/Function/Jacobian.lean Modified Mathlib/MeasureTheory/Function/LocallyIntegrable.lean Modified Mathlib/MeasureTheory/Measure/Lebesgue/Basic.lean Modified Mathlib/MeasureTheory/Measure/Lebesgue/EqHaar.lean Modified Mathlib/MeasureTheory/Measure/MeasureSpace.lean + theorem Bornology.IsBounded.measure_lt_top - theorem Metric.Bounded.measure_lt_top Modified Mathlib/Topology/Bornology/Basic.lean + theorem Bornology.IsBounded.insert +/- def Bornology.cofinite + theorem Bornology.isBounded_iff_forall_mem + theorem Bornology.isBounded_insert + theorem Filter.HasBasis.disjoint_cobounded_iff Modified Mathlib/Topology/Bornology/Hom.lean + theorem Bornology.IsBounded.image - theorem IsBounded.image Modified Mathlib/Topology/ContinuousFunction/Bounded.lean - theorem BoundedContinuousFunction.bounded_image - theorem BoundedContinuousFunction.bounded_range + theorem BoundedContinuousFunction.isBounded_image + theorem BoundedContinuousFunction.isBounded_range Modified Mathlib/Topology/ContinuousFunction/ZeroAtInfty.lean - theorem ZeroAtInftyContinuousMap.bounded_image - theorem ZeroAtInftyContinuousMap.bounded_range + theorem ZeroAtInftyContinuousMap.isBounded_image + theorem ZeroAtInftyContinuousMap.isBounded_range Modified Mathlib/Topology/Instances/ENNReal.lean +/- theorem Real.diam_eq +/- theorem Real.ediam_eq Modified Mathlib/Topology/Instances/Real.lean - theorem Function.Periodic.bounded_of_continuous + theorem Function.Periodic.isBounded_of_continuous - theorem Real.bounded_iff_bddBelow_bddAbove + theorem Real.isBounded_iff_bddBelow_bddAbove - theorem Real.subset_Icc_sInf_sSup_of_bounded + theorem Real.subset_Icc_sInf_sSup_of_isBounded Modified Mathlib/Topology/MetricSpace/Antilipschitz.lean - theorem AntilipschitzWith.bounded_preimage + theorem AntilipschitzWith.isBounded_preimage Modified Mathlib/Topology/MetricSpace/Basic.lean + theorem Bornology.IsBounded.isCompact_closure + theorem Bornology.IsBounded.subset_ball + theorem Bornology.IsBounded.subset_ball_lt + theorem Bornology.IsBounded.subset_closedBall + theorem Bornology.IsBounded.subset_closedBall_lt - theorem CauchySeq.bounded_range + theorem CauchySeq.isBounded_range +/- theorem Filter.Tendsto.congr_dist - theorem IsCompact.bounded + theorem IsCompact.isBounded - theorem Metric.Bounded.ediam_ne_top - theorem Metric.Bounded.isCompact_closure - theorem Metric.Bounded.mono - theorem Metric.Bounded.subset_ball - theorem Metric.Bounded.subset_ball_lt - theorem Metric.Bounded.union - def Metric.Bounded - theorem Metric.Finite_bounded_inter_isClosed - theorem Metric.bounded_Icc - theorem Metric.bounded_Ico - theorem Metric.bounded_Ioc - theorem Metric.bounded_Ioo - theorem Metric.bounded_ball - theorem Metric.bounded_biUnion - theorem Metric.bounded_closedBall - theorem Metric.bounded_closure_iff - theorem Metric.bounded_closure_of_bounded - theorem Metric.bounded_empty - theorem Metric.bounded_iff_ediam_ne_top - theorem Metric.bounded_iff_isBounded - theorem Metric.bounded_iff_mem_bounded - theorem Metric.bounded_iff_subset_ball - theorem Metric.bounded_of_bddAbove_of_bddBelow - theorem Metric.bounded_of_compactSpace - theorem Metric.bounded_of_finite - theorem Metric.bounded_range_iff - theorem Metric.bounded_range_of_cauchy_map_cofinite - theorem Metric.bounded_range_of_tendsto - theorem Metric.bounded_range_of_tendsto_cofinite - theorem Metric.bounded_range_of_tendsto_cofinite_uniformity - theorem Metric.bounded_singleton - theorem Metric.bounded_sphere - theorem Metric.bounded_union - theorem Metric.compactSpace_iff_bounded_univ + theorem Metric.compactSpace_iff_isBounded_univ +/- theorem Metric.diam_eq_zero_of_unbounded +/- theorem Metric.diam_mono + theorem Metric.disjoint_cobounded_nhds + theorem Metric.disjoint_cobounded_nhdsSet + theorem Metric.disjoint_nhdsSet_cobounded + theorem Metric.disjoint_nhds_cobounded +/- theorem Metric.dist_le_diam_of_mem +/- theorem Metric.ediam_eq_top_iff_unbounded +/- theorem Metric.ediam_of_unbounded +/- theorem Metric.eventually_nhds_prod_iff - theorem Metric.exists_isOpen_bounded_image_inter_of_isCompact_of_continuousOn - theorem Metric.exists_isOpen_bounded_image_inter_of_isCompact_of_forall_continuousWithinAt - theorem Metric.exists_isOpen_bounded_image_of_isCompact_of_continuousOn - theorem Metric.exists_isOpen_bounded_image_of_isCompact_of_forall_continuousAt + theorem Metric.exists_isOpen_isBounded_image_inter_of_isCompact_of_continuousOn + theorem Metric.exists_isOpen_isBounded_image_inter_of_isCompact_of_forall_continuousWithinAt + theorem Metric.exists_isOpen_isBounded_image_of_isCompact_of_continuousOn + theorem Metric.exists_isOpen_isBounded_image_of_isCompact_of_forall_continuousAt + theorem Metric.finite_isBounded_inter_isClosed + theorem Metric.isBounded_Icc + theorem Metric.isBounded_Ico + theorem Metric.isBounded_Ioc + theorem Metric.isBounded_Ioo + theorem Metric.isBounded_ball + theorem Metric.isBounded_closedBall + theorem Metric.isBounded_closure_iff + theorem Metric.isBounded_closure_of_isBounded + theorem Metric.isBounded_iff_ediam_ne_top + theorem Metric.isBounded_iff_subset_closedBall + theorem Metric.isBounded_image_iff + theorem Metric.isBounded_of_bddAbove_of_bddBelow + theorem Metric.isBounded_of_compactSpace + theorem Metric.isBounded_range_iff + theorem Metric.isBounded_range_of_cauchy_map_cofinite + theorem Metric.isBounded_range_of_tendsto + theorem Metric.isBounded_range_of_tendsto_cofinite + theorem Metric.isBounded_range_of_tendsto_cofinite_uniformity + theorem Metric.isBounded_sphere - theorem Metric.isCompact_of_isClosed_bounded + theorem Metric.isCompact_of_isClosed_isBounded +/- theorem Metric.tendstoLocallyUniformlyOn_iff +/- theorem Metric.tendstoLocallyUniformly_iff +/- theorem Metric.tendstoUniformlyOnFilter_iff +/- theorem Metric.tendstoUniformlyOn_iff +/- theorem Metric.tendstoUniformly_iff - theorem TotallyBounded.bounded + theorem TotallyBounded.isBounded +/- theorem lebesgue_number_lemma_of_metric +/- theorem tendsto_iff_of_dist +/- theorem tendsto_uniformity_iff_dist_tendsto_zero Modified Mathlib/Topology/MetricSpace/Closeds.lean Modified Mathlib/Topology/MetricSpace/GromovHausdorff.lean Modified Mathlib/Topology/MetricSpace/GromovHausdorffRealized.lean Modified Mathlib/Topology/MetricSpace/HausdorffDistance.lean + theorem Bornology.IsBounded.cthickening - theorem Metric.Bounded.cthickening +/- theorem Metric.dist_le_infDist_add_diam +/- theorem Metric.hausdorffDist_le_diam Modified Mathlib/Topology/MetricSpace/IsometricSMul.lean + theorem Bornology.IsBounded.smul - theorem Metric.Bounded.smul Modified Mathlib/Topology/MetricSpace/Lipschitz.lean - theorem LipschitzWith.bounded_image +/- theorem LipschitzWith.diam_image_le + theorem LipschitzWith.isBounded_image - theorem Metric.Bounded.left_of_prod - theorem Metric.Bounded.right_of_prod - theorem Metric.bounded_prod - theorem Metric.bounded_prod_of_nonempty Modified Mathlib/Topology/MetricSpace/PiNat.lean Modified Mathlib/Topology/Sequences.lean +/- theorem tendsto_subseq_of_bounded +/- theorem tendsto_subseq_of_frequently_bounded Modified Mathlib/Topology/TietzeExtension.lean 2023-09-19 03:31:25 28b8e22 chore(LpSpace): golf (#7214) Cherry-picked from #6839 ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Function/LpSpace.lean +/- theorem MeasureTheory.Lp.mem_Lp_iff_snorm_lt_top + theorem MeasureTheory.Lp.nnnorm_coe_ennreal 2023-09-19 02:04:13 d715e38 feat: rw? uses the first suggestion (#7247) ESTIMATED CHANGES Modified Mathlib/Tactic/Rewrites.lean Modified test/rewrites.lean 2023-09-19 02:04:11 3fa0c3f chore: fix non-class instances in factorization (#7245) See https://leanprover.zulipchat.com/#narrow/stream/270676-lean4/topic/isClass.3F.20panic!/near/391792347 ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Category/Factorisation.lean + def CategoryTheory.Factorisation.IsInitial_initial + def CategoryTheory.Factorisation.IsTerminal_terminal 2023-09-19 01:45:16 5070345 feat: update to leanprover/std4#258 (#7248) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Tactic.lean Modified Mathlib/Tactic/Attr/Register.lean Modified Mathlib/Tactic/Common.lean Deleted Mathlib/Tactic/LabelAttr.lean - def Mathlib.Tactic.LabelAttr.labelled - def Mathlib.Tactic.LabelAttr.mkLabelAttr - def Mathlib.Tactic.LabelAttr.mkLabelExt - def Mathlib.Tactic.LabelAttr.registerLabelAttr Modified Mathlib/Tactic/Monotonicity/Attr.lean Modified Mathlib/Tactic/SolveByElim.lean Deleted Mathlib/Util/DummyLabelAttr.lean Modified lake-manifest.json Modified test/solve_by_elim/basic.lean 2023-09-18 22:14:14 6d27aa8 doc(Topology/Metric/Lipschitz): add a few more docstrings (#7233) ESTIMATED CHANGES Modified Mathlib/Topology/MetricSpace/Lipschitz.lean 2023-09-18 20:19:55 01d4aaa docs(Util/Import): clarify `#find_home!` docs (#7242) Include in the docs for `#find_home!` a clarification, explaining a possible misunderstanding pointed out by @riccardobrasca. The outcome of `#find_home!` could still be the current lemma. Also mention that the best results are obtained inside a file with `import Mathlib`. ESTIMATED CHANGES Modified Mathlib/Util/Imports.lean 2023-09-18 18:26:16 4575c79 chore: refactor Lie algebra weight spaces (#7210) The key change is the new definition `LieModule.weightSpaceOf` which shows that the eigenspaces of the action of a single element of a Lie algebra on a representation are Lie submodules. I need to use this fact to develop the theory further. ESTIMATED CHANGES Modified Mathlib/Algebra/Lie/Nilpotent.lean - theorem LieAlgebra.iInf_max_gen_zero_eigenspace_eq_top_of_nilpotent - theorem LieModule.iInf_max_gen_zero_eigenspace_eq_top_of_nilpotent + theorem LieModule.maxGenEigenSpace_toEndomorphism_eq_top Modified Mathlib/Algebra/Lie/Submodule.lean + theorem LieSubmodule.iInf_coe + theorem LieSubmodule.iInf_coe_toSubmodule + theorem LieSubmodule.mem_iInf + theorem LieSubmodule.mem_mk_iff' Modified Mathlib/Algebra/Lie/Weights.lean - theorem LieModule.coe_weightSpace' - theorem LieModule.exists_preWeightSpace_zero_le_ker_of_isNoetherian + theorem LieModule.exists_weightSpace_zero_le_ker_of_isNoetherian + theorem LieModule.lie_mem_maxGenEigenspace_toEndomorphism - theorem LieModule.lie_mem_preWeightSpace_of_mem_preWeightSpace - theorem LieModule.mem_preWeightSpace + theorem LieModule.mem_weightSpaceOf - def LieModule.preWeightSpace - def LieModule.weightSpace' + def LieModule.weightSpaceOf 2023-09-18 17:00:44 5f9ca85 fix: use `match` with `Decidable`. (#7232) This works around leanprover/lean4#2552 - fix found by @b-mehta. I changed the `Nat` instance where the issue was found, and some `List` instances in hope it fixes mysterious slowdowns with `Finset` decidability. Any more instances changed would probably be good. ESTIMATED CHANGES Modified Mathlib/Data/Nat/Basic.lean Modified Mathlib/Init/Data/List/Instances.lean 2023-09-18 15:32:47 8658bfa chore(Finsupp/Lex): syntactically better data fields in Partial/LinearOrder instances (#7229) ESTIMATED CHANGES Modified Counterexamples/ZeroDivisorsInAddMonoidAlgebras.lean Modified Mathlib/Algebra/Order/Group/Prod.lean Modified Mathlib/Algebra/Order/Monoid/Prod.lean Modified Mathlib/Data/DFinsupp/Lex.lean Modified Mathlib/Data/Finsupp/Lex.lean Modified Mathlib/Data/Pi/Lex.lean 2023-09-18 15:32:46 a150006 feat(LinearAlgebra/TensorProduct/Prod): `TensorProduct` distributes over `Prod` (#7226) As requested [over a year ago](https://leanprover.zulipchat.com/#narrow/stream/217875-Is-there-code-for-X.3F/topic/tensor.20product.20distributes.20over.20.60prod.60/near/290752673) by @kbuzzard. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/LinearAlgebra/TensorProduct/Prod.lean + def TensorProduct.prodLeft + theorem TensorProduct.prodLeft_symm_tmul + theorem TensorProduct.prodLeft_tmul + def TensorProduct.prodRight + theorem TensorProduct.prodRight_symm_tmul + theorem TensorProduct.prodRight_tmul 2023-09-18 15:32:44 d9e7e89 feat(LinearAlgebra/QuadraticForm/TensorProduct): commutativity and associativity (#7223) This was discussed at LFTCM regarding the Grothendieck-Witt ring of quadratic forms. These could eventually be used to show that #6987 forms a braided monoidal category. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/LinearAlgebra/BilinearForm.lean + theorem LinearMap.toBilin_apply Modified Mathlib/LinearAlgebra/QuadraticForm/Basic.lean + theorem QuadraticForm.polarBilin_comp + theorem QuadraticForm.polarBilin_injective + theorem QuadraticForm.toQuadraticForm_polarBilin Added Mathlib/LinearAlgebra/QuadraticForm/TensorProduct/Isometries.lean + def QuadraticForm.Isometry.tmul + theorem QuadraticForm.Isometry.tmul_apply + theorem QuadraticForm.comp_tensorLId_eq + theorem QuadraticForm.comp_tensorRId_eq + def QuadraticForm.tensorAssoc + theorem QuadraticForm.tensorAssoc_apply + theorem QuadraticForm.tensorAssoc_symm_apply + def QuadraticForm.tensorComm + theorem QuadraticForm.tensorComm_apply + theorem QuadraticForm.tensorComm_symm + def QuadraticForm.tensorLId + theorem QuadraticForm.tensorLId_apply + theorem QuadraticForm.tensorLId_symm_apply + def QuadraticForm.tensorRId + theorem QuadraticForm.tensorRId_apply + theorem QuadraticForm.tensorRId_symm_apply + theorem QuadraticForm.tmul_comp_tensorAssoc + theorem QuadraticForm.tmul_comp_tensorComm + theorem QuadraticForm.tmul_comp_tensorMap + theorem QuadraticForm.tmul_tensorAssoc_apply + theorem QuadraticForm.tmul_tensorComm_apply + theorem QuadraticForm.tmul_tensorLId_apply + theorem QuadraticForm.tmul_tensorMap_apply + theorem QuadraticForm.tmul_tensorRId_apply 2023-09-18 15:32:43 0d6cb15 feat: functors which preserve homology (#7197) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Homology/ShortComplex/PreservesHomology.lean + def CategoryTheory.Functor.PreservesHomology.preservesCokernel + def CategoryTheory.Functor.PreservesHomology.preservesKernel + def CategoryTheory.ShortComplex.LeftHomologyData.IsPreservedBy.hf' + def CategoryTheory.ShortComplex.LeftHomologyData.IsPreservedBy.hg + theorem CategoryTheory.ShortComplex.LeftHomologyData.map_f' + def CategoryTheory.ShortComplex.LeftHomologyMapData.map 2023-09-18 15:32:41 712ddec feat: study of the left/right homology comparison morphism (#7192) In this PR, it is shown that a short complex has homology iff it has both left and right homology and that the comparison morphism between the two is an isomorphism. ESTIMATED CHANGES Modified Mathlib/Algebra/Homology/ShortComplex/Exact.lean + theorem CategoryTheory.ShortComplex.exact_iff_isZero_rightHomology - theorem CategoryTheory.ShortComplex.exact_iff_isZero_right_homology Modified Mathlib/Algebra/Homology/ShortComplex/Homology.lean + theorem CategoryTheory.ShortComplex.HomologyData.leftRightHomologyComparison'_eq + theorem CategoryTheory.ShortComplex.HomologyData.right_homologyIso_eq_left_homologyIso_trans_iso + theorem CategoryTheory.ShortComplex.hasHomology_of_isIsoLeftRightHomologyComparison + theorem CategoryTheory.ShortComplex.hasHomology_of_isIso_leftRightHomologyComparison' + theorem CategoryTheory.ShortComplex.leftRightHomologyComparison'_compatibility + theorem CategoryTheory.ShortComplex.leftRightHomologyComparison'_eq_leftHomologpMap'_comp_iso_hom_comp_rightHomologyMap' + theorem CategoryTheory.ShortComplex.leftRightHomologyComparison'_fac + theorem CategoryTheory.ShortComplex.leftRightHomologyComparison'_naturality + theorem CategoryTheory.ShortComplex.leftRightHomologyComparison_eq + theorem CategoryTheory.ShortComplex.leftRightHomologyComparison_fac + theorem CategoryTheory.ShortComplex.π_leftRightHomologyComparison_ι 2023-09-18 15:32:40 e7a507d feat(ModelTheory): FreeCommRing to term in the language of rings (#7187) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/ModelTheory/Algebra/Ring/FreeCommRing.lean + theorem FirstOrder.Ring.realize_termOfFreeCommRing 2023-09-18 15:32:39 86fa789 feat: TwoUniqueProds (#7169) + Introduce `TwoUniqueProds/Sums`: let `R[G]` be a monoid algebra over a semiring `R` without zero-divisors. A natural sufficient condition for `R[G]` to have no zero-divisors is that `G` has `UniqueProds`, as is shown by [MonoidAlgebra.instNoZeroDivisorsOfUniqueProds](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Algebra/MonoidAlgebra/NoZeroDivisors.html#MonoidAlgebra.instNoZeroDivisorsOfUniqueProds). Similarly, a natural sufficient condition for `R[G]` to have only trivial units (of the form `rg` with `r` a unit in `R` and `g` a unit in `G`) is that `G` has `TwoUniqueProds`, but we don't prove this yet in this PR. `TwoUniqueProds G` is also a natural sufficient condition in order for factors of a homogeneous element in an algebra graded by `G` without zero-divisors to themselves be homogeneous. + Show `TwoUniqueProds` implies `UniqueProds`: `TwoUniqueProds.toUniqueProds` + Strengthen `of_Covariant_right/left` to have `TwoUniqueProds` as conclusion + Extract `of_image_filter` from the proof of the instance `UniqueProds (∀ i, G i)` and use it also in the proof of `TwoUniqueProds (∀ i, G i)` + Use some private defs (starting from `private abbrev I`) to transfer `(Two)UniqueProds (∀ i, G i)` instances to `(Two)UniqueProds (G × H)` + Move the `[Module ℚ G] : UniqueSums G` instance from NoZeroDivisors.lean to UniqueProds.lean and strengthen to `TwoUniqueSums` New lemmas about UniqueMul: + `of_card_le_one`, `iff_card_le_one`, `UniqueMul_of_TwoUniqueMul` ESTIMATED CHANGES Modified Mathlib/Algebra/Group/UniqueProds.lean + theorem TwoUniqueProds.mulHom_image_iff + theorem TwoUniqueProds.mulHom_image_of_injective + theorem TwoUniqueProds.of_mulOpposite + theorem UniqueMul.iff_card_le_one +/- theorem UniqueMul.mt + theorem UniqueMul.of_card_le_one + theorem UniqueMul.of_image_filter +/- theorem UniqueMul.set_subsingleton +/- theorem UniqueMul.subsingleton +/- theorem UniqueProds.of_mulOpposite + theorem uniqueMul_of_twoUniqueMul Modified Mathlib/Algebra/MonoidAlgebra/NoZeroDivisors.lean 2023-09-18 15:32:38 6aa66fa chore: tidy up a factorization proof (#7164) This used to not work because the finsupp poisoned the computability, but it seems fine now. Also slightly tidied it whilst I was there. However, I'm not sure if this is actually wise to keep as something towards `Sort*`: the created term on `k + 2` is not pretty and has an `Eq.mpr`. ESTIMATED CHANGES Modified Mathlib/Data/Nat/Factorization/Basic.lean + def Nat.recOnMul 2023-09-18 15:32:36 a2e8c03 chore: move some lemmas about LinearMap pow/comp earlier (#7158) ESTIMATED CHANGES Modified Mathlib/Algebra/Module/LinearMap.lean + theorem LinearMap.coe_pow + theorem LinearMap.commute_pow_left_of_commute + theorem LinearMap.comp_assoc + theorem LinearMap.id_pow + theorem LinearMap.injective_of_iterate_injective + theorem LinearMap.iterate_bijective + theorem LinearMap.iterate_injective + theorem LinearMap.iterate_succ + theorem LinearMap.iterate_surjective + theorem LinearMap.pow_apply + theorem LinearMap.pow_map_zero_of_le + theorem LinearMap.surjective_of_iterate_surjective Modified Mathlib/LinearAlgebra/Basic.lean - theorem LinearMap.coe_pow - theorem LinearMap.commute_pow_left_of_commute - theorem LinearMap.comp_assoc - theorem LinearMap.id_pow - theorem LinearMap.injective_of_iterate_injective - theorem LinearMap.iterate_bijective - theorem LinearMap.iterate_injective - theorem LinearMap.iterate_succ - theorem LinearMap.iterate_surjective - theorem LinearMap.pow_apply - theorem LinearMap.pow_map_zero_of_le - theorem LinearMap.surjective_of_iterate_surjective 2023-09-18 15:32:35 4b30681 feat: the category of quadratic modules, QuadraticModuleCat (#6987) The motivations here are: * `QuadraticModuleCat.cliffordAlgebra : QuadraticModuleCat.{u} R ⥤ AlgebraCat.{u} R` (in this PR) * The project to formalize the Witt ring of quadratic forms ended up needing `QuadraticModuleCat`, which came up at LFTCM2023 ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/LinearAlgebra/CliffordAlgebra/CategoryTheory.lean + def QuadraticModuleCat.cliffordAlgebra Added Mathlib/LinearAlgebra/QuadraticForm/QuadraticModuleCat.lean + def CategoryTheory.Iso.toIsometryEquiv + theorem CategoryTheory.Iso.toIsometryEquiv_refl + theorem CategoryTheory.Iso.toIsometryEquiv_symm + theorem CategoryTheory.Iso.toIsometryEquiv_trans + theorem QuadraticModuleCat.Hom.toIsometry_injective + structure QuadraticModuleCat.Hom + theorem QuadraticModuleCat.forget₂_map + theorem QuadraticModuleCat.forget₂_obj + theorem QuadraticModuleCat.hom_ext + def QuadraticModuleCat.of + def QuadraticModuleCat.ofIso + theorem QuadraticModuleCat.ofIso_refl + theorem QuadraticModuleCat.ofIso_symm + theorem QuadraticModuleCat.ofIso_trans + theorem QuadraticModuleCat.toIsometry_comp + theorem QuadraticModuleCat.toIsometry_id + structure QuadraticModuleCat 2023-09-18 13:50:48 00fdd1f chore: fix docstring of IsLocalization (#7234) ESTIMATED CHANGES Modified Mathlib/RingTheory/Localization/Basic.lean 2023-09-18 13:50:46 3882a68 chore: disable `pp.proof.withType` globally (#7211) Related [Zulip thread](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/Pretty.20printing.20.60proofs.2EWithType.60) ESTIMATED CHANGES Modified lakefile.lean 2023-09-18 13:50:45 3e44bb0 chore: replace ConeMorphism.Hom by ConeMorphism.hom (#7176) ESTIMATED CHANGES Modified Mathlib/AlgebraicTopology/FundamentalGroupoid/Product.lean Modified Mathlib/CategoryTheory/Adjunction/Limits.lean Modified Mathlib/CategoryTheory/Extensive.lean Modified Mathlib/CategoryTheory/Limits/ColimitLimit.lean Modified Mathlib/CategoryTheory/Limits/ConeCategory.lean Modified Mathlib/CategoryTheory/Limits/Cones.lean +/- theorem CategoryTheory.Limits.CoconeMorphism.ext +/- theorem CategoryTheory.Limits.Cocones.cocone_iso_of_hom_iso +/- theorem CategoryTheory.Limits.ConeMorphism.ext +/- theorem CategoryTheory.Limits.Cones.cone_iso_of_hom_iso Modified Mathlib/CategoryTheory/Limits/Constructions/Over/Products.lean Modified Mathlib/CategoryTheory/Limits/FilteredColimitCommutesFiniteLimit.lean Modified Mathlib/CategoryTheory/Limits/Final.lean Modified Mathlib/CategoryTheory/Limits/Fubini.lean Modified Mathlib/CategoryTheory/Limits/HasLimits.lean Modified Mathlib/CategoryTheory/Limits/IsLimit.lean +/- def CategoryTheory.Limits.IsColimit.descCoconeMorphism +/- def CategoryTheory.Limits.IsLimit.liftConeMorphism Modified Mathlib/CategoryTheory/Limits/Shapes/Equalizers.lean +/- theorem CategoryTheory.Limits.Fork.hom_comp_ι +/- theorem CategoryTheory.Limits.Fork.π_comp_hom Modified Mathlib/CategoryTheory/Limits/Shapes/Multiequalizer.lean +/- theorem CategoryTheory.Limits.Multicofork.π_comp_hom +/- theorem CategoryTheory.Limits.Multifork.hom_comp_ι Modified Mathlib/CategoryTheory/Limits/Shapes/Terminal.lean Modified Mathlib/CategoryTheory/Limits/Shapes/WideEqualizers.lean Modified Mathlib/CategoryTheory/Sites/CompatiblePlus.lean Modified Mathlib/CategoryTheory/Sites/Sheaf.lean Modified Mathlib/Topology/Sheaves/SheafCondition/EqualizerProducts.lean Modified Mathlib/Topology/Sheaves/SheafCondition/OpensLeCover.lean 2023-09-18 13:50:44 f8add0e doc(Geometry/Manifold): manifolds are not required to be Hausdorff nor second countable (#7159) For many results, these assumptions are not required. As finite-dimensional manifolds are commonly assumed to be Hausdorff and second countable, it seems worth to call this out explicitly. ESTIMATED CHANGES Modified Mathlib/Geometry/Manifold/SmoothManifoldWithCorners.lean 2023-09-18 13:50:42 9dd5d67 chore(test/DeriveToExpr + search/BestFirst): quiet two tests with large outputs (#7156) Removes approximately 350 lines of noisy output from `test`. [Zulip discussion](https://leanprover.zulipchat.com/#narrow/stream/113488-general/topic/noisy.20tests) ESTIMATED CHANGES Modified test/DeriveToExpr.lean Modified test/search/BestFirst.lean 2023-09-18 13:50:41 5553d1d fix(Topology/Order/UpperLowerSetTopology): Fix theorem names in UpperLowerSetTopology to match mathlib4 conventions (#6557) Modify lemma names in `UpperLowerSetTopology` to meet Mathlib4 conventions. ESTIMATED CHANGES Modified Mathlib/Topology/Order/LowerUpperTopology.lean + def WithLowerTopology.toDualHomeomorph - def toOrderDualHomeomorph Modified Mathlib/Topology/Order/UpperLowerSetTopology.lean - theorem LowerSetDual_iff_UpperSet - theorem LowerSetTopology.IsOpen_iff_IsLowerSet - theorem LowerSetTopology.LowerSetLELower - theorem LowerSetTopology.Monotone_to_LowerTopology_Continuous + theorem LowerSetTopology.isOpen_iff_isLowerSet + theorem LowerSetTopology.lowerSet_LE_lower + theorem LowerSetTopology.monotone_to_lowerTopology_continuous - def UpperLowerSet_toOrderDualHomeomorph - theorem UpperSetDual_iff_LowerSet - theorem UpperSetTopology.IsOpen_iff_IsUpperSet - theorem UpperSetTopology.Monotone_to_UpperTopology_Continuous - theorem UpperSetTopology.UpperSetLEUpper + theorem UpperSetTopology.isOpen_iff_isUpperSet + theorem UpperSetTopology.monotone_to_upperTopology_continuous + theorem UpperSetTopology.upperSet_LE_upper + def WithUpperSetTopology.toDualHomeomorph + theorem lowerSet_dual_iff_upperSet + theorem upperSet_dual_iff_lowerSet 2023-09-18 12:27:25 a19a62d fix: `replace` does not work when importing `Mathlib.Tactic.Replace` (#7080) `replace a := f a` does not work when only importing `Mathlib.Tactic.Replace`. ESTIMATED CHANGES Modified Mathlib/Tactic/Replace.lean Modified test/Replace.lean 2023-09-18 06:07:07 e70f880 chore: bump to std4#261 (#7141) ESTIMATED CHANGES Modified Mathlib/Algebra/Hom/GroupInstances.lean Modified Mathlib/Data/Int/Cast/Basic.lean Modified Mathlib/Data/Int/Order/Basic.lean Modified Mathlib/Init/Data/Int/CompLemmas.lean Modified lake-manifest.json 2023-09-18 04:21:04 b955f55 chore: replace `minpoly.eq_of_algebraMap_eq` by `algebraMap_eq` (#7228) Also changes the repetitive names `minpoly.minpoly_algHom/Equiv` to `minpoly.algHom/Equiv_eq` ESTIMATED CHANGES Modified Mathlib/FieldTheory/AbelRuffini.lean Modified Mathlib/FieldTheory/Adjoin.lean +/- theorem IntermediateField.minpoly_gen Modified Mathlib/FieldTheory/IntermediateField.lean +/- theorem IntermediateField.minpoly_eq Modified Mathlib/FieldTheory/Minpoly/Basic.lean + theorem minpoly.algEquiv_eq + theorem minpoly.algHom_eq + theorem minpoly.algebraMap_eq - theorem minpoly.minpoly_algEquiv - theorem minpoly.minpoly_algHom Modified Mathlib/FieldTheory/Minpoly/Field.lean - theorem minpoly.eq_of_algebraMap_eq Modified Mathlib/FieldTheory/Minpoly/IsIntegrallyClosed.lean Modified Mathlib/FieldTheory/NormalClosure.lean Modified Mathlib/LinearAlgebra/Matrix/Charpoly/Minpoly.lean Modified Mathlib/RingTheory/Adjoin/PowerBasis.lean Modified Mathlib/RingTheory/Norm.lean Modified Mathlib/RingTheory/Trace.lean 2023-09-18 04:21:03 dd84089 feat: rework `StrictSeries` to `RelSeries` (#7221) I amend the definition of `StrictSeries` according to [this thread](https://leanprover.zulipchat.com/#narrow/stream/144837-PR-reviews/topic/StrictSeries.20!4.233858.2C.20!4.233852/near/356952195) Now a `RelSeries r` of length `n` is $a_0 \stackrel{r}{\to} a_1 \stackrel{r}{\to} \dots \stackrel{r}{\to} a_n$. In case `r` is transitive, then `p : RelSeries r` implies that the underlying function of `r` is strictly monotonic. Then if $\alpha$ is a preordered set, an `LTSeries` is a `RelSeries (. < .)` and its Krull dimension is defined as the supremum of length of `LTSeries`. For future: now `CompositionSeries` is `RelSeries jordan_holder_lattice.is_maximal` and rework the Jordan Holder file ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Order/KrullDimension.lean - theorem StrictSeries.le_def - theorem StrictSeries.lt_def - def StrictSeries.singleton - theorem StrictSeries.top_len_unique' - theorem StrictSeries.top_len_unique - structure StrictSeries Added Mathlib/Order/RelSeries.lean + theorem LTSeries.length_withLength + theorem LTSeries.longestOf_is_longest + theorem LTSeries.longestOf_len_unique + theorem LTSeries.monotone + theorem LTSeries.nonempty_of_infiniteDimensionalType + theorem LTSeries.strictMono + theorem RelSeries.coe_ofLE + theorem RelSeries.ext + def RelSeries.fromListChain' + theorem RelSeries.length_le_length_longestOf + theorem RelSeries.length_withLength + theorem RelSeries.nonempty_of_infiniteDimensional + def RelSeries.ofLE + theorem RelSeries.rel_of_lt + theorem RelSeries.rel_or_eq_of_le + def RelSeries.singleton + theorem RelSeries.toList_chain' + theorem RelSeries.toList_ne_empty + structure RelSeries 2023-09-18 01:46:36 559a3fe chore: update to std4#100 (#6743) Std bump patch for https://github.com/leanprover/std4/pull/100 ESTIMATED CHANGES Modified Mathlib/Data/Finset/Basic.lean Modified Mathlib/Data/List/Basic.lean - theorem List.drop_append_eq_append_drop - theorem List.drop_append_of_le_length Modified Mathlib/Data/List/Dedup.lean + theorem List.dedup_idem - theorem List.dedup_idempotent Modified Mathlib/Data/List/Nodup.lean Modified Mathlib/Data/List/Pairwise.lean - theorem List.Pairwise.and - theorem List.Pairwise.and_mem - theorem List.Pairwise.drop - theorem List.Pairwise.filter - theorem List.Pairwise.filter_map - theorem List.Pairwise.forall_of_forall_of_flip - theorem List.Pairwise.iff - theorem List.Pairwise.iff_of_mem - theorem List.Pairwise.imp_mem - theorem List.Pairwise.imp_of_mem - theorem List.Pairwise.imp₂ - theorem List.Pairwise.map - theorem List.Pairwise.of_cons - theorem List.Pairwise.of_map - theorem List.Pairwise.tail - theorem List.forall_mem_pwFilter - theorem List.pairwise_and_iff - theorem List.pairwise_append_comm - theorem List.pairwise_bind - theorem List.pairwise_filter - theorem List.pairwise_filterMap - theorem List.pairwise_iff_get - theorem List.pairwise_join - theorem List.pairwise_middle - theorem List.pairwise_of_forall - theorem List.pairwise_of_reflexive_on_dupl_of_forall_ne - theorem List.pairwise_pair - theorem List.pairwise_pwFilter - theorem List.pairwise_replicate - theorem List.pairwise_singleton - theorem List.pwFilter_cons_of_neg - theorem List.pwFilter_cons_of_pos - theorem List.pwFilter_eq_self - theorem List.pwFilter_idempotent - theorem List.pwFilter_map - theorem List.pwFilter_nil - theorem List.pwFilter_sublist - theorem List.pwFilter_subset - theorem List.rel_of_pairwise_cons Modified Mathlib/Data/List/Perm.lean Modified Mathlib/Data/Multiset/Dedup.lean + theorem Multiset.dedup_idem - theorem Multiset.dedup_idempotent Modified lake-manifest.json 2023-09-17 19:35:28 85699ba feat: add lemma eq_C_of_Empty (#7208) Adds a new lemma ESTIMATED CHANGES Modified Mathlib/Data/MvPolynomial/Basic.lean + theorem MvPolynomial.eq_C_of_isEmpty 2023-09-17 16:14:30 9ebe359 feat: add lemma `Quotient.exists` (#7220) Also `forall_quotient_iff {α : Type*} [r : Setoid α] ...` -> `Quotient.forall {α : Sort*} {s : Setoid α} ...` ESTIMATED CHANGES Modified Mathlib/Data/Quot.lean + theorem Quotient.exists + theorem Quotient.forall - theorem forall_quotient_iff Modified Mathlib/ModelTheory/Fraisse.lean Modified Mathlib/ModelTheory/Ultraproducts.lean Modified Mathlib/Topology/UniformSpace/Separation.lean 2023-09-17 13:55:11 dd1c3d0 chore: redefine `Setoid.correspondence` for better defeq (#7212) ESTIMATED CHANGES Modified Mathlib/Data/Setoid/Basic.lean 2023-09-17 11:27:10 bfaffcf chore: bump to v4.1.0-rc1 (2nd attempt) (#7216) ESTIMATED CHANGES Modified .github/workflows/bors.yml Modified .github/workflows/build.yml Modified .github/workflows/build.yml.in Modified .github/workflows/build_fork.yml Modified .gitignore Modified Archive/Imo/Imo1959Q1.lean +/- theorem imo1959_q1 Modified Archive/Wiedijk100Theorems/PerfectNumbers.lean Modified GNUmakefile Modified Mathlib/Algebra/IsPrimePow.lean +/- theorem Nat.disjoint_divisors_filter_isPrimePow Modified Mathlib/AlgebraicGeometry/EllipticCurve/Weierstrass.lean Modified Mathlib/Data/Int/GCD.lean +/- theorem Nat.exists_mul_emod_eq_one_of_coprime Modified Mathlib/Data/Int/ModEq.lean +/- theorem Int.modEq_and_modEq_iff_modEq_mul +/- theorem Int.mod_coprime Modified Mathlib/Data/Nat/Choose/Central.lean Modified Mathlib/Data/Nat/Factorization/Basic.lean +/- theorem Nat.coprime_ord_compl +/- theorem Nat.factorization_disjoint_of_coprime +/- theorem Nat.factorization_eq_of_coprime_left +/- theorem Nat.factorization_eq_of_coprime_right +/- theorem Nat.factorization_mul_apply_of_coprime +/- theorem Nat.factorization_mul_of_coprime +/- theorem Nat.factorization_mul_support_of_coprime Modified Mathlib/Data/Nat/Factorization/PrimePow.lean + theorem Nat.Coprime.isPrimePow_dvd_mul - theorem Nat.coprime.isPrimePow_dvd_mul +/- theorem Nat.mul_divisors_filter_prime_pow Modified Mathlib/Data/Nat/Factors.lean +/- theorem Nat.coprime_factors_disjoint +/- theorem Nat.mem_factors_mul_of_coprime +/- theorem Nat.perm_factors_mul_of_coprime Modified Mathlib/Data/Nat/Fib.lean +/- theorem Nat.fib_coprime_fib_succ Modified Mathlib/Data/Nat/GCD/Basic.lean + theorem Nat.Coprime.dvd_mul_left + theorem Nat.Coprime.dvd_mul_right + theorem Nat.Coprime.eq_of_mul_eq_zero + theorem Nat.Coprime.lcm_eq_mul + theorem Nat.Coprime.mul_add_mul_ne_mul + theorem Nat.Coprime.symmetric - theorem Nat.coprime.dvd_mul_left - theorem Nat.coprime.dvd_mul_right - theorem Nat.coprime.eq_of_mul_eq_zero - theorem Nat.coprime.lcm_eq_mul - theorem Nat.coprime.mul_add_mul_ne_mul - theorem Nat.coprime.symmetric +/- theorem Nat.coprime_add_mul_left_left +/- theorem Nat.coprime_add_mul_left_right +/- theorem Nat.coprime_add_mul_right_left +/- theorem Nat.coprime_add_mul_right_right +/- theorem Nat.coprime_add_self_left +/- theorem Nat.coprime_add_self_right +/- theorem Nat.coprime_mul_left_add_left +/- theorem Nat.coprime_mul_left_add_right +/- theorem Nat.coprime_mul_right_add_left +/- theorem Nat.coprime_mul_right_add_right +/- theorem Nat.coprime_one_left_iff +/- theorem Nat.coprime_one_right_iff +/- theorem Nat.coprime_self_add_left +/- theorem Nat.coprime_self_add_right +/- theorem Nat.coprime_self_sub_left +/- theorem Nat.coprime_self_sub_right +/- theorem Nat.coprime_sub_self_left +/- theorem Nat.coprime_sub_self_right +/- theorem Nat.eq_one_of_dvd_coprimes +/- theorem Nat.gcd_mul_of_coprime_of_dvd +/- theorem Nat.not_coprime_zero_zero Modified Mathlib/Data/Nat/GCD/BigOperators.lean Modified Mathlib/Data/Nat/ModEq.lean +/- def Nat.chineseRemainder +/- theorem Nat.chineseRemainder_lt_mul +/- theorem Nat.coprime_of_mul_modEq_one +/- theorem Nat.modEq_and_modEq_iff_modEq_mul Modified Mathlib/Data/Nat/Periodic.lean +/- theorem Nat.periodic_coprime Modified Mathlib/Data/Nat/Prime.lean +/- theorem Nat.Prime.coprime_iff_not_dvd +/- theorem Nat.Prime.coprime_pow_of_not_dvd +/- theorem Nat.Prime.dvd_iff_not_coprime +/- theorem Nat.Prime.not_coprime_iff_dvd +/- theorem Nat.coprime_of_dvd' +/- theorem Nat.coprime_of_dvd +/- theorem Nat.coprime_of_lt_prime +/- theorem Nat.coprime_or_dvd_of_prime +/- theorem Nat.coprime_primes +/- theorem Nat.prime_of_coprime Modified Mathlib/Data/Nat/PrimeFin.lean +/- theorem Nat.factors_mul_toFinset_of_coprime Modified Mathlib/Data/Nat/Squarefree.lean +/- theorem Nat.coprime_of_squarefree_mul +/- theorem Nat.squarefree_mul Modified Mathlib/Data/Nat/Totient.lean +/- theorem Nat.totient_eq_card_coprime +/- theorem Nat.totient_eq_card_lt_and_coprime +/- theorem Nat.totient_mul Modified Mathlib/Data/PNat/Prime.lean +/- theorem PNat.Coprime.pow +/- theorem PNat.coprime_coe Modified Mathlib/Data/Rat/Defs.lean Modified Mathlib/Data/Rat/Denumerable.lean Modified Mathlib/Data/Rat/Encodable.lean Modified Mathlib/Data/Rat/Floor.lean +/- theorem Nat.coprime_sub_mul_floor_rat_div_of_coprime Modified Mathlib/Data/Rat/Lemmas.lean +/- theorem Rat.den_div_eq_of_coprime +/- theorem Rat.div_int_inj +/- theorem Rat.num_div_eq_of_coprime Modified Mathlib/Data/ZMod/Basic.lean +/- def ZMod.chineseRemainder +/- theorem ZMod.coe_mul_inv_eq_one +/- theorem ZMod.coe_unitOfCoprime +/- def ZMod.unitOfCoprime +/- def ZMod.unitsEquivCoprime +/- theorem ZMod.val_coe_unit_coprime Modified Mathlib/Dynamics/PeriodicPts.lean Modified Mathlib/FieldTheory/Finite/Basic.lean +/- theorem Nat.ModEq.pow_totient Modified Mathlib/GroupTheory/Complement.lean Modified Mathlib/GroupTheory/Exponent.lean Modified Mathlib/GroupTheory/NoncommPiCoprod.lean Modified Mathlib/GroupTheory/OrderOfElement.lean +/- theorem Commute.orderOf_mul_eq_mul_orderOf_of_coprime +/- theorem exists_pow_eq_self_of_coprime +/- theorem orderOf_pow_coprime +/- theorem powCoprime_inv +/- theorem powCoprime_one Modified Mathlib/GroupTheory/PGroup.lean +/- theorem IsPGroup.orderOf_coprime +/- theorem IsPGroup.powEquiv_apply +/- theorem IsPGroup.powEquiv_symm_apply Modified Mathlib/GroupTheory/Perm/Cycle/Basic.lean +/- theorem Equiv.Perm.closure_cycle_coprime_swap Modified Mathlib/GroupTheory/Perm/Sign.lean +/- theorem Equiv.Perm.support_pow_coprime Modified Mathlib/GroupTheory/SchurZassenhaus.lean +/- theorem Subgroup.eq_one_of_smul_eq_one +/- theorem Subgroup.exists_smul_eq Modified Mathlib/GroupTheory/Sylow.lean Modified Mathlib/Init/Data/Nat/GCD.lean Modified Mathlib/Lean/CoreM.lean +/- def CoreM.withImportModules Modified Mathlib/NumberTheory/ArithmeticFunction.lean Modified Mathlib/NumberTheory/FermatPsp.lean +/- theorem Nat.coprime_of_fermatPsp Modified Mathlib/NumberTheory/FrobeniusNumber.lean +/- theorem frobeniusNumber_pair Modified Mathlib/NumberTheory/NumberField/Units.lean +/- theorem NumberField.Units.rootsOfUnity_eq_one Modified Mathlib/NumberTheory/Padics/PadicVal.lean Modified Mathlib/NumberTheory/Padics/RingHoms.lean Modified Mathlib/NumberTheory/PellMatiyasevic.lean +/- theorem Pell.xy_coprime Modified Mathlib/NumberTheory/PrimeCounting.lean Modified Mathlib/NumberTheory/SumTwoSquares.lean +/- theorem ZMod.isSquare_neg_one_mul Modified Mathlib/NumberTheory/WellApproximable.lean +/- theorem approxOrderOf.image_pow_subset_of_coprime +/- theorem approxOrderOf.smul_subset_of_coprime Modified Mathlib/RingTheory/Coprime/Lemmas.lean +/- theorem Nat.isCoprime_iff_coprime Modified Mathlib/RingTheory/Int/Basic.lean +/- theorem Int.coprime_iff_nat_coprime Modified Mathlib/RingTheory/Multiplicity.lean Modified Mathlib/RingTheory/Polynomial/Cyclotomic/Basic.lean Modified Mathlib/RingTheory/RootsOfUnity/Basic.lean +/- theorem IsPrimitiveRoot.pow_of_coprime Modified Mathlib/RingTheory/RootsOfUnity/Complex.lean +/- theorem Complex.isPrimitiveRoot_exp_of_coprime Modified Mathlib/RingTheory/RootsOfUnity/Minpoly.lean +/- theorem IsPrimitiveRoot.minpoly_eq_pow_coprime +/- theorem IsPrimitiveRoot.pow_isRoot_minpoly Modified Mathlib/Tactic/NthRewrite.lean - def Mathlib.Tactic.rewriteLocalDecl' - def Mathlib.Tactic.rewriteTarget' Modified lake-manifest.json Modified lakefile.lean Modified lean-toolchain Modified scripts/checkYaml.lean Renamed scripts/runLinter.lean to scripts/runMathlibLinter.lean Modified test/norm_num_ext.lean +/- theorem ex11 +/- theorem ex12 +/- theorem ex13 +/- theorem ex14 +/- theorem ex15 +/- theorem ex16' +/- theorem ex16 +/- theorem ex17 2023-09-17 06:02:31 1937612 fix: don't zeta-expand in filter_upwards (#7213) ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Integral/FundThmCalculus.lean Modified Mathlib/Order/Filter/Basic.lean Modified Mathlib/Probability/Independence/Kernel.lean Modified Mathlib/Probability/Martingale/Centering.lean Modified Mathlib/Topology/DenseEmbedding.lean 2023-09-17 04:53:23 8b0612f feat: Add analytic structure groupoid on models with corners (#6386) ESTIMATED CHANGES Modified Mathlib/Analysis/Analytic/Basic.lean + theorem AnalyticAt.congr + theorem AnalyticOn.congr' + theorem AnalyticOn.congr + theorem analyticAt_congr + theorem analyticOn_congr' + theorem analyticOn_congr Modified Mathlib/Analysis/Analytic/Composition.lean + theorem AnalyticOn.comp' + theorem AnalyticOn.comp Modified Mathlib/Geometry/Manifold/ChartedSpace.lean + theorem hasGroupoid_inf_iff Modified Mathlib/Geometry/Manifold/SmoothManifoldWithCorners.lean + def analyticGroupoid + theorem mem_analyticGroupoid_of_boundaryless + theorem ofSet_mem_analyticGroupoid + theorem symm_trans_mem_analyticGroupoid 2023-09-17 04:08:23 0413b3d fix: actually run the linter (#7199) After the next bump, `lake exe runLinter` will run the linter on `Std` not on `Mathlib`. To play it safe, we make it very clear that we want to run against Mathlib. ESTIMATED CHANGES Modified .github/workflows/bors.yml Modified .github/workflows/build.yml Modified .github/workflows/build.yml.in Modified .github/workflows/build_fork.yml 2023-09-16 19:24:52 2f19a6b feat(AddMonoidAlgebra*): add notation `R[A]` for `addMonoidAlgebra R A` (#7203) Introduce the notation `R[A]` for `AddMonoidAlgebra R A`. This is to align `Mathlib`s notation with the standard notation for [group ring](https://en.wikipedia.org/wiki/Group_ring). The notation is scoped in `AddMonoidAlgebra` and there is *no* analogous notation for `MonoidAlgebra`. I only used the notation for single-character `R` and `A`s and only in the range `[a-zA-Z]`. The extra lines are all in `Mathlib/Algebra/MonoidAlgebra/Basic.lean`. They are accounted for by extra text in the doc-module and the actual notation. Affected files: ```bash Counterexamples/ZeroDivisorsInAddMonoidAlgebras Algebra/AlgebraicCard Algebra/MonoidAlgebra/Basic Algebra/MonoidAlgebra/Degree Algebra/MonoidAlgebra/Division Algebra/MonoidAlgebra/Grading Algebra/MonoidAlgebra/NoZeroDivisors Algebra/MonoidAlgebra/Support Data/Polynomial/AlgebraMap Data/Polynomial/Basic Data/Polynomial/Eval Data/Polynomial/Laurent RingTheory/FiniteType ``` ESTIMATED CHANGES Modified Counterexamples/ZeroDivisorsInAddMonoidAlgebras.lean Modified Mathlib/Algebra/AlgebraicCard.lean +/- theorem Algebraic.cardinal_mk_le_mul Modified Mathlib/Algebra/MonoidAlgebra/Basic.lean +/- theorem AddMonoidAlgebra.algHom_ext' +/- theorem AddMonoidAlgebra.algHom_ext +/- theorem AddMonoidAlgebra.algHom_ext_iff +/- def AddMonoidAlgebra.domCongr +/- theorem AddMonoidAlgebra.induction_on +/- def AddMonoidAlgebra.lift +/- def AddMonoidAlgebra.liftNC +/- theorem AddMonoidAlgebra.lift_symm_apply +/- theorem AddMonoidAlgebra.lift_unique' +/- theorem AddMonoidAlgebra.lift_unique +/- theorem AddMonoidAlgebra.mul_apply +/- theorem AddMonoidAlgebra.mul_apply_antidiagonal +/- theorem AddMonoidAlgebra.mul_def +/- theorem AddMonoidAlgebra.mul_single_apply +/- theorem AddMonoidAlgebra.mul_single_apply_aux +/- theorem AddMonoidAlgebra.mul_single_apply_of_not_exists_add +/- theorem AddMonoidAlgebra.mul_single_zero_apply +/- theorem AddMonoidAlgebra.nat_cast_def +/- theorem AddMonoidAlgebra.nonUnitalAlgHom_ext' +/- theorem AddMonoidAlgebra.nonUnitalAlgHom_ext +/- def AddMonoidAlgebra.of' +/- def AddMonoidAlgebra.of +/- def AddMonoidAlgebra.ofMagma +/- theorem AddMonoidAlgebra.one_def +/- theorem AddMonoidAlgebra.ringHom_ext' +/- theorem AddMonoidAlgebra.ringHom_ext +/- def AddMonoidAlgebra.singleHom +/- def AddMonoidAlgebra.singleZeroRingHom +/- theorem AddMonoidAlgebra.single_mul_apply +/- theorem AddMonoidAlgebra.single_mul_apply_aux +/- theorem AddMonoidAlgebra.single_mul_apply_of_not_exists_add +/- theorem AddMonoidAlgebra.single_zero +/- theorem AddMonoidAlgebra.single_zero_mul_apply +/- theorem AddMonoidAlgebra.sum_single Modified Mathlib/Algebra/MonoidAlgebra/Degree.lean +/- def AddMonoidAlgebra.infDegree +/- theorem AddMonoidAlgebra.le_infDegree_add +/- theorem AddMonoidAlgebra.le_infDegree_mul +/- def AddMonoidAlgebra.supDegree +/- theorem AddMonoidAlgebra.supDegree_add_le +/- theorem AddMonoidAlgebra.supDegree_mul_le Modified Mathlib/Algebra/MonoidAlgebra/Division.lean +/- theorem AddMonoidAlgebra.add_divOf +/- theorem AddMonoidAlgebra.divOf_add +/- theorem AddMonoidAlgebra.divOf_add_modOf +/- theorem AddMonoidAlgebra.divOf_apply +/- theorem AddMonoidAlgebra.divOf_zero +/- theorem AddMonoidAlgebra.modOf_add_divOf +/- theorem AddMonoidAlgebra.modOf_apply_add_self +/- theorem AddMonoidAlgebra.modOf_apply_of_exists_add +/- theorem AddMonoidAlgebra.modOf_apply_of_not_exists_add +/- theorem AddMonoidAlgebra.modOf_apply_self_add +/- theorem AddMonoidAlgebra.mul_of'_divOf +/- theorem AddMonoidAlgebra.mul_of'_modOf +/- theorem AddMonoidAlgebra.of'_dvd_iff_modOf_eq_zero +/- theorem AddMonoidAlgebra.of'_mul_divOf +/- theorem AddMonoidAlgebra.of'_mul_modOf +/- theorem AddMonoidAlgebra.support_divOf +/- theorem AddMonoidAlgebra.zero_divOf Modified Mathlib/Algebra/MonoidAlgebra/Grading.lean +/- def AddMonoidAlgebra.decomposeAux +/- theorem AddMonoidAlgebra.mem_gradeBy_iff +/- theorem AddMonoidAlgebra.mem_grade_iff' +/- theorem AddMonoidAlgebra.mem_grade_iff Modified Mathlib/Algebra/MonoidAlgebra/NoZeroDivisors.lean +/- theorem AddMonoidAlgebra.mul_apply_add_eq_mul_of_uniqueAdd Modified Mathlib/Algebra/MonoidAlgebra/Support.lean +/- theorem AddMonoidAlgebra.mem_span_support' +/- theorem AddMonoidAlgebra.mem_span_support +/- theorem AddMonoidAlgebra.support_mul +/- theorem AddMonoidAlgebra.support_mul_single +/- theorem AddMonoidAlgebra.support_single_mul Modified Mathlib/Data/Polynomial/AlgebraMap.lean +/- def Polynomial.toFinsuppIsoAlg Modified Mathlib/Data/Polynomial/Basic.lean +/- theorem Polynomial.ofFinsupp_erase +/- theorem Polynomial.ofFinsupp_sum +/- def Polynomial.toFinsuppIso Modified Mathlib/Data/Polynomial/Eval.lean +/- theorem Polynomial.eval₂_ofFinsupp Modified Mathlib/Data/Polynomial/Laurent.lean Modified Mathlib/RingTheory/FiniteType.lean +/- theorem AddMonoidAlgebra.exists_finset_adjoin_eq_top +/- theorem AddMonoidAlgebra.fg_of_finiteType +/- theorem AddMonoidAlgebra.mem_adjoin_support +/- theorem AddMonoidAlgebra.support_gen_of_gen' +/- theorem AddMonoidAlgebra.support_gen_of_gen 2023-09-16 17:31:03 eec55af feat: base change of Clifford algebras (#6778) The main result here is `CliffordAlgebra (Q.baseChange A) ≃ₐ[A] A ⊗[R] CliffordAlgebra Q`; that is, the `A ⊗[R]` can be moved from `_ : QuadraticForm A (A ⊗[R] _)` to the outside and vice versa. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/LinearAlgebra/CliffordAlgebra/BaseChange.lean + def CliffordAlgebra.equivBaseChange + def CliffordAlgebra.ofBaseChange + def CliffordAlgebra.ofBaseChangeAux + theorem CliffordAlgebra.ofBaseChangeAux_ι + theorem CliffordAlgebra.ofBaseChange_comp_toBaseChange + theorem CliffordAlgebra.ofBaseChange_tmul_one + theorem CliffordAlgebra.ofBaseChange_tmul_ι + theorem CliffordAlgebra.ofBaseChange_toBaseChange + def CliffordAlgebra.toBaseChange + theorem CliffordAlgebra.toBaseChange_comp_involute + theorem CliffordAlgebra.toBaseChange_comp_ofBaseChange + theorem CliffordAlgebra.toBaseChange_comp_reverseOp + theorem CliffordAlgebra.toBaseChange_involute + theorem CliffordAlgebra.toBaseChange_ofBaseChange + theorem CliffordAlgebra.toBaseChange_reverse + theorem CliffordAlgebra.toBaseChange_ι Modified Mathlib/LinearAlgebra/CliffordAlgebra/Basic.lean + theorem CliffordAlgebra.forall_mul_self_eq_iff + theorem CliffordAlgebra.mul_add_swap_eq_polar_of_forall_mul_self_eq 2023-09-16 14:32:22 2cd05f0 feat(LinearAlgebra/QuadraticForm/Basic): more lemmas (#7196) This also adds a handful of missing lemmas about `Set.center` for inverses and numeric literals. ESTIMATED CHANGES Modified Mathlib/GroupTheory/Subsemigroup/Center.lean + theorem Set.intCast_mem_center + theorem Set.invOf_mem_center + theorem Set.natCast_mem_center + theorem Set.ofNat_mem_center + theorem Set.units_inv_mem_center Modified Mathlib/LinearAlgebra/QuadraticForm/Basic.lean + theorem BilinForm.polarBilin_toQuadraticForm + theorem BilinForm.polar_toQuadraticForm - theorem BilinForm.polar_to_quadratic_form +/- def LinearMap.compQuadraticForm + theorem LinearMap.compQuadraticForm_polar + theorem LinearMap.compQuadraticForm_polarBilin +/- def QuadraticForm.associatedHom + theorem QuadraticForm.coe_associatedHom + theorem QuadraticForm.two_nsmul_associated Modified Mathlib/LinearAlgebra/QuadraticForm/TensorProduct.lean + theorem QuadraticForm.polarBilin_baseChange + theorem QuadraticForm.polarBilin_tmul 2023-09-16 12:55:41 57a494b docs(Algebra/MonoidAlgebra/Basic): fix order of arguments in docs (#7202) The arguments to `AddMonoidAlgebra` were reversed with respect to normal use in the module docs. They also used `α` instead of `R`. For reference, these are the actual definitions: ```lean -- Data/MvPolynomial/Basic def MvPolynomial (σ : Type*) (R : Type*) [CommSemiring R] := AddMonoidAlgebra R (σ →₀ ℕ) -- Data/Polynomial/Basic structure Polynomial (R : Type*) [Semiring R] where ofFinsupp :: toFinsupp : AddMonoidAlgebra R ℕ ``` ESTIMATED CHANGES Modified Mathlib/Algebra/MonoidAlgebra/Basic.lean 2023-09-16 12:55:39 1fa13fb chore: use `_root_.map_sum` more consistently (#7189) Also `_root_.map_smul` when in the neighbourhood. ESTIMATED CHANGES Modified Mathlib/Algebra/DirectLimit.lean Modified Mathlib/Algebra/Module/Zlattice.lean Modified Mathlib/Algebra/TrivSqZeroExt.lean Modified Mathlib/Analysis/InnerProductSpace/Basic.lean Modified Mathlib/Analysis/InnerProductSpace/Spectrum.lean Modified Mathlib/Data/Matrix/Kronecker.lean Modified Mathlib/Data/Matrix/Rank.lean Modified Mathlib/Data/Polynomial/AlgebraMap.lean Modified Mathlib/Data/Polynomial/Coeff.lean Modified Mathlib/Data/Polynomial/Derivative.lean Modified Mathlib/Data/Polynomial/HasseDeriv.lean Modified Mathlib/Data/Polynomial/Taylor.lean Modified Mathlib/FieldTheory/Finite/Polynomial.lean Modified Mathlib/LinearAlgebra/AffineSpace/Combination.lean Modified Mathlib/LinearAlgebra/Alternating.lean Modified Mathlib/LinearAlgebra/Basic.lean Modified Mathlib/LinearAlgebra/Basis.lean Modified Mathlib/LinearAlgebra/BilinearForm.lean Modified Mathlib/LinearAlgebra/BilinearMap.lean Modified Mathlib/LinearAlgebra/Coevaluation.lean Modified Mathlib/LinearAlgebra/Contraction.lean Modified Mathlib/LinearAlgebra/Dual.lean Modified Mathlib/LinearAlgebra/Finsupp.lean Modified Mathlib/LinearAlgebra/FreeModule/PID.lean Modified Mathlib/LinearAlgebra/LinearIndependent.lean Modified Mathlib/LinearAlgebra/Matrix/Adjugate.lean Modified Mathlib/MeasureTheory/Measure/Haar/OfBasis.lean Modified Mathlib/NumberTheory/ClassNumber/Finite.lean Modified Mathlib/NumberTheory/RamificationInertia.lean Modified Mathlib/RepresentationTheory/GroupCohomology/Basic.lean Modified Mathlib/RingTheory/Adjoin/PowerBasis.lean Modified Mathlib/RingTheory/Derivation/Basic.lean - theorem Derivation.map_sum Modified Mathlib/RingTheory/Discriminant.lean Modified Mathlib/RingTheory/Finiteness.lean Modified Mathlib/RingTheory/Ideal/Quotient.lean Modified Mathlib/RingTheory/Polynomial/Eisenstein/IsIntegral.lean Modified Mathlib/RingTheory/PowerBasis.lean Modified Mathlib/RingTheory/PowerSeries/WellKnown.lean Modified Mathlib/RingTheory/Trace.lean Modified Mathlib/Topology/Algebra/Module/Basic.lean 2023-09-16 12:55:38 e10f5f8 doc(Algebra/Category/MonCat/Colimits): label `#print` remarks as only working in Lean 3 (#7183) This also fixes some markdown issues. ESTIMATED CHANGES Modified Mathlib/Algebra/Category/MonCat/Colimits.lean Modified Mathlib/Algebra/Category/Ring/Colimits.lean 2023-09-16 08:38:35 9680653 chore: fix name `*.Lf` (#7163) ESTIMATED CHANGES Modified Mathlib/SetTheory/Game/Basic.lean + def SetTheory.Game.LF - def SetTheory.Game.Lf +/- theorem SetTheory.Game.PGame.lf_iff_game_lf Modified Mathlib/SetTheory/Game/PGame.lean + theorem SetTheory.PGame.LF.not_equiv' + theorem SetTheory.PGame.LF.not_equiv + theorem SetTheory.PGame.LF.not_ge + theorem SetTheory.PGame.LF.not_gt + def SetTheory.PGame.LF - theorem SetTheory.PGame.Lf.not_equiv' - theorem SetTheory.PGame.Lf.not_equiv - theorem SetTheory.PGame.Lf.not_ge - theorem SetTheory.PGame.Lf.not_gt - def SetTheory.PGame.Lf Modified Mathlib/SetTheory/Game/Short.lean + def SetTheory.PGame.leLFDecidable - def SetTheory.PGame.leLfDecidable Modified Mathlib/SetTheory/Surreal/Basic.lean 2023-09-16 07:01:29 45b31dd chore: replace `Fin.castIso` and `Fin.revPerm` with `Fin.cast` and `Fin.rev` for the bump of Std (#5847) Some theorems in `Data.Fin.Basic` are copied to Std at the recent commit in Std. These are written using `Fin.cast` and `Fin.rev`, so declarations using `Fin.castIso` and `Fin.revPerm` in Mathlib should be rewritten. ESTIMATED CHANGES Modified Mathlib/Algebra/BigOperators/Fin.lean Modified Mathlib/AlgebraicTopology/DoldKan/Decomposition.lean Modified Mathlib/AlgebraicTopology/DoldKan/Degeneracies.lean Modified Mathlib/AlgebraicTopology/DoldKan/Faces.lean Modified Mathlib/Data/Fin/Basic.lean - theorem Fin.addNat_castIso - theorem Fin.castAdd_castIso - theorem Fin.castIso_addNat - theorem Fin.castIso_addNat_left - theorem Fin.castIso_addNat_right - theorem Fin.castIso_addNat_zero - theorem Fin.castIso_castAdd_left - theorem Fin.castIso_castAdd_right - theorem Fin.castIso_castSucc - theorem Fin.castIso_eq_cast - theorem Fin.castIso_last - theorem Fin.castIso_mk - theorem Fin.castIso_natAdd - theorem Fin.castIso_natAdd_left - theorem Fin.castIso_natAdd_right - theorem Fin.castIso_natAdd_zero - theorem Fin.castIso_succ_eq - theorem Fin.castIso_trans - theorem Fin.castIso_zero + theorem Fin.cast_eq_cast + theorem Fin.cast_le_cast + theorem Fin.cast_zero - theorem Fin.coe_castIso +/- theorem Fin.last_sub + theorem Fin.leftInverse_cast - theorem Fin.natAdd_castIso - theorem Fin.natAdd_subNat_castIso +/- theorem Fin.revOrderIso_symm_apply - theorem Fin.revPerm_bijective - theorem Fin.revPerm_eq - theorem Fin.revPerm_inj - theorem Fin.revPerm_injective - theorem Fin.revPerm_involutive - theorem Fin.revPerm_le_revPerm - theorem Fin.revPerm_lt_revPerm - theorem Fin.revPerm_revPerm - theorem Fin.revPerm_surjective + theorem Fin.rev_bijective + theorem Fin.rev_injective + theorem Fin.rev_involutive + theorem Fin.rev_surjective + theorem Fin.rightInverse_cast - theorem Fin.succ_castIso_eq - theorem Fin.val_revPerm Modified Mathlib/Data/Fin/Tuple/Basic.lean +/- theorem Fin.repeat_one + theorem Fin.sigma_eq_iff_eq_comp_cast - theorem Fin.sigma_eq_iff_eq_comp_castIso + theorem Fin.sigma_eq_of_eq_comp_cast - theorem Fin.sigma_eq_of_eq_comp_castIso Modified Mathlib/Data/Fin/VecNotation.lean Modified Mathlib/Data/Fintype/Card.lean Modified Mathlib/Data/List/OfFn.lean +/- theorem List.get_ofFn Modified Mathlib/Data/List/Sort.lean Modified Mathlib/Data/Vector/Basic.lean Modified Mathlib/Data/ZMod/Basic.lean Modified Mathlib/LinearAlgebra/TensorPower.lean Modified Mathlib/ModelTheory/Definability.lean Modified Mathlib/ModelTheory/Semantics.lean Modified Mathlib/Order/JordanHolder.lean Modified Mathlib/Topology/MetricSpace/GromovHausdorff.lean 2023-09-16 00:55:39 67b54e2 feat: remove the diamond for Complex.measureSpace (#6832) We remove the instance ```lean instance measureSpace : MeasureSpace ℂ := ⟨Measure.map basisOneI.equivFun.symm volume⟩ ``` in `MeasureTheory.Measure.Lebesgue.Complex` since `ℂ` has already a `measureSpace` instance coming from its `InnerProductSpace` structure over `ℝ`, and fix the proof of `volume_preserving_equiv_pi`. ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Measure/Lebesgue/Complex.lean +/- theorem Complex.volume_preserving_equiv_pi 2023-09-15 18:54:10 d703031 feat(Data/List/Range + Data/Finset/Sort): List.finRange lemmas (#7184) Prove Fin.sort_univ and List.indexOf_finRange discussed in https://leanprover.zulipchat.com/#narrow/stream/113489-new-members/topic/.E2.9C.94.20value.20of.20.60fintypeEquivFin.60 ESTIMATED CHANGES Modified Mathlib/Data/Finset/Sort.lean + theorem Fin.sort_univ Modified Mathlib/Data/Fintype/Basic.lean + theorem List.toFinset_finRange Modified Mathlib/Data/List/Range.lean + theorem List.indexOf_finRange + theorem List.pairwise_le_finRange + theorem List.pairwise_lt_finRange 2023-09-15 18:54:09 a962d3b chore(Algebra/Category/MonCat/Colimits): name induction cases (#7181) This isn't any shorter, but it removes a lot of sequential underscores! ESTIMATED CHANGES Modified Mathlib/Algebra/Category/MonCat/Colimits.lean 2023-09-15 18:54:07 a9e352e feat: Pmf.integral_eq_sum (#6454) The main result is that the integral (i.e. the expected value) with regard to a measure derived from a `Pmf` is a sum weighted by the `Pmf`. It also provides the expected value for specific probability mass functions (bernoulli so far). ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/MeasureTheory/Function/L1Space.lean + theorem MeasureTheory.hasFiniteIntegral_of_fintype + theorem MeasureTheory.integrable_of_fintype Modified Mathlib/MeasureTheory/Function/SimpleFunc.lean + def MeasureTheory.SimpleFunc.ofFintype Modified Mathlib/MeasureTheory/Function/StronglyMeasurable/Basic.lean + theorem MeasureTheory.stronglyMeasurable_of_fintype Modified Mathlib/MeasureTheory/Integral/Bochner.lean +/- theorem MeasureTheory.integral_countable' +/- theorem MeasureTheory.integral_countable +/- theorem MeasureTheory.integral_finset +/- theorem MeasureTheory.integral_fintype +/- theorem MeasureTheory.integral_singleton' +/- theorem MeasureTheory.integral_singleton +/- theorem MeasureTheory.integral_unique Modified Mathlib/Probability/ProbabilityMassFunction/Basic.lean + theorem Pmf.restrict_toMeasure_support + theorem Pmf.support_countable Added Mathlib/Probability/ProbabilityMassFunction/Integrals.lean + theorem Pmf.bernoulli_expectation + theorem Pmf.integral_eq_sum + theorem Pmf.integral_eq_tsum 2023-09-15 18:54:06 6d72cf8 refactor: redefine `Monoid.Coprod` (#2214) - Redefine `Monoid.Coprod`. - Use `@[to_additive]`. - Expand API. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/GroupTheory/Congruence.lean + theorem Con.map_of_mul_left_rel_one Deleted Mathlib/GroupTheory/Coprod.lean - inductive Monoid.Coprod.Rel - theorem Monoid.Coprod.ext_hom - theorem Monoid.Coprod.induction_on - def Monoid.Coprod.inl - theorem Monoid.Coprod.inl_apply - theorem Monoid.Coprod.inl_injective - theorem Monoid.Coprod.inl_leftInverse - def Monoid.Coprod.inr - theorem Monoid.Coprod.inr_apply - theorem Monoid.Coprod.inr_injective - theorem Monoid.Coprod.inr_leftInverse - theorem Monoid.Coprod.inv_def - def Monoid.Coprod.lift - theorem Monoid.Coprod.lift_inl - theorem Monoid.Coprod.lift_inr - theorem Monoid.Coprod.lift_mrange_le - theorem Monoid.Coprod.lift_range_le - theorem Monoid.Coprod.mrange_eq_sup - theorem Monoid.Coprod.range_eq_sup - def Monoid.Coprod Added Mathlib/GroupTheory/Coprod/Basic.lean + def Monoid.AddEquiv.coprodUnit + def Monoid.AddEquiv.punitCoprod + def Monoid.Coprod.clift + theorem Monoid.Coprod.clift_apply_inl + theorem Monoid.Coprod.clift_apply_inr + theorem Monoid.Coprod.clift_apply_mk + theorem Monoid.Coprod.clift_comp_mk + theorem Monoid.Coprod.clift_mk + theorem Monoid.Coprod.closure_range_inl_union_inr + theorem Monoid.Coprod.codisjoint_mrange_inl_mrange_inr + theorem Monoid.Coprod.codisjoint_range_inl_range_inr + theorem Monoid.Coprod.comp_lift + theorem Monoid.Coprod.con_ker_mk + theorem Monoid.Coprod.con_mul_left_inv + def Monoid.Coprod.fst + theorem Monoid.Coprod.fst_apply_inl + theorem Monoid.Coprod.fst_apply_inr + theorem Monoid.Coprod.fst_comp_inl + theorem Monoid.Coprod.fst_comp_inr + theorem Monoid.Coprod.fst_comp_swap + theorem Monoid.Coprod.fst_comp_toProd + theorem Monoid.Coprod.fst_prod_snd + theorem Monoid.Coprod.fst_surjective + theorem Monoid.Coprod.fst_swap + theorem Monoid.Coprod.fst_toProd + theorem Monoid.Coprod.hom_ext + theorem Monoid.Coprod.induction_on' + theorem Monoid.Coprod.induction_on + def Monoid.Coprod.inl + theorem Monoid.Coprod.inl_injective + def Monoid.Coprod.inr + theorem Monoid.Coprod.inr_injective + theorem Monoid.Coprod.inv_def + def Monoid.Coprod.lift + def Monoid.Coprod.liftEquiv + theorem Monoid.Coprod.lift_apply_inl + theorem Monoid.Coprod.lift_apply_inr + theorem Monoid.Coprod.lift_apply_mk + theorem Monoid.Coprod.lift_comp_inl + theorem Monoid.Coprod.lift_comp_inr + theorem Monoid.Coprod.lift_comp_swap + theorem Monoid.Coprod.lift_inl_inr + theorem Monoid.Coprod.lift_inr_inl + theorem Monoid.Coprod.lift_swap + theorem Monoid.Coprod.lift_unique + def Monoid.Coprod.map + theorem Monoid.Coprod.map_apply_inl + theorem Monoid.Coprod.map_apply_inr + theorem Monoid.Coprod.map_comp_inl + theorem Monoid.Coprod.map_comp_inr + theorem Monoid.Coprod.map_comp_map + theorem Monoid.Coprod.map_id_id + theorem Monoid.Coprod.map_map + theorem Monoid.Coprod.map_mk_ofList + theorem Monoid.Coprod.mclosure_range_inl_union_inr + def Monoid.Coprod.mk + theorem Monoid.Coprod.mk_eq_mk + theorem Monoid.Coprod.mk_of_inl + theorem Monoid.Coprod.mk_of_inr + theorem Monoid.Coprod.mk_of_inv_mul + theorem Monoid.Coprod.mk_surjective + theorem Monoid.Coprod.mker_swap + theorem Monoid.Coprod.mrange_eq + theorem Monoid.Coprod.mrange_inl_sup_mrange_inr + theorem Monoid.Coprod.mrange_lift + theorem Monoid.Coprod.mrange_mk + theorem Monoid.Coprod.mrange_swap + theorem Monoid.Coprod.prod_mk_fst_snd + theorem Monoid.Coprod.range_eq + theorem Monoid.Coprod.range_inl_sup_range_inr + theorem Monoid.Coprod.range_lift + theorem Monoid.Coprod.range_swap + def Monoid.Coprod.snd + theorem Monoid.Coprod.snd_apply_inl + theorem Monoid.Coprod.snd_apply_inr + theorem Monoid.Coprod.snd_comp_inl + theorem Monoid.Coprod.snd_comp_inr + theorem Monoid.Coprod.snd_comp_swap + theorem Monoid.Coprod.snd_comp_toProd + theorem Monoid.Coprod.snd_surjective + theorem Monoid.Coprod.snd_swap + theorem Monoid.Coprod.snd_toProd + def Monoid.Coprod.swap + theorem Monoid.Coprod.swap_bijective + theorem Monoid.Coprod.swap_comp_inl + theorem Monoid.Coprod.swap_comp_inr + theorem Monoid.Coprod.swap_comp_map + theorem Monoid.Coprod.swap_comp_swap + theorem Monoid.Coprod.swap_eq_one + theorem Monoid.Coprod.swap_inj + theorem Monoid.Coprod.swap_injective + theorem Monoid.Coprod.swap_inl + theorem Monoid.Coprod.swap_inr + theorem Monoid.Coprod.swap_map + theorem Monoid.Coprod.swap_surjective + theorem Monoid.Coprod.swap_swap + def Monoid.Coprod.toProd + theorem Monoid.Coprod.toProd_apply_inl + theorem Monoid.Coprod.toProd_apply_inr + theorem Monoid.Coprod.toProd_comp_inl + theorem Monoid.Coprod.toProd_comp_inr + theorem Monoid.Coprod.toProd_surjective + def Monoid.Coprod + def Monoid.MulEquiv.coprodAssoc + theorem Monoid.MulEquiv.coprodAssoc_apply_inl_inl + theorem Monoid.MulEquiv.coprodAssoc_apply_inl_inr + theorem Monoid.MulEquiv.coprodAssoc_apply_inr + theorem Monoid.MulEquiv.coprodAssoc_symm_apply_inl + theorem Monoid.MulEquiv.coprodAssoc_symm_apply_inr_inl + theorem Monoid.MulEquiv.coprodAssoc_symm_apply_inr_inr + def Monoid.MulEquiv.coprodComm + def Monoid.MulEquiv.coprodCongr + def Monoid.MulEquiv.coprodPUnit + def Monoid.MulEquiv.punitCoprod + def Monoid.coprodCon Modified Mathlib/GroupTheory/HNNExtension.lean Modified Mathlib/GroupTheory/Subgroup/Basic.lean 2023-09-15 17:45:49 e92d664 chore: golf linearIsometry_apply_dfinsupp_sum_single (#7191) ESTIMATED CHANGES Modified Mathlib/Analysis/InnerProductSpace/l2Space.lean 2023-09-15 17:45:48 b26eaa5 chore: realign map_dfinsupp_sum/prod (#7190) ESTIMATED CHANGES Modified Mathlib/Data/DFinsupp/Basic.lean Modified Mathlib/LinearAlgebra/Basic.lean 2023-09-15 17:45:47 f8ec477 chore: mv `mul_X_add_nat_cast_comp` and `mul_X_sub_int_cast_comp` (#7175) ESTIMATED CHANGES Modified Mathlib/Data/Polynomial/Eval.lean + theorem Polynomial.mul_X_add_nat_cast_comp + theorem Polynomial.mul_X_sub_int_cast_comp Modified Mathlib/RingTheory/Polynomial/Pochhammer.lean - theorem Polynomial.mul_X_add_nat_cast_comp - theorem Polynomial.mul_X_sub_int_cast_comp 2023-09-15 17:12:16 42f80cb feat(ModelTheory): the language of rings (#7185) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/ModelTheory/Algebra/Ring/Basic.lean + def FirstOrder.Language.ring + def FirstOrder.Ring.addOfRingStructure + theorem FirstOrder.Ring.add_def + theorem FirstOrder.Ring.card_ring + def FirstOrder.Ring.compatibleRingOfRing + def FirstOrder.Ring.compatibleRingOfRingStructure + def FirstOrder.Ring.languageEquivEquivRingEquiv + def FirstOrder.Ring.mulOfRingStructure + theorem FirstOrder.Ring.mul_def + def FirstOrder.Ring.negOfRingStructure + theorem FirstOrder.Ring.neg_def + def FirstOrder.Ring.oneOfRingStructure + theorem FirstOrder.Ring.one_def + theorem FirstOrder.Ring.realize_add + theorem FirstOrder.Ring.realize_mul + theorem FirstOrder.Ring.realize_neg + theorem FirstOrder.Ring.realize_one + theorem FirstOrder.Ring.realize_zero + def FirstOrder.Ring.zeroOfRingStructure + theorem FirstOrder.Ring.zero_def + inductive FirstOrder.ringFunc 2023-09-15 17:12:15 fb84a08 feat : Abelian groups has enough injectives (#7157) ESTIMATED CHANGES Modified Mathlib/Algebra/Category/GroupCat/Injective.lean + theorem AddCommGroupCat.enough_injectives_aux_proofs.finite_order.divBy_addOrderOf_addOrderOf + theorem AddCommGroupCat.enough_injectives_aux_proofs.finite_order.toRatCircle_apply_self_eq + theorem AddCommGroupCat.enough_injectives_aux_proofs.finite_order.toRatCircle_apply_self_eq_aux + theorem AddCommGroupCat.enough_injectives_aux_proofs.finite_order.toRatCircle_apply_self_ne_zero + theorem AddCommGroupCat.enough_injectives_aux_proofs.infinite_order.toRatCircle_apply_self_eq + theorem AddCommGroupCat.enough_injectives_aux_proofs.infinite_order.toRatCircle_apply_self_eq_aux + theorem AddCommGroupCat.enough_injectives_aux_proofs.infinite_order.toRatCircle_apply_self_ne_zero + def AddCommGroupCat.enough_injectives_aux_proofs.next + def AddCommGroupCat.enough_injectives_aux_proofs.presentation + def AddCommGroupCat.enough_injectives_aux_proofs.toNext + theorem AddCommGroupCat.enough_injectives_aux_proofs.toNext_inj + theorem AddCommGroupCat.enough_injectives_aux_proofs.toNext_inj_of_exists + theorem LinearMap.toSpanSingleton_ker Modified Mathlib/GroupTheory/Divisible.lean 2023-09-15 17:12:13 481b5fc feat: Equivalence between Alexandrov-discrete spaces and preorders (#6989) Construct the category equivalence between Alexandrov-discrete spaces and preorders ESTIMATED CHANGES Modified Mathlib/Topology/Order/Category/AlexDisc.lean + def alexDiscEquivPreord Modified Mathlib/Topology/Specialization.lean + theorem Specialization.isOpen_toEquiv_preimage + theorem Specialization.isUpperSet_ofEquiv_preimage + def homeoWithUpperSetTopologyorderIso + def orderIsoSpecializationWithUpperSetTopology + def topToPreord 2023-09-15 17:12:12 1215047 perf: remove overspecified fields (#6965) This removes redundant field values of the form `add := add` for smaller terms and less unfolding during unification. A list of all files containing a structure instance of the form `{ a1, ... with x1 := val, ... }` where some `xi` is a field of some `aj` was generated by modifying the structure instance elaboration algorithm to print such overlaps to stdout in a custom toolchain. Using that toolchain, I went through each file on the list and attempted to remove algebraic fields that overlapped and were redundant, eg `add := add` and not `toFun` (though some other ones did creep in). If things broke (which was the case in a couple of cases), I did not push further and reverted. It is possible that pushing harder and trying to remove all redundant overlaps will yield further improvements. ESTIMATED CHANGES Modified Mathlib/Algebra/Category/ModuleCat/ChangeOfRings.lean Modified Mathlib/Algebra/DirectSum/Ring.lean Modified Mathlib/Algebra/EuclideanDomain/Instances.lean Modified Mathlib/Algebra/Group/InjSurj.lean Modified Mathlib/Algebra/Group/TypeTags.lean Modified Mathlib/Algebra/Group/Units.lean Modified Mathlib/Algebra/GroupRingAction/Basic.lean Modified Mathlib/Algebra/GroupRingAction/Subobjects.lean Modified Mathlib/Algebra/Module/Basic.lean Modified Mathlib/Algebra/Module/LinearMap.lean Modified Mathlib/Algebra/Module/Submodule/Basic.lean Modified Mathlib/Algebra/Module/Submodule/Pointwise.lean Modified Mathlib/Algebra/MonoidAlgebra/Basic.lean Modified Mathlib/Algebra/Order/Pi.lean Modified Mathlib/Algebra/Order/Ring/WithTop.lean Modified Mathlib/Algebra/Order/UpperLower.lean Modified Mathlib/Algebra/Polynomial/GroupRingAction.lean Modified Mathlib/Algebra/Ring/Defs.lean Modified Mathlib/Algebra/Ring/ULift.lean Modified Mathlib/Algebra/SMulWithZero.lean Modified Mathlib/Algebra/Star/Basic.lean Modified Mathlib/Algebra/Star/Module.lean Modified Mathlib/Algebra/Symmetrized.lean Modified Mathlib/Analysis/NormedSpace/Completion.lean Modified Mathlib/Analysis/NormedSpace/ENorm.lean Modified Mathlib/Data/Complex/Basic.lean Modified Mathlib/Data/Fin/Basic.lean Modified Mathlib/Data/Matrix/Basic.lean Modified Mathlib/Data/Num/Lemmas.lean Modified Mathlib/Data/Polynomial/Laurent.lean Modified Mathlib/Data/Set/Semiring.lean Modified Mathlib/FieldTheory/RatFunc.lean Modified Mathlib/GroupTheory/Congruence.lean Modified Mathlib/GroupTheory/EckmannHilton.lean Modified Mathlib/GroupTheory/FreeAbelianGroup.lean Modified Mathlib/GroupTheory/GroupAction/Defs.lean Modified Mathlib/GroupTheory/GroupAction/SubMulAction/Pointwise.lean Modified Mathlib/GroupTheory/Submonoid/Pointwise.lean Modified Mathlib/LinearAlgebra/AffineSpace/AffineMap.lean Modified Mathlib/LinearAlgebra/CliffordAlgebra/EvenEquiv.lean Modified Mathlib/LinearAlgebra/Matrix/ToLin.lean Modified Mathlib/LinearAlgebra/Multilinear/Basic.lean Modified Mathlib/LinearAlgebra/PiTensorProduct.lean Modified Mathlib/LinearAlgebra/TensorProduct.lean Modified Mathlib/MeasureTheory/Measure/MeasureSpace.lean Modified Mathlib/MeasureTheory/Measure/ProbabilityMeasure.lean Modified Mathlib/NumberTheory/Dioph.lean Modified Mathlib/NumberTheory/Zsqrtd/Basic.lean Modified Mathlib/Order/Filter/Germ.lean Modified Mathlib/RepresentationTheory/Rep.lean Modified Mathlib/RingTheory/Congruence.lean Modified Mathlib/RingTheory/FractionalIdeal.lean Modified Mathlib/RingTheory/GradedAlgebra/Basic.lean Modified Mathlib/RingTheory/HahnSeries.lean Modified Mathlib/RingTheory/Ideal/Quotient.lean Modified Mathlib/RingTheory/IsTensorProduct.lean Modified Mathlib/RingTheory/MatrixAlgebra.lean Modified Mathlib/RingTheory/Polynomial/Basic.lean Modified Mathlib/Topology/Algebra/GroupCompletion.lean Modified Mathlib/Topology/Algebra/Module/Basic.lean 2023-09-15 16:52:30 40b5830 Revert "chore: bump to v4.1.0-rc1 (#7174)" (#7198) This reverts commit 6f8e81040eae7655f51d145b8026569b91d66e0d. Unfortunately this bump was not linted correctly, as CI did not run `runLinter Mathlib`. We can unrevert once that's fixed. ESTIMATED CHANGES Modified .gitignore Modified Archive/Imo/Imo1959Q1.lean +/- theorem imo1959_q1 Modified Archive/Wiedijk100Theorems/PerfectNumbers.lean Modified Mathlib/Algebra/IsPrimePow.lean +/- theorem Nat.disjoint_divisors_filter_isPrimePow Modified Mathlib/AlgebraicGeometry/EllipticCurve/Weierstrass.lean Modified Mathlib/Data/Int/GCD.lean +/- theorem Nat.exists_mul_emod_eq_one_of_coprime Modified Mathlib/Data/Int/ModEq.lean +/- theorem Int.modEq_and_modEq_iff_modEq_mul +/- theorem Int.mod_coprime Modified Mathlib/Data/Nat/Choose/Central.lean Modified Mathlib/Data/Nat/Factorization/Basic.lean +/- theorem Nat.coprime_ord_compl +/- theorem Nat.factorization_disjoint_of_coprime +/- theorem Nat.factorization_eq_of_coprime_left +/- theorem Nat.factorization_eq_of_coprime_right +/- theorem Nat.factorization_mul_apply_of_coprime +/- theorem Nat.factorization_mul_of_coprime +/- theorem Nat.factorization_mul_support_of_coprime Modified Mathlib/Data/Nat/Factorization/PrimePow.lean - theorem Nat.Coprime.isPrimePow_dvd_mul + theorem Nat.coprime.isPrimePow_dvd_mul +/- theorem Nat.mul_divisors_filter_prime_pow Modified Mathlib/Data/Nat/Factors.lean +/- theorem Nat.coprime_factors_disjoint +/- theorem Nat.mem_factors_mul_of_coprime +/- theorem Nat.perm_factors_mul_of_coprime Modified Mathlib/Data/Nat/Fib.lean +/- theorem Nat.fib_coprime_fib_succ Modified Mathlib/Data/Nat/GCD/Basic.lean - theorem Nat.Coprime.dvd_mul_left - theorem Nat.Coprime.dvd_mul_right - theorem Nat.Coprime.eq_of_mul_eq_zero - theorem Nat.Coprime.lcm_eq_mul - theorem Nat.Coprime.mul_add_mul_ne_mul - theorem Nat.Coprime.symmetric + theorem Nat.coprime.dvd_mul_left + theorem Nat.coprime.dvd_mul_right + theorem Nat.coprime.eq_of_mul_eq_zero + theorem Nat.coprime.lcm_eq_mul + theorem Nat.coprime.mul_add_mul_ne_mul + theorem Nat.coprime.symmetric +/- theorem Nat.coprime_add_mul_left_left +/- theorem Nat.coprime_add_mul_left_right +/- theorem Nat.coprime_add_mul_right_left +/- theorem Nat.coprime_add_mul_right_right +/- theorem Nat.coprime_add_self_left +/- theorem Nat.coprime_add_self_right +/- theorem Nat.coprime_mul_left_add_left +/- theorem Nat.coprime_mul_left_add_right +/- theorem Nat.coprime_mul_right_add_left +/- theorem Nat.coprime_mul_right_add_right +/- theorem Nat.coprime_one_left_iff +/- theorem Nat.coprime_one_right_iff +/- theorem Nat.coprime_self_add_left +/- theorem Nat.coprime_self_add_right +/- theorem Nat.coprime_self_sub_left +/- theorem Nat.coprime_self_sub_right +/- theorem Nat.coprime_sub_self_left +/- theorem Nat.coprime_sub_self_right +/- theorem Nat.eq_one_of_dvd_coprimes +/- theorem Nat.gcd_mul_of_coprime_of_dvd +/- theorem Nat.not_coprime_zero_zero Modified Mathlib/Data/Nat/GCD/BigOperators.lean Modified Mathlib/Data/Nat/ModEq.lean +/- def Nat.chineseRemainder +/- theorem Nat.chineseRemainder_lt_mul +/- theorem Nat.coprime_of_mul_modEq_one +/- theorem Nat.modEq_and_modEq_iff_modEq_mul Modified Mathlib/Data/Nat/Periodic.lean +/- theorem Nat.periodic_coprime Modified Mathlib/Data/Nat/Prime.lean +/- theorem Nat.Prime.coprime_iff_not_dvd +/- theorem Nat.Prime.coprime_pow_of_not_dvd +/- theorem Nat.Prime.dvd_iff_not_coprime +/- theorem Nat.Prime.not_coprime_iff_dvd +/- theorem Nat.coprime_of_dvd' +/- theorem Nat.coprime_of_dvd +/- theorem Nat.coprime_of_lt_prime +/- theorem Nat.coprime_or_dvd_of_prime +/- theorem Nat.coprime_primes +/- theorem Nat.prime_of_coprime Modified Mathlib/Data/Nat/PrimeFin.lean +/- theorem Nat.factors_mul_toFinset_of_coprime Modified Mathlib/Data/Nat/Squarefree.lean +/- theorem Nat.coprime_of_squarefree_mul +/- theorem Nat.squarefree_mul Modified Mathlib/Data/Nat/Totient.lean +/- theorem Nat.totient_eq_card_coprime +/- theorem Nat.totient_eq_card_lt_and_coprime +/- theorem Nat.totient_mul Modified Mathlib/Data/PNat/Prime.lean +/- theorem PNat.Coprime.pow +/- theorem PNat.coprime_coe Modified Mathlib/Data/Rat/Defs.lean Modified Mathlib/Data/Rat/Denumerable.lean Modified Mathlib/Data/Rat/Encodable.lean Modified Mathlib/Data/Rat/Floor.lean +/- theorem Nat.coprime_sub_mul_floor_rat_div_of_coprime Modified Mathlib/Data/Rat/Lemmas.lean +/- theorem Rat.den_div_eq_of_coprime +/- theorem Rat.div_int_inj +/- theorem Rat.num_div_eq_of_coprime Modified Mathlib/Data/ZMod/Basic.lean +/- def ZMod.chineseRemainder +/- theorem ZMod.coe_mul_inv_eq_one +/- theorem ZMod.coe_unitOfCoprime +/- def ZMod.unitOfCoprime +/- def ZMod.unitsEquivCoprime +/- theorem ZMod.val_coe_unit_coprime Modified Mathlib/Dynamics/PeriodicPts.lean Modified Mathlib/FieldTheory/Finite/Basic.lean +/- theorem Nat.ModEq.pow_totient Modified Mathlib/GroupTheory/Complement.lean Modified Mathlib/GroupTheory/Exponent.lean Modified Mathlib/GroupTheory/NoncommPiCoprod.lean Modified Mathlib/GroupTheory/OrderOfElement.lean +/- theorem Commute.orderOf_mul_eq_mul_orderOf_of_coprime +/- theorem exists_pow_eq_self_of_coprime +/- theorem orderOf_pow_coprime +/- theorem powCoprime_inv +/- theorem powCoprime_one Modified Mathlib/GroupTheory/PGroup.lean +/- theorem IsPGroup.orderOf_coprime +/- theorem IsPGroup.powEquiv_apply +/- theorem IsPGroup.powEquiv_symm_apply Modified Mathlib/GroupTheory/Perm/Cycle/Basic.lean +/- theorem Equiv.Perm.closure_cycle_coprime_swap Modified Mathlib/GroupTheory/Perm/Sign.lean +/- theorem Equiv.Perm.support_pow_coprime Modified Mathlib/GroupTheory/SchurZassenhaus.lean +/- theorem Subgroup.eq_one_of_smul_eq_one +/- theorem Subgroup.exists_smul_eq Modified Mathlib/GroupTheory/Sylow.lean Modified Mathlib/Init/Data/Nat/GCD.lean Modified Mathlib/Lean/CoreM.lean +/- def CoreM.withImportModules Modified Mathlib/NumberTheory/ArithmeticFunction.lean Modified Mathlib/NumberTheory/FermatPsp.lean +/- theorem Nat.coprime_of_fermatPsp Modified Mathlib/NumberTheory/FrobeniusNumber.lean +/- theorem frobeniusNumber_pair Modified Mathlib/NumberTheory/NumberField/Units.lean +/- theorem NumberField.Units.rootsOfUnity_eq_one Modified Mathlib/NumberTheory/Padics/PadicVal.lean Modified Mathlib/NumberTheory/Padics/RingHoms.lean Modified Mathlib/NumberTheory/PellMatiyasevic.lean +/- theorem Pell.xy_coprime Modified Mathlib/NumberTheory/PrimeCounting.lean Modified Mathlib/NumberTheory/SumTwoSquares.lean +/- theorem ZMod.isSquare_neg_one_mul Modified Mathlib/NumberTheory/WellApproximable.lean +/- theorem approxOrderOf.image_pow_subset_of_coprime +/- theorem approxOrderOf.smul_subset_of_coprime Modified Mathlib/RingTheory/Coprime/Lemmas.lean +/- theorem Nat.isCoprime_iff_coprime Modified Mathlib/RingTheory/Int/Basic.lean +/- theorem Int.coprime_iff_nat_coprime Modified Mathlib/RingTheory/Multiplicity.lean Modified Mathlib/RingTheory/Polynomial/Cyclotomic/Basic.lean Modified Mathlib/RingTheory/RootsOfUnity/Basic.lean +/- theorem IsPrimitiveRoot.pow_of_coprime Modified Mathlib/RingTheory/RootsOfUnity/Complex.lean +/- theorem Complex.isPrimitiveRoot_exp_of_coprime Modified Mathlib/RingTheory/RootsOfUnity/Minpoly.lean +/- theorem IsPrimitiveRoot.minpoly_eq_pow_coprime +/- theorem IsPrimitiveRoot.pow_isRoot_minpoly Modified Mathlib/Tactic/NthRewrite.lean + def Mathlib.Tactic.rewriteLocalDecl' + def Mathlib.Tactic.rewriteTarget' Modified lake-manifest.json Modified lean-toolchain Modified scripts/checkYaml.lean Modified scripts/runLinter.lean Modified test/norm_num_ext.lean +/- theorem ex11 +/- theorem ex12 +/- theorem ex13 +/- theorem ex14 +/- theorem ex15 +/- theorem ex16' +/- theorem ex16 +/- theorem ex17 2023-09-15 12:48:13 6f8e810 chore: bump to v4.1.0-rc1 (#7174) Some changes have already been review and delegated in #6910 and #7148. The diff that needs looking at is https://github.com/leanprover-community/mathlib4/pull/7174/commits/64d6d07ee18163627c8f517eb31455411921c5ac The [std bump PR](https://github.com/leanprover/std4/pull/263) was insta-merged already! ESTIMATED CHANGES Modified .gitignore Modified Archive/Imo/Imo1959Q1.lean +/- theorem imo1959_q1 Modified Archive/Wiedijk100Theorems/PerfectNumbers.lean Modified Mathlib/Algebra/IsPrimePow.lean +/- theorem Nat.disjoint_divisors_filter_isPrimePow Modified Mathlib/AlgebraicGeometry/EllipticCurve/Weierstrass.lean Modified Mathlib/Data/Int/GCD.lean +/- theorem Nat.exists_mul_emod_eq_one_of_coprime Modified Mathlib/Data/Int/ModEq.lean +/- theorem Int.modEq_and_modEq_iff_modEq_mul +/- theorem Int.mod_coprime Modified Mathlib/Data/Nat/Choose/Central.lean Modified Mathlib/Data/Nat/Factorization/Basic.lean +/- theorem Nat.coprime_ord_compl +/- theorem Nat.factorization_disjoint_of_coprime +/- theorem Nat.factorization_eq_of_coprime_left +/- theorem Nat.factorization_eq_of_coprime_right +/- theorem Nat.factorization_mul_apply_of_coprime +/- theorem Nat.factorization_mul_of_coprime +/- theorem Nat.factorization_mul_support_of_coprime Modified Mathlib/Data/Nat/Factorization/PrimePow.lean + theorem Nat.Coprime.isPrimePow_dvd_mul - theorem Nat.coprime.isPrimePow_dvd_mul +/- theorem Nat.mul_divisors_filter_prime_pow Modified Mathlib/Data/Nat/Factors.lean +/- theorem Nat.coprime_factors_disjoint +/- theorem Nat.mem_factors_mul_of_coprime +/- theorem Nat.perm_factors_mul_of_coprime Modified Mathlib/Data/Nat/Fib.lean +/- theorem Nat.fib_coprime_fib_succ Modified Mathlib/Data/Nat/GCD/Basic.lean + theorem Nat.Coprime.dvd_mul_left + theorem Nat.Coprime.dvd_mul_right + theorem Nat.Coprime.eq_of_mul_eq_zero + theorem Nat.Coprime.lcm_eq_mul + theorem Nat.Coprime.mul_add_mul_ne_mul + theorem Nat.Coprime.symmetric - theorem Nat.coprime.dvd_mul_left - theorem Nat.coprime.dvd_mul_right - theorem Nat.coprime.eq_of_mul_eq_zero - theorem Nat.coprime.lcm_eq_mul - theorem Nat.coprime.mul_add_mul_ne_mul - theorem Nat.coprime.symmetric +/- theorem Nat.coprime_add_mul_left_left +/- theorem Nat.coprime_add_mul_left_right +/- theorem Nat.coprime_add_mul_right_left +/- theorem Nat.coprime_add_mul_right_right +/- theorem Nat.coprime_add_self_left +/- theorem Nat.coprime_add_self_right +/- theorem Nat.coprime_mul_left_add_left +/- theorem Nat.coprime_mul_left_add_right +/- theorem Nat.coprime_mul_right_add_left +/- theorem Nat.coprime_mul_right_add_right +/- theorem Nat.coprime_one_left_iff +/- theorem Nat.coprime_one_right_iff +/- theorem Nat.coprime_self_add_left +/- theorem Nat.coprime_self_add_right +/- theorem Nat.coprime_self_sub_left +/- theorem Nat.coprime_self_sub_right +/- theorem Nat.coprime_sub_self_left +/- theorem Nat.coprime_sub_self_right +/- theorem Nat.eq_one_of_dvd_coprimes +/- theorem Nat.gcd_mul_of_coprime_of_dvd +/- theorem Nat.not_coprime_zero_zero Modified Mathlib/Data/Nat/GCD/BigOperators.lean Modified Mathlib/Data/Nat/ModEq.lean +/- def Nat.chineseRemainder +/- theorem Nat.chineseRemainder_lt_mul +/- theorem Nat.coprime_of_mul_modEq_one +/- theorem Nat.modEq_and_modEq_iff_modEq_mul Modified Mathlib/Data/Nat/Periodic.lean +/- theorem Nat.periodic_coprime Modified Mathlib/Data/Nat/Prime.lean +/- theorem Nat.Prime.coprime_iff_not_dvd +/- theorem Nat.Prime.coprime_pow_of_not_dvd +/- theorem Nat.Prime.dvd_iff_not_coprime +/- theorem Nat.Prime.not_coprime_iff_dvd +/- theorem Nat.coprime_of_dvd' +/- theorem Nat.coprime_of_dvd +/- theorem Nat.coprime_of_lt_prime +/- theorem Nat.coprime_or_dvd_of_prime +/- theorem Nat.coprime_primes +/- theorem Nat.prime_of_coprime Modified Mathlib/Data/Nat/PrimeFin.lean +/- theorem Nat.factors_mul_toFinset_of_coprime Modified Mathlib/Data/Nat/Squarefree.lean +/- theorem Nat.coprime_of_squarefree_mul +/- theorem Nat.squarefree_mul Modified Mathlib/Data/Nat/Totient.lean +/- theorem Nat.totient_eq_card_coprime +/- theorem Nat.totient_eq_card_lt_and_coprime +/- theorem Nat.totient_mul Modified Mathlib/Data/PNat/Prime.lean +/- theorem PNat.Coprime.pow +/- theorem PNat.coprime_coe Modified Mathlib/Data/Rat/Defs.lean Modified Mathlib/Data/Rat/Denumerable.lean Modified Mathlib/Data/Rat/Encodable.lean Modified Mathlib/Data/Rat/Floor.lean +/- theorem Nat.coprime_sub_mul_floor_rat_div_of_coprime Modified Mathlib/Data/Rat/Lemmas.lean +/- theorem Rat.den_div_eq_of_coprime +/- theorem Rat.div_int_inj +/- theorem Rat.num_div_eq_of_coprime Modified Mathlib/Data/ZMod/Basic.lean +/- def ZMod.chineseRemainder +/- theorem ZMod.coe_mul_inv_eq_one +/- theorem ZMod.coe_unitOfCoprime +/- def ZMod.unitOfCoprime +/- def ZMod.unitsEquivCoprime +/- theorem ZMod.val_coe_unit_coprime Modified Mathlib/Dynamics/PeriodicPts.lean Modified Mathlib/FieldTheory/Finite/Basic.lean +/- theorem Nat.ModEq.pow_totient Modified Mathlib/GroupTheory/Complement.lean Modified Mathlib/GroupTheory/Exponent.lean Modified Mathlib/GroupTheory/NoncommPiCoprod.lean Modified Mathlib/GroupTheory/OrderOfElement.lean +/- theorem Commute.orderOf_mul_eq_mul_orderOf_of_coprime +/- theorem exists_pow_eq_self_of_coprime +/- theorem orderOf_pow_coprime +/- theorem powCoprime_inv +/- theorem powCoprime_one Modified Mathlib/GroupTheory/PGroup.lean +/- theorem IsPGroup.orderOf_coprime +/- theorem IsPGroup.powEquiv_apply +/- theorem IsPGroup.powEquiv_symm_apply Modified Mathlib/GroupTheory/Perm/Cycle/Basic.lean +/- theorem Equiv.Perm.closure_cycle_coprime_swap Modified Mathlib/GroupTheory/Perm/Sign.lean +/- theorem Equiv.Perm.support_pow_coprime Modified Mathlib/GroupTheory/SchurZassenhaus.lean +/- theorem Subgroup.eq_one_of_smul_eq_one +/- theorem Subgroup.exists_smul_eq Modified Mathlib/GroupTheory/Sylow.lean Modified Mathlib/Init/Data/Nat/GCD.lean Modified Mathlib/Lean/CoreM.lean +/- def CoreM.withImportModules Modified Mathlib/NumberTheory/ArithmeticFunction.lean Modified Mathlib/NumberTheory/FermatPsp.lean +/- theorem Nat.coprime_of_fermatPsp Modified Mathlib/NumberTheory/FrobeniusNumber.lean +/- theorem frobeniusNumber_pair Modified Mathlib/NumberTheory/NumberField/Units.lean +/- theorem NumberField.Units.rootsOfUnity_eq_one Modified Mathlib/NumberTheory/Padics/PadicVal.lean Modified Mathlib/NumberTheory/Padics/RingHoms.lean Modified Mathlib/NumberTheory/PellMatiyasevic.lean +/- theorem Pell.xy_coprime Modified Mathlib/NumberTheory/PrimeCounting.lean Modified Mathlib/NumberTheory/SumTwoSquares.lean +/- theorem ZMod.isSquare_neg_one_mul Modified Mathlib/NumberTheory/WellApproximable.lean +/- theorem approxOrderOf.image_pow_subset_of_coprime +/- theorem approxOrderOf.smul_subset_of_coprime Modified Mathlib/RingTheory/Coprime/Lemmas.lean +/- theorem Nat.isCoprime_iff_coprime Modified Mathlib/RingTheory/Int/Basic.lean +/- theorem Int.coprime_iff_nat_coprime Modified Mathlib/RingTheory/Multiplicity.lean Modified Mathlib/RingTheory/Polynomial/Cyclotomic/Basic.lean Modified Mathlib/RingTheory/RootsOfUnity/Basic.lean +/- theorem IsPrimitiveRoot.pow_of_coprime Modified Mathlib/RingTheory/RootsOfUnity/Complex.lean +/- theorem Complex.isPrimitiveRoot_exp_of_coprime Modified Mathlib/RingTheory/RootsOfUnity/Minpoly.lean +/- theorem IsPrimitiveRoot.minpoly_eq_pow_coprime +/- theorem IsPrimitiveRoot.pow_isRoot_minpoly Modified Mathlib/Tactic/NthRewrite.lean - def Mathlib.Tactic.rewriteLocalDecl' - def Mathlib.Tactic.rewriteTarget' Modified lake-manifest.json Modified lean-toolchain Modified scripts/checkYaml.lean Modified scripts/runLinter.lean Modified test/norm_num_ext.lean +/- theorem ex11 +/- theorem ex12 +/- theorem ex13 +/- theorem ex14 +/- theorem ex15 +/- theorem ex16' +/- theorem ex16 +/- theorem ex17 2023-09-15 11:27:37 526ab14 doc(Topology/Bases): mention Lindelöf property (#7160) ESTIMATED CHANGES Modified Mathlib/Topology/Bases.lean 2023-09-15 11:27:36 b449971 feat(Order/WithBot, Data/Real/ENNReal): coe_injective (#7153) There already exists `NNReal.coe_injective` and `WithBot.coe_injective`, so this adds the analogous `ENNReal.coe_injective` and `WithTop.injective`. ESTIMATED CHANGES Modified Mathlib/Data/Real/ENNReal.lean Modified Mathlib/Order/WithBot.lean +/- theorem WithBot.coe_injective + theorem WithTop.coe_inj + theorem WithTop.coe_injective 2023-09-15 10:01:20 740d16a feat: the quotient category is preadditive (#7049) It is shown in this PR that when an equivalence relation on morphisms in a preadditive category is compatible with the addition, then the quotient category is preadditive. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Homology/HomotopyCategory.lean Modified Mathlib/CategoryTheory/Localization/Construction.lean Modified Mathlib/CategoryTheory/Quotient.lean + theorem CategoryTheory.Quotient.compClosure_eq_self + theorem CategoryTheory.Quotient.compClosure_iff_self Added Mathlib/CategoryTheory/Quotient/Preadditive.lean + def CategoryTheory.Quotient.Preadditive.add + def CategoryTheory.Quotient.Preadditive.neg + theorem CategoryTheory.Quotient.functor_additive + def CategoryTheory.Quotient.preadditive Modified Mathlib/Data/Quot.lean + theorem Equivalence.quot_mk_eq_iff 2023-09-15 09:18:12 31f3bd8 feat: exactness of short complexes (#7052) This PR introduces the definition of a proposition `S.Exact` when `S` is a short complex. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Homology/ShortComplex/Exact.lean + theorem CategoryTheory.ShortComplex.Exact.hasHomology + theorem CategoryTheory.ShortComplex.Exact.hasZeroObject + theorem CategoryTheory.ShortComplex.Exact.op + theorem CategoryTheory.ShortComplex.Exact.unop + structure CategoryTheory.ShortComplex.Exact + theorem CategoryTheory.ShortComplex.HomologyData.exact_iff' + theorem CategoryTheory.ShortComplex.HomologyData.exact_iff + theorem CategoryTheory.ShortComplex.HomologyData.exact_iff_i_p_zero + theorem CategoryTheory.ShortComplex.LeftHomologyData.exact_iff + theorem CategoryTheory.ShortComplex.RightHomologyData.exact_iff + theorem CategoryTheory.ShortComplex.exact_iff_homology_iso_zero + theorem CategoryTheory.ShortComplex.exact_iff_isZero_homology + theorem CategoryTheory.ShortComplex.exact_iff_isZero_leftHomology + theorem CategoryTheory.ShortComplex.exact_iff_isZero_right_homology + theorem CategoryTheory.ShortComplex.exact_iff_of_epi_of_isIso_of_mono + theorem CategoryTheory.ShortComplex.exact_iff_of_iso + theorem CategoryTheory.ShortComplex.exact_of_isZero_X₂ + theorem CategoryTheory.ShortComplex.exact_of_iso + theorem CategoryTheory.ShortComplex.exact_op_iff + theorem CategoryTheory.ShortComplex.exact_unop_iff 2023-09-15 09:18:11 5d8bd22 feat(Control/ULiftable): instances for `Except` and `Option` (#6350) ESTIMATED CHANGES Modified Mathlib/Control/ULiftable.lean 2023-09-15 08:07:10 b0e5bef feat(Order/OmegaCompletePartialOrder): Show that Scott Continuity implies OmegaCompletePartialOrder.Continuous' (#6831) In https://github.com/leanprover-community/mathlib/pull/18517 we introduced the notion of a Scott Continuous function between preorders. This PR shows that a Scott Continuous function between OmegaCompletePartialOrders is necessarily `OmegaCompletePartialOrder.Continuous'`. ESTIMATED CHANGES Modified Mathlib/Order/OmegaCompletePartialOrder.lean + theorem OmegaCompletePartialOrder.IsLUB_of_ScottContinuous + theorem OmegaCompletePartialOrder.IsLUB_range_ωSup + theorem OmegaCompletePartialOrder.ScottContinuous.continuous' + theorem OmegaCompletePartialOrder.ωSup_eq_of_IsLUB 2023-09-15 07:16:03 20fb818 chore: fix pochhammer names (#7161) those got somehow lost in the merges... ESTIMATED CHANGES Modified Mathlib/RingTheory/Polynomial/Pochhammer.lean - theorem Pochhammer_int_eq_descFactorial + theorem ascPochhammer_natDegree +/- theorem descPochhammer_int_eq_ascFactorial + theorem descPochhammer_int_eq_descFactorial + theorem monic_ascPochhammer - theorem monic_pochhammer - theorem pochhammer_natDegree 2023-09-15 07:16:02 967f361 feat: define the regular and extensive coverages (#6896) We define the regular and extensive coverages on categories, and define typeclasses with the necessary properties categories need to have to be able to define these coverages. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Sites/RegularExtensive.lean + def CategoryTheory.extensiveCoverage + def CategoryTheory.regularCoverage 2023-09-15 05:52:05 58a2841 chore: bump ProofWidgets to 0.0.15 (#7070) We attempted this previously in #7044 and #7056, but it resulted in a broken cache. Hopefully that is reproducible on this PR, and we can diagnose and fix before merging! ESTIMATED CHANGES Modified .github/workflows/bors.yml Modified .github/workflows/build.yml Modified .github/workflows/build.yml.in Modified .github/workflows/build_fork.yml Modified Mathlib/Tactic/Widget/CommDiag.lean Modified lake-manifest.json Modified lakefile.lean Modified test/CommDiag.lean 2023-09-15 05:52:04 ee0f4af feat: the line derivative is measurable (#7055) Last prerequisite for Rademacher theorem in #7003. Along the way, we weaken the second-countability assumptions for strong measurability of the derivative and the right derivative. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Analysis/Calculus/FDeriv/Measurable.lean +/- theorem aestronglyMeasurable_derivWithin_Ici +/- theorem aestronglyMeasurable_derivWithin_Ioi +/- theorem stronglyMeasurable_derivWithin_Ici +/- theorem stronglyMeasurable_derivWithin_Ioi Added Mathlib/Analysis/Calculus/LineDeriv/Measurable.lean + theorem aemeasurable_lineDeriv + theorem aemeasurable_lineDeriv_uncurry + theorem aestronglyMeasurable_lineDeriv + theorem aestronglyMeasurable_lineDeriv_uncurry + theorem measurableSet_lineDifferentiableAt + theorem measurableSet_lineDifferentiableAt_uncurry + theorem measurable_lineDeriv + theorem measurable_lineDeriv_uncurry + theorem stronglyMeasurable_lineDeriv + theorem stronglyMeasurable_lineDeriv_uncurry 2023-09-15 04:33:55 518115d chore: delete all but 10 most recent toolchains during CI (#7166) ESTIMATED CHANGES Modified .github/workflows/bors.yml Modified .github/workflows/build.yml Modified .github/workflows/build.yml.in Modified .github/workflows/build_fork.yml 2023-09-15 04:33:54 f80bb2f feat: Finsets of cardinality > 1 in Pi types (#6818) Add an equivalent condition for `1 < m * n` in Nat, and two lemmas about Finsets of cardinality > 1. ESTIMATED CHANGES Modified Mathlib/Data/Finset/Card.lean + theorem Finset.exists_of_one_lt_card_pi Modified Mathlib/Data/Finset/Prod.lean + theorem Finset.nontrivial_prod_iff Modified Mathlib/Data/Nat/Basic.lean + theorem Nat.one_lt_mul_iff 2023-09-15 03:05:45 fbed088 chore: make fields of algebraic (iso)morphisms `protected` (#7150) Pretty much all these fields are implementation details, and not intended as API. There is no point in `open MonoidHom` bringing `toFun` or `map_mul'` into the environment, as neither are the preferred way to spell those things. ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/Equiv.lean Modified Mathlib/Algebra/Hom/Equiv/Basic.lean Modified Mathlib/Algebra/Hom/Group/Defs.lean Modified Mathlib/Algebra/Hom/GroupAction.lean Modified Mathlib/Algebra/Module/LinearMap.lean Modified Mathlib/Algebra/Ring/Equiv.lean Modified Mathlib/LinearAlgebra/Matrix/Determinant.lean Modified Mathlib/Logic/Equiv/Defs.lean 2023-09-15 00:38:12 9db9cbb feat: add git origin info to cache .ltar files (#7143) This should have no user-visible effects, but from here on `.ltar` files in the cache will contain the commit from which they were generated. Because of the way `cache` works, when you download the cache for a commit you might be using files built from several different commits, because later commits only invalidated some files and the old files are still good. If an `.ltar` file turns out to be bad (e.g. has a surprising `.trace` and is causing `lake build` to ignore it), this is helpful information for debugging, and it's only a few extra bytes in the file. The new version of leantar has a new function: `leantar -k 1234.ltar` will print out the "comments" in the file. If it is a file generated by an old version of leantar it will be empty, but files generated subsequent to this commit will show something along the lines `git=mathlib4@12de34` containing the commit sha for the run that generated this ltar file. ESTIMATED CHANGES Modified Cache/IO.lean +/- def Cache.IO.allExist +/- def Cache.IO.mkBuildPaths +/- def Cache.IO.packCache Modified Cache/Main.lean Modified Cache/Requests.lean +/- def Cache.Requests.getGitCommitHash 2023-09-14 21:19:41 50988b8 feat(Analysis/Convex): Radon's convexity theorem (#6598) Add Radon's theorem on convex sets ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Analysis/Convex/Combination.lean + theorem Finset.centerMass_id_mem_convexHull_of_nonpos + theorem Finset.centerMass_mem_convexHull_of_nonpos + theorem Finset.centerMass_neg_left + theorem Finset.centerMass_of_sum_add_sum_eq_zero + theorem Finset.centerMass_smul_left Added Mathlib/Analysis/Convex/Radon.lean + theorem radon_partition 2023-09-14 18:26:06 96d7853 feat(UniqueProds + NoZeroDivisors): AddMonoidAlgebra instances (#6723) Add `UniqueProds/Sums` and `NoZeroDivisors` instances. This has recently been prompted by the port of the [Lindemann-Weierstrass Theorem](https://leanprover.zulipchat.com/#narrow/stream/116395-maths), but the results are self-contained. Instances such as the ones in this PR are the reasons why `UniqueProds/Sums` were introduced. Affected files: ``` Algebra/ Group/UniqueProds.lean MonoidAlgebra/NoZeroDivisors.lean ``` ESTIMATED CHANGES Modified Mathlib/Algebra/Group/UniqueProds.lean - theorem UniqueProds.iff_mulOpposite + theorem UniqueProds.mulHom_image_iff + theorem UniqueProds.mulHom_image_of_injective +/- theorem UniqueProds.of_mulOpposite - theorem UniqueProds.of_subsingleton Modified Mathlib/Algebra/MonoidAlgebra/NoZeroDivisors.lean - theorem AddMonoidAlgebra.Left.exists_add_of_mem_support_single_mul - theorem AddMonoidAlgebra.NoZeroDivisors.of_left_ordered - theorem AddMonoidAlgebra.NoZeroDivisors.of_right_ordered - theorem AddMonoidAlgebra.Right.exists_add_of_mem_support_single_mul - theorem AddMonoidAlgebra.mul_apply_add_eq_mul_of_forall_ne + theorem AddMonoidAlgebra.mul_apply_add_eq_mul_of_uniqueAdd + theorem MonoidAlgebra.mul_apply_mul_eq_mul_of_uniqueMul 2023-09-14 17:32:11 7c77a52 feat: the complex of homomorphisms between two cochain complexes (#7050) ESTIMATED CHANGES Modified Mathlib/Algebra/Homology/HomotopyCategory/HomComplex.lean + theorem CochainComplex.HomComplex.δ_add + theorem CochainComplex.HomComplex.δ_comp + theorem CochainComplex.HomComplex.δ_comp_zero_cochain + def CochainComplex.HomComplex.δ_hom + theorem CochainComplex.HomComplex.δ_neg + theorem CochainComplex.HomComplex.δ_neg_one_cochain + theorem CochainComplex.HomComplex.δ_ofHom + theorem CochainComplex.HomComplex.δ_ofHomotopy + theorem CochainComplex.HomComplex.δ_sub + theorem CochainComplex.HomComplex.δ_zero + theorem CochainComplex.HomComplex.δ_zero_cochain_comp + theorem CochainComplex.HomComplex.δ_zero_cochain_v + theorem CochainComplex.HomComplex.δ_zsmul + theorem CochainComplex.HomComplex.δ_δ + def CochainComplex.HomComplex 2023-09-14 17:32:10 8266eb7 feat: piCongr for topological and uniform spaces (#6836) ESTIMATED CHANGES Modified Mathlib/Topology/Constructions.lean + theorem Pi.continuous_postcomp' + theorem Pi.continuous_postcomp + theorem Pi.continuous_precomp' + theorem Pi.continuous_precomp + theorem Pi.continuous_restrict + theorem Pi.induced_precomp' + theorem Pi.induced_precomp + theorem Pi.induced_restrict Modified Mathlib/Topology/Homeomorph.lean + def Homeomorph.piCongr + def Homeomorph.piCongrLeft Modified Mathlib/Topology/UniformSpace/Equiv.lean + def UniformEquiv.piCongr + def UniformEquiv.piCongrLeft + def UniformEquiv.piCongrRight + theorem UniformEquiv.piCongrRight_symm Modified Mathlib/Topology/UniformSpace/Pi.lean + theorem Pi.uniformContinuous_postcomp' + theorem Pi.uniformContinuous_postcomp + theorem Pi.uniformContinuous_precomp' + theorem Pi.uniformContinuous_precomp + theorem Pi.uniformContinuous_restrict + theorem Pi.uniformSpace_comap_precomp' + theorem Pi.uniformSpace_comap_precomp + theorem Pi.uniformSpace_comap_restrict 2023-09-14 17:32:09 27f0b9b feat(ModelTheory): definable_iff_finitely_definable (#6651) ESTIMATED CHANGES Modified Mathlib/ModelTheory/Definability.lean + theorem Set.definable_iff_finitely_definable 2023-09-14 15:54:40 7dd3aa2 feat(Data/Set/Intervals): Ioo_union_both (#7133) If `a ≤ b`, then `(a, b) ∪ {a, b} = [a, b]`. ESTIMATED CHANGES Modified Mathlib/Data/Set/Intervals/Basic.lean + theorem Set.Ioo_union_both 2023-09-14 15:54:39 6ad7d2f feat(CategoryTheory/Monoidal/Skeleton): `CommMonoid` instance (#7130) This also names the instances so that the docstring can refer to them. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Monoidal/Skeleton.lean Modified Mathlib/CategoryTheory/Monoidal/Transport.lean 2023-09-14 15:54:38 351962a feat(LinearAlgebra/QuadraticForm): add `QuadraticForm.Isometry` (#6984) Also use it to tidy the API of `CliffordAlgebra.map`. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/LinearAlgebra/CliffordAlgebra/Basic.lean +/- def CliffordAlgebra.map +/- theorem CliffordAlgebra.map_apply_ι +/- theorem CliffordAlgebra.map_comp_map +/- theorem CliffordAlgebra.map_comp_ι +/- theorem CliffordAlgebra.map_id +/- theorem CliffordAlgebra.ι_range_map_map Modified Mathlib/LinearAlgebra/QuadraticForm/Dual.lean +/- def QuadraticForm.toDualProd - theorem QuadraticForm.toDualProd_isometry Added Mathlib/LinearAlgebra/QuadraticForm/Isometry.lean + theorem QuadraticForm.Isometry.coe_toLinearMap + def QuadraticForm.Isometry.comp + theorem QuadraticForm.Isometry.comp_assoc + theorem QuadraticForm.Isometry.comp_id + theorem QuadraticForm.Isometry.ext + def QuadraticForm.Isometry.id + theorem QuadraticForm.Isometry.id_comp + theorem QuadraticForm.Isometry.map_app + theorem QuadraticForm.Isometry.toLinearMap_comp + theorem QuadraticForm.Isometry.toLinearMap_injective + structure QuadraticForm.Isometry Modified Mathlib/LinearAlgebra/QuadraticForm/IsometryEquiv.lean + def QuadraticForm.IsometryEquiv.toIsometry 2023-09-14 15:54:36 c493a2c feat: descPochhammer_natDegree (#6929) - [x] depends on: #6918 ESTIMATED CHANGES Modified Mathlib/RingTheory/Polynomial/Pochhammer.lean + theorem descPochhammer_natDegree 2023-09-14 15:54:35 a90843f feat: monic_descPochhammer (#6927) - [x] depends on: #6918 ESTIMATED CHANGES Modified Mathlib/RingTheory/Polynomial/Pochhammer.lean + theorem monic_descPochhammer 2023-09-14 15:24:01 fe31c87 docs(HNN Extension): add names of Higman and Neumann (#7154) ESTIMATED CHANGES Modified Mathlib/GroupTheory/HNNExtension.lean 2023-09-14 15:24:00 e3c514c feat(LinearAlgebra/QuadraticForm/Prod): products are commutative up to isomorphism (#7139) Surprisingly we're missing the whole tower of bundled `Equiv.prodAssoc` definitions, so this PR omits those too. ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/QuadraticForm/Prod.lean + def QuadraticForm.IsometryEquiv.prodComm + def QuadraticForm.IsometryEquiv.prodProdProdComm 2023-09-14 15:23:59 6a80fec feat: better junk value for fderivWithin at isolated points (#7117) Currently, when `x` is isolated in the set `s`, then `fderivWithin k f s x` can be anything. We modify the definition by ensuring that it is equal to `0` in this case. This ensures that the range of `derivWithin` is always contained in the closure of the span of the range of `f`. ESTIMATED CHANGES Modified Mathlib/Analysis/Calculus/Deriv/Basic.lean + theorem derivWithin_zero_of_isolated + theorem derivWithin_zero_of_nmem_closure Modified Mathlib/Analysis/Calculus/Deriv/Slope.lean + theorem isSeparable_range_deriv + theorem isSeparable_range_derivWithin + theorem range_derivWithin_subset_closure_span_image + theorem range_deriv_subset_closure_span_image Modified Mathlib/Analysis/Calculus/FDeriv/Basic.lean + theorem HasFDerivAt.of_nmem_tsupport - theorem HasFDerivAt.of_not_mem_tsupport + theorem HasFDerivWithinAt_of_nhdsWithin_eq_bot + theorem HasStrictFDerivAt.of_nmem_tsupport - theorem HasStrictFDerivAt.of_not_mem_tsupport - def fderiv - def fderivWithin +/- theorem fderivWithin_univ + theorem fderivWithin_zero_of_isolated + theorem fderivWithin_zero_of_nmem_closure + theorem hasFDerivWithinAt_of_nmem_closure - theorem hasFDerivWithinAt_of_not_mem_closure Modified Mathlib/Analysis/Calculus/FDeriv/Extend.lean 2023-09-14 15:23:56 ad978d9 feat: define `MeasurableSpace.invariants` (#7054) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/MeasureTheory/MeasurableSpace/Invariants.lean + theorem MeasurableSpace.inf_le_invariants_comp + def MeasurableSpace.invariants + theorem MeasurableSpace.invariants_id + theorem MeasurableSpace.invariants_le + theorem MeasurableSpace.le_invariants_iterate + theorem MeasurableSpace.measurableSet_invariants + theorem MeasurableSpace.measurable_invariants_dom + theorem MeasurableSpace.measurable_invariants_of_semiconj 2023-09-14 13:42:28 9749c63 chore: unify map_dfinsupp_sum/prod lemmas (#7151) ESTIMATED CHANGES Modified Mathlib/Data/DFinsupp/Basic.lean - theorem MonoidHom.map_dfinsupp_prod - theorem MulEquiv.map_dfinsupp_prod - theorem RingHom.map_dfinsupp_prod - theorem RingHom.map_dfinsupp_sum + theorem map_dfinsupp_prod Modified Mathlib/LinearAlgebra/Basic.lean - theorem LinearEquiv.map_dfinsupp_sum - theorem LinearMap.map_dfinsupp_sum Modified Mathlib/LinearAlgebra/Eigenspace/Basic.lean 2023-09-14 13:42:27 084cfb3 style: fix wrapping of `where` (#7149) ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/Equiv.lean Modified Mathlib/Algebra/Algebra/NonUnitalSubalgebra.lean Modified Mathlib/Algebra/Category/GroupCat/Limits.lean Modified Mathlib/Algebra/Category/GroupCat/ZModuleEquivalence.lean Modified Mathlib/Algebra/Category/GroupWithZeroCat.lean Modified Mathlib/Algebra/Category/MonCat/Colimits.lean Modified Mathlib/Algebra/Category/Ring/Basic.lean Modified Mathlib/Algebra/DirectSum/Module.lean Modified Mathlib/Algebra/GradedMonoid.lean Modified Mathlib/Algebra/GradedMulAction.lean Modified Mathlib/Algebra/Homology/Additive.lean Modified Mathlib/Algebra/Homology/HomologicalComplex.lean +/- def HomologicalComplex.comp Modified Mathlib/Algebra/Homology/LocalCohomology.lean Modified Mathlib/Algebra/Lie/Basic.lean Modified Mathlib/Algebra/Lie/Free.lean Modified Mathlib/Algebra/Lie/Subalgebra.lean Modified Mathlib/Algebra/Module/Equiv.lean Modified Mathlib/Algebra/Module/GradedModule.lean Modified Mathlib/Algebra/Module/LinearMap.lean Modified Mathlib/Algebra/Module/Submodule/Pointwise.lean Modified Mathlib/Algebra/Order/Nonneg/Ring.lean Modified Mathlib/Algebra/Quaternion.lean Modified Mathlib/Algebra/Star/Pi.lean Modified Mathlib/Algebra/Star/Prod.lean Modified Mathlib/Algebra/Star/Unitary.lean Modified Mathlib/AlgebraicTopology/AlternatingFaceMapComplex.lean +/- def AlgebraicTopology.inclusionOfMooreComplex Modified Mathlib/Analysis/Complex/Circle.lean +/- def expMapCircle Modified Mathlib/Analysis/Convex/Body.lean Modified Mathlib/Analysis/InnerProductSpace/Basic.lean Modified Mathlib/Analysis/InnerProductSpace/l2Space.lean Modified Mathlib/Analysis/Normed/Group/AddTorsor.lean Modified Mathlib/Analysis/Seminorm.lean Modified Mathlib/CategoryTheory/Abelian/Subobject.lean Modified Mathlib/CategoryTheory/Adjunction/FullyFaithful.lean Modified Mathlib/CategoryTheory/Arrow.lean Modified Mathlib/CategoryTheory/Closed/Monoidal.lean Modified Mathlib/CategoryTheory/ConcreteCategory/BundledHom.lean Modified Mathlib/CategoryTheory/EpiMono.lean +/- def CategoryTheory.SplitEpi.splitMono +/- def CategoryTheory.SplitMono.splitEpi Modified Mathlib/CategoryTheory/Functor/Const.lean Modified Mathlib/CategoryTheory/Functor/EpiMono.lean Modified Mathlib/CategoryTheory/Functor/ReflectsIso.lean Modified Mathlib/CategoryTheory/Idempotents/FunctorCategories.lean +/- def CategoryTheory.Idempotents.KaroubiFunctorCategoryEmbedding.map Modified Mathlib/CategoryTheory/IsConnected.lean Modified Mathlib/CategoryTheory/Limits/Connected.lean +/- def CategoryTheory.ProdPreservesConnectedLimits.γ₁ Modified Mathlib/CategoryTheory/Limits/Creates.lean Modified Mathlib/CategoryTheory/Limits/Final.lean Modified Mathlib/CategoryTheory/Limits/FullSubcategory.lean Modified Mathlib/CategoryTheory/Limits/FunctorCategory.lean Modified Mathlib/CategoryTheory/Limits/Opposites.lean Modified Mathlib/CategoryTheory/Limits/Preserves/Basic.lean +/- def CategoryTheory.Limits.fullyFaithfulReflectsColimits +/- def CategoryTheory.Limits.fullyFaithfulReflectsLimits Modified Mathlib/CategoryTheory/Limits/Preserves/Filtered.lean Modified Mathlib/CategoryTheory/Limits/Preserves/FunctorCategory.lean Modified Mathlib/CategoryTheory/Limits/Preserves/Opposites.lean +/- def CategoryTheory.Limits.perservesColimitsOp +/- def CategoryTheory.Limits.preservesColimitsLeftOp +/- def CategoryTheory.Limits.preservesColimitsRightOp +/- def CategoryTheory.Limits.preservesColimitsUnop +/- def CategoryTheory.Limits.preservesFiniteColimitsOp +/- def CategoryTheory.Limits.preservesFiniteLimitsOp +/- def CategoryTheory.Limits.preservesLimitOp +/- def CategoryTheory.Limits.preservesLimitsLeftOp +/- def CategoryTheory.Limits.preservesLimitsOp +/- def CategoryTheory.Limits.preservesLimitsRightOp +/- def CategoryTheory.Limits.preservesLimitsUnop Modified Mathlib/CategoryTheory/Limits/Preserves/Shapes/Biproducts.lean Modified Mathlib/CategoryTheory/Limits/Preserves/Shapes/Kernels.lean Modified Mathlib/CategoryTheory/Limits/Preserves/Shapes/Terminal.lean Modified Mathlib/CategoryTheory/Limits/Shapes/FunctorCategory.lean Modified Mathlib/CategoryTheory/Limits/Shapes/SplitCoequalizer.lean Modified Mathlib/CategoryTheory/Limits/Yoneda.lean Modified Mathlib/CategoryTheory/Monad/Algebra.lean Modified Mathlib/CategoryTheory/Monad/Limits.lean Modified Mathlib/CategoryTheory/Monad/Monadicity.lean Modified Mathlib/CategoryTheory/Monoidal/FunctorCategory.lean Modified Mathlib/CategoryTheory/Monoidal/NaturalTransformation.lean Modified Mathlib/CategoryTheory/Monoidal/Rigid/Basic.lean +/- def CategoryTheory.closedOfHasLeftDual Modified Mathlib/CategoryTheory/Over.lean Modified Mathlib/CategoryTheory/Preadditive/AdditiveFunctor.lean Modified Mathlib/CategoryTheory/Preadditive/Mat.lean Modified Mathlib/CategoryTheory/Quotient.lean Modified Mathlib/CategoryTheory/Sites/Grothendieck.lean Modified Mathlib/CategoryTheory/Sites/Subsheaf.lean +/- def CategoryTheory.GrothendieckTopology.Subpresheaf.homOfLe Modified Mathlib/CategoryTheory/Skeletal.lean +/- def CategoryTheory.ThinSkeleton.mapNatTrans Modified Mathlib/CategoryTheory/Subobject/Comma.lean Modified Mathlib/CategoryTheory/Types.lean Modified Mathlib/Combinatorics/Young/YoungDiagram.lean Modified Mathlib/Control/Bifunctor.lean Modified Mathlib/Data/Complex/Module.lean Modified Mathlib/Data/DFinsupp/Basic.lean Modified Mathlib/Data/Finset/Basic.lean Modified Mathlib/Data/Finsupp/Basic.lean Modified Mathlib/Data/Finsupp/Defs.lean Modified Mathlib/FieldTheory/Adjoin.lean Modified Mathlib/FieldTheory/Galois.lean Modified Mathlib/GroupTheory/Congruence.lean Modified Mathlib/GroupTheory/Coprod.lean Modified Mathlib/GroupTheory/CoprodI.lean Modified Mathlib/GroupTheory/GroupAction/ConjAct.lean Modified Mathlib/GroupTheory/GroupAction/SubMulAction.lean Modified Mathlib/GroupTheory/GroupAction/SubMulAction/Pointwise.lean Modified Mathlib/GroupTheory/Subgroup/Basic.lean Modified Mathlib/GroupTheory/Submonoid/Center.lean Modified Mathlib/Init/Order/Defs.lean Modified Mathlib/LinearAlgebra/AffineSpace/AffineMap.lean Modified Mathlib/LinearAlgebra/Orientation.lean Modified Mathlib/LinearAlgebra/QuadraticForm/Basic.lean Modified Mathlib/LinearAlgebra/Quotient.lean Modified Mathlib/MeasureTheory/Constructions/BorelSpace/Basic.lean Modified Mathlib/MeasureTheory/Constructions/Prod/Basic.lean Modified Mathlib/MeasureTheory/Measure/FiniteMeasure.lean Modified Mathlib/MeasureTheory/Measure/MeasureSpace.lean Modified Mathlib/Order/Category/FinBddDistLatCat.lean Modified Mathlib/Order/Category/FinBoolAlgCat.lean Modified Mathlib/Order/Category/NonemptyFinLinOrdCat.lean Modified Mathlib/Order/Category/PreordCat.lean Modified Mathlib/Order/Filter/Basic.lean Modified Mathlib/RepresentationTheory/FdRep.lean Modified Mathlib/RingTheory/Derivation/Basic.lean Modified Mathlib/RingTheory/HahnSeries.lean Modified Mathlib/RingTheory/Ideal/LocalRing.lean Modified Mathlib/RingTheory/Ideal/Operations.lean Modified Mathlib/RingTheory/PowerSeries/Basic.lean Modified Mathlib/RingTheory/PrincipalIdealDomain.lean Modified Mathlib/Topology/Algebra/ConstMulAction.lean Modified Mathlib/Topology/Algebra/Group/Basic.lean Modified Mathlib/Topology/Algebra/Nonarchimedean/Basic.lean Modified Mathlib/Topology/Algebra/Star.lean Modified Mathlib/Topology/Category/CompHaus/Basic.lean Modified Mathlib/Topology/Category/Profinite/Basic.lean Modified Mathlib/Topology/ContinuousFunction/Ordered.lean Modified Mathlib/Topology/ContinuousFunction/StoneWeierstrass.lean +/- def ContinuousMap.attachBound Modified Mathlib/Topology/ContinuousFunction/Units.lean Modified Mathlib/Topology/Order/Lattice.lean Modified Mathlib/Topology/SubsetProperties.lean Modified Mathlib/Topology/VectorBundle/Hom.lean 2023-09-14 13:42:25 eb83f03 chore(RingTheory/TensorProduct): cleanup type names (#7145) This fix has picked up a mixture of naming conventions for type names. In particular, this replaces: * `A, B, B', C, D, D'` with `A, B, C, D, E, F` * `R, A, A'` with `R, S, A` * `k, R` with `R, A` This also gives the universes explicit names because this is marginally nicer to read than `u_`. ESTIMATED CHANGES Modified Mathlib/RepresentationTheory/GroupCohomology/Resolution.lean Modified Mathlib/RingTheory/TensorProduct.lean +/- theorem Algebra.TensorProduct.basisAux_map_smul +/- theorem Algebra.TensorProduct.basisAux_tmul +/- theorem Algebra.TensorProduct.basis_repr_symm_apply' +/- theorem Algebra.TensorProduct.basis_repr_symm_apply +/- theorem Algebra.TensorProduct.basis_repr_tmul +/- theorem Algebra.TensorProduct.congr_trans +/- theorem Algebra.TensorProduct.includeLeftRingHom_comp_algebraMap +/- theorem Algebra.TensorProduct.map_comp +/- def Algebra.TensorProduct.productLeftAlgHom 2023-09-14 13:42:24 aafb96f chore: generalize type of isBlackListed (#7136) easier to use from, say, `MetaM` or `CommandElabM` this way. ESTIMATED CHANGES Modified Mathlib/Lean/Expr/Basic.lean +/- def Lean.Name.isBlackListed 2023-09-14 13:42:23 1328e6e feat: the category of short complexes is preadditive (#7047) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Homology/ShortComplex/Preadditive.lean + def CategoryTheory.ShortComplex.LeftHomologyMapData.add + def CategoryTheory.ShortComplex.LeftHomologyMapData.neg + theorem CategoryTheory.ShortComplex.add_τ₁ + theorem CategoryTheory.ShortComplex.add_τ₂ + theorem CategoryTheory.ShortComplex.add_τ₃ + theorem CategoryTheory.ShortComplex.cyclesMap'_add + theorem CategoryTheory.ShortComplex.cyclesMap'_neg + theorem CategoryTheory.ShortComplex.cyclesMap'_sub + theorem CategoryTheory.ShortComplex.cyclesMap_add + theorem CategoryTheory.ShortComplex.cyclesMap_neg + theorem CategoryTheory.ShortComplex.cyclesMap_sub + theorem CategoryTheory.ShortComplex.leftHomologyMap'_add + theorem CategoryTheory.ShortComplex.leftHomologyMap'_neg + theorem CategoryTheory.ShortComplex.leftHomologyMap'_sub + theorem CategoryTheory.ShortComplex.leftHomologyMap_add + theorem CategoryTheory.ShortComplex.leftHomologyMap_neg + theorem CategoryTheory.ShortComplex.leftHomologyMap_sub + theorem CategoryTheory.ShortComplex.neg_τ₁ + theorem CategoryTheory.ShortComplex.neg_τ₂ + theorem CategoryTheory.ShortComplex.neg_τ₃ + theorem CategoryTheory.ShortComplex.sub_τ₁ + theorem CategoryTheory.ShortComplex.sub_τ₂ + theorem CategoryTheory.ShortComplex.sub_τ₃ 2023-09-14 13:42:22 11bd532 feat: add results for the computation of the volume of Zspan.fundamentalDomain (#6904) We prove that the covolume of a $\mathbb{Z}$-lattice of $\mathbb{R}^n$ generated by the basis $b$ is equal to the absolute value of the determinant of the matrix formed by the vectors of $b$, that is ```lean theorem volume_fundamentalDomain [Fintype ι] [DecidableEq ι] (b : Basis ι ℝ (ι → ℝ)) : volume (fundamentalDomain b) = ENNReal.ofReal |(Matrix.of b).det| ``` ESTIMATED CHANGES Modified Mathlib/Algebra/Module/Zlattice.lean + theorem Zspan.fundamentalDomain_pi_basisFun + theorem Zspan.fundamentalDomain_reindex + theorem Zspan.map_fundamentalDomain + theorem Zspan.measure_fundamentalDomain + theorem Zspan.volume_fundamentalDomain 2023-09-14 13:07:19 693d13c chore: add a CI step that validates the cache (#7099) ESTIMATED CHANGES Modified .github/workflows/bors.yml Modified .github/workflows/build.yml Modified .github/workflows/build.yml.in Modified .github/workflows/build_fork.yml 2023-09-14 12:44:12 b2dbb2c feat(UniqueProds): subsingleton and MulOpposite lemmas (#6755) Basic support for `subsingleton` and `MulOpposites`. Helps #6723. ESTIMATED CHANGES Modified Mathlib/Algebra/Group/UniqueProds.lean + theorem UniqueMul.iff_mulOpposite + theorem UniqueMul.of_mulOpposite + theorem UniqueMul.of_subsingleton + theorem UniqueMul.to_mulOpposite + theorem UniqueProds.iff_mulOpposite + theorem UniqueProds.of_mulOpposite + theorem UniqueProds.of_subsingleton 2023-09-14 11:42:59 bd93b8e chore: fix bash syntax in lean-pr-testing-comments.sh (#7144) ESTIMATED CHANGES Modified scripts/lean-pr-testing-comments.sh 2023-09-14 11:42:58 dc0e30a chore: run 'cache get' twice in CI (#7129) This is a band-aid for the frequent failures due to network errors we've been seeing lately. ESTIMATED CHANGES Modified .github/workflows/bors.yml Modified .github/workflows/build.yml Modified .github/workflows/build.yml.in Modified .github/workflows/build_fork.yml 2023-09-14 11:42:57 42093ba feat: descPochhammer (#6918) - [x] depends on: #6917 ESTIMATED CHANGES Modified Mathlib/Data/Polynomial/Eval.lean + theorem Polynomial.eval₂_at_int_cast Modified Mathlib/RingTheory/Polynomial/Pochhammer.lean + theorem Pochhammer_int_eq_descFactorial + theorem Polynomial.mul_X_sub_int_cast_comp + theorem descPochhammer_eval_cast + theorem descPochhammer_eval_zero + theorem descPochhammer_int_eq_ascFactorial + theorem descPochhammer_map + theorem descPochhammer_mul + theorem descPochhammer_ne_zero_eval_zero + theorem descPochhammer_one + theorem descPochhammer_succ_comp_X_sub_one + theorem descPochhammer_succ_eval + theorem descPochhammer_succ_left + theorem descPochhammer_succ_right + theorem descPochhammer_zero + theorem descPochhammer_zero_eval_zero 2023-09-14 10:14:13 31ea645 feat: exists_unique_iff_card_one (#7067) Adds a theorem ESTIMATED CHANGES Modified Mathlib/Data/Fintype/Card.lean + theorem Fintype.exists_unique_iff_card_one 2023-09-14 10:14:12 9fb4ff6 feat(CategoryTheory/Triangulated): shifting distinguished triangles and variations on the five lemma (#7053) In this PR, it is shown that the shift of a distinguished triangle is a distinguished triangle. It is also shown that in a morphism between distinguished triangles, if two morphisms are isomorphisms, so is the third. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Triangulated/Pretriangulated.lean + theorem CategoryTheory.Pretriangulated.Triangle.shift_distinguished + theorem CategoryTheory.Pretriangulated.isIso₁_of_isIso₂₃ + theorem CategoryTheory.Pretriangulated.isIso₂_of_isIso₁₃ + theorem CategoryTheory.Pretriangulated.isIso₃_of_isIso₁₂ Modified Mathlib/CategoryTheory/Yoneda.lean + theorem CategoryTheory.isIso_of_yoneda_map_bijective 2023-09-14 10:14:11 132c469 feat: the shift on the homotopy category of cochain complexes (#7048) ESTIMATED CHANGES Modified Mathlib/Algebra/Homology/HomotopyCategory/Shift.lean + def CategoryTheory.Functor.mapCochainComplexShiftIso + theorem CategoryTheory.Functor.mapHomologicalComplex_commShiftIso_eq + theorem CategoryTheory.Functor.mapHomologicalComplex_commShiftIso_hom_app_f + theorem CategoryTheory.Functor.mapHomologicalComplex_commShiftIso_inv_app_f + def Homotopy.shift 2023-09-14 10:14:10 4bc2392 feat: Exterior of a set (#6982) In an Alexandrov-discrete space, every set has a smallest neighborhood. We call this neighborhood the *exterior* of the set. It is completely analogous to the interior, except that all inclusions are reversed. ESTIMATED CHANGES Modified Mathlib/Order/Filter/Bases.lean - theorem Filter.HasBasis.sInter_sets Modified Mathlib/Order/Filter/Basic.lean + theorem Filter.generate_singleton +/- def Filter.ker +/- theorem Filter.ker_bot + theorem Filter.ker_def +/- theorem Filter.mem_ker +/- theorem Filter.subset_ker Modified Mathlib/Order/Filter/Cofinite.lean + theorem Filter.Tendsto.countable_compl_preimage_ker - theorem Filter.Tendsto.countable_compl_preimage_sInter_sets + theorem Filter.countable_compl_ker - theorem Filter.countable_compl_sInter_sets Modified Mathlib/Topology/AlexandrovDiscrete.lean + theorem AlexandrovDiscrete.sup + theorem Inducing.alexandrovDiscrete + theorem IsOpen.exterior_eq + theorem IsOpen.exterior_subset + theorem IsOpen.exterior_subset_iff + theorem Set.Finite.isCompact_exterior + theorem alexandrovDiscrete_coinduced + theorem alexandrovDiscrete_iSup + theorem closure_iUnion + theorem closure_sUnion + def exterior + theorem exterior_def + theorem exterior_empty + theorem exterior_eq_empty + theorem exterior_eq_iff_isOpen + theorem exterior_exterior + theorem exterior_mem_nhdsSet + theorem exterior_minimal + theorem exterior_mono + theorem exterior_singleton_eq_ker_nhds + theorem exterior_singleton_subset_iff_mem_nhds + theorem exterior_subset_exterior + theorem exterior_subset_iff + theorem exterior_subset_iff_isOpen + theorem exterior_subset_iff_mem_nhdsSet + theorem exterior_union + theorem exterior_univ + theorem gc_exterior_interior + theorem interior_iInter + theorem interior_sInter + theorem isClopen_iInter + theorem isClopen_iInter₂ + theorem isClopen_iUnion₂ + theorem isClopen_sInter + theorem isClosed_iUnion₂ + theorem isOpen_exterior + theorem isOpen_iInter₂ + theorem isOpen_iff_forall_specializes + theorem mem_exterior + theorem nhdsSet_exterior + theorem principal_exterior + theorem specializes_iff_exterior_subset + theorem subset_exterior + theorem subset_exterior_iff Modified Mathlib/Topology/Algebra/InfiniteSum/Basic.lean Modified Mathlib/Topology/Bases.lean + theorem TopologicalSpace.IsTopologicalBasis.eq_of_forall_subset_iff + theorem TopologicalSpace.IsTopologicalBasis.subset_of_forall_subset Modified Mathlib/Topology/Basic.lean + theorem interior_subset_iff Modified Mathlib/Topology/Inseparable.lean + theorem ker_nhds_eq_specializes - theorem sInter_nhds_sets_eq_specializes Modified Mathlib/Topology/NhdsSet.lean + theorem nhdsSet_le Modified Mathlib/Topology/Separation.lean + theorem ker_nhds - theorem sInter_sets_nhds Modified Mathlib/Topology/UniformSpace/Separation.lean +/- def separationRel 2023-09-14 10:14:08 1e1cdbf feat: HNN extensions and Britton's lemma (#6923) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/GroupTheory/HNNExtension.lean + def HNNExtension.NormalWord.Cancels + def HNNExtension.NormalWord.ReducedWord.empty + def HNNExtension.NormalWord.ReducedWord.prod + structure HNNExtension.NormalWord.ReducedWord + structure HNNExtension.NormalWord.TransversalPair + def HNNExtension.NormalWord.cons + def HNNExtension.NormalWord.consRecOn + theorem HNNExtension.NormalWord.consRecOn_cons + theorem HNNExtension.NormalWord.consRecOn_ofGroup + def HNNExtension.NormalWord.empty + theorem HNNExtension.NormalWord.ext + theorem HNNExtension.NormalWord.group_smul_def + theorem HNNExtension.NormalWord.group_smul_head + theorem HNNExtension.NormalWord.group_smul_toList + theorem HNNExtension.NormalWord.not_cancels_of_cons_hyp + def HNNExtension.NormalWord.ofGroup + theorem HNNExtension.NormalWord.of_smul_eq_smul + theorem HNNExtension.NormalWord.prod_cons + theorem HNNExtension.NormalWord.prod_empty + theorem HNNExtension.NormalWord.prod_group_smul + theorem HNNExtension.NormalWord.prod_injective + theorem HNNExtension.NormalWord.prod_smul + theorem HNNExtension.NormalWord.prod_smul_empty + theorem HNNExtension.NormalWord.prod_unitsSMul + theorem HNNExtension.NormalWord.smul_cons + theorem HNNExtension.NormalWord.smul_ofGroup + theorem HNNExtension.NormalWord.t_pow_smul_eq_unitsSMul + theorem HNNExtension.NormalWord.t_smul_eq_unitsSMul + theorem HNNExtension.NormalWord.unitsSMulGroup_snd + def HNNExtension.NormalWord.unitsSMulWithCancel + theorem HNNExtension.NormalWord.unitsSMul_cancels_iff + theorem HNNExtension.NormalWord.unitsSMul_neg + theorem HNNExtension.NormalWord.unitsSMul_one_group_smul + structure HNNExtension.NormalWord + theorem HNNExtension.ReducedWord.exists_normalWord_prod_eq + theorem HNNExtension.ReducedWord.map_fst_eq_and_of_prod_eq + theorem HNNExtension.ReducedWord.toList_eq_nil_of_mem_of_range + def HNNExtension.con + theorem HNNExtension.equiv_eq_conj + theorem HNNExtension.equiv_symm_eq_conj + theorem HNNExtension.hom_ext + theorem HNNExtension.induction_on + theorem HNNExtension.inv_t_mul_of + def HNNExtension.lift + theorem HNNExtension.lift_of + theorem HNNExtension.lift_t + def HNNExtension.of + theorem HNNExtension.of_injective + theorem HNNExtension.of_mul_inv_t + theorem HNNExtension.of_mul_t + def HNNExtension.t + theorem HNNExtension.t_mul_of + def HNNExtension.toSubgroup + def HNNExtension.toSubgroupEquiv + theorem HNNExtension.toSubgroupEquiv_neg_apply + theorem HNNExtension.toSubgroupEquiv_neg_one + theorem HNNExtension.toSubgroupEquiv_one + theorem HNNExtension.toSubgroup_neg_one + theorem HNNExtension.toSubgroup_one + def HNNExtension 2023-09-14 10:14:07 52192c4 feat: det_vandermonde_id_eq_superFactorial (#6827) - [x] depends on: #6768 ESTIMATED CHANGES Modified Mathlib/Data/Nat/Factorial/SuperFactorial.lean + theorem Nat.det_vandermonde_id_eq_superFactorial 2023-09-14 10:14:05 9476eae chore(Co(ntra)variantClass): generalize and remove duplicates (#6677) 4 files have major changes: [Algebra/CovariantAndContravariant.lean](https://github.com/leanprover-community/mathlib4/pull/6677/files#diff-764d54e9aec88678ce0ea3815466659fa7157fd2eedcc0ff412e1dd0d29dd1e1) + Add new theorem `contravariant_le_iff_contravariant_lt_and_eq`. + Add `covariantClass_le_of_lt` generalizing and replacing `Mul.to_covariantClass_left/right` in Algebra/Order/Monoid/Defs.lean + Replace `CommSemigroup` by `IsSymmOp N N mu` and replace `CancelSemigroup` by `IsMulCancel`, removing superfluous associativity assumption. + new theorems `covariant_lt_of_covariant_le_of_contravariant_eq` and `contravariant_le_of_contravariant_eq_and_lt` that could replace eight instances when appropriate refactoring is in place. + Golfs + Fix changed names in other files. [Algebra/Order/Monoid/Lemmas.lean](https://github.com/leanprover-community/mathlib4/pull/6677/files#diff-c2487d6e6723908a2b225ada734c34973df02568470b006d117f1d5dc02279f9) + Generalize `mul_eq_mul_iff_eq_and_eq` and remove the less general `Left/Right.mul_eq_mul_iff_eq_and_eq`. + Move `mul_le_mul_iff_of_ge`. + Introduce the more general Left/Right versions of `min_le_max_of_mul_le_mul`. + Move `min_lt_max_of_mul_lt_mul` here from [Algebra/GroupPower/Order.lean](https://github.com/leanprover-community/mathlib4/pull/6677/files#diff-85059824b1e928b1e837ac778960d991bfe9d6cb1809f5c4fdc4151432967790). + Replace `CommSemigroup` by `IsSymmOp`. [Algebra/Order/Monoid/Basic.lean](https://github.com/leanprover-community/mathlib4/pull/6677/files#diff-d69116bc1a74c9c0fa2567f6b46ba380d7d96f5463378477fe6165a612286bae) + Remove `eq_and_eq_of_le_of_le_of_mul_le` as it's just one direction of `mul_le_mul_iff_of_ge` but with more assumptions. [Algebra/Order/Ring/Lemmas.lean](https://github.com/leanprover-community/mathlib4/pull/6677/files#diff-84a9a84aac2261f2bf7bb093c52ff380fa59f0cc849c9d8a935e38625b870d42) + Generalize two versions of `mul_eq_mul_iff_eq_and_eq_of_pos` + Golfs Changes to [Algebra/Group/UniqueProds.lean](https://github.com/leanprover-community/mathlib4/pull/6677/files#diff-ebdf20b185bac5adc5a22ffdf53e7dfa74bb23fb34dfa47a761bb9dfa66c9fc1) and [Algebra/MonoidAlgebra/NoZeroDivisors.lean](https://github.com/leanprover-community/mathlib4/pull/6677/files#diff-01c7904bf1227e1223f180ad94ac7d7633b93d65e529385deb6d10dd7655b5e0) are in declarations that will be removed by #6723. ESTIMATED CHANGES Modified Mathlib/Algebra/CovariantAndContravariant.lean + theorem contravariant_flip_iff - theorem contravariant_flip_mul_iff + theorem contravariant_le_iff_contravariant_lt_and_eq + theorem contravariant_le_of_contravariant_eq_and_lt + theorem covariantClass_le_of_lt + theorem covariant_flip_iff - theorem covariant_flip_mul_iff + theorem covariant_lt_of_covariant_le_of_contravariant_eq - theorem flip_mul Modified Mathlib/Algebra/Group/UniqueProds.lean Modified Mathlib/Algebra/GroupPower/Order.lean - theorem min_lt_max_of_mul_lt_mul Modified Mathlib/Algebra/MonoidAlgebra/NoZeroDivisors.lean Modified Mathlib/Algebra/Order/Monoid/Basic.lean - theorem eq_and_eq_of_le_of_le_of_mul_le Modified Mathlib/Algebra/Order/Monoid/Cancel/Defs.lean Modified Mathlib/Algebra/Order/Monoid/Defs.lean - theorem Mul.to_covariantClass_left - theorem Mul.to_covariantClass_right Modified Mathlib/Algebra/Order/Monoid/Lemmas.lean + theorem Left.min_le_max_of_mul_le_mul - theorem Left.mul_eq_mul_iff_eq_and_eq + theorem Right.min_le_max_of_mul_le_mul - theorem Right.mul_eq_mul_iff_eq_and_eq +/- theorem min_le_max_of_mul_le_mul + theorem min_lt_max_of_mul_lt_mul + theorem mul_eq_mul_iff_eq_and_eq +/- theorem mul_le_mul_iff_of_ge Modified Mathlib/Algebra/Order/Ring/Lemmas.lean +/- theorem mul_eq_mul_iff_eq_and_eq_of_pos' +/- theorem mul_eq_mul_iff_eq_and_eq_of_pos Modified Mathlib/Algebra/Order/Sub/Defs.lean Modified Mathlib/Data/DFinsupp/Lex.lean Modified Mathlib/Data/Finsupp/Lex.lean Modified Mathlib/Data/Polynomial/Degree/Definitions.lean 2023-09-14 10:14:04 433091d refactor: remove `IsDomain` hypothesis from `IsIntegrallyClosed` (#6126) This PR modifies the definition of `IsIntegrallyClosed` to drop the `IsDomain` hypothesis. This change came out of the discussions of modifying `IsDedekindDomain` to either extend `IsDomain` or to drop `IsDomain` entirely and change it to `IsDedekindRing`. (The former being a dependency of this PR, the latter a follow-up.) Zulip thread: https://leanprover.zulipchat.com/#narrow/stream/113488-general/topic/Should.20.60IsDedekindDomain.60.20extend.20.60IsDomain.60.3F ESTIMATED CHANGES Modified Mathlib/RingTheory/Discriminant.lean +/- theorem Algebra.discr_mul_isIntegral_mem_adjoin Modified Mathlib/RingTheory/IntegrallyClosed.lean +/- theorem integralClosure.isIntegrallyClosedOfFiniteExtension 2023-09-14 09:08:49 9022a7d chore: reduce use of Init.Data.Int.CompLemmas (#7142) `Mathlib.Init.Data.Int.CompLemmas` was ported from core, and was never really intended for outside use. Nevertheless, people started using it. (Surprise!) This PR removes one out of the two uses in Mathlib. If anyone would like to do the other in a separate PR, please do! You would need to reprove ``` theorem natAbs_add_nonneg {a b : ℤ} (wa : 0 ≤ a) (wb : 0 ≤ b) : Int.natAbs (a + b) = Int.natAbs a + Int.natAbs b := sorry theorem natAbs_add_neg {a b : ℤ} (wa : a < 0) (wb : b < 0) : Int.natAbs (a + b) = Int.natAbs a + Int.natAbs b := sorry ``` ESTIMATED CHANGES Modified Mathlib/NumberTheory/LegendreSymbol/Basic.lean 2023-09-14 09:08:48 22b19e1 chore: `Module.{Free,Finite}` instances for `ULift` (#7135) These carry no data so should be harmless. ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/Dimension.lean + theorem rank_ulift Modified Mathlib/LinearAlgebra/FreeModule/Basic.lean Modified Mathlib/LinearAlgebra/FreeModule/Finite/Rank.lean + theorem FiniteDimensional.finrank_ulift Modified Mathlib/RingTheory/Finiteness.lean 2023-09-14 09:08:47 f16dbd9 feat: the linear span of a separable set is separable (#7115) ESTIMATED CHANGES Modified Mathlib/Analysis/Calculus/ContDiff.lean + theorem ContDiff.lipschitzWith_of_hasCompactSupport Modified Mathlib/LinearAlgebra/Finsupp.lean + theorem mem_span_set' + theorem span_eq_iUnion_nat Modified Mathlib/Topology/Algebra/Module/Basic.lean + theorem Submodule.closure_subset_topologicalClosure_span + theorem TopologicalSpace.IsSeparable.span Modified Mathlib/Topology/Bases.lean + theorem TopologicalSpace.IsSeparable.prod + theorem TopologicalSpace.isSeparable_pi Modified Mathlib/Topology/EMetricSpace/Basic.lean + theorem TopologicalSpace.IsSeparable.exists_countable_dense_subset Modified Mathlib/Topology/Separation.lean + theorem nhdsWithin_compl_singleton_le 2023-09-14 07:53:21 8fa31ad feat(CategoryTheory/Limits/Shapes/Biproducts): add associator (#7127) As far as I can tell this doesn't exist anywhere else. The motivation is #7125, but I have a lot less idea of what I'm doing there than I do here. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Limits/Shapes/Biproducts.lean + def CategoryTheory.Limits.biprod.associator + theorem CategoryTheory.Limits.biprod.associator_inv_natural + theorem CategoryTheory.Limits.biprod.associator_natural +/- def CategoryTheory.Limits.biproductBiproductIso 2023-09-14 07:53:20 48d20bd feat: expand API for `Polynomial.divX` and some related results (#6428) Various lemmas about `Polynomial.natDegree` ESTIMATED CHANGES Modified Mathlib/Data/Polynomial/Degree/Definitions.lean + theorem Polynomial.eq_one_of_monic_natDegree_zero Modified Mathlib/Data/Polynomial/Div.lean + theorem Polynomial.X_dvd_sub_C + theorem Polynomial.natDegree_modByMonic_le Modified Mathlib/Data/Polynomial/Inductions.lean + theorem Polynomial.X_mul_divX_add + theorem Polynomial.divX_C_mul + theorem Polynomial.divX_C_mul_X_pow + theorem Polynomial.divX_X_pow + def Polynomial.divX_hom + theorem Polynomial.divX_hom_toFun + theorem Polynomial.divX_one + theorem Polynomial.divX_zero + theorem Polynomial.natDegree_divX_eq_natDegree_tsub_one + theorem Polynomial.natDegree_divX_le 2023-09-14 06:57:04 cdbcc21 chore: tidy various files (#7137) ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/Unitization.lean Modified Mathlib/Algebra/Category/SemigroupCat/Basic.lean - theorem MagmaCat.MulEquiv_coe_eq + theorem MagmaCat.mulEquiv_coe_eq - theorem SemigroupCat.MulEquiv_coe_eq + theorem SemigroupCat.mulEquiv_coe_eq Modified Mathlib/Algebra/Star/Order.lean + def StarOrderedRing.ofLEIff - def StarOrderedRing.ofLeIff Modified Mathlib/AlgebraicTopology/FundamentalGroupoid/Product.lean Modified Mathlib/Analysis/Calculus/Deriv/Basic.lean Modified Mathlib/Analysis/SpecificLimits/Basic.lean - theorem tsum_geometric_nNReal + theorem tsum_geometric_nnreal Modified Mathlib/CategoryTheory/Limits/Shapes/Types.lean Modified Mathlib/Data/Bundle.lean Modified Mathlib/FieldTheory/RatFunc.lean + theorem RatFunc.liftOn_condition_of_liftOn'_condition - theorem RatFunc.lift_on_condition_of_lift_on'_condition +/- theorem RatFunc.mul_inv_cancel Modified Mathlib/Geometry/Manifold/Algebra/SmoothFunctions.lean Modified Mathlib/LinearAlgebra/CliffordAlgebra/Contraction.lean Modified Mathlib/LinearAlgebra/CliffordAlgebra/EvenEquiv.lean Modified Mathlib/LinearAlgebra/ExteriorAlgebra/Grading.lean Modified Mathlib/Logic/Equiv/TransferInstance.lean Modified Mathlib/MeasureTheory/Integral/Lebesgue.lean Modified Mathlib/RingTheory/FractionalIdeal.lean Modified Mathlib/Topology/Order/UpperLowerSetTopology.lean - theorem WithLowerSetTopology.IsLowerSet_toLowerSet_preimage + theorem WithLowerSetTopology.isLowerSet_toLowerSet_preimage - theorem WithUpperSetTopology.IsUpperSet_toUpperSet_preimage + theorem WithUpperSetTopology.isUpperSet_toUpperSet_preimage 2023-09-14 15:33:16+10:00 b639e46 chore: fix link to workflow run posted to Lean4 repo ESTIMATED CHANGES Modified .github/workflows/bors.yml Modified .github/workflows/build.yml Modified .github/workflows/build.yml.in Modified .github/workflows/build_fork.yml 2023-09-13 23:02:27 226948a chore: move `mkRichHCongr` from `congr!` implementation into CongrTheorems module (#7107) 1. Defines a trace class `Meta.CongrTheorems` for congruence theorem generators in general 2. Renames `Congr!.mkHCongrThm` to `Lean.Meta.mkRichHCongr` for this congruence theorem generator 3. Adds a `forceHEq` parameter to the function; `false` is the default and makes it act like `Lean.Meta.mkHCongr`, but `congr!` expects the lemma to prove a `HEq` and not an `Eq`. 4. Makes `mkRichHCongr` package up some more data and return a `CongrTheorem` ESTIMATED CHANGES Modified Mathlib/Lean/Meta/CongrTheorems.lean Modified Mathlib/Tactic/Congr!.lean Modified scripts/nolints.json Modified test/congr.lean 2023-09-13 21:26:38 100e68c feat: add `Finset.card_le_one_iff_subsingleton` and `Finset.one_lt_card_iff_nontrivial` (#7131) The versions for `Fintype` already exist but are missing for `Finset`. ESTIMATED CHANGES Modified Mathlib/Data/Finset/Card.lean + theorem Finset.card_le_one_iff_subsingleton_coe + theorem Finset.one_lt_card_iff_nontrivial_coe Modified Mathlib/Data/Fintype/Card.lean 2023-09-13 14:54:18 65ef10e chore: generalize layercake formulas to null-measurable and a.e.-nonnegative functions (#6936) The layercake formulas (a typical example of which is ∫⁻ f^p ∂μ = p * ∫⁻ t in 0..∞, t^(p-1) * μ {ω | f(ω) > t}) had been originally proven assuming measurability and nonnegativity of `f`. This PR generalizes them to null-measurable and a.e.-nonnegative `f`. ESTIMATED CHANGES Modified Mathlib/Analysis/SpecialFunctions/JapaneseBracket.lean Modified Mathlib/Data/Set/Prod.lean + theorem Set.compl_prod_eq_union Modified Mathlib/MeasureTheory/Constructions/Prod/Basic.lean + theorem MeasureTheory.Measure.measure_prod_compl_eq_zero + theorem MeasureTheory.NullMeasurableSet.prod Modified Mathlib/MeasureTheory/Integral/Layercake.lean + theorem Measure.countable_meas_le_ne_meas_lt₀ + theorem Measure.meas_eq_pos_of_meas_le_ne_meas_lt + theorem Measure.meas_le_ae_eq_meas_lt₀ - theorem Measure.meas_le_ne_meas_lt_subset_meas_pos +/- theorem MeasureTheory.lintegral_comp_eq_lintegral_meas_le_mul +/- theorem MeasureTheory.lintegral_eq_lintegral_meas_le +/- theorem MeasureTheory.lintegral_rpow_eq_lintegral_meas_le_mul +/- theorem lintegral_comp_eq_lintegral_meas_lt_mul +/- theorem lintegral_eq_lintegral_meas_lt +/- theorem lintegral_rpow_eq_lintegral_meas_lt_mul Modified Mathlib/MeasureTheory/Measure/Lebesgue/Basic.lean + theorem nullMeasurableSet_regionBetween + theorem nullMeasurableSet_region_between_cc + theorem nullMeasurableSet_region_between_co + theorem nullMeasurableSet_region_between_oc Modified Mathlib/MeasureTheory/Measure/MeasureSpace.lean + theorem MeasureTheory.Measure.countable_meas_level_set_pos₀ + theorem MeasureTheory.Measure.countable_meas_pos_of_disjoint_iUnion₀ + theorem MeasureTheory.Measure.countable_meas_pos_of_disjoint_of_meas_iUnion_ne_top₀ + theorem MeasureTheory.Measure.finite_const_le_meas_of_disjoint_iUnion₀ + theorem MeasureTheory.tsum_meas_le_meas_iUnion_of_disjoint₀ 2023-09-13 14:53:49 1bfcb2b feat: Linear order on upper/lower sets (#6816) Match https://github.com/leanprover-community/mathlib/pull/19068 ESTIMATED CHANGES Modified Mathlib/Algebra/Order/UpperLower.lean +/- theorem IsLowerSet.div_left +/- theorem IsLowerSet.div_right +/- theorem IsLowerSet.mul_left +/- theorem IsLowerSet.mul_right +/- theorem IsLowerSet.smul +/- theorem IsUpperSet.smul Modified Mathlib/Order/UpperLower/Basic.lean + theorem IsLowerSet.total + theorem IsUpperSet.total Modified Mathlib/Topology/Algebra/Order/UpperLower.lean 2023-09-13 13:29:19 7eb2743 chore: tidy various files (#7132) ESTIMATED CHANGES Modified Archive/Imo/Imo2008Q4.lean Modified Mathlib/Algebra/Category/ModuleCat/Presheaf.lean Modified Mathlib/Algebra/Module/LocalizedModule.lean Modified Mathlib/AlgebraicGeometry/Morphisms/QuasiCompact.lean - theorem AlgebraicGeometry.QuasiCompact.affine_openCover_tFAE + theorem AlgebraicGeometry.QuasiCompact.affine_openCover_tfae - theorem AlgebraicGeometry.QuasiCompact.openCover_tFAE + theorem AlgebraicGeometry.QuasiCompact.openCover_tfae Modified Mathlib/Analysis/Calculus/Taylor.lean Modified Mathlib/Analysis/Convex/Normed.lean Modified Mathlib/Analysis/LocallyConvex/Barrelled.lean Modified Mathlib/CategoryTheory/Abelian/Pseudoelements.lean Modified Mathlib/CategoryTheory/Bicategory/Adjunction.lean Modified Mathlib/Combinatorics/SimpleGraph/Connectivity/Subgraph.lean Modified Mathlib/Data/Set/Card.lean + theorem Set.Infinite.exists_superset_ncard_eq - theorem Set.Infinite.exists_supset_ncard_eq +/- theorem Set.encard_eq_two +/- theorem Set.encard_pair + theorem Set.exists_superset_subset_encard_eq - theorem Set.exists_supset_subset_encard_eq Modified Mathlib/Data/Set/Function.lean - theorem Function.LeftInvOn_invFunOn_of_subset_image_image + theorem Function.leftInvOn_invFunOn_of_subset_image_image Modified Mathlib/NumberTheory/ModularForms/Basic.lean Modified Mathlib/NumberTheory/NumberField/Units.lean +/- theorem NumberField.Units.rootsOfUnity_eq_one + def NumberField.Units.torsionOrder - def NumberField.Units.torsion_order Modified Mathlib/SetTheory/Ordinal/NaturalOps.lean Modified Mathlib/Topology/PathConnected.lean 2023-09-13 11:20:06 07916a0 feat: Prove that the measure equivalence between EuclideanSpace ℝ ι and ι → ℝ is volume preserving (#7037) We prove that the two `MeasureSpace` structures on $\mathbb{R}^\iota$, the one coming from its identification with `ι→ ℝ` and the one coming from `EuclideanSpace ℝ ι`, agree in the sense that the measure equivalence between the two corresponding volumes is measure preserving. ESTIMATED CHANGES Modified Mathlib/Analysis/InnerProductSpace/PiL2.lean + theorem EuclideanSpace.basisFun_apply + theorem EuclideanSpace.basisFun_repr + theorem EuclideanSpace.basisFun_toBasis Modified Mathlib/MeasureTheory/Measure/Haar/InnerProductSpace.lean + theorem EuclideanSpace.volume_preserving_measurableEquiv + theorem OrthonormalBasis.addHaar_eq_volume + theorem PiLp.volume_preserving_equiv + theorem PiLp.volume_preserving_equiv_symm Modified Mathlib/MeasureTheory/Measure/Haar/OfBasis.lean + theorem EuclideanSpace.coe_measurableEquiv_symm 2023-09-13 10:00:32 5802001 chore: minor import adjustment (#7118) Easy cleanup after recent Std bumps. ESTIMATED CHANGES Modified Mathlib/Logic/Equiv/LocalEquiv.lean Modified Mathlib/Tactic/Backtrack.lean Modified Mathlib/Tactic/LibrarySearch.lean Modified Mathlib/Tactic/SolveByElim.lean Modified Mathlib/Tactic/Tauto.lean 2023-09-13 10:00:30 33c02ff chore: Generalise and move liminf/limsup lemmas (#6846) Forward-ports https://github.com/leanprover-community/mathlib/pull/18628 ESTIMATED CHANGES Modified Mathlib/Data/Set/Finite.lean +/- theorem Set.infinite_of_not_bddBelow Modified Mathlib/Order/Bounds/Basic.lean +/- theorem BddAbove.union +/- theorem BddBelow.union + def ScottContinuous +/- theorem bddAbove_insert +/- theorem bddAbove_union +/- theorem bddBelow_insert +/- theorem bddBelow_union Modified Mathlib/Order/Directed.lean - def ScottContinuous Modified Mathlib/Order/LiminfLimsup.lean +/- theorem Filter.IsBoundedUnder.bddAbove_range +/- theorem Filter.IsBoundedUnder.bddAbove_range_of_cofinite +/- theorem Filter.IsBoundedUnder.bddBelow_range +/- theorem Filter.IsBoundedUnder.bddBelow_range_of_cofinite + theorem Filter.Tendsto.isBoundedUnder_ge_atTop + theorem Filter.Tendsto.isBoundedUnder_le_atBot + theorem Filter.bddAbove_range_of_tendsto_atTop_atBot + theorem Filter.bddBelow_range_of_tendsto_atTop_atTop + theorem Filter.gt_mem_sets_of_limsInf_gt + theorem Filter.isBounded_ge_atTop + theorem Filter.isBounded_le_atBot + theorem Filter.lt_mem_sets_of_limsSup_lt Modified Mathlib/Topology/Algebra/Order/LiminfLimsup.lean - theorem Filter.Tendsto.isBoundedUnder_ge_atTop - theorem Filter.Tendsto.isBoundedUnder_le_atBot - theorem bddAbove_range_of_tendsto_atTop_atBot - theorem bddBelow_range_of_tendsto_atTop_atTop - theorem gt_mem_sets_of_limsInf_gt - theorem isBounded_ge_atTop - theorem isBounded_le_atBot - theorem lt_mem_sets_of_limsSup_lt 2023-09-13 10:00:29 95ae01c feat: group generated by a finite-order submonoid element (#6648) This was split from #6629 after @tb65536's golf, the construction here now no longer needed there. ESTIMATED CHANGES Modified Mathlib/GroupTheory/OrderOfElement.lean Modified Mathlib/GroupTheory/Submonoid/Membership.lean 2023-09-13 08:37:12 0444e0c feat(Data/Nat/Basic): self_add_sub_one and friends (#7123) ESTIMATED CHANGES Modified Mathlib/Data/Nat/Basic.lean + theorem Nat.pred_add_self + theorem Nat.self_add_pred + theorem Nat.self_add_sub_one + theorem Nat.sub_one_add_self 2023-09-13 01:17:34 2a9e72b chore: fix lake exe graph --exclude-meta (#6958) ESTIMATED CHANGES Modified ImportGraph/Main.lean Modified Mathlib/Util/Imports.lean - def Lean.NameMap.dependenciesOf + def Lean.NameMap.downstreamOf + def Lean.NameMap.filterGraph + def Lean.NameMap.transitiveFilteredUpstream + def Lean.NameMap.upstreamOf 2023-09-13 01:17:33 9967216 feat: nondeterminism monad, and use in backtrack (#3464) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Data/MLList/Basic.lean + def MLList.singleton + def MLList.singletonM Added Mathlib/Data/Nondet/Basic.lean + def Nondet.filter + def Nondet.filterMap + def Nondet.firstM + def Nondet.head + def Nondet.map + def Nondet.nil + def Nondet.ofList + def Nondet.ofListM + def Nondet.ofOption + def Nondet.ofOptionM + def Nondet.singleton + def Nondet.singletonM + def Nondet.squash + def Nondet.toList' + def Nondet.toList + def Nondet.toMLList' + structure Nondet Modified Mathlib/Tactic.lean Renamed Mathlib/Tactic/Backtracking.lean to Mathlib/Tactic/Backtrack.lean +/- def Lean.MVarId.firstContinuation Modified Mathlib/Tactic/GCongr/Core.lean Modified Mathlib/Tactic/LibrarySearch.lean +/- def Mathlib.Tactic.LibrarySearch.sortResults Modified Mathlib/Tactic/SolveByElim.lean Added test/Nondet.lean + def M + def divisors + def divisorsM + def iotaM + def record + def x + def y 2023-09-12 23:50:13 fc20085 chore: bump Std for #251 (#7126) Some minor renaming: * `Sum.not_isLeft` becomes `Sum.bnot_isLeft` * `Sum.Not_isLeft` becomes `Sum.not_isLeft` A few explicit arguments also became implicit. ESTIMATED CHANGES Modified Mathlib/Data/Int/Cast/Lemmas.lean Modified Mathlib/Data/Nat/Cast/Basic.lean Modified Mathlib/Data/Sum/Basic.lean - theorem Sum.Lex.mono - theorem Sum.Lex.mono_left - theorem Sum.Lex.mono_right - inductive Sum.Lex - theorem Sum.LiftRel.mono - theorem Sum.LiftRel.mono_left - theorem Sum.LiftRel.mono_right - inductive Sum.LiftRel - theorem Sum.Not_isLeft - theorem Sum.Not_isRight - theorem Sum.comp_elim - theorem Sum.elim_comp_inl - theorem Sum.elim_comp_inl_inr - theorem Sum.elim_comp_inr - theorem Sum.elim_comp_map - theorem Sum.elim_const_const - theorem Sum.elim_inl - theorem Sum.elim_inl_inr - theorem Sum.elim_inr - theorem Sum.elim_lam_const_lam_const - theorem Sum.elim_map - theorem Sum.eq_left_getLeft_of_isLeft - theorem Sum.eq_right_getRight_of_isRight + theorem Sum.exists_sum - theorem Sum.exists_sum_pi - theorem Sum.forall_sum_pi - def Sum.getLeft - def Sum.getLeft? - theorem Sum.getLeft?_eq_none_iff - theorem Sum.getLeft?_eq_some_iff - theorem Sum.getLeft?_inl - theorem Sum.getLeft?_inr - theorem Sum.getLeft?_map - theorem Sum.getLeft?_swap - theorem Sum.getLeft_eq_iff - theorem Sum.getLeft_inl - def Sum.getRight - def Sum.getRight? - theorem Sum.getRight?_eq_none_iff - theorem Sum.getRight?_eq_some_iff - theorem Sum.getRight?_inl - theorem Sum.getRight?_inr - theorem Sum.getRight?_map - theorem Sum.getRight?_swap - theorem Sum.getRight_eq_iff - theorem Sum.getRight_inr - theorem Sum.inl.inj_iff - theorem Sum.inl_getLeft - theorem Sum.inl_ne_inr - theorem Sum.inr.inj_iff - theorem Sum.inr_getRight - theorem Sum.inr_ne_inl - def Sum.isLeft - theorem Sum.isLeft_eq_false - theorem Sum.isLeft_iff - theorem Sum.isLeft_inl - theorem Sum.isLeft_inr - theorem Sum.isLeft_map - theorem Sum.isLeft_swap - def Sum.isRight - theorem Sum.isRight_eq_false - theorem Sum.isRight_iff - theorem Sum.isRight_inl - theorem Sum.isRight_inr - theorem Sum.isRight_map - theorem Sum.isRight_swap - theorem Sum.lex_acc_inl - theorem Sum.lex_acc_inr - theorem Sum.lex_inl_inl - theorem Sum.lex_inr_inl - theorem Sum.lex_inr_inr - theorem Sum.lex_wf - theorem Sum.liftRel_inl_inl - theorem Sum.liftRel_inr_inr - theorem Sum.liftRel_subrelation_lex - theorem Sum.liftRel_swap_iff - theorem Sum.map_comp_map - theorem Sum.map_id_id - theorem Sum.map_inl - theorem Sum.map_inr - theorem Sum.map_map - theorem Sum.not_isLeft - theorem Sum.not_isRight - theorem Sum.not_liftRel_inl_inr - theorem Sum.not_liftRel_inr_inl - def Sum.swap - theorem Sum.swap_inl - theorem Sum.swap_inr - theorem Sum.swap_swap - theorem Sum.swap_swap_eq - theorem Sum.«exists» - theorem Sum.«forall» Modified lake-manifest.json 2023-09-12 22:27:47 127feab chore: fix typo (#7121) This PR fixes a typo from #6508. ESTIMATED CHANGES Modified Mathlib/NumberTheory/FLT/Basic.lean 2023-09-12 22:27:45 1bde21d feat: LinearOrderedAddCommMonoidWithTop ERealᵒᵈ (#7109) And `AddCommMonoidWithOne EReal` ESTIMATED CHANGES Modified Mathlib/Data/Real/EReal.lean 2023-09-12 22:27:44 6848ad5 chore: remove some no longer relevant porting notes (#7108) ESTIMATED CHANGES Modified Mathlib/Data/DFinsupp/Basic.lean Modified Mathlib/GroupTheory/Subgroup/Basic.lean Modified Mathlib/Order/SupIndep.lean 2023-09-12 22:27:43 fd58eb4 chore: use mk_iff more (#7105) ESTIMATED CHANGES Modified Mathlib/AlgebraicTopology/FundamentalGroupoid/SimplyConnected.lean - theorem simply_connected_def Modified Mathlib/Combinatorics/SimpleGraph/Connectivity.lean - theorem SimpleGraph.Walk.isCircuit_def - theorem SimpleGraph.Walk.isTrail_def Modified Mathlib/GroupTheory/Solvable.lean - theorem isSolvable_def Modified Mathlib/RingTheory/RootsOfUnity/Basic.lean - theorem IsPrimitiveRoot.iff_def 2023-09-12 22:27:42 e36d25e chore: fix port of surjective_quotient_mk (#7096) The mathlib3 lemma is about quotient.mk, which takes an instance argument and is translated into mathlib4 as Quotient.mk'. ESTIMATED CHANGES Modified Mathlib/Data/Fintype/Card.lean Modified Mathlib/Data/Quot.lean + theorem surjective_quotient_mk' - theorem surjective_quotient_mk Modified Mathlib/Data/Real/CauSeqCompletion.lean Modified Mathlib/Data/Setoid/Basic.lean Modified Mathlib/Data/Sym/Sym2.lean Modified Mathlib/MeasureTheory/Constructions/Polish.lean Modified Mathlib/Topology/Connected.lean Modified Mathlib/Topology/PathConnected.lean Modified Mathlib/Topology/UniformSpace/Completion.lean 2023-09-12 22:27:41 7ff6f23 chore: speed up edgeDensity_chunk_not_uniform (#7088) ESTIMATED CHANGES Modified Mathlib/Combinatorics/SimpleGraph/Regularity/Chunk.lean 2023-09-12 22:27:40 0c1c834 feat(NumberTheory/Divisors): Two lemmas about filtering by divisibility (#7084) Add lemmas about filtering the `Finset`s of divisors or factors by divisibility. These two results came up while developing API for the `Finset` of tuples with a fixed product `n`. ESTIMATED CHANGES Modified Mathlib/NumberTheory/Divisors.lean + theorem Nat.divisors_filter_dvd_of_dvd + theorem Nat.prime_divisors_filter_dvd_of_dvd 2023-09-12 22:27:39 ac0ad1e chore: tidy various files (#7081) ESTIMATED CHANGES Modified Mathlib/Algebra/BigOperators/Finprod.lean - theorem MonoidHom.map_finprod_pLift + theorem MonoidHom.map_finprod_plift - theorem finprod_eq_prod_pLift_of_mulSupport_subset - theorem finprod_eq_prod_pLift_of_mulSupport_toFinset_subset + theorem finprod_eq_prod_plift_of_mulSupport_subset + theorem finprod_eq_prod_plift_of_mulSupport_toFinset_subset +/- theorem finprod_eq_single Modified Mathlib/Analysis/Convex/Combination.lean Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Basic.lean Modified Mathlib/Geometry/Manifold/BumpFunction.lean Modified Mathlib/Order/Filter/Bases.lean + theorem Filter.HasBasis.to_hasBasis' - theorem Filter.HasBasis.to_has_basis' Modified Mathlib/Topology/MetricSpace/HausdorffDistance.lean 2023-09-12 22:27:38 789bd51 feat(Util/Imports): add `#find_home!` to exclude current module (#7075) Add the `!` flag to `#find_home` that excludes the current module as potential home. This change is analogous to #7025. This behaviour can be desirable when the lemma depends on *explicit* lemmas in the current file that you also want to move. There is also the possibility that the proof of the lemma you want to move uses an *auto-generated* lemma and that auto-generated lemma would be auto-generated also in the earlier file. Here is an example: ```lean -- this takes place in a new file `Mathlib/Algebra/NewFile.lean` import Mathlib.Util.Imports import Mathlib.Algebra.Group.Prod lemma withSimp {A} [Zero A] (a : A) (h : a = 0) : (a, 0) = 0 := by simp only [h, Prod.mk_eq_zero] lemma withRw {A} [Zero A] (a : A) (h : a = 0) : (a, 0) = 0 := by rw [h, Prod.mk_eq_zero, eq_self, eq_self, true_and] trivial #print withSimp -- blah blah `Mathlib.Algebra.NewFile._auxLemma.1` #print withRw -- only "visible" lemmas #find_home withSimp -- `Mathlib.Algebra.NewFile` #find_home! withSimp -- `Mathlib.Algebra.Group.Prod` #find_home withRw -- `Mathlib.Algebra.Group.Prod` ``` ESTIMATED CHANGES Modified Mathlib/Util/Imports.lean +/- def Lean.Name.findHome 2023-09-12 22:27:36 aa8559b feat: gcd and coprime sub (#7051) ESTIMATED CHANGES Modified Mathlib/Data/Nat/GCD/Basic.lean + theorem Nat.coprime_self_sub_left + theorem Nat.coprime_self_sub_right + theorem Nat.coprime_sub_self_left + theorem Nat.coprime_sub_self_right + theorem Nat.gcd_self_sub_left + theorem Nat.gcd_self_sub_right + theorem Nat.gcd_sub_self_left + theorem Nat.gcd_sub_self_right 2023-09-12 22:27:35 56e5b36 feat: maps induced on the homology of short complexes (#7042) ESTIMATED CHANGES Modified Mathlib/Algebra/Homology/ShortComplex/Homology.lean + theorem CategoryTheory.ShortComplex.HomologyMapData.cyclesMap'_eq + theorem CategoryTheory.ShortComplex.HomologyMapData.homologyMap'_eq + theorem CategoryTheory.ShortComplex.HomologyMapData.opcyclesMap'_eq + theorem CategoryTheory.ShortComplex.LeftHomologyData.homologyIso_leftHomologyData + theorem CategoryTheory.ShortComplex.LeftHomologyMapData.homologyMap_comm + theorem CategoryTheory.ShortComplex.LeftHomologyMapData.homologyMap_eq + theorem CategoryTheory.ShortComplex.RightHomologyData.homologyIso_rightHomologyData + theorem CategoryTheory.ShortComplex.RightHomologyMapData.homologyMap_comm + theorem CategoryTheory.ShortComplex.RightHomologyMapData.homologyMap_eq + def CategoryTheory.ShortComplex.homologyMap' + theorem CategoryTheory.ShortComplex.homologyMap'_comp + theorem CategoryTheory.ShortComplex.homologyMap'_id + theorem CategoryTheory.ShortComplex.homologyMap'_zero + def CategoryTheory.ShortComplex.homologyMapIso' + theorem CategoryTheory.ShortComplex.homologyMap_comp + theorem CategoryTheory.ShortComplex.homologyMap_id + theorem CategoryTheory.ShortComplex.homologyMap_zero + def CategoryTheory.ShortComplex.leftRightHomologyComparison' + theorem CategoryTheory.ShortComplex.leftRightHomologyComparison'_eq_descH + theorem CategoryTheory.ShortComplex.leftRightHomologyComparison'_eq_liftH + theorem CategoryTheory.ShortComplex.π_leftRightHomologyComparison'_ι 2023-09-12 22:27:34 26c3350 feat: allow users to expand `field_simp` into a `simp` call (#6776) This should allow users to debug what `field_simp` is doing more easily. And a little bit of miscellaneous cleanup of the field_simp doc. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Tactic/FieldSimp.lean Added Mathlib/Util/DischargerAsTactic.lean + def wrapSimpDischarger Modified test/FieldSimp.lean 2023-09-12 21:07:30 69a3de3 style: a linter for colons (#6761) A linter that throws on seeing a colon at the start of a line, according to the [style guideline](https://leanprover-community.github.io/contribute/style.html#structuring-definitions-and-theorems) that says these operators should go before linebreaks. ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/RestrictScalars.lean Modified Mathlib/Algebra/ContinuedFractions/Computation/TerminatesIffRat.lean Modified Mathlib/Algebra/GCDMonoid/Finset.lean +/- theorem Finset.gcd_congr Modified Mathlib/Algebra/Order/Interval.lean Modified Mathlib/Algebra/Order/Ring/Lemmas.lean +/- theorem le_mul_of_one_le_of_le_of_nonneg +/- theorem mul_le_of_le_one_of_le_of_nonneg Modified Mathlib/CategoryTheory/Limits/Constructions/Equalizers.lean Modified Mathlib/CategoryTheory/Limits/Preserves/Basic.lean Modified Mathlib/CategoryTheory/Limits/Presheaf.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Equalizers.lean Modified Mathlib/CategoryTheory/Limits/Shapes/FiniteLimits.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Pullbacks.lean +/- theorem CategoryTheory.Limits.pullbackConeOfRightIso_π_app_right Modified Mathlib/CategoryTheory/Limits/Types.lean Modified Mathlib/CategoryTheory/Monad/Monadicity.lean Modified Mathlib/CategoryTheory/Monoidal/Category.lean +/- theorem CategoryTheory.MonoidalCategory.leftUnitor_conjugation Modified Mathlib/CategoryTheory/Pi/Basic.lean +/- theorem CategoryTheory.Functor.pi_ext Modified Mathlib/CategoryTheory/Sigma/Basic.lean +/- theorem CategoryTheory.Sigma.SigmaHom.assoc Modified Mathlib/CategoryTheory/Simple.lean Modified Mathlib/CategoryTheory/Yoneda.lean Modified Mathlib/Combinatorics/SetFamily/HarrisKleitman.lean Modified Mathlib/Computability/TMToPartrec.lean Modified Mathlib/Data/Finmap.lean +/- theorem Finmap.insert_toFinmap +/- theorem Finmap.union_toFinmap Modified Mathlib/Data/List/Defs.lean Modified Mathlib/Data/List/Nodup.lean +/- theorem List.Nodup.pairwise_coe Modified Mathlib/Data/PFunctor/Multivariate/M.lean Modified Mathlib/Data/TypeVec.lean Modified Mathlib/Geometry/Euclidean/MongePoint.lean Modified Mathlib/GroupTheory/Nilpotent.lean Modified Mathlib/GroupTheory/Perm/Basic.lean Modified Mathlib/GroupTheory/SpecificGroups/Alternating.lean Modified Mathlib/Init/Quot.lean Modified Mathlib/MeasureTheory/Measure/Haar/OfBasis.lean Modified Mathlib/Order/Monotone/Basic.lean +/- theorem StrictMonoOn.le_iff_le Modified Mathlib/RingTheory/Localization/LocalizationLocalization.lean Modified Mathlib/RingTheory/Valuation/Basic.lean +/- theorem Valuation.toMonoidWithZeroHom_coe_eq_coe Modified Mathlib/SetTheory/Ordinal/NaturalOps.lean +/- theorem NatOrdinal.toOrdinal_toNatOrdinal Modified Mathlib/Tactic/Recall.lean Modified Mathlib/Tactic/ToAdditive.lean Modified Mathlib/Tactic/Widget/CommDiag.lean +/- def Lean.Expr.app7? Modified Mathlib/Topology/Category/Stonean/EffectiveEpi.lean Modified scripts/lint-style.py 2023-09-12 17:41:30 198327e chore(Order/RelIso): golf, fix NS (#7114) * Rename `Surjective.wellFounded_iff` to `Function.Surjective.wellFounded_iff`. * Golf the proof. ESTIMATED CHANGES Modified Mathlib/Order/RelIso/Basic.lean + theorem Function.Surjective.wellFounded_iff - theorem Surjective.wellFounded_iff Modified Mathlib/RingTheory/UniqueFactorizationDomain.lean +/- theorem WfDvdMonoid.of_wfDvdMonoid_associates Modified Mathlib/Topology/NoetherianSpace.lean 2023-09-12 17:41:29 bf815bd refactor: split `NormalSpace` into `NormalSpace` and `T4Space` (#7072) * Rename `NormalSpace` to `T4Space`. * Add `NormalSpace`, a version without the `T1Space` assumption. * Adjust some theorems. * Supersedes thus closes #6892. * Add some instance cycles, see #2030 ESTIMATED CHANGES Modified Mathlib/Analysis/Complex/UpperHalfPlane/Topology.lean Modified Mathlib/Geometry/Manifold/Metrizable.lean Modified Mathlib/Geometry/Manifold/PartitionOfUnity.lean Modified Mathlib/MeasureTheory/Function/ContinuousMapDense.lean Modified Mathlib/Topology/Category/CompHaus/Basic.lean Modified Mathlib/Topology/Compactification/OnePoint.lean Modified Mathlib/Topology/ContinuousFunction/Ideals.lean Modified Mathlib/Topology/EMetricSpace/Paracompact.lean + theorem EMetric.t4Space Modified Mathlib/Topology/Homeomorph.lean Modified Mathlib/Topology/Instances/AddCircle.lean Modified Mathlib/Topology/Instances/ENNReal.lean Modified Mathlib/Topology/MetricSpace/Metrizable.lean Modified Mathlib/Topology/Paracompact.lean - theorem normal_of_paracompact_t2 Modified Mathlib/Topology/Separation.lean + theorem disjoint_nhdsSet_nhdsSet - theorem normalOfCompactT2 - theorem normalSpaceOfT3SecondCountable Modified Mathlib/Topology/StoneCech.lean Modified Mathlib/Topology/SubsetProperties.lean +/- theorem disjoint_nhds_cocompact Modified Mathlib/Topology/UniformSpace/Compact.lean 2023-09-12 17:16:49 8c31491 feat: The category Fact(f) (#6966) This prepares to have Factorisation systems in Lean as well as to serve as a generalisation of things like `MonoFactorisation`. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Category/Factorisation.lean + def CategoryTheory.Factorisation.forget + structure CategoryTheory.Factorisation 2023-09-12 15:48:36 8435e0d docs: make `sub_neg` refer to `sub_neg_eq_add` (#7104) I'm not a fan of this naming :/ ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Group/Defs.lean 2023-09-12 12:40:24 02719d5 chore(Util/Imports): accumulate imports in find_home to log once (#7066) Currently, `#find_home` prints each possible import separately. This PR makes it print them all as a single list. It also makes sure that the results are displayed at `#find_home` alone, rather than the whole `#find_home new_lemma` call. ESTIMATED CHANGES Modified Mathlib/Util/Imports.lean 2023-09-12 12:40:23 2bffb70 chore: replace anonymous morphism constructors with named fields (#7015) This makes it easier to refactor the order or inheritance structure of morphisms without having to change all of the anonymous constructors. This is far from exhaustive. ESTIMATED CHANGES Modified Mathlib/Algebra/Category/GroupCat/Basic.lean Modified Mathlib/Algebra/Category/MonCat/Limits.lean Modified Mathlib/Algebra/Category/Ring/Limits.lean Modified Mathlib/Algebra/Free.lean +/- def Magma.AssocQuotient.of Modified Mathlib/Algebra/Hom/Units.lean +/- def Units.coeHom Modified Mathlib/Algebra/Lie/Basic.lean Modified Mathlib/Algebra/Order/AbsoluteValue.lean +/- def IsAbsoluteValue.abvHom' Modified Mathlib/Algebra/Order/Interval.lean Modified Mathlib/Algebra/Ring/Basic.lean +/- def AddHom.mulLeft +/- def AddHom.mulRight Modified Mathlib/Data/Finset/Pointwise.lean +/- def Finset.singletonMulHom +/- def Finset.singletonOneHom Modified Mathlib/Data/Set/Pointwise/Basic.lean Modified Mathlib/GroupTheory/GroupAction/Quotient.lean +/- def MulActionHom.toQuotient Modified Mathlib/GroupTheory/GroupAction/SubMulAction.lean Modified Mathlib/GroupTheory/Perm/Basic.lean Modified Mathlib/GroupTheory/Subgroup/Basic.lean Modified Mathlib/GroupTheory/Submonoid/Operations.lean +/- def Submonoid.subtype +/- def SubmonoidClass.subtype Modified Mathlib/GroupTheory/Subsemigroup/Operations.lean +/- def MulMemClass.subtype Modified Mathlib/Order/Filter/Germ.lean +/- def Filter.Germ.coeMulHom Modified Mathlib/Order/Filter/Pointwise.lean +/- def Filter.pureMulHom +/- def Filter.pureOneHom Modified Mathlib/SetTheory/Cardinal/Basic.lean +/- def Cardinal.toNat Modified Mathlib/Topology/Algebra/Monoid.lean 2023-09-12 12:40:21 ae1eb5e chore: rename `pochhammer` (#6917) We rename `pochhammer` to `ascPochhammer` to prepare adding `descPochhammer`. ESTIMATED CHANGES Modified Mathlib/Data/Nat/Choose/Cast.lean + theorem Nat.cast_choose_eq_ascPochhammer_div - theorem Nat.cast_choose_eq_pochhammer_div Modified Mathlib/Data/Nat/Factorial/Basic.lean Modified Mathlib/Data/Nat/Factorial/Cast.lean +/- theorem Nat.cast_ascFactorial +/- theorem Nat.cast_descFactorial +/- theorem Nat.cast_factorial Modified Mathlib/RingTheory/Polynomial/Bernstein.lean Modified Mathlib/RingTheory/Polynomial/Pochhammer.lean + theorem ascPochhammer_eval_cast + theorem ascPochhammer_eval_one + theorem ascPochhammer_eval_succ + theorem ascPochhammer_eval_zero + theorem ascPochhammer_map + theorem ascPochhammer_mul + theorem ascPochhammer_nat_eq_ascFactorial + theorem ascPochhammer_nat_eq_descFactorial + theorem ascPochhammer_nat_eval_succ + theorem ascPochhammer_ne_zero_eval_zero + theorem ascPochhammer_one + theorem ascPochhammer_pos + theorem ascPochhammer_succ_comp_X_add_one + theorem ascPochhammer_succ_eval + theorem ascPochhammer_succ_left + theorem ascPochhammer_succ_right + theorem ascPochhammer_zero + theorem ascPochhammer_zero_eval_zero + theorem factorial_mul_ascPochhammer - theorem factorial_mul_pochhammer - theorem pochhammer_eval_cast - theorem pochhammer_eval_one - theorem pochhammer_eval_succ - theorem pochhammer_eval_zero - theorem pochhammer_map - theorem pochhammer_mul - theorem pochhammer_nat_eq_ascFactorial - theorem pochhammer_nat_eq_descFactorial - theorem pochhammer_nat_eval_succ - theorem pochhammer_ne_zero_eval_zero - theorem pochhammer_one - theorem pochhammer_pos - theorem pochhammer_succ_comp_X_add_one - theorem pochhammer_succ_eval - theorem pochhammer_succ_left - theorem pochhammer_succ_right - theorem pochhammer_zero - theorem pochhammer_zero_eval_zero 2023-09-12 12:40:20 329ef78 chore(test/Change): use `guard_msgs` in Change (#6843) This PR simply adds `#guard_msgs` checks to the tests in `Change`. ESTIMATED CHANGES Modified test/Change.lean 2023-09-12 12:40:19 21f843c chore (RingTheory.Congruence): make RingCon extend AddCon and Con (#6772) Currently `RingCon` extends `Add` and `Mul`. This changes it to extend `AddCon` and `Con` directly. ESTIMATED CHANGES Modified Mathlib/RingTheory/Congruence.lean +/- theorem RingCon.rel_mk - def RingCon.toAddCon - def RingCon.toCon + theorem RingCon.toCon_coe_eq_coe +/- structure RingCon +/- def ringConGen 2023-09-12 12:40:17 5128540 chore(LinearAlgebra/DFinsupp): remove dependency on `Basis` (#6706) The motivation here is to explore re-defining `Basis` with `DFinsupp` instead of `Finsupp`, in order to make it computable. ESTIMATED CHANGES Modified Mathlib/Algebra/DirectSum/Module.lean Modified Mathlib/LinearAlgebra/DFinsupp.lean Modified Mathlib/LinearAlgebra/FinsuppVectorSpace.lean 2023-09-12 12:40:16 a9f079b feat: auto-suggest style fixes in CI (#6569) This PR tries to help with the issue of contributors pushing a branch, closing their computer, and then later getting notified about a trivial style issue like, leaving a trailing space or a `set_option pp.proofs true` on somewhere. With this change, the style linter output is added as github suggestions to your PR, which can be easily applied from the web interface without having to check out the branch again. These checks run in a separate workflow to the original linters as the suggestions can only be added to PRs, not to branches, so this workflow will not run on branches not yet PRed. This is a slight duplication of work when a branch is part of a PR, but the time is so minimal compared to actually building / tactic linting that we dont think this will have a noticable effect on CI resources. The check all files imported suggesters are less likely to trigger if the user simply forgot the file. This is due to a technical limitation of github suggestions; suggestions can only be added to lines modified in the diff. It will at least fix help things if the user alphabetises wrongly (this has actually happened to me before...) We _could_ have the linters automatically push fixes, but that is more invasive and potentially annoying so we hold off that for now until there is appetite for it. We also moved the slightly expensive install bibtool step later as that step takes some time compared to the others and its nice to get more instant feedback from the earlier steps if they are going to fail anyway. ESTIMATED CHANGES Modified .github/workflows/bors.yml Modified .github/workflows/build.yml Modified .github/workflows/build.yml.in Modified .github/workflows/build_fork.yml Added .github/workflows/lint_and_suggest_pr.yml 2023-09-12 12:40:14 ca73a84 feat: statement of Fermat's Last Theorem (#6508) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Data/Rat/Defs.lean + theorem Rat.num_ne_zero Added Mathlib/NumberTheory/FLT/Basic.lean + def FermatLastTheorem + theorem FermatLastTheoremWith.mono + def FermatLastTheoremWith + theorem fermatLastTheoremWith_nat_int_rat_tfae Renamed Mathlib/NumberTheory/Fermat4.lean to Mathlib/NumberTheory/FLT/Four.lean + theorem fermatLastTheoremFour - theorem not_fermat_4 2023-09-12 22:20:57+10:00 9479520 Revert "chore: add CI step to check lake-manifest.json is up to date (#7071)" This reverts commit 9c2f17f68a9bd84e93f2a7a0fc8b8921c88c033e. ESTIMATED CHANGES Modified .github/workflows/bors.yml Modified .github/workflows/build.yml Modified .github/workflows/build.yml.in Modified .github/workflows/build_fork.yml Deleted scripts/check-manifest.sh 2023-09-12 09:41:42 4ce559e chore(test/*): quiet unusedVariables (#6872) ~~Quiets the `unused_variables` linter in the appropriate tests.~~ (Introduces and) prefixes unused variables with `_` in test files. Affected files: ``` test/congrm.lean test/interval_cases.lean test/LibrarySearch/IsCompact.lean test/Set.lean test/slim_check.lean ``` [Zulip discussion](https://leanprover.zulipchat.com/#narrow/stream/113488-general/topic/noisy.20tests) ESTIMATED CHANGES Modified test/LibrarySearch/IsCompact.lean Modified test/Set.lean Modified test/congrm.lean Modified test/interval_cases.lean Modified test/slim_check.lean 2023-09-12 09:41:41 da2f8a8 feat: maps from the unitization of non-unital subobjects of unital algebras (#6372) If S is non-unital subalgebra of a unital R-algebra A, there is a natural map `Unitization R S →ₐ[R] A` whose range is `Algebra.adjoin R (S : Set A)`. When `1 ∉ S` and `R` is a field, this map is injective, and so we can restrict the codomain to `Algebra.adjoin R (S : Set A)` and turn it into an `AlgEquiv`. We specialize this to the `ℕ`-unitization of a non-unital subsemiring and its `Subsemiring.closure`, as well as the `ℤ`-unitization of a non-unital subring and its `Subring.closure`. We also extend the above map to a `StarAlgHom` in the case of `NonUnitalStarSubalgebras`. This continues the non-unital-ization of mathlib. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Algebra/Subalgebra/Unitization.lean + theorem AlgHomClass.unitization_injective' + theorem AlgHomClass.unitization_injective + def NonUnitalStarSubalgebra.toStarSubalgebra + theorem NonUnitalStarSubalgebra.toStarSubalgebra_toNonUnitalStarSubalgebra + def NonUnitalStarSubalgebra.unitization + theorem NonUnitalStarSubalgebra.unitization_apply + theorem NonUnitalStarSubalgebra.unitization_injective + theorem NonUnitalStarSubalgebra.unitization_range + def NonUnitalSubalgebra.toSubalgebra + theorem NonUnitalSubalgebra.toSubalgebra_toNonUnitalSubalgebra + def NonUnitalSubalgebra.unitization + theorem NonUnitalSubalgebra.unitization_apply + theorem NonUnitalSubalgebra.unitization_injective + theorem NonUnitalSubalgebra.unitization_range + def NonUnitalSubring.toSubring + theorem NonUnitalSubring.toSubring_toNonUnitalSubring + def NonUnitalSubring.unitization + theorem NonUnitalSubring.unitization_apply + theorem NonUnitalSubring.unitization_range + def NonUnitalSubsemiring.toSubsemiring + theorem NonUnitalSubsemiring.toSubsemiring_toNonUnitalSubsemiring + def NonUnitalSubsemiring.unitization + theorem NonUnitalSubsemiring.unitization_apply + theorem NonUnitalSubsemiring.unitization_range + theorem StarSubalgebra.one_mem_toNonUnitalStarSubalgebra + def StarSubalgebra.toNonUnitalStarSubalgebra + theorem StarSubalgebra.toNonUnitalStarSubalgebra_toStarSubalgebra + theorem Subalgebra.one_mem_toNonUnitalSubalgebra + def Subalgebra.toNonUnitalSubalgebra + theorem Subalgebra.toNonUnitalSubalgebra_toSubalgebra + theorem Subring.one_mem_toNonUnitalSubring + def Subring.toNonUnitalSubring + theorem Subring.toNonUnitalSubring_toSubring + theorem Subsemiring.one_mem_toNonUnitalSubsemiring + def Subsemiring.toNonUnitalSubsemiring + theorem Subsemiring.toNonUnitalSubsemiring_toSubsemiring + theorem Unitization.lift_range + theorem Unitization.lift_range_le + theorem Unitization.starLift_range + theorem Unitization.starLift_range_le Modified Mathlib/Algebra/Star/Subalgebra.lean Modified Mathlib/GroupTheory/GroupAction/SubMulAction.lean + theorem AddSubgroupClass.zsmulMemClass + theorem AddSubmonoidClass.nsmulMemClass Modified Mathlib/RingTheory/Adjoin/Basic.lean +/- theorem Algebra.adjoin_int + theorem Algebra.adjoin_nat + def Subring.closureEquivAdjoinInt + def Subsemiring.closureEquivAdjoinNat Modified Mathlib/RingTheory/Subring/Basic.lean + theorem Subring.closure_induction' Modified Mathlib/RingTheory/Subsemiring/Basic.lean + theorem Subsemiring.closure_induction' 2023-09-12 08:19:57 9c2f17f chore: add CI step to check lake-manifest.json is up to date (#7071) Looks like it works: https://github.com/leanprover-community/mathlib4/actions/runs/6134766950/job/16647879105 ESTIMATED CHANGES Modified .github/workflows/bors.yml Modified .github/workflows/build.yml Modified .github/workflows/build.yml.in Modified .github/workflows/build_fork.yml Added scripts/check-manifest.sh 2023-09-12 07:58:23 26bdb03 feat: add some lemmas for Haar measures (#7034) We prove some lemmas that will be useful in following PRs #6832 and #7037, mainly: ```lean theorem Basis.addHaar_eq {b : Basis ι ℝ E} {b' : Basis ι' ℝ E} : b.addHaar = b'.addHaar ↔ b.addHaar b'.parallelepiped = 1 theorem Basis.parallelepiped_eq_map (b : Basis ι ℝ E) : b.parallelepiped = (TopologicalSpace.PositiveCompacts.piIcc01 ι).map b.equivFun.symm b.equivFunL.symm.continuous theorem Basis.addHaar_map (b : Basis ι ℝ E) (f : E ≃L[ℝ] F) : map f b.addHaar = (b.map f.toLinearEquiv).addHaar ``` ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/Basis.lean + theorem Basis.coe_map Modified Mathlib/MeasureTheory/Measure/Haar/Basic.lean + theorem MeasureTheory.Measure.haarMeasure_eq_iff Modified Mathlib/MeasureTheory/Measure/Haar/OfBasis.lean + theorem Basis.addHaar_eq_iff + theorem Basis.addHaar_reindex Modified Mathlib/MeasureTheory/Measure/Lebesgue/EqHaar.lean + theorem Basis.map_addHaar + theorem Basis.parallelepiped_eq_map Modified Mathlib/Topology/Algebra/Module/Basic.lean + theorem ContinuousLinearEquiv.isOpenMap 2023-09-12 07:58:22 057cc17 feat: have cache use temporary files and renaming to avoid broken files (#7022) ESTIMATED CHANGES Modified Cache/Requests.lean 2023-09-12 05:47:52 d0e5669 chore: bump Std to #253 (#7113) Bump PR for https://github.com/leanprover/std4/pull/253 ESTIMATED CHANGES Modified Mathlib/Control/Basic.lean - def List.partitionM Modified lake-manifest.json 2023-09-12 05:28:32 6de5329 chore: further refactors of prerequisites of `norm_num` (#7097) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Order/Invertible.lean Modified Mathlib/Algebra/Order/Nonneg/Ring.lean Modified Mathlib/Data/Int/Basic.lean + theorem Int.cast_mul Modified Mathlib/Data/Int/Cast/Lemmas.lean - theorem Int.cast_mul Modified Mathlib/Data/Int/Dvd/Basic.lean Modified Mathlib/Data/Int/Lemmas.lean Modified Mathlib/Data/Nat/Cast/Basic.lean - theorem Nat.cast_add_one_pos - theorem Nat.cast_max - theorem Nat.cast_min - theorem Nat.cast_nonneg' - theorem Nat.cast_nonneg - theorem Nat.cast_pos' - theorem Nat.cast_pos - theorem Nat.cast_tsub - theorem Nat.mono_cast - theorem ofDual_natCast - theorem ofLex_natCast - theorem toDual_natCast - theorem toLex_natCast Modified Mathlib/Data/Nat/Cast/Order.lean + theorem Nat.cast_add_one_pos + theorem Nat.cast_max + theorem Nat.cast_min + theorem Nat.cast_nonneg' + theorem Nat.cast_nonneg + theorem Nat.cast_pos' + theorem Nat.cast_pos + theorem Nat.cast_tsub + theorem Nat.mono_cast Added Mathlib/Data/Nat/Cast/Synonym.lean + theorem ofDual_natCast + theorem ofLex_natCast + theorem toDual_natCast + theorem toLex_natCast Modified Mathlib/Data/Rat/Defs.lean Modified Mathlib/Data/Real/ENatENNReal.lean Modified Mathlib/Tactic/NormNum/Basic.lean - theorem Mathlib.Meta.NormNum.Rat.invOf_denom_swap - def Mathlib.Meta.NormNum.evalMkRat - theorem Mathlib.Meta.NormNum.isInt_le_false - theorem Mathlib.Meta.NormNum.isInt_le_true - theorem Mathlib.Meta.NormNum.isInt_lt_false - theorem Mathlib.Meta.NormNum.isInt_lt_true - theorem Mathlib.Meta.NormNum.isNat_eq_false - theorem Mathlib.Meta.NormNum.isNat_le_true - theorem Mathlib.Meta.NormNum.isNat_lt_false - theorem Mathlib.Meta.NormNum.isRat_mkRat Modified Mathlib/Tactic/NormNum/Eq.lean + theorem Mathlib.Meta.NormNum.Rat.invOf_denom_swap + theorem Mathlib.Meta.NormNum.isNat_eq_false Modified Mathlib/Tactic/NormNum/Ineq.lean + theorem Mathlib.Meta.NormNum.isInt_le_false + theorem Mathlib.Meta.NormNum.isInt_le_true + theorem Mathlib.Meta.NormNum.isInt_lt_false + theorem Mathlib.Meta.NormNum.isInt_lt_true + theorem Mathlib.Meta.NormNum.isNat_le_true + theorem Mathlib.Meta.NormNum.isNat_lt_false Modified Mathlib/Tactic/NormNum/Inv.lean + def Mathlib.Meta.NormNum.evalMkRat + theorem Mathlib.Meta.NormNum.isRat_mkRat 2023-09-12 04:12:31 260cb50 refactor: split Algebra.Hom.Group and Algebra.Hom.Ring (#7094) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/ContinuedFractions/Computation/Translations.lean Modified Mathlib/Algebra/Divisibility/Basic.lean Modified Mathlib/Algebra/Field/Basic.lean Modified Mathlib/Algebra/Free.lean Modified Mathlib/Algebra/Group/Conj.lean Modified Mathlib/Algebra/Group/Ext.lean Modified Mathlib/Algebra/Group/Pi.lean Modified Mathlib/Algebra/Group/TypeTags.lean Modified Mathlib/Algebra/GroupPower/Ring.lean Modified Mathlib/Algebra/GroupWithZero/Units/Lemmas.lean Modified Mathlib/Algebra/Hom/Commute.lean Modified Mathlib/Algebra/Hom/Equiv/Basic.lean Added Mathlib/Algebra/Hom/Group/Basic.lean + theorem MonoidHom.coe_of_map_div + theorem MonoidHom.coe_of_map_mul_inv + theorem MonoidHom.comp_inv + theorem MonoidHom.comp_mul + theorem MonoidHom.div_apply + theorem MonoidHom.inv_apply + theorem MonoidHom.inv_comp + theorem MonoidHom.mul_apply + theorem MonoidHom.mul_comp + def MonoidHom.ofMapDiv + def MonoidHom.ofMapMulInv + theorem MulHom.comp_mul + theorem MulHom.mul_apply + theorem MulHom.mul_comp + theorem NeZero.of_injective + theorem NeZero.of_map + theorem coe_invMonoidHom + theorem injective_iff_map_eq_one' + theorem injective_iff_map_eq_one + def invMonoidHom + theorem invMonoidHom_apply Renamed Mathlib/Algebra/Hom/Group.lean to Mathlib/Algebra/Hom/Group/Defs.lean - theorem MonoidHom.coe_of_map_div - theorem MonoidHom.coe_of_map_mul_inv - theorem MonoidHom.comp_inv - theorem MonoidHom.comp_mul - theorem MonoidHom.div_apply - theorem MonoidHom.inv_apply - theorem MonoidHom.inv_comp - theorem MonoidHom.mul_apply - theorem MonoidHom.mul_comp - def MonoidHom.ofMapDiv - def MonoidHom.ofMapMulInv - theorem MulHom.comp_mul - theorem MulHom.mul_apply - theorem MulHom.mul_comp - theorem NeZero.of_injective - theorem NeZero.of_map - theorem coe_invMonoidHom - theorem injective_iff_map_eq_one' - theorem injective_iff_map_eq_one - def invMonoidHom - theorem invMonoidHom_apply Modified Mathlib/Algebra/Hom/GroupInstances.lean Added Mathlib/Algebra/Hom/Ring/Basic.lean + theorem RingHom.codomain_trivial_iff_range_eq_singleton_zero + theorem RingHom.isUnit_map Renamed Mathlib/Algebra/Hom/Ring.lean to Mathlib/Algebra/Hom/Ring/Defs.lean - theorem RingHom.codomain_trivial_iff_range_eq_singleton_zero - theorem RingHom.isUnit_map Modified Mathlib/Algebra/Hom/Units.lean Modified Mathlib/Algebra/Order/Hom/Monoid.lean Modified Mathlib/Algebra/Order/Monoid/WithTop.lean Modified Mathlib/Algebra/Order/Ring/WithTop.lean Modified Mathlib/Algebra/Ring/Basic.lean Modified Mathlib/Algebra/Ring/Equiv.lean Modified Mathlib/Algebra/Ring/Opposite.lean Modified Mathlib/Algebra/Ring/Pi.lean Modified Mathlib/CategoryTheory/Groupoid/VertexGroup.lean Modified Mathlib/CategoryTheory/Monoidal/Discrete.lean Modified Mathlib/CategoryTheory/Preadditive/Basic.lean Modified Mathlib/Computability/Language.lean Modified Mathlib/Data/Finset/Card.lean Modified Mathlib/Data/Int/Cast/Lemmas.lean Modified Mathlib/Data/List/BigOperators/Lemmas.lean Modified Mathlib/Data/Nat/Cast/Basic.lean Modified Mathlib/Deprecated/Group.lean Modified Mathlib/GroupTheory/GroupAction/Defs.lean Modified Mathlib/GroupTheory/Submonoid/Basic.lean Modified Mathlib/GroupTheory/Subsemigroup/Basic.lean Modified Mathlib/RingTheory/Congruence.lean Modified Mathlib/RingTheory/Coprime/Basic.lean Modified test/symm.lean 2023-09-11 21:06:15 0851f81 fix(Algebra/Module/LinearMap): weaken an over-eager coercion (#6786) We do not want `AlgHom` to cast to `LinearMap` via the rarely-used `DistribMulActionHom`. The only places this was used are: * ones that I wrote accidentally, which are replaced with `AlgHom.toLinearMap` (for which lemmas already exist) * a non-unital case, where I've inserted the transitive coercion manually (and a TODO); a syntactic change that does not change the underlying term We could consider adding a `LinearMapClass.toLinearMap` coercion in a future PR, but I would guess this is just unification hell compared to `AlgHom.toLinearMap`, so I don't want to volunteer to do it. ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/NonUnitalSubalgebra.lean Modified Mathlib/Algebra/Algebra/Opposite.lean Modified Mathlib/Algebra/Module/LinearMap.lean Modified Mathlib/LinearAlgebra/Dual.lean 2023-09-11 20:08:28 a4810ea feat (NormedSpace.Dual): make `Dual` reducible (#6998) Following `LinearAlgebra.Dual` this makes `NormedSpace.Dual` reducible. ESTIMATED CHANGES Modified Mathlib/Analysis/InnerProductSpace/Adjoint.lean - def ContinuousLinearMap.adjointAux Modified Mathlib/Analysis/InnerProductSpace/Dual.lean Modified Mathlib/Analysis/InnerProductSpace/LinearPMap.lean Modified Mathlib/Analysis/NormedSpace/Dual.lean - def NormedSpace.Dual Modified docs/undergrad.yaml 2023-09-11 18:53:15 eae0fe5 chore: lint-style.py was calling str.replace incorrectly (#7100) (it doesn't take keyword arguments unfortunately) ESTIMATED CHANGES Modified scripts/lint-style.py 2023-09-11 18:53:13 5cffe21 chore: split Algebra.Semiconj and Algebra.Commute (#7098) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Group/Commute/Basic.lean + theorem Commute.inv_inv_iff Renamed Mathlib/Algebra/Group/Commute.lean to Mathlib/Algebra/Group/Commute/Defs.lean - theorem Commute.inv_inv_iff - theorem Commute.inv_left - theorem Commute.inv_left_iff - theorem Commute.inv_mul_cancel_assoc - theorem Commute.inv_right - theorem Commute.inv_right_iff - theorem Commute.isUnit_mul_iff - theorem Commute.units_inv_left - theorem Commute.units_inv_left_iff - theorem Commute.units_inv_right - theorem Commute.units_inv_right_iff - theorem Commute.units_of_val - theorem Commute.units_val - theorem Commute.units_val_iff - def Units.leftOfMul - def Units.rightOfMul - theorem inv_mul_cancel_comm - theorem inv_mul_cancel_comm_assoc - theorem isUnit_mul_self_iff Added Mathlib/Algebra/Group/Commute/Units.lean + theorem Commute.inv_left + theorem Commute.inv_left_iff + theorem Commute.inv_mul_cancel_assoc + theorem Commute.inv_right + theorem Commute.inv_right_iff + theorem Commute.isUnit_mul_iff + theorem Commute.units_inv_left + theorem Commute.units_inv_left_iff + theorem Commute.units_inv_right + theorem Commute.units_inv_right_iff + theorem Commute.units_of_val + theorem Commute.units_val + theorem Commute.units_val_iff + def Units.leftOfMul + def Units.rightOfMul + theorem inv_mul_cancel_comm + theorem inv_mul_cancel_comm_assoc + theorem isUnit_mul_self_iff Modified Mathlib/Algebra/Group/Conj.lean Modified Mathlib/Algebra/Group/Opposite.lean Added Mathlib/Algebra/Group/Semiconj/Basic.lean + theorem SemiconjBy.inv_inv_symm + theorem SemiconjBy.inv_inv_symm_iff Renamed Mathlib/Algebra/Group/Semiconj.lean to Mathlib/Algebra/Group/Semiconj/Defs.lean - theorem SemiconjBy.inv_inv_symm - theorem SemiconjBy.inv_inv_symm_iff - theorem SemiconjBy.inv_right - theorem SemiconjBy.inv_right_iff - theorem SemiconjBy.inv_symm_left - theorem SemiconjBy.inv_symm_left_iff - theorem SemiconjBy.units_inv_right - theorem SemiconjBy.units_inv_right_iff - theorem SemiconjBy.units_inv_symm_left - theorem SemiconjBy.units_inv_symm_left_iff - theorem SemiconjBy.units_of_val - theorem SemiconjBy.units_val - theorem SemiconjBy.units_val_iff - theorem Units.mk_semiconjBy Added Mathlib/Algebra/Group/Semiconj/Units.lean + theorem SemiconjBy.inv_right + theorem SemiconjBy.inv_right_iff + theorem SemiconjBy.inv_symm_left + theorem SemiconjBy.inv_symm_left_iff + theorem SemiconjBy.units_inv_right + theorem SemiconjBy.units_inv_right_iff + theorem SemiconjBy.units_inv_symm_left + theorem SemiconjBy.units_inv_symm_left_iff + theorem SemiconjBy.units_of_val + theorem SemiconjBy.units_val + theorem SemiconjBy.units_val_iff + theorem Units.mk_semiconjBy Modified Mathlib/Algebra/GroupPower/Basic.lean Modified Mathlib/Algebra/GroupWithZero/Commute.lean Modified Mathlib/Algebra/GroupWithZero/Semiconj.lean Modified Mathlib/Algebra/Hom/Commute.lean Modified Mathlib/Algebra/Regular/Basic.lean Modified Mathlib/Algebra/Ring/Commute.lean Modified Mathlib/Algebra/Ring/Semiconj.lean Modified Mathlib/CategoryTheory/Endomorphism.lean Modified Mathlib/GroupTheory/GroupAction/Defs.lean Modified Mathlib/GroupTheory/GroupAction/Units.lean 2023-09-11 18:53:12 58e3baa doc(Topology/MetricSpace/Lipschitz): typo and punctuation; add a few docstrings (#7077) - Fix a typo, add four periods. - Add docstrings to a few results. ESTIMATED CHANGES Modified Mathlib/Topology/MetricSpace/Lipschitz.lean 2023-09-11 18:53:10 d6303b8 feat: characterizations of monotonicity in locally finite orders (#6709) - [x] depends on: #6711 - [x] depends on: #6712 ESTIMATED CHANGES Modified Mathlib/Data/Finset/Interval.lean + theorem Finset.antitone_iff' + theorem Finset.antitone_iff + theorem Finset.covby_cons + theorem Finset.covby_iff' + theorem Finset.covby_iff + theorem Finset.covby_insert + theorem Finset.monotone_iff' + theorem Finset.monotone_iff + theorem Finset.strictAnti_iff' + theorem Finset.strictAnti_iff + theorem Finset.strictMono_iff' + theorem Finset.strictMono_iff Modified Mathlib/Data/Finset/LocallyFinite.lean + theorem antitone_iff_forall_covby + theorem antitone_iff_forall_wcovby + theorem le_iff_reflTransGen_covby + theorem le_iff_transGen_wcovby + theorem lt_iff_transGen_covby + theorem monotone_iff_forall_covby + theorem monotone_iff_forall_wcovby + theorem strictAnti_iff_forall_covby + theorem strictMono_iff_forall_covby + theorem transGen_covby_of_lt + theorem transGen_wcovby_of_le 2023-09-11 18:53:09 ff26986 feat: make `Fintype (SimpleGraph V)` computable (#4112) Adds `DecidableEq V` to the `Fintype (SimpleGraph V)` instance's type signature, which can be easily satisfied in a noncomputable setting. ESTIMATED CHANGES Modified Mathlib/Combinatorics/SimpleGraph/Basic.lean + def SimpleGraph.mk' 2023-09-11 15:07:31 23cd2ea chore: reduce imports to Data/Nat/Cast/Basic and Data/Rat/Defs (#7093) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/GroupPower/Lemmas.lean Modified Mathlib/Data/Int/Cast/Lemmas.lean Modified Mathlib/Data/Nat/Cast/Basic.lean - theorem Commute.ofNat_left - theorem Commute.ofNat_right - theorem Nat.abs_cast - def Nat.castOrderEmbedding - theorem Nat.cast_comm - theorem Nat.cast_commute - theorem Nat.cast_le - theorem Nat.cast_le_one - theorem Nat.cast_lt - theorem Nat.cast_lt_one - theorem Nat.commute_cast - theorem Nat.one_le_cast - theorem Nat.one_lt_cast - theorem Nat.strictMono_cast - theorem NeZero.nat_of_injective Added Mathlib/Data/Nat/Cast/Commute.lean + theorem Commute.ofNat_left + theorem Commute.ofNat_right + theorem Nat.cast_comm + theorem Nat.cast_commute + theorem Nat.commute_cast Modified Mathlib/Data/Nat/Cast/Field.lean Added Mathlib/Data/Nat/Cast/Order.lean + theorem Nat.abs_cast + def Nat.castOrderEmbedding + theorem Nat.cast_le + theorem Nat.cast_le_one + theorem Nat.cast_lt + theorem Nat.cast_lt_one + theorem Nat.one_le_cast + theorem Nat.one_lt_cast + theorem Nat.strictMono_cast + theorem NeZero.nat_of_injective Modified Mathlib/Data/Nat/Choose/Central.lean Modified Mathlib/Data/Rat/Defs.lean Modified Mathlib/Data/Rat/Lemmas.lean 2023-09-11 13:37:53 5c5d0dc fix: add # to titles in Algebra.Homology.ShortComplex.* (#7062) ESTIMATED CHANGES Modified Mathlib/Algebra/Homology/ShortComplex/Homology.lean Modified Mathlib/Algebra/Homology/ShortComplex/LeftHomology.lean Modified Mathlib/Algebra/Homology/ShortComplex/RightHomology.lean 2023-09-11 13:37:51 f48d046 chore: further cleanup of `norm_num` (#7046) The main change here is to split `NormNum.Core` into `NormNum.Result` and `NormNum.Core`. Other than that split it is just moving small declarations to better homes. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Data/Option/Defs.lean + def Lean.LOption.toOption Modified Mathlib/Lean/Expr/Basic.lean + def Lean.Expr.int? + def Lean.Expr.intLit! + def Lean.Expr.isExplicitNumber + def Lean.Expr.nat? + def Lean.Expr.rat? Modified Mathlib/Lean/Meta/Simp.lean + def Lean.Meta.Simp.Result.ofTrue Modified Mathlib/Tactic.lean Modified Mathlib/Tactic/Abel.lean Modified Mathlib/Tactic/CancelDenoms/Core.lean Modified Mathlib/Tactic/NormNum/Basic.lean + def Mathlib.Meta.NormNum.inferDivisionRing Modified Mathlib/Tactic/NormNum/Core.lean - def Int.rawCast - def Lean.Expr.intLit! - def Lean.LOption.toOption - def Lean.Meta.Simp.Result.ofTrue - def Mathlib.Meta.NormNum.BoolResult - theorem Mathlib.Meta.NormNum.IsInt.neg_to_eq - theorem Mathlib.Meta.NormNum.IsInt.nonneg_to_eq - theorem Mathlib.Meta.NormNum.IsInt.of_raw - theorem Mathlib.Meta.NormNum.IsInt.to_isNat - theorem Mathlib.Meta.NormNum.IsInt.to_isRat - theorem Mathlib.Meta.NormNum.IsInt.to_raw_eq - structure Mathlib.Meta.NormNum.IsInt - theorem Mathlib.Meta.NormNum.IsNat.of_raw - theorem Mathlib.Meta.NormNum.IsNat.raw_refl - theorem Mathlib.Meta.NormNum.IsNat.to_eq - theorem Mathlib.Meta.NormNum.IsNat.to_isInt - theorem Mathlib.Meta.NormNum.IsNat.to_isRat - theorem Mathlib.Meta.NormNum.IsNat.to_raw_eq - structure Mathlib.Meta.NormNum.IsNat - theorem Mathlib.Meta.NormNum.IsRat.den_nz - theorem Mathlib.Meta.NormNum.IsRat.neg_to_eq - theorem Mathlib.Meta.NormNum.IsRat.nonneg_to_eq - theorem Mathlib.Meta.NormNum.IsRat.of_raw - theorem Mathlib.Meta.NormNum.IsRat.to_isInt - theorem Mathlib.Meta.NormNum.IsRat.to_isNat - theorem Mathlib.Meta.NormNum.IsRat.to_raw_eq - inductive Mathlib.Meta.NormNum.IsRat - inductive Mathlib.Meta.NormNum.Result' - def Mathlib.Meta.NormNum.Result.isFalse - def Mathlib.Meta.NormNum.Result.isInt - def Mathlib.Meta.NormNum.Result.isNat - def Mathlib.Meta.NormNum.Result.isNegNat - def Mathlib.Meta.NormNum.Result.isRat' - def Mathlib.Meta.NormNum.Result.isRat - def Mathlib.Meta.NormNum.Result.isTrue - def Mathlib.Meta.NormNum.Result.ofBoolResult - def Mathlib.Meta.NormNum.Result.ofRawInt - def Mathlib.Meta.NormNum.Result.ofRawNat - def Mathlib.Meta.NormNum.Result.ofRawRat - def Mathlib.Meta.NormNum.Result.toInt - def Mathlib.Meta.NormNum.Result.toRat' - def Mathlib.Meta.NormNum.Result.toRat - def Mathlib.Meta.NormNum.Result.toRatNZ - def Mathlib.Meta.NormNum.Result.toRawEq - def Mathlib.Meta.NormNum.Result.toRawIntEq - def Mathlib.Meta.NormNum.Result.toSimpResult - def Mathlib.Meta.NormNum.Result - def Mathlib.Meta.NormNum.deriveNat' - def Mathlib.Meta.NormNum.inferAddMonoidWithOne - def Mathlib.Meta.NormNum.inferDivisionRing - def Mathlib.Meta.NormNum.inferOfScientific - def Mathlib.Meta.NormNum.inferRatCast - def Mathlib.Meta.NormNum.inferRing - def Mathlib.Meta.NormNum.inferSemiring - def Mathlib.Meta.NormNum.instAddMonoidWithOne' - def Mathlib.Meta.NormNum.instAddMonoidWithOne - def Mathlib.Meta.NormNum.instAddMonoidWithOneNat - def Mathlib.Meta.NormNum.instRing - def Mathlib.Meta.NormNum.isIntLit - theorem Mathlib.Meta.NormNum.isNat.natElim - def Mathlib.Meta.NormNum.isNatLit - def Mathlib.Meta.NormNum.isNormalForm - def Mathlib.Meta.NormNum.isRatLit - def Mathlib.Meta.NormNum.mkOfNat - def Mathlib.Meta.NormNum.mkRawIntLit - def Mathlib.Meta.NormNum.mkRawRatLit - def Mathlib.Meta.NormNum.rawIntLitNatAbs - def Nat.rawCast - def Rat.rawCast Modified Mathlib/Tactic/NormNum/OfScientific.lean + def Mathlib.Meta.NormNum.inferOfScientific Added Mathlib/Tactic/NormNum/Result.lean + def Int.rawCast + def Mathlib.Meta.NormNum.BoolResult + theorem Mathlib.Meta.NormNum.IsInt.neg_to_eq + theorem Mathlib.Meta.NormNum.IsInt.nonneg_to_eq + theorem Mathlib.Meta.NormNum.IsInt.of_raw + theorem Mathlib.Meta.NormNum.IsInt.to_isNat + theorem Mathlib.Meta.NormNum.IsInt.to_isRat + theorem Mathlib.Meta.NormNum.IsInt.to_raw_eq + structure Mathlib.Meta.NormNum.IsInt + theorem Mathlib.Meta.NormNum.IsNat.of_raw + theorem Mathlib.Meta.NormNum.IsNat.raw_refl + theorem Mathlib.Meta.NormNum.IsNat.to_eq + theorem Mathlib.Meta.NormNum.IsNat.to_isInt + theorem Mathlib.Meta.NormNum.IsNat.to_isRat + theorem Mathlib.Meta.NormNum.IsNat.to_raw_eq + structure Mathlib.Meta.NormNum.IsNat + theorem Mathlib.Meta.NormNum.IsRat.den_nz + theorem Mathlib.Meta.NormNum.IsRat.neg_to_eq + theorem Mathlib.Meta.NormNum.IsRat.nonneg_to_eq + theorem Mathlib.Meta.NormNum.IsRat.of_raw + theorem Mathlib.Meta.NormNum.IsRat.to_isInt + theorem Mathlib.Meta.NormNum.IsRat.to_isNat + theorem Mathlib.Meta.NormNum.IsRat.to_raw_eq + inductive Mathlib.Meta.NormNum.IsRat + inductive Mathlib.Meta.NormNum.Result' + def Mathlib.Meta.NormNum.Result.isFalse + def Mathlib.Meta.NormNum.Result.isInt + def Mathlib.Meta.NormNum.Result.isNat + def Mathlib.Meta.NormNum.Result.isNegNat + def Mathlib.Meta.NormNum.Result.isRat' + def Mathlib.Meta.NormNum.Result.isRat + def Mathlib.Meta.NormNum.Result.isTrue + def Mathlib.Meta.NormNum.Result.ofBoolResult + def Mathlib.Meta.NormNum.Result.ofRawInt + def Mathlib.Meta.NormNum.Result.ofRawNat + def Mathlib.Meta.NormNum.Result.ofRawRat + def Mathlib.Meta.NormNum.Result.toInt + def Mathlib.Meta.NormNum.Result.toRat' + def Mathlib.Meta.NormNum.Result.toRat + def Mathlib.Meta.NormNum.Result.toRatNZ + def Mathlib.Meta.NormNum.Result.toRawEq + def Mathlib.Meta.NormNum.Result.toRawIntEq + def Mathlib.Meta.NormNum.Result.toSimpResult + def Mathlib.Meta.NormNum.Result + def Mathlib.Meta.NormNum.inferAddMonoidWithOne + def Mathlib.Meta.NormNum.inferRing + def Mathlib.Meta.NormNum.inferSemiring + def Mathlib.Meta.NormNum.instAddMonoidWithOne + def Mathlib.Meta.NormNum.instAddMonoidWithOneNat + theorem Mathlib.Meta.NormNum.isNat.natElim + def Mathlib.Meta.NormNum.mkOfNat + def Mathlib.Meta.NormNum.mkRawIntLit + def Mathlib.Meta.NormNum.mkRawRatLit + def Mathlib.Meta.NormNum.rawIntLitNatAbs + def Nat.rawCast + def Rat.rawCast 2023-09-11 11:57:13 ac0730e chore: fix #minimize_imports (#7025) ESTIMATED CHANGES Modified Mathlib/Util/Imports.lean 2023-09-11 07:50:29 a9f0f4a chore: module doc for #find_home, #minimize_imports, import early (#7095) ESTIMATED CHANGES Modified Mathlib/Init/Logic.lean Modified Mathlib/Util/Imports.lean 2023-09-11 04:42:32 9893bbd chore: reduce imports to Data.Rat.Cast.CharZero (#7091) Removing further unnecessary imports on the path to major tactics. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Field/Power.lean Added Mathlib/Algebra/GroupWithZero/Bitwise.lean + theorem zpow_bit1' + theorem zpow_bit1₀ Modified Mathlib/Algebra/GroupWithZero/Power.lean - theorem map_zpow₀ - theorem zpow_bit1' - theorem zpow_bit1₀ Modified Mathlib/Algebra/GroupWithZero/Units/Lemmas.lean + theorem map_zpow₀ Modified Mathlib/Algebra/Order/Field/Power.lean Modified Mathlib/Data/Complex/Basic.lean Modified Mathlib/Data/Rat/Cast/CharZero.lean Modified Mathlib/LinearAlgebra/Matrix/ZPow.lean Modified Mathlib/Tactic/NormNum/Ineq.lean 2023-09-11 03:33:24 271b84c chore: cleanup imports of Data/Rat/Cast/Defs (#7092) Removing further unnecessary imports on the path to major tactics. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Data/Rat/Cast/Defs.lean - theorem Rat.cast_inv_int - theorem Rat.cast_inv_nat Added Mathlib/Data/Rat/Cast/Lemmas.lean + theorem Rat.cast_inv_int + theorem Rat.cast_inv_nat Modified Mathlib/Tactic/NormNum/Inv.lean 2023-09-11 02:32:44 37e6e50 chore: linarith only needs ring1 (#7090) I appreciate that this is "going backwards" in the sense of requiring more explicit imports of tactics (and making it more likely that users writing new files will need to import tactics rather than finding them already available). However it's useful for me while I'm intensively working on refactoring and upstreaming tactics if I can minimise the dependencies between tactics. I'm very much aware that in the long run we don't want users to have to manage imports of tactics, and I am definitely going to tidy this all up again once I'm finished with this project! ESTIMATED CHANGES Modified Archive/Imo/Imo1988Q6.lean Modified Archive/Imo/Imo2019Q1.lean Modified Mathlib/Algebra/ContinuedFractions/Computation/CorrectnessTerminating.lean Modified Mathlib/AlgebraicTopology/DoldKan/Faces.lean Modified Mathlib/Computability/Ackermann.lean Modified Mathlib/Data/Nat/Choose/Central.lean Modified Mathlib/Data/Nat/Choose/Sum.lean Modified Mathlib/Data/Rat/Floor.lean Modified Mathlib/Tactic/Linarith/Datatypes.lean Modified test/linarith.lean 2023-09-10 18:23:14 83d7426 refactor(Data/Int/Bitwise): use `<<<` and `>>>` notation (#6789) The lemma names have changed to use `shiftLeft` and `shiftRight` to match the new `Nat` names. ESTIMATED CHANGES Modified Mathlib/Data/Int/Bitwise.lean + theorem Int.one_shiftLeft - theorem Int.one_shiftl + theorem Int.shiftLeft_add + theorem Int.shiftLeft_coe_nat + theorem Int.shiftLeft_eq_mul_pow + theorem Int.shiftLeft_neg + theorem Int.shiftLeft_negSucc + theorem Int.shiftLeft_sub + theorem Int.shiftRight_add + theorem Int.shiftRight_coe_nat + theorem Int.shiftRight_eq_div_pow + theorem Int.shiftRight_neg + theorem Int.shiftRight_negSucc - theorem Int.shiftl_add - theorem Int.shiftl_coe_nat - theorem Int.shiftl_eq_mul_pow - theorem Int.shiftl_neg - theorem Int.shiftl_negSucc - theorem Int.shiftl_sub - theorem Int.shiftr_add - theorem Int.shiftr_coe_nat - theorem Int.shiftr_eq_div_pow - theorem Int.shiftr_neg - theorem Int.shiftr_negSucc + theorem Int.zero_shiftLeft + theorem Int.zero_shiftRight - theorem Int.zero_shiftl - theorem Int.zero_shiftr Modified Mathlib/Init/Data/Int/Bitwise.lean - def Int.shiftl - def Int.shiftr 2023-09-10 16:11:10 47db6c4 chore: delete redundant commented-out positivity test (#7085) In #1391, this exact test was added farther up in the file (along with other integer division tests): https://github.com/leanprover-community/mathlib4/blob/a5c7037917334676f4a8af94f2c98f773adae880/test/positivity.lean#L128 ESTIMATED CHANGES Modified test/positivity.lean 2023-09-10 15:48:51 080932e chore: fix docstrings, names and aligns about paracompacity of emetric spaces (#7064) ESTIMATED CHANGES Modified Mathlib/Topology/EMetricSpace/Paracompact.lean Modified Mathlib/Topology/Paracompact.lean 2023-09-10 13:28:21 a5c7037 feat(Data/Finsupp): add notation (#6367) This PR provides `fun₀ | 3 => a | 7 => b` notation for `Finsupp`, which desugars to `Finsupp.update` and `Finsupp.single`, in the same way that `{a, b}` desugars to `insert` and `singleton`. It also provides a matching delaborator: as an example of the effect of this, `Finsupp.single_add` now shows as: ```lean Finsupp.single_add.{u_2, u_1} {α : Type u_1} {M : Type u_2} [inst✝ : AddZeroClass M] (a : α) (b₁ b₂ : M) : (fun₀ | a => b₁ + b₂) = (fun₀ | a => b₁) + fun₀ | a => b₂ ``` Finally, it provides a `Repr` instance; though this is somewhat misleading as the syntax that is produced by `Repr` isn't actually computable so can't round-trip! [Discussed on Zulip here](https://leanprover.zulipchat.com/#narrow/stream/113488-general/topic/Notation.20for.20.60Finsupp.60/near/381919585). ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Data/Finsupp/Basic.lean Added Mathlib/Data/Finsupp/Notation.lean + def Finsupp.fun₀.matchAlts + def Finsupp.fun₀ + def Finsupp.singleUnexpander + def Finsupp.updateUnexpander Added test/finsupp_notation.lean 2023-09-10 13:09:13 2677935 refactor: re-home some meta code (#6921) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Lean/Expr/Basic.lean + def Lean.Expr.letDepth + def Lean.Expr.sides? Modified Mathlib/Lean/Meta.lean + def Lean.MVarId.iffOfEq + def Lean.MVarId.proofIrrelHeq + def Lean.MVarId.propext + def Lean.MVarId.subsingletonElim Added Mathlib/Lean/Meta/CongrTheorems.lean + def Lean.Meta.mkHCongrWithArity' Modified Mathlib/Tactic/Congr!.lean - def Lean.MVarId.iffOfEq - def Lean.MVarId.liftReflToEq - def Lean.MVarId.proofIrrelHeq - def Lean.MVarId.propext - theorem Lean.MVarId.rel_of_eq_and_refl - def Lean.MVarId.subsingletonElim Modified Mathlib/Tactic/ExtractLets.lean - def Lean.Expr.letDepth Modified Mathlib/Tactic/Relation/Rfl.lean + def Lean.MVarId.liftReflToEq Modified Mathlib/Tactic/TermCongr.lean - def Mathlib.Tactic.TermCongr.mkHCongrWithArity' - def Mathlib.Tactic.TermCongr.sides? 2023-09-10 08:25:13 7d30868 fix: don't use `False` as a bool, use `false` (#7059) ESTIMATED CHANGES Modified Mathlib/Topology/Algebra/InfiniteSum/Basic.lean +/- theorem tsum_bool Modified Mathlib/Topology/Sheaves/SheafCondition/UniqueGluing.lean 2023-09-10 04:46:52 f91160c chore: fix reference to `compactCovering` in docstring (#7065) ESTIMATED CHANGES Modified Mathlib/Topology/SubsetProperties.lean 2023-09-10 03:26:27 f39f702 fix: fix link in docstring of IsWellFounded (#7063) ESTIMATED CHANGES Modified Mathlib/Order/RelClasses.lean 2023-09-10 03:26:26 4a23855 chore: tidy various files (#7041) ESTIMATED CHANGES Modified Mathlib/Data/Finset/LocallyFinite.lean Modified Mathlib/Data/Seq/Computation.lean - theorem Computation.LiftRelAux_inl_inl - theorem Computation.LiftRelAux_inl_inr - theorem Computation.LiftRelAux_inr_inl - theorem Computation.LiftRelAux_inr_inr + theorem Computation.empty_orElse - theorem Computation.empty_orelse - theorem Computation.exists_of_LiftRel_left - theorem Computation.exists_of_LiftRel_right + theorem Computation.exists_of_liftRel_left + theorem Computation.exists_of_liftRel_right + theorem Computation.liftRelAux_inl_inl + theorem Computation.liftRelAux_inl_inr + theorem Computation.liftRelAux_inr_inl + theorem Computation.liftRelAux_inr_inr + theorem Computation.liftRel_rec - theorem Computation.lift_rel_rec + theorem Computation.orElse_empty + theorem Computation.orElse_pure + theorem Computation.orElse_think - theorem Computation.orelse_empty - theorem Computation.orelse_pure - theorem Computation.orelse_think - theorem Computation.rel_of_LiftRel + theorem Computation.rel_of_liftRel - theorem Computation.terminates_of_LiftRel + theorem Computation.terminates_of_liftRel Modified Mathlib/Data/Seq/WSeq.lean Modified Mathlib/MeasureTheory/Integral/Bochner.lean Modified Mathlib/Topology/Sheaves/SheafCondition/OpensLeCover.lean 2023-09-10 03:26:25 a57bfd6 feat: roots in an algebra (#6740) ESTIMATED CHANGES Modified Mathlib/Data/Polynomial/FieldDivision.lean Modified Mathlib/Data/Polynomial/RingDivision.lean + theorem Polynomial.aroots_C + theorem Polynomial.aroots_C_mul + theorem Polynomial.aroots_C_mul_X_pow + theorem Polynomial.aroots_X + theorem Polynomial.aroots_X_pow + theorem Polynomial.aroots_X_sub_C + theorem Polynomial.aroots_def + theorem Polynomial.aroots_monomial + theorem Polynomial.aroots_mul + theorem Polynomial.aroots_one + theorem Polynomial.aroots_pow + theorem Polynomial.aroots_smul_nonzero + theorem Polynomial.aroots_zero + theorem Polynomial.mem_aroots' + theorem Polynomial.mem_aroots Modified Mathlib/Data/Polynomial/Splits.lean Modified Mathlib/FieldTheory/Adjoin.lean Modified Mathlib/FieldTheory/Finite/GaloisField.lean Modified Mathlib/FieldTheory/Galois.lean Modified Mathlib/FieldTheory/IsAlgClosed/Classification.lean Modified Mathlib/FieldTheory/Minpoly/Field.lean Modified Mathlib/FieldTheory/Normal.lean Modified Mathlib/FieldTheory/PolynomialGaloisGroup.lean Modified Mathlib/FieldTheory/Separable.lean Modified Mathlib/FieldTheory/SplittingField/Construction.lean Modified Mathlib/FieldTheory/SplittingField/IsSplittingField.lean Modified Mathlib/RingTheory/AdjoinRoot.lean Modified Mathlib/RingTheory/Discriminant.lean Modified Mathlib/RingTheory/IntegralClosure.lean Modified Mathlib/RingTheory/Norm.lean Modified Mathlib/RingTheory/Polynomial/GaussLemma.lean Modified Mathlib/RingTheory/PowerBasis.lean Modified Mathlib/RingTheory/Trace.lean 2023-09-10 12:40:42+10:00 f93f41c chore: revert ProofWidgets bump in #7044 and #7056 (#7069) The cache is broken after #7044 and #7056, so I am reverting them. (And merging directly, rather than via bors.) ESTIMATED CHANGES Modified Mathlib/Tactic/Widget/CommDiag.lean Modified lake-manifest.json Modified lakefile.lean Modified test/CommDiag.lean 2023-09-10 00:39:19 ff7397e feat: super factorial (#6768) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Data/Nat/Factorial/SuperFactorial.lean + def Nat.superFactorial + theorem Nat.superFactorial_one + theorem Nat.superFactorial_succ + theorem Nat.superFactorial_two + theorem Nat.superFactorial_zero 2023-09-09 23:05:06 ab88fbb feat(LinearAlgebra/Matrix/Trace): add Matrix.trace_diagonal (#7061) The trace of a diagonal matrix is the sum of the diagonal elements. [Zulip discussion](https://leanprover.zulipchat.com/#narrow/stream/217875-Is-there-code-for-X.3F/topic/Trace.20of.20diagonal) ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/Matrix/Trace.lean + theorem Matrix.trace_diagonal 2023-09-09 23:05:05 ae7a2e4 chore: complete ProofWidgets bump (#7056) ESTIMATED CHANGES Modified Mathlib/Tactic/Widget/CommDiag.lean Modified lake-manifest.json Modified test/CommDiag.lean 2023-09-09 21:45:11 b2cf368 feat: More `Finset.sup'` lemmas (#7021) Match https://github.com/leanprover-community/mathlib/pull/18989 ESTIMATED CHANGES Modified Mathlib/Data/DFinsupp/Multiset.lean Modified Mathlib/Data/Finset/Basic.lean +/- theorem Finset.Nonempty.exists_eq_singleton_or_nontrivial + theorem Finset.Nontrivial.ne_singleton +/- theorem Finset.attach_eq_empty_iff +/- theorem Finset.attach_nonempty_iff + theorem Finset.cons_empty +/- theorem Finset.eq_singleton_or_nontrivial +/- theorem Finset.filter_False +/- theorem Finset.filter_True + theorem Finset.filter_comm + theorem Finset.filter_congr_decidable + theorem Finset.filter_const +/- theorem Finset.filter_eq_empty_iff +/- theorem Finset.filter_eq_self +/- theorem Finset.filter_false_of_mem +/- theorem Finset.filter_nonempty_iff +/- theorem Finset.filter_true_of_mem + theorem Finset.nontrivial_iff_ne_singleton + theorem Finset.not_nontrivial_empty + theorem Finset.not_nontrivial_singleton - theorem Finset.sdiff_self Modified Mathlib/Data/Finset/Lattice.lean + theorem Finset.inf'_image + theorem Finset.inf'_product_left + theorem Finset.inf'_product_right + theorem Finset.inf'_sup_distrib_left + theorem Finset.inf'_sup_distrib_right + theorem Finset.inf'_sup_inf' + theorem Finset.inf'_union +/- theorem Finset.inf_biUnion +/- theorem Finset.inf_const + theorem Finset.inf_ite +/- theorem Finset.inf_top + theorem Finset.sup'_image + theorem Finset.sup'_inf_distrib_left + theorem Finset.sup'_inf_distrib_right + theorem Finset.sup'_inf_sup' + theorem Finset.sup'_product_left + theorem Finset.sup'_product_right + theorem Finset.sup'_union + theorem map_finset_inf' + theorem map_finset_sup' Modified Mathlib/Data/Finset/LocallyFinite.lean Modified Mathlib/LinearAlgebra/AffineSpace/Basis.lean Modified Mathlib/NumberTheory/LegendreSymbol/GaussEisensteinLemmas.lean Modified Mathlib/Order/SupClosed.lean - theorem Finset.inf'_union - theorem Finset.sup'_union 2023-09-09 20:21:24 a14fcec feat: self_lt_pow (#7058) ESTIMATED CHANGES Modified Mathlib/Algebra/GroupPower/Order.lean + theorem self_lt_pow Modified Mathlib/NumberTheory/FermatPsp.lean 2023-09-09 20:21:23 e07e8dd chore: move some files to `MeasureTheory/MeasurableSpace/` (#7045) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/MeasureTheory/Function/AEMeasurableSequence.lean Renamed Mathlib/MeasureTheory/MeasurableSpace.lean to Mathlib/MeasureTheory/MeasurableSpace/Basic.lean Renamed Mathlib/MeasureTheory/CardMeasurableSpace.lean to Mathlib/MeasureTheory/MeasurableSpace/Card.lean Renamed Mathlib/MeasureTheory/MeasurableSpaceDef.lean to Mathlib/MeasureTheory/MeasurableSpace/Defs.lean Modified Mathlib/MeasureTheory/Measure/MeasureSpace.lean Modified Mathlib/MeasureTheory/Measure/MeasureSpaceDef.lean Modified Mathlib/MeasureTheory/PiSystem.lean Modified test/measurability.lean 2023-09-09 19:18:30 c69a99d chore(RingTheory/Nilpotent): untwine two universes (#7057) A simple replacement: `R S : Type u` changes to `R S : Type*`. Before this change, the example below failed: ```lean variable {A B : Type*} [MonoidWithZero A] [MonoidWithZero B] example {a : A} (ha : IsNilpotent a) (f : A →*₀ B) : IsNilpotent (f a) := by exact ha.map f ``` ESTIMATED CHANGES Modified Mathlib/RingTheory/Nilpotent.lean 2023-09-09 17:26:22 0948c00 feat: von Neumann Mean Ergodic Theorem (#6053) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Analysis/InnerProductSpace/Basic.lean + theorem eq_of_norm_le_re_inner_eq_norm_sq Added Mathlib/Analysis/InnerProductSpace/MeanErgodic.lean + theorem ContinuousLinearMap.tendsto_birkhoffAverage_orthogonalProjection + theorem LinearMap.tendsto_birkhoffAverage_of_ker_subset_closure Modified Mathlib/Dynamics/BirkhoffSum/Average.lean +/- theorem birkhoffAverage_apply_sub_birkhoffAverage Added Mathlib/Dynamics/BirkhoffSum/NormedSpace.lean + theorem Function.IsFixedPt.tendsto_birkhoffAverage + theorem dist_birkhoffAverage_apply_birkhoffAverage + theorem dist_birkhoffAverage_birkhoffAverage + theorem dist_birkhoffAverage_birkhoffAverage_le + theorem dist_birkhoffSum_apply_birkhoffSum + theorem dist_birkhoffSum_birkhoffSum_le + theorem isClosed_setOf_tendsto_birkhoffAverage + theorem tendsto_birkhoffAverage_apply_sub_birkhoffAverage' + theorem tendsto_birkhoffAverage_apply_sub_birkhoffAverage + theorem uniformEquicontinuous_birkhoffAverage 2023-09-09 15:10:16 386927c feat: (sSup, Iic) and (Ici, sInf) are Galois connections (#6951) ESTIMATED CHANGES Modified Mathlib/Data/Set/Lattice.lean + theorem Set.sUnion_powerset_gc + def Set.sUnion_powerset_gi + theorem Set.subset_powerset_iff Modified Mathlib/Order/GaloisConnection.lean + theorem gc_Ici_sInf + theorem gc_sSup_Iic + def gci_Ici_sInf + def gi_sSup_Iic 2023-09-09 11:57:30 54527c5 feat: derivative along a vector (#7038) Prerequisite for Rademacher's theorem in #7003 We currently have in mathlib the Fréchet derivative, and the derivative of maps defined on the scalar field. In this PR, we introduce another notion, the derivative along a line. It is more elementary (but less well behaved) than the full Fréchet derivative. The API is essentially copied from the file on the one-dimensional derivative, with a few additions that have proved useful for Rademacher's theorem. The API could definitely be expanded, but it's already heavy... I have put everything in the single file `LineDeriv/Basic.lean`, mimicking the directory structure for `FDeriv` and `Deriv` and leaving open the possibility to add other files in this folder with more API. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/Calculus/LineDeriv/Basic.lean + theorem DifferentiableAt.lineDeriv_eq_fderiv + theorem Filter.EventuallyEq.hasLineDerivAt_iff + theorem Filter.EventuallyEq.hasLineDerivWithinAt_iff + theorem Filter.EventuallyEq.hasLineDerivWithinAt_iff_of_mem + theorem Filter.EventuallyEq.lineDerivWithin_eq + theorem Filter.EventuallyEq.lineDerivWithin_eq_nhds + theorem Filter.EventuallyEq.lineDeriv_eq + theorem Filter.EventuallyEq.lineDifferentiableAt_iff + theorem Filter.EventuallyEq.lineDifferentiableWithinAt_iff + theorem Filter.EventuallyEq.lineDifferentiableWithinAt_iff_of_mem + theorem HasFDerivAt.hasLineDerivAt + theorem HasFDerivWithinAt.hasLineDerivWithinAt + theorem HasLineDerivAt.congr_of_eventuallyEq + theorem HasLineDerivAt.hasLineDerivWithinAt + theorem HasLineDerivAt.le_of_lip' + theorem HasLineDerivAt.le_of_lipschitz + theorem HasLineDerivAt.le_of_lipschitzOn + theorem HasLineDerivAt.lineDifferentiableAt + theorem HasLineDerivAt.of_comp + theorem HasLineDerivAt.smul + theorem HasLineDerivAt.tendsto_slope_zero_left + theorem HasLineDerivAt.tendsto_slope_zero_right + theorem HasLineDerivAt.unique + def HasLineDerivAt + theorem HasLineDerivWithinAt.congr' + theorem HasLineDerivWithinAt.congr + theorem HasLineDerivWithinAt.congr_mono + theorem HasLineDerivWithinAt.congr_of_eventuallyEq + theorem HasLineDerivWithinAt.hasLineDerivAt + theorem HasLineDerivWithinAt.lineDifferentiableWithinAt + theorem HasLineDerivWithinAt.mono + theorem HasLineDerivWithinAt.mono_of_mem + theorem HasLineDerivWithinAt.smul + def HasLineDerivWithinAt + theorem LineDifferentiableAt.congr_of_eventuallyEq + theorem LineDifferentiableAt.hasLineDerivAt + theorem LineDifferentiableAt.lineDifferentiableWithinAt + theorem LineDifferentiableAt.of_comp + theorem LineDifferentiableAt.smul + def LineDifferentiableAt + theorem LineDifferentiableWithinAt.congr + theorem LineDifferentiableWithinAt.congr_mono + theorem LineDifferentiableWithinAt.congr_of_eventuallyEq + theorem LineDifferentiableWithinAt.hasLineDerivWithinAt + theorem LineDifferentiableWithinAt.lineDifferentiableAt + theorem LineDifferentiableWithinAt.mono + theorem LineDifferentiableWithinAt.mono_of_mem + theorem LineDifferentiableWithinAt.smul + def LineDifferentiableWithinAt + theorem hasLineDerivAt_iff_isLittleO_nhds_zero + theorem hasLineDerivAt_iff_tendsto_slope_zero + theorem hasLineDerivAt_smul_iff + theorem hasLineDerivAt_zero + theorem hasLineDerivWithinAt_congr_set + theorem hasLineDerivWithinAt_smul_iff + theorem hasLineDerivWithinAt_univ + theorem hasLineDerivWithinAt_zero + def lineDeriv + def lineDerivWithin + theorem lineDerivWithin_congr' + theorem lineDerivWithin_congr + theorem lineDerivWithin_congr_set + theorem lineDerivWithin_of_mem_nhds + theorem lineDerivWithin_of_open + theorem lineDerivWithin_univ + theorem lineDerivWithin_zero_of_not_lineDifferentiableWithinAt + theorem lineDeriv_neg + theorem lineDeriv_smul + theorem lineDeriv_zero + theorem lineDeriv_zero_of_not_lineDifferentiableAt + theorem lineDifferentiableAt_smul_iff + theorem lineDifferentiableAt_zero + theorem lineDifferentiableWithinAt_congr_set + theorem lineDifferentiableWithinAt_smul_iff + theorem lineDifferentiableWithinAt_univ + theorem lineDifferentiableWithinAt_zero + theorem norm_lineDeriv_le_of_lip' + theorem norm_lineDeriv_le_of_lipschitz + theorem norm_lineDeriv_le_of_lipschitzOn 2023-09-09 05:33:18 43718b8 feat: check for some common git problems in CI (#7043) Add a couple of actions to automatically complain if people commit two types of bad file (files whose names differ only by case and files which are in the gitignore). ESTIMATED CHANGES Modified .github/workflows/bors.yml Modified .github/workflows/build.yml Modified .github/workflows/build.yml.in Modified .github/workflows/build_fork.yml 2023-09-09 05:01:28 d00a69d chore: bump ProofWidgets (#7044) ESTIMATED CHANGES Modified lakefile.lean 2023-09-08 22:32:21 527ecc3 feat(Topology/Algebra): add `DiscreteTopology Mˣ` (#7028) Add instances for `[DiscreteTopology M] : DiscreteTopology Mᵐᵒᵖ` and `[DiscreteTopology M] : DiscreteTopology Mˣ`, as well as additive versions. ESTIMATED CHANGES Modified Mathlib/Topology/Algebra/Constructions.lean 2023-09-08 21:07:20 8908a0a chore: simplify `by rfl` (#7039) ESTIMATED CHANGES Modified Mathlib/Algebra/Free.lean Modified Mathlib/Algebra/Homology/HomotopyCategory/HomComplex.lean Modified Mathlib/Algebra/Lie/CartanMatrix.lean Modified Mathlib/Algebra/MonoidAlgebra/Grading.lean +/- theorem AddMonoidAlgebra.gradeBy_id Modified Mathlib/Algebra/Symmetrized.lean Modified Mathlib/Analysis/SpecialFunctions/Integrals.lean Modified Mathlib/CategoryTheory/Category/Grpd.lean Modified Mathlib/CategoryTheory/Idempotents/Karoubi.lean +/- theorem CategoryTheory.Idempotents.Karoubi.coe_X +/- theorem CategoryTheory.Idempotents.Karoubi.coe_p +/- theorem CategoryTheory.Idempotents.Karoubi.comp_f +/- theorem CategoryTheory.Idempotents.Karoubi.id_eq Modified Mathlib/CategoryTheory/Limits/Presheaf.lean Modified Mathlib/CategoryTheory/PathCategory.lean Modified Mathlib/Data/Complex/Basic.lean Modified Mathlib/Data/MvPolynomial/Equiv.lean Modified Mathlib/Data/Nat/PartENat.lean +/- theorem PartENat.ofENat_none +/- theorem PartENat.ofENat_some Modified Mathlib/Data/PFunctor/Multivariate/Basic.lean +/- theorem MvPFunctor.const.get_mk Modified Mathlib/Data/PFunctor/Univariate/M.lean +/- theorem PFunctor.M.dest_mk Modified Mathlib/Data/QPF/Multivariate/Constructions/Cofix.lean Modified Mathlib/Data/Seq/Computation.lean Modified Mathlib/LinearAlgebra/BilinearForm.lean Modified Mathlib/MeasureTheory/Function/ConditionalExpectation/CondexpL1.lean Modified Mathlib/MeasureTheory/Function/ConditionalExpectation/CondexpL2.lean Modified Mathlib/MeasureTheory/Measure/FiniteMeasure.lean Modified Mathlib/MeasureTheory/Measure/Portmanteau.lean Modified Mathlib/NumberTheory/ModularForms/JacobiTheta/Basic.lean Modified Mathlib/RingTheory/Polynomial/Basic.lean Modified Mathlib/RingTheory/Valuation/Basic.lean +/- theorem Valuation.toFun_eq_coe Modified Mathlib/RingTheory/Valuation/ValuationSubring.lean Modified Mathlib/Topology/MetricSpace/GromovHausdorffRealized.lean Modified test/toAdditive.lean +/- theorem Test.bar10_works +/- theorem Test.bar11_works 2023-09-08 15:47:55 d04897a chore: tidy various files (#7035) ESTIMATED CHANGES Modified Mathlib/Algebra/Group/OrderSynonym.lean Modified Mathlib/Algebra/Homology/HomotopyCategory/HomComplex.lean Modified Mathlib/Algebra/Homology/QuasiIso.lean Modified Mathlib/Algebra/Order/Group/Instances.lean Modified Mathlib/Algebra/Order/Monoid/OrderDual.lean Modified Mathlib/Algebra/Order/SMul.lean Modified Mathlib/AlgebraicGeometry/OpenImmersion/Scheme.lean Modified Mathlib/Analysis/SpecialFunctions/Pow/Real.lean Modified Mathlib/Data/ENat/Lattice.lean +/- theorem ENat.iInf_coe_ne_top Modified Mathlib/Data/Rat/Cast/Order.lean + theorem Rat.castHom_rat - theorem Rat.cast_hom_rat Modified Mathlib/Data/Sum/Basic.lean Modified Mathlib/FieldTheory/SeparableDegree.lean Modified Mathlib/LinearAlgebra/Matrix/Charpoly/Coeff.lean - theorem Matrix.isUnit_charpolyRev_of_IsNilpotent + theorem Matrix.isUnit_charpolyRev_of_isNilpotent Modified Mathlib/MeasureTheory/Integral/Lebesgue.lean - theorem IsFiniteMeasure.lintegral_lt_top_of_bounded_to_eNNReal + theorem IsFiniteMeasure.lintegral_lt_top_of_bounded_to_ennreal Modified Mathlib/MeasureTheory/Measure/FiniteMeasure.lean Modified Mathlib/NumberTheory/RamificationInertia.lean Modified Mathlib/Order/ConditionallyCompleteLattice/Basic.lean Modified Mathlib/Order/SuccPred/Basic.lean +/- theorem Order.succ_le_succ_iff_of_not_isMax +/- theorem Order.succ_lt_succ_iff_of_not_isMax Modified Mathlib/RingTheory/Ideal/Over.lean + def Ideal.Quotient.algebraQuotientOfLEComap - def Ideal.Quotient.algebraQuotientOfLeComap Modified Mathlib/RingTheory/Perfection.lean Modified Mathlib/Topology/NoetherianSpace.lean Modified Mathlib/Topology/Sheaves/Stalks.lean + theorem TopCat.Presheaf.germ_stalkSpecializes' - theorem TopCat.Presheaf.germ_stalk_specializes' Modified scripts/nolints.json 2023-09-08 14:39:54 686be16 refactor(LinearAlgebra/CliffordAlgebra/Conjugation): expose implementation details of 'reverse' (#6783) Having the fully-bundled `AlgHom` (to `MulOpposite`) is occasionally useful for building larger `AlgHom`s, especially if the `MulOpposite` can be cancelled out later. ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/Equiv.lean + theorem AlgEquiv.toLinearMap_ofAlgHom Modified Mathlib/LinearAlgebra/CliffordAlgebra/Conjugation.lean + theorem CliffordAlgebra.op_reverse +/- theorem CliffordAlgebra.reverse.map_one + def CliffordAlgebra.reverseOp + def CliffordAlgebra.reverseOpEquiv + theorem CliffordAlgebra.reverseOpEquiv_opComm + theorem CliffordAlgebra.reverseOp_ι + theorem CliffordAlgebra.unop_reverseOp 2023-09-08 13:40:44 bb3c2eb feat: add `DiscreteTopology.of_continuous_injective` (#7029) ESTIMATED CHANGES Modified Mathlib/Topology/Maps.lean +/- theorem Embedding.discreteTopology Modified Mathlib/Topology/Order.lean + theorem DiscreteTopology.of_continuous_injective 2023-09-08 11:01:41 2df6bb4 feat: restore the module docstring code snippet (#7030) We had this in mathlib3, allowing one to type `mo` (then press tab, at least for me) in an empty file and have a snippet template of a module docstring inserted with the title named to the filename, which can save a little time. The implementation is now a bit overkill as it splits on `_` and capitalizes still to get from the filename to the module title, which likely has no affect for most lean 4 filenames. ESTIMATED CHANGES Added .vscode/module-docstring.code-snippets 2023-09-08 11:01:40 c48c769 feat: flesh out the API for `realPart` and `imaginaryPart` (#7023) Improve API for the `realPart` and `imaginaryPart` maps in a star module over `ℂ`. 1. remove the `simp` attribute on `realPart_apply_coe` and `imaginaryPart_apply_coe` 2. construct the `ℝ`-linear equivalence `Complex.selfAdjointEquiv` between `selfAdjoint ℂ` and `ℝ`. In fact, this would be an algebra equivalence, but that requires `selfAdjoint ℂ` to have an `algebra ℝ (selfAdjoint ℂ)` structure, which it doesn't have. 3. show the span (over `ℂ`) of `selfAdjoint A` is `⊤ : Submodule ℂ A` ESTIMATED CHANGES Modified Mathlib/Data/Complex/Module.lean + theorem Complex.coe_realPart + theorem Complex.coe_selfAdjointEquiv + def Complex.selfAdjointEquiv + theorem IsSelfAdjoint.coe_realPart + theorem IsSelfAdjoint.imaginaryPart + theorem imaginaryPart_comp_subtype_selfAdjoint + theorem imaginaryPart_eq_neg_I_smul_skewAdjointPart + theorem imaginaryPart_imaginaryPart + theorem imaginaryPart_ofReal + theorem imaginaryPart_realPart + theorem imaginaryPart_surjective + theorem realPart_comp_subtype_selfAdjoint + theorem realPart_idem + theorem realPart_imaginaryPart + theorem realPart_ofReal + theorem realPart_surjective + theorem skewAdjointPart_eq_I_smul_imaginaryPart + theorem span_selfAdjoint 2023-09-08 11:01:38 bce8378 chore: missing simps lemmas for `Multiplicative` defs (#7016) This also fixes the definitions to not include any defeq abuse, which is required in order to not produce a bad simp lemma. ESTIMATED CHANGES Modified Mathlib/Algebra/Hom/Equiv/TypeTags.lean - def MulEquiv.toAdditive'' - def MulEquiv.toAdditive' 2023-09-08 11:01:37 db154ca feat: characterize isLittleO on principal filters (#7008) And use this to golf `isLittleO_top`. ESTIMATED CHANGES Modified Mathlib/Analysis/Asymptotics/Asymptotics.lean + theorem Asymptotics.isLittleO_principal +/- theorem Asymptotics.isLittleO_top 2023-09-08 11:01:36 cc353a5 doc: cleanup documentation on Basis.constr (#7007) Currently, the documentation in the file-level docstring is just wrong. ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/Basis.lean 2023-09-08 11:01:35 5959edf feat: cleanup API around differentiable functions (#7004) First calculus prerequisites for Rademacher theorem in #7003. Add a few lemmas that were available for `FDeriv` but not for `Deriv`, weaken assumptions here and there. ESTIMATED CHANGES Modified Mathlib/Analysis/Calculus/Deriv/Basic.lean + theorem Filter.EventuallyEq.hasDerivAt_iff + theorem Filter.EventuallyEq.hasDerivWithinAt_iff + theorem Filter.EventuallyEq.hasDerivWithinAt_iff_of_mem + theorem HasDerivAt.le_of_lip' + theorem HasDerivAt.le_of_lipschitz + theorem HasDerivAt.le_of_lipschitzOn + theorem derivWithin_of_mem_nhds +/- theorem derivWithin_of_open + theorem norm_derivWithin_eq_norm_fderivWithin + theorem norm_deriv_eq_norm_fderiv + theorem norm_deriv_le_of_lip' + theorem norm_deriv_le_of_lipschitz + theorem norm_deriv_le_of_lipschitzOn Modified Mathlib/Analysis/Calculus/Deriv/Slope.lean + theorem HasDerivAt.tendsto_slope_zero_left + theorem HasDerivAt.tendsto_slope_zero_right + theorem hasDerivAt_iff_tendsto_slope_zero Modified Mathlib/Analysis/Calculus/FDeriv/Basic.lean - theorem DifferentiableAt.le_of_lip - theorem HasFDerivAt.le_of_lip + theorem HasFDerivAt.le_of_lipschitz + theorem HasFDerivAt.le_of_lipschitzOn + theorem norm_fderiv_le_of_lip' + theorem norm_fderiv_le_of_lipschitz + theorem norm_fderiv_le_of_lipschitzOn Modified Mathlib/Analysis/Calculus/MeanValue.lean +/- theorem eq_of_fderiv_eq +/- theorem is_const_of_fderiv_eq_zero + theorem lipschitzWith_of_nnnorm_fderiv_le 2023-09-08 11:01:34 20aad7f feat: add Nat.digits_append_digits (#6999) Similar to `Nat.ofDigits_digits_append_digits`, but with a `digits` on the RHS instead of an `ofDigits` on the LHS. ESTIMATED CHANGES Modified Mathlib/Data/Nat/Digits.lean + theorem Nat.digits_append_digits 2023-09-08 11:01:33 338f41e feat: definition of the homology of a short complex (#6994) This PR introduces the definition `S.homology` for a short complex `S` that "has homology". ESTIMATED CHANGES Modified Mathlib/Algebra/Homology/ShortComplex/Homology.lean + theorem CategoryTheory.ShortComplex.HasHomology.mk' + def CategoryTheory.ShortComplex.HomologyMapData.comp + def CategoryTheory.ShortComplex.HomologyMapData.compatibilityOfZerosOfIsColimitCokernelCofork + def CategoryTheory.ShortComplex.HomologyMapData.compatibilityOfZerosOfIsLimitKernelFork + def CategoryTheory.ShortComplex.HomologyMapData.id + def CategoryTheory.ShortComplex.HomologyMapData.ofIsColimitCokernelCofork + def CategoryTheory.ShortComplex.HomologyMapData.ofIsLimitKernelFork + def CategoryTheory.ShortComplex.HomologyMapData.ofZeros + def CategoryTheory.ShortComplex.HomologyMapData.op + def CategoryTheory.ShortComplex.HomologyMapData.unop + def CategoryTheory.ShortComplex.HomologyMapData.zero + theorem CategoryTheory.ShortComplex.hasHomology_of_epi_of_isIso_of_mono' + theorem CategoryTheory.ShortComplex.hasHomology_of_epi_of_isIso_of_mono + theorem CategoryTheory.ShortComplex.hasHomology_of_iso Modified Mathlib/Algebra/Homology/ShortComplex/LeftHomology.lean Modified Mathlib/Algebra/Homology/ShortComplex/RightHomology.lean 2023-09-08 11:01:32 2b261f6 chore: implement porting notes about Polish spaces (#6991) Make the following changes which were intentionally left till after the port: - Move several instances of `PolishSpace` from MeasureTheory.Constructions.Polish to Topology.MetricSpace.Polish - Remove instance of `PolishSpace` for `nat -> nat`, since lean4 can find this automatically - Change `PolishSpace` to extend `SecondCountableTopology`, since lean4 now allows loops in TC inference. ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Constructions/Polish.lean Modified Mathlib/Topology/MetricSpace/Polish.lean +/- theorem IsClosed.polishSpace 2023-09-08 11:01:31 a17d250 feat(Algebra/Category/ModuleCat): composition of restriction of scalar functors (#6915) This PR studies the behaviour of restriction of scalars functors with respect to composition. ESTIMATED CHANGES Modified Mathlib/Algebra/Category/ModuleCat/ChangeOfRings.lean - def CategoryTheory.ModuleCat.CoextendScalars.map' - theorem CategoryTheory.ModuleCat.CoextendScalars.map_apply - def CategoryTheory.ModuleCat.CoextendScalars.obj' - theorem CategoryTheory.ModuleCat.CoextendScalars.smul_apply' - theorem CategoryTheory.ModuleCat.CoextendScalars.smul_apply - def CategoryTheory.ModuleCat.ExtendRestrictScalarsAdj.Counit.map - def CategoryTheory.ModuleCat.ExtendRestrictScalarsAdj.HomEquiv.evalAt - def CategoryTheory.ModuleCat.ExtendRestrictScalarsAdj.HomEquiv.fromExtendScalars - def CategoryTheory.ModuleCat.ExtendRestrictScalarsAdj.HomEquiv.toRestrictScalars - def CategoryTheory.ModuleCat.ExtendRestrictScalarsAdj.Unit.map - def CategoryTheory.ModuleCat.ExtendRestrictScalarsAdj.counit - def CategoryTheory.ModuleCat.ExtendRestrictScalarsAdj.homEquiv - def CategoryTheory.ModuleCat.ExtendRestrictScalarsAdj.unit - def CategoryTheory.ModuleCat.ExtendScalars.map' - theorem CategoryTheory.ModuleCat.ExtendScalars.map'_comp - theorem CategoryTheory.ModuleCat.ExtendScalars.map'_id - theorem CategoryTheory.ModuleCat.ExtendScalars.map_tmul - def CategoryTheory.ModuleCat.ExtendScalars.obj' - def CategoryTheory.ModuleCat.RestrictScalars.map' - def CategoryTheory.ModuleCat.RestrictScalars.obj' - def CategoryTheory.ModuleCat.RestrictionCoextensionAdj.HomEquiv.fromRestriction - def CategoryTheory.ModuleCat.RestrictionCoextensionAdj.HomEquiv.toRestriction - def CategoryTheory.ModuleCat.RestrictionCoextensionAdj.app' - def CategoryTheory.ModuleCat.coextendScalars - def CategoryTheory.ModuleCat.extendRestrictScalarsAdj - def CategoryTheory.ModuleCat.extendScalars - def CategoryTheory.ModuleCat.restrictCoextendScalarsAdj - theorem CategoryTheory.ModuleCat.restrictScalars.map_apply - theorem CategoryTheory.ModuleCat.restrictScalars.smul_def' - theorem CategoryTheory.ModuleCat.restrictScalars.smul_def - def CategoryTheory.ModuleCat.restrictScalars + def ModuleCat.CoextendScalars.map' + theorem ModuleCat.CoextendScalars.map_apply + def ModuleCat.CoextendScalars.obj' + theorem ModuleCat.CoextendScalars.smul_apply' + theorem ModuleCat.CoextendScalars.smul_apply + def ModuleCat.ExtendRestrictScalarsAdj.Counit.map + def ModuleCat.ExtendRestrictScalarsAdj.HomEquiv.evalAt + def ModuleCat.ExtendRestrictScalarsAdj.HomEquiv.fromExtendScalars + def ModuleCat.ExtendRestrictScalarsAdj.HomEquiv.toRestrictScalars + def ModuleCat.ExtendRestrictScalarsAdj.Unit.map + def ModuleCat.ExtendRestrictScalarsAdj.counit + def ModuleCat.ExtendRestrictScalarsAdj.homEquiv + def ModuleCat.ExtendRestrictScalarsAdj.unit + def ModuleCat.ExtendScalars.map' + theorem ModuleCat.ExtendScalars.map'_comp + theorem ModuleCat.ExtendScalars.map'_id + theorem ModuleCat.ExtendScalars.map_tmul + def ModuleCat.ExtendScalars.obj' + def ModuleCat.RestrictScalars.map' + def ModuleCat.RestrictScalars.obj' + def ModuleCat.RestrictionCoextensionAdj.HomEquiv.fromRestriction + def ModuleCat.RestrictionCoextensionAdj.HomEquiv.toRestriction + def ModuleCat.RestrictionCoextensionAdj.app' + def ModuleCat.coextendScalars + def ModuleCat.extendRestrictScalarsAdj + def ModuleCat.extendScalars + def ModuleCat.restrictCoextendScalarsAdj + theorem ModuleCat.restrictScalars.map_apply + theorem ModuleCat.restrictScalars.smul_def' + theorem ModuleCat.restrictScalars.smul_def + def ModuleCat.restrictScalars + def ModuleCat.restrictScalarsComp' + theorem ModuleCat.restrictScalarsComp'_hom_apply + theorem ModuleCat.restrictScalarsComp'_inv_apply + def ModuleCat.restrictScalarsId' + theorem ModuleCat.restrictScalarsId'_hom_apply + theorem ModuleCat.restrictScalarsId'_inv_apply + def ModuleCat.semilinearMapAddEquiv 2023-09-08 11:01:29 248b009 feat: compute the integral of sqrt (1 - x ^ 2) (#6905) We prove ```lean theorem integral_sqrt_one_sub_sq : ∫ x in (-1 : ℝ)..1, sqrt (1 - x ^ 2) = π / 2 ``` which will in turn be used to compute the area of the disc and then the volume of the unit complex ball in #6907 ESTIMATED CHANGES Modified Mathlib/Analysis/SpecialFunctions/Integrals.lean + theorem integral_sqrt_one_sub_sq 2023-09-08 11:01:28 dd9279a chore(*/TensorProduct): missing functorial lemmas (#6781) This adds missing `map_id`, `map_comp`, `congr_refl`, `congr_trans`, and `congr_symm` lemmas. ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/TensorProduct/Tower.lean + theorem TensorProduct.AlgebraTensorModule.congr_mul + theorem TensorProduct.AlgebraTensorModule.congr_one + theorem TensorProduct.AlgebraTensorModule.congr_refl + theorem TensorProduct.AlgebraTensorModule.congr_symm + theorem TensorProduct.AlgebraTensorModule.congr_trans + theorem TensorProduct.AlgebraTensorModule.map_comp + theorem TensorProduct.AlgebraTensorModule.map_id Modified Mathlib/RingTheory/TensorProduct.lean + theorem Algebra.TensorProduct.congr_refl + theorem Algebra.TensorProduct.congr_symm + theorem Algebra.TensorProduct.congr_trans + theorem Algebra.TensorProduct.map_comp + theorem Algebra.TensorProduct.map_id 2023-09-08 11:01:27 a384f1b feat: a functor from a small category to a filtered category factors through a small filtered category (#6212) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/CategoryTheory/CofilteredSystem.lean Modified Mathlib/CategoryTheory/EssentiallySmall.lean + theorem CategoryTheory.essentiallySmall_of_small_of_locallySmall + theorem CategoryTheory.locallySmall_max Renamed Mathlib/CategoryTheory/Filtered.lean to Mathlib/CategoryTheory/Filtered/Basic.lean Added Mathlib/CategoryTheory/Filtered/Small.lean + inductive CategoryTheory.IsCofiltered.CofilteredClosure + def CategoryTheory.IsCofiltered.SmallCofilteredIntermediate + theorem CategoryTheory.IsCofiltered.small_fullSubcategory_cofilteredClosure + inductive CategoryTheory.IsFiltered.FilteredClosure + def CategoryTheory.IsFiltered.SmallFilteredIntermediate + theorem CategoryTheory.IsFiltered.small_fullSubcategory_filteredClosure Modified Mathlib/CategoryTheory/Limits/Filtered.lean Modified Mathlib/CategoryTheory/Limits/Preserves/Filtered.lean Modified Mathlib/CategoryTheory/Limits/Types.lean Modified Mathlib/Logic/Small/Basic.lean + theorem small_of_injective_of_exists Modified docs/references.bib 2023-09-08 09:40:43 9f97ec1 feat: expand API on locally integrable functions (#7006) Measure theory prerequisites for Rademacher theorem in #7003. ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Constructions/Prod/Basic.lean + theorem MeasureTheory.Measure.ae_prod_mem_iff_ae_ae_mem Modified Mathlib/MeasureTheory/Function/LocallyIntegrable.lean + theorem MeasureTheory.Memℒp.locallyIntegrable + theorem MeasureTheory.locallyIntegrableOn_zero + theorem MeasureTheory.locallyIntegrable_finset_sum' + theorem MeasureTheory.locallyIntegrable_finset_sum + theorem MeasureTheory.locallyIntegrable_zero Modified Mathlib/MeasureTheory/Function/LpSpace.lean + theorem MeasureTheory.Memℒp.memℒp_of_exponent_le_of_measure_support_ne_top Modified Mathlib/MeasureTheory/Group/Measure.lean + theorem ContinuousLinearEquiv.isAddHaarMeasure_map Modified Mathlib/MeasureTheory/Integral/IntegrableOn.lean Modified Mathlib/MeasureTheory/Measure/Haar/Basic.lean + theorem MeasureTheory.Measure.absolutelyContinuous_isHaarMeasure 2023-09-08 09:40:42 55bbc69 chore: split Tactic.NormNum.Basic (#7002) This was accumulating a lot of different plugins. This split makes it easier to track which tactics rely on which plugins. Summary of changes: * `Tactic.NormNum.Basic` has had contents split out into separate files: * `Eq` * `Ineq` * `Inv` * `Pow` * `OfScientific` * `Tactic.NormNum.CharZero` has been rolled into the new `Tactic.NormNum.Inv` * `Tactic.NormNum.OrderedRing` has been rolled into the new `Tactic.NormNum.Ineq` * `Tactic.NormNum` imports all the new plug-in files * `Tactic.Ring` only imports the `norm_num` plugins it needs * `CancelDenoms` moved to `CancelDenoms.Core` with only the imports needed by the tactic * and replaced with a new `CancelDenoms` that imports `CancelDenoms.Core` and some additional imports for plugins that are useful when using `cancel_denoms` * `Linarith.Preprocessing` only imports `CancelDenoms.Core`, rather than `CancelDenoms` * add imports to `Linarith` that are not needed for the implementation, but make it more powerful * `SimpleGraph.Density` requires an additional import because it has been removed earlier. * `test/GCongr/inequalities.lean` needs the `OfScientific` plugin. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Combinatorics/SimpleGraph/Density.lean Modified Mathlib/Tactic.lean Modified Mathlib/Tactic/CancelDenoms.lean - theorem CancelDenoms.add_subst - def CancelDenoms.cancelDenominatorsInType - theorem CancelDenoms.cancel_factors_eq - theorem CancelDenoms.cancel_factors_eq_div - theorem CancelDenoms.cancel_factors_le - theorem CancelDenoms.cancel_factors_lt - theorem CancelDenoms.cancel_factors_ne - def CancelDenoms.derive - def CancelDenoms.deriveThms - theorem CancelDenoms.derive_trans - theorem CancelDenoms.div_subst - def CancelDenoms.findCompLemma - theorem CancelDenoms.mul_subst - theorem CancelDenoms.neg_subst - theorem CancelDenoms.sub_subst - def CancelDenoms.synthesizeUsingNormNum - def cancelDenominators - def cancelDenominatorsAt - def cancelDenominatorsTarget Added Mathlib/Tactic/CancelDenoms/Core.lean + theorem CancelDenoms.add_subst + def CancelDenoms.cancelDenominatorsInType + theorem CancelDenoms.cancel_factors_eq + theorem CancelDenoms.cancel_factors_eq_div + theorem CancelDenoms.cancel_factors_le + theorem CancelDenoms.cancel_factors_lt + theorem CancelDenoms.cancel_factors_ne + def CancelDenoms.derive + def CancelDenoms.deriveThms + theorem CancelDenoms.derive_trans + theorem CancelDenoms.div_subst + def CancelDenoms.findCompLemma + theorem CancelDenoms.mul_subst + theorem CancelDenoms.neg_subst + theorem CancelDenoms.sub_subst + def CancelDenoms.synthesizeUsingNormNum + def cancelDenominators + def cancelDenominatorsAt + def cancelDenominatorsTarget Modified Mathlib/Tactic/Linarith.lean Modified Mathlib/Tactic/Linarith/Preprocessing.lean Modified Mathlib/Tactic/NormNum.lean Modified Mathlib/Tactic/NormNum/Basic.lean - theorem Mathlib.Meta.NormNum.IsNatPowT.bit0 - theorem Mathlib.Meta.NormNum.IsNatPowT.bit1 - theorem Mathlib.Meta.NormNum.IsNatPowT.run - theorem Mathlib.Meta.NormNum.IsNatPowT.trans - structure Mathlib.Meta.NormNum.IsNatPowT - def Mathlib.Meta.NormNum.evalEq - def Mathlib.Meta.NormNum.evalInv - def Mathlib.Meta.NormNum.evalLE - def Mathlib.Meta.NormNum.evalLT - def Mathlib.Meta.NormNum.evalOfScientific - def Mathlib.Meta.NormNum.evalPow - def Mathlib.Meta.NormNum.evalRatCast - theorem Mathlib.Meta.NormNum.intPow_negOfNat_bit0 - theorem Mathlib.Meta.NormNum.intPow_negOfNat_bit1 - theorem Mathlib.Meta.NormNum.intPow_ofNat - theorem Mathlib.Meta.NormNum.isInt_eq_false - theorem Mathlib.Meta.NormNum.isInt_pow - theorem Mathlib.Meta.NormNum.isInt_ratCast - theorem Mathlib.Meta.NormNum.isNat_le_false - theorem Mathlib.Meta.NormNum.isNat_lt_true - theorem Mathlib.Meta.NormNum.isNat_ofScientific_of_false - theorem Mathlib.Meta.NormNum.isNat_pow - theorem Mathlib.Meta.NormNum.isNat_ratCast - theorem Mathlib.Meta.NormNum.isRat_eq_false - theorem Mathlib.Meta.NormNum.isRat_inv_neg - theorem Mathlib.Meta.NormNum.isRat_inv_neg_one - theorem Mathlib.Meta.NormNum.isRat_inv_one - theorem Mathlib.Meta.NormNum.isRat_inv_pos - theorem Mathlib.Meta.NormNum.isRat_inv_zero - theorem Mathlib.Meta.NormNum.isRat_le_false - theorem Mathlib.Meta.NormNum.isRat_le_true - theorem Mathlib.Meta.NormNum.isRat_lt_false - theorem Mathlib.Meta.NormNum.isRat_lt_true - theorem Mathlib.Meta.NormNum.isRat_ofScientific_of_true - theorem Mathlib.Meta.NormNum.isRat_pow - theorem Mathlib.Meta.NormNum.isRat_ratCast - theorem Mathlib.Meta.NormNum.natPow_one - theorem Mathlib.Meta.NormNum.natPow_zero - theorem Mathlib.Meta.NormNum.one_natPow - theorem Mathlib.Meta.NormNum.zero_natPow Deleted Mathlib/Tactic/NormNum/CharZero.lean - def Mathlib.Meta.NormNum.inferCharZeroOfAddMonoidWithOne - def Mathlib.Meta.NormNum.inferCharZeroOfAddMonoidWithOne? - def Mathlib.Meta.NormNum.inferCharZeroOfDivisionRing - def Mathlib.Meta.NormNum.inferCharZeroOfDivisionRing? - def Mathlib.Meta.NormNum.inferCharZeroOfRing - def Mathlib.Meta.NormNum.inferCharZeroOfRing? Added Mathlib/Tactic/NormNum/Eq.lean + def Mathlib.Meta.NormNum.evalEq + theorem Mathlib.Meta.NormNum.isInt_eq_false + theorem Mathlib.Meta.NormNum.isRat_eq_false Added Mathlib/Tactic/NormNum/Ineq.lean + def Mathlib.Meta.NormNum.evalLE + def Mathlib.Meta.NormNum.evalLT + def Mathlib.Meta.NormNum.inferLinearOrderedField + def Mathlib.Meta.NormNum.inferOrderedRing + def Mathlib.Meta.NormNum.inferOrderedSemiring + theorem Mathlib.Meta.NormNum.isNat_le_false + theorem Mathlib.Meta.NormNum.isNat_lt_true + theorem Mathlib.Meta.NormNum.isRat_le_false + theorem Mathlib.Meta.NormNum.isRat_le_true + theorem Mathlib.Meta.NormNum.isRat_lt_false + theorem Mathlib.Meta.NormNum.isRat_lt_true Added Mathlib/Tactic/NormNum/Inv.lean + def Mathlib.Meta.NormNum.evalInv + def Mathlib.Meta.NormNum.evalRatCast + def Mathlib.Meta.NormNum.inferCharZeroOfAddMonoidWithOne + def Mathlib.Meta.NormNum.inferCharZeroOfAddMonoidWithOne? + def Mathlib.Meta.NormNum.inferCharZeroOfDivisionRing + def Mathlib.Meta.NormNum.inferCharZeroOfDivisionRing? + def Mathlib.Meta.NormNum.inferCharZeroOfRing + def Mathlib.Meta.NormNum.inferCharZeroOfRing? + theorem Mathlib.Meta.NormNum.isInt_ratCast + theorem Mathlib.Meta.NormNum.isNat_ratCast + theorem Mathlib.Meta.NormNum.isRat_inv_neg + theorem Mathlib.Meta.NormNum.isRat_inv_neg_one + theorem Mathlib.Meta.NormNum.isRat_inv_one + theorem Mathlib.Meta.NormNum.isRat_inv_pos + theorem Mathlib.Meta.NormNum.isRat_inv_zero + theorem Mathlib.Meta.NormNum.isRat_ratCast Added Mathlib/Tactic/NormNum/OfScientific.lean + def Mathlib.Meta.NormNum.evalOfScientific + theorem Mathlib.Meta.NormNum.isNat_ofScientific_of_false + theorem Mathlib.Meta.NormNum.isRat_ofScientific_of_true Deleted Mathlib/Tactic/NormNum/OrderedRing.lean - def Mathlib.Meta.NormNum.inferLinearOrderedField - def Mathlib.Meta.NormNum.inferOrderedRing - def Mathlib.Meta.NormNum.inferOrderedSemiring Added Mathlib/Tactic/NormNum/Pow.lean + theorem Mathlib.Meta.NormNum.IsNatPowT.bit0 + theorem Mathlib.Meta.NormNum.IsNatPowT.bit1 + theorem Mathlib.Meta.NormNum.IsNatPowT.run + theorem Mathlib.Meta.NormNum.IsNatPowT.trans + structure Mathlib.Meta.NormNum.IsNatPowT + def Mathlib.Meta.NormNum.evalPow + theorem Mathlib.Meta.NormNum.intPow_negOfNat_bit0 + theorem Mathlib.Meta.NormNum.intPow_negOfNat_bit1 + theorem Mathlib.Meta.NormNum.intPow_ofNat + theorem Mathlib.Meta.NormNum.isInt_pow + theorem Mathlib.Meta.NormNum.isNat_pow + theorem Mathlib.Meta.NormNum.isRat_pow + theorem Mathlib.Meta.NormNum.natPow_one + theorem Mathlib.Meta.NormNum.natPow_zero + theorem Mathlib.Meta.NormNum.one_natPow + theorem Mathlib.Meta.NormNum.zero_natPow Modified Mathlib/Tactic/Ring/Basic.lean Modified test/GCongr/inequalities.lean 2023-09-08 08:48:06 257d54b feat: a few lemmas on continuous functions (#7005) Topological prerequisites for Rademacher theorem in #7003. ESTIMATED CHANGES Modified Mathlib/Analysis/Complex/LocallyUniformLimit.lean Modified Mathlib/Analysis/Normed/Group/Basic.lean + theorem HasCompactMulSupport.exists_bound_of_continuous Modified Mathlib/Analysis/NormedSpace/BoundedLinearMaps.lean + theorem Continuous.clm_apply + theorem ContinuousOn.clm_apply Modified Mathlib/Topology/ContinuousOn.lean + theorem ContinuousWithinAt.preimage_mem_nhdsWithin'' Modified Mathlib/Topology/MetricSpace/HausdorffDistance.lean 2023-09-08 07:26:19 20cab64 feat: ZMod.castHom_self (#7013) drive-by: typo ESTIMATED CHANGES Modified Mathlib/Data/ZMod/Basic.lean + theorem ZMod.castHom_self 2023-09-08 07:26:18 8cad453 feat: Functoriality of `WithUpperSetTopology` (#6988) A monotone map between preorders spaces induces a continuous map between themselves considered with the upper set topology. Similarly for the lower set topology. ESTIMATED CHANGES Modified Mathlib/Topology/Order/UpperLowerSetTopology.lean + theorem WithLowerSetTopology.IsLowerSet_toLowerSet_preimage + theorem WithLowerSetTopology.isOpen_ofLowerSet_preimage + def WithLowerSetTopology.map + theorem WithLowerSetTopology.map_comp + theorem WithLowerSetTopology.map_id + theorem WithLowerSetTopology.ofLowerSet_le_ofLowerSet + theorem WithLowerSetTopology.toLowerSet_specializes_toLowerSet +/- def WithLowerSetTopology + theorem WithUpperSetTopology.IsUpperSet_toUpperSet_preimage + theorem WithUpperSetTopology.isOpen_ofUpperSet_preimage + def WithUpperSetTopology.map + theorem WithUpperSetTopology.map_comp + theorem WithUpperSetTopology.map_id + theorem WithUpperSetTopology.ofUpperSet_le_ofUpperSet + theorem WithUpperSetTopology.toUpperSet_specializes_toUpperSet +/- def WithUpperSetTopology 2023-09-08 07:26:17 1366b4e chore(Tactic/Basic): add `pp_with_univ` to some builtin types (#6684) These can't go in the same file as where `pp_with_univ` is defined, so here seems as good as anywhere. This means `ULift A` now prints as `ULift.{v,u} A`. Ideally it would print as `ULift.{v} A` ([Zulip thread](https://leanprover.zulipchat.com/#narrow/stream/113488-general/topic/pp_with_univ.20for.20only.20some.20universe.20arguments/near/386153934)), but this is a problem with pretty much every current use of `pp_with_univ`. ESTIMATED CHANGES Modified Mathlib/Tactic/Basic.lean 2023-09-08 07:26:16 e79d2a7 fix: remove simp from BoundedFormula.subst and add to realize_subst (#6635) `mapTermRel` doesn't have any nice simp lemmas about it, so it's best not to unfold subst. ESTIMATED CHANGES Modified Mathlib/ModelTheory/Semantics.lean Modified Mathlib/ModelTheory/Syntax.lean 2023-09-08 07:26:15 a58dc4f feat(ModelTheory): models_of_models_theory (#6566) ESTIMATED CHANGES Modified Mathlib/ModelTheory/Satisfiability.lean + theorem FirstOrder.Language.Theory.models_of_models_theory 2023-09-08 07:26:13 4257c45 feat(ModelTheory/Definability): equivalence with an alternative definition (#6558) ESTIMATED CHANGES Modified Mathlib/ModelTheory/Definability.lean + theorem Set.definable_iff_exists_formula_sum 2023-09-08 06:14:16 d56176f chore: bump to Lean v4.0.0 (#7024) ESTIMATED CHANGES Modified lean-toolchain 2023-09-08 04:16:23 4df62d3 feat: add Finsupp.sum_cons (#6604) Adds `Finsupp.sum_cons`. Analogous to `Fin.sum_cons`, but for the Finsupp version. ESTIMATED CHANGES Modified Mathlib/Algebra/BigOperators/Finsupp.lean + theorem Finsupp.sum_cons' + theorem Finsupp.sum_cons 2023-09-07 23:49:37 9afc13a feat: add an error when eqns will not have desired effect (#7019) Due to the implementation at https://github.com/leanprover/lean4/blob/a7efe5b60e86b26fefd4795b46d66af369b97329/src/Lean/Meta/Eqns.lean#L83-L96 currently registering eqns will not work if lean already registered some eqns itself. As a bandaid we make the eqns attribute check and error in this case. ESTIMATED CHANGES Modified Mathlib/Tactic/Eqns.lean Modified test/eqns.lean + def t + theorem t_def' + theorem t_def 2023-09-07 22:31:27 bdc47f6 chore: avoid lean3 style have/suffices (#6964) Many proofs use the "stream of consciousness" style from Lean 3, rather than `have ... := ` or `suffices ... from/by`. This PR updates a fraction of these to the preferred Lean 4 style. I think a good goal would be to delete the "deferred" versions of `have`, `suffices`, and `let` at the bottom of `Mathlib.Tactic.Have` (Anyone who would like to contribute more cleanup is welcome to push directly to this branch.) ESTIMATED CHANGES Modified Mathlib/Algebra/GCDMonoid/Basic.lean Modified Mathlib/CategoryTheory/Abelian/NonPreadditive.lean Modified Mathlib/CategoryTheory/Adjunction/FullyFaithful.lean Modified Mathlib/CategoryTheory/Closed/Cartesian.lean Modified Mathlib/CategoryTheory/ConnectedComponents.lean Modified Mathlib/CategoryTheory/Limits/FilteredColimitCommutesFiniteLimit.lean Modified Mathlib/CategoryTheory/Limits/Final.lean Modified Mathlib/CategoryTheory/Limits/KanExtension.lean Modified Mathlib/CategoryTheory/Limits/Shapes/RegularMono.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Types.lean Modified Mathlib/CategoryTheory/Monoidal/Rigid/Basic.lean Modified Mathlib/CategoryTheory/Subobject/MonoOver.lean Modified Mathlib/Combinatorics/HalesJewett.lean Modified Mathlib/Computability/Primrec.lean Modified Mathlib/Computability/TuringMachine.lean Modified Mathlib/Control/Fix.lean Modified Mathlib/Control/LawfulFix.lean Modified Mathlib/Data/Bitvec/Lemmas.lean Modified Mathlib/Data/Bool/Count.lean Modified Mathlib/Data/FinEnum.lean Modified Mathlib/Data/Finset/NatAntidiagonal.lean Modified Mathlib/Data/List/Basic.lean Modified Mathlib/Data/List/Chain.lean Modified Mathlib/Data/List/EditDistance/Bounds.lean Modified Mathlib/Data/List/EditDistance/Estimator.lean Modified Mathlib/Data/List/Indexes.lean Modified Mathlib/Data/List/Perm.lean Modified Mathlib/Data/List/Rotate.lean Modified Mathlib/Data/Multiset/Basic.lean Modified Mathlib/Data/Nat/Bitwise.lean Modified Mathlib/Data/Nat/Choose/Basic.lean Modified Mathlib/Data/Nat/Factorial/Basic.lean Modified Mathlib/Data/Nat/ForSqrt.lean Modified Mathlib/Data/Num/Lemmas.lean Modified Mathlib/Data/Ordmap/Ordset.lean Modified Mathlib/Data/Rat/Floor.lean Modified Mathlib/Data/Real/Basic.lean Modified Mathlib/Data/Real/CauSeq.lean Modified Mathlib/Data/Set/Equitable.lean Modified Mathlib/Data/Set/Intervals/OrdConnectedComponent.lean Modified Mathlib/Data/TypeVec.lean Modified Mathlib/Dynamics/PeriodicPts.lean Modified Mathlib/GroupTheory/Archimedean.lean Modified Mathlib/NumberTheory/FrobeniusNumber.lean Modified Mathlib/Order/Disjointed.lean Modified Mathlib/Order/Filter/Basic.lean Modified Mathlib/Order/FixedPoints.lean Modified Mathlib/Order/PrimeIdeal.lean Modified Mathlib/Order/SuccPred/Basic.lean Modified Mathlib/Order/SuccPred/LinearLocallyFinite.lean Modified Mathlib/Order/SupIndep.lean Modified Mathlib/SetTheory/Game/PGame.lean Modified Mathlib/Tactic/NormNum/Prime.lean 2023-09-07 21:19:51 2fe0c1c feat: multiplication on the right preserves left invariant measures (#6071) The image of a left invariant measure under right addition is left invariant, and if the measure was a Haar measure it is stays a Haar measure. ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Group/Action.lean + theorem MeasureTheory.smulInvariantMeasure_map Modified Mathlib/MeasureTheory/Group/Measure.lean + theorem MeasureTheory.isMulLeftInvariant_map_smul + theorem MeasureTheory.isMulRightInvariant_map_smul 2023-09-07 20:17:21 a8cb502 chore: tidy various files (#7017) ESTIMATED CHANGES Modified Mathlib/Algebra/Module/Zlattice.lean - def Zspan.QuotientEquiv + def Zspan.fractRestrict + theorem Zspan.fractRestrict_apply + theorem Zspan.fractRestrict_surjective - def Zspan.fract_restrict - theorem Zspan.fract_restrict_apply - theorem Zspan.fract_restrict_surjective + def Zspan.quotientEquiv Modified Mathlib/Algebra/Order/CompleteField.lean Modified Mathlib/Analysis/NormedSpace/Connected.lean Modified Mathlib/Analysis/NormedSpace/OperatorNorm.lean Modified Mathlib/CategoryTheory/Monoidal/Internal/Limits.lean Modified Mathlib/CategoryTheory/Monoidal/Internal/Module.lean Modified Mathlib/Data/Matrix/Invertible.lean Modified Mathlib/Data/Nat/Squarefree.lean Modified Mathlib/Data/PFun.lean Modified Mathlib/LinearAlgebra/Dimension.lean + theorem exists_linearIndependent_cons_of_lt_rank + theorem exists_linearIndependent_pair_of_one_lt_rank + theorem exists_linearIndependent_snoc_of_lt_rank - theorem exists_linear_independent_cons_of_lt_rank - theorem exists_linear_independent_pair_of_one_lt_rank - theorem exists_linear_independent_snoc_of_lt_rank Modified Mathlib/LinearAlgebra/FiniteDimensional.lean Modified Mathlib/LinearAlgebra/Finrank.lean + theorem exists_linearIndependent_cons_of_lt_finrank + theorem exists_linearIndependent_pair_of_one_lt_finrank + theorem exists_linearIndependent_snoc_of_lt_finrank - theorem exists_linear_independent_cons_of_lt_finrank - theorem exists_linear_independent_pair_of_one_lt_finrank - theorem exists_linear_independent_snoc_of_lt_finrank Modified Mathlib/MeasureTheory/Function/LpSeminorm.lean Modified Mathlib/MeasureTheory/Integral/Average.lean Modified Mathlib/RingTheory/Localization/Basic.lean +/- def Localization.mkAddMonoidHom Modified Mathlib/RingTheory/TensorProduct.lean Modified Mathlib/Topology/Algebra/Module/Cardinality.lean + theorem cardinal_eq_of_isOpen - theorem cardinal_eq_of_is_open + theorem continuum_le_cardinal_of_isOpen - theorem continuum_le_cardinal_of_is_open Modified Mathlib/Topology/Category/Stonean/EffectiveEpi.lean 2023-09-07 19:25:07 f599dc2 feat: measurability of the derivative of a function depending on a parameter (#6903) We reuse the main results that were proved for functions not depending on a parameter (but we need to tweak the definition of the set `A` to let it cover all cases, replacing a large inequality by a strict one). ESTIMATED CHANGES Modified Mathlib/Analysis/Calculus/FDeriv/Measurable.lean + theorem FDerivMeasurableAux.A_mono + theorem FDerivMeasurableAux.D_subset_differentiable_set - theorem FDerivMeasurableAux.a_mono - theorem FDerivMeasurableAux.d_subset_differentiable_set + theorem FDerivMeasurableAux.differentiable_set_eq_D - theorem FDerivMeasurableAux.differentiable_set_eq_d + theorem FDerivMeasurableAux.differentiable_set_subset_D - theorem FDerivMeasurableAux.differentiable_set_subset_d + theorem FDerivMeasurableAux.isOpen_A + theorem FDerivMeasurableAux.isOpen_A_with_param + theorem FDerivMeasurableAux.isOpen_B + theorem FDerivMeasurableAux.isOpen_B_with_param - theorem FDerivMeasurableAux.isOpen_a - theorem FDerivMeasurableAux.isOpen_b + theorem FDerivMeasurableAux.le_of_mem_A - theorem FDerivMeasurableAux.le_of_mem_a + theorem FDerivMeasurableAux.mem_A_of_differentiable - theorem FDerivMeasurableAux.mem_a_of_differentiable + theorem FDerivMeasurableAux.norm_sub_le_of_mem_A - theorem FDerivMeasurableAux.norm_sub_le_of_mem_a + theorem RightDerivMeasurableAux.A_mem_nhdsWithin_Ioi + theorem RightDerivMeasurableAux.A_mono + theorem RightDerivMeasurableAux.B_mem_nhdsWithin_Ioi + theorem RightDerivMeasurableAux.D_subset_differentiable_set - theorem RightDerivMeasurableAux.a_mem_nhdsWithin_Ioi - theorem RightDerivMeasurableAux.a_mono - theorem RightDerivMeasurableAux.b_mem_nhdsWithin_Ioi - theorem RightDerivMeasurableAux.d_subset_differentiable_set + theorem RightDerivMeasurableAux.differentiable_set_eq_D - theorem RightDerivMeasurableAux.differentiable_set_eq_d + theorem RightDerivMeasurableAux.differentiable_set_subset_D - theorem RightDerivMeasurableAux.differentiable_set_subset_d + theorem RightDerivMeasurableAux.le_of_mem_A - theorem RightDerivMeasurableAux.le_of_mem_a + theorem RightDerivMeasurableAux.measurableSet_B - theorem RightDerivMeasurableAux.measurableSet_b + theorem RightDerivMeasurableAux.mem_A_of_differentiable - theorem RightDerivMeasurableAux.mem_a_of_differentiable + theorem RightDerivMeasurableAux.norm_sub_le_of_mem_A - theorem RightDerivMeasurableAux.norm_sub_le_of_mem_a + theorem aemeasurable_deriv_with_param + theorem aestronglyMeasurable_deriv_with_param + theorem measurableSet_of_differentiableAt_of_isComplete_with_param + theorem measurableSet_of_differentiableAt_with_param + theorem measurable_deriv_with_param + theorem measurable_fderiv_apply_const_with_param + theorem measurable_fderiv_with_param + theorem stronglyMeasurable_deriv_with_param Modified Mathlib/Analysis/NormedSpace/FiniteDimension.lean + theorem finiteDimensional_of_locallyCompactSpace + theorem properSpace_of_locallyCompactSpace Modified Mathlib/Topology/MetricSpace/Basic.lean + theorem Metric.eventually_isCompact_closedBall + theorem Metric.exists_isCompact_closedBall Modified Mathlib/Topology/UniformSpace/Basic.lean + theorem Uniform.exists_is_open_mem_uniformity_of_forall_mem_eq 2023-09-07 12:30:45 cc97d0d feat: control labels from comments (#7012) Same implementation as at Lean and Std, by request from @jcommelin. ESTIMATED CHANGES Added .github/workflows/labels_from_comment.yml 2023-09-07 12:30:43 23ffa51 chore: tidy various files (#7009) ESTIMATED CHANGES Modified Counterexamples/Monic_nonRegular.lean Modified Mathlib/Algebra/Algebra/Basic.lean Modified Mathlib/Algebra/Algebra/Opposite.lean Modified Mathlib/Algebra/Free.lean Modified Mathlib/Analysis/Calculus/Inverse.lean Modified Mathlib/Analysis/InnerProductSpace/Orientation.lean Modified Mathlib/Data/Part.lean Modified Mathlib/Data/Seq/Computation.lean Modified Mathlib/Data/Seq/WSeq.lean Modified Mathlib/Geometry/Manifold/ContMDiffMFDeriv.lean Modified Mathlib/Geometry/Manifold/Instances/Sphere.lean Modified Mathlib/LinearAlgebra/QuadraticForm/Basic.lean - theorem QuadraticForm.posDefOfNonneg + theorem QuadraticForm.posDef_of_nonneg Modified Mathlib/Logic/IsEmpty.lean Modified Mathlib/MeasureTheory/Function/ConvergenceInMeasure.lean - theorem MeasureTheory.TendstoInMeasure.aeMeasurable + theorem MeasureTheory.TendstoInMeasure.aemeasurable Modified Mathlib/MeasureTheory/Integral/IntervalIntegral.lean Modified Mathlib/MeasureTheory/Integral/VitaliCaratheodory.lean Modified Mathlib/Probability/Independence/Kernel.lean Modified Mathlib/Tactic/HaveI.lean Modified Mathlib/Topology/Category/CompHaus/EffectiveEpi.lean Modified Mathlib/Topology/ExtremallyDisconnected.lean - theorem ExtremallyDisconnected.disjoint_closure_of_disjoint_IsOpen + theorem ExtremallyDisconnected.disjoint_closure_of_disjoint_isOpen Modified Mathlib/Topology/Homotopy/HSpaces.lean Modified docs/Conv/Guide.lean 2023-09-07 12:30:42 4f3418a chore: delay import of Tactic.Common (#7000) I know that this is contrary to what we've done previously, but: * I'm trying to upstream a great many tactics from Mathlib to Std (essentially, everything that non-mathematicians want too). * This makes it much easier for me to see what is going on, and understand the import requirements (particularly for the "big" tactics `norm_num` / `ring` / `linarith`) * It's actually not as bad as it looks here, because as these tactics move up to Std they will start disappearing again from explicit imports, but Mathlib can happily import all of Std. (Oh ESTIMATED CHANGES Modified Archive/Imo/Imo2011Q5.lean Modified Mathlib/Algebra/GCDMonoid/Basic.lean Modified Mathlib/Algebra/Group/Basic.lean Modified Mathlib/Algebra/Group/Opposite.lean Modified Mathlib/Algebra/Group/Units.lean Modified Mathlib/Algebra/GroupWithZero/Units/Basic.lean Modified Mathlib/Algebra/Order/Monoid/Lemmas.lean Modified Mathlib/Algebra/Regular/Basic.lean Modified Mathlib/CategoryTheory/Category/Basic.lean Modified Mathlib/Combinatorics/Quiver/Basic.lean Modified Mathlib/Combinatorics/Quiver/Covering.lean Modified Mathlib/Control/EquivFunctor.lean Modified Mathlib/Control/Fix.lean Modified Mathlib/Data/Countable/Defs.lean Modified Mathlib/Data/Int/Units.lean Modified Mathlib/Data/List/Basic.lean Modified Mathlib/Data/Nat/Basic.lean Modified Mathlib/Data/Nat/Cast/Field.lean Modified Mathlib/Data/Nat/Factorial/Basic.lean Modified Mathlib/Data/Nat/ForSqrt.lean Modified Mathlib/Data/Nat/MaxPowDiv.lean Modified Mathlib/Data/Option/Basic.lean Modified Mathlib/Data/PNat/Defs.lean Modified Mathlib/Data/Pi/Algebra.lean Modified Mathlib/Data/Prod/Basic.lean Modified Mathlib/Data/Rat/Lemmas.lean Modified Mathlib/Data/Set/Basic.lean Modified Mathlib/Data/Set/Enumerate.lean Modified Mathlib/Data/Set/Intervals/UnorderedInterval.lean Modified Mathlib/Data/Set/Pointwise/Basic.lean Modified Mathlib/Logic/Equiv/Basic.lean Modified Mathlib/Logic/Equiv/Defs.lean Modified Mathlib/Logic/Equiv/Option.lean Modified Mathlib/Logic/Nontrivial/Basic.lean Modified Mathlib/Logic/Relation.lean Modified Mathlib/Logic/Unique.lean Modified Mathlib/Order/Basic.lean Modified Mathlib/Order/BoundedOrder.lean Modified Mathlib/Order/Heyting/Boundary.lean Modified Mathlib/Order/Monotone/Basic.lean Modified Mathlib/Order/WithBot.lean Modified Mathlib/Tactic/NormNum/Basic.lean Modified test/Simps.lean Modified test/byContra.lean 2023-09-07 11:10:14 c719310 feat: sups and limsups are measurable in conditionally complete linear orders (#6979) Currently, we only have that sups and limsups are measurable in complete linear orders, which excludes the main case of the real line. With more complicated proofs, these measurability results can be extended to all conditionally complete linear orders, without any further assumption in the statements. ESTIMATED CHANGES Modified Mathlib/Data/Set/Lattice.lean + theorem Set.nonempty_iInter_Ici_iff + theorem Set.nonempty_iInter_Iic_iff Modified Mathlib/MeasureTheory/Constructions/BorelSpace/Basic.lean +/- theorem Measurable.iInf_Prop +/- theorem Measurable.iSup_Prop + theorem Measurable.isGLB_of_mem + theorem Measurable.isLUB_of_mem + theorem measurableSet_bddAbove_range + theorem measurableSet_bddBelow_range - theorem measurable_cInf - theorem measurable_cSup - theorem measurable_ciInf - theorem measurable_ciSup +/- theorem measurable_liminf' + theorem measurable_sInf + theorem measurable_sSup Modified Mathlib/MeasureTheory/Integral/Lebesgue.lean Modified Mathlib/Order/LiminfLimsup.lean + theorem Filter.HasBasis.liminf_eq_ciSup_ciInf + theorem Filter.HasBasis.liminf_eq_ite + theorem Filter.HasBasis.liminf_eq_sSup_iUnion_iInter + theorem Filter.HasBasis.liminf_eq_sSup_univ_of_empty + theorem Filter.HasBasis.limsup_eq_ciInf_ciSup + theorem Filter.HasBasis.limsup_eq_ite + theorem Filter.HasBasis.limsup_eq_sInf_iUnion_iInter + theorem Filter.HasBasis.limsup_eq_sInf_univ_of_empty Modified Mathlib/Probability/Kernel/CondCdf.lean 2023-09-07 09:49:32 f0c7f6d chore: split Data.Rat.Cast (#7001) ESTIMATED CHANGES Modified Archive/OxfordInvariants/Summer2021/Week3P1.lean Modified Mathlib.lean Modified Mathlib/Algebra/Algebra/Basic.lean Modified Mathlib/Algebra/ContinuedFractions/ConvergentsEquiv.lean Modified Mathlib/Algebra/Star/Basic.lean Modified Mathlib/Combinatorics/SimpleGraph/Density.lean Modified Mathlib/Data/Rat/BigOperators.lean Added Mathlib/Data/Rat/Cast/CharZero.lean + def Rat.castHom + theorem Rat.cast_add + theorem Rat.cast_bit0 + theorem Rat.cast_bit1 + theorem Rat.cast_div + theorem Rat.cast_eq_zero + theorem Rat.cast_inj + theorem Rat.cast_injective + theorem Rat.cast_inv + theorem Rat.cast_mk + theorem Rat.cast_mul + theorem Rat.cast_ne_zero + theorem Rat.cast_pow + theorem Rat.cast_sub + theorem Rat.cast_zpow + theorem Rat.coe_cast_hom Renamed Mathlib/Data/Rat/Cast.lean to Mathlib/Data/Rat/Cast/Defs.lean - def Rat.castHom - def Rat.castOrderEmbedding - theorem Rat.cast_abs - theorem Rat.cast_add - theorem Rat.cast_bit0 - theorem Rat.cast_bit1 - theorem Rat.cast_div - theorem Rat.cast_eq_zero - theorem Rat.cast_hom_rat - theorem Rat.cast_inj - theorem Rat.cast_injective - theorem Rat.cast_inv - theorem Rat.cast_le - theorem Rat.cast_lt - theorem Rat.cast_lt_zero - theorem Rat.cast_max - theorem Rat.cast_min - theorem Rat.cast_mk - theorem Rat.cast_mono - theorem Rat.cast_mul - theorem Rat.cast_ne_zero - theorem Rat.cast_nonneg - theorem Rat.cast_nonpos - theorem Rat.cast_pos - theorem Rat.cast_pos_of_pos - theorem Rat.cast_pow - theorem Rat.cast_strictMono - theorem Rat.cast_sub - theorem Rat.cast_zpow - theorem Rat.coe_cast_hom - theorem Rat.preimage_cast_Icc - theorem Rat.preimage_cast_Ici - theorem Rat.preimage_cast_Ico - theorem Rat.preimage_cast_Iic - theorem Rat.preimage_cast_Iio - theorem Rat.preimage_cast_Ioc - theorem Rat.preimage_cast_Ioi - theorem Rat.preimage_cast_Ioo Added Mathlib/Data/Rat/Cast/Order.lean + def Rat.castOrderEmbedding + theorem Rat.cast_abs + theorem Rat.cast_hom_rat + theorem Rat.cast_le + theorem Rat.cast_lt + theorem Rat.cast_lt_zero + theorem Rat.cast_max + theorem Rat.cast_min + theorem Rat.cast_mono + theorem Rat.cast_nonneg + theorem Rat.cast_nonpos + theorem Rat.cast_pos + theorem Rat.cast_pos_of_pos + theorem Rat.cast_strictMono + theorem Rat.preimage_cast_Icc + theorem Rat.preimage_cast_Ici + theorem Rat.preimage_cast_Ico + theorem Rat.preimage_cast_Iic + theorem Rat.preimage_cast_Iio + theorem Rat.preimage_cast_Ioc + theorem Rat.preimage_cast_Ioi + theorem Rat.preimage_cast_Ioo Modified Mathlib/Data/Rat/Denumerable.lean Modified Mathlib/Data/Rat/Floor.lean Modified Mathlib/Data/Rat/Star.lean Modified Mathlib/Tactic/CancelDenoms.lean Modified Mathlib/Tactic/NormNum.lean Modified Mathlib/Tactic/NormNum/Basic.lean Modified Mathlib/Tactic/Qify.lean Modified Mathlib/Tactic/Ring/Basic.lean Modified test/norm_cast.lean 2023-09-07 07:07:24 4e5902a chore: avoid using cases' early (#6997) This will help with my cleanup of the early library, facilitating moving tactics upstream. ESTIMATED CHANGES Modified Mathlib/Data/Sum/Basic.lean Modified Mathlib/Logic/Function/Basic.lean Modified Mathlib/Logic/Function/Iterate.lean 2023-09-07 05:43:50 cdd09f0 feat: add an instance for `T3Space` (#6861) Add an instance `[T0Space α] [RegularSpace α] : T3Space α`, drop now unneeded lemmas like `TopologicalGroup.t3Space`. ESTIMATED CHANGES Modified Mathlib/Analysis/BoxIntegral/Integrability.lean Modified Mathlib/Topology/Algebra/Group/Basic.lean - theorem TopologicalGroup.t2Space - theorem TopologicalGroup.t3Space Modified Mathlib/Topology/Algebra/InfiniteSum/Basic.lean Modified Mathlib/Topology/Separation.lean 2023-09-07 05:09:55 9aca15d feat : Stacks: Lemma 0052 (3) irreducible component of noetherian space contains a nonempty open subset (#6881) any irreducible components of a noetherian space contains a nonempty open subset ESTIMATED CHANGES Modified Mathlib/Topology/NoetherianSpace.lean + theorem TopologicalSpace.NoetherianSpace.exists_open_ne_empty_le_irreducibleComponent 2023-09-07 00:04:57 844436b feat: WithTop.charZero (#6992) Also `WithBot.charZero` ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Monoid/WithTop.lean Modified Mathlib/Algebra/Polynomial/BigOperators.lean Modified Mathlib/Data/Polynomial/Degree/CardPowDegree.lean Modified Mathlib/Data/Polynomial/Degree/Definitions.lean Modified Mathlib/Data/Polynomial/Degree/Lemmas.lean Modified Mathlib/Data/Polynomial/Derivative.lean Modified Mathlib/Data/Polynomial/Div.lean Modified Mathlib/Data/Polynomial/Monic.lean Modified Mathlib/Data/Polynomial/Reverse.lean Modified Mathlib/Data/Polynomial/RingDivision.lean Modified Mathlib/LinearAlgebra/Matrix/Charpoly/Coeff.lean Modified Mathlib/RingTheory/AdjoinRoot.lean Modified Mathlib/RingTheory/EisensteinCriterion.lean Modified Mathlib/RingTheory/Polynomial/Basic.lean Modified Mathlib/RingTheory/Polynomial/Content.lean 2023-09-07 00:04:56 bf8d6d9 feat(LinearAlgebra/Lagrange): Generalize typeclasses. (#6714) Generalize some key definitions in the definition of Lagrange interpolation. In particular, the definition of the nodal polynomial does not need to be over a field. ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/Lagrange.lean +/- theorem Lagrange.X_sub_C_dvd_nodal +/- theorem Lagrange.degree_nodal +/- theorem Lagrange.derivative_nodal +/- theorem Lagrange.eval_nodal +/- theorem Lagrange.eval_nodal_at_node +/- theorem Lagrange.eval_nodal_derivative_eval_node_eq +/- theorem Lagrange.eval_nodal_not_at_node + theorem Lagrange.natDegree_nodal +/- def Lagrange.nodal +/- theorem Lagrange.nodal_eq +/- theorem Lagrange.nodal_eq_mul_nodal_erase +/- theorem Lagrange.nodal_insert_eq_nodal + theorem Lagrange.nodal_ne_zero +/- theorem Lagrange.nodal_subgroup_eq_X_pow_card_sub_one 2023-09-07 00:04:55 6079a14 refactor(FieldTheory/NormalClosure): change definition and add API (#6163) This PR adds API and changes the definition of the normal closure of $F\leq K\leq L$ to be an intermediate field of L/F, rather than an intermediate field of L/K. For example, I think it would be more common to say that the normal closure of $\mathbb{Q}(\sqrt[3]{2})/\mathbb{Q}$ is $\mathbb{Q}(\sqrt[3]{2},\zeta_3)/\mathbb{Q}$ rather than $\mathbb{Q}(\sqrt[3]{2},\zeta_3)/\mathbb{Q}(\sqrt[3]{2})$. This change also means that the normal closure goes from being a dependent function `(K : Type) → IntermediateField K L` to being a non-dependent function `Type → IntermediateField F L`, making it easier to compare across the Galois corespondence. Supersedes https://github.com/leanprover-community/mathlib/pull/18971 ESTIMATED CHANGES Modified Mathlib/FieldTheory/IntermediateField.lean + theorem IntermediateField.map_mono Modified Mathlib/FieldTheory/KrullTopology.lean - theorem IntermediateField.map_mono Modified Mathlib/FieldTheory/NormalClosure.lean + theorem AlgHom.fieldRange_le_normalClosure + theorem IntermediateField.le_normalClosure + theorem IntermediateField.normalClosure_def'' + theorem IntermediateField.normalClosure_def' + theorem IntermediateField.normalClosure_mono + theorem IntermediateField.normalClosure_of_normal + theorem IntermediateField.normal_iff_forall_fieldRange_eq + theorem IntermediateField.normal_iff_forall_fieldRange_le + theorem IntermediateField.normal_iff_forall_map_eq' + theorem IntermediateField.normal_iff_forall_map_eq + theorem IntermediateField.normal_iff_forall_map_le' + theorem IntermediateField.normal_iff_forall_map_le + theorem IntermediateField.normal_iff_normalClosure_eq + theorem IntermediateField.normal_iff_normalClosure_le + theorem normalClosure.restrictScalars_eq + theorem normalClosure_def + theorem normalClosure_le_iff 2023-09-06 23:43:34 2c0daa9 feat: Category of Alexandrov-discrete spaces (#6986) Define `AlexDisc`, the category of Alexandrov-discrete topological spaces with continuous maps. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Topology/Order/Category/AlexDisc.lean + def AlexDisc.Iso.mk + theorem AlexDisc.coe_forgetToTop + theorem AlexDisc.coe_of + theorem AlexDisc.forgetToTop_of + def AlexDisc.of + def AlexDisc 2023-09-06 23:43:33 36c3259 feat: Type synonym for the specialisation order (#6985) Define `Specialization α` for a topological space `α` and equip it with the specialisation order. This constitutes a functor from topological spaces to preorders, and T₀ spaces to partial orders. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Topology/Specialization.lean + def Specialization.map + theorem Specialization.map_comp + theorem Specialization.map_id + def Specialization.ofEquiv + theorem Specialization.ofEquiv_inj + theorem Specialization.ofEquiv_specializes_ofEquiv + theorem Specialization.ofEquiv_symm + theorem Specialization.ofEquiv_toEquiv + def Specialization.toEquiv + theorem Specialization.toEquiv_inj + theorem Specialization.toEquiv_le_toEquiv + theorem Specialization.toEquiv_ofEquiv + theorem Specialization.toEquiv_symm + def Specialization 2023-09-06 22:20:07 8f46576 chore: cleanup in Mathlib.Init (#6977) ESTIMATED CHANGES Modified Archive/Arithcc.lean Modified Mathlib.lean Modified Mathlib/Algebra/CharZero/Defs.lean Modified Mathlib/Algebra/Field/Defs.lean Modified Mathlib/Algebra/Field/IsField.lean Modified Mathlib/Algebra/Group/Basic.lean Modified Mathlib/Algebra/Group/Defs.lean Modified Mathlib/Algebra/NeZero.lean Modified Mathlib/Algebra/Ring/Defs.lean Modified Mathlib/Control/Random.lean Modified Mathlib/Data/Char.lean Modified Mathlib/Data/FunLike/Basic.lean Modified Mathlib/Data/Int/Cast/Basic.lean Modified Mathlib/Data/Nat/Basic.lean Modified Mathlib/Data/Nat/Cast/Defs.lean Modified Mathlib/Data/Option/Basic.lean Modified Mathlib/Data/PNat/Defs.lean Modified Mathlib/Init/Data/Int/Order.lean Modified Mathlib/Init/Data/Nat/Lemmas.lean - def Nat.iterate Renamed Mathlib/Init/Algebra/Order.lean to Mathlib/Init/Order/Defs.lean Renamed Mathlib/Init/Algebra/Functions.lean to Mathlib/Init/Order/LinearOrder.lean Modified Mathlib/Logic/Function/Basic.lean - theorem Function.involutive_iff_iter_2_eq_id Modified Mathlib/Logic/Function/Iterate.lean + theorem Function.involutive_iff_iter_2_eq_id + def Nat.iterate Modified Mathlib/Order/Basic.lean Modified Mathlib/Order/Lattice.lean Modified Mathlib/Order/Monotone/Basic.lean Modified Mathlib/Order/RelClasses.lean Modified Mathlib/Tactic/Basic.lean Modified Mathlib/Tactic/GCongr/Core.lean Modified Mathlib/Tactic/PushNeg.lean Modified test/Tauto.lean Modified test/push_neg.lean 2023-09-06 21:54:44 9072536 feat(ModelTheory): iAlls and iExs (#6613) ESTIMATED CHANGES Modified Mathlib/ModelTheory/Semantics.lean + theorem FirstOrder.Language.BoundedFormula.realize_iAlls + theorem FirstOrder.Language.BoundedFormula.realize_iExs + theorem FirstOrder.Language.Formula.realize_iAlls + theorem FirstOrder.Language.Formula.realize_iExs Modified Mathlib/ModelTheory/Syntax.lean 2023-09-06 20:46:35 3ebc913 chore: tidy various files (#6924) ESTIMATED CHANGES Modified Mathlib/Analysis/NormedSpace/lpSpace.lean Modified Mathlib/Data/Set/Intervals/ProjIcc.lean + theorem Set.IccExtend_apply - theorem Set.iccExtend_apply Modified Mathlib/Geometry/Manifold/MFDeriv.lean Modified Mathlib/Logic/Equiv/Array.lean Modified Mathlib/MeasureTheory/Function/LocallyIntegrable.lean Modified Mathlib/MeasureTheory/Integral/FundThmCalculus.lean + theorem intervalIntegral.FTCFilter.finiteAt_inner - theorem intervalIntegral.FTCFilter.finite_at_inner Modified Mathlib/MeasureTheory/Integral/IntegrableOn.lean Modified Mathlib/NumberTheory/Padics/PadicVal.lean Modified Mathlib/Order/WellFoundedSet.lean Modified Mathlib/RingTheory/DedekindDomain/Ideal.lean 2023-09-06 19:23:52 3b8d2c9 feat: `Subsingleton` instances for `*Hom` (#6913) Add `Subsingleton` instances for `OneHom`, `MonoidHom`, and `MonoidWithZeroHom` from a `Subsingleton`. ESTIMATED CHANGES Modified Mathlib/Algebra/Hom/Group.lean + theorem Subsingleton.of_oneHomClass 2023-09-06 17:49:48 566dc2a chore: reduce imports of Data.Nat.Basic (#6974) Slightly delay the import of `Mathlib.Algebra.Group.Basic`, to reduce imports for tactics. ESTIMATED CHANGES Modified Mathlib/Algebra/ContinuedFractions/Translations.lean Modified Mathlib/Algebra/GroupWithZero/Basic.lean - theorem mul_left_inj' - theorem mul_right_inj' Modified Mathlib/Algebra/GroupWithZero/Defs.lean + theorem mul_left_inj' + theorem mul_right_inj' Modified Mathlib/Data/Nat/Basic.lean Modified Mathlib/Data/Nat/Bits.lean Modified Mathlib/Data/Nat/PSub.lean Modified Mathlib/Data/Set/Pointwise/Basic.lean 2023-09-06 16:43:55 5f6506b feat: Monic pochhammer (#6906) ESTIMATED CHANGES Modified Mathlib/RingTheory/Polynomial/Pochhammer.lean + theorem monic_pochhammer 2023-09-06 16:43:53 7878119 feat: port LinearAlgebra.QuadraticForm.Dual (#6885) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/LinearAlgebra/QuadraticForm/Dual.lean + theorem BilinForm.dualProd.toQuadraticForm + def BilinForm.dualProd + theorem BilinForm.isSymm_dualProd + theorem BilinForm.nondenerate_dualProd + def QuadraticForm.dualProd + def QuadraticForm.dualProdIsometry + def QuadraticForm.dualProdProdIsometry + def QuadraticForm.toDualProd + theorem QuadraticForm.toDualProd_isometry 2023-09-06 15:49:45 c672a3f feat: composition of localization functors (#6882) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/CategoryTheory/Arrow.lean Added Mathlib/CategoryTheory/Localization/Composition.lean + theorem CategoryTheory.Functor.IsLocalization.comp + theorem CategoryTheory.Functor.IsLocalization.of_comp + def CategoryTheory.Localization.StrictUniversalPropertyFixedTarget.comp Modified Mathlib/CategoryTheory/Localization/LocalizerMorphism.lean + theorem CategoryTheory.LocalizerMorphism.IsLocalizedEquivalence.of_equivalence 2023-09-06 13:50:44 04ea0a4 feat: `det_vandermonde_add` and `det_vandermonde_sub` (#6812) ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/Vandermonde.lean + theorem Matrix.det_vandermonde_add + theorem Matrix.det_vandermonde_sub 2023-09-06 13:50:43 380bf31 feat(Data/Sum/Basic): create direct versions of get(Left|Right)? analogous to Option.get (#6663) ESTIMATED CHANGES Modified Mathlib/Data/Sum/Basic.lean + theorem Sum.eq_left_getLeft_of_isLeft + theorem Sum.eq_left_iff_getLeft_eq + theorem Sum.eq_right_getRight_of_isRight + theorem Sum.eq_right_iff_getRight_eq + def Sum.getLeft +/- theorem Sum.getLeft?_eq_some_iff + theorem Sum.getLeft_eq_getLeft? + theorem Sum.getLeft_eq_iff + theorem Sum.getLeft_inl + def Sum.getRight +/- theorem Sum.getRight?_eq_some_iff + theorem Sum.getRight_eq_getRight? + theorem Sum.getRight_eq_iff + theorem Sum.getRight_inr + theorem Sum.inl_getLeft + theorem Sum.inr_getRight + theorem Sum.isSome_getLeft?_iff_isLeft + theorem Sum.isSome_getRight?_iff_isRight 2023-09-06 11:21:58 e9d1481 fix: typo in docs (#6983) ESTIMATED CHANGES Modified Mathlib/Algebra/Homology/ShortComplex/LeftHomology.lean 2023-09-06 11:21:57 d67f31e chore: split Mathlib.Algebra.Invertible (#6973) `Mathlib.Algebra.Invertible` is used by fundamental tactics, and this essentially splits it into the part used by `NormNum`, and everything else. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/CharP/Invertible.lean Modified Mathlib/Algebra/GroupPower/Lemmas.lean Modified Mathlib/Algebra/GroupWithZero/Basic.lean - theorem inv_mul_cancel - theorem inv_ne_zero - theorem mul_inv_cancel_left₀ - theorem mul_inv_cancel_right₀ Modified Mathlib/Algebra/GroupWithZero/Defs.lean + theorem mul_inv_cancel_left₀ + theorem mul_inv_cancel_right₀ Modified Mathlib/Algebra/GroupWithZero/NeZero.lean + theorem inv_mul_cancel + theorem inv_ne_zero Deleted Mathlib/Algebra/Invertible.lean - theorem Commute.invOf_left - theorem Commute.invOf_right - theorem Invertible.congr - def Invertible.copy' - def Invertible.copy - def Invertible.map - def Invertible.mul - def Invertible.mulLeft - def Invertible.mulRight - def Invertible.ofLeftInverse - theorem IsUnit.nonempty_invertible - theorem Ring.inverse_invertible - def Units.invertible - theorem commute_invOf - theorem div_mul_cancel_of_invertible - theorem div_self_of_invertible - theorem invOf_div - theorem invOf_eq_group_inv - theorem invOf_eq_inv - theorem invOf_eq_left_inv - theorem invOf_eq_right_inv - theorem invOf_inj - theorem invOf_invOf - theorem invOf_mul - theorem invOf_mul_eq_iff_eq_mul_left - theorem invOf_mul_self' - theorem invOf_mul_self - theorem invOf_mul_self_assoc' - theorem invOf_mul_self_assoc - theorem invOf_neg - theorem invOf_one' - theorem invOf_one - theorem invOf_two_add_invOf_two - theorem invOf_units - theorem inv_mul_cancel_of_invertible - def invertibleDiv - def invertibleEquivOfLeftInverse - def invertibleInv - def invertibleMul - def invertibleNeg - def invertibleOfGroup - def invertibleOfInvertibleMul - def invertibleOfMulInvertible - def invertibleOfNonzero - def invertibleOne - theorem invertible_unique - theorem isUnit_of_invertible - theorem map_invOf - theorem mul_div_cancel_of_invertible - theorem mul_invOf_eq_iff_eq_mul_right - theorem mul_invOf_mul_self_cancel' - theorem mul_invOf_mul_self_cancel - theorem mul_invOf_self' - theorem mul_invOf_self - theorem mul_invOf_self_assoc' - theorem mul_invOf_self_assoc - theorem mul_inv_cancel_of_invertible - theorem mul_left_eq_iff_eq_invOf_mul - theorem mul_left_inj_of_invertible - theorem mul_mul_invOf_self_cancel' - theorem mul_mul_invOf_self_cancel - theorem mul_right_eq_iff_eq_mul_invOf - theorem mul_right_inj_of_invertible - theorem nonempty_invertible_iff_isUnit - theorem nonzero_of_invertible - theorem one_sub_invOf_two - theorem pos_of_invertible_cast - def unitOfInvertible Added Mathlib/Algebra/Invertible/Basic.lean + theorem Commute.invOf_left + theorem Commute.invOf_right + def Invertible.map + def Invertible.mulLeft + def Invertible.mulRight + def Invertible.ofLeftInverse + theorem IsUnit.nonempty_invertible + theorem Ring.inverse_invertible + def Units.invertible + theorem commute_invOf + theorem div_mul_cancel_of_invertible + theorem div_self_of_invertible + theorem invOf_div + theorem invOf_neg + theorem invOf_two_add_invOf_two + theorem invOf_units + def invertibleDiv + def invertibleEquivOfLeftInverse + def invertibleNeg + def invertibleOfInvertibleMul + def invertibleOfMulInvertible + theorem isUnit_of_invertible + theorem map_invOf + theorem mul_div_cancel_of_invertible + theorem nonempty_invertible_iff_isUnit + theorem one_sub_invOf_two + theorem pos_of_invertible_cast + def unitOfInvertible Added Mathlib/Algebra/Invertible/Defs.lean + theorem Invertible.congr + def Invertible.copy' + def Invertible.copy + def Invertible.mul + theorem invOf_eq_group_inv + theorem invOf_eq_left_inv + theorem invOf_eq_right_inv + theorem invOf_inj + theorem invOf_invOf + theorem invOf_mul + theorem invOf_mul_eq_iff_eq_mul_left + theorem invOf_mul_self' + theorem invOf_mul_self + theorem invOf_mul_self_assoc' + theorem invOf_mul_self_assoc + theorem invOf_one' + theorem invOf_one + def invertibleMul + def invertibleOfGroup + def invertibleOne + theorem invertible_unique + theorem mul_invOf_eq_iff_eq_mul_right + theorem mul_invOf_mul_self_cancel' + theorem mul_invOf_mul_self_cancel + theorem mul_invOf_self' + theorem mul_invOf_self + theorem mul_invOf_self_assoc' + theorem mul_invOf_self_assoc + theorem mul_left_eq_iff_eq_invOf_mul + theorem mul_left_inj_of_invertible + theorem mul_mul_invOf_self_cancel' + theorem mul_mul_invOf_self_cancel + theorem mul_right_eq_iff_eq_mul_invOf + theorem mul_right_inj_of_invertible Added Mathlib/Algebra/Invertible/GroupWithZero.lean + theorem invOf_eq_inv + theorem inv_mul_cancel_of_invertible + def invertibleInv + def invertibleOfNonzero + theorem mul_inv_cancel_of_invertible + theorem nonzero_of_invertible Modified Mathlib/Algebra/Lie/Classical.lean Modified Mathlib/Algebra/Order/Invertible.lean Modified Mathlib/Algebra/Order/LatticeGroup.lean Modified Mathlib/CategoryTheory/Linear/Basic.lean Modified Mathlib/Data/Matrix/Invertible.lean Modified Mathlib/LinearAlgebra/AffineSpace/AffineEquiv.lean Modified Mathlib/LinearAlgebra/AffineSpace/Combination.lean Modified Mathlib/LinearAlgebra/AffineSpace/Midpoint.lean Modified Mathlib/LinearAlgebra/QuadraticForm/Basic.lean Modified Mathlib/NumberTheory/ArithmeticFunction.lean Modified Mathlib/RingTheory/AlgebraTower.lean Modified Mathlib/Tactic/NormNum/Core.lean 2023-09-06 11:21:56 73877f4 feat(GroupTheory/CoprodI): add various things (#6900) The main changes made here were - Adding a `cons` constructor to make a new word where the underlying list is just `cons`. Use this to simplify the definition of `rcons` - Defining a `consRecOn` induction principle and use this to simpllify the definition of `equivPairAux`, allowing me to delete the private def `mkAux` - Some lemmas about being an element of `rcons` and `smul` ESTIMATED CHANGES Modified Mathlib/GroupTheory/CoprodI.lean + def Monoid.CoprodI.Word.cons + def Monoid.CoprodI.Word.consRecOn + theorem Monoid.CoprodI.Word.consRecOn_cons + theorem Monoid.CoprodI.Word.consRecOn_empty - theorem Monoid.CoprodI.Word.cons_eq_rcons + theorem Monoid.CoprodI.Word.equivPair_head + theorem Monoid.CoprodI.Word.equivPair_head_smul_equivPair_tail + theorem Monoid.CoprodI.Word.equivPair_smul_same + theorem Monoid.CoprodI.Word.equivPair_tail + theorem Monoid.CoprodI.Word.equivPair_tail_eq_inv_smul + theorem Monoid.CoprodI.Word.fstIdx_cons + theorem Monoid.CoprodI.Word.mem_equivPair_tail_iff + theorem Monoid.CoprodI.Word.mem_of_mem_equivPair_tail + theorem Monoid.CoprodI.Word.mem_rcons_iff + theorem Monoid.CoprodI.Word.mem_smul_iff + theorem Monoid.CoprodI.Word.mem_smul_iff_of_ne + theorem Monoid.CoprodI.Word.prod_cons + theorem Monoid.CoprodI.Word.rcons_eq_smul + theorem Monoid.CoprodI.Word.smul_def + theorem Monoid.CoprodI.Word.smul_eq_of_smul 2023-09-06 11:21:55 c95f05b chore: update/remove heart beat bumps (#6860) We clean up heart beat bumps after #6474. ESTIMATED CHANGES Modified Mathlib/Algebra/Category/FGModuleCat/Basic.lean Modified Mathlib/Algebra/Category/ModuleCat/ChangeOfRings.lean Modified Mathlib/Algebra/Category/ModuleCat/Monoidal/Basic.lean Modified Mathlib/Algebra/DirectLimit.lean Modified Mathlib/Algebra/Homology/DifferentialObject.lean Modified Mathlib/Algebra/Homology/LocalCohomology.lean Modified Mathlib/Algebra/Homology/ModuleCat.lean Modified Mathlib/Algebra/MonoidAlgebra/Grading.lean Modified Mathlib/AlgebraicGeometry/AffineScheme.lean Modified Mathlib/AlgebraicGeometry/Morphisms/QuasiSeparated.lean Modified Mathlib/AlgebraicGeometry/Morphisms/RingHomProperties.lean Modified Mathlib/AlgebraicGeometry/OpenImmersion/Scheme.lean Modified Mathlib/AlgebraicGeometry/Properties.lean Modified Mathlib/Analysis/Analytic/Composition.lean Modified Mathlib/Analysis/Calculus/ContDiff.lean Modified Mathlib/Analysis/Calculus/FDeriv/Symmetric.lean Modified Mathlib/Analysis/Convolution.lean Modified Mathlib/Analysis/InnerProductSpace/Adjoint.lean Modified Mathlib/Analysis/InnerProductSpace/Spectrum.lean Modified Mathlib/Analysis/NormedSpace/Multilinear.lean Modified Mathlib/Analysis/NormedSpace/OperatorNorm.lean Modified Mathlib/Analysis/NormedSpace/Star/ContinuousFunctionalCalculus.lean Modified Mathlib/Analysis/SpecialFunctions/Pow/Deriv.lean Modified Mathlib/Combinatorics/SimpleGraph/Regularity/Chunk.lean Modified Mathlib/FieldTheory/AbelRuffini.lean Modified Mathlib/FieldTheory/Adjoin.lean Modified Mathlib/FieldTheory/IntermediateField.lean Modified Mathlib/FieldTheory/IsAlgClosed/Basic.lean Modified Mathlib/Geometry/Manifold/Algebra/LeftInvariantDerivation.lean Modified Mathlib/Geometry/Manifold/ContMDiff.lean Modified Mathlib/LinearAlgebra/AdicCompletion.lean Modified Mathlib/LinearAlgebra/AnnihilatingPolynomial.lean Modified Mathlib/LinearAlgebra/CliffordAlgebra/EvenEquiv.lean Modified Mathlib/LinearAlgebra/CliffordAlgebra/Grading.lean Modified Mathlib/LinearAlgebra/Dual.lean Modified Mathlib/LinearAlgebra/ExteriorAlgebra/Grading.lean Modified Mathlib/LinearAlgebra/FreeModule/Norm.lean Modified Mathlib/LinearAlgebra/FreeModule/StrongRankCondition.lean Modified Mathlib/LinearAlgebra/Matrix/Determinant.lean Modified Mathlib/LinearAlgebra/TensorPower.lean Modified Mathlib/MeasureTheory/Function/LpSpace.lean Modified Mathlib/MeasureTheory/Function/SimpleFuncDenseLp.lean Modified Mathlib/MeasureTheory/Integral/SetToL1.lean Modified Mathlib/MeasureTheory/Measure/Hausdorff.lean Modified Mathlib/NumberTheory/ClassNumber/Finite.lean Modified Mathlib/NumberTheory/LegendreSymbol/GaussSum.lean Modified Mathlib/NumberTheory/ModularForms/SlashActions.lean Modified Mathlib/RepresentationTheory/GroupCohomology/Basic.lean Modified Mathlib/RepresentationTheory/GroupCohomology/Resolution.lean Modified Mathlib/RingTheory/Adjoin/Field.lean Modified Mathlib/RingTheory/AlgebraicIndependent.lean Modified Mathlib/RingTheory/Kaehler.lean Modified Mathlib/RingTheory/Polynomial/Quotient.lean Modified Mathlib/Topology/MetricSpace/GromovHausdorff.lean 2023-09-06 11:21:53 a010997 feat: The forgetful functor on `Stonean` has a left adjoint given by Stone-Cech compactification (#6826) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Topology/Category/Stonean/Adjunctions.lean + theorem Stonean.mono_iff_injective + def Stonean.stoneCechObj 2023-09-06 11:21:52 b1be421 feat: Stonean is projective in Profinite (#6809) ... also moves around some stuff and given an epi `f` in `Stonean`, `Profinite` or `CompHaus`, provides instances `[Epi f]` in both the other categories. ESTIMATED CHANGES Modified Mathlib/Topology/Category/Profinite/Basic.lean Modified Mathlib/Topology/Category/Stonean/Basic.lean + def Profinite.lift + theorem Profinite.lift_lifts + def Profinite.presentation.π + def Profinite.presentation + theorem Profinite.projective_of_extrDisc + theorem Stonean.epi_iff_surjective + def Stonean.mkFinite Modified Mathlib/Topology/Category/Stonean/EffectiveEpi.lean - theorem Stonean.epi_iff_surjective - def Stonean.two 2023-09-06 11:21:51 906a71a feat: List.head_mem (#6801) ESTIMATED CHANGES Modified Mathlib/Data/List/Basic.lean + theorem List.head_mem + theorem List.surjective_head! - theorem List.surjective_head' - theorem List.surjective_head + theorem List.surjective_head? 2023-09-06 11:21:49 ac32e34 feat: pullbacks in Stonean where one map is an open embedding (#6779) We define pullbacks in `Stonean` of pairs `f`, `i` where `i` is an open embedding, explicitly as the inverse image under `f` of the image of `i`. ESTIMATED CHANGES Modified Mathlib/Topology/Category/Stonean/EffectiveEpi.lean Modified Mathlib/Topology/Category/Stonean/Limits.lean + theorem Stonean.HasPullbackOpenEmbedding + theorem Stonean.pullback.condition + def Stonean.pullback.cone + def Stonean.pullback.fst + theorem Stonean.pullback.hom_ext + def Stonean.pullback.isLimit + def Stonean.pullback.lift + theorem Stonean.pullback.lift_fst + theorem Stonean.pullback.lift_snd + def Stonean.pullback.snd + def Stonean.pullback + def Stonean.pullbackIsoPullback 2023-09-06 11:21:48 32e9e20 fix(Logic/Equiv/Basic): Make use of Bool in equivs consistent. (#6736) See also the poll at https://leanprover.zulipchat.com/#narrow/stream/144837-PR-reviews/topic/.236736.20Bool.20consistency.2E/near/387566483 and the surrounding discussion. ESTIMATED CHANGES Modified Mathlib/Logic/Equiv/Basic.lean +/- def Equiv.sumEquivSigmaBool Modified Mathlib/Logic/Equiv/Fin.lean Modified Mathlib/Order/Atoms.lean 2023-09-06 11:21:47 05b606a feat(ModelTheory): simp attribute on realize_relabel (#6656) ESTIMATED CHANGES Modified Mathlib/ModelTheory/Semantics.lean 2023-09-06 11:21:46 efa84af feat(ModelTheory): sups of finite sets of formulas (#6654) ESTIMATED CHANGES Modified Mathlib/ModelTheory/Semantics.lean + theorem FirstOrder.Language.BoundedFormula.realize_iInf + theorem FirstOrder.Language.BoundedFormula.realize_iSup Modified Mathlib/ModelTheory/Syntax.lean 2023-09-06 11:21:44 a0814b8 chore: remove succ from Stirling (#6280) The Stirling formula file was full of `n.succ` whose only purpose was to steer automatic coercion to a real number. Then formulas became unreadable and had to be restated in docstrings, leading to the error flagged [on zulip](https://leanprover.zulipchat.com/#narrow/stream/113488-general/topic/Typo.20in.20documentation.20of.20.60log_stirling_seq_formula.60/near/380554733) ESTIMATED CHANGES Modified Mathlib/Analysis/SpecialFunctions/Stirling.lean +/- theorem Stirling.log_stirlingSeq_bounded_by_constant +/- theorem Stirling.log_stirlingSeq_formula +/- theorem Stirling.stirlingSeq'_bounded_by_pos_constant +/- theorem Stirling.stirlingSeq'_pos 2023-09-06 10:25:45 db7fecc feat: Kernel of a filter (#6981) Define the kernel of a filter as the intersection of its sets and show it forms a Galois coinsertion with the principal filter. ESTIMATED CHANGES Modified Mathlib/Order/Filter/Basic.lean + def Filter.gi_principal_ker + def Filter.ker + theorem Filter.ker_bot + theorem Filter.ker_comap + theorem Filter.ker_eq_univ + theorem Filter.ker_iInf + theorem Filter.ker_inf + theorem Filter.ker_mono + theorem Filter.ker_principal + theorem Filter.ker_pure + theorem Filter.ker_sInf + theorem Filter.ker_surjective + theorem Filter.ker_top + theorem Filter.mem_ker + theorem Filter.subset_ker 2023-09-06 10:25:44 b550667 feat: Strengthening an equiv to an homeo (#6980) Add `Equiv.toHomeomorph`, a convenient version of `Equiv.toHomeomorph_of_inducing`. ESTIMATED CHANGES Modified Mathlib/Topology/Homeomorph.lean + theorem Equiv.coe_toHomeomorph + def Equiv.toHomeomorph +/- def Equiv.toHomeomorphOfInducing + theorem Equiv.toHomeomorph_apply + theorem Equiv.toHomeomorph_refl + theorem Equiv.toHomeomorph_symm + theorem Equiv.toHomeomorph_trans 2023-09-06 09:06:46 61fa6e9 feat: pochhammer_natDegree (#6897) ESTIMATED CHANGES Modified Mathlib/RingTheory/Polynomial/Pochhammer.lean + theorem pochhammer_natDegree 2023-09-06 09:06:45 d957362 feat(linear_algebra/orientation): add `orientation.reindex` (#6889) This forward-ports leanprover-community/mathlib#19236 ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/Alternating.lean + theorem AlternatingMap.domDomCongr_smul + def AlternatingMap.domDomLcongr + theorem AlternatingMap.domDomLcongr_refl + theorem AlternatingMap.domDomLcongr_toAddEquiv Modified Mathlib/LinearAlgebra/Determinant.lean + theorem Basis.det_reindex' Modified Mathlib/LinearAlgebra/Orientation.lean + theorem Basis.orientation_reindex + def Orientation.reindex + theorem Orientation.reindex_apply + theorem Orientation.reindex_refl + theorem Orientation.reindex_symm 2023-09-06 09:06:43 79f281a perf(GroupTheory/CoprodI): Get rid of one use of with in an instance (#6830) ESTIMATED CHANGES Modified Mathlib/GroupTheory/CoprodI.lean 2023-09-06 09:06:42 bdbeb48 feat: add a --fix option to attempt to autofix simple style issues (#6568) This is still written in python, and still a bit "manual" whereas a full reimplementation as an autoformatter would be better, but this hopefully provides a convenient way to fix common issues. ESTIMATED CHANGES Modified scripts/lint-style.py Modified scripts/lint-style.sh 2023-09-06 09:06:41 48eb1fb chore: golf using `compute_degree` (#6222) This PR is a companion to #6221. It uses the tactic `compute_degree` to golf two proofs and restore a proof closer to its mathlib3 version. ESTIMATED CHANGES Modified Mathlib/Data/Polynomial/CancelLeads.lean Modified Mathlib/LinearAlgebra/Matrix/Polynomial.lean 2023-09-06 07:39:12 b5528b3 chore: cleanup Mathlib.Init.Data.Prod (#6972) Removing from `Mathlib.Init.Data.Prod` from the early parts of the import hierarchy. While at it, remove unnecessary uses of `Prod.mk.eta` across the library. ESTIMATED CHANGES Modified Mathlib/Algebra/BigOperators/Basic.lean Modified Mathlib/Algebra/BigOperators/Finprod.lean Modified Mathlib/Algebra/EuclideanDomain/Basic.lean Modified Mathlib/Algebra/EuclideanDomain/Defs.lean Modified Mathlib/Algebra/Group/Prod.lean Modified Mathlib/Algebra/Ring/Prod.lean Modified Mathlib/Algebra/Support.lean Modified Mathlib/Analysis/Convex/Extreme.lean Modified Mathlib/Analysis/Convolution.lean Modified Mathlib/Combinatorics/SimpleGraph/Prod.lean Modified Mathlib/Data/Fin/Tuple/NatAntidiagonal.lean Modified Mathlib/Data/Finsupp/Basic.lean Modified Mathlib/Data/Pi/Algebra.lean Modified Mathlib/Data/Prod/Basic.lean + theorem Prod.mk.eta Modified Mathlib/Data/Prod/PProd.lean Modified Mathlib/Data/Seq/Parallel.lean Modified Mathlib/Data/Sym/Sym2.lean Modified Mathlib/Geometry/Manifold/Algebra/Structures.lean Modified Mathlib/Geometry/Manifold/ContMDiff.lean Modified Mathlib/Geometry/Manifold/MFDeriv.lean Modified Mathlib/GroupTheory/MonoidLocalization.lean Modified Mathlib/Init/Data/Prod.lean - theorem Prod.mk.eta Modified Mathlib/Init/Function.lean Modified Mathlib/LinearAlgebra/Finsupp.lean Modified Mathlib/LinearAlgebra/Matrix/Determinant.lean Modified Mathlib/LinearAlgebra/Prod.lean Modified Mathlib/Logic/Equiv/Basic.lean Modified Mathlib/Order/Filter/Prod.lean Modified Mathlib/Order/Interval.lean Modified Mathlib/Probability/Kernel/Composition.lean Modified Mathlib/Probability/Kernel/MeasurableIntegral.lean Modified Mathlib/Topology/EMetricSpace/Paracompact.lean Modified Mathlib/Topology/FiberBundle/Trivialization.lean Modified Mathlib/Topology/MetricSpace/MetrizableUniformity.lean Modified lakefile.lean +/- def weakLeanArgs 2023-09-06 07:39:10 55a12e0 chore: cleanup old toolchains in CI (#6969) ESTIMATED CHANGES Modified .github/workflows/bors.yml Modified .github/workflows/build.yml Modified .github/workflows/build.yml.in Modified .github/workflows/build_fork.yml 2023-09-06 07:39:08 22b9ffe chore: remove @[defaultTarget] from checkYaml and runLinter (#6967) Having `@[defaultTarget]` on `checkYaml` and `runLinter` meant that these were compiled every time someone ran `lake build`. This involves compilation steps, which are not provided by the cache, and so `lake build` could be noisy even with Mathlib was otherwise ready to use: ``` % lake build [976/3736] Compiling Mathlib.Tactic.ToLevel [981/3736] Compiling Mathlib.Lean.CoreM [982/3736] Compiling Mathlib.Tactic.PPWithUniv [990/3736] Compiling Mathlib.Util.WhatsNew [990/3736] Compiling Mathlib.Mathport.Rename [990/3736] Compiling Mathlib.Tactic.DeriveToExpr [991/3736] Compiling Mathlib.Tactic.ToExpr [1011/3736] Building scripts.checkYaml [1016/3736] Building scripts.runLinter [2414/3736] Compiling scripts.checkYaml [2891/3736] Compiling scripts.runLinter [3736/3736] Linking runLinter [3736/3736] Linking checkYaml ``` (possibly followed by a page of linking warnings for people on older macos) As these are not compiled by `lake build` anymore, we make sure to use `lake exe` at the point of use rather than assuming the binary is already there. ESTIMATED CHANGES Modified .github/workflows/bors.yml Modified .github/workflows/build.yml Modified .github/workflows/build.yml.in Modified .github/workflows/build_fork.yml Modified GNUmakefile Modified lakefile.lean 2023-09-06 06:13:58 c161d18 chore: delay import of NeZero until after basic hierarchy (#6970) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Field/Defs.lean Modified Mathlib/Algebra/Group/Defs.lean Modified Mathlib/Algebra/GroupWithZero/Basic.lean Modified Mathlib/Algebra/GroupWithZero/Defs.lean - theorem pullback_nonzero Modified Mathlib/Algebra/GroupWithZero/InjSurj.lean Added Mathlib/Algebra/GroupWithZero/NeZero.lean + theorem pullback_nonzero Modified Mathlib/Algebra/NeZero.lean Modified Mathlib/Algebra/Order/Group/Defs.lean Modified Mathlib/Algebra/Order/Ring/Defs.lean Modified Mathlib/Algebra/Ring/Basic.lean Modified Mathlib/GroupTheory/GroupAction/Opposite.lean Modified Mathlib/GroupTheory/Submonoid/ZeroDivisors.lean Modified Mathlib/Init/Algebra/Classes.lean Modified Mathlib/Init/Algebra/Order.lean Modified Mathlib/Logic/Nontrivial/Defs.lean +/- theorem exists_ne Modified Mathlib/Tactic/Common.lean 2023-09-06 06:13:56 d432864 feat: better handling of cancellation in feedback to Lean4 PRs (#6912) ESTIMATED CHANGES Modified scripts/lean-pr-testing-comments.sh 2023-09-06 04:50:55 3d1bfa5 chore: ensure Ring/Defs doesn't depend on Group/Basic (#6956) In the basic algebraic hierarchy, the `Defs` files should ideally only depend on earlier `Defs` files, importing as little theory as possible. This PR makes some rearrangements so `Ring.Defs` can depend on `Group.Defs` rather than requiring `Group.Basic`. ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Basic.lean - theorem eq_inv_of_mul_eq_one_left - theorem inv_eq_of_mul_eq_one_left Modified Mathlib/Algebra/Group/Defs.lean + theorem eq_inv_of_mul_eq_one_left + theorem inv_eq_of_mul_eq_one_left Modified Mathlib/Algebra/Group/WithOne/Basic.lean Modified Mathlib/Algebra/Group/WithOne/Defs.lean Modified Mathlib/Algebra/GroupWithZero/Defs.lean - theorem eq_of_sub_eq_zero' - theorem pow_succ'' Modified Mathlib/Algebra/Ring/Defs.lean - theorem mul_add_eq_mul_add_iff_sub_mul_add_eq - theorem sub_mul_add_eq_of_mul_add_eq_mul_add Modified Mathlib/Algebra/Ring/MinimalAxioms.lean Modified Mathlib/Data/Nat/Choose/Central.lean 2023-09-06 03:42:55 5ea095e chore: bump for Std4#240 (#6968) The `replace` tactic was upstreamed in https://github.com/leanprover/std4/pull/240. ESTIMATED CHANGES Modified Mathlib/Tactic/Replace.lean Modified lake-manifest.json Modified test/Replace.lean 2023-09-05 23:13:09 44f5524 feat: Alexandrov-discrete spaces (#6962) We define Alexandrov-discrete spaces as topological spaces where the intersection of a family of open sets is open. This PR only gives a minimal API because the goal is to ensure that lemma names like `isOpen_sInter` are free to use for `AlexandrovDiscrete`. The existing lemmas are getting prefixed by `Set.Finite` or suffixed by `_of_finite`. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Analysis/LocallyConvex/AbsConvex.lean Modified Mathlib/Analysis/NormedSpace/AddTorsorBases.lean Modified Mathlib/MeasureTheory/Covering/Besicovitch.lean Modified Mathlib/MeasureTheory/Covering/Vitali.lean Modified Mathlib/MeasureTheory/Measure/Haar/Basic.lean Modified Mathlib/MeasureTheory/Measure/Regular.lean Modified Mathlib/NumberTheory/WellApproximable.lean Added Mathlib/Topology/AlexandrovDiscrete.lean + theorem isClopen_iUnion + theorem isClopen_sUnion + theorem isClosed_iUnion + theorem isClosed_sUnion + theorem isOpen_iInter + theorem isOpen_sInter Modified Mathlib/Topology/Bases.lean Modified Mathlib/Topology/Basic.lean + theorem Set.Finite.isClosed_biUnion + theorem Set.Finite.isOpen_biInter + theorem Set.Finite.isOpen_sInter + theorem closure_Union_of_finite - theorem closure_iUnion - theorem interior_iInter + theorem interior_iInter_of_finite - theorem isClosed_biUnion + theorem isClosed_biUnion_finset - theorem isClosed_iUnion + theorem isClosed_iUnion_of_finite - theorem isOpen_biInter - theorem isOpen_iInter + theorem isOpen_iInter_of_finite - theorem isOpen_sInter Modified Mathlib/Topology/Connected.lean Modified Mathlib/Topology/Constructions.lean Modified Mathlib/Topology/LocallyConstant/Basic.lean Modified Mathlib/Topology/Order/LowerUpperTopology.lean Modified Mathlib/Topology/Order/UpperLowerSetTopology.lean - theorem LowerSetTopology.IsOpen_sInter - theorem LowerSetTopology.isOpen_iInter - theorem UpperSetTopology.IsOpen_sInter - theorem UpperSetTopology.isOpen_iInter Modified Mathlib/Topology/Separation.lean Modified Mathlib/Topology/SubsetProperties.lean + theorem Set.Finite.isClopen_biInter + theorem Set.Finite.isClopen_biUnion - theorem isClopen_biInter - theorem isClopen_biUnion - theorem isClopen_iInter + theorem isClopen_iInter_of_finite - theorem isClopen_iUnion + theorem isClopen_iUnion_of_finite Modified Mathlib/Topology/UniformSpace/Cauchy.lean Modified Mathlib/Topology/UniformSpace/CompactConvergence.lean 2023-09-05 20:39:16 686671b feat(CategoryTheory): misc lemmas about morphism properties (#6887) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Arrow.lean + def CategoryTheory.Functor.mapArrowEquivalence + def CategoryTheory.Functor.mapArrowFunctor Modified Mathlib/CategoryTheory/MorphismProperty.lean + theorem CategoryTheory.MorphismProperty.IsInvertedBy.iff_comp + theorem CategoryTheory.MorphismProperty.IsInvertedBy.iff_map_subset_isomorphisms + theorem CategoryTheory.MorphismProperty.IsInvertedBy.isoClosure_iff + theorem CategoryTheory.MorphismProperty.IsInvertedBy.map_iff + theorem CategoryTheory.MorphismProperty.IsInvertedBy.of_subset + theorem CategoryTheory.MorphismProperty.RespectsIso.isoClosure_eq + theorem CategoryTheory.MorphismProperty.inverseImage_equivalence_functor_eq_map_inverse + theorem CategoryTheory.MorphismProperty.inverseImage_equivalence_inverse_eq_map_functor + theorem CategoryTheory.MorphismProperty.inverseImage_map_eq_of_isEquivalence + theorem CategoryTheory.MorphismProperty.isoClosure_isoClosure + theorem CategoryTheory.MorphismProperty.isoClosure_subset_iff + def CategoryTheory.MorphismProperty.map + theorem CategoryTheory.MorphismProperty.map_eq_of_iso + theorem CategoryTheory.MorphismProperty.map_id + theorem CategoryTheory.MorphismProperty.map_id_eq_isoClosure + theorem CategoryTheory.MorphismProperty.map_inverseImage_eq_of_isEquivalence + theorem CategoryTheory.MorphismProperty.map_inverseImage_subset + theorem CategoryTheory.MorphismProperty.map_isoClosure + theorem CategoryTheory.MorphismProperty.map_map + theorem CategoryTheory.MorphismProperty.map_mem_map + theorem CategoryTheory.MorphismProperty.map_respectsIso + theorem CategoryTheory.MorphismProperty.map_subset_iff + theorem CategoryTheory.MorphismProperty.monotone_isoClosure + theorem CategoryTheory.MorphismProperty.monotone_map + theorem CategoryTheory.MorphismProperty.subset_iff_le 2023-09-05 16:59:38 1f3d388 feat: the shift on the category of cochain complexes (#6626) This PR constructs the shift on the category of cochain complexes. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Homology/HomologicalComplex.lean + theorem HomologicalComplex.XIsoOfEq_hom_naturality + theorem HomologicalComplex.XIsoOfEq_inv_naturality Added Mathlib/Algebra/Homology/HomotopyCategory/Shift.lean + theorem CochainComplex.XIsoOfEq_shift + def CochainComplex.shiftFunctor + def CochainComplex.shiftFunctorAdd' + theorem CochainComplex.shiftFunctorAdd'_eq + theorem CochainComplex.shiftFunctorAdd'_hom_app_f' + theorem CochainComplex.shiftFunctorAdd'_inv_app_f' + theorem CochainComplex.shiftFunctorAdd_eq + theorem CochainComplex.shiftFunctorAdd_hom_app_f + theorem CochainComplex.shiftFunctorAdd_inv_app_f + theorem CochainComplex.shiftFunctorComm_hom_app_f + def CochainComplex.shiftFunctorObjXIso + def CochainComplex.shiftFunctorZero' + theorem CochainComplex.shiftFunctorZero_eq + theorem CochainComplex.shiftFunctorZero_hom_app_f + theorem CochainComplex.shiftFunctorZero_inv_app_f + theorem CochainComplex.shiftFunctor_map_f' + theorem CochainComplex.shiftFunctor_obj_d' 2023-09-05 15:17:42 03c21fa feat(Topology): add `IsCompact.nhdsSet_prod_eq` etc (#6961) Also delete `NhdsContainBoxes` and related lemmas as they were only used for another proof of `generalized_tube_lemma`. ESTIMATED CHANGES Modified Mathlib/Topology/SubsetProperties.lean + theorem IsCompact.mem_nhdsSet_prod_of_forall + theorem IsCompact.mem_prod_nhdsSet_of_forall + theorem IsCompact.nhdsSet_prod_eq + theorem IsCompact.nhdsSet_prod_eq_biSup + theorem IsCompact.prod_nhdsSet_eq_biSup - theorem NhdsContainBoxes.comm - theorem NhdsContainBoxes.symm - def NhdsContainBoxes - theorem nhdsContainBoxes_of_compact - theorem nhdsContainBoxes_of_singleton + theorem nhdsSet_prod_le 2023-09-05 15:17:41 18d1194 chore: minimise imports in Tactic/Ring (#6960) ESTIMATED CHANGES Modified Mathlib/Tactic/Ring/Basic.lean Modified Mathlib/Util/AtomM.lean 2023-09-05 14:01:34 ab52fda refactor(Data/Int/Units): golf `isUnit_eq_or_eq_neg` (#6952) This PR adds an `IsUnit` version of `units_ne_iff_eq_neg` and uses it to golf `isUnit_eq_or_eq_neg`. ESTIMATED CHANGES Modified Mathlib/Data/Int/Units.lean +/- theorem Int.isUnit_eq_or_eq_neg + theorem Int.isUnit_ne_iff_eq_neg 2023-09-05 14:01:33 2532847 feat: more API for the complex of morphisms between cochain complexes (#6894) This PR shows that the composition of cochains is bilinear and introduces the differential on cochains. ESTIMATED CHANGES Modified Mathlib/Algebra/Homology/HomotopyCategory/HomComplex.lean + theorem CochainComplex.HomComplex.Cochain.comp_assoc_of_first_is_zero_cochain + theorem CochainComplex.HomComplex.Cochain.comp_assoc_of_second_degree_eq_neg_third_degree + theorem CochainComplex.HomComplex.Cochain.comp_assoc_of_second_is_zero_cochain + theorem CochainComplex.HomComplex.Cochain.comp_assoc_of_third_is_zero_cochain + def CochainComplex.HomComplex.Cochain.diff + theorem CochainComplex.HomComplex.Cochain.diff_v + theorem CochainComplex.HomComplex.Cochain.ofHom_comp + theorem CochainComplex.HomComplex.Cochain.ofHoms_comp + def CochainComplex.HomComplex.δ + theorem CochainComplex.HomComplex.δ_shape + theorem CochainComplex.HomComplex.δ_v Modified docs/references.bib 2023-09-05 14:01:32 99d7691 feat: change junk value for supremum of unbounded sets (#6870) We switch from `sSup univ` to `sSup ∅` for the supremum of unbounded sets in a conditionally complete linear order. These quantities already coincide for all concrete instances in mathlib. With the new convention one gets additionally the theorem ```lean theorem cbiSup_eq_of_not_forall {p : ι → Prop} {f : Subtype p → α} (hp : ¬ (∀ i, p i)) : ⨆ (i) (h : p i), f ⟨i, h⟩ = iSup f ⊔ sSup ∅ ``` which will be convenient for general measurability statements. ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Nonneg/Ring.lean Modified Mathlib/Data/Nat/Lattice.lean Modified Mathlib/Data/Real/NNReal.lean +/- theorem NNReal.coe_sInf +/- theorem NNReal.coe_sSup Modified Mathlib/Order/CompleteLatticeIntervals.lean - theorem sSup_subtype_eq_sSup_univ_of_not_bddAbove + theorem subset_sInf_emptyset + theorem subset_sInf_of_not_bddBelow +/- theorem subset_sInf_of_within + theorem subset_sSup_emptyset + theorem subset_sSup_of_not_bddAbove +/- theorem subset_sSup_of_within Modified Mathlib/Order/ConditionallyCompleteLattice/Basic.lean + theorem Set.Ici_ciSup + theorem Set.Iic_ciInf + theorem cbiInf_eq_of_forall + theorem cbiInf_eq_of_not_forall + theorem cbiSup_eq_of_forall + theorem cbiSup_eq_of_not_forall + theorem ciInf_eq_ite + theorem ciInf_neg + theorem ciSup_eq_ite + theorem ciSup_neg + theorem csInf_eq_univ_of_not_bddBelow +/- theorem csInf_of_not_bddBelow + theorem csSup_eq_univ_of_not_bddAbove +/- theorem csSup_of_not_bddAbove + theorem sInf_iUnion_Ici + theorem sSup_iUnion_Iic 2023-09-05 14:01:30 a88ee8c feat(CategoryTheory): morphisms of localizers (#6869) This PR introduces the categorical notion of morphisms of localizers. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Localization/LocalizerMorphism.lean + theorem CategoryTheory.LocalizerMorphism.IsLocalizedEquivalence.mk' + theorem CategoryTheory.LocalizerMorphism.IsLocalizedEquivalence.of_isLocalization_of_isLocalization + def CategoryTheory.LocalizerMorphism.comp + def CategoryTheory.LocalizerMorphism.id + theorem CategoryTheory.LocalizerMorphism.inverts + theorem CategoryTheory.LocalizerMorphism.nonempty_isEquivalence_iff + structure CategoryTheory.LocalizerMorphism Modified Mathlib/CategoryTheory/Localization/Predicate.lean Modified docs/references.bib 2023-09-05 14:01:29 5c1d359 feat: the shift on the category of triangles (#6688) If a preadditive category `C` is equipped with a shift by the integers, then the category of triangles in `C` is also equipped with a shift. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/CategoryTheory/Shift/Basic.lean + theorem CategoryTheory.shiftFunctorComm_eq_refl + theorem CategoryTheory.shiftFunctorComm_zero_hom_app Modified Mathlib/CategoryTheory/Triangulated/Basic.lean + theorem CategoryTheory.Pretriangulated.Triangle.eqToHom_hom₁ + theorem CategoryTheory.Pretriangulated.Triangle.eqToHom_hom₂ + theorem CategoryTheory.Pretriangulated.Triangle.eqToHom_hom₃ Added Mathlib/CategoryTheory/Triangulated/TriangleShift.lean 2023-09-05 14:01:28 788a938 feat: the shift induced on a localized category (#6655) This PR shows that when a morphism property `W` on a category is compatible with the shift by a monoid `A`, then the localized category can also be equipped with a shift. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Shift/Localization.lean + theorem CategoryTheory.MorphismProperty.IsCompatibleWithShift.iff + theorem CategoryTheory.MorphismProperty.IsCompatibleWithShift.shiftFunctor_comp_inverts 2023-09-05 12:17:35 5498737 chore: rename isBoundedBilinearMapApply to isBoundedBilinearMap_apply (#6963) ESTIMATED CHANGES Modified Mathlib/Analysis/Calculus/ContDiff.lean Modified Mathlib/Analysis/Calculus/ContDiffDef.lean Modified Mathlib/Analysis/Calculus/FDeriv/Measurable.lean Modified Mathlib/Analysis/Calculus/FDeriv/Mul.lean Modified Mathlib/Analysis/NormedSpace/BoundedLinearMaps.lean - theorem isBoundedBilinearMapApply + theorem isBoundedBilinearMap_apply Modified Mathlib/Geometry/Manifold/ContMDiffMFDeriv.lean Modified Mathlib/Geometry/Manifold/VectorBundle/FiberwiseLinear.lean Modified Mathlib/Topology/VectorBundle/Basic.lean 2023-09-05 10:32:04 a1fd072 chore: minimize imports in NormNum.Core (#6953) Reducing the imports in `Mathlib.Tactic.NormNum.Core` a bit. (I was thinking about whether it might be possible to upstream some of `norm_num`. As is it has a lot of prerequisites!) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Tactic.lean Modified Mathlib/Tactic/NormNum/Basic.lean Added Mathlib/Tactic/NormNum/CharZero.lean + def Mathlib.Meta.NormNum.inferCharZeroOfAddMonoidWithOne + def Mathlib.Meta.NormNum.inferCharZeroOfAddMonoidWithOne? + def Mathlib.Meta.NormNum.inferCharZeroOfDivisionRing + def Mathlib.Meta.NormNum.inferCharZeroOfDivisionRing? + def Mathlib.Meta.NormNum.inferCharZeroOfRing + def Mathlib.Meta.NormNum.inferCharZeroOfRing? Modified Mathlib/Tactic/NormNum/Core.lean - def Mathlib.Meta.NormNum.inferCharZeroOfAddMonoidWithOne - def Mathlib.Meta.NormNum.inferCharZeroOfAddMonoidWithOne? - def Mathlib.Meta.NormNum.inferCharZeroOfDivisionRing - def Mathlib.Meta.NormNum.inferCharZeroOfDivisionRing? - def Mathlib.Meta.NormNum.inferCharZeroOfRing - def Mathlib.Meta.NormNum.inferCharZeroOfRing? - def Mathlib.Meta.NormNum.inferLinearOrderedField - def Mathlib.Meta.NormNum.inferOrderedRing - def Mathlib.Meta.NormNum.inferOrderedSemiring - def Mathlib.Meta.NormNum.instDivisionRingRat - def Mathlib.Meta.NormNum.instRingInt - def Mathlib.Meta.NormNum.instRingRat Added Mathlib/Tactic/NormNum/OrderedRing.lean + def Mathlib.Meta.NormNum.inferLinearOrderedField + def Mathlib.Meta.NormNum.inferOrderedRing + def Mathlib.Meta.NormNum.inferOrderedSemiring Modified Mathlib/Tactic/Positivity/Basic.lean Modified Mathlib/Tactic/Positivity/Core.lean 2023-09-05 10:32:03 b47296c feat(RingTheory/FiniteType): generalize results to non-commutative generators (#6757) Many of the proofs in this file go via quotients of `MvPolynomial`; but this forces a commutativity assumption that can be avoided by instead going via quotients of `FreeAlgebra`. Most of the new `FreeAlgebra` results are just copies of the proofs for `MvPolynomial`, which isn't ideal in terms of duplication. ESTIMATED CHANGES Modified Mathlib/Algebra/FreeAlgebra.lean + theorem Algebra.adjoin_eq_range_freeAlgebra_lift + theorem Algebra.adjoin_range_eq_range_freeAlgebra_lift + theorem FreeAlgebra.adjoin_range_ι Modified Mathlib/RingTheory/FiniteType.lean + theorem AddMonoidAlgebra.freeAlgebra_lift_of_surjective_of_closure +/- theorem AddMonoidAlgebra.mvPolynomial_aeval_of_surjective_of_closure + theorem Algebra.FiniteType.iff_quotient_freeAlgebra' + theorem Algebra.FiniteType.iff_quotient_freeAlgebra +/- theorem MonoidAlgebra.finiteType_iff_group_fg + theorem MonoidAlgebra.freeAlgebra_lift_of_surjective_of_closure +/- theorem MonoidAlgebra.mvPolynomial_aeval_of_surjective_of_closure 2023-09-05 10:32:01 6da2486 feat: generalize some lemmas from a normed space to a TVS (#5771) - Generalize `FiniteDimensional.complete`, `Submodule.complete_of_finiteDimensional` from a normed space over `𝕜` to a uniform additive commutative group that is a TVS over `𝕜`. - Generalize `Submodule.closed_of_finiteDimensional`, `LinearMap.closedEmbedding_of_injective`, `closedEmbedding_smul_left` `isClosedMap_smul_left`, and `ContinuousLinearMap.exists_right_inverse_of_surjective` from a normed space to a TVS. - Rename `finiteDimensional_of_isCompact_closed_ball₀` to `finiteDimensional_of_isCompact_closedBall₀`. ESTIMATED CHANGES Modified Mathlib/Analysis/InnerProductSpace/Adjoint.lean Modified Mathlib/Analysis/NormedSpace/FiniteDimension.lean - theorem ContinuousLinearMap.exists_right_inverse_of_surjective - theorem FiniteDimensional.complete - theorem LinearEquiv.closedEmbedding_of_injective - theorem Submodule.closed_of_finiteDimensional - theorem Submodule.complete_of_finiteDimensional - theorem closedEmbedding_smul_left + theorem finiteDimensional_of_isCompact_closedBall₀ - theorem finiteDimensional_of_isCompact_closed_ball₀ - theorem isClosedMap_smul_left Modified Mathlib/NumberTheory/Modular.lean Modified Mathlib/Topology/Algebra/Module/FiniteDimension.lean + theorem ContinuousLinearMap.exists_right_inverse_of_surjective + theorem FiniteDimensional.complete + theorem LinearMap.closedEmbedding_of_injective + theorem Submodule.closed_of_finiteDimensional + theorem Submodule.complete_of_finiteDimensional + theorem closedEmbedding_smul_left + theorem isClosedMap_smul_left 2023-09-05 09:13:09 560425d feat: split Logic.Nontrivial (#6959) This continues reducing the import requirements for the basic algebraic hierarchy. In combination with #6954 #6955 #6956 #6957, this reduces the imports for `Mathlib.Algebra.Field.Defs` from * [before.pdf](https://github.com/leanprover-community/mathlib4/files/12518547/before.pdf) * [after.pdf](https://github.com/leanprover-community/mathlib4/files/12518546/after.pdf) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/EuclideanDomain/Defs.lean Modified Mathlib/Algebra/Group/TypeTags.lean Modified Mathlib/Algebra/Group/ULift.lean Modified Mathlib/Algebra/Group/Units.lean Modified Mathlib/Algebra/GroupWithZero/Defs.lean Modified Mathlib/Algebra/GroupWithZero/Units/Basic.lean Modified Mathlib/Algebra/Opposites.lean Modified Mathlib/Data/Int/Basic.lean Modified Mathlib/Data/TwoPointing.lean Added Mathlib/Logic/Nontrivial/Basic.lean + theorem Pi.nontrivial_at + theorem Subsingleton.eq_one + theorem Subtype.nontrivial_iff_exists_ne + theorem exists_pair_lt + theorem nontrivial_iff_lt + theorem nontrivial_of_lt Renamed Mathlib/Logic/Nontrivial.lean to Mathlib/Logic/Nontrivial/Defs.lean - theorem Pi.nontrivial_at - theorem Subsingleton.eq_one - theorem Subtype.nontrivial_iff_exists_ne - theorem exists_pair_lt - theorem nontrivial_iff_lt - theorem nontrivial_of_lt Modified Mathlib/Order/Synonym.lean Modified Mathlib/Order/WithBot.lean Modified Mathlib/Tactic/Nontriviality/Core.lean 2023-09-05 09:13:08 6226f93 chore: redundant import (#6957) ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Defs.lean 2023-09-05 09:13:07 9a51c25 chore: separate NeZero dependency from Nat/Cast/Defs (#6955) I'm trying to remove any extraneous material from the core definitions in the algebraic hierarchy that are used in tactics. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/CharZero/Defs.lean Modified Mathlib/Algebra/Ring/Defs.lean Modified Mathlib/Data/Nat/Cast/Basic.lean Modified Mathlib/Data/Nat/Cast/Defs.lean - theorem NeZero.natCast_ne - theorem NeZero.of_neZero_natCast - theorem NeZero.pos_of_neZero_natCast Added Mathlib/Data/Nat/Cast/NeZero.lean + theorem NeZero.natCast_ne + theorem NeZero.of_neZero_natCast + theorem NeZero.pos_of_neZero_natCast 2023-09-05 09:13:05 6aa77b1 chore: split out IsField (#6954) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Field/Defs.lean - theorem Field.toIsField - theorem IsField.nontrivial - structure IsField - theorem Semifield.toIsField - theorem not_isField_of_subsingleton - theorem uniq_inv_of_isField Added Mathlib/Algebra/Field/IsField.lean + theorem Field.toIsField + theorem IsField.nontrivial + structure IsField + theorem Semifield.toIsField + theorem not_isField_of_subsingleton + theorem uniq_inv_of_isField Modified Mathlib/Algebra/Ring/Equiv.lean 2023-09-05 09:13:04 08ccb2b chore: @[simp] cancel_(right|left) (#6300) ESTIMATED CHANGES Modified Mathlib/Algebra/Hom/Centroid.lean Modified Mathlib/Algebra/Hom/Freiman.lean Modified Mathlib/Algebra/Hom/Ring.lean Modified Mathlib/Algebra/Module/LinearMap.lean Modified Mathlib/Algebra/Order/Hom/Monoid.lean Modified Mathlib/Algebra/Order/Hom/Ring.lean Modified Mathlib/Order/Heyting/Hom.lean Modified Mathlib/Order/Hom/Bounded.lean Modified Mathlib/Order/Hom/CompleteLattice.lean Modified Mathlib/Order/Hom/Lattice.lean Modified Mathlib/Topology/Bornology/Hom.lean Modified Mathlib/Topology/ContinuousFunction/Basic.lean Modified Mathlib/Topology/Hom/Open.lean Modified Mathlib/Topology/MetricSpace/Dilation.lean Modified Mathlib/Topology/Order/Hom/Basic.lean Modified Mathlib/Topology/Order/Hom/Esakia.lean Modified Mathlib/Topology/Spectral/Hom.lean 2023-09-05 08:30:49 5dac7e8 feat: the shift on a quotient category (#6653) This PR constructs the shift on a quotient category. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/CategoryTheory/Quotient.lean + theorem CategoryTheory.Quotient.comp_natTransLift + def CategoryTheory.Quotient.natIsoLift + def CategoryTheory.Quotient.natTransLift + theorem CategoryTheory.Quotient.natTransLift_app + theorem CategoryTheory.Quotient.natTransLift_id + theorem CategoryTheory.Quotient.natTrans_ext Added Mathlib/CategoryTheory/Shift/Quotient.lean 2023-09-05 07:06:36 4047be9 chore: remove unnecessary imports in tactics (#6940) This is motivated by preparations for upstreaming tactics to Std. ESTIMATED CHANGES Modified Mathlib/Data/Part.lean Modified Mathlib/Tactic/InferParam.lean Modified Mathlib/Tactic/NormCast/Tactic.lean Modified Mathlib/Tactic/Recover.lean Modified Mathlib/Tactic/Rewrites.lean Modified Mathlib/Tactic/SolveByElim.lean Modified Mathlib/Tactic/SplitIfs.lean Modified Mathlib/Tactic/Tauto.lean Modified test/SplitIfs.lean +/- theorem foo 2023-09-04 23:28:23 27866b8 feat: documentation for `Mathlib.Tactic.Have` (#6950) This PR adds documentation for `Mathlib.Tactic.Have` It also deletes content in a namespace that was instructed to be deleted after the merge of https://github.com/leanprover/lean4/pull/2262, which was merged in the 9th of June (2023) ESTIMATED CHANGES Modified Mathlib/Tactic/Have.lean - def Mathlib.Tactic.hygieneInfo - def Mathlib.Tactic.hygieneInfoFn - def Mathlib.Tactic.hygieneInfoNoAntiquot.formatter - def Mathlib.Tactic.hygieneInfoNoAntiquot.parenthesizer - def Mathlib.Tactic.hygieneInfoNoAntiquot Modified scripts/nolints.json 2023-09-04 23:06:51 ef128c4 chore: run cache in archive and counterexamples (#6945) Speeds up the 180s build of `Archive` and `Counterexamples` to about 45s. ESTIMATED CHANGES Modified .github/workflows/bors.yml Modified .github/workflows/build.yml Modified .github/workflows/build.yml.in Modified .github/workflows/build_fork.yml Modified Cache/Hashing.lean +/- def Cache.Hashing.getHashMemo +/- def Cache.Hashing.roots Modified Cache/IO.lean Modified Cache/Main.lean 2023-09-04 22:10:46 e92aa3c feat: further theory about the Killing form of Lie algebras (#6737) ESTIMATED CHANGES Modified Mathlib/Algebra/Lie/Killing.lean + theorem LieIdeal.killingForm_eq + theorem LieIdeal.le_killingCompl_top_of_isLieAbelian + theorem LieIdeal.mem_killingCompl + theorem LieModule.traceForm_eq_zero_of_isNilpotent + theorem LieModule.traceForm_eq_zero_of_isTrivial + theorem LieSubmodule.traceForm_eq_of_le_idealizer + theorem LieSubmodule.traceForm_eq_zero_of_isTrivial + theorem LieSubmodule.trace_eq_trace_restrict_of_le_idealizer Modified Mathlib/Algebra/Lie/Normalizer.lean + theorem LieIdeal.idealizer_eq_normalizer + def LieSubmodule.idealizer + theorem LieSubmodule.mem_idealizer Modified Mathlib/LinearAlgebra/Matrix/ToLin.lean + theorem LinearMap.toMatrix_pow Modified Mathlib/LinearAlgebra/Trace.lean + theorem LinearMap.isNilpotent_trace_of_isNilpotent Modified Mathlib/RingTheory/Nilpotent.lean + theorem LinearMap.isNilpotent_toMatrix_iff 2023-09-04 20:25:50 02e140c feat: Girth of a simple graph (#6948) Define the girth of a simple graph as a `ℕ∞`. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Combinatorics/SimpleGraph/Acyclic.lean + theorem SimpleGraph.isAcyclic_bot Modified Mathlib/Combinatorics/SimpleGraph/Connectivity.lean + theorem SimpleGraph.Walk.IsCycle.ne_bot Added Mathlib/Combinatorics/SimpleGraph/Girth.lean + theorem SimpleGraph.exists_girth_eq_length + theorem SimpleGraph.girth_anti + theorem SimpleGraph.girth_bot + theorem SimpleGraph.girth_eq_top + theorem SimpleGraph.le_girth 2023-09-04 17:35:38 2f410e1 feat(Algebra): integer powers of -1 (#6720) This PR introduces the map `Int.negOnePow : ℤ → ℤ` which sends `n` to `(-1 : Units ℤ) ^ n`. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/GroupPower/NegOnePow.lean + def Int.negOnePow + theorem Int.negOnePow_add + theorem Int.negOnePow_def + theorem Int.negOnePow_eq_iff + theorem Int.negOnePow_eq_neg_one_iff + theorem Int.negOnePow_eq_one_iff + theorem Int.negOnePow_even + theorem Int.negOnePow_mul_self + theorem Int.negOnePow_neg + theorem Int.negOnePow_odd + theorem Int.negOnePow_one + theorem Int.negOnePow_sub + theorem Int.negOnePow_succ + theorem Int.negOnePow_two_mul + theorem Int.negOnePow_zero 2023-09-04 17:05:07 22f1f9f feat: Binary coproducts of Monoids (#6828) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/GroupTheory/Coprod.lean + inductive Monoid.Coprod.Rel + theorem Monoid.Coprod.ext_hom + theorem Monoid.Coprod.induction_on + def Monoid.Coprod.inl + theorem Monoid.Coprod.inl_apply + theorem Monoid.Coprod.inl_injective + theorem Monoid.Coprod.inl_leftInverse + def Monoid.Coprod.inr + theorem Monoid.Coprod.inr_apply + theorem Monoid.Coprod.inr_injective + theorem Monoid.Coprod.inr_leftInverse + theorem Monoid.Coprod.inv_def + def Monoid.Coprod.lift + theorem Monoid.Coprod.lift_inl + theorem Monoid.Coprod.lift_inr + theorem Monoid.Coprod.lift_mrange_le + theorem Monoid.Coprod.lift_range_le + theorem Monoid.Coprod.mrange_eq_sup + theorem Monoid.Coprod.range_eq_sup + def Monoid.Coprod 2023-09-04 17:05:05 174c56b chore: redefine AlgebraicClosure to make certain instance diagrams commute (#6734) A similar trick to the trick used in #4891 makes all the required type class diagrams commute. I also added instances for `CharP` and `CharZero` and tests for the instance diagrams. ESTIMATED CHANGES Modified Mathlib/FieldTheory/IsAlgClosed/AlgebraicClosure.lean + def AlgebraicClosure.algEquivAlgebraicClosureAux - theorem AlgebraicClosure.algebraMap_def - theorem AlgebraicClosure.exists_ofStep - theorem AlgebraicClosure.exists_root +/- theorem AlgebraicClosure.isAlgebraic - def AlgebraicClosure.ofStep - def AlgebraicClosure.ofStepHom - theorem AlgebraicClosure.ofStep_succ + theorem AlgebraicClosureAux.exists_ofStep + theorem AlgebraicClosureAux.exists_root + theorem AlgebraicClosureAux.instIsAlgClosed + theorem AlgebraicClosureAux.isAlgClosure + theorem AlgebraicClosureAux.isAlgebraic + def AlgebraicClosureAux.ofStep + def AlgebraicClosureAux.ofStepHom + theorem AlgebraicClosureAux.ofStep_succ + def AlgebraicClosureAux Modified Mathlib/FieldTheory/IsAlgClosed/Basic.lean + theorem IsAlgClosed.of_ringEquiv 2023-09-04 17:05:04 f3bcca5 feat: abelian categories have homology (#6586) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Homology/ShortComplex/Abelian.lean + theorem CategoryTheory.ShortComplex.abelianImageToKernel_comp_kernel_ι + theorem CategoryTheory.ShortComplex.abelianImageToKernel_comp_kernel_ι_comp_cokernel_π + theorem CategoryTheory.ShortComplex.cokernel_π_comp_cokernelToAbelianCoimage + theorem CategoryTheory.ShortComplex.kernel_ι_comp_cokernel_π_comp_cokernelToAbelianCoimage 2023-09-04 16:01:21 b1caad9 refactor: colimits in ModuleCat (#6925) This PR refactors the construction of colimits of modules in order to prove that the forgetful functor to abelian groups preserves colimits. ESTIMATED CHANGES Modified Mathlib/Algebra/Category/AlgebraCat/Limits.lean Modified Mathlib/Algebra/Category/GroupCat/Basic.lean Modified Mathlib/Algebra/Category/GroupCat/Colimits.lean +/- def AddCommGroupCat.Colimits.ColimitType +/- inductive AddCommGroupCat.Colimits.Relation +/- def AddCommGroupCat.Colimits.coconeFun +/- def AddCommGroupCat.Colimits.coconeMorphism +/- def AddCommGroupCat.Colimits.colimitCoconeIsColimit +/- def AddCommGroupCat.Colimits.colimitSetoid +/- def AddCommGroupCat.Colimits.descFun +/- def AddCommGroupCat.Colimits.descFunLift +/- def AddCommGroupCat.Colimits.descMorphism +/- theorem AddCommGroupCat.Colimits.quot_zero + theorem AddCommGroupCat.hasColimit + theorem AddCommGroupCat.hasColimitsOfShape + theorem AddCommGroupCat.hasColimitsOfSize Modified Mathlib/Algebra/Category/GroupCat/Limits.lean Modified Mathlib/Algebra/Category/ModuleCat/Basic.lean + theorem ModuleCat.forget₂_map_homMk + def ModuleCat.homMk + def ModuleCat.mkOfSMul' + theorem ModuleCat.mkOfSMul'_smul + theorem ModuleCat.mkOfSMul_smul + def ModuleCat.smul + def ModuleCat.smulNatTrans + theorem ModuleCat.smul_naturality Modified Mathlib/Algebra/Category/ModuleCat/Colimits.lean - def ModuleCat.Colimits.ColimitType.mk - def ModuleCat.Colimits.ColimitType - inductive ModuleCat.Colimits.Prequotient - inductive ModuleCat.Colimits.Relation - def ModuleCat.Colimits.coconeFun - def ModuleCat.Colimits.coconeMorphism - theorem ModuleCat.Colimits.cocone_naturality - theorem ModuleCat.Colimits.cocone_naturality_components - def ModuleCat.Colimits.colimit - def ModuleCat.Colimits.colimitCocone - def ModuleCat.Colimits.colimitCoconeIsColimit - def ModuleCat.Colimits.colimitSetoid - def ModuleCat.Colimits.descFun - def ModuleCat.Colimits.descFunLift - def ModuleCat.Colimits.descMorphism - theorem ModuleCat.Colimits.quot_add - theorem ModuleCat.Colimits.quot_neg - theorem ModuleCat.Colimits.quot_smul - theorem ModuleCat.Colimits.quot_zero Modified Mathlib/Algebra/Homology/LocalCohomology.lean + theorem localCohomology.hasColimitDiagram +/- def localCohomology.ofDiagram 2023-09-04 16:01:20 25953fd refactor(QuotientGroup): small change to statement of lift (#6848) ESTIMATED CHANGES Modified Mathlib/GroupTheory/QuotientGroup.lean +/- def QuotientGroup.lift +/- theorem QuotientGroup.lift_mk' +/- theorem QuotientGroup.lift_mk +/- theorem QuotientGroup.lift_quot_mk 2023-09-04 15:04:20 7a05698 feat: `x ↦ x / a` tendsto to infinity in `ℕ` (#6914) and a few lemmas missing from `Order.Filter.AtTopBot`. ESTIMATED CHANGES Modified Mathlib/Analysis/SpecificLimits/Basic.lean + theorem Nat.tendsto_div_const_atTop Modified Mathlib/Order/Filter/AtTopBot.lean + theorem Filter.tendsto_div_const_atTop_iff_pos + theorem Filter.tendsto_div_const_atTop_of_pos 2023-09-04 15:04:19 80b90ea feat: the induced shift on the target category of a functor (#6652) When a functor `F : C ⥤ D` satisfies a suitable condition, this PR constructs a shift on the category `D` from a shift on the category `C`. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Shift/Induced.lean + def CategoryTheory.Functor.CommShift.ofInduced + theorem CategoryTheory.Functor.commShiftIso_eq_ofInduced + theorem CategoryTheory.HasShift.Induced.add_hom_app_obj + theorem CategoryTheory.HasShift.Induced.add_inv_app_obj + theorem CategoryTheory.HasShift.Induced.zero_hom_app_obj + theorem CategoryTheory.HasShift.Induced.zero_inv_app_obj + theorem CategoryTheory.shiftFunctorAdd_hom_app_obj_of_induced + theorem CategoryTheory.shiftFunctorAdd_inv_app_obj_of_induced + theorem CategoryTheory.shiftFunctorZero_hom_app_obj_of_induced + theorem CategoryTheory.shiftFunctorZero_inv_app_obj_of_induced + theorem CategoryTheory.shiftFunctor_of_induced 2023-09-04 15:04:17 8dcd6db feat(SetTheory/ZFC): ZFSet is the type of small sets of ZFSets (#6226) ESTIMATED CHANGES Modified Mathlib/SetTheory/ZFC/Basic.lean 2023-09-04 14:41:03 9615a16 feat: uniqueness of the localized category up to equivalence (#6867) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Localization/Predicate.lean + def CategoryTheory.Localization.compUniqFunctor + def CategoryTheory.Localization.compUniqInverse + def CategoryTheory.Localization.isoUniqFunctor + def CategoryTheory.Localization.uniq + theorem CategoryTheory.Localization.uniq_symm 2023-09-04 14:41:02 1c6dff2 feat: first definitions in the API for the homology of short complexes (#6443) In this PR, some basic constructions for left and right homology of short complexes are combined. ESTIMATED CHANGES Modified Mathlib/Algebra/Homology/ShortComplex/Homology.lean + def CategoryTheory.ShortComplex.HomologyData.ofIsColimitCokernelCofork + def CategoryTheory.ShortComplex.HomologyData.ofIsLimitKernelFork + def CategoryTheory.ShortComplex.HomologyData.op + def CategoryTheory.ShortComplex.HomologyData.unop + theorem CategoryTheory.ShortComplex.HomologyMapData.comm + theorem CategoryTheory.ShortComplex.HomologyMapData.congr_left_φH + def CategoryTheory.ShortComplex.HomologyMapData.homologyMapData + structure CategoryTheory.ShortComplex.HomologyMapData 2023-09-04 13:19:04 a085bc3 feat(Data/Nat/Order/Basic): le_one_iff_eq_zero_or_eq_one (#6949) ESTIMATED CHANGES Modified Mathlib/Data/Nat/Order/Basic.lean + theorem Nat.le_one_iff_eq_zero_or_eq_one 2023-09-04 13:19:03 1cf05bb feat: More complete lattice `WithTop` lemmas (#6947) and corresponding lemmas for `ℕ∞`. Also fix implicitness of `iff` lemmas. ESTIMATED CHANGES Modified Mathlib/Analysis/NormedSpace/BanachSteinhaus.lean Modified Mathlib/Analysis/NormedSpace/OperatorNorm.lean Modified Mathlib/Data/ENat/Lattice.lean + theorem ENat.coe_iInf +/- theorem ENat.coe_iSup + theorem ENat.coe_sInf + theorem ENat.coe_sSup + theorem ENat.iInf_coe_eq_top + theorem ENat.iInf_coe_lt_top + theorem ENat.iInf_coe_ne_top + theorem ENat.iSup_coe_eq_top +/- theorem ENat.iSup_coe_lt_top + theorem ENat.iSup_coe_ne_top Modified Mathlib/Data/Real/ENNReal.lean + theorem ENNReal.iInf_coe_eq_top + theorem ENNReal.iInf_coe_lt_top +/- theorem ENNReal.iSup_coe_eq_top +/- theorem ENNReal.iSup_coe_lt_top Modified Mathlib/Data/Sigma/Basic.lean + theorem Sigma.exists' + theorem Sigma.forall' Modified Mathlib/Order/CompleteLattice.lean + theorem iInf_prod' + theorem iInf_sigma' + theorem iSup_prod' + theorem iSup_sigma' Modified Mathlib/Order/ConditionallyCompleteLattice/Basic.lean + theorem WithTop.iInf_coe_eq_top + theorem WithTop.iInf_coe_lt_top +/- theorem WithTop.iSup_coe_eq_top +/- theorem WithTop.iSup_coe_lt_top Modified Mathlib/Order/Height.lean 2023-09-04 13:19:02 05474e3 feat(Data/Set): +3 lemmas about `Set.inclusion` (#6944) ESTIMATED CHANGES Modified Mathlib/Data/Set/Basic.lean + theorem Set.inclusion_inj + theorem Set.inclusion_le_inclusion + theorem Set.inclusion_lt_inclusion 2023-09-04 13:19:01 faba1c3 chore: delete restate_axiom (#6939) This isn't used in Mathlib4, and wasn't useful during the port, so I think we can just drop it now. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/CategoryTheory/Category/Basic.lean Modified Mathlib/Mathport/Syntax.lean Modified Mathlib/Tactic.lean Deleted Mathlib/Tactic/RestateAxiom.lean Modified scripts/style-exceptions.txt Deleted test/restate_axiom.lean - structure A 2023-09-04 13:19:00 8dea0d0 chore: Fix `add_left_embedding_eq_add_right_embedding` name (#6935) This was accidentally snake case. ESTIMATED CHANGES Modified Mathlib/Algebra/Hom/Embedding.lean + theorem mulLeftEmbedding_eq_mulRightEmbedding - theorem mul_left_embedding_eq_mul_right_embedding Modified Mathlib/Combinatorics/Additive/SalemSpencer.lean 2023-09-04 13:18:59 fa813a8 feat(Int/Units): a few lemmas about ℤˣ (#6933) ESTIMATED CHANGES Modified Mathlib/Data/Int/Units.lean + theorem Int.neg_units_ne_self + theorem Int.units_ne_iff_eq_neg + theorem Int.units_ne_neg_self 2023-09-04 13:18:58 57559c5 feat: Sup-closed sets (#6901) This defines sets closed under supremum/infimum, shows that every set has a sup-closure/inf-closure and prove that if every sup-closed/inf-closed set in a sup-semilattice/inf-semilattice has a least upper bound/greatest lower, then the lattice is in fact complete. As a bonus, we use our new predicate in `Order.CompactlyGenerated`. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Analysis/Convex/Hull.lean +/- theorem Convex.convexHull_eq Modified Mathlib/Data/Finset/Lattice.lean - theorem Finset.inf_closed_of_inf_closed - theorem Finset.sup_closed_of_sup_closed Modified Mathlib/Order/Closure.lean +/- theorem ClosureOperator.mem_mk₃_closed Modified Mathlib/Order/CompactlyGenerated.lean Added Mathlib/Order/SupClosed.lean + theorem Finset.inf'_union + theorem Finset.sup'_union + theorem InfClosed.codirectedOn + theorem InfClosed.finsetInf'_mem + theorem InfClosed.finsetInf_mem + theorem InfClosed.inter + def InfClosed + def SemilatticeInf.toCompleteSemilatticeInf + def SemilatticeSup.toCompleteSemilatticeSup + theorem SupClosed.directedOn + theorem SupClosed.finsetSup'_mem + theorem SupClosed.finsetSup_mem + theorem SupClosed.inter + def SupClosed + theorem infClosed_empty + theorem infClosed_iInter + theorem infClosed_infClosure + theorem infClosed_preimage_ofDual + theorem infClosed_preimage_toDual + theorem infClosed_sInter + theorem infClosed_singleton + theorem infClosed_univ + def infClosure + theorem infClosure_empty + theorem infClosure_eq_self + theorem infClosure_idem + theorem infClosure_mono + theorem infClosure_singleton + theorem infClosure_univ + theorem isGLB_infClosure + theorem isLUB_supClosure + theorem lowerBounds_infClosure + theorem subset_infClosure + theorem subset_supClosure + theorem supClosed_empty + theorem supClosed_iInter + theorem supClosed_preimage_ofDual + theorem supClosed_preimage_toDual + theorem supClosed_sInter + theorem supClosed_singleton + theorem supClosed_supClosure + theorem supClosed_univ + def supClosure + theorem supClosure_empty + theorem supClosure_eq_self + theorem supClosure_idem + theorem supClosure_mono + theorem supClosure_singleton + theorem supClosure_univ + theorem upperBounds_supClosure 2023-09-04 13:18:56 351431b feat: nilpotent matrices have nilpotent trace (#6588) Also some related results ESTIMATED CHANGES Modified Mathlib/Algebra/GeomSum.lean + theorem Commute.sub_dvd_pow_sub_pow + theorem one_sub_dvd_one_sub_pow + theorem sub_one_dvd_pow_sub_one Modified Mathlib/Data/Fintype/Card.lean Modified Mathlib/Data/Polynomial/Basic.lean + theorem Polynomial.coeff_one Modified Mathlib/Data/Polynomial/Coeff.lean - theorem Polynomial.coeff_one Modified Mathlib/LinearAlgebra/Matrix/Charpoly/Coeff.lean + def Matrix.charpolyRev +/- theorem Matrix.charpoly_natDegree_eq_dim + theorem Matrix.coeff_charpolyRev_eq_neg_trace + theorem Matrix.eval_charpolyRev + theorem Matrix.isNilpotent_charpoly_sub_pow_of_isNilpotent + theorem Matrix.isNilpotent_trace_of_isNilpotent + theorem Matrix.isUnit_charpolyRev_of_IsNilpotent +/- theorem Matrix.reverse_charpoly Modified Mathlib/LinearAlgebra/Matrix/Charpoly/FiniteField.lean Modified Mathlib/LinearAlgebra/Matrix/Trace.lean + theorem Matrix.trace_eq_zero_of_isEmpty Modified Mathlib/RingTheory/Polynomial/Nilpotent.lean + theorem Polynomial.isNilpotent_reflect_iff Modified Mathlib/RingTheory/PowerSeries/Basic.lean Modified test/ComputeDegree.lean 2023-09-04 12:27:13 699bc90 chore(Analysis): rename lipschitz_on_univ to lipschitzOn_univ (#6946) Also rename `dimH_image_le_of_locally_lipschitz_on` to `dimH_image_le_of_locally_lipschitzOn`. ESTIMATED CHANGES Modified Mathlib/Analysis/Calculus/FDeriv/Basic.lean Modified Mathlib/Analysis/Calculus/Inverse.lean Modified Mathlib/Analysis/Calculus/MeanValue.lean Modified Mathlib/Analysis/Normed/Group/Basic.lean + theorem IsCompact.exists_bound_of_continuousOn' - theorem IsCompact.exists_bound_of_continuous_on' Modified Mathlib/Analysis/NormedSpace/lpSpace.lean Modified Mathlib/Topology/Algebra/Polynomial.lean Modified Mathlib/Topology/Instances/ENNReal.lean Modified Mathlib/Topology/MetricSpace/HausdorffDimension.lean + theorem dimH_image_le_of_locally_lipschitzOn - theorem dimH_image_le_of_locally_lipschitz_on + theorem dimH_range_le_of_locally_lipschitzOn - theorem dimH_range_le_of_locally_lipschitz_on Modified Mathlib/Topology/MetricSpace/Holder.lean Modified Mathlib/Topology/MetricSpace/Lipschitz.lean + theorem lipschitzOn_univ - theorem lipschitz_on_univ 2023-09-04 08:29:01 01fd4ae feat: kernel of `orthogonalProjection K` is `Kᗮ` (#6943) ESTIMATED CHANGES Modified Mathlib/Analysis/InnerProductSpace/Projection.lean + theorem ker_orthogonalProjection + theorem orthogonalProjection_eq_zero_iff 2023-09-04 08:28:59 278b4e1 feat(Equicontinuity): equicontinuous family converges on a closed set (#6942) If `F : ι → X → α` is an equicontinuous family of functions and `f : X → α` is a continuous function, then `{x | Tendsto (F · x) l (𝓝 (f x))}` is a closed set. ESTIMATED CHANGES Modified Mathlib/Topology/UniformSpace/Equicontinuity.lean + theorem Equicontinuous.isClosed_setOf_tendsto - theorem EquicontinuousAt.closure + theorem EquicontinuousAt.tendsto_of_mem_closure 2023-09-04 07:35:19 04d2f7d fix(Analysis,Topology): fix names (#6938) Rename: - `tendsto_iff_norm_tendsto_one` → `tendsto_iff_norm_div_tendsto_zero`; - `tendsto_iff_norm_tendsto_zero` → `tendsto_iff_norm_sub_tendsto_zero`; - `tendsto_one_iff_norm_tendsto_one` → `tendsto_one_iff_norm_tendsto_zero`; - `Filter.Tendsto.continuous_of_equicontinuous_at` → `Filter.Tendsto.continuous_of_equicontinuousAt`. ESTIMATED CHANGES Modified Mathlib/Analysis/Calculus/FDeriv/Equiv.lean Modified Mathlib/Analysis/LocallyConvex/Barrelled.lean Modified Mathlib/Analysis/Normed/Field/Basic.lean Modified Mathlib/Analysis/Normed/Group/Basic.lean + theorem tendsto_iff_norm_div_tendsto_zero - theorem tendsto_iff_norm_tendsto_one - theorem tendsto_one_iff_norm_tendsto_one + theorem tendsto_one_iff_norm_tendsto_zero Modified Mathlib/Analysis/Normed/Order/Lattice.lean Modified Mathlib/Analysis/NormedSpace/Banach.lean Modified Mathlib/Analysis/NormedSpace/BoundedLinearMaps.lean Modified Mathlib/Analysis/NormedSpace/Multilinear.lean Modified Mathlib/Analysis/NormedSpace/OperatorNorm.lean Modified Mathlib/Analysis/NormedSpace/Units.lean Modified Mathlib/Analysis/SpecialFunctions/Log/Deriv.lean Modified Mathlib/Data/Real/Pi/Leibniz.lean Modified Mathlib/MeasureTheory/Constructions/Prod/Integral.lean Modified Mathlib/MeasureTheory/Covering/Differentiation.lean Modified Mathlib/MeasureTheory/Function/L1Space.lean Modified Mathlib/MeasureTheory/Integral/SetToL1.lean Modified Mathlib/NumberTheory/Padics/Hensel.lean Modified Mathlib/Probability/Kernel/IntegralCompProd.lean Modified Mathlib/Topology/UniformSpace/Equicontinuity.lean + theorem Filter.Tendsto.continuous_of_equicontinuousAt - theorem Filter.Tendsto.continuous_of_equicontinuous_at 2023-09-03 21:10:29 3f9dee6 chore: Undo adding a heavy import in MeasureTheory.Integral.Lebesgue. (#6850) Create a new file `MeasureTheory.Integral.Indicator` to undo adding the import of `MeasureTheory.Constructions.BorelSpace.Metrizable` in `MeasureTheory.Integral.Lebesgue` introduced in #6225. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/MeasureTheory/Integral/Indicator.lean + theorem MeasureTheory.tendsto_measure_of_tendsto_indicator + theorem MeasureTheory.tendsto_measure_of_tendsto_indicator_of_isFiniteMeasure Modified Mathlib/MeasureTheory/Integral/Lebesgue.lean - theorem MeasureTheory.tendsto_measure_of_tendsto_indicator - theorem MeasureTheory.tendsto_measure_of_tendsto_indicator_of_isFiniteMeasure 2023-09-03 19:50:33 8c47c40 feat: define weakly locally compact spaces (#6770) ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Function/ContinuousMapDense.lean +/- theorem MeasureTheory.Integrable.exists_hasCompactSupport_integral_sub_le +/- theorem MeasureTheory.Integrable.exists_hasCompactSupport_lintegral_sub_le +/- theorem MeasureTheory.Memℒp.exists_hasCompactSupport_integral_rpow_sub_le +/- theorem MeasureTheory.Memℒp.exists_hasCompactSupport_snorm_sub_le Modified Mathlib/MeasureTheory/Group/Measure.lean +/- theorem MeasureTheory.measure_univ_of_isMulLeftInvariant Modified Mathlib/MeasureTheory/Measure/Content.lean +/- theorem MeasureTheory.Content.outerMeasure_lt_top_of_isCompact Modified Mathlib/MeasureTheory/Measure/MeasureSpace.lean Modified Mathlib/Topology/Algebra/Group/Basic.lean +/- theorem exists_isCompact_isClosed_nhds_one Modified Mathlib/Topology/Algebra/Group/Compact.lean + theorem TopologicalSpace.PositiveCompacts.weaklyLocallyCompactSpace_of_group Modified Mathlib/Topology/CompactOpen.lean +/- theorem ContinuousMap.exists_tendsto_compactOpen_iff_forall Modified Mathlib/Topology/DiscreteSubset.lean +/- theorem Continuous.discrete_of_tendsto_cofinite_cocompact +/- theorem IsClosed.tendsto_coe_cofinite_iff Modified Mathlib/Topology/MetricSpace/Baire.lean Modified Mathlib/Topology/Paracompact.lean +/- theorem refinement_of_locallyCompact_sigmaCompact_of_nhds_basis +/- theorem refinement_of_locallyCompact_sigmaCompact_of_nhds_basis_set Modified Mathlib/Topology/ProperMap.lean +/- theorem isProperMap_iff_isCompact_preimage +/- theorem isProperMap_iff_tendsto_cocompact Modified Mathlib/Topology/Separation.lean +/- theorem exists_open_superset_and_isCompact_closure +/- theorem exists_open_with_compact_closure + theorem locally_compact_of_compact - theorem locally_compact_of_compact_nhds Modified Mathlib/Topology/Sets/Compacts.lean Modified Mathlib/Topology/SubsetProperties.lean - theorem exists_compact_mem_nhds +/- theorem exists_compact_superset Modified Mathlib/Topology/UniformSpace/Compact.lean +/- theorem Continuous.tendstoUniformly Modified Mathlib/Topology/UniformSpace/CompactConvergence.lean +/- theorem ContinuousMap.tendstoLocallyUniformly_of_tendsto +/- theorem ContinuousMap.tendsto_iff_tendstoLocallyUniformly 2023-09-03 17:06:30 58a5282 feat(SetTheory): definition of initial ordinals, ω₁ as an ordinal, ordinal-indexed unions (#6404) - I setup notation for the first ordinal in each cardinality. - `ω₁` is defined as an ordinal, not as an `out` (cf. `MeasureTheory.CardMeasurableSpace`). - Lemma using the cofinality of `ω₁`. - Lemma on the cardinality of ordinal-indexed `iUnion`s in preparation for material on the Borel hierarchy. ESTIMATED CHANGES Modified Mathlib/SetTheory/Cardinal/Cofinality.lean + theorem Ordinal.sup_sequence_lt_omega1 Modified Mathlib/SetTheory/Cardinal/Ordinal.lean + theorem Ordinal.Cardinal.mk_iUnion_Ordinal_le_of_le + theorem Ordinal.omega_lt_omega1 Modified Mathlib/SetTheory/Ordinal/Basic.lean + theorem Cardinal.card_le_iff + theorem Cardinal.card_le_of_le_ord 2023-09-03 15:44:14 a28c357 feat(GroupTheory/Complement): the equivalence and some corresponding lemmas (#6899) ESTIMATED CHANGES Modified Mathlib/GroupTheory/Complement.lean + theorem Subgroup.IsComplement.coe_equiv_fst_eq_one_iff_mem + theorem Subgroup.IsComplement.coe_equiv_snd_eq_one_iff_mem + theorem Subgroup.IsComplement.equiv_fst_eq_iff_leftCosetEquivalence + theorem Subgroup.IsComplement.equiv_fst_eq_mul_inv + theorem Subgroup.IsComplement.equiv_fst_eq_one_of_mem_of_one_mem + theorem Subgroup.IsComplement.equiv_fst_eq_self_iff_mem + theorem Subgroup.IsComplement.equiv_fst_eq_self_of_mem_of_one_mem + theorem Subgroup.IsComplement.equiv_fst_mul_equiv_snd + theorem Subgroup.IsComplement.equiv_mul_left + theorem Subgroup.IsComplement.equiv_mul_left_of_mem + theorem Subgroup.IsComplement.equiv_mul_right + theorem Subgroup.IsComplement.equiv_mul_right_of_mem + theorem Subgroup.IsComplement.equiv_one + theorem Subgroup.IsComplement.equiv_snd_eq_iff_rightCosetEquivalence + theorem Subgroup.IsComplement.equiv_snd_eq_inv_mul + theorem Subgroup.IsComplement.equiv_snd_eq_one_of_mem_of_one_mem + theorem Subgroup.IsComplement.equiv_snd_eq_self_iff_mem + theorem Subgroup.IsComplement.equiv_snd_eq_self_of_mem_of_one_mem + theorem Subgroup.IsComplement.equiv_symm_apply + theorem Subgroup.IsComplement.leftCosetEquivalence_equiv_fst + theorem Subgroup.IsComplement.rightCosetEquivalence_equiv_snd 2023-09-03 15:44:13 b696229 feat: The range in a succ order is unbounded (#6883) Strictly monotone/antitone functions from an order without top/bottom to a succ/pred order have unbounded range. ESTIMATED CHANGES Modified Mathlib/Order/Max.lean Modified Mathlib/Order/SuccPred/Basic.lean + theorem Order.pred_lt_pred_of_not_isMin + theorem Order.succ_lt_succ_of_not_isMax + theorem StrictAnti.not_bddAbove_range + theorem StrictAnti.not_bddBelow_range + theorem StrictMono.not_bddAbove_range + theorem StrictMono.not_bddBelow_range 2023-09-03 15:44:12 8e53cc7 feat(Order/CompletePartialOrder): Introduce complete partial orders (#6170) This PR considers complete partial orders (sometimes called directedly complete partial orders). These are partial orders for which every directed set has a least upper bound. Complete partial orders are a natural framework for studying approximations and fixed point theorems (Davey & Priestley, Chapter 8). ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Order/CompletePartialOrder.lean + theorem CompletePartialOrder.scottContinuous Modified Mathlib/Order/OmegaCompletePartialOrder.lean + theorem OmegaCompletePartialOrder.Chain.directed + theorem OmegaCompletePartialOrder.Chain.isChain_range 2023-09-03 14:49:51 8c7f8f7 feat(NumberTheory/Padics/PadicVal): factorial_choose' (#5860) - [x] depends on: #5803 ESTIMATED CHANGES Modified Mathlib/Data/Nat/Multiplicity.lean + theorem Nat.Prime.multiplicity_choose' Modified Mathlib/NumberTheory/Padics/PadicVal.lean + theorem padicValNat_choose' + theorem sub_one_mul_padicValNat_choose_eq_sub_sum_digits' + theorem sub_one_mul_padicValNat_choose_eq_sub_sum_digits 2023-09-03 13:54:30 21873b4 chore(Order.Filter): remove duplicated lemmas (#6932) Remove the lemmas `le_pure_iff_eq_pure` (duplicate of `NeBot.le_pure_iff`) and `eq_bot_or_pure_of_subsingleton_mem` (duplicate of `subsingleton_iff_bot_or_pure`). This requires moving a few lemmas after their non-duplicate prerequisites. ESTIMATED CHANGES Modified Mathlib/Order/Filter/AtTopBot.lean - theorem Filter.atBot_eq_pure_of_isBot - theorem Filter.atTop_eq_pure_of_isTop Modified Mathlib/Order/Filter/Bases.lean - theorem Filter.isCountablyGenerated_of_subsingleton_mem Modified Mathlib/Order/Filter/Basic.lean - theorem Filter.eq_bot_or_pure_of_subsingleton_mem - theorem Filter.eq_pure_iff_singleton_mem - theorem Filter.le_pure_iff_eq_pure Modified Mathlib/Order/Filter/Subsingleton.lean + theorem Filter.Subsingleton.isCountablyGenerated Modified Mathlib/Order/Filter/Ultrafilter.lean + theorem Filter.atBot_eq_pure_of_isBot + theorem Filter.atTop_eq_pure_of_isTop 2023-09-03 13:01:48 0ed13e5 docs: Improve `DenseEmbedding` explanation (#6817) Match https://github.com/leanprover-community/mathlib/pull/18134 ESTIMATED CHANGES Modified Mathlib/Topology/DenseEmbedding.lean 2023-09-03 11:06:39 a128cd9 feat: push-forwards of finite measures and probability measures (#6551) Add push-forwards of finite measures and probability measures, and prove that push-forwards under continuous functions are continuous (w.r.t. the topologies of weak convergence of measures). Besides being a natural addition to the API, this should enable simple proofs of, for example, continuity of some parametric distributions (multi-dimensional gaussians, exponential distribution, ...) with respect to their parameters. ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Measure/FiniteMeasure.lean + theorem MeasureTheory.FiniteMeasure.continuous_map + theorem MeasureTheory.FiniteMeasure.map_add + theorem MeasureTheory.FiniteMeasure.map_apply' + theorem MeasureTheory.FiniteMeasure.map_apply + theorem MeasureTheory.FiniteMeasure.map_apply_of_aemeasurable + theorem MeasureTheory.FiniteMeasure.map_smul + theorem MeasureTheory.FiniteMeasure.tendsto_map_of_tendsto_of_continuous Modified Mathlib/MeasureTheory/Measure/ProbabilityMeasure.lean + theorem MeasureTheory.ProbabilityMeasure.continuous_map + theorem MeasureTheory.ProbabilityMeasure.map_apply' + theorem MeasureTheory.ProbabilityMeasure.map_apply + theorem MeasureTheory.ProbabilityMeasure.map_apply_of_aemeasurable + theorem MeasureTheory.ProbabilityMeasure.tendsto_map_of_tendsto_of_continuous 2023-09-02 21:54:42 acc7084 feat(Topology/../Equicontinuity): add lemmas about finite index type (#6849) ESTIMATED CHANGES Modified Mathlib/Topology/UniformSpace/Equicontinuity.lean + theorem equicontinuousAt_finite + theorem equicontinuousAt_unique + theorem equicontinuous_finite + theorem equicontinuous_unique + theorem uniformEquicontinuous_finite + theorem uniformEquicontinuous_unique 2023-09-02 20:42:59 0135e4c feat: Elements less than some value of a sorted tuple are at the beginning of the tuple. (#6728) For a sorted (monotone) tuple containing n elements with exactly r elements less than or equal some value, all these elements are at the first r locations of the tuple. Proofs by @Ruben-VandeVelde , @ericrbg @eric-wieser see [Zulip Thread](https://leanprover.zulipchat.com/#narrow/stream/217875-Is-there-code-for-X.3F/topic/Sorted.20nonnegative.20tuple.20must.20have.20zero.20elements.20at.20start) ESTIMATED CHANGES Modified Mathlib/Data/Fin/Tuple/Sort.lean + theorem Tuple.lt_card_ge_iff_apply_ge_of_antitone + theorem Tuple.lt_card_le_iff_apply_le_of_monotone Modified Mathlib/Data/Fintype/Card.lean + theorem Fintype.card_fin_lt_of_le 2023-09-02 17:53:21 1cd61aa feat: Zagier's "one-sentence proof" of Fermat's theorem on sums of two squares (#6629) ESTIMATED CHANGES Modified Archive.lean Added Archive/ZagierTwoSquares.lean + theorem Nat.Prime.sq_add_sq' + theorem Zagier.card_fixedPoints_eq_one + def Zagier.complexInvo + theorem Zagier.complexInvo_sq + theorem Zagier.eq_of_mem_fixedPoints + def Zagier.obvInvo + theorem Zagier.obvInvo_sq + def Zagier.singletonFixedPoint + theorem Zagier.sq_add_sq_of_nonempty_fixedPoints + def Zagier.zagierSet + theorem Zagier.zagierSet_lower_bound + theorem Zagier.zagierSet_subset + theorem Zagier.zagierSet_upper_bound Modified Mathlib/GroupTheory/Perm/Cycle/Type.lean + theorem Equiv.Perm.card_fixedPoints_modEq Modified docs/references.bib 2023-09-02 16:56:54 8953aea fix: remove a bad Algebra instance in FractionRing (#6724) ESTIMATED CHANGES Modified Mathlib/FieldTheory/IsAlgClosed/Basic.lean Modified Mathlib/FieldTheory/Minpoly/IsIntegrallyClosed.lean Modified Mathlib/RingTheory/Localization/FractionRing.lean + theorem FractionRing.isScalarTower_liftAlgebra Modified Mathlib/RingTheory/Localization/Integral.lean Modified Mathlib/RingTheory/WittVector/Isocrystal.lean 2023-09-02 15:49:48 40f72b5 feat(GroupTheory/CommutingProbability): Group with commuting probability exactly 1/n (#6582) This PR constructs a group with commuting probability exactly 1/n as a product of dihedral groups. Besides independent interest, this construction is useful for handling factors of 1/n (e.g., the end of this blog post: https://randompermutations.com/2015/02/06/commuting-probability-of-compact-groups/). ESTIMATED CHANGES Modified Mathlib/GroupTheory/CommutingProbability.lean + theorem DihedralGroup.commProb_cons + theorem DihedralGroup.commProb_nil + theorem DihedralGroup.commProb_odd + theorem DihedralGroup.commProb_reciprocal + def DihedralGroup.reciprocalFactors + theorem DihedralGroup.reciprocalFactors_even + theorem DihedralGroup.reciprocalFactors_odd + theorem DihedralGroup.reciprocalFactors_one + theorem DihedralGroup.reciprocalFactors_zero 2023-09-02 14:31:58 e319f2a chore: factor out "DTT hell" of Equiv.piCongrLeft to a single proof (#6835) ESTIMATED CHANGES Modified Mathlib/Logic/Equiv/Basic.lean + theorem Equiv.piCongrLeft'_symm_apply_apply + theorem Equiv.piCongrLeft_apply + theorem Equiv.piCongrLeft_apply_apply + theorem Equiv.piCongrLeft_symm_apply 2023-09-02 12:08:48 f327170 feat: tactic `compute_degree` (#6221) This PR ports the whole `compute_degree` tactic from mathlib3. The tactic makes progress on goals of the form * `natDegree f ≤ d`, * `degree f ≤ d`, * `natDegree f = d`, * `degree f = d`, * `coeff f n = r`. The variant `compute_degree!` applies `norm_num` and `assumption` to all left-over goals. For instance, here is a valid computation of the degree of the 105-th cyclotomic polynomial: ```lean example : natDegree (1 + X + X ^ 2 - X ^ 5 - X ^ 6 - 2 * X ^ 7 - X ^ 8 - X ^ 9 + X ^ 12 + X ^ 13 + X ^ 14 + X ^ 15 + X ^ 16 + X ^ 17 - X ^ 20 - X ^ 22 - X ^ 24 - X ^ 26 - X ^ 28 + X ^ 31 + X ^ 32 + X ^ 33 + X ^ 34 + X ^ 35 + X ^ 36 - X ^ 39 - X ^ 40 - 2 * X ^ 41 - X ^ 42 - X ^ 43 + X ^ 46 + X ^ 47 + X ^ 48 : ℤ[X]) = 48 := by compute_degree! ``` (Lean takes approximately 3s on my computer to prove the computation above.) Affected files: ``` Mathlib/Lean/Expr/Basic.lean Mathlib/Tactic/ComputeDegree.lean test/ComputeDegree.lean ``` ESTIMATED CHANGES Modified Mathlib/Lean/Expr/Basic.lean + def Lean.Expr.le? Modified Mathlib/Tactic/ComputeDegree.lean + theorem Mathlib.Tactic.ComputeDegree.coeff_add_of_eq + theorem Mathlib.Tactic.ComputeDegree.coeff_congr + theorem Mathlib.Tactic.ComputeDegree.coeff_congr_lhs + theorem Mathlib.Tactic.ComputeDegree.coeff_int_cast_ite + theorem Mathlib.Tactic.ComputeDegree.coeff_mul_add_of_le_natDegree_of_eq_ite + theorem Mathlib.Tactic.ComputeDegree.coeff_pow_of_natDegree_le_of_eq_ite' + theorem Mathlib.Tactic.ComputeDegree.coeff_sub_of_eq + theorem Mathlib.Tactic.ComputeDegree.degree_eq_of_le_of_coeff_ne_zero' + def Mathlib.Tactic.ComputeDegree.dispatchLemma + def Mathlib.Tactic.ComputeDegree.getCongrLemma + def Mathlib.Tactic.ComputeDegree.miscomputedDegree? + theorem Mathlib.Tactic.ComputeDegree.natDegree_eq_of_le_of_coeff_ne_zero' + def Mathlib.Tactic.ComputeDegree.splitApply + def Mathlib.Tactic.ComputeDegree.try_rfl + def Mathlib.Tactic.ComputeDegree.twoHeadsArgs Added test/ComputeDegree.lean 2023-09-02 10:56:36 fcac03a feat(Subgroup): apply_ofInjective_symm (#6898) ESTIMATED CHANGES Modified Mathlib/GroupTheory/Subgroup/Basic.lean + theorem MonoidHom.apply_ofInjective_symm 2023-09-02 08:01:51 f36f228 fix(GroupTheory/GroupAction/Basic): correct name from to_additive (#6920) correct `AddAction.mem_fixedPoints_iff_card_orbit_eq_zero` to `AddAction.mem_fixedPoints_iff_card_orbit_eq_one`, as it was wrongly chosen from `MulAction.mem_fixedPoints_iff_card_orbit_eq_one` by to_additive tag ESTIMATED CHANGES Modified Mathlib/GroupTheory/GroupAction/Basic.lean 2023-09-02 07:00:01 ab6dac9 fix: set `vsc` variable properly in debian install script (#6922) This simply redirects standard error to `/dev/null` in the `which` commands so that it doesn't set the `vsc` variable to garbage. ESTIMATED CHANGES Modified scripts/install_debian.sh 2023-09-01 23:02:31 16aae96 feat: let `apply_fun` apply functions at LT and Ne hypotheses (#6807) ESTIMATED CHANGES Modified Mathlib/Tactic/ApplyFun.lean Modified test/apply_fun.lean 2023-09-01 20:13:24 cda5caa chore: tidy various files (#6838) ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/NonUnitalSubalgebra.lean Modified Mathlib/Algebra/Category/ModuleCat/ChangeOfRings.lean Modified Mathlib/Algebra/RingQuot.lean Modified Mathlib/Data/Set/Finite.lean Modified Mathlib/Data/Set/Image.lean Modified Mathlib/LinearAlgebra/Basic.lean +/- def LinearMap.applyₗ' +/- def LinearMap.compRight +/- def LinearMap.domRestrict' +/- def LinearMap.evalAddMonoidHom +/- def LinearMap.funLeft +/- def LinearMap.iterateKer +/- def LinearMap.iterateRange +/- def LinearMap.smulRight +/- def LinearMap.smulRightₗ +/- def LinearMap.toAddMonoidHom' +/- def Submodule.comapSubtypeEquivOfLe +/- def Submodule.compatibleMaps + theorem Submodule.map_toAddSubmonoid' - theorem Submodule.map_to_add_submonoid' +/- def Submodule.orderIsoMapComap Modified Mathlib/LinearAlgebra/CliffordAlgebra/Basic.lean Modified Mathlib/LinearAlgebra/TensorAlgebra/Basic.lean Modified Mathlib/LinearAlgebra/Trace.lean Modified Mathlib/Topology/Category/CompHaus/Limits.lean Modified Mathlib/Topology/Category/Stonean/Basic.lean Modified Mathlib/Topology/Category/Stonean/Limits.lean Modified Mathlib/Topology/ContinuousFunction/Algebra.lean Modified Mathlib/Topology/ExtremallyDisconnected.lean Modified Mathlib/Topology/LocalHomeomorph.lean Modified Mathlib/Topology/Order/LowerUpperTopology.lean - theorem LowerDual_iff_Upper - theorem UpperDual_iff_Lower + theorem lower_dual_iff_upper + theorem upper_dual_iff_lower 2023-09-01 13:27:42 b5fcdfd feat: define the discriminant of a number field (#6394) This PR defines the discriminant of a number field as the discriminant of `RingOfIntegers.basis` and proves some basic results, mainly: it does not depend upon the choice of the integral basis and it is equal to 1 for `ℚ`. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/NumberTheory/NumberField/Discriminant.lean + theorem NumberField.coe_discr + theorem NumberField.discr_eq_discr + theorem NumberField.discr_ne_zero + theorem Rat.numberField_discr 2023-09-01 11:54:54 4557040 chore: fix universe (#6911) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Limits/Shapes/Products.lean 2023-09-01 11:26:31 fbaf76b fix: use token when CI merges to nightly-testing (#6916) If we use the default tokens, then further workflows are not triggered by the pushes here. ESTIMATED CHANGES Modified .github/workflows/nightly_bump_toolchain.yml Modified .github/workflows/nightly_merge_master.yml 2023-09-01 09:37:54 5e3de16 ci: automated `nightly-testing` branch (#6823) This PR adds three workflows that manage a `nightly-testing` branch. * Every commit to `master` is merged to `nightly-testing`, resolving conflicts in favour of `nightly-testing`. * Once a day the `lean-toolchain` is bumped to the newest Lean nightly release. * If CI fails, a bot posts in the mathlib reviewers stream. The aim is to get quick notification that a nightly release of Lean is incompatible with Mathlib. The `nightly-testing` branch is not intended to ever contain human contributions, and in particular it is always okay to delete it and recreate it from `master`. If there are breaking changes: * If it could be fixed by a change to Mathlib that would work both on the current `lean-toolchain` used by `master`, and the latest nightlies, please make the PR to Mathlib `master`. * If it requires a fix that doesn't make sense on the current `lean-toolchain` used by `master`, please make a PR with a new `lean-toolchain`, mark that PR as `blocked-by-core-release`, but also **merge** your PR into `nightly-testing` (once you've verified it works!) There is no attempt to avoid repeated messages if we've already notified zulip about the failure, and subsequent commits continue to fail. Suggestions for dealing with that welcome. ESTIMATED CHANGES Added .github/workflows/nightly_bump_toolchain.yml Added .github/workflows/nightly_detect_failure.yml Added .github/workflows/nightly_merge_master.yml 2023-09-01 06:07:43 5eb7810 fix: handling of newlines in CI comments to Lean4 (#6909) I didn't get escaping right the [first time](https://github.com/leanprover-community/mathlib4/pull/6866#discussion_r1311279563). ESTIMATED CHANGES Modified scripts/lean-pr-testing-comments.sh 2023-09-01 05:47:17 3d839ab fix: correct link to workflow when reporting CI to Lean4 repo (#6908) ESTIMATED CHANGES Modified .github/workflows/bors.yml Modified .github/workflows/build.yml Modified .github/workflows/build.yml.in Modified .github/workflows/build_fork.yml Modified scripts/lean-pr-testing-comments.sh 2023-08-31 14:25:02 0469f84 chore: bump Std (#6884) We gain https://github.com/leanprover/std4/pull/236 and https://github.com/leanprover/std4/pull/235. ESTIMATED CHANGES Modified Mathlib/Tactic/ToAdditive.lean Modified lake-manifest.json 2023-08-31 13:03:29 0a4dce7 feat: report back to lean4 repository results of lean-pr-testing branches (#6866) ESTIMATED CHANGES Modified .github/workflows/bors.yml Modified .github/workflows/build.yml Modified .github/workflows/build.yml.in Modified .github/workflows/build_fork.yml Added scripts/lean-pr-testing-comments.sh 2023-08-31 13:03:27 93e701c feat: the atTop filter is countably generated in a second-countable topology (#6864) ESTIMATED CHANGES Modified Mathlib/Data/Set/Intervals/Basic.lean + theorem Set.Ici_eq_singleton_iff_isTop Modified Mathlib/Order/Filter/AtTopBot.lean + theorem Filter.atBot_eq_pure_of_isBot + theorem Filter.atTop_eq_generate_Ici + theorem Filter.atTop_eq_generate_of_forall_exists_le + theorem Filter.atTop_eq_generate_of_not_bddAbove + theorem Filter.atTop_eq_pure_of_isTop Modified Mathlib/Order/Filter/Bases.lean + theorem Filter.isCountablyGenerated_of_subsingleton_mem Modified Mathlib/Order/Filter/Basic.lean + theorem Filter.eq_bot_or_pure_of_subsingleton_mem + theorem Filter.eq_pure_iff_singleton_mem + theorem Filter.le_pure_iff_eq_pure + theorem Filter.mem_generate_of_mem Modified Mathlib/Topology/Order/Basic.lean 2023-08-31 11:52:56 23550c1 feat: the complement of a countable set is path-connected in dimension > 1 (#6690) Also show that spheres are path-connected in dimension > 1. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Analysis/Convex/Segment.lean + theorem segment_inter_eq_endpoint_of_linearIndependent_of_ne + theorem segment_inter_eq_endpoint_of_linearIndependent_sub Modified Mathlib/Analysis/Convex/Topology.lean + theorem JoinedIn_of_segment_subset Added Mathlib/Analysis/NormedSpace/Connected.lean + theorem Set.Countable.isConnected_compl_of_one_lt_rank + theorem Set.Countable.isPathConnected_compl_of_one_lt_rank + theorem isConnected_compl_singleton_of_one_lt_rank + theorem isConnected_sphere + theorem isPathConnected_compl_singleton_of_one_lt_rank + theorem isPathConnected_sphere + theorem isPreconnected_sphere Modified Mathlib/Data/Set/Countable.lean + theorem Set.countable_setOf_nonempty_of_disjoint Modified Mathlib/LinearAlgebra/LinearIndependent.lean + theorem LinearIndependent.eq_zero_of_pair' + theorem LinearIndependent.linear_combination_pair_of_det_ne_zero + theorem LinearIndependent.pair_iff 2023-08-31 10:55:38 dd94c82 feat(Data/../ENNReal): add 2 lemmas (#6819) ESTIMATED CHANGES Modified Mathlib/Data/Real/ENNReal.lean + theorem ENNReal.ofReal_lt_coe_iff + theorem ENNReal.toReal_lt_of_lt_ofReal 2023-08-31 09:57:56 6582358 chore(Topology/Algebra/Group): golf, move (#6820) Move some lemmas from `Topology.Algebra.UniformGroup` to `Topology.Algebra.Group.Basic`, golf. ESTIMATED CHANGES Modified Mathlib/Topology/Algebra/Group/Basic.lean + theorem TopologicalGroup.t2Space_iff_one_closed + theorem TopologicalGroup.t2Space_of_one_sep Modified Mathlib/Topology/Algebra/UniformGroup.lean - theorem TopologicalGroup.t2Space_iff_one_closed - theorem TopologicalGroup.t2Space_of_one_sep 2023-08-31 08:18:29 9648a9a feat: define the union of two coverages (#6878) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Sites/Coverage.lean + theorem CategoryTheory.Coverage.sup_covering 2023-08-31 08:18:28 85c04e7 refactor(Algebra/Star/*): Allow for star operation on non-associative algebras (#6562) Typically a * operation on a mathematical structure `R` equipped with a multiplication is an involutive anti-automorphism i.e. ``` ∀ r s : R, star (r * s) = star s * star r ``` Currently mathlib defines a class `StarSemigroup` to be a semigroup satisfying this property. However, the requirement for the multiplication to be associative is unnecessarily restrictive. There are important classes of star-algebra which are not associative (e.g. JB*-algebras). This PR removes the requirement for a `StarSemigroup` to be a semigroup, merely requiring it to have a multiplication. I've changed the name from `StarSemigroup` to `StarMul` since it's no longer a semigroup. [Zulip discussion](https://leanprover.zulipchat.com/#narrow/stream/116395-maths/topic/non-associative.20*-algebras) Previously opened as a mathlib PR https://github.com/leanprover-community/mathlib/pull/17949 ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/Unitization.lean Modified Mathlib/Algebra/Star/Basic.lean +/- theorem IsUnit.star +/- theorem isUnit_star +/- def starMulAut +/- def starMulEquiv + def starMulOfComm +/- def starRingEquiv - def starSemigroupOfComm +/- theorem star_div +/- theorem star_inv +/- theorem star_invOf +/- theorem star_mul' +/- theorem star_natCast +/- theorem star_ofNat +/- theorem star_one +/- theorem star_pow +/- theorem star_zpow Modified Mathlib/Algebra/Star/BigOperators.lean +/- theorem star_prod Modified Mathlib/Algebra/Star/CHSH.lean +/- structure IsCHSHTuple Modified Mathlib/Algebra/Star/Center.lean Modified Mathlib/Algebra/Star/Free.lean Modified Mathlib/Algebra/Star/Module.lean Modified Mathlib/Algebra/Star/NonUnitalSubalgebra.lean Modified Mathlib/Algebra/Star/Pi.lean Modified Mathlib/Algebra/Star/Pointwise.lean Modified Mathlib/Algebra/Star/Prod.lean +/- theorem Units.embed_product_star Modified Mathlib/Algebra/Star/SelfAdjoint.lean +/- theorem IsSelfAdjoint.mul_star_self +/- theorem IsSelfAdjoint.star_mul_self Modified Mathlib/Algebra/Star/Unitary.lean +/- def unitary Modified Mathlib/Analysis/InnerProductSpace/Adjoint.lean Modified Mathlib/Analysis/NormedSpace/Star/GelfandDuality.lean Modified Mathlib/Data/Matrix/Basic.lean +/- theorem Matrix.conjTranspose_smul_self Modified Mathlib/Topology/Algebra/Module/Star.lean Modified Mathlib/Topology/Algebra/Star.lean Modified Mathlib/Topology/ContinuousFunction/Algebra.lean 2023-08-31 07:47:20 404fef6 chore: move `Game` to `SetTheory.Game` (#6365) move `Game` and `PGame` into namespace `SetTheory` as `_root_.Game` might collide with other definitions (e.g. in projects depending on mathlib) ESTIMATED CHANGES Modified Mathlib/SetTheory/Game/Basic.lean - def Game.Fuzzy - def Game.Lf - theorem Game.PGame.equiv_iff_game_eq - theorem Game.PGame.fuzzy_iff_game_fuzzy - theorem Game.PGame.le_iff_game_le - theorem Game.PGame.lf_iff_game_lf - theorem Game.PGame.lt_iff_game_lt - theorem Game.add_lf_add_left - theorem Game.add_lf_add_right - def Game.neg - theorem Game.not_le - theorem Game.not_lf - inductive PGame.InvTy - def PGame.inv' - def PGame.inv'One - def PGame.inv'Zero - theorem PGame.inv'_one_equiv - theorem PGame.inv'_zero_equiv - def PGame.invOne - def PGame.invVal - theorem PGame.invVal_isEmpty - theorem PGame.inv_eq_of_equiv_zero - theorem PGame.inv_eq_of_lf_zero - theorem PGame.inv_eq_of_pos - theorem PGame.inv_one_equiv - theorem PGame.inv_zero - theorem PGame.leftMoves_mul - theorem PGame.leftMoves_mul_cases - theorem PGame.left_distrib_equiv - theorem PGame.mk_mul_moveLeft_inl - theorem PGame.mk_mul_moveLeft_inr - theorem PGame.mk_mul_moveRight_inl - theorem PGame.mk_mul_moveRight_inr - def PGame.mulCommRelabelling - def PGame.mulNegRelabelling - def PGame.mulOneRelabelling - def PGame.mulZeroRelabelling - theorem PGame.mul_assoc_equiv - theorem PGame.mul_comm_equiv - theorem PGame.mul_moveLeft_inl - theorem PGame.mul_moveLeft_inr - theorem PGame.mul_moveRight_inl - theorem PGame.mul_moveRight_inr - theorem PGame.mul_one_equiv - theorem PGame.mul_zero_equiv - def PGame.negMulRelabelling - theorem PGame.neg_mk_mul_moveLeft_inl - theorem PGame.neg_mk_mul_moveLeft_inr - theorem PGame.neg_mk_mul_moveRight_inl - theorem PGame.neg_mk_mul_moveRight_inr - def PGame.oneMulRelabelling - theorem PGame.one_mul_equiv - theorem PGame.quot_add - theorem PGame.quot_eq_of_mk'_quot_eq - theorem PGame.quot_left_distrib - theorem PGame.quot_left_distrib_sub - theorem PGame.quot_mul_assoc - theorem PGame.quot_mul_comm - theorem PGame.quot_mul_neg - theorem PGame.quot_mul_one - theorem PGame.quot_mul_zero - theorem PGame.quot_neg - theorem PGame.quot_neg_mul - theorem PGame.quot_one_mul - theorem PGame.quot_right_distrib - theorem PGame.quot_right_distrib_sub - theorem PGame.quot_sub - theorem PGame.quot_zero_mul - theorem PGame.rightMoves_mul - theorem PGame.rightMoves_mul_cases - theorem PGame.right_distrib_equiv - def PGame.toLeftMovesMul - def PGame.toRightMovesMul - def PGame.zeroMulRelabelling - theorem PGame.zero_lf_inv' - theorem PGame.zero_mul_equiv + def SetTheory.Game.Fuzzy + def SetTheory.Game.Lf + theorem SetTheory.Game.PGame.equiv_iff_game_eq + theorem SetTheory.Game.PGame.fuzzy_iff_game_fuzzy + theorem SetTheory.Game.PGame.le_iff_game_le + theorem SetTheory.Game.PGame.lf_iff_game_lf + theorem SetTheory.Game.PGame.lt_iff_game_lt + theorem SetTheory.Game.add_lf_add_left + theorem SetTheory.Game.add_lf_add_right + def SetTheory.Game.neg + theorem SetTheory.Game.not_le + theorem SetTheory.Game.not_lf + inductive SetTheory.PGame.InvTy + def SetTheory.PGame.inv' + def SetTheory.PGame.inv'One + def SetTheory.PGame.inv'Zero + theorem SetTheory.PGame.inv'_one_equiv + theorem SetTheory.PGame.inv'_zero_equiv + def SetTheory.PGame.invOne + def SetTheory.PGame.invVal + theorem SetTheory.PGame.invVal_isEmpty + theorem SetTheory.PGame.inv_eq_of_equiv_zero + theorem SetTheory.PGame.inv_eq_of_lf_zero + theorem SetTheory.PGame.inv_eq_of_pos + theorem SetTheory.PGame.inv_one_equiv + theorem SetTheory.PGame.inv_zero + theorem SetTheory.PGame.leftMoves_mul + theorem SetTheory.PGame.leftMoves_mul_cases + theorem SetTheory.PGame.left_distrib_equiv + theorem SetTheory.PGame.mk_mul_moveLeft_inl + theorem SetTheory.PGame.mk_mul_moveLeft_inr + theorem SetTheory.PGame.mk_mul_moveRight_inl + theorem SetTheory.PGame.mk_mul_moveRight_inr + def SetTheory.PGame.mulCommRelabelling + def SetTheory.PGame.mulNegRelabelling + def SetTheory.PGame.mulOneRelabelling + def SetTheory.PGame.mulZeroRelabelling + theorem SetTheory.PGame.mul_assoc_equiv + theorem SetTheory.PGame.mul_comm_equiv + theorem SetTheory.PGame.mul_moveLeft_inl + theorem SetTheory.PGame.mul_moveLeft_inr + theorem SetTheory.PGame.mul_moveRight_inl + theorem SetTheory.PGame.mul_moveRight_inr + theorem SetTheory.PGame.mul_one_equiv + theorem SetTheory.PGame.mul_zero_equiv + def SetTheory.PGame.negMulRelabelling + theorem SetTheory.PGame.neg_mk_mul_moveLeft_inl + theorem SetTheory.PGame.neg_mk_mul_moveLeft_inr + theorem SetTheory.PGame.neg_mk_mul_moveRight_inl + theorem SetTheory.PGame.neg_mk_mul_moveRight_inr + def SetTheory.PGame.oneMulRelabelling + theorem SetTheory.PGame.one_mul_equiv + theorem SetTheory.PGame.quot_add + theorem SetTheory.PGame.quot_eq_of_mk'_quot_eq + theorem SetTheory.PGame.quot_left_distrib + theorem SetTheory.PGame.quot_left_distrib_sub + theorem SetTheory.PGame.quot_mul_assoc + theorem SetTheory.PGame.quot_mul_comm + theorem SetTheory.PGame.quot_mul_neg + theorem SetTheory.PGame.quot_mul_one + theorem SetTheory.PGame.quot_mul_zero + theorem SetTheory.PGame.quot_neg + theorem SetTheory.PGame.quot_neg_mul + theorem SetTheory.PGame.quot_one_mul + theorem SetTheory.PGame.quot_right_distrib + theorem SetTheory.PGame.quot_right_distrib_sub + theorem SetTheory.PGame.quot_sub + theorem SetTheory.PGame.quot_zero_mul + theorem SetTheory.PGame.rightMoves_mul + theorem SetTheory.PGame.rightMoves_mul_cases + theorem SetTheory.PGame.right_distrib_equiv + def SetTheory.PGame.toLeftMovesMul + def SetTheory.PGame.toRightMovesMul + def SetTheory.PGame.zeroMulRelabelling + theorem SetTheory.PGame.zero_lf_inv' + theorem SetTheory.PGame.zero_mul_equiv Modified Mathlib/SetTheory/Game/Birthday.lean - theorem PGame.Relabelling.birthday_congr - theorem PGame.birthday_add - theorem PGame.birthday_add_nat - theorem PGame.birthday_add_one - theorem PGame.birthday_add_zero - theorem PGame.birthday_def - theorem PGame.birthday_eq_zero - theorem PGame.birthday_moveLeft_lt - theorem PGame.birthday_moveRight_lt - theorem PGame.birthday_nat_add - theorem PGame.birthday_nat_cast - theorem PGame.birthday_one - theorem PGame.birthday_one_add - theorem PGame.birthday_star - theorem PGame.birthday_zero - theorem PGame.birthday_zero_add - theorem PGame.le_birthday - theorem PGame.lt_birthday_iff - theorem PGame.neg_birthday - theorem PGame.neg_birthday_le - theorem PGame.toPGame_birthday + theorem SetTheory.PGame.Relabelling.birthday_congr + theorem SetTheory.PGame.birthday_add + theorem SetTheory.PGame.birthday_add_nat + theorem SetTheory.PGame.birthday_add_one + theorem SetTheory.PGame.birthday_add_zero + theorem SetTheory.PGame.birthday_def + theorem SetTheory.PGame.birthday_eq_zero + theorem SetTheory.PGame.birthday_moveLeft_lt + theorem SetTheory.PGame.birthday_moveRight_lt + theorem SetTheory.PGame.birthday_nat_add + theorem SetTheory.PGame.birthday_nat_cast + theorem SetTheory.PGame.birthday_one + theorem SetTheory.PGame.birthday_one_add + theorem SetTheory.PGame.birthday_star + theorem SetTheory.PGame.birthday_zero + theorem SetTheory.PGame.birthday_zero_add + theorem SetTheory.PGame.le_birthday + theorem SetTheory.PGame.lt_birthday_iff + theorem SetTheory.PGame.neg_birthday + theorem SetTheory.PGame.neg_birthday_le + theorem SetTheory.PGame.toPGame_birthday Modified Mathlib/SetTheory/Game/Domineering.lean - def PGame.Domineering.Board - theorem PGame.Domineering.card_of_mem_left - theorem PGame.Domineering.card_of_mem_right - theorem PGame.Domineering.fst_pred_mem_erase_of_mem_right - def PGame.Domineering.left - theorem PGame.Domineering.mem_left - theorem PGame.Domineering.mem_right - def PGame.Domineering.moveLeft - theorem PGame.Domineering.moveLeft_card - theorem PGame.Domineering.moveLeft_smaller - def PGame.Domineering.moveRight - theorem PGame.Domineering.moveRight_card - theorem PGame.Domineering.moveRight_smaller - def PGame.Domineering.right - def PGame.Domineering.shiftRight - def PGame.Domineering.shiftUp - theorem PGame.Domineering.snd_pred_mem_erase_of_mem_left - def PGame.domineering.L - def PGame.domineering.one - def PGame.domineering + def SetTheory.PGame.Domineering.Board + theorem SetTheory.PGame.Domineering.card_of_mem_left + theorem SetTheory.PGame.Domineering.card_of_mem_right + theorem SetTheory.PGame.Domineering.fst_pred_mem_erase_of_mem_right + def SetTheory.PGame.Domineering.left + theorem SetTheory.PGame.Domineering.mem_left + theorem SetTheory.PGame.Domineering.mem_right + def SetTheory.PGame.Domineering.moveLeft + theorem SetTheory.PGame.Domineering.moveLeft_card + theorem SetTheory.PGame.Domineering.moveLeft_smaller + def SetTheory.PGame.Domineering.moveRight + theorem SetTheory.PGame.Domineering.moveRight_card + theorem SetTheory.PGame.Domineering.moveRight_smaller + def SetTheory.PGame.Domineering.right + def SetTheory.PGame.Domineering.shiftRight + def SetTheory.PGame.Domineering.shiftUp + theorem SetTheory.PGame.Domineering.snd_pred_mem_erase_of_mem_left + def SetTheory.PGame.domineering.L + def SetTheory.PGame.domineering.one + def SetTheory.PGame.domineering Modified Mathlib/SetTheory/Game/Impartial.lean - theorem PGame.Impartial.add_self - theorem PGame.Impartial.equiv_iff_add_equiv_zero' - theorem PGame.Impartial.equiv_iff_add_equiv_zero - theorem PGame.Impartial.equiv_or_fuzzy_zero - theorem PGame.Impartial.equiv_zero_iff_ge - theorem PGame.Impartial.equiv_zero_iff_le - theorem PGame.Impartial.exists_left_move_equiv_iff_fuzzy_zero - theorem PGame.Impartial.exists_right_move_equiv_iff_fuzzy_zero - theorem PGame.Impartial.forall_leftMoves_fuzzy_iff_equiv_zero - theorem PGame.Impartial.forall_rightMoves_fuzzy_iff_equiv_zero - theorem PGame.Impartial.fuzzy_zero_iff_gf - theorem PGame.Impartial.fuzzy_zero_iff_lf - theorem PGame.Impartial.impartial_congr - theorem PGame.Impartial.le_zero_iff - theorem PGame.Impartial.lf_zero_iff - theorem PGame.Impartial.mk'_add_self - theorem PGame.Impartial.mk'_neg_equiv_self - theorem PGame.Impartial.neg_equiv_self - theorem PGame.Impartial.nonneg - theorem PGame.Impartial.nonpos - theorem PGame.Impartial.not_equiv_zero_iff - theorem PGame.Impartial.not_fuzzy_zero_iff - def PGame.ImpartialAux - theorem PGame.impartialAux_def - theorem PGame.impartial_def - theorem PGame.impartial_iff_aux + theorem SetTheory.PGame.Impartial.add_self + theorem SetTheory.PGame.Impartial.equiv_iff_add_equiv_zero' + theorem SetTheory.PGame.Impartial.equiv_iff_add_equiv_zero + theorem SetTheory.PGame.Impartial.equiv_or_fuzzy_zero + theorem SetTheory.PGame.Impartial.equiv_zero_iff_ge + theorem SetTheory.PGame.Impartial.equiv_zero_iff_le + theorem SetTheory.PGame.Impartial.exists_left_move_equiv_iff_fuzzy_zero + theorem SetTheory.PGame.Impartial.exists_right_move_equiv_iff_fuzzy_zero + theorem SetTheory.PGame.Impartial.forall_leftMoves_fuzzy_iff_equiv_zero + theorem SetTheory.PGame.Impartial.forall_rightMoves_fuzzy_iff_equiv_zero + theorem SetTheory.PGame.Impartial.fuzzy_zero_iff_gf + theorem SetTheory.PGame.Impartial.fuzzy_zero_iff_lf + theorem SetTheory.PGame.Impartial.impartial_congr + theorem SetTheory.PGame.Impartial.le_zero_iff + theorem SetTheory.PGame.Impartial.lf_zero_iff + theorem SetTheory.PGame.Impartial.mk'_add_self + theorem SetTheory.PGame.Impartial.mk'_neg_equiv_self + theorem SetTheory.PGame.Impartial.neg_equiv_self + theorem SetTheory.PGame.Impartial.nonneg + theorem SetTheory.PGame.Impartial.nonpos + theorem SetTheory.PGame.Impartial.not_equiv_zero_iff + theorem SetTheory.PGame.Impartial.not_fuzzy_zero_iff + def SetTheory.PGame.ImpartialAux + theorem SetTheory.PGame.impartialAux_def + theorem SetTheory.PGame.impartial_def + theorem SetTheory.PGame.impartial_iff_aux Modified Mathlib/SetTheory/Game/Nim.lean - theorem PGame.default_nim_one_leftMoves_eq - theorem PGame.default_nim_one_rightMoves_eq - theorem PGame.equiv_nim_grundyValue - theorem PGame.grundyValue_add - theorem PGame.grundyValue_eq_iff_equiv - theorem PGame.grundyValue_eq_iff_equiv_nim - theorem PGame.grundyValue_eq_mex_left - theorem PGame.grundyValue_eq_mex_right - theorem PGame.grundyValue_iff_equiv_zero - theorem PGame.grundyValue_neg - theorem PGame.grundyValue_nim_add_nim - theorem PGame.grundyValue_star - theorem PGame.grundyValue_zero - def PGame.leftMovesNimRecOn - theorem PGame.leftMoves_nim - theorem PGame.moveLeft_nim' - theorem PGame.moveLeft_nim - theorem PGame.moveLeft_nim_hEq - theorem PGame.moveRight_nim' - theorem PGame.moveRight_nim - theorem PGame.moveRight_nim_hEq - theorem PGame.neg_nim - def PGame.nimOneRelabelling - def PGame.nimZeroRelabelling - theorem PGame.nim_add_equiv_zero_iff - theorem PGame.nim_add_fuzzy_zero_iff - theorem PGame.nim_add_nim_equiv - theorem PGame.nim_birthday - theorem PGame.nim_def - theorem PGame.nim_equiv_iff_eq - theorem PGame.nim_fuzzy_zero_of_ne_zero - theorem PGame.nim_grundyValue - theorem PGame.nim_one_equiv - theorem PGame.nim_one_moveLeft - theorem PGame.nim_one_moveRight - theorem PGame.nim_zero_equiv - def PGame.rightMovesNimRecOn - theorem PGame.rightMoves_nim - theorem PGame.toLeftMovesNim_one_symm - theorem PGame.toLeftMovesNim_symm_lt - theorem PGame.toRightMovesNim_one_symm - theorem PGame.toRightMovesNim_symm_lt + theorem SetTheory.PGame.default_nim_one_leftMoves_eq + theorem SetTheory.PGame.default_nim_one_rightMoves_eq + theorem SetTheory.PGame.equiv_nim_grundyValue + theorem SetTheory.PGame.grundyValue_add + theorem SetTheory.PGame.grundyValue_eq_iff_equiv + theorem SetTheory.PGame.grundyValue_eq_iff_equiv_nim + theorem SetTheory.PGame.grundyValue_eq_mex_left + theorem SetTheory.PGame.grundyValue_eq_mex_right + theorem SetTheory.PGame.grundyValue_iff_equiv_zero + theorem SetTheory.PGame.grundyValue_neg + theorem SetTheory.PGame.grundyValue_nim_add_nim + theorem SetTheory.PGame.grundyValue_star + theorem SetTheory.PGame.grundyValue_zero + def SetTheory.PGame.leftMovesNimRecOn + theorem SetTheory.PGame.leftMoves_nim + theorem SetTheory.PGame.moveLeft_nim' + theorem SetTheory.PGame.moveLeft_nim + theorem SetTheory.PGame.moveLeft_nim_hEq + theorem SetTheory.PGame.moveRight_nim' + theorem SetTheory.PGame.moveRight_nim + theorem SetTheory.PGame.moveRight_nim_hEq + theorem SetTheory.PGame.neg_nim + def SetTheory.PGame.nimOneRelabelling + def SetTheory.PGame.nimZeroRelabelling + theorem SetTheory.PGame.nim_add_equiv_zero_iff + theorem SetTheory.PGame.nim_add_fuzzy_zero_iff + theorem SetTheory.PGame.nim_add_nim_equiv + theorem SetTheory.PGame.nim_birthday + theorem SetTheory.PGame.nim_def + theorem SetTheory.PGame.nim_equiv_iff_eq + theorem SetTheory.PGame.nim_fuzzy_zero_of_ne_zero + theorem SetTheory.PGame.nim_grundyValue + theorem SetTheory.PGame.nim_one_equiv + theorem SetTheory.PGame.nim_one_moveLeft + theorem SetTheory.PGame.nim_one_moveRight + theorem SetTheory.PGame.nim_zero_equiv + def SetTheory.PGame.rightMovesNimRecOn + theorem SetTheory.PGame.rightMoves_nim + theorem SetTheory.PGame.toLeftMovesNim_one_symm + theorem SetTheory.PGame.toLeftMovesNim_symm_lt + theorem SetTheory.PGame.toRightMovesNim_one_symm + theorem SetTheory.PGame.toRightMovesNim_symm_lt Modified Mathlib/SetTheory/Game/Ordinal.lean Modified Mathlib/SetTheory/Game/PGame.lean - theorem PGame.Equiv.ge - theorem PGame.Equiv.isEmpty - theorem PGame.Equiv.le - theorem PGame.Equiv.not_fuzzy' - theorem PGame.Equiv.not_fuzzy - def PGame.Equiv - theorem PGame.Fuzzy.not_equiv' - theorem PGame.Fuzzy.not_equiv - theorem PGame.Fuzzy.swap - theorem PGame.Fuzzy.swap_iff - def PGame.Fuzzy - theorem PGame.IsOption.mk_left - theorem PGame.IsOption.mk_right - inductive PGame.IsOption - def PGame.LeftMoves - theorem PGame.Lf.not_equiv' - theorem PGame.Lf.not_equiv - theorem PGame.Lf.not_ge - theorem PGame.Lf.not_gt - def PGame.Lf - def PGame.Relabelling.addCongr - theorem PGame.Relabelling.equiv - theorem PGame.Relabelling.ge - def PGame.Relabelling.isEmpty - theorem PGame.Relabelling.le - def PGame.Relabelling.leftMovesEquiv - def PGame.Relabelling.mk' - theorem PGame.Relabelling.mk'_leftMovesEquiv - theorem PGame.Relabelling.mk'_rightMovesEquiv - theorem PGame.Relabelling.mk_leftMovesEquiv - theorem PGame.Relabelling.mk_rightMovesEquiv - def PGame.Relabelling.moveLeft - def PGame.Relabelling.moveLeftSymm - def PGame.Relabelling.moveRight - def PGame.Relabelling.moveRightSymm - def PGame.Relabelling.negCongr - def PGame.Relabelling.refl - def PGame.Relabelling.rightMovesEquiv - def PGame.Relabelling.subCongr - def PGame.Relabelling.symm - def PGame.Relabelling.trans - inductive PGame.Relabelling - def PGame.RightMoves - theorem PGame.Subsequent.mk_left - theorem PGame.Subsequent.mk_right' - theorem PGame.Subsequent.mk_right - theorem PGame.Subsequent.moveLeft - theorem PGame.Subsequent.moveLeft_mk_left - theorem PGame.Subsequent.moveLeft_mk_right - theorem PGame.Subsequent.moveRight - theorem PGame.Subsequent.moveRight_mk_left - theorem PGame.Subsequent.moveRight_mk_right - theorem PGame.Subsequent.trans - def PGame.Subsequent - def PGame.addAssocRelabelling - def PGame.addCommRelabelling - def PGame.addZeroRelabelling - theorem PGame.add_assoc_equiv - theorem PGame.add_comm_equiv - theorem PGame.add_comm_le - theorem PGame.add_congr - theorem PGame.add_congr_left - theorem PGame.add_congr_right - theorem PGame.add_left_neg_equiv - theorem PGame.add_left_neg_le_zero - theorem PGame.add_lf_add_left - theorem PGame.add_lf_add_of_le_of_lf - theorem PGame.add_lf_add_of_lf_of_le - theorem PGame.add_lf_add_right - theorem PGame.add_moveLeft_inl - theorem PGame.add_moveLeft_inr - theorem PGame.add_moveRight_inl - theorem PGame.add_moveRight_inr - theorem PGame.add_right_neg_equiv - theorem PGame.add_right_neg_le_zero - theorem PGame.add_zero_equiv - theorem PGame.equiv_congr_left - theorem PGame.equiv_congr_right - theorem PGame.equiv_of_eq - theorem PGame.equiv_of_mk_equiv - theorem PGame.equiv_refl - theorem PGame.equiv_rfl - theorem PGame.fuzzy_congr - theorem PGame.fuzzy_congr_imp - theorem PGame.fuzzy_congr_left - theorem PGame.fuzzy_congr_right - theorem PGame.fuzzy_irrefl - theorem PGame.fuzzy_of_equiv_of_fuzzy - theorem PGame.fuzzy_of_fuzzy_of_equiv - theorem PGame.isOption_neg - theorem PGame.isOption_neg_neg - theorem PGame.le_congr - theorem PGame.le_congr_imp - theorem PGame.le_congr_left - theorem PGame.le_congr_right - theorem PGame.le_def - theorem PGame.le_iff_forall_lf - theorem PGame.le_iff_sub_nonneg - theorem PGame.le_neg_iff - theorem PGame.le_of_equiv_of_le - theorem PGame.le_of_forall_lf - theorem PGame.le_of_forall_lt - theorem PGame.le_of_le_of_equiv - theorem PGame.le_or_gf - theorem PGame.le_zero - theorem PGame.le_zero_lf - theorem PGame.le_zero_of_isEmpty_leftMoves - theorem PGame.leftMoves_add - theorem PGame.leftMoves_add_cases - theorem PGame.leftMoves_mk - theorem PGame.leftMoves_neg - theorem PGame.leftMoves_ofLists - theorem PGame.leftResponse_spec - theorem PGame.lf_congr - theorem PGame.lf_congr_imp - theorem PGame.lf_congr_left - theorem PGame.lf_congr_right - theorem PGame.lf_def - theorem PGame.lf_iff_exists_le - theorem PGame.lf_iff_lt_or_fuzzy - theorem PGame.lf_iff_sub_zero_lf - theorem PGame.lf_irrefl - theorem PGame.lf_mk - theorem PGame.lf_mk_of_le - theorem PGame.lf_moveRight - theorem PGame.lf_moveRight_of_le - theorem PGame.lf_neg_iff - theorem PGame.lf_of_equiv_of_lf - theorem PGame.lf_of_fuzzy - theorem PGame.lf_of_le_mk - theorem PGame.lf_of_le_moveLeft - theorem PGame.lf_of_le_of_lf - theorem PGame.lf_of_lf_of_equiv - theorem PGame.lf_of_lf_of_le - theorem PGame.lf_of_lf_of_lt - theorem PGame.lf_of_lt - theorem PGame.lf_of_lt_of_lf - theorem PGame.lf_of_mk_le - theorem PGame.lf_of_moveRight_le - theorem PGame.lf_or_equiv_or_gf - theorem PGame.lf_zero - theorem PGame.lf_zero_le - theorem PGame.lt_congr - theorem PGame.lt_congr_imp - theorem PGame.lt_congr_left - theorem PGame.lt_congr_right - theorem PGame.lt_iff_le_and_lf - theorem PGame.lt_iff_sub_pos - theorem PGame.lt_neg_iff - theorem PGame.lt_of_equiv_of_lt - theorem PGame.lt_of_le_of_lf - theorem PGame.lt_of_lt_of_equiv - theorem PGame.lt_or_equiv_of_le - theorem PGame.lt_or_equiv_or_gf - theorem PGame.lt_or_equiv_or_gt_or_fuzzy - theorem PGame.lt_or_fuzzy_of_lf - theorem PGame.mk_add_moveLeft_inl - theorem PGame.mk_add_moveLeft_inr - theorem PGame.mk_add_moveRight_inl - theorem PGame.mk_add_moveRight_inr - theorem PGame.mk_le_mk - theorem PGame.mk_lf - theorem PGame.mk_lf_mk - theorem PGame.mk_lf_of_le - def PGame.moveLeft - theorem PGame.moveLeft_lf - theorem PGame.moveLeft_lf_of_le - theorem PGame.moveLeft_mk - theorem PGame.moveLeft_neg' - theorem PGame.moveLeft_neg - theorem PGame.moveLeft_neg_symm' - theorem PGame.moveLeft_neg_symm - def PGame.moveRecOn - def PGame.moveRight - theorem PGame.moveRight_mk - theorem PGame.moveRight_neg' - theorem PGame.moveRight_neg - theorem PGame.moveRight_neg_symm' - theorem PGame.moveRight_neg_symm - def PGame.neg - def PGame.negAddRelabelling - theorem PGame.neg_add_le - theorem PGame.neg_def - theorem PGame.neg_equiv_iff - theorem PGame.neg_equiv_neg_iff - theorem PGame.neg_equiv_zero_iff - theorem PGame.neg_fuzzy_iff - theorem PGame.neg_fuzzy_neg_iff - theorem PGame.neg_fuzzy_zero_iff - theorem PGame.neg_le_iff - theorem PGame.neg_le_neg_iff - theorem PGame.neg_le_zero_iff - theorem PGame.neg_lf_iff - theorem PGame.neg_lf_neg_iff - theorem PGame.neg_lf_zero_iff - theorem PGame.neg_lt_iff - theorem PGame.neg_lt_neg_iff - theorem PGame.neg_lt_zero_iff - theorem PGame.neg_ofLists - theorem PGame.neg_star - theorem PGame.not_fuzzy_of_ge - theorem PGame.not_fuzzy_of_le - theorem PGame.not_lf - def PGame.ofLists - theorem PGame.ofLists_moveLeft' - theorem PGame.ofLists_moveLeft - theorem PGame.ofLists_moveRight' - theorem PGame.ofLists_moveRight - theorem PGame.one_leftMoves - theorem PGame.one_moveLeft - theorem PGame.one_rightMoves - def PGame.relabel - def PGame.relabelRelabelling - theorem PGame.relabel_moveLeft' - theorem PGame.relabel_moveLeft - theorem PGame.relabel_moveRight' - theorem PGame.relabel_moveRight - theorem PGame.rightMoves_add - theorem PGame.rightMoves_add_cases - theorem PGame.rightMoves_mk - theorem PGame.rightMoves_neg - theorem PGame.rightMoves_ofLists - theorem PGame.rightResponse_spec - def PGame.star - theorem PGame.star_fuzzy_zero - theorem PGame.star_leftMoves - theorem PGame.star_moveLeft - theorem PGame.star_moveRight - theorem PGame.star_rightMoves - theorem PGame.sub_congr - theorem PGame.sub_congr_left - theorem PGame.sub_congr_right - theorem PGame.sub_self_equiv - theorem PGame.sub_zero - def PGame.toLeftMovesAdd - def PGame.toLeftMovesNeg - def PGame.toOfListsLeftMoves - def PGame.toOfListsRightMoves - def PGame.toRightMovesAdd - def PGame.toRightMovesNeg - theorem PGame.wf_isOption - theorem PGame.wf_subsequent - def PGame.zeroAddRelabelling - theorem PGame.zero_add_equiv - theorem PGame.zero_equiv_neg_iff - theorem PGame.zero_fuzzy_neg_iff - theorem PGame.zero_le - theorem PGame.zero_le_add_left_neg - theorem PGame.zero_le_add_right_neg - theorem PGame.zero_le_lf - theorem PGame.zero_le_neg_iff - theorem PGame.zero_le_of_isEmpty_rightMoves - theorem PGame.zero_leftMoves - theorem PGame.zero_lf - theorem PGame.zero_lf_le - theorem PGame.zero_lf_neg_iff - theorem PGame.zero_lf_one - theorem PGame.zero_lt_neg_iff - theorem PGame.zero_rightMoves - inductive PGame + theorem SetTheory.PGame.Equiv.ge + theorem SetTheory.PGame.Equiv.isEmpty + theorem SetTheory.PGame.Equiv.le + theorem SetTheory.PGame.Equiv.not_fuzzy' + theorem SetTheory.PGame.Equiv.not_fuzzy + def SetTheory.PGame.Equiv + theorem SetTheory.PGame.Fuzzy.not_equiv' + theorem SetTheory.PGame.Fuzzy.not_equiv + theorem SetTheory.PGame.Fuzzy.swap + theorem SetTheory.PGame.Fuzzy.swap_iff + def SetTheory.PGame.Fuzzy + theorem SetTheory.PGame.IsOption.mk_left + theorem SetTheory.PGame.IsOption.mk_right + inductive SetTheory.PGame.IsOption + def SetTheory.PGame.LeftMoves + theorem SetTheory.PGame.Lf.not_equiv' + theorem SetTheory.PGame.Lf.not_equiv + theorem SetTheory.PGame.Lf.not_ge + theorem SetTheory.PGame.Lf.not_gt + def SetTheory.PGame.Lf + def SetTheory.PGame.Relabelling.addCongr + theorem SetTheory.PGame.Relabelling.equiv + theorem SetTheory.PGame.Relabelling.ge + def SetTheory.PGame.Relabelling.isEmpty + theorem SetTheory.PGame.Relabelling.le + def SetTheory.PGame.Relabelling.leftMovesEquiv + def SetTheory.PGame.Relabelling.mk' + theorem SetTheory.PGame.Relabelling.mk'_leftMovesEquiv + theorem SetTheory.PGame.Relabelling.mk'_rightMovesEquiv + theorem SetTheory.PGame.Relabelling.mk_leftMovesEquiv + theorem SetTheory.PGame.Relabelling.mk_rightMovesEquiv + def SetTheory.PGame.Relabelling.moveLeft + def SetTheory.PGame.Relabelling.moveLeftSymm + def SetTheory.PGame.Relabelling.moveRight + def SetTheory.PGame.Relabelling.moveRightSymm + def SetTheory.PGame.Relabelling.negCongr + def SetTheory.PGame.Relabelling.refl + def SetTheory.PGame.Relabelling.rightMovesEquiv + def SetTheory.PGame.Relabelling.subCongr + def SetTheory.PGame.Relabelling.symm + def SetTheory.PGame.Relabelling.trans + inductive SetTheory.PGame.Relabelling + def SetTheory.PGame.RightMoves + theorem SetTheory.PGame.Subsequent.mk_left + theorem SetTheory.PGame.Subsequent.mk_right' + theorem SetTheory.PGame.Subsequent.mk_right + theorem SetTheory.PGame.Subsequent.moveLeft + theorem SetTheory.PGame.Subsequent.moveLeft_mk_left + theorem SetTheory.PGame.Subsequent.moveLeft_mk_right + theorem SetTheory.PGame.Subsequent.moveRight + theorem SetTheory.PGame.Subsequent.moveRight_mk_left + theorem SetTheory.PGame.Subsequent.moveRight_mk_right + theorem SetTheory.PGame.Subsequent.trans + def SetTheory.PGame.Subsequent + def SetTheory.PGame.addAssocRelabelling + def SetTheory.PGame.addCommRelabelling + def SetTheory.PGame.addZeroRelabelling + theorem SetTheory.PGame.add_assoc_equiv + theorem SetTheory.PGame.add_comm_equiv + theorem SetTheory.PGame.add_comm_le + theorem SetTheory.PGame.add_congr + theorem SetTheory.PGame.add_congr_left + theorem SetTheory.PGame.add_congr_right + theorem SetTheory.PGame.add_left_neg_equiv + theorem SetTheory.PGame.add_left_neg_le_zero + theorem SetTheory.PGame.add_lf_add_left + theorem SetTheory.PGame.add_lf_add_of_le_of_lf + theorem SetTheory.PGame.add_lf_add_of_lf_of_le + theorem SetTheory.PGame.add_lf_add_right + theorem SetTheory.PGame.add_moveLeft_inl + theorem SetTheory.PGame.add_moveLeft_inr + theorem SetTheory.PGame.add_moveRight_inl + theorem SetTheory.PGame.add_moveRight_inr + theorem SetTheory.PGame.add_right_neg_equiv + theorem SetTheory.PGame.add_right_neg_le_zero + theorem SetTheory.PGame.add_zero_equiv + theorem SetTheory.PGame.equiv_congr_left + theorem SetTheory.PGame.equiv_congr_right + theorem SetTheory.PGame.equiv_of_eq + theorem SetTheory.PGame.equiv_of_mk_equiv + theorem SetTheory.PGame.equiv_refl + theorem SetTheory.PGame.equiv_rfl + theorem SetTheory.PGame.fuzzy_congr + theorem SetTheory.PGame.fuzzy_congr_imp + theorem SetTheory.PGame.fuzzy_congr_left + theorem SetTheory.PGame.fuzzy_congr_right + theorem SetTheory.PGame.fuzzy_irrefl + theorem SetTheory.PGame.fuzzy_of_equiv_of_fuzzy + theorem SetTheory.PGame.fuzzy_of_fuzzy_of_equiv + theorem SetTheory.PGame.isOption_neg + theorem SetTheory.PGame.isOption_neg_neg + theorem SetTheory.PGame.le_congr + theorem SetTheory.PGame.le_congr_imp + theorem SetTheory.PGame.le_congr_left + theorem SetTheory.PGame.le_congr_right + theorem SetTheory.PGame.le_def + theorem SetTheory.PGame.le_iff_forall_lf + theorem SetTheory.PGame.le_iff_sub_nonneg + theorem SetTheory.PGame.le_neg_iff + theorem SetTheory.PGame.le_of_equiv_of_le + theorem SetTheory.PGame.le_of_forall_lf + theorem SetTheory.PGame.le_of_forall_lt + theorem SetTheory.PGame.le_of_le_of_equiv + theorem SetTheory.PGame.le_or_gf + theorem SetTheory.PGame.le_zero + theorem SetTheory.PGame.le_zero_lf + theorem SetTheory.PGame.le_zero_of_isEmpty_leftMoves + theorem SetTheory.PGame.leftMoves_add + theorem SetTheory.PGame.leftMoves_add_cases + theorem SetTheory.PGame.leftMoves_mk + theorem SetTheory.PGame.leftMoves_neg + theorem SetTheory.PGame.leftMoves_ofLists + theorem SetTheory.PGame.leftResponse_spec + theorem SetTheory.PGame.lf_congr + theorem SetTheory.PGame.lf_congr_imp + theorem SetTheory.PGame.lf_congr_left + theorem SetTheory.PGame.lf_congr_right + theorem SetTheory.PGame.lf_def + theorem SetTheory.PGame.lf_iff_exists_le + theorem SetTheory.PGame.lf_iff_lt_or_fuzzy + theorem SetTheory.PGame.lf_iff_sub_zero_lf + theorem SetTheory.PGame.lf_irrefl + theorem SetTheory.PGame.lf_mk + theorem SetTheory.PGame.lf_mk_of_le + theorem SetTheory.PGame.lf_moveRight + theorem SetTheory.PGame.lf_moveRight_of_le + theorem SetTheory.PGame.lf_neg_iff + theorem SetTheory.PGame.lf_of_equiv_of_lf + theorem SetTheory.PGame.lf_of_fuzzy + theorem SetTheory.PGame.lf_of_le_mk + theorem SetTheory.PGame.lf_of_le_moveLeft + theorem SetTheory.PGame.lf_of_le_of_lf + theorem SetTheory.PGame.lf_of_lf_of_equiv + theorem SetTheory.PGame.lf_of_lf_of_le + theorem SetTheory.PGame.lf_of_lf_of_lt + theorem SetTheory.PGame.lf_of_lt + theorem SetTheory.PGame.lf_of_lt_of_lf + theorem SetTheory.PGame.lf_of_mk_le + theorem SetTheory.PGame.lf_of_moveRight_le + theorem SetTheory.PGame.lf_or_equiv_or_gf + theorem SetTheory.PGame.lf_zero + theorem SetTheory.PGame.lf_zero_le + theorem SetTheory.PGame.lt_congr + theorem SetTheory.PGame.lt_congr_imp + theorem SetTheory.PGame.lt_congr_left + theorem SetTheory.PGame.lt_congr_right + theorem SetTheory.PGame.lt_iff_le_and_lf + theorem SetTheory.PGame.lt_iff_sub_pos + theorem SetTheory.PGame.lt_neg_iff + theorem SetTheory.PGame.lt_of_equiv_of_lt + theorem SetTheory.PGame.lt_of_le_of_lf + theorem SetTheory.PGame.lt_of_lt_of_equiv + theorem SetTheory.PGame.lt_or_equiv_of_le + theorem SetTheory.PGame.lt_or_equiv_or_gf + theorem SetTheory.PGame.lt_or_equiv_or_gt_or_fuzzy + theorem SetTheory.PGame.lt_or_fuzzy_of_lf + theorem SetTheory.PGame.mk_add_moveLeft_inl + theorem SetTheory.PGame.mk_add_moveLeft_inr + theorem SetTheory.PGame.mk_add_moveRight_inl + theorem SetTheory.PGame.mk_add_moveRight_inr + theorem SetTheory.PGame.mk_le_mk + theorem SetTheory.PGame.mk_lf + theorem SetTheory.PGame.mk_lf_mk + theorem SetTheory.PGame.mk_lf_of_le + def SetTheory.PGame.moveLeft + theorem SetTheory.PGame.moveLeft_lf + theorem SetTheory.PGame.moveLeft_lf_of_le + theorem SetTheory.PGame.moveLeft_mk + theorem SetTheory.PGame.moveLeft_neg' + theorem SetTheory.PGame.moveLeft_neg + theorem SetTheory.PGame.moveLeft_neg_symm' + theorem SetTheory.PGame.moveLeft_neg_symm + def SetTheory.PGame.moveRecOn + def SetTheory.PGame.moveRight + theorem SetTheory.PGame.moveRight_mk + theorem SetTheory.PGame.moveRight_neg' + theorem SetTheory.PGame.moveRight_neg + theorem SetTheory.PGame.moveRight_neg_symm' + theorem SetTheory.PGame.moveRight_neg_symm + def SetTheory.PGame.neg + def SetTheory.PGame.negAddRelabelling + theorem SetTheory.PGame.neg_add_le + theorem SetTheory.PGame.neg_def + theorem SetTheory.PGame.neg_equiv_iff + theorem SetTheory.PGame.neg_equiv_neg_iff + theorem SetTheory.PGame.neg_equiv_zero_iff + theorem SetTheory.PGame.neg_fuzzy_iff + theorem SetTheory.PGame.neg_fuzzy_neg_iff + theorem SetTheory.PGame.neg_fuzzy_zero_iff + theorem SetTheory.PGame.neg_le_iff + theorem SetTheory.PGame.neg_le_neg_iff + theorem SetTheory.PGame.neg_le_zero_iff + theorem SetTheory.PGame.neg_lf_iff + theorem SetTheory.PGame.neg_lf_neg_iff + theorem SetTheory.PGame.neg_lf_zero_iff + theorem SetTheory.PGame.neg_lt_iff + theorem SetTheory.PGame.neg_lt_neg_iff + theorem SetTheory.PGame.neg_lt_zero_iff + theorem SetTheory.PGame.neg_ofLists + theorem SetTheory.PGame.neg_star + theorem SetTheory.PGame.not_fuzzy_of_ge + theorem SetTheory.PGame.not_fuzzy_of_le + theorem SetTheory.PGame.not_lf + def SetTheory.PGame.ofLists + theorem SetTheory.PGame.ofLists_moveLeft' + theorem SetTheory.PGame.ofLists_moveLeft + theorem SetTheory.PGame.ofLists_moveRight' + theorem SetTheory.PGame.ofLists_moveRight + theorem SetTheory.PGame.one_leftMoves + theorem SetTheory.PGame.one_moveLeft + theorem SetTheory.PGame.one_rightMoves + def SetTheory.PGame.relabel + def SetTheory.PGame.relabelRelabelling + theorem SetTheory.PGame.relabel_moveLeft' + theorem SetTheory.PGame.relabel_moveLeft + theorem SetTheory.PGame.relabel_moveRight' + theorem SetTheory.PGame.relabel_moveRight + theorem SetTheory.PGame.rightMoves_add + theorem SetTheory.PGame.rightMoves_add_cases + theorem SetTheory.PGame.rightMoves_mk + theorem SetTheory.PGame.rightMoves_neg + theorem SetTheory.PGame.rightMoves_ofLists + theorem SetTheory.PGame.rightResponse_spec + def SetTheory.PGame.star + theorem SetTheory.PGame.star_fuzzy_zero + theorem SetTheory.PGame.star_leftMoves + theorem SetTheory.PGame.star_moveLeft + theorem SetTheory.PGame.star_moveRight + theorem SetTheory.PGame.star_rightMoves + theorem SetTheory.PGame.sub_congr + theorem SetTheory.PGame.sub_congr_left + theorem SetTheory.PGame.sub_congr_right + theorem SetTheory.PGame.sub_self_equiv + theorem SetTheory.PGame.sub_zero + def SetTheory.PGame.toLeftMovesAdd + def SetTheory.PGame.toLeftMovesNeg + def SetTheory.PGame.toOfListsLeftMoves + def SetTheory.PGame.toOfListsRightMoves + def SetTheory.PGame.toRightMovesAdd + def SetTheory.PGame.toRightMovesNeg + theorem SetTheory.PGame.wf_isOption + theorem SetTheory.PGame.wf_subsequent + def SetTheory.PGame.zeroAddRelabelling + theorem SetTheory.PGame.zero_add_equiv + theorem SetTheory.PGame.zero_equiv_neg_iff + theorem SetTheory.PGame.zero_fuzzy_neg_iff + theorem SetTheory.PGame.zero_le + theorem SetTheory.PGame.zero_le_add_left_neg + theorem SetTheory.PGame.zero_le_add_right_neg + theorem SetTheory.PGame.zero_le_lf + theorem SetTheory.PGame.zero_le_neg_iff + theorem SetTheory.PGame.zero_le_of_isEmpty_rightMoves + theorem SetTheory.PGame.zero_leftMoves + theorem SetTheory.PGame.zero_lf + theorem SetTheory.PGame.zero_lf_le + theorem SetTheory.PGame.zero_lf_neg_iff + theorem SetTheory.PGame.zero_lf_one + theorem SetTheory.PGame.zero_lt_neg_iff + theorem SetTheory.PGame.zero_rightMoves + inductive SetTheory.PGame Modified Mathlib/SetTheory/Game/Short.lean - def PGame.Short.mk' - def PGame.Short.ofIsEmpty - inductive PGame.Short - def PGame.fintypeLeft - def PGame.fintypeRight - def PGame.leLfDecidable - def PGame.moveLeftShort' - def PGame.moveRightShort' - def PGame.shortOfRelabelling - theorem PGame.short_birthday - theorem PGame.subsingleton_short_example + def SetTheory.PGame.Short.mk' + def SetTheory.PGame.Short.ofIsEmpty + inductive SetTheory.PGame.Short + def SetTheory.PGame.fintypeLeft + def SetTheory.PGame.fintypeRight + def SetTheory.PGame.leLfDecidable + def SetTheory.PGame.moveLeftShort' + def SetTheory.PGame.moveRightShort' + def SetTheory.PGame.shortOfRelabelling + theorem SetTheory.PGame.short_birthday + theorem SetTheory.PGame.subsingleton_short_example Modified Mathlib/SetTheory/Game/State.lean - def Game.ofState - def PGame.leftMovesOfState - def PGame.leftMovesOfStateAux - def PGame.ofState - def PGame.ofStateAux - def PGame.ofStateAuxRelabelling - def PGame.relabellingMoveLeft - def PGame.relabellingMoveLeftAux - def PGame.relabellingMoveRight - def PGame.relabellingMoveRightAux - def PGame.rightMovesOfState - def PGame.rightMovesOfStateAux - theorem PGame.turnBound_ne_zero_of_left_move - theorem PGame.turnBound_ne_zero_of_right_move - theorem PGame.turnBound_of_left - theorem PGame.turnBound_of_right + def SetTheory.Game.ofState + def SetTheory.PGame.leftMovesOfState + def SetTheory.PGame.leftMovesOfStateAux + def SetTheory.PGame.ofState + def SetTheory.PGame.ofStateAux + def SetTheory.PGame.ofStateAuxRelabelling + def SetTheory.PGame.relabellingMoveLeft + def SetTheory.PGame.relabellingMoveLeftAux + def SetTheory.PGame.relabellingMoveRight + def SetTheory.PGame.relabellingMoveRightAux + def SetTheory.PGame.rightMovesOfState + def SetTheory.PGame.rightMovesOfStateAux + theorem SetTheory.PGame.turnBound_ne_zero_of_left_move + theorem SetTheory.PGame.turnBound_ne_zero_of_right_move + theorem SetTheory.PGame.turnBound_of_left + theorem SetTheory.PGame.turnBound_of_right Modified Mathlib/SetTheory/Surreal/Basic.lean - theorem PGame.Numeric.add - theorem PGame.Numeric.le_moveRight - theorem PGame.Numeric.left_lt_right - theorem PGame.Numeric.lt_moveRight - theorem PGame.Numeric.mk - theorem PGame.Numeric.moveLeft - theorem PGame.Numeric.moveLeft_le - theorem PGame.Numeric.moveLeft_lt - theorem PGame.Numeric.moveRight - theorem PGame.Numeric.neg - theorem PGame.Numeric.sub - def PGame.Numeric - theorem PGame.Relabelling.numeric_congr - theorem PGame.Relabelling.numeric_imp - theorem PGame.le_iff_forall_lt - theorem PGame.le_of_lf - theorem PGame.lf_asymm - theorem PGame.lf_iff_lt - theorem PGame.lt_def - theorem PGame.lt_iff_exists_le - theorem PGame.lt_of_exists_le - theorem PGame.lt_of_lf - theorem PGame.lt_or_equiv_or_gt - theorem PGame.not_fuzzy - theorem PGame.numeric_def - theorem PGame.numeric_nat - theorem PGame.numeric_of_isEmpty - theorem PGame.numeric_of_isEmpty_leftMoves - theorem PGame.numeric_of_isEmpty_rightMoves - theorem PGame.numeric_one - theorem PGame.numeric_rec - theorem PGame.numeric_toPGame - theorem PGame.numeric_zero + theorem SetTheory.PGame.Numeric.add + theorem SetTheory.PGame.Numeric.le_moveRight + theorem SetTheory.PGame.Numeric.left_lt_right + theorem SetTheory.PGame.Numeric.lt_moveRight + theorem SetTheory.PGame.Numeric.mk + theorem SetTheory.PGame.Numeric.moveLeft + theorem SetTheory.PGame.Numeric.moveLeft_le + theorem SetTheory.PGame.Numeric.moveLeft_lt + theorem SetTheory.PGame.Numeric.moveRight + theorem SetTheory.PGame.Numeric.neg + theorem SetTheory.PGame.Numeric.sub + def SetTheory.PGame.Numeric + theorem SetTheory.PGame.Relabelling.numeric_congr + theorem SetTheory.PGame.Relabelling.numeric_imp + theorem SetTheory.PGame.le_iff_forall_lt + theorem SetTheory.PGame.le_of_lf + theorem SetTheory.PGame.lf_asymm + theorem SetTheory.PGame.lf_iff_lt + theorem SetTheory.PGame.lt_def + theorem SetTheory.PGame.lt_iff_exists_le + theorem SetTheory.PGame.lt_of_exists_le + theorem SetTheory.PGame.lt_of_lf + theorem SetTheory.PGame.lt_or_equiv_or_gt + theorem SetTheory.PGame.not_fuzzy + theorem SetTheory.PGame.numeric_def + theorem SetTheory.PGame.numeric_nat + theorem SetTheory.PGame.numeric_of_isEmpty + theorem SetTheory.PGame.numeric_of_isEmpty_leftMoves + theorem SetTheory.PGame.numeric_of_isEmpty_rightMoves + theorem SetTheory.PGame.numeric_one + theorem SetTheory.PGame.numeric_rec + theorem SetTheory.PGame.numeric_toPGame + theorem SetTheory.PGame.numeric_zero Modified Mathlib/SetTheory/Surreal/Dyadic.lean - theorem PGame.add_powHalf_succ_self_eq_powHalf - theorem PGame.birthday_half - theorem PGame.half_add_half_equiv_one - theorem PGame.numeric_powHalf - def PGame.powHalf - theorem PGame.powHalf_le_one - theorem PGame.powHalf_leftMoves - theorem PGame.powHalf_moveLeft - theorem PGame.powHalf_pos - theorem PGame.powHalf_succ_le_powHalf - theorem PGame.powHalf_succ_lt_one - theorem PGame.powHalf_succ_lt_powHalf - theorem PGame.powHalf_succ_moveRight - theorem PGame.powHalf_succ_rightMoves - theorem PGame.powHalf_zero - theorem PGame.powHalf_zero_rightMoves - theorem PGame.zero_le_powHalf + theorem SetTheory.PGame.add_powHalf_succ_self_eq_powHalf + theorem SetTheory.PGame.birthday_half + theorem SetTheory.PGame.half_add_half_equiv_one + theorem SetTheory.PGame.numeric_powHalf + def SetTheory.PGame.powHalf + theorem SetTheory.PGame.powHalf_le_one + theorem SetTheory.PGame.powHalf_leftMoves + theorem SetTheory.PGame.powHalf_moveLeft + theorem SetTheory.PGame.powHalf_pos + theorem SetTheory.PGame.powHalf_succ_le_powHalf + theorem SetTheory.PGame.powHalf_succ_lt_one + theorem SetTheory.PGame.powHalf_succ_lt_powHalf + theorem SetTheory.PGame.powHalf_succ_moveRight + theorem SetTheory.PGame.powHalf_succ_rightMoves + theorem SetTheory.PGame.powHalf_zero + theorem SetTheory.PGame.powHalf_zero_rightMoves + theorem SetTheory.PGame.zero_le_powHalf Modified docs/overview.yaml Modified scripts/nolints.json 2023-08-31 07:25:14 2fa7e88 docs: Better explain `FarFromTriangleFree` (#6696) ESTIMATED CHANGES Modified Mathlib/Combinatorics/SimpleGraph/Triangle/Basic.lean - theorem SimpleGraph.farFromTriangleFree.mono 2023-08-31 06:59:37 5fdbb6a feat: some instances for effective epimorphic families (#6879) We provide some instances for effective epimorphic families whose coproduct exists. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Sites/EffectiveEpimorphic.lean + def CategoryTheory.EffectiveEpiFamilyStruct_of_isIso_desc + def CategoryTheory.EffectiveEpiFamily_descStruct + def CategoryTheory.EffectiveEpi_familyStruct 2023-08-31 04:41:08 dd781b4 chore: move 2 files to a new folder (#6853) Later I'm going to split files like `Lipschitz` into 2: one in `EMetricSpace/` and one in `MetricSpace/`. ESTIMATED CHANGES Modified Counterexamples/SorgenfreyLine.lean Modified Mathlib.lean Modified Mathlib/Analysis/Fourier/RiemannLebesgueLemma.lean Renamed Mathlib/Topology/MetricSpace/EMetricSpace.lean to Mathlib/Topology/EMetricSpace/Basic.lean Renamed Mathlib/Topology/MetricSpace/EMetricParacompact.lean to Mathlib/Topology/EMetricSpace/Paracompact.lean Modified Mathlib/Topology/MetricSpace/Basic.lean Modified Mathlib/Topology/MetricSpace/MetricSeparated.lean Modified Mathlib/Topology/MetricSpace/PartitionOfUnity.lean Modified Mathlib/Topology/MetricSpace/ShrinkingLemma.lean Modified Mathlib/Topology/Paracompact.lean 2023-08-30 22:54:58 bfb6bb7 refactor: remove PiLp.equiv (#6501) This removes the `(PiLp.equiv 2 fun i => α i)` abbreviation, replacing it with its implementation `(WithLp.equiv 2 (∀ i, α i))`. The same thing is done for `PiLp.linearEquiv`. ESTIMATED CHANGES Modified Mathlib/Analysis/InnerProductSpace/PiL2.lean - theorem PiLp.equiv_single - theorem PiLp.equiv_symm_single + theorem WithLp.equiv_single + theorem WithLp.equiv_symm_single Modified Mathlib/Analysis/Matrix.lean +/- theorem Matrix.frobenius_nnnorm_col +/- theorem Matrix.frobenius_nnnorm_row +/- theorem Matrix.frobenius_norm_col +/- theorem Matrix.frobenius_norm_row Modified Mathlib/Analysis/NormedSpace/PiLp.lean +/- theorem PiLp.basisFun_equivFun +/- theorem PiLp.continuous_equiv +/- theorem PiLp.continuous_equiv_symm - theorem PiLp.equiv_apply - theorem PiLp.equiv_symm_apply +/- theorem PiLp.infty_equiv_isometry +/- theorem PiLp.lipschitzWith_equiv +/- theorem PiLp.lipschitzWith_equiv_aux +/- theorem PiLp.norm_equiv_symm_single +/- theorem PiLp.uniformContinuous_equiv + theorem WithLp.equiv_pi_apply + theorem WithLp.equiv_symm_pi_apply Modified Mathlib/Analysis/Quaternion.lean Modified Mathlib/Combinatorics/Additive/Behrend.lean Modified Mathlib/LinearAlgebra/Matrix/Hermitian.lean Modified Mathlib/LinearAlgebra/Matrix/LDL.lean Modified Mathlib/LinearAlgebra/Matrix/Spectrum.lean Modified Mathlib/MeasureTheory/Measure/Haar/OfBasis.lean +/- theorem EuclideanSpace.coe_measurableEquiv 2023-08-30 21:33:56 0a341a6 refactor(Data/Set): redefine `Set.Nontrivial` (#6805) Fixes #4353 ESTIMATED CHANGES Modified Mathlib/Data/Set/Basic.lean 2023-08-30 16:50:32 bae4f34 feat: define `ProperConstSMul` (#6675) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Topology/Algebra/ProperConstSMul.lean + theorem IsCompact.preimage_smul + theorem isProperMap_smul Modified Mathlib/Topology/ProperMap.lean + theorem Continuous.isProperMap + theorem isProperMap_iff_ultrafilter_of_t2 Modified Mathlib/Topology/Separation.lean + theorem IsCompact.preimage_continuous 2023-08-30 15:04:49 20d0162 feat: fix bug in MVarId.independent? and handling of symm in solve_by_elim (#6862) Fixes the `exact?` bug reported at https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/exact.3F.20recent.20regression.3F/near/387691588. Diagnosing this problem also revealed https://github.com/leanprover/lean4/issues/2483, which we work around here (thanks @kmill) rather than wait for. ESTIMATED CHANGES Modified Mathlib/Lean/Meta.lean Modified Mathlib/Tactic/SolveByElim.lean Modified test/LibrarySearch/basic.lean + theorem ex' 2023-08-30 13:20:23 2d4a7e0 chore: bump to v4.0.0-rc4 (#6873) ESTIMATED CHANGES Modified lake-manifest.json Modified lean-toolchain 2023-08-30 09:45:59 571a128 chore(Algebra/Group/Basic): remove redundant declaration (#6871) ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Basic.lean +/- theorem inv_inj 2023-08-30 07:55:56 cc016b6 chore: bump upstream dependencies (#6865) ESTIMATED CHANGES Modified lake-manifest.json 2023-08-30 03:48:21 e8477a9 chore: rm `@[simp]` from factorial_succ (#6840) ESTIMATED CHANGES Modified Mathlib/Data/Complex/Exponential.lean Modified Mathlib/Data/Nat/Factorial/Basic.lean 2023-08-30 00:51:00 c83178f chore: bump quote4 (#6857) ESTIMATED CHANGES Modified lake-manifest.json 2023-08-29 21:39:54 0c4163f refactor: split `MeasureTheory.Group.Integration` (#6715) I want to use the lemma `lintegral_add_right_eq_self` in a file that doesn't import Bochner integration. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Analysis/Convolution.lean Modified Mathlib/Analysis/Fourier/AddCircle.lean Modified Mathlib/Analysis/Fourier/FourierTransform.lean Modified Mathlib/Analysis/Fourier/RiemannLebesgueLemma.lean Modified Mathlib/Analysis/SpecialFunctions/ImproperIntegrals.lean Renamed Mathlib/MeasureTheory/Group/Integration.lean to Mathlib/MeasureTheory/Group/Integral.lean - theorem MeasureTheory.lintegral_div_right_eq_self - theorem MeasureTheory.lintegral_eq_zero_of_isMulLeftInvariant - theorem MeasureTheory.lintegral_mul_left_eq_self - theorem MeasureTheory.lintegral_mul_right_eq_self Added Mathlib/MeasureTheory/Group/LIntegral.lean + theorem MeasureTheory.lintegral_div_right_eq_self + theorem MeasureTheory.lintegral_eq_zero_of_isMulLeftInvariant + theorem MeasureTheory.lintegral_mul_left_eq_self + theorem MeasureTheory.lintegral_mul_right_eq_self 2023-08-29 19:05:08 7df583c feat(Data/List/Basic): mem_doubleton (#6756) ESTIMATED CHANGES Modified Mathlib/Data/List/Basic.lean + theorem List.mem_pair 2023-08-29 16:55:05 81b27a4 feat: add the portmanteau implication from Borel set limit condition to closed set limsup condition (#6253) Add one implication of portmanteau theorem: a Borel set limit condition implies a closed set limsup condition. ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Measure/FiniteMeasure.lean + theorem MeasureTheory.FiniteMeasure.apply_le_mass Modified Mathlib/MeasureTheory/Measure/Portmanteau.lean + theorem MeasureTheory.le_liminf_measure_open_of_forall_tendsto_measure + theorem MeasureTheory.limsup_measure_closed_le_of_forall_tendsto_measure Modified Mathlib/MeasureTheory/Measure/ProbabilityMeasure.lean + theorem MeasureTheory.ProbabilityMeasure.apply_le_one 2023-08-29 15:10:23 2865aed feat: multiplicative morphism properties (#6698) This PR introduces the notion of multiplicative morphism property, i.e. contains identities and is stable under composition. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/MorphismProperty.lean + theorem CategoryTheory.MorphismProperty.ContainsIdentities.of_op + theorem CategoryTheory.MorphismProperty.ContainsIdentities.of_unop + theorem CategoryTheory.MorphismProperty.IsMultiplicative.of_op + theorem CategoryTheory.MorphismProperty.IsMultiplicative.of_unop + theorem CategoryTheory.MorphismProperty.comp_mem + theorem CategoryTheory.MorphismProperty.id_mem 2023-08-29 13:52:36 cac4c90 feat: rw? uses local hypotheses (#6764) ESTIMATED CHANGES Modified Mathlib/Tactic/Rewrites.lean + def Mathlib.Tactic.Rewrites.backwardWeight + def Mathlib.Tactic.Rewrites.forwardWeight + def Mathlib.Tactic.Rewrites.localHypotheses +/- def Mathlib.Tactic.Rewrites.rewrites +/- def Mathlib.Tactic.Rewrites.rewritesCore Modified test/rewrites.lean 2023-08-29 12:49:38 46f6f34 feat: Estimator typeclass and implementation for Levenshtein distance (#6119) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Data/List/EditDistance/Estimator.lean + structure LevenshteinEstimator' + def LevenshteinEstimator Added Mathlib/Order/Estimator.lean + structure Estimator.fst + def Estimator.fstInst + def Estimator.improveUntil + def Estimator.improveUntilAux + theorem Estimator.improveUntilAux_spec + theorem Estimator.improveUntil_spec 2023-08-29 10:56:21 33a92b6 chore: delete empty `Card` file from #6341 (#6842) ESTIMATED CHANGES Deleted Card 2023-08-29 10:34:53 9c42de5 docs(CategoryTheory/EssentialImage): typo and punctuation (#6841) Fix a typo, add two periods. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/EssentialImage.lean 2023-08-29 08:16:37 1680acb feat: the category of presheaves of modules is preadditive (#6837) ESTIMATED CHANGES Modified Mathlib/Algebra/Category/ModuleCat/Presheaf.lean + theorem PresheafOfModules.Hom.add_app +/- def PresheafOfModules.Hom.app + theorem PresheafOfModules.Hom.comp_app +/- theorem PresheafOfModules.Hom.ext + theorem PresheafOfModules.Hom.neg_app + theorem PresheafOfModules.Hom.sub_app + theorem PresheafOfModules.Hom.zero_app + theorem PresheafOfModules.toPresheaf_map_app 2023-08-29 03:36:02 d7b5d38 feat: lower bounds for Levenshtein edit distance (#6118) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Data/List/EditDistance/Bounds.lean + theorem le_levenshtein_append + theorem le_levenshtein_cons + theorem le_suffixLevenshtein_append_minimum + theorem le_suffixLevenshtein_cons_minimum + theorem suffixLevenshtein_minimum_le_levenshtein_append + theorem suffixLevenshtein_minimum_le_levenshtein_cons Modified Mathlib/Data/List/MinMax.lean + theorem List.le_minimum_of_forall_le - theorem List.le_minimum_of_mem' + theorem List.maximum_le_of_forall_le + theorem List.minimum_le_of_mem' 2023-08-29 02:16:41 b9d6ccb chore: reduce withImportModules duplication (#6482) ESTIMATED CHANGES Modified ImportGraph/Main.lean Modified Mathlib.lean Added Mathlib/Lean/CoreM.lean + def CoreM.withImportModules Modified lake-manifest.json Modified scripts/checkYaml.lean Modified scripts/runLinter.lean 2023-08-29 00:54:33 0a43d12 chore: fix bug in rw? (#6088) This fixes a problem I encountered in another tactic, where the rewrites are not being tried with the original `MetavarContext`. ESTIMATED CHANGES Modified Mathlib/Tactic/Rewrites.lean Modified test/rewrites.lean + def zero 2023-08-28 22:49:52 9b9a1a5 chore: cleanup unneeded lines (#6829) After https://github.com/leanprover/std4/pull/230, and clear some unused imports ESTIMATED CHANGES Modified Mathlib/Analysis/SpecialFunctions/Stirling.lean Modified Mathlib/Tactic/Nontriviality/Core.lean 2023-08-28 21:38:14 af00132 feat: upgrade a functor to a functor to structured arrows (#6787) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Limits/ConeCategory.lean + def CategoryTheory.Functor.toCostructuredArrowIsoToCostructuredArrow + def CategoryTheory.Functor.toStructuredArrowIsoToStructuredArrow + def CategoryTheory.Limits.Cocone.toCostructuredArrowIsoToCostructuredArrow + def CategoryTheory.Limits.Cone.toStructuredArrowIsoToStructuredArrow Modified Mathlib/CategoryTheory/Over.lean + def CategoryTheory.Functor.toOver + def CategoryTheory.Functor.toOverCompForget + theorem CategoryTheory.Functor.toOver_comp_forget + def CategoryTheory.Functor.toUnder + def CategoryTheory.Functor.toUnderCompForget + theorem CategoryTheory.Functor.toUnder_comp_forget Modified Mathlib/CategoryTheory/StructuredArrow.lean + def CategoryTheory.Functor.toCostructuredArrow + def CategoryTheory.Functor.toCostructuredArrowCompProj + theorem CategoryTheory.Functor.toCostructuredArrow_comp_proj + def CategoryTheory.Functor.toStructuredArrow + def CategoryTheory.Functor.toStructuredArrowCompProj + theorem CategoryTheory.Functor.toStructuredArrow_comp_proj 2023-08-28 21:38:13 a8ca827 feat: use the function to help elaborate the injectivity lemma in `apply_fun` (#6733) ESTIMATED CHANGES Modified Mathlib/FieldTheory/Finite/Basic.lean Modified Mathlib/Tactic/ApplyFun.lean +/- def Mathlib.Tactic.applyFunHyp +/- def Mathlib.Tactic.applyFunTarget Modified test/apply_fun.lean 2023-08-28 21:38:12 7499ee4 refactor: move morphisms in StructuredArrow to a lower universe (#6397) This PR changes the definition ```lean abbrev fromPUnit (X : C) : Discrete PUnit.{v + 1} ⥤ C := (Functor.const _).obj X ``` to ```lean abbrev fromPUnit (X : C) : Discrete PUnit.{w + 1} ⥤ C := (Functor.const _).obj X ``` and then redefines ```lean def StructuredArrow (S : D) (T : C ⥤ D) := Comma (Functor.fromPUnit S) T ``` to ```lean def StructuredArrow (S : D) (T : C ⥤ D) := Comma (Functor.fromPUnit.{0} S) T ``` The effect of this is that given `{C : Type u₁} [Category.{v₁} C] {D : Type u₂} [Category.{v₂} D] (S : D) (T : C ⥤ D)`, the morphisms of `StructuredArrow S T` no longer live in `max v₁ v₂`, but in `v₁`, as they should. Thus, this PR is basically a better version of #6388. My guess for why we used to have the larger universe is that back in the day, the universes for limits were much more restricted, so stating the results of `Limits/Comma.lean` was not possible if the morphisms of `StructuredArrow` live in `v₁`. Luckily, by now it is possible to state everything correctly, and this PR adjusts `Limits/Comma.lean` and `Limits/Over.lean` accordingly. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Closed/Zero.lean +/- def CategoryTheory.equivPUnit Modified Mathlib/CategoryTheory/Limits/Comma.lean Modified Mathlib/CategoryTheory/Limits/Over.lean Modified Mathlib/CategoryTheory/PUnit.lean +/- def CategoryTheory.Functor.equiv +/- def CategoryTheory.Functor.punitExt +/- theorem CategoryTheory.Functor.punit_ext' +/- def CategoryTheory.Functor.star Modified Mathlib/CategoryTheory/StructuredArrow.lean 2023-08-28 20:53:59 cf01bda chore: fix SHA for Dold-Kan equivalence files (#6834) ESTIMATED CHANGES Modified Mathlib/AlgebraicTopology/DoldKan/Compatibility.lean Modified Mathlib/AlgebraicTopology/DoldKan/Decomposition.lean Modified Mathlib/AlgebraicTopology/DoldKan/Degeneracies.lean Modified Mathlib/AlgebraicTopology/DoldKan/EquivalenceAdditive.lean Modified Mathlib/AlgebraicTopology/DoldKan/EquivalencePseudoabelian.lean Modified Mathlib/AlgebraicTopology/DoldKan/Faces.lean Modified Mathlib/AlgebraicTopology/DoldKan/FunctorGamma.lean Modified Mathlib/AlgebraicTopology/DoldKan/FunctorN.lean Modified Mathlib/AlgebraicTopology/DoldKan/GammaCompN.lean Modified Mathlib/AlgebraicTopology/DoldKan/NCompGamma.lean Modified Mathlib/AlgebraicTopology/DoldKan/NReflectsIso.lean Modified Mathlib/AlgebraicTopology/DoldKan/Normalized.lean Modified Mathlib/AlgebraicTopology/DoldKan/Notations.lean Modified Mathlib/AlgebraicTopology/DoldKan/PInfty.lean Modified Mathlib/AlgebraicTopology/DoldKan/Projections.lean Modified Mathlib/AlgebraicTopology/DoldKan/SplitSimplicialObject.lean Modified Mathlib/CategoryTheory/Functor/Category.lean 2023-08-28 19:47:53 837c4ae chore: tidy various files (#6577) ESTIMATED CHANGES Modified Mathlib/Algebra/Category/Ring/Colimits.lean Modified Mathlib/Algebra/Lie/Submodule.lean Modified Mathlib/AlgebraicGeometry/Limits.lean Modified Mathlib/AlgebraicGeometry/PrimeSpectrum/Basic.lean +/- theorem PrimeSpectrum.comap_inducing_of_surjective - theorem PrimeSpectrum.pUnit + theorem PrimeSpectrum.punit Modified Mathlib/Analysis/Analytic/Basic.lean Modified Mathlib/Analysis/Calculus/FDeriv/Comp.lean Modified Mathlib/Analysis/Calculus/FDeriv/Prod.lean Modified Mathlib/Analysis/Convex/Cone/Basic.lean + theorem Convex.mem_toCone' - theorem Convex.mem_to_cone' Modified Mathlib/Analysis/NormedSpace/MazurUlam.lean + theorem IsometryEquiv.coe_toRealLinearIsometryEquivOfMapZero + theorem IsometryEquiv.coe_toRealLinearIsometryEquivOfMapZero_symm - theorem IsometryEquiv.coe_to_real_linear_equiv_of_map_zero - theorem IsometryEquiv.coe_to_real_linear_equiv_of_map_zero_symm + theorem IsometryEquiv.toRealLinearIsometryEquiv_apply - theorem IsometryEquiv.to_real_linear_equiv_apply Modified Mathlib/MeasureTheory/Function/L1Space.lean Modified Mathlib/MeasureTheory/Function/SimpleFunc.lean Modified Mathlib/RingTheory/Ideal/Over.lean + theorem Ideal.exists_ideal_over_prime_of_isIntegral' - theorem Ideal.exists_ideal_over_prime_of_is_integral' Modified Mathlib/Topology/VectorBundle/Basic.lean 2023-08-28 19:24:28 08334f5 feat: basic results about epi/mono/iso in pretriangulated categories (#6815) In this PR, it is shown that in pretriangulated categories, monomorphisms (and epimorphisms) split. In a distinguished triangle, a morphism is an isomorphism iff the third object is zero. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Triangulated/Pretriangulated.lean + theorem CategoryTheory.Pretriangulated.Triangle.coyoneda_exact₁ + theorem CategoryTheory.Pretriangulated.Triangle.coyoneda_exact₂ + theorem CategoryTheory.Pretriangulated.Triangle.coyoneda_exact₃ + theorem CategoryTheory.Pretriangulated.Triangle.epi₁ + theorem CategoryTheory.Pretriangulated.Triangle.epi₂ + theorem CategoryTheory.Pretriangulated.Triangle.epi₃ + theorem CategoryTheory.Pretriangulated.Triangle.isZero₁_iff + theorem CategoryTheory.Pretriangulated.Triangle.isZero₁_iff_isIso₂ + theorem CategoryTheory.Pretriangulated.Triangle.isZero₁_of_isIso₂ + theorem CategoryTheory.Pretriangulated.Triangle.isZero₁_of_isZero₂₃ + theorem CategoryTheory.Pretriangulated.Triangle.isZero₂_iff + theorem CategoryTheory.Pretriangulated.Triangle.isZero₂_iff_isIso₃ + theorem CategoryTheory.Pretriangulated.Triangle.isZero₂_of_isIso₃ + theorem CategoryTheory.Pretriangulated.Triangle.isZero₂_of_isZero₁₃ + theorem CategoryTheory.Pretriangulated.Triangle.isZero₃_iff + theorem CategoryTheory.Pretriangulated.Triangle.isZero₃_iff_isIso₁ + theorem CategoryTheory.Pretriangulated.Triangle.isZero₃_of_isIso₁ + theorem CategoryTheory.Pretriangulated.Triangle.isZero₃_of_isZero₁₂ + theorem CategoryTheory.Pretriangulated.Triangle.mono₁ + theorem CategoryTheory.Pretriangulated.Triangle.mono₂ + theorem CategoryTheory.Pretriangulated.Triangle.mono₃ + theorem CategoryTheory.Pretriangulated.Triangle.mor₁_eq_zero_iff_epi₃ + theorem CategoryTheory.Pretriangulated.Triangle.mor₁_eq_zero_iff_mono₂ + theorem CategoryTheory.Pretriangulated.Triangle.mor₁_eq_zero_of_epi₃ + theorem CategoryTheory.Pretriangulated.Triangle.mor₁_eq_zero_of_mono₂ + theorem CategoryTheory.Pretriangulated.Triangle.mor₂_eq_zero_iff_epi₁ + theorem CategoryTheory.Pretriangulated.Triangle.mor₂_eq_zero_iff_mono₃ + theorem CategoryTheory.Pretriangulated.Triangle.mor₂_eq_zero_of_epi₁ + theorem CategoryTheory.Pretriangulated.Triangle.mor₂_eq_zero_of_mono₃ + theorem CategoryTheory.Pretriangulated.Triangle.mor₃_eq_zero_iff_epi₂ + theorem CategoryTheory.Pretriangulated.Triangle.mor₃_eq_zero_iff_mono₁ + theorem CategoryTheory.Pretriangulated.Triangle.mor₃_eq_zero_of_epi₂ + theorem CategoryTheory.Pretriangulated.Triangle.mor₃_eq_zero_of_mono₁ + theorem CategoryTheory.Pretriangulated.Triangle.yoneda_exact₂ + theorem CategoryTheory.Pretriangulated.Triangle.yoneda_exact₃ - theorem CategoryTheory.Pretriangulated.coyoneda_exact₁ - theorem CategoryTheory.Pretriangulated.coyoneda_exact₂ - theorem CategoryTheory.Pretriangulated.coyoneda_exact₃ - theorem CategoryTheory.Pretriangulated.yoneda_exact₂ - theorem CategoryTheory.Pretriangulated.yoneda_exact₃ 2023-08-28 14:22:33 bcd40be fix(Tactic/ExtractGoal): remove mathport's placeholder syntax for `extract_goal` (#6707) `extract_goal` has been implemented in #4595. Currently `import Mathlib.Mathport.Syntax` (or `import Mathlib`) overwrites this with a placeholder syntax yielding: `tactic 'Mathlib.Tactic.extractGoal' has not been implemented` ESTIMATED CHANGES Modified Mathlib/Mathport/Syntax.lean Modified Mathlib/Tactic/ExtractGoal.lean 2023-08-28 13:36:25 8dd91af lint(scripts/lint-style): Add linting for lower-case clashes (#6825) Introduce a global check on git-managed filenames in the whole repository, making sure that the filenames are distinct also up to upper/lower casing. Fixes an issue that came up when two file names that only differed by their casing were imported in a case-insensitive operating system. As a check, I pushed [branch#adomani/testUpperLowerLinter](https://github.com/leanprover-community/mathlib4/tree/adomani/testUpperLowerLinter) from this PR containing `CODe_OF_CONDUCT.md` alongside `CODE_OF_CONDUCT.md`. The [linter failed](https://github.com/leanprover-community/mathlib4/actions/runs/5997399826/job/16263715177) on that branch. ESTIMATED CHANGES Modified scripts/lint-style.sh 2023-08-28 13:36:24 91f0ca6 feat: inclusion maps into finite coproducts in Stonean are open embeddings (#6774) ... both the explicit and the abstract one. - [x] depends on: #6771 ESTIMATED CHANGES Modified Mathlib/Topology/Category/Stonean/Limits.lean + theorem Stonean.Sigma.openEmbedding_ι + theorem Stonean.finiteCoproduct.openEmbedding_ι 2023-08-28 12:46:49 7c2f384 feat: generalize sheaf condition to only the relevant pullbacks existing (#6750) We define a predicate `Presieve.hasPullbacks` which says that the pullback of every pair of arrows in the presieve exists. This allows to generalize `Equalizer.Presieve.sheaf_condition` to categories that don't necessarily have all pullbacks (such as `Stonean`). ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Sites/SheafOfTypes.lean +/- def CategoryTheory.Presieve.FamilyOfElements.PullbackCompatible +/- theorem CategoryTheory.Presieve.pullbackCompatible_iff Modified Mathlib/CategoryTheory/Sites/Sieves.lean 2023-08-28 11:01:16 5bf01a8 chore: bump Std (#6822) ESTIMATED CHANGES Modified lake-manifest.json 2023-08-28 07:27:07 a80d330 chore: bump to v4.0.0-rc2 (#6824) This is actually a no-op, as `v4.0.0-rc2` points to the same commit as `nightly-2023-08-23`. But the plan is to wean us off the nightly releases and on to release candidates, so might as well start now. ESTIMATED CHANGES Modified lean-toolchain 2023-08-28 05:30:46 9460288 fix(test/{ Change - change }): merge the files test/Change and test/change (#6821) The motivation is that on case-insensitive system, the files overwrite each other. The `bash` command ```bash # uniq -D: print all duplicate lines git ls-files | sort --ignore-case | uniq -D --ignore-case ``` lists all the paths that are identical when upper/lower case is ignored. [Zulip](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/test.2Fchange.2Elean) ESTIMATED CHANGES Modified test/Change.lean + def foo Deleted test/change.lean - def foo 2023-08-27 17:09:59 16a23a0 feat: more API for Sigma.map' (#6811) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Limits/Shapes/Products.lean + theorem CategoryTheory.Limits.Pi.map'_eq + theorem CategoryTheory.Limits.Pi.map'_id_id + theorem CategoryTheory.Limits.Pi.map_id + theorem CategoryTheory.Limits.Sigma.map'_eq + theorem CategoryTheory.Limits.Sigma.map'_id_id + theorem CategoryTheory.Limits.Sigma.map_id 2023-08-27 16:15:49 7a05c35 feat: functoriality of StructuredArrow.homMk' (#6813) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/StructuredArrow.lean + theorem CategoryTheory.CostructuredArrow.homMk'_comp + theorem CategoryTheory.CostructuredArrow.homMk'_id + theorem CategoryTheory.CostructuredArrow.homMk'_mk_comp + theorem CategoryTheory.CostructuredArrow.homMk'_mk_id + theorem CategoryTheory.StructuredArrow.eqToHom_right + theorem CategoryTheory.StructuredArrow.homMk'_comp + theorem CategoryTheory.StructuredArrow.homMk'_id + theorem CategoryTheory.StructuredArrow.homMk'_mk_comp + theorem CategoryTheory.StructuredArrow.homMk'_mk_id 2023-08-27 14:55:32 1e89b24 feat: Function.End.one_def and mul_def (#6802) ESTIMATED CHANGES Modified Mathlib/GroupTheory/GroupAction/Defs.lean + theorem Function.End.mul_def + theorem Function.End.one_def 2023-08-27 12:05:24 9a9e31c feat: `congr(...)` congruence quotations and port `congrm` tactic (#2544) Adds a term elaborator for `congr(...)` "congruence quotations". For example, if `hf : f = f'` and `hx : x = x'`, then we have `congr($hf $x) : f x = f' x'`. This supports the functions having implicit arguments, and it has support for subsingleton instance arguments. So for example, if `s t : Set X` are sets with `Fintype` instances and `h : s = t` then `congr(Fintype.card $h) : Fintype.card s = Fintype.card t` works. Ports the `congrm` tactic as a convenient frontend for applying a congruence quotation to the goal. Holes are turned into congruence holes. For example, `congrm 1 + ?_` uses `congr(1 + $(?_))`. Placeholders (`_`) do not turn into congruence holes; that's not to say they have to be identical on the LHS and RHS, but `congrm` itself is responsible for finding a congruence lemma for such arguments. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Analysis/Convex/Gauge.lean +/- theorem gauge_def' Modified Mathlib/Analysis/LocallyConvex/WithSeminorms.lean Modified Mathlib/Geometry/Manifold/LocalInvariantProperties.lean Modified Mathlib/Geometry/Manifold/MFDeriv.lean Modified Mathlib/Geometry/Manifold/VectorBundle/FiberwiseLinear.lean Modified Mathlib/LinearAlgebra/Matrix/SpecialLinearGroup.lean Modified Mathlib/Mathport/Syntax.lean Modified Mathlib/NumberTheory/Modular.lean Modified Mathlib/Order/OrderIsoNat.lean Modified Mathlib/Tactic.lean Modified Mathlib/Tactic/Common.lean Added Mathlib/Tactic/Congrm.lean Added Mathlib/Tactic/TermCongr.lean + def Mathlib.Tactic.TermCongr.CongrResult.defeq + def Mathlib.Tactic.TermCongr.CongrResult.eq + def Mathlib.Tactic.TermCongr.CongrResult.heq + def Mathlib.Tactic.TermCongr.CongrResult.iff + def Mathlib.Tactic.TermCongr.CongrResult.isRfl + def Mathlib.Tactic.TermCongr.CongrResult.mk' + def Mathlib.Tactic.TermCongr.CongrResult.mkDefault' + def Mathlib.Tactic.TermCongr.CongrResult.mkDefault + def Mathlib.Tactic.TermCongr.CongrResult.trans + structure Mathlib.Tactic.TermCongr.CongrResult + inductive Mathlib.Tactic.TermCongr.CongrType + def Mathlib.Tactic.TermCongr.cHole + def Mathlib.Tactic.TermCongr.cHole? + def Mathlib.Tactic.TermCongr.elabCHole + def Mathlib.Tactic.TermCongr.elabCHoleExpand + def Mathlib.Tactic.TermCongr.elabTermCongr + def Mathlib.Tactic.TermCongr.elaboratePattern + def Mathlib.Tactic.TermCongr.ensureIff + def Mathlib.Tactic.TermCongr.hasCHole + def Mathlib.Tactic.TermCongr.mkCHole + def Mathlib.Tactic.TermCongr.mkCongrOfCHole? + def Mathlib.Tactic.TermCongr.mkEqForExpectedType + def Mathlib.Tactic.TermCongr.mkHCongrWithArity' + def Mathlib.Tactic.TermCongr.mkHEqForExpectedType + def Mathlib.Tactic.TermCongr.mkIffForExpectedType + def Mathlib.Tactic.TermCongr.processAntiquot + def Mathlib.Tactic.TermCongr.removeCHoles + def Mathlib.Tactic.TermCongr.sides? + def Mathlib.Tactic.TermCongr.throwCongrEx + def Mathlib.Tactic.TermCongr.unexpandCHole Modified Mathlib/Topology/UniformSpace/Equicontinuity.lean Added test/TermCongr.lean + structure Tests.Foo Added test/TermCongr2.lean Added test/congrm.lean + def Tests.Congrm.foo' + def Tests.Congrm.foo 2023-08-27 09:46:50 dd64a90 fix: doc for fin_cases (#6744) With the `*`, I'm getting a syntax error, so I propose to have an example that actually works (or fixing `fin_cases` that it works with `*`.) ESTIMATED CHANGES Modified Mathlib/Tactic/FinCases.lean 2023-08-27 09:46:49 e11aa03 feat: tactic `change? _` (#6471) Writing `change? (some term)` tries to unify the given term with the current goal and prints the result of unification (and instantiation of meta-variables). This is useful to replace a `dsimp` by a `change ...`, when you already know what you would like the end defeq expression to look like. [Zulip discussion](https://leanprover.zulipchat.com/#narrow/stream/270676-lean4/topic/Copying.20from.20the.20widget.20view) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Tactic.lean Added Mathlib/Tactic/Change.lean Added test/Change.lean 2023-08-27 08:28:31 c1c4bde chore(Group): protect things like Semigroup.mul_assoc (#6799) ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Defs.lean 2023-08-27 08:28:30 5359fc2 chore: port and reorder some imports, remove duplicate split_ifs in Tactic.Common (#6798) ESTIMATED CHANGES Modified Mathlib/Tactic/Common.lean Modified test/Monotonicity.lean Modified test/matrix.lean 2023-08-27 08:28:29 d7d4e1f chore(Topology/Sheaves/Forget): port an example from a comment (#6796) I left the example in the docs, so that it shows up in doc-gen, and I duplicated it outside of the docs, so that it does not rot. ESTIMATED CHANGES Modified Mathlib/Topology/Sheaves/Forget.lean 2023-08-27 08:28:28 93bcc03 chore: rename `Nat.shiftl'` to `Nat.shiftLeft'` (#6788) This makes it match the unprimed `Nat.shiftLeft`. Follows on from #6356 which removed `Nat.shiftl`. ESTIMATED CHANGES Modified Mathlib/Data/Int/Bitwise.lean +/- theorem Int.shiftl_negSucc Modified Mathlib/Data/Nat/Bits.lean Modified Mathlib/Data/Nat/Size.lean + theorem Nat.shiftLeft'_ne_zero_left + theorem Nat.shiftLeft'_tt_eq_mul_pow + theorem Nat.shiftLeft'_tt_ne_zero - theorem Nat.shiftl'_ne_zero_left - theorem Nat.shiftl'_tt_eq_mul_pow - theorem Nat.shiftl'_tt_ne_zero + theorem Nat.size_shiftLeft' - theorem Nat.size_shiftl' Modified Mathlib/Init/Data/Int/Bitwise.lean Modified Mathlib/Init/Data/Nat/Bitwise.lean + def Nat.shiftLeft' + theorem Nat.shiftLeft'_add + theorem Nat.shiftLeft'_false + theorem Nat.shiftLeft'_sub - def Nat.shiftl' - theorem Nat.shiftl'_add - theorem Nat.shiftl'_false - theorem Nat.shiftl'_sub 2023-08-27 05:46:32 49a849e feat: fix norm num with arguments (#6600) `norm_num` was passing the wrong syntax node to `elabSimpArgs` when elaborating, which essentially had the effect of ignoring all arguments it was passed, i.e. `norm_num [add_comm]` would not try to commute addition in the simp step. The fix itself is very simple (though not obvious to debug!), probably using TSyntax more would help avoid such issues in future. Due to this bug many `norm_num [blah]` became `rw [blah]; norm_num` or similar, sometimes with porting notes, sometimes not, we fix these porting notes and other regressions during the port also. Interestingly `cancel_denoms` uses `norm_num [<- mul_assoc]` internally, so `cancel_denoms` also got stronger with this change. ESTIMATED CHANGES Modified Archive/Imo/Imo1962Q1.lean Modified Archive/Imo/Imo1975Q1.lean Modified Archive/Imo/Imo1981Q3.lean Modified Archive/Imo/Imo2008Q4.lean Modified Archive/Imo/Imo2019Q4.lean Modified Archive/Wiedijk100Theorems/AbelRuffini.lean Modified Archive/Wiedijk100Theorems/AreaOfACircle.lean Modified Archive/Wiedijk100Theorems/CubingACube.lean Modified Mathlib/Algebra/PUnitInstances.lean Modified Mathlib/Algebra/Ring/BooleanRing.lean Modified Mathlib/AlgebraicTopology/FundamentalGroupoid/Basic.lean Modified Mathlib/Analysis/InnerProductSpace/Basic.lean Modified Mathlib/Analysis/SpecialFunctions/Complex/Log.lean +/- theorem Complex.two_pi_I_ne_zero Modified Mathlib/Analysis/SpecialFunctions/Integrals.lean Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Angle.lean Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Bounds.lean Modified Mathlib/Combinatorics/Catalan.lean +/- theorem catalan_three +/- theorem catalan_two Modified Mathlib/Data/Complex/Exponential.lean Modified Mathlib/Data/Nat/Choose/Sum.lean Modified Mathlib/Data/Nat/Parity.lean Modified Mathlib/GroupTheory/Perm/Sign.lean Modified Mathlib/MeasureTheory/Covering/BesicovitchVectorSpace.lean Modified Mathlib/NumberTheory/Bernoulli.lean +/- theorem bernoulli_one Modified Mathlib/NumberTheory/BernoulliPolynomials.lean Modified Mathlib/NumberTheory/Padics/PadicNumbers.lean Modified Mathlib/NumberTheory/PythagoreanTriples.lean Modified Mathlib/RingTheory/Polynomial/Bernstein.lean Modified Mathlib/SetTheory/Ordinal/Notation.lean Modified Mathlib/Tactic/NormNum/Core.lean Modified Mathlib/Topology/Algebra/Polynomial.lean Modified Mathlib/Topology/Homotopy/Basic.lean Modified Mathlib/Topology/Homotopy/Path.lean Modified Mathlib/Topology/MetricSpace/ThickenedIndicator.lean Modified Mathlib/Topology/PathConnected.lean Modified test/cancel_denoms.lean Modified test/norm_num.lean Modified test/norm_num_ext.lean 2023-08-27 02:59:13 06f8796 feat: have library search use the whole range for replacement (#6782) previously `apply? using h` would replace to `refine blah using h` rather than `refine blah`. This also changes the diagnostic message to be on the whole syntax `apply? using h` rather than just the `apply?` bit, which seems fine to me. ESTIMATED CHANGES Modified Mathlib/Tactic/LibrarySearch.lean 2023-08-27 02:59:11 695a349 chore: cleanup Gcongr after std4#137 (#6775) ESTIMATED CHANGES Modified Mathlib/Tactic/GCongr/Core.lean - def Lean.MVarId.exact 2023-08-27 02:59:10 7315623 feat: make mk_iff produce terms with default lambda binders in exists (#6765) Previously the produced lemmas could look bad with the default exists delaborator i.e. https://leanprover-community.github.io/mathlib4_docs/Mathlib/Data/Multiset/Basic.html#Multiset.Rel_iff I see no reason to keep the implicitness of the original inductive in an existential ESTIMATED CHANGES Modified Mathlib/Tactic/MkIffOfInductiveProp.lean Modified test/MkIffOfInductive.lean 2023-08-27 01:38:26 6b391ef field_simp: Use positivity as a discharger (#6312) The main reasons is that having `h : 0 < denom` in the context should suffice for `field_simp` to do its job, without the need to manually pass `h.ne` or similar. Quite a few `have := … ≠ 0` could be dropped, and some `field_simp` calls no longer need explicit arguments; this is promising. This does break some proofs where `field_simp` was not used as a closing tactic, and it now shuffles terms around a bit different. These were fixed. Using `field_simp` in the middle of a proof seems rather fragile anyways. As a drive-by contribution, `positivity` now knows about `π > 0`. fixes: #4835 ESTIMATED CHANGES Modified Archive/Imo/Imo2005Q3.lean Modified Archive/Imo/Imo2008Q2.lean Modified Archive/Imo/Imo2008Q4.lean Modified Archive/Imo/Imo2013Q1.lean Modified Archive/Imo/Imo2013Q5.lean Modified Archive/Wiedijk100Theorems/AreaOfACircle.lean Modified Archive/Wiedijk100Theorems/InverseTriangleSum.lean Modified Mathlib/Algebra/Order/ToIntervalMod.lean Modified Mathlib/Algebra/QuadraticDiscriminant.lean Modified Mathlib/Analysis/Analytic/Basic.lean Modified Mathlib/Analysis/BoxIntegral/Basic.lean Modified Mathlib/Analysis/Calculus/BumpFunction/FiniteDimension.lean Modified Mathlib/Analysis/Calculus/Taylor.lean Modified Mathlib/Analysis/Complex/LocallyUniformLimit.lean Modified Mathlib/Analysis/Convex/Slope.lean Modified Mathlib/Analysis/Convex/SpecificFunctions/Basic.lean Modified Mathlib/Analysis/Convex/SpecificFunctions/Deriv.lean Modified Mathlib/Analysis/Fourier/AddCircle.lean Modified Mathlib/Analysis/NormedSpace/Pointwise.lean Modified Mathlib/Analysis/NormedSpace/lpSpace.lean Modified Mathlib/Analysis/PSeries.lean Modified Mathlib/Analysis/SpecialFunctions/Stirling.lean Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Basic.lean + def Real.Mathlib.Meta.Positivity.evalExp Modified Mathlib/Combinatorics/Catalan.lean Modified Mathlib/Data/Complex/Exponential.lean Modified Mathlib/Data/Polynomial/HasseDeriv.lean Modified Mathlib/Geometry/Manifold/Instances/Sphere.lean Modified Mathlib/NumberTheory/Bernoulli.lean Modified Mathlib/NumberTheory/DiophantineApproximation.lean Modified Mathlib/NumberTheory/PythagoreanTriples.lean Modified Mathlib/Tactic/FieldSimp.lean Modified Mathlib/Tactic/Positivity/Core.lean + def Mathlib.Meta.Positivity.Meta.Positivity.solve 2023-08-26 23:29:48 c39c6f7 refactor(QuotientGroup): Generalize some things to Monoids (#6804) ESTIMATED CHANGES Modified Mathlib/GroupTheory/QuotientGroup.lean +/- def QuotientGroup.lift +/- theorem QuotientGroup.lift_mk' +/- theorem QuotientGroup.lift_mk +/- theorem QuotientGroup.lift_quot_mk +/- theorem QuotientGroup.monoidHom_ext 2023-08-26 20:43:32 0beb1d0 feat: construct maps between products with different indexing types (#6792) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Limits/Shapes/Biproducts.lean + def CategoryTheory.Limits.biproduct.whiskerEquiv + theorem CategoryTheory.Limits.biproduct.whiskerEquiv_hom_eq_lift + theorem CategoryTheory.Limits.biproduct.whiskerEquiv_inv_eq_lift - def CategoryTheory.Limits.biproduct.whisker_equiv - theorem CategoryTheory.Limits.biproduct.whisker_equiv_hom_eq_lift - theorem CategoryTheory.Limits.biproduct.whisker_equiv_inv_eq_lift Modified Mathlib/CategoryTheory/Limits/Shapes/Products.lean + def CategoryTheory.Limits.Pi.map' + theorem CategoryTheory.Limits.Pi.map'_comp_map' + theorem CategoryTheory.Limits.Pi.map'_comp_map + theorem CategoryTheory.Limits.Pi.map'_comp_π + theorem CategoryTheory.Limits.Pi.map'_id + theorem CategoryTheory.Limits.Pi.map_comp_map' + theorem CategoryTheory.Limits.Pi.map_comp_map + def CategoryTheory.Limits.Pi.whiskerEquiv - def CategoryTheory.Limits.Pi.whisker_equiv + def CategoryTheory.Limits.Sigma.map' + theorem CategoryTheory.Limits.Sigma.map'_comp_map' + theorem CategoryTheory.Limits.Sigma.map'_comp_map + theorem CategoryTheory.Limits.Sigma.map'_id + theorem CategoryTheory.Limits.Sigma.map_comp_map' + theorem CategoryTheory.Limits.Sigma.map_comp_map + def CategoryTheory.Limits.Sigma.whiskerEquiv - def CategoryTheory.Limits.Sigma.whisker_equiv + theorem CategoryTheory.Limits.Sigma.ι_comp_map' 2023-08-26 19:18:55 f8d8104 feat(CategoryTheory/Bicategory): define left Kan extensions (#6552) The basic design follows the API for colimits in the category theory library. The dictionary looks like: Current PR `LeftExtension` <-> `Limits.Cocone` `LeftExtension.IsKan` <-> `Limits.IsColimit` Future PR `LeftExtension.HasKan` <-> `Limits.HasColimit` `lan` <-> `Limits.colimit` The diagrams in the docs are far from ideal, but I hope it helps for the time being. I would be very happy to have a graphical visualization by e.g. the widgets. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Bicategory/Extension.lean + def CategoryTheory.Bicategory.LeftExtension.alongId + def CategoryTheory.Bicategory.LeftLift.alongId + def CategoryTheory.Bicategory.RightExtension.alongId + def CategoryTheory.Bicategory.RightLift.alongId Added Mathlib/CategoryTheory/Bicategory/IsKan.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Terminal.lean + def CategoryTheory.Limits.IsInitial.ofUniqueHom + def CategoryTheory.Limits.IsTerminal.ofUniqueHom Modified Mathlib/CategoryTheory/StructuredArrow.lean + theorem CategoryTheory.CostructuredArrow.IsUniversal.existsUnique + theorem CategoryTheory.CostructuredArrow.IsUniversal.fac + theorem CategoryTheory.CostructuredArrow.IsUniversal.hom_desc + theorem CategoryTheory.CostructuredArrow.IsUniversal.hom_ext + def CategoryTheory.CostructuredArrow.IsUniversal.lift + theorem CategoryTheory.CostructuredArrow.IsUniversal.uniq + theorem CategoryTheory.CostructuredArrow.hom_eq_iff + def CategoryTheory.StructuredArrow.IsUniversal.desc + theorem CategoryTheory.StructuredArrow.IsUniversal.existsUnique + theorem CategoryTheory.StructuredArrow.IsUniversal.fac + theorem CategoryTheory.StructuredArrow.IsUniversal.hom_desc + theorem CategoryTheory.StructuredArrow.IsUniversal.hom_ext + theorem CategoryTheory.StructuredArrow.IsUniversal.uniq + theorem CategoryTheory.StructuredArrow.hom_eq_iff 2023-08-26 17:11:44 93e2beb chore(MeasureTheory/../LpSeminorm): golf (#6797) * Generalize TC assumptions in some lemmas. * Golf `MeasureTheory.snorm_sub_le'`. * Move some `neg` lemmas up so that we can use them in `MeasureTheory.snorm_sub_le'`. ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Function/LpSeminorm.lean Modified Mathlib/MeasureTheory/Function/StronglyMeasurable/Basic.lean 2023-08-26 12:33:40 289d461 feat: multiple `scoped` in `notation3` (#6793) See the [discussion on Zulip](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/mathport.20fails/near/387335863). `notation3` did not support more than one occurrence of `scoped` due to an unnecessary limitation in the generated delaborator. It now handles this case correctly. ESTIMATED CHANGES Modified Mathlib/Mathport/Notation.lean + def Mathlib.Notation3.MatchState.getBinders - def Mathlib.Notation3.MatchState.pushBinder Modified test/notation3.lean +/- structure Test.MyUnit + def Test.foobar 2023-08-26 09:51:08 7320add feat(ToAdditive + UniqueProds): support `[uU]niqueProds →[uU]niqueSums` (#6751) This PR adds `to_additive` support to convert * `UniqueProds` to `UniqueSums` and * `uniqueProds` to `uniqueSums`. This is just the dictionary support, plus the removal of two, now correctly guessed, `to_additive` names. ESTIMATED CHANGES Modified Mathlib/Algebra/Group/UniqueProds.lean Modified Mathlib/Tactic/ToAdditive.lean 2023-08-26 08:06:36 45e55c3 chore: cleanup a few porting notes and friends relating to alias (#6790) - After the new alias command we can now do `protected alias` - alias at some point broke dot notation by unfolding (see #1022) this was fixed in #1058 but the library was not fixed up there ESTIMATED CHANGES Modified Mathlib/Analysis/Convex/Hull.lean Modified Mathlib/Data/Set/Function.lean Modified Mathlib/Data/Set/Image.lean Modified Mathlib/Data/Set/Intervals/ProjIcc.lean Modified Mathlib/GroupTheory/Submonoid/Operations.lean Modified Mathlib/Logic/Lemmas.lean Modified Mathlib/Order/BoundedOrder.lean Modified Mathlib/Order/Monotone/Monovary.lean Modified Mathlib/Order/RelIso/Set.lean Modified Mathlib/Topology/Basic.lean Modified Mathlib/Topology/SubsetProperties.lean 2023-08-26 06:58:14 d9827fd fix: 'injective of' -> 'injective on' in Finset.preimage docstring (#6794) ESTIMATED CHANGES Modified Mathlib/Data/Finset/Preimage.lean 2023-08-25 22:21:33 467c358 feat(Logic/Relation): add missing relation material and show `⩿ = ReflGen (· ⋖ ·)` (#6711) ESTIMATED CHANGES Modified Mathlib/Logic/Relation.lean + theorem Relation.reflGen_eq_self + theorem Relation.reflGen_minimal + theorem Relation.reflGen_transGen + theorem Relation.reflTransGen_eq_reflGen + theorem Relation.reflTransGen_eq_transGen + theorem Relation.reflTransGen_idem + theorem Relation.reflTransGen_minimal + theorem Relation.reflTransGen_reflGen + theorem Relation.reflTransGen_transGen - theorem Relation.refl_trans_gen_idem + theorem Relation.reflexive_reflGen + theorem Relation.transGen_minimal + theorem Relation.transGen_reflGen Modified Mathlib/Order/Cover.lean + theorem reflTransGen_wcovby_eq_reflTransGen_covby + theorem transGen_wcovby_eq_reflTransGen_covby + theorem wcovby_eq_reflGen_covby 2023-08-25 21:13:39 c085fa8 feat(LinearAlgebra/Basis): flag defined by a basis (#6269) Also add supporting lemmas and golf some proofs. Based on a file from the Sphere Eversion Project. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Data/Fin/FlagRange.lean + theorem Flag.mem_rangeFin + def Flag.rangeFin + theorem IsMaxChain.range_fin_of_covby Added Mathlib/LinearAlgebra/Basis/Flag.lean + def Basis.flag + theorem Basis.flag_covby + theorem Basis.flag_last + theorem Basis.flag_le_iff + theorem Basis.flag_le_ker_coord + theorem Basis.flag_le_ker_coord_iff + theorem Basis.flag_mono + theorem Basis.flag_strictMono + theorem Basis.flag_succ + theorem Basis.flag_wcovby + theorem Basis.flag_zero + theorem Basis.isChain_range_flag + theorem Basis.isMaxChain_range_flag + theorem Basis.mem_toFlag + theorem Basis.self_mem_flag + theorem Basis.self_mem_flag_iff + def Basis.toFlag Modified Mathlib/LinearAlgebra/Span.lean + theorem Submodule.covby_span_singleton_sup +/- theorem Submodule.lt_sup_iff_not_mem +/- theorem Submodule.span_insert + theorem Submodule.wcovby_span_singleton_sup 2023-08-25 20:01:08 465dada feat: unit equivalences (#6526) Useful for Wedderburn's little theorem. ESTIMATED CHANGES Modified Mathlib/GroupTheory/GroupAction/ConjAct.lean + def unitsCentralizerEquiv Modified Mathlib/GroupTheory/Subgroup/Basic.lean + def Subgroup.centerUnitsEquivUnitsCenter Modified Mathlib/GroupTheory/Submonoid/Center.lean + def unitsCenterToCenterUnits + theorem unitsCenterToCenterUnits_injective 2023-08-25 18:02:16 5723079 feat: some improvements to `apply_fun` (#6732) - Re-enabling applying an order equiv to the target - using `withMainContext` so that locals are treated properly - enabling some commented out tests ESTIMATED CHANGES Modified Mathlib/Analysis/SpecialFunctions/Bernstein.lean Modified Mathlib/CategoryTheory/Limits/ConcreteCategory.lean Modified Mathlib/NumberTheory/LegendreSymbol/MulCharacter.lean Modified Mathlib/Tactic/ApplyFun.lean Modified test/apply_fun.lean 2023-08-25 17:17:06 89776af chore(IsAlgClosed): move some defs about lift into IsAlgClosed namespace (#6754) ESTIMATED CHANGES Modified Mathlib/FieldTheory/IsAlgClosed/Basic.lean + theorem IsAlgClosed.lift.SubfieldWithHom.compat + theorem IsAlgClosed.lift.SubfieldWithHom.exists_maximal_subfieldWithHom + theorem IsAlgClosed.lift.SubfieldWithHom.le_def + theorem IsAlgClosed.lift.SubfieldWithHom.maximalSubfieldWithHom_eq_top + theorem IsAlgClosed.lift.SubfieldWithHom.maximalSubfieldWithHom_is_maximal + theorem IsAlgClosed.lift.SubfieldWithHom.maximal_subfieldWithHom_chain_bounded + structure IsAlgClosed.lift.SubfieldWithHom - theorem lift.SubfieldWithHom.compat - theorem lift.SubfieldWithHom.exists_maximal_subfieldWithHom - theorem lift.SubfieldWithHom.le_def - theorem lift.SubfieldWithHom.maximalSubfieldWithHom_eq_top - theorem lift.SubfieldWithHom.maximalSubfieldWithHom_is_maximal - theorem lift.SubfieldWithHom.maximal_subfieldWithHom_chain_bounded - structure lift.SubfieldWithHom 2023-08-25 15:49:36 d49f95f chore(Algebra/Order/Group/Defs): 3 line breaks (#6785) Move 3 line breaks, so that they no longer separate inputs to `Co*variantClass`es. ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Group/Defs.lean Modified Mathlib/Algebra/Order/Monoid/Lemmas.lean +/- theorem bit0_mono 2023-08-25 14:43:21 7e9ae5f chore(Data/Finset/NatAntidiagonal): naming of antidiagonalEquivFin (#6784) and add `simps`, as pointed out by @eric-wieser in https://github.com/leanprover-community/mathlib4/pull/6766#pullrequestreview-1595354618 ESTIMATED CHANGES Modified Mathlib/Data/Finset/NatAntidiagonal.lean + def Finset.Nat.antidiagonalEquivFin - def Finset.Nat.antidiagonal_equiv_fin 2023-08-25 14:43:19 e561ee7 chore: remove duplicate lemma HasFDerivWithinAt.nhdsWithin (#6773) This is a perfect duplicate of `HasFDerivWithinAt.mono_of_mem`. Same thing with `Deriv` instead of `FDeriv`. ESTIMATED CHANGES Modified Mathlib/Analysis/Calculus/Deriv/Basic.lean - theorem HasDerivWithinAt.nhdsWithin Modified Mathlib/Analysis/Calculus/FDeriv/Basic.lean Modified Mathlib/Analysis/Calculus/FDeriv/Extend.lean Modified Mathlib/Analysis/Calculus/MeanValue.lean Modified Mathlib/Geometry/Manifold/MFDeriv.lean + theorem HasMFDerivWithinAt.mono_of_mem - theorem HasMFDerivWithinAt.nhdsWithin 2023-08-25 14:43:18 5d955e0 feat: complete multipartite graphs (#6762) https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/Complete.20multipartite.20graphs/near/386500598 ESTIMATED CHANGES Modified Mathlib/Combinatorics/SimpleGraph/Basic.lean +/- def completeBipartiteGraph Modified Mathlib/Combinatorics/SimpleGraph/Clique.lean + theorem SimpleGraph.cliqueFree_completeMultipartiteGraph 2023-08-25 14:43:17 8bf281f refactor: golf #6309 (#6676) Also changes a lemma to instance and adds a new instance. ESTIMATED CHANGES Modified Mathlib/RingTheory/Artinian.lean - theorem isArtinian_of_quotient_of_artinian 2023-08-25 14:43:16 60b551a feat: y*log(x)=log(z) iff x^y=z (#6469) ESTIMATED CHANGES Modified Mathlib/Analysis/SpecialFunctions/Pow/Real.lean + theorem Real.mul_log_eq_log_iff 2023-08-25 13:22:19 89686db feat: delete Nat.shiftr and Nat.shiftl (#6356) These already exists upstream (with minorly different but equal definitions) as `Nat.shiftRight` and `Nat.shiftLeft`. ESTIMATED CHANGES Modified Mathlib/Data/FP/Basic.lean Modified Mathlib/Data/Int/Bitwise.lean +/- theorem Int.shiftl_coe_nat +/- theorem Int.shiftr_coe_nat +/- theorem Int.shiftr_negSucc Modified Mathlib/Data/Nat/Bitwise.lean +/- theorem Nat.zero_testBit Modified Mathlib/Data/Nat/Size.lean - theorem Nat.one_shiftl + theorem Nat.shiftLeft_eq_mul_pow + theorem Nat.shiftRight_eq_div_pow - theorem Nat.shiftl_eq_mul_pow - theorem Nat.shiftr_eq_div_pow + theorem Nat.size_shiftLeft - theorem Nat.size_shiftl + theorem Nat.zero_shiftLeft - theorem Nat.zero_shiftl - theorem Nat.zero_shiftr Modified Mathlib/Data/Num/Lemmas.lean +/- theorem Num.shiftl_to_nat +/- theorem Num.shiftr_to_nat Modified Mathlib/Data/Ordmap/Ordnode.lean Modified Mathlib/Init/Data/Int/Bitwise.lean Modified Mathlib/Init/Data/Nat/Bitwise.lean + theorem Nat.shiftLeft_add + theorem Nat.shiftLeft_eq' + theorem Nat.shiftLeft_sub + theorem Nat.shiftLeft_succ + theorem Nat.shiftLeft_zero + theorem Nat.shiftRight_add + theorem Nat.shiftRight_eq + theorem Nat.shiftRight_succ + theorem Nat.shiftRight_zero + theorem Nat.shiftl'_false +/- theorem Nat.shiftl'_sub - def Nat.shiftl - theorem Nat.shiftl_add - theorem Nat.shiftl_sub - theorem Nat.shiftl_succ - theorem Nat.shiftl_zero - def Nat.shiftr - theorem Nat.shiftr_add - theorem Nat.shiftr_zero + theorem Nat.zero_shiftRight 2023-08-25 11:15:36 41aa37b feat: Stonean.homeoOfIso and Stonean.isoOfHomeo (#6771) Changes `Profinite.homeoOfIso` and `Profinite.isoOfHomeo` to go through `CompHaus` and adds `Stonean.homeoOfIso`, `Stonean.isoOfHomeo` and `Stonean.isoEquivHomeo` ESTIMATED CHANGES Modified Mathlib/Topology/Category/Profinite/Basic.lean +/- def Profinite.homeoOfIso +/- def Profinite.isoOfHomeo Modified Mathlib/Topology/Category/Stonean/Basic.lean + def Stonean.homeoOfIso + def Stonean.isoEquivHomeo + def Stonean.isoOfHomeo 2023-08-25 10:49:58 ed9d559 chore(LinearAlgebra/CliffordAlgebra): remove `Q := Q` (#6780) The removal of a FunLike instance for `Module.Dual` made these unnecessary. ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/CliffordAlgebra/Conjugation.lean +/- theorem CliffordAlgebra.reverse.map_one +/- theorem CliffordAlgebra.reverse_reverse +/- theorem CliffordAlgebra.reverse_ι Modified Mathlib/LinearAlgebra/CliffordAlgebra/Contraction.lean Modified Mathlib/LinearAlgebra/CliffordAlgebra/EvenEquiv.lean Modified Mathlib/LinearAlgebra/CliffordAlgebra/Fold.lean Modified Mathlib/LinearAlgebra/CliffordAlgebra/Star.lean +/- theorem CliffordAlgebra.star_def' +/- theorem CliffordAlgebra.star_def 2023-08-25 10:49:57 0d2b123 feat(LinearAlgebra/QuadraticForm/TensorProduct): base change of quadratic forms (#6636) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/LinearAlgebra/QuadraticForm/Basic.lean + theorem QuadraticForm.associated_sq Added Mathlib/LinearAlgebra/QuadraticForm/TensorProduct.lean + theorem QuadraticForm.associated_baseChange + theorem QuadraticForm.associated_tmul + theorem QuadraticForm.baseChange_tmul + def QuadraticForm.tensorDistrib + theorem QuadraticForm.tensorDistrib_tmul 2023-08-25 09:58:52 2c3112d chore: golf some proofs, add helper lemmas (#6769) ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Group/Measure.lean Modified Mathlib/MeasureTheory/Measure/MeasureSpace.lean + theorem Set.Infinite.meas_eq_top Modified Mathlib/Topology/Algebra/Group/Basic.lean + theorem exists_isCompact_isClosed_nhds_one + theorem exists_isCompact_isClosed_subset_isCompact_nhds_one Modified Mathlib/Topology/CompactOpen.lean Modified Mathlib/Topology/Paracompact.lean 2023-08-25 08:19:52 f5e24a5 chore: fix bug in `exact? using ...` (#6745) Lemmas that generate no subgoals were being incorrectly accepted by `exact? using ...`. ESTIMATED CHANGES Modified Mathlib/Tactic/LibrarySearch.lean Modified test/LibrarySearch/basic.lean 2023-08-25 07:09:21 3672fba feat: add some lemmas about `Finsupp.indicator` (#6719) It's hard to rewrite after using `indicator_eq_sum_single` and `prod_indicator_index`, so I add these two lemmas. ESTIMATED CHANGES Modified Mathlib/Algebra/BigOperators/Finsupp.lean + theorem Finsupp.indicator_eq_sum_attach_single +/- theorem Finsupp.indicator_eq_sum_single + theorem Finsupp.prod_indicator_index_eq_prod_attach 2023-08-25 05:30:39 7f2ee09 feat: Results about convergence of measures of sets assuming convergence of indicator functions. (#6225) Adding results about convergence of measures of sets assuming convergence of indicator functions. ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Constructions/BorelSpace/Metrizable.lean + theorem measurableSet_of_tendsto_indicator + theorem nullMeasurableSet_of_tendsto_indicator Modified Mathlib/MeasureTheory/Integral/Lebesgue.lean + theorem MeasureTheory.tendsto_measure_of_ae_tendsto_indicator + theorem MeasureTheory.tendsto_measure_of_ae_tendsto_indicator_of_isFiniteMeasure + theorem MeasureTheory.tendsto_measure_of_tendsto_indicator + theorem MeasureTheory.tendsto_measure_of_tendsto_indicator_of_isFiniteMeasure Modified Mathlib/MeasureTheory/MeasurableSpace.lean + theorem measurable_indicator_const_iff Modified Mathlib/MeasureTheory/Measure/AEMeasurable.lean + theorem aemeasurable_indicator_const_iff 2023-08-24 17:13:59 1239d77 feat: Pmf.binomial (#6425) Inspired by a file by @pfaffelh ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Probability/ProbabilityMassFunction/Binomial.lean + def Pmf.binomial + theorem Pmf.binomial_apply + theorem Pmf.binomial_apply_self + theorem Pmf.binomial_apply_zero + theorem Pmf.binomial_one_eq_bernoulli 2023-08-24 16:07:59 2deb01b chore: rename 2 lemmas (#6767) - `ChartedSpace.locallyCompact` → `ChartedSpace.locallyCompactSpace` - `ModelWithCorners.locally_compact` → `ModelWithCorners.locallyCompactSpace` ESTIMATED CHANGES Modified Mathlib/Analysis/Distribution/AEEqOfIntegralContDiff.lean Modified Mathlib/Geometry/Manifold/ChartedSpace.lean - theorem ChartedSpace.locallyCompact + theorem ChartedSpace.locallyCompactSpace Modified Mathlib/Geometry/Manifold/Metrizable.lean Modified Mathlib/Geometry/Manifold/PartitionOfUnity.lean Modified Mathlib/Geometry/Manifold/SmoothManifoldWithCorners.lean 2023-08-24 16:07:58 a57b2c2 feat: Data.Finset.NatAntidiagonal.antidiagonal_equiv_fin (#6766) as suggested by @ocfnash in https://github.com/leanprover-community/mathlib4/pull/6425#discussion_r1304089614 ESTIMATED CHANGES Modified Mathlib/Data/Finset/NatAntidiagonal.lean + theorem Finset.Nat.antidiagonal.fst_lt + theorem Finset.Nat.antidiagonal.snd_lt + def Finset.Nat.antidiagonal_equiv_fin + theorem Finset.Nat.antidiagonal_subtype_ext 2023-08-24 14:43:18 40c20c8 feat: some tactics to transform hypotheses and goals to defeq expressions (#5717) This provides a function to create a tactic from any `Expr → MetaM Expr` that maps expresions to defeq expressions. The tactic handles the standard location processing. Also provides some tactics: `whnf`, `beta_reduce`, `reduce`, `unfold_let`, `unfold_projs`, `eta_reduce`, and `eta_expand`. Some of these (like `whnf`) are more useful in high-level tactic scripts or for exploration than in actual finished proofs. The `unfold_let` tactic is useful for finer-grained zeta reduction (a.k.a. substituting in the values of let-bound hypotheses) and for providing a working alternative to `unfold` for local bindings. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Mathport/Syntax.lean Modified Mathlib/Tactic.lean Modified Mathlib/Tactic/Common.lean Added Mathlib/Tactic/DefEqTransformations.lean + def Mathlib.Tactic.etaReduceAll + def Mathlib.Tactic.etaStruct? + def Mathlib.Tactic.etaStructAll + def Mathlib.Tactic.getProjectedExpr + def Mathlib.Tactic.runDefEqConvTactic + def Mathlib.Tactic.runDefEqTactic + def Mathlib.Tactic.unfoldFVars + def Mathlib.Tactic.unfoldProjs Added test/DefEqTransformations.lean 2023-08-24 13:32:05 08612f6 golf(UniqueProds): Junyan's golf of some proofs. (#6753) ESTIMATED CHANGES Modified Mathlib/Algebra/Group/UniqueProds.lean 2023-08-24 13:32:03 82a5026 feat: the product of Borel spaces is Borel when either of them is second-countable (#6689) We have currently that the product of two Borel spaces is Borel when both of them are second-countable. It is in fact sufficient to assume that only one of them is second-countable. We prove this in this PR. Also move the definition of `SecondCountableEither` from `Function.StronglyMeasurable` to `BorelSpace.Basic` to be able to use it in the statement of the above theorem. ESTIMATED CHANGES Modified Mathlib/Analysis/Calculus/FDeriv/Measurable.lean +/- theorem ContinuousLinearMap.measurable_apply₂ Modified Mathlib/Analysis/Convolution.lean +/- theorem BddAbove.continuous_convolution_left_of_integrable +/- theorem BddAbove.continuous_convolution_right_of_integrable Modified Mathlib/MeasureTheory/Constructions/BorelSpace/Basic.lean +/- theorem Continuous.aemeasurable2 +/- theorem Continuous.measurable2 + theorem opensMeasurableSpace_iff_forall_measurableSet Modified Mathlib/MeasureTheory/Function/AEEqFun.lean +/- theorem MeasureTheory.AEEqFun.comp₂Measurable_toGerm Modified Mathlib/MeasureTheory/Function/StronglyMeasurable/Basic.lean 2023-08-24 13:32:02 7bd54f6 feat: MeasureTheory.Integral.Bochner: integral_fintype and similar (#6446) This adds some lemmas about `integral` where we already have the corresponding lemmas for `lintegral`. The goal is `integral_fintype`, which rewrites an integral over a finite type as a finite sum over the elements, with singleton measures (these singleton measures can then further be simplified when the measure comes from a `Pmf`, but that will follow some other time.). Also fixes lemma name `integral_eq_lintegral_pos_part_sub_lintegral_neg_part` in the module comments. ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Integral/Bochner.lean + theorem MeasureTheory.integral_countable' + theorem MeasureTheory.integral_countable + theorem MeasureTheory.integral_finset + theorem MeasureTheory.integral_fintype + theorem MeasureTheory.integral_singleton' + theorem MeasureTheory.integral_singleton + theorem MeasureTheory.integral_unique + theorem MeasureTheory.set_integral_eq_subtype' 2023-08-24 09:53:05 75e3043 feat: some lemmas about products and coproducts in opposite categories (#6758) - Adds missing theorem `hasColimit_op_of_hasLimit` and its dual. - Adds `instance [HasCoproduct Z] : HasProduct (fun z ↦ op (Z z))` and its dual - Defines the isomorphism `op (∐ Z) ≅ ∏ (fun z => op (Z z))` and its dual and proves some naturality lemmas about them. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Limits/Opposites.lean + theorem CategoryTheory.Limits.desc_op_comp_opCoproductIsoProduct_hom + theorem CategoryTheory.Limits.hasColimit_op_of_hasLimit + theorem CategoryTheory.Limits.hasLimit_op_of_hasColimit + def CategoryTheory.Limits.opCoproductIsoProduct + theorem CategoryTheory.Limits.opCoproductIsoProduct_inv_comp_ι + def CategoryTheory.Limits.opProductIsoCoproduct + theorem CategoryTheory.Limits.opProductIsoCoproduct_inv_comp_π_op + theorem CategoryTheory.Limits.π_comp_opProductIsoCoproduct 2023-08-24 00:00:50 891adb3 fix: reduce imports for scripts (#6716) As [noted on Zulip](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/lake.20exe.20cache.20get.20broken.3F/near/386489865), a from-scratch build of mathlib after `lake exe cache get` will compile all of `Std` due to some unnecessary imports. With a few well chosen import reductions we only end up having to compile ~20 files instead of ~300 files (compile meaning `Compiling`, generating the arch-dependent `.o` files that are not in the cache). ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Abelian/Pseudoelements.lean Modified Mathlib/Data/Real/CauSeq.lean Modified Mathlib/Geometry/Manifold/ChartedSpace.lean Modified Mathlib/Tactic/ToLevel.lean Modified scripts/checkYaml.lean 2023-08-23 18:06:45 f5f38ed feat: lemmas about monotonicity of `rpow` (#6742) This lemma adds lemmas about the monotonicity properties of `fun (x:ℝ) => x^r`. ESTIMATED CHANGES Modified Mathlib/Analysis/SpecialFunctions/Pow/Real.lean + theorem Real.antitoneOn_rpow_Ioi_of_exponent_nonpos + theorem Real.monotoneOn_rpow_Ici_of_exponent_nonneg + theorem Real.strictAntiOn_rpow_Ioi_of_exponent_neg + theorem Real.strictMonoOn_rpow_Ici_of_exponent_pos 2023-08-23 15:40:09 b9e5e5f feat(Algebra/Group/Opposite): add `isLeft/RightCancelMul` (#6752) [Zulip discussion](https://leanprover.zulipchat.com/#narrow/stream/217875-Is-there-code-for-X.3F/topic/MulOpposites.20and.20.5Binstances.5D) ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Opposite.lean 2023-08-23 14:09:02 9ce86da feat(LinearAlgebra/TensorAlgebra/Basis): the free and tensor algebras are free modules (#6680) The main result here is `Basis.tensorAlgebra (b : Basis κ R M) : Basis (FreeMonoid κ) R (TensorAlgebra R M)` from which everything else follows without much work. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/LinearAlgebra/FreeAlgebra.lean +/- theorem FreeAlgebra.rank_eq Added Mathlib/LinearAlgebra/TensorAlgebra/Basis.lean + theorem TensorAlgebra.equivFreeAlgebra_symm_ι + theorem TensorAlgebra.equivFreeAlgebra_ι_apply + theorem TensorAlgebra.rank_eq 2023-08-23 12:46:06 c35ba47 feat: deduplicate results from rw? (#6749) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Data/MLList/Dedup.lean + def MLList.dedup + def MLList.dedupBy Modified Mathlib/Tactic/Rewrites.lean Modified test/rewrites.lean 2023-08-23 12:46:05 ca1274a feat: deduplicate lemmas used by rw? (#6746) Solving request 1. from @b-mehta's [zulip](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/Duplicates.20in.20rw.3F/near/381963606) post. ESTIMATED CHANGES Modified Mathlib/Tactic/Rewrites.lean Modified test/rewrites.lean + theorem test 2023-08-23 12:46:03 e9d747e chore(Data/Matrix/Invertible): generalize conjugate and transpose lemmas (#6618) The `conjTranspose` lemmas now work for non-commutative rings. ESTIMATED CHANGES Modified Mathlib/Data/Matrix/Invertible.lean + theorem Matrix.conjTranspose_invOf + def Matrix.invertibleOfInvertibleConjTranspose + def Matrix.invertibleOfInvertibleTranspose + theorem Matrix.isUnit_conjTranspose + theorem Matrix.isUnit_transpose + def Matrix.transposeInvertibleEquivInvertible + theorem Matrix.transpose_invOf Modified Mathlib/LinearAlgebra/Matrix/NonsingularInverse.lean - def Matrix.invertibleOfInvertibleConjTranspose - def Matrix.invertibleOfInvertibleTranspose 2023-08-23 11:25:48 1caf4e1 chore: bump to nightly-2023-08-23 (#6748) ESTIMATED CHANGES Modified lean-toolchain 2023-08-23 11:25:37 3b480fb docs: Document conv => … equals => tactic (#6747) which was introduced in https://github.com/leanprover/std4/pull/204 ESTIMATED CHANGES Modified docs/Conv/Guide.lean Modified docs/Conv/Introduction.lean 2023-08-23 11:25:35 4c583ce feat: lemmas about indicator of the symmetric difference (#6738) ESTIMATED CHANGES Modified Mathlib/Algebra/IndicatorFunction.lean + theorem Set.abs_indicator_symmDiff + theorem Set.apply_mulIndicator_symmDiff + theorem Set.mulIndicator_symmDiff Modified Mathlib/Analysis/Normed/Group/Basic.lean + theorem dist_mulIndicator + theorem edist_mulIndicator + theorem nndist_mulIndicator Modified Mathlib/MeasureTheory/Function/LpSeminorm.lean + theorem MeasureTheory.snorm_indicator_sub_indicator Modified Mathlib/MeasureTheory/Function/LpSpace.lean + theorem MeasureTheory.Lp.coe_nnnorm_toLp + theorem MeasureTheory.dist_indicatorConstLp_eq_norm + theorem MeasureTheory.edist_indicatorConstLp_eq_nnnorm Modified Mathlib/MeasureTheory/Measure/MeasureSpaceDef.lean + theorem MeasureTheory.measure_symmDiff_ne_top 2023-08-23 11:25:33 7824a67 fix(CategoryTheory/Localization/Construction): restore universe polymorphism (#6685) [Zulip thread](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/.236499.20broke.20universe.20polymorphism/near/384284680). Without explicit universes, `CategoryTheory.Localization.Construction.relations` (and everything downstream) was inferred as taking `Category.{u,u} C`. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Localization/Construction.lean 2023-08-23 11:25:31 34d86d9 feat(RingTheory/FiniteType): generalize some results to non-commutative rings (#6681) I was hoping to use this in combination with #6680 to show the `TensorAlgebra` is finitely generated, where I needed to generalize `FiniteType.equiv`; but it turns out that the `FiniteType` instance on `MonoidAlgebra` also isn't generalized! The summary here is: * Move `Algebra.adjoin_algebraMap` from `Mathlib/RingTheory/Adjoin/Tower.lean` to `Mathlib/RingTheory/Adjoin/Basic.lean` and golf the proof to oblivion * Provide an alternative statement of `adjoin_union_eq_adjoin_adjoin`, `adjoin_algebraMap_image_union_eq_adjoin_adjoin`, which works in non-commutative rings, and use it along with a new `adjoin_top` lemma to prove `Algebra.fg_trans'` more generally. * Introduce a new `S` variable throughout, with the convention that `R` and `S` are commutative, `A` and `B` remain not-necessarily-commutative, and `A/S/R` is a tower of algebras. * Apply some zero-effort generalizations to semirings. ESTIMATED CHANGES Modified Mathlib/FieldTheory/SplittingField/Construction.lean Modified Mathlib/RingTheory/Adjoin/Basic.lean +/- theorem Algebra.adjoin_adjoin_of_tower + theorem Algebra.adjoin_algebraMap + theorem Algebra.adjoin_algebraMap_image_union_eq_adjoin_adjoin + theorem Algebra.adjoin_top Modified Mathlib/RingTheory/Adjoin/Tower.lean - theorem Algebra.adjoin_algebraMap +/- theorem Algebra.fg_trans' Modified Mathlib/RingTheory/FiniteType.lean +/- theorem Algebra.FiniteType.iff_quotient_mvPolynomial' +/- theorem Algebra.FiniteType.of_restrictScalars_finiteType +/- theorem Algebra.FiniteType.trans +/- theorem Subalgebra.fg_iff_finiteType 2023-08-23 11:25:25 65eb119 chore(Data/Finsupp/Multiset): lemmas about union and intersection (#6659) ESTIMATED CHANGES Modified Mathlib/Data/Finsupp/Multiset.lean + theorem Finsupp.toMultiset_inf + theorem Finsupp.toMultiset_sup + theorem Multiset.toFinsupp_inter + theorem Multiset.toFinsupp_union 2023-08-23 11:25:23 41eb5e6 chore: remove autoImplicit in LinearAlgebra (#6634) In `Mathlib/LinearAlgebra/Dual.lean` we also overhaul the universe argument names, as the file switched between two conventions and making up undeclared universe variables. `Mathlib/LinearAlgebra/Prod.lean` invented some new variables even though it already had plenty available. ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/AffineSpace/AffineMap.lean +/- theorem AffineMap.const_apply Modified Mathlib/LinearAlgebra/AffineSpace/Combination.lean Modified Mathlib/LinearAlgebra/Basic.lean +/- theorem LinearEquiv.ofLinear_apply +/- theorem LinearEquiv.ofLinear_symm_apply Modified Mathlib/LinearAlgebra/Dual.lean Modified Mathlib/LinearAlgebra/Prod.lean +/- theorem LinearMap.prod_comp Modified Mathlib/LinearAlgebra/Span.lean +/- theorem Submodule.span_induction₂ Modified Mathlib/LinearAlgebra/TensorProduct/Tower.lean +/- theorem TensorProduct.AlgebraTensorModule.tensorTensorTensorComm_symm_tmul 2023-08-23 10:05:07 77823cd feat: TotallySeparatedSpace instance for profinite sets (#6722) Adds an instance `TotallySeparatedSpace` for totally disconnected compact Hausdorff spaces. This direction of `compact_t2_tot_disc_iff_tot_sep` was missing an instance. ESTIMATED CHANGES Modified Mathlib/Topology/Separation.lean 2023-08-23 10:05:06 552f9b5 fix: `simps` config for `Units` (#6514) ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/Spectrum.lean Modified Mathlib/Algebra/Group/Units.lean + def Units.Simps.val_inv Modified Mathlib/Algebra/Hom/Units.lean + theorem IsUnit.val_inv_unit' Modified Mathlib/Algebra/Invertible.lean +/- def Invertible.mulLeft +/- def Invertible.mulRight +/- def invertibleOfInvertibleMul +/- def invertibleOfMulInvertible +/- def unitOfInvertible Modified Mathlib/Algebra/Lie/Classical.lean Modified Mathlib/AlgebraicGeometry/EllipticCurve/Weierstrass.lean Modified Mathlib/Analysis/Complex/UpperHalfPlane/Basic.lean Modified Mathlib/Analysis/NormedSpace/Star/Spectrum.lean Modified Mathlib/Analysis/NormedSpace/Units.lean Modified Mathlib/LinearAlgebra/Matrix/GeneralLinearGroup.lean Modified Mathlib/NumberTheory/Cyclotomic/Gal.lean Modified Mathlib/NumberTheory/Modular.lean Modified Mathlib/NumberTheory/ModularForms/SlashActions.lean Modified Mathlib/RingTheory/RootsOfUnity/Basic.lean 2023-08-23 08:58:07 330b78e feat: add a coe to ideal quotient rings (#6620) Like we have for (Add)Subgroups already ESTIMATED CHANGES Modified Mathlib/GroupTheory/Coset.lean Modified Mathlib/RingTheory/Ideal/Quotient.lean 2023-08-23 08:35:00 23e7b3d feat: `Stonean` is precoherent (#6725) - [x] depends on: #5808 We give a characterisation of effective epimorphic families in `Stonean` and deduce that `Stonean` is a precoherent category. This work was done during the 2023 Copenhagen masterclass on formalisation of condensed mathematics. Numerous participants contributed. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Topology/Category/Stonean/EffectiveEpi.lean + theorem CategoryTheory.EffectiveEpiFamily.toCompHaus + theorem Stonean.EffectiveEpiFamily.lift_desc_condition + def Stonean.EffectiveEpiFamily.struct + theorem Stonean.effectiveEpiFamily_of_jointly_surjective + theorem Stonean.effectiveEpiFamily_tfae + theorem Stonean.epi_iff_surjective + def Stonean.two Modified Mathlib/Topology/Category/Stonean/Limits.lean + def Stonean.coproductIsoCoproduct + def Stonean.finiteCoproduct.explicitCocone + def Stonean.finiteCoproduct.isColimit' 2023-08-23 08:11:47 1842728 docs(Algebra/Group/UniqueProds): update + mention MonoidAlgebras (#6741) A simple update of the docs for `UniqueProds/Sums`. I also added a paragraph explaining the relationship between `UniqueProds/Sums` and `(Add)MonoidAlgebras`. ESTIMATED CHANGES Modified Mathlib/Algebra/Group/UniqueProds.lean 2023-08-23 07:42:41 8283eb9 chore: simplify construction of splitting field (#6735) ESTIMATED CHANGES Modified Mathlib/FieldTheory/SplittingField/Construction.lean - def Polynomial.SplittingFieldAux.algEquivQuotientMvPolynomial - def Polynomial.SplittingFieldAux.ofMvPolynomial - theorem Polynomial.SplittingFieldAux.ofMvPolynomial_surjective 2023-08-23 04:19:20 19e0ba9 feat: patch for new alias command (#6172) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Divisibility/Basic.lean Modified Mathlib/Algebra/Group/Basic.lean Modified Mathlib/Algebra/Group/Defs.lean Modified Mathlib/Algebra/GroupPower/Basic.lean Modified Mathlib/Algebra/GroupPower/Lemmas.lean Modified Mathlib/Algebra/GroupPower/Order.lean Modified Mathlib/Algebra/GroupPower/Ring.lean Modified Mathlib/Algebra/GroupWithZero/Basic.lean Modified Mathlib/Algebra/GroupWithZero/Divisibility.lean Modified Mathlib/Algebra/GroupWithZero/Units/Basic.lean Modified Mathlib/Algebra/ModEq.lean Modified Mathlib/Algebra/Order/Field/Basic.lean Modified Mathlib/Algebra/Order/Field/Power.lean Modified Mathlib/Algebra/Order/Group/Defs.lean Modified Mathlib/Algebra/Order/Group/MinMax.lean Modified Mathlib/Algebra/Order/Group/OrderIso.lean Modified Mathlib/Algebra/Order/Kleene.lean Modified Mathlib/Algebra/Order/Module.lean Modified Mathlib/Algebra/Order/Monoid/Lemmas.lean Modified Mathlib/Algebra/Order/Monoid/NatCast.lean Modified Mathlib/Algebra/Order/Ring/Defs.lean Modified Mathlib/Algebra/Order/Ring/Lemmas.lean Modified Mathlib/Algebra/Order/SMul.lean Modified Mathlib/Algebra/Order/Sub/Canonical.lean Modified Mathlib/Algebra/Order/Sub/Defs.lean Modified Mathlib/Algebra/Order/ToIntervalMod.lean Modified Mathlib/Algebra/Order/ZeroLEOne.lean Modified Mathlib/Algebra/Parity.lean Modified Mathlib/Algebra/Ring/Defs.lean Modified Mathlib/Algebra/Ring/Divisibility.lean Modified Mathlib/Algebra/Star/Basic.lean Modified Mathlib/Analysis/Asymptotics/Asymptotics.lean Modified Mathlib/Analysis/Asymptotics/Theta.lean Modified Mathlib/Analysis/Calculus/ContDiffDef.lean Modified Mathlib/Analysis/Calculus/Deriv/Basic.lean Modified Mathlib/Analysis/Calculus/FDeriv/Basic.lean Modified Mathlib/Analysis/Calculus/Implicit.lean Modified Mathlib/Analysis/Calculus/Inverse.lean Modified Mathlib/Analysis/Convex/Basic.lean Modified Mathlib/Analysis/Convex/Between.lean Modified Mathlib/Analysis/Convex/Function.lean Modified Mathlib/Analysis/Convex/Intrinsic.lean Modified Mathlib/Analysis/Convex/Side.lean Modified Mathlib/Analysis/Convex/Star.lean Modified Mathlib/Analysis/Convex/Strict.lean Modified Mathlib/Analysis/Convex/Topology.lean Modified Mathlib/Analysis/InnerProductSpace/Basic.lean Modified Mathlib/Analysis/InnerProductSpace/Orthogonal.lean Modified Mathlib/Analysis/LocallyConvex/Basic.lean Modified Mathlib/Analysis/Normed/Group/Basic.lean Modified Mathlib/Analysis/Normed/Group/Hom.lean Modified Mathlib/Analysis/NormedSpace/Ray.lean Modified Mathlib/Analysis/SpecialFunctions/Complex/Log.lean Modified Mathlib/CategoryTheory/Category/Bipointed.lean Modified Mathlib/CategoryTheory/Category/Pointed.lean Modified Mathlib/CategoryTheory/Category/Preorder.lean Modified Mathlib/CategoryTheory/Category/TwoP.lean Modified Mathlib/CategoryTheory/CommSq.lean Modified Mathlib/CategoryTheory/Functor/FullyFaithful.lean Modified Mathlib/CategoryTheory/Limits/Shapes/CommSq.lean Modified Mathlib/Combinatorics/SimpleGraph/Basic.lean Modified Mathlib/Combinatorics/SimpleGraph/Clique.lean Modified Mathlib/Combinatorics/SimpleGraph/Connectivity.lean Modified Mathlib/Combinatorics/SimpleGraph/Regularity/Bound.lean Modified Mathlib/Combinatorics/SimpleGraph/Triangle/Basic.lean Modified Mathlib/Data/Array/Basic.lean Modified Mathlib/Data/ENat/Basic.lean Modified Mathlib/Data/Finite/Defs.lean Modified Mathlib/Data/Finmap.lean Modified Mathlib/Data/Finset/Basic.lean Modified Mathlib/Data/Finset/Card.lean Modified Mathlib/Data/Finset/Image.lean Modified Mathlib/Data/Finset/Lattice.lean Modified Mathlib/Data/Finset/LocallyFinite.lean Modified Mathlib/Data/Finset/Pointwise.lean Modified Mathlib/Data/Finset/Slice.lean Modified Mathlib/Data/Finset/Sym.lean Modified Mathlib/Data/Fintype/Basic.lean Modified Mathlib/Data/Fintype/Card.lean Modified Mathlib/Data/Int/ModEq.lean Modified Mathlib/Data/Int/Order/Units.lean Modified Mathlib/Data/Int/Parity.lean Modified Mathlib/Data/Int/SuccPred.lean Modified Mathlib/Data/Int/Units.lean Modified Mathlib/Data/List/Basic.lean Modified Mathlib/Data/List/Infix.lean Modified Mathlib/Data/List/Nodup.lean Modified Mathlib/Data/List/Pairwise.lean Modified Mathlib/Data/List/Perm.lean Modified Mathlib/Data/List/Sort.lean Modified Mathlib/Data/List/Sublists.lean Modified Mathlib/Data/Multiset/Basic.lean Modified Mathlib/Data/Multiset/Dedup.lean Modified Mathlib/Data/Multiset/LocallyFinite.lean Modified Mathlib/Data/Multiset/Powerset.lean Modified Mathlib/Data/Nat/Cast/Basic.lean Modified Mathlib/Data/Nat/Count.lean Modified Mathlib/Data/Nat/Factorial/Basic.lean Modified Mathlib/Data/Nat/ModEq.lean Modified Mathlib/Data/Nat/Pow.lean Modified Mathlib/Data/Nat/Prime.lean Modified Mathlib/Data/Nat/SuccPred.lean Modified Mathlib/Data/Polynomial/Degree/Definitions.lean Modified Mathlib/Data/Rat/NNRat.lean Modified Mathlib/Data/Real/ENNReal.lean Modified Mathlib/Data/Real/Sqrt.lean Modified Mathlib/Data/Set/Basic.lean Modified Mathlib/Data/Set/Countable.lean Modified Mathlib/Data/Set/Finite.lean Modified Mathlib/Data/Set/Function.lean Modified Mathlib/Data/Set/Image.lean Modified Mathlib/Data/Set/Lattice.lean Modified Mathlib/Data/Set/Pairwise/Basic.lean Modified Mathlib/Data/Set/Pointwise/Basic.lean Modified Mathlib/Data/Set/Pointwise/Finite.lean Modified Mathlib/Data/Set/Prod.lean Modified Mathlib/Dynamics/Flow.lean Modified Mathlib/Geometry/Euclidean/Triangle.lean Modified Mathlib/Geometry/Manifold/ContMDiff.lean Modified Mathlib/Geometry/Manifold/MFDeriv.lean Modified Mathlib/Geometry/Manifold/PartitionOfUnity.lean Modified Mathlib/GroupTheory/FreeGroup.lean Modified Mathlib/GroupTheory/Perm/Cycle/Basic.lean Modified Mathlib/GroupTheory/Subgroup/ZPowers.lean Modified Mathlib/Init/Algebra/Functions.lean Modified Mathlib/Init/CCLemmas.lean Modified Mathlib/Init/Classical.lean Modified Mathlib/Init/Data/Int/Order.lean Modified Mathlib/Init/Data/List/Lemmas.lean Modified Mathlib/Init/Logic.lean Modified Mathlib/LinearAlgebra/AffineSpace/AffineSubspace.lean Modified Mathlib/LinearAlgebra/AffineSpace/FiniteDimensional.lean Modified Mathlib/LinearAlgebra/Basis.lean Modified Mathlib/LinearAlgebra/CrossProduct.lean Modified Mathlib/LinearAlgebra/FiniteDimensional.lean Modified Mathlib/LinearAlgebra/LinearIndependent.lean Modified Mathlib/LinearAlgebra/Matrix/ToLinearEquiv.lean Modified Mathlib/LinearAlgebra/Ray.lean Modified Mathlib/LinearAlgebra/Span.lean Modified Mathlib/Logic/Basic.lean Modified Mathlib/Logic/Equiv/LocalEquiv.lean Modified Mathlib/Logic/Function/Iterate.lean Modified Mathlib/Logic/Lemmas.lean Modified Mathlib/Logic/Pairwise.lean Modified Mathlib/Mathport/Syntax.lean Modified Mathlib/MeasureTheory/Function/LpSeminorm.lean Modified Mathlib/MeasureTheory/Integral/IntegrableOn.lean Modified Mathlib/MeasureTheory/MeasurableSpace.lean Modified Mathlib/MeasureTheory/Measure/MeasureSpace.lean Modified Mathlib/MeasureTheory/Measure/MeasureSpaceDef.lean Modified Mathlib/NumberTheory/Bertrand.lean Modified Mathlib/Order/Antisymmetrization.lean Modified Mathlib/Order/Atoms.lean Modified Mathlib/Order/Basic.lean Modified Mathlib/Order/BoundedOrder.lean Modified Mathlib/Order/Circular.lean Modified Mathlib/Order/CompactlyGenerated.lean Modified Mathlib/Order/Compare.lean Modified Mathlib/Order/Cover.lean Modified Mathlib/Order/Directed.lean Modified Mathlib/Order/Disjoint.lean Modified Mathlib/Order/Filter/AtTopBot.lean Modified Mathlib/Order/Filter/Bases.lean Modified Mathlib/Order/Filter/Basic.lean Modified Mathlib/Order/Filter/EventuallyConst.lean Modified Mathlib/Order/Filter/Extr.lean Modified Mathlib/Order/Filter/Germ.lean Modified Mathlib/Order/Filter/Lift.lean Modified Mathlib/Order/Filter/SmallSets.lean Modified Mathlib/Order/Filter/Subsingleton.lean Modified Mathlib/Order/Filter/Ultrafilter.lean Modified Mathlib/Order/Heyting/Basic.lean Modified Mathlib/Order/Irreducible.lean Modified Mathlib/Order/Lattice.lean Modified Mathlib/Order/Max.lean Modified Mathlib/Order/ModularLattice.lean Modified Mathlib/Order/Monotone/Basic.lean Modified Mathlib/Order/RelClasses.lean Modified Mathlib/Order/RelIso/Basic.lean Modified Mathlib/Order/SuccPred/Basic.lean Modified Mathlib/Order/SuccPred/Limit.lean Modified Mathlib/Order/SupIndep.lean Modified Mathlib/Order/Synonym.lean Modified Mathlib/Order/UpperLower/Basic.lean Modified Mathlib/Order/WithBot.lean Modified Mathlib/Probability/IdentDistrib.lean Modified Mathlib/RingTheory/AlgebraicIndependent.lean Modified Mathlib/RingTheory/Coprime/Lemmas.lean Modified Mathlib/RingTheory/FiniteType.lean Modified Mathlib/RingTheory/Ideal/Operations.lean Modified Mathlib/RingTheory/IntegralClosure.lean Modified Mathlib/RingTheory/Multiplicity.lean Modified Mathlib/SetTheory/Cardinal/Basic.lean Modified Mathlib/SetTheory/Game/PGame.lean Modified Mathlib/SetTheory/Ordinal/Arithmetic.lean Modified Mathlib/SetTheory/Surreal/Basic.lean Modified Mathlib/SetTheory/ZFC/Basic.lean Modified Mathlib/SetTheory/ZFC/Ordinal.lean Modified Mathlib/Tactic.lean Deleted Mathlib/Tactic/Alias.lean - def Tactic.Alias.Target.toName - def Tactic.Alias.Target.toString - inductive Tactic.Alias.Target - def Tactic.Alias.aliasIff - def Tactic.Alias.appendNamespace - def Tactic.Alias.elabAlias - def Tactic.Alias.elabAliasLR - def Tactic.Alias.elabAliasLRDots - def Tactic.Alias.mkIffMpApp - theorem alias1 - theorem alias2 Modified Mathlib/Tactic/Common.lean Modified Mathlib/Topology/Algebra/InfiniteSum/Module.lean Modified Mathlib/Topology/Algebra/InfiniteSum/Order.lean Modified Mathlib/Topology/Bases.lean Modified Mathlib/Topology/Basic.lean Modified Mathlib/Topology/Bornology/Basic.lean Modified Mathlib/Topology/Bornology/Constructions.lean Modified Mathlib/Topology/Connected.lean Modified Mathlib/Topology/Constructions.lean Modified Mathlib/Topology/ContinuousOn.lean Modified Mathlib/Topology/Inseparable.lean Modified Mathlib/Topology/LocalAtTarget.lean Modified Mathlib/Topology/LocalHomeomorph.lean Modified Mathlib/Topology/MetricSpace/Antilipschitz.lean Modified Mathlib/Topology/MetricSpace/Basic.lean Modified Mathlib/Topology/MetricSpace/HausdorffDimension.lean Modified Mathlib/Topology/MetricSpace/Holder.lean Modified Mathlib/Topology/MetricSpace/Isometry.lean Modified Mathlib/Topology/MetricSpace/Lipschitz.lean Modified Mathlib/Topology/MetricSpace/MetricSeparated.lean Modified Mathlib/Topology/NhdsSet.lean Modified Mathlib/Topology/Order/Basic.lean Modified Mathlib/Topology/Order/NhdsSet.lean Modified Mathlib/Topology/Separation.lean Modified Mathlib/Topology/SubsetProperties.lean Modified Mathlib/Topology/UniformSpace/UniformConvergence.lean Deleted test/Alias.lean - theorem Alias.A.a_iff_a_and_a - theorem Alias.A.ab_iff_ba - def Alias.A.bar - theorem Alias.A.baz - theorem Alias.A.foo - def Alias.baz - theorem Alias.checkType - def Alias.foo 2023-08-23 00:18:57 f59eee0 chore: bump Std (#6721) This incorporates changes from https://github.com/leanprover-community/mathlib4/pull/6575 I have also renamed `Multiset.countp` to `Multiset.countP` for consistency. ESTIMATED CHANGES Modified Archive/MiuLanguage/DecisionNec.lean Modified Archive/MiuLanguage/DecisionSuf.lean Modified Mathlib.lean Modified Mathlib/Algebra/BigOperators/Associated.lean Modified Mathlib/Algebra/BigOperators/Basic.lean + theorem Finset.sum_filter_count_eq_countP - theorem Finset.sum_filter_count_eq_countp Modified Mathlib/Algebra/FreeMonoid/Count.lean +/- def FreeAddMonoid.count + def FreeAddMonoid.countP + theorem FreeAddMonoid.countP_apply + theorem FreeAddMonoid.countP_of - def FreeAddMonoid.countp - theorem FreeAddMonoid.countp_apply - theorem FreeAddMonoid.countp_of +/- def FreeMonoid.count + def FreeMonoid.countP + theorem FreeMonoid.countP_apply + theorem FreeMonoid.countP_of' + theorem FreeMonoid.countP_of - def FreeMonoid.countp - theorem FreeMonoid.countp_apply - theorem FreeMonoid.countp_of' - theorem FreeMonoid.countp_of Modified Mathlib/Combinatorics/SimpleGraph/Trails.lean + theorem SimpleGraph.Walk.IsTrail.even_countP_edges_iff - theorem SimpleGraph.Walk.IsTrail.even_countp_edges_iff Modified Mathlib/Data/Bool/Count.lean Modified Mathlib/Data/Fintype/Fin.lean Modified Mathlib/Data/List/Count.lean - theorem List.Sublist.count_le - theorem List.Sublist.countp_le + theorem List.countP_join - theorem List.count_append - theorem List.count_concat +/- theorem List.count_cons' - theorem List.count_cons - theorem List.count_cons_of_ne - theorem List.count_cons_self - theorem List.count_eq_length - theorem List.count_eq_zero - theorem List.count_eq_zero_of_not_mem - theorem List.count_erase - theorem List.count_erase_of_ne - theorem List.count_erase_self - theorem List.count_filter - theorem List.count_le_count_cons - theorem List.count_le_count_map - theorem List.count_le_length - theorem List.count_nil - theorem List.count_pos - theorem List.count_replicate - theorem List.count_replicate_self - theorem List.count_singleton' - theorem List.count_singleton - theorem List.count_tail - theorem List.countp_append - theorem List.countp_congr - theorem List.countp_cons - theorem List.countp_cons_of_neg - theorem List.countp_cons_of_pos - theorem List.countp_eq_length - theorem List.countp_eq_length_filter - theorem List.countp_eq_zero - theorem List.countp_false - theorem List.countp_filter - theorem List.countp_join - theorem List.countp_le_length - theorem List.countp_map - theorem List.countp_mono_left - theorem List.countp_nil - theorem List.countp_pos - theorem List.countp_true - theorem List.filter_beq' - theorem List.filter_beq - theorem List.filter_eq' - theorem List.filter_eq - theorem List.le_count_iff_replicate_sublist - theorem List.length_eq_countp_add_countp - theorem List.not_mem_of_count_eq_zero - theorem List.one_le_count_iff_mem - theorem List.replicate_count_eq_of_count_eq_length Modified Mathlib/Data/List/Dedup.lean + theorem List.sum_map_count_dedup_filter_eq_countP - theorem List.sum_map_count_dedup_filter_eq_countp Modified Mathlib/Data/List/Defs.lean Modified Mathlib/Data/List/Lattice.lean Modified Mathlib/Data/List/Nodup.lean Modified Mathlib/Data/List/Pairwise.lean Modified Mathlib/Data/List/Perm.lean + theorem List.Perm.countP_congr + theorem List.Perm.countP_eq - theorem List.Perm.countp_congr - theorem List.Perm.countp_eq + theorem List.Subperm.countP_le - theorem List.Subperm.countp_le + theorem List.countP_eq_countP_filter_add - theorem List.countp_eq_countp_filter_add Modified Mathlib/Data/List/Sort.lean Deleted Mathlib/Data/MLList/Heartbeats.lean - def MLList.whileAtLeastHeartbeatsPercent Modified Mathlib/Data/Multiset/Basic.lean + theorem Multiset.Rel.countP_eq - theorem Multiset.Rel.countp_eq + theorem Multiset.card_eq_countP_add_countP - theorem Multiset.card_eq_countp_add_countp + theorem Multiset.coe_countP + theorem Multiset.coe_countPAddMonoidHom - theorem Multiset.coe_countp - theorem Multiset.coe_countpAddMonoidHom + def Multiset.countP + def Multiset.countPAddMonoidHom + theorem Multiset.countP_False + theorem Multiset.countP_True + theorem Multiset.countP_add + theorem Multiset.countP_congr + theorem Multiset.countP_cons + theorem Multiset.countP_cons_of_neg + theorem Multiset.countP_cons_of_pos + theorem Multiset.countP_eq_card + theorem Multiset.countP_eq_card_filter + theorem Multiset.countP_eq_countP_filter_add + theorem Multiset.countP_eq_zero + theorem Multiset.countP_filter + theorem Multiset.countP_le_card + theorem Multiset.countP_le_of_le + theorem Multiset.countP_map + theorem Multiset.countP_nsmul + theorem Multiset.countP_pos + theorem Multiset.countP_pos_of_mem + theorem Multiset.countP_sub + theorem Multiset.countP_zero +/- theorem Multiset.count_pos - def Multiset.countp - def Multiset.countpAddMonoidHom - theorem Multiset.countp_False - theorem Multiset.countp_True - theorem Multiset.countp_add - theorem Multiset.countp_congr - theorem Multiset.countp_cons - theorem Multiset.countp_cons_of_neg - theorem Multiset.countp_cons_of_pos - theorem Multiset.countp_eq_card - theorem Multiset.countp_eq_card_filter - theorem Multiset.countp_eq_countp_filter_add - theorem Multiset.countp_eq_zero - theorem Multiset.countp_filter - theorem Multiset.countp_le_card - theorem Multiset.countp_le_of_le - theorem Multiset.countp_map - theorem Multiset.countp_nsmul - theorem Multiset.countp_pos - theorem Multiset.countp_pos_of_mem - theorem Multiset.countp_sub - theorem Multiset.countp_zero Modified Mathlib/Data/Nat/Count.lean Modified Mathlib/Data/Nat/Factorization/Basic.lean Modified Mathlib/Data/Sym/Basic.lean Deleted Mathlib/Lean/CoreM.lean - def getInitHeartbeats - def getMaxHeartbeats - def getRemainingHeartbeats - def heartbeatsPercent - def reportOutOfHeartbeats Modified Mathlib/Lean/Meta.lean Modified Mathlib/Logic/Denumerable.lean Modified Mathlib/Tactic/LibrarySearch.lean Modified Mathlib/Tactic/Rewrites.lean Modified Mathlib/Tactic/Simps/Basic.lean Modified Mathlib/Util/CountHeartbeats.lean Modified lake-manifest.json 2023-08-22 22:24:02 46eac94 revert: #5602 (#6717) This reverts commit caa9fe6b612c9064fa2f57cb4842149a0c6f1ff5. "feat: maps between the unitization of a non-unital subalgebra and its `Algebra.adjoin` (#5602)" This revert exists because the PR was merged before it was finished, and because it will make the diff with the new changes simpler. ESTIMATED CHANGES Modified Mathlib.lean Deleted Mathlib/Algebra/Algebra/Subalgebra/Unitization.lean - def NonUnitalStarSubalgebra.toStarSubalgebra - theorem NonUnitalStarSubalgebra.toStarSubalgebra_toNonUnitalStarSubalgebra - def NonUnitalStarSubalgebra.unitization - theorem NonUnitalStarSubalgebra.unitization_apply_coe - theorem NonUnitalStarSubalgebra.unitization_surjective - def NonUnitalSubalgebra.toSubalgebra - theorem NonUnitalSubalgebra.toSubalgebra_toNonUnitalSubalgebra - def NonUnitalSubalgebra.unitization - theorem NonUnitalSubalgebra.unitization_apply_coe - theorem NonUnitalSubalgebra.unitization_injective - theorem NonUnitalSubalgebra.unitization_surjective - def NonUnitalSubring.toSubring - theorem NonUnitalSubring.toSubring_toNonUnitalSubring - def NonUnitalSubring.unitization - theorem NonUnitalSubring.unitization_apply_coe - theorem NonUnitalSubring.unitization_surjective - def NonUnitalSubsemiring.toSubsemiring - theorem NonUnitalSubsemiring.toSubsemiring_toNonUnitalSubsemiring - def NonUnitalSubsemiring.unitization - theorem NonUnitalSubsemiring.unitization_apply_coe - theorem NonUnitalSubsemiring.unitization_surjective - theorem StarSubalgebra.one_mem_toNonUnitalStarSubalgebra - def StarSubalgebra.toNonUnitalStarSubalgebra - theorem StarSubalgebra.toNonUnitalStarSubalgebra_toStarSubalgebra - theorem Subalgebra.one_mem_toNonUnitalSubalgebra - def Subalgebra.toNonUnitalSubalgebra - theorem Subalgebra.toNonUnitalSubalgebra_toSubalgebra - theorem Subring.one_mem_toNonUnitalSubring - def Subring.toNonUnitalSubring - theorem Subring.toNonUnitalSubring_toSubring - theorem Subsemiring.one_mem_toNonUnitalSubsemiring - def Subsemiring.toNonUnitalSubsemiring - theorem Subsemiring.toNonUnitalSubsemiring_toSubsemiring Modified Mathlib/GroupTheory/GroupAction/SubMulAction.lean - theorem AddSubgroupClass.zsmulMemClass - theorem AddSubmonoidClass.nsmulMemClass Modified Mathlib/RingTheory/Adjoin/Basic.lean - def Subring.closureEquivAdjoinInt - def Subsemiring.closureEquivAdjoinNat Modified Mathlib/RingTheory/Subring/Basic.lean - theorem Subring.closure_induction' Modified Mathlib/RingTheory/Subsemiring/Basic.lean - theorem Subsemiring.closure_induction' 2023-08-22 17:26:07 093597d feat: projectivity of `Stonean` in `CompHaus` (#5808) - [x] depends on: #5634 - [x] depends on: #5761 This work was done during the 2023 Copenhagen masterclass on formalisation of condensed mathematics. Numerous participants contributed. ESTIMATED CHANGES Modified Mathlib/Topology/Category/Stonean/Basic.lean + theorem CompHaus.Gleason + def CompHaus.lift + theorem CompHaus.lift_lifts + def CompHaus.presentation.π + def CompHaus.presentation 2023-08-22 14:19:38 537e7f0 feat: `Profinite` is precoherent (#5858) - [x] depends on: #5763 We give a characterisation of effective epimorphic families in `Profinite` and deduce that `Profinite` is a precoherent category. This work was done during the 2023 Copenhagen masterclass on formalisation of condensed mathematics. Numerous participants contributed. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Topology/Category/Profinite/EffectiveEpi.lean + def Profinite.EffectiveEpiFamily.QB' + def Profinite.EffectiveEpiFamily.QB + def Profinite.EffectiveEpiFamily.relation + def Profinite.EffectiveEpiFamily.struct + def Profinite.EffectiveEpiFamily.structAux + def Profinite.EffectiveEpiFamily.ιFun + theorem Profinite.EffectiveEpiFamily.ιFun_continuous + theorem Profinite.EffectiveEpiFamily.ιFun_injective + def Profinite.EffectiveEpiFamily.ιHom' + def Profinite.EffectiveEpiFamily.ιHom + def Profinite.EffectiveEpiFamily.ιIso' + def Profinite.EffectiveEpiFamily.ιIso + def Profinite.EffectiveEpiFamily.π' + theorem Profinite.EffectiveEpiFamily.π'_comp_ι_hom + theorem Profinite.EffectiveEpiFamily.π_comp_ι_inv + theorem Profinite.effectiveEpiFamily_of_jointly_surjective + theorem Profinite.effectiveEpiFamily_tfae 2023-08-22 13:23:09 db373a7 chore: more predictable ext lemmas for TopologicalSpace and UniformSpace (#6705) ESTIMATED CHANGES Modified Mathlib/AlgebraicGeometry/PrimeSpectrum/Basic.lean Modified Mathlib/Topology/Algebra/Group/Basic.lean Modified Mathlib/Topology/Algebra/Ring/Basic.lean Modified Mathlib/Topology/Algebra/UniformGroup.lean Modified Mathlib/Topology/Algebra/Valuation.lean Modified Mathlib/Topology/Basic.lean - theorem topologicalSpace_eq - theorem topologicalSpace_eq_iff Modified Mathlib/Topology/Maps.lean Modified Mathlib/Topology/MetricSpace/Basic.lean Modified Mathlib/Topology/MetricSpace/EMetricSpace.lean Modified Mathlib/Topology/MetricSpace/MetrizableUniformity.lean Modified Mathlib/Topology/Order.lean Modified Mathlib/Topology/Order/UpperLowerSetTopology.lean Modified Mathlib/Topology/UniformSpace/Basic.lean + theorem UniformSpace.Core.ext - theorem UniformSpace.core_eq - theorem uniformSpace_eq Modified Mathlib/Topology/UniformSpace/Compact.lean Modified Mathlib/Topology/UniformSpace/UniformConvergenceTopology.lean Modified Mathlib/Topology/UniformSpace/UniformEmbedding.lean 2023-08-22 13:23:06 896b6fe refactor(Filter/EventuallyConst): redefine (#6673) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Order/Filter/EventuallyConst.lean +/- theorem Filter.EventuallyConst.comp - theorem Filter.EventuallyConst.mono + theorem Filter.EventuallyConst.mulIndicator_const + theorem Filter.EventuallyConst.mulIndicator_const_iff + theorem Filter.EventuallyConst.mulIndicator_const_iff_of_ne +/- theorem Filter.EventuallyConst.of_mulIndicator_const - theorem Filter.EventuallyConst.of_subsingleton + theorem Filter.EventuallyConst.of_subsingleton_left + theorem Filter.EventuallyConst.of_subsingleton_right + theorem Filter.EventuallyConst.of_tendsto - theorem Filter.EventuallyConst.of_unique +/- def Filter.EventuallyConst +/- theorem Filter.EventuallyEq.eventuallyConst_iff + theorem Filter.HasBasis.eventuallyConst_iff' + theorem Filter.HasBasis.eventuallyConst_iff + theorem Filter.eventuallyConst_id + theorem Filter.eventuallyConst_iff_exists_eventuallyEq +/- theorem Filter.eventuallyConst_iff_tendsto Added Mathlib/Order/Filter/Subsingleton.lean + theorem Filter.HasBasis.subsingleton_iff + theorem Filter.Subsingleton.anti + theorem Filter.Subsingleton.exists_eq_pure + theorem Filter.Subsingleton.map + theorem Filter.Subsingleton.of_subsingleton + theorem Filter.Subsingleton.prod + theorem Filter.subsingleton_bot + theorem Filter.subsingleton_iff_bot_or_pure + theorem Filter.subsingleton_iff_exists_le_pure + theorem Filter.subsingleton_iff_exists_singleton_mem + theorem Filter.subsingleton_pure 2023-08-22 12:16:12 40c2a3b chore: Capitalize `pointwise` (#6727) Just the one character `pointwise` to `Pointwise` in the doc-module. ESTIMATED CHANGES Modified Mathlib/GroupTheory/Submonoid/Pointwise.lean 2023-08-22 10:56:13 7f1bdad feat: lemmas about Smith normal form and trace of restriction (#6666) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/LinearAlgebra/FreeModule/PID.lean + theorem Basis.SmithNormalForm.coord_apply_embedding_eq_smul_coord + theorem Basis.SmithNormalForm.le_ker_coord_of_nmem_range + theorem Basis.SmithNormalForm.repr_apply_embedding_eq_repr_smul + theorem Basis.SmithNormalForm.repr_comp_embedding_eq_smul + theorem Basis.SmithNormalForm.repr_eq_zero_of_nmem_range + theorem Basis.SmithNormalForm.toMatrix_restrict_eq_toMatrix Added Mathlib/LinearAlgebra/PID.lean + theorem LinearMap.trace_restrict_eq_of_forall_mem 2023-08-22 03:35:36 8f78230 feat: compute rank of `ℂ` and `ℝ` as `ℚ`-modules (#6672) This adds a trivial cardinality argument that shows that when `V` is a free `K`-module where `K` is infinite and satisfies the strong rank condiiton, then the rank of `V` coincides with its cardinality. This is then used to establish that `Module.rank ℚ ℝ = continuum = Module.rank ℚ ℂ`, and therefore that `ℝ` and `ℂ` are isomorphic as vector spaces over `ℚ`. As requested on [Zulip](https://leanprover.zulipchat.com/#narrow/stream/217875-Is-there-code-for-X.3F/topic/Hamel.20basis.20and.20reals.20isomorphic.20to.20the.20complexes.20as.20an.20a.2E.2E.2E) ESTIMATED CHANGES Modified Mathlib/Data/Complex/Module.lean + theorem Complex.nonempty_linearEquiv_real + theorem Complex.rank_rat_complex + theorem Real.rank_rat_real Modified Mathlib/LinearAlgebra/Dimension.lean + theorem Module.Free.rank_eq_mk_of_infinite_lt 2023-08-22 02:46:42 f972c58 feat: The norm on `Unitization` is a C⋆-norm (#5393) This shows that C⋆-algebras are always `RegularNormedAlgebra`s, so that their `Unitization` is equipped with a norm. Moreover, we show this norm is a C⋆-norm. - [x] depends on: #5330 - [x] depends on: #5741 - [x] depends on: #5742 - [x] depends on: #5743 ESTIMATED CHANGES Modified Mathlib/Analysis/NormedSpace/Star/Multiplier.lean Modified Mathlib/Analysis/NormedSpace/Star/Unitization.lean + theorem ContinuousLinearMap.isometry_mul_flip + theorem ContinuousLinearMap.op_nnnorm_mul_flip_apply + theorem ContinuousLinearMap.op_norm_mul_flip_apply + theorem Unitization.norm_splitMul_snd_sq - theorem mul_flip_isometry - theorem mul_isometry - theorem op_nnnorm_mul - theorem op_nnnorm_mul_flip 2023-08-22 00:30:28 31bcfac feat: add a few missing lemmas about `Covby` and `Wcovby` (#6712) ESTIMATED CHANGES Modified Mathlib/Order/Cover.lean + theorem Covby.of_le_of_lt + theorem Covby.of_lt_of_le + theorem Wcovby.of_le_of_le' + theorem Wcovby.of_le_of_le 2023-08-22 00:30:28 dd15b86 feat: cochains of morphisms between cochain complexes (#6701) This PR starts the construction of the cochain complex of morphisms from a cochain complex to another. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Homology/HomotopyCategory/HomComplex.lean + theorem CochainComplex.HomComplex.Cochain.add_v + def CochainComplex.HomComplex.Cochain.comp + theorem CochainComplex.HomComplex.Cochain.comp_assoc + theorem CochainComplex.HomComplex.Cochain.comp_v + theorem CochainComplex.HomComplex.Cochain.comp_zero_cochain_v + theorem CochainComplex.HomComplex.Cochain.congr_v + theorem CochainComplex.HomComplex.Cochain.d_comp_ofHom_v + theorem CochainComplex.HomComplex.Cochain.d_comp_ofHoms_v + theorem CochainComplex.HomComplex.Cochain.ext + theorem CochainComplex.HomComplex.Cochain.ext₀ + def CochainComplex.HomComplex.Cochain.mk + theorem CochainComplex.HomComplex.Cochain.mk_v + theorem CochainComplex.HomComplex.Cochain.neg_v + def CochainComplex.HomComplex.Cochain.ofHom + theorem CochainComplex.HomComplex.Cochain.ofHom_add + theorem CochainComplex.HomComplex.Cochain.ofHom_neg + theorem CochainComplex.HomComplex.Cochain.ofHom_sub + theorem CochainComplex.HomComplex.Cochain.ofHom_v + theorem CochainComplex.HomComplex.Cochain.ofHom_v_comp_d + theorem CochainComplex.HomComplex.Cochain.ofHom_zero + def CochainComplex.HomComplex.Cochain.ofHomotopy + theorem CochainComplex.HomComplex.Cochain.ofHomotopy_ofEq + theorem CochainComplex.HomComplex.Cochain.ofHomotopy_refl + def CochainComplex.HomComplex.Cochain.ofHoms + theorem CochainComplex.HomComplex.Cochain.ofHoms_v + theorem CochainComplex.HomComplex.Cochain.ofHoms_v_comp_d + theorem CochainComplex.HomComplex.Cochain.ofHoms_zero + theorem CochainComplex.HomComplex.Cochain.sub_v + def CochainComplex.HomComplex.Cochain.v + theorem CochainComplex.HomComplex.Cochain.v_comp_XIsoOfEq_hom + theorem CochainComplex.HomComplex.Cochain.v_comp_XIsoOfEq_inv + theorem CochainComplex.HomComplex.Cochain.zero_cochain_comp_v + theorem CochainComplex.HomComplex.Cochain.zero_v + theorem CochainComplex.HomComplex.Cochain.zsmul_v + def CochainComplex.HomComplex.Cochain + structure CochainComplex.HomComplex.Triplet 2023-08-22 00:10:34 e73099e fix: correct typos in a counterexample's docstring (#6713) ESTIMATED CHANGES Modified Counterexamples/HomogeneousPrimeNotPrime.lean 2023-08-21 22:43:15 a2e5641 chore (Int.Cast.Defs): delete last line (#6710) The last line is `open Nat` which came from an incomplete deletion of content from this fild. We delete the line. ESTIMATED CHANGES Modified Mathlib/Data/Int/Cast/Defs.lean 2023-08-21 22:43:14 20d6b8e feat: add some symm attributes throughout the library (#6708) Also add a couple of refl and trans attributes ESTIMATED CHANGES Modified Mathlib/Analysis/InnerProductSpace/LinearPMap.lean Modified Mathlib/Data/List/Lattice.lean Modified Mathlib/Data/Multiset/Basic.lean Modified Mathlib/Data/Ordmap/Ordset.lean Modified Mathlib/Data/Set/Function.lean Modified Mathlib/Order/Monotone/Monovary.lean Modified Mathlib/RingTheory/Coprime/Basic.lean Modified Mathlib/RingTheory/IsTensorProduct.lean Modified Mathlib/SetTheory/Lists.lean Modified Mathlib/SetTheory/ZFC/Basic.lean Modified Mathlib/Topology/SubsetProperties.lean 2023-08-21 21:19:58 425f4ca doc: add missing docstrings around `ToExpr` (#6699) These are extracted from https://github.com/leanprover/std4/pull/221 ESTIMATED CHANGES Modified Mathlib/Tactic/DeriveToExpr.lean Modified Mathlib/Tactic/ToExpr.lean 2023-08-21 18:17:17 f25139b chore(LinearAlgebra/DFinsupp): make `DFinsupp.coprodMap` computable (#6704) There was no need to go via `Finsupp` here. ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/DFinsupp.lean + def DFinsupp.coprodMap 2023-08-21 17:56:19 590f2c4 feat: characterise the reverse of the characteristic polynomial of a matrix (#6561) ESTIMATED CHANGES Modified Mathlib/Data/Polynomial/Degree/Definitions.lean +/- theorem Polynomial.degree_X_pow + theorem Polynomial.natDegree_X_mul +/- theorem Polynomial.natDegree_X_pow + theorem Polynomial.natDegree_X_pow_mul + theorem Polynomial.natDegree_mul_X + theorem Polynomial.natDegree_mul_X_pow Modified Mathlib/Data/Polynomial/Laurent.lean + theorem LaurentPolynomial.C_apply + theorem LaurentPolynomial.T_apply + def LaurentPolynomial.invert + theorem LaurentPolynomial.invert_C + theorem LaurentPolynomial.invert_T + theorem LaurentPolynomial.invert_apply + theorem LaurentPolynomial.invert_comp_C + theorem LaurentPolynomial.invert_symm + theorem LaurentPolynomial.involutive_invert + theorem LaurentPolynomial.toLaurent_reverse + theorem Polynomial.coe_toLaurentAlg + theorem Polynomial.toLaurent_comp_C Modified Mathlib/Data/Polynomial/Reverse.lean + theorem Polynomial.reflect_one_X + theorem Polynomial.reverse_C + theorem Polynomial.reverse_C_add + theorem Polynomial.reverse_X_mul + theorem Polynomial.reverse_X_pow_mul + theorem Polynomial.reverse_add_C + theorem Polynomial.reverse_mul_X + theorem Polynomial.reverse_mul_X_pow Modified Mathlib/LinearAlgebra/Matrix/Charpoly/Coeff.lean + theorem Matrix.reverse_charpoly 2023-08-21 15:17:20 134b6cb chore: small generalization of finsupp lemmas (#6700) Noticed whilst doing my other PR about char_zero. Leaves statements that create data alone. ESTIMATED CHANGES Modified Mathlib/Data/Finsupp/Basic.lean +/- theorem Finsupp.mapRange_finset_sum +/- theorem Finsupp.mapRange_multiset_sum Modified Mathlib/RingTheory/MvPolynomial/Basic.lean 2023-08-21 15:17:18 4d4baab chore(SetTheory): add missing `pp_with_univ` to `Cardinal.lift` and `Ordinal.lift` (#6683) The docstrings telling you to enable `pp.universes` are no longer relevant. ESTIMATED CHANGES Modified Mathlib/SetTheory/Cardinal/Basic.lean Modified Mathlib/SetTheory/Ordinal/Basic.lean 2023-08-21 14:05:51 09648f4 chore(Tactic/ToLevel): add `pp_with_univ` (#6702) ESTIMATED CHANGES Modified Mathlib/Tactic/ToLevel.lean 2023-08-21 14:05:50 c198eb6 chore: remove nolint from partENat (#6664) Adding nolints seems the wrong solution here, the linter is right to complain, theses lemmas should just be used by hand until the general instance is proved ESTIMATED CHANGES Modified Mathlib/Data/Nat/PartENat.lean 2023-08-21 11:54:42 368923d feat: behavior of `Cauchy` under operations on `UniformSpace` (#6694) Some of the lemmas are cherry-picked from leanprover-community/mathlib#17975 and will be useful for the general Arzela-Ascoli theorem, but I also filled some API holes on the way. ESTIMATED CHANGES Modified Mathlib/Topology/UniformSpace/Cauchy.lean + theorem Cauchy.mono_uniformSpace + theorem cauchy_comap_uniformSpace + theorem cauchy_iInf_uniformSpace' + theorem cauchy_iInf_uniformSpace + theorem cauchy_iff_le + theorem cauchy_inf_uniformSpace + theorem cauchy_prod_iff Modified Mathlib/Topology/UniformSpace/Pi.lean + theorem Cauchy.pi + theorem Pi.uniformSpace_eq + theorem cauchy_pi_iff' + theorem cauchy_pi_iff 2023-08-21 10:28:08 2b6f001 feat: char p for mv_polys over semirings (#6697) This generalises existing instances to apply to `CommSemiring`s. It also generalises a whole file that was using unnecessarily strong assumptions. ESTIMATED CHANGES Modified Mathlib/RingTheory/MvPolynomial/Basic.lean +/- theorem MvPolynomial.mapRange_eq_map 2023-08-21 04:30:54 8854804 chore: bump Std4 (#6695) The file [`Mathlib.Util.Pickle`](https://github.com/leanprover/std4/pull/211) has been upstreamed to std4, as has the declaration [`String.count`](https://github.com/leanprover/std4/pull/220). ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Data/String/Defs.lean - def String.count Modified Mathlib/Tactic/LibrarySearch.lean Modified Mathlib/Tactic/Rewrites.lean Deleted Mathlib/Util/Pickle.lean - def pickle Modified lake-manifest.json 2023-08-21 01:30:37 c6e395d feat: add theorem about nodal on Subgroup (#6495) A lemma about the vanishing polynomial. ESTIMATED CHANGES Modified Mathlib/Data/Polynomial/Degree/Definitions.lean + theorem Polynomial.leadingCoeff_add_of_degree_lt' + theorem Polynomial.leadingCoeff_sub_of_degree_eq + theorem Polynomial.leadingCoeff_sub_of_degree_lt' + theorem Polynomial.leadingCoeff_sub_of_degree_lt Modified Mathlib/LinearAlgebra/Lagrange.lean + theorem Lagrange.nodal_monic + theorem Lagrange.nodal_subgroup_eq_X_pow_card_sub_one + theorem Polynomial.eq_of_degree_le_of_eval_finset_eq + theorem Polynomial.eq_of_degree_le_of_eval_index_eq 2023-08-21 00:12:55 782e4d3 feat(Data/List/Chain): well-foundedness of chains under `List.Lex` (#6432) shorter proof of the main result of #6361 Zulip: https://leanprover.zulipchat.com/#narrow/stream/217875-Is-there-code-for-X.3F/topic/List.2ELex.20is.20well.20founded.20on.20decreasing.20lists/near/382708025 ESTIMATED CHANGES Modified Mathlib/Data/List/Chain.lean + theorem Acc.list_chain' + theorem WellFounded.list_chain' 2023-08-20 21:55:55 38e1b74 feat: easy lemmas about extrema indexed by a union (#6693) ESTIMATED CHANGES Modified Mathlib/Data/Set/Lattice.lean + theorem exists_sUnion + theorem forall_sUnion + theorem iInf_sUnion + theorem iSup_sUnion 2023-08-20 20:55:54 dcc92db feat: matrix equality of strongly regular graphs (#6507) ESTIMATED CHANGES Modified Mathlib/Combinatorics/SimpleGraph/Connectivity.lean + def SimpleGraph.walkLengthTwoEquivCommonNeighbors Modified Mathlib/Combinatorics/SimpleGraph/StronglyRegular.lean + theorem SimpleGraph.IsSRGWith.matrix_eq 2023-08-20 19:29:09 0b511e9 chore: fix doc-strings about (`c` vs `C`)`ounterexamples` (#6691) This PR just touches doc-strings. It fixes capitalization issues involving `Counterexamples` and adds a missing line-break for better display. ESTIMATED CHANGES Modified Mathlib/Algebra/CharP/Basic.lean Modified Mathlib/Algebra/CharZero/Defs.lean Modified Mathlib/CategoryTheory/Abelian/Pseudoelements.lean Modified Mathlib/Data/Finsupp/Lex.lean Modified Mathlib/LinearAlgebra/DFinsupp.lean 2023-08-20 19:29:08 e75cfd1 chore(Data/Polynomial/Basic): golf & make some variables implicit (#6270) ESTIMATED CHANGES Modified Mathlib/Data/Polynomial/Basic.lean +/- theorem Polynomial.sum_eq_of_subset +/- theorem Polynomial.sum_monomial_index Modified Mathlib/Data/Polynomial/Coeff.lean Modified Mathlib/Data/Polynomial/Mirror.lean 2023-08-20 16:14:55 a1bb593 feat(Mathlib/Algebra/CharP/Basic): add ringChar_zero_iff_CharZero (#6572) [Zulip discussion](https://leanprover.zulipchat.com/#narrow/stream/217875-Is-there-code-for-X.3F/topic/CharZero_of_ringChar_zero) ESTIMATED CHANGES Modified Mathlib/Algebra/CharP/Basic.lean + theorem CharP.charP_zero_iff_charZero + theorem CharP.ringChar_zero_iff_CharZero 2023-08-20 14:37:16 53adf85 feat: missing results about StarAlgHom.codRestrict (#6668) This is a step towards making sure that all the `codRestrict` APIs are similar, but they're still not similar enough in wether they take bundled subobjects/morphisms or subobject/morphism classes. ESTIMATED CHANGES Modified Mathlib/Algebra/Star/Subalgebra.lean + theorem StarAlgHom.coe_codRestrict + theorem StarAlgHom.injective_codRestrict + theorem StarAlgHom.subtype_comp_codRestrict 2023-08-20 13:35:31 0db562a feat(Algebra.Module.Zlattice): add Zlattice.module_free and Zlattice.rank (#5728) We prove the main characterisation of $\mathbb{Z}$-lattices: a subgroup $L$ of $\mathbb{R}^n$ that is discrete and that spans $\mathbb{R}^n$ is a free $\mathbb{Z}$-module of rank $n$ (in a slightly more general setting). ESTIMATED CHANGES Modified Mathlib/Algebra/Module/Zlattice.lean + theorem Zlattice.FG + theorem Zlattice.module_finite + theorem Zlattice.module_free + theorem Zlattice.rank + def Zspan.QuotientEquiv + def Zspan.fract_restrict + theorem Zspan.fract_restrict_apply + theorem Zspan.fract_restrict_surjective + theorem Zspan.quotientEquiv.symm_apply + theorem Zspan.quotientEquiv_apply_mk Modified Mathlib/GroupTheory/Finiteness.lean + theorem Group.fg_iff_subgroup_fg Modified Mathlib/Topology/MetricSpace/Basic.lean + theorem Metric.Finite_bounded_inter_isClosed 2023-08-20 12:05:07 d63c383 feat: sufficient condition for a cycle map to be an isomorphism (#6231) This PR gives a sufficient condition which ensures that a morphism of short complexes induces an isomorphism on cycles (or opcycles). ESTIMATED CHANGES Modified Mathlib/Algebra/Homology/ShortComplex/LeftHomology.lean + theorem CategoryTheory.ShortComplex.isIso_cyclesMap'_of_isIso_of_mono + theorem CategoryTheory.ShortComplex.isIso_cyclesMap_of_isIso_of_mono' Modified Mathlib/Algebra/Homology/ShortComplex/RightHomology.lean + theorem CategoryTheory.ShortComplex.isIso_opcyclesMap'_of_isIso_of_epi + theorem CategoryTheory.ShortComplex.isIso_opcyclesMap_of_isIso_of_epi' 2023-08-20 10:00:42 9dd5bbf chore (Algebra.Field.Defs): remove unused structure instances (#6686) In both `Division.toDivisionSemiring` and `Field.toSemiField`, an extra unused `Semiring` instance is provided to construct the instance. This removes them. ESTIMATED CHANGES Modified Mathlib/Algebra/Field/Defs.lean 2023-08-20 07:35:23 cf479f4 chore: bump to nightly-2023-08-19 (#6687) ESTIMATED CHANGES Modified lean-toolchain 2023-08-19 18:38:22 c6ffbe8 feat: a countable set has dense complement in a nontrivial vector space over a complete normed field (#6556) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Topology/Algebra/Module/Cardinality.lean + theorem Set.Countable.dense_compl + theorem cardinal_eq_of_is_open + theorem cardinal_eq_of_mem_nhds + theorem cardinal_eq_of_mem_nhds_zero + theorem continuum_le_cardinal_of_is_open + theorem continuum_le_cardinal_of_module + theorem continuum_le_cardinal_of_nontriviallyNormedField 2023-08-19 18:38:21 1a978e5 feat(LinearAlgebra): complements on spaces of dimension >1 or >n (#6348) ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/Dimension.lean + theorem exists_linear_independent_cons_of_lt_rank + theorem exists_linear_independent_pair_of_one_lt_rank + theorem exists_linear_independent_snoc_of_lt_rank Modified Mathlib/LinearAlgebra/FiniteDimensional.lean + theorem exists_smul_eq_of_finrank_eq_one Modified Mathlib/LinearAlgebra/Finrank.lean + theorem FiniteDimensional.lt_rank_of_lt_finrank + theorem FiniteDimensional.one_lt_rank_of_one_lt_finrank - theorem FiniteDimensional.rank_lt_of_finrank_lt + theorem exists_linear_independent_cons_of_lt_finrank + theorem exists_linear_independent_pair_of_one_lt_finrank + theorem exists_linear_independent_snoc_of_lt_finrank Modified Mathlib/LinearAlgebra/LinearIndependent.lean + theorem LinearIndependent.eq_of_pair + theorem LinearIndependent.eq_zero_of_pair 2023-08-19 17:21:38 277dea9 chore: drop `MulZeroClass.` in `mul_zero`/`zero_mul` (#6682) Search&replace `MulZeroClass.mul_zero` -> `mul_zero`, `MulZeroClass.zero_mul` -> `zero_mul`. These were introduced by Mathport, as the full name of `mul_zero` is actually `MulZeroClass.mul_zero` (it's exported with the short name). ESTIMATED CHANGES Modified Archive/Wiedijk100Theorems/BallotProblem.lean Modified Archive/Wiedijk100Theorems/Partition.lean Modified Counterexamples/HomogeneousPrimeNotPrime.lean Modified Counterexamples/Phillips.lean Modified Mathlib/Algebra/Algebra/NonUnitalSubalgebra.lean Modified Mathlib/Algebra/Algebra/Unitization.lean Modified Mathlib/Algebra/BigOperators/Fin.lean Modified Mathlib/Algebra/Category/ModuleCat/Adjunctions.lean Modified Mathlib/Algebra/Category/Ring/Constructions.lean Modified Mathlib/Algebra/CharP/Basic.lean Modified Mathlib/Algebra/CharP/CharAndCard.lean Modified Mathlib/Algebra/ContinuedFractions/Computation/Approximations.lean Modified Mathlib/Algebra/CubicDiscriminant.lean Modified Mathlib/Algebra/DirectLimit.lean Modified Mathlib/Algebra/DirectSum/Internal.lean Modified Mathlib/Algebra/DualNumber.lean Modified Mathlib/Algebra/FreeAlgebra.lean Modified Mathlib/Algebra/Group/Pi.lean Modified Mathlib/Algebra/Module/LocalizedModule.lean Modified Mathlib/Algebra/MonoidAlgebra/Basic.lean Modified Mathlib/Algebra/MonoidAlgebra/NoZeroDivisors.lean Modified Mathlib/Algebra/Order/CompleteField.lean Modified Mathlib/Algebra/QuadraticDiscriminant.lean Modified Mathlib/Algebra/Ring/BooleanRing.lean Modified Mathlib/Algebra/Squarefree.lean Modified Mathlib/Algebra/Star/CHSH.lean Modified Mathlib/Algebra/Star/Order.lean Modified Mathlib/Algebra/Symmetrized.lean Modified Mathlib/Algebra/TrivSqZeroExt.lean Modified Mathlib/AlgebraicGeometry/Morphisms/QuasiCompact.lean Modified Mathlib/AlgebraicGeometry/Morphisms/QuasiSeparated.lean Modified Mathlib/AlgebraicGeometry/StructureSheaf.lean Modified Mathlib/Analysis/Analytic/Basic.lean Modified Mathlib/Analysis/Analytic/Inverse.lean Modified Mathlib/Analysis/Asymptotics/Asymptotics.lean Modified Mathlib/Analysis/Asymptotics/SuperpolynomialDecay.lean Modified Mathlib/Analysis/Calculus/BumpFunction/FiniteDimension.lean Modified Mathlib/Analysis/Calculus/Deriv/Mul.lean Modified Mathlib/Analysis/Calculus/Deriv/ZPow.lean Modified Mathlib/Analysis/Calculus/FDeriv/Symmetric.lean Modified Mathlib/Analysis/Calculus/Monotone.lean Modified Mathlib/Analysis/Complex/Circle.lean Modified Mathlib/Analysis/Complex/UnitDisc/Basic.lean Modified Mathlib/Analysis/Complex/UpperHalfPlane/Basic.lean Modified Mathlib/Analysis/Complex/UpperHalfPlane/Metric.lean Modified Mathlib/Analysis/ConstantSpeed.lean Modified Mathlib/Analysis/Convex/Caratheodory.lean Modified Mathlib/Analysis/Convex/Segment.lean Modified Mathlib/Analysis/Convex/SpecificFunctions/Deriv.lean Modified Mathlib/Analysis/Fourier/AddCircle.lean Modified Mathlib/Analysis/Fourier/FourierTransform.lean Modified Mathlib/Analysis/InnerProductSpace/Basic.lean Modified Mathlib/Analysis/InnerProductSpace/GramSchmidtOrtho.lean Modified Mathlib/Analysis/InnerProductSpace/LaxMilgram.lean Modified Mathlib/Analysis/InnerProductSpace/OfNorm.lean Modified Mathlib/Analysis/InnerProductSpace/Orthogonal.lean Modified Mathlib/Analysis/InnerProductSpace/Projection.lean Modified Mathlib/Analysis/InnerProductSpace/Symmetric.lean Modified Mathlib/Analysis/InnerProductSpace/TwoDim.lean Modified Mathlib/Analysis/LocallyConvex/WithSeminorms.lean Modified Mathlib/Analysis/MeanInequalities.lean Modified Mathlib/Analysis/Normed/Group/AddCircle.lean Modified Mathlib/Analysis/Normed/Ring/Seminorm.lean Modified Mathlib/Analysis/NormedSpace/Banach.lean Modified Mathlib/Analysis/NormedSpace/ENorm.lean Modified Mathlib/Analysis/NormedSpace/Extend.lean Modified Mathlib/Analysis/NormedSpace/HahnBanach/Extension.lean Modified Mathlib/Analysis/NormedSpace/IsROrC.lean Modified Mathlib/Analysis/NormedSpace/MStructure.lean Modified Mathlib/Analysis/NormedSpace/Multilinear.lean Modified Mathlib/Analysis/NormedSpace/OperatorNorm.lean Modified Mathlib/Analysis/NormedSpace/QuaternionExponential.lean Modified Mathlib/Analysis/NormedSpace/Spectrum.lean Modified Mathlib/Analysis/NormedSpace/Star/Multiplier.lean Modified Mathlib/Analysis/ODE/Gronwall.lean Modified Mathlib/Analysis/Seminorm.lean Modified Mathlib/Analysis/SpecialFunctions/Complex/Arg.lean Modified Mathlib/Analysis/SpecialFunctions/Gamma/Basic.lean Modified Mathlib/Analysis/SpecialFunctions/Gamma/Beta.lean Modified Mathlib/Analysis/SpecialFunctions/Gaussian.lean Modified Mathlib/Analysis/SpecialFunctions/PolarCoord.lean Modified Mathlib/Analysis/SpecialFunctions/Polynomials.lean Modified Mathlib/Analysis/SpecialFunctions/Pow/Asymptotics.lean Modified Mathlib/Analysis/SpecialFunctions/Pow/Complex.lean Modified Mathlib/Analysis/SpecialFunctions/Pow/Deriv.lean Modified Mathlib/Analysis/SpecialFunctions/Pow/NNReal.lean Modified Mathlib/Analysis/SpecialFunctions/Pow/Real.lean Modified Mathlib/Analysis/SpecialFunctions/Sqrt.lean Modified Mathlib/Analysis/SpecialFunctions/Stirling.lean Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Angle.lean Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Basic.lean Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Chebyshev.lean Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Complex.lean Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/EulerSineProd.lean Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Series.lean Modified Mathlib/Analysis/SpecificLimits/Basic.lean Modified Mathlib/Analysis/SpecificLimits/FloorPow.lean Modified Mathlib/CategoryTheory/Closed/Cartesian.lean Modified Mathlib/Combinatorics/Additive/Behrend.lean Modified Mathlib/Combinatorics/SimpleGraph/DegreeSum.lean Modified Mathlib/Combinatorics/SimpleGraph/Regularity/Lemma.lean Modified Mathlib/Data/IsROrC/Basic.lean Modified Mathlib/Data/Matrix/Basic.lean Modified Mathlib/Data/Matrix/Block.lean Modified Mathlib/Data/Matrix/Hadamard.lean Modified Mathlib/Data/Matrix/Kronecker.lean Modified Mathlib/Data/MvPolynomial/Basic.lean Modified Mathlib/Data/MvPolynomial/Variables.lean Modified Mathlib/Data/Nat/Totient.lean Modified Mathlib/Data/Num/Lemmas.lean Modified Mathlib/Data/Ordmap/Ordset.lean Modified Mathlib/Data/Polynomial/DenomsClearable.lean Modified Mathlib/Data/Polynomial/Div.lean Modified Mathlib/Data/Polynomial/Expand.lean Modified Mathlib/Data/Polynomial/FieldDivision.lean Modified Mathlib/Data/Polynomial/HasseDeriv.lean Modified Mathlib/Data/Polynomial/Laurent.lean Modified Mathlib/Data/Polynomial/Mirror.lean Modified Mathlib/Data/Polynomial/RingDivision.lean Modified Mathlib/Data/Polynomial/Splits.lean Modified Mathlib/Data/Polynomial/Taylor.lean Modified Mathlib/Data/Polynomial/UnitTrinomial.lean Modified Mathlib/Data/Real/Pi/Wallis.lean Modified Mathlib/Data/ZMod/Basic.lean Modified Mathlib/Dynamics/Ergodic/Conservative.lean Modified Mathlib/FieldTheory/ChevalleyWarning.lean Modified Mathlib/FieldTheory/Finite/Basic.lean Modified Mathlib/FieldTheory/IsAlgClosed/AlgebraicClosure.lean Modified Mathlib/FieldTheory/Minpoly/Basic.lean Modified Mathlib/FieldTheory/Minpoly/Field.lean Modified Mathlib/FieldTheory/Minpoly/IsIntegrallyClosed.lean Modified Mathlib/FieldTheory/Normal.lean Modified Mathlib/FieldTheory/PolynomialGaloisGroup.lean Modified Mathlib/FieldTheory/RatFunc.lean Modified Mathlib/FieldTheory/Separable.lean Modified Mathlib/FieldTheory/SeparableDegree.lean Modified Mathlib/FieldTheory/SplittingField/Construction.lean Modified Mathlib/FieldTheory/Tower.lean Modified Mathlib/Geometry/Euclidean/Angle/Oriented/Basic.lean Modified Mathlib/Geometry/Euclidean/Angle/Oriented/Rotation.lean Modified Mathlib/Geometry/Euclidean/Angle/Unoriented/Basic.lean Modified Mathlib/Geometry/Euclidean/Angle/Unoriented/RightAngle.lean Modified Mathlib/Geometry/Euclidean/Basic.lean Modified Mathlib/Geometry/Euclidean/Inversion/Basic.lean Modified Mathlib/Geometry/Euclidean/MongePoint.lean Modified Mathlib/Geometry/Euclidean/Sphere/Power.lean Modified Mathlib/Geometry/Euclidean/Sphere/SecondInter.lean Modified Mathlib/Geometry/Euclidean/Triangle.lean Modified Mathlib/Geometry/Manifold/Algebra/SmoothFunctions.lean Modified Mathlib/GroupTheory/Schreier.lean Modified Mathlib/GroupTheory/SpecificGroups/Cyclic.lean Modified Mathlib/GroupTheory/SpecificGroups/Quaternion.lean Modified Mathlib/LinearAlgebra/BilinearForm.lean Modified Mathlib/LinearAlgebra/Charpoly/Basic.lean Modified Mathlib/LinearAlgebra/CliffordAlgebra/Contraction.lean Modified Mathlib/LinearAlgebra/CliffordAlgebra/Equivs.lean Modified Mathlib/LinearAlgebra/CliffordAlgebra/Even.lean Modified Mathlib/LinearAlgebra/CliffordAlgebra/EvenEquiv.lean Modified Mathlib/LinearAlgebra/Determinant.lean Modified Mathlib/LinearAlgebra/Eigenspace/Minpoly.lean Modified Mathlib/LinearAlgebra/ExteriorAlgebra/Basic.lean Modified Mathlib/LinearAlgebra/Lagrange.lean Modified Mathlib/LinearAlgebra/Matrix/Adjugate.lean Modified Mathlib/LinearAlgebra/Matrix/Block.lean Modified Mathlib/LinearAlgebra/Matrix/Charpoly/Coeff.lean Modified Mathlib/LinearAlgebra/Matrix/Determinant.lean Modified Mathlib/LinearAlgebra/Matrix/DotProduct.lean Modified Mathlib/LinearAlgebra/Matrix/SpecialLinearGroup.lean Modified Mathlib/LinearAlgebra/Matrix/ToLin.lean Modified Mathlib/LinearAlgebra/Matrix/Transvection.lean Modified Mathlib/LinearAlgebra/Matrix/ZPow.lean Modified Mathlib/LinearAlgebra/QuadraticForm/Complex.lean Modified Mathlib/LinearAlgebra/QuadraticForm/Real.lean Modified Mathlib/LinearAlgebra/Vandermonde.lean Modified Mathlib/MeasureTheory/Constructions/Polish.lean Modified Mathlib/MeasureTheory/Constructions/Prod/Basic.lean Modified Mathlib/MeasureTheory/Covering/Besicovitch.lean Modified Mathlib/MeasureTheory/Covering/Differentiation.lean Modified Mathlib/MeasureTheory/Covering/LiminfLimsup.lean Modified Mathlib/MeasureTheory/Decomposition/UnsignedHahn.lean Modified Mathlib/MeasureTheory/Function/ConditionalExpectation/Real.lean Modified Mathlib/MeasureTheory/Function/ConvergenceInMeasure.lean Modified Mathlib/MeasureTheory/Function/Jacobian.lean Modified Mathlib/MeasureTheory/Function/LpSeminorm.lean Modified Mathlib/MeasureTheory/Function/SimpleFunc.lean Modified Mathlib/MeasureTheory/Function/StronglyMeasurable/Basic.lean Modified Mathlib/MeasureTheory/Function/UniformIntegrable.lean Modified Mathlib/MeasureTheory/Integral/Average.lean Modified Mathlib/MeasureTheory/Integral/Bochner.lean Modified Mathlib/MeasureTheory/Integral/IntegralEqImproper.lean Modified Mathlib/MeasureTheory/Integral/Layercake.lean Modified Mathlib/MeasureTheory/Integral/Lebesgue.lean Modified Mathlib/MeasureTheory/Integral/MeanInequalities.lean Modified Mathlib/MeasureTheory/Integral/PeakFunction.lean Modified Mathlib/MeasureTheory/Integral/SetIntegral.lean Modified Mathlib/MeasureTheory/Integral/SetToL1.lean Modified Mathlib/MeasureTheory/Integral/VitaliCaratheodory.lean Modified Mathlib/MeasureTheory/Measure/Doubling.lean Modified Mathlib/MeasureTheory/Measure/FiniteMeasure.lean Modified Mathlib/MeasureTheory/Measure/GiryMonad.lean Modified Mathlib/MeasureTheory/Measure/Haar/OfBasis.lean Modified Mathlib/MeasureTheory/Measure/Hausdorff.lean Modified Mathlib/MeasureTheory/Measure/Lebesgue/Basic.lean Modified Mathlib/MeasureTheory/Measure/ProbabilityMeasure.lean Modified Mathlib/NumberTheory/ArithmeticFunction.lean Modified Mathlib/NumberTheory/Bernoulli.lean Modified Mathlib/NumberTheory/BernoulliPolynomials.lean Modified Mathlib/NumberTheory/Cyclotomic/Discriminant.lean Modified Mathlib/NumberTheory/DiophantineApproximation.lean Modified Mathlib/NumberTheory/FunctionField.lean Modified Mathlib/NumberTheory/KummerDedekind.lean Modified Mathlib/NumberTheory/LegendreSymbol/AddCharacter.lean Modified Mathlib/NumberTheory/LegendreSymbol/Basic.lean Modified Mathlib/NumberTheory/LegendreSymbol/GaussSum.lean Modified Mathlib/NumberTheory/LegendreSymbol/JacobiSymbol.lean Modified Mathlib/NumberTheory/LegendreSymbol/MulCharacter.lean Modified Mathlib/NumberTheory/LegendreSymbol/QuadraticChar/Basic.lean Modified Mathlib/NumberTheory/LegendreSymbol/QuadraticChar/GaussSum.lean Modified Mathlib/NumberTheory/LegendreSymbol/QuadraticReciprocity.lean Modified Mathlib/NumberTheory/Modular.lean Modified Mathlib/NumberTheory/ModularForms/CongruenceSubgroups.lean Modified Mathlib/NumberTheory/ModularForms/JacobiTheta/Basic.lean Modified Mathlib/NumberTheory/ModularForms/SlashActions.lean Modified Mathlib/NumberTheory/Multiplicity.lean Modified Mathlib/NumberTheory/NumberField/Embeddings.lean Modified Mathlib/NumberTheory/Padics/Hensel.lean Modified Mathlib/NumberTheory/Padics/PadicIntegers.lean Modified Mathlib/NumberTheory/Padics/PadicNumbers.lean Modified Mathlib/NumberTheory/Padics/RingHoms.lean Modified Mathlib/NumberTheory/Pell.lean Modified Mathlib/NumberTheory/PythagoreanTriples.lean Modified Mathlib/NumberTheory/RamificationInertia.lean Modified Mathlib/NumberTheory/ZetaFunction.lean Modified Mathlib/NumberTheory/ZetaValues.lean Modified Mathlib/NumberTheory/Zsqrtd/Basic.lean Modified Mathlib/Probability/CondCount.lean Modified Mathlib/Probability/Independence/Kernel.lean Modified Mathlib/Probability/Integration.lean Modified Mathlib/Probability/Kernel/Composition.lean Modified Mathlib/Probability/Kernel/Disintegration.lean Modified Mathlib/Probability/Martingale/Upcrossing.lean Modified Mathlib/Probability/ProbabilityMassFunction/Constructions.lean Modified Mathlib/Probability/ProbabilityMassFunction/Monad.lean Modified Mathlib/Probability/StrongLaw.lean Modified Mathlib/RepresentationTheory/GroupCohomology/Resolution.lean Modified Mathlib/RingTheory/AdjoinRoot.lean Modified Mathlib/RingTheory/Algebraic.lean Modified Mathlib/RingTheory/ClassGroup.lean Modified Mathlib/RingTheory/DedekindDomain/AdicValuation.lean Modified Mathlib/RingTheory/DedekindDomain/Ideal.lean Modified Mathlib/RingTheory/Discriminant.lean Modified Mathlib/RingTheory/EisensteinCriterion.lean Modified Mathlib/RingTheory/FractionalIdeal.lean Modified Mathlib/RingTheory/FreeCommRing.lean Modified Mathlib/RingTheory/GradedAlgebra/Basic.lean Modified Mathlib/RingTheory/HahnSeries.lean Modified Mathlib/RingTheory/Henselian.lean Modified Mathlib/RingTheory/Ideal/Norm.lean Modified Mathlib/RingTheory/IntegralClosure.lean Modified Mathlib/RingTheory/IntegralDomain.lean Modified Mathlib/RingTheory/IsAdjoinRoot.lean Modified Mathlib/RingTheory/IsTensorProduct.lean Modified Mathlib/RingTheory/Kaehler.lean Modified Mathlib/RingTheory/LocalProperties.lean Modified Mathlib/RingTheory/Localization/Integral.lean Modified Mathlib/RingTheory/Localization/LocalizationLocalization.lean Modified Mathlib/RingTheory/Localization/NumDen.lean Modified Mathlib/RingTheory/MvPolynomial/Homogeneous.lean Modified Mathlib/RingTheory/MvPolynomial/WeightedHomogeneous.lean Modified Mathlib/RingTheory/Nilpotent.lean Modified Mathlib/RingTheory/NonUnitalSubring/Basic.lean Modified Mathlib/RingTheory/Nullstellensatz.lean Modified Mathlib/RingTheory/Perfection.lean Modified Mathlib/RingTheory/Polynomial/Basic.lean Modified Mathlib/RingTheory/Polynomial/Bernstein.lean Modified Mathlib/RingTheory/Polynomial/Cyclotomic/Basic.lean Modified Mathlib/RingTheory/Polynomial/Dickson.lean Modified Mathlib/RingTheory/Polynomial/Hermite/Basic.lean Modified Mathlib/RingTheory/Polynomial/RationalRoot.lean Modified Mathlib/RingTheory/PolynomialAlgebra.lean Modified Mathlib/RingTheory/PowerBasis.lean Modified Mathlib/RingTheory/PowerSeries/Basic.lean Modified Mathlib/RingTheory/PrincipalIdealDomain.lean Modified Mathlib/RingTheory/RootsOfUnity/Basic.lean Modified Mathlib/RingTheory/RootsOfUnity/Complex.lean Modified Mathlib/RingTheory/TensorProduct.lean Modified Mathlib/RingTheory/UniqueFactorizationDomain.lean Modified Mathlib/RingTheory/Valuation/Basic.lean Modified Mathlib/RingTheory/Valuation/ValuationRing.lean Modified Mathlib/RingTheory/WittVector/Defs.lean Modified Mathlib/RingTheory/WittVector/Frobenius.lean Modified Mathlib/RingTheory/WittVector/IsPoly.lean Modified Mathlib/RingTheory/WittVector/MulP.lean Modified Mathlib/RingTheory/WittVector/Verschiebung.lean Modified Mathlib/RingTheory/WittVector/WittPolynomial.lean Modified Mathlib/Topology/Algebra/Module/CharacterSpace.lean Modified Mathlib/Topology/Algebra/Nonarchimedean/Basic.lean Modified Mathlib/Topology/Algebra/Valuation.lean Modified Mathlib/Topology/ContinuousFunction/Ideals.lean Modified Mathlib/Topology/ContinuousFunction/ZeroAtInfty.lean Modified Mathlib/Topology/MetricSpace/Closeds.lean Modified Mathlib/Topology/MetricSpace/Dilation.lean Modified Mathlib/Topology/MetricSpace/PiNat.lean Modified Mathlib/Topology/PartitionOfUnity.lean Modified Mathlib/Topology/TietzeExtension.lean 2023-08-19 13:44:25 a0d8b86 feat: two missing lemmas about restricting continuous maps (#6616) ESTIMATED CHANGES Modified Mathlib/Topology/Constructions.lean + theorem Continuous.restrict + theorem Continuous.restrictPreimage 2023-08-19 12:28:32 0a3c012 chore: make sure that some coercions have an attached definition (#6667) ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/Equiv.lean + def AlgEquivClass.toAlgEquiv Modified Mathlib/Algebra/Hom/NonUnitalAlg.lean + def NonUnitalAlgHomClass.toNonUnitalAlgHom Modified Mathlib/Algebra/Star/StarAlgHom.lean + def NonUnitalStarAlgHomClass.toNonUnitalStarAlgHom + def StarAlgHomClass.toStarAlgHom Modified Mathlib/Order/Hom/Basic.lean Modified Mathlib/Topology/ContinuousFunction/CocompactMap.lean + def CocompactMapClass.toCocompactMap Modified Mathlib/Topology/Order/Hom/Basic.lean 2023-08-19 12:28:31 887eb16 docs: fix monoidal category docstring (#6623) Seems like the classes are called `BraidedCategory` and `SymmetricCategory`, so I changed the docstring to reflect this. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Monoidal/Braided.lean 2023-08-19 12:06:35 f2214bf doc: fix some typos in comments in Mathlib.Topology.ProperMap (#6601) ESTIMATED CHANGES Modified Mathlib/Topology/ProperMap.lean 2023-08-19 10:47:55 7694d42 feat(Set/NAry): add `Set.Subsingleton.image2` (#6671) ESTIMATED CHANGES Modified Mathlib/Data/Set/NAry.lean + theorem Set.Subsingleton.image2 2023-08-19 09:44:39 0c89b79 refactor(NumberTheory.NumberField.CanonicalEmbedding): make the canonical embedding canonical (#5518) It was observed by @kbuzzard, and rightly so, that in the first version of this file the `canonical_embedding` was not so canonical. This refactor fixes that by replacing it with a truly canonical embedding. More precisely, in the old version, the canonical embedding was defined as the ring homomorphism `K →+* ℝ^r₁ × ℂ^r₂` that sends `x ∈ K` to `(φ_₁(x),...,φ_r₁(x)) × (ψ_₁(x),..., ψ_r₂(x))` where `φ_₁,...,φ_r₁` are its real embeddings and `ψ_₁,..., ψ_r₂` are its complex embeddings (up to complex conjugation). This is not canonical since it depends upon the choice of the `ψ`'s. In the new version, the canonical embedding is defined as the ring homomorphism `K →+* ℂ^n` that sends `x ∈ K` to `(φ_₁(x),...,φ_n(x))` where the `φ_i`'s are the complex embeddings of `K`. The new version is easier to compute with since one does not have to distinguish between real and complex embeddings as in the first version. It also enables to prove the following result: the image of the ring of integers by `canonicalEmbedding` is a full ℤ-lattice (see `latticeBasis`) that will be useful in #5650. Note that the original version of the canonical embedding will reappear in #5650 (as `mixedEmbedding`) since it allows for easier volume computation. ESTIMATED CHANGES Modified Mathlib/NumberTheory/NumberField/CanonicalEmbedding.lean + theorem NumberField.canonicalEmbedding.apply_at - theorem NumberField.canonicalEmbedding.apply_at_complex_infinitePlace - theorem NumberField.canonicalEmbedding.apply_at_real_infinitePlace + theorem NumberField.canonicalEmbedding.conj_apply - def NumberField.canonicalEmbedding.equivIntegerLattice +/- def NumberField.canonicalEmbedding.integerLattice + theorem NumberField.canonicalEmbedding.latticeBasis_apply + theorem NumberField.canonicalEmbedding.mem_span_latticeBasis - theorem NumberField.canonicalEmbedding.nontrivial_space - theorem NumberField.canonicalEmbedding.space_rank +/- def NumberField.canonicalEmbedding 2023-08-19 08:16:42 0dd146c feat: zeroLocus_span and some simp attributes (#6650) ESTIMATED CHANGES Modified Mathlib/RingTheory/Nullstellensatz.lean + theorem MvPolynomial.le_zeroLocus_iff_le_vanishingIdeal + theorem MvPolynomial.zeroLocus_span 2023-08-19 02:44:12 2afbd9d feat(CategoryTheory/Bicategory): define adjunctions (#6406) This RP introduces adjunctions and adjoint equivalences in bicategories, and shows that a (non-adjoint) equivalence can be promoted to an adjoint equivalence by upgrading the counit. The constructor of adjoint equivalences only requires the left triangle identities since I will plan to show that it implies the right triangle identities in a separate PR. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Bicategory/Adjunction.lean + def CategoryTheory.Bicategory.Adjunction.id + structure CategoryTheory.Bicategory.Adjunction + def CategoryTheory.Bicategory.Equivalence.id + def CategoryTheory.Bicategory.Equivalence.mkOfAdjointifyCounit + structure CategoryTheory.Bicategory.Equivalence + def CategoryTheory.Bicategory.adjointifyCounit + theorem CategoryTheory.Bicategory.adjointifyCounit_left_triangle + def CategoryTheory.Bicategory.leftZigzag + def CategoryTheory.Bicategory.leftZigzagIso + theorem CategoryTheory.Bicategory.leftZigzagIso_hom + theorem CategoryTheory.Bicategory.leftZigzagIso_inv + theorem CategoryTheory.Bicategory.leftZigzagIso_symm + def CategoryTheory.Bicategory.rightZigzag + def CategoryTheory.Bicategory.rightZigzagIso + theorem CategoryTheory.Bicategory.rightZigzagIso_hom + theorem CategoryTheory.Bicategory.rightZigzagIso_inv + theorem CategoryTheory.Bicategory.rightZigzagIso_symm Modified Mathlib/Tactic/CategoryTheory/BicategoryCoherence.lean Modified Mathlib/Tactic/CategoryTheory/Coherence.lean 2023-08-18 23:14:19 fd3a26e fix(Algebra/IndicatorFunction): minor fixes (#6640) - Fix name in docstrings. - Use `Type*` in `variable`, explicitly use `Sort*`. - Use `to_additive` to generate the additive version. - Drop pattern matching. - Add `Set.mulIndicator_diff'`, the multiplicative version of `Set.indicator_diff`. ESTIMATED CHANGES Modified Mathlib/Algebra/IndicatorFunction.lean - theorem Set.indicator_compl - theorem Set.indicator_diff + theorem Set.mulIndicator_compl' + theorem Set.mulIndicator_diff' +/- theorem Set.mulIndicator_finset_biUnion +/- theorem Set.mulIndicator_finset_biUnion_apply +/- theorem Set.mulIndicator_iInter_apply +/- theorem Set.mulIndicator_iUnion_apply 2023-08-18 23:14:18 7f52802 feat: generalize algebraic pullback instances (#6536) Generalizes RingEquiv.noZeroDivisors and RingEquiv.isDomain to MulEquiv Adds Function.Injective.isLeft/RightCancelMulZero, MulEquiv.toZeroHomClass, and MulEquiv.isField (the last one is useful for #6309) ESTIMATED CHANGES Modified Mathlib/Algebra/GroupWithZero/InjSurj.lean Modified Mathlib/Algebra/Hom/Equiv/Basic.lean Modified Mathlib/Algebra/Ring/Equiv.lean Modified Mathlib/AlgebraicGeometry/Properties.lean Modified Mathlib/RingTheory/DedekindDomain/IntegralClosure.lean Modified Mathlib/RingTheory/Polynomial/Quotient.lean 2023-08-18 21:51:52 6c6f2a6 fix(Data/Sum/Basic): Add ? to Sum-get function names. (#6665) As the `getLeft` and `getRight` functions are to Option, they should have a ? on the end. ESTIMATED CHANGES Modified Mathlib/Data/Sum/Basic.lean - def Sum.getLeft + def Sum.getLeft? + theorem Sum.getLeft?_eq_none_iff + theorem Sum.getLeft?_eq_some_iff + theorem Sum.getLeft?_inl + theorem Sum.getLeft?_inr + theorem Sum.getLeft?_map + theorem Sum.getLeft?_swap - theorem Sum.getLeft_eq_none_iff - theorem Sum.getLeft_eq_some_iff - theorem Sum.getLeft_inl - theorem Sum.getLeft_inr - theorem Sum.getLeft_map - theorem Sum.getLeft_swap - def Sum.getRight + def Sum.getRight? + theorem Sum.getRight?_eq_none_iff + theorem Sum.getRight?_eq_some_iff + theorem Sum.getRight?_inl + theorem Sum.getRight?_inr + theorem Sum.getRight?_map + theorem Sum.getRight?_swap - theorem Sum.getRight_eq_none_iff - theorem Sum.getRight_eq_some_iff - theorem Sum.getRight_inl - theorem Sum.getRight_inr - theorem Sum.getRight_map - theorem Sum.getRight_swap Modified Mathlib/ModelTheory/Encoding.lean Modified Mathlib/Tactic/SolveByElim.lean 2023-08-18 21:51:51 e79a197 fix(LinearAlgebra/Dimension): make LinearMap.rank an abbrev (#6545) Previously, a statement like: ```lean import Mathlib.LinearAlgebra.Dimension import Mathlib.Tactic variable {K : Type} [Field K] variable {V W : Type} [AddCommGroup V] [AddCommGroup W] [Module K V] [Module K W] variable {L : V →ₗ[K] W} open LinearMap (ker) open Module (rank) example : rank K V = L.rank + rank K (ker L) := by sorry ``` required rewriting `LinearMap.rank` before manually finding the existence of `rank_range_add_rank_ker`. After this change though, `exact?` successfully finds the lemma / solves the above. ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/Dimension.lean - def LinearMap.rank 2023-08-18 21:51:50 efc5aeb feat: algebraic maps in LocallyConstant (#6520) We define more algebraic versions of `LocallyConstant.comap` and evaluation of locally constant maps, continuing the work of #6396. ESTIMATED CHANGES Modified Mathlib/Topology/LocallyConstant/Algebra.lean + def LocallyConstant.coeFnAlgHom + def LocallyConstant.coeFnRingHom + def LocallyConstant.coeFnₗ + def LocallyConstant.comapMulHom + def LocallyConstant.comapRingHom + def LocallyConstant.comapₐ +/- def LocallyConstant.comapₗ + def LocallyConstant.congrLeftMulEquiv + def LocallyConstant.congrLeftRingEquiv + def LocallyConstant.congrLeftₐ +/- def LocallyConstant.congrLeftₗ + def LocallyConstant.evalMonoidHom + def LocallyConstant.evalRingHom + def LocallyConstant.evalₐ + def LocallyConstant.evalₗ +/- theorem LocallyConstant.ker_comapₗ Modified Mathlib/Topology/LocallyConstant/Basic.lean 2023-08-18 20:40:40 4e21b60 feat: Fin.cons_one (#6649) ESTIMATED CHANGES Modified Mathlib/Data/Fin/Tuple/Basic.lean + theorem Fin.cons_one Modified Mathlib/Logic/Equiv/Fin.lean 2023-08-18 18:30:59 23e976e refactor(FieldTheory): remove redundant axiom neg_mem' from IntermediateField (#6669) ESTIMATED CHANGES Modified Mathlib/FieldTheory/AbelRuffini.lean Modified Mathlib/FieldTheory/Adjoin.lean Modified Mathlib/FieldTheory/Galois.lean Modified Mathlib/FieldTheory/IntermediateField.lean +/- theorem IntermediateField.mem_mk 2023-08-18 18:30:58 338bb3f feat(GroupTheory/Subgroup/Basic): ker_{fst,snd} (#6639) ESTIMATED CHANGES Modified Mathlib/GroupTheory/Subgroup/Basic.lean + theorem MonoidHom.ker_fst + theorem MonoidHom.ker_snd Modified Mathlib/GroupTheory/Submonoid/Operations.lean + theorem MonoidHom.mker_fst + theorem MonoidHom.mker_snd 2023-08-18 17:06:35 6c02c99 chore: improve cross-links between ULift equivalences (#6660) The names are all over the place, leading me to believe that `ULift.moduleEquiv` didn't exist. Cross-linking to the other equivs (via code and comments) makes them easier to find. ESTIMATED CHANGES Modified Mathlib/Algebra/Module/ULift.lean Modified Mathlib/Topology/Algebra/Module/Basic.lean 2023-08-18 15:36:31 ffc1e0b feat: ordered monoid instances for lexicographic order on Prod, Pi, Finsupp and Dfinsupp (#6625) ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Group/Prod.lean Modified Mathlib/Algebra/Order/Monoid/Prod.lean Modified Mathlib/Data/DFinsupp/Lex.lean Modified Mathlib/Data/Fin/Tuple/BubbleSortInduction.lean Modified Mathlib/Data/Finsupp/Lex.lean Modified Mathlib/Data/Pi/Lex.lean +/- theorem Pi.lex_desc 2023-08-18 14:52:17 96f0a90 feat(LinearAlgebra/Dual): `ULift M` is reflexive (#6661) The TODO for this assumed that `LinearEquiv.ulift` was missing, but in fact it already existed. ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/Dual.lean + theorem Module.equiv 2023-08-18 14:30:24 2e06bd9 feat(Data/Sum): forall_sum_pi (#6658) ESTIMATED CHANGES Modified Mathlib/Data/Sum/Basic.lean + theorem Sum.exists_sum_pi + theorem Sum.forall_sum_pi 2023-08-18 11:04:14 8c53b71 chore: bump to nightly-2023-08-17 (#6019) The major change here is adapting to `simp` failing if it makes no progress. The vast majority of the redundant `simp`s found due to this change were extracted to #6632. ESTIMATED CHANGES Modified Mathlib/Algebra/BigOperators/Finprod.lean Modified Mathlib/Algebra/CubicDiscriminant.lean Modified Mathlib/Algebra/Star/CHSH.lean Modified Mathlib/AlgebraicTopology/SimplexCategory.lean Modified Mathlib/Analysis/Convex/Between.lean Modified Mathlib/Analysis/Convex/Side.lean Modified Mathlib/Data/Finsupp/Defs.lean Modified Mathlib/Data/Multiset/Functor.lean Modified Mathlib/Data/Num/Lemmas.lean Modified Mathlib/Data/UnionFind.lean Modified Mathlib/Data/Vector/Basic.lean Modified Mathlib/FieldTheory/RatFunc.lean Modified Mathlib/Init/Algebra/Order.lean Modified Mathlib/Logic/Equiv/Basic.lean Modified Mathlib/Logic/Equiv/LocalEquiv.lean Modified Mathlib/NumberTheory/Liouville/LiouvilleWith.lean Modified Mathlib/Tactic/CategoryTheory/BicategoryCoherence.lean Modified Mathlib/Tactic/CategoryTheory/Coherence.lean Modified Mathlib/Tactic/DeriveTraversable.lean Modified Mathlib/Tactic/Group.lean Modified Mathlib/Tactic/Lift.lean Modified Mathlib/Tactic/NoncommRing.lean Modified Mathlib/Tactic/NormCast/Tactic.lean Modified Mathlib/Tactic/SimpRw.lean Modified Mathlib/Tactic/SplitIfs.lean Modified Mathlib/Topology/MetricSpace/Infsep.lean Modified lake-manifest.json Modified lean-toolchain Modified test/NoncommRing.lean Modified test/says.lean 2023-08-18 10:07:52 971fb7a fix (LinearAlgebra.Dual): delete `instFunLikeDual` (#6637) It seems that Lean can find `LinearMap.instFunLike` just fine now. Furthermore, `Module.Dual.instFunLikeDual` was causing TC synthesis to fail. We delete it. ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/Dual.lean 2023-08-18 08:08:27 05ef5b4 perf: use Lake's `crlf2lf` (#6647) Speeds up no-op `lake exe cache get` by ~36% ESTIMATED CHANGES Modified Cache/Hashing.lean 2023-08-18 07:22:49 9692874 feat(LinearPMap): Closure and inverse commute (#6563) ESTIMATED CHANGES Modified Mathlib/Topology/Algebra/Module/LinearPMap.lean + theorem LinearPMap.closure_inverse_graph + theorem LinearPMap.inverse_closure + theorem LinearPMap.inverse_isClosable_iff 2023-08-18 07:22:48 28fda0d feat(Data/Nat/Squarefree): Add lemmas about the product of distinct factors of a squarefree `Nat` (#6344) These lemmas will be used to develop a basic theory of arithmetic functions $n \mapsto \prod_{p\mid n} f(p)$. ESTIMATED CHANGES Modified Mathlib/Data/Nat/Squarefree.lean + theorem Nat.prod_factors_toFinset_of_squarefree + theorem Squarefree.nodup_factors 2023-08-18 07:22:47 be7fa69 feat: define `RegularNormedAlgebra` and add the norm on the `Unitization` (#5742) This constructs a norm on the `Unitization 𝕜 A` of a (possibly non-unital) normed algebra `A`, subject to the condition that `ContinuousLinearMap.mul 𝕜 A` is an isometry. A norm on `A` satisfying this property is said to be regular so we add the class `RegularNormedAlgebra` where this construction makes sense. This norm is particularly nice because, among norms on the unitization of a `RegularNormedAlgebra`, this norm is minimal. Moreover, it is the (necessarily unique) C⋆-norm on the unitization when the norm on `A` is a C⋆-norm (see #5393) - [x] depends on: #5741 ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Algebra/Unitization.lean + def Unitization.addEquiv Modified Mathlib/Analysis/NormedSpace/OperatorNorm.lean + theorem ContinuousLinearMap.isometry_mul + theorem ContinuousLinearMap.op_nnnorm_mul + theorem ContinuousLinearMap.op_nnnorm_mul_apply +/- theorem ContinuousLinearMap.op_norm_mul +/- theorem ContinuousLinearMap.op_norm_mul_apply + def NonUnitalAlgHom.Lmul + theorem NonUnitalAlgHom.coe_Lmul Modified Mathlib/Analysis/NormedSpace/Star/Multiplier.lean Added Mathlib/Analysis/NormedSpace/Unitization.lean + theorem Unitization.antilipschitzWith_addEquiv + theorem Unitization.cobounded_eq_aux + theorem Unitization.dist_inr + theorem Unitization.isometry_inr + theorem Unitization.lipschitzWith_addEquiv + theorem Unitization.nndist_inr + theorem Unitization.nnnorm_def + theorem Unitization.nnnorm_eq_sup + theorem Unitization.nnnorm_inr + theorem Unitization.norm_def + theorem Unitization.norm_eq_sup + theorem Unitization.norm_inr + def Unitization.splitMul + theorem Unitization.splitMul_apply + theorem Unitization.splitMul_injective + theorem Unitization.splitMul_injective_of_clm_mul_injective + theorem Unitization.uniformEmbedding_addEquiv + theorem Unitization.uniformity_eq_aux 2023-08-18 06:06:29 fb23284 feat(Data/Rat/Defs): num_eq_zero_iff (#6638) ESTIMATED CHANGES Modified Mathlib/Data/Rat/Defs.lean + theorem Rat.num_eq_zero 2023-08-18 09:50:46+05:18 a016a32 reverting an unwanted addition to CategoryTheory.Quotient ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Quotient.lean - theorem CategoryTheory.Quotient.comp_natTransLift - def CategoryTheory.Quotient.natIsoLift - def CategoryTheory.Quotient.natTransLift - theorem CategoryTheory.Quotient.natTransLift_app - theorem CategoryTheory.Quotient.natTransLift_id - theorem CategoryTheory.Quotient.natTrans_ext 2023-08-18 14:23:16+10:00 5382104 Revert "feat: the induced shift on the target category of a functor" (#6644) ESTIMATED CHANGES 2023-08-18 09:39:02+05:18 268a8e2 trying to revert unwanted commits ESTIMATED CHANGES Modified Mathlib.lean Deleted Mathlib/CategoryTheory/Shift/Induced.lean - def CategoryTheory.Functor.CommShift.ofInduced - theorem CategoryTheory.Functor.commShiftIso_eq_ofInduced - theorem CategoryTheory.HasShift.Induced.add_hom_app_obj - theorem CategoryTheory.HasShift.Induced.add_inv_app_obj - theorem CategoryTheory.HasShift.Induced.zero_hom_app_obj - theorem CategoryTheory.HasShift.Induced.zero_inv_app_obj - theorem CategoryTheory.induced_add_inv_app_obj - theorem CategoryTheory.shiftFunctorAdd_hom_app_obj_of_induced - theorem CategoryTheory.shiftFunctorZero_hom_app_obj_of_induced - theorem CategoryTheory.shiftFunctorZero_inv_app_obj_of_induced - theorem CategoryTheory.shiftFunctor_of_induced Deleted Mathlib/CategoryTheory/Shift/Quotient.lean - theorem CategoryTheory.HasShift.quotient'_aux - def CategoryTheory.Quotient.shiftFunctor' - def CategoryTheory.Quotient.shiftFunctor'Factors 2023-08-18 09:29:12+05:18 3febb8c feat: the shift on a quotient category ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/CategoryTheory/Quotient.lean + theorem CategoryTheory.Quotient.comp_natTransLift + def CategoryTheory.Quotient.natIsoLift + def CategoryTheory.Quotient.natTransLift + theorem CategoryTheory.Quotient.natTransLift_app + theorem CategoryTheory.Quotient.natTransLift_id + theorem CategoryTheory.Quotient.natTrans_ext Added Mathlib/CategoryTheory/Shift/Quotient.lean + theorem CategoryTheory.HasShift.quotient'_aux + def CategoryTheory.Quotient.shiftFunctor' + def CategoryTheory.Quotient.shiftFunctor'Factors 2023-08-18 09:18:13+05:18 071d4f7 Merge remote-tracking branch 'origin/shift_induced' ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Shift/Induced.lean + def CategoryTheory.Functor.CommShift.ofInduced + theorem CategoryTheory.Functor.commShiftIso_eq_ofInduced + theorem CategoryTheory.HasShift.Induced.add_hom_app_obj + theorem CategoryTheory.HasShift.Induced.add_inv_app_obj + theorem CategoryTheory.HasShift.Induced.zero_hom_app_obj + theorem CategoryTheory.HasShift.Induced.zero_inv_app_obj + theorem CategoryTheory.induced_add_inv_app_obj + theorem CategoryTheory.shiftFunctorAdd_hom_app_obj_of_induced + theorem CategoryTheory.shiftFunctorZero_hom_app_obj_of_induced + theorem CategoryTheory.shiftFunctorZero_inv_app_obj_of_induced + theorem CategoryTheory.shiftFunctor_of_induced 2023-08-17 22:17:38 adb6afd chore(MeasureTheory): golf (#6641) - Golf some proofs. - Rename `MeasureTheory.indicatorConst_empty` to `MeasureTheory.indicatorConstLp_empty`. - Change some linebreaks. ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Function/ConditionalExpectation/CondexpL2.lean Modified Mathlib/MeasureTheory/Function/LpSpace.lean + theorem MeasureTheory.indicatorConstLp_empty - theorem MeasureTheory.indicatorConst_empty Modified Mathlib/MeasureTheory/Function/SimpleFuncDenseLp.lean 2023-08-17 21:55:08 3274487 feat(Analysis.LocallyConvex.Barrelled): generalize Banach-Steinhaus theorem (#5676) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/LocallyConvex/Barrelled.lean + theorem Seminorm.continuous_iSup + theorem Seminorm.continuous_of_lowerSemicontinuous Modified Mathlib/Analysis/NormedSpace/BanachSteinhaus.lean - def continuousLinearMapOfTendsto 2023-08-17 17:28:14 916c75c chore: remove unused simps (#6632) ESTIMATED CHANGES Modified Archive/Imo/Imo1988Q6.lean Modified Archive/Sensitivity.lean Modified Mathlib/Algebra/Associated.lean Modified Mathlib/Algebra/BigOperators/Basic.lean Modified Mathlib/Algebra/BigOperators/Ring.lean Modified Mathlib/Algebra/Category/ModuleCat/Adjunctions.lean Modified Mathlib/Algebra/Category/ModuleCat/ChangeOfRings.lean Modified Mathlib/Algebra/CharP/MixedCharZero.lean Modified Mathlib/Algebra/GeomSum.lean Modified Mathlib/Algebra/GroupPower/Basic.lean Modified Mathlib/Algebra/Homology/Homotopy.lean Modified Mathlib/Algebra/Module/Injective.lean Modified Mathlib/Algebra/Module/Torsion.lean Modified Mathlib/Algebra/Order/CompleteField.lean Modified Mathlib/Algebra/QuaternionBasis.lean Modified Mathlib/AlgebraicGeometry/AffineScheme.lean Modified Mathlib/AlgebraicGeometry/Gluing.lean Modified Mathlib/AlgebraicGeometry/LocallyRingedSpace.lean Modified Mathlib/AlgebraicGeometry/PresheafedSpace/HasColimits.lean Modified Mathlib/AlgebraicGeometry/ProjectiveSpectrum/Scheme.lean Modified Mathlib/AlgebraicGeometry/ProjectiveSpectrum/Topology.lean Modified Mathlib/AlgebraicTopology/CechNerve.lean Modified Mathlib/AlgebraicTopology/ExtraDegeneracy.lean Modified Mathlib/AlgebraicTopology/FundamentalGroupoid/Basic.lean Modified Mathlib/AlgebraicTopology/FundamentalGroupoid/Product.lean Modified Mathlib/AlgebraicTopology/SplitSimplicialObject.lean Modified Mathlib/Analysis/Analytic/Composition.lean Modified Mathlib/Analysis/Analytic/Inverse.lean Modified Mathlib/Analysis/Calculus/BumpFunction/FiniteDimension.lean Modified Mathlib/Analysis/Calculus/LHopital.lean Modified Mathlib/Analysis/Convex/Between.lean Modified Mathlib/Analysis/Convex/Side.lean Modified Mathlib/Analysis/Distribution/SchwartzSpace.lean Modified Mathlib/Analysis/Fourier/PoissonSummation.lean Modified Mathlib/Analysis/InnerProductSpace/OfNorm.lean Modified Mathlib/Analysis/InnerProductSpace/Projection.lean Modified Mathlib/Analysis/Matrix.lean +/- theorem Matrix.nnnorm_transpose Modified Mathlib/Analysis/NormedSpace/Exponential.lean Modified Mathlib/Analysis/NormedSpace/OperatorNorm.lean Modified Mathlib/Analysis/NormedSpace/PiLp.lean Modified Mathlib/Analysis/SpecialFunctions/Complex/Arg.lean Modified Mathlib/Analysis/SpecialFunctions/Complex/Log.lean Modified Mathlib/Analysis/SpecialFunctions/Gamma/Basic.lean Modified Mathlib/Analysis/SpecialFunctions/Gamma/Beta.lean Modified Mathlib/Analysis/SpecialFunctions/Gaussian.lean Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Complex.lean Modified Mathlib/CategoryTheory/Abelian/LeftDerived.lean Modified Mathlib/CategoryTheory/CofilteredSystem.lean Modified Mathlib/CategoryTheory/DifferentialObject.lean Modified Mathlib/CategoryTheory/IsConnected.lean Modified Mathlib/CategoryTheory/Limits/Cones.lean Modified Mathlib/CategoryTheory/Limits/Final.lean Modified Mathlib/CategoryTheory/Limits/Preserves/Shapes/Zero.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Images.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Multiequalizer.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Terminal.lean Modified Mathlib/CategoryTheory/Monoidal/Internal/Limits.lean Modified Mathlib/CategoryTheory/Pi/Basic.lean Modified Mathlib/CategoryTheory/Preadditive/HomOrthogonal.lean Modified Mathlib/CategoryTheory/Preadditive/Mat.lean Modified Mathlib/CategoryTheory/Shift/Basic.lean Modified Mathlib/CategoryTheory/Sites/Canonical.lean Modified Mathlib/CategoryTheory/Sites/LeftExact.lean Modified Mathlib/CategoryTheory/Sites/Plus.lean Modified Mathlib/CategoryTheory/Sites/Sheaf.lean Modified Mathlib/Combinatorics/Additive/Behrend.lean Modified Mathlib/Combinatorics/Configuration.lean Modified Mathlib/Combinatorics/Hall/Finite.lean Modified Mathlib/Combinatorics/Quiver/Cast.lean Modified Mathlib/Combinatorics/SetFamily/Compression/UV.lean Modified Mathlib/Computability/DFA.lean Modified Mathlib/Computability/Halting.lean Modified Mathlib/Computability/RegularExpressions.lean Modified Mathlib/Computability/TuringMachine.lean Modified Mathlib/Data/Fin/Basic.lean Modified Mathlib/Data/Fin/VecNotation.lean Modified Mathlib/Data/List/OfFn.lean Modified Mathlib/Data/List/Pairwise.lean Modified Mathlib/Data/List/Perm.lean Modified Mathlib/Data/List/Sublists.lean Modified Mathlib/Data/Nat/Choose/Multinomial.lean Modified Mathlib/Data/Nat/Squarefree.lean Modified Mathlib/Data/PFun.lean Modified Mathlib/Data/PFunctor/Multivariate/W.lean Modified Mathlib/Data/PNat/Factors.lean Modified Mathlib/Data/PNat/Prime.lean Modified Mathlib/Data/Polynomial/Degree/Lemmas.lean Modified Mathlib/Data/Polynomial/UnitTrinomial.lean Modified Mathlib/Data/QPF/Multivariate/Basic.lean Modified Mathlib/Data/QPF/Multivariate/Constructions/Cofix.lean Modified Mathlib/Data/QPF/Univariate/Basic.lean Modified Mathlib/Data/Rat/Star.lean Modified Mathlib/Data/Seq/Parallel.lean Modified Mathlib/Data/Seq/Seq.lean Modified Mathlib/Data/Set/Card.lean Modified Mathlib/Data/Stream/Init.lean Modified Mathlib/FieldTheory/PolynomialGaloisGroup.lean Modified Mathlib/Geometry/Euclidean/Circumcenter.lean Modified Mathlib/Geometry/Manifold/Instances/Real.lean Modified Mathlib/GroupTheory/SchurZassenhaus.lean Modified Mathlib/GroupTheory/Transfer.lean Modified Mathlib/Init/Data/Nat/Lemmas.lean Modified Mathlib/LinearAlgebra/AffineSpace/Independent.lean Modified Mathlib/LinearAlgebra/CliffordAlgebra/Grading.lean Modified Mathlib/LinearAlgebra/DirectSum/Finsupp.lean Modified Mathlib/LinearAlgebra/Dual.lean Modified Mathlib/LinearAlgebra/Lagrange.lean Modified Mathlib/LinearAlgebra/Matrix/ToLinearEquiv.lean Modified Mathlib/LinearAlgebra/QuadraticForm/Prod.lean Modified Mathlib/LinearAlgebra/TensorAlgebra/ToTensorPower.lean Modified Mathlib/LinearAlgebra/TensorPower.lean Modified Mathlib/Logic/Equiv/Embedding.lean Modified Mathlib/MeasureTheory/Constructions/Pi.lean Modified Mathlib/MeasureTheory/Decomposition/Lebesgue.lean Modified Mathlib/MeasureTheory/Decomposition/UnsignedHahn.lean Modified Mathlib/MeasureTheory/Function/AEEqOfIntegral.lean Modified Mathlib/MeasureTheory/Function/LpSpace.lean Modified Mathlib/MeasureTheory/Integral/Average.lean Modified Mathlib/MeasureTheory/Integral/Bochner.lean Modified Mathlib/MeasureTheory/Integral/FundThmCalculus.lean Modified Mathlib/MeasureTheory/Integral/IntervalIntegral.lean Modified Mathlib/MeasureTheory/Integral/Lebesgue.lean Modified Mathlib/MeasureTheory/Integral/SetToL1.lean Modified Mathlib/MeasureTheory/Integral/VitaliCaratheodory.lean Modified Mathlib/MeasureTheory/Measure/FiniteMeasure.lean Modified Mathlib/MeasureTheory/Measure/Haar/OfBasis.lean Modified Mathlib/MeasureTheory/Measure/MeasureSpaceDef.lean Modified Mathlib/MeasureTheory/PiSystem.lean Modified Mathlib/ModelTheory/Semantics.lean Modified Mathlib/NumberTheory/ADEInequality.lean Modified Mathlib/NumberTheory/ArithmeticFunction.lean Modified Mathlib/NumberTheory/Bernoulli.lean Modified Mathlib/NumberTheory/ClassNumber/AdmissibleCardPowDegree.lean Modified Mathlib/NumberTheory/NumberField/Embeddings.lean Modified Mathlib/NumberTheory/Padics/PadicIntegers.lean Modified Mathlib/NumberTheory/Padics/RingHoms.lean Modified Mathlib/NumberTheory/ZetaFunction.lean Modified Mathlib/NumberTheory/ZetaValues.lean Modified Mathlib/Order/RelIso/Basic.lean Modified Mathlib/Order/WellFoundedSet.lean Modified Mathlib/Probability/Kernel/CondCdf.lean Modified Mathlib/Probability/Kernel/MeasurableIntegral.lean Modified Mathlib/Probability/Martingale/BorelCantelli.lean Modified Mathlib/Probability/ProbabilityMassFunction/Uniform.lean Modified Mathlib/Probability/Process/Filtration.lean Modified Mathlib/Probability/Variance.lean Modified Mathlib/RepresentationTheory/Basic.lean Modified Mathlib/RepresentationTheory/GroupCohomology/Resolution.lean Modified Mathlib/RingTheory/Coprime/Lemmas.lean Modified Mathlib/RingTheory/DedekindDomain/AdicValuation.lean Modified Mathlib/RingTheory/DedekindDomain/FiniteAdeleRing.lean Modified Mathlib/RingTheory/GradedAlgebra/HomogeneousLocalization.lean Modified Mathlib/RingTheory/Ideal/Operations.lean Modified Mathlib/RingTheory/MvPolynomial/Symmetric.lean Modified Mathlib/RingTheory/Norm.lean Modified Mathlib/RingTheory/OreLocalization/Basic.lean Modified Mathlib/RingTheory/Polynomial/Basic.lean Modified Mathlib/RingTheory/Polynomial/Cyclotomic/Eval.lean Modified Mathlib/RingTheory/Polynomial/Pochhammer.lean Modified Mathlib/RingTheory/PowerBasis.lean Modified Mathlib/RingTheory/RootsOfUnity/Minpoly.lean Modified Mathlib/RingTheory/Valuation/ValuationSubring.lean Modified Mathlib/RingTheory/WittVector/MulCoeff.lean Modified Mathlib/SetTheory/Game/Basic.lean Modified Mathlib/SetTheory/Ordinal/Notation.lean Modified Mathlib/SetTheory/Surreal/Dyadic.lean Modified Mathlib/Topology/Algebra/Semigroup.lean Modified Mathlib/Topology/Algebra/Valuation.lean Modified Mathlib/Topology/Algebra/ValuedField.lean Modified Mathlib/Topology/Category/TopCat/Limits/Products.lean Modified Mathlib/Topology/ContinuousFunction/Ideals.lean Modified Mathlib/Topology/Gluing.lean Modified Mathlib/Topology/Instances/AddCircle.lean Modified Mathlib/Topology/List.lean Modified Mathlib/Topology/Sheaves/SheafCondition/PairwiseIntersections.lean Modified Mathlib/Topology/Spectral/Hom.lean Modified test/Simps.lean Modified test/says.lean Modified test/solve_by_elim/basic.lean 2023-08-17 14:45:05 da086fb chore: cleanup nolint dupNamespace (#6624) The dupNamespace linter now ignores auxiliary definitions. ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/Equiv.lean 2023-08-17 14:45:04 433c275 feat(LinearAlgebra/BilinearForm/TensorProduct): base change of bilinear forms (#6306) This generalizes the existing `BilinForm.tensorDistrib` to be heterogenous in the rings it uses, such that a base change, ```lean protected def baseChange (B : BilinForm R M₂) : BilinForm A (A ⊗[R] M₂) := ``` falls out as a special case. I do not attempt to generalize `BilinForm.tensorDistribEquiv`. Unfortunately, this changes the defeq as ```diff -(B₁.tmul B₂) (m₁ ⊗ₜ m₂) (m₁' ⊗ₜ m₂') = B₁ m₁ m₁' * B₂ m₂ m₂' +(B₁.tmul B₂) (m₁ ⊗ₜ m₂) (m₁' ⊗ₜ m₂') = B₂ m₂ m₂' • B₁ m₁ m₁' ``` We could fix this by using the right action instead, but that's a lot of work for a very minorly annoying defeq. This also breaks the defeq of `tensorDistribEquiv B = tensorDistrib B`; though the reason is more complicated than the scalar action issue above. It would be fixed if we defined all the homogenous operations on tensor products as special cases of the heterogenous ones, but that's also a lot of work for a very small win. This is a port of work from https://github.com/pygae/lean-ga/pull/31, and almost at the end of the path to a base change of quadratic forms and clifford algebras. This was independently developed at the Leiden workshop as [`BilinForm.baseChange`](https://github.com/alexjbest/ant-lorentz/blob/1f97add294b2d50f99537c15583666d78b0d7e24/AntLorentz/BaseChange.lean#L75-L85), though the results there are not sorry-free. ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/BilinearForm/TensorProduct.lean + theorem BilinForm.IsSymm.baseChange +/- theorem BilinForm.IsSymm.tmul + theorem BilinForm.baseChange_tmul +/- def BilinForm.tensorDistrib + theorem BilinForm.tensorDistribEquiv_tmul + theorem BilinForm.tensorDistribEquiv_toLinearMap +/- theorem BilinForm.tensorDistrib_tmul Modified Mathlib/LinearAlgebra/Dual.lean + def TensorProduct.AlgebraTensorModule.dualDistrib + theorem TensorProduct.AlgebraTensorModule.dualDistrib_apply 2023-08-17 12:57:03 41e3e2b feat: to_additive for pow_boole (#6535) ESTIMATED CHANGES Modified Mathlib/Algebra/BigOperators/Basic.lean Modified Mathlib/Algebra/GroupPower/Basic.lean 2023-08-17 11:39:45 a2f44d1 feat: patch for std4#219 (#6622) ESTIMATED CHANGES Modified Mathlib/Tactic/ToAdditive.lean 2023-08-17 11:16:35 485b736 refactor(Algebra/Lie/BaseChange): use new tensor product machinery (#6628) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Lie/BaseChange.lean +/- theorem LieAlgebra.ExtendScalars.bracket_tmul Deleted Mathlib/CategoryTheory/Shift/Induced.lean - def CategoryTheory.Functor.CommShift.ofInduced - theorem CategoryTheory.Functor.commShiftIso_eq_ofInduced - theorem CategoryTheory.HasShift.Induced.add_hom_app_obj - theorem CategoryTheory.HasShift.Induced.add_inv_app_obj - theorem CategoryTheory.HasShift.Induced.zero_hom_app_obj - theorem CategoryTheory.HasShift.Induced.zero_inv_app_obj - theorem CategoryTheory.induced_add_inv_app_obj - theorem CategoryTheory.shiftFunctorAdd_hom_app_obj_of_induced - theorem CategoryTheory.shiftFunctorZero_hom_app_obj_of_induced - theorem CategoryTheory.shiftFunctorZero_inv_app_obj_of_induced - theorem CategoryTheory.shiftFunctor_of_induced Modified Mathlib/Init/Data/Nat/Lemmas.lean Modified lake-manifest.json 2023-08-17 15:45:21+05:18 f7cf7ed pleasing the linter ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Shift/Induced.lean + def CategoryTheory.Functor.CommShift.ofInduced + theorem CategoryTheory.Functor.commShiftIso_eq_ofInduced + theorem CategoryTheory.HasShift.Induced.add_hom_app_obj + theorem CategoryTheory.HasShift.Induced.add_inv_app_obj + theorem CategoryTheory.HasShift.Induced.zero_hom_app_obj + theorem CategoryTheory.HasShift.Induced.zero_inv_app_obj + theorem CategoryTheory.induced_add_inv_app_obj + theorem CategoryTheory.shiftFunctorAdd_hom_app_obj_of_induced + theorem CategoryTheory.shiftFunctorZero_hom_app_obj_of_induced + theorem CategoryTheory.shiftFunctorZero_inv_app_obj_of_induced + theorem CategoryTheory.shiftFunctor_of_induced Modified Mathlib/Init/Data/Nat/Lemmas.lean Modified lake-manifest.json 2023-08-17 10:19:52 5f5c4e1 fix: patch for std4#193 (#6188) fix: patch for std4#193 ESTIMATED CHANGES Modified Mathlib.lean Deleted Mathlib/CategoryTheory/Shift/Induced.lean - def CategoryTheory.Functor.CommShift.ofInduced - theorem CategoryTheory.Functor.commShiftIso_eq_ofInduced - theorem CategoryTheory.HasShift.Induced.add_hom_app_obj - theorem CategoryTheory.HasShift.Induced.add_inv_app_obj - theorem CategoryTheory.HasShift.Induced.zero_hom_app_obj - theorem CategoryTheory.HasShift.Induced.zero_inv_app_obj - theorem CategoryTheory.induced_add_inv_app_obj - theorem CategoryTheory.shiftFunctorAdd_hom_app_obj_of_induced - theorem CategoryTheory.shiftFunctorZero_hom_app_obj_of_induced - theorem CategoryTheory.shiftFunctorZero_inv_app_obj_of_induced - theorem CategoryTheory.shiftFunctor_of_induced Modified Mathlib/Init/Data/Nat/Lemmas.lean Modified lake-manifest.json 2023-08-17 15:19:01+05:18 820e7a9 feat: the induced shift on the target category of a functor ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Shift/Induced.lean + def CategoryTheory.Functor.CommShift.ofInduced + theorem CategoryTheory.Functor.commShiftIso_eq_ofInduced + theorem CategoryTheory.HasShift.Induced.add_hom_app_obj + theorem CategoryTheory.HasShift.Induced.add_inv_app_obj + theorem CategoryTheory.HasShift.Induced.zero_hom_app_obj + theorem CategoryTheory.HasShift.Induced.zero_inv_app_obj + theorem CategoryTheory.induced_add_inv_app_obj + theorem CategoryTheory.shiftFunctorAdd_hom_app_obj_of_induced + theorem CategoryTheory.shiftFunctorZero_hom_app_obj_of_induced + theorem CategoryTheory.shiftFunctorZero_inv_app_obj_of_induced + theorem CategoryTheory.shiftFunctor_of_induced 2023-08-16 23:07:50 ae74c2e feat: star self dot product eq zero and kernel lemmas apply to matrices not just vectors (#6587) This generalizes two results about vectors to matrices: * `dotProduct_star_self_eq_zero` to `conjTranspose_mul_self_eq_zero` * `dotProduct_self_star_eq_zero` to `self_mul_conjTranspose_eq_zero` It also adds lemmas linking the kernel (under left-multiplication, right-multiplication, `vecMul`, and `mulVec`) of $A$, $A^HA$, and $AA^H$. Some of these lemmas are used in the SVD decomposition theorem of R or C matrices #6042 ESTIMATED CHANGES Modified Mathlib/Data/Matrix/Rank.lean Modified Mathlib/LinearAlgebra/Matrix/DotProduct.lean + theorem Matrix.conjTranspose_mul_self_eq_zero + theorem Matrix.conjTranspose_mul_self_mulVec_eq_zero + theorem Matrix.conjTranspose_mul_self_mul_eq_zero +/- theorem Matrix.dotProduct_self_star_eq_zero +/- theorem Matrix.dotProduct_star_self_eq_zero + theorem Matrix.mul_conjTranspose_mul_self_eq_zero + theorem Matrix.mul_self_mul_conjTranspose_eq_zero + theorem Matrix.self_mul_conjTranspose_eq_zero + theorem Matrix.self_mul_conjTranspose_mulVec_eq_zero + theorem Matrix.self_mul_conjTranspose_mul_eq_zero + theorem Matrix.vecMul_conjTranspose_mul_self_eq_zero + theorem Matrix.vecMul_self_mul_conjTranspose_eq_zero 2023-08-16 21:06:36 d72f88a chore: conjTranspose and transpose are obviously injective (#6615) `conjTranspose` and `transpose` are injective ESTIMATED CHANGES Modified Mathlib/Data/Matrix/Basic.lean + theorem Matrix.conjTranspose_inj + theorem Matrix.conjTranspose_injective +/- theorem Matrix.transpose_eq_zero + theorem Matrix.transpose_inj + theorem Matrix.transpose_injective 2023-08-16 18:57:52 1c48b04 chore: drop some unneeded `maxHeartbeats` (#6564) ESTIMATED CHANGES Modified Mathlib/Analysis/Analytic/Basic.lean Modified Mathlib/Analysis/InnerProductSpace/Basic.lean Modified Mathlib/MeasureTheory/Function/SimpleFuncDenseLp.lean 2023-08-16 18:01:40 8712fab chore(Data/Matrix/Basic): trivial simp lemmas for `row` and `col` (#6614) ESTIMATED CHANGES Modified Mathlib/Data/Matrix/Basic.lean + theorem Matrix.col_eq_zero + theorem Matrix.col_inj + theorem Matrix.col_injective + theorem Matrix.col_zero + theorem Matrix.row_eq_zero + theorem Matrix.row_inj + theorem Matrix.row_injective + theorem Matrix.row_zero 2023-08-16 18:01:39 861d9d4 chore(Data/Matrix/Basic): iff lemmas for (conj)transpose and 0/1 (#6602) ESTIMATED CHANGES Modified Mathlib/Data/Matrix/Basic.lean + theorem Matrix.conjTranspose_eq_one + theorem Matrix.conjTranspose_eq_zero + theorem Matrix.transpose_eq_one + theorem Matrix.transpose_eq_zero 2023-08-16 16:40:55 d8130a5 chore: restate `isNoetherian_of_fg_of_noetherian'` using `Module.Finite` (and rename). (#6609) ESTIMATED CHANGES Modified Mathlib/Algebra/Module/PID.lean Modified Mathlib/LinearAlgebra/FreeModule/PID.lean Modified Mathlib/NumberTheory/Cyclotomic/Basic.lean Modified Mathlib/RingTheory/Adjoin/Tower.lean Modified Mathlib/RingTheory/DedekindDomain/PID.lean Modified Mathlib/RingTheory/Filtration.lean +/- theorem Ideal.Filtration.Stable.of_le +/- theorem Ideal.mem_iInf_smul_pow_eq_bot_iff Modified Mathlib/RingTheory/Noetherian.lean - theorem isNoetherian_of_fg_of_noetherian' + theorem isNoetherian_of_isNoetherianRing_of_finite 2023-08-16 16:11:02 ee8a919 refactor(LinearAlgebra/Matrix/PosDef): Generalize to StarOrderedRing (#6489) I assume this is mathematically sound, though right now we can't generalize many dependencies due to the reliance of `InnerProductSpace`. ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/Matrix/LDL.lean Modified Mathlib/LinearAlgebra/Matrix/PosDef.lean +/- theorem Matrix.PosDef.isHermitian +/- theorem Matrix.PosDef.posSemidef + theorem Matrix.PosDef.re_dotProduct_pos +/- theorem Matrix.PosDef.transpose +/- def Matrix.PosDef + theorem Matrix.PosSemidef.re_dotProduct_nonneg +/- theorem Matrix.PosSemidef.submatrix +/- def Matrix.PosSemidef +/- theorem Matrix.posSemidef_conjTranspose_mul_self +/- theorem Matrix.posSemidef_self_mul_conjTranspose +/- theorem Matrix.posSemidef_submatrix_equiv Modified Mathlib/LinearAlgebra/Matrix/SchurComplement.lean 2023-08-16 18:42:42+03:00 d70c3ce Revert "Two missing lemmas about restricting continuous maps" This reverts commit c978143be562c8f4e2460e805d8d789a654295b1. ESTIMATED CHANGES Modified Mathlib/Topology/Constructions.lean - theorem Continuous.restrict - theorem Continuous.restrictPreimage 2023-08-16 18:29:52+03:00 c978143 Two missing lemmas about restricting continuous maps ESTIMATED CHANGES Modified Mathlib/Topology/Constructions.lean + theorem Continuous.restrict + theorem Continuous.restrictPreimage 2023-08-16 13:05:08 62396ef feat(Data/List/Basic): remove `bind_append` (#6599) This removes `bind_append`, since an identical `append_bind` is already in `std`. ESTIMATED CHANGES Modified Mathlib/Computability/TuringMachine.lean Modified Mathlib/Data/Fin/Tuple/NatAntidiagonal.lean Modified Mathlib/Data/List/Basic.lean - theorem List.bind_append Modified Mathlib/Data/List/Sublists.lean 2023-08-16 12:08:34 ab751e1 fix(NumberTheory/PythagoreanTriples): clear unnecessary hypothesis of `PythagoreanTriple.classification` (#6594) The `rcases` tactic causes this theorem to pull in an unused assumption, as per [this Zulip thread](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/rcases.20modifies.20assumptions/near/371582124). Before this PR, `PythagoreanTriple.classification` includes an unnecessary `h`: ```lean theorem PythagoreanTriple.classification {x y z : ℤ} (h : PythagoreanTriple x y z) : PythagoreanTriple x y z ↔ ∃ k m n, (x = k * (m ^ 2 - n ^ 2) ∧ y = k * (2 * m * n) ∨ x = k * (2 * m * n) ∧ y = k * (m ^ 2 - n ^ 2)) ∧ (z = k * (m ^ 2 + n ^ 2) ∨ z = -k * (m ^ 2 + n ^ 2)) ``` ESTIMATED CHANGES Modified Mathlib/NumberTheory/PythagoreanTriples.lean 2023-08-16 10:50:07 910795a chore(Analysis/NormedSpace/MatrixExponential): remove Lean 3 TC workarounds (#6608) The file still compiles without these, so I guess as predicted we no longer need them. They were certainly needed in Lean 3. ESTIMATED CHANGES Modified Mathlib/Analysis/NormedSpace/MatrixExponential.lean 2023-08-16 10:50:06 ee38ee9 feat(Algebra/GroupWithZero/Units/Lemmas): div_div_div_cancel_left' (#6606) ESTIMATED CHANGES Modified Mathlib/Algebra/GroupWithZero/Units/Lemmas.lean + theorem div_div_div_cancel_left' Modified Mathlib/Analysis/SpecialFunctions/Log/Base.lean 2023-08-16 09:33:16 38c0722 refactor(Data/Matrix): Eliminate `⬝` notation in favor of `HMul` (#6487) The main difficulty here is that `*` has a slightly difference precedence to `⬝`. notably around `smul` and `neg`. The other annoyance is that `↑U ⬝ A ⬝ ↑U⁻¹ : Matrix m m 𝔸` now has to be written `U.val * A * (U⁻¹).val` in order to typecheck. A downside of this change to consider: if you have a goal of `A * (B * C) = (A * B) * C`, `mul_assoc` now gives the illusion of matching, when in fact `Matrix.mul_assoc` is needed. Previously the distinct symbol made it easy to avoid this mistake. On the flipside, there is now no need to rewrite by `Matrix.mul_eq_mul` all the time (indeed, the lemma is now removed). ESTIMATED CHANGES Modified Archive/Wiedijk100Theorems/FriendshipGraphs.lean Modified Mathlib/Algebra/Lie/CartanMatrix.lean Modified Mathlib/Algebra/Lie/Classical.lean +/- theorem LieAlgebra.Orthogonal.jb_transform +/- theorem LieAlgebra.Orthogonal.jd_transform +/- theorem LieAlgebra.SpecialLinear.sl_bracket Modified Mathlib/Algebra/Lie/Matrix.lean Modified Mathlib/Algebra/Lie/SkewAdjoint.lean Modified Mathlib/Analysis/Complex/UpperHalfPlane/Basic.lean Modified Mathlib/Analysis/InnerProductSpace/PiL2.lean Modified Mathlib/Analysis/Matrix.lean +/- theorem Matrix.frobenius_nnnorm_mul +/- theorem Matrix.frobenius_norm_mul +/- theorem Matrix.linfty_op_nnnorm_mul +/- theorem Matrix.linfty_op_norm_mul Modified Mathlib/Analysis/NormedSpace/MatrixExponential.lean Modified Mathlib/Analysis/NormedSpace/PiLp.lean Modified Mathlib/Analysis/NormedSpace/Star/GelfandDuality.lean Modified Mathlib/Analysis/NormedSpace/Star/Matrix.lean Modified Mathlib/CategoryTheory/Limits/Bicones.lean Modified Mathlib/CategoryTheory/Preadditive/HomOrthogonal.lean Modified Mathlib/CategoryTheory/Preadditive/Mat.lean Modified Mathlib/Combinatorics/SimpleGraph/AdjMatrix.lean Modified Mathlib/Combinatorics/SimpleGraph/IncMatrix.lean Modified Mathlib/Data/Matrix/Auto.lean Modified Mathlib/Data/Matrix/Basic.lean +/- theorem Matrix.diag_col_mul_row - theorem Matrix.mul_eq_mul Modified Mathlib/Data/Matrix/Basis.lean Modified Mathlib/Data/Matrix/Block.lean Modified Mathlib/Data/Matrix/ColumnRowPartitioned.lean Modified Mathlib/Data/Matrix/Hadamard.lean +/- theorem Matrix.sum_hadamard_eq Modified Mathlib/Data/Matrix/Invertible.lean - def Invertible.matrixMul - def Invertible.matrixMulLeft - def Invertible.matrixMulRight Modified Mathlib/Data/Matrix/Kronecker.lean Modified Mathlib/Data/Matrix/Notation.lean +/- theorem Matrix.empty_mul +/- theorem Matrix.empty_mul_empty Modified Mathlib/Data/Matrix/PEquiv.lean Modified Mathlib/Data/Matrix/Rank.lean +/- theorem Matrix.rank_conjTranspose_mul_self +/- theorem Matrix.rank_self_mul_conjTranspose +/- theorem Matrix.rank_self_mul_transpose +/- theorem Matrix.rank_transpose_mul_self Modified Mathlib/Data/Matrix/Reflection.lean Modified Mathlib/LinearAlgebra/AffineSpace/Matrix.lean +/- theorem AffineBasis.toMatrix_mul_toMatrix Modified Mathlib/LinearAlgebra/Charpoly/ToMatrix.lean Modified Mathlib/LinearAlgebra/Determinant.lean +/- theorem Matrix.det_comm Modified Mathlib/LinearAlgebra/Matrix/Adjugate.lean +/- theorem Matrix.adjugate_mul +/- theorem Matrix.adjugate_mul_distrib +/- theorem Matrix.mul_adjugate Modified Mathlib/LinearAlgebra/Matrix/Basis.lean Modified Mathlib/LinearAlgebra/Matrix/BilinearForm.lean Modified Mathlib/LinearAlgebra/Matrix/Block.lean Modified Mathlib/LinearAlgebra/Matrix/Charpoly/Coeff.lean Modified Mathlib/LinearAlgebra/Matrix/Circulant.lean Modified Mathlib/LinearAlgebra/Matrix/Determinant.lean +/- theorem Matrix.det_mul +/- theorem Matrix.det_mul_comm +/- theorem Matrix.det_mul_left_comm +/- theorem Matrix.det_mul_right_comm Modified Mathlib/LinearAlgebra/Matrix/GeneralLinearGroup.lean +/- theorem Matrix.GeneralLinearGroup.coe_mul Modified Mathlib/LinearAlgebra/Matrix/Hermitian.lean +/- theorem Matrix.isHermitian_mul_conjTranspose_self +/- theorem Matrix.isHermitian_transpose_mul_self Modified Mathlib/LinearAlgebra/Matrix/InvariantBasisNumber.lean +/- theorem Matrix.square_of_invertible Modified Mathlib/LinearAlgebra/Matrix/IsDiag.lean Modified Mathlib/LinearAlgebra/Matrix/LDL.lean +/- theorem LDL.diag_eq_lowerInv_conj +/- theorem LDL.lower_conj_diag Modified Mathlib/LinearAlgebra/Matrix/Nondegenerate.lean Modified Mathlib/LinearAlgebra/Matrix/NonsingularInverse.lean +/- def Matrix.detInvertibleOfLeftInverse +/- def Matrix.detInvertibleOfRightInverse +/- theorem Matrix.det_conj +/- theorem Matrix.det_ne_zero_of_left_inverse +/- theorem Matrix.det_ne_zero_of_right_inverse +/- theorem Matrix.inv_eq_left_inv +/- theorem Matrix.inv_eq_right_inv +/- theorem Matrix.inv_mul_cancel_left_of_invertible +/- theorem Matrix.inv_mul_cancel_right_of_invertible +/- theorem Matrix.inv_mul_of_invertible +/- def Matrix.invertibleOfLeftInverse +/- def Matrix.invertibleOfRightInverse +/- theorem Matrix.isUnit_det_of_left_inverse +/- theorem Matrix.isUnit_det_of_right_inverse +/- theorem Matrix.isUnit_of_left_inverse +/- theorem Matrix.isUnit_of_right_inverse +/- theorem Matrix.left_inv_eq_left_inv +/- theorem Matrix.mul_eq_one_comm +/- theorem Matrix.mul_inv_cancel_left_of_invertible +/- theorem Matrix.mul_inv_cancel_right_of_invertible +/- theorem Matrix.mul_inv_of_invertible +/- theorem Matrix.mul_inv_rev +/- theorem Matrix.mul_left_inj_of_invertible +/- theorem Matrix.mul_nonsing_inv +/- theorem Matrix.mul_nonsing_inv_cancel_left +/- theorem Matrix.mul_nonsing_inv_cancel_right +/- theorem Matrix.mul_right_inj_of_invertible +/- theorem Matrix.nonsing_inv_cancel_or_zero +/- theorem Matrix.nonsing_inv_mul +/- theorem Matrix.nonsing_inv_mul_cancel_left +/- theorem Matrix.nonsing_inv_mul_cancel_right +/- theorem Matrix.right_inv_eq_left_inv +/- theorem Matrix.right_inv_eq_right_inv Modified Mathlib/LinearAlgebra/Matrix/PosDef.lean +/- theorem Matrix.posSemidef_conjTranspose_mul_self +/- theorem Matrix.posSemidef_self_mul_conjTranspose Modified Mathlib/LinearAlgebra/Matrix/Reindex.lean Modified Mathlib/LinearAlgebra/Matrix/SchurComplement.lean +/- theorem Matrix.det_one_add_col_mul_row Modified Mathlib/LinearAlgebra/Matrix/SesquilinearForm.lean Modified Mathlib/LinearAlgebra/Matrix/SpecialLinearGroup.lean +/- theorem Matrix.SpecialLinearGroup.coe_mul Modified Mathlib/LinearAlgebra/Matrix/Spectrum.lean +/- theorem Matrix.IsHermitian.eigenvectorMatrix_mul_inv Modified Mathlib/LinearAlgebra/Matrix/Symmetric.lean Modified Mathlib/LinearAlgebra/Matrix/ToLin.lean - theorem Matrix.toLinAlgEquiv'_mul +/- def Matrix.toLinOfInv Modified Mathlib/LinearAlgebra/Matrix/ToLinearEquiv.lean Modified Mathlib/LinearAlgebra/Matrix/Trace.lean Modified Mathlib/LinearAlgebra/Matrix/Transvection.lean +/- theorem Matrix.TransvectionStruct.inv_mul +/- theorem Matrix.TransvectionStruct.mul_inv Modified Mathlib/LinearAlgebra/Matrix/ZPow.lean +/- theorem Matrix.pow_inv_comm' Modified Mathlib/LinearAlgebra/QuadraticForm/Basic.lean Modified Mathlib/LinearAlgebra/Span.lean Modified Mathlib/LinearAlgebra/SymplecticGroup.lean +/- theorem Matrix.J_squared +/- theorem SymplecticGroup.coe_inv +/- theorem SymplecticGroup.inv_left_mul_aux +/- theorem SymplecticGroup.mem_iff' Modified Mathlib/LinearAlgebra/Trace.lean Modified Mathlib/LinearAlgebra/UnitaryGroup.lean +/- theorem Matrix.UnitaryGroup.mul_apply +/- theorem Matrix.UnitaryGroup.mul_val +/- theorem Matrix.UnitaryGroup.star_mul_self Modified Mathlib/LinearAlgebra/Vandermonde.lean Modified Mathlib/NumberTheory/ModularForms/CongruenceSubgroups.lean Modified Mathlib/NumberTheory/ModularForms/SlashActions.lean Modified Mathlib/NumberTheory/RamificationInertia.lean Modified Mathlib/RingTheory/MatrixAlgebra.lean Modified Mathlib/RingTheory/PolynomialAlgebra.lean Modified Mathlib/RingTheory/Trace.lean Modified Mathlib/Tactic/ScopedNS.lean Modified Mathlib/Topology/Algebra/Nonarchimedean/Bases.lean Modified Mathlib/Topology/Instances/Matrix.lean Modified test/matrix.lean 2023-08-16 08:04:41 0bfa84d feat: show universe arguments when printing `Category` (#6550) Arguably we only want one universe argument, but that's not supported. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Category/Basic.lean 2023-08-16 05:50:38 d66f29e feat: add `PUnit.completeLinearOrder` (#6585) ESTIMATED CHANGES Modified Mathlib/Order/CompleteBooleanAlgebra.lean 2023-08-16 05:50:37 6c1ea0d chore(Topology/Bases): minor golf (#6584) ESTIMATED CHANGES Modified Mathlib/Topology/Bases.lean 2023-08-16 04:08:02 979bb0f feat: computation of Levenshtein edit distance (#6117) Subsequent PRs will prove properties of this definition, and implement the `rw_search` tactic using it. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Data/List/EditDistance/Defs.lean + structure Levenshtein.Cost + def Levenshtein.defaultCost + def Levenshtein.impl + theorem Levenshtein.impl_cons + theorem Levenshtein.impl_cons_fst_zero + theorem Levenshtein.impl_length + theorem List.eq_of_length_one + def levenshtein + theorem levenshtein_cons_cons + theorem levenshtein_cons_nil + theorem levenshtein_nil_cons + theorem levenshtein_nil_nil + def suffixLevenshtein + theorem suffixLevenshtein_cons_cons_fst_get_zero + theorem suffixLevenshtein_cons₁ + theorem suffixLevenshtein_cons₁_aux + theorem suffixLevenshtein_cons₁_fst + theorem suffixLevenshtein_cons₂ + theorem suffixLevenshtein_eq + theorem suffixLevenshtein_eq_tails_map + theorem suffixLevenshtein_length + theorem suffixLevenshtein_nil' + theorem suffixLevenshtein_nil_nil 2023-08-15 23:11:50 3045aef chore: fix tests after #6528 disabled autoimplicits (#6597) These work on the command line and therefore didn't fail in CI (as `lake env lean blah.lean` doesn't pick up the extra lean args?) but as soon as you open one of these files in vscode you get a sea of red errors. I tried to fix a couple in a minimal way, if there was just for example one universe level missing, for most files the "fix" for now is just reenabling autoimplicits for the file. This revealed a couple of tests that were incorrectly using an implicit type when they thought they were using Nat. Two files had issues, that we may want to follow up on `test/superscript.lean` which failed even with autoimplicits turned on when using an autoimplicit superscript variable (unsure if this was intentional). And the `ToExpr` deriving handler seems to rely on autoimplicits somehow to work properly in the presence of universe, if an explicit universe variable is added there is still an error. ESTIMATED CHANGES Modified test/Alias.lean +/- def Alias.baz +/- def Alias.foo Modified test/CategoryTheory/Elementwise.lean Modified test/CommDiag.lean Modified test/Continuity.lean Modified test/DeriveFintype.lean Modified test/DeriveToExpr.lean Modified test/ExtractGoal.lean Modified test/FBinop.lean Modified test/Find.lean +/- theorem add_comm_zero Modified test/GCongr/mod.lean Modified test/GeneralizeProofs.lean Modified test/HigherOrder.lean Modified test/Inhabit.lean Modified test/InstanceTransparency.lean Modified test/LibrarySearch/basic.lean Modified test/LiftLets.lean Modified test/MfldSetTac.lean Modified test/MkIffOfInductive.lean Modified test/NthRewrite.lean Modified test/Recall.lean Modified test/Simps.lean Modified test/Tauto.lean Modified test/Use.lean Modified test/Variable.lean Modified test/abel.lean Modified test/apply_fun.lean Modified test/apply_rules.lean Modified test/apply_with.lean Modified test/borelize.lean Modified test/byContra.lean Modified test/cancel_denoms.lean Modified test/cases.lean Modified test/casesm.lean Modified test/change.lean Modified test/choose.lean Modified test/congr.lean Modified test/convert.lean Modified test/eqns.lean +/- def transpose +/- theorem transpose_apply +/- theorem transpose_const Modified test/irreducibleDef.lean Modified test/linarith.lean Modified test/linear_combination.lean Modified test/nomatch.lean Modified test/nontriviality.lean Modified test/norm_cast.lean Modified test/norm_num.lean Modified test/notation3.lean Modified test/positivity.lean Modified test/propose.lean Modified test/push_neg.lean Modified test/restate_axiom.lean Modified test/rfl.lean Modified test/ring.lean Modified test/rsuffices.lean Modified test/says.lean Modified test/simp_intro.lean Modified test/solve_by_elim/basic.lean Modified test/spread.lean Modified test/superscript.lean Modified test/symm.lean Modified test/tfae.lean Modified test/toAdditive.lean Modified test/toAdditiveIrredDef.lean Modified test/trans.lean 2023-08-15 21:46:27 ae892b7 chore: bump to nightly-2023-08-15 (#6592) ESTIMATED CHANGES Modified lean-toolchain 2023-08-15 20:14:00 2c51fd6 feat: add some regularity results for multivariable polynomials (#6541) The goal (which is achieved) is to make things like this work: ```lean example {s : Finset σ} {n : σ} {k : ℕ} {p : MvPolynomial σ R} : p * (∏ n in s, X n) * X n ^ k = 0 ↔ p = 0 := by simp ``` ESTIMATED CHANGES Modified Mathlib/Algebra/Regular/Pow.lean + theorem IsLeftRegular.prod + theorem IsRegular.prod + theorem IsRightRegular.prod Modified Mathlib/Data/MvPolynomial/Basic.lean + theorem MvPolynomial.isRegular_X + theorem MvPolynomial.isRegular_X_pow + theorem MvPolynomial.isRegular_prod_X 2023-08-15 19:39:45 ca250c5 feat(RingTheory/Artinian) : prime ideals are maximal in aritinial rings (#6309) prime ideals in artinian rings are maximal ESTIMATED CHANGES Modified Mathlib/RingTheory/Artinian.lean 2023-08-15 16:57:11 b5ece30 feat: weaken assumptions for `IsCompact.existsIsLeast` and all of its variations (#6345) As discussed a while ago on [Zulip](https://leanprover.zulipchat.com/#narrow/stream/217875-Is-there-code-for-X.3F/topic/upper.20semicontinuous.20functions.20are.20bounded.20below.20compact), we introduce classes expressing that a certain topology has closed `Ici`s/`Iic`s, which is sufficient to get boundedness of compacts on the desired side. The main application is that these now apply to types satisfying [UpperTopology](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Topology/Order/LowerUpperTopology.html#UpperTopology)/[LowerTopology](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Topology/Order/LowerUpperTopology.html#LowerTopology), which will allow us to apply these compactness results to semicontinuous functions. The naming was discussed [here](https://leanprover.zulipchat.com/#narrow/stream/217875-Is-there-code-for-X.3F/topic/upper.20semicontinuous.20functions.20are.20bounded.20below.20compact/near/383557463) ESTIMATED CHANGES Modified Mathlib/Topology/Algebra/Order/Compact.lean +/- theorem Continuous.bddAbove_range_of_hasCompactMulSupport +/- theorem Continuous.bddBelow_range_of_hasCompactMulSupport +/- theorem Continuous.exists_forall_ge' +/- theorem Continuous.exists_forall_ge +/- theorem Continuous.exists_forall_ge_of_hasCompactMulSupport +/- theorem Continuous.exists_forall_le' +/- theorem Continuous.exists_forall_le +/- theorem Continuous.exists_forall_le_of_hasCompactMulSupport +/- theorem ContinuousOn.exists_forall_ge' +/- theorem ContinuousOn.exists_forall_le' +/- theorem ContinuousOn.exists_isMaxOn' +/- theorem ContinuousOn.exists_isMinOn' +/- theorem IsCompact.bddAbove +/- theorem IsCompact.bddAbove_image +/- theorem IsCompact.bddBelow +/- theorem IsCompact.bddBelow_image +/- theorem IsCompact.exists_forall_ge +/- theorem IsCompact.exists_forall_le +/- theorem IsCompact.exists_isGLB +/- theorem IsCompact.exists_isGreatest +/- theorem IsCompact.exists_isLUB +/- theorem IsCompact.exists_isLeast + theorem IsCompact.exists_isLocalMax_mem_open +/- theorem IsCompact.exists_isLocalMinOn_mem_subset +/- theorem IsCompact.exists_isLocalMin_mem_open +/- theorem IsCompact.exists_isMaxOn + theorem IsCompact.exists_isMaxOn_mem_subset +/- theorem IsCompact.exists_isMinOn +/- theorem IsCompact.exists_isMinOn_mem_subset +/- theorem IsCompact.exists_sInf_image_eq +/- theorem IsCompact.exists_sInf_image_eq_and_le +/- theorem IsCompact.exists_sSup_image_eq +/- theorem IsCompact.exists_sSup_image_eq_and_ge +/- theorem IsCompact.isGLB_sInf +/- theorem IsCompact.isGreatest_sSup +/- theorem IsCompact.isLUB_sSup +/- theorem IsCompact.isLeast_sInf +/- theorem IsCompact.lt_sInf_iff_of_continuous +/- theorem IsCompact.sInf_mem +/- theorem IsCompact.sSup_lt_iff_of_continuous +/- theorem IsCompact.sSup_mem Modified Mathlib/Topology/Order/Basic.lean - theorem isClosed_ge' - theorem isClosed_le' Modified Mathlib/Topology/Order/LowerUpperTopology.lean - theorem LowerTopology.isClosed_Ici - theorem UpperTopology.isClosed_Iic 2023-08-15 15:52:55 f3df63e chore: move all UniformSpace-related notations in scope Uniformity (#6565) Currently we have [Uniformity.term𝓤](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Topology/UniformSpace/Basic.html#Uniformity.term%F0%9D%93%A4) but [Topology.«term𝓤[_]»](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Topology/UniformSpace/Basic.html#Topology.%C2%ABterm%F0%9D%93%A4[_]%C2%BB), which is really confusing. ESTIMATED CHANGES Modified Mathlib/Topology/UniformSpace/AbsoluteValue.lean Modified Mathlib/Topology/UniformSpace/Basic.lean 2023-08-15 15:52:54 0e5c7d3 feat: a function which is zero as a distribution vanishes almost everywhere (#6532) We first prove this on real manifolds and then deduce it for vector spaces to avoid duplication. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/Distribution/AEEqOfIntegralContDiff.lean + theorem ae_eq_of_integral_contDiff_smul_eq + theorem ae_eq_of_integral_smooth_smul_eq + theorem ae_eq_zero_of_integral_contDiff_smul_eq_zero + theorem ae_eq_zero_of_integral_smooth_smul_eq_zero Modified Mathlib/Topology/MetricSpace/HausdorffDistance.lean + theorem IsCompact.exists_isCompact_cthickening 2023-08-15 15:52:52 ec5f4d9 feat: add `Filter.Eventually.self_of_nhdsSet` (#6497) Also add `subset_of_mem_nhdsSet`. From the Sphere Eversion Project. ESTIMATED CHANGES Modified Mathlib/Topology/NhdsSet.lean + theorem Filter.Eventually.self_of_nhdsSet +/- theorem nhdsSet_singleton + theorem subset_of_mem_nhdsSet 2023-08-15 14:56:56 63cf080 fix: remove no-break spaces in Topology.UniformSpace.Basic (#6560) This caused titles to not show properly in docs. ESTIMATED CHANGES Modified Mathlib/Topology/UniformSpace/Basic.lean 2023-08-15 13:30:39 280a9f5 chore: golf some proofs introduced in #6360 (#6405) Notably, getting rid of some injectivity restrictions makes some later proofs simpler. ESTIMATED CHANGES Modified Mathlib/Algebra/Category/ModuleCat/Free.lean + def ModuleCat.Basis.ofShortExact +/- theorem ModuleCat.disjoint_span_sum - theorem ModuleCat.family_injective_shortExact +/- theorem ModuleCat.span_rightExact Modified Mathlib/LinearAlgebra/LinearIndependent.lean - theorem Submodule.ker_range_disjoint + theorem Submodule.range_ker_disjoint 2023-08-15 08:08:46 17a54df feat: intervals with rational bounds generate the real Borel sigma algebra (#6490) Add `borel_eq_generateFrom_Ioi_rat`, `borel_eq_generateFrom_Ici_rat`, `borel_eq_generateFrom_Iic_rat` (we already have the `Iio` result). Also prove that these sets of intervals are pi-systems. ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Archimedean.lean + theorem le_iff_forall_lt_rat_imp_le + theorem le_iff_forall_rat_lt_imp_le Modified Mathlib/MeasureTheory/Constructions/BorelSpace/Basic.lean + theorem Real.borel_eq_generateFrom_Ici_rat + theorem Real.borel_eq_generateFrom_Iic_rat + theorem Real.borel_eq_generateFrom_Ioi_rat + theorem Real.isPiSystem_Ici_rat + theorem Real.isPiSystem_Iic_rat + theorem Real.isPiSystem_Iio_rat + theorem Real.isPiSystem_Ioi_rat Modified Mathlib/MeasureTheory/PiSystem.lean + theorem isPiSystem_Ici + theorem isPiSystem_Iic + theorem isPiSystem_image_Ici + theorem isPiSystem_image_Iic Modified Mathlib/Probability/Kernel/CondCdf.lean - theorem isPiSystem_Ici - theorem isPiSystem_Iic 2023-08-15 07:18:08 8ce4d53 feat: add `auto-merge-after-CI` label (#6415) Immediately after the `awaiting-CI` label is removed, check if the PR is labelled `auto-merge-after-CI`, and if so have the mathlib4 bot issue a `bors merge`. Note that for now bors is not actually listening to the mathlib4 bot, so we will have to enable that once this has been tested. The main use case here is generating automatic bump PRs so that we can keep up with Lean 4 nightly with less busy work. ESTIMATED CHANGES Modified .github/workflows/bors.yml Modified .github/workflows/build.yml Modified .github/workflows/build.yml.in Modified .github/workflows/build_fork.yml 2023-08-15 07:18:07 8840a96 feat: turn a cocone into a functor to costructured arrows (#6369) After making this PR I noticed that this already existed in `Functor/Flat.lean`, so I unified the two developments. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Functor/Flat.lean - def CategoryTheory.StructuredArrowCone.diagramToCone - def CategoryTheory.StructuredArrowCone.toCone - def CategoryTheory.StructuredArrowCone.toDiagram Modified Mathlib/CategoryTheory/Limits/ConeCategory.lean + def CategoryTheory.Limits.Cocone.fromCostructuredArrow + def CategoryTheory.Limits.Cocone.toCostructuredArrow + def CategoryTheory.Limits.Cocone.toCostructuredArrowCocone + def CategoryTheory.Limits.Cocone.toCostructuredArrowCompProj + def CategoryTheory.Limits.Cocone.toCostructuredArrowCompToOverCompForget + theorem CategoryTheory.Limits.Cocone.toCostructuredArrow_comp_proj + theorem CategoryTheory.Limits.Cocone.toCostructuredArrow_comp_toOver_comp_forget + def CategoryTheory.Limits.Cone.fromStructuredArrow + def CategoryTheory.Limits.Cone.toStructuredArrow + def CategoryTheory.Limits.Cone.toStructuredArrowCompProj + def CategoryTheory.Limits.Cone.toStructuredArrowCompToUnderCompForget + def CategoryTheory.Limits.Cone.toStructuredArrowCone + theorem CategoryTheory.Limits.Cone.toStructuredArrow_comp_proj + theorem CategoryTheory.Limits.Cone.toStructuredArrow_comp_toUnder_comp_forget Modified Mathlib/CategoryTheory/Sites/CoverPreserving.lean 2023-08-15 06:23:32 72b6e76 feat(CategoryTheory/Bicategory): composition as a functor (#6581) This PR shows that the composition of 1-morphism is a functor, and the associators and the unitors are natural isomorphisms. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Bicategory/Basic.lean + def CategoryTheory.Bicategory.associatorNatIsoLeft + def CategoryTheory.Bicategory.associatorNatIsoMiddle + def CategoryTheory.Bicategory.associatorNatIsoRight + def CategoryTheory.Bicategory.leftUnitorNatIso + def CategoryTheory.Bicategory.postcomp + def CategoryTheory.Bicategory.postcomposing + def CategoryTheory.Bicategory.precomp + def CategoryTheory.Bicategory.precomposing + def CategoryTheory.Bicategory.rightUnitorNatIso 2023-08-15 04:44:54 63ae2f4 feat(RingTheory/MvPolynomial/NewtonIdentities): Add proof of Newton's identities (#6139) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Data/Fintype/Powerset.lean Modified Mathlib/RingTheory/MvPolynomial/Basic.lean Added Mathlib/RingTheory/MvPolynomial/NewtonIdentities.lean + theorem MvPolynomial.mul_esymm_eq_sum + theorem MvPolynomial.psum_eq_mul_esymm_sub_sum + theorem MvPolynomial.sum_antidiagonal_card_esymm_psum_eq_zero Modified Mathlib/RingTheory/MvPolynomial/Symmetric.lean + def MvPolynomial.psum + theorem MvPolynomial.psum_def + theorem MvPolynomial.psum_isSymmetric + theorem MvPolynomial.psum_one + theorem MvPolynomial.psum_zero + theorem MvPolynomial.rename_psum Modified docs/references.bib Modified docs/undergrad.yaml 2023-08-15 03:15:38 a075669 feat: proof of Gershgorin's circle theorem and some applications (#6436) Prove [Gershgorin circle theorem](https://en.wikipedia.org/wiki/Gershgorin_circle_theorem) and some applications that will be useful for the proof of Dirichlet's unit theorem #5960 ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/LinearAlgebra/Matrix/Gershgorin.lean + theorem det_ne_zero_of_sum_col_lt_diag + theorem det_ne_zero_of_sum_row_lt_diag + theorem eigenvalue_mem_ball Modified Mathlib/LinearAlgebra/Matrix/ToLinearEquiv.lean + theorem Matrix.det_ne_zero_of_sum_col_pos + theorem Matrix.det_ne_zero_of_sum_row_pos 2023-08-14 23:54:23 7be90e4 feat(LinearAlgebra/TensorProduct/Opposite): `Aᵐᵒᵖ ⊗[R] Bᵐᵒᵖ ≃ₐ[S] (A ⊗[R] B)ᵐᵒᵖ` (#6555) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/LinearAlgebra/TensorProduct/Opposite.lean + def Algebra.TensorProduct.opAlgEquiv + theorem Algebra.TensorProduct.opAlgEquiv_apply + theorem Algebra.TensorProduct.opAlgEquiv_symm_apply + theorem Algebra.TensorProduct.opAlgEquiv_symm_tmul + theorem Algebra.TensorProduct.opAlgEquiv_tmul 2023-08-14 23:29:39 90a4745 feat: cleanup lint-style a bit (#6549) Removing some linters and error codes that are not Lean 4 relevant ESTIMATED CHANGES Modified scripts/lint-style.py Modified scripts/style-exceptions.txt 2023-08-14 23:29:38 23eea43 feat: define the trace / killing forms on a Lie algebra (#6308) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Lie/Engel.lean Added Mathlib/Algebra/Lie/Killing.lean + theorem LieModule.traceForm_apply_apply + theorem LieModule.traceForm_apply_lie_apply + theorem LieModule.traceForm_comm + theorem LieModule.traceForm_flip Modified Mathlib/Algebra/Lie/Nilpotent.lean + theorem LieModule.exists_forall_pow_toEndomorphism_eq_zero + theorem LieModule.exists_lowerCentralSeries_eq_bot_of_isNilpotent + theorem LieModule.isNilpotent_toEndomorphism_of_isNilpotent + theorem LieModule.isNilpotent_toEndomorphism_of_isNilpotent₂ + theorem LieModule.iterate_toEndomorphism_mem_lowerCentralSeries₂ - theorem LieModule.nilpotent_endo_of_nilpotent_module Modified Mathlib/LinearAlgebra/Trace.lean + theorem LinearMap.trace_comp_cycle' + theorem LinearMap.trace_comp_cycle + theorem LinearMap.trace_mul_cycle' + theorem LinearMap.trace_mul_cycle 2023-08-14 20:58:26 75bcb18 chore: refactor perfect rings / fields (#6182) The main changes are: - we replace the data-bearing `PerfectRing` typeclass with a `Prop`-valued (non-constructive) version, - we introduce a new typeclass `PerfectField`, - we add a proof that a perfect field of positive characteristic has surjective Frobenius map, - we add some basic facts such as perfection of finite rings / fields and products of perfect rings. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Hom/Iterate.lean - theorem MonoidHom.iterate_map_mul - theorem RingHom.iterate_map_add - theorem RingHom.iterate_map_mul + theorem iterate_map_mul Modified Mathlib/Data/Polynomial/Derivative.lean - theorem Polynomial.iterate_derivative_add Modified Mathlib/Data/Set/Pointwise/Iterate.lean Modified Mathlib/FieldTheory/IsAlgClosed/Basic.lean Added Mathlib/FieldTheory/Perfect.lean + theorem PerfectRing.ofSurjective + theorem PerfectRing.toPerfectField + theorem bijective_frobenius + theorem coe_frobeniusEquiv + theorem frobeniusEquiv_symm_apply_frobenius + theorem frobeniusEquiv_symm_comp_frobenius + theorem frobeniusEquiv_symm_pow_p + theorem frobenius_apply_frobeniusEquiv_symm + theorem frobenius_comp_frobeniusEquiv_symm + theorem injective_frobenius + theorem injective_pow_p + theorem not_irreducible_expand + theorem polynomial_expand_eq + theorem surjective_frobenius Modified Mathlib/FieldTheory/PerfectClosure.lean - theorem MonoidHom.map_iterate_pthRoot - theorem MonoidHom.map_pthRoot +/- theorem PerfectClosure.eq_iff - theorem PerfectClosure.eq_pthRoot + theorem PerfectClosure.iterate_frobenius_mk - def PerfectClosure.lift + theorem PerfectClosure.mk_succ_pow - theorem RingHom.map_iterate_pthRoot - theorem RingHom.map_pthRoot - theorem coe_frobeniusEquiv - theorem coe_frobeniusEquiv_symm - theorem commute_frobenius_pthRoot - theorem eq_pthRoot_iff - def frobeniusEquiv - theorem frobenius_pthRoot - theorem injective_pow_p - theorem leftInverse_pthRoot_frobenius - def pthRoot - theorem pthRoot_eq_iff - theorem pthRoot_frobenius - theorem pthRoot_pow_p' - theorem pthRoot_pow_p - theorem rightInverse_pthRoot_frobenius Modified Mathlib/FieldTheory/SplittingField/Construction.lean Modified Mathlib/RingTheory/Perfection.lean - def Perfection.lift Modified Mathlib/RingTheory/WittVector/Frobenius.lean 2023-08-14 19:43:12 d1cd996 feat: use junk value in the definition of conditionally complete linear order (#6571) Currently, in a conditionally complete linear order, the supremum of an unbounded set hasn't any specific property. However, in all instances in mathlib, all unbounded sets have the same supremum. This PR adds this requirement in mathlib. This will be convenient to remove boundedness assumptions in measurability statements. ESTIMATED CHANGES Modified Mathlib/Algebra/Tropical/Lattice.lean Modified Mathlib/Data/Int/ConditionallyCompleteOrder.lean Modified Mathlib/Data/Nat/Lattice.lean Modified Mathlib/Data/Real/Basic.lean Modified Mathlib/Order/CompleteLatticeIntervals.lean + theorem sSup_subtype_eq_sSup_univ_of_not_bddAbove Modified Mathlib/Order/ConditionallyCompleteLattice/Basic.lean + theorem csInf_eq_csInf_of_forall_exists_le + theorem csInf_of_not_bddBelow + theorem csSup_eq_csSup_of_forall_exists_le + theorem csSup_of_not_bddAbove 2023-08-14 19:43:11 704efa4 feat: lemmas about parity and `Nat.antidiagonal` (#6540) ESTIMATED CHANGES Modified Mathlib/Algebra/GroupPower/Ring.lean Modified Mathlib/Algebra/Parity.lean + theorem Even.add_one + theorem Even.odd_add + theorem Even.one_add + theorem odd_add_one_self' + theorem odd_add_one_self + theorem odd_add_self_one' + theorem one_add_self_self Modified Mathlib/Data/Finset/NatAntidiagonal.lean + theorem Finset.Nat.antidiagonal_filter_fst_le_of_le + theorem Finset.Nat.antidiagonal_filter_le_fst_of_le + theorem Finset.Nat.antidiagonal_filter_le_snd_of_le + theorem Finset.Nat.antidiagonal_filter_snd_le_of_le + theorem Finset.Nat.map_prodComm_antidiagonal +/- theorem Finset.Nat.map_swap_antidiagonal Modified Mathlib/NumberTheory/Cyclotomic/Discriminant.lean 2023-08-14 19:43:10 1377815 feat(Algebra/Algebra/Opposite): `A ≃ₐ[R] Aᵐᵒᵖᵐᵒᵖ` and `(A ≃ₐ[R] Bᵐᵒᵖ) ≃ (Aᵐᵒᵖ ≃ₐ[R] B)` (#6525) This also adds the missing `AlgEquiv.equivCongr` as a more general version of `AlgEquiv.autCongr`. ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/Equiv.lean +/- def AlgEquiv.arrowCongr +/- theorem AlgEquiv.arrowCongr_comp +/- theorem AlgEquiv.arrowCongr_symm +/- theorem AlgEquiv.arrowCongr_trans + def AlgEquiv.equivCongr + theorem AlgEquiv.equivCongr_refl + theorem AlgEquiv.equivCongr_symm + theorem AlgEquiv.equivCongr_trans - theorem AlgEquiv.toLinearEquiv_apply Modified Mathlib/Algebra/Algebra/Opposite.lean + def AlgEquiv.opComm + def AlgEquiv.opOp + theorem AlgEquiv.toRingEquiv_opOp + def AlgHom.opComm Modified Mathlib/Algebra/Group/Opposite.lean + def MulEquiv.opOp Modified Mathlib/Algebra/Ring/Equiv.lean + def RingEquiv.opOp 2023-08-14 19:43:09 4e823e1 feat: charZero_iff_forall_prime_ne_zero (#6518) ESTIMATED CHANGES Modified Mathlib/Algebra/CharP/Basic.lean + theorem CharZero.charZero_iff_forall_prime_ne_zero 2023-08-14 19:43:08 abbba04 refactor(*): Protect `Function.Commute` (#6456) This PR protects `Function.Commute`, so that it no longer clashes with `Commute` in the root namespace, as suggested by @j-loreaux in #6290. ESTIMATED CHANGES Modified Mathlib/Algebra/Hom/Iterate.lean +/- theorem Commute.function_commute_mul_left +/- theorem Commute.function_commute_mul_right Modified Mathlib/Data/Fintype/Card.lean Modified Mathlib/Dynamics/FixedPoints/Basic.lean Modified Mathlib/Dynamics/PeriodicPts.lean +/- theorem Function.Commute.minimalPeriod_of_comp_dvd_lcm +/- theorem Function.Commute.minimalPeriod_of_comp_dvd_mul +/- theorem Function.Commute.minimalPeriod_of_comp_eq_mul_of_coprime Modified Mathlib/GroupTheory/GroupAction/Quotient.lean Modified Mathlib/GroupTheory/OrderOfElement.lean Modified Mathlib/GroupTheory/Perm/Cycle/Basic.lean +/- theorem Equiv.Perm.cycleOf_mul_of_apply_right_eq_self Modified Mathlib/GroupTheory/Subgroup/Basic.lean Modified Mathlib/GroupTheory/Sylow.lean Modified Mathlib/Logic/Function/Conjugate.lean - def Function.Commute Modified Mathlib/Logic/Function/Iterate.lean Modified Mathlib/Order/Iterate.lean Modified Mathlib/Topology/Algebra/InfiniteSum/Ring.lean +/- theorem Commute.tsum_left +/- theorem Commute.tsum_right 2023-08-14 17:31:03 34ce2e5 ci: turn back on the docBlame linter (#6579) This was turned off during porting as it forced porters to write docstrings for things they were not familiar with. `nolints.json` was rebuilt with `lake build runLinter; ./build/bin/runLinter --update Mathlib`. ESTIMATED CHANGES Modified scripts/nolints.json Modified scripts/runLinter.lean 2023-08-14 16:43:20 0c24f83 fix: disable autoImplicit globally (#6528) Autoimplicits are [highly controversial](https://leanprover.zulipchat.com/#narrow/stream/270676-lean4/topic/.60autoImplicit.20true.60.20is.20evil/near/355142480) and also [defeat the performance-improving work](https://leanprover.zulipchat.com/#narrow/stream/113488-general/topic/autoimplicit.20and.20Type*/near/383878932) in #6474. The intent of this PR is to make `autoImplicit` opt-in on a per-file basis, by disabling it in the lakefile and enabling it again with `set_option autoImplicit true` in the few files that rely on it. That also keeps this PR small, as opposed to attempting to "fix" files to not need it any more. I claim that many of the uses of `autoImplicit` in these files are accidental; situations such as: * Assuming `variables` are in scope, but pasting the lemma in the wrong section * Pasting in a lemma from a scratch file without checking to see if the variable names are consistent with the rest of the file * Making a copy-paste error between lemmas and forgetting to add an explicit arguments. Having `set_option autoImplicit false` as the default prevents these types of mistake being made in the 90% of files where `autoImplicit`s are not used at all, and causes them to be caught by CI during review. I think there were various points during the port where we encouraged porters to delete the `universes u v` lines; I think having autoparams for universe variables only would cover a lot of the cases we actually use them, while avoiding any real shortcomings. [A Zulip poll](https://leanprover.zulipchat.com/#narrow/stream/113488-general/topic/mathlib4.3A.20autoImplicit.20false.20by.20default.3F/near/384265143) (after combining overlapping votes accordingly) was in favor of this change with `5:5:18` as the `no:dontcare:yes` vote ratio. While this PR was being reviewed, a handful of files gained some more likely-accidental autoImplicits. In these places, `set_option autoImplicit true` has been placed locally within a section, rather than at the top of the file. ESTIMATED CHANGES Modified Cache/IO.lean Modified Cache/Requests.lean Modified Mathlib/Algebra/AddTorsor.lean Modified Mathlib/Algebra/Algebra/Equiv.lean Modified Mathlib/Algebra/Algebra/Hom.lean Modified Mathlib/Algebra/Category/GroupCat/Basic.lean Modified Mathlib/Algebra/Category/GroupWithZeroCat.lean Modified Mathlib/Algebra/Category/ModuleCat/Free.lean Modified Mathlib/Algebra/Category/ModuleCat/Presheaf.lean Modified Mathlib/Algebra/Category/ModuleCat/Projective.lean Modified Mathlib/Algebra/Category/MonCat/Basic.lean Modified Mathlib/Algebra/Category/Ring/Basic.lean Modified Mathlib/Algebra/CharZero/Defs.lean Modified Mathlib/Algebra/Field/MinimalAxioms.lean Modified Mathlib/Algebra/Field/Opposite.lean Modified Mathlib/Algebra/Group/Defs.lean Modified Mathlib/Algebra/Group/MinimalAxioms.lean Modified Mathlib/Algebra/Group/Semiconj.lean Modified Mathlib/Algebra/GroupWithZero/Defs.lean Modified Mathlib/Algebra/Hom/GroupAction.lean Modified Mathlib/Algebra/Hom/NonUnitalAlg.lean Modified Mathlib/Algebra/Homology/DifferentialObject.lean Modified Mathlib/Algebra/Homology/HomotopyCategory.lean Modified Mathlib/Algebra/Homology/ImageToKernel.lean Modified Mathlib/Algebra/Homology/ShortComplex/LeftHomology.lean Modified Mathlib/Algebra/Homology/ShortComplex/RightHomology.lean Modified Mathlib/Algebra/Invertible.lean Modified Mathlib/Algebra/Module/Hom.lean Modified Mathlib/Algebra/Module/Submodule/Lattice.lean Modified Mathlib/Algebra/Module/Torsion.lean Modified Mathlib/Algebra/MonoidAlgebra/Basic.lean Modified Mathlib/Algebra/NeZero.lean Modified Mathlib/Algebra/Opposites.lean Modified Mathlib/Algebra/Order/AbsoluteValue.lean Modified Mathlib/Algebra/Order/Archimedean.lean Modified Mathlib/Algebra/Order/Group/Bounds.lean Modified Mathlib/Algebra/Order/Invertible.lean Modified Mathlib/Algebra/Order/Monoid/Canonical/Defs.lean Modified Mathlib/Algebra/Order/Monoid/TypeTags.lean Modified Mathlib/Algebra/Order/Monoid/Units.lean Modified Mathlib/Algebra/Order/Pi.lean Modified Mathlib/Algebra/Order/Sub/Prod.lean Modified Mathlib/Algebra/PUnitInstances.lean Modified Mathlib/Algebra/Ring/Basic.lean Modified Mathlib/Algebra/Ring/MinimalAxioms.lean Modified Mathlib/Algebra/RingQuot.lean Modified Mathlib/AlgebraicTopology/SimplicialObject.lean Modified Mathlib/AlgebraicTopology/SimplicialSet.lean Modified Mathlib/Analysis/Calculus/Deriv/Star.lean Modified Mathlib/Analysis/Calculus/FDeriv/Basic.lean Modified Mathlib/Analysis/Complex/CauchyIntegral.lean Modified Mathlib/Analysis/Complex/UpperHalfPlane/Basic.lean Modified Mathlib/Analysis/Convex/Gauge.lean Modified Mathlib/Analysis/Convex/StrictConvexSpace.lean Modified Mathlib/Analysis/NormedSpace/lpSpace.lean Modified Mathlib/Analysis/Seminorm.lean Modified Mathlib/Analysis/SpecialFunctions/Log/Basic.lean Modified Mathlib/Analysis/SpecialFunctions/SmoothTransition.lean Modified Mathlib/CategoryTheory/Bicategory/NaturalTransformation.lean Modified Mathlib/CategoryTheory/ConnectedComponents.lean Modified Mathlib/CategoryTheory/EqToHom.lean Modified Mathlib/CategoryTheory/GradedObject.lean Modified Mathlib/CategoryTheory/Limits/Presheaf.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Biproducts.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Products.lean Modified Mathlib/CategoryTheory/Limits/Shapes/WidePullbacks.lean Modified Mathlib/CategoryTheory/Limits/Types.lean Modified Mathlib/CategoryTheory/Sites/Coherent.lean Modified Mathlib/CategoryTheory/Sites/Coverage.lean Modified Mathlib/CategoryTheory/Sites/EffectiveEpimorphic.lean Modified Mathlib/CategoryTheory/UnivLE.lean Modified Mathlib/CategoryTheory/Yoneda.lean Modified Mathlib/Combinatorics/Partition.lean Modified Mathlib/Combinatorics/Quiver/Basic.lean Modified Mathlib/Combinatorics/Quiver/SingleObj.lean Modified Mathlib/Combinatorics/SimpleGraph/Connectivity.lean Modified Mathlib/Combinatorics/SimpleGraph/Connectivity/Subgraph.lean Modified Mathlib/Combinatorics/SimpleGraph/Prod.lean Modified Mathlib/Combinatorics/SimpleGraph/Subgraph.lean Modified Mathlib/Computability/NFA.lean Modified Mathlib/Control/Monad/Basic.lean Modified Mathlib/Control/Monad/Writer.lean Modified Mathlib/Control/Random.lean Modified Mathlib/Data/Array/Defs.lean Modified Mathlib/Data/BinaryHeap.lean Modified Mathlib/Data/Bool/Basic.lean Modified Mathlib/Data/ByteArray.lean Modified Mathlib/Data/Equiv/Functor.lean Modified Mathlib/Data/Fin/Basic.lean Modified Mathlib/Data/Finset/Lattice.lean Modified Mathlib/Data/Finsupp/Encodable.lean Modified Mathlib/Data/HashMap.lean Modified Mathlib/Data/Int/Basic.lean Modified Mathlib/Data/Int/GCD.lean Modified Mathlib/Data/IsROrC/Basic.lean Modified Mathlib/Data/List/Card.lean Modified Mathlib/Data/List/Count.lean Modified Mathlib/Data/List/Defs.lean Modified Mathlib/Data/List/Lemmas.lean Modified Mathlib/Data/List/MinMax.lean Modified Mathlib/Data/List/Range.lean Modified Mathlib/Data/MLList/BestFirst.lean Modified Mathlib/Data/MLList/DepthFirst.lean Modified Mathlib/Data/MLList/Heartbeats.lean Modified Mathlib/Data/MLList/IO.lean Modified Mathlib/Data/MLList/Split.lean Modified Mathlib/Data/Multiset/Powerset.lean Modified Mathlib/Data/MvPolynomial/Basic.lean Modified Mathlib/Data/MvPolynomial/Polynomial.lean Modified Mathlib/Data/Nat/Cast/Defs.lean Modified Mathlib/Data/Nat/Digits.lean Modified Mathlib/Data/Nat/PSub.lean Modified Mathlib/Data/Num/Basic.lean Modified Mathlib/Data/Option/Defs.lean Modified Mathlib/Data/Option/NAry.lean Modified Mathlib/Data/Ordmap/Ordnode.lean Modified Mathlib/Data/Polynomial/Degree/Definitions.lean Modified Mathlib/Data/Polynomial/RingDivision.lean Modified Mathlib/Data/Prod/Basic.lean Modified Mathlib/Data/Quot.lean Modified Mathlib/Data/Real/CauSeq.lean Modified Mathlib/Data/Real/Sqrt.lean Modified Mathlib/Data/Rel.lean Modified Mathlib/Data/Seq/Computation.lean Modified Mathlib/Data/Set/Card.lean Modified Mathlib/Data/Set/Functor.lean Modified Mathlib/Data/Set/Image.lean Modified Mathlib/Data/Set/Intervals/Image.lean Modified Mathlib/Data/Set/Intervals/OrderIso.lean Modified Mathlib/Data/Set/Intervals/WithBotTop.lean Modified Mathlib/Data/Set/Lattice.lean Modified Mathlib/Data/Stream/Defs.lean Modified Mathlib/Data/Stream/Init.lean Modified Mathlib/Data/Sym/Basic.lean Modified Mathlib/Data/UnionFind.lean Modified Mathlib/Data/Vector/Basic.lean Modified Mathlib/Data/Vector/MapLemmas.lean Modified Mathlib/Data/Vector/Snoc.lean Modified Mathlib/Dynamics/BirkhoffSum/Average.lean Modified Mathlib/FieldTheory/Adjoin.lean Modified Mathlib/Geometry/Euclidean/Inversion/Basic.lean Modified Mathlib/Geometry/Euclidean/PerpBisector.lean Modified Mathlib/Geometry/Manifold/Algebra/LieGroup.lean Modified Mathlib/Geometry/Manifold/ChartedSpace.lean Modified Mathlib/Geometry/Manifold/MFDeriv.lean Modified Mathlib/Geometry/Manifold/PartitionOfUnity.lean Modified Mathlib/Geometry/Manifold/SmoothManifoldWithCorners.lean Modified Mathlib/Geometry/Manifold/VectorBundle/Basic.lean Modified Mathlib/GroupTheory/ClassEquation.lean Modified Mathlib/GroupTheory/CommutingProbability.lean Modified Mathlib/GroupTheory/GroupAction/DomAct/ActionHom.lean Modified Mathlib/GroupTheory/GroupAction/DomAct/Basic.lean Modified Mathlib/GroupTheory/GroupAction/Prod.lean Modified Mathlib/GroupTheory/GroupAction/Quotient.lean Modified Mathlib/Init/Algebra/Classes.lean Modified Mathlib/Init/Control/Lawful.lean Modified Mathlib/Init/Core.lean Modified Mathlib/Init/Data/Bool/Lemmas.lean Modified Mathlib/Init/Data/Fin/Basic.lean Modified Mathlib/Init/Data/List/Basic.lean Modified Mathlib/Init/Data/Nat/Bitwise.lean Modified Mathlib/Init/Data/Ordering/Basic.lean Modified Mathlib/Init/Data/Prod.lean Modified Mathlib/Init/Data/Quot.lean Modified Mathlib/Init/Data/Sigma/Basic.lean Modified Mathlib/Init/Logic.lean Modified Mathlib/Init/Quot.lean Modified Mathlib/Init/Set.lean Modified Mathlib/Init/ZeroOne.lean Modified Mathlib/Lean/Data/NameMap.lean Modified Mathlib/Lean/Elab/Tactic/Basic.lean Modified Mathlib/Lean/EnvExtension.lean Modified Mathlib/Lean/Exception.lean Modified Mathlib/Lean/Expr/Basic.lean Modified Mathlib/Lean/Expr/Traverse.lean Modified Mathlib/Lean/Linter.lean Modified Mathlib/Lean/Message.lean Modified Mathlib/Lean/Meta.lean Modified Mathlib/Lean/Meta/Basic.lean Modified Mathlib/Lean/Meta/DiscrTree.lean Modified Mathlib/Lean/Meta/Simp.lean Modified Mathlib/Lean/SMap.lean Modified Mathlib/Lean/System/IO.lean Modified Mathlib/Lean/Thunk.lean Modified Mathlib/LinearAlgebra/AffineSpace/AffineMap.lean Modified Mathlib/LinearAlgebra/AffineSpace/Combination.lean Modified Mathlib/LinearAlgebra/Basic.lean Modified Mathlib/LinearAlgebra/Dual.lean Modified Mathlib/LinearAlgebra/Prod.lean Modified Mathlib/LinearAlgebra/Span.lean Modified Mathlib/LinearAlgebra/TensorProduct/Tower.lean Modified Mathlib/Logic/Basic.lean Modified Mathlib/Logic/Embedding/Basic.lean Modified Mathlib/Logic/Equiv/Basic.lean Modified Mathlib/Logic/Equiv/Defs.lean Modified Mathlib/Logic/Function/Basic.lean Modified Mathlib/Logic/IsEmpty.lean Modified Mathlib/Logic/Nonempty.lean Modified Mathlib/Logic/Relator.lean Modified Mathlib/Logic/Small/Basic.lean Modified Mathlib/Logic/Small/Group.lean Modified Mathlib/Logic/Small/Module.lean Modified Mathlib/Logic/Small/Ring.lean Modified Mathlib/Logic/Unique.lean Modified Mathlib/Logic/UnivLE.lean Modified Mathlib/Mathport/Notation.lean Modified Mathlib/Mathport/Rename.lean Modified Mathlib/MeasureTheory/Function/AEEqFun.lean Modified Mathlib/MeasureTheory/Function/ConditionalExpectation/AEMeasurable.lean Modified Mathlib/MeasureTheory/Function/LocallyIntegrable.lean Modified Mathlib/MeasureTheory/Function/LpSpace.lean Modified Mathlib/MeasureTheory/Function/LpSpace/DomAct/Basic.lean Modified Mathlib/MeasureTheory/Integral/FundThmCalculus.lean Modified Mathlib/MeasureTheory/Integral/Lebesgue.lean Modified Mathlib/MeasureTheory/Measure/Count.lean Modified Mathlib/MeasureTheory/Measure/Dirac.lean Modified Mathlib/ModelTheory/Basic.lean Modified Mathlib/NumberTheory/NumberField/Units.lean Modified Mathlib/Order/Atoms.lean Modified Mathlib/Order/Bounds/OrderIso.lean Modified Mathlib/Order/CompleteBooleanAlgebra.lean Modified Mathlib/Order/CompleteLattice.lean Modified Mathlib/Order/Filter/AtTopBot.lean Modified Mathlib/Order/Filter/Bases.lean Modified Mathlib/Order/Filter/Basic.lean Modified Mathlib/Order/Filter/CountableSeparatingOn.lean Modified Mathlib/Order/Filter/EventuallyConst.lean Modified Mathlib/Order/GameAdd.lean Modified Mathlib/Order/InitialSeg.lean Modified Mathlib/Order/Iterate.lean Modified Mathlib/Order/LiminfLimsup.lean Modified Mathlib/Order/LocallyFinite.lean Modified Mathlib/Order/Minimal.lean Modified Mathlib/Order/PropInstances.lean Modified Mathlib/Order/RelIso/Basic.lean Modified Mathlib/Probability/Independence/Basic.lean Modified Mathlib/Probability/Kernel/Condexp.lean Modified Mathlib/RingTheory/FinitePresentation.lean Modified Mathlib/RingTheory/FiniteType.lean Modified Mathlib/RingTheory/Jacobson.lean Modified Mathlib/RingTheory/RingInvo.lean Modified Mathlib/RingTheory/WittVector/Isocrystal.lean Modified Mathlib/SetTheory/Cardinal/CountableCover.lean Modified Mathlib/SetTheory/Cardinal/Finite.lean Modified Mathlib/SetTheory/Game/PGame.lean Modified Mathlib/SetTheory/Ordinal/NaturalOps.lean Modified Mathlib/Tactic/Abel.lean Modified Mathlib/Tactic/Backtracking.lean Modified Mathlib/Tactic/Basic.lean Modified Mathlib/Tactic/Cache.lean Modified Mathlib/Tactic/CancelDenoms.lean Modified Mathlib/Tactic/CategoryTheory/BicategoryCoherence.lean Modified Mathlib/Tactic/CategoryTheory/Coherence.lean Modified Mathlib/Tactic/CategoryTheory/Elementwise.lean Modified Mathlib/Tactic/Congr!.lean Modified Mathlib/Tactic/Core.lean Modified Mathlib/Tactic/FieldSimp.lean Modified Mathlib/Tactic/GCongr.lean Modified Mathlib/Tactic/IntervalCases.lean Modified Mathlib/Tactic/Linarith/Frontend.lean Modified Mathlib/Tactic/Linarith/Lemmas.lean Modified Mathlib/Tactic/Linarith/Parsing.lean Modified Mathlib/Tactic/Linarith/Preprocessing.lean Modified Mathlib/Tactic/Linarith/Verification.lean Modified Mathlib/Tactic/LinearCombination.lean Modified Mathlib/Tactic/MkIffOfInductiveProp.lean Modified Mathlib/Tactic/ModCases.lean Modified Mathlib/Tactic/Nontriviality/Core.lean Modified Mathlib/Tactic/NormNum/Basic.lean Modified Mathlib/Tactic/NormNum/BigOperators.lean Modified Mathlib/Tactic/NormNum/Core.lean Modified Mathlib/Tactic/Polyrith.lean Modified Mathlib/Tactic/Positivity/Basic.lean Modified Mathlib/Tactic/Positivity/Core.lean Modified Mathlib/Tactic/Propose.lean Modified Mathlib/Tactic/PushNeg.lean Modified Mathlib/Tactic/Relation/Symm.lean Modified Mathlib/Tactic/Relation/Trans.lean Modified Mathlib/Tactic/Rewrites.lean Modified Mathlib/Tactic/Ring/Basic.lean Modified Mathlib/Tactic/Ring/RingNF.lean Modified Mathlib/Tactic/Sat/FromLRAT.lean Modified Mathlib/Tactic/SuccessIfFailWithMsg.lean Modified Mathlib/Tactic/SudoSetOption.lean Modified Mathlib/Tactic/ToAdditive.lean Modified Mathlib/Tactic/ToExpr.lean Modified Mathlib/Tactic/ToLevel.lean Modified Mathlib/Tactic/UnsetOption.lean Modified Mathlib/Testing/SlimCheck/Gen.lean Modified Mathlib/Testing/SlimCheck/Sampleable.lean Modified Mathlib/Testing/SlimCheck/Testable.lean Modified Mathlib/Topology/Algebra/ConstMulAction.lean Modified Mathlib/Topology/Algebra/InfiniteSum/Basic.lean Modified Mathlib/Topology/Algebra/Order/Compact.lean Modified Mathlib/Topology/Algebra/Order/ExtendFrom.lean Modified Mathlib/Topology/Algebra/Order/LiminfLimsup.lean Modified Mathlib/Topology/Algebra/Order/Rolle.lean Modified Mathlib/Topology/Algebra/Star.lean Modified Mathlib/Topology/Algebra/UniformConvergence.lean Modified Mathlib/Topology/Bases.lean Modified Mathlib/Topology/Basic.lean Modified Mathlib/Topology/Category/CompHaus/EffectiveEpi.lean Modified Mathlib/Topology/Category/Stonean/Limits.lean Modified Mathlib/Topology/ContinuousOn.lean Modified Mathlib/Topology/CountableSeparatingOn.lean Modified Mathlib/Topology/ExtremallyDisconnected.lean Modified Mathlib/Topology/FiberBundle/Trivialization.lean Modified Mathlib/Topology/Homotopy/Basic.lean Modified Mathlib/Topology/Instances/ENNReal.lean Modified Mathlib/Topology/LocallyConstant/Algebra.lean Modified Mathlib/Topology/MetricSpace/Gluing.lean Modified Mathlib/Topology/MetricSpace/Kuratowski.lean Modified Mathlib/Topology/MetricSpace/Lipschitz.lean Modified Mathlib/Topology/Order.lean Modified Mathlib/Topology/Order/Lattice.lean Modified Mathlib/Topology/Order/LowerUpperTopology.lean Modified Mathlib/Topology/Order/UpperLowerSetTopology.lean Modified Mathlib/Topology/ProperMap.lean Modified Mathlib/Topology/Sheaves/Presheaf.lean Modified Mathlib/Topology/UniformSpace/Basic.lean Modified Mathlib/Topology/VectorBundle/Basic.lean Modified Mathlib/Util/AtomM.lean Modified Mathlib/Util/Export.lean Modified Mathlib/Util/MemoFix.lean Modified Mathlib/Util/Pickle.lean Modified Mathlib/Util/Qq.lean Modified Mathlib/Util/Superscript.lean Modified Mathlib/Util/Syntax.lean Modified Mathlib/Util/Tactic.lean Modified Mathlib/Util/WithWeakNamespace.lean Modified lakefile.lean 2023-08-14 12:56:33 6b723c0 chore: quasiconvexity doesn't need an additive structure on the codomain (#6494) ESTIMATED CHANGES Modified Mathlib/Analysis/Convex/Quasiconvex.lean +/- theorem QuasiconcaveOn.inf +/- theorem QuasiconvexOn.sup +/- theorem QuasilinearOn.monotoneOn_or_antitoneOn +/- theorem quasilinearOn_iff_monotoneOn_or_antitoneOn 2023-08-14 12:56:31 1e78d10 feat: Minimal axioms for rings and fields (#6472) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Field/MinimalAxioms.lean + def Field.ofMinimalAxioms Added Mathlib/Algebra/Ring/MinimalAxioms.lean + def CommRing.ofMinimalAxioms + def Ring.ofMinimalAxioms 2023-08-14 12:56:30 6d6b40f feat(LinearAlgebra/BilinearForm): a tensor product of symmetric bilinear forms is symmetric (#6466) ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/BilinearForm.lean - theorem BilinForm.isSymm_iff_flip' + theorem BilinForm.isSymm_iff_flip Modified Mathlib/LinearAlgebra/BilinearForm/TensorProduct.lean + theorem BilinForm.IsSymm.tmul 2023-08-14 12:56:28 0c5253c feat(ModelTheory): alternative statement of compactness (#6453) ESTIMATED CHANGES Modified Mathlib/ModelTheory/Satisfiability.lean + theorem FirstOrder.Language.Theory.models_iff_finset_models 2023-08-14 12:56:27 2c58661 feat: MeasurableSpace (Fin n) (#6431) This defines the instance `MeasurableSpace (Fin n)`. The motivation is #6425, which defines `Pmf.binomial`, and thus a measure on `Fin n`. ESTIMATED CHANGES Modified Mathlib/MeasureTheory/MeasurableSpace.lean 2023-08-14 12:56:25 c1776a3 perf: add instance shortcut to remove heartbeat bump (#6410) This removes a maxHeartbeats bump (the only one in the file). ESTIMATED CHANGES Modified Mathlib/NumberTheory/NumberField/Units.lean 2023-08-14 12:56:23 c54060b feat: the class equation (groups) (#6375) This is mostly mathported work of Johan's towards Wedderburn's Little theorem. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/BigOperators/Basic.lean + theorem Finset.prod_set_coe Added Mathlib/GroupTheory/ClassEquation.lean + theorem Group.card_center_add_sum_card_noncenter_eq_card + theorem Group.nat_card_center_add_sum_card_noncenter_eq_card + theorem Group.sum_card_conj_classes_eq_card + theorem sum_conjClasses_card_eq_card Modified Mathlib/GroupTheory/GroupAction/ConjAct.lean + theorem ConjAct.orbit_eq_carrier_conjClasses Modified Mathlib/GroupTheory/GroupAction/Quotient.lean + theorem ConjClasses.card_carrier Modified Mathlib/GroupTheory/Subgroup/Basic.lean + theorem ConjClasses.mem_noncenter + theorem ConjClasses.mk_bijOn + def ConjClasses.noncenter 2023-08-14 12:56:22 cd6dd35 fix: replace SMul.smul use in UpperHalfPlane (#6353) ESTIMATED CHANGES Modified Mathlib/Analysis/Complex/UpperHalfPlane/Basic.lean + def UpperHalfPlane.coe' + theorem UpperHalfPlane.coe'_apply_complex + theorem UpperHalfPlane.det_coe' +/- theorem UpperHalfPlane.sl_moeb +/- theorem UpperHalfPlane.subgroup_moeb Modified Mathlib/NumberTheory/Modular.lean Modified Mathlib/NumberTheory/ModularForms/SlashActions.lean 2023-08-14 12:56:20 47d15c3 chore: adjust priorities of mem_map lemmas (#6327) The `mem_map` lemmas were inconsistently either not `simp` lemmas at all, `simp` lemmas, or `simp` lemmas with a lowered priority. This PR makes them uniformly low priority simp lemmas, and adds a few simp attributes to "better" simp lemmas instead. (However these lemmas are themselves quite inconsistent across different algebraic structures, and I haven't attempted to add missing ones.) ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/NonUnitalSubalgebra.lean Modified Mathlib/Algebra/Algebra/Subalgebra/Basic.lean Modified Mathlib/Algebra/Lie/Submodule.lean Modified Mathlib/Algebra/Star/NonUnitalSubalgebra.lean Modified Mathlib/Algebra/Star/Subalgebra.lean Modified Mathlib/Data/Finset/Image.lean Modified Mathlib/Data/List/Basic.lean Modified Mathlib/Data/Multiset/Basic.lean Modified Mathlib/Data/Option/Basic.lean + theorem Option.mem_map_of_injective Modified Mathlib/GroupTheory/Subgroup/Basic.lean Modified Mathlib/GroupTheory/Submonoid/Operations.lean Modified Mathlib/GroupTheory/Subsemigroup/Operations.lean Modified Mathlib/LinearAlgebra/AffineSpace/AffineSubspace.lean Modified Mathlib/Order/Filter/Basic.lean Modified Mathlib/Order/Filter/NAry.lean Modified Mathlib/Order/OmegaCompletePartialOrder.lean 2023-08-14 12:56:19 628cf18 feat(Mathlib/FieldTheory/IsSepClosed) separably closed field and separable closure - basic definition (#6285) Main changes - Add `IsSepClosed` and basic properties. - Add `IsSepClosure` and basic properties. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/FieldTheory/IsSepClosed.lean + theorem IsSepClosed.algebraMap_surjective + theorem IsSepClosed.degree_eq_one_of_irreducible + theorem IsSepClosed.exists_aeval_eq_zero + theorem IsSepClosed.exists_eq_mul_self + theorem IsSepClosed.exists_eval₂_eq_zero + theorem IsSepClosed.exists_pow_nat_eq + theorem IsSepClosed.exists_root + theorem IsSepClosed.of_exists_root + theorem IsSepClosed.roots_eq_zero_iff + theorem IsSepClosed.splits_codomain + theorem IsSepClosed.splits_domain + theorem isSepClosure_iff 2023-08-14 12:56:17 886c740 feat(Probability/Kernel/Condexp): some properties of condexpKernel (#6109) `condexpKernel` is a Markov kernel, is strongly measurable and is a.e. equal to the conditional expectation. ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Function/ConditionalExpectation/AEMeasurable.lean + theorem MeasureTheory.AEStronglyMeasurable'.mono Modified Mathlib/MeasureTheory/MeasurableSpace.lean + theorem measurable_id'' Modified Mathlib/MeasureTheory/Measure/AEMeasurable.lean + theorem aemeasurable_id'' Modified Mathlib/Probability/Kernel/Condexp.lean +/- theorem MeasureTheory.Integrable.condexpKernel_ae +/- theorem MeasureTheory.Integrable.integral_norm_condexpKernel - theorem ProbabilityTheory.aemeasurable_id'' + theorem ProbabilityTheory.condexpKernel_ae_eq_condexp' + theorem ProbabilityTheory.condexpKernel_ae_eq_condexp + theorem ProbabilityTheory.condexpKernel_ae_eq_trim_condexp + theorem ProbabilityTheory.condexpKernel_apply_eq_condDistrib + theorem ProbabilityTheory.condexp_ae_eq_integral_condexpKernel' +/- theorem ProbabilityTheory.condexp_ae_eq_integral_condexpKernel +/- theorem ProbabilityTheory.integrable_toReal_condexpKernel - theorem ProbabilityTheory.measurable_id'' + theorem ProbabilityTheory.stronglyMeasurable_condexpKernel 2023-08-14 12:56:16 86bb3de feat: lemmas about connectivity of subgraphs and induced graphs (#5927) (Replaces [mathlib#18454](https://github.com/leanprover-community/mathlib/pull/18454).) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Combinatorics/SimpleGraph/Basic.lean - def SimpleGraph.InduceHom +/- theorem SimpleGraph.coe_induceHom + def SimpleGraph.induceHom + def SimpleGraph.induceHomOfLE + theorem SimpleGraph.induceHomOfLE_apply + theorem SimpleGraph.induceHomOfLE_toHom + theorem SimpleGraph.induceHom_injective + theorem SimpleGraph.induce_singleton_eq_top + theorem SimpleGraph.le_comap_of_subsingleton + theorem SimpleGraph.map_le_of_subsingleton Modified Mathlib/Combinatorics/SimpleGraph/Connectivity.lean + theorem SimpleGraph.Walk.end_mem_verts_toSubgraph + theorem SimpleGraph.Walk.start_mem_verts_toSubgraph + theorem SimpleGraph.Walk.toSubgraph_le_induce_support + theorem SimpleGraph.connected_iff_exists_forall_reachable - theorem SimpleGraph.singletonSubgraph_connected - theorem SimpleGraph.subgraphOfAdj_connected + theorem SimpleGraph.top_connected + theorem SimpleGraph.top_preconnected Added Mathlib/Combinatorics/SimpleGraph/Connectivity/Subgraph.lean + theorem SimpleGraph.Subgraph.Connected.adj_union + theorem SimpleGraph.Subgraph.Connected.induce_verts + theorem SimpleGraph.Subgraph.connected_iff_forall_exists_walk_subgraph + theorem SimpleGraph.Subgraph.induce_union_connected + theorem SimpleGraph.Subgraph.preconnected_iff_forall_exists_walk_subgraph + theorem SimpleGraph.Subgraph.singletonSubgraph_connected + theorem SimpleGraph.Subgraph.subgraphOfAdj_connected + theorem SimpleGraph.Subgraph.top_induce_pair_connected_of_adj + theorem SimpleGraph.Walk.connected_induce_support + theorem SimpleGraph.Walk.toSubgraph_connected + theorem SimpleGraph.connected_induce_iff + theorem SimpleGraph.extend_finset_to_connected + theorem SimpleGraph.induce_connected_adj_union + theorem SimpleGraph.induce_connected_of_patches + theorem SimpleGraph.induce_pair_connected_of_adj + theorem SimpleGraph.induce_sUnion_connected_of_pairwise_not_disjoint + theorem SimpleGraph.induce_union_connected Modified Mathlib/Combinatorics/SimpleGraph/Ends/Defs.lean Modified Mathlib/Combinatorics/SimpleGraph/Subgraph.lean + theorem SimpleGraph.Subgraph.coeSubgraph_Adj + theorem SimpleGraph.Subgraph.coeSubgraph_le + theorem SimpleGraph.Subgraph.coeSubgraph_restrict_eq + theorem SimpleGraph.Subgraph.coe_hom + theorem SimpleGraph.Subgraph.le_induce_top_verts + theorem SimpleGraph.Subgraph.le_induce_union + theorem SimpleGraph.Subgraph.le_induce_union_left + theorem SimpleGraph.Subgraph.le_induce_union_right + theorem SimpleGraph.Subgraph.restrict_Adj + theorem SimpleGraph.subgraphOfAdj_le_of_adj 2023-08-14 12:01:46 a6b1311 chore: move lemmas from Stietljes.lean to their proper afterport places (#6554) ESTIMATED CHANGES Modified Mathlib/Data/Real/Basic.lean + theorem Real.iInf_Ioi_eq_iInf_rat_gt Modified Mathlib/MeasureTheory/Measure/MeasureSpace.lean + theorem MeasureTheory.tendsto_measure_Ici_atBot + theorem MeasureTheory.tendsto_measure_Ico_atTop + theorem MeasureTheory.tendsto_measure_Iic_atTop + theorem MeasureTheory.tendsto_measure_Ioc_atBot Modified Mathlib/MeasureTheory/Measure/Stieltjes.lean - theorem MeasureTheory.tendsto_measure_Ici_atBot - theorem MeasureTheory.tendsto_measure_Ico_atTop - theorem MeasureTheory.tendsto_measure_Iic_atTop - theorem MeasureTheory.tendsto_measure_Ioc_atBot - theorem exists_seq_antitone_tendsto_atTop_atBot - theorem exists_seq_monotone_tendsto_atTop_atTop - theorem iInf_Ioi_eq_iInf_rat_gt - theorem iSup_eq_iSup_subseq_of_antitone - theorem rightLim_eq_of_tendsto - theorem rightLim_eq_sInf Modified Mathlib/Order/Filter/AtTopBot.lean + theorem Filter.exists_seq_antitone_tendsto_atTop_atBot + theorem Filter.exists_seq_monotone_tendsto_atTop_atTop Modified Mathlib/Probability/Kernel/CondCdf.lean Modified Mathlib/Topology/Algebra/Order/LeftRightLim.lean + theorem Monotone.rightLim_eq_sInf + theorem rightLim_eq_of_eq_bot + theorem rightLim_eq_of_tendsto Modified Mathlib/Topology/Algebra/Order/MonotoneConvergence.lean + theorem iInf_eq_iInf_subseq_of_antitone + theorem iSup_eq_iSup_subseq_of_antitone 2023-08-14 11:02:03 595af3d chore: tidy various files (#6534) ESTIMATED CHANGES Modified Mathlib/AlgebraicGeometry/StructureSheaf.lean Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Angle.lean Modified Mathlib/Data/IsROrC/Basic.lean Modified Mathlib/Data/Polynomial/Degree/Definitions.lean +/- theorem Polynomial.degree_neg_le_of_le +/- theorem Polynomial.natDegree_eq_of_degree_eq_some +/- theorem Polynomial.natDegree_neg_le_of_le Modified Mathlib/Topology/Sheaves/LocalPredicate.lean Modified Mathlib/Topology/UniformSpace/Basic.lean 2023-08-14 10:09:53 ea2fa16 chore(Mathlib/Algebra/CharP/Basic): golf cast_injOn_of_ringChar_ne_two (#6573) Just the shortening of a proof, letting `simp` do the work. ESTIMATED CHANGES Modified Mathlib/Algebra/CharP/Basic.lean 2023-08-14 09:10:13 d08d8bb chore: Remove noaligns from MonoidAlgebra.Degree (#6574) There seems to have been a misunderstanding about the purpose of this command. ESTIMATED CHANGES Modified Mathlib/Algebra/MonoidAlgebra/Degree.lean 2023-08-14 08:13:48 c14ff12 feat(Algebra/MonoidAlgebra/Basic): add `domCongr` (#6567) This is the `AlgEquiv` version of `Finsupp.domLCongr`. `MvPolynomial.renameEquiv` is a special case of this, but it's probably not worth changing the defeqs to redefine it that way. ESTIMATED CHANGES Modified Mathlib/Algebra/MonoidAlgebra/Basic.lean + def AddMonoidAlgebra.domCongr + theorem AddMonoidAlgebra.domCongr_apply + theorem AddMonoidAlgebra.domCongr_refl + theorem AddMonoidAlgebra.domCongr_single + theorem AddMonoidAlgebra.domCongr_support + theorem AddMonoidAlgebra.domCongr_symm + theorem AddMonoidAlgebra.domCongr_toAlgHom +/- theorem AddMonoidAlgebra.mapDomain_algebraMap + def MonoidAlgebra.domCongr + theorem MonoidAlgebra.domCongr_apply + theorem MonoidAlgebra.domCongr_refl + theorem MonoidAlgebra.domCongr_single + theorem MonoidAlgebra.domCongr_support + theorem MonoidAlgebra.domCongr_symm + theorem MonoidAlgebra.domCongr_toAlgHom +/- theorem MonoidAlgebra.mapDomain_algebraMap 2023-08-14 05:39:51 c769b9d feat: add definitions of degrees of AddMonoidAlgebras (#6260) This PR defines 1. the `supDegree` of an `AddMonoidAlgebra`, graded by a `SemilatticeSup`; 1. the `infDegree` of an `AddMonoidAlgebra`, graded by a `SemilatticeInf`; 1. ~~the `maxDegree` of an `AddMonoidAlgebra`, graded by a `LinearOrder` with a bottom element;~~ 1. ~~the `minDegree` of an `AddMonoidAlgebra`, graded by a `LinearOrder` with a top element.~~ It also proves that under addition and multiplication in the `AddMonoidAlgebra`, each degree behaves as expected. The lemmas are there simply to give a sample usage of the new definition. The [corresponding `mathlib3` PR](https://github.com/leanprover-community/mathlib/pull/15296) was `not-too-late` and closed unmerged. ESTIMATED CHANGES Modified Mathlib/Algebra/MonoidAlgebra/Degree.lean + def AddMonoidAlgebra.infDegree + theorem AddMonoidAlgebra.le_infDegree_add + theorem AddMonoidAlgebra.le_infDegree_mul + def AddMonoidAlgebra.supDegree + theorem AddMonoidAlgebra.supDegree_add_le + theorem AddMonoidAlgebra.supDegree_mul_le 2023-08-14 01:22:12 484cfeb refactor: generalize PiLp to WithLp (#6409) The motivation is to be able to reuse this for `ProdLp` in #6136. This matches the pattern of how the `Lex` type synonym is used. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Analysis/InnerProductSpace/PiL2.lean Modified Mathlib/Analysis/NormedSpace/PiLp.lean - theorem PiLp.equiv_add - theorem PiLp.equiv_neg - theorem PiLp.equiv_smul - theorem PiLp.equiv_sub - theorem PiLp.equiv_symm_add - theorem PiLp.equiv_symm_neg - theorem PiLp.equiv_symm_smul - theorem PiLp.equiv_symm_sub - theorem PiLp.equiv_symm_zero - theorem PiLp.equiv_zero - def PiLp Added Mathlib/Analysis/NormedSpace/WithLp.lean + theorem WithLp.equiv_add + theorem WithLp.equiv_neg + theorem WithLp.equiv_smul + theorem WithLp.equiv_sub + theorem WithLp.equiv_symm_add + theorem WithLp.equiv_symm_neg + theorem WithLp.equiv_symm_smul + theorem WithLp.equiv_symm_sub + theorem WithLp.equiv_symm_zero + theorem WithLp.equiv_zero + def WithLp 2023-08-13 21:09:01 4fa9d3d feat(LinearAlgebra/Basis): add lemmas/golf (#6460) * Add `Basis.mem_span_image`, `Basis.self_mem_span_image`. * Golf some proofs. * Add `@[simp]` to `Basis.span_eq`. ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/Basis.lean + theorem Basis.mem_span_image +/- theorem Basis.mem_span_repr_support +/- theorem Basis.repr_support_subset_of_mem_span + theorem Basis.self_mem_span_image 2023-08-13 15:48:43 c532d7b feat: forward port of Mathlib.AlgebraicTopology.DoldKan.Equivalence (#6444) In this PR (which is a forward port of https://github.com/leanprover-community/mathlib/pull/17926), the Dold-Kan equivalence between simplicial objects and chain complexes in abelian categories is constructed. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/AlgebraicTopology/DoldKan/Compatibility.lean Modified Mathlib/AlgebraicTopology/DoldKan/Decomposition.lean Modified Mathlib/AlgebraicTopology/DoldKan/Degeneracies.lean Added Mathlib/AlgebraicTopology/DoldKan/Equivalence.lean + def CategoryTheory.Abelian.DoldKan.N + def CategoryTheory.Abelian.DoldKan.comparisonN + def CategoryTheory.Abelian.DoldKan.equivalence + theorem CategoryTheory.Abelian.DoldKan.equivalence_inverse + def CategoryTheory.Abelian.DoldKan.Γ Modified Mathlib/AlgebraicTopology/DoldKan/EquivalenceAdditive.lean Modified Mathlib/AlgebraicTopology/DoldKan/EquivalencePseudoabelian.lean Modified Mathlib/AlgebraicTopology/DoldKan/Faces.lean Modified Mathlib/AlgebraicTopology/DoldKan/FunctorGamma.lean Modified Mathlib/AlgebraicTopology/DoldKan/FunctorN.lean Modified Mathlib/AlgebraicTopology/DoldKan/GammaCompN.lean Modified Mathlib/AlgebraicTopology/DoldKan/NCompGamma.lean Modified Mathlib/AlgebraicTopology/DoldKan/NReflectsIso.lean Modified Mathlib/AlgebraicTopology/DoldKan/Normalized.lean Modified Mathlib/AlgebraicTopology/DoldKan/Notations.lean Modified Mathlib/AlgebraicTopology/DoldKan/PInfty.lean Modified Mathlib/AlgebraicTopology/DoldKan/Projections.lean Modified Mathlib/AlgebraicTopology/DoldKan/SplitSimplicialObject.lean Modified Mathlib/CategoryTheory/Idempotents/FunctorExtension.lean Modified Mathlib/CategoryTheory/Idempotents/HomologicalComplex.lean Modified Mathlib/CategoryTheory/Idempotents/Karoubi.lean + def CategoryTheory.Idempotents.toKaroubiEquivalence + def CategoryTheory.Idempotents.toKaroubiIsEquivalence - def CategoryTheory.Idempotents.toKaroubi_equivalence - def CategoryTheory.Idempotents.toKaroubi_isEquivalence 2023-08-13 13:12:24 9f8f772 feat: developing the API of right homology of short complexes (#6230) This PR develops the API of the right homology of short complexes, getting all the dual notions and results that were previously obtained for the left homology. ESTIMATED CHANGES Modified Mathlib/Algebra/Homology/ShortComplex/LeftHomology.lean - theorem CategoryTheory.ShortComplex.toCycles_comp_leftHomology_π + theorem CategoryTheory.ShortComplex.toCycles_comp_leftHomologyπ Modified Mathlib/Algebra/Homology/ShortComplex/RightHomology.lean + theorem CategoryTheory.ShortComplex.HasRightHomology.hasCokernel + theorem CategoryTheory.ShortComplex.HasRightHomology.hasKernel + theorem CategoryTheory.ShortComplex.RightHomologyData.opcyclesIso_hom_comp_descQ + theorem CategoryTheory.ShortComplex.RightHomologyData.opcyclesIso_inv_comp_descOpcycles + theorem CategoryTheory.ShortComplex.descOpcycles_comp + theorem CategoryTheory.ShortComplex.opcyclesMap_comp_descOpcycles + theorem CategoryTheory.ShortComplex.p_descOpcycles + theorem CategoryTheory.ShortComplex.rightHomologyι_comp_fromOpcycles + theorem CategoryTheory.ShortComplex.rightHomologyι_descOpcycles_π_eq_zero_of_boundary 2023-08-13 11:39:15 14430ef feat: lemma limsup_const_add + 7 variants (#6455) Add 8 lemmas: `limsup_const_add`, ..., `liminf_sub_const`. The 4 lemmas about `add` are proven with typeclass assumptions which apply to `ℝ`, `ℝ≥0`, and `ℝ≥0∞` (at least). The 4 lemmas about `sub` are proven with typeclass assumptions which apply to `ℝ` and `ℝ≥0` (at least). For `ℝ≥0∞`, we add separate implementations of these latter 4 lemmas `ENNReal.liminf_sub_const`, ... ESTIMATED CHANGES Modified Mathlib/Topology/Algebra/Order/LiminfLimsup.lean + theorem liminf_add_const + theorem liminf_const_add + theorem liminf_const_sub + theorem liminf_sub_const + theorem limsup_add_const + theorem limsup_const_add + theorem limsup_const_sub + theorem limsup_sub_const Modified Mathlib/Topology/Instances/ENNReal.lean + theorem ENNReal.liminf_const_sub + theorem ENNReal.liminf_sub_const + theorem ENNReal.limsup_const_sub + theorem ENNReal.limsup_sub_const 2023-08-13 09:51:11 640038f chore(LpSpace): golf, generalize (#6553) * drop mostly unused section variables; * generalize `MeasureTheory.lintegral_indicator_const` and `MeasureTheory.snorm_indicator_const` to a `NullMeasurableSet`; * golf a proof. ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Function/LpSpace.lean + theorem MeasureTheory.snorm_indicator_const₀ +/- theorem MeasureTheory.snorm_indicator_le Modified Mathlib/MeasureTheory/Integral/Lebesgue.lean + theorem MeasureTheory.lintegral_indicator_const₀ 2023-08-13 08:45:41 6961667 feat: add more algebraic instances for LinearPMap (#6538) We add some properties of subtraction and cleanup the naming of the old instances. ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/LinearPMap.lean + theorem LinearPMap.sub_apply + theorem LinearPMap.sub_domain 2023-08-13 08:12:34 f697ccc feat: lemmas about monotonicity and asymptotics of `rpow` (#6140) ESTIMATED CHANGES Modified Mathlib/Analysis/SpecialFunctions/Pow/Asymptotics.lean + theorem tendsto_rpow_atBot_of_base_gt_one + theorem tendsto_rpow_atBot_of_base_lt_one + theorem tendsto_rpow_atTop_of_base_gt_one + theorem tendsto_rpow_atTop_of_base_lt_one Modified Mathlib/Analysis/SpecialFunctions/Pow/Real.lean + theorem Real.antitone_rpow_of_base_le_one + theorem Real.monotone_rpow_of_base_ge_one + theorem Real.rpow_le_rpow_of_exponent_nonpos + theorem Real.rpow_lt_rpow_of_exponent_neg + theorem Real.strictAnti_rpow_of_base_lt_one + theorem Real.strictMono_rpow_of_base_gt_one 2023-08-12 22:08:38 a28c6c6 feat: weaken assumptions on Polynomial.map lemmas (#6544) The assumptions on these lemmas seem to be too strong - `R` does not need to be a field, only a division ring, and `S` does not need to be a division ring, only a nontrivial semiring. ESTIMATED CHANGES Modified Mathlib/Data/Polynomial/FieldDivision.lean +/- theorem Polynomial.degree_map +/- theorem Polynomial.leadingCoeff_map +/- theorem Polynomial.monic_map_iff +/- theorem Polynomial.natDegree_map 2023-08-12 20:56:34 80b3e90 refactor: make IsDedekindDomain extend the other classes (#5834) This redefines the `IsDedekindDomain` class to be the conjunction through `extends` of the classes `IsDomain`, `IsNoetherianRing`, `DimensionLEOne` and `IsIntegrallyClosed`. Zulip thread: https://leanprover.zulipchat.com/#narrow/stream/113488-general/topic/Should.20.60IsDedekindDomain.60.20extend.20.60IsDomain.60.3F ESTIMATED CHANGES Modified Mathlib/RingTheory/DedekindDomain/Basic.lean Modified Mathlib/RingTheory/DedekindDomain/Dvr.lean Modified Mathlib/RingTheory/DedekindDomain/Ideal.lean Modified Mathlib/RingTheory/DedekindDomain/IntegralClosure.lean +/- theorem IsIntegralClosure.isDedekindDomain Modified Mathlib/RingTheory/DedekindDomain/SelmerGroup.lean Modified Mathlib/RingTheory/DiscreteValuationRing/TFAE.lean 2023-08-12 20:56:33 f2c3294 feat: presheaf of modules over a presheaf of rings (#4670) This is extracted from the draft PR https://github.com/leanprover-community/mathlib4/pull/4116 which tries to compare this definition with the definition in terms of a presheaf in `RingMod`. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Category/ModuleCat/Presheaf.lean + def PresheafOfModules.Hom.app + def PresheafOfModules.Hom.comp + theorem PresheafOfModules.Hom.ext + def PresheafOfModules.Hom.id + structure PresheafOfModules.Hom + def PresheafOfModules.map + theorem PresheafOfModules.map_apply + theorem PresheafOfModules.map_comp + theorem PresheafOfModules.map_id + def PresheafOfModules.obj + def PresheafOfModules.toPresheaf + structure PresheafOfModules Modified Mathlib/Algebra/Module/LinearMap.lean + def LinearMap.id' + theorem LinearMap.id'_coe Modified Mathlib/Algebra/Ring/CompTypeclasses.lean Modified Mathlib/LinearAlgebra/Charpoly/ToMatrix.lean 2023-08-12 19:50:20 9560eb0 feat(Set/Prod): add `Set.Subsingleton.prod` (#6529) Add `Set.Subsingleton.prod` and `Set.subsingleton_univ_pi`. ESTIMATED CHANGES Modified Mathlib/Data/Set/Prod.lean + theorem Set.Subsingleton.prod + theorem Set.subsingleton_univ_pi 2023-08-12 18:26:28 cb48f57 feat: port Combinatorics.Quiver.Covering (#6383) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Combinatorics/Quiver/Covering.lean + theorem Prefunctor.IsCovering.comp + theorem Prefunctor.IsCovering.map_injective + theorem Prefunctor.IsCovering.of_comp_left + theorem Prefunctor.IsCovering.of_comp_right + theorem Prefunctor.bijective_costar_iff_bijective_star + def Prefunctor.costar + theorem Prefunctor.costar_apply + theorem Prefunctor.costar_comp + theorem Prefunctor.costar_conj_star + theorem Prefunctor.isCovering_of_bijective_costar + theorem Prefunctor.isCovering_of_bijective_star + def Prefunctor.pathStar + theorem Prefunctor.pathStar_apply + theorem Prefunctor.pathStar_bijective + theorem Prefunctor.pathStar_injective + theorem Prefunctor.pathStar_surjective + def Prefunctor.star + theorem Prefunctor.star_apply + theorem Prefunctor.star_comp + theorem Prefunctor.symmetrifyStar + def Quiver.Costar + def Quiver.PathStar + def Quiver.Star + def Quiver.starEquivCostar + theorem Quiver.starEquivCostar_apply + theorem Quiver.starEquivCostar_symm_apply + def Quiver.symmetrifyCostar + def Quiver.symmetrifyStar Modified Mathlib/Combinatorics/Quiver/Symmetric.lean + def Prefunctor.symmetrify 2023-08-12 17:49:15 07bb4a5 chore(MeasureTheory/.../ContinuousMapDense): golf 1 `obtain` (#6542) ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Function/ContinuousMapDense.lean 2023-08-12 17:00:38 4fbcc51 feat(NumberTheory/Padics/PadicVal): padicValNat_factorial' (#5803) - [x] depends on: #5778 - [x] depends on: #5789 - [x] depends on: #5802 - [x] depends on: #6505 ESTIMATED CHANGES Modified Mathlib/Data/Nat/Multiplicity.lean Modified Mathlib/NumberTheory/Padics/PadicVal.lean +/- theorem padicValNat_choose +/- theorem padicValNat_eq_zero_of_mem_Ioo +/- theorem padicValNat_factorial +/- theorem padicValNat_factorial_mul +/- theorem padicValNat_factorial_mul_add +/- theorem padicValNat_mul_div_factorial + theorem sub_one_mul_padicValNat_factorial_eq_sub_sum_digits 2023-08-12 02:59:05 3d6112b feat: the forgetful functor from CostructuredArrow F X to Over X (#6366) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Over.lean + def CategoryTheory.CostructuredArrow.toOver + def CategoryTheory.StructuredArrow.toUnder 2023-08-11 23:48:54 ec52925 feat: add Algebra.discr_localizationLocalization (#6422) We prove ```lean theorem Algebra.discr_localizationLocalization (b : Basis ι R S) : Algebra.discr Rₘ (b.localizationLocalization Rₘ M Aₘ) = algebraMap R Rₘ (Algebra.discr R b) ``` We need for that to prove the analogue for the trace of `Algebra.norm_localization` (that was the only result in `RingTheory.Localization.Norm`). Since the results are added to this file, it is renamed to `RingTheory.Localization.NormTrace` (not sure about the name though). ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/LinearAlgebra/Matrix/Trace.lean + theorem AddMonoidHom.map_trace Modified Mathlib/RingTheory/Ideal/Norm.lean Deleted Mathlib/RingTheory/Localization/Norm.lean - theorem Algebra.norm_localization Added Mathlib/RingTheory/Localization/NormTrace.lean + theorem Algebra.discr_localizationLocalization + theorem Algebra.map_leftMulMatrix_localization + theorem Algebra.norm_localization + theorem Algebra.traceMatrix_localizationLocalization + theorem Algebra.trace_localization 2023-08-11 20:30:18 ad9a95e refactor(GroupTheory/GroupAction/Basic): rename variable names to a consistent style (#6531) Renaming variable names in basic definitions, theorems, and proofs regarding `MulAction` and `AddAction`, so that the choice of letter is 1. consistent with sibling files (e.g. GroupTheory/GroupAction/Defs.lean) and 2. easy to parse. Specifically, - `M` (for "monoid") or `G` (for "group") is the type that acts; - `α` is the type that is acted on; - terms of `M` are `m` etc and terms of `G` are `g` etc; - terms of `α` are `a` etc. Miswording in the docstrings for `MulAction.fixedBy` and `AddAction.fixedby` is also fixed. ESTIMATED CHANGES Modified Mathlib/GroupTheory/GroupAction/Basic.lean +/- theorem AddAction.stabilizer_vadd_eq_stabilizer_map_conj +/- def MulAction.Stabilizer.submonoid +/- theorem MulAction.disjoint_image_image_iff +/- def MulAction.fixedBy +/- def MulAction.fixedPoints +/- theorem MulAction.fixed_eq_iInter_fixedBy +/- theorem MulAction.image_inter_image_iff +/- theorem MulAction.mapsTo_smul_orbit +/- theorem MulAction.mem_fixedBy +/- theorem MulAction.mem_fixedPoints' +/- theorem MulAction.mem_fixedPoints +/- theorem MulAction.mem_fixedPoints_iff_card_orbit_eq_one +/- theorem MulAction.mem_orbit +/- theorem MulAction.mem_orbit_iff +/- theorem MulAction.mem_orbit_self +/- theorem MulAction.mem_orbit_smul +/- theorem MulAction.mem_stabilizer_iff +/- theorem MulAction.mem_stabilizer_submonoid_iff +/- theorem MulAction.orbit.coe_smul +/- def MulAction.orbit +/- theorem MulAction.orbitRel.Quotient.mem_orbit +/- theorem MulAction.orbitRel.Quotient.orbit_eq_orbit_out +/- theorem MulAction.orbitRel.Quotient.orbit_mk +/- def MulAction.orbitRel +/- theorem MulAction.orbitRel_apply +/- theorem MulAction.orbit_eq_iff +/- theorem MulAction.orbit_eq_univ +/- theorem MulAction.orbit_nonempty +/- theorem MulAction.orbit_smul +/- theorem MulAction.orbit_smul_subset +/- theorem MulAction.quotient_preimage_image_eq_union_mul +/- def MulAction.selfEquivSigmaOrbits' +/- def MulAction.selfEquivSigmaOrbits +/- theorem MulAction.smul_mem_orbit_smul +/- theorem MulAction.smul_orbit +/- theorem MulAction.smul_orbit_subset +/- def MulAction.stabilizer +/- theorem MulAction.stabilizer_smul_eq_stabilizer_map_conj 2023-08-11 19:14:45 3697da1 chore: tidy various files (#6393) ESTIMATED CHANGES Modified Mathlib/Algebra/Category/AlgebraCat/Limits.lean Modified Mathlib/AlgebraicGeometry/ProjectiveSpectrum/Scheme.lean Modified Mathlib/Analysis/Complex/UpperHalfPlane/Basic.lean Modified Mathlib/Analysis/Convex/Combination.lean Modified Mathlib/Analysis/InnerProductSpace/Adjoint.lean Modified Mathlib/Analysis/InnerProductSpace/OfNorm.lean - theorem InnerProductSpaceable.Inner_.conj_symm - theorem InnerProductSpaceable.Inner_.norm_sq + theorem InnerProductSpaceable.inner_.conj_symm + theorem InnerProductSpaceable.inner_.norm_sq Modified Mathlib/Analysis/SpecialFunctions/Pow/Complex.lean +/- theorem Complex.cpow_int_cast +/- theorem Complex.cpow_nat_cast +/- theorem Complex.cpow_nat_inv_pow +/- theorem Complex.cpow_two +/- theorem Complex.eq_zero_cpow_iff +/- theorem Complex.zero_cpow_eq_iff Modified Mathlib/Data/ZMod/Defs.lean Modified Mathlib/Geometry/Manifold/PartitionOfUnity.lean + theorem exists_contMDiffOn_forall_mem_convex_of_local - theorem exists_cont_mdiff_forall_mem_convex_of_local Modified Mathlib/Geometry/Manifold/SmoothManifoldWithCorners.lean Modified Mathlib/Geometry/Manifold/VectorBundle/SmoothSection.lean Modified Mathlib/MeasureTheory/Measure/Haar/Basic.lean Modified Mathlib/Topology/Sheaves/LocalPredicate.lean Modified Mathlib/Topology/VectorBundle/Hom.lean 2023-08-11 19:14:44 b48610f feat: every presheaf on a large category is a colimit of representables (#6387) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Limits/Presheaf.lean + def CategoryTheory.isColimitTautologicalCocone + def CategoryTheory.tautologicalCocone Modified Mathlib/CategoryTheory/StructuredArrow.lean +/- theorem CategoryTheory.CostructuredArrow.eq_mk + def CategoryTheory.CostructuredArrow.homMk' +/- theorem CategoryTheory.StructuredArrow.eq_mk +/- def CategoryTheory.StructuredArrow.homMk' Modified Mathlib/CategoryTheory/Yoneda.lean + theorem CategoryTheory.yonedaEquiv_comp' + theorem CategoryTheory.yonedaEquiv_comp + theorem CategoryTheory.yonedaEquiv_naturality' + theorem CategoryTheory.yonedaEquiv_symm_map + theorem CategoryTheory.yonedaEquiv_yoneda_map 2023-08-11 18:23:17 30b7080 docs: replace `⬝ BLACK VERY SMALL SQUARE` with `· MIDDLE DOT` (#6522) `MIDDLE DOT` is now valid Lean syntax for function arguments, which is what these docstrings are referring to. ESTIMATED CHANGES Modified Mathlib/Analysis/Normed/Group/Basic.lean Modified Mathlib/Analysis/NormedSpace/BanachSteinhaus.lean Modified Mathlib/Analysis/NormedSpace/Spectrum.lean 2023-08-11 17:06:18 cf85b04 feat(Topology): use `OrderHomClass` for `CompactExhaustion` (#6461) Also rename `is_compact'` field to `isCompact'`. ESTIMATED CHANGES Modified Mathlib/Topology/SubsetProperties.lean +/- theorem CompactExhaustion.subset_succ + theorem CompactExhaustion.toFun_eq_coe 2023-08-11 15:25:30 a71e958 feat(Data/Nat/Digits): sub_one_mul_sum_div_pow_eq_sub_sum_digits (#6505) - [x] depends on: #6448 - [x] depends on: #6493 ESTIMATED CHANGES Modified Mathlib/Data/Nat/Digits.lean + theorem Nat.sub_one_mul_sum_div_pow_eq_sub_sum_digits + theorem Nat.sub_one_mul_sum_log_div_pow_eq_sub_sum_digits 2023-08-11 14:14:11 5b3ada4 chore: delete unused letI and nolint (#6523) ESTIMATED CHANGES Modified Mathlib/FieldTheory/IsAlgClosed/Classification.lean 2023-08-11 14:14:09 ecc61a3 style: remove trailing whitespace and modify the linter to detect it (#6519) ESTIMATED CHANGES Modified Archive/Imo/Imo2011Q3.lean Modified Mathlib/Algebra/Algebra/Subalgebra/Unitization.lean Modified Mathlib/Algebra/Ring/Equiv.lean Modified Mathlib/Analysis/Convex/Combination.lean Modified Mathlib/Analysis/Convex/Cone/Proper.lean Modified Mathlib/Analysis/NormedSpace/HomeomorphBall.lean Modified Mathlib/Analysis/ODE/Gronwall.lean Modified Mathlib/Analysis/SpecialFunctions/Complex/LogDeriv.lean Modified Mathlib/CategoryTheory/DifferentialObject.lean +/- theorem CategoryTheory.DifferentialObject.comp_f Modified Mathlib/Data/Real/Sqrt.lean Modified Mathlib/Geometry/Euclidean/Inversion/Calculus.lean Modified Mathlib/Geometry/Manifold/SmoothManifoldWithCorners.lean Modified Mathlib/Geometry/Manifold/VectorBundle/FiberwiseLinear.lean Modified Mathlib/Geometry/Manifold/WhitneyEmbedding.lean Modified Mathlib/MeasureTheory/Integral/TorusIntegral.lean Modified Mathlib/NumberTheory/LegendreSymbol/Basic.lean Modified Mathlib/NumberTheory/Liouville/Measure.lean Modified Mathlib/Order/Filter/CountableSeparatingOn.lean Modified Mathlib/Order/Irreducible.lean Modified Mathlib/Tactic/Nontriviality/Core.lean Modified Mathlib/Topology/Sheaves/Functors.lean Modified scripts/lint-style.py 2023-08-11 14:14:08 6c055eb feat(GroupTheory/SpecificGroups/Dihedral): Conjugacy classes in odd dihedral groups (#6502) This PR counts conjugacy classes in odd dihedral groups. The even case is a bit harder due to the half-rotation being central. ESTIMATED CHANGES Modified Mathlib/GroupTheory/SpecificGroups/Dihedral.lean + def DihedralGroup.OddCommuteEquiv + theorem DihedralGroup.card_commute_odd + theorem DihedralGroup.card_conjClasses_odd + theorem DihedralGroup.nat_card 2023-08-11 14:14:07 e8820b8 feat: continuous linear equivalences act transitively on nonzero vectors (#6346) For any nonzero vectors, one can find a continuous linear equivalence sending the first one to the second one. This follows from the existence of nontrivial linear forms, whichis proved in mathlib in the two following situations: * normed spaces over R or C * locally convex vector spaces over R To obtain a statement that applies in these two cases, we introduce a new typeclass `SeparatingDual`. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/NormedSpace/HahnBanach/SeparatingDual.lean + theorem SeparatingDual.exists_continuousLinearEquiv_apply_eq + theorem SeparatingDual.exists_eq_one + theorem SeparatingDual.exists_eq_one_ne_zero_of_ne_zero_pair + theorem SeparatingDual.exists_ne_zero + theorem SeparatingDual.exists_separating_of_ne 2023-08-11 13:05:19 cf872ff chore: protect `Submodule.map_smul` (#6521) In the current situation, `open Submodule` prevents using the (exported) lemma [SMulHomClass.map_smul](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Algebra/Hom/GroupAction.html#SMulHomClass.map_smul) without qualifying it explicitly, which is a bit of a shame since we need it all the time for linear maps. This also means that using `map_smul` for [Submodule.map_smul](https://leanprover-community.github.io/mathlib4_docs/Mathlib/LinearAlgebra/Basic.html#Submodule.map_smul) will never work outside of `namespace Submodule`, so we might as well make it protected. ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/Basic.lean - theorem Submodule.map_smul 2023-08-11 11:56:31 68e7a9e feat(Algebra/Algebra/Opposite): tools for working with opposite algebras (#6364) This moves the `Algebra` instance on `MulOpposite` to a new file, and adds the `AlgHom` and `AlgEquiv` versions of various existing `RingHom` and `RingEquiv` definitions: * `AlgHom.fromOpposite` * `AlgHom.toOpposite` * `AlgHom.op` * `AlgHom.unop` * `AlgEquiv.op` * `AlgHom.unop` * `AlgEquiv.toOpposite` As `MulOpposite.instAlgebra` is no longer in `Mathlib.Algebra.Algebra.Basic`, some new downstream imports are needed. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Algebra/Basic.lean - theorem MulOpposite.algebraMap_apply Modified Mathlib/Algebra/Algebra/Operations.lean Added Mathlib/Algebra/Algebra/Opposite.lean + def AlgEquiv.op + theorem AlgEquiv.toAlgHom_op + theorem AlgEquiv.toAlgHom_unop + theorem AlgEquiv.toLinearEquiv_toOpposite + def AlgEquiv.toOpposite + theorem AlgEquiv.toRingEquiv_op + theorem AlgEquiv.toRingEquiv_toOpposite + theorem AlgEquiv.toRingEquiv_unop + def AlgHom.fromOpposite + theorem AlgHom.toLinearMap_fromOpposite + theorem AlgHom.toLinearMap_toOpposite + def AlgHom.toOpposite + theorem AlgHom.toRingHom_fromOpposite + theorem AlgHom.toRingHom_op + theorem AlgHom.toRingHom_toOpposite + theorem AlgHom.toRingHom_unop + theorem MulOpposite.algebraMap_apply Modified Mathlib/Analysis/NormedSpace/Basic.lean Modified Mathlib/Data/Matrix/Basic.lean 2023-08-11 10:51:16 4eabdeb feat: charP_iff_prime_eq_zero (#6516) ESTIMATED CHANGES Modified Mathlib/Algebra/CharP/Basic.lean + theorem CharP.charP_iff_prime_eq_zero 2023-08-11 10:51:15 4716e2a chore(Analysis/InnerProductSpace/PiL2): Make EuclideanSpace.equiv an `abbrev` (#6503) This definition already exists elsewhere more generally, but this spelling is admittedly easier to find. ESTIMATED CHANGES Modified Mathlib/Analysis/InnerProductSpace/PiL2.lean - def EuclideanSpace.equiv 2023-08-11 09:51:07 d567f7c chore: use `IsDirected` in `Filter.isBounded_sup` (#6511) ESTIMATED CHANGES Modified Mathlib/Order/LiminfLimsup.lean +/- theorem Filter.isBounded_sup 2023-08-11 09:19:53 a216784 chore: restore Type* in SpecificLimits/IsROrC.lean (#6515) This was accidentally changed in #6506. ESTIMATED CHANGES Modified Mathlib/Analysis/SpecificLimits/IsROrC.lean +/- theorem IsROrC.tendsto_inverse_atTop_nhds_0_nat 2023-08-11 08:55:46 b44650d feat: construct a smooth function on a manifold equal to one on a given closed set and with given support (#6067) ESTIMATED CHANGES Modified Mathlib/Geometry/Manifold/PartitionOfUnity.lean + theorem IsOpen.exists_msmooth_support_eq + theorem IsOpen.exists_msmooth_support_eq_aux + theorem SmoothPartitionOfUnity.exists_isSubordinate_chartAt_source + theorem SmoothPartitionOfUnity.exists_isSubordinate_chartAt_source_of_isClosed + theorem SmoothPartitionOfUnity.exists_pos_of_mem + theorem exists_msmooth_support_eq_eq_one_iff + theorem exists_msmooth_zero_iff_one_iff_of_closed 2023-08-11 08:07:28 eb58d9e chore: bump aesop (#6513) ESTIMATED CHANGES Modified lake-manifest.json 2023-08-11 07:19:05 94eadaf chore: fix lakefile (#6510) My PR https://github.com/leanprover-community/mathlib4/pull/6423 modified the lakefile to point to a branch of the `Qq` library, but this had only been necessary during my local testing against a patched version of Lean. I should not have committed this change, and we should not have merged it to `master`. It's harmless, I think, but should be reverted asap. ESTIMATED CHANGES Modified lake-manifest.json Modified lakefile.lean 2023-08-11 05:07:39 b0eb5ca feat(Data/Nat/Digits): sum_le_ofDigits (#6493) ESTIMATED CHANGES Modified Mathlib/Data/Nat/Digits.lean + theorem Nat.sum_le_ofDigits 2023-08-11 02:45:52 f4e6240 doc: add docstring for `StarOrderedRing ℝ` (#6481) ESTIMATED CHANGES Modified Mathlib/Data/Real/Sqrt.lean 2023-08-11 02:23:32 cd15d65 fix (InnerProductSpace.Basic): make toSesqForm noncomputable (#6512) Explicitly marks `ContinuousLinearMap.toSesqForm` as `noncomputable` to prevent runaway build process which does produces nothing. ESTIMATED CHANGES Modified Mathlib/Analysis/InnerProductSpace/Basic.lean - def ContinuousLinearMap.toSesqForm 2023-08-10 23:46:42 df08e0d chore: no need for universe polymorphism in convexHull_eq (#3634) ESTIMATED CHANGES Modified Mathlib/Analysis/Convex/Combination.lean Modified Mathlib/Analysis/Convex/Jensen.lean 2023-08-10 23:22:08 355541a style: fix Windows-style line-endings and modify the linter to detect them (#6506) style: fix Windows-style line-endings and modify the linter to detect them ESTIMATED CHANGES Modified Mathlib/Analysis/SpecificLimits/IsROrC.lean Modified scripts/lint-style.py 2023-08-10 22:19:40 057299d feat: Add a `DecidableEq` instance for `Polynomial` (#5942) Add a `DecidableEq` instance for `Polynomial` (in the presence of `DecidableEq` for coefficients). This instance is the companion of an analogue instance for `MvPolynomial`, and it allows to use if… then… else for `Polynomial` without having to `open Classical`. This also makes `Polynomial.instNormalizationMonoid` computable, by defining it in terms of this new instance. ESTIMATED CHANGES Modified Mathlib/Data/Polynomial/Basic.lean Modified Mathlib/Data/Polynomial/Degree/CardPowDegree.lean +/- theorem Polynomial.cardPowDegree_zero Modified Mathlib/Data/Polynomial/FieldDivision.lean +/- theorem Polynomial.coe_normUnit_of_ne_zero +/- theorem Polynomial.degree_normalize +/- theorem Polynomial.eval_gcd_eq_zero +/- theorem Polynomial.eval₂_gcd_eq_zero +/- theorem Polynomial.gcd_map +/- theorem Polynomial.isRoot_gcd_iff_isRoot_left_right +/- theorem Polynomial.monic_normalize +/- theorem Polynomial.normalize_monic +/- theorem Polynomial.root_gcd_iff_root_left_right +/- theorem Polynomial.root_left_of_root_gcd +/- theorem Polynomial.root_right_of_root_gcd 2023-08-10 21:26:54 96a3768 feat: Mul by invertible matrices is injective even for rectangular matrices (#6486) Multiplication by invertible matrices from the left or right is injective. Note that [`mul_left_injective₀`](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Algebra/GroupWithZero/Defs.html#mul_left_injective%E2%82%80) and friends don't apply because they would require similar (square) matrices. ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/Matrix/NonsingularInverse.lean + theorem Matrix.mul_left_inj_of_invertible + theorem Matrix.mul_left_injective_of_invertible + theorem Matrix.mul_right_inj_of_invertible + theorem Matrix.mul_right_injective_of_invertible 2023-08-10 19:52:43 32de3f6 chore: banish `Type _` and `Sort _` (#6499) We remove all possible occurences of `Type _` and `Sort _` in favor of `Type*` and `Sort*`. This has nice performance benefits. ESTIMATED CHANGES Modified Mathlib/Algebra/Abs.lean Modified Mathlib/Algebra/AddTorsor.lean +/- theorem AddTorsor.subsingleton_iff +/- theorem Equiv.injective_pointReflection_left_of_injective_bit0 +/- theorem vsub_eq_sub Modified Mathlib/Algebra/Algebra/Basic.lean +/- def Algebra.algebraMapSubmonoid +/- theorem Algebra.algebraMap_ofSubring +/- theorem Algebra.algebraMap_ofSubring_apply +/- theorem Algebra.algebra_ext +/- def Algebra.cast +/- theorem Algebra.coe_algebraMap_ofSubring +/- theorem Algebra.mem_algebraMapSubmonoid_of_mem +/- theorem NoZeroSMulDivisors.trans +/- theorem algebraMap.coe_prod +/- theorem algebraMap.coe_sum +/- theorem intCast_smul +/- theorem smul_algebraMap Modified Mathlib/Algebra/Algebra/Bilinear.lean Modified Mathlib/Algebra/Algebra/Equiv.lean +/- def AlgEquiv.arrowCongr +/- theorem AlgEquiv.arrowCongr_comp +/- theorem AlgEquiv.arrowCongr_symm +/- theorem AlgEquiv.arrowCongr_trans +/- theorem AlgEquiv.coe_apply_coe_coe_symm_apply +/- theorem AlgEquiv.coe_coe_symm_apply_coe_apply +/- theorem AlgEquiv.map_finsupp_sum +/- theorem AlgEquiv.map_sum Modified Mathlib/Algebra/Algebra/Hom.lean +/- def AlgHomClass.toAlgHom Modified Mathlib/Algebra/Algebra/NonUnitalSubalgebra.lean +/- theorem NonUnitalAlgebra.coe_iInf +/- theorem NonUnitalAlgebra.iInf_toSubmodule +/- theorem NonUnitalAlgebra.mem_iInf +/- theorem NonUnitalAlgebra.to_subring_eq_top +/- theorem NonUnitalAlgebra.top_toSubring +/- theorem NonUnitalSubalgebra.center_eq_top +/- theorem NonUnitalSubalgebra.center_toNonUnitalSubring +/- theorem NonUnitalSubalgebra.toSubring_subtype +/- theorem Set.smul_mem_center Modified Mathlib/Algebra/Algebra/Operations.lean +/- theorem Submodule.prod_span +/- theorem Submodule.prod_span_singleton Modified Mathlib/Algebra/Algebra/Pi.lean +/- def AlgEquiv.piCongrRight +/- theorem AlgEquiv.piCongrRight_refl +/- theorem AlgEquiv.piCongrRight_symm +/- theorem AlgEquiv.piCongrRight_trans Modified Mathlib/Algebra/Algebra/Prod.lean Modified Mathlib/Algebra/Algebra/RestrictScalars.lean +/- def RestrictScalars Modified Mathlib/Algebra/Algebra/Spectrum.lean +/- theorem AlgEquiv.spectrum_eq Modified Mathlib/Algebra/Algebra/Subalgebra/Basic.lean +/- theorem Algebra.bijective_algebraMap_iff +/- theorem Algebra.coe_iInf +/- theorem Algebra.iInf_toSubmodule +/- theorem Algebra.mem_iInf +/- theorem Algebra.toSubring_eq_top +/- theorem Algebra.top_toSubring +/- theorem Subalgebra.algebraMap_eq +/- theorem Subalgebra.center_eq_top +/- theorem Subalgebra.center_toSubring +/- theorem Subalgebra.mem_of_finset_sum_eq_one_of_pow_smul_mem +/- theorem Subalgebra.mem_of_span_eq_top_of_smul_pow_mem +/- theorem Subalgebra.rangeS_algebraMap +/- theorem Subalgebra.range_algebraMap +/- theorem Subalgebra.toSubring_subtype +/- theorem algebraMap_mem Modified Mathlib/Algebra/Algebra/Subalgebra/Pointwise.lean +/- theorem Subalgebra.mul_toSubmodule +/- theorem Subalgebra.pointwise_smul_toSubring Modified Mathlib/Algebra/Algebra/Subalgebra/Unitization.lean +/- theorem NonUnitalSubalgebra.unitization_injective +/- def NonUnitalSubsemiring.unitization +/- theorem NonUnitalSubsemiring.unitization_apply_coe +/- theorem NonUnitalSubsemiring.unitization_surjective Modified Mathlib/Algebra/Algebra/Tower.lean +/- theorem Submodule.map_mem_span_algebraMap_image +/- theorem Submodule.span_algebraMap_image_of_tower Modified Mathlib/Algebra/Algebra/Unitization.lean +/- theorem Unitization.algHom_ext'' +/- theorem Unitization.algHom_ext +/- def Unitization.inrNonUnitalAlgHom +/- def Unitization.inrNonUnitalStarAlgHom +/- def Unitization Modified Mathlib/Algebra/AlgebraicCard.lean +/- theorem Algebraic.aleph0_le_cardinal_mk_of_charZero +/- theorem Algebraic.infinite_of_charZero Modified Mathlib/Algebra/Associated.lean +/- theorem associated_isUnit_mul_left_iff +/- theorem associated_isUnit_mul_right_iff +/- theorem associated_mul_isUnit_left_iff +/- theorem associated_mul_isUnit_right_iff +/- theorem associated_mul_unit_left +/- theorem associated_mul_unit_left_iff +/- theorem associated_mul_unit_right +/- theorem associated_mul_unit_right_iff +/- theorem associated_unit_mul_left +/- theorem associated_unit_mul_left_iff +/- theorem associated_unit_mul_right +/- theorem associated_unit_mul_right_iff +/- theorem prime_dvd_prime_iff_eq +/- theorem prime_pow_succ_dvd_mul Modified Mathlib/Algebra/BigOperators/Associated.lean Modified Mathlib/Algebra/BigOperators/Basic.lean +/- theorem Finset.card_sigma +/- theorem Finset.eq_prod_range_div' +/- theorem Finset.eq_prod_range_div +/- theorem Finset.prod_congr_set +/- theorem Finset.prod_dvd_prod_of_subset +/- theorem Finset.prod_erase_lt_of_one_lt +/- theorem Finset.prod_induction +/- theorem Finset.prod_induction_nonempty +/- theorem Finset.prod_list_map_count +/- theorem Finset.prod_multiset_map_count +/- theorem Finset.prod_pi_mulSingle +/- theorem Finset.prod_range_add_div_prod_range +/- theorem Finset.prod_range_div' +/- theorem Finset.prod_range_div +/- theorem Finset.prod_sigma' +/- theorem Finset.prod_sigma +/- theorem Finset.prod_unique_nonempty +/- theorem Fintype.prod_bijective +/- theorem Fintype.prod_empty +/- theorem Fintype.prod_equiv +/- theorem Fintype.prod_subsingleton +/- theorem Fintype.prod_subtype_mul_prod_subtype +/- theorem Fintype.prod_unique +/- theorem Int.cast_multiset_prod +/- theorem Int.cast_prod +/- theorem List.prod_toFinset +/- theorem Multiset.disjoint_finset_sum_left +/- theorem Multiset.disjoint_finset_sum_right +/- theorem Multiset.finset_sum_eq_sup_iff_disjoint +/- theorem Multiset.prod_sum +/- theorem Multiset.sup_powerset_len +/- theorem Units.coe_prod +/- theorem map_prod +/- theorem nat_abs_sum_le Modified Mathlib/Algebra/BigOperators/Fin.lean +/- theorem Fin.inv_partialProd_mul_eq_contractNth +/- theorem Fin.partialProd_left_inv +/- theorem Fin.partialProd_right_inv +/- theorem Fin.prod_Ioi_succ +/- theorem Fin.prod_Ioi_zero +/- theorem Fin.prod_congr' +/- theorem Fin.prod_trunc +/- theorem Fin.prod_univ_add +/- theorem Fin.sum_pow_mul_eq_add_pow +/- theorem List.alternatingProd_eq_finset_prod Modified Mathlib/Algebra/BigOperators/Finprod.lean +/- theorem finprod_cond_nonneg +/- theorem finprod_curry₃ +/- theorem finprod_eq_zero +/- theorem finprod_mem_finset_product₃ +/- theorem finprod_nonneg +/- theorem finsum_mul +/- theorem finsum_smul' +/- theorem finsum_smul +/- theorem mul_finsum +/- theorem one_le_finprod' +/- theorem one_lt_finprod' +/- theorem single_le_finprod +/- theorem smul_finsum' +/- theorem smul_finsum Modified Mathlib/Algebra/BigOperators/Finsupp.lean +/- theorem Finsupp.sum_ite_self_eq' +/- theorem Finsupp.sum_ite_self_eq +/- theorem Finsupp.sum_ite_self_eq_aux +/- theorem Finsupp.support_sum_eq_biUnion +/- theorem SubmonoidClass.finsupp_prod_mem +/- theorem map_finsupp_prod Modified Mathlib/Algebra/BigOperators/Intervals.lean +/- theorem Finset.prod_Ico_eq_div +/- theorem Finset.prod_Ico_eq_mul_inv +/- theorem Finset.prod_range_div_prod_range +/- theorem Finset.sum_Ico_Ico_comm +/- theorem Finset.sum_Ico_reflect +/- theorem Finset.sum_range_reflect Modified Mathlib/Algebra/BigOperators/Multiset/Basic.lean +/- theorem Multiset.prod_hom' +/- theorem Multiset.prod_hom +/- theorem map_multiset_prod Modified Mathlib/Algebra/BigOperators/Multiset/Lemmas.lean Modified Mathlib/Algebra/BigOperators/NatAntidiagonal.lean +/- theorem Finset.Nat.prod_antidiagonal_eq_prod_range_succ +/- theorem Finset.Nat.prod_antidiagonal_eq_prod_range_succ_mk Modified Mathlib/Algebra/BigOperators/Option.lean Modified Mathlib/Algebra/BigOperators/Order.lean +/- theorem Finset.abs_prod +/- theorem Finset.abs_sum_le_sum_abs +/- theorem Finset.abs_sum_of_nonneg' +/- theorem Finset.abs_sum_of_nonneg Modified Mathlib/Algebra/BigOperators/Pi.lean +/- theorem Finset.prod_apply +/- theorem Finset.prod_fn +/- theorem Fintype.prod_apply +/- theorem MonoidHom.functions_ext' +/- theorem MonoidHom.functions_ext +/- theorem Pi.list_prod_apply +/- theorem Pi.multiset_prod_apply +/- theorem RingHom.functions_ext +/- theorem prod_mk_prod Modified Mathlib/Algebra/BigOperators/Ring.lean +/- theorem Finset.prod_add_ordered +/- theorem Finset.prod_one_sub_ordered +/- theorem Finset.prod_sub_ordered +/- theorem Finset.prod_sum +/- theorem Finset.sum_mul_sum +/- theorem Finset.sum_pow_mul_eq_add_pow Modified Mathlib/Algebra/BigOperators/RingEquiv.lean Modified Mathlib/Algebra/Bounds.lean Modified Mathlib/Algebra/Category/BoolRingCat.lean +/- theorem BoolRingCat.coe_of +/- def BoolRingCat.of Modified Mathlib/Algebra/Category/GroupCat/Basic.lean Modified Mathlib/Algebra/Category/GroupWithZeroCat.lean +/- def GroupWithZeroCat.of Modified Mathlib/Algebra/Category/ModuleCat/Adjunctions.lean +/- def CategoryTheory.Free.of +/- def CategoryTheory.Free Modified Mathlib/Algebra/Category/ModuleCat/Free.lean Modified Mathlib/Algebra/Category/ModuleCat/Monoidal/Basic.lean Modified Mathlib/Algebra/Category/ModuleCat/Simple.lean +/- theorem simple_of_finrank_eq_one Modified Mathlib/Algebra/Category/MonCat/Basic.lean +/- theorem MonCat.mul_of +/- theorem MonCat.one_of Modified Mathlib/Algebra/Category/Ring/Basic.lean Modified Mathlib/Algebra/Category/Ring/Instances.lean +/- theorem IsLocalization.epi Modified Mathlib/Algebra/Category/SemigroupCat/Basic.lean Modified Mathlib/Algebra/CharP/Algebra.lean +/- theorem charP_of_injective_algebraMap' +/- theorem charP_of_injective_algebraMap +/- theorem charZero_of_injective_algebraMap Modified Mathlib/Algebra/CharP/Basic.lean +/- theorem CharP.charP_to_charZero +/- theorem Int.cast_injOn_of_ringChar_ne_two +/- theorem Ring.eq_self_iff_eq_zero_of_char_ne_two +/- theorem Ring.neg_one_ne_one_of_char_ne_two +/- theorem RingHom.charP_iff_charP +/- theorem isSquare_of_charTwo' +/- theorem sum_pow_char Modified Mathlib/Algebra/CharP/CharAndCard.lean +/- theorem isUnit_iff_not_dvd_char +/- theorem isUnit_iff_not_dvd_char_of_ringChar_ne_zero +/- theorem not_isUnit_prime_of_dvd_card +/- theorem prime_dvd_char_iff_dvd_card Modified Mathlib/Algebra/CharP/Invertible.lean Modified Mathlib/Algebra/CharP/LocalRing.lean +/- theorem charP_zero_or_prime_power Modified Mathlib/Algebra/CharP/MixedCharZero.lean Modified Mathlib/Algebra/CharP/Quotient.lean +/- theorem CharP.quotient' +/- theorem Ideal.Quotient.index_eq_zero Modified Mathlib/Algebra/CharP/Two.lean Modified Mathlib/Algebra/CharZero/Infinite.lean Modified Mathlib/Algebra/CharZero/Lemmas.lean +/- theorem Nat.cast_div_charZero +/- theorem Nat.cast_pow_eq_one Modified Mathlib/Algebra/CharZero/Quotient.lean Modified Mathlib/Algebra/ContinuedFractions/Basic.lean +/- def GeneralizedContinuedFraction.Pair.map Modified Mathlib/Algebra/ContinuedFractions/Computation/ApproximationCorollaries.lean Modified Mathlib/Algebra/ContinuedFractions/Computation/Approximations.lean Modified Mathlib/Algebra/ContinuedFractions/Computation/Basic.lean +/- def GeneralizedContinuedFraction.IntFractPair.mapFr Modified Mathlib/Algebra/ContinuedFractions/Computation/CorrectnessTerminating.lean Modified Mathlib/Algebra/ContinuedFractions/Computation/TerminatesIffRat.lean Modified Mathlib/Algebra/ContinuedFractions/Computation/Translations.lean Modified Mathlib/Algebra/ContinuedFractions/ContinuantsRecurrence.lean Modified Mathlib/Algebra/ContinuedFractions/ConvergentsEquiv.lean Modified Mathlib/Algebra/ContinuedFractions/TerminatedStable.lean Modified Mathlib/Algebra/ContinuedFractions/Translations.lean Modified Mathlib/Algebra/CovariantAndContravariant.lean Modified Mathlib/Algebra/CubicDiscriminant.lean +/- def Cubic.disc +/- structure Cubic Modified Mathlib/Algebra/DirectSum/Algebra.lean Modified Mathlib/Algebra/DirectSum/Basic.lean +/- theorem DirectSum.IsInternal.addSubmonoid_iSup_eq_top +/- def DirectSum.IsInternal +/- theorem DirectSum.addHom_ext' +/- theorem DirectSum.addHom_ext +/- theorem DirectSum.coeAddMonoidHom_of +/- theorem DirectSum.coe_of_apply Modified Mathlib/Algebra/DirectSum/Decomposition.lean Modified Mathlib/Algebra/DirectSum/Finsupp.lean Modified Mathlib/Algebra/DirectSum/Internal.lean Modified Mathlib/Algebra/DirectSum/Module.lean +/- theorem DirectSum.IsInternal.addSubgroup_independent +/- theorem DirectSum.IsInternal.addSubmonoid_independent +/- theorem DirectSum.IsInternal.collectedBasis_coe +/- theorem DirectSum.IsInternal.collectedBasis_mem Modified Mathlib/Algebra/DirectSum/Ring.lean +/- theorem DirectSum.of_eq_of_gradedMonoid_eq Modified Mathlib/Algebra/Divisibility/Basic.lean +/- theorem map_dvd Modified Mathlib/Algebra/Divisibility/Prod.lean Modified Mathlib/Algebra/Divisibility/Units.lean Modified Mathlib/Algebra/DualNumber.lean Modified Mathlib/Algebra/DualQuaternion.lean Modified Mathlib/Algebra/EuclideanDomain/Basic.lean Modified Mathlib/Algebra/EuclideanDomain/Defs.lean +/- theorem EuclideanDomain.mod_eq_sub_mul_div Modified Mathlib/Algebra/EuclideanDomain/Instances.lean Modified Mathlib/Algebra/Field/Basic.lean Modified Mathlib/Algebra/Field/Defs.lean +/- theorem Rat.smul_one_eq_coe Modified Mathlib/Algebra/Field/Opposite.lean Modified Mathlib/Algebra/Field/Power.lean Modified Mathlib/Algebra/FreeAlgebra.lean +/- def FreeAlgebra.liftFun Modified Mathlib/Algebra/FreeMonoid/Basic.lean +/- def FreeMonoid.casesOn +/- theorem FreeMonoid.casesOn_of_mul +/- theorem FreeMonoid.casesOn_one +/- def FreeMonoid.recOn +/- theorem FreeMonoid.recOn_of_mul +/- theorem FreeMonoid.recOn_one Modified Mathlib/Algebra/FreeMonoid/Count.lean Modified Mathlib/Algebra/GCDMonoid/Basic.lean +/- theorem extract_gcd +/- theorem gcd_greatest +/- theorem gcd_greatest_associated +/- theorem isUnit_gcd_of_eq_mul_gcd Modified Mathlib/Algebra/GCDMonoid/Div.lean +/- theorem Finset.Int.gcd_div_eq_one +/- theorem Finset.Nat.gcd_div_eq_one +/- theorem Finset.Polynomial.gcd_div_eq_one Modified Mathlib/Algebra/GCDMonoid/Finset.lean Modified Mathlib/Algebra/GCDMonoid/IntegrallyClosed.lean Modified Mathlib/Algebra/GCDMonoid/Multiset.lean Modified Mathlib/Algebra/GeomSum.lean +/- theorem geom_sum₂_self Modified Mathlib/Algebra/GradedMonoid.lean +/- def GradedMonoid.mk +/- def GradedMonoid +/- theorem SetLike.coe_gMul +/- theorem SetLike.coe_gOne +/- theorem SetLike.coe_gnpow +/- theorem SetLike.mul_mem_graded +/- theorem SetLike.one_mem_graded Modified Mathlib/Algebra/GradedMulAction.lean +/- theorem SetLike.coe_GSmul Modified Mathlib/Algebra/Group/Basic.lean Modified Mathlib/Algebra/Group/Commutator.lean +/- theorem commutatorElement_def Modified Mathlib/Algebra/Group/Commute.lean +/- def Commute Modified Mathlib/Algebra/Group/Conj.lean +/- def ConjClasses +/- theorem isConj_iff_eq Modified Mathlib/Algebra/Group/ConjFinite.lean Modified Mathlib/Algebra/Group/Defs.lean +/- theorem Group.toDivInvMonoid_injective +/- def zpowRec +/- def zsmulRec Modified Mathlib/Algebra/Group/Ext.lean +/- theorem CancelCommMonoid.ext +/- theorem CancelMonoid.ext +/- theorem CommGroup.ext +/- theorem CommMonoid.ext +/- theorem DivInvMonoid.ext +/- theorem Group.ext Modified Mathlib/Algebra/Group/InjSurj.lean Modified Mathlib/Algebra/Group/Opposite.lean +/- def MonoidHom.fromOpposite +/- def MonoidHom.toOpposite +/- def MulEquiv.inv' +/- def MulHom.fromOpposite +/- def MulHom.toOpposite Modified Mathlib/Algebra/Group/OrderSynonym.lean Modified Mathlib/Algebra/Group/Pi.lean +/- def MonoidHom.coeFn +/- def MulHom.coeFn +/- def Pi.constMonoidHom +/- def Pi.constMulHom +/- theorem Pi.mulSingle_mul_mulSingle_eq_mulSingle_mul_mulSingle +/- theorem Set.preimage_one Modified Mathlib/Algebra/Group/Prod.lean +/- theorem MonoidHom.comp_coprod +/- theorem MonoidHom.coprod_inl_inr +/- theorem MulHom.comp_coprod +/- def Units.embedProduct +/- theorem Units.embedProduct_injective Modified Mathlib/Algebra/Group/TypeTags.lean +/- def Additive +/- def Multiplicative +/- theorem ofAdd_eq_one +/- theorem ofMul_eq_zero Modified Mathlib/Algebra/Group/ULift.lean Modified Mathlib/Algebra/Group/UniqueProds.lean Modified Mathlib/Algebra/Group/Units.lean +/- theorem Units.isUnit_units_mul +/- theorem Units.val_inv_eq_inv_val +/- theorem unique_one Modified Mathlib/Algebra/Group/WithOne/Defs.lean +/- def WithOne.recOneCoe Modified Mathlib/Algebra/Group/WithOne/Units.lean +/- def WithZero.unitsWithZeroEquiv Modified Mathlib/Algebra/GroupPower/Basic.lean +/- theorem pow_eq_pow_mod Modified Mathlib/Algebra/GroupPower/Identities.lean Modified Mathlib/Algebra/GroupPower/Lemmas.lean Modified Mathlib/Algebra/GroupPower/Order.lean Modified Mathlib/Algebra/GroupPower/Ring.lean Modified Mathlib/Algebra/GroupRingAction/Basic.lean Modified Mathlib/Algebra/GroupRingAction/Invariant.lean Modified Mathlib/Algebra/GroupRingAction/Subobjects.lean Modified Mathlib/Algebra/GroupWithZero/Basic.lean Modified Mathlib/Algebra/GroupWithZero/Commute.lean Modified Mathlib/Algebra/GroupWithZero/Defs.lean Modified Mathlib/Algebra/GroupWithZero/Divisibility.lean Modified Mathlib/Algebra/GroupWithZero/InjSurj.lean Modified Mathlib/Algebra/GroupWithZero/Power.lean +/- theorem map_zpow₀ Modified Mathlib/Algebra/GroupWithZero/Semiconj.lean Modified Mathlib/Algebra/GroupWithZero/Units/Basic.lean Modified Mathlib/Algebra/GroupWithZero/Units/Lemmas.lean +/- theorem MonoidWithZero.coe_inverse +/- theorem MonoidWithZero.inverse_apply +/- theorem Units.smul_mk0 +/- def invMonoidWithZeroHom Modified Mathlib/Algebra/Hom/Aut.lean +/- def MulAut Modified Mathlib/Algebra/Hom/Centroid.lean +/- structure CentroidHom Modified Mathlib/Algebra/Hom/Commute.lean Modified Mathlib/Algebra/Hom/Embedding.lean +/- def mulLeftEmbedding +/- def mulRightEmbedding +/- theorem mul_left_embedding_eq_mul_right_embedding Modified Mathlib/Algebra/Hom/Equiv/Basic.lean +/- structure AddEquiv +/- def MonoidHom.inverse +/- def MulEquiv.arrowCongr +/- theorem MulEquiv.comp_symm_eq +/- theorem MulEquiv.eq_comp_symm +/- theorem MulEquiv.eq_symm_comp +/- def MulEquiv.piCongrRight +/- theorem MulEquiv.piCongrRight_refl +/- theorem MulEquiv.piCongrRight_symm +/- theorem MulEquiv.piCongrRight_trans +/- def MulEquiv.piSubsingleton +/- def MulEquiv.refl +/- def MulEquiv.symm +/- theorem MulEquiv.symm_comp_eq +/- structure MulEquiv Modified Mathlib/Algebra/Hom/Equiv/TypeTags.lean Modified Mathlib/Algebra/Hom/Equiv/Units/Basic.lean +/- def MulEquiv.inv +/- theorem MulEquiv.inv_symm Modified Mathlib/Algebra/Hom/Equiv/Units/GroupWithZero.lean Modified Mathlib/Algebra/Hom/Freiman.lean +/- structure AddFreimanHom +/- structure FreimanHom Modified Mathlib/Algebra/Hom/Group.lean +/- structure AddHom +/- structure AddMonoidHom +/- theorem MonoidHom.coe_of_map_div +/- theorem MonoidHom.coe_of_map_mul_inv +/- theorem MonoidHom.comp_assoc +/- def MonoidHom.id +/- def MonoidHom.ofMapDiv +/- def MonoidHom.ofMapMulInv +/- structure MonoidHom +/- theorem MonoidWithZeroHom.comp_assoc +/- def MonoidWithZeroHom.id +/- structure MonoidWithZeroHom +/- theorem MulHom.comp_assoc +/- def MulHom.id +/- structure MulHom +/- theorem OneHom.comp_assoc +/- def OneHom.id +/- structure OneHom +/- structure ZeroHom +/- theorem map_ne_one_iff +/- theorem ne_one_of_map Modified Mathlib/Algebra/Hom/GroupAction.lean +/- def SMulCommClass.toDistribMulActionHom +/- def SMulCommClass.toMulActionHom Modified Mathlib/Algebra/Hom/GroupInstances.lean Modified Mathlib/Algebra/Hom/Iterate.lean +/- theorem hom_coe_pow Modified Mathlib/Algebra/Hom/NonUnitalAlg.lean Modified Mathlib/Algebra/Hom/Ring.lean +/- structure NonUnitalRingHom +/- theorem RingHom.coe_coe +/- def RingHom.id +/- theorem RingHom.map_ite_one_zero +/- theorem RingHom.map_ite_zero_one +/- structure RingHom Modified Mathlib/Algebra/Hom/Units.lean +/- theorem MonoidHom.coe_toHomUnits +/- def MonoidHom.toHomUnits +/- theorem map_units_inv Modified Mathlib/Algebra/Homology/Additive.lean Modified Mathlib/Algebra/Homology/ComplexShape.lean +/- def ComplexShape.down' +/- theorem ComplexShape.down'_mk +/- def ComplexShape.down +/- theorem ComplexShape.down_mk +/- def ComplexShape.refl +/- def ComplexShape.up' +/- def ComplexShape.up +/- structure ComplexShape Modified Mathlib/Algebra/Homology/DifferentialObject.lean Modified Mathlib/Algebra/Homology/Flip.lean Modified Mathlib/Algebra/Homology/Functor.lean +/- def HomologicalComplex.asFunctor +/- def HomologicalComplex.complexOfFunctorsToFunctorToComplex Modified Mathlib/Algebra/Homology/HomologicalComplex.lean +/- theorem ChainComplex.next +/- theorem ChainComplex.prev +/- theorem CochainComplex.next +/- theorem CochainComplex.prev Modified Mathlib/Algebra/Homology/Homology.lean Modified Mathlib/Algebra/Homology/Homotopy.lean +/- theorem Homotopy.map_nullHomotopicMap' +/- theorem Homotopy.map_nullHomotopicMap +/- def HomotopyEquiv.ofIso Modified Mathlib/Algebra/Homology/HomotopyCategory.lean Modified Mathlib/Algebra/Homology/ImageToKernel.lean +/- theorem homology.comp_right_eq_comp_left Modified Mathlib/Algebra/Homology/ModuleCat.lean Modified Mathlib/Algebra/Homology/Opposite.lean Modified Mathlib/Algebra/Homology/QuasiIso.lean Modified Mathlib/Algebra/Homology/ShortComplex/Basic.lean Modified Mathlib/Algebra/Homology/ShortComplex/FunctorEquivalence.lean Modified Mathlib/Algebra/Homology/ShortComplex/HomologicalComplex.lean Modified Mathlib/Algebra/Homology/ShortComplex/Homology.lean Modified Mathlib/Algebra/Homology/ShortComplex/LeftHomology.lean Modified Mathlib/Algebra/Homology/ShortComplex/Limits.lean Modified Mathlib/Algebra/Homology/ShortComplex/RightHomology.lean Modified Mathlib/Algebra/Homology/ShortExact/Abelian.lean Modified Mathlib/Algebra/Homology/ShortExact/Preadditive.lean +/- theorem CategoryTheory.Split.map Modified Mathlib/Algebra/Homology/Single.lean Modified Mathlib/Algebra/IndicatorFunction.lean +/- theorem MonoidHom.map_mulIndicator +/- theorem Set.indicator_diff +/- theorem Set.mulIndicator_range_comp Modified Mathlib/Algebra/Invertible.lean +/- def Invertible.map +/- def Invertible.ofLeftInverse +/- theorem commute_invOf +/- def invertibleEquivOfLeftInverse +/- theorem map_invOf Modified Mathlib/Algebra/IsPrimePow.lean Modified Mathlib/Algebra/Jordan/Basic.lean Modified Mathlib/Algebra/Lie/Basic.lean +/- structure LieHom Modified Mathlib/Algebra/Lie/CartanSubalgebra.lean +/- def LieSubmodule.IsUcsLimit Modified Mathlib/Algebra/Lie/Classical.lean Modified Mathlib/Algebra/Lie/Free.lean +/- theorem FreeLieAlgebra.Rel.smulOfTower Modified Mathlib/Algebra/Lie/Nilpotent.lean Modified Mathlib/Algebra/Lie/Normalizer.lean Modified Mathlib/Algebra/Lie/OfAssociative.lean +/- theorem LieRing.lie_apply Modified Mathlib/Algebra/Lie/Quotient.lean Modified Mathlib/Algebra/Lie/Subalgebra.lean Modified Mathlib/Algebra/Lie/Submodule.lean +/- theorem LieIdeal.coe_bracket_of_module Modified Mathlib/Algebra/LinearRecurrence.lean +/- structure LinearRecurrence Modified Mathlib/Algebra/ModEq.lean Modified Mathlib/Algebra/Module/Algebra.lean Modified Mathlib/Algebra/Module/Basic.lean +/- theorem Function.Injective.noZeroSMulDivisors +/- def Function.Surjective.moduleLeft +/- theorem Int.smul_one_eq_coe +/- theorem Module.ext' +/- theorem Nat.smul_one_eq_coe +/- theorem inv_int_cast_smul_comm +/- theorem inv_int_cast_smul_eq +/- theorem inv_nat_cast_smul_comm +/- theorem inv_nat_cast_smul_eq +/- theorem map_int_cast_smul +/- theorem map_inv_int_cast_smul +/- theorem map_inv_nat_cast_smul +/- theorem map_nat_cast_smul +/- theorem map_rat_cast_smul +/- theorem map_rat_smul +/- theorem rat_cast_smul_eq +/- theorem smul_add_one_sub_smul Modified Mathlib/Algebra/Module/BigOperators.lean Modified Mathlib/Algebra/Module/Bimodule.lean +/- def Subbimodule.baseChange Modified Mathlib/Algebra/Module/Equiv.lean +/- def LinearEquiv.Simps.apply +/- def LinearEquiv.Simps.symm_apply +/- theorem LinearEquiv.comp_symm_eq +/- theorem LinearEquiv.eq_comp_symm +/- theorem LinearEquiv.eq_symm_comp +/- theorem LinearEquiv.symm_comp_eq +/- structure LinearEquiv +/- def Module.compHom.toLinearEquiv Modified Mathlib/Algebra/Module/GradedModule.lean Modified Mathlib/Algebra/Module/Hom.lean Modified Mathlib/Algebra/Module/LinearMap.lean +/- theorem IsLinearMap.isLinearMap_smul' +/- theorem IsLinearMap.isLinearMap_smul +/- theorem LinearMap.map_smul_of_tower +/- structure LinearMap +/- def Module.compHom.toLinearMap Modified Mathlib/Algebra/Module/LocalizedModule.lean +/- theorem IsLocalizedModule.mk'_mul_mk' +/- theorem IsLocalizedModule.mk'_mul_mk'_of_map_mul +/- theorem IsLocalizedModule.mk'_neg +/- theorem IsLocalizedModule.mk'_sub +/- theorem IsLocalizedModule.mk'_sub_mk' +/- theorem IsLocalizedModule.mkOfAlgebra +/- theorem LocalizedModule.algebraMap_mk +/- def LocalizedModule.liftOn +/- theorem LocalizedModule.liftOn_mk +/- def LocalizedModule.liftOn₂ +/- theorem LocalizedModule.liftOn₂_mk +/- theorem LocalizedModule.mk_mul_mk +/- theorem LocalizedModule.mk_neg Modified Mathlib/Algebra/Module/PID.lean Modified Mathlib/Algebra/Module/Pi.lean +/- theorem IsSMulRegular.pi Modified Mathlib/Algebra/Module/PointwisePi.lean Modified Mathlib/Algebra/Module/Prod.lean Modified Mathlib/Algebra/Module/Projective.lean +/- theorem Module.Projective.of_basis Modified Mathlib/Algebra/Module/Submodule/Basic.lean +/- def SMulMemClass.toModule' Modified Mathlib/Algebra/Module/Submodule/Bilinear.lean Modified Mathlib/Algebra/Module/Submodule/Lattice.lean +/- theorem Submodule.mem_iSup_of_mem +/- theorem Submodule.sub_mem_sup +/- theorem Submodule.sum_mem_biSup +/- theorem Submodule.sum_mem_iSup Modified Mathlib/Algebra/Module/Submodule/Pointwise.lean +/- theorem Submodule.neg_iInf +/- theorem Submodule.neg_iSup +/- theorem Submodule.pointwise_smul_toAddSubgroup +/- theorem Submodule.smul_le_self_of_tower Modified Mathlib/Algebra/Module/Torsion.lean +/- theorem Ideal.CompleteLattice.Independent.linear_independent' +/- def Module.IsTorsion' Modified Mathlib/Algebra/Module/Zlattice.lean Modified Mathlib/Algebra/MonoidAlgebra/Basic.lean +/- theorem AddMonoidAlgebra.liftNC_mul +/- theorem AddMonoidAlgebra.liftNC_one +/- theorem AddMonoidAlgebra.liftNC_smul +/- def AddMonoidAlgebra.mapDomainAlgHom +/- def AddMonoidAlgebra.mapDomainNonUnitalAlgHom +/- def AddMonoidAlgebra.mapDomainRingHom +/- theorem AddMonoidAlgebra.mapDomain_algebraMap +/- theorem AddMonoidAlgebra.mapDomain_mul +/- theorem AddMonoidAlgebra.mapDomain_one +/- theorem AddMonoidAlgebra.mapDomain_single +/- theorem AddMonoidAlgebra.mapDomain_sum +/- theorem MonoidAlgebra.coe_algebraMap +/- theorem MonoidAlgebra.liftNC_mul +/- theorem MonoidAlgebra.liftNC_one +/- theorem MonoidAlgebra.liftNC_smul +/- def MonoidAlgebra.mapDomainAlgHom +/- def MonoidAlgebra.mapDomainNonUnitalAlgHom +/- def MonoidAlgebra.mapDomainRingHom +/- theorem MonoidAlgebra.mapDomain_algebraMap +/- theorem MonoidAlgebra.mapDomain_mul +/- theorem MonoidAlgebra.mapDomain_one +/- theorem MonoidAlgebra.mapDomain_sum +/- def MonoidAlgebra.singleOneAlgHom +/- theorem MonoidAlgebra.single_algebraMap_eq_algebraMap_mul_of Modified Mathlib/Algebra/MonoidAlgebra/Degree.lean Modified Mathlib/Algebra/MonoidAlgebra/Division.lean Modified Mathlib/Algebra/MonoidAlgebra/Grading.lean Modified Mathlib/Algebra/MonoidAlgebra/Ideal.lean Modified Mathlib/Algebra/MonoidAlgebra/NoZeroDivisors.lean Modified Mathlib/Algebra/MonoidAlgebra/ToDirectSum.lean Modified Mathlib/Algebra/NeZero.lean +/- theorem neZero_iff +/- theorem not_neZero Modified Mathlib/Algebra/Opposites.lean +/- theorem MulOpposite.op_smul +/- theorem MulOpposite.unop_smul Modified Mathlib/Algebra/Order/AbsoluteValue.lean +/- structure AbsoluteValue Modified Mathlib/Algebra/Order/Algebra.lean Modified Mathlib/Algebra/Order/Archimedean.lean Modified Mathlib/Algebra/Order/Chebyshev.lean Modified Mathlib/Algebra/Order/CompleteField.lean Modified Mathlib/Algebra/Order/EuclideanAbsoluteValue.lean Modified Mathlib/Algebra/Order/Field/Basic.lean +/- theorem Monotone.div_const +/- theorem StrictMono.div_const Modified Mathlib/Algebra/Order/Field/Canonical/Basic.lean Modified Mathlib/Algebra/Order/Field/Canonical/Defs.lean Modified Mathlib/Algebra/Order/Field/Defs.lean Modified Mathlib/Algebra/Order/Field/InjSurj.lean Modified Mathlib/Algebra/Order/Field/Pi.lean Modified Mathlib/Algebra/Order/Field/Power.lean Modified Mathlib/Algebra/Order/Floor.lean +/- theorem Int.abs_sub_lt_one_of_floor_eq_floor +/- theorem Nat.ceil_intCast Modified Mathlib/Algebra/Order/Group/Abs.lean +/- theorem apply_abs_le_mul_of_one_le' +/- theorem apply_abs_le_mul_of_one_le Modified Mathlib/Algebra/Order/Group/Defs.lean +/- structure AddCommGroup.PositiveCone +/- structure AddCommGroup.TotalPositiveCone +/- def LinearOrderedAddCommGroup.mkOfPositiveCone +/- def OrderedAddCommGroup.mkOfPositiveCone +/- theorem div_le_div_flip Modified Mathlib/Algebra/Order/Group/DenselyOrdered.lean Modified Mathlib/Algebra/Order/Group/InjSurj.lean +/- def Function.Injective.linearOrderedCommGroup +/- def Function.Injective.orderedCommGroup Modified Mathlib/Algebra/Order/Group/Instances.lean Modified Mathlib/Algebra/Order/Group/MinMax.lean Modified Mathlib/Algebra/Order/Group/Prod.lean Modified Mathlib/Algebra/Order/Group/TypeTags.lean Modified Mathlib/Algebra/Order/Group/Units.lean Modified Mathlib/Algebra/Order/Group/WithTop.lean Modified Mathlib/Algebra/Order/Hom/Basic.lean Modified Mathlib/Algebra/Order/Hom/Monoid.lean +/- structure OrderAddMonoidHom +/- structure OrderMonoidHom +/- structure OrderMonoidWithZeroHom Modified Mathlib/Algebra/Order/Hom/Ring.lean +/- structure OrderRingHom +/- structure OrderRingIso Modified Mathlib/Algebra/Order/Interval.lean Modified Mathlib/Algebra/Order/Kleene.lean Modified Mathlib/Algebra/Order/Module.lean Modified Mathlib/Algebra/Order/Monoid/Basic.lean +/- def Function.Injective.linearOrderedCommMonoid +/- def Function.Injective.orderedCommMonoid +/- def OrderEmbedding.mulLeft +/- def OrderEmbedding.mulRight Modified Mathlib/Algebra/Order/Monoid/Cancel/Basic.lean +/- def Function.Injective.linearOrderedCancelCommMonoid +/- def Function.Injective.orderedCancelCommMonoid Modified Mathlib/Algebra/Order/Monoid/Cancel/Defs.lean Modified Mathlib/Algebra/Order/Monoid/Canonical/Defs.lean +/- theorem pos_of_gt Modified Mathlib/Algebra/Order/Monoid/Defs.lean +/- theorem Mul.to_covariantClass_left +/- theorem Mul.to_covariantClass_right Modified Mathlib/Algebra/Order/Monoid/Lemmas.lean +/- theorem cmp_mul_left' +/- theorem cmp_mul_right' Modified Mathlib/Algebra/Order/Monoid/MinMax.lean Modified Mathlib/Algebra/Order/Monoid/NatCast.lean Modified Mathlib/Algebra/Order/Monoid/Prod.lean Modified Mathlib/Algebra/Order/Monoid/WithTop.lean Modified Mathlib/Algebra/Order/Monoid/WithZero/Defs.lean Modified Mathlib/Algebra/Order/Nonneg/Field.lean Modified Mathlib/Algebra/Order/Nonneg/Floor.lean Modified Mathlib/Algebra/Order/Nonneg/Ring.lean Modified Mathlib/Algebra/Order/Pi.lean Modified Mathlib/Algebra/Order/Pointwise.lean Modified Mathlib/Algebra/Order/Positive/Field.lean Modified Mathlib/Algebra/Order/Positive/Ring.lean Modified Mathlib/Algebra/Order/Rearrangement.lean Modified Mathlib/Algebra/Order/Ring/Abs.lean Modified Mathlib/Algebra/Order/Ring/Canonical.lean Modified Mathlib/Algebra/Order/Ring/CharZero.lean Modified Mathlib/Algebra/Order/Ring/Cone.lean +/- structure Ring.PositiveCone +/- structure Ring.TotalPositiveCone Modified Mathlib/Algebra/Order/Ring/Defs.lean Modified Mathlib/Algebra/Order/Ring/InjSurj.lean Modified Mathlib/Algebra/Order/Ring/Lemmas.lean Modified Mathlib/Algebra/Order/Ring/WithTop.lean Modified Mathlib/Algebra/Order/SMul.lean Modified Mathlib/Algebra/Order/Sub/Basic.lean +/- theorem OrderIso.map_tsub +/- theorem le_mul_tsub +/- theorem le_tsub_mul Modified Mathlib/Algebra/Order/Sub/Canonical.lean Modified Mathlib/Algebra/Order/Sub/Defs.lean Modified Mathlib/Algebra/Order/Sub/Prod.lean Modified Mathlib/Algebra/Order/Sub/WithTop.lean Modified Mathlib/Algebra/Order/ToIntervalMod.lean Modified Mathlib/Algebra/Order/UpperLower.lean Modified Mathlib/Algebra/Order/WithZero.lean +/- def Function.Injective.linearOrderedCommMonoidWithZero Modified Mathlib/Algebra/Order/ZeroLEOne.lean Modified Mathlib/Algebra/PUnitInstances.lean +/- theorem PUnit.smul_eq Modified Mathlib/Algebra/Parity.lean +/- theorem range_two_mul_add_one Modified Mathlib/Algebra/Periodic.lean +/- theorem Finset.periodic_prod Modified Mathlib/Algebra/Polynomial/BigOperators.lean Modified Mathlib/Algebra/Polynomial/GroupRingAction.lean Modified Mathlib/Algebra/QuadraticDiscriminant.lean Modified Mathlib/Algebra/Quandle.lean +/- def Quandle.Conj.map +/- def Quandle.Conj +/- theorem Quandle.conj_act_eq_conj +/- theorem Quandle.conj_swap +/- def Rack.EnvelGroup +/- def Rack.IsAbelian +/- def Rack.IsInvolutory +/- theorem Rack.ad_conj +/- theorem Rack.assoc_iff_id +/- def Rack.envelAction +/- theorem Rack.envelAction_prop +/- theorem Rack.involutory_invAct_eq_act +/- def Rack.selfApplyEquiv +/- def Rack.toConj +/- def Rack.toEnvelGroup.map +/- theorem Rack.toEnvelGroup.mapAux.well_def +/- def Rack.toEnvelGroup.mapAux +/- theorem Rack.toEnvelGroup.univ +/- theorem Rack.toEnvelGroup.univ_uniq +/- def Rack.toEnvelGroup +/- def ShelfHom.id +/- structure ShelfHom Modified Mathlib/Algebra/Quaternion.lean +/- def Quaternion.equivProd +/- def Quaternion.equivTuple +/- theorem Quaternion.equivTuple_apply +/- def Quaternion +/- def QuaternionAlgebra.equivProd +/- def QuaternionAlgebra.equivTuple +/- theorem QuaternionAlgebra.equivTuple_apply +/- theorem QuaternionAlgebra.mk.eta +/- structure QuaternionAlgebra Modified Mathlib/Algebra/QuaternionBasis.lean +/- structure QuaternionAlgebra.Basis Modified Mathlib/Algebra/Regular/Basic.lean +/- structure IsAddRegular Modified Mathlib/Algebra/Regular/Pow.lean Modified Mathlib/Algebra/Regular/SMul.lean Modified Mathlib/Algebra/Ring/AddAut.lean Modified Mathlib/Algebra/Ring/Aut.lean +/- def RingAut Modified Mathlib/Algebra/Ring/Basic.lean Modified Mathlib/Algebra/Ring/BooleanRing.lean +/- def AsBoolAlg +/- def AsBoolRing +/- def OrderIso.asBoolAlgAsBoolRing +/- def RingEquiv.asBoolRingAsBoolAlg Modified Mathlib/Algebra/Ring/CompTypeclasses.lean Modified Mathlib/Algebra/Ring/Defs.lean +/- theorem ite_and_mul_zero +/- theorem ite_mul_zero_left +/- theorem ite_mul_zero_right Modified Mathlib/Algebra/Ring/Divisibility.lean Modified Mathlib/Algebra/Ring/Equiv.lean +/- def AddEquiv.toRingEquiv +/- def MulEquiv.toRingEquiv +/- theorem RingEquiv.coe_nonUnitalRingHom_inj_iff +/- theorem RingEquiv.coe_ringHom_inj_iff +/- def RingEquiv.ofHomInv' +/- def RingEquiv.ofHomInv +/- def RingEquiv.piCongrRight +/- theorem RingEquiv.piCongrRight_refl +/- theorem RingEquiv.piCongrRight_symm +/- theorem RingEquiv.piCongrRight_trans +/- structure RingEquiv Modified Mathlib/Algebra/Ring/Fin.lean +/- def RingEquiv.piFinTwo Modified Mathlib/Algebra/Ring/Idempotents.lean Modified Mathlib/Algebra/Ring/Opposite.lean +/- def NonUnitalRingHom.fromOpposite +/- def NonUnitalRingHom.toOpposite +/- def RingHom.fromOpposite +/- def RingHom.toOpposite Modified Mathlib/Algebra/Ring/OrderSynonym.lean Modified Mathlib/Algebra/Ring/Pi.lean +/- def Pi.constNonUnitalRingHom +/- def Pi.constRingHom Modified Mathlib/Algebra/Ring/Prod.lean +/- theorem false_of_nontrivial_of_product_domain Modified Mathlib/Algebra/Ring/Regular.lean Modified Mathlib/Algebra/SMulWithZero.lean +/- def smulMonoidWithZeroHom Modified Mathlib/Algebra/Squarefree.lean Modified Mathlib/Algebra/Star/Basic.lean +/- theorem RingHom.star_apply +/- theorem RingHom.star_def +/- def starRingOfComm +/- def starSemigroupOfComm +/- theorem star_id_of_comm +/- theorem star_invOf Modified Mathlib/Algebra/Star/BigOperators.lean +/- theorem star_prod +/- theorem star_sum Modified Mathlib/Algebra/Star/Center.lean Modified Mathlib/Algebra/Star/Free.lean Modified Mathlib/Algebra/Star/Module.lean +/- theorem algebraMap_star_comm +/- def starLinearEquiv +/- theorem star_rat_smul Modified Mathlib/Algebra/Star/NonUnitalSubalgebra.lean +/- theorem NonUnitalStarAlgebra.coe_iInf +/- theorem NonUnitalStarAlgebra.iInf_toNonUnitalSubalgebra +/- theorem NonUnitalStarAlgebra.mem_iInf +/- theorem NonUnitalStarSubalgebra.center_eq_top +/- theorem NonUnitalStarSubalgebra.toSubring_subtype Modified Mathlib/Algebra/Star/Pi.lean +/- theorem Function.star_sum_elim Modified Mathlib/Algebra/Star/Pointwise.lean +/- theorem Set.iInter_star +/- theorem Set.iUnion_star +/- theorem Set.star_singleton +/- theorem StarMemClass.star_coe_eq Modified Mathlib/Algebra/Star/SelfAdjoint.lean +/- theorem IsSelfAdjoint.starHom_apply +/- theorem isSelfAdjoint_starHom_apply Modified Mathlib/Algebra/Star/StarAlgHom.lean +/- structure NonUnitalStarAlgHom +/- structure StarAlgEquiv +/- structure StarAlgHom Modified Mathlib/Algebra/Star/Subalgebra.lean +/- theorem StarSubalgebra.coe_iInf +/- theorem StarSubalgebra.iInf_toSubalgebra +/- theorem StarSubalgebra.mem_iInf Modified Mathlib/Algebra/Star/Unitary.lean +/- def unitary Modified Mathlib/Algebra/Support.lean Modified Mathlib/Algebra/Symmetrized.lean +/- theorem SymAlg.sym_smul +/- theorem SymAlg.unsym_smul +/- def SymAlg Modified Mathlib/Algebra/TrivSqZeroExt.lean Modified Mathlib/Algebra/Tropical/Basic.lean +/- theorem Tropical.mul_eq_zero_iff +/- theorem Tropical.trop_smul +/- theorem Tropical.untrop_pow Modified Mathlib/Algebra/Tropical/BigOperators.lean Modified Mathlib/Algebra/Tropical/Lattice.lean Modified Mathlib/AlgebraicGeometry/LocallyRingedSpace.lean Modified Mathlib/AlgebraicGeometry/OpenImmersion/Basic.lean +/- theorem AlgebraicGeometry.PresheafedSpace.IsOpenImmersion.ofRestrict_invApp Modified Mathlib/AlgebraicGeometry/OpenImmersion/Scheme.lean +/- def AlgebraicGeometry.Scheme.OpenCover.copy +/- def AlgebraicGeometry.Scheme.openCoverOfSuprEqTop Modified Mathlib/AlgebraicGeometry/PresheafedSpace.lean Modified Mathlib/AlgebraicGeometry/PrimeSpectrum/Basic.lean +/- def PrimeSpectrum.closedsEmbedding +/- theorem PrimeSpectrum.vanishingIdeal_iUnion +/- theorem PrimeSpectrum.zeroLocus_iSup +/- theorem PrimeSpectrum.zeroLocus_iUnion Modified Mathlib/AlgebraicGeometry/PrimeSpectrum/IsOpenComapC.lean Modified Mathlib/AlgebraicGeometry/ProjectiveSpectrum/Scheme.lean Modified Mathlib/AlgebraicGeometry/ProjectiveSpectrum/StructureSheaf.lean Modified Mathlib/AlgebraicGeometry/ProjectiveSpectrum/Topology.lean +/- theorem ProjectiveSpectrum.vanishingIdeal_iUnion +/- theorem ProjectiveSpectrum.zeroLocus_iSup_homogeneousIdeal +/- theorem ProjectiveSpectrum.zeroLocus_iSup_ideal +/- theorem ProjectiveSpectrum.zeroLocus_iUnion Modified Mathlib/AlgebraicGeometry/RingedSpace.lean Modified Mathlib/AlgebraicGeometry/Scheme.lean +/- def AlgebraicGeometry.Scheme.Hom Modified Mathlib/AlgebraicGeometry/SheafedSpace.lean Modified Mathlib/AlgebraicGeometry/StructureSheaf.lean +/- theorem AlgebraicGeometry.StructureSheaf.localizationToStalk_stalkSpecializes +/- theorem AlgebraicGeometry.StructureSheaf.stalkSpecializes_stalk_to_fiber +/- theorem AlgebraicGeometry.StructureSheaf.toStalk_stalkSpecializes Modified Mathlib/AlgebraicTopology/AlternatingFaceMapComplex.lean +/- theorem AlgebraicTopology.map_alternatingFaceMapComplex Modified Mathlib/AlgebraicTopology/DoldKan/Compatibility.lean Modified Mathlib/AlgebraicTopology/DoldKan/Decomposition.lean Modified Mathlib/AlgebraicTopology/DoldKan/Degeneracies.lean Modified Mathlib/AlgebraicTopology/DoldKan/EquivalenceAdditive.lean Modified Mathlib/AlgebraicTopology/DoldKan/EquivalencePseudoabelian.lean Modified Mathlib/AlgebraicTopology/DoldKan/Faces.lean Modified Mathlib/AlgebraicTopology/DoldKan/FunctorGamma.lean Modified Mathlib/AlgebraicTopology/DoldKan/FunctorN.lean Modified Mathlib/AlgebraicTopology/DoldKan/GammaCompN.lean Modified Mathlib/AlgebraicTopology/DoldKan/Homotopies.lean +/- theorem AlgebraicTopology.DoldKan.map_Hσ +/- theorem AlgebraicTopology.DoldKan.map_hσ' Modified Mathlib/AlgebraicTopology/DoldKan/HomotopyEquivalence.lean +/- def AlgebraicTopology.DoldKan.homotopyEquivNormalizedMooreComplexAlternatingFaceMapComplex Modified Mathlib/AlgebraicTopology/DoldKan/NCompGamma.lean Modified Mathlib/AlgebraicTopology/DoldKan/NReflectsIso.lean Modified Mathlib/AlgebraicTopology/DoldKan/Normalized.lean Modified Mathlib/AlgebraicTopology/DoldKan/PInfty.lean +/- theorem AlgebraicTopology.DoldKan.map_PInfty_f Modified Mathlib/AlgebraicTopology/DoldKan/Projections.lean +/- theorem AlgebraicTopology.DoldKan.map_P +/- theorem AlgebraicTopology.DoldKan.map_Q Modified Mathlib/AlgebraicTopology/DoldKan/SplitSimplicialObject.lean Modified Mathlib/AlgebraicTopology/ExtraDegeneracy.lean +/- def SSet.Augmented.StandardSimplex.shiftFun +/- theorem SSet.Augmented.StandardSimplex.shiftFun_0 +/- theorem SSet.Augmented.StandardSimplex.shiftFun_succ +/- def SimplicialObject.Augmented.ExtraDegeneracy.map Modified Mathlib/AlgebraicTopology/FundamentalGroupoid/SimplyConnected.lean +/- theorem simply_connected_def +/- theorem simply_connected_iff_paths_homotopic' +/- theorem simply_connected_iff_paths_homotopic +/- theorem simply_connected_iff_unique_homotopic Modified Mathlib/AlgebraicTopology/MooreComplex.lean Modified Mathlib/AlgebraicTopology/Nerve.lean Modified Mathlib/AlgebraicTopology/SimplexCategory.lean Modified Mathlib/AlgebraicTopology/SimplicialObject.lean +/- def CategoryTheory.CosimplicialObject.Augmented.whiskeringObj +/- def CategoryTheory.CosimplicialObject.Truncated.whiskering +/- def CategoryTheory.CosimplicialObject.whiskering +/- def CategoryTheory.SimplicialObject.Augmented.whiskeringObj +/- def CategoryTheory.SimplicialObject.Truncated.whiskering +/- def CategoryTheory.SimplicialObject.whiskering Modified Mathlib/AlgebraicTopology/SplitSimplicialObject.lean Modified Mathlib/Analysis/Analytic/Basic.lean Modified Mathlib/Analysis/Analytic/Composition.lean +/- theorem FormalMultilinearSeries.compChangeOfVariables_sum Modified Mathlib/Analysis/Analytic/Inverse.lean Modified Mathlib/Analysis/Analytic/IsolatedZeros.lean Modified Mathlib/Analysis/Analytic/Linear.lean Modified Mathlib/Analysis/Analytic/RadiusLiminf.lean Modified Mathlib/Analysis/Analytic/Uniqueness.lean Modified Mathlib/Analysis/Asymptotics/AsymptoticEquivalent.lean +/- theorem Asymptotics.IsEquivalent.smul Modified Mathlib/Analysis/Asymptotics/Asymptotics.lean +/- theorem Asymptotics.IsBigO.nat_cast_atTop +/- theorem Asymptotics.IsLittleO.nat_cast_atTop +/- theorem Asymptotics.IsLittleO.tendsto_zero_of_tendsto +/- theorem Asymptotics.div_isBoundedUnder_of_isBigO +/- theorem Asymptotics.isBigOWith_pi +/- theorem Asymptotics.isBigO_atTop_iff_eventually_exists +/- theorem Asymptotics.isBigO_atTop_iff_eventually_exists_pos +/- theorem Asymptotics.isBigO_iff_div_isBoundedUnder +/- theorem Asymptotics.isBigO_of_div_tendsto_nhds +/- theorem Asymptotics.isBigO_pi +/- theorem Asymptotics.isLittleO_pi Modified Mathlib/Analysis/Asymptotics/SpecificAsymptotics.lean +/- theorem Asymptotics.IsBigO.trans_tendsto_norm_atTop +/- theorem Asymptotics.IsLittleO.sum_range +/- theorem Asymptotics.isLittleO_sum_range_of_tendsto_zero +/- theorem Filter.IsBoundedUnder.isLittleO_sub_self_inv +/- theorem Filter.Tendsto.cesaro_smul Modified Mathlib/Analysis/Asymptotics/SuperpolynomialDecay.lean +/- def Asymptotics.SuperpolynomialDecay Modified Mathlib/Analysis/Asymptotics/Theta.lean Modified Mathlib/Analysis/BoundedVariation.lean +/- theorem BoundedVariationOn.dist_le +/- theorem LocallyBoundedVariationOn.ae_differentiableWithinAt_of_mem_pi +/- theorem eVariationOn.lowerSemicontinuous_aux Modified Mathlib/Analysis/BoxIntegral/Basic.lean +/- theorem BoxIntegral.HasIntegral.sum Modified Mathlib/Analysis/BoxIntegral/Box/Basic.lean +/- structure BoxIntegral.Box Modified Mathlib/Analysis/BoxIntegral/Box/SubboxInduction.lean Modified Mathlib/Analysis/BoxIntegral/Partition/Additive.lean +/- structure BoxIntegral.BoxAdditiveMap Modified Mathlib/Analysis/BoxIntegral/Partition/Basic.lean +/- theorem BoxIntegral.Prepartition.sum_biUnion_boxes +/- theorem BoxIntegral.Prepartition.sum_disj_union_boxes +/- theorem BoxIntegral.Prepartition.sum_ofWithBot Modified Mathlib/Analysis/BoxIntegral/Partition/Filter.lean +/- theorem BoxIntegral.IntegrationParams.RCond.mono +/- def BoxIntegral.IntegrationParams.RCond Modified Mathlib/Analysis/BoxIntegral/Partition/Measure.lean +/- theorem BoxIntegral.BoxAdditiveMap.volume_apply Modified Mathlib/Analysis/BoxIntegral/Partition/Split.lean +/- theorem BoxIntegral.Prepartition.sum_split_boxes Modified Mathlib/Analysis/BoxIntegral/Partition/SubboxInduction.lean Modified Mathlib/Analysis/BoxIntegral/Partition/Tagged.lean Modified Mathlib/Analysis/Calculus/AffineMap.lean Modified Mathlib/Analysis/Calculus/BumpFunction/Basic.lean +/- structure ContDiffBumpBase +/- def someContDiffBumpBase Modified Mathlib/Analysis/Calculus/BumpFunction/FiniteDimension.lean Modified Mathlib/Analysis/Calculus/BumpFunction/InnerProduct.lean Modified Mathlib/Analysis/Calculus/BumpFunction/Normed.lean Modified Mathlib/Analysis/Calculus/Conformal/InnerProduct.lean Modified Mathlib/Analysis/Calculus/Conformal/NormedSpace.lean Modified Mathlib/Analysis/Calculus/ContDiff.lean +/- theorem ContDiff.sum +/- theorem ContDiffAt.sum +/- theorem ContDiffOn.prod_map +/- theorem ContDiffOn.sum +/- theorem ContDiffWithinAt.exists_lipschitzOnWith +/- theorem ContDiffWithinAt.sum +/- theorem HasFTaylorSeriesUpToOn.exists_lipschitzOnWith +/- theorem HasFTaylorSeriesUpToOn.exists_lipschitzOnWith_of_nnnorm_lt Modified Mathlib/Analysis/Calculus/Deriv/Add.lean Modified Mathlib/Analysis/Calculus/Deriv/AffineMap.lean Modified Mathlib/Analysis/Calculus/Deriv/Basic.lean +/- theorem derivWithin_Ioi_eq_Ici Modified Mathlib/Analysis/Calculus/Deriv/Comp.lean Modified Mathlib/Analysis/Calculus/Deriv/Inv.lean Modified Mathlib/Analysis/Calculus/Deriv/Mul.lean Modified Mathlib/Analysis/Calculus/Deriv/Polynomial.lean Modified Mathlib/Analysis/Calculus/Deriv/Prod.lean Modified Mathlib/Analysis/Calculus/DiffContOnCl.lean +/- theorem DiffContOnCl.const_smul +/- theorem DiffContOnCl.smul +/- theorem DiffContOnCl.smul_const Modified Mathlib/Analysis/Calculus/Dslope.lean +/- theorem ContinuousLinearMap.dslope_comp Modified Mathlib/Analysis/Calculus/FDeriv/Add.lean Modified Mathlib/Analysis/Calculus/FDeriv/Analytic.lean Modified Mathlib/Analysis/Calculus/FDeriv/Basic.lean +/- theorem HasFDerivAt.lim +/- theorem HasFDerivWithinAt.lim Modified Mathlib/Analysis/Calculus/FDeriv/Bilinear.lean Modified Mathlib/Analysis/Calculus/FDeriv/Comp.lean Modified Mathlib/Analysis/Calculus/FDeriv/Equiv.lean Modified Mathlib/Analysis/Calculus/FDeriv/Extend.lean Modified Mathlib/Analysis/Calculus/FDeriv/Linear.lean Modified Mathlib/Analysis/Calculus/FDeriv/Measurable.lean Modified Mathlib/Analysis/Calculus/FDeriv/Mul.lean Modified Mathlib/Analysis/Calculus/FDeriv/Prod.lean Modified Mathlib/Analysis/Calculus/FDeriv/RestrictScalars.lean Modified Mathlib/Analysis/Calculus/FDeriv/Star.lean Modified Mathlib/Analysis/Calculus/FDeriv/Symmetric.lean Modified Mathlib/Analysis/Calculus/FormalMultilinearSeries.lean +/- def FormalMultilinearSeries +/- def constFormalMultilinearSeries Modified Mathlib/Analysis/Calculus/Implicit.lean +/- theorem HasStrictFDerivAt.tendsto_implicitFunction +/- structure ImplicitFunctionData Modified Mathlib/Analysis/Calculus/Inverse.lean +/- theorem ApproximatesLinearOn.exists_homeomorph_extension Modified Mathlib/Analysis/Calculus/IteratedDeriv.lean Modified Mathlib/Analysis/Calculus/LagrangeMultipliers.lean +/- theorem IsLocalExtrOn.exists_multipliers_of_hasStrictFDerivAt +/- theorem IsLocalExtrOn.linear_dependent_of_hasStrictFDerivAt Modified Mathlib/Analysis/Calculus/LocalExtr/Polynomial.lean +/- theorem Polynomial.card_rootSet_le_derivative Modified Mathlib/Analysis/Calculus/MeanValue.lean +/- theorem image_norm_le_of_liminf_right_slope_norm_lt_deriv_boundary Modified Mathlib/Analysis/Calculus/ParametricIntegral.lean Modified Mathlib/Analysis/Calculus/ParametricIntervalIntegral.lean Modified Mathlib/Analysis/Calculus/Series.lean Modified Mathlib/Analysis/Calculus/TangentCone.lean +/- theorem UniqueDiffOn.pi +/- theorem UniqueDiffOn.univ_pi +/- theorem UniqueDiffWithinAt.pi +/- theorem UniqueDiffWithinAt.univ_pi +/- theorem mapsTo_tangentCone_pi +/- theorem tangentConeAt.lim_zero Modified Mathlib/Analysis/Calculus/Taylor.lean Modified Mathlib/Analysis/Calculus/UniformLimitsDeriv.lean Modified Mathlib/Analysis/Complex/Basic.lean Modified Mathlib/Analysis/Complex/Conformal.lean Modified Mathlib/Analysis/Complex/LocallyUniformLimit.lean Modified Mathlib/Analysis/Complex/OpenMapping.lean Modified Mathlib/Analysis/Complex/PhragmenLindelof.lean Modified Mathlib/Analysis/Complex/RealDeriv.lean Modified Mathlib/Analysis/Complex/Schwarz.lean Modified Mathlib/Analysis/Complex/UpperHalfPlane/Basic.lean +/- theorem UpperHalfPlane.specialLinearGroup_apply Modified Mathlib/Analysis/Complex/UpperHalfPlane/FunctionsBoundedAtInfty.lean +/- def UpperHalfPlane.IsBoundedAtImInfty +/- def UpperHalfPlane.IsZeroAtImInfty +/- def UpperHalfPlane.boundedAtImInftySubalgebra +/- def UpperHalfPlane.zeroAtImInftySubmodule +/- theorem UpperHalfPlane.zero_form_isBoundedAtImInfty Modified Mathlib/Analysis/ConstantSpeed.lean Modified Mathlib/Analysis/Convex/Basic.lean +/- theorem Directed.convex_iUnion +/- theorem convex_iInter +/- theorem convex_iInter₂ +/- theorem convex_pi Modified Mathlib/Analysis/Convex/Between.lean Modified Mathlib/Analysis/Convex/Body.lean +/- structure ConvexBody Modified Mathlib/Analysis/Convex/Caratheodory.lean Modified Mathlib/Analysis/Convex/Combination.lean +/- theorem AffineBasis.convexHull_eq_nonneg_coord +/- theorem Convex.finsum_mem +/- theorem affineCombination_eq_centerMass Modified Mathlib/Analysis/Convex/Cone/Basic.lean +/- theorem ConvexCone.coe_iInf +/- theorem ConvexCone.mem_iInf Modified Mathlib/Analysis/Convex/Cone/Dual.lean +/- theorem innerDualCone_iUnion Modified Mathlib/Analysis/Convex/Cone/Proper.lean +/- structure ProperCone Modified Mathlib/Analysis/Convex/Contractible.lean Modified Mathlib/Analysis/Convex/Exposed.lean Modified Mathlib/Analysis/Convex/Extrema.lean Modified Mathlib/Analysis/Convex/Extreme.lean +/- theorem isExtreme_iInter Modified Mathlib/Analysis/Convex/Function.lean Modified Mathlib/Analysis/Convex/Gauge.lean Modified Mathlib/Analysis/Convex/Hull.lean Modified Mathlib/Analysis/Convex/Independent.lean +/- theorem ConvexIndependent.comp_embedding Modified Mathlib/Analysis/Convex/Integral.lean Modified Mathlib/Analysis/Convex/Intrinsic.lean Modified Mathlib/Analysis/Convex/Join.lean Modified Mathlib/Analysis/Convex/KreinMilman.lean Modified Mathlib/Analysis/Convex/Measure.lean Modified Mathlib/Analysis/Convex/Normed.lean Modified Mathlib/Analysis/Convex/PartitionOfUnity.lean Modified Mathlib/Analysis/Convex/Quasiconvex.lean Modified Mathlib/Analysis/Convex/Segment.lean Modified Mathlib/Analysis/Convex/Side.lean Modified Mathlib/Analysis/Convex/SimplicialComplex/Basic.lean Modified Mathlib/Analysis/Convex/Slope.lean Modified Mathlib/Analysis/Convex/SpecificFunctions/Deriv.lean +/- theorem Finset.prod_nonneg_of_card_nonpos_even Modified Mathlib/Analysis/Convex/Star.lean +/- theorem starConvex_iInter +/- theorem starConvex_iUnion +/- theorem starConvex_pi Modified Mathlib/Analysis/Convex/StoneSeparation.lean Modified Mathlib/Analysis/Convex/Strict.lean +/- theorem Directed.strictConvex_iUnion Modified Mathlib/Analysis/Convex/StrictConvexBetween.lean Modified Mathlib/Analysis/Convex/StrictConvexSpace.lean Modified Mathlib/Analysis/Convex/Topology.lean Modified Mathlib/Analysis/Convex/Uniform.lean Modified Mathlib/Analysis/Distribution/SchwartzSpace.lean Modified Mathlib/Analysis/Fourier/FourierTransform.lean +/- theorem Real.fourierIntegral_eq_integral_exp_smul +/- theorem Real.vector_fourierIntegral_eq_integral_exp_smul Modified Mathlib/Analysis/Fourier/PoissonSummation.lean Modified Mathlib/Analysis/Fourier/RiemannLebesgueLemma.lean Modified Mathlib/Analysis/Hofer.lean +/- theorem hofer +/- theorem pos_div_pow_pos Modified Mathlib/Analysis/InnerProductSpace/Adjoint.lean +/- theorem LinearMap.eq_adjoint_iff_basis +/- theorem LinearMap.eq_adjoint_iff_basis_left +/- theorem LinearMap.eq_adjoint_iff_basis_right Modified Mathlib/Analysis/InnerProductSpace/Basic.lean +/- theorem DFinsupp.inner_sum +/- theorem DFinsupp.sum_inner +/- theorem Finsupp.inner_sum +/- theorem Finsupp.sum_inner +/- structure InnerProductSpace.Core +/- theorem OrthogonalFamily.comp +/- theorem OrthogonalFamily.orthonormal_sigma_orthonormal +/- def OrthogonalFamily +/- theorem Orthonormal.codRestrict +/- theorem Orthonormal.comp +/- theorem Orthonormal.equiv_apply +/- theorem inner_sum +/- theorem inner_sum_smul_sum_smul_of_sum_eq_zero +/- theorem linearIndependent_of_ne_zero_of_inner_eq_zero +/- theorem orthonormal_iUnion_of_directed +/- theorem orthonormal_span +/- theorem sum_inner Modified Mathlib/Analysis/InnerProductSpace/Calculus.lean Modified Mathlib/Analysis/InnerProductSpace/ConformalLinearMap.lean Modified Mathlib/Analysis/InnerProductSpace/Dual.lean +/- theorem InnerProductSpace.ext_inner_left_basis +/- theorem InnerProductSpace.ext_inner_right_basis Modified Mathlib/Analysis/InnerProductSpace/EuclideanDist.lean Modified Mathlib/Analysis/InnerProductSpace/GramSchmidtOrtho.lean +/- theorem gramSchmidt_zero Modified Mathlib/Analysis/InnerProductSpace/LinearPMap.lean Modified Mathlib/Analysis/InnerProductSpace/OfNorm.lean Modified Mathlib/Analysis/InnerProductSpace/Orientation.lean +/- theorem Orientation.volumeForm_map Modified Mathlib/Analysis/InnerProductSpace/Orthogonal.lean +/- theorem Submodule.iInf_orthogonal +/- theorem Submodule.isOrtho_iSup_left +/- theorem Submodule.isOrtho_iSup_right Modified Mathlib/Analysis/InnerProductSpace/PiL2.lean +/- theorem EuclideanSpace.dist_eq +/- theorem EuclideanSpace.edist_eq +/- theorem EuclideanSpace.nndist_eq +/- theorem EuclideanSpace.nnnorm_eq +/- theorem EuclideanSpace.norm_eq +/- theorem EuclideanSpace.piLpCongrLeft_single +/- def EuclideanSpace +/- theorem Orthonormal.exists_orthonormalBasis_extension_of_card_eq +/- theorem PiLp.inner_apply Modified Mathlib/Analysis/InnerProductSpace/Positive.lean Modified Mathlib/Analysis/InnerProductSpace/Projection.lean +/- theorem LinearIsometry.map_orthogonalProjection' +/- theorem LinearIsometry.map_orthogonalProjection +/- theorem orthogonalProjection_map_apply +/- theorem orthogonalProjection_tendsto_closure_iSup +/- theorem orthogonalProjection_tendsto_self +/- theorem reflection_map +/- theorem reflection_map_apply Modified Mathlib/Analysis/InnerProductSpace/Rayleigh.lean Modified Mathlib/Analysis/InnerProductSpace/Spectrum.lean Modified Mathlib/Analysis/InnerProductSpace/Symmetric.lean Modified Mathlib/Analysis/InnerProductSpace/TwoDim.lean +/- theorem FiniteDimensional.finiteDimensional_of_fact_finrank_eq_two +/- theorem Orientation.areaForm_map +/- theorem Orientation.kahler_map +/- theorem Orientation.rightAngleRotation_map' +/- theorem Orientation.rightAngleRotation_map Modified Mathlib/Analysis/InnerProductSpace/l2Space.lean Modified Mathlib/Analysis/LocallyConvex/AbsConvex.lean Modified Mathlib/Analysis/LocallyConvex/BalancedCoreHull.lean Modified Mathlib/Analysis/LocallyConvex/Basic.lean +/- theorem Set.Finite.absorbs_iUnion +/- theorem absorbs_iUnion_finset Modified Mathlib/Analysis/LocallyConvex/Bounded.lean Modified Mathlib/Analysis/LocallyConvex/ContinuousOfBounded.lean Modified Mathlib/Analysis/LocallyConvex/Polar.lean Modified Mathlib/Analysis/LocallyConvex/StrongTopology.lean Modified Mathlib/Analysis/LocallyConvex/WeakDual.lean Modified Mathlib/Analysis/LocallyConvex/WithSeminorms.lean +/- theorem Seminorm.const_isBounded +/- theorem Seminorm.isBounded_const +/- theorem WithSeminorms.uniformEquicontinuous_iff_bddAbove_and_continuous_iSup +/- theorem WithSeminorms.uniformEquicontinuous_iff_exists_continuous_seminorm +/- theorem withSeminorms_iInf Modified Mathlib/Analysis/Matrix.lean Modified Mathlib/Analysis/MellinTransform.lean +/- theorem MellinConvergent.const_smul +/- theorem mellin_const_smul Modified Mathlib/Analysis/Normed/Field/Basic.lean +/- theorem Finset.nnnorm_prod_le' +/- theorem Finset.nnnorm_prod_le +/- theorem Finset.norm_prod_le' +/- theorem Finset.norm_prod_le +/- theorem NormOneClass.induced +/- theorem NormOneClass.nontrivial +/- theorem NormedAddCommGroup.tendsto_atTop Modified Mathlib/Analysis/Normed/Field/InfiniteSum.lean Modified Mathlib/Analysis/Normed/Field/UnitBall.lean +/- def Submonoid.unitClosedBall +/- def Submonoid.unitSphere +/- def Subsemigroup.unitBall +/- def Subsemigroup.unitClosedBall +/- def unitSphereToUnits Modified Mathlib/Analysis/Normed/Group/AddTorsor.lean +/- def metricSpaceOfNormedAddCommGroupOfAddTorsor +/- def pseudoMetricSpaceOfNormedAddCommGroupOfAddTorsor Modified Mathlib/Analysis/Normed/Group/BallSphere.lean Modified Mathlib/Analysis/Normed/Group/Basic.lean Modified Mathlib/Analysis/Normed/Group/Completion.lean Modified Mathlib/Analysis/Normed/Group/ControlledClosure.lean +/- theorem controlled_closure_range_of_complete Modified Mathlib/Analysis/Normed/Group/Hom.lean +/- theorem NormedAddGroupHom.coe_sum +/- theorem NormedAddGroupHom.comp_assoc +/- theorem NormedAddGroupHom.isClosed_ker +/- theorem NormedAddGroupHom.norm_id +/- theorem NormedAddGroupHom.opNorm_zero_iff +/- theorem NormedAddGroupHom.sum_apply +/- structure NormedAddGroupHom +/- theorem exists_pos_bound_of_bound Modified Mathlib/Analysis/Normed/Group/HomCompletion.lean Modified Mathlib/Analysis/Normed/Group/InfiniteSum.lean Modified Mathlib/Analysis/Normed/Group/Pointwise.lean Modified Mathlib/Analysis/Normed/Group/Quotient.lean +/- theorem NormedAddGroupHom.lift_mk +/- theorem NormedAddGroupHom.lift_normNoninc +/- theorem NormedAddGroupHom.lift_norm_le +/- theorem NormedAddGroupHom.lift_unique +/- theorem NormedAddGroupHom.norm_lift_le Modified Mathlib/Analysis/Normed/Group/SemiNormedGroupCat.lean Modified Mathlib/Analysis/Normed/Group/Seminorm.lean +/- structure AddGroupNorm +/- structure AddGroupSeminorm +/- structure GroupNorm +/- structure GroupSeminorm +/- structure NonarchAddGroupNorm +/- structure NonarchAddGroupSeminorm Modified Mathlib/Analysis/Normed/MulAction.lean Modified Mathlib/Analysis/Normed/Order/Basic.lean Modified Mathlib/Analysis/Normed/Order/Lattice.lean Modified Mathlib/Analysis/Normed/Order/UpperLower.lean Modified Mathlib/Analysis/Normed/Ring/Seminorm.lean +/- structure MulRingNorm +/- structure MulRingSeminorm +/- structure RingNorm +/- def RingSeminorm.toRingNorm +/- structure RingSeminorm +/- def normRingNorm +/- def normRingSeminorm Modified Mathlib/Analysis/NormedSpace/AddTorsorBases.lean +/- theorem AffineBasis.interior_convexHull Modified Mathlib/Analysis/NormedSpace/AffineIsometry.lean +/- theorem AffineIsometry.comp_continuous_iff Modified Mathlib/Analysis/NormedSpace/Algebra.lean Modified Mathlib/Analysis/NormedSpace/BallAction.lean Modified Mathlib/Analysis/NormedSpace/Banach.lean +/- theorem AffineMap.isOpenMap Modified Mathlib/Analysis/NormedSpace/BanachSteinhaus.lean +/- theorem banach_steinhaus +/- theorem banach_steinhaus_iSup_nnnorm Modified Mathlib/Analysis/NormedSpace/Basic.lean +/- def Module.RestrictScalars.normedSpaceOrig +/- def NormedAlgebra.induced +/- def NormedSpace.induced Modified Mathlib/Analysis/NormedSpace/BoundedLinearMaps.lean +/- theorem ContinuousLinearMap.mulLeftRight_isBoundedBilinear +/- theorem IsBoundedBilinearMap.isBigO_comp +/- theorem IsBoundedLinearMap.isBigO_comp +/- structure IsBoundedLinearMap +/- theorem isBoundedBilinearMap_compMultilinear +/- theorem isBoundedBilinearMap_smul +/- theorem isBoundedLinearMap_prod_multilinear Modified Mathlib/Analysis/NormedSpace/CompactOperator.lean +/- theorem IsCompactOperator.smul +/- def IsCompactOperator +/- theorem compactOperator_topologicalClosure +/- theorem isClosed_setOf_isCompactOperator +/- theorem isCompactOperator_of_tendsto +/- theorem isCompactOperator_zero Modified Mathlib/Analysis/NormedSpace/Complemented.lean Modified Mathlib/Analysis/NormedSpace/Completion.lean +/- theorem UniformSpace.Completion.norm_toComplL Modified Mathlib/Analysis/NormedSpace/ConformalLinearMap.lean +/- def IsConformalMap Modified Mathlib/Analysis/NormedSpace/ContinuousAffineMap.lean Modified Mathlib/Analysis/NormedSpace/ContinuousLinearMap.lean Modified Mathlib/Analysis/NormedSpace/Dual.lean +/- def NormedSpace.polar +/- theorem NormedSpace.polar_closedBall Modified Mathlib/Analysis/NormedSpace/DualNumber.lean Modified Mathlib/Analysis/NormedSpace/ENorm.lean +/- structure ENorm Modified Mathlib/Analysis/NormedSpace/Exponential.lean +/- theorem Function.update_exp +/- theorem Pi.exp_apply +/- theorem Pi.exp_def Modified Mathlib/Analysis/NormedSpace/Extend.lean Modified Mathlib/Analysis/NormedSpace/Extr.lean Modified Mathlib/Analysis/NormedSpace/FiniteDimension.lean +/- theorem AffineSubspace.closed_of_finiteDimensional +/- theorem Basis.exists_op_nnnorm_le +/- theorem Basis.exists_op_norm_le +/- theorem Basis.op_nnnorm_le +/- theorem Basis.op_norm_le +/- def ContinuousLinearEquiv.piRing +/- theorem HasCompactMulSupport.eq_one_or_finiteDimensional +/- theorem IsEquivalent.summable_iff +/- theorem IsEquivalent.summable_iff_nat +/- theorem LipschitzOnWith.extend_finite_dimension +/- theorem continuousOn_clm_apply +/- theorem continuous_clm_apply +/- theorem exists_mem_frontier_infDist_compl_eq_dist +/- theorem isOpen_setOf_linearIndependent +/- theorem lipschitzExtensionConstant_pos +/- theorem summable_norm_iff +/- theorem summable_of_isBigO' +/- theorem summable_of_isBigO_nat' +/- theorem summable_of_isEquivalent +/- theorem summable_of_isEquivalent_nat Modified Mathlib/Analysis/NormedSpace/HahnBanach/Extension.lean Modified Mathlib/Analysis/NormedSpace/HahnBanach/Separation.lean Modified Mathlib/Analysis/NormedSpace/HomeomorphBall.lean Modified Mathlib/Analysis/NormedSpace/IndicatorFunction.lean Modified Mathlib/Analysis/NormedSpace/IsROrC.lean Modified Mathlib/Analysis/NormedSpace/LinearIsometry.lean +/- theorem Basis.ext_linearIsometry +/- theorem Basis.ext_linearIsometryEquiv +/- def LinearIsometry.Simps.apply +/- theorem LinearIsometry.comp_continuous_iff +/- structure LinearIsometry +/- def LinearIsometryEquiv.ofTop Modified Mathlib/Analysis/NormedSpace/LpEquiv.lean Modified Mathlib/Analysis/NormedSpace/MStructure.lean Modified Mathlib/Analysis/NormedSpace/MatrixExponential.lean Modified Mathlib/Analysis/NormedSpace/MazurUlam.lean Modified Mathlib/Analysis/NormedSpace/Multilinear.lean +/- theorem ContinuousMultilinearMap.hasSum_eval +/- theorem ContinuousMultilinearMap.le_op_norm_mul_pow_of_le +/- theorem ContinuousMultilinearMap.tsum_eval Modified Mathlib/Analysis/NormedSpace/OperatorNorm.lean +/- theorem ContinuousLinearEquiv.isBigO_comp +/- theorem ContinuousLinearEquiv.isBigO_comp_rev +/- theorem ContinuousLinearMap.exists_lt_apply_of_lt_op_nnnorm +/- theorem ContinuousLinearMap.exists_lt_apply_of_lt_op_norm +/- theorem ContinuousLinearMap.isBigOWith_comp +/- theorem ContinuousLinearMap.isBigO_comp +/- def ContinuousLinearMap.ofTendstoOfBoundedRange +/- theorem ContinuousLinearMap.op_norm_smul_le +/- def ContinuousLinearMap.prodₗᵢ +/- theorem ContinuousLinearMap.sSup_closed_unit_ball_eq_nnnorm +/- theorem ContinuousLinearMap.sSup_closed_unit_ball_eq_norm +/- theorem ContinuousLinearMap.sSup_unit_ball_eq_nnnorm +/- theorem ContinuousLinearMap.sSup_unit_ball_eq_norm Modified Mathlib/Analysis/NormedSpace/PiLp.lean +/- theorem PiLp.dist_eq_of_L2 +/- theorem PiLp.edist_eq_of_L2 +/- theorem PiLp.iSup_edist_ne_top_aux +/- theorem PiLp.nndist_eq_iSup +/- theorem PiLp.nndist_eq_of_L2 +/- theorem PiLp.nndist_eq_sum +/- theorem PiLp.nnnorm_eq_ciSup +/- theorem PiLp.nnnorm_eq_of_L2 +/- theorem PiLp.nnnorm_eq_sum +/- theorem PiLp.norm_eq_of_L2 +/- theorem PiLp.norm_eq_of_nat +/- theorem PiLp.norm_sq_eq_of_L2 +/- def PiLp Modified Mathlib/Analysis/NormedSpace/Pointwise.lean Modified Mathlib/Analysis/NormedSpace/Ray.lean Modified Mathlib/Analysis/NormedSpace/RieszLemma.lean Modified Mathlib/Analysis/NormedSpace/Spectrum.lean Modified Mathlib/Analysis/NormedSpace/Star/Basic.lean Modified Mathlib/Analysis/NormedSpace/Star/ContinuousFunctionalCalculus.lean Modified Mathlib/Analysis/NormedSpace/Star/Exponential.lean Modified Mathlib/Analysis/NormedSpace/Star/GelfandDuality.lean Modified Mathlib/Analysis/NormedSpace/Star/Matrix.lean Modified Mathlib/Analysis/NormedSpace/Star/Multiplier.lean Modified Mathlib/Analysis/NormedSpace/Star/Spectrum.lean Modified Mathlib/Analysis/NormedSpace/Star/Unitization.lean Modified Mathlib/Analysis/NormedSpace/TrivSqZeroExt.lean Modified Mathlib/Analysis/NormedSpace/Units.lean Modified Mathlib/Analysis/NormedSpace/WeakDual.lean Modified Mathlib/Analysis/NormedSpace/lpSpace.lean +/- def PreLp +/- theorem lp.coeFn_sum +/- def lp Modified Mathlib/Analysis/ODE/Gronwall.lean Modified Mathlib/Analysis/ODE/PicardLindelof.lean +/- theorem IsPicardLindelof.norm_le₀ +/- structure IsPicardLindelof +/- structure PicardLindelof Modified Mathlib/Analysis/PSeries.lean Modified Mathlib/Analysis/Quaternion.lean Modified Mathlib/Analysis/Seminorm.lean +/- structure Seminorm Modified Mathlib/Analysis/SpecialFunctions/Arsinh.lean +/- theorem Filter.Tendsto.arsinh Modified Mathlib/Analysis/SpecialFunctions/Complex/Log.lean Modified Mathlib/Analysis/SpecialFunctions/Complex/LogDeriv.lean Modified Mathlib/Analysis/SpecialFunctions/Exp.lean +/- theorem Complex.tendsto_exp_nhds_zero_iff Modified Mathlib/Analysis/SpecialFunctions/ExpDeriv.lean Modified Mathlib/Analysis/SpecialFunctions/Exponential.lean Modified Mathlib/Analysis/SpecialFunctions/Gamma/BohrMollerup.lean +/- theorem StrictConcaveOn.add_const +/- theorem StrictConvexOn.add_const Modified Mathlib/Analysis/SpecialFunctions/Gaussian.lean Modified Mathlib/Analysis/SpecialFunctions/JapaneseBracket.lean Modified Mathlib/Analysis/SpecialFunctions/Log/Base.lean +/- theorem Real.logb_prod Modified Mathlib/Analysis/SpecialFunctions/Log/Basic.lean +/- theorem Real.log_prod Modified Mathlib/Analysis/SpecialFunctions/Log/Deriv.lean Modified Mathlib/Analysis/SpecialFunctions/NonIntegrable.lean Modified Mathlib/Analysis/SpecialFunctions/PolarCoord.lean +/- theorem integral_comp_polarCoord_symm Modified Mathlib/Analysis/SpecialFunctions/Polynomials.lean Modified Mathlib/Analysis/SpecialFunctions/Pow/Asymptotics.lean Modified Mathlib/Analysis/SpecialFunctions/Pow/Continuity.lean +/- theorem Filter.Tendsto.ennrpow_const +/- theorem Filter.Tendsto.nnrpow Modified Mathlib/Analysis/SpecialFunctions/Pow/Deriv.lean Modified Mathlib/Analysis/SpecialFunctions/Pow/Real.lean +/- theorem Real.exists_rat_pow_btwn +/- theorem Real.rpow_sum_of_nonneg +/- theorem Real.rpow_sum_of_pos Modified Mathlib/Analysis/SpecialFunctions/Sqrt.lean Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Angle.lean +/- theorem ContinuousOn.angle_sign_comp +/- theorem Real.Angle.sign_eq_of_continuousOn Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/ArctanDeriv.lean Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Chebyshev.lean Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Deriv.lean Modified Mathlib/Analysis/SpecificLimits/Basic.lean +/- theorem NNReal.tendsto_algebraMap_inverse_atTop_nhds_0_nat +/- theorem Set.Countable.exists_pos_forall_sum_le +/- theorem Set.Countable.exists_pos_hasSum_le +/- theorem summable_geometric_two_encode +/- theorem tendsto_algebraMap_inverse_atTop_nhds_0_nat +/- theorem tendsto_coe_nat_div_add_atTop +/- theorem tendsto_nat_floor_atTop +/- theorem tendsto_pow_atTop_nhdsWithin_0_of_lt_1 +/- theorem tendsto_pow_atTop_nhds_0_iff +/- theorem tendsto_pow_atTop_nhds_0_of_lt_1 +/- theorem uniformity_basis_dist_pow_of_lt_1 Modified Mathlib/Analysis/SpecificLimits/IsROrC.lean Modified Mathlib/Analysis/SpecificLimits/Normed.lean +/- theorem NormedField.continuousAt_inv +/- theorem NormedField.continuousAt_zpow +/- theorem NormedField.tendsto_norm_inverse_nhdsWithin_0_atTop +/- theorem NormedField.tendsto_norm_zpow_nhdsWithin_0_atTop +/- theorem NormedField.tendsto_zero_smul_of_tendsto_zero_of_bounded +/- theorem hasSum_coe_mul_geometric_of_norm_lt_1 +/- theorem isLittleO_coe_const_pow_of_one_lt +/- theorem isLittleO_pow_const_const_pow_of_one_lt +/- theorem isLittleO_pow_const_mul_const_pow_const_pow_of_norm_lt +/- theorem not_summable_of_ratio_norm_eventually_ge +/- theorem not_summable_of_ratio_test_tendsto_gt_one +/- theorem summable_norm_pow_mul_geometric_of_norm_lt_1 +/- theorem summable_of_ratio_norm_eventually_le +/- theorem summable_of_ratio_test_tendsto_lt_one +/- theorem summable_pow_mul_geometric_of_norm_lt_1 +/- theorem tendsto_norm_zero' +/- theorem tendsto_pow_atTop_nhds_0_of_norm_lt_1 +/- theorem tsum_coe_mul_geometric_of_norm_lt_1 Modified Mathlib/CategoryTheory/Abelian/Ext.lean Modified Mathlib/CategoryTheory/Abelian/Homology.lean Modified Mathlib/CategoryTheory/Abelian/Opposite.lean Modified Mathlib/CategoryTheory/Abelian/Pseudoelements.lean +/- theorem CategoryTheory.Abelian.Pseudoelement.ModuleCat.eq_range_of_pseudoequal Modified Mathlib/CategoryTheory/Abelian/RightDerived.lean Modified Mathlib/CategoryTheory/Action.lean Modified Mathlib/CategoryTheory/Adjunction/Whiskering.lean Modified Mathlib/CategoryTheory/Arrow.lean +/- def CategoryTheory.Arrow.isoOfNatIso Modified Mathlib/CategoryTheory/Bicategory/End.lean Modified Mathlib/CategoryTheory/Bicategory/SingleObj.lean +/- def CategoryTheory.MonoidalSingleObj Modified Mathlib/CategoryTheory/CatCommSq.lean Modified Mathlib/CategoryTheory/Category/Bipointed.lean +/- theorem Bipointed.coe_of +/- def Bipointed.of Modified Mathlib/CategoryTheory/Category/Grpd.lean Modified Mathlib/CategoryTheory/Category/PartialFun.lean +/- def PartialFun.of Modified Mathlib/CategoryTheory/Category/Pointed.lean +/- theorem Pointed.coe_of +/- def Pointed.of Modified Mathlib/CategoryTheory/Category/QuivCat.lean +/- def CategoryTheory.QuivCat.lift Modified Mathlib/CategoryTheory/Category/TwoP.lean +/- theorem TwoP.coe_of +/- def TwoP.of Modified Mathlib/CategoryTheory/Closed/FunctorCategory.lean Modified Mathlib/CategoryTheory/CommSq.lean Modified Mathlib/CategoryTheory/ConcreteCategory/Basic.lean Modified Mathlib/CategoryTheory/DifferentialObject.lean Modified Mathlib/CategoryTheory/EqToHom.lean +/- theorem CategoryTheory.dcongr_arg Modified Mathlib/CategoryTheory/Equivalence.lean +/- def CategoryTheory.IsEquivalence.cancelCompLeft +/- def CategoryTheory.IsEquivalence.cancelCompRight Modified Mathlib/CategoryTheory/EssentiallySmall.lean +/- def CategoryTheory.ShrinkHoms.fromShrinkHoms +/- def CategoryTheory.ShrinkHoms.toShrinkHoms Modified Mathlib/CategoryTheory/Extensive.lean +/- theorem CategoryTheory.IsVanKampenColimit.of_map Modified Mathlib/CategoryTheory/Filtered.lean +/- theorem CategoryTheory.Functor.ranges_directed Modified Mathlib/CategoryTheory/FinCategory.lean Modified Mathlib/CategoryTheory/FintypeCat.lean +/- def FintypeCat.incl +/- def FintypeCat.of Modified Mathlib/CategoryTheory/FullSubcategory.lean Modified Mathlib/CategoryTheory/Functor/EpiMono.lean Modified Mathlib/CategoryTheory/Functor/FullyFaithful.lean Modified Mathlib/CategoryTheory/Functor/LeftDerived.lean Modified Mathlib/CategoryTheory/GlueData.lean +/- theorem CategoryTheory.GlueData.types_ι_jointly_surjective +/- theorem CategoryTheory.GlueData.types_π_surjective Modified Mathlib/CategoryTheory/GradedObject.lean +/- theorem CategoryTheory.GradedObject.shiftFunctor_map_apply +/- theorem CategoryTheory.GradedObject.shiftFunctor_obj_apply Modified Mathlib/CategoryTheory/Grothendieck.lean Modified Mathlib/CategoryTheory/Groupoid.lean Modified Mathlib/CategoryTheory/Groupoid/Basic.lean Modified Mathlib/CategoryTheory/Groupoid/Subgroupoid.lean +/- theorem CategoryTheory.Subgroupoid.comap_comp +/- theorem CategoryTheory.Subgroupoid.ker_comp Modified Mathlib/CategoryTheory/Idempotents/Basic.lean +/- theorem CategoryTheory.Idempotents.Equivalence.isIdempotentComplete +/- theorem CategoryTheory.Idempotents.isIdempotentComplete_iff_of_equivalence Modified Mathlib/CategoryTheory/Idempotents/Biproducts.lean Modified Mathlib/CategoryTheory/Idempotents/FunctorCategories.lean Modified Mathlib/CategoryTheory/Idempotents/FunctorExtension.lean Modified Mathlib/CategoryTheory/Idempotents/HomologicalComplex.lean Modified Mathlib/CategoryTheory/Idempotents/Karoubi.lean +/- theorem CategoryTheory.Idempotents.Karoubi.sum_hom Modified Mathlib/CategoryTheory/Idempotents/KaroubiKaroubi.lean Modified Mathlib/CategoryTheory/Idempotents/SimplicialObject.lean Modified Mathlib/CategoryTheory/IsConnected.lean +/- theorem CategoryTheory.isPreconnected_induction Modified Mathlib/CategoryTheory/LiftingProperties/Adjunction.lean Modified Mathlib/CategoryTheory/LiftingProperties/Basic.lean Modified Mathlib/CategoryTheory/Limits/ConcreteCategory.lean +/- theorem CategoryTheory.Limits.cokernel_funext Modified Mathlib/CategoryTheory/Limits/Constructions/ZeroObjects.lean Modified Mathlib/CategoryTheory/Limits/Final.lean +/- def CategoryTheory.Functor.Final.induction +/- def CategoryTheory.Functor.Initial.induction Modified Mathlib/CategoryTheory/Limits/FunctorCategory.lean +/- def CategoryTheory.Limits.preservesColimitsOfShapeOfEvaluation +/- def CategoryTheory.Limits.preservesLimitsOfShapeOfEvaluation Modified Mathlib/CategoryTheory/Limits/MonoCoprod.lean Modified Mathlib/CategoryTheory/Limits/Preserves/FunctorCategory.lean Modified Mathlib/CategoryTheory/Limits/Shapes/BinaryProducts.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Biproducts.lean +/- def CategoryTheory.Limits.biproductBiproductIso Modified Mathlib/CategoryTheory/Limits/Shapes/CommSq.lean +/- theorem CategoryTheory.IsPullback.map_iff +/- theorem CategoryTheory.IsPushout.map_iff Modified Mathlib/CategoryTheory/Limits/Shapes/Diagonal.lean Modified Mathlib/CategoryTheory/Limits/Shapes/FiniteProducts.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Images.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Kernels.lean +/- theorem CategoryTheory.Limits.colimit_ι_zero_cokernel_desc Modified Mathlib/CategoryTheory/Limits/Shapes/NormalMono/Equalizers.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Products.lean +/- def CategoryTheory.Limits.piPiIso +/- def CategoryTheory.Limits.sigmaSigmaIso Modified Mathlib/CategoryTheory/Limits/Shapes/Pullbacks.lean Modified Mathlib/CategoryTheory/Limits/Shapes/StrictInitial.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Terminal.lean +/- def CategoryTheory.Limits.colimitConstInitial +/- def CategoryTheory.Limits.isInitialBot +/- def CategoryTheory.Limits.isTerminalTop +/- def CategoryTheory.Limits.limitConstTerminal +/- theorem CategoryTheory.Limits.limitConstTerminal_inv_π +/- theorem CategoryTheory.Limits.ι_colimitConstInitial_hom Modified Mathlib/CategoryTheory/Limits/Shapes/ZeroMorphisms.lean Modified Mathlib/CategoryTheory/Linear/Basic.lean +/- def CategoryTheory.Linear.homCongr +/- theorem CategoryTheory.Linear.homCongr_apply +/- theorem CategoryTheory.Linear.homCongr_symm_apply Modified Mathlib/CategoryTheory/Linear/FunctorCategory.lean Modified Mathlib/CategoryTheory/Linear/LinearFunctor.lean Modified Mathlib/CategoryTheory/Localization/Adjunction.lean Modified Mathlib/CategoryTheory/Localization/Construction.lean Modified Mathlib/CategoryTheory/Localization/Equivalence.lean Modified Mathlib/CategoryTheory/Localization/Opposite.lean +/- def CategoryTheory.Localization.StrictUniversalPropertyFixedTarget.op Modified Mathlib/CategoryTheory/Localization/Predicate.lean +/- theorem CategoryTheory.Functor.IsLocalization.of_equivalence_target +/- def CategoryTheory.Localization.whiskeringLeftFunctor' Modified Mathlib/CategoryTheory/Monoidal/Braided.lean +/- def CategoryTheory.braidedCategoryOfFaithful +/- def CategoryTheory.symmetricCategoryOfFaithful Modified Mathlib/CategoryTheory/Monoidal/CoherenceLemmas.lean Modified Mathlib/CategoryTheory/Monoidal/End.lean Modified Mathlib/CategoryTheory/Monoidal/Linear.lean +/- theorem CategoryTheory.monoidalLinearOfFaithful Modified Mathlib/CategoryTheory/Monoidal/Preadditive.lean +/- theorem CategoryTheory.sum_tensor +/- theorem CategoryTheory.tensor_sum Modified Mathlib/CategoryTheory/Monoidal/Rigid/FunctorCategory.lean Modified Mathlib/CategoryTheory/Monoidal/Rigid/OfEquivalence.lean Modified Mathlib/CategoryTheory/Monoidal/Subcategory.lean Modified Mathlib/CategoryTheory/Monoidal/Tor.lean Modified Mathlib/CategoryTheory/Monoidal/Types/Basic.lean Modified Mathlib/CategoryTheory/MorphismProperty.lean +/- def CategoryTheory.MorphismProperty.FunctorsInverting.mk +/- def CategoryTheory.MorphismProperty.FunctorsInverting +/- theorem CategoryTheory.MorphismProperty.IsInvertedBy.of_comp Modified Mathlib/CategoryTheory/Noetherian.lean Modified Mathlib/CategoryTheory/Preadditive/AdditiveFunctor.lean +/- theorem CategoryTheory.Functor.map_sum Modified Mathlib/CategoryTheory/Preadditive/Basic.lean +/- theorem CategoryTheory.Preadditive.comp_sum +/- theorem CategoryTheory.Preadditive.sum_comp Modified Mathlib/CategoryTheory/Preadditive/FunctorCategory.lean +/- theorem CategoryTheory.NatTrans.app_sum Modified Mathlib/CategoryTheory/Preadditive/HomOrthogonal.lean +/- def CategoryTheory.HomOrthogonal Modified Mathlib/CategoryTheory/Preadditive/Injective.lean Modified Mathlib/CategoryTheory/Preadditive/Mat.lean +/- def CategoryTheory.Functor.mapMatComp Modified Mathlib/CategoryTheory/Preadditive/Opposite.lean +/- theorem CategoryTheory.op_sum +/- theorem CategoryTheory.unop_sum Modified Mathlib/CategoryTheory/Preadditive/Schur.lean Modified Mathlib/CategoryTheory/Preadditive/SingleObj.lean Modified Mathlib/CategoryTheory/Shift/Basic.lean Modified Mathlib/CategoryTheory/Shift/CommShift.lean Modified Mathlib/CategoryTheory/Sites/Coherent.lean Modified Mathlib/CategoryTheory/Sites/CoverLifting.lean Modified Mathlib/CategoryTheory/Sites/Coverage.lean Modified Mathlib/CategoryTheory/Sites/DenseSubsite.lean Modified Mathlib/CategoryTheory/Sites/EffectiveEpimorphic.lean +/- def CategoryTheory.EffectiveEpiFamily.desc +/- theorem CategoryTheory.EffectiveEpiFamily.fac +/- def CategoryTheory.EffectiveEpiFamily.getStruct +/- theorem CategoryTheory.EffectiveEpiFamily.hom_ext +/- theorem CategoryTheory.EffectiveEpiFamily.uniq +/- structure CategoryTheory.EffectiveEpiFamilyStruct +/- theorem CategoryTheory.Sieve.effectiveEpimorphic_family +/- def CategoryTheory.Sieve.generateFamily +/- theorem CategoryTheory.Sieve.generateFamily_eq +/- def CategoryTheory.effectiveEpiFamilyStructOfIsColimit +/- def CategoryTheory.isColimitOfEffectiveEpiFamilyStruct Modified Mathlib/CategoryTheory/Sites/InducedTopology.lean Modified Mathlib/CategoryTheory/Sites/Sieves.lean +/- inductive CategoryTheory.Presieve.ofArrows +/- theorem CategoryTheory.Presieve.ofArrows_bind +/- theorem CategoryTheory.Presieve.ofArrows_pullback Modified Mathlib/CategoryTheory/Skeletal.lean Modified Mathlib/CategoryTheory/Subobject/Basic.lean Modified Mathlib/CategoryTheory/Subobject/Lattice.lean +/- theorem CategoryTheory.Subobject.finset_inf_arrow_factors +/- theorem CategoryTheory.Subobject.finset_inf_factors +/- theorem CategoryTheory.Subobject.finset_sup_factors +/- theorem CategoryTheory.Subobject.symm_apply_mem_iff_mem_image Modified Mathlib/CategoryTheory/Triangulated/Triangulated.lean Modified Mathlib/CategoryTheory/WithTerminal.lean +/- def CategoryTheory.WithInitial.inclLift +/- def CategoryTheory.WithInitial.inclLiftToInitial +/- def CategoryTheory.WithInitial.lift +/- def CategoryTheory.WithInitial.liftStar +/- theorem CategoryTheory.WithInitial.liftStar_lift_map +/- def CategoryTheory.WithInitial.liftToInitial +/- def CategoryTheory.WithInitial.liftToInitialUnique +/- def CategoryTheory.WithInitial.liftUnique +/- def CategoryTheory.WithInitial.map +/- def CategoryTheory.WithTerminal.inclLift +/- def CategoryTheory.WithTerminal.inclLiftToTerminal +/- def CategoryTheory.WithTerminal.lift +/- def CategoryTheory.WithTerminal.liftStar +/- def CategoryTheory.WithTerminal.liftToTerminal +/- def CategoryTheory.WithTerminal.liftToTerminalUnique +/- def CategoryTheory.WithTerminal.liftUnique +/- theorem CategoryTheory.WithTerminal.lift_map_liftStar +/- def CategoryTheory.WithTerminal.map Modified Mathlib/Combinatorics/Additive/Behrend.lean Modified Mathlib/Combinatorics/Additive/Energy.lean Modified Mathlib/Combinatorics/Additive/Etransform.lean Modified Mathlib/Combinatorics/Additive/PluenneckeRuzsa.lean +/- theorem Finset.card_add_nsmul_le Modified Mathlib/Combinatorics/Additive/RuzsaCovering.lean Modified Mathlib/Combinatorics/Additive/SalemSpencer.lean +/- theorem mulSalemSpencer_pi Modified Mathlib/Combinatorics/Colex.lean +/- theorem Colex.hom_le_iff +/- theorem Colex.hom_lt_iff Modified Mathlib/Combinatorics/Composition.lean Modified Mathlib/Combinatorics/Configuration.lean Modified Mathlib/Combinatorics/Derangements/Basic.lean +/- def derangements Modified Mathlib/Combinatorics/Derangements/Finite.lean +/- theorem card_derangements_eq_numDerangements +/- theorem card_derangements_invariant Modified Mathlib/Combinatorics/DoubleCounting.lean Modified Mathlib/Combinatorics/HalesJewett.lean +/- structure Combinatorics.Line.AlmostMono +/- structure Combinatorics.Line.ColorFocused +/- structure Combinatorics.Line +/- theorem Combinatorics.exists_mono_homothetic_copy Modified Mathlib/Combinatorics/Hall/Finite.lean +/- theorem Finset.all_card_le_biUnion_card_iff_existsInjective' Modified Mathlib/Combinatorics/Partition.lean Modified Mathlib/Combinatorics/Quiver/Basic.lean +/- def Prefunctor.comp +/- theorem Prefunctor.comp_assoc +/- theorem Prefunctor.comp_id +/- def Prefunctor.id +/- theorem Prefunctor.id_comp Modified Mathlib/Combinatorics/Quiver/Cast.lean Modified Mathlib/Combinatorics/Quiver/ConnectedComponent.lean Modified Mathlib/Combinatorics/Quiver/Push.lean Modified Mathlib/Combinatorics/Quiver/SingleObj.lean +/- def Quiver.SingleObj Modified Mathlib/Combinatorics/Quiver/Subquiver.lean +/- def Quiver.Labelling Modified Mathlib/Combinatorics/Quiver/Symmetric.lean +/- def Quiver.Symmetrify Modified Mathlib/Combinatorics/SetFamily/Compression/Down.lean Modified Mathlib/Combinatorics/SetFamily/Compression/UV.lean Modified Mathlib/Combinatorics/SetFamily/HarrisKleitman.lean Modified Mathlib/Combinatorics/SetFamily/Intersecting.lean Modified Mathlib/Combinatorics/SetFamily/Kleitman.lean Modified Mathlib/Combinatorics/SetFamily/LYM.lean Modified Mathlib/Combinatorics/SetFamily/Shadow.lean Modified Mathlib/Combinatorics/SimpleGraph/AdjMatrix.lean Modified Mathlib/Combinatorics/SimpleGraph/Basic.lean +/- theorem SimpleGraph.Iso.toEmbedding_completeGraph +/- def SimpleGraph.edgeSetEmbedding +/- def completeBipartiteGraph Modified Mathlib/Combinatorics/SimpleGraph/Clique.lean Modified Mathlib/Combinatorics/SimpleGraph/Coloring.lean +/- theorem SimpleGraph.Colorable.chromaticNumber_le_of_forall_imp +/- theorem SimpleGraph.Colorable.chromaticNumber_mono_of_embedding +/- theorem SimpleGraph.Colorable.of_embedding +/- def SimpleGraph.CompleteBipartiteGraph.bicoloring +/- theorem SimpleGraph.CompleteBipartiteGraph.chromaticNumber +/- theorem SimpleGraph.chromaticNumber_top_eq_zero_of_infinite +/- def SimpleGraph.recolorOfEmbedding +/- def SimpleGraph.recolorOfEquiv Modified Mathlib/Combinatorics/SimpleGraph/Connectivity.lean +/- def SimpleGraph.Walk.notNilRec Modified Mathlib/Combinatorics/SimpleGraph/Density.lean Modified Mathlib/Combinatorics/SimpleGraph/Ends/Defs.lean Modified Mathlib/Combinatorics/SimpleGraph/Hasse.lean Modified Mathlib/Combinatorics/SimpleGraph/IncMatrix.lean Modified Mathlib/Combinatorics/SimpleGraph/Metric.lean Modified Mathlib/Combinatorics/SimpleGraph/Prod.lean Modified Mathlib/Combinatorics/SimpleGraph/Regularity/Bound.lean Modified Mathlib/Combinatorics/SimpleGraph/Regularity/Chunk.lean Modified Mathlib/Combinatorics/SimpleGraph/Regularity/Energy.lean +/- theorem Finpartition.coe_energy Modified Mathlib/Combinatorics/SimpleGraph/Regularity/Equitabilise.lean Modified Mathlib/Combinatorics/SimpleGraph/Regularity/Increment.lean Modified Mathlib/Combinatorics/SimpleGraph/Regularity/Lemma.lean Modified Mathlib/Combinatorics/SimpleGraph/Regularity/Uniform.lean Modified Mathlib/Combinatorics/SimpleGraph/Subgraph.lean Modified Mathlib/Combinatorics/SimpleGraph/Trails.lean Modified Mathlib/Combinatorics/SimpleGraph/Triangle/Basic.lean Modified Mathlib/Computability/Halting.lean Modified Mathlib/Computability/Language.lean Modified Mathlib/Computability/Partrec.lean Modified Mathlib/Computability/Primrec.lean Modified Mathlib/Computability/Reduce.lean Modified Mathlib/Computability/RegularExpressions.lean Modified Mathlib/Computability/TMComputable.lean +/- def Turing.EvalsTo.refl +/- def Turing.EvalsTo.trans +/- structure Turing.EvalsTo +/- def Turing.EvalsToInTime.refl +/- def Turing.EvalsToInTime.trans +/- structure Turing.EvalsToInTime Modified Mathlib/Computability/TuringMachine.lean +/- theorem Turing.TM2to1.stk_nth_val +/- structure Turing.Tape +/- def Turing.evalInduction +/- def Turing.proj +/- theorem Turing.proj_map_nth Modified Mathlib/Control/Bifunctor.lean Modified Mathlib/Control/Fix.lean Modified Mathlib/Control/Functor.lean +/- def Functor.AddConst +/- def Functor.Const Modified Mathlib/Control/Functor/Multivariate.lean Modified Mathlib/Control/LawfulFix.lean Modified Mathlib/Control/ULiftable.lean Modified Mathlib/Data/Analysis/Filter.lean +/- structure CFilter Modified Mathlib/Data/Analysis/Topology.lean +/- theorem Ctop.Realizer.ext' +/- theorem Ctop.Realizer.ext +/- structure Ctop Modified Mathlib/Data/Bool/AllAny.lean Modified Mathlib/Data/Bool/Basic.lean +/- theorem Bool.injective_iff Modified Mathlib/Data/Bool/Set.lean +/- theorem Bool.range_eq Modified Mathlib/Data/Bracket.lean Modified Mathlib/Data/Bundle.lean +/- def Bundle.Pullback +/- def Bundle.TotalSpace.toProd +/- def Bundle.TotalSpace.trivialSnd +/- structure Bundle.TotalSpace +/- def Bundle.Trivial Modified Mathlib/Data/Complex/Basic.lean +/- theorem Complex.abs_prod Modified Mathlib/Data/Complex/Exponential.lean +/- theorem Complex.exp_sum +/- theorem Complex.sum_div_factorial_le +/- theorem Real.exp_sum +/- theorem abv_sum_le_sum_abv +/- theorem isCauSeq_geo_series +/- theorem sum_range_diag_flip Modified Mathlib/Data/Complex/Module.lean +/- theorem Complex.coe_smul +/- theorem finrank_real_of_complex +/- theorem rank_real_of_complex Modified Mathlib/Data/Countable/Basic.lean Modified Mathlib/Data/Countable/Defs.lean +/- theorem Countable.of_equiv Modified Mathlib/Data/DFinsupp/Basic.lean +/- theorem DFinsupp.comp_liftAddHom +/- theorem DFinsupp.comp_sumAddHom +/- theorem DFinsupp.erase_eq_sub_single +/- theorem DFinsupp.prod_comm +/- theorem DFinsupp.smul_sum +/- theorem DFinsupp.sumAddHom_comm +/- theorem DFinsupp.update_eq_erase_add_single +/- theorem DFinsupp.update_eq_single_add_erase +/- theorem DFinsupp.update_eq_sub_add_single +/- theorem dfinsupp_sumAddHom_mem Modified Mathlib/Data/DFinsupp/Encodable.lean Modified Mathlib/Data/DFinsupp/Interval.lean Modified Mathlib/Data/DFinsupp/Lex.lean Modified Mathlib/Data/DFinsupp/Multiset.lean Modified Mathlib/Data/DFinsupp/NeLocus.lean Modified Mathlib/Data/DFinsupp/Order.lean Modified Mathlib/Data/DFinsupp/WellFounded.lean Modified Mathlib/Data/DList/Basic.lean +/- def Std.DList.join +/- theorem Std.DList_lazy +/- theorem Std.DList_singleton Modified Mathlib/Data/DList/Instances.lean Modified Mathlib/Data/ENat/Basic.lean +/- def ENat.recTopCoe +/- theorem ENat.recTopCoe_coe +/- theorem ENat.recTopCoe_top Modified Mathlib/Data/ENat/Lattice.lean Modified Mathlib/Data/Fin/Basic.lean +/- theorem Fin.antitone_iff_succ_le +/- def Fin.elim0' +/- theorem Fin.liftFun_iff_succ +/- theorem Fin.monotone_iff_le_succ +/- theorem Fin.strictAnti_iff_succ_lt +/- theorem Fin.strictMono_iff_lt_succ +/- def finZeroElim Modified Mathlib/Data/Fin/Tuple/Basic.lean +/- def Fin.append +/- theorem Fin.append_assoc +/- theorem Fin.append_elim0' +/- theorem Fin.append_left +/- theorem Fin.append_left_eq_cons +/- theorem Fin.append_left_nil +/- theorem Fin.append_right +/- theorem Fin.append_right_eq_snoc +/- theorem Fin.append_right_nil +/- theorem Fin.comp_cons +/- theorem Fin.comp_init +/- theorem Fin.comp_snoc +/- theorem Fin.comp_tail +/- def Fin.consInduction +/- theorem Fin.cons_snoc_eq_snoc_cons +/- theorem Fin.elim0'_append +/- theorem Fin.exists_fin_zero_pi +/- theorem Fin.forall_fin_zero_pi +/- theorem Fin.init_def +/- theorem Fin.range_cons +/- theorem Fin.repeat_add +/- theorem Fin.repeat_apply +/- theorem Fin.repeat_one +/- theorem Fin.repeat_succ +/- theorem Fin.repeat_zero +/- theorem Fin.sigma_eq_iff_eq_comp_castIso +/- theorem Fin.sigma_eq_of_eq_comp_castIso +/- theorem Fin.snoc_cast_add +/- theorem Fin.tail_def +/- theorem Fin.tail_init_eq_init_tail +/- theorem Fin.tuple0_le +/- def Fin.«repeat» Modified Mathlib/Data/Fin/Tuple/BubbleSortInduction.lean +/- theorem Tuple.bubble_sort_induction' +/- theorem Tuple.bubble_sort_induction Modified Mathlib/Data/Fin/Tuple/Monotone.lean Modified Mathlib/Data/Fin/Tuple/Reflection.lean Modified Mathlib/Data/Fin/Tuple/Sort.lean Modified Mathlib/Data/Fin/VecNotation.lean +/- theorem Matrix.empty_val' +/- def Matrix.vecAppend +/- theorem Matrix.vecAppend_apply_zero +/- theorem Matrix.vecAppend_eq_ite Modified Mathlib/Data/FinEnum.lean Modified Mathlib/Data/Finite/Basic.lean Modified Mathlib/Data/Finite/Card.lean +/- theorem Finite.cast_card_eq_mk +/- def Finite.equivFin +/- theorem Nat.card_eq +/- theorem PartENat.card_eq_coe_nat_card Modified Mathlib/Data/Finite/Defs.lean +/- theorem Finite.exists_equiv_fin +/- theorem Finite.of_equiv +/- theorem finite_iff_exists_equiv_fin +/- theorem finite_or_infinite +/- theorem not_finite Modified Mathlib/Data/Finset/Basic.lean +/- theorem Directed.exists_mem_subset_of_finset_subset_biUnion +/- theorem DirectedOn.exists_mem_subset_of_finset_subset_biUnion +/- theorem Finset.Nonempty.cons_induction +/- theorem Finset.biUnion_subset_iff_forall_subset +/- theorem Finset.cons_induction +/- theorem Finset.cons_induction_on +/- theorem Finset.induction_on' +/- theorem Finset.le_piecewise_of_le_of_le +/- theorem Finset.pairwiseDisjoint_coe +/- def Finset.piecewise +/- theorem Finset.piecewise_le_of_le_of_le +/- theorem Finset.piecewise_le_piecewise' +/- theorem Finset.piecewise_le_piecewise +/- theorem Finset.piecewise_mem_Icc' +/- theorem Finset.piecewise_mem_Icc +/- theorem Finset.piecewise_mem_Icc_of_mem_of_mem +/- theorem Finset.piecewise_mem_set_pi +/- theorem Finset.update_eq_piecewise +/- structure Finset Modified Mathlib/Data/Finset/Card.lean +/- def Finset.strongDownwardInduction +/- def Finset.strongDownwardInductionOn +/- theorem Finset.strongDownwardInductionOn_eq +/- theorem Finset.strongDownwardInduction_eq +/- def Finset.strongInduction +/- def Finset.strongInductionOn +/- theorem Finset.strongInductionOn_eq +/- theorem Finset.strongInduction_eq Modified Mathlib/Data/Finset/Finsupp.lean Modified Mathlib/Data/Finset/Fold.lean +/- theorem Finset.fold_disjiUnion Modified Mathlib/Data/Finset/Image.lean Modified Mathlib/Data/Finset/Interval.lean Modified Mathlib/Data/Finset/Lattice.lean +/- theorem Finset.inf'_mem +/- theorem Finset.inf_sup +/- theorem Finset.sup'_mem +/- theorem Finset.sup_inf +/- theorem Finset.sup_le_of_le_directed +/- theorem Finset.sup_sdiff_right Modified Mathlib/Data/Finset/LocallyFinite.lean Modified Mathlib/Data/Finset/MulAntidiagonal.lean Modified Mathlib/Data/Finset/NAry.lean +/- theorem Finset.image₂_assoc +/- theorem Finset.image₂_distrib_subset_left +/- theorem Finset.image₂_distrib_subset_right +/- theorem Finset.image₂_image₂_image₂_comm +/- theorem Finset.image₂_left_comm +/- theorem Finset.image₂_right_comm Modified Mathlib/Data/Finset/NoncommProd.lean +/- theorem Finset.noncommProd_eq_prod +/- theorem Multiset.noncommProd_eq_prod Modified Mathlib/Data/Finset/Option.lean Modified Mathlib/Data/Finset/PImage.lean Modified Mathlib/Data/Finset/Pairwise.lean Modified Mathlib/Data/Finset/Pi.lean +/- def Finset.Pi.empty +/- theorem Finset.pi_const_singleton +/- theorem Finset.pi_disjoint_of_disjoint +/- theorem Finset.pi_singletons Modified Mathlib/Data/Finset/PiInduction.lean Modified Mathlib/Data/Finset/Pointwise.lean +/- theorem Finset.coe_prod Modified Mathlib/Data/Finset/Powerset.lean +/- theorem Finset.powersetLen_map Modified Mathlib/Data/Finset/Preimage.lean +/- theorem Finset.sigma_image_fst_preimage_mk +/- theorem Finset.sigma_preimage_mk +/- theorem Finset.sigma_preimage_mk_of_subset Modified Mathlib/Data/Finset/Prod.lean Modified Mathlib/Data/Finset/Sigma.lean Modified Mathlib/Data/Finset/Slice.lean Modified Mathlib/Data/Finset/Sort.lean Modified Mathlib/Data/Finset/Sum.lean Modified Mathlib/Data/Finset/Sups.lean Modified Mathlib/Data/Finset/Sym.lean Modified Mathlib/Data/Finsupp/AList.lean Modified Mathlib/Data/Finsupp/Antidiagonal.lean +/- theorem Finsupp.prod_antidiagonal_swap Modified Mathlib/Data/Finsupp/Basic.lean +/- theorem Finsupp.coe_sumElim +/- theorem Finsupp.fst_sumFinsuppAddEquivProdFinsupp +/- theorem Finsupp.fst_sumFinsuppEquivProdFinsupp +/- def Finsupp.mapDomainEmbedding +/- def Finsupp.restrictSupportEquiv +/- theorem Finsupp.sigmaFinsuppAddEquivPiFinsupp_apply +/- theorem Finsupp.snd_sumFinsuppAddEquivProdFinsupp +/- theorem Finsupp.snd_sumFinsuppEquivProdFinsupp +/- def Finsupp.sumElim +/- theorem Finsupp.sumElim_apply +/- theorem Finsupp.sumElim_inl +/- theorem Finsupp.sumElim_inr +/- def Finsupp.sumFinsuppAddEquivProdFinsupp +/- theorem Finsupp.sumFinsuppAddEquivProdFinsupp_symm_inl +/- theorem Finsupp.sumFinsuppAddEquivProdFinsupp_symm_inr +/- def Finsupp.sumFinsuppEquivProdFinsupp +/- theorem Finsupp.sumFinsuppEquivProdFinsupp_symm_inl +/- theorem Finsupp.sumFinsuppEquivProdFinsupp_symm_inr Modified Mathlib/Data/Finsupp/BigOperators.lean Modified Mathlib/Data/Finsupp/Defs.lean +/- structure Finsupp Modified Mathlib/Data/Finsupp/Fin.lean Modified Mathlib/Data/Finsupp/Indicator.lean Modified Mathlib/Data/Finsupp/Interval.lean Modified Mathlib/Data/Finsupp/Lex.lean Modified Mathlib/Data/Finsupp/Multiset.lean Modified Mathlib/Data/Finsupp/NeLocus.lean Modified Mathlib/Data/Finsupp/Order.lean Modified Mathlib/Data/Finsupp/Pwo.lean +/- theorem Finsupp.isPwo Modified Mathlib/Data/Finsupp/ToDFinsupp.lean Modified Mathlib/Data/Finsupp/WellFounded.lean Modified Mathlib/Data/Fintype/Array.lean Modified Mathlib/Data/Fintype/Basic.lean +/- theorem Finset.piecewise_erase_univ +/- theorem Finset.piecewise_univ +/- theorem Finset.univ_map_equiv_to_embedding +/- theorem Fintype.choose_subtype_eq +/- def Fintype.ofEquiv +/- def Unique.fintype +/- theorem exists_seq_of_forall_finset_exists' +/- theorem exists_seq_of_forall_finset_exists +/- theorem mem_image_univ_iff_mem_range Modified Mathlib/Data/Fintype/BigOperators.lean +/- theorem Finset.card_pi +/- theorem Finset.prod_toFinset_eq_subtype +/- theorem Finset.prod_univ_pi +/- theorem Fintype.card_pi +/- theorem Fintype.card_piFinset +/- theorem Fintype.eq_of_subsingleton_of_prod_eq +/- theorem Fintype.sum_pow_mul_eq_add_pow Modified Mathlib/Data/Fintype/Card.lean +/- theorem Finite.of_injective +/- theorem Finite.of_surjective +/- theorem Finset.exists_maximal +/- theorem Finset.exists_minimal +/- theorem Finset.univ_map_embedding +/- theorem Fintype.card_lex +/- theorem Fintype.card_orderDual +/- theorem Fintype.card_plift +/- theorem Fintype.card_range +/- theorem Fintype.card_range_le +/- theorem Fintype.card_ulift +/- theorem Fintype.induction_subsingleton_or_nontrivial +/- theorem Infinite.exists_subset_card_eq +/- theorem List.Nodup.length_le_card +/- theorem Set.toFinset_card +/- theorem finite_iff_nonempty_fintype +/- theorem isEmpty_fintype +/- theorem nonempty_fintype Modified Mathlib/Data/Fintype/CardEmbedding.lean +/- theorem Fintype.card_embedding_eq +/- theorem Fintype.card_embedding_eq_of_infinite +/- theorem Fintype.card_embedding_eq_of_unique Modified Mathlib/Data/Fintype/Fin.lean Modified Mathlib/Data/Fintype/Lattice.lean Modified Mathlib/Data/Fintype/List.lean Modified Mathlib/Data/Fintype/Option.lean +/- theorem Fintype.card_option +/- def fintypeOfOption +/- theorem univ_option Modified Mathlib/Data/Fintype/Order.lean +/- theorem Directed.fintype_le +/- theorem Fintype.bddAbove_range +/- theorem Fintype.bddBelow_range +/- theorem Fintype.exists_ge +/- theorem Fintype.exists_le Modified Mathlib/Data/Fintype/Parity.lean Modified Mathlib/Data/Fintype/Perm.lean Modified Mathlib/Data/Fintype/Pi.lean +/- theorem Finset.univ_pi_univ +/- theorem Fintype.piFinset_univ Modified Mathlib/Data/Fintype/Powerset.lean +/- theorem Finset.univ_filter_card_eq Modified Mathlib/Data/Fintype/Prod.lean +/- theorem Finset.univ_product_univ +/- theorem Fintype.card_prod +/- theorem Pi.infinite_of_exists_right Modified Mathlib/Data/Fintype/Quotient.lean +/- def Quotient.finChoice +/- def Quotient.finChoiceAux +/- theorem Quotient.finChoiceAux_eq +/- theorem Quotient.finChoice_eq Modified Mathlib/Data/Fintype/Sigma.lean +/- theorem Finset.univ_sigma_univ Modified Mathlib/Data/Fintype/Sort.lean +/- def monoEquivOfFin Modified Mathlib/Data/Fintype/Sum.lean +/- theorem Finset.univ_disjSum_univ Modified Mathlib/Data/Fintype/Units.lean Modified Mathlib/Data/Fintype/Vector.lean Modified Mathlib/Data/FunLike/Basic.lean +/- structure CoolerHom +/- theorem do_something +/- theorem map_cool +/- theorem map_op Modified Mathlib/Data/FunLike/Embedding.lean +/- structure CoolerEmbedding +/- theorem EmbeddingLike.comp_injective +/- theorem do_something +/- theorem map_cool +/- theorem map_op Modified Mathlib/Data/FunLike/Equiv.lean +/- structure CoolerIso +/- theorem do_something +/- theorem map_cool Modified Mathlib/Data/FunLike/Fintype.lean Modified Mathlib/Data/Int/AbsoluteValue.lean Modified Mathlib/Data/Int/Cast/Field.lean Modified Mathlib/Data/Int/Cast/Lemmas.lean +/- def Int.castAddHom +/- def Int.castRingHom +/- theorem RingHom.ext_int +/- theorem Sum.elim_intCast_intCast Modified Mathlib/Data/Int/Cast/Prod.lean Modified Mathlib/Data/Int/CharZero.lean +/- theorem Int.cast_div_charZero +/- theorem RingHom.injective_int Modified Mathlib/Data/Int/GCD.lean +/- theorem pow_gcd_eq_one Modified Mathlib/Data/Int/Log.lean Modified Mathlib/Data/Int/Order/Basic.lean +/- theorem Nat.cast_natAbs Modified Mathlib/Data/IsROrC/Basic.lean +/- theorem IsROrC.ofReal_finsupp_prod +/- theorem IsROrC.ofReal_finsupp_sum +/- theorem IsROrC.ofReal_prod +/- theorem IsROrC.ofReal_sum Modified Mathlib/Data/IsROrC/Lemmas.lean Modified Mathlib/Data/LazyList/Basic.lean +/- def LazyList.listEquivLazyList Modified Mathlib/Data/List/AList.lean +/- def AList.insertRec +/- theorem AList.insertRec_empty +/- theorem AList.insertRec_insert +/- theorem AList.insertRec_insert_mk Modified Mathlib/Data/List/Basic.lean +/- def List.bidirectionalRec +/- def List.bidirectionalRecOn +/- theorem List.dropLast_append_of_ne_nil +/- theorem List.dropLast_cons_of_ne_nil +/- theorem List.findIdx_nil +/- def List.foldlRecOn +/- theorem List.foldlRecOn_nil +/- def List.foldrRecOn +/- theorem List.foldrRecOn_cons +/- theorem List.foldrRecOn_nil +/- theorem List.getLast_pmap +/- theorem List.injective_foldl_comp +/- theorem List.map_drop +/- theorem List.map_take +/- theorem List.pmap_append' +/- def List.reverseRecOn Modified Mathlib/Data/List/BigOperators/Basic.lean +/- theorem List.prod_hom +/- theorem List.prod_isUnit_iff +/- theorem List.prod_map_hom +/- theorem List.prod_map_mul +/- theorem map_list_prod Modified Mathlib/Data/List/BigOperators/Lemmas.lean +/- theorem unop_map_list_prod Modified Mathlib/Data/List/Cycle.lean +/- theorem Cycle.chain_map +/- def Cycle.map +/- theorem Cycle.map_coe +/- theorem Cycle.map_eq_nil +/- theorem Cycle.map_nil +/- theorem Cycle.mem_map +/- def Cycle Modified Mathlib/Data/List/Defs.lean +/- def List.alternatingProd +/- def List.alternatingSum Modified Mathlib/Data/List/Destutter.lean Modified Mathlib/Data/List/Duplicate.lean Modified Mathlib/Data/List/Forall2.lean Modified Mathlib/Data/List/Func.lean +/- theorem List.Func.nil_sub +/- theorem List.Func.sub_nil Modified Mathlib/Data/List/Infix.lean Modified Mathlib/Data/List/Join.lean Modified Mathlib/Data/List/Lattice.lean Modified Mathlib/Data/List/Lemmas.lean Modified Mathlib/Data/List/MinMax.lean Modified Mathlib/Data/List/Nodup.lean +/- theorem List.Nodup.sigma Modified Mathlib/Data/List/NodupEquivFin.lean Modified Mathlib/Data/List/OfFn.lean +/- theorem List.map_ofFn +/- def List.ofFnRec +/- theorem List.ofFnRec_ofFn Modified Mathlib/Data/List/Pairwise.lean +/- theorem List.pairwise_replicate Modified Mathlib/Data/List/Palindrome.lean Modified Mathlib/Data/List/Perm.lean +/- theorem List.Perm.rec_heq +/- theorem List.Perm.take_inter +/- theorem List.Subperm.cons_right Modified Mathlib/Data/List/Permutation.lean Modified Mathlib/Data/List/Prime.lean Modified Mathlib/Data/List/ProdSigma.lean Modified Mathlib/Data/List/Rdrop.lean Modified Mathlib/Data/List/Rotate.lean +/- theorem List.IsRotated.map +/- def List.IsRotated.setoid +/- theorem List.map_rotate +/- theorem List.zipWith_rotate_distrib +/- theorem List.zipWith_rotate_one Modified Mathlib/Data/List/Sections.lean Modified Mathlib/Data/List/Sigma.lean +/- theorem List.sizeOf_dedupKeys +/- theorem List.sizeOf_kerase Modified Mathlib/Data/List/Sublists.lean +/- theorem List.length_of_sublistsLen +/- theorem List.length_sublistsLen +/- theorem List.mem_sublistsLen +/- theorem List.mem_sublistsLen_self +/- theorem List.range_bind_sublistsLen_perm +/- def List.sublistsLen +/- def List.sublistsLenAux +/- theorem List.sublistsLenAux_append +/- theorem List.sublistsLenAux_eq +/- theorem List.sublistsLenAux_zero +/- theorem List.sublistsLen_sublist_of_sublist +/- theorem List.sublistsLen_sublist_sublists' +/- theorem List.sublistsLen_succ_cons +/- theorem List.sublistsLen_succ_nil +/- theorem List.sublistsLen_zero Modified Mathlib/Data/List/TFAE.lean +/- theorem List.exists_tfae +/- theorem List.forall_tfae Modified Mathlib/Data/List/ToFinsupp.lean +/- theorem List.toFinsupp_append +/- theorem List.toFinsupp_concat_eq_toFinsupp_add_single +/- theorem List.toFinsupp_cons_eq_single_add_embDomain +/- theorem List.toFinsupp_eq_sum_map_enum_single Modified Mathlib/Data/List/Zip.lean +/- theorem List.map_zipWith +/- theorem List.sum_zipWith_distrib_left Modified Mathlib/Data/Matrix/Basic.lean +/- theorem Matrix.conjTranspose_sum +/- theorem Matrix.map_map +/- theorem Matrix.reindex_trans +/- theorem Matrix.submatrix_mul +/- theorem Matrix.submatrix_mul_equiv +/- theorem Matrix.submatrix_smul +/- theorem Matrix.submatrix_submatrix +/- theorem Matrix.transpose_smul +/- theorem Matrix.transpose_sum +/- theorem Matrix.two_mul_expl Modified Mathlib/Data/Matrix/Basis.lean Modified Mathlib/Data/Matrix/Block.lean +/- theorem Matrix.blockDiag'_conjTranspose +/- theorem Matrix.blockDiag'_smul +/- theorem Matrix.blockDiag_conjTranspose +/- theorem Matrix.blockDiag_smul +/- theorem Matrix.blockDiagonal'_smul +/- theorem Matrix.blockDiagonal_conjTranspose +/- theorem Matrix.blockDiagonal_smul +/- theorem Matrix.fromBlocks_submatrix_sum_swap_sum_swap +/- theorem Matrix.toBlock_mul_eq_add +/- theorem Matrix.toBlock_mul_eq_mul Modified Mathlib/Data/Matrix/CharP.lean Modified Mathlib/Data/Matrix/ColumnRowPartitioned.lean Modified Mathlib/Data/Matrix/DMatrix.lean Modified Mathlib/Data/Matrix/Hadamard.lean Modified Mathlib/Data/Matrix/Invertible.lean Modified Mathlib/Data/Matrix/Kronecker.lean +/- theorem Matrix.kroneckerMap_assoc +/- theorem Matrix.kroneckerMap_assoc₁ Modified Mathlib/Data/Matrix/Notation.lean +/- theorem Matrix.smul_mat_empty +/- theorem Matrix.smul_vec2 +/- theorem Matrix.smul_vec3 Modified Mathlib/Data/Matrix/PEquiv.lean +/- theorem PEquiv.mul_toPEquiv_toMatrix Modified Mathlib/Data/Matrix/Rank.lean +/- theorem Matrix.rank_eq_finrank_range_toLin Modified Mathlib/Data/Matrix/Reflection.lean Modified Mathlib/Data/Multiset/Antidiagonal.lean +/- theorem Multiset.antidiagonal_zero Modified Mathlib/Data/Multiset/Basic.lean +/- theorem Multiset.count_map +/- def Multiset.strongDownwardInduction +/- def Multiset.strongDownwardInductionOn +/- theorem Multiset.strongDownwardInductionOn_eq +/- theorem Multiset.strongDownwardInduction_eq +/- def Multiset.strongInductionOn +/- theorem Multiset.strongInductionOn_eq Modified Mathlib/Data/Multiset/Bind.lean +/- theorem Multiset.le_bind Modified Mathlib/Data/Multiset/Dedup.lean +/- theorem Multiset.Nodup.le_nsmul_iff_le Modified Mathlib/Data/Multiset/FinsetOps.lean Modified Mathlib/Data/Multiset/Fintype.lean +/- theorem Multiset.map_univ +/- theorem Multiset.prod_toEnumFinset Modified Mathlib/Data/Multiset/Fold.lean +/- theorem Multiset.fold_bind +/- theorem Multiset.max_le_of_forall_le Modified Mathlib/Data/Multiset/Functor.lean +/- theorem Multiset.id_traverse +/- theorem Multiset.lift_coe +/- theorem Multiset.map_traverse +/- theorem Multiset.traverse_map Modified Mathlib/Data/Multiset/Interval.lean Modified Mathlib/Data/Multiset/Lattice.lean +/- theorem Multiset.nodup_sup_iff Modified Mathlib/Data/Multiset/LocallyFinite.lean Modified Mathlib/Data/Multiset/Nodup.lean Modified Mathlib/Data/Multiset/Pi.lean +/- def Multiset.Pi.empty Modified Mathlib/Data/Multiset/Powerset.lean +/- theorem Multiset.bind_powerset_len +/- theorem Multiset.powersetLen_empty +/- theorem Multiset.powersetLen_map Modified Mathlib/Data/Multiset/Sections.lean Modified Mathlib/Data/Multiset/Sort.lean Modified Mathlib/Data/Multiset/Sum.lean Modified Mathlib/Data/MvPolynomial/Basic.lean +/- theorem MvPolynomial.C_inj +/- theorem MvPolynomial.C_injective +/- theorem MvPolynomial.C_surjective +/- theorem MvPolynomial.aeval_prod +/- theorem MvPolynomial.aeval_sum +/- theorem MvPolynomial.algHom_ext' +/- theorem MvPolynomial.algHom_ext +/- theorem MvPolynomial.coeff_smul +/- theorem MvPolynomial.coeff_sum +/- theorem MvPolynomial.comp_aeval +/- theorem MvPolynomial.constantCoeff_smul +/- theorem MvPolynomial.eval_prod +/- theorem MvPolynomial.eval_sum +/- theorem MvPolynomial.linearMap_ext +/- theorem MvPolynomial.map_aeval +/- theorem MvPolynomial.monomial_eq_monomial_iff +/- theorem MvPolynomial.monomial_finsupp_sum_index +/- theorem MvPolynomial.monomial_sum_index +/- theorem MvPolynomial.monomial_sum_one +/- theorem MvPolynomial.ringHom_ext' +/- theorem MvPolynomial.ringHom_ext +/- theorem MvPolynomial.smul_monomial +/- theorem MvPolynomial.sum_C +/- theorem MvPolynomial.sum_monomial_eq +/- theorem MvPolynomial.support_smul +/- theorem MvPolynomial.support_smul_eq +/- theorem MvPolynomial.support_sum +/- def MvPolynomial Modified Mathlib/Data/MvPolynomial/Comap.lean Modified Mathlib/Data/MvPolynomial/CommRing.lean Modified Mathlib/Data/MvPolynomial/Counit.lean Modified Mathlib/Data/MvPolynomial/Derivation.lean Modified Mathlib/Data/MvPolynomial/Division.lean Modified Mathlib/Data/MvPolynomial/Equiv.lean Modified Mathlib/Data/MvPolynomial/Expand.lean Modified Mathlib/Data/MvPolynomial/Funext.lean +/- theorem MvPolynomial.funext +/- theorem MvPolynomial.funext_iff Modified Mathlib/Data/MvPolynomial/Invertible.lean Modified Mathlib/Data/MvPolynomial/Monad.lean +/- theorem MvPolynomial.bind₁_bind₁ +/- theorem MvPolynomial.bind₁_comp_bind₁ +/- theorem MvPolynomial.bind₁_comp_rename +/- theorem MvPolynomial.bind₁_rename +/- theorem MvPolynomial.rename_bind₁ +/- theorem MvPolynomial.rename_comp_bind₁ Modified Mathlib/Data/MvPolynomial/PDeriv.lean Modified Mathlib/Data/MvPolynomial/Rename.lean +/- theorem MvPolynomial.constantCoeff_rename Modified Mathlib/Data/MvPolynomial/Supported.lean +/- theorem MvPolynomial.exists_restrict_to_vars Modified Mathlib/Data/MvPolynomial/Variables.lean +/- theorem MvPolynomial.degrees_prod +/- theorem MvPolynomial.degrees_sum +/- theorem MvPolynomial.totalDegree_finset_prod +/- theorem MvPolynomial.totalDegree_finset_sum +/- theorem MvPolynomial.vars_prod Modified Mathlib/Data/Nat/Basic.lean +/- def Nat.decreasingInduction' +/- def Nat.decreasingInduction +/- theorem Nat.decreasingInduction_self +/- theorem Nat.decreasingInduction_succ' +/- theorem Nat.decreasingInduction_succ +/- theorem Nat.decreasingInduction_succ_left +/- theorem Nat.decreasingInduction_trans +/- def Nat.leRecOn' +/- def Nat.pincerRecursion +/- def Nat.strongRecOn' +/- theorem Nat.strongRecOn'_beta +/- def Nat.strongSubRecursion Modified Mathlib/Data/Nat/Bits.lean +/- def Nat.binaryRec' +/- def Nat.binaryRecFromOne +/- theorem Nat.binaryRec_eq' Modified Mathlib/Data/Nat/Cast/Basic.lean +/- def Nat.castAddMonoidHom +/- def Nat.castRingHom +/- theorem Sum.elim_natCast_natCast Modified Mathlib/Data/Nat/Cast/Defs.lean Modified Mathlib/Data/Nat/Cast/Field.lean Modified Mathlib/Data/Nat/Cast/Prod.lean Modified Mathlib/Data/Nat/Choose/Bounds.lean Modified Mathlib/Data/Nat/Choose/Cast.lean Modified Mathlib/Data/Nat/Choose/Multinomial.lean Modified Mathlib/Data/Nat/Choose/Sum.lean +/- theorem Finset.prod_antidiagonal_pow_choose_succ +/- theorem Finset.prod_pow_choose_succ +/- theorem Finset.sum_powerset_apply_card +/- theorem Finset.sum_powerset_neg_one_pow_card +/- theorem Finset.sum_powerset_neg_one_pow_card_of_nonempty Modified Mathlib/Data/Nat/Digits.lean +/- theorem Nat.coe_ofDigits +/- theorem Nat.dvd_ofDigits_sub_ofDigits +/- def Nat.ofDigits +/- theorem Nat.ofDigits_eq_foldr +/- theorem Nat.ofDigits_one_cons Modified Mathlib/Data/Nat/EvenOddRec.lean +/- def Nat.evenOddRec +/- theorem Nat.evenOddRec_even +/- theorem Nat.evenOddRec_odd +/- theorem Nat.evenOddRec_zero Modified Mathlib/Data/Nat/Factorial/BigOperators.lean Modified Mathlib/Data/Nat/Factorial/Cast.lean Modified Mathlib/Data/Nat/Factorization/Basic.lean +/- theorem Nat.factorization_prod +/- theorem Nat.multiplicative_factorization' +/- theorem Nat.multiplicative_factorization +/- theorem Nat.prod_factorization_eq_prod_factors +/- theorem Nat.prod_factors_gcd_mul_prod_factors_mul +/- def Nat.recOnPosPrimePosCoprime +/- def Nat.recOnPrimeCoprime +/- def Nat.recOnPrimePow Modified Mathlib/Data/Nat/Factorization/PrimePow.lean Modified Mathlib/Data/Nat/GCD/BigOperators.lean +/- theorem Nat.coprime_prod_left +/- theorem Nat.coprime_prod_right Modified Mathlib/Data/Nat/Lattice.lean +/- theorem Nat.iInf_of_empty Modified Mathlib/Data/Nat/Parity.lean Modified Mathlib/Data/Nat/Periodic.lean +/- theorem Function.Periodic.map_mod_nat Modified Mathlib/Data/Nat/Prime.lean Modified Mathlib/Data/Nat/Set.lean +/- theorem Nat.range_casesOn +/- theorem Nat.range_rec Modified Mathlib/Data/Nat/Squarefree.lean +/- theorem Nat.sum_divisors_filter_squarefree Modified Mathlib/Data/Num/Basic.lean Modified Mathlib/Data/Num/Bitwise.lean +/- def NzsNum.drec' +/- def SNum.drec' Modified Mathlib/Data/Num/Lemmas.lean Modified Mathlib/Data/Option/Basic.lean +/- theorem Option.choice_eq_none +/- theorem Option.some_injective Modified Mathlib/Data/Option/Defs.lean +/- theorem Option.elim'_eq_elim +/- theorem Option.mem_some_iff Modified Mathlib/Data/Ordmap/Ordnode.lean Modified Mathlib/Data/Ordmap/Ordset.lean +/- def Ordset Modified Mathlib/Data/PEquiv.lean Modified Mathlib/Data/PFun.lean +/- theorem PFun.coe_id +/- def PFun.fixInduction' +/- theorem PFun.fixInduction'_fwd +/- theorem PFun.fixInduction'_stop +/- def PFun.fixInduction +/- theorem PFun.fixInduction_spec +/- def PFun Modified Mathlib/Data/PFunctor/Multivariate/Basic.lean +/- def MvPFunctor.appendContents Modified Mathlib/Data/PFunctor/Multivariate/W.lean +/- def MvPFunctor.wRec +/- theorem MvPFunctor.wRec_eq +/- def MvPFunctor.wpRec +/- theorem MvPFunctor.wpRec_eq Modified Mathlib/Data/PFunctor/Univariate/Basic.lean +/- def PFunctor.Obj +/- def PFunctor.map Modified Mathlib/Data/PFunctor/Univariate/M.lean +/- theorem PFunctor.M.bisim' +/- theorem PFunctor.M.casesOn_mk' +/- theorem PFunctor.M.casesOn_mk +/- theorem PFunctor.M.cases_mk +/- def PFunctor.M.corecOn Modified Mathlib/Data/PNat/Basic.lean +/- def PNat.caseStrongInductionOn +/- def PNat.recOn +/- theorem PNat.recOn_succ Modified Mathlib/Data/PNat/Defs.lean +/- def PNat.strongInductionOn Modified Mathlib/Data/PSigma/Order.lean Modified Mathlib/Data/Part.lean +/- theorem Part.elim_toOption Modified Mathlib/Data/Pi/Algebra.lean +/- theorem Pi.mulSingle_op +/- theorem Pi.mulSingle_op₂ +/- theorem Subsingleton.pi_mulSingle_eq +/- def uniqueOfSurjectiveOne Modified Mathlib/Data/Pi/Interval.lean Modified Mathlib/Data/Pi/Lex.lean Modified Mathlib/Data/Polynomial/AlgebraMap.lean +/- theorem Polynomial.aeval_algHom_apply +/- theorem Polynomial.aeval_comp +/- theorem Polynomial.aeval_endomorphism +/- theorem Polynomial.aeval_fn_apply +/- theorem Polynomial.aeval_subalgebra_coe +/- theorem Polynomial.algHom_eval₂_algebraMap +/- theorem Polynomial.eval₂_algebraMap_X +/- theorem Polynomial.eval₂_int_castRingHom_X +/- theorem Polynomial.map_aeval_eq_aeval_map +/- theorem Polynomial.ringHom_eval₂_cast_int_ringHom Modified Mathlib/Data/Polynomial/Basic.lean +/- theorem IsSMulRegular.polynomial +/- theorem Polynomial.addHom_ext' +/- theorem Polynomial.addHom_ext +/- theorem Polynomial.lhom_ext' +/- theorem Polynomial.ofFinsupp_smul +/- theorem Polynomial.ofFinsupp_sum +/- def Polynomial.sum +/- theorem Polynomial.sum_X_index +/- theorem Polynomial.sum_add' +/- theorem Polynomial.sum_add +/- theorem Polynomial.sum_add_index +/- theorem Polynomial.sum_def +/- theorem Polynomial.sum_eq_of_subset +/- theorem Polynomial.sum_monomial_index +/- theorem Polynomial.sum_smul_index +/- theorem Polynomial.sum_zero_index +/- theorem Polynomial.toFinsupp_smul +/- theorem Polynomial.toFinsupp_sum +/- structure Polynomial Modified Mathlib/Data/Polynomial/CancelLeads.lean Modified Mathlib/Data/Polynomial/Coeff.lean +/- theorem Polynomial.coeff_X_add_one_pow +/- theorem Polynomial.coeff_one_add_X_pow +/- theorem Polynomial.finset_sum_coeff +/- theorem Polynomial.int_cast_coeff_zero +/- theorem Polynomial.int_cast_inj +/- def Polynomial.lsum +/- theorem Polynomial.nat_cast_coeff_zero +/- theorem Polynomial.nat_cast_inj +/- theorem Polynomial.update_eq_add_sub_coeff Modified Mathlib/Data/Polynomial/Degree/CardPowDegree.lean Modified Mathlib/Data/Polynomial/Degree/Definitions.lean +/- theorem Polynomial.Monic.ne_zero +/- theorem Polynomial.natDegree_X_pow_le +/- theorem Polynomial.zero_nmem_multiset_map_X_add_C +/- theorem Polynomial.zero_nmem_multiset_map_X_sub_C Modified Mathlib/Data/Polynomial/Degree/TrailingDegree.lean Modified Mathlib/Data/Polynomial/DenomsClearable.lean +/- theorem one_le_pow_mul_abs_eval_div Modified Mathlib/Data/Polynomial/Derivation.lean Modified Mathlib/Data/Polynomial/Derivative.lean +/- theorem Polynomial.derivative_smul +/- theorem Polynomial.iterate_derivative_smul Modified Mathlib/Data/Polynomial/EraseLead.lean +/- theorem Polynomial.map_natDegree_eq_natDegree +/- theorem Polynomial.map_natDegree_eq_sub +/- theorem Polynomial.mono_map_natDegree_eq +/- theorem Polynomial.self_sub_C_mul_X_pow +/- theorem Polynomial.self_sub_monomial_natDegree_leadingCoeff Modified Mathlib/Data/Polynomial/Eval.lean +/- theorem Polynomial.IsRoot.dvd +/- theorem Polynomial.comp_assoc +/- theorem Polynomial.eval_int_cast_map +/- theorem Polynomial.eval_prod +/- theorem Polynomial.eval₂_at_apply +/- theorem Polynomial.eval₂_at_nat_cast +/- theorem Polynomial.eval₂_at_one +/- theorem Polynomial.eval₂_congr +/- theorem Polynomial.isRoot_map_iff +/- theorem Polynomial.isRoot_prod +/- def Polynomial.leval +/- theorem Polynomial.mem_map_range +/- theorem Polynomial.mul_comp +/- theorem Polynomial.pow_comp +/- theorem Polynomial.prod_comp Modified Mathlib/Data/Polynomial/Expand.lean +/- theorem Polynomial.expand_aeval Modified Mathlib/Data/Polynomial/FieldDivision.lean +/- theorem Polynomial.X_sub_C_dvd_derivative_of_X_sub_C_dvd_divByMonic +/- theorem Polynomial.X_sub_C_mul_divByMonic_eq_sub_modByMonic +/- theorem Polynomial.isCoprime_of_is_root_of_eval_derivative_ne_zero +/- theorem Polynomial.rootSet_prod Modified Mathlib/Data/Polynomial/HasseDeriv.lean Modified Mathlib/Data/Polynomial/Identities.lean +/- def Polynomial.powAddExpansion Modified Mathlib/Data/Polynomial/Inductions.lean Modified Mathlib/Data/Polynomial/Laurent.lean +/- theorem LaurentPolynomial.C_eq_algebraMap +/- theorem LaurentPolynomial.algebraMap_apply Modified Mathlib/Data/Polynomial/Mirror.lean Modified Mathlib/Data/Polynomial/Module.lean +/- def PolynomialModule Modified Mathlib/Data/Polynomial/Monic.lean +/- theorem Polynomial.Monic.eq_one_of_map_eq_one +/- theorem Polynomial.Monic.isRegular +/- theorem Polynomial.degree_smul_of_smul_regular +/- theorem Polynomial.leadingCoeff_smul_of_smul_regular +/- theorem Polynomial.natDegree_smul_of_smul_regular +/- theorem Polynomial.not_isUnit_X_pow_sub_one Modified Mathlib/Data/Polynomial/PartialFractions.lean +/- theorem div_eq_quo_add_sum_rem_div Modified Mathlib/Data/Polynomial/Reverse.lean +/- theorem Polynomial.reverse_mul_of_domain +/- theorem Polynomial.trailingCoeff_mul Modified Mathlib/Data/Polynomial/RingDivision.lean +/- theorem Polynomial.bUnion_roots_finite +/- theorem Polynomial.mem_rootSet' +/- theorem Polynomial.mem_rootSet +/- theorem Polynomial.mem_rootSet_of_ne +/- def Polynomial.nthRootsFinset +/- theorem Polynomial.nthRootsFinset_def +/- theorem Polynomial.rootSet_finite +/- theorem Polynomial.roots_prod Modified Mathlib/Data/Polynomial/Splits.lean +/- theorem Polynomial.mem_lift_of_splits_of_roots_mem_range Modified Mathlib/Data/Polynomial/Taylor.lean Modified Mathlib/Data/Polynomial/UnitTrinomial.lean Modified Mathlib/Data/Prod/Basic.lean +/- theorem Prod.map_comp_map +/- theorem Prod.map_map +/- theorem Prod.mk.inj_left +/- theorem Prod.mk.inj_right Modified Mathlib/Data/Prod/Lex.lean Modified Mathlib/Data/Prod/PProd.lean Modified Mathlib/Data/QPF/Multivariate/Basic.lean Modified Mathlib/Data/QPF/Multivariate/Constructions/Cofix.lean +/- theorem MvQPF.Cofix.bisim' Modified Mathlib/Data/QPF/Multivariate/Constructions/Comp.lean Modified Mathlib/Data/QPF/Multivariate/Constructions/Const.lean +/- def MvQPF.Const Modified Mathlib/Data/QPF/Multivariate/Constructions/Fix.lean +/- def MvQPF.Fix Modified Mathlib/Data/QPF/Univariate/Basic.lean +/- theorem Qpf.Cofix.bisim' Modified Mathlib/Data/Quot.lean +/- theorem Quot.eq +/- def Quot.factor +/- theorem Quot.factor_mk_eq +/- theorem Quotient.choice_eq +/- theorem Quotient.hrecOn'_mk'' +/- theorem Quotient.hrecOn₂'_mk'' +/- theorem Quotient.induction_on_pi +/- theorem Quotient.liftOn₂_mk +/- theorem Quotient.lift₂_mk +/- theorem Setoid.ext +/- theorem forall_quotient_iff +/- theorem surjective_quotient_mk Modified Mathlib/Data/Rat/BigOperators.lean Modified Mathlib/Data/Rat/Cast.lean +/- theorem RingHom.ext_rat Modified Mathlib/Data/Rat/Floor.lean Modified Mathlib/Data/Rat/NNRat.lean Modified Mathlib/Data/Real/Basic.lean +/- theorem Real.ciInf_const_zero +/- theorem Real.ciInf_empty +/- theorem Real.ciSup_const_zero +/- theorem Real.ciSup_empty +/- theorem Real.iInf_of_not_bddBelow +/- theorem Real.iSup_of_not_bddAbove Modified Mathlib/Data/Real/CauSeq.lean +/- def CauSeq +/- def IsCauSeq +/- theorem rat_inv_continuous_lemma Modified Mathlib/Data/Real/CauSeqCompletion.lean +/- theorem CauSeq.Completion.mk_smul Modified Mathlib/Data/Real/ENNReal.lean +/- theorem ENNReal.coe_iInf +/- theorem ENNReal.coe_iSup +/- theorem ENNReal.iInf_ennreal +/- theorem ENNReal.iSup_coe_eq_top +/- theorem ENNReal.iSup_coe_lt_top +/- theorem ENNReal.iSup_ennreal +/- theorem ENNReal.iSup_eq_zero +/- theorem ENNReal.iSup_zero_eq_zero +/- def ENNReal.recTopCoe +/- theorem ENNReal.smul_def +/- theorem ENNReal.toNNReal_prod +/- theorem ENNReal.toReal_prod Modified Mathlib/Data/Real/EReal.lean Modified Mathlib/Data/Real/GoldenRatio.lean +/- theorem fibRec_charPoly_eq Modified Mathlib/Data/Real/NNReal.lean +/- theorem NNReal.coe_iInf +/- theorem NNReal.coe_iSup +/- theorem NNReal.iInf_const_zero +/- theorem NNReal.le_iInf_add_iInf +/- theorem NNReal.smul_def Modified Mathlib/Data/Real/Pointwise.lean Modified Mathlib/Data/Real/Sqrt.lean Modified Mathlib/Data/Rel.lean +/- def Rel Modified Mathlib/Data/Semiquot.lean +/- structure Semiquot Modified Mathlib/Data/Set/Accumulate.lean Modified Mathlib/Data/Set/Basic.lean +/- theorem Set.ne_univ_iff_exists_not_mem +/- theorem Set.nontrivial_mono +/- theorem Set.not_subset_iff_exists_mem_not_mem +/- theorem Set.subset_singleton_iff +/- theorem Set.subsingleton_isBot +/- theorem Set.subsingleton_isTop +/- theorem Subsingleton.mem_iff_nonempty +/- theorem Subtype.mem Modified Mathlib/Data/Set/BoolIndicator.lean Modified Mathlib/Data/Set/Card.lean +/- theorem Set.encard_mono +/- theorem Set.encard_univ +/- theorem Set.ncard_empty +/- theorem Set.ncard_univ Modified Mathlib/Data/Set/Constructions.lean Modified Mathlib/Data/Set/Countable.lean +/- theorem Set.countable_isBot +/- theorem Set.countable_isTop +/- theorem Set.countable_pi +/- theorem Set.countable_univ_pi Modified Mathlib/Data/Set/Enumerate.lean Modified Mathlib/Data/Set/Equitable.lean Modified Mathlib/Data/Set/Finite.lean +/- theorem Finite.Set.finite_biUnion +/- theorem Set.Finite.iInf_biSup_of_antitone +/- theorem Set.Finite.iInf_biSup_of_monotone +/- theorem Set.Finite.iSup_biInf_of_antitone +/- theorem Set.Finite.iSup_biInf_of_monotone +/- theorem Set.Finite.iUnion +/- theorem Set.Finite.pi +/- theorem Set.Finite.sInter +/- theorem Set.finite_isBot +/- theorem Set.finite_isTop +/- def Set.fintypeBiUnion +/- theorem Set.forall_finite_image_eval_iff +/- theorem Set.iInf_iSup_of_antitone +/- theorem Set.iInf_iSup_of_monotone +/- theorem Set.iInter_iUnion_of_antitone +/- theorem Set.iInter_iUnion_of_monotone +/- theorem Set.iSup_iInf_of_antitone +/- theorem Set.iSup_iInf_of_monotone +/- theorem Set.iUnion_iInter_of_antitone +/- theorem Set.iUnion_iInter_of_monotone +/- theorem Set.iUnion_pi_of_monotone +/- theorem Set.iUnion_univ_pi_of_monotone +/- theorem Set.seq_of_forall_finite_exists Modified Mathlib/Data/Set/Function.lean +/- theorem Function.update_comp_eq_of_not_mem_range' +/- theorem Set.apply_piecewise +/- theorem Set.apply_piecewise₂ +/- theorem Set.eqOn_range +/- theorem Set.le_piecewise +/- theorem Set.pi_piecewise +/- theorem Set.piecewise_le +/- theorem Set.piecewise_le_piecewise +/- theorem Set.piecewise_mem_pi +/- theorem Set.piecewise_op +/- theorem Set.piecewise_op₂ +/- theorem Set.piecewise_range_comp +/- theorem Set.univ_pi_piecewise +/- theorem Set.univ_pi_piecewise_univ Modified Mathlib/Data/Set/Image.lean +/- theorem Set.compl_range_some +/- theorem Set.image_univ_of_surjective +/- theorem Set.insert_none_range_some +/- theorem Set.isCompl_range_some_none +/- theorem Set.preimage_subtype_coe_eq_compl +/- theorem Set.range_eval +/- theorem Set.range_some_inter_none +/- theorem Set.range_some_union_none +/- theorem Set.subsingleton_of_image +/- theorem Set.subsingleton_of_preimage +/- theorem Set.subsingleton_range Modified Mathlib/Data/Set/Intervals/Basic.lean +/- theorem Set.subsingleton_Icc_iff Modified Mathlib/Data/Set/Intervals/Disjoint.lean +/- theorem iUnion_Ici_eq_Ici_iInf +/- theorem iUnion_Ici_eq_Ioi_iInf +/- theorem iUnion_Iic_eq_Iic_iSup +/- theorem iUnion_Iic_eq_Iio_iSup Modified Mathlib/Data/Set/Intervals/Group.lean +/- theorem Set.mem_Icc_iff_abs_le Modified Mathlib/Data/Set/Intervals/Infinite.lean Modified Mathlib/Data/Set/Intervals/Instances.lean Modified Mathlib/Data/Set/Intervals/IsoIoo.lean +/- def orderIsoIooNegOneOne Modified Mathlib/Data/Set/Intervals/Monoid.lean Modified Mathlib/Data/Set/Intervals/Monotone.lean Modified Mathlib/Data/Set/Intervals/OrdConnected.lean +/- theorem Set.ordConnected_biInter +/- theorem Set.ordConnected_iInter +/- theorem Set.ordConnected_image +/- theorem Set.ordConnected_of_Ioo +/- theorem Set.ordConnected_pi +/- theorem Set.ordConnected_preimage +/- theorem Set.ordConnected_range +/- theorem Set.ordConnected_singleton Modified Mathlib/Data/Set/Intervals/OrdConnectedComponent.lean Modified Mathlib/Data/Set/Intervals/Pi.lean Modified Mathlib/Data/Set/Intervals/ProjIcc.lean Modified Mathlib/Data/Set/Intervals/SurjOn.lean Modified Mathlib/Data/Set/Intervals/UnorderedInterval.lean Modified Mathlib/Data/Set/Lattice.lean +/- theorem Set.Sigma.univ +/- theorem Set.biInter_inter +/- theorem Set.disjoint_iUnion_left +/- theorem Set.disjoint_iUnion_right +/- theorem Set.exists_set_mem_of_union_eq_top +/- theorem Set.iInter_coe_set +/- theorem Set.iInter_subset_iInter₂ +/- theorem Set.iUnion_coe_set +/- theorem Set.iUnion_image_preimage_sigma_mk_eq_self +/- theorem Set.iUnion_of_singleton +/- theorem Set.iUnion_range_eq_sUnion +/- theorem Set.iUnion_singleton_eq_range +/- theorem Set.iUnion₂_subset_iUnion +/- theorem Set.image_projection_prod +/- theorem Set.inter_biInter +/- theorem Set.nonempty_of_union_eq_top_of_nonempty +/- theorem Set.range_sigma_eq_iUnion_range Modified Mathlib/Data/Set/List.lean Modified Mathlib/Data/Set/MulAntidiagonal.lean Modified Mathlib/Data/Set/NAry.lean Modified Mathlib/Data/Set/Opposite.lean Modified Mathlib/Data/Set/Pairwise/Basic.lean +/- theorem Set.pairwiseDisjoint_pi Modified Mathlib/Data/Set/Pairwise/Lattice.lean Modified Mathlib/Data/Set/Pointwise/Basic.lean +/- theorem Set.inv_range +/- theorem Set.nsmul_univ Modified Mathlib/Data/Set/Pointwise/BigOperators.lean +/- theorem Set.finset_prod_singleton +/- theorem Set.list_prod_singleton +/- theorem Set.multiset_prod_singleton Modified Mathlib/Data/Set/Pointwise/Finite.lean Modified Mathlib/Data/Set/Pointwise/Interval.lean +/- theorem Set.image_const_mul_Ioi_zero Modified Mathlib/Data/Set/Pointwise/Iterate.lean +/- theorem smul_eq_self_of_preimage_zpow_eq_self Modified Mathlib/Data/Set/Pointwise/ListOfFn.lean Modified Mathlib/Data/Set/Pointwise/SMul.lean +/- theorem Set.range_smul_range +/- theorem Set.smul_set_range Modified Mathlib/Data/Set/Pointwise/Support.lean Modified Mathlib/Data/Set/Prod.lean +/- def Set.diagonal +/- theorem Set.univ_pi_update Modified Mathlib/Data/Set/Semiring.lean +/- def SetSemiring Modified Mathlib/Data/Set/Sigma.lean +/- theorem Set.image_sigmaMk_preimage_sigmaMap +/- theorem Set.image_sigmaMk_preimage_sigmaMap_subset +/- theorem Set.mk_preimage_sigma_fn_eq_if +/- theorem Set.preimage_sigmaMap_sigma Modified Mathlib/Data/Set/Sups.lean Modified Mathlib/Data/Set/UnionLift.lean Modified Mathlib/Data/SetLike/Basic.lean Modified Mathlib/Data/SetLike/Fintype.lean Modified Mathlib/Data/Setoid/Basic.lean Modified Mathlib/Data/Setoid/Partition.lean +/- structure IndexedPartition +/- theorem Setoid.card_classes_ker_le +/- theorem Setoid.classes_ker_subset_fiber_set +/- theorem Setoid.finite_classes_ker Modified Mathlib/Data/Sigma/Basic.lean +/- theorem Function.eq_of_sigmaMk_comp +/- theorem PSigma.subtype_ext +/- theorem PSigma.subtype_ext_iff +/- def Sigma.curry +/- theorem Sigma.curry_uncurry +/- theorem Sigma.subtype_ext +/- theorem Sigma.subtype_ext_iff +/- def Sigma.uncurry +/- theorem Sigma.uncurry_curry Modified Mathlib/Data/Sigma/Interval.lean Modified Mathlib/Data/Sigma/Lex.lean Modified Mathlib/Data/Sigma/Order.lean Modified Mathlib/Data/Sign.lean +/- theorem sign_sum Modified Mathlib/Data/Subtype.lean +/- def Subtype.restrict +/- theorem Subtype.restrict_apply +/- theorem Subtype.surjective_restrict Modified Mathlib/Data/Sum/Basic.lean Modified Mathlib/Data/Sum/Interval.lean Modified Mathlib/Data/Sum/Order.lean +/- def OrderIso.sumAssoc +/- def OrderIso.sumComm +/- theorem OrderIso.sumComm_symm +/- def OrderIso.sumDualDistrib +/- def OrderIso.sumLexAssoc +/- def OrderIso.sumLexDualAntidistrib Modified Mathlib/Data/Sym/Basic.lean +/- def Sym.Sym' +/- def Sym.cons' +/- theorem Sym.cons_equiv_eq_equiv_cons +/- theorem Sym.map_id' +/- theorem Sym.map_id +/- theorem Sym.map_map +/- def Sym.symEquivSym' +/- def Sym.toMultiset +/- def Sym +/- def Vector.Perm.isSetoid Modified Mathlib/Data/Sym/Card.lean +/- theorem Sym.card_sym_eq_choose +/- theorem Sym.card_sym_eq_multichoose Modified Mathlib/Data/Sym/Sym2.lean +/- def Sym2.equivMultiset +/- def Sym2.equivSym Modified Mathlib/Data/Tree.lean +/- def Tree.unitRecOn Modified Mathlib/Data/TwoPointing.lean +/- structure TwoPointing Modified Mathlib/Data/TypeVec.lean +/- def TypeVec.Curry +/- def TypeVec.PredLast' +/- def TypeVec.PredLast +/- def TypeVec.RelLast' +/- def TypeVec.append1 +/- def TypeVec.appendFun +/- theorem TypeVec.appendFun_aux +/- theorem TypeVec.appendFun_comp' +/- theorem TypeVec.appendFun_comp_splitFun +/- theorem TypeVec.appendFun_id_id +/- theorem TypeVec.appendFun_inj +/- theorem TypeVec.dropFun_appendFun +/- def TypeVec.dropRepeat +/- theorem TypeVec.drop_append1' +/- theorem TypeVec.drop_append1 +/- theorem TypeVec.lastFun_appendFun +/- theorem TypeVec.last_append1 +/- def TypeVec.typevecCasesCons₂ +/- theorem TypeVec.typevecCasesCons₂_appendFun +/- def TypeVec.typevecCasesCons₃ +/- def TypeVec.typevecCasesNil₂ +/- theorem TypeVec.typevecCasesNil₂_appendFun +/- def TypeVec.typevecCasesNil₃ Modified Mathlib/Data/ULift.lean +/- theorem ULift.ext_iff Modified Mathlib/Data/UnionFind.lean +/- structure UFNode Modified Mathlib/Data/Vector/Basic.lean +/- def Equiv.vectorEquivFin +/- def Vector.casesOn +/- def Vector.casesOn₂ +/- def Vector.casesOn₃ +/- theorem Vector.get_map +/- theorem Vector.head_map +/- def Vector.inductionOn +/- def Vector.inductionOn₂ +/- def Vector.inductionOn₃ +/- theorem Vector.tail_map +/- theorem Vector.toList_map Modified Mathlib/Data/Vector/Mem.lean Modified Mathlib/Data/Vector/Snoc.lean +/- def Vector.revCasesOn +/- def Vector.revInductionOn +/- def Vector.revInductionOn₂ Modified Mathlib/Data/Vector/Zip.lean Modified Mathlib/Data/Vector3.lean Modified Mathlib/Data/W/Basic.lean +/- def WType.elim +/- theorem WType.elim_injective +/- inductive WType Modified Mathlib/Data/ZMod/Algebra.lean Modified Mathlib/Data/ZMod/Basic.lean +/- theorem RingHom.ext_zmod +/- def ZMod.castHom +/- theorem ZMod.cast_neg_one +/- theorem ZMod.cast_sub_one Modified Mathlib/Data/ZMod/Quotient.lean +/- theorem AddAction.orbitZmultiplesEquiv_symm_apply' Modified Mathlib/Deprecated/Group.lean +/- structure IsAddHom +/- theorem IsAddMonoidHom.isAddMonoidHom_mul_left +/- theorem IsAddMonoidHom.isAddMonoidHom_mul_right +/- structure IsMulHom +/- theorem MonoidHom.isGroupHom +/- theorem MulEquiv.isGroupHom Modified Mathlib/Deprecated/Subfield.lean +/- theorem Image.isSubfield +/- theorem IsSubfield.iInter +/- theorem Preimage.isSubfield +/- theorem Range.isSubfield +/- theorem isSubfield_iUnion_of_directed Modified Mathlib/Deprecated/Subgroup.lean +/- theorem Group.mem_closure_union_iff +/- def IsSubgroup.center +/- theorem IsSubgroup.iInter +/- def IsSubgroup.trivial +/- theorem isSubgroup_iUnion_of_directed Modified Mathlib/Deprecated/Submonoid.lean +/- theorem IsSubmonoid.iInter +/- theorem IsSubmonoid.image +/- theorem IsSubmonoid.preimage +/- theorem Monoid.image_closure +/- theorem Monoid.mem_closure_union_iff +/- theorem Range.isSubmonoid +/- theorem isSubmonoid_iUnion_of_directed Modified Mathlib/Deprecated/Subring.lean +/- theorem IsSubring.iInter +/- theorem Ring.image_closure +/- theorem isSubring_iUnion_of_directed Modified Mathlib/Dynamics/BirkhoffSum/Average.lean +/- theorem birkhoffAverage_apply_sub_birkhoffAverage +/- theorem birkhoffAverage_congr_ring' +/- theorem birkhoffAverage_congr_ring +/- theorem map_birkhoffAverage Modified Mathlib/Dynamics/BirkhoffSum/Basic.lean +/- theorem map_birkhoffSum Modified Mathlib/Dynamics/Circle/RotationNumber/TranslationNumber.lean +/- theorem CircleDeg1Lift.semiconj_of_group_action_of_forall_translationNumber_eq Modified Mathlib/Dynamics/Ergodic/AddCircle.lean Modified Mathlib/Dynamics/Ergodic/Conservative.lean Modified Mathlib/Dynamics/Ergodic/Ergodic.lean Modified Mathlib/Dynamics/Ergodic/Function.lean Modified Mathlib/Dynamics/Ergodic/MeasurePreserving.lean Modified Mathlib/Dynamics/FixedPoints/Basic.lean +/- theorem Function.mem_fixedPoints_iff Modified Mathlib/Dynamics/FixedPoints/Topology.lean Modified Mathlib/Dynamics/Flow.lean +/- structure Flow Modified Mathlib/Dynamics/Minimal.lean Modified Mathlib/Dynamics/OmegaLimit.lean +/- theorem mapsTo_omegaLimit' +/- theorem mapsTo_omegaLimit +/- theorem omegaLimit_image_eq +/- theorem omegaLimit_preimage_subset Modified Mathlib/Dynamics/PeriodicPts.lean Modified Mathlib/FieldTheory/AbelRuffini.lean +/- theorem splits_X_pow_sub_one_of_X_pow_sub_C Modified Mathlib/FieldTheory/Adjoin.lean +/- theorem IntermediateField.AlgEquiv.fieldRange_eq_top +/- theorem IntermediateField.AlgHom.fieldRange_eq_map +/- theorem IntermediateField.AlgHom.fieldRange_eq_top +/- theorem IntermediateField.AlgHom.map_fieldRange +/- theorem IntermediateField.adjoin_empty +/- theorem IntermediateField.adjoin_map +/- theorem IntermediateField.adjoin_subset_adjoin_iff +/- theorem IntermediateField.adjoin_univ +/- theorem IntermediateField.coe_iInf +/- theorem IntermediateField.exists_finset_of_mem_iSup +/- theorem IntermediateField.exists_finset_of_mem_supr'' +/- theorem IntermediateField.exists_finset_of_mem_supr' +/- theorem IntermediateField.finiteDimensional_iSup_of_finset' +/- theorem IntermediateField.iInf_toSubalgebra +/- theorem IntermediateField.iInf_toSubfield +/- theorem IntermediateField.isAlgebraic_iSup +/- theorem IntermediateField.isSplittingField_iSup +/- theorem IntermediateField.restrictScalars_top Modified Mathlib/FieldTheory/AxGrothendieck.lean +/- theorem ax_grothendieck_of_locally_finite Modified Mathlib/FieldTheory/ChevalleyWarning.lean Modified Mathlib/FieldTheory/Finite/Basic.lean +/- theorem CharP.sq_add_sq Modified Mathlib/FieldTheory/Finite/GaloisField.lean +/- theorem galois_poly_separable Modified Mathlib/FieldTheory/Finite/Polynomial.lean Modified Mathlib/FieldTheory/Finite/Trace.lean +/- theorem FiniteField.trace_to_zmod_nondegenerate Modified Mathlib/FieldTheory/Finiteness.lean +/- theorem IsNoetherian.finite_basis_index Modified Mathlib/FieldTheory/Galois.lean +/- def FixedPoints.intermediateField Modified Mathlib/FieldTheory/IntermediateField.lean +/- theorem IntermediateField.aeval_coe +/- theorem IntermediateField.coe_isIntegral_iff +/- theorem IntermediateField.coe_prod +/- theorem IntermediateField.coe_sum +/- theorem IntermediateField.map_map Modified Mathlib/FieldTheory/IsAlgClosed/AlgebraicClosure.lean +/- theorem AlgebraicClosure.algebraMap_def Modified Mathlib/FieldTheory/IsAlgClosed/Basic.lean +/- theorem IsAlgClosed.algebraMap_surjective_of_isAlgebraic +/- theorem IsAlgClosed.algebraMap_surjective_of_isIntegral' +/- theorem IsAlgClosed.algebraMap_surjective_of_isIntegral +/- theorem IsAlgClosed.exists_aeval_eq_zero +/- theorem IsAlgClosed.exists_aeval_eq_zero_of_injective +/- theorem IsAlgClosed.exists_eval₂_eq_zero +/- theorem IsAlgClosed.exists_eval₂_eq_zero_of_injective +/- theorem IsAlgClosed.splits_codomain +/- theorem IsAlgClosed.splits_domain Modified Mathlib/FieldTheory/IsAlgClosed/Classification.lean Modified Mathlib/FieldTheory/KrullTopology.lean +/- theorem IntermediateField.finiteDimensional_bot +/- theorem IntermediateField.fixingSubgroup.antimono +/- theorem IntermediateField.fixingSubgroup.bot +/- theorem IntermediateField.fixingSubgroup_isClosed +/- theorem IntermediateField.fixingSubgroup_isOpen +/- theorem IntermediateField.map_id +/- theorem IntermediateField.map_mono +/- theorem IntermediateField.mem_fixingSubgroup_iff +/- theorem finiteDimensional_sup +/- def finiteExts +/- def fixedByFinite +/- def galBasis +/- def galGroupBasis +/- theorem krullTopology_t2 +/- theorem krullTopology_totallyDisconnected +/- theorem mem_galBasis_iff +/- theorem top_fixedByFinite Modified Mathlib/FieldTheory/Minpoly/Basic.lean +/- theorem minpoly.map_ne_one Modified Mathlib/FieldTheory/Minpoly/Field.lean +/- theorem minpoly.add_algebraMap +/- theorem minpoly.aeval_of_isScalarTower +/- theorem minpoly.dvd_map_of_isScalarTower' +/- theorem minpoly.dvd_map_of_isScalarTower +/- theorem minpoly.eq_of_algebraMap_eq +/- theorem minpoly.sub_algebraMap Modified Mathlib/FieldTheory/Minpoly/IsIntegrallyClosed.lean Modified Mathlib/FieldTheory/Normal.lean Modified Mathlib/FieldTheory/NormalClosure.lean Modified Mathlib/FieldTheory/PerfectClosure.lean +/- def PerfectClosure.liftOn Modified Mathlib/FieldTheory/PolynomialGaloisGroup.lean Modified Mathlib/FieldTheory/PrimitiveElement.lean +/- theorem AlgHom.card Modified Mathlib/FieldTheory/RatFunc.lean +/- theorem RatFunc.algebraMap_apply +/- theorem RatFunc.eval_algebraMap +/- theorem RatFunc.liftAlgHom_apply +/- theorem RatFunc.liftMonoidWithZeroHom_apply +/- theorem RatFunc.liftMonoidWithZeroHom_apply_div' +/- theorem RatFunc.liftMonoidWithZeroHom_apply_div +/- theorem RatFunc.liftRingHom_apply +/- theorem RatFunc.liftRingHom_apply_div' +/- theorem RatFunc.liftRingHom_apply_div +/- theorem RatFunc.map_apply +/- theorem RatFunc.map_apply_div +/- theorem RatFunc.map_apply_div_ne_zero +/- theorem RatFunc.map_denom_ne_zero Modified Mathlib/FieldTheory/Separable.lean +/- theorem IsSeparable.of_algHom +/- theorem Polynomial.separable_gcd_left +/- theorem Polynomial.separable_gcd_right Modified Mathlib/FieldTheory/SeparableDegree.lean Modified Mathlib/FieldTheory/SplittingField/Construction.lean Modified Mathlib/FieldTheory/Subfield.lean +/- theorem Subfield.comap_iInf +/- theorem Subfield.map_iSup +/- theorem Subfield.toSubring_subtype_eq_subtype Modified Mathlib/FieldTheory/Tower.lean +/- theorem FiniteDimensional.left Modified Mathlib/Geometry/Euclidean/Angle/Oriented/Affine.lean Modified Mathlib/Geometry/Euclidean/Angle/Oriented/Basic.lean Modified Mathlib/Geometry/Euclidean/Angle/Oriented/RightAngle.lean Modified Mathlib/Geometry/Euclidean/Angle/Oriented/Rotation.lean Modified Mathlib/Geometry/Euclidean/Angle/Sphere.lean Modified Mathlib/Geometry/Euclidean/Angle/Unoriented/Affine.lean +/- theorem AffineIsometry.angle_map Modified Mathlib/Geometry/Euclidean/Angle/Unoriented/Basic.lean +/- theorem LinearIsometry.angle_map Modified Mathlib/Geometry/Euclidean/Angle/Unoriented/Conformal.lean Modified Mathlib/Geometry/Euclidean/Angle/Unoriented/RightAngle.lean Modified Mathlib/Geometry/Euclidean/Basic.lean +/- theorem EuclideanGeometry.dist_affineCombination +/- theorem EuclideanGeometry.inner_weightedVSub Modified Mathlib/Geometry/Euclidean/Circumcenter.lean +/- theorem Affine.Simplex.sum_pointsWithCircumcenter +/- theorem AffineIndependent.existsUnique_dist_eq Modified Mathlib/Geometry/Euclidean/Inversion/Basic.lean Modified Mathlib/Geometry/Euclidean/Inversion/Calculus.lean Modified Mathlib/Geometry/Euclidean/Inversion/ImageHyperplane.lean Modified Mathlib/Geometry/Euclidean/MongePoint.lean Modified Mathlib/Geometry/Euclidean/Sphere/Basic.lean Modified Mathlib/Geometry/Euclidean/Sphere/Power.lean Modified Mathlib/Geometry/Euclidean/Sphere/Ptolemy.lean Modified Mathlib/Geometry/Euclidean/Sphere/SecondInter.lean Modified Mathlib/Geometry/Euclidean/Triangle.lean Modified Mathlib/Geometry/Manifold/Algebra/LeftInvariantDerivation.lean Modified Mathlib/Geometry/Manifold/Algebra/LieGroup.lean Modified Mathlib/Geometry/Manifold/Algebra/Monoid.lean +/- theorem L_mul +/- theorem R_mul Modified Mathlib/Geometry/Manifold/Algebra/SmoothFunctions.lean +/- def SmoothMap.coeFnLinearMap +/- def SmoothMap.coeFnMonoidHom +/- def SmoothMap.coeFnRingHom +/- theorem SmoothMap.coe_div +/- theorem SmoothMap.coe_inv +/- theorem SmoothMap.coe_mul +/- theorem SmoothMap.coe_one +/- theorem SmoothMap.coe_pow +/- theorem SmoothMap.coe_smul +/- def SmoothMap.compLeftMonoidHom +/- def SmoothMap.compLeftRingHom +/- def SmoothMap.evalRingHom +/- theorem SmoothMap.mul_comp +/- def SmoothMap.restrictMonoidHom +/- def SmoothMap.restrictRingHom +/- theorem SmoothMap.smul_comp' +/- theorem SmoothMap.smul_comp Modified Mathlib/Geometry/Manifold/Algebra/Structures.lean Modified Mathlib/Geometry/Manifold/ChartedSpace.lean +/- def ChartedSpace.comp +/- structure ChartedSpaceCore +/- def ModelPi +/- def ModelProd +/- structure Pregroupoid +/- def Structomorph.refl +/- structure Structomorph +/- theorem StructureGroupoid.compatible +/- theorem chartAt_comp +/- theorem chartAt_self_eq +/- theorem chart_mem_atlas +/- theorem chartedSpaceSelf_atlas +/- def continuousGroupoid +/- def continuousPregroupoid +/- theorem mem_chart_source +/- theorem modelProd_range_prod_id +/- theorem piChartedSpace_chartAt Modified Mathlib/Geometry/Manifold/Complex.lean Modified Mathlib/Geometry/Manifold/ConformalGroupoid.lean Modified Mathlib/Geometry/Manifold/ContMDiff.lean Modified Mathlib/Geometry/Manifold/ContMDiffMFDeriv.lean Modified Mathlib/Geometry/Manifold/ContMDiffMap.lean Modified Mathlib/Geometry/Manifold/DerivationBundle.lean Modified Mathlib/Geometry/Manifold/Diffeomorph.lean Modified Mathlib/Geometry/Manifold/Instances/Sphere.lean Modified Mathlib/Geometry/Manifold/Instances/UnitsOfNormedAlgebra.lean Modified Mathlib/Geometry/Manifold/LocalInvariantProperties.lean Modified Mathlib/Geometry/Manifold/MFDeriv.lean Modified Mathlib/Geometry/Manifold/Metrizable.lean +/- theorem ManifoldWithCorners.metrizableSpace Modified Mathlib/Geometry/Manifold/Sheaf/Basic.lean Modified Mathlib/Geometry/Manifold/SmoothManifoldWithCorners.lean +/- theorem LocalHomeomorph.singleton_smoothManifoldWithCorners +/- def ModelWithCorners.Simps.apply +/- def ModelWithCorners.Simps.symm_apply +/- theorem ModelWithCorners.range_eq_univ +/- def ModelWithCorners.toHomeomorph +/- theorem ModelWithCorners.unique_diff_preimage_source +/- structure ModelWithCorners +/- theorem OpenEmbedding.singleton_smoothManifoldWithCorners +/- theorem SmoothManifoldWithCorners.mk' +/- def modelWithCornersSelf +/- theorem smoothManifoldWithCorners_of_contDiffOn Modified Mathlib/Geometry/Manifold/VectorBundle/Basic.lean Modified Mathlib/Geometry/Manifold/VectorBundle/FiberwiseLinear.lean Modified Mathlib/Geometry/Manifold/VectorBundle/Hom.lean Modified Mathlib/Geometry/Manifold/VectorBundle/Pullback.lean Modified Mathlib/Geometry/Manifold/VectorBundle/SmoothSection.lean Modified Mathlib/Geometry/Manifold/VectorBundle/Tangent.lean Modified Mathlib/GroupTheory/Abelianization.lean +/- def Abelianization.equivOfComm Modified Mathlib/GroupTheory/Archimedean.lean Modified Mathlib/GroupTheory/Commensurable.lean Modified Mathlib/GroupTheory/Commutator.lean +/- theorem Subgroup.commutator_pi_pi_le +/- theorem Subgroup.commutator_pi_pi_of_finite Modified Mathlib/GroupTheory/CommutingProbability.lean +/- theorem commProb_pi +/- theorem commProb_prod Modified Mathlib/GroupTheory/Complement.lean +/- theorem Subgroup.isComplement'_stabilizer Modified Mathlib/GroupTheory/Congruence.lean +/- theorem Con.coe_smul +/- theorem Con.hrec_on₂_coe +/- def Con.pi +/- theorem Con.quot_mk_eq_coe +/- theorem Con.smul Modified Mathlib/GroupTheory/CoprodI.lean Modified Mathlib/GroupTheory/Coset.lean +/- def Subgroup.quotientiInfEmbedding +/- theorem Subgroup.quotientiInfEmbedding_apply_mk +/- def Subgroup.quotientiInfSubgroupOfEmbedding +/- theorem Subgroup.quotientiInfSubgroupOfEmbedding_apply_mk Modified Mathlib/GroupTheory/Divisible.lean +/- theorem RootableBy.surjective_pow Modified Mathlib/GroupTheory/DoubleCoset.lean Modified Mathlib/GroupTheory/Finiteness.lean +/- theorem Group.fg_of_surjective +/- theorem Monoid.fg_of_surjective +/- theorem Submonoid.FG.map +/- theorem Submonoid.FG.map_injective Modified Mathlib/GroupTheory/FreeAbelianGroup.lean +/- def FreeAbelianGroup.equivOfEquiv +/- def FreeAbelianGroup.punitEquiv Modified Mathlib/GroupTheory/FreeAbelianGroupFinsupp.lean +/- def FreeAbelianGroup.Equiv.ofFreeAbelianGroupEquiv +/- def FreeAbelianGroup.Equiv.ofFreeAbelianGroupLinearEquiv +/- def FreeAbelianGroup.Equiv.ofFreeGroupEquiv +/- def FreeAbelianGroup.Equiv.ofIsFreeGroupEquiv Modified Mathlib/GroupTheory/FreeGroup.lean +/- theorem FreeGroup.ext_hom Modified Mathlib/GroupTheory/GroupAction/Basic.lean +/- theorem smul_cancel_of_non_zero_divisor Modified Mathlib/GroupTheory/GroupAction/BigOperators.lean Modified Mathlib/GroupTheory/GroupAction/ConjAct.lean Modified Mathlib/GroupTheory/GroupAction/Defs.lean +/- def Function.Surjective.distribMulActionLeft +/- def Function.Surjective.distribSMulLeft +/- def Function.Surjective.mulActionLeft +/- def Function.Surjective.smulZeroClassLeft +/- theorem IsCentralScalar.unop_smul_eq_smul +/- theorem SMulCommClass.symm +/- theorem smul_eq_mul Modified Mathlib/GroupTheory/GroupAction/DomAct/Basic.lean +/- def DomMulAct Modified Mathlib/GroupTheory/GroupAction/Embedding.lean Modified Mathlib/GroupTheory/GroupAction/FixingSubgroup.lean +/- theorem fixedPoints_subgroup_iSup +/- theorem fixedPoints_submonoid_iSup +/- theorem fixingSubgroup_iUnion +/- theorem fixingSubmonoid_iUnion Modified Mathlib/GroupTheory/GroupAction/Group.lean +/- def AddAction.toPermHom +/- def arrowAction +/- def arrowMulDistribMulAction Modified Mathlib/GroupTheory/GroupAction/Opposite.lean +/- theorem MulOpposite.op_smul_eq_op_smul_op +/- theorem MulOpposite.unop_smul_eq_unop_smul_unop Modified Mathlib/GroupTheory/GroupAction/Option.lean Modified Mathlib/GroupTheory/GroupAction/Pi.lean +/- theorem Function.extend_smul +/- theorem Function.update_smul +/- theorem Pi.faithfulSMul_at +/- theorem Pi.single_smul₀ +/- theorem Pi.smul_apply' +/- theorem Set.piecewise_smul Modified Mathlib/GroupTheory/GroupAction/Prod.lean +/- theorem Prod.smul_mk_zero +/- theorem Prod.smul_zero_mk Modified Mathlib/GroupTheory/GroupAction/Quotient.lean +/- theorem card_comm_eq_card_conjClasses_mul_card Modified Mathlib/GroupTheory/GroupAction/Sigma.lean Modified Mathlib/GroupTheory/GroupAction/SubMulAction.lean +/- theorem AddSubgroupClass.zsmulMemClass +/- theorem AddSubmonoidClass.nsmulMemClass +/- theorem SMulMemClass.ofIsScalarTower +/- theorem SetLike.forall_smul_mem_iff Modified Mathlib/GroupTheory/GroupAction/SubMulAction/Pointwise.lean Modified Mathlib/GroupTheory/GroupAction/Sum.lean Modified Mathlib/GroupTheory/GroupAction/Support.lean Modified Mathlib/GroupTheory/GroupAction/Units.lean Modified Mathlib/GroupTheory/Index.lean +/- theorem Subgroup.card_dvd_of_surjective +/- theorem Subgroup.dvd_index_map +/- theorem Subgroup.index_comap +/- theorem Subgroup.index_comap_of_surjective +/- theorem Subgroup.index_iInf_le +/- theorem Subgroup.index_iInf_ne_zero +/- theorem Subgroup.index_map +/- theorem Subgroup.index_map_dvd +/- theorem Subgroup.index_map_eq +/- theorem Subgroup.nat_card_dvd_of_injective +/- theorem Subgroup.nat_card_dvd_of_surjective +/- theorem Subgroup.relindex_comap +/- theorem Subgroup.relindex_iInf_le +/- theorem Subgroup.relindex_iInf_ne_zero Modified Mathlib/GroupTheory/IsFreeGroup.lean Modified Mathlib/GroupTheory/MonoidLocalization.lean +/- theorem Localization.liftOn_zero +/- theorem Localization.liftOn₂_mk' +/- theorem Localization.liftOn₂_mk +/- def Submonoid.LocalizationMap.AwayMap +/- theorem Submonoid.LocalizationMap.comp_eq_of_eq +/- theorem Submonoid.LocalizationMap.map_comp_map +/- theorem Submonoid.LocalizationMap.map_map Modified Mathlib/GroupTheory/Nilpotent.lean +/- theorem CommGroup.nilpotencyClass_le_one +/- theorem Group.IsNilpotent.nilpotent +/- theorem isNilpotent_of_ker_le_center +/- theorem lowerCentralSeries.map +/- def lowerCentralSeries +/- theorem nilpotencyClass_le_of_ker_le_center +/- theorem nilpotencyClass_le_of_surjective +/- theorem nilpotent_of_mulEquiv +/- theorem nilpotent_of_surjective +/- theorem upperCentralSeries.map Modified Mathlib/GroupTheory/NoncommPiCoprod.lean +/- theorem Subgroup.eq_one_of_noncommProd_eq_one_of_independent Modified Mathlib/GroupTheory/OrderOfElement.lean +/- theorem IsOfFinOrder.apply +/- theorem Subgroup.pow_index_mem +/- theorem inf_eq_bot_of_coprime +/- theorem orderOf_dvd_nat_card +/- theorem orderOf_eq_orderOf_iff +/- theorem orderOf_injective +/- theorem orderOf_map_dvd +/- def powCardSubgroup +/- theorem powCoprime_inv +/- theorem powCoprime_one +/- theorem pow_card_eq_one' +/- theorem smul_eq_self_of_mem_zpowers +/- def subgroupOfIdempotent +/- def submonoidOfIdempotent +/- theorem vadd_eq_self_of_mem_zmultiples Modified Mathlib/GroupTheory/PGroup.lean +/- theorem IsPGroup.comap_of_injective +/- theorem IsPGroup.comap_of_ker_isPGroup +/- theorem IsPGroup.coprime_card_of_ne +/- theorem IsPGroup.ker_isPGroup_of_injective +/- theorem IsPGroup.map +/- theorem IsPGroup.of_equiv +/- theorem IsPGroup.of_injective +/- theorem IsPGroup.of_surjective Modified Mathlib/GroupTheory/Perm/Basic.lean +/- theorem Equiv.Perm.one_trans +/- def Equiv.Perm.sigmaCongrRightHom +/- theorem Equiv.Perm.sigmaCongrRightHom_injective +/- theorem Equiv.Perm.sigmaCongrRight_inv +/- theorem Equiv.Perm.sigmaCongrRight_mul +/- theorem Equiv.Perm.sigmaCongrRight_one +/- def Equiv.Perm.sumCongrHom +/- theorem Equiv.Perm.sumCongrHom_injective +/- theorem Equiv.Perm.sumCongr_inv +/- theorem Equiv.Perm.sumCongr_mul +/- theorem Equiv.Perm.sumCongr_one +/- theorem Equiv.Perm.sumCongr_one_swap +/- theorem Equiv.Perm.sumCongr_swap_one +/- theorem Equiv.Perm.trans_one +/- theorem Equiv.Perm.zpow_apply_comm +/- def MonoidHom.toHomPerm Modified Mathlib/GroupTheory/Perm/Cycle/Basic.lean +/- theorem Equiv.Perm.Disjoint.isConj_mul +/- theorem Equiv.Perm.IsCycle.eq_swap_of_apply_apply_eq_self +/- theorem Equiv.Perm.IsCycle.swap_mul +/- theorem Equiv.Perm.isCycle_swap_mul_aux₁ +/- theorem Equiv.Perm.isCycle_swap_mul_aux₂ +/- theorem Equiv.Perm.list_cycles_perm_list_cycles +/- theorem Equiv.Perm.mem_list_cycles_iff Modified Mathlib/GroupTheory/Perm/Cycle/Concrete.lean Modified Mathlib/GroupTheory/Perm/Cycle/Type.lean +/- theorem Equiv.Perm.cycleType_extendDomain +/- theorem exists_prime_addOrderOf_dvd_card +/- theorem exists_prime_orderOf_dvd_card Modified Mathlib/GroupTheory/Perm/List.lean Modified Mathlib/GroupTheory/Perm/Option.lean +/- def Equiv.Perm.decomposeOption +/- theorem Equiv.Perm.decomposeOption_symm_of_none_apply +/- theorem Equiv.Perm.decomposeOption_symm_sign +/- theorem Equiv.optionCongr_one +/- theorem Equiv.optionCongr_sign +/- theorem Equiv.optionCongr_swap +/- theorem Finset.univ_perm_option +/- theorem map_equiv_removeNone Modified Mathlib/GroupTheory/Perm/Sign.lean +/- theorem Equiv.Perm.Disjoint.extendDomain +/- theorem Equiv.Perm.mem_sumCongrHom_range_of_perm_mapsTo_inl +/- theorem Equiv.Perm.perm_mapsTo_inl_iff_mapsTo_inr +/- theorem Equiv.Perm.prod_prodExtendRight Modified Mathlib/GroupTheory/Perm/Subgroup.lean +/- theorem Equiv.Perm.sigmaCongrRightHom.card_range +/- theorem Equiv.Perm.subtypeCongrHom.card_range +/- theorem Equiv.Perm.sumCongrHom.card_range Modified Mathlib/GroupTheory/Perm/Support.lean Modified Mathlib/GroupTheory/Perm/ViaEmbedding.lean Modified Mathlib/GroupTheory/PresentedGroup.lean Modified Mathlib/GroupTheory/QuotientGroup.lean +/- theorem QuotientGroup.map_comp_map +/- theorem QuotientGroup.map_map Modified Mathlib/GroupTheory/Schreier.lean Modified Mathlib/GroupTheory/SchurZassenhaus.lean Modified Mathlib/GroupTheory/SemidirectProduct.lean Modified Mathlib/GroupTheory/Solvable.lean +/- theorem Equiv.Perm.not_solvable +/- theorem isSolvable_of_comm +/- theorem solvable_of_ker_le_range Modified Mathlib/GroupTheory/SpecificGroups/Alternating.lean Modified Mathlib/GroupTheory/SpecificGroups/Cyclic.lean +/- theorem IsAddCyclic.card_orderOf_eq_totient +/- theorem MonoidHom.map_cyclic Modified Mathlib/GroupTheory/Subgroup/Actions.lean Modified Mathlib/GroupTheory/Subgroup/Basic.lean +/- structure AddSubgroup +/- theorem CommGroup.center_eq_top +/- theorem MonoidHom.ker_prodMap +/- theorem MonoidHom.prodMap_comap_prod +/- theorem MonoidHom.subgroupOf_range_eq_of_le +/- theorem Subgroup.closure_eq_bot_iff +/- theorem Subgroup.coe_iInf +/- def Subgroup.comap +/- theorem Subgroup.comap_iInf +/- theorem Subgroup.comap_normalizer_eq_of_injective_of_le_range +/- theorem Subgroup.iSup_comap_le +/- theorem Subgroup.iSup_eq_closure +/- theorem Subgroup.map_iSup +/- theorem Subgroup.mem_iInf +/- theorem Subgroup.mem_iSup_of_mem +/- def Subgroup.subgroupOfEquivOfLe +/- structure Subgroup Modified Mathlib/GroupTheory/Subgroup/Finite.lean +/- theorem Subgroup.noncommProd_mem Modified Mathlib/GroupTheory/Subgroup/MulOpposite.lean Modified Mathlib/GroupTheory/Subgroup/Pointwise.lean +/- theorem Subgroup.Normal.conjAct +/- theorem Subgroup.iSup_induction' +/- theorem Subgroup.iSup_induction Modified Mathlib/GroupTheory/Subgroup/Saturated.lean +/- theorem AddSubgroup.ker_saturated Modified Mathlib/GroupTheory/Subgroup/Simple.lean +/- theorem IsSimpleGroup.isSimpleGroup_of_surjective Modified Mathlib/GroupTheory/Subgroup/ZPowers.lean +/- theorem Int.range_castAddHom Modified Mathlib/GroupTheory/Submonoid/Basic.lean +/- structure AddSubmonoid +/- theorem IsUnit.mem_submonoid_iff +/- def IsUnit.submonoid +/- theorem Submonoid.coe_iInf +/- theorem Submonoid.iSup_eq_closure +/- theorem Submonoid.mem_iInf +/- theorem Submonoid.mem_iSup +/- structure Submonoid Modified Mathlib/GroupTheory/Submonoid/Center.lean Modified Mathlib/GroupTheory/Submonoid/Centralizer.lean Modified Mathlib/GroupTheory/Submonoid/Inverses.lean Modified Mathlib/GroupTheory/Submonoid/Membership.lean +/- theorem Submonoid.exists_multiset_of_mem_closure +/- theorem Submonoid.iSup_induction' +/- theorem Submonoid.iSup_induction +/- theorem Submonoid.map_powers +/- theorem Submonoid.mem_closure_pair +/- theorem Submonoid.mem_iSup_of_mem +/- theorem Submonoid.noncommProd_mem +/- theorem Submonoid.prod_mem +/- theorem prod_mem Modified Mathlib/GroupTheory/Submonoid/Operations.lean +/- theorem MonoidHom.mker_prod_map +/- theorem MonoidHom.prod_map_comap_prod' +/- def MonoidHom.restrict +/- theorem MonoidHom.restrict_apply +/- theorem Submonoid.comap_iInf +/- theorem Submonoid.map_iSup +/- theorem SubmonoidClass.coe_pow +/- theorem SubmonoidClass.mk_pow Modified Mathlib/GroupTheory/Submonoid/Pointwise.lean +/- theorem Submonoid.inv_iInf +/- theorem Submonoid.inv_iSup +/- theorem Submonoid.mem_closure_inv +/- theorem Submonoid.pow_smul_mem_closure_smul Modified Mathlib/GroupTheory/Subsemigroup/Basic.lean +/- structure AddSubsemigroup +/- theorem Subsemigroup.coe_iInf +/- theorem Subsemigroup.iSup_eq_closure +/- theorem Subsemigroup.mem_iInf +/- theorem Subsemigroup.mem_iSup +/- structure Subsemigroup Modified Mathlib/GroupTheory/Subsemigroup/Center.lean Modified Mathlib/GroupTheory/Subsemigroup/Centralizer.lean Modified Mathlib/GroupTheory/Subsemigroup/Membership.lean Modified Mathlib/GroupTheory/Subsemigroup/Operations.lean +/- theorem MulHom.prod_map_comap_prod' +/- def MulHom.restrict +/- theorem MulHom.restrict_apply +/- theorem Subsemigroup.comap_iInf +/- theorem Subsemigroup.map_iSup Modified Mathlib/GroupTheory/Sylow.lean +/- theorem Sylow.exists_comap_eq_of_injective +/- theorem Sylow.exists_comap_eq_of_ker_isPGroup +/- theorem Sylow.pointwise_smul_def Modified Mathlib/GroupTheory/Torsion.lean +/- theorem IsTorsionFree.prod Modified Mathlib/GroupTheory/Transfer.lean Modified Mathlib/InformationTheory/Hamming.lean +/- def Hamming Modified Mathlib/Init/Algebra/Order.lean +/- def ltByCases Modified Mathlib/Init/Data/Nat/Bitwise.lean Modified Mathlib/LinearAlgebra/AdicCompletion.lean Modified Mathlib/LinearAlgebra/AffineSpace/AffineEquiv.lean +/- structure AffineEquiv Modified Mathlib/LinearAlgebra/AffineSpace/AffineMap.lean +/- theorem AffineMap.image_uIcc +/- structure AffineMap Modified Mathlib/LinearAlgebra/AffineSpace/AffineSubspace.lean +/- theorem AffineMap.lineMap_mem +/- theorem AffineSubspace.card_pos_of_affineSpan_eq_top +/- theorem AffineSubspace.comap_supr +/- theorem AffineSubspace.map_iSup +/- theorem AffineSubspace.span_iUnion +/- structure AffineSubspace Modified Mathlib/LinearAlgebra/AffineSpace/Basis.lean Modified Mathlib/LinearAlgebra/AffineSpace/Combination.lean +/- theorem Finset.map_affineCombination Modified Mathlib/LinearAlgebra/AffineSpace/FiniteDimensional.lean Modified Mathlib/LinearAlgebra/AffineSpace/Independent.lean +/- theorem AffineIndependent.comp_embedding +/- theorem affineIndependent_equiv Modified Mathlib/LinearAlgebra/AffineSpace/Matrix.lean +/- theorem AffineBasis.toMatrix_apply +/- theorem AffineBasis.toMatrix_row_sum_one Modified Mathlib/LinearAlgebra/AffineSpace/Midpoint.lean +/- theorem midpoint_unique Modified Mathlib/LinearAlgebra/AffineSpace/MidpointZero.lean +/- theorem homothety_invOf_two +/- theorem homothety_inv_two +/- theorem homothety_one_half +/- theorem lineMap_inv_two +/- theorem lineMap_one_half +/- theorem pi_midpoint_apply Modified Mathlib/LinearAlgebra/AffineSpace/Ordered.lean Modified Mathlib/LinearAlgebra/AffineSpace/Pointwise.lean Modified Mathlib/LinearAlgebra/AffineSpace/Restrict.lean Modified Mathlib/LinearAlgebra/AffineSpace/Slope.lean +/- theorem AffineMap.slope_comp +/- theorem LinearMap.slope_comp Modified Mathlib/LinearAlgebra/Alternating.lean +/- theorem AlternatingMap.coe_pi +/- theorem AlternatingMap.coe_smulRight +/- theorem AlternatingMap.map_linearDependent +/- theorem AlternatingMap.map_update_sum +/- def AlternatingMap.pi +/- def AlternatingMap.smulRight +/- theorem Equiv.Perm.ModSumCongr.swap_smul_involutive +/- theorem LinearMap.smulRight_eq_comp Modified Mathlib/LinearAlgebra/AnnihilatingPolynomial.lean Modified Mathlib/LinearAlgebra/Basic.lean +/- theorem Finsupp.LinearEquiv.finsuppUnique_apply +/- theorem Finsupp.LinearEquiv.finsuppUnique_symm_apply +/- theorem Finsupp.smul_sum +/- theorem Finsupp.sum_smul_index_linearMap' +/- theorem IsLinearMap.isLinearMap_sub +/- theorem LinearMap.coeFn_sum +/- theorem LinearMap.iInf_invariant +/- theorem LinearMap.map_sum +/- theorem LinearMap.mem_submoduleImage +/- theorem LinearMap.mem_submoduleImage_of_le +/- theorem LinearMap.range_neg +/- def LinearMap.submoduleImage +/- theorem LinearMap.submoduleImage_apply_ofLe +/- theorem Submodule.comap_iInf +/- theorem Submodule.comap_iInf_map_of_injective +/- theorem Submodule.comap_iSup_map_of_injective +/- theorem Submodule.map_iInf_comap_of_surjective +/- theorem Submodule.map_iSup +/- theorem Submodule.map_iSup_comap_of_sujective +/- def addMonoidHomLequivInt +/- def addMonoidHomLequivNat +/- theorem pi_eq_sum_univ Modified Mathlib/LinearAlgebra/Basis.lean +/- theorem Basis.basis_singleton_iff +/- theorem Basis.coe_finTwoProd_repr +/- theorem Basis.equiv_trans +/- theorem Basis.finTwoProd_one +/- theorem Basis.finTwoProd_zero +/- def Basis.groupSMul +/- theorem Basis.groupSMul_apply +/- theorem Basis.groupSMul_span_eq_top +/- theorem Basis.mem_span_repr_support +/- theorem Basis.repr_support_subset_of_mem_span +/- theorem Basis.singleton_apply +/- theorem Basis.singleton_repr +/- def Submodule.inductionOnRankAux Modified Mathlib/LinearAlgebra/Basis/Bilinear.lean Modified Mathlib/LinearAlgebra/Basis/VectorSpace.lean Modified Mathlib/LinearAlgebra/BilinearForm.lean +/- theorem BilinForm.comp_comp +/- structure BilinForm Modified Mathlib/LinearAlgebra/BilinearForm/TensorProduct.lean Modified Mathlib/LinearAlgebra/BilinearMap.lean +/- theorem LinearMap.map_sum₂ Modified Mathlib/LinearAlgebra/CliffordAlgebra/Basic.lean +/- theorem CliffordAlgebra.hom_ext Modified Mathlib/LinearAlgebra/CliffordAlgebra/Conjugation.lean Modified Mathlib/LinearAlgebra/CliffordAlgebra/Equivs.lean Modified Mathlib/LinearAlgebra/CliffordAlgebra/EvenEquiv.lean Modified Mathlib/LinearAlgebra/CliffordAlgebra/Fold.lean Modified Mathlib/LinearAlgebra/CliffordAlgebra/Grading.lean Modified Mathlib/LinearAlgebra/CliffordAlgebra/Star.lean Modified Mathlib/LinearAlgebra/Contraction.lean +/- theorem toMatrix_dualTensorHom Modified Mathlib/LinearAlgebra/CrossProduct.lean Modified Mathlib/LinearAlgebra/DFinsupp.lean +/- theorem Submodule.dfinsupp_sumAddHom_mem +/- theorem Submodule.dfinsupp_sum_mem Modified Mathlib/LinearAlgebra/Determinant.lean +/- theorem AlternatingMap.map_basis_eq_zero_iff +/- theorem AlternatingMap.map_basis_ne_zero_iff +/- theorem Basis.det_reindex +/- theorem Basis.det_reindex_symm +/- theorem LinearEquiv.det_coe_symm +/- theorem LinearEquiv.det_mul_det_symm +/- theorem LinearEquiv.det_symm_mul_det +/- theorem LinearEquiv.isUnit_det' +/- theorem LinearMap.associated_det_comp_equiv +/- theorem LinearMap.bot_lt_ker_of_det_eq_zero +/- theorem LinearMap.detAux_def'' +/- theorem LinearMap.det_conj +/- theorem LinearMap.det_eq_one_of_finrank_eq_zero +/- theorem LinearMap.det_smul +/- theorem LinearMap.det_toMatrix' +/- theorem LinearMap.det_zero' +/- theorem LinearMap.det_zero +/- def LinearMap.equivOfDetNeZero +/- theorem LinearMap.finiteDimensional_of_det_ne_one +/- theorem LinearMap.isUnit_det +/- theorem LinearMap.range_lt_top_of_det_eq_zero +/- def equivOfPiLEquivPi Modified Mathlib/LinearAlgebra/Dimension.lean +/- theorem Basis.card_le_card_of_linearIndependent +/- theorem Basis.card_le_card_of_linearIndependent_aux +/- theorem Basis.finite_index_of_rank_lt_aleph0 +/- theorem Basis.le_span'' +/- theorem Basis.nonempty_fintype_index_of_rank_lt_aleph0 +/- def Basis.ofRankEqZero +/- theorem Basis.ofRankEqZero_apply +/- theorem Ideal.rank_eq +/- theorem basis_le_span' +/- def linearIndependentFintypeOfLeSpanFintype +/- theorem linearIndependent_le_basis +/- theorem linearIndependent_le_infinite_basis +/- theorem linearIndependent_le_span' +/- theorem linearIndependent_le_span +/- theorem linearIndependent_le_span_aux' +/- theorem linearIndependent_le_span_finset +/- theorem maximal_linearIndependent_eq_infinite_basis Modified Mathlib/LinearAlgebra/DirectSum/Finsupp.lean Modified Mathlib/LinearAlgebra/Dual.lean +/- theorem Basis.eval_ker +/- theorem Basis.eval_range +/- theorem LinearEquiv.dualMap_trans +/- theorem LinearMap.dualMap_comp_dualMap +/- theorem Submodule.dualAnnihilator_gc +/- theorem Submodule.dualAnnihilator_iSup_eq +/- theorem Submodule.dualCoannihilator_iSup_eq +/- theorem Submodule.iSup_dualAnnihilator_le_iInf +/- def Subspace.dualAnnihilatorGci +/- theorem Subspace.dualAnnihilator_iInf_eq Modified Mathlib/LinearAlgebra/ExteriorAlgebra/Basic.lean Modified Mathlib/LinearAlgebra/ExteriorAlgebra/Grading.lean Modified Mathlib/LinearAlgebra/ExteriorAlgebra/OfAlternating.lean Modified Mathlib/LinearAlgebra/FiniteDimensional.lean +/- theorem FiniteDimensional.basisSingleton_apply +/- theorem FiniteDimensional.basisUnique.repr_eq_zero_iff +/- theorem FiniteDimensional.exists_mul_eq_one +/- theorem FiniteDimensional.fintype_card_le_finrank_of_linearIndependent +/- theorem FiniteDimensional.range_basisSingleton +/- def FiniteDimensional +/- theorem coe_basisOfLinearIndependentOfCardEqFinrank +/- theorem finrank_eq_one_iff +/- theorem span_eq_top_of_linearIndependent_of_card_eq_finrank +/- theorem surjective_of_nonzero_of_finrank_eq_one Modified Mathlib/LinearAlgebra/Finrank.lean +/- theorem FiniteDimensional.finrank_eq_card_finset_basis +/- theorem coe_basisOfTopLeSpanOfCardEqFinrank +/- theorem finrank_range_le_card +/- theorem finrank_span_eq_card +/- theorem linearIndependent_iff_card_eq_finrank_span +/- theorem linearIndependent_iff_card_le_finrank_span +/- theorem linearIndependent_of_top_le_span_of_card_eq_finrank Modified Mathlib/LinearAlgebra/Finsupp.lean +/- theorem Finsupp.domLCongr_apply +/- theorem Finsupp.domLCongr_single +/- theorem Finsupp.domLCongr_symm +/- theorem Finsupp.domLCongr_trans +/- theorem Finsupp.finsuppProdLEquiv_apply +/- theorem Finsupp.finsuppProdLEquiv_symm_apply +/- theorem Finsupp.fst_sumFinsuppLEquivProdFinsupp +/- theorem Finsupp.sigmaFinsuppLEquivPiFinsupp_apply +/- theorem Finsupp.sigmaFinsuppLEquivPiFinsupp_symm_apply +/- theorem Finsupp.snd_sumFinsuppLEquivProdFinsupp +/- def Finsupp.sumFinsuppLEquivProdFinsupp +/- theorem Finsupp.sumFinsuppLEquivProdFinsupp_symm_inl +/- theorem Finsupp.sumFinsuppLEquivProdFinsupp_symm_inr +/- theorem Finsupp.supported_iInter +/- theorem Finsupp.supported_iUnion +/- theorem Finsupp.total_total +/- theorem LinearMap.map_finsupp_total +/- def Module.subsingletonEquiv Modified Mathlib/LinearAlgebra/FinsuppVectorSpace.lean +/- theorem Finsupp.basis_repr +/- theorem Finsupp.coe_basis +/- theorem Finsupp.linearIndependent_single Modified Mathlib/LinearAlgebra/FreeModule/Basic.lean Modified Mathlib/LinearAlgebra/FreeModule/Determinant.lean +/- theorem LinearMap.det_zero'' Modified Mathlib/LinearAlgebra/FreeModule/Finite/Basic.lean +/- theorem Module.Finite.of_basis Modified Mathlib/LinearAlgebra/FreeModule/Finite/Rank.lean +/- theorem FiniteDimensional.finrank_matrix Modified Mathlib/LinearAlgebra/FreeModule/IdealQuotient.lean Modified Mathlib/LinearAlgebra/FreeModule/Norm.lean Modified Mathlib/LinearAlgebra/FreeModule/PID.lean +/- structure Basis.SmithNormalForm +/- theorem LinearIndependent.restrict_scalars_algebras +/- theorem Submodule.basisOfPid_bot +/- theorem Submodule.basis_of_pid_aux +/- theorem Submodule.nonempty_basis_of_pid Modified Mathlib/LinearAlgebra/FreeModule/StrongRankCondition.lean Modified Mathlib/LinearAlgebra/GeneralLinearGroup.lean Modified Mathlib/LinearAlgebra/InvariantBasisNumber.lean +/- theorem card_eq_of_linearEquiv +/- theorem card_le_of_injective' +/- theorem card_le_of_injective +/- theorem card_le_of_surjective' +/- theorem card_le_of_surjective Modified Mathlib/LinearAlgebra/Isomorphisms.lean Modified Mathlib/LinearAlgebra/Lagrange.lean Modified Mathlib/LinearAlgebra/LinearIndependent.lean +/- theorem LinearIndependent.eq_of_smul_apply_eq_smul_apply +/- theorem LinearIndependent.group_smul +/- theorem linearIndependent_iUnion_finite +/- theorem linearIndependent_iUnion_finite_subtype +/- theorem linearIndependent_iUnion_of_directed +/- theorem linearIndependent_monoidHom Modified Mathlib/LinearAlgebra/LinearPMap.lean +/- theorem LinearPMap.mkSpanSingleton_apply Modified Mathlib/LinearAlgebra/Matrix/AbsoluteValue.lean +/- theorem Matrix.det_sum_le +/- theorem Matrix.det_sum_smul_le Modified Mathlib/LinearAlgebra/Matrix/Adjugate.lean +/- theorem AlgHom.map_adjugate +/- theorem RingHom.map_adjugate Modified Mathlib/LinearAlgebra/Matrix/Basis.lean +/- theorem Basis.toMatrix_map_vecMul +/- theorem Basis.toMatrix_mul_toMatrix Modified Mathlib/LinearAlgebra/Matrix/BilinearForm.lean Modified Mathlib/LinearAlgebra/Matrix/Block.lean Modified Mathlib/LinearAlgebra/Matrix/Charpoly/Coeff.lean +/- theorem matPolyEquiv_eq_x_pow_sub_c Modified Mathlib/LinearAlgebra/Matrix/Charpoly/Eigs.lean Modified Mathlib/LinearAlgebra/Matrix/Charpoly/FiniteField.lean +/- theorem FiniteField.Matrix.charpoly_pow_card +/- theorem FiniteField.trace_pow_card Modified Mathlib/LinearAlgebra/Matrix/Charpoly/LinearMap.lean Modified Mathlib/LinearAlgebra/Matrix/Charpoly/Minpoly.lean +/- theorem Matrix.minpoly_dvd_charpoly +/- theorem charpoly_leftMulMatrix Modified Mathlib/LinearAlgebra/Matrix/Circulant.lean Modified Mathlib/LinearAlgebra/Matrix/Determinant.lean +/- theorem Matrix.det_blockDiagonal +/- theorem Matrix.det_unique Modified Mathlib/LinearAlgebra/Matrix/Diagonal.lean Modified Mathlib/LinearAlgebra/Matrix/Dual.lean Modified Mathlib/LinearAlgebra/Matrix/FiniteDimensional.lean Modified Mathlib/LinearAlgebra/Matrix/GeneralLinearGroup.lean +/- def Matrix.GeneralLinearGroup.mkOfDetNeZero Modified Mathlib/LinearAlgebra/Matrix/Hermitian.lean Modified Mathlib/LinearAlgebra/Matrix/InvariantBasisNumber.lean Modified Mathlib/LinearAlgebra/Matrix/IsDiag.lean Modified Mathlib/LinearAlgebra/Matrix/LDL.lean Modified Mathlib/LinearAlgebra/Matrix/MvPolynomial.lean Modified Mathlib/LinearAlgebra/Matrix/Nondegenerate.lean Modified Mathlib/LinearAlgebra/Matrix/NonsingularInverse.lean Modified Mathlib/LinearAlgebra/Matrix/Orthogonal.lean Modified Mathlib/LinearAlgebra/Matrix/Polynomial.lean Modified Mathlib/LinearAlgebra/Matrix/PosDef.lean Modified Mathlib/LinearAlgebra/Matrix/Reindex.lean Modified Mathlib/LinearAlgebra/Matrix/SchurComplement.lean Modified Mathlib/LinearAlgebra/Matrix/SesquilinearForm.lean Modified Mathlib/LinearAlgebra/Matrix/SpecialLinearGroup.lean +/- theorem Matrix.SpecialLinearGroup.fin_two_exists_eq_mk_of_apply_zero_one_eq_zero Modified Mathlib/LinearAlgebra/Matrix/Spectrum.lean Modified Mathlib/LinearAlgebra/Matrix/Symmetric.lean Modified Mathlib/LinearAlgebra/Matrix/ToLin.lean Modified Mathlib/LinearAlgebra/Matrix/ToLinearEquiv.lean +/- theorem Matrix.exists_mulVec_eq_zero_iff' +/- theorem Matrix.exists_mulVec_eq_zero_iff +/- theorem Matrix.exists_mulVec_eq_zero_iff_aux +/- theorem Matrix.exists_vecMul_eq_zero_iff +/- theorem Matrix.nondegenerate_iff_det_ne_zero Modified Mathlib/LinearAlgebra/Matrix/Trace.lean Modified Mathlib/LinearAlgebra/Matrix/Transvection.lean Modified Mathlib/LinearAlgebra/Matrix/ZPow.lean Modified Mathlib/LinearAlgebra/Multilinear/Basic.lean +/- def MultilinearMap.domDomCongrLinearEquiv' +/- theorem MultilinearMap.map_update_sum +/- def MultilinearMap.pi +/- theorem MultilinearMap.sum_apply Modified Mathlib/LinearAlgebra/Multilinear/Basis.lean +/- theorem Basis.ext_multilinear +/- theorem Basis.ext_multilinear_fin Modified Mathlib/LinearAlgebra/Multilinear/FiniteDimensional.lean Modified Mathlib/LinearAlgebra/Multilinear/TensorProduct.lean Modified Mathlib/LinearAlgebra/Orientation.lean Modified Mathlib/LinearAlgebra/PerfectPairing.lean Modified Mathlib/LinearAlgebra/Pi.lean +/- def LinearEquiv.funUnique +/- theorem LinearEquiv.funUnique_apply +/- def LinearEquiv.piOptionEquivProd +/- def LinearEquiv.sumArrowLequivProdArrow +/- theorem LinearMap.lsum_single Modified Mathlib/LinearAlgebra/PiTensorProduct.lean Modified Mathlib/LinearAlgebra/Prod.lean +/- def LinearEquiv.prodComm +/- theorem LinearMap.ker_coprod_of_disjoint_range +/- theorem LinearMap.ker_prod_ker_le_ker_coprod Modified Mathlib/LinearAlgebra/Projection.lean +/- structure LinearMap.IsProj +/- theorem LinearMap.ofIsCompl_smul Modified Mathlib/LinearAlgebra/ProjectiveSpace/Basic.lean +/- theorem Projectivization.map_comp Modified Mathlib/LinearAlgebra/ProjectiveSpace/Independence.lean Modified Mathlib/LinearAlgebra/ProjectiveSpace/Subspace.lean Modified Mathlib/LinearAlgebra/QuadraticForm/Basic.lean +/- theorem BilinForm.toQuadraticForm_sum +/- def LinearMap.compQuadraticForm +/- theorem QuadraticForm.coeFn_sum +/- theorem QuadraticForm.polar_comp +/- theorem QuadraticForm.sum_apply Modified Mathlib/LinearAlgebra/QuadraticForm/Complex.lean +/- theorem QuadraticForm.complex_equivalent +/- theorem QuadraticForm.equivalent_sum_squares Modified Mathlib/LinearAlgebra/QuadraticForm/IsometryEquiv.lean Modified Mathlib/LinearAlgebra/QuadraticForm/Prod.lean Modified Mathlib/LinearAlgebra/QuadraticForm/Real.lean +/- theorem QuadraticForm.equivalent_one_neg_one_weighted_sum_squared +/- theorem QuadraticForm.equivalent_one_zero_neg_one_weighted_sum_squared Modified Mathlib/LinearAlgebra/Quotient.lean +/- def Submodule.Quotient.equiv +/- theorem Submodule.Quotient.equiv_symm +/- theorem Submodule.Quotient.equiv_trans +/- theorem Submodule.mapQ_comp Modified Mathlib/LinearAlgebra/QuotientPi.lean Modified Mathlib/LinearAlgebra/Ray.lean +/- theorem Function.Injective.sameRay_map_iff +/- theorem RayVector.coe_neg +/- def RayVector +/- theorem SameRay.smul Modified Mathlib/LinearAlgebra/SModEq.lean +/- theorem SModEq.eval Modified Mathlib/LinearAlgebra/SesquilinearForm.lean Modified Mathlib/LinearAlgebra/Span.lean +/- theorem LinearMap.ext_on_range +/- theorem Submodule.disjoint_span_singleton' +/- theorem Submodule.disjoint_span_singleton +/- theorem Submodule.iSup_eq_span +/- theorem Submodule.iSup_induction' +/- theorem Submodule.iSup_induction +/- theorem Submodule.iSup_span +/- theorem Submodule.iSup_toAddSubmonoid +/- theorem Submodule.mem_iSup +/- theorem Submodule.span_attach_biUnion +/- theorem Submodule.span_iUnion₂ +/- theorem Submodule.span_int_eq +/- theorem Submodule.span_int_eq_addSubgroup_closure +/- theorem Submodule.span_range_eq_iSup +/- theorem Submodule.span_singleton_eq_span_singleton +/- theorem Submodule.sup_toAddSubgroup Modified Mathlib/LinearAlgebra/StdBasis.lean Modified Mathlib/LinearAlgebra/SymplecticGroup.lean Modified Mathlib/LinearAlgebra/TensorAlgebra/Basic.lean +/- theorem TensorAlgebra.hom_ext +/- def TensorAlgebra.lift +/- theorem TensorAlgebra.lift_comp_ι +/- theorem TensorAlgebra.lift_unique +/- theorem TensorAlgebra.lift_ι_apply +/- theorem TensorAlgebra.ι_comp_lift Modified Mathlib/LinearAlgebra/TensorAlgebra/Grading.lean Modified Mathlib/LinearAlgebra/TensorAlgebra/ToTensorPower.lean Modified Mathlib/LinearAlgebra/TensorPower.lean +/- theorem PiTensorProduct.gradedMonoid_eq_of_reindex_cast +/- def TensorPower Modified Mathlib/LinearAlgebra/TensorProduct.lean +/- def TensorProduct.SMul.aux +/- theorem TensorProduct.SMul.aux_of +/- theorem TensorProduct.sum_tmul +/- theorem TensorProduct.tmul_sum Modified Mathlib/LinearAlgebra/TensorProduct/Matrix.lean Modified Mathlib/LinearAlgebra/TensorProductBasis.lean Modified Mathlib/LinearAlgebra/Trace.lean Modified Mathlib/LinearAlgebra/Vandermonde.lean +/- theorem Matrix.eq_zero_of_forall_index_sum_mul_pow_eq_zero +/- theorem Matrix.eq_zero_of_forall_index_sum_pow_mul_eq_zero +/- theorem Matrix.eq_zero_of_forall_pow_sum_mul_pow_eq_zero Modified Mathlib/Logic/Basic.lean +/- def Classical.choice_of_byContradiction' +/- theorem Classical.some_spec₂ +/- theorem ExistsUnique.elim₂ +/- theorem ExistsUnique.exists₂ +/- theorem ExistsUnique.intro₂ +/- theorem ExistsUnique.unique₂ +/- def Function.swap₂ +/- theorem PLift.down_inj +/- theorem PLift.down_injective +/- theorem congr_arg_heq +/- theorem exists₂_comm +/- theorem forall₂_swap +/- theorem forall₂_true_iff +/- theorem forall₃_true_iff +/- theorem heq_rec_iff_heq +/- def hidden +/- theorem imp_forall_iff +/- theorem ne_and_eq_iff_right +/- theorem ne_of_apply_ne +/- theorem rec_heq_iff_heq +/- theorem rec_heq_of_heq Modified Mathlib/Logic/Denumerable.lean +/- def Denumerable.ofEncodableOfInfinite +/- theorem nonempty_denumerable +/- theorem nonempty_denumerable_iff Modified Mathlib/Logic/Embedding/Basic.lean +/- def Equiv.embeddingCongr +/- theorem Equiv.embeddingCongr_apply_trans +/- theorem Equiv.embeddingCongr_refl +/- theorem Equiv.embeddingCongr_symm +/- theorem Equiv.embeddingCongr_trans +/- theorem Equiv.refl_toEmbedding +/- def Equiv.subtypeInjectiveEquivEmbedding +/- theorem Equiv.trans_toEmbedding +/- theorem Function.Embedding.coe_prodMap +/- theorem Function.Embedding.equiv_symm_toEmbedding_trans_toEmbedding +/- theorem Function.Embedding.equiv_toEmbedding_trans_symm_toEmbedding +/- def Function.Embedding.inl +/- def Function.Embedding.inr +/- theorem Function.Embedding.mk_coe +/- def Function.Embedding.piCongrRight +/- def Function.Embedding.pprodMap +/- def Function.Embedding.prodMap +/- def Function.Embedding.punit +/- def Function.Embedding.sumMap +/- theorem Function.Embedding.swap_apply +/- theorem Function.Embedding.swap_comp +/- structure Function.Embedding Modified Mathlib/Logic/Embedding/Set.lean Modified Mathlib/Logic/Encodable/Basic.lean +/- theorem Encodable.axiom_of_choice +/- def Encodable.decidableRangeEncode +/- def Encodable.equivRangeEncode +/- theorem Encodable.skolem +/- theorem Encodable.surjective_decode_iget +/- def ULower +/- theorem nonempty_encodable Modified Mathlib/Logic/Encodable/Lattice.lean Modified Mathlib/Logic/Equiv/Array.lean +/- def Equiv.arrayEquivList Modified Mathlib/Logic/Equiv/Basic.lean +/- def Equiv.arrowProdEquivProdArrow +/- theorem Equiv.coe_sigmaUnique +/- def Equiv.funSplitAt +/- def Equiv.piComm +/- theorem Equiv.piComm_symm +/- def Equiv.piCongrLeft' +/- def Equiv.piCongrRight +/- def Equiv.piEquivPiSubtypeProd +/- def Equiv.piEquivSubtypeSigma +/- def Equiv.piOptionEquivProd +/- def Equiv.piSplitAt +/- def Equiv.prodProdProdComm +/- theorem Equiv.prodProdProdComm_symm +/- def Equiv.sigmaFiberEquiv +/- def Equiv.sigmaProdDistrib +/- def Equiv.sigmaSubtypeFiberEquiv +/- def Equiv.sigmaSubtypeFiberEquivSubtype +/- def Equiv.sigmaSumDistrib +/- def Equiv.sigmaUnique +/- theorem Equiv.sigmaUnique_apply +/- theorem Equiv.sigmaUnique_symm_apply +/- def Equiv.sumArrowEquivProdArrow +/- def Equiv.sumCompl +/- theorem Function.piCongrLeft'_symm_update +/- theorem Function.piCongrLeft'_update Modified Mathlib/Logic/Equiv/Defs.lean +/- theorem Equiv.Perm.coe_subsingleton +/- def Equiv.Perm +/- def Equiv.arrowCongr' +/- theorem Equiv.arrowCongr'_refl +/- def Equiv.arrowCongr +/- theorem Equiv.arrowCongr_comp +/- theorem Equiv.arrowCongr_refl +/- def Equiv.arrowPUnitEquivPUnit +/- def Equiv.arrowPUnitOfIsEmpty +/- def Equiv.emptyArrowEquivPUnit +/- def Equiv.equivOfIsEmpty +/- def Equiv.falseArrowEquivPUnit +/- def Equiv.pemptyArrowEquivPUnit +/- def Equiv.piSubsingleton +/- def Equiv.psigmaCongrRight +/- theorem Equiv.psigmaCongrRight_refl +/- theorem Equiv.psigmaCongrRight_symm +/- theorem Equiv.psigmaCongrRight_trans +/- def Equiv.psigmaEquivSigma +/- def Equiv.psigmaEquivSigmaPLift +/- def Equiv.punitArrowEquiv +/- def Equiv.sigmaAssoc +/- def Equiv.sigmaCongrRight +/- theorem Equiv.sigmaCongrRight_refl +/- theorem Equiv.sigmaCongrRight_symm +/- theorem Equiv.sigmaCongrRight_trans +/- def Equiv.sigmaEquivProd +/- def Equiv.trueArrowEquiv +/- structure Equiv Modified Mathlib/Logic/Equiv/Embedding.lean +/- def Equiv.codRestrict +/- def Equiv.prodEmbeddingDisjointEquivSigmaEmbeddingRestricted +/- def Equiv.sumEmbeddingEquivProdEmbeddingDisjoint +/- def Equiv.sumEmbeddingEquivSigmaEmbeddingRestricted +/- def Equiv.uniqueEmbeddingEquivResult Modified Mathlib/Logic/Equiv/Fin.lean +/- theorem Fin.snoc_eq_cons_rotate +/- def OrderIso.finTwoArrowIso +/- def finTwoArrowEquiv Modified Mathlib/Logic/Equiv/Fintype.lean Modified Mathlib/Logic/Equiv/List.lean +/- def Encodable.fintypeArrow +/- def Encodable.fintypePi +/- def Equiv.listEquivSelfOfEquivNat +/- def Fintype.truncEncodable Modified Mathlib/Logic/Equiv/LocalEquiv.lean +/- theorem LocalEquiv.prod_trans +/- structure LocalEquiv Modified Mathlib/Logic/Equiv/Nat.lean Modified Mathlib/Logic/Equiv/Option.lean Modified Mathlib/Logic/Equiv/Set.lean +/- def Equiv.Set.rangeInl +/- theorem Equiv.Set.rangeInl_apply_inl +/- def Equiv.Set.rangeInr +/- theorem Equiv.Set.rangeInr_apply_inr +/- theorem Equiv.Set.sumCompl_symm_apply +/- theorem Equiv.Set.sumCompl_symm_apply_compl +/- def Equiv.image +/- theorem Equiv.ofLeftInverse'_eq_ofInjective +/- theorem Equiv.ofLeftInverse_eq_ofInjective +/- theorem Equiv.preimage_piEquivPiSubtypeProd_symm_pi +/- theorem Equiv.range_eq_univ +/- def Equiv.setCongr +/- def Equiv.setProdEquivSigma +/- theorem dite_comp_equiv_update Modified Mathlib/Logic/Equiv/TransferInstance.lean +/- theorem Equiv.pow_def +/- theorem Equiv.smul_def Modified Mathlib/Logic/Function/Basic.lean +/- theorem Function.LeftInverse.cast_eq +/- theorem Function.LeftInverse.eq_rec_eq +/- theorem Function.LeftInverse.eq_rec_on_eq +/- theorem Function.apply_update +/- theorem Function.apply_update₂ +/- theorem Function.cantor_injective +/- theorem Function.comp_update +/- def Function.eval +/- theorem Function.eval_apply +/- theorem Function.funext_iff +/- theorem Function.ne_iff +/- theorem Function.update_apply +/- theorem Function.update_comm +/- theorem Function.update_comp_eq_of_forall_ne +/- theorem Function.update_comp_eq_of_injective +/- theorem Function.update_idem +/- def Set.SeparatesPoints +/- theorem eq_rec_inj +/- theorem eq_rec_on_bijective Modified Mathlib/Logic/Function/Conjugate.lean Modified Mathlib/Logic/Function/Iterate.lean +/- def Function.Iterate.rec +/- theorem Function.Iterate.rec_zero Modified Mathlib/Logic/Hydra.lean Modified Mathlib/Logic/IsEmpty.lean +/- def isEmptyElim +/- theorem isEmpty_pi +/- theorem isEmpty_prod +/- theorem isEmpty_psigma +/- theorem isEmpty_sigma Modified Mathlib/Logic/Lemmas.lean Modified Mathlib/Logic/Nonempty.lean +/- theorem Classical.nonempty_pi +/- theorem Nonempty.elim_to_inhabited +/- theorem exists_true_iff_nonempty +/- theorem nonempty_psigma +/- theorem not_nonempty_iff_imp_false +/- theorem subsingleton_of_not_nonempty Modified Mathlib/Logic/Nontrivial.lean +/- theorem exists_pair_lt +/- theorem exists_pair_ne +/- theorem false_of_nontrivial_of_subsingleton +/- theorem subsingleton_or_nontrivial Modified Mathlib/Logic/Pairwise.lean Modified Mathlib/Logic/Relation.lean Modified Mathlib/Logic/Relator.lean Modified Mathlib/Logic/Small/Basic.lean +/- theorem small_congr +/- theorem small_map Modified Mathlib/Logic/Unique.lean +/- def Function.Surjective.uniqueOfSurjectiveConst +/- def uniqueOfSubsingleton Modified Mathlib/MeasureTheory/Category/MeasCat.lean Modified Mathlib/MeasureTheory/Constructions/BorelSpace/Basic.lean +/- theorem AEMeasurable.nnreal_tsum +/- theorem Dense.borel_eq_generateFrom_Ico_mem +/- theorem Dense.borel_eq_generateFrom_Ico_mem_aux +/- theorem Dense.borel_eq_generateFrom_Ioc_mem +/- theorem Dense.borel_eq_generateFrom_Ioc_mem_aux +/- theorem MeasureTheory.Measure.ext_of_Ici +/- theorem MeasureTheory.Measure.ext_of_Ico' +/- theorem MeasureTheory.Measure.ext_of_Ico +/- theorem MeasureTheory.Measure.ext_of_Ico_finite +/- theorem MeasureTheory.Measure.ext_of_Iic +/- theorem MeasureTheory.Measure.ext_of_Ioc' +/- theorem MeasureTheory.Measure.ext_of_Ioc +/- theorem MeasureTheory.Measure.ext_of_Ioc_finite +/- theorem borel_eq_generateFrom_Ico +/- theorem borel_eq_generateFrom_Ioc +/- theorem generateFrom_Ico_mem_le_borel +/- theorem measurable_ciInf +/- theorem measurable_ciSup +/- theorem pi_le_borel_pi Modified Mathlib/MeasureTheory/Constructions/BorelSpace/Complex.lean Modified Mathlib/MeasureTheory/Constructions/BorelSpace/ContinuousLinearMap.lean Modified Mathlib/MeasureTheory/Constructions/BorelSpace/Metrizable.lean Modified Mathlib/MeasureTheory/Constructions/Pi.lean +/- theorem MeasureTheory.Measure.ae_eq_pi +/- theorem MeasureTheory.Measure.ae_le_pi +/- theorem MeasureTheory.Measure.pi_of_empty +/- theorem MeasureTheory.volume_preserving_piEquivPiSubtypeProd Modified Mathlib/MeasureTheory/Constructions/Polish.lean +/- theorem Continuous.map_borel_eq +/- theorem Continuous.map_eq_borel +/- theorem IsClosed.measurableSet_image_of_continuousOn_injOn +/- theorem IsOpen.analyticSet_image +/- theorem Measurable.exists_continuous +/- theorem MeasurableSet.analyticSet +/- theorem MeasurableSet.analyticSet_image +/- theorem MeasureTheory.AnalyticSet.image_of_continuous +/- theorem MeasureTheory.AnalyticSet.image_of_continuousOn +/- theorem MeasureTheory.MeasurablySeparable.iUnion +/- def MeasureTheory.MeasurablySeparable +/- theorem MeasureTheory.analyticSet_range_of_polishSpace +/- theorem MeasureTheory.measurableSet_range_of_continuous_injective Modified Mathlib/MeasureTheory/Constructions/Prod/Basic.lean +/- theorem MeasurableEmbedding.prod_mk +/- theorem MeasureTheory.Measure.prod_sum +/- theorem MeasureTheory.Measure.sum_prod Modified Mathlib/MeasureTheory/Constructions/Prod/Integral.lean +/- theorem MeasureTheory.AEStronglyMeasurable.prod_mk_left +/- theorem MeasureTheory.integrable_prod_mul +/- theorem MeasureTheory.integral_prod_mul +/- theorem MeasureTheory.set_integral_prod_mul Modified Mathlib/MeasureTheory/Covering/Besicovitch.lean +/- structure Besicovitch.BallPackage +/- structure Besicovitch.SatelliteConfig +/- structure Besicovitch.TauPackage +/- def Besicovitch.unitBallPackage Modified Mathlib/MeasureTheory/Covering/BesicovitchVectorSpace.lean +/- def Besicovitch.multiplicity Modified Mathlib/MeasureTheory/Covering/DensityTheorem.lean +/- theorem IsUnifLocDoublingMeasure.tendsto_closedBall_filterAt Modified Mathlib/MeasureTheory/Covering/Differentiation.lean Modified Mathlib/MeasureTheory/Covering/LiminfLimsup.lean Modified Mathlib/MeasureTheory/Covering/Vitali.lean Modified Mathlib/MeasureTheory/Covering/VitaliFamily.lean +/- theorem VitaliFamily.tendsto_filterAt_iff Modified Mathlib/MeasureTheory/Decomposition/Jordan.lean +/- structure MeasureTheory.JordanDecomposition +/- def MeasureTheory.SignedMeasure.toJordanDecompositionEquiv Modified Mathlib/MeasureTheory/Decomposition/Lebesgue.lean +/- theorem MeasureTheory.Measure.LebesgueDecomposition.iSup_le_le +/- theorem MeasureTheory.Measure.LebesgueDecomposition.iSup_monotone' +/- theorem MeasureTheory.Measure.LebesgueDecomposition.iSup_monotone Modified Mathlib/MeasureTheory/Decomposition/RadonNikodym.lean Modified Mathlib/MeasureTheory/Decomposition/SignedHahn.lean Modified Mathlib/MeasureTheory/Decomposition/UnsignedHahn.lean Modified Mathlib/MeasureTheory/Function/AEEqFun.lean +/- theorem MeasureTheory.AEEqFun.induction_on₂ +/- theorem MeasureTheory.AEEqFun.induction_on₃ +/- def MeasureTheory.AEEqFun.mk Modified Mathlib/MeasureTheory/Function/AEEqOfIntegral.lean Modified Mathlib/MeasureTheory/Function/AEMeasurableOrder.lean +/- theorem ENNReal.aemeasurable_of_exist_almost_disjoint_supersets +/- theorem MeasureTheory.aemeasurable_of_exist_almost_disjoint_supersets Modified Mathlib/MeasureTheory/Function/AEMeasurableSequence.lean Modified Mathlib/MeasureTheory/Function/ConditionalExpectation/AEMeasurable.lean +/- theorem MeasureTheory.AEStronglyMeasurable.comp_ae_measurable' Modified Mathlib/MeasureTheory/Function/ConditionalExpectation/Basic.lean +/- theorem MeasureTheory.condexp_finset_sum Modified Mathlib/MeasureTheory/Function/ConditionalExpectation/CondexpL1.lean Modified Mathlib/MeasureTheory/Function/ConditionalExpectation/CondexpL2.lean Modified Mathlib/MeasureTheory/Function/ConditionalExpectation/Indicator.lean Modified Mathlib/MeasureTheory/Function/ConditionalExpectation/Real.lean +/- theorem MeasureTheory.Integrable.uniformIntegrable_condexp Modified Mathlib/MeasureTheory/Function/ConditionalExpectation/Unique.lean Modified Mathlib/MeasureTheory/Function/ContinuousMapDense.lean Modified Mathlib/MeasureTheory/Function/ConvergenceInMeasure.lean Modified Mathlib/MeasureTheory/Function/Egorov.lean Modified Mathlib/MeasureTheory/Function/EssSup.lean +/- theorem essSup_mono_measure' Modified Mathlib/MeasureTheory/Function/Floor.lean Modified Mathlib/MeasureTheory/Function/Jacobian.lean +/- theorem MeasureTheory.det_one_smulRight Modified Mathlib/MeasureTheory/Function/L1Space.lean +/- theorem MeasureTheory.Integrable.bdd_mul +/- theorem MeasureTheory.Integrable.essSup_smul +/- theorem MeasureTheory.Integrable.smul_essSup Modified Mathlib/MeasureTheory/Function/L2Space.lean Modified Mathlib/MeasureTheory/Function/LocallyIntegrable.lean +/- theorem MeasureTheory.LocallyIntegrableOn.continuousOn_smul +/- theorem MeasureTheory.LocallyIntegrableOn.smul_continuousOn Modified Mathlib/MeasureTheory/Function/LpOrder.lean Modified Mathlib/MeasureTheory/Function/LpSeminorm.lean Modified Mathlib/MeasureTheory/Function/LpSpace.lean +/- theorem ContinuousMap.hasSum_of_hasSum_Lp +/- theorem MeasureTheory.AEEqFun.compMeasurePreserving_mem_Lp +/- theorem MeasureTheory.Lp.norm_constL_le +/- def MeasureTheory.Lp +/- theorem MeasureTheory.Memℒp.snorm_mk_lt_top +/- theorem MeasureTheory.snorm_aeeqFun +/- theorem MeasureTheory.snorm_indicator_le Modified Mathlib/MeasureTheory/Function/LpSpace/DomAct/Basic.lean Modified Mathlib/MeasureTheory/Function/SimpleFunc.lean Modified Mathlib/MeasureTheory/Function/SimpleFuncDense.lean +/- theorem MeasureTheory.SimpleFunc.approxOn_comp Modified Mathlib/MeasureTheory/Function/SimpleFuncDenseLp.lean +/- theorem MeasureTheory.Memℒp.exists_simpleFunc_snorm_sub_lt Modified Mathlib/MeasureTheory/Function/SpecialFunctions/Arctan.lean Modified Mathlib/MeasureTheory/Function/SpecialFunctions/Basic.lean Modified Mathlib/MeasureTheory/Function/SpecialFunctions/Inner.lean Modified Mathlib/MeasureTheory/Function/SpecialFunctions/IsROrC.lean Modified Mathlib/MeasureTheory/Function/StronglyMeasurable/Basic.lean +/- theorem Finset.aestronglyMeasurable_prod' +/- theorem Finset.aestronglyMeasurable_prod +/- theorem Finset.stronglyMeasurable_prod' +/- theorem Finset.stronglyMeasurable_prod +/- theorem MeasurableEmbedding.aestronglyMeasurable_map_iff +/- theorem MeasureTheory.AEStronglyMeasurable.comp_aemeasurable +/- theorem MeasureTheory.AEStronglyMeasurable.comp_measurable +/- theorem MeasureTheory.AEStronglyMeasurable.comp_measurePreserving +/- theorem MeasureTheory.AEStronglyMeasurable.comp_quasiMeasurePreserving +/- theorem MeasureTheory.AEStronglyMeasurable.smul_measure +/- theorem MeasureTheory.MeasurePreserving.aestronglyMeasurable_comp_iff +/- theorem MeasureTheory.measurable_uncurry_of_continuous_of_measurable +/- theorem MeasureTheory.stronglyMeasurable_uncurry_of_continuous_of_stronglyMeasurable +/- theorem aestronglyMeasurable_id +/- theorem aestronglyMeasurable_of_tendsto_ae +/- theorem aestronglyMeasurable_withDensity_iff +/- theorem stronglyMeasurable_of_tendsto Modified Mathlib/MeasureTheory/Function/StronglyMeasurable/Inner.lean Modified Mathlib/MeasureTheory/Function/StronglyMeasurable/Lp.lean Modified Mathlib/MeasureTheory/Function/UniformIntegrable.lean Modified Mathlib/MeasureTheory/Group/Action.lean Modified Mathlib/MeasureTheory/Group/Arithmetic.lean +/- theorem aemeasurable_inv_iff +/- theorem aemeasurable_inv_iff₀ +/- theorem measurable_div_const' +/- theorem measurable_inv_iff +/- theorem measurable_inv_iff₀ +/- theorem measurable_mul_op +/- theorem measurable_mul_unop Modified Mathlib/MeasureTheory/Group/FundamentalDomain.lean +/- structure MeasureTheory.IsAddFundamentalDomain +/- theorem MeasureTheory.IsFundamentalDomain.smul_of_comm +/- structure MeasureTheory.IsFundamentalDomain Modified Mathlib/MeasureTheory/Group/GeometryOfNumbers.lean Modified Mathlib/MeasureTheory/Group/Integration.lean Modified Mathlib/MeasureTheory/Group/MeasurableEquiv.lean Modified Mathlib/MeasureTheory/Group/Measure.lean +/- theorem MeasureTheory.Measure.isHaarMeasure_map +/- theorem MeasureTheory.MeasurePreserving.mul_left +/- theorem MeasureTheory.MeasurePreserving.mul_right +/- theorem MeasureTheory.isMulLeftInvariant_map Modified Mathlib/MeasureTheory/Group/Pointwise.lean +/- theorem MeasurableSet.const_smul +/- theorem MeasurableSet.const_smul_of_ne_zero +/- theorem MeasurableSet.const_smul₀ Modified Mathlib/MeasureTheory/Group/Prod.lean Modified Mathlib/MeasureTheory/Integral/Average.lean Modified Mathlib/MeasureTheory/Integral/Bochner.lean +/- theorem MeasureTheory.integral_div +/- theorem MeasureTheory.integral_mul_left +/- theorem MeasureTheory.integral_mul_right +/- theorem MeasureTheory.integral_norm_eq_lintegral_nnnorm +/- theorem MeasureTheory.ofReal_integral_norm_eq_lintegral_nnnorm Modified Mathlib/MeasureTheory/Integral/CircleIntegral.lean +/- theorem circleIntegral.integral_smul Modified Mathlib/MeasureTheory/Integral/CircleTransform.lean Modified Mathlib/MeasureTheory/Integral/DivergenceTheorem.lean +/- theorem MeasureTheory.integral_divergence_of_hasFDerivWithinAt_off_countable_of_equiv Modified Mathlib/MeasureTheory/Integral/FundThmCalculus.lean Modified Mathlib/MeasureTheory/Integral/IntegrableOn.lean +/- theorem ContinuousOn.stronglyMeasurableAtFilter_nhdsWithin Modified Mathlib/MeasureTheory/Integral/IntegralEqImproper.lean +/- theorem MeasureTheory.AECover.ae_tendsto_indicator +/- theorem MeasureTheory.AECover.aemeasurable +/- theorem MeasureTheory.AECover.aestronglyMeasurable +/- theorem MeasureTheory.AECover.comp_tendsto Modified Mathlib/MeasureTheory/Integral/IntervalAverage.lean Modified Mathlib/MeasureTheory/Integral/IntervalIntegral.lean +/- theorem IntervalIntegrable.div_const +/- theorem intervalIntegral.integral_const_mul +/- theorem intervalIntegral.integral_div +/- theorem intervalIntegral.integral_mul_const Modified Mathlib/MeasureTheory/Integral/Layercake.lean +/- theorem Measure.countable_meas_le_ne_meas_lt +/- theorem Measure.meas_le_ae_eq_meas_lt +/- theorem Measure.meas_le_ne_meas_lt_subset_meas_pos Modified Mathlib/MeasureTheory/Integral/Lebesgue.lean +/- theorem IsFiniteMeasure.lintegral_lt_top_of_bounded_to_eNNReal +/- theorem MeasureTheory.iSup_lintegral_le +/- theorem MeasureTheory.iSup₂_lintegral_le +/- theorem MeasureTheory.le_iInf_lintegral +/- theorem MeasureTheory.le_iInf₂_lintegral +/- theorem MeasureTheory.withDensity_sum Modified Mathlib/MeasureTheory/Integral/LebesgueNormedSpace.lean +/- theorem aemeasurable_withDensity_iff Modified Mathlib/MeasureTheory/Integral/MeanInequalities.lean Modified Mathlib/MeasureTheory/Integral/PeakFunction.lean +/- theorem Set.disjoint_sdiff_inter Modified Mathlib/MeasureTheory/Integral/Periodic.lean Modified Mathlib/MeasureTheory/Integral/RieszMarkovKakutani.lean Modified Mathlib/MeasureTheory/Integral/SetIntegral.lean +/- theorem ContinuousLinearMap.integral_apply +/- theorem MeasureTheory.hasSum_integral_iUnion +/- theorem MeasureTheory.hasSum_integral_iUnion_ae +/- theorem MeasureTheory.integral_finset_biUnion +/- theorem MeasureTheory.integral_fintype_iUnion +/- theorem MeasureTheory.integral_iUnion +/- theorem MeasureTheory.integral_iUnion_ae +/- theorem MeasureTheory.ofReal_set_integral_one +/- theorem MeasureTheory.ofReal_set_integral_one_of_measure_ne_top +/- theorem MeasureTheory.tendsto_set_integral_of_monotone +/- theorem integral_smul_const Modified Mathlib/MeasureTheory/Integral/SetToL1.lean +/- theorem MeasureTheory.DominatedFinMeasAdditive.eq_zero +/- theorem MeasureTheory.DominatedFinMeasAdditive.eq_zero_of_measure_zero Modified Mathlib/MeasureTheory/Integral/TorusIntegral.lean +/- theorem torusIntegral_smul Modified Mathlib/MeasureTheory/Integral/VitaliCaratheodory.lean Modified Mathlib/MeasureTheory/Lattice.lean +/- theorem Finset.measurable_sup' Modified Mathlib/MeasureTheory/MeasurableSpace.lean +/- structure MeasurableEmbedding +/- def MeasurableEquiv.Set.univ +/- def MeasurableEquiv.funUnique +/- def MeasurableEquiv.ofUniqueOfUnique +/- def MeasurableEquiv.piFinSuccAboveEquiv +/- def MeasurableEquiv.piFinTwo +/- def MeasurableEquiv.refl +/- theorem MeasurableEquiv.symm_refl +/- structure MeasurableEquiv Modified Mathlib/MeasureTheory/MeasurableSpaceDef.lean +/- theorem MeasurableSpace.Top.measurable +/- structure MeasurableSpace Modified Mathlib/MeasureTheory/Measure/AEDisjoint.lean Modified Mathlib/MeasureTheory/Measure/AEMeasurable.lean Modified Mathlib/MeasureTheory/Measure/Complex.lean Modified Mathlib/MeasureTheory/Measure/Doubling.lean Modified Mathlib/MeasureTheory/Measure/FiniteMeasure.lean +/- theorem BoundedContinuousFunction.NNReal.coe_ennreal_comp_measurable +/- theorem Filter.Tendsto.mass +/- theorem MeasureTheory.FiniteMeasure.lintegral_lt_top_of_boundedContinuous_to_real +/- theorem MeasureTheory.FiniteMeasure.tendsto_iff_forall_integral_tendsto +/- theorem MeasureTheory.FiniteMeasure.tendsto_iff_forall_lintegral_tendsto +/- theorem MeasureTheory.FiniteMeasure.tendsto_iff_forall_testAgainstNN_tendsto +/- theorem MeasureTheory.FiniteMeasure.tendsto_iff_forall_toWeakDualBCNN_tendsto +/- theorem MeasureTheory.FiniteMeasure.tendsto_iff_weak_star_tendsto +/- theorem MeasureTheory.FiniteMeasure.tendsto_lintegral_nn_filter_of_le_const +/- theorem MeasureTheory.FiniteMeasure.tendsto_of_forall_integral_tendsto +/- theorem MeasureTheory.FiniteMeasure.tendsto_testAgainstNN_filter_of_le_const +/- theorem MeasureTheory.FiniteMeasure.tendsto_zero_of_tendsto_zero_mass +/- theorem MeasureTheory.FiniteMeasure.tendsto_zero_testAgainstNN_of_tendsto_zero_mass +/- def MeasureTheory.FiniteMeasure Modified Mathlib/MeasureTheory/Measure/GiryMonad.lean Modified Mathlib/MeasureTheory/Measure/Haar/Basic.lean +/- theorem MeasureTheory.Measure.MeasurePreserving.zpow Modified Mathlib/MeasureTheory/Measure/Haar/InnerProductSpace.lean Modified Mathlib/MeasureTheory/Measure/Haar/NormedSpace.lean +/- theorem MeasureTheory.Integrable.comp_smul +/- theorem MeasureTheory.integrable_comp_smul_iff Modified Mathlib/MeasureTheory/Measure/Haar/OfBasis.lean Modified Mathlib/MeasureTheory/Measure/Haar/Quotient.lean Modified Mathlib/MeasureTheory/Measure/Hausdorff.lean +/- theorem MeasureTheory.Measure.hausdorffMeasure_le_liminf_sum +/- theorem MeasureTheory.Measure.hausdorffMeasure_le_liminf_tsum +/- theorem MeasureTheory.Measure.hausdorffMeasure_smul₀ +/- theorem MeasureTheory.Measure.mkMetric_le_liminf_sum +/- theorem MeasureTheory.Measure.mkMetric_le_liminf_tsum +/- theorem MeasureTheory.hausdorffMeasure_measurePreserving_piFinTwo +/- theorem MeasureTheory.hausdorffMeasure_pi_real +/- theorem MeasureTheory.hausdorffMeasure_segment +/- theorem MeasureTheory.hausdorffMeasure_smul Modified Mathlib/MeasureTheory/Measure/Lebesgue/Basic.lean Modified Mathlib/MeasureTheory/Measure/Lebesgue/EqHaar.lean +/- theorem Basis.parallelepiped_basisFun +/- theorem MeasureTheory.Measure.addHaar_affineSubspace +/- theorem MeasureTheory.Measure.addHaar_ball_center +/- theorem MeasureTheory.Measure.addHaar_closedBall_center +/- theorem MeasureTheory.Measure.addHaar_eq_zero_of_disjoint_translates +/- theorem MeasureTheory.Measure.addHaar_eq_zero_of_disjoint_translates_aux +/- theorem MeasureTheory.Measure.addHaar_submodule +/- theorem MeasureTheory.Measure.map_linearMap_addHaar_pi_eq_smul_addHaar +/- theorem MeasureTheory.addHaarMeasure_eq_volume_pi +/- def TopologicalSpace.PositiveCompacts.piIcc01 Modified Mathlib/MeasureTheory/Measure/Lebesgue/Integral.lean +/- theorem Real.integrable_of_summable_norm_Icc +/- theorem integral_comp_neg_Iic +/- theorem integral_comp_neg_Ioi Modified Mathlib/MeasureTheory/Measure/MeasureSpace.lean +/- theorem Finset.measure_zero +/- theorem MeasureTheory.Measure.QuasiMeasurePreserving.smul_ae_eq_of_ae_eq +/- theorem MeasureTheory.Measure.countable_meas_level_set_pos +/- theorem MeasureTheory.Measure.countable_meas_pos_of_disjoint_iUnion +/- theorem MeasureTheory.Measure.countable_meas_pos_of_disjoint_of_meas_iUnion_ne_top +/- theorem MeasureTheory.Measure.finite_const_le_meas_of_disjoint_iUnion +/- theorem MeasureTheory.Measure.pairwise_aedisjoint_of_aedisjoint_forall_ne_one +/- theorem MeasureTheory.Measure.sum_comm +/- theorem MeasureTheory.tendsto_measure_biInter_gt +/- theorem MeasureTheory.tsum_meas_le_meas_iUnion_of_disjoint +/- theorem Set.Countable.ae_not_mem +/- theorem Set.Countable.measure_zero +/- theorem Set.Finite.measure_zero +/- theorem Set.Subsingleton.measure_zero Modified Mathlib/MeasureTheory/Measure/MeasureSpaceDef.lean +/- structure MeasureTheory.Measure +/- theorem MeasureTheory.ae_all_iff +/- theorem Set.mulIndicator_ae_eq_one Modified Mathlib/MeasureTheory/Measure/MutuallySingular.lean +/- theorem MeasureTheory.Measure.MutuallySingular.sum_left +/- theorem MeasureTheory.Measure.MutuallySingular.sum_right Modified Mathlib/MeasureTheory/Measure/NullMeasurable.lean +/- def MeasureTheory.NullMeasurableSpace Modified Mathlib/MeasureTheory/Measure/OpenPos.lean +/- theorem Metric.measure_closedBall_pos_iff Modified Mathlib/MeasureTheory/Measure/OuterMeasure.lean +/- theorem MeasureTheory.OuterMeasure.trim_smul +/- structure MeasureTheory.OuterMeasure +/- theorem MeasureTheory.extend_congr +/- theorem MeasureTheory.extend_top Modified Mathlib/MeasureTheory/Measure/Portmanteau.lean +/- theorem MeasureTheory.FiniteMeasure.limsup_measure_closed_le_of_tendsto +/- theorem MeasureTheory.ProbabilityMeasure.le_liminf_measure_open_of_tendsto +/- theorem MeasureTheory.ProbabilityMeasure.limsup_measure_closed_le_of_tendsto +/- theorem MeasureTheory.ProbabilityMeasure.tendsto_measure_of_null_frontier_of_tendsto' +/- theorem MeasureTheory.ProbabilityMeasure.tendsto_measure_of_null_frontier_of_tendsto +/- theorem MeasureTheory.le_measure_compl_liminf_of_limsup_measure_le +/- theorem MeasureTheory.le_measure_liminf_of_limsup_measure_compl_le +/- theorem MeasureTheory.limsup_measure_closed_le_iff_liminf_measure_open_ge +/- theorem MeasureTheory.limsup_measure_compl_le_of_le_liminf_measure +/- theorem MeasureTheory.limsup_measure_le_of_le_liminf_measure_compl +/- theorem MeasureTheory.measure_of_cont_bdd_of_tendsto_filter_indicator +/- theorem MeasureTheory.tendsto_lintegral_thickenedIndicator_of_isClosed +/- theorem MeasureTheory.tendsto_measure_of_le_liminf_measure_of_limsup_measure_le +/- theorem MeasureTheory.tendsto_measure_of_null_frontier Modified Mathlib/MeasureTheory/Measure/ProbabilityMeasure.lean +/- theorem MeasureTheory.FiniteMeasure.average_eq_integral_normalize +/- theorem MeasureTheory.FiniteMeasure.tendsto_normalize_iff_tendsto +/- theorem MeasureTheory.FiniteMeasure.tendsto_normalize_of_tendsto +/- theorem MeasureTheory.FiniteMeasure.tendsto_normalize_testAgainstNN_of_tendsto +/- theorem MeasureTheory.FiniteMeasure.tendsto_of_tendsto_normalize_testAgainstNN_of_tendsto_mass +/- theorem MeasureTheory.FiniteMeasure.tendsto_testAgainstNN_of_tendsto_normalize_testAgainstNN_of_tendsto_mass +/- theorem MeasureTheory.ProbabilityMeasure.tendsto_iff_forall_integral_tendsto +/- theorem MeasureTheory.ProbabilityMeasure.tendsto_iff_forall_lintegral_tendsto +/- theorem MeasureTheory.ProbabilityMeasure.tendsto_nhds_iff_toFiniteMeasure_tendsto_nhds +/- theorem MeasureTheory.ProbabilityMeasure.toFiniteMeasure_embedding +/- def MeasureTheory.ProbabilityMeasure Modified Mathlib/MeasureTheory/Measure/Regular.lean +/- theorem MeasureTheory.Measure.InnerRegular.isCompact_isClosed +/- theorem MeasureTheory.Measure.InnerRegular.of_pseudoEMetricSpace Modified Mathlib/MeasureTheory/Measure/Stieltjes.lean +/- theorem exists_seq_antitone_tendsto_atTop_atBot +/- theorem exists_seq_monotone_tendsto_atTop_atTop +/- theorem iSup_eq_iSup_subseq_of_antitone +/- theorem rightLim_eq_of_tendsto +/- theorem rightLim_eq_sInf Modified Mathlib/MeasureTheory/Measure/Sub.lean Modified Mathlib/MeasureTheory/Measure/VectorMeasure.lean +/- theorem MeasureTheory.VectorMeasure.AbsolutelyContinuous.neg_left +/- theorem MeasureTheory.VectorMeasure.AbsolutelyContinuous.neg_right +/- theorem MeasureTheory.VectorMeasure.AbsolutelyContinuous.smul +/- theorem MeasureTheory.VectorMeasure.AbsolutelyContinuous.sub +/- theorem MeasureTheory.VectorMeasure.MutuallySingular.neg_left +/- theorem MeasureTheory.VectorMeasure.MutuallySingular.neg_left_iff +/- theorem MeasureTheory.VectorMeasure.MutuallySingular.neg_right +/- theorem MeasureTheory.VectorMeasure.MutuallySingular.neg_right_iff +/- theorem MeasureTheory.VectorMeasure.MutuallySingular.smul_left +/- theorem MeasureTheory.VectorMeasure.MutuallySingular.smul_right +/- theorem MeasureTheory.VectorMeasure.of_diff +/- theorem MeasureTheory.VectorMeasure.of_iUnion_nonneg +/- theorem MeasureTheory.VectorMeasure.of_iUnion_nonpos +/- structure MeasureTheory.VectorMeasure Modified Mathlib/MeasureTheory/Measure/WithDensityVectorMeasure.lean +/- theorem MeasureTheory.withDensityᵥ_smul' +/- theorem MeasureTheory.withDensityᵥ_smul Modified Mathlib/MeasureTheory/PiSystem.lean +/- structure MeasurableSpace.DynkinSystem +/- theorem MeasurableSpace.isPiSystem_measurableSet Modified Mathlib/ModelTheory/Basic.lean +/- def FirstOrder.Language.Inhabited.trivialStructure Modified Mathlib/ModelTheory/Bundled.lean +/- def FirstOrder.Language.ElementarilyEquivalent.toModel Modified Mathlib/ModelTheory/Definability.lean +/- theorem Set.definable_finset_biInter +/- theorem Set.definable_finset_biUnion +/- theorem Set.definable_finset_inf +/- theorem Set.definable_finset_sup Modified Mathlib/ModelTheory/DirectLimit.lean +/- theorem FirstOrder.Language.DirectLimit.cg +/- theorem FirstOrder.Language.DirectLimit.comp_unify +/- theorem FirstOrder.Language.DirectLimit.exists_quotient_mk'_sigma_mk'_eq +/- theorem FirstOrder.Language.DirectLimit.exists_unify_eq +/- def FirstOrder.Language.DirectLimit.unify +/- theorem FirstOrder.Language.DirectLimit.unify_sigma_mk_self Modified Mathlib/ModelTheory/ElementaryMaps.lean +/- theorem FirstOrder.Language.ElementaryEmbedding.map_boundedFormula +/- theorem FirstOrder.Language.ElementaryEmbedding.map_formula +/- def FirstOrder.Language.ElementaryEmbedding.ofModelsElementaryDiagram +/- theorem FirstOrder.Language.Substructure.realize_boundedFormula_top +/- theorem FirstOrder.Language.Substructure.realize_formula_top +/- theorem FirstOrder.Language.realize_term_substructure Modified Mathlib/ModelTheory/Encoding.lean Modified Mathlib/ModelTheory/FinitelyGenerated.lean +/- theorem FirstOrder.Language.Equiv.cg_iff +/- theorem FirstOrder.Language.Equiv.fg_iff +/- theorem FirstOrder.Language.Structure.CG.map_of_surjective +/- theorem FirstOrder.Language.Structure.CG.range +/- theorem FirstOrder.Language.Structure.FG.map_of_surjective +/- theorem FirstOrder.Language.Structure.FG.range +/- theorem FirstOrder.Language.Substructure.CG.map +/- theorem FirstOrder.Language.Substructure.CG.of_map_embedding +/- theorem FirstOrder.Language.Substructure.FG.map +/- theorem FirstOrder.Language.Substructure.FG.of_map_embedding Modified Mathlib/ModelTheory/LanguageMap.lean +/- theorem FirstOrder.Language.LHom.map_onFunction +/- theorem FirstOrder.Language.LHom.map_onRelation +/- def FirstOrder.Language.LHom.reduct Modified Mathlib/ModelTheory/Quotients.lean +/- theorem FirstOrder.Language.Term.realize_quotient_mk' Modified Mathlib/ModelTheory/Satisfiability.lean +/- theorem FirstOrder.Language.Theory.IsComplete.realize_sentence_iff +/- theorem FirstOrder.Language.Theory.ModelsBoundedFormula.realize_sentence +/- theorem FirstOrder.Language.Theory.isSatisfiable_directed_union_iff +/- theorem FirstOrder.Language.Theory.isSatisfiable_iUnion_iff_isSatisfiable_iUnion_finset Modified Mathlib/ModelTheory/Semantics.lean +/- theorem FirstOrder.Language.Term.realize_restrictVarLeft Modified Mathlib/ModelTheory/Substructures.lean +/- theorem FirstOrder.Language.Substructure.coe_iInf +/- theorem FirstOrder.Language.Substructure.comap_iInf +/- theorem FirstOrder.Language.Substructure.map_iSup +/- theorem FirstOrder.Language.Substructure.mem_iInf +/- theorem FirstOrder.Language.Term.realize_mem Modified Mathlib/ModelTheory/Syntax.lean +/- def FirstOrder.Language.Term.restrictVarLeft Modified Mathlib/ModelTheory/Types.lean +/- theorem FirstOrder.Language.Theory.CompleteType.iInter_setOf_subset Modified Mathlib/ModelTheory/Ultraproducts.lean +/- theorem FirstOrder.Language.Ultraproduct.boundedFormula_realize_cast +/- theorem FirstOrder.Language.Ultraproduct.realize_formula_cast +/- theorem FirstOrder.Language.Ultraproduct.term_realize_cast Modified Mathlib/NumberTheory/ArithmeticFunction.lean +/- theorem Nat.ArithmeticFunction.IsMultiplicative.map_prod Modified Mathlib/NumberTheory/Basic.lean +/- theorem dvd_sub_pow_of_dvd_sub Modified Mathlib/NumberTheory/Bernoulli.lean Modified Mathlib/NumberTheory/BernoulliPolynomials.lean Modified Mathlib/NumberTheory/ClassNumber/AdmissibleAbsoluteValue.lean +/- theorem AbsoluteValue.IsAdmissible.exists_approx +/- theorem AbsoluteValue.IsAdmissible.exists_partition Modified Mathlib/NumberTheory/ClassNumber/AdmissibleCardPowDegree.lean Modified Mathlib/NumberTheory/ClassNumber/Finite.lean +/- theorem ClassGroup.norm_lt Modified Mathlib/NumberTheory/Cyclotomic/Basic.lean +/- def IsCyclotomicExtension.algEquiv +/- theorem IsCyclotomicExtension.equiv Modified Mathlib/NumberTheory/Cyclotomic/Gal.lean Modified Mathlib/NumberTheory/Cyclotomic/PrimitiveRoots.lean +/- theorem IsPrimitiveRoot.embeddingsEquivPrimitiveRoots_apply_coe +/- theorem IsPrimitiveRoot.norm_eq_one_of_linearly_ordered Modified Mathlib/NumberTheory/Dioph.lean Modified Mathlib/NumberTheory/Divisors.lean +/- theorem Nat.Prime.prod_divisors +/- theorem Nat.Prime.prod_properDivisors +/- theorem Nat.prod_div_divisors +/- theorem Nat.prod_divisorsAntidiagonal' +/- theorem Nat.prod_divisorsAntidiagonal +/- theorem Nat.prod_divisors_prime_pow +/- theorem Nat.prod_properDivisors_prime_pow Modified Mathlib/NumberTheory/FunctionField.lean +/- theorem functionField_iff Modified Mathlib/NumberTheory/KummerDedekind.lean Modified Mathlib/NumberTheory/LegendreSymbol/AddCharacter.lean Modified Mathlib/NumberTheory/LegendreSymbol/GaussSum.lean +/- theorem Char.card_pow_card +/- theorem FiniteField.two_pow_card Modified Mathlib/NumberTheory/LegendreSymbol/JacobiSymbol.lean +/- theorem jacobiSym.value_at Modified Mathlib/NumberTheory/LegendreSymbol/MulCharacter.lean Modified Mathlib/NumberTheory/LegendreSymbol/QuadraticChar/Basic.lean +/- def quadraticCharFun Modified Mathlib/NumberTheory/LegendreSymbol/QuadraticChar/GaussSum.lean +/- theorem quadraticChar_card_card Modified Mathlib/NumberTheory/Liouville/Basic.lean +/- theorem Liouville.exists_one_le_pow_mul_dist Modified Mathlib/NumberTheory/Modular.lean +/- theorem ModularGroup.bottom_row_coprime +/- theorem ModularGroup.bottom_row_surj Modified Mathlib/NumberTheory/ModularForms/Basic.lean Modified Mathlib/NumberTheory/ModularForms/SlashActions.lean +/- theorem SlashAction.neg_slash +/- theorem SlashAction.smul_slash_of_tower +/- def monoidHomSlashAction Modified Mathlib/NumberTheory/ModularForms/SlashInvariantForms.lean Modified Mathlib/NumberTheory/Multiplicity.lean Modified Mathlib/NumberTheory/NumberField/Basic.lean +/- theorem NumberField.RingOfIntegers.map_mem +/- theorem NumberField.isIntegral_of_mem_ringOfIntegers Modified Mathlib/NumberTheory/NumberField/CanonicalEmbedding.lean Modified Mathlib/NumberTheory/NumberField/ClassNumber.lean Modified Mathlib/NumberTheory/NumberField/Embeddings.lean Modified Mathlib/NumberTheory/NumberField/Norm.lean Modified Mathlib/NumberTheory/NumberField/Units.lean Modified Mathlib/NumberTheory/Padics/PadicNorm.lean +/- theorem padicNorm.sum_le' +/- theorem padicNorm.sum_le +/- theorem padicNorm.sum_lt' +/- theorem padicNorm.sum_lt Modified Mathlib/NumberTheory/Padics/RingHoms.lean +/- theorem PadicInt.toZModPow_eq_iff_ext Modified Mathlib/NumberTheory/PythagoreanTriples.lean Modified Mathlib/NumberTheory/RamificationInertia.lean +/- theorem Ideal.sum_ramification_inertia Modified Mathlib/NumberTheory/SumFourSquares.lean +/- theorem euler_four_squares Modified Mathlib/NumberTheory/WellApproximable.lean +/- theorem NormedAddCommGroup.exists_norm_nsmul_le +/- def approxOrderOf +/- theorem mem_approxOrderOf_iff +/- theorem mem_wellApproximable_iff +/- def wellApproximable Modified Mathlib/NumberTheory/Zsqrtd/GaussianInt.lean +/- theorem GaussianInt.nat_cast_natAbs_norm Modified Mathlib/Order/Antichain.lean Modified Mathlib/Order/Antisymmetrization.lean Modified Mathlib/Order/Atoms.lean Modified Mathlib/Order/Atoms/Finite.lean Modified Mathlib/Order/Basic.lean +/- theorem LinearOrder.toPartialOrder_injective +/- theorem OrderDual.Preorder.dual_dual +/- theorem OrderDual.instLinearOrder.dual_dual +/- theorem OrderDual.instPartialOrder.dual_dual +/- def OrderDual +/- theorem PartialOrder.toPreorder_injective +/- theorem Preorder.toLE_injective Modified Mathlib/Order/BooleanAlgebra.lean Modified Mathlib/Order/Bounded.lean Modified Mathlib/Order/BoundedOrder.lean Modified Mathlib/Order/Bounds/Basic.lean +/- theorem not_bddAbove_iff +/- theorem not_bddBelow_iff Modified Mathlib/Order/Category/BddDistLatCat.lean +/- theorem BddDistLatCat.coe_of +/- def BddDistLatCat.of Modified Mathlib/Order/Category/BddLatCat.lean +/- theorem BddLatCat.coe_of +/- def BddLatCat.of Modified Mathlib/Order/Category/BddOrdCat.lean +/- theorem BddOrdCat.coe_of +/- def BddOrdCat.of Modified Mathlib/Order/Category/BoolAlgCat.lean +/- theorem BoolAlgCat.coe_of +/- def BoolAlgCat.of Modified Mathlib/Order/Category/CompleteLatCat.lean +/- theorem CompleteLatCat.coe_of +/- def CompleteLatCat.of Modified Mathlib/Order/Category/DistLatCat.lean +/- theorem DistLatCat.coe_of +/- def DistLatCat.of Modified Mathlib/Order/Category/FinBddDistLatCat.lean +/- def FinBddDistLatCat.of' +/- def FinBddDistLatCat.of Modified Mathlib/Order/Category/FinBoolAlgCat.lean +/- theorem FinBoolAlgCat.coe_of +/- def FinBoolAlgCat.of Modified Mathlib/Order/Category/FinPartOrd.lean +/- theorem FinPartOrd.coe_of +/- def FinPartOrd.of Modified Mathlib/Order/Category/FrmCat.lean +/- theorem FrmCat.coe_of +/- def FrmCat.of Modified Mathlib/Order/Category/HeytAlgCat.lean +/- theorem HeytAlgCat.coe_of +/- def HeytAlgCat.of Modified Mathlib/Order/Category/LatCat.lean +/- theorem LatCat.coe_of +/- def LatCat.of Modified Mathlib/Order/Category/LinOrdCat.lean +/- theorem LinOrdCat.coe_of +/- def LinOrdCat.of Modified Mathlib/Order/Category/NonemptyFinLinOrdCat.lean +/- theorem NonemptyFinLinOrdCat.coe_of +/- def NonemptyFinLinOrdCat.of Modified Mathlib/Order/Category/OmegaCompletePartialOrder.lean +/- def ωCPO.HasEqualizers.equalizerι +/- theorem ωCPO.coe_of +/- def ωCPO.of Modified Mathlib/Order/Category/PartOrdCat.lean +/- theorem PartOrdCat.coe_of +/- def PartOrdCat.of Modified Mathlib/Order/Category/PreordCat.lean +/- theorem PreordCat.coe_of +/- def PreordCat.of Modified Mathlib/Order/Category/SemilatCat.lean +/- theorem SemilatInfCat.coe_of +/- def SemilatInfCat.of +/- theorem SemilatSupCat.coe_of +/- def SemilatSupCat.of Modified Mathlib/Order/Chain.lean +/- structure Flag Modified Mathlib/Order/Circular.lean +/- def LE.toBtw +/- def LT.toSBtw +/- def LinearOrder.toCircularOrder +/- def PartialOrder.toCircularPartialOrder +/- def Preorder.toCircularPreorder Modified Mathlib/Order/Closure.lean Modified Mathlib/Order/CompactlyGenerated.lean +/- theorem CompleteLattice.IsCompactElement.directed_sSup_lt_of_lt +/- theorem CompleteLattice.IsCompactElement.exists_finset_of_le_iSup +/- def CompleteLattice.IsCompactElement +/- theorem CompleteLattice.WellFounded.finite_of_independent +/- theorem CompleteLattice.finset_sup_compact_of_compact +/- theorem CompleteLattice.setIndependent_iUnion_of_directed Modified Mathlib/Order/Compare.lean Modified Mathlib/Order/CompleteBooleanAlgebra.lean +/- theorem biInf_sup_biInf +/- theorem biSup_inf_biSup +/- theorem iInf_sup_iInf +/- theorem iInf_sup_of_antitone +/- theorem iInf_sup_of_monotone +/- theorem iSup_inf_iSup +/- theorem iSup_inf_of_antitone +/- theorem iSup_inf_of_monotone Modified Mathlib/Order/CompleteLattice.lean +/- theorem binary_relation_sInf_iff +/- theorem binary_relation_sSup_iff +/- def completeLatticeOfCompleteSemilatticeInf +/- def completeLatticeOfCompleteSemilatticeSup +/- def completeLatticeOfInf +/- def completeLatticeOfSup +/- theorem iInf_apply +/- theorem iInf_le_iInf₂ +/- theorem iInf_sigma +/- theorem iInf₂_comm +/- theorem iSup_apply +/- theorem iSup_comp_le +/- theorem iSup_sigma +/- theorem iSup₂_comm +/- theorem iSup₂_le_iSup +/- theorem le_iInf_comp +/- theorem sInf_apply +/- theorem sSup_apply +/- theorem unary_relation_sInf_iff +/- theorem unary_relation_sSup_iff Modified Mathlib/Order/CompleteLatticeIntervals.lean Modified Mathlib/Order/Concept.lean Modified Mathlib/Order/ConditionallyCompleteLattice/Basic.lean +/- theorem Monotone.map_csInf +/- theorem MonotoneOn.map_csInf +/- theorem WithBot.ciSup_empty +/- theorem WithBot.csSup_empty +/- theorem WithTop.iInf_empty +/- theorem WithTop.iSup_coe_eq_top +/- theorem WithTop.iSup_coe_lt_top +/- theorem WithTop.isGLB_sInf' +/- theorem WithTop.isLUB_sSup' +/- theorem WithTop.sInf_empty +/- theorem ciSup_set_le_iff +/- def conditionallyCompleteLatticeOfLatticeOfsInf +/- def conditionallyCompleteLatticeOfLatticeOfsSup +/- def conditionallyCompleteLatticeOfsInf +/- def conditionallyCompleteLatticeOfsSup +/- theorem le_ciInf_set_iff Modified Mathlib/Order/ConditionallyCompleteLattice/Finset.lean Modified Mathlib/Order/ConditionallyCompleteLattice/Group.lean Modified Mathlib/Order/CountableDenseLinearOrder.lean +/- theorem Order.exists_between_finsets Modified Mathlib/Order/Cover.lean +/- theorem apply_covby_apply_iff +/- theorem apply_wcovby_apply_iff Modified Mathlib/Order/Directed.lean Modified Mathlib/Order/Disjoint.lean +/- def Complementeds Modified Mathlib/Order/Disjointed.lean +/- def disjointedRec +/- theorem disjointedRec_zero Modified Mathlib/Order/Extension/Well.lean +/- def WellOrderExtension Modified Mathlib/Order/Filter/Archimedean.lean Modified Mathlib/Order/Filter/AtTopBot.lean +/- theorem Antitone.piecewise_eventually_eq_iInter +/- theorem Filter.Tendsto.eventually_forall_ge_atTop +/- theorem Filter.Tendsto.eventually_forall_le_atBot +/- theorem Filter.eventually_iff_seq_eventually +/- theorem Filter.exists_seq_forall_of_frequently +/- theorem Filter.frequently_iff_seq_frequently +/- theorem Filter.prod_map_atBot_eq +/- theorem Filter.prod_map_atTop_eq +/- theorem Filter.strictMono_subseq_of_tendsto_atTop +/- theorem Filter.subseq_forall_of_frequently +/- theorem Filter.tendsto_of_subseq_tendsto +/- theorem Monotone.piecewise_eventually_eq_iUnion Modified Mathlib/Order/Filter/Bases.lean +/- structure Filter.CountableFilterBasis +/- theorem Filter.HasAntitoneBasis.prod +/- theorem Filter.HasBasis.coprod +/- theorem Filter.HasBasis.inf +/- theorem Filter.HasBasis.prod +/- theorem Filter.HasBasis.prod_same_index_anti +/- theorem Filter.HasBasis.prod_same_index_mono +/- theorem Filter.HasBasis.sup +/- theorem Filter.hasBasis_biInf_of_directed' +/- theorem Filter.hasBasis_biInf_of_directed +/- theorem Filter.hasBasis_biInf_principal' +/- theorem Filter.hasBasis_iInf' +/- theorem Filter.hasBasis_iInf +/- theorem Filter.hasBasis_iInf_of_directed' +/- theorem Filter.hasBasis_iInf_of_directed +/- theorem Filter.hasBasis_iInf_principal_finite +/- theorem Filter.hasBasis_iSup +/- theorem Filter.map_sigma_mk_comap +/- structure FilterBasis +/- theorem Set.PairwiseDisjoint.exists_mem_filter_basis Modified Mathlib/Order/Filter/Basic.lean +/- theorem Filter.comap_eval_neBot +/- theorem Filter.comap_eval_neBot_iff' +/- theorem Filter.comap_eval_neBot_iff +/- theorem Filter.eventually_all +/- theorem Filter.exists_iInter_of_mem_iInf +/- theorem Filter.forall_in_swap +/- def Filter.giGenerate +/- theorem Filter.iInf_sets_eq_finite +/- theorem Filter.mem_iInf_finite +/- theorem Filter.mem_iInf_of_finite +/- structure Filter +/- theorem Pairwise.exists_mem_filter_of_disjoint +/- theorem Set.PairwiseDisjoint.exists_mem_filter Modified Mathlib/Order/Filter/Cofinite.lean +/- theorem Filter.Tendsto.exists_within_forall_le +/- theorem Filter.coprodᵢ_cofinite Modified Mathlib/Order/Filter/CountableInter.lean +/- theorem EventuallyEq.countable_bInter +/- theorem EventuallyEq.countable_bUnion +/- theorem EventuallyLE.countable_bInter +/- theorem EventuallyLE.countable_bUnion +/- theorem countable_bInter_mem +/- theorem eventually_countable_ball Modified Mathlib/Order/Filter/CountableSeparatingOn.lean +/- theorem HasCountableSeparatingOn.of_subtype +/- theorem exists_countable_separating +/- theorem exists_nonempty_countable_separating +/- theorem exists_seq_separating Modified Mathlib/Order/Filter/Curry.lean Modified Mathlib/Order/Filter/ENNReal.lean Modified Mathlib/Order/Filter/EventuallyConst.lean +/- theorem Filter.EventuallyConst.apply Modified Mathlib/Order/Filter/Extr.lean +/- theorem Filter.EventuallyEq.isExtrFilter_iff +/- theorem Filter.EventuallyEq.isMaxFilter_iff +/- theorem Filter.EventuallyEq.isMinFilter_iff +/- theorem Filter.EventuallyLE.isMaxFilter +/- theorem Filter.EventuallyLE.isMinFilter +/- theorem IsExtrFilter.congr +/- theorem IsMaxFilter.congr +/- theorem IsMinFilter.congr Modified Mathlib/Order/Filter/Germ.lean +/- def Filter.Germ.liftOn +/- def Filter.Germ +/- def Filter.Product +/- def Filter.germSetoid +/- def Filter.productSetoid Modified Mathlib/Order/Filter/IndicatorFunction.lean Modified Mathlib/Order/Filter/Interval.lean +/- theorem Filter.HasBasis.tendstoIxxClass Modified Mathlib/Order/Filter/Lift.lean Modified Mathlib/Order/Filter/NAry.lean Modified Mathlib/Order/Filter/Pi.lean +/- theorem Filter.tendsto_pi Modified Mathlib/Order/Filter/Pointwise.lean Modified Mathlib/Order/Filter/Prod.lean +/- theorem Filter.Tendsto.prod_map +/- theorem Filter.Tendsto.prod_map_coprod +/- theorem Filter.map_const_principal_coprod_map_id_principal +/- theorem Filter.map_prod_map_const_id_principal_coprod_principal +/- theorem Filter.prod_map_map_eq' +/- theorem Filter.tendsto_prod_swap Modified Mathlib/Order/Filter/SmallSets.lean Modified Mathlib/Order/Filter/Ultrafilter.lean +/- structure Ultrafilter Modified Mathlib/Order/Filter/ZeroAndBoundedAtFilter.lean +/- theorem Filter.BoundedAtFilter.smul +/- theorem Filter.ZeroAtFilter.smul Modified Mathlib/Order/GaloisConnection.lean +/- theorem GaloisConnection.l_comm_iff_u_comm +/- theorem GaloisConnection.l_comm_of_u_comm +/- def GaloisConnection.liftOrderBot +/- def GaloisConnection.liftOrderTop +/- def GaloisConnection.toGaloisCoinsertion +/- def GaloisConnection.toGaloisInsertion +/- theorem GaloisConnection.u_comm_of_l_comm +/- def GaloisInsertion.monotoneIntro +/- structure GaloisInsertion Modified Mathlib/Order/GameAdd.lean +/- def Prod.GameAdd.fix +/- theorem Prod.GameAdd.fix_eq +/- def Sym2.GameAdd.fix +/- theorem Sym2.GameAdd.fix_eq Modified Mathlib/Order/Grade.lean Modified Mathlib/Order/Height.lean Modified Mathlib/Order/Heyting/Basic.lean Modified Mathlib/Order/Heyting/Boundary.lean Modified Mathlib/Order/Heyting/Hom.lean +/- structure BiheytingHom +/- structure CoheytingHom +/- structure HeytingHom Modified Mathlib/Order/Heyting/Regular.lean Modified Mathlib/Order/Hom/Basic.lean +/- def OrderEmbedding.toOrderHom +/- theorem OrderHom.comp_const +/- def OrderHom.const +/- def OrderHom.dualIso +/- structure OrderHom +/- def OrderIso.funUnique +/- theorem OrderIso.funUnique_symm_apply +/- def OrderIso.ofHomInv +/- def OrderIso.refl +/- theorem OrderIso.symm_refl Modified Mathlib/Order/Hom/Bounded.lean +/- structure BotHom +/- structure BoundedOrderHom +/- structure TopHom Modified Mathlib/Order/Hom/CompleteLattice.lean +/- structure CompleteLatticeHom +/- structure FrameHom +/- structure sInfHom +/- structure sSupHom Modified Mathlib/Order/Hom/Lattice.lean +/- structure BoundedLatticeHom +/- structure InfHom +/- structure InfTopHom +/- structure LatticeHom +/- structure SupBotHom +/- structure SupHom Modified Mathlib/Order/Hom/Order.lean +/- theorem OrderHom.coe_iInf +/- theorem OrderHom.coe_iSup +/- theorem OrderHom.iInf_apply +/- theorem OrderHom.iSup_apply +/- theorem OrderHom.iterate_sup_le_sup_iff Modified Mathlib/Order/Hom/Set.lean Modified Mathlib/Order/Ideal.lean Modified Mathlib/Order/InitialSeg.lean +/- structure InitialSeg +/- def PrincipalSeg.ofElement +/- theorem PrincipalSeg.ofElement_apply +/- theorem PrincipalSeg.ofElement_top +/- structure PrincipalSeg +/- theorem wellFounded_iff_wellFounded_subrel Modified Mathlib/Order/Interval.lean +/- def Interval +/- structure NonemptyInterval Modified Mathlib/Order/Irreducible.lean Modified Mathlib/Order/JordanHolder.lean Modified Mathlib/Order/KrullDimension.lean Modified Mathlib/Order/Lattice.lean +/- def Lattice.mk' +/- theorem Monotone.forall_le_of_antitone +/- theorem SemilatticeInf.dual_dual +/- def SemilatticeInf.mk' +/- theorem SemilatticeSup.dual_dual +/- def SemilatticeSup.mk' Modified Mathlib/Order/LatticeIntervals.lean Modified Mathlib/Order/LiminfLimsup.lean +/- theorem Filter.liminf_congr +/- theorem Filter.liminf_const +/- theorem Filter.liminf_eq_sSup_sInf +/- theorem Filter.liminf_le_liminf +/- theorem Filter.limsup_congr +/- theorem Filter.limsup_const +/- theorem Filter.limsup_eq_sInf_sSup +/- theorem Filter.limsup_le_limsup Modified Mathlib/Order/LocallyFinite.lean +/- def LocallyFiniteOrder.ofIcc' +/- def LocallyFiniteOrder.ofIcc +/- def LocallyFiniteOrderBot.ofIic' +/- def LocallyFiniteOrderTop.ofIci' +/- def LocallyFiniteOrderTop.ofIci +/- def LocallyFiniteOrderTop.ofIic Modified Mathlib/Order/Max.lean +/- theorem NoBotOrder.to_noMinOrder +/- theorem NoTopOrder.to_noMaxOrder +/- theorem noBotOrder_iff_noMinOrder +/- theorem noTopOrder_iff_noMaxOrder Modified Mathlib/Order/Minimal.lean Modified Mathlib/Order/ModularLattice.lean +/- theorem wellFounded_gt_exact_sequence +/- theorem wellFounded_lt_exact_sequence Modified Mathlib/Order/Monotone/Basic.lean Modified Mathlib/Order/Monotone/Extension.lean Modified Mathlib/Order/Monotone/Monovary.lean Modified Mathlib/Order/Monotone/Odd.lean Modified Mathlib/Order/Monotone/Union.lean Modified Mathlib/Order/OmegaCompletePartialOrder.lean +/- theorem CompleteLattice.iSup_continuous +/- def OmegaCompletePartialOrder.ContinuousHom.flip +/- def OmegaCompletePartialOrder.subtype Modified Mathlib/Order/OrderIsoNat.lean Modified Mathlib/Order/PFilter.lean Modified Mathlib/Order/PartialSups.lean Modified Mathlib/Order/Partition/Equipartition.lean Modified Mathlib/Order/Partition/Finpartition.lean Modified Mathlib/Order/PrimeIdeal.lean +/- structure Order.Ideal.PrimePair Modified Mathlib/Order/PropInstances.lean Modified Mathlib/Order/RelClasses.lean +/- def IsWellFounded.fix +/- theorem IsWellFounded.fix_eq +/- theorem WellFounded.asymmetric +/- def WellFoundedGT.fix +/- theorem WellFoundedGT.fix_eq +/- def WellFoundedGT +/- def WellFoundedLT.fix +/- theorem WellFoundedLT.fix_eq +/- def WellFoundedLT +/- theorem WellFoundedRelation.asymmetric +/- theorem wellFoundedGT_dual_iff +/- theorem wellFoundedLT_dual_iff Modified Mathlib/Order/RelIso/Basic.lean +/- structure RelEmbedding +/- structure RelHom +/- structure RelIso +/- def Subtype.relEmbedding Modified Mathlib/Order/RelIso/Group.lean Modified Mathlib/Order/RelIso/Set.lean Modified Mathlib/Order/SemiconjSup.lean Modified Mathlib/Order/SuccPred/Basic.lean Modified Mathlib/Order/SuccPred/IntervalSucc.lean Modified Mathlib/Order/SuccPred/Limit.lean Modified Mathlib/Order/SuccPred/LinearLocallyFinite.lean Modified Mathlib/Order/SuccPred/Relation.lean Modified Mathlib/Order/SupIndep.lean +/- theorem CompleteLattice.Independent.comp' +/- theorem CompleteLattice.Independent.comp +/- theorem CompleteLattice.Independent.disjoint_biSup +/- theorem CompleteLattice.Independent.map_orderIso +/- def CompleteLattice.Independent +/- theorem CompleteLattice.independent_map_orderIso_iff +/- theorem CompleteLattice.setIndependent_iff +/- theorem Finset.SupIndep.sigma Modified Mathlib/Order/SymmDiff.lean Modified Mathlib/Order/Synonym.lean +/- def Lex Modified Mathlib/Order/UpperLower/Basic.lean +/- structure LowerSet +/- structure UpperSet Modified Mathlib/Order/UpperLower/Hom.lean Modified Mathlib/Order/UpperLower/LocallyFinite.lean Modified Mathlib/Order/WellFounded.lean +/- theorem WellFounded.onFun Modified Mathlib/Order/WellFoundedSet.lean +/- theorem Pi.isPwo Modified Mathlib/Order/WithBot.lean +/- def WithBot.recBotCoe +/- theorem WithBot.recBotCoe_bot +/- theorem WithBot.recBotCoe_coe +/- def WithBot +/- def WithTop.recTopCoe +/- theorem WithTop.recTopCoe_coe +/- theorem WithTop.recTopCoe_top +/- def WithTop Modified Mathlib/Order/Zorn.lean Modified Mathlib/Order/ZornAtoms.lean +/- theorem IsAtomic.of_isChain_bounded +/- theorem IsCoatomic.of_isChain_bounded Modified Mathlib/Probability/BorelCantelli.lean Modified Mathlib/Probability/CondCount.lean Modified Mathlib/Probability/ConditionalExpectation.lean Modified Mathlib/Probability/ConditionalProbability.lean Modified Mathlib/Probability/Density.lean Modified Mathlib/Probability/IdentDistrib.lean +/- theorem ProbabilityTheory.Memℒp.uniformIntegrable_of_identDistrib +/- theorem ProbabilityTheory.Memℒp.uniformIntegrable_of_identDistrib_aux Modified Mathlib/Probability/Independence/Basic.lean +/- theorem ProbabilityTheory.iIndepFun.indepFun +/- theorem ProbabilityTheory.iIndepFun.indepFun_finset +/- theorem ProbabilityTheory.iIndepFun.indepFun_finset_prod_of_not_mem +/- theorem ProbabilityTheory.iIndepFun.indepFun_prod +/- theorem ProbabilityTheory.iIndepFun.indepFun_prod_range_succ +/- theorem ProbabilityTheory.iIndepFun.mul +/- def ProbabilityTheory.iIndepFun +/- theorem ProbabilityTheory.iIndepFun_iff +/- theorem ProbabilityTheory.iIndepFun_iff_iIndep +/- theorem ProbabilityTheory.iIndepFun_iff_measure_inter_preimage_eq_mul Modified Mathlib/Probability/Independence/Kernel.lean +/- theorem ProbabilityTheory.kernel.iIndepFun.indepFun_finset +/- theorem ProbabilityTheory.kernel.iIndepFun.indepFun_finset_prod_of_not_mem +/- theorem ProbabilityTheory.kernel.iIndepFun.indepFun_prod +/- theorem ProbabilityTheory.kernel.iIndepFun.indepFun_prod_range_succ +/- theorem ProbabilityTheory.kernel.iIndepFun.mul +/- def ProbabilityTheory.kernel.iIndepFun +/- theorem ProbabilityTheory.kernel.iIndepFun_iff_measure_inter_preimage_eq_mul Modified Mathlib/Probability/Independence/ZeroOne.lean Modified Mathlib/Probability/Integration.lean +/- theorem ProbabilityTheory.IndepFun.integrable_left_of_integrable_mul +/- theorem ProbabilityTheory.IndepFun.integrable_mul +/- theorem ProbabilityTheory.IndepFun.integrable_right_of_integrable_mul +/- theorem ProbabilityTheory.indepFun_iff_integral_comp_mul Modified Mathlib/Probability/Kernel/Basic.lean +/- def ProbabilityTheory.kernel.coeAddHom +/- def ProbabilityTheory.kernel.const +/- theorem ProbabilityTheory.kernel.integral_const +/- theorem ProbabilityTheory.kernel.integral_deterministic' +/- theorem ProbabilityTheory.kernel.integral_deterministic +/- theorem ProbabilityTheory.kernel.integral_piecewise +/- theorem ProbabilityTheory.kernel.set_integral_const +/- theorem ProbabilityTheory.kernel.set_integral_deterministic' +/- theorem ProbabilityTheory.kernel.set_integral_deterministic +/- theorem ProbabilityTheory.kernel.set_integral_piecewise +/- theorem ProbabilityTheory.kernel.set_integral_restrict Modified Mathlib/Probability/Kernel/Composition.lean +/- theorem ProbabilityTheory.kernel.comp_assoc +/- def ProbabilityTheory.kernel.prodMkLeft Modified Mathlib/Probability/Kernel/CondCdf.lean +/- theorem atBot_le_nhds_bot +/- theorem atTop_le_nhds_top +/- theorem tendsto_of_antitone Modified Mathlib/Probability/Kernel/CondDistrib.lean Modified Mathlib/Probability/Kernel/Condexp.lean Modified Mathlib/Probability/Kernel/Disintegration.lean +/- theorem ProbabilityTheory.exists_cond_kernel +/- theorem ProbabilityTheory.kernel.const_eq_compProd +/- theorem ProbabilityTheory.kernel.const_eq_compProd_real Modified Mathlib/Probability/Kernel/IntegralCompProd.lean +/- theorem MeasureTheory.AEStronglyMeasurable.compProd_mk_left Modified Mathlib/Probability/Kernel/Invariance.lean Modified Mathlib/Probability/Kernel/MeasurableIntegral.lean Modified Mathlib/Probability/Kernel/WithDensity.lean +/- theorem ProbabilityTheory.kernel.integral_withDensity Modified Mathlib/Probability/Martingale/Basic.lean Modified Mathlib/Probability/Martingale/BorelCantelli.lean Modified Mathlib/Probability/Martingale/Centering.lean Modified Mathlib/Probability/Martingale/Convergence.lean Modified Mathlib/Probability/Martingale/OptionalSampling.lean Modified Mathlib/Probability/Martingale/OptionalStopping.lean Modified Mathlib/Probability/Martingale/Upcrossing.lean Modified Mathlib/Probability/Moments.lean Modified Mathlib/Probability/ProbabilityMassFunction/Basic.lean Modified Mathlib/Probability/ProbabilityMassFunction/Constructions.lean Modified Mathlib/Probability/ProbabilityMassFunction/Monad.lean Modified Mathlib/Probability/ProbabilityMassFunction/Uniform.lean +/- theorem Pmf.support_uniformOfFintype +/- def Pmf.uniformOfFintype Modified Mathlib/Probability/Process/Adapted.lean Modified Mathlib/Probability/Process/Filtration.lean +/- theorem MeasureTheory.Filtration.memℒp_limitProcess_of_snorm_bdd +/- structure MeasureTheory.Filtration Modified Mathlib/Probability/Process/HittingTime.lean Modified Mathlib/Probability/Process/Stopping.lean +/- theorem MeasureTheory.stoppedValue_piecewise_const' +/- theorem MeasureTheory.stoppedValue_piecewise_const Modified Mathlib/Probability/StrongLaw.lean +/- theorem ProbabilityTheory.IdentDistrib.truncation Modified Mathlib/Probability/Variance.lean +/- theorem ProbabilityTheory.IndepFun.variance_sum +/- def ProbabilityTheory.evariance +/- def ProbabilityTheory.variance +/- theorem ProbabilityTheory.variance_smul' Modified Mathlib/RepresentationTheory/Action.lean +/- theorem Action.sum_hom Modified Mathlib/RepresentationTheory/Basic.lean +/- theorem Representation.ofMulAction_apply Modified Mathlib/RepresentationTheory/Invariants.lean Modified Mathlib/RepresentationTheory/Rep.lean +/- theorem Rep.to_Module_monoidAlgebra_map_aux Modified Mathlib/RingTheory/Adjoin/Basic.lean +/- theorem Algebra.adjoin_attach_biUnion +/- theorem Algebra.adjoin_iUnion +/- def Subring.closureEquivAdjoinInt +/- def Subsemiring.closureEquivAdjoinNat Modified Mathlib/RingTheory/Adjoin/Field.lean +/- def AlgEquiv.adjoinSingletonEquivAdjoinRootMinpoly +/- theorem lift_of_splits Modified Mathlib/RingTheory/Adjoin/PowerBasis.lean Modified Mathlib/RingTheory/Adjoin/Tower.lean +/- theorem Algebra.adjoin_res_eq_adjoin_res +/- theorem Algebra.adjoin_restrictScalars +/- theorem Algebra.fg_trans' Modified Mathlib/RingTheory/AdjoinRoot.lean +/- theorem AdjoinRoot.algHom_subsingleton Modified Mathlib/RingTheory/AlgebraTower.lean +/- theorem Basis.algebraMap_injective Modified Mathlib/RingTheory/Algebraic.lean +/- theorem IsIntegralClosure.exists_smul_eq_mul Modified Mathlib/RingTheory/AlgebraicIndependent.lean +/- theorem AlgebraicIndependent.restrictScalars +/- theorem algebraicIndependent_iUnion_of_directed Modified Mathlib/RingTheory/Artinian.lean Modified Mathlib/RingTheory/ChainOfDivisors.lean Modified Mathlib/RingTheory/ClassGroup.lean +/- theorem ClassGroup.equiv_mk +/- theorem ClassGroup.mk_canonicalEquiv +/- theorem FractionalIdeal.canonicalEquiv_mk0 +/- theorem FractionalIdeal.map_canonicalEquiv_mk0 Modified Mathlib/RingTheory/Congruence.lean +/- structure RingCon Modified Mathlib/RingTheory/Coprime/Basic.lean +/- theorem IsCoprime.sq_add_sq_ne_zero Modified Mathlib/RingTheory/Coprime/Ideal.lean Modified Mathlib/RingTheory/DedekindDomain/AdicValuation.lean Modified Mathlib/RingTheory/DedekindDomain/Basic.lean +/- theorem Ideal.IsPrime.isMaximal +/- theorem Ring.DimensionLEOne.isIntegralClosure +/- theorem isDedekindDomain_iff Modified Mathlib/RingTheory/DedekindDomain/Dvr.lean +/- theorem IsLocalization.AtPrime.not_isField +/- theorem Ring.DimensionLEOne.localization Modified Mathlib/RingTheory/DedekindDomain/Factorization.lean Modified Mathlib/RingTheory/DedekindDomain/FiniteAdeleRing.lean Modified Mathlib/RingTheory/DedekindDomain/Ideal.lean +/- theorem FractionalIdeal.mul_generator_self_inv +/- theorem Ideal.exist_integer_multiples_not_mem +/- theorem Ideal.prod_le_prime +/- theorem IsDedekindDomain.exists_forall_sub_mem_ideal +/- theorem IsDedekindDomain.exists_representative_mod_finset +/- theorem IsDedekindDomain.inf_prime_pow_eq_prod Modified Mathlib/RingTheory/DedekindDomain/IntegralClosure.lean +/- theorem IsIntegralClosure.range_le_span_dualBasis +/- theorem integralClosure_le_span_dualBasis Modified Mathlib/RingTheory/DedekindDomain/PID.lean +/- theorem FractionalIdeal.isPrincipal.of_finite_maximals_of_inv +/- theorem FractionalIdeal.isPrincipal_of_unit_of_comap_mul_span_singleton_eq_top Modified Mathlib/RingTheory/Derivation/Basic.lean +/- theorem Derivation.leibniz_inv +/- theorem Derivation.map_smul_of_tower +/- theorem Derivation.map_sum +/- structure Derivation Modified Mathlib/RingTheory/Derivation/Lie.lean Modified Mathlib/RingTheory/DiscreteValuationRing/Basic.lean +/- theorem DiscreteValuationRing.irreducible_of_span_eq_maximalIdeal Modified Mathlib/RingTheory/DiscreteValuationRing/TFAE.lean Modified Mathlib/RingTheory/Discriminant.lean Modified Mathlib/RingTheory/EisensteinCriterion.lean Modified Mathlib/RingTheory/EuclideanDomain.lean Modified Mathlib/RingTheory/Filtration.lean +/- theorem Ideal.Filtration.iInf_N +/- theorem Ideal.Filtration.iSup_N Modified Mathlib/RingTheory/FinitePresentation.lean Modified Mathlib/RingTheory/FiniteType.lean +/- theorem AddMonoidAlgebra.finiteType_iff_group_fg +/- theorem Algebra.FiniteType.isNoetherianRing +/- theorem MonoidAlgebra.finiteType_iff_group_fg +/- theorem Subalgebra.fg_iff_finiteType Modified Mathlib/RingTheory/Finiteness.lean +/- theorem Ideal.FG.map +/- theorem Ideal.exists_radical_pow_le_of_fg +/- theorem Ideal.fg_ker_comp +/- theorem Module.Finite.iff_addGroup_fg +/- theorem Module.Finite.iff_addMonoid_fg +/- theorem Module.Finite.of_restrictScalars_finite +/- theorem Module.Finite.trans +/- theorem Subalgebra.fg_bot_toSubmodule +/- theorem Submodule.exists_mem_and_smul_eq_self_of_fg_of_le_smul +/- theorem Submodule.exists_sub_one_mem_and_smul_eq_zero_of_fg_of_le_smul +/- theorem Submodule.fg_biSup +/- theorem Submodule.fg_finset_sup +/- theorem Submodule.fg_iSup +/- theorem Submodule.fg_iff_add_subgroup_fg +/- theorem Submodule.fg_induction +/- theorem Submodule.fg_ker_comp +/- theorem Submodule.fg_of_fg_map +/- theorem Submodule.fg_of_fg_map_of_fg_inf_ker +/- theorem Submodule.fg_of_isUnit +/- theorem Submodule.fg_pi +/- theorem Submodule.fg_restrictScalars +/- theorem Submodule.fg_unit Modified Mathlib/RingTheory/Fintype.lean +/- theorem card_units_lt Modified Mathlib/RingTheory/FractionalIdeal.lean +/- theorem FractionalIdeal.canonicalEquiv_canonicalEquiv +/- theorem FractionalIdeal.canonicalEquiv_trans_canonicalEquiv +/- theorem FractionalIdeal.coeIdeal_finprod +/- theorem FractionalIdeal.coeIdeal_le_coeIdeal +/- def FractionalIdeal.spanFinset +/- theorem FractionalIdeal.spanFinset_coe +/- theorem FractionalIdeal.spanFinset_eq_zero +/- theorem FractionalIdeal.spanFinset_ne_zero Modified Mathlib/RingTheory/GradedAlgebra/Basic.lean Modified Mathlib/RingTheory/GradedAlgebra/HomogeneousIdeal.lean +/- theorem HomogeneousIdeal.toIdeal_iInf +/- theorem HomogeneousIdeal.toIdeal_iInf₂ +/- theorem HomogeneousIdeal.toIdeal_iSup +/- theorem HomogeneousIdeal.toIdeal_iSup₂ +/- theorem Ideal.IsHomogeneous.iInf₂ +/- theorem Ideal.IsHomogeneous.iSup₂ Modified Mathlib/RingTheory/GradedAlgebra/HomogeneousLocalization.lean Modified Mathlib/RingTheory/GradedAlgebra/Radical.lean Modified Mathlib/RingTheory/HahnSeries.lean +/- theorem HahnSeries.SummableFamily.hsum_sub +/- structure HahnSeries.SummableFamily +/- def HahnSeries.toMvPowerSeries +/- structure HahnSeries Modified Mathlib/RingTheory/Henselian.lean +/- theorem isLocalRingHom_of_le_jacobson_bot Modified Mathlib/RingTheory/Ideal/AssociatedPrime.lean Modified Mathlib/RingTheory/Ideal/Basic.lean +/- theorem Ideal.bot_prime +/- theorem Ideal.mem_iInf +/- theorem Ideal.mem_iSup_of_mem +/- theorem Ideal.mem_span_singleton_sup +/- theorem Ideal.mul_sub_mul_mem +/- theorem Ideal.span_singleton_ne_top +/- theorem Ideal.sum_mem Modified Mathlib/RingTheory/Ideal/Cotangent.lean Modified Mathlib/RingTheory/Ideal/IdempotentFG.lean +/- theorem Ideal.isIdempotentElem_iff_eq_bot_or_top +/- theorem Ideal.isIdempotentElem_iff_of_fg Modified Mathlib/RingTheory/Ideal/LocalRing.lean +/- def LocalRing.ResidueField.lift +/- theorem LocalRing.ResidueField.lift_comp_residue +/- theorem LocalRing.ResidueField.lift_residue_apply +/- theorem LocalRing.maximalIdeal_eq_bot +/- theorem RingHom.domain_localRing Modified Mathlib/RingTheory/Ideal/MinimalPrime.lean +/- def minimalPrimes Modified Mathlib/RingTheory/Ideal/Norm.lean +/- theorem Ideal.map_relNorm +/- theorem Ideal.map_spanNorm +/- theorem Ideal.natAbs_det_basis_change +/- theorem Ideal.natAbs_det_equiv +/- theorem Ideal.spanNorm_mul_of_field Modified Mathlib/RingTheory/Ideal/Operations.lean +/- theorem Associates.mk_ne_zero' +/- theorem Basis.mem_ideal_iff' +/- theorem Basis.mem_ideal_iff +/- theorem Ideal.coe_restrictScalars +/- theorem Ideal.comap_comap +/- theorem Ideal.constr_basisSpanSingleton +/- theorem Ideal.finset_inf_span_singleton +/- theorem Ideal.iInf_span_singleton +/- theorem Ideal.map_isPrime_of_equiv +/- theorem Ideal.map_map +/- theorem Ideal.mul_eq_bot +/- theorem Ideal.prod_eq_bot +/- theorem Ideal.prod_mem_prod +/- theorem Ideal.prod_span +/- theorem Ideal.prod_span_singleton +/- theorem Ideal.restrictScalars_mul +/- theorem Ideal.smul_top_eq_map +/- theorem Ideal.sum_eq_sup +/- theorem Ideal.sup_eq_top_iff_isCoprime +/- theorem RingHom.ker_equiv +/- theorem RingHom.ker_isMaximal_of_surjective +/- theorem RingHom.ker_isPrime +/- theorem Submodule.mem_ideal_smul_span_iff_exists_sum' +/- theorem Submodule.mem_ideal_smul_span_iff_exists_sum +/- theorem Submodule.smul_iInf_le +/- theorem Submodule.smul_iSup Modified Mathlib/RingTheory/Ideal/Over.lean +/- theorem Ideal.isMaximal_comap_of_isIntegral_of_isMaximal' Modified Mathlib/RingTheory/Ideal/Quotient.lean +/- theorem Ideal.map_pi +/- def Ideal.quotEquivOfEq +/- theorem Ideal.quotEquivOfEq_mk +/- theorem Ideal.quotEquivOfEq_symm Modified Mathlib/RingTheory/Ideal/QuotientOperations.lean +/- theorem Ideal.comp_quotientMap_eq_of_comp_eq Modified Mathlib/RingTheory/IntegralClosure.lean +/- theorem Algebra.IsIntegral.isField_iff_isField +/- theorem IsIntegral.det +/- theorem IsIntegral.prod +/- theorem IsIntegral.sum +/- theorem IsIntegralClosure.algebraMap_injective +/- theorem Module.End.isIntegral +/- theorem integralClosure_idem +/- theorem isField_of_isIntegral_of_isField' +/- theorem isField_of_isIntegral_of_isField +/- theorem isIntegral_algEquiv +/- theorem isIntegral_algHom_iff +/- theorem isIntegral_map_of_comp_eq_of_isIntegral +/- theorem isIntegral_of_mem_closure'' +/- theorem isIntegral_of_smul_mem_submodule +/- theorem isIntegral_tower_bot_of_isIntegral_field +/- theorem map_isIntegral +/- theorem map_isIntegral_int Modified Mathlib/RingTheory/IntegralDomain.lean +/- theorem Finset.exists_eq_pow_of_mul_eq_pow_of_coprime +/- def Fintype.divisionRingOfIsDomain +/- def Fintype.groupWithZeroOfCancel +/- theorem card_fiber_eq_of_mem_range +/- theorem exists_eq_pow_of_mul_eq_pow_of_coprime Modified Mathlib/RingTheory/IntegrallyClosed.lean +/- theorem IsIntegrallyClosed.exists_algebraMap_eq_of_pow_mem_subalgebra Modified Mathlib/RingTheory/IsAdjoinRoot.lean +/- theorem IsAdjoinRoot.aequiv_aequiv +/- theorem IsAdjoinRoot.aequiv_ofEquiv +/- theorem IsAdjoinRoot.aequiv_trans +/- theorem IsAdjoinRoot.liftHom_aequiv +/- theorem IsAdjoinRoot.lift_aequiv +/- theorem IsAdjoinRoot.ofEquiv_aequiv +/- def IsAdjoinRootMonic.liftPolyₗ Modified Mathlib/RingTheory/IsTensorProduct.lean +/- theorem Algebra.IsPushout.algHom_ext +/- theorem Algebra.lift_algHom_comp_left +/- theorem Algebra.lift_algHom_comp_right +/- theorem Algebra.pushoutDesc_apply +/- theorem Algebra.pushoutDesc_left +/- theorem Algebra.pushoutDesc_right Modified Mathlib/RingTheory/Jacobson.lean +/- theorem Ideal.MvPolynomial.comp_C_integral_of_surjective_of_jacobson +/- theorem Ideal.MvPolynomial.quotient_mk_comp_C_isIntegral_of_jacobson +/- theorem Ideal.Polynomial.Subring.mem_closure_image_of +/- theorem Ideal.Polynomial.comp_C_integral_of_surjective_of_jacobson +/- theorem Ideal.Polynomial.jacobson_bot_of_integral_localization +/- theorem Ideal.Polynomial.mem_closure_X_union_C Modified Mathlib/RingTheory/Kaehler.lean Modified Mathlib/RingTheory/LaurentSeries.lean +/- theorem PowerSeries.coe_smul Modified Mathlib/RingTheory/Localization/AsSubring.lean +/- theorem Localization.mapToFractionRing_apply +/- theorem Localization.mem_range_mapToFractionRing_iff +/- theorem Localization.subalgebra.mem_range_mapToFractionRing_iff_ofField Modified Mathlib/RingTheory/Localization/AtPrime.lean +/- theorem Localization.localRingHom_comp Modified Mathlib/RingTheory/Localization/Away/AdjoinRoot.lean Modified Mathlib/RingTheory/Localization/Away/Basic.lean +/- theorem IsLocalization.away_of_isUnit_of_bijective Modified Mathlib/RingTheory/Localization/Basic.lean +/- theorem Field.localization_map_bijective +/- theorem IsField.localization_map_bijective +/- theorem IsLocalization.map_comp_map +/- theorem IsLocalization.map_id_mk' +/- theorem IsLocalization.map_map +/- theorem Localization.mk_algebraMap +/- theorem Localization.mk_sum Modified Mathlib/RingTheory/Localization/FractionRing.lean Modified Mathlib/RingTheory/Localization/Ideal.lean Modified Mathlib/RingTheory/Localization/Integer.lean +/- theorem IsLocalization.exist_integer_multiples +/- theorem IsLocalization.exist_integer_multiples_of_finite +/- theorem IsLocalization.map_integerMultiple Modified Mathlib/RingTheory/Localization/Integral.lean +/- theorem IsFractionRing.ideal_span_singleton_map_subset +/- theorem RingHom.isIntegralElem_localization_at_leadingCoeff +/- theorem isIntegral_localization' Modified Mathlib/RingTheory/Localization/InvSubmonoid.lean Modified Mathlib/RingTheory/Localization/LocalizationLocalization.lean +/- theorem IsFractionRing.isFractionRing_of_isDomain_of_isLocalization +/- theorem IsFractionRing.isFractionRing_of_isLocalization Modified Mathlib/RingTheory/Localization/Module.lean +/- theorem Basis.localizationLocalization_apply +/- theorem Basis.localizationLocalization_repr_algebraMap +/- theorem Basis.localizationLocalization_span +/- theorem LinearIndependent.iff_fractionRing +/- theorem LinearIndependent.localization +/- theorem LinearIndependent.localization_localization Modified Mathlib/RingTheory/Localization/Norm.lean Modified Mathlib/RingTheory/Localization/NumDen.lean Modified Mathlib/RingTheory/Localization/Submodule.lean +/- theorem IsLocalization.mem_span_iff Modified Mathlib/RingTheory/Multiplicity.lean +/- theorem multiplicity.Finset.prod Modified Mathlib/RingTheory/MvPolynomial/Basic.lean +/- theorem MvPolynomial.mapRange_eq_map Modified Mathlib/RingTheory/MvPolynomial/Homogeneous.lean +/- theorem MvPolynomial.IsHomogeneous.prod +/- theorem MvPolynomial.IsHomogeneous.sum Modified Mathlib/RingTheory/MvPolynomial/Ideal.lean Modified Mathlib/RingTheory/MvPolynomial/Symmetric.lean Modified Mathlib/RingTheory/MvPolynomial/Tower.lean Modified Mathlib/RingTheory/MvPolynomial/WeightedHomogeneous.lean +/- theorem MvPolynomial.IsWeightedHomogeneous.prod +/- theorem MvPolynomial.IsWeightedHomogeneous.sum Modified Mathlib/RingTheory/Nakayama.lean Modified Mathlib/RingTheory/Nilpotent.lean +/- theorem IsNilpotent.map +/- theorem isReduced_of_injective +/- def nilradical +/- theorem nilradical_eq_sInf +/- theorem nilradical_eq_zero Modified Mathlib/RingTheory/Noetherian.lean +/- theorem IsNoetherianRing.isNilpotent_nilradical +/- theorem isNoetherianRing_iff_ideal_fg Modified Mathlib/RingTheory/NonUnitalSubring/Basic.lean +/- theorem NonUnitalSubring.coe_iInf +/- theorem NonUnitalSubring.comap_iInf +/- theorem NonUnitalSubring.map_iSup +/- theorem NonUnitalSubring.mem_iInf Modified Mathlib/RingTheory/NonUnitalSubsemiring/Basic.lean +/- theorem NonUnitalSubsemiring.comap_iInf +/- theorem NonUnitalSubsemiring.map_iSup Modified Mathlib/RingTheory/NonZeroDivisors.lean +/- theorem isUnit_of_mem_nonZeroDivisors +/- def nonZeroDivisors Modified Mathlib/RingTheory/Norm.lean Modified Mathlib/RingTheory/Nullstellensatz.lean Modified Mathlib/RingTheory/OreLocalization/Basic.lean +/- def OreLocalization.liftExpand +/- theorem OreLocalization.liftExpand_of +/- def OreLocalization.lift₂Expand +/- theorem OreLocalization.lift₂Expand_of +/- def OreLocalization Modified Mathlib/RingTheory/OreLocalization/OreSet.lean +/- def OreLocalization.oreSetOfCancelMonoidWithZero +/- def OreLocalization.oreSetOfNoZeroDivisors Modified Mathlib/RingTheory/Polynomial/Basic.lean +/- theorem MvPolynomial.map_mvPolynomial_eq_eval₂ +/- theorem Polynomial.coeff_prod_mem_ideal_pow_tsub Modified Mathlib/RingTheory/Polynomial/Bernstein.lean Modified Mathlib/RingTheory/Polynomial/Chebyshev.lean Modified Mathlib/RingTheory/Polynomial/Content.lean +/- theorem Polynomial.aeval_primPart_eq_zero +/- theorem Polynomial.eval₂_primPart_eq_zero Modified Mathlib/RingTheory/Polynomial/Cyclotomic/Basic.lean +/- theorem Polynomial.X_pow_sub_one_dvd_prod_cyclotomic +/- theorem Polynomial.cyclotomic'.monic +/- def Polynomial.cyclotomic' +/- theorem Polynomial.cyclotomic'_eq_X_pow_sub_one_div +/- theorem Polynomial.cyclotomic'_ne_zero +/- theorem Polynomial.cyclotomic'_one +/- theorem Polynomial.cyclotomic'_two +/- theorem Polynomial.cyclotomic'_zero +/- theorem Polynomial.cyclotomic.dvd_X_pow_sub_one +/- theorem Polynomial.cyclotomic.eval_apply +/- theorem Polynomial.cyclotomic.isPrimitive +/- theorem Polynomial.cyclotomic.monic +/- def Polynomial.cyclotomic +/- theorem Polynomial.cyclotomic_coeff_zero +/- theorem Polynomial.cyclotomic_eq_X_pow_sub_one_div +/- theorem Polynomial.cyclotomic_eq_prod_X_pow_sub_one_pow_moebius +/- theorem Polynomial.cyclotomic_eq_prod_X_sub_primitiveRoots +/- theorem Polynomial.cyclotomic_ne_zero +/- theorem Polynomial.cyclotomic_one +/- theorem Polynomial.cyclotomic_prime +/- theorem Polynomial.cyclotomic_prime_mul_X_sub_one +/- theorem Polynomial.cyclotomic_prime_pow_eq_geom_sum +/- theorem Polynomial.cyclotomic_prime_pow_mul_X_pow_sub_one +/- theorem Polynomial.cyclotomic_three +/- theorem Polynomial.cyclotomic_two +/- theorem Polynomial.cyclotomic_zero +/- theorem Polynomial.degree_cyclotomic +/- theorem Polynomial.degree_cyclotomic_pos +/- theorem Polynomial.eq_cyclotomic_iff +/- theorem Polynomial.int_coeff_of_cyclotomic' +/- theorem Polynomial.map_cyclotomic +/- theorem Polynomial.map_cyclotomic_int +/- theorem Polynomial.natDegree_cyclotomic +/- theorem Polynomial.prod_cyclotomic'_eq_X_pow_sub_one +/- theorem Polynomial.prod_cyclotomic_eq_X_pow_sub_one +/- theorem Polynomial.roots_of_cyclotomic +/- theorem Polynomial.unique_int_coeff_of_cycl Modified Mathlib/RingTheory/Polynomial/Cyclotomic/Eval.lean +/- theorem Polynomial.eval_one_cyclotomic_not_prime_pow +/- theorem Polynomial.eval_one_cyclotomic_prime +/- theorem Polynomial.eval_one_cyclotomic_prime_pow +/- theorem Polynomial.eval₂_one_cyclotomic_prime +/- theorem Polynomial.eval₂_one_cyclotomic_prime_pow Modified Mathlib/RingTheory/Polynomial/Cyclotomic/Expand.lean +/- theorem Polynomial.cyclotomic_expand_eq_cyclotomic +/- theorem Polynomial.cyclotomic_mul_prime_dvd_eq_pow +/- theorem Polynomial.cyclotomic_mul_prime_eq_pow_of_not_dvd +/- theorem Polynomial.cyclotomic_mul_prime_pow_eq +/- theorem Polynomial.isRoot_cyclotomic_prime_pow_mul_iff_of_charP Modified Mathlib/RingTheory/Polynomial/Cyclotomic/Roots.lean +/- theorem IsPrimitiveRoot.minpoly_dvd_cyclotomic +/- theorem IsPrimitiveRoot.minpoly_eq_cyclotomic_of_irreducible +/- theorem Polynomial.cyclotomic_eq_minpoly +/- theorem Polynomial.cyclotomic_eq_minpoly_rat +/- theorem Polynomial.isRoot_cyclotomic_iff_charZero +/- theorem isRoot_of_unity_iff Modified Mathlib/RingTheory/Polynomial/Dickson.lean Modified Mathlib/RingTheory/Polynomial/Eisenstein/Basic.lean Modified Mathlib/RingTheory/Polynomial/Eisenstein/IsIntegral.lean +/- theorem mem_adjoin_of_dvd_coeff_of_dvd_aeval Modified Mathlib/RingTheory/Polynomial/GaussLemma.lean Modified Mathlib/RingTheory/Polynomial/Opposites.lean +/- def Polynomial.opRingEquiv Modified Mathlib/RingTheory/Polynomial/Pochhammer.lean +/- theorem factorial_mul_pochhammer +/- theorem pochhammer_eval_one +/- theorem pochhammer_succ_eval Modified Mathlib/RingTheory/Polynomial/Quotient.lean Modified Mathlib/RingTheory/Polynomial/RationalRoot.lean Modified Mathlib/RingTheory/Polynomial/ScaleRoots.lean Modified Mathlib/RingTheory/Polynomial/Tower.lean Modified Mathlib/RingTheory/Polynomial/Vieta.lean Modified Mathlib/RingTheory/PolynomialAlgebra.lean Modified Mathlib/RingTheory/PowerBasis.lean +/- theorem PowerBasis.algHom_ext +/- structure PowerBasis Modified Mathlib/RingTheory/PowerSeries/Basic.lean +/- def MvPowerSeries +/- theorem PowerSeries.coeff_mul_one_sub_of_lt_order +/- theorem PowerSeries.coeff_mul_prod_one_sub_of_lt_order +/- theorem PowerSeries.coeff_smul +/- theorem PowerSeries.order_eq_multiplicity_X +/- def PowerSeries Modified Mathlib/RingTheory/PowerSeries/WellKnown.lean Modified Mathlib/RingTheory/Prime.lean +/- theorem mul_eq_mul_prime_prod Modified Mathlib/RingTheory/PrincipalIdealDomain.lean +/- theorem IsField.isPrincipalIdealRing +/- theorem PrincipalIdealRing.ringHom_mem_submonoid_of_factors_subset_of_units_subset Modified Mathlib/RingTheory/QuotientNilpotent.lean +/- theorem Ideal.isRadical_iff_quotient_reduced +/- theorem IsNilpotent.isUnit_quotient_mk_iff Modified Mathlib/RingTheory/QuotientNoetherian.lean Modified Mathlib/RingTheory/RingInvo.lean Modified Mathlib/RingTheory/RootsOfUnity/Basic.lean +/- theorem IsPrimitiveRoot.coe_submonoidClass_iff +/- def primitiveRoots +/- def rootsOfUnity Modified Mathlib/RingTheory/RootsOfUnity/Minpoly.lean Modified Mathlib/RingTheory/SimpleModule.lean Modified Mathlib/RingTheory/Subring/Basic.lean +/- theorem Subring.coe_iInf +/- theorem Subring.comap_iInf +/- theorem Subring.map_iSup +/- theorem Subring.mem_iInf +/- theorem Units.mem_posSubgroup +/- def Units.posSubgroup Modified Mathlib/RingTheory/Subring/Pointwise.lean Modified Mathlib/RingTheory/Subsemiring/Basic.lean +/- theorem Subsemiring.comap_iInf +/- theorem Subsemiring.map_iSup +/- theorem mem_posSubmonoid +/- def posSubmonoid Modified Mathlib/RingTheory/Subsemiring/Pointwise.lean Modified Mathlib/RingTheory/TensorProduct.lean +/- theorem Algebra.TensorProduct.includeLeftRingHom_comp_algebraMap +/- theorem Subalgebra.finiteDimensional_sup Modified Mathlib/RingTheory/Trace.lean +/- theorem Algebra.traceMatrix_reindex +/- theorem Algebra.trace_comp_trace_of_basis +/- theorem Algebra.trace_trace_of_basis Modified Mathlib/RingTheory/UniqueFactorizationDomain.lean +/- theorem Associates.quot_out +/- theorem UniqueFactorizationMonoid.factors_eq_normalizedFactors Modified Mathlib/RingTheory/Valuation/Basic.lean +/- theorem AddValuation.IsEquiv.comap +/- def AddValuation.comap +/- theorem AddValuation.comap_comp +/- theorem AddValuation.map_le_sum +/- theorem AddValuation.map_lt_sum' +/- theorem AddValuation.map_lt_sum +/- theorem Valuation.IsEquiv.comap +/- def Valuation.comap +/- theorem Valuation.comap_apply +/- theorem Valuation.comap_comp +/- theorem Valuation.comap_supp +/- theorem Valuation.map_sum_le +/- theorem Valuation.map_sum_lt' +/- theorem Valuation.map_sum_lt Modified Mathlib/RingTheory/Valuation/ExtendToLocalization.lean Modified Mathlib/RingTheory/Valuation/Quotient.lean +/- theorem AddValuation.comap_supp Modified Mathlib/RingTheory/Valuation/RamificationGroup.lean Modified Mathlib/RingTheory/Valuation/ValuationRing.lean +/- theorem Function.Surjective.valuationRing Modified Mathlib/RingTheory/Valuation/ValuationSubring.lean Modified Mathlib/RingTheory/WittVector/Basic.lean Modified Mathlib/RingTheory/WittVector/Compare.lean Modified Mathlib/RingTheory/WittVector/Defs.lean +/- def WittVector.mk +/- structure WittVector Modified Mathlib/RingTheory/WittVector/DiscreteValuationRing.lean Modified Mathlib/RingTheory/WittVector/Domain.lean Modified Mathlib/RingTheory/WittVector/Frobenius.lean Modified Mathlib/RingTheory/WittVector/FrobeniusFractionField.lean Modified Mathlib/RingTheory/WittVector/Identities.lean Modified Mathlib/RingTheory/WittVector/InitTail.lean Modified Mathlib/RingTheory/WittVector/IsPoly.lean Modified Mathlib/RingTheory/WittVector/Isocrystal.lean +/- theorem WittVector.isocrystal_classification Modified Mathlib/RingTheory/WittVector/MulCoeff.lean Modified Mathlib/RingTheory/WittVector/MulP.lean Modified Mathlib/RingTheory/WittVector/StructurePolynomial.lean +/- theorem wittStructureInt_rename Modified Mathlib/RingTheory/WittVector/Teichmuller.lean Modified Mathlib/RingTheory/WittVector/Truncated.lean +/- theorem TruncatedWittVector.card +/- def TruncatedWittVector Modified Mathlib/RingTheory/WittVector/Verschiebung.lean Modified Mathlib/RingTheory/WittVector/WittPolynomial.lean +/- theorem aeval_wittPolynomial Modified Mathlib/SetTheory/Cardinal/Basic.lean +/- theorem Cardinal.eq_one_iff_unique +/- theorem Cardinal.exists_not_mem_of_length_lt +/- theorem Cardinal.mk_eq_aleph0 +/- theorem Cardinal.mk_sigma +/- theorem Cardinal.three_le +/- theorem Cardinal.toNat_eq_one_iff_unique Modified Mathlib/SetTheory/Cardinal/Cofinality.lean +/- theorem Cardinal.le_range_of_union_finset_eq_top +/- theorem Cardinal.mk_bounded_subset +/- theorem Cardinal.mk_subset_mk_lt_cof Modified Mathlib/SetTheory/Cardinal/Finite.lean +/- theorem Nat.card_eq_of_equiv_fin +/- theorem Nat.card_pi +/- theorem Nat.card_plift +/- theorem Nat.card_prod +/- theorem Nat.card_ulift +/- def Nat.equivFinOfCardPos +/- def PartENat.card +/- theorem PartENat.card_congr +/- theorem PartENat.card_eq_zero_iff_empty +/- theorem PartENat.card_le_one_iff_subsingleton +/- theorem PartENat.card_pLift +/- theorem PartENat.card_sum +/- theorem PartENat.card_uLift +/- theorem PartENat.one_lt_card_iff_nontrivial Modified Mathlib/SetTheory/Cardinal/Ordinal.lean +/- theorem Cardinal.aleph0_mul_mk_eq +/- theorem Cardinal.countable_iff_lt_aleph_one +/- theorem Cardinal.extend_function +/- theorem Cardinal.extend_function_of_lt +/- theorem Cardinal.mk_add_one_eq +/- theorem Cardinal.mk_compl_eq_mk_compl_infinite +/- theorem Cardinal.mk_compl_finset_of_infinite +/- theorem Cardinal.mk_compl_of_infinite +/- theorem Cardinal.mk_mul_aleph0_eq Modified Mathlib/SetTheory/Game/Nim.lean +/- def PGame.leftMovesNimRecOn +/- def PGame.rightMovesNimRecOn Modified Mathlib/SetTheory/Game/PGame.lean +/- def PGame.moveRecOn Modified Mathlib/SetTheory/Lists.lean +/- def Finsets +/- def Lists.inductionMut +/- def Lists Modified Mathlib/SetTheory/Ordinal/Arithmetic.lean +/- def Ordinal.limitRecOn Modified Mathlib/SetTheory/Ordinal/Basic.lean Modified Mathlib/SetTheory/Ordinal/CantorNormalForm.lean +/- theorem Ordinal.CNFRec_pos +/- theorem Ordinal.CNFRec_zero Modified Mathlib/SetTheory/Ordinal/FixedPoint.lean Modified Mathlib/SetTheory/Ordinal/NaturalOps.lean Modified Mathlib/SetTheory/Ordinal/Notation.lean +/- def NONote.recOn Modified Mathlib/Tactic/CategoryTheory/Coherence.lean +/- theorem Mathlib.Tactic.Coherence.insert_id_lhs +/- theorem Mathlib.Tactic.Coherence.insert_id_rhs Modified Mathlib/Tactic/CategoryTheory/Elementwise.lean Modified Mathlib/Tactic/CategoryTheory/Reassoc.lean Modified Mathlib/Tactic/ComputeDegree.lean Modified Mathlib/Tactic/Congr!.lean Modified Mathlib/Tactic/DeriveFintype.lean Modified Mathlib/Tactic/Group.lean +/- theorem Mathlib.Tactic.Group.zpow_trick +/- theorem Mathlib.Tactic.Group.zpow_trick_one' +/- theorem Mathlib.Tactic.Group.zpow_trick_one Modified Mathlib/Tactic/Inhabit.lean Modified Mathlib/Tactic/Lift.lean +/- theorem Subtype.exists_pi_extension Modified Mathlib/Tactic/MkIffOfInductiveProp.lean +/- def Mathlib.Tactic.MkIff.listBoolMerge Modified Mathlib/Tactic/ModCases.lean +/- def Mathlib.Tactic.ModCases.OnModCases +/- def Mathlib.Tactic.ModCases.onModCases_start +/- def Mathlib.Tactic.ModCases.onModCases_stop +/- def Mathlib.Tactic.ModCases.onModCases_succ Modified Mathlib/Tactic/NoncommRing.lean Modified Mathlib/Tactic/NormNum/BigOperators.lean +/- theorem Mathlib.Meta.Finset.insert_eq_cons +/- theorem Mathlib.Meta.Finset.univ_eq_elems +/- theorem Mathlib.Meta.Multiset.insert_eq_cons Modified Mathlib/Tactic/Positivity/Basic.lean Modified Mathlib/Tactic/ProxyType.lean Modified Mathlib/Tactic/Simps/Basic.lean Modified Mathlib/Tactic/ToAdditive.lean Modified Mathlib/Tactic/Variable.lean Modified Mathlib/Topology/Algebra/Affine.lean Modified Mathlib/Topology/Algebra/Algebra.lean +/- theorem Subalgebra.topologicalClosure_comap_homeomorph Modified Mathlib/Topology/Algebra/ConstMulAction.lean +/- theorem HasCompactMulSupport.comp_smul +/- theorem HasCompactSupport.comp_smul +/- theorem IsClosed.smul₀ +/- theorem isClosedMap_smul₀ Modified Mathlib/Topology/Algebra/Constructions.lean +/- theorem Units.embedding_val_mk' +/- theorem Units.embedding_val_mk Modified Mathlib/Topology/Algebra/ContinuousAffineMap.lean +/- structure ContinuousAffineMap Modified Mathlib/Topology/Algebra/ContinuousMonoidHom.lean +/- structure ContinuousAddMonoidHom +/- def ContinuousMonoidHom.compRight +/- theorem ContinuousMonoidHom.continuous_of_continuous_uncurry Modified Mathlib/Topology/Algebra/Equicontinuity.lean +/- theorem equicontinuous_of_equicontinuousAt_one +/- theorem uniformEquicontinuous_of_equicontinuousAt_one Modified Mathlib/Topology/Algebra/Field.lean Modified Mathlib/Topology/Algebra/FilterBasis.lean +/- theorem ContinuousSMul.of_basis_zero +/- def ModuleFilterBasis.ofBases +/- def ModuleFilterBasis.topology' +/- structure ModuleFilterBasis +/- def groupFilterBasisOfComm Modified Mathlib/Topology/Algebra/Group/Basic.lean +/- theorem ContinuousInv.of_nhds_one +/- theorem Filter.HasBasis.nhds_of_one +/- def GroupTopology.coinduced +/- theorem GroupTopology.coinduced_continuous +/- theorem Inducing.continuousInv +/- def Subgroup.connectedComponentOfOne +/- theorem Subgroup.is_normal_topologicalClosure +/- theorem TopologicalGroup.ext +/- theorem TopologicalGroup.ext_iff +/- theorem continuous_of_continuousAt_one +/- theorem continuous_of_continuousAt_one₂ +/- theorem inv_mem_connectedComponent_one +/- theorem mul_mem_connectedComponent_one +/- theorem tendsto_div_nhds_one_iff +/- theorem topologicalGroup_induced Modified Mathlib/Topology/Algebra/GroupCompletion.lean +/- theorem AddMonoidHom.completion_add Modified Mathlib/Topology/Algebra/GroupWithZero.lean Modified Mathlib/Topology/Algebra/InfiniteSum/Basic.lean +/- theorem Function.Surjective.summable_iff_of_hasSum_iff +/- theorem Function.Surjective.tsum_eq_tsum_of_hasSum_iff_hasSum +/- theorem HasSum.sigma +/- theorem HasSum.sigma_of_hasSum +/- theorem HasSum.sum_nat_of_sum_int +/- theorem HasSum.update' +/- theorem Summable.sigma' +/- theorem Summable.sigma +/- theorem Summable.sigma_factor +/- theorem eq_add_of_hasSum_ite +/- theorem tsum_sigma' +/- theorem tsum_sigma Modified Mathlib/Topology/Algebra/InfiniteSum/Module.lean Modified Mathlib/Topology/Algebra/InfiniteSum/Order.lean Modified Mathlib/Topology/Algebra/InfiniteSum/Real.lean Modified Mathlib/Topology/Algebra/InfiniteSum/Ring.lean Modified Mathlib/Topology/Algebra/Localization.lean Modified Mathlib/Topology/Algebra/Module/Alternating.lean +/- theorem ContinuousAlternatingMap.coe_pi +/- def ContinuousAlternatingMap.pi +/- def ContinuousAlternatingMap.piEquiv +/- def ContinuousAlternatingMap.piLinearEquiv +/- theorem ContinuousAlternatingMap.pi_apply +/- theorem ContinuousAlternatingMap.sum_apply +/- structure ContinuousAlternatingMap Modified Mathlib/Topology/Algebra/Module/Basic.lean +/- theorem ContinuousLinearEquiv.comp_continuousOn_iff +/- theorem ContinuousLinearEquiv.comp_continuous_iff +/- def ContinuousLinearEquiv.piFinTwo +/- structure ContinuousLinearEquiv +/- theorem ContinuousLinearMap.closedComplemented_ker_of_rightInverse +/- theorem ContinuousLinearMap.coe_sum' +/- theorem ContinuousLinearMap.coe_sum +/- theorem ContinuousLinearMap.comp_assoc +/- theorem ContinuousLinearMap.isComplete_ker +/- theorem ContinuousLinearMap.map_smul_of_tower +/- theorem ContinuousLinearMap.sum_apply +/- structure ContinuousLinearMap +/- theorem LinearMap.continuous_on_pi Modified Mathlib/Topology/Algebra/Module/CharacterSpace.lean +/- def WeakDual.characterSpace Modified Mathlib/Topology/Algebra/Module/Determinant.lean +/- theorem ContinuousLinearEquiv.det_coe_symm Modified Mathlib/Topology/Algebra/Module/FiniteDimension.lean +/- theorem continuous_equivFun_basis Modified Mathlib/Topology/Algebra/Module/LinearPMap.lean Modified Mathlib/Topology/Algebra/Module/LocallyConvex.lean +/- theorem LocallyConvexSpace.ofBases +/- theorem LocallyConvexSpace.ofBasisZero Modified Mathlib/Topology/Algebra/Module/Multilinear.lean +/- theorem ContinuousMultilinearMap.coe_pi +/- def ContinuousMultilinearMap.domDomCongrEquiv +/- def ContinuousMultilinearMap.pi +/- def ContinuousMultilinearMap.piEquiv +/- def ContinuousMultilinearMap.piLinearEquiv +/- theorem ContinuousMultilinearMap.pi_apply +/- theorem ContinuousMultilinearMap.sum_apply Modified Mathlib/Topology/Algebra/Module/Star.lean +/- def starL' +/- def starL Modified Mathlib/Topology/Algebra/Module/StrongTopology.lean Modified Mathlib/Topology/Algebra/Module/WeakDual.lean +/- def WeakDual Modified Mathlib/Topology/Algebra/Monoid.lean +/- theorem Inducing.continuousMul +/- theorem LocallyFinite.exists_finset_mulSupport +/- theorem continuousMul_induced +/- theorem eventuallyEq_prod +/- theorem finprod_eventually_eq_prod Modified Mathlib/Topology/Algebra/MulAction.lean Modified Mathlib/Topology/Algebra/Nonarchimedean/AdicTopology.lean +/- def WithIdeal.topologicalSpaceModule +/- theorem is_bot_adic_iff Modified Mathlib/Topology/Algebra/Nonarchimedean/Bases.lean +/- theorem RingSubgroupsBasis.of_comm +/- structure RingSubgroupsBasis Modified Mathlib/Topology/Algebra/Nonarchimedean/Basic.lean Modified Mathlib/Topology/Algebra/OpenSubgroup.lean +/- structure OpenAddSubgroup +/- theorem OpenSubgroup.comap_comap +/- structure OpenSubgroup Modified Mathlib/Topology/Algebra/Order/Archimedean.lean Modified Mathlib/Topology/Algebra/Order/Compact.lean +/- theorem IsCompact.lt_sInf_iff_of_continuous +/- theorem isCompact_uIcc Modified Mathlib/Topology/Algebra/Order/ExtrClosure.lean Modified Mathlib/Topology/Algebra/Order/Field.lean +/- theorem TopologicalRing.of_norm Modified Mathlib/Topology/Algebra/Order/Filter.lean Modified Mathlib/Topology/Algebra/Order/Floor.lean Modified Mathlib/Topology/Algebra/Order/Group.lean Modified Mathlib/Topology/Algebra/Order/IntermediateValue.lean Modified Mathlib/Topology/Algebra/Order/LeftRight.lean Modified Mathlib/Topology/Algebra/Order/LeftRightLim.lean Modified Mathlib/Topology/Algebra/Order/LiminfLimsup.lean +/- theorem Filter.Tendsto.isBoundedUnder_ge_atTop +/- theorem Filter.Tendsto.isBoundedUnder_le_atBot +/- theorem bddAbove_range_of_tendsto_atTop_atBot +/- theorem bddBelow_range_of_tendsto_atTop_atTop +/- theorem iUnion_Ici_eq_Ioi_of_lt_of_tendsto +/- theorem iUnion_Iic_eq_Iio_of_lt_of_tendsto +/- theorem isBounded_ge_atTop +/- theorem isBounded_le_atBot +/- theorem limsup_eq_tendsto_sum_indicator_atTop Modified Mathlib/Topology/Algebra/Order/MonotoneContinuity.lean Modified Mathlib/Topology/Algebra/Order/MonotoneConvergence.lean +/- theorem iInf_eq_iInf_subseq_of_monotone +/- theorem iSup_eq_iSup_subseq_of_monotone +/- theorem tendsto_iff_tendsto_subseq_of_monotone +/- theorem tendsto_of_monotone Modified Mathlib/Topology/Algebra/Order/ProjIcc.lean Modified Mathlib/Topology/Algebra/Order/T5.lean Modified Mathlib/Topology/Algebra/Order/UpperLower.lean Modified Mathlib/Topology/Algebra/Polynomial.lean +/- theorem Polynomial.tendsto_abv_aeval_atTop +/- theorem Polynomial.tendsto_abv_atTop +/- theorem Polynomial.tendsto_abv_eval₂_atTop Modified Mathlib/Topology/Algebra/Ring/Basic.lean +/- def AbsoluteValue.comp +/- def RingTopology.coinduced +/- theorem RingTopology.coinduced_continuous Modified Mathlib/Topology/Algebra/Ring/Ideal.lean Modified Mathlib/Topology/Algebra/Star.lean Modified Mathlib/Topology/Algebra/StarSubalgebra.lean +/- theorem StarAlgHomClass.ext_topologicalClosure +/- theorem elementalStarAlgebra.starAlgHomClass_ext Modified Mathlib/Topology/Algebra/UniformConvergence.lean Modified Mathlib/Topology/Algebra/UniformField.lean Modified Mathlib/Topology/Algebra/UniformFilterBasis.lean Modified Mathlib/Topology/Algebra/UniformGroup.lean +/- theorem CauchySeq.const_mul +/- theorem CauchySeq.inv +/- theorem CauchySeq.mul +/- theorem CauchySeq.mul_const +/- theorem MonoidHom.tendsto_coe_cofinite_of_discrete +/- theorem TopologicalGroup.tendstoLocallyUniformlyOn_iff +/- theorem TopologicalGroup.tendstoLocallyUniformly_iff +/- theorem TopologicalGroup.tendstoUniformlyOn_iff +/- theorem TopologicalGroup.tendstoUniformly_iff +/- theorem UniformGroup.ext +/- theorem UniformGroup.ext_iff +/- theorem UniformGroup.toUniformSpace_eq +/- theorem UniformGroup.uniformContinuous_iff_open_ker +/- theorem uniformContinuous_monoidHom_of_continuous +/- theorem uniformContinuous_of_continuousAt_one +/- theorem uniformContinuous_of_tendsto_one +/- theorem uniformGroup_comap +/- theorem uniformGroup_iInf Modified Mathlib/Topology/Algebra/UniformRing.lean +/- theorem UniformSpace.Completion.Continuous.mul Modified Mathlib/Topology/Algebra/ValuedField.lean Modified Mathlib/Topology/Algebra/WithZeroTopology.lean Modified Mathlib/Topology/Bases.lean +/- theorem Dense.exists_countable_dense_subset +/- theorem Dense.exists_countable_dense_subset_bot_top +/- theorem Set.PairwiseDisjoint.countable_of_isOpen +/- theorem Set.PairwiseDisjoint.countable_of_nonempty_interior +/- theorem TopologicalSpace.IsSeparable.image +/- theorem TopologicalSpace.isSeparable_iUnion +/- theorem exists_countable_dense_bot_top +/- theorem isTopologicalBasis_iInf +/- theorem isTopologicalBasis_pi +/- theorem isTopologicalBasis_singletons Modified Mathlib/Topology/Basic.lean +/- theorem Finset.closure_biUnion +/- theorem Finset.interior_iInter +/- def MapClusterPt +/- theorem OrderTop.tendsto_atTop_nhds +/- theorem closure_iUnion +/- theorem interior_Inter₂_subset +/- theorem interior_iInter +/- theorem isOpen_singleton_iff_punctured_nhds +/- theorem mapClusterPt_iff +/- theorem mapClusterPt_of_comp +/- theorem monotone_closure +/- theorem tendsto_atBot_of_eventually_const +/- theorem tendsto_atTop_of_eventually_const +/- theorem tendsto_pure_nhds Modified Mathlib/Topology/Bornology/Basic.lean +/- def Bornology.cobounded +/- theorem Bornology.le_cofinite +/- def Bornology.ofBounded' +/- def Bornology.ofBounded Modified Mathlib/Topology/Bornology/Constructions.lean +/- def Bornology.induced +/- theorem Bornology.isBounded_induced +/- theorem boundedSpace_induced_iff Modified Mathlib/Topology/Bornology/Hom.lean +/- structure LocallyBoundedMap Modified Mathlib/Topology/Category/Born.lean +/- def Born.of Modified Mathlib/Topology/Category/CompHaus/Basic.lean Modified Mathlib/Topology/Category/CompHaus/Projective.lean Modified Mathlib/Topology/Category/Compactum.lean +/- def Compactum.forget +/- def Compactum.free Modified Mathlib/Topology/Category/Locale.lean +/- theorem Locale.coe_of +/- def Locale.of Modified Mathlib/Topology/Category/Profinite/Basic.lean +/- def Profinite.of Modified Mathlib/Topology/Category/Profinite/CofilteredLimit.lean +/- theorem Profinite.exists_locallyConstant +/- theorem Profinite.exists_locallyConstant_finite_aux +/- theorem Profinite.exists_locallyConstant_finite_nonempty Modified Mathlib/Topology/Category/Stonean/Basic.lean +/- def Stonean.of Modified Mathlib/Topology/Category/TopCat/Basic.lean Modified Mathlib/Topology/Category/TopCat/Opens.lean +/- theorem TopologicalSpace.Opens.leSupr_apply_mk +/- theorem TopologicalSpace.Opens.map_iSup Modified Mathlib/Topology/Category/UniformSpace.lean Modified Mathlib/Topology/CompactOpen.lean +/- theorem ContinuousMap.continuous.comp' +/- theorem ContinuousMap.tendsto_compactOpen_iff_forall +/- theorem ContinuousMap.tendsto_compactOpen_restrict Modified Mathlib/Topology/Compactification/OnePoint.lean +/- theorem OnePoint.continuousAt_coe +/- theorem OnePoint.continuousAt_infty' +/- theorem OnePoint.continuousAt_infty +/- theorem OnePoint.tendsto_nhds_infty' +/- theorem OnePoint.tendsto_nhds_infty +/- def OnePoint Modified Mathlib/Topology/Connected.lean +/- def Continuous.connectedComponentsMap +/- theorem Continuous.connectedComponentsMap_continuous +/- theorem Continuous.image_connectedComponent_eq_singleton +/- theorem IsConnected.biUnion_of_reflTransGen +/- theorem IsConnected.iUnion_of_reflTransGen +/- theorem IsPreconnected.biUnion_of_reflTransGen +/- theorem IsPreconnected.constant +/- theorem IsPreconnected.iUnion_of_reflTransGen +/- theorem PreconnectedSpace.connectedComponent_eq_univ +/- theorem PreconnectedSpace.constant +/- def connectedComponentSetoid +/- theorem connectedComponents_lift_unique' +/- theorem exists_clopen_of_totally_separated +/- theorem isPreconnected_iUnion +/- theorem isTotallyDisconnected_of_clopen_set +/- theorem locallyConnectedSpace_of_connected_bases Modified Mathlib/Topology/Constructions.lean +/- def CofiniteTopology +/- theorem Continuous.fin_insertNth +/- theorem ContinuousAt.fin_insertNth +/- theorem DenseRange.prod_map +/- theorem DiscreteTopology.of_subset +/- theorem Filter.HasBasis.prod_nhds' +/- theorem Filter.HasBasis.prod_nhds +/- theorem Filter.Tendsto.fin_insertNth +/- theorem continuous_apply_apply +/- theorem induced_to_pi +/- theorem inducing_iInf_to_pi +/- theorem pi_generateFrom_eq +/- theorem pi_generateFrom_eq_finite +/- theorem prod_generateFrom_generateFrom_eq +/- theorem tendsto_subtype_rng Modified Mathlib/Topology/ContinuousFunction/Algebra.lean +/- def ContinuousMap.coeFnRingHom +/- theorem ContinuousMap.coe_prod +/- def ContinuousMap.compMonoidHom' +/- def ContinuousMap.compRightAlgHom +/- theorem ContinuousMap.hasSum_apply +/- theorem ContinuousMap.prod_apply +/- theorem ContinuousMap.summable_apply +/- theorem ContinuousMap.tsum_apply +/- def continuousSubgroup +/- def continuousSubmonoid +/- def continuousSubring +/- def continuousSubsemiring Modified Mathlib/Topology/ContinuousFunction/Basic.lean +/- def ContinuousMap.sigmaMk +/- structure ContinuousMap Modified Mathlib/Topology/ContinuousFunction/Bounded.lean +/- theorem BoundedContinuousFunction.Nnreal.upper_bound +/- theorem BoundedContinuousFunction.coe_compContinuous +/- theorem BoundedContinuousFunction.coe_sum +/- def BoundedContinuousFunction.compContinuous +/- theorem BoundedContinuousFunction.compContinuous_apply +/- theorem BoundedContinuousFunction.continuous_compContinuous +/- theorem BoundedContinuousFunction.lipschitz_compContinuous +/- theorem BoundedContinuousFunction.sum_apply +/- theorem BoundedContinuousFunction.tendsto_iff_tendstoUniformly Modified Mathlib/Topology/ContinuousFunction/CocompactMap.lean +/- def Homeomorph.toCocompactMap Modified Mathlib/Topology/ContinuousFunction/Compact.lean +/- theorem ContinuousMap.compRightAlgHom_continuous +/- def ContinuousMap.compRightContinuousMap +/- theorem ContinuousMap.compRightContinuousMap_apply +/- def ContinuousMap.compRightHomeomorph +/- theorem ContinuousMap.norm_restrict_mono_set +/- theorem ContinuousMap.summable_of_locally_summable_norm Modified Mathlib/Topology/ContinuousFunction/Ideals.lean Modified Mathlib/Topology/ContinuousFunction/LocallyConstant.lean +/- def LocallyConstant.toContinuousMapAlgHom +/- def LocallyConstant.toContinuousMapLinearMap Modified Mathlib/Topology/ContinuousFunction/Ordered.lean +/- theorem ContinuousMap.inf'_apply +/- theorem ContinuousMap.inf'_coe +/- theorem ContinuousMap.sup'_apply +/- theorem ContinuousMap.sup'_coe Modified Mathlib/Topology/ContinuousFunction/Polynomial.lean +/- theorem polynomialFunctions.le_equalizer +/- theorem polynomialFunctions.starClosure_le_equalizer Modified Mathlib/Topology/ContinuousFunction/Sigma.lean Modified Mathlib/Topology/ContinuousFunction/StoneWeierstrass.lean +/- theorem ContinuousMap.algHom_ext_map_X +/- theorem ContinuousMap.starAlgHom_ext_map_X +/- theorem polynomialFunctions.starClosure_topologicalClosure Modified Mathlib/Topology/ContinuousFunction/T0Sierpinski.lean +/- theorem TopologicalSpace.eq_induced_by_maps_to_sierpinski Modified Mathlib/Topology/ContinuousFunction/Units.lean Modified Mathlib/Topology/ContinuousFunction/ZeroAtInfty.lean +/- theorem ZeroAtInftyContinuousMap.coe_smul +/- def ZeroAtInftyContinuousMap.compLinearMap +/- def ZeroAtInftyContinuousMap.compNonUnitalAlgHom +/- theorem ZeroAtInftyContinuousMap.smul_apply +/- theorem ZeroAtInftyContinuousMap.tendsto_iff_tendstoUniformly +/- def ZeroAtInftyContinuousMap.zeroAtInftyContinuousMapClass.ofCompact Modified Mathlib/Topology/ContinuousOn.lean +/- theorem ContinuousOn.if +/- theorem ContinuousOn.mono_dom +/- theorem ContinuousOn.mono_rng +/- theorem ContinuousWithinAt.fin_insertNth +/- theorem DenseRange.nhdsWithin_neBot +/- theorem closure_pi_set +/- theorem continuousOn_open_of_generateFrom +/- theorem continuousOn_pi +/- theorem continuousWithinAt_pi +/- theorem continuous_of_cover_nhds +/- theorem dense_pi +/- theorem eventually_nhdsWithin_of_eventually_nhds +/- theorem mem_closure_pi +/- theorem nhdsWithin_pi_eq' +/- theorem nhdsWithin_pi_eq +/- theorem nhdsWithin_pi_eq_bot +/- theorem nhdsWithin_pi_neBot +/- theorem nhdsWithin_pi_univ_eq +/- theorem nhdsWithin_prod +/- theorem principal_subtype Modified Mathlib/Topology/Covering.lean +/- theorem IsCoveringMap.mk +/- theorem IsCoveringMapOn.mk +/- theorem IsEvenlyCovered.mem_toTrivialization_baseSet +/- theorem IsEvenlyCovered.toTrivialization_apply +/- theorem IsEvenlyCovered.to_isEvenlyCovered_preimage +/- def IsEvenlyCovered Modified Mathlib/Topology/DenseEmbedding.lean +/- def DenseEmbedding.subtypeEmb +/- theorem denseEmbedding_id Modified Mathlib/Topology/DiscreteQuotient.lean +/- structure DiscreteQuotient Modified Mathlib/Topology/DiscreteSubset.lean Modified Mathlib/Topology/ExtendFrom.lean Modified Mathlib/Topology/ExtremallyDisconnected.lean Modified Mathlib/Topology/FiberBundle/Basic.lean +/- structure FiberBundleCore +/- theorem FiberPrebundle.continuousOn_of_comp_right Modified Mathlib/Topology/FiberBundle/Constructions.lean Modified Mathlib/Topology/FiberBundle/IsHomeomorphicTrivialBundle.lean Modified Mathlib/Topology/FiberBundle/Trivialization.lean +/- theorem Trivialization.continuousAt_of_comp_left +/- theorem Trivialization.continuousAt_of_comp_right +/- def Trivialization.transFiberHomeomorph +/- theorem Trivialization.transFiberHomeomorph_apply Modified Mathlib/Topology/Filter.lean Modified Mathlib/Topology/GDelta.lean +/- def residual Modified Mathlib/Topology/Hom/Open.lean +/- structure ContinuousOpenMap Modified Mathlib/Topology/Homeomorph.lean +/- def Homeomorph.Set.univ +/- def Homeomorph.funUnique +/- def Homeomorph.piCongrRight +/- theorem Homeomorph.piCongrRight_symm +/- def Homeomorph.piEquivPiSubtypeProd +/- def Homeomorph.piSplitAt +/- structure Homeomorph Modified Mathlib/Topology/Homotopy/Basic.lean Modified Mathlib/Topology/Homotopy/Contractible.lean +/- theorem ContractibleSpace.hequiv_unit +/- theorem contractible_iff_id_nullhomotopic +/- theorem id_nullhomotopic Modified Mathlib/Topology/Homotopy/Equiv.lean +/- def ContinuousMap.HomotopyEquiv.piCongrRight Modified Mathlib/Topology/Homotopy/HomotopyGroup.lean +/- def Cube.boundary +/- def HomotopyGroup.Pi +/- def HomotopyGroup Modified Mathlib/Topology/Homotopy/Path.lean +/- def ContinuousMap.Homotopy.evalAt Modified Mathlib/Topology/Homotopy/Product.lean Modified Mathlib/Topology/Inseparable.lean Modified Mathlib/Topology/Instances/AddCircle.lean Modified Mathlib/Topology/Instances/Discrete.lean Modified Mathlib/Topology/Instances/ENNReal.lean +/- theorem ENNReal.add_biSup' +/- theorem ENNReal.add_iSup +/- theorem ENNReal.biSup_add' +/- theorem ENNReal.continuousAt_coe_iff +/- theorem ENNReal.exists_frequently_lt_of_liminf_ne_top' +/- theorem ENNReal.exists_frequently_lt_of_liminf_ne_top +/- theorem ENNReal.exists_upcrossings_of_not_bounded_under +/- theorem ENNReal.finite_const_le_of_tsum_ne_top +/- theorem ENNReal.finset_card_const_le_le_of_tsum_le +/- theorem ENNReal.iSup_add +/- theorem ENNReal.iSup_add_iSup +/- theorem ENNReal.iSup_add_iSup_le +/- theorem ENNReal.iSup_add_iSup_of_monotone +/- theorem ENNReal.iSup_div +/- theorem ENNReal.iSup_mul +/- theorem ENNReal.inv_map_iInf +/- theorem ENNReal.inv_map_iSup +/- theorem ENNReal.mul_iSup +/- theorem ENNReal.smul_iSup +/- theorem ENNReal.sub_iSup +/- theorem ENNReal.summable_toNNReal_of_tsum_ne_top +/- theorem ENNReal.tendsto_finset_prod_of_ne_top +/- theorem ENNReal.tendsto_nhds_coe_iff +/- theorem ENNReal.tendsto_tsum_compl_atTop_zero +/- theorem ENNReal.toNNReal_apply_of_tsum_ne_top +/- theorem ENNReal.tsum_biUnion_le +/- theorem ENNReal.tsum_biUnion_le_tsum +/- theorem ENNReal.tsum_const_eq_top_of_ne_zero +/- theorem ENNReal.tsum_iSup_eq +/- theorem ENNReal.tsum_iUnion_le +/- theorem ENNReal.tsum_iUnion_le_tsum +/- theorem Metric.diam_closure +/- theorem NNReal.summable_sigma +/- theorem NNReal.tsum_comp_le_tsum_of_inj +/- theorem summable_of_sum_le +/- theorem summable_sigma_of_nonneg +/- theorem tsum_comp_le_tsum_of_inj Modified Mathlib/Topology/Instances/EReal.lean +/- theorem EReal.tendsto_coe +/- theorem EReal.tendsto_coe_ennreal +/- theorem EReal.tendsto_nhds_bot_iff_real +/- theorem EReal.tendsto_nhds_top_iff_real Modified Mathlib/Topology/Instances/Matrix.lean Modified Mathlib/Topology/Instances/NNReal.lean +/- theorem NNReal.summable_comp_injective Modified Mathlib/Topology/Instances/RealVectorSpace.lean Modified Mathlib/Topology/Instances/Sign.lean Modified Mathlib/Topology/Instances/TrivSqZeroExt.lean Modified Mathlib/Topology/IsLocallyHomeomorph.lean Modified Mathlib/Topology/List.lean +/- theorem Filter.Tendsto.cons +/- theorem List.tendsto_cons_iff +/- theorem List.tendsto_nhds Modified Mathlib/Topology/LocalAtTarget.lean Modified Mathlib/Topology/LocalHomeomorph.lean +/- theorem LocalHomeomorph.prod_trans +/- theorem LocalHomeomorph.refl_prod_refl +/- structure LocalHomeomorph Modified Mathlib/Topology/LocallyConstant/Algebra.lean +/- def LocallyConstant.comapₗ +/- def LocallyConstant.congrLeftₗ +/- theorem LocallyConstant.ker_comapₗ Modified Mathlib/Topology/LocallyConstant/Basic.lean +/- theorem IsLocallyConstant.comp₂ +/- theorem IsLocallyConstant.desc +/- theorem LocallyConstant.coe_desc +/- def LocallyConstant.const +/- def LocallyConstant.desc +/- def LocallyConstant.flip +/- theorem LocallyConstant.flip_unflip +/- theorem LocallyConstant.locallyConstant_eq_of_fiber_zero_eq +/- theorem LocallyConstant.map_comp +/- def LocallyConstant.ofClopen +/- theorem LocallyConstant.ofClopen_fiber_one +/- theorem LocallyConstant.ofClopen_fiber_zero +/- def LocallyConstant.unflip +/- theorem LocallyConstant.unflip_flip +/- structure LocallyConstant Modified Mathlib/Topology/LocallyFinite.lean +/- theorem LocallyFinite.exists_forall_eventually_atTop_eventually_eq' +/- theorem LocallyFinite.exists_forall_eventually_eq_prod +/- theorem LocallyFinite.exists_mem_basis Modified Mathlib/Topology/Maps.lean +/- theorem ClosedEmbedding.tendsto_nhds_iff +/- theorem Embedding.discreteTopology +/- theorem Embedding.tendsto_nhds_iff +/- theorem Inducing.tendsto_nhds_iff +/- theorem OpenEmbedding.tendsto_nhds_iff +/- def QuotientMap Modified Mathlib/Topology/MetricSpace/Algebra.lean Modified Mathlib/Topology/MetricSpace/Antilipschitz.lean +/- theorem AntilipschitzWith.closedEmbedding +/- theorem AntilipschitzWith.isClosed_range Modified Mathlib/Topology/MetricSpace/Baire.lean Modified Mathlib/Topology/MetricSpace/Basic.lean +/- def Bornology.ofDist +/- theorem Filter.Tendsto.congr_dist +/- theorem Fin.dist_insertNth_insertNth +/- theorem Fin.nndist_insertNth_insertNth +/- theorem Metric.closedEmbedding_of_pairwise_le_dist +/- theorem Metric.isOpen_singleton_iff +/- theorem Metric.tendstoLocallyUniformlyOn_iff +/- theorem Metric.tendstoLocallyUniformly_iff +/- theorem Metric.tendstoUniformlyOnFilter_iff +/- theorem Metric.tendstoUniformlyOn_iff +/- theorem Metric.tendstoUniformly_iff +/- theorem Metric.uniformCauchySeqOn_iff +/- theorem Metric.uniformEmbedding_bot_of_pairwise_le_dist +/- theorem MetricSpace.ext +/- def MetricSpace.ofT0PseudoMetricSpace +/- theorem PseudoMetricSpace.ext +/- theorem edist_lt_top +/- theorem isCompact_sphere +/- theorem tendsto_iff_of_dist +/- theorem tendsto_uniformity_iff_dist_tendsto_zero Modified Mathlib/Topology/MetricSpace/CantorScheme.lean Modified Mathlib/Topology/MetricSpace/Contracting.lean Modified Mathlib/Topology/MetricSpace/Dilation.lean +/- theorem Dilation.comp_assoc +/- theorem Dilation.dist_eq +/- theorem Dilation.nndist_eq +/- theorem Dilation.ratio_unique_of_dist_ne_zero +/- theorem Dilation.ratio_unique_of_nndist_ne_zero +/- theorem Dilation.tendsto_nhds_iff Modified Mathlib/Topology/MetricSpace/DilationEquiv.lean +/- def DilationEquiv.refl +/- structure DilationEquiv Modified Mathlib/Topology/MetricSpace/EMetricParacompact.lean Modified Mathlib/Topology/MetricSpace/EMetricSpace.lean +/- theorem EMetric.diam_iUnion_mem_option +/- theorem EMetric.diam_pi_le_of_le +/- theorem EMetric.tendstoLocallyUniformlyOn_iff +/- theorem EMetric.tendstoLocallyUniformly_iff +/- theorem EMetric.tendstoUniformlyOn_iff +/- theorem EMetric.tendstoUniformly_iff +/- def EMetricSpace.ofT0PseudoEMetricSpace Modified Mathlib/Topology/MetricSpace/Equicontinuity.lean +/- theorem Metric.equicontinuousAt_iff +/- theorem Metric.equicontinuousAt_iff_right +/- theorem Metric.equicontinuousAt_of_continuity_modulus +/- theorem Metric.equicontinuous_of_continuity_modulus +/- theorem Metric.uniformEquicontinuous_iff +/- theorem Metric.uniformEquicontinuous_iff_right +/- theorem Metric.uniformEquicontinuous_of_continuity_modulus Modified Mathlib/Topology/MetricSpace/Gluing.lean Modified Mathlib/Topology/MetricSpace/HausdorffDimension.lean +/- theorem Real.dimH_univ_pi Modified Mathlib/Topology/MetricSpace/HausdorffDistance.lean +/- theorem IsCompact.cthickening_eq_biUnion_closedBall +/- theorem Metric.Bounded.cthickening +/- theorem Metric.closedBall_subset_cthickening +/- theorem Metric.closedBall_subset_cthickening_singleton +/- theorem Metric.cthickening_eq_biUnion_closedBall +/- theorem Metric.cthickening_singleton +/- theorem Metric.cthickening_subset_iUnion_closedBall_of_lt +/- theorem Metric.diam_cthickening_le +/- theorem Metric.diam_thickening_le +/- theorem Metric.mem_cthickening_of_dist_le Modified Mathlib/Topology/MetricSpace/Holder.lean Modified Mathlib/Topology/MetricSpace/Infsep.lean +/- theorem Set.einfsep_iUnion_mem_option +/- theorem Set.le_einfsep_pi_of_le Modified Mathlib/Topology/MetricSpace/IsometricSMul.lean Modified Mathlib/Topology/MetricSpace/Isometry.lean +/- theorem Isometry.tendsto_nhds_iff +/- def IsometryEquiv.piFinTwo +/- theorem isometry_dcomp Modified Mathlib/Topology/MetricSpace/MetricSeparated.lean +/- theorem IsMetricSeparated.finite_iUnion_left_iff +/- theorem IsMetricSeparated.finite_iUnion_right_iff +/- theorem IsMetricSeparated.finset_iUnion_left_iff +/- theorem IsMetricSeparated.finset_iUnion_right_iff +/- def IsMetricSeparated Modified Mathlib/Topology/MetricSpace/Metrizable.lean Modified Mathlib/Topology/MetricSpace/MetrizableUniformity.lean Modified Mathlib/Topology/MetricSpace/PartitionOfUnity.lean Modified Mathlib/Topology/MetricSpace/PiNat.lean +/- theorem PiNat.lipschitz_with_one_iff_forall_dist_image_le_of_mem_cylinder +/- def PiNat.longestPrefix +/- def PiNat.shortestPrefixDiff +/- theorem exists_nat_nat_continuous_surjective_of_completeSpace Modified Mathlib/Topology/MetricSpace/Polish.lean +/- theorem IsClosed.polishSpace +/- theorem IsOpen.polishSpace +/- def PolishSpace.AuxCopy +/- theorem PolishSpace.exists_nat_nat_continuous_surjective +/- theorem PolishSpace.exists_polishSpace_forall_le +/- def TopologicalSpace.Opens.CompleteCopy +/- theorem complete_polishSpaceMetric +/- def polishSpaceMetric +/- def upgradePolishSpace Modified Mathlib/Topology/MetricSpace/ThickenedIndicator.lean Modified Mathlib/Topology/NhdsSet.lean Modified Mathlib/Topology/NoetherianSpace.lean +/- theorem TopologicalSpace.NoetherianSpace.iUnion Modified Mathlib/Topology/OmegaCompletePartialOrder.lean Modified Mathlib/Topology/Order.lean +/- theorem Equiv.coinduced_symm +/- theorem Equiv.induced_symm +/- def TopologicalSpace.gciGenerateFrom +/- theorem TopologicalSpace.tendsto_nhds_generateFrom +/- theorem discreteTopology_bot +/- theorem forall_open_iff_discrete +/- theorem isOpen_singleton_nhdsAdjoint +/- theorem le_iff_nhds +/- theorem le_nhdsAdjoint_iff' +/- theorem le_nhdsAdjoint_iff +/- theorem nhdsAdjoint_nhds +/- theorem nhdsAdjoint_nhds_of_ne +/- theorem nhds_discrete +/- theorem nhds_iInf +/- theorem singletons_open_iff_discrete Modified Mathlib/Topology/Order/Basic.lean +/- theorem Antitone.map_iInf_of_continuousAt' +/- theorem Antitone.map_iInf_of_continuousAt +/- theorem Antitone.map_iSup_of_continuousAt' +/- theorem Antitone.map_iSup_of_continuousAt +/- theorem Monotone.map_iInf_of_continuousAt' +/- theorem Monotone.map_iInf_of_continuousAt +/- theorem Monotone.map_iSup_of_continuousAt' +/- theorem Monotone.map_iSup_of_continuousAt +/- theorem Monotone.tendsto_nhdsWithin_Iio +/- theorem Monotone.tendsto_nhdsWithin_Ioi +/- def Preorder.topology +/- theorem StrictMono.embedding_of_ordConnected +/- theorem exists_seq_strictMono_tendsto' +/- theorem exists_seq_tendsto_sInf +/- theorem exists_seq_tendsto_sSup +/- theorem orderTopology_of_nhds_abs Modified Mathlib/Topology/Order/Hom/Basic.lean +/- structure ContinuousOrderHom Modified Mathlib/Topology/Order/Hom/Esakia.lean +/- structure EsakiaHom +/- structure PseudoEpimorphism Modified Mathlib/Topology/Order/Lattice.lean Modified Mathlib/Topology/Order/LowerUpperTopology.lean +/- def LowerTopology.lowerBasis +/- def UpperTopology.upperBasis Modified Mathlib/Topology/Order/NhdsSet.lean Modified Mathlib/Topology/Order/Priestley.lean Modified Mathlib/Topology/Order/UpperLowerSetTopology.lean Modified Mathlib/Topology/Partial.lean Modified Mathlib/Topology/PartitionOfUnity.lean +/- structure BumpCovering +/- structure PartitionOfUnity Modified Mathlib/Topology/PathConnected.lean +/- theorem Filter.Tendsto.path_extend +/- theorem IsPathConnected.exists_path_through_family' +/- theorem IsPathConnected.exists_path_through_family +/- theorem IsPathConnected.image' +/- theorem IsPathConnected.image +/- theorem Path.continuous_uncurry_extend_of_continuous_family +/- theorem Path.extend_extends' +/- theorem Path.extend_extends +/- theorem Path.extend_of_le_zero +/- theorem Path.extend_of_one_le +/- theorem Path.extend_range +/- def Path.map' +/- def Path.map +/- theorem Path.map_coe +/- theorem Path.map_map +/- theorem Path.map_symm +/- theorem Path.map_trans +/- theorem Path.refl_extend +/- theorem Path.refl_trans_refl +/- theorem Path.symm_cast +/- theorem Path.symm_continuous_family +/- theorem Path.trans_cast +/- theorem Path.trans_continuous_family +/- theorem Path.trans_range +/- def Path.truncate +/- def Path.truncateOfLE +/- theorem Path.truncate_const_continuous_family +/- theorem Path.truncate_continuous_family +/- theorem Path.truncate_one_one +/- theorem Path.truncate_range +/- theorem Path.truncate_self +/- theorem Path.truncate_zero_one +/- theorem Path.truncate_zero_zero Modified Mathlib/Topology/Perfect.lean +/- theorem IsClosed.exists_nat_bool_injection_of_not_countable Modified Mathlib/Topology/ProperMap.lean +/- theorem IsProperMap.pi_map Modified Mathlib/Topology/QuasiSeparated.lean +/- theorem isQuasiSeparated_univ +/- theorem isQuasiSeparated_univ_iff Modified Mathlib/Topology/Semicontinuous.lean Modified Mathlib/Topology/Separation.lean +/- theorem Filter.HasBasis.exists_inter_eq_singleton_of_mem_discrete +/- theorem Filter.HasBasis.nhds_closure +/- theorem Filter.Tendsto.eventually_ne +/- theorem IsClosed.exists_closed_singleton +/- theorem RegularSpace.ofBasis +/- theorem TopologicalSpace.subset_trans +/- theorem biInter_basis_nhds +/- theorem discrete_of_t1_of_finite +/- theorem exists_subset_nhds_of_isCompact +/- theorem isOpen_singleton_of_finite_mem_nhds +/- theorem separated_by_continuous +/- theorem separated_by_openEmbedding +/- def specializationOrder +/- theorem t1Space_antitone +/- theorem t1Space_iff_continuous_cofinite_of Modified Mathlib/Topology/Sequences.lean Modified Mathlib/Topology/Sets/Closeds.lean +/- structure TopologicalSpace.Clopens +/- structure TopologicalSpace.Closeds Modified Mathlib/Topology/Sets/Compacts.lean +/- structure TopologicalSpace.CompactOpens +/- theorem TopologicalSpace.Compacts.coe_finset_sup +/- structure TopologicalSpace.Compacts +/- structure TopologicalSpace.NonemptyCompacts +/- structure TopologicalSpace.PositiveCompacts Modified Mathlib/Topology/Sets/Opens.lean +/- theorem TopologicalSpace.Opens.IsBasis.isCompact_open_iff_eq_finite_iUnion Modified Mathlib/Topology/Sets/Order.lean +/- structure ClopenUpperSet Modified Mathlib/Topology/Sheaves/Presheaf.lean +/- theorem TopCat.Presheaf.map_restrict +/- def TopCat.Presheaf.restrict +/- theorem TopCat.Presheaf.restrict_restrict Modified Mathlib/Topology/Sheaves/SheafCondition/Sites.lean Modified Mathlib/Topology/Sheaves/Stalks.lean +/- def TopCat.Presheaf.stalkCongr +/- theorem TopCat.Presheaf.stalkSpecializes_comp +/- theorem TopCat.Presheaf.stalkSpecializes_refl Modified Mathlib/Topology/ShrinkingLemma.lean Modified Mathlib/Topology/Sober.lean Modified Mathlib/Topology/Spectral/Hom.lean +/- structure SpectralMap Modified Mathlib/Topology/StoneCech.lean Modified Mathlib/Topology/SubsetProperties.lean +/- structure CompactExhaustion +/- def Filter.coclosedCompact +/- def Filter.cocompact +/- theorem Filter.cocompact_eq_cofinite +/- theorem Filter.coprodᵢ_cocompact +/- theorem LocallyFinite.finite_nonempty_inter_compact +/- theorem LocallyFinite.finite_nonempty_of_compact +/- theorem LocallyFinite.finite_of_compact +/- theorem exists_nhds_ne_neBot +/- theorem exists_subset_nhds_of_compactSpace +/- theorem exists_subset_nhds_of_isCompact' +/- def irreducibleComponents +/- theorem irreducibleComponents_eq_maximals_closed +/- theorem isClopen_biInter +/- theorem isClopen_biInter_finset +/- theorem isClopen_biUnion +/- theorem isClopen_biUnion_finset +/- theorem isClopen_iInter +/- theorem isClopen_iUnion +/- theorem isClopen_range_sigmaMk +/- theorem isClosedMap_snd_of_compactSpace +/- theorem isCompact_iUnion +/- theorem locallyCompactSpace_of_hasBasis +/- theorem noncompact_univ Modified Mathlib/Topology/Support.lean +/- theorem tsupport_mul_subset_left +/- theorem tsupport_mul_subset_right Modified Mathlib/Topology/TietzeExtension.lean Modified Mathlib/Topology/UniformSpace/AbsoluteValue.lean Modified Mathlib/Topology/UniformSpace/AbstractCompletion.lean Modified Mathlib/Topology/UniformSpace/Basic.lean +/- def UniformSpace.replaceTopology +/- theorem UniformSpace.replaceTopology_eq +/- theorem iInf_uniformity +/- def idRel +/- theorem toTopologicalSpace_iInf +/- theorem uniformSpace_comap_id Modified Mathlib/Topology/UniformSpace/Cauchy.lean +/- theorem CauchySeq.mem_entourage +/- theorem isComplete_iUnion_separated Modified Mathlib/Topology/UniformSpace/Compact.lean +/- theorem CompactSpace.uniformEquicontinuous_of_equicontinuous Modified Mathlib/Topology/UniformSpace/CompactConvergence.lean +/- theorem Filter.HasBasis.compactConvergenceUniformity Modified Mathlib/Topology/UniformSpace/CompleteSeparated.lean Modified Mathlib/Topology/UniformSpace/Completion.lean +/- theorem CauchyFilter.cauchyFilter_eq +/- theorem CauchyFilter.separated_pureCauchy_injective +/- def UniformSpace.Completion.cPkg +/- theorem UniformSpace.Completion.ext' +/- theorem UniformSpace.Completion.ext Modified Mathlib/Topology/UniformSpace/Equicontinuity.lean +/- theorem Filter.HasBasis.equicontinuousAt_iff +/- theorem Filter.HasBasis.equicontinuousAt_iff_left +/- theorem Filter.HasBasis.equicontinuousAt_iff_right +/- theorem Filter.HasBasis.uniformEquicontinuous_iff +/- theorem Filter.HasBasis.uniformEquicontinuous_iff_left +/- theorem Filter.HasBasis.uniformEquicontinuous_iff_right +/- theorem equicontinuousAt_iInf_dom +/- theorem equicontinuousAt_iInf_rng +/- theorem equicontinuous_iInf_dom +/- theorem equicontinuous_iInf_rng +/- theorem uniformEquicontinuous_iInf_rng +/- theorem uniform_equicontinuous_infi_dom Modified Mathlib/Topology/UniformSpace/Equiv.lean +/- def UniformEquiv.finTwoArrow +/- def UniformEquiv.funUnique +/- structure UniformEquiv Modified Mathlib/Topology/UniformSpace/Matrix.lean +/- theorem Matrix.uniformContinuous Modified Mathlib/Topology/UniformSpace/Pi.lean +/- theorem uniformContinuous_pi Modified Mathlib/Topology/UniformSpace/Separation.lean +/- theorem Filter.HasBasis.mem_separationRel +/- def UniformSpace.SeparationQuotient +/- theorem eq_of_forall_symmetric +/- theorem eq_of_uniformity +/- theorem eq_of_uniformity_basis +/- theorem idRel_sub_separationRel Modified Mathlib/Topology/UniformSpace/UniformConvergence.lean +/- theorem TendstoUniformly.prod +/- theorem TendstoUniformly.prod_map +/- theorem TendstoUniformlyOn.prod +/- theorem TendstoUniformlyOn.prod_map +/- theorem TendstoUniformlyOnFilter.prod +/- theorem TendstoUniformlyOnFilter.prod_map +/- theorem UniformCauchySeqOn.comp +/- theorem UniformCauchySeqOn.prod' +/- theorem UniformCauchySeqOn.prod +/- theorem UniformCauchySeqOn.prod_map +/- theorem UniformCauchySeqOnFilter.comp +/- theorem tendstoLocallyUniformlyOn_iUnion Modified Mathlib/Topology/UniformSpace/UniformConvergenceTopology.lean +/- def UniformFun +/- def UniformOnFun Modified Mathlib/Topology/UniformSpace/UniformEmbedding.lean +/- theorem Equiv.uniformEmbedding +/- theorem UniformEmbedding.prod +/- theorem UniformInducing.basis_uniformity +/- theorem UniformInducing.prod +/- theorem uniformEmbedding_comap Modified Mathlib/Topology/UnitInterval.lean Modified Mathlib/Topology/UrysohnsBounded.lean +/- theorem exists_bounded_mem_Icc_of_closed_of_le +/- theorem exists_bounded_zero_one_of_closed Modified Mathlib/Topology/UrysohnsLemma.lean +/- structure Urysohns.CU Modified Mathlib/Topology/VectorBundle/Basic.lean +/- structure VectorBundleCore +/- def trivialVectorBundleCore Modified Mathlib/Topology/VectorBundle/Constructions.lean Modified Mathlib/Topology/VectorBundle/Hom.lean 2023-08-10 19:52:41 c4190b4 feat: lemmas about nilpotency and polynomials (#6450) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Regular/Basic.lean + theorem IsLeftRegular.mul_left_eq_zero_iff + theorem IsRightRegular.mul_right_eq_zero_iff Modified Mathlib/Data/Nat/SuccPred.lean + theorem Nat.forall_ne_zero_iff Modified Mathlib/Data/Polynomial/Basic.lean + theorem Polynomial.coeff_C_succ Modified Mathlib/Data/Polynomial/Coeff.lean +/- theorem Polynomial.coeff_X_pow_self + theorem Polynomial.isRegular_X + theorem Polynomial.isRegular_X_pow - theorem Polynomial.mul_X_injective - theorem Polynomial.mul_X_pow_injective Modified Mathlib/Data/Polynomial/Laurent.lean Modified Mathlib/Data/Polynomial/Reverse.lean + theorem Polynomial.revAt_eq_self_of_lt Added Mathlib/GroupTheory/Submonoid/ZeroDivisors.lean + theorem coe_nonZeroDivisorsLeft_eq + theorem coe_nonZeroDivisorsRight_eq + theorem mem_nonZeroDivisorsLeft_iff + theorem mem_nonZeroDivisorsRight_iff + def nonZeroDivisorsLeft + theorem nonZeroDivisorsLeft_eq_right + def nonZeroDivisorsRight Modified Mathlib/Order/SuccPred/Basic.lean + theorem SuccOrder.forall_ne_bot_iff Modified Mathlib/RingTheory/Nilpotent.lean +/- theorem IsNilpotent.zero + theorem isNilpotent_sum Modified Mathlib/RingTheory/Polynomial/Basic.lean - theorem Polynomial.IsNilpotent.C_mul_X_pow_isNilpotent - theorem Polynomial.coeff_isUnit_isNilpotent_of_isUnit - theorem Polynomial.isUnit_iff_coeff_isUnit_isNilpotent - theorem Polynomial.isUnit_of_coeff_isUnit_isNilpotent Added Mathlib/RingTheory/Polynomial/Nilpotent.lean + theorem Polynomial.coeff_isUnit_isNilpotent_of_isUnit + theorem Polynomial.isNilpotent_C_iff + theorem Polynomial.isNilpotent_C_mul_pow_X_of_isNilpotent + theorem Polynomial.isNilpotent_X_mul_iff + theorem Polynomial.isNilpotent_monomial_iff + theorem Polynomial.isNilpotent_mul_X_iff + theorem Polynomial.isNilpotent_pow_X_mul_C_of_isNilpotent + theorem Polynomial.isNilpotent_reverse_iff + theorem Polynomial.isUnit_C_add_X_mul_iff + theorem Polynomial.isUnit_iff' + theorem Polynomial.isUnit_iff_coeff_isUnit_isNilpotent + theorem Polynomial.isUnit_of_coeff_isUnit_isNilpotent 2023-08-10 19:52:40 807aecc feat(Data/Nat/Digits): dividing by `p^i` (#6448) ESTIMATED CHANGES Modified Mathlib/Data/Nat/Digits.lean + theorem Nat.ofDigits_div_eq_ofDigits_tail + theorem Nat.ofDigits_div_pow_eq_ofDigits_drop + theorem Nat.self_div_pow_eq_ofDigits_drop 2023-08-10 18:21:37 ba80034 chore: update std4 (#6492) ESTIMATED CHANGES Modified Mathlib/Data/Matrix/PEquiv.lean Modified lake-manifest.json 2023-08-10 17:12:07 76efa47 feat: cardinality of a set with a countable cover (#6351) Assume that a set `t` is eventually covered by a countable family of sets, all with cardinality `≤ a`. Then `t` itself has cardinality at most `a`. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/SetTheory/Cardinal/Basic.lean + theorem Cardinal.lift_mk_le_lift_mk_of_injective + theorem Cardinal.mk_le_iff_forall_finset_subset_card_le + theorem Cardinal.mk_le_of_module + theorem Cardinal.mk_preimage_down Added Mathlib/SetTheory/Cardinal/CountableCover.lean + theorem Cardinal.mk_le_of_countable_eventually_mem + theorem Cardinal.mk_of_countable_eventually_mem + theorem Cardinal.mk_subtype_le_of_countable_eventually_mem + theorem Cardinal.mk_subtype_le_of_countable_eventually_mem_aux 2023-08-10 13:44:28 4ae3f82 chore(Data/IsROrC/Basic): trivial lemmas about inequalities with zero (#6488) ESTIMATED CHANGES Modified Mathlib/Data/IsROrC/Basic.lean + theorem IsROrC.neg_iff + theorem IsROrC.nonneg_iff + theorem IsROrC.nonpos_iff + theorem IsROrC.pos_iff 2023-08-10 12:07:48 00f96f0 chore: deduplicate ToExpr FilePath (#6480) ESTIMATED CHANGES Modified Mathlib/Tactic/ToExpr.lean Modified scripts/checkYaml.lean Modified scripts/runLinter.lean 2023-08-10 12:07:46 65a35f7 chore: ensure all instances referred to directly have explicit names (#6423) Per https://github.com/leanprover/lean4/issues/2343, we are going to need to change the automatic generation of instance names, as they become too long. This PR ensures that everywhere in Mathlib that refers to an instance by name, that name is given explicitly, rather than being automatically generated. There are four exceptions, which are now commented, with links to https://github.com/leanprover/lean4/issues/2343. This was implemented by running Mathlib against a modified Lean that appended `_ᾰ` to all automatically generated names, and fixing everything. ESTIMATED CHANGES Modified Mathlib/Algebra/AddTorsor.lean Modified Mathlib/Algebra/Algebra/Basic.lean Modified Mathlib/Algebra/Algebra/Prod.lean Modified Mathlib/Algebra/Algebra/Unitization.lean Modified Mathlib/Algebra/Category/ModuleCat/Monoidal/Closed.lean Modified Mathlib/Algebra/Free.lean Modified Mathlib/Algebra/GradedMonoid.lean Modified Mathlib/Algebra/Group/OrderSynonym.lean Modified Mathlib/Algebra/Group/Prod.lean Modified Mathlib/Algebra/Group/TypeTags.lean Modified Mathlib/Algebra/Group/Units.lean Modified Mathlib/Algebra/Hom/Equiv/Basic.lean +/- def MulHom.inverse +/- def OneHom.inverse Modified Mathlib/Algebra/Hom/Group.lean Modified Mathlib/Algebra/Module/LinearMap.lean Modified Mathlib/Algebra/Module/Prod.lean Modified Mathlib/Algebra/Order/Group/Instances.lean Modified Mathlib/Algebra/Order/Group/Prod.lean Modified Mathlib/Algebra/Order/Group/Units.lean Modified Mathlib/Algebra/Order/Monoid/OrderDual.lean Modified Mathlib/Algebra/Order/Monoid/Prod.lean Modified Mathlib/Algebra/Order/Monoid/Units.lean Modified Mathlib/Algebra/Order/Nonneg/Ring.lean Modified Mathlib/Algebra/Order/Ring/WithTop.lean Modified Mathlib/Algebra/Order/SMul.lean Modified Mathlib/Algebra/Order/WithZero.lean Modified Mathlib/Algebra/Quaternion.lean Modified Mathlib/Algebra/RingQuot.lean Modified Mathlib/Algebra/Star/StarAlgHom.lean Modified Mathlib/Algebra/TrivSqZeroExt.lean Modified Mathlib/Algebra/Tropical/Basic.lean Modified Mathlib/Algebra/Tropical/Lattice.lean Modified Mathlib/AlgebraicGeometry/EllipticCurve/Weierstrass.lean Modified Mathlib/Analysis/Normed/Group/Seminorm.lean Modified Mathlib/Analysis/Normed/Order/Basic.lean Modified Mathlib/Analysis/NormedSpace/Basic.lean Modified Mathlib/CategoryTheory/Iso.lean Modified Mathlib/CategoryTheory/Limits/Shapes/FiniteLimits.lean Modified Mathlib/CategoryTheory/Limits/Shapes/WidePullbacks.lean Modified Mathlib/CategoryTheory/Sites/Grothendieck.lean Modified Mathlib/CategoryTheory/Sites/Sheaf.lean Modified Mathlib/Computability/Halting.lean Modified Mathlib/Control/Applicative.lean Modified Mathlib/Control/Functor.lean Modified Mathlib/Data/Complex/Basic.lean Modified Mathlib/Data/Finset/Basic.lean Modified Mathlib/Data/Finsupp/Order.lean Modified Mathlib/Data/Fintype/Prod.lean Modified Mathlib/Data/Int/Basic.lean Modified Mathlib/Data/Int/Cast/Prod.lean Modified Mathlib/Data/List/Basic.lean Modified Mathlib/Data/List/Dedup.lean Modified Mathlib/Data/List/Defs.lean Modified Mathlib/Data/List/Lattice.lean Modified Mathlib/Data/MvPolynomial/CommRing.lean Modified Mathlib/Data/Nat/Cast/Defs.lean Modified Mathlib/Data/Nat/Cast/Prod.lean Modified Mathlib/Data/Nat/Choose/Multinomial.lean Modified Mathlib/Data/Num/Lemmas.lean Modified Mathlib/Data/PEquiv.lean Modified Mathlib/Data/Quot.lean Modified Mathlib/Data/Seq/Computation.lean Modified Mathlib/Data/Set/Basic.lean Modified Mathlib/Data/Set/Image.lean Modified Mathlib/Data/Set/Intervals/OrdConnected.lean Modified Mathlib/Data/SetLike/Basic.lean Modified Mathlib/Data/Sigma/Basic.lean Modified Mathlib/Data/Sum/Basic.lean Modified Mathlib/Data/Sum/Order.lean Modified Mathlib/Data/Sym/Basic.lean Modified Mathlib/GroupTheory/Coset.lean Modified Mathlib/GroupTheory/GroupAction/Units.lean Modified Mathlib/GroupTheory/MonoidLocalization.lean Modified Mathlib/Init/Data/Int/Order.lean Modified Mathlib/Init/Data/List/Lemmas.lean Modified Mathlib/Init/Set.lean Modified Mathlib/LinearAlgebra/AffineSpace/Combination.lean Modified Mathlib/LinearAlgebra/CliffordAlgebra/Basic.lean Modified Mathlib/LinearAlgebra/TensorAlgebra/Basic.lean Modified Mathlib/Logic/IsEmpty.lean Modified Mathlib/Logic/Unique.lean Modified Mathlib/MeasureTheory/Measure/OuterMeasure.lean Modified Mathlib/MeasureTheory/PiSystem.lean Modified Mathlib/NumberTheory/NumberField/Embeddings.lean Modified Mathlib/Order/Antisymmetrization.lean Modified Mathlib/Order/Basic.lean +/- theorem OrderDual.Preorder.dual_dual + theorem OrderDual.instLinearOrder.dual_dual + theorem OrderDual.instPartialOrder.dual_dual - theorem OrderDual.linearOrder.dual_dual - theorem OrderDual.partialOrder.dual_dual Modified Mathlib/Order/CompleteLattice.lean Modified Mathlib/Order/Concept.lean Modified Mathlib/Order/ConditionallyCompleteLattice/Basic.lean Modified Mathlib/Order/Filter/Basic.lean Modified Mathlib/Order/Hom/Order.lean Modified Mathlib/Order/Ideal.lean Modified Mathlib/Order/Interval.lean Modified Mathlib/Order/Lattice.lean Modified Mathlib/RingTheory/AdjoinRoot.lean Modified Mathlib/RingTheory/Localization/Basic.lean Modified Mathlib/RingTheory/Localization/FractionRing.lean Modified Mathlib/RingTheory/OreLocalization/Basic.lean Modified Mathlib/RingTheory/Polynomial/Basic.lean Modified Mathlib/RingTheory/Polynomial/RationalRoot.lean Modified Mathlib/SetTheory/Game/Basic.lean Modified Mathlib/SetTheory/Game/PGame.lean Modified Mathlib/SetTheory/Lists.lean Modified Mathlib/SetTheory/Surreal/Basic.lean Modified Mathlib/Tactic/NormNum/Core.lean Modified Mathlib/Topology/Algebra/Constructions.lean Modified Mathlib/Topology/Algebra/OpenSubgroup.lean Modified Mathlib/Topology/Algebra/UniformField.lean Modified Mathlib/Topology/Constructions.lean Modified Mathlib/Topology/ContinuousFunction/Algebra.lean Modified Mathlib/Topology/Instances/AddCircle.lean Modified Mathlib/Topology/MetricSpace/Basic.lean Modified Mathlib/Topology/MetricSpace/EMetricSpace.lean Modified Mathlib/Topology/MetricSpace/Metrizable.lean Modified Mathlib/Topology/UniformSpace/Basic.lean Modified Mathlib/Topology/UniformSpace/Completion.lean Modified docs/undergrad.yaml Modified lake-manifest.json Modified lakefile.lean 2023-08-10 12:07:45 8c698a5 feat: simple lemmas about polynomials and their degrees (#6220) This PR extracts some lemmas about polynomials that are helpful for the tactic `compute_degree` (#6221). The signature of a theorem changed: ```lean theorem coeff_pow_of_natDegree_le (pn : p.natDegree ≤ n) : (p ^ m).coeff (n * m) = p.coeff n ^ m -- <-- the order of the product was `n * m` (p ^ m).coeff (m * n) = p.coeff n ^ m -- <-- and it became `m * n` ``` Modified files: ``` Data/Polynomial/Basic.lean Data/Polynomial/Degree/Lemmas.lean Data/Polynomial/Degree/Definitions.lean Data/Polynomial/Coeff.lean -- for a "`simp` can prove this" golf ``` ESTIMATED CHANGES Modified Mathlib/Data/Polynomial/Basic.lean + theorem Polynomial.coeff_nat_cast_ite Modified Mathlib/Data/Polynomial/Coeff.lean Modified Mathlib/Data/Polynomial/Degree/Definitions.lean + theorem Polynomial.coeff_mul_add_eq_of_natDegree_le Modified Mathlib/Data/Polynomial/Degree/Lemmas.lean + theorem Polynomial.coeff_pow_eq_ite_of_natDegree_le_of_le 2023-08-10 11:44:01 461da4a feat: algebraic versions of LocallyConstant.comap (#6396) We give algebraic versions of `LocallyConstant.comap` given the relevant algebraic structure on the target. ESTIMATED CHANGES Modified Mathlib/Topology/LocallyConstant/Algebra.lean + def LocallyConstant.comapMonoidHom + def LocallyConstant.comapₗ + def LocallyConstant.congrLeftₗ + theorem LocallyConstant.ker_comapₗ Modified Mathlib/Topology/LocallyConstant/Basic.lean + theorem LocallyConstant.coe_comap_apply + theorem LocallyConstant.comap_comap +/- theorem LocallyConstant.comap_id + theorem LocallyConstant.comap_injective + def LocallyConstant.congrLeft 2023-08-10 10:11:54 4dc11c8 fix: remove porting note (#6478) Remove now-false claim in porting note. ESTIMATED CHANGES Modified Mathlib/Data/Nat/Squarefree.lean 2023-08-10 10:11:52 27940a5 feat: counterexample to `Monic => regular` in general semirings (#6476) This example fixes a mistake that I made in a PR review: the implication `Monic => IsRegular` does not hold in general `Semiring`s (cf. [Polynomial.Monic.isRegular](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Data/Polynomial/Monic.html#Polynomial.Monic.isRegular) for the statement with a `Ring` hypothesis). ESTIMATED CHANGES Modified Counterexamples.lean Added Counterexamples/Monic_nonRegular.lean + theorem Counterexample.NonRegular.N₃.X_add_two_mul_X_add_two + theorem Counterexample.NonRegular.N₃.monic_X_add_two + theorem Counterexample.NonRegular.N₃.not_isLeftRegular_X_add_two + theorem Counterexample.NonRegular.N₃.not_monic_implies_isLeftRegular + inductive Counterexample.NonRegular.N₃ 2023-08-10 10:11:51 6e5e4ba feat: generalize `AEMeasurable.indicator` to `NullMeasurableSet` (#6445) ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Measure/AEMeasurable.lean + theorem AEMeasurable.indicator₀ + theorem aemeasurable_indicator_iff₀ 2023-08-10 10:11:50 2120246 fix(NumberTheory/FermatPsp): Update definition and theorem names (#6371) Fix some definition and theorem names in NumberTheory/FermatPsp. Most of these definitions were previously under the `FermatPsp` namespace. This PR removes the `FermatPsp` namespace and places all the definitions under the `Nat` namespace. The following are the main changes made to names: - `FermatPsp.ProbablePrime` -> `Nat.ProbablePrime` - `FermatPsp` -> `Nat.FermatPsp` - `FermatPsp.coprime_of_probablePrime` -> `Nat.coprime_of_probablePrime` - `FermatPsp.probablePrime_iff_modEq` -> `Nat.probablePrime_iff_modEq` - `FermatPsp.coprime_of_fermatPsp` -> `Nat.coprime_of_fermatPsp` - `FermatPsp.base_one` -> `Nat.fermatPsp_base_one` - `FermatPsp.exists_infinite_pseudoprimes` -> `Nat.exists_infinite_pseudoprimes` - `FermatPsp.frequently_atTop_fermatPsp` -> `Nat.frequently_atTop_fermatPsp` - `FermatPsp.infinite_setOf_prime_modeq_one` -> `Nat.infinite_setOf_pseudoprimes` The last name was originally a mistake that came from the proof I used as reference. This PR additionally contains a few fixes for the proofs that were needed because they are now in the `Nat` namespace. It also removes the `Mathlib.Data.Nat.Prime` import because it is transitively included in the `Mathlib.FieldTheory.Finite.Basic` import. ESTIMATED CHANGES Modified Mathlib/NumberTheory/FermatPsp.lean - def FermatPsp.ProbablePrime - theorem FermatPsp.base_one - theorem FermatPsp.coprime_of_fermatPsp - theorem FermatPsp.coprime_of_probablePrime - theorem FermatPsp.exists_infinite_pseudoprimes - theorem FermatPsp.frequently_atTop_fermatPsp - theorem FermatPsp.infinite_setOf_prime_modeq_one - theorem FermatPsp.probablePrime_iff_modEq - def FermatPsp + def Nat.FermatPsp + def Nat.ProbablePrime + theorem Nat.coprime_of_fermatPsp + theorem Nat.coprime_of_probablePrime + theorem Nat.exists_infinite_pseudoprimes + theorem Nat.fermatPsp_base_one + theorem Nat.frequently_atTop_fermatPsp + theorem Nat.infinite_setOf_pseudoprimes + theorem Nat.probablePrime_iff_modEq 2023-08-10 10:11:49 5135f10 feat(Control/Random): instances for `ULift` (#6271) ESTIMATED CHANGES Modified Mathlib/Control/Random.lean 2023-08-10 10:11:48 e18a95e doc: change variable names in AtPrime.lean (#6242) This commit changes the names of the prime ideal to `I` to match the docstrings. It also fixes an instance of `Localization.AtPrime` taking too many arguments in a docstring. ESTIMATED CHANGES Modified Mathlib/RingTheory/Localization/AtPrime.lean +/- theorem Ideal.primeCompl_le_nonZeroDivisors +/- theorem IsLocalization.AtPrime.Nontrivial +/- theorem IsLocalization.AtPrime.localRing 2023-08-10 10:11:47 ee68944 chore: slightly golf `Equiv.ulift` (#6180) Use `ULift.down_up` to provide a value for the field `right_inv`. ESTIMATED CHANGES Modified Mathlib/Logic/Equiv/Defs.lean 2023-08-10 10:11:45 8c390f6 feat: make `Dfinsupp.sigmaCurry` computable (#1947) ~~mathlib3 PR: https://github.com/leanprover-community/mathlib/pull/18316~~ ESTIMATED CHANGES Modified Mathlib/Algebra/DirectSum/Basic.lean + def DirectSum.sigmaCurry + def DirectSum.sigmaCurryEquiv Modified Mathlib/Algebra/DirectSum/Module.lean + def DirectSum.sigmaLcurry + def DirectSum.sigmaLcurryEquiv Modified Mathlib/Data/DFinsupp/Basic.lean + def DFinsupp.sigmaCurry + def DFinsupp.sigmaCurryEquiv +/- theorem DFinsupp.sigmaCurry_add +/- theorem DFinsupp.sigmaCurry_apply +/- theorem DFinsupp.sigmaCurry_zero 2023-08-10 08:49:40 35ae770 chore(Algebra/{ Group/UniqueProds, Order/Monoid/Basic }): move `eq_and_eq_of_le_of_le_of_mul_le` earlier (#6483) This move was suggested in #6220. In fact, the lemma is a general fact about an inequality involving multiplications and did not really belong in the file where it was. Affected files: ``` Algebra.Group.UniqueProds Algebra.Order.Monoid.Basic ``` ESTIMATED CHANGES Modified Mathlib/Algebra/Group/UniqueProds.lean - theorem eq_and_eq_of_le_of_le_of_mul_le Modified Mathlib/Algebra/Order/Monoid/Basic.lean + theorem eq_and_eq_of_le_of_le_of_mul_le 2023-08-10 08:05:12 45fd6b0 chore: let Lean auto apply `isBoundedDefault` tactic (#6485) ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Measure/MeasureSpace.lean Modified Mathlib/Order/Filter/ENNReal.lean 2023-08-10 05:03:34 f330b65 chore: ForIn instance for NameMap (#6484) ESTIMATED CHANGES Modified Mathlib/Lean/Data/NameMap.lean 2023-08-10 02:36:27 69906dc chore: isBlacklisted returns CoreM, not MetaM (#6479) ESTIMATED CHANGES Modified Mathlib/Lean/Expr/Basic.lean +/- def Lean.Name.isBlackListed 2023-08-10 00:40:37 966f4b3 feat(ImportGraph): add option to exclude tactics (#6153) Add an option `lake exe graph --excludeMeta` which removes all nodes that start with `Mathlib.[Tactic|Lean|Util]` ESTIMATED CHANGES Modified ImportGraph/Main.lean 2023-08-09 23:19:36 5bd446b fix: adjust nondetermininstic LibrarySearch tests (#6477) Some of the tests for LibrarySearch functionality are nondetermininstic and were using `#guard_msgs` to check for specific output. This could [create spurious failures](https://github.com/leanprover-community/mathlib4/actions/runs/5810778556/job/15756601503). We switch to using `#guard_msgs (drop info)` for these tests, which still cleans up the stdout when running these tests without filtering out errors. ESTIMATED CHANGES Modified test/LibrarySearch/basic.lean 2023-08-09 23:19:35 a4bbe65 feat: add Type*/Sort* and tests (#6474) This adds Kyle Miller's elaborators for `Type*` and `Sort*` which provide implicit universe variables. It also includes a few tests. ESTIMATED CHANGES Modified Mathlib/Tactic/Basic.lean Added test/ImplicitUniverses.lean 2023-08-09 23:19:34 7f7c66f ci: remove mathlib4_docs deployment (#6464) This is now [managed by the mathlib4_docs repository](https://github.com/leanprover-community/mathlib4_docs/actions), as this is required to use the new github pages deployment mechanism. The downside of this approach is that we will have to restart doc builds manually every 90 days or so. ESTIMATED CHANGES Deleted .github/workflows/mathlib4docs.yml Deleted scripts/deploy_docs.sh 2023-08-09 22:46:18 cae423d feat: IsROrC.toStarOrderedRing as a scoped instance (#6391) With `open scoped ComplexOrder`, we current have `StarOrderedRing Complex` (as well as some other order instances). With this PR, that scope puts the same order on `K` where `IsROrC K`. There is an ongoing discussion about whether opening the scope should be required, but there is no need to address that concern simultaneously with improving behavior when the scope is *already* open. There also seems to be fewer downstream instance resolution issues to resolve by leaving it in the scope. ESTIMATED CHANGES Modified Mathlib/Analysis/Complex/Basic.lean Modified Mathlib/Data/Complex/Order.lean Modified Mathlib/Data/IsROrC/Basic.lean + theorem IsROrC.lt_iff_re_im + theorem IsROrC.toOrderedSMul + def IsROrC.toStarOrderedRing + def IsROrC.toStrictOrderedCommRing 2023-08-09 22:00:36 cdd51dd refactor(Algebra/Order/LatticeGroup): Non-commutative Lattice Groups (#6452) Generalise results in Algebra/Order/LatticeGroup to the case where the group is non-commutative ESTIMATED CHANGES Modified Mathlib/Algebra/Order/LatticeGroup.lean - theorem LatticeOrderedCommGroup.abs_div_comm - theorem LatticeOrderedCommGroup.abs_inv - theorem LatticeOrderedCommGroup.inv_le_abs - theorem LatticeOrderedCommGroup.inv_le_neg - theorem LatticeOrderedCommGroup.le_mabs - theorem LatticeOrderedCommGroup.m_le_pos - theorem LatticeOrderedCommGroup.m_neg_abs - theorem LatticeOrderedCommGroup.m_neg_part_def - theorem LatticeOrderedCommGroup.m_pos_abs - theorem LatticeOrderedCommGroup.m_pos_part_def - theorem LatticeOrderedCommGroup.mabs_mabs - theorem LatticeOrderedCommGroup.mabs_of_one_le - theorem LatticeOrderedCommGroup.mul_inf_eq_mul_inf_mul - theorem LatticeOrderedCommGroup.neg_eq_inv_inf_one - theorem LatticeOrderedCommGroup.neg_eq_one_iff' - theorem LatticeOrderedCommGroup.neg_eq_one_iff - theorem LatticeOrderedCommGroup.neg_eq_pos_inv - theorem LatticeOrderedCommGroup.neg_le_one_iff - theorem LatticeOrderedCommGroup.neg_of_inv_le_one - theorem LatticeOrderedCommGroup.neg_of_le_one - theorem LatticeOrderedCommGroup.neg_of_one_le - theorem LatticeOrderedCommGroup.neg_of_one_le_inv - theorem LatticeOrderedCommGroup.neg_one - theorem LatticeOrderedCommGroup.one_le_abs - theorem LatticeOrderedCommGroup.one_le_neg - theorem LatticeOrderedCommGroup.one_le_pos - theorem LatticeOrderedCommGroup.pos_div_neg - theorem LatticeOrderedCommGroup.pos_eq_neg_inv - theorem LatticeOrderedCommGroup.pos_eq_one_iff - theorem LatticeOrderedCommGroup.pos_eq_self_of_one_lt_pos - theorem LatticeOrderedCommGroup.pos_inf_neg_eq_one - theorem LatticeOrderedCommGroup.pos_le_one_iff - theorem LatticeOrderedCommGroup.pos_mul_neg - theorem LatticeOrderedCommGroup.pos_of_le_one - theorem LatticeOrderedCommGroup.pos_of_one_le - theorem LatticeOrderedCommGroup.pos_one - theorem LatticeOrderedCommGroup.sup_div_inf_eq_abs_div + theorem LatticeOrderedGroup.abs_div_comm + theorem LatticeOrderedGroup.abs_inv + theorem LatticeOrderedGroup.inv_le_abs + theorem LatticeOrderedGroup.inv_le_neg + theorem LatticeOrderedGroup.le_mabs + theorem LatticeOrderedGroup.m_le_pos + theorem LatticeOrderedGroup.m_neg_abs + theorem LatticeOrderedGroup.m_neg_part_def + theorem LatticeOrderedGroup.m_pos_abs + theorem LatticeOrderedGroup.m_pos_part_def + theorem LatticeOrderedGroup.mabs_mabs + theorem LatticeOrderedGroup.mabs_of_one_le + theorem LatticeOrderedGroup.mul_inf_eq_mul_inf_mul + theorem LatticeOrderedGroup.neg_eq_inv_inf_one + theorem LatticeOrderedGroup.neg_eq_one_iff' + theorem LatticeOrderedGroup.neg_eq_one_iff + theorem LatticeOrderedGroup.neg_eq_pos_inv + theorem LatticeOrderedGroup.neg_le_one_iff + theorem LatticeOrderedGroup.neg_of_inv_le_one + theorem LatticeOrderedGroup.neg_of_le_one + theorem LatticeOrderedGroup.neg_of_one_le + theorem LatticeOrderedGroup.neg_of_one_le_inv + theorem LatticeOrderedGroup.neg_one + theorem LatticeOrderedGroup.one_le_abs + theorem LatticeOrderedGroup.one_le_neg + theorem LatticeOrderedGroup.one_le_pos + theorem LatticeOrderedGroup.pos_div_neg + theorem LatticeOrderedGroup.pos_eq_neg_inv + theorem LatticeOrderedGroup.pos_eq_one_iff + theorem LatticeOrderedGroup.pos_eq_self_of_one_lt_pos + theorem LatticeOrderedGroup.pos_inf_neg_eq_one + theorem LatticeOrderedGroup.pos_le_one_iff + theorem LatticeOrderedGroup.pos_mul_neg + theorem LatticeOrderedGroup.pos_of_le_one + theorem LatticeOrderedGroup.pos_of_one_le + theorem LatticeOrderedGroup.pos_one + theorem LatticeOrderedGroup.pow_two_semiclosed + theorem LatticeOrderedGroup.sup_div_inf_eq_abs_div +/- theorem inf_mul +/- theorem inv_inf_eq_sup_inv +/- theorem inv_sup_eq_inv_inf_inv +/- theorem sup_mul Modified Mathlib/Analysis/Normed/Order/Lattice.lean Modified Mathlib/Probability/Martingale/Convergence.lean Modified Mathlib/Probability/Martingale/Upcrossing.lean Modified Mathlib/Probability/StrongLaw.lean 2023-08-09 22:00:34 b51a8a9 feat: piecewise locally constant maps and related lemmas (#6373) We define the locally constant map on a topological space covered by two closed sets, defined piecewise on those two closed sets by two maps, that are equal on the intersection. ESTIMATED CHANGES Modified Mathlib/Topology/LocallyConstant/Basic.lean + def LocallyConstant.piecewise 2023-08-09 21:32:34 3e8bc7b feat: Rank of a hermitian matrix is the count of non-zero eigenvalues (#6354) This PR provides the lemmas: - `IsHermitian.spectral_theorem'`: a slightly modified spectral_theorem such that the hermitian matrix can be directly replaced. $$A = VDV^{-1}\quad D = \text{diag}(d)$$ - `IsHermitian.rank_eq_count_non_zero_eigs`: the rank of a hermitian matrix is the number of non-zero eigenvalues of that matrix $$\text{rank}(A) = \text{card} \lbrace \quad i \quad | \quad d_i \neq 0 \rbrace$$ - `IsHermitian.rank_eq_rank_diagonal`: the rank of a hermitian matrix is the same as its rank after diagonalization by the eigenvector matrix $$\text{rank}(A) = \text{rank}(D)$$ - `Matrix.rank_diagonal`: the rank of a diagonal matrix is the number of non-zero diagonal elements. Note that this was previously the name of a lemma about LinearMaps we take that name (but keep the align to avoid disrupting the tooling). $$\text{rank}(V) = \text{Diag}(v) \implies \text{rank}(V) = \text{card} \lbrace \quad i \quad | \quad v_i \neq 0 \rbrace$$ - `LinearMap.rank_diagonal`: the rank of a linear map that is formed from a diagonal matrix is the number of non-zero diagonal entries. This was previously called `Matrix.rank_diagonal`. ESTIMATED CHANGES Modified Mathlib/Data/Matrix/Rank.lean + theorem Matrix.rank_diagonal Modified Mathlib/LinearAlgebra/Matrix/Diagonal.lean + theorem LinearMap.rank_diagonal - theorem Matrix.rank_diagonal Modified Mathlib/LinearAlgebra/Matrix/Spectrum.lean + theorem Matrix.IsHermitian.rank_eq_card_non_zero_eigs + theorem Matrix.IsHermitian.rank_eq_rank_diagonal + theorem Matrix.IsHermitian.spectral_theorem' 2023-08-09 20:24:01 ee7bea2 chore(Algebra/Quandle): use `FunLike` (#6463) ESTIMATED CHANGES Modified Mathlib/Algebra/Quandle.lean + theorem ShelfHom.toFun_eq_coe 2023-08-09 19:01:43 a2c3434 feat(Topology/ExtremallyDisconnected): prove Gleason's theorem (#5634) This work was done during the 2023 Copenhagen masterclass on formalisation of condensed mathematics. Numerous participants contributed. ESTIMATED CHANGES Modified Mathlib/Data/Set/Basic.lean + theorem Set.nonempty_iff_ne_empty' + theorem Set.not_nonempty_iff_eq_empty' Modified Mathlib/Data/Set/Functor.lean + theorem Set.coe_subset + theorem Set.eq_univ_of_coe_eq + theorem Set.image_coe_eq_restrict_image + theorem Set.mem_coe_of_mem + theorem Set.mem_of_mem_coe Modified Mathlib/Topology/Constructions.lean + theorem IsClosed.trans + theorem IsOpen.trans Modified Mathlib/Topology/ExtremallyDisconnected.lean + theorem ExtremallyDisconnected.disjoint_closure_of_disjoint_IsOpen + theorem exists_compact_surjective_zorn_subset + theorem image_subset_closure_compl_image_compl_of_isOpen 2023-08-09 19:01:42 22d431c feat(Analysis/LocallyConvex/WithSeminorms): equicontinuity criteria (#5580) ESTIMATED CHANGES Modified Mathlib/Analysis/LocallyConvex/WithSeminorms.lean + theorem WithSeminorms.uniformEquicontinuous_iff_bddAbove_and_continuous_iSup + theorem WithSeminorms.uniformEquicontinuous_iff_exists_continuous_seminorm Modified Mathlib/Analysis/NormedSpace/OperatorNorm.lean + theorem ContinuousLinearMap.op_norm_le_iff Modified Mathlib/Analysis/Seminorm.lean + theorem Seminorm.bddAbove_of_absorbent Modified Mathlib/Data/Real/ENNReal.lean + theorem ENNReal.iSup_coe_eq_top + theorem ENNReal.iSup_coe_lt_top Modified Mathlib/Topology/Algebra/UniformGroup.lean Modified Mathlib/Topology/UniformSpace/Basic.lean +/- theorem uniformContinuous_iInf_rng +/- theorem uniformContinuous_sInf_rng Modified Mathlib/Topology/UniformSpace/Equicontinuity.lean + theorem equicontinuousAt_empty + theorem equicontinuousAt_iInf_dom + theorem equicontinuousAt_iInf_rng + theorem equicontinuous_empty + theorem equicontinuous_iInf_dom + theorem equicontinuous_iInf_rng + theorem uniformEquicontinuous_empty + theorem uniformEquicontinuous_iInf_rng + theorem uniform_equicontinuous_infi_dom 2023-08-09 17:44:40 6cb2b8d feat: Summable.countable_support (#6473) A step towards showing that `Pmf`s have countable support. Thanks Eric Rodriguez and Kevin Buzzard for helping on zulip. ESTIMATED CHANGES Modified Mathlib/Order/Filter/Cofinite.lean + theorem Filter.Tendsto.countable_compl_preimage_sInter_sets + theorem Filter.countable_compl_sInter_sets Modified Mathlib/Topology/Algebra/InfiniteSum/Basic.lean + theorem Summable.countable_support Modified Mathlib/Topology/Inseparable.lean + theorem sInter_nhds_sets_eq_specializes Modified Mathlib/Topology/Instances/ENNReal.lean + theorem Summable.countable_support_ennreal + theorem Summable.countable_support_nnreal Modified Mathlib/Topology/Separation.lean + theorem sInter_sets_nhds 2023-08-09 17:44:39 65acf0f chore(Data/Complex): move order to a separate file (#6457) Given how confusing this order could be to newcomers, it's probably not reasonable to call it `Basic`. At any rate, `Data/Complex/Basic` is very long, and this is an easy split. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Analysis/Complex/Basic.lean Modified Mathlib/Data/Complex/Basic.lean - theorem Complex.eq_re_ofReal_le - theorem Complex.le_def - theorem Complex.lt_def - theorem Complex.not_le_iff - theorem Complex.not_le_zero_iff - theorem Complex.not_lt_iff - theorem Complex.not_lt_zero_iff - theorem Complex.real_le_real - theorem Complex.real_lt_real - theorem Complex.zero_le_real - theorem Complex.zero_lt_real Modified Mathlib/Data/Complex/Module.lean Added Mathlib/Data/Complex/Order.lean + theorem Complex.eq_re_ofReal_le + theorem Complex.le_def + theorem Complex.lt_def + theorem Complex.not_le_iff + theorem Complex.not_le_zero_iff + theorem Complex.not_lt_iff + theorem Complex.not_lt_zero_iff + theorem Complex.real_le_real + theorem Complex.real_lt_real + theorem Complex.zero_le_real + theorem Complex.zero_lt_real 2023-08-09 17:44:18 f1e1278 refactor(GroupTheory/GroupAction/Quotient): Move conjugacy class formula earlier (#6290) This PR moves a formula for the number of conjugacy classes earlier. The proof uses Burnside's theorem, so it cannot be moved any earlier than `GroupTheory/GroupAction/Quotient`. ESTIMATED CHANGES Modified Mathlib/Data/Fintype/Card.lean Modified Mathlib/GroupTheory/CommutingProbability.lean - theorem card_comm_eq_card_conjClasses_mul_card Modified Mathlib/GroupTheory/GroupAction/Quotient.lean + theorem card_comm_eq_card_conjClasses_mul_card 2023-08-09 15:56:52 9f2c078 feat(Analysis/SpecialFunctions/Pow): powers of finite products (#6470) ESTIMATED CHANGES Modified Mathlib/Analysis/SpecialFunctions/Pow/NNReal.lean + theorem NNReal.finset_prod_rpow + theorem NNReal.list_prod_map_rpow' + theorem NNReal.list_prod_map_rpow + theorem NNReal.multiset_prod_map_rpow + def NNReal.rpowMonoidHom + theorem Real.finset_prod_rpow + theorem Real.list_prod_map_rpow' + theorem Real.list_prod_map_rpow + theorem Real.multiset_prod_map_rpow Modified Mathlib/Analysis/SpecialFunctions/Pow/Real.lean 2023-08-09 15:56:51 b83a5a7 chore: 'says' ignores following comments when verifying (#6381) ESTIMATED CHANGES Modified Mathlib/Tactic/Says.lean Modified test/says.lean 2023-08-09 14:42:48 b4b9ed7 chore(Data/Finsupp/Basic): golf `restrictSupportEquiv` (#6426) ESTIMATED CHANGES Modified Mathlib/Data/Finsupp/Basic.lean 2023-08-09 14:13:28 8cda325 chore(FieldTheory/NormalClosure): remove a porting note (#6315) ESTIMATED CHANGES Modified Mathlib/FieldTheory/NormalClosure.lean 2023-08-09 12:58:34 1f3f136 feat(Order/Chain): add 2 lemmas (#6459) Cherry-picked from #6269 ESTIMATED CHANGES Modified Mathlib/Order/Chain.lean +/- theorem Flag.chain_lt + theorem IsChain.lt_of_le + theorem Monotone.isChain_range 2023-08-09 11:48:41 0f85d19 chore: regularize HPow.hPow porting notes (#6465) ESTIMATED CHANGES Modified Archive/Imo/Imo1962Q4.lean Modified Archive/Imo/Imo2001Q2.lean Modified Archive/Imo/Imo2008Q3.lean Modified Archive/Imo/Imo2013Q5.lean Modified Archive/Imo/Imo2019Q4.lean Modified Archive/Wiedijk100Theorems/AbelRuffini.lean Modified Archive/Wiedijk100Theorems/AreaOfACircle.lean Modified Archive/Wiedijk100Theorems/HeronsFormula.lean Modified Mathlib/Analysis/Analytic/RadiusLiminf.lean Modified Mathlib/Analysis/BoxIntegral/Basic.lean Modified Mathlib/Analysis/BoxIntegral/DivergenceTheorem.lean Modified Mathlib/Analysis/Calculus/BumpFunction/Convolution.lean Modified Mathlib/Analysis/Calculus/BumpFunction/Normed.lean Modified Mathlib/Analysis/Calculus/Monotone.lean Modified Mathlib/Analysis/Complex/Liouville.lean Modified Mathlib/Analysis/Complex/LocallyUniformLimit.lean Modified Mathlib/Analysis/Complex/PhragmenLindelof.lean Modified Mathlib/Analysis/Complex/RemovableSingularity.lean Modified Mathlib/Analysis/Convex/SpecificFunctions/Basic.lean Modified Mathlib/Analysis/Convex/SpecificFunctions/Deriv.lean Modified Mathlib/Analysis/Distribution/SchwartzSpace.lean Modified Mathlib/Analysis/Fourier/AddCircle.lean Modified Mathlib/Analysis/Fourier/RiemannLebesgueLemma.lean Modified Mathlib/Analysis/InnerProductSpace/Calculus.lean Modified Mathlib/Analysis/InnerProductSpace/PiL2.lean Modified Mathlib/Analysis/InnerProductSpace/Rayleigh.lean Modified Mathlib/Analysis/InnerProductSpace/Spectrum.lean Modified Mathlib/Analysis/InnerProductSpace/TwoDim.lean Modified Mathlib/Analysis/InnerProductSpace/l2Space.lean Modified Mathlib/Analysis/Matrix.lean Modified Mathlib/Analysis/MeanInequalities.lean Modified Mathlib/Analysis/MeanInequalitiesPow.lean Modified Mathlib/Analysis/NormedSpace/PiLp.lean Modified Mathlib/Analysis/NormedSpace/QuaternionExponential.lean Modified Mathlib/Analysis/NormedSpace/Star/Matrix.lean Modified Mathlib/Analysis/NormedSpace/lpSpace.lean Modified Mathlib/Analysis/ODE/PicardLindelof.lean Modified Mathlib/Analysis/PSeries.lean Modified Mathlib/Analysis/SpecialFunctions/Gamma/Beta.lean Modified Mathlib/Analysis/SpecialFunctions/Gaussian.lean Modified Mathlib/Analysis/SpecialFunctions/Integrals.lean Modified Mathlib/Analysis/SpecialFunctions/JapaneseBracket.lean Modified Mathlib/Analysis/SpecialFunctions/PolarCoord.lean Modified Mathlib/Analysis/SpecialFunctions/Pow/Continuity.lean Modified Mathlib/Analysis/SpecialFunctions/Pow/NNReal.lean Modified Mathlib/Analysis/SpecialFunctions/Pow/Real.lean Modified Mathlib/Analysis/SpecialFunctions/SmoothTransition.lean Modified Mathlib/Analysis/SpecialFunctions/Stirling.lean Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Arctan.lean Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/ArctanDeriv.lean Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Bounds.lean Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Complex.lean Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/ComplexDeriv.lean Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/EulerSineProd.lean Modified Mathlib/Analysis/SpecificLimits/FloorPow.lean Modified Mathlib/Combinatorics/SimpleGraph/Regularity/Bound.lean Modified Mathlib/Combinatorics/SimpleGraph/Regularity/Chunk.lean Modified Mathlib/Combinatorics/SimpleGraph/Regularity/Energy.lean Modified Mathlib/Combinatorics/SimpleGraph/Regularity/Increment.lean Modified Mathlib/Combinatorics/SimpleGraph/Regularity/Lemma.lean Modified Mathlib/Data/PNat/Basic.lean Modified Mathlib/Data/Real/Pi/Bounds.lean Modified Mathlib/Data/Real/Pi/Leibniz.lean Modified Mathlib/Data/Real/Pi/Wallis.lean Modified Mathlib/FieldTheory/AbelRuffini.lean Modified Mathlib/FieldTheory/IsAlgClosed/Spectrum.lean Modified Mathlib/Geometry/Euclidean/Angle/Unoriented/RightAngle.lean Modified Mathlib/Geometry/Euclidean/Inversion/Calculus.lean Modified Mathlib/Geometry/Euclidean/Triangle.lean Modified Mathlib/Geometry/Manifold/Instances/Sphere.lean Modified Mathlib/MeasureTheory/Covering/BesicovitchVectorSpace.lean Modified Mathlib/MeasureTheory/Covering/Differentiation.lean Modified Mathlib/MeasureTheory/Function/ConvergenceInMeasure.lean Modified Mathlib/MeasureTheory/Function/Jacobian.lean Modified Mathlib/MeasureTheory/Function/L2Space.lean Modified Mathlib/MeasureTheory/Function/LpSpace.lean Modified Mathlib/MeasureTheory/Integral/CircleIntegral.lean Modified Mathlib/MeasureTheory/Integral/CircleTransform.lean Modified Mathlib/MeasureTheory/Integral/MeanInequalities.lean Modified Mathlib/MeasureTheory/Integral/PeakFunction.lean Modified Mathlib/MeasureTheory/Integral/TorusIntegral.lean Modified Mathlib/MeasureTheory/Measure/Doubling.lean Modified Mathlib/MeasureTheory/Measure/Haar/NormedSpace.lean Modified Mathlib/MeasureTheory/Measure/Lebesgue/Basic.lean Modified Mathlib/MeasureTheory/Measure/Lebesgue/EqHaar.lean Modified Mathlib/NumberTheory/Cyclotomic/Discriminant.lean Modified Mathlib/NumberTheory/Cyclotomic/PrimitiveRoots.lean Modified Mathlib/NumberTheory/Cyclotomic/Rat.lean Modified Mathlib/NumberTheory/LegendreSymbol/GaussEisensteinLemmas.lean Modified Mathlib/NumberTheory/Liouville/LiouvilleWith.lean Modified Mathlib/NumberTheory/Liouville/Measure.lean Modified Mathlib/NumberTheory/ModularForms/JacobiTheta/Basic.lean Modified Mathlib/NumberTheory/ModularForms/SlashActions.lean Modified Mathlib/NumberTheory/NumberField/Embeddings.lean Modified Mathlib/NumberTheory/SumFourSquares.lean Modified Mathlib/NumberTheory/ZetaFunction.lean Modified Mathlib/NumberTheory/ZetaValues.lean Modified Mathlib/NumberTheory/Zsqrtd/QuadraticReciprocity.lean Modified Mathlib/Probability/StrongLaw.lean Modified Mathlib/Probability/Variance.lean Modified Mathlib/RingTheory/LocalProperties.lean Modified Mathlib/RingTheory/Polynomial/Selmer.lean Modified Mathlib/RingTheory/RootsOfUnity/Basic.lean Modified Mathlib/RingTheory/WittVector/DiscreteValuationRing.lean Modified Mathlib/RingTheory/WittVector/MulCoeff.lean Modified Mathlib/Topology/MetricSpace/GromovHausdorff.lean 2023-08-09 11:48:40 40bc986 chore(LinearAlgebra/TensorProduct): better names for induction hypotheses (#6451) This also makes some proofs more verbose to make it clearer which goal is which. ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/TensorProduct.lean Modified Mathlib/RingTheory/IsTensorProduct.lean Modified Mathlib/RingTheory/MatrixAlgebra.lean Modified Mathlib/RingTheory/RingHom/Surjective.lean Modified Mathlib/RingTheory/TensorProduct.lean 2023-08-09 11:27:24 2610ce3 docs(Computability/NFA) (#6467) ESTIMATED CHANGES Modified Mathlib/Computability/NFA.lean 2023-08-09 08:53:20 07944c7 chore(HahnSeries): use `FunLike` (#6462) ESTIMATED CHANGES Modified Mathlib/RingTheory/HahnSeries.lean +/- theorem HahnSeries.SummableFamily.coe_injective 2023-08-09 08:22:39 71bf59b feat: more basic API for pretriangulated categories (#6377) This PR slightly extends the basic API of pretriangulated categories. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Triangulated/Pretriangulated.lean + theorem CategoryTheory.Pretriangulated.complete_distinguished_triangle_morphism₁ + theorem CategoryTheory.Pretriangulated.complete_distinguished_triangle_morphism₂ + theorem CategoryTheory.Pretriangulated.contractible_distinguished₁ + theorem CategoryTheory.Pretriangulated.contractible_distinguished₂ + theorem CategoryTheory.Pretriangulated.coyoneda_exact₁ + theorem CategoryTheory.Pretriangulated.coyoneda_exact₂ + theorem CategoryTheory.Pretriangulated.coyoneda_exact₃ + theorem CategoryTheory.Pretriangulated.distinguished_cocone_triangle₁ + theorem CategoryTheory.Pretriangulated.distinguished_cocone_triangle₂ + theorem CategoryTheory.Pretriangulated.distinguished_iff_of_iso + theorem CategoryTheory.Pretriangulated.yoneda_exact₂ + theorem CategoryTheory.Pretriangulated.yoneda_exact₃ 2023-08-09 07:07:53 2d11c66 chore(LinearAlgebra/QuadraticForm): scalar tower instances and cleanup (#6433) This is needed to state that the base change of a quadratic form is itself a linear operation. Also adds a linear version of `BilinForm.toQuadraticForm`, and cleans up some docstrings that had been mangled by `fix-comments.py` ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/QuadraticForm/Basic.lean + def BilinForm.toQuadraticFormLinearMap 2023-08-09 06:46:32 003e3ca chore: use #guard_msgs in some tests (#6439) Note that these reveal a regression in `exact?` that has already happened. I'll look into fixing it separately. ESTIMATED CHANGES Modified test/LibrarySearch/basic.lean Modified test/propose.lean Modified test/rewrites.lean 2023-08-09 01:11:14 aa94d2e chore: bump Std (adapt to migration of ListM) (#6413) `ListM` has been [moved to `Std`](https://github.com/leanprover/std4/pull/165) and renamed as `MLList`. There are some slight API functions, that ensure operations are lazy, requiring the addition of some `fun _ =>` here in Mathlib. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Data/Finset/Card.lean Deleted Mathlib/Data/ListM/Basic.lean - def ListM.asArray - def ListM.cases' - def ListM.concat - def ListM.cons' - def ListM.cons - def ListM.drop - def ListM.enum - def ListM.filter - def ListM.filterMap - def ListM.fin - def ListM.first - def ListM.firstM - def ListM.fixl - def ListM.folds - def ListM.head - def ListM.head? - def ListM.isEmpty - def ListM.map - def ListM.monadLift - def ListM.nil - def ListM.ofArray - def ListM.ofList - def ListM.ofListM - def ListM.range - def ListM.runState' - def ListM.squash - def ListM.takeUpToFirst - def ListM.takeWhile - def ListM.uncons - def ListM Renamed Mathlib/Data/ListM/BestFirst.lean to Mathlib/Data/MLList/BestFirst.lean +/- def bestFirstSearch Renamed Mathlib/Data/ListM/DepthFirst.lean to Mathlib/Data/MLList/DepthFirst.lean Renamed Mathlib/Data/ListM/Heartbeats.lean to Mathlib/Data/MLList/Heartbeats.lean - def ListM.whileAtLeastHeartbeatsPercent + def MLList.whileAtLeastHeartbeatsPercent Renamed Mathlib/Data/ListM/IO.lean to Mathlib/Data/MLList/IO.lean - def ListM.lines - def ListM.linesFromHandle - def ListM.runCmd + def MLList.lines + def MLList.linesFromHandle + def MLList.runCmd Renamed Mathlib/Data/ListM/Split.lean to Mathlib/Data/MLList/Split.lean - def ListM.getUpToFirst - def ListM.groupBy - def ListM.splitAtBecomesTrue - def ListM.splitWhile + def MLList.getUpToFirst + def MLList.groupBy + def MLList.splitAtBecomesTrue + def MLList.splitWhile Modified Mathlib/Tactic/LibrarySearch.lean Modified Mathlib/Tactic/Rewrites.lean Renamed test/ListM.lean to test/MLList.lean +/- def l1 +/- def l2 +/- def ll Modified test/search/BestFirst.lean +/- def nbhd Modified test/search/DepthFirst.lean 2023-08-08 21:44:22 ffeae88 chore: Doc-string fixes (#6399) Just some casing issues in some doc-strings in ``` Algebra.Group.Commute Algebra.Group.Units ``` ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Commute.lean Modified Mathlib/Algebra/Group/Units.lean 2023-08-08 21:44:21 e176cb0 chore(Logic/Function/Basic): @[simp] lemmas (#6303) ESTIMATED CHANGES Modified Mathlib/Logic/Function/Basic.lean 2023-08-08 20:21:51 3b1f6c8 chore(Data/Set/Image): @[simp] (#6298) ESTIMATED CHANGES Modified Mathlib/Data/Set/Image.lean 2023-08-08 19:33:33 e4268cf chore(Analysis/NormedSpace/ContinuousLinearMap): forward-port leanprover-community/mathlib#19108 (#6217) ESTIMATED CHANGES Modified Mathlib/Analysis/NormedSpace/ContinuousLinearMap.lean 2023-08-08 18:01:29 cc20f81 feat(GaloisConnection): add 2 lemmas (#6441) ESTIMATED CHANGES Modified Mathlib/Order/GaloisConnection.lean + theorem GaloisCoinsertion.u_bot + theorem GaloisInsertion.l_top 2023-08-08 18:01:27 730a984 feat: Try this: for multiple rewrites (#6434) Splitting this off from #6120, hopefully for faster review. I would like to upstream this file to Std, as it it used by `exact?`. ESTIMATED CHANGES Modified Mathlib/Tactic/Rewrites.lean Modified Mathlib/Tactic/TryThis.lean +/- def addRewriteSuggestion 2023-08-08 18:01:25 cac5d34 feat(Data/Finsupp/Antidiagonal): add `antidiagonal_single` (#6421) ESTIMATED CHANGES Modified Mathlib/Data/Finsupp/Antidiagonal.lean + theorem Finsupp.antidiagonal_single Modified Mathlib/RingTheory/PowerSeries/Basic.lean 2023-08-08 18:01:24 275b475 feat: basic facts about discrete subsets and subgroups (#5969) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Analysis/NormedSpace/Basic.lean Modified Mathlib/GroupTheory/Subgroup/Basic.lean + theorem MonoidHom.rangeRestrict_injective_iff Modified Mathlib/GroupTheory/Subgroup/ZPowers.lean + theorem Int.range_castAddHom Modified Mathlib/Topology/Algebra/UniformGroup.lean + theorem MonoidHom.tendsto_coe_cofinite_of_discrete + theorem Subgroup.tendsto_coe_cofinite_of_discrete Added Mathlib/Topology/DiscreteSubset.lean + theorem Continuous.discrete_of_tendsto_cofinite_cocompact + theorem IsClosed.tendsto_coe_cofinite_iff + theorem IsClosed.tendsto_coe_cofinite_of_discreteTopology + theorem tendsto_cofinite_cocompact_iff + theorem tendsto_cofinite_cocompact_of_discrete Modified Mathlib/Topology/Instances/Real.lean 2023-08-08 16:37:46 ffef20a chore: change 'Porting:' to 'Porting note:' (#6378) ESTIMATED CHANGES Modified Mathlib/Algebra/Category/GroupCat/EpiMono.lean Modified Mathlib/CategoryTheory/Limits/Shapes/ZeroObjects.lean Modified Mathlib/Data/Set/Basic.lean 2023-08-08 16:37:45 f6bf5e0 chore: fix names `(Add)SubmonoidClass.Subtype` (#6374) ESTIMATED CHANGES Modified Mathlib/Algebra/DirectSum/Basic.lean Modified Mathlib/Algebra/DirectSum/Internal.lean Modified Mathlib/Algebra/Module/Submodule/Basic.lean Modified Mathlib/GroupTheory/Submonoid/Membership.lean Modified Mathlib/GroupTheory/Submonoid/Operations.lean - def SubmonoidClass.Subtype +/- theorem SubmonoidClass.coe_subtype + def SubmonoidClass.subtype Modified Mathlib/RingTheory/GradedAlgebra/Basic.lean Modified Mathlib/RingTheory/NonUnitalSubsemiring/Basic.lean Modified Mathlib/RingTheory/Subring/Basic.lean Modified Mathlib/RingTheory/Subsemiring/Basic.lean 2023-08-08 16:37:43 dc585c9 feat: Positivity/Nonnegativity of Eigenvalues of PosDef/PosSemidef Matrices (#6368) Two lemmas: - `Matrix.PosDef.eigenvalues_pos`: $$A \in k^{n\times n}, A > 0 \implies \lambda (A) >0$$ - `Matrix.PosSemidef.eigenvalues_nonneg`: $$A \in k^{n\times n}, A \geq 0 \implies \lambda (A) \geq 0$$ ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/Matrix/PosDef.lean + theorem Matrix.PosDef.eigenvalues_pos + theorem Matrix.PosSemidef.eigenvalues_nonneg Modified Mathlib/LinearAlgebra/Matrix/Spectrum.lean + theorem Matrix.IsHermitian.transpose_eigenvectorMatrix_apply 2023-08-08 15:11:40 1c91df4 feat: port `ac_change` tactic (#5869) Just a macro. ESTIMATED CHANGES Modified Mathlib/Mathport/Syntax.lean Modified Mathlib/Tactic/Convert.lean Modified test/congr.lean 2023-08-08 15:11:38 dbd4d4f feat: cache accepts module names as well as file names (#5577) My most common use case for `lake exe cache get ARG` is with `ARG` an import in a file I have open. This allows you to just copy and paste the import, without having to change `.` to `/` and add `.lean`. ESTIMATED CHANGES Modified Cache/Main.lean 2023-08-08 13:50:24 2be04ba feat: Add ConditionallyCompleteLinearOder versions of Monotone.map_limsSup_of_continuousAt etc. (#6107) Generalize some existing lemmas from `CompleteLinearOrder`s to `ConditionallyCompleteLinearOrder`s, adding the appropriate boundedness assumptions: - `Monotone.map_limsSup_of_continuousAt` + its 3 order-dual variants - `Monotone.map_limsup_of_continuousAt` + its 3 order-dual variants - `Monotone.map_sSup_of_continuousAt'` + its 3 order-dual variants - `Monotone.map_iSup_of_continuousAt'` + its 3 order-dual variants For the first two to work automatically still on `CompleteLinearOrder`s, the existing macro tactic `isBoundedDefault` about boundedness of filters is used. For the last two to work automatically still on `CompleteLinearOrder`s, a similar new macro tactic `bddDefault` about boundedness of sets is included in the PR. ESTIMATED CHANGES Modified Mathlib/Order/Bounds/Basic.lean Modified Mathlib/Order/LiminfLimsup.lean Modified Mathlib/Topology/Algebra/Order/LiminfLimsup.lean Modified Mathlib/Topology/Order/Basic.lean +/- theorem Antitone.map_sInf_of_continuousAt' +/- theorem Antitone.map_sSup_of_continuousAt' +/- theorem Monotone.map_sInf_of_continuousAt' +/- theorem Monotone.map_sSup_of_continuousAt' 2023-08-08 09:48:31 dc0b741 chore: split observe tactic to its own file (#6438) This slightly reduces imports, and tidies up a bit in preparation for attempting to upstream to Std. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Tactic.lean Modified Mathlib/Tactic/Cache.lean Modified Mathlib/Tactic/Common.lean Modified Mathlib/Tactic/LibrarySearch.lean Added Mathlib/Tactic/Observe.lean Modified test/LibrarySearch/basic.lean Added test/LibrarySearch/observe.lean 2023-08-08 09:48:30 5f5bef5 chore: bump Std version (#6435) Notably there is now a `l1 ∪ l2` notation for `List.union`. ESTIMATED CHANGES Modified Mathlib/Data/List/Card.lean +/- theorem List.union_equiv_append Modified Mathlib/Data/List/Intervals.lean Modified Mathlib/Data/List/Lattice.lean - theorem List.mem_inter - theorem List.mem_union Modified Mathlib/Data/List/Perm.lean +/- theorem List.Perm.union_left Modified Mathlib/Data/Multiset/FinsetOps.lean Modified Mathlib/Data/Nat/Factors.lean Modified Mathlib/Data/Nat/PrimeFin.lean Modified Mathlib/Data/String/Basic.lean - theorem String.Iterator.hasNext_cons_addChar Modified lake-manifest.json 2023-08-08 08:22:43 bf29b32 feat: more about terminal objects in the category of types (#6401) ESTIMATED CHANGES Modified Mathlib/AlgebraicTopology/SimplicialSet.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Types.lean Modified Mathlib/CategoryTheory/Limits/Types.lean Modified Mathlib/Logic/Equiv/Basic.lean + def uniqueEquivEquivUnique 2023-08-08 07:29:05 cf31d23 feat: identity is terminal in the over category (#6402) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Over.lean + def CategoryTheory.Over.mkIdTerminal + def CategoryTheory.Under.mkIdInitial 2023-08-08 05:54:21 1d493fe feat(Algebra/GroupPower): weaken TC assumptions (#6389) - Assume `OrderedSemiring` instead of `StrictOrderedSemiring` here and there. - Add `@[simp]` to `zsmul_one`. - Add `exists_lt_nsmul`. ESTIMATED CHANGES Modified Mathlib/Algebra/GroupPower/Lemmas.lean Modified Mathlib/Algebra/Order/Archimedean.lean + theorem exists_lt_nsmul +/- theorem exists_nat_ge 2023-08-08 02:42:14 7c8368b chore: bump leantar version (#6430) This fixes the issue that leantar-0.1.4.exe was not actually statically linked on windows, reported by @MohanadAhmed . Could someone using MacOS aarch64 check that this still works? All other OSs should be unaffected. ESTIMATED CHANGES Modified Cache/IO.lean 2023-08-08 01:35:29 08ac70f chore: silence deprecation warning in DirectSumIsInternal (#6416) @eric-wieser, would you be able to find a better solution to this? ESTIMATED CHANGES Modified Counterexamples/DirectSumIsInternal.lean Modified Mathlib/Algebra/DirectSum/Basic.lean 2023-08-08 00:12:25 d71f10b feat(analysis/specific_limits): Lemma for limit of 1 / n as n → ∞ in real algebras (#6249) This PR introduces a single new lemma about the limit of 1 / n as n → ∞ in the complex numbers. It has been placed in a new file to avoid import creep: the obvious file in which to put it (Analysis.SpecificLimits.Basic) does not have the required imports. Note that this is a prerequisite for an upcoming PR for the Hadamard three-line theorem. Finally, thanks to Patrick Massot for supplying the actual proof on Zulip a while back! ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Analysis/SpecificLimits/Basic.lean + theorem NNReal.tendsto_algebraMap_inverse_atTop_nhds_0_nat + theorem tendsto_algebraMap_inverse_atTop_nhds_0_nat Added Mathlib/Analysis/SpecificLimits/IsROrC.lean + theorem IsROrC.tendsto_inverse_atTop_nhds_0_nat 2023-08-07 22:35:07 3bac0ea feat: two ℤ-basis have the same discriminant (#6424) ESTIMATED CHANGES Modified Mathlib/RingTheory/Discriminant.lean + theorem Algebra.discr_eq_discr 2023-08-07 18:47:22 6bef3bc feat: LinearEquivClass QuadraticForm.IsometryEquiv (#6429) From the lorentz center workshop https://github.com/alexjbest/ant-lorentz ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/QuadraticForm/IsometryEquiv.lean 2023-08-07 16:43:17 759a1d0 feat(RingTheory/TensorProduct): heterogenize (#6417) This: * Improves the module docstring, which was both out of date and not very informative * Addresses a `TODO` to generalize `includeLeft` to commuting actions. As a result a few downstream results are changed to be about `includeLeftRingHom` or `a ⊗ₜ 1`, as carrying around the extra useless ring just makes the lemmas harder to use. Nothing seems to suffer from this change. * Introduces `TensorProduct.AlgebraTensorModule.rid` * Generalizes the following to work for towers of rings: * `Algebra.TensorProduct.algHomOfLinearMapTensorProduct` * `Algebra.TensorProduct.map` * `Algebra.TensorProduct.congr` * `Algebra.TensorProduct.endTensorEndAlgHom` * `Algebra.TensorProduct.ext` (and renames it to `Algebra.TensorProduct.ext'`) * `Algebra.TensorProduct.rid` * Introduces a new `Algebra.TensorProduct.ext` which follows "partially-applied ext lemmas", and uses it to golf a proof in `RingTheory/Etale.lean` I need many of these results for building `AlgEquiv`s relating to the base change of clifford algebras. ESTIMATED CHANGES Modified Mathlib/Algebra/Category/Ring/Constructions.lean Modified Mathlib/Data/Matrix/Kronecker.lean Modified Mathlib/LinearAlgebra/TensorProduct/Tower.lean + theorem TensorProduct.AlgebraTensorModule.rid_tmul Modified Mathlib/RingTheory/Etale.lean Modified Mathlib/RingTheory/IntegralClosure.lean Modified Mathlib/RingTheory/PolynomialAlgebra.lean Modified Mathlib/RingTheory/RingHomProperties.lean Modified Mathlib/RingTheory/TensorProduct.lean +/- def Algebra.TensorProduct.algEquivOfLinearEquivTensorProduct +/- def Algebra.TensorProduct.algHomOfLinearMapTensorProduct +/- def Algebra.TensorProduct.congr +/- theorem Algebra.TensorProduct.congr_apply +/- theorem Algebra.TensorProduct.congr_symm_apply + theorem Algebra.TensorProduct.ext' +/- theorem Algebra.TensorProduct.ext +/- def Algebra.TensorProduct.includeLeft + theorem Algebra.TensorProduct.includeLeftRingHom_comp_algebraMap +/- theorem Algebra.TensorProduct.includeLeft_apply - theorem Algebra.TensorProduct.includeLeft_comp_algebraMap +/- def Algebra.TensorProduct.map +/- theorem Algebra.TensorProduct.map_comp_includeLeft + theorem Algebra.TensorProduct.map_restrictScalars_comp_includeRight +/- theorem Algebra.TensorProduct.map_tmul +/- theorem Algebra.TensorProduct.productMap_apply_tmul +/- theorem Algebra.TensorProduct.productMap_left_apply +/- theorem Algebra.TensorProduct.rid_tmul +/- def Module.endTensorEndAlgHom +/- theorem Module.endTensorEndAlgHom_apply 2023-08-07 15:21:49 8c52db3 feat: Trivial Star makes ConjTranspose_eq_transpose (#6419) Under the trivial star, $A\^H = A\^T$ ESTIMATED CHANGES Modified Mathlib/Data/Matrix/Basic.lean + theorem Matrix.conjTranspose_eq_transpose_of_trivial 2023-08-07 15:21:48 48ee5fd chore: Units -- to_additive no longer complains (#6400) Remove a porting note, since the reported `to_additive` issue seems resolved. ``` Algebra.Group.Units ``` ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Units.lean 2023-08-07 13:57:02 c5f2a15 perf: change to CommGroup instance on units (#6398) Fixes a slowdown issue [reported on Zulip](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/Quotient.20slowdowns/near/382006676). The first declaration in that example (the `Basis` example) takes 268578 to elaborate on master but only 11541 (an order of magnitude better) on this branch, and heartbeats no longer need to be bumped. ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Units.lean Modified Mathlib/RingTheory/ClassGroup.lean 2023-08-07 13:57:01 9a63798 feat(Group): constructors for minimal group axioms (#6173) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Group/Defs.lean Added Mathlib/Algebra/Group/MinimalAxioms.lean + def Group.ofLeftAxioms + def Group.ofRightAxioms 2023-08-07 13:57:00 1accbf5 chore: lower instance priority of CancelMonoid.toMonoid etc (#6145) This PR lowers the instance priority of inheritance going to cancellative structures, specifically those matching the regular expression `(Add)?(Left|Right)?Cancel(Comm)?(Monoid|Semigroup)(WithZero)?`. Most of these cancellative structures either derive from group structures or from (integral) domain structures (including fields). Thus we should be going through the group and semiring hierarchy before going through the cancellative hierarchy. In particular, `IsDomain` is a mixin depending on `Semiring` so trying to synthesize an `IsDomain` instance to satisfy `Monoid` before even trying `Semiring` makes no sense. We came across this issue when adding an extra way to find an `IsDomain` instance, because this slows down the failing cancellative search path enough to cause timeouts. Zulip thread: https://leanprover.zulipchat.com/#narrow/stream/113488-general/topic/Why.20is.20.60simpNF.60.20complaining.20here.3F ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Defs.lean Modified Mathlib/Algebra/GroupWithZero/Defs.lean Modified Mathlib/FieldTheory/RatFunc.lean +/- theorem RatFunc.mk_zero 2023-08-07 12:37:10 763106d feat(CategoryTheory/Monoidal): define whiskering operators (#6420) Extracted from #6307. Just put the whiskerings into the constructor. ESTIMATED CHANGES Modified Mathlib/Algebra/Category/ModuleCat/Monoidal/Basic.lean + def ModuleCat.MonoidalCategory.whiskerLeft + def ModuleCat.MonoidalCategory.whiskerRight Modified Mathlib/CategoryTheory/Bicategory/End.lean Modified Mathlib/CategoryTheory/Monoidal/Category.lean + theorem CategoryTheory.MonoidalCategory.id_tensorHom + def CategoryTheory.MonoidalCategory.ofTensorHom + theorem CategoryTheory.MonoidalCategory.tensorHom_def' + theorem CategoryTheory.MonoidalCategory.tensorHom_id + theorem CategoryTheory.MonoidalCategory.whisker_exchange Modified Mathlib/CategoryTheory/Monoidal/Center.lean Modified Mathlib/CategoryTheory/Monoidal/Discrete.lean Modified Mathlib/CategoryTheory/Monoidal/End.lean Modified Mathlib/CategoryTheory/Monoidal/Free/Basic.lean Modified Mathlib/CategoryTheory/Monoidal/FunctorCategory.lean + def CategoryTheory.Monoidal.FunctorCategory.whiskerLeft + def CategoryTheory.Monoidal.FunctorCategory.whiskerRight Modified Mathlib/CategoryTheory/Monoidal/Mon_.lean Modified Mathlib/CategoryTheory/Monoidal/OfChosenFiniteProducts/Basic.lean +/- def CategoryTheory.monoidalOfChosenFiniteProducts Modified Mathlib/CategoryTheory/Monoidal/OfHasFiniteProducts.lean + theorem CategoryTheory.monoidalOfHasFiniteCoproducts.associator_inv +/- def CategoryTheory.monoidalOfHasFiniteCoproducts + theorem CategoryTheory.monoidalOfHasFiniteProducts.associator_inv +/- def CategoryTheory.monoidalOfHasFiniteProducts Modified Mathlib/CategoryTheory/Monoidal/Opposite.lean Modified Mathlib/CategoryTheory/Monoidal/Subcategory.lean Modified Mathlib/CategoryTheory/Monoidal/Transport.lean 2023-08-07 12:37:09 35d5cfa chore: remove an obsolete porting note (#6418) ESTIMATED CHANGES Modified Mathlib/RingTheory/Polynomial/Basic.lean 2023-08-07 12:37:08 758fc17 feat(Data/Finsupp): make toMultiset and antidiagonal computable (#6331) In Lean 3, the computability of `Finsupp.toMultiset` was poisoned by the `AddMonoid (α →₀ ℕ)` instance, even though this was not used in computation. This is no longer the case in Lean 4, so we can make this computable by adding a `DecidableEq α` argument. We loosely follow the pattern used with `DFinsupp`, where we split the declaration in two, as only one direction needs `DecidableEq α`. As a result, `Finsupp.toMultiset` is now only an `AddMonoidHom`, though `Multiset.toFinset` remains an equiv. We're missing some of the formatting infrastructure for this to be pretty, but this now works: ```lean #eval ((Finsupp.mk Finset.univ ![1, 2, 3] sorry).antidiagonal).image fun x : _ × _ => (x.1.toFun, x.2.toFun) ``` ESTIMATED CHANGES Modified Mathlib/Data/DFinsupp/Multiset.lean Modified Mathlib/Data/Finsupp/Antidiagonal.lean +/- theorem Finsupp.antidiagonal_zero Modified Mathlib/Data/Finsupp/Multiset.lean +/- theorem Finsupp.coe_orderIsoMultiset +/- theorem Finsupp.coe_orderIsoMultiset_symm +/- def Finsupp.orderIsoMultiset +/- def Finsupp.toMultiset + theorem Finsupp.toMultiset_eq_iff - theorem Finsupp.toMultiset_symm_apply +/- theorem Finsupp.toMultiset_toFinsupp +/- def Multiset.toFinsupp +/- theorem Multiset.toFinsupp_apply +/- theorem Multiset.toFinsupp_strictMono +/- theorem Multiset.toFinsupp_support +/- theorem Multiset.toFinsupp_zero Modified Mathlib/Data/MvPolynomial/Basic.lean +/- theorem MvPolynomial.coeff_mul Modified Mathlib/Data/Nat/Choose/Multinomial.lean + def Multiset.multinomial Modified Mathlib/Logic/Hydra.lean +/- theorem Relation.cutExpand_le_invImage_lex Modified Mathlib/RingTheory/MvPolynomial/Homogeneous.lean Modified Mathlib/RingTheory/MvPolynomial/WeightedHomogeneous.lean Modified Mathlib/RingTheory/PowerSeries/Basic.lean +/- theorem MvPowerSeries.coeff_mul 2023-08-07 11:07:47 79082ab chore: bump dependencies (#6412) ESTIMATED CHANGES Modified lake-manifest.json 2023-08-07 08:44:14 5759cae feat: two easy lemmas about List.Lex (#6395) Proves that `[]` is the "bottom element" for `List.Lex r` for any relation `r` and that `List.Lex r [a] [b]` iff `r a b` ESTIMATED CHANGES Modified Mathlib/Data/List/Lex.lean + theorem List.Lex.nil_left_or_eq_nil + theorem List.Lex.singleton_iff 2023-08-07 06:58:47 e033198 chore: bump to nightly-2023-08-05 (#6414) ESTIMATED CHANGES Modified lean-toolchain 2023-08-07 05:07:40 b74a638 fix: allow rw? to look in let expressions (#6411) see https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/panic.20with.20rw.3F/near/382439334 ESTIMATED CHANGES Modified Mathlib/Lean/Meta/DiscrTree.lean Modified test/rewrites.lean 2023-08-07 04:16:50 472450d feat: heterogenize TensorProduct.congr and friends (#6035) The summary is that this PR: * generalizes a handful of results to non-commutative algebras (simply by moving them to an earlier section) * adds heterogenous versions of `map`, `congr`, `mapBilinear`, `homTensorHom`, `leftComm`, `tensorTensorTensorComm` * generalizes `lcurry`, `uncurry`, and `assoc` to take an extra algebra, such that the `A`s in the two different places can separately be replaced with `R` The punchline here is really: ```lean def tensorTensorTensorComm : (M ⊗[R] N) ⊗[A] (P ⊗[R] Q) ≃ₗ[A] (M ⊗[A] P) ⊗[R] (N ⊗[R] Q) := ``` which is valuable for a base change / tensor product of bilinear forms when instantiated as ```lean (M ⊗[R] N) ⊗[A] (Dual A M ⊗[R] Dual R N) ≃ₗ[A] (M ⊗[A] Dual A M) ⊗[R] (N ⊗[R] Dual R N) ``` It would not surprise me if it's possible to introduce a third ring into `tensorTensorTensorComm`, but for now I'd prefer to assume that for that particular definition, two rings is enough for anybody! Unfortunately, this was not the case for `lcurry`, `uncurry`, and `assoc`, which really do need to work over three rings so that the `A`s in the two different places can separately be replaced with `R`; both permutations are needed in the construction of `tensorTensorTensorComm`, and it seemed preferable to not have a plethora of primed variants. I make no claim that the pile of `IsScalarTower` and `SMulCommClass` arguments here are in any sense optimal, besides the fact they specifically enable the use-case I have for the base change of bilinear forms. ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/TensorProduct/Tower.lean +/- def TensorProduct.AlgebraTensorModule.assoc + theorem TensorProduct.AlgebraTensorModule.assoc_symm_tmul + theorem TensorProduct.AlgebraTensorModule.assoc_tmul + def TensorProduct.AlgebraTensorModule.congr + theorem TensorProduct.AlgebraTensorModule.congr_symm_tmul + theorem TensorProduct.AlgebraTensorModule.congr_tmul + def TensorProduct.AlgebraTensorModule.homTensorHomMap + theorem TensorProduct.AlgebraTensorModule.homTensorHomMap_apply +/- def TensorProduct.AlgebraTensorModule.lcurry + def TensorProduct.AlgebraTensorModule.leftComm + theorem TensorProduct.AlgebraTensorModule.leftComm_symm_tmul + theorem TensorProduct.AlgebraTensorModule.leftComm_tmul +/- def TensorProduct.AlgebraTensorModule.lift.equiv + def TensorProduct.AlgebraTensorModule.map + def TensorProduct.AlgebraTensorModule.mapBilinear + theorem TensorProduct.AlgebraTensorModule.mapBilinear_apply + theorem TensorProduct.AlgebraTensorModule.map_add_left + theorem TensorProduct.AlgebraTensorModule.map_add_right + theorem TensorProduct.AlgebraTensorModule.map_smul_left + theorem TensorProduct.AlgebraTensorModule.map_smul_right + theorem TensorProduct.AlgebraTensorModule.map_tmul + def TensorProduct.AlgebraTensorModule.rightComm + theorem TensorProduct.AlgebraTensorModule.rightComm_symm_tmul + theorem TensorProduct.AlgebraTensorModule.rightComm_tmul + def TensorProduct.AlgebraTensorModule.tensorTensorTensorComm + theorem TensorProduct.AlgebraTensorModule.tensorTensorTensorComm_symm_tmul + theorem TensorProduct.AlgebraTensorModule.tensorTensorTensorComm_tmul +/- def TensorProduct.AlgebraTensorModule.uncurry Modified Mathlib/RingTheory/TensorProduct.lean +/- def LinearMap.baseChange 2023-08-06 22:44:08 44692e2 chore: more universe generalisations / fixes (#5659) There are changes of two types: first I add some `.{w}` in some declarations to ensure that universes are in the right order. Secondly I generalise some results from `Category.{max u1 v1, u2}` to `Category.{v2, u2}`. From the Copenhagen workshop. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Limits/Shapes/Multiequalizer.lean +/- def CategoryTheory.Limits.Multicofork.ofπ +/- def CategoryTheory.Limits.Multifork.ofι Modified Mathlib/CategoryTheory/Sites/Sheaf.lean +/- def CategoryTheory.Presheaf.IsSheaf.amalgamate +/- theorem CategoryTheory.Presheaf.IsSheaf.amalgamate_map +/- theorem CategoryTheory.Presheaf.IsSheaf.hom_ext +/- theorem CategoryTheory.Presheaf.isSheaf_iff_isSheaf' +/- theorem CategoryTheory.Presheaf.isSheaf_iff_isSheaf_forget Modified Mathlib/CategoryTheory/Sites/Whiskering.lean 2023-08-06 20:21:38 dc0a7a9 feat: change definition of natCast in Cardinal to lift #(Fin n) (#6384) The new definition is conceptually more satisfactory. By also changing the definition of the `Zero` and `One` instances, we get `((0 : ℕ) : Cardinal) = 0` and `((1 : ℕ) : Cardinal) = 1` definitionally (which wasn't true before), which is in practice more convenient than definitional equality with `PEmpty` or `PUnit`. ESTIMATED CHANGES Modified Archive/Sensitivity.lean Modified Mathlib/SetTheory/Cardinal/Basic.lean +/- theorem Cardinal.lift_mk_fin +/- theorem Cardinal.lift_one +/- theorem Cardinal.lift_zero +/- theorem Cardinal.mk_fintype +/- theorem Cardinal.mk_option +/- theorem Cardinal.nat_succ +/- theorem Cardinal.power_one Modified Mathlib/SetTheory/Cardinal/Cofinality.lean +/- theorem Ordinal.cof_zero Modified Mathlib/SetTheory/Cardinal/Ordinal.lean Modified Mathlib/SetTheory/Ordinal/Basic.lean +/- theorem Ordinal.card_one +/- theorem Ordinal.card_zero 2023-08-06 19:00:28 2ea340b feat: localization of adjunctions between categories (#6235) This PR shows that under suitable assumptions, adjunctions can be localized. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Localization/Adjunction.lean + theorem CategoryTheory.Adjunction.Localization.ε_app + theorem CategoryTheory.Adjunction.Localization.η_app + theorem CategoryTheory.Adjunction.localization_counit_app + theorem CategoryTheory.Adjunction.localization_unit_app 2023-08-06 18:36:33 0cacd20 feat: the category of short complexes has colimits (#6324) ESTIMATED CHANGES Modified Mathlib/Algebra/Homology/ShortComplex/Limits.lean + def CategoryTheory.ShortComplex.isColimitOfIsColimitπ 2023-08-06 16:57:28 fed8b91 feat(ImportGraph): add option to exclude imports from other packages (#6151) Add an option `lake exe graph --to MyProject.XY --noDep` which removes all nodes that do not start in `MyProject`. ESTIMATED CHANGES Modified ImportGraph/Main.lean Modified Mathlib.lean Added Mathlib/Lean/Data/NameMap.lean + def Lean.NameMap.filter + def Lean.NameMap.filterMap Modified Mathlib/Lean/Name.lean + def getModule 2023-08-06 10:15:18 d3bfbe4 feat: short exact sequence of free modules (#6360) We prove that if the left and right term in a short exact sequence of modules are free, then the middle term is free as well, and related results. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Category/ModuleCat/Free.lean + theorem ModuleCat.disjoint_span_sum + theorem ModuleCat.family_injective_shortExact + theorem ModuleCat.free_shortExact + theorem ModuleCat.free_shortExact_finrank_add + theorem ModuleCat.free_shortExact_rank_add + theorem ModuleCat.linearIndependent_leftExact + theorem ModuleCat.linearIndependent_shortExact + theorem ModuleCat.span_exact + theorem ModuleCat.span_rightExact Modified Mathlib/LinearAlgebra/LinearIndependent.lean + theorem Submodule.ker_range_disjoint 2023-08-06 07:06:02 87d6e2e feat: composition properties of final functors (#6250) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Limits/Final.lean - theorem CategoryTheory.Functor.Final.cofinal_of_colimit_comp_coyoneda_iso_pUnit +/- def CategoryTheory.Functor.Final.colimitCompCoyonedaIso + theorem CategoryTheory.Functor.cofinal_of_colimit_comp_coyoneda_iso_pUnit + theorem CategoryTheory.Functor.final_comp + theorem CategoryTheory.Functor.final_comp_equivalence + theorem CategoryTheory.Functor.final_equivalence_comp + theorem CategoryTheory.Functor.final_iff_comp_equivalence + theorem CategoryTheory.Functor.final_iff_comp_final_full_faithful + theorem CategoryTheory.Functor.final_iff_equivalence_comp + theorem CategoryTheory.Functor.final_iff_final_comp + theorem CategoryTheory.Functor.final_iff_isIso_colimit_pre + theorem CategoryTheory.Functor.final_natIso_iff + theorem CategoryTheory.Functor.final_of_comp_full_faithful' + theorem CategoryTheory.Functor.final_of_comp_full_faithful + theorem CategoryTheory.Functor.final_of_equivalence_comp + theorem CategoryTheory.Functor.final_of_final_comp + theorem CategoryTheory.Functor.initial_comp + theorem CategoryTheory.Functor.initial_comp_equivalence + theorem CategoryTheory.Functor.initial_equivalence_comp + theorem CategoryTheory.Functor.initial_iff_comp_equivalence + theorem CategoryTheory.Functor.initial_iff_comp_initial_full_faithful + theorem CategoryTheory.Functor.initial_iff_equivalence_comp + theorem CategoryTheory.Functor.initial_iff_initial_comp + theorem CategoryTheory.Functor.initial_natIso_iff + theorem CategoryTheory.Functor.initial_of_comp_full_faithful' + theorem CategoryTheory.Functor.initial_of_comp_full_faithful + theorem CategoryTheory.Functor.initial_of_equivalence_comp + theorem CategoryTheory.Functor.initial_of_initial_comp 2023-08-06 06:23:16 0b36c90 feat: basic results about preservation of kernels/cokernels (#6279) This PR shows basic results about the preservation of (limit) kernels forks by functors which preserve zero morphisms. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Limits/Preserves/Shapes/Kernels.lean + def CategoryTheory.Limits.CokernelCofork.isColimitMapCoconeEquiv + def CategoryTheory.Limits.CokernelCofork.map + def CategoryTheory.Limits.CokernelCofork.mapIsColimit + theorem CategoryTheory.Limits.CokernelCofork.map_condition + theorem CategoryTheory.Limits.CokernelCofork.map_π + def CategoryTheory.Limits.KernelFork.isLimitMapConeEquiv + def CategoryTheory.Limits.KernelFork.map + def CategoryTheory.Limits.KernelFork.mapIsLimit + theorem CategoryTheory.Limits.KernelFork.map_condition + theorem CategoryTheory.Limits.KernelFork.map_ι 2023-08-06 06:23:15 e966251 feat: localization functors are preserved through equivalences (#6236) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Localization/Equivalence.lean + theorem CategoryTheory.Functor.IsLocalization.of_equivalence_source + theorem CategoryTheory.Functor.IsLocalization.of_equivalences + theorem CategoryTheory.Localization.equivalence_counitIso_app Modified Mathlib/CategoryTheory/MorphismProperty.lean + def CategoryTheory.MorphismProperty.isoClosure + theorem CategoryTheory.MorphismProperty.isoClosure_respectsIso + theorem CategoryTheory.MorphismProperty.subset_isoClosure 2023-08-06 06:23:14 a1293ce feat: duality results for the right homology of short complexes (#6227) This PR shows duality results for left and right homology of short complexes. From the corresponding result for left homology, it is deduced that a morphism of short complexes which is epi on the left object, iso on the middle object and mono on the right object induces an isomorphism in right homology. ESTIMATED CHANGES Modified Mathlib/Algebra/Homology/ShortComplex/RightHomology.lean + def CategoryTheory.ShortComplex.LeftHomologyMapData.op + def CategoryTheory.ShortComplex.LeftHomologyMapData.unop + theorem CategoryTheory.ShortComplex.RightHomologyData.ofEpiOfIsIsoOfMono'_H + theorem CategoryTheory.ShortComplex.RightHomologyData.ofEpiOfIsIsoOfMono'_Q + theorem CategoryTheory.ShortComplex.RightHomologyData.ofEpiOfIsIsoOfMono'_g'_τ₃ + theorem CategoryTheory.ShortComplex.RightHomologyData.ofEpiOfIsIsoOfMono'_p + theorem CategoryTheory.ShortComplex.RightHomologyData.ofEpiOfIsIsoOfMono'_ι + theorem CategoryTheory.ShortComplex.RightHomologyData.ofEpiOfIsIsoOfMono_H + theorem CategoryTheory.ShortComplex.RightHomologyData.ofEpiOfIsIsoOfMono_Q + theorem CategoryTheory.ShortComplex.RightHomologyData.ofEpiOfIsIsoOfMono_g' + theorem CategoryTheory.ShortComplex.RightHomologyData.ofEpiOfIsIsoOfMono_p + theorem CategoryTheory.ShortComplex.RightHomologyData.ofEpiOfIsIsoOfMono_ι + def CategoryTheory.ShortComplex.RightHomologyMapData.ofEpiOfIsIsoOfMono + def CategoryTheory.ShortComplex.RightHomologyMapData.op + def CategoryTheory.ShortComplex.RightHomologyMapData.unop + theorem CategoryTheory.ShortComplex.hasRightHomology_of_epi_of_isIso_of_mono' + theorem CategoryTheory.ShortComplex.hasRightHomology_of_epi_of_isIso_of_mono + theorem CategoryTheory.ShortComplex.hasRightHomology_of_iso + theorem CategoryTheory.ShortComplex.leftHomologyMap'_op + theorem CategoryTheory.ShortComplex.leftHomologyMap_op + theorem CategoryTheory.ShortComplex.rightHomologyMap'_op + theorem CategoryTheory.ShortComplex.rightHomologyMap_op 2023-08-06 05:35:56 3e43995 chore: update links to issue #5081 to std4#86 (#6392) ESTIMATED CHANGES Modified Mathlib/Algebra/Category/Ring/Adjunctions.lean Modified Mathlib/Algebra/Category/Ring/Basic.lean Modified Mathlib/Topology/Category/UniformSpace.lean 2023-08-06 01:46:05 5df781c feat: CostructuredArrow is locally small (#6388) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/StructuredArrow.lean 2023-08-06 01:46:04 5499730 chore: tidy various files (#6382) ESTIMATED CHANGES Modified Mathlib/Algebra/Category/GroupCat/FilteredColimits.lean Modified Mathlib/AlgebraicGeometry/PresheafedSpace/HasColimits.lean Modified Mathlib/Analysis/Calculus/DiffContOnCl.lean + theorem DiffContOnCl.differentiableAt' - theorem DiffContOnCl.differentiable_at' Modified Mathlib/Analysis/Calculus/FDeriv/Mul.lean Modified Mathlib/MeasureTheory/Function/Egorov.lean + def MeasureTheory.Egorov.notConvergentSeqLTIndex + theorem MeasureTheory.Egorov.notConvergentSeqLTIndex_spec - def MeasureTheory.Egorov.notConvergentSeqLtIndex - theorem MeasureTheory.Egorov.notConvergentSeqLtIndex_spec Modified Mathlib/Order/Filter/Basic.lean Modified Mathlib/RingTheory/AdjoinRoot.lean Modified Mathlib/RingTheory/IsTensorProduct.lean + theorem IsBaseChange.algHom_ext' + theorem IsBaseChange.algHom_ext - theorem IsBaseChange.alg_hom_ext' - theorem IsBaseChange.alg_hom_ext 2023-08-06 01:46:03 02a98bc chore(Algebra/Hom/GroupAction): add `initialize_simps_projections` (#6343) Without this change the lemmas were called `*_toFun` instead of `*_apply`. These lines should go immediately after the (transitive) `FunLike` instance is configured. This PR also tidies some whitespace around `where`s. ESTIMATED CHANGES Modified Mathlib/Algebra/Hom/GroupAction.lean 2023-08-06 01:46:01 4d576bb chore: add `extract_goal` to `Tactic.Common` (#6313) As suggested in the now-merged #4595, introducing `extract_goal`, this PR adds `extract_goal` to the list of "Common" tactics. ESTIMATED CHANGES Modified Mathlib/Tactic/Common.lean 2023-08-06 01:46:00 7d39ff4 feat: forward port of AlgebraicTopology.DoldKan.EquivalencePseudoabelian (#6293) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/AlgebraicTopology/DoldKan/EquivalencePseudoabelian.lean + def CategoryTheory.Idempotents.DoldKan.N + def CategoryTheory.Idempotents.DoldKan.equivalence + theorem CategoryTheory.Idempotents.DoldKan.equivalence_counitIso + theorem CategoryTheory.Idempotents.DoldKan.equivalence_functor + theorem CategoryTheory.Idempotents.DoldKan.equivalence_inverse + theorem CategoryTheory.Idempotents.DoldKan.equivalence_unitIso + theorem CategoryTheory.Idempotents.DoldKan.hN₁ + theorem CategoryTheory.Idempotents.DoldKan.hΓ₀ + theorem CategoryTheory.Idempotents.DoldKan.hε + theorem CategoryTheory.Idempotents.DoldKan.hη + def CategoryTheory.Idempotents.DoldKan.Γ + def CategoryTheory.Idempotents.DoldKan.ε + def CategoryTheory.Idempotents.DoldKan.η Modified Mathlib/AlgebraicTopology/DoldKan/NCompGamma.lean + theorem AlgebraicTopology.DoldKan.compatibility_Γ₂N₁_Γ₂N₂_inv_app Modified Mathlib/CategoryTheory/Functor/Category.lean 2023-08-06 01:45:59 2ce22eb feat: finally small categories (#6264) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/CategoryTheory/EssentiallySmall.lean Modified Mathlib/CategoryTheory/Limits/EssentiallySmall.lean Modified Mathlib/CategoryTheory/Limits/Final.lean + theorem CategoryTheory.Functor.Final.hasColimitsOfShape_of_final + theorem CategoryTheory.Functor.Initial.hasLimitsOfShape_of_initial Added Mathlib/CategoryTheory/Limits/FinallySmall.lean + def CategoryTheory.FinalModel + theorem CategoryTheory.FinallySmall.mk' + def CategoryTheory.InitialModel + theorem CategoryTheory.InitiallySmall.mk' + theorem CategoryTheory.Limits.hasColimitsOfShape_of_finallySmall + theorem CategoryTheory.Limits.hasLimitsOfShape_of_initiallySmall + theorem CategoryTheory.finallySmall_of_essentiallySmall + theorem CategoryTheory.initiallySmall_of_essentiallySmall 2023-08-06 01:45:58 79a62b9 feat: transfer Functor.Final across natural isomorphisms (#6232) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Comma.lean + def CategoryTheory.Comma.mapLeftEq + def CategoryTheory.Comma.mapLeftIso + def CategoryTheory.Comma.mapRightEq + def CategoryTheory.Comma.mapRightIso Modified Mathlib/CategoryTheory/Limits/Final.lean + theorem CategoryTheory.Functor.final_of_natIso + theorem CategoryTheory.Functor.initial_of_natIso Modified Mathlib/CategoryTheory/StructuredArrow.lean + def CategoryTheory.CostructuredArrow.mapIso + def CategoryTheory.CostructuredArrow.mapNatIso + def CategoryTheory.StructuredArrow.mapIso + def CategoryTheory.StructuredArrow.mapNatIso 2023-08-06 00:54:07 3ce19f5 chore: move some benchmarking files over from Kha/mathlib4-bench (#5993) This allows us to customize the benchmarking metrics in this repo ESTIMATED CHANGES Added scripts/bench/accumulate_profile.py Added scripts/bench/fake-root/bin/lean Added scripts/bench/fake-root/bin/leanc Added scripts/bench/fake-root/lib/lean/libleanshared.so Added scripts/bench/run Added scripts/bench/temci-config.run.yml Added scripts/bench/temci-config.yml 2023-08-05 11:50:43 944ee07 feat: characterizations of `IsBigO` along `atTop` (#6198) This PR adds a way to characterize `IsBigO` along the `atTop` filter, for cases where we want the constant to depend on a "starting point" `n₀`. It also adds the lemma `tendsto_nhds_of_eventually_eq`. ESTIMATED CHANGES Modified Mathlib/Analysis/Asymptotics/Asymptotics.lean + theorem Asymptotics.isBigO_atTop_iff_eventually_exists + theorem Asymptotics.isBigO_atTop_iff_eventually_exists_pos Modified Mathlib/Order/BoundedOrder.lean + theorem Antitone.exists + theorem Monotone.exists + theorem forall_ge_iff + theorem forall_le_iff Modified Mathlib/Order/Filter/AtTopBot.lean + theorem Filter.exists_eventually_atBot + theorem Filter.exists_eventually_atTop Modified Mathlib/Topology/Basic.lean + theorem tendsto_nhds_of_eventually_eq 2023-08-05 10:32:30 675f2fd feat: (co/bi/)products unchanged by reindexing and isomorphism of factors (#6259) ESTIMATED CHANGES Modified Mathlib/Algebra/Homology/DifferentialObject.lean Modified Mathlib/CategoryTheory/EqToHom.lean + theorem CategoryTheory.eqToHom_iso_hom_naturality + theorem CategoryTheory.eqToHom_iso_inv_naturality + theorem CategoryTheory.eqToHom_naturality Modified Mathlib/CategoryTheory/Limits/Shapes/Biproducts.lean + def CategoryTheory.Limits.biproduct.whisker_equiv + theorem CategoryTheory.Limits.biproduct.whisker_equiv_hom_eq_lift + theorem CategoryTheory.Limits.biproduct.whisker_equiv_inv_eq_lift Modified Mathlib/CategoryTheory/Limits/Shapes/Products.lean + def CategoryTheory.Limits.Pi.whisker_equiv + def CategoryTheory.Limits.Sigma.whisker_equiv 2023-08-05 09:50:06 b76454f chore: cache doesn't need to traverse the cache directory (#6197) ESTIMATED CHANGES Modified Cache/IO.lean - def Cache.IO.HashMap.filter + def Cache.IO.HashMap.filterExists Modified Cache/Requests.lean 2023-08-05 06:34:12 f5d12b2 feat: sufficient condition for StructuredArrow.pre to be an equivalence (#6248) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Comma.lean Modified Mathlib/CategoryTheory/StructuredArrow.lean 2023-08-05 05:24:21 f285e91 feat: sufficient condition for StructuredArrow.post to be an equivalence (#6218) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/StructuredArrow.lean 2023-08-04 22:34:37 acfe2e4 README: Zulip no longer needs registration (#6332) as discussed on (how meta) ESTIMATED CHANGES Modified README.md 2023-08-04 22:34:36 c4679d7 chore: tidy various files (#6291) ESTIMATED CHANGES Modified Mathlib/Algebra/BigOperators/Fin.lean Modified Mathlib/Analysis/SpecialFunctions/Pow/NNReal.lean Modified Mathlib/Data/Finset/Lattice.lean + theorem Finset.isGLB_iff_isLeast + theorem Finset.isGLB_mem + theorem Finset.isLUB_iff_isGreatest + theorem Finset.isLUB_mem - theorem Finset.is_glb_iff_is_least - theorem Finset.is_glb_mem - theorem Finset.is_lub_iff_is_greatest - theorem Finset.is_lub_mem Modified Mathlib/Data/Fintype/Card.lean + def Equiv.ofLeftInverseOfCardLE - def Equiv.ofLeftInverseOfCardLe + def Equiv.ofRightInverseOfCardLE - def Equiv.ofRightInverseOfCardLe - theorem Fintype.card_Prop + theorem Fintype.card_prop + theorem Function.Embedding.isEmpty_of_card_lt - theorem Function.Embedding.is_empty_of_card_lt + def Function.Embedding.truncOfCardLE - def Function.Embedding.truncOfCardLe + theorem isEmpty_fintype - theorem is_empty_fintype Modified Mathlib/Data/List/Perm.lean Modified Mathlib/Data/Real/EReal.lean Modified Mathlib/FieldTheory/PrimitiveElement.lean Modified Mathlib/GroupTheory/Congruence.lean Modified Mathlib/LinearAlgebra/Basis.lean + theorem Basis.coe_mkFinConsOfLE - theorem Basis.coe_mkFinConsOfLe + def Basis.groupSMul + theorem Basis.groupSMul_apply + theorem Basis.groupSMul_span_eq_top - def Basis.groupSmul - theorem Basis.groupSmul_apply - theorem Basis.groupSmul_span_eq_top Modified Mathlib/LinearAlgebra/FreeModule/PID.lean Modified Mathlib/MeasureTheory/Integral/RieszMarkovKakutani.lean + theorem rieszContentAux_image_nonempty - theorem riesz_content_aux_image_nonempty Modified Mathlib/ModelTheory/Semantics.lean + theorem FirstOrder.Language.BoundedFormula.realize_castLE_of_eq - theorem FirstOrder.Language.BoundedFormula.realize_castLe_of_eq Modified Mathlib/Order/ConditionallyCompleteLattice/Basic.lean Modified Mathlib/Order/Interval.lean +/- theorem NonemptyInterval.coe_coeHom Modified Mathlib/Order/SuccPred/LinearLocallyFinite.lean Modified Mathlib/Order/WithBot.lean Modified Mathlib/RingTheory/GradedAlgebra/Radical.lean Modified Mathlib/RingTheory/WittVector/Frobenius.lean - theorem WittVector.frobeniusPoly_zMod + theorem WittVector.frobeniusPoly_zmod Modified Mathlib/RingTheory/WittVector/StructurePolynomial.lean Modified Mathlib/RingTheory/WittVector/WittPolynomial.lean - theorem wittPolynomial_zMod_self + theorem wittPolynomial_zmod_self Modified Mathlib/Topology/Sheaves/PUnit.lean - theorem TopCat.Presheaf.isSheaf_on_pUnit_iff_isTerminal - theorem TopCat.Presheaf.isSheaf_on_pUnit_of_isTerminal + theorem TopCat.Presheaf.isSheaf_on_punit_iff_isTerminal + theorem TopCat.Presheaf.isSheaf_on_punit_of_isTerminal Modified Mathlib/Topology/Sheaves/Skyscraper.lean 2023-08-04 21:46:18 314914f feat(Algebra/Order/LatticeGroup): Add missing `abs_inv` to LatticeGroup (#6357) Adds missing `abs_inv` to LatticeGroup ESTIMATED CHANGES Modified Mathlib/Algebra/Order/LatticeGroup.lean + theorem LatticeOrderedCommGroup.abs_inv 2023-08-04 18:54:43 90907eb feat(SetTheory/Cardinal): add `ofNat` lemmas (#6362) ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/Finrank.lean + theorem FiniteDimensional.rank_eq_ofNat_iff_finrank_eq_ofNat + theorem FiniteDimensional.rank_eq_one_iff_finrank_eq_one Modified Mathlib/SetTheory/Cardinal/Basic.lean + theorem Cardinal.toNat_eq_ofNat Modified Mathlib/SetTheory/Cardinal/Finite.lean 2023-08-04 16:36:44 b80c0cc ConjTranspose multiplication of a matrix by itself is Positive Semidefinite (#6359) This PR provides two lemmas `isPosSemidef_conjTranspose_mul_self` and `isPosSemidef_self_mul_conjTranspose` stating that for any matrix $A$ the products $A^HA$ and $AA^H$ in the `IsROrC` fields are positive semidefinite. ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/Matrix/PosDef.lean + theorem Matrix.posSemidef_conjTranspose_mul_self + theorem Matrix.posSemidef_self_mul_conjTranspose 2023-08-04 14:41:43 b24f81f fix(CategoryTheory/Bicategory): fix wrong names (#6311) ESTIMATED CHANGES Modified Mathlib/Tactic/CategoryTheory/BicategoryCoherence.lean Modified test/CategoryTheory/Coherence.lean 2023-08-04 10:53:08 8b47bca fix(data/{Finset,Multiset}): better line breaks in Repr (#6333) See the attached tests Previously this gave `{[1, 2,\n 3], [4, 5, 6]}`, where the line break would be within items rather than between items. ESTIMATED CHANGES Modified Mathlib/Data/Finset/Sort.lean Modified Mathlib/Data/Multiset/Sort.lean Added test/finset_repr.lean 2023-08-04 10:00:17 d2b1b37 feat: complements on connectedness and path-connectedness (#6347) ESTIMATED CHANGES Modified Mathlib/Topology/Connected.lean + theorem IsPreconnected.induction₂' + theorem IsPreconnected.induction₂ + theorem PreconnectedSpace.induction₂' + theorem PreconnectedSpace.induction₂ Modified Mathlib/Topology/PathConnected.lean + theorem IsPathConnected.image' + def Path.map' + theorem isPathConnected_singleton 2023-08-04 08:48:00 d32630e feat: maps between the unitization of a non-unital subalgebra and its `Algebra.adjoin` (#5602) If `S` is non-unital subalgebra of a unital `R`-algebra `A`, there is a natural surjective map `Unitization R S →ₐ[R] Algebra.adjoin R (S : Set A)`. When `1 ∉ S` and `R` is a field, this becomes and `AlgEquiv`. We specialize this to the `ℕ`-unitization of a non-unital subsemiring and its `Subsemiring.closure`, as well as the `ℤ`-unitization of a non-unital subring and its `Subring.closure`. We also extend the above map to a `StarAlgHom` in the case of `NonUnitalStarSubalgebra`s. This continues the non-unital-ization of mathlib. - [x] depends on: #5151 - [x] depends on: #5512 - [x] depends on: #5537 ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Algebra/Subalgebra/Unitization.lean + def NonUnitalStarSubalgebra.toStarSubalgebra + theorem NonUnitalStarSubalgebra.toStarSubalgebra_toNonUnitalStarSubalgebra + def NonUnitalStarSubalgebra.unitization + theorem NonUnitalStarSubalgebra.unitization_apply_coe + theorem NonUnitalStarSubalgebra.unitization_surjective + def NonUnitalSubalgebra.toSubalgebra + theorem NonUnitalSubalgebra.toSubalgebra_toNonUnitalSubalgebra + def NonUnitalSubalgebra.unitization + theorem NonUnitalSubalgebra.unitization_apply_coe + theorem NonUnitalSubalgebra.unitization_injective + theorem NonUnitalSubalgebra.unitization_surjective + def NonUnitalSubring.toSubring + theorem NonUnitalSubring.toSubring_toNonUnitalSubring + def NonUnitalSubring.unitization + theorem NonUnitalSubring.unitization_apply_coe + theorem NonUnitalSubring.unitization_surjective + def NonUnitalSubsemiring.toSubsemiring + theorem NonUnitalSubsemiring.toSubsemiring_toNonUnitalSubsemiring + def NonUnitalSubsemiring.unitization + theorem NonUnitalSubsemiring.unitization_apply_coe + theorem NonUnitalSubsemiring.unitization_surjective + theorem StarSubalgebra.one_mem_toNonUnitalStarSubalgebra + def StarSubalgebra.toNonUnitalStarSubalgebra + theorem StarSubalgebra.toNonUnitalStarSubalgebra_toStarSubalgebra + theorem Subalgebra.one_mem_toNonUnitalSubalgebra + def Subalgebra.toNonUnitalSubalgebra + theorem Subalgebra.toNonUnitalSubalgebra_toSubalgebra + theorem Subring.one_mem_toNonUnitalSubring + def Subring.toNonUnitalSubring + theorem Subring.toNonUnitalSubring_toSubring + theorem Subsemiring.one_mem_toNonUnitalSubsemiring + def Subsemiring.toNonUnitalSubsemiring + theorem Subsemiring.toNonUnitalSubsemiring_toSubsemiring Modified Mathlib/GroupTheory/GroupAction/SubMulAction.lean + theorem AddSubgroupClass.zsmulMemClass + theorem AddSubmonoidClass.nsmulMemClass Modified Mathlib/RingTheory/Adjoin/Basic.lean + def Subring.closureEquivAdjoinInt + def Subsemiring.closureEquivAdjoinNat Modified Mathlib/RingTheory/Subring/Basic.lean + theorem Subring.closure_induction' Modified Mathlib/RingTheory/Subsemiring/Basic.lean + theorem Subsemiring.closure_induction' 2023-08-04 06:37:12 72ea277 chore: add @joelriou as maintainer in README.md (#6358) ESTIMATED CHANGES Modified README.md 2023-08-03 20:55:48 067bc40 feat: (Mathlib.Data.Matrix.Rank): rank of a matrix unaffected by multiplication with invertible matrices (#6051) This PR provides two lemmas: - `Matrix.rank_mul_eq_left_of_isUnit_det` in a commutative ring R post multiplication (multiplication from the right) by an invertible matrix does not change the rank of a matrix. With $A$ an invertible matrix: $$\text{rank}(BA) = \text{rank}(B)$$ - `Matrix.rank_mul_eq_right_of_isUnit_det` in a commutative ring R pre-multiplication (multiplication from the left) by an invertible matrix does not change the rank of a matrix. With $A$ an invertible matrix: $$\text{rank}(AB) = \text{rank}(B)$$ ESTIMATED CHANGES Modified Mathlib/Data/Matrix/Rank.lean + theorem Matrix.rank_mul_eq_left_of_isUnit_det + theorem Matrix.rank_mul_eq_right_of_isUnit_det 2023-08-03 19:38:39 e77e8e1 refactor: generalize shifts from bitvector to arbitrary vectors (#5896) ESTIMATED CHANGES Modified Mathlib/Data/Bitvec/Defs.lean - def Bitvec.fillShr Modified Mathlib/Data/Vector.lean + def Vector.shiftLeftFill + def Vector.shiftRightFill 2023-08-03 18:25:03 74ee5fb fix: Mathlib/Control/ULiftable doc typos (#6349) small typos in docstrings ESTIMATED CHANGES Modified Mathlib/Control/ULiftable.lean 2023-08-03 17:42:52 32fa6fe chore(Analysis/NormedSpace/Star/Multiplier); golf some proofs (#6329) `coeHom` now elaborates 10x faster on my machine. While perhaps a bit cryptic, this new spelling makes it clear which bit of the proofs are not just unfolding. ESTIMATED CHANGES Modified Mathlib/Analysis/NormedSpace/Star/Multiplier.lean 2023-08-03 16:32:37 1f78f7f feat: Finite maximality/minimality (#6337) This PR slightly tidies the proof of `Set.Finite.exists_maximal_wrt`, and adds a minimality version. It also adds primed versions of both that alter the finiteness hypothesis to a weaker hypothesis where only the image is finite. ESTIMATED CHANGES Modified Mathlib/Data/Set/Finite.lean + theorem Set.Finite.exists_maximal_wrt' +/- theorem Set.Finite.exists_maximal_wrt + theorem Set.Finite.exists_minimal_wrt' + theorem Set.Finite.exists_minimal_wrt 2023-08-03 15:55:57 7cbfbc1 feat: rename Data.Set.Ncard to Data.Set.Card (#6341) We rename `Data.Set.Ncard` to `Data.Set.Card`, since this file now contains two separate cardinality definitions, not just `ncard`. ESTIMATED CHANGES Added Card Modified Mathlib.lean Renamed Mathlib/Data/Set/Ncard.lean to Mathlib/Data/Set/Card.lean 2023-08-03 13:07:21 387ebe0 chore: bump to nightly-2023-08-03 (#6334) ESTIMATED CHANGES Modified lean-toolchain 2023-08-03 10:45:18 92f695f refactor(LinearAlgebra): Ensure `ChooseBasisIndex` is finite on trivial modules (#6322) This also changes `basisFintypeOfFiniteSpans` to use `Finite` rather than `Fintype`, as it was noncomputable anyway. This means it has to be renamed to `basis_finite_of_finite_spans` as it now is a proof! ESTIMATED CHANGES Modified Mathlib/FieldTheory/Tower.lean +/- theorem FiniteDimensional.finrank_mul_finrank' Modified Mathlib/LinearAlgebra/Contraction.lean Modified Mathlib/LinearAlgebra/Dimension.lean - def basisFintypeOfFiniteSpans + theorem basis_finite_of_finite_spans Modified Mathlib/LinearAlgebra/Dual.lean +/- theorem Module.dual_rank_eq +/- theorem Module.erange_coe Modified Mathlib/LinearAlgebra/FreeModule/Basic.lean +/- def Module.Free.ChooseBasisIndex Modified Mathlib/LinearAlgebra/FreeModule/Finite/Basic.lean Modified Mathlib/LinearAlgebra/FreeModule/Finite/Rank.lean Modified Mathlib/LinearAlgebra/Trace.lean 2023-08-03 09:17:22 526f38a chore: bump to nightly-2023-07-31 (#6325) ESTIMATED CHANGES Modified lean-toolchain 2023-08-03 09:17:18 421f759 chore: remove duplicate lemma FiniteDimensional.eq_top_of_finrank_eq (#6304) The lemma is a perfect duplicate of `Submodule.eq_top_of_finrank_eq`. ESTIMATED CHANGES Modified Mathlib/FieldTheory/Tower.lean Modified Mathlib/LinearAlgebra/AffineSpace/FiniteDimensional.lean Modified Mathlib/LinearAlgebra/BilinearForm.lean Modified Mathlib/LinearAlgebra/Dual.lean Modified Mathlib/LinearAlgebra/FiniteDimensional.lean - theorem FiniteDimensional.eq_top_of_finrank_eq +/- theorem Submodule.eq_top_of_finrank_eq Modified Mathlib/Topology/Algebra/Module/FiniteDimension.lean 2023-08-03 09:17:17 1bc5bc2 refactor of NumberTheory.NumberField.Embeddings (#6164) Remove unnecessary or redundant results and golf some proofs. ESTIMATED CHANGES Modified Mathlib/NumberTheory/NumberField/CanonicalEmbedding.lean Modified Mathlib/NumberTheory/NumberField/Embeddings.lean - theorem NumberField.ComplexEmbedding.IsReal.place_embedding +/- def NumberField.ComplexEmbedding.IsReal +/- def NumberField.ComplexEmbedding.conjugate - theorem NumberField.ComplexEmbeddings.IsReal.embedding_mk +/- def NumberField.InfinitePlace.IsComplex - theorem NumberField.InfinitePlace.IsReal.abs_embedding_apply - theorem NumberField.InfinitePlace.IsReal.place_embedding_apply +/- def NumberField.InfinitePlace.IsReal - theorem NumberField.InfinitePlace.abs_embedding + theorem NumberField.InfinitePlace.card_add_two_mul_card_eq_rank + theorem NumberField.InfinitePlace.card_filter_mk_eq - theorem NumberField.InfinitePlace.coe_mk + theorem NumberField.InfinitePlace.embedding_mk_eq + theorem NumberField.InfinitePlace.embedding_mk_eq_of_isReal + theorem NumberField.InfinitePlace.embedding_of_isReal_apply - theorem NumberField.InfinitePlace.ext +/- theorem NumberField.InfinitePlace.isReal_iff + theorem NumberField.InfinitePlace.isReal_of_mk_isReal - theorem NumberField.InfinitePlace.mkComplex.apply - theorem NumberField.InfinitePlace.mkComplex.filter - theorem NumberField.InfinitePlace.mkComplex.filter_card - theorem NumberField.InfinitePlace.mkComplex_embedding - theorem NumberField.InfinitePlace.mkReal.apply +/- theorem NumberField.InfinitePlace.mk_embedding + theorem NumberField.InfinitePlace.norm_embedding_eq - theorem NumberField.InfinitePlace.not_isComplex_iff_isReal + theorem NumberField.InfinitePlace.not_isReal_of_mk_isComplex +/- theorem NumberField.InfinitePlace.pos_iff +/- def NumberField.InfinitePlace 2023-08-03 09:17:15 06ace73 feat(AlgebraicGeometry/EllipticCurve/Weierstrass): elliptic curves with specified j-invariant (#5935) Main changes: - [x] Define specific Weierstrass curves, whose j-invariants should be 0, 1728, or ≠ 0 and 1728. - [x] Prove the quantities c₄, Δ and j for them (whenever they are defined). - [x] Define an elliptic curve from an element j in a field, whose j-invariant is equal to j. - [x] Generalize `Inhabited (EllipticCurve ℚ)` to `Inhabited (EllipticCurve F)` for any field `F` (computable if `F` has `DecidableEq`). ESTIMATED CHANGES Modified Mathlib/AlgebraicGeometry/EllipticCurve/Weierstrass.lean + def EllipticCurve.ofJ' + theorem EllipticCurve.ofJ'_j + def EllipticCurve.ofJ0 + theorem EllipticCurve.ofJ0_j + def EllipticCurve.ofJ1728 + theorem EllipticCurve.ofJ1728_j + def EllipticCurve.ofJ + theorem EllipticCurve.ofJ_0_of_three_eq_zero + theorem EllipticCurve.ofJ_0_of_three_ne_zero + theorem EllipticCurve.ofJ_0_of_two_eq_zero + theorem EllipticCurve.ofJ_1728_of_three_eq_zero + theorem EllipticCurve.ofJ_1728_of_two_eq_zero + theorem EllipticCurve.ofJ_1728_of_two_ne_zero + theorem EllipticCurve.ofJ_j + theorem EllipticCurve.ofJ_ne_0_ne_1728 + def WeierstrassCurve.ofJ0 + theorem WeierstrassCurve.ofJ0_c₄ + theorem WeierstrassCurve.ofJ0_Δ + def WeierstrassCurve.ofJ1728 + theorem WeierstrassCurve.ofJ1728_c₄ + theorem WeierstrassCurve.ofJ1728_Δ + def WeierstrassCurve.ofJ + theorem WeierstrassCurve.ofJ_c₄ + theorem WeierstrassCurve.ofJ_Δ Modified Mathlib/RingTheory/Coprime/Basic.lean + theorem IsCoprime.ne_zero_or_ne_zero Modified Mathlib/RingTheory/Coprime/Lemmas.lean + theorem ne_zero_or_ne_zero_of_nat_coprime 2023-08-03 09:17:13 daafa2f refactor: use junk values in Submodule.toLinearPMap (#5529) Change the definition of `Submodule.toLinearPMap` to use a junk value in the case that the condition that the subspace defines the graph of a function is not satisfied. In this case we define `Submodule.toLinearPMap` as the zero map. The domain is the same so that the domain does not depend on the graph-condition. ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/LinearPMap.lean +/- theorem LinearPMap.inverse_apply_eq +/- theorem LinearPMap.inverse_domain +/- theorem LinearPMap.inverse_graph +/- theorem LinearPMap.inverse_range +/- theorem LinearPMap.mem_inverse_graph + theorem LinearPMap.mem_inverse_graph_snd_eq_zero +/- theorem Submodule.mem_graph_toLinearPMap + theorem Submodule.toLinearPMap_apply_aux +/- theorem Submodule.toLinearPMap_domain Modified Mathlib/Topology/Algebra/Module/LinearPMap.lean 2023-08-03 08:06:08 7399333 chore(LinearAlgebra): remove `open Classical` (#6320) This uncovers a few situations where a lemma was stated with the wrong decidability assumption. The corrected lemmas are strictly more syntactically-general. This is exhaustive in the `LinearAlgebra` folder. Where removal is impractical, this switches to `open Classical in` to make the intent clear. ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/AffineSpace/FiniteDimensional.lean +/- theorem AffineIndependent.affineSpan_image_finset_eq_of_le_of_card_eq_finrank_add_one +/- theorem AffineIndependent.finrank_vectorSpan_image_finset +/- theorem AffineIndependent.vectorSpan_image_finset_eq_of_le_of_card_eq_finrank_add_one +/- theorem finrank_vectorSpan_image_finset_le Modified Mathlib/LinearAlgebra/Charpoly/Basic.lean Modified Mathlib/LinearAlgebra/Charpoly/ToMatrix.lean +/- theorem LinearMap.charpoly_toMatrix Modified Mathlib/LinearAlgebra/Contraction.lean Modified Mathlib/LinearAlgebra/Determinant.lean Modified Mathlib/LinearAlgebra/Dimension.lean Modified Mathlib/LinearAlgebra/DirectSum/Finsupp.lean Modified Mathlib/LinearAlgebra/Dual.lean +/- theorem Subspace.dual_finrank_eq Modified Mathlib/LinearAlgebra/FiniteDimensional.lean Modified Mathlib/LinearAlgebra/Finrank.lean Modified Mathlib/LinearAlgebra/Finsupp.lean +/- def Finsupp.supported +/- theorem Fintype.total_apply_single Modified Mathlib/LinearAlgebra/FinsuppVectorSpace.lean Modified Mathlib/LinearAlgebra/FreeModule/Basic.lean Modified Mathlib/LinearAlgebra/InvariantBasisNumber.lean Modified Mathlib/LinearAlgebra/LinearIndependent.lean +/- theorem Fintype.linearIndependent_iff' Modified Mathlib/LinearAlgebra/Span.lean Modified Mathlib/LinearAlgebra/Trace.lean 2023-08-03 05:30:36 4412853 chore(Mathlib/LinearAlgebra/Basis): Move results about vector spaces to a new file (#6321) This breaks a dependency cycle with `Module.Free`, which means we can immediately show that all vector spaces are free modules. The lemmas are moved without modification in this PR. A subsequent PR can use the `Module.Free` results to golf the vector space ones, and deduplicate the API. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/LinearAlgebra/AffineSpace/Independent.lean Modified Mathlib/LinearAlgebra/Basis.lean - theorem Basis.coe_extend - theorem Basis.coe_ofVectorSpace - theorem Basis.exists_basis - theorem Basis.extend_apply_self - theorem Basis.ofVectorSpaceIndex.linearIndependent - theorem Basis.ofVectorSpace_apply_self - theorem Basis.range_extend - theorem Basis.range_ofVectorSpace - theorem Basis.subset_extend - def Basis.sumExtendIndex - theorem LinearMap.exists_extend - theorem LinearMap.exists_leftInverse_of_injective - theorem LinearMap.exists_rightInverse_of_surjective - theorem Submodule.exists_isCompl - theorem Submodule.exists_le_ker_of_lt_top - theorem VectorSpace.card_fintype - theorem atom_iff_nonzero_span - theorem nonzero_span_atom - theorem quotient_prod_linearEquiv Added Mathlib/LinearAlgebra/Basis/VectorSpace.lean + theorem Basis.coe_extend + theorem Basis.coe_ofVectorSpace + theorem Basis.exists_basis + theorem Basis.extend_apply_self + theorem Basis.ofVectorSpaceIndex.linearIndependent + theorem Basis.ofVectorSpace_apply_self + theorem Basis.range_extend + theorem Basis.range_ofVectorSpace + theorem Basis.subset_extend + def Basis.sumExtendIndex + theorem LinearMap.exists_extend + theorem LinearMap.exists_leftInverse_of_injective + theorem LinearMap.exists_rightInverse_of_surjective + theorem Submodule.exists_isCompl + theorem Submodule.exists_le_ker_of_lt_top + theorem VectorSpace.card_fintype + theorem atom_iff_nonzero_span + theorem nonzero_span_atom + theorem quotient_prod_linearEquiv Modified Mathlib/LinearAlgebra/Dimension.lean Modified Mathlib/LinearAlgebra/FreeModule/Basic.lean Modified Mathlib/RepresentationTheory/Maschke.lean 2023-08-03 05:30:35 bb6cf90 feat: the category of short complexes has limits (#6267) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Homology/ShortComplex/Limits.lean + def CategoryTheory.ShortComplex.isLimitOfIsLimitπ 2023-08-03 05:30:34 50ce43f feat: add instances for intervals (#5957) Don't mind at all if anyone would like to push refactors or golfs. My main requirement from this PR is that ```lean import Mathlib example : WellFoundedLT { x : ℕ // x ≤ 37 }ᵒᵈ := inferInstance ``` works out of the box. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Data/PNat/Interval.lean Modified Mathlib/Data/Set/Function.lean + theorem Set.injOn_subtype_val Added Mathlib/Data/Set/Intervals/Image.lean + theorem Monotone.image_Icc_subset + theorem Monotone.image_Ici_subset + theorem Monotone.image_Iic_subset + theorem Monotone.mapsTo_Icc + theorem Monotone.mapsTo_Ici + theorem Monotone.mapsTo_Iic + theorem Set.image_subtype_val_Icc_subset + theorem Set.image_subtype_val_Ici_subset + theorem Set.image_subtype_val_Ico_subset + theorem Set.image_subtype_val_Iic_subset + theorem Set.image_subtype_val_Iio_subset + theorem Set.image_subtype_val_Ioc_subset + theorem Set.image_subtype_val_Ioi_subset + theorem Set.image_subtype_val_Ioo_subset + theorem StrictMono.imageIco_subset + theorem StrictMono.imageIoc_subset + theorem StrictMono.image_Iio_subset + theorem StrictMono.image_Ioi_subset + theorem StrictMono.image_Ioo_subset + theorem StrictMono.mapsTo_Ico + theorem StrictMono.mapsTo_Iio + theorem StrictMono.mapsTo_Ioc + theorem StrictMono.mapsTo_Ioi + theorem StrictMono.mapsTo_Ioo Modified Mathlib/NumberTheory/NumberField/Units.lean Modified Mathlib/Order/LocallyFinite.lean 2023-08-03 04:09:27 966fdb6 chore: flip and rename rank_eq_of_injective (#6301) ESTIMATED CHANGES Modified Archive/Sensitivity.lean Modified Mathlib/LinearAlgebra/Dimension.lean - theorem rank_eq_of_injective + theorem rank_range_of_injective Modified Mathlib/LinearAlgebra/FiniteDimensional.lean Modified Mathlib/NumberTheory/RamificationInertia.lean 2023-08-02 23:55:55 68a37cd feat(NumberTheory.NumberField.Units): add torsion subgroup (#5748) We define the torsion subgroup of the units of a number field and prove some results about it, mostly: it is finite, cyclic and an unit is torsion iff its value is 1 at all infinite places. Some results linking to `rootsOfUnity` are also proved. This PR also includes a direct coercion from `(𝓞 K)ˣ` to `K` that is very convenient, although I am not sure it's done properly. ESTIMATED CHANGES Modified Mathlib/GroupTheory/Torsion.lean + theorem CommGroup.mem_torsion Modified Mathlib/NumberTheory/NumberField/Units.lean + theorem NumberField.Units.coe_injective + theorem NumberField.Units.coe_mul + theorem NumberField.Units.coe_ne_zero + theorem NumberField.Units.coe_neg_one + theorem NumberField.Units.coe_one + theorem NumberField.Units.coe_pow + theorem NumberField.Units.coe_zpow + theorem NumberField.Units.mem_torsion + theorem NumberField.Units.rootsOfUnity_eq_one + theorem NumberField.Units.rootsOfUnity_eq_torsion + def NumberField.Units.torsion + def NumberField.Units.torsion_order +/- theorem isUnit_iff_norm 2023-08-02 23:22:23 c87bb10 chore: make `ringOfIntegersAlgebra` an instance (#6244) ESTIMATED CHANGES Modified Mathlib/NumberTheory/NumberField/Basic.lean - def NumberField.ringOfIntegersAlgebra Modified Mathlib/NumberTheory/NumberField/Norm.lean Modified Mathlib/NumberTheory/NumberField/Units.lean 2023-08-02 19:29:37 7a9401a perf (Data.Rat): reduce algebra instances for Rat (#6282) This removes the `with` pattern from the `Field` and `CommSemiGroupWithZero` instances on `Rat`. The resulting term decreases in size by an order of magnitude (at least). ESTIMATED CHANGES Modified Mathlib/Data/Rat/Basic.lean Modified Mathlib/Data/Rat/Defs.lean 2023-08-02 18:06:08 63f711c chore(Data/Polynomial/FieldDivision): use `by_cases` instead of `if` (#6314) This is easier to remove from the `classical` locale in future, and is arguably more readable ESTIMATED CHANGES Modified Mathlib/Data/Polynomial/FieldDivision.lean +/- theorem Polynomial.degree_div_le +/- theorem Polynomial.map_dvd_map' +/- theorem Polynomial.map_mod +/- theorem Polynomial.not_irreducible_C +/- theorem Polynomial.prime_of_degree_eq_one 2023-08-02 18:06:07 b9cabef refactor(LinearAlgebra/QuadraticForm): rename `Isometry` to `IsometryEquiv` (#6305) This is consistent with `LinearIsometryEquiv` vs `LinearIsometry`. The motivation is to make room for `QuadraticForm.Isometry` as the homomorphism. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/LinearAlgebra/CliffordAlgebra/Basic.lean +/- def CliffordAlgebra.equivOfIsometry +/- theorem CliffordAlgebra.equivOfIsometry_symm +/- theorem CliffordAlgebra.equivOfIsometry_trans Modified Mathlib/LinearAlgebra/QuadraticForm/Complex.lean Renamed Mathlib/LinearAlgebra/QuadraticForm/Isometry.lean to Mathlib/LinearAlgebra/QuadraticForm/IsometryEquiv.lean +/- def QuadraticForm.Equivalent - theorem QuadraticForm.Isometry.coe_toLinearEquiv - theorem QuadraticForm.Isometry.map_app - def QuadraticForm.Isometry.refl - def QuadraticForm.Isometry.symm - def QuadraticForm.Isometry.trans - structure QuadraticForm.Isometry + theorem QuadraticForm.IsometryEquiv.coe_toLinearEquiv + theorem QuadraticForm.IsometryEquiv.map_app + def QuadraticForm.IsometryEquiv.refl + def QuadraticForm.IsometryEquiv.symm + def QuadraticForm.IsometryEquiv.trans + structure QuadraticForm.IsometryEquiv + def QuadraticForm.isometryEquivOfCompLinearEquiv - def QuadraticForm.isometryOfCompLinearEquiv Modified Mathlib/LinearAlgebra/QuadraticForm/Prod.lean - def QuadraticForm.Isometry.pi - def QuadraticForm.Isometry.prod + def QuadraticForm.IsometryEquiv.pi + def QuadraticForm.IsometryEquiv.prod Modified Mathlib/LinearAlgebra/QuadraticForm/Real.lean 2023-08-02 18:06:06 30202c4 feat: derivations of (univariate) polynomials (#6023) An R-derivation from `R[X]` is determined by its value on `X`. Joint work with Richard Hill, who needs this stuff for his work on power series. We followed `MvPolynomial.Derivation` . ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Data/MvPolynomial/Derivation.lean - theorem MvPolynomial.derivation_C_mul' Modified Mathlib/Data/MvPolynomial/PDeriv.lean +/- theorem MvPolynomial.pderiv_C_mul Added Mathlib/Data/Polynomial/Derivation.lean + theorem Polynomial.C_smul_derivation_apply + theorem Polynomial.derivation_C + theorem Polynomial.derivation_ext + def Polynomial.derivative' + def Polynomial.mkDerivation + def Polynomial.mkDerivationEquiv + theorem Polynomial.mkDerivationEquiv_apply + theorem Polynomial.mkDerivationEquiv_symm_apply + theorem Polynomial.mkDerivation_X + theorem Polynomial.mkDerivation_apply + theorem Polynomial.mkDerivation_one_eq_derivative' + theorem Polynomial.mkDerivation_one_eq_derivative 2023-08-02 16:24:19 8368c26 feat: generalize scalars in Algebra.lsmul (#6209) This generalizes from `Algebra.lsmul R M : A →ₐ[R] Module.End R M` to `Algebra.lsmul R S M : A →ₐ[R] Module.End S M`. This generalization was previously not possible because `Module.End S M` was not an `R`-algebra. Notably this now allows things like `Algebra.lsmul R A A : Aᵐᵒᵖ →ₐ[R] Module.End A A` (right multiplication). This doesn't bother attempting to generalize uses in downstream files, as most of them probably do not need the generality. Instead, we just replace `Algebra.lsmul R` with `Algebra.lsmul R R`. ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/RestrictScalars.lean Modified Mathlib/Algebra/Algebra/Subalgebra/Tower.lean +/- theorem Algebra.lmul_algebraMap Modified Mathlib/Algebra/Algebra/Tower.lean +/- def Algebra.lsmul +/- theorem Algebra.lsmul_coe Modified Mathlib/Analysis/NormedSpace/OperatorNorm.lean Modified Mathlib/LinearAlgebra/Matrix/ToLin.lean Modified Mathlib/LinearAlgebra/TensorProduct/Tower.lean +/- theorem TensorProduct.AlgebraTensorModule.smul_eq_lsmul_rTensor Modified Mathlib/RepresentationTheory/Basic.lean Modified Mathlib/RingTheory/MatrixAlgebra.lean Modified Mathlib/RingTheory/TensorProduct.lean 2023-08-02 16:24:18 861ad0c feat: improve error messages of `tauto` (#5965) Modify `tauto` to throw an error message "tauto failed to solve some goals" if it fails. ESTIMATED CHANGES Modified Mathlib/Lean/Elab/Tactic/Basic.lean + def Lean.Elab.Tactic.doneWithScope + def Lean.Elab.Tactic.focusAndDoneWithScope Modified Mathlib/Tactic/Tauto.lean +/- def Mathlib.Tactic.Tauto.tautology 2023-08-02 15:54:06 a3b98ba refactor(Probability/Independence): define independence using kernel independence (#6294) Independence is the special case of independence with respect to a kernel and a measure where the kernel is constant. ESTIMATED CHANGES Modified Mathlib/Probability/ConditionalExpectation.lean Modified Mathlib/Probability/Independence/Basic.lean +/- theorem ProbabilityTheory.Indep.indepSet_of_measurableSet +/- def ProbabilityTheory.Indep +/- theorem ProbabilityTheory.IndepFun.comp +/- def ProbabilityTheory.IndepFun + theorem ProbabilityTheory.IndepFun_iff + theorem ProbabilityTheory.IndepFun_iff_Indep + theorem ProbabilityTheory.IndepSet_iff + theorem ProbabilityTheory.IndepSet_iff_Indep +/- def ProbabilityTheory.IndepSets + theorem ProbabilityTheory.IndepSets_iff + theorem ProbabilityTheory.Indep_iff + theorem ProbabilityTheory.Indep_iff_IndepSets + theorem ProbabilityTheory.iIndepFun_iff + theorem ProbabilityTheory.iIndepFun_iff_iIndep + theorem ProbabilityTheory.iIndepSet_iff + theorem ProbabilityTheory.iIndepSet_iff_iIndep + theorem ProbabilityTheory.iIndepSets_iff + theorem ProbabilityTheory.iIndep_iff + theorem ProbabilityTheory.iIndep_iff_iIndepSets +/- theorem ProbabilityTheory.indepSet_empty_right +/- theorem ProbabilityTheory.indepSet_iff_indepSets_singleton +/- theorem ProbabilityTheory.indep_bot_right Modified Mathlib/Probability/Independence/ZeroOne.lean Modified Mathlib/Probability/Integration.lean 2023-08-02 15:54:05 56d44fc fix(ModelTheory): make some defs into abbrevs (#6171) ESTIMATED CHANGES Modified Mathlib/ModelTheory/Syntax.lean 2023-08-02 15:54:04 e79964d feat(Tactic/ExtractGoal + test/ExtractGoal): port `extract_goal` tactic (#4595) This is a first PR porting some of the functionality of the `extract_goal` tactic from mathlib3. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Tactic.lean Added Mathlib/Tactic/ExtractGoal.lean + theorem extracted_1.{u_1} + theorem extracted_1 Added test/ExtractGoal.lean 2023-08-02 15:15:15 04c6139 refactor(Data/ZMod/Basic): Replace `Fact ((n : ℕ) % 2 = 1)` with `Odd n` (#6292) This PR replaces `Fact ((n : ℕ) % 2 = 1)` with `Odd n`, as suggested in #6086. ESTIMATED CHANGES Modified Mathlib/Data/ZMod/Basic.lean +/- theorem ZMod.ne_neg_self Modified Mathlib/NumberTheory/LegendreSymbol/GaussEisensteinLemmas.lean +/- theorem ZMod.gauss_lemma +/- theorem ZMod.gauss_lemma_aux 2023-08-02 13:41:14 4a7be47 fix: HOME variable on windows (#6296) Fixes an issue [reported on Zulip](https://leanprover.zulipchat.com/#narrow/stream/270676-lean4/topic/.60lake.20exe.20cache.20get.60.20fails.20in.20command.20prompt/near/377455000). ESTIMATED CHANGES Modified Cache/IO.lean 2023-08-02 13:41:12 427e0b1 chore(Algebra/Category/*/Colimits): golf (#6265) Found while doing a larger refactor. This doesn't change any defeqs, and the new proofs make it obvious that there's nothing interesting going on here. ESTIMATED CHANGES Modified Mathlib/Algebra/Category/GroupCat/Colimits.lean Modified Mathlib/Algebra/Category/ModuleCat/Colimits.lean Modified Mathlib/Algebra/Category/MonCat/Colimits.lean Modified Mathlib/Algebra/Category/Ring/Colimits.lean 2023-08-02 13:41:11 b36a2c7 feat: column and row partitioned matrices (#6052) This file provides the basic definitions of matrices composed from columns and rows. The concatenation of two matrices with the same row indices can be expressed as `A = fromColumns A₁ A₂` the concatenation of two matrices with the same column indices can be expressed as `B = fromRows B₁ B₂`. We then provide a few lemmas that deal with the products of these with each other and with block matrices. Two particular lemmas `fromColumns_mul_fromRows_eq_one_comm` and `equiv_compl_fromColumns_mul_fromRows_eq_one_comm` deal with the case of matrix multiplication that gives one as a result. This gives a crude (but usable) replacement for the `Invertible` type which can only be applied to square matrices (with the same index type for rows and columns). ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Data/Matrix/ColumnRowPartitioned.lean + theorem Matrix.conjTranspose_fromColumns_eq_fromRows_conjTranspose + theorem Matrix.conjTranspose_fromRows_eq_fromColumns_conjTranspose + theorem Matrix.equiv_compl_fromColumns_mul_fromRows_eq_one_comm + theorem Matrix.fromBlocks_mul_fromRows + def Matrix.fromColumns + theorem Matrix.fromColumns_apply_inl + theorem Matrix.fromColumns_apply_inr + theorem Matrix.fromColumns_ext_iff + theorem Matrix.fromColumns_fromRows_eq_fromBlocks + theorem Matrix.fromColumns_inj + theorem Matrix.fromColumns_mul_fromBlocks + theorem Matrix.fromColumns_mul_fromRows + theorem Matrix.fromColumns_mul_fromRows_eq_one_comm + theorem Matrix.fromColumns_toColumns + theorem Matrix.fromColumns_zero + def Matrix.fromRows + theorem Matrix.fromRows_apply_inl + theorem Matrix.fromRows_apply_inr + theorem Matrix.fromRows_ext_iff + theorem Matrix.fromRows_fromColumn_eq_fromBlocks + theorem Matrix.fromRows_inj + theorem Matrix.fromRows_mul + theorem Matrix.fromRows_mul_fromColumns + theorem Matrix.fromRows_toRows + theorem Matrix.fromRows_zero + theorem Matrix.mul_fromColumns + def Matrix.toColumns₁ + theorem Matrix.toColumns₁_apply + theorem Matrix.toColumns₁_fromColumns + def Matrix.toColumns₂ + theorem Matrix.toColumns₂_apply + theorem Matrix.toColumns₂_fromColumns + def Matrix.toRows₁ + theorem Matrix.toRows₁_apply + theorem Matrix.toRows₁_fromRows + def Matrix.toRows₂ + theorem Matrix.toRows₂_apply + theorem Matrix.toRows₂_fromRows + theorem Matrix.transpose_fromColumns + theorem Matrix.transpose_fromRows 2023-08-02 11:57:08 ab8acf5 chore: remove reducible from Function.Surjective (#6297) This was done once in #5063, then accidentally reverted in #5859. ESTIMATED CHANGES Modified Mathlib/Init/Function.lean 2023-08-02 10:41:17 3cf7355 feat(LinearAlgebra/CliffordAlgebra): support towers of algebras (#6074) ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/CliffordAlgebra/Basic.lean 2023-08-02 09:22:02 6538bed feat(NumberTheory.NumberField.Basic): add mem_span_integralBasis (#5996) Add the following result: ```lean theorem mem_span_integralBasis {x : K} : x ∈ Submodule.span ℤ (Set.range (integralBasis K)) ↔ x ∈ 𝓞 K ``` that is, `integralBasis` is indeed a `ℤ`-basis of the ring of integers. ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/Subalgebra/Tower.lean + theorem Subalgebra.range_isScalarTower_toAlgHom Modified Mathlib/LinearAlgebra/FreeModule/PID.lean Modified Mathlib/LinearAlgebra/Span.lean +/- theorem Submodule.apply_mem_span_image_iff_mem_span +/- theorem Submodule.apply_mem_span_image_of_mem_span +/- theorem Submodule.map_span +/- theorem Submodule.map_span_le +/- theorem Submodule.not_mem_span_of_apply_not_mem_span_image +/- theorem Submodule.span_image +/- theorem Submodule.span_preimage_le Modified Mathlib/NumberTheory/NumberField/Basic.lean + theorem NumberField.mem_span_integralBasis Modified Mathlib/RingTheory/Finiteness.lean Modified Mathlib/RingTheory/Localization/Module.lean + theorem Basis.localizationLocalization_span 2023-08-02 08:48:25 9688c5a Use the IO.FS.rename to move file instead of relying on presence of mv program (#6284) The Cache program after detecting that LeanTar is old downloads it and attempts to place it in the `CACHEDIR` directory. It then attempts to rename it using the `mv` command it assumes is present on the platform. On windows `cmd` and `powershell` this does not work since `mv` is actually a shell built in and not an executable. (This will however work on MinGW based shells). @digama0 added the function `IO.FS.rename` in Lean [Lean4#2345](https://github.com/leanprover/lean4/pull/2345#issue-1816557709) which calls the standard C/C++ function `rename`. This PR uses this function to move leantar instead of the runCmd command. When this fix succeeds the output looks like the following (in powershell). ```text PS W:\LeanStuff\graveyard_mathlib4\LeanCacheFix> lake exe cache get leantar is too old; downloading more recent version Attempting to download 3614 file(s) Downloaded: 3614 file(s) [attempted 3614/3614 = 100%] (100% success) Decompressing 3614 file(s) unpacked in 323 ms ``` ESTIMATED CHANGES Modified Cache/IO.lean 2023-08-02 08:13:17 66ff2fa refactor(FieldTheory/NormalClosure): Some golfs (#6289) This PR extracts some golfs from #6163. ESTIMATED CHANGES Modified Mathlib/FieldTheory/NormalClosure.lean 2023-08-02 07:30:58 e6733ec feat: define reflexive modules and prove basics of perfect pairings (#4989) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/LinearAlgebra/Dual.lean - def Basis.evalEquiv - theorem Basis.evalEquiv_toLinearMap + theorem Module.apply_evalEquiv_symm_apply + theorem Module.bijective_dual_eval +/- def Module.evalEquiv + theorem Module.evalEquiv_apply +/- theorem Module.evalEquiv_toLinearMap +/- def Module.mapEvalEquiv +/- theorem Module.mapEvalEquiv_apply +/- theorem Module.mapEvalEquiv_symm_apply + theorem Module.symm_dualMap_evalEquiv Added Mathlib/LinearAlgebra/PerfectPairing.lean + theorem LinearEquiv.coe_toLinearMap_flip + theorem LinearEquiv.flip_apply + theorem LinearEquiv.flip_flip + theorem LinearEquiv.isReflexive_of_equiv_dual_of_isReflexive + theorem LinearEquiv.symm_flip + theorem LinearEquiv.trans_dualMap_symm_flip 2023-08-02 07:03:11 4f0b2d5 feat(Algebra/TensorAlgebra): support towers of algebras (#6073) This is pre-work towards a base-change of clifford algebras. The main result here is ```lean @[nolint unusedArguments] instance instAlgebra {R A M} [CommSemiring R] [AddCommMonoid M] [CommSemiring A] [Algebra R A] [Module R M] [Module A M] [IsScalarTower R A M] : Algebra R (TensorAlgebra A M) ``` Note that strictly the `IsScalarTower R A M` argument isn't needed, but I'd claim the instance doesn't make any sense without it. In order to prevent diamonds in the `algebraMap` fields of the `Int` and `Nat` algebra instances, we have stop having `natCast` as an `irreducible_def`, and we have to add a missing `intCast` customization for `RingQuot`. In order to prevent diamonds in the `smul` fields there and elsewhere (such as a complex tensor algebra being a real algebra), we have to stop having the `smul` definition as an `irreducible_def`. We already had to make a similar refactor to prevent diamonds for `Algebra R (Polynomial A)`. If we backport any of this to mathlib3, we'd additionally have to change the `smul` definition to not use pattern matching. Thankfully, structure eta in Lean 4 makes that unnecessary. These diamonds are tested with inline `examples`. ESTIMATED CHANGES Modified Mathlib/Algebra/RingQuot.lean Modified Mathlib/LinearAlgebra/TensorAlgebra/Basic.lean 2023-08-02 05:14:18 5cbb0ad feat(Probability/Independence): define independence wrt a kernel and a measure (#6106) We introduce a new notion of independence with respect to a kernel and a measure. The plan is to eventually express both independence and conditional independence as particular cases of this new notion (see #6098). Two sigma-algebras `m` and `m'` are said to be independent with respect to a kernel `κ` and a measure `μ` if for all `m`-measurable sets `t₁` and `m'`-measurable sets `t₂`, `∀ᵐ a ∂μ, κ a (t₁ ∩ t₂) = κ a t₁ * κ a t₂`. Independence is the special case where `κ` is a constant kernel. Conditional independence can be defined by using the conditional expectation kernel `condexpKernel`. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Probability/Independence/Kernel.lean + theorem ProbabilityTheory.kernel.Indep.indepSet_of_measurableSet + theorem ProbabilityTheory.kernel.Indep.indepSets + theorem ProbabilityTheory.kernel.Indep.symm + def ProbabilityTheory.kernel.Indep + theorem ProbabilityTheory.kernel.IndepFun.ae_eq + theorem ProbabilityTheory.kernel.IndepFun.comp + def ProbabilityTheory.kernel.IndepFun + def ProbabilityTheory.kernel.IndepSet + theorem ProbabilityTheory.kernel.IndepSets.bInter + theorem ProbabilityTheory.kernel.IndepSets.bUnion + theorem ProbabilityTheory.kernel.IndepSets.iInter + theorem ProbabilityTheory.kernel.IndepSets.iUnion + theorem ProbabilityTheory.kernel.IndepSets.indep' + theorem ProbabilityTheory.kernel.IndepSets.indep + theorem ProbabilityTheory.kernel.IndepSets.indepSet_of_mem + theorem ProbabilityTheory.kernel.IndepSets.indep_aux + theorem ProbabilityTheory.kernel.IndepSets.inter + theorem ProbabilityTheory.kernel.IndepSets.symm + theorem ProbabilityTheory.kernel.IndepSets.union + theorem ProbabilityTheory.kernel.IndepSets.union_iff + def ProbabilityTheory.kernel.IndepSets + theorem ProbabilityTheory.kernel.iIndep.iIndepSets + theorem ProbabilityTheory.kernel.iIndep.indep + def ProbabilityTheory.kernel.iIndep + theorem ProbabilityTheory.kernel.iIndepFun.indepFun + theorem ProbabilityTheory.kernel.iIndepFun.indepFun_finset + theorem ProbabilityTheory.kernel.iIndepFun.indepFun_finset_prod_of_not_mem + theorem ProbabilityTheory.kernel.iIndepFun.indepFun_prod + theorem ProbabilityTheory.kernel.iIndepFun.indepFun_prod_range_succ + theorem ProbabilityTheory.kernel.iIndepFun.mul + def ProbabilityTheory.kernel.iIndepFun + theorem ProbabilityTheory.kernel.iIndepFun_iff_measure_inter_preimage_eq_mul + theorem ProbabilityTheory.kernel.iIndepSet.iIndepFun_indicator + theorem ProbabilityTheory.kernel.iIndepSet.indep_generateFrom_le + theorem ProbabilityTheory.kernel.iIndepSet.indep_generateFrom_le_nat + theorem ProbabilityTheory.kernel.iIndepSet.indep_generateFrom_lt + theorem ProbabilityTheory.kernel.iIndepSet.indep_generateFrom_of_disjoint + def ProbabilityTheory.kernel.iIndepSet + theorem ProbabilityTheory.kernel.iIndepSets.iIndep + theorem ProbabilityTheory.kernel.iIndepSets.indepSets + theorem ProbabilityTheory.kernel.iIndepSets.piiUnionInter_of_not_mem + def ProbabilityTheory.kernel.iIndepSets + theorem ProbabilityTheory.kernel.indepFun_iff_indepSet_preimage + theorem ProbabilityTheory.kernel.indepFun_iff_measure_inter_preimage_eq_mul + theorem ProbabilityTheory.kernel.indepSet_empty_left + theorem ProbabilityTheory.kernel.indepSet_empty_right + theorem ProbabilityTheory.kernel.indepSet_iff_indepSets_singleton + theorem ProbabilityTheory.kernel.indepSet_iff_measure_inter_eq_mul + theorem ProbabilityTheory.kernel.indepSets_of_indepSets_of_le_left + theorem ProbabilityTheory.kernel.indepSets_of_indepSets_of_le_right + theorem ProbabilityTheory.kernel.indepSets_piiUnionInter_of_disjoint + theorem ProbabilityTheory.kernel.indepSets_singleton_iff + theorem ProbabilityTheory.kernel.indep_bot_left + theorem ProbabilityTheory.kernel.indep_bot_right + theorem ProbabilityTheory.kernel.indep_iSup_of_antitone + theorem ProbabilityTheory.kernel.indep_iSup_of_directed_le + theorem ProbabilityTheory.kernel.indep_iSup_of_disjoint + theorem ProbabilityTheory.kernel.indep_iSup_of_monotone + theorem ProbabilityTheory.kernel.indep_iff_forall_indepSet + theorem ProbabilityTheory.kernel.indep_of_indep_of_le_left + theorem ProbabilityTheory.kernel.indep_of_indep_of_le_right 2023-08-02 03:48:41 8fd5c88 chore: golf `Polynomial.degree_mul_le` (#6263) And other similar lemmas With thanks to @adomani for adding these lemmas. ESTIMATED CHANGES Modified Mathlib/Data/MvPolynomial/Variables.lean Modified Mathlib/Data/Polynomial/Basic.lean + theorem Polynomial.support_toFinsupp Modified Mathlib/Data/Polynomial/Degree/Definitions.lean +/- theorem Polynomial.degree_add_le +/- theorem Polynomial.degree_mul_le 2023-08-02 02:18:26 444b9f3 feat(Data.Set.Ncard): enat set cardinality (#5908) This PR is a second attempt at defining the cardinality of a set as extended natural number, with a function `encard`. The implementation involves a refactor, where the existing`ncard` function is redefined in terms of `encard`. This shortens a lot of proofs, reduces reliance on the `Finset` API, and allows for a potential future refactor where `ncard` is removed if it is decided to be redundant. ESTIMATED CHANGES Modified Mathlib/Data/ENat/Basic.lean + theorem ENat.le_coe_iff Modified Mathlib/Data/Set/Function.lean + theorem Function.LeftInvOn_invFunOn_of_subset_image_image + theorem Function.invFunOn_image_image_subset + theorem Function.invFunOn_injOn_image + theorem Set.injOn_iff_invFunOn_image_image_eq_self Modified Mathlib/Data/Set/Ncard.lean + theorem Function.Embedding.enccard_le + theorem Function.Injective.encard_image + theorem Set.Finite.cast_ncard_eq + theorem Set.Finite.encard_eq_coe + theorem Set.Finite.encard_eq_coe_toFinset_card + theorem Set.Finite.encard_lt_encard + theorem Set.Finite.encard_lt_top + theorem Set.Finite.eq_insert_of_subset_of_encard_eq_succ + theorem Set.Finite.eq_of_subset_of_encard_le' + theorem Set.Finite.eq_of_subset_of_encard_le + theorem Set.Finite.exists_bijOn_of_encard_eq + theorem Set.Finite.exists_encard_eq_coe + theorem Set.Finite.exists_injOn_of_encard_le + theorem Set.Finite.finite_of_encard_le + theorem Set.Finite.injOn_of_encard_image_eq + theorem Set.Infinite.encard_eq +/- theorem Set.Infinite.ncard + theorem Set.InjOn.encard_image + theorem Set.Nat.encard_range + theorem Set.encard_add_encard_compl + theorem Set.encard_coe_eq_coe_finsetCard + theorem Set.encard_congr + theorem Set.encard_diff_add_encard + theorem Set.encard_diff_add_encard_inter + theorem Set.encard_diff_add_encard_of_subset + theorem Set.encard_diff_singleton_add_one + theorem Set.encard_diff_singleton_of_mem + theorem Set.encard_empty + theorem Set.encard_eq_add_one_iff + theorem Set.encard_eq_coe_toFinset_card + theorem Set.encard_eq_encard_iff_encard_diff_eq_encard_diff + theorem Set.encard_eq_one + theorem Set.encard_eq_three + theorem Set.encard_eq_top_iff + theorem Set.encard_eq_two + theorem Set.encard_eq_zero + theorem Set.encard_exchange' + theorem Set.encard_exchange + theorem Set.encard_image_le + theorem Set.encard_insert_le + theorem Set.encard_insert_of_not_mem + theorem Set.encard_le_coe_iff + theorem Set.encard_le_coe_iff_finite_ncard_le + theorem Set.encard_le_encard_diff_add_encard + theorem Set.encard_le_encard_iff_encard_diff_le_encard_diff + theorem Set.encard_le_encard_of_injOn + theorem Set.encard_le_of_subset + theorem Set.encard_le_one_iff + theorem Set.encard_le_one_iff_eq + theorem Set.encard_lt_encard_iff_encard_diff_lt_encard_diff + theorem Set.encard_lt_top_iff + theorem Set.encard_mono + theorem Set.encard_ne_top_iff + theorem Set.encard_ne_zero + theorem Set.encard_pair + theorem Set.encard_pos + theorem Set.encard_preimage_of_injective_subset_range + theorem Set.encard_singleton + theorem Set.encard_singleton_inter + theorem Set.encard_strictMono + theorem Set.encard_tsub_one_le_encard_diff_singleton + theorem Set.encard_union_add_encard_inter + theorem Set.encard_union_eq + theorem Set.encard_union_le + theorem Set.encard_univ + theorem Set.encard_univ_coe + theorem Set.eq_empty_or_encard_eq_top_or_encard_diff_singleton_lt + theorem Set.exists_ne_of_one_lt_encard + theorem Set.exists_subset_encard_eq + theorem Set.exists_supset_subset_encard_eq + theorem Set.finite_iff_finite_of_encard_eq_encard + theorem Set.finite_of_encard_eq_coe + theorem Set.finite_of_encard_le_coe + theorem Set.infinite_iff_infinite_of_encard_eq_encard +/- theorem Set.ncard_def - theorem Set.ncard_diff_add_ncard_eq_ncard + theorem Set.ncard_diff_add_ncard_of_subset +/- theorem Set.ncard_exchange +/- theorem Set.ncard_image_of_injOn +/- theorem Set.ncard_insert_of_mem +/- theorem Set.ncard_singleton_inter + theorem Set.nonempty_of_encard_ne_zero + theorem Set.one_le_encard_iff_nonempty + theorem Set.one_lt_encard_iff + theorem Set.tsub_encard_le_encard_diff Modified Mathlib/SetTheory/Cardinal/Finite.lean + theorem PartENat.card_sum 2023-08-02 00:56:53 292d54d perf: remove some `with` instance construction patterns (#6241) The general thought here is that ```lean { hf.distribMulAction f smul with smul := (· • ·) ... } ``` is treated roughly as ```lean let src := hf.distribMulAction f smul { toDistribMulAction := { toMulAction := { smul := (· • ·) one_smul := src.one_smul mul_smul := src.mul_smul} smul_add := src.smul_add smul_zero := src.smul_zero } ... } ``` which is a much larger term (especially once the `let` is reduced, due to how many arguments `hf.distribMulAction` consumes) than ```lean { toDistribMulAction := hf.distribMulAction f smul ... } ``` In some places the long version is _maybe_ still more desirable, if we want a specific syntactic equality for `smul` that the base structure defines differently; but none of the examples in this PR are such a case. ESTIMATED CHANGES Modified Mathlib/Algebra/Module/Basic.lean Modified Mathlib/GroupTheory/GroupAction/Defs.lean Modified Mathlib/GroupTheory/QuotientGroup.lean Modified Mathlib/RingTheory/Ideal/Quotient.lean Modified Mathlib/RingTheory/Ideal/QuotientOperations.lean 2023-08-01 21:18:09 5f76a61 feat: miscellaneous results about Filter.IsBoundedUnder (#6287) ESTIMATED CHANGES Modified Mathlib/Analysis/SpecialFunctions/Exp.lean Modified Mathlib/Order/LiminfLimsup.lean +/- theorem Antitone.isBoundedUnder_ge_comp + theorem Antitone.isBoundedUnder_ge_comp_iff +/- theorem Antitone.isBoundedUnder_le_comp + theorem Antitone.isBoundedUnder_le_comp_iff + theorem Filter.IsBoundedUnder.comp + theorem Filter.IsBoundedUnder.isCoboundedUnder_flip + theorem Filter.IsBoundedUnder.isCoboundedUnder_ge + theorem Filter.IsBoundedUnder.isCoboundedUnder_le +/- theorem Monotone.isBoundedUnder_ge_comp + theorem Monotone.isBoundedUnder_ge_comp_iff +/- theorem Monotone.isBoundedUnder_le_comp + theorem Monotone.isBoundedUnder_le_comp_iff 2023-08-01 19:57:47 6b9326b chore: tidy various files (#6274) ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Hom/Ring.lean - theorem OrderRingHom.coe_OrderAddMonoidHom_id - theorem OrderRingHom.coe_OrderMonoidWithZeroHom_id - theorem OrderRingHom.coe_RingHom_id + theorem OrderRingHom.coe_orderAddMonoidHom_id + theorem OrderRingHom.coe_orderMonoidWithZeroHom_id + theorem OrderRingHom.coe_ringHom_id Modified Mathlib/Combinatorics/Colex.lean Modified Mathlib/Combinatorics/HalesJewett.lean +/- def Combinatorics.Line.diagonal +/- def Combinatorics.Line.horizontal +/- def Combinatorics.Line.map +/- def Combinatorics.Line.prod +/- def Combinatorics.Line.vertical Modified Mathlib/Data/Nat/PartENat.lean +/- theorem PartENat.lt_coe_succ_iff_le Modified Mathlib/FieldTheory/SplittingField/Construction.lean Modified Mathlib/LinearAlgebra/Quotient.lean +/- def Submodule.comapMkQRelIso Modified Mathlib/NumberTheory/Padics/PadicIntegers.lean Modified Mathlib/Order/Category/FrmCat.lean Modified Mathlib/Order/CompactlyGenerated.lean Modified Mathlib/RingTheory/AdjoinRoot.lean Modified Mathlib/Topology/Algebra/Order/MonotoneConvergence.lean 2023-08-01 19:57:46 11f20c4 refactor(Topology/ContinuousFunction/Algebra): lattice ordered group gives inf/sup formula (#6205) Previously the following comment occured in `Topology.ContinuousFunction.Algebra`: > -- TODO: -- This lemma (and the next) could go all the way back in `Algebra.Order.Field`, -- except that it is tedious to prove without tactics. -- Rather than stranding it at some intermediate location, -- it's here, immediately prior to the point of use. Subsequently, the theory of lattice ordered groups has been developed in Mathlib (Algebra.Order.LatticeGroup). This now provides the natural "intermediate location" for these lemmas, they are an immediate consequence of `LatticeOrderedCommGroup.two_inf_eq_add_sub_abs_sub` and `LatticeOrderedCommGroup.two_sup_eq_add_add_abs_sub`. In fact we can show that `C(α, β)` is itself a lattice ordered group and hence expressions for the `inf` and `sup` (`inf_eq` and `sup_eq`) can be deduced directly from `LatticeOrderedCommGroup.two_inf_eq_add_sub_abs_sub` and `LatticeOrderedCommGroup.two_sup_eq_add_add_abs_sub`. This was previously submitted to Mathlib https://github.com/leanprover-community/mathlib/pull/18780 ESTIMATED CHANGES Modified Mathlib/Algebra/Order/LatticeGroup.lean + theorem LatticeOrderedCommGroup.abs_div_comm - theorem LatticeOrderedCommGroup.abs_inv_comm + theorem inf_eq_half_smul_add_sub_abs_sub' + theorem inf_eq_half_smul_add_sub_abs_sub + theorem sup_eq_half_smul_add_add_abs_sub' + theorem sup_eq_half_smul_add_add_abs_sub Modified Mathlib/Topology/ContinuousFunction/Algebra.lean - theorem ContinuousMap.inf_eq - theorem ContinuousMap.sup_eq - theorem max_eq_half_add_add_abs_sub - theorem min_eq_half_add_sub_abs_sub Modified Mathlib/Topology/ContinuousFunction/StoneWeierstrass.lean 2023-08-01 18:35:21 ac5134b feat: add `MeasureTheory.MeasurePreserving.measure_symmDiff_preimage_iterate_le` (#6175) Also some minor loosely-related other changes. ESTIMATED CHANGES Modified Mathlib/Algebra/Ring/BooleanRing.lean Modified Mathlib/Data/Finset/Image.lean Modified Mathlib/Data/Finset/Pointwise.lean + theorem Finset.smul_finset_symmDiff₀ - theorem Finset.smul_finset_symm_diff₀ Modified Mathlib/Data/Real/ENNReal.lean + theorem ENNReal.abs_toReal + theorem ENNReal.toReal_nsmul Modified Mathlib/Data/Set/Image.lean + theorem Set.image_symmDiff - theorem Set.image_symm_diff + theorem Set.preimage_symmDiff + theorem Set.subset_image_symmDiff - theorem Set.subset_image_symm_diff Modified Mathlib/Data/Set/Pointwise/SMul.lean + theorem Set.smul_set_symmDiff + theorem Set.smul_set_symmDiff₀ - theorem Set.smul_set_symm_diff - theorem Set.smul_set_symm_diff₀ Modified Mathlib/Dynamics/Ergodic/MeasurePreserving.lean + theorem MeasureTheory.MeasurePreserving.measure_symmDiff_preimage_iterate_le Modified Mathlib/MeasureTheory/Measure/Lebesgue/EqHaar.lean Modified Mathlib/MeasureTheory/Measure/MeasureSpace.lean + theorem MeasureTheory.abs_toReal_measure_sub_le_measure_symmDiff' + theorem MeasureTheory.abs_toReal_measure_sub_le_measure_symmDiff + theorem MeasureTheory.measure_symmDiff_eq + theorem MeasureTheory.measure_symmDiff_le Modified Mathlib/MeasureTheory/Measure/MeasureSpaceDef.lean + theorem MeasureTheory.measure_le_measure_union_left + theorem MeasureTheory.measure_le_measure_union_right + theorem MeasureTheory.measure_lt_top_of_subset Modified Mathlib/Order/Hom/Lattice.lean + theorem map_symmDiff' - theorem map_symm_diff' 2023-08-01 18:11:40 067dad6 feat(Topology/Order/UpperLowerSetTopology): Introduce the Upper Set (or Alexandrov) topology and the Lower Set topology (#5672) Introduces the Upper Set topology, which is the canonical example of an Alexandrov topology and its dual, the Lower Set topology. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Topology/Order/UpperLowerSetTopology.lean + theorem LowerSetDual_iff_UpperSet + theorem LowerSetTopology.IsOpen_iff_IsLowerSet + theorem LowerSetTopology.IsOpen_sInter + theorem LowerSetTopology.LowerSetLELower + theorem LowerSetTopology.Monotone_to_LowerTopology_Continuous + theorem LowerSetTopology.closure_eq_upperClosure + theorem LowerSetTopology.closure_singleton + theorem LowerSetTopology.isClosed_iff_isUpper + theorem LowerSetTopology.isClosed_isUpper + theorem LowerSetTopology.isOpen_iInter + theorem LowerSetTopology.topology_eq + def LowerSetTopology.withLowerSetTopologyHomeomorph + def UpperLowerSet_toOrderDualHomeomorph + theorem UpperSetDual_iff_LowerSet + theorem UpperSetTopology.IsOpen_iff_IsUpperSet + theorem UpperSetTopology.IsOpen_sInter + theorem UpperSetTopology.Monotone_to_UpperTopology_Continuous + theorem UpperSetTopology.UpperSetLEUpper + theorem UpperSetTopology.closure_eq_lowerClosure + theorem UpperSetTopology.closure_singleton + theorem UpperSetTopology.isClosed_iff_isLower + theorem UpperSetTopology.isClosed_isLower + theorem UpperSetTopology.isOpen_iInter + theorem UpperSetTopology.topology_eq + def UpperSetTopology.withUpperSetTopologyHomeomorph + def WithLowerSetTopology.ofLowerSet + def WithLowerSetTopology.ofLowerSetOrderIso + theorem WithLowerSetTopology.ofLowerSet_inj + theorem WithLowerSetTopology.ofLowerSet_le_iff + theorem WithLowerSetTopology.ofLowerSet_toLowerSet + theorem WithLowerSetTopology.of_withLowerSetTopology_symm_eq + def WithLowerSetTopology.toLowerSet + def WithLowerSetTopology.toLowerSetOrderIso + theorem WithLowerSetTopology.toLowerSet_inj + theorem WithLowerSetTopology.toLowerSet_le_iff + theorem WithLowerSetTopology.toLowerSet_ofLowerSet + theorem WithLowerSetTopology.to_withLowerSetTopology_symm_eq + def WithLowerSetTopology + def WithUpperSetTopology.ofUpperSet + def WithUpperSetTopology.ofUpperSetOrderIso + theorem WithUpperSetTopology.ofUpperSet_inj + theorem WithUpperSetTopology.ofUpperSet_le_iff + theorem WithUpperSetTopology.ofUpperSet_toUpperSet + theorem WithUpperSetTopology.of_withUpperSetTopology_symm_eq + def WithUpperSetTopology.toUpperSet + def WithUpperSetTopology.toUpperSetOrderIso + theorem WithUpperSetTopology.toUpperSet_inj + theorem WithUpperSetTopology.toUpperSet_le_iff + theorem WithUpperSetTopology.toUpperSet_ofUpperSet + theorem WithUpperSetTopology.to_withUpperSetTopology_symm_eq + def WithUpperSetTopology + def lowerSetTopology' + def upperSetTopology' 2023-08-01 16:49:34 34cd6c1 feat: add a generalisation of Dirichlet's approximation theorem (#6033) ESTIMATED CHANGES Modified Mathlib/NumberTheory/DiophantineApproximation.lean Modified Mathlib/NumberTheory/WellApproximable.lean + theorem AddCircle.exists_norm_nsmul_le + theorem NormedAddCommGroup.exists_norm_nsmul_le 2023-08-01 16:05:19 bee2977 refactor(FieldTheory/NormalClosure): move to new file (#6273) This PR moves `normalClosure` to a separate file, in preparation for #6163. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/FieldTheory/Galois.lean Modified Mathlib/FieldTheory/Normal.lean - theorem normalClosure.restrictScalars_eq_iSup_adjoin Added Mathlib/FieldTheory/NormalClosure.lean + theorem normalClosure.restrictScalars_eq_iSup_adjoin 2023-08-01 15:12:50 d4d88d3 refactor(AlgebraicGeometry/EllipticCurve/Weierstrass): change the variableChange into a structure (#5841) Main changes: - [x] Change the `variableChange` (was `u r s t` everywhere) into a structure `VariableChange`. - [x] Add `id`, `comp` and `inv` to `VariableChange` and prove that it form a group and acts on the set of elliptic curves to the left. - [x] Add `baseChange` to `VariableChange`, prove the compatibility of it with base change of elliptic curves. - [x] Prove that if the ring homomorphism is injective, then `baseChange` of `VariableChange` and elliptic curves are injective (NB: We don't say anything about elliptic curves modulo isomorphism yet!) - [x] Prove that `baseChange` of `VariableChange` is a group homomorphism ESTIMATED CHANGES Modified Mathlib/AlgebraicGeometry/EllipticCurve/Weierstrass.lean + theorem EllipticCurve.baseChange_injective +/- theorem EllipticCurve.coe_variableChange_Δ' + theorem EllipticCurve.variableChange_comp + theorem EllipticCurve.variableChange_id +/- theorem EllipticCurve.variableChange_j + def WeierstrassCurve.VariableChange.baseChange + def WeierstrassCurve.VariableChange.baseChangeMap + theorem WeierstrassCurve.VariableChange.baseChange_baseChange + theorem WeierstrassCurve.VariableChange.baseChange_comp + theorem WeierstrassCurve.VariableChange.baseChange_id + theorem WeierstrassCurve.VariableChange.baseChange_injective + theorem WeierstrassCurve.VariableChange.baseChange_self + def WeierstrassCurve.VariableChange.comp + theorem WeierstrassCurve.VariableChange.comp_assoc + theorem WeierstrassCurve.VariableChange.comp_id + theorem WeierstrassCurve.VariableChange.comp_left_inv + def WeierstrassCurve.VariableChange.id + theorem WeierstrassCurve.VariableChange.id_comp + def WeierstrassCurve.VariableChange.inv + structure WeierstrassCurve.VariableChange + theorem WeierstrassCurve.baseChange_injective + theorem WeierstrassCurve.baseChange_variableChange +/- theorem WeierstrassCurve.variableChange_b₂ + theorem WeierstrassCurve.variableChange_comp +/- theorem WeierstrassCurve.variableChange_c₄ +/- theorem WeierstrassCurve.variableChange_c₆ + theorem WeierstrassCurve.variableChange_id +/- theorem WeierstrassCurve.variableChange_Δ 2023-08-01 14:29:31 8dd1361 feat: n-th derivative of C^{n+p} map is C^p (#6101) ESTIMATED CHANGES Modified Mathlib/Analysis/Calculus/ContDiff.lean + theorem ContDiff.iteratedFDeriv_right + theorem ContDiffAt.iteratedFDeriv_right + theorem ContDiffWithinAt.iteratedFderivWithin_right Modified Mathlib/Analysis/Calculus/ContDiffDef.lean + theorem fderivWithin_iteratedFDerivWithin 2023-08-01 12:59:39 fa24f8f feat: AList.keys_subset_keys_of_entries_subset_entries (#6150) ESTIMATED CHANGES Modified Mathlib/Data/List/AList.lean + theorem AList.keys_subset_keys_of_entries_subset_entries 2023-08-01 12:59:38 4d41532 feat: Number of edges of a tree (#5918) Port/review of [mathlib#18638](https://github.com/leanprover-community/mathlib/pull/18638) directly to Mathlib4. ESTIMATED CHANGES Modified Mathlib/Combinatorics/SimpleGraph/Acyclic.lean + theorem SimpleGraph.IsTree.card_edgeFinset + theorem SimpleGraph.IsTree.existsUnique_path Modified Mathlib/Combinatorics/SimpleGraph/Connectivity.lean + theorem SimpleGraph.Walk.IsPath.tail + inductive SimpleGraph.Walk.Nil + theorem SimpleGraph.Walk.adj_sndOfNotNil + theorem SimpleGraph.Walk.cons_support_tail + theorem SimpleGraph.Walk.cons_tail_eq + theorem SimpleGraph.Walk.edge_firstDart + def SimpleGraph.Walk.firstDart + theorem SimpleGraph.Walk.length_tail_add_one + theorem SimpleGraph.Walk.nil_copy + theorem SimpleGraph.Walk.nil_iff_length_eq + theorem SimpleGraph.Walk.nil_iff_support_eq + theorem SimpleGraph.Walk.nil_nil + def SimpleGraph.Walk.notNilRec + theorem SimpleGraph.Walk.not_nil_cons + theorem SimpleGraph.Walk.not_nil_iff + theorem SimpleGraph.Walk.not_nil_of_ne + def SimpleGraph.Walk.sndOfNotNil + def SimpleGraph.Walk.tail 2023-08-01 12:02:27 881c646 chore: cleanup API for distributors in preadditive monoidal categories (#6257) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Monoidal/Preadditive.lean + theorem CategoryTheory.biproduct_ι_comp_leftDistributor_hom + theorem CategoryTheory.biproduct_ι_comp_leftDistributor_inv + theorem CategoryTheory.biproduct_ι_comp_rightDistributor_hom + theorem CategoryTheory.biproduct_ι_comp_rightDistributor_inv + theorem CategoryTheory.leftDistributor_ext_left + theorem CategoryTheory.leftDistributor_ext_right + theorem CategoryTheory.leftDistributor_ext₂_left + theorem CategoryTheory.leftDistributor_ext₂_right + theorem CategoryTheory.leftDistributor_hom_comp_biproduct_π + theorem CategoryTheory.leftDistributor_inv_comp_biproduct_π +/- theorem CategoryTheory.leftDistributor_rightDistributor_assoc +/- def CategoryTheory.rightDistributor +/- theorem CategoryTheory.rightDistributor_assoc + theorem CategoryTheory.rightDistributor_ext_left + theorem CategoryTheory.rightDistributor_ext_right + theorem CategoryTheory.rightDistributor_ext₂_left + theorem CategoryTheory.rightDistributor_ext₂_right +/- theorem CategoryTheory.rightDistributor_hom + theorem CategoryTheory.rightDistributor_hom_comp_biproduct_π +/- theorem CategoryTheory.rightDistributor_inv + theorem CategoryTheory.rightDistributor_inv_comp_biproduct_π 2023-08-01 12:02:25 c8214aa feat: parameter equality of strongly regular graphs (#6060) i.e. $k(k-l-1)=(n-k-1)μ$. An extra condition $n>0$ is required because the proof (a standard double counting argument) sets itself around an arbitrary vertex of the graph, and furthermore the null graph ($n=0$) can vacuously be made to be strongly regular with any parameters you like. ESTIMATED CHANGES Modified Mathlib/Combinatorics/SimpleGraph/StronglyRegular.lean + theorem SimpleGraph.IsSRGWith.param_eq 2023-08-01 12:02:24 73761ee feat: restore field_simp [*] (#6024) fixes #5689 to do this we basically copy the missing functionality over from the simp internals ESTIMATED CHANGES Modified Archive/Imo/Imo2008Q2.lean Modified Mathlib/Analysis/SpecialFunctions/Complex/Arg.lean Modified Mathlib/Tactic/FieldSimp.lean 2023-08-01 10:36:56 e632cab docs(Tactic/Nontriviality): fix docs (#6191) ESTIMATED CHANGES Modified Mathlib/Tactic/Nontriviality/Core.lean 2023-08-01 10:36:55 944204b fix: add some robustness to fragile declarations (#6177) These declarations broke when I tweaked instances a little bit (in a separate branch that is not ready yet), and I think these declarations can use some extra robustness (usually by providing some extra information explicitly). ESTIMATED CHANGES Modified Mathlib/Algebra/Lie/TensorProduct.lean Modified Mathlib/CategoryTheory/Monoidal/CommMon_.lean Modified Mathlib/Data/Finsupp/Multiset.lean Modified Mathlib/LinearAlgebra/Finsupp.lean Modified Mathlib/Order/CompleteLattice.lean Modified Mathlib/RepresentationTheory/GroupCohomology/Resolution.lean Modified Mathlib/Tactic/Positivity/Core.lean 2023-08-01 10:36:52 bfd9478 feat: products of Thunks (#6096) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Data/LazyList/Basic.lean - theorem Thunk.ext Modified Mathlib/Init/Core.lean Added Mathlib/Lean/Thunk.lean + theorem Thunk.ext + def Thunk.prod + theorem Thunk.prod_get_fst + theorem Thunk.prod_get_snd 2023-08-01 09:41:20 865bd5b chore: cleanup some set_option commands (#6281) ESTIMATED CHANGES Modified Mathlib/Analysis/SpecialFunctions/Stirling.lean Modified Mathlib/CategoryTheory/Monoidal/NaturalTransformation.lean Modified Mathlib/Data/Nat/Factors.lean Modified Mathlib/SetTheory/Game/PGame.lean Modified Mathlib/Topology/Algebra/Order/MonotoneConvergence.lean Modified Mathlib/Topology/Category/Profinite/Basic.lean Modified Mathlib/Topology/Gluing.lean Modified Mathlib/Topology/Sheaves/Skyscraper.lean +/- theorem SkyscraperPresheafFunctor.map'_id Modified Mathlib/Topology/UniformSpace/UniformConvergenceTopology.lean 2023-08-01 08:16:17 ba0213e feat: add instances about `Nat.Primes` (#6238) The type of prime numbers is infinite and countable. ESTIMATED CHANGES Modified Mathlib/Data/Nat/PrimeFin.lean 2023-08-01 08:16:16 6965a5a feat: generalize universes for connected categories (#6237) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/IsConnected.lean +/- theorem CategoryTheory.any_functor_const_on_obj +/- theorem CategoryTheory.constant_of_preserves_morphisms +/- theorem CategoryTheory.isConnected_of_equivalent +/- theorem CategoryTheory.isPreconnected_of_equivalent +/- def CategoryTheory.isoConstant Modified Mathlib/Logic/Function/Basic.lean + theorem Function.apply_invFun_apply 2023-08-01 08:16:15 69e7283 feat: add more lemmas about derivatives and `tsupport` (#6228) ESTIMATED CHANGES Modified Mathlib/Analysis/Calculus/FDeriv/Basic.lean + theorem HasFDerivAt.of_not_mem_tsupport + theorem HasFDerivWithinAt.of_not_mem_tsupport + theorem HasStrictFDerivAt.of_not_mem_tsupport + theorem fderiv_of_not_mem_tsupport 2023-08-01 07:19:02 358bd33 feat: factorization through full subcategories is definitional (#6184) In Lean 3, the equality `FullSubcategory.lift P F hF ⋙ fullSubcategoryInclusion P = F` was evil because it was not definitional (though it was definitional on objects and maps). In Lean 4, it is definitional, so it should be fine to tell this to `dsimp`. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/FullSubcategory.lean + theorem CategoryTheory.FullSubcategory.lift_comp_inclusion_eq 2023-07-31 23:05:14 6c5ad83 chore: use `FunLike` for `OrderHom` (#5805) ESTIMATED CHANGES Modified Mathlib/AlgebraicTopology/SimplexCategory.lean Modified Mathlib/Control/LawfulFix.lean Modified Mathlib/Data/Real/EReal.lean Modified Mathlib/LinearAlgebra/Eigenspace/Basic.lean Modified Mathlib/Order/Category/OmegaCompletePartialOrder.lean Modified Mathlib/Order/Category/PartOrdCat.lean Modified Mathlib/Order/Hom/Basic.lean + theorem OrderHom.coe_eq - theorem OrderHom.coe_fun_mk + theorem OrderHom.coe_mk + theorem OrderHom.toFun_eq_coe + theorem OrderHomClass.coe_coe Modified Mathlib/Order/OmegaCompletePartialOrder.lean + theorem OmegaCompletePartialOrder.Chain.map_coe + theorem OmegaCompletePartialOrder.Chain.zip_coe + theorem OmegaCompletePartialOrder.ContinuousHom.coe_apply + theorem OmegaCompletePartialOrder.ContinuousHom.coe_mk + theorem OmegaCompletePartialOrder.ContinuousHom.coe_toOrderHom +/- def OmegaCompletePartialOrder.ContinuousHom.comp +/- theorem OmegaCompletePartialOrder.ContinuousHom.comp_id +/- def OmegaCompletePartialOrder.ContinuousHom.const - theorem OmegaCompletePartialOrder.ContinuousHom.const_apply + def OmegaCompletePartialOrder.ContinuousHom.copy +/- def OmegaCompletePartialOrder.ContinuousHom.id +/- theorem OmegaCompletePartialOrder.ContinuousHom.id_comp - def OmegaCompletePartialOrder.ContinuousHom.ofFun - def OmegaCompletePartialOrder.ContinuousHom.ofMono + theorem OmegaCompletePartialOrder.ContinuousHom.toOrderHom_eq_coe Modified Mathlib/RingTheory/DedekindDomain/Ideal.lean Modified Mathlib/RingTheory/Filtration.lean Modified Mathlib/Topology/OmegaCompletePartialOrder.lean + theorem Scott.IsOpen.isUpperSet Modified Mathlib/Topology/Order/Hom/Esakia.lean + theorem PseudoEpimorphism.toOrderHom_eq_coe 2023-07-31 21:41:48 c02f4f8 feat(Order/Monotone/Basic): Add Monotone.dual_iff and Antitone.dual_iff (#6157) Add if and only if versions of `Monotone.dual` and `Antitone.dual`. Needed for #5672 ESTIMATED CHANGES Modified Mathlib/Order/Monotone/Basic.lean + theorem antitone_dual_iff + theorem antitone_on_dual_iff + theorem monotone_dual_iff + theorem monotone_on_dual_iff + theorem strict_anti_dual_iff + theorem strict_anti_on_dual_iff + theorem strict_mono_dual_iff + theorem strict_mono_on_dual_iff 2023-07-31 19:47:08 bbf74a5 chore: fix a few typos in docstrings (#6261) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Equivalence.lean 2023-07-31 19:47:07 31d6c54 feat(MeasureTheory): define `DomMulAct` action on `Lp` (#6190) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/MeasureTheory/Function/AEEqFun/DomAct.lean + theorem DomMulAct.smul_aeeqFun_const Modified Mathlib/MeasureTheory/Function/LpSpace.lean Added Mathlib/MeasureTheory/Function/LpSpace/DomAct/Basic.lean + theorem DomMulAct.dist_smul_Lp + theorem DomMulAct.edist_smul_Lp + theorem DomMulAct.mk_smul_toLp + theorem DomMulAct.nnnorm_smul_Lp + theorem DomMulAct.norm_smul_Lp + theorem DomMulAct.smul_Lp_add + theorem DomMulAct.smul_Lp_ae_eq + theorem DomMulAct.smul_Lp_const + theorem DomMulAct.smul_Lp_neg + theorem DomMulAct.smul_Lp_sub + theorem DomMulAct.smul_Lp_val + theorem DomMulAct.smul_Lp_zero Modified Mathlib/MeasureTheory/Group/Integration.lean 2023-07-31 18:22:57 c278543 doc(Algebra/BigOperators/Basic): fix comment for product notation (#6272) ESTIMATED CHANGES Modified Mathlib/Algebra/BigOperators/Basic.lean 2023-07-31 16:57:13 2c4229d feat: iterated categorical (co/bi/)products (#6255) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Limits/Shapes/Biproducts.lean + theorem CategoryTheory.Limits.Bicone.toCocone_proj + theorem CategoryTheory.Limits.Bicone.toCone_proj + def CategoryTheory.Limits.biproductBiproductIso Modified Mathlib/CategoryTheory/Limits/Shapes/Products.lean +/- def CategoryTheory.Limits.Cofan.mk + def CategoryTheory.Limits.Cofan.proj +/- def CategoryTheory.Limits.Fan.mk + theorem CategoryTheory.Limits.cofan_mk_proj + def CategoryTheory.Limits.mkCofanColimit + def CategoryTheory.Limits.piPiIso + def CategoryTheory.Limits.sigmaSigmaIso 2023-07-31 16:57:12 ff2de95 chore(Data/Set): add 2 `@[simp]` attrs (#6251) The corresponding `Finset` lemmas are already marked `simp`. ESTIMATED CHANGES Modified Mathlib/Data/Set/Prod.lean 2023-07-31 16:57:10 e1debad feat: 2-commutative squares (#6233) This PR introduces the notion of 2-commutative squares of functors. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/CatCommSq.lean + def CategoryTheory.CatCommSq.hComp + def CategoryTheory.CatCommSq.hInv + def CategoryTheory.CatCommSq.hInvEquiv + theorem CategoryTheory.CatCommSq.hInv_hInv + def CategoryTheory.CatCommSq.iso + def CategoryTheory.CatCommSq.vComp 2023-07-31 16:57:09 c8f191d chore: Ord instance for Prod.Lex (#6090) ESTIMATED CHANGES Modified Mathlib/Data/Prod/Lex.lean 2023-07-31 16:57:07 795a5ff feat: the short complexes attached to homological complexes (#6039) If `K` is an homological complex and `i` some degree, this PR defines the short complex `K.sc i` which is `K.X (c.prev i) ⟶ K.X i ⟶ K.X (c.next i)``. - [x] depends on: #6008 ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Homology/HomologicalComplex.lean + def HomologicalComplex.XIsoOfEq + theorem HomologicalComplex.XIsoOfEq_hom_comp_XIsoOfEq_hom + theorem HomologicalComplex.XIsoOfEq_hom_comp_XIsoOfEq_inv + theorem HomologicalComplex.XIsoOfEq_hom_comp_d + theorem HomologicalComplex.XIsoOfEq_inv_comp_XIsoOfEq_hom + theorem HomologicalComplex.XIsoOfEq_inv_comp_XIsoOfEq_inv + theorem HomologicalComplex.XIsoOfEq_inv_comp_d + theorem HomologicalComplex.XIsoOfEq_rfl + theorem HomologicalComplex.d_comp_XIsoOfEq_hom + theorem HomologicalComplex.d_comp_XIsoOfEq_inv Added Mathlib/Algebra/Homology/ShortComplex/HomologicalComplex.lean + def HomologicalComplex.shortComplexFunctor' 2023-07-31 15:32:18 cebb592 refactor(Algebra/Module/LinearMap): generalize the endomorphism algebra instance (#6207) Note that the module instance was already generalized; we were just missing the fact that when combined with the existing ring instance, the result was an algebra. This also moves some lemmas about `IsUnit (_ : Module.End R M)` to an earlier file as they are nothing to do with `Algebra`. ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/Basic.lean - theorem Module.End_isUnit_apply_inv_apply_of_isUnit - theorem Module.End_isUnit_iff - theorem Module.End_isUnit_inv_apply_apply_of_isUnit +/- theorem Module.algebraMap_end_apply +/- theorem Module.algebraMap_end_eq_smul_id Modified Mathlib/Algebra/Module/Equiv.lean + theorem Module.End_isUnit_iff Modified Mathlib/Algebra/Module/LinearMap.lean + theorem Module.End_isUnit_apply_inv_apply_of_isUnit + theorem Module.End_isUnit_inv_apply_apply_of_isUnit Modified Mathlib/Algebra/Module/LocalizedModule.lean Modified docs/undergrad.yaml 2023-07-31 15:32:16 ff15b39 chore: tidy various files (#6174) ESTIMATED CHANGES Modified Mathlib/Data/Finset/Powerset.lean + def Finset.decidableExistsOfDecidableSSubsets' - def Finset.decidableExistsOfDecidableSsubsets' + def Finset.decidableForallOfDecidableSSubsets' - def Finset.decidableForallOfDecidableSsubsets' + theorem Finset.powersetLen_sup - theorem Finset.powerset_len_sup Modified Mathlib/Data/Set/Lattice.lean Modified Mathlib/Data/Sign.lean - inductive SignType.Le +/- def SignType.castHom +/- def SignType.fin3Equiv +/- theorem SignType.univ_eq Modified Mathlib/Deprecated/Subgroup.lean Modified Mathlib/GroupTheory/Coset.lean + def Subgroup.quotientEquivProdOfLE' - def Subgroup.quotientEquivProdOfLe' + def Subgroup.quotientMapOfLE + theorem Subgroup.quotientMapOfLE_apply_mk - def Subgroup.quotientMapOfLe - theorem Subgroup.quotientMapOfLe_apply_mk + def Subgroup.quotientSubgroupOfEmbeddingOfLE + theorem Subgroup.quotientSubgroupOfEmbeddingOfLE_apply_mk - def Subgroup.quotientSubgroupOfEmbeddingOfLe - theorem Subgroup.quotientSubgroupOfEmbeddingOfLe_apply_mk + def Subgroup.quotientSubgroupOfMapOfLE + theorem Subgroup.quotientSubgroupOfMapOfLE_apply_mk - def Subgroup.quotientSubgroupOfMapOfLe - theorem Subgroup.quotientSubgroupOfMapOfLe_apply_mk Modified Mathlib/GroupTheory/Index.lean Modified Mathlib/Order/Filter/Germ.lean Modified Mathlib/Order/Grade.lean Modified Mathlib/Order/OmegaCompletePartialOrder.lean +/- def OmegaCompletePartialOrder.ContinuousHom.flip Modified Mathlib/RingTheory/MvPolynomial/Symmetric.lean Modified Mathlib/Tactic/IntervalCases.lean Modified Mathlib/Topology/Algebra/Monoid.lean +/- def Submonoid.topologicalClosure Modified Mathlib/Topology/Order.lean 2023-07-31 15:32:13 8b42c6f chore (Ideal.Cotangent): simplify term for cotangentIdeal (#6156) This removes an extraneous `have` and reduces a `let` binding. ESTIMATED CHANGES Modified Mathlib/RingTheory/Ideal/Cotangent.lean +/- def Ideal.cotangentIdeal 2023-07-31 15:32:11 c8aaaf2 feat(Order/Basic): simp lemmas about Subsingleton (#6092) ESTIMATED CHANGES Modified Mathlib/Data/Fin/Tuple/Basic.lean Modified Mathlib/Order/Basic.lean + theorem le_of_subsingleton + theorem not_lt_of_subsingleton 2023-07-31 15:32:09 b6d0a69 feat: `a + a = 0 ↔ a = 0` in `ZMod n` for `n` odd (#6086) This PR proves that `a + a = 0 ↔ a = 0`, and uses it to golf the proof of `ne_neg_self`. ESTIMATED CHANGES Modified Mathlib/Data/ZMod/Basic.lean + theorem ZMod.add_self_eq_zero_iff_eq_zero - theorem ZMod.le_div_two_iff_lt_neg +/- theorem ZMod.ne_neg_self 2023-07-31 15:32:07 fe97716 feat: Add `Nat.card_sum` (#6081) This PR adds `Nat.card_sum`. The finiteness assumptions cannot be dropped, unfortunately. ESTIMATED CHANGES Modified Mathlib/SetTheory/Cardinal/Finite.lean + theorem Nat.card_sum 2023-07-31 15:32:05 4ada7e3 feat(Algebra/BigOperators/Ring): parameterise `DecidableEq` instance for `Finset.prod_add` (#5798) Remove the use of a classical `DecidableEq` instance from `Finset.prod_add`. ESTIMATED CHANGES Modified Mathlib/Algebra/BigOperators/Ring.lean +/- theorem Finset.prod_add 2023-07-31 14:06:24 a4f2559 feat: generalize a few `Nat.cast` lemmas (#6229) This generalizes some `Nat.cast` lemmas from `OrderedSemiring α` to the conjunction of `AddCommMonoidWithOne α`, `PartialOrder α`, `CovariantClass α α (· + ·) (· ≤ ·)`, `ZeroLEOneClass α`; collectively, these make up an `OrderedAddCommMonoidWithOne`, but that type class doesn't actually exist. This generalization is not without purpose, the new lemmas will apply to `StarOrderedRing`s, as well as the `selfAdjoint` part thereof, as well as the subtype `{x : α // 0 ≤ x}` of positive elements in a `StarOrderedRing`. These can be seen in #4871. Because we are generalizing some fundamental `simp` lemmas from a single bundled type class to a bag of several classes, Lean had trouble in a few places. So, we opt to keep the `OrderedSemiring` versions of these `simp` lemmas as a special case, and we mark the more general versions with `@[simp low]`. This also avoids needing to update the `positivity` extension for `Nat.cast` to the more general setting for the time being. ESTIMATED CHANGES Modified Archive/Imo/Imo1998Q2.lean Modified Mathlib/Data/Nat/Cast/Basic.lean + theorem Nat.cast_nonneg' +/- theorem Nat.cast_nonneg + theorem Nat.cast_pos' +/- theorem Nat.cast_pos 2023-07-31 14:06:22 cba384a chore: split `ClassGroup.mk0_surjective` (#6146) Not only was this a huge declaration, it also remained unfolded throughout checking the proof, so things like defeq checking were extremely slow (total declaration elaboration time ~1 minute on my machine). Splitting it into a `def` + proofs makes everything much faster. Total build time for this file on my machine went from ~140 seconds to ~80 seconds. I came across this issue while trying to figure out why #6011 appeared to slow down building of `ClassGroup.lean`. ESTIMATED CHANGES Modified Mathlib/RingTheory/ClassGroup.lean + theorem ClassGroup.Quot_mk_eq_mk + theorem ClassGroup.integralRep_mem_nonZeroDivisors + theorem ClassGroup.mk0_integralRep 2023-07-31 14:06:21 9d275d5 feat: Subtype.orderEmbedding (#6097) ESTIMATED CHANGES Modified Mathlib/Order/Hom/Basic.lean + def Subtype.orderEmbedding 2023-07-31 14:06:19 15677dd refactor: rename `FreeProduct` to `Monoid.CoprodI` (#6055) ESTIMATED CHANGES Modified Mathlib.lean Renamed Mathlib/GroupTheory/FreeProduct.lean to Mathlib/GroupTheory/CoprodI.lean - theorem FreeProduct.NeWord.append_head - theorem FreeProduct.NeWord.append_last - theorem FreeProduct.NeWord.append_prod - def FreeProduct.NeWord.head - def FreeProduct.NeWord.inv - theorem FreeProduct.NeWord.inv_head - theorem FreeProduct.NeWord.inv_last - theorem FreeProduct.NeWord.inv_prod - def FreeProduct.NeWord.last - def FreeProduct.NeWord.mulHead - theorem FreeProduct.NeWord.mulHead_head - theorem FreeProduct.NeWord.mulHead_prod - theorem FreeProduct.NeWord.of_word - def FreeProduct.NeWord.prod - theorem FreeProduct.NeWord.prod_singleton - def FreeProduct.NeWord.replaceHead - theorem FreeProduct.NeWord.replaceHead_head - theorem FreeProduct.NeWord.singleton_head - theorem FreeProduct.NeWord.singleton_last - def FreeProduct.NeWord.toList - theorem FreeProduct.NeWord.toList_getLast? - theorem FreeProduct.NeWord.toList_head? - theorem FreeProduct.NeWord.toList_ne_nil - def FreeProduct.NeWord.toWord - inductive FreeProduct.NeWord - inductive FreeProduct.Rel - structure FreeProduct.Word.Pair - theorem FreeProduct.Word.cons_eq_rcons - theorem FreeProduct.Word.cons_eq_smul - def FreeProduct.Word.empty - def FreeProduct.Word.equiv - def FreeProduct.Word.equivPair - theorem FreeProduct.Word.equivPair_eq_of_fstIdx_ne - theorem FreeProduct.Word.equivPair_symm - def FreeProduct.Word.fstIdx - theorem FreeProduct.Word.fstIdx_ne_iff - theorem FreeProduct.Word.of_smul_def - def FreeProduct.Word.prod - theorem FreeProduct.Word.prod_empty - theorem FreeProduct.Word.prod_rcons - theorem FreeProduct.Word.prod_smul - def FreeProduct.Word.rcons - theorem FreeProduct.Word.rcons_inj - theorem FreeProduct.Word.smul_induction - structure FreeProduct.Word - theorem FreeProduct.empty_of_word_prod_eq_one - theorem FreeProduct.ext_hom - theorem FreeProduct.induction_on - theorem FreeProduct.inv_def - def FreeProduct.lift - theorem FreeProduct.lift_injective_of_ping_pong - theorem FreeProduct.lift_mrange_le - theorem FreeProduct.lift_of - theorem FreeProduct.lift_range_le - theorem FreeProduct.lift_word_ping_pong - theorem FreeProduct.lift_word_prod_nontrivial_of_head_card - theorem FreeProduct.lift_word_prod_nontrivial_of_head_eq_last - theorem FreeProduct.lift_word_prod_nontrivial_of_not_empty - theorem FreeProduct.lift_word_prod_nontrivial_of_other_i - theorem FreeProduct.mrange_eq_iSup - def FreeProduct.of - theorem FreeProduct.of_apply - theorem FreeProduct.of_injective - theorem FreeProduct.of_leftInverse - theorem FreeProduct.range_eq_iSup - def FreeProduct + theorem Monoid.CoprodI.NeWord.append_head + theorem Monoid.CoprodI.NeWord.append_last + theorem Monoid.CoprodI.NeWord.append_prod + def Monoid.CoprodI.NeWord.head + def Monoid.CoprodI.NeWord.inv + theorem Monoid.CoprodI.NeWord.inv_head + theorem Monoid.CoprodI.NeWord.inv_last + theorem Monoid.CoprodI.NeWord.inv_prod + def Monoid.CoprodI.NeWord.last + def Monoid.CoprodI.NeWord.mulHead + theorem Monoid.CoprodI.NeWord.mulHead_head + theorem Monoid.CoprodI.NeWord.mulHead_prod + theorem Monoid.CoprodI.NeWord.of_word + def Monoid.CoprodI.NeWord.prod + theorem Monoid.CoprodI.NeWord.prod_singleton + def Monoid.CoprodI.NeWord.replaceHead + theorem Monoid.CoprodI.NeWord.replaceHead_head + theorem Monoid.CoprodI.NeWord.singleton_head + theorem Monoid.CoprodI.NeWord.singleton_last + def Monoid.CoprodI.NeWord.toList + theorem Monoid.CoprodI.NeWord.toList_getLast? + theorem Monoid.CoprodI.NeWord.toList_head? + theorem Monoid.CoprodI.NeWord.toList_ne_nil + def Monoid.CoprodI.NeWord.toWord + inductive Monoid.CoprodI.NeWord + inductive Monoid.CoprodI.Rel + structure Monoid.CoprodI.Word.Pair + theorem Monoid.CoprodI.Word.cons_eq_rcons + theorem Monoid.CoprodI.Word.cons_eq_smul + def Monoid.CoprodI.Word.empty + def Monoid.CoprodI.Word.equiv + def Monoid.CoprodI.Word.equivPair + theorem Monoid.CoprodI.Word.equivPair_eq_of_fstIdx_ne + theorem Monoid.CoprodI.Word.equivPair_symm + def Monoid.CoprodI.Word.fstIdx + theorem Monoid.CoprodI.Word.fstIdx_ne_iff + theorem Monoid.CoprodI.Word.of_smul_def + def Monoid.CoprodI.Word.prod + theorem Monoid.CoprodI.Word.prod_empty + theorem Monoid.CoprodI.Word.prod_rcons + theorem Monoid.CoprodI.Word.prod_smul + def Monoid.CoprodI.Word.rcons + theorem Monoid.CoprodI.Word.rcons_inj + theorem Monoid.CoprodI.Word.smul_induction + structure Monoid.CoprodI.Word + theorem Monoid.CoprodI.empty_of_word_prod_eq_one + theorem Monoid.CoprodI.ext_hom + theorem Monoid.CoprodI.induction_on + theorem Monoid.CoprodI.inv_def + def Monoid.CoprodI.lift + theorem Monoid.CoprodI.lift_injective_of_ping_pong + theorem Monoid.CoprodI.lift_mrange_le + theorem Monoid.CoprodI.lift_of + theorem Monoid.CoprodI.lift_range_le + theorem Monoid.CoprodI.lift_word_ping_pong + theorem Monoid.CoprodI.lift_word_prod_nontrivial_of_head_card + theorem Monoid.CoprodI.lift_word_prod_nontrivial_of_head_eq_last + theorem Monoid.CoprodI.lift_word_prod_nontrivial_of_not_empty + theorem Monoid.CoprodI.lift_word_prod_nontrivial_of_other_i + theorem Monoid.CoprodI.mrange_eq_iSup + def Monoid.CoprodI.of + theorem Monoid.CoprodI.of_apply + theorem Monoid.CoprodI.of_injective + theorem Monoid.CoprodI.of_leftInverse + theorem Monoid.CoprodI.range_eq_iSup + def Monoid.CoprodI + def freeGroupEquivCoprodI - def freeGroupEquivFreeProduct 2023-07-31 14:06:18 a333b1f feat: add lemmas about `Relator.LeftTotal` `Relator.RightTotal` `Relator.BiTotal` (#5888) ESTIMATED CHANGES Modified Mathlib/Logic/Relator.lean 2023-07-31 13:14:29 6f17aee feat: short complexes in functor categories (#6245) This PR constructs an equivalence of categories `ShortComplex (J ⥤ C) ≌ J ⥤ ShortComplex C`. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Homology/ShortComplex/FunctorEquivalence.lean + def CategoryTheory.ShortComplex.FunctorEquivalence.counitIso + def CategoryTheory.ShortComplex.FunctorEquivalence.functor + def CategoryTheory.ShortComplex.FunctorEquivalence.inverse + def CategoryTheory.ShortComplex.FunctorEquivalence.unitIso + def CategoryTheory.ShortComplex.functorEquivalence Modified Mathlib/CategoryTheory/Limits/Preserves/Shapes/Zero.lean 2023-07-31 11:35:33 fa6fd79 feat: Add basic order instances on `ULift` (#5998) This adds: * `Preorder` * `PartialOrder` * `SemilatticeSup` * `SemilatticeInf` * `Lattice` * `DistribLattice` * `CompleteLattice` * `LinearOrder` ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Order/BoundedOrder.lean + theorem ULift.down_bot + theorem ULift.down_top + theorem ULift.up_bot + theorem ULift.up_top Modified Mathlib/Order/CompleteLattice.lean + theorem ULift.down_iInf + theorem ULift.down_iSup + theorem ULift.down_sInf + theorem ULift.down_sSup + theorem ULift.up_iInf + theorem ULift.up_iSup + theorem ULift.up_sInf + theorem ULift.up_sSup Modified Mathlib/Order/Lattice.lean Added Mathlib/Order/ULift.lean + theorem ULift.down_compare + theorem ULift.down_compl + theorem ULift.down_inf + theorem ULift.down_le + theorem ULift.down_lt + theorem ULift.down_sdiff + theorem ULift.down_sup + theorem ULift.up_compare + theorem ULift.up_compl + theorem ULift.up_inf + theorem ULift.up_le + theorem ULift.up_lt + theorem ULift.up_sdiff + theorem ULift.up_sup 2023-07-31 08:59:27 2b0e962 feat: interaction between eqToHom and (co/bi/)products (#6258) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Limits/Shapes/Biproducts.lean + theorem CategoryTheory.Limits.biproduct.eqToHom_comp_ι + theorem CategoryTheory.Limits.biproduct.π_comp_eqToHom Modified Mathlib/CategoryTheory/Limits/Shapes/Products.lean + theorem CategoryTheory.Limits.Pi.π_comp_eqToHom + theorem CategoryTheory.Limits.Sigma.eqToHom_comp_ι 2023-07-31 08:59:25 4773f92 feat(Algebra/Category/GroupCat/Abelian): prove AddCommGroupCat is AB5 (#5597) This work was done during the 2023 Copenhagen masterclass on formalisation of condensed mathematics. Numerous participants contributed. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Category/GroupCat/Abelian.lean + theorem AddCommGroupCat.exact_iff Modified Mathlib/Algebra/Category/GroupCat/Basic.lean + theorem CommGroupCat.comp_def + theorem GroupCat.comp_def Added Mathlib/Algebra/Category/GroupCat/Kernels.lean + def AddCommGroupCat.cokernelCocone + def AddCommGroupCat.cokernelIsColimit + def AddCommGroupCat.kernelCone + def AddCommGroupCat.kernelIsLimit Modified Mathlib/GroupTheory/QuotientGroup.lean + theorem QuotientGroup.ker_le_range_iff Modified Mathlib/GroupTheory/Subgroup/Basic.lean + theorem MonoidHom.range_le_ker_iff 2023-07-31 08:03:04 275e357 feat: generalize tendsto_measure_cthickening from PseudoMetricSpace to PseudoEMetricSpace and add corresponding lemmas for open thickenings (#6194) This PR mainly makes the generalization so that `tendsto_measure_cthickening` and `tendsto_measure_cthickening_of_isClosed` assume `[PseudoEMetricSpace]` instead of `[PseudoMetricSpace]` (the proofs require no changes, but the generality seems valuable). Also the counterparts `tendsto_measure_thickening` and `tendsto_measure_thickening_of_isClosed` for open thickenings (instead of closed thickenings) are added. ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Constructions/BorelSpace/Basic.lean + theorem tendsto_measure_thickening + theorem tendsto_measure_thickening_of_isClosed 2023-07-31 08:03:02 0938530 feat(Topology/Order/NhdsSet): new file (#6161) Prove lemmas about neighborhoods of intervals. Some lemmas are TC-generalizations of lemmas from the Sphere Eversion Project. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Topology/NhdsSet.lean + theorem nhdsSet_insert Added Mathlib/Topology/Order/NhdsSet.lean + theorem Icc_mem_nhdsSet_Icc + theorem Icc_mem_nhdsSet_Ico + theorem Icc_mem_nhdsSet_Ioc + theorem Ici_mem_nhdsSet_Icc + theorem Ici_mem_nhdsSet_Ici + theorem Ici_mem_nhdsSet_Ici_iff + theorem Ici_mem_nhdsSet_Ico + theorem Ici_mem_nhdsSet_Ioc + theorem Ico_mem_nhdsSet_Icc + theorem Ico_mem_nhdsSet_Ico + theorem Ico_mem_nhdsSet_Ioc + theorem Iic_mem_nhdsSet_Icc + theorem Iic_mem_nhdsSet_Ico + theorem Iic_mem_nhdsSet_Iic + theorem Iic_mem_nhdsSet_Iic_iff + theorem Iic_mem_nhdsSet_Ioc + theorem Iio_mem_nhdsSet_Icc + theorem Iio_mem_nhdsSet_Ico + theorem Iio_mem_nhdsSet_Iic_iff + theorem Iio_mem_nhdsSet_Ioc + theorem Ioc_mem_nhdsSet_Icc + theorem Ioc_mem_nhdsSet_Ico + theorem Ioc_mem_nhdsSet_Ioc + theorem Ioi_mem_nhdsSet_Icc + theorem Ioi_mem_nhdsSet_Ici_iff + theorem Ioi_mem_nhdsSet_Ico + theorem Ioi_mem_nhdsSet_Ioc + theorem Ioo_mem_nhdsSet_Icc + theorem Ioo_mem_nhdsSet_Ico + theorem Ioo_mem_nhdsSet_Ioc + theorem hasBasis_nhdsSet_Ici_Ici + theorem hasBasis_nhdsSet_Ici_Ioi + theorem hasBasis_nhdsSet_Iic_Iic + theorem hasBasis_nhdsSet_Iic_Iio + theorem nhdsSet_Icc + theorem nhdsSet_Ici + theorem nhdsSet_Ico + theorem nhdsSet_Iic + theorem nhdsSet_Iio + theorem nhdsSet_Ioc + theorem nhdsSet_Ioi + theorem nhdsSet_Ioo 2023-07-31 08:03:01 accdefb feat(Topology.ProperMap): basic theory of proper maps (#6005) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Order/Filter/Prod.lean + theorem Filter.le_prod Modified Mathlib/Topology/Basic.lean + theorem clusterPt_iff_forall_mem_closure + theorem clusterPt_iff_lift'_closure' + theorem clusterPt_iff_lift'_closure + theorem clusterPt_lift'_closure_iff Modified Mathlib/Topology/Filter.lean Modified Mathlib/Topology/Maps.lean + theorem IsClosedMap.closure_image_eq_of_continuous + theorem IsClosedMap.lift'_closure_map_eq + theorem IsClosedMap.mapClusterPt_iff_lift'_closure Added Mathlib/Topology/ProperMap.lean + theorem Homeomorph.isProperMap + theorem IsProperMap.continuous + theorem IsProperMap.isClosedMap + theorem IsProperMap.isCompact_preimage + theorem IsProperMap.pi_map + theorem IsProperMap.prod_map + theorem IsProperMap.ultrafilter_le_nhds_of_tendsto + theorem IsProperMap.universally_closed + structure IsProperMap + theorem isProperMap_id + theorem isProperMap_iff_isClosedMap_and_compact_fibers + theorem isProperMap_iff_isClosedMap_and_tendsto_cofinite + theorem isProperMap_iff_isClosedMap_filter + theorem isProperMap_iff_isClosedMap_ultrafilter + theorem isProperMap_iff_isCompact_preimage + theorem isProperMap_iff_tendsto_cocompact + theorem isProperMap_iff_ultrafilter + theorem isProperMap_iff_universally_closed Modified Mathlib/Topology/StoneCech.lean + theorem Ultrafilter.tendsto_pure_self 2023-07-31 05:20:52 dc89373 chore: remove simp lemmas about biproducts that expand into sums (#6256) These `simp` lemmas were unhelpful, and sometimes create unnecessarily complicated terms. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Preadditive/Biproducts.lean Modified Mathlib/CategoryTheory/Preadditive/Mat.lean 2023-07-30 23:31:13 4707b47 feat: allow differential objects with shifts in an AddMonoidWithOne (#6246) What I was really hoping to do was show that ℕ-graded DGOs were the same as ℕ-graded chain complexes (we have the ℤ version), but this still seems awkward. If anyone would like to help with that, please let me know. I think this might be helpful in constructor tensor products of chain complexes with less suffering. ESTIMATED CHANGES Modified Mathlib/Algebra/Homology/DifferentialObject.lean +/- theorem CategoryTheory.DifferentialObject.eqToHom_f' Modified Mathlib/CategoryTheory/DifferentialObject.lean +/- def CategoryTheory.DifferentialObject.Hom.comp +/- def CategoryTheory.DifferentialObject.Hom.id +/- structure CategoryTheory.DifferentialObject.Hom +/- theorem CategoryTheory.DifferentialObject.comp_f +/- theorem CategoryTheory.DifferentialObject.eqToHom_f +/- theorem CategoryTheory.DifferentialObject.ext +/- def CategoryTheory.DifferentialObject.forget +/- theorem CategoryTheory.DifferentialObject.id_f +/- def CategoryTheory.DifferentialObject.isoApp +/- theorem CategoryTheory.DifferentialObject.isoApp_refl +/- theorem CategoryTheory.DifferentialObject.isoApp_symm +/- theorem CategoryTheory.DifferentialObject.isoApp_trans +/- def CategoryTheory.DifferentialObject.mkIso +/- def CategoryTheory.DifferentialObject.shiftFunctor +/- def CategoryTheory.DifferentialObject.shiftZero +/- theorem CategoryTheory.DifferentialObject.zero_f 2023-07-30 17:53:36 2bf4b7e feat: port Init.Data.List.Lemmas (#6243) ESTIMATED CHANGES Modified Mathlib/Data/List/Basic.lean Modified Mathlib/Init/Data/List/Lemmas.lean + theorem List.bex_cons +/- theorem List.length_mapAccumr + theorem List.mem_cons_eq + theorem List.not_bex_nil 2023-07-30 17:05:24 d8c7d98 feat: more API for the right homology of short complexes (#6089) This PR develops more API for the right homology of short complexes. All definitions and statements are parallel to their left homology counterparts. - [x] depends on: #6008 ESTIMATED CHANGES Modified Mathlib/Algebra/Homology/ShortComplex/RightHomology.lean + theorem CategoryTheory.ShortComplex.RightHomologyData.pOpcycles_comp_opcyclesIso_hom + theorem CategoryTheory.ShortComplex.RightHomologyData.p_comp_opcyclesIso_inv + theorem CategoryTheory.ShortComplex.RightHomologyData.rightHomologyIso_hom_comp_ι + theorem CategoryTheory.ShortComplex.RightHomologyData.rightHomologyIso_inv_comp_rightHomologyι + theorem CategoryTheory.ShortComplex.RightHomologyMapData.opcyclesMap_comm + theorem CategoryTheory.ShortComplex.RightHomologyMapData.opcyclesMap_eq + theorem CategoryTheory.ShortComplex.RightHomologyMapData.rightHomologyMap_comm + theorem CategoryTheory.ShortComplex.RightHomologyMapData.rightHomologyMap_eq + def CategoryTheory.ShortComplex.opcyclesMapIso' + def CategoryTheory.ShortComplex.rightHomologyMapIso' 2023-07-30 12:08:41 33baf7d feat: The convolution of a locally integrable function f with a sequence of bump functions converges ae to f (#6102) ESTIMATED CHANGES Modified Mathlib/Analysis/Calculus/BumpFunction/Convolution.lean + theorem ContDiffBump.ae_convolution_tendsto_right_of_locally_integrable Modified Mathlib/Analysis/Calculus/BumpFunction/Normed.lean + theorem ContDiffBump.integral_le_measure_closedBall + theorem ContDiffBump.measure_closedBall_div_le_integral + theorem ContDiffBump.measure_closedBall_le_integral + theorem ContDiffBump.normed_le_div_measure_closedBall_rIn + theorem ContDiffBump.normed_le_div_measure_closedBall_rOut Modified Mathlib/MeasureTheory/Covering/DensityTheorem.lean +/- theorem IsUnifLocDoublingMeasure.ae_tendsto_average +/- theorem IsUnifLocDoublingMeasure.ae_tendsto_average_norm_sub Modified Mathlib/MeasureTheory/Covering/Differentiation.lean +/- theorem VitaliFamily.ae_tendsto_average +/- theorem VitaliFamily.ae_tendsto_average_norm_sub - theorem VitaliFamily.ae_tendsto_lintegral_nnnorm_sub_div' + theorem VitaliFamily.ae_tendsto_lintegral_nnnorm_sub_div'_of_integrable +/- theorem VitaliFamily.ae_tendsto_lintegral_nnnorm_sub_div + theorem VitaliFamily.ae_tendsto_lintegral_nnnorm_sub_div_of_integrable + theorem VitaliFamily.eventually_filterAt_integrableOn Modified Mathlib/MeasureTheory/Integral/Average.lean + theorem MeasureTheory.tendsto_integral_smul_of_tendsto_average_norm_sub Modified Mathlib/MeasureTheory/Integral/SetIntegral.lean + theorem MeasureTheory.set_integral_le_integral 2023-07-30 11:47:42 e227961 chore: bump to nightly-2023-07-30 (#6247) ESTIMATED CHANGES Modified lean-toolchain 2023-07-30 03:44:29 5f8d709 feat(List/MinMax): maximum_of_length_pos (#6115) ESTIMATED CHANGES Modified Mathlib/Data/List/MinMax.lean + theorem List.coe_maximum_of_length_pos + theorem List.coe_minimum_of_length_pos + theorem List.getElem_le_maximum_of_length_pos + theorem List.le_maximum_of_length_pos_iff + theorem List.le_maximum_of_length_pos_of_mem +/- theorem List.maximum_ne_bot_of_length_pos +/- theorem List.maximum_ne_bot_of_ne_nil + def List.maximum_of_length_pos +/- theorem List.minimum_le_coe_iff +/- theorem List.minimum_ne_top_of_length_pos +/- theorem List.minimum_ne_top_of_ne_nil + def List.minimum_of_length_pos + theorem List.minimum_of_length_pos_le_getElem + theorem List.minimum_of_length_pos_le_iff + theorem List.minimum_of_length_pos_le_of_mem 2023-07-29 23:40:05 2471abe feat: forward port AlgebraicTopology.DoldKan.Compatibility (#6186) This PR is a forward port of mathlib3 PR !3#17923 ESTIMATED CHANGES Modified Mathlib/AlgebraicTopology/DoldKan/Compatibility.lean + def AlgebraicTopology.DoldKan.Compatibility.equivalenceCounitIso + theorem AlgebraicTopology.DoldKan.Compatibility.equivalenceCounitIso_eq + def AlgebraicTopology.DoldKan.Compatibility.equivalenceUnitIso + theorem AlgebraicTopology.DoldKan.Compatibility.equivalenceUnitIso_eq + def AlgebraicTopology.DoldKan.Compatibility.τ₀ + def AlgebraicTopology.DoldKan.Compatibility.τ₁ + def AlgebraicTopology.DoldKan.Compatibility.υ 2023-07-29 18:51:05 d8f6839 feat: add IsLocalizedModule.isBaseChange (#5766) Port of leanprover-community/mathlib#17973 Follow up work: * add `IsPushout` when `M` is a `CommRing`. ESTIMATED CHANGES Modified Mathlib/Algebra/Module/LocalizedModule.lean + theorem IsLocalizedModule.isBaseChange Modified Mathlib/LinearAlgebra/TensorProduct.lean + theorem TensorProduct.exists_eq_tmul_of_forall Modified Mathlib/RingTheory/Localization/Basic.lean + theorem IsLocalization.smul_mk' + theorem IsLocalization.smul_mk'_one + theorem IsLocalization.smul_mk'_self Modified Mathlib/RingTheory/Localization/Module.lean + def LinearMap.extendScalarsOfIsLocalization + theorem LinearMap.extendScalarsOfIsLocalization_apply + theorem LinearMap.restrictScalars_extendScalarsOfIsLocalization 2023-07-29 15:51:38 061c9b8 fix(Algebra.Category.ModuleCat.Basic): remove `CoeOut (Submodule R M) (ModuleCat R)` instance (#6032) ESTIMATED CHANGES Modified Mathlib/Algebra/Category/ModuleCat/Basic.lean 2023-07-29 15:51:38 b017d09 feat: CategoryTheory/Sites/CoverLifting -- compatibility between sheafification and pullback (#6009) I'll close https://github.com/leanprover-community/mathlib/pull/14512 once this is merged. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Sites/CoverLifting.lean + def CategoryTheory.Sites.pullbackSheafificationCompatibility + theorem CategoryTheory.Sites.pullbackSheafificationCompatibility_hom_app_val + theorem CategoryTheory.Sites.toSheafify_pullbackSheafificationCompatibility Modified Mathlib/CategoryTheory/Sites/DenseSubsite.lean 2023-07-29 14:26:45 f83ada7 chore: bump to nightly-2023-07-29 (#6234) ESTIMATED CHANGES Modified lean-toolchain 2023-07-29 13:10:18 a211e85 chore: move some List aligns to a better location (#6056) ESTIMATED CHANGES Modified Mathlib/Data/List/Basic.lean Modified Mathlib/Data/List/Defs.lean Modified Mathlib/Data/List/Zip.lean Modified Mathlib/Init/Data/List/Basic.lean Modified Mathlib/Init/Data/List/Lemmas.lean 2023-07-29 12:41:37 cd76c19 feat: groups with zero with a smooth division away from zero (#6069) We have currently (additive or multiplicative) Lie groups but no typeclass to express that division is smooth away from zero in fields. This PR adds such a typeclass, modelled on the one we already have in topological spaces. ESTIMATED CHANGES Modified Mathlib/Geometry/Manifold/Algebra/LieGroup.lean + theorem ContMDiff.div₀ + theorem ContMDiff.inv₀ + theorem ContMDiffAt.div₀ + theorem ContMDiffAt.inv₀ + theorem ContMDiffOn.div₀ + theorem ContMDiffOn.inv₀ + theorem ContMDiffWithinAt.div₀ + theorem ContMDiffWithinAt.inv₀ + theorem Smooth.div₀ + theorem Smooth.inv₀ + theorem SmoothAt.div₀ + theorem SmoothAt.inv₀ + theorem SmoothOn.div₀ + theorem SmoothOn.inv₀ + theorem SmoothOn_inv₀ + theorem SmoothWithinAt.div₀ + theorem SmoothWithinAt.inv₀ + theorem hasContinuousInv₀_of_hasSmoothInv₀ + theorem smoothAt_inv₀ Modified Mathlib/Geometry/Manifold/Algebra/Monoid.lean + theorem ContMDiff.div_const + theorem ContMDiffOn.div_const + theorem ContMDiffWithinAt.div_const Modified Mathlib/Geometry/Manifold/ContMDiff.lean +/- theorem Smooth.contMDiff +/- theorem SmoothAt.contMDiffAt +/- theorem SmoothOn.contMDiffOn 2023-07-29 10:38:05 3380fd1 docs(Tactic/Convert): fix docs (#6185) ESTIMATED CHANGES Modified Mathlib/Tactic/Convert.lean 2023-07-29 10:38:03 7433944 chore(*Deriv*): rename some files (#6167) Move some files to `Analysis/Calculus/FDeriv` ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Analysis/Analytic/IsolatedZeros.lean Renamed Mathlib/Analysis/Calculus/FDerivAnalytic.lean to Mathlib/Analysis/Calculus/FDeriv/Analytic.lean Renamed Mathlib/Analysis/Calculus/ExtendDeriv.lean to Mathlib/Analysis/Calculus/FDeriv/Extend.lean Renamed Mathlib/Analysis/Calculus/FDerivMeasurable.lean to Mathlib/Analysis/Calculus/FDeriv/Measurable.lean Renamed Mathlib/Analysis/Calculus/FDerivSymmetric.lean to Mathlib/Analysis/Calculus/FDeriv/Symmetric.lean Modified Mathlib/Analysis/Complex/CauchyIntegral.lean Modified Mathlib/Analysis/Complex/Liouville.lean Modified Mathlib/Analysis/Complex/RemovableSingularity.lean Modified Mathlib/Analysis/SpecialFunctions/Exponential.lean Modified Mathlib/Analysis/SpecialFunctions/Pow/Deriv.lean Modified Mathlib/Analysis/SpecialFunctions/SmoothTransition.lean Modified Mathlib/MeasureTheory/Integral/FundThmCalculus.lean 2023-07-29 10:38:03 e6e9a9e fix: make EuclideanDomain.gcdMonoid computable (#6076) This of course still works non-computably in the presence of `Classical.decEq`, but the caller now has the option. ESTIMATED CHANGES Modified Mathlib/RingTheory/EuclideanDomain.lean +/- theorem EuclideanDomain.dvd_or_coprime +/- def EuclideanDomain.gcdMonoid +/- theorem EuclideanDomain.gcd_isUnit_iff +/- theorem EuclideanDomain.isCoprime_of_dvd +/- theorem EuclideanDomain.span_gcd 2023-07-29 10:38:02 91917cb feat: Data/Int/ModEq add theorem modEq_sub_fac, compliment modEq_add_fac (#6040) Easy of use function to compliment modEq_add_fac, the statement that : a = b [ZMOD n] implies a - c * n = b [ZMOD n] ESTIMATED CHANGES Modified Mathlib/Data/Int/ModEq.lean + theorem Int.modEq_sub_fac 2023-07-29 10:38:01 0df52a8 feat: explicit limits in Profinite (#5763) Co-authored by: - Riccardo Brasca [riccardo.brasca@gmail.com](mailto:riccardo.brasca@gmail.com) @riccardobrasca - Filippo A. E. Nuccio [filippo.nuccio@univ-st-etienne.fr](mailto:filippo.nuccio@univ-st-etienne.fr) @faenuccio Analogue of CompHaus/ExplicitLimits for Profinite. This work was done during the 2023 Copenhagen masterclass on formalisation of condensed mathematics. Numerous participants contributed. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Topology/Category/Profinite/Limits.lean + theorem Profinite.Sigma.ι_comp_toFiniteCoproduct + def Profinite.coproductHomeoCoproduct + def Profinite.coproductIsoCoproduct + def Profinite.finiteCoproduct.cocone + def Profinite.finiteCoproduct.desc + theorem Profinite.finiteCoproduct.hom_ext + def Profinite.finiteCoproduct.isColimit + def Profinite.finiteCoproduct.ι + theorem Profinite.finiteCoproduct.ι_desc + theorem Profinite.finiteCoproduct.ι_desc_apply + theorem Profinite.finiteCoproduct.ι_injective + theorem Profinite.finiteCoproduct.ι_jointly_surjective + def Profinite.finiteCoproduct + theorem Profinite.pullback.condition + def Profinite.pullback.cone + def Profinite.pullback.fst + theorem Profinite.pullback.hom_ext + def Profinite.pullback.isLimit + def Profinite.pullback.lift + theorem Profinite.pullback.lift_fst + theorem Profinite.pullback.lift_snd + def Profinite.pullback.snd + def Profinite.pullback + def Profinite.pullbackHomeoPullback + def Profinite.pullbackIsoPullback + theorem Profinite.pullback_fst_eq + theorem Profinite.pullback_snd_eq 2023-07-29 10:38:00 61b9a4c feat: some API for explicit limits in CompHaus (#5762) Co-authored by: - Riccardo Brasca [riccardo.brasca@gmail.com](mailto:riccardo.brasca@gmail.com) @riccardobrasca - Filippo A. E. Nuccio [filippo.nuccio@univ-st-etienne.fr](mailto:filippo.nuccio@univ-st-etienne.fr) @faenuccio We add some more API for the compatibility of explicit and abstract limits in CompHaus This work was done during the 2023 Copenhagen masterclass on formalisation of condensed mathematics. Numerous participants contributed. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Topology/Category/CompHaus/Basic.lean + def CompHaus.homeoOfIso + def CompHaus.isoEquivHomeo + def CompHaus.isoOfHomeo Modified Mathlib/Topology/Category/CompHaus/EffectiveEpi.lean Renamed Mathlib/Topology/Category/CompHaus/ExplicitLimits.lean to Mathlib/Topology/Category/CompHaus/Limits.lean + theorem CompHaus.Sigma.ι_comp_toFiniteCoproduct + def CompHaus.coproductHomeoCoproduct + def CompHaus.coproductIsoCoproduct + theorem CompHaus.finiteCoproduct.ι_desc_apply + theorem CompHaus.finiteCoproduct.ι_injective + theorem CompHaus.finiteCoproduct.ι_jointly_surjective + def CompHaus.pullbackHomeoPullback + def CompHaus.pullbackIsoPullback + theorem CompHaus.pullback_fst_eq + theorem CompHaus.pullback_snd_eq 2023-07-29 10:37:59 adddab8 feat(Data/Set/Lattice, Order/Filter/Basic): more lemmas about `kernImage` and filter analog (#5744) This was originally discussed on Zulip, and Junyan made most of the work in [this message](https://leanprover.zulipchat.com/#narrow/stream/217875-Is-there-code-for-X.3F/topic/congruence.20of.20filters.20for.20tendsto/near/294976522). I just changed some proofs to use a bit more Galois connections. This is a bit of a gadget but it does simplify the proof of `comap_iSup`, and it will also be convenient to define the space of functions with support a compact subset of a fixed set. See [this message](https://leanprover.zulipchat.com/#narrow/stream/217875-Is-there-code-for-X.3F/topic/congruence.20of.20filters.20for.20tendsto/near/302238889) for more details. ESTIMATED CHANGES Modified Mathlib/Data/Set/Lattice.lean + theorem Set.compl_range_subset_kernImage + theorem Set.kernImage_compl + theorem Set.kernImage_empty + theorem Set.kernImage_eq_compl + theorem Set.kernImage_mono + theorem Set.kernImage_preimage_eq_iff + theorem Set.kernImage_preimage_union + theorem Set.kernImage_union_preimage + theorem Set.subset_kernImage_iff Modified Mathlib/Order/Filter/Basic.lean + theorem Filter.comap_le_iff_le_kernMap + theorem Filter.compl_mem_kernMap + theorem Filter.gc_comap_kernMap + def Filter.kernMap + theorem Filter.kernMap_principal + theorem Filter.mem_comap'' + theorem Filter.mem_kernMap + theorem Filter.mem_kernMap_iff_compl Modified Mathlib/Order/GaloisConnection.lean 2023-07-29 10:10:02 8bbef90 feat(Probability/Cdf): 2 probability measures are equal iff their cdf are equal (#6122) ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Measure/Stieltjes.lean + theorem StieltjesFunction.eq_of_measure_of_eq + theorem StieltjesFunction.eq_of_measure_of_tendsto_atBot + theorem StieltjesFunction.ext Modified Mathlib/Probability/Cdf.lean + theorem MeasureTheory.Measure.cdf_eq_iff + theorem MeasureTheory.Measure.eq_of_cdf - theorem MeasureTheory.Measure.ext_of_cdf + theorem ProbabilityTheory.cdf_measure_stieltjesFunction 2023-07-29 10:10:01 57c5d5b refactor(Probability/Kernel/Composition): define compProd for all kernels (#6054) `compProd` and `prod` make sense only for s-finite kernels and were defined only for those. I define them for all kernels, with default value 0 when one of the kernels is not s-finite. The new definitions allow rewriting a kernel inside a compProd, which was not possible before (it would raise a "motive is not type correct" error due to the s-finite argument). ESTIMATED CHANGES Modified Mathlib/Probability/Kernel/Composition.lean +/- theorem ProbabilityTheory.kernel.compProd_apply_univ_le +/- theorem ProbabilityTheory.kernel.compProd_eq_sum_compProd_left +/- theorem ProbabilityTheory.kernel.compProd_eq_sum_compProd_right + theorem ProbabilityTheory.kernel.compProd_of_not_isSFiniteKernel_left + theorem ProbabilityTheory.kernel.compProd_of_not_isSFiniteKernel_right Modified Mathlib/Probability/Kernel/Disintegration.lean 2023-07-29 07:57:34 b19ab15 style: leave some variables implicit (#6021) ESTIMATED CHANGES Modified Mathlib/Data/FunLike/Embedding.lean 2023-07-29 05:32:39 f39466c refactor(GroupTheory/CommutingProbability): Remove finite assumption (#6224) This PR removes the finite assumption on a couple lemmas. ESTIMATED CHANGES Modified Mathlib/GroupTheory/CommutingProbability.lean 2023-07-28 22:33:36 6220e1d refactor: link the Stone-Weierstrass theorem to the `StarSubalgebra` API (#5267) The Stone-Weierstrass theorem, including the version for `IsROrC 𝕜`, was developed prior to the introduction of `StarSubalgebra`. As such, in order to prove it, a predicate `ConjInvariantSubalgebra` was introduced for `ℝ`-subalgebras of `C(X, 𝕜)`. This refactors the Stone-Weierstrass theorem to instead use the `StarSubalgebra` API and removes `ContinuousMap.ConjInvariantSubalgebra` entirely. In addition, we provide a few corollaries concerning polynomial functions which are missing from the library. ESTIMATED CHANGES Modified Mathlib/Algebra/Star/Subalgebra.lean +/- def Subalgebra.starClosure + theorem Subalgebra.starClosure_toSubalgebra Modified Mathlib/Analysis/Fourier/AddCircle.lean +/- def fourierSubalgebra - theorem fourierSubalgebra_conj_invariant Modified Mathlib/Analysis/NormedSpace/Star/GelfandDuality.lean Modified Mathlib/Topology/Algebra/StarSubalgebra.lean + theorem StarSubalgebra.topologicalClosure_toSubalgebra_comm + theorem Subalgebra.topologicalClosure_star_comm Modified Mathlib/Topology/ContinuousFunction/Polynomial.lean + theorem polynomialFunctions.eq_adjoin_X + theorem polynomialFunctions.le_equalizer + theorem polynomialFunctions.starClosure_eq_adjoin_X + theorem polynomialFunctions.starClosure_le_equalizer Modified Mathlib/Topology/ContinuousFunction/StoneWeierstrass.lean - def ContinuousMap.ConjInvariantSubalgebra + theorem ContinuousMap.algHom_ext_map_X - theorem ContinuousMap.mem_conjInvariantSubalgebra + theorem ContinuousMap.starAlgHom_ext_map_X + theorem ContinuousMap.starSubalgebra_topologicalClosure_eq_top_of_separatesPoints - theorem ContinuousMap.subalgebraConjInvariant - theorem ContinuousMap.subalgebra_isROrC_topologicalClosure_eq_top_of_separatesPoints +/- theorem Subalgebra.SeparatesPoints.isROrC_to_real + theorem polynomialFunctions.starClosure_topologicalClosure + theorem polynomialFunctions.topologicalClosure 2023-07-28 18:22:46 f4b21de feat: Lemmas about commuting probabilities of groups (#6104) This PR adds lemmas about commuting probabilities of products of groups and about commuting probabilities of infinite groups. It also changes some definitions and lemmas to use `Commute`. ESTIMATED CHANGES Modified Mathlib/GroupTheory/CommutingProbability.lean + theorem commProb_eq_zero_of_infinite + theorem commProb_function + theorem commProb_pi + theorem commProb_prod 2023-07-28 17:34:34 41b6cc2 feat: basic right homology API of short complexes (#6008) This PR introduces basic API for the right homology of short complexes, like the definition of `ShortComplex.rightHomology`. - [x] depends on: #5674 ESTIMATED CHANGES Modified Mathlib/Algebra/Homology/ShortComplex/RightHomology.lean + def CategoryTheory.ShortComplex.RightHomologyMapData.compatibilityOfZerosOfIsColimitCokernelCofork + def CategoryTheory.ShortComplex.RightHomologyMapData.compatibilityOfZerosOfIsLimitKernelFork + def CategoryTheory.ShortComplex.RightHomologyMapData.ofIsColimitCokernelCofork + def CategoryTheory.ShortComplex.RightHomologyMapData.ofIsLimitKernelFork + def CategoryTheory.ShortComplex.RightHomologyMapData.ofZeros + theorem CategoryTheory.ShortComplex.RightHomologyMapData.opcyclesMap'_eq + theorem CategoryTheory.ShortComplex.RightHomologyMapData.rightHomologyMap'_eq + theorem CategoryTheory.ShortComplex.f_pOpcycles + theorem CategoryTheory.ShortComplex.fromOpcycles_naturality + theorem CategoryTheory.ShortComplex.isIso_pOpcycles + theorem CategoryTheory.ShortComplex.isIso_rightHomologyι + theorem CategoryTheory.ShortComplex.opcyclesIsoRightHomology_hom_inv_id + theorem CategoryTheory.ShortComplex.opcyclesIsoRightHomology_inv_hom_id + theorem CategoryTheory.ShortComplex.opcyclesIsoX₂_hom_inv_id + theorem CategoryTheory.ShortComplex.opcyclesIsoX₂_inv_hom_id + def CategoryTheory.ShortComplex.opcyclesMap' + theorem CategoryTheory.ShortComplex.opcyclesMap'_comp + theorem CategoryTheory.ShortComplex.opcyclesMap'_g' + theorem CategoryTheory.ShortComplex.opcyclesMap'_id + theorem CategoryTheory.ShortComplex.opcyclesMap'_zero + theorem CategoryTheory.ShortComplex.opcyclesMap_comp + theorem CategoryTheory.ShortComplex.opcyclesMap_id + theorem CategoryTheory.ShortComplex.opcyclesMap_zero + theorem CategoryTheory.ShortComplex.opcycles_ext + theorem CategoryTheory.ShortComplex.opcycles_ext_iff + theorem CategoryTheory.ShortComplex.p_fromOpcycles + theorem CategoryTheory.ShortComplex.p_opcyclesMap' + theorem CategoryTheory.ShortComplex.p_opcyclesMap + def CategoryTheory.ShortComplex.rightHomologyMap' + theorem CategoryTheory.ShortComplex.rightHomologyMap'_comp + theorem CategoryTheory.ShortComplex.rightHomologyMap'_id + theorem CategoryTheory.ShortComplex.rightHomologyMap'_zero + def CategoryTheory.ShortComplex.rightHomologyMapData + theorem CategoryTheory.ShortComplex.rightHomologyMap_comp + theorem CategoryTheory.ShortComplex.rightHomologyMap_id + theorem CategoryTheory.ShortComplex.rightHomologyMap_zero + theorem CategoryTheory.ShortComplex.rightHomology_ext + theorem CategoryTheory.ShortComplex.rightHomology_ext_iff + theorem CategoryTheory.ShortComplex.rightHomologyι_naturality' + theorem CategoryTheory.ShortComplex.rightHomologyι_naturality 2023-07-28 16:09:56 45bc825 chore: move `integralNormalization` to `RingTheory/Polynomial` (#6215) A similar file `ScaleRoots` is also in `RingTheory/Polynomial`. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/RingTheory/Algebraic.lean Renamed Mathlib/Data/Polynomial/IntegralNormalization.lean to Mathlib/RingTheory/Polynomial/IntegralNormalization.lean 2023-07-28 16:09:54 5c3c589 feat(RingTheory/Polynomial/ScaleRoots): reduce typeclass assumptions (#6213) ESTIMATED CHANGES Modified Mathlib/Logic/Nontrivial.lean + theorem Subsingleton.eq_one Modified Mathlib/RingTheory/Polynomial/ScaleRoots.lean +/- theorem Polynomial.scaleRoots_aeval_eq_zero +/- theorem Polynomial.scaleRoots_aeval_eq_zero_of_aeval_div_eq_zero +/- theorem Polynomial.scaleRoots_eval₂_eq_zero_of_eval₂_div_eq_zero 2023-07-28 16:09:53 0866de5 chore: replace `(Algebra.ofId R A).toLinearMap` with `Algebra.linearMap R A` (#6208) A tiny bit of clean up, with the aim of increasing awareness of `Algebra.linearMap` ESTIMATED CHANGES Modified Mathlib/Data/Complex/Module.lean Modified Mathlib/RingTheory/DiscreteValuationRing/TFAE.lean Modified Mathlib/RingTheory/Finiteness.lean Modified Mathlib/RingTheory/IsTensorProduct.lean Modified Mathlib/RingTheory/LocalProperties.lean 2023-07-28 16:09:51 9825470 chore: bump to nightly-2023-07-24 (#6200) ESTIMATED CHANGES Modified lean-toolchain 2023-07-28 16:09:50 d60c218 fix: avoid `with` in `Finsupp.module` (#6189) ESTIMATED CHANGES Modified Mathlib/Data/Finsupp/Basic.lean Modified Mathlib/RepresentationTheory/GroupCohomology/Basic.lean Modified Mathlib/RepresentationTheory/GroupCohomology/Resolution.lean 2023-07-28 16:09:47 284442f feat: Subtype of sum is equivalent to sum of subtypes (#6083) This PR adds an equivalence between a subtype of a sum and a sum of subtypes ESTIMATED CHANGES Modified Mathlib/Logic/Equiv/Basic.lean + def Equiv.subtypeSum 2023-07-28 15:17:36 8c6a52e chore(Data/Polynomial/Degree/Definition): golf (#6214) The proof for `natDegree_eq_of_degree_eq_some` was already inside the proof for `degree_ne_of_natDegree_ne` ESTIMATED CHANGES Modified Mathlib/Data/Polynomial/Degree/Definitions.lean 2023-07-28 13:43:27 6cb636b chore(RingTheory/TensorProduct): golf a proof (#6211) This follows the approach taken in Algebra/DirectSum/Ring, which allows avoiding tedious induction by instead conjuring a weird equality of morphisms and using `ext`. ESTIMATED CHANGES Modified Mathlib/RingTheory/TensorProduct.lean - theorem Algebra.TensorProduct.mul_assoc' 2023-07-28 11:36:30 7bedbae feat: make `congr!`'s typeEq plausibility heuristic consider binder info (#5900) There are cases where we want `convert`/`congr!` to generate equalities between types, even if they don't pass the plausibility test. The examples involve types that are explicit arguments without forward dependencies, which seems like a reasonable rule to try out. We exclude forward dependencies because those lead to heterogenous equalities. ESTIMATED CHANGES Modified Mathlib/Tactic/Congr!.lean + def Congr!.plausiblyEqualTypes - def Congr!.possiblyEqualTypes Modified Mathlib/Topology/Sheaves/SheafCondition/OpensLeCover.lean Modified test/congr.lean Modified test/convert.lean 2023-07-28 09:38:49 86ac6bf fix: fill in "in" in `maxHeartbeats` (#6206) ```bash git ls-files '*.lean' | xargs sed -i "s=maxHeartbeats [0-9]*$=& in=" ``` Affected files: ``` Mathlib/CategoryTheory/Monoidal/Braided.lean:479:set_option maxHeartbeats 400000 Mathlib/FieldTheory/Adjoin.lean:1212:set_option synthInstance.maxHeartbeats 30000 Mathlib/FieldTheory/IsAlgClosed/Basic.lean:302:set_option maxHeartbeats 800000 Mathlib/FieldTheory/IsAlgClosed/Basic.lean:303:set_option synthInstance.maxHeartbeats 400000 Mathlib/RepresentationTheory/GroupCohomology/Basic.lean:202:set_option maxHeartbeats 6400000 Mathlib/RepresentationTheory/GroupCohomology/Resolution.lean:345:set_option maxHeartbeats 800000 Mathlib/Topology/MetricSpace/GromovHausdorff.lean:415:set_option maxHeartbeats 300000 ``` [Zulip](https://leanprover.zulipchat.com/#narrow/stream/113488-general/topic/set_option.20maxHeartbeats.20with.20no.20.22in.22) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Monoidal/Braided.lean Modified Mathlib/FieldTheory/Adjoin.lean Modified Mathlib/FieldTheory/IsAlgClosed/Basic.lean Modified Mathlib/RepresentationTheory/GroupCohomology/Basic.lean Modified Mathlib/RepresentationTheory/GroupCohomology/Resolution.lean Modified Mathlib/Topology/MetricSpace/GromovHausdorff.lean 2023-07-28 06:10:49 c841722 fix: let `use` provide last constructor argument, introduce mathlib3-like flattening `use!` (#5350) Changes: * `use` now by default discharges with `try with_reducible use_discharger` with a custom discharger tactic rather than `try with_reducible rfl`, which makes it be closer to `exists` and the `use` in mathlib3. It doesn't go so far as to do `try with_reducible trivial` since that involves the `contradiction` tactic. * this discharger is configurable with `use (discharger := tacticSeq...)` * the `use` evaluation loop will try refining after constructor failure, so it can be used to fill in all arguments rather than all but the last, like in mathlib3 (closes #5072) but with the caveat that it only works so long as the last argument is not an inductive type (like `Eq`). * adds `use!`, which is nearly the same as the mathlib3 `use` and fills in constructor arguments along the nodes *and* leaves of the nested constructor expressions. This version tries refining before applying constructors, so it can be used like `exact` for the last argument. The difference between mathlib3 `use` and this `use!` is that (1) `use!` uses a different tactic to discharge goals (mathlib3 used `trivial'`, which did reducible refl, but also `contradiction`, which we don't emulate) (2) it does not rewrite using `exists_prop`. Regarding 2, this feature seems to be less useful now that bounded existentials encode the bound using a conjunction rather than with nested existentials. We do have `exists_prop` as part of `use_discharger` however. ESTIMATED CHANGES Modified Archive/MiuLanguage/DecisionSuf.lean Modified Archive/Wiedijk100Theorems/SumOfPrimeReciprocalsDiverges.lean Modified Mathlib/Algebra/ContinuedFractions/Computation/TerminatesIffRat.lean Modified Mathlib/AlgebraicGeometry/Morphisms/RingHomProperties.lean Modified Mathlib/CategoryTheory/Functor/Flat.lean Modified Mathlib/CategoryTheory/Sites/Coherent.lean Modified Mathlib/Combinatorics/Composition.lean Modified Mathlib/Combinatorics/Hall/Finite.lean Modified Mathlib/Data/Vector/MapLemmas.lean Modified Mathlib/LinearAlgebra/FiniteDimensional.lean Modified Mathlib/LinearAlgebra/LinearPMap.lean Modified Mathlib/NumberTheory/Fermat4.lean Modified Mathlib/RingTheory/FiniteType.lean Modified Mathlib/RingTheory/Polynomial/Content.lean Modified Mathlib/RingTheory/Polynomial/GaussLemma.lean Modified Mathlib/RingTheory/UniqueFactorizationDomain.lean Modified Mathlib/Tactic/Use.lean + def Mathlib.Tactic.applyTheConstructor + def Mathlib.Tactic.mkUseDischarger + def Mathlib.Tactic.runUse + def Mathlib.Tactic.useLoop Modified Mathlib/Topology/Homotopy/HSpaces.lean Modified test/Use.lean + inductive UseTests.Baz + structure UseTests.DecidableType + structure UseTests.Embedding + inductive UseTests.foo 2023-07-28 04:47:22 0536332 chore: trivial generalization of the five lemma (#6181) ESTIMATED CHANGES Modified Mathlib/Algebra/Homology/ShortExact/Abelian.lean Modified Mathlib/CategoryTheory/Abelian/DiagramLemmas/Four.lean + theorem CategoryTheory.Abelian.isIso_of_epi_of_isIso_of_isIso_of_mono - theorem CategoryTheory.Abelian.isIso_of_isIso_of_isIso_of_isIso_of_isIso 2023-07-28 02:26:57 aefe18a chore: avoid if lifting footgun (#6199) ESTIMATED CHANGES Modified Mathlib/Tactic/MkIffOfInductiveProp.lean 2023-07-28 02:26:56 acafdc7 feat(Data/Fin): add `CanLift` instance (#6168) ESTIMATED CHANGES Modified Mathlib/Data/Fin/Basic.lean 2023-07-28 00:59:41 d12dc89 chore: bump to nightly-2023-07-19 (#6196) ESTIMATED CHANGES Modified lake-manifest.json Modified lean-toolchain 2023-07-27 23:50:08 0e849a1 chore: split `RingTheory/TensorProduct` (#6187) There is a reasonably-sized section on modules over two rings before we actual reach tensor products of rings. The motivation for splitting here is to make room for the results in #6035. The declarations are copied without modification, the module docstring has been adapted. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Lie/Weights.lean Added Mathlib/LinearAlgebra/TensorProduct/Tower.lean + def TensorProduct.AlgebraTensorModule.assoc + theorem TensorProduct.AlgebraTensorModule.ext + def TensorProduct.AlgebraTensorModule.lcurry + def TensorProduct.AlgebraTensorModule.lift.equiv + theorem TensorProduct.AlgebraTensorModule.lift_apply + theorem TensorProduct.AlgebraTensorModule.lift_tmul + theorem TensorProduct.AlgebraTensorModule.restrictScalars_curry + theorem TensorProduct.AlgebraTensorModule.smul_eq_lsmul_rTensor + def TensorProduct.AlgebraTensorModule.uncurry Modified Mathlib/RingTheory/TensorProduct.lean - def TensorProduct.AlgebraTensorModule.assoc - theorem TensorProduct.AlgebraTensorModule.ext - def TensorProduct.AlgebraTensorModule.lcurry - def TensorProduct.AlgebraTensorModule.lift.equiv - theorem TensorProduct.AlgebraTensorModule.lift_apply - theorem TensorProduct.AlgebraTensorModule.lift_tmul - theorem TensorProduct.AlgebraTensorModule.restrictScalars_curry - theorem TensorProduct.AlgebraTensorModule.smul_eq_lsmul_rTensor - def TensorProduct.AlgebraTensorModule.uncurry 2023-07-27 23:29:20 0dec8c4 chore: sync references.bib with mathlib3 (#6193) ESTIMATED CHANGES Modified docs/references.bib 2023-07-27 19:54:53 f62d8a1 feat: define the category of extremally disconnected compact Hausdorff spaces (#5761) Basics of the category `Stonean` of extremally disconnected compact Hausdorff spaces. This work was done during the 2023 Copenhagen masterclass on formalisation of condensed mathematics. Numerous participants contributed. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Data/Set/Image.lean + theorem sigma_mk_preimage_image' + theorem sigma_mk_preimage_image_eq_self Added Mathlib/Topology/Category/Stonean/Basic.lean + def CompHaus.toStonean + def Stonean.of + def Stonean.toCompHaus + def Stonean.toProfinite + structure Stonean Added Mathlib/Topology/Category/Stonean/Limits.lean + def Stonean.finiteCoproduct.cocone + def Stonean.finiteCoproduct.desc + theorem Stonean.finiteCoproduct.hom_ext + def Stonean.finiteCoproduct.isColimit + def Stonean.finiteCoproduct.ι + theorem Stonean.finiteCoproduct.ι_desc + def Stonean.finiteCoproduct Modified Mathlib/Topology/ExtremallyDisconnected.lean 2023-07-27 17:38:38 4e4513e chore (RingTheory.Kaehler): reasonable heartbeat limits (#6178) In light of #6141, we can change the heart beats to more representantive numbers. ESTIMATED CHANGES Modified Mathlib/RingTheory/Kaehler.lean 2023-07-27 17:38:37 6665907 feat: says tactic combinator (#5980) This is a primitive implementation of the `says` combinator discussed at today's porting meeting. If you write `X says`, where `X` is a tactic that produces a "Try this: Y" message, then you will get a message "Try this: X says Y". Once you've clicked to replace `X says` with `X says Y`, after then `X says Y` will only run `Y`. I think this is already potentially useful. Possible additions: * a CI mode that re-verifies that `X` really does still say `Y`. (Edit: DONE) * If `X` doesn't say anything, perhaps implicitly wrap it with `show_term`? * Add an extra `suggest` flag to the `TacticM` state, so we can instruct tactics to print "Try this:" suggestions without adding `?` directly. Very happy if anyone wants to hack on this / replace with a better implementation, etc. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/CategoryTheory/Limits/Fubini.lean Modified Mathlib/Tactic.lean Modified Mathlib/Tactic/Common.lean Added Mathlib/Tactic/Says.lean + def Mathlib.Tactic.Says.evalTacticCapturingInfo + def Mathlib.Tactic.Says.evalTacticCapturingMessages + def Mathlib.Tactic.Says.evalTacticCapturingTryThis + def Mathlib.Tactic.Says.parseAsTacticSeq Added test/says.lean 2023-07-27 17:38:36 14fcf7b feat: replace have? correctly (#5305) * `have? using h` now replaces the whole tactic with the suggestion, not just the `have?` * Allow `have!?` as alternative syntax for `have?!` (similar for `rw!?` and `exact!?` -- the latter has not been implemented yet) ESTIMATED CHANGES Modified Mathlib/Tactic/LibrarySearch.lean Modified Mathlib/Tactic/Propose.lean Modified Mathlib/Tactic/Rewrites.lean Modified Mathlib/Tactic/TryThis.lean +/- def addHaveSuggestion 2023-07-27 15:45:36 07c5e81 doc: add ADedecker to maintainer list (#6179) ESTIMATED CHANGES Modified README.md 2023-07-27 15:45:35 930dd29 feat: Linter that checks that Prop classes are Props (#6148) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Homology/Exact.lean Modified Mathlib/Algebra/Jordan/Basic.lean Modified Mathlib/Algebra/Lie/Basic.lean + theorem LieModule.compLieHom - def LieModule.compLieHom +/- def LieRingModule.compLieHom Modified Mathlib/Algebra/Lie/OfAssociative.lean + theorem LieModule.ofAssociativeModule - def LieModule.ofAssociativeModule Modified Mathlib/Algebra/Order/ZeroLEOne.lean Modified Mathlib/Algebra/Ring/Defs.lean Modified Mathlib/Algebra/Star/CHSH.lean +/- structure IsCHSHTuple Modified Mathlib/Analysis/VonNeumannAlgebra/Basic.lean Modified Mathlib/CategoryTheory/Closed/Functor.lean + theorem CategoryTheory.cartesianClosedFunctorOfLeftAdjointPreservesBinaryProducts - def CategoryTheory.cartesianClosedFunctorOfLeftAdjointPreservesBinaryProducts Modified Mathlib/CategoryTheory/ConcreteCategory/BundledHom.lean Modified Mathlib/CategoryTheory/ConcreteCategory/UnbundledHom.lean Modified Mathlib/CategoryTheory/EpiMono.lean Modified Mathlib/CategoryTheory/Functor/EpiMono.lean + theorem CategoryTheory.Functor.splitEpiCategoryImpOfIsEquivalence - def CategoryTheory.Functor.splitEpiCategoryImpOfIsEquivalence Modified Mathlib/CategoryTheory/Limits/Shapes/Images.lean Modified Mathlib/CategoryTheory/Monad/Monadicity.lean Modified Mathlib/CategoryTheory/Noetherian.lean Modified Mathlib/CategoryTheory/Triangulated/Triangulated.lean Modified Mathlib/Combinatorics/Quiver/Symmetric.lean Modified Mathlib/Control/Bifunctor.lean Modified Mathlib/Control/Bitraversable/Basic.lean Modified Mathlib/Control/Monad/Cont.lean Modified Mathlib/Control/Traversable/Basic.lean Modified Mathlib/Control/Traversable/Equiv.lean Modified Mathlib/Data/Fin/Fin2.lean Modified Mathlib/GroupTheory/GroupAction/SubMulAction.lean + theorem SMulMemClass.ofIsScalarTower - def SMulMemClass.ofIsScalarTower Modified Mathlib/LinearAlgebra/TensorProduct.lean Modified Mathlib/MeasureTheory/Group/Arithmetic.lean Modified Mathlib/MeasureTheory/Measure/Doubling.lean Modified Mathlib/ModelTheory/Basic.lean + theorem FirstOrder.Language.HomClass.strongHomClassOfIsAlgebraic - def FirstOrder.Language.HomClass.strongHomClassOfIsAlgebraic Modified Mathlib/Order/RelClasses.lean Modified Mathlib/Tactic.lean Modified Mathlib/Tactic/Common.lean Modified Mathlib/Tactic/Lift.lean Added Mathlib/Tactic/Lint.lean + def Std.Tactic.Lint.structureInType Modified Mathlib/Topology/Order/Lattice.lean Modified Mathlib/Topology/Order/Priestley.lean 2023-07-27 15:45:34 90689c4 feat: let `convert` infer instances from goal and allow tc failure (#6041) Changes the way the term is elaborated so that typeclass inference is tolerated and so that instances are allowed to come from the goal without re-inferring them. ESTIMATED CHANGES Modified Mathlib/AlgebraicGeometry/Morphisms/RingHomProperties.lean Modified Mathlib/Data/Finset/Image.lean Modified Mathlib/Data/Set/Ncard.lean Modified Mathlib/GroupTheory/NoncommPiCoprod.lean Modified Mathlib/MeasureTheory/MeasurableSpace.lean Modified Mathlib/Probability/Variance.lean Modified Mathlib/SetTheory/Cardinal/Basic.lean +/- theorem Cardinal.powerlt_zero Modified Mathlib/Tactic/Convert.lean Modified Mathlib/Topology/Gluing.lean +/- theorem TopCat.GlueData.MkCore.t_inv Modified test/convert.lean 2023-07-27 14:26:15 b7ec761 feat(Finset): add `IsDirected` instances (#6169) This way `IsDirected (Finset α) (· ≤ ·)` doesn't need `[DecidableEq α]`. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Limits/Constructions/Filtered.lean Modified Mathlib/Data/Finset/Basic.lean 2023-07-27 13:17:30 00269a6 chore(linear_algebra/tensor_product): forward-port leanprover-community/mathlib#19143 (#6094) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Monoidal/Internal/Module.lean Modified Mathlib/LinearAlgebra/TensorProduct.lean Modified Mathlib/RingTheory/Kaehler.lean Modified Mathlib/RingTheory/TensorProduct.lean - theorem Algebra.TensorProduct.mul_one - theorem Algebra.TensorProduct.one_mul 2023-07-27 13:17:28 b9dadb4 feat: define `MeasureTheory.Lp.const` (#5236) ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Function/LpSpace.lean + theorem MeasureTheory.Lp.coeFn_const + theorem MeasureTheory.Lp.const_mem_Lp + theorem MeasureTheory.Lp.const_smul_mem_Lp + theorem MeasureTheory.Lp.const_val - theorem MeasureTheory.Lp.mem_Lp_const_smul - theorem MeasureTheory.Lp.mem_lp_const + theorem MeasureTheory.Lp.norm_const' + theorem MeasureTheory.Lp.norm_const + theorem MeasureTheory.Lp.norm_constL_le + theorem MeasureTheory.Lp.norm_const_le + theorem MeasureTheory.Lp.norm_exponent_zero + theorem MeasureTheory.Lp.norm_measure_zero + theorem MeasureTheory.Memℒp.toLp_const + theorem MeasureTheory.indicatorConstLp_univ + theorem MeasureTheory.norm_indicatorConstLp_le 2023-07-27 11:51:28 24924f9 chore: bump to nightly-2023-07-15 (#5992) Various adaptations to changes when `Fin` API was moved to Std. One notable change is that many lemmas are now stated in terms of `i ≠ 0` (for `i : Fin n`) rather then `i.1 ≠ 0`, and as a consequence many `Fin.vne_of_ne` applications have been added or removed, mostly removed. ESTIMATED CHANGES Modified Archive/Sensitivity.lean Modified Mathlib/Algebra/BigOperators/Fin.lean Modified Mathlib/AlgebraicTopology/AlternatingFaceMapComplex.lean Modified Mathlib/AlgebraicTopology/ExtraDegeneracy.lean Modified Mathlib/AlgebraicTopology/SimplexCategory.lean Modified Mathlib/AlgebraicTopology/SimplicialObject.lean Modified Mathlib/CategoryTheory/Limits/Constructions/FiniteProductsOfBinaryProducts.lean Modified Mathlib/Combinatorics/SimpleGraph/Acyclic.lean Modified Mathlib/Combinatorics/SimpleGraph/Connectivity.lean Modified Mathlib/Data/Fin/Basic.lean - def Fin.addCases - theorem Fin.addCases_left - theorem Fin.addCases_right - theorem Fin.addNat_mk - theorem Fin.addNat_one - theorem Fin.addNat_subNat - theorem Fin.add_def - theorem Fin.add_one_le_iff - theorem Fin.add_one_lt_iff - theorem Fin.add_one_pos - def Fin.cases - theorem Fin.cases_succ' - theorem Fin.cases_succ - theorem Fin.cases_zero - theorem Fin.castAdd_castAdd - theorem Fin.castAdd_castLT - theorem Fin.castAdd_lt - theorem Fin.castAdd_mk - theorem Fin.castAdd_natAdd - theorem Fin.castAdd_zero - theorem Fin.castLE_castLE - theorem Fin.castLE_comp_castLE - theorem Fin.castLE_mk - theorem Fin.castLE_of_eq - theorem Fin.castLE_succ - theorem Fin.castLE_zero - theorem Fin.castLT_castAdd - theorem Fin.castLT_castSucc - theorem Fin.castLT_mk + def Fin.castPred - theorem Fin.castSucc_castLT + theorem Fin.castSucc_eq_zero_iff' - theorem Fin.castSucc_eq_zero_iff - theorem Fin.castSucc_fin_succ - theorem Fin.castSucc_inj - theorem Fin.castSucc_lt_castSucc_iff - theorem Fin.castSucc_lt_iff_succ_le - theorem Fin.castSucc_lt_last - theorem Fin.castSucc_lt_succ - theorem Fin.castSucc_mk + theorem Fin.castSucc_ne_zero_iff' - theorem Fin.castSucc_ne_zero_iff - theorem Fin.castSucc_one + theorem Fin.castSucc_pos' - theorem Fin.castSucc_pos +/- theorem Fin.castSucc_pred_eq_pred_castSucc + theorem Fin.castSucc_zero' - theorem Fin.castSucc_zero + theorem Fin.cast_refl - theorem Fin.coeSucc_eq_succ - theorem Fin.coe_addNat - theorem Fin.coe_castAdd - theorem Fin.coe_castLE - theorem Fin.coe_castLT - theorem Fin.coe_castSucc - theorem Fin.coe_clamp - theorem Fin.coe_mul - theorem Fin.coe_natAdd - theorem Fin.coe_pred - theorem Fin.coe_subNat - theorem Fin.dite_val - theorem Fin.eq_last_of_not_lt - theorem Fin.eq_mk_iff_val_eq - theorem Fin.eq_succ_of_ne_zero - theorem Fin.eq_zero_or_eq_succ - theorem Fin.exists_castSucc_eq - theorem Fin.exists_fin_one - theorem Fin.exists_fin_succ - theorem Fin.exists_fin_two - theorem Fin.exists_iff - theorem Fin.ext - theorem Fin.fin_one_eq_zero - theorem Fin.fin_two_eq_of_eq_zero_iff - theorem Fin.forall_fin_one - theorem Fin.forall_fin_succ - theorem Fin.forall_fin_two - theorem Fin.forall_iff - def Fin.induction - def Fin.inductionOn - theorem Fin.induction_succ - theorem Fin.induction_zero - theorem Fin.is_le' - theorem Fin.is_le - theorem Fin.is_lt - theorem Fin.ite_val - def Fin.lastCases - theorem Fin.lastCases_castSucc - theorem Fin.lastCases_last - theorem Fin.last_add_one - theorem Fin.last_le_iff - theorem Fin.last_pos - theorem Fin.le_castSucc_iff - theorem Fin.le_coe_addNat - theorem Fin.le_coe_natAdd - theorem Fin.le_last + theorem Fin.le_zero_iff' - theorem Fin.le_zero_iff - theorem Fin.lt_add_one_iff - theorem Fin.lt_succ - theorem Fin.mk_le_mk - theorem Fin.mk_le_of_le_val - theorem Fin.mk_lt_mk - theorem Fin.mk_lt_of_lt_val - theorem Fin.mk_one - theorem Fin.mk_succ_pos - theorem Fin.mk_val - theorem Fin.mk_zero - theorem Fin.mod_def - theorem Fin.mul_def - theorem Fin.natAdd_castAdd - theorem Fin.natAdd_castSucc - theorem Fin.natAdd_last - theorem Fin.natAdd_mk - theorem Fin.natAdd_natAdd - theorem Fin.natAdd_zero - theorem Fin.not_lt_zero - theorem Fin.one_lt_succ_succ - theorem Fin.one_pos + theorem Fin.pos_iff_ne_zero' - theorem Fin.pos_iff_ne_zero - theorem Fin.pos_iff_nonempty + def Fin.predAbove +/- theorem Fin.predAbove_zero - theorem Fin.pred_add_one - theorem Fin.pred_castSucc_succ - theorem Fin.pred_eq_iff_eq_succ - theorem Fin.pred_inj - theorem Fin.pred_le_pred_iff - theorem Fin.pred_lt_pred_iff - theorem Fin.pred_mk - theorem Fin.pred_mk_succ' - theorem Fin.pred_mk_succ - theorem Fin.pred_one - theorem Fin.pred_succ +/- theorem Fin.pred_succAbove_pred - def Fin.reverseInduction - theorem Fin.reverse_induction_castSucc - theorem Fin.reverse_induction_last - theorem Fin.subNat_addNat - theorem Fin.subNat_mk - theorem Fin.sub_def - theorem Fin.subsingleton_iff_le_one + def Fin.succAbove - def Fin.succRec - def Fin.succRecOn - theorem Fin.succRecOn_succ - theorem Fin.succRecOn_zero - theorem Fin.succ_castSucc - theorem Fin.succ_eq_last_succ - theorem Fin.succ_inj - theorem Fin.succ_last - theorem Fin.succ_le_succ_iff - theorem Fin.succ_lt_succ_iff - theorem Fin.succ_mk - theorem Fin.succ_ne_zero +/- theorem Fin.succ_one_eq_two' - theorem Fin.succ_one_eq_two - theorem Fin.succ_pos - theorem Fin.succ_pred - theorem Fin.succ_succ_ne_one +/- theorem Fin.succ_zero_eq_one' - theorem Fin.succ_zero_eq_one - theorem Fin.val_add - theorem Fin.val_add_one - theorem Fin.val_add_one_of_lt - theorem Fin.val_last - theorem Fin.val_lt_last - theorem Fin.val_mk - theorem Fin.val_mul - theorem Fin.val_one - theorem Fin.val_succ - theorem Fin.val_two + theorem Fin.val_zero' - theorem Fin.val_zero - theorem Fin.zero_le - theorem Fin.zero_lt_one - theorem Fin.zero_ne_one Modified Mathlib/Data/Fin/Tuple/Basic.lean Modified Mathlib/Data/Finsupp/Fin.lean Modified Mathlib/Data/List/Basic.lean - theorem List.mem_reverse' - theorem List.take_nil Modified Mathlib/Data/List/Cycle.lean Modified Mathlib/Data/List/Join.lean Modified Mathlib/Data/List/OfFn.lean Modified Mathlib/Data/Nat/Basic.lean - theorem Nat.succ_lt_succ_iff Modified Mathlib/Data/String/Basic.lean Modified Mathlib/Data/ZMod/Defs.lean Modified Mathlib/Deprecated/Subgroup.lean Modified Mathlib/GroupTheory/Perm/List.lean Modified Mathlib/Init/Data/Nat/Lemmas.lean Modified Mathlib/LinearAlgebra/ExteriorAlgebra/Basic.lean Modified Mathlib/LinearAlgebra/Multilinear/Basic.lean Modified Mathlib/ModelTheory/Semantics.lean Modified Mathlib/Order/Height.lean Modified Mathlib/Order/JordanHolder.lean Modified Mathlib/RingTheory/ChainOfDivisors.lean Modified Mathlib/Topology/MetricSpace/MetrizableUniformity.lean Modified lake-manifest.json Modified lakefile.lean Modified lean-toolchain 2023-07-27 10:04:47 758b7d6 fix(RingTheory/TensorProduct): fix instance diamonds (#6162) The optional fields to the algebra typeclasses are a trap; if you forget to provide them then you get diamonds. This change includes `example`s to verify that the issues are gone. It looks like this was contributing to the very poor performance of `RingTheory.Kahler`; while the `intAlgebra` and `natAlgebra` diamonds were probably irrelevant, the `Ring.toAddCommGroup` diamond likely caused havoc during unification. ESTIMATED CHANGES Modified Mathlib/RingTheory/Kaehler.lean Modified Mathlib/RingTheory/TensorProduct.lean + theorem Algebra.TensorProduct.intCast_def + theorem Algebra.TensorProduct.natCast_def 2023-07-27 07:08:32 0bcfc2d chore: tidy various files (#6158) ESTIMATED CHANGES Modified Mathlib/Algebra/BigOperators/Order.lean + theorem Fintype.prod_strictMono' - theorem Fintype.prod_strict_mono' Modified Mathlib/Algebra/Group/UniqueProds.lean Modified Mathlib/Algebra/Module/LinearMap.lean +/- def DistribMulAction.toModuleEnd +/- def IsLinearMap.mk' Modified Mathlib/Algebra/Quandle.lean Modified Mathlib/Combinatorics/SetFamily/Shadow.lean Modified Mathlib/Data/Int/Parity.lean Modified Mathlib/Data/List/FinRange.lean Modified Mathlib/Data/Set/Function.lean Modified Mathlib/Data/Sym/Basic.lean +/- def Sym.equivCongr + theorem Sym.ofVector_cons + theorem Sym.ofVector_nil - theorem Sym.of_vector_cons - theorem Sym.of_vector_nil Modified Mathlib/GroupTheory/Perm/Basic.lean +/- theorem Equiv.mulLeft_mul +/- theorem Equiv.mulRight_mul Modified Mathlib/MeasureTheory/Integral/IntegrableOn.lean Modified Mathlib/MeasureTheory/Measure/MeasureSpace.lean Modified Mathlib/Order/Filter/Curry.lean Modified Mathlib/Order/Filter/Prod.lean Modified Mathlib/Order/Filter/SmallSets.lean + theorem Filter.eventually_smallSets' - theorem Filter.eventually_small_sets' Modified Mathlib/Order/OrderIsoNat.lean + theorem RelEmbedding.coe_natGT - theorem RelEmbedding.coe_natGt + theorem RelEmbedding.coe_natLT - theorem RelEmbedding.coe_natLt + def RelEmbedding.natGT - def RelEmbedding.natGt + def RelEmbedding.natLT - def RelEmbedding.natLt Modified Mathlib/Topology/LocallyFinite.lean 2023-07-27 07:08:31 0d7ac76 feat(Algebra/Order/Monoid/WithTop): missing `WithBot` lemmas in #5837 (#6154) Missing `WithBot` lemmas in #5837 ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Monoid/WithTop.lean + theorem WithBot.add_left_cancel + theorem WithBot.add_left_cancel_iff + theorem WithBot.add_right_cancel + theorem WithBot.add_right_cancel_iff +/- theorem WithTop.add_left_cancel +/- theorem WithTop.add_right_cancel 2023-07-27 07:08:30 13e7c2f chore(GroupTheory): forward-port leanprover-community/mathlib#18965 (#6147) ESTIMATED CHANGES Modified Mathlib/GroupTheory/Abelianization.lean Modified Mathlib/GroupTheory/Commutator.lean +/- theorem Subgroup.commutator_eq_bot_iff_le_centralizer Modified Mathlib/GroupTheory/GroupAction/ConjAct.lean +/- theorem ConjAct.stabilizer_eq_centralizer Modified Mathlib/GroupTheory/GroupAction/Quotient.lean Modified Mathlib/GroupTheory/Subgroup/Basic.lean +/- def Subgroup.centralizer +/- theorem Subgroup.centralizer_eq_top_iff_subset +/- theorem Subgroup.centralizer_le - theorem Subgroup.centralizer_top + theorem Subgroup.centralizer_univ +/- theorem Subgroup.le_centralizer +/- theorem Subgroup.le_centralizer_iff +/- theorem Subgroup.le_centralizer_iff_isCommutative +/- theorem Subgroup.mem_centralizer_iff +/- theorem Subgroup.mem_centralizer_iff_commutator_eq_one Modified Mathlib/GroupTheory/Subgroup/ZPowers.lean Modified Mathlib/GroupTheory/Sylow.lean Modified Mathlib/GroupTheory/Transfer.lean 2023-07-27 05:58:06 e266a1e fix(Algebra): some instance names (#6125) ESTIMATED CHANGES Modified Mathlib/Algebra/AddTorsor.lean Modified Mathlib/Algebra/Associated.lean Modified Mathlib/RingTheory/UniqueFactorizationDomain.lean 2023-07-27 03:35:04 61fc05b feat: a function a.e. invariant under an ergodic map is a.e. constant (#5218) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Dynamics/Ergodic/Function.lean + theorem Ergodic.ae_eq_const_of_ae_eq_comp_ae + theorem Ergodic.ae_eq_const_of_ae_eq_comp₀ + theorem Ergodic.eq_const_of_compMeasurePreserving_eq + theorem PreErgodic.ae_eq_const_of_ae_eq_comp + theorem QuasiErgodic.ae_eq_const_of_ae_eq_comp_ae + theorem QuasiErgodic.ae_eq_const_of_ae_eq_comp_of_ae_range₀ + theorem QuasiErgodic.ae_eq_const_of_ae_eq_comp₀ + theorem QuasiErgodic.eq_const_of_compQuasiMeasurePreserving_eq 2023-07-27 01:08:20 c954df2 chore(FieldTheory/Adjoin): remove unnecessary assumptions in `minpolynatDegree_le` and `minpoly.degree_le` (#6152) Also - fix the names of `minpoly.natDegree_le` and `minpoly.degree_le` - rename `minpoly.ne_zero_of_finite_field_extension` to `minpoly.ne_zero_of_finite` - reduce typeclass assumptions of some lemmas in `RingTheory/Algebraic` - add two lemmas `isIntegral_of_finite` and `isAlgebraic_of_finite` - move `Algebra.isIntegral_of_finite` to `RingTheory/IntegralClosure` ESTIMATED CHANGES Modified Mathlib/FieldTheory/Adjoin.lean - theorem IntermediateField.minpoly.degree_le - theorem IntermediateField.minpoly.natDegree_le + theorem minpoly.degree_le + theorem minpoly.natDegree_le Modified Mathlib/FieldTheory/IsAlgClosed/Basic.lean Modified Mathlib/FieldTheory/Minpoly/Field.lean + theorem minpoly.ne_zero_of_finite - theorem minpoly.ne_zero_of_finite_field_extension Modified Mathlib/NumberTheory/NumberField/Embeddings.lean Modified Mathlib/RingTheory/Algebraic.lean +/- theorem AlgHom.bijective +/- theorem Algebra.IsAlgebraic.algHom_bijective +/- theorem Algebra.isAlgebraic_of_finite +/- theorem Algebra.isAlgebraic_of_larger_base +/- theorem Algebra.isAlgebraic_of_larger_base_of_injective +/- theorem Algebra.isAlgebraic_trans - theorem Algebra.isIntegral_of_finite + theorem isAlgebraic_of_finite +/- theorem isAlgebraic_of_larger_base +/- theorem isAlgebraic_of_larger_base_of_injective Modified Mathlib/RingTheory/IntegralClosure.lean + theorem Algebra.isIntegral_of_finite + theorem isIntegral_of_finite 2023-07-27 00:36:15 1919f53 chore: move #align_import out of comment (#6165) ESTIMATED CHANGES Modified Mathlib/Data/Rbmap/Basic.lean Modified Mathlib/Data/Rbmap/Default.lean Modified Mathlib/Data/Rbtree/Basic.lean Modified Mathlib/Data/Rbtree/DefaultLt.lean Modified Mathlib/Data/Rbtree/Find.lean Modified Mathlib/Data/Rbtree/Insert.lean Modified Mathlib/Data/Rbtree/Main.lean Modified Mathlib/Data/Rbtree/MinMax.lean 2023-07-26 23:58:29 69b4a40 doc: add j-loreaux to maintainer list (#6166) ESTIMATED CHANGES Modified README.md 2023-07-26 22:42:12 d699fa4 doc: merge mathlib3 and mathlib4 `README`s (#6160) This tries to merge the `README`s for mathlib3 and mathlib4 in a sensible way. Some irrelevant material about `leanproject` was removed, as well as a few mathlib3-specific items. Some of these should be replaced by mathlib4 counterparts in the future. A section has been added about transitioning from Lean 3 to Lean 4 linking to the survival guide and running mathport on a project depending on mathlib. ESTIMATED CHANGES Modified README.md 2023-07-26 17:00:46 415165e chore: tidy various files (#5999) ESTIMATED CHANGES Modified Mathlib/Algebra/GCDMonoid/Finset.lean +/- theorem Finset.lcm_congr Modified Mathlib/Algebra/Hom/Centroid.lean + theorem CentroidHom.toFun_eq_coe Modified Mathlib/Algebra/Order/Kleene.lean Modified Mathlib/Algebra/Ring/Prod.lean + theorem RingEquiv.coe_prodComm + theorem RingEquiv.coe_prodComm_symm - theorem RingEquiv.coe_prod_comm - theorem RingEquiv.coe_prod_comm_symm + theorem RingEquiv.fst_comp_coe_prodComm - theorem RingEquiv.fst_comp_coe_prod_comm + theorem RingEquiv.snd_comp_coe_prodComm - theorem RingEquiv.snd_comp_coe_prod_comm Modified Mathlib/Analysis/Convex/StrictConvexSpace.lean - theorem StrictConvexSpace.ofNormAdd - theorem StrictConvexSpace.ofNormAddNeTwo - theorem StrictConvexSpace.ofNormComboLtOne - theorem StrictConvexSpace.ofNormComboNeOne - theorem StrictConvexSpace.ofPairwiseSphereNormNeTwo - theorem StrictConvexSpace.ofStrictConvexClosedUnitBall + theorem StrictConvexSpace.of_norm_add + theorem StrictConvexSpace.of_norm_add_ne_two + theorem StrictConvexSpace.of_norm_combo_lt_one + theorem StrictConvexSpace.of_norm_combo_ne_one + theorem StrictConvexSpace.of_pairwise_sphere_norm_ne_two + theorem StrictConvexSpace.of_strictConvex_closed_unit_ball Modified Mathlib/Analysis/Convex/Uniform.lean Modified Mathlib/Analysis/Normed/Field/Basic.lean Modified Mathlib/CategoryTheory/Groupoid.lean +/- def CategoryTheory.Groupoid.isoEquivHom +/- def CategoryTheory.Groupoid.ofHomUnique Modified Mathlib/CategoryTheory/Groupoid/FreeGroupoid.lean Modified Mathlib/CategoryTheory/Opposites.lean +/- def CategoryTheory.Functor.leftOpRightOpEquiv +/- def CategoryTheory.Functor.opUnopEquiv +/- def CategoryTheory.Iso.unop +/- def CategoryTheory.isoOpEquiv +/- def CategoryTheory.opEquiv Modified Mathlib/Computability/Language.lean Modified Mathlib/Data/List/Sigma.lean Modified Mathlib/RingTheory/Localization/AtPrime.lean Modified Mathlib/Topology/Algebra/MulAction.lean 2023-07-26 15:22:20 e4d1763 fix: fix a typo (#6155) A typo restricted `LocallyFinite.prod_left` to `(f g : ι → Set Y)` instead of `(f : ι → Set X) (g : ι → Set Y)`. ESTIMATED CHANGES Modified Mathlib/Topology/LocallyFinite.lean +/- theorem LocallyFinite.prod_left 2023-07-26 13:48:59 a5649e6 feat: a multiple of a SigmaFinite measure is SigmaFinite (#6137) ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Measure/MeasureSpace.lean 2023-07-26 13:02:04 4df8444 fix: drop notation `ψ` (#6143) `OperatorNorm` accidentally introduced a global notation `ψ`. Drop it, golf the only proof where it was used. ESTIMATED CHANGES Modified Mathlib/Analysis/NormedSpace/OperatorNorm.lean +/- theorem ContinuousLinearMap.op_norm_extend_le 2023-07-26 12:12:31 0133576 refactor: rename/redefine `homeomorphUnitBall` (#6030) * Add `Equiv.toLocalEquivOfImageEq` and `Homeomorph.toLocalHomeomorphOfImageEq`. * Rename `homeomorphUnitBall` to `Homeomorph.unitBall`. * Add `LocalHomeomorph.univUnitBall`, a `LocalHomeomorph` version of `Homeomorph.unitBall`. * Add `LocalHomeomorph.unitBallBall` and `LocalHomeomorph.univBall`. Inspired by a definition from the sphere eversion project. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Analysis/InnerProductSpace/Calculus.lean + theorem Homeomorph.contDiffOn_unitBall_symm + theorem Homeomorph.contDiff_unitBall + theorem LocalHomeomorph.contDiffOn_univBall_symm + theorem LocalHomeomorph.contDiffOn_univUnitBall_symm + theorem LocalHomeomorph.contDiff_unitBallBall + theorem LocalHomeomorph.contDiff_unitBallBall_symm + theorem LocalHomeomorph.contDiff_univBall + theorem LocalHomeomorph.contDiff_univUnitBall - theorem contDiffOn_homeomorphUnitBall_symm - theorem contDiff_homeomorphUnitBall Modified Mathlib/Analysis/NormedSpace/Basic.lean - theorem coe_homeomorphUnitBall_apply_zero Added Mathlib/Analysis/NormedSpace/HomeomorphBall.lean + theorem Homeomorph.coe_unitBall_apply_zero + def Homeomorph.unitBall + theorem LocalHomeomorph.ball_subset_univBall_target + theorem LocalHomeomorph.continuousOn_univBall_symm + theorem LocalHomeomorph.continuous_univBall + def LocalHomeomorph.unitBallBall + def LocalHomeomorph.univBall + theorem LocalHomeomorph.univBall_apply_zero + theorem LocalHomeomorph.univBall_source + theorem LocalHomeomorph.univBall_symm_apply_center + theorem LocalHomeomorph.univBall_target + def LocalHomeomorph.univUnitBall + theorem LocalHomeomorph.univUnitBall_apply_zero + theorem LocalHomeomorph.univUnitBall_symm_apply_zero Modified Mathlib/Logic/Equiv/LocalEquiv.lean +/- def Equiv.toLocalEquiv + def Equiv.toLocalEquivOfImageEq Modified Mathlib/Topology/LocalHomeomorph.lean +/- def Homeomorph.toLocalHomeomorph + def Homeomorph.toLocalHomeomorphOfImageEq 2023-07-26 10:47:26 36dc67f fix: redefine semiring instance on tensor product (#6141) By providing the `Mul` instance up front, this seems to make future typeclass search much easier. This comes at the expense of causing minor elaboration problem in various tensor definitions, which now require the implicit type arguments to be provided explicitly. This also simplifies some proofs, removing a porting note. ESTIMATED CHANGES Modified Mathlib/RingTheory/Kaehler.lean Modified Mathlib/RingTheory/PolynomialAlgebra.lean Modified Mathlib/RingTheory/TensorProduct.lean +/- theorem Algebra.TensorProduct.lmul'_apply_tmul +/- theorem Algebra.TensorProduct.productMap_right_apply 2023-07-26 10:47:25 f1875b5 feat(Topology/../Module): add `completeSpace_eqLocus` (#6132) - Add an instance saying that `LinearMap.eqLocus f g` is a complete space. - Drop `priority := 100` in `completeSpace_ker`: this is the main way to prove that the kernel is a complete space. ESTIMATED CHANGES Modified Mathlib/Topology/Algebra/Module/Basic.lean 2023-07-26 10:47:25 abb2c69 feat: Self-adjoint LinearPMaps are densely defined (#6075) Define the star on `LinearPMap` as the adjoint and prove that every self-adjoint operator is automatically densely defined. ESTIMATED CHANGES Modified Mathlib/Analysis/InnerProductSpace/LinearPMap.lean + theorem IsSelfAdjoint.dense_domain + theorem LinearPMap.isSelfAdjoint_def 2023-07-26 10:47:23 eec218b refactor: split `Analysis.Calculus.LocalExtr` (#5944) Also make `f`/`f'` arguments implicit in all versions of Rolle's Theorem. Fixes #4830 ## API changes - `exists_Ioo_extr_on_Icc`: - generalize from functions `f : ℝ → ℝ` to functions from a conditionally complete linear order to a linear order. - make `f` implicit; - `exists_local_extr_Ioo`: - rename to `exists_isLocalExtr_Ioo`; - generalize as above; - make `f` implicit; - `exists_isExtrOn_Ioo_of_tendsto`, `exists_isLocalExtr_Ioo_of_tendsto`: new lemmas extracted from the proof of `exists_hasDerivAt_eq_zero'`; - `exists_hasDerivAt_eq_zero`, `exists_hasDerivAt_eq_zero'`: make `f` and `f'` implicit; - `exists_deriv_eq_zero`, `exists_deriv_eq_zero'`: make `f` implicit. ESTIMATED CHANGES Modified Archive/Wiedijk100Theorems/AbelRuffini.lean Modified Mathlib.lean Modified Mathlib/Analysis/Calculus/Darboux.lean Modified Mathlib/Analysis/Calculus/FDerivSymmetric.lean Renamed Mathlib/Analysis/Calculus/LocalExtr.lean to Mathlib/Analysis/Calculus/LocalExtr/Basic.lean - theorem Polynomial.card_rootSet_le_derivative - theorem Polynomial.card_roots_le_derivative - theorem Polynomial.card_roots_toFinset_le_card_roots_derivative_diff_roots_succ - theorem Polynomial.card_roots_toFinset_le_derivative - theorem exists_Ioo_extr_on_Icc - theorem exists_deriv_eq_zero' - theorem exists_deriv_eq_zero - theorem exists_hasDerivAt_eq_zero' - theorem exists_hasDerivAt_eq_zero - theorem exists_local_extr_Ioo Added Mathlib/Analysis/Calculus/LocalExtr/Polynomial.lean + theorem Polynomial.card_rootSet_le_derivative + theorem Polynomial.card_roots_le_derivative + theorem Polynomial.card_roots_toFinset_le_card_roots_derivative_diff_roots_succ + theorem Polynomial.card_roots_toFinset_le_derivative Added Mathlib/Analysis/Calculus/LocalExtr/Rolle.lean + theorem exists_deriv_eq_zero' + theorem exists_deriv_eq_zero + theorem exists_hasDerivAt_eq_zero' + theorem exists_hasDerivAt_eq_zero Modified Mathlib/Analysis/Calculus/MeanValue.lean Modified Mathlib/Analysis/Calculus/Taylor.lean Modified Mathlib/Analysis/Complex/Polynomial.lean Modified Mathlib/Analysis/SpecialFunctions/SmoothTransition.lean Modified Mathlib/Analysis/SpecialFunctions/Sqrt.lean Modified Mathlib/NumberTheory/Liouville/Basic.lean Modified Mathlib/NumberTheory/ZetaValues.lean Modified Mathlib/RingTheory/Polynomial/Hermite/Gaussian.lean Added Mathlib/Topology/Algebra/Order/Rolle.lean + theorem exists_Ioo_extr_on_Icc + theorem exists_isExtrOn_Ioo_of_tendsto + theorem exists_isLocalExtr_Ioo + theorem exists_isLocalExtr_Ioo_of_tendsto 2023-07-26 09:26:19 6b4ff5d feat(Filter/Germ): review algebraic instances (#6130) Motivated by the Sphere Eversion Project. ESTIMATED CHANGES Modified Mathlib/Algebra/Ring/Pi.lean Modified Mathlib/Order/Filter/FilterProduct.lean - theorem Filter.Germ.const_inf - theorem Filter.Germ.const_sup Modified Mathlib/Order/Filter/Germ.lean + theorem Filter.Germ.coe_int + theorem Filter.Germ.coe_nat + theorem Filter.Germ.coe_ofNat + theorem Filter.Germ.const_inf + theorem Filter.Germ.const_nat + theorem Filter.Germ.const_ofNat + theorem Filter.Germ.const_sup 2023-07-26 09:26:18 10915fa chore: fix some `Set` defeq abuse, golf (#6114) - Use `{x | p x}` instead of `fun x ↦ p x` to define a set here and there. - Golf some proofs. - Replace `Con.ker_apply_eq_preimage` with `Con.ker_apply`. The old version used to abuse definitional equality between `Set M` and `M → Prop`. - Fix `Submonoid.mk*` lemmas to use `⟨_, _⟩`, not `⟨⟨_, _⟩, _⟩`. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Groupoid/Subgroupoid.lean Modified Mathlib/CategoryTheory/IsConnected.lean Modified Mathlib/Computability/DFA.lean +/- def DFA.accepts Modified Mathlib/Computability/Language.lean Modified Mathlib/Computability/NFA.lean +/- def NFA.accepts Modified Mathlib/Computability/RegularExpressions.lean Modified Mathlib/Data/Set/Finite.lean Modified Mathlib/Data/Set/Image.lean Modified Mathlib/GroupTheory/Congruence.lean + theorem Con.ker_apply - theorem Con.ker_apply_eq_preimage Modified Mathlib/GroupTheory/Submonoid/Basic.lean +/- theorem Submonoid.coe_set_mk +/- theorem Submonoid.mem_mk +/- theorem Submonoid.mk_le_mk Modified Mathlib/Logic/Equiv/Set.lean Modified Mathlib/Logic/Function/Basic.lean Modified Mathlib/Order/Closure.lean +/- def ClosureOperator.closed +/- def LowerAdjoint.closed Modified Mathlib/Order/CountableDenseLinearOrder.lean 2023-07-26 09:26:16 2ae56d8 feat: derivative of the inversion (#5937) Prove that inversion is smooth away from the center and its derivative is a scaled reflection. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Analysis/Calculus/FDeriv/Basic.lean + theorem HasFDerivAt.congr_fderiv + theorem HasFDerivWithinAt.congr_fderiv + theorem HasStrictFDerivAt.congr_fderiv Modified Mathlib/Analysis/InnerProductSpace/Calculus.lean + theorem HasFDerivAt.norm_sq + theorem HasFDerivWithinAt.norm_sq Modified Mathlib/Analysis/InnerProductSpace/Projection.lean + theorem reflection_singleton_apply Added Mathlib/Geometry/Euclidean/Inversion/Calculus.lean + theorem EuclideanGeometry.hasFDerivAt_inversion 2023-07-26 08:17:43 9f14c41 chore(*): add `protected` to `*.insert` theorems (#6142) Otherwise code like ```lean theorem ContMDiffWithinAt.mythm (h : x ∈ insert y s) : _ = _ ``` interprets `insert` as `ContMDiffWithinAt.insert`, not `Insert.insert`. ESTIMATED CHANGES Modified Mathlib/Analysis/Asymptotics/Asymptotics.lean - theorem Asymptotics.IsBigOWith.insert - theorem Asymptotics.IsLittleO.insert Modified Mathlib/Analysis/Calculus/FDeriv/Basic.lean - theorem HasFDerivWithinAt.insert Modified Mathlib/Combinatorics/SetFamily/Intersecting.lean - theorem Set.Intersecting.insert Modified Mathlib/Data/List/Nodup.lean - theorem List.Nodup.insert Modified Mathlib/Data/List/Perm.lean - theorem List.Perm.insert Modified Mathlib/Data/Set/Countable.lean - theorem Set.Countable.insert Modified Mathlib/Data/Set/Finite.lean - theorem Set.Finite.insert Modified Mathlib/Geometry/Manifold/ContMDiff.lean + theorem ContMDiffWithinAt.insert Modified Mathlib/LinearAlgebra/LinearIndependent.lean - theorem LinearIndependent.insert Modified Mathlib/Order/Bounds/Basic.lean - theorem BddAbove.insert - theorem BddBelow.insert - theorem IsGLB.insert - theorem IsGreatest.insert - theorem IsLUB.insert - theorem IsLeast.insert Modified Mathlib/Order/Chain.lean - theorem IsChain.insert Modified Mathlib/Order/Directed.lean - theorem DirectedOn.insert Modified Mathlib/Order/WellFoundedSet.lean - theorem Set.IsWf.insert - theorem Set.WellFoundedOn.insert Modified Mathlib/Topology/SubsetProperties.lean - theorem IsCompact.insert 2023-07-26 06:04:34 3bbd204 feat (Mathlib.Topology.MetricSpace.ThickenedIndicator): Add convergence of plain old indicators. (#6047) Add lemmas `tendsto_indicator_thickening_indicator_closure` and `tendsto_indicator_cthickening_indicator_closure`. ESTIMATED CHANGES Modified Mathlib/Topology/MetricSpace/HausdorffDistance.lean + theorem Metric.eventually_not_mem_cthickening_of_infEdist_pos + theorem Metric.eventually_not_mem_thickening_of_infEdist_pos Modified Mathlib/Topology/MetricSpace/ThickenedIndicator.lean + theorem mulIndicator_cthickening_eventually_eq_mulIndicator_closure + theorem mulIndicator_thickening_eventually_eq_mulIndicator_closure + theorem tendsto_mulIndicator_cthickening_mulIndicator_closure + theorem tendsto_mulIndicator_thickening_mulIndicator_closure 2023-07-25 23:43:18 4d5aef9 feat: add lemmas about `floor`/`ceil`/`fract`/`round` and `OfNat.ofNat` (#6037) Motivated by `fract_add_one` from the Sphere Eversion Project. ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Floor.lean +/- theorem Int.abs_fract + theorem Int.ceil_add_ofNat + theorem Int.ceil_ofNat + theorem Int.ceil_sub_ofNat + theorem Int.floor_add_ofNat + theorem Int.floor_ofNat + theorem Int.floor_ofNat_add + theorem Int.floor_sub_ofNat + theorem Int.floor_sub_one + theorem Int.fract_add_ofNat + theorem Int.fract_add_one - theorem Int.fract_int_nat + theorem Int.fract_nat_add + theorem Int.fract_ofNat + theorem Int.fract_ofNat_add + theorem Int.fract_one_add + theorem Int.fract_sub_ofNat + theorem Int.fract_sub_one + theorem Nat.ceil_add_ofNat + theorem Nat.floor_add_ofNat + theorem Nat.floor_div_ofNat + theorem Nat.floor_sub_ofNat + theorem Nat.floor_sub_one + theorem round_add_ofNat + theorem round_ofNat + theorem round_ofNat_add + theorem round_sub_ofNat 2023-07-25 20:35:19 cf60565 feat(Dynamics/Birkhoff): define Birkhoff sum and Birkhoff average (#6131) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Dynamics/BirkhoffSum/Average.lean + theorem Function.IsFixedPt.birkhoffAverage_eq + def birkhoffAverage + theorem birkhoffAverage_apply_sub_birkhoffAverage + theorem birkhoffAverage_congr_ring' + theorem birkhoffAverage_congr_ring + theorem birkhoffAverage_one' + theorem birkhoffAverage_one + theorem birkhoffAverage_zero' + theorem birkhoffAverage_zero + theorem map_birkhoffAverage Added Mathlib/Dynamics/BirkhoffSum/Basic.lean + theorem Function.IsFixedPt.birkhoffSum_eq + def birkhoffSum + theorem birkhoffSum_add + theorem birkhoffSum_apply_sub_birkhoffSum + theorem birkhoffSum_one' + theorem birkhoffSum_one + theorem birkhoffSum_succ' + theorem birkhoffSum_succ + theorem birkhoffSum_zero' + theorem birkhoffSum_zero + theorem map_birkhoffSum 2023-07-25 19:04:19 bafa842 feat: miscellaneous lemmas about properties of `log` and `rpow` (#5987) ESTIMATED CHANGES Modified Mathlib/Analysis/SpecialFunctions/Log/Basic.lean + theorem Real.isLittleO_const_log_atTop Modified Mathlib/Analysis/SpecialFunctions/Pow/Deriv.lean + theorem Real.differentiableAt_rpow_const_of_ne + theorem Real.differentiableOn_rpow_const + theorem isBigO_deriv_rpow_const_atTop + theorem isTheta_deriv_rpow_const_atTop 2023-07-25 16:52:05 3bece34 fix: make an ideal lemma more constructive (#6080) This generalizes `Ideal.pow_multiset_sum_mem_span_pow` away from `Classical.decEq`. ESTIMATED CHANGES Modified Mathlib/RingTheory/Ideal/Basic.lean +/- theorem Ideal.pow_multiset_sum_mem_span_pow 2023-07-25 13:48:57 03720bd chore(Probability.Kernel): drop AEMeasurable assumptions (#6129) ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Constructions/Prod/Basic.lean +/- theorem MeasureTheory.Measure.fst_map_prod_mk +/- theorem MeasureTheory.Measure.fst_map_prod_mk₀ + theorem MeasureTheory.Measure.fst_zero +/- theorem MeasureTheory.Measure.snd_map_prod_mk +/- theorem MeasureTheory.Measure.snd_map_prod_mk₀ + theorem MeasureTheory.Measure.snd_zero Modified Mathlib/Probability/Kernel/CondDistrib.lean +/- theorem MeasureTheory.AEStronglyMeasurable.comp_snd_map_prod_mk +/- theorem MeasureTheory.AEStronglyMeasurable.integral_condDistrib_map +/- theorem MeasureTheory.Integrable.comp_snd_map_prod_mk +/- theorem MeasureTheory.Integrable.condDistrib_ae_map +/- theorem MeasureTheory.Integrable.integral_condDistrib_map +/- theorem MeasureTheory.Integrable.integral_norm_condDistrib_map +/- theorem MeasureTheory.Integrable.norm_integral_condDistrib_map 2023-07-25 13:48:55 0abcb52 chore: change author name in Order/KrullDimesnion (#6128) ESTIMATED CHANGES Modified Mathlib/Order/KrullDimension.lean 2023-07-25 13:48:54 69d98d9 feat(Probability/Kernel/Basic): Evaluation function of a finite kernel is integrable (#6111) ESTIMATED CHANGES Modified Mathlib/Probability/Kernel/Basic.lean + theorem ProbabilityTheory.kernel.IsFiniteKernel.integrable + theorem ProbabilityTheory.kernel.IsMarkovKernel.integrable 2023-07-25 13:48:53 3b24f00 feat: basic set lemmas (#6010) ESTIMATED CHANGES Modified Mathlib/Analysis/BoundedVariation.lean - theorem Set.subsingleton_Icc_of_ge Modified Mathlib/Data/Set/Intervals/Basic.lean + theorem Set.subsingleton_Icc_iff + theorem Set.subsingleton_Icc_of_ge Modified Mathlib/Data/Set/Pairwise/Basic.lean + theorem Set.exists_lt_mem_inter_of_not_pairwiseDisjoint + theorem Set.exists_ne_mem_inter_of_not_pairwiseDisjoint + theorem exists_lt_mem_inter_of_not_pairwise_disjoint + theorem exists_ne_mem_inter_of_not_pairwise_disjoint Modified Mathlib/Topology/ContinuousFunction/Weierstrass.lean 2023-07-25 12:56:26 2c8ded2 fix: shorter names for some instances (#6123) ESTIMATED CHANGES Modified Mathlib/RingTheory/TensorProduct.lean Modified docs/overview.yaml 2023-07-25 11:29:47 34dea34 feat: lemmas about WithBot.unbot (#6124) ESTIMATED CHANGES Modified Mathlib/Order/WithBot.lean + theorem WithBot.unbot_le_iff + theorem WithTop.le_untop_iff 2023-07-25 10:57:25 86c30b0 feat(Topology/Order/LowerUpperTopology): Dual the lower topology (#5873) Defines the upper topology, which is the dual of the lower topology on a preorder. ESTIMATED CHANGES Modified Mathlib.lean Renamed Mathlib/Topology/Order/LowerTopology.lean to Mathlib/Topology/Order/LowerUpperTopology.lean + theorem LowerDual_iff_Upper + theorem UpperDual_iff_Lower + theorem UpperTopology.closure_singleton + theorem UpperTopology.continuous_of_Iic + theorem UpperTopology.isClosed_Iic + theorem UpperTopology.isClosed_lowerClosure + theorem UpperTopology.isLowerSet_of_isClosed + theorem UpperTopology.isOpen_iff_generate_Iic_compl + theorem UpperTopology.isUpperSet_of_isOpen + theorem UpperTopology.topology_eq + def UpperTopology.upperBasis + def UpperTopology.withUpperTopologyHomeomorph + theorem WithUpperTopology.isOpen_def + theorem WithUpperTopology.isOpen_preimage_ofUpper + def WithUpperTopology.ofUpper + theorem WithUpperTopology.ofUpper_inj + theorem WithUpperTopology.ofUpper_toUpper + theorem WithUpperTopology.of_withUpperTopology_symm_eq + def WithUpperTopology.toUpper + theorem WithUpperTopology.toUpper_inj + theorem WithUpperTopology.toUpper_ofUpper + theorem WithUpperTopology.to_withUpperTopology_symm_eq + def WithUpperTopology + def toOrderDualHomeomorph 2023-07-25 09:31:14 fb884dd fix: when apply? fails, say apply? not exact? (#6064) (Previously the message would say `"exact? didn't find any relevant lemmas"` even when the tactic used was `apply?`) ESTIMATED CHANGES Modified Mathlib/Tactic/LibrarySearch.lean 2023-07-25 08:10:52 9a53c46 fix: allow typeclass failures in exact? (#6113) As requested on [zulip](https://leanprover.zulipchat.com/#narrow/stream/217875-Is-there-code-for-X.3F/topic/.E2.9C.94.20tsum.20and.20HasSum/near/378162082). ESTIMATED CHANGES Modified Mathlib/Tactic/LibrarySearch.lean 2023-07-25 07:35:07 a16538a chore: fix grammar mistakes (#6121) ESTIMATED CHANGES Modified Archive/Examples/PropEncodable.lean Modified Mathlib/Algebra/Algebra/NonUnitalSubalgebra.lean Modified Mathlib/Algebra/Algebra/Subalgebra/Basic.lean Modified Mathlib/Algebra/BigOperators/Finprod.lean Modified Mathlib/Algebra/Category/ModuleCat/Kernels.lean Modified Mathlib/Algebra/ContinuedFractions/ConvergentsEquiv.lean Modified Mathlib/Algebra/DirectSum/Decomposition.lean Modified Mathlib/Algebra/Lie/Classical.lean Modified Mathlib/Algebra/Lie/Engel.lean Modified Mathlib/Algebra/Module/Basic.lean Modified Mathlib/Algebra/Module/LocalizedModule.lean Modified Mathlib/Algebra/Module/PID.lean Modified Mathlib/Algebra/Module/Submodule/Basic.lean Modified Mathlib/Algebra/Order/Nonneg/Ring.lean Modified Mathlib/Algebra/Order/Sub/Canonical.lean Modified Mathlib/Algebra/Regular/SMul.lean Modified Mathlib/AlgebraicGeometry/AffineScheme.lean Modified Mathlib/AlgebraicGeometry/OpenImmersion/Scheme.lean Modified Mathlib/AlgebraicGeometry/PresheafedSpace/Gluing.lean Modified Mathlib/AlgebraicGeometry/Spec.lean Modified Mathlib/AlgebraicGeometry/StructureSheaf.lean Modified Mathlib/Analysis/Analytic/Basic.lean Modified Mathlib/Analysis/BoxIntegral/Basic.lean Modified Mathlib/Analysis/Calculus/BumpFunction/Convolution.lean Modified Mathlib/Analysis/Calculus/FDeriv/Basic.lean Modified Mathlib/Analysis/Complex/CauchyIntegral.lean Modified Mathlib/Analysis/Complex/Schwarz.lean Modified Mathlib/Analysis/Convex/StoneSeparation.lean Modified Mathlib/Analysis/Distribution/SchwartzSpace.lean Modified Mathlib/Analysis/InnerProductSpace/Basic.lean Modified Mathlib/Analysis/InnerProductSpace/Projection.lean Modified Mathlib/Analysis/Normed/Group/Quotient.lean Modified Mathlib/Analysis/SpecificLimits/Normed.lean Modified Mathlib/CategoryTheory/Abelian/Pseudoelements.lean Modified Mathlib/CategoryTheory/Category/PartialFun.lean Modified Mathlib/CategoryTheory/LiftingProperties/Basic.lean Modified Mathlib/CategoryTheory/Limits/ConcreteCategory.lean Modified Mathlib/CategoryTheory/Limits/HasLimits.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Equalizers.lean Modified Mathlib/CategoryTheory/Limits/Shapes/FiniteLimits.lean Modified Mathlib/CategoryTheory/Limits/Shapes/WideEqualizers.lean Modified Mathlib/CategoryTheory/Limits/Yoneda.lean Modified Mathlib/CategoryTheory/Monad/Kleisli.lean Modified Mathlib/CategoryTheory/Monoidal/Rigid/Basic.lean Modified Mathlib/CategoryTheory/Yoneda.lean Modified Mathlib/Combinatorics/DoubleCounting.lean Modified Mathlib/Combinatorics/Quiver/ConnectedComponent.lean Modified Mathlib/Combinatorics/SimpleGraph/Connectivity.lean Modified Mathlib/Data/List/Sublists.lean Modified Mathlib/Data/Nat/Multiplicity.lean Modified Mathlib/Data/Nat/Prime.lean Modified Mathlib/Data/QPF/Multivariate/Constructions/Cofix.lean Modified Mathlib/Data/QPF/Multivariate/Constructions/Sigma.lean Modified Mathlib/Data/Real/EReal.lean Modified Mathlib/Data/Set/Ncard.lean Modified Mathlib/Data/Vector.lean Modified Mathlib/FieldTheory/Finite/Basic.lean Modified Mathlib/FieldTheory/Subfield.lean Modified Mathlib/Geometry/Euclidean/Angle/Oriented/Rotation.lean Modified Mathlib/Geometry/Manifold/MFDeriv.lean Modified Mathlib/Geometry/Manifold/PartitionOfUnity.lean Modified Mathlib/GroupTheory/GroupAction/FixingSubgroup.lean Modified Mathlib/GroupTheory/IsFreeGroup.lean Modified Mathlib/GroupTheory/Nilpotent.lean Modified Mathlib/GroupTheory/QuotientGroup.lean Modified Mathlib/GroupTheory/Subgroup/Basic.lean Modified Mathlib/Init/Data/List/Lemmas.lean Modified Mathlib/LinearAlgebra/Basis.lean Modified Mathlib/LinearAlgebra/CliffordAlgebra/Equivs.lean Modified Mathlib/LinearAlgebra/Eigenspace/Basic.lean Modified Mathlib/LinearAlgebra/FreeModule/PID.lean Modified Mathlib/LinearAlgebra/LinearPMap.lean Modified Mathlib/LinearAlgebra/Matrix/Charpoly/LinearMap.lean Modified Mathlib/LinearAlgebra/Matrix/SchurComplement.lean Modified Mathlib/LinearAlgebra/Matrix/Transvection.lean Modified Mathlib/LinearAlgebra/Quotient.lean Modified Mathlib/Logic/Equiv/Basic.lean Modified Mathlib/MeasureTheory/Covering/Besicovitch.lean Modified Mathlib/MeasureTheory/Integral/FundThmCalculus.lean Modified Mathlib/MeasureTheory/MeasurableSpace.lean Modified Mathlib/MeasureTheory/Measure/OuterMeasure.lean Modified Mathlib/MeasureTheory/Measure/Regular.lean Modified Mathlib/ModelTheory/Substructures.lean Modified Mathlib/NumberTheory/Bernoulli.lean Modified Mathlib/NumberTheory/Padics/PadicVal.lean Modified Mathlib/NumberTheory/WellApproximable.lean Modified Mathlib/Order/Compare.lean Modified Mathlib/Order/Filter/Extr.lean Modified Mathlib/Order/Monotone/Odd.lean Modified Mathlib/Probability/Kernel/CondCdf.lean Modified Mathlib/RepresentationTheory/Action.lean Modified Mathlib/RepresentationTheory/Invariants.lean Modified Mathlib/RingTheory/Adjoin/Basic.lean Modified Mathlib/RingTheory/Adjoin/PowerBasis.lean Modified Mathlib/RingTheory/FiniteType.lean Modified Mathlib/RingTheory/FreeCommRing.lean Modified Mathlib/RingTheory/GradedAlgebra/Radical.lean Modified Mathlib/RingTheory/Ideal/Operations.lean Modified Mathlib/RingTheory/Jacobson.lean Modified Mathlib/RingTheory/LocalProperties.lean Modified Mathlib/RingTheory/Localization/Basic.lean Modified Mathlib/RingTheory/MvPolynomial/Ideal.lean Modified Mathlib/SetTheory/Game/PGame.lean Modified Mathlib/Tactic/Basic.lean Modified Mathlib/Tactic/Linarith/Elimination.lean Modified Mathlib/Tactic/Propose.lean Modified Mathlib/Testing/SlimCheck/Testable.lean Modified Mathlib/Topology/Algebra/Module/Alternating.lean Modified Mathlib/Topology/Algebra/Module/WeakDual.lean Modified Mathlib/Topology/Basic.lean Modified Mathlib/Topology/MetricSpace/Closeds.lean Modified Mathlib/Topology/MetricSpace/Dilation.lean Modified Mathlib/Topology/Separation.lean Modified Mathlib/Topology/Sheaves/Operations.lean Modified Mathlib/Topology/SubsetProperties.lean Modified Mathlib/Topology/UniformSpace/UniformConvergenceTopology.lean Modified Mathlib/Topology/VectorBundle/Basic.lean 2023-07-25 06:02:10 4bf4f50 chore(MeasureSpace): move `dirac` and `count` to new files (#6116) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/MeasureTheory/Integral/Lebesgue.lean - theorem MeasureTheory.restrict_dirac' - theorem MeasureTheory.restrict_dirac Added Mathlib/MeasureTheory/Measure/Count.lean + def MeasureTheory.Measure.count + theorem MeasureTheory.Measure.count_apply + theorem MeasureTheory.Measure.count_apply_eq_top' + theorem MeasureTheory.Measure.count_apply_eq_top + theorem MeasureTheory.Measure.count_apply_finite' + theorem MeasureTheory.Measure.count_apply_finite + theorem MeasureTheory.Measure.count_apply_finset' + theorem MeasureTheory.Measure.count_apply_finset + theorem MeasureTheory.Measure.count_apply_infinite + theorem MeasureTheory.Measure.count_apply_lt_top' + theorem MeasureTheory.Measure.count_apply_lt_top + theorem MeasureTheory.Measure.count_empty + theorem MeasureTheory.Measure.count_eq_zero_iff' + theorem MeasureTheory.Measure.count_eq_zero_iff + theorem MeasureTheory.Measure.count_injective_image' + theorem MeasureTheory.Measure.count_injective_image + theorem MeasureTheory.Measure.count_ne_zero' + theorem MeasureTheory.Measure.count_ne_zero + theorem MeasureTheory.Measure.count_singleton' + theorem MeasureTheory.Measure.count_singleton + theorem MeasureTheory.Measure.empty_of_count_eq_zero' + theorem MeasureTheory.Measure.empty_of_count_eq_zero + theorem MeasureTheory.Measure.le_count_apply Added Mathlib/MeasureTheory/Measure/Dirac.lean + def MeasureTheory.Measure.dirac + theorem MeasureTheory.Measure.dirac_apply' + theorem MeasureTheory.Measure.dirac_apply + theorem MeasureTheory.Measure.dirac_apply_of_mem + theorem MeasureTheory.Measure.le_dirac_apply + theorem MeasureTheory.Measure.map_dirac + theorem MeasureTheory.Measure.map_eq_sum + theorem MeasureTheory.Measure.restrict_singleton + theorem MeasureTheory.Measure.sum_smul_dirac + theorem MeasureTheory.Measure.tsum_indicator_apply_singleton + theorem MeasureTheory.ae_dirac_eq + theorem MeasureTheory.ae_dirac_iff + theorem MeasureTheory.ae_eq_dirac' + theorem MeasureTheory.ae_eq_dirac + theorem MeasureTheory.mem_ae_dirac_iff + theorem MeasureTheory.restrict_dirac' + theorem MeasureTheory.restrict_dirac Modified Mathlib/MeasureTheory/Measure/MeasureSpace.lean - def MeasureTheory.Measure.count - theorem MeasureTheory.Measure.count_apply - theorem MeasureTheory.Measure.count_apply_eq_top' - theorem MeasureTheory.Measure.count_apply_eq_top - theorem MeasureTheory.Measure.count_apply_finite' - theorem MeasureTheory.Measure.count_apply_finite - theorem MeasureTheory.Measure.count_apply_finset' - theorem MeasureTheory.Measure.count_apply_finset - theorem MeasureTheory.Measure.count_apply_infinite - theorem MeasureTheory.Measure.count_apply_lt_top' - theorem MeasureTheory.Measure.count_apply_lt_top - theorem MeasureTheory.Measure.count_empty - theorem MeasureTheory.Measure.count_eq_zero_iff' - theorem MeasureTheory.Measure.count_eq_zero_iff - theorem MeasureTheory.Measure.count_injective_image' - theorem MeasureTheory.Measure.count_injective_image - theorem MeasureTheory.Measure.count_ne_zero' - theorem MeasureTheory.Measure.count_ne_zero - theorem MeasureTheory.Measure.count_singleton' - theorem MeasureTheory.Measure.count_singleton - def MeasureTheory.Measure.dirac - theorem MeasureTheory.Measure.dirac_apply' - theorem MeasureTheory.Measure.dirac_apply - theorem MeasureTheory.Measure.dirac_apply_of_mem - theorem MeasureTheory.Measure.empty_of_count_eq_zero' - theorem MeasureTheory.Measure.empty_of_count_eq_zero - theorem MeasureTheory.Measure.le_count_apply - theorem MeasureTheory.Measure.le_dirac_apply - theorem MeasureTheory.Measure.map_dirac - theorem MeasureTheory.Measure.map_eq_sum - theorem MeasureTheory.Measure.restrict_singleton - theorem MeasureTheory.Measure.sum_smul_dirac - theorem MeasureTheory.Measure.tsum_indicator_apply_singleton - theorem MeasureTheory.ae_dirac_eq - theorem MeasureTheory.ae_dirac_iff - theorem MeasureTheory.ae_eq_dirac' - theorem MeasureTheory.ae_eq_dirac - theorem MeasureTheory.mem_ae_dirac_iff Modified Mathlib/Probability/CondCount.lean Modified Mathlib/Probability/ProbabilityMassFunction/Basic.lean 2023-07-25 00:32:14 2853253 fix(ZFC/Basic): fix `Class.sep` (#6084) `Class.has_sep` was incorrectly ported to `Class.sep` (wrong type). ESTIMATED CHANGES Modified Mathlib/SetTheory/ZFC/Basic.lean 2023-07-24 16:15:09 c652e60 feat: Integrability of g • f for g continuous with compact support and f locally integrable (#6100) ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Function/LocallyIntegrable.lean + theorem MeasureTheory.LocallyIntegrable.integrable_smul_left_of_hasCompactSupport + theorem MeasureTheory.LocallyIntegrable.integrable_smul_right_of_hasCompactSupport Modified Mathlib/MeasureTheory/Function/LpSeminorm.lean + theorem Continuous.memℒp_top_of_hasCompactSupport Modified Mathlib/MeasureTheory/Function/StronglyMeasurable/Basic.lean + theorem Continuous.stronglyMeasurable_of_hasCompactSupport Modified Mathlib/Topology/Support.lean + theorem HasCompactMulSupport.of_mulSupport_subset_isCompact 2023-07-24 16:15:08 739d98d feat: add 2 `coe_pow` lemmas (#6063) Also drop `@[simp]` on `LinearMap.pow_apply`. ESTIMATED CHANGES Modified Mathlib/Algebra/Lie/Weights.lean Modified Mathlib/Algebra/Module/LinearMap.lean Modified Mathlib/Analysis/NormedSpace/LinearIsometry.lean + theorem LinearIsometry.coe_pow Modified Mathlib/LinearAlgebra/Basic.lean +/- theorem LinearMap.coe_pow +/- theorem LinearMap.pow_apply Modified Mathlib/RingTheory/Artinian.lean Modified Mathlib/Topology/Algebra/Module/Basic.lean + theorem ContinuousLinearMap.coe_pow 2023-07-24 16:15:07 5d6a12d feat: lemmas about `writtenInExtChartAt` (#5495) ESTIMATED CHANGES Modified Mathlib/Geometry/Manifold/SmoothManifoldWithCorners.lean + theorem extChartAt_comp + theorem writtenInExtChartAt_chartAt + theorem writtenInExtChartAt_chartAt_comp + theorem writtenInExtChartAt_chartAt_symm + theorem writtenInExtChartAt_chartAt_symm_comp + theorem writtenInExtChartAt_extChartAt + theorem writtenInExtChartAt_extChartAt_symm Modified Mathlib/Geometry/Manifold/VectorBundle/Basic.lean + theorem FiberBundle.writtenInExtChartAt_trivializationAt + theorem FiberBundle.writtenInExtChartAt_trivializationAt_symm 2023-07-24 15:23:11 d6ce56d chore(topology/metric_space): forward-port leanprover-community/mathlib#18875 (#6095) ESTIMATED CHANGES Modified Mathlib/Topology/MetricSpace/Basic.lean + theorem Metric.closedBall_eq_sphere_of_nonpos + theorem Metric.nonneg_of_mem_sphere + theorem Metric.sphere_eq_empty_of_neg + theorem dist_pi_eq_iff + theorem nndist_pi_eq_iff + theorem nndist_pi_lt_iff + theorem sphere_pi + theorem sphere_prod 2023-07-24 14:02:25 393aac6 doc: fix type signature of `Relator.LiftFun` (#6099) ESTIMATED CHANGES Modified Mathlib/Logic/Relator.lean 2023-07-24 14:02:24 4d06c76 feat(Algebra/IndicatorFunction): add indicator_iInter_apply as a counterpart to indicator_iUnion_apply. (#6078) Add lemma `mulIndicator_iInter_apply` and its additive version `indicator_iInter_apply`. These are entirely parallel to the existing `mulIndicator_iUnion_apply` and its additive version `indicator_iUnion_apply`. ESTIMATED CHANGES Modified Mathlib/Algebra/IndicatorFunction.lean + theorem Set.mulIndicator_iInter_apply 2023-07-24 12:23:29 4722c35 feat: `DihedralGroup 0` is infinite (#6082) This PR adds an instance stating that `DihedralGroup 0` is infinite. ESTIMATED CHANGES Modified Mathlib/GroupTheory/SpecificGroups/Dihedral.lean 2023-07-24 12:23:28 46b3127 ci: do not let bors run if the awaiting-CI label is present (#6068) We already did this in mathlib3. This forward-ports https://github.com/leanprover-community/mathlib/pull/9478, which was created a few days after this file was ported in #52. ESTIMATED CHANGES Modified bors.toml 2023-07-24 12:23:27 e8318a8 chore: remove 'Ported by' headers (#6018) Briefly during the port we were adding "Ported by" headers, but only ~60 / 3000 files ended up with such a header. I propose deleting them. We could consider adding these uniformly via a script, as part of the great history rewrite...? ESTIMATED CHANGES Modified Mathlib/Algebra/Divisibility/Basic.lean Modified Mathlib/Algebra/Divisibility/Units.lean Modified Mathlib/Algebra/GroupPower/Ring.lean Modified Mathlib/Algebra/Hom/Commute.lean Modified Mathlib/Algebra/Hom/Equiv/Basic.lean Modified Mathlib/Algebra/Hom/Equiv/TypeTags.lean Modified Mathlib/Algebra/Hom/Equiv/Units/Basic.lean Modified Mathlib/Algebra/Hom/Group.lean Modified Mathlib/Algebra/Hom/Ring.lean Modified Mathlib/Algebra/Hom/Units.lean Modified Mathlib/Algebra/Order/Field/Canonical/Defs.lean Modified Mathlib/Algebra/Order/Field/Defs.lean Modified Mathlib/Algebra/Order/Group/OrderIso.lean Modified Mathlib/Algebra/Order/Hom/Monoid.lean Modified Mathlib/Algebra/Order/Monoid/Prod.lean Modified Mathlib/Algebra/Order/Monoid/WithTop.lean Modified Mathlib/Algebra/Order/Ring/Canonical.lean Modified Mathlib/Algebra/Order/Ring/CharZero.lean Modified Mathlib/Algebra/Order/Ring/Defs.lean Modified Mathlib/Algebra/Ring/Basic.lean Modified Mathlib/Algebra/Ring/Divisibility.lean Modified Mathlib/Algebra/Ring/Equiv.lean Modified Mathlib/CategoryTheory/Category/Basic.lean Modified Mathlib/CategoryTheory/EssentialImage.lean Modified Mathlib/CategoryTheory/Functor/Basic.lean Modified Mathlib/CategoryTheory/Iso.lean Modified Mathlib/CategoryTheory/NatTrans.lean Modified Mathlib/CategoryTheory/Whiskering.lean Modified Mathlib/Combinatorics/Quiver/Basic.lean Modified Mathlib/Combinatorics/Quiver/ConnectedComponent.lean Modified Mathlib/Combinatorics/Quiver/Path.lean Modified Mathlib/Combinatorics/Quiver/Subquiver.lean Modified Mathlib/Combinatorics/Quiver/Symmetric.lean Modified Mathlib/Data/Int/Cast/Lemmas.lean Modified Mathlib/Data/Int/Dvd/Basic.lean Modified Mathlib/Data/Int/Order/Lemmas.lean Modified Mathlib/Data/Nat/Choose/Central.lean Modified Mathlib/Data/Nat/ForSqrt.lean Modified Mathlib/Data/Nat/Log.lean Modified Mathlib/Data/Pi/Algebra.lean Modified Mathlib/Data/Set/Accumulate.lean Modified Mathlib/Data/Set/Image.lean Modified Mathlib/Data/Set/Intervals/Basic.lean Modified Mathlib/Data/Set/Intervals/Group.lean Modified Mathlib/Data/Set/Intervals/SurjOn.lean Modified Mathlib/Data/Set/Opposite.lean Modified Mathlib/Data/TwoPointing.lean Modified Mathlib/GroupTheory/Submonoid/Basic.lean Modified Mathlib/Init/Data/Sigma/Basic.lean Modified Mathlib/Logic/Equiv/Basic.lean Modified Mathlib/Logic/Equiv/Nat.lean Modified Mathlib/Order/Chain.lean Modified Mathlib/Order/ConditionallyCompleteLattice/Group.lean Modified Mathlib/Order/SymmDiff.lean Modified Mathlib/Tactic/Lift.lean Modified Mathlib/Tactic/Linarith/Datatypes.lean Modified Mathlib/Tactic/Linarith/Elimination.lean Modified Mathlib/Tactic/Linarith/Frontend.lean Modified Mathlib/Tactic/Linarith/Lemmas.lean Modified Mathlib/Tactic/Linarith/Parsing.lean Modified Mathlib/Tactic/Linarith/Preprocessing.lean Modified Mathlib/Tactic/Linarith/Verification.lean Modified Mathlib/Tactic/Monotonicity/Basic.lean Modified Mathlib/Tactic/Monotonicity/Lemmas.lean Modified Mathlib/Tactic/RestateAxiom.lean Modified Mathlib/Tactic/ToAdditive.lean 2023-07-24 12:23:26 549500f chore: forward-port leanprover-community/mathlib#19234 (#5879) Unfortunately I was not able to forward port the addition of a partially-explicit type to `kaehler_differential.End_equiv_derivation'`, as Lean 4 no longer allows metavariables in instance arguments. ESTIMATED CHANGES Modified Mathlib/RingTheory/Ideal/Cotangent.lean Modified Mathlib/RingTheory/Kaehler.lean 2023-07-24 10:54:32 7dfc12d feat(Analysis/Convex/Cone/Proper): define ProperCone.positive extending ConvexCone.positive (#6059) Defines `ProperCone.positive` extending `ConvexCone.positive`. Part of #6058 ESTIMATED CHANGES Modified Mathlib/Analysis/Convex/Cone/Proper.lean + theorem ProperCone.coe_positive + theorem ProperCone.mem_positive + def ProperCone.positive 2023-07-24 10:54:31 30c87ba feat(Algebra.Ring.Equiv) : provide RingHom inverse (#5997) Define: * `OneHom.inverse` (and its additive version) * `NonUnitalRingHom.inverse` * `RingHom.inverse` ESTIMATED CHANGES Modified Mathlib/Algebra/Hom/Equiv/Basic.lean +/- def MulHom.inverse + def OneHom.inverse Modified Mathlib/Algebra/Ring/Equiv.lean + def NonUnitalRingHom.inverse + def RingHom.inverse 2023-07-24 10:30:24 7d64af2 feat: define `DilationEquiv` (#5755) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Topology/MetricSpace/DilationEquiv.lean + def DilationEquiv.Simps.symm_apply + theorem DilationEquiv.apply_symm_apply + theorem DilationEquiv.coe_inv + theorem DilationEquiv.coe_mul + theorem DilationEquiv.coe_one + theorem DilationEquiv.coe_pow + theorem DilationEquiv.coe_toEquiv + theorem DilationEquiv.inv_def + theorem DilationEquiv.mul_def + theorem DilationEquiv.one_def + theorem DilationEquiv.ratio_inv + theorem DilationEquiv.ratio_pow + theorem DilationEquiv.ratio_refl + theorem DilationEquiv.ratio_symm + theorem DilationEquiv.ratio_trans + theorem DilationEquiv.ratio_zpow + def DilationEquiv.refl + theorem DilationEquiv.refl_symm + theorem DilationEquiv.refl_trans + theorem DilationEquiv.self_trans_symm + def DilationEquiv.symm + theorem DilationEquiv.symm_apply_apply + theorem DilationEquiv.symm_symm + theorem DilationEquiv.symm_trans_self + def DilationEquiv.toPerm + def DilationEquiv.trans + theorem DilationEquiv.trans_refl + structure DilationEquiv 2023-07-24 10:30:23 a888c04 feat: expand/review API about `gauge` (#5321) ESTIMATED CHANGES Modified Mathlib/Analysis/Convex/Gauge.lean + theorem Convex.lipschitz_gauge + theorem continuous_gauge + theorem gauge_ball' +/- theorem gauge_ball + theorem gauge_closedBall + theorem gauge_closure_zero + theorem gauge_eq_one_iff_mem_frontier + theorem gauge_eq_zero + theorem gauge_le_one_iff_mem_closure + theorem gauge_lt_one_eq_interior + theorem gauge_lt_one_iff_mem_interior + theorem gauge_pos +/- theorem gauge_unit_ball + theorem le_gauge_of_subset_closedBall + theorem mem_closure_of_gauge_le_one + theorem mem_frontier_of_gauge_eq_one + theorem mem_openSegment_of_gauge_lt_one 2023-07-24 09:11:08 2bf9e8f feat(Algebra/FreeAlgebra): support towers of algebras (#6072) This provide `Algebra R (FreeAlgebra A X)` when `Algebra R A`; previously we only had `Algebra R (FreeAlgebra R X)`. This also fixes some diamonds that would arise as a result of this new instance by filling the `zsmul` and `intCast` fields of `Module.addCommMonoidToAddCommGroup`, `Algebra.semiringToRing`, and the `nsmul` and `natCast` fields of the `Semiring` instance. ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/Basic.lean Modified Mathlib/Algebra/FreeAlgebra.lean Modified Mathlib/Algebra/Module/Basic.lean 2023-07-24 09:11:07 95a48b5 feat: add scalar tower instances for RingQuot and BilinForm (#6066) I tidied up some universe and type variables in the RingQuot file while I was here (in the first commit). ESTIMATED CHANGES Modified Mathlib/Algebra/RingQuot.lean +/- theorem RingQuot.Rel.neg +/- theorem RingQuot.Rel.sub_left +/- theorem RingQuot.Rel.sub_right +/- theorem RingQuot.neg_quot +/- theorem RingQuot.ringQuot_ext +/- def RingQuot.starRing +/- theorem RingQuot.sub_quot Modified Mathlib/LinearAlgebra/BilinearForm.lean 2023-07-24 07:51:05 ccbfd85 feat: missing lemma on finprod, modelled on the one on Finset.prod (#6070) ESTIMATED CHANGES Modified Mathlib/Algebra/BigOperators/Finprod.lean + theorem one_lt_finprod' 2023-07-24 07:51:04 16563e0 feat: lemmas about List.maximum (#6062) No particular objection if we only want one out of the `_ne_nil` and `_length_pos` pairs, but I like wall-to-wall coverage so `exact?` always works. :-) (For context, the place I needed these more naturally wanted the `_length_pos` lemmas.) ESTIMATED CHANGES Modified Mathlib/Data/List/MinMax.lean + theorem List.maximum_ne_bot_of_length_pos + theorem List.maximum_ne_bot_of_ne_nil + theorem List.minimum_ne_top_of_length_pos + theorem List.minimum_ne_top_of_ne_nil 2023-07-24 07:51:03 5d43a7b feat: lemma about WithBot.unbot (#6061) ESTIMATED CHANGES Modified Mathlib/Order/WithBot.lean + theorem WithBot.le_unbot_iff + theorem WithTop.untop_le_iff 2023-07-24 07:23:02 f5c15b3 refactor: turn `DimensionLEOne` into a class (#5833) The predicate that a ring has Krull dimension at most one was a regular `def`. I believe we should turn it into a class because: * The property follows from the ring structure, e.g. because it is a PID or because it is an integral closure. * We pass it around as a whole hypothesis, something instance synthesis can deal well with. * It makes the definition of `IsDedekindDomain` the conjunction of a number of classes, so we could switch to `extends` for all its fields. The main change in API is the addition of `Ideal.IsPrime.isMaximal` which is a restatement of the Krull dimension property with convenient dot notation: turn a prime ideal into a maximal ideal given the hypothesis that it's not zero. Zulip thread: https://leanprover.zulipchat.com/#narrow/stream/113488-general/topic/Should.20.60IsDedekindDomain.60.20extend.20.60IsDomain.60.3F/near/374515392 ESTIMATED CHANGES Modified Mathlib/RingTheory/DedekindDomain/Basic.lean + theorem Ideal.IsPrime.isMaximal +/- theorem Ring.DimensionLEOne.eq_bot_of_lt +/- theorem Ring.DimensionLEOne.not_lt_lt - theorem Ring.DimensionLEOne.principal_ideal_ring - def Ring.DimensionLEOne Modified Mathlib/RingTheory/DedekindDomain/Dvr.lean Modified Mathlib/RingTheory/DedekindDomain/Ideal.lean +/- theorem IsDedekindDomainInv.dimensionLEOne +/- theorem Ring.DimensionLeOne.prime_le_prime_iff_eq Modified Mathlib/RingTheory/DedekindDomain/IntegralClosure.lean Modified Mathlib/RingTheory/DiscreteValuationRing/TFAE.lean 2023-07-24 05:38:34 898a8e7 chore: use `·` instead of `.` (#6085) ESTIMATED CHANGES Modified Mathlib/Algebra/Category/GroupCat/Colimits.lean Modified Mathlib/Algebra/Category/Ring/Colimits.lean Modified Mathlib/Algebra/Category/Ring/Constructions.lean Modified Mathlib/Algebra/Free.lean Modified Mathlib/Algebra/Order/Group/MinMax.lean Modified Mathlib/AlgebraicGeometry/OpenImmersion/Basic.lean Modified Mathlib/AlgebraicGeometry/OpenImmersion/Scheme.lean Modified Mathlib/AlgebraicGeometry/PresheafedSpace/Gluing.lean Modified Mathlib/AlgebraicGeometry/PrimeSpectrum/Basic.lean Modified Mathlib/Combinatorics/SetFamily/LYM.lean Modified Mathlib/Data/ByteArray.lean Modified Mathlib/Data/Fin/Basic.lean Modified Mathlib/Data/List/BigOperators/Basic.lean Modified Mathlib/Data/List/Forall2.lean +/- theorem List.rel_append Modified Mathlib/Data/List/Nodup.lean Modified Mathlib/Data/List/Perm.lean Modified Mathlib/Data/List/Permutation.lean Modified Mathlib/Data/List/Sublists.lean Modified Mathlib/Data/Multiset/Range.lean +/- theorem Multiset.range_add +/- theorem Multiset.range_add_eq_union Modified Mathlib/Data/Part.lean +/- theorem Part.append_def +/- theorem Part.div_def +/- theorem Part.inter_def +/- theorem Part.inv_def +/- theorem Part.mod_def +/- theorem Part.mul_def +/- theorem Part.sdiff_def +/- theorem Part.union_def Modified Mathlib/Data/Set/Basic.lean Modified Mathlib/Data/Set/Lattice.lean Modified Mathlib/Data/Set/Pointwise/SMul.lean Modified Mathlib/Data/Vector/Basic.lean Modified Mathlib/GroupTheory/OrderOfElement.lean Modified Mathlib/GroupTheory/Sylow.lean Modified Mathlib/Init/Algebra/Order.lean Modified Mathlib/Order/Antisymmetrization.lean Modified Mathlib/Order/CompleteLattice.lean Modified Mathlib/Order/ConditionallyCompleteLattice/Basic.lean Modified Mathlib/Order/WithBot.lean Modified Mathlib/SetTheory/Ordinal/FixedPoint.lean +/- theorem Ordinal.nfp_mul_one +/- theorem Ordinal.nfp_mul_zero Modified test/trans.lean 2023-07-23 22:00:21 0b4132c feat: Compositum of two normal field extensions is normal (#6077) This is a quick consequence of `normal_iSup` which states than an arbitrary compositum of normal field extensions is normal. ESTIMATED CHANGES Modified Mathlib/FieldTheory/Normal.lean 2023-07-23 10:55:17 f8c1566 refactor: use `NeZero` for measures (#6048) Assume `NeZero μ` instead of `μ.ae.NeBot` everywhere, and sometimes instead of `μ ≠ 0`. ## API changes - `Convex.average_mem`, `Convex.set_average_mem`, `ConvexOn.average_mem_epigraph`, `ConcaveOn.average_mem_hypograph`, `ConvexOn.map_average_le`, `ConcaveOn.le_map_average`: assume `[NeZero μ]` instead of `μ ≠ 0`; - `MeasureTheory.condexp_bot'`, `essSup_const'`, `essInf_const'`, `MeasureTheory.laverage_const`, `MeasureTheory.laverage_one`, `MeasureTheory.average_const`: assume `[NeZero μ]` instead of `[μ.ae.NeBot]` - `MeasureTheory.Measure.measure_ne_zero`: replace with an instance; - remove `@[simp]` from `MeasureTheory.ae_restrict_neBot`, use `≠ 0` in the RHS; - turn `MeasureTheory.IsProbabilityMeasure.ae_neBot` into a theorem because `inferInstance` can find it now; - add instances: - `[NeZero μ] : NeZero (μ univ)`; - `[NeZero (μ s)] : NeZero (μ.restrict s)`; - `[NeZero μ] : μ.ae.NeBot`; - `[IsProbabilityMeasure μ] : NeZero μ`; - `[IsFiniteMeasure μ] [NeZero μ] : IsProbabilityMeasure ((μ univ)⁻¹ • μ)` this was a theorem `MeasureTheory.isProbabilityMeasureSmul` assuming `μ ≠ 0`; ESTIMATED CHANGES Modified Mathlib/Analysis/Convex/Integral.lean +/- theorem ConcaveOn.average_mem_hypograph +/- theorem ConcaveOn.le_map_average +/- theorem Convex.average_mem +/- theorem ConvexOn.average_mem_epigraph +/- theorem ConvexOn.map_average_le Modified Mathlib/MeasureTheory/Constructions/BorelSpace/Basic.lean Modified Mathlib/MeasureTheory/Function/ConditionalExpectation/Basic.lean +/- theorem MeasureTheory.condexp_bot' Modified Mathlib/MeasureTheory/Function/EssSup.lean +/- theorem essInf_const' +/- theorem essInf_const +/- theorem essSup_const' +/- theorem essSup_const Modified Mathlib/MeasureTheory/Function/LpSeminorm.lean Modified Mathlib/MeasureTheory/Integral/Average.lean +/- theorem MeasureTheory.average_const +/- theorem MeasureTheory.laverage_const +/- theorem MeasureTheory.laverage_one Modified Mathlib/MeasureTheory/Measure/MeasureSpace.lean + theorem MeasureTheory.IsProbabilityMeasure.ae_neBot +/- theorem MeasureTheory.ae_restrict_neBot - theorem MeasureTheory.isProbabilityMeasureSmul Modified Mathlib/MeasureTheory/Measure/OpenPos.lean - theorem MeasureTheory.Measure.measure_ne_zero 2023-07-23 09:39:59 641f7a7 fix: CompatibleSMul : Prop (#6065) Lean makes it `Type` otherwise. Why does this happen? Am I missing something? ESTIMATED CHANGES Modified Mathlib/Algebra/Module/LinearMap.lean 2023-07-22 20:51:23 560eeb2 feat: the additive circle is path connected (#6022) ESTIMATED CHANGES Modified Mathlib/Analysis/Convex/Normed.lean Modified Mathlib/Data/Set/Image.lean + theorem Set.Quotient.range_mk'' Modified Mathlib/GroupTheory/Coset.lean + theorem QuotientGroup.range_mk Modified Mathlib/Topology/Connected.lean + theorem Function.Surjective.connectedSpace + theorem connectedSpace_iff_univ + theorem preconnectedSpace_iff_univ Modified Mathlib/Topology/Instances/AddCircle.lean Modified Mathlib/Topology/PathConnected.lean + theorem Function.Surjective.pathConnectedSpace + theorem isPathConnected_range + theorem isPathConnected_univ 2023-07-22 17:39:02 babf007 chore(Data.Finsupp.Basic): remove redundant instance (#6050) See [Zulip](https://leanprover.zulipchat.com/#narrow/stream/144837-PR-reviews/topic/.235671/near/377446475) ESTIMATED CHANGES Modified Mathlib/Data/Finsupp/Basic.lean Modified Mathlib/LinearAlgebra/Finsupp.lean 2023-07-22 09:06:40 1266bc6 fix: ident-only `recall` w/ level params (#6004) See the [discussion](https://leanprover.zulipchat.com/#narrow/stream/270676-lean4/topic/recall.20command/near/376648750) on Zulip. ESTIMATED CHANGES Modified Mathlib/Tactic/Recall.lean Modified test/Recall.lean 2023-07-22 07:26:04 c4d2f6d fix: `fin_cases` needed an `instantiateMVars` (#6046) ESTIMATED CHANGES Modified Mathlib/Tactic/FinCases.lean Modified test/fin_cases.lean 2023-07-22 07:26:03 8db9f1e chore: add aesop wrappers that pass suggestions (#6044) Adds `aesop_cat?` `aesop_graph?` and `restrict_tac?` ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Category/Basic.lean Modified Mathlib/Combinatorics/SimpleGraph/Basic.lean Modified Mathlib/Topology/Sheaves/Presheaf.lean 2023-07-21 22:53:46 46f71c6 chore(Data/Option): add 3 missing lemmas and some `align`s (#6049) The lemmas were lost while porting. Also drop `Option.getD_coe` since it is the same as `Option.getD_some`. ESTIMATED CHANGES Modified Mathlib/Data/Option/Basic.lean + theorem Option.exists_mem_map + theorem Option.forall_mem_map - theorem Option.getD_coe + theorem Option.mem_map Modified Mathlib/Data/Polynomial/Degree/TrailingDegree.lean Modified Mathlib/Init/Data/Option/Lemmas.lean 2023-07-21 22:32:28 ddecd77 doc: add yaml doc files to mathlib4_docs output (#6043) ESTIMATED CHANGES Modified scripts/deploy_docs.sh 2023-07-21 16:03:40 bd0c957 feat: port yaml files from mathlib3 (#6026) This was done with a locally-hacked version of `fix-comments.py`, then manually fixing the last 50 or so missing instance names. This includes CI that verifies the names are valid. ESTIMATED CHANGES Modified .github/workflows/bors.yml Modified .github/workflows/build.yml Modified .github/workflows/build.yml.in Modified .github/workflows/build_fork.yml Added docs/100.yaml Added docs/overview.yaml Added docs/undergrad.yaml Modified lakefile.lean Added scripts/checkYaml.lean + def databases + def processDb + def readJsonFile Added scripts/yaml_check.py 2023-07-21 15:43:35 986b4ab Add missing readmes (#6031) These are copied with minimal modification from mathlib3. ESTIMATED CHANGES Added Archive/Imo/README.md Added Archive/README.md Added Archive/Wiedijk100Theorems/README.md 2023-07-21 14:16:08 88fb181 feat(Topology.Constructions): restriction of a closed map (#6013) ESTIMATED CHANGES Modified Mathlib/Data/Set/Function.lean + theorem Set.MapsTo.restrict_commutes Modified Mathlib/Topology/Constructions.lean + theorem IsClosedMap.restrictPreimage Modified Mathlib/Topology/Maps.lean + theorem isClosedMap_iff_clusterPt 2023-07-21 14:16:07 ef85ff8 feat(Data/Finset): Add a few Finset lemmas (#5933) Adds four `Finset` lemmas: - `Nonempty.inl` and `Nonempty.inr` - unions with Nonempty sets are Nonempty - `sup'_mono` and `inf'_mono` - analogues of `sup_mono` and `inf_mono`. ESTIMATED CHANGES Modified Mathlib/Data/Finset/Basic.lean + theorem Finset.Nonempty.inl + theorem Finset.Nonempty.inr Modified Mathlib/Data/Finset/Lattice.lean + theorem Finset.inf'_mono + theorem Finset.sup'_mono 2023-07-21 14:16:06 1bbe6b2 feat(Analysis.Seminorm): some results about the order on seminorms (#5807) ESTIMATED CHANGES Modified Mathlib/Analysis/Seminorm.lean + theorem Seminorm.closedBall_iSup 2023-07-21 14:16:05 0b6307b refactor: add notation for `Dilation _ _`, extend API (#5753) - add notation `X →ᵈ Y` for `Dilation X Y`; - add `Dilation.ratio_of_trivial`, `Dilation.ratio_of_subsingleton`; - rename `Dilation.id_ratio` to `Dilation.ratio_id`; - rename `Dilation.comp_ratio` to `Dilation.ratio_comp'`, add `Dilation.ratio_comp` with TC assumptions instead of an explicit hypothesis; - add `Dilation.ratio_mul`, `Dilation.ratio_one`, `Dilation.ratioHom`, and `Dilation.ratio_pow`. ESTIMATED CHANGES Modified Mathlib/Topology/MetricSpace/Dilation.lean +/- theorem Dilation.cancel_left +/- theorem Dilation.cancel_right +/- theorem Dilation.coe_comp +/- theorem Dilation.coe_mk +/- theorem Dilation.coe_mul +/- theorem Dilation.coe_one +/- def Dilation.comp +/- theorem Dilation.comp_apply +/- theorem Dilation.comp_assoc +/- theorem Dilation.comp_id - theorem Dilation.comp_ratio +/- theorem Dilation.congr_arg +/- theorem Dilation.congr_fun +/- theorem Dilation.copy_eq_self +/- theorem Dilation.ext +/- theorem Dilation.ext_iff +/- theorem Dilation.id_comp - theorem Dilation.id_ratio +/- theorem Dilation.mk_coe +/- theorem Dilation.mk_coe_of_dist_eq +/- theorem Dilation.mk_coe_of_nndist_eq +/- theorem Dilation.mul_def +/- theorem Dilation.one_def + def Dilation.ratioHom + theorem Dilation.ratio_comp' + theorem Dilation.ratio_comp + theorem Dilation.ratio_id + theorem Dilation.ratio_mul + theorem Dilation.ratio_of_subsingleton + theorem Dilation.ratio_of_trivial + theorem Dilation.ratio_one + theorem Dilation.ratio_pow +/- theorem Dilation.toFun_eq_coe 2023-07-21 13:02:21 8fe2ce3 feat(LinearAlgebra.Finsupp): add countable instance (#5671) Add the instance: ```lean instance {ι : Type _} [Countable R] [Countable ι] (v : ι → M) : Countable (Submodule.span R (Set.range v)) ``` which is needed to be able to apply Minkowski theorem to ℤ-lattices. This instance, in turn, uses the new instance: ```lean instance [Countable α] [Countable M] : Countable (α →₀ M) ``` ESTIMATED CHANGES Modified Mathlib/Data/Finsupp/Basic.lean Modified Mathlib/LinearAlgebra/Finsupp.lean 2023-07-21 12:37:45 e11c53b feat: infinite (preconnected, locally finite) graphs have nonempty ends (#5916) Port/review of [mathlib#18410](https://github.com/leanprover-community/mathlib/pull/18410) directly to Mathlib4. ESTIMATED CHANGES Modified Mathlib/Combinatorics/SimpleGraph/Basic.lean + def SimpleGraph.induceUnivIso Modified Mathlib/Combinatorics/SimpleGraph/Ends/Defs.lean Modified Mathlib/Combinatorics/SimpleGraph/Ends/Properties.lean + theorem SimpleGraph.end_componentCompl_infinite + theorem SimpleGraph.nonempty_ends_of_infinite 2023-07-21 11:18:27 738e46a feat(MeasureTheory.Function.AEEqOfIntegral): characterize a locally integrable function by its integral on compact sets (#5876) We show that, if a locally integrable function has zero integral on all compact sets, then it vanishes almost everywhere. ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Function/AEEqOfIntegral.lean + theorem MeasureTheory.ae_eq_zero_of_forall_set_integral_isClosed_eq_zero + theorem MeasureTheory.ae_eq_zero_of_forall_set_integral_isCompact_eq_zero' + theorem MeasureTheory.ae_eq_zero_of_forall_set_integral_isCompact_eq_zero Modified Mathlib/MeasureTheory/Function/LocallyIntegrable.lean + theorem MeasureTheory.LocallyIntegrable.exists_nat_integrableOn + theorem MeasureTheory.LocallyIntegrableOn.exists_countable_integrableOn + theorem MeasureTheory.LocallyIntegrableOn.exists_nat_integrableOn Modified Mathlib/MeasureTheory/Integral/IntegrableOn.lean 2023-07-21 10:06:00 995893e feat: minimals/maximals API (#5911) This PR adds some API to `Data.Order.Minimal`, with a few rewrite lemmas for membership in sets of maximals/minimals, lemmas that give sufficient conditions for two sets having the same maximal/minimal elements, and a bunch of lemmas about images/preimages of sets of maximal elements. ESTIMATED CHANGES Modified Mathlib/Order/Minimal.lean + theorem RelEmbedding.inter_preimage_maximals_eq + theorem RelEmbedding.inter_preimage_maximals_eq_of_subset + theorem RelEmbedding.inter_preimage_minimals_eq + theorem RelEmbedding.inter_preimage_minimals_eq_of_subset + theorem RelEmbedding.maximals_image_eq + theorem RelEmbedding.maximals_preimage_eq + theorem RelEmbedding.minimals_image_eq + theorem RelEmbedding.minimals_preimage_eq + theorem inter_maximals_preimage_inter_eq_of_rel_iff_rel_on + theorem inter_minimals_preimage_inter_eq_of_rel_iff_rel_on + theorem inter_preimage_maximals_eq_of_rel_iff_rel_on_of_subset + theorem inter_preimage_minimals_eq_of_rel_iff_rel_on_of_subset + theorem maximals_Icc + theorem maximals_Iic + theorem maximals_Ioc + theorem maximals_eq_maximals_of_subset_of_forall + theorem maximals_image_of_rel_iff_rel_on + theorem mem_maximals_iff + theorem mem_maximals_iff_forall_lt_not_mem' + theorem mem_maximals_iff_forall_lt_not_mem + theorem mem_maximals_iff_forall_ssubset_not_mem + theorem mem_maximals_setOf_iff + theorem mem_minimals_iff + theorem mem_minimals_iff_forall_lt_not_mem' + theorem mem_minimals_iff_forall_lt_not_mem + theorem mem_minimals_iff_forall_ssubset_not_mem + theorem mem_minimals_setOf_iff + theorem minimals_Icc + theorem minimals_Ici + theorem minimals_Ico + theorem minimals_eq_minimals_of_subset_of_forall + theorem minimals_image_of_rel_iff_rel 2023-07-21 08:49:58 aa43be2 feat: add some missing simp lemmas (#6028) ESTIMATED CHANGES Modified Mathlib/Logic/Equiv/LocalEquiv.lean Modified Mathlib/Topology/Algebra/ConstMulAction.lean + theorem Homeomorph.smulOfNeZero_symm_apply Modified Mathlib/Topology/Homeomorph.lean + theorem Homeomorph.symm_trans_apply Modified Mathlib/Topology/LocalHomeomorph.lean 2023-07-21 08:49:57 33e6609 feat(Data/Fin/VecNotation): add Matrix.cons_val_two (#5950) ESTIMATED CHANGES Modified Mathlib/Data/Fin/VecNotation.lean +/- theorem Matrix.cons_val_one + theorem Matrix.cons_val_two Modified Mathlib/LinearAlgebra/CrossProduct.lean 2023-07-21 08:19:24 6c73d07 fix: MvPolynomial.Derivation module docstring (#6025) ESTIMATED CHANGES Modified Mathlib/Data/MvPolynomial/Derivation.lean 2023-07-21 06:53:16 160cfb8 doc: fix grammar (#6027) ESTIMATED CHANGES Modified Mathlib/Data/FunLike/Equiv.lean 2023-07-21 04:29:10 af306e0 feat: basic measure / topology lemmas (#5986) ESTIMATED CHANGES Modified Mathlib/Data/Set/Basic.lean + theorem Set.nonempty_compl_of_nontrivial Modified Mathlib/MeasureTheory/Measure/OpenPos.lean + theorem MeasureTheory.Measure.measure_ne_zero + theorem Metric.measure_closedBall_pos_iff Modified Mathlib/Topology/Separation.lean 2023-07-21 01:04:00 50ec11d chore: don't mark names starting with eq as internal (#6036) This was preventing tactics from finding some user lemmas, see https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/library_search.20fails.20to.20find.20theorem/near/377013391 for discussion. Since https://github.com/leanprover/lean4/commit/4d1343d67005749367a08d2964a1dfb0bf09d3dd these are prefixed with an underscore by lean. ESTIMATED CHANGES Modified Mathlib/Lean/Expr/Basic.lean 2023-07-20 12:44:08 a1451be feat(NumberTheory/Padics/PadicVal): lemmas with factorial (#5789) ESTIMATED CHANGES Modified Mathlib/NumberTheory/Padics/PadicVal.lean + theorem padicValNat_eq_zero_of_mem_Ioo +/- theorem padicValNat_factorial_mul + theorem padicValNat_factorial_mul_add + theorem padicValNat_mul_div_factorial 2023-07-20 08:16:45 cf06ef7 feat: left and right homology data are dual notions (#5674) This PR shows that left and right homology data of short complexes are dual notions. ESTIMATED CHANGES Modified Mathlib/Algebra/Homology/ShortComplex/RightHomology.lean + def CategoryTheory.ShortComplex.LeftHomologyData.op + theorem CategoryTheory.ShortComplex.LeftHomologyData.op_g' + def CategoryTheory.ShortComplex.LeftHomologyData.unop + theorem CategoryTheory.ShortComplex.LeftHomologyData.unop_g' + def CategoryTheory.ShortComplex.RightHomologyData.op + theorem CategoryTheory.ShortComplex.RightHomologyData.op_f' + def CategoryTheory.ShortComplex.RightHomologyData.unop + theorem CategoryTheory.ShortComplex.RightHomologyData.unop_f' + def CategoryTheory.ShortComplex.RightHomologyMapData.comp + theorem CategoryTheory.ShortComplex.RightHomologyMapData.congr_φH + theorem CategoryTheory.ShortComplex.RightHomologyMapData.congr_φQ + def CategoryTheory.ShortComplex.RightHomologyMapData.id + def CategoryTheory.ShortComplex.RightHomologyMapData.zero + structure CategoryTheory.ShortComplex.RightHomologyMapData + theorem CategoryTheory.ShortComplex.hasLeftHomology_iff_op + theorem CategoryTheory.ShortComplex.hasLeftHomology_iff_unop + theorem CategoryTheory.ShortComplex.hasRightHomology_iff_op + theorem CategoryTheory.ShortComplex.hasRightHomology_iff_unop Modified Mathlib/CategoryTheory/Limits/Opposites.lean + def CategoryTheory.Limits.CokernelCofork.IsColimit.ofπOp + def CategoryTheory.Limits.CokernelCofork.IsColimit.ofπUnop + def CategoryTheory.Limits.KernelFork.IsLimit.ofιOp + def CategoryTheory.Limits.KernelFork.IsLimit.ofιUnop Modified Mathlib/CategoryTheory/Limits/Shapes/ZeroMorphisms.lean + theorem CategoryTheory.Limits.op_zero + theorem CategoryTheory.Limits.unop_zero Modified Mathlib/CategoryTheory/Preadditive/Opposite.lean - theorem CategoryTheory.op_zero - theorem CategoryTheory.unop_zero 2023-07-20 06:11:01 02f7496 chore: `gcongr` attributes for sup/inf, min/max, union/intersection/complement, image/preimage (#6016) ESTIMATED CHANGES Modified Mathlib/Data/Set/Basic.lean + theorem Set.compl_subset_compl_of_subset Modified Mathlib/Data/Set/Image.lean Modified Mathlib/Data/Set/Lattice.lean + theorem Set.iInter_mono'' + theorem Set.iUnion_mono'' - theorem Set.sUnion_mono Modified Mathlib/Order/CompleteLattice.lean Modified Mathlib/Order/Heyting/Basic.lean Modified Mathlib/Order/Lattice.lean Modified Mathlib/Order/MinMax.lean + theorem max_le_max_left + theorem max_le_max_right + theorem min_le_min_left + theorem min_le_min_right 2023-07-20 06:11:00 852259c chore: fix docstring (#6012) ESTIMATED CHANGES Modified Mathlib/Data/Set/Finite.lean 2023-07-20 05:23:21 5070d54 chore: fix a name (#6015) Rename `LocalHomeomorph.trans_equiv_eq_trans` to `LocalHomeomorph.transHomeomorph_eq_trans`. Also fix the module docstring. ESTIMATED CHANGES Modified Mathlib/Topology/LocalHomeomorph.lean + theorem LocalHomeomorph.transHomeomorph_eq_trans - theorem LocalHomeomorph.trans_equiv_eq_trans 2023-07-20 01:29:39 11832fa feat: removeNe preprocessor for splitting on inequalities in linarith (#6014) ESTIMATED CHANGES Modified Mathlib/Tactic/Linarith/Datatypes.lean Modified Mathlib/Tactic/Linarith/Frontend.lean Modified Mathlib/Tactic/Linarith/Preprocessing.lean + def Linarith.removeNe Modified test/linarith.lean 2023-07-20 00:27:41 876c8e0 chore: golf `set_theory/ordinal/basic` (#5581) ESTIMATED CHANGES Modified Mathlib/Order/InitialSeg.lean + theorem PrincipalSeg.apply_subrelIso + theorem PrincipalSeg.subrelIso_apply Modified Mathlib/SetTheory/Ordinal/Basic.lean +/- def Ordinal.enum +/- def Ordinal.enumIso 2023-07-19 19:29:05 3f8ba08 feat: add lemmas about natDegree (#5735) Adds two lemmas about Polynomial.natDegree ESTIMATED CHANGES Modified Mathlib/Data/Polynomial/Degree/Definitions.lean + theorem Polynomial.eq_C_coeff_zero_iff_natDegree_eq_zero + theorem Polynomial.natDegree_C_add + theorem Polynomial.natDegree_add_C +/- theorem Polynomial.natDegree_linear 2023-07-19 18:49:42 e121b52 feat(NumberTheory/ArithmeticFunction): define pointwise division of arithmetic functions (#5774) Define pointwise division of arithmetic functions and prove it preserves multiplicativity. ESTIMATED CHANGES Modified Mathlib/NumberTheory/ArithmeticFunction.lean + theorem Nat.ArithmeticFunction.IsMultiplicative.pdiv + def Nat.ArithmeticFunction.pdiv + theorem Nat.ArithmeticFunction.pdiv_apply + theorem Nat.ArithmeticFunction.pdiv_zeta 2023-07-19 16:53:21 752865f chore: add 2 `#align_import`s (#6003) - `Mathlib/Analysis/Calculus/BumpFunction/Convolution.lean` was extracted from `Mathlib/Analysis/Convolution.lean` in #5940 - `Mathlib/Geometry/Euclidean/PerpBisector.lean` has lemmas moved from `Mathlib/Geometry/Euclidean/Basic.lean` in #5627 ESTIMATED CHANGES Modified Mathlib/Analysis/Calculus/BumpFunction/Convolution.lean Modified Mathlib/Geometry/Euclidean/PerpBisector.lean 2023-07-19 15:38:07 eb706c1 doc: add missing word (#6006) ESTIMATED CHANGES Modified Mathlib/SetTheory/Cardinal/Basic.lean 2023-07-19 14:22:07 05eae2d feat(NumberTheory/Padics/PadicVal): padicValNat_factorial (#5802) ESTIMATED CHANGES Modified Mathlib/Data/Nat/Multiplicity.lean Modified Mathlib/NumberTheory/Padics/PadicVal.lean + theorem padicValNat_factorial 2023-07-19 12:59:07 91db558 fix: parse new headers for the outofsync bot (#6000) ESTIMATED CHANGES Modified scripts/detect_sha_changes.py 2023-07-19 11:59:40 4eb7e84 feat(NumberTheory/Padics/PadicVal): factorial_choose (#5862) ESTIMATED CHANGES Modified Mathlib/Data/Nat/Multiplicity.lean Modified Mathlib/NumberTheory/Padics/PadicVal.lean + theorem padicValNat_choose 2023-07-19 11:17:59 293041f feat: add card_units_add_one lemma (#5738) A lemma to reexpress card_units without subtraction. ESTIMATED CHANGES Modified Mathlib/Data/Fintype/Units.lean + theorem Fintype.card_eq_card_units_add_one +/- theorem Fintype.card_units + theorem Nat.card_eq_card_units_add_one Modified Mathlib/FieldTheory/Finite/Basic.lean +/- theorem FiniteField.sum_pow_units 2023-07-19 08:39:03 5dcd1aa chore: remove unneeded unsafe modifiers in ListM (#5989) These were left over from the era when `ListM` was `unsafe`. ESTIMATED CHANGES Modified Mathlib/Data/ListM/BestFirst.lean + def bestFirstSearch + def bestFirstSearchAux Modified Mathlib/Data/ListM/DepthFirst.lean + def depthFirstRemovingDuplicates 2023-07-19 08:39:02 89aa3a3 chore: script to replace headers with #align_import statements (#5979) - [x] depends on: #5966 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) ESTIMATED CHANGES Modified Archive/Arithcc.lean Modified Archive/Examples/MersennePrimes.lean Modified Archive/Examples/PropEncodable.lean Modified Archive/Imo/Imo1959Q1.lean Modified Archive/Imo/Imo1960Q1.lean Modified Archive/Imo/Imo1962Q1.lean Modified Archive/Imo/Imo1962Q4.lean Modified Archive/Imo/Imo1964Q1.lean Modified Archive/Imo/Imo1969Q1.lean Modified Archive/Imo/Imo1972Q5.lean Modified Archive/Imo/Imo1975Q1.lean Modified Archive/Imo/Imo1977Q6.lean Modified Archive/Imo/Imo1981Q3.lean Modified Archive/Imo/Imo1987Q1.lean Modified Archive/Imo/Imo1988Q6.lean Modified Archive/Imo/Imo1994Q1.lean Modified Archive/Imo/Imo1998Q2.lean Modified Archive/Imo/Imo2001Q2.lean Modified Archive/Imo/Imo2001Q6.lean Modified Archive/Imo/Imo2005Q3.lean Modified Archive/Imo/Imo2005Q4.lean Modified Archive/Imo/Imo2006Q3.lean Modified Archive/Imo/Imo2006Q5.lean Modified Archive/Imo/Imo2008Q2.lean Modified Archive/Imo/Imo2008Q3.lean Modified Archive/Imo/Imo2008Q4.lean Modified Archive/Imo/Imo2011Q3.lean Modified Archive/Imo/Imo2011Q5.lean Modified Archive/Imo/Imo2013Q1.lean Modified Archive/Imo/Imo2013Q5.lean Modified Archive/Imo/Imo2019Q1.lean Modified Archive/Imo/Imo2019Q2.lean Modified Archive/Imo/Imo2019Q4.lean Modified Archive/Imo/Imo2020Q2.lean Modified Archive/Imo/Imo2021Q1.lean Modified Archive/MiuLanguage/Basic.lean Modified Archive/MiuLanguage/DecisionNec.lean Modified Archive/MiuLanguage/DecisionSuf.lean Modified Archive/OxfordInvariants/Summer2021/Week3P1.lean Modified Archive/Sensitivity.lean Modified Archive/Wiedijk100Theorems/AbelRuffini.lean Modified Archive/Wiedijk100Theorems/AreaOfACircle.lean Modified Archive/Wiedijk100Theorems/AscendingDescendingSequences.lean Modified Archive/Wiedijk100Theorems/BallotProblem.lean Modified Archive/Wiedijk100Theorems/BirthdayProblem.lean Modified Archive/Wiedijk100Theorems/CubingACube.lean Modified Archive/Wiedijk100Theorems/FriendshipGraphs.lean Modified Archive/Wiedijk100Theorems/HeronsFormula.lean Modified Archive/Wiedijk100Theorems/InverseTriangleSum.lean Modified Archive/Wiedijk100Theorems/Konigsberg.lean Modified Archive/Wiedijk100Theorems/Partition.lean Modified Archive/Wiedijk100Theorems/PerfectNumbers.lean Modified Archive/Wiedijk100Theorems/SolutionOfCubic.lean Modified Archive/Wiedijk100Theorems/SumOfPrimeReciprocalsDiverges.lean Modified Counterexamples/CanonicallyOrderedCommSemiringTwoMul.lean Modified Counterexamples/CharPZeroNeCharZero.lean Modified Counterexamples/Cyclotomic105.lean Modified Counterexamples/DirectSumIsInternal.lean Modified Counterexamples/Girard.lean Modified Counterexamples/HomogeneousPrimeNotPrime.lean Modified Counterexamples/LinearOrderWithPosMulPosEqZero.lean Modified Counterexamples/MapFloor.lean Modified Counterexamples/Phillips.lean Modified Counterexamples/Pseudoelement.lean Modified Counterexamples/QuadraticForm.lean Modified Counterexamples/SeminormLatticeNotDistrib.lean Modified Counterexamples/SorgenfreyLine.lean Modified Counterexamples/ZeroDivisorsInAddMonoidAlgebras.lean Modified Mathlib/Algebra/Abs.lean Modified Mathlib/Algebra/AddTorsor.lean Modified Mathlib/Algebra/Algebra/Basic.lean Modified Mathlib/Algebra/Algebra/Bilinear.lean Modified Mathlib/Algebra/Algebra/Equiv.lean Modified Mathlib/Algebra/Algebra/Hom.lean Modified Mathlib/Algebra/Algebra/Operations.lean Modified Mathlib/Algebra/Algebra/Pi.lean Modified Mathlib/Algebra/Algebra/Prod.lean Modified Mathlib/Algebra/Algebra/RestrictScalars.lean Modified Mathlib/Algebra/Algebra/Spectrum.lean Modified Mathlib/Algebra/Algebra/Subalgebra/Basic.lean Modified Mathlib/Algebra/Algebra/Subalgebra/Pointwise.lean Modified Mathlib/Algebra/Algebra/Subalgebra/Tower.lean Modified Mathlib/Algebra/Algebra/Tower.lean Modified Mathlib/Algebra/Algebra/Unitization.lean Modified Mathlib/Algebra/AlgebraicCard.lean Modified Mathlib/Algebra/Associated.lean Modified Mathlib/Algebra/BigOperators/Associated.lean Modified Mathlib/Algebra/BigOperators/Basic.lean Modified Mathlib/Algebra/BigOperators/Fin.lean Modified Mathlib/Algebra/BigOperators/Finprod.lean Modified Mathlib/Algebra/BigOperators/Finsupp.lean Modified Mathlib/Algebra/BigOperators/Intervals.lean Modified Mathlib/Algebra/BigOperators/Multiset/Basic.lean Modified Mathlib/Algebra/BigOperators/Multiset/Lemmas.lean Modified Mathlib/Algebra/BigOperators/NatAntidiagonal.lean Modified Mathlib/Algebra/BigOperators/Option.lean Modified Mathlib/Algebra/BigOperators/Order.lean Modified Mathlib/Algebra/BigOperators/Pi.lean Modified Mathlib/Algebra/BigOperators/Ring.lean Modified Mathlib/Algebra/BigOperators/RingEquiv.lean Modified Mathlib/Algebra/Bounds.lean Modified Mathlib/Algebra/Category/AlgebraCat/Basic.lean Modified Mathlib/Algebra/Category/AlgebraCat/Limits.lean Modified Mathlib/Algebra/Category/BoolRingCat.lean Modified Mathlib/Algebra/Category/FGModuleCat/Basic.lean Modified Mathlib/Algebra/Category/FGModuleCat/Limits.lean Modified Mathlib/Algebra/Category/GroupCat/Abelian.lean Modified Mathlib/Algebra/Category/GroupCat/Adjunctions.lean Modified Mathlib/Algebra/Category/GroupCat/Basic.lean Modified Mathlib/Algebra/Category/GroupCat/Biproducts.lean Modified Mathlib/Algebra/Category/GroupCat/Colimits.lean Modified Mathlib/Algebra/Category/GroupCat/EpiMono.lean Modified Mathlib/Algebra/Category/GroupCat/EquivalenceGroupAddGroup.lean Modified Mathlib/Algebra/Category/GroupCat/FilteredColimits.lean Modified Mathlib/Algebra/Category/GroupCat/Images.lean Modified Mathlib/Algebra/Category/GroupCat/Injective.lean Modified Mathlib/Algebra/Category/GroupCat/Limits.lean Modified Mathlib/Algebra/Category/GroupCat/Preadditive.lean Modified Mathlib/Algebra/Category/GroupCat/Subobject.lean Modified Mathlib/Algebra/Category/GroupCat/ZModuleEquivalence.lean Modified Mathlib/Algebra/Category/GroupCat/Zero.lean Modified Mathlib/Algebra/Category/GroupWithZeroCat.lean Modified Mathlib/Algebra/Category/ModuleCat/Abelian.lean Modified Mathlib/Algebra/Category/ModuleCat/Adjunctions.lean Modified Mathlib/Algebra/Category/ModuleCat/Algebra.lean Modified Mathlib/Algebra/Category/ModuleCat/Basic.lean Modified Mathlib/Algebra/Category/ModuleCat/Biproducts.lean Modified Mathlib/Algebra/Category/ModuleCat/ChangeOfRings.lean Modified Mathlib/Algebra/Category/ModuleCat/Colimits.lean Modified Mathlib/Algebra/Category/ModuleCat/EpiMono.lean Modified Mathlib/Algebra/Category/ModuleCat/FilteredColimits.lean Modified Mathlib/Algebra/Category/ModuleCat/Images.lean Modified Mathlib/Algebra/Category/ModuleCat/Kernels.lean Modified Mathlib/Algebra/Category/ModuleCat/Limits.lean Modified Mathlib/Algebra/Category/ModuleCat/Monoidal/Basic.lean Modified Mathlib/Algebra/Category/ModuleCat/Monoidal/Closed.lean Modified Mathlib/Algebra/Category/ModuleCat/Monoidal/Symmetric.lean Modified Mathlib/Algebra/Category/ModuleCat/Products.lean Modified Mathlib/Algebra/Category/ModuleCat/Projective.lean Modified Mathlib/Algebra/Category/ModuleCat/Simple.lean Modified Mathlib/Algebra/Category/ModuleCat/Subobject.lean Modified Mathlib/Algebra/Category/ModuleCat/Tannaka.lean Modified Mathlib/Algebra/Category/MonCat/Adjunctions.lean Modified Mathlib/Algebra/Category/MonCat/Basic.lean Modified Mathlib/Algebra/Category/MonCat/Colimits.lean Modified Mathlib/Algebra/Category/MonCat/FilteredColimits.lean Modified Mathlib/Algebra/Category/MonCat/Limits.lean Modified Mathlib/Algebra/Category/Ring/Adjunctions.lean Modified Mathlib/Algebra/Category/Ring/Basic.lean Modified Mathlib/Algebra/Category/Ring/Colimits.lean Modified Mathlib/Algebra/Category/Ring/Constructions.lean Modified Mathlib/Algebra/Category/Ring/FilteredColimits.lean Modified Mathlib/Algebra/Category/Ring/Instances.lean Modified Mathlib/Algebra/Category/Ring/Limits.lean Modified Mathlib/Algebra/Category/SemigroupCat/Basic.lean Modified Mathlib/Algebra/CharP/Algebra.lean Modified Mathlib/Algebra/CharP/Basic.lean Modified Mathlib/Algebra/CharP/CharAndCard.lean Modified Mathlib/Algebra/CharP/ExpChar.lean Modified Mathlib/Algebra/CharP/Invertible.lean Modified Mathlib/Algebra/CharP/LocalRing.lean Modified Mathlib/Algebra/CharP/MixedCharZero.lean Modified Mathlib/Algebra/CharP/Pi.lean Modified Mathlib/Algebra/CharP/Quotient.lean Modified Mathlib/Algebra/CharP/Subring.lean Modified Mathlib/Algebra/CharP/Two.lean Modified Mathlib/Algebra/CharZero/Defs.lean Modified Mathlib/Algebra/CharZero/Infinite.lean Modified Mathlib/Algebra/CharZero/Lemmas.lean Modified Mathlib/Algebra/CharZero/Quotient.lean Modified Mathlib/Algebra/ContinuedFractions/Basic.lean Modified Mathlib/Algebra/ContinuedFractions/Computation/ApproximationCorollaries.lean Modified Mathlib/Algebra/ContinuedFractions/Computation/Approximations.lean Modified Mathlib/Algebra/ContinuedFractions/Computation/Basic.lean Modified Mathlib/Algebra/ContinuedFractions/Computation/CorrectnessTerminating.lean Modified Mathlib/Algebra/ContinuedFractions/Computation/TerminatesIffRat.lean Modified Mathlib/Algebra/ContinuedFractions/Computation/Translations.lean Modified Mathlib/Algebra/ContinuedFractions/ContinuantsRecurrence.lean Modified Mathlib/Algebra/ContinuedFractions/ConvergentsEquiv.lean Modified Mathlib/Algebra/ContinuedFractions/TerminatedStable.lean Modified Mathlib/Algebra/ContinuedFractions/Translations.lean Modified Mathlib/Algebra/CovariantAndContravariant.lean Modified Mathlib/Algebra/CubicDiscriminant.lean Modified Mathlib/Algebra/DirectLimit.lean Modified Mathlib/Algebra/DirectSum/Algebra.lean Modified Mathlib/Algebra/DirectSum/Basic.lean Modified Mathlib/Algebra/DirectSum/Decomposition.lean Modified Mathlib/Algebra/DirectSum/Finsupp.lean Modified Mathlib/Algebra/DirectSum/Internal.lean Modified Mathlib/Algebra/DirectSum/Module.lean Modified Mathlib/Algebra/DirectSum/Ring.lean Modified Mathlib/Algebra/Divisibility/Basic.lean Modified Mathlib/Algebra/Divisibility/Units.lean Modified Mathlib/Algebra/DualNumber.lean Modified Mathlib/Algebra/DualQuaternion.lean Modified Mathlib/Algebra/EuclideanDomain/Basic.lean Modified Mathlib/Algebra/EuclideanDomain/Defs.lean Modified Mathlib/Algebra/EuclideanDomain/Instances.lean Modified Mathlib/Algebra/Expr.lean Modified Mathlib/Algebra/Field/Basic.lean Modified Mathlib/Algebra/Field/Defs.lean Modified Mathlib/Algebra/Field/Opposite.lean Modified Mathlib/Algebra/Field/Power.lean Modified Mathlib/Algebra/Field/ULift.lean Modified Mathlib/Algebra/Free.lean Modified Mathlib/Algebra/FreeAlgebra.lean Modified Mathlib/Algebra/FreeMonoid/Basic.lean Modified Mathlib/Algebra/FreeMonoid/Count.lean Modified Mathlib/Algebra/FreeNonUnitalNonAssocAlgebra.lean Modified Mathlib/Algebra/GCDMonoid/Basic.lean Modified Mathlib/Algebra/GCDMonoid/Div.lean Modified Mathlib/Algebra/GCDMonoid/Finset.lean Modified Mathlib/Algebra/GCDMonoid/IntegrallyClosed.lean Modified Mathlib/Algebra/GCDMonoid/Multiset.lean Modified Mathlib/Algebra/GeomSum.lean Modified Mathlib/Algebra/GradedMonoid.lean Modified Mathlib/Algebra/GradedMulAction.lean Modified Mathlib/Algebra/Group/Basic.lean Modified Mathlib/Algebra/Group/Commutator.lean Modified Mathlib/Algebra/Group/Commute.lean Modified Mathlib/Algebra/Group/Conj.lean Modified Mathlib/Algebra/Group/ConjFinite.lean Modified Mathlib/Algebra/Group/Defs.lean Modified Mathlib/Algebra/Group/Ext.lean Modified Mathlib/Algebra/Group/InjSurj.lean Modified Mathlib/Algebra/Group/Opposite.lean Modified Mathlib/Algebra/Group/OrderSynonym.lean Modified Mathlib/Algebra/Group/Pi.lean Modified Mathlib/Algebra/Group/Prod.lean Modified Mathlib/Algebra/Group/Semiconj.lean Modified Mathlib/Algebra/Group/TypeTags.lean Modified Mathlib/Algebra/Group/ULift.lean Modified Mathlib/Algebra/Group/UniqueProds.lean Modified Mathlib/Algebra/Group/Units.lean Modified Mathlib/Algebra/Group/WithOne/Basic.lean Modified Mathlib/Algebra/Group/WithOne/Defs.lean Modified Mathlib/Algebra/Group/WithOne/Units.lean Modified Mathlib/Algebra/GroupPower/Basic.lean Modified Mathlib/Algebra/GroupPower/Identities.lean Modified Mathlib/Algebra/GroupPower/Lemmas.lean Modified Mathlib/Algebra/GroupPower/Order.lean Modified Mathlib/Algebra/GroupPower/Ring.lean Modified Mathlib/Algebra/GroupRingAction/Basic.lean Modified Mathlib/Algebra/GroupRingAction/Invariant.lean Modified Mathlib/Algebra/GroupRingAction/Subobjects.lean Modified Mathlib/Algebra/GroupWithZero/Basic.lean Modified Mathlib/Algebra/GroupWithZero/Commute.lean Modified Mathlib/Algebra/GroupWithZero/Defs.lean Modified Mathlib/Algebra/GroupWithZero/Divisibility.lean Modified Mathlib/Algebra/GroupWithZero/InjSurj.lean Modified Mathlib/Algebra/GroupWithZero/Power.lean Modified Mathlib/Algebra/GroupWithZero/Semiconj.lean Modified Mathlib/Algebra/GroupWithZero/Units/Basic.lean Modified Mathlib/Algebra/GroupWithZero/Units/Lemmas.lean Modified Mathlib/Algebra/HierarchyDesign.lean Modified Mathlib/Algebra/Hom/Aut.lean Modified Mathlib/Algebra/Hom/Centroid.lean Modified Mathlib/Algebra/Hom/Commute.lean Modified Mathlib/Algebra/Hom/Embedding.lean Modified Mathlib/Algebra/Hom/Equiv/Basic.lean Modified Mathlib/Algebra/Hom/Equiv/TypeTags.lean Modified Mathlib/Algebra/Hom/Equiv/Units/Basic.lean Modified Mathlib/Algebra/Hom/Equiv/Units/GroupWithZero.lean Modified Mathlib/Algebra/Hom/Freiman.lean Modified Mathlib/Algebra/Hom/Group.lean Modified Mathlib/Algebra/Hom/GroupAction.lean Modified Mathlib/Algebra/Hom/GroupInstances.lean Modified Mathlib/Algebra/Hom/Iterate.lean Modified Mathlib/Algebra/Hom/NonUnitalAlg.lean Modified Mathlib/Algebra/Hom/Ring.lean Modified Mathlib/Algebra/Hom/Units.lean Modified Mathlib/Algebra/Homology/Additive.lean Modified Mathlib/Algebra/Homology/Augment.lean Modified Mathlib/Algebra/Homology/ComplexShape.lean Modified Mathlib/Algebra/Homology/DifferentialObject.lean Modified Mathlib/Algebra/Homology/Exact.lean Modified Mathlib/Algebra/Homology/Flip.lean Modified Mathlib/Algebra/Homology/Functor.lean Modified Mathlib/Algebra/Homology/HomologicalComplex.lean Modified Mathlib/Algebra/Homology/Homology.lean Modified Mathlib/Algebra/Homology/Homotopy.lean Modified Mathlib/Algebra/Homology/HomotopyCategory.lean Modified Mathlib/Algebra/Homology/ImageToKernel.lean Modified Mathlib/Algebra/Homology/LocalCohomology.lean Modified Mathlib/Algebra/Homology/ModuleCat.lean Modified Mathlib/Algebra/Homology/Opposite.lean Modified Mathlib/Algebra/Homology/QuasiIso.lean Modified Mathlib/Algebra/Homology/ShortExact/Abelian.lean Modified Mathlib/Algebra/Homology/ShortExact/Preadditive.lean Modified Mathlib/Algebra/Homology/Single.lean Modified Mathlib/Algebra/IndicatorFunction.lean Modified Mathlib/Algebra/Invertible.lean Modified Mathlib/Algebra/IsPrimePow.lean Modified Mathlib/Algebra/Jordan/Basic.lean Modified Mathlib/Algebra/Lie/Abelian.lean Modified Mathlib/Algebra/Lie/BaseChange.lean Modified Mathlib/Algebra/Lie/Basic.lean Modified Mathlib/Algebra/Lie/CartanMatrix.lean Modified Mathlib/Algebra/Lie/CartanSubalgebra.lean Modified Mathlib/Algebra/Lie/Character.lean Modified Mathlib/Algebra/Lie/Classical.lean Modified Mathlib/Algebra/Lie/DirectSum.lean Modified Mathlib/Algebra/Lie/Engel.lean Modified Mathlib/Algebra/Lie/Free.lean Modified Mathlib/Algebra/Lie/IdealOperations.lean Modified Mathlib/Algebra/Lie/Matrix.lean Modified Mathlib/Algebra/Lie/Nilpotent.lean Modified Mathlib/Algebra/Lie/NonUnitalNonAssocAlgebra.lean Modified Mathlib/Algebra/Lie/Normalizer.lean Modified Mathlib/Algebra/Lie/OfAssociative.lean Modified Mathlib/Algebra/Lie/Quotient.lean Modified Mathlib/Algebra/Lie/Semisimple.lean Modified Mathlib/Algebra/Lie/SkewAdjoint.lean Modified Mathlib/Algebra/Lie/Solvable.lean Modified Mathlib/Algebra/Lie/Subalgebra.lean Modified Mathlib/Algebra/Lie/Submodule.lean Modified Mathlib/Algebra/Lie/TensorProduct.lean Modified Mathlib/Algebra/Lie/UniversalEnveloping.lean Modified Mathlib/Algebra/Lie/Weights.lean Modified Mathlib/Algebra/LinearRecurrence.lean Modified Mathlib/Algebra/ModEq.lean Modified Mathlib/Algebra/Module/Algebra.lean Modified Mathlib/Algebra/Module/Basic.lean Modified Mathlib/Algebra/Module/BigOperators.lean Modified Mathlib/Algebra/Module/Bimodule.lean Modified Mathlib/Algebra/Module/DedekindDomain.lean Modified Mathlib/Algebra/Module/Equiv.lean Modified Mathlib/Algebra/Module/GradedModule.lean Modified Mathlib/Algebra/Module/Hom.lean Modified Mathlib/Algebra/Module/Injective.lean Modified Mathlib/Algebra/Module/LinearMap.lean Modified Mathlib/Algebra/Module/LocalizedModule.lean Modified Mathlib/Algebra/Module/Opposites.lean Modified Mathlib/Algebra/Module/PID.lean Modified Mathlib/Algebra/Module/Pi.lean Modified Mathlib/Algebra/Module/PointwisePi.lean Modified Mathlib/Algebra/Module/Prod.lean Modified Mathlib/Algebra/Module/Projective.lean Modified Mathlib/Algebra/Module/Submodule/Basic.lean Modified Mathlib/Algebra/Module/Submodule/Bilinear.lean Modified Mathlib/Algebra/Module/Submodule/Lattice.lean Modified Mathlib/Algebra/Module/Submodule/Pointwise.lean Modified Mathlib/Algebra/Module/Torsion.lean Modified Mathlib/Algebra/Module/ULift.lean Modified Mathlib/Algebra/Module/Zlattice.lean Modified Mathlib/Algebra/MonoidAlgebra/Basic.lean Modified Mathlib/Algebra/MonoidAlgebra/Degree.lean Modified Mathlib/Algebra/MonoidAlgebra/Division.lean Modified Mathlib/Algebra/MonoidAlgebra/Grading.lean Modified Mathlib/Algebra/MonoidAlgebra/Ideal.lean Modified Mathlib/Algebra/MonoidAlgebra/NoZeroDivisors.lean Modified Mathlib/Algebra/MonoidAlgebra/Support.lean Modified Mathlib/Algebra/MonoidAlgebra/ToDirectSum.lean Modified Mathlib/Algebra/NeZero.lean Modified Mathlib/Algebra/Opposites.lean Modified Mathlib/Algebra/Order/AbsoluteValue.lean Modified Mathlib/Algebra/Order/Algebra.lean Modified Mathlib/Algebra/Order/Archimedean.lean Modified Mathlib/Algebra/Order/Chebyshev.lean Modified Mathlib/Algebra/Order/CompleteField.lean Modified Mathlib/Algebra/Order/EuclideanAbsoluteValue.lean Modified Mathlib/Algebra/Order/Field/Basic.lean Modified Mathlib/Algebra/Order/Field/Canonical/Basic.lean Modified Mathlib/Algebra/Order/Field/Canonical/Defs.lean Modified Mathlib/Algebra/Order/Field/Defs.lean Modified Mathlib/Algebra/Order/Field/InjSurj.lean Modified Mathlib/Algebra/Order/Field/Pi.lean Modified Mathlib/Algebra/Order/Field/Power.lean Modified Mathlib/Algebra/Order/Floor.lean Modified Mathlib/Algebra/Order/Group/Abs.lean Modified Mathlib/Algebra/Order/Group/Bounds.lean Modified Mathlib/Algebra/Order/Group/Defs.lean Modified Mathlib/Algebra/Order/Group/DenselyOrdered.lean Modified Mathlib/Algebra/Order/Group/InjSurj.lean Modified Mathlib/Algebra/Order/Group/Instances.lean Modified Mathlib/Algebra/Order/Group/MinMax.lean Modified Mathlib/Algebra/Order/Group/OrderIso.lean Modified Mathlib/Algebra/Order/Group/Prod.lean Modified Mathlib/Algebra/Order/Group/TypeTags.lean Modified Mathlib/Algebra/Order/Group/Units.lean Modified Mathlib/Algebra/Order/Group/WithTop.lean Modified Mathlib/Algebra/Order/Hom/Basic.lean Modified Mathlib/Algebra/Order/Hom/Monoid.lean Modified Mathlib/Algebra/Order/Hom/Ring.lean Modified Mathlib/Algebra/Order/Interval.lean Modified Mathlib/Algebra/Order/Invertible.lean Modified Mathlib/Algebra/Order/Kleene.lean Modified Mathlib/Algebra/Order/LatticeGroup.lean Modified Mathlib/Algebra/Order/Module.lean Modified Mathlib/Algebra/Order/Monoid/Basic.lean Modified Mathlib/Algebra/Order/Monoid/Cancel/Basic.lean Modified Mathlib/Algebra/Order/Monoid/Cancel/Defs.lean Modified Mathlib/Algebra/Order/Monoid/Canonical/Defs.lean Modified Mathlib/Algebra/Order/Monoid/Defs.lean Modified Mathlib/Algebra/Order/Monoid/Lemmas.lean Modified Mathlib/Algebra/Order/Monoid/MinMax.lean Modified Mathlib/Algebra/Order/Monoid/NatCast.lean Modified Mathlib/Algebra/Order/Monoid/OrderDual.lean Modified Mathlib/Algebra/Order/Monoid/Prod.lean Modified Mathlib/Algebra/Order/Monoid/ToMulBot.lean Modified Mathlib/Algebra/Order/Monoid/TypeTags.lean Modified Mathlib/Algebra/Order/Monoid/Units.lean Modified Mathlib/Algebra/Order/Monoid/WithTop.lean Modified Mathlib/Algebra/Order/Monoid/WithZero/Basic.lean Modified Mathlib/Algebra/Order/Monoid/WithZero/Defs.lean Modified Mathlib/Algebra/Order/Nonneg/Field.lean Modified Mathlib/Algebra/Order/Nonneg/Floor.lean Modified Mathlib/Algebra/Order/Nonneg/Ring.lean Modified Mathlib/Algebra/Order/Pi.lean Modified Mathlib/Algebra/Order/Pointwise.lean Modified Mathlib/Algebra/Order/Positive/Field.lean Modified Mathlib/Algebra/Order/Positive/Ring.lean Modified Mathlib/Algebra/Order/Rearrangement.lean Modified Mathlib/Algebra/Order/Ring/Abs.lean Modified Mathlib/Algebra/Order/Ring/Canonical.lean Modified Mathlib/Algebra/Order/Ring/CharZero.lean Modified Mathlib/Algebra/Order/Ring/Cone.lean Modified Mathlib/Algebra/Order/Ring/Defs.lean Modified Mathlib/Algebra/Order/Ring/InjSurj.lean Modified Mathlib/Algebra/Order/Ring/Lemmas.lean Modified Mathlib/Algebra/Order/Ring/WithTop.lean Modified Mathlib/Algebra/Order/SMul.lean Modified Mathlib/Algebra/Order/Sub/Basic.lean Modified Mathlib/Algebra/Order/Sub/Canonical.lean Modified Mathlib/Algebra/Order/Sub/Defs.lean Modified Mathlib/Algebra/Order/Sub/WithTop.lean Modified Mathlib/Algebra/Order/ToIntervalMod.lean Modified Mathlib/Algebra/Order/UpperLower.lean Modified Mathlib/Algebra/Order/WithZero.lean Modified Mathlib/Algebra/Order/ZeroLEOne.lean Modified Mathlib/Algebra/PEmptyInstances.lean Modified Mathlib/Algebra/PUnitInstances.lean Modified Mathlib/Algebra/Parity.lean Modified Mathlib/Algebra/Periodic.lean Modified Mathlib/Algebra/Polynomial/BigOperators.lean Modified Mathlib/Algebra/Polynomial/GroupRingAction.lean Modified Mathlib/Algebra/QuadraticDiscriminant.lean Modified Mathlib/Algebra/Quandle.lean Modified Mathlib/Algebra/Quaternion.lean Modified Mathlib/Algebra/QuaternionBasis.lean Modified Mathlib/Algebra/Quotient.lean Modified Mathlib/Algebra/Regular/Basic.lean Modified Mathlib/Algebra/Regular/Pow.lean Modified Mathlib/Algebra/Regular/SMul.lean Modified Mathlib/Algebra/Ring/AddAut.lean Modified Mathlib/Algebra/Ring/Aut.lean Modified Mathlib/Algebra/Ring/Basic.lean Modified Mathlib/Algebra/Ring/BooleanRing.lean Modified Mathlib/Algebra/Ring/Commute.lean Modified Mathlib/Algebra/Ring/CompTypeclasses.lean Modified Mathlib/Algebra/Ring/Defs.lean Modified Mathlib/Algebra/Ring/Divisibility.lean Modified Mathlib/Algebra/Ring/Equiv.lean Modified Mathlib/Algebra/Ring/Fin.lean Modified Mathlib/Algebra/Ring/Idempotents.lean Modified Mathlib/Algebra/Ring/InjSurj.lean Modified Mathlib/Algebra/Ring/Opposite.lean Modified Mathlib/Algebra/Ring/OrderSynonym.lean Modified Mathlib/Algebra/Ring/Pi.lean Modified Mathlib/Algebra/Ring/Prod.lean Modified Mathlib/Algebra/Ring/Regular.lean Modified Mathlib/Algebra/Ring/Semiconj.lean Modified Mathlib/Algebra/Ring/ULift.lean Modified Mathlib/Algebra/Ring/Units.lean Modified Mathlib/Algebra/RingQuot.lean Modified Mathlib/Algebra/SMulWithZero.lean Modified Mathlib/Algebra/Squarefree.lean Modified Mathlib/Algebra/Star/Basic.lean Modified Mathlib/Algebra/Star/BigOperators.lean Modified Mathlib/Algebra/Star/CHSH.lean Modified Mathlib/Algebra/Star/Free.lean Modified Mathlib/Algebra/Star/Module.lean Modified Mathlib/Algebra/Star/Order.lean Modified Mathlib/Algebra/Star/Pi.lean Modified Mathlib/Algebra/Star/Pointwise.lean Modified Mathlib/Algebra/Star/Prod.lean Modified Mathlib/Algebra/Star/SelfAdjoint.lean Modified Mathlib/Algebra/Star/StarAlgHom.lean Modified Mathlib/Algebra/Star/Subalgebra.lean Modified Mathlib/Algebra/Star/Unitary.lean Modified Mathlib/Algebra/Support.lean Modified Mathlib/Algebra/Symmetrized.lean Modified Mathlib/Algebra/TrivSqZeroExt.lean Modified Mathlib/Algebra/Tropical/Basic.lean Modified Mathlib/Algebra/Tropical/BigOperators.lean Modified Mathlib/Algebra/Tropical/Lattice.lean Modified Mathlib/AlgebraicGeometry/AffineScheme.lean Modified Mathlib/AlgebraicGeometry/EllipticCurve/Point.lean Modified Mathlib/AlgebraicGeometry/EllipticCurve/Weierstrass.lean Modified Mathlib/AlgebraicGeometry/FunctionField.lean Modified Mathlib/AlgebraicGeometry/GammaSpecAdjunction.lean Modified Mathlib/AlgebraicGeometry/Gluing.lean Modified Mathlib/AlgebraicGeometry/Limits.lean Modified Mathlib/AlgebraicGeometry/LocallyRingedSpace.lean Modified Mathlib/AlgebraicGeometry/LocallyRingedSpace/HasColimits.lean Modified Mathlib/AlgebraicGeometry/Morphisms/Basic.lean Modified Mathlib/AlgebraicGeometry/Morphisms/FiniteType.lean Modified Mathlib/AlgebraicGeometry/Morphisms/OpenImmersion.lean Modified Mathlib/AlgebraicGeometry/Morphisms/QuasiCompact.lean Modified Mathlib/AlgebraicGeometry/Morphisms/QuasiSeparated.lean Modified Mathlib/AlgebraicGeometry/Morphisms/RingHomProperties.lean Modified Mathlib/AlgebraicGeometry/Morphisms/UniversallyClosed.lean Modified Mathlib/AlgebraicGeometry/OpenImmersion/Basic.lean Modified Mathlib/AlgebraicGeometry/OpenImmersion/Scheme.lean Modified Mathlib/AlgebraicGeometry/PresheafedSpace.lean Modified Mathlib/AlgebraicGeometry/PresheafedSpace/Gluing.lean Modified Mathlib/AlgebraicGeometry/PresheafedSpace/HasColimits.lean Modified Mathlib/AlgebraicGeometry/PrimeSpectrum/Basic.lean Modified Mathlib/AlgebraicGeometry/PrimeSpectrum/IsOpenComapC.lean Modified Mathlib/AlgebraicGeometry/PrimeSpectrum/Maximal.lean Modified Mathlib/AlgebraicGeometry/PrimeSpectrum/Noetherian.lean Modified Mathlib/AlgebraicGeometry/ProjectiveSpectrum/Scheme.lean Modified Mathlib/AlgebraicGeometry/ProjectiveSpectrum/StructureSheaf.lean Modified Mathlib/AlgebraicGeometry/ProjectiveSpectrum/Topology.lean Modified Mathlib/AlgebraicGeometry/Properties.lean Modified Mathlib/AlgebraicGeometry/Pullbacks.lean Modified Mathlib/AlgebraicGeometry/RingedSpace.lean Modified Mathlib/AlgebraicGeometry/Scheme.lean Modified Mathlib/AlgebraicGeometry/SheafedSpace.lean Modified Mathlib/AlgebraicGeometry/Spec.lean Modified Mathlib/AlgebraicGeometry/Stalks.lean Modified Mathlib/AlgebraicGeometry/StructureSheaf.lean Modified Mathlib/AlgebraicTopology/AlternatingFaceMapComplex.lean Modified Mathlib/AlgebraicTopology/CechNerve.lean Modified Mathlib/AlgebraicTopology/DoldKan/Compatibility.lean Modified Mathlib/AlgebraicTopology/DoldKan/Decomposition.lean Modified Mathlib/AlgebraicTopology/DoldKan/Degeneracies.lean Modified Mathlib/AlgebraicTopology/DoldKan/EquivalenceAdditive.lean Modified Mathlib/AlgebraicTopology/DoldKan/Faces.lean Modified Mathlib/AlgebraicTopology/DoldKan/FunctorGamma.lean Modified Mathlib/AlgebraicTopology/DoldKan/FunctorN.lean Modified Mathlib/AlgebraicTopology/DoldKan/GammaCompN.lean Modified Mathlib/AlgebraicTopology/DoldKan/Homotopies.lean Modified Mathlib/AlgebraicTopology/DoldKan/HomotopyEquivalence.lean Modified Mathlib/AlgebraicTopology/DoldKan/NCompGamma.lean Modified Mathlib/AlgebraicTopology/DoldKan/NReflectsIso.lean Modified Mathlib/AlgebraicTopology/DoldKan/Normalized.lean Modified Mathlib/AlgebraicTopology/DoldKan/Notations.lean Modified Mathlib/AlgebraicTopology/DoldKan/PInfty.lean Modified Mathlib/AlgebraicTopology/DoldKan/Projections.lean Modified Mathlib/AlgebraicTopology/DoldKan/SplitSimplicialObject.lean Modified Mathlib/AlgebraicTopology/ExtraDegeneracy.lean Modified Mathlib/AlgebraicTopology/FundamentalGroupoid/Basic.lean Modified Mathlib/AlgebraicTopology/FundamentalGroupoid/FundamentalGroup.lean Modified Mathlib/AlgebraicTopology/FundamentalGroupoid/InducedMaps.lean Modified Mathlib/AlgebraicTopology/FundamentalGroupoid/PUnit.lean Modified Mathlib/AlgebraicTopology/FundamentalGroupoid/Product.lean Modified Mathlib/AlgebraicTopology/FundamentalGroupoid/SimplyConnected.lean Modified Mathlib/AlgebraicTopology/MooreComplex.lean Modified Mathlib/AlgebraicTopology/Nerve.lean Modified Mathlib/AlgebraicTopology/SimplexCategory.lean Modified Mathlib/AlgebraicTopology/SimplicialObject.lean Modified Mathlib/AlgebraicTopology/SimplicialSet.lean Modified Mathlib/AlgebraicTopology/SplitSimplicialObject.lean Modified Mathlib/AlgebraicTopology/TopologicalSimplex.lean Modified Mathlib/Analysis/Analytic/Basic.lean Modified Mathlib/Analysis/Analytic/Composition.lean Modified Mathlib/Analysis/Analytic/Inverse.lean Modified Mathlib/Analysis/Analytic/IsolatedZeros.lean Modified Mathlib/Analysis/Analytic/Linear.lean Modified Mathlib/Analysis/Analytic/RadiusLiminf.lean Modified Mathlib/Analysis/Analytic/Uniqueness.lean Modified Mathlib/Analysis/Asymptotics/AsymptoticEquivalent.lean Modified Mathlib/Analysis/Asymptotics/Asymptotics.lean Modified Mathlib/Analysis/Asymptotics/SpecificAsymptotics.lean Modified Mathlib/Analysis/Asymptotics/SuperpolynomialDecay.lean Modified Mathlib/Analysis/Asymptotics/Theta.lean Modified Mathlib/Analysis/BoundedVariation.lean Modified Mathlib/Analysis/BoxIntegral/Basic.lean Modified Mathlib/Analysis/BoxIntegral/Box/Basic.lean Modified Mathlib/Analysis/BoxIntegral/Box/SubboxInduction.lean Modified Mathlib/Analysis/BoxIntegral/DivergenceTheorem.lean Modified Mathlib/Analysis/BoxIntegral/Integrability.lean Modified Mathlib/Analysis/BoxIntegral/Partition/Additive.lean Modified Mathlib/Analysis/BoxIntegral/Partition/Basic.lean Modified Mathlib/Analysis/BoxIntegral/Partition/Filter.lean Modified Mathlib/Analysis/BoxIntegral/Partition/Measure.lean Modified Mathlib/Analysis/BoxIntegral/Partition/Split.lean Modified Mathlib/Analysis/BoxIntegral/Partition/SubboxInduction.lean Modified Mathlib/Analysis/BoxIntegral/Partition/Tagged.lean Modified Mathlib/Analysis/Calculus/AffineMap.lean Modified Mathlib/Analysis/Calculus/BumpFunction/Basic.lean Modified Mathlib/Analysis/Calculus/BumpFunction/FiniteDimension.lean Modified Mathlib/Analysis/Calculus/BumpFunction/InnerProduct.lean Modified Mathlib/Analysis/Calculus/BumpFunction/Normed.lean Modified Mathlib/Analysis/Calculus/Conformal/InnerProduct.lean Modified Mathlib/Analysis/Calculus/Conformal/NormedSpace.lean Modified Mathlib/Analysis/Calculus/ContDiff.lean Modified Mathlib/Analysis/Calculus/ContDiffDef.lean Modified Mathlib/Analysis/Calculus/Darboux.lean Modified Mathlib/Analysis/Calculus/Deriv/Add.lean Modified Mathlib/Analysis/Calculus/Deriv/Basic.lean Modified Mathlib/Analysis/Calculus/Deriv/Comp.lean Modified Mathlib/Analysis/Calculus/Deriv/Inv.lean Modified Mathlib/Analysis/Calculus/Deriv/Inverse.lean Modified Mathlib/Analysis/Calculus/Deriv/Linear.lean Modified Mathlib/Analysis/Calculus/Deriv/Mul.lean Modified Mathlib/Analysis/Calculus/Deriv/Polynomial.lean Modified Mathlib/Analysis/Calculus/Deriv/Pow.lean Modified Mathlib/Analysis/Calculus/Deriv/Prod.lean Modified Mathlib/Analysis/Calculus/Deriv/Slope.lean Modified Mathlib/Analysis/Calculus/Deriv/Star.lean Modified Mathlib/Analysis/Calculus/Deriv/Support.lean Modified Mathlib/Analysis/Calculus/Deriv/ZPow.lean Modified Mathlib/Analysis/Calculus/DiffContOnCl.lean Modified Mathlib/Analysis/Calculus/Dslope.lean Modified Mathlib/Analysis/Calculus/ExtendDeriv.lean Modified Mathlib/Analysis/Calculus/FDeriv/Add.lean Modified Mathlib/Analysis/Calculus/FDeriv/Basic.lean Modified Mathlib/Analysis/Calculus/FDeriv/Bilinear.lean Modified Mathlib/Analysis/Calculus/FDeriv/Comp.lean Modified Mathlib/Analysis/Calculus/FDeriv/Equiv.lean Modified Mathlib/Analysis/Calculus/FDeriv/Linear.lean Modified Mathlib/Analysis/Calculus/FDeriv/Mul.lean Modified Mathlib/Analysis/Calculus/FDeriv/Prod.lean Modified Mathlib/Analysis/Calculus/FDeriv/RestrictScalars.lean Modified Mathlib/Analysis/Calculus/FDeriv/Star.lean Modified Mathlib/Analysis/Calculus/FDerivAnalytic.lean Modified Mathlib/Analysis/Calculus/FDerivMeasurable.lean Modified Mathlib/Analysis/Calculus/FDerivSymmetric.lean Modified Mathlib/Analysis/Calculus/FormalMultilinearSeries.lean Modified Mathlib/Analysis/Calculus/Implicit.lean Modified Mathlib/Analysis/Calculus/Inverse.lean Modified Mathlib/Analysis/Calculus/IteratedDeriv.lean Modified Mathlib/Analysis/Calculus/LHopital.lean Modified Mathlib/Analysis/Calculus/LagrangeMultipliers.lean Modified Mathlib/Analysis/Calculus/LocalExtr.lean Modified Mathlib/Analysis/Calculus/MeanValue.lean Modified Mathlib/Analysis/Calculus/Monotone.lean Modified Mathlib/Analysis/Calculus/ParametricIntegral.lean Modified Mathlib/Analysis/Calculus/ParametricIntervalIntegral.lean Modified Mathlib/Analysis/Calculus/Series.lean Modified Mathlib/Analysis/Calculus/TangentCone.lean Modified Mathlib/Analysis/Calculus/Taylor.lean Modified Mathlib/Analysis/Calculus/UniformLimitsDeriv.lean Modified Mathlib/Analysis/Complex/AbsMax.lean Modified Mathlib/Analysis/Complex/Arg.lean Modified Mathlib/Analysis/Complex/Basic.lean Modified Mathlib/Analysis/Complex/CauchyIntegral.lean Modified Mathlib/Analysis/Complex/Circle.lean Modified Mathlib/Analysis/Complex/Conformal.lean Modified Mathlib/Analysis/Complex/Isometry.lean Modified Mathlib/Analysis/Complex/Liouville.lean Modified Mathlib/Analysis/Complex/LocallyUniformLimit.lean Modified Mathlib/Analysis/Complex/OpenMapping.lean Modified Mathlib/Analysis/Complex/OperatorNorm.lean Modified Mathlib/Analysis/Complex/PhragmenLindelof.lean Modified Mathlib/Analysis/Complex/Polynomial.lean Modified Mathlib/Analysis/Complex/ReImTopology.lean Modified Mathlib/Analysis/Complex/RealDeriv.lean Modified Mathlib/Analysis/Complex/RemovableSingularity.lean Modified Mathlib/Analysis/Complex/Schwarz.lean Modified Mathlib/Analysis/Complex/UnitDisc/Basic.lean Modified Mathlib/Analysis/Complex/UpperHalfPlane/Basic.lean Modified Mathlib/Analysis/Complex/UpperHalfPlane/FunctionsBoundedAtInfty.lean Modified Mathlib/Analysis/Complex/UpperHalfPlane/Manifold.lean Modified Mathlib/Analysis/Complex/UpperHalfPlane/Metric.lean Modified Mathlib/Analysis/Complex/UpperHalfPlane/Topology.lean Modified Mathlib/Analysis/ConstantSpeed.lean Modified Mathlib/Analysis/Convex/Basic.lean Modified Mathlib/Analysis/Convex/Between.lean Modified Mathlib/Analysis/Convex/Body.lean Modified Mathlib/Analysis/Convex/Caratheodory.lean Modified Mathlib/Analysis/Convex/Combination.lean Modified Mathlib/Analysis/Convex/Complex.lean Modified Mathlib/Analysis/Convex/Cone/Basic.lean Modified Mathlib/Analysis/Convex/Cone/Dual.lean Modified Mathlib/Analysis/Convex/Cone/Proper.lean Modified Mathlib/Analysis/Convex/Contractible.lean Modified Mathlib/Analysis/Convex/Exposed.lean Modified Mathlib/Analysis/Convex/Extrema.lean Modified Mathlib/Analysis/Convex/Extreme.lean Modified Mathlib/Analysis/Convex/Function.lean Modified Mathlib/Analysis/Convex/Gauge.lean Modified Mathlib/Analysis/Convex/Hull.lean Modified Mathlib/Analysis/Convex/Independent.lean Modified Mathlib/Analysis/Convex/Integral.lean Modified Mathlib/Analysis/Convex/Intrinsic.lean Modified Mathlib/Analysis/Convex/Jensen.lean Modified Mathlib/Analysis/Convex/Join.lean Modified Mathlib/Analysis/Convex/KreinMilman.lean Modified Mathlib/Analysis/Convex/Measure.lean Modified Mathlib/Analysis/Convex/Normed.lean Modified Mathlib/Analysis/Convex/PartitionOfUnity.lean Modified Mathlib/Analysis/Convex/Quasiconvex.lean Modified Mathlib/Analysis/Convex/Segment.lean Modified Mathlib/Analysis/Convex/Side.lean Modified Mathlib/Analysis/Convex/SimplicialComplex/Basic.lean Modified Mathlib/Analysis/Convex/Slope.lean Modified Mathlib/Analysis/Convex/SpecificFunctions/Basic.lean Modified Mathlib/Analysis/Convex/SpecificFunctions/Deriv.lean Modified Mathlib/Analysis/Convex/Star.lean Modified Mathlib/Analysis/Convex/StoneSeparation.lean Modified Mathlib/Analysis/Convex/Strict.lean Modified Mathlib/Analysis/Convex/StrictConvexBetween.lean Modified Mathlib/Analysis/Convex/StrictConvexSpace.lean Modified Mathlib/Analysis/Convex/Topology.lean Modified Mathlib/Analysis/Convex/Uniform.lean Modified Mathlib/Analysis/Convolution.lean Modified Mathlib/Analysis/Distribution/SchwartzSpace.lean Modified Mathlib/Analysis/Fourier/AddCircle.lean Modified Mathlib/Analysis/Fourier/FourierTransform.lean Modified Mathlib/Analysis/Fourier/PoissonSummation.lean Modified Mathlib/Analysis/Fourier/RiemannLebesgueLemma.lean Modified Mathlib/Analysis/Hofer.lean Modified Mathlib/Analysis/InnerProductSpace/Adjoint.lean Modified Mathlib/Analysis/InnerProductSpace/Basic.lean Modified Mathlib/Analysis/InnerProductSpace/Calculus.lean Modified Mathlib/Analysis/InnerProductSpace/ConformalLinearMap.lean Modified Mathlib/Analysis/InnerProductSpace/Dual.lean Modified Mathlib/Analysis/InnerProductSpace/EuclideanDist.lean Modified Mathlib/Analysis/InnerProductSpace/GramSchmidtOrtho.lean Modified Mathlib/Analysis/InnerProductSpace/LaxMilgram.lean Modified Mathlib/Analysis/InnerProductSpace/LinearPMap.lean Modified Mathlib/Analysis/InnerProductSpace/OfNorm.lean Modified Mathlib/Analysis/InnerProductSpace/Orientation.lean Modified Mathlib/Analysis/InnerProductSpace/Orthogonal.lean Modified Mathlib/Analysis/InnerProductSpace/PiL2.lean Modified Mathlib/Analysis/InnerProductSpace/Positive.lean Modified Mathlib/Analysis/InnerProductSpace/Projection.lean Modified Mathlib/Analysis/InnerProductSpace/Rayleigh.lean Modified Mathlib/Analysis/InnerProductSpace/Spectrum.lean Modified Mathlib/Analysis/InnerProductSpace/Symmetric.lean Modified Mathlib/Analysis/InnerProductSpace/TwoDim.lean Modified Mathlib/Analysis/InnerProductSpace/l2Space.lean Modified Mathlib/Analysis/LocallyConvex/AbsConvex.lean Modified Mathlib/Analysis/LocallyConvex/BalancedCoreHull.lean Modified Mathlib/Analysis/LocallyConvex/Basic.lean Modified Mathlib/Analysis/LocallyConvex/Bounded.lean Modified Mathlib/Analysis/LocallyConvex/ContinuousOfBounded.lean Modified Mathlib/Analysis/LocallyConvex/Polar.lean Modified Mathlib/Analysis/LocallyConvex/StrongTopology.lean Modified Mathlib/Analysis/LocallyConvex/WeakDual.lean Modified Mathlib/Analysis/LocallyConvex/WithSeminorms.lean Modified Mathlib/Analysis/Matrix.lean Modified Mathlib/Analysis/MeanInequalities.lean Modified Mathlib/Analysis/MeanInequalitiesPow.lean Modified Mathlib/Analysis/MellinTransform.lean Modified Mathlib/Analysis/Normed/Field/Basic.lean Modified Mathlib/Analysis/Normed/Field/InfiniteSum.lean Modified Mathlib/Analysis/Normed/Field/UnitBall.lean Modified Mathlib/Analysis/Normed/Group/AddCircle.lean Modified Mathlib/Analysis/Normed/Group/AddTorsor.lean Modified Mathlib/Analysis/Normed/Group/BallSphere.lean Modified Mathlib/Analysis/Normed/Group/Basic.lean Modified Mathlib/Analysis/Normed/Group/Completion.lean Modified Mathlib/Analysis/Normed/Group/ControlledClosure.lean Modified Mathlib/Analysis/Normed/Group/Hom.lean Modified Mathlib/Analysis/Normed/Group/HomCompletion.lean Modified Mathlib/Analysis/Normed/Group/InfiniteSum.lean Modified Mathlib/Analysis/Normed/Group/Pointwise.lean Modified Mathlib/Analysis/Normed/Group/Quotient.lean Modified Mathlib/Analysis/Normed/Group/SemiNormedGroupCat.lean Modified Mathlib/Analysis/Normed/Group/SemiNormedGroupCat/Completion.lean Modified Mathlib/Analysis/Normed/Group/SemiNormedGroupCat/Kernels.lean Modified Mathlib/Analysis/Normed/Group/Seminorm.lean Modified Mathlib/Analysis/Normed/MulAction.lean Modified Mathlib/Analysis/Normed/Order/Basic.lean Modified Mathlib/Analysis/Normed/Order/Lattice.lean Modified Mathlib/Analysis/Normed/Order/UpperLower.lean Modified Mathlib/Analysis/Normed/Ring/Seminorm.lean Modified Mathlib/Analysis/NormedSpace/AddTorsor.lean Modified Mathlib/Analysis/NormedSpace/AddTorsorBases.lean Modified Mathlib/Analysis/NormedSpace/AffineIsometry.lean Modified Mathlib/Analysis/NormedSpace/Algebra.lean Modified Mathlib/Analysis/NormedSpace/BallAction.lean Modified Mathlib/Analysis/NormedSpace/Banach.lean Modified Mathlib/Analysis/NormedSpace/BanachSteinhaus.lean Modified Mathlib/Analysis/NormedSpace/Basic.lean Modified Mathlib/Analysis/NormedSpace/BoundedLinearMaps.lean Modified Mathlib/Analysis/NormedSpace/CompactOperator.lean Modified Mathlib/Analysis/NormedSpace/Complemented.lean Modified Mathlib/Analysis/NormedSpace/Completion.lean Modified Mathlib/Analysis/NormedSpace/ConformalLinearMap.lean Modified Mathlib/Analysis/NormedSpace/ContinuousAffineMap.lean Modified Mathlib/Analysis/NormedSpace/ContinuousLinearMap.lean Modified Mathlib/Analysis/NormedSpace/Dual.lean Modified Mathlib/Analysis/NormedSpace/DualNumber.lean Modified Mathlib/Analysis/NormedSpace/ENorm.lean Modified Mathlib/Analysis/NormedSpace/Exponential.lean Modified Mathlib/Analysis/NormedSpace/Extend.lean Modified Mathlib/Analysis/NormedSpace/Extr.lean Modified Mathlib/Analysis/NormedSpace/FiniteDimension.lean Modified Mathlib/Analysis/NormedSpace/HahnBanach/Extension.lean Modified Mathlib/Analysis/NormedSpace/HahnBanach/Separation.lean Modified Mathlib/Analysis/NormedSpace/IndicatorFunction.lean Modified Mathlib/Analysis/NormedSpace/Int.lean Modified Mathlib/Analysis/NormedSpace/IsROrC.lean Modified Mathlib/Analysis/NormedSpace/LinearIsometry.lean Modified Mathlib/Analysis/NormedSpace/LpEquiv.lean Modified Mathlib/Analysis/NormedSpace/MStructure.lean Modified Mathlib/Analysis/NormedSpace/MatrixExponential.lean Modified Mathlib/Analysis/NormedSpace/MazurUlam.lean Modified Mathlib/Analysis/NormedSpace/Multilinear.lean Modified Mathlib/Analysis/NormedSpace/OperatorNorm.lean Modified Mathlib/Analysis/NormedSpace/PiLp.lean Modified Mathlib/Analysis/NormedSpace/Pointwise.lean Modified Mathlib/Analysis/NormedSpace/QuaternionExponential.lean Modified Mathlib/Analysis/NormedSpace/Ray.lean Modified Mathlib/Analysis/NormedSpace/RieszLemma.lean Modified Mathlib/Analysis/NormedSpace/Spectrum.lean Modified Mathlib/Analysis/NormedSpace/Star/Basic.lean Modified Mathlib/Analysis/NormedSpace/Star/ContinuousFunctionalCalculus.lean Modified Mathlib/Analysis/NormedSpace/Star/Exponential.lean Modified Mathlib/Analysis/NormedSpace/Star/GelfandDuality.lean Modified Mathlib/Analysis/NormedSpace/Star/Matrix.lean Modified Mathlib/Analysis/NormedSpace/Star/Multiplier.lean Modified Mathlib/Analysis/NormedSpace/Star/Spectrum.lean Modified Mathlib/Analysis/NormedSpace/Star/Unitization.lean Modified Mathlib/Analysis/NormedSpace/TrivSqZeroExt.lean Modified Mathlib/Analysis/NormedSpace/Units.lean Modified Mathlib/Analysis/NormedSpace/WeakDual.lean Modified Mathlib/Analysis/NormedSpace/lpSpace.lean Modified Mathlib/Analysis/ODE/Gronwall.lean Modified Mathlib/Analysis/ODE/PicardLindelof.lean Modified Mathlib/Analysis/PSeries.lean Modified Mathlib/Analysis/Quaternion.lean Modified Mathlib/Analysis/Seminorm.lean Modified Mathlib/Analysis/SpecialFunctions/Arsinh.lean Modified Mathlib/Analysis/SpecialFunctions/Bernstein.lean Modified Mathlib/Analysis/SpecialFunctions/CompareExp.lean Modified Mathlib/Analysis/SpecialFunctions/Complex/Arg.lean Modified Mathlib/Analysis/SpecialFunctions/Complex/Circle.lean Modified Mathlib/Analysis/SpecialFunctions/Complex/Log.lean Modified Mathlib/Analysis/SpecialFunctions/Complex/LogDeriv.lean Modified Mathlib/Analysis/SpecialFunctions/Exp.lean Modified Mathlib/Analysis/SpecialFunctions/ExpDeriv.lean Modified Mathlib/Analysis/SpecialFunctions/Exponential.lean Modified Mathlib/Analysis/SpecialFunctions/Gamma/Basic.lean Modified Mathlib/Analysis/SpecialFunctions/Gamma/Beta.lean Modified Mathlib/Analysis/SpecialFunctions/Gamma/BohrMollerup.lean Modified Mathlib/Analysis/SpecialFunctions/Gaussian.lean Modified Mathlib/Analysis/SpecialFunctions/ImproperIntegrals.lean Modified Mathlib/Analysis/SpecialFunctions/Integrals.lean Modified Mathlib/Analysis/SpecialFunctions/JapaneseBracket.lean Modified Mathlib/Analysis/SpecialFunctions/Log/Base.lean Modified Mathlib/Analysis/SpecialFunctions/Log/Basic.lean Modified Mathlib/Analysis/SpecialFunctions/Log/Deriv.lean Modified Mathlib/Analysis/SpecialFunctions/Log/Monotone.lean Modified Mathlib/Analysis/SpecialFunctions/NonIntegrable.lean Modified Mathlib/Analysis/SpecialFunctions/PolarCoord.lean Modified Mathlib/Analysis/SpecialFunctions/Polynomials.lean Modified Mathlib/Analysis/SpecialFunctions/Pow/Asymptotics.lean Modified Mathlib/Analysis/SpecialFunctions/Pow/Complex.lean Modified Mathlib/Analysis/SpecialFunctions/Pow/Continuity.lean Modified Mathlib/Analysis/SpecialFunctions/Pow/Deriv.lean Modified Mathlib/Analysis/SpecialFunctions/Pow/NNReal.lean Modified Mathlib/Analysis/SpecialFunctions/Pow/Real.lean Modified Mathlib/Analysis/SpecialFunctions/SmoothTransition.lean Modified Mathlib/Analysis/SpecialFunctions/Sqrt.lean Modified Mathlib/Analysis/SpecialFunctions/Stirling.lean Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Angle.lean Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Arctan.lean Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/ArctanDeriv.lean Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Basic.lean Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Bounds.lean Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Chebyshev.lean Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Complex.lean Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/ComplexDeriv.lean Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Deriv.lean Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/EulerSineProd.lean Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Inverse.lean Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/InverseDeriv.lean Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Series.lean Modified Mathlib/Analysis/SpecificLimits/Basic.lean Modified Mathlib/Analysis/SpecificLimits/FloorPow.lean Modified Mathlib/Analysis/SpecificLimits/Normed.lean Modified Mathlib/Analysis/Subadditive.lean Modified Mathlib/Analysis/SumIntegralComparisons.lean Modified Mathlib/Analysis/VonNeumannAlgebra/Basic.lean Modified Mathlib/CategoryTheory/Abelian/Basic.lean Modified Mathlib/CategoryTheory/Abelian/DiagramLemmas/Four.lean Modified Mathlib/CategoryTheory/Abelian/Exact.lean Modified Mathlib/CategoryTheory/Abelian/Ext.lean Modified Mathlib/CategoryTheory/Abelian/FunctorCategory.lean Modified Mathlib/CategoryTheory/Abelian/Generator.lean Modified Mathlib/CategoryTheory/Abelian/Homology.lean Modified Mathlib/CategoryTheory/Abelian/Images.lean Modified Mathlib/CategoryTheory/Abelian/Injective.lean Modified Mathlib/CategoryTheory/Abelian/InjectiveResolution.lean Modified Mathlib/CategoryTheory/Abelian/LeftDerived.lean Modified Mathlib/CategoryTheory/Abelian/NonPreadditive.lean Modified Mathlib/CategoryTheory/Abelian/Opposite.lean Modified Mathlib/CategoryTheory/Abelian/Projective.lean Modified Mathlib/CategoryTheory/Abelian/Pseudoelements.lean Modified Mathlib/CategoryTheory/Abelian/RightDerived.lean Modified Mathlib/CategoryTheory/Abelian/Subobject.lean Modified Mathlib/CategoryTheory/Abelian/Transfer.lean Modified Mathlib/CategoryTheory/Action.lean Modified Mathlib/CategoryTheory/Adhesive.lean Modified Mathlib/CategoryTheory/Adjunction/AdjointFunctorTheorems.lean Modified Mathlib/CategoryTheory/Adjunction/Basic.lean Modified Mathlib/CategoryTheory/Adjunction/Comma.lean Modified Mathlib/CategoryTheory/Adjunction/Evaluation.lean Modified Mathlib/CategoryTheory/Adjunction/FullyFaithful.lean Modified Mathlib/CategoryTheory/Adjunction/Lifting.lean Modified Mathlib/CategoryTheory/Adjunction/Limits.lean Modified Mathlib/CategoryTheory/Adjunction/Mates.lean Modified Mathlib/CategoryTheory/Adjunction/Opposites.lean Modified Mathlib/CategoryTheory/Adjunction/Over.lean Modified Mathlib/CategoryTheory/Adjunction/Reflective.lean Modified Mathlib/CategoryTheory/Adjunction/Whiskering.lean Modified Mathlib/CategoryTheory/Arrow.lean Modified Mathlib/CategoryTheory/Balanced.lean Modified Mathlib/CategoryTheory/Bicategory/Basic.lean Modified Mathlib/CategoryTheory/Bicategory/Coherence.lean Modified Mathlib/CategoryTheory/Bicategory/End.lean Modified Mathlib/CategoryTheory/Bicategory/Free.lean Modified Mathlib/CategoryTheory/Bicategory/Functor.lean Modified Mathlib/CategoryTheory/Bicategory/FunctorBicategory.lean Modified Mathlib/CategoryTheory/Bicategory/LocallyDiscrete.lean Modified Mathlib/CategoryTheory/Bicategory/NaturalTransformation.lean Modified Mathlib/CategoryTheory/Bicategory/SingleObj.lean Modified Mathlib/CategoryTheory/Bicategory/Strict.lean Modified Mathlib/CategoryTheory/Category/Basic.lean Modified Mathlib/CategoryTheory/Category/Bipointed.lean Modified Mathlib/CategoryTheory/Category/Cat.lean Modified Mathlib/CategoryTheory/Category/Cat/Limit.lean Modified Mathlib/CategoryTheory/Category/GaloisConnection.lean Modified Mathlib/CategoryTheory/Category/Grpd.lean Modified Mathlib/CategoryTheory/Category/KleisliCat.lean Modified Mathlib/CategoryTheory/Category/Pairwise.lean Modified Mathlib/CategoryTheory/Category/PartialFun.lean Modified Mathlib/CategoryTheory/Category/Pointed.lean Modified Mathlib/CategoryTheory/Category/Preorder.lean Modified Mathlib/CategoryTheory/Category/QuivCat.lean Modified Mathlib/CategoryTheory/Category/RelCat.lean Modified Mathlib/CategoryTheory/Category/TwoP.lean Modified Mathlib/CategoryTheory/Category/ULift.lean Modified Mathlib/CategoryTheory/Closed/Cartesian.lean Modified Mathlib/CategoryTheory/Closed/Functor.lean Modified Mathlib/CategoryTheory/Closed/FunctorCategory.lean Modified Mathlib/CategoryTheory/Closed/Ideal.lean Modified Mathlib/CategoryTheory/Closed/Monoidal.lean Modified Mathlib/CategoryTheory/Closed/Types.lean Modified Mathlib/CategoryTheory/Closed/Zero.lean Modified Mathlib/CategoryTheory/CofilteredSystem.lean Modified Mathlib/CategoryTheory/CommSq.lean Modified Mathlib/CategoryTheory/Comma.lean Modified Mathlib/CategoryTheory/ConcreteCategory/Basic.lean Modified Mathlib/CategoryTheory/ConcreteCategory/Bundled.lean Modified Mathlib/CategoryTheory/ConcreteCategory/BundledHom.lean Modified Mathlib/CategoryTheory/ConcreteCategory/Elementwise.lean Modified Mathlib/CategoryTheory/ConcreteCategory/ReflectsIso.lean Modified Mathlib/CategoryTheory/ConcreteCategory/UnbundledHom.lean Modified Mathlib/CategoryTheory/Conj.lean Modified Mathlib/CategoryTheory/ConnectedComponents.lean Modified Mathlib/CategoryTheory/Core.lean Modified Mathlib/CategoryTheory/DifferentialObject.lean Modified Mathlib/CategoryTheory/DiscreteCategory.lean Modified Mathlib/CategoryTheory/Elements.lean Modified Mathlib/CategoryTheory/Elementwise.lean Modified Mathlib/CategoryTheory/Endofunctor/Algebra.lean Modified Mathlib/CategoryTheory/Endomorphism.lean Modified Mathlib/CategoryTheory/Enriched/Basic.lean Modified Mathlib/CategoryTheory/EpiMono.lean Modified Mathlib/CategoryTheory/EqToHom.lean Modified Mathlib/CategoryTheory/Equivalence.lean Modified Mathlib/CategoryTheory/EssentialImage.lean Modified Mathlib/CategoryTheory/EssentiallySmall.lean Modified Mathlib/CategoryTheory/Extensive.lean Modified Mathlib/CategoryTheory/Filtered.lean Modified Mathlib/CategoryTheory/FinCategory.lean Modified Mathlib/CategoryTheory/FintypeCat.lean Modified Mathlib/CategoryTheory/FullSubcategory.lean Modified Mathlib/CategoryTheory/Functor/Basic.lean Modified Mathlib/CategoryTheory/Functor/Category.lean Modified Mathlib/CategoryTheory/Functor/Const.lean Modified Mathlib/CategoryTheory/Functor/Currying.lean Modified Mathlib/CategoryTheory/Functor/EpiMono.lean Modified Mathlib/CategoryTheory/Functor/Flat.lean Modified Mathlib/CategoryTheory/Functor/FullyFaithful.lean Modified Mathlib/CategoryTheory/Functor/Functorial.lean Modified Mathlib/CategoryTheory/Functor/Hom.lean Modified Mathlib/CategoryTheory/Functor/InvIsos.lean Modified Mathlib/CategoryTheory/Functor/LeftDerived.lean Modified Mathlib/CategoryTheory/Functor/ReflectsIso.lean Modified Mathlib/CategoryTheory/Generator.lean Modified Mathlib/CategoryTheory/GlueData.lean Modified Mathlib/CategoryTheory/GradedObject.lean Modified Mathlib/CategoryTheory/Grothendieck.lean Modified Mathlib/CategoryTheory/Groupoid.lean Modified Mathlib/CategoryTheory/Groupoid/Basic.lean Modified Mathlib/CategoryTheory/Groupoid/FreeGroupoid.lean Modified Mathlib/CategoryTheory/Groupoid/Subgroupoid.lean Modified Mathlib/CategoryTheory/Groupoid/VertexGroup.lean Modified Mathlib/CategoryTheory/Idempotents/Basic.lean Modified Mathlib/CategoryTheory/Idempotents/Biproducts.lean Modified Mathlib/CategoryTheory/Idempotents/FunctorCategories.lean Modified Mathlib/CategoryTheory/Idempotents/FunctorExtension.lean Modified Mathlib/CategoryTheory/Idempotents/HomologicalComplex.lean Modified Mathlib/CategoryTheory/Idempotents/Karoubi.lean Modified Mathlib/CategoryTheory/Idempotents/KaroubiKaroubi.lean Modified Mathlib/CategoryTheory/Idempotents/SimplicialObject.lean Modified Mathlib/CategoryTheory/IsConnected.lean Modified Mathlib/CategoryTheory/Iso.lean Modified Mathlib/CategoryTheory/IsomorphismClasses.lean Modified Mathlib/CategoryTheory/LiftingProperties/Adjunction.lean Modified Mathlib/CategoryTheory/LiftingProperties/Basic.lean Modified Mathlib/CategoryTheory/Limits/Bicones.lean Modified Mathlib/CategoryTheory/Limits/ColimitLimit.lean Modified Mathlib/CategoryTheory/Limits/Comma.lean Modified Mathlib/CategoryTheory/Limits/ConcreteCategory.lean Modified Mathlib/CategoryTheory/Limits/ConeCategory.lean Modified Mathlib/CategoryTheory/Limits/Cones.lean Modified Mathlib/CategoryTheory/Limits/Connected.lean Modified Mathlib/CategoryTheory/Limits/Constructions/BinaryProducts.lean Modified Mathlib/CategoryTheory/Limits/Constructions/EpiMono.lean Modified Mathlib/CategoryTheory/Limits/Constructions/Equalizers.lean Modified Mathlib/CategoryTheory/Limits/Constructions/Filtered.lean Modified Mathlib/CategoryTheory/Limits/Constructions/FiniteProductsOfBinaryProducts.lean Modified Mathlib/CategoryTheory/Limits/Constructions/LimitsOfProductsAndEqualizers.lean Modified Mathlib/CategoryTheory/Limits/Constructions/Over/Basic.lean Modified Mathlib/CategoryTheory/Limits/Constructions/Over/Connected.lean Modified Mathlib/CategoryTheory/Limits/Constructions/Over/Products.lean Modified Mathlib/CategoryTheory/Limits/Constructions/Pullbacks.lean Modified Mathlib/CategoryTheory/Limits/Constructions/WeaklyInitial.lean Modified Mathlib/CategoryTheory/Limits/Constructions/ZeroObjects.lean Modified Mathlib/CategoryTheory/Limits/Creates.lean Modified Mathlib/CategoryTheory/Limits/EssentiallySmall.lean Modified Mathlib/CategoryTheory/Limits/ExactFunctor.lean Modified Mathlib/CategoryTheory/Limits/Filtered.lean Modified Mathlib/CategoryTheory/Limits/FilteredColimitCommutesFiniteLimit.lean Modified Mathlib/CategoryTheory/Limits/Final.lean Modified Mathlib/CategoryTheory/Limits/Fubini.lean Modified Mathlib/CategoryTheory/Limits/FullSubcategory.lean Modified Mathlib/CategoryTheory/Limits/FunctorCategory.lean Modified Mathlib/CategoryTheory/Limits/HasLimits.lean Modified Mathlib/CategoryTheory/Limits/IsLimit.lean Modified Mathlib/CategoryTheory/Limits/KanExtension.lean Modified Mathlib/CategoryTheory/Limits/Lattice.lean Modified Mathlib/CategoryTheory/Limits/MonoCoprod.lean Modified Mathlib/CategoryTheory/Limits/Opposites.lean Modified Mathlib/CategoryTheory/Limits/Over.lean Modified Mathlib/CategoryTheory/Limits/Pi.lean Modified Mathlib/CategoryTheory/Limits/Preserves/Basic.lean Modified Mathlib/CategoryTheory/Limits/Preserves/Filtered.lean Modified Mathlib/CategoryTheory/Limits/Preserves/Finite.lean Modified Mathlib/CategoryTheory/Limits/Preserves/FunctorCategory.lean Modified Mathlib/CategoryTheory/Limits/Preserves/Limits.lean Modified Mathlib/CategoryTheory/Limits/Preserves/Opposites.lean Modified Mathlib/CategoryTheory/Limits/Preserves/Shapes/BinaryProducts.lean Modified Mathlib/CategoryTheory/Limits/Preserves/Shapes/Biproducts.lean Modified Mathlib/CategoryTheory/Limits/Preserves/Shapes/Equalizers.lean Modified Mathlib/CategoryTheory/Limits/Preserves/Shapes/Images.lean Modified Mathlib/CategoryTheory/Limits/Preserves/Shapes/Kernels.lean Modified Mathlib/CategoryTheory/Limits/Preserves/Shapes/Products.lean Modified Mathlib/CategoryTheory/Limits/Preserves/Shapes/Pullbacks.lean Modified Mathlib/CategoryTheory/Limits/Preserves/Shapes/Terminal.lean Modified Mathlib/CategoryTheory/Limits/Preserves/Shapes/Zero.lean Modified Mathlib/CategoryTheory/Limits/Presheaf.lean Modified Mathlib/CategoryTheory/Limits/Shapes/BinaryProducts.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Biproducts.lean Modified Mathlib/CategoryTheory/Limits/Shapes/CommSq.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Diagonal.lean Modified Mathlib/CategoryTheory/Limits/Shapes/DisjointCoproduct.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Equalizers.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Equivalence.lean Modified Mathlib/CategoryTheory/Limits/Shapes/FiniteLimits.lean Modified Mathlib/CategoryTheory/Limits/Shapes/FiniteProducts.lean Modified Mathlib/CategoryTheory/Limits/Shapes/FunctorCategory.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Images.lean Modified Mathlib/CategoryTheory/Limits/Shapes/KernelPair.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Kernels.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Multiequalizer.lean Modified Mathlib/CategoryTheory/Limits/Shapes/NormalMono/Basic.lean Modified Mathlib/CategoryTheory/Limits/Shapes/NormalMono/Equalizers.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Products.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Pullbacks.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Reflexive.lean Modified Mathlib/CategoryTheory/Limits/Shapes/RegularMono.lean Modified Mathlib/CategoryTheory/Limits/Shapes/SplitCoequalizer.lean Modified Mathlib/CategoryTheory/Limits/Shapes/StrictInitial.lean Modified Mathlib/CategoryTheory/Limits/Shapes/StrongEpi.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Terminal.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Types.lean Modified Mathlib/CategoryTheory/Limits/Shapes/WideEqualizers.lean Modified Mathlib/CategoryTheory/Limits/Shapes/WidePullbacks.lean Modified Mathlib/CategoryTheory/Limits/Shapes/ZeroMorphisms.lean Modified Mathlib/CategoryTheory/Limits/Shapes/ZeroObjects.lean Modified Mathlib/CategoryTheory/Limits/SmallComplete.lean Modified Mathlib/CategoryTheory/Limits/Types.lean Modified Mathlib/CategoryTheory/Limits/Unit.lean Modified Mathlib/CategoryTheory/Limits/Yoneda.lean Modified Mathlib/CategoryTheory/Linear/Basic.lean Modified Mathlib/CategoryTheory/Linear/FunctorCategory.lean Modified Mathlib/CategoryTheory/Linear/LinearFunctor.lean Modified Mathlib/CategoryTheory/Linear/Yoneda.lean Modified Mathlib/CategoryTheory/Localization/Construction.lean Modified Mathlib/CategoryTheory/Localization/Opposite.lean Modified Mathlib/CategoryTheory/Localization/Predicate.lean Modified Mathlib/CategoryTheory/Monad/Adjunction.lean Modified Mathlib/CategoryTheory/Monad/Algebra.lean Modified Mathlib/CategoryTheory/Monad/Basic.lean Modified Mathlib/CategoryTheory/Monad/Coequalizer.lean Modified Mathlib/CategoryTheory/Monad/EquivMon.lean Modified Mathlib/CategoryTheory/Monad/Kleisli.lean Modified Mathlib/CategoryTheory/Monad/Limits.lean Modified Mathlib/CategoryTheory/Monad/Monadicity.lean Modified Mathlib/CategoryTheory/Monad/Products.lean Modified Mathlib/CategoryTheory/Monad/Types.lean Modified Mathlib/CategoryTheory/Monoidal/Bimod.lean Modified Mathlib/CategoryTheory/Monoidal/Braided.lean Modified Mathlib/CategoryTheory/Monoidal/Category.lean Modified Mathlib/CategoryTheory/Monoidal/Center.lean Modified Mathlib/CategoryTheory/Monoidal/CoherenceLemmas.lean Modified Mathlib/CategoryTheory/Monoidal/CommMon_.lean Modified Mathlib/CategoryTheory/Monoidal/Discrete.lean Modified Mathlib/CategoryTheory/Monoidal/End.lean Modified Mathlib/CategoryTheory/Monoidal/Free/Basic.lean Modified Mathlib/CategoryTheory/Monoidal/Free/Coherence.lean Modified Mathlib/CategoryTheory/Monoidal/Functor.lean Modified Mathlib/CategoryTheory/Monoidal/FunctorCategory.lean Modified Mathlib/CategoryTheory/Monoidal/Functorial.lean Modified Mathlib/CategoryTheory/Monoidal/Internal/FunctorCategory.lean Modified Mathlib/CategoryTheory/Monoidal/Internal/Limits.lean Modified Mathlib/CategoryTheory/Monoidal/Internal/Module.lean Modified Mathlib/CategoryTheory/Monoidal/Internal/Types.lean Modified Mathlib/CategoryTheory/Monoidal/Limits.lean Modified Mathlib/CategoryTheory/Monoidal/Linear.lean Modified Mathlib/CategoryTheory/Monoidal/Mod_.lean Modified Mathlib/CategoryTheory/Monoidal/Mon_.lean Modified Mathlib/CategoryTheory/Monoidal/NaturalTransformation.lean Modified Mathlib/CategoryTheory/Monoidal/OfChosenFiniteProducts/Basic.lean Modified Mathlib/CategoryTheory/Monoidal/OfChosenFiniteProducts/Symmetric.lean Modified Mathlib/CategoryTheory/Monoidal/OfHasFiniteProducts.lean Modified Mathlib/CategoryTheory/Monoidal/Opposite.lean Modified Mathlib/CategoryTheory/Monoidal/Preadditive.lean Modified Mathlib/CategoryTheory/Monoidal/Rigid/Basic.lean Modified Mathlib/CategoryTheory/Monoidal/Rigid/FunctorCategory.lean Modified Mathlib/CategoryTheory/Monoidal/Rigid/OfEquivalence.lean Modified Mathlib/CategoryTheory/Monoidal/Skeleton.lean Modified Mathlib/CategoryTheory/Monoidal/Subcategory.lean Modified Mathlib/CategoryTheory/Monoidal/Tor.lean Modified Mathlib/CategoryTheory/Monoidal/Transport.lean Modified Mathlib/CategoryTheory/Monoidal/Types/Basic.lean Modified Mathlib/CategoryTheory/Monoidal/Types/Coyoneda.lean Modified Mathlib/CategoryTheory/Monoidal/Types/Symmetric.lean Modified Mathlib/CategoryTheory/MorphismProperty.lean Modified Mathlib/CategoryTheory/NatIso.lean Modified Mathlib/CategoryTheory/NatTrans.lean Modified Mathlib/CategoryTheory/Noetherian.lean Modified Mathlib/CategoryTheory/Opposites.lean Modified Mathlib/CategoryTheory/Over.lean Modified Mathlib/CategoryTheory/PEmpty.lean Modified Mathlib/CategoryTheory/PUnit.lean Modified Mathlib/CategoryTheory/PathCategory.lean Modified Mathlib/CategoryTheory/Pi/Basic.lean Modified Mathlib/CategoryTheory/Preadditive/AdditiveFunctor.lean Modified Mathlib/CategoryTheory/Preadditive/Basic.lean Modified Mathlib/CategoryTheory/Preadditive/Biproducts.lean Modified Mathlib/CategoryTheory/Preadditive/EilenbergMoore.lean Modified Mathlib/CategoryTheory/Preadditive/EndoFunctor.lean Modified Mathlib/CategoryTheory/Preadditive/FunctorCategory.lean Modified Mathlib/CategoryTheory/Preadditive/Generator.lean Modified Mathlib/CategoryTheory/Preadditive/HomOrthogonal.lean Modified Mathlib/CategoryTheory/Preadditive/Injective.lean Modified Mathlib/CategoryTheory/Preadditive/InjectiveResolution.lean Modified Mathlib/CategoryTheory/Preadditive/LeftExact.lean Modified Mathlib/CategoryTheory/Preadditive/Mat.lean Modified Mathlib/CategoryTheory/Preadditive/OfBiproducts.lean Modified Mathlib/CategoryTheory/Preadditive/Opposite.lean Modified Mathlib/CategoryTheory/Preadditive/Projective.lean Modified Mathlib/CategoryTheory/Preadditive/ProjectiveResolution.lean Modified Mathlib/CategoryTheory/Preadditive/Schur.lean Modified Mathlib/CategoryTheory/Preadditive/SingleObj.lean Modified Mathlib/CategoryTheory/Preadditive/Yoneda/Basic.lean Modified Mathlib/CategoryTheory/Preadditive/Yoneda/Injective.lean Modified Mathlib/CategoryTheory/Preadditive/Yoneda/Limits.lean Modified Mathlib/CategoryTheory/Preadditive/Yoneda/Projective.lean Modified Mathlib/CategoryTheory/Products/Associator.lean Modified Mathlib/CategoryTheory/Products/Basic.lean Modified Mathlib/CategoryTheory/Products/Bifunctor.lean Modified Mathlib/CategoryTheory/Quotient.lean Modified Mathlib/CategoryTheory/Shift/Basic.lean Modified Mathlib/CategoryTheory/Sigma/Basic.lean Modified Mathlib/CategoryTheory/Simple.lean Modified Mathlib/CategoryTheory/SingleObj.lean Modified Mathlib/CategoryTheory/Sites/Adjunction.lean Modified Mathlib/CategoryTheory/Sites/Canonical.lean Modified Mathlib/CategoryTheory/Sites/Closed.lean Modified Mathlib/CategoryTheory/Sites/CompatiblePlus.lean Modified Mathlib/CategoryTheory/Sites/CompatibleSheafification.lean Modified Mathlib/CategoryTheory/Sites/CoverLifting.lean Modified Mathlib/CategoryTheory/Sites/CoverPreserving.lean Modified Mathlib/CategoryTheory/Sites/DenseSubsite.lean Modified Mathlib/CategoryTheory/Sites/Grothendieck.lean Modified Mathlib/CategoryTheory/Sites/InducedTopology.lean Modified Mathlib/CategoryTheory/Sites/LeftExact.lean Modified Mathlib/CategoryTheory/Sites/Limits.lean Modified Mathlib/CategoryTheory/Sites/Plus.lean Modified Mathlib/CategoryTheory/Sites/Pretopology.lean Modified Mathlib/CategoryTheory/Sites/Pushforward.lean Modified Mathlib/CategoryTheory/Sites/Sheaf.lean Modified Mathlib/CategoryTheory/Sites/SheafOfTypes.lean Modified Mathlib/CategoryTheory/Sites/Sheafification.lean Modified Mathlib/CategoryTheory/Sites/Sieves.lean Modified Mathlib/CategoryTheory/Sites/Spaces.lean Modified Mathlib/CategoryTheory/Sites/Subsheaf.lean Modified Mathlib/CategoryTheory/Sites/Surjective.lean Modified Mathlib/CategoryTheory/Sites/Types.lean Modified Mathlib/CategoryTheory/Sites/Whiskering.lean Modified Mathlib/CategoryTheory/Skeletal.lean Modified Mathlib/CategoryTheory/StructuredArrow.lean Modified Mathlib/CategoryTheory/Subobject/Basic.lean Modified Mathlib/CategoryTheory/Subobject/Comma.lean Modified Mathlib/CategoryTheory/Subobject/FactorThru.lean Modified Mathlib/CategoryTheory/Subobject/Lattice.lean Modified Mathlib/CategoryTheory/Subobject/Limits.lean Modified Mathlib/CategoryTheory/Subobject/MonoOver.lean Modified Mathlib/CategoryTheory/Subobject/Types.lean Modified Mathlib/CategoryTheory/Subobject/WellPowered.lean Modified Mathlib/CategoryTheory/Subterminal.lean Modified Mathlib/CategoryTheory/Sums/Associator.lean Modified Mathlib/CategoryTheory/Sums/Basic.lean Modified Mathlib/CategoryTheory/Thin.lean Modified Mathlib/CategoryTheory/Triangulated/Basic.lean Modified Mathlib/CategoryTheory/Triangulated/Pretriangulated.lean Modified Mathlib/CategoryTheory/Triangulated/Rotate.lean Modified Mathlib/CategoryTheory/Triangulated/Triangulated.lean Modified Mathlib/CategoryTheory/Types.lean Modified Mathlib/CategoryTheory/Whiskering.lean Modified Mathlib/CategoryTheory/WithTerminal.lean Modified Mathlib/CategoryTheory/Yoneda.lean Modified Mathlib/Combinatorics/Additive/Behrend.lean Modified Mathlib/Combinatorics/Additive/Energy.lean Modified Mathlib/Combinatorics/Additive/Etransform.lean Modified Mathlib/Combinatorics/Additive/PluenneckeRuzsa.lean Modified Mathlib/Combinatorics/Additive/RuzsaCovering.lean Modified Mathlib/Combinatorics/Additive/SalemSpencer.lean Modified Mathlib/Combinatorics/Catalan.lean Modified Mathlib/Combinatorics/Colex.lean Modified Mathlib/Combinatorics/Composition.lean Modified Mathlib/Combinatorics/Configuration.lean Modified Mathlib/Combinatorics/Derangements/Basic.lean Modified Mathlib/Combinatorics/Derangements/Exponential.lean Modified Mathlib/Combinatorics/Derangements/Finite.lean Modified Mathlib/Combinatorics/DoubleCounting.lean Modified Mathlib/Combinatorics/HalesJewett.lean Modified Mathlib/Combinatorics/Hall/Basic.lean Modified Mathlib/Combinatorics/Hall/Finite.lean Modified Mathlib/Combinatorics/Hindman.lean Modified Mathlib/Combinatorics/Partition.lean Modified Mathlib/Combinatorics/Pigeonhole.lean Modified Mathlib/Combinatorics/Quiver/Arborescence.lean Modified Mathlib/Combinatorics/Quiver/Basic.lean Modified Mathlib/Combinatorics/Quiver/Cast.lean Modified Mathlib/Combinatorics/Quiver/ConnectedComponent.lean Modified Mathlib/Combinatorics/Quiver/Path.lean Modified Mathlib/Combinatorics/Quiver/Push.lean Modified Mathlib/Combinatorics/Quiver/SingleObj.lean Modified Mathlib/Combinatorics/Quiver/Subquiver.lean Modified Mathlib/Combinatorics/Quiver/Symmetric.lean Modified Mathlib/Combinatorics/SetFamily/Compression/Down.lean Modified Mathlib/Combinatorics/SetFamily/Compression/UV.lean Modified Mathlib/Combinatorics/SetFamily/HarrisKleitman.lean Modified Mathlib/Combinatorics/SetFamily/Intersecting.lean Modified Mathlib/Combinatorics/SetFamily/Kleitman.lean Modified Mathlib/Combinatorics/SetFamily/LYM.lean Modified Mathlib/Combinatorics/SetFamily/Shadow.lean Modified Mathlib/Combinatorics/SimpleGraph/Acyclic.lean Modified Mathlib/Combinatorics/SimpleGraph/AdjMatrix.lean Modified Mathlib/Combinatorics/SimpleGraph/Basic.lean Modified Mathlib/Combinatorics/SimpleGraph/Clique.lean Modified Mathlib/Combinatorics/SimpleGraph/Coloring.lean Modified Mathlib/Combinatorics/SimpleGraph/Connectivity.lean Modified Mathlib/Combinatorics/SimpleGraph/DegreeSum.lean Modified Mathlib/Combinatorics/SimpleGraph/Density.lean Modified Mathlib/Combinatorics/SimpleGraph/Ends/Defs.lean Modified Mathlib/Combinatorics/SimpleGraph/Ends/Properties.lean Modified Mathlib/Combinatorics/SimpleGraph/Finsubgraph.lean Modified Mathlib/Combinatorics/SimpleGraph/Hasse.lean Modified Mathlib/Combinatorics/SimpleGraph/IncMatrix.lean Modified Mathlib/Combinatorics/SimpleGraph/Matching.lean Modified Mathlib/Combinatorics/SimpleGraph/Metric.lean Modified Mathlib/Combinatorics/SimpleGraph/Partition.lean Modified Mathlib/Combinatorics/SimpleGraph/Prod.lean Modified Mathlib/Combinatorics/SimpleGraph/Regularity/Bound.lean Modified Mathlib/Combinatorics/SimpleGraph/Regularity/Chunk.lean Modified Mathlib/Combinatorics/SimpleGraph/Regularity/Energy.lean Modified Mathlib/Combinatorics/SimpleGraph/Regularity/Equitabilise.lean Modified Mathlib/Combinatorics/SimpleGraph/Regularity/Increment.lean Modified Mathlib/Combinatorics/SimpleGraph/Regularity/Lemma.lean Modified Mathlib/Combinatorics/SimpleGraph/Regularity/Uniform.lean Modified Mathlib/Combinatorics/SimpleGraph/StronglyRegular.lean Modified Mathlib/Combinatorics/SimpleGraph/Subgraph.lean Modified Mathlib/Combinatorics/SimpleGraph/Trails.lean Modified Mathlib/Combinatorics/SimpleGraph/Triangle/Basic.lean Modified Mathlib/Combinatorics/Young/SemistandardTableau.lean Modified Mathlib/Combinatorics/Young/YoungDiagram.lean Modified Mathlib/Computability/Ackermann.lean Modified Mathlib/Computability/DFA.lean Modified Mathlib/Computability/Encoding.lean Modified Mathlib/Computability/EpsilonNFA.lean Modified Mathlib/Computability/Halting.lean Modified Mathlib/Computability/Language.lean Modified Mathlib/Computability/NFA.lean Modified Mathlib/Computability/Partrec.lean Modified Mathlib/Computability/PartrecCode.lean Modified Mathlib/Computability/Primrec.lean Modified Mathlib/Computability/Reduce.lean Modified Mathlib/Computability/RegularExpressions.lean Modified Mathlib/Computability/TMComputable.lean Modified Mathlib/Computability/TMToPartrec.lean Modified Mathlib/Computability/TuringMachine.lean Modified Mathlib/Control/Applicative.lean Modified Mathlib/Control/Basic.lean Modified Mathlib/Control/Bifunctor.lean Modified Mathlib/Control/Bitraversable/Basic.lean Modified Mathlib/Control/Bitraversable/Instances.lean Modified Mathlib/Control/Bitraversable/Lemmas.lean Modified Mathlib/Control/EquivFunctor.lean Modified Mathlib/Control/EquivFunctor/Instances.lean Modified Mathlib/Control/Fix.lean Modified Mathlib/Control/Fold.lean Modified Mathlib/Control/Functor.lean Modified Mathlib/Control/Functor/Multivariate.lean Modified Mathlib/Control/LawfulFix.lean Modified Mathlib/Control/Monad/Basic.lean Modified Mathlib/Control/Monad/Cont.lean Modified Mathlib/Control/Monad/Writer.lean Modified Mathlib/Control/Random.lean Modified Mathlib/Control/Traversable/Basic.lean Modified Mathlib/Control/Traversable/Equiv.lean Modified Mathlib/Control/Traversable/Instances.lean Modified Mathlib/Control/Traversable/Lemmas.lean Modified Mathlib/Control/ULift.lean Modified Mathlib/Control/ULiftable.lean Modified Mathlib/Data/Analysis/Filter.lean Modified Mathlib/Data/Analysis/Topology.lean Modified Mathlib/Data/Array/Lemmas.lean Modified Mathlib/Data/Bitvec/Defs.lean Modified Mathlib/Data/Bitvec/Lemmas.lean Modified Mathlib/Data/Bool/AllAny.lean Modified Mathlib/Data/Bool/Basic.lean Modified Mathlib/Data/Bool/Count.lean Modified Mathlib/Data/Bool/Set.lean Modified Mathlib/Data/Bracket.lean Modified Mathlib/Data/Buffer/Basic.lean Modified Mathlib/Data/Buffer/Parser/Basic.lean Modified Mathlib/Data/Buffer/Parser/Numeral.lean Modified Mathlib/Data/Bundle.lean Modified Mathlib/Data/Char.lean Modified Mathlib/Data/Complex/Basic.lean Modified Mathlib/Data/Complex/Cardinality.lean Modified Mathlib/Data/Complex/Determinant.lean Modified Mathlib/Data/Complex/Exponential.lean Modified Mathlib/Data/Complex/ExponentialBounds.lean Modified Mathlib/Data/Complex/Module.lean Modified Mathlib/Data/Complex/Orientation.lean Modified Mathlib/Data/Countable/Basic.lean Modified Mathlib/Data/Countable/Defs.lean Modified Mathlib/Data/Countable/Small.lean Modified Mathlib/Data/DFinsupp/Basic.lean Modified Mathlib/Data/DFinsupp/Interval.lean Modified Mathlib/Data/DFinsupp/Lex.lean Modified Mathlib/Data/DFinsupp/Multiset.lean Modified Mathlib/Data/DFinsupp/NeLocus.lean Modified Mathlib/Data/DFinsupp/Order.lean Modified Mathlib/Data/DFinsupp/WellFounded.lean Modified Mathlib/Data/DList/Basic.lean Modified Mathlib/Data/DList/Defs.lean Modified Mathlib/Data/DList/Instances.lean Modified Mathlib/Data/ENat/Basic.lean Modified Mathlib/Data/ENat/Lattice.lean Modified Mathlib/Data/Erased.lean Modified Mathlib/Data/FP/Basic.lean Modified Mathlib/Data/Fin/Basic.lean Modified Mathlib/Data/Fin/Fin2.lean Modified Mathlib/Data/Fin/Interval.lean Modified Mathlib/Data/Fin/SuccPred.lean Modified Mathlib/Data/Fin/Tuple/Basic.lean Modified Mathlib/Data/Fin/Tuple/BubbleSortInduction.lean Modified Mathlib/Data/Fin/Tuple/Monotone.lean Modified Mathlib/Data/Fin/Tuple/NatAntidiagonal.lean Modified Mathlib/Data/Fin/Tuple/Reflection.lean Modified Mathlib/Data/Fin/Tuple/Sort.lean Modified Mathlib/Data/Fin/VecNotation.lean Modified Mathlib/Data/FinEnum.lean Modified Mathlib/Data/Finite/Basic.lean Modified Mathlib/Data/Finite/Card.lean Modified Mathlib/Data/Finite/Defs.lean Modified Mathlib/Data/Finite/Set.lean Modified Mathlib/Data/Finmap.lean Modified Mathlib/Data/Finset/Basic.lean Modified Mathlib/Data/Finset/Card.lean Modified Mathlib/Data/Finset/Fin.lean Modified Mathlib/Data/Finset/Finsupp.lean Modified Mathlib/Data/Finset/Fold.lean Modified Mathlib/Data/Finset/Functor.lean Modified Mathlib/Data/Finset/Image.lean Modified Mathlib/Data/Finset/Interval.lean Modified Mathlib/Data/Finset/Lattice.lean Modified Mathlib/Data/Finset/LocallyFinite.lean Modified Mathlib/Data/Finset/MulAntidiagonal.lean Modified Mathlib/Data/Finset/NAry.lean Modified Mathlib/Data/Finset/NatAntidiagonal.lean Modified Mathlib/Data/Finset/NoncommProd.lean Modified Mathlib/Data/Finset/Option.lean Modified Mathlib/Data/Finset/Order.lean Modified Mathlib/Data/Finset/PImage.lean Modified Mathlib/Data/Finset/Pairwise.lean Modified Mathlib/Data/Finset/Pi.lean Modified Mathlib/Data/Finset/PiInduction.lean Modified Mathlib/Data/Finset/Pointwise.lean Modified Mathlib/Data/Finset/Powerset.lean Modified Mathlib/Data/Finset/Preimage.lean Modified Mathlib/Data/Finset/Prod.lean Modified Mathlib/Data/Finset/Sigma.lean Modified Mathlib/Data/Finset/Slice.lean Modified Mathlib/Data/Finset/Sort.lean Modified Mathlib/Data/Finset/Sum.lean Modified Mathlib/Data/Finset/Sups.lean Modified Mathlib/Data/Finset/Sym.lean Modified Mathlib/Data/Finsupp/AList.lean Modified Mathlib/Data/Finsupp/Antidiagonal.lean Modified Mathlib/Data/Finsupp/Basic.lean Modified Mathlib/Data/Finsupp/BigOperators.lean Modified Mathlib/Data/Finsupp/Defs.lean Modified Mathlib/Data/Finsupp/Fin.lean Modified Mathlib/Data/Finsupp/Fintype.lean Modified Mathlib/Data/Finsupp/Indicator.lean Modified Mathlib/Data/Finsupp/Interval.lean Modified Mathlib/Data/Finsupp/Lex.lean Modified Mathlib/Data/Finsupp/Multiset.lean Modified Mathlib/Data/Finsupp/NeLocus.lean Modified Mathlib/Data/Finsupp/Order.lean Modified Mathlib/Data/Finsupp/Pointwise.lean Modified Mathlib/Data/Finsupp/Pwo.lean Modified Mathlib/Data/Finsupp/ToDFinsupp.lean Modified Mathlib/Data/Finsupp/WellFounded.lean Modified Mathlib/Data/Fintype/Array.lean Modified Mathlib/Data/Fintype/Basic.lean Modified Mathlib/Data/Fintype/BigOperators.lean Modified Mathlib/Data/Fintype/Card.lean Modified Mathlib/Data/Fintype/CardEmbedding.lean Modified Mathlib/Data/Fintype/Fin.lean Modified Mathlib/Data/Fintype/Lattice.lean Modified Mathlib/Data/Fintype/List.lean Modified Mathlib/Data/Fintype/Option.lean Modified Mathlib/Data/Fintype/Order.lean Modified Mathlib/Data/Fintype/Parity.lean Modified Mathlib/Data/Fintype/Perm.lean Modified Mathlib/Data/Fintype/Pi.lean Modified Mathlib/Data/Fintype/Powerset.lean Modified Mathlib/Data/Fintype/Prod.lean Modified Mathlib/Data/Fintype/Quotient.lean Modified Mathlib/Data/Fintype/Sigma.lean Modified Mathlib/Data/Fintype/Small.lean Modified Mathlib/Data/Fintype/Sort.lean Modified Mathlib/Data/Fintype/Sum.lean Modified Mathlib/Data/Fintype/Units.lean Modified Mathlib/Data/Fintype/Vector.lean Modified Mathlib/Data/FunLike/Basic.lean Modified Mathlib/Data/FunLike/Embedding.lean Modified Mathlib/Data/FunLike/Equiv.lean Modified Mathlib/Data/FunLike/Fintype.lean Modified Mathlib/Data/HashMap.lean Modified Mathlib/Data/Holor.lean Modified Mathlib/Data/Int/AbsoluteValue.lean Modified Mathlib/Data/Int/Associated.lean Modified Mathlib/Data/Int/Basic.lean Modified Mathlib/Data/Int/Bitwise.lean Modified Mathlib/Data/Int/Cast/Basic.lean Modified Mathlib/Data/Int/Cast/Defs.lean Modified Mathlib/Data/Int/Cast/Field.lean Modified Mathlib/Data/Int/Cast/Lemmas.lean Modified Mathlib/Data/Int/Cast/Prod.lean Modified Mathlib/Data/Int/CharZero.lean Modified Mathlib/Data/Int/ConditionallyCompleteOrder.lean Modified Mathlib/Data/Int/Div.lean Modified Mathlib/Data/Int/Dvd/Basic.lean Modified Mathlib/Data/Int/Dvd/Pow.lean Modified Mathlib/Data/Int/GCD.lean Modified Mathlib/Data/Int/Interval.lean Modified Mathlib/Data/Int/LeastGreatest.lean Modified Mathlib/Data/Int/Lemmas.lean Modified Mathlib/Data/Int/Log.lean Modified Mathlib/Data/Int/ModEq.lean Modified Mathlib/Data/Int/NatPrime.lean Modified Mathlib/Data/Int/Order/Basic.lean Modified Mathlib/Data/Int/Order/Lemmas.lean Modified Mathlib/Data/Int/Order/Units.lean Modified Mathlib/Data/Int/Parity.lean Modified Mathlib/Data/Int/Range.lean Modified Mathlib/Data/Int/Sqrt.lean Modified Mathlib/Data/Int/SuccPred.lean Modified Mathlib/Data/Int/Units.lean Modified Mathlib/Data/IsROrC/Basic.lean Modified Mathlib/Data/IsROrC/Lemmas.lean Modified Mathlib/Data/LazyList.lean Modified Mathlib/Data/LazyList/Basic.lean Modified Mathlib/Data/List/AList.lean Modified Mathlib/Data/List/Basic.lean Modified Mathlib/Data/List/BigOperators/Basic.lean Modified Mathlib/Data/List/BigOperators/Lemmas.lean Modified Mathlib/Data/List/Chain.lean Modified Mathlib/Data/List/Count.lean Modified Mathlib/Data/List/Cycle.lean Modified Mathlib/Data/List/Dedup.lean Modified Mathlib/Data/List/Defs.lean Modified Mathlib/Data/List/Destutter.lean Modified Mathlib/Data/List/Duplicate.lean Modified Mathlib/Data/List/FinRange.lean Modified Mathlib/Data/List/Forall2.lean Modified Mathlib/Data/List/Func.lean Modified Mathlib/Data/List/Indexes.lean Modified Mathlib/Data/List/Infix.lean Modified Mathlib/Data/List/Intervals.lean Modified Mathlib/Data/List/Join.lean Modified Mathlib/Data/List/Lattice.lean Modified Mathlib/Data/List/Lemmas.lean Modified Mathlib/Data/List/Lex.lean Modified Mathlib/Data/List/MinMax.lean Modified Mathlib/Data/List/NatAntidiagonal.lean Modified Mathlib/Data/List/Nodup.lean Modified Mathlib/Data/List/NodupEquivFin.lean Modified Mathlib/Data/List/OfFn.lean Modified Mathlib/Data/List/Pairwise.lean Modified Mathlib/Data/List/Palindrome.lean Modified Mathlib/Data/List/Perm.lean Modified Mathlib/Data/List/Permutation.lean Modified Mathlib/Data/List/Prime.lean Modified Mathlib/Data/List/ProdSigma.lean Modified Mathlib/Data/List/Range.lean Modified Mathlib/Data/List/Rdrop.lean Modified Mathlib/Data/List/Rotate.lean Modified Mathlib/Data/List/Sections.lean Modified Mathlib/Data/List/Sigma.lean Modified Mathlib/Data/List/Sort.lean Modified Mathlib/Data/List/Sublists.lean Modified Mathlib/Data/List/TFAE.lean Modified Mathlib/Data/List/ToFinsupp.lean Modified Mathlib/Data/List/Zip.lean Modified Mathlib/Data/ListM/Basic.lean Modified Mathlib/Data/Matrix/Auto.lean Modified Mathlib/Data/Matrix/Basic.lean Modified Mathlib/Data/Matrix/Basis.lean Modified Mathlib/Data/Matrix/Block.lean Modified Mathlib/Data/Matrix/CharP.lean Modified Mathlib/Data/Matrix/DMatrix.lean Modified Mathlib/Data/Matrix/DualNumber.lean Modified Mathlib/Data/Matrix/Hadamard.lean Modified Mathlib/Data/Matrix/Invertible.lean Modified Mathlib/Data/Matrix/Kronecker.lean Modified Mathlib/Data/Matrix/Notation.lean Modified Mathlib/Data/Matrix/PEquiv.lean Modified Mathlib/Data/Matrix/Rank.lean Modified Mathlib/Data/Matrix/Reflection.lean Modified Mathlib/Data/Multiset/Antidiagonal.lean Modified Mathlib/Data/Multiset/Basic.lean Modified Mathlib/Data/Multiset/Bind.lean Modified Mathlib/Data/Multiset/Dedup.lean Modified Mathlib/Data/Multiset/FinsetOps.lean Modified Mathlib/Data/Multiset/Fintype.lean Modified Mathlib/Data/Multiset/Fold.lean Modified Mathlib/Data/Multiset/Functor.lean Modified Mathlib/Data/Multiset/Interval.lean Modified Mathlib/Data/Multiset/Lattice.lean Modified Mathlib/Data/Multiset/LocallyFinite.lean Modified Mathlib/Data/Multiset/NatAntidiagonal.lean Modified Mathlib/Data/Multiset/Nodup.lean Modified Mathlib/Data/Multiset/Pi.lean Modified Mathlib/Data/Multiset/Powerset.lean Modified Mathlib/Data/Multiset/Range.lean Modified Mathlib/Data/Multiset/Sections.lean Modified Mathlib/Data/Multiset/Sort.lean Modified Mathlib/Data/Multiset/Sum.lean Modified Mathlib/Data/MvPolynomial/Basic.lean Modified Mathlib/Data/MvPolynomial/Cardinal.lean Modified Mathlib/Data/MvPolynomial/Comap.lean Modified Mathlib/Data/MvPolynomial/CommRing.lean Modified Mathlib/Data/MvPolynomial/Counit.lean Modified Mathlib/Data/MvPolynomial/Derivation.lean Modified Mathlib/Data/MvPolynomial/Division.lean Modified Mathlib/Data/MvPolynomial/Equiv.lean Modified Mathlib/Data/MvPolynomial/Expand.lean Modified Mathlib/Data/MvPolynomial/Funext.lean Modified Mathlib/Data/MvPolynomial/Invertible.lean Modified Mathlib/Data/MvPolynomial/Monad.lean Modified Mathlib/Data/MvPolynomial/PDeriv.lean Modified Mathlib/Data/MvPolynomial/Polynomial.lean Modified Mathlib/Data/MvPolynomial/Rename.lean Modified Mathlib/Data/MvPolynomial/Supported.lean Modified Mathlib/Data/MvPolynomial/Variables.lean Modified Mathlib/Data/Nat/Basic.lean Modified Mathlib/Data/Nat/Bits.lean Modified Mathlib/Data/Nat/Bitwise.lean Modified Mathlib/Data/Nat/Cast/Basic.lean Modified Mathlib/Data/Nat/Cast/Defs.lean Modified Mathlib/Data/Nat/Cast/Field.lean Modified Mathlib/Data/Nat/Cast/Prod.lean Modified Mathlib/Data/Nat/Cast/WithTop.lean Modified Mathlib/Data/Nat/Choose/Basic.lean Modified Mathlib/Data/Nat/Choose/Bounds.lean Modified Mathlib/Data/Nat/Choose/Cast.lean Modified Mathlib/Data/Nat/Choose/Central.lean Modified Mathlib/Data/Nat/Choose/Dvd.lean Modified Mathlib/Data/Nat/Choose/Factorization.lean Modified Mathlib/Data/Nat/Choose/Multinomial.lean Modified Mathlib/Data/Nat/Choose/Sum.lean Modified Mathlib/Data/Nat/Choose/Vandermonde.lean Modified Mathlib/Data/Nat/Count.lean Modified Mathlib/Data/Nat/Digits.lean Modified Mathlib/Data/Nat/Dist.lean Modified Mathlib/Data/Nat/EvenOddRec.lean Modified Mathlib/Data/Nat/Factorial/Basic.lean Modified Mathlib/Data/Nat/Factorial/BigOperators.lean Modified Mathlib/Data/Nat/Factorial/Cast.lean Modified Mathlib/Data/Nat/Factorial/DoubleFactorial.lean Modified Mathlib/Data/Nat/Factorization/Basic.lean Modified Mathlib/Data/Nat/Factorization/PrimePow.lean Modified Mathlib/Data/Nat/Factors.lean Modified Mathlib/Data/Nat/Fib.lean Modified Mathlib/Data/Nat/GCD/Basic.lean Modified Mathlib/Data/Nat/GCD/BigOperators.lean Modified Mathlib/Data/Nat/Hyperoperation.lean Modified Mathlib/Data/Nat/Interval.lean Modified Mathlib/Data/Nat/Lattice.lean Modified Mathlib/Data/Nat/Log.lean Modified Mathlib/Data/Nat/ModEq.lean Modified Mathlib/Data/Nat/Multiplicity.lean Modified Mathlib/Data/Nat/Nth.lean Modified Mathlib/Data/Nat/Order/Basic.lean Modified Mathlib/Data/Nat/Order/Lemmas.lean Modified Mathlib/Data/Nat/PSub.lean Modified Mathlib/Data/Nat/Pairing.lean Modified Mathlib/Data/Nat/Parity.lean Modified Mathlib/Data/Nat/PartENat.lean Modified Mathlib/Data/Nat/Periodic.lean Modified Mathlib/Data/Nat/Pow.lean Modified Mathlib/Data/Nat/Prime.lean Modified Mathlib/Data/Nat/PrimeFin.lean Modified Mathlib/Data/Nat/PrimeNormNum.lean Modified Mathlib/Data/Nat/Set.lean Modified Mathlib/Data/Nat/Size.lean Modified Mathlib/Data/Nat/Sqrt.lean Modified Mathlib/Data/Nat/SqrtNormNum.lean Modified Mathlib/Data/Nat/Squarefree.lean Modified Mathlib/Data/Nat/SuccPred.lean Modified Mathlib/Data/Nat/Totient.lean Modified Mathlib/Data/Nat/Units.lean Modified Mathlib/Data/Nat/Upto.lean Modified Mathlib/Data/Nat/WithBot.lean Modified Mathlib/Data/Num/Basic.lean Modified Mathlib/Data/Num/Bitwise.lean Modified Mathlib/Data/Num/Lemmas.lean Modified Mathlib/Data/Num/Prime.lean Modified Mathlib/Data/Opposite.lean Modified Mathlib/Data/Option/Basic.lean Modified Mathlib/Data/Option/Defs.lean Modified Mathlib/Data/Option/NAry.lean Modified Mathlib/Data/Ordmap/Ordnode.lean Modified Mathlib/Data/Ordmap/Ordset.lean Modified Mathlib/Data/PEquiv.lean Modified Mathlib/Data/PFun.lean Modified Mathlib/Data/PFunctor/Multivariate/Basic.lean Modified Mathlib/Data/PFunctor/Multivariate/M.lean Modified Mathlib/Data/PFunctor/Multivariate/W.lean Modified Mathlib/Data/PFunctor/Univariate/Basic.lean Modified Mathlib/Data/PFunctor/Univariate/M.lean Modified Mathlib/Data/PNat/Basic.lean Modified Mathlib/Data/PNat/Defs.lean Modified Mathlib/Data/PNat/Factors.lean Modified Mathlib/Data/PNat/Find.lean Modified Mathlib/Data/PNat/Interval.lean Modified Mathlib/Data/PNat/Prime.lean Modified Mathlib/Data/PNat/Xgcd.lean Modified Mathlib/Data/PSigma/Order.lean Modified Mathlib/Data/Part.lean Modified Mathlib/Data/Pi/Algebra.lean Modified Mathlib/Data/Pi/Interval.lean Modified Mathlib/Data/Pi/Lex.lean Modified Mathlib/Data/Polynomial/AlgebraMap.lean Modified Mathlib/Data/Polynomial/Basic.lean Modified Mathlib/Data/Polynomial/CancelLeads.lean Modified Mathlib/Data/Polynomial/Cardinal.lean Modified Mathlib/Data/Polynomial/Coeff.lean Modified Mathlib/Data/Polynomial/Degree/CardPowDegree.lean Modified Mathlib/Data/Polynomial/Degree/Definitions.lean Modified Mathlib/Data/Polynomial/Degree/Lemmas.lean Modified Mathlib/Data/Polynomial/Degree/TrailingDegree.lean Modified Mathlib/Data/Polynomial/DenomsClearable.lean Modified Mathlib/Data/Polynomial/Derivative.lean Modified Mathlib/Data/Polynomial/Div.lean Modified Mathlib/Data/Polynomial/EraseLead.lean Modified Mathlib/Data/Polynomial/Eval.lean Modified Mathlib/Data/Polynomial/Expand.lean Modified Mathlib/Data/Polynomial/FieldDivision.lean Modified Mathlib/Data/Polynomial/HasseDeriv.lean Modified Mathlib/Data/Polynomial/Identities.lean Modified Mathlib/Data/Polynomial/Induction.lean Modified Mathlib/Data/Polynomial/Inductions.lean Modified Mathlib/Data/Polynomial/IntegralNormalization.lean Modified Mathlib/Data/Polynomial/Laurent.lean Modified Mathlib/Data/Polynomial/Lifts.lean Modified Mathlib/Data/Polynomial/Mirror.lean Modified Mathlib/Data/Polynomial/Module.lean Modified Mathlib/Data/Polynomial/Monic.lean Modified Mathlib/Data/Polynomial/Monomial.lean Modified Mathlib/Data/Polynomial/PartialFractions.lean Modified Mathlib/Data/Polynomial/Reverse.lean Modified Mathlib/Data/Polynomial/RingDivision.lean Modified Mathlib/Data/Polynomial/Splits.lean Modified Mathlib/Data/Polynomial/Taylor.lean Modified Mathlib/Data/Polynomial/UnitTrinomial.lean Modified Mathlib/Data/Prod/Basic.lean Modified Mathlib/Data/Prod/Lex.lean Modified Mathlib/Data/Prod/PProd.lean Modified Mathlib/Data/Prod/TProd.lean Modified Mathlib/Data/QPF/Multivariate/Basic.lean Modified Mathlib/Data/QPF/Multivariate/Constructions/Cofix.lean Modified Mathlib/Data/QPF/Multivariate/Constructions/Comp.lean Modified Mathlib/Data/QPF/Multivariate/Constructions/Const.lean Modified Mathlib/Data/QPF/Multivariate/Constructions/Fix.lean Modified Mathlib/Data/QPF/Multivariate/Constructions/Prj.lean Modified Mathlib/Data/QPF/Multivariate/Constructions/Quot.lean Modified Mathlib/Data/QPF/Multivariate/Constructions/Sigma.lean Modified Mathlib/Data/QPF/Univariate/Basic.lean Modified Mathlib/Data/Quot.lean Modified Mathlib/Data/Rat/Basic.lean Modified Mathlib/Data/Rat/BigOperators.lean Modified Mathlib/Data/Rat/Cast.lean Modified Mathlib/Data/Rat/Defs.lean Modified Mathlib/Data/Rat/Denumerable.lean Modified Mathlib/Data/Rat/Encodable.lean Modified Mathlib/Data/Rat/Floor.lean Modified Mathlib/Data/Rat/Init.lean Modified Mathlib/Data/Rat/Lemmas.lean Modified Mathlib/Data/Rat/NNRat.lean Modified Mathlib/Data/Rat/Order.lean Modified Mathlib/Data/Rat/Sqrt.lean Modified Mathlib/Data/Rat/Star.lean Modified Mathlib/Data/Rbmap/Basic.lean Modified Mathlib/Data/Rbmap/Default.lean Modified Mathlib/Data/Rbtree/Basic.lean Modified Mathlib/Data/Rbtree/DefaultLt.lean Modified Mathlib/Data/Rbtree/Find.lean Modified Mathlib/Data/Rbtree/Init.lean Modified Mathlib/Data/Rbtree/Insert.lean Modified Mathlib/Data/Rbtree/Main.lean Modified Mathlib/Data/Rbtree/MinMax.lean Modified Mathlib/Data/Real/Basic.lean Modified Mathlib/Data/Real/Cardinality.lean Modified Mathlib/Data/Real/CauSeq.lean Modified Mathlib/Data/Real/CauSeqCompletion.lean Modified Mathlib/Data/Real/ConjugateExponents.lean Modified Mathlib/Data/Real/ENNReal.lean Modified Mathlib/Data/Real/ENatENNReal.lean Modified Mathlib/Data/Real/EReal.lean Modified Mathlib/Data/Real/GoldenRatio.lean Modified Mathlib/Data/Real/Hyperreal.lean Modified Mathlib/Data/Real/Irrational.lean Modified Mathlib/Data/Real/NNReal.lean Modified Mathlib/Data/Real/Pi/Bounds.lean Modified Mathlib/Data/Real/Pi/Leibniz.lean Modified Mathlib/Data/Real/Pi/Wallis.lean Modified Mathlib/Data/Real/Pointwise.lean Modified Mathlib/Data/Real/Sign.lean Modified Mathlib/Data/Real/Sqrt.lean Modified Mathlib/Data/Rel.lean Modified Mathlib/Data/Semiquot.lean Modified Mathlib/Data/Seq/Computation.lean Modified Mathlib/Data/Seq/Parallel.lean Modified Mathlib/Data/Seq/Seq.lean Modified Mathlib/Data/Seq/WSeq.lean Modified Mathlib/Data/Set/Accumulate.lean Modified Mathlib/Data/Set/Basic.lean Modified Mathlib/Data/Set/BoolIndicator.lean Modified Mathlib/Data/Set/Constructions.lean Modified Mathlib/Data/Set/Countable.lean Modified Mathlib/Data/Set/Enumerate.lean Modified Mathlib/Data/Set/Equitable.lean Modified Mathlib/Data/Set/Finite.lean Modified Mathlib/Data/Set/Function.lean Modified Mathlib/Data/Set/Functor.lean Modified Mathlib/Data/Set/Image.lean Modified Mathlib/Data/Set/Intervals/Basic.lean Modified Mathlib/Data/Set/Intervals/Disjoint.lean Modified Mathlib/Data/Set/Intervals/Group.lean Modified Mathlib/Data/Set/Intervals/Infinite.lean Modified Mathlib/Data/Set/Intervals/Instances.lean Modified Mathlib/Data/Set/Intervals/IsoIoo.lean Modified Mathlib/Data/Set/Intervals/Monoid.lean Modified Mathlib/Data/Set/Intervals/Monotone.lean Modified Mathlib/Data/Set/Intervals/OrdConnected.lean Modified Mathlib/Data/Set/Intervals/OrdConnectedComponent.lean Modified Mathlib/Data/Set/Intervals/OrderIso.lean Modified Mathlib/Data/Set/Intervals/Pi.lean Modified Mathlib/Data/Set/Intervals/ProjIcc.lean Modified Mathlib/Data/Set/Intervals/SurjOn.lean Modified Mathlib/Data/Set/Intervals/UnorderedInterval.lean Modified Mathlib/Data/Set/Intervals/WithBotTop.lean Modified Mathlib/Data/Set/Lattice.lean Modified Mathlib/Data/Set/List.lean Modified Mathlib/Data/Set/MulAntidiagonal.lean Modified Mathlib/Data/Set/NAry.lean Modified Mathlib/Data/Set/Ncard.lean Modified Mathlib/Data/Set/Opposite.lean Modified Mathlib/Data/Set/Pairwise/Basic.lean Modified Mathlib/Data/Set/Pairwise/Lattice.lean Modified Mathlib/Data/Set/Pointwise/Basic.lean Modified Mathlib/Data/Set/Pointwise/BigOperators.lean Modified Mathlib/Data/Set/Pointwise/Finite.lean Modified Mathlib/Data/Set/Pointwise/Interval.lean Modified Mathlib/Data/Set/Pointwise/Iterate.lean Modified Mathlib/Data/Set/Pointwise/ListOfFn.lean Modified Mathlib/Data/Set/Pointwise/SMul.lean Modified Mathlib/Data/Set/Pointwise/Support.lean Modified Mathlib/Data/Set/Prod.lean Modified Mathlib/Data/Set/Semiring.lean Modified Mathlib/Data/Set/Sigma.lean Modified Mathlib/Data/Set/Sups.lean Modified Mathlib/Data/Set/UnionLift.lean Modified Mathlib/Data/SetLike/Basic.lean Modified Mathlib/Data/SetLike/Fintype.lean Modified Mathlib/Data/Setoid/Basic.lean Modified Mathlib/Data/Setoid/Partition.lean Modified Mathlib/Data/Sigma/Basic.lean Modified Mathlib/Data/Sigma/Interval.lean Modified Mathlib/Data/Sigma/Lex.lean Modified Mathlib/Data/Sigma/Order.lean Modified Mathlib/Data/Sign.lean Modified Mathlib/Data/Stream/Defs.lean Modified Mathlib/Data/Stream/Init.lean Modified Mathlib/Data/String/Basic.lean Modified Mathlib/Data/String/Defs.lean Modified Mathlib/Data/Subtype.lean Modified Mathlib/Data/Sum/Basic.lean Modified Mathlib/Data/Sum/Interval.lean Modified Mathlib/Data/Sum/Order.lean Modified Mathlib/Data/Sym/Basic.lean Modified Mathlib/Data/Sym/Card.lean Modified Mathlib/Data/Sym/Sym2.lean Modified Mathlib/Data/Tree.lean Modified Mathlib/Data/TwoPointing.lean Modified Mathlib/Data/TypeVec.lean Modified Mathlib/Data/ULift.lean Modified Mathlib/Data/Vector.lean Modified Mathlib/Data/Vector/Basic.lean Modified Mathlib/Data/Vector/Mem.lean Modified Mathlib/Data/Vector/Zip.lean Modified Mathlib/Data/Vector3.lean Modified Mathlib/Data/W/Basic.lean Modified Mathlib/Data/W/Cardinal.lean Modified Mathlib/Data/W/Constructions.lean Modified Mathlib/Data/ZMod/Algebra.lean Modified Mathlib/Data/ZMod/Basic.lean Modified Mathlib/Data/ZMod/Coprime.lean Modified Mathlib/Data/ZMod/Defs.lean Modified Mathlib/Data/ZMod/Parity.lean Modified Mathlib/Data/ZMod/Quotient.lean Modified Mathlib/Deprecated/Group.lean Modified Mathlib/Deprecated/Ring.lean Modified Mathlib/Deprecated/Subfield.lean Modified Mathlib/Deprecated/Subgroup.lean Modified Mathlib/Deprecated/Submonoid.lean Modified Mathlib/Deprecated/Subring.lean Modified Mathlib/Dynamics/Circle/RotationNumber/TranslationNumber.lean Modified Mathlib/Dynamics/Ergodic/AddCircle.lean Modified Mathlib/Dynamics/Ergodic/Conservative.lean Modified Mathlib/Dynamics/Ergodic/Ergodic.lean Modified Mathlib/Dynamics/Ergodic/MeasurePreserving.lean Modified Mathlib/Dynamics/FixedPoints/Basic.lean Modified Mathlib/Dynamics/FixedPoints/Topology.lean Modified Mathlib/Dynamics/Flow.lean Modified Mathlib/Dynamics/Minimal.lean Modified Mathlib/Dynamics/OmegaLimit.lean Modified Mathlib/Dynamics/PeriodicPts.lean Modified Mathlib/FieldTheory/AbelRuffini.lean Modified Mathlib/FieldTheory/Adjoin.lean Modified Mathlib/FieldTheory/AxGrothendieck.lean Modified Mathlib/FieldTheory/Cardinality.lean Modified Mathlib/FieldTheory/ChevalleyWarning.lean Modified Mathlib/FieldTheory/Finite/Basic.lean Modified Mathlib/FieldTheory/Finite/GaloisField.lean Modified Mathlib/FieldTheory/Finite/Polynomial.lean Modified Mathlib/FieldTheory/Finite/Trace.lean Modified Mathlib/FieldTheory/Finiteness.lean Modified Mathlib/FieldTheory/Fixed.lean Modified Mathlib/FieldTheory/Galois.lean Modified Mathlib/FieldTheory/IntermediateField.lean Modified Mathlib/FieldTheory/IsAlgClosed/AlgebraicClosure.lean Modified Mathlib/FieldTheory/IsAlgClosed/Basic.lean Modified Mathlib/FieldTheory/IsAlgClosed/Classification.lean Modified Mathlib/FieldTheory/IsAlgClosed/Spectrum.lean Modified Mathlib/FieldTheory/KrullTopology.lean Modified Mathlib/FieldTheory/Laurent.lean Modified Mathlib/FieldTheory/Minpoly/Basic.lean Modified Mathlib/FieldTheory/Minpoly/Field.lean Modified Mathlib/FieldTheory/Minpoly/IsIntegrallyClosed.lean Modified Mathlib/FieldTheory/MvPolynomial.lean Modified Mathlib/FieldTheory/Normal.lean Modified Mathlib/FieldTheory/PerfectClosure.lean Modified Mathlib/FieldTheory/PolynomialGaloisGroup.lean Modified Mathlib/FieldTheory/PrimitiveElement.lean Modified Mathlib/FieldTheory/RatFunc.lean Modified Mathlib/FieldTheory/Separable.lean Modified Mathlib/FieldTheory/SeparableDegree.lean Modified Mathlib/FieldTheory/SplittingField/Construction.lean Modified Mathlib/FieldTheory/SplittingField/IsSplittingField.lean Modified Mathlib/FieldTheory/Subfield.lean Modified Mathlib/FieldTheory/Tower.lean Modified Mathlib/Geometry/Euclidean/Angle/Oriented/Affine.lean Modified Mathlib/Geometry/Euclidean/Angle/Oriented/Basic.lean Modified Mathlib/Geometry/Euclidean/Angle/Oriented/RightAngle.lean Modified Mathlib/Geometry/Euclidean/Angle/Oriented/Rotation.lean Modified Mathlib/Geometry/Euclidean/Angle/Sphere.lean Modified Mathlib/Geometry/Euclidean/Angle/Unoriented/Affine.lean Modified Mathlib/Geometry/Euclidean/Angle/Unoriented/Basic.lean Modified Mathlib/Geometry/Euclidean/Angle/Unoriented/Conformal.lean Modified Mathlib/Geometry/Euclidean/Angle/Unoriented/RightAngle.lean Modified Mathlib/Geometry/Euclidean/Basic.lean Modified Mathlib/Geometry/Euclidean/Circumcenter.lean Modified Mathlib/Geometry/Euclidean/Inversion/Basic.lean Modified Mathlib/Geometry/Euclidean/MongePoint.lean Modified Mathlib/Geometry/Euclidean/Sphere/Basic.lean Modified Mathlib/Geometry/Euclidean/Sphere/Power.lean Modified Mathlib/Geometry/Euclidean/Sphere/Ptolemy.lean Modified Mathlib/Geometry/Euclidean/Sphere/SecondInter.lean Modified Mathlib/Geometry/Euclidean/Triangle.lean Modified Mathlib/Geometry/Manifold/Algebra/LeftInvariantDerivation.lean Modified Mathlib/Geometry/Manifold/Algebra/LieGroup.lean Modified Mathlib/Geometry/Manifold/Algebra/Monoid.lean Modified Mathlib/Geometry/Manifold/Algebra/SmoothFunctions.lean Modified Mathlib/Geometry/Manifold/Algebra/Structures.lean Modified Mathlib/Geometry/Manifold/BumpFunction.lean Modified Mathlib/Geometry/Manifold/ChartedSpace.lean Modified Mathlib/Geometry/Manifold/Complex.lean Modified Mathlib/Geometry/Manifold/ConformalGroupoid.lean Modified Mathlib/Geometry/Manifold/ContMDiff.lean Modified Mathlib/Geometry/Manifold/ContMDiffMFDeriv.lean Modified Mathlib/Geometry/Manifold/ContMDiffMap.lean Modified Mathlib/Geometry/Manifold/DerivationBundle.lean Modified Mathlib/Geometry/Manifold/Diffeomorph.lean Modified Mathlib/Geometry/Manifold/Instances/Real.lean Modified Mathlib/Geometry/Manifold/Instances/Sphere.lean Modified Mathlib/Geometry/Manifold/Instances/UnitsOfNormedAlgebra.lean Modified Mathlib/Geometry/Manifold/LocalInvariantProperties.lean Modified Mathlib/Geometry/Manifold/MFDeriv.lean Modified Mathlib/Geometry/Manifold/Metrizable.lean Modified Mathlib/Geometry/Manifold/PartitionOfUnity.lean Modified Mathlib/Geometry/Manifold/Sheaf/Basic.lean Modified Mathlib/Geometry/Manifold/SmoothManifoldWithCorners.lean Modified Mathlib/Geometry/Manifold/VectorBundle/Basic.lean Modified Mathlib/Geometry/Manifold/VectorBundle/FiberwiseLinear.lean Modified Mathlib/Geometry/Manifold/VectorBundle/Hom.lean Modified Mathlib/Geometry/Manifold/VectorBundle/Pullback.lean Modified Mathlib/Geometry/Manifold/VectorBundle/SmoothSection.lean Modified Mathlib/Geometry/Manifold/VectorBundle/Tangent.lean Modified Mathlib/Geometry/Manifold/WhitneyEmbedding.lean Modified Mathlib/GroupTheory/Abelianization.lean Modified Mathlib/GroupTheory/Archimedean.lean Modified Mathlib/GroupTheory/Commensurable.lean Modified Mathlib/GroupTheory/Commutator.lean Modified Mathlib/GroupTheory/CommutingProbability.lean Modified Mathlib/GroupTheory/Complement.lean Modified Mathlib/GroupTheory/Congruence.lean Modified Mathlib/GroupTheory/Coset.lean Modified Mathlib/GroupTheory/Divisible.lean Modified Mathlib/GroupTheory/DoubleCoset.lean Modified Mathlib/GroupTheory/EckmannHilton.lean Modified Mathlib/GroupTheory/Exponent.lean Modified Mathlib/GroupTheory/FiniteAbelian.lean Modified Mathlib/GroupTheory/Finiteness.lean Modified Mathlib/GroupTheory/FreeAbelianGroup.lean Modified Mathlib/GroupTheory/FreeAbelianGroupFinsupp.lean Modified Mathlib/GroupTheory/FreeGroup.lean Modified Mathlib/GroupTheory/FreeProduct.lean Modified Mathlib/GroupTheory/GroupAction/Basic.lean Modified Mathlib/GroupTheory/GroupAction/BigOperators.lean Modified Mathlib/GroupTheory/GroupAction/ConjAct.lean Modified Mathlib/GroupTheory/GroupAction/Defs.lean Modified Mathlib/GroupTheory/GroupAction/Embedding.lean Modified Mathlib/GroupTheory/GroupAction/FixingSubgroup.lean Modified Mathlib/GroupTheory/GroupAction/Group.lean Modified Mathlib/GroupTheory/GroupAction/Opposite.lean Modified Mathlib/GroupTheory/GroupAction/Option.lean Modified Mathlib/GroupTheory/GroupAction/Pi.lean Modified Mathlib/GroupTheory/GroupAction/Prod.lean Modified Mathlib/GroupTheory/GroupAction/Quotient.lean Modified Mathlib/GroupTheory/GroupAction/Sigma.lean Modified Mathlib/GroupTheory/GroupAction/SubMulAction.lean Modified Mathlib/GroupTheory/GroupAction/SubMulAction/Pointwise.lean Modified Mathlib/GroupTheory/GroupAction/Sum.lean Modified Mathlib/GroupTheory/GroupAction/Support.lean Modified Mathlib/GroupTheory/GroupAction/Units.lean Modified Mathlib/GroupTheory/Index.lean Modified Mathlib/GroupTheory/IsFreeGroup.lean Modified Mathlib/GroupTheory/MonoidLocalization.lean Modified Mathlib/GroupTheory/NielsenSchreier.lean Modified Mathlib/GroupTheory/Nilpotent.lean Modified Mathlib/GroupTheory/NoncommPiCoprod.lean Modified Mathlib/GroupTheory/OrderOfElement.lean Modified Mathlib/GroupTheory/PGroup.lean Modified Mathlib/GroupTheory/Perm/Basic.lean Modified Mathlib/GroupTheory/Perm/Cycle/Basic.lean Modified Mathlib/GroupTheory/Perm/Cycle/Concrete.lean Modified Mathlib/GroupTheory/Perm/Cycle/Type.lean Modified Mathlib/GroupTheory/Perm/Fin.lean Modified Mathlib/GroupTheory/Perm/List.lean Modified Mathlib/GroupTheory/Perm/Option.lean Modified Mathlib/GroupTheory/Perm/Sign.lean Modified Mathlib/GroupTheory/Perm/Subgroup.lean Modified Mathlib/GroupTheory/Perm/Support.lean Modified Mathlib/GroupTheory/Perm/ViaEmbedding.lean Modified Mathlib/GroupTheory/PresentedGroup.lean Modified Mathlib/GroupTheory/QuotientGroup.lean Modified Mathlib/GroupTheory/Schreier.lean Modified Mathlib/GroupTheory/SchurZassenhaus.lean Modified Mathlib/GroupTheory/SemidirectProduct.lean Modified Mathlib/GroupTheory/Solvable.lean Modified Mathlib/GroupTheory/SpecificGroups/Alternating.lean Modified Mathlib/GroupTheory/SpecificGroups/Cyclic.lean Modified Mathlib/GroupTheory/SpecificGroups/Dihedral.lean Modified Mathlib/GroupTheory/SpecificGroups/Quaternion.lean Modified Mathlib/GroupTheory/Subgroup/Actions.lean Modified Mathlib/GroupTheory/Subgroup/Basic.lean Modified Mathlib/GroupTheory/Subgroup/Finite.lean Modified Mathlib/GroupTheory/Subgroup/MulOpposite.lean Modified Mathlib/GroupTheory/Subgroup/Pointwise.lean Modified Mathlib/GroupTheory/Subgroup/Saturated.lean Modified Mathlib/GroupTheory/Subgroup/Simple.lean Modified Mathlib/GroupTheory/Subgroup/ZPowers.lean Modified Mathlib/GroupTheory/Submonoid/Basic.lean Modified Mathlib/GroupTheory/Submonoid/Center.lean Modified Mathlib/GroupTheory/Submonoid/Centralizer.lean Modified Mathlib/GroupTheory/Submonoid/Inverses.lean Modified Mathlib/GroupTheory/Submonoid/Membership.lean Modified Mathlib/GroupTheory/Submonoid/Operations.lean Modified Mathlib/GroupTheory/Submonoid/Pointwise.lean Modified Mathlib/GroupTheory/Subsemigroup/Basic.lean Modified Mathlib/GroupTheory/Subsemigroup/Center.lean Modified Mathlib/GroupTheory/Subsemigroup/Centralizer.lean Modified Mathlib/GroupTheory/Subsemigroup/Membership.lean Modified Mathlib/GroupTheory/Subsemigroup/Operations.lean Modified Mathlib/GroupTheory/Sylow.lean Modified Mathlib/GroupTheory/Torsion.lean Modified Mathlib/GroupTheory/Transfer.lean Modified Mathlib/InformationTheory/Hamming.lean Modified Mathlib/Init/Algebra/Classes.lean Modified Mathlib/Init/Algebra/Functions.lean Modified Mathlib/Init/Algebra/Order.lean Modified Mathlib/Init/Control/Lawful.lean Modified Mathlib/Init/Data/Buffer/Parser.lean Modified Mathlib/Init/Data/Int/Bitwise.lean Modified Mathlib/Init/Data/Int/CompLemmas.lean Modified Mathlib/Init/Data/List/Instances.lean Modified Mathlib/Init/Data/Nat/Bitwise.lean Modified Mathlib/Init/Data/Nat/GCD.lean Modified Mathlib/Init/Data/Nat/Lemmas.lean Modified Mathlib/Init/Data/Ordering/Lemmas.lean Modified Mathlib/Init/Data/Sigma/Lex.lean Modified Mathlib/Init/Data/Subtype/Basic.lean Modified Mathlib/Init/Function.lean Modified Mathlib/Init/IteSimp.lean Modified Mathlib/Init/Meta/WellFoundedTactics.lean Modified Mathlib/Lean/Json.lean Modified Mathlib/LinearAlgebra/AdicCompletion.lean Modified Mathlib/LinearAlgebra/AffineSpace/AffineEquiv.lean Modified Mathlib/LinearAlgebra/AffineSpace/AffineMap.lean Modified Mathlib/LinearAlgebra/AffineSpace/AffineSubspace.lean Modified Mathlib/LinearAlgebra/AffineSpace/Basic.lean Modified Mathlib/LinearAlgebra/AffineSpace/Basis.lean Modified Mathlib/LinearAlgebra/AffineSpace/Combination.lean Modified Mathlib/LinearAlgebra/AffineSpace/FiniteDimensional.lean Modified Mathlib/LinearAlgebra/AffineSpace/Independent.lean Modified Mathlib/LinearAlgebra/AffineSpace/Matrix.lean Modified Mathlib/LinearAlgebra/AffineSpace/Midpoint.lean Modified Mathlib/LinearAlgebra/AffineSpace/MidpointZero.lean Modified Mathlib/LinearAlgebra/AffineSpace/Ordered.lean Modified Mathlib/LinearAlgebra/AffineSpace/Pointwise.lean Modified Mathlib/LinearAlgebra/AffineSpace/Restrict.lean Modified Mathlib/LinearAlgebra/AffineSpace/Slope.lean Modified Mathlib/LinearAlgebra/Alternating.lean Modified Mathlib/LinearAlgebra/AnnihilatingPolynomial.lean Modified Mathlib/LinearAlgebra/Basic.lean Modified Mathlib/LinearAlgebra/Basis.lean Modified Mathlib/LinearAlgebra/Basis/Bilinear.lean Modified Mathlib/LinearAlgebra/BilinearForm.lean Modified Mathlib/LinearAlgebra/BilinearForm/TensorProduct.lean Modified Mathlib/LinearAlgebra/BilinearMap.lean Modified Mathlib/LinearAlgebra/Charpoly/Basic.lean Modified Mathlib/LinearAlgebra/Charpoly/ToMatrix.lean Modified Mathlib/LinearAlgebra/CliffordAlgebra/Basic.lean Modified Mathlib/LinearAlgebra/CliffordAlgebra/Conjugation.lean Modified Mathlib/LinearAlgebra/CliffordAlgebra/Contraction.lean Modified Mathlib/LinearAlgebra/CliffordAlgebra/Equivs.lean Modified Mathlib/LinearAlgebra/CliffordAlgebra/Even.lean Modified Mathlib/LinearAlgebra/CliffordAlgebra/EvenEquiv.lean Modified Mathlib/LinearAlgebra/CliffordAlgebra/Fold.lean Modified Mathlib/LinearAlgebra/CliffordAlgebra/Grading.lean Modified Mathlib/LinearAlgebra/CliffordAlgebra/Star.lean Modified Mathlib/LinearAlgebra/Coevaluation.lean Modified Mathlib/LinearAlgebra/Contraction.lean Modified Mathlib/LinearAlgebra/CrossProduct.lean Modified Mathlib/LinearAlgebra/DFinsupp.lean Modified Mathlib/LinearAlgebra/Determinant.lean Modified Mathlib/LinearAlgebra/Dimension.lean Modified Mathlib/LinearAlgebra/DirectSum/Finsupp.lean Modified Mathlib/LinearAlgebra/DirectSum/TensorProduct.lean Modified Mathlib/LinearAlgebra/Dual.lean Modified Mathlib/LinearAlgebra/Eigenspace/Basic.lean Modified Mathlib/LinearAlgebra/Eigenspace/IsAlgClosed.lean Modified Mathlib/LinearAlgebra/Eigenspace/Minpoly.lean Modified Mathlib/LinearAlgebra/ExteriorAlgebra/Basic.lean Modified Mathlib/LinearAlgebra/ExteriorAlgebra/Grading.lean Modified Mathlib/LinearAlgebra/ExteriorAlgebra/OfAlternating.lean Modified Mathlib/LinearAlgebra/FiniteDimensional.lean Modified Mathlib/LinearAlgebra/Finrank.lean Modified Mathlib/LinearAlgebra/Finsupp.lean Modified Mathlib/LinearAlgebra/FinsuppVectorSpace.lean Modified Mathlib/LinearAlgebra/FreeAlgebra.lean Modified Mathlib/LinearAlgebra/FreeModule/Basic.lean Modified Mathlib/LinearAlgebra/FreeModule/Determinant.lean Modified Mathlib/LinearAlgebra/FreeModule/Finite/Basic.lean Modified Mathlib/LinearAlgebra/FreeModule/Finite/Matrix.lean Modified Mathlib/LinearAlgebra/FreeModule/Finite/Rank.lean Modified Mathlib/LinearAlgebra/FreeModule/IdealQuotient.lean Modified Mathlib/LinearAlgebra/FreeModule/Norm.lean Modified Mathlib/LinearAlgebra/FreeModule/PID.lean Modified Mathlib/LinearAlgebra/FreeModule/Rank.lean Modified Mathlib/LinearAlgebra/FreeModule/StrongRankCondition.lean Modified Mathlib/LinearAlgebra/GeneralLinearGroup.lean Modified Mathlib/LinearAlgebra/InvariantBasisNumber.lean Modified Mathlib/LinearAlgebra/Isomorphisms.lean Modified Mathlib/LinearAlgebra/Lagrange.lean Modified Mathlib/LinearAlgebra/LinearIndependent.lean Modified Mathlib/LinearAlgebra/LinearPMap.lean Modified Mathlib/LinearAlgebra/Matrix/AbsoluteValue.lean Modified Mathlib/LinearAlgebra/Matrix/Adjugate.lean Modified Mathlib/LinearAlgebra/Matrix/Basis.lean Modified Mathlib/LinearAlgebra/Matrix/BilinearForm.lean Modified Mathlib/LinearAlgebra/Matrix/Block.lean Modified Mathlib/LinearAlgebra/Matrix/Charpoly/Basic.lean Modified Mathlib/LinearAlgebra/Matrix/Charpoly/Coeff.lean Modified Mathlib/LinearAlgebra/Matrix/Charpoly/Eigs.lean Modified Mathlib/LinearAlgebra/Matrix/Charpoly/FiniteField.lean Modified Mathlib/LinearAlgebra/Matrix/Charpoly/LinearMap.lean Modified Mathlib/LinearAlgebra/Matrix/Charpoly/Minpoly.lean Modified Mathlib/LinearAlgebra/Matrix/Circulant.lean Modified Mathlib/LinearAlgebra/Matrix/Determinant.lean Modified Mathlib/LinearAlgebra/Matrix/Diagonal.lean Modified Mathlib/LinearAlgebra/Matrix/DotProduct.lean Modified Mathlib/LinearAlgebra/Matrix/Dual.lean Modified Mathlib/LinearAlgebra/Matrix/FiniteDimensional.lean Modified Mathlib/LinearAlgebra/Matrix/GeneralLinearGroup.lean Modified Mathlib/LinearAlgebra/Matrix/Hermitian.lean Modified Mathlib/LinearAlgebra/Matrix/InvariantBasisNumber.lean Modified Mathlib/LinearAlgebra/Matrix/IsDiag.lean Modified Mathlib/LinearAlgebra/Matrix/LDL.lean Modified Mathlib/LinearAlgebra/Matrix/MvPolynomial.lean Modified Mathlib/LinearAlgebra/Matrix/Nondegenerate.lean Modified Mathlib/LinearAlgebra/Matrix/NonsingularInverse.lean Modified Mathlib/LinearAlgebra/Matrix/Orthogonal.lean Modified Mathlib/LinearAlgebra/Matrix/Polynomial.lean Modified Mathlib/LinearAlgebra/Matrix/PosDef.lean Modified Mathlib/LinearAlgebra/Matrix/Reindex.lean Modified Mathlib/LinearAlgebra/Matrix/SchurComplement.lean Modified Mathlib/LinearAlgebra/Matrix/SesquilinearForm.lean Modified Mathlib/LinearAlgebra/Matrix/SpecialLinearGroup.lean Modified Mathlib/LinearAlgebra/Matrix/Spectrum.lean Modified Mathlib/LinearAlgebra/Matrix/Symmetric.lean Modified Mathlib/LinearAlgebra/Matrix/ToLin.lean Modified Mathlib/LinearAlgebra/Matrix/ToLinearEquiv.lean Modified Mathlib/LinearAlgebra/Matrix/Trace.lean Modified Mathlib/LinearAlgebra/Matrix/Transvection.lean Modified Mathlib/LinearAlgebra/Matrix/ZPow.lean Modified Mathlib/LinearAlgebra/Multilinear/Basic.lean Modified Mathlib/LinearAlgebra/Multilinear/Basis.lean Modified Mathlib/LinearAlgebra/Multilinear/FiniteDimensional.lean Modified Mathlib/LinearAlgebra/Multilinear/TensorProduct.lean Modified Mathlib/LinearAlgebra/Orientation.lean Modified Mathlib/LinearAlgebra/Pi.lean Modified Mathlib/LinearAlgebra/PiTensorProduct.lean Modified Mathlib/LinearAlgebra/Prod.lean Modified Mathlib/LinearAlgebra/Projection.lean Modified Mathlib/LinearAlgebra/ProjectiveSpace/Basic.lean Modified Mathlib/LinearAlgebra/ProjectiveSpace/Independence.lean Modified Mathlib/LinearAlgebra/ProjectiveSpace/Subspace.lean Modified Mathlib/LinearAlgebra/QuadraticForm/Basic.lean Modified Mathlib/LinearAlgebra/QuadraticForm/Complex.lean Modified Mathlib/LinearAlgebra/QuadraticForm/Isometry.lean Modified Mathlib/LinearAlgebra/QuadraticForm/Prod.lean Modified Mathlib/LinearAlgebra/QuadraticForm/Real.lean Modified Mathlib/LinearAlgebra/Quotient.lean Modified Mathlib/LinearAlgebra/QuotientPi.lean Modified Mathlib/LinearAlgebra/Ray.lean Modified Mathlib/LinearAlgebra/SModEq.lean Modified Mathlib/LinearAlgebra/SesquilinearForm.lean Modified Mathlib/LinearAlgebra/Span.lean Modified Mathlib/LinearAlgebra/StdBasis.lean Modified Mathlib/LinearAlgebra/SymplecticGroup.lean Modified Mathlib/LinearAlgebra/TensorAlgebra/Basic.lean Modified Mathlib/LinearAlgebra/TensorAlgebra/Grading.lean Modified Mathlib/LinearAlgebra/TensorAlgebra/ToTensorPower.lean Modified Mathlib/LinearAlgebra/TensorPower.lean Modified Mathlib/LinearAlgebra/TensorProduct.lean Modified Mathlib/LinearAlgebra/TensorProduct/Matrix.lean Modified Mathlib/LinearAlgebra/TensorProductBasis.lean Modified Mathlib/LinearAlgebra/Trace.lean Modified Mathlib/LinearAlgebra/UnitaryGroup.lean Modified Mathlib/LinearAlgebra/Vandermonde.lean Modified Mathlib/Logic/Basic.lean Modified Mathlib/Logic/Denumerable.lean Modified Mathlib/Logic/Embedding/Basic.lean Modified Mathlib/Logic/Embedding/Set.lean Modified Mathlib/Logic/Encodable/Basic.lean Modified Mathlib/Logic/Encodable/Lattice.lean Modified Mathlib/Logic/Equiv/Array.lean Modified Mathlib/Logic/Equiv/Basic.lean Modified Mathlib/Logic/Equiv/Defs.lean Modified Mathlib/Logic/Equiv/Embedding.lean Modified Mathlib/Logic/Equiv/Fin.lean Modified Mathlib/Logic/Equiv/Fintype.lean Modified Mathlib/Logic/Equiv/Functor.lean Modified Mathlib/Logic/Equiv/List.lean Modified Mathlib/Logic/Equiv/LocalEquiv.lean Modified Mathlib/Logic/Equiv/Nat.lean Modified Mathlib/Logic/Equiv/Option.lean Modified Mathlib/Logic/Equiv/Set.lean Modified Mathlib/Logic/Equiv/TransferInstance.lean Modified Mathlib/Logic/Function/Basic.lean Modified Mathlib/Logic/Function/Conjugate.lean Modified Mathlib/Logic/Function/Iterate.lean Modified Mathlib/Logic/Hydra.lean Modified Mathlib/Logic/IsEmpty.lean Modified Mathlib/Logic/Lemmas.lean Modified Mathlib/Logic/Nonempty.lean Modified Mathlib/Logic/Nontrivial.lean Modified Mathlib/Logic/Pairwise.lean Modified Mathlib/Logic/Relation.lean Modified Mathlib/Logic/Relator.lean Modified Mathlib/Logic/Small/Basic.lean Modified Mathlib/Logic/Small/List.lean Modified Mathlib/Logic/Unique.lean Modified Mathlib/MeasureTheory/CardMeasurableSpace.lean Modified Mathlib/MeasureTheory/Category/MeasCat.lean Modified Mathlib/MeasureTheory/Constructions/BorelSpace/Basic.lean Modified Mathlib/MeasureTheory/Constructions/BorelSpace/Complex.lean Modified Mathlib/MeasureTheory/Constructions/BorelSpace/ContinuousLinearMap.lean Modified Mathlib/MeasureTheory/Constructions/BorelSpace/Metrizable.lean Modified Mathlib/MeasureTheory/Constructions/Pi.lean Modified Mathlib/MeasureTheory/Constructions/Polish.lean Modified Mathlib/MeasureTheory/Constructions/Prod/Basic.lean Modified Mathlib/MeasureTheory/Constructions/Prod/Integral.lean Modified Mathlib/MeasureTheory/Covering/Besicovitch.lean Modified Mathlib/MeasureTheory/Covering/BesicovitchVectorSpace.lean Modified Mathlib/MeasureTheory/Covering/DensityTheorem.lean Modified Mathlib/MeasureTheory/Covering/Differentiation.lean Modified Mathlib/MeasureTheory/Covering/LiminfLimsup.lean Modified Mathlib/MeasureTheory/Covering/OneDim.lean Modified Mathlib/MeasureTheory/Covering/Vitali.lean Modified Mathlib/MeasureTheory/Covering/VitaliFamily.lean Modified Mathlib/MeasureTheory/Decomposition/Jordan.lean Modified Mathlib/MeasureTheory/Decomposition/Lebesgue.lean Modified Mathlib/MeasureTheory/Decomposition/RadonNikodym.lean Modified Mathlib/MeasureTheory/Decomposition/SignedHahn.lean Modified Mathlib/MeasureTheory/Decomposition/UnsignedHahn.lean Modified Mathlib/MeasureTheory/Function/AEEqFun.lean Modified Mathlib/MeasureTheory/Function/AEEqOfIntegral.lean Modified Mathlib/MeasureTheory/Function/AEMeasurableOrder.lean Modified Mathlib/MeasureTheory/Function/AEMeasurableSequence.lean Modified Mathlib/MeasureTheory/Function/ConditionalExpectation/AEMeasurable.lean Modified Mathlib/MeasureTheory/Function/ConditionalExpectation/Basic.lean Modified Mathlib/MeasureTheory/Function/ConditionalExpectation/CondexpL1.lean Modified Mathlib/MeasureTheory/Function/ConditionalExpectation/CondexpL2.lean Modified Mathlib/MeasureTheory/Function/ConditionalExpectation/Indicator.lean Modified Mathlib/MeasureTheory/Function/ConditionalExpectation/Real.lean Modified Mathlib/MeasureTheory/Function/ConditionalExpectation/Unique.lean Modified Mathlib/MeasureTheory/Function/ContinuousMapDense.lean Modified Mathlib/MeasureTheory/Function/ConvergenceInMeasure.lean Modified Mathlib/MeasureTheory/Function/Egorov.lean Modified Mathlib/MeasureTheory/Function/EssSup.lean Modified Mathlib/MeasureTheory/Function/Floor.lean Modified Mathlib/MeasureTheory/Function/Jacobian.lean Modified Mathlib/MeasureTheory/Function/L1Space.lean Modified Mathlib/MeasureTheory/Function/L2Space.lean Modified Mathlib/MeasureTheory/Function/LocallyIntegrable.lean Modified Mathlib/MeasureTheory/Function/LpOrder.lean Modified Mathlib/MeasureTheory/Function/LpSeminorm.lean Modified Mathlib/MeasureTheory/Function/LpSpace.lean Modified Mathlib/MeasureTheory/Function/SimpleFunc.lean Modified Mathlib/MeasureTheory/Function/SimpleFuncDense.lean Modified Mathlib/MeasureTheory/Function/SimpleFuncDenseLp.lean Modified Mathlib/MeasureTheory/Function/SpecialFunctions/Arctan.lean Modified Mathlib/MeasureTheory/Function/SpecialFunctions/Basic.lean Modified Mathlib/MeasureTheory/Function/SpecialFunctions/Inner.lean Modified Mathlib/MeasureTheory/Function/SpecialFunctions/IsROrC.lean Modified Mathlib/MeasureTheory/Function/StronglyMeasurable/Basic.lean Modified Mathlib/MeasureTheory/Function/StronglyMeasurable/Inner.lean Modified Mathlib/MeasureTheory/Function/StronglyMeasurable/Lp.lean Modified Mathlib/MeasureTheory/Function/UniformIntegrable.lean Modified Mathlib/MeasureTheory/Group/Action.lean Modified Mathlib/MeasureTheory/Group/AddCircle.lean Modified Mathlib/MeasureTheory/Group/Arithmetic.lean Modified Mathlib/MeasureTheory/Group/FundamentalDomain.lean Modified Mathlib/MeasureTheory/Group/GeometryOfNumbers.lean Modified Mathlib/MeasureTheory/Group/Integration.lean Modified Mathlib/MeasureTheory/Group/MeasurableEquiv.lean Modified Mathlib/MeasureTheory/Group/Measure.lean Modified Mathlib/MeasureTheory/Group/Pointwise.lean Modified Mathlib/MeasureTheory/Group/Prod.lean Modified Mathlib/MeasureTheory/Integral/Average.lean Modified Mathlib/MeasureTheory/Integral/Bochner.lean Modified Mathlib/MeasureTheory/Integral/CircleIntegral.lean Modified Mathlib/MeasureTheory/Integral/CircleTransform.lean Modified Mathlib/MeasureTheory/Integral/DivergenceTheorem.lean Modified Mathlib/MeasureTheory/Integral/ExpDecay.lean Modified Mathlib/MeasureTheory/Integral/FundThmCalculus.lean Modified Mathlib/MeasureTheory/Integral/IntegrableOn.lean Modified Mathlib/MeasureTheory/Integral/IntegralEqImproper.lean Modified Mathlib/MeasureTheory/Integral/IntervalAverage.lean Modified Mathlib/MeasureTheory/Integral/IntervalIntegral.lean Modified Mathlib/MeasureTheory/Integral/Layercake.lean Modified Mathlib/MeasureTheory/Integral/Lebesgue.lean Modified Mathlib/MeasureTheory/Integral/LebesgueNormedSpace.lean Modified Mathlib/MeasureTheory/Integral/MeanInequalities.lean Modified Mathlib/MeasureTheory/Integral/PeakFunction.lean Modified Mathlib/MeasureTheory/Integral/Periodic.lean Modified Mathlib/MeasureTheory/Integral/RieszMarkovKakutani.lean Modified Mathlib/MeasureTheory/Integral/SetIntegral.lean Modified Mathlib/MeasureTheory/Integral/SetToL1.lean Modified Mathlib/MeasureTheory/Integral/TorusIntegral.lean Modified Mathlib/MeasureTheory/Integral/VitaliCaratheodory.lean Modified Mathlib/MeasureTheory/Lattice.lean Modified Mathlib/MeasureTheory/MeasurableSpace.lean Modified Mathlib/MeasureTheory/MeasurableSpaceDef.lean Modified Mathlib/MeasureTheory/Measure/AEDisjoint.lean Modified Mathlib/MeasureTheory/Measure/AEMeasurable.lean Modified Mathlib/MeasureTheory/Measure/Complex.lean Modified Mathlib/MeasureTheory/Measure/Content.lean Modified Mathlib/MeasureTheory/Measure/Doubling.lean Modified Mathlib/MeasureTheory/Measure/FiniteMeasure.lean Modified Mathlib/MeasureTheory/Measure/GiryMonad.lean Modified Mathlib/MeasureTheory/Measure/Haar/Basic.lean Modified Mathlib/MeasureTheory/Measure/Haar/InnerProductSpace.lean Modified Mathlib/MeasureTheory/Measure/Haar/NormedSpace.lean Modified Mathlib/MeasureTheory/Measure/Haar/OfBasis.lean Modified Mathlib/MeasureTheory/Measure/Haar/Quotient.lean Modified Mathlib/MeasureTheory/Measure/Hausdorff.lean Modified Mathlib/MeasureTheory/Measure/Lebesgue/Basic.lean Modified Mathlib/MeasureTheory/Measure/Lebesgue/Complex.lean Modified Mathlib/MeasureTheory/Measure/Lebesgue/EqHaar.lean Modified Mathlib/MeasureTheory/Measure/Lebesgue/Integral.lean Modified Mathlib/MeasureTheory/Measure/MeasureSpace.lean Modified Mathlib/MeasureTheory/Measure/MeasureSpaceDef.lean Modified Mathlib/MeasureTheory/Measure/MutuallySingular.lean Modified Mathlib/MeasureTheory/Measure/NullMeasurable.lean Modified Mathlib/MeasureTheory/Measure/OpenPos.lean Modified Mathlib/MeasureTheory/Measure/OuterMeasure.lean Modified Mathlib/MeasureTheory/Measure/Portmanteau.lean Modified Mathlib/MeasureTheory/Measure/ProbabilityMeasure.lean Modified Mathlib/MeasureTheory/Measure/Regular.lean Modified Mathlib/MeasureTheory/Measure/Stieltjes.lean Modified Mathlib/MeasureTheory/Measure/Sub.lean Modified Mathlib/MeasureTheory/Measure/VectorMeasure.lean Modified Mathlib/MeasureTheory/Measure/WithDensityVectorMeasure.lean Modified Mathlib/MeasureTheory/PiSystem.lean Modified Mathlib/MeasureTheory/Tactic.lean Modified Mathlib/ModelTheory/Basic.lean Modified Mathlib/ModelTheory/Bundled.lean Modified Mathlib/ModelTheory/Definability.lean Modified Mathlib/ModelTheory/DirectLimit.lean Modified Mathlib/ModelTheory/ElementaryMaps.lean Modified Mathlib/ModelTheory/Encoding.lean Modified Mathlib/ModelTheory/FinitelyGenerated.lean Modified Mathlib/ModelTheory/Fraisse.lean Modified Mathlib/ModelTheory/Graph.lean Modified Mathlib/ModelTheory/LanguageMap.lean Modified Mathlib/ModelTheory/Order.lean Modified Mathlib/ModelTheory/Quotients.lean Modified Mathlib/ModelTheory/Satisfiability.lean Modified Mathlib/ModelTheory/Semantics.lean Modified Mathlib/ModelTheory/Skolem.lean Modified Mathlib/ModelTheory/Substructures.lean Modified Mathlib/ModelTheory/Syntax.lean Modified Mathlib/ModelTheory/Types.lean Modified Mathlib/ModelTheory/Ultraproducts.lean Modified Mathlib/NumberTheory/ADEInequality.lean Modified Mathlib/NumberTheory/ArithmeticFunction.lean Modified Mathlib/NumberTheory/Basic.lean Modified Mathlib/NumberTheory/Bernoulli.lean Modified Mathlib/NumberTheory/BernoulliPolynomials.lean Modified Mathlib/NumberTheory/Bertrand.lean Modified Mathlib/NumberTheory/ClassNumber/AdmissibleAbs.lean Modified Mathlib/NumberTheory/ClassNumber/AdmissibleAbsoluteValue.lean Modified Mathlib/NumberTheory/ClassNumber/AdmissibleCardPowDegree.lean Modified Mathlib/NumberTheory/ClassNumber/Finite.lean Modified Mathlib/NumberTheory/ClassNumber/FunctionField.lean Modified Mathlib/NumberTheory/Cyclotomic/Basic.lean Modified Mathlib/NumberTheory/Cyclotomic/Discriminant.lean Modified Mathlib/NumberTheory/Cyclotomic/Gal.lean Modified Mathlib/NumberTheory/Cyclotomic/PrimitiveRoots.lean Modified Mathlib/NumberTheory/Cyclotomic/Rat.lean Modified Mathlib/NumberTheory/Dioph.lean Modified Mathlib/NumberTheory/DiophantineApproximation.lean Modified Mathlib/NumberTheory/Divisors.lean Modified Mathlib/NumberTheory/Fermat4.lean Modified Mathlib/NumberTheory/FermatPsp.lean Modified Mathlib/NumberTheory/FrobeniusNumber.lean Modified Mathlib/NumberTheory/FunctionField.lean Modified Mathlib/NumberTheory/KummerDedekind.lean Modified Mathlib/NumberTheory/LSeries.lean Modified Mathlib/NumberTheory/LegendreSymbol/AddCharacter.lean Modified Mathlib/NumberTheory/LegendreSymbol/Basic.lean Modified Mathlib/NumberTheory/LegendreSymbol/GaussEisensteinLemmas.lean Modified Mathlib/NumberTheory/LegendreSymbol/GaussSum.lean Modified Mathlib/NumberTheory/LegendreSymbol/JacobiSymbol.lean Modified Mathlib/NumberTheory/LegendreSymbol/MulCharacter.lean Modified Mathlib/NumberTheory/LegendreSymbol/QuadraticChar/Basic.lean Modified Mathlib/NumberTheory/LegendreSymbol/QuadraticChar/GaussSum.lean Modified Mathlib/NumberTheory/LegendreSymbol/QuadraticReciprocity.lean Modified Mathlib/NumberTheory/LegendreSymbol/ZModChar.lean Modified Mathlib/NumberTheory/Liouville/Basic.lean Modified Mathlib/NumberTheory/Liouville/LiouvilleNumber.lean Modified Mathlib/NumberTheory/Liouville/LiouvilleWith.lean Modified Mathlib/NumberTheory/Liouville/Measure.lean Modified Mathlib/NumberTheory/Liouville/Residual.lean Modified Mathlib/NumberTheory/LucasLehmer.lean Modified Mathlib/NumberTheory/LucasPrimality.lean Modified Mathlib/NumberTheory/Modular.lean Modified Mathlib/NumberTheory/ModularForms/Basic.lean Modified Mathlib/NumberTheory/ModularForms/CongruenceSubgroups.lean Modified Mathlib/NumberTheory/ModularForms/JacobiTheta/Basic.lean Modified Mathlib/NumberTheory/ModularForms/JacobiTheta/Manifold.lean Modified Mathlib/NumberTheory/ModularForms/SlashActions.lean Modified Mathlib/NumberTheory/ModularForms/SlashInvariantForms.lean Modified Mathlib/NumberTheory/Multiplicity.lean Modified Mathlib/NumberTheory/NumberField/Basic.lean Modified Mathlib/NumberTheory/NumberField/CanonicalEmbedding.lean Modified Mathlib/NumberTheory/NumberField/ClassNumber.lean Modified Mathlib/NumberTheory/NumberField/Embeddings.lean Modified Mathlib/NumberTheory/NumberField/Norm.lean Modified Mathlib/NumberTheory/NumberField/Units.lean Modified Mathlib/NumberTheory/Padics/Hensel.lean Modified Mathlib/NumberTheory/Padics/PadicIntegers.lean Modified Mathlib/NumberTheory/Padics/PadicNorm.lean Modified Mathlib/NumberTheory/Padics/PadicNumbers.lean Modified Mathlib/NumberTheory/Padics/PadicVal.lean Modified Mathlib/NumberTheory/Padics/RingHoms.lean Modified Mathlib/NumberTheory/Pell.lean Modified Mathlib/NumberTheory/PellMatiyasevic.lean Modified Mathlib/NumberTheory/PrimeCounting.lean Modified Mathlib/NumberTheory/PrimesCongruentOne.lean Modified Mathlib/NumberTheory/Primorial.lean Modified Mathlib/NumberTheory/PythagoreanTriples.lean Modified Mathlib/NumberTheory/RamificationInertia.lean Modified Mathlib/NumberTheory/SumFourSquares.lean Modified Mathlib/NumberTheory/SumTwoSquares.lean Modified Mathlib/NumberTheory/VonMangoldt.lean Modified Mathlib/NumberTheory/WellApproximable.lean Modified Mathlib/NumberTheory/Wilson.lean Modified Mathlib/NumberTheory/ZetaFunction.lean Modified Mathlib/NumberTheory/ZetaValues.lean Modified Mathlib/NumberTheory/Zsqrtd/Basic.lean Modified Mathlib/NumberTheory/Zsqrtd/GaussianInt.lean Modified Mathlib/NumberTheory/Zsqrtd/QuadraticReciprocity.lean Modified Mathlib/NumberTheory/Zsqrtd/ToReal.lean Modified Mathlib/Order/Antichain.lean Modified Mathlib/Order/Antisymmetrization.lean Modified Mathlib/Order/Atoms.lean Modified Mathlib/Order/Atoms/Finite.lean Modified Mathlib/Order/Basic.lean Modified Mathlib/Order/BooleanAlgebra.lean Modified Mathlib/Order/Bounded.lean Modified Mathlib/Order/BoundedOrder.lean Modified Mathlib/Order/Bounds/Basic.lean Modified Mathlib/Order/Bounds/OrderIso.lean Modified Mathlib/Order/Category/BddDistLatCat.lean Modified Mathlib/Order/Category/BddLatCat.lean Modified Mathlib/Order/Category/BddOrdCat.lean Modified Mathlib/Order/Category/BoolAlgCat.lean Modified Mathlib/Order/Category/CompleteLatCat.lean Modified Mathlib/Order/Category/DistLatCat.lean Modified Mathlib/Order/Category/FinBddDistLatCat.lean Modified Mathlib/Order/Category/FinBoolAlgCat.lean Modified Mathlib/Order/Category/FinPartOrd.lean Modified Mathlib/Order/Category/FrmCat.lean Modified Mathlib/Order/Category/HeytAlgCat.lean Modified Mathlib/Order/Category/LatCat.lean Modified Mathlib/Order/Category/LinOrdCat.lean Modified Mathlib/Order/Category/NonemptyFinLinOrdCat.lean Modified Mathlib/Order/Category/OmegaCompletePartialOrder.lean Modified Mathlib/Order/Category/PartOrdCat.lean Modified Mathlib/Order/Category/PreordCat.lean Modified Mathlib/Order/Category/SemilatCat.lean Modified Mathlib/Order/Chain.lean Modified Mathlib/Order/Circular.lean Modified Mathlib/Order/Closure.lean Modified Mathlib/Order/CompactlyGenerated.lean Modified Mathlib/Order/Compare.lean Modified Mathlib/Order/CompleteBooleanAlgebra.lean Modified Mathlib/Order/CompleteLattice.lean Modified Mathlib/Order/CompleteLatticeIntervals.lean Modified Mathlib/Order/Concept.lean Modified Mathlib/Order/ConditionallyCompleteLattice/Basic.lean Modified Mathlib/Order/ConditionallyCompleteLattice/Finset.lean Modified Mathlib/Order/ConditionallyCompleteLattice/Group.lean Modified Mathlib/Order/Copy.lean Modified Mathlib/Order/CountableDenseLinearOrder.lean Modified Mathlib/Order/Cover.lean Modified Mathlib/Order/Directed.lean Modified Mathlib/Order/Disjoint.lean Modified Mathlib/Order/Disjointed.lean Modified Mathlib/Order/Extension/Linear.lean Modified Mathlib/Order/Extension/Well.lean Modified Mathlib/Order/Filter/Archimedean.lean Modified Mathlib/Order/Filter/AtTopBot.lean Modified Mathlib/Order/Filter/Bases.lean Modified Mathlib/Order/Filter/Basic.lean Modified Mathlib/Order/Filter/Cofinite.lean Modified Mathlib/Order/Filter/CountableInter.lean Modified Mathlib/Order/Filter/Curry.lean Modified Mathlib/Order/Filter/ENNReal.lean Modified Mathlib/Order/Filter/Extr.lean Modified Mathlib/Order/Filter/FilterProduct.lean Modified Mathlib/Order/Filter/Germ.lean Modified Mathlib/Order/Filter/IndicatorFunction.lean Modified Mathlib/Order/Filter/Interval.lean Modified Mathlib/Order/Filter/Lift.lean Modified Mathlib/Order/Filter/ModEq.lean Modified Mathlib/Order/Filter/NAry.lean Modified Mathlib/Order/Filter/Partial.lean Modified Mathlib/Order/Filter/Pi.lean Modified Mathlib/Order/Filter/Pointwise.lean Modified Mathlib/Order/Filter/Prod.lean Modified Mathlib/Order/Filter/SmallSets.lean Modified Mathlib/Order/Filter/Ultrafilter.lean Modified Mathlib/Order/Filter/ZeroAndBoundedAtFilter.lean Modified Mathlib/Order/FixedPoints.lean Modified Mathlib/Order/GaloisConnection.lean Modified Mathlib/Order/GameAdd.lean Modified Mathlib/Order/Grade.lean Modified Mathlib/Order/Height.lean Modified Mathlib/Order/Heyting/Basic.lean Modified Mathlib/Order/Heyting/Boundary.lean Modified Mathlib/Order/Heyting/Hom.lean Modified Mathlib/Order/Heyting/Regular.lean Modified Mathlib/Order/Hom/Basic.lean Modified Mathlib/Order/Hom/Bounded.lean Modified Mathlib/Order/Hom/CompleteLattice.lean Modified Mathlib/Order/Hom/Lattice.lean Modified Mathlib/Order/Hom/Order.lean Modified Mathlib/Order/Hom/Set.lean Modified Mathlib/Order/Ideal.lean Modified Mathlib/Order/InitialSeg.lean Modified Mathlib/Order/Interval.lean Modified Mathlib/Order/Irreducible.lean Modified Mathlib/Order/Iterate.lean Modified Mathlib/Order/JordanHolder.lean Modified Mathlib/Order/Lattice.lean Modified Mathlib/Order/LatticeIntervals.lean Modified Mathlib/Order/LiminfLimsup.lean Modified Mathlib/Order/LocallyFinite.lean Modified Mathlib/Order/Max.lean Modified Mathlib/Order/MinMax.lean Modified Mathlib/Order/Minimal.lean Modified Mathlib/Order/ModularLattice.lean Modified Mathlib/Order/Monotone/Basic.lean Modified Mathlib/Order/Monotone/Extension.lean Modified Mathlib/Order/Monotone/Monovary.lean Modified Mathlib/Order/Monotone/Odd.lean Modified Mathlib/Order/Monotone/Union.lean Modified Mathlib/Order/OmegaCompletePartialOrder.lean Modified Mathlib/Order/OrdContinuous.lean Modified Mathlib/Order/OrderIsoNat.lean Modified Mathlib/Order/PFilter.lean Modified Mathlib/Order/PartialSups.lean Modified Mathlib/Order/Partition/Equipartition.lean Modified Mathlib/Order/Partition/Finpartition.lean Modified Mathlib/Order/PrimeIdeal.lean Modified Mathlib/Order/PropInstances.lean Modified Mathlib/Order/RelClasses.lean Modified Mathlib/Order/RelIso/Basic.lean Modified Mathlib/Order/RelIso/Group.lean Modified Mathlib/Order/RelIso/Set.lean Modified Mathlib/Order/SemiconjSup.lean Modified Mathlib/Order/SuccPred/Basic.lean Modified Mathlib/Order/SuccPred/IntervalSucc.lean Modified Mathlib/Order/SuccPred/Limit.lean Modified Mathlib/Order/SuccPred/LinearLocallyFinite.lean Modified Mathlib/Order/SuccPred/Relation.lean Modified Mathlib/Order/SupIndep.lean Modified Mathlib/Order/SymmDiff.lean Modified Mathlib/Order/Synonym.lean Modified Mathlib/Order/UpperLower/Basic.lean Modified Mathlib/Order/UpperLower/Hom.lean Modified Mathlib/Order/UpperLower/LocallyFinite.lean Modified Mathlib/Order/WellFounded.lean Modified Mathlib/Order/WellFoundedSet.lean Modified Mathlib/Order/WithBot.lean Modified Mathlib/Order/Zorn.lean Modified Mathlib/Order/ZornAtoms.lean Modified Mathlib/Probability/BorelCantelli.lean Modified Mathlib/Probability/CondCount.lean Modified Mathlib/Probability/ConditionalExpectation.lean Modified Mathlib/Probability/ConditionalProbability.lean Modified Mathlib/Probability/Density.lean Modified Mathlib/Probability/IdentDistrib.lean Modified Mathlib/Probability/Independence/Basic.lean Modified Mathlib/Probability/Independence/ZeroOne.lean Modified Mathlib/Probability/Integration.lean Modified Mathlib/Probability/Kernel/Basic.lean Modified Mathlib/Probability/Kernel/Composition.lean Modified Mathlib/Probability/Kernel/CondCdf.lean Modified Mathlib/Probability/Kernel/CondDistrib.lean Modified Mathlib/Probability/Kernel/Condexp.lean Modified Mathlib/Probability/Kernel/Disintegration.lean Modified Mathlib/Probability/Kernel/IntegralCompProd.lean Modified Mathlib/Probability/Kernel/Invariance.lean Modified Mathlib/Probability/Kernel/MeasurableIntegral.lean Modified Mathlib/Probability/Kernel/WithDensity.lean Modified Mathlib/Probability/Martingale/Basic.lean Modified Mathlib/Probability/Martingale/BorelCantelli.lean Modified Mathlib/Probability/Martingale/Centering.lean Modified Mathlib/Probability/Martingale/Convergence.lean Modified Mathlib/Probability/Martingale/OptionalSampling.lean Modified Mathlib/Probability/Martingale/OptionalStopping.lean Modified Mathlib/Probability/Martingale/Upcrossing.lean Modified Mathlib/Probability/Moments.lean Modified Mathlib/Probability/Notation.lean Modified Mathlib/Probability/ProbabilityMassFunction/Basic.lean Modified Mathlib/Probability/ProbabilityMassFunction/Constructions.lean Modified Mathlib/Probability/ProbabilityMassFunction/Monad.lean Modified Mathlib/Probability/ProbabilityMassFunction/Uniform.lean Modified Mathlib/Probability/Process/Adapted.lean Modified Mathlib/Probability/Process/Filtration.lean Modified Mathlib/Probability/Process/HittingTime.lean Modified Mathlib/Probability/Process/Stopping.lean Modified Mathlib/Probability/StrongLaw.lean Modified Mathlib/Probability/Variance.lean Modified Mathlib/RepresentationTheory/Action.lean Modified Mathlib/RepresentationTheory/Basic.lean Modified Mathlib/RepresentationTheory/Character.lean Modified Mathlib/RepresentationTheory/FdRep.lean Modified Mathlib/RepresentationTheory/GroupCohomology/Basic.lean Modified Mathlib/RepresentationTheory/GroupCohomology/Resolution.lean Modified Mathlib/RepresentationTheory/Invariants.lean Modified Mathlib/RepresentationTheory/Maschke.lean Modified Mathlib/RepresentationTheory/Rep.lean Modified Mathlib/RingTheory/Adjoin/Basic.lean Modified Mathlib/RingTheory/Adjoin/FG.lean Modified Mathlib/RingTheory/Adjoin/Field.lean Modified Mathlib/RingTheory/Adjoin/PowerBasis.lean Modified Mathlib/RingTheory/Adjoin/Tower.lean Modified Mathlib/RingTheory/AdjoinRoot.lean Modified Mathlib/RingTheory/AlgebraTower.lean Modified Mathlib/RingTheory/Algebraic.lean Modified Mathlib/RingTheory/AlgebraicIndependent.lean Modified Mathlib/RingTheory/Artinian.lean Modified Mathlib/RingTheory/Bezout.lean Modified Mathlib/RingTheory/ChainOfDivisors.lean Modified Mathlib/RingTheory/ClassGroup.lean Modified Mathlib/RingTheory/Complex.lean Modified Mathlib/RingTheory/Congruence.lean Modified Mathlib/RingTheory/Coprime/Basic.lean Modified Mathlib/RingTheory/Coprime/Ideal.lean Modified Mathlib/RingTheory/Coprime/Lemmas.lean Modified Mathlib/RingTheory/DedekindDomain/AdicValuation.lean Modified Mathlib/RingTheory/DedekindDomain/Basic.lean Modified Mathlib/RingTheory/DedekindDomain/Dvr.lean Modified Mathlib/RingTheory/DedekindDomain/Factorization.lean Modified Mathlib/RingTheory/DedekindDomain/FiniteAdeleRing.lean Modified Mathlib/RingTheory/DedekindDomain/Ideal.lean Modified Mathlib/RingTheory/DedekindDomain/IntegralClosure.lean Modified Mathlib/RingTheory/DedekindDomain/PID.lean Modified Mathlib/RingTheory/DedekindDomain/SInteger.lean Modified Mathlib/RingTheory/DedekindDomain/SelmerGroup.lean Modified Mathlib/RingTheory/Derivation/Basic.lean Modified Mathlib/RingTheory/Derivation/Lie.lean Modified Mathlib/RingTheory/Derivation/ToSquareZero.lean Modified Mathlib/RingTheory/DiscreteValuationRing/Basic.lean Modified Mathlib/RingTheory/DiscreteValuationRing/TFAE.lean Modified Mathlib/RingTheory/Discriminant.lean Modified Mathlib/RingTheory/EisensteinCriterion.lean Modified Mathlib/RingTheory/Etale.lean Modified Mathlib/RingTheory/EuclideanDomain.lean Modified Mathlib/RingTheory/Filtration.lean Modified Mathlib/RingTheory/FinitePresentation.lean Modified Mathlib/RingTheory/FiniteType.lean Modified Mathlib/RingTheory/Finiteness.lean Modified Mathlib/RingTheory/Fintype.lean Modified Mathlib/RingTheory/Flat.lean Modified Mathlib/RingTheory/FractionalIdeal.lean Modified Mathlib/RingTheory/FreeCommRing.lean Modified Mathlib/RingTheory/FreeRing.lean Modified Mathlib/RingTheory/GradedAlgebra/Basic.lean Modified Mathlib/RingTheory/GradedAlgebra/HomogeneousIdeal.lean Modified Mathlib/RingTheory/GradedAlgebra/HomogeneousLocalization.lean Modified Mathlib/RingTheory/GradedAlgebra/Radical.lean Modified Mathlib/RingTheory/HahnSeries.lean Modified Mathlib/RingTheory/Henselian.lean Modified Mathlib/RingTheory/Ideal/AssociatedPrime.lean Modified Mathlib/RingTheory/Ideal/Basic.lean Modified Mathlib/RingTheory/Ideal/Cotangent.lean Modified Mathlib/RingTheory/Ideal/IdempotentFG.lean Modified Mathlib/RingTheory/Ideal/LocalRing.lean Modified Mathlib/RingTheory/Ideal/MinimalPrime.lean Modified Mathlib/RingTheory/Ideal/Norm.lean Modified Mathlib/RingTheory/Ideal/Operations.lean Modified Mathlib/RingTheory/Ideal/Over.lean Modified Mathlib/RingTheory/Ideal/Prod.lean Modified Mathlib/RingTheory/Ideal/Quotient.lean Modified Mathlib/RingTheory/Ideal/QuotientOperations.lean Modified Mathlib/RingTheory/Int/Basic.lean Modified Mathlib/RingTheory/IntegralClosure.lean Modified Mathlib/RingTheory/IntegralDomain.lean Modified Mathlib/RingTheory/IntegrallyClosed.lean Modified Mathlib/RingTheory/IsAdjoinRoot.lean Modified Mathlib/RingTheory/IsTensorProduct.lean Modified Mathlib/RingTheory/Jacobson.lean Modified Mathlib/RingTheory/JacobsonIdeal.lean Modified Mathlib/RingTheory/Kaehler.lean Modified Mathlib/RingTheory/LaurentSeries.lean Modified Mathlib/RingTheory/LocalProperties.lean Modified Mathlib/RingTheory/Localization/AsSubring.lean Modified Mathlib/RingTheory/Localization/AtPrime.lean Modified Mathlib/RingTheory/Localization/Away/AdjoinRoot.lean Modified Mathlib/RingTheory/Localization/Away/Basic.lean Modified Mathlib/RingTheory/Localization/Basic.lean Modified Mathlib/RingTheory/Localization/Cardinality.lean Modified Mathlib/RingTheory/Localization/FractionRing.lean Modified Mathlib/RingTheory/Localization/Ideal.lean Modified Mathlib/RingTheory/Localization/Integer.lean Modified Mathlib/RingTheory/Localization/Integral.lean Modified Mathlib/RingTheory/Localization/InvSubmonoid.lean Modified Mathlib/RingTheory/Localization/LocalizationLocalization.lean Modified Mathlib/RingTheory/Localization/Module.lean Modified Mathlib/RingTheory/Localization/Norm.lean Modified Mathlib/RingTheory/Localization/NumDen.lean Modified Mathlib/RingTheory/Localization/Submodule.lean Modified Mathlib/RingTheory/MatrixAlgebra.lean Modified Mathlib/RingTheory/Multiplicity.lean Modified Mathlib/RingTheory/MvPolynomial/Basic.lean Modified Mathlib/RingTheory/MvPolynomial/Homogeneous.lean Modified Mathlib/RingTheory/MvPolynomial/Ideal.lean Modified Mathlib/RingTheory/MvPolynomial/Symmetric.lean Modified Mathlib/RingTheory/MvPolynomial/Tower.lean Modified Mathlib/RingTheory/MvPolynomial/WeightedHomogeneous.lean Modified Mathlib/RingTheory/Nakayama.lean Modified Mathlib/RingTheory/Nilpotent.lean Modified Mathlib/RingTheory/Noetherian.lean Modified Mathlib/RingTheory/NonUnitalSubsemiring/Basic.lean Modified Mathlib/RingTheory/NonZeroDivisors.lean Modified Mathlib/RingTheory/Norm.lean Modified Mathlib/RingTheory/Nullstellensatz.lean Modified Mathlib/RingTheory/OreLocalization/Basic.lean Modified Mathlib/RingTheory/OreLocalization/OreSet.lean Modified Mathlib/RingTheory/Perfection.lean Modified Mathlib/RingTheory/Polynomial/Basic.lean Modified Mathlib/RingTheory/Polynomial/Bernstein.lean Modified Mathlib/RingTheory/Polynomial/Chebyshev.lean Modified Mathlib/RingTheory/Polynomial/Content.lean Modified Mathlib/RingTheory/Polynomial/Cyclotomic/Basic.lean Modified Mathlib/RingTheory/Polynomial/Cyclotomic/Eval.lean Modified Mathlib/RingTheory/Polynomial/Cyclotomic/Expand.lean Modified Mathlib/RingTheory/Polynomial/Cyclotomic/Roots.lean Modified Mathlib/RingTheory/Polynomial/Dickson.lean Modified Mathlib/RingTheory/Polynomial/Eisenstein/Basic.lean Modified Mathlib/RingTheory/Polynomial/Eisenstein/IsIntegral.lean Modified Mathlib/RingTheory/Polynomial/GaussLemma.lean Modified Mathlib/RingTheory/Polynomial/Hermite/Basic.lean Modified Mathlib/RingTheory/Polynomial/Hermite/Gaussian.lean Modified Mathlib/RingTheory/Polynomial/Opposites.lean Modified Mathlib/RingTheory/Polynomial/Pochhammer.lean Modified Mathlib/RingTheory/Polynomial/Quotient.lean Modified Mathlib/RingTheory/Polynomial/RationalRoot.lean Modified Mathlib/RingTheory/Polynomial/ScaleRoots.lean Modified Mathlib/RingTheory/Polynomial/Selmer.lean Modified Mathlib/RingTheory/Polynomial/Tower.lean Modified Mathlib/RingTheory/Polynomial/Vieta.lean Modified Mathlib/RingTheory/PolynomialAlgebra.lean Modified Mathlib/RingTheory/PowerBasis.lean Modified Mathlib/RingTheory/PowerSeries/Basic.lean Modified Mathlib/RingTheory/PowerSeries/WellKnown.lean Modified Mathlib/RingTheory/Prime.lean Modified Mathlib/RingTheory/PrincipalIdealDomain.lean Modified Mathlib/RingTheory/QuotientNilpotent.lean Modified Mathlib/RingTheory/QuotientNoetherian.lean Modified Mathlib/RingTheory/ReesAlgebra.lean Modified Mathlib/RingTheory/RingHom/Finite.lean Modified Mathlib/RingTheory/RingHom/FiniteType.lean Modified Mathlib/RingTheory/RingHom/Integral.lean Modified Mathlib/RingTheory/RingHom/Surjective.lean Modified Mathlib/RingTheory/RingHomProperties.lean Modified Mathlib/RingTheory/RingInvo.lean Modified Mathlib/RingTheory/RootsOfUnity/Basic.lean Modified Mathlib/RingTheory/RootsOfUnity/Complex.lean Modified Mathlib/RingTheory/RootsOfUnity/Minpoly.lean Modified Mathlib/RingTheory/SimpleModule.lean Modified Mathlib/RingTheory/Subring/Basic.lean Modified Mathlib/RingTheory/Subring/Pointwise.lean Modified Mathlib/RingTheory/Subsemiring/Basic.lean Modified Mathlib/RingTheory/Subsemiring/Pointwise.lean Modified Mathlib/RingTheory/TensorProduct.lean Modified Mathlib/RingTheory/Trace.lean Modified Mathlib/RingTheory/UniqueFactorizationDomain.lean Modified Mathlib/RingTheory/Valuation/Basic.lean Modified Mathlib/RingTheory/Valuation/ExtendToLocalization.lean Modified Mathlib/RingTheory/Valuation/Integers.lean Modified Mathlib/RingTheory/Valuation/Integral.lean Modified Mathlib/RingTheory/Valuation/Quotient.lean Modified Mathlib/RingTheory/Valuation/RamificationGroup.lean Modified Mathlib/RingTheory/Valuation/ValuationRing.lean Modified Mathlib/RingTheory/Valuation/ValuationSubring.lean Modified Mathlib/RingTheory/WittVector/Basic.lean Modified Mathlib/RingTheory/WittVector/Compare.lean Modified Mathlib/RingTheory/WittVector/Defs.lean Modified Mathlib/RingTheory/WittVector/DiscreteValuationRing.lean Modified Mathlib/RingTheory/WittVector/Domain.lean Modified Mathlib/RingTheory/WittVector/Frobenius.lean Modified Mathlib/RingTheory/WittVector/FrobeniusFractionField.lean Modified Mathlib/RingTheory/WittVector/Identities.lean Modified Mathlib/RingTheory/WittVector/InitTail.lean Modified Mathlib/RingTheory/WittVector/IsPoly.lean Modified Mathlib/RingTheory/WittVector/Isocrystal.lean Modified Mathlib/RingTheory/WittVector/MulCoeff.lean Modified Mathlib/RingTheory/WittVector/MulP.lean Modified Mathlib/RingTheory/WittVector/StructurePolynomial.lean Modified Mathlib/RingTheory/WittVector/Teichmuller.lean Modified Mathlib/RingTheory/WittVector/Truncated.lean Modified Mathlib/RingTheory/WittVector/Verschiebung.lean Modified Mathlib/RingTheory/WittVector/WittPolynomial.lean Modified Mathlib/RingTheory/ZMod.lean Modified Mathlib/SetTheory/Cardinal/Basic.lean Modified Mathlib/SetTheory/Cardinal/Cofinality.lean Modified Mathlib/SetTheory/Cardinal/Continuum.lean Modified Mathlib/SetTheory/Cardinal/Divisibility.lean Modified Mathlib/SetTheory/Cardinal/Finite.lean Modified Mathlib/SetTheory/Cardinal/Ordinal.lean Modified Mathlib/SetTheory/Cardinal/SchroederBernstein.lean Modified Mathlib/SetTheory/Game/Basic.lean Modified Mathlib/SetTheory/Game/Birthday.lean Modified Mathlib/SetTheory/Game/Domineering.lean Modified Mathlib/SetTheory/Game/Impartial.lean Modified Mathlib/SetTheory/Game/Nim.lean Modified Mathlib/SetTheory/Game/Ordinal.lean Modified Mathlib/SetTheory/Game/PGame.lean Modified Mathlib/SetTheory/Game/Short.lean Modified Mathlib/SetTheory/Game/State.lean Modified Mathlib/SetTheory/Lists.lean Modified Mathlib/SetTheory/Ordinal/Arithmetic.lean Modified Mathlib/SetTheory/Ordinal/Basic.lean Modified Mathlib/SetTheory/Ordinal/CantorNormalForm.lean Modified Mathlib/SetTheory/Ordinal/Exponential.lean Modified Mathlib/SetTheory/Ordinal/FixedPoint.lean Modified Mathlib/SetTheory/Ordinal/NaturalOps.lean Modified Mathlib/SetTheory/Ordinal/Notation.lean Modified Mathlib/SetTheory/Ordinal/Principal.lean Modified Mathlib/SetTheory/Ordinal/Topology.lean Modified Mathlib/SetTheory/Surreal/Basic.lean Modified Mathlib/SetTheory/Surreal/Dyadic.lean Modified Mathlib/SetTheory/ZFC/Basic.lean Modified Mathlib/SetTheory/ZFC/Ordinal.lean Modified Mathlib/Tactic/CategoryTheory/BicategoryCoherence.lean Modified Mathlib/Tactic/CategoryTheory/Coherence.lean Modified Mathlib/Tactic/DeriveTraversable.lean Modified Mathlib/Tactic/Group.lean Modified Mathlib/Tactic/NormNum/BigOperators.lean Modified Mathlib/Tactic/NormNum/LegendreSymbol.lean Modified Mathlib/Tactic/NormNum/Prime.lean Modified Mathlib/Testing/SlimCheck/Functions.lean Modified Mathlib/Testing/SlimCheck/Gen.lean Modified Mathlib/Testing/SlimCheck/Sampleable.lean Modified Mathlib/Testing/SlimCheck/Testable.lean Modified Mathlib/Topology/Algebra/Affine.lean Modified Mathlib/Topology/Algebra/Algebra.lean Modified Mathlib/Topology/Algebra/ConstMulAction.lean Modified Mathlib/Topology/Algebra/Constructions.lean Modified Mathlib/Topology/Algebra/ContinuousAffineMap.lean Modified Mathlib/Topology/Algebra/ContinuousMonoidHom.lean Modified Mathlib/Topology/Algebra/Equicontinuity.lean Modified Mathlib/Topology/Algebra/Field.lean Modified Mathlib/Topology/Algebra/FilterBasis.lean Modified Mathlib/Topology/Algebra/Group/Basic.lean Modified Mathlib/Topology/Algebra/Group/Compact.lean Modified Mathlib/Topology/Algebra/GroupCompletion.lean Modified Mathlib/Topology/Algebra/GroupWithZero.lean Modified Mathlib/Topology/Algebra/InfiniteSum/Basic.lean Modified Mathlib/Topology/Algebra/InfiniteSum/Module.lean Modified Mathlib/Topology/Algebra/InfiniteSum/Order.lean Modified Mathlib/Topology/Algebra/InfiniteSum/Real.lean Modified Mathlib/Topology/Algebra/InfiniteSum/Ring.lean Modified Mathlib/Topology/Algebra/Localization.lean Modified Mathlib/Topology/Algebra/Module/Basic.lean Modified Mathlib/Topology/Algebra/Module/CharacterSpace.lean Modified Mathlib/Topology/Algebra/Module/Determinant.lean Modified Mathlib/Topology/Algebra/Module/FiniteDimension.lean Modified Mathlib/Topology/Algebra/Module/LinearPMap.lean Modified Mathlib/Topology/Algebra/Module/LocallyConvex.lean Modified Mathlib/Topology/Algebra/Module/Multilinear.lean Modified Mathlib/Topology/Algebra/Module/Simple.lean Modified Mathlib/Topology/Algebra/Module/Star.lean Modified Mathlib/Topology/Algebra/Module/StrongTopology.lean Modified Mathlib/Topology/Algebra/Module/WeakDual.lean Modified Mathlib/Topology/Algebra/Monoid.lean Modified Mathlib/Topology/Algebra/MulAction.lean Modified Mathlib/Topology/Algebra/Nonarchimedean/AdicTopology.lean Modified Mathlib/Topology/Algebra/Nonarchimedean/Bases.lean Modified Mathlib/Topology/Algebra/Nonarchimedean/Basic.lean Modified Mathlib/Topology/Algebra/OpenSubgroup.lean Modified Mathlib/Topology/Algebra/Order/Archimedean.lean Modified Mathlib/Topology/Algebra/Order/Compact.lean Modified Mathlib/Topology/Algebra/Order/ExtendFrom.lean Modified Mathlib/Topology/Algebra/Order/ExtrClosure.lean Modified Mathlib/Topology/Algebra/Order/Field.lean Modified Mathlib/Topology/Algebra/Order/Filter.lean Modified Mathlib/Topology/Algebra/Order/Floor.lean Modified Mathlib/Topology/Algebra/Order/Group.lean Modified Mathlib/Topology/Algebra/Order/IntermediateValue.lean Modified Mathlib/Topology/Algebra/Order/LeftRight.lean Modified Mathlib/Topology/Algebra/Order/LeftRightLim.lean Modified Mathlib/Topology/Algebra/Order/LiminfLimsup.lean Modified Mathlib/Topology/Algebra/Order/MonotoneContinuity.lean Modified Mathlib/Topology/Algebra/Order/MonotoneConvergence.lean Modified Mathlib/Topology/Algebra/Order/ProjIcc.lean Modified Mathlib/Topology/Algebra/Order/T5.lean Modified Mathlib/Topology/Algebra/Order/UpperLower.lean Modified Mathlib/Topology/Algebra/Polynomial.lean Modified Mathlib/Topology/Algebra/Ring/Basic.lean Modified Mathlib/Topology/Algebra/Ring/Ideal.lean Modified Mathlib/Topology/Algebra/Semigroup.lean Modified Mathlib/Topology/Algebra/Star.lean Modified Mathlib/Topology/Algebra/StarSubalgebra.lean Modified Mathlib/Topology/Algebra/UniformConvergence.lean Modified Mathlib/Topology/Algebra/UniformField.lean Modified Mathlib/Topology/Algebra/UniformFilterBasis.lean Modified Mathlib/Topology/Algebra/UniformGroup.lean Modified Mathlib/Topology/Algebra/UniformMulAction.lean Modified Mathlib/Topology/Algebra/UniformRing.lean Modified Mathlib/Topology/Algebra/Valuation.lean Modified Mathlib/Topology/Algebra/ValuedField.lean Modified Mathlib/Topology/Algebra/WithZeroTopology.lean Modified Mathlib/Topology/Bases.lean Modified Mathlib/Topology/Basic.lean Modified Mathlib/Topology/Bornology/Basic.lean Modified Mathlib/Topology/Bornology/Constructions.lean Modified Mathlib/Topology/Bornology/Hom.lean Modified Mathlib/Topology/Category/Born.lean Modified Mathlib/Topology/Category/CompHaus/Basic.lean Modified Mathlib/Topology/Category/CompHaus/Projective.lean Modified Mathlib/Topology/Category/Compactum.lean Modified Mathlib/Topology/Category/Locale.lean Modified Mathlib/Topology/Category/Profinite/AsLimit.lean Modified Mathlib/Topology/Category/Profinite/Basic.lean Modified Mathlib/Topology/Category/Profinite/CofilteredLimit.lean Modified Mathlib/Topology/Category/Profinite/Projective.lean Modified Mathlib/Topology/Category/TopCat/Adjunctions.lean Modified Mathlib/Topology/Category/TopCat/Basic.lean Modified Mathlib/Topology/Category/TopCat/EpiMono.lean Modified Mathlib/Topology/Category/TopCat/Limits/Basic.lean Modified Mathlib/Topology/Category/TopCat/Limits/Cofiltered.lean Modified Mathlib/Topology/Category/TopCat/Limits/Konig.lean Modified Mathlib/Topology/Category/TopCat/Limits/Products.lean Modified Mathlib/Topology/Category/TopCat/Limits/Pullbacks.lean Modified Mathlib/Topology/Category/TopCat/OpenNhds.lean Modified Mathlib/Topology/Category/TopCat/Opens.lean Modified Mathlib/Topology/Category/TopCommRingCat.lean Modified Mathlib/Topology/Category/UniformSpace.lean Modified Mathlib/Topology/CompactOpen.lean Modified Mathlib/Topology/Compactification/OnePoint.lean Modified Mathlib/Topology/Connected.lean Modified Mathlib/Topology/Constructions.lean Modified Mathlib/Topology/ContinuousFunction/Algebra.lean Modified Mathlib/Topology/ContinuousFunction/Basic.lean Modified Mathlib/Topology/ContinuousFunction/Bounded.lean Modified Mathlib/Topology/ContinuousFunction/CocompactMap.lean Modified Mathlib/Topology/ContinuousFunction/Compact.lean Modified Mathlib/Topology/ContinuousFunction/Ideals.lean Modified Mathlib/Topology/ContinuousFunction/LocallyConstant.lean Modified Mathlib/Topology/ContinuousFunction/Ordered.lean Modified Mathlib/Topology/ContinuousFunction/Polynomial.lean Modified Mathlib/Topology/ContinuousFunction/StoneWeierstrass.lean Modified Mathlib/Topology/ContinuousFunction/T0Sierpinski.lean Modified Mathlib/Topology/ContinuousFunction/Units.lean Modified Mathlib/Topology/ContinuousFunction/Weierstrass.lean Modified Mathlib/Topology/ContinuousFunction/ZeroAtInfty.lean Modified Mathlib/Topology/ContinuousOn.lean Modified Mathlib/Topology/Covering.lean Modified Mathlib/Topology/DenseEmbedding.lean Modified Mathlib/Topology/DiscreteQuotient.lean Modified Mathlib/Topology/ExtendFrom.lean Modified Mathlib/Topology/ExtremallyDisconnected.lean Modified Mathlib/Topology/FiberBundle/Basic.lean Modified Mathlib/Topology/FiberBundle/Constructions.lean Modified Mathlib/Topology/FiberBundle/IsHomeomorphicTrivialBundle.lean Modified Mathlib/Topology/FiberBundle/Trivialization.lean Modified Mathlib/Topology/Filter.lean Modified Mathlib/Topology/GDelta.lean Modified Mathlib/Topology/Gluing.lean Modified Mathlib/Topology/Hom/Open.lean Modified Mathlib/Topology/Homeomorph.lean Modified Mathlib/Topology/Homotopy/Basic.lean Modified Mathlib/Topology/Homotopy/Contractible.lean Modified Mathlib/Topology/Homotopy/Equiv.lean Modified Mathlib/Topology/Homotopy/HSpaces.lean Modified Mathlib/Topology/Homotopy/HomotopyGroup.lean Modified Mathlib/Topology/Homotopy/Path.lean Modified Mathlib/Topology/Homotopy/Product.lean Modified Mathlib/Topology/Inseparable.lean Modified Mathlib/Topology/Instances/AddCircle.lean Modified Mathlib/Topology/Instances/Complex.lean Modified Mathlib/Topology/Instances/Discrete.lean Modified Mathlib/Topology/Instances/ENNReal.lean Modified Mathlib/Topology/Instances/EReal.lean Modified Mathlib/Topology/Instances/Int.lean Modified Mathlib/Topology/Instances/Irrational.lean Modified Mathlib/Topology/Instances/Matrix.lean Modified Mathlib/Topology/Instances/NNReal.lean Modified Mathlib/Topology/Instances/Nat.lean Modified Mathlib/Topology/Instances/Rat.lean Modified Mathlib/Topology/Instances/RatLemmas.lean Modified Mathlib/Topology/Instances/Real.lean Modified Mathlib/Topology/Instances/RealVectorSpace.lean Modified Mathlib/Topology/Instances/Sign.lean Modified Mathlib/Topology/Instances/TrivSqZeroExt.lean Modified Mathlib/Topology/IsLocallyHomeomorph.lean Modified Mathlib/Topology/List.lean Modified Mathlib/Topology/LocalAtTarget.lean Modified Mathlib/Topology/LocalExtr.lean Modified Mathlib/Topology/LocalHomeomorph.lean Modified Mathlib/Topology/LocallyConstant/Algebra.lean Modified Mathlib/Topology/LocallyConstant/Basic.lean Modified Mathlib/Topology/LocallyFinite.lean Modified Mathlib/Topology/Maps.lean Modified Mathlib/Topology/MetricSpace/Algebra.lean Modified Mathlib/Topology/MetricSpace/Antilipschitz.lean Modified Mathlib/Topology/MetricSpace/Baire.lean Modified Mathlib/Topology/MetricSpace/Basic.lean Modified Mathlib/Topology/MetricSpace/CantorScheme.lean Modified Mathlib/Topology/MetricSpace/CauSeqFilter.lean Modified Mathlib/Topology/MetricSpace/Closeds.lean Modified Mathlib/Topology/MetricSpace/Completion.lean Modified Mathlib/Topology/MetricSpace/Contracting.lean Modified Mathlib/Topology/MetricSpace/Dilation.lean Modified Mathlib/Topology/MetricSpace/EMetricParacompact.lean Modified Mathlib/Topology/MetricSpace/EMetricSpace.lean Modified Mathlib/Topology/MetricSpace/Equicontinuity.lean Modified Mathlib/Topology/MetricSpace/Gluing.lean Modified Mathlib/Topology/MetricSpace/GromovHausdorff.lean Modified Mathlib/Topology/MetricSpace/GromovHausdorffRealized.lean Modified Mathlib/Topology/MetricSpace/HausdorffDimension.lean Modified Mathlib/Topology/MetricSpace/HausdorffDistance.lean Modified Mathlib/Topology/MetricSpace/Holder.lean Modified Mathlib/Topology/MetricSpace/Infsep.lean Modified Mathlib/Topology/MetricSpace/IsometricSMul.lean Modified Mathlib/Topology/MetricSpace/Isometry.lean Modified Mathlib/Topology/MetricSpace/Kuratowski.lean Modified Mathlib/Topology/MetricSpace/Lipschitz.lean Modified Mathlib/Topology/MetricSpace/MetricSeparated.lean Modified Mathlib/Topology/MetricSpace/Metrizable.lean Modified Mathlib/Topology/MetricSpace/MetrizableUniformity.lean Modified Mathlib/Topology/MetricSpace/PartitionOfUnity.lean Modified Mathlib/Topology/MetricSpace/PiNat.lean Modified Mathlib/Topology/MetricSpace/Polish.lean Modified Mathlib/Topology/MetricSpace/ShrinkingLemma.lean Modified Mathlib/Topology/MetricSpace/ThickenedIndicator.lean Modified Mathlib/Topology/NhdsSet.lean Modified Mathlib/Topology/NoetherianSpace.lean Modified Mathlib/Topology/OmegaCompletePartialOrder.lean Modified Mathlib/Topology/Order.lean Modified Mathlib/Topology/Order/Basic.lean Modified Mathlib/Topology/Order/Hom/Basic.lean Modified Mathlib/Topology/Order/Hom/Esakia.lean Modified Mathlib/Topology/Order/Lattice.lean Modified Mathlib/Topology/Order/LowerTopology.lean Modified Mathlib/Topology/Order/Priestley.lean Modified Mathlib/Topology/Paracompact.lean Modified Mathlib/Topology/Partial.lean Modified Mathlib/Topology/PartitionOfUnity.lean Modified Mathlib/Topology/PathConnected.lean Modified Mathlib/Topology/Perfect.lean Modified Mathlib/Topology/QuasiSeparated.lean Modified Mathlib/Topology/Semicontinuous.lean Modified Mathlib/Topology/Separation.lean Modified Mathlib/Topology/Sequences.lean Modified Mathlib/Topology/Sets/Closeds.lean Modified Mathlib/Topology/Sets/Compacts.lean Modified Mathlib/Topology/Sets/Opens.lean Modified Mathlib/Topology/Sets/Order.lean Modified Mathlib/Topology/Sheaves/Abelian.lean Modified Mathlib/Topology/Sheaves/Forget.lean Modified Mathlib/Topology/Sheaves/Functors.lean Modified Mathlib/Topology/Sheaves/Limits.lean Modified Mathlib/Topology/Sheaves/LocalPredicate.lean Modified Mathlib/Topology/Sheaves/LocallySurjective.lean Modified Mathlib/Topology/Sheaves/Operations.lean Modified Mathlib/Topology/Sheaves/PUnit.lean Modified Mathlib/Topology/Sheaves/Presheaf.lean Modified Mathlib/Topology/Sheaves/PresheafOfFunctions.lean Modified Mathlib/Topology/Sheaves/Sheaf.lean Modified Mathlib/Topology/Sheaves/SheafCondition/EqualizerProducts.lean Modified Mathlib/Topology/Sheaves/SheafCondition/OpensLeCover.lean Modified Mathlib/Topology/Sheaves/SheafCondition/PairwiseIntersections.lean Modified Mathlib/Topology/Sheaves/SheafCondition/Sites.lean Modified Mathlib/Topology/Sheaves/SheafCondition/UniqueGluing.lean Modified Mathlib/Topology/Sheaves/SheafOfFunctions.lean Modified Mathlib/Topology/Sheaves/Sheafify.lean Modified Mathlib/Topology/Sheaves/Skyscraper.lean Modified Mathlib/Topology/Sheaves/Stalks.lean Modified Mathlib/Topology/ShrinkingLemma.lean Modified Mathlib/Topology/Sober.lean Modified Mathlib/Topology/Spectral/Hom.lean Modified Mathlib/Topology/StoneCech.lean Modified Mathlib/Topology/SubsetProperties.lean Modified Mathlib/Topology/Support.lean Modified Mathlib/Topology/Tactic.lean Modified Mathlib/Topology/TietzeExtension.lean Modified Mathlib/Topology/UniformSpace/AbsoluteValue.lean Modified Mathlib/Topology/UniformSpace/AbstractCompletion.lean Modified Mathlib/Topology/UniformSpace/Basic.lean Modified Mathlib/Topology/UniformSpace/Cauchy.lean Modified Mathlib/Topology/UniformSpace/Compact.lean Modified Mathlib/Topology/UniformSpace/CompactConvergence.lean Modified Mathlib/Topology/UniformSpace/CompareReals.lean Modified Mathlib/Topology/UniformSpace/CompleteSeparated.lean Modified Mathlib/Topology/UniformSpace/Completion.lean Modified Mathlib/Topology/UniformSpace/Equicontinuity.lean Modified Mathlib/Topology/UniformSpace/Equiv.lean Modified Mathlib/Topology/UniformSpace/Matrix.lean Modified Mathlib/Topology/UniformSpace/Pi.lean Modified Mathlib/Topology/UniformSpace/Separation.lean Modified Mathlib/Topology/UniformSpace/UniformConvergence.lean Modified Mathlib/Topology/UniformSpace/UniformConvergenceTopology.lean Modified Mathlib/Topology/UniformSpace/UniformEmbedding.lean Modified Mathlib/Topology/UnitInterval.lean Modified Mathlib/Topology/UrysohnsBounded.lean Modified Mathlib/Topology/UrysohnsLemma.lean Modified Mathlib/Topology/VectorBundle/Basic.lean Modified Mathlib/Topology/VectorBundle/Constructions.lean Modified Mathlib/Topology/VectorBundle/Hom.lean Added scripts/align-import.py 2023-07-19 08:39:00 d3b4f0c chore: bump quote4 (#5975) ESTIMATED CHANGES Modified Mathlib/NumberTheory/LucasLehmer.lean Modified Mathlib/Tactic/ModCases.lean Modified Mathlib/Tactic/NormNum/Basic.lean +/- def Mathlib.Meta.NormNum.evalEq +/- def Mathlib.Meta.NormNum.evalLE +/- def Mathlib.Meta.NormNum.evalLT +/- def Mathlib.Meta.NormNum.evalMkRat +/- def Mathlib.Meta.NormNum.evalNatSucc Modified Mathlib/Tactic/NormNum/BigOperators.lean Modified Mathlib/Tactic/NormNum/GCD.lean Modified Mathlib/Tactic/NormNum/IsCoprime.lean Modified Mathlib/Tactic/NormNum/LegendreSymbol.lean +/- def Tactic.NormNum.evalJacobiSym +/- def Tactic.NormNum.evalJacobiSymNat +/- def Tactic.NormNum.evalLegendreSym Modified Mathlib/Tactic/NormNum/Prime.lean Modified Mathlib/Tactic/Positivity/Core.lean Modified Mathlib/Tactic/Ring/Basic.lean Modified Mathlib/Util/Qq.lean - theorem Qq.QE.rfl + theorem Qq.QuotedDefEq.rfl Modified lake-manifest.json 2023-07-19 08:17:48 41fc6fc docs: fix links in conv guides and other typos (#5982) ESTIMATED CHANGES Modified docs/Conv/Guide.lean Modified docs/Conv/Introduction.lean 2023-07-19 07:03:02 d31423a feat: +1 proof that Sorgenfrey plane is not normal (#5775) ESTIMATED CHANGES Modified Counterexamples/SorgenfreyLine.lean + theorem Counterexample.SorgenfreyLine.cardinal_antidiagonal +/- theorem Counterexample.SorgenfreyLine.isClosed_of_subset_antidiagonal + theorem Counterexample.SorgenfreyLine.isSeparable_antidiagonal +/- theorem Counterexample.SorgenfreyLine.nhds_basis_Ico +/- theorem Counterexample.SorgenfreyLine.not_normalSpace_prod + theorem Counterexample.SorgenfreyLine.not_separableSpace_antidiagonal + theorem Counterexample.SorgenfreyLine.not_separatedNhds_rat_irrational_antidiag Modified Mathlib.lean Modified Mathlib/Topology/ContinuousFunction/Basic.lean + theorem ContinuousMap.injective_restrict Added Mathlib/Topology/Separation/NotNormal.lean + theorem IsClosed.mk_lt_continuum + theorem IsClosed.not_normal_of_continuum_le_mk 2023-07-19 05:37:55 965d6f6 feat: make `lake exe cache get!` unpack everything (#5991) Previously `lake exe cache get!` would download all files from the server, which fixes corrupted files in the `.cache` directory, but it would still skip files up to date according to the `.trace` files, so corrupted files in the `build` directory would not be fixed. (Before `leantar` all files would be unpacked regardless.) Now all files are unpacked when using `get!`. (This could be a separate option, but `get!!` is probably too confusing.) ESTIMATED CHANGES Modified Cache/IO.lean +/- def Cache.IO.unpackCache Modified Cache/Main.lean Modified Cache/Requests.lean +/- def Cache.Requests.getFiles 2023-07-19 05:37:54 12343aa chore: cleanup whitespace (#5988) Grepping for `[^ .:{-] [^ :]` and reviewing the results. Once I started I couldn't stop. :-) ESTIMATED CHANGES Modified Archive/Imo/Imo2019Q4.lean Modified Archive/Imo/Imo2021Q1.lean Modified Archive/Wiedijk100Theorems/AreaOfACircle.lean Modified Mathlib/Algebra/Algebra/NonUnitalSubalgebra.lean Modified Mathlib/Algebra/Algebra/Spectrum.lean Modified Mathlib/Algebra/Associated.lean Modified Mathlib/Algebra/BigOperators/Pi.lean Modified Mathlib/Algebra/BigOperators/Ring.lean Modified Mathlib/Algebra/Category/GroupCat/EpiMono.lean Modified Mathlib/Algebra/Category/ModuleCat/ChangeOfRings.lean +/- def CategoryTheory.ModuleCat.RestrictionCoextensionAdj.app' Modified Mathlib/Algebra/Category/MonCat/Basic.lean Modified Mathlib/Algebra/CharP/MixedCharZero.lean Modified Mathlib/Algebra/EuclideanDomain/Instances.lean Modified Mathlib/Algebra/FreeAlgebra.lean Modified Mathlib/Algebra/FreeMonoid/Basic.lean Modified Mathlib/Algebra/GCDMonoid/Basic.lean Modified Mathlib/Algebra/Group/Basic.lean Modified Mathlib/Algebra/Group/Defs.lean Modified Mathlib/Algebra/Group/Opposite.lean +/- def AddMonoidHom.mulOp Modified Mathlib/Algebra/Group/UniqueProds.lean Modified Mathlib/Algebra/GroupPower/Order.lean Modified Mathlib/Algebra/GroupPower/Ring.lean Modified Mathlib/Algebra/GroupWithZero/Units/Lemmas.lean Modified Mathlib/Algebra/Hom/Freiman.lean Modified Mathlib/Algebra/Hom/Group.lean Modified Mathlib/Algebra/Hom/GroupAction.lean Modified Mathlib/Algebra/Hom/NonUnitalAlg.lean +/- theorem NonUnitalAlgHom.coe_mk Modified Mathlib/Algebra/Homology/HomologicalComplex.lean Modified Mathlib/Algebra/Homology/ShortComplex/LeftHomology.lean Modified Mathlib/Algebra/Lie/Basic.lean +/- theorem LieModuleHom.coe_comp Modified Mathlib/Algebra/Lie/Free.lean Modified Mathlib/Algebra/Lie/Submodule.lean Modified Mathlib/Algebra/Module/Injective.lean Modified Mathlib/Algebra/Module/LocalizedModule.lean Modified Mathlib/Algebra/Module/Submodule/Basic.lean Modified Mathlib/Algebra/Module/Torsion.lean Modified Mathlib/Algebra/Module/ULift.lean Modified Mathlib/Algebra/Order/CompleteField.lean +/- theorem LinearOrderedField.inducedMap_mono Modified Mathlib/Algebra/Order/Floor.lean Modified Mathlib/Algebra/Order/Hom/Ring.lean Modified Mathlib/Algebra/Order/LatticeGroup.lean Modified Mathlib/Algebra/Order/Ring/Abs.lean Modified Mathlib/Algebra/Periodic.lean Modified Mathlib/Algebra/Regular/SMul.lean Modified Mathlib/Algebra/RingQuot.lean Modified Mathlib/Algebra/Star/Order.lean Modified Mathlib/AlgebraicGeometry/LocallyRingedSpace/HasColimits.lean Modified Mathlib/AlgebraicGeometry/OpenImmersion/Basic.lean Modified Mathlib/AlgebraicGeometry/PresheafedSpace/Gluing.lean Modified Mathlib/AlgebraicGeometry/ProjectiveSpectrum/Scheme.lean Modified Mathlib/AlgebraicGeometry/StructureSheaf.lean Modified Mathlib/AlgebraicTopology/DoldKan/GammaCompN.lean Modified Mathlib/AlgebraicTopology/SimplexCategory.lean Modified Mathlib/Analysis/Calculus/Deriv/Basic.lean Modified Mathlib/Analysis/Calculus/Deriv/Comp.lean Modified Mathlib/Analysis/Calculus/FDeriv/Equiv.lean Modified Mathlib/Analysis/Complex/CauchyIntegral.lean Modified Mathlib/Analysis/Convex/Gauge.lean Modified Mathlib/Analysis/Convex/StoneSeparation.lean Modified Mathlib/Analysis/Fourier/PoissonSummation.lean Modified Mathlib/Analysis/InnerProductSpace/Basic.lean Modified Mathlib/Analysis/InnerProductSpace/Projection.lean Modified Mathlib/Analysis/Normed/Group/Quotient.lean Modified Mathlib/Analysis/Normed/Order/Lattice.lean Modified Mathlib/Analysis/NormedSpace/AffineIsometry.lean Modified Mathlib/Analysis/NormedSpace/HahnBanach/Separation.lean Modified Mathlib/Analysis/NormedSpace/PiLp.lean Modified Mathlib/Analysis/NormedSpace/Star/ContinuousFunctionalCalculus.lean Modified Mathlib/Analysis/NormedSpace/Star/Multiplier.lean Modified Mathlib/Analysis/NormedSpace/Star/Spectrum.lean Modified Mathlib/Analysis/SpecialFunctions/JapaneseBracket.lean Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Angle.lean Modified Mathlib/Analysis/SpecificLimits/Normed.lean Modified Mathlib/CategoryTheory/Abelian/Basic.lean Modified Mathlib/CategoryTheory/Abelian/NonPreadditive.lean +/- def CategoryTheory.NonPreadditiveAbelian.isColimitσ Modified Mathlib/CategoryTheory/Action.lean Modified Mathlib/CategoryTheory/Bicategory/Basic.lean Modified Mathlib/CategoryTheory/Bicategory/Free.lean Modified Mathlib/CategoryTheory/Comma.lean Modified Mathlib/CategoryTheory/ConcreteCategory/Basic.lean +/- theorem CategoryTheory.ConcreteCategory.hasCoeToFun_Type Modified Mathlib/CategoryTheory/Endofunctor/Algebra.lean Modified Mathlib/CategoryTheory/EqToHom.lean +/- theorem CategoryTheory.congrArg_cast_hom_left Modified Mathlib/CategoryTheory/Equivalence.lean Modified Mathlib/CategoryTheory/Functor/Currying.lean Modified Mathlib/CategoryTheory/Groupoid/Subgroupoid.lean Modified Mathlib/CategoryTheory/Idempotents/Biproducts.lean Modified Mathlib/CategoryTheory/IsConnected.lean Modified Mathlib/CategoryTheory/Limits/Comma.lean Modified Mathlib/CategoryTheory/Limits/Constructions/Equalizers.lean Modified Mathlib/CategoryTheory/Limits/Constructions/FiniteProductsOfBinaryProducts.lean Modified Mathlib/CategoryTheory/Limits/Constructions/LimitsOfProductsAndEqualizers.lean Modified Mathlib/CategoryTheory/Limits/FunctorCategory.lean Modified Mathlib/CategoryTheory/Limits/HasLimits.lean +/- theorem CategoryTheory.Limits.colimit.pre_pre +/- theorem CategoryTheory.Limits.limit.pre_pre Modified Mathlib/CategoryTheory/Limits/Preserves/Finite.lean Modified Mathlib/CategoryTheory/Limits/Preserves/Shapes/Pullbacks.lean Modified Mathlib/CategoryTheory/Limits/Preserves/Shapes/Zero.lean Modified Mathlib/CategoryTheory/Limits/Shapes/BinaryProducts.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Biproducts.lean +/- theorem CategoryTheory.Limits.biprod.fstKernelFork_ι +/- theorem CategoryTheory.Limits.biprod.sndKernelFork_ι Modified Mathlib/CategoryTheory/Limits/Shapes/Diagonal.lean Modified Mathlib/CategoryTheory/Limits/Shapes/DisjointCoproduct.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Equalizers.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Images.lean +/- theorem CategoryTheory.Limits.ImageMap.map_uniq +/- theorem CategoryTheory.Limits.ImageMap.map_uniq_aux +/- theorem CategoryTheory.Limits.ImageMap.mk.injEq' Modified Mathlib/CategoryTheory/Limits/Shapes/KernelPair.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Kernels.lean Modified Mathlib/CategoryTheory/Limits/Shapes/NormalMono/Basic.lean Modified Mathlib/CategoryTheory/Limits/Shapes/NormalMono/Equalizers.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Products.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Pullbacks.lean +/- theorem CategoryTheory.Limits.inl_inl_pushoutAssoc_hom +/- theorem CategoryTheory.Limits.inl_inr_pushoutAssoc_inv +/- theorem CategoryTheory.Limits.inl_pushoutAssoc_inv +/- theorem CategoryTheory.Limits.inr_inl_pushoutAssoc_hom +/- theorem CategoryTheory.Limits.inr_inr_pushoutAssoc_inv +/- theorem CategoryTheory.Limits.inr_pushoutAssoc_hom Modified Mathlib/CategoryTheory/Limits/Shapes/WideEqualizers.lean Modified Mathlib/CategoryTheory/Limits/Shapes/WidePullbacks.lean Modified Mathlib/CategoryTheory/Limits/Shapes/ZeroMorphisms.lean +/- theorem CategoryTheory.Limits.id_zero +/- def CategoryTheory.Limits.monoFactorisationZero Modified Mathlib/CategoryTheory/Monad/Kleisli.lean Modified Mathlib/CategoryTheory/Monad/Monadicity.lean Modified Mathlib/CategoryTheory/Monoidal/End.lean Modified Mathlib/CategoryTheory/Monoidal/Free/Basic.lean Modified Mathlib/CategoryTheory/Monoidal/Free/Coherence.lean Modified Mathlib/CategoryTheory/Monoidal/Internal/FunctorCategory.lean +/- def CategoryTheory.Monoidal.MonFunctorCategoryEquivalence.Functor.obj Modified Mathlib/CategoryTheory/MorphismProperty.lean Modified Mathlib/CategoryTheory/Opposites.lean Modified Mathlib/CategoryTheory/Over.lean Modified Mathlib/CategoryTheory/PUnit.lean Modified Mathlib/CategoryTheory/Pi/Basic.lean +/- theorem CategoryTheory.Functor.pi'_eval Modified Mathlib/CategoryTheory/Preadditive/AdditiveFunctor.lean Modified Mathlib/CategoryTheory/Preadditive/Basic.lean Modified Mathlib/CategoryTheory/Preadditive/Biproducts.lean Modified Mathlib/CategoryTheory/Preadditive/Injective.lean Modified Mathlib/CategoryTheory/Preadditive/InjectiveResolution.lean Modified Mathlib/CategoryTheory/Preadditive/Mat.lean Modified Mathlib/CategoryTheory/Preadditive/OfBiproducts.lean Modified Mathlib/CategoryTheory/Preadditive/Yoneda/Injective.lean Modified Mathlib/CategoryTheory/Shift/Basic.lean Modified Mathlib/CategoryTheory/Shift/CommShift.lean +/- theorem CategoryTheory.Functor.CommShift.isoAdd_hom_app +/- theorem CategoryTheory.Functor.CommShift.isoAdd_inv_app Modified Mathlib/CategoryTheory/Sites/Coherent.lean Modified Mathlib/CategoryTheory/Sites/CompatiblePlus.lean Modified Mathlib/CategoryTheory/Sites/Coverage.lean Modified Mathlib/CategoryTheory/Sites/SheafOfTypes.lean Modified Mathlib/CategoryTheory/Sites/Subsheaf.lean Modified Mathlib/CategoryTheory/Skeletal.lean +/- def CategoryTheory.ThinSkeleton.map₂NatTrans Modified Mathlib/CategoryTheory/Subobject/Basic.lean Modified Mathlib/CategoryTheory/Subobject/Lattice.lean +/- theorem CategoryTheory.Subobject.le_sInf Modified Mathlib/CategoryTheory/Subterminal.lean Modified Mathlib/Combinatorics/Derangements/Finite.lean Modified Mathlib/Combinatorics/HalesJewett.lean Modified Mathlib/Combinatorics/SimpleGraph/Connectivity.lean +/- theorem SimpleGraph.Walk.support_transfer Modified Mathlib/Combinatorics/SimpleGraph/Regularity/Uniform.lean Modified Mathlib/Control/Monad/Writer.lean Modified Mathlib/Control/Random.lean +/- def Random.randBound Modified Mathlib/Data/Char.lean Modified Mathlib/Data/Complex/Basic.lean Modified Mathlib/Data/ENat/Basic.lean Modified Mathlib/Data/Fin/Basic.lean Modified Mathlib/Data/Finset/NoncommProd.lean Modified Mathlib/Data/Finset/Pointwise.lean +/- theorem Finset.coe_smul_finset Modified Mathlib/Data/Finsupp/Basic.lean Modified Mathlib/Data/Fintype/Order.lean Modified Mathlib/Data/Fintype/Perm.lean Modified Mathlib/Data/List/Basic.lean +/- theorem List.filter_true Modified Mathlib/Data/List/Card.lean Modified Mathlib/Data/List/Cycle.lean Modified Mathlib/Data/List/Sort.lean Modified Mathlib/Data/Matrix/Basic.lean Modified Mathlib/Data/Matrix/Hadamard.lean Modified Mathlib/Data/Matrix/Reflection.lean Modified Mathlib/Data/Nat/Cast/Basic.lean +/- theorem map_ofNat Modified Mathlib/Data/Nat/Choose/Bounds.lean +/- theorem Nat.choose_le_pow Modified Mathlib/Data/Nat/Order/Basic.lean Modified Mathlib/Data/Nat/Prime.lean Modified Mathlib/Data/Nat/Squarefree.lean Modified Mathlib/Data/Nat/Totient.lean Modified Mathlib/Data/Nat/Upto.lean Modified Mathlib/Data/Ordmap/Ordnode.lean +/- def Ordnode.repr Modified Mathlib/Data/Ordmap/Ordset.lean Modified Mathlib/Data/PFun.lean Modified Mathlib/Data/PFunctor/Univariate/Basic.lean Modified Mathlib/Data/PNat/Interval.lean Modified Mathlib/Data/Polynomial/Derivative.lean Modified Mathlib/Data/Polynomial/Identities.lean Modified Mathlib/Data/Polynomial/RingDivision.lean +/- theorem Polynomial.map_roots_le Modified Mathlib/Data/Rat/Defs.lean Modified Mathlib/Data/Real/Basic.lean Modified Mathlib/Data/Seq/Computation.lean Modified Mathlib/Data/Seq/WSeq.lean Modified Mathlib/Data/Set/Basic.lean Modified Mathlib/Data/Set/Finite.lean Modified Mathlib/Data/Set/Intervals/OrdConnected.lean +/- theorem Set.ordConnected_biInter Modified Mathlib/Data/Set/Intervals/OrdConnectedComponent.lean +/- theorem Set.mem_ordConnectedComponent Modified Mathlib/Data/Set/Lattice.lean Modified Mathlib/Data/Setoid/Partition.lean Modified Mathlib/Data/Sigma/Basic.lean Modified Mathlib/Data/Sign.lean Modified Mathlib/Data/Stream/Init.lean +/- theorem Stream'.eq_of_bisim Modified Mathlib/Data/Sum/Order.lean Modified Mathlib/Data/TypeVec.lean +/- theorem TypeVec.toSubtype_of_subtype_assoc +/- def TypeVec.typevecCasesNil₃ Modified Mathlib/Data/UInt.lean Modified Mathlib/Data/Vector/MapLemmas.lean +/- theorem Vector.mapAccumr₂_mapAccumr₂_right_left +/- theorem Vector.mapAccumr₂_mapAccumr₂_right_right Modified Mathlib/Dynamics/Circle/RotationNumber/TranslationNumber.lean Modified Mathlib/FieldTheory/Adjoin.lean Modified Mathlib/FieldTheory/Finite/GaloisField.lean Modified Mathlib/FieldTheory/PolynomialGaloisGroup.lean Modified Mathlib/FieldTheory/RatFunc.lean Modified Mathlib/FieldTheory/Subfield.lean Modified Mathlib/Geometry/Manifold/ContMDiffMFDeriv.lean Modified Mathlib/Geometry/Manifold/MFDeriv.lean Modified Mathlib/GroupTheory/Commensurable.lean Modified Mathlib/GroupTheory/FreeGroup.lean Modified Mathlib/GroupTheory/FreeProduct.lean Modified Mathlib/GroupTheory/MonoidLocalization.lean Modified Mathlib/GroupTheory/Perm/Cycle/Basic.lean Modified Mathlib/GroupTheory/Perm/Support.lean Modified Mathlib/GroupTheory/QuotientGroup.lean Modified Mathlib/GroupTheory/SchurZassenhaus.lean Modified Mathlib/GroupTheory/Subgroup/Pointwise.lean Modified Mathlib/GroupTheory/Submonoid/Membership.lean Modified Mathlib/Init/Data/Nat/Bitwise.lean Modified Mathlib/Init/Logic.lean +/- theorem Equivalence.transitive Modified Mathlib/Lean/Expr/Basic.lean +/- def Lean.Expr.modifyRevArg Modified Mathlib/LinearAlgebra/Basis.lean Modified Mathlib/LinearAlgebra/DFinsupp.lean Modified Mathlib/LinearAlgebra/Eigenspace/Basic.lean Modified Mathlib/LinearAlgebra/ExteriorAlgebra/Grading.lean Modified Mathlib/LinearAlgebra/Finsupp.lean Modified Mathlib/LinearAlgebra/Lagrange.lean Modified Mathlib/LinearAlgebra/Matrix/Determinant.lean Modified Mathlib/LinearAlgebra/Matrix/SchurComplement.lean Modified Mathlib/LinearAlgebra/Matrix/ZPow.lean Modified Mathlib/LinearAlgebra/Multilinear/Basic.lean Modified Mathlib/LinearAlgebra/Orientation.lean Modified Mathlib/LinearAlgebra/Pi.lean Modified Mathlib/LinearAlgebra/QuadraticForm/Prod.lean Modified Mathlib/LinearAlgebra/SesquilinearForm.lean Modified Mathlib/LinearAlgebra/Span.lean Modified Mathlib/Logic/Equiv/List.lean Modified Mathlib/Logic/Equiv/LocalEquiv.lean Modified Mathlib/Logic/Function/Basic.lean Modified Mathlib/Mathport/Notation.lean Modified Mathlib/MeasureTheory/Constructions/Prod/Basic.lean Modified Mathlib/MeasureTheory/Covering/Besicovitch.lean Modified Mathlib/MeasureTheory/Function/LpSeminorm.lean Modified Mathlib/MeasureTheory/Integral/Bochner.lean Modified Mathlib/MeasureTheory/Integral/VitaliCaratheodory.lean Modified Mathlib/MeasureTheory/MeasurableSpace.lean Modified Mathlib/MeasureTheory/Measure/FiniteMeasure.lean Modified Mathlib/MeasureTheory/Measure/Lebesgue/Integral.lean Modified Mathlib/MeasureTheory/Measure/MeasureSpaceDef.lean Modified Mathlib/MeasureTheory/Measure/OuterMeasure.lean Modified Mathlib/MeasureTheory/Measure/Stieltjes.lean Modified Mathlib/ModelTheory/DirectLimit.lean Modified Mathlib/NumberTheory/Bernoulli.lean Modified Mathlib/NumberTheory/BernoulliPolynomials.lean Modified Mathlib/NumberTheory/ClassNumber/Finite.lean Modified Mathlib/NumberTheory/Cyclotomic/Basic.lean Modified Mathlib/NumberTheory/Cyclotomic/Gal.lean Modified Mathlib/NumberTheory/DiophantineApproximation.lean Modified Mathlib/NumberTheory/KummerDedekind.lean Modified Mathlib/NumberTheory/LegendreSymbol/GaussSum.lean Modified Mathlib/NumberTheory/LegendreSymbol/MulCharacter.lean Modified Mathlib/NumberTheory/Liouville/Basic.lean Modified Mathlib/NumberTheory/Liouville/LiouvilleWith.lean Modified Mathlib/NumberTheory/Multiplicity.lean Modified Mathlib/NumberTheory/Padics/PadicVal.lean Modified Mathlib/NumberTheory/Pell.lean Modified Mathlib/NumberTheory/RamificationInertia.lean Modified Mathlib/NumberTheory/SumFourSquares.lean Modified Mathlib/Order/Basic.lean Modified Mathlib/Order/Category/CompleteLatCat.lean Modified Mathlib/Order/Category/NonemptyFinLinOrdCat.lean Modified Mathlib/Order/CompleteLattice.lean Modified Mathlib/Order/Filter/Curry.lean Modified Mathlib/Order/Filter/NAry.lean Modified Mathlib/Order/Filter/Pointwise.lean Modified Mathlib/Order/Heyting/Basic.lean Modified Mathlib/Order/Heyting/Hom.lean Modified Mathlib/Order/Hom/Basic.lean Modified Mathlib/Order/Hom/CompleteLattice.lean Modified Mathlib/Order/Ideal.lean Modified Mathlib/Order/LiminfLimsup.lean Modified Mathlib/Order/Monotone/Extension.lean Modified Mathlib/Order/RelIso/Basic.lean +/- theorem RelEmbedding.coe_toEmbedding Modified Mathlib/Order/SuccPred/Basic.lean Modified Mathlib/Order/SymmDiff.lean Modified Mathlib/Order/WellFounded.lean Modified Mathlib/Order/WithBot.lean Modified Mathlib/Probability/Kernel/Composition.lean Modified Mathlib/Probability/Kernel/CondCdf.lean Modified Mathlib/RepresentationTheory/Basic.lean Modified Mathlib/RepresentationTheory/Maschke.lean Modified Mathlib/RingTheory/AdjoinRoot.lean Modified Mathlib/RingTheory/ChainOfDivisors.lean Modified Mathlib/RingTheory/Congruence.lean Modified Mathlib/RingTheory/DedekindDomain/Ideal.lean Modified Mathlib/RingTheory/FreeCommRing.lean Modified Mathlib/RingTheory/GradedAlgebra/Radical.lean Modified Mathlib/RingTheory/Ideal/Operations.lean +/- def Ideal.radical Modified Mathlib/RingTheory/Ideal/QuotientOperations.lean Modified Mathlib/RingTheory/Jacobson.lean Modified Mathlib/RingTheory/Kaehler.lean Modified Mathlib/RingTheory/Localization/Basic.lean Modified Mathlib/RingTheory/Multiplicity.lean Modified Mathlib/RingTheory/MvPolynomial/Symmetric.lean Modified Mathlib/RingTheory/Norm.lean Modified Mathlib/RingTheory/Polynomial/Eisenstein/IsIntegral.lean Modified Mathlib/RingTheory/PowerSeries/Basic.lean Modified Mathlib/RingTheory/RingInvo.lean Modified Mathlib/RingTheory/RootsOfUnity/Minpoly.lean Modified Mathlib/RingTheory/Trace.lean Modified Mathlib/RingTheory/UniqueFactorizationDomain.lean Modified Mathlib/RingTheory/Valuation/ValuationRing.lean Modified Mathlib/RingTheory/WittVector/Basic.lean Modified Mathlib/RingTheory/WittVector/Frobenius.lean Modified Mathlib/SetTheory/Cardinal/Basic.lean Modified Mathlib/SetTheory/Cardinal/Ordinal.lean Modified Mathlib/SetTheory/Game/Ordinal.lean Modified Mathlib/SetTheory/Ordinal/Arithmetic.lean +/- theorem Ordinal.mul_add_mod_self Modified Mathlib/SetTheory/Ordinal/Basic.lean Modified Mathlib/SetTheory/Ordinal/FixedPoint.lean Modified Mathlib/SetTheory/Ordinal/NaturalOps.lean Modified Mathlib/Tactic/Basic.lean Modified Mathlib/Tactic/Congr!.lean +/- def Lean.MVarId.userCongr? Modified Mathlib/Tactic/Core.lean +/- def Lean.Elab.Tactic.andThenOnSubgoals Modified Mathlib/Tactic/Eqns.lean Modified Mathlib/Tactic/FailIfNoProgress.lean Modified Mathlib/Tactic/FieldSimp.lean Modified Mathlib/Tactic/GCongr/Core.lean Modified Mathlib/Tactic/LeftRight.lean Modified Mathlib/Tactic/Lift.lean Modified Mathlib/Tactic/Linarith/Datatypes.lean Modified Mathlib/Tactic/Linarith/Elimination.lean Modified Mathlib/Tactic/Linarith/Frontend.lean Modified Mathlib/Tactic/Linarith/Verification.lean Modified Mathlib/Tactic/MkIffOfInductiveProp.lean Modified Mathlib/Tactic/Monotonicity/Lemmas.lean Modified Mathlib/Tactic/NormNum/Basic.lean Modified Mathlib/Tactic/Positivity/Basic.lean Modified Mathlib/Tactic/Relation/Trans.lean Modified Mathlib/Tactic/RenameBVar.lean Modified Mathlib/Tactic/Ring/Basic.lean Modified Mathlib/Tactic/Simps/Basic.lean Modified Mathlib/Tactic/Simps/NotationClass.lean +/- def Simps.defaultfindArgs +/- def Simps.findCoercionArgs Modified Mathlib/Tactic/SolveByElim.lean Modified Mathlib/Tactic/ToAdditive.lean Modified Mathlib/Testing/SlimCheck/Testable.lean Modified Mathlib/Topology/Algebra/ConstMulAction.lean Modified Mathlib/Topology/Algebra/Module/Alternating.lean Modified Mathlib/Topology/Algebra/Module/CharacterSpace.lean Modified Mathlib/Topology/Algebra/Module/Multilinear.lean Modified Mathlib/Topology/Algebra/Nonarchimedean/Bases.lean Modified Mathlib/Topology/Algebra/UniformGroup.lean Modified Mathlib/Topology/Basic.lean Modified Mathlib/Topology/Category/CompHaus/EffectiveEpi.lean +/- theorem CompHaus.EffectiveEpiFamily.π_comp_ι_inv Modified Mathlib/Topology/Category/TopCat/Limits/Products.lean Modified Mathlib/Topology/Category/TopCat/Limits/Pullbacks.lean Modified Mathlib/Topology/Compactification/OnePoint.lean Modified Mathlib/Topology/ContinuousFunction/Basic.lean Modified Mathlib/Topology/DiscreteQuotient.lean Modified Mathlib/Topology/FiberBundle/Basic.lean Modified Mathlib/Topology/Homotopy/Product.lean Modified Mathlib/Topology/Instances/ENNReal.lean Modified Mathlib/Topology/List.lean Modified Mathlib/Topology/Maps.lean Modified Mathlib/Topology/MetricSpace/Basic.lean Modified Mathlib/Topology/MetricSpace/Closeds.lean Modified Mathlib/Topology/MetricSpace/Gluing.lean Modified Mathlib/Topology/MetricSpace/HausdorffDistance.lean Modified Mathlib/Topology/Order/Basic.lean Modified Mathlib/Topology/Semicontinuous.lean Modified Mathlib/Topology/Separation.lean Modified Mathlib/Topology/Sheaves/Stalks.lean Modified Mathlib/Topology/Spectral/Hom.lean Modified Mathlib/Topology/SubsetProperties.lean +/- theorem eq_irreducibleComponent Modified Mathlib/Topology/UniformSpace/CompactConvergence.lean Modified Mathlib/Util/Export.lean Modified Mathlib/Util/Time.lean Modified Mathlib/Util/WhatsNew.lean Modified docs/Conv/Introduction.lean Modified test/GCongr/inequalities.lean Modified test/MkIffOfInductive.lean Modified test/NoncommRing.lean Modified test/NthRewrite.lean Modified test/SimpRw.lean Modified test/Simps.lean Modified test/linarith.lean Modified test/matrix.lean Modified test/measurability.lean Modified test/propose.lean Modified test/push_neg.lean Modified test/solve_by_elim/basic.lean Modified test/toAdditive.lean +/- theorem Test.bar2_works +/- theorem Test.bar3_works 2023-07-19 05:37:53 9b5b824 fix: correct doc-string for LocallyFiniteOrderTop/Bot (#5956) ESTIMATED CHANGES Modified Mathlib/Order/LocallyFinite.lean 2023-07-19 05:16:55 26d0eab fix: mv leantar.exe (#5985) fixes #5984 ESTIMATED CHANGES Modified Cache/IO.lean + def Cache.IO.EXE 2023-07-19 04:15:00 b60d884 chore: golf some proofs (#5983) Use `Nat.cast` lemmas directly instead of rewriting using `Nat.cast_withBot`. ESTIMATED CHANGES Modified Mathlib/Data/Polynomial/Degree/Definitions.lean 2023-07-19 02:48:44 1c8e790 feat: missing WellFoundedLT instances (#5899) ESTIMATED CHANGES Modified Mathlib/Data/DFinsupp/WellFounded.lean Modified Mathlib/Order/Hom/Basic.lean Modified Mathlib/Order/RelClasses.lean 2023-07-19 02:48:43 a9956b6 feat: product instances for `OrderedSub` (#5890) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Order/Sub/Prod.lean 2023-07-19 01:46:48 801ae80 feat(Tactic/ComputeDegree): add helper lemmas for `compute_degree_le` (#5978) This PR is a prequel to #5882: it simply adds the helper lemmas about polynomials that the tactic uses. [Zulip discussion ](https://leanprover.zulipchat.com/#narrow/stream/144837-PR-reviews/topic/.235882.20.60compute_degree_le.60) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Data/Polynomial/Degree/Definitions.lean + theorem Polynomial.degree_add_le_of_le + theorem Polynomial.degree_int_cast_le + theorem Polynomial.degree_mul_le_of_le + theorem Polynomial.degree_nat_cast_le + theorem Polynomial.degree_neg_le_of_le + theorem Polynomial.degree_pow_le_of_le + theorem Polynomial.degree_sub_le_of_le + theorem Polynomial.degree_zero_le + theorem Polynomial.natDegree_add_le_of_le + theorem Polynomial.natDegree_mul_le_of_le + theorem Polynomial.natDegree_neg_le_of_le + theorem Polynomial.natDegree_pow_le_of_le + theorem Polynomial.natDegree_sub_le_of_le Modified Mathlib/Tactic.lean Added Mathlib/Tactic/ComputeDegree.lean + theorem Mathlib.Tactic.ComputeDegree.natDegree_C_le + theorem Mathlib.Tactic.ComputeDegree.natDegree_int_cast_le + theorem Mathlib.Tactic.ComputeDegree.natDegree_nat_cast_le + theorem Mathlib.Tactic.ComputeDegree.natDegree_one_le + theorem Mathlib.Tactic.ComputeDegree.natDegree_zero_le 2023-07-18 23:02:55 2a2e08c refactor: split `BumpFunctionInner` (#5940) Fixes #4755 ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/Calculus/BumpFunction/Basic.lean + theorem ContDiff.contDiffBump + theorem ContDiffBump.eventuallyEq_one + theorem ContDiffBump.eventuallyEq_one_of_mem_ball + theorem ContDiffBump.le_one + theorem ContDiffBump.nonneg' + theorem ContDiffBump.nonneg + theorem ContDiffBump.one_lt_rOut_div_rIn + theorem ContDiffBump.one_of_mem_closedBall + theorem ContDiffBump.pos_of_mem_ball + theorem ContDiffBump.rOut_pos + theorem ContDiffBump.support_eq + def ContDiffBump.toFun + theorem ContDiffBump.tsupport_eq + theorem ContDiffBump.zero_of_le_dist + structure ContDiffBump + structure ContDiffBumpBase + def someContDiffBumpBase Added Mathlib/Analysis/Calculus/BumpFunction/Convolution.lean + theorem ContDiffBump.convolution_eq_right + theorem ContDiffBump.convolution_tendsto_right_of_continuous + theorem ContDiffBump.dist_normed_convolution_le + theorem ContDiffBump.normed_convolution_eq_right Renamed Mathlib/Analysis/Calculus/BumpFunctionFindim.lean to Mathlib/Analysis/Calculus/BumpFunction/FiniteDimension.lean Added Mathlib/Analysis/Calculus/BumpFunction/InnerProduct.lean Added Mathlib/Analysis/Calculus/BumpFunction/Normed.lean + theorem ContDiffBump.contDiff_normed + theorem ContDiffBump.continuous_normed + theorem ContDiffBump.hasCompactSupport_normed + theorem ContDiffBump.integral_normed + theorem ContDiffBump.integral_normed_smul + theorem ContDiffBump.integral_pos + theorem ContDiffBump.nonneg_normed + theorem ContDiffBump.normed_def + theorem ContDiffBump.normed_neg + theorem ContDiffBump.normed_sub + theorem ContDiffBump.support_normed_eq + theorem ContDiffBump.tendsto_support_normed_smallSets + theorem ContDiffBump.tsupport_normed_eq Deleted Mathlib/Analysis/Calculus/BumpFunctionInner.lean - theorem ContDiff.contDiffBump - theorem ContDiffBump.contDiff_normed - theorem ContDiffBump.continuous_normed - theorem ContDiffBump.eventuallyEq_one - theorem ContDiffBump.eventuallyEq_one_of_mem_ball - theorem ContDiffBump.hasCompactSupport_normed - theorem ContDiffBump.integral_normed - theorem ContDiffBump.integral_normed_smul - theorem ContDiffBump.integral_pos - theorem ContDiffBump.le_one - theorem ContDiffBump.nonneg' - theorem ContDiffBump.nonneg - theorem ContDiffBump.nonneg_normed - theorem ContDiffBump.normed_def - theorem ContDiffBump.normed_neg - theorem ContDiffBump.normed_sub - theorem ContDiffBump.one_lt_rOut_div_rIn - theorem ContDiffBump.one_of_mem_closedBall - theorem ContDiffBump.pos_of_mem_ball - theorem ContDiffBump.rOut_pos - theorem ContDiffBump.support_eq - theorem ContDiffBump.support_normed_eq - theorem ContDiffBump.tendsto_support_normed_smallSets - def ContDiffBump.toFun - theorem ContDiffBump.tsupport_eq - theorem ContDiffBump.tsupport_normed_eq - theorem ContDiffBump.zero_of_le_dist - structure ContDiffBump - def ContDiffBumpBase.ofInnerProductSpace - structure ContDiffBumpBase - theorem Real.smoothTransition.le_one - theorem Real.smoothTransition.lt_one_of_lt_one - theorem Real.smoothTransition.nonneg - theorem Real.smoothTransition.one_of_one_le - theorem Real.smoothTransition.pos_denom - theorem Real.smoothTransition.pos_of_pos - theorem Real.smoothTransition.zero_of_nonpos - def Real.smoothTransition - theorem expNegInvGlue.contDiff_polynomial_eval_inv_mul - theorem expNegInvGlue.continuous_polynomial_eval_inv_mul - theorem expNegInvGlue.differentiable_polynomial_eval_inv_mul - theorem expNegInvGlue.hasDerivAt_polynomial_eval_inv_mul - theorem expNegInvGlue.nonneg - theorem expNegInvGlue.pos_of_pos - theorem expNegInvGlue.tendsto_polynomial_inv_mul_zero - theorem expNegInvGlue.zero_iff_nonpos - theorem expNegInvGlue.zero_of_nonpos - def expNegInvGlue - def someContDiffBumpBase Modified Mathlib/Analysis/Convolution.lean - theorem ContDiffBump.convolution_eq_right - theorem ContDiffBump.convolution_tendsto_right_of_continuous - theorem ContDiffBump.dist_normed_convolution_le - theorem ContDiffBump.normed_convolution_eq_right Added Mathlib/Analysis/SpecialFunctions/SmoothTransition.lean + theorem Real.smoothTransition.le_one + theorem Real.smoothTransition.lt_one_of_lt_one + theorem Real.smoothTransition.nonneg + theorem Real.smoothTransition.one_of_one_le + theorem Real.smoothTransition.pos_denom + theorem Real.smoothTransition.pos_of_pos + theorem Real.smoothTransition.zero_of_nonpos + def Real.smoothTransition + theorem expNegInvGlue.contDiff_polynomial_eval_inv_mul + theorem expNegInvGlue.continuous_polynomial_eval_inv_mul + theorem expNegInvGlue.differentiable_polynomial_eval_inv_mul + theorem expNegInvGlue.hasDerivAt_polynomial_eval_inv_mul + theorem expNegInvGlue.nonneg + theorem expNegInvGlue.pos_of_pos + theorem expNegInvGlue.tendsto_polynomial_inv_mul_zero + theorem expNegInvGlue.zero_iff_nonpos + theorem expNegInvGlue.zero_of_nonpos + def expNegInvGlue Modified Mathlib/Geometry/Manifold/BumpFunction.lean 2023-07-18 21:46:23 15ef30f feat: define `NonUnitalStarSubalgebra`s and develop basic API (#5537) This continues the non-unital-ization of mathlib This PR also redefines `StarSubalgebra.centralizer` so that it no longer requires the set `s` provided to be closed under `star`, and instead the carrier is just the `Set.centralizer (s ∪ star s)`. Consequently, this changes some things in von Neumann algebras, where we now need to see that `Set.centralizer (↑S ∪ star ↑S) = Set.centralizer ↑S`, where `S` is a `StarSubalgebra`. Therefore we add the `simp` lemma `StarMemClass.star_coe_eq`. - [x] depends on: #5151 - [x] depends on: #5512 ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Star/Basic.lean Added Mathlib/Algebra/Star/Center.lean + theorem Set.star_mem_center + theorem Set.star_mem_centralizer' + theorem Set.star_mem_centralizer Added Mathlib/Algebra/Star/NonUnitalSubalgebra.lean + def NonUnitalStarAlgHom.codRestrict + theorem NonUnitalStarAlgHom.coe_codRestrict + theorem NonUnitalStarAlgHom.coe_range + def NonUnitalStarAlgHom.equalizer + theorem NonUnitalStarAlgHom.injective_codRestrict + theorem NonUnitalStarAlgHom.mem_equalizer + theorem NonUnitalStarAlgHom.mem_range + theorem NonUnitalStarAlgHom.mem_range_self + def NonUnitalStarAlgHom.rangeRestrict + theorem NonUnitalStarAlgHom.range_comp + theorem NonUnitalStarAlgHom.range_comp_le_range + theorem NonUnitalStarAlgHom.subtype_comp_codRestrict + def NonUnitalStarAlgebra.adjoin + theorem NonUnitalStarAlgebra.adjoin_eq_starClosure_adjoin + theorem NonUnitalStarAlgebra.adjoin_le + theorem NonUnitalStarAlgebra.adjoin_le_iff + theorem NonUnitalStarAlgebra.adjoin_toNonUnitalSubalgebra + theorem NonUnitalStarAlgebra.coe_bot + theorem NonUnitalStarAlgebra.coe_iInf + theorem NonUnitalStarAlgebra.coe_inf + theorem NonUnitalStarAlgebra.coe_sInf + theorem NonUnitalStarAlgebra.coe_top + theorem NonUnitalStarAlgebra.comap_top + theorem NonUnitalStarAlgebra.eq_top_iff + theorem NonUnitalStarAlgebra.iInf_toNonUnitalSubalgebra + theorem NonUnitalStarAlgebra.inf_toNonUnitalSubalgebra + theorem NonUnitalStarAlgebra.map_bot + theorem NonUnitalStarAlgebra.map_sup + theorem NonUnitalStarAlgebra.map_top + theorem NonUnitalStarAlgebra.mem_bot + theorem NonUnitalStarAlgebra.mem_iInf + theorem NonUnitalStarAlgebra.mem_inf + theorem NonUnitalStarAlgebra.mem_sInf + theorem NonUnitalStarAlgebra.mem_sup_left + theorem NonUnitalStarAlgebra.mem_sup_right + theorem NonUnitalStarAlgebra.mem_top + theorem NonUnitalStarAlgebra.mul_mem_sup + theorem NonUnitalStarAlgebra.range_id + theorem NonUnitalStarAlgebra.range_top_iff_surjective + theorem NonUnitalStarAlgebra.sInf_toNonUnitalSubalgebra + theorem NonUnitalStarAlgebra.self_mem_adjoin_singleton + theorem NonUnitalStarAlgebra.star_self_mem_adjoin_singleton + theorem NonUnitalStarAlgebra.star_subset_adjoin + theorem NonUnitalStarAlgebra.subset_adjoin + theorem NonUnitalStarAlgebra.toNonUnitalSubalgebra_bot + theorem NonUnitalStarAlgebra.toNonUnitalSubalgebra_eq_top + def NonUnitalStarAlgebra.toTop + theorem NonUnitalStarAlgebra.top_toNonUnitalSubalgebra + def NonUnitalStarSubalgebra.center + theorem NonUnitalStarSubalgebra.center_eq_top + theorem NonUnitalStarSubalgebra.center_toNonUnitalSubalgebra + def NonUnitalStarSubalgebra.centralizer + theorem NonUnitalStarSubalgebra.centralizer_le + theorem NonUnitalStarSubalgebra.centralizer_univ + theorem NonUnitalStarSubalgebra.coe_center + theorem NonUnitalStarSubalgebra.coe_centralizer + theorem NonUnitalStarSubalgebra.coe_comap + theorem NonUnitalStarSubalgebra.coe_copy + theorem NonUnitalStarSubalgebra.coe_iSup_of_directed + theorem NonUnitalStarSubalgebra.coe_map + theorem NonUnitalStarSubalgebra.coe_prod + theorem NonUnitalStarSubalgebra.coe_smul + theorem NonUnitalStarSubalgebra.coe_toNonUnitalSubalgebra + theorem NonUnitalStarSubalgebra.coe_toNonUnitalSubring + def NonUnitalStarSubalgebra.comap + theorem NonUnitalStarSubalgebra.copy_eq + theorem NonUnitalStarSubalgebra.ext + theorem NonUnitalStarSubalgebra.gc_map_comap + theorem NonUnitalStarSubalgebra.iSupLift_comp_inclusion + theorem NonUnitalStarSubalgebra.iSupLift_inclusion + theorem NonUnitalStarSubalgebra.iSupLift_mk + theorem NonUnitalStarSubalgebra.iSupLift_of_mem + def NonUnitalStarSubalgebra.inclusion + theorem NonUnitalStarSubalgebra.inclusion_inclusion + theorem NonUnitalStarSubalgebra.inclusion_injective + theorem NonUnitalStarSubalgebra.inclusion_mk + theorem NonUnitalStarSubalgebra.inclusion_right + theorem NonUnitalStarSubalgebra.inclusion_self + def NonUnitalStarSubalgebra.map + theorem NonUnitalStarSubalgebra.map_id + theorem NonUnitalStarSubalgebra.map_injective + theorem NonUnitalStarSubalgebra.map_le + theorem NonUnitalStarSubalgebra.map_map + theorem NonUnitalStarSubalgebra.map_mono + theorem NonUnitalStarSubalgebra.map_toNonUnitalSubalgebra + theorem NonUnitalStarSubalgebra.mem_carrier + theorem NonUnitalStarSubalgebra.mem_center_iff + theorem NonUnitalStarSubalgebra.mem_centralizer_iff + theorem NonUnitalStarSubalgebra.mem_comap + theorem NonUnitalStarSubalgebra.mem_map + theorem NonUnitalStarSubalgebra.mem_prod + theorem NonUnitalStarSubalgebra.mem_toNonUnitalSubalgebra + theorem NonUnitalStarSubalgebra.mem_toNonUnitalSubring + def NonUnitalStarSubalgebra.prod + theorem NonUnitalStarSubalgebra.prod_inf_prod + theorem NonUnitalStarSubalgebra.prod_mono + theorem NonUnitalStarSubalgebra.prod_toNonUnitalSubalgebra + theorem NonUnitalStarSubalgebra.prod_top + theorem NonUnitalStarSubalgebra.range_val + def NonUnitalStarSubalgebra.toNonUnitalSubalgebra' + theorem NonUnitalStarSubalgebra.toNonUnitalSubalgebra_inj + theorem NonUnitalStarSubalgebra.toNonUnitalSubalgebra_injective + theorem NonUnitalStarSubalgebra.toNonUnitalSubalgebra_le_iff + theorem NonUnitalStarSubalgebra.toNonUnitalSubalgebra_subtype + theorem NonUnitalStarSubalgebra.toNonUnitalSubalgebra_toNonUnitalStarSubalgebra + def NonUnitalStarSubalgebra.toNonUnitalSubring + theorem NonUnitalStarSubalgebra.toNonUnitalSubring_inj + theorem NonUnitalStarSubalgebra.toNonUnitalSubring_injective + theorem NonUnitalStarSubalgebra.toSubring_subtype + theorem NonUnitalStarSubalgebra.val_inclusion + structure NonUnitalStarSubalgebra + theorem NonUnitalStarSubalgebraClass.coeSubtype + def NonUnitalStarSubalgebraClass.subtype + theorem NonUnitalSubalgebra.coe_star + theorem NonUnitalSubalgebra.coe_toNonUnitalStarSubalgebra + theorem NonUnitalSubalgebra.mem_star_iff + theorem NonUnitalSubalgebra.mem_toNonUnitalStarSubalgebra + def NonUnitalSubalgebra.starClosure + theorem NonUnitalSubalgebra.starClosure_eq_adjoin + theorem NonUnitalSubalgebra.starClosure_le + theorem NonUnitalSubalgebra.starClosure_le_iff + theorem NonUnitalSubalgebra.starClosure_mono + theorem NonUnitalSubalgebra.starClosure_toNonunitalSubalgebra + theorem NonUnitalSubalgebra.star_adjoin_comm + theorem NonUnitalSubalgebra.star_mem_star_iff + theorem NonUnitalSubalgebra.star_mono + def NonUnitalSubalgebra.toNonUnitalStarSubalgebra + theorem NonUnitalSubalgebra.toNonUnitalStarSubalgebra_toNonUnitalSubalgebra + theorem StarAlgEquiv.ofInjective'_apply + def StarAlgEquiv.ofLeftInverse' + theorem StarAlgEquiv.ofLeftInverse'_apply + theorem StarAlgEquiv.ofLeftInverse'_symm_apply Modified Mathlib/Algebra/Star/Pointwise.lean + theorem StarMemClass.star_coe_eq Modified Mathlib/Algebra/Star/Subalgebra.lean - theorem Set.star_mem_centralizer +/- def StarSubalgebra.centralizer +/- theorem StarSubalgebra.centralizer_le +/- theorem StarSubalgebra.coe_centralizer + theorem StarSubalgebra.coe_mk +/- theorem StarSubalgebra.mem_centralizer_iff Modified Mathlib/Analysis/VonNeumannAlgebra/Basic.lean + theorem VonNeumannAlgebra.coe_mk + theorem VonNeumannAlgebra.coe_toStarSubalgebra +/- def VonNeumannAlgebra.commutant 2023-07-18 16:36:22 ea67efc feat(Algebra/Group/[Pi, InjSurj]): add missing boilerplate for `InvOneClass` and `DivInvOneMonoid` (#5904) ESTIMATED CHANGES Modified Mathlib/Algebra/Group/InjSurj.lean Modified Mathlib/Algebra/Group/Pi.lean 2023-07-18 14:22:13 e507f37 feat(Data/MvPolynomial/Basic): add multivariate polynomial evaluation lemmas (#5949) ESTIMATED CHANGES Modified Mathlib/Data/MvPolynomial/Basic.lean + theorem MvPolynomial.eval_add + theorem MvPolynomial.eval_mul + theorem MvPolynomial.eval_pow Modified Mathlib/Data/MvPolynomial/CommRing.lean + theorem MvPolynomial.eval_neg + theorem MvPolynomial.eval_sub 2023-07-18 13:58:38 58e967b fix: coercions in ZMod.coe_add_eq_ite (#5981) The change in behaviour of coercions in mathlib4 meant that this lemma was translated incorrectly (into a much simpler statement). ESTIMATED CHANGES Modified Mathlib/Data/ZMod/Basic.lean 2023-07-18 12:47:31 69bb9bc feat(Data/Nat/Digits): two lemmas (#5778) ESTIMATED CHANGES Modified Mathlib/Data/Nat/Digits.lean + theorem Nat.digit_sum_le + theorem Nat.ofDigits_monotone 2023-07-18 11:09:51 f287c03 feat: port Order.Irreducible (#5976) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Order/Irreducible.lean + theorem InfIrred.finset_inf_eq + theorem InfIrred.ne_top + def InfIrred + theorem InfPrime.finset_inf_le + theorem InfPrime.inf_le + theorem InfPrime.ne_top + def InfPrime + theorem IsMax.not_infIrred + theorem IsMax.not_infPrime + theorem IsMin.not_supIrred + theorem IsMin.not_supPrime + theorem SupIrred.finset_sup_eq + theorem SupIrred.ne_bot + theorem SupIrred.not_isMin + def SupIrred + theorem SupPrime.le_finset_sup + theorem SupPrime.le_sup + theorem SupPrime.ne_bot + theorem SupPrime.not_isMin + def SupPrime + theorem exists_infIrred_decomposition + theorem exists_supIrred_decomposition + theorem infIrred_iff_not_isMax + theorem infIrred_ofDual + theorem infIrred_toDual + theorem infPrime_iff_infIrred + theorem infPrime_iff_not_isMax + theorem infPrime_ofDual + theorem infPrime_toDual + theorem not_infIrred + theorem not_infIrred_top + theorem not_infPrime + theorem not_infPrime_top + theorem not_supIrred + theorem not_supIrred_bot + theorem not_supPrime + theorem not_supPrime_bot + theorem supIrred_iff_not_isMin + theorem supIrred_ofDual + theorem supIrred_toDual + theorem supPrime_iff_not_isMin + theorem supPrime_iff_supIrred + theorem supPrime_ofDual + theorem supPrime_toDual 2023-07-18 10:17:40 2f3976b fix: use `isSimp := false` in `simps` (#5977) Lean 3 `@[simps { attrs := [] }]` should be translated to `@[simps (config := { isSimp := false })]` to avoid adding `@[simp]` attribute. ESTIMATED CHANGES Modified Mathlib/Algebra/Quaternion.lean Modified Mathlib/Analysis/NormedSpace/Basic.lean Modified Mathlib/RingTheory/Derivation/ToSquareZero.lean Modified Mathlib/RingTheory/PowerBasis.lean 2023-07-18 10:17:39 1c34db8 feat(Data/Nat/Squarefree): add divisors_filter_squarefree_of_squarefree (#5835) Add a lemma that helps when applying `divisors_filter_squarefree` or `sum_divisors_filter_squarefree` in the case where `n` is squarefree. ESTIMATED CHANGES Modified Mathlib/Data/Nat/Squarefree.lean + theorem Nat.divisors_filter_squarefree_of_squarefree 2023-07-18 10:17:38 beb5b35 chore: use `OrderHomClass` for `ClosureOperator` (#5820) ESTIMATED CHANGES Modified Mathlib/Order/Closure.lean 2023-07-18 08:48:25 f540e33 feat: add an `align_import` command (#5966) For now this uses the new command in just one file. If this looks good, I'll make a follow-up to apply this change everywhere. ESTIMATED CHANGES Modified Mathlib/Algebra/ModEq.lean Modified Mathlib/Mathport/Rename.lean + def Mathlib.Prelude.Rename.elabAlignImport Modified scripts/lint-style.py Modified scripts/make_port_status.py 2023-07-18 07:35:08 593a84d chore: forward port #18999 (#5974) ESTIMATED CHANGES Modified Mathlib/Data/Fin/Tuple/BubbleSortInduction.lean Modified Mathlib/Data/Fintype/Card.lean - theorem Finite.Preorder.wellFounded_gt - theorem Finite.Preorder.wellFounded_lt 2023-07-18 05:18:46 a3e15d8 chore: forward port #14324 (#5973) This is the remainder of the forward port of https://github.com/leanprover-community/mathlib/pull/14324. See https://leanprover-community.github.io/mathlib-port-status/file/set_theory/ordinal/natural_ops for the relevant #outofsync page. ESTIMATED CHANGES Modified Mathlib/SetTheory/Ordinal/NaturalOps.lean + theorem NatOrdinal.mul_le_nmul + theorem Ordinal.add_one_nmul + theorem Ordinal.le_nadd_left + theorem Ordinal.le_nadd_right + theorem Ordinal.le_nadd_self + theorem Ordinal.le_self_nadd + theorem Ordinal.lt_nmul_iff + theorem Ordinal.lt_nmul_iff₃' + theorem Ordinal.lt_nmul_iff₃ + theorem Ordinal.nadd_eq_add + theorem Ordinal.nadd_le_nadd + theorem Ordinal.nadd_left_comm + theorem Ordinal.nadd_lt_nadd + theorem Ordinal.nadd_lt_nadd_of_le_of_lt + theorem Ordinal.nadd_lt_nadd_of_lt_of_le + theorem Ordinal.nadd_nmul + theorem Ordinal.nadd_one_nmul + theorem Ordinal.nadd_right_comm + theorem Ordinal.nmul_add_one + theorem Ordinal.nmul_assoc + theorem Ordinal.nmul_comm + theorem Ordinal.nmul_def + theorem Ordinal.nmul_eq_mul + theorem Ordinal.nmul_le_iff + theorem Ordinal.nmul_le_iff₃' + theorem Ordinal.nmul_le_iff₃ + theorem Ordinal.nmul_le_nmul_of_nonneg_left + theorem Ordinal.nmul_le_nmul_of_nonneg_right + theorem Ordinal.nmul_lt_nmul_of_pos_left + theorem Ordinal.nmul_lt_nmul_of_pos_right + theorem Ordinal.nmul_nadd + theorem Ordinal.nmul_nadd_le + theorem Ordinal.nmul_nadd_le₃' + theorem Ordinal.nmul_nadd_le₃ + theorem Ordinal.nmul_nadd_lt + theorem Ordinal.nmul_nadd_lt₃' + theorem Ordinal.nmul_nadd_lt₃ + theorem Ordinal.nmul_nadd_one + theorem Ordinal.nmul_nonempty + theorem Ordinal.nmul_one + theorem Ordinal.nmul_succ + theorem Ordinal.nmul_zero + theorem Ordinal.one_nmul + theorem Ordinal.succ_nmul +/- theorem Ordinal.toNatOrdinal_max +/- theorem Ordinal.toNatOrdinal_min + theorem Ordinal.zero_nmul 2023-07-18 03:34:07 bb6d52f chore: tidy various files (#5971) ESTIMATED CHANGES Modified Counterexamples/HomogeneousPrimeNotPrime.lean Modified Mathlib/Algebra/Category/AlgebraCat/Basic.lean Modified Mathlib/Algebra/Category/MonCat/Adjunctions.lean Modified Mathlib/Algebra/Star/Basic.lean Modified Mathlib/Analysis/Seminorm.lean Modified Mathlib/Data/Int/GCD.lean + theorem Nat.xgcdAux_P + theorem Nat.xgcdAux_fst + theorem Nat.xgcdAux_rec + theorem Nat.xgcdAux_val - theorem Nat.xgcd_aux_P - theorem Nat.xgcd_aux_fst - theorem Nat.xgcd_aux_rec - theorem Nat.xgcd_aux_val Modified Mathlib/GroupTheory/FiniteAbelian.lean - theorem AddCommGroup.equiv_directSum_zMod_of_fintype + theorem AddCommGroup.equiv_directSum_zmod_of_fintype - theorem AddCommGroup.equiv_free_prod_directSum_zMod + theorem AddCommGroup.equiv_free_prod_directSum_zmod - theorem AddCommGroup.finite_of_fG_torsion + theorem AddCommGroup.finite_of_fg_torsion - theorem CommGroup.finite_of_fG_torsion + theorem CommGroup.finite_of_fg_torsion Modified Mathlib/NumberTheory/ArithmeticFunction.lean Modified Mathlib/Order/Circular.lean Modified Mathlib/SetTheory/Game/Short.lean Modified Mathlib/Tactic/NormNum/BigOperators.lean Modified Mathlib/Topology/Algebra/Module/Alternating.lean 2023-07-18 03:34:06 0b4fd1d chore: golf IMO 2013 q5 (#5967) ESTIMATED CHANGES Modified Archive/Imo/Imo2013Q5.lean 2023-07-18 03:34:05 4acd158 fix: put the convert tactic into a namespace (#5963) ESTIMATED CHANGES Modified Mathlib/Tactic/Convert.lean 2023-07-18 03:34:04 491c4be chore: cleanup universes in tensor product basis (#5906) During the Leiden workshop we hit a problem showing that the dimension of a tensor product is preserved under base extension, this is due to `Algebra.TensorProduct.basis` having a loose universe variable. We fix this, which makes the following code work. I'm not 100% sure this is the right variable to set, but it seemed somewhat appropriate ```lean section basis variable [Field k] [AddCommGroup M] [Module k M] [Ring A] [Algebra k A] [Module A M] [IsScalarTower k A M] [StrongRankCondition A] [Module.Free k M] [Module.Free A M] [Module.Free k A] open TensorProduct -- for notation noncomputable def _root_.Basis.base_change (h : Basis ι k M) : Basis ι A (A ⊗[k] M) := Algebra.TensorProduct.basis A h -- needs a mathlib change for this to work! lemma base_change_module_rank_preserved : Module.rank k M = Module.rank A (A ⊗[k] M) := by obtain ⟨⟨_, bM⟩⟩ := Module.Free.exists_basis (R := k) (M := M) rw [← bM.mk_eq_rank'', (bM.base_change (A := A)).mk_eq_rank''] end basis ``` ESTIMATED CHANGES Modified Mathlib/RingTheory/TensorProduct.lean 2023-07-18 03:34:03 4fd905f chore: speed up FiniteField.two_pow_card (#5865) This is still awful, but slightly less so. ESTIMATED CHANGES Modified Mathlib/NumberTheory/LegendreSymbol/GaussSum.lean 2023-07-18 03:34:02 2db5961 feat: `positivity` extension for `Real.log` of natural/integer casts and numeric literals (#5839) This PR adds a positivity extension for expressions of the form `Real.log n` where `n` is a cast from a natural number or an integer. (Since `positivity` can't handle conditions like `1 ≤ x`, this is pretty much the best we can do for the log.) Also, the namespace of the positivity extension for `exp` is corrected. ESTIMATED CHANGES Modified Mathlib/Analysis/SpecialFunctions/Log/Basic.lean + def Mathlib.Meta.Positivity.evalLogIntCast + def Mathlib.Meta.Positivity.evalLogNatCast + def Mathlib.Meta.Positivity.evalLogNatLit + theorem Mathlib.Meta.Positivity.log_nonneg_of_isNat + theorem Mathlib.Meta.Positivity.log_nonneg_of_isNegNat + theorem Mathlib.Meta.Positivity.log_nz_of_isRat + theorem Mathlib.Meta.Positivity.log_nz_of_isRat_neg + theorem Mathlib.Meta.Positivity.log_pos_of_isNat + theorem Mathlib.Meta.Positivity.log_pos_of_isNegNat + theorem Mathlib.Meta.Positivity.log_pos_of_isRat + theorem Mathlib.Meta.Positivity.log_pos_of_isRat_neg + theorem Real.log_int_cast_nonneg + theorem Real.log_nat_cast_nonneg + theorem Real.log_neg_nat_cast_nonneg + theorem Real.log_neg_of_lt_zero + theorem Real.log_pos_of_lt_neg_one Modified Mathlib/Data/Complex/Exponential.lean + def Mathlib.Meta.Positivity.evalExp - def Tactic.evalExp Modified test/positivity.lean 2023-07-18 03:34:01 76f0c27 docs: introduction and guide to `conv` mode (#5800) Add some overviews for `conv` mode. These are added as a `lean_lib` so that we can use docgen to generate the documentation and include it in a `docs` library in the sidebar. This means 1. the documentation can be reviewed like any other mathlib PR 2. the documentation will be deployed like any other mathlib module documentation 3. this sort of documentation can use the exact same markdown extensions to link to other parts of the library ESTIMATED CHANGES Added docs.lean Added docs/Conv/Guide.lean Added docs/Conv/Introduction.lean Modified lakefile.lean Modified scripts/deploy_docs.sh 2023-07-18 03:33:59 c1d81a5 feat: remove unnecessary `Classical.choice` in `split_ifs` (#5575) In rare cases, `Decidable p` is not an instance and `split_ifs` is still classical. I am not familiar with tactic and not sure if there is an easy method to deal with these cases. ESTIMATED CHANGES Modified Mathlib/Tactic/SplitIfs.lean Modified test/SplitIfs.lean + theorem foo 2023-07-18 03:33:58 6dfe3d4 feat: CompletelyDistribLattice (#5238) Adds new `CompletelyDistribLattice`/`CompleteAtomicBooleanAlgebra` classes for complete lattices / complete atomic Boolean algebras that are also completely distributive, and removes the misleading claim that `CompleteDistribLattice`/`CompleteBooleanAlgebra` are completely distributive. - Product/pi/order dual instances for completely distributive lattices, etc. - Every complete linear order is a completely distributive lattice. - Every atomic complete Boolean algebra is a complete atomic Boolean algebra. - Every complete atomic Boolean algebra is indeed (co)atom(ist)ic. - Atom(ist)ic orders are closed under pis. - All existing types with `CompleteDistribLattice` instances are upgraded to `CompletelyDistribLattice`. - All existing types with `CompleteBooleanAlgebra` instances are upgraded to `CompleteAtomicBooleanAlgebra`. See [related discussion on Zulip](https://leanprover.zulipchat.com/#narrow/stream/116395-maths/topic/Are.20CompleteDistribLattices.20completely.20distributive.3F/near/366667419). ESTIMATED CHANGES Modified Mathlib/Algebra/Homology/ModuleCat.lean Modified Mathlib/Combinatorics/SimpleGraph/Basic.lean Modified Mathlib/Combinatorics/SimpleGraph/Finsubgraph.lean Modified Mathlib/Combinatorics/SimpleGraph/Subgraph.lean + theorem SimpleGraph.Subgraph.verts_spanningCoe_injective Modified Mathlib/Computability/Language.lean Modified Mathlib/Data/Fintype/Order.lean Modified Mathlib/Data/Set/Lattice.lean Modified Mathlib/LinearAlgebra/FreeModule/Norm.lean Modified Mathlib/Order/Atoms.lean + theorem BooleanAlgebra.eq_iff_atom_le_iff + theorem BooleanAlgebra.le_iff_atom_le_imp + theorem Pi.isAtom_iff + theorem Pi.isAtom_iff_eq_single + theorem Pi.isAtom_single + theorem atom_le_iSup + theorem eq_iff_atom_le_iff + theorem iInf_le_coatom + theorem «Prop».isAtom_iff + theorem «Prop».isCoatom_iff Modified Mathlib/Order/BooleanAlgebra.lean + theorem compl_le_self + theorem compl_lt_self Modified Mathlib/Order/BoundedOrder.lean + theorem Prod.fst_bot + theorem Prod.fst_top + theorem Prod.snd_bot + theorem Prod.snd_top Modified Mathlib/Order/CompleteBooleanAlgebra.lean + theorem iInf_iSup_eq + theorem iSup_iInf_eq + theorem iSup_iInf_le + theorem le_iInf_iSup Modified Mathlib/Order/Heyting/Basic.lean + theorem compl_ne_self + theorem le_compl_self + theorem lt_compl_self + theorem ne_compl_self Modified Mathlib/Order/UpperLower/Basic.lean 2023-07-18 02:54:52 6dbfca4 chore: `gcongr` attributes for `exp` (#5968) ESTIMATED CHANGES Modified Mathlib/Data/Complex/Exponential.lean + theorem Real.exp_le_exp_of_le + theorem Real.exp_lt_exp_of_lt 2023-07-17 23:40:33 188909c fix: make `warningAsError` a weak arg (#5970) ESTIMATED CHANGES Modified .github/workflows/bors.yml Modified .github/workflows/build.yml Modified .github/workflows/build.yml.in Modified .github/workflows/build_fork.yml Modified lakefile.lean +/- def moreLeanArgs + def weakLeanArgs 2023-07-17 23:40:32 f742d1f fix: re-port topology.category.top.limits.cofiltered (#4986) This was caught up in a simultaneous split and port, and the dashboard can't tell if its in sync as a result. This just re-ports the file, which brings in the formatting changes preferred by the latest mathport. Most of the changes are whitespace due to the body of `classical` not being indented any more. ESTIMATED CHANGES Modified Mathlib/Topology/Category/TopCat/Limits/Cofiltered.lean 2023-07-17 23:40:31 59447f3 fix: re-port topology.category.top.limits.konig (#4985) This was caught up in a simultaneous split and port, and wasn't quite done correctly as a result ESTIMATED CHANGES Modified Mathlib/Topology/Category/Profinite/CofilteredLimit.lean Modified Mathlib/Topology/Category/TopCat/Limits/Konig.lean +/- theorem TopCat.nonempty_limitCone_of_compact_t2_cofiltered_system +/- theorem TopCat.partialSections.closed +/- def TopCat.partialSections 2023-07-17 22:16:20 6f33b0b feat: add examples to docstrings (#5815) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Limits/Cones.lean 2023-07-18 08:09:39+10:00 ede7b29 feat: use `leantar` in `lake exe cache` (#5710) * feat: use `leantar` in `lake exe cache` * run pack in parallel * bump leantar * version check * use hex for hashes * chore: bump to 0.1.2, add .exe on windows * fix: file extension on linux * fix: arch is reported as arm64 sometimes * fix: statically linked 0.1.3 ESTIMATED CHANGES Modified Cache/IO.lean + def Cache.IO.LEANTARBIN + def Cache.IO.LEANTARVERSION + def Cache.IO.Version + def Cache.IO.getLeanTar + def Cache.IO.parseVersion + def Cache.IO.validateLeanTar + def Nat.toHexDigits + def UInt64.asLTar - def UInt64.asTarGz Modified Cache/Main.lean + def leanTarArgs Modified Cache/Requests.lean 2023-07-17 14:28:36-04:00 f3dd5c3 Revert "hrmacbeth-imo2013-q5" This reverts commit 29028a36c37ed4a3709e35867ef3edf157a402b4. ESTIMATED CHANGES Modified Archive/Imo/Imo2013Q5.lean 2023-07-17 14:23:55-04:00 29028a3 hrmacbeth-imo2013-q5 ESTIMATED CHANGES Modified Archive/Imo/Imo2013Q5.lean 2023-07-17 14:51:38 039dff7 fix: change instance priorities in algebra hierarchy (#5941) WIP: experiments with changing instance priorities. See https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/std4.20.2F.20Lean4.20bump/near/374996945 . ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Defs.lean Modified Mathlib/Algebra/Star/Basic.lean Modified Mathlib/Analysis/NormedSpace/Star/Basic.lean 2023-07-17 12:18:43 6259085 feat: port Init.Data.Sigma.Lex (#5948) ESTIMATED CHANGES Modified Mathlib/Init/Data/Sigma/Lex.lean + theorem PSigma.revLex_wf + theorem PSigma.skipLeft_wf 2023-07-17 10:33:06 a9728c0 feat: a type is denumerable iff it is countable and infinite (#5951) From the sphere eversion project ESTIMATED CHANGES Modified Mathlib/Logic/Denumerable.lean + theorem nonempty_denumerable_iff 2023-07-17 08:55:58 bfc43ce feat(Logic.Equiv.Basic): dependent version of `Equiv.prodUnique` (#5817) ESTIMATED CHANGES Modified Mathlib/Logic/Equiv/Basic.lean + theorem Equiv.coe_sigmaUnique + def Equiv.sigmaPUnit + def Equiv.sigmaUnique + theorem Equiv.sigmaUnique_apply + theorem Equiv.sigmaUnique_symm_apply 2023-07-17 07:06:04 fa05951 chore: bump quote4 (#5955) This update removes the infamous "incompatible metavariable" error. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/NumberTheory/LucasLehmer.lean Modified Mathlib/Tactic.lean Added Mathlib/Tactic/HaveI.lean Modified Mathlib/Tactic/Linarith/Verification.lean Modified Mathlib/Tactic/ModCases.lean Modified Mathlib/Tactic/NormNum/Basic.lean Modified Mathlib/Tactic/Positivity/Basic.lean Modified Mathlib/Tactic/Positivity/Core.lean Modified Mathlib/Tactic/Ring/Basic.lean Modified lake-manifest.json 2023-07-17 07:06:02 f49a809 chore: partial forward port of 14324 (#5954) This doesn't yet forward port the changes to Mathlib/SetTheory/Ordinal/NaturalOps.lean. ESTIMATED CHANGES Modified Mathlib/SetTheory/Ordinal/Arithmetic.lean + def Ordinal.blsub₂ + theorem Ordinal.lt_blsub₂ Modified Mathlib/SetTheory/Ordinal/NaturalOps.lean Modified Mathlib/SetTheory/Ordinal/Principal.lean - def Ordinal.blsub₂ - theorem Ordinal.lt_blsub₂ 2023-07-17 07:06:00 0ad2697 feat: add `LocallyFinite.prod_left` and `LocallyFinite.prod_right` (#5953) From the sphere eversion project. ESTIMATED CHANGES Modified Mathlib/Topology/LocallyFinite.lean + theorem LocallyFinite.prod_left + theorem LocallyFinite.prod_right 2023-07-17 07:05:59 e2952a7 feat: make start_port.sh work for core too (#5945) Tested on core files as `start_port.sh Mathlib/Init/Core` and seems to do something reasonable. ESTIMATED CHANGES Modified scripts/start_port.sh 2023-07-17 07:05:57 c3c3a2d chore: sync references.bib with mathlib3 (#5903) ESTIMATED CHANGES Modified docs/references.bib 2023-07-17 07:05:56 bb0e79e style: `Init.CcLemmas` -> `Init.CCLemmas` (#5886) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Hom/Group.lean Renamed Mathlib/Init/CcLemmas.lean to Mathlib/Init/CCLemmas.lean 2023-07-17 07:05:54 26d6c6a chore (CategoryTheory.Monad.Monadicity): un-leak notation (#5830) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Monad/Monadicity.lean 2023-07-17 07:05:53 43e6295 feat: #find_home (#5731) ESTIMATED CHANGES Modified Mathlib/Lean/Expr/Basic.lean + def Lean.Name.requiredModules Modified Mathlib/Util/Imports.lean + def Lean.Name.findHome 2023-07-17 05:19:39 ff552ca fix: add `supportInterpreter := true` (#5931) Fixes `lake exe graph` on Linux. ESTIMATED CHANGES Modified lakefile.lean 2023-07-17 03:51:33 307d548 feat(MeasureTheory.Integral.Bochner): drop completeness requirement from the definition (#5910) The notion of Bochner integral of a function taking values in a normed space `E` requires that `E` is complete. This means that whenever we write down an integral, the term contains the assertion that `E` is complete. In this PR, we remove the completeness requirement from the definition, using the junk value `0` when the space is not complete. Mathematically this does not make any difference, as all reasonable applications will be with a complete `E`. But it means that terms involving integrals become a little bit simpler and that completeness will not have to be checked by the system when applying a bunch of basic lemmas on integrals. ESTIMATED CHANGES Modified Mathlib/Analysis/Convolution.lean +/- theorem convolution_mul +/- theorem convolution_mul_swap Modified Mathlib/Analysis/Fourier/FourierTransform.lean +/- theorem Real.fourierIntegral_eq_integral_exp_smul Modified Mathlib/Analysis/Fourier/RiemannLebesgueLemma.lean Modified Mathlib/Analysis/SpecialFunctions/Gamma/Beta.lean Modified Mathlib/Analysis/SpecialFunctions/Gaussian.lean Modified Mathlib/MeasureTheory/Integral/Bochner.lean +/- theorem MeasureTheory.HasFiniteIntegral.tendsto_set_integral_nhds_zero +/- theorem MeasureTheory.Integrable.tendsto_set_integral_nhds_zero +/- theorem MeasureTheory.L1.integral_of_fun_eq_integral +/- theorem MeasureTheory.continuousAt_of_dominated +/- theorem MeasureTheory.continuousOn_of_dominated +/- theorem MeasureTheory.continuousWithinAt_of_dominated +/- theorem MeasureTheory.continuous_integral +/- theorem MeasureTheory.continuous_of_dominated +/- theorem MeasureTheory.ennnorm_integral_le_lintegral_ennnorm +/- theorem MeasureTheory.hasSum_integral_measure +/- theorem MeasureTheory.hasSum_integral_of_dominated_convergence +/- theorem MeasureTheory.integral_add' +/- theorem MeasureTheory.integral_add +/- theorem MeasureTheory.integral_add_measure +/- theorem MeasureTheory.integral_congr_ae +/- theorem MeasureTheory.integral_eq +/- theorem MeasureTheory.integral_eq_zero_of_ae +/- theorem MeasureTheory.integral_finset_sum +/- theorem MeasureTheory.integral_finset_sum_measure +/- theorem MeasureTheory.integral_map +/- theorem MeasureTheory.integral_map_equiv +/- theorem MeasureTheory.integral_neg' +/- theorem MeasureTheory.integral_neg +/- theorem MeasureTheory.integral_non_aestronglyMeasurable +/- theorem MeasureTheory.integral_norm_eq_lintegral_nnnorm +/- theorem MeasureTheory.integral_smul +/- theorem MeasureTheory.integral_smul_measure +/- theorem MeasureTheory.integral_sub' +/- theorem MeasureTheory.integral_sub +/- theorem MeasureTheory.integral_sum_measure +/- theorem MeasureTheory.integral_trim +/- theorem MeasureTheory.integral_trim_ae +/- theorem MeasureTheory.integral_tsum +/- theorem MeasureTheory.integral_undef +/- theorem MeasureTheory.integral_zero' +/- theorem MeasureTheory.integral_zero +/- theorem MeasureTheory.integral_zero_measure +/- theorem MeasureTheory.nndist_integral_add_measure_le_lintegral +/- theorem MeasureTheory.norm_integral_le_integral_norm +/- theorem MeasureTheory.norm_integral_le_lintegral_norm +/- theorem MeasureTheory.norm_integral_le_of_norm_le +/- theorem MeasureTheory.norm_integral_le_of_norm_le_const +/- theorem MeasureTheory.ofReal_integral_norm_eq_lintegral_nnnorm +/- theorem MeasureTheory.tendsto_integral_of_L1 +/- theorem MeasureTheory.tendsto_integral_of_dominated_convergence Modified Mathlib/MeasureTheory/Integral/CircleTransform.lean +/- theorem Complex.integral_circleTransform Modified Mathlib/MeasureTheory/Integral/SetIntegral.lean +/- theorem MeasureTheory.continuous_set_integral +/- theorem MeasureTheory.integral_indicatorConstLp +/- theorem MeasureTheory.integral_indicator_const +/- theorem MeasureTheory.set_integral_const +/- theorem MeasureTheory.set_integral_indicatorConstLp Modified Mathlib/MeasureTheory/Measure/Lebesgue/Integral.lean Modified Mathlib/MeasureTheory/Measure/ProbabilityMeasure.lean Modified Mathlib/Probability/IdentDistrib.lean +/- theorem ProbabilityTheory.IdentDistrib.integral_eq Modified Mathlib/Probability/Kernel/Basic.lean +/- theorem ProbabilityTheory.kernel.integral_const +/- theorem ProbabilityTheory.kernel.integral_piecewise +/- theorem ProbabilityTheory.kernel.set_integral_const Modified Mathlib/Probability/Martingale/Convergence.lean 2023-07-17 02:18:16 ae594c9 feat: `finset.uIcc` on concrete structures (#5946) Match https://github.com/leanprover-community/mathlib/pull/18838 ESTIMATED CHANGES Modified Mathlib/Data/DFinsupp/Interval.lean + theorem DFinsupp.card_uIcc Modified Mathlib/Data/DFinsupp/Multiset.lean + theorem DFinsupp.toMultiset_inf + theorem DFinsupp.toMultiset_inj + theorem DFinsupp.toMultiset_injective + theorem DFinsupp.toMultiset_le_toMultiset + theorem DFinsupp.toMultiset_lt_toMultiset + theorem DFinsupp.toMultiset_sup +/- theorem DFinsupp.toMultiset_toDFinsupp + theorem Multiset.toDFinsupp_inj + theorem Multiset.toDFinsupp_injective + theorem Multiset.toDFinsupp_inter +/- theorem Multiset.toDFinsupp_le_toDFinsupp + theorem Multiset.toDFinsupp_lt_toDFinsupp + theorem Multiset.toDFinsupp_union Modified Mathlib/Data/DFinsupp/Order.lean + theorem DFinsupp.support_inf_union_support_sup + theorem DFinsupp.support_sup_union_support_inf Modified Mathlib/Data/Fin/Interval.lean + theorem Fin.card_fintype_uIcc + theorem Fin.card_uIcc + theorem Fin.coe_inf + theorem Fin.coe_max + theorem Fin.coe_min + theorem Fin.coe_sup + theorem Fin.map_subtype_embedding_uIcc + theorem Fin.uIcc_eq_finset_subtype Modified Mathlib/Data/Finset/Lattice.lean Modified Mathlib/Data/Finset/LocallyFinite.lean Modified Mathlib/Data/Finsupp/Interval.lean + theorem Finsupp.Icc_eq + theorem Finsupp.card_uIcc - theorem Finsupp.icc_eq Modified Mathlib/Data/Finsupp/Order.lean + theorem Finsupp.support_inf_union_support_sup + theorem Finsupp.support_sup_union_support_inf Modified Mathlib/Data/Int/Interval.lean +/- theorem Int.card_Icc +/- theorem Int.card_Ico +/- theorem Int.card_Ioc +/- theorem Int.card_Ioo + theorem Int.card_fintype_uIcc + theorem Int.card_uIcc + theorem Int.uIcc_eq_finset_map Modified Mathlib/Data/Multiset/Interval.lean +/- theorem Multiset.card_Iic + theorem Multiset.card_uIcc + theorem Multiset.uIcc_eq Modified Mathlib/Data/Nat/Interval.lean + theorem Nat.card_uIcc + theorem Nat.uIcc_eq_range' Modified Mathlib/Data/PNat/Interval.lean + theorem PNat.card_fintype_uIcc + theorem PNat.card_uIcc +/- theorem PNat.map_subtype_embedding_Icc +/- theorem PNat.map_subtype_embedding_Ico +/- theorem PNat.map_subtype_embedding_Ioc +/- theorem PNat.map_subtype_embedding_Ioo + theorem PNat.map_subtype_embedding_uIcc + theorem PNat.uIcc_eq_finset_subtype Modified Mathlib/Data/Pi/Interval.lean + theorem Pi.card_uIcc + theorem Pi.uIcc_eq Modified Mathlib/Order/LocallyFinite.lean + theorem Set.finite_interval 2023-07-17 01:16:48 44d1fd9 feat: Lebesgue average (#5810) Match https://github.com/leanprover-community/mathlib/pull/19199 ESTIMATED CHANGES Modified Mathlib/Analysis/Convex/Integral.lean Modified Mathlib/Data/Real/ENNReal.lean Modified Mathlib/MeasureTheory/Covering/Differentiation.lean Modified Mathlib/MeasureTheory/Integral/Average.lean +/- theorem MeasureTheory.average_const - theorem MeasureTheory.average_toReal + theorem MeasureTheory.exists_laverage_le + theorem MeasureTheory.exists_le_laverage + theorem MeasureTheory.exists_le_lintegral + theorem MeasureTheory.exists_le_setLaverage + theorem MeasureTheory.exists_lintegral_le + theorem MeasureTheory.exists_not_mem_null_laverage_le + theorem MeasureTheory.exists_not_mem_null_le_laverage + theorem MeasureTheory.exists_not_mem_null_le_lintegral + theorem MeasureTheory.exists_not_mem_null_lintegral_le + theorem MeasureTheory.exists_setLaverage_le + theorem MeasureTheory.laverage_add_measure + theorem MeasureTheory.laverage_congr + theorem MeasureTheory.laverage_const + theorem MeasureTheory.laverage_eq' + theorem MeasureTheory.laverage_eq + theorem MeasureTheory.laverage_eq_lintegral + theorem MeasureTheory.laverage_lt_top + theorem MeasureTheory.laverage_mem_openSegment_compl_self + theorem MeasureTheory.laverage_one + theorem MeasureTheory.laverage_union + theorem MeasureTheory.laverage_union_mem_openSegment + theorem MeasureTheory.laverage_union_mem_segment + theorem MeasureTheory.laverage_zero + theorem MeasureTheory.laverage_zero_measure + theorem MeasureTheory.lintegral_laverage + theorem MeasureTheory.measure_laverage_le_pos + theorem MeasureTheory.measure_le_laverage_pos + theorem MeasureTheory.measure_le_lintegral_pos + theorem MeasureTheory.measure_le_setLaverage_pos + theorem MeasureTheory.measure_lintegral_le_pos + theorem MeasureTheory.measure_mul_laverage + theorem MeasureTheory.measure_mul_setLaverage + theorem MeasureTheory.measure_setLaverage_le_pos + theorem MeasureTheory.measure_smul_setAverage - theorem MeasureTheory.measure_smul_set_average + theorem MeasureTheory.setAverage_congr + theorem MeasureTheory.setAverage_congr_fun + theorem MeasureTheory.setAverage_const + theorem MeasureTheory.setAverage_eq' + theorem MeasureTheory.setAverage_eq - theorem MeasureTheory.setAverage_setAverage - theorem MeasureTheory.setAverage_setAverage_sub - theorem MeasureTheory.setAverage_toReal + theorem MeasureTheory.setIntegral_setAverage + theorem MeasureTheory.setIntegral_setAverage_sub + theorem MeasureTheory.setLaverage_congr + theorem MeasureTheory.setLaverage_congr_fun + theorem MeasureTheory.setLaverage_const + theorem MeasureTheory.setLaverage_eq' + theorem MeasureTheory.setLaverage_eq + theorem MeasureTheory.setLaverage_lt_top + theorem MeasureTheory.setLaverage_one + theorem MeasureTheory.setLintegral_setLaverage - theorem MeasureTheory.set_average_congr_set_ae - theorem MeasureTheory.set_average_const - theorem MeasureTheory.set_average_eq' - theorem MeasureTheory.set_average_eq + theorem MeasureTheory.toReal_laverage + theorem MeasureTheory.toReal_setLaverage Modified Mathlib/MeasureTheory/Integral/IntervalAverage.lean Modified Mathlib/MeasureTheory/Integral/Lebesgue.lean + theorem MeasureTheory.lintegral_eq_top_of_measure_eq_top_ne_zero - theorem MeasureTheory.lintegral_eq_top_of_measure_eq_top_pos + theorem MeasureTheory.lintegral_indicator_one + theorem MeasureTheory.measure_eq_top_of_lintegral_ne_top + theorem MeasureTheory.measure_eq_top_of_setLintegral_ne_top + theorem MeasureTheory.setLintegral_eq_top_of_measure_eq_top_ne_zero Modified Mathlib/MeasureTheory/MeasurableSpace.lean Modified Mathlib/MeasureTheory/Measure/MeasureSpaceDef.lean - theorem MeasureTheory.Set.mulIndicator_ae_eq_one + theorem Set.mulIndicator_ae_eq_one Modified Mathlib/Probability/Density.lean 2023-07-17 00:18:59 4a7628d feat: `prod.lex` is well-founded (#5943) Match https://github.com/leanprover-community/mathlib/pull/18665 ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Init/Data/Sigma/Lex.lean + theorem PSigma.lex_wf Modified Mathlib/Order/WellFounded.lean + theorem WellFounded.mono + theorem WellFounded.onFun Modified Mathlib/Order/WellFoundedSet.lean + theorem Set.WellFoundedOn.mono' + theorem Set.WellFoundedOn.prod_lex_of_wellFoundedOn_fiber + theorem Set.WellFoundedOn.sigma_lex_of_wellFoundedOn_fiber + theorem Set.wellFoundedOn_image + theorem Set.wellFoundedOn_range + theorem Set.wellFoundedOn_univ + theorem WellFounded.prod_lex_of_wellFoundedOn_fiber + theorem WellFounded.sigma_lex_of_wellFoundedOn_fiber + theorem WellFounded.wellFoundedOn 2023-07-16 14:44:28 1a646ca feat(Topology.Algebra.InfiniteSum): make sure that tsum and sum coincide on fintypes (#5914) Currently, when `s` is a fintype, it is possible that `∑' x, f x ≠ ∑ x, f x` (if the topology of the target space is not separated), as the infinite sum `∑'` picks some limit if it exists, but not necessarily the one we prefer. This PR tweaks the definition of infinite sums to make sure that, when a function is finitely supported, the chosen limit for its infinite sum is the (finite) sum of its values. This makes it possible to remove a few separation assumption here and there. ESTIMATED CHANGES Modified Mathlib/Analysis/NormedSpace/Exponential.lean +/- theorem exp_zero Modified Mathlib/MeasureTheory/Measure/MeasureSpace.lean Modified Mathlib/MeasureTheory/Measure/OuterMeasure.lean Modified Mathlib/Topology/Algebra/InfiniteSum/Basic.lean + theorem summable_of_finite_support +/- theorem tsum_congr +/- theorem tsum_empty + theorem tsum_eq_finsum +/- theorem tsum_eq_sum +/- theorem tsum_fintype +/- theorem tsum_pi_single - theorem tsum_zero' +/- theorem tsum_zero 2023-07-16 13:05:48 48029e8 chore: forward-port leanprover-community/mathlib#19234 (#5887) ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Prod.lean + def MulEquiv.prodProdProdComm + theorem MulEquiv.prodProdProdComm_symm + theorem MulEquiv.prodProdProdComm_toEquiv Modified Mathlib/Algebra/Ring/Prod.lean + def RingEquiv.prodProdProdComm + theorem RingEquiv.prodProdProdComm_symm + theorem RingEquiv.prodProdProdComm_toAddEquiv + theorem RingEquiv.prodProdProdComm_toEquiv + theorem RingEquiv.prodProdProdComm_toMulEquiv Modified Mathlib/LinearAlgebra/Prod.lean + def LinearEquiv.prodProdProdComm + theorem LinearEquiv.prodProdProdComm_symm + theorem LinearEquiv.prodProdProdComm_toAddEquiv Modified Mathlib/Logic/Equiv/Basic.lean + def Equiv.prodProdProdComm + theorem Equiv.prodProdProdComm_symm 2023-07-16 11:35:04 dcf4f61 chore: forward port leanprover-community/mathlib#18719 (#5936) ESTIMATED CHANGES Modified Mathlib/Data/Prod/Basic.lean Modified Mathlib/Dynamics/PeriodicPts.lean + theorem Function.isFixedPt_prod_map + theorem Function.isPeriodicPt_prod_map + theorem Function.iterate_prod_map + theorem Function.minimalPeriod_fst_dvd + theorem Function.minimalPeriod_prod_map + theorem Function.minimalPeriod_snd_dvd Modified Mathlib/GroupTheory/OrderOfElement.lean + theorem IsOfFinOrder.fst + theorem IsOfFinOrder.mono + theorem IsOfFinOrder.prod_mk + theorem IsOfFinOrder.snd +/- theorem MonoidHom.isOfFinOrder + theorem injective_zpow_iff_not_isOfFinOrder + theorem orderOf_fst_dvd_orderOf + theorem orderOf_snd_dvd_orderOf + theorem zpow_eq_one_iff_modEq + theorem zpow_eq_zpow_iff_modEq 2023-07-16 11:35:03 2ca4ad0 chore: Forward-port leanprover-community/mathlib#19230 (#5907) This doesn't forward-port the removal of `.{u}` as this doesn't actually change the type, and just results in `.{u_1}` being implied instead. ESTIMATED CHANGES Modified Mathlib/AlgebraicGeometry/Morphisms/QuasiSeparated.lean 2023-07-16 11:35:02 178de46 chore: fix SHA in Data.HashMap (#5895) This file was replaced, not ported: so the SHA is irrelevant anyway. ESTIMATED CHANGES Modified Mathlib/Data/HashMap.lean 2023-07-16 11:35:01 e06c1bd chore: fix SHA in Data.Buffer.Basic (#5894) Also adds noaligns ESTIMATED CHANGES Modified Mathlib/Data/Buffer/Basic.lean 2023-07-16 11:35:00 b15b2bf chore: forward-port leanprover-community/mathlib#19127 (#5889) ESTIMATED CHANGES Modified Mathlib/Analysis/Calculus/FDeriv/Mul.lean + theorem Differentiable.inv' + theorem Differentiable.inverse + theorem DifferentiableAt.inv' + theorem DifferentiableAt.inverse + theorem DifferentiableOn.inv' + theorem DifferentiableOn.inverse + theorem DifferentiableWithinAt.inv' + theorem DifferentiableWithinAt.inverse + theorem differentiableAt_inv' +/- theorem differentiableAt_inverse + theorem differentiableOn_inv' + theorem differentiableOn_inverse + theorem differentiableWithinAt_inv' + theorem differentiableWithinAt_inverse + theorem fderivWithin_inv' + theorem fderiv_inv' + theorem hasFDerivAt_inv' Modified Mathlib/Analysis/NormedSpace/Spectrum.lean 2023-07-16 11:34:58 10c93ae chore: forward-port leanprover-community/mathlib#19103 (#5855) ESTIMATED CHANGES Modified Mathlib/Analysis/Calculus/FDeriv/Basic.lean Modified Mathlib/Analysis/Normed/Group/Basic.lean + theorem AntilipschitzWith.le_mul_nnnorm' + theorem AntilipschitzWith.le_mul_norm' + theorem LipschitzWith.nnorm_le_mul' + theorem LipschitzWith.norm_le_mul' - theorem MonoidHomClass.bound_of_antilipschitz + theorem OneHomClass.bound_of_antilipschitz + theorem dist_le_norm_add_norm' - theorem dist_le_norm_mul_norm Modified Mathlib/Analysis/NormedSpace/ContinuousLinearMap.lean 2023-07-16 11:34:57 45eb7f2 chore: forward-port leanprover-community/mathlib#18943 (#5854) ESTIMATED CHANGES Modified Mathlib/Analysis/Convex/Basic.lean + theorem coe_convexAddSubmonoid + def convexAddSubmonoid + theorem convex_list_sum + theorem convex_multiset_sum + theorem convex_sum + theorem convex_zero + theorem mem_convexAddSubmonoid Modified Mathlib/Analysis/Convex/Combination.lean + theorem convexHull_list_sum + theorem convexHull_multiset_sum + theorem convexHull_sum Modified Mathlib/Analysis/Convex/Hull.lean + theorem convexHull_zero Modified Mathlib/MeasureTheory/Measure/Haar/OfBasis.lean 2023-07-16 11:34:57 4f2aaaf chore: forward-port leanprover-community/mathlib#18970 (#5852) This also `#align`s some nearby instance names ESTIMATED CHANGES Modified Mathlib/Data/Fin/Basic.lean Modified Mathlib/Data/ZMod/Defs.lean 2023-07-16 09:12:27 15b639c chore: forward-port leanprover-community/mathlib#19142 (#5893) ESTIMATED CHANGES Modified Mathlib/Data/Finset/Basic.lean + theorem List.toFinset_nonempty_iff + theorem Multiset.toFinset_nonempty Modified Mathlib/Data/List/Dedup.lean + theorem List.dedup_eq_cons + theorem List.dedup_eq_nil + theorem List.headI_dedup + theorem List.tail_dedup 2023-07-16 00:55:53 e96fc25 feat: `Encodable` and `Countable` instances for `Π₀ i, α i` and `α →₀ β` (#5875) Fixes #5776 ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Data/DFinsupp/Basic.lean + def DFinsupp.sigmaFinsetFunEquiv + def DFinsupp.subtypeSupportEqEquiv Added Mathlib/Data/DFinsupp/Encodable.lean Added Mathlib/Data/Finsupp/Encodable.lean 2023-07-15 22:54:32 3d2f586 docs: port `CODE_OF_CONDUCT.md` (#5922) ESTIMATED CHANGES Added CODE_OF_CONDUCT.md 2023-07-15 22:54:31 cd8b72b feat: port Geometry.Manifold.Instances.Sphere (#5571) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Geometry/Manifold/Instances/Sphere.lean + theorem ContMDiff.codRestrict_sphere + theorem contDiffOn_stereoToFun + theorem contDiff_stereoInvFunAux + theorem contMDiff_coe_sphere + theorem contMDiff_expMapCircle + theorem contMDiff_neg_sphere + theorem continuousOn_stereoToFun + theorem continuous_stereoInvFun + theorem finrank_real_complex_fact' + theorem hasFDerivAt_stereoInvFunAux + theorem hasFDerivAt_stereoInvFunAux_comp_coe + theorem mfderiv_coe_sphere_injective + theorem range_mfderiv_coe_sphere + theorem sphere_ext_iff + def stereoInvFun + def stereoInvFunAux + theorem stereoInvFunAux_apply + theorem stereoInvFunAux_mem + theorem stereoInvFun_apply + theorem stereoInvFun_ne_north_pole + def stereoToFun + theorem stereoToFun_apply + theorem stereo_left_inv + theorem stereo_right_inv + def stereographic' + theorem stereographic'_source + theorem stereographic'_symm_apply + theorem stereographic'_target + def stereographic + theorem stereographic_apply + theorem stereographic_apply_neg + theorem stereographic_neg_apply + theorem stereographic_source + theorem stereographic_target 2023-07-15 21:28:10 d31d954 feat: add `Pi.ofNat_apply` (#5928) ESTIMATED CHANGES Modified Mathlib/Data/Nat/Cast/Basic.lean + theorem Pi.ofNat_apply Modified Mathlib/Probability/Variance.lean 2023-07-15 20:46:11 d5cc6ec fix: fix ZFC Basic module docstring (#5757) The Lean 3 names were not updated to Lean 4 in the module docstring. Also fix capitalisation in some declarations (`Arity.const`, `PSet.Resp.evalAux`, `Classical.allDefinable`). ESTIMATED CHANGES Modified Mathlib/SetTheory/ZFC/Basic.lean - def Arity.Const + def Arity.const +/- theorem Arity.const_succ +/- theorem Arity.const_succ_apply +/- theorem Arity.const_zero +/- theorem PSet.Arity.equiv_const - def PSet.Resp.EvalAux + def PSet.Resp.evalAux 2023-07-15 18:30:13 4dcc0e1 refactor: use `SemilinearMapClass` in `LinearMap.eqLocus` (#5929) Also prove extensionality on a codisjoint pair of submodules. ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/Basic.lean +/- def LinearMap.eqLocus +/- theorem LinearMap.eqLocus_eq_ker_sub + theorem LinearMap.eqLocus_eq_top +/- theorem LinearMap.eqLocus_same +/- theorem LinearMap.eqLocus_toAddSubmonoid + theorem LinearMap.eqOn_sup + theorem LinearMap.ext_on_codisjoint + theorem LinearMap.le_eqLocus +/- theorem LinearMap.mem_eqLocus Modified Mathlib/LinearAlgebra/Span.lean +/- theorem LinearMap.eqOn_span' +/- theorem LinearMap.eqOn_span + theorem LinearMap.eqOn_span_iff +/- theorem LinearMap.ext_on +/- theorem LinearMap.ext_on_range 2023-07-15 18:05:20 c5b26a0 chore(Analysis.NormedSpace.CompactOperator): fix reference to now-published Bourbaki book (#5923) ESTIMATED CHANGES Modified Mathlib/Analysis/NormedSpace/CompactOperator.lean Modified docs/references.bib 2023-07-15 14:27:45 f1fbf07 chore: re-port Init.Algebra.Functions (#5924) This mainly just adds aligns and the SHA header ESTIMATED CHANGES Modified Mathlib/Init/Algebra/Functions.lean +/- theorem eq_max +/- theorem eq_min +/- theorem le_max_left +/- theorem le_max_right +/- theorem le_min +/- theorem lt_min +/- theorem max_assoc +/- theorem max_comm +/- theorem max_def +/- theorem max_eq_left +/- theorem max_eq_left_of_lt +/- theorem max_eq_right +/- theorem max_eq_right_of_lt +/- theorem max_le +/- theorem max_left_comm +/- theorem max_lt +/- theorem max_self +/- theorem min_assoc +/- theorem min_comm +/- theorem min_def +/- theorem min_eq_left +/- theorem min_eq_left_of_lt +/- theorem min_eq_right +/- theorem min_eq_right_of_lt +/- theorem min_le_left +/- theorem min_le_right +/- theorem min_left_comm +/- theorem min_self 2023-07-15 14:03:11 dd065eb chore: port Data/Matrix/Auto (#5926) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Data/Matrix/Auto.lean 2023-07-15 11:07:30 de2ffad feat: Manually port Algebra/Expr (#5925) These are taken from #5863, as the mathport output is not ready, but would be useless anyway. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Expr.lean + def Expr.instAdd + def Expr.instMul + def Expr.instOne + def Expr.instZero 2023-07-15 09:21:58 0345821 chore: re-port Init.Algebra.Classes (#5857) Mainly this adds align statements that were missing, and the header comment. ESTIMATED CHANGES Modified Mathlib/Init/Algebra/Classes.lean + def StrictWeakOrder.Equiv + theorem StrictWeakOrder.erefl + theorem StrictWeakOrder.esymm + theorem StrictWeakOrder.etrans + theorem StrictWeakOrder.not_lt_of_equiv' + theorem StrictWeakOrder.not_lt_of_equiv +/- theorem isStrictWeakOrder_of_isTotalPreorder 2023-07-15 07:48:30 0c32996 feat(Analysis.Calculus.ContDiffDef): support of iterated derivative (#5915) We already had that the iterated derivative of a compactly supported function is compactly supported, this just makes it a bit more precise by iterating `support_fderiv_subset`. ESTIMATED CHANGES Modified Mathlib/Analysis/Calculus/ContDiffDef.lean + theorem support_iteratedFDeriv_subset + theorem tsupport_iteratedFDeriv_subset 2023-07-15 07:48:29 6f9d6dc feat(Analysis/LocallyConvex/WithSeminorms): congr lemmas (#5797) This adds `WithSeminorms.congr` which allows to replace a family of seminorm by an equivalent one. We use that to prove that one can always replace the family by a directed family (and a nice one if the indexing set is a `LocallyFiniteOrderBot`). ESTIMATED CHANGES Modified Mathlib/Analysis/LocallyConvex/WithSeminorms.lean 2023-07-15 07:15:53 41a80d7 Generalize `orthogonalProjection` (#5917) Introduce a typeclass `HasOrthogonalProjection` and use it instead of `[CompleteSpace K]` in the definitions of `orthogonalProjection` and `reflection`, as well as lemmas about these definitions. This way we do not need a `[CompleteSpace E]` assumption to talk about `orthogonalProjection (𝕜 ∙ v)`. Fixes #5877 ESTIMATED CHANGES Modified Mathlib/Analysis/InnerProductSpace/Projection.lean +/- theorem Dense.eq_of_sub_mem_orthogonal +/- theorem Dense.eq_zero_of_inner_left +/- theorem Submodule.IsOrtho.orthogonalProjection_comp_subtypeL + theorem Submodule.exists_add_mem_mem_orthogonal - theorem Submodule.exists_sum_mem_mem_orthogonal +/- theorem Submodule.isCompl_orthogonal_of_completeSpace +/- theorem Submodule.orthogonal_eq_bot_iff +/- theorem Submodule.orthogonal_orthogonal +/- theorem Submodule.sup_orthogonal_of_completeSpace +/- theorem eq_orthogonalProjection_of_eq_submodule +/- theorem eq_orthogonalProjection_of_mem_orthogonal' +/- theorem eq_orthogonalProjection_of_mem_orthogonal - theorem eq_sum_orthogonalProjection_self_orthogonalComplement +/- theorem id_eq_sum_orthogonalProjection_self_orthogonalComplement +/- theorem inner_orthogonalProjection_eq_of_mem_left +/- theorem inner_orthogonalProjection_eq_of_mem_right +/- theorem inner_orthogonalProjection_left_eq_right +/- theorem norm_sq_eq_add_norm_sq_projection + theorem orthogonalProjection_add_orthogonalProjection_orthogonal +/- theorem orthogonalProjection_coe_linearMap_eq_linearProj +/- theorem orthogonalProjection_comp_subtypeL_eq_zero_iff +/- theorem orthogonalProjection_eq_linear_proj +/- theorem orthogonalProjection_isSymmetric +/- theorem orthogonalProjection_mem_subspace_orthogonalComplement_eq_zero +/- theorem orthogonalProjection_mem_subspace_orthogonal_precomplement_eq_zero +/- theorem orthogonalProjection_minimal + theorem orthogonalProjection_orthogonal +/- theorem orthogonalProjection_orthogonalComplement_singleton_eq_zero +/- theorem orthogonalProjection_orthogonalProjection_of_le + theorem orthogonalProjection_orthogonal_val +/- theorem reflection_mem_subspace_orthogonalComplement_eq_neg +/- theorem reflection_mem_subspace_orthogonal_precomplement_eq_neg + theorem reflection_orthogonal +/- theorem reflection_orthogonalComplement_singleton_eq_neg + theorem reflection_orthogonal_apply +/- theorem reflection_sub Modified Mathlib/Geometry/Euclidean/Basic.lean +/- theorem EuclideanGeometry.dist_reflection +/- theorem EuclideanGeometry.dist_reflection_eq_of_mem +/- def EuclideanGeometry.orthogonalProjectionFn +/- theorem EuclideanGeometry.orthogonalProjectionFn_eq +/- theorem EuclideanGeometry.orthogonalProjectionFn_mem +/- theorem EuclideanGeometry.orthogonalProjection_mem +/- def EuclideanGeometry.reflection +/- theorem EuclideanGeometry.reflection_apply +/- theorem EuclideanGeometry.reflection_eq_self_iff +/- theorem EuclideanGeometry.reflection_involutive +/- theorem EuclideanGeometry.reflection_orthogonal_vadd +/- theorem EuclideanGeometry.reflection_reflection +/- theorem EuclideanGeometry.reflection_symm Modified Mathlib/Geometry/Euclidean/Circumcenter.lean +/- theorem EuclideanGeometry.existsUnique_dist_eq_of_insert 2023-07-15 06:50:19 3acb5b8 chore: split `Mathlib.Geometry.Euclidean.Inversion` (#5868) Move theorems about image of a sphere passing through the center to a new file. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Analysis/Complex/UpperHalfPlane/Metric.lean Renamed Mathlib/Geometry/Euclidean/Inversion.lean to Mathlib/Geometry/Euclidean/Inversion/Basic.lean - theorem EuclideanGeometry.image_inversion_perpBisector - theorem EuclideanGeometry.image_inversion_sphere_dist_center - theorem EuclideanGeometry.inversion_mem_perpBisector_inversion_iff' - theorem EuclideanGeometry.inversion_mem_perpBisector_inversion_iff - theorem EuclideanGeometry.preimage_inversion_perpBisector - theorem EuclideanGeometry.preimage_inversion_perpBisector_inversion - theorem EuclideanGeometry.preimage_inversion_sphere_dist_center Added Mathlib/Geometry/Euclidean/Inversion/ImageHyperplane.lean + theorem EuclideanGeometry.image_inversion_affineSubspace_of_mem + theorem EuclideanGeometry.image_inversion_perpBisector + theorem EuclideanGeometry.image_inversion_sphere_dist_center + theorem EuclideanGeometry.inversion_mem_perpBisector_inversion_iff' + theorem EuclideanGeometry.inversion_mem_perpBisector_inversion_iff + theorem EuclideanGeometry.mapsTo_inversion_affineSubspace_of_mem + theorem EuclideanGeometry.preimage_inversion_perpBisector + theorem EuclideanGeometry.preimage_inversion_perpBisector_inversion + theorem EuclideanGeometry.preimage_inversion_sphere_dist_center 2023-07-15 02:55:22 2f7b995 feat: port AlgebraicGeometry.Morphisms.FiniteType (#5913) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/AlgebraicGeometry/Morphisms/FiniteType.lean + theorem AlgebraicGeometry.LocallyOfFiniteType.affine_openCover_iff + theorem AlgebraicGeometry.LocallyOfFiniteType.openCover_iff + theorem AlgebraicGeometry.LocallyOfFiniteType.source_openCover_iff + theorem AlgebraicGeometry.locallyOfFiniteTypeOfComp + theorem AlgebraicGeometry.locallyOfFiniteType_eq + theorem AlgebraicGeometry.locallyOfFiniteType_respectsIso + theorem AlgebraicGeometry.locallyOfFiniteType_stableUnderComposition 2023-07-15 01:19:16 158c155 fix: use a raw nat literal where the comment says we do (#5866) ESTIMATED CHANGES Modified Mathlib/Data/Fin/Basic.lean 2023-07-15 00:13:52 2922c5f feat: port AlgebraicGeometry.Morphisms.RingHomProperties (#5663) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/AlgebraicGeometry/Morphisms/RingHomProperties.lean + theorem AlgebraicGeometry.affineLocally_iff_affineOpens_le + theorem AlgebraicGeometry.affineLocally_respectsIso + theorem AlgebraicGeometry.isOpenImmersionCat_comp_of_sourceAffineLocally + theorem AlgebraicGeometry.scheme_restrict_basicOpen_of_localizationPreserves + def AlgebraicGeometry.sourceAffineLocally + theorem AlgebraicGeometry.sourceAffineLocally_isLocal + theorem AlgebraicGeometry.sourceAffineLocally_of_source_open_cover_aux + theorem AlgebraicGeometry.sourceAffineLocally_respectsIso + theorem RingHom.PropertyIsLocal.affineLocally_of_comp + theorem RingHom.PropertyIsLocal.affineLocally_of_isOpenImmersion + theorem RingHom.PropertyIsLocal.affineLocally_stableUnderComposition + theorem RingHom.PropertyIsLocal.affine_openCover_TFAE + theorem RingHom.PropertyIsLocal.affine_openCover_iff + theorem RingHom.PropertyIsLocal.isLocal_sourceAffineLocally + theorem RingHom.PropertyIsLocal.is_local_affineLocally + theorem RingHom.PropertyIsLocal.openCover_TFAE + theorem RingHom.PropertyIsLocal.sourceAffineLocally_comp_of_isOpenImmersion + theorem RingHom.PropertyIsLocal.sourceAffineLocally_of_source_openCover + theorem RingHom.PropertyIsLocal.source_affine_openCover_iff + theorem RingHom.PropertyIsLocal.source_openCover_iff + theorem RingHom.RespectsIso.basicOpen_iff + theorem RingHom.RespectsIso.basicOpen_iff_localization + theorem RingHom.RespectsIso.ofRestrict_morphismRestrict_iff + theorem RingHom.StableUnderBaseChange.Γ_pullback_fst Modified Mathlib/RingTheory/Localization/Basic.lean 2023-07-14 19:11:54 8d3c56c chore: re-port Init.Function (#5859) Notably this fixes the naming of `comp_left` and `comp_right`. ESTIMATED CHANGES Modified Mathlib/Init/Function.lean +/- def Function.Bijective +/- theorem Function.HasLeftInverse.injective +/- def Function.HasLeftInverse +/- def Function.HasRightInverse +/- def Function.Injective +/- def Function.LeftInverse +/- def Function.RightInverse +/- def Function.Surjective +/- def Function.app +/- theorem Function.bijective_id +/- def Function.combine +/- theorem Function.comp.assoc +/- theorem Function.comp.left_id +/- theorem Function.comp.right_id + def Function.compLeft + def Function.compRight +/- theorem Function.comp_const_right - def Function.comp_left - def Function.comp_right +/- def Function.curry +/- theorem Function.curry_uncurry + def Function.dcomp +/- theorem Function.injective_id +/- theorem Function.left_id +/- def Function.onFun +/- theorem Function.rightInverse_of_injective_of_leftInverse +/- theorem Function.right_id +/- theorem Function.surjective_id +/- def Function.swap +/- def Function.uncurry +/- theorem Function.uncurry_curry Modified Mathlib/ModelTheory/LanguageMap.lean +/- theorem FirstOrder.Language.LHom.comp_id +/- theorem FirstOrder.Language.LHom.id_comp +/- theorem FirstOrder.Language.LHom.sumElim_comp_inl +/- theorem FirstOrder.Language.LHom.sumElim_comp_inr +/- theorem FirstOrder.Language.LHom.sumMap_comp_inl +/- theorem FirstOrder.Language.LHom.sumMap_comp_inr 2023-07-14 18:12:23 afb7c1b chore: forward-port leanprover-community/mathlib#18408 (#5902) This file was useless ESTIMATED CHANGES Modified Mathlib.lean Deleted Mathlib/CategoryTheory/Functor/Default.lean 2023-07-14 16:34:55 1cc977d chore: forward-port leanprover-community/mathlib#19128 (#5905) The changed proof was rewritten completely. There appears to have been a race between #5791 and #5727 that caused the commit hash to be out of date. ESTIMATED CHANGES Modified Mathlib/Geometry/Manifold/VectorBundle/Hom.lean 2023-07-14 16:34:54 56e73de feat: `a + b - 1 ≤ a * b` (#5828) Match https://github.com/leanprover-community/mathlib/pull/18737 ESTIMATED CHANGES Modified Mathlib/Data/Nat/Order/Basic.lean + theorem Nat.add_sub_one_le_mul +/- theorem Nat.max_eq_zero_iff +/- theorem Nat.min_eq_zero_iff 2023-07-14 16:34:52 9e3ff9e feat: first moment method (#5326) Forward-port leanprover-community/mathlib#18731 Also sync some parentheses with the lates `mathport` output. ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Integral/Average.lean + theorem MeasureTheory.average_toReal +/- theorem MeasureTheory.average_zero_measure + theorem MeasureTheory.exists_average_le + theorem MeasureTheory.exists_integral_le + theorem MeasureTheory.exists_le_average + theorem MeasureTheory.exists_le_integral + theorem MeasureTheory.exists_le_setAverage + theorem MeasureTheory.exists_not_mem_null_average_le + theorem MeasureTheory.exists_not_mem_null_integral_le + theorem MeasureTheory.exists_not_mem_null_le_average + theorem MeasureTheory.exists_not_mem_null_le_integral + theorem MeasureTheory.exists_setAverage_le + theorem MeasureTheory.integral_average + theorem MeasureTheory.integral_average_sub + theorem MeasureTheory.integral_sub_average + theorem MeasureTheory.measure_average_le_pos + theorem MeasureTheory.measure_integral_le_pos + theorem MeasureTheory.measure_le_average_pos + theorem MeasureTheory.measure_le_integral_pos + theorem MeasureTheory.measure_le_setAverage_pos + theorem MeasureTheory.measure_setAverage_le_pos + theorem MeasureTheory.ofReal_average + theorem MeasureTheory.ofReal_setAverage + theorem MeasureTheory.setAverage_setAverage + theorem MeasureTheory.setAverage_setAverage_sub + theorem MeasureTheory.setAverage_sub_setAverage + theorem MeasureTheory.setAverage_toReal + theorem MeasureTheory.set_average_congr_set_ae 2023-07-14 15:46:01 bbde7ac feat: Extending from `Ici a` (#5829) https://github.com/leanprover-community/mathlib/pull/18795 ESTIMATED CHANGES Modified Mathlib/Data/Set/Intervals/ProjIcc.lean - theorem Monotone.IccExtend + def Set.IciExtend + theorem Set.IciExtend_apply + theorem Set.IciExtend_coe + theorem Set.IciExtend_of_le + theorem Set.IciExtend_of_mem + theorem Set.IciExtend_self + def Set.IicExtend + theorem Set.IicExtend_apply + theorem Set.IicExtend_coe + theorem Set.IicExtend_of_le + theorem Set.IicExtend_of_mem + theorem Set.IicExtend_self + theorem Set.coe_projIcc + theorem Set.coe_projIci + theorem Set.coe_projIic + theorem Set.iccExtend_apply + theorem Set.monotone_projIci + theorem Set.monotone_projIic +/- theorem Set.projIcc_eq_right + def Set.projIci + theorem Set.projIci_coe + theorem Set.projIci_eq_self + theorem Set.projIci_of_le + theorem Set.projIci_of_mem + theorem Set.projIci_self + theorem Set.projIci_surjOn + theorem Set.projIci_surjective + def Set.projIic + theorem Set.projIic_coe + theorem Set.projIic_eq_self + theorem Set.projIic_of_le + theorem Set.projIic_of_mem + theorem Set.projIic_self + theorem Set.projIic_surjOn + theorem Set.projIic_surjective + theorem Set.range_IciExtend + theorem Set.range_IicExtend + theorem Set.range_projIci + theorem Set.range_projIic + theorem Set.strictMonoOn_projIci + theorem Set.strictMonoOn_projIic + theorem StrictMono.strictMonoOn_IciExtend + theorem StrictMono.strictMonoOn_IicExtend 2023-07-14 14:19:09 1b34c45 feat(Algebra.IndicatorFunction): indicator of smul in a SMulWithZero context (#5874) ESTIMATED CHANGES Modified Mathlib/Algebra/IndicatorFunction.lean + theorem Set.indicator_smul_apply_left + theorem Set.indicator_smul_const + theorem Set.indicator_smul_const_apply + theorem Set.indicator_smul_left Modified Mathlib/Algebra/Support.lean + theorem Function.mulSupport_comp_eq_of_range_subset 2023-07-14 13:16:41 a1a257d feat: for an open-positive measure, an open/closed subset is almost empty/full iff it is actually empty/full (#5746) Also invert the import order so that `MeasureTheory.Measure.OpenPos` imports `MeasureTheory.Constructions.BorelSpace.Basic` rather than the other way around. ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Constructions/BorelSpace/Basic.lean - theorem Continuous.isOpenPosMeasure_map Modified Mathlib/MeasureTheory/Function/LpSpace.lean Modified Mathlib/MeasureTheory/Measure/OpenPos.lean + theorem Continuous.isOpenPosMeasure_map + theorem IsClosed.ae_eq_univ_iff_eq + theorem IsClosed.measure_eq_one_iff_eq_univ + theorem IsClosed.measure_eq_univ_iff_eq + theorem IsOpen.ae_eq_empty_iff_eq + theorem IsOpen.measure_zero_iff_eq_empty 2023-07-14 11:52:55 1ce44f1 feat(LinearAlgebra.Span): add apply_mem_span_image_iff_mem_span (#5651) Add ~~the other direction and~~ iff version of [submodule.apply_mem_span_image_of_mem_span](https://leanprover-community.github.io/mathlib_docs/linear_algebra/span.html#submodule.apply_mem_span_image_of_mem_span), that is: ```lean theorem apply_mem_span_image_iff_mem_span [RingHomSurjective σ₁₂] {f : M →ₛₗ[σ₁₂] M₂} {x : M} {s : Set M} (hf : Function.Injective f) : f x ∈ Submodule.span R₂ (f '' s) ↔ x ∈ Submodule.span R s ``` ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/Span.lean + theorem Submodule.apply_mem_span_image_iff_mem_span 2023-07-14 11:17:40 018a6a4 chore: forward-port leanprover-community/mathlib#4798 (#5892) ESTIMATED CHANGES Modified Mathlib/Data/IsROrC/Basic.lean + theorem IsROrC.norm_I_of_ne_zero 2023-07-14 10:07:21 8fdefa0 feat: forward-port leanprover-community/mathlib#19105 (#5749) This is Jake Levinson's work. It's a proof that local cohomology agrees for ideals with equal radicals. ESTIMATED CHANGES Modified Mathlib/Algebra/Homology/LocalCohomology.lean - theorem Ideal.exists_pow_le_of_le_radical_of_fg + theorem localCohomology.Ideal.exists_pow_le_of_le_radical_of_fG + def localCohomology.SelfLERadical.cast + def localCohomology.SelfLERadical.isoOfSameRadical + def localCohomology.diagramComp +/- def localCohomology.idealPowersToSelfLERadical - def localCohomology.idealPowersToSelfLERadicalCompInclusion + def localCohomology.isoOfFinal + def localCohomology.isoOfSameRadical + def localCohomology.isoSelfLERadical 2023-07-14 08:37:44 8900715 fix: control flow errors in `congr!`, and add closePre and closePost for feature parity with `congr` (#5832) There were some accidental early `return`s due to adding `for` loops later, a missing `instantiateMVars`, and a `max` instead of a `min` for choosing the default iteration depth. I'm also slipping in `closePre` and `closePost` configurations to be able to turn off trying to apply `rfl`/`Subsingleton.elim`/etc., which is a feature that also exists in the core `congr` meta tactic. ESTIMATED CHANGES Modified Mathlib/Tactic/Congr!.lean +/- def Lean.MVarId.postCongr! +/- def Lean.MVarId.preCongr! Modified test/congr.lean 2023-07-14 07:29:04 36eb651 feat: port Analysis.InnerProductSpace.OfNorm (#5885) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/InnerProductSpace/OfNorm.lean + theorem Continuous.inner_ + theorem InnerProductSpace.toInnerProductSpaceable + theorem InnerProductSpaceable.Inner_.conj_symm + theorem InnerProductSpaceable.Inner_.norm_sq + theorem InnerProductSpaceable.add_left + theorem InnerProductSpaceable.innerProp + theorem InnerProductSpaceable.innerProp_neg_one + theorem InnerProductSpaceable.nat + theorem nonempty_innerProductSpace 2023-07-14 05:38:49 870068a chore: remove a few superfluous semicolons (#5880) Alongside any necessary spacing/flow changes to accommodate their removal. ESTIMATED CHANGES Modified Mathlib/Data/Bool/Basic.lean Modified Mathlib/Data/Int/Order/Lemmas.lean Modified Mathlib/Data/List/Basic.lean Modified Mathlib/Data/Nat/Choose/Basic.lean Modified Mathlib/Data/Nat/Choose/Central.lean Modified Mathlib/Data/Nat/Pairing.lean Modified Mathlib/Data/Num/Lemmas.lean Modified Mathlib/Data/PFun.lean Modified Mathlib/Data/Part.lean Modified Mathlib/Data/Seq/Parallel.lean Modified Mathlib/Data/Seq/Seq.lean Modified Mathlib/Data/Seq/WSeq.lean Modified Mathlib/Data/Set/Image.lean Modified Mathlib/Data/Stream/Init.lean Modified Mathlib/Data/Sym/Sym2.lean Modified Mathlib/Data/TypeVec.lean Modified Mathlib/Data/Vector/MapLemmas.lean Modified Mathlib/Init/Algebra/Functions.lean Modified Mathlib/Init/Data/List/Instances.lean Modified Mathlib/Init/Data/Nat/Bitwise.lean Modified Mathlib/Logic/Equiv/Basic.lean 2023-07-13 14:30:53 4d8f5b5 chore: empty port of the Data.Buffer.Parser in core (#5864) addition to #5848 ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Init/Data/Buffer/Parser.lean 2023-07-13 13:50:38 4b4b165 chore(MeasureTheory): rename add_haar to addHaar (#5811) This is supposed to mean "an additive Haar measure", not adding something to Haar, so it should be one word and not two. ESTIMATED CHANGES Modified Mathlib/Analysis/Convex/Measure.lean + theorem Convex.addHaar_frontier - theorem Convex.add_haar_frontier Modified Mathlib/Analysis/SpecialFunctions/JapaneseBracket.lean Modified Mathlib/Analysis/SpecialFunctions/PolarCoord.lean Modified Mathlib/MeasureTheory/Covering/BesicovitchVectorSpace.lean Modified Mathlib/MeasureTheory/Function/Jacobian.lean Modified Mathlib/MeasureTheory/Group/GeometryOfNumbers.lean Modified Mathlib/MeasureTheory/Integral/Periodic.lean Modified Mathlib/MeasureTheory/Measure/Haar/NormedSpace.lean Modified Mathlib/MeasureTheory/Measure/Lebesgue/EqHaar.lean + theorem MeasureTheory.Measure.addHaar_affineSubspace + theorem MeasureTheory.Measure.addHaar_ball + theorem MeasureTheory.Measure.addHaar_ball_center + theorem MeasureTheory.Measure.addHaar_ball_mul + theorem MeasureTheory.Measure.addHaar_ball_mul_of_pos + theorem MeasureTheory.Measure.addHaar_ball_of_pos + theorem MeasureTheory.Measure.addHaar_closedBall' + theorem MeasureTheory.Measure.addHaar_closedBall + theorem MeasureTheory.Measure.addHaar_closedBall_center + theorem MeasureTheory.Measure.addHaar_closedBall_eq_addHaar_ball + theorem MeasureTheory.Measure.addHaar_closedBall_mul + theorem MeasureTheory.Measure.addHaar_closedBall_mul_of_pos + theorem MeasureTheory.Measure.addHaar_closed_unit_ball_eq_addHaar_unit_ball + theorem MeasureTheory.Measure.addHaar_eq_zero_of_disjoint_translates + theorem MeasureTheory.Measure.addHaar_eq_zero_of_disjoint_translates_aux + theorem MeasureTheory.Measure.addHaar_image_continuousLinearEquiv + theorem MeasureTheory.Measure.addHaar_image_continuousLinearMap + theorem MeasureTheory.Measure.addHaar_image_homothety + theorem MeasureTheory.Measure.addHaar_image_linearMap + theorem MeasureTheory.Measure.addHaar_preimage_continuousLinearEquiv + theorem MeasureTheory.Measure.addHaar_preimage_continuousLinearMap + theorem MeasureTheory.Measure.addHaar_preimage_linearEquiv + theorem MeasureTheory.Measure.addHaar_preimage_linearMap + theorem MeasureTheory.Measure.addHaar_preimage_smul + theorem MeasureTheory.Measure.addHaar_singleton_add_smul_div_singleton_add_smul + theorem MeasureTheory.Measure.addHaar_smul + theorem MeasureTheory.Measure.addHaar_smul_of_nonneg + theorem MeasureTheory.Measure.addHaar_sphere + theorem MeasureTheory.Measure.addHaar_sphere_of_ne_zero + theorem MeasureTheory.Measure.addHaar_submodule - theorem MeasureTheory.Measure.add_haar_affineSubspace - theorem MeasureTheory.Measure.add_haar_ball - theorem MeasureTheory.Measure.add_haar_ball_center - theorem MeasureTheory.Measure.add_haar_ball_mul - theorem MeasureTheory.Measure.add_haar_ball_mul_of_pos - theorem MeasureTheory.Measure.add_haar_ball_of_pos - theorem MeasureTheory.Measure.add_haar_closedBall' - theorem MeasureTheory.Measure.add_haar_closedBall - theorem MeasureTheory.Measure.add_haar_closedBall_center - theorem MeasureTheory.Measure.add_haar_closedBall_eq_add_haar_ball - theorem MeasureTheory.Measure.add_haar_closedBall_mul - theorem MeasureTheory.Measure.add_haar_closedBall_mul_of_pos - theorem MeasureTheory.Measure.add_haar_closed_unit_ball_eq_add_haar_unit_ball - theorem MeasureTheory.Measure.add_haar_eq_zero_of_disjoint_translates - theorem MeasureTheory.Measure.add_haar_eq_zero_of_disjoint_translates_aux - theorem MeasureTheory.Measure.add_haar_image_continuousLinearEquiv - theorem MeasureTheory.Measure.add_haar_image_continuousLinearMap - theorem MeasureTheory.Measure.add_haar_image_homothety - theorem MeasureTheory.Measure.add_haar_image_linearMap - theorem MeasureTheory.Measure.add_haar_preimage_continuousLinearEquiv - theorem MeasureTheory.Measure.add_haar_preimage_continuousLinearMap - theorem MeasureTheory.Measure.add_haar_preimage_linearEquiv - theorem MeasureTheory.Measure.add_haar_preimage_linearMap - theorem MeasureTheory.Measure.add_haar_preimage_smul - theorem MeasureTheory.Measure.add_haar_singleton_add_smul_div_singleton_add_smul - theorem MeasureTheory.Measure.add_haar_smul - theorem MeasureTheory.Measure.add_haar_smul_of_nonneg - theorem MeasureTheory.Measure.add_haar_sphere - theorem MeasureTheory.Measure.add_haar_sphere_of_ne_zero - theorem MeasureTheory.Measure.add_haar_submodule + theorem MeasureTheory.Measure.map_addHaar_smul - theorem MeasureTheory.Measure.map_add_haar_smul + theorem MeasureTheory.Measure.map_linearMap_addHaar_eq_smul_addHaar + theorem MeasureTheory.Measure.map_linearMap_addHaar_pi_eq_smul_addHaar - theorem MeasureTheory.Measure.map_linearMap_add_haar_eq_smul_add_haar - theorem MeasureTheory.Measure.map_linearMap_add_haar_pi_eq_smul_add_haar + theorem MeasureTheory.Measure.tendsto_addHaar_inter_smul_one_of_density_one + theorem MeasureTheory.Measure.tendsto_addHaar_inter_smul_one_of_density_one_aux + theorem MeasureTheory.Measure.tendsto_addHaar_inter_smul_zero_of_density_zero + theorem MeasureTheory.Measure.tendsto_addHaar_inter_smul_zero_of_density_zero_aux1 + theorem MeasureTheory.Measure.tendsto_addHaar_inter_smul_zero_of_density_zero_aux2 - theorem MeasureTheory.Measure.tendsto_add_haar_inter_smul_one_of_density_one - theorem MeasureTheory.Measure.tendsto_add_haar_inter_smul_one_of_density_one_aux - theorem MeasureTheory.Measure.tendsto_add_haar_inter_smul_zero_of_density_zero - theorem MeasureTheory.Measure.tendsto_add_haar_inter_smul_zero_of_density_zero_aux1 - theorem MeasureTheory.Measure.tendsto_add_haar_inter_smul_zero_of_density_zero_aux2 2023-07-13 11:32:53 929a09b feat(Analysis.Seminorm, Analysis.LocallyConvex.WithSeminorms): minimize some assumptions (#5812) ESTIMATED CHANGES Modified Mathlib/Analysis/LocallyConvex/WithSeminorms.lean +/- theorem SeminormFamily.withSeminorms_iff_nhds_eq_iInf +/- theorem SeminormFamily.withSeminorms_iff_topologicalSpace_eq_iInf +/- theorem SeminormFamily.withSeminorms_of_hasBasis +/- theorem SeminormFamily.withSeminorms_of_nhds + theorem WithSeminorms.continuousSMul +/- theorem WithSeminorms.continuous_seminorm Modified Mathlib/Analysis/Seminorm.lean + theorem Seminorm.continuousAt_zero_of_forall' + theorem Seminorm.continuousAt_zero_of_forall +/- theorem Seminorm.continuous_of_le + theorem Seminorm.neg_mem_ball_zero - theorem Seminorm.symmetric_ball_zero 2023-07-13 09:29:56 aeaebdd chore: revert leantar #5710 for further testing (#5853) This reverts commit 6ed1d668fb2c694b26798fb65c66f60017e8b47a. Currently broken on gitpod (needs `sudo apt-get install xz-utils`) and on Windows (likely the same issue). ESTIMATED CHANGES Modified Cache/IO.lean - def Cache.IO.LEANTARBIN - def Cache.IO.LEANTARVERSION - def Cache.IO.Version - def Cache.IO.getLeanTar - def Cache.IO.parseVersion - def Cache.IO.validateLeanTar - def Nat.toHexDigits - def UInt64.asLTar + def UInt64.asTarGz Modified Cache/Main.lean - def leanTarArgs Modified Cache/Requests.lean 2023-07-13 09:29:53 228477b feat: add minimum_le_coe_iff for List.minimum (#5845) ESTIMATED CHANGES Modified Mathlib/Data/List/MinMax.lean + theorem List.coe_le_maximum_iff + theorem List.minimum_le_coe_iff 2023-07-13 09:29:50 e7b874f feat: add cancel lemmas in WithTop (#5837) This PR adds four lemmas that allow cancelling addition in `WithTop α` when the term being cancelled is not `⊤`. They complement the existing `le`/`lt` versions. ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Monoid/WithTop.lean + theorem WithTop.add_left_cancel + theorem WithTop.add_left_cancel_iff + theorem WithTop.add_right_cancel + theorem WithTop.add_right_cancel_iff 2023-07-13 08:35:52 535aca5 chore: add porting header to Mathlib.Data.HashMap (#5846) ESTIMATED CHANGES Modified Mathlib/Data/HashMap.lean 2023-07-13 08:35:51 5cdfdb8 chore: forward port leanprover-community/mathlib#19228 (#5843) The implementation in Mathlib 4 doesn't use `mapAccumLM` so the thing to do is only updating the header. ESTIMATED CHANGES Modified Mathlib/Tactic/DeriveTraversable.lean Modified test/Traversable.lean + inductive Testing.MyTree' 2023-07-13 08:07:27 b41e763 chore: empty ports of the Data/Buffer/Parser files (#5848) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Data/Buffer/Basic.lean Added Mathlib/Data/Buffer/Parser/Basic.lean Added Mathlib/Data/Buffer/Parser/Numeral.lean 2023-07-13 08:07:25 98ab6ea chore: fix casing in Mathlib.Data.FinEnum (#5844) ESTIMATED CHANGES Modified Mathlib/Data/FinEnum.lean 2023-07-13 08:07:24 6a00552 chore: tidy various files (#5840) ESTIMATED CHANGES Modified Mathlib/AlgebraicGeometry/Morphisms/QuasiSeparated.lean + theorem AlgebraicGeometry.QuasiSeparated.openCover_TFAE - theorem AlgebraicGeometry.QuasiSeparated.openCover_tFAE Modified Mathlib/Analysis/Calculus/ParametricIntegral.lean Modified Mathlib/CategoryTheory/Sites/Coherent.lean Modified Mathlib/CategoryTheory/Sites/SheafOfTypes.lean Modified Mathlib/MeasureTheory/Measure/Haar/OfBasis.lean +/- theorem Basis.addHaar_self + theorem Basis.coe_parallelepiped Modified Mathlib/MeasureTheory/Measure/Lebesgue/EqHaar.lean Modified Mathlib/ModelTheory/DirectLimit.lean + theorem FirstOrder.Language.DirectedSystem.coe_natLERec - theorem FirstOrder.Language.DirectedSystem.coe_natLeRec + def FirstOrder.Language.DirectedSystem.natLERec - def FirstOrder.Language.DirectedSystem.natLeRec Modified Mathlib/ModelTheory/Fraisse.lean Modified Mathlib/NumberTheory/LegendreSymbol/GaussSum.lean Modified Mathlib/RingTheory/Nullstellensatz.lean Modified Mathlib/Topology/ContinuousFunction/Sigma.lean 2023-07-13 08:07:23 350feed feat(GroupTheory/Sylow): add inverse to card_eq_multiplicity (#5831) Port https://github.com/leanprover-community/mathlib/pull/18300 to mathlib4 ESTIMATED CHANGES Modified Mathlib/GroupTheory/Sylow.lean + theorem Sylow.coe_ofCard + def Sylow.ofCard 2023-07-13 06:54:34 acb87f0 chore: bump to nightly-2023-07-12 (#5842) ESTIMATED CHANGES Modified Mathlib/Tactic/ToAdditive.lean Modified lean-toolchain 2023-07-13 04:56:35 6ed1d66 feat: use `leantar` in `lake exe cache` (#5710) This hooks up the new `leantar` tool from https://github.com/digama0/leangz to `lake exe cache`. It uses an olean compressor to achieve much smaller file sizes, and faster decompression. See the [Zulip discussion](https://leanprover.zulipchat.com/#narrow/stream/270676-lean4/topic/leangz.3A.20olean.20file.20compressor/near/369738648). The new files have a new file extension, `123.ltar` instead of `123.tar.gz`. This implementation does not multiplex between them, so it will be a hard reset. In fact, the new cache doesn't even know how to clear the old cache files, so you might need to do that manually. Switching between branches will still work during the interim, since the cache will have both kinds of file and use the right ones. ESTIMATED CHANGES Modified Cache/IO.lean + def Cache.IO.LEANTARBIN + def Cache.IO.LEANTARVERSION + def Cache.IO.Version + def Cache.IO.getLeanTar + def Cache.IO.parseVersion + def Cache.IO.validateLeanTar + def Nat.toHexDigits + def UInt64.asLTar - def UInt64.asTarGz Modified Cache/Main.lean + def leanTarArgs Modified Cache/Requests.lean 2023-07-13 04:40:06 cf365f0 feat: port Analysis.Analytic.Inverse (#5032) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/Analytic/Inverse.lean + theorem FormalMultilinearSeries.comp_rightInv + theorem FormalMultilinearSeries.comp_rightInv_aux1 + theorem FormalMultilinearSeries.comp_rightInv_aux2 + theorem FormalMultilinearSeries.leftInv_coeff_one + theorem FormalMultilinearSeries.leftInv_coeff_zero + theorem FormalMultilinearSeries.leftInv_comp + theorem FormalMultilinearSeries.leftInv_eq_rightInv + theorem FormalMultilinearSeries.leftInv_removeZero + theorem FormalMultilinearSeries.radius_rightInv_pos_of_radius_pos + theorem FormalMultilinearSeries.radius_rightInv_pos_of_radius_pos_aux2 + theorem FormalMultilinearSeries.radius_right_inv_pos_of_radius_pos_aux1 + theorem FormalMultilinearSeries.rightInv_coeff + theorem FormalMultilinearSeries.rightInv_coeff_one + theorem FormalMultilinearSeries.rightInv_coeff_zero + theorem FormalMultilinearSeries.rightInv_removeZero 2023-07-13 04:03:37 625a3a6 feat: port Geometry.Manifold.ContMdiffMfderiv (#5496) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Geometry/Manifold/ContMDiffMFDeriv.lean + theorem ContMDiff.contMDiff_tangentMap + theorem ContMDiff.continuous_tangentMap + theorem ContMDiffAt.mfderiv_apply + theorem ContMDiffAt.mfderiv_const + theorem ContMDiffOn.contMDiffOn_tangentMapWithin + theorem ContMDiffOn.contMDiffOn_tangentMapWithin_aux + theorem ContMDiffOn.continuousOn_tangentMapWithin + theorem ContMDiffOn.continuousOn_tangentMapWithin_aux + theorem TangentBundle.tangentMap_tangentBundle_pure Modified Mathlib/Geometry/Manifold/VectorBundle/Tangent.lean 2023-07-13 01:24:17 906f722 chore: bump to nightly-2023-07-01 (#5409) - [x] depends on: https://github.com/leanprover/std4/pull/163 - [x] depends on: #5584 - [x] depends on: #5715 - [x] depends on: #5729 - [x] depends on: https://github.com/leanprover/std4/pull/173 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) ESTIMATED CHANGES Modified Archive/Imo/Imo1960Q1.lean Modified Archive/Imo/Imo1962Q1.lean Modified Archive/Sensitivity.lean Modified Counterexamples/MapFloor.lean Modified Mathlib/Algebra/Algebra/Basic.lean Modified Mathlib/Algebra/BigOperators/Fin.lean + theorem Fin.prod_univ_castSucc - theorem Fin.prod_univ_castSuccEmb Modified Mathlib/Algebra/Category/GroupCat/Limits.lean Modified Mathlib/Algebra/CharP/Basic.lean Modified Mathlib/Algebra/CharZero/Defs.lean +/- theorem OfNat.ofNat_ne_one +/- theorem OfNat.ofNat_ne_zero +/- theorem OfNat.one_ne_ofNat +/- theorem OfNat.zero_ne_ofNat Modified Mathlib/Algebra/ContinuedFractions/Computation/Approximations.lean Modified Mathlib/Algebra/Homology/HomologicalComplex.lean Modified Mathlib/Algebra/Homology/Homology.lean Modified Mathlib/Algebra/Homology/Homotopy.lean + theorem Homotopy.mkCoinductiveAux₂_add_one + theorem Homotopy.mkCoinductiveAux₂_zero + theorem Homotopy.mkInductiveAux₂_add_one + theorem Homotopy.mkInductiveAux₂_zero Modified Mathlib/Algebra/Lie/Weights.lean Modified Mathlib/Algebra/Star/Basic.lean Modified Mathlib/AlgebraicGeometry/PresheafedSpace.lean Modified Mathlib/AlgebraicGeometry/PresheafedSpace/HasColimits.lean Modified Mathlib/AlgebraicGeometry/Spec.lean Modified Mathlib/AlgebraicTopology/AlternatingFaceMapComplex.lean Modified Mathlib/AlgebraicTopology/DoldKan/Degeneracies.lean Modified Mathlib/AlgebraicTopology/DoldKan/Faces.lean Modified Mathlib/AlgebraicTopology/DoldKan/NReflectsIso.lean Modified Mathlib/AlgebraicTopology/DoldKan/SplitSimplicialObject.lean Modified Mathlib/AlgebraicTopology/ExtraDegeneracy.lean Modified Mathlib/AlgebraicTopology/MooreComplex.lean + theorem AlgebraicTopology.NormalizedMooreComplex.objX_add_one + theorem AlgebraicTopology.NormalizedMooreComplex.objX_zero Modified Mathlib/AlgebraicTopology/SimplexCategory.lean +/- theorem SimplexCategory.δ_comp_δ'' +/- theorem SimplexCategory.δ_comp_δ' +/- theorem SimplexCategory.δ_comp_δ_self' +/- theorem SimplexCategory.δ_comp_δ_self +/- theorem SimplexCategory.δ_comp_σ_of_gt +/- theorem SimplexCategory.δ_comp_σ_of_le +/- theorem SimplexCategory.δ_comp_σ_self' Modified Mathlib/AlgebraicTopology/SimplicialObject.lean +/- theorem CategoryTheory.CosimplicialObject.δ_comp_δ'' +/- theorem CategoryTheory.CosimplicialObject.δ_comp_δ' +/- theorem CategoryTheory.CosimplicialObject.δ_comp_δ_self' +/- theorem CategoryTheory.CosimplicialObject.δ_comp_σ_of_gt +/- theorem CategoryTheory.CosimplicialObject.δ_comp_σ_of_le +/- theorem CategoryTheory.CosimplicialObject.δ_comp_σ_self' +/- theorem CategoryTheory.CosimplicialObject.δ_comp_σ_self +/- theorem CategoryTheory.SimplicialObject.δ_comp_δ'' +/- theorem CategoryTheory.SimplicialObject.δ_comp_δ' +/- theorem CategoryTheory.SimplicialObject.δ_comp_δ_self' +/- theorem CategoryTheory.SimplicialObject.δ_comp_σ_of_gt +/- theorem CategoryTheory.SimplicialObject.δ_comp_σ_of_le +/- theorem CategoryTheory.SimplicialObject.δ_comp_σ_self' +/- theorem CategoryTheory.SimplicialObject.δ_comp_σ_self Modified Mathlib/AlgebraicTopology/SplitSimplicialObject.lean + theorem SimplicialObject.Splitting.iso_hom + theorem SimplicialObject.Splitting.iso_inv Modified Mathlib/Analysis/Analytic/Composition.lean Modified Mathlib/Analysis/Analytic/Linear.lean + theorem ContinuousLinearMap.fpowerSeriesBilinear_apply_add_three + theorem ContinuousLinearMap.fpowerSeriesBilinear_apply_one + theorem ContinuousLinearMap.fpowerSeriesBilinear_apply_two + theorem ContinuousLinearMap.fpowerSeriesBilinear_apply_zero + theorem ContinuousLinearMap.fpower_series_apply_one + theorem ContinuousLinearMap.fpower_series_apply_zero Modified Mathlib/Analysis/BoxIntegral/Partition/Additive.lean Modified Mathlib/Analysis/Calculus/ContDiffDef.lean Modified Mathlib/Analysis/Distribution/SchwartzSpace.lean Modified Mathlib/Analysis/NormedSpace/FiniteDimension.lean Modified Mathlib/Analysis/NormedSpace/Multilinear.lean Modified Mathlib/CategoryTheory/Category/QuivCat.lean +/- def CategoryTheory.Cat.free Modified Mathlib/CategoryTheory/ConcreteCategory/Elementwise.lean Modified Mathlib/CategoryTheory/Grothendieck.lean Modified Mathlib/CategoryTheory/Limits/Cones.lean +/- def CategoryTheory.Limits.Cocone.equiv +/- def CategoryTheory.Limits.Cocone.unop +/- def CategoryTheory.Limits.Cone.equiv +/- def CategoryTheory.Limits.Cone.unop +/- def CategoryTheory.Limits.Cone.whisker Modified Mathlib/CategoryTheory/Limits/Preserves/Shapes/Biproducts.lean Modified Mathlib/CategoryTheory/Preadditive/OfBiproducts.lean Modified Mathlib/Combinatorics/Additive/Behrend.lean Modified Mathlib/Combinatorics/Composition.lean Modified Mathlib/Combinatorics/SimpleGraph/Coloring.lean Modified Mathlib/Computability/Language.lean Modified Mathlib/Data/Complex/Basic.lean +/- theorem Complex.im_ofNat +/- theorem Complex.ofReal_ofNat +/- theorem Complex.re_ofNat Modified Mathlib/Data/Fin/Basic.lean - def Fin.addNat + def Fin.addNatEmb +/- theorem Fin.addNat_mk +/- theorem Fin.addNat_one +/- theorem Fin.addNat_subNat - def Fin.castAdd + def Fin.castAddEmb + theorem Fin.castIso_castSucc - theorem Fin.castIso_castSuccEmb +/- theorem Fin.castIso_eq_cast - def Fin.castLE + def Fin.castLEEmb - def Fin.castLT + theorem Fin.castLT_castSucc - theorem Fin.castLT_castSuccEmb +/- theorem Fin.castLT_succAbove - def Fin.castPred + theorem Fin.castPred_castSucc - theorem Fin.castPred_castSuccEmb - theorem Fin.castSuccEmb_castLT - theorem Fin.castSuccEmb_castPred - theorem Fin.castSuccEmb_eq_zero_iff - theorem Fin.castSuccEmb_fin_succ - theorem Fin.castSuccEmb_inj - theorem Fin.castSuccEmb_injective - theorem Fin.castSuccEmb_lt_castSuccEmb_iff - theorem Fin.castSuccEmb_lt_iff_succ_le - theorem Fin.castSuccEmb_lt_last - theorem Fin.castSuccEmb_lt_succ - theorem Fin.castSuccEmb_mk - theorem Fin.castSuccEmb_ne_zero_iff - theorem Fin.castSuccEmb_one - theorem Fin.castSuccEmb_pos - theorem Fin.castSuccEmb_pred_eq_pred_castSuccEmb - theorem Fin.castSuccEmb_zero + theorem Fin.castSucc_castLT + theorem Fin.castSucc_castPred + theorem Fin.castSucc_eq_zero_iff + theorem Fin.castSucc_fin_succ + theorem Fin.castSucc_inj + theorem Fin.castSucc_injective + theorem Fin.castSucc_lt_castSucc_iff + theorem Fin.castSucc_lt_iff_succ_le + theorem Fin.castSucc_lt_last + theorem Fin.castSucc_lt_succ + theorem Fin.castSucc_mk + theorem Fin.castSucc_ne_zero_iff + theorem Fin.castSucc_one + theorem Fin.castSucc_pos + theorem Fin.castSucc_pred_eq_pred_castSucc + theorem Fin.castSucc_zero - def Fin.clamp +/- theorem Fin.coeSucc_eq_succ +/- theorem Fin.coe_addNat + theorem Fin.coe_castSucc - theorem Fin.coe_castSuccEmb + theorem Fin.coe_eq_castSucc - theorem Fin.coe_eq_castSuccEmb + theorem Fin.coe_of_injective_castLEEmb_symm - theorem Fin.coe_of_injective_castLE_symm - theorem Fin.coe_of_injective_castSuccEmb_symm + theorem Fin.coe_of_injective_castSucc_symm +/- theorem Fin.coe_pred - theorem Fin.exists_castSuccEmb_eq + theorem Fin.exists_castSucc_eq - theorem Fin.ext_iff - def Fin.last + theorem Fin.lastCases_castSucc - theorem Fin.lastCases_castSuccEmb - theorem Fin.le_castSuccEmb_iff + theorem Fin.le_castSucc_iff +/- theorem Fin.le_coe_addNat +/- theorem Fin.lt_succ +/- theorem Fin.lt_succAbove_iff - def Fin.natAdd + def Fin.natAddEmb + theorem Fin.natAdd_castSucc - theorem Fin.natAdd_castSuccEmb - def Fin.pred - def Fin.predAbove +/- theorem Fin.predAbove_above +/- theorem Fin.predAbove_below +/- theorem Fin.predAbove_zero - theorem Fin.pred_castSuccEmb_succ + theorem Fin.pred_castSucc_succ +/- theorem Fin.pred_eq_iff_eq_succ +/- theorem Fin.pred_inj +/- theorem Fin.pred_le_pred_iff +/- theorem Fin.pred_lt_pred_iff +/- theorem Fin.pred_mk +/- theorem Fin.pred_one +/- theorem Fin.pred_succ +/- theorem Fin.pred_succAbove +/- theorem Fin.pred_succAbove_pred + theorem Fin.range_castSucc - theorem Fin.range_castSuccEmb + theorem Fin.reverse_induction_castSucc - theorem Fin.reverse_induction_castSuccEmb + theorem Fin.strictMono_addNat + theorem Fin.strictMono_castAdd + theorem Fin.strictMono_castLE + theorem Fin.strictMono_castSucc + theorem Fin.strictMono_natAdd + theorem Fin.strictMono_succAbove - def Fin.subNat +/- theorem Fin.subNat_addNat - def Fin.succAbove + def Fin.succAboveEmb +/- theorem Fin.succAbove_above - theorem Fin.succAbove_aux +/- theorem Fin.succAbove_below +/- theorem Fin.succAbove_last +/- theorem Fin.succAbove_last_apply +/- theorem Fin.succAbove_lt_ge +/- theorem Fin.succAbove_lt_gt +/- theorem Fin.succAbove_lt_iff +/- theorem Fin.succAbove_pred +/- theorem Fin.succAbove_predAbove +/- theorem Fin.succAbove_zero + theorem Fin.succ_castSucc - theorem Fin.succ_castSuccEmb +/- theorem Fin.succ_pred Modified Mathlib/Data/Fin/Tuple/Basic.lean +/- def Fin.init + theorem Fin.init_update_castSucc - theorem Fin.init_update_castSuccEmb +/- def Fin.snoc + theorem Fin.snoc_castSucc - theorem Fin.snoc_castSuccEmb +/- theorem Fin.snoc_cast_add + theorem Fin.snoc_comp_castSucc - theorem Fin.snoc_comp_castSuccEmb +/- theorem Fin.snoc_update Modified Mathlib/Data/Fin/Tuple/Monotone.lean Modified Mathlib/Data/Fin/Tuple/Reflection.lean Modified Mathlib/Data/Finset/Sort.lean Modified Mathlib/Data/Finsupp/Fin.lean Modified Mathlib/Data/Fintype/Basic.lean + theorem Fin.image_castSucc - theorem Fin.image_castSuccEmb Modified Mathlib/Data/Fintype/Card.lean Modified Mathlib/Data/Fintype/Fin.lean + theorem Fin.Iio_castSucc - theorem Fin.Iio_castSuccEmb Modified Mathlib/Data/Int/Cast/Basic.lean Modified Mathlib/Data/IsROrC/Basic.lean +/- theorem IsROrC.norm_ofNat +/- theorem IsROrC.ofNat_im +/- theorem IsROrC.ofNat_re +/- theorem IsROrC.ofReal_ofNat Modified Mathlib/Data/List/OfFn.lean Modified Mathlib/Data/Nat/Cast/Basic.lean Modified Mathlib/Data/Nat/Cast/Defs.lean Modified Mathlib/Data/Nat/Choose/Multinomial.lean Modified Mathlib/Data/Nat/Digits.lean Modified Mathlib/Data/Nat/Upto.lean Modified Mathlib/Data/Polynomial/Basic.lean Modified Mathlib/Data/Polynomial/Derivative.lean +/- theorem Polynomial.derivative_ofNat Modified Mathlib/Data/Polynomial/EraseLead.lean Modified Mathlib/Data/Polynomial/Eval.lean +/- theorem Polynomial.ofNat_comp Modified Mathlib/Data/Rat/Defs.lean Modified Mathlib/Data/Real/ENNReal.lean +/- theorem ENNReal.coe_ofNat Modified Mathlib/Data/Real/NNReal.lean Modified Mathlib/Data/String/Defs.lean - def String.isPrefixOf? - def String.isSuffixOf - def String.isSuffixOf? - def String.stripPrefix - def String.stripSuffix Modified Mathlib/Data/Sym/Card.lean Modified Mathlib/Data/Vector/Basic.lean Modified Mathlib/FieldTheory/Adjoin.lean Modified Mathlib/GroupTheory/Perm/Fin.lean Modified Mathlib/GroupTheory/Perm/List.lean Modified Mathlib/LinearAlgebra/ExteriorAlgebra/Basic.lean Modified Mathlib/LinearAlgebra/FreeModule/Norm.lean Modified Mathlib/LinearAlgebra/FreeModule/PID.lean Modified Mathlib/LinearAlgebra/FreeModule/StrongRankCondition.lean Modified Mathlib/LinearAlgebra/InvariantBasisNumber.lean Modified Mathlib/LinearAlgebra/Matrix/Charpoly/LinearMap.lean Modified Mathlib/LinearAlgebra/Matrix/Determinant.lean Modified Mathlib/LinearAlgebra/Multilinear/Basic.lean +/- theorem MultilinearMap.snoc_smul Modified Mathlib/LinearAlgebra/Multilinear/Basis.lean Modified Mathlib/LinearAlgebra/QuadraticForm/Isometry.lean Modified Mathlib/LinearAlgebra/Vandermonde.lean Modified Mathlib/Logic/Denumerable.lean Modified Mathlib/Logic/Equiv/Fin.lean +/- theorem finSuccEquiv'_above +/- theorem finSuccEquiv'_below + theorem finSuccEquiv'_last_apply_castSucc - theorem finSuccEquiv'_last_apply_castSuccEmb +/- theorem finSuccEquiv'_symm_coe_above +/- theorem finSuccEquiv'_symm_coe_below +/- theorem finSuccEquiv'_symm_some_above +/- theorem finSuccEquiv'_symm_some_below + theorem finSuccEquivLast_castSucc - theorem finSuccEquivLast_castSuccEmb Modified Mathlib/MeasureTheory/Constructions/Pi.lean Modified Mathlib/MeasureTheory/Function/Floor.lean Modified Mathlib/ModelTheory/Semantics.lean Modified Mathlib/ModelTheory/Syntax.lean Modified Mathlib/ModelTheory/Ultraproducts.lean Modified Mathlib/NumberTheory/ArithmeticFunction.lean Modified Mathlib/NumberTheory/Bertrand.lean Modified Mathlib/NumberTheory/Cyclotomic/Basic.lean Modified Mathlib/NumberTheory/Cyclotomic/Discriminant.lean Modified Mathlib/NumberTheory/LegendreSymbol/JacobiSymbol.lean Modified Mathlib/NumberTheory/LucasLehmer.lean +/- theorem LucasLehmer.X.ofNat_fst +/- theorem LucasLehmer.X.ofNat_snd Modified Mathlib/NumberTheory/Zsqrtd/Basic.lean +/- theorem Zsqrtd.ofNat_im +/- theorem Zsqrtd.ofNat_re Modified Mathlib/Order/CompactlyGenerated.lean Modified Mathlib/Order/JordanHolder.lean +/- def CompositionSeries.eraseTop + theorem CompositionSeries.snoc_castSucc - theorem CompositionSeries.snoc_castSuccEmb Modified Mathlib/Order/RelClasses.lean Modified Mathlib/Probability/Process/Stopping.lean Modified Mathlib/RepresentationTheory/GroupCohomology/Basic.lean Modified Mathlib/RepresentationTheory/GroupCohomology/Resolution.lean Modified Mathlib/RepresentationTheory/Rep.lean Modified Mathlib/RingTheory/ChainOfDivisors.lean Modified Mathlib/RingTheory/DedekindDomain/Ideal.lean Modified Mathlib/RingTheory/LaurentSeries.lean Modified Mathlib/RingTheory/WittVector/Truncated.lean Modified Mathlib/SetTheory/Cardinal/Cofinality.lean Modified Mathlib/SetTheory/Cardinal/Ordinal.lean Modified Mathlib/SetTheory/Game/Short.lean Modified Mathlib/SetTheory/Ordinal/Arithmetic.lean Modified Mathlib/SetTheory/Ordinal/Exponential.lean Modified Mathlib/SetTheory/Ordinal/NaturalOps.lean Modified Mathlib/Tactic/NoncommRing.lean +/- theorem Mathlib.Tactic.NoncommRing.mul_nat_lit_eq_nsmul +/- theorem Mathlib.Tactic.NoncommRing.nat_lit_mul_eq_nsmul Modified Mathlib/Tactic/Simps/Basic.lean Modified Mathlib/Tactic/ToAdditive.lean Modified Mathlib/Topology/Algebra/UniformMulAction.lean Modified Mathlib/Topology/NoetherianSpace.lean Modified Mathlib/Topology/Separation.lean Modified Mathlib/Topology/Sequences.lean Modified lake-manifest.json Modified lean-toolchain Modified test/norm_num_ext.lean 2023-07-12 14:24:48 1657aeb fix: filenames with typos in doc (#5836) ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/Span.lean Modified Mathlib/NumberTheory/Pell.lean Modified Mathlib/NumberTheory/Zsqrtd/GaussianInt.lean Modified Mathlib/RingTheory/Derivation/Basic.lean Modified Mathlib/RingTheory/Ideal/Over.lean Modified Mathlib/RingTheory/Localization/AtPrime.lean Modified Mathlib/RingTheory/Nakayama.lean Modified Mathlib/RingTheory/WittVector/Defs.lean Modified Mathlib/RingTheory/WittVector/FrobeniusFractionField.lean Modified Mathlib/Topology/Category/TopCat/Limits/Konig.lean 2023-07-12 11:29:23 82fe7e9 cleanup: in Monadicity, restore `local notation` analogue and a mathlib3 comment (#5826) The `notation3` command supports referring to local variables if you give it `local`, unlike `notation`. These notations should not be made unhygienic and `scoped`. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Monad/Monadicity.lean 2023-07-12 10:05:58 9f06374 feat(Order.Bounds.Basic): boundedness in pi types (#5806) ESTIMATED CHANGES Modified Mathlib/Order/Bounds/Basic.lean + theorem bddAbove_pi + theorem bddAbove_range_pi + theorem bddBelow_pi + theorem bddBelow_range_pi +/- theorem isGLB_pi +/- theorem isLUB_pi 2023-07-12 09:20:10 bf28bf4 feat(Analysis.LocallyConvex.WithSeminorms): `WithSeminorms` for infimum of topologies (#5816) ESTIMATED CHANGES Modified Mathlib/Analysis/LocallyConvex/WithSeminorms.lean +/- structure WithSeminorms + theorem withSeminorms_iInf 2023-07-12 08:35:56 5149cfa docs(RingTheory/Localization/FractionRing): mention total fraction ring in docstring (#5827) ESTIMATED CHANGES Modified Mathlib/RingTheory/Localization/FractionRing.lean 2023-07-12 04:07:26 806f7f9 chore: revert move utilities into Util directory (#5787) (#5825) This reverts commit 4dd7b55f0a06bd862d0c42066d159914327abf2f. Per [zulip](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/Warning.3A.20some.20files.20were.20not.20found.20in.20the.20cache.2E/near/374481558) discussion. ESTIMATED CHANGES Modified .github/workflows/bors.yml Modified .github/workflows/build.yml Modified .github/workflows/build.yml.in Modified .github/workflows/build_fork.yml Renamed Util/Cache/Hashing.lean to Cache/Hashing.lean +/- def Cache.Hashing.roots Renamed Util/Cache/IO.lean to Cache/IO.lean Renamed Util/Cache/Main.lean to Cache/Main.lean Renamed Util/Cache/Requests.lean to Cache/Requests.lean Modified Mathlib/Tactic/LibrarySearch.lean Modified Mathlib/Tactic/Rewrites.lean Added MathlibExtras.lean Renamed Util/TacticCaches/LibrarySearch.lean to MathlibExtras/LibrarySearch.lean Renamed Util/TacticCaches/Rewrites.lean to MathlibExtras/Rewrites.lean Deleted Util/ImportGraph/Main.lean - def asDotGraph - def graph - def importGraphCLI - def main Deleted Util/TacticCaches.lean Modified lakefile.lean Modified test/LibrarySearch/basic.lean Modified test/rewrites.lean 2023-07-12 03:49:41 1e93cf2 feat: port CategoryTheory.Monad.Monadicity (#5088) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Monad/Monadicity.lean + def CategoryTheory.Monad.MonadicityInternal.comparisonAdjunction + theorem CategoryTheory.Monad.MonadicityInternal.comparisonAdjunction_counit_app + theorem CategoryTheory.Monad.MonadicityInternal.comparisonAdjunction_unit_f + theorem CategoryTheory.Monad.MonadicityInternal.comparisonAdjunction_unit_f_aux + def CategoryTheory.Monad.MonadicityInternal.comparisonLeftAdjointHomEquiv + def CategoryTheory.Monad.MonadicityInternal.comparisonLeftAdjointObj + def CategoryTheory.Monad.MonadicityInternal.counitCoequalizerOfReflectsCoequalizer + def CategoryTheory.Monad.MonadicityInternal.counitCofork + def CategoryTheory.Monad.MonadicityInternal.leftAdjointComparison + def CategoryTheory.Monad.MonadicityInternal.unitCofork + theorem CategoryTheory.Monad.MonadicityInternal.unitCofork_π + def CategoryTheory.Monad.MonadicityInternal.unitColimitOfPreservesCoequalizer + def CategoryTheory.Monad.createsGSplitCoequalizersOfMonadic + def CategoryTheory.Monad.monadicOfCreatesGSplitCoequalizers + def CategoryTheory.Monad.monadicOfHasPreservesGSplitCoequalizersOfReflectsIsomorphisms + def CategoryTheory.Monad.monadicOfHasPreservesReflectsGSplitCoequalizers + def CategoryTheory.Monad.monadicOfHasPreservesReflexiveCoequalizersOfReflectsIsomorphisms 2023-07-12 02:40:59 268b7d4 chore: rename `Dfinsupp` to `DFinsupp` (#5822) See #4354 ESTIMATED CHANGES Modified Counterexamples/DirectSumIsInternal.lean Modified Counterexamples/HomogeneousPrimeNotPrime.lean Modified Counterexamples/ZeroDivisorsInAddMonoidAlgebras.lean Modified Mathlib.lean Modified Mathlib/Algebra/DirectLimit.lean Modified Mathlib/Algebra/DirectSum/Algebra.lean Modified Mathlib/Algebra/DirectSum/Basic.lean Modified Mathlib/Algebra/DirectSum/Finsupp.lean Modified Mathlib/Algebra/DirectSum/Internal.lean Modified Mathlib/Algebra/DirectSum/Module.lean +/- theorem DirectSum.single_eq_lof Modified Mathlib/Algebra/DirectSum/Ring.lean Modified Mathlib/Algebra/Lie/DirectSum.lean Modified Mathlib/Algebra/Module/PID.lean Modified Mathlib/Algebra/Module/Projective.lean Modified Mathlib/Algebra/MonoidAlgebra/ToDirectSum.lean Modified Mathlib/Analysis/InnerProductSpace/Basic.lean + theorem DFinsupp.inner_sum + theorem DFinsupp.sum_inner - theorem Dfinsupp.inner_sum - theorem Dfinsupp.sum_inner Modified Mathlib/Analysis/InnerProductSpace/PiL2.lean Modified Mathlib/Analysis/InnerProductSpace/Projection.lean Modified Mathlib/Analysis/InnerProductSpace/l2Space.lean Renamed Mathlib/Data/Dfinsupp/Basic.lean to Mathlib/Data/DFinsupp/Basic.lean + theorem DFinsupp.addHom_ext' + theorem DFinsupp.addHom_ext + theorem DFinsupp.add_apply + theorem DFinsupp.add_closure_iUnion_range_single + def DFinsupp.coeFnAddMonoidHom + theorem DFinsupp.coeFn_injective + theorem DFinsupp.coe_add + theorem DFinsupp.coe_finset_sum + theorem DFinsupp.coe_mk' + theorem DFinsupp.coe_neg + theorem DFinsupp.coe_nsmul + theorem DFinsupp.coe_piecewise + theorem DFinsupp.coe_smul + theorem DFinsupp.coe_sub + theorem DFinsupp.coe_update + theorem DFinsupp.coe_zero + theorem DFinsupp.coe_zsmul + def DFinsupp.comapDomain' + theorem DFinsupp.comapDomain'_add + theorem DFinsupp.comapDomain'_apply + theorem DFinsupp.comapDomain'_single + theorem DFinsupp.comapDomain'_smul + theorem DFinsupp.comapDomain'_zero + theorem DFinsupp.comapDomain_add + theorem DFinsupp.comapDomain_apply + theorem DFinsupp.comapDomain_single + theorem DFinsupp.comapDomain_smul + theorem DFinsupp.comapDomain_zero + theorem DFinsupp.comp_liftAddHom + theorem DFinsupp.comp_sumAddHom + theorem DFinsupp.eq_mk_support + def DFinsupp.equivCongrLeft + def DFinsupp.equivFunOnFintype + theorem DFinsupp.equivFunOnFintype_single + theorem DFinsupp.equivFunOnFintype_symm_coe + theorem DFinsupp.equivFunOnFintype_symm_single + theorem DFinsupp.equivProdDFinsupp_add + theorem DFinsupp.equivProdDFinsupp_smul + def DFinsupp.erase + def DFinsupp.eraseAddHom + theorem DFinsupp.erase_add + theorem DFinsupp.erase_add_single + theorem DFinsupp.erase_apply + theorem DFinsupp.erase_def + theorem DFinsupp.erase_eq_sub_single + theorem DFinsupp.erase_ne + theorem DFinsupp.erase_neg + theorem DFinsupp.erase_same + theorem DFinsupp.erase_single + theorem DFinsupp.erase_single_ne + theorem DFinsupp.erase_single_same + theorem DFinsupp.erase_sub + theorem DFinsupp.erase_zero + def DFinsupp.evalAddMonoidHom + theorem DFinsupp.ext + theorem DFinsupp.ext_iff + def DFinsupp.extendWith + theorem DFinsupp.extendWith_none + theorem DFinsupp.extendWith_single_zero + theorem DFinsupp.extendWith_some + theorem DFinsupp.extendWith_zero + def DFinsupp.filter + def DFinsupp.filterAddMonoidHom + def DFinsupp.filterLinearMap + theorem DFinsupp.filter_add + theorem DFinsupp.filter_apply + theorem DFinsupp.filter_apply_neg + theorem DFinsupp.filter_apply_pos + theorem DFinsupp.filter_def + theorem DFinsupp.filter_ne_eq_erase' + theorem DFinsupp.filter_ne_eq_erase + theorem DFinsupp.filter_neg + theorem DFinsupp.filter_pos_add_filter_neg + theorem DFinsupp.filter_single + theorem DFinsupp.filter_single_neg + theorem DFinsupp.filter_single_pos + theorem DFinsupp.filter_smul + theorem DFinsupp.filter_sub + theorem DFinsupp.filter_zero + theorem DFinsupp.finite_support + theorem DFinsupp.finset_sum_apply + theorem DFinsupp.induction₂ + theorem DFinsupp.infinite_of_exists_right + def DFinsupp.liftAddHom + theorem DFinsupp.liftAddHom_apply_single + theorem DFinsupp.liftAddHom_comp_single + theorem DFinsupp.liftAddHom_singleAddHom + def DFinsupp.mapRange.addEquiv + theorem DFinsupp.mapRange.addEquiv_refl + theorem DFinsupp.mapRange.addEquiv_symm + theorem DFinsupp.mapRange.addEquiv_trans + def DFinsupp.mapRange.addMonoidHom + theorem DFinsupp.mapRange.addMonoidHom_comp + theorem DFinsupp.mapRange.addMonoidHom_id + def DFinsupp.mapRange + theorem DFinsupp.mapRange_add + theorem DFinsupp.mapRange_apply + theorem DFinsupp.mapRange_comp + theorem DFinsupp.mapRange_def + theorem DFinsupp.mapRange_id + theorem DFinsupp.mapRange_single + theorem DFinsupp.mapRange_zero + theorem DFinsupp.mem_support_iff + theorem DFinsupp.mem_support_toFun + def DFinsupp.mk + def DFinsupp.mkAddGroupHom + theorem DFinsupp.mk_add + theorem DFinsupp.mk_apply + theorem DFinsupp.mk_injective + theorem DFinsupp.mk_neg + theorem DFinsupp.mk_of_mem + theorem DFinsupp.mk_of_not_mem + theorem DFinsupp.mk_smul + theorem DFinsupp.mk_sub + theorem DFinsupp.mk_zero + theorem DFinsupp.neg_apply + theorem DFinsupp.not_mem_support_iff + theorem DFinsupp.nsmul_apply + def DFinsupp.piecewise + theorem DFinsupp.piecewise_apply + theorem DFinsupp.piecewise_single_erase + def DFinsupp.prod + theorem DFinsupp.prod_add_index + theorem DFinsupp.prod_comm + theorem DFinsupp.prod_eq_one + theorem DFinsupp.prod_eq_prod_fintype + theorem DFinsupp.prod_finset_sum_index + theorem DFinsupp.prod_inv + theorem DFinsupp.prod_mapRange_index + theorem DFinsupp.prod_mul + theorem DFinsupp.prod_neg_index + theorem DFinsupp.prod_one + theorem DFinsupp.prod_single_index + theorem DFinsupp.prod_subtypeDomain_index + theorem DFinsupp.prod_sum_index + theorem DFinsupp.prod_zero_index + theorem DFinsupp.sigmaCurry_add + theorem DFinsupp.sigmaCurry_apply + theorem DFinsupp.sigmaCurry_single + theorem DFinsupp.sigmaCurry_smul + theorem DFinsupp.sigmaCurry_zero + def DFinsupp.sigmaUncurry + theorem DFinsupp.sigmaUncurry_add + theorem DFinsupp.sigmaUncurry_apply + theorem DFinsupp.sigmaUncurry_single + theorem DFinsupp.sigmaUncurry_smul + theorem DFinsupp.sigmaUncurry_zero + def DFinsupp.single + def DFinsupp.singleAddHom + theorem DFinsupp.single_add + theorem DFinsupp.single_add_erase + theorem DFinsupp.single_apply + theorem DFinsupp.single_eq_of_ne + theorem DFinsupp.single_eq_of_sigma_eq + theorem DFinsupp.single_eq_pi_single + theorem DFinsupp.single_eq_same + theorem DFinsupp.single_eq_single_iff + theorem DFinsupp.single_eq_zero + theorem DFinsupp.single_injective + theorem DFinsupp.single_left_injective + theorem DFinsupp.single_neg + theorem DFinsupp.single_smul + theorem DFinsupp.single_sub + theorem DFinsupp.single_zero + theorem DFinsupp.smul_apply + theorem DFinsupp.smul_sum + theorem DFinsupp.sub_apply + def DFinsupp.subtypeDomain + def DFinsupp.subtypeDomainAddMonoidHom + def DFinsupp.subtypeDomainLinearMap + theorem DFinsupp.subtypeDomain_add + theorem DFinsupp.subtypeDomain_apply + theorem DFinsupp.subtypeDomain_def + theorem DFinsupp.subtypeDomain_finsupp_sum + theorem DFinsupp.subtypeDomain_neg + theorem DFinsupp.subtypeDomain_smul + theorem DFinsupp.subtypeDomain_sub + theorem DFinsupp.subtypeDomain_sum + theorem DFinsupp.subtypeDomain_zero + def DFinsupp.sumAddHom + theorem DFinsupp.sumAddHom_add + theorem DFinsupp.sumAddHom_apply + theorem DFinsupp.sumAddHom_comm + theorem DFinsupp.sumAddHom_comp_single + theorem DFinsupp.sumAddHom_single + theorem DFinsupp.sumAddHom_singleAddHom + theorem DFinsupp.sumAddHom_zero + theorem DFinsupp.sum_apply + theorem DFinsupp.sum_single + theorem DFinsupp.sum_sub_index + def DFinsupp.support + theorem DFinsupp.support_add + theorem DFinsupp.support_eq_empty + theorem DFinsupp.support_erase + theorem DFinsupp.support_filter + theorem DFinsupp.support_mapRange + theorem DFinsupp.support_mk'_subset + theorem DFinsupp.support_mk_subset + theorem DFinsupp.support_neg + theorem DFinsupp.support_single_ne_zero + theorem DFinsupp.support_single_subset + theorem DFinsupp.support_smul + theorem DFinsupp.support_subset_iff + theorem DFinsupp.support_subtypeDomain + theorem DFinsupp.support_sum + theorem DFinsupp.support_update + theorem DFinsupp.support_update_ne_zero + theorem DFinsupp.support_zero + theorem DFinsupp.support_zipWith + theorem DFinsupp.toFun_eq_coe + def DFinsupp.update + theorem DFinsupp.update_eq_erase + theorem DFinsupp.update_eq_erase_add_single + theorem DFinsupp.update_eq_single_add_erase + theorem DFinsupp.update_eq_sub_add_single + theorem DFinsupp.update_self + theorem DFinsupp.zero_apply + def DFinsupp.zipWith + theorem DFinsupp.zipWith_apply + theorem DFinsupp.zipWith_def + theorem DFinsupp.zsmul_apply + structure DFinsupp - theorem Dfinsupp.addHom_ext' - theorem Dfinsupp.addHom_ext - theorem Dfinsupp.add_apply - theorem Dfinsupp.add_closure_iUnion_range_single - def Dfinsupp.coeFnAddMonoidHom - theorem Dfinsupp.coeFn_injective - theorem Dfinsupp.coe_add - theorem Dfinsupp.coe_finset_sum - theorem Dfinsupp.coe_mk' - theorem Dfinsupp.coe_neg - theorem Dfinsupp.coe_nsmul - theorem Dfinsupp.coe_piecewise - theorem Dfinsupp.coe_smul - theorem Dfinsupp.coe_sub - theorem Dfinsupp.coe_update - theorem Dfinsupp.coe_zero - theorem Dfinsupp.coe_zsmul - def Dfinsupp.comapDomain' - theorem Dfinsupp.comapDomain'_add - theorem Dfinsupp.comapDomain'_apply - theorem Dfinsupp.comapDomain'_single - theorem Dfinsupp.comapDomain'_smul - theorem Dfinsupp.comapDomain'_zero - theorem Dfinsupp.comapDomain_add - theorem Dfinsupp.comapDomain_apply - theorem Dfinsupp.comapDomain_single - theorem Dfinsupp.comapDomain_smul - theorem Dfinsupp.comapDomain_zero - theorem Dfinsupp.comp_liftAddHom - theorem Dfinsupp.comp_sumAddHom - theorem Dfinsupp.eq_mk_support - def Dfinsupp.equivCongrLeft - def Dfinsupp.equivFunOnFintype - theorem Dfinsupp.equivFunOnFintype_single - theorem Dfinsupp.equivFunOnFintype_symm_coe - theorem Dfinsupp.equivFunOnFintype_symm_single - theorem Dfinsupp.equivProdDfinsupp_add - theorem Dfinsupp.equivProdDfinsupp_smul - def Dfinsupp.erase - def Dfinsupp.eraseAddHom - theorem Dfinsupp.erase_add - theorem Dfinsupp.erase_add_single - theorem Dfinsupp.erase_apply - theorem Dfinsupp.erase_def - theorem Dfinsupp.erase_eq_sub_single - theorem Dfinsupp.erase_ne - theorem Dfinsupp.erase_neg - theorem Dfinsupp.erase_same - theorem Dfinsupp.erase_single - theorem Dfinsupp.erase_single_ne - theorem Dfinsupp.erase_single_same - theorem Dfinsupp.erase_sub - theorem Dfinsupp.erase_zero - def Dfinsupp.evalAddMonoidHom - theorem Dfinsupp.ext - theorem Dfinsupp.ext_iff - def Dfinsupp.extendWith - theorem Dfinsupp.extendWith_none - theorem Dfinsupp.extendWith_single_zero - theorem Dfinsupp.extendWith_some - theorem Dfinsupp.extendWith_zero - def Dfinsupp.filter - def Dfinsupp.filterAddMonoidHom - def Dfinsupp.filterLinearMap - theorem Dfinsupp.filter_add - theorem Dfinsupp.filter_apply - theorem Dfinsupp.filter_apply_neg - theorem Dfinsupp.filter_apply_pos - theorem Dfinsupp.filter_def - theorem Dfinsupp.filter_ne_eq_erase' - theorem Dfinsupp.filter_ne_eq_erase - theorem Dfinsupp.filter_neg - theorem Dfinsupp.filter_pos_add_filter_neg - theorem Dfinsupp.filter_single - theorem Dfinsupp.filter_single_neg - theorem Dfinsupp.filter_single_pos - theorem Dfinsupp.filter_smul - theorem Dfinsupp.filter_sub - theorem Dfinsupp.filter_zero - theorem Dfinsupp.finite_support - theorem Dfinsupp.finset_sum_apply - theorem Dfinsupp.induction₂ - theorem Dfinsupp.infinite_of_exists_right - def Dfinsupp.liftAddHom - theorem Dfinsupp.liftAddHom_apply_single - theorem Dfinsupp.liftAddHom_comp_single - theorem Dfinsupp.liftAddHom_singleAddHom - def Dfinsupp.mapRange.addEquiv - theorem Dfinsupp.mapRange.addEquiv_refl - theorem Dfinsupp.mapRange.addEquiv_symm - theorem Dfinsupp.mapRange.addEquiv_trans - def Dfinsupp.mapRange.addMonoidHom - theorem Dfinsupp.mapRange.addMonoidHom_comp - theorem Dfinsupp.mapRange.addMonoidHom_id - def Dfinsupp.mapRange - theorem Dfinsupp.mapRange_add - theorem Dfinsupp.mapRange_apply - theorem Dfinsupp.mapRange_comp - theorem Dfinsupp.mapRange_def - theorem Dfinsupp.mapRange_id - theorem Dfinsupp.mapRange_single - theorem Dfinsupp.mapRange_zero - theorem Dfinsupp.mem_support_iff - theorem Dfinsupp.mem_support_toFun - def Dfinsupp.mk - def Dfinsupp.mkAddGroupHom - theorem Dfinsupp.mk_add - theorem Dfinsupp.mk_apply - theorem Dfinsupp.mk_injective - theorem Dfinsupp.mk_neg - theorem Dfinsupp.mk_of_mem - theorem Dfinsupp.mk_of_not_mem - theorem Dfinsupp.mk_smul - theorem Dfinsupp.mk_sub - theorem Dfinsupp.mk_zero - theorem Dfinsupp.neg_apply - theorem Dfinsupp.not_mem_support_iff - theorem Dfinsupp.nsmul_apply - def Dfinsupp.piecewise - theorem Dfinsupp.piecewise_apply - theorem Dfinsupp.piecewise_single_erase - def Dfinsupp.prod - theorem Dfinsupp.prod_add_index - theorem Dfinsupp.prod_comm - theorem Dfinsupp.prod_eq_one - theorem Dfinsupp.prod_eq_prod_fintype - theorem Dfinsupp.prod_finset_sum_index - theorem Dfinsupp.prod_inv - theorem Dfinsupp.prod_mapRange_index - theorem Dfinsupp.prod_mul - theorem Dfinsupp.prod_neg_index - theorem Dfinsupp.prod_one - theorem Dfinsupp.prod_single_index - theorem Dfinsupp.prod_subtypeDomain_index - theorem Dfinsupp.prod_sum_index - theorem Dfinsupp.prod_zero_index - theorem Dfinsupp.sigmaCurry_add - theorem Dfinsupp.sigmaCurry_apply - theorem Dfinsupp.sigmaCurry_single - theorem Dfinsupp.sigmaCurry_smul - theorem Dfinsupp.sigmaCurry_zero - def Dfinsupp.sigmaUncurry - theorem Dfinsupp.sigmaUncurry_add - theorem Dfinsupp.sigmaUncurry_apply - theorem Dfinsupp.sigmaUncurry_single - theorem Dfinsupp.sigmaUncurry_smul - theorem Dfinsupp.sigmaUncurry_zero - def Dfinsupp.single - def Dfinsupp.singleAddHom - theorem Dfinsupp.single_add - theorem Dfinsupp.single_add_erase - theorem Dfinsupp.single_apply - theorem Dfinsupp.single_eq_of_ne - theorem Dfinsupp.single_eq_of_sigma_eq - theorem Dfinsupp.single_eq_pi_single - theorem Dfinsupp.single_eq_same - theorem Dfinsupp.single_eq_single_iff - theorem Dfinsupp.single_eq_zero - theorem Dfinsupp.single_injective - theorem Dfinsupp.single_left_injective - theorem Dfinsupp.single_neg - theorem Dfinsupp.single_smul - theorem Dfinsupp.single_sub - theorem Dfinsupp.single_zero - theorem Dfinsupp.smul_apply - theorem Dfinsupp.smul_sum - theorem Dfinsupp.sub_apply - def Dfinsupp.subtypeDomain - def Dfinsupp.subtypeDomainAddMonoidHom - def Dfinsupp.subtypeDomainLinearMap - theorem Dfinsupp.subtypeDomain_add - theorem Dfinsupp.subtypeDomain_apply - theorem Dfinsupp.subtypeDomain_def - theorem Dfinsupp.subtypeDomain_finsupp_sum - theorem Dfinsupp.subtypeDomain_neg - theorem Dfinsupp.subtypeDomain_smul - theorem Dfinsupp.subtypeDomain_sub - theorem Dfinsupp.subtypeDomain_sum - theorem Dfinsupp.subtypeDomain_zero - def Dfinsupp.sumAddHom - theorem Dfinsupp.sumAddHom_add - theorem Dfinsupp.sumAddHom_apply - theorem Dfinsupp.sumAddHom_comm - theorem Dfinsupp.sumAddHom_comp_single - theorem Dfinsupp.sumAddHom_single - theorem Dfinsupp.sumAddHom_singleAddHom - theorem Dfinsupp.sumAddHom_zero - theorem Dfinsupp.sum_apply - theorem Dfinsupp.sum_single - theorem Dfinsupp.sum_sub_index - def Dfinsupp.support - theorem Dfinsupp.support_add - theorem Dfinsupp.support_eq_empty - theorem Dfinsupp.support_erase - theorem Dfinsupp.support_filter - theorem Dfinsupp.support_mapRange - theorem Dfinsupp.support_mk'_subset - theorem Dfinsupp.support_mk_subset - theorem Dfinsupp.support_neg - theorem Dfinsupp.support_single_ne_zero - theorem Dfinsupp.support_single_subset - theorem Dfinsupp.support_smul - theorem Dfinsupp.support_subset_iff - theorem Dfinsupp.support_subtypeDomain - theorem Dfinsupp.support_sum - theorem Dfinsupp.support_update - theorem Dfinsupp.support_update_ne_zero - theorem Dfinsupp.support_zero - theorem Dfinsupp.support_zipWith - theorem Dfinsupp.toFun_eq_coe - def Dfinsupp.update - theorem Dfinsupp.update_eq_erase - theorem Dfinsupp.update_eq_erase_add_single - theorem Dfinsupp.update_eq_single_add_erase - theorem Dfinsupp.update_eq_sub_add_single - theorem Dfinsupp.update_self - theorem Dfinsupp.zero_apply - def Dfinsupp.zipWith - theorem Dfinsupp.zipWith_apply - theorem Dfinsupp.zipWith_def - theorem Dfinsupp.zsmul_apply - structure Dfinsupp Renamed Mathlib/Data/Dfinsupp/Interval.lean to Mathlib/Data/DFinsupp/Interval.lean + theorem DFinsupp.Icc_eq + theorem DFinsupp.card_Icc + theorem DFinsupp.card_Ico + theorem DFinsupp.card_Iic + theorem DFinsupp.card_Iio + theorem DFinsupp.card_Ioc + theorem DFinsupp.card_Ioo + theorem DFinsupp.card_pi + theorem DFinsupp.mem_pi + theorem DFinsupp.mem_rangeIcc_apply_iff + theorem DFinsupp.mem_singleton_apply_iff + def DFinsupp.pi + def DFinsupp.rangeIcc + theorem DFinsupp.rangeIcc_apply + def DFinsupp.singleton + theorem DFinsupp.support_rangeIcc_subset - theorem Dfinsupp.Icc_eq - theorem Dfinsupp.card_Icc - theorem Dfinsupp.card_Ico - theorem Dfinsupp.card_Iic - theorem Dfinsupp.card_Iio - theorem Dfinsupp.card_Ioc - theorem Dfinsupp.card_Ioo - theorem Dfinsupp.card_pi - theorem Dfinsupp.mem_pi - theorem Dfinsupp.mem_rangeIcc_apply_iff - theorem Dfinsupp.mem_singleton_apply_iff - def Dfinsupp.pi - def Dfinsupp.rangeIcc - theorem Dfinsupp.rangeIcc_apply - def Dfinsupp.singleton - theorem Dfinsupp.support_rangeIcc_subset Renamed Mathlib/Data/Dfinsupp/Lex.lean to Mathlib/Data/DFinsupp/Lex.lean + theorem DFinsupp.lex_def + theorem DFinsupp.lex_lt_of_lt + theorem DFinsupp.lex_lt_of_lt_of_preorder + theorem DFinsupp.lt_of_forall_lt_of_lt + theorem DFinsupp.toLex_monotone - theorem Dfinsupp.lex_def - theorem Dfinsupp.lex_lt_of_lt - theorem Dfinsupp.lex_lt_of_lt_of_preorder - theorem Dfinsupp.lt_of_forall_lt_of_lt - theorem Dfinsupp.toLex_monotone Added Mathlib/Data/DFinsupp/Multiset.lean + def DFinsupp.toMultiset + theorem DFinsupp.toMultiset_single + theorem DFinsupp.toMultiset_toDFinsupp + def Multiset.equivDFinsupp + def Multiset.toDFinsupp + theorem Multiset.toDFinsupp_apply + theorem Multiset.toDFinsupp_le_toDFinsupp + theorem Multiset.toDFinsupp_replicate + theorem Multiset.toDFinsupp_singleton + theorem Multiset.toDFinsupp_support + theorem Multiset.toDFinsupp_toMultiset Renamed Mathlib/Data/Dfinsupp/NeLocus.lean to Mathlib/Data/DFinsupp/NeLocus.lean + theorem DFinsupp.coe_neLocus + theorem DFinsupp.mapRange_neLocus_eq + theorem DFinsupp.mem_neLocus + def DFinsupp.neLocus + theorem DFinsupp.neLocus_add_left + theorem DFinsupp.neLocus_add_right + theorem DFinsupp.neLocus_comm + theorem DFinsupp.neLocus_eq_empty + theorem DFinsupp.neLocus_eq_support_sub + theorem DFinsupp.neLocus_neg + theorem DFinsupp.neLocus_neg_neg + theorem DFinsupp.neLocus_self_add_left + theorem DFinsupp.neLocus_self_add_right + theorem DFinsupp.neLocus_self_sub_left + theorem DFinsupp.neLocus_self_sub_right + theorem DFinsupp.neLocus_sub_left + theorem DFinsupp.neLocus_sub_right + theorem DFinsupp.neLocus_zero_left + theorem DFinsupp.neLocus_zero_right + theorem DFinsupp.nonempty_neLocus_iff + theorem DFinsupp.not_mem_neLocus + theorem DFinsupp.subset_mapRange_neLocus + theorem DFinsupp.zipWith_neLocus_eq_left + theorem DFinsupp.zipWith_neLocus_eq_right - theorem Dfinsupp.coe_neLocus - theorem Dfinsupp.mapRange_neLocus_eq - theorem Dfinsupp.mem_neLocus - def Dfinsupp.neLocus - theorem Dfinsupp.neLocus_add_left - theorem Dfinsupp.neLocus_add_right - theorem Dfinsupp.neLocus_comm - theorem Dfinsupp.neLocus_eq_empty - theorem Dfinsupp.neLocus_eq_support_sub - theorem Dfinsupp.neLocus_neg - theorem Dfinsupp.neLocus_neg_neg - theorem Dfinsupp.neLocus_self_add_left - theorem Dfinsupp.neLocus_self_add_right - theorem Dfinsupp.neLocus_self_sub_left - theorem Dfinsupp.neLocus_self_sub_right - theorem Dfinsupp.neLocus_sub_left - theorem Dfinsupp.neLocus_sub_right - theorem Dfinsupp.neLocus_zero_left - theorem Dfinsupp.neLocus_zero_right - theorem Dfinsupp.nonempty_neLocus_iff - theorem Dfinsupp.not_mem_neLocus - theorem Dfinsupp.subset_mapRange_neLocus - theorem Dfinsupp.zipWith_neLocus_eq_left - theorem Dfinsupp.zipWith_neLocus_eq_right Renamed Mathlib/Data/Dfinsupp/Order.lean to Mathlib/Data/DFinsupp/Order.lean + theorem DFinsupp.add_eq_zero_iff + theorem DFinsupp.coeFn_mono + theorem DFinsupp.coe_tsub + theorem DFinsupp.inf_apply + theorem DFinsupp.le_def + theorem DFinsupp.le_iff' + theorem DFinsupp.le_iff + def DFinsupp.orderEmbeddingToFun + theorem DFinsupp.orderEmbeddingToFun_apply + theorem DFinsupp.single_le_iff + theorem DFinsupp.single_tsub + theorem DFinsupp.subset_support_tsub + theorem DFinsupp.sup_apply + theorem DFinsupp.support_inf + theorem DFinsupp.support_sup + theorem DFinsupp.support_tsub + theorem DFinsupp.tsub_apply - theorem Dfinsupp.add_eq_zero_iff - theorem Dfinsupp.coeFn_mono - theorem Dfinsupp.coe_tsub - theorem Dfinsupp.inf_apply - theorem Dfinsupp.le_def - theorem Dfinsupp.le_iff' - theorem Dfinsupp.le_iff - def Dfinsupp.orderEmbeddingToFun - theorem Dfinsupp.orderEmbeddingToFun_apply - theorem Dfinsupp.single_le_iff - theorem Dfinsupp.single_tsub - theorem Dfinsupp.subset_support_tsub - theorem Dfinsupp.sup_apply - theorem Dfinsupp.support_inf - theorem Dfinsupp.support_sup - theorem Dfinsupp.support_tsub - theorem Dfinsupp.tsub_apply Renamed Mathlib/Data/Dfinsupp/WellFounded.lean to Mathlib/Data/DFinsupp/WellFounded.lean + theorem DFinsupp.Lex.acc + theorem DFinsupp.Lex.acc_of_single + theorem DFinsupp.Lex.acc_of_single_erase + theorem DFinsupp.Lex.acc_single + theorem DFinsupp.Lex.acc_zero + theorem DFinsupp.Lex.wellFounded' + theorem DFinsupp.Lex.wellFounded + theorem DFinsupp.Lex.wellFounded_of_finite + theorem DFinsupp.lex_fibration - theorem Dfinsupp.Lex.acc - theorem Dfinsupp.Lex.acc_of_single - theorem Dfinsupp.Lex.acc_of_single_erase - theorem Dfinsupp.Lex.acc_single - theorem Dfinsupp.Lex.acc_zero - theorem Dfinsupp.Lex.wellFounded' - theorem Dfinsupp.Lex.wellFounded - theorem Dfinsupp.Lex.wellFounded_of_finite - theorem Dfinsupp.lex_fibration Deleted Mathlib/Data/Dfinsupp/Multiset.lean - def Dfinsupp.toMultiset - theorem Dfinsupp.toMultiset_single - theorem Dfinsupp.toMultiset_toDfinsupp - def Multiset.equivDfinsupp - def Multiset.toDfinsupp - theorem Multiset.toDfinsupp_apply - theorem Multiset.toDfinsupp_le_toDfinsupp - theorem Multiset.toDfinsupp_replicate - theorem Multiset.toDfinsupp_singleton - theorem Multiset.toDfinsupp_support - theorem Multiset.toDfinsupp_toMultiset Modified Mathlib/Data/Finsupp/Lex.lean Added Mathlib/Data/Finsupp/ToDFinsupp.lean + def DFinsupp.toFinsupp + theorem DFinsupp.toFinsupp_add + theorem DFinsupp.toFinsupp_coe + theorem DFinsupp.toFinsupp_neg + theorem DFinsupp.toFinsupp_single + theorem DFinsupp.toFinsupp_smul + theorem DFinsupp.toFinsupp_sub + theorem DFinsupp.toFinsupp_support + theorem DFinsupp.toFinsupp_toDFinsupp + theorem DFinsupp.toFinsupp_zero + def Finsupp.toDFinsupp + theorem Finsupp.toDFinsupp_add + theorem Finsupp.toDFinsupp_coe + theorem Finsupp.toDFinsupp_neg + theorem Finsupp.toDFinsupp_single + theorem Finsupp.toDFinsupp_smul + theorem Finsupp.toDFinsupp_sub + theorem Finsupp.toDFinsupp_toFinsupp + theorem Finsupp.toDFinsupp_zero + def finsuppAddEquivDFinsupp + def finsuppEquivDFinsupp + def finsuppLequivDFinsupp + theorem finsuppLequivDFinsupp_apply_apply + theorem finsuppLequivDFinsupp_symm_apply + def sigmaFinsuppAddEquivDFinsupp + def sigmaFinsuppEquivDFinsupp + theorem sigmaFinsuppEquivDFinsupp_add + theorem sigmaFinsuppEquivDFinsupp_apply + theorem sigmaFinsuppEquivDFinsupp_single + theorem sigmaFinsuppEquivDFinsupp_smul + theorem sigmaFinsuppEquivDFinsupp_support + theorem sigmaFinsuppEquivDFinsupp_symm_apply + def sigmaFinsuppLequivDFinsupp + theorem toDFinsupp_support Deleted Mathlib/Data/Finsupp/ToDfinsupp.lean - def Dfinsupp.toFinsupp - theorem Dfinsupp.toFinsupp_add - theorem Dfinsupp.toFinsupp_coe - theorem Dfinsupp.toFinsupp_neg - theorem Dfinsupp.toFinsupp_single - theorem Dfinsupp.toFinsupp_smul - theorem Dfinsupp.toFinsupp_sub - theorem Dfinsupp.toFinsupp_support - theorem Dfinsupp.toFinsupp_toDfinsupp - theorem Dfinsupp.toFinsupp_zero - def Finsupp.toDfinsupp - theorem Finsupp.toDfinsupp_add - theorem Finsupp.toDfinsupp_coe - theorem Finsupp.toDfinsupp_neg - theorem Finsupp.toDfinsupp_single - theorem Finsupp.toDfinsupp_smul - theorem Finsupp.toDfinsupp_sub - theorem Finsupp.toDfinsupp_toFinsupp - theorem Finsupp.toDfinsupp_zero - def finsuppAddEquivDfinsupp - def finsuppEquivDfinsupp - def finsuppLequivDfinsupp - theorem finsuppLequivDfinsupp_apply_apply - theorem finsuppLequivDfinsupp_symm_apply - def sigmaFinsuppAddEquivDfinsupp - def sigmaFinsuppEquivDfinsupp - theorem sigmaFinsuppEquivDfinsupp_add - theorem sigmaFinsuppEquivDfinsupp_apply - theorem sigmaFinsuppEquivDfinsupp_single - theorem sigmaFinsuppEquivDfinsupp_smul - theorem sigmaFinsuppEquivDfinsupp_support - theorem sigmaFinsuppEquivDfinsupp_symm_apply - def sigmaFinsuppLequivDfinsupp - theorem toDfinsupp_support Modified Mathlib/Data/Finsupp/WellFounded.lean Modified Mathlib/Data/Multiset/Interval.lean Modified Mathlib/GroupTheory/FiniteAbelian.lean Modified Mathlib/LinearAlgebra/Basic.lean Modified Mathlib/LinearAlgebra/CliffordAlgebra/Grading.lean Renamed Mathlib/LinearAlgebra/Dfinsupp.lean to Mathlib/LinearAlgebra/DFinsupp.lean + theorem DFinsupp.coprodMap_apply + theorem DFinsupp.coprodMap_apply_single + def DFinsupp.lapply + theorem DFinsupp.lapply_apply + theorem DFinsupp.lhom_ext' + theorem DFinsupp.lhom_ext + def DFinsupp.lmk + theorem DFinsupp.lmk_apply + def DFinsupp.lsingle + theorem DFinsupp.lsingle_apply + def DFinsupp.lsum + theorem DFinsupp.lsum_single + def DFinsupp.mapRange.linearEquiv + theorem DFinsupp.mapRange.linearEquiv_refl + theorem DFinsupp.mapRange.linearEquiv_symm + theorem DFinsupp.mapRange.linearEquiv_trans + def DFinsupp.mapRange.linearMap + theorem DFinsupp.mapRange.linearMap_comp + theorem DFinsupp.mapRange.linearMap_id + theorem DFinsupp.mapRange_smul + theorem DFinsupp.sum_mapRange_index.linearMap - theorem Dfinsupp.coprodMap_apply - theorem Dfinsupp.coprodMap_apply_single - def Dfinsupp.lapply - theorem Dfinsupp.lapply_apply - theorem Dfinsupp.lhom_ext' - theorem Dfinsupp.lhom_ext - def Dfinsupp.lmk - theorem Dfinsupp.lmk_apply - def Dfinsupp.lsingle - theorem Dfinsupp.lsingle_apply - def Dfinsupp.lsum - theorem Dfinsupp.lsum_single - def Dfinsupp.mapRange.linearEquiv - theorem Dfinsupp.mapRange.linearEquiv_refl - theorem Dfinsupp.mapRange.linearEquiv_symm - theorem Dfinsupp.mapRange.linearEquiv_trans - def Dfinsupp.mapRange.linearMap - theorem Dfinsupp.mapRange.linearMap_comp - theorem Dfinsupp.mapRange.linearMap_id - theorem Dfinsupp.mapRange_smul - theorem Dfinsupp.sum_mapRange_index.linearMap Modified Mathlib/LinearAlgebra/Dimension.lean Modified Mathlib/LinearAlgebra/DirectSum/TensorProduct.lean Modified Mathlib/LinearAlgebra/Eigenspace/Basic.lean Modified Mathlib/LinearAlgebra/ExteriorAlgebra/Grading.lean Modified Mathlib/LinearAlgebra/FreeModule/Basic.lean Modified Mathlib/LinearAlgebra/FreeModule/Rank.lean Modified Mathlib/RingTheory/Coprime/Ideal.lean Modified Mathlib/RingTheory/GradedAlgebra/Basic.lean Modified Mathlib/RingTheory/GradedAlgebra/HomogeneousIdeal.lean Modified Mathlib/Testing/SlimCheck/Functions.lean Modified test/slim_check.lean 2023-07-12 01:10:54 180831e feat: apply context lemmas before other lemmas (#5809) ESTIMATED CHANGES Modified Mathlib/Tactic/SolveByElim.lean 2023-07-12 00:58:35 d3e3344 fix: slim_check working with modified mvar context (#5823) ESTIMATED CHANGES Modified Mathlib/Tactic/SlimCheck.lean Modified test/slim_check.lean 2023-07-12 00:58:34 bb0602c feat: port `Traversable` deriving handlers (#5606) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Tactic.lean Added Mathlib/Tactic/DeriveTraversable.lean + def Mathlib.Deriving.Traversable.deriveFunctor + def Mathlib.Deriving.Traversable.deriveLawfulFunctor + def Mathlib.Deriving.Traversable.deriveLawfulTraversable + def Mathlib.Deriving.Traversable.deriveTraversable + def Mathlib.Deriving.Traversable.functorDeriveHandler + def Mathlib.Deriving.Traversable.getAuxDefOfDeclName + def Mathlib.Deriving.Traversable.getFVarIdsNotImplementationDetails + def Mathlib.Deriving.Traversable.getFVarsNotImplementationDetails + def Mathlib.Deriving.Traversable.higherOrderDeriveHandler + def Mathlib.Deriving.Traversable.lawfulFunctorDeriveHandler + def Mathlib.Deriving.Traversable.lawfulTraversableDeriveHandler + def Mathlib.Deriving.Traversable.mapConstructor + def Mathlib.Deriving.Traversable.mapField + def Mathlib.Deriving.Traversable.mkCasesOnMatch + def Mathlib.Deriving.Traversable.mkInstanceNameForTypeExpr + def Mathlib.Deriving.Traversable.mkMap + def Mathlib.Deriving.Traversable.mkOneInstance + def Mathlib.Deriving.Traversable.mkTraverse + def Mathlib.Deriving.Traversable.simpFunctorGoal + def Mathlib.Deriving.Traversable.traversableDeriveHandler + def Mathlib.Deriving.Traversable.traversableLawStarter + def Mathlib.Deriving.Traversable.traverseConstructor + def Mathlib.Deriving.Traversable.traverseField Added test/Traversable.lean + inductive Testing.Either + structure Testing.MyStruct2 + structure Testing.MyStruct + inductive Testing.MyTree + inductive Testing.RecData + def Testing.ex + def Testing.x 2023-07-11 23:59:44 5d83d80 feat:add correct SHA to earlier PR (#5799) ESTIMATED CHANGES Modified Mathlib/Data/Finite/Card.lean Modified Mathlib/Data/Nat/PartENat.lean Modified Mathlib/SetTheory/Cardinal/Basic.lean Modified Mathlib/SetTheory/Cardinal/Finite.lean 2023-07-11 22:57:25 57cae8c feat: port Testing.SlimCheck.Functions (#5768) This diverges fairly considerably from mathlib3 since we changed the `SampleableExt` API when porting the previous file. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Testing/SlimCheck/Functions.lean + def SlimCheck.InjectiveFunction.List.applyId + theorem SlimCheck.InjectiveFunction.List.applyId_cons + theorem SlimCheck.InjectiveFunction.List.applyId_eq_self + theorem SlimCheck.InjectiveFunction.List.applyId_zip_eq + def SlimCheck.InjectiveFunction.Perm.slice + def SlimCheck.InjectiveFunction.apply + theorem SlimCheck.InjectiveFunction.applyId_injective + theorem SlimCheck.InjectiveFunction.applyId_mem_iff + def SlimCheck.InjectiveFunction.sliceSizes + inductive SlimCheck.InjectiveFunction + def SlimCheck.TotalFunction.List.toFinmap' + def SlimCheck.TotalFunction.apply + def SlimCheck.TotalFunction.applyFinsupp + def SlimCheck.TotalFunction.comp + def SlimCheck.TotalFunction.reprAux + def SlimCheck.TotalFunction.shrink + def SlimCheck.TotalFunction.zeroDefault + def SlimCheck.TotalFunction.zeroDefaultSupp + inductive SlimCheck.TotalFunction Modified Mathlib/Testing/SlimCheck/Sampleable.lean 2023-07-11 20:21:40 f61c1f2 feat: add `SeparableSpace` instances (#5801) ESTIMATED CHANGES Modified Mathlib/Data/Set/Countable.lean + theorem Set.countable_univ_iff Modified Mathlib/Topology/Bases.lean + theorem QuotientMap.separableSpace + theorem TopologicalSpace.SeparableSpace.of_denseRange + theorem TopologicalSpace.separableSpace_iff_countable - theorem TopologicalSpace.separableSpace_of_denseRange 2023-07-11 19:16:08 59d6d55 feat: port Data.Array.Lemmas (#5821) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Data/Array/Lemmas.lean 2023-07-11 14:22:00 8fc626a fix: remove unneeded import (#5814) ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/BilinearForm.lean 2023-07-11 13:08:33 866278a chore(Analysis/Distribution): move the SchwartzSpace file to a new folder Distribution (#5813) ESTIMATED CHANGES Modified Mathlib.lean Renamed Mathlib/Analysis/SchwartzSpace.lean to Mathlib/Analysis/Distribution/SchwartzSpace.lean Modified Mathlib/Analysis/Fourier/PoissonSummation.lean 2023-07-11 10:52:00 4dd7b55 chore: move utilities into Util directory (#5787) As discussed during review of #5513, and on [zulip](https://leanprover.zulipchat.com/#narrow/stream/270676-lean4/topic/lean_lib.20in.20subdirectory.3F/near/373604052) - [x] depends on: #5513 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) ESTIMATED CHANGES Modified .github/workflows/bors.yml Modified .github/workflows/build.yml Modified .github/workflows/build.yml.in Modified .github/workflows/build_fork.yml Modified Mathlib/Tactic/LibrarySearch.lean Modified Mathlib/Tactic/Rewrites.lean Deleted MathlibExtras.lean Renamed Cache/Hashing.lean to Util/Cache/Hashing.lean +/- def Cache.Hashing.roots Renamed Cache/IO.lean to Util/Cache/IO.lean Renamed Cache/Main.lean to Util/Cache/Main.lean Renamed Cache/Requests.lean to Util/Cache/Requests.lean Added Util/ImportGraph/Main.lean + def asDotGraph + def graph + def importGraphCLI + def main Added Util/TacticCaches.lean Renamed MathlibExtras/LibrarySearch.lean to Util/TacticCaches/LibrarySearch.lean Renamed MathlibExtras/Rewrites.lean to Util/TacticCaches/Rewrites.lean Modified lakefile.lean Modified test/LibrarySearch/basic.lean Modified test/rewrites.lean 2023-07-11 10:51:59 d0f6ac2 feat: `conv in ... => ...` conv tactic (#5786) This is mean to be a substitute for the `for` tactic used in mathlib3. It's just copying the `conv` syntax for `conv`-the-tactic, which provides a convenient way to immediately apply the `pattern` conv tactic. ESTIMATED CHANGES Modified Mathlib/Tactic/Conv.lean Added test/conv.lean 2023-07-11 10:37:57 fe6a0bd fix: correct universe polymorphism in SlimCheck (#5796) The use of auto-implicits was introducing a universe metavariable where we wanted a free variable. The new `ULiftable` instances handle the common case of a universe polymorphic monad with a universe-lifted state from `Type`. ESTIMATED CHANGES Modified Mathlib/Control/ULiftable.lean Modified Mathlib/Testing/SlimCheck/Gen.lean +/- def SlimCheck.Gen.permutationOf +/- def SlimCheck.Gen.prodOf Modified Mathlib/Testing/SlimCheck/Sampleable.lean 2023-07-11 09:17:38 b009280 feat: port Geometry.Manifold.VectorBundle.Hom (#5727) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Geometry/Manifold/ContMDiff.lean + theorem ContDiff.comp_contMDiffAt + theorem ContDiff.comp_contMDiffWithinAt + theorem ContDiffAt.comp_contMDiffWithinAt + theorem ContMDiff.cle_arrowCongr + theorem ContMDiff.clm_postcomp + theorem ContMDiff.clm_precomp - theorem ContMDiffAt.clm_apply - theorem ContMDiffAt.clm_prodMap + theorem ContMDiffOn.cle_arrowCongr + theorem ContMDiffOn.clm_precomp + theorem ContMDiffWithinAt.cle_arrowCongr + theorem ContMDiffWithinAt.clm_postcomp + theorem ContMDiffWithinAt.clm_precomp + theorem ContinuousLinearMap.contMDiffAt + theorem ContinuousLinearMap.contMDiffOn + theorem ContinuousLinearMap.contMDiffWithinAt + theorem ContinuousLinearMap.smooth Added Mathlib/Geometry/Manifold/VectorBundle/Hom.lean + theorem contMDiffAt_hom_bundle + theorem hom_chart + theorem smoothAt_hom_bundle + theorem smoothOn_continuousLinearMapCoordChange 2023-07-11 08:59:48 51c2f54 feat: homeomorphism between `C(X, Σ i, Y i)` and `Σ i, C(X, Y i)` (#5673) This is a follow-up to #4325. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Topology/CompactOpen.lean Modified Mathlib/Topology/Constructions.lean + theorem inducing_sigma Modified Mathlib/Topology/ContinuousFunction/Basic.lean + def ContinuousMap.sigmaMk Added Mathlib/Topology/ContinuousFunction/Sigma.lean + theorem ContinuousMap.embedding_sigmaMk_comp + theorem ContinuousMap.exists_lift_sigma + def ContinuousMap.sigmaCodHomeomorph 2023-07-11 08:31:04 cefb050 feat: basic big operator plugin for `norm_num` (#4350) I wrote a basic implementation for a `norm_num` plugin evaluating `Finset.sum` and `Finset.prod`. It does not yet support as many `Finset` expressions as the Mathlib 3 implementation, and it cannot deal with variables appearing in the sum. I believe it's valuable to have this implementation since we do use this plugin in various parts of mathlib. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Tactic.lean Added Mathlib/Tactic/NormNum/BigOperators.lean + def Mathlib.Meta.Finset.ProveEmptyOrConsResult.eq_trans + def Mathlib.Meta.Finset.ProveEmptyOrConsResult.uncheckedCast + inductive Mathlib.Meta.Finset.ProveEmptyOrConsResult + theorem Mathlib.Meta.Finset.insert_eq_cons + theorem Mathlib.Meta.Finset.range_succ' + theorem Mathlib.Meta.Finset.range_zero' + theorem Mathlib.Meta.Finset.univ_eq_elems + def Mathlib.Meta.List.ProveNilOrConsResult.eq_trans + def Mathlib.Meta.List.ProveNilOrConsResult.uncheckedCast + inductive Mathlib.Meta.List.ProveNilOrConsResult + theorem Mathlib.Meta.List.range_succ_eq_map' + theorem Mathlib.Meta.List.range_zero' + def Mathlib.Meta.Multiset.ProveZeroOrConsResult.eq_trans + def Mathlib.Meta.Multiset.ProveZeroOrConsResult.uncheckedCast + inductive Mathlib.Meta.Multiset.ProveZeroOrConsResult + theorem Mathlib.Meta.Multiset.insert_eq_cons + theorem Mathlib.Meta.Multiset.range_succ' + theorem Mathlib.Meta.Multiset.range_zero' + inductive Mathlib.Meta.Nat.UnifyZeroOrSuccResult + def Mathlib.Meta.Nat.unifyZeroOrSucc + def Mathlib.Meta.NormNum.Result.eq_trans Modified test/norm_num_ext.lean 2023-07-10 15:31:02 63e0da0 feat: forward port leanprover-community/mathlib#19128 (#5791) ESTIMATED CHANGES Modified Mathlib/Analysis/Convolution.lean Modified Mathlib/Topology/Algebra/Module/StrongTopology.lean +/- def ContinuousLinearEquiv.arrowCongrSL + theorem ContinuousLinearEquiv.arrowCongrSL_toLinearEquiv_apply + theorem ContinuousLinearEquiv.arrowCongrSL_toLinearEquiv_symm_apply - def ContinuousLinearEquiv.arrowCongrₛₗ - theorem ContinuousLinearEquiv.arrowCongrₛₗ_continuous + def ContinuousLinearMap.postcomp + def ContinuousLinearMap.precomp Modified Mathlib/Topology/VectorBundle/Hom.lean 2023-07-10 13:59:22 5a78ace feat: port Init.Data.Nat.Lemmas (#5782) Previously this was an ad-hoc port ESTIMATED CHANGES Modified Mathlib/Data/Nat/Dist.lean Modified Mathlib/Data/Nat/Factorization/Basic.lean Modified Mathlib/Data/Nat/Fib.lean Modified Mathlib/Init/Data/Nat/Lemmas.lean +/- def Nat.discriminate +/- theorem Nat.one_eq_succ_zero + def Nat.subInduction - def Nat.sub_induction + def Nat.twoStepInduction - def Nat.two_step_induction 2023-07-10 12:17:36 c940234 chore: drop files starting with . from the porting dashboard (#5795) This takes care of some erronous entries on the porting dashboard. ESTIMATED CHANGES Modified scripts/make_port_status.py 2023-07-10 12:17:35 5a28a0c chore: remove lean_core prefix (#5794) This prefix isn't present in the lean3port repository, nor is it present when actually writing `import` in Lean 3. ESTIMATED CHANGES Modified Mathlib/Data/DList/Defs.lean Modified Mathlib/Data/Vector.lean 2023-07-10 12:17:34 2be645d fix: include leaf core files in port status (#5790) Previously we only recorded the status of files if they appeared in the dependency graph; we should therefore ensure that every file mentioned in the header has a node in the graph. This also does away with the `lean_core` nonsense, as this just makes canonization harder. Upon testing this doesn't actually seem to make any difference, but it still seems like the right thing to do. ESTIMATED CHANGES Modified scripts/make_port_status.py 2023-07-10 12:17:32 1e37d20 fix: fix wrong namespace for finite_iff_bdd lemmas (#5783) This fixes an issue with my earlier PR adding three lemmas about finiteness/boundedness, which were incorrectly defined in the `Finset` namespace rather than `Set`. ESTIMATED CHANGES Modified Mathlib/Order/LocallyFinite.lean - theorem Finset.finite_iff_bddAbove - theorem Finset.finite_iff_bddBelow - theorem Finset.finite_iff_bddBelow_bddAbove + theorem Set.finite_iff_bddAbove + theorem Set.finite_iff_bddBelow + theorem Set.finite_iff_bddBelow_bddAbove 2023-07-10 12:17:31 ea5be10 feat: add lemmas about discrete topology (#5777) * Use section variables. * Add `closure_discrete`, `dense_discrete`, `denseRange_discrete`, and `discreteTopology_iff_forall_isClosed`. ESTIMATED CHANGES Modified Mathlib/Topology/Order.lean + theorem closure_discrete +/- theorem continuous_of_discreteTopology + theorem denseRange_discrete + theorem dense_discrete + theorem discreteTopology_iff_forall_isClosed +/- theorem isClosed_discrete +/- theorem isOpen_discrete +/- theorem mem_nhds_discrete 2023-07-10 11:07:08 eaa216e chore: forward-port leanprover-community/mathlib#19156 (#5793) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Preadditive/Biproducts.lean 2023-07-10 11:07:06 507d89c feat: simplification lemmas for Vector.map / Vector.mapAccumr (#5558) Primarily focused on folding nested applications of `mapAccumr` into a single `mapAccumr` ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Data/Vector/Basic.lean Added Mathlib/Data/Vector/MapLemmas.lean + theorem Vector.mapAccumr_bisim + theorem Vector.mapAccumr_bisim_tail + theorem Vector.mapAccumr_eq_map + theorem Vector.mapAccumr_eq_map_of_constant_state + theorem Vector.mapAccumr_eq_map_of_unused_state + theorem Vector.mapAccumr_map + theorem Vector.mapAccumr_mapAccumr + theorem Vector.mapAccumr_mapAccumr₂ + theorem Vector.mapAccumr_redundant_pair + theorem Vector.mapAccumr₂_bisim + theorem Vector.mapAccumr₂_bisim_tail + theorem Vector.mapAccumr₂_comm + theorem Vector.mapAccumr₂_eq_map₂ + theorem Vector.mapAccumr₂_eq_map₂_of_constant_state + theorem Vector.mapAccumr₂_eq_map₂_of_unused_state + theorem Vector.mapAccumr₂_flip + theorem Vector.mapAccumr₂_mapAccumr_left + theorem Vector.mapAccumr₂_mapAccumr_right + theorem Vector.mapAccumr₂_mapAccumr₂_left_left + theorem Vector.mapAccumr₂_mapAccumr₂_left_right + theorem Vector.mapAccumr₂_mapAccumr₂_right_left + theorem Vector.mapAccumr₂_mapAccumr₂_right_right + theorem Vector.mapAccumr₂_redundant_pair + theorem Vector.mapAccumr₂_unused_input_left + theorem Vector.mapAccumr₂_unused_input_right + theorem Vector.map_map + theorem Vector.map_mapAccumr + theorem Vector.map_map₂ + theorem Vector.map₂_comm + theorem Vector.map₂_flip + theorem Vector.map₂_map_left + theorem Vector.map₂_map_right Modified Mathlib/Data/Vector/Snoc.lean 2023-07-10 10:56:16 ddfe2a5 feat: port Data.Fintype.Array (#5792) The dashboard says > port, but completely rewrite in terms of the new array However, the new `Array T` isn't finite like `array n T` was, so the rewrite amounts to just deleting everything in the file. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Data/Fintype/Array.lean 2023-07-10 06:57:29 278a8fe feat(NumberTheory/Padics/PadicVal): padicValNat_factorial_mul (#5780) ESTIMATED CHANGES Modified Mathlib/NumberTheory/Padics/PadicVal.lean + theorem padicValNat_factorial_mul 2023-07-10 06:57:28 763f850 fix: incorrect module name in source header (#5773) As a result this did not show as ported on the dashboard ESTIMATED CHANGES Modified Mathlib/Init/Data/List/Instances.lean 2023-07-10 06:57:26 71a32bf feat: port Analysis.Normed.Group.SemiNormedGroup.Completion (#5697) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/Normed/Group/SemiNormedGroupCat/Completion.lean + def SemiNormedGroupCat.completion.incl + def SemiNormedGroupCat.completion.lift + theorem SemiNormedGroupCat.completion.lift_comp_incl + theorem SemiNormedGroupCat.completion.lift_unique + def SemiNormedGroupCat.completion.mapHom + theorem SemiNormedGroupCat.completion.map_normNoninc + theorem SemiNormedGroupCat.completion.map_zero + theorem SemiNormedGroupCat.completion.norm_incl_eq + def SemiNormedGroupCat.completion 2023-07-10 06:57:25 75ae883 feat: port Archive.Imo.Imo2005Q4 (#5094) ESTIMATED CHANGES Modified Archive.lean Added Archive/Imo/Imo2005Q4.lean + def IMO2005Q4.a + theorem IMO2005Q4.find_specified_factor + theorem imo2005_q4 2023-07-10 05:24:40 02ea90a feat: `lake exe graph`, as replacement for `leanproject import-graph` (#5513) Example usage: ``` lake exe graph --from Mathlib.Topology.Constructions --to Mathlib/Topology/Homotopy/Contractible.lean --reduce import_graph.pdf ``` producing - [import_graph.pdf](https://github.com/leanprover-community/mathlib4/files/11877278/import_graph.pdf) Current features: * supports `--to` and `--from` to select a slice of the full import graph * accepts either module names or file names * supports `--reduce` to perform transitive reduction * output to `.dot` files, or if you have graphviz installed output to any supported format (e.g. `.pdf` as above). Still missing: * `--show-unused` (although all the machinery is now in place to do this) * `--exclude-tactics` ESTIMATED CHANGES Added ImportGraph/Main.lean + def asDotGraph + def graph + def importGraphCLI + def main Modified Mathlib.lean Added Mathlib/Lean/IO/Process.lean + def IO.Process.runCmdWithInput' + def IO.Process.runCmdWithInput Modified Mathlib/Util/Imports.lean + def Lean.NameMap.dependenciesOf + def Lean.NameMap.transitiveReduction Modified lake-manifest.json Modified lakefile.lean 2023-07-10 04:23:28 888c409 feat: port RingTheory.Etale (#5781) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/RingTheory/Etale.lean + theorem Algebra.FormallyEtale.comp + theorem Algebra.FormallyEtale.iff_unramified_and_smooth + theorem Algebra.FormallyEtale.localization_base + theorem Algebra.FormallyEtale.localization_map + theorem Algebra.FormallyEtale.of_equiv + theorem Algebra.FormallyEtale.of_isLocalization + theorem Algebra.FormallyEtale.of_unramified_and_smooth + theorem Algebra.FormallySmooth.comp + theorem Algebra.FormallySmooth.comp_lift + theorem Algebra.FormallySmooth.comp_liftOfSurjective + theorem Algebra.FormallySmooth.exists_lift + theorem Algebra.FormallySmooth.iff_split_surjection + theorem Algebra.FormallySmooth.liftOfSurjective_apply + theorem Algebra.FormallySmooth.localization_base + theorem Algebra.FormallySmooth.localization_map + theorem Algebra.FormallySmooth.mk_lift + theorem Algebra.FormallySmooth.of_equiv + theorem Algebra.FormallySmooth.of_isLocalization + theorem Algebra.FormallySmooth.of_split + theorem Algebra.FormallyUnramified.comp + theorem Algebra.FormallyUnramified.ext' + theorem Algebra.FormallyUnramified.ext + theorem Algebra.FormallyUnramified.iff_subsingleton_kaehlerDifferential + theorem Algebra.FormallyUnramified.lift_unique' + theorem Algebra.FormallyUnramified.lift_unique + theorem Algebra.FormallyUnramified.lift_unique_of_ringHom + theorem Algebra.FormallyUnramified.localization_base + theorem Algebra.FormallyUnramified.localization_map + theorem Algebra.FormallyUnramified.of_comp + theorem Algebra.FormallyUnramified.of_equiv + theorem Algebra.FormallyUnramified.of_isLocalization Modified Mathlib/RingTheory/Ideal/Cotangent.lean + theorem AlgHom.ker_kerSquareLift - theorem AlgHom.ker_ker_sqare_lift 2023-07-09 10:54:03 d2aa4e1 feat: add lemmas about `LocalEquiv.pi` (#5779) ESTIMATED CHANGES Modified Mathlib/Logic/Equiv/LocalEquiv.lean + theorem LocalEquiv.pi_refl + theorem LocalEquiv.pi_symm + theorem LocalEquiv.pi_symm_apply + theorem LocalEquiv.pi_trans 2023-07-09 09:20:04 9a2d40a fix: make `lift_lets` not descend into proofs or `let`-less subexpressions (#5772) This helps keep `lift_lets` from unnecessarily doing deep recursion on deep expressions. Whether to descend into proofs is put behind a configuration option. ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/CliffordAlgebra/EvenEquiv.lean Modified Mathlib/Tactic/LiftLets.lean + structure Lean.Expr.LiftLetsConfig +/- def Lean.Expr.liftLets Modified test/LiftLets.lean 2023-07-09 00:37:09 2d62a69 fix: norm_num extension for Nat.pow (#5740) Alternative to leanprover/lean4#2310. The original implementation of the pow extension would force a `Nat.pow` application by defeq, but this should only be done for kernel-approved definitions and `Nat.pow` is not one of them. Rather than adding more things to the kernel, we can implement an efficient pow implementation by binary recursion, using the clauses: * `a ^ (2*b) = a^b * a^b` * `a ^ (2*b + 1) = a^b * a^b * a` ESTIMATED CHANGES Modified Mathlib/Tactic/NormNum/Basic.lean + theorem Mathlib.Meta.NormNum.IsNatPowT.bit0 + theorem Mathlib.Meta.NormNum.IsNatPowT.bit1 + theorem Mathlib.Meta.NormNum.IsNatPowT.run + theorem Mathlib.Meta.NormNum.IsNatPowT.trans + structure Mathlib.Meta.NormNum.IsNatPowT + theorem Mathlib.Meta.NormNum.intPow_negOfNat_bit0 + theorem Mathlib.Meta.NormNum.intPow_negOfNat_bit1 + theorem Mathlib.Meta.NormNum.intPow_ofNat + theorem Mathlib.Meta.NormNum.natPow_one + theorem Mathlib.Meta.NormNum.natPow_zero + theorem Mathlib.Meta.NormNum.one_natPow + theorem Mathlib.Meta.NormNum.zero_natPow Modified Mathlib/Util/Qq.lean + theorem Qq.QE.rfl Modified test/norm_num.lean 2023-07-08 23:27:26 617fa4c feat(Mathlib/Data/Set/Image.lean): remove simp attribute of Set.preim… (#5764) …age_iterate_eq The simp attribute of the theorem Set.preimage_iterate_eq is (apparently) currently not used in the library, and causes unwanted behaviour when manipulating preimages of subsets. See the discussion on Zulip: https://leanprover.zulipchat.com/#narrow/stream/113488-general/topic/Use.20of.20Set.2Epreimage_iterate_eq ESTIMATED CHANGES Modified Mathlib/Data/Set/Image.lean 2023-07-08 16:04:48 a3b66ec feat: port RingTheory.Kaehler (#4668) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/RingTheory/Ideal/Cotangent.lean Added Mathlib/RingTheory/Kaehler.lean + def Derivation.compAlgebraMap + def Derivation.liftKaehlerDifferential + theorem Derivation.liftKaehlerDifferential_D + theorem Derivation.liftKaehlerDifferential_apply + theorem Derivation.liftKaehlerDifferential_comp + theorem Derivation.liftKaehlerDifferential_comp_D + theorem Derivation.liftKaehlerDifferential_unique + def Derivation.tensorProductTo + theorem Derivation.tensorProductTo_mul + theorem Derivation.tensorProductTo_tmul + def KaehlerDifferential.D + def KaehlerDifferential.DLinearMap + theorem KaehlerDifferential.DLinearMap_apply + theorem KaehlerDifferential.D_apply + theorem KaehlerDifferential.D_tensorProductTo + theorem KaehlerDifferential.End_equiv_aux + theorem KaehlerDifferential.derivationQuotKerTotal_apply + theorem KaehlerDifferential.derivationQuotKerTotal_lift_comp_total + def KaehlerDifferential.endEquivAuxEquiv + def KaehlerDifferential.fromIdeal + theorem KaehlerDifferential.kerTotal_eq + theorem KaehlerDifferential.kerTotal_map + theorem KaehlerDifferential.kerTotal_mkQ_single_add + theorem KaehlerDifferential.kerTotal_mkQ_single_algebraMap + theorem KaehlerDifferential.kerTotal_mkQ_single_algebraMap_one + theorem KaehlerDifferential.kerTotal_mkQ_single_mul + theorem KaehlerDifferential.kerTotal_mkQ_single_smul + def KaehlerDifferential.linearMapEquivDerivation + def KaehlerDifferential.map + theorem KaehlerDifferential.mapBaseChange_tmul + theorem KaehlerDifferential.map_D + theorem KaehlerDifferential.map_compDer + theorem KaehlerDifferential.map_surjective_of_surjective + theorem KaehlerDifferential.one_smul_sub_smul_one_mem_ideal + theorem KaehlerDifferential.quotKerTotalEquiv_symm_comp_D + def KaehlerDifferential.quotientCotangentIdeal + def KaehlerDifferential.quotientCotangentIdealRingEquiv + theorem KaehlerDifferential.span_range_derivation + theorem KaehlerDifferential.span_range_eq_ideal + theorem KaehlerDifferential.submodule_span_range_eq_ideal + theorem KaehlerDifferential.tensorProductTo_surjective + theorem KaehlerDifferential.total_surjective + def KaehlerDifferential 2023-07-08 15:27:19 adca8e2 feat: define `HasCountableSeparatingOn` (#5675) - Define a typeclass saying that a countable family of sets satisfying a given predicate separate points of a given set. - Provide instances for open and closed sets in a T₀ space with second countable topology and for measurable sets in case of a countably generated σ-algebra. See [Zulip](https://leanprover.zulipchat.com/#narrow/stream/116395-maths/topic/ae.20eq.20of.20preimages) for motivation. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/MeasureTheory/Constructions/BorelSpace/Basic.lean Modified Mathlib/MeasureTheory/MeasurableSpace.lean Modified Mathlib/MeasureTheory/MeasurableSpaceDef.lean + theorem MeasurableSpace.forall_generateFrom_mem_iff_mem_iff Added Mathlib/Order/Filter/CountableSeparatingOn.lean + theorem Filter.EventuallyEq.of_eventually_mem_of_forall_separating_mem_iff + theorem Filter.EventuallyEq.of_eventually_mem_of_forall_separating_preimage + theorem Filter.EventuallyEq.of_forall_separating_mem_iff + theorem Filter.EventuallyEq.of_forall_separating_preimage + theorem Filter.exists_eventuallyEq_const_of_eventually_mem_of_forall_separating + theorem Filter.exists_eventuallyEq_const_of_forall_separating + theorem Filter.exists_mem_eventuallyEq_const_of_eventually_mem_of_forall_separating + theorem Filter.exists_mem_singleton_mem_of_mem_of_nonempty_of_forall_separating + theorem Filter.exists_singleton_mem_of_forall_separating + theorem Filter.exists_singleton_mem_of_mem_of_forall_separating + theorem Filter.exists_subset_subsingleton_mem_of_forall_separating + theorem Filter.exists_subsingleton_mem_of_forall_separating + theorem HasCountableSeparatingOn.mono + theorem HasCountableSeparatingOn.of_subtype + theorem exists_countable_separating + theorem exists_nonempty_countable_separating + theorem exists_seq_separating Added Mathlib/Topology/CountableSeparatingOn.lean 2023-07-08 12:12:23 ea84670 feat: continuity? (#5760) Add the `continuity?` variant to show the proof script aesop used ESTIMATED CHANGES Modified Mathlib/Tactic/Continuity.lean 2023-07-08 11:26:06 59623b0 feat: API about Small modules (#5769) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Logic/Small/Module.lean + def algEquivShrink + def linearEquivShrink 2023-07-08 11:26:05 c706e41 chore: fix names and skips in `AlgebraicGeometry.Morphisms.Basic` (#5765) ESTIMATED CHANGES Modified Mathlib/AlgebraicGeometry/Morphisms/Basic.lean 2023-07-08 10:21:04 5f29b23 doc: fix a description about HashMap/RBMap (#5694) From source code, the code seems like to extend `HashMap` and `RBSet`, not `RBMap`. ESTIMATED CHANGES Modified Mathlib/Data/HashMap.lean 2023-07-08 10:10:47 e7ea184 Update install_macos.sh (#5684) `brew install elan-init` does the same as `brew install elan` but without the warning that it's not the cask for *elan* the annotation tool for audio and video recordings. ESTIMATED CHANGES Modified scripts/install_macos.sh 2023-07-08 09:58:08 508cf50 feat: port LinearAlgebra.CliffordAlgebra.EvenEquiv (#5600) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/LinearAlgebra/CliffordAlgebra/EvenEquiv.lean + def CliffordAlgebra.EquivEven.Q' + theorem CliffordAlgebra.EquivEven.Q'_apply + def CliffordAlgebra.EquivEven.e0 + theorem CliffordAlgebra.EquivEven.e0_mul_e0 + theorem CliffordAlgebra.EquivEven.e0_mul_v_mul_e0 + theorem CliffordAlgebra.EquivEven.involute_e0 + theorem CliffordAlgebra.EquivEven.involute_v + theorem CliffordAlgebra.EquivEven.neg_e0_mul_v + theorem CliffordAlgebra.EquivEven.neg_v_mul_e0 + theorem CliffordAlgebra.EquivEven.reverse_e0 + theorem CliffordAlgebra.EquivEven.reverse_v + def CliffordAlgebra.EquivEven.v + theorem CliffordAlgebra.EquivEven.v_sq_scalar + theorem CliffordAlgebra.EquivEven.ι_eq_v_add_smul_e0 + theorem CliffordAlgebra.coe_toEven_reverse_involute + def CliffordAlgebra.equivEven + def CliffordAlgebra.evenEquivEvenNeg + def CliffordAlgebra.evenToNeg + theorem CliffordAlgebra.evenToNeg_comp_evenToNeg + theorem CliffordAlgebra.evenToNeg_ι + def CliffordAlgebra.ofEven + theorem CliffordAlgebra.ofEven_comp_toEven + theorem CliffordAlgebra.ofEven_ι + def CliffordAlgebra.toEven + theorem CliffordAlgebra.toEven_comp_ofEven + theorem CliffordAlgebra.toEven_ι 2023-07-08 04:19:26 70f24ee feat: port Geometry.Manifold.Algebra.LeftInvariantDerivation (#5665) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Geometry/Manifold/Algebra/LeftInvariantDerivation.lean + def LeftInvariantDerivation.coeFnAddMonoidHom + theorem LeftInvariantDerivation.coe_add + theorem LeftInvariantDerivation.coe_derivation + theorem LeftInvariantDerivation.coe_injective + theorem LeftInvariantDerivation.coe_neg + theorem LeftInvariantDerivation.coe_smul + theorem LeftInvariantDerivation.coe_sub + theorem LeftInvariantDerivation.coe_zero + theorem LeftInvariantDerivation.commutator_apply + theorem LeftInvariantDerivation.commutator_coe_derivation + theorem LeftInvariantDerivation.comp_L + def LeftInvariantDerivation.evalAt + theorem LeftInvariantDerivation.evalAt_apply + theorem LeftInvariantDerivation.evalAt_coe + theorem LeftInvariantDerivation.evalAt_mul + theorem LeftInvariantDerivation.ext + theorem LeftInvariantDerivation.left_invariant' + theorem LeftInvariantDerivation.left_invariant + theorem LeftInvariantDerivation.leibniz + theorem LeftInvariantDerivation.lift_add + theorem LeftInvariantDerivation.lift_smul + theorem LeftInvariantDerivation.lift_zero + theorem LeftInvariantDerivation.toDerivation_injective + theorem LeftInvariantDerivation.toFun_eq_coe + structure LeftInvariantDerivation Modified Mathlib/RingTheory/Derivation/Basic.lean 2023-07-08 03:58:05 be1b069 feat: port AlgebraicGeometry.ProjectiveSpectrum.Scheme (#5767) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/AlgebraicGeometry/ProjectiveSpectrum/Scheme.lean + theorem AlgebraicGeometry.ProjIsoSpecTopComponent.FromSpec.carrier.add_mem + def AlgebraicGeometry.ProjIsoSpecTopComponent.FromSpec.carrier.asHomogeneousIdeal + theorem AlgebraicGeometry.ProjIsoSpecTopComponent.FromSpec.carrier.asIdeal.homogeneous + theorem AlgebraicGeometry.ProjIsoSpecTopComponent.FromSpec.carrier.asIdeal.ne_top + theorem AlgebraicGeometry.ProjIsoSpecTopComponent.FromSpec.carrier.asIdeal.prime + def AlgebraicGeometry.ProjIsoSpecTopComponent.FromSpec.carrier.asIdeal + theorem AlgebraicGeometry.ProjIsoSpecTopComponent.FromSpec.carrier.denom_not_mem + theorem AlgebraicGeometry.ProjIsoSpecTopComponent.FromSpec.carrier.relevant + theorem AlgebraicGeometry.ProjIsoSpecTopComponent.FromSpec.carrier.smul_mem + theorem AlgebraicGeometry.ProjIsoSpecTopComponent.FromSpec.carrier.zero_mem + def AlgebraicGeometry.ProjIsoSpecTopComponent.FromSpec.carrier + theorem AlgebraicGeometry.ProjIsoSpecTopComponent.FromSpec.mem_carrier_iff' + theorem AlgebraicGeometry.ProjIsoSpecTopComponent.FromSpec.mem_carrier_iff + def AlgebraicGeometry.ProjIsoSpecTopComponent.FromSpec.toFun + theorem AlgebraicGeometry.ProjIsoSpecTopComponent.ToSpec.MemCarrier.clear_denominator' + theorem AlgebraicGeometry.ProjIsoSpecTopComponent.ToSpec.MemCarrier.clear_denominator + def AlgebraicGeometry.ProjIsoSpecTopComponent.ToSpec.carrier + theorem AlgebraicGeometry.ProjIsoSpecTopComponent.ToSpec.carrier_ne_top + theorem AlgebraicGeometry.ProjIsoSpecTopComponent.ToSpec.disjoint + theorem AlgebraicGeometry.ProjIsoSpecTopComponent.ToSpec.mem_carrier_iff + theorem AlgebraicGeometry.ProjIsoSpecTopComponent.ToSpec.preimage_eq + def AlgebraicGeometry.ProjIsoSpecTopComponent.ToSpec.toFun + def AlgebraicGeometry.ProjIsoSpecTopComponent.toSpec 2023-07-07 17:05:24 b07960c feat: port ModelTheory.Fraisse (#4565) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/ModelTheory/DirectLimit.lean - theorem FirstOrder.Language.DirectLimit.cG + theorem FirstOrder.Language.DirectLimit.cg Added Mathlib/ModelTheory/Fraisse.lean + def FirstOrder.Language.Amalgamation + theorem FirstOrder.Language.Embedding.age_subset_age + theorem FirstOrder.Language.Equiv.age_eq_age + theorem FirstOrder.Language.Hereditary.is_equiv_invariant_of_fG + def FirstOrder.Language.Hereditary + theorem FirstOrder.Language.IsFraisseLimit.isFraisse + structure FirstOrder.Language.IsFraisseLimit + theorem FirstOrder.Language.IsUltrahomogeneous.age_isFraisse + theorem FirstOrder.Language.IsUltrahomogeneous.amalgamation_age + def FirstOrder.Language.IsUltrahomogeneous + def FirstOrder.Language.JointEmbedding + theorem FirstOrder.Language.Structure.FG.mem_age_of_equiv + theorem FirstOrder.Language.age.countable_quotient + theorem FirstOrder.Language.age.hereditary + theorem FirstOrder.Language.age.is_equiv_invariant + theorem FirstOrder.Language.age.jointEmbedding + theorem FirstOrder.Language.age.nonempty + def FirstOrder.Language.age + theorem FirstOrder.Language.age_directLimit + theorem FirstOrder.Language.exists_cg_is_age_of + theorem FirstOrder.Language.exists_countable_is_age_of_iff 2023-07-07 14:58:32 88e1297 fix: `at` notation for ProjectiveSpectrum.StructureSheaf (#5758) Switches to `notation3` and eliminates dot notation so it can generate a pretty printer. ESTIMATED CHANGES Modified Mathlib/AlgebraicGeometry/ProjectiveSpectrum/StructureSheaf.lean 2023-07-07 13:47:49 38b0bb0 feat: port AlgebraicTopology.FundamentalGroupoid.SimplyConnected (#5759) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/AlgebraicTopology/FundamentalGroupoid/SimplyConnected.lean + theorem SimplyConnectedSpace.paths_homotopic + theorem simply_connected_def + theorem simply_connected_iff_paths_homotopic' + theorem simply_connected_iff_paths_homotopic + theorem simply_connected_iff_unique_homotopic 2023-07-07 11:12:19 e5bc438 feat: port AlgebraicTopology.FundamentalGroupoid.InducedMaps (#5756) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/AlgebraicTopology/FundamentalGroupoid/InducedMaps.lean + theorem ContinuousMap.Homotopy.apply_one_path + theorem ContinuousMap.Homotopy.apply_zero_path + def ContinuousMap.Homotopy.diagonalPath' + def ContinuousMap.Homotopy.diagonalPath + theorem ContinuousMap.Homotopy.eq_diag_path + theorem ContinuousMap.Homotopy.eq_path_of_eq_image + theorem ContinuousMap.Homotopy.evalAt_eq + theorem ContinuousMap.Homotopy.hcast_def + theorem ContinuousMap.Homotopy.heq_path_of_eq_image + def ContinuousMap.Homotopy.uliftMap + theorem ContinuousMap.Homotopy.ulift_apply + def FundamentalGroupoidFunctor.equivOfHomotopyEquiv + def FundamentalGroupoidFunctor.homotopicMapsNatIso + def unitInterval.path01 + def unitInterval.uhpath01 + def unitInterval.upath01 Modified Mathlib/CategoryTheory/EqToHom.lean - theorem CategoryTheory.Functor.conj_eqToHom_iff_hEq + theorem CategoryTheory.Functor.conj_eqToHom_iff_heq - theorem CategoryTheory.Functor.map_comp_hEq' - theorem CategoryTheory.Functor.map_comp_hEq + theorem CategoryTheory.Functor.map_comp_heq' + theorem CategoryTheory.Functor.map_comp_heq - theorem CategoryTheory.Functor.postcomp_map_hEq' - theorem CategoryTheory.Functor.postcomp_map_hEq + theorem CategoryTheory.Functor.postcomp_map_heq' + theorem CategoryTheory.Functor.postcomp_map_heq - theorem CategoryTheory.Functor.precomp_map_hEq + theorem CategoryTheory.Functor.precomp_map_heq 2023-07-07 11:12:18 7e1b24f refactor(Init.Data.List.Instances): sync to Mathlib 3 (#5751) ESTIMATED CHANGES Modified Mathlib/Data/List/Basic.lean - theorem List.bind_assoc - theorem List.bind_singleton' - theorem List.bind_singleton - theorem List.map_eq_bind Modified Mathlib/Init/Data/List/Instances.lean + theorem List.bind_assoc + theorem List.bind_singleton' + theorem List.bind_singleton + theorem List.map_eq_bind 2023-07-07 10:02:45 c4bb14c fix: restore `Set.eqOn_singleton` (#5754) ESTIMATED CHANGES Modified Mathlib/Data/Set/Function.lean + theorem Set.eqOn_singleton 2023-07-07 10:02:44 0f6207a feat: using UnivLE to generalize universes in UniqueGluing (#5726) This is a test of the `UnivLE` proposal. The `UniqueGluing` file was one place where we couldn't forward port the universe generalisations made in mathlib3 in https://github.com/leanprover-community/mathlib/pull/19153. Diff relative to #5724 is https://github.com/leanprover-community/mathlib4/compare/UnivLE_types...UnivLE_UniqueGluing. ESTIMATED CHANGES Modified Mathlib/AlgebraicGeometry/Morphisms/QuasiCompact.lean Modified Mathlib/AlgebraicGeometry/Morphisms/QuasiSeparated.lean Modified Mathlib/Topology/Sheaves/LocalPredicate.lean Modified Mathlib/Topology/Sheaves/SheafCondition/UniqueGluing.lean +/- def TopCat.Presheaf.piOpensIsoSectionsFamily + theorem TopCat.Presheaf.piOpensIsoSectionsFamily_apply Modified Mathlib/Topology/Sheaves/SheafOfFunctions.lean 2023-07-07 06:10:51 caec998 feat: port Algebra.Category.Module.ChangeOfRings (#4300) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Category/ModuleCat/ChangeOfRings.lean + def CategoryTheory.ModuleCat.CoextendScalars.map' + theorem CategoryTheory.ModuleCat.CoextendScalars.map_apply + def CategoryTheory.ModuleCat.CoextendScalars.obj' + theorem CategoryTheory.ModuleCat.CoextendScalars.smul_apply' + theorem CategoryTheory.ModuleCat.CoextendScalars.smul_apply + def CategoryTheory.ModuleCat.ExtendRestrictScalarsAdj.Counit.map + def CategoryTheory.ModuleCat.ExtendRestrictScalarsAdj.HomEquiv.evalAt + def CategoryTheory.ModuleCat.ExtendRestrictScalarsAdj.HomEquiv.fromExtendScalars + def CategoryTheory.ModuleCat.ExtendRestrictScalarsAdj.HomEquiv.toRestrictScalars + def CategoryTheory.ModuleCat.ExtendRestrictScalarsAdj.Unit.map + def CategoryTheory.ModuleCat.ExtendRestrictScalarsAdj.counit + def CategoryTheory.ModuleCat.ExtendRestrictScalarsAdj.homEquiv + def CategoryTheory.ModuleCat.ExtendRestrictScalarsAdj.unit + def CategoryTheory.ModuleCat.ExtendScalars.map' + theorem CategoryTheory.ModuleCat.ExtendScalars.map'_comp + theorem CategoryTheory.ModuleCat.ExtendScalars.map'_id + theorem CategoryTheory.ModuleCat.ExtendScalars.map_tmul + def CategoryTheory.ModuleCat.ExtendScalars.obj' + def CategoryTheory.ModuleCat.RestrictScalars.map' + def CategoryTheory.ModuleCat.RestrictScalars.obj' + def CategoryTheory.ModuleCat.RestrictionCoextensionAdj.HomEquiv.fromRestriction + def CategoryTheory.ModuleCat.RestrictionCoextensionAdj.HomEquiv.toRestriction + def CategoryTheory.ModuleCat.RestrictionCoextensionAdj.app' + def CategoryTheory.ModuleCat.coextendScalars + def CategoryTheory.ModuleCat.extendRestrictScalarsAdj + def CategoryTheory.ModuleCat.extendScalars + def CategoryTheory.ModuleCat.restrictCoextendScalarsAdj + theorem CategoryTheory.ModuleCat.restrictScalars.map_apply + theorem CategoryTheory.ModuleCat.restrictScalars.smul_def' + theorem CategoryTheory.ModuleCat.restrictScalars.smul_def + def CategoryTheory.ModuleCat.restrictScalars 2023-07-07 05:32:56 811ee33 feat: port Algebra.Category.Algebra.Limits (#5716) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Category/AlgebraCat/Basic.lean Added Mathlib/Algebra/Category/AlgebraCat/Limits.lean + def AlgebraCat.HasLimits.limitCone + def AlgebraCat.HasLimits.limitConeIsLimit + theorem AlgebraCat.hasLimitsOfSize + def AlgebraCat.limitπAlgHom + def AlgebraCat.sectionsSubalgebra Modified Mathlib/Algebra/Category/ModuleCat/Limits.lean 2023-07-07 04:28:50 56112d4 feat: using UnivLE in constructing limits in `Type` (#5724) ESTIMATED CHANGES Modified Mathlib/Algebra/Category/GroupCat/Limits.lean Modified Mathlib/Algebra/Category/MonCat/Limits.lean - def MonCat.HasLimits.limitCone - def MonCat.HasLimits.limitConeIsLimit - def MonCat.limitπMonoidHom Modified Mathlib/CategoryTheory/Closed/Types.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Types.lean + theorem CategoryTheory.Limits.Types.UnivLE.productIso_hom_comp_eval + theorem CategoryTheory.Limits.Types.UnivLE.productIso_hom_comp_eval_apply + theorem CategoryTheory.Limits.Types.UnivLE.productIso_inv_comp_π +/- theorem CategoryTheory.Limits.Types.pi_lift_π_apply +/- theorem CategoryTheory.Limits.Types.pi_map_π_apply Modified Mathlib/CategoryTheory/Limits/Types.lean +/- theorem CategoryTheory.Limits.Types.Limit.lift_π_apply +/- theorem CategoryTheory.Limits.Types.Limit.map_π_apply +/- theorem CategoryTheory.Limits.Types.Limit.w_apply +/- theorem CategoryTheory.Limits.Types.Limit.π_mk + theorem CategoryTheory.Limits.Types.UnivLE.limitCone_pt_ext - def CategoryTheory.Limits.Types.isLimitEquivSections +/- theorem CategoryTheory.Limits.Types.isLimitEquivSections_apply +/- theorem CategoryTheory.Limits.Types.isLimitEquivSections_symm_apply - def CategoryTheory.Limits.Types.limitCone - def CategoryTheory.Limits.Types.limitConeIsLimit +/- theorem CategoryTheory.Limits.Types.limitEquivSections_apply +/- theorem CategoryTheory.Limits.Types.limitEquivSections_symm_apply +/- theorem CategoryTheory.Limits.Types.limit_ext +/- theorem CategoryTheory.Limits.Types.limit_ext_iff Modified Mathlib/CategoryTheory/Sites/SheafOfTypes.lean Modified Mathlib/Logic/Small/Basic.lean + theorem Shrink.ext 2023-07-07 04:14:34 a9228bf feat: lemmas about inversion (#5667) ESTIMATED CHANGES Modified Mathlib/Geometry/Euclidean/Inversion.lean + theorem EuclideanGeometry.center_eq_inversion' + theorem EuclideanGeometry.center_eq_inversion + theorem EuclideanGeometry.dist_inversion_mul_dist_center_eq + theorem EuclideanGeometry.image_inversion_perpBisector + theorem EuclideanGeometry.image_inversion_sphere_dist_center + theorem EuclideanGeometry.inversion_dist_center' + theorem EuclideanGeometry.inversion_eq_center' + theorem EuclideanGeometry.inversion_eq_center + theorem EuclideanGeometry.inversion_eq_lineMap + theorem EuclideanGeometry.inversion_mem_perpBisector_inversion_iff' + theorem EuclideanGeometry.inversion_mem_perpBisector_inversion_iff + theorem EuclideanGeometry.inversion_mul + theorem EuclideanGeometry.inversion_zero_radius + theorem EuclideanGeometry.preimage_inversion_perpBisector + theorem EuclideanGeometry.preimage_inversion_perpBisector_inversion + theorem EuclideanGeometry.preimage_inversion_sphere_dist_center 2023-07-07 04:14:33 be46ce4 feat: port AlgebraicGeometry.ProjectiveSpectrum.StructureSheaf (#5224) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/AlgebraicGeometry/ProjectiveSpectrum/StructureSheaf.lean + theorem AlgebraicGeometry.HomogeneousLocalization.mem_basicOpen + def AlgebraicGeometry.Proj.stalkIso' + def AlgebraicGeometry.Proj.toLocallyRingedSpace + def AlgebraicGeometry.Proj.toSheafedSpace + def AlgebraicGeometry.ProjectiveSpectrum.Proj.structureSheaf + def AlgebraicGeometry.ProjectiveSpectrum.StructureSheaf.IsFraction + theorem AlgebraicGeometry.ProjectiveSpectrum.StructureSheaf.SectionSubring.addMem' + theorem AlgebraicGeometry.ProjectiveSpectrum.StructureSheaf.SectionSubring.mulMem' + theorem AlgebraicGeometry.ProjectiveSpectrum.StructureSheaf.SectionSubring.negMem' + theorem AlgebraicGeometry.ProjectiveSpectrum.StructureSheaf.SectionSubring.oneMem' + theorem AlgebraicGeometry.ProjectiveSpectrum.StructureSheaf.SectionSubring.zeroMem' + def AlgebraicGeometry.ProjectiveSpectrum.StructureSheaf.isFractionPrelocal + def AlgebraicGeometry.ProjectiveSpectrum.StructureSheaf.isLocallyFraction + def AlgebraicGeometry.ProjectiveSpectrum.StructureSheaf.sectionsSubring + def AlgebraicGeometry.ProjectiveSpectrum.StructureSheaf.structurePresheafCompForget + def AlgebraicGeometry.ProjectiveSpectrum.StructureSheaf.structurePresheafInCommRing + def AlgebraicGeometry.ProjectiveSpectrum.StructureSheaf.structureSheafInType + theorem AlgebraicGeometry.germ_comp_stalkToFiberRingHom + def AlgebraicGeometry.homogeneousLocalizationToStalk + def AlgebraicGeometry.openToLocalization + theorem AlgebraicGeometry.res_apply + def AlgebraicGeometry.sectionInBasicOpen + def AlgebraicGeometry.stalkToFiberRingHom + theorem AlgebraicGeometry.stalkToFiberRingHom_germ' + theorem AlgebraicGeometry.stalkToFiberRingHom_germ 2023-07-07 04:14:32 c6660d9 feat: port CategoryTheory.Adjunction.Lifting (#4414) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Adjunction/Lifting.lean + def CategoryTheory.LiftAdjoint.counitCoequalises + def CategoryTheory.LiftAdjoint.otherMap 2023-07-07 04:00:57 0726e5e feat: port AlgebraicTopology.FundamentalGroupoid.Product (#5696) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/AlgebraicTopology/FundamentalGroupoid/Product.lean + def FundamentalGroupoidFunctor.coneDiscreteComp + theorem FundamentalGroupoidFunctor.coneDiscreteComp_obj_mapCone + def FundamentalGroupoidFunctor.piIso + def FundamentalGroupoidFunctor.piToPiTop + def FundamentalGroupoidFunctor.piTopToPiCone + def FundamentalGroupoidFunctor.preservesProduct + def FundamentalGroupoidFunctor.prodIso + def FundamentalGroupoidFunctor.prodToProdTop + theorem FundamentalGroupoidFunctor.prodToProdTop_map + def FundamentalGroupoidFunctor.proj + def FundamentalGroupoidFunctor.projLeft + theorem FundamentalGroupoidFunctor.projLeft_map + def FundamentalGroupoidFunctor.projRight + theorem FundamentalGroupoidFunctor.projRight_map + theorem FundamentalGroupoidFunctor.proj_map 2023-07-07 03:40:50 5373e0b chore: rename instances related to `Unitization` (#5741) ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/Unitization.lean 2023-07-07 02:56:05 b6879ac feat(Data/Matrix/Notation): relax `Semiring` to `NonUnitalNonAssocSemiring` (#5092) This came up in a real example. I was using Lean to make sure I had the right formulae for Strassen's algorithm. The following example was only able to succeed with (some of) these changes: ```lean import Mathlib.Data.Matrix.Notation import Mathlib.Tactic.NoncommRing example (R : Type _) [NonUnitalNonAssocRing R] (a₁₁ a₁₂ a₂₁ a₂₂ b₁₁ b₁₂ b₂₁ b₂₂ : R) : let m₁ := (a₁₁ + a₂₂) * (b₁₁ + b₂₂) let m₂ := (a₂₁ + a₂₂) * b₁₁ let m₃ := a₁₁ * (b₁₂ - b₂₂) let m₄ := a₂₂ * (b₂₁ - b₁₁) let m₅ := (a₁₁ + a₁₂) * b₂₂ let m₆ := (a₂₁ - a₁₁) * (b₁₁ + b₁₂) let m₇ := (a₁₂ - a₂₂) * (b₂₁ + b₂₂) !![a₁₁, a₁₂; a₂₁, a₂₂] * !![b₁₁, b₁₂; b₂₁, b₂₂] = !![m₁ + m₄ - m₅ + m₇, m₃ + m₅; m₂ + m₄, m₁ - m₂ + m₃ + m₆] := by ext i j fin_cases i <;> fin_cases j <;> simp <;> noncomm_ring ``` ESTIMATED CHANGES Modified Mathlib/Data/Matrix/Notation.lean 2023-07-06 20:10:33 ec47143 chore: rename Analysis.NormedSpace.Star.Mul to Unitization (#5743) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Analysis/NormedSpace/Star/Multiplier.lean Renamed Mathlib/Analysis/NormedSpace/Star/Mul.lean to Mathlib/Analysis/NormedSpace/Star/Unitization.lean 2023-07-06 18:35:02 a691787 feat: define continuous alternating maps (#5678) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/LinearAlgebra/Alternating.lean + theorem AlternatingMap.mk_zero Added Mathlib/Topology/Algebra/Module/Alternating.lean + theorem ContinuousAlternatingMap.add_apply + def ContinuousAlternatingMap.applyAddHom + def ContinuousAlternatingMap.codRestrict + theorem ContinuousAlternatingMap.coe_add + theorem ContinuousAlternatingMap.coe_continuous + theorem ContinuousAlternatingMap.coe_mk + theorem ContinuousAlternatingMap.coe_neg + theorem ContinuousAlternatingMap.coe_pi + theorem ContinuousAlternatingMap.coe_restrictScalars + theorem ContinuousAlternatingMap.coe_smul + theorem ContinuousAlternatingMap.coe_sub + theorem ContinuousAlternatingMap.coe_toAlternatingMap + theorem ContinuousAlternatingMap.coe_toContinuousMultilinearMap + theorem ContinuousAlternatingMap.coe_zero + def ContinuousAlternatingMap.compContinuousLinearMap + theorem ContinuousAlternatingMap.compContinuousLinearMap_apply + def ContinuousAlternatingMap.compContinuousLinearMapₗ + theorem ContinuousAlternatingMap.cons_add + theorem ContinuousAlternatingMap.cons_smul + def ContinuousAlternatingMap.constOfIsEmpty + theorem ContinuousAlternatingMap.constOfIsEmpty_toAlternatingMap + theorem ContinuousAlternatingMap.ext + theorem ContinuousAlternatingMap.ext_iff + theorem ContinuousAlternatingMap.map_add + theorem ContinuousAlternatingMap.map_add_univ + theorem ContinuousAlternatingMap.map_coord_zero + theorem ContinuousAlternatingMap.map_eq_zero_of_eq + theorem ContinuousAlternatingMap.map_eq_zero_of_not_injective + theorem ContinuousAlternatingMap.map_piecewise_add + theorem ContinuousAlternatingMap.map_piecewise_smul + theorem ContinuousAlternatingMap.map_smul + theorem ContinuousAlternatingMap.map_smul_univ + theorem ContinuousAlternatingMap.map_sub + theorem ContinuousAlternatingMap.map_sum + theorem ContinuousAlternatingMap.map_sum_finset + theorem ContinuousAlternatingMap.map_update_zero + theorem ContinuousAlternatingMap.map_zero + theorem ContinuousAlternatingMap.neg_apply + def ContinuousAlternatingMap.ofSubsingleton + theorem ContinuousAlternatingMap.ofSubsingleton_toAlternatingMap + def ContinuousAlternatingMap.pi + def ContinuousAlternatingMap.piEquiv + def ContinuousAlternatingMap.piLinearEquiv + theorem ContinuousAlternatingMap.pi_apply + def ContinuousAlternatingMap.prod + theorem ContinuousAlternatingMap.range_toAlternatingMap + theorem ContinuousAlternatingMap.range_toContinuousMultilinearMap + def ContinuousAlternatingMap.restrictScalars + def ContinuousAlternatingMap.smulRight + theorem ContinuousAlternatingMap.smul_apply + theorem ContinuousAlternatingMap.sub_apply + theorem ContinuousAlternatingMap.sum_apply + theorem ContinuousAlternatingMap.toAlternatingMap_add + theorem ContinuousAlternatingMap.toAlternatingMap_injective + theorem ContinuousAlternatingMap.toAlternatingMap_smul + theorem ContinuousAlternatingMap.toAlternatingMap_zero + def ContinuousAlternatingMap.toContinuousLinearMap + def ContinuousAlternatingMap.toContinuousMultilinearMapLinear + theorem ContinuousAlternatingMap.toContinuousMultilinearMap_add + theorem ContinuousAlternatingMap.toContinuousMultilinearMap_injective + theorem ContinuousAlternatingMap.toContinuousMultilinearMap_smul + theorem ContinuousAlternatingMap.toContinuousMultilinearMap_zero + def ContinuousAlternatingMap.toMultilinearAddHom + theorem ContinuousAlternatingMap.vecCons_add + theorem ContinuousAlternatingMap.vecCons_smul + structure ContinuousAlternatingMap + def ContinuousLinearEquiv.compContinuousAlternatingMap + theorem ContinuousLinearEquiv.compContinuousAlternatingMap_coe + def ContinuousLinearEquiv.continuousAlternatingMapComp + def ContinuousLinearEquiv.continuousAlternatingMapCongr + def ContinuousLinearMap.compContinuousAlternatingMap + theorem ContinuousLinearMap.compContinuousAlternatingMap_coe + def ContinuousLinearMap.compContinuousAlternatingMapₗ + def ContinuousMultilinearMap.alternatization + theorem ContinuousMultilinearMap.alternatization_apply_apply + theorem ContinuousMultilinearMap.alternatization_apply_toAlternatingMap 2023-07-06 17:25:55 0c08a8f style: `IsLawfulTraversable` -> `LawfulTraversable` (#5737) ESTIMATED CHANGES Modified Mathlib/Algebra/Free.lean Modified Mathlib/Control/Bitraversable/Basic.lean Modified Mathlib/Control/Bitraversable/Instances.lean Modified Mathlib/Control/Fold.lean Modified Mathlib/Control/Traversable/Basic.lean Modified Mathlib/Control/Traversable/Equiv.lean Modified Mathlib/Control/Traversable/Instances.lean Modified Mathlib/Control/Traversable/Lemmas.lean Modified Mathlib/Data/DList/Instances.lean Modified Mathlib/Data/LazyList/Basic.lean Modified Mathlib/Data/Multiset/Functor.lean Modified Mathlib/Data/Vector/Basic.lean Modified Mathlib/Logic/Equiv/Array.lean 2023-07-06 17:06:37 717bcc9 feat(Data/Nat/Squarefree): add coprime_of_squarefree_mul (#5669) Add a lemma stating that two natural numbers are coprime if their product is squarefree. ESTIMATED CHANGES Modified Mathlib/Data/Nat/Squarefree.lean + theorem Nat.coprime_of_squarefree_mul + theorem Nat.squarefree_mul_iff 2023-07-06 17:06:36 7f54ac4 feat: port LinearAlgebra.CliffordAlgebra.Contraction (#5467) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/LinearAlgebra/CliffordAlgebra/Contraction.lean + theorem CliffordAlgebra.changeForm.add_proof + theorem CliffordAlgebra.changeForm.associated_neg_proof + theorem CliffordAlgebra.changeForm.neg_proof + theorem CliffordAlgebra.changeForm.zero_proof + def CliffordAlgebra.changeForm + def CliffordAlgebra.changeFormAux + theorem CliffordAlgebra.changeFormAux_changeFormAux + def CliffordAlgebra.changeFormEquiv + theorem CliffordAlgebra.changeFormEquiv_symm + theorem CliffordAlgebra.changeForm_algebraMap + theorem CliffordAlgebra.changeForm_changeForm + theorem CliffordAlgebra.changeForm_comp_changeForm + theorem CliffordAlgebra.changeForm_contractLeft + theorem CliffordAlgebra.changeForm_one + theorem CliffordAlgebra.changeForm_self + theorem CliffordAlgebra.changeForm_self_apply + theorem CliffordAlgebra.changeForm_ι + theorem CliffordAlgebra.changeForm_ι_mul + theorem CliffordAlgebra.changeForm_ι_mul_ι + def CliffordAlgebra.contractLeft + def CliffordAlgebra.contractLeftAux + theorem CliffordAlgebra.contractLeftAux_contractLeftAux + theorem CliffordAlgebra.contractLeft_algebraMap + theorem CliffordAlgebra.contractLeft_algebraMap_mul + theorem CliffordAlgebra.contractLeft_comm + theorem CliffordAlgebra.contractLeft_contractLeft + theorem CliffordAlgebra.contractLeft_mul_algebraMap + theorem CliffordAlgebra.contractLeft_one + theorem CliffordAlgebra.contractLeft_ι + theorem CliffordAlgebra.contractLeft_ι_mul + def CliffordAlgebra.contractRight + theorem CliffordAlgebra.contractRight_algebraMap + theorem CliffordAlgebra.contractRight_algebraMap_mul + theorem CliffordAlgebra.contractRight_comm + theorem CliffordAlgebra.contractRight_contractRight + theorem CliffordAlgebra.contractRight_eq + theorem CliffordAlgebra.contractRight_mul_algebraMap + theorem CliffordAlgebra.contractRight_mul_ι + theorem CliffordAlgebra.contractRight_one + theorem CliffordAlgebra.contractRight_ι + def CliffordAlgebra.equivExterior 2023-07-06 15:47:02 a26c4ef feat: in a preconnected space, a (finite) disjoint cover of non-empty open/closed/clopen subsets contains at most one element. (#5677) ESTIMATED CHANGES Modified Mathlib/Data/Set/Lattice.lean + theorem Set.nonempty_of_nonempty_iUnion + theorem Set.nonempty_of_nonempty_iUnion_eq_univ Modified Mathlib/Topology/Connected.lean + theorem subsingleton_of_disjoint_isClopen + theorem subsingleton_of_disjoint_isClosed_iUnion_eq_univ + theorem subsingleton_of_disjoint_isOpen_iUnion_eq_univ 2023-07-06 15:47:00 ce6df01 feat: port Topology.VectorBundle.Hom (#4514) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Analysis/Convolution.lean Modified Mathlib/Topology/Algebra/Module/StrongTopology.lean Added Mathlib/Topology/VectorBundle/Hom.lean + def Bundle.ContinuousLinearMap.vectorPrebundle + def Pretrivialization.continuousLinearMap + def Pretrivialization.continuousLinearMapCoordChange + theorem Pretrivialization.continuousLinearMapCoordChange_apply + theorem Pretrivialization.continuousLinearMap_apply + theorem Pretrivialization.continuousLinearMap_symm_apply' + theorem Pretrivialization.continuousLinearMap_symm_apply + theorem Pretrivialization.continuousOn_continuousLinearMapCoordChange + theorem Trivialization.baseSet_continuousLinearMap + def Trivialization.continuousLinearMap + theorem Trivialization.continuousLinearMap_apply + theorem hom_trivializationAt_apply + theorem hom_trivializationAt_source + theorem hom_trivializationAt_target 2023-07-06 14:30:04 99ec98e refactor: make `pp_with_univ` be an attribute (#5633) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Limits/Creates.lean Modified Mathlib/CategoryTheory/Limits/Filtered.lean Modified Mathlib/CategoryTheory/Limits/HasLimits.lean Modified Mathlib/CategoryTheory/Limits/Preserves/Basic.lean Modified Mathlib/CategoryTheory/Types.lean Modified Mathlib/Logic/Small/Basic.lean Modified Mathlib/Logic/UnivLE.lean Modified Mathlib/SetTheory/Cardinal/Basic.lean Modified Mathlib/SetTheory/Ordinal/Basic.lean Modified Mathlib/Tactic/PPWithUniv.lean 2023-07-06 14:30:03 760b24b feat: `pp_dot` attribute to replace `pp_extended_field_notation` command (#5632) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Bicategory/NaturalTransformation.lean Modified Mathlib/CategoryTheory/Functor/FullyFaithful.lean Modified Mathlib/CategoryTheory/Iso.lean Modified Mathlib/CategoryTheory/Limits/Cones.lean Modified Mathlib/CategoryTheory/Limits/IsLimit.lean Modified Mathlib/CategoryTheory/NatIso.lean Modified Mathlib/CategoryTheory/NatTrans.lean Modified Mathlib/CategoryTheory/Opposites.lean Modified Mathlib/CategoryTheory/Sites/Sieves.lean Modified Mathlib/CategoryTheory/Types.lean Modified Mathlib/Combinatorics/Quiver/Basic.lean Modified Mathlib/Geometry/Manifold/Diffeomorph.lean Modified Mathlib/Logic/Equiv/Defs.lean Modified Mathlib/Tactic/ProjectionNotation.lean + def Mathlib.ProjectionNotation.mkExtendedFieldNotationUnexpander 2023-07-06 13:41:34 28d08e7 feat: port Analysis.Normed.Group.SemiNormedGroup.Kernels (#5085) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/Normed/Group/SemiNormedGroupCat/Kernels.lean + theorem SemiNormedGroupCat.ExplicitCoker.map_desc + def SemiNormedGroupCat.cokernelCocone + def SemiNormedGroupCat.cokernelLift + theorem SemiNormedGroupCat.comp_explicitCokernelπ + def SemiNormedGroupCat.explicitCokernel + def SemiNormedGroupCat.explicitCokernelDesc + theorem SemiNormedGroupCat.explicitCokernelDesc_comp_eq_desc + theorem SemiNormedGroupCat.explicitCokernelDesc_comp_eq_zero + theorem SemiNormedGroupCat.explicitCokernelDesc_normNoninc + theorem SemiNormedGroupCat.explicitCokernelDesc_norm_le + theorem SemiNormedGroupCat.explicitCokernelDesc_norm_le_of_norm_le + theorem SemiNormedGroupCat.explicitCokernelDesc_unique + theorem SemiNormedGroupCat.explicitCokernelDesc_zero + def SemiNormedGroupCat.explicitCokernelIso + theorem SemiNormedGroupCat.explicitCokernelIso_hom_desc + theorem SemiNormedGroupCat.explicitCokernelIso_hom_π + theorem SemiNormedGroupCat.explicitCokernelIso_inv_π + theorem SemiNormedGroupCat.explicitCokernel_hom_ext + def SemiNormedGroupCat.explicitCokernelπ + theorem SemiNormedGroupCat.explicitCokernelπ_apply_dom_eq_zero + theorem SemiNormedGroupCat.explicitCokernelπ_desc + theorem SemiNormedGroupCat.explicitCokernelπ_desc_apply + theorem SemiNormedGroupCat.explicitCokernelπ_surjective + def SemiNormedGroupCat.fork + def SemiNormedGroupCat.isColimitCokernelCocone + theorem SemiNormedGroupCat.isQuotient_explicitCokernelπ + theorem SemiNormedGroupCat.normNoninc_explicitCokernelπ + def SemiNormedGroupCat₁.cokernelCocone + def SemiNormedGroupCat₁.cokernelLift 2023-07-06 13:41:32 8793f09 feat: port LinearAlgebra.TensorAlgebra.ToTensorPower (#4876) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/LinearAlgebra/TensorAlgebra/ToTensorPower.lean + def TensorAlgebra.equivDirectSum + theorem TensorAlgebra.mk_reindex_cast + theorem TensorAlgebra.mk_reindex_fin_cast + def TensorAlgebra.ofDirectSum + theorem TensorAlgebra.ofDirectSum_comp_toDirectSum + theorem TensorAlgebra.ofDirectSum_of_tprod + theorem TensorAlgebra.ofDirectSum_toDirectSum + def TensorAlgebra.toDirectSum + theorem TensorAlgebra.toDirectSum_comp_ofDirectSum + theorem TensorAlgebra.toDirectSum_ofDirectSum + theorem TensorAlgebra.toDirectSum_tensorPower_tprod + theorem TensorAlgebra.toDirectSum_ι + theorem TensorPower.list_prod_gradedMonoid_mk_single + def TensorPower.toTensorAlgebra + theorem TensorPower.toTensorAlgebra_gMul + theorem TensorPower.toTensorAlgebra_gOne + theorem TensorPower.toTensorAlgebra_galgebra_toFun + theorem TensorPower.toTensorAlgebra_tprod 2023-07-06 12:09:25 e1889c3 feat(Data/List/TFAE): version of `forall_congr'` for TFAE (#5624) ESTIMATED CHANGES Modified Mathlib/Data/List/TFAE.lean + theorem List.exists_tfae + theorem List.forall_tfae 2023-07-06 11:36:58 457c50a feat: Facts about the coherent topology (#5695) We show several facts about effective epimorphic family and the coherent topology in precoherent categories. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Sites/Coherent.lean + theorem CategoryTheory.EffectiveEpiFamily.transitive_of_finite + theorem CategoryTheory.coherentTopology.isSheaf_yoneda_obj + theorem CategoryTheory.coherentTopology.isSubcanonical + theorem CategoryTheory.coherentTopology.mem_sieves_iff_hasEffectiveEpiFamily + theorem CategoryTheory.coherentTopology.mem_sieves_of_hasEffectiveEpiFamily Modified Mathlib/CategoryTheory/Sites/EffectiveEpimorphic.lean + def CategoryTheory.effectiveEpiFamilyStructId 2023-07-06 10:19:00 e28ad88 feat: ¬ UnivLE.{u+1, u} (#5739) Thanks to @kmill on [zulip](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/Universe.20inequalities/near/372570044). ESTIMATED CHANGES Modified Mathlib/Logic/Small/Basic.lean Modified Mathlib/Logic/UnivLE.lean 2023-07-06 09:30:16 93bf611 feat: define action of `Mᵈᵐᵃ` on `α →ₘ[μ] β` (#5693) See #5379 ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/MeasureTheory/Function/AEEqFun/DomAct.lean + theorem DomMulAct.mk_smul_mk_aeeqFun + theorem DomMulAct.smul_aeeqFun_aeeq Modified Mathlib/MeasureTheory/Function/StronglyMeasurable/Basic.lean + theorem MeasureTheory.AEStronglyMeasurable.comp_measurePreserving 2023-07-06 08:30:33 af0fb7b feat: miscellaneous lemmas about asymptotics (#5680) ESTIMATED CHANGES Modified Mathlib/Analysis/Asymptotics/Asymptotics.lean + theorem Asymptotics.IsBigO.nat_cast_atTop + theorem Asymptotics.IsLittleO.eventuallyLE + theorem Asymptotics.IsLittleO.nat_cast_atTop + theorem Asymptotics.isBigO_iff'' + theorem Asymptotics.isBigO_iff' Modified Mathlib/Analysis/Asymptotics/Theta.lean + theorem Asymptotics.IsTheta.add_isLittleO + theorem Asymptotics.IsTheta.isBigO + theorem Asymptotics.IsTheta.isBigO_symm Modified Mathlib/Order/Filter/Archimedean.lean + theorem Filter.Eventually.int_cast_atBot + theorem Filter.Eventually.int_cast_atTop + theorem Filter.Eventually.nat_cast_atTop + theorem Filter.Eventually.rat_cast_atBot + theorem Filter.Eventually.rat_cast_atTop Modified Mathlib/Order/Filter/AtTopBot.lean + theorem Filter.Tendsto.eventually_forall_ge_atTop + theorem Filter.Tendsto.eventually_forall_le_atBot 2023-07-06 08:16:06 af1edf0 feat: port Geometry.Manifold.VectorBundle.SmoothSection (#5736) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Geometry/Manifold/VectorBundle/SmoothSection.lean + def ContMDiffSection.coeAddHom + theorem ContMDiffSection.coeFn_mk + theorem ContMDiffSection.coe_add + theorem ContMDiffSection.coe_inj + theorem ContMDiffSection.coe_injective + theorem ContMDiffSection.coe_neg + theorem ContMDiffSection.coe_nsmul + theorem ContMDiffSection.coe_smul + theorem ContMDiffSection.coe_sub + theorem ContMDiffSection.coe_zero + theorem ContMDiffSection.coe_zsmul + theorem ContMDiffSection.ext + structure ContMDiffSection + def SmoothSection 2023-07-06 06:47:14 f4e4287 chore: rename Fin.castSucc to Fin.castSuccEmb (#5729) ESTIMATED CHANGES Modified Mathlib/Algebra/BigOperators/Fin.lean - theorem Fin.prod_univ_castSucc + theorem Fin.prod_univ_castSuccEmb Modified Mathlib/AlgebraicTopology/AlternatingFaceMapComplex.lean Modified Mathlib/AlgebraicTopology/DoldKan/Degeneracies.lean Modified Mathlib/AlgebraicTopology/DoldKan/Faces.lean Modified Mathlib/AlgebraicTopology/SimplexCategory.lean +/- theorem SimplexCategory.δ_comp_δ'' +/- theorem SimplexCategory.δ_comp_δ' +/- theorem SimplexCategory.δ_comp_δ_self' +/- theorem SimplexCategory.δ_comp_δ_self +/- theorem SimplexCategory.δ_comp_σ_of_gt +/- theorem SimplexCategory.δ_comp_σ_of_le +/- theorem SimplexCategory.δ_comp_σ_self' Modified Mathlib/AlgebraicTopology/SimplicialObject.lean +/- theorem CategoryTheory.CosimplicialObject.δ_comp_δ'' +/- theorem CategoryTheory.CosimplicialObject.δ_comp_δ' +/- theorem CategoryTheory.CosimplicialObject.δ_comp_δ_self' +/- theorem CategoryTheory.CosimplicialObject.δ_comp_σ_of_gt +/- theorem CategoryTheory.CosimplicialObject.δ_comp_σ_of_le +/- theorem CategoryTheory.CosimplicialObject.δ_comp_σ_self' +/- theorem CategoryTheory.CosimplicialObject.δ_comp_σ_self +/- theorem CategoryTheory.SimplicialObject.δ_comp_δ'' +/- theorem CategoryTheory.SimplicialObject.δ_comp_δ' +/- theorem CategoryTheory.SimplicialObject.δ_comp_δ_self' +/- theorem CategoryTheory.SimplicialObject.δ_comp_σ_of_gt +/- theorem CategoryTheory.SimplicialObject.δ_comp_σ_of_le +/- theorem CategoryTheory.SimplicialObject.δ_comp_σ_self' +/- theorem CategoryTheory.SimplicialObject.δ_comp_σ_self Modified Mathlib/Analysis/NormedSpace/Multilinear.lean Modified Mathlib/Analysis/SchwartzSpace.lean Modified Mathlib/Data/Fin/Basic.lean - theorem Fin.castIso_castSucc + theorem Fin.castIso_castSuccEmb - theorem Fin.castLT_castSucc + theorem Fin.castLT_castSuccEmb +/- theorem Fin.castLT_succAbove - theorem Fin.castPred_castSucc + theorem Fin.castPred_castSuccEmb - def Fin.castSucc + def Fin.castSuccEmb + theorem Fin.castSuccEmb_castLT + theorem Fin.castSuccEmb_castPred + theorem Fin.castSuccEmb_eq_zero_iff + theorem Fin.castSuccEmb_fin_succ + theorem Fin.castSuccEmb_inj + theorem Fin.castSuccEmb_injective + theorem Fin.castSuccEmb_lt_castSuccEmb_iff + theorem Fin.castSuccEmb_lt_iff_succ_le + theorem Fin.castSuccEmb_lt_last + theorem Fin.castSuccEmb_lt_succ + theorem Fin.castSuccEmb_mk + theorem Fin.castSuccEmb_ne_zero_iff + theorem Fin.castSuccEmb_one + theorem Fin.castSuccEmb_pos + theorem Fin.castSuccEmb_pred_eq_pred_castSuccEmb + theorem Fin.castSuccEmb_zero - theorem Fin.castSucc_castLT - theorem Fin.castSucc_castPred - theorem Fin.castSucc_eq_zero_iff - theorem Fin.castSucc_fin_succ - theorem Fin.castSucc_inj - theorem Fin.castSucc_injective - theorem Fin.castSucc_lt_castSucc_iff - theorem Fin.castSucc_lt_iff_succ_le - theorem Fin.castSucc_lt_last - theorem Fin.castSucc_lt_succ - theorem Fin.castSucc_mk - theorem Fin.castSucc_ne_zero_iff - theorem Fin.castSucc_one - theorem Fin.castSucc_pos - theorem Fin.castSucc_pred_eq_pred_castSucc - theorem Fin.castSucc_zero +/- theorem Fin.coeSucc_eq_succ - theorem Fin.coe_castSucc + theorem Fin.coe_castSuccEmb - theorem Fin.coe_eq_castSucc + theorem Fin.coe_eq_castSuccEmb + theorem Fin.coe_of_injective_castSuccEmb_symm - theorem Fin.coe_of_injective_castSucc_symm + theorem Fin.exists_castSuccEmb_eq - theorem Fin.exists_castSucc_eq - theorem Fin.lastCases_castSucc + theorem Fin.lastCases_castSuccEmb + theorem Fin.le_castSuccEmb_iff - theorem Fin.le_castSucc_iff +/- theorem Fin.lt_succ +/- theorem Fin.lt_succAbove_iff - theorem Fin.natAdd_castSucc + theorem Fin.natAdd_castSuccEmb +/- theorem Fin.predAbove_above +/- theorem Fin.predAbove_below + theorem Fin.pred_castSuccEmb_succ - theorem Fin.pred_castSucc_succ +/- theorem Fin.pred_succAbove - theorem Fin.range_castSucc + theorem Fin.range_castSuccEmb - theorem Fin.reverse_induction_castSucc + theorem Fin.reverse_induction_castSuccEmb +/- theorem Fin.succAbove_above +/- theorem Fin.succAbove_below +/- theorem Fin.succAbove_last +/- theorem Fin.succAbove_last_apply +/- theorem Fin.succAbove_lt_ge +/- theorem Fin.succAbove_lt_gt +/- theorem Fin.succAbove_lt_iff +/- theorem Fin.succAbove_predAbove - theorem Fin.succ_castSucc + theorem Fin.succ_castSuccEmb Modified Mathlib/Data/Fin/Tuple/Basic.lean +/- def Fin.init - theorem Fin.init_update_castSucc + theorem Fin.init_update_castSuccEmb +/- def Fin.snoc - theorem Fin.snoc_castSucc + theorem Fin.snoc_castSuccEmb +/- theorem Fin.snoc_cast_add - theorem Fin.snoc_comp_castSucc + theorem Fin.snoc_comp_castSuccEmb +/- theorem Fin.snoc_update Modified Mathlib/Data/Fin/Tuple/Monotone.lean Modified Mathlib/Data/Fin/Tuple/Reflection.lean Modified Mathlib/Data/Fintype/Basic.lean - theorem Fin.image_castSucc + theorem Fin.image_castSuccEmb - theorem Fin.univ_castSucc + theorem Fin.univ_castSuccEmb Modified Mathlib/Data/Fintype/Fin.lean - theorem Fin.Iio_castSucc + theorem Fin.Iio_castSuccEmb +/- theorem Fin.Iio_last_eq_map Modified Mathlib/Data/List/OfFn.lean Modified Mathlib/Data/Polynomial/EraseLead.lean Modified Mathlib/Data/Sym/Card.lean Modified Mathlib/Data/Vector/Basic.lean Modified Mathlib/GroupTheory/Perm/Fin.lean Modified Mathlib/LinearAlgebra/FreeModule/StrongRankCondition.lean Modified Mathlib/LinearAlgebra/Matrix/Determinant.lean Modified Mathlib/LinearAlgebra/Multilinear/Basic.lean +/- theorem MultilinearMap.snoc_add +/- theorem MultilinearMap.snoc_smul Modified Mathlib/LinearAlgebra/Vandermonde.lean Modified Mathlib/Logic/Equiv/Fin.lean +/- theorem finSuccEquiv'_above +/- theorem finSuccEquiv'_below - theorem finSuccEquiv'_last_apply_castSucc + theorem finSuccEquiv'_last_apply_castSuccEmb +/- theorem finSuccEquiv'_symm_coe_above +/- theorem finSuccEquiv'_symm_coe_below +/- theorem finSuccEquiv'_symm_some_above +/- theorem finSuccEquiv'_symm_some_below - theorem finSuccEquivLast_castSucc + theorem finSuccEquivLast_castSuccEmb +/- theorem finSuccEquivLast_symm_some Modified Mathlib/ModelTheory/Semantics.lean Modified Mathlib/ModelTheory/Ultraproducts.lean Modified Mathlib/Order/JordanHolder.lean - theorem CompositionSeries.snoc_castSucc + theorem CompositionSeries.snoc_castSuccEmb Modified Mathlib/RepresentationTheory/GroupCohomology/Basic.lean Modified Mathlib/RepresentationTheory/GroupCohomology/Resolution.lean Modified Mathlib/RingTheory/ChainOfDivisors.lean 2023-07-06 06:47:13 5edb251 refactor: redefine `Bundle.TotalSpace` (#5720) Forward-port leanprover-community/mathlib#19221 ESTIMATED CHANGES Modified Mathlib/Data/Bundle.lean +/- def Bundle.Pullback.lift - theorem Bundle.Pullback.proj_lift +/- def Bundle.Pullback +/- theorem Bundle.TotalSpace.eta + theorem Bundle.TotalSpace.exists + theorem Bundle.TotalSpace.mk_inj + theorem Bundle.TotalSpace.mk_injective - def Bundle.TotalSpace.proj - theorem Bundle.TotalSpace.proj_mk + theorem Bundle.TotalSpace.range_mk + def Bundle.TotalSpace.toProd + def Bundle.TotalSpace.trivialSnd + structure Bundle.TotalSpace - def Bundle.TotalSpace - def Bundle.Trivial.projSnd +/- def Bundle.Trivial - theorem Bundle.coe_fst - theorem Bundle.coe_snd - theorem Bundle.coe_snd_map_apply - theorem Bundle.coe_snd_map_smul +/- def Bundle.pullbackTotalSpaceEmbedding - theorem Bundle.pullbackTotalSpaceEmbedding_snd - theorem Bundle.sigma_mk_eq_totalSpaceMk - def Bundle.totalSpaceMk Modified Mathlib/Geometry/Manifold/MFDeriv.lean +/- theorem Trivialization.mdifferentiable +/- theorem UniqueMDiffWithinAt.smooth_bundle_preimage - theorem tangentMapWithin_fst - theorem tangentMap_fst Modified Mathlib/Geometry/Manifold/VectorBundle/Basic.lean +/- theorem Bundle.contMDiffAt_proj +/- theorem Bundle.contMDiffAt_totalSpace +/- theorem Bundle.contMDiffOn_proj +/- theorem Bundle.contMDiffWithinAt_proj +/- theorem Bundle.contMDiffWithinAt_totalSpace +/- theorem Bundle.contMDiff_proj +/- theorem Bundle.smoothAt_proj +/- theorem Bundle.smoothOn_proj +/- theorem Bundle.smoothWithinAt_proj +/- theorem Bundle.smooth_proj +/- theorem Bundle.smooth_zeroSection +/- theorem ContMDiffWithinAt.change_section_trivialization +/- theorem FiberBundle.chartedSpace'_chartAt +/- theorem FiberBundle.chartedSpace_chartAt +/- theorem FiberBundle.chartedSpace_chartAt_symm_fst +/- theorem Trivialization.contMDiffAt_iff +/- theorem Trivialization.contMDiffOn_iff +/- theorem Trivialization.contMDiffWithinAt_iff +/- theorem Trivialization.contMDiffWithinAt_snd_comp_iff₂ +/- theorem Trivialization.contMDiff_iff +/- theorem Trivialization.smoothAt_iff +/- theorem Trivialization.smoothOn +/- theorem Trivialization.smoothOn_iff +/- theorem Trivialization.smoothOn_symm +/- theorem Trivialization.smoothWithinAt_iff +/- theorem Trivialization.smooth_iff Modified Mathlib/Geometry/Manifold/VectorBundle/Pullback.lean Modified Mathlib/Geometry/Manifold/VectorBundle/Tangent.lean Modified Mathlib/Topology/Covering.lean Modified Mathlib/Topology/FiberBundle/Basic.lean +/- theorem FiberBundle.continuousAt_totalSpace +/- theorem FiberBundle.continuousWithinAt_totalSpace +/- theorem FiberBundle.continuous_proj +/- theorem FiberBundle.continuous_totalSpaceMk +/- theorem FiberBundle.isOpenMap_proj +/- theorem FiberBundle.map_proj_nhds +/- theorem FiberBundle.mem_trivializationAt_proj_source +/- theorem FiberBundle.quotientMap_proj +/- theorem FiberBundle.surjective_proj +/- theorem FiberBundle.totalSpaceMk_closedEmbedding +/- theorem FiberBundle.totalSpaceMk_embedding +/- theorem FiberBundle.totalSpaceMk_inducing +/- theorem FiberBundle.trivializationAt_proj_fst +/- def FiberBundleCore.TotalSpace +/- def FiberBundleCore.localTrivAt - theorem FiberBundleCore.mem_source_at + theorem FiberBundleCore.mk_mem_localTrivAt_source +/- theorem FiberPrebundle.continuousOn_of_comp_right +/- theorem FiberPrebundle.continuous_proj +/- theorem FiberPrebundle.isOpen_source +/- theorem FiberPrebundle.isOpen_target_of_mem_pretrivializationAtlas_inter +/- def FiberPrebundle.totalSpaceTopology Modified Mathlib/Topology/FiberBundle/Constructions.lean +/- theorem Bundle.Trivial.eq_trivialization + def Bundle.Trivial.homeomorphProd + theorem Bundle.Trivial.inducing_toProd +/- def Bundle.Trivial.trivialization +/- theorem Pullback.continuous_lift +/- theorem Pullback.continuous_proj +/- theorem Trivialization.Prod.left_inv +/- def Trivialization.Prod.toFun' Modified Mathlib/Topology/FiberBundle/Trivialization.lean +/- theorem Pretrivialization.apply_mk_symm +/- theorem Pretrivialization.coe_symm_of_not_mem +/- theorem Pretrivialization.mk_symm +/- theorem Pretrivialization.symm_apply +/- theorem Pretrivialization.symm_apply_apply_mk +/- theorem Pretrivialization.symm_apply_of_not_mem +/- theorem Pretrivialization.symm_coe_proj +/- theorem Pretrivialization.symm_proj_apply +/- theorem Trivialization.apply_mk_symm +/- theorem Trivialization.continuousOn_symm +/- theorem Trivialization.mk_symm +/- theorem Trivialization.symm_apply +/- theorem Trivialization.symm_apply_apply +/- theorem Trivialization.symm_apply_apply_mk +/- theorem Trivialization.symm_apply_of_not_mem +/- theorem Trivialization.symm_coe_proj +/- theorem Trivialization.symm_proj_apply Modified Mathlib/Topology/VectorBundle/Basic.lean +/- def Bundle.zeroSection +/- theorem Bundle.zeroSection_proj +/- theorem Bundle.zeroSection_snd +/- theorem Pretrivialization.coe_linearMapAt +/- theorem Pretrivialization.coe_linearMapAt_of_mem +/- def Pretrivialization.linearEquivAt +/- theorem Pretrivialization.linearMapAt_apply +/- theorem Pretrivialization.linearMapAt_def_of_mem +/- theorem Pretrivialization.linearMapAt_def_of_not_mem +/- theorem Pretrivialization.linearMapAt_eq_zero +/- theorem Pretrivialization.linearMapAt_symmₗ +/- theorem Pretrivialization.symmₗ_linearMapAt +/- theorem Trivialization.apply_eq_prod_continuousLinearEquivAt +/- theorem Trivialization.apply_symm_apply_eq_coordChangeL +/- theorem Trivialization.coe_continuousLinearEquivAt_eq +/- theorem Trivialization.coe_coordChangeL' +/- theorem Trivialization.coe_coordChangeL +/- theorem Trivialization.coe_linearMapAt +/- theorem Trivialization.coe_linearMapAt_of_mem +/- theorem Trivialization.coe_symmₗ +/- theorem Trivialization.comp_continuousLinearEquivAt_eq_coord_change +/- def Trivialization.continuousLinearEquivAt +/- theorem Trivialization.continuousLinearEquivAt_apply' +/- def Trivialization.continuousLinearMapAt +/- theorem Trivialization.continuousLinearMapAt_symmL +/- def Trivialization.coordChangeL +/- theorem Trivialization.coordChangeL_apply' +/- theorem Trivialization.coordChangeL_apply +/- theorem Trivialization.coordChangeL_symm_apply +/- def Trivialization.linearEquivAt +/- theorem Trivialization.linearEquivAt_apply +/- theorem Trivialization.linearEquivAt_symm_apply +/- theorem Trivialization.linearMapAt_apply +/- theorem Trivialization.linearMapAt_def_of_mem +/- theorem Trivialization.linearMapAt_def_of_not_mem +/- theorem Trivialization.linearMapAt_symmₗ +/- theorem Trivialization.mk_coordChangeL +/- def Trivialization.symmL +/- theorem Trivialization.symmL_continuousLinearMapAt +/- theorem Trivialization.symm_apply_eq_mk_continuousLinearEquivAt_symm +/- theorem Trivialization.symm_continuousLinearEquivAt_eq +/- theorem Trivialization.symm_coordChangeL +/- theorem Trivialization.symmₗ_linearMapAt +/- def VectorBundleCore.localTriv +/- def VectorBundleCore.localTrivAt +/- theorem VectorPrebundle.continuousOn_coordChange +/- def VectorPrebundle.coordChange +/- theorem VectorPrebundle.coordChange_apply +/- theorem VectorPrebundle.mk_coordChange +/- def VectorPrebundle.totalSpaceTopology +/- theorem continuousOn_coordChange Modified Mathlib/Topology/VectorBundle/Constructions.lean +/- theorem Trivialization.continuousLinearEquivAt_prod 2023-07-06 05:51:28 6542ca1 feat(topology/order): Add closure.mono (#5631) Adds `closure.mono` which asserts that if `t₁ ≤ t₂` for topologies `t₁`, `t₂`, then the closure of a set in `t₁` will be a subset of the closure of the set in `t₂`. Analogous to `IsOpen.mono` and `IsClosed.mono`. Also adds `closure[t₁]` notation to specify the topology to use. ESTIMATED CHANGES Modified Mathlib/Topology/Basic.lean Modified Mathlib/Topology/Order.lean + theorem closure.mono 2023-07-06 05:37:39 7bc03a7 feat: UnivLE (#5723) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/UnivLE.lean + theorem UnivLE.ofEssSurj.{u, + def UnivLE.witness.{u, + theorem UnivLE_iff_essSurj.{u, Added Mathlib/Logic/UnivLE.lean 2023-07-06 04:32:48 7e61a1a feat: port LinearAlgebra.Matrix.SchurComplement (#5491) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/LinearAlgebra/Matrix/SchurComplement.lean + theorem Matrix.IsHermitian.fromBlocks₁₁ + theorem Matrix.IsHermitian.fromBlocks₂₂ + theorem Matrix.PosSemidef.fromBlocks₁₁ + theorem Matrix.PosSemidef.fromBlocks₂₂ + theorem Matrix.det_fromBlocks_one₁₁ + theorem Matrix.det_fromBlocks_one₂₂ + theorem Matrix.det_fromBlocks₁₁ + theorem Matrix.det_fromBlocks₂₂ + theorem Matrix.det_mul_add_one_comm + theorem Matrix.det_one_add_col_mul_row + theorem Matrix.det_one_add_mul_comm + theorem Matrix.det_one_sub_mul_comm + def Matrix.fromBlocksZero₁₂Invertible + def Matrix.fromBlocksZero₁₂InvertibleEquiv + def Matrix.fromBlocksZero₂₁Invertible + def Matrix.fromBlocksZero₂₁InvertibleEquiv + theorem Matrix.fromBlocks_eq_of_invertible₁₁ + theorem Matrix.fromBlocks_eq_of_invertible₂₂ + def Matrix.fromBlocks₁₁Invertible + def Matrix.fromBlocks₂₂Invertible + theorem Matrix.invOf_fromBlocks_zero₁₂_eq + theorem Matrix.invOf_fromBlocks_zero₂₁_eq + theorem Matrix.invOf_fromBlocks₁₁_eq + theorem Matrix.invOf_fromBlocks₂₂_eq + theorem Matrix.inv_fromBlocks_zero₁₂_of_isUnit_iff + theorem Matrix.inv_fromBlocks_zero₂₁_of_isUnit_iff + def Matrix.invertibleEquivFromBlocks₁₁Invertible + def Matrix.invertibleEquivFromBlocks₂₂Invertible + def Matrix.invertibleOfFromBlocksZero₁₂Invertible + def Matrix.invertibleOfFromBlocksZero₂₁Invertible + def Matrix.invertibleOfFromBlocks₁₁Invertible + def Matrix.invertibleOfFromBlocks₂₂Invertible + theorem Matrix.isUnit_fromBlocks_iff_of_invertible₁₁ + theorem Matrix.isUnit_fromBlocks_iff_of_invertible₂₂ + theorem Matrix.isUnit_fromBlocks_zero₁₂ + theorem Matrix.isUnit_fromBlocks_zero₂₁ + theorem Matrix.schur_complement_eq₁₁ + theorem Matrix.schur_complement_eq₂₂ 2023-07-06 04:32:47 1adfa4d feat: port Topology.MetricSpace.GromovHausdorff (#4635) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Data/Fin/Basic.lean Modified Mathlib/Topology/MetricSpace/Gluing.lean + theorem Metric.Sum.mem_uniformity_iff_glueDist Added Mathlib/Topology/MetricSpace/GromovHausdorff.lean + structure GromovHausdorff.AuxGluingStruct + def GromovHausdorff.GHSpace.Rep + theorem GromovHausdorff.GHSpace.toGHSpace_rep + def GromovHausdorff.GHSpace + def GromovHausdorff.auxGluing + theorem GromovHausdorff.dist_ghDist + theorem GromovHausdorff.eq_toGHSpace + theorem GromovHausdorff.eq_toGHSpace_iff + def GromovHausdorff.ghDist + theorem GromovHausdorff.ghDist_eq_hausdorffDist + theorem GromovHausdorff.ghDist_le_hausdorffDist + theorem GromovHausdorff.ghDist_le_nonemptyCompacts_dist + theorem GromovHausdorff.ghDist_le_of_approx_subsets + theorem GromovHausdorff.hausdorffDist_optimal + def GromovHausdorff.toGHSpace + theorem GromovHausdorff.toGHSpace_continuous + theorem GromovHausdorff.toGHSpace_eq_toGHSpace_iff_isometryEquiv + theorem GromovHausdorff.toGHSpace_lipschitz + theorem GromovHausdorff.totallyBounded + def TopologicalSpace.NonemptyCompacts.toGHSpace 2023-07-06 04:18:15 15a4f79 feat: port CategoryTheory.Monoidal.Internal.Module (#5725) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Monoidal/Internal/Module.lean + theorem ModuleCat.MonModuleEquivalenceAlgebra.algebraMap + def ModuleCat.MonModuleEquivalenceAlgebra.functor + def ModuleCat.MonModuleEquivalenceAlgebra.inverse + def ModuleCat.MonModuleEquivalenceAlgebra.inverseObj + def ModuleCat.monModuleEquivalenceAlgebra + def ModuleCat.monModuleEquivalenceAlgebraForget 2023-07-05 18:37:53 f2c76a4 feat: port GroupTheory.FiniteAbelian (#5730) - [x] depends on: #4707 ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/GroupTheory/FiniteAbelian.lean + theorem AddCommGroup.equiv_directSum_zMod_of_fintype + theorem AddCommGroup.equiv_free_prod_directSum_zMod + theorem AddCommGroup.finite_of_fG_torsion + theorem CommGroup.finite_of_fG_torsion + theorem Module.finite_of_fg_torsion 2023-07-05 17:18:31 8c0a68a feat: port Counterexamples.HomogeneousPrimeNotPrime (#5287) ESTIMATED CHANGES Modified Counterexamples.lean Added Counterexamples/HomogeneousPrimeNotPrime.lean + def Counterexample.CounterexampleNotPrimeButHomogeneousPrime.I + theorem Counterexample.CounterexampleNotPrimeButHomogeneousPrime.I_isHomogeneous + theorem Counterexample.CounterexampleNotPrimeButHomogeneousPrime.I_not_prime + def Counterexample.CounterexampleNotPrimeButHomogeneousPrime.grading.decompose + theorem Counterexample.CounterexampleNotPrimeButHomogeneousPrime.grading.left_inv + theorem Counterexample.CounterexampleNotPrimeButHomogeneousPrime.grading.mul_mem + theorem Counterexample.CounterexampleNotPrimeButHomogeneousPrime.grading.one_mem + theorem Counterexample.CounterexampleNotPrimeButHomogeneousPrime.grading.right_inv + def Counterexample.CounterexampleNotPrimeButHomogeneousPrime.grading + theorem Counterexample.CounterexampleNotPrimeButHomogeneousPrime.homogeneous_mem_or_mem + def Counterexample.CounterexampleNotPrimeButHomogeneousPrime.submoduleO + def Counterexample.CounterexampleNotPrimeButHomogeneousPrime.submoduleZ Modified Mathlib.lean Modified Mathlib/Algebra/Divisibility/Basic.lean + theorem dvd_def Added Mathlib/Algebra/Divisibility/Prod.lean + theorem Prod.mk_dvd_mk + theorem prod_dvd_iff 2023-07-05 16:58:23 b83ae2c feat: port LinearAlgebra.ExteriorAlgebra.Grading (#5459) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/LinearAlgebra/ExteriorAlgebra/Grading.lean + def ExteriorAlgebra.GradedAlgebra.liftι + theorem ExteriorAlgebra.GradedAlgebra.liftι_eq + theorem ExteriorAlgebra.GradedAlgebra.ι_apply + theorem ExteriorAlgebra.GradedAlgebra.ι_sq_zero 2023-07-05 15:33:59 b72d935 feat: port Algebra.Module.PID (#4707) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Module/PID.lean + theorem Ideal.torsionOf_eq_span_pow_pOrder + theorem Module.equiv_directSum_of_isTorsion + theorem Module.equiv_free_prod_directSum + theorem Module.exists_smul_eq_zero_and_mk_eq + theorem Module.p_pow_smul_lift + theorem Module.torsion_by_prime_power_decomposition + theorem Submodule.exists_isInternal_prime_power_torsion_of_pid + theorem Submodule.isInternal_prime_power_torsion_of_pid 2023-07-05 14:19:53 7f1e574 feat: add List.foldl_concat and List.foldr.concat (#5733) These are special versions of List.fold[lr]_append in case a single element list is appended. ESTIMATED CHANGES Modified Mathlib/Data/List/Basic.lean + theorem List.foldl_concat + theorem List.foldr_concat 2023-07-05 13:45:48 6a3e867 feat(Analysis.Seminorm): remove useless assumption (#5734) This removes a chance to infer an argument, but I think that's a fairly good use case for using the new named arguments, because adding `(r := _)` to specify a radius feels completely right. ESTIMATED CHANGES Modified Mathlib/Analysis/LocallyConvex/WithSeminorms.lean Modified Mathlib/Analysis/Seminorm.lean +/- theorem Seminorm.continuousAt_zero' 2023-07-05 12:56:20 0e13f2f chore: correct casing in Logic.Equiv.TransferInstance (#5641) ESTIMATED CHANGES Modified Mathlib/Algebra/MonoidAlgebra/Basic.lean Modified Mathlib/Data/MvPolynomial/Basic.lean Modified Mathlib/Logic/Equiv/TransferInstance.lean Modified Mathlib/Logic/Small/Group.lean 2023-07-05 12:35:35 bb4fb76 feat: complex differentiable functions are continuously differentiable (#5629) ESTIMATED CHANGES Modified Mathlib/Analysis/Analytic/Basic.lean + theorem AnalyticAt.eventually_analyticAt + theorem AnalyticAt.exists_mem_nhds_analyticOn Modified Mathlib/Analysis/Calculus/FDerivAnalytic.lean + theorem AnalyticAt.contDiffAt Modified Mathlib/Analysis/Complex/CauchyIntegral.lean 2023-07-05 06:47:40 13c15fd fix(Tactic.NormNum.LegendreSymbol): not `a % 0` but `a % 2` (#5719) ESTIMATED CHANGES Modified Mathlib/Tactic/NormNum/LegendreSymbol.lean 2023-07-05 06:47:39 c725d18 chore: update Mathport/Syntax for `#where` command (#5718) ESTIMATED CHANGES Modified Mathlib/Mathport/Syntax.lean 2023-07-05 06:33:28 4d11748 style: remove unnecessary `<|` (#5721) ESTIMATED CHANGES Modified Mathlib/GroupTheory/Congruence.lean 2023-07-05 06:02:46 abd65d5 chore: rescope Ω notation for LoopSpace (#5714) ESTIMATED CHANGES Modified Mathlib/Topology/Homotopy/HomotopyGroup.lean 2023-07-05 04:52:56 d6a4516 feat: port Algebra.Category.Algebra.Basic (#4504) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Category/AlgebraCat/Basic.lean + def AlgEquiv.toAlgebraIso + def AlgebraCat.adj + theorem AlgebraCat.coe_comp + theorem AlgebraCat.coe_of + def AlgebraCat.free + theorem AlgebraCat.id_apply + def AlgebraCat.of + def AlgebraCat.ofHom + theorem AlgebraCat.ofHom_apply + def AlgebraCat.ofSelfIso + structure AlgebraCat + def CategoryTheory.Iso.toAlgEquiv + def algEquivIsoAlgebraIso 2023-07-04 23:32:23 24d1758 chore: rename Fin.rev to Fin.revPerm (#5715) ESTIMATED CHANGES Modified Mathlib/AlgebraicTopology/DoldKan/Decomposition.lean Modified Mathlib/AlgebraicTopology/DoldKan/Degeneracies.lean Modified Mathlib/Data/Fin/Basic.lean +/- theorem Fin.last_sub - def Fin.rev +/- theorem Fin.revOrderIso_symm_apply + def Fin.revPerm + theorem Fin.revPerm_bijective + theorem Fin.revPerm_eq + theorem Fin.revPerm_inj + theorem Fin.revPerm_injective + theorem Fin.revPerm_involutive + theorem Fin.revPerm_le_revPerm + theorem Fin.revPerm_lt_revPerm + theorem Fin.revPerm_revPerm + theorem Fin.revPerm_surjective + theorem Fin.revPerm_symm - theorem Fin.rev_bijective - theorem Fin.rev_eq - theorem Fin.rev_inj - theorem Fin.rev_injective - theorem Fin.rev_involutive - theorem Fin.rev_le_rev - theorem Fin.rev_lt_rev - theorem Fin.rev_rev - theorem Fin.rev_surjective - theorem Fin.rev_symm - theorem Fin.val_rev + theorem Fin.val_revPerm 2023-07-04 18:51:38 cc5d11f feat: port AlgebraicGeometry.Morphisms.QuasiSeparated (#5691) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/AlgebraicGeometry/Morphisms/QuasiSeparated.lean + theorem AlgebraicGeometry.IsAffineOpen.isQuasiSeparated + def AlgebraicGeometry.QuasiSeparated.affineProperty + theorem AlgebraicGeometry.QuasiSeparated.affineProperty_isLocal + theorem AlgebraicGeometry.QuasiSeparated.affine_openCover_TFAE + theorem AlgebraicGeometry.QuasiSeparated.affine_openCover_iff + theorem AlgebraicGeometry.QuasiSeparated.is_local_at_target + theorem AlgebraicGeometry.QuasiSeparated.openCover_iff + theorem AlgebraicGeometry.QuasiSeparated.openCover_tFAE + theorem AlgebraicGeometry.exists_eq_pow_mul_of_isAffineOpen + theorem AlgebraicGeometry.exists_eq_pow_mul_of_isCompact_of_isQuasiSeparated + theorem AlgebraicGeometry.exists_eq_pow_mul_of_is_compact_of_quasi_separated_space_aux + theorem AlgebraicGeometry.is_localization_basicOpen_of_qcqs + theorem AlgebraicGeometry.quasiSeparatedOfComp + theorem AlgebraicGeometry.quasiSeparatedSpace_iff_affine + theorem AlgebraicGeometry.quasiSeparatedSpace_iff_quasiSeparated + theorem AlgebraicGeometry.quasiSeparatedSpace_of_quasiSeparated + theorem AlgebraicGeometry.quasiSeparated_eq_affineProperty + theorem AlgebraicGeometry.quasiSeparated_eq_affineProperty_diagonal + theorem AlgebraicGeometry.quasiSeparated_eq_diagonal_is_quasiCompact + theorem AlgebraicGeometry.quasiSeparated_over_affine_iff + theorem AlgebraicGeometry.quasiSeparated_respectsIso + theorem AlgebraicGeometry.quasiSeparated_stableUnderBaseChange + theorem AlgebraicGeometry.quasiSeparated_stableUnderComposition + theorem AlgebraicGeometry.quasi_compact_affineProperty_diagonal_eq + theorem AlgebraicGeometry.quasi_compact_affineProperty_iff_quasiSeparatedSpace 2023-07-04 18:38:28 d57f6f3 feat: port ModelTheory.DirectLimit (#4391) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/ModelTheory/DirectLimit.lean + theorem FirstOrder.Language.DirectLimit.cG + theorem FirstOrder.Language.DirectLimit.comp_unify + theorem FirstOrder.Language.DirectLimit.equiv_iff + theorem FirstOrder.Language.DirectLimit.exists_of + theorem FirstOrder.Language.DirectLimit.exists_quotient_mk'_sigma_mk'_eq + theorem FirstOrder.Language.DirectLimit.exists_unify_eq + theorem FirstOrder.Language.DirectLimit.funMap_equiv_unify + theorem FirstOrder.Language.DirectLimit.funMap_quotient_mk'_sigma_mk' + theorem FirstOrder.Language.DirectLimit.funMap_unify_equiv + def FirstOrder.Language.DirectLimit.lift + theorem FirstOrder.Language.DirectLimit.lift_of + theorem FirstOrder.Language.DirectLimit.lift_quotient_mk'_sigma_mk' + theorem FirstOrder.Language.DirectLimit.lift_unique + def FirstOrder.Language.DirectLimit.of + theorem FirstOrder.Language.DirectLimit.of_apply + theorem FirstOrder.Language.DirectLimit.of_f + theorem FirstOrder.Language.DirectLimit.relMap_equiv_unify + theorem FirstOrder.Language.DirectLimit.relMap_quotient_mk'_sigma_mk' + theorem FirstOrder.Language.DirectLimit.relMap_unify_equiv + def FirstOrder.Language.DirectLimit.setoid + def FirstOrder.Language.DirectLimit.unify + theorem FirstOrder.Language.DirectLimit.unify_sigma_mk_self + def FirstOrder.Language.DirectLimit + theorem FirstOrder.Language.DirectedSystem.coe_natLeRec + def FirstOrder.Language.DirectedSystem.natLeRec 2023-07-04 16:14:37 c795bd3 chore: remove occurrences of semicolon after space (#5713) This is the second half of the changes originally in #5699, removing all occurrences of `;` _after_ a space and implementing a linter rule to enforce it. In most cases this 2-character substring has a space after it, so the following command was run first: ``` find . -type f -name "*.lean" -exec sed -i -E 's/ ; /; /g' {} \; ``` The remaining cases were few enough in number that they were done manually. ESTIMATED CHANGES Modified Archive/Arithcc.lean Modified Archive/Imo/Imo1981Q3.lean Modified Archive/Imo/Imo1998Q2.lean Modified Archive/Imo/Imo2008Q4.lean Modified Archive/Imo/Imo2013Q1.lean Modified Archive/Imo/Imo2013Q5.lean Modified Archive/MiuLanguage/DecisionSuf.lean Modified Archive/Sensitivity.lean Modified Archive/Wiedijk100Theorems/Partition.lean Modified Archive/Wiedijk100Theorems/SolutionOfCubic.lean Modified Mathlib/Algebra/Associated.lean +/- theorem Associates.le_mul_left Modified Mathlib/Algebra/BigOperators/Order.lean Modified Mathlib/Algebra/Category/GroupCat/Limits.lean Modified Mathlib/Algebra/Category/ModuleCat/Abelian.lean Modified Mathlib/Algebra/Category/ModuleCat/Adjunctions.lean Modified Mathlib/Algebra/Category/ModuleCat/Colimits.lean Modified Mathlib/Algebra/Category/ModuleCat/Kernels.lean Modified Mathlib/Algebra/Category/Ring/Basic.lean Modified Mathlib/Algebra/Category/Ring/Colimits.lean Modified Mathlib/Algebra/DirectLimit.lean Modified Mathlib/Algebra/Free.lean Modified Mathlib/Algebra/Homology/DifferentialObject.lean Modified Mathlib/Algebra/Homology/Homotopy.lean Modified Mathlib/Algebra/Homology/ShortComplex/Basic.lean Modified Mathlib/Algebra/Homology/Single.lean Modified Mathlib/Algebra/Invertible.lean Modified Mathlib/Algebra/Lie/Abelian.lean Modified Mathlib/Algebra/Lie/IdealOperations.lean Modified Mathlib/Algebra/Lie/Nilpotent.lean Modified Mathlib/Algebra/Lie/OfAssociative.lean Modified Mathlib/Algebra/Lie/Solvable.lean Modified Mathlib/Algebra/Module/DedekindDomain.lean Modified Mathlib/Algebra/Module/GradedModule.lean Modified Mathlib/Algebra/Module/LinearMap.lean Modified Mathlib/Algebra/Module/Submodule/Lattice.lean Modified Mathlib/Algebra/Order/Floor.lean Modified Mathlib/Algebra/Parity.lean Modified Mathlib/Algebra/Polynomial/BigOperators.lean Modified Mathlib/Algebra/Quandle.lean Modified Mathlib/Algebra/RingQuot.lean Modified Mathlib/Algebra/SMulWithZero.lean Modified Mathlib/AlgebraicGeometry/GammaSpecAdjunction.lean Modified Mathlib/AlgebraicGeometry/OpenImmersion/Scheme.lean Modified Mathlib/AlgebraicGeometry/PresheafedSpace.lean Modified Mathlib/AlgebraicGeometry/PrimeSpectrum/Basic.lean Modified Mathlib/AlgebraicGeometry/ProjectiveSpectrum/Topology.lean Modified Mathlib/AlgebraicTopology/CechNerve.lean Modified Mathlib/AlgebraicTopology/DoldKan/Decomposition.lean Modified Mathlib/AlgebraicTopology/DoldKan/Faces.lean Modified Mathlib/AlgebraicTopology/DoldKan/FunctorGamma.lean Modified Mathlib/AlgebraicTopology/DoldKan/NCompGamma.lean Modified Mathlib/AlgebraicTopology/DoldKan/SplitSimplicialObject.lean Modified Mathlib/AlgebraicTopology/SimplexCategory.lean Modified Mathlib/Analysis/Analytic/Basic.lean Modified Mathlib/Analysis/Analytic/Composition.lean Modified Mathlib/Analysis/BoxIntegral/Basic.lean Modified Mathlib/Analysis/BoxIntegral/Integrability.lean Modified Mathlib/Analysis/Calculus/ExtendDeriv.lean Modified Mathlib/Analysis/Calculus/FDerivMeasurable.lean Modified Mathlib/Analysis/Complex/CauchyIntegral.lean Modified Mathlib/Analysis/Convex/Integral.lean Modified Mathlib/Analysis/NormedSpace/Exponential.lean Modified Mathlib/Analysis/Seminorm.lean Modified Mathlib/Analysis/SpecialFunctions/CompareExp.lean Modified Mathlib/Analysis/SpecialFunctions/Gamma/Basic.lean Modified Mathlib/Analysis/SpecialFunctions/Gamma/BohrMollerup.lean Modified Mathlib/Analysis/SpecialFunctions/Gaussian.lean Modified Mathlib/Analysis/SpecialFunctions/Pow/Real.lean Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Basic.lean Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Deriv.lean Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/EulerSineProd.lean Modified Mathlib/CategoryTheory/Action.lean +/- theorem CategoryTheory.ActionCategory.back_coe Modified Mathlib/CategoryTheory/Adjunction/Basic.lean Modified Mathlib/CategoryTheory/Adjunction/Opposites.lean Modified Mathlib/CategoryTheory/Category/Grpd.lean Modified Mathlib/CategoryTheory/Enriched/Basic.lean Modified Mathlib/CategoryTheory/Functor/Basic.lean Modified Mathlib/CategoryTheory/Functor/Flat.lean Modified Mathlib/CategoryTheory/Functor/FullyFaithful.lean Modified Mathlib/CategoryTheory/GradedObject.lean Modified Mathlib/CategoryTheory/Groupoid/Subgroupoid.lean Modified Mathlib/CategoryTheory/Limits/HasLimits.lean Modified Mathlib/CategoryTheory/Limits/IsLimit.lean Modified Mathlib/CategoryTheory/Limits/Preserves/Basic.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Images.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Multiequalizer.lean Modified Mathlib/CategoryTheory/Monoidal/CommMon_.lean Modified Mathlib/CategoryTheory/Monoidal/Free/Basic.lean Modified Mathlib/CategoryTheory/Monoidal/Free/Coherence.lean Modified Mathlib/CategoryTheory/Monoidal/NaturalTransformation.lean Modified Mathlib/CategoryTheory/Monoidal/Subcategory.lean Modified Mathlib/CategoryTheory/Preadditive/Mat.lean Modified Mathlib/CategoryTheory/Preadditive/Yoneda/Basic.lean Modified Mathlib/CategoryTheory/Sites/Canonical.lean Modified Mathlib/CategoryTheory/Sites/Coverage.lean Modified Mathlib/CategoryTheory/Sites/EffectiveEpimorphic.lean Modified Mathlib/CategoryTheory/Sites/Plus.lean Modified Mathlib/CategoryTheory/StructuredArrow.lean Modified Mathlib/Combinatorics/Composition.lean Modified Mathlib/Computability/Partrec.lean Modified Mathlib/Computability/Primrec.lean Modified Mathlib/Computability/RegularExpressions.lean Modified Mathlib/Computability/TMToPartrec.lean Modified Mathlib/Computability/TuringMachine.lean Modified Mathlib/Control/LawfulFix.lean Modified Mathlib/Control/Traversable/Lemmas.lean Modified Mathlib/Data/Analysis/Filter.lean Modified Mathlib/Data/Analysis/Topology.lean Modified Mathlib/Data/Complex/Basic.lean Modified Mathlib/Data/Erased.lean Modified Mathlib/Data/Fin/Basic.lean Modified Mathlib/Data/Fin/Tuple/Basic.lean Modified Mathlib/Data/FinEnum.lean Modified Mathlib/Data/Finmap.lean Modified Mathlib/Data/Finset/NatAntidiagonal.lean Modified Mathlib/Data/Finset/Pi.lean Modified Mathlib/Data/Finsupp/AList.lean Modified Mathlib/Data/Finsupp/Basic.lean Modified Mathlib/Data/Finsupp/BigOperators.lean Modified Mathlib/Data/Finsupp/Pointwise.lean Modified Mathlib/Data/Fintype/Perm.lean Modified Mathlib/Data/Int/Order/Basic.lean +/- theorem Int.natAbs_abs Modified Mathlib/Data/List/AList.lean Modified Mathlib/Data/List/Indexes.lean Modified Mathlib/Data/List/OfFn.lean Modified Mathlib/Data/List/Pairwise.lean Modified Mathlib/Data/List/Perm.lean Modified Mathlib/Data/List/Prime.lean Modified Mathlib/Data/Multiset/Antidiagonal.lean Modified Mathlib/Data/Multiset/Basic.lean Modified Mathlib/Data/Multiset/Functor.lean Modified Mathlib/Data/MvPolynomial/Basic.lean Modified Mathlib/Data/MvPolynomial/PDeriv.lean Modified Mathlib/Data/MvPolynomial/Variables.lean Modified Mathlib/Data/Nat/Bitwise.lean Modified Mathlib/Data/Nat/GCD/Basic.lean Modified Mathlib/Data/Nat/Lattice.lean Modified Mathlib/Data/Nat/Order/Basic.lean Modified Mathlib/Data/Nat/Pairing.lean Modified Mathlib/Data/Nat/Prime.lean Modified Mathlib/Data/Num/Bitwise.lean Modified Mathlib/Data/Num/Lemmas.lean Modified Mathlib/Data/Ordmap/Ordset.lean Modified Mathlib/Data/PFun.lean +/- theorem PFun.coe_preimage +/- theorem PFun.preimage_univ Modified Mathlib/Data/PFunctor/Multivariate/W.lean Modified Mathlib/Data/PNat/Factors.lean Modified Mathlib/Data/Polynomial/Lifts.lean Modified Mathlib/Data/Polynomial/RingDivision.lean Modified Mathlib/Data/QPF/Multivariate/Basic.lean Modified Mathlib/Data/QPF/Multivariate/Constructions/Prj.lean Modified Mathlib/Data/Rat/Cast.lean Modified Mathlib/Data/Rat/Defs.lean Modified Mathlib/Data/Rat/Lemmas.lean Modified Mathlib/Data/Semiquot.lean Modified Mathlib/Data/Seq/Computation.lean +/- theorem Computation.mem_of_get_eq Modified Mathlib/Data/Seq/Seq.lean Modified Mathlib/Data/Set/Basic.lean Modified Mathlib/Data/Set/Finite.lean Modified Mathlib/Data/Set/Ncard.lean Modified Mathlib/Data/Stream/Init.lean Modified Mathlib/Data/Vector.lean Modified Mathlib/Data/Vector/Basic.lean Modified Mathlib/Dynamics/Ergodic/AddCircle.lean Modified Mathlib/FieldTheory/Finite/Basic.lean Modified Mathlib/FieldTheory/Fixed.lean Modified Mathlib/FieldTheory/IsAlgClosed/Spectrum.lean Modified Mathlib/FieldTheory/SplittingField/Construction.lean Modified Mathlib/FieldTheory/Subfield.lean Modified Mathlib/Geometry/Euclidean/Angle/Oriented/Affine.lean Modified Mathlib/Geometry/Manifold/ContMDiff.lean Modified Mathlib/Geometry/Manifold/Instances/Real.lean Modified Mathlib/Geometry/Manifold/MFDeriv.lean Modified Mathlib/Geometry/Manifold/SmoothManifoldWithCorners.lean Modified Mathlib/GroupTheory/Finiteness.lean Modified Mathlib/GroupTheory/FreeGroup.lean Modified Mathlib/GroupTheory/IsFreeGroup.lean Modified Mathlib/GroupTheory/MonoidLocalization.lean +/- theorem Submonoid.LocalizationMap.lift_comp Modified Mathlib/GroupTheory/NielsenSchreier.lean Modified Mathlib/GroupTheory/SemidirectProduct.lean +/- theorem SemidirectProduct.lift_comp_inl +/- theorem SemidirectProduct.lift_comp_inr +/- theorem SemidirectProduct.rightHom_comp_inl Modified Mathlib/GroupTheory/Submonoid/Inverses.lean Modified Mathlib/Init/Data/Nat/Bitwise.lean Modified Mathlib/LinearAlgebra/Matrix/Block.lean Modified Mathlib/LinearAlgebra/Matrix/Diagonal.lean Modified Mathlib/LinearAlgebra/TensorProduct.lean Modified Mathlib/Logic/Embedding/Set.lean Modified Mathlib/Logic/Encodable/Basic.lean +/- theorem Encodable.Subtype.encode_eq Modified Mathlib/MeasureTheory/Constructions/Prod/Integral.lean Modified Mathlib/MeasureTheory/Covering/Besicovitch.lean Modified Mathlib/MeasureTheory/Covering/BesicovitchVectorSpace.lean Modified Mathlib/MeasureTheory/Decomposition/SignedHahn.lean Modified Mathlib/MeasureTheory/Decomposition/UnsignedHahn.lean Modified Mathlib/MeasureTheory/Function/ConditionalExpectation/Basic.lean Modified Mathlib/MeasureTheory/Function/Jacobian.lean Modified Mathlib/MeasureTheory/Integral/Bochner.lean Modified Mathlib/MeasureTheory/Integral/CircleIntegral.lean Modified Mathlib/MeasureTheory/Integral/IntegralEqImproper.lean Modified Mathlib/MeasureTheory/Integral/Lebesgue.lean Modified Mathlib/MeasureTheory/Integral/SetToL1.lean Modified Mathlib/MeasureTheory/Integral/VitaliCaratheodory.lean Modified Mathlib/MeasureTheory/Measure/Complex.lean Modified Mathlib/MeasureTheory/Measure/Hausdorff.lean Modified Mathlib/NumberTheory/ArithmeticFunction.lean Modified Mathlib/NumberTheory/Bertrand.lean Modified Mathlib/NumberTheory/LegendreSymbol/JacobiSymbol.lean Modified Mathlib/NumberTheory/LegendreSymbol/QuadraticChar/Basic.lean Modified Mathlib/NumberTheory/Liouville/LiouvilleWith.lean Modified Mathlib/NumberTheory/Liouville/Residual.lean Modified Mathlib/NumberTheory/Modular.lean Modified Mathlib/NumberTheory/NumberField/Embeddings.lean Modified Mathlib/NumberTheory/Padics/RingHoms.lean Modified Mathlib/NumberTheory/PellMatiyasevic.lean Modified Mathlib/NumberTheory/ZetaFunction.lean Modified Mathlib/Order/CompleteLattice.lean Modified Mathlib/Order/Directed.lean Modified Mathlib/Order/LiminfLimsup.lean Modified Mathlib/Order/RelIso/Basic.lean Modified Mathlib/Order/SuccPred/LinearLocallyFinite.lean Modified Mathlib/Order/WithBot.lean Modified Mathlib/Probability/IdentDistrib.lean Modified Mathlib/Probability/Kernel/CondCdf.lean Modified Mathlib/Probability/Process/Filtration.lean Modified Mathlib/Probability/Process/Stopping.lean Modified Mathlib/RepresentationTheory/Action.lean Modified Mathlib/RingTheory/Algebraic.lean Modified Mathlib/RingTheory/DedekindDomain/FiniteAdeleRing.lean Modified Mathlib/RingTheory/DiscreteValuationRing/TFAE.lean Modified Mathlib/RingTheory/IsAdjoinRoot.lean Modified Mathlib/RingTheory/Polynomial/Basic.lean Modified Mathlib/RingTheory/RootsOfUnity/Minpoly.lean Modified Mathlib/RingTheory/Valuation/ValuationSubring.lean Modified Mathlib/RingTheory/WittVector/Compare.lean Modified Mathlib/RingTheory/WittVector/WittPolynomial.lean Modified Mathlib/SetTheory/Cardinal/Ordinal.lean Modified Mathlib/SetTheory/Game/State.lean Modified Mathlib/SetTheory/Ordinal/Arithmetic.lean Modified Mathlib/SetTheory/Ordinal/FixedPoint.lean Modified Mathlib/SetTheory/Ordinal/Notation.lean Modified Mathlib/SetTheory/Surreal/Dyadic.lean Modified Mathlib/Topology/Algebra/Equicontinuity.lean Modified Mathlib/Topology/Category/CompHaus/Basic.lean Modified Mathlib/Topology/Category/CompHaus/EffectiveEpi.lean +/- theorem CompHaus.EffectiveEpiFamily.π'_comp_ι_hom Modified Mathlib/Topology/Category/CompHaus/ExplicitLimits.lean Modified Mathlib/Topology/Category/TopCat/Limits/Basic.lean Modified Mathlib/Topology/Category/TopCat/Opens.lean Modified Mathlib/Topology/Homotopy/Path.lean Modified Mathlib/Topology/IsLocallyHomeomorph.lean Modified Mathlib/Topology/List.lean Modified Mathlib/Topology/MetricSpace/EMetricSpace.lean Modified Mathlib/Topology/MetricSpace/Infsep.lean Modified Mathlib/Topology/Sheaves/Functors.lean Modified Mathlib/Topology/Sheaves/Sheafify.lean Modified Mathlib/Topology/UniformSpace/Completion.lean Modified scripts/lint-style.py Modified test/Monotonicity.lean Modified test/recover.lean 2023-07-04 15:57:10 69ef6f5 feat: port Archive.Examples.MersennePrimes (#5704) ESTIMATED CHANGES Modified Archive.lean Added Archive/Examples/MersennePrimes.lean Modified Mathlib/NumberTheory/LucasLehmer.lean + def LucasLehmer.norm_num_ext.evalLucasLehmerTest + theorem LucasLehmer.norm_num_ext.isNat_lucasLehmerTest + theorem LucasLehmer.norm_num_ext.isNat_not_lucasLehmerTest + def LucasLehmer.norm_num_ext.sMod' + theorem LucasLehmer.norm_num_ext.sMod'_eq_sMod + theorem LucasLehmer.norm_num_ext.testFalseHelper + theorem LucasLehmer.norm_num_ext.testTrueHelper - theorem LucasLehmer.sMod_succ 2023-07-04 14:43:29 85af2e4 feat: composition of `ContinuousMap`s is inducing (#5652) If `g : C(β, γ)` is inducing, then `fun f : C(α, β) ↦ g.comp f` is inducing. ESTIMATED CHANGES Modified Mathlib/Topology/CompactOpen.lean + theorem ContinuousMap.compactOpen_eq + theorem ContinuousMap.embedding_comp + theorem ContinuousMap.inducing_comp Modified Mathlib/Topology/Maps.lean + theorem Inducing.setOf_isOpen 2023-07-04 14:43:28 b0bb297 chore: rename Fin.cast to Fin.castIso (#5584) ESTIMATED CHANGES Modified Mathlib/Algebra/BigOperators/Fin.lean Modified Mathlib/AlgebraicTopology/DoldKan/Faces.lean Modified Mathlib/Analysis/Analytic/Basic.lean Modified Mathlib/Data/Fin/Basic.lean - theorem Fin.addNat_cast + theorem Fin.addNat_castIso - def Fin.cast - theorem Fin.castAdd_cast + theorem Fin.castAdd_castIso +/- theorem Fin.castAdd_zero + def Fin.castIso + theorem Fin.castIso_addNat + theorem Fin.castIso_addNat_left + theorem Fin.castIso_addNat_right + theorem Fin.castIso_addNat_zero + theorem Fin.castIso_castAdd_left + theorem Fin.castIso_castAdd_right + theorem Fin.castIso_castSucc + theorem Fin.castIso_eq_cast + theorem Fin.castIso_last + theorem Fin.castIso_mk + theorem Fin.castIso_natAdd + theorem Fin.castIso_natAdd_left + theorem Fin.castIso_natAdd_right + theorem Fin.castIso_natAdd_zero + theorem Fin.castIso_refl + theorem Fin.castIso_succ_eq + theorem Fin.castIso_to_equiv + theorem Fin.castIso_trans + theorem Fin.castIso_zero - theorem Fin.cast_addNat - theorem Fin.cast_addNat_left - theorem Fin.cast_addNat_right - theorem Fin.cast_addNat_zero - theorem Fin.cast_castAdd_left - theorem Fin.cast_castAdd_right - theorem Fin.cast_castSucc - theorem Fin.cast_eq_cast - theorem Fin.cast_last - theorem Fin.cast_mk - theorem Fin.cast_natAdd - theorem Fin.cast_natAdd_left - theorem Fin.cast_natAdd_right - theorem Fin.cast_natAdd_zero - theorem Fin.cast_refl - theorem Fin.cast_succ_eq - theorem Fin.cast_to_equiv - theorem Fin.cast_trans - theorem Fin.cast_zero - theorem Fin.coe_cast + theorem Fin.coe_castIso - theorem Fin.natAdd_cast + theorem Fin.natAdd_castIso - theorem Fin.natAdd_subNat_cast + theorem Fin.natAdd_subNat_castIso +/- theorem Fin.natAdd_zero + theorem Fin.succ_castIso_eq - theorem Fin.succ_cast_eq - theorem Fin.symm_cast + theorem Fin.symm_castIso Modified Mathlib/Data/Fin/Tuple/Basic.lean +/- theorem Fin.repeat_add +/- theorem Fin.repeat_one - theorem Fin.sigma_eq_iff_eq_comp_cast + theorem Fin.sigma_eq_iff_eq_comp_castIso - theorem Fin.sigma_eq_of_eq_comp_cast + theorem Fin.sigma_eq_of_eq_comp_castIso Modified Mathlib/Data/Fin/VecNotation.lean Modified Mathlib/Data/Finset/Sort.lean Modified Mathlib/Data/Fintype/Card.lean Modified Mathlib/Data/List/OfFn.lean +/- theorem List.get_ofFn Modified Mathlib/Data/List/Sort.lean Modified Mathlib/Data/Vector/Basic.lean Modified Mathlib/Data/ZMod/Basic.lean Modified Mathlib/GroupTheory/OrderOfElement.lean Modified Mathlib/LinearAlgebra/FiniteDimensional.lean Modified Mathlib/LinearAlgebra/TensorPower.lean Modified Mathlib/Logic/Equiv/Fin.lean Modified Mathlib/ModelTheory/Definability.lean Modified Mathlib/ModelTheory/Semantics.lean Modified Mathlib/Order/JordanHolder.lean 2023-07-04 13:48:21 409bee4 feat: add `TopologicalSpace.IsTopologicalBasis.inseparable_iff` (#5636) Also add `TopologicalSpace.IsTopologicalBasis.eq_iff` for a T₀ space. ESTIMATED CHANGES Modified Mathlib/Topology/Bases.lean Modified Mathlib/Topology/Separation.lean + theorem TopologicalSpace.IsTopologicalBasis.eq_iff + theorem TopologicalSpace.IsTopologicalBasis.inseparable_iff 2023-07-04 13:48:20 d90c998 feat: add `IsSeparable.secondCountableTopology` (#5635) ESTIMATED CHANGES Modified Mathlib/Topology/MetricSpace/Metrizable.lean + theorem TopologicalSpace.IsSeparable.secondCountableTopology 2023-07-04 12:26:05 3306b39 style: add missing space (#5711) ESTIMATED CHANGES Modified Mathlib/Logic/Equiv/Defs.lean +/- def EquivLike.toEquiv 2023-07-04 12:26:04 d3e6efa chore: forward port #19188 (#5709) ESTIMATED CHANGES Modified Mathlib/AlgebraicGeometry/Scheme.lean 2023-07-04 12:26:03 f35fae7 chore: restore an elementwise lemma (#5707) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Limits/Shapes/Types.lean + theorem CategoryTheory.Limits.Types.productIso_hom_comp_eval_apply 2023-07-04 12:26:02 a3a2bc4 feat: port Archive.OxfordInvariants.2021summer.Week3P1 (#5705) ESTIMATED CHANGES Modified Archive.lean Added Archive/OxfordInvariants/Summer2021/Week3P1.lean + theorem OxfordInvariants.Week3P1 2023-07-04 12:26:01 6fae06c feat: port RingTheory.Nullstellensatz (#5686) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/RingTheory/Nullstellensatz.lean + theorem MvPolynomial.IsPrime.vanishingIdeal_zeroLocus + theorem MvPolynomial.isMaximal_iff_eq_vanishingIdeal_singleton + theorem MvPolynomial.le_vanishingIdeal_zeroLocus + theorem MvPolynomial.mem_vanishingIdeal_iff + theorem MvPolynomial.mem_vanishingIdeal_singleton_iff + theorem MvPolynomial.mem_zeroLocus_iff + def MvPolynomial.pointToPoint + theorem MvPolynomial.pointToPoint_zeroLocus_le + theorem MvPolynomial.radical_le_vanishingIdeal_zeroLocus + def MvPolynomial.vanishingIdeal + theorem MvPolynomial.vanishingIdeal_anti_mono + theorem MvPolynomial.vanishingIdeal_empty + theorem MvPolynomial.vanishingIdeal_pointToPoint + theorem MvPolynomial.vanishingIdeal_zeroLocus_eq_radical + def MvPolynomial.zeroLocus + theorem MvPolynomial.zeroLocus_anti_mono + theorem MvPolynomial.zeroLocus_bot + theorem MvPolynomial.zeroLocus_top + theorem MvPolynomial.zeroLocus_vanishingIdeal_galoisConnection + theorem MvPolynomial.zeroLocus_vanishingIdeal_le 2023-07-04 11:14:49 cb02d09 chore: fix focusing dots (#5708) This PR is the result of running ``` find . -type f -name "*.lean" -exec sed -i -E 's/^( +)\. /\1· /' {} \; find . -type f -name "*.lean" -exec sed -i -E 'N;s/^( +·)\n +(.*)$/\1 \2/;P;D' {} \; ``` which firstly replaces `.` focusing dots with `·` and secondly removes isolated instances of such dots, unifying them with the following line. A new rule is placed in the style linter to verify this. ESTIMATED CHANGES Modified Mathlib/Algebra/BigOperators/Basic.lean Modified Mathlib/Algebra/Category/MonCat/Adjunctions.lean Modified Mathlib/Algebra/Category/MonCat/Colimits.lean Modified Mathlib/Algebra/DirectLimit.lean Modified Mathlib/Algebra/GCDMonoid/Finset.lean Modified Mathlib/Algebra/GroupPower/Order.lean Modified Mathlib/Algebra/Homology/Additive.lean Modified Mathlib/Algebra/Homology/HomologicalComplex.lean Modified Mathlib/Algebra/Homology/Homotopy.lean Modified Mathlib/Algebra/Homology/Single.lean Modified Mathlib/Algebra/IndicatorFunction.lean Modified Mathlib/Algebra/Module/LinearMap.lean Modified Mathlib/Algebra/Order/Field/Basic.lean Modified Mathlib/AlgebraicGeometry/AffineScheme.lean Modified Mathlib/AlgebraicGeometry/Limits.lean Modified Mathlib/AlgebraicGeometry/LocallyRingedSpace/HasColimits.lean Modified Mathlib/AlgebraicGeometry/Morphisms/Basic.lean Modified Mathlib/AlgebraicGeometry/Morphisms/QuasiCompact.lean Modified Mathlib/AlgebraicGeometry/OpenImmersion/Basic.lean Modified Mathlib/AlgebraicGeometry/OpenImmersion/Scheme.lean Modified Mathlib/AlgebraicGeometry/PresheafedSpace.lean Modified Mathlib/AlgebraicGeometry/Pullbacks.lean Modified Mathlib/AlgebraicGeometry/RingedSpace.lean Modified Mathlib/AlgebraicGeometry/Scheme.lean Modified Mathlib/AlgebraicGeometry/Spec.lean Modified Mathlib/AlgebraicGeometry/StructureSheaf.lean Modified Mathlib/AlgebraicTopology/AlternatingFaceMapComplex.lean Modified Mathlib/AlgebraicTopology/CechNerve.lean Modified Mathlib/AlgebraicTopology/DoldKan/Decomposition.lean Modified Mathlib/AlgebraicTopology/DoldKan/Faces.lean Modified Mathlib/AlgebraicTopology/DoldKan/HomotopyEquivalence.lean Modified Mathlib/AlgebraicTopology/DoldKan/NCompGamma.lean Modified Mathlib/AlgebraicTopology/DoldKan/NReflectsIso.lean Modified Mathlib/AlgebraicTopology/DoldKan/Projections.lean Modified Mathlib/AlgebraicTopology/ExtraDegeneracy.lean Modified Mathlib/AlgebraicTopology/MooreComplex.lean Modified Mathlib/AlgebraicTopology/SimplexCategory.lean Modified Mathlib/AlgebraicTopology/TopologicalSimplex.lean Modified Mathlib/Analysis/Convex/Segment.lean Modified Mathlib/Analysis/Convex/StoneSeparation.lean Modified Mathlib/Analysis/LocallyConvex/Basic.lean Modified Mathlib/Analysis/LocallyConvex/WithSeminorms.lean Modified Mathlib/Analysis/Normed/Ring/Seminorm.lean Modified Mathlib/Analysis/NormedSpace/lpSpace.lean Modified Mathlib/Analysis/Seminorm.lean Modified Mathlib/Analysis/SpecialFunctions/Complex/Arg.lean Modified Mathlib/CategoryTheory/Adjunction/FullyFaithful.lean Modified Mathlib/CategoryTheory/Category/Cat/Limit.lean Modified Mathlib/CategoryTheory/Category/PartialFun.lean Modified Mathlib/CategoryTheory/Category/Pointed.lean Modified Mathlib/CategoryTheory/Extensive.lean Modified Mathlib/CategoryTheory/Filtered.lean Modified Mathlib/CategoryTheory/Functor/LeftDerived.lean Modified Mathlib/CategoryTheory/Idempotents/Biproducts.lean Modified Mathlib/CategoryTheory/Idempotents/FunctorCategories.lean Modified Mathlib/CategoryTheory/Idempotents/FunctorExtension.lean Modified Mathlib/CategoryTheory/Limits/Bicones.lean Modified Mathlib/CategoryTheory/Limits/Constructions/Filtered.lean Modified Mathlib/CategoryTheory/Limits/Opposites.lean Modified Mathlib/CategoryTheory/Limits/Over.lean Modified Mathlib/CategoryTheory/Limits/Shapes/CommSq.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Diagonal.lean Modified Mathlib/CategoryTheory/Limits/Shapes/KernelPair.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Types.lean Modified Mathlib/CategoryTheory/Limits/Types.lean Modified Mathlib/CategoryTheory/Localization/Construction.lean Modified Mathlib/CategoryTheory/Localization/Predicate.lean Modified Mathlib/CategoryTheory/Monoidal/Free/Basic.lean Modified Mathlib/CategoryTheory/Monoidal/Free/Coherence.lean Modified Mathlib/CategoryTheory/Monoidal/Transport.lean Modified Mathlib/CategoryTheory/Preadditive/Injective.lean Modified Mathlib/CategoryTheory/Preadditive/Mat.lean Modified Mathlib/CategoryTheory/Preadditive/Schur.lean Modified Mathlib/CategoryTheory/Sites/LeftExact.lean Modified Mathlib/CategoryTheory/Sites/Plus.lean Modified Mathlib/CategoryTheory/Sites/SheafOfTypes.lean Modified Mathlib/CategoryTheory/Sites/Sieves.lean Modified Mathlib/CategoryTheory/Subobject/Basic.lean Modified Mathlib/CategoryTheory/Subobject/Comma.lean Modified Mathlib/CategoryTheory/Subobject/Lattice.lean Modified Mathlib/CategoryTheory/WithTerminal.lean Modified Mathlib/Combinatorics/Composition.lean Modified Mathlib/Combinatorics/Derangements/Basic.lean Modified Mathlib/Combinatorics/Young/SemistandardTableau.lean Modified Mathlib/Control/EquivFunctor/Instances.lean Modified Mathlib/Control/Fold.lean Modified Mathlib/Data/Complex/Exponential.lean Modified Mathlib/Data/ENat/Basic.lean Modified Mathlib/Data/Fin/Basic.lean Modified Mathlib/Data/Finset/NoncommProd.lean Modified Mathlib/Data/Finset/Powerset.lean Modified Mathlib/Data/Finset/Prod.lean Modified Mathlib/Data/Finset/Sigma.lean Modified Mathlib/Data/Finsupp/AList.lean Modified Mathlib/Data/Finsupp/Basic.lean Modified Mathlib/Data/Int/Bitwise.lean Modified Mathlib/Data/Int/Range.lean Modified Mathlib/Data/List/AList.lean Modified Mathlib/Data/List/Basic.lean Modified Mathlib/Data/List/Chain.lean Modified Mathlib/Data/List/Cycle.lean Modified Mathlib/Data/List/Forall2.lean Modified Mathlib/Data/List/MinMax.lean Modified Mathlib/Data/List/Nodup.lean Modified Mathlib/Data/List/OfFn.lean Modified Mathlib/Data/List/Pairwise.lean Modified Mathlib/Data/List/Perm.lean Modified Mathlib/Data/List/Permutation.lean Modified Mathlib/Data/List/Sigma.lean Modified Mathlib/Data/List/Sublists.lean Modified Mathlib/Data/MvPolynomial/Rename.lean Modified Mathlib/Data/Nat/Choose/Basic.lean Modified Mathlib/Data/Nat/Digits.lean Modified Mathlib/Data/Nat/ModEq.lean Modified Mathlib/Data/Ordmap/Ordnode.lean Modified Mathlib/Data/PEquiv.lean Modified Mathlib/Data/PFunctor/Multivariate/Basic.lean Modified Mathlib/Data/PNat/Xgcd.lean Modified Mathlib/Data/Part.lean Modified Mathlib/Data/Polynomial/RingDivision.lean Modified Mathlib/Data/Rat/Floor.lean Modified Mathlib/Data/Seq/Computation.lean Modified Mathlib/Data/Seq/Seq.lean Modified Mathlib/Data/Set/Basic.lean Modified Mathlib/Data/Set/Image.lean Modified Mathlib/Data/Set/Opposite.lean Modified Mathlib/Data/TypeVec.lean Modified Mathlib/Data/Vector/Basic.lean Modified Mathlib/Data/Vector/Snoc.lean Modified Mathlib/Data/ZMod/Basic.lean Modified Mathlib/FieldTheory/Normal.lean Modified Mathlib/FieldTheory/RatFunc.lean Modified Mathlib/Geometry/Manifold/VectorBundle/Basic.lean Modified Mathlib/GroupTheory/Congruence.lean Modified Mathlib/GroupTheory/FreeProduct.lean Modified Mathlib/GroupTheory/Nilpotent.lean Modified Mathlib/GroupTheory/Perm/Cycle/Basic.lean Modified Mathlib/GroupTheory/Perm/List.lean Modified Mathlib/GroupTheory/Perm/Sign.lean Modified Mathlib/GroupTheory/Perm/Support.lean Modified Mathlib/GroupTheory/SpecificGroups/Cyclic.lean Modified Mathlib/GroupTheory/Torsion.lean Modified Mathlib/Init/Data/List/Instances.lean Modified Mathlib/LinearAlgebra/Dual.lean Modified Mathlib/LinearAlgebra/Matrix/Adjugate.lean Modified Mathlib/LinearAlgebra/Matrix/Determinant.lean Modified Mathlib/LinearAlgebra/PiTensorProduct.lean Modified Mathlib/Logic/Equiv/Defs.lean Modified Mathlib/Logic/Equiv/Set.lean Modified Mathlib/MeasureTheory/Constructions/BorelSpace/Metrizable.lean Modified Mathlib/MeasureTheory/Function/StronglyMeasurable/Basic.lean Modified Mathlib/MeasureTheory/Integral/Layercake.lean Modified Mathlib/MeasureTheory/Integral/VitaliCaratheodory.lean Modified Mathlib/MeasureTheory/MeasurableSpace.lean Modified Mathlib/MeasureTheory/Measure/NullMeasurable.lean Modified Mathlib/MeasureTheory/Measure/OuterMeasure.lean Modified Mathlib/ModelTheory/Semantics.lean Modified Mathlib/NumberTheory/ArithmeticFunction.lean Modified Mathlib/NumberTheory/BernoulliPolynomials.lean Modified Mathlib/NumberTheory/Bertrand.lean Modified Mathlib/NumberTheory/ClassNumber/Finite.lean Modified Mathlib/NumberTheory/Cyclotomic/Basic.lean Modified Mathlib/NumberTheory/PellMatiyasevic.lean Modified Mathlib/Order/Atoms.lean Modified Mathlib/Order/Bounds/Basic.lean Modified Mathlib/Order/CompleteLattice.lean Modified Mathlib/Order/ConditionallyCompleteLattice/Basic.lean Modified Mathlib/Order/OmegaCompletePartialOrder.lean Modified Mathlib/Order/SuccPred/Basic.lean Modified Mathlib/Order/WithBot.lean Modified Mathlib/Order/Zorn.lean Modified Mathlib/Probability/Kernel/CondCdf.lean Modified Mathlib/RingTheory/Adjoin/Basic.lean Modified Mathlib/RingTheory/AdjoinRoot.lean Modified Mathlib/RingTheory/Artinian.lean Modified Mathlib/RingTheory/HahnSeries.lean Modified Mathlib/RingTheory/Ideal/Basic.lean Modified Mathlib/RingTheory/Ideal/LocalRing.lean Modified Mathlib/RingTheory/Ideal/MinimalPrime.lean Modified Mathlib/RingTheory/Ideal/Over.lean Modified Mathlib/RingTheory/IntegralDomain.lean Modified Mathlib/RingTheory/Polynomial/Basic.lean Modified Mathlib/RingTheory/Polynomial/Content.lean Modified Mathlib/RingTheory/TensorProduct.lean Modified Mathlib/RingTheory/UniqueFactorizationDomain.lean Modified Mathlib/RingTheory/WittVector/WittPolynomial.lean Modified Mathlib/SetTheory/Cardinal/Basic.lean Modified Mathlib/SetTheory/Cardinal/Cofinality.lean Modified Mathlib/SetTheory/Cardinal/Ordinal.lean Modified Mathlib/SetTheory/Lists.lean Modified Mathlib/SetTheory/Ordinal/Arithmetic.lean Modified Mathlib/SetTheory/Ordinal/Exponential.lean Modified Mathlib/SetTheory/Ordinal/Notation.lean Modified Mathlib/Topology/Algebra/InfiniteSum/Basic.lean Modified Mathlib/Topology/Category/TopCat/Opens.lean Modified Mathlib/Topology/Instances/RatLemmas.lean Modified Mathlib/Topology/MetricSpace/Kuratowski.lean Modified Mathlib/Topology/Sheaves/Functors.lean Modified Mathlib/Topology/Sheaves/LocalPredicate.lean Modified Mathlib/Topology/Sheaves/Operations.lean Modified Mathlib/Topology/Sheaves/Presheaf.lean Modified Mathlib/Topology/Sheaves/SheafCondition/PairwiseIntersections.lean Modified Mathlib/Topology/Sheaves/Skyscraper.lean Modified Mathlib/Topology/UniformSpace/Completion.lean Modified scripts/lint-style.py Modified test/interval_cases.lean 2023-07-04 11:14:48 47b0327 chore: fix Mathilb typos (#5706) ESTIMATED CHANGES Modified Mathlib/Algebra/HierarchyDesign.lean 2023-07-04 10:37:10 6c35041 chore: update SHAs after #19153 was reverted (#5712) ESTIMATED CHANGES Modified Mathlib/AlgebraicGeometry/Morphisms/QuasiCompact.lean Modified Mathlib/AlgebraicGeometry/RingedSpace.lean Modified Mathlib/AlgebraicGeometry/StructureSheaf.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Types.lean Modified Mathlib/Topology/QuasiSeparated.lean Modified Mathlib/Topology/Sheaves/Forget.lean Modified Mathlib/Topology/Sheaves/LocalPredicate.lean Modified Mathlib/Topology/Sheaves/Presheaf.lean Modified Mathlib/Topology/Sheaves/PresheafOfFunctions.lean Modified Mathlib/Topology/Sheaves/SheafCondition/UniqueGluing.lean Modified Mathlib/Topology/Sheaves/SheafOfFunctions.lean Modified Mathlib/Topology/Sheaves/Stalks.lean 2023-07-04 09:34:16 4f103b3 feat: generalize&merge `ContinuousMap.continuous_eval_const{,'}` (#5649) We had continuity of `fun f : C(X, Y) ↦ f a` in two cases: - `X` is a locally compact space; - `X` is a compact space and `Y` is a metric space. In fact, it is true in general topological spaces. ESTIMATED CHANGES Modified Mathlib/Topology/CompactOpen.lean - theorem ContinuousMap.continuous_coe' + theorem ContinuousMap.continuous_coe - theorem ContinuousMap.continuous_eval_const' + theorem ContinuousMap.continuous_eval_const +/- theorem ContinuousMap.exists_tendsto_compactOpen_iff_forall +/- def Homeomorph.continuousMapOfUnique Modified Mathlib/Topology/ContinuousFunction/Algebra.lean +/- theorem ContinuousMap.hasSum_apply +/- theorem ContinuousMap.periodic_tsum_comp_add_zsmul +/- theorem ContinuousMap.summable_apply +/- theorem ContinuousMap.tsum_apply Modified Mathlib/Topology/ContinuousFunction/Compact.lean - theorem ContinuousMap.continuous_coe - theorem ContinuousMap.continuous_eval_const Modified Mathlib/Topology/ContinuousFunction/Ideals.lean +/- theorem ContinuousMap.idealOfSet_closed Modified Mathlib/Topology/Homotopy/HomotopyGroup.lean Modified Mathlib/Topology/Separation.lean + theorem T2Space.of_injective_continuous 2023-07-04 09:34:15 141971f feat: units of polynomial rings (#4691) We proved that a polynomial is a unit if and only if all of its coefficients are nilpotent, except the constant term which is a unit. ESTIMATED CHANGES Modified Mathlib/Data/Polynomial/RingDivision.lean Modified Mathlib/RingTheory/Nilpotent.lean + theorem Commute.IsNilpotent.add_isUnit + theorem IsNilpotent.sub_one_isUnit Modified Mathlib/RingTheory/Polynomial/Basic.lean + theorem Polynomial.IsNilpotent.C_mul_X_pow_isNilpotent + theorem Polynomial.coeff_isUnit_isNilpotent_of_isUnit + theorem Polynomial.isUnit_iff_coeff_isUnit_isNilpotent + theorem Polynomial.isUnit_of_coeff_isUnit_isNilpotent 2023-07-04 08:44:29 30a855d feat: easy facts about essentially surjective functors (#5702) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/EssentialImage.lean + theorem CategoryTheory.Iso.map_essSurj 2023-07-04 08:33:59 eff98f6 chore: warn on cache misses (#5692) I only touched the parallel-curl branch, which I assume is the mostly widely used. Comparing toolchain files when using mathlib as a dependency would also be nice. ESTIMATED CHANGES Modified Cache/Requests.lean 2023-07-04 07:26:30 c282679 feat: use pp_with_univ (#5622) Certain definitions do nothing except change universes. We might as well have the pretty printer always show us these universes! ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Limits/Creates.lean Modified Mathlib/CategoryTheory/Limits/Filtered.lean Modified Mathlib/CategoryTheory/Limits/HasLimits.lean Modified Mathlib/CategoryTheory/Limits/Preserves/Basic.lean Modified Mathlib/CategoryTheory/Types.lean Modified Mathlib/Logic/Small/Basic.lean 2023-07-04 05:50:36 d285129 chore: correct name in Category/ULift docs (#5701) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Category/ULift.lean 2023-07-04 05:50:35 3aeae83 chore: dualize statements about pullbacks to pushouts (#5700) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Limits/Shapes/Pullbacks.lean Modified Mathlib/CategoryTheory/Limits/Shapes/WidePullbacks.lean + def CategoryTheory.Limits.WidePushoutShape.equivalenceOfEquiv + def CategoryTheory.Limits.WidePushoutShape.uliftEquivalence + theorem CategoryTheory.Limits.hasWidePushouts_shrink 2023-07-04 05:50:34 c60a13f feat: port Counterexamples.SorgenfreyLine (#4978) ESTIMATED CHANGES Modified Counterexamples.lean Added Counterexamples/SorgenfreyLine.lean + theorem Counterexample.SorgenfreyLine.continuous_toReal + theorem Counterexample.SorgenfreyLine.denseRange_coe_rat + theorem Counterexample.SorgenfreyLine.exists_Ico_disjoint_closed + theorem Counterexample.SorgenfreyLine.isClopen_Ici + theorem Counterexample.SorgenfreyLine.isClopen_Ici_prod + theorem Counterexample.SorgenfreyLine.isClopen_Ico + theorem Counterexample.SorgenfreyLine.isClopen_Iio + theorem Counterexample.SorgenfreyLine.isClosed_antidiagonal + theorem Counterexample.SorgenfreyLine.isClosed_iff + theorem Counterexample.SorgenfreyLine.isClosed_of_subset_antidiagonal + theorem Counterexample.SorgenfreyLine.isOpen_Ici + theorem Counterexample.SorgenfreyLine.isOpen_Ico + theorem Counterexample.SorgenfreyLine.isOpen_iff + theorem Counterexample.SorgenfreyLine.map_toReal_nhds + theorem Counterexample.SorgenfreyLine.nhds_antitone_basis_Ico_inv_pnat + theorem Counterexample.SorgenfreyLine.nhds_basis_Ico + theorem Counterexample.SorgenfreyLine.nhds_basis_Ico_inv_pnat + theorem Counterexample.SorgenfreyLine.nhds_basis_Ico_rat + theorem Counterexample.SorgenfreyLine.nhds_countable_basis_Ico_inv_pnat + theorem Counterexample.SorgenfreyLine.nhds_eq_comap + theorem Counterexample.SorgenfreyLine.nhds_eq_map + theorem Counterexample.SorgenfreyLine.nhds_prod_antitone_basis_inv_pnat + theorem Counterexample.SorgenfreyLine.not_metrizableSpace + theorem Counterexample.SorgenfreyLine.not_normalSpace_prod + theorem Counterexample.SorgenfreyLine.not_secondCountableTopology + def Counterexample.SorgenfreyLine.toReal + def Counterexample.SorgenfreyLine 2023-07-04 05:50:33 9b91d86 feat: port RingTheory.Jacobson (#4338) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/AlgebraicGeometry/PrimeSpectrum/Basic.lean Modified Mathlib/RingTheory/Ideal/Over.lean + theorem Ideal.isMaximal_comap_of_isIntegral_of_isMaximal' - theorem Ideal.isMaximal_comap_of_isIntegral_of_is_maximal' Modified Mathlib/RingTheory/IntegralClosure.lean + theorem RingHom.isIntegral_of_isIntegral_mul_unit - theorem RingHom.is_integral_of_is_integral_mul_unit + theorem isIntegral_of_mem_closure'' - theorem is_integral_of_mem_closure'' Added Mathlib/RingTheory/Jacobson.lean + theorem Ideal.IsJacobson.out + theorem Ideal.MvPolynomial.comp_C_integral_of_surjective_of_jacobson + theorem Ideal.MvPolynomial.isJacobson_MvPolynomial_fin + theorem Ideal.MvPolynomial.quotient_mk_comp_C_isIntegral_of_jacobson + theorem Ideal.Polynomial.Subring.mem_closure_image_of + theorem Ideal.Polynomial.comp_C_integral_of_surjective_of_jacobson + theorem Ideal.Polynomial.isIntegral_isLocalization_polynomial_quotient + theorem Ideal.Polynomial.isJacobson_polynomial_iff_isJacobson + theorem Ideal.Polynomial.isJacobson_polynomial_of_isJacobson + theorem Ideal.Polynomial.isMaximal_comap_C_of_isJacobson' + theorem Ideal.Polynomial.isMaximal_comap_C_of_isJacobson + theorem Ideal.Polynomial.isMaximal_comap_C_of_isMaximal + theorem Ideal.Polynomial.jacobson_bot_of_integral_localization + theorem Ideal.Polynomial.mem_closure_X_union_C + theorem Ideal.Polynomial.quotient_mk_comp_C_isIntegral_of_jacobson + theorem Ideal.disjoint_powers_iff_not_mem + theorem Ideal.isJacobson_iff + theorem Ideal.isJacobson_iff_prime_eq + theorem Ideal.isJacobson_iff_sInf_maximal' + theorem Ideal.isJacobson_iff_sInf_maximal + theorem Ideal.isJacobson_iso + theorem Ideal.isJacobson_localization + theorem Ideal.isJacobson_of_isIntegral' + theorem Ideal.isJacobson_of_isIntegral + theorem Ideal.isJacobson_of_surjective + theorem Ideal.isMaximal_iff_isMaximal_disjoint + theorem Ideal.isMaximal_of_isMaximal_disjoint + def Ideal.orderIsoOfMaximal + theorem Ideal.radical_eq_jacobson 2023-07-04 04:28:43 57535b0 chore: restore simp lemmas in Logic.Equiv.Set (#5643) Two simp lemmas were removed with porting notes because the LHS already simplified. I think instead they should have had their priority increased. ESTIMATED CHANGES Modified Mathlib/Logic/Equiv/Set.lean 2023-07-03 20:39:42 be66345 feat: port Archive.Imo.Imo2008Q2 (#5206) ESTIMATED CHANGES Modified Archive.lean Added Archive/Imo/Imo2008Q2.lean + theorem Imo2008Q2.imo2008_q2a + theorem Imo2008Q2.imo2008_q2b + def Imo2008Q2.rationalSolutions + theorem Imo2008Q2.subst_abc 2023-07-03 18:24:36 5c108f1 chore: scope notations from category theory. (#5685) Make sure in particular one can import Mathlib.Tactic for teaching without getting category theory notations in scope. Note that only two files needed an extra open. ESTIMATED CHANGES Modified Mathlib/AlgebraicTopology/FundamentalGroupoid/Basic.lean Modified Mathlib/AlgebraicTopology/TopologicalSimplex.lean Modified Mathlib/CategoryTheory/Category/Basic.lean Modified Mathlib/CategoryTheory/Category/Preorder.lean Modified Mathlib/CategoryTheory/Functor/Basic.lean Modified Mathlib/Combinatorics/Hall/Basic.lean Modified Mathlib/Combinatorics/SimpleGraph/Finsubgraph.lean Modified Mathlib/Topology/Sheaves/Sheafify.lean 2023-07-03 17:59:11 db9fb24 feat: port Archive.Imo.Imo1998Q2 (#5157) ESTIMATED CHANGES Modified Archive.lean Added Archive/Imo/Imo1998Q2.lean + def Imo1998Q2.A + theorem Imo1998Q2.A_card_lower_bound + theorem Imo1998Q2.A_card_upper_bound + theorem Imo1998Q2.A_fibre_over_contestant + theorem Imo1998Q2.A_fibre_over_contestant_card + theorem Imo1998Q2.A_fibre_over_judgePair + theorem Imo1998Q2.A_fibre_over_judgePair_card + theorem Imo1998Q2.A_maps_to_offDiag_judgePair + theorem Imo1998Q2.JudgePair.agree_iff_same_rating + theorem Imo1998Q2.add_sq_add_sq_sub + def Imo1998Q2.agreedContestants + theorem Imo1998Q2.clear_denominators + theorem Imo1998Q2.distinct_judge_pairs_card_lower_bound + theorem Imo1998Q2.judge_pairs_card_lower_bound + theorem Imo1998Q2.norm_bound_of_odd_sum + theorem imo1998_q2 2023-07-03 16:47:00 ef8a6a9 feat: port NumberTheory.ModularForms.Basic (#5662) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/NumberTheory/ModularForms/Basic.lean + theorem CuspForm.add_apply + def CuspForm.coeHom + theorem CuspForm.coe_add + theorem CuspForm.coe_neg + theorem CuspForm.coe_smul + theorem CuspForm.coe_sub + theorem CuspForm.coe_zero + theorem CuspForm.ext + theorem CuspForm.neg_apply + theorem CuspForm.smul_apply + theorem CuspForm.sub_apply + theorem CuspForm.toFun_eq_coe + theorem CuspForm.toSlashInvariantForm_coe + theorem CuspForm.zero_apply + structure CuspForm + theorem ModularForm.add_apply + def ModularForm.coeHom + theorem ModularForm.coe_add + theorem ModularForm.coe_neg + theorem ModularForm.coe_smul + theorem ModularForm.coe_sub + theorem ModularForm.coe_zero + theorem ModularForm.ext + def ModularForm.mul + theorem ModularForm.mul_coe + theorem ModularForm.neg_apply + theorem ModularForm.one_coe_eq_one + theorem ModularForm.smul_apply + theorem ModularForm.sub_apply + theorem ModularForm.toFun_eq_coe + theorem ModularForm.toSlashInvariantForm_coe + theorem ModularForm.zero_apply + structure ModularForm Modified Mathlib/NumberTheory/ModularForms/SlashInvariantForms.lean + theorem SlashInvariantForm.coe_mk + theorem SlashInvariantForm.coe_mul + theorem SlashInvariantForm.ext + def SlashInvariantForm.mul + theorem SlashInvariantForm.toFun_eq_coe - theorem slashInvariantForm_ext - theorem slashInvariantForm_toFun_eq_coe 2023-07-03 16:14:58 c156373 feat: port AlgebraicGeometry.Morphisms.QuasiCompact (#5642) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/AlgebraicGeometry/Limits.lean Added Mathlib/AlgebraicGeometry/Morphisms/QuasiCompact.lean + def AlgebraicGeometry.QuasiCompact.affineProperty + theorem AlgebraicGeometry.QuasiCompact.affineProperty_isLocal + theorem AlgebraicGeometry.QuasiCompact.affineProperty_stableUnderBaseChange + theorem AlgebraicGeometry.QuasiCompact.affineProperty_toProperty + theorem AlgebraicGeometry.QuasiCompact.affine_openCover_iff + theorem AlgebraicGeometry.QuasiCompact.affine_openCover_tFAE + theorem AlgebraicGeometry.QuasiCompact.is_local_at_target + theorem AlgebraicGeometry.QuasiCompact.openCover_iff + theorem AlgebraicGeometry.QuasiCompact.openCover_tFAE + theorem AlgebraicGeometry.compactSpace_iff_quasiCompact + theorem AlgebraicGeometry.compact_open_induction_on + theorem AlgebraicGeometry.exists_pow_mul_eq_zero_of_res_basicOpen_eq_zero_of_isAffineOpen + theorem AlgebraicGeometry.exists_pow_mul_eq_zero_of_res_basicOpen_eq_zero_of_isCompact + theorem AlgebraicGeometry.isCompact_basicOpen + theorem AlgebraicGeometry.isCompact_open_iff_eq_basicOpen_union + theorem AlgebraicGeometry.isCompact_open_iff_eq_finset_affine_union + theorem AlgebraicGeometry.quasiCompact_eq_affineProperty + theorem AlgebraicGeometry.quasiCompact_iff_affineProperty + theorem AlgebraicGeometry.quasiCompact_iff_forall_affine + theorem AlgebraicGeometry.quasiCompact_iff_spectral + theorem AlgebraicGeometry.quasiCompact_over_affine_iff + theorem AlgebraicGeometry.quasiCompact_respectsIso + theorem AlgebraicGeometry.quasiCompact_stableUnderBaseChange + theorem AlgebraicGeometry.quasiCompact_stableUnderComposition Modified Mathlib/AlgebraicGeometry/Scheme.lean + theorem AlgebraicGeometry.Scheme.Hom.continuous + theorem AlgebraicGeometry.Scheme.mem_basicOpen_top' 2023-07-03 14:48:03 ceaa4ec refactor: move all `register_simp_attr`s to 1 file (#5681) There are slight differences between `mathlib3` and `mathlib4` (different set of attributes, different lemmas are in core/std), so I redid the same refactor instead of forward-porting changes. mathlib3 PR: leanprover-community/mathlib#19223 ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Group/Defs.lean Modified Mathlib/Algebra/Group/Units.lean Modified Mathlib/Algebra/GroupWithZero/Defs.lean Modified Mathlib/Algebra/NeZero.lean Modified Mathlib/Algebra/Parity.lean Modified Mathlib/Control/Basic.lean Modified Mathlib/Control/Functor.lean +/- theorem Functor.map_id Modified Mathlib/Control/Monad/Basic.lean Deleted Mathlib/Control/SimpSet.lean Deleted Mathlib/Data/IsROrC/Attr.lean Modified Mathlib/Data/IsROrC/Basic.lean Modified Mathlib/Data/Nat/Parity.lean Modified Mathlib/Data/Prod/Basic.lean Modified Mathlib/Data/Set/Basic.lean +/- theorem Set.mem_setOf_eq Modified Mathlib/Data/Set/Image.lean Modified Mathlib/Data/Set/Prod.lean Modified Mathlib/Data/Subtype.lean Modified Mathlib/Data/TypeVec.lean Deleted Mathlib/Data/TypeVec/Attr.lean Modified Mathlib/Init/Function.lean +/- theorem Function.comp.left_id +/- theorem Function.comp.right_id Modified Mathlib/Logic/Basic.lean Modified Mathlib/Logic/Equiv/Defs.lean +/- theorem Equiv.invFun_as_coe +/- def Equiv.sigmaEquivProd +/- theorem Equiv.toFun_as_coe Modified Mathlib/Logic/Equiv/LocalEquiv.lean Deleted Mathlib/Logic/Equiv/MfldSimpsAttr.lean Modified Mathlib/Logic/Nontrivial.lean Modified Mathlib/MeasureTheory/Integral/Bochner.lean Deleted Mathlib/MeasureTheory/Integral/IntegralSimps.lean Modified Mathlib/RingTheory/WittVector/IsPoly.lean Modified Mathlib/RingTheory/WittVector/Verschiebung.lean Deleted Mathlib/RingTheory/WittVector/WittAttributes.lean Modified Mathlib/Tactic.lean Added Mathlib/Tactic/Attr/Core.lean Added Mathlib/Tactic/Attr/Register.lean Modified Mathlib/Tactic/HigherOrder.lean Modified Mathlib/Tactic/Nontriviality.lean Modified Mathlib/Tactic/Nontriviality/Core.lean Modified Mathlib/Tactic/Qify.lean Deleted Mathlib/Tactic/Qify/Attr.lean Modified Mathlib/Tactic/Zify.lean Deleted Mathlib/Tactic/Zify/Attr.lean 2023-07-03 14:48:02 e0de6cd feat: add lemma tendsto_pow_atTop_nhds_0_iff_lt_1 (#5656) Add lemma `tendsto_pow_atTop_nhds_0_iff_lt_1` showing the reverse implication of `tendsto_pow_atTop_nhds_0_of_lt_1`: if the geometric progression of an element in an Archimedean field tends to `0`, the element is strictly less than `1`. ESTIMATED CHANGES Modified Mathlib/Analysis/SpecificLimits/Basic.lean + theorem tendsto_pow_atTop_nhds_0_iff 2023-07-03 14:48:00 550a10d feat: port Counterexamples.Pseudoelement (#5209) ESTIMATED CHANGES Modified Counterexamples.lean Added Counterexamples/Pseudoelement.lean + theorem Counterexample.exist_ne_and_fst_eq_fst_and_snd_eq_snd + theorem Counterexample.fst_mk'_x_eq_fst_mk'_y + theorem Counterexample.fst_x_pseudo_eq_fst_y + theorem Counterexample.mk'_x_ne_mk'_y + theorem Counterexample.snd_mk'_x_eq_snd_mk'_y + theorem Counterexample.snd_x_pseudo_eq_snd_y + def Counterexample.x + theorem Counterexample.x_not_pseudo_eq + def Counterexample.y 2023-07-03 13:20:59 a1e1e2f fix: Data.Bool.Basic fix statement of `not_inj` (#5688) Due to the precedence of not, the statement was `!decide (a = !b) -> a = b`. Now it is the correct statement ESTIMATED CHANGES Modified Mathlib/Data/Bool/Basic.lean +/- theorem Bool.not_inj 2023-07-03 12:05:30 ae5e808 feat: port RepresentationTheory.GroupCohomology.Basic (#5468) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/RepresentationTheory/GroupCohomology/Basic.lean + def GroupCohomology.inhomogeneousCochainsIso + theorem GroupCohomology.linearYonedaObjResolution_d_apply + def InhomogeneousCochains.d + theorem InhomogeneousCochains.d_eq + def groupCohomology + def groupCohomologyIsoExt 2023-07-03 11:03:24 9c8d5b1 feat: port RepresentationTheory.Character (#5679) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/RepresentationTheory/Character.lean + theorem FdRep.average_char_eq_finrank_invariants + theorem FdRep.char_conj + theorem FdRep.char_dual + theorem FdRep.char_iso + theorem FdRep.char_linHom + theorem FdRep.char_mul_comm + theorem FdRep.char_one + theorem FdRep.char_orthonormal + theorem FdRep.char_tensor' + theorem FdRep.char_tensor + def FdRep.character 2023-07-03 11:03:23 3bce416 feat: cocones over Sieves and FamilyOfElements for yoneda (#5647) Adding some lemmas that relate a `FamilyOfElements` for yoneda presheaves with cocones over a sieve. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Sites/SheafOfTypes.lean + def CategoryTheory.Presieve.compatibleYonedaFamily_toCocone + def CategoryTheory.Presieve.yonedaFamilyOfElements_fromCocone + theorem CategoryTheory.Sieve.forallYonedaIsSheaf_iff_colimit + theorem CategoryTheory.Sieve.yonedaFamily_fromCocone_compatible 2023-07-03 11:03:22 d450fcd fix: precedence of `#` (#5623) ESTIMATED CHANGES Modified Counterexamples/Phillips.lean +/- theorem Counterexample.Phillips1940.apply_f_eq_continuousPart +/- theorem Counterexample.Phillips1940.comp_ae_eq_const +/- theorem Counterexample.Phillips1940.countable_compl_spf +/- theorem Counterexample.Phillips1940.countable_ne +/- theorem Counterexample.Phillips1940.countable_spf_mem +/- def Counterexample.Phillips1940.f +/- theorem Counterexample.Phillips1940.integrable_comp +/- theorem Counterexample.Phillips1940.integral_comp +/- theorem Counterexample.Phillips1940.measurable_comp +/- theorem Counterexample.Phillips1940.no_pettis_integral +/- theorem Counterexample.Phillips1940.norm_bound +/- theorem Counterexample.Phillips1940.sierpinski_pathological_family +/- def Counterexample.Phillips1940.spf Modified Mathlib/Algebra/AlgebraicCard.lean +/- theorem Algebraic.cardinal_mk_le_max +/- theorem Algebraic.cardinal_mk_le_mul +/- theorem Algebraic.cardinal_mk_of_infinite Modified Mathlib/Algebra/Quaternion.lean +/- theorem Cardinal.mk_quaternion +/- theorem Cardinal.mk_quaternionAlgebra +/- theorem Cardinal.mk_quaternionAlgebra_of_infinite +/- theorem Cardinal.mk_quaternion_of_infinite +/- theorem Cardinal.mk_univ_quaternion +/- theorem Cardinal.mk_univ_quaternionAlgebra +/- theorem Cardinal.mk_univ_quaternion_of_infinite Modified Mathlib/CategoryTheory/Limits/SmallComplete.lean Modified Mathlib/Computability/Encoding.lean +/- theorem Computability.FinEncoding.card_le_aleph0 Modified Mathlib/Data/Complex/Cardinality.lean +/- theorem mk_complex +/- theorem mk_univ_complex Modified Mathlib/Data/MvPolynomial/Cardinal.lean +/- theorem MvPolynomial.cardinal_lift_mk_le_max +/- theorem MvPolynomial.cardinal_mk_eq_lift +/- theorem MvPolynomial.cardinal_mk_le_max Modified Mathlib/Data/Polynomial/Cardinal.lean +/- theorem Polynomial.cardinal_mk_eq_max +/- theorem Polynomial.cardinal_mk_le_max Modified Mathlib/Data/Rat/Denumerable.lean +/- theorem Cardinal.mkRat Modified Mathlib/Data/Real/Cardinality.lean +/- theorem Cardinal.mk_Icc_real +/- theorem Cardinal.mk_Ici_real +/- theorem Cardinal.mk_Ico_real +/- theorem Cardinal.mk_Iic_real +/- theorem Cardinal.mk_Iio_real +/- theorem Cardinal.mk_Ioc_real +/- theorem Cardinal.mk_Ioi_real +/- theorem Cardinal.mk_Ioo_real +/- theorem Cardinal.mk_real +/- theorem Cardinal.mk_univ_real Modified Mathlib/Data/W/Cardinal.lean +/- theorem WType.cardinal_mk_eq_sum +/- theorem WType.cardinal_mk_le_max_aleph0_of_finite +/- theorem WType.cardinal_mk_le_of_le Modified Mathlib/FieldTheory/Cardinality.lean +/- theorem Field.nonempty_iff Modified Mathlib/FieldTheory/Finite/Polynomial.lean Modified Mathlib/FieldTheory/IsAlgClosed/Classification.lean +/- theorem Algebra.IsAlgebraic.cardinal_mk_le_max +/- theorem IsAlgClosed.ringEquivOfCardinalEqOfCharEq +/- theorem IsAlgClosed.ringEquivOfCardinalEqOfCharZero Modified Mathlib/GroupTheory/FreeProduct.lean +/- theorem FreeProduct.lift_word_prod_nontrivial_of_head_card Modified Mathlib/LinearAlgebra/Dimension.lean +/- theorem Basis.le_span +/- theorem Basis.mk_eq_rank'' +/- theorem Basis.mk_range_eq_rank +/- theorem Module.Free.rank_eq_card_chooseBasisIndex +/- theorem mk_eq_mk_of_basis' +/- theorem rank_span_le Modified Mathlib/LinearAlgebra/FiniteDimensional.lean Modified Mathlib/LinearAlgebra/Finrank.lean Modified Mathlib/LinearAlgebra/FreeModule/Rank.lean +/- theorem rank_finsupp' +/- theorem rank_finsupp_self' +/- theorem rank_finsupp_self Modified Mathlib/LinearAlgebra/LinearIndependent.lean Modified Mathlib/MeasureTheory/CardMeasurableSpace.lean +/- theorem MeasurableSpace.cardinal_generateMeasurable_le_continuum Modified Mathlib/ModelTheory/Basic.lean +/- theorem FirstOrder.Sequence₂.sum_card Modified Mathlib/ModelTheory/Encoding.lean +/- theorem FirstOrder.Language.BoundedFormula.card_le +/- theorem FirstOrder.Language.Term.card_le +/- theorem FirstOrder.Language.Term.card_sigma Modified Mathlib/ModelTheory/LanguageMap.lean +/- theorem FirstOrder.Language.card_constantsOn Modified Mathlib/ModelTheory/Satisfiability.lean Modified Mathlib/ModelTheory/Semantics.lean +/- theorem FirstOrder.Language.Sentence.realize_cardGe Modified Mathlib/ModelTheory/Skolem.lean +/- theorem FirstOrder.Language.card_functions_sum_skolem₁_le Modified Mathlib/ModelTheory/Substructures.lean +/- theorem FirstOrder.Language.Substructure.lift_card_closure_le_card_term Modified Mathlib/NumberTheory/LegendreSymbol/GaussSum.lean Modified Mathlib/NumberTheory/LegendreSymbol/QuadraticChar/GaussSum.lean Modified Mathlib/RingTheory/Localization/Cardinality.lean +/- theorem IsLocalization.card +/- theorem IsLocalization.card_le Modified Mathlib/SetTheory/Cardinal/Basic.lean +/- theorem Cardinal.add_def +/- theorem Cardinal.aleph0_le_mk +/- theorem Cardinal.card_le_of +/- theorem Cardinal.card_le_of_finset +/- theorem Cardinal.denumerable_iff +/- theorem Cardinal.eq_one_iff_unique +/- theorem Cardinal.exists_not_mem_of_length_lt +/- theorem Cardinal.finset_card_lt_aleph0 +/- theorem Cardinal.inductionOn +/- theorem Cardinal.infinite_iff +/- theorem Cardinal.le_aleph0_iff_set_countable +/- theorem Cardinal.le_def +/- theorem Cardinal.le_mk_diff_add_mk +/- theorem Cardinal.le_mk_iff_exists_set +/- theorem Cardinal.le_one_iff_subsingleton +/- theorem Cardinal.lift_mk_eq' +/- theorem Cardinal.lift_mk_fin +/- theorem Cardinal.lift_mk_le' +/- theorem Cardinal.lt_aleph0_iff_finite +/- theorem Cardinal.lt_aleph0_iff_fintype +/- theorem Cardinal.lt_aleph0_iff_set_finite +/- theorem Cardinal.lt_aleph0_iff_subtype_finite +/- theorem Cardinal.lt_aleph0_of_finite +/- theorem Cardinal.mk'_def +/- theorem Cardinal.mk_Prop +/- theorem Cardinal.mk_arrow +/- theorem Cardinal.mk_bool +/- theorem Cardinal.mk_coe_finset +/- theorem Cardinal.mk_congr +/- theorem Cardinal.mk_denumerable +/- theorem Cardinal.mk_diff_add_mk +/- theorem Cardinal.mk_empty +/- theorem Cardinal.mk_emptyCollection +/- theorem Cardinal.mk_emptyCollection_iff +/- theorem Cardinal.mk_eq_aleph0 +/- theorem Cardinal.mk_eq_nat_iff +/- theorem Cardinal.mk_eq_nat_iff_fintype +/- theorem Cardinal.mk_eq_one +/- theorem Cardinal.mk_eq_two_iff' +/- theorem Cardinal.mk_eq_two_iff +/- theorem Cardinal.mk_eq_zero +/- theorem Cardinal.mk_eq_zero_iff +/- theorem Cardinal.mk_fin +/- theorem Cardinal.mk_finset_of_fintype +/- theorem Cardinal.mk_fintype +/- theorem Cardinal.mk_iUnion_le +/- theorem Cardinal.mk_iUnion_le_sum_mk +/- theorem Cardinal.mk_image_eq +/- theorem Cardinal.mk_image_le +/- theorem Cardinal.mk_int +/- theorem Cardinal.mk_le_aleph0 +/- theorem Cardinal.mk_le_aleph0_iff +/- theorem Cardinal.mk_le_mk_mul_of_mk_preimage_le +/- theorem Cardinal.mk_le_mk_of_subset +/- theorem Cardinal.mk_le_of_injective +/- theorem Cardinal.mk_le_of_surjective +/- theorem Cardinal.mk_le_one_iff_set_subsingleton +/- theorem Cardinal.mk_list_eq_sum_pow +/- theorem Cardinal.mk_nat +/- theorem Cardinal.mk_ne_zero +/- theorem Cardinal.mk_ne_zero_iff +/- theorem Cardinal.mk_option +/- theorem Cardinal.mk_out +/- theorem Cardinal.mk_pNat +/- theorem Cardinal.mk_pempty +/- theorem Cardinal.mk_pi +/- theorem Cardinal.mk_plift_false +/- theorem Cardinal.mk_plift_true +/- theorem Cardinal.mk_powerset +/- theorem Cardinal.mk_prod +/- theorem Cardinal.mk_psum +/- theorem Cardinal.mk_punit +/- theorem Cardinal.mk_quot_le +/- theorem Cardinal.mk_quotient_le +/- theorem Cardinal.mk_range_eq +/- theorem Cardinal.mk_range_le +/- theorem Cardinal.mk_sUnion_le +/- theorem Cardinal.mk_sep +/- theorem Cardinal.mk_set +/- theorem Cardinal.mk_set_le +/- theorem Cardinal.mk_sigma +/- theorem Cardinal.mk_singleton +/- theorem Cardinal.mk_subtype_le +/- theorem Cardinal.mk_sum +/- theorem Cardinal.mk_sum_compl +/- theorem Cardinal.mk_toNat_eq_card +/- theorem Cardinal.mk_toNat_of_infinite +/- theorem Cardinal.mk_toPartENat_eq_coe_card +/- theorem Cardinal.mk_toPartENat_of_infinite +/- theorem Cardinal.mk_uLift +/- theorem Cardinal.mk_union_le +/- theorem Cardinal.mk_unit +/- theorem Cardinal.mk_univ +/- theorem Cardinal.mk_vector +/- theorem Cardinal.mul_def +/- theorem Cardinal.one_lt_iff_nontrivial +/- theorem Cardinal.power_def +/- theorem Cardinal.prod_const' +/- theorem Cardinal.sum_const' +/- theorem Cardinal.sum_le_iSup +/- theorem Cardinal.three_le +/- theorem Cardinal.toNat_congr +/- theorem Cardinal.toNat_eq_one_iff_unique +/- theorem Cardinal.toPartENat_congr +/- theorem Cardinal.two_le_iff' +/- theorem Cardinal.two_le_iff +/- theorem Function.Embedding.cardinal_le Modified Mathlib/SetTheory/Cardinal/Cofinality.lean +/- theorem Cardinal.derivFamily_lt_ord +/- theorem Cardinal.exists_infinite_fiber +/- theorem Cardinal.iSup_lt_of_isRegular +/- theorem Cardinal.infinite_pigeonhole_card_lt +/- theorem Cardinal.lsub_lt_ord_of_isRegular +/- theorem Cardinal.mk_bounded_subset +/- theorem Cardinal.mk_subset_mk_lt_cof +/- theorem Cardinal.sup_lt_ord_of_isRegular +/- theorem Order.cof_le +/- theorem Ordinal.cof_eq +/- theorem Ordinal.cof_lsub_le +/- theorem Ordinal.cof_type_le +/- theorem Ordinal.iSup_lt +/- theorem Ordinal.infinite_pigeonhole +/- theorem Ordinal.infinite_pigeonhole_card +/- theorem Ordinal.le_cof_type +/- theorem Ordinal.lsub_lt_ord +/- theorem Ordinal.lt_cof_type +/- theorem Ordinal.nfpFamily_lt_ord +/- theorem Ordinal.sup_lt_ord +/- theorem Ordinal.sup_lt_ord_lift Modified Mathlib/SetTheory/Cardinal/Continuum.lean +/- theorem Cardinal.mk_set_nat Modified Mathlib/SetTheory/Cardinal/Ordinal.lean +/- theorem Cardinal.add_mk_eq_max' +/- theorem Cardinal.add_mk_eq_max +/- theorem Cardinal.aleph0_mul_mk_eq +/- theorem Cardinal.countable_iff_lt_aleph_one +/- theorem Cardinal.extend_function_of_lt +/- theorem Cardinal.mk_add_one_eq +/- theorem Cardinal.mk_cardinal +/- theorem Cardinal.mk_compl_eq_mk_compl_finite_same +/- theorem Cardinal.mk_compl_eq_mk_compl_infinite +/- theorem Cardinal.mk_compl_of_infinite +/- theorem Cardinal.mk_finset_of_infinite +/- theorem Cardinal.mk_finsupp_nat +/- theorem Cardinal.mk_list_eq_aleph0 +/- theorem Cardinal.mk_list_eq_max_mk_aleph0 +/- theorem Cardinal.mk_list_eq_mk +/- theorem Cardinal.mk_list_le_max +/- theorem Cardinal.mk_mul_aleph0_eq +/- theorem Cardinal.mk_multiset_of_countable +/- theorem Cardinal.mk_multiset_of_infinite +/- theorem Cardinal.mk_multiset_of_isEmpty +/- theorem Cardinal.mk_multiset_of_nonempty +/- theorem Cardinal.mul_mk_eq_max Modified Mathlib/SetTheory/Ordinal/Arithmetic.lean Modified Mathlib/SetTheory/Ordinal/Basic.lean +/- theorem Cardinal.card_typein_lt +/- theorem Cardinal.mk_ord_out +/- theorem Cardinal.mk_ordinal_out +/- theorem Cardinal.ord_eq +/- theorem Cardinal.ord_eq_Inf +/- theorem Cardinal.ord_le_type +/- theorem Cardinal.univ_id +/- theorem Ordinal.card_type 2023-07-03 09:37:21 56e243f fix: move two trivial theorems over booleans to Bool/Basic (#5630) This eliminates an unnecessary dependency from Num.Bitwise to Bitvec.Defs. ESTIMATED CHANGES Modified Mathlib/Data/Bitvec/Defs.lean Modified Mathlib/Data/Bool/Basic.lean Modified Mathlib/Data/Num/Bitwise.lean 2023-07-03 07:59:33 f3e6284 feat: port Data.QPF.Multivariate.Constructions.Cofix (#2444) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Data/QPF/Multivariate/Constructions/Cofix.lean + def MvQPF.Cofix.abs + theorem MvQPF.Cofix.abs_repr + theorem MvQPF.Cofix.bisim' + theorem MvQPF.Cofix.bisim + theorem MvQPF.Cofix.bisim_rel + theorem MvQPF.Cofix.bisim₂ + def MvQPF.Cofix.corec' + def MvQPF.Cofix.corec'₁ + def MvQPF.Cofix.corec + def MvQPF.Cofix.corec₁ + def MvQPF.Cofix.dest + theorem MvQPF.Cofix.dest_corec' + theorem MvQPF.Cofix.dest_corec + theorem MvQPF.Cofix.dest_corec₁ + theorem MvQPF.Cofix.dest_mk + theorem MvQPF.Cofix.ext + theorem MvQPF.Cofix.ext_mk + def MvQPF.Cofix.map + def MvQPF.Cofix.mk + theorem MvQPF.Cofix.mk_dest + def MvQPF.Cofix.repr + def MvQPF.Cofix + def MvQPF.IsPrecongr + def MvQPF.Mcongr + def MvQPF.corecF + theorem MvQPF.corecF_eq + theorem MvQPF.corec_roll + theorem MvQPF.liftR_map + theorem MvQPF.liftR_map_last' + theorem MvQPF.liftR_map_last + def MvQPF.mRepr 2023-07-03 06:43:23 2a70296 chore: fix align linebreaks (#5683) The result of running ``` find . -type f -name "*.lean" -exec sed -i -E 'N;s/^#align ([^[:space:]]+)\n *([^[:space:]]+)$/#align \1 \2/' {} \; ``` Hopefully for the last time... ESTIMATED CHANGES Modified Mathlib/Analysis/SpecialFunctions/Complex/Arg.lean Modified Mathlib/Analysis/SpecialFunctions/Complex/Log.lean Modified Mathlib/CategoryTheory/Endofunctor/Algebra.lean Modified Mathlib/Data/Finset/Basic.lean Modified Mathlib/Data/Set/Ncard.lean Modified Mathlib/GroupTheory/SchurZassenhaus.lean Modified Mathlib/GroupTheory/Transfer.lean Modified Mathlib/MeasureTheory/Function/StronglyMeasurable/Basic.lean Modified Mathlib/RingTheory/IntegralClosure.lean Modified Mathlib/RingTheory/UniqueFactorizationDomain.lean Modified Mathlib/Topology/Connected.lean 2023-07-03 06:43:22 15cdb8e chore: fix grammar in docs (#5668) ESTIMATED CHANGES Modified Archive/MiuLanguage/DecisionSuf.lean Modified Archive/Wiedijk100Theorems/AscendingDescendingSequences.lean Modified Mathlib/Algebra/Category/SemigroupCat/Basic.lean Modified Mathlib/Algebra/Group/WithOne/Defs.lean Modified Mathlib/Algebra/Hom/Freiman.lean Modified Mathlib/Algebra/Homology/Augment.lean Modified Mathlib/Algebra/Homology/Single.lean Modified Mathlib/Algebra/Module/LinearMap.lean Modified Mathlib/Algebra/Star/Subalgebra.lean Modified Mathlib/Algebra/Tropical/Basic.lean Modified Mathlib/AlgebraicGeometry/Gluing.lean Modified Mathlib/AlgebraicGeometry/Morphisms/Basic.lean Modified Mathlib/AlgebraicGeometry/OpenImmersion/Scheme.lean Modified Mathlib/AlgebraicGeometry/Scheme.lean Modified Mathlib/Analysis/Analytic/IsolatedZeros.lean Modified Mathlib/Analysis/Calculus/Taylor.lean Modified Mathlib/Analysis/Complex/UpperHalfPlane/Basic.lean Modified Mathlib/Analysis/Convolution.lean Modified Mathlib/CategoryTheory/Enriched/Basic.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Products.lean Modified Mathlib/CategoryTheory/Limits/Shapes/SplitCoequalizer.lean Modified Mathlib/CategoryTheory/Preadditive/InjectiveResolution.lean Modified Mathlib/CategoryTheory/Preadditive/ProjectiveResolution.lean Modified Mathlib/Combinatorics/SetFamily/Shadow.lean Modified Mathlib/Combinatorics/SimpleGraph/Clique.lean Modified Mathlib/Computability/NFA.lean Modified Mathlib/Data/Finset/Basic.lean Modified Mathlib/Data/Finset/PImage.lean Modified Mathlib/Data/Fintype/Card.lean Modified Mathlib/Data/Matrix/Basic.lean Modified Mathlib/Data/Matrix/Block.lean Modified Mathlib/Data/PFunctor/Multivariate/Basic.lean Modified Mathlib/Data/QPF/Multivariate/Constructions/Fix.lean Modified Mathlib/Data/Set/Lattice.lean Modified Mathlib/FieldTheory/KrullTopology.lean Modified Mathlib/Geometry/Manifold/Algebra/SmoothFunctions.lean Modified Mathlib/GroupTheory/Congruence.lean Modified Mathlib/LinearAlgebra/Basis.lean Modified Mathlib/LinearAlgebra/FreeModule/PID.lean Modified Mathlib/MeasureTheory/Constructions/Prod/Integral.lean Modified Mathlib/MeasureTheory/Function/ConditionalExpectation/Indicator.lean Modified Mathlib/MeasureTheory/Function/ConditionalExpectation/Real.lean Modified Mathlib/MeasureTheory/Function/ConditionalExpectation/Unique.lean Modified Mathlib/MeasureTheory/Function/L1Space.lean Modified Mathlib/MeasureTheory/Integral/Lebesgue.lean Modified Mathlib/NumberTheory/Cyclotomic/Basic.lean Modified Mathlib/NumberTheory/Cyclotomic/PrimitiveRoots.lean Modified Mathlib/NumberTheory/NumberField/Embeddings.lean Modified Mathlib/NumberTheory/Padics/PadicNumbers.lean Modified Mathlib/Order/Category/OmegaCompletePartialOrder.lean Modified Mathlib/Order/Grade.lean Modified Mathlib/Probability/ConditionalExpectation.lean Modified Mathlib/Probability/Kernel/WithDensity.lean Modified Mathlib/Probability/Martingale/Convergence.lean Modified Mathlib/Probability/ProbabilityMassFunction/Constructions.lean Modified Mathlib/Probability/Process/Filtration.lean Modified Mathlib/Probability/Variance.lean Modified Mathlib/RingTheory/AlgebraTower.lean Modified Mathlib/RingTheory/LocalProperties.lean Modified Mathlib/RingTheory/NonUnitalSubring/Basic.lean Modified Mathlib/RingTheory/RootsOfUnity/Basic.lean Modified Mathlib/RingTheory/RootsOfUnity/Minpoly.lean Modified Mathlib/RingTheory/Trace.lean Modified Mathlib/RingTheory/WittVector/Verschiebung.lean Modified Mathlib/SetTheory/Game/Impartial.lean Modified Mathlib/Tactic/GCongr/Core.lean Modified Mathlib/Tactic/SlimCheck.lean Modified Mathlib/Topology/Algebra/Localization.lean Modified Mathlib/Topology/Algebra/Nonarchimedean/AdicTopology.lean Modified Mathlib/Topology/Homotopy/HSpaces.lean 2023-07-03 06:43:21 3d8581e fix: re-port Mathlib.Analysis.Convex.Cone.Proper (#5646) Forward port [#19008](https://github.com/leanprover-community/mathlib/pull/19008) When I ported this file (Mathlib/Analysis/Convex/Cone/Proper.lean) I did not realize that `mathport` had used an older commit without the latest PR. I'm forward porting it now. ESTIMATED CHANGES Modified Mathlib/Analysis/Convex/Cone/Proper.lean + theorem ProperCone.coe_comap + theorem ProperCone.comap_comap + theorem ProperCone.comap_id + theorem ProperCone.hyperplane_separation + theorem ProperCone.hyperplane_separation_of_nmem + theorem ProperCone.mem_comap 2023-07-03 06:01:57 87c27f3 fix: docs in multiplicity (#5682) ESTIMATED CHANGES Modified Mathlib/Data/Nat/Multiplicity.lean 2023-07-03 06:01:56 ea71ff1 feat: port Geometry.Manifold.WhitneyEmbedding (#5666) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Geometry/Manifold/WhitneyEmbedding.lean + theorem SmoothBumpCovering.comp_embeddingPiTangent_mfderiv + def SmoothBumpCovering.embeddingPiTangent + theorem SmoothBumpCovering.embeddingPiTangent_coe + theorem SmoothBumpCovering.embeddingPiTangent_injOn + theorem SmoothBumpCovering.embeddingPiTangent_injective + theorem SmoothBumpCovering.embeddingPiTangent_injective_mfderiv + theorem SmoothBumpCovering.embeddingPiTangent_ker_mfderiv + theorem SmoothBumpCovering.exists_immersion_euclidean + theorem exists_embedding_euclidean_of_compact 2023-07-03 05:44:26 c7c8ac3 feat: port AlgebraicGeometry.EllipticCurve.Point (#5541) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/AlgebraicGeometry/EllipticCurve/Point.lean + def EllipticCurve.Point.mk + theorem WeierstrassCurve.C_addPolynomial + theorem WeierstrassCurve.CoordinateRing.C_addPolynomial + theorem WeierstrassCurve.CoordinateRing.C_addPolynomial_slope + theorem WeierstrassCurve.Point.add_assoc + theorem WeierstrassCurve.Point.add_comm + theorem WeierstrassCurve.Point.add_def + theorem WeierstrassCurve.Point.add_eq_zero + theorem WeierstrassCurve.Point.add_left_neg + def WeierstrassCurve.Point.neg + theorem WeierstrassCurve.Point.neg_add_eq_zero + theorem WeierstrassCurve.Point.neg_def + theorem WeierstrassCurve.Point.neg_some + theorem WeierstrassCurve.Point.neg_zero + def WeierstrassCurve.Point.ofBaseChange + def WeierstrassCurve.Point.ofBaseChangeFun + theorem WeierstrassCurve.Point.ofBaseChange_injective + theorem WeierstrassCurve.Point.some_add_self_of_Y_eq + theorem WeierstrassCurve.Point.some_add_self_of_Y_ne' + theorem WeierstrassCurve.Point.some_add_self_of_Y_ne + theorem WeierstrassCurve.Point.some_add_some_of_X_ne' + theorem WeierstrassCurve.Point.some_add_some_of_X_ne + theorem WeierstrassCurve.Point.some_add_some_of_Y_eq + theorem WeierstrassCurve.Point.some_add_some_of_Y_ne' + theorem WeierstrassCurve.Point.some_add_some_of_Y_ne + theorem WeierstrassCurve.Point.toClass_eq_zero + theorem WeierstrassCurve.Point.toClass_injective + theorem WeierstrassCurve.Point.toClass_some + theorem WeierstrassCurve.Point.toClass_zero + theorem WeierstrassCurve.Point.zero_def + inductive WeierstrassCurve.Point + theorem WeierstrassCurve.XYIdeal'_eq + theorem WeierstrassCurve.XYIdeal_add_eq + theorem WeierstrassCurve.XYIdeal_eq₁ + theorem WeierstrassCurve.XYIdeal_eq₂ + theorem WeierstrassCurve.XYIdeal_mul_XYIdeal + theorem WeierstrassCurve.XYIdeal_neg_mul + theorem WeierstrassCurve.Y_eq_of_X_eq + theorem WeierstrassCurve.Y_eq_of_Y_ne + theorem WeierstrassCurve.addPolynomial_eq + theorem WeierstrassCurve.addPolynomial_slope + def WeierstrassCurve.addX + def WeierstrassCurve.addY' + def WeierstrassCurve.addY + theorem WeierstrassCurve.baseChange_addX + theorem WeierstrassCurve.baseChange_addX_of_baseChange + theorem WeierstrassCurve.baseChange_addY' + theorem WeierstrassCurve.baseChange_addY'_of_baseChange + theorem WeierstrassCurve.baseChange_addY + theorem WeierstrassCurve.baseChange_addY_of_baseChange + theorem WeierstrassCurve.baseChange_negY + theorem WeierstrassCurve.baseChange_negY_of_baseChange + theorem WeierstrassCurve.baseChange_slope + theorem WeierstrassCurve.baseChange_slope_of_baseChange + theorem WeierstrassCurve.derivative_addPolynomial_slope + theorem WeierstrassCurve.equation_add' + theorem WeierstrassCurve.equation_add + theorem WeierstrassCurve.equation_add_iff + theorem WeierstrassCurve.equation_neg + theorem WeierstrassCurve.equation_neg_iff + theorem WeierstrassCurve.equation_neg_of + theorem WeierstrassCurve.eval_negPolynomial + theorem WeierstrassCurve.mk_XYIdeal'_mul_mk_XYIdeal' + theorem WeierstrassCurve.mk_XYIdeal'_mul_mk_XYIdeal'_of_Y_eq + def WeierstrassCurve.negY + theorem WeierstrassCurve.negY_negY + theorem WeierstrassCurve.nonsingular_add' + theorem WeierstrassCurve.nonsingular_add + theorem WeierstrassCurve.nonsingular_add_of_eval_derivative_ne_zero + theorem WeierstrassCurve.nonsingular_neg + theorem WeierstrassCurve.nonsingular_neg_iff + theorem WeierstrassCurve.nonsingular_neg_of + theorem WeierstrassCurve.slope_of_X_ne + theorem WeierstrassCurve.slope_of_Y_eq + theorem WeierstrassCurve.slope_of_Y_ne + theorem WeierstrassCurve.slope_of_Y_ne_eq_eval Modified Mathlib/AlgebraicGeometry/EllipticCurve/Weierstrass.lean 2023-07-03 05:30:31 f32c393 feat: port Geometry.Manifold.Diffeomorph (#5660) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Geometry/Manifold/Diffeomorph.lean + theorem ContinuousLinearEquiv.coe_toDiffeomorph + theorem ContinuousLinearEquiv.coe_toDiffeomorph_symm + theorem ContinuousLinearEquiv.symm_toDiffeomorph + def ContinuousLinearEquiv.toDiffeomorph + theorem Diffeomorph.apply_symm_apply + theorem Diffeomorph.coeFn_injective + theorem Diffeomorph.coe_coe + theorem Diffeomorph.coe_prodComm + theorem Diffeomorph.coe_prodCongr + theorem Diffeomorph.coe_refl + theorem Diffeomorph.coe_toEquiv + theorem Diffeomorph.coe_toHomeomorph + theorem Diffeomorph.coe_toHomeomorph_symm + theorem Diffeomorph.coe_trans + theorem Diffeomorph.contMDiffAt_comp_diffeomorph_iff + theorem Diffeomorph.contMDiffAt_diffeomorph_comp_iff + theorem Diffeomorph.contMDiffAt_transDiffeomorph_left + theorem Diffeomorph.contMDiffAt_transDiffeomorph_right + theorem Diffeomorph.contMDiffOn_comp_diffeomorph_iff + theorem Diffeomorph.contMDiffOn_diffeomorph_comp_iff + theorem Diffeomorph.contMDiffOn_transDiffeomorph_left + theorem Diffeomorph.contMDiffOn_transDiffeomorph_right + theorem Diffeomorph.contMDiffWithinAt_comp_diffeomorph_iff + theorem Diffeomorph.contMDiffWithinAt_diffeomorph_comp_iff + theorem Diffeomorph.contMDiffWithinAt_transDiffeomorph_left + theorem Diffeomorph.contMDiffWithinAt_transDiffeomorph_right + theorem Diffeomorph.contMDiff_comp_diffeomorph_iff + theorem Diffeomorph.contMDiff_diffeomorph_comp_iff + theorem Diffeomorph.contMDiff_transDiffeomorph_left + theorem Diffeomorph.contMDiff_transDiffeomorph_right + theorem Diffeomorph.ext + theorem Diffeomorph.image_eq_preimage + theorem Diffeomorph.image_symm_image + def Diffeomorph.prodAssoc + def Diffeomorph.prodComm + theorem Diffeomorph.prodComm_symm + def Diffeomorph.prodCongr + theorem Diffeomorph.prodCongr_symm + theorem Diffeomorph.refl_toEquiv + theorem Diffeomorph.refl_trans + theorem Diffeomorph.self_trans_symm + theorem Diffeomorph.smooth_transDiffeomorph_left + theorem Diffeomorph.smooth_transDiffeomorph_right + theorem Diffeomorph.symm_apply_apply + theorem Diffeomorph.symm_image_eq_preimage + theorem Diffeomorph.symm_image_image + theorem Diffeomorph.symm_refl + theorem Diffeomorph.symm_toEquiv + theorem Diffeomorph.symm_toHomeomorph + theorem Diffeomorph.symm_trans' + theorem Diffeomorph.symm_trans_self + def Diffeomorph.toContMDiffMap + theorem Diffeomorph.toEquiv_coe_symm + theorem Diffeomorph.toEquiv_inj + theorem Diffeomorph.toEquiv_injective + def Diffeomorph.toHomeomorph + theorem Diffeomorph.toHomeomorph_toEquiv + theorem Diffeomorph.toLocalHomeomorph_mdifferentiable + def Diffeomorph.toTransDiffeomorph + theorem Diffeomorph.trans_refl + theorem Diffeomorph.uniqueDiffOn_image + theorem Diffeomorph.uniqueDiffOn_preimage + theorem Diffeomorph.uniqueMDiffOn_image + theorem Diffeomorph.uniqueMDiffOn_image_aux + theorem Diffeomorph.uniqueMDiffOn_preimage + structure Diffeomorph + theorem ModelWithCorners.coe_extChartAt_transDiffeomorph + theorem ModelWithCorners.coe_extChartAt_transDiffeomorph_symm + theorem ModelWithCorners.coe_transDiffeomorph + theorem ModelWithCorners.coe_transDiffeomorph_symm + theorem ModelWithCorners.extChartAt_transDiffeomorph_target + def ModelWithCorners.transDiffeomorph + theorem ModelWithCorners.transDiffeomorph_range 2023-07-03 01:56:28 5cd26e5 feat: Compare card of subgroup to card of group (#5347) Includes new lemmas, one that shows that the cardinality of a subgroup is at most the cardinality of the ambient group, and others which shows that the cardinality of the top group is equal to that of the ambient group, and that in fact this is iff. ESTIMATED CHANGES Modified Mathlib/GroupTheory/Subgroup/Finite.lean + theorem Subgroup.card_eq_iff_eq_top + theorem Subgroup.card_le_card_group + theorem Subgroup.card_top 2023-07-03 00:43:37 4ebd604 feat: define `NonUnitalSubalgebra` and develop basic API (#5512) This continues the non-unital-ization of mathlib. - [x] depends on: #5151 ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Algebra/NonUnitalSubalgebra.lean + def NonUnitalAlgHom.codRestrict + theorem NonUnitalAlgHom.coe_codRestrict + theorem NonUnitalAlgHom.coe_range + def NonUnitalAlgHom.equalizer + theorem NonUnitalAlgHom.injective_codRestrict + theorem NonUnitalAlgHom.mem_equalizer + theorem NonUnitalAlgHom.mem_range + theorem NonUnitalAlgHom.mem_range_self + def NonUnitalAlgHom.rangeRestrict + theorem NonUnitalAlgHom.range_comp + theorem NonUnitalAlgHom.range_comp_le_range + theorem NonUnitalAlgHom.subtype_comp_codRestrict + def NonUnitalAlgebra.adjoin + theorem NonUnitalAlgebra.adjoin_empty + theorem NonUnitalAlgebra.adjoin_induction' + theorem NonUnitalAlgebra.adjoin_induction + theorem NonUnitalAlgebra.adjoin_induction₂ + theorem NonUnitalAlgebra.adjoin_le + theorem NonUnitalAlgebra.adjoin_le_iff + theorem NonUnitalAlgebra.adjoin_toSubmodule + theorem NonUnitalAlgebra.adjoin_union + theorem NonUnitalAlgebra.adjoin_univ + theorem NonUnitalAlgebra.coe_bot + theorem NonUnitalAlgebra.coe_iInf + theorem NonUnitalAlgebra.coe_inf + theorem NonUnitalAlgebra.coe_sInf + theorem NonUnitalAlgebra.coe_top + theorem NonUnitalAlgebra.comap_top + theorem NonUnitalAlgebra.eq_top_iff + theorem NonUnitalAlgebra.iInf_toSubmodule + theorem NonUnitalAlgebra.inf_toNonUnitalSubsemiring + theorem NonUnitalAlgebra.inf_toSubmodule + theorem NonUnitalAlgebra.map_bot + theorem NonUnitalAlgebra.map_sup + theorem NonUnitalAlgebra.map_top + theorem NonUnitalAlgebra.mem_bot + theorem NonUnitalAlgebra.mem_iInf + theorem NonUnitalAlgebra.mem_inf + theorem NonUnitalAlgebra.mem_sInf + theorem NonUnitalAlgebra.mem_sup_left + theorem NonUnitalAlgebra.mem_sup_right + theorem NonUnitalAlgebra.mem_top + theorem NonUnitalAlgebra.mul_mem_sup + theorem NonUnitalAlgebra.range_id + theorem NonUnitalAlgebra.range_top_iff_surjective + theorem NonUnitalAlgebra.sInf_toNonUnitalSubsemiring + theorem NonUnitalAlgebra.sInf_toSubmodule + theorem NonUnitalAlgebra.self_mem_adjoin_singleton + theorem NonUnitalAlgebra.subset_adjoin + theorem NonUnitalAlgebra.toNonUnitalSubsemiring_eq_top + theorem NonUnitalAlgebra.toSubmodule_bot + theorem NonUnitalAlgebra.toSubmodule_eq_top + def NonUnitalAlgebra.toTop + theorem NonUnitalAlgebra.to_subring_eq_top + theorem NonUnitalAlgebra.top_toNonUnitalSubsemiring + theorem NonUnitalAlgebra.top_toSubmodule + theorem NonUnitalAlgebra.top_toSubring + def NonUnitalSubalgebra.center + theorem NonUnitalSubalgebra.center_eq_top + theorem NonUnitalSubalgebra.center_toNonUnitalSubring + theorem NonUnitalSubalgebra.center_toNonUnitalSubsemiring + def NonUnitalSubalgebra.centralizer + theorem NonUnitalSubalgebra.centralizer_le + theorem NonUnitalSubalgebra.centralizer_univ + theorem NonUnitalSubalgebra.coe_center + theorem NonUnitalSubalgebra.coe_centralizer + theorem NonUnitalSubalgebra.coe_comap + theorem NonUnitalSubalgebra.coe_copy + theorem NonUnitalSubalgebra.coe_iSup_of_directed + theorem NonUnitalSubalgebra.coe_inclusion + theorem NonUnitalSubalgebra.coe_map + theorem NonUnitalSubalgebra.coe_prod + theorem NonUnitalSubalgebra.coe_smul + theorem NonUnitalSubalgebra.coe_toNonUnitalSubring + theorem NonUnitalSubalgebra.coe_toNonUnitalSubsemiring + theorem NonUnitalSubalgebra.coe_toSubmodule + def NonUnitalSubalgebra.comap + theorem NonUnitalSubalgebra.copy_eq + theorem NonUnitalSubalgebra.ext + theorem NonUnitalSubalgebra.gc_map_comap + theorem NonUnitalSubalgebra.iSupLift_comp_inclusion + theorem NonUnitalSubalgebra.iSupLift_inclusion + theorem NonUnitalSubalgebra.iSupLift_mk + theorem NonUnitalSubalgebra.iSupLift_of_mem + def NonUnitalSubalgebra.inclusion + theorem NonUnitalSubalgebra.inclusion_inclusion + theorem NonUnitalSubalgebra.inclusion_injective + theorem NonUnitalSubalgebra.inclusion_mk + theorem NonUnitalSubalgebra.inclusion_right + theorem NonUnitalSubalgebra.inclusion_self + def NonUnitalSubalgebra.map + theorem NonUnitalSubalgebra.map_id + theorem NonUnitalSubalgebra.map_injective + theorem NonUnitalSubalgebra.map_le + theorem NonUnitalSubalgebra.map_map + theorem NonUnitalSubalgebra.map_mono + theorem NonUnitalSubalgebra.map_toNonUnitalSubsemiring + theorem NonUnitalSubalgebra.map_toSubmodule + theorem NonUnitalSubalgebra.mem_carrier + theorem NonUnitalSubalgebra.mem_center_iff + theorem NonUnitalSubalgebra.mem_centralizer_iff + theorem NonUnitalSubalgebra.mem_comap + theorem NonUnitalSubalgebra.mem_map + theorem NonUnitalSubalgebra.mem_prod + theorem NonUnitalSubalgebra.mem_toNonUnitalSubring + theorem NonUnitalSubalgebra.mem_toNonUnitalSubsemiring + theorem NonUnitalSubalgebra.mem_toSubmodule + def NonUnitalSubalgebra.prod + theorem NonUnitalSubalgebra.prod_inf_prod + theorem NonUnitalSubalgebra.prod_mono + theorem NonUnitalSubalgebra.prod_toSubmodule + theorem NonUnitalSubalgebra.prod_top + theorem NonUnitalSubalgebra.range_val + def NonUnitalSubalgebra.toNonUnitalSubring' + def NonUnitalSubalgebra.toNonUnitalSubring + theorem NonUnitalSubalgebra.toNonUnitalSubring_inj + theorem NonUnitalSubalgebra.toNonUnitalSubring_injective + def NonUnitalSubalgebra.toNonUnitalSubsemiring' + theorem NonUnitalSubalgebra.toNonUnitalSubsemiring_inj + theorem NonUnitalSubalgebra.toNonUnitalSubsemiring_injective + theorem NonUnitalSubalgebra.toNonUnitalSubsemiring_subtype + def NonUnitalSubalgebra.toSubmodule' + def NonUnitalSubalgebra.toSubmoduleEquiv + theorem NonUnitalSubalgebra.toSubmodule_inj + theorem NonUnitalSubalgebra.toSubmodule_injective + theorem NonUnitalSubalgebra.toSubmodule_toNonUnitalSubalgebra + theorem NonUnitalSubalgebra.toSubring_subtype + structure NonUnitalSubalgebra + theorem NonUnitalSubalgebraClass.coeSubtype + def NonUnitalSubalgebraClass.subtype + theorem Set.smul_mem_center + theorem Set.smul_mem_centralizer + theorem Submodule.coe_toNonUnitalSubalgebra + theorem Submodule.mem_toNonUnitalSubalgebra + def Submodule.toNonUnitalSubalgebra + theorem Submodule.toNonUnitalSubalgebra_mk + theorem Submodule.toNonUnitalSubalgebra_toSubmodule + theorem mem_nonUnitalSubalgebraOfNonUnitalSubring + theorem mem_nonUnitalSubalgebraOfNonUnitalSubsemiring + def nonUnitalSubalgebraOfNonUnitalSubring + def nonUnitalSubalgebraOfNonUnitalSubsemiring Modified Mathlib/Algebra/Hom/NonUnitalAlg.lean + theorem NonUnitalAlgHom.coe_id Modified Mathlib/Algebra/Module/Submodule/Basic.lean + def SMulMemClass.toModule' Modified Mathlib/GroupTheory/GroupAction/SubMulAction.lean + def SMulMemClass.ofIsScalarTower Modified Mathlib/LinearAlgebra/Span.lean + theorem Submodule.span_induction₂ 2023-07-02 18:13:28 a5fc376 feat: port NumberTheory.ModularForms.JacobiTheta.Manifold (#5670) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/NumberTheory/ModularForms/JacobiTheta/Manifold.lean + theorem mdifferentiable_jacobiTheta 2023-07-02 17:59:31 9dd0886 feat: port RepresentationTheory.Invariants (#5655) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/RepresentationTheory/Invariants.lean + theorem GroupAlgebra.mul_average_left + theorem GroupAlgebra.mul_average_right + theorem Representation.averageMap_id + theorem Representation.averageMap_invariant + def Representation.invariants + theorem Representation.invariants_eq_inter + theorem Representation.isProj_averageMap + def Representation.linHom.invariantsEquivFdRepHom + def Representation.linHom.invariantsEquivRepHom + theorem Representation.linHom.mem_invariants_iff_comm + theorem Representation.mem_invariants 2023-07-02 14:32:50 6c1021b fix: precedence of `⁺`, `⁻` and `abs` (#5619) ESTIMATED CHANGES Modified Mathlib/Algebra/Abs.lean Modified Mathlib/Algebra/Order/Field/Basic.lean +/- theorem abs_inv Modified Mathlib/Algebra/Order/Group/Abs.lean +/- theorem abs_by_cases +/- theorem abs_le_max_abs_abs +/- theorem abs_max_le_max_abs_abs +/- theorem abs_min_le_max_abs_abs +/- theorem min_abs_abs_le_abs_max +/- theorem min_abs_abs_le_abs_min Modified Mathlib/Algebra/Order/Group/MinMax.lean +/- theorem abs_max_sub_max_le_max +/- theorem abs_min_sub_min_le_max Modified Mathlib/Algebra/Order/LatticeGroup.lean Modified Mathlib/Algebra/Parity.lean +/- theorem even_abs Modified Mathlib/Analysis/Complex/PhragmenLindelof.lean Modified Mathlib/Analysis/Convex/Gauge.lean Modified Mathlib/Analysis/InnerProductSpace/Basic.lean Modified Mathlib/Analysis/MellinTransform.lean Modified Mathlib/Analysis/Normed/Group/AddCircle.lean Modified Mathlib/Analysis/Normed/Group/Basic.lean +/- theorem Real.ennnorm_eq_ofReal_abs Modified Mathlib/Analysis/Normed/Order/Lattice.lean Modified Mathlib/Analysis/SpecialFunctions/CompareExp.lean Modified Mathlib/Analysis/SpecialFunctions/Gaussian.lean Modified Mathlib/Analysis/SpecialFunctions/Log/Base.lean +/- theorem Real.logb_abs Modified Mathlib/Analysis/SpecialFunctions/Log/Basic.lean +/- theorem Real.log_abs Modified Mathlib/Analysis/SpecialFunctions/Log/Deriv.lean Modified Mathlib/Analysis/SpecialFunctions/Pow/Continuity.lean Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Angle.lean +/- theorem Real.Angle.coe_abs_toReal_of_sign_nonneg +/- theorem Real.Angle.neg_coe_abs_toReal_of_sign_nonpos Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Basic.lean Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Deriv.lean +/- theorem Real.abs_sinh Modified Mathlib/Analysis/SpecificLimits/Normed.lean Modified Mathlib/Data/Complex/Basic.lean +/- theorem Complex.abs_le_sqrt_two_mul_max +/- theorem Complex.int_cast_abs Modified Mathlib/Data/Complex/Exponential.lean +/- theorem Real.cos_abs +/- theorem Real.cosh_abs Modified Mathlib/Data/Int/Order/Basic.lean +/- theorem Int.natAbs_abs Modified Mathlib/Data/Real/EReal.lean +/- theorem EReal.abs_def Modified Mathlib/Data/Real/Hyperreal.lean +/- theorem Hyperreal.infinitePos_abs_iff_infinite +/- theorem Hyperreal.infinitePos_abs_iff_infinite_abs +/- theorem Hyperreal.infinite_abs_iff Modified Mathlib/Data/Sign.lean Modified Mathlib/Geometry/Euclidean/Circumcenter.lean Modified Mathlib/GroupTheory/Archimedean.lean Modified Mathlib/GroupTheory/OrderOfElement.lean Modified Mathlib/MeasureTheory/Function/AEEqFun.lean Modified Mathlib/MeasureTheory/Function/Jacobian.lean Modified Mathlib/MeasureTheory/Function/LpOrder.lean +/- theorem MeasureTheory.Lp.coeFn_abs +/- theorem MeasureTheory.Memℒp.abs Modified Mathlib/MeasureTheory/Integral/CircleIntegral.lean +/- theorem circleMap_mem_sphere' +/- theorem image_circleMap_Ioc +/- theorem range_circleMap Modified Mathlib/MeasureTheory/Integral/IntervalIntegral.lean Modified Mathlib/MeasureTheory/Measure/Lebesgue/Basic.lean +/- theorem Real.volume_interval Modified Mathlib/MeasureTheory/Measure/Lebesgue/EqHaar.lean Modified Mathlib/NumberTheory/Liouville/Basic.lean Modified Mathlib/NumberTheory/Pell.lean Modified Mathlib/Order/Filter/FilterProduct.lean +/- theorem Filter.Germ.const_abs Modified Mathlib/Probability/Martingale/Convergence.lean Modified Mathlib/Probability/StrongLaw.lean Modified Mathlib/Topology/Algebra/Order/Group.lean Modified Mathlib/Topology/ContinuousFunction/Ordered.lean +/- theorem ContinuousMap.abs_apply 2023-07-02 13:59:19 8dc87f2 feat: port Analysis.Complex.UpperHalfPlane.Manifold (#5658) Also define `UpperHalfPlane.coe` so that type synonym doesn't leak through API. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Analysis/Complex/UpperHalfPlane/Basic.lean - theorem UpperHalfPlane.SpecialLinearGroup.im_smul_eq_div_normSq + theorem UpperHalfPlane.ext' +/- theorem UpperHalfPlane.ext + theorem UpperHalfPlane.ext_iff Added Mathlib/Analysis/Complex/UpperHalfPlane/Manifold.lean + theorem UpperHalfPlane.mdifferentiable_coe + theorem UpperHalfPlane.smooth_coe Modified Mathlib/Analysis/Complex/UpperHalfPlane/Metric.lean Modified Mathlib/NumberTheory/Modular.lean Modified Mathlib/NumberTheory/ModularForms/SlashActions.lean Modified Mathlib/NumberTheory/ZetaFunction.lean 2023-07-02 13:45:30 8c73845 chore: golf `FunctionsBoundedAtInfty` (#5661) Use lemmas about `Filter.HasBasis` to golf some proofs. ESTIMATED CHANGES Modified Mathlib/Analysis/Complex/UpperHalfPlane/FunctionsBoundedAtInfty.lean 2023-07-02 11:33:27 3de9de6 doc: fix typo (#5664) "`hom`" should be "`Hom`". ESTIMATED CHANGES Modified Mathlib/Combinatorics/Quiver/Basic.lean 2023-07-02 10:21:10 03fc68a fix: `∑'` precedence (#5615) * Also remove most superfluous parentheses around big operators (`∑`, `∏` and variants). * roughly the used regex: `([^a-zA-Zα-ωΑ-Ω'𝓝ℳ₀𝕂ₛ)]) \(([∑∏][^()∑∏]*,[^()∑∏:]*)\) ([⊂⊆=<≤])` replaced by `$1 $2 $3` ESTIMATED CHANGES Modified Archive/Imo/Imo2019Q4.lean Modified Mathlib/Algebra/Algebra/Subalgebra/Basic.lean Modified Mathlib/Algebra/BigOperators/Basic.lean +/- theorem Finset.eq_one_of_prod_eq_one +/- theorem Finset.exists_ne_one_of_prod_ne_one +/- theorem Finset.nonempty_of_prod_ne_one +/- theorem Finset.prod_attach +/- theorem Finset.prod_coe_sort +/- theorem Finset.prod_coe_sort_eq_attach +/- theorem Finset.prod_cons +/- theorem Finset.prod_const +/- theorem Finset.prod_div_distrib +/- theorem Finset.prod_empty +/- theorem Finset.prod_eq_one +/- theorem Finset.prod_eq_pow_card +/- theorem Finset.prod_eq_zero +/- theorem Finset.prod_eq_zero_iff +/- theorem Finset.prod_insert +/- theorem Finset.prod_insert_one +/- theorem Finset.prod_mul_distrib +/- theorem Finset.prod_ne_zero_iff +/- theorem Finset.prod_of_empty +/- theorem Finset.prod_pow +/- theorem Finset.prod_range_one +/- theorem Finset.prod_range_zero +/- theorem Finset.prod_singleton +/- theorem Finset.prod_zpow +/- theorem Multiset.toFinset_sum_count_eq Modified Mathlib/Algebra/BigOperators/Fin.lean +/- theorem Fin.prod_const +/- theorem Fin.prod_univ_four +/- theorem Fin.prod_univ_one +/- theorem Fin.prod_univ_three +/- theorem Fin.prod_univ_two +/- theorem Fin.prod_univ_zero +/- theorem Fin.sum_const Modified Mathlib/Algebra/BigOperators/Finprod.lean +/- theorem exists_ne_one_of_finprod_mem_ne_one +/- theorem finprod_eq_if +/- theorem finprod_eq_one_of_forall_eq_one +/- theorem finprod_eq_prod_of_fintype +/- theorem finprod_false +/- theorem finprod_mem_def +/- theorem finprod_mem_finset_eq_prod +/- theorem finprod_mem_insert_one +/- theorem finprod_mem_mulSupport +/- theorem finprod_mem_of_eqOn_one +/- theorem finprod_mem_range +/- theorem finprod_mem_univ +/- theorem finprod_of_isEmpty +/- theorem finprod_set_coe_eq_finprod_mem +/- theorem finprod_true +/- theorem finprod_unique +/- theorem nonempty_of_finprod_mem_ne_one Modified Mathlib/Algebra/BigOperators/Intervals.lean +/- theorem Finset.sum_range_id Modified Mathlib/Algebra/BigOperators/NatAntidiagonal.lean Modified Mathlib/Algebra/BigOperators/Option.lean Modified Mathlib/Algebra/BigOperators/Order.lean +/- theorem Finset.exists_le_of_prod_le' +/- theorem Finset.exists_lt_of_prod_lt' +/- theorem Finset.exists_one_lt_of_prod_one_of_exists_ne_one' +/- theorem Finset.prod_eq_one_iff' +/- theorem Finset.prod_le_one' +/- theorem Finset.prod_le_one +/- theorem Finset.prod_le_prod' +/- theorem Finset.prod_le_prod_of_subset' +/- theorem Finset.prod_lt_one' +/- theorem Finset.prod_lt_one Modified Mathlib/Algebra/BigOperators/Pi.lean Modified Mathlib/Algebra/BigOperators/Ring.lean Modified Mathlib/Algebra/GeomSum.lean +/- theorem geom_sum_one +/- theorem geom_sum_two +/- theorem geom_sum_zero +/- theorem one_geom_sum +/- theorem zero_geom_sum Modified Mathlib/Algebra/IndicatorFunction.lean Modified Mathlib/Algebra/Order/Rearrangement.lean Modified Mathlib/Analysis/BoxIntegral/Basic.lean Modified Mathlib/Analysis/BoxIntegral/DivergenceTheorem.lean Modified Mathlib/Analysis/BoxIntegral/Partition/Additive.lean Modified Mathlib/Analysis/BoxIntegral/Partition/Basic.lean Modified Mathlib/Analysis/Convex/Basic.lean +/- theorem stdSimplex_eq_inter Modified Mathlib/Analysis/Convex/Between.lean Modified Mathlib/Analysis/Convex/Caratheodory.lean Modified Mathlib/Analysis/Convex/Combination.lean +/- theorem Convex.sum_mem +/- theorem Finset.centerMass_eq_of_sum_1 +/- theorem Finset.centerMass_insert Modified Mathlib/Analysis/Convex/Jensen.lean +/- theorem ConvexOn.map_sum_le Modified Mathlib/Analysis/Convex/StoneSeparation.lean Modified Mathlib/Analysis/Fourier/AddCircle.lean Modified Mathlib/Analysis/Fourier/PoissonSummation.lean Modified Mathlib/Analysis/InnerProductSpace/Basic.lean Modified Mathlib/Analysis/InnerProductSpace/PiL2.lean Modified Mathlib/Analysis/InnerProductSpace/l2Space.lean Modified Mathlib/Analysis/MeanInequalities.lean +/- theorem NNReal.geom_mean_le_arith_mean_weighted +/- theorem Real.arith_mean_weighted_of_constant Modified Mathlib/Analysis/MeanInequalitiesPow.lean +/- theorem ENNReal.rpow_arith_mean_le_arith_mean_rpow +/- theorem NNReal.arith_mean_le_rpow_mean +/- theorem NNReal.pow_arith_mean_le_arith_mean_pow +/- theorem NNReal.rpow_arith_mean_le_arith_mean_rpow +/- theorem Real.arith_mean_le_rpow_mean Modified Mathlib/Analysis/Normed/Group/Basic.lean +/- theorem Pi.sum_nnnorm_apply_le_nnnorm' +/- theorem Pi.sum_norm_apply_le_norm' Modified Mathlib/Analysis/NormedSpace/FiniteDimension.lean Modified Mathlib/Analysis/NormedSpace/Multilinear.lean Modified Mathlib/Analysis/NormedSpace/lpSpace.lean +/- theorem memℓp_gen' Modified Mathlib/Analysis/PSeries.lean Modified Mathlib/Analysis/SpecialFunctions/Bernstein.lean Modified Mathlib/Analysis/SpecificLimits/Basic.lean +/- theorem ENNReal.tsum_geometric +/- theorem tsum_geometric_nNReal +/- theorem tsum_geometric_of_lt_1 +/- theorem tsum_geometric_two' Modified Mathlib/Analysis/SpecificLimits/Normed.lean +/- theorem tsum_geometric_of_abs_lt_1 +/- theorem tsum_geometric_of_norm_lt_1 Modified Mathlib/Analysis/SumIntegralComparisons.lean Modified Mathlib/CategoryTheory/Preadditive/Biproducts.lean +/- theorem CategoryTheory.Limits.biproduct.total +/- def CategoryTheory.Limits.isBilimitOfTotal Modified Mathlib/Combinatorics/Additive/Behrend.lean +/- theorem Behrend.sum_sq_le_of_mem_box Modified Mathlib/Combinatorics/Colex.lean Modified Mathlib/Combinatorics/Composition.lean +/- theorem Composition.sum_blocksFun Modified Mathlib/Combinatorics/Configuration.lean Modified Mathlib/Combinatorics/Pigeonhole.lean +/- theorem Fintype.exists_sum_fiber_le_of_sum_le_nsmul +/- theorem Fintype.exists_sum_fiber_lt_of_sum_lt_nsmul Modified Mathlib/Combinatorics/SimpleGraph/DegreeSum.lean +/- theorem SimpleGraph.sum_degrees_eq_twice_card_edges Modified Mathlib/Combinatorics/SimpleGraph/IncMatrix.lean Modified Mathlib/Combinatorics/SimpleGraph/Regularity/Energy.lean Modified Mathlib/Data/Complex/Exponential.lean +/- theorem Real.sum_le_exp_of_nonneg Modified Mathlib/Data/Fin/Tuple/NatAntidiagonal.lean Modified Mathlib/Data/Fin/Tuple/Reflection.lean Modified Mathlib/Data/Finsupp/Antidiagonal.lean Modified Mathlib/Data/Fintype/BigOperators.lean +/- theorem Fintype.prod_bool +/- theorem Fintype.prod_congr +/- theorem Fintype.prod_eq_one +/- theorem Fintype.prod_eq_single +/- theorem Fintype.prod_option Modified Mathlib/Data/Multiset/Fintype.lean Modified Mathlib/Data/Nat/Choose/Sum.lean Modified Mathlib/Data/Nat/Multiplicity.lean Modified Mathlib/Data/Nat/Squarefree.lean Modified Mathlib/Data/Rat/BigOperators.lean +/- theorem Rat.cast_prod +/- theorem Rat.cast_sum Modified Mathlib/Data/Real/ENNReal.lean +/- theorem ENNReal.lt_top_of_sum_ne_top +/- theorem ENNReal.prod_lt_top +/- theorem ENNReal.sum_eq_top_iff +/- theorem ENNReal.sum_lt_top +/- theorem ENNReal.sum_lt_top_iff Modified Mathlib/Data/Set/Pointwise/BigOperators.lean Modified Mathlib/FieldTheory/Adjoin.lean Modified Mathlib/FieldTheory/ChevalleyWarning.lean Modified Mathlib/FieldTheory/Finite/Basic.lean +/- theorem FiniteField.sum_pow_lt_card_sub_one Modified Mathlib/Geometry/Euclidean/Basic.lean Modified Mathlib/Geometry/Euclidean/Circumcenter.lean Modified Mathlib/LinearAlgebra/AffineSpace/Basis.lean +/- theorem AffineBasis.sum_coord_apply_eq_one Modified Mathlib/LinearAlgebra/AffineSpace/Combination.lean +/- theorem Finset.affineCombination_apply_const +/- theorem Finset.weightedVSubOfPoint_eq_of_sum_eq_zero +/- theorem Finset.weightedVSubOfPoint_vadd_eq_of_sum_eq_one +/- theorem Finset.weightedVSub_apply_const +/- theorem weightedVSub_mem_vectorSpan Modified Mathlib/LinearAlgebra/AffineSpace/Independent.lean Modified Mathlib/LinearAlgebra/AffineSpace/Matrix.lean +/- theorem AffineBasis.toMatrix_row_sum_one Modified Mathlib/LinearAlgebra/Basis.lean +/- theorem Basis.sum_equivFun +/- theorem Basis.sum_repr Modified Mathlib/LinearAlgebra/FiniteDimensional.lean Modified Mathlib/LinearAlgebra/Finsupp.lean Modified Mathlib/LinearAlgebra/Lagrange.lean Modified Mathlib/LinearAlgebra/LinearIndependent.lean Modified Mathlib/LinearAlgebra/Matrix/Basis.lean +/- theorem Basis.sum_toMatrix_smul_self Modified Mathlib/LinearAlgebra/Matrix/Charpoly/Coeff.lean Modified Mathlib/LinearAlgebra/Matrix/Charpoly/LinearMap.lean Modified Mathlib/LinearAlgebra/Multilinear/Basic.lean Modified Mathlib/MeasureTheory/Covering/Besicovitch.lean Modified Mathlib/MeasureTheory/Function/Jacobian.lean Modified Mathlib/MeasureTheory/Function/LpSpace.lean Modified Mathlib/MeasureTheory/Integral/Bochner.lean Modified Mathlib/MeasureTheory/Integral/IntervalIntegral.lean Modified Mathlib/MeasureTheory/Integral/Lebesgue.lean Modified Mathlib/MeasureTheory/Integral/VitaliCaratheodory.lean Modified Mathlib/MeasureTheory/Measure/MeasureSpace.lean +/- theorem MeasureTheory.Measure.le_count_apply +/- theorem MeasureTheory.Measure.le_sum_apply +/- theorem MeasureTheory.measure_setOf_frequently_eq_zero Modified Mathlib/MeasureTheory/Measure/Regular.lean Modified Mathlib/MeasureTheory/Measure/Stieltjes.lean Modified Mathlib/NumberTheory/ArithmeticFunction.lean Modified Mathlib/NumberTheory/Bertrand.lean Modified Mathlib/NumberTheory/Divisors.lean +/- theorem Nat.perfect_iff_sum_properDivisors +/- theorem Nat.sum_properDivisors_eq_one_iff_prime Modified Mathlib/NumberTheory/LegendreSymbol/MulCharacter.lean Modified Mathlib/NumberTheory/Padics/PadicVal.lean Modified Mathlib/NumberTheory/RamificationInertia.lean Modified Mathlib/NumberTheory/VonMangoldt.lean +/- theorem Nat.ArithmeticFunction.vonMangoldt_sum Modified Mathlib/Order/Filter/AtTopBot.lean Modified Mathlib/Order/Partition/Finpartition.lean +/- theorem Finpartition.sum_card_parts Modified Mathlib/Probability/Independence/Basic.lean Modified Mathlib/Probability/ProbabilityMassFunction/Basic.lean +/- theorem Pmf.tsum_coe +/- theorem Pmf.tsum_coe_indicator_ne_top +/- theorem Pmf.tsum_coe_ne_top Modified Mathlib/Probability/ProbabilityMassFunction/Constructions.lean +/- def Pmf.ofFinset +/- def Pmf.ofFintype Modified Mathlib/RingTheory/AlgebraTower.lean Modified Mathlib/RingTheory/DedekindDomain/Factorization.lean Modified Mathlib/RingTheory/DedekindDomain/Ideal.lean Modified Mathlib/RingTheory/IntegralDomain.lean +/- theorem sum_hom_units_eq_zero Modified Mathlib/RingTheory/MvPolynomial/Homogeneous.lean +/- theorem MvPolynomial.IsHomogeneous.coeff_eq_zero +/- theorem MvPolynomial.isHomogeneous_monomial Modified Mathlib/RingTheory/Polynomial/Cyclotomic/Basic.lean Modified Mathlib/RingTheory/RootsOfUnity/Basic.lean Modified Mathlib/Topology/Algebra/InfiniteSum/Basic.lean +/- theorem Equiv.tsum_eq +/- theorem HasSum.tsum_eq +/- theorem Summable.hasSum_iff +/- theorem tsum_bool +/- theorem tsum_const_smul +/- theorem tsum_empty +/- theorem tsum_eq_zero_of_not_summable +/- theorem tsum_fintype +/- theorem tsum_neg +/- theorem tsum_op +/- theorem tsum_pi_single +/- theorem tsum_singleton +/- theorem tsum_subtype +/- theorem tsum_univ +/- theorem tsum_unop +/- theorem tsum_zero' +/- theorem tsum_zero Modified Mathlib/Topology/Algebra/InfiniteSum/Module.lean +/- theorem tsum_smul_const Modified Mathlib/Topology/Algebra/InfiniteSum/Order.lean +/- theorem hasSum_le_of_sum_le +/- theorem tsum_eq_zero_iff +/- theorem tsum_le_of_sum_le' +/- theorem tsum_le_of_sum_le +/- theorem tsum_le_of_sum_range_le +/- theorem tsum_mono +/- theorem tsum_ne_zero_iff +/- theorem tsum_nonpos Modified Mathlib/Topology/Algebra/InfiniteSum/Ring.lean +/- theorem Summable.tsum_mul_left +/- theorem Summable.tsum_mul_right +/- theorem tsum_div_const +/- theorem tsum_mul_left +/- theorem tsum_mul_right Modified Mathlib/Topology/Algebra/Monoid.lean Modified Mathlib/Topology/ContinuousFunction/Algebra.lean Modified Mathlib/Topology/Instances/ENNReal.lean +/- theorem ENNReal.finite_const_le_of_tsum_ne_top +/- theorem ENNReal.hasSum_toReal +/- theorem ENNReal.summable_toNNReal_of_tsum_ne_top +/- theorem ENNReal.summable_toReal +/- theorem ENNReal.tendsto_atTop_zero_of_tsum_ne_top +/- theorem ENNReal.tendsto_cofinite_zero_of_tsum_ne_top +/- theorem ENNReal.tendsto_sum_nat_add +/- theorem ENNReal.tendsto_tsum_compl_atTop_zero +/- theorem ENNReal.toNNReal_apply_of_tsum_ne_top +/- theorem ENNReal.tsum_add_one_eq_top +/- theorem ENNReal.tsum_sub +/- theorem NNReal.tsum_eq_toNNReal_tsum +/- theorem NNReal.tsum_strict_mono Modified Mathlib/Topology/Instances/NNReal.lean Modified Mathlib/Topology/MetricSpace/PiNat.lean Modified Mathlib/Topology/PartitionOfUnity.lean +/- theorem BumpCovering.sum_toPOUFun_eq +/- theorem PartitionOfUnity.sum_eq_one +/- theorem PartitionOfUnity.sum_le_one 2023-07-02 10:02:15 ad50c21 feat: port SetTheory.Game.Domineering (#5654) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/SetTheory/Game/Domineering.lean + def PGame.Domineering.Board + theorem PGame.Domineering.card_of_mem_left + theorem PGame.Domineering.card_of_mem_right + theorem PGame.Domineering.fst_pred_mem_erase_of_mem_right + def PGame.Domineering.left + theorem PGame.Domineering.mem_left + theorem PGame.Domineering.mem_right + def PGame.Domineering.moveLeft + theorem PGame.Domineering.moveLeft_card + theorem PGame.Domineering.moveLeft_smaller + def PGame.Domineering.moveRight + theorem PGame.Domineering.moveRight_card + theorem PGame.Domineering.moveRight_smaller + def PGame.Domineering.right + def PGame.Domineering.shiftRight + def PGame.Domineering.shiftUp + theorem PGame.Domineering.snd_pred_mem_erase_of_mem_left + def PGame.domineering.L + def PGame.domineering.one + def PGame.domineering 2023-07-02 09:49:05 25bbed0 doc: update comments in SetTheory.Game.Short (#5657) - Fix capitalization of identifiers - Add details to a porting note that I was investigating while Parcly-Taxel fixed #5551 ESTIMATED CHANGES Modified Mathlib/SetTheory/Game/Short.lean 2023-07-02 05:00:51 6ac0ba4 feat: drop an unneeded field of `StarOrderedRing` (#5639) In `StarOrderedRing.ofLeIff`, the assumption `h_add : ∀ {x y}, x ≤ y → ∀ z, z + x ≤ z + y` follows from the other one. ESTIMATED CHANGES Modified Mathlib/Algebra/Star/Order.lean 2023-07-02 04:04:25 9d7fb19 feat(Analysis/Asymptotics/AsymptoticEquivalent): add `Trans` instances for `IsEquivalent` (#5572) This PR adds several `Trans` instances for the `IsEquivalent` relation, and a few missing lemmas on the same topic. ESTIMATED CHANGES Modified Mathlib/Analysis/Asymptotics/AsymptoticEquivalent.lean + theorem Asymptotics.IsBigO.trans_isEquivalent + theorem Asymptotics.IsEquivalent.isTheta + theorem Asymptotics.IsEquivalent.isTheta_symm + theorem Asymptotics.IsEquivalent.trans_eventuallyEq + theorem Asymptotics.IsEquivalent.trans_isBigO + theorem Asymptotics.IsEquivalent.trans_isLittleO + theorem Asymptotics.IsEquivalent.trans_isTheta + theorem Asymptotics.IsLittleO.trans_isEquivalent + theorem Asymptotics.IsTheta.trans_isEquivalent +/- theorem Filter.EventuallyEq.isEquivalent + theorem Filter.EventuallyEq.trans_isEquivalent 2023-07-01 23:04:22 b411eb9 feat: port SetTheory.Game.State (#5653) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/SetTheory/Game/State.lean + def Game.ofState + def PGame.leftMovesOfState + def PGame.leftMovesOfStateAux + def PGame.ofState + def PGame.ofStateAux + def PGame.ofStateAuxRelabelling + def PGame.relabellingMoveLeft + def PGame.relabellingMoveLeftAux + def PGame.relabellingMoveRight + def PGame.relabellingMoveRightAux + def PGame.rightMovesOfState + def PGame.rightMovesOfStateAux + theorem PGame.turnBound_ne_zero_of_left_move + theorem PGame.turnBound_ne_zero_of_right_move + theorem PGame.turnBound_of_left + theorem PGame.turnBound_of_right 2023-07-01 20:46:34 b4a49ec feat: port RepresentationTheory.FdRep (#5612) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/RepresentationTheory/FdRep.lean + theorem FdRep.Iso.conj_ρ + theorem FdRep.dualTensorIsoLinHom_hom_hom + theorem FdRep.finrank_hom_simple_simple + def FdRep.forget₂HomLinearEquiv + theorem FdRep.forget₂_ρ + def FdRep.isoToLinearEquiv + def FdRep.of + def FdRep.ρ 2023-07-01 19:42:41 4e0c38f feat: port SetTheory.Game.Short (#5551) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/SetTheory/Game/Short.lean + def PGame.Short.mk' + def PGame.Short.ofIsEmpty + inductive PGame.Short + def PGame.fintypeLeft + def PGame.fintypeRight + def PGame.leLfDecidable + def PGame.moveLeftShort' + def PGame.moveRightShort' + def PGame.shortOfRelabelling + theorem PGame.short_birthday + theorem PGame.subsingleton_short_example 2023-07-01 17:13:07 d055df4 feat: port Geometry.Manifold.DerivationBundle (#5640) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Geometry/Manifold/DerivationBundle.lean + def Derivation.evalAt + theorem Derivation.evalAt_apply + def PointDerivation + def PointedSmoothMap.eval + theorem PointedSmoothMap.smul_def + def PointedSmoothMap + def SmoothFunction.evalAt + theorem apply_fdifferential + theorem apply_hfdifferential + def fdifferential + theorem fdifferential_comp + def hfdifferential 2023-07-01 16:46:34 c85e6ad feat: port Algebra.Category.Mon.Adjunctions (#5648) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Category/MonCat/Adjunctions.lean + def adj + def adjoinOne + def adjoinOneAdj + def free 2023-07-01 16:09:09 d48aba0 feat(NumberTheory/ArithmeticFunction): add generalisation of moebius inversion (#5445) The standard version of Moebius inversion can't be used when the equalities only hold on a subset of the natural numbers (e.g. the squarefree numbers). Add variants of all the Moebius inversion results that generalise to well-behaved subsets of the naturals. See https://leanprover.zulipchat.com/#narrow/stream/217875-Is-there-code-for-X.3F/topic/Moebius.20Inversion.20on.20a.20subset.20of.20.E2.84.95 ESTIMATED CHANGES Modified Mathlib/NumberTheory/ArithmeticFunction.lean + theorem Nat.ArithmeticFunction.prod_eq_iff_prod_pow_moebius_eq_on + theorem Nat.ArithmeticFunction.prod_eq_iff_prod_pow_moebius_eq_on_of_nonzero + theorem Nat.ArithmeticFunction.sum_eq_iff_sum_mul_moebius_eq_on + theorem Nat.ArithmeticFunction.sum_eq_iff_sum_smul_moebius_eq_on' + theorem Nat.ArithmeticFunction.sum_eq_iff_sum_smul_moebius_eq_on 2023-07-01 15:01:03 d512093 feat: define `NonUnitalSubring`s (#5151) This continues the non-unital-ization of mathlib by defining `NonUnitalSubring`. We attempt to provide as much feature parity as possible with both `NonUnitalSubsemiring` and `Subring`. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/GroupTheory/Subsemigroup/Center.lean +/- theorem Set.neg_mem_center Added Mathlib/RingTheory/NonUnitalSubring/Basic.lean + theorem NonUnitalRingHom.closure_preimage_le + theorem NonUnitalRingHom.coe_range + theorem NonUnitalRingHom.coe_rangeRestrict + def NonUnitalRingHom.eqLocus + theorem NonUnitalRingHom.eqLocus_same + theorem NonUnitalRingHom.eqOn_set_closure + theorem NonUnitalRingHom.eq_of_eqOn_set_dense + theorem NonUnitalRingHom.eq_of_eqOn_set_top + theorem NonUnitalRingHom.map_closure + theorem NonUnitalRingHom.map_range + theorem NonUnitalRingHom.mem_range + theorem NonUnitalRingHom.mem_range_self + def NonUnitalRingHom.range + def NonUnitalRingHom.rangeRestrict + theorem NonUnitalRingHom.rangeRestrict_surjective + theorem NonUnitalRingHom.range_eq_map + theorem NonUnitalRingHom.range_top_iff_surjective + theorem NonUnitalRingHom.range_top_of_surjective + def NonUnitalSubring.center + theorem NonUnitalSubring.center_eq_top + theorem NonUnitalSubring.center_toNonUnitalSubsemiring + def NonUnitalSubring.closure + def NonUnitalSubring.closureNonUnitalCommRingOfComm + theorem NonUnitalSubring.closure_empty + theorem NonUnitalSubring.closure_eq + theorem NonUnitalSubring.closure_eq_of_le + theorem NonUnitalSubring.closure_iUnion + theorem NonUnitalSubring.closure_induction' + theorem NonUnitalSubring.closure_induction + theorem NonUnitalSubring.closure_induction₂ + theorem NonUnitalSubring.closure_le + theorem NonUnitalSubring.closure_mono + theorem NonUnitalSubring.closure_preimage_le + theorem NonUnitalSubring.closure_sUnion + theorem NonUnitalSubring.closure_union + theorem NonUnitalSubring.closure_univ + theorem NonUnitalSubring.coe_bot + theorem NonUnitalSubring.coe_center + theorem NonUnitalSubring.coe_comap + theorem NonUnitalSubring.coe_copy + theorem NonUnitalSubring.coe_eq_zero_iff + theorem NonUnitalSubring.coe_equivMapOfInjective_apply + theorem NonUnitalSubring.coe_iInf + theorem NonUnitalSubring.coe_iSup_of_directed + theorem NonUnitalSubring.coe_inf + theorem NonUnitalSubring.coe_map + theorem NonUnitalSubring.coe_mk' + theorem NonUnitalSubring.coe_prod + theorem NonUnitalSubring.coe_sInf + theorem NonUnitalSubring.coe_sSup_of_directedOn + theorem NonUnitalSubring.coe_set_mk + theorem NonUnitalSubring.coe_toAddSubgroup + theorem NonUnitalSubring.coe_toNonUnitalSubsemiring + theorem NonUnitalSubring.coe_toSubsemigroup + theorem NonUnitalSubring.coe_top + def NonUnitalSubring.comap + theorem NonUnitalSubring.comap_comap + theorem NonUnitalSubring.comap_equiv_eq_map_symm + theorem NonUnitalSubring.comap_iInf + theorem NonUnitalSubring.comap_inf + theorem NonUnitalSubring.comap_top + theorem NonUnitalSubring.copy_eq + theorem NonUnitalSubring.eq_top_iff' + theorem NonUnitalSubring.ext + theorem NonUnitalSubring.gc_map_comap + def NonUnitalSubring.inclusion + def NonUnitalSubring.map + theorem NonUnitalSubring.map_bot + theorem NonUnitalSubring.map_equiv_eq_comap_symm + theorem NonUnitalSubring.map_iSup + theorem NonUnitalSubring.map_id + theorem NonUnitalSubring.map_le_iff_le_comap + theorem NonUnitalSubring.map_map + theorem NonUnitalSubring.map_sup + theorem NonUnitalSubring.mem_bot + theorem NonUnitalSubring.mem_carrier + theorem NonUnitalSubring.mem_center_iff + theorem NonUnitalSubring.mem_closure + theorem NonUnitalSubring.mem_closure_iff + theorem NonUnitalSubring.mem_comap + theorem NonUnitalSubring.mem_iInf + theorem NonUnitalSubring.mem_iSup_of_directed + theorem NonUnitalSubring.mem_inf + theorem NonUnitalSubring.mem_map + theorem NonUnitalSubring.mem_map_equiv + theorem NonUnitalSubring.mem_mk' + theorem NonUnitalSubring.mem_mk + theorem NonUnitalSubring.mem_prod + theorem NonUnitalSubring.mem_sInf + theorem NonUnitalSubring.mem_sSup_of_directedOn + theorem NonUnitalSubring.mem_toAddSubgroup + theorem NonUnitalSubring.mem_toNonUnitalSubsemiring + theorem NonUnitalSubring.mem_toSubsemigroup + theorem NonUnitalSubring.mem_top + theorem NonUnitalSubring.mk'_toAddSubgroup + theorem NonUnitalSubring.mk'_toSubsemigroup + theorem NonUnitalSubring.mk_le_mk + theorem NonUnitalSubring.not_mem_of_not_mem_closure + def NonUnitalSubring.prod + def NonUnitalSubring.prodEquiv + theorem NonUnitalSubring.prod_mono + theorem NonUnitalSubring.prod_mono_left + theorem NonUnitalSubring.prod_mono_right + theorem NonUnitalSubring.prod_top + theorem NonUnitalSubring.range_fst + theorem NonUnitalSubring.range_snd + theorem NonUnitalSubring.range_subtype + theorem NonUnitalSubring.sInf_toAddSubgroup + theorem NonUnitalSubring.sInf_toSubsemigroup + theorem NonUnitalSubring.subset_closure + theorem NonUnitalSubring.toAddSubgroup_injective + theorem NonUnitalSubring.toAddSubgroup_mono + theorem NonUnitalSubring.toAddSubgroup_strictMono + theorem NonUnitalSubring.toNonUnitalSubsemiring_injective + theorem NonUnitalSubring.toNonUnitalSubsemiring_mono + theorem NonUnitalSubring.toNonUnitalSubsemiring_strictMono + def NonUnitalSubring.toSubsemigroup + theorem NonUnitalSubring.toSubsemigroup_injective + theorem NonUnitalSubring.toSubsemigroup_mono + theorem NonUnitalSubring.toSubsemigroup_strictMono + def NonUnitalSubring.topEquiv + theorem NonUnitalSubring.top_prod + theorem NonUnitalSubring.top_prod_top + theorem NonUnitalSubring.val_add + theorem NonUnitalSubring.val_mul + theorem NonUnitalSubring.val_neg + theorem NonUnitalSubring.val_zero + structure NonUnitalSubring + theorem NonUnitalSubringClass.coe_subtype + def NonUnitalSubringClass.subtype + def RingEquiv.nonUnitalSubringCongr + def RingEquiv.ofLeftInverse' + theorem RingEquiv.ofLeftInverse'_apply + theorem RingEquiv.ofLeftInverse'_symm_apply Modified Mathlib/RingTheory/NonUnitalSubsemiring/Basic.lean +/- def NonUnitalRingHom.codRestrict + def NonUnitalSubsemiring.topEquiv 2023-07-01 13:49:02 44c828c feat: API around Small (#5645) @fpvandoorn, could you help me with the `to_additive` problem here? ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Logic/Small/Basic.lean Added Mathlib/Logic/Small/Group.lean + theorem equivShrink_add + theorem equivShrink_div + theorem equivShrink_inv + theorem equivShrink_mul + theorem equivShrink_neg + theorem equivShrink_sub + theorem equivShrink_symm_add + theorem equivShrink_symm_div + theorem equivShrink_symm_inv + theorem equivShrink_symm_mul + theorem equivShrink_symm_neg + theorem equivShrink_symm_one + theorem equivShrink_symm_sub + theorem equivShrink_symm_zero Added Mathlib/Logic/Small/Ring.lean 2023-07-01 13:49:01 b856949 feat: make Set.mem_image_equiv a simp lemma (#5644) Not certain about this one. It's useful for me (experimenting with `UnivLE`), and arguably this is a better simp normal form since `''` is relatively hard to reason about, but I'm not certain how it interacts with everything else. Let's see what CI says. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Subobject/Lattice.lean Modified Mathlib/Logic/Equiv/Set.lean 2023-07-01 13:49:00 a9b3aae feat: port Geometry.Manifold.Algebra.SmoothFunctions (#5461) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Geometry/Manifold/Algebra/SmoothFunctions.lean + def SmoothMap.C + def SmoothMap.coeFnAlgHom + def SmoothMap.coeFnLinearMap + def SmoothMap.coeFnMonoidHom + def SmoothMap.coeFnRingHom + theorem SmoothMap.coe_div + theorem SmoothMap.coe_inv + theorem SmoothMap.coe_mul + theorem SmoothMap.coe_one + theorem SmoothMap.coe_pow + theorem SmoothMap.coe_smul + def SmoothMap.compLeftMonoidHom + def SmoothMap.compLeftRingHom + def SmoothMap.evalRingHom + theorem SmoothMap.mul_comp + def SmoothMap.restrictMonoidHom + def SmoothMap.restrictRingHom + theorem SmoothMap.smul_comp' + theorem SmoothMap.smul_comp 2023-07-01 12:39:03 3282e2f chore: tidy various files (#5628) ESTIMATED CHANGES Modified Mathlib/Algebra/Category/FGModuleCat/Basic.lean Modified Mathlib/Algebra/CharP/Basic.lean Modified Mathlib/AlgebraicGeometry/AffineScheme.lean Modified Mathlib/AlgebraicGeometry/Gluing.lean Modified Mathlib/AlgebraicGeometry/Limits.lean Modified Mathlib/AlgebraicGeometry/Pullbacks.lean Modified Mathlib/Analysis/Normed/Group/Basic.lean Modified Mathlib/LinearAlgebra/CliffordAlgebra/Even.lean Modified Mathlib/LinearAlgebra/ExteriorAlgebra/OfAlternating.lean Modified Mathlib/NumberTheory/ModularForms/SlashInvariantForms.lean Modified Mathlib/NumberTheory/ZetaFunction.lean Modified Mathlib/RingTheory/WittVector/Compare.lean - theorem TruncatedWittVector.card_zMod + theorem TruncatedWittVector.card_zmod - theorem TruncatedWittVector.charP_zMod + theorem TruncatedWittVector.charP_zmod + def WittVector.toZModPow + theorem WittVector.toZModPow_compat - def WittVector.toZmodPow - theorem WittVector.toZmodPow_compat Modified Mathlib/RingTheory/WittVector/Identities.lean +/- theorem WittVector.coeff_p_pow +/- theorem WittVector.coeff_p_pow_eq_zero Modified Mathlib/RingTheory/WittVector/Truncated.lean 2023-07-01 12:39:02 8a45f5b fix: precedence of shadow (#5620) ESTIMATED CHANGES Modified Mathlib/Combinatorics/SetFamily/Compression/UV.lean Modified Mathlib/Combinatorics/SetFamily/LYM.lean +/- theorem Finset.slice_union_shadow_falling_succ Modified Mathlib/Combinatorics/SetFamily/Shadow.lean +/- theorem Finset.erase_mem_shadow +/- theorem Finset.exists_subset_of_mem_shadow +/- theorem Finset.exists_subset_of_mem_upShadow +/- theorem Finset.insert_mem_upShadow +/- theorem Finset.mem_shadow_iff +/- theorem Finset.mem_shadow_iff_insert_mem +/- theorem Finset.mem_upShadow_iff +/- theorem Finset.mem_upShadow_iff_erase_mem +/- theorem Finset.shadow_empty +/- theorem Finset.shadow_image_compl +/- theorem Finset.shadow_singleton_empty +/- theorem Finset.upShadow_empty +/- theorem Finset.upShadow_image_compl 2023-07-01 12:39:01 074b9eb fix: `piObj` / `sigmaObj` precedence (#5618) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Limits/Constructions/LimitsOfProductsAndEqualizers.lean Modified Mathlib/CategoryTheory/Limits/Lattice.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Products.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Types.lean 2023-07-01 12:39:00 452b50b chore : fix `unusedVariable` linter error in `Archive/Imo` (#5616) was looking at workflow and noticed that these two files has two unused variable error ESTIMATED CHANGES Modified Archive/Imo/Imo1964Q1.lean +/- theorem Imo1964Q1.imo1964_q1a Modified Archive/Imo/Imo2019Q4.lean 2023-07-01 12:38:59 94f4142 feat: `sheafCompose_map` (#5613) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Sites/Whiskering.lean + theorem CategoryTheory.sheafCompose_comp + theorem CategoryTheory.sheafCompose_id + def CategoryTheory.sheafCompose_map 2023-07-01 12:38:58 feef366 feat: defs and lemmas about multilinear maps (#5610) Forward-port leanprover-community/mathlib#19114 ESTIMATED CHANGES Modified Mathlib/Analysis/NormedSpace/Multilinear.lean - def ContinuousMultilinearMap.domDomCongr + def ContinuousMultilinearMap.domDomCongrₗᵢ + theorem ContinuousMultilinearMap.nnnorm_ofSubsingleton_le + theorem ContinuousMultilinearMap.norm_domDomCongr + theorem ContinuousMultilinearMap.norm_ofSubsingleton_le +/- theorem ContinuousMultilinearMap.norm_restrictScalars + def ContinuousMultilinearMap.restrictScalarsₗᵢ Modified Mathlib/Topology/Algebra/Module/Multilinear.lean + def ContinuousMultilinearMap.codRestrict + def ContinuousMultilinearMap.domDomCongrEquiv 2023-07-01 12:38:57 4a6ae4b feat: add `Real.logb_mul_base` (#5609) Forward-port leanprover-community/mathlib#18979 ESTIMATED CHANGES Modified Mathlib/Analysis/SpecialFunctions/Log/Base.lean + theorem Real.div_logb + theorem Real.inv_logb + theorem Real.inv_logb_div_base + theorem Real.inv_logb_mul_base + theorem Real.logb_div_base + theorem Real.logb_mul_base + theorem Real.mul_logb Modified Mathlib/Analysis/SpecialFunctions/Log/Basic.lean + theorem Real.log_ne_zero 2023-07-01 12:38:56 a7c79b4 feat: Add finite iff bounded lemmas (#5567) This PR adds a lemma stating that finiteness is equivalent to boundedness above and below in a locally finite lattice, as well as one-way versions for both types of semilattice. ESTIMATED CHANGES Modified Mathlib/Order/LocallyFinite.lean + theorem Finset.finite_iff_bddAbove + theorem Finset.finite_iff_bddBelow + theorem Finset.finite_iff_bddBelow_bddAbove 2023-07-01 11:38:18 2fd9a72 feat(Algebra/BigOperators/Finprod): variations on `smul_finsum` (#5601) The current versions of `smul_finsum` and `finsum_smul` assume `NoZeroSMulDivisors` in order to be a little bit clever about the junk values (that's why there's no finite support hypothesis). While this is reasonable in a lot of cases, there are also cases where we already know that the sum is well-defined, so we don't need this extra assumption. ESTIMATED CHANGES Modified Mathlib/Algebra/BigOperators/Finprod.lean + theorem finsum_smul' + theorem smul_finsum' 2023-07-01 10:20:13 6f81a92 feat: `algebraMap_mem` for `SetLike` instances (#5594) This adds an `algebraMap_mem` in the root namespace and protects `Subalgebra.algebraMap_mem`. The new declaration holds for terms of `S` where `S` is a `Setlike` satisfying `OneMemClass S A` and `SMulMemClass S R A` and `A` is an `R`-algebra. ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/Subalgebra/Basic.lean - theorem Subalgebra.algebraMap_mem + theorem algebraMap_mem Modified Mathlib/Algebra/Algebra/Subalgebra/Pointwise.lean 2023-07-01 10:00:00 db4aced feat: add `Trivialization.tendsto_nhds_iff` (#5489) This lemma generalizes `FiberBundle.continuousWithinAt_totalSpace`. Also add a version with equality of filters. ESTIMATED CHANGES Modified Mathlib/Topology/FiberBundle/Basic.lean Modified Mathlib/Topology/FiberBundle/Trivialization.lean + theorem Trivialization.nhds_eq_inf_comap + theorem Trivialization.tendsto_nhds_iff 2023-07-01 06:44:32 d9d26c4 feat: port AlgebraicGeometry.Morphisms.OpenImmersion (#5638) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/AlgebraicGeometry/Morphisms/OpenImmersion.lean + theorem AlgebraicGeometry.IsOpenImmersion.openCover_TFAE + theorem AlgebraicGeometry.IsOpenImmersion.openCover_iff + theorem AlgebraicGeometry.isOpenImmersion_iff_stalk + theorem AlgebraicGeometry.isOpenImmersion_is_local_at_target + theorem AlgebraicGeometry.isOpenImmersion_respectsIso + theorem AlgebraicGeometry.isOpenImmersion_stableUnderBaseChange + theorem AlgebraicGeometry.isOpenImmersion_stableUnderComposition 2023-07-01 05:38:33 b9ff222 feat: port AlgebraicGeometry.Morphisms.UniversallyClosed (#5637) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/AlgebraicGeometry/Morphisms/UniversallyClosed.lean + theorem AlgebraicGeometry.UniversallyClosed.openCover_iff + theorem AlgebraicGeometry.morphismRestrict_base + theorem AlgebraicGeometry.universallyClosed_eq + theorem AlgebraicGeometry.universallyClosed_is_local_at_target + theorem AlgebraicGeometry.universallyClosed_respectsIso + theorem AlgebraicGeometry.universallyClosed_stableUnderBaseChange + theorem AlgebraicGeometry.universallyClosed_stableUnderComposition 2023-07-01 05:24:53 727956d feat: port Algebra.Category.Semigroup.Basic (#4857) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Category/MonCat/Basic.lean Added Mathlib/Algebra/Category/SemigroupCat/Basic.lean + def CategoryTheory.Iso.magmaCatIsoToMulEquiv + def CategoryTheory.Iso.semigroupCatIsoToMulEquiv + theorem MagmaCat.MulEquiv_coe_eq + theorem MagmaCat.coe_of + def MagmaCat.of + def MagmaCat.ofHom + theorem MagmaCat.ofHom_apply + def MagmaCat + def MulEquiv.toMagmaCatIso + def MulEquiv.toSemigroupCatIso + theorem SemigroupCat.MulEquiv_coe_eq + theorem SemigroupCat.coe_of + def SemigroupCat.of + def SemigroupCat.ofHom + theorem SemigroupCat.ofHom_apply + def SemigroupCat + def mulEquivIsoMagmaIso + def mulEquivIsoSemigroupCatIso 2023-07-01 05:11:17 6c3530b feat: port Analysis.Convex.Cone.Proper (#5607) The remaining errors are about `coe` and `norm_cast`. I do not understand these well enough in Lean 4. Please feel free to push changes. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/Convex/Cone/Proper.lean + theorem ConvexCone.closure_eq + theorem ConvexCone.coe_closure + theorem ProperCone.coe_dual + theorem ProperCone.coe_map + theorem ProperCone.coe_zero + def ProperCone.dual + theorem ProperCone.dual_dual + theorem ProperCone.ext' + theorem ProperCone.ext + theorem ProperCone.map_id + theorem ProperCone.mem_coe + theorem ProperCone.mem_dual + theorem ProperCone.mem_map + theorem ProperCone.mem_zero + theorem ProperCone.pointed_zero + structure ProperCone 2023-07-01 05:00:30 cef7c18 feat: port Topology.Homotopy.Product (#3961) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Topology/Homotopy/Product.lean + def ContinuousMap.Homotopy.prod + def ContinuousMap.HomotopyRel.pi + def ContinuousMap.HomotopyRel.prod + theorem Path.Homotopic.comp_pi_eq_pi_comp + theorem Path.Homotopic.comp_prod_eq_prod_comp + def Path.Homotopic.pi + def Path.Homotopic.piHomotopy + theorem Path.Homotopic.pi_lift + theorem Path.Homotopic.pi_proj + def Path.Homotopic.prod + def Path.Homotopic.prodHomotopy + theorem Path.Homotopic.prod_lift + theorem Path.Homotopic.prod_projLeft_projRight + def Path.Homotopic.proj + def Path.Homotopic.projLeft + theorem Path.Homotopic.projLeft_prod + def Path.Homotopic.projRight + theorem Path.Homotopic.projRight_prod + theorem Path.Homotopic.proj_pi 2023-06-30 23:14:55 e3c8f98 fix: precedences of `⨆⋃⋂⨅` (#5614) ESTIMATED CHANGES Modified Archive/Wiedijk100Theorems/CubingACube.lean Modified Counterexamples/SeminormLatticeNotDistrib.lean Modified Mathlib/Algebra/DirectSum/Internal.lean Modified Mathlib/Algebra/Lie/Nilpotent.lean Modified Mathlib/Algebra/Module/Submodule/Bilinear.lean Modified Mathlib/Algebra/Module/Torsion.lean Modified Mathlib/Algebra/Order/ToIntervalMod.lean +/- theorem iUnion_Icc_add_int_cast +/- theorem iUnion_Icc_add_zsmul +/- theorem iUnion_Icc_int_cast +/- theorem iUnion_Icc_zsmul +/- theorem iUnion_Ico_add_int_cast +/- theorem iUnion_Ico_add_zsmul +/- theorem iUnion_Ico_int_cast +/- theorem iUnion_Ico_zsmul +/- theorem iUnion_Ioc_add_int_cast +/- theorem iUnion_Ioc_add_zsmul +/- theorem iUnion_Ioc_int_cast +/- theorem iUnion_Ioc_zsmul Modified Mathlib/AlgebraicGeometry/AffineScheme.lean Modified Mathlib/AlgebraicGeometry/OpenImmersion/Scheme.lean Modified Mathlib/AlgebraicGeometry/PrimeSpectrum/Maximal.lean +/- theorem PrimeSpectrum.iInf_localization_eq_bot Modified Mathlib/Analysis/BoxIntegral/Box/Basic.lean Modified Mathlib/Analysis/BoxIntegral/Box/SubboxInduction.lean +/- theorem BoxIntegral.Box.iUnion_coe_splitCenterBox Modified Mathlib/Analysis/BoxIntegral/Partition/Basic.lean Modified Mathlib/Analysis/Calculus/BumpFunctionFindim.lean Modified Mathlib/Analysis/InnerProductSpace/Orthogonal.lean +/- theorem Submodule.iInf_orthogonal +/- theorem Submodule.sInf_orthogonal Modified Mathlib/Analysis/InnerProductSpace/Projection.lean Modified Mathlib/Analysis/InnerProductSpace/Rayleigh.lean Modified Mathlib/Analysis/LocallyConvex/WithSeminorms.lean Modified Mathlib/Analysis/NormedSpace/Banach.lean Modified Mathlib/Analysis/NormedSpace/BanachSteinhaus.lean Modified Mathlib/Analysis/NormedSpace/HahnBanach/Separation.lean Modified Mathlib/Computability/EpsilonNFA.lean Modified Mathlib/Data/Dfinsupp/Basic.lean Modified Mathlib/Data/Finset/Lattice.lean +/- theorem Finset.iInf_coe +/- theorem Finset.iInf_option_toFinset +/- theorem Finset.iInf_singleton +/- theorem Finset.iSup_coe +/- theorem Finset.iSup_option_toFinset +/- theorem Finset.iSup_singleton +/- theorem Finset.set_biInter_coe +/- theorem Finset.set_biInter_singleton +/- theorem Finset.set_biUnion_coe +/- theorem Finset.set_biUnion_singleton +/- theorem Set.iInter_eq_iInter_finset +/- theorem Set.iUnion_eq_iUnion_finset +/- theorem iInf_eq_iInf_finset +/- theorem iSup_eq_iSup_finset Modified Mathlib/Data/Nat/Lattice.lean +/- theorem Nat.iInf_lt_succ' +/- theorem Nat.iInf_lt_succ +/- theorem Nat.iSup_lt_succ' +/- theorem Nat.iSup_lt_succ +/- theorem Set.biInter_lt_succ' +/- theorem Set.biInter_lt_succ +/- theorem Set.biUnion_lt_succ' +/- theorem Set.biUnion_lt_succ Modified Mathlib/Data/Nat/Pairing.lean Modified Mathlib/Data/Real/Basic.lean +/- theorem Real.ciInf_const_zero +/- theorem Real.ciInf_empty +/- theorem Real.ciSup_const_zero +/- theorem Real.ciSup_empty Modified Mathlib/Data/Real/ENNReal.lean +/- theorem ENNReal.cinfi_ne_top +/- theorem ENNReal.csupr_ne_top +/- theorem ENNReal.iInter_Ici_coe_nat +/- theorem ENNReal.iInter_Ioi_coe_nat +/- theorem ENNReal.iSup_coe_nat +/- theorem ENNReal.iSup_eq_zero +/- theorem ENNReal.iSup_zero_eq_zero +/- theorem ENNReal.iUnion_Icc_coe_nat +/- theorem ENNReal.iUnion_Ico_coe_nat +/- theorem ENNReal.iUnion_Iic_coe_nat +/- theorem ENNReal.iUnion_Iio_coe_nat +/- theorem ENNReal.iUnion_Ioc_coe_nat +/- theorem ENNReal.iUnion_Ioo_coe_nat Modified Mathlib/Data/Real/NNReal.lean +/- theorem NNReal.iInf_const_zero +/- theorem NNReal.iInf_empty +/- theorem NNReal.iSup_empty +/- theorem NNReal.iSup_of_not_bddAbove Modified Mathlib/Data/Set/Accumulate.lean +/- theorem Set.biUnion_accumulate +/- theorem Set.iUnion_accumulate Modified Mathlib/Data/Set/Countable.lean Modified Mathlib/Data/Set/Finite.lean Modified Mathlib/Data/Set/Intervals/Disjoint.lean +/- theorem IsGLB.biUnion_Ioi_eq +/- theorem IsGLB.iUnion_Ioi_eq +/- theorem IsLUB.biUnion_Iic_eq_Iic +/- theorem IsLUB.biUnion_Iio_eq +/- theorem IsLUB.iUnion_Iio_eq +/- theorem Set.iUnion_Icc_left +/- theorem Set.iUnion_Icc_right +/- theorem Set.iUnion_Ici +/- theorem Set.iUnion_Ico_left +/- theorem Set.iUnion_Ico_right +/- theorem Set.iUnion_Iic +/- theorem Set.iUnion_Iio +/- theorem Set.iUnion_Ioc_left +/- theorem Set.iUnion_Ioc_right +/- theorem Set.iUnion_Ioi +/- theorem Set.iUnion_Ioo_left +/- theorem Set.iUnion_Ioo_right Modified Mathlib/Data/Set/Intervals/Monotone.lean Modified Mathlib/Data/Set/Lattice.lean +/- theorem Function.Surjective.iInter_comp +/- theorem Function.Surjective.iUnion_comp +/- theorem Set.biInter_empty +/- theorem Set.biInter_image +/- theorem Set.biInter_pair +/- theorem Set.biInter_range +/- theorem Set.biInter_singleton +/- theorem Set.biInter_univ +/- theorem Set.biUnion_empty +/- theorem Set.biUnion_image +/- theorem Set.biUnion_of_singleton +/- theorem Set.biUnion_pair +/- theorem Set.biUnion_preimage_singleton +/- theorem Set.biUnion_range +/- theorem Set.biUnion_range_preimage_singleton +/- theorem Set.biUnion_self +/- theorem Set.biUnion_singleton +/- theorem Set.biUnion_univ +/- theorem Set.iInter_and +/- theorem Set.iInter_comm +/- theorem Set.iInter_congr +/- theorem Set.iInter_const +/- theorem Set.iInter_eq_compl_iUnion_compl +/- theorem Set.iInter_eq_const +/- theorem Set.iInter_eq_empty_iff +/- theorem Set.iInter_eq_if +/- theorem Set.iInter_eq_univ +/- theorem Set.iInter_ge_eq_iInter_nat_add +/- theorem Set.iInter_mono +/- theorem Set.iInter_of_empty +/- theorem Set.iInter_option +/- theorem Set.iInter_plift_down +/- theorem Set.iInter_plift_up +/- theorem Set.iInter_setOf +/- theorem Set.iInter_subset +/- theorem Set.iInter₂_subset +/- theorem Set.iUnion_and +/- theorem Set.iUnion_comm +/- theorem Set.iUnion_congr +/- theorem Set.iUnion_const +/- theorem Set.iUnion_eq_compl_iInter_compl +/- theorem Set.iUnion_eq_const +/- theorem Set.iUnion_eq_empty +/- theorem Set.iUnion_eq_if +/- theorem Set.iUnion_eq_range_psigma +/- theorem Set.iUnion_eq_range_sigma +/- theorem Set.iUnion_eq_univ_iff +/- theorem Set.iUnion_ge_eq_iUnion_nat_add +/- theorem Set.iUnion_image_left +/- theorem Set.iUnion_image_right +/- theorem Set.iUnion_inter_subset +/- theorem Set.iUnion_mono +/- theorem Set.iUnion_nonempty_self +/- theorem Set.iUnion_of_empty +/- theorem Set.iUnion_of_singleton_coe +/- theorem Set.iUnion_option +/- theorem Set.iUnion_plift_down +/- theorem Set.iUnion_plift_up +/- theorem Set.iUnion_setOf +/- theorem Set.iUnion_singleton_eq_range +/- theorem Set.iUnion_subset +/- theorem Set.iUnion_subset_iUnion_const +/- theorem Set.iUnion_subset_iff +/- theorem Set.mem_sUnion +/- theorem Set.sInter_iUnion +/- theorem Set.sUnion_iUnion +/- theorem iInf_iUnion +/- theorem iSup_iUnion +/- theorem sInf_sUnion +/- theorem sSup_sUnion Modified Mathlib/Data/Set/Pairwise/Lattice.lean Modified Mathlib/Data/Set/Pointwise/Basic.lean +/- theorem Set.iUnion_div_left_image +/- theorem Set.iUnion_div_right_image +/- theorem Set.iUnion_mul_left_image +/- theorem Set.iUnion_mul_right_image Modified Mathlib/Data/Set/Pointwise/SMul.lean +/- theorem Set.iUnion_inv_smul +/- theorem Set.iUnion_op_smul_set +/- theorem Set.iUnion_smul_eq_setOf_exists +/- theorem Set.iUnion_smul_left_image +/- theorem Set.iUnion_smul_right_image +/- theorem Set.iUnion_smul_set +/- theorem Set.iUnion_vsub_left_image +/- theorem Set.iUnion_vsub_right_image Modified Mathlib/Data/Set/Sups.lean +/- theorem Set.iUnion_image_inf_left +/- theorem Set.iUnion_image_inf_right +/- theorem Set.iUnion_image_sup_left +/- theorem Set.iUnion_image_sup_right Modified Mathlib/Data/Setoid/Partition.lean +/- theorem IndexedPartition.iUnion Modified Mathlib/Dynamics/Minimal.lean Modified Mathlib/Dynamics/OmegaLimit.lean +/- theorem omegaLimit_iUnion Modified Mathlib/Dynamics/PeriodicPts.lean +/- theorem Function.bUnion_ptsOfPeriod +/- theorem Function.iUnion_pNat_ptsOfPeriod Modified Mathlib/FieldTheory/Adjoin.lean Modified Mathlib/Geometry/Euclidean/MongePoint.lean Modified Mathlib/Geometry/Manifold/ChartedSpace.lean Modified Mathlib/GroupTheory/DoubleCoset.lean +/- theorem Doset.union_quotToDoset Modified Mathlib/GroupTheory/Subgroup/Basic.lean Modified Mathlib/GroupTheory/Submonoid/Basic.lean Modified Mathlib/GroupTheory/Submonoid/Pointwise.lean Modified Mathlib/GroupTheory/Subsemigroup/Basic.lean Modified Mathlib/LinearAlgebra/CliffordAlgebra/Grading.lean +/- theorem CliffordAlgebra.iSup_ι_range_eq_top Modified Mathlib/LinearAlgebra/Dfinsupp.lean Modified Mathlib/LinearAlgebra/Dimension.lean Modified Mathlib/LinearAlgebra/Dual.lean Modified Mathlib/LinearAlgebra/Eigenspace/IsAlgClosed.lean Modified Mathlib/LinearAlgebra/Finsupp.lean +/- theorem Finsupp.iInf_ker_lapply_le_bot +/- theorem Finsupp.iSup_lsingle_range Modified Mathlib/LinearAlgebra/Pi.lean Modified Mathlib/LinearAlgebra/Span.lean +/- theorem Submodule.iSup_eq_span +/- theorem Submodule.iSup_span Modified Mathlib/LinearAlgebra/StdBasis.lean +/- theorem LinearMap.iSup_range_stdBasis Modified Mathlib/Logic/Encodable/Lattice.lean +/- theorem Encodable.iUnion_decode₂ Modified Mathlib/MeasureTheory/CardMeasurableSpace.lean Modified Mathlib/MeasureTheory/Covering/Besicovitch.lean Modified Mathlib/MeasureTheory/Decomposition/Lebesgue.lean Modified Mathlib/MeasureTheory/Function/AEMeasurableSequence.lean Modified Mathlib/MeasureTheory/Function/Jacobian.lean Modified Mathlib/MeasureTheory/Function/SimpleFunc.lean Modified Mathlib/MeasureTheory/Function/StronglyMeasurable/Basic.lean Modified Mathlib/MeasureTheory/Group/FundamentalDomain.lean +/- theorem MeasureTheory.IsFundamentalDomain.iUnion_smul_ae_eq Modified Mathlib/MeasureTheory/Integral/IntegralEqImproper.lean Modified Mathlib/MeasureTheory/Integral/Lebesgue.lean Modified Mathlib/MeasureTheory/Integral/SetIntegral.lean Modified Mathlib/MeasureTheory/MeasurableSpace.lean Modified Mathlib/MeasureTheory/MeasurableSpaceDef.lean Modified Mathlib/MeasureTheory/Measure/GiryMonad.lean Modified Mathlib/MeasureTheory/Measure/Hausdorff.lean Modified Mathlib/MeasureTheory/Measure/Lebesgue/Basic.lean Modified Mathlib/MeasureTheory/Measure/Lebesgue/EqHaar.lean Modified Mathlib/MeasureTheory/Measure/MeasureSpace.lean +/- theorem MeasureTheory.Measure.ext_iff_of_iUnion_eq_univ +/- theorem MeasureTheory.exists_pos_measure_of_cover +/- theorem MeasureTheory.iUnion_spanningSets Modified Mathlib/MeasureTheory/Measure/OuterMeasure.lean Modified Mathlib/MeasureTheory/Measure/Regular.lean Modified Mathlib/MeasureTheory/Measure/Stieltjes.lean +/- theorem StieltjesFunction.iInf_Ioi_eq Modified Mathlib/MeasureTheory/Measure/VectorMeasure.lean Modified Mathlib/MeasureTheory/PiSystem.lean Modified Mathlib/ModelTheory/Types.lean Modified Mathlib/Order/CompleteBooleanAlgebra.lean Modified Mathlib/Order/CompleteLattice.lean +/- theorem Antitone.iInf_nat_add +/- theorem Equiv.iInf_comp +/- theorem Equiv.iSup_comp +/- theorem IsGLB.iInf_eq +/- theorem IsLUB.iSup_eq +/- theorem Monotone.iSup_nat_add +/- theorem biInf_const +/- theorem biSup_const +/- theorem iInf_Prop_eq +/- theorem iInf_bool_eq +/- theorem iInf_comm +/- theorem iInf_congr +/- theorem iInf_const +/- theorem iInf_const_mono +/- theorem iInf_emptyset +/- theorem iInf_eq_if +/- theorem iInf_exists +/- theorem iInf_ge_eq_iInf_nat_add +/- theorem iInf_iInf_eq_left +/- theorem iInf_iInf_eq_right +/- theorem iInf_inf_eq +/- theorem iInf_le_iInf_of_subset +/- theorem iInf_le_iInf₂ +/- theorem iInf_nat_gt_zero_eq +/- theorem iInf_ne_top_subtype +/- theorem iInf_neg +/- theorem iInf_option +/- theorem iInf_option_elim +/- theorem iInf_pair +/- theorem iInf_plift_down +/- theorem iInf_plift_up +/- theorem iInf_pos +/- theorem iInf_prod +/- theorem iInf_range' +/- theorem iInf_range +/- theorem iInf_sigma +/- theorem iInf_singleton +/- theorem iInf_split_single +/- theorem iInf_subtype'' +/- theorem iInf_sum +/- theorem iInf_sup_iInf_le +/- theorem iInf_union +/- theorem iInf_univ +/- theorem iInf₂_eq_top +/- theorem iInf₂_le +/- theorem iSup_Prop_eq +/- theorem iSup_bool_eq +/- theorem iSup_comm +/- theorem iSup_comp_le +/- theorem iSup_congr +/- theorem iSup_const +/- theorem iSup_const_le +/- theorem iSup_const_mono +/- theorem iSup_emptyset +/- theorem iSup_eq_if +/- theorem iSup_exists +/- theorem iSup_ge_eq_iSup_nat_add +/- theorem iSup_iInf_le_iInf_iSup +/- theorem iSup_iSup_eq_left +/- theorem iSup_iSup_eq_right +/- theorem iSup_inf_le_inf_sSup +/- theorem iSup_inf_le_sSup_inf +/- theorem iSup_le_iSup_of_subset +/- theorem iSup_nat_gt_zero_eq +/- theorem iSup_ne_bot_subtype +/- theorem iSup_neg +/- theorem iSup_option +/- theorem iSup_option_elim +/- theorem iSup_pair +/- theorem iSup_plift_down +/- theorem iSup_plift_up +/- theorem iSup_pos +/- theorem iSup_prod +/- theorem iSup_range' +/- theorem iSup_range +/- theorem iSup_sigma +/- theorem iSup_singleton +/- theorem iSup_split_single +/- theorem iSup_subtype'' +/- theorem iSup_sum +/- theorem iSup_sup_eq +/- theorem iSup_union +/- theorem iSup_univ +/- theorem iSup₂_eq_bot +/- theorem iSup₂_le +/- theorem iSup₂_le_iSup +/- theorem iSup₂_le_iff +/- theorem le_iInf_comp +/- theorem le_iSup_inf_iSup Modified Mathlib/Order/ConditionallyCompleteLattice/Basic.lean +/- theorem IsGLB.ciInf_eq +/- theorem IsLUB.ciSup_eq +/- theorem ciInf_const +/- theorem ciInf_pos +/- theorem ciInf_subsingleton +/- theorem ciInf_unique +/- theorem ciSup_const +/- theorem ciSup_false +/- theorem ciSup_le' +/- theorem ciSup_of_empty +/- theorem ciSup_pos +/- theorem ciSup_subsingleton +/- theorem ciSup_unique Modified Mathlib/Order/Disjointed.lean +/- theorem iSup_disjointed +/- theorem iUnion_disjointed Modified Mathlib/Order/Filter/AtTopBot.lean Modified Mathlib/Order/Filter/Bases.lean +/- theorem Filter.isCountablyGenerated_of_seq Modified Mathlib/Order/Filter/Basic.lean +/- theorem Filter.iInf_principal +/- theorem Filter.iSup_inf_principal +/- theorem Filter.iSup_join +/- theorem Filter.iSup_principal Modified Mathlib/Order/Filter/CountableInter.lean Modified Mathlib/Order/Filter/Extr.lean +/- theorem IsMaxOn.iSup_eq +/- theorem IsMinOn.iInf_eq Modified Mathlib/Order/Filter/Lift.lean Modified Mathlib/Order/Filter/Ultrafilter.lean Modified Mathlib/Order/LiminfLimsup.lean +/- theorem Filter.iInf_le_liminf Modified Mathlib/Order/PartialSups.lean +/- theorem iSup_partialSups_eq Modified Mathlib/Order/SuccPred/IntervalSucc.lean Modified Mathlib/Order/UpperLower/Basic.lean +/- theorem LowerSet.iSup_Iic +/- theorem UpperSet.iInf_Ici Modified Mathlib/Probability/Independence/Basic.lean Modified Mathlib/Probability/Independence/ZeroOne.lean Modified Mathlib/Probability/Kernel/Composition.lean Modified Mathlib/Probability/Kernel/CondCdf.lean +/- theorem Real.iInter_Iic_rat +/- theorem Real.iUnion_Iic_rat Modified Mathlib/Probability/Kernel/MeasurableIntegral.lean Modified Mathlib/Probability/Martingale/Convergence.lean Modified Mathlib/Probability/Process/HittingTime.lean Modified Mathlib/RingTheory/DedekindDomain/PID.lean Modified Mathlib/RingTheory/Filtration.lean Modified Mathlib/RingTheory/Finiteness.lean Modified Mathlib/RingTheory/Ideal/Operations.lean Modified Mathlib/RingTheory/NonUnitalSubsemiring/Basic.lean Modified Mathlib/RingTheory/Subring/Basic.lean Modified Mathlib/RingTheory/Subsemiring/Basic.lean Modified Mathlib/RingTheory/WittVector/Truncated.lean +/- theorem TruncatedWittVector.iInf_ker_truncate Modified Mathlib/SetTheory/Cardinal/Basic.lean +/- theorem Cardinal.mk_iUnion_le +/- theorem Cardinal.mk_sUnion_le Modified Mathlib/SetTheory/Cardinal/Cofinality.lean Modified Mathlib/Topology/Algebra/Order/LiminfLimsup.lean Modified Mathlib/Topology/Algebra/Order/MonotoneConvergence.lean Modified Mathlib/Topology/Bases.lean Modified Mathlib/Topology/Connected.lean Modified Mathlib/Topology/Constructions.lean Modified Mathlib/Topology/ContinuousFunction/Basic.lean Modified Mathlib/Topology/ContinuousFunction/StoneWeierstrass.lean Modified Mathlib/Topology/Gluing.lean +/- def TopCat.GlueData.openCoverGlueHomeo Modified Mathlib/Topology/Instances/ENNReal.lean +/- theorem ENNReal.biInf_le_nhds +/- theorem ENNReal.iInf_mul_left' +/- theorem ENNReal.iInf_mul_right' Modified Mathlib/Topology/Instances/NNReal.lean Modified Mathlib/Topology/LocalAtTarget.lean Modified Mathlib/Topology/LocallyFinite.lean Modified Mathlib/Topology/MetricSpace/Baire.lean Modified Mathlib/Topology/MetricSpace/Basic.lean +/- theorem Metric.iUnion_ball_nat +/- theorem Metric.iUnion_ball_nat_succ +/- theorem Metric.iUnion_closedBall_nat +/- theorem Metric.iUnion_inter_closedBall_nat Modified Mathlib/Topology/MetricSpace/EMetricSpace.lean Modified Mathlib/Topology/MetricSpace/Gluing.lean Modified Mathlib/Topology/MetricSpace/GromovHausdorffRealized.lean Modified Mathlib/Topology/MetricSpace/HausdorffDimension.lean +/- theorem bsupr_limsup_dimH +/- theorem iSup_limsup_dimH Modified Mathlib/Topology/MetricSpace/HausdorffDistance.lean Modified Mathlib/Topology/MetricSpace/MetrizableUniformity.lean Modified Mathlib/Topology/MetricSpace/PiNat.lean Modified Mathlib/Topology/MetricSpace/ShrinkingLemma.lean Modified Mathlib/Topology/Paracompact.lean Modified Mathlib/Topology/Separation.lean Modified Mathlib/Topology/Sequences.lean Modified Mathlib/Topology/Sets/Closeds.lean Modified Mathlib/Topology/Sets/Opens.lean +/- theorem TopologicalSpace.Opens.iSup_def Modified Mathlib/Topology/ShrinkingLemma.lean Modified Mathlib/Topology/SubsetProperties.lean +/- theorem CompactExhaustion.iUnion_eq +/- theorem iUnion_compactCovering Modified Mathlib/Topology/UniformSpace/Basic.lean +/- theorem iSup_nhds_le_uniformity Modified Mathlib/Topology/UniformSpace/CompactConvergence.lean Modified Mathlib/Topology/UniformSpace/Pi.lean +/- theorem Pi.uniformity 2023-06-30 18:41:40 19879d9 chore: generalise universes in some theorems (#5626) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Sites/Grothendieck.lean +/- def CategoryTheory.GrothendieckTopology.Cover.index 2023-06-30 18:41:39 e3884c3 feat: port AlgebraicGeometry.FunctionField (#5596) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/AlgebraicGeometry/FunctionField.lean + theorem AlgebraicGeometry.IsAffineOpen.primeIdealOf_genericPoint + theorem AlgebraicGeometry.Scheme.germToFunctionField_injective + theorem AlgebraicGeometry.functionField_isFractionRing_of_isAffineOpen + theorem AlgebraicGeometry.genericPoint_eq_bot_of_affine + theorem AlgebraicGeometry.genericPoint_eq_of_isOpenImmersion + theorem AlgebraicGeometry.germ_injective_of_isIntegral Modified Mathlib/AlgebraicGeometry/Scheme.lean + theorem AlgebraicGeometry.Scheme.comp_val_base_apply 2023-06-30 17:15:42 f0b3ede feat: add a file about perpendicular bisector (#5627) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Geometry/Euclidean/Basic.lean - theorem EuclideanGeometry.inner_vsub_vsub_of_dist_eq_of_dist_eq Added Mathlib/Geometry/Euclidean/PerpBisector.lean + theorem AffineSubspace.direction_perpBisector + theorem AffineSubspace.left_mem_perpBisector + theorem AffineSubspace.mem_perpBisector_iff_dist_eq' + theorem AffineSubspace.mem_perpBisector_iff_dist_eq + theorem AffineSubspace.mem_perpBisector_iff_inner_eq + theorem AffineSubspace.mem_perpBisector_iff_inner_eq_inner + theorem AffineSubspace.mem_perpBisector_iff_inner_eq_zero' + theorem AffineSubspace.mem_perpBisector_iff_inner_eq_zero + theorem AffineSubspace.mem_perpBisector_iff_inner_pointReflection_vsub_eq_zero + theorem AffineSubspace.mem_perpBisector_pointReflection_iff_inner_eq_zero + theorem AffineSubspace.midpoint_mem_perpBisector + def AffineSubspace.perpBisector + theorem AffineSubspace.perpBisector_comm + theorem AffineSubspace.perpBisector_eq_top + theorem AffineSubspace.perpBisector_ne_bot + theorem AffineSubspace.perpBisector_nonempty + theorem AffineSubspace.perpBisector_self + theorem AffineSubspace.right_mem_perpBisector + theorem EuclideanGeometry.inner_vsub_vsub_of_dist_eq_of_dist_eq + theorem Isometry.mapsTo_perpBisector + theorem Isometry.preimage_perpBisector 2023-06-30 17:15:41 f68e3bd feat: port AlgebraicGeometry.Morphisms.Basic (#5599) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/AlgebraicGeometry/Morphisms/Basic.lean + theorem AlgebraicGeometry.AffineTargetMorphismProperty.IsLocal.affine_openCover_TFAE + theorem AlgebraicGeometry.AffineTargetMorphismProperty.IsLocal.affine_openCover_iff + theorem AlgebraicGeometry.AffineTargetMorphismProperty.IsLocal.affine_target_iff + theorem AlgebraicGeometry.AffineTargetMorphismProperty.IsLocal.diagonal + theorem AlgebraicGeometry.AffineTargetMorphismProperty.IsLocal.diagonal_affine_openCover_TFAE + theorem AlgebraicGeometry.AffineTargetMorphismProperty.IsLocal.stableUnderBaseChange + theorem AlgebraicGeometry.AffineTargetMorphismProperty.IsLocal.targetAffineLocallyIsLocal + theorem AlgebraicGeometry.AffineTargetMorphismProperty.IsLocal.targetAffineLocallyPullbackFstOfRightOfStableUnderBaseChange + structure AlgebraicGeometry.AffineTargetMorphismProperty.IsLocal + def AlgebraicGeometry.AffineTargetMorphismProperty.StableUnderBaseChange + def AlgebraicGeometry.AffineTargetMorphismProperty.diagonal + theorem AlgebraicGeometry.AffineTargetMorphismProperty.diagonalOfTargetAffineLocally + theorem AlgebraicGeometry.AffineTargetMorphismProperty.diagonal_respectsIso + theorem AlgebraicGeometry.AffineTargetMorphismProperty.isLocalOfOpenCoverImply + theorem AlgebraicGeometry.AffineTargetMorphismProperty.respectsIso_mk + def AlgebraicGeometry.AffineTargetMorphismProperty.toProperty + theorem AlgebraicGeometry.AffineTargetMorphismProperty.toProperty_apply + def AlgebraicGeometry.AffineTargetMorphismProperty + theorem AlgebraicGeometry.IsAffineOpen.map_isIso + def AlgebraicGeometry.MorphismProperty.topologically + theorem AlgebraicGeometry.PropertyIsLocalAtTarget.openCover_TFAE + theorem AlgebraicGeometry.PropertyIsLocalAtTarget.openCover_iff + structure AlgebraicGeometry.PropertyIsLocalAtTarget + theorem AlgebraicGeometry.affine_cancel_left_isIso + theorem AlgebraicGeometry.affine_cancel_right_isIso + theorem AlgebraicGeometry.diagonalTargetAffineLocallyOfOpenCover + theorem AlgebraicGeometry.diagonal_targetAffineLocally_eq_targetAffineLocally + def AlgebraicGeometry.targetAffineLocally + theorem AlgebraicGeometry.targetAffineLocallyOfOpenCover + theorem AlgebraicGeometry.targetAffineLocally_respectsIso + theorem AlgebraicGeometry.universallyIsLocalAtTarget + theorem AlgebraicGeometry.universallyIsLocalAtTargetOfMorphismRestrict Modified Mathlib/AlgebraicGeometry/Pullbacks.lean 2023-06-30 17:15:39 9063fac feat: define composition of an `AEEqFun` with a (quasi)measure preserving function (#5217) ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Function/AEEqFun.lean + theorem MeasureTheory.AEEqFun.coeFn_compMeasurePreserving + theorem MeasureTheory.AEEqFun.coeFn_compQuasiMeasurePreserving + def MeasureTheory.AEEqFun.compMeasurePreserving + theorem MeasureTheory.AEEqFun.compMeasurePreserving_eq_mk + theorem MeasureTheory.AEEqFun.compMeasurePreserving_mk + def MeasureTheory.AEEqFun.compQuasiMeasurePreserving + theorem MeasureTheory.AEEqFun.compQuasiMeasurePreserving_eq_mk + theorem MeasureTheory.AEEqFun.compQuasiMeasurePreserving_mk Modified Mathlib/MeasureTheory/Function/LpSeminorm.lean + theorem MeasureTheory.AEEqFun.snorm_compMeasurePreserving + theorem MeasureTheory.Memℒp.comp_measurePreserving + theorem MeasureTheory.Memℒp.comp_of_map + theorem MeasureTheory.snorm_comp_measurePreserving +/- theorem MeasureTheory.zero_mem_ℒp' Modified Mathlib/MeasureTheory/Function/LpSpace.lean + theorem MeasureTheory.AEEqFun.compMeasurePreserving_mem_Lp + theorem MeasureTheory.Lp.coeFn_compMeasurePreserving + def MeasureTheory.Lp.compMeasurePreserving + theorem MeasureTheory.Lp.compMeasurePreserving_val + def MeasureTheory.Lp.compMeasurePreservingₗ + def MeasureTheory.Lp.compMeasurePreservingₗᵢ + theorem MeasureTheory.Lp.norm_compMeasurePreserving 2023-06-30 17:15:38 73c58c7 feat: lift a continuous map from a connected space to a sigma type (#4325) Motivated by a theorem in the Brouwer Fixed Point project ESTIMATED CHANGES Modified Mathlib/Data/Set/Image.lean + theorem Set.range_subset_range_iff_exists_comp Modified Mathlib/Data/Sigma/Basic.lean + theorem Function.eq_of_sigmaMk_comp Modified Mathlib/Topology/Connected.lean + theorem Continuous.exists_lift_sigma 2023-06-30 16:13:45 a59175a feat: add `Metric.Bounded.vadd` (#5270) Add `Metric.Bounded.smul` and `Metric.Bounded.vadd`, rename the old `smul` to `smul₀`. ESTIMATED CHANGES Modified Mathlib/Analysis/NormedSpace/Pointwise.lean - theorem Metric.Bounded.smul + theorem Metric.Bounded.smul₀ Modified Mathlib/Topology/MetricSpace/IsometricSMul.lean + theorem Metric.Bounded.smul 2023-06-30 14:50:32 0536289 fix: better universe for Cover (#5625) It had type `Type (max 0 u v)` before. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Sites/Grothendieck.lean +/- def CategoryTheory.GrothendieckTopology.Cover 2023-06-30 13:52:45 e71da81 feat: port RingTheory.WittVector.Isocrystal (#5579) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/RingTheory/WittVector/Isocrystal.lean + def WittVector.FractionRing.frobenius + def WittVector.FractionRing.frobeniusRingHom + def WittVector.FractionRing.module + def WittVector.Isocrystal.frobenius + structure WittVector.IsocrystalEquiv + structure WittVector.IsocrystalHom + theorem WittVector.StandardOneDimIsocrystal.frobenius_apply + def WittVector.StandardOneDimIsocrystal + theorem WittVector.isocrystal_classification 2023-06-30 08:27:43 b342a33 feat: port CategoryTheory.Limits.Constructions.Over.Basic (#5611) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Limits/Constructions/Over/Basic.lean 2023-06-30 07:26:32 aa77a31 feat: port Archive.Imo.Imo1988Q6 (#5608) ESTIMATED CHANGES Modified Archive.lean Added Archive/Imo/Imo1988Q6.lean + theorem Imo1988Q6.constant_descent_vieta_jumping + theorem imo1988_q6 2023-06-30 06:08:19 e9eb901 chore: reorder universes in ConcreteCategory (#5605) ESTIMATED CHANGES Modified Mathlib/AlgebraicGeometry/AffineScheme.lean Modified Mathlib/CategoryTheory/ConcreteCategory/Basic.lean +/- def CategoryTheory.ConcreteCategory.hasCoeToSort +/- def CategoryTheory.forget 2023-06-30 01:46:32 4d4f0f2 fix: change compl precedence (#5586) ESTIMATED CHANGES Modified Archive/Wiedijk100Theorems/BallotProblem.lean Modified Mathlib/Algebra/Algebra/Spectrum.lean Modified Mathlib/Algebra/BigOperators/Basic.lean Modified Mathlib/Algebra/IndicatorFunction.lean Modified Mathlib/Algebra/Ring/BooleanRing.lean +/- theorem ofBoolAlg_compl Modified Mathlib/Algebra/Ring/Idempotents.lean +/- theorem IsIdempotentElem.coe_compl Modified Mathlib/Algebra/Star/Pointwise.lean +/- theorem Set.compl_star Modified Mathlib/Algebra/Support.lean +/- theorem Function.compl_mulSupport Modified Mathlib/AlgebraicGeometry/PrimeSpectrum/Basic.lean Modified Mathlib/AlgebraicGeometry/PrimeSpectrum/IsOpenComapC.lean Modified Mathlib/AlgebraicGeometry/ProjectiveSpectrum/Topology.lean Modified Mathlib/Analysis/Calculus/ContDiff.lean +/- theorem contDiffOn_inv Modified Mathlib/Analysis/Calculus/Deriv/Slope.lean Modified Mathlib/Analysis/Calculus/Dslope.lean +/- theorem eqOn_dslope_slope Modified Mathlib/Analysis/Convex/Integral.lean Modified Mathlib/Analysis/Convex/StoneSeparation.lean Modified Mathlib/Analysis/NormedSpace/FiniteDimension.lean Modified Mathlib/Analysis/NormedSpace/MStructure.lean +/- theorem IsLprojection.coe_compl +/- theorem IsLprojection.compl_mul +/- theorem IsLprojection.mul_compl_self Modified Mathlib/Analysis/NormedSpace/Multilinear.lean Modified Mathlib/Analysis/NormedSpace/PiLp.lean Modified Mathlib/Analysis/NormedSpace/RieszLemma.lean Modified Mathlib/Analysis/NormedSpace/Units.lean +/- theorem nonunits.subset_compl_ball Modified Mathlib/Analysis/SpecialFunctions/Log/Basic.lean +/- theorem Real.continuousOn_log Modified Mathlib/Analysis/SpecialFunctions/Log/Deriv.lean +/- theorem Real.contDiffOn_log +/- theorem Real.differentiableOn_log Modified Mathlib/Analysis/SpecialFunctions/Pow/Continuity.lean Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/InverseDeriv.lean +/- theorem Real.contDiffOn_arccos +/- theorem Real.contDiffOn_arcsin +/- theorem Real.differentiableOn_arccos +/- theorem Real.differentiableOn_arcsin Modified Mathlib/CategoryTheory/Limits/Shapes/Biproducts.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Types.lean Modified Mathlib/Combinatorics/Configuration.lean Modified Mathlib/Combinatorics/SimpleGraph/Basic.lean Modified Mathlib/Combinatorics/SimpleGraph/Ends/Defs.lean Modified Mathlib/Combinatorics/SimpleGraph/StronglyRegular.lean Modified Mathlib/Data/Fin/Basic.lean Modified Mathlib/Data/Finset/Basic.lean +/- theorem Finset.insert_inj_on Modified Mathlib/Data/Finset/Lattice.lean Modified Mathlib/Data/Finset/Preimage.lean Modified Mathlib/Data/Fintype/Basic.lean +/- theorem Finset.coe_compl +/- theorem Finset.compl_erase +/- theorem Finset.compl_insert Modified Mathlib/Data/Fintype/Card.lean +/- theorem Fintype.card_compl_set Modified Mathlib/Data/Set/Basic.lean +/- theorem Set.disjoint_compl_left_iff_subset +/- theorem Set.disjoint_compl_right_iff_subset Modified Mathlib/Data/Set/Function.lean +/- theorem Set.BijOn.compl +/- theorem Set.MapsTo.mem_iff +/- theorem Set.MapsTo.surjOn_compl +/- theorem Set.SurjOn.mapsTo_compl +/- theorem Set.piecewise_eqOn_compl Modified Mathlib/Data/Set/Image.lean +/- theorem Set.compl_image_set_of +/- theorem Set.compl_range_inl +/- theorem Set.compl_range_inr +/- theorem Set.compl_range_some Modified Mathlib/Data/Set/Intervals/Basic.lean +/- theorem Set.compl_Ici +/- theorem Set.compl_Iic +/- theorem Set.compl_Iio +/- theorem Set.compl_Ioi Modified Mathlib/Data/Set/Intervals/OrdConnectedComponent.lean Modified Mathlib/Data/Set/Lattice.lean +/- theorem Set.compl_iInter +/- theorem Set.compl_iInter₂ +/- theorem Set.compl_iUnion +/- theorem Set.compl_iUnion₂ +/- theorem Set.iInter_eq_compl_iUnion_compl +/- theorem Set.iUnion_eq_compl_iInter_compl Modified Mathlib/Data/Set/Pointwise/Basic.lean +/- theorem Set.compl_inv Modified Mathlib/Data/Set/Prod.lean +/- theorem Set.offDiag_univ +/- theorem Set.pi_inter_compl +/- theorem Set.prod_subset_compl_diagonal_iff_disjoint Modified Mathlib/Dynamics/Ergodic/Ergodic.lean Modified Mathlib/Dynamics/OmegaLimit.lean Modified Mathlib/Geometry/Euclidean/MongePoint.lean Modified Mathlib/GroupTheory/FreeProduct.lean Modified Mathlib/LinearAlgebra/Finsupp.lean Modified Mathlib/Logic/Embedding/Set.lean +/- def Function.Embedding.optionEmbeddingEquiv Modified Mathlib/Logic/Equiv/Embedding.lean Modified Mathlib/Logic/Equiv/LocalEquiv.lean Modified Mathlib/MeasureTheory/Constructions/BorelSpace/Basic.lean Modified Mathlib/MeasureTheory/Constructions/Polish.lean Modified Mathlib/MeasureTheory/Covering/Differentiation.lean Modified Mathlib/MeasureTheory/Covering/LiminfLimsup.lean Modified Mathlib/MeasureTheory/Decomposition/Jordan.lean Modified Mathlib/MeasureTheory/Decomposition/Lebesgue.lean Modified Mathlib/MeasureTheory/Decomposition/RadonNikodym.lean Modified Mathlib/MeasureTheory/Function/AEEqOfIntegral.lean Modified Mathlib/MeasureTheory/Function/AEMeasurableSequence.lean Modified Mathlib/MeasureTheory/Function/ConditionalExpectation/AEMeasurable.lean Modified Mathlib/MeasureTheory/Function/ConditionalExpectation/Indicator.lean +/- theorem MeasureTheory.condexp_indicator_aux Modified Mathlib/MeasureTheory/Function/Egorov.lean Modified Mathlib/MeasureTheory/Function/SimpleFunc.lean +/- theorem MeasureTheory.SimpleFunc.piecewise_compl Modified Mathlib/MeasureTheory/Function/SimpleFuncDenseLp.lean Modified Mathlib/MeasureTheory/Function/StronglyMeasurable/Basic.lean Modified Mathlib/MeasureTheory/Function/UniformIntegrable.lean Modified Mathlib/MeasureTheory/Integral/Average.lean Modified Mathlib/MeasureTheory/Integral/Lebesgue.lean Modified Mathlib/MeasureTheory/Integral/SetIntegral.lean Modified Mathlib/MeasureTheory/MeasurableSpace.lean +/- theorem MeasurableSet.coe_compl Modified Mathlib/MeasureTheory/MeasurableSpaceDef.lean +/- theorem MeasurableSet.compl_iff Modified Mathlib/MeasureTheory/Measure/AEDisjoint.lean +/- theorem MeasureTheory.aedisjoint_compl_left +/- theorem MeasureTheory.aedisjoint_compl_right Modified Mathlib/MeasureTheory/Measure/AEMeasurable.lean Modified Mathlib/MeasureTheory/Measure/Lebesgue/EqHaar.lean Modified Mathlib/MeasureTheory/Measure/MeasureSpace.lean +/- theorem MeasureTheory.Measure.mem_cofinite +/- theorem MeasureTheory.Measure.restrict_compl_add_restrict +/- theorem MeasureTheory.measure_add_measure_compl +/- theorem MeasureTheory.measure_compl +/- theorem MeasureTheory.prob_add_prob_compl +/- theorem MeasureTheory.prob_compl_eq_one_sub Modified Mathlib/MeasureTheory/Measure/MeasureSpaceDef.lean +/- theorem MeasureTheory.ae_eq_univ +/- theorem MeasureTheory.mem_ae_iff Modified Mathlib/MeasureTheory/Measure/MutuallySingular.lean Modified Mathlib/MeasureTheory/Measure/NullMeasurable.lean +/- theorem MeasureTheory.NullMeasurableSet.compl +/- theorem MeasureTheory.NullMeasurableSet.compl_iff +/- theorem MeasureTheory.NullMeasurableSet.compl_toMeasurable_compl_ae_eq +/- theorem MeasureTheory.NullMeasurableSet.of_compl Modified Mathlib/MeasureTheory/Measure/OpenPos.lean Modified Mathlib/MeasureTheory/Measure/OuterMeasure.lean +/- theorem MeasureTheory.OuterMeasure.isCaratheodory_compl +/- theorem MeasureTheory.OuterMeasure.isCaratheodory_compl_iff Modified Mathlib/MeasureTheory/Measure/Portmanteau.lean Modified Mathlib/MeasureTheory/Measure/Sub.lean Modified Mathlib/MeasureTheory/PiSystem.lean +/- theorem MeasurableSpace.DynkinSystem.generateHas_compl +/- theorem MeasurableSpace.DynkinSystem.has_compl_iff Modified Mathlib/ModelTheory/Definability.lean +/- theorem Set.Definable.compl Modified Mathlib/ModelTheory/Syntax.lean Modified Mathlib/Order/Antichain.lean Modified Mathlib/Order/Atoms.lean Modified Mathlib/Order/Basic.lean Modified Mathlib/Order/BooleanAlgebra.lean +/- theorem disjoint_compl_left_iff +/- theorem disjoint_compl_right_iff +/- theorem isCompl_compl Modified Mathlib/Order/Circular.lean +/- theorem Set.compl_cIcc +/- theorem Set.compl_cIoo Modified Mathlib/Order/CompleteBooleanAlgebra.lean +/- theorem compl_iInf +/- theorem compl_iSup +/- theorem compl_sInf' +/- theorem compl_sInf +/- theorem compl_sSup' +/- theorem compl_sSup Modified Mathlib/Order/Disjointed.lean +/- theorem disjointed_eq_inf_compl +/- theorem disjointed_eq_inter_compl Modified Mathlib/Order/Filter/Bases.lean +/- theorem Filter.compl_diagonal_mem_prod +/- theorem Filter.le_iff_forall_inf_principal_compl +/- theorem Filter.mem_iff_inf_principal_compl +/- theorem Filter.not_mem_iff_inf_principal_compl Modified Mathlib/Order/Filter/Basic.lean +/- theorem Filter.comap_eq_bot_iff_compl_range +/- theorem Filter.comap_neBot_iff_compl_range +/- theorem Filter.isCompl_principal +/- theorem Filter.mem_of_eq_bot Modified Mathlib/Order/Filter/Cofinite.lean Modified Mathlib/Order/Filter/Prod.lean Modified Mathlib/Order/Filter/Ultrafilter.lean +/- theorem Filter.mem_hyperfilter_of_finite_compl Modified Mathlib/Order/Heyting/Basic.lean +/- theorem LE.le.disjoint_compl_left +/- theorem LE.le.disjoint_compl_right +/- theorem disjoint_compl_compl_left_iff +/- theorem disjoint_compl_compl_right_iff +/- theorem disjoint_compl_left +/- theorem disjoint_compl_right +/- theorem ofDual_compl +/- theorem ofDual_hnot +/- theorem toDual_compl +/- theorem toDual_hnot Modified Mathlib/Order/Heyting/Hom.lean +/- theorem map_compl Modified Mathlib/Order/Heyting/Regular.lean +/- theorem Heyting.Regular.coe_compl +/- theorem Heyting.isRegular_compl Modified Mathlib/Order/Hom/Lattice.lean +/- theorem map_compl' Modified Mathlib/Order/LiminfLimsup.lean +/- theorem Filter.liminf_compl +/- theorem Filter.limsup_compl Modified Mathlib/Order/PrimeIdeal.lean Modified Mathlib/Order/UpperLower/Basic.lean +/- theorem IsLowerSet.compl +/- theorem IsUpperSet.compl +/- theorem LowerSet.coe_compl +/- theorem UpperSet.coe_compl +/- theorem isLowerSet_compl +/- theorem isUpperSet_compl Modified Mathlib/Probability/CondCount.lean Modified Mathlib/Probability/ConditionalProbability.lean Modified Mathlib/Probability/Independence/Basic.lean Modified Mathlib/Probability/Kernel/CondCdf.lean Modified Mathlib/Probability/Kernel/Disintegration.lean Modified Mathlib/RingTheory/Polynomial/Basic.lean Modified Mathlib/SetTheory/Cardinal/Basic.lean Modified Mathlib/SetTheory/Cardinal/Cofinality.lean Modified Mathlib/SetTheory/Cardinal/Ordinal.lean Modified Mathlib/SetTheory/Ordinal/Arithmetic.lean +/- theorem Ordinal.nonempty_compl_range Modified Mathlib/Topology/Algebra/GroupWithZero.lean +/- theorem continuousOn_inv₀ +/- theorem continuousOn_zpow₀ Modified Mathlib/Topology/Algebra/InfiniteSum/Basic.lean Modified Mathlib/Topology/Algebra/InfiniteSum/Order.lean Modified Mathlib/Topology/Algebra/Module/FiniteDimension.lean Modified Mathlib/Topology/Algebra/Order/T5.lean Modified Mathlib/Topology/Basic.lean +/- theorem Dense.interior_compl +/- theorem acc_iff_cluster +/- theorem closure_compl +/- theorem closure_compl_singleton +/- theorem closure_eq_compl_interior_compl +/- theorem frontier_compl +/- theorem frontier_eq_closure_inter_closure +/- theorem interior_compl +/- theorem interior_eq_empty_iff_dense_compl +/- theorem isClosed_compl_iff +/- theorem isOpen_compl_iff Modified Mathlib/Topology/Bornology/Basic.lean +/- theorem Bornology.isBounded_compl_iff +/- theorem Bornology.isCobounded_compl_iff Modified Mathlib/Topology/Category/Compactum.lean Modified Mathlib/Topology/Category/TopCat/Limits/Products.lean Modified Mathlib/Topology/Compactification/OnePoint.lean +/- theorem OnePoint.compl_range_coe Modified Mathlib/Topology/Connected.lean Modified Mathlib/Topology/Constructions.lean Modified Mathlib/Topology/ContinuousFunction/Bounded.lean Modified Mathlib/Topology/ContinuousFunction/Ideals.lean Modified Mathlib/Topology/ContinuousOn.lean Modified Mathlib/Topology/DenseEmbedding.lean +/- theorem DenseInducing.interior_compact_eq_empty Modified Mathlib/Topology/GDelta.lean +/- theorem Set.Countable.isGδ_compl +/- theorem Set.Finite.isGδ_compl +/- theorem Set.Subsingleton.isGδ_compl Modified Mathlib/Topology/Inseparable.lean Modified Mathlib/Topology/Instances/RatLemmas.lean +/- theorem Rat.dense_compl_compact Modified Mathlib/Topology/LocalAtTarget.lean Modified Mathlib/Topology/LocalHomeomorph.lean Modified Mathlib/Topology/LocallyConstant/Basic.lean Modified Mathlib/Topology/LocallyFinite.lean Modified Mathlib/Topology/MetricSpace/Baire.lean Modified Mathlib/Topology/MetricSpace/HausdorffDimension.lean +/- theorem dense_compl_of_dimH_lt_finrank Modified Mathlib/Topology/MetricSpace/HausdorffDistance.lean +/- theorem Metric.ball_infDist_compl_subset Modified Mathlib/Topology/MetricSpace/Metrizable.lean Modified Mathlib/Topology/MetricSpace/PiNat.lean Modified Mathlib/Topology/MetricSpace/Polish.lean Modified Mathlib/Topology/Order/LowerTopology.lean +/- theorem LowerTopology.isOpen_iff_generate_Ici_compl Modified Mathlib/Topology/Paracompact.lean Modified Mathlib/Topology/Separation.lean Modified Mathlib/Topology/Sets/Closeds.lean +/- theorem TopologicalSpace.Clopens.coe_compl Modified Mathlib/Topology/Sets/Compacts.lean +/- theorem TopologicalSpace.CompactOpens.coe_compl Modified Mathlib/Topology/ShrinkingLemma.lean Modified Mathlib/Topology/StoneCech.lean Modified Mathlib/Topology/SubsetProperties.lean +/- theorem IsClopen.compl +/- theorem isClopen_compl_iff Modified Mathlib/Topology/Support.lean Modified Mathlib/Topology/UniformSpace/Compact.lean Modified Mathlib/Topology/UrysohnsLemma.lean 2023-06-30 01:46:31 28b67a4 feat: `positivity` extension for `ite` (#2273) Match https://github.com/leanprover-community/mathlib/pull/17650 ESTIMATED CHANGES Modified Mathlib/Tactic/Positivity/Basic.lean + def Mathlib.Meta.Positivity.evalIte Modified test/positivity.lean 2023-06-30 01:36:41 55e06e7 chore: better VSCode extension recommendations (#5592) * This PR gets rid of the following pop-up, which is especially confusing for new users: ![image](https://github.com/leanprover-community/mathlib4/assets/7376012/74df4731-00e6-4f63-ba33-818cf2040af0) * Also remove the setting `search.usePCRE2` which is marked as "deprecated" and "enabled by default" ESTIMATED CHANGES Added .vscode/extensions.json Modified .vscode/settings.json 2023-06-29 23:57:37 bd2fff8 fix precedence of `Nat.iterate` (#5589) ESTIMATED CHANGES Modified Archive/Imo/Imo2006Q5.lean Modified Counterexamples/Phillips.lean Modified Mathlib/Algebra/CharP/Basic.lean +/- theorem iterate_frobenius Modified Mathlib/Algebra/Hom/Iterate.lean +/- theorem AddMonoidHom.iterate_map_smul +/- theorem AddMonoidHom.iterate_map_zsmul +/- theorem MonoidHom.iterate_map_div +/- theorem MonoidHom.iterate_map_inv +/- theorem MonoidHom.iterate_map_mul +/- theorem MonoidHom.iterate_map_one +/- theorem MonoidHom.iterate_map_pow +/- theorem MonoidHom.iterate_map_zpow +/- theorem RingHom.iterate_map_add +/- theorem RingHom.iterate_map_mul +/- theorem RingHom.iterate_map_neg +/- theorem RingHom.iterate_map_one +/- theorem RingHom.iterate_map_pow +/- theorem RingHom.iterate_map_smul +/- theorem RingHom.iterate_map_sub +/- theorem RingHom.iterate_map_zero +/- theorem RingHom.iterate_map_zsmul +/- theorem mul_right_iterate_apply_one Modified Mathlib/Algebra/Lie/Nilpotent.lean Modified Mathlib/Analysis/Analytic/IsolatedZeros.lean Modified Mathlib/Analysis/BoxIntegral/Box/SubboxInduction.lean Modified Mathlib/Analysis/Calculus/ContDiff.lean Modified Mathlib/Analysis/Calculus/Deriv/Comp.lean Modified Mathlib/Analysis/Calculus/Deriv/ZPow.lean Modified Mathlib/Analysis/Calculus/FDeriv/Comp.lean Modified Mathlib/Analysis/Calculus/FDerivAnalytic.lean Modified Mathlib/Analysis/Calculus/FormalMultilinearSeries.lean +/- theorem FormalMultilinearSeries.coeff_iterate_fslope Modified Mathlib/Analysis/Calculus/Inverse.lean Modified Mathlib/Analysis/Calculus/IteratedDeriv.lean +/- theorem iteratedDeriv_eq_iterate Modified Mathlib/Analysis/Calculus/MeanValue.lean Modified Mathlib/Analysis/Convex/SpecificFunctions/Deriv.lean Modified Mathlib/Analysis/NormedSpace/Banach.lean Modified Mathlib/Analysis/ODE/PicardLindelof.lean Modified Mathlib/Analysis/SpecialFunctions/Bernstein.lean Modified Mathlib/Analysis/SpecialFunctions/ExpDeriv.lean +/- theorem Complex.iter_deriv_exp +/- theorem Real.iter_deriv_exp Modified Mathlib/Combinatorics/SetFamily/Shadow.lean Modified Mathlib/Combinatorics/SimpleGraph/Regularity/Lemma.lean Modified Mathlib/Computability/Primrec.lean Modified Mathlib/Computability/TMComputable.lean Modified Mathlib/Computability/TuringMachine.lean Modified Mathlib/Data/Int/SuccPred.lean +/- theorem Int.pred_iterate +/- theorem Int.succ_iterate Modified Mathlib/Data/Nat/Fib.lean Modified Mathlib/Data/Nat/SuccPred.lean +/- theorem Nat.pred_iterate +/- theorem Nat.succ_iterate Modified Mathlib/Data/Polynomial/Degree/Lemmas.lean Modified Mathlib/Data/Polynomial/Derivative.lean +/- theorem Polynomial.iterate_derivative_C +/- theorem Polynomial.iterate_derivative_X +/- theorem Polynomial.iterate_derivative_neg +/- theorem Polynomial.iterate_derivative_one +/- theorem Polynomial.iterate_derivative_zero Modified Mathlib/Data/Polynomial/Eval.lean Modified Mathlib/Data/Polynomial/Expand.lean +/- theorem Polynomial.expand_pow Modified Mathlib/Data/Polynomial/HasseDeriv.lean +/- theorem Polynomial.factorial_smul_hasseDeriv Modified Mathlib/Data/Set/Function.lean +/- theorem Set.BijOn.iterate +/- theorem Set.MapsTo.iterate +/- theorem Set.SurjOn.iterate Modified Mathlib/Data/Set/Image.lean +/- theorem Set.preimage_iterate_eq Modified Mathlib/Data/Set/Intervals/Monotone.lean Modified Mathlib/Data/Set/Pointwise/Iterate.lean Modified Mathlib/Dynamics/Circle/RotationNumber/TranslationNumber.lean +/- theorem CircleDeg1Lift.mul_floor_map_zero_le_floor_iterate_zero Modified Mathlib/Dynamics/Ergodic/Conservative.lean Modified Mathlib/Dynamics/Ergodic/Ergodic.lean +/- theorem PreErgodic.of_iterate Modified Mathlib/Dynamics/Ergodic/MeasurePreserving.lean Modified Mathlib/Dynamics/FixedPoints/Basic.lean Modified Mathlib/Dynamics/FixedPoints/Topology.lean +/- theorem isFixedPt_of_tendsto_iterate Modified Mathlib/Dynamics/Flow.lean Modified Mathlib/Dynamics/PeriodicPts.lean +/- theorem Function.IsPeriodicPt.apply_iterate +/- theorem Function.IsPeriodicPt.iterate_mod_apply +/- theorem Function.iterate_add_minimalPeriod_eq +/- theorem Function.iterate_minimalPeriod +/- theorem Function.iterate_mod_minimalPeriod_eq Modified Mathlib/FieldTheory/PerfectClosure.lean +/- theorem PerfectClosure.R.sound Modified Mathlib/Init/Data/Nat/Lemmas.lean Modified Mathlib/LinearAlgebra/Basic.lean +/- theorem LinearMap.pow_apply Modified Mathlib/Logic/Function/Iterate.lean +/- theorem Function.Bijective.iterate +/- theorem Function.Commute.iterate_iterate +/- theorem Function.Commute.iterate_iterate_self +/- theorem Function.Commute.iterate_left +/- theorem Function.Commute.iterate_right +/- theorem Function.Commute.iterate_self +/- theorem Function.Commute.self_iterate +/- theorem Function.Injective.iterate +/- theorem Function.Surjective.iterate +/- theorem Function.iterate_add_apply +/- theorem Function.iterate_add_eq_iterate +/- theorem Function.iterate_cancel +/- theorem Function.iterate_fixed +/- theorem Function.iterate_succ_apply' +/- theorem Function.iterate_succ_apply +/- theorem Function.iterate_zero_apply +/- theorem List.foldr_const Modified Mathlib/MeasureTheory/Constructions/Polish.lean Modified Mathlib/MeasureTheory/Covering/Besicovitch.lean Modified Mathlib/MeasureTheory/Group/Measure.lean Modified Mathlib/MeasureTheory/MeasurableSpace.lean +/- theorem Measurable.iterate Modified Mathlib/MeasureTheory/Measure/MeasureSpace.lean Modified Mathlib/Order/Filter/AtTopBot.lean Modified Mathlib/Order/Hom/Order.lean Modified Mathlib/Order/Iterate.lean +/- theorem Monotone.antitone_iterate_of_map_le +/- theorem Monotone.monotone_iterate_of_le_map Modified Mathlib/Order/LiminfLimsup.lean Modified Mathlib/Order/Monotone/Basic.lean Modified Mathlib/Order/OrdContinuous.lean Modified Mathlib/Order/OrderIsoNat.lean Modified Mathlib/Order/SuccPred/Basic.lean +/- theorem LE.le.exists_pred_iterate +/- theorem LE.le.exists_succ_iterate +/- theorem Order.isMax_iterate_succ_of_eq_of_lt +/- theorem Order.isMax_iterate_succ_of_eq_of_ne +/- theorem Order.isMin_iterate_pred_of_eq_of_lt +/- theorem Order.isMin_iterate_pred_of_eq_of_ne +/- theorem Order.le_succ_iterate +/- theorem Order.pred_iterate_le +/- theorem Order.pred_succ_iterate_of_not_isMax +/- theorem Order.succ_pred_iterate_of_not_isMin +/- theorem exists_pred_iterate_iff_le +/- theorem exists_pred_iterate_or +/- theorem exists_succ_iterate_iff_le +/- theorem exists_succ_iterate_or Modified Mathlib/Order/SuccPred/LinearLocallyFinite.lean +/- theorem iterate_pred_toZ +/- theorem iterate_succ_toZ +/- theorem toZ_iterate_pred +/- theorem toZ_iterate_pred_ge +/- theorem toZ_iterate_pred_of_not_isMin +/- theorem toZ_iterate_succ +/- theorem toZ_iterate_succ_le +/- theorem toZ_iterate_succ_of_not_isMax Modified Mathlib/RingTheory/Perfection.lean Modified Mathlib/RingTheory/Polynomial/Bernstein.lean Modified Mathlib/RingTheory/Polynomial/Hermite/Basic.lean +/- theorem Polynomial.hermite_eq_iterate Modified Mathlib/RingTheory/Polynomial/Hermite/Gaussian.lean Modified Mathlib/RingTheory/WittVector/Domain.lean Modified Mathlib/RingTheory/WittVector/Identities.lean Modified Mathlib/SetTheory/Ordinal/FixedPoint.lean +/- theorem Ordinal.iterate_le_nfp +/- theorem Ordinal.lt_nfp +/- theorem Ordinal.nfp_le +/- theorem Ordinal.nfp_le_iff Modified Mathlib/SetTheory/Ordinal/Notation.lean Modified Mathlib/SetTheory/Ordinal/Principal.lean Modified Mathlib/Topology/Basic.lean +/- theorem Continuous.iterate Modified Mathlib/Topology/MetricSpace/Contracting.lean +/- theorem ContractingWith.isFixedPt_fixedPoint_iterate Modified Mathlib/Topology/MetricSpace/Lipschitz.lean Modified Mathlib/Topology/Order/Basic.lean Modified Mathlib/Topology/TietzeExtension.lean Modified Mathlib/Topology/UniformSpace/Basic.lean 2023-06-29 22:43:57 3b028f2 Data.Nat.Choose.Basic: Register a faster implementation (#3915) ESTIMATED CHANGES Modified Mathlib/Data/Nat/Choose/Basic.lean + theorem Nat.choose_eq_fast_choose + def Nat.fast_choose 2023-06-29 21:43:07 08133ab feat: pretty-print `Ordinal.{u}` (#5564) Adds a `pp_with_univ` command that pretty-prints the universe parameters for the specified constant by default. Just like `Type u`, we should include the universe parameter in `Ordinal.{u}` since you would otherwise have to guess it (and several lemmas require level inequalities, so it's important to know whether you have an `Ordinal.{u}` or merely an `Ordinal.{max u v}`). It might be cute to pretty-print `Category.{v}` as well, but that is much more involved since the pretty-printer for constants is hardcoded. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/SetTheory/Cardinal/Basic.lean Modified Mathlib/SetTheory/Ordinal/Basic.lean Modified Mathlib/Tactic.lean Added Mathlib/Tactic/PPWithUniv.lean + def Mathlib.PPWithUniv.delabWithUniv 2023-06-29 20:50:54 2693807 feat: port AlgebraicGeometry.Limits (#5598) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/AlgebraicGeometry/Limits.lean + def AlgebraicGeometry.Scheme.emptyTo + theorem AlgebraicGeometry.Scheme.empty_ext + theorem AlgebraicGeometry.Scheme.eq_emptyTo + theorem AlgebraicGeometry.bot_isAffineOpen + def AlgebraicGeometry.emptyIsInitial + theorem AlgebraicGeometry.emptyIsInitial_to 2023-06-29 20:50:53 5d44269 chore: remove superfluous parentheses around integrals (#5591) ESTIMATED CHANGES Modified Mathlib/Analysis/BoxIntegral/Integrability.lean Modified Mathlib/Analysis/Calculus/BumpFunctionInner.lean +/- theorem ContDiffBump.integral_normed +/- theorem ContDiffBump.integral_normed_smul Modified Mathlib/Analysis/Complex/CauchyIntegral.lean Modified Mathlib/Analysis/Convolution.lean Modified Mathlib/Analysis/Fourier/RiemannLebesgueLemma.lean Modified Mathlib/Analysis/SpecialFunctions/ImproperIntegrals.lean +/- theorem integral_exp_Iic +/- theorem integral_exp_Iic_zero Modified Mathlib/Analysis/SpecialFunctions/Integrals.lean +/- theorem integral_const_on_unit_interval +/- theorem integral_cos +/- theorem integral_cos_sq +/- theorem integral_exp +/- theorem integral_id +/- theorem integral_inv +/- theorem integral_inv_of_neg +/- theorem integral_inv_of_pos +/- theorem integral_one_div +/- theorem integral_pow +/- theorem integral_pow_abs_sub_uIoc +/- theorem integral_sin +/- theorem integral_sin_mul_cos₁ +/- theorem integral_sin_mul_cos₂ +/- theorem integral_sin_sq Modified Mathlib/Analysis/SpecialFunctions/PolarCoord.lean Modified Mathlib/Analysis/SumIntegralComparisons.lean Modified Mathlib/MeasureTheory/Category/MeasCat.lean Modified Mathlib/MeasureTheory/Constructions/Prod/Basic.lean Modified Mathlib/MeasureTheory/Constructions/Prod/Integral.lean Modified Mathlib/MeasureTheory/Decomposition/Lebesgue.lean Modified Mathlib/MeasureTheory/Function/AEEqFun.lean +/- theorem MeasureTheory.AEEqFun.lintegral_coeFn Modified Mathlib/MeasureTheory/Function/AEEqOfIntegral.lean Modified Mathlib/MeasureTheory/Function/ConditionalExpectation/Unique.lean Modified Mathlib/MeasureTheory/Function/Jacobian.lean Modified Mathlib/MeasureTheory/Function/L1Space.lean Modified Mathlib/MeasureTheory/Function/L2Space.lean Modified Mathlib/MeasureTheory/Group/FundamentalDomain.lean Modified Mathlib/MeasureTheory/Group/Integration.lean Modified Mathlib/MeasureTheory/Integral/Bochner.lean Modified Mathlib/MeasureTheory/Integral/DivergenceTheorem.lean Modified Mathlib/MeasureTheory/Integral/FundThmCalculus.lean Modified Mathlib/MeasureTheory/Integral/IntegralEqImproper.lean Modified Mathlib/MeasureTheory/Integral/IntervalIntegral.lean +/- theorem intervalIntegral.integral_const +/- theorem intervalIntegral.integral_of_ge +/- theorem intervalIntegral.integral_of_le +/- theorem intervalIntegral.integral_same +/- theorem intervalIntegral.integral_symm +/- theorem intervalIntegral.integral_zero_ae Modified Mathlib/MeasureTheory/Integral/Lebesgue.lean +/- theorem MeasureTheory.lintegral_count' +/- theorem MeasureTheory.lintegral_dirac' +/- theorem MeasureTheory.lintegral_smul_measure Modified Mathlib/MeasureTheory/Integral/MeanInequalities.lean Modified Mathlib/MeasureTheory/Integral/PeakFunction.lean Modified Mathlib/MeasureTheory/Integral/Periodic.lean Modified Mathlib/MeasureTheory/Integral/SetIntegral.lean +/- theorem MeasureTheory.integral_Icc_eq_integral_Ico +/- theorem MeasureTheory.integral_Icc_eq_integral_Ioc +/- theorem MeasureTheory.integral_Icc_eq_integral_Ioo +/- theorem MeasureTheory.integral_Ici_eq_integral_Ioi +/- theorem MeasureTheory.integral_Ico_eq_integral_Ioo +/- theorem MeasureTheory.integral_Iic_eq_integral_Iio +/- theorem MeasureTheory.integral_Ioc_eq_integral_Ioo +/- theorem MeasureTheory.integral_empty +/- theorem MeasureTheory.integral_univ +/- theorem MeasureTheory.set_integral_congr_set_ae +/- theorem MeasureTheory.set_integral_const Modified Mathlib/MeasureTheory/Integral/VitaliCaratheodory.lean Modified Mathlib/MeasureTheory/Measure/FiniteMeasure.lean Modified Mathlib/MeasureTheory/Measure/GiryMonad.lean Modified Mathlib/Probability/Density.lean Modified Mathlib/Probability/Integration.lean Modified Mathlib/Probability/Kernel/Basic.lean +/- theorem ProbabilityTheory.kernel.ext_fun 2023-06-29 20:50:52 7966279 fix: precedence of `Bundle.TotalSpace.proj` (#5590) ESTIMATED CHANGES Modified Mathlib/Data/Bundle.lean 2023-06-29 20:50:50 f60fa5c chore(Analysis/Analytic/Composition): cleanup (#5587) ESTIMATED CHANGES Modified Mathlib/Analysis/Analytic/Composition.lean 2023-06-29 20:50:49 983ee56 chore: fix universe parameters in `Condensed`. (#5574) ESTIMATED CHANGES Modified Mathlib/Condensed/Basic.lean +/- def Condensed 2023-06-29 20:50:48 04c1c09 feat: port Topology.Sheaves.Skyscraper (#4751) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Topology/Sheaves/Skyscraper.lean + def SkyscraperPresheafFunctor.map' + theorem SkyscraperPresheafFunctor.map'_comp + theorem SkyscraperPresheafFunctor.map'_id + def StalkSkyscraperPresheafAdjunctionAuxs.fromStalk + theorem StalkSkyscraperPresheafAdjunctionAuxs.fromStalk_to_skyscraper + def StalkSkyscraperPresheafAdjunctionAuxs.toSkyscraperPresheaf + theorem StalkSkyscraperPresheafAdjunctionAuxs.to_skyscraper_fromStalk + def skyscraperPresheaf + def skyscraperPresheafCocone + def skyscraperPresheafCoconeOfSpecializes + def skyscraperPresheafFunctor + def skyscraperPresheafStalkAdjunction + def skyscraperPresheafStalkOfNotSpecializesIsTerminal + theorem skyscraperPresheaf_eq_pushforward + theorem skyscraperPresheaf_isSheaf + def skyscraperSheaf + def skyscraperSheafFunctor + def stalkSkyscraperSheafAdjunction 2023-06-29 19:22:32 3ec9bf6 fix: bug fixes to rw? (#5563) As reported on [zulip](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/panic.20and.20error.20with.20rw.3F/near/370495531) ESTIMATED CHANGES Modified Mathlib/Lean/Meta/DiscrTree.lean Modified Mathlib/Tactic/Rewrites.lean Modified test/rewrites.lean + def foo + theorem six_eq_seven 2023-06-29 18:49:56 b2f1e71 feat: port Archive.Arithcc (#5595) ESTIMATED CHANGES Modified Archive.lean Added Archive/Arithcc.lean + inductive Arithcc.Expr + def Arithcc.Identifier + inductive Arithcc.Instruction + theorem Arithcc.Register.le_of_lt_succ + theorem Arithcc.Register.lt_succ_self + def Arithcc.Register + structure Arithcc.State + def Arithcc.StateEq + def Arithcc.StateEqRs + def Arithcc.Word + def Arithcc.compile + theorem Arithcc.compiler_correctness + def Arithcc.loc + def Arithcc.outcome + theorem Arithcc.outcome_append + def Arithcc.read + theorem Arithcc.stateEqRs_implies_write_eq_rs + theorem Arithcc.stateEq_implies_write_eq + def Arithcc.step + def Arithcc.value + def Arithcc.write + theorem Arithcc.write_eq_implies_stateEq 2023-06-29 18:35:51 80d2e74 feat: port AlgebraicGeometry.Pullbacks (#5583) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/AlgebraicGeometry/Pullbacks.lean + theorem AlgebraicGeometry.Scheme.Pullback.affine_affine_hasPullback + theorem AlgebraicGeometry.Scheme.Pullback.cocycle + theorem AlgebraicGeometry.Scheme.Pullback.cocycle_fst_fst_fst + theorem AlgebraicGeometry.Scheme.Pullback.cocycle_fst_fst_snd + theorem AlgebraicGeometry.Scheme.Pullback.cocycle_fst_snd + theorem AlgebraicGeometry.Scheme.Pullback.cocycle_snd_fst_fst + theorem AlgebraicGeometry.Scheme.Pullback.cocycle_snd_fst_snd + theorem AlgebraicGeometry.Scheme.Pullback.cocycle_snd_snd + def AlgebraicGeometry.Scheme.Pullback.gluedIsLimit + def AlgebraicGeometry.Scheme.Pullback.gluedLift + def AlgebraicGeometry.Scheme.Pullback.gluedLiftPullbackMap + theorem AlgebraicGeometry.Scheme.Pullback.gluedLiftPullbackMap_fst + theorem AlgebraicGeometry.Scheme.Pullback.gluedLiftPullbackMap_snd + theorem AlgebraicGeometry.Scheme.Pullback.gluedLift_p1 + theorem AlgebraicGeometry.Scheme.Pullback.gluedLift_p2 + def AlgebraicGeometry.Scheme.Pullback.gluing + theorem AlgebraicGeometry.Scheme.Pullback.hasPullback_of_cover + theorem AlgebraicGeometry.Scheme.Pullback.lift_comp_ι + def AlgebraicGeometry.Scheme.Pullback.openCoverOfBase' + def AlgebraicGeometry.Scheme.Pullback.openCoverOfBase + def AlgebraicGeometry.Scheme.Pullback.openCoverOfLeft + def AlgebraicGeometry.Scheme.Pullback.openCoverOfLeftRight + def AlgebraicGeometry.Scheme.Pullback.openCoverOfRight + def AlgebraicGeometry.Scheme.Pullback.p1 + def AlgebraicGeometry.Scheme.Pullback.p2 + theorem AlgebraicGeometry.Scheme.Pullback.p_comm + def AlgebraicGeometry.Scheme.Pullback.pullbackFstιToV + theorem AlgebraicGeometry.Scheme.Pullback.pullbackFstιToV_fst + theorem AlgebraicGeometry.Scheme.Pullback.pullbackFstιToV_snd + def AlgebraicGeometry.Scheme.Pullback.pullbackP1Iso + theorem AlgebraicGeometry.Scheme.Pullback.pullbackP1Iso_hom_fst + theorem AlgebraicGeometry.Scheme.Pullback.pullbackP1Iso_hom_snd + theorem AlgebraicGeometry.Scheme.Pullback.pullbackP1Iso_hom_ι + theorem AlgebraicGeometry.Scheme.Pullback.pullbackP1Iso_inv_fst + theorem AlgebraicGeometry.Scheme.Pullback.pullbackP1Iso_inv_snd + def AlgebraicGeometry.Scheme.Pullback.t' + theorem AlgebraicGeometry.Scheme.Pullback.t'_fst_fst_fst + theorem AlgebraicGeometry.Scheme.Pullback.t'_fst_fst_snd + theorem AlgebraicGeometry.Scheme.Pullback.t'_fst_snd + theorem AlgebraicGeometry.Scheme.Pullback.t'_snd_fst_fst + theorem AlgebraicGeometry.Scheme.Pullback.t'_snd_fst_snd + theorem AlgebraicGeometry.Scheme.Pullback.t'_snd_snd + def AlgebraicGeometry.Scheme.Pullback.t + theorem AlgebraicGeometry.Scheme.Pullback.t_fst_fst + theorem AlgebraicGeometry.Scheme.Pullback.t_fst_snd + theorem AlgebraicGeometry.Scheme.Pullback.t_id + theorem AlgebraicGeometry.Scheme.Pullback.t_snd + def AlgebraicGeometry.Scheme.Pullback.v 2023-06-29 18:19:23 eef7daf feat: port LinearAlgebra.CliffordAlgebra.Even (#5408) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/LinearAlgebra/CliffordAlgebra/Even.lean + def CliffordAlgebra.EvenHom.compr₂ + structure CliffordAlgebra.EvenHom + theorem CliffordAlgebra.even.algHom_ext + def CliffordAlgebra.even.lift.aux + theorem CliffordAlgebra.even.lift.aux_algebraMap + theorem CliffordAlgebra.even.lift.aux_mul + theorem CliffordAlgebra.even.lift.aux_one + theorem CliffordAlgebra.even.lift.aux_ι + def CliffordAlgebra.even.lift + theorem CliffordAlgebra.even.lift_ι + def CliffordAlgebra.even + theorem CliffordAlgebra.even_toSubmodule 2023-06-29 14:30:34 4206dd5 feat: port SetTheory.Game.Nim (#5550) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/SetTheory/Game/Nim.lean + theorem PGame.default_nim_one_leftMoves_eq + theorem PGame.default_nim_one_rightMoves_eq + theorem PGame.equiv_nim_grundyValue + theorem PGame.grundyValue_add + theorem PGame.grundyValue_eq_iff_equiv + theorem PGame.grundyValue_eq_iff_equiv_nim + theorem PGame.grundyValue_eq_mex_left + theorem PGame.grundyValue_eq_mex_right + theorem PGame.grundyValue_iff_equiv_zero + theorem PGame.grundyValue_neg + theorem PGame.grundyValue_nim_add_nim + theorem PGame.grundyValue_star + theorem PGame.grundyValue_zero + def PGame.leftMovesNimRecOn + theorem PGame.leftMoves_nim + theorem PGame.moveLeft_nim' + theorem PGame.moveLeft_nim + theorem PGame.moveLeft_nim_hEq + theorem PGame.moveRight_nim' + theorem PGame.moveRight_nim + theorem PGame.moveRight_nim_hEq + theorem PGame.neg_nim + def PGame.nimOneRelabelling + def PGame.nimZeroRelabelling + theorem PGame.nim_add_equiv_zero_iff + theorem PGame.nim_add_fuzzy_zero_iff + theorem PGame.nim_add_nim_equiv + theorem PGame.nim_birthday + theorem PGame.nim_def + theorem PGame.nim_equiv_iff_eq + theorem PGame.nim_fuzzy_zero_of_ne_zero + theorem PGame.nim_grundyValue + theorem PGame.nim_one_equiv + theorem PGame.nim_one_moveLeft + theorem PGame.nim_one_moveRight + theorem PGame.nim_zero_equiv + def PGame.rightMovesNimRecOn + theorem PGame.rightMoves_nim + theorem PGame.toLeftMovesNim_one_symm + theorem PGame.toLeftMovesNim_symm_lt + theorem PGame.toRightMovesNim_one_symm + theorem PGame.toRightMovesNim_symm_lt 2023-06-29 14:20:05 3c46000 feat: port AlgebraicGeometry.Properties (#5585) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/AlgebraicGeometry/PrimeSpectrum/Basic.lean Added Mathlib/AlgebraicGeometry/Properties.lean + theorem AlgebraicGeometry.affine_isIntegral_iff + theorem AlgebraicGeometry.affine_isReduced_iff + theorem AlgebraicGeometry.basicOpen_eq_bot_iff + theorem AlgebraicGeometry.eq_zero_of_basicOpen_eq_bot + theorem AlgebraicGeometry.isIntegralOfIsAffineIsDomain + theorem AlgebraicGeometry.isIntegralOfIsIrreducibleIsReduced + theorem AlgebraicGeometry.isIntegralOfOpenImmersion + theorem AlgebraicGeometry.isIntegral_iff_is_irreducible_and_isReduced + theorem AlgebraicGeometry.isReducedOfIsAffineIsReduced + theorem AlgebraicGeometry.isReducedOfOpenImmersion + theorem AlgebraicGeometry.isReducedOfStalkIsReduced + theorem AlgebraicGeometry.map_injective_of_isIntegral + theorem AlgebraicGeometry.reduce_to_affine_global + theorem AlgebraicGeometry.reduce_to_affine_nbhd 2023-06-29 13:10:22 c0cf4ad feat: port number_theory.legendre_symbol.norm_num to Tactic.NormNum.LegendreSymbol (#5548) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Tactic.lean Added Mathlib/Tactic/NormNum/LegendreSymbol.lean + theorem Mathlib.Meta.NormNum.JacobiSym.mod_left + theorem Mathlib.Meta.NormNum.LegendreSym.to_jacobiSym + theorem Mathlib.Meta.NormNum.isInt_jacobiSym + theorem Mathlib.Meta.NormNum.isInt_jacobiSymNat + theorem Mathlib.Meta.NormNum.jacobiSymNat.double_even + theorem Mathlib.Meta.NormNum.jacobiSymNat.even_even + theorem Mathlib.Meta.NormNum.jacobiSymNat.even_odd₁ + theorem Mathlib.Meta.NormNum.jacobiSymNat.even_odd₃ + theorem Mathlib.Meta.NormNum.jacobiSymNat.even_odd₅ + theorem Mathlib.Meta.NormNum.jacobiSymNat.even_odd₇ + theorem Mathlib.Meta.NormNum.jacobiSymNat.mod_left + theorem Mathlib.Meta.NormNum.jacobiSymNat.odd_even + theorem Mathlib.Meta.NormNum.jacobiSymNat.one_left + theorem Mathlib.Meta.NormNum.jacobiSymNat.one_right + theorem Mathlib.Meta.NormNum.jacobiSymNat.qr₁' + theorem Mathlib.Meta.NormNum.jacobiSymNat.qr₁'_mod + theorem Mathlib.Meta.NormNum.jacobiSymNat.qr₁ + theorem Mathlib.Meta.NormNum.jacobiSymNat.qr₁_mod + theorem Mathlib.Meta.NormNum.jacobiSymNat.qr₃ + theorem Mathlib.Meta.NormNum.jacobiSymNat.qr₃_mod + theorem Mathlib.Meta.NormNum.jacobiSymNat.zero_left + theorem Mathlib.Meta.NormNum.jacobiSymNat.zero_right + def Mathlib.Meta.NormNum.jacobiSymNat + def Tactic.NormNum.evalJacobiSym + def Tactic.NormNum.evalJacobiSymNat + def Tactic.NormNum.evalLegendreSym Modified test/norm_num_ext.lean 2023-06-29 13:10:20 5e744e3 feat: port Algebra.Category.FGModuleCat.Limits (#5519) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Category/FGModuleCat/Limits.lean + def FGModuleCat.forget₂CreatesLimit Modified Mathlib/Algebra/Category/ModuleCat/Products.lean 2023-06-29 11:49:05 82f200d fix: have `tauto` use `Lean.Meta.isProp` rather than `Lean.Expr.isProp` (#5565) `Lean.Expr.isProp` can't handle metavariables but `Lean.Meta.isProp` can. Bug reported by @negiizhao ESTIMATED CHANGES Modified Mathlib/Order/Circular.lean Modified Mathlib/Tactic/Tauto.lean +/- def Mathlib.Tactic.Tauto.casesMatcher +/- def Mathlib.Tactic.Tauto.coreConstructorMatcher +/- def Mathlib.Tactic.Tauto.finishingConstructorMatcher Modified test/Tauto.lean 2023-06-29 10:29:21 b8fe59a feat: unexpander for `abs` notation (#5559) Pretty prints `abs a` as `|a|`. It adds discretionary parentheses in known unparseable cases, like `|(|x|)|` rather than `||x||`. It also uses discretionary parentheses in`|(-x)|` since currently `|-x|` does not parse. ESTIMATED CHANGES Modified Mathlib/Algebra/Abs.lean + def Abs.abs.unexpander 2023-06-29 10:11:59 f3b01c5 feat: port Algebra.Homology.DifferentialObject (#5033) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Homology/DifferentialObject.lean + theorem CategoryTheory.DifferentialObject.d_squared_apply + theorem CategoryTheory.DifferentialObject.eqToHom_f' + theorem CategoryTheory.DifferentialObject.objEqToHom_d + theorem CategoryTheory.DifferentialObject.objEqToHom_refl + theorem HomologicalComplex.d_eqToHom + def HomologicalComplex.dgoEquivHomologicalComplex + def HomologicalComplex.dgoEquivHomologicalComplexCounitIso + def HomologicalComplex.dgoEquivHomologicalComplexUnitIso + def HomologicalComplex.dgoToHomologicalComplex + def HomologicalComplex.homologicalComplexToDGO Modified Mathlib/CategoryTheory/DifferentialObject.lean 2023-06-29 08:26:42 d73ed56 feat: port Order.Category.OmegaCompletePartialOrder (#5578) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Order/Category/OmegaCompletePartialOrder.lean + def ωCPO.HasEqualizers.equalizer + def ωCPO.HasEqualizers.equalizerι + def ωCPO.HasEqualizers.isEqualizer + def ωCPO.HasProducts.isProduct + def ωCPO.HasProducts.product + theorem ωCPO.coe_of + def ωCPO.of + def ωCPO 2023-06-29 08:26:41 584c909 feat: port NumberTheory.ZetaFunction (#5556) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/NumberTheory/ZetaFunction.lean + def RiemannHypothesis + theorem completed_zeta_eq_mellin_of_one_lt_re + theorem completed_zeta_eq_tsum_of_one_lt_re + theorem continuousAt_zetaKernel₁ + theorem differentiableAt_completed_zeta + theorem differentiableAt_mellin_zetaKernel₁ + theorem differentiableAt_riemannZeta + theorem differentiable_completed_zeta₀ + theorem differentiable_mellin_zetaKernel₂ + theorem hasMellin_one_div_sqrt_Ioc + theorem hasMellin_one_div_sqrt_sub_one_div_two_Ioc + theorem integral_cpow_mul_exp_neg_pi_mul_sq + theorem isBigO_atTop_zetaKernel₁ + theorem isBigO_atTop_zetaKernel₂ + theorem isBigO_zero_zetaKernel₁ + theorem isBigO_zero_zetaKernel₂ + theorem isBigO_zero_zetaKernel₂_rpow + theorem locally_integrable_zetaKernel₁ + theorem locally_integrable_zetaKernel₂ + theorem mellin_zetaKernel₁_eq_tsum + theorem mellin_zetaKernel₂_eq_of_lt_re + def riemannCompletedZeta + theorem riemannCompletedZeta_one_sub + def riemannCompletedZeta₀ + theorem riemannCompletedZeta₀_one_sub + theorem riemannZeta_four + theorem riemannZeta_neg_nat_eq_bernoulli + theorem riemannZeta_neg_two_mul_nat_add_one + theorem riemannZeta_one_sub + theorem riemannZeta_two + theorem riemannZeta_two_mul_nat + theorem riemannZeta_zero + theorem summable_exp_neg_pi_mul_nat_sq + def zetaKernel₁ + theorem zetaKernel₁_eq_jacobiTheta + def zetaKernel₂ + theorem zetaKernel₂_one_div + theorem zeta_eq_tsum_one_div_nat_add_one_cpow + theorem zeta_eq_tsum_one_div_nat_cpow + theorem zeta_nat_eq_tsum_of_gt_one 2023-06-29 08:26:40 5e6d910 feat(Analysis/LocallyConvex/WithSeminorms): characterize continuous seminorms (#5501) This shows that, if the topology of `E` is defined by some family of seminorms `p`, then a seminorm `q` is continuous iff `∃ s : Finset ι, ∃ C : ℝ≥0, C ≠ 0 ∧ q ≤ C • s.sup p`. Via [Seminorm.continuous_iff_continuous_comp](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Analysis/LocallyConvex/WithSeminorms.html#Seminorm.continuous_iff_continuous_comp) this gives the converse of [Seminorm.continuous_from_bounded](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Analysis/LocallyConvex/WithSeminorms.html#Seminorm.continuous_from_bounded) and hence a characterization of continuous linear maps between such spaces. To do that, we restate all of the "bound of shell" lemmas in terms of seminorms, which needs changing some imports, but I've checked the current state of the port and this should not cause too much trouble since most of the touched files are already ported so we can changes the imports in mathlib4 too. The `WithSeminorms` file needs a naming/dot notation refactor at some point, because the naming scheme is neither predictable nor convenient to use, but this PR is already large enough. ESTIMATED CHANGES Modified Mathlib/Analysis/LocallyConvex/WithSeminorms.lean + theorem Seminorm.bound_of_continuous + theorem Seminorm.bound_of_continuous_normedSpace + theorem Seminorm.map_eq_zero_of_norm_zero Modified Mathlib/Analysis/NormedSpace/Basic.lean - theorem rescale_to_shell - theorem rescale_to_shell_semi_normed - theorem rescale_to_shell_semi_normed_zpow - theorem rescale_to_shell_zpow Modified Mathlib/Analysis/NormedSpace/OperatorNorm.lean Modified Mathlib/Analysis/NormedSpace/RieszLemma.lean Modified Mathlib/Analysis/Seminorm.lean + theorem Seminorm.ball_mem_nhds + theorem Seminorm.bound_of_shell + theorem Seminorm.bound_of_shell_smul + theorem Seminorm.bound_of_shell_sup + theorem Seminorm.exists_apply_eq_finset_sup + theorem Seminorm.finset_sup_smul + theorem Seminorm.le_finset_sup_apply + theorem Seminorm.rescale_to_shell + theorem Seminorm.rescale_to_shell_zpow + theorem Seminorm.zero_or_exists_apply_eq_finset_sup + theorem rescale_to_shell + theorem rescale_to_shell_semi_normed + theorem rescale_to_shell_semi_normed_zpow + theorem rescale_to_shell_zpow 2023-06-29 08:26:39 4574002 feat: add `Filter.eq_or_neBot` (#5230) Also add `Filter.limsup_bot`, `Filter.liminf_bot`, and golf some proofs using new lemmas. ESTIMATED CHANGES Modified Mathlib/Analysis/Complex/LocallyUniformLimit.lean Modified Mathlib/MeasureTheory/Constructions/BorelSpace/Metrizable.lean Modified Mathlib/MeasureTheory/Constructions/Polish.lean Modified Mathlib/MeasureTheory/Covering/DensityTheorem.lean Modified Mathlib/MeasureTheory/Measure/Portmanteau.lean Modified Mathlib/Order/Filter/Basic.lean + theorem Filter.eq_or_neBot Modified Mathlib/Order/LiminfLimsup.lean + theorem Filter.liminf_bot + theorem Filter.limsup_bot Modified Mathlib/Topology/Algebra/Order/LiminfLimsup.lean 2023-06-29 08:26:38 3ae1d05 feat: add `PreErgodic.ae_mem_or_ae_nmem` etc (#5220) Add versions of some of the `PreErgodic.ae_empty_or_univ` etc lemmas in terms of `(∀ᵐ x ∂μ, x ∈ s) ∨ (∀ᵐ x ∂μ, x ∉ s)` instead of a.e. equality of sets. ESTIMATED CHANGES Modified Mathlib/Dynamics/Ergodic/Ergodic.lean + theorem PreErgodic.ae_mem_or_ae_nmem + theorem QuasiErgodic.ae_empty_or_univ₀ + theorem QuasiErgodic.ae_mem_or_ae_nmem₀ 2023-06-29 08:26:37 acd5297 feat: add instances for `MeasurableSpace.CountablyGenerated` (#5216) ESTIMATED CHANGES Modified Mathlib/MeasureTheory/MeasurableSpace.lean + theorem MeasurableSpace.CountablyGenerated.comap + theorem MeasurableSpace.CountablyGenerated.sup Modified Mathlib/MeasureTheory/Measure/OuterMeasure.lean 2023-06-29 07:18:10 a5ab970 feat: port AlgebraicGeometry.AffineScheme (#5394) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/AlgebraicGeometry/AffineScheme.lean + def AlgebraicGeometry.AffineScheme.Spec + def AlgebraicGeometry.AffineScheme.equivCommRingCat + def AlgebraicGeometry.AffineScheme.forgetToScheme + def AlgebraicGeometry.AffineScheme.mk + def AlgebraicGeometry.AffineScheme.of + def AlgebraicGeometry.AffineScheme.ofHom + def AlgebraicGeometry.AffineScheme.Γ + def AlgebraicGeometry.AffineScheme + theorem AlgebraicGeometry.IsAffineOpen.SpecΓIdentity_hom_app_fromSpec + theorem AlgebraicGeometry.IsAffineOpen.basicOpenIsAffine + theorem AlgebraicGeometry.IsAffineOpen.basicOpen_fromSpec_app + theorem AlgebraicGeometry.IsAffineOpen.basicOpen_union_eq_self_iff + theorem AlgebraicGeometry.IsAffineOpen.exists_basicOpen_le + def AlgebraicGeometry.IsAffineOpen.fromSpec + theorem AlgebraicGeometry.IsAffineOpen.fromSpec_app_eq + theorem AlgebraicGeometry.IsAffineOpen.fromSpec_base_preimage + theorem AlgebraicGeometry.IsAffineOpen.fromSpec_image_top + theorem AlgebraicGeometry.IsAffineOpen.fromSpec_map_basicOpen + theorem AlgebraicGeometry.IsAffineOpen.fromSpec_primeIdealOf + theorem AlgebraicGeometry.IsAffineOpen.fromSpec_range + theorem AlgebraicGeometry.IsAffineOpen.imageIsOpenImmersion + theorem AlgebraicGeometry.IsAffineOpen.isCompact + theorem AlgebraicGeometry.IsAffineOpen.isLocalization_stalk' + theorem AlgebraicGeometry.IsAffineOpen.isLocalization_stalk + theorem AlgebraicGeometry.IsAffineOpen.isLocalization_stalk_aux' + theorem AlgebraicGeometry.IsAffineOpen.isLocalization_stalk_aux + theorem AlgebraicGeometry.IsAffineOpen.mapRestrictBasicOpen + theorem AlgebraicGeometry.IsAffineOpen.opens_map_fromSpec_basicOpen + theorem AlgebraicGeometry.IsAffineOpen.self_le_basicOpen_union_iff + def AlgebraicGeometry.IsAffineOpen + theorem AlgebraicGeometry.Scheme.Spec_map_presheaf_map_eqToHom + def AlgebraicGeometry.Scheme.affineBasicOpen + def AlgebraicGeometry.Scheme.affineOpens + def AlgebraicGeometry.Scheme.isoSpec + theorem AlgebraicGeometry.Scheme.map_PrimeSpectrum_basicOpen_of_affine + def AlgebraicGeometry.basicOpenSectionsToAffine + theorem AlgebraicGeometry.basicOpen_basicOpen_is_basicOpen + theorem AlgebraicGeometry.exists_basicOpen_le_affine_inter + theorem AlgebraicGeometry.isAffineOfIso + theorem AlgebraicGeometry.isAffineOpen_iff_of_isOpenImmersion + theorem AlgebraicGeometry.isBasis_affine_open + theorem AlgebraicGeometry.isBasis_basicOpen + theorem AlgebraicGeometry.isLocalization_basicOpen + theorem AlgebraicGeometry.isLocalization_of_eq_basicOpen + theorem AlgebraicGeometry.mem_Spec_essImage + theorem AlgebraicGeometry.of_affine_open_cover + theorem AlgebraicGeometry.rangeIsAffineOpenOfOpenImmersion + theorem AlgebraicGeometry.topIsAffineOpen Modified Mathlib/AlgebraicGeometry/PrimeSpectrum/Basic.lean Modified Mathlib/AlgebraicGeometry/Scheme.lean + theorem AlgebraicGeometry.Scheme.presheaf_map_eqToHom_op Modified Mathlib/CategoryTheory/EssentialImage.lean Modified Mathlib/Topology/Sheaves/Stalks.lean 2023-06-29 07:18:09 b0841bf feat: actions of `DomMulAct` on `A →[N] B` and `A →+[N] B` (#5378) Refs #5379 ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Hom/GroupAction.lean + def SMulCommClass.toDistribMulActionHom + def SMulCommClass.toMulActionHom Added Mathlib/GroupTheory/GroupAction/DomAct/ActionHom.lean + theorem DomMulAct.mk_smul_mulActionHom_apply + theorem DomMulAct.mk_smul_mulDistribActionHom_apply + theorem DomMulAct.smul_mulActionHom_apply + theorem DomMulAct.smul_mulDistribActionHom_apply Modified Mathlib/GroupTheory/GroupAction/DomAct/Basic.lean 2023-06-29 05:58:58 4839558 feat: port Archive.Imo.Imo2019Q2 (#5573) ESTIMATED CHANGES Modified Archive.lean Added Archive/Imo/Imo2019Q2.lean + theorem Imo2019Q2.Imo2019q2Cfg.A_mem_circumsphere + theorem Imo2019Q2.Imo2019q2Cfg.A_ne_A₁ + theorem Imo2019Q2.Imo2019q2Cfg.A_ne_B + theorem Imo2019Q2.Imo2019q2Cfg.A_ne_C + theorem Imo2019Q2.Imo2019q2Cfg.A₁_ne_B + theorem Imo2019Q2.Imo2019q2Cfg.A₁_ne_C + def Imo2019Q2.Imo2019q2Cfg.A₂ + theorem Imo2019Q2.Imo2019q2Cfg.A₂_mem_circumsphere + theorem Imo2019Q2.Imo2019q2Cfg.A₂_ne_A + theorem Imo2019Q2.Imo2019q2Cfg.A₂_ne_B + theorem Imo2019Q2.Imo2019q2Cfg.A₂_ne_C + theorem Imo2019Q2.Imo2019q2Cfg.A₂_ne_P + theorem Imo2019Q2.Imo2019q2Cfg.B_mem_circumsphere + theorem Imo2019Q2.Imo2019q2Cfg.B_ne_C + theorem Imo2019Q2.Imo2019q2Cfg.B₁_ne_C + def Imo2019Q2.Imo2019q2Cfg.B₂ + theorem Imo2019Q2.Imo2019q2Cfg.B₂_mem_circumsphere + theorem Imo2019Q2.Imo2019q2Cfg.B₂_ne_A₂ + theorem Imo2019Q2.Imo2019q2Cfg.B₂_ne_B + theorem Imo2019Q2.Imo2019q2Cfg.B₂_ne_Q + theorem Imo2019Q2.Imo2019q2Cfg.C_mem_circumsphere + theorem Imo2019Q2.Imo2019q2Cfg.P_mem_ω + theorem Imo2019Q2.Imo2019q2Cfg.P₁_mem_ω + theorem Imo2019Q2.Imo2019q2Cfg.QP_parallel_BA + theorem Imo2019Q2.Imo2019q2Cfg.Q_mem_ω + theorem Imo2019Q2.Imo2019q2Cfg.Q_ne_B + theorem Imo2019Q2.Imo2019q2Cfg.Q_not_mem_CB + theorem Imo2019Q2.Imo2019q2Cfg.Q₁_mem_ω + theorem Imo2019Q2.Imo2019q2Cfg.Q₁_ne_A₂ + theorem Imo2019Q2.Imo2019q2Cfg.affineIndependent_PQB₂ + theorem Imo2019Q2.Imo2019q2Cfg.affineIndependent_QPA₂ + theorem Imo2019Q2.Imo2019q2Cfg.collinear_PAA₁A₂ + theorem Imo2019Q2.Imo2019q2Cfg.cospherical_A₁Q₁CA₂ + theorem Imo2019Q2.Imo2019q2Cfg.cospherical_QPB₂A₂ + theorem Imo2019Q2.Imo2019q2Cfg.not_collinear_ABC + theorem Imo2019Q2.Imo2019q2Cfg.not_collinear_CA₂A₁ + theorem Imo2019Q2.Imo2019q2Cfg.not_collinear_QPA₂ + theorem Imo2019Q2.Imo2019q2Cfg.oangle_CQ₁Q_eq_oangle_CBA + theorem Imo2019Q2.Imo2019q2Cfg.oangle_CQ₁Q_sign_eq_oangle_CBA_sign + theorem Imo2019Q2.Imo2019q2Cfg.result + theorem Imo2019Q2.Imo2019q2Cfg.sOppSide_CB_Q_Q₁ + theorem Imo2019Q2.Imo2019q2Cfg.sbtw_A_A₁_A₂ + theorem Imo2019Q2.Imo2019q2Cfg.sbtw_A_B₁_C + theorem Imo2019Q2.Imo2019q2Cfg.sbtw_B_A₁_C + theorem Imo2019Q2.Imo2019q2Cfg.sbtw_B_B₁_B₂ + def Imo2019Q2.Imo2019q2Cfg.symm + theorem Imo2019Q2.Imo2019q2Cfg.symm_A₂ + theorem Imo2019Q2.Imo2019q2Cfg.symm_triangleABC + theorem Imo2019Q2.Imo2019q2Cfg.symm_triangleABC_circumsphere + theorem Imo2019Q2.Imo2019q2Cfg.symm_triangleQPA₂ + theorem Imo2019Q2.Imo2019q2Cfg.symm_ω + theorem Imo2019Q2.Imo2019q2Cfg.symm_ω_eq_trianglePQB₂_circumsphere + def Imo2019Q2.Imo2019q2Cfg.triangleABC + def Imo2019Q2.Imo2019q2Cfg.trianglePQB₂ + def Imo2019Q2.Imo2019q2Cfg.triangleQPA₂ + theorem Imo2019Q2.Imo2019q2Cfg.two_zsmul_oangle_CA₂A₁_eq_two_zsmul_oangle_CBA + theorem Imo2019Q2.Imo2019q2Cfg.two_zsmul_oangle_CA₂A₁_eq_two_zsmul_oangle_CQ₁A₁ + theorem Imo2019Q2.Imo2019q2Cfg.two_zsmul_oangle_QPA₂_eq_two_zsmul_oangle_BAA₂ + theorem Imo2019Q2.Imo2019q2Cfg.two_zsmul_oangle_QPA₂_eq_two_zsmul_oangle_QB₂A₂ + theorem Imo2019Q2.Imo2019q2Cfg.two_zsmul_oangle_QQ₁A₂_eq_two_zsmul_oangle_QPA₂ + theorem Imo2019Q2.Imo2019q2Cfg.wbtw_B_Q_B₂ + def Imo2019Q2.Imo2019q2Cfg.ω + structure Imo2019Q2.Imo2019q2Cfg + def Imo2019Q2.someOrientation + theorem imo2019_q2 2023-06-29 05:58:57 d5ecb6d feat: add MulEquiv.toMulHom_eq_coe to normalize coercions (#5546) There will probably be simpNF problems, waiting for CI. ESTIMATED CHANGES Modified Mathlib/Algebra/Hom/Equiv/Basic.lean + theorem MulEquiv.toMulHom_eq_coe Modified Mathlib/GroupTheory/Subsemigroup/Operations.lean +/- def MulEquiv.subsemigroupMap +/- theorem Subsemigroup.map_equiv_top 2023-06-29 05:08:17 6ac8731 feat: add lemmas about `AffineSubspace`c (#5570) ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/AffineSpace/AffineSubspace.lean + theorem AffineSubspace.comap_bot + theorem Submodule.mem_toAffineSubspace + theorem Submodule.toAffineSubspace_direction 2023-06-29 05:08:16 a0f9821 feat: add lemmas about `Equiv.pointReflection` (#5568) ESTIMATED CHANGES Modified Mathlib/Algebra/AddTorsor.lean + theorem Equiv.left_vsub_pointReflection + theorem Equiv.pointReflection_vsub_left + theorem Equiv.pointReflection_vsub_right + theorem Equiv.right_vsub_pointReflection Modified Mathlib/Analysis/NormedSpace/AddTorsor.lean + theorem dist_left_pointReflection + theorem dist_pointReflection_left + theorem dist_pointReflection_right + theorem dist_right_pointReflection Modified Mathlib/LinearAlgebra/AffineSpace/Midpoint.lean + theorem midpoint_pointReflection_left + theorem midpoint_pointReflection_right 2023-06-29 04:23:24 b811eab feat: add `ContinuousOn.vsub` (#5569) Also fix indentation ESTIMATED CHANGES Modified Mathlib/Analysis/Normed/Group/AddTorsor.lean + theorem ContinuousOn.vsub 2023-06-29 04:23:23 cac608b feat: port RingTheory.WittVector.FrobeniusFractionField (#5561) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/RingTheory/WittVector/FrobeniusFractionField.lean + def WittVector.RecursionBase.solution + theorem WittVector.RecursionBase.solution_nonzero + theorem WittVector.RecursionBase.solution_pow + theorem WittVector.RecursionBase.solution_spec' + theorem WittVector.RecursionBase.solution_spec + theorem WittVector.RecursionMain.root_exists + def WittVector.RecursionMain.succNthDefiningPoly + theorem WittVector.RecursionMain.succNthDefiningPoly_degree + def WittVector.RecursionMain.succNthVal + theorem WittVector.RecursionMain.succNthVal_spec' + theorem WittVector.RecursionMain.succNthVal_spec + theorem WittVector.exists_frobenius_solution_fractionRing + theorem WittVector.exists_frobenius_solution_fractionRing_aux + def WittVector.frobeniusRotation + theorem WittVector.frobeniusRotation_nonzero + theorem WittVector.frobenius_frobeniusRotation 2023-06-29 04:23:22 a0da6e7 feat: port SetTheory.Surreal.Dyadic (#5552) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/SetTheory/Game/PGame.lean Added Mathlib/SetTheory/Surreal/Dyadic.lean + theorem PGame.add_powHalf_succ_self_eq_powHalf + theorem PGame.birthday_half + theorem PGame.half_add_half_equiv_one + theorem PGame.numeric_powHalf + def PGame.powHalf + theorem PGame.powHalf_le_one + theorem PGame.powHalf_leftMoves + theorem PGame.powHalf_moveLeft + theorem PGame.powHalf_pos + theorem PGame.powHalf_succ_le_powHalf + theorem PGame.powHalf_succ_lt_one + theorem PGame.powHalf_succ_lt_powHalf + theorem PGame.powHalf_succ_moveRight + theorem PGame.powHalf_succ_rightMoves + theorem PGame.powHalf_zero + theorem PGame.powHalf_zero_rightMoves + theorem PGame.zero_le_powHalf + theorem Surreal.double_powHalf_succ_eq_powHalf + def Surreal.dyadic + def Surreal.dyadicMap + theorem Surreal.dyadicMap_apply + theorem Surreal.dyadicMap_apply_pow' + theorem Surreal.dyadicMap_apply_pow + theorem Surreal.dyadic_aux + theorem Surreal.nsmul_pow_two_powHalf' + theorem Surreal.nsmul_pow_two_powHalf + def Surreal.powHalf + theorem Surreal.powHalf_zero + theorem Surreal.zsmul_pow_two_powHalf 2023-06-29 04:06:55 b62dfca feat: port AlgebraicGeometry.Gluing (#5446) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/AlgebraicGeometry/Gluing.lean + def AlgebraicGeometry.Scheme.GlueData.Rel + theorem AlgebraicGeometry.Scheme.GlueData.glue_condition + def AlgebraicGeometry.Scheme.GlueData.gluedScheme + theorem AlgebraicGeometry.Scheme.GlueData.isOpen_iff + def AlgebraicGeometry.Scheme.GlueData.isoCarrier + def AlgebraicGeometry.Scheme.GlueData.openCover + def AlgebraicGeometry.Scheme.GlueData.vPullbackCone + def AlgebraicGeometry.Scheme.GlueData.vPullbackConeIsLimit + theorem AlgebraicGeometry.Scheme.GlueData.ι_eq_iff + theorem AlgebraicGeometry.Scheme.GlueData.ι_isoCarrier_inv + theorem AlgebraicGeometry.Scheme.GlueData.ι_isoLocallyRingedSpace_inv + theorem AlgebraicGeometry.Scheme.GlueData.ι_jointly_surjective + structure AlgebraicGeometry.Scheme.GlueData + def AlgebraicGeometry.Scheme.OpenCover.fromGlued + theorem AlgebraicGeometry.Scheme.OpenCover.fromGlued_injective + theorem AlgebraicGeometry.Scheme.OpenCover.fromGlued_openEmbedding + theorem AlgebraicGeometry.Scheme.OpenCover.fromGlued_open_map + def AlgebraicGeometry.Scheme.OpenCover.glueMorphisms + def AlgebraicGeometry.Scheme.OpenCover.gluedCover + def AlgebraicGeometry.Scheme.OpenCover.gluedCoverT' + theorem AlgebraicGeometry.Scheme.OpenCover.gluedCoverT'_fst_fst + theorem AlgebraicGeometry.Scheme.OpenCover.gluedCoverT'_fst_snd + theorem AlgebraicGeometry.Scheme.OpenCover.gluedCoverT'_snd_fst + theorem AlgebraicGeometry.Scheme.OpenCover.gluedCoverT'_snd_snd + theorem AlgebraicGeometry.Scheme.OpenCover.glued_cover_cocycle + theorem AlgebraicGeometry.Scheme.OpenCover.glued_cover_cocycle_fst + theorem AlgebraicGeometry.Scheme.OpenCover.glued_cover_cocycle_snd + theorem AlgebraicGeometry.Scheme.OpenCover.hom_ext + theorem AlgebraicGeometry.Scheme.OpenCover.ι_fromGlued + theorem AlgebraicGeometry.Scheme.OpenCover.ι_glueMorphisms Modified Mathlib/AlgebraicGeometry/SheafedSpace.lean 2023-06-29 02:25:45 976c41e feat: `extract_lets` tactic (#3897) This tactic is for taking `let` bindings in the local context and "intro-ing" these bindings. It is like a `cases` tactic for `let` bindings. It can be used like `extract_lets x y at h` or `extract_lets at h` using `intros`-like identifier lists. It also supports `extract_lets at *`. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Tactic.lean Modified Mathlib/Tactic/Common.lean Added Mathlib/Tactic/ExtractLets.lean + def Lean.Expr.letDepth + def Lean.MVarId.extractLets + def Lean.MVarId.extractLetsAt + def Mathlib.evalExtractLet Added test/ExtractLets.lean 2023-06-29 00:57:09 2232bf0 feat: add `variable?` command to Mathlib.Tactic.Common (#5566) ESTIMATED CHANGES Modified Mathlib/Tactic/Common.lean 2023-06-28 18:22:54 ec733a5 feat: port Geometry.Euclidean.MongePoint (#5056) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Geometry/Euclidean/MongePoint.lean + theorem Affine.Simplex.affineSpan_pair_eq_altitude_iff + def Affine.Simplex.altitude + theorem Affine.Simplex.altitude_def + theorem Affine.Simplex.direction_altitude + theorem Affine.Simplex.direction_mongePlane + theorem Affine.Simplex.eq_mongePoint_of_forall_mem_mongePlane + theorem Affine.Simplex.finrank_direction_altitude + theorem Affine.Simplex.inner_mongePoint_vsub_face_centroid_vsub + theorem Affine.Simplex.mem_altitude + def Affine.Simplex.mongePlane + theorem Affine.Simplex.mongePlane_comm + theorem Affine.Simplex.mongePlane_def + def Affine.Simplex.mongePoint + def Affine.Simplex.mongePointVSubFaceCentroidWeightsWithCircumcenter + theorem Affine.Simplex.mongePointVSubFaceCentroidWeightsWithCircumcenter_eq_sub + def Affine.Simplex.mongePointWeightsWithCircumcenter + theorem Affine.Simplex.mongePoint_eq_affineCombination_of_pointsWithCircumcenter + theorem Affine.Simplex.mongePoint_eq_of_range_eq + theorem Affine.Simplex.mongePoint_eq_smul_vsub_vadd_circumcenter + theorem Affine.Simplex.mongePoint_mem_affineSpan + theorem Affine.Simplex.mongePoint_mem_mongePlane + theorem Affine.Simplex.mongePoint_vsub_face_centroid_eq_weightedVSub_of_pointsWithCircumcenter + theorem Affine.Simplex.sum_mongePointVSubFaceCentroidWeightsWithCircumcenter + theorem Affine.Simplex.sum_mongePointWeightsWithCircumcenter + theorem Affine.Simplex.vectorSpan_isOrtho_altitude_direction + theorem Affine.Triangle.affineSpan_orthocenter_point_le_altitude + theorem Affine.Triangle.altitude_eq_mongePlane + theorem Affine.Triangle.altitude_replace_orthocenter_eq_affineSpan + theorem Affine.Triangle.dist_orthocenter_reflection_circumcenter + theorem Affine.Triangle.dist_orthocenter_reflection_circumcenter_finset + theorem Affine.Triangle.eq_orthocenter_of_forall_mem_altitude + def Affine.Triangle.orthocenter + theorem Affine.Triangle.orthocenter_eq_mongePoint + theorem Affine.Triangle.orthocenter_eq_of_range_eq + theorem Affine.Triangle.orthocenter_eq_smul_vsub_vadd_circumcenter + theorem Affine.Triangle.orthocenter_mem_affineSpan + theorem Affine.Triangle.orthocenter_mem_altitude + theorem Affine.Triangle.orthocenter_replace_orthocenter_eq_point + theorem EuclideanGeometry.OrthocentricSystem.affineIndependent + theorem EuclideanGeometry.OrthocentricSystem.eq_insert_orthocenter + theorem EuclideanGeometry.OrthocentricSystem.exists_circumradius_eq + def EuclideanGeometry.OrthocentricSystem + theorem EuclideanGeometry.affineSpan_of_orthocentricSystem + theorem EuclideanGeometry.exists_dist_eq_circumradius_of_subset_insert_orthocenter + theorem EuclideanGeometry.exists_of_range_subset_orthocentricSystem 2023-06-28 18:09:27 f90c0b2 feat: port ring theory.witt_vector.compare (#5555) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/RingTheory/WittVector/Compare.lean + theorem TruncatedWittVector.card_zMod + theorem TruncatedWittVector.charP_zMod + theorem TruncatedWittVector.commutes' + theorem TruncatedWittVector.commutes + theorem TruncatedWittVector.commutes_symm' + theorem TruncatedWittVector.commutes_symm + theorem TruncatedWittVector.eq_of_le_of_cast_pow_eq_zero + def TruncatedWittVector.zmodEquivTrunc + theorem TruncatedWittVector.zmodEquivTrunc_apply + def WittVector.equiv + def WittVector.fromPadicInt + theorem WittVector.fromPadicInt_comp_toPadicInt + theorem WittVector.fromPadicInt_comp_toPadicInt_ext + def WittVector.toPadicInt + theorem WittVector.toPadicInt_comp_fromPadicInt + theorem WittVector.toPadicInt_comp_fromPadicInt_ext + def WittVector.toZmodPow + theorem WittVector.toZmodPow_compat + theorem WittVector.zmodEquivTrunc_compat 2023-06-28 17:51:16 883250c feat: port RingTheory.WittVector.DiscreteValuationRing (#5557) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/RingTheory/WittVector/DiscreteValuationRing.lean + theorem WittVector.coe_mkUnit + theorem WittVector.discreteValuationRing + theorem WittVector.exists_eq_pow_p_mul' + theorem WittVector.exists_eq_pow_p_mul + theorem WittVector.irreducible + theorem WittVector.isUnit_of_coeff_zero_ne_zero + def WittVector.mkUnit + def WittVector.succNthValUnits 2023-06-28 16:07:55 b47e7d2 feat: port RingTheory.WittVector.MulCoeff (#5554) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/RingTheory/WittVector/Frobenius.lean Modified Mathlib/RingTheory/WittVector/InitTail.lean Modified Mathlib/RingTheory/WittVector/IsPoly.lean Added Mathlib/RingTheory/WittVector/MulCoeff.lean + theorem WittVector.mul_polyOfInterest_aux1 + theorem WittVector.mul_polyOfInterest_aux2 + theorem WittVector.mul_polyOfInterest_aux3 + theorem WittVector.mul_polyOfInterest_aux4 + theorem WittVector.mul_polyOfInterest_aux5 + theorem WittVector.mul_polyOfInterest_vars + def WittVector.nthRemainder + theorem WittVector.nthRemainder_spec + theorem WittVector.nth_mul_coeff' + theorem WittVector.nth_mul_coeff + theorem WittVector.peval_polyOfInterest' + theorem WittVector.peval_polyOfInterest + def WittVector.polyOfInterest + theorem WittVector.polyOfInterest_vars + theorem WittVector.polyOfInterest_vars_eq + def WittVector.remainder + theorem WittVector.remainder_vars + def WittVector.wittPolyProd + def WittVector.wittPolyProdRemainder + theorem WittVector.wittPolyProdRemainder_vars + theorem WittVector.wittPolyProd_vars Modified Mathlib/RingTheory/WittVector/WittPolynomial.lean + theorem wittPolynomial_eq_sum_C_mul_X_pow - theorem wittPolynomial_eq_sum_c_mul_x_pow 2023-06-28 16:07:54 e95d03d feat: port CategoryTheory.Monad.EquivMon (#5086) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/CategoryTheory/Monad/Basic.lean Added Mathlib/CategoryTheory/Monad/EquivMon.lean + def CategoryTheory.Monad.monToMonad + def CategoryTheory.Monad.monadMonEquiv + def CategoryTheory.Monad.monadToMon + def CategoryTheory.Monad.ofMon + theorem CategoryTheory.Monad.ofMon_obj + def CategoryTheory.Monad.toMon Modified Mathlib/CategoryTheory/Monoidal/End.lean + theorem CategoryTheory.endofunctorMonoidalCategory_associator_hom_app + theorem CategoryTheory.endofunctorMonoidalCategory_associator_inv_app + theorem CategoryTheory.endofunctorMonoidalCategory_leftUnitor_hom_app + theorem CategoryTheory.endofunctorMonoidalCategory_leftUnitor_inv_app + theorem CategoryTheory.endofunctorMonoidalCategory_rightUnitor_hom_app + theorem CategoryTheory.endofunctorMonoidalCategory_rightUnitor_inv_app + theorem CategoryTheory.endofunctorMonoidalCategory_tensorMap_app + theorem CategoryTheory.endofunctorMonoidalCategory_tensorObj_map + theorem CategoryTheory.endofunctorMonoidalCategory_tensorObj_obj + theorem CategoryTheory.endofunctorMonoidalCategory_tensorUnit_map + theorem CategoryTheory.endofunctorMonoidalCategory_tensorUnit_obj Modified Mathlib/CategoryTheory/Shift/Basic.lean 2023-06-28 14:58:10 5526fd8 feat: add reverse induction principle for Vector (#5400) Add a snoc pseudo-constructor, lemmas to reason about snoc, and a reverse induction principle for Vectors. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Data/Vector/Basic.lean + theorem Vector.mapAccumr_cons + theorem Vector.mapAccumr₂_cons Added Mathlib/Data/Vector/Snoc.lean + theorem Vector.mapAccumr_nil + theorem Vector.mapAccumr_snoc + theorem Vector.mapAccumr₂_nil + theorem Vector.mapAccumr₂_snoc + theorem Vector.map_snoc + theorem Vector.map₂_snoc + theorem Vector.replicate_succ_to_snoc + def Vector.revCasesOn + def Vector.revInductionOn + def Vector.revInductionOn₂ + theorem Vector.reverse_cons + theorem Vector.reverse_snoc + def Vector.snoc + theorem Vector.snoc_cons + theorem Vector.snoc_nil 2023-06-28 14:11:08 449de62 feat: port Analysis.Fourier.RiemannLebesgueLemma (#4950) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/Fourier/RiemannLebesgueLemma.lean + theorem Real.tendsto_integral_exp_smul_cocompact + theorem Real.zero_at_infty_fourierIntegral + theorem Real.zero_at_infty_vector_fourierIntegral + theorem fourier_integral_eq_half_sub_half_period_translate + theorem fourier_integral_half_period_translate + theorem fourier_integrand_integrable + theorem tendsto_integral_exp_inner_smul_cocompact + theorem tendsto_integral_exp_inner_smul_cocompact_of_continuous_compact_support + theorem tendsto_integral_exp_smul_cocompact + theorem tendsto_integral_exp_smul_cocompact_of_inner_product Modified Mathlib/Data/Real/ENNReal.lean 2023-06-28 13:56:35 6726709 feat: port Analysis.Complex.UpperHalfPlane.Metric (#5544) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/Complex/UpperHalfPlane/Metric.lean + def UpperHalfPlane.center + theorem UpperHalfPlane.center_im + theorem UpperHalfPlane.center_re + theorem UpperHalfPlane.center_zero + theorem UpperHalfPlane.cmp_dist_eq_cmp_dist_coe_center + theorem UpperHalfPlane.cosh_dist' + theorem UpperHalfPlane.cosh_dist + theorem UpperHalfPlane.cosh_half_dist + theorem UpperHalfPlane.dist_center_dist + theorem UpperHalfPlane.dist_coe_center + theorem UpperHalfPlane.dist_coe_center_sq + theorem UpperHalfPlane.dist_coe_le + theorem UpperHalfPlane.dist_eq + theorem UpperHalfPlane.dist_eq_iff_dist_coe_center_eq + theorem UpperHalfPlane.dist_eq_iff_eq_sinh + theorem UpperHalfPlane.dist_eq_iff_eq_sq_sinh + theorem UpperHalfPlane.dist_le_dist_coe_div_sqrt + theorem UpperHalfPlane.dist_le_iff_dist_coe_center_le + theorem UpperHalfPlane.dist_le_iff_le_sinh + theorem UpperHalfPlane.dist_log_im_le + theorem UpperHalfPlane.dist_lt_iff_dist_coe_center_lt + theorem UpperHalfPlane.dist_self_center + theorem UpperHalfPlane.exp_half_dist + theorem UpperHalfPlane.im_div_exp_dist_le + theorem UpperHalfPlane.im_le_im_mul_exp_dist + theorem UpperHalfPlane.im_pos_of_dist_center_le + theorem UpperHalfPlane.image_coe_ball + theorem UpperHalfPlane.image_coe_closedBall + theorem UpperHalfPlane.image_coe_sphere + theorem UpperHalfPlane.isometry_pos_mul + theorem UpperHalfPlane.isometry_real_vadd + theorem UpperHalfPlane.isometry_vertical_line + theorem UpperHalfPlane.le_dist_coe + theorem UpperHalfPlane.le_dist_iff_le_dist_coe_center + theorem UpperHalfPlane.lt_dist_iff_lt_dist_coe_center + def UpperHalfPlane.metricSpaceAux + theorem UpperHalfPlane.sinh_half_dist + theorem UpperHalfPlane.sinh_half_dist_add_dist + theorem UpperHalfPlane.tanh_half_dist 2023-06-28 13:42:40 5e1c9d6 feat: port NumberTheory.ModularForms.JacobiTheta.Basic (#5547) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/NumberTheory/ModularForms/JacobiTheta/Basic.lean + theorem continuousAt_jacobiTheta + theorem differentiableAt_jacobiTheta + theorem exists_summable_bound_exp_mul_sq + theorem hasSum_nat_jacobiTheta + theorem isBigO_at_im_infty_jacobiTheta_sub_one + theorem jacobiTheta_S_smul + theorem jacobiTheta_T_sq_smul + theorem jacobiTheta_eq_tsum_nat + theorem jacobiTheta_two_add + theorem norm_exp_mul_sq_le + theorem norm_jacobiTheta_sub_one_le + theorem summable_exp_mul_sq 2023-06-28 11:45:41 2d54781 chore: remove redundant Coe (R ≃+* S) (R →+* S) (#5545) ESTIMATED CHANGES Modified Mathlib/Algebra/Ring/Equiv.lean 2023-06-28 11:45:40 af3e121 feat: port NumberTheory.Modular (#5540) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/NumberTheory/Modular.lean + theorem ModularGroup.abs_c_le_one + theorem ModularGroup.abs_two_mul_re_lt_one_of_mem_fdo + theorem ModularGroup.bottom_row_coprime + theorem ModularGroup.bottom_row_surj + theorem ModularGroup.c_eq_zero + theorem ModularGroup.coe_T_zpow_smul_eq + theorem ModularGroup.eq_smul_self_of_mem_fdo_mem_fdo + theorem ModularGroup.eq_zero_of_mem_fdo_of_T_zpow_mem_fdo + theorem ModularGroup.exists_eq_T_zpow_of_c_eq_zero + theorem ModularGroup.exists_max_im + theorem ModularGroup.exists_row_one_eq_and_min_re + theorem ModularGroup.exists_smul_mem_fd + def ModularGroup.fd + def ModularGroup.fdo + theorem ModularGroup.g_eq_of_c_eq_one + theorem ModularGroup.im_T_inv_smul + theorem ModularGroup.im_T_smul + theorem ModularGroup.im_T_zpow_smul + theorem ModularGroup.im_lt_im_S_smul + def ModularGroup.lcRow0 + def ModularGroup.lcRow0Extend + theorem ModularGroup.lcRow0_apply + theorem ModularGroup.normSq_S_smul_lt_one + theorem ModularGroup.one_lt_normSq_T_zpow_smul + theorem ModularGroup.re_T_inv_smul + theorem ModularGroup.re_T_smul + theorem ModularGroup.re_T_zpow_smul + theorem ModularGroup.smul_eq_lcRow0_add + theorem ModularGroup.tendsto_abs_re_smul + theorem ModularGroup.tendsto_lcRow0 + theorem ModularGroup.tendsto_normSq_coprime_pair + theorem ModularGroup.three_lt_four_mul_im_sq_of_mem_fdo 2023-06-28 11:45:39 87536ad feat: #redundant_imports / #minimize_imports commands (#5441) `#redundant_imports` lists any imports which are transitively imported already by another import `#minimize_imports` attempts to construct a minimal set of imports for the current file, by inspecting the constants appaering in declarations. It does not notice dependencies on tactics or notation, so is not always correct. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Lean/Expr/Basic.lean + def Lean.ConstantInfo.getUsedConstants + def Lean.Environment.getModuleFor? + def Lean.Environment.requiredModules + def Lean.Expr.getUsedConstants' + def Lean.NameSet.append Modified Mathlib/Tactic/Common.lean Added Mathlib/Util/Imports.lean + def Lean.Environment.importsOf + def Lean.Environment.minimalRequiredModules + def redundantImports Added test/Imports.lean 2023-06-28 11:45:38 79657c3 fix: `wlog`: don't supply let vars to `mkAppN` (#5362) `wlog` was erroneously supplying all reverted fvars to `mkAppN`, instead of just supplying the ones which weren't ldecls. This fixes #5348. ESTIMATED CHANGES Modified Mathlib/Tactic/WLOG.lean Modified test/wlog.lean 2023-06-28 10:21:34 955998c chore: cleanup porting notes about refine_struct (#5542) Replace some porting notes about `refine_struct` with uses of `refine'`. We only really miss `refine_struct` in situations where we later used `pi_instance_derive_field`. I also exercised some editorial discretion to remove some porting notes about `refine_struct` when the original usage was (in my opinion) obfuscatory relative to just writing out the fields. (We shouldn't be using alternatives to handle different fields!) ESTIMATED CHANGES Modified Archive/Imo/Imo1981Q3.lean Modified Mathlib/Algebra/Ring/Aut.lean +/- def RingAut.toAddAut +/- def RingAut.toMulAut +/- def RingAut.toPerm Modified Mathlib/Order/Basic.lean Modified Mathlib/Order/BooleanAlgebra.lean Modified Mathlib/Order/CompleteBooleanAlgebra.lean Modified test/linarith.lean 2023-06-28 10:21:33 abaae3b feat: port RingTheory.WittVector.Truncated (#5538) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/RingTheory/WittVector/Truncated.lean + theorem TruncatedWittVector.card + def TruncatedWittVector.coeff + theorem TruncatedWittVector.coeff_mk + theorem TruncatedWittVector.coeff_out + theorem TruncatedWittVector.coeff_truncate + theorem TruncatedWittVector.coeff_zero + theorem TruncatedWittVector.ext + theorem TruncatedWittVector.ext_iff + theorem TruncatedWittVector.iInf_ker_truncate + def TruncatedWittVector.mk + theorem TruncatedWittVector.mk_coeff + def TruncatedWittVector.out + theorem TruncatedWittVector.out_injective + def TruncatedWittVector.truncate + theorem TruncatedWittVector.truncateFun_out + theorem TruncatedWittVector.truncate_comp + theorem TruncatedWittVector.truncate_comp_wittVector_truncate + theorem TruncatedWittVector.truncate_surjective + theorem TruncatedWittVector.truncate_truncate + theorem TruncatedWittVector.truncate_wittVector_truncate + def TruncatedWittVector + theorem WittVector.coeff_truncate + theorem WittVector.coeff_truncateFun + theorem WittVector.hom_ext + def WittVector.lift + def WittVector.liftEquiv + def WittVector.liftFun + theorem WittVector.lift_unique + theorem WittVector.mem_ker_truncate + theorem WittVector.out_truncateFun + def WittVector.truncateFun + theorem WittVector.truncateFun_add + theorem WittVector.truncateFun_int_cast + theorem WittVector.truncateFun_mul + theorem WittVector.truncateFun_nat_cast + theorem WittVector.truncateFun_neg + theorem WittVector.truncateFun_nsmul + theorem WittVector.truncateFun_one + theorem WittVector.truncateFun_pow + theorem WittVector.truncateFun_sub + theorem WittVector.truncateFun_surjective + theorem WittVector.truncateFun_zero + theorem WittVector.truncateFun_zsmul + theorem WittVector.truncate_comp_lift + theorem WittVector.truncate_lift + theorem WittVector.truncate_liftFun + theorem WittVector.truncate_mk' + theorem WittVector.truncate_surjective 2023-06-28 10:21:32 ff61283 feat: port Analysis.Complex.UpperHalfPlane.FunctionsBoundedAtInfty (#5531) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/Complex/UpperHalfPlane/FunctionsBoundedAtInfty.lean + def UpperHalfPlane.IsBoundedAtImInfty + def UpperHalfPlane.IsZeroAtImInfty + def UpperHalfPlane.atImInfty + theorem UpperHalfPlane.atImInfty_basis + theorem UpperHalfPlane.atImInfty_mem + def UpperHalfPlane.boundedAtImInftySubalgebra + theorem UpperHalfPlane.bounded_mem + def UpperHalfPlane.zeroAtImInftySubmodule + theorem UpperHalfPlane.zero_at_im_infty + theorem UpperHalfPlane.zero_form_isBoundedAtImInfty 2023-06-28 10:21:31 3aa8632 feat: port SetTheory.Game.Birthday (#5500) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/SetTheory/Game/Birthday.lean + theorem PGame.Relabelling.birthday_congr + theorem PGame.birthday_add + theorem PGame.birthday_add_nat + theorem PGame.birthday_add_one + theorem PGame.birthday_add_zero + theorem PGame.birthday_def + theorem PGame.birthday_eq_zero + theorem PGame.birthday_moveLeft_lt + theorem PGame.birthday_moveRight_lt + theorem PGame.birthday_nat_add + theorem PGame.birthday_nat_cast + theorem PGame.birthday_one + theorem PGame.birthday_one_add + theorem PGame.birthday_star + theorem PGame.birthday_zero + theorem PGame.birthday_zero_add + theorem PGame.le_birthday + theorem PGame.lt_birthday_iff + theorem PGame.neg_birthday + theorem PGame.neg_birthday_le + theorem PGame.toPGame_birthday 2023-06-28 10:21:30 52336fd feat(Topology/Algebra/Group/Basic): product of compact set and closed set is closed (#5471) Also adds the version for group actions, and the consequence that if we quotient by a compact subgroup then the quotient map is closed. I also made some syntax tweaks in some places, mainly making use of our great new implicit functions. ESTIMATED CHANGES Modified Mathlib/Analysis/Normed/Group/AddTorsor.lean + theorem IsClosed.vadd_right_of_isCompact Modified Mathlib/Analysis/NormedSpace/Pointwise.lean Modified Mathlib/Data/Set/Pointwise/SMul.lean + theorem Set.image_op_smul Modified Mathlib/GroupTheory/Coset.lean + theorem QuotientGroup.preimage_image_mk_eq_iUnion_image Modified Mathlib/Topology/Algebra/Group/Basic.lean + theorem IsClosed.mul_left_of_isCompact + theorem IsClosed.mul_right_of_isCompact + theorem IsClosed.smul_left_of_isCompact + theorem MulAction.isClosedMap_quotient + theorem QuotientGroup.isClosedMap_coe Modified Mathlib/Topology/Algebra/Group/Compact.lean Modified Mathlib/Topology/Algebra/MulAction.lean 2023-06-28 10:21:29 682b257 feat: add lemmas about `Filter`s and `Set.indicator` (#5240) - Add multiplicative versions of all lemmas in `Order.Filter.IndicatorFunction`. - Add several new lemmas. ESTIMATED CHANGES Modified Mathlib/Order/Filter/AtTopBot.lean + theorem Antitone.piecewise_eventually_eq_iInter + theorem Monotone.piecewise_eventually_eq_iUnion Modified Mathlib/Order/Filter/IndicatorFunction.lean + theorem Antitone.mulIndicator_eventuallyEq_iInter - theorem Antitone.tendsto_indicator + theorem Antitone.tendsto_mulIndicator - theorem Filter.EventuallyEq.indicator - theorem Filter.EventuallyEq.indicator_zero + theorem Filter.EventuallyEq.mulIndicator_one + theorem Filter.EventuallyEq.of_mulIndicator + theorem Filter.EventuallyEq.of_mulIndicator_const - theorem Filter.EventuallyEq.support + theorem Monotone.mulIndicator_eventuallyEq_iUnion - theorem Monotone.tendsto_indicator + theorem Monotone.tendsto_mulIndicator - theorem indicator_eventuallyEq - theorem indicator_eventuallyLE_indicator - theorem indicator_union_eventuallyEq + theorem mulIndicator_biUnion_finset_eventuallyEq + theorem mulIndicator_eventuallyEq + theorem mulIndicator_eventuallyLE_mulIndicator + theorem mulIndicator_union_eventuallyEq - theorem tendsto_indicator_biUnion_finset + theorem tendsto_mulIndicator_biUnion_finset 2023-06-28 07:29:55 fd35d09 feat: port NumberTheory.ModularForms.SlashInvariantForms (#5543) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/NumberTheory/ModularForms/SlashInvariantForms.lean + theorem SlashInvariantForm.SlashInvariantFormClass.coe_coe + theorem SlashInvariantForm.add_apply + def SlashInvariantForm.coeHom + theorem SlashInvariantForm.coeHom_injective + theorem SlashInvariantForm.coe_add + theorem SlashInvariantForm.coe_neg + theorem SlashInvariantForm.coe_smul + theorem SlashInvariantForm.coe_sub + theorem SlashInvariantForm.coe_zero + theorem SlashInvariantForm.neg_apply + theorem SlashInvariantForm.one_coe_eq_one + theorem SlashInvariantForm.slash_action_eqn' + theorem SlashInvariantForm.slash_action_eqn + theorem SlashInvariantForm.smul_apply + theorem SlashInvariantForm.sub_apply + structure SlashInvariantForm + theorem slashInvariantForm_ext + theorem slashInvariantForm_toFun_eq_coe 2023-06-28 07:29:54 208982a feat: don't re-elaborate terms in set (#5386) Fix the set tactic to not time out when dealing with slow to elaborate terms and many local hypotheses. The root cause of this is that the `rewrite [blah] at *` tactic causes blah to be elaborated again and again for each local hypothesis, this is possibly a core issue that should be fixed separately, but in `set` we have the elaborated term already so we can just use it. We also add some functionality to simply test / demonstrate failures when elaboration takes too long, namely `sleepAtLeastHeartbeats` and a `sleep_heartbeats` tactic. @urkud was facing some slow running set's in https://github.com/leanprover-community/mathlib4/pull/4912, see https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/Timeout.20in.20.60set.20.2E.2E.20with.60/near/367958828 that this issue was minimized from and should fix. Some other linter failures show up due to changes to the set internals so fix these too. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Analysis/BoxIntegral/DivergenceTheorem.lean Modified Mathlib/Analysis/Calculus/ContDiff.lean Modified Mathlib/Data/Set/Finite.lean Modified Mathlib/MeasureTheory/Constructions/BorelSpace/Metrizable.lean Modified Mathlib/MeasureTheory/Covering/Vitali.lean Modified Mathlib/MeasureTheory/Decomposition/Lebesgue.lean Modified Mathlib/MeasureTheory/Integral/Layercake.lean Modified Mathlib/MeasureTheory/Measure/OuterMeasure.lean Modified Mathlib/MeasureTheory/Measure/VectorMeasure.lean Modified Mathlib/Tactic/FieldSimp.lean Modified Mathlib/Tactic/Set.lean Modified Mathlib/Topology/Separation.lean Added Mathlib/Util/SleepHeartbeats.lean + def sleepAtLeastHeartbeats Modified test/Set.lean 2023-06-28 05:50:59 e703ae8 chore: better TypeMax instances for limits in Type (#5535) Preliminary to the full forward port of https://github.com/leanprover-community/mathlib/pull/19153, this is a slight generalization along with explanation of the problem with the instances. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Limits/Shapes/Types.lean + theorem CategoryTheory.Limits.Types.pi_lift_π_apply' +/- theorem CategoryTheory.Limits.Types.pi_lift_π_apply + theorem CategoryTheory.Limits.Types.pi_map_π_apply' +/- theorem CategoryTheory.Limits.Types.pi_map_π_apply +/- theorem CategoryTheory.Limits.Types.productIso_hom_comp_eval +/- theorem CategoryTheory.Limits.Types.productIso_inv_comp_π +/- def CategoryTheory.Limits.Types.productLimitCone Modified Mathlib/CategoryTheory/Limits/Types.lean Modified Mathlib/Topology/Sheaves/SheafCondition/UniqueGluing.lean 2023-06-28 05:20:21 18d8f3d feat: port RingTheory.WittVector.Domain (#5533) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/RingTheory/WittVector/Domain.lean + theorem WittVector.eq_iterate_verschiebung + def WittVector.shift + theorem WittVector.shift_coeff + theorem WittVector.verschiebung_nonzero + theorem WittVector.verschiebung_shift 2023-06-28 05:20:20 e06c6fe feat: port NumberTheory.ModularForms.SlashActions (#5532) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/NumberTheory/ModularForms/SlashActions.lean + theorem ModularForm.SL_slash + theorem ModularForm.is_invariant_one + theorem ModularForm.mul_slash + theorem ModularForm.mul_slash_SL2 + theorem ModularForm.mul_slash_subgroup + def ModularForm.slash + theorem ModularForm.slash_action_eq'_iff + theorem ModularForm.slash_def + theorem ModularForm.subgroup_slash + theorem SlashAction.neg_slash + theorem SlashAction.smul_slash_of_tower + def monoidHomSlashAction 2023-06-28 05:06:46 580093d feat: port Analysis.Complex.UpperHalfPlane.Topology (#5530) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/Complex/UpperHalfPlane/Topology.lean + theorem UpperHalfPlane.continuous_coe + theorem UpperHalfPlane.continuous_im + theorem UpperHalfPlane.continuous_re + theorem UpperHalfPlane.embedding_coe + theorem UpperHalfPlane.openEmbedding_coe 2023-06-28 01:50:43 1ecea4a feat: port AlgebraicGeometry.EllipticCurve.Weierstrass (#5294) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/AlgebraicGeometry/EllipticCurve/Weierstrass.lean + def EllipticCurve.baseChange + theorem EllipticCurve.baseChange_j + theorem EllipticCurve.coeBaseChange_Δ' + theorem EllipticCurve.coe_inv_baseChange_Δ' + theorem EllipticCurve.coe_inv_variableChange_Δ' + theorem EllipticCurve.coe_variableChange_Δ' + def EllipticCurve.j + theorem EllipticCurve.nonsingular + theorem EllipticCurve.twoTorsionPolynomial_disc_ne_zero + def EllipticCurve.variableChange + theorem EllipticCurve.variableChange_j + structure EllipticCurve + theorem WeierstrassCurve.CoordinateRing.XClass_ne_zero + theorem WeierstrassCurve.CoordinateRing.YClass_ne_zero + theorem WeierstrassCurve.CoordinateRing.basis_apply + theorem WeierstrassCurve.CoordinateRing.basis_one + theorem WeierstrassCurve.CoordinateRing.basis_zero + theorem WeierstrassCurve.CoordinateRing.coe_basis + theorem WeierstrassCurve.CoordinateRing.coe_norm_smul_basis + theorem WeierstrassCurve.CoordinateRing.degree_norm_ne_one + theorem WeierstrassCurve.CoordinateRing.degree_norm_smul_basis + theorem WeierstrassCurve.CoordinateRing.exists_smul_basis_eq + theorem WeierstrassCurve.CoordinateRing.natDegree_norm_ne_one + theorem WeierstrassCurve.CoordinateRing.norm_smul_basis + theorem WeierstrassCurve.CoordinateRing.smul + theorem WeierstrassCurve.CoordinateRing.smul_basis_eq_zero + theorem WeierstrassCurve.CoordinateRing.smul_basis_mul_C + theorem WeierstrassCurve.CoordinateRing.smul_basis_mul_Y + theorem WeierstrassCurve.b_relation + def WeierstrassCurve.baseChange + theorem WeierstrassCurve.baseChange_baseChange + theorem WeierstrassCurve.baseChange_b₂ + theorem WeierstrassCurve.baseChange_b₄ + theorem WeierstrassCurve.baseChange_b₆ + theorem WeierstrassCurve.baseChange_b₈ + theorem WeierstrassCurve.baseChange_c₄ + theorem WeierstrassCurve.baseChange_c₆ + theorem WeierstrassCurve.baseChange_self + theorem WeierstrassCurve.baseChange_Δ + def WeierstrassCurve.b₂ + def WeierstrassCurve.b₄ + def WeierstrassCurve.b₆ + def WeierstrassCurve.b₈ + theorem WeierstrassCurve.c_relation + def WeierstrassCurve.c₄ + def WeierstrassCurve.c₆ + theorem WeierstrassCurve.degree_polynomial + theorem WeierstrassCurve.equation_iff' + theorem WeierstrassCurve.equation_iff + theorem WeierstrassCurve.equation_iff_baseChange + theorem WeierstrassCurve.equation_iff_baseChange_of_baseChange + theorem WeierstrassCurve.equation_iff_variableChange + theorem WeierstrassCurve.equation_zero + theorem WeierstrassCurve.eval_polynomial + theorem WeierstrassCurve.eval_polynomialX + theorem WeierstrassCurve.eval_polynomialX_zero + theorem WeierstrassCurve.eval_polynomialY + theorem WeierstrassCurve.eval_polynomialY_zero + theorem WeierstrassCurve.eval_polynomial_zero + theorem WeierstrassCurve.irreducible_polynomial + theorem WeierstrassCurve.monic_polynomial + theorem WeierstrassCurve.natDegree_polynomial + theorem WeierstrassCurve.nonsingular_iff' + theorem WeierstrassCurve.nonsingular_iff + theorem WeierstrassCurve.nonsingular_iff_baseChange + theorem WeierstrassCurve.nonsingular_iff_baseChange_of_baseChange + theorem WeierstrassCurve.nonsingular_iff_variableChange + theorem WeierstrassCurve.nonsingular_of_Δ_ne_zero + theorem WeierstrassCurve.nonsingular_zero + theorem WeierstrassCurve.nonsingular_zero_of_Δ_ne_zero + theorem WeierstrassCurve.polynomial_eq + theorem WeierstrassCurve.polynomial_ne_zero + def WeierstrassCurve.twoTorsionPolynomial + theorem WeierstrassCurve.twoTorsionPolynomial_disc + theorem WeierstrassCurve.twoTorsionPolynomial_disc_isUnit + theorem WeierstrassCurve.twoTorsionPolynomial_disc_ne_zero + def WeierstrassCurve.variableChange + theorem WeierstrassCurve.variableChange_b₂ + theorem WeierstrassCurve.variableChange_b₄ + theorem WeierstrassCurve.variableChange_b₆ + theorem WeierstrassCurve.variableChange_b₈ + theorem WeierstrassCurve.variableChange_c₄ + theorem WeierstrassCurve.variableChange_c₆ + theorem WeierstrassCurve.variableChange_Δ + def WeierstrassCurve.Δ + structure WeierstrassCurve Modified Mathlib/RingTheory/Polynomial/Quotient.lean 2023-06-28 00:29:19 d8b6286 feat(Data.Set.Basic/Data.Finset.Basic): rename insert_subset (#5450) Currently, (for both `Set` and `Finset`) `insert_subset` is an `iff` lemma stating that `insert a s ⊆ t` if and only if `a ∈ t` and `s ⊆ t`. For both types, this PR renames this lemma to `insert_subset_iff`, and adds an `insert_subset` lemma that gives the implication just in the reverse direction : namely `theorem insert_subset (ha : a ∈ t) (hs : s ⊆ t) : insert a s ⊆ t` . This both aligns the naming with `union_subset` and `union_subset_iff`, and removes the need for the awkward `insert_subset.mpr ⟨_,_⟩` idiom. It touches a lot of files (too many to list), but in a trivial way. ESTIMATED CHANGES Modified Mathlib/Algebra/BigOperators/Basic.lean Modified Mathlib/Algebra/BigOperators/Order.lean Modified Mathlib/Analysis/BoxIntegral/Partition/Split.lean Modified Mathlib/Analysis/Convex/Between.lean Modified Mathlib/Analysis/Convex/Hull.lean Modified Mathlib/Analysis/Convex/Segment.lean Modified Mathlib/Analysis/Convex/StoneSeparation.lean Modified Mathlib/Analysis/Convex/Topology.lean Modified Mathlib/Combinatorics/Additive/RuzsaCovering.lean Modified Mathlib/Combinatorics/SimpleGraph/Basic.lean Modified Mathlib/Computability/TMToPartrec.lean Modified Mathlib/Data/Finset/Basic.lean +/- theorem Finset.insert_subset + theorem Finset.insert_subset_iff Modified Mathlib/Data/Finset/NAry.lean Modified Mathlib/Data/Polynomial/Coeff.lean Modified Mathlib/Data/Set/Basic.lean +/- theorem Set.insert_subset + theorem Set.insert_subset_iff Modified Mathlib/Data/Set/Finite.lean Modified Mathlib/Data/Set/Intervals/Basic.lean Modified Mathlib/Data/Set/Intervals/OrdConnected.lean Modified Mathlib/Data/Set/List.lean Modified Mathlib/FieldTheory/Adjoin.lean Modified Mathlib/Geometry/Euclidean/Angle/Sphere.lean Modified Mathlib/Geometry/Euclidean/Sphere/Basic.lean Modified Mathlib/GroupTheory/Perm/Cycle/Basic.lean Modified Mathlib/GroupTheory/Perm/Cycle/Type.lean Modified Mathlib/LinearAlgebra/AffineSpace/AffineSubspace.lean Modified Mathlib/LinearAlgebra/AffineSpace/FiniteDimensional.lean Modified Mathlib/LinearAlgebra/Lagrange.lean Modified Mathlib/LinearAlgebra/LinearIndependent.lean Modified Mathlib/LinearAlgebra/Span.lean Modified Mathlib/MeasureTheory/Covering/Vitali.lean Modified Mathlib/ModelTheory/Types.lean Modified Mathlib/Order/CompactlyGenerated.lean Modified Mathlib/Order/Cover.lean Modified Mathlib/Order/Filter/CountableInter.lean Modified Mathlib/Order/SupIndep.lean Modified Mathlib/RingTheory/Adjoin/Basic.lean Modified Mathlib/RingTheory/Finiteness.lean Modified Mathlib/RingTheory/IntegralClosure.lean Modified Mathlib/RingTheory/Polynomial/Cyclotomic/Roots.lean Modified Mathlib/SetTheory/Ordinal/Topology.lean Modified Mathlib/Topology/Algebra/Order/Compact.lean Modified Mathlib/Topology/Connected.lean Modified Mathlib/Topology/Order/Basic.lean 2023-06-27 21:22:13 178dc4d feat: port Geometry.Manifold.PartitionOfUnity (#5460) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Geometry/Manifold/PartitionOfUnity.lean + theorem BumpCovering.IsSubordinate.toSmoothPartitionOfUnity + theorem BumpCovering.coe_toSmoothPartitionOfUnity + theorem BumpCovering.smooth_toPartitionOfUnity + def BumpCovering.toSmoothPartitionOfUnity + theorem BumpCovering.toSmoothPartitionOfUnity_toPartitionOfUnity + theorem Emetric.exists_smooth_forall_closedBall_subset + theorem Metric.exists_smooth_forall_closedBall_subset + theorem SmoothBumpCovering.IsSubordinate.support_subset + theorem SmoothBumpCovering.IsSubordinate.toSmoothPartitionOfUnity + def SmoothBumpCovering.IsSubordinate + theorem SmoothBumpCovering.apply_ind + theorem SmoothBumpCovering.eventuallyEq_one + theorem SmoothBumpCovering.exists_finset_toSmoothPartitionOfUnity_eventuallyEq + theorem SmoothBumpCovering.exists_isSubordinate + def SmoothBumpCovering.ind + theorem SmoothBumpCovering.isSubordinate_toBumpCovering + theorem SmoothBumpCovering.mem_chartAt_ind_source + theorem SmoothBumpCovering.mem_chartAt_source_of_eq_one + theorem SmoothBumpCovering.mem_extChartAt_ind_source + theorem SmoothBumpCovering.mem_extChartAt_source_of_eq_one + theorem SmoothBumpCovering.mem_support_ind + theorem SmoothBumpCovering.sum_toSmoothPartitionOfUnity_eq + theorem SmoothBumpCovering.support_toSmoothPartitionOfUnity_subset + def SmoothBumpCovering.toBumpCovering + def SmoothBumpCovering.toSmoothPartitionOfUnity + theorem SmoothBumpCovering.toSmoothPartitionOfUnity_apply + theorem SmoothBumpCovering.toSmoothPartitionOfUnity_eq_mul_prod + theorem SmoothBumpCovering.toSmoothPartitionOfUnity_zero_of_zero + structure SmoothBumpCovering + theorem SmoothPartitionOfUnity.IsSubordinate.contMDiff_finsum_smul + theorem SmoothPartitionOfUnity.IsSubordinate.smooth_finsum_smul + def SmoothPartitionOfUnity.IsSubordinate + theorem SmoothPartitionOfUnity.contMDiff_finsum_smul + theorem SmoothPartitionOfUnity.contMDiff_smul + theorem SmoothPartitionOfUnity.exists_isSubordinate + theorem SmoothPartitionOfUnity.finsum_smul_mem_convex + theorem SmoothPartitionOfUnity.isSubordinate_toPartitionOfUnity + theorem SmoothPartitionOfUnity.le_one + theorem SmoothPartitionOfUnity.nonneg + def SmoothPartitionOfUnity.single + theorem SmoothPartitionOfUnity.smooth_finsum_smul + theorem SmoothPartitionOfUnity.smooth_smul + theorem SmoothPartitionOfUnity.smooth_sum + theorem SmoothPartitionOfUnity.sum_eq_one + theorem SmoothPartitionOfUnity.sum_le_one + theorem SmoothPartitionOfUnity.sum_nonneg + def SmoothPartitionOfUnity.toPartitionOfUnity + structure SmoothPartitionOfUnity + theorem exists_cont_mdiff_forall_mem_convex_of_local + theorem exists_smooth_forall_mem_convex_of_local + theorem exists_smooth_forall_mem_convex_of_local_const + theorem exists_smooth_zero_one_of_closed 2023-06-27 21:00:16 2f4c17b feat: port Analysis.Complex.UpperHalfPlane.Basic (#4335) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/Complex/UpperHalfPlane/Basic.lean + theorem UpperHalfPlane.SLOnGLPos_smul_apply + theorem UpperHalfPlane.SL_neg_smul + theorem UpperHalfPlane.SpecialLinearGroup.im_smul_eq_div_normSq + theorem UpperHalfPlane.c_mul_im_sq_le_normSq_denom + theorem UpperHalfPlane.coe_im + theorem UpperHalfPlane.coe_mk + theorem UpperHalfPlane.coe_pos_real_smul + theorem UpperHalfPlane.coe_re + theorem UpperHalfPlane.coe_smul + theorem UpperHalfPlane.coe_vadd + def UpperHalfPlane.denom + theorem UpperHalfPlane.denom_apply + theorem UpperHalfPlane.denom_cocycle + theorem UpperHalfPlane.denom_ne_zero + theorem UpperHalfPlane.exists_SL2_smul_eq_of_apply_zero_one_eq_zero + theorem UpperHalfPlane.exists_SL2_smul_eq_of_apply_zero_one_ne_zero + theorem UpperHalfPlane.ext + def UpperHalfPlane.im + theorem UpperHalfPlane.im_inv_neg_coe_pos + theorem UpperHalfPlane.im_ne_zero + theorem UpperHalfPlane.im_pos + theorem UpperHalfPlane.im_smul + theorem UpperHalfPlane.im_smul_eq_div_normSq + theorem UpperHalfPlane.linear_ne_zero + def UpperHalfPlane.mk + theorem UpperHalfPlane.mk_coe + theorem UpperHalfPlane.mk_im + theorem UpperHalfPlane.mk_re + theorem UpperHalfPlane.modular_S_smul + theorem UpperHalfPlane.modular_T_smul + theorem UpperHalfPlane.modular_T_zpow_smul + theorem UpperHalfPlane.mul_smul' + theorem UpperHalfPlane.ne_zero + theorem UpperHalfPlane.neg_smul + theorem UpperHalfPlane.normSq_denom_ne_zero + theorem UpperHalfPlane.normSq_denom_pos + theorem UpperHalfPlane.normSq_ne_zero + theorem UpperHalfPlane.normSq_pos + def UpperHalfPlane.num + theorem UpperHalfPlane.pos_real_im + theorem UpperHalfPlane.pos_real_re + def UpperHalfPlane.re + theorem UpperHalfPlane.re_add_im + theorem UpperHalfPlane.re_smul + theorem UpperHalfPlane.sl_moeb + def UpperHalfPlane.smulAux' + theorem UpperHalfPlane.smulAux'_im + def UpperHalfPlane.smulAux + theorem UpperHalfPlane.specialLinearGroup_apply + theorem UpperHalfPlane.subgroup_moeb + theorem UpperHalfPlane.subgroup_on_SL_apply + theorem UpperHalfPlane.subgroup_on_glpos_smul_apply + theorem UpperHalfPlane.subgroup_to_sl_moeb + theorem UpperHalfPlane.vadd_im + theorem UpperHalfPlane.vadd_re + def UpperHalfPlane Modified Mathlib/Data/Polynomial/Laurent.lean + theorem LaurentPolynomial.ext - theorem ext Modified Mathlib/LinearAlgebra/Matrix/GeneralLinearGroup.lean 2023-06-27 20:47:45 1bd5182 feat: add `Filter.EventuallyConst.congr` and `Filter.EventuallyEq.eventuallyConst_iff` (#5433) ESTIMATED CHANGES Modified Mathlib/Order/Filter/EventuallyConst.lean + theorem Filter.EventuallyEq.eventuallyConst_iff 2023-06-27 19:13:28 0e59604 feat: port RingTheory.WittVector.Identities (#5527) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/RingTheory/WittVector/Identities.lean + theorem WittVector.FractionRing.p_nonzero + theorem WittVector.coeff_p + theorem WittVector.coeff_p_one + theorem WittVector.coeff_p_pow + theorem WittVector.coeff_p_pow_eq_zero + theorem WittVector.coeff_p_zero + theorem WittVector.frobenius_verschiebung + theorem WittVector.iterate_frobenius_coeff + theorem WittVector.iterate_verschiebung_coeff + theorem WittVector.iterate_verschiebung_mul + theorem WittVector.iterate_verschiebung_mul_coeff + theorem WittVector.iterate_verschiebung_mul_left + theorem WittVector.mul_charP_coeff_succ + theorem WittVector.mul_charP_coeff_zero + theorem WittVector.p_nonzero + theorem WittVector.verschiebung_frobenius + theorem WittVector.verschiebung_frobenius_comm + theorem WittVector.verschiebung_mul_frobenius + theorem WittVector.verschiebung_zmod 2023-06-27 18:31:31 3f7a2ea feat(MeasureTheory): aesop rules for strong measurability + `measurability?` tactic (#5427) This PR adds aesop tags to a few lemmas pertaining to strong measurability, allowing to prove e.g. `StronglyMeasurable Real.log` using the `measurability` tactic. It also implements `measurability?` via `aesop?`. ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Function/SpecialFunctions/Inner.lean + theorem AEMeasurable.const_inner + theorem AEMeasurable.inner_const + theorem Measurable.const_inner + theorem Measurable.inner_const Modified Mathlib/MeasureTheory/Function/StronglyMeasurable/Basic.lean + theorem MeasureTheory.aefinStronglyMeasurable_of_aemeasurable + theorem MeasureTheory.finStronglyMeasurable_of_measurable Modified Mathlib/MeasureTheory/Group/Arithmetic.lean Modified Mathlib/MeasureTheory/MeasurableSpace.lean Modified Mathlib/MeasureTheory/MeasurableSpaceDef.lean Modified Mathlib/Tactic/Measurability.lean Modified test/measurability.lean 2023-06-27 17:19:39 0285b69 feat: port NumberTheory.LegendreSymbol.JacobiSymbol (#5502) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/NumberTheory/LegendreSymbol/JacobiSymbol.lean + theorem ZMod.isSquare_of_jacobiSym_eq_one + theorem ZMod.nonsquare_iff_jacobiSym_eq_neg_one + theorem ZMod.nonsquare_of_jacobiSym_eq_neg_one + theorem jacobiSym.at_neg_one + theorem jacobiSym.at_neg_two + theorem jacobiSym.at_two + theorem jacobiSym.eq_neg_one_at_prime_divisor_of_eq_neg_one + theorem jacobiSym.eq_one_or_neg_one + theorem jacobiSym.eq_zero_iff + theorem jacobiSym.eq_zero_iff_not_coprime + theorem jacobiSym.legendreSym.to_jacobiSym + theorem jacobiSym.list_prod_left + theorem jacobiSym.list_prod_right + theorem jacobiSym.mod_left' + theorem jacobiSym.mod_left + theorem jacobiSym.mod_right' + theorem jacobiSym.mod_right + theorem jacobiSym.mul_left + theorem jacobiSym.mul_right' + theorem jacobiSym.mul_right + theorem jacobiSym.one_left + theorem jacobiSym.one_right + theorem jacobiSym.pow_left + theorem jacobiSym.pow_right + theorem jacobiSym.prime_dvd_of_eq_neg_one + theorem jacobiSym.quadratic_reciprocity' + theorem jacobiSym.quadratic_reciprocity + theorem jacobiSym.quadratic_reciprocity_one_mod_four' + theorem jacobiSym.quadratic_reciprocity_one_mod_four + theorem jacobiSym.quadratic_reciprocity_three_mod_four + theorem jacobiSym.sq_one' + theorem jacobiSym.sq_one + theorem jacobiSym.trichotomy + theorem jacobiSym.value_at + theorem jacobiSym.zero_left + theorem jacobiSym.zero_right + def jacobiSym + theorem qrSign.eq_iff_eq + theorem qrSign.mul_left + theorem qrSign.mul_right + theorem qrSign.neg_one_pow + theorem qrSign.sq_eq_one + def qrSign 2023-06-27 16:36:35 bbbec1a feat: port RingTheory.WittVector.InitTail (#5520) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Mathport/Syntax.lean Added Mathlib/RingTheory/WittVector/InitTail.lean + theorem WittVector.coeff_add_of_disjoint + theorem WittVector.coeff_select + def WittVector.init + theorem WittVector.init_add + theorem WittVector.init_add_tail + theorem WittVector.init_init + theorem WittVector.init_isPoly + theorem WittVector.init_mul + theorem WittVector.init_neg + theorem WittVector.init_nsmul + theorem WittVector.init_pow + theorem WittVector.init_sub + theorem WittVector.init_zsmul + def WittVector.select + def WittVector.selectPoly + theorem WittVector.select_add_select_not + def WittVector.tail 2023-06-27 15:37:13 8f691fc fix:NumberTheory.LegendreSymbol.GaussSum fix porting note (#5525) Forgot to write a porting note ESTIMATED CHANGES Modified Mathlib/NumberTheory/LegendreSymbol/GaussSum.lean 2023-06-27 15:37:12 c660824 feat: port Logic.Equiv.Array (#1733) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Logic/Equiv/Array.lean + def Equiv.arrayEquivList 2023-06-27 14:42:52 8a1d352 fix: precedence for `finprod`/`finsum` (#5524) * Replace `notation3` lines with the latest versions in `mathport`. * Fix `Topology.PartitionOfUnity`. * Fix names in `Topology.PartitionOfUnity` (`locally_finite'` -> `locallyFinite'`). * Use `FunLike` for `PartitionOfUnity` and `BumpCovering` ESTIMATED CHANGES Modified Mathlib/Algebra/BigOperators/Finprod.lean Modified Mathlib/Topology/PartitionOfUnity.lean + theorem BumpCovering.continuous_toPOUFun - theorem BumpCovering.continuous_toPouFun + theorem BumpCovering.exists_finset_toPOUFun_eventuallyEq - theorem BumpCovering.exists_finset_toPouFun_eventuallyEq + theorem BumpCovering.sum_toPOUFun_eq - theorem BumpCovering.sum_toPouFun_eq + theorem BumpCovering.support_toPOUFun_subset - theorem BumpCovering.support_toPouFun_subset + def BumpCovering.toPOUFun + theorem BumpCovering.toPOUFun_eq_mul_prod + theorem BumpCovering.toPOUFun_zero_of_zero - def BumpCovering.toPouFun - theorem BumpCovering.toPouFun_eq_mul_prod - theorem BumpCovering.toPouFun_zero_of_zero 2023-06-27 14:42:50 c2df547 feat: port RingTheory.WittVector.Frobenius (#4887) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/RingTheory/WittVector/Frobenius.lean + theorem WittVector.bind₁_frobeniusPolyRat_wittPolynomial + theorem WittVector.bind₁_frobeniusPoly_wittPolynomial + theorem WittVector.coeff_frobenius + theorem WittVector.coeff_frobeniusFun + theorem WittVector.coeff_frobenius_charP + def WittVector.frobenius + def WittVector.frobeniusEquiv + def WittVector.frobeniusFun + def WittVector.frobeniusPoly + theorem WittVector.frobeniusPolyAux_eq + def WittVector.frobeniusPolyRat + theorem WittVector.frobeniusPoly_zMod + theorem WittVector.frobenius_bijective + theorem WittVector.frobenius_eq_map_frobenius + theorem WittVector.frobenius_zmodp + theorem WittVector.ghostComponent_frobenius + theorem WittVector.ghostComponent_frobeniusFun + theorem WittVector.map_frobeniusPoly.key₁ + theorem WittVector.map_frobeniusPoly.key₂ + theorem WittVector.map_frobeniusPoly 2023-06-27 14:29:23 87f75bd feat: port Geometry.Manifold.Complex (#5498) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Geometry/Manifold/Complex.lean + theorem Complex.norm_eventually_eq_of_mdifferentiableAt_of_isLocalMax + theorem MDifferentiable.apply_eq_of_compactSpace + theorem MDifferentiable.exists_eq_const_of_compactSpace + theorem MDifferentiableOn.apply_eq_of_isPreconnected_isCompact_isOpen + theorem MDifferentiableOn.eqOn_of_isPreconnected_of_isMaxOn_norm + theorem MDifferentiableOn.norm_eqOn_of_isPreconnected_of_isMaxOn 2023-06-27 14:11:29 9629646 feat: port Analysis.InnerProductSpace.LinearPMap (#5523) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/InnerProductSpace/LinearPMap.lean + theorem ContinuousLinearMap.toPMap_adjoint_eq_adjoint_toPMap_of_dense + theorem LinearPMap.IsFormalAdjoint.le_adjoint + def LinearPMap.IsFormalAdjoint + def LinearPMap.adjoint + def LinearPMap.adjointAux + theorem LinearPMap.adjointAux_inner + theorem LinearPMap.adjointAux_unique + def LinearPMap.adjointDomain + def LinearPMap.adjointDomainMkClm + def LinearPMap.adjointDomainMkClmExtend + theorem LinearPMap.adjointDomainMkClmExtend_apply + theorem LinearPMap.adjointDomainMkClm_apply + theorem LinearPMap.adjoint_apply_eq + theorem LinearPMap.adjoint_apply_of_dense + theorem LinearPMap.adjoint_apply_of_not_dense + theorem LinearPMap.adjoint_isFormalAdjoint + theorem LinearPMap.mem_adjoint_domain_iff + theorem LinearPMap.mem_adjoint_domain_of_exists 2023-06-27 13:14:00 cda66a7 feat: Add simp lemmas for vectors, and a way to index vectors with Nats (#4994) Co-authored-by Chris Hughes ESTIMATED CHANGES Modified Mathlib/Data/Vector.lean Modified Mathlib/Data/Vector/Basic.lean + theorem Vector.append_nil + def Vector.casesOn + def Vector.casesOn₂ + def Vector.casesOn₃ + theorem Vector.get_append_cons_succ + theorem Vector.get_append_cons_zero + theorem Vector.get_map₂ + theorem Vector.map₂_cons + theorem Vector.map₂_nil + theorem Vector.replicate_succ 2023-06-27 12:11:35 31812d3 forward port 18820 (#5521) ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/LinearPMap.lean + theorem LinearMap.toPMap_domain 2023-06-27 11:58:18 64ec3a1 feat: port RingTheory.WittVector.Verschiebung (#4897) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Mathport/Syntax.lean Modified Mathlib/RingTheory/WittVector/IsPoly.lean - theorem WittVector.IsPoly.comp - theorem WittVector.IsPoly.comp₂ - theorem WittVector.IsPoly₂.comp +/- theorem WittVector.IsPoly₂.compLeft +/- theorem WittVector.IsPoly₂.compRight - theorem WittVector.IsPoly₂.diag - theorem WittVector.addIsPoly₂ - theorem WittVector.mulIsPoly₂ - theorem WittVector.negIsPoly Added Mathlib/RingTheory/WittVector/Verschiebung.lean + theorem WittVector.aeval_verschiebungPoly + theorem WittVector.aeval_verschiebung_poly' + theorem WittVector.bind₁_verschiebungPoly_wittPolynomial + theorem WittVector.ghostComponent_verschiebung + theorem WittVector.ghostComponent_verschiebungFun + theorem WittVector.ghostComponent_zero_verschiebung + theorem WittVector.ghostComponent_zero_verschiebungFun + theorem WittVector.map_verschiebung + def WittVector.verschiebungFun + theorem WittVector.verschiebungFun_coeff + theorem WittVector.verschiebungFun_coeff_succ + theorem WittVector.verschiebungFun_coeff_zero + def WittVector.verschiebungPoly + theorem WittVector.verschiebungPoly_zero + theorem WittVector.verschiebung_coeff_add_one + theorem WittVector.verschiebung_coeff_succ + theorem WittVector.verschiebung_coeff_zero + theorem WittVector.verschiebung_isPoly Modified Mathlib/RingTheory/WittVector/WittAttributes.lean 2023-06-27 10:00:37 b5ebe91 refactor: Golf and generalize `Set.ncard_congr` (#5327) This PR golfs and generalizes `Set.ncard_congr`. ESTIMATED CHANGES Modified Mathlib/Data/Set/Ncard.lean 2023-06-27 09:23:00 1a04fa3 chore: fix slim_check porting headers (#5522) ESTIMATED CHANGES Modified Mathlib/Testing/SlimCheck/Gen.lean Modified Mathlib/Testing/SlimCheck/Sampleable.lean 2023-06-27 08:51:07 a80d5a9 chore: golf proofs in `Analysis.Calculus.TangentCone` (#5493) ESTIMATED CHANGES Modified Mathlib/Analysis/Calculus/TangentCone.lean + theorem mem_tangentConeAt_of_pow_smul +/- theorem tangentCone_univ 2023-06-27 08:51:06 a5af4e3 feat: port CategoryTheory.Closed.Ideal (#4951) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Closed/Ideal.lean + theorem CategoryTheory.ExponentialIdeal.mk' + theorem CategoryTheory.ExponentialIdeal.mk_of_iso + theorem CategoryTheory.bijection_natural + theorem CategoryTheory.bijection_symm_apply_id + def CategoryTheory.cartesianClosedOfReflective + def CategoryTheory.exponentialIdealReflective + theorem CategoryTheory.prodComparison_iso + theorem CategoryTheory.reflective_products 2023-06-27 07:58:42 bf1157d feat: port SetTheory.Game.Impartial (#5517) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/SetTheory/Game/Impartial.lean + theorem PGame.Impartial.add_self + theorem PGame.Impartial.equiv_iff_add_equiv_zero' + theorem PGame.Impartial.equiv_iff_add_equiv_zero + theorem PGame.Impartial.equiv_or_fuzzy_zero + theorem PGame.Impartial.equiv_zero_iff_ge + theorem PGame.Impartial.equiv_zero_iff_le + theorem PGame.Impartial.exists_left_move_equiv_iff_fuzzy_zero + theorem PGame.Impartial.exists_right_move_equiv_iff_fuzzy_zero + theorem PGame.Impartial.forall_leftMoves_fuzzy_iff_equiv_zero + theorem PGame.Impartial.forall_rightMoves_fuzzy_iff_equiv_zero + theorem PGame.Impartial.fuzzy_zero_iff_gf + theorem PGame.Impartial.fuzzy_zero_iff_lf + theorem PGame.Impartial.impartial_congr + theorem PGame.Impartial.le_zero_iff + theorem PGame.Impartial.lf_zero_iff + theorem PGame.Impartial.mk'_add_self + theorem PGame.Impartial.mk'_neg_equiv_self + theorem PGame.Impartial.neg_equiv_self + theorem PGame.Impartial.nonneg + theorem PGame.Impartial.nonpos + theorem PGame.Impartial.not_equiv_zero_iff + theorem PGame.Impartial.not_fuzzy_zero_iff + def PGame.ImpartialAux + theorem PGame.impartialAux_def + theorem PGame.impartial_def + theorem PGame.impartial_iff_aux 2023-06-27 07:58:40 0894eca feat: port SetTheory.Surreal.Basic (#5515) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/SetTheory/Surreal/Basic.lean + theorem PGame.Numeric.add + theorem PGame.Numeric.le_moveRight + theorem PGame.Numeric.left_lt_right + theorem PGame.Numeric.lt_moveRight + theorem PGame.Numeric.mk + theorem PGame.Numeric.moveLeft + theorem PGame.Numeric.moveLeft_le + theorem PGame.Numeric.moveLeft_lt + theorem PGame.Numeric.moveRight + theorem PGame.Numeric.neg + theorem PGame.Numeric.sub + def PGame.Numeric + theorem PGame.Relabelling.numeric_congr + theorem PGame.Relabelling.numeric_imp + theorem PGame.le_iff_forall_lt + theorem PGame.le_of_lf + theorem PGame.lf_asymm + theorem PGame.lf_iff_lt + theorem PGame.lt_def + theorem PGame.lt_iff_exists_le + theorem PGame.lt_of_exists_le + theorem PGame.lt_of_lf + theorem PGame.lt_or_equiv_or_gt + theorem PGame.not_fuzzy + theorem PGame.numeric_def + theorem PGame.numeric_nat + theorem PGame.numeric_of_isEmpty + theorem PGame.numeric_of_isEmpty_leftMoves + theorem PGame.numeric_of_isEmpty_rightMoves + theorem PGame.numeric_one + theorem PGame.numeric_rec + theorem PGame.numeric_toPGame + theorem PGame.numeric_zero + def Surreal.lift + def Surreal.lift₂ + def Surreal.mk + theorem Surreal.nat_toGame + theorem Surreal.one_toGame + def Surreal.toGame + theorem Surreal.zero_toGame + def Surreal 2023-06-27 07:58:37 b04be39 feat: upgrade a boundaryless `ModelWithCorners` to a `Homeomorph` (#5508) ESTIMATED CHANGES Modified Mathlib/Geometry/Manifold/SmoothManifoldWithCorners.lean + theorem ModelWithCorners.range_eq_univ + def ModelWithCorners.toHomeomorph 2023-06-27 07:58:35 3f4cde8 feat: lemmas about `Homeomorph` and `IsConnected` (#5507) ESTIMATED CHANGES Modified Mathlib/Topology/Homeomorph.lean + theorem Homeomorph.isConnected_image + theorem Homeomorph.isConnected_preimage + theorem Homeomorph.isPreconnected_image + theorem Homeomorph.isPreconnected_preimage + theorem Homeomorph.locallyConnectedSpace 2023-06-27 07:44:17 739a445 feat: add `LocallyConstant.of_constant_on_connected_clopens` (#5511) ESTIMATED CHANGES Modified Mathlib/Topology/LocallyConstant/Basic.lean + theorem IsLocallyConstant.of_constant_on_connected_clopens 2023-06-27 07:44:16 297f156 feat: add `MDifferentiableOn.mdifferentiableAt` (#5510) ESTIMATED CHANGES Modified Mathlib/Geometry/Manifold/MFDeriv.lean + theorem MDifferentiableOn.mdifferentiableAt 2023-06-27 05:44:44 60345d9 chore: add porting headers to slim_check files (#5505) Just so these get marked off the dashboard. These files have already been ported by hand. ESTIMATED CHANGES Modified Mathlib/Control/Random.lean Modified Mathlib/Testing/SlimCheck/Gen.lean Modified Mathlib/Testing/SlimCheck/Sampleable.lean Modified Mathlib/Testing/SlimCheck/Testable.lean 2023-06-27 05:35:10 7ed39c9 feat: port Analysis.SpecialFunctions.Gamma.Beta (#5514) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/SpecialFunctions/Gamma/Beta.lean + theorem Complex.GammaSeq_add_one_left + theorem Complex.GammaSeq_eq_approx_Gamma_integral + theorem Complex.GammaSeq_eq_betaIntegral_of_re_pos + theorem Complex.GammaSeq_mul + theorem Complex.GammaSeq_tendsto_Gamma + theorem Complex.Gamma_eq_zero_iff + theorem Complex.Gamma_mul_Gamma_add_half + theorem Complex.Gamma_mul_Gamma_eq_betaIntegral + theorem Complex.Gamma_mul_Gamma_one_sub + theorem Complex.Gamma_ne_zero + theorem Complex.Gamma_ne_zero_of_re_pos + theorem Complex.approx_Gamma_integral_tendsto_Gamma_integral + theorem Complex.betaIntegral_convergent + theorem Complex.betaIntegral_convergent_left + theorem Complex.betaIntegral_eval_nat_add_one_right + theorem Complex.betaIntegral_eval_one_right + theorem Complex.betaIntegral_recurrence + theorem Complex.betaIntegral_scaled + theorem Complex.betaIntegral_symm + theorem Complex.differentiable_one_div_Gamma + theorem Complex.one_div_Gamma_eq_self_mul_one_div_Gamma_add_one + theorem Real.GammaSeq_tendsto_Gamma + theorem Real.Gamma_mul_Gamma_add_half + theorem Real.Gamma_mul_Gamma_one_sub 2023-06-27 05:25:11 3cb782e chore: improve instructions in README (#5503) In particular, I have moved the instructions about using mathlib4 as a dependency out to https://github.com/leanprover-community/mathlib4/wiki/Using-mathlib4-as-a-dependency, as people were not noticing the sectioning commands and frequently calling `lake update` in mathlib4 itself. ESTIMATED CHANGES Modified README.md 2023-06-27 02:30:00 f11fa33 doc: fix arrow direction in comment for PGame.le_trans_aux (#5509) ESTIMATED CHANGES Modified Mathlib/SetTheory/Game/PGame.lean 2023-06-27 02:29:57 a38feb8 feat: add `CompleteSpace` instance for `ℝ≥0` (#5488) ESTIMATED CHANGES Modified Mathlib/Topology/Instances/NNReal.lean 2023-06-27 02:29:56 3c3631e feat: generalize `WithBot.wellFounded_lt` (#5425) ESTIMATED CHANGES Modified Mathlib/Order/WithBot.lean +/- theorem WithBot.wellFounded_gt +/- theorem WithBot.wellFounded_lt +/- theorem WithTop.wellFounded_gt +/- theorem WithTop.wellFounded_lt 2023-06-27 01:24:56 0171e87 feat: "port" `Rbmap` and `Rbtree` files (#5504) Cf. [here](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/Mathlib4.20porting.20meeting.20series/near/369848971). Incorporates #5479. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Data/Rbmap/Basic.lean Added Mathlib/Data/Rbmap/Default.lean Added Mathlib/Data/Rbtree/Basic.lean Added Mathlib/Data/Rbtree/DefaultLt.lean Added Mathlib/Data/Rbtree/Find.lean Added Mathlib/Data/Rbtree/Init.lean Added Mathlib/Data/Rbtree/Insert.lean Added Mathlib/Data/Rbtree/Main.lean Added Mathlib/Data/Rbtree/MinMax.lean 2023-06-27 01:24:54 07ec5c2 chore: forward port #18862 (#5497) ESTIMATED CHANGES Modified Mathlib/GroupTheory/GroupAction/Basic.lean + theorem MulAction.orbitRel_apply Modified Mathlib/GroupTheory/GroupAction/ConjAct.lean + theorem ConjAct.mem_orbit_conjAct + theorem ConjAct.orbitRel_conjAct Modified Mathlib/GroupTheory/Subgroup/Basic.lean + theorem IsConj.eq_of_left_mem_center + theorem IsConj.eq_of_right_mem_center 2023-06-27 00:20:56 0e36dc3 chore: tidy various files (#5482) ESTIMATED CHANGES Modified Mathlib/Algebra/Order/AbsoluteValue.lean Modified Mathlib/AlgebraicGeometry/GammaSpecAdjunction.lean - theorem AlgebraicGeometry.LocallyRingedSpace.toStalk_stalkMap_to_Γ_Spec + theorem AlgebraicGeometry.LocallyRingedSpace.toStalk_stalkMap_toΓSpec - theorem AlgebraicGeometry.LocallyRingedSpace.to_Γ_Spec_continuous - theorem AlgebraicGeometry.LocallyRingedSpace.to_Γ_Spec_preim_basicOpen_eq + theorem AlgebraicGeometry.LocallyRingedSpace.toΓSpec_continuous + theorem AlgebraicGeometry.LocallyRingedSpace.toΓSpec_preim_basicOpen_eq Modified Mathlib/AlgebraicGeometry/PresheafedSpace/Gluing.lean Modified Mathlib/Analysis/Complex/Schwarz.lean Modified Mathlib/Analysis/ODE/PicardLindelof.lean Modified Mathlib/Analysis/SpecialFunctions/Log/Basic.lean Modified Mathlib/Data/Real/Pi/Bounds.lean Modified Mathlib/FieldTheory/PolynomialGaloisGroup.lean Modified Mathlib/Geometry/Manifold/BumpFunction.lean Modified Mathlib/Geometry/Manifold/ContMDiffMap.lean Modified Mathlib/LinearAlgebra/CliffordAlgebra/Basic.lean Modified Mathlib/LinearAlgebra/CliffordAlgebra/Star.lean Modified Mathlib/MeasureTheory/Constructions/Prod/Basic.lean Modified Mathlib/MeasureTheory/Integral/Periodic.lean Modified Mathlib/MeasureTheory/Measure/Complex.lean - theorem MeasureTheory.ComplexMeasure.absolutelyContinuous_eNNReal_iff + theorem MeasureTheory.ComplexMeasure.absolutelyContinuous_ennreal_iff Modified Mathlib/MeasureTheory/Measure/Portmanteau.lean Modified Mathlib/NumberTheory/Cyclotomic/Gal.lean Modified Mathlib/NumberTheory/LegendreSymbol/AddCharacter.lean Modified Mathlib/Order/SupIndep.lean Modified Mathlib/Probability/Martingale/Convergence.lean Modified Mathlib/RepresentationTheory/Rep.lean Modified Mathlib/RingTheory/DedekindDomain/AdicValuation.lean + theorem IsDedekindDomain.HeightOneSpectrum.algebraMap_adicCompletion' - theorem IsDedekindDomain.HeightOneSpectrum.algebraMap_adic_completion' Modified Mathlib/RingTheory/Ideal/Cotangent.lean Modified Mathlib/Topology/Category/Profinite/CofilteredLimit.lean 2023-06-26 19:57:07 401515f feat: port Geometry.Manifold.Mfderiv (#5454) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Geometry/Manifold/MFDeriv.lean + theorem ContMDiff.mdifferentiable + theorem ContMDiffAt.mdifferentiableAt + theorem ContMDiffOn.mdifferentiableOn + theorem ContMDiffWithinAt.mdifferentiableWithinAt + theorem ContinuousLinearEquiv.mfderivWithin_eq + theorem ContinuousLinearEquiv.mfderiv_eq + theorem ContinuousLinearMap.mfderivWithin_eq + theorem ContinuousLinearMap.mfderiv_eq + def DifferentiableWithinAtProp + theorem Filter.EventuallyEq.mdifferentiableWithinAt_iff + theorem Filter.EventuallyEq.mfderivWithin_eq + theorem Filter.EventuallyEq.mfderiv_eq + theorem HasMFDerivAt.add + theorem HasMFDerivAt.comp + theorem HasMFDerivAt.comp_hasMFDerivWithinAt + theorem HasMFDerivAt.congr_of_eventuallyEq + theorem HasMFDerivAt.const_smul + theorem HasMFDerivAt.continuousAt + theorem HasMFDerivAt.hasMFDerivWithinAt + theorem HasMFDerivAt.mdifferentiableAt + theorem HasMFDerivAt.mul' + theorem HasMFDerivAt.mul + theorem HasMFDerivAt.neg + theorem HasMFDerivAt.sub + def HasMFDerivAt + theorem HasMFDerivWithinAt.comp + theorem HasMFDerivWithinAt.congr_mono + theorem HasMFDerivWithinAt.congr_of_eventuallyEq + theorem HasMFDerivWithinAt.continuousWithinAt + theorem HasMFDerivWithinAt.hasMFDerivAt + theorem HasMFDerivWithinAt.mdifferentiableWithinAt + theorem HasMFDerivWithinAt.mfderivWithin + theorem HasMFDerivWithinAt.mono + theorem HasMFDerivWithinAt.mul' + theorem HasMFDerivWithinAt.mul + theorem HasMFDerivWithinAt.nhdsWithin + theorem HasMFDerivWithinAt.union + def HasMFDerivWithinAt + theorem IsOpen.uniqueMDiffOn + theorem IsOpen.uniqueMDiffWithinAt + theorem LocalHomeomorph.MDifferentiable.comp_symm_deriv + theorem LocalHomeomorph.MDifferentiable.ker_mfderiv_eq_bot + theorem LocalHomeomorph.MDifferentiable.mdifferentiableAt_symm + theorem LocalHomeomorph.MDifferentiable.mfderiv_bijective + theorem LocalHomeomorph.MDifferentiable.mfderiv_injective + theorem LocalHomeomorph.MDifferentiable.mfderiv_surjective + theorem LocalHomeomorph.MDifferentiable.range_mfderiv_eq_top + theorem LocalHomeomorph.MDifferentiable.range_mfderiv_eq_univ + theorem LocalHomeomorph.MDifferentiable.symm_comp_deriv + theorem LocalHomeomorph.MDifferentiable.trans + def LocalHomeomorph.MDifferentiable + theorem MDifferentiable.add + theorem MDifferentiable.comp + theorem MDifferentiable.const_smul + theorem MDifferentiable.continuous + theorem MDifferentiable.mdifferentiableOn + theorem MDifferentiable.mfderivWithin + theorem MDifferentiable.mul + theorem MDifferentiable.neg + theorem MDifferentiable.prod_mk + theorem MDifferentiable.prod_mk_space + theorem MDifferentiable.sub + def MDifferentiable + theorem MDifferentiableAt.add + theorem MDifferentiableAt.comp + theorem MDifferentiableAt.congr_of_eventuallyEq + theorem MDifferentiableAt.const_smul + theorem MDifferentiableAt.continuousAt + theorem MDifferentiableAt.hasMFDerivAt + theorem MDifferentiableAt.mdifferentiableWithinAt + theorem MDifferentiableAt.mfderiv_prod + theorem MDifferentiableAt.mul + theorem MDifferentiableAt.neg + theorem MDifferentiableAt.prod_mk + theorem MDifferentiableAt.prod_mk_space + theorem MDifferentiableAt.sub + def MDifferentiableAt + theorem MDifferentiableOn.comp + theorem MDifferentiableOn.congr_mono + theorem MDifferentiableOn.continuousOn + theorem MDifferentiableOn.mono + theorem MDifferentiableOn.mul + theorem MDifferentiableOn.prod_mk + theorem MDifferentiableOn.prod_mk_space + def MDifferentiableOn + theorem MDifferentiableWithinAt.comp + theorem MDifferentiableWithinAt.congr + theorem MDifferentiableWithinAt.congr_mono + theorem MDifferentiableWithinAt.congr_of_eventuallyEq + theorem MDifferentiableWithinAt.continuousWithinAt + theorem MDifferentiableWithinAt.hasMFDerivWithinAt + theorem MDifferentiableWithinAt.mdifferentiableAt + theorem MDifferentiableWithinAt.mfderivWithin_congr_mono + theorem MDifferentiableWithinAt.mono + theorem MDifferentiableWithinAt.mul + theorem MDifferentiableWithinAt.prod_mk + theorem MDifferentiableWithinAt.prod_mk_space + def MDifferentiableWithinAt + theorem ModelWithCorners.hasMFDerivWithinAt_symm + theorem ModelWithCorners.mdifferentiableOn_symm + theorem Smooth.mdifferentiable + theorem Smooth.mdifferentiableAt + theorem Smooth.mdifferentiableWithinAt + theorem Trivialization.mdifferentiable + theorem UniqueMDiffOn.eq + theorem UniqueMDiffOn.image_denseRange' + theorem UniqueMDiffOn.image_denseRange + theorem UniqueMDiffOn.inter + theorem UniqueMDiffOn.prod + theorem UniqueMDiffOn.smooth_bundle_preimage + theorem UniqueMDiffOn.tangentBundle_proj_preimage + theorem UniqueMDiffOn.uniqueDiffOn_inter_preimage + theorem UniqueMDiffOn.uniqueDiffOn_target_inter + theorem UniqueMDiffOn.uniqueMDiffOn_preimage + def UniqueMDiffOn + theorem UniqueMDiffWithinAt.image_denseRange + theorem UniqueMDiffWithinAt.inter' + theorem UniqueMDiffWithinAt.inter + theorem UniqueMDiffWithinAt.mono + theorem UniqueMDiffWithinAt.mono_of_mem + theorem UniqueMDiffWithinAt.smooth_bundle_preimage' + theorem UniqueMDiffWithinAt.smooth_bundle_preimage + def UniqueMDiffWithinAt + theorem const_smul_mfderiv + theorem differentiable_within_at_localInvariantProp + theorem hasMFDerivAt_const + theorem hasMFDerivAt_extChartAt + theorem hasMFDerivAt_fst + theorem hasMFDerivAt_id + theorem hasMFDerivAt_iff_hasFDerivAt + theorem hasMFDerivAt_neg + theorem hasMFDerivAt_snd + theorem hasMFDerivAt_unique + theorem hasMFDerivWithinAt_const + theorem hasMFDerivWithinAt_extChartAt + theorem hasMFDerivWithinAt_fst + theorem hasMFDerivWithinAt_id + theorem hasMFDerivWithinAt_iff_hasFDerivWithinAt + theorem hasMFDerivWithinAt_inter' + theorem hasMFDerivWithinAt_inter + theorem hasMFDerivWithinAt_snd + theorem hasMFDerivWithinAt_univ + theorem mdifferentiableAt_atlas + theorem mdifferentiableAt_atlas_symm + theorem mdifferentiableAt_const + theorem mdifferentiableAt_extChartAt + theorem mdifferentiableAt_fst + theorem mdifferentiableAt_id + theorem mdifferentiableAt_iff_differentiableAt + theorem mdifferentiableAt_iff_liftPropAt + theorem mdifferentiableAt_iff_of_mem_source + theorem mdifferentiableAt_neg + theorem mdifferentiableAt_snd + theorem mdifferentiableOn_atlas + theorem mdifferentiableOn_atlas_symm + theorem mdifferentiableOn_const + theorem mdifferentiableOn_extChartAt + theorem mdifferentiableOn_fst + theorem mdifferentiableOn_id + theorem mdifferentiableOn_iff_differentiableOn + theorem mdifferentiableOn_of_locally_mdifferentiableOn + theorem mdifferentiableOn_snd + theorem mdifferentiableOn_univ + theorem mdifferentiableWithinAt_const + theorem mdifferentiableWithinAt_fst + theorem mdifferentiableWithinAt_id + theorem mdifferentiableWithinAt_iff + theorem mdifferentiableWithinAt_iff_differentiableWithinAt + theorem mdifferentiableWithinAt_iff_liftPropWithinAt + theorem mdifferentiableWithinAt_iff_of_mem_source + theorem mdifferentiableWithinAt_inter' + theorem mdifferentiableWithinAt_inter + theorem mdifferentiableWithinAt_snd + theorem mdifferentiableWithinAt_univ + theorem mdifferentiable_chart + theorem mdifferentiable_const + theorem mdifferentiable_fst + theorem mdifferentiable_id + theorem mdifferentiable_iff_differentiable + theorem mdifferentiable_of_mem_atlas + theorem mdifferentiable_snd + def mfderiv + def mfderivWithin + theorem mfderivWithin_comp + theorem mfderivWithin_congr + theorem mfderivWithin_const + theorem mfderivWithin_eq_fderivWithin + theorem mfderivWithin_fst + theorem mfderivWithin_id + theorem mfderivWithin_inter + theorem mfderivWithin_snd + theorem mfderivWithin_subset + theorem mfderivWithin_univ + theorem mfderivWithin_zero_of_not_mdifferentiableWithinAt + theorem mfderiv_add + theorem mfderiv_comp + theorem mfderiv_comp_of_eq + theorem mfderiv_congr + theorem mfderiv_congr_point + theorem mfderiv_const + theorem mfderiv_eq_fderiv + theorem mfderiv_fst + theorem mfderiv_id + theorem mfderiv_neg + theorem mfderiv_prod_eq_add + theorem mfderiv_prod_left + theorem mfderiv_prod_right + theorem mfderiv_snd + theorem mfderiv_sub + theorem mfderiv_zero_of_not_mdifferentiableAt + def tangentMap + def tangentMapWithin + theorem tangentMapWithin_comp_at + theorem tangentMapWithin_congr + theorem tangentMapWithin_eq_tangentMap + theorem tangentMapWithin_fst + theorem tangentMapWithin_id + theorem tangentMapWithin_prod_fst + theorem tangentMapWithin_prod_snd + theorem tangentMapWithin_proj + theorem tangentMapWithin_subset + theorem tangentMapWithin_univ + theorem tangentMap_chart + theorem tangentMap_chart_symm + theorem tangentMap_comp + theorem tangentMap_comp_at + theorem tangentMap_fst + theorem tangentMap_id + theorem tangentMap_prod_fst + theorem tangentMap_prod_snd + theorem tangentMap_proj + theorem uniqueMDiffOn_iff_uniqueDiffOn + theorem uniqueMDiffOn_univ + theorem uniqueMDiffWithinAt_iff + theorem uniqueMDiffWithinAt_iff_uniqueDiffWithinAt + theorem uniqueMDiffWithinAt_univ + theorem writtenInExtChartAt_comp + theorem writtenInExtChartAt_model_space 2023-06-26 18:00:41 7e6e62c feat: smoothness in a vector bundle (#5494) Add lemmas about smoothness in a smooth vector bundle. Also rename the old `smoothOn_coordChange` to `smoothOn_coordChangeL`. ESTIMATED CHANGES Modified Mathlib/Analysis/Calculus/TangentCone.lean + theorem UniqueDiffWithinAt.congr_pt Modified Mathlib/Geometry/Manifold/SmoothManifoldWithCorners.lean + theorem mem_extChartAt_target + theorem uniqueDiffOn_extChartAt_target + theorem uniqueDiffWithinAt_extChartAt_target Modified Mathlib/Geometry/Manifold/VectorBundle/Basic.lean +/- theorem Bundle.contMDiff_proj +/- theorem Bundle.smooth_zeroSection + theorem ContMDiffWithinAt.change_section_trivialization + theorem Trivialization.contMDiffAt_iff + theorem Trivialization.contMDiffOn_iff + theorem Trivialization.contMDiffOn_symm_trans + theorem Trivialization.contMDiffWithinAt_iff + theorem Trivialization.contMDiffWithinAt_snd_comp_iff₂ + theorem Trivialization.contMDiff_iff + theorem Trivialization.smoothAt_iff + theorem Trivialization.smoothOn + theorem Trivialization.smoothOn_iff + theorem Trivialization.smoothOn_symm + theorem Trivialization.smoothWithinAt_iff + theorem Trivialization.smooth_iff + theorem contMDiffAt_coordChangeL + theorem contMDiffOn_coordChangeL + theorem contMDiffOn_symm_coordChangeL + theorem smoothAt_coordChangeL + theorem smoothOn_coordChangeL + theorem smoothOn_symm_coordChangeL Modified Mathlib/Geometry/Manifold/VectorBundle/Pullback.lean 2023-06-26 18:00:40 49b574e feat: port CategoryTheory.Monoidal.Bimod (#5490) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Monoidal/Bimod.lean + theorem Bimod.AssociatorBimod.hom_inv_id + theorem Bimod.AssociatorBimod.hom_left_act_hom' + theorem Bimod.AssociatorBimod.hom_right_act_hom' + theorem Bimod.AssociatorBimod.inv_hom_id + structure Bimod.Hom + theorem Bimod.LeftUnitorBimod.hom_inv_id + theorem Bimod.LeftUnitorBimod.hom_left_act_hom' + theorem Bimod.LeftUnitorBimod.hom_right_act_hom' + theorem Bimod.LeftUnitorBimod.inv_hom_id + theorem Bimod.RightUnitorBimod.hom_inv_id + theorem Bimod.RightUnitorBimod.hom_left_act_hom' + theorem Bimod.RightUnitorBimod.hom_right_act_hom' + theorem Bimod.RightUnitorBimod.inv_hom_id + theorem Bimod.TensorBimod.actRight_one' + theorem Bimod.TensorBimod.id_tensor_π_actLeft + theorem Bimod.TensorBimod.left_assoc' + theorem Bimod.TensorBimod.middle_assoc' + theorem Bimod.TensorBimod.one_act_left' + theorem Bimod.TensorBimod.right_assoc' + theorem Bimod.TensorBimod.π_tensor_id_actRight + def Bimod.comp + theorem Bimod.comp_hom' + theorem Bimod.comp_whisker_left_bimod + theorem Bimod.comp_whisker_right_bimod + def Bimod.forget + theorem Bimod.hom_ext + def Bimod.id' + theorem Bimod.id_hom' + theorem Bimod.id_whisker_left_bimod + def Bimod.isoOfIso + theorem Bimod.pentagon_bimod + def Bimod.regular + theorem Bimod.tensor_comp + theorem Bimod.tensor_id + theorem Bimod.triangle_bimod + theorem Bimod.whisker_assoc_bimod + theorem Bimod.whisker_exchange_bimod + theorem Bimod.whisker_left_comp_bimod + theorem Bimod.whisker_right_comp_bimod + theorem Bimod.whisker_right_id_bimod + structure Bimod + theorem id_tensor_π_preserves_coequalizer_inv_colimMap_desc + theorem id_tensor_π_preserves_coequalizer_inv_desc + theorem π_tensor_id_preserves_coequalizer_inv_colimMap_desc + theorem π_tensor_id_preserves_coequalizer_inv_desc 2023-06-26 16:40:58 9ed8bbf fix: use the same atom state for `abel_nf` subterms (#5403) As [reported on Zulip](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/abel.20bug.3F/near/368707560). ESTIMATED CHANGES Modified Mathlib/Tactic/Abel.lean +/- def Mathlib.Tactic.Abel.abelNFLocalDecl +/- def Mathlib.Tactic.Abel.abelNFTarget Modified test/abel.lean 2023-06-26 15:50:15 b7b1bb2 feat: port NumberTheory.LegendreSymbol.GaussEisensteinLemmas (#5492) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/NumberTheory/LegendreSymbol/GaussEisensteinLemmas.lean + theorem ZMod.Ico_map_valMinAbs_natAbs_eq_Ico_map_id + theorem ZMod.div_eq_filter_card + theorem ZMod.eisenstein_lemma + theorem ZMod.eisenstein_lemma_aux + theorem ZMod.gauss_lemma + theorem ZMod.gauss_lemma_aux + theorem ZMod.sum_mul_div_add_sum_mul_div_eq_mul 2023-06-26 15:15:47 186ec0c feat: port RingTheory.DedekindDomain.SelmerGroup (#5478) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/RingTheory/DedekindDomain/SelmerGroup.lean + def IsDedekindDomain.HeightOneSpectrum.valuationOfNeZero + def IsDedekindDomain.HeightOneSpectrum.valuationOfNeZeroMod + def IsDedekindDomain.HeightOneSpectrum.valuationOfNeZeroToFun + theorem IsDedekindDomain.HeightOneSpectrum.valuationOfNeZeroToFun_eq + theorem IsDedekindDomain.HeightOneSpectrum.valuationOfNeZero_eq + theorem IsDedekindDomain.HeightOneSpectrum.valuation_of_unit_eq + theorem IsDedekindDomain.HeightOneSpectrum.valuation_of_unit_mod_eq + def IsDedekindDomain.selmerGroup.fromUnit + def IsDedekindDomain.selmerGroup.fromUnitLift + theorem IsDedekindDomain.selmerGroup.fromUnitLift_injective + theorem IsDedekindDomain.selmerGroup.fromUnit_ker + theorem IsDedekindDomain.selmerGroup.monotone + def IsDedekindDomain.selmerGroup.valuation + theorem IsDedekindDomain.selmerGroup.valuation_ker_eq + def IsDedekindDomain.selmerGroup 2023-06-26 14:58:55 0b5fe72 feat: port NumberTheory.SumTwoSquares (#5487) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/NumberTheory/SumTwoSquares.lean + theorem Nat.Prime.mod_four_ne_three_of_dvd_isSquare_neg_one + theorem Nat.Prime.sq_add_sq + theorem Nat.eq_sq_add_sq_iff + theorem Nat.eq_sq_add_sq_iff_eq_sq_mul + theorem Nat.eq_sq_add_sq_of_isSquare_mod_neg_one + theorem Nat.sq_add_sq_mul + theorem ZMod.isSquare_neg_one_iff' + theorem ZMod.isSquare_neg_one_iff + theorem ZMod.isSquare_neg_one_mul + theorem ZMod.isSquare_neg_one_of_dvd + theorem ZMod.isSquare_neg_one_of_eq_sq_add_sq_of_coprime + theorem ZMod.isSquare_neg_one_of_eq_sq_add_sq_of_isCoprime + theorem sq_add_sq_mul 2023-06-26 14:58:54 3aedc70 feat: port Analysis.SpecialFunctions.Gamma.BohrMollerup (#5486) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/SpecialFunctions/Gamma/BohrMollerup.lean + theorem ConcaveOn.add_const + theorem ConcaveOn.congr + theorem ConvexOn.add_const + theorem ConvexOn.congr + theorem Real.BohrMollerup.f_add_nat_eq + theorem Real.BohrMollerup.f_add_nat_ge + theorem Real.BohrMollerup.f_add_nat_le + theorem Real.BohrMollerup.f_nat_eq + theorem Real.BohrMollerup.ge_logGammaSeq + theorem Real.BohrMollerup.le_logGammaSeq + def Real.BohrMollerup.logGammaSeq + theorem Real.BohrMollerup.logGammaSeq_add_one + theorem Real.BohrMollerup.tendsto_logGammaSeq + theorem Real.BohrMollerup.tendsto_logGammaSeq_of_le_one + theorem Real.BohrMollerup.tendsto_log_gamma + theorem Real.Gamma_mul_Gamma_add_half_of_pos + theorem Real.Gamma_mul_add_mul_le_rpow_Gamma_mul_rpow_Gamma + theorem Real.Gamma_strictMonoOn_Ici + theorem Real.Gamma_three_div_two_lt_one + theorem Real.Gamma_two + theorem Real.convexOn_Gamma + theorem Real.convexOn_log_Gamma + def Real.doublingGamma + theorem Real.doublingGamma_add_one + theorem Real.doublingGamma_eq_Gamma + theorem Real.doublingGamma_log_convex_Ioi + theorem Real.doublingGamma_one + theorem Real.eq_Gamma_of_log_convex + theorem Real.log_doublingGamma_eq + theorem StrictConcaveOn.add_const + theorem StrictConcaveOn.congr + theorem StrictConvexOn.add_const + theorem StrictConvexOn.congr 2023-06-26 14:58:53 b956b63 feat: port Archive.Imo.Imo2008Q3 (#5484) ESTIMATED CHANGES Modified Archive.lean Added Archive/Imo/Imo2008Q3.lean + theorem Imo2008Q3.p_lemma + theorem imo2008_q3 2023-06-26 14:58:51 29eff09 feat: port Archive.MiuLanguage.DecisionSuf (#5475) ESTIMATED CHANGES Modified Archive.lean Added Archive/MiuLanguage/DecisionSuf.lean + theorem Miu.add_mod2 + theorem Miu.base_case_suf + theorem Miu.count_I_eq_length_of_count_U_zero_and_neg_mem + theorem Miu.der_cons_replicate_I_replicate_U_append_of_der_cons_replicate_I_append + theorem Miu.der_of_decstr + theorem Miu.der_of_der_append_replicate_U_even + theorem Miu.der_replicate_I_of_mod3 + theorem Miu.eq_append_cons_U_of_count_U_pos + theorem Miu.ind_hyp_suf + theorem Miu.le_pow2_and_pow2_eq_mod3 + theorem Miu.mem_of_count_U_eq_succ + theorem Miu.replicate_pow_minus_append 2023-06-26 14:46:01 d2f4ea7 feat: port SetTheory.Game.Ordinal (#5480) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/SetTheory/Game/Ordinal.lean + theorem Ordinal.one_toPGame_leftMoves_default_eq + theorem Ordinal.one_toPGame_moveLeft + theorem Ordinal.toLeftMovesToPGame_symm_lt + theorem Ordinal.toPGame_add + theorem Ordinal.toPGame_add_mk' + theorem Ordinal.toPGame_def + theorem Ordinal.toPGame_eq_iff + theorem Ordinal.toPGame_equiv_iff + theorem Ordinal.toPGame_injective + theorem Ordinal.toPGame_le + theorem Ordinal.toPGame_le_iff + theorem Ordinal.toPGame_leftMoves + theorem Ordinal.toPGame_lf + theorem Ordinal.toPGame_lf_iff + theorem Ordinal.toPGame_lt + theorem Ordinal.toPGame_lt_iff + theorem Ordinal.toPGame_moveLeft' + theorem Ordinal.toPGame_moveLeft + theorem Ordinal.toPGame_moveLeft_hEq + theorem Ordinal.toPGame_nonneg + theorem Ordinal.toPGame_rightMoves + theorem Ordinal.to_leftMoves_one_toPGame_symm 2023-06-26 14:00:05 440cc2b feat: port NumberTheory.Zsqrtd.QuadraticReciprocity (#5485) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/NumberTheory/Zsqrtd/QuadraticReciprocity.lean + theorem GaussianInt.mod_four_eq_three_of_nat_prime_of_prime + theorem GaussianInt.prime_iff_mod_four_eq_three_of_nat_prime + theorem GaussianInt.prime_of_nat_prime_of_mod_four_eq_three 2023-06-26 13:08:02 dc08a85 feat: port NumberTheory.LegendreSymbol.QuadraticReciprocity (#5483) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/NumberTheory/LegendreSymbol/QuadraticReciprocity.lean + theorem ZMod.exists_sq_eq_neg_two_iff + theorem ZMod.exists_sq_eq_prime_iff_of_mod_four_eq_one + theorem ZMod.exists_sq_eq_prime_iff_of_mod_four_eq_three + theorem ZMod.exists_sq_eq_two_iff + theorem legendreSym.at_neg_two + theorem legendreSym.at_two + theorem legendreSym.quadratic_reciprocity' + theorem legendreSym.quadratic_reciprocity + theorem legendreSym.quadratic_reciprocity_one_mod_four + theorem legendreSym.quadratic_reciprocity_three_mod_four 2023-06-26 12:34:57 faea138 feat: port NumberTheory.LegendreSymbol.QuadraticChar.GaussSum (#5481) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/NumberTheory/LegendreSymbol/QuadraticChar/GaussSum.lean + theorem FiniteField.isSquare_neg_two_iff + theorem FiniteField.isSquare_odd_prime_iff + theorem FiniteField.isSquare_two_iff + theorem quadraticChar_card_card + theorem quadraticChar_neg_two + theorem quadraticChar_odd_prime + theorem quadraticChar_two 2023-06-26 12:34:55 a9665a0 feat: add `MeasureTheory.inv_smul_ae_eq_self` (#5429) - Add `MeasureTheory.inv_smul_ae_eq_self` and its additive version. - Add `@[to_additive]` to `MeasureTheory.measure_smul_null`. - Fix the order of implicit arguments and universes in `MeasureTheory.vadd_ae_eq_self_of_mem_zmultiples` to match the multiplicative version. ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Group/Action.lean + theorem MeasureTheory.inv_smul_ae_eq_self +/- theorem MeasureTheory.vadd_ae_eq_self_of_mem_zmultiples 2023-06-26 11:36:56 9f3a6c7 feat(SetTheory/Cardinal/Finite): prove lemmas about PartENat.card (#5307) Prove lemmas to handle PartENat.card Inspired from the similar lemmas for Nat.card This is a mathlib4 companion to the PR #19198 of mathlib3 ESTIMATED CHANGES Modified Mathlib/Data/Finite/Card.lean + theorem PartENat.card_eq_coe_nat_card Modified Mathlib/Data/Nat/PartENat.lean + theorem PartENat.coe_succ_le_iff + theorem PartENat.lt_coe_succ_iff_le Modified Mathlib/SetTheory/Cardinal/Basic.lean + theorem Cardinal.toNat_eq_iff_eq_of_lt_aleph0 + theorem Cardinal.toPartENat_congr + theorem Cardinal.toPartENat_eq_iff_of_le_aleph0 + theorem Cardinal.toPartENat_eq_top_iff_le_aleph0 + theorem Cardinal.toPartENat_le_iff_of_le_aleph0 + theorem Cardinal.toPartENat_le_iff_of_lt_aleph0 + theorem Cardinal.toPartENat_lift + theorem Cardinal.toPartENat_mono Modified Mathlib/SetTheory/Cardinal/Finite.lean + theorem Cardinal.natCast_eq_toPartENat_iff + theorem Cardinal.natCast_le_toPartENat_iff + theorem Cardinal.natCast_lt_toPartENat_iff + theorem Cardinal.toPartENat_eq_natCast_iff + theorem Cardinal.toPartENat_le_natCast_iff + theorem Cardinal.toPartENat_lt_natCast_iff + theorem PartENat.card_congr + theorem PartENat.card_eq_zero_iff_empty + theorem PartENat.card_image_of_injOn + theorem PartENat.card_image_of_injective + theorem PartENat.card_le_one_iff_subsingleton + theorem PartENat.card_pLift + theorem PartENat.card_uLift + theorem PartENat.one_lt_card_iff_nontrivial 2023-06-26 10:09:21 5775c85 feat: port NumberTheory.LegendreSymbol.GaussSum (#5419) This PR incorporates also the changes to `NumberTheory.LegendreSymbol.MulCharacter` discussed [here](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/coercion.20issue.20in.20NumberTheory.2ELegendreSymbol.2EMulCharacter/near/343943344) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/NumberTheory/LegendreSymbol/Basic.lean Added Mathlib/NumberTheory/LegendreSymbol/GaussSum.lean + theorem Char.card_pow_card + theorem Char.card_pow_char_pow + theorem FiniteField.two_pow_card + theorem MulChar.IsQuadratic.gaussSum_frob_iter + def gaussSum + theorem gaussSum_frob + theorem gaussSum_mulShift + theorem gaussSum_mul_gaussSum_eq_card + theorem gaussSum_sq Modified Mathlib/NumberTheory/LegendreSymbol/MulCharacter.lean - theorem MulChar.coe_coe - theorem MulChar.toFun_eq_coe Modified Mathlib/NumberTheory/LegendreSymbol/QuadraticChar/Basic.lean Modified Mathlib/NumberTheory/LegendreSymbol/ZModChar.lean 2023-06-26 09:59:40 4ab276d feat: port Combinatorics.SimpleGraph.Regularity.Lemma (#5477) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Combinatorics/SimpleGraph/Regularity/Lemma.lean + theorem szemeredi_regularity 2023-06-26 09:40:00 6f0a97e feat: port Combinatorics.SimpleGraph.Regularity.Increment (#5476) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Combinatorics/SimpleGraph/Regularity/Energy.lean +/- theorem Finpartition.coe_energy Added Mathlib/Combinatorics/SimpleGraph/Regularity/Increment.lean + theorem SzemerediRegularity.card_increment + theorem SzemerediRegularity.energy_increment + theorem SzemerediRegularity.increment_isEquipartition + theorem SzemerediRegularity.offDiag_pairs_le_increment_energy + theorem SzemerediRegularity.pairContrib_lower_bound + theorem SzemerediRegularity.uniform_add_nonuniform_eq_offDiag_pairs 2023-06-26 08:41:43 d8a7e7e feat: port Combinatorics.SimpleGraph.Regularity.Chunk (#5474) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Combinatorics/SimpleGraph/Regularity/Chunk.lean + theorem SzemerediRegularity.biUnion_star_subset_nonuniformWitness + theorem SzemerediRegularity.card_biUnion_star_le_m_add_one_card_star_mul + theorem SzemerediRegularity.card_chunk + theorem SzemerediRegularity.card_eq_of_mem_parts_chunk + theorem SzemerediRegularity.card_le_m_add_one_of_mem_chunk_parts + theorem SzemerediRegularity.edgeDensity_chunk_not_uniform + theorem SzemerediRegularity.edgeDensity_chunk_uniform + theorem SzemerediRegularity.m_le_card_of_mem_chunk_parts + theorem SzemerediRegularity.star_subset_chunk 2023-06-26 06:02:13 8b188ce feat: port Archive.MiuLanguage.DecisionNec (#5472) ESTIMATED CHANGES Modified Archive.lean Added Archive/MiuLanguage/DecisionNec.lean + def Miu.CountEquivOrEquivTwoMulMod3 + def Miu.Decstr + def Miu.Goodm + theorem Miu.count_equiv_one_or_two_mod3_of_derivable + theorem Miu.decstr_of_der + theorem Miu.goodm_of_derivable + theorem Miu.goodm_of_rule1 + theorem Miu.goodm_of_rule2 + theorem Miu.goodm_of_rule3 + theorem Miu.goodm_of_rule4 + theorem Miu.goodmi + theorem Miu.mod3_eq_1_or_mod3_eq_2 + theorem Miu.not_derivable_mu 2023-06-26 06:02:12 55dfeba feat: port NumberTheory.Bertrand (#4777) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/NumberTheory/Bertrand.lean + theorem Bertrand.real_main_inequality + theorem Nat.exists_prime_lt_and_le_two_mul + theorem Nat.exists_prime_lt_and_le_two_mul_eventually + theorem Nat.exists_prime_lt_and_le_two_mul_succ + theorem bertrand_main_inequality + theorem centralBinom_factorization_small + theorem centralBinom_le_of_no_bertrand_prime 2023-06-26 05:48:37 b4ae732 feat: port Analysis.SpecialFunctions.Gaussian (#5370) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/SpecialFunctions/Gaussian.lean + theorem Complex.Gamma_one_half_eq + theorem Complex.tsum_exp_neg_mul_int_sq + theorem GaussianFourier.integrable_cexp_neg_mul_sq_add_real_mul_I + theorem GaussianFourier.integral_cexp_neg_mul_sq_add_real_mul_I + theorem GaussianFourier.norm_cexp_neg_mul_sq_add_mul_I' + theorem GaussianFourier.norm_cexp_neg_mul_sq_add_mul_I + theorem GaussianFourier.tendsto_verticalIntegral + def GaussianFourier.verticalIntegral + theorem GaussianFourier.verticalIntegral_norm_le + theorem Real.Gamma_one_half_eq + theorem Real.tsum_exp_neg_mul_int_sq + theorem continuousAt_gaussian_integral + theorem exp_neg_mul_sq_isLittleO_exp_neg + theorem fourier_transform_gaussian + theorem fourier_transform_gaussian_pi + theorem integrableOn_Ioi_exp_neg_mul_sq_iff + theorem integrableOn_rpow_mul_exp_neg_mul_sq + theorem integrable_cexp_neg_mul_sq + theorem integrable_exp_neg_mul_sq + theorem integrable_exp_neg_mul_sq_iff + theorem integrable_mul_cexp_neg_mul_sq + theorem integrable_mul_exp_neg_mul_sq + theorem integrable_rpow_mul_exp_neg_mul_sq + theorem integral_cexp_neg_mul_sq_add_const + theorem integral_gaussian + theorem integral_gaussian_Ioi + theorem integral_gaussian_complex + theorem integral_gaussian_complex_Ioi + theorem integral_gaussian_sq_complex + theorem integral_mul_cexp_neg_mul_sq + theorem isLittleO_exp_neg_mul_sq_cocompact + theorem norm_cexp_neg_mul_sq + theorem rpow_mul_exp_neg_mul_sq_isLittleO_exp_neg + theorem tendsto_rpow_abs_mul_exp_neg_mul_sq_cocompact 2023-06-26 05:06:25 1bd4b77 feat: port SetTheory.Game.Basic (#4311) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/SetTheory/Game/Basic.lean + def Game.Fuzzy + def Game.Lf + theorem Game.PGame.equiv_iff_game_eq + theorem Game.PGame.fuzzy_iff_game_fuzzy + theorem Game.PGame.le_iff_game_le + theorem Game.PGame.lf_iff_game_lf + theorem Game.PGame.lt_iff_game_lt + theorem Game.add_lf_add_left + theorem Game.add_lf_add_right + def Game.neg + theorem Game.not_le + theorem Game.not_lf + inductive PGame.InvTy + def PGame.inv' + def PGame.inv'One + def PGame.inv'Zero + theorem PGame.inv'_one_equiv + theorem PGame.inv'_zero_equiv + def PGame.invOne + def PGame.invVal + theorem PGame.invVal_isEmpty + theorem PGame.inv_eq_of_equiv_zero + theorem PGame.inv_eq_of_lf_zero + theorem PGame.inv_eq_of_pos + theorem PGame.inv_one_equiv + theorem PGame.inv_zero + theorem PGame.leftMoves_mul + theorem PGame.leftMoves_mul_cases + theorem PGame.left_distrib_equiv + theorem PGame.mk_mul_moveLeft_inl + theorem PGame.mk_mul_moveLeft_inr + theorem PGame.mk_mul_moveRight_inl + theorem PGame.mk_mul_moveRight_inr + def PGame.mulCommRelabelling + def PGame.mulNegRelabelling + def PGame.mulOneRelabelling + def PGame.mulZeroRelabelling + theorem PGame.mul_assoc_equiv + theorem PGame.mul_comm_equiv + theorem PGame.mul_moveLeft_inl + theorem PGame.mul_moveLeft_inr + theorem PGame.mul_moveRight_inl + theorem PGame.mul_moveRight_inr + theorem PGame.mul_one_equiv + theorem PGame.mul_zero_equiv + def PGame.negMulRelabelling + theorem PGame.neg_mk_mul_moveLeft_inl + theorem PGame.neg_mk_mul_moveLeft_inr + theorem PGame.neg_mk_mul_moveRight_inl + theorem PGame.neg_mk_mul_moveRight_inr + def PGame.oneMulRelabelling + theorem PGame.one_mul_equiv + theorem PGame.quot_add + theorem PGame.quot_eq_of_mk'_quot_eq + theorem PGame.quot_left_distrib + theorem PGame.quot_left_distrib_sub + theorem PGame.quot_mul_assoc + theorem PGame.quot_mul_comm + theorem PGame.quot_mul_neg + theorem PGame.quot_mul_one + theorem PGame.quot_mul_zero + theorem PGame.quot_neg + theorem PGame.quot_neg_mul + theorem PGame.quot_one_mul + theorem PGame.quot_right_distrib + theorem PGame.quot_right_distrib_sub + theorem PGame.quot_sub + theorem PGame.quot_zero_mul + theorem PGame.rightMoves_mul + theorem PGame.rightMoves_mul_cases + theorem PGame.right_distrib_equiv + def PGame.toLeftMovesMul + def PGame.toRightMovesMul + def PGame.zeroMulRelabelling + theorem PGame.zero_lf_inv' + theorem PGame.zero_mul_equiv Modified Mathlib/SetTheory/Game/PGame.lean 2023-06-26 04:42:13 9cb18fd feat: port Combinatorics.SimpleGraph.Regularity.Bound (#4409) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Combinatorics/SimpleGraph/Regularity/Bound.lean + theorem SzemerediRegularity.a_add_one_le_four_pow_parts_card + theorem SzemerediRegularity.add_div_le_sum_sq_div_card + theorem SzemerediRegularity.bound_pos + theorem SzemerediRegularity.card_aux₁ + theorem SzemerediRegularity.card_aux₂ + theorem SzemerediRegularity.coe_m_add_one_pos + theorem SzemerediRegularity.eps_pos + theorem SzemerediRegularity.eps_pow_five_pos + theorem SzemerediRegularity.hundred_div_ε_pow_five_le_m + theorem SzemerediRegularity.hundred_le_m + theorem SzemerediRegularity.hundred_lt_pow_initialBound_mul + theorem SzemerediRegularity.initialBound_le_bound + theorem SzemerediRegularity.initialBound_pos + theorem SzemerediRegularity.le_bound + theorem SzemerediRegularity.le_initialBound + theorem SzemerediRegularity.le_stepBound + theorem SzemerediRegularity.m_pos + theorem SzemerediRegularity.mul_sq_le_sum_sq + theorem SzemerediRegularity.one_le_m_coe + theorem SzemerediRegularity.pow_mul_m_le_card_part + theorem SzemerediRegularity.seven_le_initialBound + def SzemerediRegularity.stepBound + theorem SzemerediRegularity.stepBound_mono + theorem SzemerediRegularity.stepBound_pos_iff + def Tactic.evalBound + def Tactic.evalInitialBound 2023-06-26 04:12:55 37805e2 feat: port Algebra.Category.FGModule.basic (#4878) Sets new records for `set_option maxHeartbeats`. :-( I spent too long struggling with this one; if anyone would like to take another look please do. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Category/FGModuleCat/Basic.lean + def FGModuleCat.FGModuleCatCoevaluation + theorem FGModuleCat.FGModuleCatCoevaluation_apply_one + def FGModuleCat.FGModuleCatDual + theorem FGModuleCat.FGModuleCatDual_coe + theorem FGModuleCat.FGModuleCatDual_obj + def FGModuleCat.FGModuleCatEvaluation + theorem FGModuleCat.FGModuleCatEvaluation_apply + theorem FGModuleCat.Iso.conj_eq_conj + def FGModuleCat.carrier + def FGModuleCat.forget₂Monoidal + theorem FGModuleCat.ihom_obj + def FGModuleCat.isoToLinearEquiv + def FGModuleCat.of + theorem FGModuleCat.tensorObj_obj + theorem FGModuleCat.tensorUnit_obj + def FGModuleCat + def LinearEquiv.toFGModuleCatIso + theorem obj_carrier Modified Mathlib/Algebra/Category/ModuleCat/Basic.lean Modified Mathlib/Algebra/Category/ModuleCat/Monoidal/Basic.lean Modified Mathlib/Algebra/Homology/ModuleCat.lean Modified Mathlib/LinearAlgebra/Dual.lean Modified Mathlib/RepresentationTheory/GroupCohomology/Resolution.lean 2023-06-26 01:21:15 d93a0a4 feat: port Algebra.Category.Mon.Colimits (#5466) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Category/GroupCat/FilteredColimits.lean Added Mathlib/Algebra/Category/MonCat/Colimits.lean + def MonCat.Colimits.ColimitType + inductive MonCat.Colimits.Prequotient + inductive MonCat.Colimits.Relation + def MonCat.Colimits.coconeFun + def MonCat.Colimits.coconeMorphism + theorem MonCat.Colimits.cocone_naturality + theorem MonCat.Colimits.cocone_naturality_components + def MonCat.Colimits.colimit + def MonCat.Colimits.colimitCocone + def MonCat.Colimits.colimitIsColimit + def MonCat.Colimits.colimitSetoid + def MonCat.Colimits.descFun + def MonCat.Colimits.descFunLift + def MonCat.Colimits.descMorphism + theorem MonCat.Colimits.quot_mul + theorem MonCat.Colimits.quot_one Renamed Mathlib/Algebra/Category/Mon/FilteredColimits.lean to Mathlib/Algebra/Category/MonCat/FilteredColimits.lean Modified Mathlib/CategoryTheory/Limits/Preserves/Filtered.lean 2023-06-26 01:21:14 01e12e7 feat: port LinearAlgebra.ExteriorAlgebra.OfAlternating (#5465) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/LinearAlgebra/ExteriorAlgebra/OfAlternating.lean + theorem ExteriorAlgebra.lhom_ext + def ExteriorAlgebra.liftAlternating + def ExteriorAlgebra.liftAlternatingEquiv + theorem ExteriorAlgebra.liftAlternating_algebraMap + theorem ExteriorAlgebra.liftAlternating_apply_ιMulti + theorem ExteriorAlgebra.liftAlternating_comp + theorem ExteriorAlgebra.liftAlternating_comp_ιMulti + theorem ExteriorAlgebra.liftAlternating_one + theorem ExteriorAlgebra.liftAlternating_ι + theorem ExteriorAlgebra.liftAlternating_ιMulti + theorem ExteriorAlgebra.liftAlternating_ι_mul 2023-06-26 01:04:47 f6a68c5 chore: tidy various files (#5469) ESTIMATED CHANGES Modified Archive/Wiedijk100Theorems/AbelRuffini.lean +/- theorem AbelRuffini.coeff_zero_Phi +/- theorem AbelRuffini.degree_Phi Modified Mathlib/Algebra/Homology/LocalCohomology.lean - theorem Ideal.exists_pow_le_of_le_radical_of_fG + theorem Ideal.exists_pow_le_of_le_radical_of_fg + def localCohomology.SelfLERadical - def localCohomology.SelfLeRadical + def localCohomology.idealPowersToSelfLERadical + def localCohomology.idealPowersToSelfLERadicalCompInclusion - def localCohomology.idealPowersToSelfLeRadical - def localCohomology.idealPowersToSelfLeRadicalCompInclusion + def localCohomology.ofSelfLERadical - def localCohomology.ofSelfLeRadical + def localCohomology.selfLERadicalDiagram - def localCohomology.selfLeRadicalDiagram Modified Mathlib/Data/Set/Ncard.lean - theorem Set.Finite_of_ncard_ne_zero - theorem Set.Finite_of_ncard_pos - theorem Set.exists_intermediate_Set' + theorem Set.exists_intermediate_set' - theorem Set.exists_smaller_Set + theorem Set.exists_smaller_set + theorem Set.finite_of_ncard_ne_zero + theorem Set.finite_of_ncard_pos - theorem Set.ncard_eq_ofBijective + theorem Set.ncard_eq_of_bijective - theorem Set.ncard_image_ofInjective + theorem Set.ncard_image_of_injective - theorem Set.ncard_preimage_ofInjective_subset_range + theorem Set.ncard_preimage_of_injective_subset_range Modified Mathlib/Geometry/Euclidean/Circumcenter.lean Modified Mathlib/Geometry/Manifold/Algebra/Monoid.lean Modified Mathlib/MeasureTheory/Covering/LiminfLimsup.lean Modified Mathlib/NumberTheory/ClassNumber/Finite.lean Modified Mathlib/RingTheory/ClassGroup.lean 2023-06-25 11:21:15 52d95f2 chore: disable relaxedAutoImplicit (#5277) We disable the "relaxed" auto-implicit feature, so only single character identifiers become eligible as auto-implicits. See discussion on [zulip](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/Auto-implicits) and [2](https://leanprover.zulipchat.com/#narrow/stream/270676-lean4/topic/.60autoImplicit.20true.60.20is.20evil). ESTIMATED CHANGES Modified Mathlib/AlgebraicGeometry/ProjectiveSpectrum/Topology.lean Modified Mathlib/CategoryTheory/Limits/FilteredColimitCommutesFiniteLimit.lean +/- theorem CategoryTheory.Limits.comp_lim_obj_ext Modified Mathlib/Computability/TuringMachine.lean +/- theorem Turing.TM1to1.tr_respects Modified Mathlib/Data/HashMap.lean +/- def Std.RBSet.insertList Modified Mathlib/Data/List/Range.lean +/- theorem List.range'_one Modified Mathlib/Data/Seq/Computation.lean +/- theorem Computation.LiftRelAux_inl_inr +/- theorem Computation.LiftRelAux_inr_inl +/- theorem Computation.LiftRelAux_inr_inr Modified Mathlib/Data/Stream/Init.lean +/- theorem Stream'.dropLast_take Modified Mathlib/Init/Algebra/Classes.lean Modified Mathlib/Order/Basic.lean +/- theorem PUnit.max_eq +/- theorem PUnit.min_eq Modified Mathlib/Order/OmegaCompletePartialOrder.lean Modified Mathlib/SetTheory/Game/PGame.lean Modified Mathlib/Tactic/IntervalCases.lean Modified Mathlib/Tactic/Ring/Basic.lean Modified Mathlib/Tactic/Ring/RingNF.lean Modified Mathlib/Tactic/Sat/FromLRAT.lean +/- theorem Sat.Fmla.refute +/- theorem Sat.Valuation.mk_implies Modified Mathlib/Testing/SlimCheck/Testable.lean Modified Mathlib/Topology/MetricSpace/Gluing.lean Modified Mathlib/Util/Syntax.lean +/- def Lean.Syntax.TSepArray.ofElems Modified lakefile.lean 2023-06-25 10:23:15 99b2305 feat: port Geometry.Manifold.Algebra.Structures (#5453) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Geometry/Manifold/Algebra/LieGroup.lean Modified Mathlib/Geometry/Manifold/Algebra/Monoid.lean +/- theorem L_mul +/- theorem R_mul Added Mathlib/Geometry/Manifold/Algebra/Structures.lean + theorem topologicalSemiring_of_smooth Modified Mathlib/Geometry/Manifold/ContMDiffMap.lean 2023-06-25 09:03:44 2ac7bc8 chore: tidy various files (#5458) ESTIMATED CHANGES Modified Archive/Examples/PropEncodable.lean Modified Mathlib/Algebra/Category/ModuleCat/FilteredColimits.lean + def ModuleCat.FilteredColimits.colimitSMulAux + theorem ModuleCat.FilteredColimits.colimitSMulAux_eq_of_rel - def ModuleCat.FilteredColimits.colimitSmulAux - theorem ModuleCat.FilteredColimits.colimitSmulAux_eq_of_rel Modified Mathlib/AlgebraicGeometry/OpenImmersion/Basic.lean +/- def AlgebraicGeometry.PresheafedSpace.IsOpenImmersion.isoOfRangeEq +/- theorem AlgebraicGeometry.PresheafedSpace.IsOpenImmersion.sheafedSpace_toSheafedSpace +/- theorem AlgebraicGeometry.PresheafedSpace.IsOpenImmersion.to_iso Modified Mathlib/Analysis/Complex/CauchyIntegral.lean Modified Mathlib/Analysis/Fourier/PoissonSummation.lean Modified Mathlib/Analysis/InnerProductSpace/Spectrum.lean Modified Mathlib/CategoryTheory/Monoidal/Internal/Types.lean Modified Mathlib/CategoryTheory/Monoidal/OfHasFiniteProducts.lean +/- def CategoryTheory.symmetricOfHasFiniteCoproducts Modified Mathlib/FieldTheory/Normal.lean Modified Mathlib/NumberTheory/Cyclotomic/Rat.lean Modified Mathlib/NumberTheory/NumberField/Basic.lean Modified Mathlib/Order/Category/SemilatCat.lean Modified Mathlib/Probability/Density.lean Modified Mathlib/Probability/Kernel/Basic.lean Modified Mathlib/Probability/Kernel/Condexp.lean Modified Mathlib/Probability/Kernel/IntegralCompProd.lean Modified Mathlib/Probability/Variance.lean Modified Mathlib/RingTheory/IsAdjoinRoot.lean Modified Mathlib/RingTheory/Polynomial/Eisenstein/IsIntegral.lean + theorem cyclotomic_comp_X_add_one_isEisensteinAt - theorem cyclotomic_comp_x_add_one_isEisensteinAt + theorem cyclotomic_prime_pow_comp_X_add_one_isEisensteinAt - theorem cyclotomic_prime_pow_comp_x_add_one_isEisensteinAt + theorem dvd_coeff_zero_of_aeval_eq_prime_smul_of_minpoly_isEisensteinAt - theorem dvd_coeff_zero_of_aeval_eq_prime_smul_of_minpoly_is_eiseinstein_at + theorem mem_adjoin_of_smul_prime_pow_smul_of_minpoly_isEisensteinAt - theorem mem_adjoin_of_smul_prime_pow_smul_of_minpoly_is_eiseinstein_at + theorem mem_adjoin_of_smul_prime_smul_of_minpoly_isEisensteinAt - theorem mem_adjoin_of_smul_prime_smul_of_minpoly_is_eiseinstein_at Modified Mathlib/RingTheory/RingHomProperties.lean Modified Mathlib/RingTheory/Valuation/ValuationSubring.lean + def ValuationSubring.pointwiseHasSMul - def ValuationSubring.pointwiseHasSmul 2023-06-25 08:53:32 b688e1a feat: port Archive.MiuLanguage.Basic (#5214) ESTIMATED CHANGES Modified Archive.lean Added Archive/MiuLanguage/Basic.lean + inductive Miu.Derivable + def Miu.MiuAtom.repr + inductive Miu.MiuAtom + def Miu.Miustr.mrepr + def Miu.Miustr + def Miu.lcharToMiustr 2023-06-24 21:08:09 8bbc2aa feat: port RepresentationTheory.GroupCohomology.Resolution (#5391) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/RepresentationTheory/GroupCohomology/Resolution.lean + def GroupCohomology.Resolution.actionDiagonalSucc + theorem GroupCohomology.Resolution.actionDiagonalSucc_hom_apply + theorem GroupCohomology.Resolution.actionDiagonalSucc_inv_apply + def GroupCohomology.Resolution.compForgetAugmentedIso + def GroupCohomology.Resolution.d + theorem GroupCohomology.Resolution.d_comp_ε + theorem GroupCohomology.Resolution.d_eq + theorem GroupCohomology.Resolution.d_of + def GroupCohomology.Resolution.diagonalSucc + theorem GroupCohomology.Resolution.diagonalSucc_hom_single + theorem GroupCohomology.Resolution.diagonalSucc_inv_single_left + theorem GroupCohomology.Resolution.diagonalSucc_inv_single_right + theorem GroupCohomology.Resolution.diagonalSucc_inv_single_single + def GroupCohomology.Resolution.forget₂ToModuleCat + def GroupCohomology.Resolution.forget₂ToModuleCatHomotopyEquiv + theorem GroupCohomology.Resolution.forget₂ToModuleCatHomotopyEquiv_f_0_eq + def GroupCohomology.Resolution.ofMulActionBasis + def GroupCohomology.Resolution.ofMulActionBasisAux + theorem GroupCohomology.Resolution.ofMulAction_free + theorem GroupCohomology.Resolution.quasiIsoOfForget₂εToSingle₀ + def GroupCohomology.Resolution.xIso + theorem GroupCohomology.Resolution.x_projective + def GroupCohomology.Resolution.ε + def GroupCohomology.Resolution.εToSingle₀ + theorem GroupCohomology.Resolution.εToSingle₀_comp_eq + def GroupCohomology.extIso + def GroupCohomology.projectiveResolution + def GroupCohomology.resolution + theorem Rep.diagonalHomEquiv_apply + theorem Rep.diagonalHomEquiv_symm_apply + theorem Rep.diagonalHomEquiv_symm_partialProd_succ + def classifyingSpaceUniversalCover.cechNerveTerminalFromIso + def classifyingSpaceUniversalCover.cechNerveTerminalFromIsoCompForget + def classifyingSpaceUniversalCover.compForgetAugmented.toModule + def classifyingSpaceUniversalCover.compForgetAugmented + def classifyingSpaceUniversalCover.extraDegeneracyAugmentedCechNerve + def classifyingSpaceUniversalCover.extraDegeneracyCompForgetAugmented + def classifyingSpaceUniversalCover.extraDegeneracyCompForgetAugmentedToModule + def classifyingSpaceUniversalCover 2023-06-24 19:58:34 9b2bcfc feat: port NumberTheory.Cyclotomic.Gal (#5447) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/NumberTheory/Cyclotomic/Gal.lean + theorem IsCyclotomicExtension.fromZetaAut_spec + theorem IsPrimitiveRoot.autToPow_injective 2023-06-24 19:46:26 f272aa0 feat: port Geometry.Manifold.VectorBundle.Tangent (#5448) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Analysis/Calculus/FDeriv/Basic.lean Modified Mathlib/Data/Bundle.lean Modified Mathlib/Geometry/Manifold/ChartedSpace.lean + theorem ModelProd.ext Added Mathlib/Geometry/Manifold/VectorBundle/Tangent.lean + theorem TangentBundle.chartAt_toLocalEquiv + theorem TangentBundle.coe_chartAt_fst + theorem TangentBundle.coe_chartAt_symm_fst + theorem TangentBundle.continuousLinearMapAt_model_space + theorem TangentBundle.coordChange_model_space + theorem TangentBundle.mem_chart_source_iff + theorem TangentBundle.mem_chart_target_iff + theorem TangentBundle.symmL_model_space + theorem TangentBundle.trivializationAt_apply + theorem TangentBundle.trivializationAt_baseSet + theorem TangentBundle.trivializationAt_continuousLinearMapAt + theorem TangentBundle.trivializationAt_eq_localTriv + theorem TangentBundle.trivializationAt_fst + theorem TangentBundle.trivializationAt_source + theorem TangentBundle.trivializationAt_symmL + theorem TangentBundle.trivializationAt_target + def TangentBundle + def TangentSpace + theorem contDiffOn_fderiv_coord_change + theorem inCoordinates_tangent_bundle_core_model_space + def inTangentCoordinates + theorem inTangentCoordinates_eq + theorem inTangentCoordinates_model_space + def tangentBundleCore + theorem tangentBundleCore_baseSet + theorem tangentBundleCore_coordChange_achart + theorem tangentBundleCore_coordChange_model_space + def tangentBundleModelSpaceHomeomorph + theorem tangentBundleModelSpaceHomeomorph_coe + theorem tangentBundleModelSpaceHomeomorph_coe_symm + theorem tangentBundle_model_space_chartAt + theorem tangentBundle_model_space_coe_chartAt + theorem tangentBundle_model_space_coe_chartAt_symm Modified Mathlib/Topology/FiberBundle/Basic.lean Modified Mathlib/Topology/VectorBundle/Basic.lean 2023-06-24 19:21:42 2363852 feat: port Geometry.Manifold.Algebra.LieGroup (#5439) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Geometry/Manifold/Algebra/LieGroup.lean + theorem ContMDiff.div + theorem ContMDiff.inv + theorem ContMDiffAt.div + theorem ContMDiffAt.inv + theorem ContMDiffOn.div + theorem ContMDiffOn.inv + theorem ContMDiffWithinAt.div + theorem ContMDiffWithinAt.inv + theorem smooth_inv + theorem topologicalGroup_of_lieGroup 2023-06-24 19:08:48 21fb5ac feat: port Archive.Wiedijk100Theorems.AbelRuffini (#5457) ESTIMATED CHANGES Modified Archive.lean Added Archive/Wiedijk100Theorems/AbelRuffini.lean + theorem AbelRuffini.coeff_five_Phi + theorem AbelRuffini.coeff_zero_Phi + theorem AbelRuffini.complex_roots_Phi + theorem AbelRuffini.degree_Phi + theorem AbelRuffini.exists_not_solvable_by_rad + theorem AbelRuffini.gal_Phi + theorem AbelRuffini.irreducible_Phi + theorem AbelRuffini.leadingCoeff_Phi + theorem AbelRuffini.map_Phi + theorem AbelRuffini.monic_Phi + theorem AbelRuffini.natDegree_Phi + theorem AbelRuffini.not_solvable_by_rad' + theorem AbelRuffini.not_solvable_by_rad + theorem AbelRuffini.real_roots_Phi_ge + theorem AbelRuffini.real_roots_Phi_ge_aux + theorem AbelRuffini.real_roots_Phi_le 2023-06-24 19:08:47 68a3466 feat: port Geometry.Manifold.VectorBundle.Pullback (#5451) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Geometry/Manifold/VectorBundle/Pullback.lean 2023-06-24 18:53:50 fab65d8 feat: port NumberTheory.NumberField.ClassNumber (#5456) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/NumberTheory/NumberField/ClassNumber.lean + theorem NumberField.classNumber_eq_one_iff + theorem Rat.classNumber_eq 2023-06-24 18:53:48 1c690d8 feat: port NumberTheory.ClassNumber.FunctionField (#5455) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/NumberTheory/ClassNumber/FunctionField.lean + theorem FunctionField.classNumber_eq_one_iff 2023-06-24 18:07:48 ff656fa chore: tidy various files (#5449) ESTIMATED CHANGES Modified Archive/Wiedijk100Theorems/AscendingDescendingSequences.lean Modified Mathlib/Algebra/Category/Mon/FilteredColimits.lean Modified Mathlib/Algebra/GCDMonoid/Basic.lean Modified Mathlib/Analysis/Calculus/BumpFunctionFindim.lean Modified Mathlib/Analysis/LocallyConvex/WithSeminorms.lean Modified Mathlib/Analysis/SpecialFunctions/Gamma/Basic.lean Modified Mathlib/Combinatorics/SimpleGraph/Ends/Defs.lean Modified Mathlib/Data/Nat/Factorization/Basic.lean Modified Mathlib/Data/Nat/PartENat.lean Modified Mathlib/FieldTheory/Finite/GaloisField.lean + theorem GaloisField.splits_X_pow_card_sub_X - theorem GaloisField.splits_x_pow_card_sub_x - theorem GaloisField.splits_zMod_x_pow_sub_x + theorem GaloisField.splits_zmod_X_pow_sub_X Modified Mathlib/FieldTheory/Minpoly/IsIntegrallyClosed.lean + theorem IsIntegrallyClosed.minpoly.unique - theorem minpoly.IsIntegrallyClosed.Minpoly.unique Modified Mathlib/GroupTheory/OrderOfElement.lean Modified Mathlib/LinearAlgebra/CliffordAlgebra/Grading.lean Modified Mathlib/MeasureTheory/Measure/MeasureSpace.lean Modified Mathlib/NumberTheory/ADEInequality.lean Modified Mathlib/NumberTheory/ClassNumber/Finite.lean Modified Mathlib/NumberTheory/Cyclotomic/Basic.lean + theorem IsCyclotomicExtension.neZero' - theorem IsCyclotomicExtension.ne_zero' Modified Mathlib/NumberTheory/Cyclotomic/Discriminant.lean Modified Mathlib/NumberTheory/Cyclotomic/PrimitiveRoots.lean Modified Mathlib/NumberTheory/LegendreSymbol/Basic.lean Modified Mathlib/NumberTheory/NumberField/Embeddings.lean Modified Mathlib/Probability/Process/Filtration.lean Modified Mathlib/RingTheory/Ideal/Norm.lean Modified Mathlib/RingTheory/Norm.lean Modified Mathlib/RingTheory/RootsOfUnity/Basic.lean + theorem IsPrimitiveRoot.neZero' - theorem IsPrimitiveRoot.ne_zero' Modified Mathlib/RingTheory/SimpleModule.lean Modified Mathlib/Topology/MetricSpace/MetrizableUniformity.lean Modified Mathlib/Topology/Order/Basic.lean Modified Mathlib/Topology/Perfect.lean 2023-06-24 17:10:12 177ae4e feat: relate List.mapAccumr to List.foldr (#5390) Add lemmas that rewrite an application of `List.mapAccumr` or `List.mapAccumr_2` into an application of `List.foldr` ESTIMATED CHANGES Modified Mathlib/Data/List/Lemmas.lean + theorem List.mapAccumr_eq_foldr + theorem List.mapAccumr₂_eq_foldr 2023-06-24 15:15:32 8743888 feat: port Geometry.Manifold.VectorBundle.Basic (#5444) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Geometry/Manifold/ChartedSpace.lean + theorem chartAt_comp Added Mathlib/Geometry/Manifold/VectorBundle/Basic.lean + theorem Bundle.contMDiffAt_proj + theorem Bundle.contMDiffAt_section + theorem Bundle.contMDiffAt_totalSpace + theorem Bundle.contMDiffOn_proj + theorem Bundle.contMDiffWithinAt_proj + theorem Bundle.contMDiffWithinAt_totalSpace + theorem Bundle.contMDiff_proj + theorem Bundle.smoothAt_proj + theorem Bundle.smoothOn_proj + theorem Bundle.smoothWithinAt_proj + theorem Bundle.smooth_proj + theorem Bundle.smooth_zeroSection + theorem FiberBundle.chartedSpace'_chartAt + theorem FiberBundle.chartedSpace_chartAt + theorem FiberBundle.chartedSpace_chartAt_symm_fst + theorem VectorBundleCore.smoothOn_coordChange + theorem VectorPrebundle.mk_smoothCoordChange + theorem VectorPrebundle.smoothCoordChange_apply + theorem VectorPrebundle.smoothOn_smoothCoordChange + theorem VectorPrebundle.smoothVectorBundle Modified Mathlib/Topology/FiberBundle/Basic.lean Modified Mathlib/Topology/VectorBundle/Basic.lean + theorem VectorPrebundle.toVectorBundle - theorem VectorPrebundle.to_vectorBundle 2023-06-24 15:15:31 392ed75 feat: port Geometry.Manifold.Algebra.Monoid (#5438) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Geometry/Manifold/Algebra/Monoid.lean + theorem ContMDiff.mul + theorem ContMDiffOn.mul + theorem ContMDiffWithinAt.mul + theorem L_apply + theorem L_mul + theorem R_apply + theorem R_mul + structure SmoothAddMonoidMorphism + structure SmoothMonoidMorphism + theorem contMDiffAt_finset_prod' + theorem contMDiffAt_finset_prod + theorem contMDiffOn_finset_prod' + theorem contMDiffOn_finset_prod + theorem contMDiffWithinAt_finset_prod' + theorem contMDiffWithinAt_finset_prod + theorem contMDiff_finprod + theorem contMDiff_finprod_cond + theorem contMDiff_finset_prod' + theorem contMDiff_finset_prod + theorem continuousMul_of_smooth + theorem smoothAt_finset_prod' + theorem smoothAt_finset_prod + def smoothLeftMul + theorem smoothLeftMul_one + theorem smoothOn_finset_prod' + theorem smoothOn_finset_prod + def smoothRightMul + theorem smoothRightMul_one + theorem smoothWithinAt_finset_prod' + theorem smoothWithinAt_finset_prod + theorem smooth_finprod + theorem smooth_finprod_cond + theorem smooth_finset_prod' + theorem smooth_finset_prod + theorem smooth_mul + theorem smooth_mul_left + theorem smooth_mul_right + theorem smooth_pow 2023-06-24 15:15:30 0e58cca feat: port NumberTheory.ClassNumber.Finite (#5337) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/NumberTheory/ClassNumber/Finite.lean + theorem ClassGroup.exists_mem_finsetApprox + theorem ClassGroup.exists_mem_finset_approx' + theorem ClassGroup.exists_min + theorem ClassGroup.exists_mk0_eq_mk0 + theorem ClassGroup.finsetApprox.zero_not_mem + theorem ClassGroup.mem_finsetApprox + theorem ClassGroup.mkMMem_surjective + theorem ClassGroup.ne_bot_of_prod_finsetApprox_mem + theorem ClassGroup.normBound_pos + theorem ClassGroup.norm_le + theorem ClassGroup.norm_lt + theorem ClassGroup.prod_finsetApprox_ne_zero 2023-06-24 15:03:01 4646748 feat: port FieldTheory.AbelRuffini (#5424) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/FieldTheory/AbelRuffini.lean + inductive IsSolvableByRad + theorem gal_C_isSolvable + theorem gal_X_isSolvable + theorem gal_X_pow_isSolvable + theorem gal_X_pow_sub_C_isSolvable + theorem gal_X_pow_sub_C_isSolvable_aux + theorem gal_X_pow_sub_one_isSolvable + theorem gal_X_sub_C_isSolvable + theorem gal_isSolvable_of_splits + theorem gal_isSolvable_tower + theorem gal_mul_isSolvable + theorem gal_one_isSolvable + theorem gal_prod_isSolvable + theorem gal_zero_isSolvable + def solvableByRad.P + theorem solvableByRad.induction1 + theorem solvableByRad.induction2 + theorem solvableByRad.induction3 + theorem solvableByRad.induction + theorem solvableByRad.isIntegral + theorem solvableByRad.isSolvable' + theorem solvableByRad.isSolvable + def solvableByRad + theorem splits_X_pow_sub_one_of_X_pow_sub_C 2023-06-24 12:17:47 8b9210b feat: port LinearAlgebra.CliffordAlgebra.Fold (#5406) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/LinearAlgebra/CliffordAlgebra/Fold.lean + def CliffordAlgebra.foldl + theorem CliffordAlgebra.foldl_algebraMap + theorem CliffordAlgebra.foldl_mul + theorem CliffordAlgebra.foldl_one + theorem CliffordAlgebra.foldl_prod_map_ι + theorem CliffordAlgebra.foldl_reverse + theorem CliffordAlgebra.foldl_ι + def CliffordAlgebra.foldr' + def CliffordAlgebra.foldr'Aux + theorem CliffordAlgebra.foldr'Aux_apply_apply + theorem CliffordAlgebra.foldr'Aux_foldr'Aux + theorem CliffordAlgebra.foldr'_algebraMap + theorem CliffordAlgebra.foldr'_ι + theorem CliffordAlgebra.foldr'_ι_mul + def CliffordAlgebra.foldr + theorem CliffordAlgebra.foldr_algebraMap + theorem CliffordAlgebra.foldr_mul + theorem CliffordAlgebra.foldr_one + theorem CliffordAlgebra.foldr_prod_map_ι + theorem CliffordAlgebra.foldr_reverse + theorem CliffordAlgebra.foldr_ι + theorem CliffordAlgebra.left_induction + theorem CliffordAlgebra.right_induction 2023-06-24 09:34:50 8b49086 feat: port LinearAlgebra.CliffordAlgebra.Equivs (#5443) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/LinearAlgebra/CliffordAlgebra/Equivs.lean + def CliffordAlgebraComplex.Q + theorem CliffordAlgebraComplex.Q_apply + def CliffordAlgebraComplex.ofComplex + theorem CliffordAlgebraComplex.ofComplex_I + theorem CliffordAlgebraComplex.ofComplex_comp_toComplex + theorem CliffordAlgebraComplex.ofComplex_conj + theorem CliffordAlgebraComplex.ofComplex_toComplex + theorem CliffordAlgebraComplex.reverse_apply + theorem CliffordAlgebraComplex.reverse_eq_id + def CliffordAlgebraComplex.toComplex + theorem CliffordAlgebraComplex.toComplex_comp_ofComplex + theorem CliffordAlgebraComplex.toComplex_involute + theorem CliffordAlgebraComplex.toComplex_ofComplex + theorem CliffordAlgebraComplex.toComplex_ι + theorem CliffordAlgebraDualNumber.equiv_symm_eps + theorem CliffordAlgebraDualNumber.equiv_ι + theorem CliffordAlgebraDualNumber.ι_mul_ι + def CliffordAlgebraQuaternion.Q + theorem CliffordAlgebraQuaternion.Q_apply + def CliffordAlgebraQuaternion.ofQuaternion + theorem CliffordAlgebraQuaternion.ofQuaternion_comp_toQuaternion + theorem CliffordAlgebraQuaternion.ofQuaternion_mk + theorem CliffordAlgebraQuaternion.ofQuaternion_star + theorem CliffordAlgebraQuaternion.ofQuaternion_toQuaternion + def CliffordAlgebraQuaternion.quaternionBasis + def CliffordAlgebraQuaternion.toQuaternion + theorem CliffordAlgebraQuaternion.toQuaternion_comp_ofQuaternion + theorem CliffordAlgebraQuaternion.toQuaternion_ofQuaternion + theorem CliffordAlgebraQuaternion.toQuaternion_star + theorem CliffordAlgebraQuaternion.toQuaternion_ι + theorem CliffordAlgebraRing.involute_eq_id + theorem CliffordAlgebraRing.reverse_apply + theorem CliffordAlgebraRing.reverse_eq_id + theorem CliffordAlgebraRing.ι_eq_zero 2023-06-24 09:25:09 d254056 feat: port Archive.Sensitivity (#5322) ESTIMATED CHANGES Modified Archive.lean Added Archive/Sensitivity.lean + theorem Sensitivity.Q.adj_iff_proj_adj + theorem Sensitivity.Q.adj_iff_proj_eq + theorem Sensitivity.Q.adjacent.symm + def Sensitivity.Q.adjacent + theorem Sensitivity.Q.card + theorem Sensitivity.Q.ext + theorem Sensitivity.Q.not_adjacent_zero + theorem Sensitivity.Q.succ_n_eq + def Sensitivity.Q + theorem Sensitivity.V.ext + def Sensitivity.V + theorem Sensitivity.dim_V + theorem Sensitivity.dualBases_e_ε + theorem Sensitivity.duality + theorem Sensitivity.e_zero_apply + theorem Sensitivity.epsilon_total + theorem Sensitivity.exists_eigenvalue + theorem Sensitivity.f_image_g + theorem Sensitivity.f_matrix + theorem Sensitivity.f_squared + theorem Sensitivity.f_succ_apply + theorem Sensitivity.f_zero + theorem Sensitivity.finrank_V + theorem Sensitivity.g_apply + theorem Sensitivity.g_injective + theorem Sensitivity.huang_degree_theorem + def Sensitivity.π 2023-06-24 07:45:42 5f4d5df feat: port Topology.MetricSpace.Dilation (#5442) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Topology/MetricSpace/Dilation.lean + theorem Dilation.antilipschitz + theorem Dilation.cancel_left + theorem Dilation.cancel_right + theorem Dilation.coe_comp + theorem Dilation.coe_id + theorem Dilation.coe_mk + theorem Dilation.coe_mkOfDistEq + theorem Dilation.coe_mkOfNNDistEq + theorem Dilation.coe_mul + theorem Dilation.coe_one + def Dilation.comp + theorem Dilation.comp_apply + theorem Dilation.comp_assoc + theorem Dilation.comp_continuousOn_iff + theorem Dilation.comp_continuous_iff + theorem Dilation.comp_id + theorem Dilation.comp_ratio + theorem Dilation.congr_arg + theorem Dilation.congr_fun + theorem Dilation.copy_eq_self + theorem Dilation.diam_image + theorem Dilation.diam_range + theorem Dilation.dist_eq + theorem Dilation.ediam_image + theorem Dilation.ediam_range + theorem Dilation.edist_eq + theorem Dilation.ext + theorem Dilation.ext_iff + theorem Dilation.id_comp + theorem Dilation.id_ratio + theorem Dilation.lipschitz + theorem Dilation.mapsTo_ball + theorem Dilation.mapsTo_closedBall + theorem Dilation.mapsTo_emetric_ball + theorem Dilation.mapsTo_emetric_closedBall + theorem Dilation.mapsTo_sphere + def Dilation.mkOfDistEq + def Dilation.mkOfNNDistEq + theorem Dilation.mk_coe + theorem Dilation.mk_coe_of_dist_eq + theorem Dilation.mk_coe_of_nndist_eq + theorem Dilation.mul_def + theorem Dilation.nndist_eq + theorem Dilation.one_def + def Dilation.ratio + theorem Dilation.ratio_ne_zero + theorem Dilation.ratio_pos + theorem Dilation.ratio_unique + theorem Dilation.ratio_unique_of_dist_ne_zero + theorem Dilation.ratio_unique_of_nndist_ne_zero + theorem Dilation.tendsto_nhds_iff + theorem Dilation.toContinuous + theorem Dilation.toFun_eq_coe + structure Dilation 2023-06-24 07:10:49 4df50f9 feat: port NumberTheory.Cyclotomic.Rat (#5417) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/NumberTheory/Cyclotomic/Rat.lean + theorem IsCyclotomicExtension.Rat.cyclotomicRing_isIntegralClosure_of_prime + theorem IsCyclotomicExtension.Rat.cyclotomicRing_isIntegralClosure_of_prime_pow + theorem IsCyclotomicExtension.Rat.discr_odd_prime' + theorem IsCyclotomicExtension.Rat.discr_prime_pow' + theorem IsCyclotomicExtension.Rat.discr_prime_pow_eq_unit_mul_pow' + theorem IsCyclotomicExtension.Rat.discr_prime_pow_ne_two' + theorem IsCyclotomicExtension.Rat.isIntegralClosure_adjoin_singleton_of_prime + theorem IsCyclotomicExtension.Rat.isIntegralClosure_adjoin_singleton_of_prime_pow + theorem IsPrimitiveRoot.integralPowerBasis'_gen + theorem IsPrimitiveRoot.integralPowerBasis_dim + theorem IsPrimitiveRoot.integralPowerBasis_gen + theorem IsPrimitiveRoot.power_basis_int'_dim + theorem IsPrimitiveRoot.subOneIntegralPowerBasis'_gen + theorem IsPrimitiveRoot.subOneIntegralPowerBasis_gen 2023-06-24 06:25:49 08fc07c feat: add `MeasureTheory.L1.dist_eq_integral_dist` (#5432) ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Integral/Bochner.lean + theorem MeasureTheory.L1.dist_eq_integral_dist 2023-06-24 05:50:09 83bcf1b feat: port Geometry.Manifold.ContMdiffMap (#5436) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Geometry/Manifold/ContMDiffMap.lean + theorem ContMDiffMap.coeFn_mk + theorem ContMDiffMap.coe_injective + def ContMDiffMap.comp + theorem ContMDiffMap.comp_apply + def ContMDiffMap.const + theorem ContMDiffMap.ext + def ContMDiffMap.fst + def ContMDiffMap.prodMk + def ContMDiffMap.snd + def ContMDiffMap + def SmoothMap Modified Mathlib/Topology/ContinuousFunction/Basic.lean + def toContinuousMap Modified Mathlib/Topology/ContinuousFunction/Ideals.lean Modified Mathlib/Topology/ContinuousFunction/ZeroAtInfty.lean 2023-06-24 05:35:43 50336a5 feat: port Geometry.Manifold.VectorBundle.FiberwiseLinear (#5440) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Geometry/Manifold/VectorBundle/FiberwiseLinear.lean + def FiberwiseLinear.localHomeomorph + theorem FiberwiseLinear.source_trans_localHomeomorph + theorem FiberwiseLinear.target_trans_localHomeomorph + theorem FiberwiseLinear.trans_localHomeomorph_apply + theorem SmoothFiberwiseLinear.locality_aux₁ + theorem SmoothFiberwiseLinear.locality_aux₂ + theorem mem_smoothFiberwiseLinear_iff + def smoothFiberwiseLinear 2023-06-24 05:35:42 2daf260 chore: don't use `simps` (#5423) `simps` unfolds too much and it produces useless declarations. These are those present in mathlib3. ESTIMATED CHANGES Modified Mathlib/FieldTheory/Minpoly/IsIntegrallyClosed.lean + theorem Algebra.adjoin.powerBasis'_dim + theorem Algebra.adjoin.powerBasis'_gen + theorem PowerBasis.ofGenMemAdjoin'_dim + theorem PowerBasis.ofGenMemAdjoin'_gen 2023-06-24 05:23:12 60d0908 feat: port Geometry.Manifold.BumpFunction (#5437) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Geometry/Manifold/BumpFunction.lean + theorem SmoothBumpFunction.ball_inter_range_eq_ball_inter_target + theorem SmoothBumpFunction.ball_subset + theorem SmoothBumpFunction.c_mem_support + theorem SmoothBumpFunction.coe_def + theorem SmoothBumpFunction.eqOn_source + theorem SmoothBumpFunction.eq_one + theorem SmoothBumpFunction.eventuallyEq_of_mem_source + theorem SmoothBumpFunction.eventuallyEq_one + theorem SmoothBumpFunction.eventuallyEq_one_of_dist_lt + theorem SmoothBumpFunction.exists_r_pos_lt_subset_ball + theorem SmoothBumpFunction.image_eq_inter_preimage_of_subset_support + theorem SmoothBumpFunction.isClosed_image_of_isClosed + theorem SmoothBumpFunction.isClosed_symm_image_closedBall + theorem SmoothBumpFunction.isCompact_symm_image_closedBall + theorem SmoothBumpFunction.isOpen_support + theorem SmoothBumpFunction.le_one + theorem SmoothBumpFunction.mem_Icc + theorem SmoothBumpFunction.nhdsWithin_range_basis + theorem SmoothBumpFunction.nhds_basis_support + theorem SmoothBumpFunction.nhds_basis_tsupport + theorem SmoothBumpFunction.nonempty_support + theorem SmoothBumpFunction.nonneg + theorem SmoothBumpFunction.one_of_dist_le + theorem SmoothBumpFunction.rOut_pos + theorem SmoothBumpFunction.smooth_smul + theorem SmoothBumpFunction.support_eq_inter_preimage + theorem SmoothBumpFunction.support_eq_symm_image + theorem SmoothBumpFunction.support_mem_nhds + theorem SmoothBumpFunction.support_subset_source + theorem SmoothBumpFunction.support_updateRIn + def SmoothBumpFunction.toFun + theorem SmoothBumpFunction.tsupport_mem_nhds + theorem SmoothBumpFunction.tsupport_subset_chartAt_source + theorem SmoothBumpFunction.tsupport_subset_extChartAt_source + theorem SmoothBumpFunction.tsupport_subset_symm_image_closedBall + def SmoothBumpFunction.updateRIn + structure SmoothBumpFunction 2023-06-24 03:33:52 ab70224 feat: add `Unitization.starLift` (#5102) A `NonUnitalStarAlgHom` from `A` to `C` (over a ring `R`) lifts uniquely to a `StarAlgHom` from `Unitization R A` to `C`. ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/Unitization.lean + theorem NonUnitalAlgHom.toAlgHom_zero + theorem Unitization.algHom_ext'' +/- theorem Unitization.algHom_ext + theorem Unitization.algebraMap_eq_inlRingHom - theorem Unitization.algebraMap_eq_inl_hom + def Unitization.inrNonUnitalStarAlgHom + theorem Unitization.starAlgHom_ext + def Unitization.starLift + theorem Unitization.starLift_symm_apply_apply Modified Mathlib/Algebra/Star/StarAlgHom.lean + theorem NonUnitalStarAlgHom.coe_mk' + theorem StarAlgHom.coe_mk' 2023-06-24 01:01:11 750b753 chore: golf, add a docstring (#5431) ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Function/ContinuousMapDense.lean 2023-06-24 01:01:10 637e048 chore: fix a typo in a docstring (#5430) ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Measure/Regular.lean 2023-06-24 01:01:09 ceb42c5 chore: remove legacy `termination_by'` (#5426) This adds a couple of `WellFoundedRelation` instances, like for example `WellFoundedRelation (WithBot Nat)`. Longer-term, we should probably add a `WellFoundedOrder` class for types with a well-founded less-than relation and a `[WellFoundOrder α] : WellFoundedRelation α` instance (or maybe just `[LT α] [IsWellFounded fun a b : α => a < b] : WellFoundedRelation α`). ESTIMATED CHANGES Modified Mathlib/Algebra/EuclideanDomain/Defs.lean +/- theorem EuclideanDomain.GCD.induction +/- def EuclideanDomain.gcd +/- def EuclideanDomain.xgcdAux Modified Mathlib/Data/Finsupp/Multiset.lean Modified Mathlib/Data/List/Basic.lean Modified Mathlib/Data/Nat/Cast/WithTop.lean Modified Mathlib/Data/Nat/Squarefree.lean +/- theorem Nat.minSqFacAux_has_prop Modified Mathlib/Data/Nat/WithBot.lean Modified Mathlib/Data/Polynomial/Inductions.lean Modified Mathlib/GroupTheory/Perm/Cycle/Basic.lean +/- theorem Equiv.Perm.IsCycle.sign Modified Mathlib/RingTheory/PowerSeries/Basic.lean Modified Mathlib/SetTheory/Lists.lean Modified Mathlib/SetTheory/Ordinal/NaturalOps.lean +/- theorem Ordinal.nadd_assoc Modified Mathlib/SetTheory/ZFC/Basic.lean +/- def ZFSet.Hereditarily 2023-06-24 01:01:08 f87a803 feat: port Geometry.Manifold.ContMdiff (#4656) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Geometry/Manifold/ContMDiff.lean + theorem ContDiff.comp_contMDiff + theorem ContDiffAt.comp_contMDiffAt + theorem ContDiffWithinAt.comp_contMDiffWithinAt + def ContDiffWithinAtProp + theorem ContMDiff.clm_apply + theorem ContMDiff.clm_comp + theorem ContMDiff.clm_prodMap + theorem ContMDiff.comp + theorem ContMDiff.comp_contMDiffOn + theorem ContMDiff.contMDiffAt + theorem ContMDiff.contMDiffOn + theorem ContMDiff.continuous + theorem ContMDiff.fst + theorem ContMDiff.of_le + theorem ContMDiff.of_succ + theorem ContMDiff.prod_map + theorem ContMDiff.prod_mk_space + theorem ContMDiff.smooth + theorem ContMDiff.smul + theorem ContMDiff.snd + def ContMDiff + theorem ContMDiffAt.clm_apply + theorem ContMDiffAt.clm_comp + theorem ContMDiffAt.clm_prodMap + theorem ContMDiffAt.comp_contMDiffWithinAt + theorem ContMDiffAt.comp_of_eq + theorem ContMDiffAt.congr_of_eventuallyEq + theorem ContMDiffAt.contMDiffWithinAt + theorem ContMDiffAt.continuousAt + theorem ContMDiffAt.fst + theorem ContMDiffAt.of_le + theorem ContMDiffAt.of_succ + theorem ContMDiffAt.prod_map' + theorem ContMDiffAt.prod_map + theorem ContMDiffAt.smoothAt + theorem ContMDiffAt.snd + def ContMDiffAt + theorem ContMDiffOn.clm_apply + theorem ContMDiffOn.clm_comp + theorem ContMDiffOn.clm_prodMap + theorem ContMDiffOn.comp' + theorem ContMDiffOn.comp + theorem ContMDiffOn.comp_contMDiff + theorem ContMDiffOn.congr + theorem ContMDiffOn.contMDiffAt + theorem ContMDiffOn.continuousOn + theorem ContMDiffOn.mono + theorem ContMDiffOn.of_le + theorem ContMDiffOn.of_succ + theorem ContMDiffOn.prod_map + theorem ContMDiffOn.prod_mk + theorem ContMDiffOn.prod_mk_space + theorem ContMDiffOn.smoothOn + theorem ContMDiffOn.smul + def ContMDiffOn + theorem ContMDiffWithinAt.clm_apply + theorem ContMDiffWithinAt.clm_comp + theorem ContMDiffWithinAt.clm_prodMap + theorem ContMDiffWithinAt.comp' + theorem ContMDiffWithinAt.comp + theorem ContMDiffWithinAt.comp_of_eq + theorem ContMDiffWithinAt.congr + theorem ContMDiffWithinAt.congr_of_eventuallyEq + theorem ContMDiffWithinAt.contMDiffAt + theorem ContMDiffWithinAt.continuousWithinAt + theorem ContMDiffWithinAt.fst + theorem ContMDiffWithinAt.mono + theorem ContMDiffWithinAt.mono_of_mem + theorem ContMDiffWithinAt.of_le + theorem ContMDiffWithinAt.of_succ + theorem ContMDiffWithinAt.prod_map' + theorem ContMDiffWithinAt.prod_map + theorem ContMDiffWithinAt.prod_mk + theorem ContMDiffWithinAt.prod_mk_space + theorem ContMDiffWithinAt.smoothWithinAt + theorem ContMDiffWithinAt.smul + theorem ContMDiffWithinAt.snd + def ContMDiffWithinAt + theorem ContinuousLinearMap.contMDiff + theorem Filter.EventuallyEq.contMDiffAt_iff + theorem Filter.EventuallyEq.contMDiffWithinAt_iff + theorem Smooth.comp_smoothOn + theorem Smooth.contMDiff + theorem Smooth.fst + theorem Smooth.smoothAt + theorem Smooth.smoothOn + theorem Smooth.snd + def Smooth + theorem SmoothAt.comp_smoothWithinAt + theorem SmoothAt.contMDiffAt + theorem SmoothAt.fst + theorem SmoothAt.smoothWithinAt + theorem SmoothAt.snd + def SmoothAt + theorem SmoothOn.comp_smooth + theorem SmoothOn.contMDiffOn + theorem SmoothOn.smoothAt + def SmoothOn + theorem SmoothWithinAt.contMDiffWithinAt + theorem SmoothWithinAt.smoothAt + def SmoothWithinAt + theorem contDiffWithinAtProp_id + theorem contDiffWithinAtProp_mono_of_mem + theorem contDiffWithinAtProp_self + theorem contDiffWithinAtProp_self_source + theorem contDiffWithinAtProp_self_target + theorem contDiffWithinAt_localInvariantProp + theorem contMDiffAt_const + theorem contMDiffAt_extChartAt' + theorem contMDiffAt_extChartAt + theorem contMDiffAt_extend + theorem contMDiffAt_fst + theorem contMDiffAt_id + theorem contMDiffAt_iff + theorem contMDiffAt_iff_contDiffAt + theorem contMDiffAt_iff_contMDiffAt_nhds + theorem contMDiffAt_iff_contMDiffOn_nhds + theorem contMDiffAt_iff_of_mem_source + theorem contMDiffAt_iff_source_of_mem_source + theorem contMDiffAt_iff_target + theorem contMDiffAt_iff_target_of_mem_source + theorem contMDiffAt_of_mem_maximalAtlas + theorem contMDiffAt_one + theorem contMDiffAt_pi_space + theorem contMDiffAt_prod_iff + theorem contMDiffAt_snd + theorem contMDiffAt_symm_of_mem_maximalAtlas + theorem contMDiffAt_top + theorem contMDiffOn_chart + theorem contMDiffOn_chart_symm + theorem contMDiffOn_congr + theorem contMDiffOn_const + theorem contMDiffOn_extChartAt + theorem contMDiffOn_extChartAt_symm + theorem contMDiffOn_extend_symm + theorem contMDiffOn_fst + theorem contMDiffOn_id + theorem contMDiffOn_iff + theorem contMDiffOn_iff_contDiffOn + theorem contMDiffOn_iff_of_mem_maximalAtlas' + theorem contMDiffOn_iff_of_mem_maximalAtlas + theorem contMDiffOn_iff_of_subset_source' + theorem contMDiffOn_iff_of_subset_source + theorem contMDiffOn_iff_source_of_mem_maximalAtlas + theorem contMDiffOn_iff_target + theorem contMDiffOn_model_symm + theorem contMDiffOn_of_locally_contMDiffOn + theorem contMDiffOn_of_mem_contDiffGroupoid + theorem contMDiffOn_of_mem_maximalAtlas + theorem contMDiffOn_one + theorem contMDiffOn_pi_space + theorem contMDiffOn_snd + theorem contMDiffOn_symm_of_mem_maximalAtlas + theorem contMDiffOn_top + theorem contMDiffOn_univ + theorem contMDiffWithinAt_congr + theorem contMDiffWithinAt_congr_nhds + theorem contMDiffWithinAt_const + theorem contMDiffWithinAt_fst + theorem contMDiffWithinAt_id + theorem contMDiffWithinAt_iff' + theorem contMDiffWithinAt_iff + theorem contMDiffWithinAt_iff_contDiffWithinAt + theorem contMDiffWithinAt_iff_contMDiffOn_nhds + theorem contMDiffWithinAt_iff_image + theorem contMDiffWithinAt_iff_nat + theorem contMDiffWithinAt_iff_of_mem_maximalAtlas + theorem contMDiffWithinAt_iff_of_mem_source' + theorem contMDiffWithinAt_iff_of_mem_source + theorem contMDiffWithinAt_iff_source_of_mem_maximalAtlas + theorem contMDiffWithinAt_iff_source_of_mem_source + theorem contMDiffWithinAt_iff_target + theorem contMDiffWithinAt_iff_target_of_mem_source + theorem contMDiffWithinAt_insert_self + theorem contMDiffWithinAt_inter' + theorem contMDiffWithinAt_inter + theorem contMDiffWithinAt_one + theorem contMDiffWithinAt_pi_space + theorem contMDiffWithinAt_prod_iff + theorem contMDiffWithinAt_snd + theorem contMDiffWithinAt_top + theorem contMDiffWithinAt_univ + theorem contMDiff_const + theorem contMDiff_fst + theorem contMDiff_id + theorem contMDiff_iff + theorem contMDiff_iff_contDiff + theorem contMDiff_iff_target + theorem contMDiff_inclusion + theorem contMDiff_model + theorem contMDiff_of_locally_contMDiffOn + theorem contMDiff_of_support + theorem contMDiff_one + theorem contMDiff_pi_space + theorem contMDiff_prod_iff + theorem contMDiff_snd + theorem contMDiff_top + theorem isLocalStructomorphOn_contDiffGroupoid_iff + theorem isLocalStructomorphOn_contDiffGroupoid_iff_aux + theorem smoothAt_const + theorem smoothAt_fst + theorem smoothAt_id + theorem smoothAt_iff_target + theorem smoothAt_one + theorem smoothAt_pi_space + theorem smoothAt_prod_iff + theorem smoothAt_snd + theorem smoothOn_const + theorem smoothOn_fst + theorem smoothOn_id + theorem smoothOn_iff + theorem smoothOn_iff_target + theorem smoothOn_one + theorem smoothOn_pi_space + theorem smoothOn_snd + theorem smoothOn_univ + theorem smoothWithinAt_const + theorem smoothWithinAt_fst + theorem smoothWithinAt_id + theorem smoothWithinAt_iff + theorem smoothWithinAt_iff_target + theorem smoothWithinAt_one + theorem smoothWithinAt_pi_space + theorem smoothWithinAt_snd + theorem smoothWithinAt_univ + theorem smooth_const + theorem smooth_fst + theorem smooth_id + theorem smooth_iff + theorem smooth_iff_target + theorem smooth_inclusion + theorem smooth_one + theorem smooth_pi_space + theorem smooth_prod_assoc + theorem smooth_prod_iff + theorem smooth_smul + theorem smooth_snd 2023-06-24 00:51:58 21ebfc7 bug: fix ci after #5396 (#5422) #5396 was a little too simplistic and caused ci not to fail if make build failed, fortunately this was always caught at the next step (build library search cache) anyway but we should restore the correct behaviour ESTIMATED CHANGES Modified .github/workflows/bors.yml Modified .github/workflows/build.yml Modified .github/workflows/build.yml.in Modified .github/workflows/build_fork.yml 2023-06-23 23:23:25 12ec25a fix: stop `simps` from recursing into `PreOpposite` (#5434) Since `mul_opposite` and `add_opposite` were not structures in `mathlib3`, this setup will generate lemmas that are better aligned with `mathlib3`. Suggested by @fpvandoorn on [Zulip](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/simps.20for.20MulOpposite/near/367925344) ESTIMATED CHANGES Modified Mathlib/Tactic/Simps/Basic.lean 2023-06-23 23:13:33 08077c3 feat: supporting lemmas for port of `ContMDiff` (#5428) Instead of fixing a proof "as is", I'm golfing it and moving parts of it to lemmas. ESTIMATED CHANGES Modified Mathlib/Analysis/Calculus/ContDiffDef.lean + theorem contDiffWithinAt_insert_self Modified Mathlib/Geometry/Manifold/SmoothManifoldWithCorners.lean + theorem ContinuousWithinAt.nhdsWithin_extChartAt_symm_preimage_inter_range + theorem LocalHomeomorph.continuousOn_writtenInExtend_iff + theorem LocalHomeomorph.continuousWithinAt_writtenInExtend_iff + theorem LocalHomeomorph.map_extend_nhdsWithin_eq_image_of_subset + theorem LocalHomeomorph.tendsto_extend_comp_iff Modified Mathlib/Topology/ContinuousOn.lean + theorem continuousWithinAt_congr_nhds 2023-06-23 18:07:44 03bb20b feat: port Analysis.Calculus.BumpFunctionFindim (#5389) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/Calculus/BumpFunctionFindim.lean + def ExistsContDiffBumpBase.u + theorem ExistsContDiffBumpBase.u_compact_support + theorem ExistsContDiffBumpBase.u_continuous + theorem ExistsContDiffBumpBase.u_exists + theorem ExistsContDiffBumpBase.u_int_pos + theorem ExistsContDiffBumpBase.u_le_one + theorem ExistsContDiffBumpBase.u_neg + theorem ExistsContDiffBumpBase.u_nonneg + theorem ExistsContDiffBumpBase.u_smooth + theorem ExistsContDiffBumpBase.u_support + def ExistsContDiffBumpBase.w + theorem ExistsContDiffBumpBase.w_compact_support + theorem ExistsContDiffBumpBase.w_def + theorem ExistsContDiffBumpBase.w_integral + theorem ExistsContDiffBumpBase.w_mul_φ_nonneg + theorem ExistsContDiffBumpBase.w_nonneg + theorem ExistsContDiffBumpBase.w_support + def ExistsContDiffBumpBase.y + theorem ExistsContDiffBumpBase.y_eq_one_of_mem_closedBall + theorem ExistsContDiffBumpBase.y_eq_zero_of_not_mem_ball + theorem ExistsContDiffBumpBase.y_le_one + theorem ExistsContDiffBumpBase.y_neg + theorem ExistsContDiffBumpBase.y_nonneg + theorem ExistsContDiffBumpBase.y_pos_of_mem_ball + theorem ExistsContDiffBumpBase.y_smooth + theorem ExistsContDiffBumpBase.y_support + def ExistsContDiffBumpBase.φ + theorem IsOpen.exists_smooth_support_eq + theorem exists_smooth_tsupport_subset 2023-06-23 17:20:56 ba30199 fix: don't change bornology with `PseudoMetricSpace.replaceUniformity` (#5330) This fixes `PseudoMetricSpace.replaceUniformity` so that it no longer silently changes the bornology. Before the fix, the following example fails, but afterwards, it succeeds. ```lean example {α} [U : UniformSpace α] (m : PseudoMetricSpace α) (H : 𝓤[U] = 𝓤[PseudoEMetricSpace.toUniformSpace]) : (PseudoMetricSpace.replaceUniformity m H).toBornology = m.toBornology := rfl ``` ESTIMATED CHANGES Modified Mathlib/Topology/MetricSpace/Basic.lean 2023-06-23 15:27:30 24d5ceb Add shl/shr instances for Bitvec (#5418) Add shl/shr instances for Bitvec ESTIMATED CHANGES Modified Mathlib/Data/Bitvec/Defs.lean 2023-06-23 12:47:52 93488a7 feat: port NumberTheory.NumberField.CanonicalEmbedding (#5414) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/NumberTheory/NumberField/CanonicalEmbedding.lean + theorem NumberField.canonicalEmbedding.apply_at_complex_infinitePlace + theorem NumberField.canonicalEmbedding.apply_at_real_infinitePlace + def NumberField.canonicalEmbedding.equivIntegerLattice + theorem NumberField.canonicalEmbedding.integerLattice.inter_ball_finite + def NumberField.canonicalEmbedding.integerLattice + theorem NumberField.canonicalEmbedding.nnnorm_eq + theorem NumberField.canonicalEmbedding.nontrivial_space + theorem NumberField.canonicalEmbedding.norm_le_iff + theorem NumberField.canonicalEmbedding.space_rank + def NumberField.canonicalEmbedding + theorem NumberField.canonicalEmbedding_injective 2023-06-23 12:17:46 ec5e5e7 chore: use `_root_.` as in mathlib3 (#5420) These are the mathlib3 names. ESTIMATED CHANGES Modified Mathlib/FieldTheory/Minpoly/IsIntegrallyClosed.lean + def Algebra.adjoin.powerBasis' - def minpoly.Algebra.adjoin.powerBasis' Modified Mathlib/NumberTheory/KummerDedekind.lean Modified Mathlib/RingTheory/IsAdjoinRoot.lean 2023-06-23 10:52:37 990ba7e chore: forward-port leanprover-community/mathlib#19175 (#5415) My internet is not too good righty now, so I would appreciate some help making this compile if mathport itself doesn't work. ESTIMATED CHANGES Modified Mathlib/Order/Monotone/Basic.lean 2023-06-23 10:52:35 995c98a feat: add `Function.Injective.smulCommClass` and `Function.Surjective.smulCommClass` (#5377) ESTIMATED CHANGES Modified Mathlib/GroupTheory/GroupAction/Defs.lean + theorem Function.Injective.smulCommClass + theorem Function.Surjective.smulCommClass 2023-06-23 10:52:34 8ab5d57 feat: generalize `continuousOn_prod_of_continuousOn_lipschitz_on` etc (#5308) * It suffices to require continuity in the second argument for the first argument from a dense set. * Rename lemmas to include `lipschitzWith`/`lipschitzWithOn`. ESTIMATED CHANGES Modified Mathlib/Analysis/ODE/PicardLindelof.lean Modified Mathlib/Topology/ContinuousFunction/Bounded.lean Modified Mathlib/Topology/MetricSpace/Lipschitz.lean + theorem LipschitzOnWith.edist_le_mul_of_le + theorem continuousOn_prod_of_continuousOn_lipschitzOnWith - theorem continuousOn_prod_of_continuousOn_lipschitz_on + theorem continuousOn_prod_of_subset_closure_continuousOn_lipschitzOnWith - theorem continuous_prod_of_continuous_lipschitz + theorem continuous_prod_of_continuous_lipschitzWith + theorem continuous_prod_of_dense_continuous_lipschitzWith 2023-06-23 10:52:33 d74c738 feat: port FieldTheory.PolynomialGaloisGroup (#5159) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/FieldTheory/PolynomialGaloisGroup.lean + theorem Polynomial.Gal.card_complex_roots_eq_card_real_add_card_not_gal_inv + theorem Polynomial.Gal.card_of_separable + theorem Polynomial.Gal.ext + def Polynomial.Gal.galActionHom + theorem Polynomial.Gal.galActionHom_bijective_of_prime_degree' + theorem Polynomial.Gal.galActionHom_bijective_of_prime_degree + theorem Polynomial.Gal.galActionHom_injective + theorem Polynomial.Gal.galActionHom_restrict + def Polynomial.Gal.mapRoots + theorem Polynomial.Gal.mapRoots_bijective + theorem Polynomial.Gal.mul_splits_in_splittingField_of_mul + theorem Polynomial.Gal.prime_degree_dvd_card + def Polynomial.Gal.restrict + def Polynomial.Gal.restrictComp + theorem Polynomial.Gal.restrictComp_surjective + def Polynomial.Gal.restrictDvd + theorem Polynomial.Gal.restrictDvd_def + theorem Polynomial.Gal.restrictDvd_surjective + def Polynomial.Gal.restrictProd + theorem Polynomial.Gal.restrictProd_injective + theorem Polynomial.Gal.restrict_smul + theorem Polynomial.Gal.restrict_surjective + def Polynomial.Gal.rootsEquivRoots + theorem Polynomial.Gal.smul_def + theorem Polynomial.Gal.splits_in_splittingField_of_comp + theorem Polynomial.Gal.splits_ℚ_ℂ + def Polynomial.Gal.uniqueGalOfSplits + def Polynomial.Gal Modified Mathlib/FieldTheory/SplittingField/Construction.lean 2023-06-23 09:36:26 eff6c1d feat(Probability/Cdf): cumulative distribution function of a probability measure (#5392) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/MeasureTheory/Constructions/Prod/Basic.lean + theorem MeasureTheory.Measure.fst_prod + theorem MeasureTheory.Measure.snd_prod Added Mathlib/Probability/Cdf.lean + theorem MeasureTheory.Measure.ext_of_cdf + def ProbabilityTheory.cdf + theorem ProbabilityTheory.cdf_eq_toReal + theorem ProbabilityTheory.cdf_le_one + theorem ProbabilityTheory.cdf_nonneg + theorem ProbabilityTheory.measure_cdf + theorem ProbabilityTheory.monotone_cdf + theorem ProbabilityTheory.ofReal_cdf + theorem ProbabilityTheory.tendsto_cdf_atBot + theorem ProbabilityTheory.tendsto_cdf_atTop 2023-06-23 09:36:25 e73b2dc feat: split `AddMonoidHom.distribMulAction` into 3 instances (#5380) Add instances for `ZeroSMulClass` and `DistribSMul` with weaker typeclass assumptions. ESTIMATED CHANGES Modified Mathlib/Algebra/Module/Hom.lean Modified Mathlib/GroupTheory/GroupAction/Defs.lean 2023-06-23 09:36:24 84481d0 feat: define a type synonym for right action on the domain of a function (#5368) Based on [this](https://leanprover.zulipchat.com/#narrow/stream/116395-maths/topic/Action.20on.20functions) discussion on Zulip ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/GroupTheory/GroupAction/DomAct/Basic.lean + def DomMulAct.mk + theorem DomMulAct.mk_inv + theorem DomMulAct.mk_mul + theorem DomMulAct.mk_one + theorem DomMulAct.mk_pow + theorem DomMulAct.mk_smul_addMonoidHom_apply + theorem DomMulAct.mk_smul_monoidHom_apply + theorem DomMulAct.mk_zpow + theorem DomMulAct.smul_addMonoidHom_apply + theorem DomMulAct.smul_apply + theorem DomMulAct.smul_monoidHom_apply + theorem DomMulAct.symm_mk_inv + theorem DomMulAct.symm_mk_mul + theorem DomMulAct.symm_mk_one + theorem DomMulAct.symm_mk_pow + theorem DomMulAct.symm_mk_zpow + def DomMulAct 2023-06-23 09:23:57 e12cc51 feat: port LinearAlgebra.FreeModule.Norm (#5399) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/LinearAlgebra/FreeModule/Norm.lean + theorem associated_norm_prod_smith + theorem finrank_quotient_span_eq_natDegree_norm 2023-06-23 08:17:34 7b95035 feat: port LinearAlgebra.CliffordAlgebra.Star (#5405) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/LinearAlgebra/CliffordAlgebra/Star.lean + theorem CliffordAlgebra.star_algebraMap + theorem CliffordAlgebra.star_def' + theorem CliffordAlgebra.star_def + theorem CliffordAlgebra.star_smul + theorem CliffordAlgebra.star_ι 2023-06-23 06:08:31 50226ad feat(Topology/Separation): add `eventually_ne_nhds` and `eventually_ne_nhdsWithin` (#5412) ESTIMATED CHANGES Modified Mathlib/Topology/Separation.lean + theorem eventually_ne_nhds + theorem eventually_ne_nhdsWithin 2023-06-23 06:08:30 87fdcaf chore: forward-port leanprover-community/mathlib#19116 (#5410) ESTIMATED CHANGES Modified Mathlib/Analysis/NormedSpace/ContinuousLinearMap.lean - def ContinuousLinearMap.toSpanSingleton - theorem ContinuousLinearMap.toSpanSingleton_add - theorem ContinuousLinearMap.toSpanSingleton_apply - theorem ContinuousLinearMap.toSpanSingleton_smul' - theorem ContinuousLinearMap.toSpanSingleton_smul Modified Mathlib/Topology/Algebra/Module/Basic.lean + def ContinuousLinearMap.toSpanSingleton + theorem ContinuousLinearMap.toSpanSingleton_add + theorem ContinuousLinearMap.toSpanSingleton_apply + theorem ContinuousLinearMap.toSpanSingleton_smul' + theorem ContinuousLinearMap.toSpanSingleton_smul 2023-06-23 06:08:29 ef690af feat: port LinearAlgebra.CliffordAlgebra.Conjugation (#5404) Annoyingly, Lean 4 cannot work out that `reverse x` where `x : clifford_algebra Q` is referring to `reverse (Q := Q) x`, even though that's the only thing that type checks. Otherwise the only difficulty when porting was the standard `LinearMap.range` dot notation failing thing. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/LinearAlgebra/CliffordAlgebra/Basic.lean Added Mathlib/LinearAlgebra/CliffordAlgebra/Conjugation.lean + theorem CliffordAlgebra.evenOdd_comap_involute + theorem CliffordAlgebra.evenOdd_comap_reverse + theorem CliffordAlgebra.evenOdd_map_involute + theorem CliffordAlgebra.evenOdd_map_reverse + def CliffordAlgebra.involute + def CliffordAlgebra.involuteEquiv + theorem CliffordAlgebra.involute_comp_involute + theorem CliffordAlgebra.involute_eq_of_mem_even + theorem CliffordAlgebra.involute_eq_of_mem_odd + theorem CliffordAlgebra.involute_involute + theorem CliffordAlgebra.involute_involutive + theorem CliffordAlgebra.involute_mem_evenOdd_iff + theorem CliffordAlgebra.involute_prod_map_ι + theorem CliffordAlgebra.involute_ι + theorem CliffordAlgebra.reverse.commutes + theorem CliffordAlgebra.reverse.map_mul + theorem CliffordAlgebra.reverse.map_one + def CliffordAlgebra.reverse + def CliffordAlgebra.reverseEquiv + theorem CliffordAlgebra.reverse_comp_involute + theorem CliffordAlgebra.reverse_comp_reverse + theorem CliffordAlgebra.reverse_involute + theorem CliffordAlgebra.reverse_involute_commute + theorem CliffordAlgebra.reverse_involutive + theorem CliffordAlgebra.reverse_mem_evenOdd_iff + theorem CliffordAlgebra.reverse_prod_map_ι + theorem CliffordAlgebra.reverse_reverse + theorem CliffordAlgebra.reverse_ι + theorem CliffordAlgebra.submodule_comap_mul_reverse + theorem CliffordAlgebra.submodule_comap_pow_reverse + theorem CliffordAlgebra.submodule_map_involute_eq_comap + theorem CliffordAlgebra.submodule_map_mul_reverse + theorem CliffordAlgebra.submodule_map_pow_reverse + theorem CliffordAlgebra.submodule_map_reverse_eq_comap + theorem CliffordAlgebra.ι_range_comap_involute + theorem CliffordAlgebra.ι_range_comap_reverse + theorem CliffordAlgebra.ι_range_map_involute + theorem CliffordAlgebra.ι_range_map_reverse 2023-06-23 06:08:28 2c3a27a feat: port NumberTheory.LegendreSymbol.AddCharacter (#5397) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/FieldTheory/Finite/Trace.lean - theorem FiniteField.trace_to_zMod_nondegenerate + theorem FiniteField.trace_to_zmod_nondegenerate Added Mathlib/NumberTheory/LegendreSymbol/AddCharacter.lean + theorem AddChar.IsNontrivial.isPrimitive + def AddChar.IsNontrivial + theorem AddChar.IsPrimitive.zmod_char_eq_one_iff + def AddChar.IsPrimitive + theorem AddChar.PrimitiveAddChar.prim + def AddChar.PrimitiveAddChar + theorem AddChar.coe_to_fun_apply + theorem AddChar.ext + theorem AddChar.inv_apply + theorem AddChar.inv_mulShift + theorem AddChar.isNontrivial_iff_ne_trivial + theorem AddChar.map_add_mul + theorem AddChar.map_nsmul_pow + theorem AddChar.map_zero_one + theorem AddChar.map_zsmul_zpow + def AddChar.mulShift + theorem AddChar.mulShift_apply + theorem AddChar.mulShift_mul + theorem AddChar.mulShift_spec' + theorem AddChar.mulShift_zero + theorem AddChar.mul_apply + theorem AddChar.one_apply + theorem AddChar.pow_mulShift + theorem AddChar.sum_eq_card_of_is_trivial + theorem AddChar.sum_eq_zero_of_isNontrivial + theorem AddChar.sum_mulShift + def AddChar.toFun + def AddChar.toMonoidHom + theorem AddChar.to_mulShift_inj_of_isPrimitive + def AddChar.zmodChar + theorem AddChar.zmodChar_apply' + theorem AddChar.zmodChar_apply + theorem AddChar.zmodChar_primitive_of_primitive_root + theorem AddChar.zmod_char_isNontrivial_iff + theorem AddChar.zmod_char_primitive_of_eq_one_only_at_zero + def AddChar 2023-06-23 06:08:26 bddebf4 feat: make CI fail if there are stdout lines (#5396) https://github.com/leanprover-community/mathlib4/actions/runs/5349279420/jobs/9700275999 shows this working successfully (i.e. the action failing as there were `ring`'s that should be `ring_nf`'s We then clean up the noisy lines in mathlib ESTIMATED CHANGES Modified .github/workflows/bors.yml Modified .github/workflows/build.yml Modified .github/workflows/build.yml.in Modified .github/workflows/build_fork.yml Modified Mathlib/NumberTheory/Multiplicity.lean Modified Mathlib/RingTheory/Polynomial/Hermite/Basic.lean 2023-06-23 06:08:25 fcb2f0f remove conditional completeness assumption in `IsCompact.exists_isMinOn` (#5388) Also rename 2 lemmas - `IsCompact.exists_local_min_mem_open` -> `IsCompact.exists_isLocalMin_mem_open`; - `Metric.exists_local_min_mem_ball` -> `Metric.exists_isLocal_min_mem_ball`. ESTIMATED CHANGES Modified Mathlib/Analysis/Complex/OpenMapping.lean Modified Mathlib/Order/Directed.lean + theorem IsTotal.directed Modified Mathlib/Topology/Algebra/Order/Compact.lean + theorem Continuous.bddAbove_range_of_hasCompactMulSupport + theorem Continuous.bddBelow_range_of_hasCompactMulSupport + theorem IsCompact.bddAbove + theorem IsCompact.bddAbove_image + theorem IsCompact.bddBelow + theorem IsCompact.bddBelow_image + theorem IsCompact.exists_isLocalMin_mem_open - theorem IsCompact.exists_local_min_mem_open Modified Mathlib/Topology/MetricSpace/Basic.lean + theorem Metric.exists_isLocalMin_mem_ball - theorem Metric.exists_local_min_mem_ball Modified Mathlib/Topology/Order/Basic.lean - theorem Continuous.bddAbove_range_of_hasCompactMulSupport - theorem Continuous.bddBelow_range_of_hasCompactMulSupport - theorem IsCompact.bddAbove - theorem IsCompact.bddAbove_image - theorem IsCompact.bddBelow - theorem IsCompact.bddBelow_image Modified Mathlib/Topology/SubsetProperties.lean + theorem IsCompact.elim_directed_family_closed 2023-06-23 06:08:24 2a87032 chore: clean up spacing around `at` and goals (#5387) Changes are of the form - `some_tactic at h⊢` -> `some_tactic at h ⊢` - `some_tactic at h` -> `some_tactic at h` ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/Operations.lean Modified Mathlib/Algebra/Associated.lean Modified Mathlib/Algebra/BigOperators/Basic.lean Modified Mathlib/Algebra/BigOperators/Fin.lean Modified Mathlib/Algebra/CharP/Basic.lean Modified Mathlib/Algebra/CharP/CharAndCard.lean Modified Mathlib/Algebra/DirectLimit.lean Modified Mathlib/Algebra/EuclideanDomain/Basic.lean Modified Mathlib/Algebra/GCDMonoid/Basic.lean Modified Mathlib/Algebra/GCDMonoid/Finset.lean Modified Mathlib/Algebra/GCDMonoid/Multiset.lean Modified Mathlib/Algebra/GeomSum.lean Modified Mathlib/Algebra/Group/UniqueProds.lean Modified Mathlib/Algebra/Hom/Freiman.lean Modified Mathlib/Algebra/IndicatorFunction.lean Modified Mathlib/Algebra/IsPrimePow.lean Modified Mathlib/Algebra/Lie/Submodule.lean Modified Mathlib/Algebra/Module/LocalizedModule.lean Modified Mathlib/Algebra/Module/Submodule/Bilinear.lean Modified Mathlib/Algebra/Module/Torsion.lean Modified Mathlib/Algebra/MonoidAlgebra/Basic.lean Modified Mathlib/Algebra/Order/Monoid/Lemmas.lean Modified Mathlib/Algebra/Order/Monoid/WithTop.lean Modified Mathlib/Algebra/Order/SMul.lean Modified Mathlib/Algebra/Order/ToIntervalMod.lean Modified Mathlib/Algebra/Polynomial/BigOperators.lean Modified Mathlib/Algebra/Squarefree.lean Modified Mathlib/AlgebraicGeometry/PrimeSpectrum/Basic.lean Modified Mathlib/AlgebraicTopology/ExtraDegeneracy.lean Modified Mathlib/AlgebraicTopology/SimplexCategory.lean Modified Mathlib/AlgebraicTopology/SimplicialSet.lean Modified Mathlib/Analysis/Analytic/Basic.lean Modified Mathlib/Analysis/Asymptotics/AsymptoticEquivalent.lean Modified Mathlib/Analysis/Asymptotics/Asymptotics.lean Modified Mathlib/Analysis/Asymptotics/SuperpolynomialDecay.lean Modified Mathlib/Analysis/BoxIntegral/Partition/Tagged.lean Modified Mathlib/Analysis/Calculus/ContDiff.lean Modified Mathlib/Analysis/Calculus/ContDiffDef.lean Modified Mathlib/Analysis/Calculus/ExtendDeriv.lean Modified Mathlib/Analysis/Calculus/LocalExtr.lean Modified Mathlib/Analysis/Calculus/MeanValue.lean Modified Mathlib/Analysis/Calculus/TangentCone.lean Modified Mathlib/Analysis/Complex/Conformal.lean Modified Mathlib/Analysis/Complex/Isometry.lean Modified Mathlib/Analysis/Convex/Basic.lean Modified Mathlib/Analysis/Convex/Between.lean Modified Mathlib/Analysis/Convex/Caratheodory.lean Modified Mathlib/Analysis/Convex/Cone/Basic.lean Modified Mathlib/Analysis/Convex/Extreme.lean Modified Mathlib/Analysis/Convex/Function.lean Modified Mathlib/Analysis/Convex/Gauge.lean Modified Mathlib/Analysis/Convex/Slope.lean Modified Mathlib/Analysis/Convex/SpecificFunctions/Basic.lean Modified Mathlib/Analysis/Convex/Star.lean Modified Mathlib/Analysis/Convex/StrictConvexSpace.lean Modified Mathlib/Analysis/InnerProductSpace/Adjoint.lean Modified Mathlib/Analysis/LocallyConvex/BalancedCoreHull.lean Modified Mathlib/Analysis/LocallyConvex/Basic.lean Modified Mathlib/Analysis/LocallyConvex/Bounded.lean Modified Mathlib/Analysis/LocallyConvex/ContinuousOfBounded.lean Modified Mathlib/Analysis/MeanInequalities.lean Modified Mathlib/Analysis/Normed/Group/AddCircle.lean Modified Mathlib/Analysis/Normed/Group/Basic.lean Modified Mathlib/Analysis/Normed/Group/Hom.lean Modified Mathlib/Analysis/Normed/Group/InfiniteSum.lean Modified Mathlib/Analysis/NormedSpace/Banach.lean Modified Mathlib/Analysis/NormedSpace/CompactOperator.lean Modified Mathlib/Analysis/NormedSpace/FiniteDimension.lean Modified Mathlib/Analysis/NormedSpace/MStructure.lean Modified Mathlib/Analysis/NormedSpace/Multilinear.lean Modified Mathlib/Analysis/NormedSpace/OperatorNorm.lean Modified Mathlib/Analysis/NormedSpace/RieszLemma.lean Modified Mathlib/Analysis/NormedSpace/Star/Multiplier.lean Modified Mathlib/Analysis/NormedSpace/lpSpace.lean Modified Mathlib/Analysis/SpecialFunctions/Complex/Arg.lean Modified Mathlib/Analysis/SpecialFunctions/Complex/Log.lean Modified Mathlib/Analysis/SpecialFunctions/Pow/Asymptotics.lean Modified Mathlib/Analysis/SpecialFunctions/Pow/NNReal.lean Modified Mathlib/Analysis/SpecialFunctions/Pow/Real.lean Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Basic.lean Modified Mathlib/Analysis/SpecificLimits/Normed.lean Modified Mathlib/CategoryTheory/Abelian/Homology.lean Modified Mathlib/CategoryTheory/CofilteredSystem.lean Modified Mathlib/CategoryTheory/Extensive.lean Modified Mathlib/CategoryTheory/Idempotents/FunctorExtension.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Pullbacks.lean Modified Mathlib/CategoryTheory/MorphismProperty.lean Modified Mathlib/CategoryTheory/Sites/Grothendieck.lean Modified Mathlib/CategoryTheory/Sites/Sheafification.lean Modified Mathlib/CategoryTheory/Sites/Subsheaf.lean Modified Mathlib/CategoryTheory/Sites/Whiskering.lean Modified Mathlib/CategoryTheory/Types.lean Modified Mathlib/Combinatorics/Composition.lean Modified Mathlib/Combinatorics/Configuration.lean Modified Mathlib/Combinatorics/Derangements/Basic.lean Modified Mathlib/Combinatorics/Hall/Finite.lean Modified Mathlib/Combinatorics/Partition.lean Modified Mathlib/Combinatorics/Pigeonhole.lean Modified Mathlib/Combinatorics/SetFamily/Compression/UV.lean Modified Mathlib/Combinatorics/SetFamily/Intersecting.lean Modified Mathlib/Combinatorics/SimpleGraph/Basic.lean Modified Mathlib/Combinatorics/SimpleGraph/Density.lean Modified Mathlib/Combinatorics/SimpleGraph/Ends/Defs.lean Modified Mathlib/Combinatorics/SimpleGraph/Regularity/Equitabilise.lean Modified Mathlib/Combinatorics/SimpleGraph/Trails.lean Modified Mathlib/Combinatorics/Young/YoungDiagram.lean Modified Mathlib/Computability/Language.lean Modified Mathlib/Computability/Partrec.lean Modified Mathlib/Computability/PartrecCode.lean Modified Mathlib/Computability/TMToPartrec.lean Modified Mathlib/Computability/TuringMachine.lean Modified Mathlib/Data/Bitvec/Lemmas.lean Modified Mathlib/Data/FinEnum.lean Modified Mathlib/Data/Finset/Basic.lean Modified Mathlib/Data/Finset/Pointwise.lean Modified Mathlib/Data/Finset/Sigma.lean Modified Mathlib/Data/Finset/Sym.lean Modified Mathlib/Data/Finsupp/Basic.lean Modified Mathlib/Data/List/Basic.lean Modified Mathlib/Data/List/BigOperators/Basic.lean Modified Mathlib/Data/List/Chain.lean Modified Mathlib/Data/List/Cycle.lean Modified Mathlib/Data/List/Duplicate.lean Modified Mathlib/Data/List/MinMax.lean Modified Mathlib/Data/List/Perm.lean Modified Mathlib/Data/List/Sigma.lean Modified Mathlib/Data/MvPolynomial/Basic.lean Modified Mathlib/Data/MvPolynomial/Division.lean Modified Mathlib/Data/MvPolynomial/Variables.lean Modified Mathlib/Data/Nat/Bitwise.lean Modified Mathlib/Data/Nat/Factorization/PrimePow.lean Modified Mathlib/Data/Nat/Interval.lean Modified Mathlib/Data/Nat/Set.lean Modified Mathlib/Data/Nat/Size.lean Modified Mathlib/Data/Nat/Squarefree.lean Modified Mathlib/Data/Num/Lemmas.lean Modified Mathlib/Data/PFunctor/Univariate/M.lean Modified Mathlib/Data/PNat/Xgcd.lean Modified Mathlib/Data/Polynomial/AlgebraMap.lean Modified Mathlib/Data/Polynomial/Coeff.lean Modified Mathlib/Data/Polynomial/Degree/Definitions.lean Modified Mathlib/Data/Polynomial/Degree/Lemmas.lean Modified Mathlib/Data/Polynomial/Derivative.lean Modified Mathlib/Data/Polynomial/Div.lean Modified Mathlib/Data/Polynomial/HasseDeriv.lean Modified Mathlib/Data/Polynomial/Lifts.lean Modified Mathlib/Data/Polynomial/Monic.lean Modified Mathlib/Data/Polynomial/PartialFractions.lean Modified Mathlib/Data/Polynomial/RingDivision.lean Modified Mathlib/Data/Polynomial/Splits.lean Modified Mathlib/Data/Rat/Cast.lean Modified Mathlib/Data/Rat/Order.lean Modified Mathlib/Data/Real/CauSeq.lean Modified Mathlib/Data/Seq/Seq.lean Modified Mathlib/Data/Seq/WSeq.lean Modified Mathlib/Data/Set/Intervals/Monotone.lean Modified Mathlib/Data/Set/Ncard.lean Modified Mathlib/Data/Sign.lean Modified Mathlib/Data/Sym/Sym2.lean Modified Mathlib/Dynamics/Ergodic/Conservative.lean Modified Mathlib/FieldTheory/Finite/Basic.lean Modified Mathlib/FieldTheory/Minpoly/Basic.lean Modified Mathlib/FieldTheory/Minpoly/Field.lean Modified Mathlib/FieldTheory/PerfectClosure.lean Modified Mathlib/Geometry/Manifold/ChartedSpace.lean Modified Mathlib/GroupTheory/Commutator.lean Modified Mathlib/GroupTheory/Complement.lean Modified Mathlib/GroupTheory/FreeGroup.lean Modified Mathlib/GroupTheory/Index.lean Modified Mathlib/GroupTheory/MonoidLocalization.lean Modified Mathlib/GroupTheory/Nilpotent.lean Modified Mathlib/GroupTheory/OrderOfElement.lean Modified Mathlib/GroupTheory/Perm/Cycle/Basic.lean Modified Mathlib/GroupTheory/Perm/Cycle/Concrete.lean Modified Mathlib/GroupTheory/Perm/List.lean Modified Mathlib/GroupTheory/Perm/Support.lean Modified Mathlib/GroupTheory/SpecificGroups/Quaternion.lean Modified Mathlib/GroupTheory/Subgroup/Basic.lean Modified Mathlib/GroupTheory/Subgroup/Saturated.lean Modified Mathlib/GroupTheory/Sylow.lean Modified Mathlib/InformationTheory/Hamming.lean Modified Mathlib/LinearAlgebra/AdicCompletion.lean Modified Mathlib/LinearAlgebra/AffineSpace/FiniteDimensional.lean Modified Mathlib/LinearAlgebra/AffineSpace/Independent.lean Modified Mathlib/LinearAlgebra/AffineSpace/Restrict.lean Modified Mathlib/LinearAlgebra/Alternating.lean Modified Mathlib/LinearAlgebra/Basis.lean Modified Mathlib/LinearAlgebra/BilinearForm.lean Modified Mathlib/LinearAlgebra/Dimension.lean Modified Mathlib/LinearAlgebra/Dual.lean Modified Mathlib/LinearAlgebra/FiniteDimensional.lean Modified Mathlib/LinearAlgebra/FreeModule/PID.lean Modified Mathlib/LinearAlgebra/Lagrange.lean Modified Mathlib/LinearAlgebra/LinearIndependent.lean Modified Mathlib/LinearAlgebra/LinearPMap.lean Modified Mathlib/LinearAlgebra/Matrix/Charpoly/Basic.lean Modified Mathlib/LinearAlgebra/Matrix/Charpoly/LinearMap.lean Modified Mathlib/LinearAlgebra/Matrix/Determinant.lean Modified Mathlib/LinearAlgebra/Matrix/Transvection.lean Modified Mathlib/LinearAlgebra/Prod.lean Modified Mathlib/LinearAlgebra/SModEq.lean Modified Mathlib/LinearAlgebra/SymplecticGroup.lean Modified Mathlib/Logic/Denumerable.lean Modified Mathlib/Logic/Hydra.lean Modified Mathlib/MeasureTheory/Constructions/BorelSpace/Basic.lean Modified Mathlib/MeasureTheory/Constructions/BorelSpace/Metrizable.lean Modified Mathlib/MeasureTheory/Constructions/Pi.lean Modified Mathlib/MeasureTheory/Constructions/Prod/Basic.lean Modified Mathlib/MeasureTheory/Decomposition/SignedHahn.lean Modified Mathlib/MeasureTheory/Function/AEEqFun.lean Modified Mathlib/MeasureTheory/Function/ConvergenceInMeasure.lean Modified Mathlib/MeasureTheory/Function/Egorov.lean Modified Mathlib/MeasureTheory/Function/EssSup.lean Modified Mathlib/MeasureTheory/Function/L1Space.lean Modified Mathlib/MeasureTheory/Function/LocallyIntegrable.lean Modified Mathlib/MeasureTheory/Function/LpSeminorm.lean Modified Mathlib/MeasureTheory/Function/LpSpace.lean Modified Mathlib/MeasureTheory/Function/SimpleFuncDense.lean Modified Mathlib/MeasureTheory/Function/SimpleFuncDenseLp.lean Modified Mathlib/MeasureTheory/Function/UniformIntegrable.lean Modified Mathlib/MeasureTheory/Integral/Lebesgue.lean Modified Mathlib/MeasureTheory/Integral/MeanInequalities.lean Modified Mathlib/MeasureTheory/Measure/AEMeasurable.lean Modified Mathlib/MeasureTheory/Measure/Content.lean Modified Mathlib/MeasureTheory/Measure/MeasureSpace.lean Modified Mathlib/MeasureTheory/Measure/Stieltjes.lean Modified Mathlib/MeasureTheory/Measure/VectorMeasure.lean Modified Mathlib/MeasureTheory/PiSystem.lean Modified Mathlib/ModelTheory/Satisfiability.lean Modified Mathlib/NumberTheory/ArithmeticFunction.lean Modified Mathlib/NumberTheory/Bernoulli.lean Modified Mathlib/NumberTheory/FermatPsp.lean Modified Mathlib/NumberTheory/Liouville/LiouvilleWith.lean Modified Mathlib/NumberTheory/Padics/PadicNumbers.lean Modified Mathlib/NumberTheory/Padics/PadicVal.lean Modified Mathlib/NumberTheory/Padics/RingHoms.lean Modified Mathlib/NumberTheory/PellMatiyasevic.lean Modified Mathlib/NumberTheory/PythagoreanTriples.lean Modified Mathlib/NumberTheory/VonMangoldt.lean Modified Mathlib/NumberTheory/Zsqrtd/Basic.lean Modified Mathlib/Order/Category/NonemptyFinLinOrdCat.lean Modified Mathlib/Order/Cover.lean Modified Mathlib/Order/Filter/Archimedean.lean Modified Mathlib/Order/Filter/AtTopBot.lean Modified Mathlib/Order/Filter/Basic.lean Modified Mathlib/Order/Filter/Cofinite.lean Modified Mathlib/Order/Filter/CountableInter.lean Modified Mathlib/Order/Filter/ENNReal.lean Modified Mathlib/Order/Filter/IndicatorFunction.lean Modified Mathlib/Order/Height.lean Modified Mathlib/Order/Ideal.lean Modified Mathlib/Order/InitialSeg.lean Modified Mathlib/Order/LiminfLimsup.lean Modified Mathlib/Order/OmegaCompletePartialOrder.lean Modified Mathlib/Order/PartialSups.lean Modified Mathlib/Order/SuccPred/Basic.lean Modified Mathlib/Order/SuccPred/Limit.lean Modified Mathlib/Order/SuccPred/LinearLocallyFinite.lean Modified Mathlib/Order/SupIndep.lean Modified Mathlib/RingTheory/Algebraic.lean Modified Mathlib/RingTheory/Artinian.lean Modified Mathlib/RingTheory/Coprime/Basic.lean Modified Mathlib/RingTheory/Coprime/Ideal.lean Modified Mathlib/RingTheory/DiscreteValuationRing/Basic.lean Modified Mathlib/RingTheory/EisensteinCriterion.lean Modified Mathlib/RingTheory/Filtration.lean Modified Mathlib/RingTheory/Finiteness.lean Modified Mathlib/RingTheory/FractionalIdeal.lean Modified Mathlib/RingTheory/FreeCommRing.lean Modified Mathlib/RingTheory/GradedAlgebra/HomogeneousIdeal.lean Modified Mathlib/RingTheory/HahnSeries.lean Modified Mathlib/RingTheory/Henselian.lean Modified Mathlib/RingTheory/Ideal/AssociatedPrime.lean Modified Mathlib/RingTheory/Ideal/Basic.lean Modified Mathlib/RingTheory/Ideal/MinimalPrime.lean Modified Mathlib/RingTheory/Ideal/Operations.lean Modified Mathlib/RingTheory/Ideal/Prod.lean Modified Mathlib/RingTheory/Ideal/Quotient.lean Modified Mathlib/RingTheory/IntegralClosure.lean Modified Mathlib/RingTheory/IsTensorProduct.lean Modified Mathlib/RingTheory/JacobsonIdeal.lean Modified Mathlib/RingTheory/Localization/AtPrime.lean Modified Mathlib/RingTheory/Localization/Basic.lean Modified Mathlib/RingTheory/Localization/Ideal.lean Modified Mathlib/RingTheory/Localization/LocalizationLocalization.lean Modified Mathlib/RingTheory/Localization/Module.lean Modified Mathlib/RingTheory/Localization/Submodule.lean Modified Mathlib/RingTheory/Nilpotent.lean Modified Mathlib/RingTheory/Noetherian.lean Modified Mathlib/RingTheory/OreLocalization/Basic.lean Modified Mathlib/RingTheory/Polynomial/Basic.lean Modified Mathlib/RingTheory/Polynomial/Bernstein.lean Modified Mathlib/RingTheory/Polynomial/Content.lean Modified Mathlib/RingTheory/Polynomial/Quotient.lean Modified Mathlib/RingTheory/PowerBasis.lean Modified Mathlib/RingTheory/PowerSeries/Basic.lean Modified Mathlib/RingTheory/TensorProduct.lean Modified Mathlib/RingTheory/UniqueFactorizationDomain.lean Modified Mathlib/RingTheory/WittVector/StructurePolynomial.lean Modified Mathlib/SetTheory/Cardinal/Cofinality.lean Modified Mathlib/SetTheory/Cardinal/Ordinal.lean Modified Mathlib/SetTheory/Game/PGame.lean Modified Mathlib/SetTheory/Ordinal/Arithmetic.lean Modified Mathlib/SetTheory/Ordinal/Basic.lean Modified Mathlib/SetTheory/Ordinal/Notation.lean Modified Mathlib/SetTheory/Ordinal/Principal.lean Modified Mathlib/SetTheory/ZFC/Ordinal.lean Modified Mathlib/Topology/Algebra/FilterBasis.lean Modified Mathlib/Topology/Algebra/Group/Basic.lean Modified Mathlib/Topology/Algebra/InfiniteSum/Basic.lean Modified Mathlib/Topology/Algebra/Module/Basic.lean Modified Mathlib/Topology/Algebra/Nonarchimedean/AdicTopology.lean Modified Mathlib/Topology/Algebra/Order/LeftRightLim.lean Modified Mathlib/Topology/Algebra/Order/LiminfLimsup.lean Modified Mathlib/Topology/Algebra/UniformField.lean Modified Mathlib/Topology/Algebra/ValuedField.lean Modified Mathlib/Topology/Bases.lean Modified Mathlib/Topology/Category/CompHaus/Basic.lean Modified Mathlib/Topology/Category/Profinite/AsLimit.lean Modified Mathlib/Topology/Category/Profinite/Basic.lean Modified Mathlib/Topology/Category/TopCat/Limits/Products.lean Modified Mathlib/Topology/Connected.lean Modified Mathlib/Topology/ContinuousFunction/Bounded.lean Modified Mathlib/Topology/ContinuousFunction/Compact.lean Modified Mathlib/Topology/ContinuousOn.lean Modified Mathlib/Topology/DenseEmbedding.lean Modified Mathlib/Topology/FiberBundle/Basic.lean Modified Mathlib/Topology/Instances/AddCircle.lean Modified Mathlib/Topology/Instances/Complex.lean Modified Mathlib/Topology/Instances/ENNReal.lean Modified Mathlib/Topology/List.lean Modified Mathlib/Topology/LocalAtTarget.lean Modified Mathlib/Topology/LocalHomeomorph.lean Modified Mathlib/Topology/MetricSpace/Baire.lean Modified Mathlib/Topology/MetricSpace/HausdorffDistance.lean Modified Mathlib/Topology/MetricSpace/Holder.lean Modified Mathlib/Topology/MetricSpace/MetricSeparated.lean Modified Mathlib/Topology/MetricSpace/MetrizableUniformity.lean Modified Mathlib/Topology/MetricSpace/PiNat.lean Modified Mathlib/Topology/OmegaCompletePartialOrder.lean Modified Mathlib/Topology/Order.lean Modified Mathlib/Topology/PathConnected.lean Modified Mathlib/Topology/Semicontinuous.lean Modified Mathlib/Topology/ShrinkingLemma.lean Modified Mathlib/Topology/SubsetProperties.lean Modified Mathlib/Topology/Support.lean Modified Mathlib/Topology/UniformSpace/Basic.lean Modified Mathlib/Topology/UniformSpace/UniformConvergence.lean Modified Mathlib/Topology/UniformSpace/UniformConvergenceTopology.lean Modified Mathlib/Topology/UniformSpace/UniformEmbedding.lean 2023-06-23 06:08:23 276830b feat: gcongr lemmas for `Real.log` (#5352) This PR adds support for `Real.log` to `gcongr`. ESTIMATED CHANGES Modified Mathlib/Analysis/SpecialFunctions/Log/Basic.lean + theorem Real.log_le_log' 2023-06-23 06:08:22 4003b56 fix: fix Q-smul diamond in Complex (#5341) ESTIMATED CHANGES Modified Mathlib/Data/Complex/Basic.lean +/- theorem Complex.rat_cast_re + theorem Complex.real_smul + theorem Complex.smul_im + theorem Complex.smul_re Modified Mathlib/Data/Complex/Module.lean - theorem Complex.real_smul - theorem Complex.smul_im - theorem Complex.smul_re 2023-06-23 04:45:30 e0d8134 fix: compile inductives recursively (#5039) The `compileSizeOf` addition inadvertently broke the `tryToCompileAllInductives` test (which is disabled on master because it is too expensive); if you actually run it there are hundreds of failures (`421 / 1134` success), where it should only have failed a small handful of times. The reason for the failure is that compiling a `T.sizeOf` function requires `U.rec` and `U.sizeOf` if the definition of inductive type `T` uses `U`, so now we process them recursively. In addition there are a few more fixes for completeness: * The `UInt8`, `UInt16` etc types were generating invalid IR because `Expr.proj` doesn't work on them. We can work around this by using `UInt8.val` etc instead. * The `Float` type needs a further hack because `Float.val` also fails; we implement this and `Float.mk` using `unsafeCast`, which is fine since they are conversions to and from `floatSpec.float` which is an opaque type. * `instSizeOfName` and `Name.sizeOf` were manually implemented as `noncomputable` so they need a `compile_def%`. All together this unblocks essentially all the inductive types in `Lean`, and now the `tryToCompileAllInductives` test has 1131 / 1134 successes, where the three failures are `Acc.below`, `HEq` and `Acc` which are all expected because large-eliminating Props are not implemented. (We could special case implement these like with `UInt8` et al, but these represent a general class of unimplemented inductives while `UInt8` is special cased by the code generator.) ESTIMATED CHANGES Modified Mathlib/Util/CompileInductive.lean - def Mathlib.Util.compileInductive + def Mathlib.Util.compileInductiveOnly + def Mathlib.Util.isCompiled Modified test/CompileInductive.lean 2023-06-23 04:14:23 969f613 chore: cleanup of filtered colimits in concrete categories (#5407) Just formatting changes, except that I've split the `colimitMonoid` instances into two steps, as this was already close to the time limit, and timing out on another branch. ESTIMATED CHANGES Modified Mathlib/Algebra/Category/GroupCat/FilteredColimits.lean Modified Mathlib/Algebra/Category/ModuleCat/FilteredColimits.lean Modified Mathlib/Algebra/Category/Mon/FilteredColimits.lean Modified Mathlib/Algebra/Category/Ring/FilteredColimits.lean 2023-06-23 04:14:22 ccc5499 fix: docstring for CategoryTheory.Limits.HasFiniteProducts (#5398) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Limits/Shapes/FiniteProducts.lean 2023-06-23 04:14:21 8eca5e6 feat: port Geometry.Manifold.Sheaf.Basic (#5373) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Geometry/Manifold/Sheaf/Basic.lean + def StructureGroupoid.LocalInvariantProp.localPredicate + theorem StructureGroupoid.LocalInvariantProp.section_spec + def StructureGroupoid.LocalInvariantProp.sheaf 2023-06-23 04:14:20 ac0bfee feat: port AlgebraicGeometry.PresheafedSpace.Gluing (#5356) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/AlgebraicGeometry/LocallyRingedSpace/HasColimits.lean Added Mathlib/AlgebraicGeometry/PresheafedSpace/Gluing.lean + def AlgebraicGeometry.LocallyRingedSpace.GlueData.vPullbackConeIsLimit + theorem AlgebraicGeometry.LocallyRingedSpace.GlueData.ι_isoSheafedSpace_inv + theorem AlgebraicGeometry.LocallyRingedSpace.GlueData.ι_jointly_surjective + structure AlgebraicGeometry.LocallyRingedSpace.GlueData + theorem AlgebraicGeometry.PresheafedSpace.GlueData.f_invApp_f_app + def AlgebraicGeometry.PresheafedSpace.GlueData.opensImagePreimageMap + theorem AlgebraicGeometry.PresheafedSpace.GlueData.opensImagePreimageMap_app' + theorem AlgebraicGeometry.PresheafedSpace.GlueData.opensImagePreimageMap_app + theorem AlgebraicGeometry.PresheafedSpace.GlueData.opensImagePreimageMap_app_assoc + theorem AlgebraicGeometry.PresheafedSpace.GlueData.pullback_base + theorem AlgebraicGeometry.PresheafedSpace.GlueData.snd_invApp_t_app' + theorem AlgebraicGeometry.PresheafedSpace.GlueData.snd_invApp_t_app + def AlgebraicGeometry.PresheafedSpace.GlueData.vPullbackConeIsLimit + def AlgebraicGeometry.PresheafedSpace.GlueData.ιInvApp + theorem AlgebraicGeometry.PresheafedSpace.GlueData.ιInvApp_π + def AlgebraicGeometry.PresheafedSpace.GlueData.ιInvAppπApp + theorem AlgebraicGeometry.PresheafedSpace.GlueData.ι_image_preimage_eq + theorem AlgebraicGeometry.PresheafedSpace.GlueData.ι_jointly_surjective + theorem AlgebraicGeometry.PresheafedSpace.GlueData.ι_openEmbedding + theorem AlgebraicGeometry.PresheafedSpace.GlueData.π_ιInvApp_eq_id + theorem AlgebraicGeometry.PresheafedSpace.GlueData.π_ιInvApp_π + structure AlgebraicGeometry.PresheafedSpace.GlueData + def AlgebraicGeometry.SheafedSpace.GlueData.vPullbackConeIsLimit + theorem AlgebraicGeometry.SheafedSpace.GlueData.ι_isoPresheafedSpace_inv + theorem AlgebraicGeometry.SheafedSpace.GlueData.ι_jointly_surjective + structure AlgebraicGeometry.SheafedSpace.GlueData 2023-06-23 04:14:19 4a17605 feat: port LinearAlgebra.CliffordAlgebra.Grading (#5349) This runs into some annoying problems with https://github.com/leanprover/lean4/issues/1926 which makes working with the dependent types much worse than it was in Lean 3. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/LinearAlgebra/CliffordAlgebra/Grading.lean + theorem CliffordAlgebra.GradedAlgebra.lift_ι_eq + theorem CliffordAlgebra.GradedAlgebra.ι_apply + def CliffordAlgebra.evenOdd + theorem CliffordAlgebra.evenOdd_induction + theorem CliffordAlgebra.evenOdd_isCompl + theorem CliffordAlgebra.evenOdd_mul_le + theorem CliffordAlgebra.even_induction + theorem CliffordAlgebra.iSup_ι_range_eq_top + theorem CliffordAlgebra.odd_induction + theorem CliffordAlgebra.one_le_evenOdd_zero + theorem CliffordAlgebra.range_ι_le_evenOdd_one + theorem CliffordAlgebra.ι_mem_evenOdd_one + theorem CliffordAlgebra.ι_mul_ι_mem_evenOdd_zero 2023-06-23 04:05:01 6985e17 feat: port NumberTheory.Cyclotomic.Discriminant (#5413) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/NumberTheory/Cyclotomic/Discriminant.lean + theorem IsCyclotomicExtension.discr_odd_prime + theorem IsCyclotomicExtension.discr_prime_pow + theorem IsCyclotomicExtension.discr_prime_pow_eq_unit_mul_pow + theorem IsCyclotomicExtension.discr_prime_pow_ne_two' + theorem IsCyclotomicExtension.discr_prime_pow_ne_two + theorem IsPrimitiveRoot.discr_zeta_eq_discr_zeta_sub_one 2023-06-23 00:02:58 489a049 feat: count_heartbeats in command (#5365) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Logic/Function/Basic.lean Modified Mathlib/Tactic/Common.lean Added Mathlib/Util/CountHeartbeats.lean 2023-06-22 23:07:58 d6d8643 chore: forward port leanprover-community/mathlib#19146 (#5371) ESTIMATED CHANGES Modified Mathlib/Geometry/Manifold/ChartedSpace.lean + theorem TopologicalSpace.Opens.chartAt_inclusion_symm_eventuallyEq Modified Mathlib/Geometry/Manifold/LocalInvariantProperties.lean + theorem StructureGroupoid.LocalInvariantProp.liftPropAt_iff_comp_inclusion + theorem StructureGroupoid.LocalInvariantProp.liftProp_inclusion Modified Mathlib/Topology/LocalHomeomorph.lean + theorem LocalHomeomorph.map_subtype_source + theorem LocalHomeomorph.subtypeRestr_symm_eqOn_of_le 2023-06-22 21:25:01 4221b15 feat: port RingTheory.DedekindDomain.SInteger (#5401) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/RingTheory/DedekindDomain/SInteger.lean + def Set.integer + theorem Set.integer_eq + theorem Set.integer_valuation_le_one + def Set.unit + def Set.unitEquivUnitsInteger + theorem Set.unit_eq + theorem Set.unit_valuation_eq_one 2023-06-22 21:12:48 39b465c feat: port RingTheory.DedekindDomain.FiniteAdeleRing (#5402) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/RingTheory/DedekindDomain/FiniteAdeleRing.lean + def DedekindDomain.FiniteIntegralAdeles.Coe.addMonoidHom + def DedekindDomain.FiniteIntegralAdeles.Coe.algHom + theorem DedekindDomain.FiniteIntegralAdeles.Coe.algHom_apply + def DedekindDomain.FiniteIntegralAdeles.Coe.ringHom + theorem DedekindDomain.FiniteIntegralAdeles.coe_apply + def DedekindDomain.FiniteIntegralAdeles + theorem DedekindDomain.ProdAdicCompletions.IsFiniteAdele.add + theorem DedekindDomain.ProdAdicCompletions.IsFiniteAdele.mul + theorem DedekindDomain.ProdAdicCompletions.IsFiniteAdele.neg + theorem DedekindDomain.ProdAdicCompletions.IsFiniteAdele.one + theorem DedekindDomain.ProdAdicCompletions.IsFiniteAdele.zero + def DedekindDomain.ProdAdicCompletions.IsFiniteAdele + def DedekindDomain.ProdAdicCompletions + theorem DedekindDomain.mem_finiteAdeleRing_iff 2023-06-22 20:54:17 766fb10 feat: port NumberTheory.NumberField.Embeddings (#5367) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/NumberTheory/NumberField/Embeddings.lean + theorem NumberField.ComplexEmbedding.IsReal.coe_embedding_apply + def NumberField.ComplexEmbedding.IsReal.embedding + theorem NumberField.ComplexEmbedding.IsReal.place_embedding + def NumberField.ComplexEmbedding.IsReal + def NumberField.ComplexEmbedding.conjugate + theorem NumberField.ComplexEmbedding.conjugate_coe_eq + theorem NumberField.ComplexEmbedding.isReal_conjugate_iff + theorem NumberField.ComplexEmbedding.isReal_iff + theorem NumberField.ComplexEmbedding.place_conjugate + theorem NumberField.ComplexEmbeddings.IsReal.embedding_mk + theorem NumberField.Embeddings.card + theorem NumberField.Embeddings.coeff_bdd_of_norm_le + theorem NumberField.Embeddings.finite_of_norm_le + theorem NumberField.Embeddings.pow_eq_one_of_norm_eq_one + theorem NumberField.Embeddings.range_eval_eq_rootSet_minpoly + def NumberField.InfinitePlace.IsComplex + theorem NumberField.InfinitePlace.IsReal.abs_embedding_apply + theorem NumberField.InfinitePlace.IsReal.place_embedding_apply + def NumberField.InfinitePlace.IsReal + theorem NumberField.InfinitePlace.abs_embedding + theorem NumberField.InfinitePlace.apply + theorem NumberField.InfinitePlace.card_complex_embeddings + theorem NumberField.InfinitePlace.card_real_embeddings + theorem NumberField.InfinitePlace.coe_mk + theorem NumberField.InfinitePlace.eq_iff_eq + theorem NumberField.InfinitePlace.ext + theorem NumberField.InfinitePlace.isComplex_iff + theorem NumberField.InfinitePlace.isReal_iff + theorem NumberField.InfinitePlace.isReal_or_isComplex + theorem NumberField.InfinitePlace.le_iff_le + theorem NumberField.InfinitePlace.mkComplex.apply + theorem NumberField.InfinitePlace.mkComplex.filter + theorem NumberField.InfinitePlace.mkComplex.filter_card + theorem NumberField.InfinitePlace.mkComplex_coe + theorem NumberField.InfinitePlace.mkComplex_embedding + theorem NumberField.InfinitePlace.mkReal.apply + theorem NumberField.InfinitePlace.mkReal_coe + theorem NumberField.InfinitePlace.mk_conjugate_eq + theorem NumberField.InfinitePlace.mk_embedding + theorem NumberField.InfinitePlace.mk_eq_iff + theorem NumberField.InfinitePlace.not_isComplex_iff_isReal + theorem NumberField.InfinitePlace.not_isReal_iff_isComplex + theorem NumberField.InfinitePlace.pos_iff + theorem NumberField.InfinitePlace.prod_eq_abs_norm + def NumberField.InfinitePlace + def NumberField.place + theorem NumberField.place_apply 2023-06-22 20:41:31 347389b feat: port RingTheory.Discriminant (#5374) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/RingTheory/Discriminant.lean + theorem Algebra.discr_def + theorem Algebra.discr_eq_det_embeddingsMatrixReindex_pow_two + theorem Algebra.discr_eq_discr_of_toMatrix_coeff_isIntegral + theorem Algebra.discr_isIntegral + theorem Algebra.discr_isUnit_of_basis + theorem Algebra.discr_mul_isIntegral_mem_adjoin + theorem Algebra.discr_not_zero_of_basis + theorem Algebra.discr_of_matrix_mulVec + theorem Algebra.discr_of_matrix_vecMul + theorem Algebra.discr_powerBasis_eq_norm + theorem Algebra.discr_powerBasis_eq_prod'' + theorem Algebra.discr_powerBasis_eq_prod' + theorem Algebra.discr_powerBasis_eq_prod + theorem Algebra.discr_reindex + theorem Algebra.discr_zero_of_not_linearIndependent 2023-06-22 16:17:21 b89833e feat: port NumberTheory.Cyclotomic.PrimitiveRoots (#5384) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/NumberTheory/Cyclotomic/PrimitiveRoots.lean + theorem IsCyclotomicExtension.aeval_zeta + theorem IsCyclotomicExtension.finrank + theorem IsCyclotomicExtension.isPrimePow_norm_zeta_sub_one + theorem IsCyclotomicExtension.norm_zeta_eq_one + theorem IsCyclotomicExtension.prime_ne_two_norm_zeta_sub_one + theorem IsCyclotomicExtension.prime_ne_two_pow_norm_zeta_pow_sub_one + theorem IsCyclotomicExtension.prime_ne_two_pow_norm_zeta_sub_one + theorem IsCyclotomicExtension.two_pow_norm_zeta_sub_one + theorem IsCyclotomicExtension.zeta_isRoot + theorem IsCyclotomicExtension.zeta_pow + theorem IsCyclotomicExtension.zeta_spec + theorem IsPrimitiveRoot.embeddingsEquivPrimitiveRoots_apply_coe + theorem IsPrimitiveRoot.minpoly_sub_one_eq_cyclotomic_comp + theorem IsPrimitiveRoot.norm_eq_neg_one_pow + theorem IsPrimitiveRoot.norm_eq_one + theorem IsPrimitiveRoot.norm_eq_one_of_linearly_ordered + theorem IsPrimitiveRoot.norm_of_cyclotomic_irreducible + theorem IsPrimitiveRoot.pow_sub_one_norm_prime_ne_two + theorem IsPrimitiveRoot.pow_sub_one_norm_prime_pow_ne_two + theorem IsPrimitiveRoot.pow_sub_one_norm_prime_pow_of_ne_zero + theorem IsPrimitiveRoot.pow_sub_one_norm_two + theorem IsPrimitiveRoot.powerBasis_gen_mem_adjoin_zeta_sub_one + theorem IsPrimitiveRoot.sub_one_norm_eq_eval_cyclotomic + theorem IsPrimitiveRoot.sub_one_norm_isPrimePow + theorem IsPrimitiveRoot.sub_one_norm_prime + theorem IsPrimitiveRoot.sub_one_norm_prime_ne_two + theorem IsPrimitiveRoot.sub_one_norm_two 2023-06-22 15:02:46 f68534c feat(data/finset/pointwise): |s| ∣ |s * t| (#5385) Forward-port leanprover-community/mathlib#18663 Also add a missing lemma. ESTIMATED CHANGES Modified Mathlib/Data/Finset/Basic.lean + theorem Finset.forall_of_forall_cons + theorem Finset.forall_of_forall_insert Modified Mathlib/Data/Finset/NAry.lean + theorem Finset.card_dvd_card_image₂_left + theorem Finset.card_dvd_card_image₂_right Modified Mathlib/Data/Finset/Pointwise.lean + theorem Finset.card_dvd_card_mul_left + theorem Finset.card_dvd_card_mul_right + theorem Finset.card_dvd_card_smul_right 2023-06-22 15:02:44 e190017 chore: remove useless automatically included variables (#5382) ESTIMATED CHANGES Modified Mathlib/Data/Fin/Interval.lean 2023-06-22 15:02:43 a53975a feat: port RingTheory.DedekindDomain.AdicValuation (#5372) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Order/Monoid/WithZero/Defs.lean Modified Mathlib/NumberTheory/FunctionField.lean Added Mathlib/RingTheory/DedekindDomain/AdicValuation.lean + theorem IsDedekindDomain.HeightOneSpectrum.IntValuation.le_max_iff_min_le + theorem IsDedekindDomain.HeightOneSpectrum.IntValuation.map_add_le_max' + theorem IsDedekindDomain.HeightOneSpectrum.IntValuation.map_mul' + theorem IsDedekindDomain.HeightOneSpectrum.IntValuation.map_one' + theorem IsDedekindDomain.HeightOneSpectrum.IntValuation.map_zero' + def IsDedekindDomain.HeightOneSpectrum.adicCompletion + def IsDedekindDomain.HeightOneSpectrum.adicCompletionIntegers + def IsDedekindDomain.HeightOneSpectrum.adicValued + theorem IsDedekindDomain.HeightOneSpectrum.adicValued_apply + theorem IsDedekindDomain.HeightOneSpectrum.algebraMap_adicCompletion + theorem IsDedekindDomain.HeightOneSpectrum.algebraMap_adic_completion' + theorem IsDedekindDomain.HeightOneSpectrum.coe_smul_adicCompletion + theorem IsDedekindDomain.HeightOneSpectrum.coe_smul_adicCompletionIntegers + def IsDedekindDomain.HeightOneSpectrum.intValuation + def IsDedekindDomain.HeightOneSpectrum.intValuationDef + theorem IsDedekindDomain.HeightOneSpectrum.intValuationDef_if_neg + theorem IsDedekindDomain.HeightOneSpectrum.intValuationDef_if_pos + theorem IsDedekindDomain.HeightOneSpectrum.int_valuation_exists_uniformizer + theorem IsDedekindDomain.HeightOneSpectrum.int_valuation_le_one + theorem IsDedekindDomain.HeightOneSpectrum.int_valuation_le_pow_iff_dvd + theorem IsDedekindDomain.HeightOneSpectrum.int_valuation_lt_one_iff_dvd + theorem IsDedekindDomain.HeightOneSpectrum.int_valuation_ne_zero' + theorem IsDedekindDomain.HeightOneSpectrum.int_valuation_ne_zero + theorem IsDedekindDomain.HeightOneSpectrum.int_valuation_zero_le + theorem IsDedekindDomain.HeightOneSpectrum.mem_adicCompletionIntegers + def IsDedekindDomain.HeightOneSpectrum.valuation + theorem IsDedekindDomain.HeightOneSpectrum.valuation_def + theorem IsDedekindDomain.HeightOneSpectrum.valuation_exists_uniformizer + theorem IsDedekindDomain.HeightOneSpectrum.valuation_le_one + theorem IsDedekindDomain.HeightOneSpectrum.valuation_lt_one_iff_dvd + theorem IsDedekindDomain.HeightOneSpectrum.valuation_of_algebraMap + theorem IsDedekindDomain.HeightOneSpectrum.valuation_of_mk' + theorem IsDedekindDomain.HeightOneSpectrum.valuation_uniformizer_ne_zero + theorem IsDedekindDomain.HeightOneSpectrum.valuedAdicCompletion_def Modified Mathlib/RingTheory/DedekindDomain/Factorization.lean Modified Mathlib/RingTheory/DedekindDomain/Ideal.lean +/- theorem IsDedekindDomain.HeightOneSpectrum.prime Modified Mathlib/Topology/Algebra/UniformField.lean Modified Mathlib/Topology/Algebra/UniformMulAction.lean 2023-06-22 15:02:42 a5e9328 feat: port AlgebraicGeometry.OpenImmersion.Scheme (#5290) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/AlgebraicGeometry/OpenImmersion/Scheme.lean + theorem AlgebraicGeometry.IsOpenImmersion.app_eq_invApp_app_of_comp_eq + theorem AlgebraicGeometry.IsOpenImmersion.app_eq_inv_app_app_of_comp_eq_aux + theorem AlgebraicGeometry.IsOpenImmersion.iff_stalk_iso + def AlgebraicGeometry.IsOpenImmersion.isoOfRangeEq + def AlgebraicGeometry.IsOpenImmersion.isoRestrict + def AlgebraicGeometry.IsOpenImmersion.lift + theorem AlgebraicGeometry.IsOpenImmersion.lift_app + theorem AlgebraicGeometry.IsOpenImmersion.lift_fac + theorem AlgebraicGeometry.IsOpenImmersion.lift_uniq + theorem AlgebraicGeometry.IsOpenImmersion.of_stalk_iso + theorem AlgebraicGeometry.IsOpenImmersion.open_range + theorem AlgebraicGeometry.IsOpenImmersion.range_pullback_fst_of_right + theorem AlgebraicGeometry.IsOpenImmersion.range_pullback_snd_of_left + theorem AlgebraicGeometry.IsOpenImmersion.range_pullback_to_base_of_left + theorem AlgebraicGeometry.IsOpenImmersion.range_pullback_to_base_of_right + theorem AlgebraicGeometry.IsOpenImmersion.to_iso + theorem AlgebraicGeometry.PresheafedSpace.IsOpenImmersion.scheme_eq_of_locallyRingedSpace_eq + theorem AlgebraicGeometry.PresheafedSpace.IsOpenImmersion.scheme_toScheme + def AlgebraicGeometry.PresheafedSpace.IsOpenImmersion.toScheme + def AlgebraicGeometry.PresheafedSpace.IsOpenImmersion.toSchemeHom + theorem AlgebraicGeometry.PresheafedSpace.IsOpenImmersion.toSchemeHom_val + theorem AlgebraicGeometry.PresheafedSpace.IsOpenImmersion.toScheme_toLocallyRingedSpace + def AlgebraicGeometry.Scheme.Hom.invApp + def AlgebraicGeometry.Scheme.Hom.opensRange + def AlgebraicGeometry.Scheme.OpenCover.add + def AlgebraicGeometry.Scheme.OpenCover.bind + theorem AlgebraicGeometry.Scheme.OpenCover.compactSpace + def AlgebraicGeometry.Scheme.OpenCover.copy + def AlgebraicGeometry.Scheme.OpenCover.finiteSubcover + theorem AlgebraicGeometry.Scheme.OpenCover.iSup_opensRange + theorem AlgebraicGeometry.Scheme.OpenCover.iUnion_range + def AlgebraicGeometry.Scheme.OpenCover.inter + def AlgebraicGeometry.Scheme.OpenCover.pullbackCover + def AlgebraicGeometry.Scheme.OpenCover.pushforwardIso + structure AlgebraicGeometry.Scheme.OpenCover + def AlgebraicGeometry.Scheme.affineBasisCover + def AlgebraicGeometry.Scheme.affineBasisCoverOfAffine + def AlgebraicGeometry.Scheme.affineBasisCoverRing + theorem AlgebraicGeometry.Scheme.affineBasisCover_is_basis + theorem AlgebraicGeometry.Scheme.affineBasisCover_map_range + theorem AlgebraicGeometry.Scheme.affineBasisCover_obj + def AlgebraicGeometry.Scheme.affineCover + theorem AlgebraicGeometry.Scheme.image_basicOpen + def AlgebraicGeometry.Scheme.ofRestrict + def AlgebraicGeometry.Scheme.openCoverOfIsIso + def AlgebraicGeometry.Scheme.openCoverOfSuprEqTop + def AlgebraicGeometry.Scheme.restrict + def AlgebraicGeometry.Scheme.restrictFunctor + theorem AlgebraicGeometry.Scheme.restrictFunctor_map_app + theorem AlgebraicGeometry.Scheme.restrictFunctor_map_app_aux + theorem AlgebraicGeometry.Scheme.restrictFunctor_map_base + theorem AlgebraicGeometry.Scheme.restrictFunctor_map_left + theorem AlgebraicGeometry.Scheme.restrictFunctor_map_ofRestrict + theorem AlgebraicGeometry.Scheme.restrictFunctor_obj_hom + theorem AlgebraicGeometry.Scheme.restrictFunctor_obj_left + def AlgebraicGeometry.Scheme.restrictFunctorΓ + theorem AlgebraicGeometry.image_morphismRestrict_preimage + theorem AlgebraicGeometry.isIso_iff_isOpenImmersion + theorem AlgebraicGeometry.isIso_iff_stalk_iso + theorem AlgebraicGeometry.isPullback_morphismRestrict + def AlgebraicGeometry.morphismRestrict + def AlgebraicGeometry.morphismRestrictEq + def AlgebraicGeometry.morphismRestrictOpensRange + def AlgebraicGeometry.morphismRestrictRestrict + def AlgebraicGeometry.morphismRestrictRestrictBasicOpen + def AlgebraicGeometry.morphismRestrictStalkMap + theorem AlgebraicGeometry.morphismRestrict_base_coe + theorem AlgebraicGeometry.morphismRestrict_c_app + theorem AlgebraicGeometry.morphismRestrict_comp + theorem AlgebraicGeometry.morphismRestrict_val_base + theorem AlgebraicGeometry.morphismRestrict_ι + def AlgebraicGeometry.pullbackRestrictIsoRestrict + theorem AlgebraicGeometry.pullbackRestrictIsoRestrict_hom_morphismRestrict + theorem AlgebraicGeometry.pullbackRestrictIsoRestrict_hom_restrict + theorem AlgebraicGeometry.pullbackRestrictIsoRestrict_inv_fst + theorem AlgebraicGeometry.Γ_map_morphismRestrict Modified Mathlib/AlgebraicGeometry/Scheme.lean 2023-06-22 15:02:41 cc927b7 feat: port AlgebraicGeometry.GammaSpecAdjunction (#5079) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/AlgebraicGeometry/GammaSpecAdjunction.lean + theorem AlgebraicGeometry.LocallyRingedSpace.comp_ring_hom_ext + theorem AlgebraicGeometry.LocallyRingedSpace.isUnit_res_toΓSpecMapBasicOpen + theorem AlgebraicGeometry.LocallyRingedSpace.not_mem_prime_iff_unit_in_stalk + theorem AlgebraicGeometry.LocallyRingedSpace.toStalk_stalkMap_to_Γ_Spec + theorem AlgebraicGeometry.LocallyRingedSpace.to_Γ_Spec_continuous + theorem AlgebraicGeometry.LocallyRingedSpace.to_Γ_Spec_preim_basicOpen_eq + def AlgebraicGeometry.LocallyRingedSpace.toΓSpec + def AlgebraicGeometry.LocallyRingedSpace.toΓSpecBase + def AlgebraicGeometry.LocallyRingedSpace.toΓSpecCApp + theorem AlgebraicGeometry.LocallyRingedSpace.toΓSpecCApp_iff + theorem AlgebraicGeometry.LocallyRingedSpace.toΓSpecCApp_spec + def AlgebraicGeometry.LocallyRingedSpace.toΓSpecCBasicOpens + def AlgebraicGeometry.LocallyRingedSpace.toΓSpecFun + theorem AlgebraicGeometry.LocallyRingedSpace.toΓSpecMapBasicOpen_eq + def AlgebraicGeometry.LocallyRingedSpace.toΓSpecSheafedSpace + theorem AlgebraicGeometry.LocallyRingedSpace.toΓSpecSheafedSpace_app_eq + theorem AlgebraicGeometry.LocallyRingedSpace.toΓSpecSheafedSpace_app_spec + def AlgebraicGeometry.LocallyRingedSpace.ΓToStalk + theorem AlgebraicGeometry.LocallyRingedSpace.Γ_Spec_left_triangle + def AlgebraicGeometry.identityToΓSpec + def AlgebraicGeometry.ΓSpec.adjunction + theorem AlgebraicGeometry.ΓSpec.adjunction_counit_app + theorem AlgebraicGeometry.ΓSpec.adjunction_homEquiv + theorem AlgebraicGeometry.ΓSpec.adjunction_homEquiv_apply + theorem AlgebraicGeometry.ΓSpec.adjunction_homEquiv_symm_apply + theorem AlgebraicGeometry.ΓSpec.adjunction_unit_app + theorem AlgebraicGeometry.ΓSpec.adjunction_unit_app_app_top + theorem AlgebraicGeometry.ΓSpec.left_triangle + def AlgebraicGeometry.ΓSpec.locallyRingedSpaceAdjunction + theorem AlgebraicGeometry.ΓSpec.locallyRingedSpaceAdjunction_counit + theorem AlgebraicGeometry.ΓSpec.locallyRingedSpaceAdjunction_unit + theorem AlgebraicGeometry.ΓSpec.right_triangle Modified Mathlib/AlgebraicGeometry/LocallyRingedSpace.lean + theorem AlgebraicGeometry.LocallyRingedSpace.Hom.ext' 2023-06-22 14:11:26 e172d9e feat: port Data.Matrix.Invertible (#5366) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Data/Matrix/Invertible.lean + def Invertible.matrixMul + def Invertible.matrixMulLeft + def Invertible.matrixMulRight Modified Mathlib/LinearAlgebra/Matrix/NonsingularInverse.lean 2023-06-22 13:19:47 358faa8 feat: port Analysis.NormedSpace.MatrixExponential (#5381) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Analysis/Matrix.lean Added Mathlib/Analysis/NormedSpace/MatrixExponential.lean + theorem Matrix.IsHermitian.exp + theorem Matrix.IsSymm.exp + theorem Matrix.exp_blockDiagonal' + theorem Matrix.exp_blockDiagonal + theorem Matrix.exp_conj' + theorem Matrix.exp_conj + theorem Matrix.exp_conjTranspose + theorem Matrix.exp_diagonal + theorem Matrix.exp_neg + theorem Matrix.exp_transpose + theorem Matrix.exp_units_conj' + theorem Matrix.exp_zsmul Modified Mathlib/Data/Matrix/Basic.lean Modified Mathlib/Topology/Algebra/Ring/Basic.lean 2023-06-22 09:57:58 b90d47b feat: port LinearAlgebra.ExteriorAlgebra.Basic (#5375) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/LinearAlgebra/ExteriorAlgebra/Basic.lean + def ExteriorAlgebra.algebraMapInv + theorem ExteriorAlgebra.algebraMap_eq_one_iff + theorem ExteriorAlgebra.algebraMap_eq_zero_iff + theorem ExteriorAlgebra.algebraMap_inj + theorem ExteriorAlgebra.algebraMap_leftInverse + theorem ExteriorAlgebra.comp_ι_sq_zero + theorem ExteriorAlgebra.hom_ext + theorem ExteriorAlgebra.induction + def ExteriorAlgebra.invertibleAlgebraMapEquiv + theorem ExteriorAlgebra.isUnit_algebraMap + def ExteriorAlgebra.lift + theorem ExteriorAlgebra.lift_comp_ι + theorem ExteriorAlgebra.lift_unique + theorem ExteriorAlgebra.lift_ι_apply + def ExteriorAlgebra.toTrivSqZeroExt + theorem ExteriorAlgebra.toTrivSqZeroExt_ι + def ExteriorAlgebra.ι + def ExteriorAlgebra.ιInv + def ExteriorAlgebra.ιMulti + theorem ExteriorAlgebra.ιMulti_apply + theorem ExteriorAlgebra.ιMulti_succ_apply + theorem ExteriorAlgebra.ιMulti_succ_curryLeft + theorem ExteriorAlgebra.ιMulti_zero_apply + theorem ExteriorAlgebra.ι_add_mul_swap + theorem ExteriorAlgebra.ι_comp_lift + theorem ExteriorAlgebra.ι_eq_algebraMap_iff + theorem ExteriorAlgebra.ι_eq_zero_iff + theorem ExteriorAlgebra.ι_inj + theorem ExteriorAlgebra.ι_leftInverse + theorem ExteriorAlgebra.ι_mul_prod_list + theorem ExteriorAlgebra.ι_ne_one + theorem ExteriorAlgebra.ι_range_disjoint_one + theorem ExteriorAlgebra.ι_sq_zero + def ExteriorAlgebra + def TensorAlgebra.toExterior + theorem TensorAlgebra.toExterior_ι 2023-06-22 09:57:57 8c343e5 chore: forward-port mathlib#19204 (#5369) ESTIMATED CHANGES Modified Mathlib/Algebra/Invertible.lean + def Invertible.copy' + def Invertible.mul + def Invertible.mulLeft + def Invertible.mulRight + def invertibleOfInvertibleMul + def invertibleOfMulInvertible 2023-06-22 09:14:22 5a55608 feat: port NumberTheory.Cyclotomic.Basic (#5335) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/NumberTheory/Cyclotomic/Basic.lean + def CyclotomicField + theorem CyclotomicRing.adjoin_algebra_injective + theorem CyclotomicRing.algebraBase_injective + theorem CyclotomicRing.eq_adjoin_primitive_root + def CyclotomicRing + theorem IsAlgClosed.isCyclotomicExtension + theorem IsCyclotomicExtension.adjoin_primitive_root_eq_top + theorem IsCyclotomicExtension.adjoin_roots_cyclotomic_eq_adjoin_nth_roots + theorem IsCyclotomicExtension.adjoin_roots_cyclotomic_eq_adjoin_root_cyclotomic + def IsCyclotomicExtension.algEquiv + theorem IsCyclotomicExtension.empty + theorem IsCyclotomicExtension.equiv + theorem IsCyclotomicExtension.finite + theorem IsCyclotomicExtension.finiteDimensional + theorem IsCyclotomicExtension.finite_of_singleton + theorem IsCyclotomicExtension.iff_adjoin_eq_top + theorem IsCyclotomicExtension.iff_singleton + theorem IsCyclotomicExtension.iff_union_of_dvd + theorem IsCyclotomicExtension.iff_union_singleton_one + theorem IsCyclotomicExtension.integral + theorem IsCyclotomicExtension.isGalois + theorem IsCyclotomicExtension.isSplittingField_X_pow_sub_one + theorem IsCyclotomicExtension.neZero + theorem IsCyclotomicExtension.ne_zero' + theorem IsCyclotomicExtension.numberField + theorem IsCyclotomicExtension.of_union_of_dvd + theorem IsCyclotomicExtension.singleton_one + theorem IsCyclotomicExtension.singleton_one_of_algebraMap_bijective + theorem IsCyclotomicExtension.singleton_one_of_bot_eq_top + theorem IsCyclotomicExtension.singleton_zero_of_bot_eq_top + theorem IsCyclotomicExtension.splits_X_pow_sub_one + theorem IsCyclotomicExtension.splits_cyclotomic + theorem IsCyclotomicExtension.splitting_field_cyclotomic + theorem IsCyclotomicExtension.subsingleton_iff + theorem IsCyclotomicExtension.trans + theorem IsCyclotomicExtension.union_left + theorem IsCyclotomicExtension.union_right + theorem IsPrimitiveRoot.adjoin_isCyclotomicExtension Modified Mathlib/RingTheory/Adjoin/Basic.lean 2023-06-22 07:23:55 8a76b3e feat: port NumberTheory.Zsqrtd.GaussianInt (#5134) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Data/Complex/Basic.lean Added Mathlib/NumberTheory/Zsqrtd/GaussianInt.lean + theorem GaussianInt.abs_coe_nat_norm + theorem GaussianInt.div_def + theorem GaussianInt.int_cast_complex_norm + theorem GaussianInt.int_cast_real_norm + theorem GaussianInt.mod_def + theorem GaussianInt.natAbs_norm_eq + theorem GaussianInt.natAbs_norm_mod_lt + theorem GaussianInt.nat_cast_natAbs_norm + theorem GaussianInt.normSq_div_sub_div_lt_one + theorem GaussianInt.normSq_le_normSq_of_re_le_of_im_le + theorem GaussianInt.norm_eq_zero + theorem GaussianInt.norm_le_norm_mul_left + theorem GaussianInt.norm_mod_lt + theorem GaussianInt.norm_nonneg + theorem GaussianInt.norm_pos + theorem GaussianInt.sq_add_sq_of_nat_prime_of_not_irreducible + def GaussianInt.toComplex + theorem GaussianInt.toComplex_add + theorem GaussianInt.toComplex_def' + theorem GaussianInt.toComplex_def + theorem GaussianInt.toComplex_def₂ + theorem GaussianInt.toComplex_div_im + theorem GaussianInt.toComplex_div_re + theorem GaussianInt.toComplex_eq_zero + theorem GaussianInt.toComplex_im + theorem GaussianInt.toComplex_inj + theorem GaussianInt.toComplex_mul + theorem GaussianInt.toComplex_neg + theorem GaussianInt.toComplex_one + theorem GaussianInt.toComplex_re + theorem GaussianInt.toComplex_star + theorem GaussianInt.toComplex_sub + theorem GaussianInt.toComplex_zero + theorem GaussianInt.to_real_im + theorem GaussianInt.to_real_re + def GaussianInt 2023-06-22 06:58:23 5040af2 feat: port RingTheory.Ideal.Norm (#5311) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/RingTheory/Ideal/Norm.lean + theorem Ideal.absNorm_apply + theorem Ideal.absNorm_bot + theorem Ideal.absNorm_dvd_absNorm_of_le + theorem Ideal.absNorm_dvd_norm_of_mem + theorem Ideal.absNorm_eq_one_iff + theorem Ideal.absNorm_mem + theorem Ideal.absNorm_ne_zero_iff + theorem Ideal.absNorm_span_insert + theorem Ideal.absNorm_span_singleton + theorem Ideal.absNorm_top + theorem Ideal.exists_mul_add_mem_pow_succ + theorem Ideal.finite_setOf_absNorm_eq + theorem Ideal.irreducible_of_irreducible_absNorm + theorem Ideal.isPrime_of_irreducible_absNorm + theorem Ideal.map_relNorm + theorem Ideal.map_spanNorm + theorem Ideal.mem_prime_of_mul_mem_pow + theorem Ideal.mul_add_mem_pow_succ_inj + theorem Ideal.mul_add_mem_pow_succ_unique + theorem Ideal.natAbs_det_basis_change + theorem Ideal.natAbs_det_equiv + theorem Ideal.norm_mem_relNorm + theorem Ideal.norm_mem_spanNorm + theorem Ideal.prime_of_irreducible_absNorm_span + def Ideal.relNorm + theorem Ideal.relNorm_apply + theorem Ideal.relNorm_bot + theorem Ideal.relNorm_eq_bot_iff + theorem Ideal.relNorm_mono + theorem Ideal.relNorm_singleton + theorem Ideal.relNorm_top + def Ideal.spanNorm + theorem Ideal.spanNorm_bot + theorem Ideal.spanNorm_eq + theorem Ideal.spanNorm_eq_bot_iff + theorem Ideal.spanNorm_localization + theorem Ideal.spanNorm_mono + theorem Ideal.spanNorm_mul + theorem Ideal.spanNorm_mul_of_bot_or_top + theorem Ideal.spanNorm_mul_of_field + theorem Ideal.spanNorm_mul_spanNorm_le + theorem Ideal.spanNorm_singleton + theorem Ideal.spanNorm_top + theorem Ideal.span_singleton_absNorm_le + theorem Submodule.cardQuot_apply + theorem Submodule.cardQuot_bot + theorem Submodule.cardQuot_eq_one_iff + theorem Submodule.cardQuot_top + theorem cardQuot_mul + theorem cardQuot_mul_of_coprime + theorem cardQuot_pow_of_prime 2023-06-22 05:54:42 81c3108 feat: port NumberTheory.NumberField.Units (#5359) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/NumberTheory/NumberField/Units.lean + theorem Rat.RingOfIntegers.isUnit_iff + theorem isUnit_iff_norm 2023-06-22 05:54:41 29c4785 chore: remove AddGroupWithZeroNhd (#5357) This was from the earliest days of mathlib, and has not been relevant/used for years. ESTIMATED CHANGES Modified Mathlib/Topology/Algebra/Group/Basic.lean 2023-06-22 05:54:40 ca5468e feat: the "average" measure is always finite (#5320) The measure `(μ univ)⁻¹ • μ` used in the definition of `⨍ x, f x ∂μ` is always a finite measure. ESTIMATED CHANGES Modified Mathlib/Data/Real/ENNReal.lean Modified Mathlib/MeasureTheory/Measure/MeasureSpace.lean 2023-06-22 05:54:38 3c283ad feat: port Analysis.Calculus.Implicit (#4665) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/Calculus/Implicit.lean + theorem HasStrictFDerivAt.eq_implicitFunction + theorem HasStrictFDerivAt.eq_implicitFunctionOfComplemented + def HasStrictFDerivAt.implicitFunction + def HasStrictFDerivAt.implicitFunctionDataOfComplemented + def HasStrictFDerivAt.implicitFunctionOfComplemented + theorem HasStrictFDerivAt.implicitFunctionOfComplemented_apply_image + theorem HasStrictFDerivAt.implicitFunction_apply_image + def HasStrictFDerivAt.implicitToLocalHomeomorph + def HasStrictFDerivAt.implicitToLocalHomeomorphOfComplemented + theorem HasStrictFDerivAt.implicitToLocalHomeomorphOfComplemented_apply + theorem HasStrictFDerivAt.implicitToLocalHomeomorphOfComplemented_apply_ker + theorem HasStrictFDerivAt.implicitToLocalHomeomorphOfComplemented_fst + theorem HasStrictFDerivAt.implicitToLocalHomeomorphOfComplemented_self + theorem HasStrictFDerivAt.implicitToLocalHomeomorph_apply_ker + theorem HasStrictFDerivAt.implicitToLocalHomeomorph_fst + theorem HasStrictFDerivAt.implicitToLocalHomeomorph_self + theorem HasStrictFDerivAt.map_implicitFunctionOfComplemented_eq + theorem HasStrictFDerivAt.map_implicitFunction_eq + theorem HasStrictFDerivAt.mem_implicitToLocalHomeomorphOfComplemented_source + theorem HasStrictFDerivAt.mem_implicitToLocalHomeomorphOfComplemented_target + theorem HasStrictFDerivAt.mem_implicitToLocalHomeomorph_source + theorem HasStrictFDerivAt.mem_implicitToLocalHomeomorph_target + theorem HasStrictFDerivAt.tendsto_implicitFunction + theorem HasStrictFDerivAt.to_implicitFunction + theorem HasStrictFDerivAt.to_implicitFunctionOfComplemented + def ImplicitFunctionData.implicitFunction + theorem ImplicitFunctionData.implicitFunction_apply_image + theorem ImplicitFunctionData.implicitFunction_hasStrictFDerivAt + theorem ImplicitFunctionData.left_map_implicitFunction + theorem ImplicitFunctionData.map_nhds_eq + theorem ImplicitFunctionData.map_pt_mem_toLocalHomeomorph_target + def ImplicitFunctionData.prodFun + theorem ImplicitFunctionData.prodFun_apply + theorem ImplicitFunctionData.prod_map_implicitFunction + theorem ImplicitFunctionData.pt_mem_toLocalHomeomorph_source + theorem ImplicitFunctionData.right_map_implicitFunction + def ImplicitFunctionData.toLocalHomeomorph + theorem ImplicitFunctionData.toLocalHomeomorph_apply + theorem ImplicitFunctionData.toLocalHomeomorph_coe + structure ImplicitFunctionData 2023-06-22 04:55:03 c061be5 fix(Probability/Notation): fix notation for `rnDeriv` (#5361) This PR fixes the `∂P/∂Q` notation for the Radon-Nikodym derivative. I chose a priority to ensure that `∂P/∂Q = 0` parses correctly, but I didn't extensively investigate this. ESTIMATED CHANGES Modified Mathlib/Probability/Notation.lean 2023-06-22 04:55:02 7d0889c fix: use main context in `tfae` tactics (#5358) A Qq match in `tfae` was failing due to an absent `withContext`. See [zulip](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/Bug.20with.20tfae_have.3F). Separately, we also add an `instantiateMVars` in the appropriate place while we're at it, just to preempt problems there. ESTIMATED CHANGES Modified Mathlib/Tactic/TFAE.lean Modified test/tfae.lean 2023-06-22 04:55:01 0d584e4 chore: tidy various files (#5355) ESTIMATED CHANGES Modified Archive/Imo/Imo1987Q1.lean Modified Mathlib/Analysis/BoxIntegral/Basic.lean Modified Mathlib/Analysis/NormedSpace/Basic.lean Modified Mathlib/Analysis/SpecialFunctions/Pow/Real.lean Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Arctan.lean Modified Mathlib/FieldTheory/IsAlgClosed/AlgebraicClosure.lean Modified Mathlib/FieldTheory/Minpoly/IsIntegrallyClosed.lean Modified Mathlib/FieldTheory/RatFunc.lean Modified Mathlib/GroupTheory/Schreier.lean Modified Mathlib/GroupTheory/Subsemigroup/Operations.lean Modified Mathlib/LinearAlgebra/PiTensorProduct.lean Modified Mathlib/MeasureTheory/Function/ContinuousMapDense.lean Modified Mathlib/Probability/Martingale/OptionalSampling.lean Modified Mathlib/RingTheory/Polynomial/Cyclotomic/Roots.lean Modified Mathlib/Tactic/NoncommRing.lean Modified Mathlib/Topology/Algebra/Module/CharacterSpace.lean Modified Mathlib/Topology/Category/Compactum.lean 2023-06-22 04:55:00 96e6844 feat: port LinearAlgebra.CliffordAlgebra.Basic (#4802) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/LinearAlgebra/CliffordAlgebra/Basic.lean + inductive CliffordAlgebra.Rel + theorem CliffordAlgebra.comp_ι_sq_scalar + def CliffordAlgebra.equivOfIsometry + theorem CliffordAlgebra.equivOfIsometry_refl + theorem CliffordAlgebra.equivOfIsometry_symm + theorem CliffordAlgebra.equivOfIsometry_trans + theorem CliffordAlgebra.hom_ext + theorem CliffordAlgebra.induction + theorem CliffordAlgebra.invOf_ι + theorem CliffordAlgebra.invOf_ι_mul_ι_mul_ι + def CliffordAlgebra.invertibleιOfInvertible + theorem CliffordAlgebra.isUnit_ι_of_isUnit + def CliffordAlgebra.lift + theorem CliffordAlgebra.lift_comp_ι + theorem CliffordAlgebra.lift_unique + theorem CliffordAlgebra.lift_ι_apply + def CliffordAlgebra.map + theorem CliffordAlgebra.map_apply_ι + theorem CliffordAlgebra.map_comp_map + theorem CliffordAlgebra.map_comp_ι + theorem CliffordAlgebra.map_id + def CliffordAlgebra.ι + theorem CliffordAlgebra.ι_comp_lift + theorem CliffordAlgebra.ι_mul_comm + theorem CliffordAlgebra.ι_mul_ι_add_swap + theorem CliffordAlgebra.ι_mul_ι_mul_invOf_ι + theorem CliffordAlgebra.ι_mul_ι_mul_ι + theorem CliffordAlgebra.ι_range_map_lift + theorem CliffordAlgebra.ι_range_map_map + theorem CliffordAlgebra.ι_sq_scalar + def CliffordAlgebra + def TensorAlgebra.toClifford + theorem TensorAlgebra.toClifford_ι 2023-06-22 03:44:17 231235c feat: add `simp` to `IsCentralScalar.op_smul_eq_smul` (#5346) ESTIMATED CHANGES Modified Mathlib/GroupTheory/GroupAction/Defs.lean 2023-06-22 02:04:43 fc31952 chore: update SHA (#5354) This was already ported in #5254 ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/Eigenspace/Minpoly.lean 2023-06-22 01:51:07 79ca679 feat: port Analysis.NormedSpace.Star.Matrix (#5360) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/NormedSpace/Star/Matrix.lean + theorem entry_norm_bound_of_unitary + theorem entrywise_sup_norm_bound_of_unitary 2023-06-22 00:17:51 e53fb91 feat: port Analysis.Matrix (#4490) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/Matrix.lean + def Matrix.frobeniusNormedAddCommGroup + def Matrix.frobeniusNormedAlgebra + def Matrix.frobeniusNormedRing + def Matrix.frobeniusNormedSpace + def Matrix.frobeniusSeminormedAddCommGroup + theorem Matrix.frobenius_nnnorm_col + theorem Matrix.frobenius_nnnorm_conjTranspose + theorem Matrix.frobenius_nnnorm_def + theorem Matrix.frobenius_nnnorm_diagonal + theorem Matrix.frobenius_nnnorm_map_eq + theorem Matrix.frobenius_nnnorm_mul + theorem Matrix.frobenius_nnnorm_one + theorem Matrix.frobenius_nnnorm_row + theorem Matrix.frobenius_nnnorm_transpose + theorem Matrix.frobenius_norm_col + theorem Matrix.frobenius_norm_conjTranspose + theorem Matrix.frobenius_norm_def + theorem Matrix.frobenius_norm_diagonal + theorem Matrix.frobenius_norm_map_eq + theorem Matrix.frobenius_norm_mul + theorem Matrix.frobenius_norm_row + theorem Matrix.frobenius_norm_transpose + theorem Matrix.linfty_op_nnnorm_col + theorem Matrix.linfty_op_nnnorm_def + theorem Matrix.linfty_op_nnnorm_diagonal + theorem Matrix.linfty_op_nnnorm_mul + theorem Matrix.linfty_op_nnnorm_mulVec + theorem Matrix.linfty_op_nnnorm_row + theorem Matrix.linfty_op_norm_col + theorem Matrix.linfty_op_norm_def + theorem Matrix.linfty_op_norm_diagonal + theorem Matrix.linfty_op_norm_mul + theorem Matrix.linfty_op_norm_mulVec + theorem Matrix.linfty_op_norm_row + theorem Matrix.nnnorm_col + theorem Matrix.nnnorm_conjTranspose + theorem Matrix.nnnorm_def + theorem Matrix.nnnorm_diagonal + theorem Matrix.nnnorm_entry_le_entrywise_sup_nnnorm + theorem Matrix.nnnorm_le_iff + theorem Matrix.nnnorm_lt_iff + theorem Matrix.nnnorm_map_eq + theorem Matrix.nnnorm_row + theorem Matrix.nnnorm_transpose + theorem Matrix.norm_col + theorem Matrix.norm_conjTranspose + theorem Matrix.norm_def + theorem Matrix.norm_diagonal + theorem Matrix.norm_entry_le_entrywise_sup_norm + theorem Matrix.norm_le_iff + theorem Matrix.norm_lt_iff + theorem Matrix.norm_map_eq + theorem Matrix.norm_row + theorem Matrix.norm_transpose Modified Mathlib/Data/Matrix/Basic.lean 2023-06-21 23:15:20 ecb36a8 feat: add Aesop rules for Discrete category (#2519) Adds a global Aesop `cases` rule for the `Discrete` category. This rule was previously added locally in several places. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Adjunction/Comma.lean Modified Mathlib/CategoryTheory/DiscreteCategory.lean Modified Mathlib/CategoryTheory/GradedObject.lean Modified Mathlib/CategoryTheory/Limits/Constructions/Over/Products.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Products.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Terminal.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Types.lean Modified Mathlib/CategoryTheory/Limits/Shapes/ZeroMorphisms.lean Modified Mathlib/CategoryTheory/Monoidal/OfChosenFiniteProducts/Basic.lean Modified Mathlib/CategoryTheory/PEmpty.lean Modified Mathlib/CategoryTheory/StructuredArrow.lean 2023-06-21 21:04:36 e032d37 feat: port NumberTheory.NumberField.Norm (#5353) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/FieldTheory/IsAlgClosed/AlgebraicClosure.lean Added Mathlib/NumberTheory/NumberField/Norm.lean + theorem RingOfIntegers.coe_algebraMap_norm + theorem RingOfIntegers.coe_norm_algebraMap + theorem RingOfIntegers.dvd_norm + theorem RingOfIntegers.isUnit_norm + theorem RingOfIntegers.isUnit_norm_of_isGalois + theorem RingOfIntegers.norm_algebraMap + theorem RingOfIntegers.norm_norm 2023-06-21 21:04:34 ce12efa feat: port RingTheory.Valuation.RamificationGroup (#5351) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/RingTheory/Valuation/RamificationGroup.lean + def ValuationSubring.decompositionSubgroup + def ValuationSubring.inertiaSubgroup + def ValuationSubring.subMulAction 2023-06-21 21:04:33 05a29ea feat: port CategoryTheory.Category.PartialFun (#5301) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Category/PartialFun.lean + def PartialFun.Iso.mk + def PartialFun.of + def PartialFun + def pointedToPartialFun + def typeToPartialFun Modified Mathlib/Data/Option/Defs.lean + theorem Option.elim'_eq_elim 2023-06-21 19:45:45 28cbaf7 fix: make `change` tactic use `show` term directly (#3947) `change` was using the `show` tactic when operating on the main goal, but it was relying on the programmed behavior of `show` rather than the behavior implied by its docstring, which claims it can be used to *select* a goal. This modifies `change` to apply the exact behavior needed to protect against any future changes to the `show` tactic. ESTIMATED CHANGES Modified Mathlib/Tactic/Basic.lean 2023-06-21 19:20:57 a7a9993 feat: `variable?` command for automatically adding typeclass dependencies (#3162) The `variable?` command is like `variable`, but whenever there is an unsatisfied typeclass problem, it inserts this problem as a new instance argument and continues. For example, if you write ``` variable? [Module R M] ``` then, assuming there are no other instances in scope, it's as if you wrote ``` variable [Semiring R] [AddCommMonoid M] [Module R M] ``` It will not include instances that can be deduced from others in scope. It can handle parameterized instances: ``` variable? (f : α → Type) [(i : α) → Module R (f i)] ``` There are some inherent limitations with this system. The main one is that internally variables are stored as Syntax objects, so whenever `variables?` discovers a missing instance argument, it has to pretty print it. If pretty printing does not round trip (for instance due to implicit arguments) then the command might fail. As a safeguard against changes in the typeclass hierarchy, the command suggests replacing itself with a version that includes the expanded binders list, for example ``` variable? [Module R M] => [Semiring R] [AddCommMonoid M] [Module R M] ``` This expanded list is elaborated separately for a defeq check on the resulting contexts. If the short version is not wanted, one can always replace everything up to and including the `=>` with `variable`. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Tactic.lean Added Mathlib/Tactic/Variable.lean + def Mathlib.Command.Variable.bracketedBinderType + def Mathlib.Command.Variable.cleanBinders + def Mathlib.Command.Variable.completeBinders + def Mathlib.Command.Variable.elabVariables + def Mathlib.Command.Variable.ignorevariable? + def Mathlib.Command.Variable.pendingActionableSynthMVar Added test/Variable.lean + structure Tests.Rep + structure Tests.UniqueFactorizationDomain + structure Tests.VectorSpace 2023-06-21 16:11:57 ee000bf feat: port RingTheory.Valuation.ValuationSubring (#4791) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Order/RelClasses.lean Modified Mathlib/RingTheory/Valuation/ValuationRing.lean Added Mathlib/RingTheory/Valuation/ValuationSubring.lean + theorem Valuation.isEquiv_iff_valuationSubring + theorem Valuation.isEquiv_valuation_valuationSubring + theorem Valuation.mem_unitGroup_iff + theorem Valuation.mem_valuationSubring_iff + def Valuation.valuationSubring + def ValuationSubring.ValueGroup + theorem ValuationSubring.add_mem + theorem ValuationSubring.algebraMap_apply + theorem ValuationSubring.coe_comap + theorem ValuationSubring.coe_mem_nonunits_iff + theorem ValuationSubring.coe_mem_principalUnitGroup_iff + theorem ValuationSubring.coe_pointwise_smul + theorem ValuationSubring.coe_unitGroupMulEquiv_apply + theorem ValuationSubring.coe_unitGroupMulEquiv_symm_apply + theorem ValuationSubring.coe_unitGroupToResidueFieldUnits_apply + def ValuationSubring.comap + theorem ValuationSubring.comap_comap + theorem ValuationSubring.eq_iff_principalUnitGroup + theorem ValuationSubring.eq_iff_unitGroup + theorem ValuationSubring.ext + def ValuationSubring.idealOfLE + theorem ValuationSubring.idealOfLE_le_of_le + theorem ValuationSubring.idealOfLE_ofPrime + theorem ValuationSubring.image_maximalIdeal + def ValuationSubring.inclusion + theorem ValuationSubring.ker_unitGroupToResidueFieldUnits + theorem ValuationSubring.le_ofPrime + theorem ValuationSubring.le_top + def ValuationSubring.mapOfLE + theorem ValuationSubring.mapOfLE_comp_valuation + theorem ValuationSubring.mapOfLE_valuation_apply + theorem ValuationSubring.mem_carrier + theorem ValuationSubring.mem_comap + theorem ValuationSubring.mem_inv_pointwise_smul_iff + theorem ValuationSubring.mem_nonunits_iff + theorem ValuationSubring.mem_nonunits_iff_exists_mem_maximalIdeal + theorem ValuationSubring.mem_ofSubring + theorem ValuationSubring.mem_of_valuation_le_one + theorem ValuationSubring.mem_or_inv_mem + theorem ValuationSubring.mem_pointwise_smul_iff_inv_smul_mem + theorem ValuationSubring.mem_principalUnitGroup_iff + theorem ValuationSubring.mem_smul_pointwise_iff_exists + theorem ValuationSubring.mem_toSubring + theorem ValuationSubring.mem_top + theorem ValuationSubring.mem_unitGroup_iff + theorem ValuationSubring.monotone_mapOfLE + theorem ValuationSubring.mul_mem + theorem ValuationSubring.neg_mem + def ValuationSubring.nonunits + def ValuationSubring.nonunitsOrderEmbedding + theorem ValuationSubring.nonunits_inj + theorem ValuationSubring.nonunits_injective + theorem ValuationSubring.nonunits_le + theorem ValuationSubring.nonunits_le_nonunits + theorem ValuationSubring.nonunits_subset + def ValuationSubring.ofLE + def ValuationSubring.ofPrime + theorem ValuationSubring.ofPrime_idealOfLE + theorem ValuationSubring.ofPrime_le_of_le + theorem ValuationSubring.ofPrime_valuation_eq_one_iff_mem_primeCompl + def ValuationSubring.ofSubring + theorem ValuationSubring.one_mem + def ValuationSubring.pointwiseHasSmul + def ValuationSubring.pointwiseMulAction + theorem ValuationSubring.pointwise_smul_le_pointwise_smul_iff + theorem ValuationSubring.pointwise_smul_subset_iff + theorem ValuationSubring.pointwise_smul_toSubring + def ValuationSubring.primeSpectrumEquiv + def ValuationSubring.primeSpectrumOrderEquiv + def ValuationSubring.principalUnitGroup + def ValuationSubring.principalUnitGroupEquiv + theorem ValuationSubring.principalUnitGroupEquiv_apply + def ValuationSubring.principalUnitGroupOrderEmbedding + theorem ValuationSubring.principalUnitGroup_injective + theorem ValuationSubring.principalUnitGroup_le_principalUnitGroup + theorem ValuationSubring.principalUnitGroup_symm_apply + theorem ValuationSubring.principal_units_le_units + theorem ValuationSubring.smul_mem_pointwise_smul + theorem ValuationSubring.smul_mem_pointwise_smul_iff + theorem ValuationSubring.subset_pointwise_smul_iff + def ValuationSubring.subtype + theorem ValuationSubring.surjective_unitGroupToResidueFieldUnits + theorem ValuationSubring.toSubring_injective + def ValuationSubring.unitGroup + def ValuationSubring.unitGroupMulEquiv + def ValuationSubring.unitGroupOrderEmbedding + def ValuationSubring.unitGroupToResidueFieldUnits + theorem ValuationSubring.unitGroup_injective + theorem ValuationSubring.unitGroup_le_unitGroup + theorem ValuationSubring.unitGroup_strictMono + def ValuationSubring.unitsModPrincipalUnitsEquivResidueFieldUnits + theorem ValuationSubring.unitsModPrincipalUnitsEquivResidueFieldUnits_comp_quotientGroup_mk + theorem ValuationSubring.unitsModPrincipalUnitsEquivResidueFieldUnits_comp_quotientGroup_mk_apply + def ValuationSubring.valuation + theorem ValuationSubring.valuationSubring_valuation + theorem ValuationSubring.valuation_eq_iff + theorem ValuationSubring.valuation_eq_one_iff + theorem ValuationSubring.valuation_le_iff + theorem ValuationSubring.valuation_le_one + theorem ValuationSubring.valuation_le_one_iff + theorem ValuationSubring.valuation_lt_one_iff + theorem ValuationSubring.valuation_lt_one_or_eq_one + theorem ValuationSubring.valuation_surjective + theorem ValuationSubring.valuation_unit + theorem ValuationSubring.zero_mem + structure ValuationSubring 2023-06-21 15:32:58 c46fb45 feat: port Analysis.Convolution (#4929) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/Convolution.lean + theorem BddAbove.continuous_convolution_left_of_integrable + theorem BddAbove.continuous_convolution_right_of_integrable + theorem BddAbove.convolutionExistsAt' + theorem BddAbove.convolutionExistsAt + theorem ContDiffBump.convolution_eq_right + theorem ContDiffBump.convolution_tendsto_right_of_continuous + theorem ContDiffBump.dist_normed_convolution_le + theorem ContDiffBump.normed_convolution_eq_right + theorem Continuous.convolution_integrand_fst + theorem ConvolutionExists.add_distrib + theorem ConvolutionExists.distrib_add + def ConvolutionExists + theorem ConvolutionExistsAt.add_distrib + theorem ConvolutionExistsAt.distrib_add + theorem ConvolutionExistsAt.integrable + theorem ConvolutionExistsAt.integrable_swap + theorem ConvolutionExistsAt.ofNorm' + theorem ConvolutionExistsAt.ofNorm + def ConvolutionExistsAt + theorem HasCompactSupport.contDiff_convolution_left + theorem HasCompactSupport.contDiff_convolution_right + theorem HasCompactSupport.continuous_convolution_left + theorem HasCompactSupport.continuous_convolution_right + theorem HasCompactSupport.convolutionExistsAt + theorem HasCompactSupport.convolutionExistsLeft + theorem HasCompactSupport.convolutionExistsRightOfContinuousLeft + theorem HasCompactSupport.convolutionExists_left_of_continuous_right + theorem HasCompactSupport.convolutionExists_right + theorem HasCompactSupport.convolution_integrand_bound_left + theorem HasCompactSupport.convolution_integrand_bound_right + theorem HasCompactSupport.convolution_integrand_bound_right_of_subset + theorem HasCompactSupport.hasDerivAt_convolution_left + theorem HasCompactSupport.hasDerivAt_convolution_right + theorem HasCompactSupport.hasFDerivAt_convolution_left + theorem HasCompactSupport.hasFDerivAt_convolution_right + theorem MeasureTheory.AEStronglyMeasurable.convolution_integrand' + theorem MeasureTheory.AEStronglyMeasurable.convolution_integrand + theorem MeasureTheory.AEStronglyMeasurable.convolution_integrand_snd' + theorem MeasureTheory.AEStronglyMeasurable.convolution_integrand_snd + theorem MeasureTheory.AEStronglyMeasurable.convolution_integrand_swap_snd' + theorem MeasureTheory.AEStronglyMeasurable.convolution_integrand_swap_snd + theorem MeasureTheory.Integrable.ae_convolution_exists + theorem MeasureTheory.Integrable.convolution_integrand + theorem MeasureTheory.Integrable.integrable_convolution + theorem contDiffOn_convolution_left_with_param + theorem contDiffOn_convolution_left_with_param_comp + theorem contDiffOn_convolution_right_with_param + theorem contDiffOn_convolution_right_with_param_aux + theorem contDiffOn_convolution_right_with_param_comp + theorem continuousOn_convolution_right_with_param' + theorem continuousOn_convolution_right_with_param + theorem continuousOn_convolution_right_with_param_comp' + theorem continuousOn_convolution_right_with_param_comp + theorem convolutionExistsAt_flip + theorem convolutionExistsAt_iff_integrable_swap + theorem convolution_assoc' + theorem convolution_assoc + theorem convolution_congr + theorem convolution_def + theorem convolution_eq_right' + theorem convolution_eq_swap + theorem convolution_flip + theorem convolution_integrand_bound_right_of_le_of_subset + theorem convolution_lsmul + theorem convolution_lsmul_swap + theorem convolution_mono_right + theorem convolution_mono_right_of_nonneg + theorem convolution_mul + theorem convolution_mul_swap + theorem convolution_neg_of_neg_eq + theorem convolution_precompR_apply + theorem convolution_smul + theorem convolution_tendsto_right + theorem convolution_zero + theorem dist_convolution_le' + theorem dist_convolution_le + theorem hasFDerivAt_convolution_right_with_param + theorem integrable_posConvolution + theorem integral_convolution + theorem integral_posConvolution + theorem posConvolution_eq_convolution_indicator + theorem smul_convolution + theorem support_convolution_subset + theorem support_convolution_subset_swap + theorem zero_convolution Modified Mathlib/Analysis/NormedSpace/OperatorNorm.lean + theorem ContinuousLinearMap.le_of_op_norm_le_of_le + theorem ContinuousLinearMap.le_of_op_norm₂_le_of_le 2023-06-21 15:20:08 a7c74eb feat: port FieldTheory.Cardinality (#5345) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/FieldTheory/Cardinality.lean + theorem Field.nonempty_iff + theorem Fintype.isPrimePow_card_of_field + theorem Fintype.nonempty_field_iff + theorem Fintype.not_isField_of_card_not_prime_pow + theorem Infinite.nonempty_field 2023-06-21 15:10:19 41ed4a5 feat: port FieldTheory.Finite.Trace (#5344) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/FieldTheory/Finite/Trace.lean + theorem FiniteField.trace_to_zMod_nondegenerate 2023-06-21 14:35:56 f707e57 feat: port FieldTheory.Finite.GaloisField (#5139) ~~This PR should wait until the discussion [here](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/!4.234891.20.20FieldTheory.2ESplittingField/near/367157525) is resolved~~ - [x] depends on: #5284 ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/FieldTheory/Finite/GaloisField.lean + def FiniteField.algEquivOfCardEq + def FiniteField.ringEquivOfCardEq + def GaloisField.algEquivGaloisField + theorem GaloisField.card + def GaloisField.equivZmodP + theorem GaloisField.finrank + theorem GaloisField.isSplittingField_of_card_eq + theorem GaloisField.splits_x_pow_card_sub_x + theorem GaloisField.splits_zMod_x_pow_sub_x + def GaloisField + theorem galois_poly_separable 2023-06-21 13:11:54 aa4f7c8 forward port leanprover-community/mathlib#19197 (#5284) ESTIMATED CHANGES Modified Mathlib/Data/ZMod/Algebra.lean + def ZMod.algebra Modified Mathlib/FieldTheory/IsAlgClosed/Classification.lean Modified Mathlib/RingTheory/Polynomial/Cyclotomic/Expand.lean 2023-06-21 11:55:39 aeb2e01 fix: make fix-lints.py work on windows (#5055) The `encoding='utf8'` fixes the crashes, the `with` statements are better WRT lifetime management of files. ESTIMATED CHANGES Modified scripts/fix-lints.py 2023-06-21 11:07:46 c9f26d2 feat: port NumberTheory.PrimeCounting (#5342) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/NumberTheory/PrimeCounting.lean + theorem Nat.monotone_primeCounting' + theorem Nat.monotone_primeCounting + def Nat.primeCounting' + theorem Nat.primeCounting'_add_le + theorem Nat.primeCounting'_nth_eq + def Nat.primeCounting + theorem Nat.prime_nth_prime 2023-06-21 11:07:45 16b3ec8 chore: rename fields of AddGroupWithZeroNhd (#5279) This definition was broken because of not noticing auto-implicits. (Perhaps we might even just delete it: it's not used. Who wrote it?) ESTIMATED CHANGES Modified Mathlib/Topology/Algebra/Group/Basic.lean Modified Mathlib/Topology/Algebra/Nonarchimedean/Bases.lean 2023-06-21 10:59:01 f52efae feat: port Archive.Wiedijk100Theorems.BallotProblem (#5204) ESTIMATED CHANGES Modified Archive.lean Added Archive/Wiedijk100Theorems/BallotProblem.lean + theorem Ballot.ballot_edge + theorem Ballot.ballot_neg + theorem Ballot.ballot_pos + theorem Ballot.ballot_problem' + theorem Ballot.ballot_problem + theorem Ballot.ballot_same + theorem Ballot.count_countedSequence + def Ballot.countedSequence + theorem Ballot.countedSequence_finite + theorem Ballot.countedSequence_int_neg_counted_succ_succ + theorem Ballot.countedSequence_int_pos_counted_succ_succ + theorem Ballot.countedSequence_nonempty + theorem Ballot.counted_eq_nil_iff + theorem Ballot.counted_left_zero + theorem Ballot.counted_ne_nil_left + theorem Ballot.counted_ne_nil_right + theorem Ballot.counted_right_zero + theorem Ballot.counted_succ_succ + theorem Ballot.disjoint_bits + theorem Ballot.first_vote_neg + theorem Ballot.first_vote_pos + theorem Ballot.headI_mem_of_nonempty + theorem Ballot.length_of_mem_countedSequence + theorem Ballot.mem_countedSequence_iff_perm + theorem Ballot.mem_of_mem_countedSequence + def Ballot.staysPositive + theorem Ballot.staysPositive_cons_pos + theorem Ballot.staysPositive_nil + theorem Ballot.sum_of_mem_countedSequence 2023-06-21 10:46:57 d139517 feat: port Probability.StrongLaw (#5336) This PR completes the port of the **entire** `Probability` folder to mathlib4 – for real this time. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Probability/StrongLaw.lean + theorem MeasureTheory.AEStronglyMeasurable.integrable_truncation + theorem MeasureTheory.AEStronglyMeasurable.memℒp_truncation + theorem MeasureTheory.AEStronglyMeasurable.truncation + theorem ProbabilityTheory.IdentDistrib.truncation + theorem ProbabilityTheory.abs_truncation_le_abs_self + theorem ProbabilityTheory.abs_truncation_le_bound + theorem ProbabilityTheory.integral_truncation_eq_intervalIntegral + theorem ProbabilityTheory.integral_truncation_eq_intervalIntegral_of_nonneg + theorem ProbabilityTheory.integral_truncation_le_integral_of_nonneg + theorem ProbabilityTheory.moment_truncation_eq_intervalIntegral + theorem ProbabilityTheory.moment_truncation_eq_intervalIntegral_of_nonneg + theorem ProbabilityTheory.strong_law_Lp + theorem ProbabilityTheory.strong_law_ae + theorem ProbabilityTheory.strong_law_aux1 + theorem ProbabilityTheory.strong_law_aux2 + theorem ProbabilityTheory.strong_law_aux3 + theorem ProbabilityTheory.strong_law_aux4 + theorem ProbabilityTheory.strong_law_aux5 + theorem ProbabilityTheory.strong_law_aux6 + theorem ProbabilityTheory.strong_law_aux7 + theorem ProbabilityTheory.sum_prob_mem_Ioc_le + theorem ProbabilityTheory.sum_variance_truncation_le + theorem ProbabilityTheory.tendsto_integral_truncation + def ProbabilityTheory.truncation + theorem ProbabilityTheory.truncation_eq_of_nonneg + theorem ProbabilityTheory.truncation_eq_self + theorem ProbabilityTheory.truncation_nonneg + theorem ProbabilityTheory.truncation_zero + theorem ProbabilityTheory.tsum_prob_mem_Ioi_lt_top 2023-06-21 10:32:44 236422b feat: add Bitvec notation for and/or/xor/not (#5340) ESTIMATED CHANGES Modified Mathlib/Data/Bitvec/Defs.lean 2023-06-21 10:32:43 862226b chore: remove obsolete comment (#5323) This module-doc is quoted on the webpage as a good example of a module-doc. Seems a good idea to remove the obsolete comment about notation. :-) ESTIMATED CHANGES Modified Mathlib/NumberTheory/Padics/PadicNorm.lean 2023-06-21 10:32:42 615e31f feat: port Data.Nat.Nth (#2297) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Data/Nat/Nth.lean + theorem Nat.count_le_iff_le_nth + theorem Nat.count_nth + theorem Nat.count_nth_of_infinite + theorem Nat.count_nth_of_lt_card_finite + theorem Nat.count_nth_succ + theorem Nat.count_nth_zero + theorem Nat.exists_lt_card_finite_nth_eq + theorem Nat.exists_lt_card_nth_eq + theorem Nat.filter_range_nth_eq_insert + theorem Nat.filter_range_nth_eq_insert_of_finite + theorem Nat.filter_range_nth_eq_insert_of_infinite + theorem Nat.filter_range_nth_subset_insert + theorem Nat.gc_count_nth + theorem Nat.image_nth_Iio_card + theorem Nat.isLeast_nth + theorem Nat.isLeast_nth_of_infinite + theorem Nat.isLeast_nth_of_lt_card + theorem Nat.le_nth + theorem Nat.le_nth_count' + theorem Nat.le_nth_count + theorem Nat.le_nth_of_count_le + theorem Nat.le_nth_of_lt_nth_succ + theorem Nat.le_of_nth_le_nth_of_lt_card + theorem Nat.lt_nth_iff_count_lt + theorem Nat.lt_of_nth_lt_nth_of_lt_card + theorem Nat.nth_apply_eq_orderIsoOfNat + theorem Nat.nth_count + theorem Nat.nth_count_eq_sInf + theorem Nat.nth_eq_getD_sort + theorem Nat.nth_eq_orderEmbOfFin + theorem Nat.nth_eq_orderIsoOfNat + theorem Nat.nth_eq_sInf + theorem Nat.nth_eq_zero + theorem Nat.nth_eq_zero_mono + theorem Nat.nth_injOn + theorem Nat.nth_injective + theorem Nat.nth_le_nth' + theorem Nat.nth_le_nth + theorem Nat.nth_le_nth_of_lt_card + theorem Nat.nth_lt_nth' + theorem Nat.nth_lt_nth + theorem Nat.nth_lt_nth_of_lt_card + theorem Nat.nth_lt_of_lt_count + theorem Nat.nth_mem + theorem Nat.nth_mem_of_infinite + theorem Nat.nth_mem_of_lt_card + theorem Nat.nth_monotone + theorem Nat.nth_of_card_le + theorem Nat.nth_strictMono + theorem Nat.nth_strictMonoOn + theorem Nat.nth_zero + theorem Nat.nth_zero_of_exists + theorem Nat.nth_zero_of_zero + theorem Nat.range_nth_of_finite + theorem Nat.range_nth_of_infinite + theorem Nat.range_nth_subset + theorem Nat.subset_range_nth 2023-06-21 09:25:40 9da26a0 feat: port Probability.Moments (#5338) This PR completes the port of the **entire** `Probability` folder to mathlib4. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Probability/Moments.lean + theorem ProbabilityTheory.IndepFun.cgf_add + theorem ProbabilityTheory.IndepFun.exp_mul + theorem ProbabilityTheory.IndepFun.integrable_exp_mul_add + theorem ProbabilityTheory.IndepFun.mgf_add' + theorem ProbabilityTheory.IndepFun.mgf_add + theorem ProbabilityTheory.aestronglyMeasurable_exp_mul_add + theorem ProbabilityTheory.aestronglyMeasurable_exp_mul_sum + def ProbabilityTheory.centralMoment + theorem ProbabilityTheory.centralMoment_one' + theorem ProbabilityTheory.centralMoment_one + theorem ProbabilityTheory.centralMoment_two_eq_variance + theorem ProbabilityTheory.centralMoment_zero + def ProbabilityTheory.cgf + theorem ProbabilityTheory.cgf_const' + theorem ProbabilityTheory.cgf_const + theorem ProbabilityTheory.cgf_neg + theorem ProbabilityTheory.cgf_undef + theorem ProbabilityTheory.cgf_zero' + theorem ProbabilityTheory.cgf_zero + theorem ProbabilityTheory.cgf_zero_fun + theorem ProbabilityTheory.cgf_zero_measure + theorem ProbabilityTheory.iIndepFun.cgf_sum + theorem ProbabilityTheory.iIndepFun.integrable_exp_mul_sum + theorem ProbabilityTheory.iIndepFun.mgf_sum + theorem ProbabilityTheory.measure_ge_le_exp_cgf + theorem ProbabilityTheory.measure_ge_le_exp_mul_mgf + theorem ProbabilityTheory.measure_le_le_exp_cgf + theorem ProbabilityTheory.measure_le_le_exp_mul_mgf + def ProbabilityTheory.mgf + theorem ProbabilityTheory.mgf_const' + theorem ProbabilityTheory.mgf_const + theorem ProbabilityTheory.mgf_neg + theorem ProbabilityTheory.mgf_nonneg + theorem ProbabilityTheory.mgf_pos' + theorem ProbabilityTheory.mgf_pos + theorem ProbabilityTheory.mgf_undef + theorem ProbabilityTheory.mgf_zero' + theorem ProbabilityTheory.mgf_zero + theorem ProbabilityTheory.mgf_zero_fun + theorem ProbabilityTheory.mgf_zero_measure + def ProbabilityTheory.moment + theorem ProbabilityTheory.moment_zero 2023-06-21 09:25:39 8e6a4a8 feat: golf IMO 2020 q2 (#5334) This is not much of a golf, but sets up for better automation after the real-powers issue is fixed. ESTIMATED CHANGES Modified Archive/Imo/Imo2020Q2.lean 2023-06-21 09:25:38 8fbfeb0 feat: golf IMO 2021 q1 (#5333) ESTIMATED CHANGES Modified Archive/Imo/Imo2021Q1.lean +/- theorem Imo2021Q1.exists_numbers_in_interval - theorem Imo2021Q1.lower_bound - theorem Imo2021Q1.radical_inequality - theorem Imo2021Q1.upper_bound 2023-06-21 09:25:37 3d3810e feat: port Probability.IdentDistrib (#5331) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Probability/IdentDistrib.lean + theorem ProbabilityTheory.IdentDistrib.ae_mem_snd + theorem ProbabilityTheory.IdentDistrib.ae_snd + theorem ProbabilityTheory.IdentDistrib.aestronglyMeasurable_fst + theorem ProbabilityTheory.IdentDistrib.aestronglyMeasurable_iff + theorem ProbabilityTheory.IdentDistrib.aestronglyMeasurable_snd + theorem ProbabilityTheory.IdentDistrib.const_div + theorem ProbabilityTheory.IdentDistrib.const_mul + theorem ProbabilityTheory.IdentDistrib.div_const + theorem ProbabilityTheory.IdentDistrib.essSup_eq + theorem ProbabilityTheory.IdentDistrib.evariance_eq + theorem ProbabilityTheory.IdentDistrib.integrable_iff + theorem ProbabilityTheory.IdentDistrib.integrable_snd + theorem ProbabilityTheory.IdentDistrib.integral_eq + theorem ProbabilityTheory.IdentDistrib.lintegral_eq + theorem ProbabilityTheory.IdentDistrib.measure_mem_eq + theorem ProbabilityTheory.IdentDistrib.memℒp_iff + theorem ProbabilityTheory.IdentDistrib.memℒp_snd + theorem ProbabilityTheory.IdentDistrib.mul_const + theorem ProbabilityTheory.IdentDistrib.snorm_eq + theorem ProbabilityTheory.IdentDistrib.variance_eq + structure ProbabilityTheory.IdentDistrib + theorem ProbabilityTheory.Memℒp.uniformIntegrable_of_identDistrib + theorem ProbabilityTheory.Memℒp.uniformIntegrable_of_identDistrib_aux 2023-06-21 09:25:36 9dd09eb feat: golf IMO 2019 q4 (#5310) Rewrite the IMO 2019 q4 solution to make the "implicit" calc blocks (lots of `lt_of_le_of_lt`) explicit, then automate some proofs. This is not a golf in the sense of decreasing the number of lines (maybe it is if you take into account the number of lines like ```lean intros; rw [sub_nonneg]; apply pow_le_pow; norm_num; apply le_of_lt; rwa [← mem_range] ``` in the original). So, if desired, I can make this an additional proof rather than a replacement to the existing proof. ESTIMATED CHANGES Modified Archive/Imo/Imo2019Q4.lean Modified Mathlib/Data/Nat/Factorial/Basic.lean + theorem Nat.factorial_le_of_le + theorem Nat.factorial_lt_of_lt 2023-06-21 09:25:34 63c43dd feat: port Counterexamples.Phillips (#5282) ESTIMATED CHANGES Modified Counterexamples.lean Added Counterexamples/Phillips.lean + def ContinuousLinearMap.toBoundedAdditiveMeasure + def Counterexample.DiscreteCopy + def Counterexample.Phillips1940.BoundedAdditiveMeasure.C + theorem Counterexample.Phillips1940.BoundedAdditiveMeasure.abs_le_bound + theorem Counterexample.Phillips1940.BoundedAdditiveMeasure.additive + theorem Counterexample.Phillips1940.BoundedAdditiveMeasure.apply_countable + def Counterexample.Phillips1940.BoundedAdditiveMeasure.continuousPart + theorem Counterexample.Phillips1940.BoundedAdditiveMeasure.continuousPart_apply_diff + theorem Counterexample.Phillips1940.BoundedAdditiveMeasure.continuousPart_apply_eq_zero_of_countable + theorem Counterexample.Phillips1940.BoundedAdditiveMeasure.countable_discreteSupport + def Counterexample.Phillips1940.BoundedAdditiveMeasure.discretePart + theorem Counterexample.Phillips1940.BoundedAdditiveMeasure.discretePart_apply + def Counterexample.Phillips1940.BoundedAdditiveMeasure.discreteSupport + theorem Counterexample.Phillips1940.BoundedAdditiveMeasure.empty + theorem Counterexample.Phillips1940.BoundedAdditiveMeasure.eq_add_parts + theorem Counterexample.Phillips1940.BoundedAdditiveMeasure.exists_discrete_support + theorem Counterexample.Phillips1940.BoundedAdditiveMeasure.exists_discrete_support_nonpos + theorem Counterexample.Phillips1940.BoundedAdditiveMeasure.le_bound + theorem Counterexample.Phillips1940.BoundedAdditiveMeasure.neg_apply + def Counterexample.Phillips1940.BoundedAdditiveMeasure.restrict + theorem Counterexample.Phillips1940.BoundedAdditiveMeasure.restrict_apply + structure Counterexample.Phillips1940.BoundedAdditiveMeasure + theorem Counterexample.Phillips1940.apply_f_eq_continuousPart + def Counterexample.Phillips1940.boundedIntegrableFunctions + def Counterexample.Phillips1940.boundedIntegrableFunctionsIntegralCLM + theorem Counterexample.Phillips1940.comp_ae_eq_const + theorem Counterexample.Phillips1940.continuousPart_evalClm_eq_zero + theorem Counterexample.Phillips1940.countable_compl_spf + theorem Counterexample.Phillips1940.countable_ne + theorem Counterexample.Phillips1940.countable_spf_mem + theorem Counterexample.Phillips1940.exists_linear_extension_to_boundedFunctions + theorem Counterexample.Phillips1940.extensionToBoundedFunctions_apply + def Counterexample.Phillips1940.f + theorem Counterexample.Phillips1940.integrable_comp + theorem Counterexample.Phillips1940.integral_comp + theorem Counterexample.Phillips1940.measurable_comp + theorem Counterexample.Phillips1940.no_pettis_integral + theorem Counterexample.Phillips1940.norm_bound + theorem Counterexample.Phillips1940.norm_indicator_le_one + theorem Counterexample.Phillips1940.sierpinski_pathological_family + def Counterexample.Phillips1940.spf + theorem Counterexample.Phillips1940.toFunctions_toMeasure + theorem Counterexample.Phillips1940.toFunctions_toMeasure_continuousPart + def MeasureTheory.Measure.extensionToBoundedFunctions 2023-06-21 09:25:31 64f96b7 feat: port RepresentationTheory.Rep (#5041) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Category/ModuleCat/Limits.lean Modified Mathlib/RepresentationTheory/Action.lean Added Mathlib/RepresentationTheory/Rep.lean + theorem Rep.Action_ρ_eq_ρ + theorem Rep.MonoidalCategory.braiding_hom_apply + theorem Rep.MonoidalCategory.braiding_inv_apply + def Rep.MonoidalClosed.linearHomEquiv + def Rep.MonoidalClosed.linearHomEquivComm + theorem Rep.MonoidalClosed.linearHomEquivComm_hom + theorem Rep.MonoidalClosed.linearHomEquivComm_symm_hom + theorem Rep.MonoidalClosed.linearHomEquiv_hom + theorem Rep.MonoidalClosed.linearHomEquiv_symm_hom + theorem Rep.coe_of + def Rep.counitIso + def Rep.counitIsoAddEquiv + def Rep.equivalenceModuleMonoidAlgebra + def Rep.homEquiv + theorem Rep.homEquiv_apply_hom + theorem Rep.homEquiv_def + theorem Rep.homEquiv_symm_apply_hom + theorem Rep.hom_comm_apply + theorem Rep.ihom_coev_app_hom + theorem Rep.ihom_ev_app_hom + theorem Rep.ihom_obj_ρ_apply + theorem Rep.ihom_obj_ρ_def + theorem Rep.leftRegularHomEquiv_symm_single + theorem Rep.leftRegularHom_apply + theorem Rep.linearization_map_hom + theorem Rep.linearization_map_hom_single + theorem Rep.linearization_obj_ρ + theorem Rep.linearization_of + theorem Rep.linearization_single + theorem Rep.linearization_ε_hom + theorem Rep.linearization_ε_inv_hom_apply + theorem Rep.linearization_μ_hom + theorem Rep.linearization_μ_inv_hom + def Rep.of + def Rep.ofModuleMonoidAlgebra + theorem Rep.ofModuleMonoidAlgebra_obj_coe + theorem Rep.ofModuleMonoidAlgebra_obj_ρ + theorem Rep.of_ρ + theorem Rep.of_ρ_apply + def Rep.toModuleMonoidAlgebra + def Rep.toModuleMonoidAlgebraMap + theorem Rep.to_Module_monoidAlgebra_map_aux + def Rep.trivial + theorem Rep.trivial_def + def Rep.unitIso + def Rep.unitIsoAddEquiv + theorem Rep.unit_iso_comm + def Rep.ρ + theorem Rep.ρ_inv_self_apply + theorem Rep.ρ_self_inv_apply + def Representation.repOfTprodIso + theorem Representation.repOfTprodIso_apply + theorem Representation.repOfTprodIso_inv_apply 2023-06-21 08:04:00 3e40f29 chore: bump to nightly-2023-06-20 (#5328) ESTIMATED CHANGES Modified lean-toolchain 2023-06-21 07:53:31 c4d449e feat: port NumberTheory.FunctionField (#5332) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/NumberTheory/FunctionField.lean + def FunctionField.FqtInfty + theorem FunctionField.InftyValuation.map_add_le_max' + theorem FunctionField.InftyValuation.map_mul' + theorem FunctionField.InftyValuation.map_one' + theorem FunctionField.InftyValuation.map_zero' + theorem FunctionField.inftyValuation.C + theorem FunctionField.inftyValuation.X + theorem FunctionField.inftyValuation.polynomial + def FunctionField.inftyValuation + def FunctionField.inftyValuationDef + theorem FunctionField.inftyValuation_apply + theorem FunctionField.inftyValuation_of_nonzero + theorem FunctionField.inftyValuedFqt.def + def FunctionField.inftyValuedFqt + theorem FunctionField.ringOfIntegers.algebraMap_injective + theorem FunctionField.ringOfIntegers.not_isField + def FunctionField.ringOfIntegers + theorem FunctionField.valuedFqtInfty.def + theorem algebraMap_injective + theorem functionField_iff 2023-06-21 07:53:29 4a2172e feat: port NumberTheory.ZetaValues (#5300) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Analysis/PSeries.lean +/- theorem Real.summable_nat_pow_inv +/- theorem Real.summable_nat_rpow +/- theorem Real.summable_nat_rpow_inv +/- theorem Real.summable_one_div_nat_pow +/- theorem Real.summable_one_div_nat_rpow +/- theorem sum_Ioo_inv_sq_le Added Mathlib/NumberTheory/ZetaValues.lean + theorem Polynomial.bernoulli_three_eval_one_quarter + theorem antideriv_bernoulliFun + def bernoulliFourierCoeff + theorem bernoulliFourierCoeff_eq + theorem bernoulliFourierCoeff_recurrence + theorem bernoulliFourierCoeff_zero + def bernoulliFun + theorem bernoulliFun_endpoints_eq_of_ne_one + theorem bernoulliFun_eval_one + theorem bernoulliFun_eval_zero + theorem bernoulli_zero_fourier_coeff + theorem fourierCoeff_bernoulli_eq + theorem hasDerivAt_bernoulliFun + theorem hasSum_L_function_mod_four_eval_three + theorem hasSum_one_div_nat_pow_mul_cos + theorem hasSum_one_div_nat_pow_mul_fourier + theorem hasSum_one_div_nat_pow_mul_sin + theorem hasSum_one_div_pow_mul_fourier_mul_bernoulliFun + theorem hasSum_zeta_four + theorem hasSum_zeta_nat + theorem hasSum_zeta_two + theorem integral_bernoulliFun_eq_zero + theorem periodizedBernoulli.continuous + def periodizedBernoulli + theorem summable_bernoulli_fourier 2023-06-21 05:36:50 719a217 chore: reorder universe variables in `Cardinal.lift_le` and `Cardinal.lift_mk_le` (#5325) `Cardinal.lift_le` and `Cardinal.lift_mk_le` have their universes out of order, in the sense that persistently through the rest of the library we need to specify the 2nd universe (resp 3rd), while the others are solved by unification. This PR reorders the universes so it's easier to specify the thing you need to specify! (This PR doesn't get rid of all the occurrences of `\.\{_,` in the library, but I'd like to do that later.) I do have a hidden agenda here, which is that I've been experimenting with solutions to the dreaded "Can't solve `max u v = max v ?u`" universe unification issue (which is making life hellish forward porting https://github.com/leanprover-community/mathlib/pull/19153), and my favourite (but still hacky) solution doesn't like some of the occasions where we reference a lemma filling in some of its universe arguments with `_` but then fully specify a later one. (e.g. `rw [← lift_le.{_, max u v}, lift_lift, lift_mk_le.{_, _, v}]` in `ModelTheory/Skolem.lean`). Hence the cleanup proposed in this PR makes my life easier working on these experiments. :-) ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/Dimension.lean Modified Mathlib/LinearAlgebra/FiniteDimensional.lean Modified Mathlib/ModelTheory/Satisfiability.lean Modified Mathlib/ModelTheory/Semantics.lean Modified Mathlib/ModelTheory/Skolem.lean Modified Mathlib/SetTheory/Cardinal/Basic.lean +/- theorem Cardinal.lift_le +/- theorem Cardinal.lift_mk_le Modified Mathlib/SetTheory/Cardinal/Ordinal.lean 2023-06-21 05:19:24 c330e8c feat: port Probability.Kernel.Condexp (#5324) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Probability/Kernel/Condexp.lean + theorem MeasureTheory.AEStronglyMeasurable.comp_snd_map_prod_id + theorem MeasureTheory.AEStronglyMeasurable.integral_condexpKernel + theorem MeasureTheory.Integrable.comp_snd_map_prod_id + theorem MeasureTheory.Integrable.condexpKernel_ae + theorem MeasureTheory.Integrable.integral_condexpKernel + theorem MeasureTheory.Integrable.integral_norm_condexpKernel + theorem MeasureTheory.Integrable.norm_integral_condexpKernel + theorem ProbabilityTheory.aemeasurable_id'' + theorem ProbabilityTheory.aestronglyMeasurable'_integral_condexpKernel + theorem ProbabilityTheory.condexp_ae_eq_integral_condexpKernel + theorem ProbabilityTheory.integrable_toReal_condexpKernel + theorem ProbabilityTheory.measurable_condexpKernel + theorem ProbabilityTheory.measurable_id'' 2023-06-21 05:19:23 7bdabbe feat: golf IMO 2006 q3 (#5319) ESTIMATED CHANGES Modified Archive/Imo/Imo2006Q3.lean +/- theorem Imo2006Q3.four_pow_four_pos - theorem Imo2006Q3.lhs_identity +/- theorem Imo2006Q3.mid_ineq +/- theorem Imo2006Q3.rhs_ineq 2023-06-21 05:19:22 c76490b chore: show Archive and Counterexamples in docs (#5227) ESTIMATED CHANGES Modified scripts/deploy_docs.sh 2023-06-21 05:19:21 98c34d9 feat: port Control.Bitraversable.Instances (#5225) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Control/Bitraversable/Basic.lean Added Mathlib/Control/Bitraversable/Instances.lean + def Const.bitraverse + def Prod.bitraverse + def Sum.bitraverse Modified Mathlib/Control/Bitraversable/Lemmas.lean 2023-06-21 05:19:20 1e2e427 feat: port Control.ULiftable (#5223) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Control/ULiftable.lean + def ContT.uliftable' + def ReaderT.uliftable' + def StateT.uliftable' + def ULiftable.adaptDown + def ULiftable.adaptUp + def ULiftable.down + def ULiftable.downMap + theorem ULiftable.down_up + def ULiftable.up + def ULiftable.upMap + theorem ULiftable.up_down + def WriterT.uliftable' 2023-06-21 05:19:19 7eebe3d feat: port SetTheory.Ordinal.Notation (#2470) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/SetTheory/Ordinal/Notation.lean + def NONote.below + def NONote.cmp + theorem NONote.cmp_compares + theorem NONote.lt_wf + def NONote.mk + def NONote.oadd + def NONote.ofNat + def NONote.opow + def NONote.recOn + theorem NONote.repr_add + theorem NONote.repr_mul + theorem NONote.repr_opow + theorem NONote.repr_sub + def NONote + def ONote.FundamentalSequenceProp + theorem ONote.NF.below_of_lt' + theorem ONote.NF.below_of_lt + theorem ONote.NF.fst + theorem ONote.NF.oadd + theorem ONote.NF.of_dvd_omega + theorem ONote.NF.of_dvd_omega_opow + theorem ONote.NF.snd' + theorem ONote.NF.snd + theorem ONote.NF.zero_of_zero + theorem ONote.NFBelow.fst + theorem ONote.NFBelow.lt + theorem ONote.NFBelow.mono + theorem ONote.NFBelow.oadd + theorem ONote.NFBelow.repr_lt + theorem ONote.NFBelow.snd + inductive ONote.NFBelow + theorem ONote.NFBelow_zero + def ONote.TopBelow + def ONote.add + def ONote.addAux + theorem ONote.add_nfBelow + def ONote.cmp + theorem ONote.cmp_compares + theorem ONote.eq_of_cmp_eq + def ONote.fastGrowing + theorem ONote.fastGrowing_def + theorem ONote.fastGrowing_limit + theorem ONote.fastGrowing_one + theorem ONote.fastGrowing_succ + theorem ONote.fastGrowing_two + theorem ONote.fastGrowing_zero' + theorem ONote.fastGrowing_zero + def ONote.fastGrowingε₀ + theorem ONote.fastGrowingε₀_one + theorem ONote.fastGrowingε₀_two + theorem ONote.fastGrowingε₀_zero + def ONote.fundamentalSequence + theorem ONote.fundamentalSequenceProp_inl_none + theorem ONote.fundamentalSequenceProp_inl_some + theorem ONote.fundamentalSequenceProp_inr + theorem ONote.fundamentalSequence_has_prop + theorem ONote.le_def + theorem ONote.lt_def + def ONote.mul + def ONote.mulNat + theorem ONote.mulNat_eq_mul + theorem ONote.nfBelow_iff_topBelow + theorem ONote.nfBelow_ofNat + theorem ONote.nf_repr_split' + theorem ONote.nf_repr_split + theorem ONote.oadd_add + theorem ONote.oadd_lt_oadd_1 + theorem ONote.oadd_lt_oadd_2 + theorem ONote.oadd_lt_oadd_3 + theorem ONote.oadd_mul + theorem ONote.oadd_mul_nfBelow + theorem ONote.oadd_pos + def ONote.ofNat + theorem ONote.ofNat_one + theorem ONote.ofNat_succ + theorem ONote.ofNat_zero + def ONote.omega + theorem ONote.omega_le_oadd + def ONote.opow + def ONote.opowAux2 + def ONote.opowAux + theorem ONote.opow_def + def ONote.repr' + theorem ONote.repr_add + theorem ONote.repr_inj + theorem ONote.repr_mul + theorem ONote.repr_ofNat + theorem ONote.repr_one + theorem ONote.repr_opow + theorem ONote.repr_opow_aux₁ + theorem ONote.repr_opow_aux₂ + theorem ONote.repr_scale + theorem ONote.repr_sub + def ONote.scale + theorem ONote.scale_eq_mul + theorem ONote.scale_opowAux + def ONote.split' + def ONote.split + theorem ONote.split_add_lt + theorem ONote.split_dvd + theorem ONote.split_eq_scale_split' + def ONote.sub + theorem ONote.sub_nfBelow + def ONote.toString + def ONote.toStringAux1 + theorem ONote.zero_add + theorem ONote.zero_def + inductive ONote 2023-06-21 03:58:07 ca86563 feat: port Analysis.ConstantSpeed (#5298) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/ConstantSpeed.lean + theorem HasConstantSpeedOnWith.Icc_Icc + theorem HasConstantSpeedOnWith.hasLocallyBoundedVariationOn + theorem HasConstantSpeedOnWith.ratio + theorem HasConstantSpeedOnWith.union + def HasConstantSpeedOnWith + theorem HasUnitSpeedOn.Icc_Icc + theorem HasUnitSpeedOn.union + def HasUnitSpeedOn + theorem edist_naturalParameterization_eq_zero + theorem hasConstantSpeedOnWith_iff_ordered + theorem hasConstantSpeedOnWith_iff_variationOnFromTo_eq + theorem hasConstantSpeedOnWith_of_subsingleton + theorem hasConstantSpeedOnWith_zero_iff + theorem has_unit_speed_naturalParameterization + theorem unique_unit_speed + theorem unique_unit_speed_on_Icc_zero 2023-06-21 03:58:05 ec336b9 chore(NumberTheory/WellApproximable): golf proof using `tauto` (#5263) Two independent changes are being proposed here: 1. Using `tauto`: this was annoyingly slow in Lean 3 but is not in Lean 4, 2. Changing `p` to `((p : ℕ) : ℝ)`: this is because Lean 4 is unfortunately much worse at coercing from `Nat.Primes` to `Real` and will waste about 5 seconds working on this via `typeclass inference of CoeT` searches without this change. Some discussion [here](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/Slow.20coercions) on Zulip. ESTIMATED CHANGES Modified Mathlib/NumberTheory/WellApproximable.lean 2023-06-21 03:58:04 4626631 fix(Tactic.PushNeg): `push_neg` makes loose bounded variables (#5257) ```lean example (a : α) (o : Option α) (h : ¬∀ hs, o.get hs ≠ a) : ∃ hs, o.get hs = a := by push_neg at h exact h ``` In this example, h become `o.isSome = true ∧ o.get #0 = a` (`#0` is a loose bounded variable). This PR fixes this bug. ESTIMATED CHANGES Modified Mathlib/Tactic/PushNeg.lean Modified test/push_neg.lean 2023-06-21 03:58:03 1813a30 feat: generalize `Filter.iInter_mem` to `Sort _` (#5231) ESTIMATED CHANGES Modified Mathlib/Order/Filter/Basic.lean +/- theorem Filter.iInter_mem Modified Mathlib/Order/Filter/CountableInter.lean 2023-06-21 03:58:02 41b4611 feat: use expected type in set with (#4917) Previously the using `set ... with` line could fail when the given term was ambiguous without the expected type, this was noticed and worked around in #4912. Zulip discussion: https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/Timeout.20in.20.60set.20.2E.2E.20with.60/near/364922941 ESTIMATED CHANGES Modified Mathlib/Tactic/Set.lean Modified test/Set.lean 2023-06-21 03:58:01 aa7f5e1 feat: `lift_lets` tactic (#3893) This tactic was suggested by @eric-wieser in https://leanprover.zulipchat.com/#narrow/stream/217875-Is-there-code-for-X.3F/topic/Pulling.20.60let.60s.20to.20the.20outside.20of.20a.20statement/near/315581119 The tactic tries to take all `let`s in an expression and lift them out as far as possible. For example, if the goal is `(let x := 1; x) = 1` then `lift_lets` turns the goal into `let x := 1; x = 1`. This then allows the user to do `intro x` to create a local `let` binding. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Tactic.lean Added Mathlib/Tactic/LiftLets.lean + def Lean.Expr.liftLets Added test/LiftLets.lean 2023-06-21 03:45:17 41eb65d feat: port Probability.Variance (#5200) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Probability/Variance.lean + theorem MeasureTheory.Memℒp.evariance_lt_top + theorem MeasureTheory.Memℒp.ofReal_variance_eq + theorem MeasureTheory.Memℒp.variance_eq + theorem MeasureTheory.Memℒp.variance_eq_of_integral_eq_zero + theorem ProbabilityTheory.IndepFun.variance_add + theorem ProbabilityTheory.IndepFun.variance_sum + def ProbabilityTheory.evariance + theorem ProbabilityTheory.evariance_def' + theorem ProbabilityTheory.evariance_eq_lintegral_ofReal + theorem ProbabilityTheory.evariance_eq_top + theorem ProbabilityTheory.evariance_eq_zero_iff + theorem ProbabilityTheory.evariance_lt_top_iff_memℒp + theorem ProbabilityTheory.evariance_mul + theorem ProbabilityTheory.evariance_zero + theorem ProbabilityTheory.meas_ge_le_evariance_div_sq + theorem ProbabilityTheory.meas_ge_le_variance_div_sq + def ProbabilityTheory.variance + theorem ProbabilityTheory.variance_def' + theorem ProbabilityTheory.variance_le_expectation_sq + theorem ProbabilityTheory.variance_mul + theorem ProbabilityTheory.variance_nonneg + theorem ProbabilityTheory.variance_smul' + theorem ProbabilityTheory.variance_smul + theorem ProbabilityTheory.variance_zero 2023-06-21 02:46:00 357016d feat: add `nhds_basis_Icc_pos` (#5295) ESTIMATED CHANGES Modified Mathlib/Topology/Order/Basic.lean + theorem nhds_basis_Icc_pos 2023-06-21 01:19:23 33503c1 feat: golf IMO 1964 q1 (#5314) `gcongr` lets modular arithmetic calculations go faster. I've been pretty cavalier about deleting auxiliary lemmas from the old solution which weren't needed in the new; this is ok [per Scott](https://github.com/leanprover-community/mathlib4/pull/5317#issuecomment-1599729157). ESTIMATED CHANGES Modified Archive/Imo/Imo1964Q1.lean - theorem Imo1964Q1.aux + theorem Imo1964Q1.two_pow_mod_seven - theorem Imo1964Q1.two_pow_three_mul_add_one_mod_seven - theorem Imo1964Q1.two_pow_three_mul_add_two_mod_seven - theorem Imo1964Q1.two_pow_three_mul_mod_seven Modified Mathlib/Data/Nat/ModEq.lean 2023-06-21 01:19:22 49befdd feat: port RingTheory.Complex (#5303) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/RingTheory/Complex.lean + theorem Algebra.leftMulMatrix_complex + theorem Algebra.norm_complex_apply + theorem Algebra.norm_complex_eq + theorem Algebra.trace_complex_apply 2023-06-21 01:19:21 16962a2 feat: drop unneeded assumptions (#5296) Drop unneeded assumptions in `gauge_lt_one_of_mem_of_open` and `gauge_lt_of_mem_smul` ESTIMATED CHANGES Modified Mathlib/Analysis/Convex/Gauge.lean +/- theorem gauge_lt_of_mem_smul +/- theorem gauge_lt_one_of_mem_of_open Modified Mathlib/Analysis/NormedSpace/HahnBanach/Separation.lean 2023-06-21 01:19:19 d57027b feat: basic API for the right homology of short complexes (#5250) This PR introduces the basic API for the right homology of short complexes. ESTIMATED CHANGES Modified Mathlib/Algebra/Homology/ShortComplex/LeftHomology.lean Modified Mathlib/Algebra/Homology/ShortComplex/RightHomology.lean + theorem CategoryTheory.ShortComplex.HasRightHomology.mk' + def CategoryTheory.ShortComplex.RightHomologyData.descH + def CategoryTheory.ShortComplex.RightHomologyData.descQ + def CategoryTheory.ShortComplex.RightHomologyData.g' + def CategoryTheory.ShortComplex.RightHomologyData.hι' + theorem CategoryTheory.ShortComplex.RightHomologyData.isIso_p + theorem CategoryTheory.ShortComplex.RightHomologyData.isIso_ι + def CategoryTheory.ShortComplex.RightHomologyData.liftH + theorem CategoryTheory.ShortComplex.RightHomologyData.liftH_ι + def CategoryTheory.ShortComplex.RightHomologyData.ofIsColimitCokernelCofork + theorem CategoryTheory.ShortComplex.RightHomologyData.ofIsColimitCokernelCofork_g' + def CategoryTheory.ShortComplex.RightHomologyData.ofIsLimitKernelFork + theorem CategoryTheory.ShortComplex.RightHomologyData.ofIsLimitKernelFork_g' + def CategoryTheory.ShortComplex.RightHomologyData.ofZeros + theorem CategoryTheory.ShortComplex.RightHomologyData.ofZeros_g' + theorem CategoryTheory.ShortComplex.RightHomologyData.p_descQ + theorem CategoryTheory.ShortComplex.RightHomologyData.p_g' + theorem CategoryTheory.ShortComplex.RightHomologyData.ι_descQ_eq_zero_of_boundary + theorem CategoryTheory.ShortComplex.RightHomologyData.ι_g' 2023-06-21 01:19:18 1c7a9be fix: move up a `.withContext` in `rel` (#5239) One of the steps of `rel` was taking place outside the `.withContext`, causing problems -- see the newly added test for a sample bug. ESTIMATED CHANGES Modified Mathlib/Tactic/GCongr/Core.lean Modified test/GCongr/inequalities.lean 2023-06-21 01:19:17 cef370e feat: rewrites at location (#4157) ESTIMATED CHANGES Modified Mathlib/Tactic/Rewrites.lean Modified Mathlib/Tactic/TryThis.lean +/- def addRewriteSuggestion Modified test/rewrites.lean 2023-06-21 01:06:29 1d27904 feat: golf IMO 2005 q3 (#5318) ESTIMATED CHANGES Modified Archive/Imo/Imo2005Q3.lean 2023-06-21 01:06:27 721f390 feat: port NumberTheory.NumberField.Basic (#5309) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/NumberTheory/NumberField/Basic.lean + theorem Int.not_isField + theorem NumberField.RingOfIntegers.isIntegral_coe + theorem NumberField.RingOfIntegers.map_mem + theorem NumberField.RingOfIntegers.not_isField + theorem NumberField.RingOfIntegers.rank + theorem NumberField.integralBasis_apply + theorem NumberField.isIntegral_of_mem_ringOfIntegers + theorem NumberField.mem_ringOfIntegers + def NumberField.ringOfIntegers + def NumberField.ringOfIntegersAlgebra 2023-06-21 01:06:26 b5be624 feat: port Algebra.Category.GroupCat.Adjunctions (#5292) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Category/GroupCat/Adjunctions.lean + def AddCommGroupCat.adj + def AddCommGroupCat.free + theorem AddCommGroupCat.free_map_coe + theorem AddCommGroupCat.free_obj_coe + def CommGroupCat.forget₂CommMonAdj + def CommMonCat.units + def GroupCat.adj + def GroupCat.forget₂MonAdj + def GroupCat.free + def MonCat.units + def abelianize + def abelianizeAdj 2023-06-21 00:53:48 b8eff30 feat: port Probability.Kernel.CondDistrib (#5293) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Probability/Kernel/CondDistrib.lean + theorem MeasureTheory.AEStronglyMeasurable.ae_integrable_condDistrib_map_iff + theorem MeasureTheory.AEStronglyMeasurable.comp_snd_map_prod_mk + theorem MeasureTheory.AEStronglyMeasurable.integral_condDistrib + theorem MeasureTheory.AEStronglyMeasurable.integral_condDistrib_map + theorem MeasureTheory.Integrable.comp_snd_map_prod_mk + theorem MeasureTheory.Integrable.condDistrib_ae + theorem MeasureTheory.Integrable.condDistrib_ae_map + theorem MeasureTheory.Integrable.integral_condDistrib + theorem MeasureTheory.Integrable.integral_condDistrib_map + theorem MeasureTheory.Integrable.integral_norm_condDistrib + theorem MeasureTheory.Integrable.integral_norm_condDistrib_map + theorem MeasureTheory.Integrable.norm_integral_condDistrib + theorem MeasureTheory.Integrable.norm_integral_condDistrib_map + theorem ProbabilityTheory.aestronglyMeasurable'_integral_condDistrib + theorem ProbabilityTheory.aestronglyMeasurable_comp_snd_map_prod_mk_iff + theorem ProbabilityTheory.condDistrib_ae_eq_condexp + theorem ProbabilityTheory.condexp_ae_eq_integral_condDistrib' + theorem ProbabilityTheory.condexp_ae_eq_integral_condDistrib + theorem ProbabilityTheory.condexp_ae_eq_integral_condDistrib_id + theorem ProbabilityTheory.condexp_prod_ae_eq_integral_condDistrib' + theorem ProbabilityTheory.condexp_prod_ae_eq_integral_condDistrib + theorem ProbabilityTheory.condexp_prod_ae_eq_integral_condDistrib₀ + theorem ProbabilityTheory.integrable_comp_snd_map_prod_mk_iff + theorem ProbabilityTheory.integrable_toReal_condDistrib + theorem ProbabilityTheory.measurable_condDistrib + theorem ProbabilityTheory.set_lintegral_condDistrib_of_measurableSet + theorem ProbabilityTheory.set_lintegral_preimage_condDistrib 2023-06-20 23:47:55 712f6d7 feat: add `Commute.of_map` (#5316) elements commute if their images under and injective `MulHom` do. ESTIMATED CHANGES Modified Mathlib/Algebra/Hom/Commute.lean + theorem Commute.of_map 2023-06-20 23:47:54 c511043 feat: port RingTheory.Polynomial.Eisenstein.IsIntegral (#5302) Fix also some names in `RingTheory.Polynomial.Eisenstein.Basic` that are in the wrong namespace. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/RingTheory/Polynomial/Eisenstein/Basic.lean - theorem Polynomial.IsEisensteinAt.Polynomial.Monic.isEisensteinAt_of_mem_of_not_mem - theorem Polynomial.IsEisensteinAt.Polynomial.Monic.leadingCoeff_not_mem + theorem Polynomial.Monic.isEisensteinAt_of_mem_of_not_mem + theorem Polynomial.Monic.leadingCoeff_not_mem Added Mathlib/RingTheory/Polynomial/Eisenstein/IsIntegral.lean + theorem cyclotomic_comp_x_add_one_isEisensteinAt + theorem cyclotomic_prime_pow_comp_x_add_one_isEisensteinAt + theorem dvd_coeff_zero_of_aeval_eq_prime_smul_of_minpoly_is_eiseinstein_at + theorem mem_adjoin_of_dvd_coeff_of_dvd_aeval + theorem mem_adjoin_of_smul_prime_pow_smul_of_minpoly_is_eiseinstein_at + theorem mem_adjoin_of_smul_prime_smul_of_minpoly_is_eiseinstein_at 2023-06-20 23:35:48 0c764f2 feat: golf IMO 2001 q2 (#5317) Mostly using `positivity`. Let me know whether, at this stage of the port, it's ok to delete unused auxiliary lemmas. ESTIMATED CHANGES Modified Archive/Imo/Imo2001Q2.lean - theorem Imo2001Q2.denom_pos 2023-06-20 23:35:46 6cd4854 feat: golf IMO 1981 q3 (#5315) using `linear_combination` ESTIMATED CHANGES Modified Archive/Imo/Imo1981Q3.lean 2023-06-20 23:35:45 32533c3 chore: re-add derivative_bernoulli (#5313) Missed in #4352, thanks @Ruben-VandeVelde for noticing! ESTIMATED CHANGES Modified Mathlib/NumberTheory/BernoulliPolynomials.lean + theorem Polynomial.derivative_bernoulli 2023-06-20 23:35:44 6f78b92 feat: port Analysis.Fourier.PoissonSummation (#5306) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/Fourier/PoissonSummation.lean + theorem Real.fourierCoeff_tsum_comp_add + theorem Real.tsum_eq_tsum_fourierIntegral + theorem Real.tsum_eq_tsum_fourierIntegral_of_rpow_decay + theorem Real.tsum_eq_tsum_fourierIntegral_of_rpow_decay_of_summable + theorem SchwartzMap.tsum_eq_tsum_fourierIntegral + theorem isBigO_norm_Icc_restrict_atBot + theorem isBigO_norm_Icc_restrict_atTop + theorem isBigO_norm_restrict_cocompact 2023-06-20 23:35:42 e7f7075 feat: port RingTheory.DedekindDomain.IntegralClosure (#5304) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/RingTheory/DedekindDomain/IntegralClosure.lean + theorem FiniteDimensional.exists_is_basis_integral + theorem IsIntegralClosure.isDedekindDomain + theorem IsIntegralClosure.isLocalization + theorem IsIntegralClosure.isNoetherian + theorem IsIntegralClosure.isNoetherianRing + theorem IsIntegralClosure.module_free + theorem IsIntegralClosure.range_le_span_dualBasis + theorem IsIntegralClosure.rank + theorem exists_integral_multiples + theorem integralClosure.isDedekindDomain + theorem integralClosure.isNoetherianRing + theorem integralClosure_le_span_dualBasis 2023-06-20 23:26:52 6074c43 feat: golf IMO 1962 q4 (#5312) Complete a TODO of the form "Someday, when there is a Grobner basis tactic, ..." ESTIMATED CHANGES Modified Archive/Imo/Imo1962Q4.lean 2023-06-20 16:28:01 e6dcb54 feat: port RingTheory.Localization.Norm (#5299) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/RingTheory/Localization/Norm.lean + theorem Algebra.norm_localization 2023-06-20 16:16:43 f084849 feat: port RingTheory.Trace (#5256) - [x] depends on: #5266 ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/RingTheory/Trace.lean + def Algebra.embeddingsMatrix + def Algebra.embeddingsMatrixReindex + theorem Algebra.embeddingsMatrixReindex_eq_vandermonde + theorem Algebra.embeddingsMatrix_apply + theorem Algebra.isIntegral_trace + theorem Algebra.traceForm_apply + theorem Algebra.traceForm_isSymm + theorem Algebra.traceForm_toMatrix + theorem Algebra.traceForm_toMatrix_powerBasis + theorem Algebra.traceMatrix_apply + theorem Algebra.traceMatrix_eq_embeddingsMatrixReindex_mul_trans + theorem Algebra.traceMatrix_eq_embeddingsMatrix_mul_trans + theorem Algebra.traceMatrix_of_basis + theorem Algebra.traceMatrix_of_basis_mulVec + theorem Algebra.traceMatrix_of_matrix_mulVec + theorem Algebra.traceMatrix_of_matrix_vecMul + theorem Algebra.traceMatrix_reindex + theorem Algebra.trace_algebraMap + theorem Algebra.trace_algebraMap_of_basis + theorem Algebra.trace_apply + theorem Algebra.trace_comp_trace + theorem Algebra.trace_comp_trace_of_basis + theorem Algebra.trace_eq_matrix_trace + theorem Algebra.trace_eq_zero_of_not_exists_basis + theorem Algebra.trace_prod + theorem Algebra.trace_prod_apply + theorem Algebra.trace_trace + theorem Algebra.trace_trace_of_basis + theorem IntermediateField.AdjoinSimple.trace_gen_eq_sum_roots + theorem IntermediateField.AdjoinSimple.trace_gen_eq_zero + theorem PowerBasis.trace_gen_eq_nextCoeff_minpoly + theorem PowerBasis.trace_gen_eq_sum_roots + theorem det_traceForm_ne_zero + theorem det_traceMatrix_ne_zero' + theorem sum_embeddings_eq_finrank_mul + theorem traceForm_nondegenerate + theorem trace_eq_sum_automorphisms + theorem trace_eq_sum_embeddings + theorem trace_eq_sum_embeddings_gen + theorem trace_eq_sum_roots + theorem trace_eq_trace_adjoin 2023-06-20 15:11:14 a11e3f3 feat: port RingTheory.Norm (#5262) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/RingTheory/Norm.lean + theorem Algebra.PowerBasis.norm_gen_eq_coeff_zero_minpoly + theorem Algebra.PowerBasis.norm_gen_eq_prod_roots + theorem Algebra.isIntegral_norm + theorem Algebra.norm_algebraMap_of_basis + theorem Algebra.norm_apply + theorem Algebra.norm_eq_matrix_det + theorem Algebra.norm_eq_norm_adjoin + theorem Algebra.norm_eq_one_of_not_exists_basis + theorem Algebra.norm_eq_one_of_not_module_finite + theorem Algebra.norm_eq_prod_automorphisms + theorem Algebra.norm_eq_prod_embeddings + theorem Algebra.norm_eq_prod_embeddings_gen + theorem Algebra.norm_eq_prod_roots + theorem Algebra.norm_eq_zero_iff' + theorem Algebra.norm_eq_zero_iff + theorem Algebra.norm_eq_zero_iff_of_basis + theorem Algebra.norm_ne_zero_iff + theorem Algebra.norm_ne_zero_iff_of_basis + theorem Algebra.norm_norm + theorem Algebra.norm_zero + theorem Algebra.prod_embeddings_eq_finrank_pow + theorem IntermediateField.AdjoinSimple.norm_gen_eq_one + theorem IntermediateField.AdjoinSimple.norm_gen_eq_prod_roots 2023-06-20 13:55:40 76ed1a8 chore: forward port leanprover-community/mathlib#19090 (#5291) ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Constructions/Prod/Basic.lean + theorem MeasureTheory.Measure.fst_map_prod_mk + theorem MeasureTheory.Measure.fst_map_prod_mk₀ + theorem MeasureTheory.Measure.snd_map_prod_mk + theorem MeasureTheory.Measure.snd_map_prod_mk₀ 2023-06-20 13:55:39 0f82593 chore: change `Field.toEuclideanDomain` (#5266) Modifying the definition of `Field.toEuclideanDomain` makes some declaration faster. ESTIMATED CHANGES Modified Mathlib/Algebra/EuclideanDomain/Instances.lean Modified Mathlib/Analysis/NormedSpace/Star/ContinuousFunctionalCalculus.lean Modified Mathlib/FieldTheory/Adjoin.lean Modified Mathlib/FieldTheory/IsAlgClosed/AlgebraicClosure.lean Modified Mathlib/FieldTheory/Normal.lean Modified Mathlib/RingTheory/Adjoin/Field.lean 2023-06-20 12:36:01 ad017c0 feat: add `recall` command (#5278) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Tactic.lean Added Mathlib/Tactic/Recall.lean Added test/Recall.lean + def foo 2023-06-20 12:36:00 9e2d6cb refactor: touch up `Wiedijk100Theorems/Konigsberg` (#5275) Recover some of the original formatting and improve the proof. ESTIMATED CHANGES Modified Archive/Wiedijk100Theorems/Konigsberg.lean +/- def Konigsberg.adj +/- theorem Konigsberg.degree_eq_degree + theorem Konigsberg.not_even_degree_iff + theorem Konigsberg.setOf_odd_degree_eq 2023-06-20 12:35:59 07d4221 feat: port AlgebraicGeometry.LocallyRingedSpace.HasColimits (#5260) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/AlgebraicGeometry/LocallyRingedSpace/HasColimits.lean + theorem AlgebraicGeometry.LocallyRingedSpace.HasCoequalizer.imageBasicOpen_image_open + theorem AlgebraicGeometry.LocallyRingedSpace.HasCoequalizer.imageBasicOpen_image_preimage + theorem AlgebraicGeometry.LocallyRingedSpace.isLocalRingHom_stalkMap_congr + theorem AlgebraicGeometry.SheafedSpace.colimit_exists_rep + theorem AlgebraicGeometry.SheafedSpace.isColimit_exists_rep Modified Mathlib/AlgebraicGeometry/SheafedSpace.lean 2023-06-20 12:35:57 3d6731d chore: remove superfluous parentheses in calls to `ext` (#5258) ESTIMATED CHANGES Modified Archive/Wiedijk100Theorems/Partition.lean Modified Mathlib/Algebra/Category/ModuleCat/Adjunctions.lean Modified Mathlib/Algebra/Category/Ring/Constructions.lean Modified Mathlib/Algebra/DirectSum/Algebra.lean Modified Mathlib/Algebra/DirectSum/Ring.lean Modified Mathlib/Algebra/GCDMonoid/Basic.lean Modified Mathlib/Algebra/Group/Ext.lean Modified Mathlib/Algebra/Homology/Homotopy.lean Modified Mathlib/Algebra/Lie/Classical.lean Modified Mathlib/Algebra/Lie/DirectSum.lean Modified Mathlib/Algebra/Lie/OfAssociative.lean Modified Mathlib/Algebra/Lie/TensorProduct.lean Modified Mathlib/Algebra/Lie/Weights.lean Modified Mathlib/Algebra/Module/GradedModule.lean Modified Mathlib/Algebra/MonoidAlgebra/Basic.lean Modified Mathlib/Algebra/Polynomial/GroupRingAction.lean Modified Mathlib/AlgebraicTopology/DoldKan/Homotopies.lean Modified Mathlib/Analysis/Analytic/Composition.lean Modified Mathlib/Analysis/Calculus/ContDiff.lean Modified Mathlib/Analysis/Calculus/ContDiffDef.lean Modified Mathlib/Analysis/Complex/Isometry.lean Modified Mathlib/Analysis/InnerProductSpace/PiL2.lean Modified Mathlib/Analysis/InnerProductSpace/TwoDim.lean Modified Mathlib/Analysis/NormedSpace/Multilinear.lean Modified Mathlib/Analysis/Seminorm.lean Modified Mathlib/CategoryTheory/Preadditive/HomOrthogonal.lean Modified Mathlib/CategoryTheory/Sites/Closed.lean Modified Mathlib/CategoryTheory/Sites/DenseSubsite.lean Modified Mathlib/CategoryTheory/Sites/SheafOfTypes.lean Modified Mathlib/CategoryTheory/Sites/Subsheaf.lean Modified Mathlib/Combinatorics/SimpleGraph/AdjMatrix.lean Modified Mathlib/Combinatorics/SimpleGraph/Basic.lean Modified Mathlib/Combinatorics/SimpleGraph/Hasse.lean Modified Mathlib/Combinatorics/SimpleGraph/IncMatrix.lean Modified Mathlib/Control/Functor/Multivariate.lean Modified Mathlib/Control/LawfulFix.lean Modified Mathlib/Data/Complex/Module.lean Modified Mathlib/Data/Dfinsupp/Basic.lean +/- def Dfinsupp.extendWith Modified Mathlib/Data/Dfinsupp/Interval.lean Modified Mathlib/Data/FinEnum.lean Modified Mathlib/Data/Finset/Pi.lean Modified Mathlib/Data/Finsupp/Indicator.lean Modified Mathlib/Data/Finsupp/ToDfinsupp.lean Modified Mathlib/Data/Holor.lean Modified Mathlib/Data/Matrix/Basic.lean Modified Mathlib/Data/Matrix/Basis.lean Modified Mathlib/Data/Matrix/Block.lean Modified Mathlib/Data/Matrix/Kronecker.lean Modified Mathlib/Data/Matrix/Notation.lean Modified Mathlib/Data/Matrix/PEquiv.lean Modified Mathlib/Data/Multiset/Pi.lean Modified Mathlib/Data/MvPolynomial/Equiv.lean Modified Mathlib/Data/Nat/Bits.lean Modified Mathlib/Data/Nat/Hyperoperation.lean Modified Mathlib/Data/Nat/Interval.lean Modified Mathlib/Data/Nat/Upto.lean Modified Mathlib/Data/PEquiv.lean Modified Mathlib/Data/PFunctor/Multivariate/W.lean Modified Mathlib/Data/Polynomial/HasseDeriv.lean Modified Mathlib/Data/QPF/Multivariate/Constructions/Fix.lean Modified Mathlib/Data/Rel.lean Modified Mathlib/Data/TypeVec.lean Modified Mathlib/GroupTheory/DoubleCoset.lean Modified Mathlib/GroupTheory/FreeAbelianGroupFinsupp.lean Modified Mathlib/GroupTheory/FreeProduct.lean Modified Mathlib/GroupTheory/Perm/Basic.lean Modified Mathlib/LinearAlgebra/AffineSpace/Matrix.lean Modified Mathlib/LinearAlgebra/AffineSpace/Slope.lean Modified Mathlib/LinearAlgebra/Basic.lean Modified Mathlib/LinearAlgebra/BilinearMap.lean Modified Mathlib/LinearAlgebra/Contraction.lean Modified Mathlib/LinearAlgebra/Determinant.lean Modified Mathlib/LinearAlgebra/DirectSum/TensorProduct.lean Modified Mathlib/LinearAlgebra/Dual.lean Modified Mathlib/LinearAlgebra/Eigenspace/Basic.lean Modified Mathlib/LinearAlgebra/Finsupp.lean Modified Mathlib/LinearAlgebra/Matrix/Adjugate.lean Modified Mathlib/LinearAlgebra/Matrix/Basis.lean Modified Mathlib/LinearAlgebra/Matrix/BilinearForm.lean Modified Mathlib/LinearAlgebra/Matrix/Block.lean Modified Mathlib/LinearAlgebra/Matrix/Charpoly/Basic.lean Modified Mathlib/LinearAlgebra/Matrix/Circulant.lean Modified Mathlib/LinearAlgebra/Matrix/Determinant.lean Modified Mathlib/LinearAlgebra/Matrix/Dual.lean Modified Mathlib/LinearAlgebra/Matrix/Hermitian.lean Modified Mathlib/LinearAlgebra/Matrix/IsDiag.lean Modified Mathlib/LinearAlgebra/Matrix/LDL.lean Modified Mathlib/LinearAlgebra/Matrix/SesquilinearForm.lean Modified Mathlib/LinearAlgebra/Matrix/SpecialLinearGroup.lean Modified Mathlib/LinearAlgebra/Matrix/Spectrum.lean Modified Mathlib/LinearAlgebra/Matrix/ToLin.lean Modified Mathlib/LinearAlgebra/Matrix/Transvection.lean Modified Mathlib/LinearAlgebra/Multilinear/Basic.lean Modified Mathlib/LinearAlgebra/Pi.lean Modified Mathlib/LinearAlgebra/QuadraticForm/Basic.lean Modified Mathlib/LinearAlgebra/SesquilinearForm.lean Modified Mathlib/LinearAlgebra/StdBasis.lean Modified Mathlib/LinearAlgebra/TensorPower.lean Modified Mathlib/LinearAlgebra/TensorProduct.lean Modified Mathlib/LinearAlgebra/TensorProduct/Matrix.lean Modified Mathlib/LinearAlgebra/Trace.lean Modified Mathlib/LinearAlgebra/Vandermonde.lean Modified Mathlib/MeasureTheory/Measure/Lebesgue/Basic.lean Modified Mathlib/Order/Hom/Basic.lean Modified Mathlib/Order/Lattice.lean Modified Mathlib/Order/LocallyFinite.lean Modified Mathlib/Order/RelIso/Basic.lean Modified Mathlib/Probability/Kernel/WithDensity.lean Modified Mathlib/RepresentationTheory/Basic.lean Modified Mathlib/RingTheory/GradedAlgebra/Basic.lean Modified Mathlib/RingTheory/IsTensorProduct.lean Modified Mathlib/RingTheory/PolynomialAlgebra.lean Modified Mathlib/RingTheory/TensorProduct.lean Modified Mathlib/SetTheory/Ordinal/Arithmetic.lean Modified Mathlib/Topology/MetricSpace/Basic.lean Modified Mathlib/Topology/PathConnected.lean 2023-06-20 12:35:55 84e15e9 chore: forward-port leanprover-community/mathlib#19183 (#5254) This removes most of a scary porting note that is no longer true. ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/Eigenspace/Minpoly.lean 2023-06-20 12:35:54 7c48439 feat: port Archive.Wiedijk100Theorems.BirthdayProblem (#5199) ESTIMATED CHANGES Modified Archive.lean Added Archive/Wiedijk100Theorems/BirthdayProblem.lean + theorem Theorems100.FinFin.measure_apply + theorem Theorems100.birthday + theorem Theorems100.birthday_measure 2023-06-20 11:14:59 eb948e4 feat: port Mathlib.Init.Data.Int.CompLemmas (#5269) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Init/Data/Int/Basic.lean - theorem Int.natAbs_add_neg - theorem Int.natAbs_add_nonneg Added Mathlib/Init/Data/Int/CompLemmas.lean + theorem Int.natAbs_ofNat_core + theorem Int.natAbs_of_negSucc + theorem Int.ne_of_natAbs_ne_natAbs_of_nonneg + theorem Int.zero_le_ofNat Modified Mathlib/Init/Data/Int/Order.lean Modified Mathlib/NumberTheory/LegendreSymbol/Basic.lean Modified Mathlib/RingTheory/Localization/Away/Basic.lean 2023-06-20 11:14:58 0817363 feat: port Analysis.BoundedVariation (#4824) This PR also corrects a mis-forward-port of leanprover-community/mathlib#18080 ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Group/Basic.lean +/- theorem multiplicative_of_isTotal Added Mathlib/Analysis/BoundedVariation.lean + theorem BoundedVariationOn.dist_le + theorem BoundedVariationOn.locallyBoundedVariationOn + theorem BoundedVariationOn.mono + theorem BoundedVariationOn.sub_le + def BoundedVariationOn + theorem LipschitzOnWith.ae_differentiableWithinAt + theorem LipschitzOnWith.ae_differentiableWithinAt_of_mem + theorem LipschitzOnWith.comp_boundedVariationOn + theorem LipschitzOnWith.comp_eVariationOn_le + theorem LipschitzOnWith.comp_locallyBoundedVariationOn + theorem LipschitzOnWith.locallyBoundedVariationOn + theorem LipschitzWith.ae_differentiableAt + theorem LipschitzWith.comp_boundedVariationOn + theorem LipschitzWith.comp_locallyBoundedVariationOn + theorem LipschitzWith.locallyBoundedVariationOn + theorem LocallyBoundedVariationOn.ae_differentiableAt + theorem LocallyBoundedVariationOn.ae_differentiableWithinAt + theorem LocallyBoundedVariationOn.ae_differentiableWithinAt_of_mem + theorem LocallyBoundedVariationOn.ae_differentiableWithinAt_of_mem_pi + theorem LocallyBoundedVariationOn.ae_differentiableWithinAt_of_mem_real + theorem LocallyBoundedVariationOn.exists_monotoneOn_sub_monotoneOn + def LocallyBoundedVariationOn + theorem MonotoneOn.eVariationOn_le + theorem MonotoneOn.locallyBoundedVariationOn + theorem Set.subsingleton_Icc_of_ge + theorem eVariationOn.Icc_add_Icc + theorem eVariationOn.add_le_union + theorem eVariationOn.add_point + theorem eVariationOn.comp_eq_of_antitoneOn + theorem eVariationOn.comp_eq_of_monotoneOn + theorem eVariationOn.comp_inter_Icc_eq_of_monotoneOn + theorem eVariationOn.comp_le_of_antitoneOn + theorem eVariationOn.comp_le_of_monotoneOn + theorem eVariationOn.comp_ofDual + theorem eVariationOn.constant_on + theorem eVariationOn.edist_le + theorem eVariationOn.eq_of_edist_zero_on + theorem eVariationOn.eq_of_eqOn + theorem eVariationOn.eq_zero_iff + theorem eVariationOn.lowerSemicontinuous_aux + theorem eVariationOn.lowerSemicontinuous_uniformOn + theorem eVariationOn.mono + theorem eVariationOn.nonempty_monotone_mem + theorem eVariationOn.sum_le + theorem eVariationOn.sum_le_of_monotoneOn_Icc + theorem eVariationOn.sum_le_of_monotoneOn_Iic + theorem eVariationOn.union 2023-06-20 11:06:04 88b496d feat: port Probability.Kernel.Disintegration (#5289) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Probability/Kernel/CondCdf.lean Added Mathlib/Probability/Kernel/Disintegration.lean + theorem MeasureTheory.AEStronglyMeasurable.ae_integrable_condKernel_iff + theorem MeasureTheory.AEStronglyMeasurable.integral_condKernel + theorem MeasureTheory.Integrable.condKernel_ae + theorem MeasureTheory.Integrable.integral_condKernel + theorem MeasureTheory.Integrable.integral_norm_condKernel + theorem MeasureTheory.Integrable.norm_integral_condKernel + theorem ProbabilityTheory.ae_condKernelReal_eq_one + theorem ProbabilityTheory.condKernelReal_Iic + theorem ProbabilityTheory.condKernel_def + theorem ProbabilityTheory.exists_cond_kernel + theorem ProbabilityTheory.integral_condKernel + theorem ProbabilityTheory.kernel.const_eq_compProd + theorem ProbabilityTheory.kernel.const_eq_compProd_real + theorem ProbabilityTheory.kernel.const_unit_eq_compProd + theorem ProbabilityTheory.lintegral_condKernel + theorem ProbabilityTheory.lintegral_condKernelReal + theorem ProbabilityTheory.lintegral_condKernelReal_mem + theorem ProbabilityTheory.lintegral_condKernelReal_univ + theorem ProbabilityTheory.lintegral_condKernel_mem + theorem ProbabilityTheory.measure_eq_compProd + theorem ProbabilityTheory.measure_eq_compProd_real + theorem ProbabilityTheory.set_integral_condKernel + theorem ProbabilityTheory.set_integral_condKernel_univ_left + theorem ProbabilityTheory.set_integral_condKernel_univ_right + theorem ProbabilityTheory.set_lintegral_condKernel + theorem ProbabilityTheory.set_lintegral_condKernelReal_Iic + theorem ProbabilityTheory.set_lintegral_condKernelReal_prod + theorem ProbabilityTheory.set_lintegral_condKernelReal_univ + theorem ProbabilityTheory.set_lintegral_condKernel_eq_measure_prod + theorem ProbabilityTheory.set_lintegral_condKernel_univ_left + theorem ProbabilityTheory.set_lintegral_condKernel_univ_right 2023-06-20 10:20:49 9a53f9f port Analysis.Fourier.AddCircle (#5273) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/Fourier/AddCircle.lean + theorem AddCircle.continuous_toCircle + def AddCircle.haarAddCircle + theorem AddCircle.injective_toCircle + theorem AddCircle.scaled_exp_map_periodic + def AddCircle.toCircle + theorem AddCircle.toCircle_add + theorem AddCircle.volume_eq_smul_haarAddCircle + theorem coeFn_fourierLp + theorem coe_fourierBasis + def fourier + def fourierBasis + theorem fourierBasis_repr + theorem fourierCoeff.const_mul + theorem fourierCoeff.const_smul + def fourierCoeff + theorem fourierCoeffOn.const_mul + theorem fourierCoeffOn.const_smul + def fourierCoeffOn + theorem fourierCoeffOn_eq_integral + theorem fourierCoeffOn_of_hasDerivAt + theorem fourierCoeff_eq_intervalIntegral + theorem fourierCoeff_liftIco_eq + theorem fourierCoeff_liftIoc_eq + theorem fourierCoeff_toLp + def fourierSubalgebra + theorem fourierSubalgebra_closure_eq_top + theorem fourierSubalgebra_coe + theorem fourierSubalgebra_conj_invariant + theorem fourierSubalgebra_separatesPoints + theorem fourier_add' + theorem fourier_add + theorem fourier_add_half_inv_index + theorem fourier_apply + theorem fourier_coe_apply' + theorem fourier_coe_apply + theorem fourier_eval_zero + theorem fourier_neg' + theorem fourier_neg + theorem fourier_norm + theorem fourier_one + theorem fourier_zero' + theorem fourier_zero + theorem hasDerivAt_fourier + theorem hasDerivAt_fourier_neg + theorem hasSum_fourier_series_L2 + theorem hasSum_fourier_series_of_summable + theorem has_antideriv_at_fourier_neg + theorem has_pointwise_sum_fourier_series_of_summable + theorem orthonormal_fourier + theorem span_fourierLp_closure_eq_top + theorem span_fourier_closure_eq_top + theorem tsum_sq_fourierCoeff 2023-06-20 10:06:52 14697d4 fix: tidy def of fieldOfFiniteDimensional (#5288) As suggested by Sebastian Gouezel [here](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/!4.235256.20RingTheory.2ETrace/near/367812247). Makes the term `fieldOfFiniteDimensional` a bit tidier (it removes ` let src_1 := inst_1;`). ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/FiniteDimensional.lean + theorem FiniteDimensional.exists_mul_eq_one 2023-06-20 08:15:44 75ce646 chore: forward port leanprover-community/mathlib#19178 (#5112) Which really only consists of a SHA update. ESTIMATED CHANGES Modified Mathlib/RingTheory/Polynomial/GaussLemma.lean 2023-06-20 08:05:56 66ea108 feat: port Probability.BorelCantelli (#5286) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Probability/BorelCantelli.lean + theorem ProbabilityTheory.iIndepFun.condexp_natural_ae_eq_of_lt + theorem ProbabilityTheory.iIndepFun.indep_comap_natural_of_lt + theorem ProbabilityTheory.iIndepSet.condexp_indicator_filtrationOfSet_ae_eq + theorem ProbabilityTheory.measure_limsup_eq_one Modified Mathlib/Probability/Process/Filtration.lean + theorem MeasureTheory.measurableSet_filtrationOfSet' - theorem MeasureTheory.measurableSet_filtration_of_set' 2023-06-20 07:43:21 6533094 feat: port Probability.Martingale.BorelCantelli (#5285) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Probability/Martingale/BorelCantelli.lean + theorem MeasureTheory.Adapted.isStoppingTime_leastGE + theorem MeasureTheory.BorelCantelli.adapted_process + theorem MeasureTheory.BorelCantelli.integrable_process + theorem MeasureTheory.BorelCantelli.martingalePart_process_ae_eq + theorem MeasureTheory.BorelCantelli.predictablePart_process_ae_eq + theorem MeasureTheory.BorelCantelli.process_difference_le + theorem MeasureTheory.BorelCantelli.process_zero + theorem MeasureTheory.Martingale.ae_not_tendsto_atTop_atBot + theorem MeasureTheory.Martingale.ae_not_tendsto_atTop_atTop + theorem MeasureTheory.Martingale.bddAbove_range_iff_bddBelow_range + theorem MeasureTheory.Submartingale.bddAbove_iff_exists_tendsto + theorem MeasureTheory.Submartingale.bddAbove_iff_exists_tendsto_aux + theorem MeasureTheory.Submartingale.exists_tendsto_of_abs_bddAbove_aux + theorem MeasureTheory.Submartingale.stoppedValue_leastGE + theorem MeasureTheory.Submartingale.stoppedValue_leastGE_snorm_le' + theorem MeasureTheory.Submartingale.stoppedValue_leastGE_snorm_le + theorem MeasureTheory.ae_mem_limsup_atTop_iff + theorem MeasureTheory.leastGE_eq_min + theorem MeasureTheory.leastGE_le + theorem MeasureTheory.leastGE_mono + theorem MeasureTheory.norm_stoppedValue_leastGE_le + theorem MeasureTheory.stoppedValue_stoppedValue_leastGE + theorem MeasureTheory.tendsto_sum_indicator_atTop_iff' + theorem MeasureTheory.tendsto_sum_indicator_atTop_iff 2023-06-20 07:33:39 eff781e feat: port Probability.Martingale.Convergence (#5283) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Probability/Martingale/Convergence.lean + theorem MeasureTheory.Integrable.tendsto_ae_condexp + theorem MeasureTheory.Integrable.tendsto_snorm_condexp + theorem MeasureTheory.Martingale.ae_eq_condexp_limitProcess + theorem MeasureTheory.Martingale.eq_condexp_of_tendsto_snorm + theorem MeasureTheory.Submartingale.ae_tendsto_limitProcess + theorem MeasureTheory.Submartingale.ae_tendsto_limitProcess_of_uniformIntegrable + theorem MeasureTheory.Submartingale.exists_ae_tendsto_of_bdd + theorem MeasureTheory.Submartingale.exists_ae_trim_tendsto_of_bdd + theorem MeasureTheory.Submartingale.memℒp_limitProcess + theorem MeasureTheory.Submartingale.tendsto_snorm_one_limitProcess + theorem MeasureTheory.Submartingale.upcrossings_ae_lt_top' + theorem MeasureTheory.Submartingale.upcrossings_ae_lt_top + theorem MeasureTheory.not_frequently_of_upcrossings_lt_top + theorem MeasureTheory.tendsto_ae_condexp + theorem MeasureTheory.tendsto_of_uncrossing_lt_top + theorem MeasureTheory.tendsto_snorm_condexp + theorem MeasureTheory.upcrossings_eq_top_of_frequently_lt 2023-06-20 07:23:14 33347ef feat: port Probability.Martingale.Upcrossing (#5281) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Probability/Martingale/Upcrossing.lean + theorem MeasureTheory.Adapted.integrable_upcrossingsBefore + theorem MeasureTheory.Adapted.isStoppingTime_crossing + theorem MeasureTheory.Adapted.isStoppingTime_lowerCrossingTime + theorem MeasureTheory.Adapted.isStoppingTime_upperCrossingTime + theorem MeasureTheory.Adapted.measurable_upcrossings + theorem MeasureTheory.Adapted.measurable_upcrossingsBefore + theorem MeasureTheory.Adapted.upcrossingStrat_adapted + theorem MeasureTheory.Submartingale.mul_integral_upcrossingsBefore_le_integral_pos_part + theorem MeasureTheory.Submartingale.mul_lintegral_upcrossings_le_lintegral_pos_part + theorem MeasureTheory.Submartingale.sum_mul_upcrossingStrat_le + theorem MeasureTheory.Submartingale.sum_sub_upcrossingStrat_mul + theorem MeasureTheory.Submartingale.sum_upcrossingStrat_mul + theorem MeasureTheory.crossing_eq_crossing_of_lowerCrossingTime_lt + theorem MeasureTheory.crossing_eq_crossing_of_upperCrossingTime_lt + theorem MeasureTheory.crossing_pos_eq + theorem MeasureTheory.exists_upperCrossingTime_eq + theorem MeasureTheory.integral_mul_upcrossingsBefore_le_integral + theorem MeasureTheory.le_sub_of_le_upcrossingsBefore + theorem MeasureTheory.lowerCrossingTime_le + theorem MeasureTheory.lowerCrossingTime_le_upperCrossingTime_succ + theorem MeasureTheory.lowerCrossingTime_lt_of_lt_upcrossingsBefore + theorem MeasureTheory.lowerCrossingTime_lt_upperCrossingTime + theorem MeasureTheory.lowerCrossingTime_mono + theorem MeasureTheory.lowerCrossingTime_stabilize' + theorem MeasureTheory.lowerCrossingTime_stabilize + theorem MeasureTheory.lowerCrossingTime_zero + theorem MeasureTheory.mul_integral_upcrossingsBefore_le_integral_pos_part_aux + theorem MeasureTheory.mul_upcrossingsBefore_le + theorem MeasureTheory.stoppedValue_lowerCrossingTime + theorem MeasureTheory.stoppedValue_upperCrossingTime + theorem MeasureTheory.sub_eq_zero_of_upcrossingsBefore_lt + theorem MeasureTheory.upcrossingStrat_le_one + theorem MeasureTheory.upcrossingStrat_nonneg + theorem MeasureTheory.upcrossingsBefore_bot + theorem MeasureTheory.upcrossingsBefore_eq_sum + theorem MeasureTheory.upcrossingsBefore_le + theorem MeasureTheory.upcrossingsBefore_lt_of_exists_upcrossing + theorem MeasureTheory.upcrossingsBefore_mono + theorem MeasureTheory.upcrossingsBefore_pos_eq + theorem MeasureTheory.upcrossingsBefore_zero' + theorem MeasureTheory.upcrossingsBefore_zero + theorem MeasureTheory.upcrossings_lt_top_iff + theorem MeasureTheory.upperCrossingTime_bound_eq + theorem MeasureTheory.upperCrossingTime_eq_of_bound_le + theorem MeasureTheory.upperCrossingTime_eq_of_upcrossingsBefore_lt + theorem MeasureTheory.upperCrossingTime_eq_upperCrossingTime_of_lt + theorem MeasureTheory.upperCrossingTime_le + theorem MeasureTheory.upperCrossingTime_le_lowerCrossingTime + theorem MeasureTheory.upperCrossingTime_lt_bddAbove + theorem MeasureTheory.upperCrossingTime_lt_lowerCrossingTime + theorem MeasureTheory.upperCrossingTime_lt_nonempty + theorem MeasureTheory.upperCrossingTime_lt_of_le_upcrossingsBefore + theorem MeasureTheory.upperCrossingTime_lt_succ + theorem MeasureTheory.upperCrossingTime_mono + theorem MeasureTheory.upperCrossingTime_stabilize' + theorem MeasureTheory.upperCrossingTime_stabilize + theorem MeasureTheory.upperCrossingTime_succ + theorem MeasureTheory.upperCrossingTime_succ_eq + theorem MeasureTheory.upperCrossingTime_zero' + theorem MeasureTheory.upperCrossingTime_zero Modified Mathlib/Probability/Notation.lean 2023-06-20 05:13:17 dbae2f1 feat: more consistent use of `ext`, and updating porting notes. (#5242) ESTIMATED CHANGES Modified Mathlib/Algebra/Category/GroupCat/Basic.lean Modified Mathlib/Algebra/Category/GroupCat/Colimits.lean Modified Mathlib/Algebra/Category/GroupCat/Limits.lean Modified Mathlib/Algebra/Homology/ImageToKernel.lean Modified Mathlib/Algebra/Homology/Opposite.lean Modified Mathlib/Algebra/Homology/QuasiIso.lean Modified Mathlib/AlgebraicGeometry/PresheafedSpace.lean Modified Mathlib/AlgebraicGeometry/PresheafedSpace/HasColimits.lean Modified Mathlib/AlgebraicGeometry/SheafedSpace.lean + theorem AlgebraicGeometry.SheafedSpace.ext Modified Mathlib/AlgebraicGeometry/Spec.lean Modified Mathlib/AlgebraicGeometry/Stalks.lean Modified Mathlib/AlgebraicGeometry/StructureSheaf.lean Modified Mathlib/AlgebraicTopology/SplitSimplicialObject.lean - def SimplicialObject.Splitting.coprod Modified Mathlib/CategoryTheory/Abelian/Basic.lean Modified Mathlib/CategoryTheory/Abelian/Exact.lean Modified Mathlib/CategoryTheory/Abelian/FunctorCategory.lean Modified Mathlib/CategoryTheory/Abelian/Homology.lean Modified Mathlib/CategoryTheory/Abelian/Images.lean Modified Mathlib/CategoryTheory/Abelian/LeftDerived.lean Modified Mathlib/CategoryTheory/Abelian/NonPreadditive.lean Modified Mathlib/CategoryTheory/Abelian/Opposite.lean Modified Mathlib/CategoryTheory/Abelian/RightDerived.lean Modified Mathlib/CategoryTheory/Adjunction/Comma.lean Modified Mathlib/CategoryTheory/Closed/Cartesian.lean Modified Mathlib/CategoryTheory/Closed/Functor.lean Modified Mathlib/CategoryTheory/ConcreteCategory/Basic.lean Modified Mathlib/CategoryTheory/Functor/Flat.lean Modified Mathlib/CategoryTheory/Idempotents/Basic.lean Modified Mathlib/CategoryTheory/Idempotents/FunctorCategories.lean Modified Mathlib/CategoryTheory/Limits/ConcreteCategory.lean Modified Mathlib/CategoryTheory/Limits/Constructions/Equalizers.lean Modified Mathlib/CategoryTheory/Limits/Constructions/Pullbacks.lean Modified Mathlib/CategoryTheory/Limits/Final.lean Modified Mathlib/CategoryTheory/Limits/HasLimits.lean Modified Mathlib/CategoryTheory/Limits/Over.lean Modified Mathlib/CategoryTheory/Limits/Preserves/Limits.lean Modified Mathlib/CategoryTheory/Limits/Preserves/Shapes/Biproducts.lean Modified Mathlib/CategoryTheory/Limits/Presheaf.lean Modified Mathlib/CategoryTheory/Limits/Shapes/BinaryProducts.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Biproducts.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Diagonal.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Equalizers.lean Modified Mathlib/CategoryTheory/Limits/Shapes/KernelPair.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Kernels.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Multiequalizer.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Products.lean Modified Mathlib/CategoryTheory/Limits/Shapes/RegularMono.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Terminal.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Types.lean Modified Mathlib/CategoryTheory/Monad/Products.lean Modified Mathlib/CategoryTheory/Monoidal/CommMon_.lean Modified Mathlib/CategoryTheory/Monoidal/Mod_.lean Modified Mathlib/CategoryTheory/MorphismProperty.lean Modified Mathlib/CategoryTheory/Preadditive/Biproducts.lean Modified Mathlib/CategoryTheory/Preadditive/HomOrthogonal.lean Modified Mathlib/CategoryTheory/Preadditive/Mat.lean Modified Mathlib/CategoryTheory/Sites/CompatiblePlus.lean Modified Mathlib/CategoryTheory/Sites/CoverLifting.lean Modified Mathlib/CategoryTheory/Sites/Pretopology.lean Modified Mathlib/CategoryTheory/Sites/SheafOfTypes.lean +/- def CategoryTheory.Equalizer.Presieve.SecondObj Modified Mathlib/CategoryTheory/StructuredArrow.lean Modified Mathlib/CategoryTheory/Subobject/Lattice.lean Modified Mathlib/Topology/Sheaves/Forget.lean Modified Mathlib/Topology/Sheaves/SheafCondition/EqualizerProducts.lean Modified Mathlib/Topology/Sheaves/SheafCondition/UniqueGluing.lean Modified Mathlib/Topology/Sheaves/Stalks.lean 2023-06-20 03:47:42 7c90ee6 feat: add two basic lemmas about `selfAdjoint` elements (#5169) - `selfAdjoint` elements are automatically normal - the image of an element under a star-preserving map in a space with a `TrivialStar` is self-adjoint ESTIMATED CHANGES Modified Mathlib/Algebra/Star/SelfAdjoint.lean + theorem isSelfAdjoint_starHom_apply 2023-06-20 02:30:59 51aa827 feat: port Probability.Martingale.OptionalStopping (#5274) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Probability/Martingale/OptionalStopping.lean + theorem MeasureTheory.Submartingale.expected_stoppedValue_mono + theorem MeasureTheory.maximal_ineq + theorem MeasureTheory.smul_le_stoppedValue_hitting + theorem MeasureTheory.submartingale_iff_expected_stoppedValue_mono + theorem MeasureTheory.submartingale_of_expected_stoppedValue_mono 2023-06-20 01:57:28 ab415df feat: interaction between `StarSubalgebra.map` and `topologicalClosure` (#5166) ESTIMATED CHANGES Modified Mathlib/Topology/Algebra/StarSubalgebra.lean + theorem StarSubalgebra.map_topologicalClosure_le + theorem StarSubalgebra.topologicalClosure_map + theorem StarSubalgebra.topologicalClosure_map_le 2023-06-20 01:57:27 8990119 feat: add `StarAlgHom.range` related declarations (#5161) ESTIMATED CHANGES Modified Mathlib/Algebra/Star/Subalgebra.lean + def StarAlgEquiv.restrictScalars + theorem StarAlgEquiv.restrictScalars_injective + def StarAlgHom.rangeRestrict + theorem StarAlgHom.range_eq_map_top + def StarAlgHom.restrictScalars + theorem StarAlgHom.restrictScalars_injective 2023-06-20 01:57:25 944d568 feat: add missing instance `StarAlgEquivClass.toAlgEquivClass` (#5160) ESTIMATED CHANGES Modified Mathlib/Algebra/Star/StarAlgHom.lean 2023-06-19 22:27:11 e266a22 feat: More `sup_indep` lemmas (#5196) Match https://github.com/leanprover-community/mathlib/pull/11932 ESTIMATED CHANGES Modified Mathlib/Data/Finset/Pairwise.lean + theorem Set.PairwiseDisjoint.attach +/- theorem Set.PairwiseDisjoint.image_finset_of_le Modified Mathlib/Data/Set/Pairwise/Basic.lean + theorem Set.PairwiseDisjoint.prod + theorem Set.pairwiseDisjoint_pi Modified Mathlib/Data/Set/Pairwise/Lattice.lean + theorem Set.PairwiseDisjoint.prod_left + theorem Set.pairwiseDisjoint_prod_left +/- theorem Set.pairwise_iUnion Modified Mathlib/Data/Set/Prod.lean + theorem Set.Disjoint.set_pi + theorem Set.Disjoint.set_prod_left + theorem Set.Disjoint.set_prod_right + theorem Set.disjoint_pi + theorem Set.pi_eq_empty_iff' Modified Mathlib/Order/SupIndep.lean +/- theorem Finset.SupIndep.attach + theorem Finset.SupIndep.image + theorem Finset.SupIndep.le_sup_iff + theorem Finset.SupIndep.product + theorem Finset.SupIndep.sigma + theorem Finset.supIndep_attach + theorem Finset.supIndep_map + theorem Finset.supIndep_product_iff 2023-06-19 19:36:49 5f2c0b7 chore: tidy various files (#5268) ESTIMATED CHANGES Modified Mathlib/Algebra/Category/Mon/FilteredColimits.lean Modified Mathlib/Algebra/Category/Ring/Limits.lean Modified Mathlib/Algebra/Free.lean Modified Mathlib/AlgebraicGeometry/PresheafedSpace.lean Modified Mathlib/Data/Prod/Basic.lean Modified Mathlib/Data/Set/Basic.lean Modified Mathlib/GroupTheory/Perm/Basic.lean Modified Mathlib/Logic/Basic.lean Modified Mathlib/Logic/Function/Basic.lean Modified Mathlib/MeasureTheory/Covering/BesicovitchVectorSpace.lean Modified Mathlib/Order/Lattice.lean Modified Mathlib/Tactic/ToAdditive.lean Modified Mathlib/Topology/Order/Basic.lean - theorem nhdsWithin_Iio_self_neBot - theorem nhdsWithin_Ioi_self_neBot Modified Mathlib/Topology/Separation.lean 2023-06-19 16:31:17 0c4c62b feat: functions eventually constant along filters (#5248) Heavily based on the code from the sphere eversion project. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Logic/Basic.lean + theorem Prop.exists_iff + theorem Prop.forall_iff Added Mathlib/Order/Filter/EventuallyConst.lean + theorem Filter.EventuallyConst.apply + theorem Filter.EventuallyConst.comp + theorem Filter.EventuallyConst.comp_tendsto + theorem Filter.EventuallyConst.comp₂ + theorem Filter.EventuallyConst.mono + theorem Filter.EventuallyConst.mul + theorem Filter.EventuallyConst.of_mulIndicator_const + theorem Filter.EventuallyConst.of_subsingleton + theorem Filter.EventuallyConst.of_unique + theorem Filter.EventuallyConst.prod_mk + def Filter.EventuallyConst + theorem Filter.eventuallyConst_atTop + theorem Filter.eventuallyConst_atTop_nat + theorem Filter.eventuallyConst_iff_tendsto + theorem Filter.eventuallyConst_pred' + theorem Filter.eventuallyConst_pred + theorem Filter.eventuallyConst_set' + theorem Filter.eventuallyConst_set 2023-06-19 15:02:15 140b007 chore: use `in` in `set_option maxHeartbeats` (#5261) ESTIMATED CHANGES Modified Mathlib/FieldTheory/IsAlgClosed/AlgebraicClosure.lean 2023-06-19 15:02:14 809416a feat: port CategoryTheory.Monoidal.Internal.Types (#5253) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Monoidal/Internal/Types.lean 2023-06-19 15:02:12 a7b1b60 feat: port NumberTheory.KummerDedekind (#5249) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/NumberTheory/KummerDedekind.lean + theorem KummerDedekind.Ideal.irreducible_map_of_irreducible_minpoly + theorem KummerDedekind.multiplicity_factors_map_eq_multiplicity + theorem KummerDedekind.normalizedFactors_ideal_map_eq_normalizedFactors_min_poly_mk_map + theorem comap_map_eq_map_adjoin_of_coprime_conductor + def conductor + theorem conductor_eq_of_eq + theorem conductor_eq_top_of_adjoin_eq_top + theorem conductor_eq_top_of_powerBasis + theorem conductor_subset_adjoin + theorem mem_conductor_iff + theorem prod_mem_ideal_map_of_mem_conductor + theorem quotAdjoinEquivQuotMap_apply_mk 2023-06-19 15:02:11 2145fc4 chore: reviewing porting notes about rw/simp/simp_rw (#5244) ESTIMATED CHANGES Modified Mathlib/Algebra/Quaternion.lean Modified Mathlib/GroupTheory/OrderOfElement.lean Modified Mathlib/LinearAlgebra/Finsupp.lean Modified Mathlib/LinearAlgebra/LinearIndependent.lean Modified Mathlib/NumberTheory/Zsqrtd/Basic.lean Modified Mathlib/RingTheory/DedekindDomain/PID.lean Modified Mathlib/RingTheory/Polynomial/Hermite/Basic.lean Modified Mathlib/RingTheory/TensorProduct.lean Modified Mathlib/Topology/Algebra/Monoid.lean Modified Mathlib/Topology/Category/Profinite/Basic.lean Modified Mathlib/Topology/Gluing.lean 2023-06-19 13:40:08 59c36da chore: bump Std4 (#5219) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Preadditive/Mat.lean Modified Mathlib/CategoryTheory/Sites/Canonical.lean Modified Mathlib/CategoryTheory/Sites/Closed.lean Modified Mathlib/CategoryTheory/Sites/Coverage.lean Modified Mathlib/CategoryTheory/Sites/EffectiveEpimorphic.lean Modified Mathlib/CategoryTheory/Sites/InducedTopology.lean Modified Mathlib/CategoryTheory/Sites/Sieves.lean Modified Mathlib/CategoryTheory/Sites/Surjective.lean Modified Mathlib/Data/Matrix/DMatrix.lean Modified Mathlib/LinearAlgebra/BilinearForm.lean Modified Mathlib/LinearAlgebra/LinearPMap.lean Modified Mathlib/MeasureTheory/Decomposition/Jordan.lean Modified Mathlib/MeasureTheory/Decomposition/Lebesgue.lean Modified Mathlib/MeasureTheory/Measure/VectorMeasure.lean Modified Mathlib/MeasureTheory/Measure/WithDensityVectorMeasure.lean Modified Mathlib/NumberTheory/ModularForms/CongruenceSubgroups.lean Modified Mathlib/Probability/ConditionalProbability.lean Modified Mathlib/Probability/Kernel/Basic.lean Modified Mathlib/Probability/Kernel/Composition.lean Modified Mathlib/Probability/Kernel/Invariance.lean Modified Mathlib/Probability/Kernel/WithDensity.lean Modified Mathlib/Topology/Algebra/Module/LinearPMap.lean Modified lake-manifest.json 2023-06-19 13:10:59 5ed7d91 chore: add @[ext] lemmas for NatTrans synonyms (#5228) ESTIMATED CHANGES Modified Mathlib/Algebra/Category/ModuleCat/Tannaka.lean Modified Mathlib/AlgebraicGeometry/PresheafedSpace.lean Modified Mathlib/AlgebraicGeometry/PresheafedSpace/HasColimits.lean Modified Mathlib/AlgebraicGeometry/Spec.lean Modified Mathlib/AlgebraicGeometry/Stalks.lean Modified Mathlib/AlgebraicTopology/Nerve.lean Modified Mathlib/AlgebraicTopology/SimplicialSet.lean + theorem SSet.Truncated.hom_ext + theorem SSet.hom_ext +/- def SSet.hornInclusion Modified Mathlib/CategoryTheory/Limits/FunctorCategory.lean Modified Mathlib/CategoryTheory/Localization/Construction.lean Modified Mathlib/CategoryTheory/Localization/Predicate.lean Modified Mathlib/CategoryTheory/MorphismProperty.lean + theorem CategoryTheory.MorphismProperty.FunctorsInverting.hom_ext Modified Mathlib/CategoryTheory/Whiskering.lean Modified Mathlib/CategoryTheory/Yoneda.lean + theorem CategoryTheory.yonedaPairingExt Modified Mathlib/Topology/Sheaves/Presheaf.lean + theorem TopCat.Presheaf.ext 2023-06-19 13:10:58 02b5eeb chore: cleanup CategoryTheory.Pi.Basic (#5180) While experimenting with making `ext` more powerful a proof was failing here. Rather than fix it, it seemed easier to just remove it. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Pi/Basic.lean +/- def CategoryTheory.Pi.comap + theorem CategoryTheory.Pi.ext 2023-06-19 13:10:57 e4dc3ad chore: better error message for non-cached files (#5129) ESTIMATED CHANGES Modified Cache/Hashing.lean 2023-06-19 12:07:44 51accc7 chore: add @[simp] uniformly to _top_of_surjective lemmas (#5064) Some such lemmas are already labelled `@[simp]`, and this PR adds `@[simp]` to the remaining ones. It's useful for some automation I'm writing to have these all in `simp`. ESTIMATED CHANGES Modified Mathlib/GroupTheory/Subgroup/Basic.lean Modified Mathlib/GroupTheory/Submonoid/Operations.lean Modified Mathlib/GroupTheory/Subsemigroup/Operations.lean Modified Mathlib/MeasureTheory/Measure/OuterMeasure.lean Modified Mathlib/RingTheory/NonUnitalSubsemiring/Basic.lean Modified Mathlib/RingTheory/Subring/Basic.lean Modified Mathlib/RingTheory/Subsemiring/Basic.lean 2023-06-19 10:10:18 129e53b feat: port NumberTheory.WellApproximable (#5255) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/NumberTheory/WellApproximable.lean + theorem AddCircle.addWellApproximable_ae_empty_or_univ + theorem UnitAddCircle.mem_addWellApproximable_iff + theorem UnitAddCircle.mem_approxAddOrderOf_iff + theorem approxOrderOf.image_pow_subset + theorem approxOrderOf.image_pow_subset_of_coprime + theorem approxOrderOf.smul_eq_of_mul_dvd + theorem approxOrderOf.smul_subset_of_coprime + def approxOrderOf + theorem mem_approxOrderOf_iff + theorem mem_wellApproximable_iff + def wellApproximable 2023-06-19 10:10:17 32106e9 feat: The lattice of complemented elements (#5194) Match https://github.com/leanprover-community/mathlib/pull/16267 ESTIMATED CHANGES Modified Mathlib/Order/Disjoint.lean + theorem Complementeds.codisjoint_coe + theorem Complementeds.coe_bot + theorem Complementeds.coe_inf + theorem Complementeds.coe_inj + theorem Complementeds.coe_injective + theorem Complementeds.coe_le_coe + theorem Complementeds.coe_lt_coe + theorem Complementeds.coe_sup + theorem Complementeds.coe_top + theorem Complementeds.disjoint_coe + theorem Complementeds.isCompl_coe + theorem Complementeds.mk_bot + theorem Complementeds.mk_inf_mk + theorem Complementeds.mk_sup_mk + theorem Complementeds.mk_top + def Complementeds + theorem IsComplemented.inf + theorem IsComplemented.sup + def IsComplemented + theorem isComplemented_bot + theorem isComplemented_top 2023-06-19 09:58:42 9e48670 feat: port Probability.Martingale.Centering (#5252) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Probability/Martingale/Centering.lean + theorem MeasureTheory.adapted_martingalePart + theorem MeasureTheory.adapted_predictablePart' + theorem MeasureTheory.adapted_predictablePart + theorem MeasureTheory.integrable_martingalePart + theorem MeasureTheory.martingalePart_add_ae_eq + theorem MeasureTheory.martingalePart_add_predictablePart + theorem MeasureTheory.martingalePart_bdd_difference + theorem MeasureTheory.martingalePart_eq_sum + theorem MeasureTheory.martingale_martingalePart + theorem MeasureTheory.predictablePart_add_ae_eq + theorem MeasureTheory.predictablePart_bdd_difference + theorem MeasureTheory.predictablePart_zero 2023-06-19 09:50:19 a498c7c feat: port Archive.Wiedijk100Theorems.FriendshipGraphs (#5189) ESTIMATED CHANGES Modified Archive.lean Added Archive/Wiedijk100Theorems/FriendshipGraphs.lean + def Theorems100.ExistsPolitician + theorem Theorems100.Friendship.adjMatrix_mul_const_one_mod_p_of_regular + theorem Theorems100.Friendship.adjMatrix_pow_mod_p_of_regular + theorem Theorems100.Friendship.adjMatrix_pow_three_of_not_adj + theorem Theorems100.Friendship.adjMatrix_sq_mod_p_of_regular + theorem Theorems100.Friendship.adjMatrix_sq_mul_const_one_of_regular + theorem Theorems100.Friendship.adjMatrix_sq_of_ne + theorem Theorems100.Friendship.adjMatrix_sq_of_regular + theorem Theorems100.Friendship.card_mod_p_of_regular + theorem Theorems100.Friendship.card_of_regular + theorem Theorems100.Friendship.degree_eq_of_not_adj + theorem Theorems100.Friendship.existsPolitician_of_degree_eq_two + theorem Theorems100.Friendship.existsPolitician_of_degree_le_one + theorem Theorems100.Friendship.existsPolitician_of_degree_le_two + theorem Theorems100.Friendship.false_of_three_le_degree + theorem Theorems100.Friendship.isRegularOf_not_existsPolitician + theorem Theorems100.Friendship.neighborFinset_eq_of_degree_eq_two + def Theorems100.Friendship + theorem Theorems100.friendship_theorem 2023-06-19 09:13:38 118d712 feat: The numerator and denominator of a rational function are coprime (#5136) Match https://github.com/leanprover-community/mathlib/pull/18652 ESTIMATED CHANGES Modified Mathlib/Algebra/EuclideanDomain/Basic.lean Modified Mathlib/FieldTheory/RatFunc.lean + theorem RatFunc.isCoprime_num_denom Modified Mathlib/RingTheory/EuclideanDomain.lean +/- theorem gcd_ne_zero_of_left +/- theorem gcd_ne_zero_of_right + theorem isCoprime_div_gcd_div_gcd 2023-06-19 08:58:33 8982262 feat: port Dynamics.Ergodic.AddCircle (#5251) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Dynamics/Ergodic/AddCircle.lean + theorem AddCircle.ae_empty_or_univ_of_forall_vadd_ae_eq_self + theorem AddCircle.ergodic_nsmul + theorem AddCircle.ergodic_nsmul_add + theorem AddCircle.ergodic_zsmul + theorem AddCircle.ergodic_zsmul_add 2023-06-19 08:58:32 cc29b55 feat: port Archive.Wiedijk100Theorems.CubingACube (#5201) ESTIMATED CHANGES Modified Archive.lean Added Archive/Wiedijk100Theorems/CubingACube.lean + theorem Theorems100.«82».Correct.b_add_w_le_one + theorem Theorems100.«82».Correct.nontrivial_fin + theorem Theorems100.«82».Correct.shiftUp_bottom_subset_bottoms + theorem Theorems100.«82».Correct.side_subset + theorem Theorems100.«82».Correct.toSet_subset_unitCube + theorem Theorems100.«82».Correct.w_ne_one + theorem Theorems100.«82».Correct.zero_le_b + theorem Theorems100.«82».Correct.zero_le_of_mem + theorem Theorems100.«82».Correct.zero_le_of_mem_side + structure Theorems100.«82».Correct + theorem Theorems100.«82».Cube.b_lt_xm + theorem Theorems100.«82».Cube.b_mem_bottom + theorem Theorems100.«82».Cube.b_mem_side + theorem Theorems100.«82».Cube.b_mem_toSet + theorem Theorems100.«82».Cube.b_ne_xm + def Theorems100.«82».Cube.bottom + theorem Theorems100.«82».Cube.head_shiftUp + theorem Theorems100.«82».Cube.hw' + def Theorems100.«82».Cube.shiftUp + def Theorems100.«82».Cube.side + theorem Theorems100.«82».Cube.side_nonempty + theorem Theorems100.«82».Cube.side_tail + theorem Theorems100.«82».Cube.side_unitCube + theorem Theorems100.«82».Cube.tail_shiftUp + def Theorems100.«82».Cube.toSet + theorem Theorems100.«82».Cube.toSet_disjoint + theorem Theorems100.«82».Cube.toSet_subset + def Theorems100.«82».Cube.unitCube + theorem Theorems100.«82».Cube.univ_pi_side + def Theorems100.«82».Cube.xm + structure Theorems100.«82».Cube + theorem Theorems100.«82».Ico_lemma + def Theorems100.«82».OnBoundary + def Theorems100.«82».Valley + theorem Theorems100.«82».b_le_b + def Theorems100.«82».bcubes + theorem Theorems100.«82».bottom_mem_side + theorem Theorems100.«82».cannot_cube_a_cube + def Theorems100.«82».decreasingSequence + theorem Theorems100.«82».exists_mi + theorem Theorems100.«82».injective_sequenceOfCubes + def Theorems100.«82».mi + theorem Theorems100.«82».mi_mem_bcubes + theorem Theorems100.«82».mi_minimal + theorem Theorems100.«82».mi_not_onBoundary' + theorem Theorems100.«82».mi_not_onBoundary + theorem Theorems100.«82».mi_strict_minimal + theorem Theorems100.«82».mi_xm_ne_one + theorem Theorems100.«82».nonempty_bcubes + theorem Theorems100.«82».nontrivial_bcubes + theorem Theorems100.«82».not_correct + theorem Theorems100.«82».smallest_onBoundary + theorem Theorems100.«82».strictAnti_sequenceOfCubes + theorem Theorems100.«82».t_le_t + theorem Theorems100.«82».tail_sub + theorem Theorems100.«82».valley_mi + theorem Theorems100.«82».valley_unitCube + theorem Theorems100.«82».w_lt_w 2023-06-19 08:58:30 2f34d0b feat: port FieldTheory.IsAlgClosed.AlgebraicClosure (#5074) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/FieldTheory/IsAlgClosed/AlgebraicClosure.lean + theorem AlgebraicClosure.AdjoinMonic.algebraMap + theorem AlgebraicClosure.AdjoinMonic.exists_root + theorem AlgebraicClosure.AdjoinMonic.isIntegral + def AlgebraicClosure.AdjoinMonic + def AlgebraicClosure.MonicIrreducible + theorem AlgebraicClosure.Step.isIntegral + theorem AlgebraicClosure.Step.succ + theorem AlgebraicClosure.Step.zero + def AlgebraicClosure.Step + theorem AlgebraicClosure.algebraMap_def + theorem AlgebraicClosure.coe_toStepOfLE + def AlgebraicClosure.evalXSelf + theorem AlgebraicClosure.exists_ofStep + theorem AlgebraicClosure.exists_root + theorem AlgebraicClosure.isAlgebraic + theorem AlgebraicClosure.le_maxIdeal + def AlgebraicClosure.maxIdeal + def AlgebraicClosure.ofStep + def AlgebraicClosure.ofStepHom + theorem AlgebraicClosure.ofStep_succ + def AlgebraicClosure.spanEval + theorem AlgebraicClosure.spanEval_ne_top + def AlgebraicClosure.stepAux + def AlgebraicClosure.toAdjoinMonic + def AlgebraicClosure.toSplittingField + theorem AlgebraicClosure.toSplittingField_evalXSelf + def AlgebraicClosure.toStepOfLE + theorem AlgebraicClosure.toStepSucc.exists_root + def AlgebraicClosure.toStepSucc + def AlgebraicClosure.toStepZero + def AlgebraicClosure 2023-06-19 08:58:29 2c9b00d feat: port AlgebraicGeometry.OpenImmersion.Basic (#5046) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/AlgebraicGeometry/OpenImmersion/Basic.lean + def AlgebraicGeometry.LocallyRingedSpace.IsOpenImmersion.lift + theorem AlgebraicGeometry.LocallyRingedSpace.IsOpenImmersion.lift_fac + theorem AlgebraicGeometry.LocallyRingedSpace.IsOpenImmersion.lift_range + theorem AlgebraicGeometry.LocallyRingedSpace.IsOpenImmersion.lift_uniq + def AlgebraicGeometry.LocallyRingedSpace.IsOpenImmersion.pullbackConeOfLeft + def AlgebraicGeometry.LocallyRingedSpace.IsOpenImmersion.pullbackConeOfLeftIsLimit + theorem AlgebraicGeometry.LocallyRingedSpace.IsOpenImmersion.pullback_snd_isIso_of_range_subset + theorem AlgebraicGeometry.PresheafedSpace.IsOpenImmersion.app_invApp + theorem AlgebraicGeometry.PresheafedSpace.IsOpenImmersion.app_inv_app' + theorem AlgebraicGeometry.PresheafedSpace.IsOpenImmersion.invApp_app + theorem AlgebraicGeometry.PresheafedSpace.IsOpenImmersion.inv_invApp + theorem AlgebraicGeometry.PresheafedSpace.IsOpenImmersion.inv_naturality + theorem AlgebraicGeometry.PresheafedSpace.IsOpenImmersion.isIso_of_subset + def AlgebraicGeometry.PresheafedSpace.IsOpenImmersion.isoOfRangeEq + theorem AlgebraicGeometry.PresheafedSpace.IsOpenImmersion.isoRestrict_hom_ofRestrict + theorem AlgebraicGeometry.PresheafedSpace.IsOpenImmersion.isoRestrict_inv_ofRestrict + def AlgebraicGeometry.PresheafedSpace.IsOpenImmersion.lift + theorem AlgebraicGeometry.PresheafedSpace.IsOpenImmersion.lift_fac + theorem AlgebraicGeometry.PresheafedSpace.IsOpenImmersion.lift_uniq + theorem AlgebraicGeometry.PresheafedSpace.IsOpenImmersion.locallyRingedSpace_toLocallyRingedSpace + theorem AlgebraicGeometry.PresheafedSpace.IsOpenImmersion.ofRestrict_invApp + def AlgebraicGeometry.PresheafedSpace.IsOpenImmersion.pullbackConeOfLeft + def AlgebraicGeometry.PresheafedSpace.IsOpenImmersion.pullbackConeOfLeftFst + def AlgebraicGeometry.PresheafedSpace.IsOpenImmersion.pullbackConeOfLeftIsLimit + def AlgebraicGeometry.PresheafedSpace.IsOpenImmersion.pullbackConeOfLeftLift + theorem AlgebraicGeometry.PresheafedSpace.IsOpenImmersion.pullbackConeOfLeftLift_fst + theorem AlgebraicGeometry.PresheafedSpace.IsOpenImmersion.pullbackConeOfLeftLift_snd + theorem AlgebraicGeometry.PresheafedSpace.IsOpenImmersion.pullback_cone_of_left_condition + theorem AlgebraicGeometry.PresheafedSpace.IsOpenImmersion.pullback_snd_isIso_of_range_subset + theorem AlgebraicGeometry.PresheafedSpace.IsOpenImmersion.sheafedSpace_toSheafedSpace + def AlgebraicGeometry.PresheafedSpace.IsOpenImmersion.toLocallyRingedSpace + def AlgebraicGeometry.PresheafedSpace.IsOpenImmersion.toLocallyRingedSpaceHom + theorem AlgebraicGeometry.PresheafedSpace.IsOpenImmersion.toLocallyRingedSpaceHom_val + theorem AlgebraicGeometry.PresheafedSpace.IsOpenImmersion.toLocallyRingedSpace_toSheafedSpace + def AlgebraicGeometry.PresheafedSpace.IsOpenImmersion.toSheafedSpace + def AlgebraicGeometry.PresheafedSpace.IsOpenImmersion.toSheafedSpaceHom + theorem AlgebraicGeometry.PresheafedSpace.IsOpenImmersion.toSheafedSpaceHom_base + theorem AlgebraicGeometry.PresheafedSpace.IsOpenImmersion.toSheafedSpaceHom_c + theorem AlgebraicGeometry.PresheafedSpace.IsOpenImmersion.toSheafedSpace_toPresheafedSpace + theorem AlgebraicGeometry.PresheafedSpace.IsOpenImmersion.to_iso + theorem AlgebraicGeometry.SheafedSpace.IsOpenImmersion.image_preimage_is_empty + theorem AlgebraicGeometry.SheafedSpace.IsOpenImmersion.of_stalk_iso + theorem AlgebraicGeometry.SheafedSpace.IsOpenImmersion.sigma_ι_openEmbedding 2023-06-19 07:36:25 09f32cc feat: port Probability.Martingale.OptionalSampling (#5247) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/MeasureTheory/Function/ConditionalExpectation/Basic.lean - theorem MeasureTheory.condexp_of_aEStronglyMeasurable' + theorem MeasureTheory.condexp_of_aestronglyMeasurable' Added Mathlib/Probability/Martingale/OptionalSampling.lean + theorem MeasureTheory.Martingale.condexp_stoppedValue_stopping_time_ae_eq_restrict_le + theorem MeasureTheory.Martingale.condexp_stopping_time_ae_eq_restrict_eq_const + theorem MeasureTheory.Martingale.condexp_stopping_time_ae_eq_restrict_eq_const_of_le_const + theorem MeasureTheory.Martingale.stoppedValue_ae_eq_condexp_of_le + theorem MeasureTheory.Martingale.stoppedValue_ae_eq_condexp_of_le_const + theorem MeasureTheory.Martingale.stoppedValue_ae_eq_condexp_of_le_const_of_countable_range + theorem MeasureTheory.Martingale.stoppedValue_ae_eq_condexp_of_le_of_countable_range + theorem MeasureTheory.Martingale.stoppedValue_ae_eq_restrict_eq + theorem MeasureTheory.Martingale.stoppedValue_min_ae_eq_condexp 2023-06-19 07:36:24 58bb00d chore: let `push_neg` handle `not_iff` (#5235) There is not really a standard negation for `iff`, but I think the one I have set up here is a common one, and anyway any handling is better than nothing. If someone would like an alternate handling of the `iff` negation, they can set it up as an option for the tactic, as is currently done with the variants on the `and` negation. ESTIMATED CHANGES Modified Mathlib/Tactic/PushNeg.lean + theorem Mathlib.Tactic.PushNeg.not_iff 2023-06-19 07:36:23 2ff3402 feat: port Archive.Wiedijk100Theorems.SolutionOfCubic (#5203) ESTIMATED CHANGES Modified Archive.lean Added Archive/Wiedijk100Theorems/SolutionOfCubic.lean + theorem Theorems100.cube_root_of_unity_sum + theorem Theorems100.cubic_basic_eq_zero_iff + theorem Theorems100.cubic_eq_zero_iff + theorem Theorems100.cubic_eq_zero_iff_of_p_eq_zero + theorem Theorems100.cubic_monic_eq_zero_iff 2023-06-19 07:36:22 3eb0bc2 feat: port Archive.Imo.Imo1987Q1 (#5091) ESTIMATED CHANGES Modified Archive.lean Added Archive/Imo/Imo1987Q1.lean + theorem Imo1987Q1.card_fixed_points + def Imo1987Q1.fiber + def Imo1987Q1.fixedPointsEquiv' + def Imo1987Q1.fixedPointsEquiv + theorem Imo1987Q1.main + theorem Imo1987Q1.main_fintype + theorem Imo1987Q1.main₀ + theorem Imo1987Q1.mem_fiber + def Imo1987Q1.p 2023-06-19 06:49:56 26f645a feat: restore `positivity` extension for `ℝ≥0∞` (#5234) ESTIMATED CHANGES Modified Mathlib/Data/Real/ENNReal.lean + def Mathlib.Meta.Positivity.evalENNRealOfReal + def Mathlib.Meta.Positivity.evalENNRealSome + def Mathlib.Meta.Positivity.evalENNRealtoReal 2023-06-19 05:31:20 4044263 feat: port MeasureTheory.Group.AddCircle (#5245) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/MeasureTheory/Group/AddCircle.lean + theorem AddCircle.closedBall_ae_eq_ball + theorem AddCircle.isAddFundamentalDomain_of_ae_ball + theorem AddCircle.volume_of_add_preimage_eq 2023-06-19 05:31:19 5180736 chore: cleanup a `change at` porting note (#5243) ESTIMATED CHANGES Modified Mathlib/Algebra/Order/AbsoluteValue.lean Modified Mathlib/LinearAlgebra/Basis.lean Modified Mathlib/NumberTheory/Padics/PadicNumbers.lean 2023-06-19 05:31:18 c479f37 fix: use `withMainContext` in `borelize` tactic (#5237) Also make it use `withoutRecover` when elaborating arguments (like in `apply`), and in addition use `exprToSyntax` to make sure each argument is elaborated only once. Adding `withMainContext` fixes the bug reported by @urkud [on Zulip](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/bug.20in.20.60borelize.60/near/367468010). ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Constructions/BorelSpace/Basic.lean +/- def Mathlib.Tactic.Borelize.addBorelInstance +/- def Mathlib.Tactic.Borelize.borelToRefl +/- def Mathlib.Tactic.Borelize.borelize Added test/borelize.lean 2023-06-19 05:31:16 697ac1d chore: tidy various files (#5233) ESTIMATED CHANGES Modified Archive/Imo/Imo2011Q5.lean Modified Archive/Imo/Imo2019Q4.lean Modified Mathlib/Algebra/Group/Defs.lean Modified Mathlib/Algebra/Lie/OfAssociative.lean + theorem AlgHom.coe_toLieHom - theorem AlgHom.coe_to_lieHom + theorem AlgHom.toLieHom_comp + theorem AlgHom.toLieHom_id + theorem AlgHom.toLieHom_injective - theorem AlgHom.to_lieHom_comp - theorem AlgHom.to_lieHom_id - theorem AlgHom.to_lieHom_injective Modified Mathlib/Algebra/Lie/UniversalEnveloping.lean Modified Mathlib/Algebra/NeZero.lean Modified Mathlib/Algebra/Order/Monoid/NatCast.lean Modified Mathlib/Analysis/Analytic/IsolatedZeros.lean Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Series.lean Modified Mathlib/CategoryTheory/Groupoid/Subgroupoid.lean Modified Mathlib/Data/Vector3.lean Modified Mathlib/FieldTheory/Fixed.lean Modified Mathlib/FieldTheory/IsAlgClosed/Spectrum.lean Modified Mathlib/LinearAlgebra/Matrix/LDL.lean Modified Mathlib/MeasureTheory/Function/AEEqOfIntegral.lean Modified Mathlib/MeasureTheory/Group/FundamentalDomain.lean - theorem MeasureTheory.IsFundamentalDomain.pairwise_aEDisjoint_of_ac + theorem MeasureTheory.IsFundamentalDomain.pairwise_aedisjoint_of_ac Modified Mathlib/Order/Category/BoolAlgCat.lean Modified Mathlib/RingTheory/LocalProperties.lean Modified Mathlib/Topology/Algebra/ValuedField.lean Modified Mathlib/Topology/Category/UniformSpace.lean 2023-06-19 05:31:14 3a626dd feat: port Archive.Imo.Imo2013Q5 (#5226) ESTIMATED CHANGES Modified Archive.lean Added Archive/Imo/Imo2013Q5.lean + theorem Imo2013Q5.f_pos_of_pos + theorem Imo2013Q5.fixed_point_of_gt_1 + theorem Imo2013Q5.fixed_point_of_pos_nat_pow + theorem Imo2013Q5.fx_gt_xm1 + theorem Imo2013Q5.le_of_all_pow_lt_succ' + theorem Imo2013Q5.le_of_all_pow_lt_succ + theorem Imo2013Q5.pow_f_le_f_pow + theorem imo2013_q5 2023-06-19 05:31:13 a10b1dd feat: add `AlgEquiv.spectrum_eq` (#5155) ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/Spectrum.lean + theorem AlgEquiv.spectrum_eq 2023-06-19 04:31:12 6a2b5d2 fix: consumeMData in ring_nf (#5246) As [reported on Zulip](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/ring_nf.20regression.3F/near/367477101). ESTIMATED CHANGES Modified Mathlib/Tactic/Ring/RingNF.lean Modified test/ring.lean 2023-06-19 04:31:11 fc19812 feat: port Archive.Imo.Imo2021Q1 (#5221) ESTIMATED CHANGES Modified Archive.lean Added Archive/Imo/Imo2021Q1.lean + theorem Imo2021Q1.exists_finset_3_le_card_with_pairs_summing_to_squares + theorem Imo2021Q1.exists_numbers_in_interval + theorem Imo2021Q1.exists_triplet_summing_to_squares + theorem Imo2021Q1.lower_bound + theorem Imo2021Q1.radical_inequality + theorem Imo2021Q1.upper_bound + theorem imo2021_q1 2023-06-19 04:31:10 834c421 feat: port Archive.Wiedijk100Theorems.AscendingDescendingSequences (#5212) ESTIMATED CHANGES Modified Archive.lean Added Archive/Wiedijk100Theorems/AscendingDescendingSequences.lean + theorem Theorems100.erdos_szekeres 2023-06-19 04:18:50 ab4ba6c feat: port Probability.Process.HittingTime (#5222) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Probability/Process/HittingTime.lean + theorem MeasureTheory.hitting_bot_le_iff + theorem MeasureTheory.hitting_eq_end_iff + theorem MeasureTheory.hitting_eq_hitting_of_exists + theorem MeasureTheory.hitting_eq_sInf + theorem MeasureTheory.hitting_isStoppingTime + theorem MeasureTheory.hitting_le + theorem MeasureTheory.hitting_le_iff_of_exists + theorem MeasureTheory.hitting_le_iff_of_lt + theorem MeasureTheory.hitting_le_of_mem + theorem MeasureTheory.hitting_lt_iff + theorem MeasureTheory.hitting_mem_Icc + theorem MeasureTheory.hitting_mem_set + theorem MeasureTheory.hitting_mem_set_of_hitting_lt + theorem MeasureTheory.hitting_mono + theorem MeasureTheory.hitting_of_le + theorem MeasureTheory.hitting_of_lt + theorem MeasureTheory.isStoppingTime_hitting_isStoppingTime + theorem MeasureTheory.le_hitting + theorem MeasureTheory.le_hitting_of_exists + theorem MeasureTheory.not_mem_of_lt_hitting + theorem MeasureTheory.stoppedValue_hitting_mem 2023-06-19 04:18:49 04d2fe9 feat: port Probability.Martingale.Basic (#5215) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Probability/Martingale/Basic.lean + theorem MeasureTheory.Martingale.add + theorem MeasureTheory.Martingale.condexp_ae_eq + theorem MeasureTheory.Martingale.eq_zero_of_predictable + theorem MeasureTheory.Martingale.neg + theorem MeasureTheory.Martingale.set_integral_eq + theorem MeasureTheory.Martingale.smul + theorem MeasureTheory.Martingale.sub + theorem MeasureTheory.Martingale.submartingale + theorem MeasureTheory.Martingale.supermartingale + def MeasureTheory.Martingale + theorem MeasureTheory.Submartingale.add + theorem MeasureTheory.Submartingale.add_martingale + theorem MeasureTheory.Submartingale.ae_le_condexp + theorem MeasureTheory.Submartingale.condexp_sub_nonneg + theorem MeasureTheory.Submartingale.neg + theorem MeasureTheory.Submartingale.set_integral_le + theorem MeasureTheory.Submartingale.smul_nonneg + theorem MeasureTheory.Submartingale.smul_nonpos + theorem MeasureTheory.Submartingale.sub_martingale + theorem MeasureTheory.Submartingale.sub_supermartingale + theorem MeasureTheory.Submartingale.sum_mul_sub' + theorem MeasureTheory.Submartingale.sum_mul_sub + theorem MeasureTheory.Submartingale.zero_le_of_predictable + def MeasureTheory.Submartingale + theorem MeasureTheory.Supermartingale.add + theorem MeasureTheory.Supermartingale.add_martingale + theorem MeasureTheory.Supermartingale.condexp_ae_le + theorem MeasureTheory.Supermartingale.le_zero_of_predictable + theorem MeasureTheory.Supermartingale.neg + theorem MeasureTheory.Supermartingale.set_integral_le + theorem MeasureTheory.Supermartingale.smul_nonneg + theorem MeasureTheory.Supermartingale.smul_nonpos + theorem MeasureTheory.Supermartingale.sub_martingale + theorem MeasureTheory.Supermartingale.sub_submartingale + def MeasureTheory.Supermartingale + theorem MeasureTheory.martingale_condexp + theorem MeasureTheory.martingale_const + theorem MeasureTheory.martingale_const_fun + theorem MeasureTheory.martingale_iff + theorem MeasureTheory.martingale_nat + theorem MeasureTheory.martingale_of_condexp_sub_eq_zero_nat + theorem MeasureTheory.martingale_of_set_integral_eq_succ + theorem MeasureTheory.martingale_zero + theorem MeasureTheory.submartingale_iff_condexp_sub_nonneg + theorem MeasureTheory.submartingale_nat + theorem MeasureTheory.submartingale_of_condexp_sub_nonneg + theorem MeasureTheory.submartingale_of_condexp_sub_nonneg_nat + theorem MeasureTheory.submartingale_of_set_integral_le + theorem MeasureTheory.submartingale_of_set_integral_le_succ + theorem MeasureTheory.supermartingale_nat + theorem MeasureTheory.supermartingale_of_condexp_sub_nonneg_nat + theorem MeasureTheory.supermartingale_of_set_integral_succ_le 2023-06-19 04:18:48 a3b008b feat: port RingTheory.IsAdjoinRoot (#5190) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/RingTheory/IsAdjoinRoot.lean + theorem AdjoinRoot.isAdjoinRootMonic_map_eq_mk + theorem AdjoinRoot.isAdjoinRootMonic_root_eq_root + theorem AdjoinRoot.isAdjoinRoot_map_eq_mk + theorem AdjoinRoot.isAdjoinRoot_root_eq_root + theorem Algebra.adjoin.powerBasis'_minpoly_gen + def IsAdjoinRoot.aequiv + theorem IsAdjoinRoot.aequiv_aequiv + theorem IsAdjoinRoot.aequiv_map + theorem IsAdjoinRoot.aequiv_ofEquiv + theorem IsAdjoinRoot.aequiv_root + theorem IsAdjoinRoot.aequiv_self + theorem IsAdjoinRoot.aequiv_symm + theorem IsAdjoinRoot.aequiv_trans + theorem IsAdjoinRoot.aeval_eq + theorem IsAdjoinRoot.aeval_root + theorem IsAdjoinRoot.algebraMap_apply + theorem IsAdjoinRoot.apply_eq_lift + theorem IsAdjoinRoot.coe_liftHom + theorem IsAdjoinRoot.eq_lift + theorem IsAdjoinRoot.eq_liftHom + theorem IsAdjoinRoot.eval₂_repr_eq_eval₂_of_map_eq + theorem IsAdjoinRoot.ext + theorem IsAdjoinRoot.ext_map + def IsAdjoinRoot.lift + def IsAdjoinRoot.liftHom + theorem IsAdjoinRoot.liftHom_aequiv + theorem IsAdjoinRoot.liftHom_map + theorem IsAdjoinRoot.liftHom_root + theorem IsAdjoinRoot.lift_aequiv + theorem IsAdjoinRoot.lift_algebraMap + theorem IsAdjoinRoot.lift_algebraMap_apply + theorem IsAdjoinRoot.lift_map + theorem IsAdjoinRoot.lift_root + theorem IsAdjoinRoot.lift_self + theorem IsAdjoinRoot.lift_self_apply + theorem IsAdjoinRoot.map_X + theorem IsAdjoinRoot.map_eq_zero_iff + theorem IsAdjoinRoot.map_repr + theorem IsAdjoinRoot.map_self + theorem IsAdjoinRoot.mem_ker_map + def IsAdjoinRoot.ofEquiv + theorem IsAdjoinRoot.ofEquiv_aequiv + theorem IsAdjoinRoot.ofEquiv_root + def IsAdjoinRoot.repr + theorem IsAdjoinRoot.repr_add_sub_repr_add_repr_mem_span + theorem IsAdjoinRoot.repr_zero_mem_span + def IsAdjoinRoot.root + theorem IsAdjoinRoot.subsingleton + structure IsAdjoinRoot + def IsAdjoinRootMonic.basis + theorem IsAdjoinRootMonic.basis_apply + theorem IsAdjoinRootMonic.basis_one + theorem IsAdjoinRootMonic.basis_repr + def IsAdjoinRootMonic.coeff + theorem IsAdjoinRootMonic.coeff_algebraMap + theorem IsAdjoinRootMonic.coeff_apply + theorem IsAdjoinRootMonic.coeff_apply_coe + theorem IsAdjoinRootMonic.coeff_apply_le + theorem IsAdjoinRootMonic.coeff_apply_lt + theorem IsAdjoinRootMonic.coeff_injective + theorem IsAdjoinRootMonic.coeff_one + theorem IsAdjoinRootMonic.coeff_root + theorem IsAdjoinRootMonic.coeff_root_pow + theorem IsAdjoinRootMonic.deg_ne_zero + theorem IsAdjoinRootMonic.deg_pos + theorem IsAdjoinRootMonic.ext_elem + theorem IsAdjoinRootMonic.ext_elem_iff + theorem IsAdjoinRootMonic.isIntegral_root + def IsAdjoinRootMonic.liftPolyₗ + theorem IsAdjoinRootMonic.map_modByMonic + theorem IsAdjoinRootMonic.map_modByMonicHom + theorem IsAdjoinRootMonic.minpoly_eq + def IsAdjoinRootMonic.modByMonicHom + theorem IsAdjoinRootMonic.modByMonicHom_map + theorem IsAdjoinRootMonic.modByMonicHom_root + theorem IsAdjoinRootMonic.modByMonicHom_root_pow + theorem IsAdjoinRootMonic.modByMonic_repr_map + def IsAdjoinRootMonic.powerBasis + structure IsAdjoinRootMonic 2023-06-19 04:18:47 fc574a2 feat: port Probability.Kernel.IntegralCompProd (#5140) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Probability/Kernel/IntegralCompProd.lean + theorem MeasureTheory.AEStronglyMeasurable.compProd_mk_left + theorem MeasureTheory.AEStronglyMeasurable.integral_kernel_compProd + theorem MeasureTheory.Integrable.compProd_mk_left_ae + theorem MeasureTheory.Integrable.integral_compProd + theorem MeasureTheory.Integrable.integral_norm_compProd + theorem ProbabilityTheory.hasFiniteIntegral_compProd_iff' + theorem ProbabilityTheory.hasFiniteIntegral_compProd_iff + theorem ProbabilityTheory.hasFiniteIntegral_prod_mk_left + theorem ProbabilityTheory.integrable_compProd_iff + theorem ProbabilityTheory.integrable_kernel_prod_mk_left + theorem ProbabilityTheory.integral_compProd + theorem ProbabilityTheory.kernel.continuous_integral_integral + theorem ProbabilityTheory.kernel.integral_fn_integral_add + theorem ProbabilityTheory.kernel.integral_fn_integral_sub + theorem ProbabilityTheory.kernel.integral_integral_add' + theorem ProbabilityTheory.kernel.integral_integral_add + theorem ProbabilityTheory.kernel.integral_integral_sub' + theorem ProbabilityTheory.kernel.integral_integral_sub + theorem ProbabilityTheory.kernel.lintegral_fn_integral_sub + theorem ProbabilityTheory.set_integral_compProd + theorem ProbabilityTheory.set_integral_compProd_univ_left + theorem ProbabilityTheory.set_integral_compProd_univ_right 2023-06-19 04:18:46 c10de4a feat: port Analysis.SchwartzSpace (#4762) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/SchwartzSpace.lean + theorem Function.HasTemperateGrowth.norm_iteratedFDeriv_le_uniform_aux + def Function.HasTemperateGrowth + theorem SchwartzMap.add_apply + def SchwartzMap.bilinLeftCLM + theorem SchwartzMap.bounds_bddBelow + theorem SchwartzMap.bounds_nonempty + theorem SchwartzMap.coeFn_zero + def SchwartzMap.coeHom + theorem SchwartzMap.coeHom_injective + theorem SchwartzMap.coe_coeHom + theorem SchwartzMap.coe_zero + def SchwartzMap.compCLM + theorem SchwartzMap.decay + theorem SchwartzMap.decay_add_le_aux + theorem SchwartzMap.decay_neg_aux + theorem SchwartzMap.decay_smul_aux + def SchwartzMap.delta + theorem SchwartzMap.delta_apply + def SchwartzMap.derivCLM + theorem SchwartzMap.derivCLM_apply + theorem SchwartzMap.ext + def SchwartzMap.fderivCLM + theorem SchwartzMap.fderivCLM_apply + theorem SchwartzMap.isBigO_cocompact_rpow + theorem SchwartzMap.isBigO_cocompact_zpow + theorem SchwartzMap.isBigO_cocompact_zpow_neg_nat + def SchwartzMap.iteratedPDeriv + theorem SchwartzMap.iteratedPDeriv_one + theorem SchwartzMap.iteratedPDeriv_succ_left + theorem SchwartzMap.iteratedPDeriv_succ_right + theorem SchwartzMap.iteratedPDeriv_zero + theorem SchwartzMap.le_seminorm' + theorem SchwartzMap.le_seminorm + theorem SchwartzMap.le_seminormAux + def SchwartzMap.mkCLM + def SchwartzMap.mkLM + theorem SchwartzMap.norm_iteratedFDeriv_le_seminorm + theorem SchwartzMap.norm_le_seminorm + theorem SchwartzMap.norm_pow_mul_le_seminorm + theorem SchwartzMap.one_add_le_sup_seminorm_apply + def SchwartzMap.pderivCLM + theorem SchwartzMap.pderivCLM_apply + theorem SchwartzMap.schwartzSeminormFamily_apply + theorem SchwartzMap.schwartzSeminormFamily_apply_zero + theorem SchwartzMap.seminormAux_add_le + theorem SchwartzMap.seminormAux_le_bound + theorem SchwartzMap.seminormAux_nonneg + theorem SchwartzMap.seminormAux_smul_le + theorem SchwartzMap.seminormAux_zero + theorem SchwartzMap.seminorm_le_bound' + theorem SchwartzMap.seminorm_le_bound + theorem SchwartzMap.smooth + theorem SchwartzMap.smul_apply + theorem SchwartzMap.sub_apply + def SchwartzMap.toBoundedContinuousFunction + def SchwartzMap.toBoundedContinuousFunctionCLM + theorem SchwartzMap.toBoundedContinuousFunctionCLM_apply + def SchwartzMap.toBoundedContinuousFunctionLM + theorem SchwartzMap.toBoundedContinuousFunctionLM_apply + theorem SchwartzMap.toBoundedContinuousFunction_apply + def SchwartzMap.toContinuousMap + theorem SchwartzMap.zero_apply + structure SchwartzMap + def schwartzSeminormFamily + theorem schwartz_withSeminorms 2023-06-19 04:09:45 10d3348 feat: port MeasureTheory.Integral.Periodic (#4815) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/MeasureTheory/Integral/Periodic.lean + theorem AddCircle.volume_closedBall + theorem Function.Periodic.integral_le_sSup_add_zsmul_of_pos + theorem Function.Periodic.intervalIntegral_add_eq + theorem Function.Periodic.intervalIntegral_add_eq_add + theorem Function.Periodic.intervalIntegral_add_eq_of_pos + theorem Function.Periodic.intervalIntegral_add_zsmul_eq + theorem Function.Periodic.sInf_add_zsmul_le_integral_of_pos + theorem Function.Periodic.tendsto_atBot_intervalIntegral_of_pos' + theorem Function.Periodic.tendsto_atBot_intervalIntegral_of_pos + theorem Function.Periodic.tendsto_atTop_intervalIntegral_of_pos' + theorem Function.Periodic.tendsto_atTop_intervalIntegral_of_pos + theorem isAddFundamentalDomain_Ioc' + theorem isAddFundamentalDomain_Ioc 2023-06-19 02:36:27 6bb051e feat: port Archive.Imo.Imo1959Q1 (#5089) ESTIMATED CHANGES Modified Archive.lean Added Archive/Imo/Imo1959Q1.lean + theorem Imo1959Q1.calculation + theorem imo1959_q1 2023-06-18 18:40:38 7440885 chore: add Prod.instDecidableLE (#5083) Add the instance ```lean instance instDecidableLE (α : Type u) (β : Type v) [LE α] [LE β] (x y : α × β) [Decidable (x.1 ≤ y.1)] [Decidable (x.2 ≤ y.2)] : Decidable (x ≤ y) ``` ESTIMATED CHANGES Modified Mathlib/Order/Basic.lean 2023-06-18 17:41:07 d25db3e chore: Cleanup condensed abelian group instance (#5198) I forgot that we already had the fact that sheaves valued in an abelian category form an abelian category, so this PR removes some of the duplication. Note: The existing file that had this is in `Topology/Category/Sheaves`, and not in `CategoryTheory/Sites`. This should be moved at some point. ESTIMATED CHANGES Modified Mathlib.lean Deleted Mathlib/CategoryTheory/Sites/AbelianSheaf.lean Modified Mathlib/Condensed/Abelian.lean Modified Mathlib/Topology/Sheaves/Abelian.lean 2023-06-18 11:14:25 6a12e9c feat: port NumberTheory.LegendreSymbol.Basic (#5197) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/NumberTheory/LegendreSymbol/Basic.lean + theorem ZMod.euler_criterion + theorem ZMod.euler_criterion_units + theorem ZMod.exists_sq_eq_neg_one_iff + theorem ZMod.mod_four_ne_three_of_sq_eq_neg_one + theorem ZMod.mod_four_ne_three_of_sq_eq_neg_sq' + theorem ZMod.mod_four_ne_three_of_sq_eq_neg_sq + theorem ZMod.pow_div_two_eq_neg_one_or_one + theorem legendreSym.at_neg_one + theorem legendreSym.at_one + theorem legendreSym.at_zero + theorem legendreSym.card_sqrts + theorem legendreSym.eq_neg_one_iff' + theorem legendreSym.eq_neg_one_iff + theorem legendreSym.eq_neg_one_iff_not_one + theorem legendreSym.eq_one_iff' + theorem legendreSym.eq_one_iff + theorem legendreSym.eq_one_of_sq_sub_mul_sq_eq_zero' + theorem legendreSym.eq_one_of_sq_sub_mul_sq_eq_zero + theorem legendreSym.eq_one_or_neg_one + theorem legendreSym.eq_pow + theorem legendreSym.eq_zero_iff + theorem legendreSym.eq_zero_mod_of_eq_neg_one + def legendreSym.hom + theorem legendreSym.prime_dvd_of_eq_neg_one + theorem legendreSym.sq_one' + theorem legendreSym.sq_one + def legendreSym 2023-06-18 09:07:58 a57559f feat: port Archive.Imo.Imo2019Q1 (#5211) ESTIMATED CHANGES Modified Archive.lean Added Archive/Imo/Imo2019Q1.lean + theorem imo2019_q1 2023-06-18 08:20:58 d03610e feat: port Probability.Process.Stopping (#5213) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Probability/Process/Stopping.lean + theorem MeasureTheory.Adapted.stoppedProcess + theorem MeasureTheory.Adapted.stoppedProcess_of_discrete + theorem MeasureTheory.Adapted.stronglyMeasurable_stoppedProcess + theorem MeasureTheory.Adapted.stronglyMeasurable_stoppedProcess_of_discrete + theorem MeasureTheory.IsStoppingTime.add + theorem MeasureTheory.IsStoppingTime.add_const + theorem MeasureTheory.IsStoppingTime.add_const_nat + theorem MeasureTheory.IsStoppingTime.le_measurableSpace_of_const_le + theorem MeasureTheory.IsStoppingTime.measurableSet_eq + theorem MeasureTheory.IsStoppingTime.measurableSet_eq_le + theorem MeasureTheory.IsStoppingTime.measurableSet_eq_stopping_time + theorem MeasureTheory.IsStoppingTime.measurableSet_eq_stopping_time_of_countable + theorem MeasureTheory.IsStoppingTime.measurableSet_ge + theorem MeasureTheory.IsStoppingTime.measurableSet_gt + theorem MeasureTheory.IsStoppingTime.measurableSet_inter_eq_iff + theorem MeasureTheory.IsStoppingTime.measurableSet_inter_le + theorem MeasureTheory.IsStoppingTime.measurableSet_inter_le_const_iff + theorem MeasureTheory.IsStoppingTime.measurableSet_inter_le_iff + theorem MeasureTheory.IsStoppingTime.measurableSet_le_stopping_time + theorem MeasureTheory.IsStoppingTime.measurableSet_lt + theorem MeasureTheory.IsStoppingTime.measurableSet_lt_le + theorem MeasureTheory.IsStoppingTime.measurableSet_lt_of_isLUB + theorem MeasureTheory.IsStoppingTime.measurableSet_lt_of_pred + theorem MeasureTheory.IsStoppingTime.measurableSet_min_const_iff + theorem MeasureTheory.IsStoppingTime.measurableSet_min_iff + theorem MeasureTheory.IsStoppingTime.measurableSet_stopping_time_le + theorem MeasureTheory.IsStoppingTime.measurableSpace_const + theorem MeasureTheory.IsStoppingTime.measurableSpace_le' + theorem MeasureTheory.IsStoppingTime.measurableSpace_le + theorem MeasureTheory.IsStoppingTime.measurableSpace_le_of_countable + theorem MeasureTheory.IsStoppingTime.measurableSpace_le_of_le + theorem MeasureTheory.IsStoppingTime.measurableSpace_le_of_le_const + theorem MeasureTheory.IsStoppingTime.measurableSpace_min + theorem MeasureTheory.IsStoppingTime.measurableSpace_min_const + theorem MeasureTheory.IsStoppingTime.measurableSpace_mono + theorem MeasureTheory.IsStoppingTime.piecewise_of_le + def MeasureTheory.IsStoppingTime + theorem MeasureTheory.ProgMeasurable.adapted_stoppedProcess + theorem MeasureTheory.ProgMeasurable.stoppedProcess + theorem MeasureTheory.ProgMeasurable.stronglyMeasurable_stoppedProcess + theorem MeasureTheory.condexp_min_stopping_time_ae_eq_restrict_le + theorem MeasureTheory.condexp_min_stopping_time_ae_eq_restrict_le_const + theorem MeasureTheory.condexp_stopping_time_ae_eq_restrict_eq + theorem MeasureTheory.condexp_stopping_time_ae_eq_restrict_eq_of_countable + theorem MeasureTheory.condexp_stopping_time_ae_eq_restrict_eq_of_countable_range + theorem MeasureTheory.integrable_stoppedProcess + theorem MeasureTheory.integrable_stoppedProcess_of_mem_finset + theorem MeasureTheory.integrable_stoppedValue + theorem MeasureTheory.integrable_stoppedValue_of_mem_finset + theorem MeasureTheory.isStoppingTime_const + theorem MeasureTheory.isStoppingTime_of_measurableSet_eq + theorem MeasureTheory.isStoppingTime_piecewise_const + theorem MeasureTheory.measurable_stoppedValue + theorem MeasureTheory.memℒp_stoppedProcess + theorem MeasureTheory.memℒp_stoppedProcess_of_mem_finset + theorem MeasureTheory.memℒp_stoppedValue + theorem MeasureTheory.memℒp_stoppedValue_of_mem_finset + theorem MeasureTheory.progMeasurable_min_stopping_time + def MeasureTheory.stoppedProcess + theorem MeasureTheory.stoppedProcess_eq'' + theorem MeasureTheory.stoppedProcess_eq' + theorem MeasureTheory.stoppedProcess_eq + theorem MeasureTheory.stoppedProcess_eq_of_ge + theorem MeasureTheory.stoppedProcess_eq_of_le + theorem MeasureTheory.stoppedProcess_eq_of_mem_finset + theorem MeasureTheory.stoppedProcess_eq_stoppedValue + def MeasureTheory.stoppedValue + theorem MeasureTheory.stoppedValue_const + theorem MeasureTheory.stoppedValue_eq' + theorem MeasureTheory.stoppedValue_eq + theorem MeasureTheory.stoppedValue_eq_of_mem_finset + theorem MeasureTheory.stoppedValue_piecewise_const' + theorem MeasureTheory.stoppedValue_piecewise_const + theorem MeasureTheory.stoppedValue_stoppedProcess + theorem MeasureTheory.stoppedValue_sub_eq_sum' + theorem MeasureTheory.stoppedValue_sub_eq_sum + theorem MeasureTheory.stronglyMeasurable_stoppedValue_of_le 2023-06-18 08:20:57 d3590a9 feat: port Archive.Imo.Imo1962Q1 (#5210) ESTIMATED CHANGES Modified Archive.lean Added Archive/Imo/Imo1962Q1.lean + def Imo1962Q1.ProblemPredicate + theorem Imo1962Q1.case_0_digit + theorem Imo1962Q1.case_1_digit + theorem Imo1962Q1.case_2_digit + theorem Imo1962Q1.case_3_digit + theorem Imo1962Q1.case_4_digit + theorem Imo1962Q1.case_5_digit + theorem Imo1962Q1.case_more_digits + theorem Imo1962Q1.helper_5_digit + theorem Imo1962Q1.no_smaller_solutions + theorem Imo1962Q1.satisfied_by_153846 + theorem Imo1962Q1.without_digits + theorem imo1962_q1 2023-06-18 08:20:56 1ab29ae feat: port Archive.Wiedijk100Theorems.SumOfPrimeReciprocalsDiverges (#5208) ESTIMATED CHANGES Modified Archive.lean Added Archive/Wiedijk100Theorems/SumOfPrimeReciprocalsDiverges.lean + def Theorems100.P + theorem Theorems100.Real.tendsto_sum_one_div_prime_atTop + def Theorems100.U + theorem Theorems100.card_le_mul_sum + theorem Theorems100.card_le_two_pow + theorem Theorems100.card_le_two_pow_mul_sqrt + theorem Theorems100.range_sdiff_eq_biUnion + theorem Theorems100.sum_lt_half_of_not_tendsto 2023-06-18 08:20:55 9ccc8b7 feat: add Nat.maxPowDiv (#5158) Adds tail recursive definition of maximal `k` such that `p^k | n` for `p, n : Nat` and `csimp` theorem relating it to `Nat.padicValNat` ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Data/Nat/MaxPowDiv.lean + theorem Nat.maxPowDiv.base_mul_eq_succ + theorem Nat.maxPowDiv.base_pow_mul + theorem Nat.maxPowDiv.go_eq + theorem Nat.maxPowDiv.go_succ + theorem Nat.maxPowDiv.le_of_dvd + theorem Nat.maxPowDiv.pow_dvd + theorem Nat.maxPowDiv.zero + theorem Nat.maxPowDiv.zero_base + def Nat.maxPowDiv Modified Mathlib/NumberTheory/Padics/PadicVal.lean + theorem padicValNat.maxPowDiv_eq_multiplicity + theorem padicValNat.maxPowDiv_eq_multiplicity_get + theorem padicValNat.padicValNat_eq_maxPowDiv Added test/MaxPowDiv.lean 2023-06-18 08:20:54 9512e02 doc: add link to mathlib4 docs in README.md (#5156) My current method for accessing the mathlib4 docs is: 1. google for "mathlib docs" 2. insert a "4" into the url The [mathlib3 readme](https://github.com/leanprover-community/mathlib/blob/893964fc28cefbcffc7cb784ed00a2895b4e65cf/README.md) has a prominent link to the mathlib3 docs. We should have something similar for mathlib4. Hopefully this will help google find the mathlib4 docs, too. ESTIMATED CHANGES Modified README.md 2023-06-18 08:20:53 f2ca44a chore(Topology/{Paracompact + PartitionOfUnity + Algebra/Order/Compact}): restore a more faithful mathported proof, using the "newer" `push_neg` (#5132) These are just three cases where a mathported proof had to be changed, due to unwanted behaviour with `push_neg/contradiction`. Since #5082 is supposed to fix some issues with these tactics, some of these workarounds can be removed. Note: this was not in any way systematic, I simply `grep`ped the line after a `contra`, then `grep`ped for a `not` and then selected 3 likely candidates. There are potentially more situations like these. ESTIMATED CHANGES Modified Mathlib/Topology/Algebra/Order/Compact.lean Modified Mathlib/Topology/Paracompact.lean Modified Mathlib/Topology/PartitionOfUnity.lean 2023-06-18 08:20:52 2fc29d2 feat: port Archive.Examples.PropEncodable (#5098) ESTIMATED CHANGES Modified Archive.lean Added Archive/Examples/PropEncodable.lean + inductive PropEncodable.PropForm 2023-06-18 08:20:51 b1242d9 feat: port Control.Monad.Cont (#4981) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Control/Monad/Cont.lean + def Cont + def ContT.equiv + def ContT.map + def ContT.monadLift + theorem ContT.monadLift_bind + def ContT.run + theorem ContT.run_contT_map_contT + theorem ContT.run_withContT + def ContT.withContT + def ContT + theorem ExceptT.goto_mkLabel + def ExceptT.mkLabel + structure MonadCont.Label + def MonadCont.goto + theorem OptionT.goto_mkLabel + def OptionT.mkLabel + theorem ReaderT.goto_mkLabel + def ReaderT.mkLabel + theorem StateT.goto_mkLabel + def StateT.mkLabel + def WriterT.callCC' + theorem WriterT.goto_mkLabel' + theorem WriterT.goto_mkLabel + def WriterT.mkLabel' + def WriterT.mkLabel 2023-06-18 08:20:50 a88976a feat: port Data.DList from Lean core (#1498) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Data/DList/Basic.lean - def Std.DList.lazy_ofList - theorem Std.DList.ofList_toList - theorem Std.DList.toList_ofList Added Mathlib/Data/DList/Defs.lean + def Std.DList.lazy_ofList + theorem Std.DList.ofList_toList + theorem Std.DList.toList_append + theorem Std.DList.toList_cons + theorem Std.DList.toList_empty + theorem Std.DList.toList_ofList + theorem Std.DList.toList_push + theorem Std.DList.toList_singleton Modified Mathlib/Data/DList/Instances.lean 2023-06-18 07:26:02 ba34904 fix(Mathlib.Tactic.IntervalCases, test.interval_cases): `interval_cases` can't be used for global variables (#5207) ```lean variable (d : ℕ) example (h : d ≤ 0) : d = 0 := by interval_cases d rfl ``` This fails. This PR fixes this bug. ESTIMATED CHANGES Modified Mathlib/Tactic/IntervalCases.lean Modified test/interval_cases.lean 2023-06-18 07:26:01 6f65faf chore: fix a typo (#5202) Introduced while making it multiplicative in leanprover-community/mathlib#13359 ESTIMATED CHANGES Modified Mathlib/Algebra/BigOperators/Intervals.lean + theorem Finset.prod_range_div_prod_range - theorem Finset.prod_range_sub_prod_range 2023-06-18 07:17:06 d6bf871 feat: port Probability.Process.Adapted (#5205) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Probability/Process/Adapted.lean + theorem MeasureTheory.Adapted.progMeasurable_of_continuous + theorem MeasureTheory.Adapted.progMeasurable_of_discrete + theorem MeasureTheory.Adapted.stronglyMeasurable_le + def MeasureTheory.Adapted + theorem MeasureTheory.Filtration.adapted_natural + theorem MeasureTheory.Predictable.adapted + def MeasureTheory.ProgMeasurable + theorem MeasureTheory.adapted_const + theorem MeasureTheory.adapted_zero + theorem MeasureTheory.progMeasurable_const + theorem MeasureTheory.progMeasurable_of_tendsto' + theorem MeasureTheory.progMeasurable_of_tendsto 2023-06-18 00:43:51 2372d46 feat: Lipschitz extensions of maps into l^infty (#5107) A function `f : α → ℓ^∞(ι, ℝ)` which is `K`-Lipschitz on a subset `s` admits a `K`-Lipschitz extension to the whole space. ESTIMATED CHANGES Modified Mathlib/Analysis/NormedSpace/lpSpace.lean + theorem LipschitzOnWith.coordinate + theorem LipschitzWith.coordinate + theorem LipschitzWith.uniformly_bounded Modified Mathlib/Topology/MetricSpace/Kuratowski.lean +/- def KuratowskiEmbedding.embeddingOfSubset + theorem LipschitzOnWith.extend_lp_infty +/- def kuratowskiEmbedding Modified Mathlib/Topology/MetricSpace/Lipschitz.lean Modified docs/references.bib 2023-06-17 19:48:08 07e79d9 feat: port Probability.Process.Filtration (#5195) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Probability/Process/Filtration.lean + theorem MeasureTheory.Filtration.coeFn_inf + theorem MeasureTheory.Filtration.coeFn_sup + def MeasureTheory.Filtration.const + theorem MeasureTheory.Filtration.const_apply + theorem MeasureTheory.Filtration.filtrationOfSet_eq_natural + theorem MeasureTheory.Filtration.memℒp_limitProcess_of_snorm_bdd + def MeasureTheory.Filtration.natural + theorem MeasureTheory.Filtration.sInf_def + theorem MeasureTheory.Filtration.sSup_def + theorem MeasureTheory.Filtration.stronglyMeasurable_limitProcess + theorem MeasureTheory.Filtration.stronglyMeasurable_limit_process' + structure MeasureTheory.Filtration + theorem MeasureTheory.Integrable.uniformIntegrable_condexp_filtration + def MeasureTheory.filtrationOfSet + theorem MeasureTheory.measurableSet_filtrationOfSet + theorem MeasureTheory.measurableSet_filtration_of_set' + theorem MeasureTheory.measurableSet_of_filtration 2023-06-17 19:39:17 9c71e3c feat: port Archive.Imo.Imo2013Q1 (#5186) ESTIMATED CHANGES Modified Archive.lean Added Archive/Imo/Imo2013Q1.lean + theorem Imo2013Q1.arith_lemma + theorem Imo2013Q1.prod_lemma + theorem imo2013_q1 2023-06-17 18:41:37 d87b20b feat: port MeasureTheory.Function.ConditionalExpectation.Real (#5193) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/MeasureTheory/Function/ConditionalExpectation/Real.lean + theorem MeasureTheory.Integrable.uniformIntegrable_condexp + theorem MeasureTheory.ae_bdd_condexp_of_ae_bdd + theorem MeasureTheory.condexp_stronglyMeasurable_mul + theorem MeasureTheory.condexp_stronglyMeasurable_mul_of_bound + theorem MeasureTheory.condexp_stronglyMeasurable_mul_of_bound₀ + theorem MeasureTheory.condexp_stronglyMeasurable_mul₀ + theorem MeasureTheory.condexp_stronglyMeasurable_simpleFunc_mul + theorem MeasureTheory.integral_abs_condexp_le + theorem MeasureTheory.rnDeriv_ae_eq_condexp + theorem MeasureTheory.set_integral_abs_condexp_le + theorem MeasureTheory.snorm_one_condexp_le_snorm 2023-06-17 15:50:04 e93039b feat: prove concavity of `x ↦ x^p` for `p ∈ (0,1)` (#4916) This PR prove the (strict) concavity of `x ↦ x^p` for `p` between 0 and 1. The main results are in a new file to avoid adding dependencies to `Analysis.Convex.SpecificFunctions.Basic` which is carefully designed to be low in the import hierarchy. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Analysis/Convex/Function.lean + theorem OrderIso.concaveOn_symm + theorem OrderIso.convexOn_symm + theorem OrderIso.strictConcaveOn_symm + theorem OrderIso.strictConvexOn_symm Added Mathlib/Analysis/Convex/SpecificFunctions/Pow.lean + theorem NNReal.concaveOn_rpow + theorem NNReal.strictConcaveOn_rpow + theorem NNReal.strictConcaveOn_sqrt + theorem Real.concaveOn_rpow + theorem Real.strictConcaveOn_rpow + theorem Real.strictConcaveOn_sqrt Modified Mathlib/Analysis/SpecialFunctions/Pow/NNReal.lean + theorem NNReal.monotone_rpow_of_nonneg + def NNReal.orderIsoRpow + theorem NNReal.orderIsoRpow_symm_eq + theorem NNReal.strictMono_rpow_of_pos 2023-06-17 14:35:31 d62cc4a feat: port Probability.ConditionalExpectation (#5192) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Probability/ConditionalExpectation.lean + theorem MeasureTheory.condexp_indep_eq 2023-06-17 14:00:59 9ea47ba feat: port Archive.Wiedijk100Theorems.PerfectNumbers (#5184) ESTIMATED CHANGES Modified Archive.lean Added Archive/Wiedijk100Theorems/PerfectNumbers.lean + theorem Theorems100.Nat.eq_two_pow_mul_odd + theorem Theorems100.Nat.eq_two_pow_mul_prime_mersenne_of_even_perfect + theorem Theorems100.Nat.even_and_perfect_iff + theorem Theorems100.Nat.even_two_pow_mul_mersenne_of_prime + theorem Theorems100.Nat.ne_zero_of_prime_mersenne + theorem Theorems100.Nat.perfect_two_pow_mul_mersenne_of_prime + theorem Theorems100.Nat.sigma_two_pow_eq_mersenne_succ + theorem Theorems100.odd_mersenne_succ 2023-06-17 13:45:24 9191c4a feat: port MeasureTheory.Function.ConditionalExpectation.Indicator (#5188) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/MeasureTheory/Function/ConditionalExpectation/Indicator.lean + theorem MeasureTheory.condexp_ae_eq_restrict_of_measurableSpace_eq_on + theorem MeasureTheory.condexp_ae_eq_restrict_zero + theorem MeasureTheory.condexp_indicator + theorem MeasureTheory.condexp_indicator_aux + theorem MeasureTheory.condexp_restrict_ae_eq_restrict 2023-06-17 13:36:11 9b59869 feat: port Probability.Notation (#5187) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Probability/Notation.lean 2023-06-17 13:25:10 f3f3f1c feat: port Archive.Wiedijk100Theorems.Partition (#5173) ESTIMATED CHANGES Modified Archive.lean Added Archive/Wiedijk100Theorems/Partition.lean + theorem Theorems100.coeff_indicator + theorem Theorems100.coeff_indicator_neg + theorem Theorems100.coeff_indicator_pos + theorem Theorems100.coeff_prod_range + theorem Theorems100.constantCoeff_indicator + def Theorems100.cut + theorem Theorems100.cut_empty_succ + theorem Theorems100.cut_equiv_antidiag + theorem Theorems100.cut_insert + theorem Theorems100.cut_univ_fin_eq_antidiagonalTuple + theorem Theorems100.cut_zero + theorem Theorems100.distinctGF_prop + def Theorems100.indicatorSeries + theorem Theorems100.mem_cut + def Theorems100.mkOdd + theorem Theorems100.num_series' + theorem Theorems100.oddGF_prop + def Theorems100.partialDistinctGF + theorem Theorems100.partialDistinctGF_prop + theorem Theorems100.partialGF_prop + def Theorems100.partialOddGF + theorem Theorems100.partialOddGF_prop + theorem Theorems100.partition_theorem + theorem Theorems100.same_coeffs + theorem Theorems100.same_gf + theorem Theorems100.two_series 2023-06-17 12:30:44 529b276 feat: port MeasureTheory.Function.ConditionalExpectation.Basic (#4898) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/MeasureTheory/Function/ConditionalExpectation/Basic.lean + theorem MeasureTheory.ae_eq_condexp_of_forall_set_integral_eq + theorem MeasureTheory.condexp_add + theorem MeasureTheory.condexp_ae_eq_condexpL1 + theorem MeasureTheory.condexp_ae_eq_condexpL1Clm + theorem MeasureTheory.condexp_bot' + theorem MeasureTheory.condexp_bot + theorem MeasureTheory.condexp_bot_ae_eq + theorem MeasureTheory.condexp_condexp_of_le + theorem MeasureTheory.condexp_congr_ae + theorem MeasureTheory.condexp_const + theorem MeasureTheory.condexp_finset_sum + theorem MeasureTheory.condexp_mono + theorem MeasureTheory.condexp_neg + theorem MeasureTheory.condexp_nonneg + theorem MeasureTheory.condexp_nonpos + theorem MeasureTheory.condexp_of_aEStronglyMeasurable' + theorem MeasureTheory.condexp_of_not_le + theorem MeasureTheory.condexp_of_not_sigmaFinite + theorem MeasureTheory.condexp_of_sigmaFinite + theorem MeasureTheory.condexp_of_stronglyMeasurable + theorem MeasureTheory.condexp_smul + theorem MeasureTheory.condexp_sub + theorem MeasureTheory.condexp_undef + theorem MeasureTheory.condexp_zero + theorem MeasureTheory.integrable_condexp + theorem MeasureTheory.integral_condexp + theorem MeasureTheory.set_integral_condexp + theorem MeasureTheory.stronglyMeasurable_condexp + theorem MeasureTheory.tendsto_condexpL1_of_dominated_convergence + theorem MeasureTheory.tendsto_condexp_unique 2023-06-17 12:11:36 43b0433 feat: port Archive.Imo.Imo2008Q4 (#5183) ESTIMATED CHANGES Modified Archive.lean Added Archive/Imo/Imo2008Q4.lean + theorem Imo2008Q4.abs_eq_one_of_pow_eq_one + theorem imo2008_q4 2023-06-17 11:54:56 7359390 feat: port Archive.Imo.Imo1981Q3 (#5185) ESTIMATED CHANGES Modified Archive.lean Added Archive/Imo/Imo1981Q3.lean + theorem Imo1981Q3.NatPredicate.imp_fib + theorem Imo1981Q3.NatPredicate.m_pos + theorem Imo1981Q3.NatPredicate.n_le_N + theorem Imo1981Q3.NatPredicate.n_pos + def Imo1981Q3.NatPredicate + theorem Imo1981Q3.ProblemPredicate.eq_imp_1 + theorem Imo1981Q3.ProblemPredicate.m_le_n + theorem Imo1981Q3.ProblemPredicate.reduction + structure Imo1981Q3.ProblemPredicate + theorem Imo1981Q3.k_bound + theorem Imo1981Q3.m_n_bounds + theorem Imo1981Q3.solution_bound + theorem Imo1981Q3.solution_greatest + def Imo1981Q3.specifiedSet + theorem imo1981_q3 2023-06-17 11:54:55 a44696c feat: port Archive.Imo.Imo2001Q2 (#5182) ESTIMATED CHANGES Modified Archive.lean Added Archive/Imo/Imo2001Q2.lean + theorem Imo2001Q2.bound + theorem Imo2001Q2.denom_pos + theorem Imo2001Q2.imo2001_q2' + theorem imo2001_q2 2023-06-17 11:54:54 d159e97 feat: port Archive.Wiedijk100Theorems.Konigsberg (#5181) ESTIMATED CHANGES Modified Archive.lean Added Archive/Wiedijk100Theorems/Konigsberg.lean + inductive Konigsberg.Verts + def Konigsberg.adj + def Konigsberg.degree + theorem Konigsberg.degree_eq_degree + def Konigsberg.edges + def Konigsberg.graph + theorem Konigsberg.not_isEulerian 2023-06-17 11:54:53 92afb19 feat: port Archive.Imo.Imo1975Q1 (#5179) ESTIMATED CHANGES Modified Archive.lean Added Archive/Imo/Imo1975Q1.lean + theorem imo1975_q1 2023-06-17 11:54:52 354c44b feat: port Archive.Wiedijk100Theorems.HeronsFormula (#5177) ESTIMATED CHANGES Modified Archive.lean Added Archive/Wiedijk100Theorems/HeronsFormula.lean + theorem Theorems100.heron 2023-06-17 11:16:44 5d8d41f feat: port Archive.Imo.Imo2006Q5 (#5178) ESTIMATED CHANGES Modified Archive.lean Added Archive/Imo/Imo2006Q5.lean + theorem Imo2006Q5.Int.add_eq_add_of_natAbs_eq_of_natAbs_eq + theorem Imo2006Q5.Int.natAbs_eq_of_chain_dvd + theorem Imo2006Q5.Polynomial.isPeriodicPt_eval_two + theorem Imo2006Q5.Polynomial.iterate_comp_sub_X_ne + theorem Imo2006Q5.imo2006_q5' + theorem imo2006_q5 Modified Mathlib/Data/Polynomial/Eval.lean + theorem Polynomial.iterate_comp_eval 2023-06-17 11:16:43 92e1713 feat: port NumberTheory.LegendreSymbol.QuadraticChar.Basic (#5175) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/NumberTheory/LegendreSymbol/QuadraticChar/Basic.lean + theorem FiniteField.isSquare_neg_one_iff + def quadraticChar + def quadraticCharFun + theorem quadraticCharFun_eq_one_of_char_two + theorem quadraticCharFun_eq_pow_of_char_ne_two + theorem quadraticCharFun_eq_zero_iff + theorem quadraticCharFun_mul + theorem quadraticCharFun_one + theorem quadraticCharFun_zero + theorem quadraticChar_card_sqrts + theorem quadraticChar_dichotomy + theorem quadraticChar_eq_neg_one_iff_not_one + theorem quadraticChar_eq_one_of_char_two + theorem quadraticChar_eq_pow_of_char_ne_two' + theorem quadraticChar_eq_pow_of_char_ne_two + theorem quadraticChar_eq_zero_iff + theorem quadraticChar_exists_neg_one + theorem quadraticChar_isNontrivial + theorem quadraticChar_isQuadratic + theorem quadraticChar_neg_one + theorem quadraticChar_neg_one_iff_not_isSquare + theorem quadraticChar_one_iff_isSquare + theorem quadraticChar_sq_one' + theorem quadraticChar_sq_one + theorem quadraticChar_sum_zero + theorem quadraticChar_zero 2023-06-17 11:16:42 dd44571 feat: port MeasureTheory.Function.ConditionalExpectation.CondexpL1 (#5174) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/MeasureTheory/Function/ConditionalExpectation/CondexpL1.lean + theorem MeasureTheory.aestronglyMeasurable'_condexpInd + theorem MeasureTheory.aestronglyMeasurable'_condexpL1 + theorem MeasureTheory.aestronglyMeasurable'_condexpL1Clm + def MeasureTheory.condexpInd + def MeasureTheory.condexpIndL1 + def MeasureTheory.condexpIndL1Fin + theorem MeasureTheory.condexpIndL1Fin_add + theorem MeasureTheory.condexpIndL1Fin_ae_eq_condexpIndSMul + theorem MeasureTheory.condexpIndL1Fin_disjoint_union + theorem MeasureTheory.condexpIndL1Fin_smul' + theorem MeasureTheory.condexpIndL1Fin_smul + theorem MeasureTheory.condexpIndL1_add + theorem MeasureTheory.condexpIndL1_disjoint_union + theorem MeasureTheory.condexpIndL1_of_measurableSet_of_measure_ne_top + theorem MeasureTheory.condexpIndL1_of_measure_eq_top + theorem MeasureTheory.condexpIndL1_of_not_measurableSet + theorem MeasureTheory.condexpIndL1_smul' + theorem MeasureTheory.condexpIndL1_smul + theorem MeasureTheory.condexpInd_ae_eq_condexpIndSMul + theorem MeasureTheory.condexpInd_disjoint_union + theorem MeasureTheory.condexpInd_disjoint_union_apply + theorem MeasureTheory.condexpInd_empty + theorem MeasureTheory.condexpInd_nonneg + theorem MeasureTheory.condexpInd_of_measurable + theorem MeasureTheory.condexpInd_smul' + def MeasureTheory.condexpL1 + def MeasureTheory.condexpL1Clm + theorem MeasureTheory.condexpL1Clm_indicatorConst + theorem MeasureTheory.condexpL1Clm_indicatorConstLp + theorem MeasureTheory.condexpL1Clm_lpMeas + theorem MeasureTheory.condexpL1Clm_of_aestronglyMeasurable' + theorem MeasureTheory.condexpL1Clm_smul + theorem MeasureTheory.condexpL1_add + theorem MeasureTheory.condexpL1_congr_ae + theorem MeasureTheory.condexpL1_eq + theorem MeasureTheory.condexpL1_measure_zero + theorem MeasureTheory.condexpL1_mono + theorem MeasureTheory.condexpL1_neg + theorem MeasureTheory.condexpL1_of_aestronglyMeasurable' + theorem MeasureTheory.condexpL1_smul + theorem MeasureTheory.condexpL1_sub + theorem MeasureTheory.condexpL1_undef + theorem MeasureTheory.condexpL1_zero + theorem MeasureTheory.continuous_condexpIndL1 + theorem MeasureTheory.dominatedFinMeasAdditive_condexpInd + theorem MeasureTheory.integrable_condexpL1 + theorem MeasureTheory.norm_condexpIndL1Fin_le + theorem MeasureTheory.norm_condexpIndL1_le + theorem MeasureTheory.norm_condexpInd_apply_le + theorem MeasureTheory.norm_condexpInd_le + theorem MeasureTheory.set_integral_condexpInd + theorem MeasureTheory.set_integral_condexpL1 + theorem MeasureTheory.set_integral_condexpL1Clm + theorem MeasureTheory.set_integral_condexpL1Clm_of_measure_ne_top 2023-06-17 11:06:27 48f6a19 feat: port Archive.Wiedijk100Theorems.InverseTriangleSum (#5172) ESTIMATED CHANGES Modified Archive.lean Added Archive/Wiedijk100Theorems/InverseTriangleSum.lean + theorem Theorem100.inverse_triangle_sum 2023-06-17 08:04:53 6ffd1a5 chore: cleanup of some ext porting notes (#5176) ESTIMATED CHANGES Modified Mathlib/Algebra/ContinuedFractions/Basic.lean Modified Mathlib/Algebra/DirectSum/Basic.lean Modified Mathlib/Algebra/DirectSum/Ring.lean Modified Mathlib/Algebra/Free.lean Modified Mathlib/Algebra/FreeMonoid/Basic.lean +/- theorem FreeMonoid.comp_lift Modified Mathlib/Data/Bitvec/Lemmas.lean Modified Mathlib/Data/Dfinsupp/Multiset.lean Modified Mathlib/Data/Finsupp/Basic.lean 2023-06-17 08:04:52 afa4bb0 feat: port FieldTheory.KrullTopology (#5170) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/FieldTheory/KrullTopology.lean + theorem IntermediateField.finiteDimensional_bot + theorem IntermediateField.fixingSubgroup.antimono + theorem IntermediateField.fixingSubgroup.bot + theorem IntermediateField.fixingSubgroup_isClosed + theorem IntermediateField.fixingSubgroup_isOpen + theorem IntermediateField.map_id + theorem IntermediateField.map_mono + theorem IntermediateField.mem_fixingSubgroup_iff + theorem finiteDimensional_sup + def finiteExts + def fixedByFinite + def galBasis + def galGroupBasis + theorem krullTopology_t2 + theorem krullTopology_totallyDisconnected + theorem mem_galBasis_iff + theorem top_fixedByFinite 2023-06-17 08:04:51 8b329ae chore: resolve a porting note in Profinite/CofilteredLimit (#5168) To create new goals from `have` you need to use `?_`, rather than `_`. ESTIMATED CHANGES Modified Mathlib/Topology/Category/Profinite/CofilteredLimit.lean 2023-06-17 08:04:50 5307644 chore: add links to issue for rw regressions (#5167) ESTIMATED CHANGES Modified Mathlib/Algebra/Lie/Submodule.lean Modified Mathlib/AlgebraicGeometry/StructureSheaf.lean Modified Mathlib/Analysis/Calculus/ContDiffDef.lean Modified Mathlib/CategoryTheory/Adjunction/Opposites.lean Modified Mathlib/CategoryTheory/Closed/Functor.lean Modified Mathlib/Computability/TuringMachine.lean Modified Mathlib/Data/PNat/Interval.lean Modified Mathlib/Data/Real/ENNReal.lean Modified Mathlib/LinearAlgebra/LinearIndependent.lean Modified Mathlib/LinearAlgebra/LinearPMap.lean Modified Mathlib/MeasureTheory/Decomposition/Jordan.lean Modified Mathlib/MeasureTheory/Measure/Lebesgue/EqHaar.lean Modified Mathlib/Order/BooleanAlgebra.lean Modified Mathlib/Probability/Density.lean Modified Mathlib/Topology/Category/Profinite/Basic.lean Modified Mathlib/Topology/Gluing.lean 2023-06-17 08:04:49 cf7c085 chore: add links to porting notes (#5111) ESTIMATED CHANGES Modified Mathlib/AlgebraicGeometry/Spec.lean Modified Mathlib/Topology/Sheaves/Operations.lean 2023-06-17 07:20:41 52b3664 feat: port Archive.Imo.Imo1964Q1 (#5152) ESTIMATED CHANGES Modified Archive.lean Added Archive/Imo/Imo1964Q1.lean + def Imo1964Q1.ProblemPredicate + theorem Imo1964Q1.aux + theorem Imo1964Q1.imo1964_q1a + theorem Imo1964Q1.two_pow_three_mul_add_one_mod_seven + theorem Imo1964Q1.two_pow_three_mul_add_two_mod_seven + theorem Imo1964Q1.two_pow_three_mul_mod_seven + theorem imo1964_q1b 2023-06-17 07:20:40 fb57439 feat: add lemmas about `ENNReal`s (#5084) Also correct some `simp`s. Partially forward-port leanprover-community/mathlib#18731 ESTIMATED CHANGES Modified Mathlib/Analysis/MeanInequalitiesPow.lean Modified Mathlib/Data/Real/ENNReal.lean - theorem ENNReal.div_eq_inv_mul + theorem ENNReal.toNNReal_ne_one + theorem ENNReal.toNNReal_ne_zero + theorem ENNReal.toReal_ne_one + theorem ENNReal.toReal_ne_zero Modified Mathlib/MeasureTheory/Function/L1Space.lean 2023-06-17 07:20:39 3d6afec feat: add `edist_congr` (#4874) ESTIMATED CHANGES Modified Mathlib/Topology/MetricSpace/EMetricSpace.lean + theorem edist_congr 2023-06-17 07:00:38 caba0f0 chore: have CI run on tests in subdirectories (#5065) Also fix bug in elementwise that wasn't caught while tests weren't running. ESTIMATED CHANGES Modified GNUmakefile Modified Mathlib/Tactic/CategoryTheory/Elementwise.lean +/- theorem Tactic.Elementwise.forget_hom_Type Modified test/CategoryTheory/Elementwise.lean 2023-06-17 06:08:40 8272d53 feat: port Archive.Imo.Imo1960Q1 (#5165) ESTIMATED CHANGES Modified Archive.lean Added Archive/Imo/Imo1960Q1.lean + def Imo1960Q1.ProblemPredicate + def Imo1960Q1.SearchUpTo + def Imo1960Q1.SolutionPredicate + theorem Imo1960Q1.ge_100 + theorem Imo1960Q1.left_direction + theorem Imo1960Q1.lt_1000 + theorem Imo1960Q1.not_zero + theorem Imo1960Q1.right_direction + theorem Imo1960Q1.searchUpTo_end + theorem Imo1960Q1.searchUpTo_start + theorem Imo1960Q1.searchUpTo_step + def Imo1960Q1.sumOfSquares + theorem imo1960_q1 2023-06-17 06:08:39 41f6fc5 feat: port Counterexamples.ZeroDivisorsInAddMonoidAlgebras (#5163) ESTIMATED CHANGES Modified Counterexamples.lean Added Counterexamples/ZeroDivisorsInAddMonoidAlgebras.lean + theorem Counterexample.F.f010 + theorem Counterexample.F.f011 + theorem Counterexample.F.f110 + theorem Counterexample.F.f111 + theorem Counterexample.F.f1 + def Counterexample.F.val + theorem Counterexample.F.z01 + inductive Counterexample.F + def Counterexample.List.dropUntil + theorem Counterexample.single_zero_one + theorem Counterexample.zero_divisors_of_periodic + theorem Counterexample.zero_divisors_of_torsion 2023-06-17 06:00:40 a71113c feat: port Archive.Wiedijk100Theorems.AreaOfACircle (#5114) ESTIMATED CHANGES Modified Archive.lean Added Archive/Wiedijk100Theorems/AreaOfACircle.lean + theorem Theorems100.area_disc + def Theorems100.disc + theorem Theorems100.disc_eq_regionBetween + theorem Theorems100.measurableSet_disc 2023-06-17 05:37:15 5ad453c feat: port Archive.Imo.Imo1969Q1 (#5153) ESTIMATED CHANGES Modified Archive.lean Added Archive/Imo/Imo1969Q1.lean + def Imo1969Q1.aChoice + theorem Imo1969Q1.aChoice_good + theorem Imo1969Q1.aChoice_strictMono + theorem Imo1969Q1.factorization + def Imo1969Q1.goodNats + theorem Imo1969Q1.int_large + theorem Imo1969Q1.left_factor_large + theorem Imo1969Q1.not_prime_of_int_mul' + theorem Imo1969Q1.polynomial_not_prime + theorem Imo1969Q1.right_factor_large + theorem imo1969_q1 2023-06-17 05:29:06 e3349d9 fix: actually include the archive in the port status (#5108) ESTIMATED CHANGES Modified scripts/make_port_status.py 2023-06-17 05:17:27 c143082 feat: port Counterexamples.CanonicallyOrderedCommSemiringTwoMul (#5162) ESTIMATED CHANGES Modified Counterexamples.lean Added Counterexamples/CanonicallyOrderedCommSemiringTwoMul.lean + def Counterexample.ExL.L + theorem Counterexample.ExL.add_L + theorem Counterexample.ExL.bot_le + theorem Counterexample.ExL.eq_zero_or_eq_zero_of_mul_eq_zero + theorem Counterexample.ExL.exists_add_of_le + def Counterexample.ExL.lSubsemiring + theorem Counterexample.ExL.le_self_add + theorem Counterexample.ExL.mul_L + def Counterexample.FromBhavik.K + theorem Counterexample.Nxzmod2.add_le_add_left + theorem Counterexample.Nxzmod2.add_left_cancel + theorem Counterexample.Nxzmod2.le_of_add_le_add_left + theorem Counterexample.Nxzmod2.lt_def + theorem Counterexample.Nxzmod2.mul_lt_mul_of_pos_left + theorem Counterexample.Nxzmod2.mul_lt_mul_of_pos_right + theorem Counterexample.add_self_zmod_2 + theorem Counterexample.mem_zmod_2 2023-06-17 05:17:26 d063ef5 feat: port CategoryTheory.Enriched.Basic (#5154) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Enriched/Basic.lean + def CategoryTheory.EnrichedFunctor.comp + def CategoryTheory.EnrichedFunctor.forget + def CategoryTheory.EnrichedFunctor.id + structure CategoryTheory.EnrichedFunctor + def CategoryTheory.ForgetEnrichment.homOf + theorem CategoryTheory.ForgetEnrichment.homOf_homTo + def CategoryTheory.ForgetEnrichment.homTo + theorem CategoryTheory.ForgetEnrichment.homTo_homOf + def CategoryTheory.ForgetEnrichment.of + theorem CategoryTheory.ForgetEnrichment.of_to + def CategoryTheory.ForgetEnrichment.to + theorem CategoryTheory.ForgetEnrichment.to_of + def CategoryTheory.ForgetEnrichment + structure CategoryTheory.GradedNatTrans + def CategoryTheory.TransportEnrichment + def CategoryTheory.categoryOfEnrichedCategoryType + def CategoryTheory.eComp + def CategoryTheory.eId + theorem CategoryTheory.e_assoc + theorem CategoryTheory.e_comp_id + theorem CategoryTheory.e_id_comp + def CategoryTheory.enrichedCategoryTypeEquivCategory + def CategoryTheory.enrichedCategoryTypeOfCategory + def CategoryTheory.enrichedFunctorTypeEquivFunctor + def CategoryTheory.enrichedNatTransYoneda + def CategoryTheory.enrichedNatTransYonedaTypeIsoYonedaNatTrans + theorem CategoryTheory.forgetEnrichment_comp + theorem CategoryTheory.forgetEnrichment_id' + theorem CategoryTheory.forgetEnrichment_id 2023-06-17 05:05:43 59f8374 feat: port CategoryTheory.Monoidal.Internal.Limits (#5150) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Monoidal/Internal/Limits.lean + def Mon_.forgetMapConeLimitConeIso + def Mon_.limit + def Mon_.limitCone + def Mon_.limitConeIsLimit 2023-06-17 05:05:42 ba8fa67 feat: port Archive.Imo.Imo2006Q3 (#5123) ESTIMATED CHANGES Modified Archive.lean Added Archive/Imo/Imo2006Q3.lean + theorem Imo2006Q3.four_pow_four_pos + theorem Imo2006Q3.lhs_identity + theorem Imo2006Q3.lhs_ineq + theorem Imo2006Q3.mid_ineq + theorem Imo2006Q3.proof₁ + theorem Imo2006Q3.proof₂ + theorem Imo2006Q3.rhs_ineq + theorem Imo2006Q3.subst_proof₁ + theorem Imo2006Q3.subst_wlog + theorem Imo2006Q3.zero_lt_32 + theorem imo2006_q3 2023-06-17 05:05:41 cf68008 feat: port Algebra.ContinuedFractions.Computation.TerminatesIffRat (#5106) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/ContinuedFractions/Computation/TerminatesIffRat.lean + theorem GeneralizedContinuedFraction.IntFractPair.coe_of_rat_eq + theorem GeneralizedContinuedFraction.IntFractPair.coe_stream'_rat_eq + theorem GeneralizedContinuedFraction.IntFractPair.coe_stream_nth_rat_eq + theorem GeneralizedContinuedFraction.IntFractPair.exists_nth_stream_eq_none_of_rat + theorem GeneralizedContinuedFraction.IntFractPair.of_inv_fr_num_lt_num_of_pos + theorem GeneralizedContinuedFraction.IntFractPair.stream_nth_fr_num_le_fr_num_sub_n_rat + theorem GeneralizedContinuedFraction.IntFractPair.stream_succ_nth_fr_num_lt_nth_fr_num_rat + theorem GeneralizedContinuedFraction.coe_of_h_rat_eq + theorem GeneralizedContinuedFraction.coe_of_rat_eq + theorem GeneralizedContinuedFraction.coe_of_s_get?_rat_eq + theorem GeneralizedContinuedFraction.coe_of_s_rat_eq + theorem GeneralizedContinuedFraction.exists_gcf_pair_rat_eq_nth_conts + theorem GeneralizedContinuedFraction.exists_rat_eq_nth_convergent + theorem GeneralizedContinuedFraction.exists_rat_eq_nth_denominator + theorem GeneralizedContinuedFraction.exists_rat_eq_nth_numerator + theorem GeneralizedContinuedFraction.exists_rat_eq_of_terminates + theorem GeneralizedContinuedFraction.of_terminates_iff_of_rat_terminates + theorem GeneralizedContinuedFraction.terminates_iff_rat + theorem GeneralizedContinuedFraction.terminates_of_rat 2023-06-17 04:56:32 17ae998 feat: port MeasureTheory.Function.ConditionalExpectation.CondexpL2 (#5048) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/MeasureTheory/Function/ConditionalExpectation/CondexpL2.lean + theorem MeasureTheory.aeStronglyMeasurable'_condexpIndSMul + theorem MeasureTheory.aeStronglyMeasurable'_condexpL2 + theorem MeasureTheory.condexpIndSMul_add + theorem MeasureTheory.condexpIndSMul_ae_eq_smul + theorem MeasureTheory.condexpIndSMul_empty + theorem MeasureTheory.condexpIndSMul_nonneg + theorem MeasureTheory.condexpIndSMul_smul' + theorem MeasureTheory.condexpIndSMul_smul + theorem MeasureTheory.condexpL2_ae_eq_zero_of_ae_eq_zero + theorem MeasureTheory.condexpL2_comp_continuousLinearMap + theorem MeasureTheory.condexpL2_const_inner + theorem MeasureTheory.condexpL2_indicator_ae_eq_smul + theorem MeasureTheory.condexpL2_indicator_eq_toSpanSingleton_comp + theorem MeasureTheory.condexpL2_indicator_nonneg + theorem MeasureTheory.condexpL2_indicator_of_measurable + theorem MeasureTheory.inner_condexpL2_eq_inner_fun + theorem MeasureTheory.inner_condexpL2_left_eq_right + theorem MeasureTheory.integrableOn_condexpL2_of_measure_ne_top + theorem MeasureTheory.integrable_condexpIndSMul + theorem MeasureTheory.integrable_condexpL2_indicator + theorem MeasureTheory.integrable_condexpL2_of_isFiniteMeasure + theorem MeasureTheory.integral_condexpL2_eq + theorem MeasureTheory.integral_condexpL2_eq_of_fin_meas_real + theorem MeasureTheory.lintegral_nnnorm_condexpIndSMul_le + theorem MeasureTheory.lintegral_nnnorm_condexpL2_indicator_le + theorem MeasureTheory.lintegral_nnnorm_condexpL2_indicator_le_real + theorem MeasureTheory.lintegral_nnnorm_condexpL2_le + theorem MeasureTheory.norm_condexpL2_coe_le + theorem MeasureTheory.norm_condexpL2_le + theorem MeasureTheory.norm_condexpL2_le_one + theorem MeasureTheory.set_integral_condexpIndSMul + theorem MeasureTheory.set_integral_condexpL2_indicator + theorem MeasureTheory.set_lintegral_nnnorm_condexpIndSMul_le + theorem MeasureTheory.set_lintegral_nnnorm_condexpL2_indicator_le + theorem MeasureTheory.snorm_condexpL2_le 2023-06-16 18:02:23 3de751e feat: port NumberTheory.PrimesCongruentOne (#5146) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/NumberTheory/PrimesCongruentOne.lean + theorem Nat.exists_prime_gt_modEq_one + theorem Nat.frequently_atTop_modEq_one + theorem Nat.infinite_setOf_prime_modEq_one 2023-06-16 17:54:34 2094440 feat: port Counterexamples.MapFloor (#5147) ESTIMATED CHANGES Modified Counterexamples.lean Added Counterexamples/MapFloor.lean + def Counterexample.IntWithEpsilon.forgetEpsilons + theorem Counterexample.IntWithEpsilon.forgetEpsilons_apply + theorem Counterexample.IntWithEpsilon.forgetEpsilons_floor_lt + theorem Counterexample.IntWithEpsilon.lt_forgetEpsilons_ceil + theorem Counterexample.IntWithEpsilon.pos_iff + def Counterexample.IntWithEpsilon 2023-06-16 17:43:20 006e3f6 feat: port RingTheory.Polynomial.Cyclotomic.Expand (#5145) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/RingTheory/Polynomial/Cyclotomic/Expand.lean + theorem Polynomial.cyclotomic_expand_eq_cyclotomic + theorem Polynomial.cyclotomic_expand_eq_cyclotomic_mul + theorem Polynomial.cyclotomic_irreducible_of_irreducible_pow + theorem Polynomial.cyclotomic_irreducible_pow_of_irreducible_pow + theorem Polynomial.cyclotomic_mul_prime_dvd_eq_pow + theorem Polynomial.cyclotomic_mul_prime_eq_pow_of_not_dvd + theorem Polynomial.cyclotomic_mul_prime_pow_eq + theorem Polynomial.isRoot_cyclotomic_prime_pow_mul_iff_of_charP 2023-06-16 17:31:32 09eab4d feat: port Archive.Imo.Imo2019Q4 (#5149) ESTIMATED CHANGES Modified Archive.lean Added Archive/Imo/Imo2019Q4.lean + theorem Imo2019Q4.upper_bound + theorem imo2019_q4 2023-06-16 17:31:31 b21a13b feat: port Topology.ContinuousFunction.ZeroAtInfty (#4255) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Topology/ContinuousFunction/ZeroAtInfty.lean + def ZeroAtInftyContinuousMap.ContinuousMap.liftZeroAtInfty + theorem ZeroAtInftyContinuousMap.add_apply + theorem ZeroAtInftyContinuousMap.bounded_image + theorem ZeroAtInftyContinuousMap.bounded_range + theorem ZeroAtInftyContinuousMap.closed_range_toBcf + theorem ZeroAtInftyContinuousMap.coe_add + theorem ZeroAtInftyContinuousMap.coe_comp_to_continuous_fun + theorem ZeroAtInftyContinuousMap.coe_copy + theorem ZeroAtInftyContinuousMap.coe_mul + theorem ZeroAtInftyContinuousMap.coe_neg + theorem ZeroAtInftyContinuousMap.coe_nsmulRec + theorem ZeroAtInftyContinuousMap.coe_smul + theorem ZeroAtInftyContinuousMap.coe_star + theorem ZeroAtInftyContinuousMap.coe_sub + theorem ZeroAtInftyContinuousMap.coe_toContinuousMap + theorem ZeroAtInftyContinuousMap.coe_zero + theorem ZeroAtInftyContinuousMap.coe_zsmulRec + def ZeroAtInftyContinuousMap.comp + def ZeroAtInftyContinuousMap.compAddMonoidHom + def ZeroAtInftyContinuousMap.compLinearMap + def ZeroAtInftyContinuousMap.compMulHom + def ZeroAtInftyContinuousMap.compNonUnitalAlgHom + theorem ZeroAtInftyContinuousMap.comp_assoc + theorem ZeroAtInftyContinuousMap.comp_id + theorem ZeroAtInftyContinuousMap.copy_eq + theorem ZeroAtInftyContinuousMap.dist_toBcf_eq_dist + theorem ZeroAtInftyContinuousMap.eq_of_empty + theorem ZeroAtInftyContinuousMap.ext + theorem ZeroAtInftyContinuousMap.isometry_toBcf + theorem ZeroAtInftyContinuousMap.mul_apply + theorem ZeroAtInftyContinuousMap.neg_apply + theorem ZeroAtInftyContinuousMap.norm_toBcf_eq_norm + theorem ZeroAtInftyContinuousMap.smul_apply + theorem ZeroAtInftyContinuousMap.star_apply + theorem ZeroAtInftyContinuousMap.sub_apply + theorem ZeroAtInftyContinuousMap.tendsto_iff_tendstoUniformly + def ZeroAtInftyContinuousMap.toBcf + theorem ZeroAtInftyContinuousMap.toBcf_injective + theorem ZeroAtInftyContinuousMap.uniformContinuous + def ZeroAtInftyContinuousMap.zeroAtInftyContinuousMapClass.ofCompact + theorem ZeroAtInftyContinuousMap.zero_apply + theorem ZeroAtInftyContinuousMap.zero_comp + structure ZeroAtInftyContinuousMap 2023-06-16 17:18:54 0bd8654 feat: port RingTheory.Polynomial.Cyclotomic.Eval (#5144) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/RingTheory/Polynomial/Cyclotomic/Eval.lean + theorem Polynomial.cyclotomic_eval_le_add_one_pow_totient + theorem Polynomial.cyclotomic_eval_lt_add_one_pow_totient + theorem Polynomial.cyclotomic_nonneg + theorem Polynomial.cyclotomic_pos' + theorem Polynomial.cyclotomic_pos + theorem Polynomial.cyclotomic_pos_and_nonneg + theorem Polynomial.eval_one_cyclotomic_not_prime_pow + theorem Polynomial.eval_one_cyclotomic_prime + theorem Polynomial.eval_one_cyclotomic_prime_pow + theorem Polynomial.eval₂_one_cyclotomic_prime + theorem Polynomial.eval₂_one_cyclotomic_prime_pow + theorem Polynomial.sub_one_lt_natAbs_cyclotomic_eval + theorem Polynomial.sub_one_pow_totient_le_cyclotomic_eval + theorem Polynomial.sub_one_pow_totient_lt_cyclotomic_eval + theorem Polynomial.sub_one_pow_totient_lt_natAbs_cyclotomic_eval 2023-06-16 17:18:53 88b137e feat: port Probability.Kernel.Invariance (#5142) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Probability/Kernel/Invariance.lean + theorem ProbabilityTheory.kernel.Invariant.comp + theorem ProbabilityTheory.kernel.Invariant.comp_const + theorem ProbabilityTheory.kernel.Invariant.def + def ProbabilityTheory.kernel.Invariant + theorem ProbabilityTheory.kernel.bind_add + theorem ProbabilityTheory.kernel.bind_smul + theorem ProbabilityTheory.kernel.comp_const_apply_eq_bind + theorem ProbabilityTheory.kernel.const_bind_eq_comp_const 2023-06-16 17:05:46 cfd6b99 feat: add missing `Trans` instances (#5148) Add `Trans` instances for `Filter.EventuallyEq` and `Filter.EventuallyLE`. ESTIMATED CHANGES Modified Mathlib/Order/Filter/Basic.lean 2023-06-16 15:28:16 7f3d0dc feat: port Probability.Kernel.CondCdf (#5143) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Probability/Kernel/CondCdf.lean + theorem Directed.sequence_anti + theorem Directed.sequence_le + theorem ENNReal.ofReal_cinfi + theorem MeasureTheory.Measure.IicSnd_ac_fst + theorem MeasureTheory.Measure.IicSnd_apply + theorem MeasureTheory.Measure.IicSnd_le_fst + theorem MeasureTheory.Measure.IicSnd_mono + theorem MeasureTheory.Measure.IicSnd_univ + theorem MeasureTheory.Measure.IsFiniteMeasure.IicSnd + theorem MeasureTheory.Measure.iInf_IicSnd_gt + theorem MeasureTheory.Measure.tendsto_IicSnd_atBot + theorem MeasureTheory.Measure.tendsto_IicSnd_atTop + structure ProbabilityTheory.HasCondCdf + theorem ProbabilityTheory.bddBelow_range_condCdfRat_gt + theorem ProbabilityTheory.condCdf'_def' + theorem ProbabilityTheory.condCdf'_eq_condCdfRat + theorem ProbabilityTheory.condCdf'_nonneg + theorem ProbabilityTheory.condCdfRat_ae_eq + theorem ProbabilityTheory.condCdfRat_le_one + theorem ProbabilityTheory.condCdfRat_nonneg + theorem ProbabilityTheory.condCdfRat_of_mem + theorem ProbabilityTheory.condCdfRat_of_not_mem + def ProbabilityTheory.condCdfSet + theorem ProbabilityTheory.condCdf_ae_eq + theorem ProbabilityTheory.condCdf_eq_condCdfRat + theorem ProbabilityTheory.condCdf_le_one + theorem ProbabilityTheory.condCdf_nonneg + theorem ProbabilityTheory.continuousWithinAt_condCdf'_Ici + theorem ProbabilityTheory.hasCondCdf_ae + theorem ProbabilityTheory.hasCondCdf_of_mem_condCdfSet + theorem ProbabilityTheory.inf_gt_condCdfRat + theorem ProbabilityTheory.inf_gt_preCdf + theorem ProbabilityTheory.integrable_condCdf + theorem ProbabilityTheory.integral_condCdf + theorem ProbabilityTheory.lintegral_condCdf + theorem ProbabilityTheory.measurableSet_condCdfSet + theorem ProbabilityTheory.measurable_condCdf + theorem ProbabilityTheory.measurable_condCdfRat + theorem ProbabilityTheory.measurable_measure_condCdf + theorem ProbabilityTheory.measurable_preCdf + theorem ProbabilityTheory.measure_condCdf_Iic + theorem ProbabilityTheory.measure_condCdf_univ + theorem ProbabilityTheory.mem_condCdfSet_ae + theorem ProbabilityTheory.monotone_condCdf' + theorem ProbabilityTheory.monotone_condCdfRat + theorem ProbabilityTheory.monotone_preCdf + theorem ProbabilityTheory.ofReal_condCdfRat_ae_eq + theorem ProbabilityTheory.ofReal_condCdf_ae_eq + theorem ProbabilityTheory.preCdf_le_one + theorem ProbabilityTheory.set_integral_condCdf + theorem ProbabilityTheory.set_lintegral_condCdf + theorem ProbabilityTheory.set_lintegral_condCdf_rat + theorem ProbabilityTheory.set_lintegral_iInf_gt_preCdf + theorem ProbabilityTheory.set_lintegral_preCdf_fst + theorem ProbabilityTheory.stronglyMeasurable_condCdf + theorem ProbabilityTheory.tendsto_condCdfRat_atBot + theorem ProbabilityTheory.tendsto_condCdfRat_atTop + theorem ProbabilityTheory.tendsto_condCdf_atBot + theorem ProbabilityTheory.tendsto_condCdf_atTop + theorem ProbabilityTheory.tendsto_lintegral_preCdf_atBot + theorem ProbabilityTheory.tendsto_lintegral_preCdf_atTop + theorem ProbabilityTheory.tendsto_preCdf_atBot_zero + theorem ProbabilityTheory.tendsto_preCdf_atTop_one + theorem ProbabilityTheory.withDensity_preCdf + theorem Real.iInter_Iic_rat + theorem Real.iUnion_Iic_rat + theorem atBot_le_nhds_bot + theorem atTop_le_nhds_top + theorem isPiSystem_Ici + theorem isPiSystem_Iic + theorem lintegral_iInf_directed_of_measurable + theorem prod_iInter + theorem tendsto_of_antitone 2023-06-16 12:59:12 a5204f8 feat: port Probability.Kernel.Composition (#5044) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Probability/Kernel/Composition.lean + theorem ProbabilityTheory.kernel.ae_ae_of_ae_compProd + theorem ProbabilityTheory.kernel.ae_kernel_lt_top + theorem ProbabilityTheory.kernel.ae_null_of_compProd_null + def ProbabilityTheory.kernel.comap + theorem ProbabilityTheory.kernel.comap_apply' + theorem ProbabilityTheory.kernel.comap_apply + theorem ProbabilityTheory.kernel.compProdFun_empty + theorem ProbabilityTheory.kernel.compProdFun_eq_tsum + theorem ProbabilityTheory.kernel.compProdFun_iUnion + theorem ProbabilityTheory.kernel.compProdFun_tsum_left + theorem ProbabilityTheory.kernel.compProdFun_tsum_right + theorem ProbabilityTheory.kernel.compProd_apply + theorem ProbabilityTheory.kernel.compProd_apply_eq_compProdFun + theorem ProbabilityTheory.kernel.compProd_apply_univ_le + theorem ProbabilityTheory.kernel.compProd_eq_sum_compProd + theorem ProbabilityTheory.kernel.compProd_eq_sum_compProd_left + theorem ProbabilityTheory.kernel.compProd_eq_sum_compProd_right + theorem ProbabilityTheory.kernel.compProd_eq_tsum_compProd + theorem ProbabilityTheory.kernel.compProd_null + theorem ProbabilityTheory.kernel.compProd_restrict + theorem ProbabilityTheory.kernel.compProd_restrict_left + theorem ProbabilityTheory.kernel.compProd_restrict_right + theorem ProbabilityTheory.kernel.comp_apply' + theorem ProbabilityTheory.kernel.comp_apply + theorem ProbabilityTheory.kernel.comp_assoc + theorem ProbabilityTheory.kernel.comp_deterministic_eq_comap + theorem ProbabilityTheory.kernel.comp_eq_snd_compProd + theorem ProbabilityTheory.kernel.deterministic_comp_eq_map + theorem ProbabilityTheory.kernel.fst_apply' + theorem ProbabilityTheory.kernel.fst_apply + theorem ProbabilityTheory.kernel.le_compProd_apply + theorem ProbabilityTheory.kernel.lintegral_comap + theorem ProbabilityTheory.kernel.lintegral_comp + theorem ProbabilityTheory.kernel.lintegral_compProd' + theorem ProbabilityTheory.kernel.lintegral_compProd + theorem ProbabilityTheory.kernel.lintegral_compProd₀ + theorem ProbabilityTheory.kernel.lintegral_fst + theorem ProbabilityTheory.kernel.lintegral_prod + theorem ProbabilityTheory.kernel.lintegral_prodMkLeft + theorem ProbabilityTheory.kernel.lintegral_snd + theorem ProbabilityTheory.kernel.lintegral_swapLeft + theorem ProbabilityTheory.kernel.lintegral_swapRight + theorem ProbabilityTheory.kernel.map_apply' + theorem ProbabilityTheory.kernel.map_apply + theorem ProbabilityTheory.kernel.measurable_compProdFun + theorem ProbabilityTheory.kernel.measurable_compProdFun_of_finite + def ProbabilityTheory.kernel.prodMkLeft + theorem ProbabilityTheory.kernel.prodMkLeft_apply' + theorem ProbabilityTheory.kernel.prodMkLeft_apply + theorem ProbabilityTheory.kernel.prod_apply + theorem ProbabilityTheory.kernel.set_lintegral_compProd + theorem ProbabilityTheory.kernel.set_lintegral_compProd_univ_left + theorem ProbabilityTheory.kernel.set_lintegral_compProd_univ_right + theorem ProbabilityTheory.kernel.snd_apply' + theorem ProbabilityTheory.kernel.snd_apply + theorem ProbabilityTheory.kernel.sum_comap_seq + theorem ProbabilityTheory.kernel.sum_map_seq + def ProbabilityTheory.kernel.swapLeft + theorem ProbabilityTheory.kernel.swapLeft_apply' + theorem ProbabilityTheory.kernel.swapLeft_apply + theorem ProbabilityTheory.kernel.swapRight_apply' + theorem ProbabilityTheory.kernel.swapRight_apply Modified Mathlib/Probability/Kernel/MeasurableIntegral.lean - theorem ProbabilityTheory.Kernel.measurable_kernel_prod_mk_left' - theorem ProbabilityTheory.Kernel.measurable_kernel_prod_mk_left - theorem ProbabilityTheory.Kernel.measurable_kernel_prod_mk_left_of_finite - theorem ProbabilityTheory.Kernel.measurable_kernel_prod_mk_right - theorem ProbabilityTheory.Kernel.measurable_lintegral_indicator_const + theorem ProbabilityTheory.kernel.measurable_kernel_prod_mk_left' + theorem ProbabilityTheory.kernel.measurable_kernel_prod_mk_left + theorem ProbabilityTheory.kernel.measurable_kernel_prod_mk_left_of_finite + theorem ProbabilityTheory.kernel.measurable_kernel_prod_mk_right + theorem ProbabilityTheory.kernel.measurable_lintegral_indicator_const 2023-06-16 11:52:04 2edc8bf feat: port NumberTheory.Pell (#5137) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/NumberTheory/Pell.lean + theorem Pell.IsFundamental.d_nonsquare + theorem Pell.IsFundamental.d_pos + theorem Pell.IsFundamental.eq_pow_of_nonneg + theorem Pell.IsFundamental.eq_zpow_or_neg_zpow + theorem Pell.IsFundamental.exists_of_not_isSquare + theorem Pell.IsFundamental.mul_inv_x_lt_x + theorem Pell.IsFundamental.mul_inv_x_pos + theorem Pell.IsFundamental.mul_inv_y_nonneg + theorem Pell.IsFundamental.subsingleton + theorem Pell.IsFundamental.x_le_x + theorem Pell.IsFundamental.x_mul_y_le_y_mul_x + theorem Pell.IsFundamental.x_pos + theorem Pell.IsFundamental.y_le_y + theorem Pell.IsFundamental.y_strictMono + theorem Pell.IsFundamental.zpow_eq_one_iff + theorem Pell.IsFundamental.zpow_ne_neg_zpow + theorem Pell.IsFundamental.zpow_y_lt_iff_lt + def Pell.IsFundamental + theorem Pell.Solution₁.coe_mk + theorem Pell.Solution₁.d_nonsquare_of_one_lt_x + theorem Pell.Solution₁.d_pos_of_one_lt_x + theorem Pell.Solution₁.eq_one_of_x_eq_one + theorem Pell.Solution₁.eq_one_or_neg_one_iff_y_eq_zero + theorem Pell.Solution₁.eq_zero_of_d_neg + theorem Pell.Solution₁.exists_nontrivial_of_not_isSquare + theorem Pell.Solution₁.exists_pos_of_not_isSquare + theorem Pell.Solution₁.exists_pos_variant + theorem Pell.Solution₁.ext + def Pell.Solution₁.mk + theorem Pell.Solution₁.prop + theorem Pell.Solution₁.prop_x + theorem Pell.Solution₁.prop_y + theorem Pell.Solution₁.sign_y_zpow_eq_sign_of_x_pos_of_y_pos + theorem Pell.Solution₁.x_inv + theorem Pell.Solution₁.x_mk + theorem Pell.Solution₁.x_mul + theorem Pell.Solution₁.x_mul_pos + theorem Pell.Solution₁.x_ne_zero + theorem Pell.Solution₁.x_neg + theorem Pell.Solution₁.x_one + theorem Pell.Solution₁.x_pow_pos + theorem Pell.Solution₁.x_zpow_pos + theorem Pell.Solution₁.y_inv + theorem Pell.Solution₁.y_mk + theorem Pell.Solution₁.y_mul + theorem Pell.Solution₁.y_mul_pos + theorem Pell.Solution₁.y_ne_zero_of_one_lt_x + theorem Pell.Solution₁.y_neg + theorem Pell.Solution₁.y_one + theorem Pell.Solution₁.y_pow_succ_pos + theorem Pell.Solution₁.y_zpow_pos + def Pell.Solution₁ + theorem Pell.existsUnique_pos_generator + theorem Pell.exists_iff_not_isSquare + theorem Pell.exists_of_not_isSquare + theorem Pell.is_pell_solution_iff_mem_unitary + theorem Pell.pos_generator_iff_fundamental 2023-06-16 11:26:22 ee96c85 feat: port RingTheory.Polynomial.Cyclotomic.Roots (#5138) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/RingTheory/Polynomial/Cyclotomic/Roots.lean + theorem IsPrimitiveRoot.isRoot_cyclotomic + theorem IsPrimitiveRoot.minpoly_dvd_cyclotomic + theorem IsPrimitiveRoot.minpoly_eq_cyclotomic_of_irreducible + theorem Polynomial.cyclotomic.irreducible + theorem Polynomial.cyclotomic.irreducible_rat + theorem Polynomial.cyclotomic.isCoprime_rat + theorem Polynomial.cyclotomic.roots_eq_primitiveRoots_val + theorem Polynomial.cyclotomic.roots_to_finset_eq_primitiveRoots + theorem Polynomial.cyclotomic_eq_minpoly + theorem Polynomial.cyclotomic_eq_minpoly_rat + theorem Polynomial.cyclotomic_injective + theorem Polynomial.isRoot_cyclotomic_iff + theorem Polynomial.isRoot_cyclotomic_iff_charZero + theorem Polynomial.isRoot_of_unity_of_root_cyclotomic + theorem Polynomial.roots_cyclotomic_nodup + theorem isRoot_of_unity_iff 2023-06-16 11:12:56 a9540a6 feat: port Algebra.Category.BoolRingCat (#5053) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Category/BoolRingCat.lean + def BoolRingCat.Iso.mk + theorem BoolRingCat.coe_of + def BoolRingCat.of + def BoolRingCat + def boolRingCatEquivBoolAlgCat Modified Mathlib/Order/Category/BoolAlgCat.lean 2023-06-16 11:05:04 2725ab1 feat: port Archive.Imo.Imo1977Q6 (#5131) ESTIMATED CHANGES Modified Archive.lean Added Archive/Imo/Imo1977Q6.lean + theorem Imo1977Q6.imo1977_q6_nat + theorem imo1977_q6 2023-06-16 10:52:59 80f4047 feat: port Archive.Imo.Imo2020Q2 (#5135) ESTIMATED CHANGES Modified Archive.lean Added Archive/Imo/Imo2020Q2.lean + theorem imo2020_q2 2023-06-16 10:52:58 7530f58 feat: port Archive.Imo.Imo1962Q4 (#5130) ESTIMATED CHANGES Modified Archive.lean Added Archive/Imo/Imo1962Q4.lean + def Imo1962Q4.ProblemEquation + def Imo1962Q4.altFormula + theorem Imo1962Q4.alt_equiv + theorem Imo1962Q4.cos_sum_equiv + theorem Imo1962Q4.finding_zeros + theorem Imo1962Q4.formula + def Imo1962Q4.solutionSet + theorem Imo1962Q4.solve_cos2_half + theorem Imo1962Q4.solve_cos2x_0 + theorem Imo1962Q4.solve_cos3x_0 + theorem imo1962_q4' + theorem imo1962_q4 2023-06-16 10:41:37 851314e feat: port NumberTheory.DiophantineApproximation (#5126) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/NumberTheory/DiophantineApproximation.lean + theorem Rat.den_le_and_le_num_le_of_sub_lt_one_div_den_sq + theorem Rat.finite_rat_abs_sub_lt_one_div_den_sq + def Real.ContfracLegendre.Ass + theorem Real.continued_fraction_convergent_eq_convergent + theorem Real.convergent_of_int + theorem Real.convergent_of_zero + theorem Real.convergent_succ + theorem Real.convergent_zero + theorem Real.exists_continued_fraction_convergent_eq_rat + theorem Real.exists_int_int_abs_mul_sub_le + theorem Real.exists_nat_abs_mul_sub_round_le + theorem Real.exists_rat_abs_sub_le_and_den_le + theorem Real.exists_rat_abs_sub_lt_and_lt_of_irrational + theorem Real.exists_rat_eq_convergent' + theorem Real.exists_rat_eq_convergent + theorem Real.infinite_rat_abs_sub_lt_one_div_den_sq_iff_irrational + theorem Real.infinite_rat_abs_sub_lt_one_div_den_sq_of_irrational 2023-06-16 10:41:36 16e3f88 feat: port Archive.Imo.Imo1994Q1 (#5125) ESTIMATED CHANGES Modified Archive.lean Added Archive/Imo/Imo1994Q1.lean + theorem Imo1994Q1.tedious + theorem imo1994_q1 2023-06-16 10:33:23 1b4850d feat: port Counterexamples.SeminormLatticeNotDistrib (#5122) ESTIMATED CHANGES Modified Counterexamples.lean Added Counterexamples/SeminormLatticeNotDistrib.lean + theorem Counterexample.SeminormNotDistrib.eq_one + theorem Counterexample.SeminormNotDistrib.not_distrib 2023-06-16 10:33:22 2da7482 feat: port Counterexamples.CharPZeroNeCharZero (#5120) ESTIMATED CHANGES Modified Counterexamples.lean Added Counterexamples/CharPZeroNeCharZero.lean + theorem Counterexample.add_one_eq_one + theorem Counterexample.withZero_unit_charP_zero + theorem Counterexample.withZero_unit_not_charZero 2023-06-16 10:33:21 4550f82 feat: port Archive.Imo.Imo2005Q3 (#5118) ESTIMATED CHANGES Modified Archive.lean Added Archive/Imo/Imo2005Q3.lean + theorem Imo2005Q3.key_insight + theorem imo2005_q3 2023-06-16 10:33:20 7fb05c0 feat: port Counterexamples.DirectSumIsInternal (#4812) ESTIMATED CHANGES Modified Counterexamples.lean Added Counterexamples/DirectSumIsInternal.lean + theorem Counterexample.UnitsInt.one_ne_neg_one + theorem Counterexample.mem_withSign_neg_one + theorem Counterexample.mem_withSign_one + theorem Counterexample.withSign.iSup + def Counterexample.withSign.independent + theorem Counterexample.withSign.isCompl + theorem Counterexample.withSign.not_injective + theorem Counterexample.withSign.not_internal + def Counterexample.withSign 2023-06-16 10:24:50 18f81f5 feat: port Counterexamples.LinearOrderWithPosMulPosEqZero (#5124) ESTIMATED CHANGES Modified Counterexamples.lean Added Counterexamples/LinearOrderWithPosMulPosEqZero.lean + def Counterexample.Foo.aux1 + theorem Counterexample.Foo.aux1_inj + def Counterexample.Foo.mul + theorem Counterexample.Foo.not_mul_pos + inductive Counterexample.Foo 2023-06-16 09:03:14 474faf1 feat: port RingTheory.RootsOfUnity.Minpoly (#5119) - [x] depends on: #5076 ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/RingTheory/RootsOfUnity/Minpoly.lean + theorem IsPrimitiveRoot.isIntegral + theorem IsPrimitiveRoot.is_roots_of_minpoly + theorem IsPrimitiveRoot.minpoly_dvd_expand + theorem IsPrimitiveRoot.minpoly_dvd_mod_p + theorem IsPrimitiveRoot.minpoly_dvd_pow_mod + theorem IsPrimitiveRoot.minpoly_dvd_x_pow_sub_one + theorem IsPrimitiveRoot.minpoly_eq_pow + theorem IsPrimitiveRoot.minpoly_eq_pow_coprime + theorem IsPrimitiveRoot.pow_isRoot_minpoly + theorem IsPrimitiveRoot.separable_minpoly_mod + theorem IsPrimitiveRoot.squarefree_minpoly_mod + theorem IsPrimitiveRoot.totient_le_degree_minpoly 2023-06-16 07:33:55 f1adfdf chore: teach lake exe cache about ProofWidgets (#5128) ESTIMATED CHANGES Modified Cache/IO.lean 2023-06-16 07:08:29 74d091e feat: port Counterexamples.QuadraticForm (#5121) ESTIMATED CHANGES Modified Counterexamples.lean Added Counterexamples/QuadraticForm.lean + def Counterexample.B + theorem Counterexample.B_apply + theorem Counterexample.B_ne_zero + theorem Counterexample.BilinForm.not_injOn_toQuadraticForm_isSymm.{u} + theorem Counterexample.isAlt_B + theorem Counterexample.isSymm_B 2023-06-16 06:56:28 a1244a4 feat: port Counterexamples.Cyclotomic105 (#5117) ESTIMATED CHANGES Modified Counterexamples.lean Added Counterexamples/Cyclotomic105.lean + theorem Counterexample.coeff_cyclotomic_105 + theorem Counterexample.cyclotomic_105 + theorem Counterexample.cyclotomic_15 + theorem Counterexample.cyclotomic_21 + theorem Counterexample.cyclotomic_35 + theorem Counterexample.cyclotomic_3 + theorem Counterexample.cyclotomic_5 + theorem Counterexample.cyclotomic_7 + theorem Counterexample.not_forall_coeff_cyclotomic_neg_one_zero_one + theorem Counterexample.properDivisors_105 + theorem Counterexample.properDivisors_15 + theorem Counterexample.properDivisors_21 + theorem Counterexample.properDivisors_35 2023-06-16 06:56:26 8586e8c feat: port FieldTheory.Minpoly.IsIntegrallyClosed (#5076) - [x] depends on: #5069 ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/FieldTheory/Minpoly/IsIntegrallyClosed.lean + def minpoly.Algebra.adjoin.powerBasis' + theorem minpoly.IsIntegrallyClosed.Minpoly.unique + theorem minpoly.IsIntegrallyClosed.degree_le_of_ne_zero + theorem minpoly.ToAdjoin.injective + def minpoly.equivAdjoin + theorem minpoly.isIntegrallyClosed_dvd + theorem minpoly.isIntegrallyClosed_dvd_iff + theorem minpoly.isIntegrallyClosed_eq_field_fractions' + theorem minpoly.isIntegrallyClosed_eq_field_fractions + theorem minpoly.ker_eval + theorem minpoly.prime_of_isIntegrallyClosed 2023-06-16 05:40:56 2573a3d feat: port RingTheory.Polynomial.Selmer (#5116) Please feel free to push to this branch. Remaining tasks: - [x] Fix the proof of `x_pow_sub_x_sub_one_irreducible_rat`. This should be easy. Just needs some golfing. - [x] Fix the `linear_combination` proofs. Not sure if this is currently doable in mathlib4. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/RingTheory/Polynomial/Selmer.lean + theorem Polynomial.X_pow_sub_X_sub_one_irreducible + theorem Polynomial.X_pow_sub_X_sub_one_irreducible_aux + theorem Polynomial.X_pow_sub_X_sub_one_irreducible_rat 2023-06-16 05:40:55 b33be3b feat: port FieldTheory.Galois (#5115) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/FieldTheory/Galois.lean + theorem AlgEquiv.transfer_galois + def FixedPoints.intermediateField + theorem IntermediateField.finrank_fixedField_eq_card + def IntermediateField.fixedField + def IntermediateField.fixingSubgroupEquiv + theorem IntermediateField.fixingSubgroup_fixedField + theorem IntermediateField.le_iff_le + theorem IsGalois.IntermediateField.AdjoinSimple.card_aut_eq_finrank + theorem IsGalois.card_aut_eq_finrank + theorem IsGalois.card_fixingSubgroup_eq_finrank + theorem IsGalois.fixedField_fixingSubgroup + def IsGalois.galoisCoinsertionIntermediateFieldSubgroup + def IsGalois.galoisInsertionIntermediateFieldSubgroup + theorem IsGalois.integral + def IsGalois.intermediateFieldEquivSubgroup + theorem IsGalois.is_separable_splitting_field + theorem IsGalois.of_algEquiv + theorem IsGalois.of_card_aut_eq_finrank + theorem IsGalois.of_fixedField_eq_bot + theorem IsGalois.of_separable_splitting_field + theorem IsGalois.of_separable_splitting_field_aux + theorem IsGalois.separable + theorem IsGalois.splits + theorem IsGalois.tfae + theorem IsGalois.tower_top_of_isGalois + theorem isGalois_iff + theorem isGalois_iff_isGalois_bot + theorem isGalois_iff_isGalois_top 2023-06-16 05:40:54 eae91c7 feat: port Algebra.ContinuedFractions.Computation.ApproximationCorollaries (#5103) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/ContinuedFractions/Computation/ApproximationCorollaries.lean + def ContinuedFraction.of + theorem GeneralizedContinuedFraction.convergents_succ + theorem GeneralizedContinuedFraction.of_convergence + theorem GeneralizedContinuedFraction.of_convergence_epsilon + theorem GeneralizedContinuedFraction.of_convergents_eq_convergents' + theorem GeneralizedContinuedFraction.of_isSimpleContinuedFraction + theorem SimpleContinuedFraction.of_isContinuedFraction 2023-06-16 05:40:53 868e361 fix(Tactic/PushNeg): add `cleanupAnnotations` to push_neg (#5082) `Expr`s now have an `mdata` field. It seems that this gets in the way of `push_neg`, as [reported on Zulip](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/push_neg.20behavior). The above seems to fix the reported errors. ESTIMATED CHANGES Modified Mathlib/Analysis/NormedSpace/lpSpace.lean Modified Mathlib/Data/Set/Finite.lean Modified Mathlib/GroupTheory/OrderOfElement.lean Modified Mathlib/GroupTheory/SchurZassenhaus.lean Modified Mathlib/LinearAlgebra/Matrix/ZPow.lean Modified Mathlib/NumberTheory/ADEInequality.lean Modified Mathlib/RingTheory/SimpleModule.lean Modified Mathlib/Tactic/PushNeg.lean Modified Mathlib/Topology/MetricSpace/PiNat.lean Modified test/byContra.lean 2023-06-16 04:31:15 4d84a36 feat: port Counterexamples.Girard (#5099) ESTIMATED CHANGES Modified Counterexamples.lean Added Counterexamples/Girard.lean + theorem Counterexample.girard.{u} 2023-06-16 04:31:14 4cf5b94 feat: port RingTheory.RingHom.FiniteType (#5075) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/RingTheory/RingHom/FiniteType.lean + theorem RingHom.finiteType_holdsForLocalizationAway + theorem RingHom.finiteType_is_local + theorem RingHom.finiteType_ofLocalizationSpanTarget + theorem RingHom.finiteType_respectsIso + theorem RingHom.finiteType_stableUnderComposition 2023-06-16 04:31:13 bef1721 feat: port Order.Category.FinBoolAlgCat (#5052) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Order/Category/FinBoolAlgCat.lean + def FinBoolAlgCat.Iso.mk + theorem FinBoolAlgCat.coe_of + def FinBoolAlgCat.dual + def FinBoolAlgCat.dualEquiv + def FinBoolAlgCat.of + structure FinBoolAlgCat + theorem finBoolAlgCat_dual_comp_forget_to_finBddDistLatCat + def fintypeToFinBoolAlgCatOp Modified Mathlib/Order/Hom/Lattice.lean 2023-06-16 04:23:22 fbe3333 feat: port Archive.Imo.Imo1972Q5 (#5090) ESTIMATED CHANGES Modified Archive.lean Added Archive/Imo/Imo1972Q5.lean + theorem imo1972_q5' + theorem imo1972_q5 2023-06-16 02:09:56 8b84483 fix: improve `IntermediateField.adjoin` notation (#5110) This replaces the hacky typeclass-based system I wrote before, and now there are true set notations in the elaborated terms. ESTIMATED CHANGES Modified Mathlib/FieldTheory/Adjoin.lean +/- theorem IntermediateField.adjoin_simple_le_iff - theorem IntermediateField.insert_le_iff 2023-06-16 02:09:55 62d9043 chore: tidy various files (#5104) ESTIMATED CHANGES Modified Mathlib/Algebra/Category/ModuleCat/Simple.lean + theorem simple_iff_isSimpleModule' - theorem simple_iff_is_simple_module' Modified Mathlib/Algebra/Lie/IdealOperations.lean Modified Mathlib/AlgebraicGeometry/Spec.lean + theorem AlgebraicGeometry.StructureSheaf.isLocalizedModule_toPushforwardStalkAlgHom_aux - theorem AlgebraicGeometry.StructureSheaf.is_localized_module_toPushforwardStalkAlgHom_aux Modified Mathlib/Analysis/Calculus/Series.lean Modified Mathlib/Analysis/Calculus/UniformLimitsDeriv.lean Modified Mathlib/Analysis/InnerProductSpace/EuclideanDist.lean Modified Mathlib/Analysis/InnerProductSpace/Projection.lean Modified Mathlib/Analysis/SpecialFunctions/Log/Deriv.lean Modified Mathlib/CategoryTheory/Preadditive/Schur.lean Modified Mathlib/FieldTheory/Laurent.lean Modified Mathlib/GroupTheory/Transfer.lean + theorem MonoidHom.transferSylow_eq_pow_aux - theorem MonoidHom.transfer_sylow_eq_pow_aux Modified Mathlib/MeasureTheory/Constructions/Pi.lean Modified Mathlib/NumberTheory/FermatPsp.lean Modified Mathlib/Order/Hom/Lattice.lean +/- theorem LatticeHom.withTopWithBot_apply Modified Mathlib/Probability/ProbabilityMassFunction/Uniform.lean Modified Mathlib/RingTheory/Bezout.lean Modified Mathlib/Topology/ContinuousFunction/Ideals.lean Modified Mathlib/Topology/Gluing.lean Modified Mathlib/Topology/Homotopy/HomotopyGroup.lean +/- def genLoopEquivOfUnique +/- def genLoopHomeoOfIsEmpty Modified Mathlib/Topology/SubsetProperties.lean 2023-06-16 02:09:54 b4efa00 feat: port LinearAlgebra.Matrix.LDL (#5061) - [x] depends on: #4920 - [x] depends on: #5058 - [x] depends on: #5059 - [x] depends on: #5060 ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/LinearAlgebra/Matrix/LDL.lean + theorem LDL.diag_eq_lowerInv_conj + theorem LDL.lowerInv_eq_gramSchmidtBasis + theorem LDL.lowerInv_orthogonal + theorem LDL.lowerInv_triangular + theorem LDL.lower_conj_diag Modified Mathlib/LinearAlgebra/Matrix/NonsingularInverse.lean 2023-06-16 02:09:53 bf2a890 feat: port Topology.Category.UniformSpace (#4531) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Topology/Category/UniformSpace.lean + theorem CpltSepUniformSpace.coe_of + def CpltSepUniformSpace.of + def CpltSepUniformSpace.toUniformSpace + structure CpltSepUniformSpace + theorem UniformSpaceCat.coe_comp + theorem UniformSpaceCat.coe_id + theorem UniformSpaceCat.coe_mk + theorem UniformSpaceCat.coe_of + def UniformSpaceCat.completionHom + theorem UniformSpaceCat.completionHom_val + theorem UniformSpaceCat.extensionHom_val + theorem UniformSpaceCat.extension_comp_coe + theorem UniformSpaceCat.hom_ext + def UniformSpaceCat.of + def UniformSpaceCat 2023-06-16 00:58:26 cf6b07a fix: force `StarMemClass` into `Prop` (#5105) ESTIMATED CHANGES Modified Mathlib/Algebra/Star/Basic.lean 2023-06-16 00:58:25 4acf4c1 feat: add missing `NonAssocRing`, `Ring` and `CommRing` instances for `Unitization` (#5101) ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/Unitization.lean 2023-06-16 00:58:24 0783216 feat: port CategoryTheory.Monoidal.Internal.FunctorCategory (#5093) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Monoidal/Internal/FunctorCategory.lean + def CategoryTheory.Monoidal.CommMonFunctorCategoryEquivalence.counitIso + def CategoryTheory.Monoidal.CommMonFunctorCategoryEquivalence.functor + def CategoryTheory.Monoidal.CommMonFunctorCategoryEquivalence.inverse + def CategoryTheory.Monoidal.CommMonFunctorCategoryEquivalence.unitIso + def CategoryTheory.Monoidal.MonFunctorCategoryEquivalence.Functor.obj + def CategoryTheory.Monoidal.MonFunctorCategoryEquivalence.Inverse.obj + def CategoryTheory.Monoidal.MonFunctorCategoryEquivalence.counitIso + def CategoryTheory.Monoidal.MonFunctorCategoryEquivalence.functor + def CategoryTheory.Monoidal.MonFunctorCategoryEquivalence.inverse + def CategoryTheory.Monoidal.MonFunctorCategoryEquivalence.unitIso + def CategoryTheory.Monoidal.commMonFunctorCategoryEquivalence + def CategoryTheory.Monoidal.monFunctorCategoryEquivalence 2023-06-16 00:45:20 3ecffe4 fix: allow porting Archive files (#4811) ESTIMATED CHANGES Modified scripts/start_port.sh 2023-06-16 00:13:34 cb9f62f feat: port Archive.Imo.Imo2011Q5 (#5095) ESTIMATED CHANGES Modified Archive.lean Added Archive/Imo/Imo2011Q5.lean + theorem imo2011_q5 2023-06-16 00:13:33 60c4956 chore: forward port leanprover-community/mathlib#19186 (#5080) ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Constructions/BorelSpace/Basic.lean + theorem borel_anti Modified Mathlib/MeasureTheory/Constructions/Polish.lean + theorem Continuous.map_borel_eq + theorem Continuous.map_eq_borel + theorem Measurable.borelSpace_codomain + theorem Measurable.map_measurableSpace_eq + theorem Measurable.map_measurableSpace_eq_borel + theorem Measurable.measurableSet_preimage_iff_inter_range + theorem Measurable.measurableSet_preimage_iff_of_surjective + theorem Measurable.measurableSet_preimage_iff_preimage_val + theorem Measurable.measurable_comp_iff_of_surjective + theorem Measurable.measurable_comp_iff_restrict + theorem MeasurableSet.analyticSet_image + theorem MeasureTheory.AnalyticSet.measurableSet_of_compl +/- theorem MeasureTheory.AnalyticSet.measurablySeparable +/- theorem MeasureTheory.measurablySeparable_range_of_disjoint 2023-06-16 00:13:32 0f18672 feat: port FieldTheory.PrimitiveElement (#5071) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/FieldTheory/PrimitiveElement.lean + theorem AlgHom.card + theorem Field.exists_primitive_element + theorem Field.exists_primitive_element_of_finite_bot + theorem Field.exists_primitive_element_of_finite_top + theorem Field.primitive_element_inf_aux + theorem Field.primitive_element_inf_aux_exists_c 2023-06-16 00:13:31 a3fde68 feat: port RingTheory.Polynomial.GaussLemma (#5069) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/RingTheory/Polynomial/GaussLemma.lean + theorem IsIntegrallyClosed.eq_map_mul_C_of_dvd + theorem Polynomial.IsPrimitive.Int.dvd_iff_map_cast_dvd_map_cast + theorem Polynomial.IsPrimitive.Int.irreducible_iff_irreducible_map_cast + theorem Polynomial.IsPrimitive.dvd_iff_fraction_map_dvd_fraction_map + theorem Polynomial.IsPrimitive.dvd_of_fraction_map_dvd_fraction_map + theorem Polynomial.IsPrimitive.irreducible_iff_irreducible_map_fraction_map + theorem Polynomial.IsPrimitive.irreducible_of_irreducible_map_of_injective + theorem Polynomial.IsPrimitive.isUnit_iff_isUnit_map + theorem Polynomial.IsPrimitive.isUnit_iff_isUnit_map_of_injective + theorem Polynomial.Monic.dvd_iff_fraction_map_dvd_fraction_map + theorem Polynomial.Monic.dvd_of_fraction_map_dvd_fraction_map + theorem Polynomial.Monic.irreducible_iff_irreducible_map_fraction_map + theorem Polynomial.isIntegrallyClosed_iff' + theorem Polynomial.isUnit_or_eq_zero_of_isUnit_integerNormalization_primPart + theorem integralClosure.mem_lifts_of_monic_of_dvd_map 2023-06-15 23:01:38 32a2d94 feat: port Topology.Sheaves.Operations (#4731) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Category/Ring/Adjunctions.lean Modified Mathlib/Algebra/Category/Ring/Basic.lean Modified Mathlib/Algebra/Hom/Ring.lean Added Mathlib/Topology/Sheaves/Operations.lean + def TopCat.Presheaf.SubmonoidPresheaf.toLocalizationPresheaf + structure TopCat.Presheaf.SubmonoidPresheaf 2023-06-15 22:49:45 c993cb1 chore: use mathport output in FieldTheory.SplittingField.Construction (#5087) The mathlib3 version was manually backported from the mathlib4 version. We use here the mathport output. ESTIMATED CHANGES Modified Mathlib/FieldTheory/SplittingField/Construction.lean +/- theorem Polynomial.SplittingField.adjoin_rootSet - theorem Polynomial.SplittingField.adjoin_roots +/- def Polynomial.SplittingField.algEquivSplittingFieldAux +/- def Polynomial.SplittingField 2023-06-15 22:31:19 dfe93ed feat: port Archive.Imo.Imo2001Q6 (#5096) ESTIMATED CHANGES Modified Archive.lean Added Archive/Imo/Imo2001Q6.lean + theorem imo2001_q6 2023-06-15 21:39:18 2c77cff feat: sub/superscript parser (#4957) This is intended for use in local notations, like this: ```lean import Mathlib.Util.Superscript local syntax:arg term:max superscript(term) : term local macro_rules | `($a:term $b:superscript) => `($a ^ $b) example : 2² = 4 := rfl example : 2¹⁶ = 65536 := rfl example (n : Nat) : n⁽²⁻¹⁾ ⁺ ⁶ /- not done yet... -/ ⁺ ᶠᵒᵒ = n ^ (7 + foo) := rfl example : (fun n => 2ⁿ⁺¹) 15 = 2¹⁶ := rfl ``` See also the discussion on [Zulip](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/superscript.20parser/near/365151927). ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Util/Superscript.lean + def Mathlib.Tactic.Superscript.Mapping.subscript + def Mathlib.Tactic.Superscript.Mapping.superscript + structure Mathlib.Tactic.Superscript.Mapping + def Mathlib.Tactic.Superscript.mkMapping + def Mathlib.Tactic.Superscript.scriptParser.formatter + def Mathlib.Tactic.Superscript.scriptParser.parenthesizer + def Mathlib.Tactic.Superscript.scriptParser + def Mathlib.Tactic.registerAlias + def Mathlib.Tactic.registerAliasCore + def Mathlib.Tactic.subscript.formatter + def Mathlib.Tactic.subscript.parenthesizer + def Mathlib.Tactic.subscript + def Mathlib.Tactic.superscript.formatter + def Mathlib.Tactic.superscript.parenthesizer + def Mathlib.Tactic.superscript Added test/superscript.lean 2023-06-15 20:07:55 33fd7e1 feat: port Algebra.ContinuedFractions.Computation.Approximations (#3917) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/ContinuedFractions/Computation/Approximations.lean + theorem GeneralizedContinuedFraction.IntFractPair.nth_stream_fr_lt_one + theorem GeneralizedContinuedFraction.IntFractPair.nth_stream_fr_nonneg + theorem GeneralizedContinuedFraction.IntFractPair.nth_stream_fr_nonneg_lt_one + theorem GeneralizedContinuedFraction.IntFractPair.one_le_succ_nth_stream_b + theorem GeneralizedContinuedFraction.IntFractPair.succ_nth_stream_b_le_nth_stream_fr_inv + theorem GeneralizedContinuedFraction.abs_sub_convergents_le' + theorem GeneralizedContinuedFraction.abs_sub_convergents_le + theorem GeneralizedContinuedFraction.determinant + theorem GeneralizedContinuedFraction.determinant_aux + theorem GeneralizedContinuedFraction.exists_int_eq_of_part_denom + theorem GeneralizedContinuedFraction.fib_le_of_continuantsAux_b + theorem GeneralizedContinuedFraction.le_of_succ_get?_denom + theorem GeneralizedContinuedFraction.le_of_succ_succ_get?_continuantsAux_b + theorem GeneralizedContinuedFraction.of_denom_mono + theorem GeneralizedContinuedFraction.of_one_le_get?_part_denom + theorem GeneralizedContinuedFraction.of_part_num_eq_one + theorem GeneralizedContinuedFraction.of_part_num_eq_one_and_exists_int_part_denom_eq + theorem GeneralizedContinuedFraction.sub_convergents_eq + theorem GeneralizedContinuedFraction.succ_nth_fib_le_of_nth_denom + theorem GeneralizedContinuedFraction.zero_le_of_continuantsAux_b + theorem GeneralizedContinuedFraction.zero_le_of_denom 2023-06-15 19:59:19 ce15a88 feat: port Archive.Imo.Imo2011Q3 (#5097) ESTIMATED CHANGES Modified Archive.lean Added Archive/Imo/Imo2011Q3.lean + theorem imo2011_q3 2023-06-15 17:27:05 cc3528b feat: port LinearAlgebra.Matrix.PosDef (#5060) - [x] depends on: #4920 - [x] depends on: #5058 - [x] depends on: #5059 ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/LinearAlgebra/Matrix/PosDef.lean + def Matrix.InnerProductSpace.ofMatrix + theorem Matrix.PosDef.det_pos + theorem Matrix.PosDef.isHermitian + theorem Matrix.PosDef.posSemidef + theorem Matrix.PosDef.transpose + def Matrix.PosDef + theorem Matrix.PosSemidef.submatrix + def Matrix.PosSemidef + theorem Matrix.posDef_of_toQuadraticForm' + theorem Matrix.posDef_toQuadraticForm' + theorem Matrix.posSemidef_submatrix_equiv + theorem QuadraticForm.posDef_of_toMatrix' + theorem QuadraticForm.posDef_toMatrix' 2023-06-15 15:48:21 2f33ff1 feat(ci): add ci for Archive and Counterexamples (#5078) This doesn't yet configure the `start_port.sh` script, that's left to a future PR. ESTIMATED CHANGES Modified .github/workflows/bors.yml Modified .github/workflows/build.yml Modified .github/workflows/build.yml.in Modified .github/workflows/build_fork.yml Added Archive.lean Added Counterexamples.lean Modified lakefile.lean Modified scripts/lint-style.sh 2023-06-15 14:41:02 b8c4b6e chore: partially forward-port #18760 (#5034) ESTIMATED CHANGES Modified Mathlib/Data/Fintype/Basic.lean Modified Mathlib/Data/Set/Finite.lean + theorem Set.Finite.toFinset_eq_toFinset + theorem Set.toFinite_toFinset 2023-06-15 13:18:16 878d95c chore: fix backtick in docs (#5077) I wrote a script to find lines that contain an odd number of backticks ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Prod.lean Modified Mathlib/Algebra/Module/Bimodule.lean Modified Mathlib/Algebra/Order/Group/Defs.lean Modified Mathlib/Algebra/Order/Monoid/Defs.lean Modified Mathlib/Algebra/Quaternion.lean Modified Mathlib/Analysis/BoxIntegral/Basic.lean Modified Mathlib/Analysis/Calculus/ContDiff.lean Modified Mathlib/Analysis/Calculus/FDerivMeasurable.lean Modified Mathlib/Analysis/Calculus/LocalExtr.lean Modified Mathlib/Analysis/Complex/CauchyIntegral.lean Modified Mathlib/Analysis/Convex/Normed.lean Modified Mathlib/Analysis/Convex/StrictConvexSpace.lean Modified Mathlib/Analysis/InnerProductSpace/ConformalLinearMap.lean Modified Mathlib/Analysis/Normed/Group/AddTorsor.lean Modified Mathlib/Analysis/NormedSpace/MazurUlam.lean Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Angle.lean Modified Mathlib/CategoryTheory/Abelian/LeftDerived.lean Modified Mathlib/CategoryTheory/Action.lean Modified Mathlib/CategoryTheory/ConcreteCategory/Basic.lean Modified Mathlib/CategoryTheory/Limits/Fubini.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Kernels.lean Modified Mathlib/CategoryTheory/Preadditive/Projective.lean Modified Mathlib/Combinatorics/Quiver/Symmetric.lean Modified Mathlib/Control/Monad/Basic.lean Modified Mathlib/Data/Finset/NoncommProd.lean Modified Mathlib/Data/Fintype/Sort.lean Modified Mathlib/Data/List/MinMax.lean Modified Mathlib/Data/Real/ENNReal.lean Modified Mathlib/Data/Real/Pi/Bounds.lean Modified Mathlib/Dynamics/Circle/RotationNumber/TranslationNumber.lean Modified Mathlib/Dynamics/OmegaLimit.lean Modified Mathlib/GroupTheory/Congruence.lean Modified Mathlib/GroupTheory/DoubleCoset.lean Modified Mathlib/GroupTheory/OrderOfElement.lean Modified Mathlib/LinearAlgebra/AffineSpace/Ordered.lean Modified Mathlib/LinearAlgebra/Finsupp.lean Modified Mathlib/LinearAlgebra/LinearIndependent.lean Modified Mathlib/Logic/Equiv/Basic.lean Modified Mathlib/Logic/Equiv/Defs.lean Modified Mathlib/Logic/Function/Basic.lean Modified Mathlib/Logic/Relator.lean Modified Mathlib/MeasureTheory/Function/Jacobian.lean Modified Mathlib/MeasureTheory/Function/L1Space.lean Modified Mathlib/MeasureTheory/Function/LpSpace.lean Modified Mathlib/MeasureTheory/Integral/DivergenceTheorem.lean Modified Mathlib/MeasureTheory/Integral/FundThmCalculus.lean Modified Mathlib/MeasureTheory/Integral/SetIntegral.lean Modified Mathlib/ModelTheory/Semantics.lean Modified Mathlib/Order/Filter/Basic.lean Modified Mathlib/Order/Filter/Prod.lean Modified Mathlib/Order/Hom/Lattice.lean Modified Mathlib/RingTheory/FinitePresentation.lean Modified Mathlib/RingTheory/Ideal/QuotientOperations.lean Modified Mathlib/RingTheory/IntegralDomain.lean Modified Mathlib/RingTheory/OreLocalization/Basic.lean Modified Mathlib/Tactic/Linarith/Parsing.lean Modified Mathlib/Tactic/MkIffOfInductiveProp.lean Modified Mathlib/Tactic/Simps/NotationClass.lean Modified Mathlib/Testing/SlimCheck/Sampleable.lean Modified Mathlib/Topology/Algebra/Monoid.lean Modified Mathlib/Topology/Algebra/Polynomial.lean Modified Mathlib/Topology/Basic.lean Modified Mathlib/Topology/DiscreteQuotient.lean Modified Mathlib/Topology/FiberBundle/Trivialization.lean Modified Mathlib/Topology/MetricSpace/EMetricParacompact.lean Modified Mathlib/Topology/Order/Basic.lean Modified Mathlib/Topology/Paracompact.lean Modified Mathlib/Topology/UniformSpace/Basic.lean Modified test/nontriviality.lean 2023-06-15 13:18:13 0fc5696 feat: port Analysis.Normed.Group.SemiNormedGroupCat (#4047) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/Normed/Group/SemiNormedGroupCat.lean + theorem SemiNormedGroupCat.coe_comp + theorem SemiNormedGroupCat.coe_id + theorem SemiNormedGroupCat.coe_of + theorem SemiNormedGroupCat.ext + theorem SemiNormedGroupCat.isZero_of_subsingleton + theorem SemiNormedGroupCat.iso_isometry_of_normNoninc + def SemiNormedGroupCat.of + theorem SemiNormedGroupCat.zero_apply + def SemiNormedGroupCat + theorem SemiNormedGroupCat₁.coe_comp + theorem SemiNormedGroupCat₁.coe_id + theorem SemiNormedGroupCat₁.coe_of + theorem SemiNormedGroupCat₁.hom_ext + theorem SemiNormedGroupCat₁.isZero_of_subsingleton + theorem SemiNormedGroupCat₁.iso_isometry + def SemiNormedGroupCat₁.mkHom + theorem SemiNormedGroupCat₁.mkHom_apply + def SemiNormedGroupCat₁.mkIso + def SemiNormedGroupCat₁.of + theorem SemiNormedGroupCat₁.zero_apply + def SemiNormedGroupCat₁ 2023-06-15 11:52:43 5f9c167 chore: forward-port leanprover-community/mathlib#19182 (#5024) The important thing to forward-port here is the addition of `[DecidableEq _]` to a handful of lemmas. `linear_algebra.eigenspace.minpoly` did not need anything forward-porting, as the proof which broke in mathlib3 did not break in mathlib4. The `nthRootsFinset_def` lemma was forgotten in the mathlib3 PR. ESTIMATED CHANGES Modified Mathlib/Data/Polynomial/RingDivision.lean +/- theorem Polynomial.bUnion_roots_finite +/- theorem Polynomial.card_nthRoots +/- theorem Polynomial.count_map_roots +/- theorem Polynomial.count_map_roots_of_injective +/- theorem Polynomial.count_roots +/- theorem Polynomial.degree_le_mul_left +/- theorem Polynomial.exists_multiset_roots +/- theorem Polynomial.map_roots_le +/- theorem Polynomial.mem_nthRootsFinset +/- theorem Polynomial.natDegree_pow + theorem Polynomial.nthRootsFinset_def +/- theorem Polynomial.nthRootsFinset_zero +/- theorem Polynomial.prod_multiset_root_eq_finset_root +/- theorem Polynomial.rootMultiplicity_X_sub_C +/- theorem Polynomial.rootSet_def +/- theorem Polynomial.roots_C + theorem Polynomial.roots_def +/- theorem Polynomial.roots_mul Modified Mathlib/FieldTheory/SplittingField/IsSplittingField.lean Modified Mathlib/LinearAlgebra/Eigenspace/Minpoly.lean 2023-06-15 11:52:41 bb23b07 feat: further functions on ListM (#3618) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Data/ListM/Basic.lean + def ListM.fin +/- def ListM.fixl + def ListM.ofArray +/- def ListM.range Added Mathlib/Data/ListM/Split.lean + def ListM.getUpToFirst + def ListM.groupBy + def ListM.splitAtBecomesTrue + def ListM.splitWhile Modified test/ListM.lean 2023-06-15 11:41:40 cc2bef4 feat: port Topology.Sheaves.LocallySurjective (#4980) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Topology/Sheaves/LocallySurjective.lean + def TopCat.Presheaf.IsLocallySurjective + theorem TopCat.Presheaf.isLocallySurjective_iff + theorem TopCat.Presheaf.locally_surjective_iff_surjective_on_stalks 2023-06-15 10:59:03 9b1e3d9 chore: forward-port leanprover-community/mathlib#19187 (#5070) A sloppy version of this was added in #4891. This adds the better version that we wrote in mathlib3. ESTIMATED CHANGES Modified Mathlib/Data/MvPolynomial/Basic.lean Modified Mathlib/FieldTheory/SplittingField/Construction.lean 2023-06-15 08:38:28 61d2c36 chore: forward_port leanprover-community/mathlib#19169 (#5057) The other files were already fixed in Lean4. I also tried doing a sweep of the rest of the files to make sure there was no more broken ones - it seems ok. ESTIMATED CHANGES Modified Mathlib/Algebra/Hom/Equiv/Basic.lean Modified Mathlib/GroupTheory/Subsemigroup/Center.lean Modified Mathlib/Topology/Algebra/Monoid.lean 2023-06-15 07:21:55 aee56e0 feat: port LinearAlgebra.Matrix.Spectrum (#5059) - [x] depends on: #4920 - [x] depends on: #5058 ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/LinearAlgebra/Matrix/Spectrum.lean + theorem Matrix.IsHermitian.conjTranspose_eigenvectorMatrix + theorem Matrix.IsHermitian.conjTranspose_eigenvectorMatrixInv + theorem Matrix.IsHermitian.det_eq_prod_eigenvalues + theorem Matrix.IsHermitian.eigenvalues_eq + theorem Matrix.IsHermitian.eigenvectorMatrixInv_apply + theorem Matrix.IsHermitian.eigenvectorMatrix_apply + theorem Matrix.IsHermitian.eigenvectorMatrix_mul_inv + theorem Matrix.IsHermitian.spectral_theorem 2023-06-15 07:21:54 379a2ae feat: port CategoryTheory.Closed.Functor (#4922) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Closed/Functor.lean + def CategoryTheory.cartesianClosedFunctorOfLeftAdjointPreservesBinaryProducts + theorem CategoryTheory.coev_expComparison + def CategoryTheory.expComparison + theorem CategoryTheory.expComparison_ev + theorem CategoryTheory.expComparison_iso_of_frobeniusMorphism_iso + theorem CategoryTheory.expComparison_whiskerLeft + def CategoryTheory.frobeniusMorphism + theorem CategoryTheory.frobeniusMorphism_iso_of_expComparison_iso + theorem CategoryTheory.frobeniusMorphism_mate + theorem CategoryTheory.uncurry_expComparison Modified Mathlib/CategoryTheory/Iso.lean +/- theorem CategoryTheory.asIso_hom +/- theorem CategoryTheory.asIso_inv Modified Mathlib/CategoryTheory/Limits/Shapes/BinaryProducts.lean Modified Mathlib/CategoryTheory/NatIso.lean +/- theorem CategoryTheory.NatIso.isIso_inv_app +/- theorem CategoryTheory.NatIso.naturality_1' +/- theorem CategoryTheory.NatIso.naturality_2' 2023-06-15 07:21:52 bbc68ef feat: port FieldTheory.SplittingField.Construction (#4891) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Data/MvPolynomial/Basic.lean Added Mathlib/FieldTheory/SplittingField/Construction.lean + def Polynomial.IsSplittingField.algEquiv + theorem Polynomial.SplittingField.adjoin_rootSet + theorem Polynomial.SplittingField.adjoin_roots + def Polynomial.SplittingField.algEquivSplittingFieldAux + def Polynomial.SplittingField.lift + def Polynomial.SplittingField + theorem Polynomial.SplittingFieldAux.adjoin_rootSet + def Polynomial.SplittingFieldAux.algEquivQuotientMvPolynomial + theorem Polynomial.SplittingFieldAux.algebraMap_succ + def Polynomial.SplittingFieldAux.ofMvPolynomial + theorem Polynomial.SplittingFieldAux.ofMvPolynomial_surjective + theorem Polynomial.SplittingFieldAux.succ + def Polynomial.SplittingFieldAux + def Polynomial.SplittingFieldAuxAux + theorem Polynomial.X_sub_C_mul_removeFactor + theorem Polynomial.fact_irreducible_factor + def Polynomial.factor + theorem Polynomial.factor_dvd_of_degree_ne_zero + theorem Polynomial.factor_dvd_of_natDegree_ne_zero + theorem Polynomial.factor_dvd_of_not_isUnit + theorem Polynomial.irreducible_factor + theorem Polynomial.natDegree_removeFactor' + theorem Polynomial.natDegree_removeFactor + def Polynomial.removeFactor 2023-06-15 06:25:43 ec1082a chore: move around `gcongr` material (#5067) Move the `gcongr_forward` attribute setup from `Tactic.GCongr.Core` into a new (earlier) file `Tactic.GCongr.ForwardAttr`, allowing the four seed mini-tactics with this attribute to be moved (earlier) from `Tactic.GCongr` into `Tactic.GCongr.Core`. This fixes the broken tests #5065 as well as an issue > I naively assumed that if the tactic`gcongr` is known, then I would not have to import additional files. So if I import this file, .... `gcongr` suddenly used a hypothesis where it didn’t do it before. [reported by](https://leanprover.zulipchat.com/#narrow/stream/116395-maths/topic/New.20tactic.20for.20.22relational.20congruence.22/near/363801891) @nomeata . ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Tactic.lean Modified Mathlib/Tactic/GCongr.lean - def Mathlib.Tactic.GCongr.exact - def Mathlib.Tactic.GCongr.exactLeOfLt - def Mathlib.Tactic.GCongr.exactRefl - def Mathlib.Tactic.GCongr.symmExact Modified Mathlib/Tactic/GCongr/Core.lean - structure Mathlib.Tactic.GCongr.ForwardExt + def Mathlib.Tactic.GCongr.exact + def Mathlib.Tactic.GCongr.exactLeOfLt + def Mathlib.Tactic.GCongr.exactRefl - def Mathlib.Tactic.GCongr.mkForwardExt + def Mathlib.Tactic.GCongr.symmExact Added Mathlib/Tactic/GCongr/ForwardAttr.lean + structure Mathlib.Tactic.GCongr.ForwardExt + def Mathlib.Tactic.GCongr.mkForwardExt 2023-06-15 06:12:09 15656ac feat: port Analysis.InnerProductSpace.Spectrum (#5058) - [x] depends on: #4920 ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/InnerProductSpace/Spectrum.lean + theorem LinearMap.IsSymmetric.apply_eigenvectorBasis + theorem LinearMap.IsSymmetric.conj_eigenvalue_eq_self + theorem LinearMap.IsSymmetric.diagonalization_apply_self_apply + theorem LinearMap.IsSymmetric.diagonalization_symm_apply + theorem LinearMap.IsSymmetric.directSum_decompose_apply + theorem LinearMap.IsSymmetric.direct_sum_isInternal + theorem LinearMap.IsSymmetric.eigenvectorBasis_apply_self_apply + theorem LinearMap.IsSymmetric.hasEigenvalue_eigenvalues + theorem LinearMap.IsSymmetric.hasEigenvector_eigenvectorBasis + theorem LinearMap.IsSymmetric.invariant_orthogonalComplement_eigenspace + theorem LinearMap.IsSymmetric.orthogonalComplement_iSup_eigenspaces + theorem LinearMap.IsSymmetric.orthogonalComplement_iSup_eigenspaces_eq_bot' + theorem LinearMap.IsSymmetric.orthogonalComplement_iSup_eigenspaces_eq_bot + theorem LinearMap.IsSymmetric.orthogonalComplement_iSup_eigenspaces_invariant + theorem LinearMap.IsSymmetric.orthogonalFamily_eigenspaces' + theorem LinearMap.IsSymmetric.orthogonalFamily_eigenspaces + theorem eigenvalue_nonneg_of_nonneg + theorem eigenvalue_pos_of_pos + theorem inner_product_apply_eigenvector Modified Mathlib/LinearAlgebra/Eigenspace/Basic.lean + def Module.End.Eigenvalues.val 2023-06-15 05:48:38 990b386 feat: port Analysis.InnerProductSpace.Rayleigh (#4920) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/InnerProductSpace/Rayleigh.lean + theorem ContinuousLinearMap.iInf_rayleigh_eq_iInf_rayleigh_sphere + theorem ContinuousLinearMap.iSup_rayleigh_eq_iSup_rayleigh_sphere + theorem ContinuousLinearMap.image_rayleigh_eq_image_rayleigh_sphere + theorem ContinuousLinearMap.rayleigh_smul + theorem IsSelfAdjoint.eq_smul_self_of_isLocalExtrOn + theorem IsSelfAdjoint.eq_smul_self_of_isLocalExtrOn_real + theorem IsSelfAdjoint.hasEigenvector_of_isLocalExtrOn + theorem IsSelfAdjoint.hasEigenvector_of_isMaxOn + theorem IsSelfAdjoint.hasEigenvector_of_isMinOn + theorem IsSelfAdjoint.linearly_dependent_of_isLocalExtrOn + theorem LinearMap.IsSymmetric.hasEigenvalue_iInf_of_finiteDimensional + theorem LinearMap.IsSymmetric.hasEigenvalue_iSup_of_finiteDimensional + theorem LinearMap.IsSymmetric.hasStrictFDerivAt_reApplyInnerSelf + theorem LinearMap.IsSymmetric.subsingleton_of_no_eigenvalue_finiteDimensional 2023-06-15 04:49:15 29838ac feat: port RingTheory.RingHom.Surjective (#5066) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/RingTheory/RingHom/Surjective.lean + theorem RingHom.surjective_ofLocalizationSpan + theorem RingHom.surjective_respectsIso + theorem RingHom.surjective_stableUnderBaseChange + theorem RingHom.surjective_stableUnderComposition 2023-06-15 04:49:14 28ad0a6 chore: remove reducible from Function.Surjective (#5063) The @[reducible] attribute on `Function.Surjective` is apparently not needed, and currently prevents `@[simp]` lemmas with `Function.Surjective` side conditions from firing, see [zulip discussion](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/simp.20lemmas.20with.20side.20conditions). ESTIMATED CHANGES Modified Mathlib/Init/Function.lean +/- def Function.Surjective 2023-06-15 04:33:59 dd52d5f feat: port Algebra.Order.AbsoluteValue again (#3448) ESTIMATED CHANGES Modified Mathlib/Algebra/Order/AbsoluteValue.lean +/- def AbsoluteValue.Simps.apply +/- theorem AbsoluteValue.coe_toMulHom 2023-06-15 03:08:01 37e61f4 feat: port Order.Category.FinBddDistLatCat (#5051) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Order/Category/FinBddDistLatCat.lean + def FinBddDistLatCat.Iso.mk + def FinBddDistLatCat.dual + def FinBddDistLatCat.dualEquiv + def FinBddDistLatCat.of' + def FinBddDistLatCat.of + structure FinBddDistLatCat + theorem finBddDistLatCat_dual_comp_forget_to_bddDistLatCat 2023-06-15 03:08:00 8183aac feat: relax universe constraint in `AlgebraicGeometry/SheafedSpace` and `AlgebraicGeometry/RingedSpace` (#5047) ESTIMATED CHANGES Modified Mathlib/AlgebraicGeometry/LocallyRingedSpace.lean +/- structure AlgebraicGeometry.LocallyRingedSpace.Hom +/- theorem AlgebraicGeometry.LocallyRingedSpace.comp_val_c Modified Mathlib/AlgebraicGeometry/RingedSpace.lean Modified Mathlib/AlgebraicGeometry/SheafedSpace.lean +/- def AlgebraicGeometry.SheafedSpace.forgetToPresheafedSpace +/- theorem AlgebraicGeometry.SheafedSpace.id_base +/- def AlgebraicGeometry.SheafedSpace.restrict +/- def AlgebraicGeometry.SheafedSpace.sheaf +/- structure AlgebraicGeometry.SheafedSpace 2023-06-15 03:07:59 ac61d01 feat: port Order.Category.BoolAlgCat (#5023) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Order/Category/BoolAlgCat.lean + def BoolAlgCat.Iso.mk + theorem BoolAlgCat.coe_of + theorem BoolAlgCat.coe_toBddDistLatCat + def BoolAlgCat.dual + def BoolAlgCat.dualEquiv + def BoolAlgCat.of + def BoolAlgCat.toBddDistLatCat + def BoolAlgCat + theorem boolAlgCat_dual_comp_forget_to_bddDistLatCat 2023-06-15 02:56:17 00b77c0 feat: port RingTheory.LocalProperties (#5010) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/RingTheory/LocalProperties.lean + theorem Ideal.eq_of_localization_maximal + theorem Ideal.le_of_localization_maximal + theorem IsLocalization.exists_smul_mem_of_mem_adjoin + theorem IsLocalization.lift_mem_adjoin_finsetIntegerMultiple + theorem IsLocalization.smul_mem_finsetIntegerMultiple_span + def LocalizationPreserves + def OfLocalizationMaximal + def RingHom.HoldsForLocalizationAway + theorem RingHom.LocalizationPreserves.away + def RingHom.LocalizationPreserves + def RingHom.OfLocalizationFiniteSpan + def RingHom.OfLocalizationFiniteSpanTarget + def RingHom.OfLocalizationPrime + def RingHom.OfLocalizationSpan + def RingHom.OfLocalizationSpanTarget + theorem RingHom.PropertyIsLocal.ofLocalizationSpan + theorem RingHom.PropertyIsLocal.respectsIso + structure RingHom.PropertyIsLocal + theorem RingHom.ofLocalizationSpanTarget_iff_finite + theorem RingHom.ofLocalizationSpan_iff_finite + theorem eq_zero_of_localization + theorem finiteType_ofLocalizationSpan + theorem finite_ofLocalizationSpan + theorem ideal_eq_bot_of_localization' + theorem ideal_eq_bot_of_localization + theorem isReduced_ofLocalizationMaximal + theorem localizationPreserves_surjective + theorem localization_away_map_finite + theorem localization_away_map_finiteType + theorem localization_finite + theorem localization_finiteType + theorem localization_isReduced + theorem multiple_mem_adjoin_of_mem_localization_adjoin + theorem multiple_mem_span_of_mem_localization_span + theorem surjective_ofLocalizationSpan 2023-06-15 02:43:06 51a5ef1 feat: port Geometry.Euclidean.Angle.Sphere (#5054) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Geometry/Euclidean/Angle/Sphere.lean + theorem Affine.Triangle.circumsphere_eq_circumsphere_of_eq_of_eq_of_two_zsmul_oangle_eq + theorem Affine.Triangle.circumsphere_eq_of_dist_of_oangle + theorem Affine.Triangle.dist_div_sin_oangle_div_two_eq_circumradius + theorem Affine.Triangle.dist_div_sin_oangle_eq_two_mul_circumradius + theorem Affine.Triangle.inv_tan_div_two_smul_rotation_pi_div_two_vadd_midpoint_eq_circumcenter + theorem Affine.Triangle.mem_circumsphere_of_two_zsmul_oangle_eq + theorem EuclideanGeometry.Cospherical.two_zsmul_oangle_eq + theorem EuclideanGeometry.Sphere.abs_oangle_center_left_toReal_lt_pi_div_two + theorem EuclideanGeometry.Sphere.abs_oangle_center_right_toReal_lt_pi_div_two + theorem EuclideanGeometry.Sphere.dist_div_cos_oangle_center_div_two_eq_radius + theorem EuclideanGeometry.Sphere.dist_div_cos_oangle_center_eq_two_mul_radius + theorem EuclideanGeometry.Sphere.dist_div_sin_oangle_div_two_eq_radius + theorem EuclideanGeometry.Sphere.dist_div_sin_oangle_eq_two_mul_radius + theorem EuclideanGeometry.Sphere.inv_tan_div_two_smul_rotation_pi_div_two_vadd_midpoint_eq_center + theorem EuclideanGeometry.Sphere.oangle_center_eq_two_zsmul_oangle + theorem EuclideanGeometry.Sphere.oangle_eq_pi_sub_two_zsmul_oangle_center_left + theorem EuclideanGeometry.Sphere.oangle_eq_pi_sub_two_zsmul_oangle_center_right + theorem EuclideanGeometry.Sphere.tan_div_two_smul_rotation_pi_div_two_vadd_midpoint_eq_center + theorem EuclideanGeometry.Sphere.two_zsmul_oangle_center_add_two_zsmul_oangle_eq_pi + theorem EuclideanGeometry.Sphere.two_zsmul_oangle_eq + theorem EuclideanGeometry.concyclic_of_two_zsmul_oangle_eq_of_not_collinear + theorem EuclideanGeometry.concyclic_or_collinear_of_two_zsmul_oangle_eq + theorem EuclideanGeometry.cospherical_of_two_zsmul_oangle_eq_of_not_collinear + theorem EuclideanGeometry.cospherical_or_collinear_of_two_zsmul_oangle_eq + theorem Orientation.oangle_eq_two_zsmul_oangle_sub_of_norm_eq + theorem Orientation.oangle_eq_two_zsmul_oangle_sub_of_norm_eq_real + theorem Orientation.two_zsmul_oangle_sub_eq_two_zsmul_oangle_sub_of_norm_eq 2023-06-14 21:27:31 fc5d081 feat: port Order.Category.HeytAlgCat (#5021) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Category/Ring/Basic.lean Modified Mathlib/MeasureTheory/Category/MeasCat.lean Modified Mathlib/Order/Category/DistLatCat.lean Modified Mathlib/Order/Category/FrmCat.lean Added Mathlib/Order/Category/HeytAlgCat.lean + def HeytAlgCat.Iso.mk + theorem HeytAlgCat.coe_of + def HeytAlgCat.of + def HeytAlgCat Modified Mathlib/Order/Category/LinOrdCat.lean Modified Mathlib/Order/Category/NonemptyFinLinOrdCat.lean Modified Mathlib/Order/Category/PartOrdCat.lean Modified Mathlib/Order/Category/PreordCat.lean Modified Mathlib/Order/Heyting/Hom.lean Modified Mathlib/Topology/Category/TopCat/Basic.lean 2023-06-14 20:20:18 34a3845 feat: port Order.Category.CompleteLatCat (#5019) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Order/Category/BddOrdCat.lean Added Mathlib/Order/Category/CompleteLatCat.lean + def CompleteLatCat.Iso.mk + theorem CompleteLatCat.coe_of + def CompleteLatCat.dual + def CompleteLatCat.dualEquiv + def CompleteLatCat.of + def CompleteLatCat + theorem completeLatCat_dual_comp_forget_to_bddLatCat Modified Mathlib/Order/Category/SemilatCat.lean 2023-06-14 20:11:50 b75e009 feat: port Order.Category.BddDistLatCat (#5015) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Order/Category/BddDistLatCat.lean + def BddDistLatCat.Iso.mk + theorem BddDistLatCat.coe_of + theorem BddDistLatCat.coe_toBddLat + def BddDistLatCat.dual + def BddDistLatCat.dualEquiv + theorem BddDistLatCat.forget_bddLat_latCat_eq_forget_distLatCat_latCat + def BddDistLatCat.of + def BddDistLatCat.toBddLat + structure BddDistLatCat + theorem bddDistLatCat_dual_comp_forget_to_distLatCat 2023-06-14 15:16:12 b5e7466 feat: port Analysis.Complex.OpenMapping (#5050) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/Complex/OpenMapping.lean + theorem AnalyticAt.eventually_constant_or_nhds_le_map_nhds + theorem AnalyticAt.eventually_constant_or_nhds_le_map_nhds_aux + theorem AnalyticOn.is_constant_or_isOpen + theorem DiffContOnCl.ball_subset_image_closedBall 2023-06-14 15:16:11 1a0f4de feat: port AlgebraicGeometry.Scheme (#5040) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/AlgebraicGeometry/Scheme.lean + def AlgebraicGeometry.Scheme.Hom + def AlgebraicGeometry.Scheme.Spec + theorem AlgebraicGeometry.Scheme.app_eq + def AlgebraicGeometry.Scheme.basicOpen + theorem AlgebraicGeometry.Scheme.basicOpen_le + theorem AlgebraicGeometry.Scheme.basicOpen_mul + theorem AlgebraicGeometry.Scheme.basicOpen_of_isUnit + theorem AlgebraicGeometry.Scheme.basicOpen_res + theorem AlgebraicGeometry.Scheme.basicOpen_res_eq + theorem AlgebraicGeometry.Scheme.basicOpen_zero + theorem AlgebraicGeometry.Scheme.comp_coeBase + theorem AlgebraicGeometry.Scheme.comp_val + theorem AlgebraicGeometry.Scheme.comp_val_base + theorem AlgebraicGeometry.Scheme.comp_val_c_app + theorem AlgebraicGeometry.Scheme.congr_app + def AlgebraicGeometry.Scheme.empty.{u} + def AlgebraicGeometry.Scheme.forgetToLocallyRingedSpace + theorem AlgebraicGeometry.Scheme.forgetToLocallyRingedSpace_preimage + def AlgebraicGeometry.Scheme.forgetToTop + theorem AlgebraicGeometry.Scheme.id_app + theorem AlgebraicGeometry.Scheme.id_val_base + theorem AlgebraicGeometry.Scheme.inv_val_c_app + theorem AlgebraicGeometry.Scheme.mem_basicOpen + theorem AlgebraicGeometry.Scheme.mem_basicOpen_top + theorem AlgebraicGeometry.Scheme.preimage_basicOpen + def AlgebraicGeometry.Scheme.specMap + theorem AlgebraicGeometry.Scheme.specMap_comp + theorem AlgebraicGeometry.Scheme.specMap_id + def AlgebraicGeometry.Scheme.specObj + theorem AlgebraicGeometry.Scheme.specObj_toLocallyRingedSpace + def AlgebraicGeometry.Scheme.Γ + theorem AlgebraicGeometry.Scheme.Γ_def + theorem AlgebraicGeometry.Scheme.Γ_map + theorem AlgebraicGeometry.Scheme.Γ_map_op + theorem AlgebraicGeometry.Scheme.Γ_obj + theorem AlgebraicGeometry.Scheme.Γ_obj_op + structure AlgebraicGeometry.Scheme + theorem AlgebraicGeometry.basicOpen_eq_of_affine' + theorem AlgebraicGeometry.basicOpen_eq_of_affine 2023-06-14 15:16:10 b01598d feat: port Order.Category.BddLatCat (#5007) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Order/Category/BddLatCat.lean + def BddLatCat.Iso.mk + theorem BddLatCat.coe_forget_to_bddOrd + theorem BddLatCat.coe_forget_to_latCat + theorem BddLatCat.coe_forget_to_semilatInf + theorem BddLatCat.coe_forget_to_semilatSup + theorem BddLatCat.coe_of + def BddLatCat.dual + def BddLatCat.dualEquiv + theorem BddLatCat.forget_latCat_partOrdCat_eq_forget_bddOrd_partOrdCat + theorem BddLatCat.forget_semilatInf_partOrdCat_eq_forget_bddOrd_partOrdCat + theorem BddLatCat.forget_semilatSup_partOrdCat_eq_forget_bddOrd_partOrdCat + def BddLatCat.of + structure BddLatCat + theorem bddLatCat_dual_comp_forget_to_bddOrdCat + theorem bddLatCat_dual_comp_forget_to_latCat + theorem bddLatCat_dual_comp_forget_to_semilatInfCat + theorem bddLatCat_dual_comp_forget_to_semilatSupCat + def latToBddLatCat + def latToBddLatCatCompDualIsoDualCompLatToBddLatCat + def latToBddLatCatForgetAdjunction 2023-06-14 13:55:13 1164cf0 chore: convert lambda in docs to fun (#5045) Found with `git grep -n "λ [a-zA-Z_ ]*,"` ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/Spectrum.lean Modified Mathlib/Algebra/Algebra/Unitization.lean Modified Mathlib/Algebra/CovariantAndContravariant.lean Modified Mathlib/Algebra/DirectLimit.lean Modified Mathlib/Algebra/DirectSum/Internal.lean Modified Mathlib/Algebra/DirectSum/Ring.lean Modified Mathlib/Algebra/Hom/GroupInstances.lean Modified Mathlib/Algebra/Module/GradedModule.lean Modified Mathlib/Algebra/Order/Ring/Lemmas.lean Modified Mathlib/Analysis/Asymptotics/Asymptotics.lean Modified Mathlib/Analysis/BoxIntegral/DivergenceTheorem.lean Modified Mathlib/Analysis/Calculus/ContDiff.lean Modified Mathlib/Analysis/Calculus/Deriv/Basic.lean Modified Mathlib/Analysis/Calculus/FDeriv/Basic.lean Modified Mathlib/Analysis/Calculus/FDeriv/Mul.lean Modified Mathlib/Analysis/Calculus/FDeriv/Prod.lean Modified Mathlib/Analysis/Calculus/FDerivMeasurable.lean Modified Mathlib/Analysis/Calculus/ParametricIntegral.lean Modified Mathlib/Analysis/Complex/CauchyIntegral.lean Modified Mathlib/Analysis/Complex/Circle.lean Modified Mathlib/Analysis/Complex/PhragmenLindelof.lean Modified Mathlib/Analysis/Convex/Cone/Dual.lean Modified Mathlib/Analysis/Convex/SpecificFunctions/Basic.lean Modified Mathlib/Analysis/Fourier/FourierTransform.lean Modified Mathlib/Analysis/InnerProductSpace/Basic.lean Modified Mathlib/Analysis/InnerProductSpace/Symmetric.lean Modified Mathlib/Analysis/LocallyConvex/ContinuousOfBounded.lean Modified Mathlib/Analysis/NormedSpace/Pointwise.lean Modified Mathlib/CategoryTheory/Iso.lean Modified Mathlib/CategoryTheory/Limits/Shapes/WideEqualizers.lean Modified Mathlib/CategoryTheory/Monoidal/Category.lean Modified Mathlib/Combinatorics/Pigeonhole.lean Modified Mathlib/Control/Traversable/Basic.lean Modified Mathlib/Data/Dfinsupp/Basic.lean Modified Mathlib/Data/Fin/Tuple/NatAntidiagonal.lean Modified Mathlib/Data/Matrix/Basic.lean Modified Mathlib/Data/Nat/Digits.lean Modified Mathlib/Data/Ordmap/Ordnode.lean Modified Mathlib/Data/Polynomial/Basic.lean Modified Mathlib/Data/Real/ENNReal.lean Modified Mathlib/Data/Set/Image.lean Modified Mathlib/Data/Set/Prod.lean Modified Mathlib/GroupTheory/Schreier.lean Modified Mathlib/Init/Algebra/Classes.lean Modified Mathlib/LinearAlgebra/Finsupp.lean Modified Mathlib/LinearAlgebra/FinsuppVectorSpace.lean Modified Mathlib/LinearAlgebra/Matrix/ToLin.lean Modified Mathlib/LinearAlgebra/QuadraticForm/Basic.lean Modified Mathlib/LinearAlgebra/TensorProductBasis.lean Modified Mathlib/Logic/Embedding/Basic.lean Modified Mathlib/Logic/Equiv/Defs.lean Modified Mathlib/MeasureTheory/Function/AEEqFun.lean Modified Mathlib/MeasureTheory/Function/ContinuousMapDense.lean Modified Mathlib/MeasureTheory/Function/L2Space.lean Modified Mathlib/MeasureTheory/Function/StronglyMeasurable/Basic.lean Modified Mathlib/MeasureTheory/Group/Prod.lean Modified Mathlib/MeasureTheory/Integral/DivergenceTheorem.lean Modified Mathlib/MeasureTheory/Integral/FundThmCalculus.lean Modified Mathlib/MeasureTheory/Integral/IntegralEqImproper.lean Modified Mathlib/MeasureTheory/Integral/IntervalIntegral.lean Modified Mathlib/MeasureTheory/Integral/SetToL1.lean Modified Mathlib/MeasureTheory/Integral/TorusIntegral.lean Modified Mathlib/Order/Filter/AtTopBot.lean Modified Mathlib/Order/Filter/Bases.lean Modified Mathlib/Order/Filter/SmallSets.lean Modified Mathlib/Order/RelIso/Basic.lean Modified Mathlib/Probability/Kernel/Basic.lean Modified Mathlib/RingTheory/GradedAlgebra/Basic.lean Modified Mathlib/RingTheory/Polynomial/Bernstein.lean Modified Mathlib/RingTheory/WittVector/IsPoly.lean Modified Mathlib/RingTheory/WittVector/StructurePolynomial.lean Modified Mathlib/SetTheory/Ordinal/Principal.lean Modified Mathlib/Topology/Algebra/Module/FiniteDimension.lean Modified Mathlib/Topology/Algebra/Module/Multilinear.lean Modified Mathlib/Topology/Algebra/Polynomial.lean Modified Mathlib/Topology/Algebra/UniformMulAction.lean Modified Mathlib/Topology/Basic.lean Modified Mathlib/Topology/ContinuousFunction/Ideals.lean Modified Mathlib/Topology/ContinuousFunction/StoneWeierstrass.lean Modified Mathlib/Topology/MetricSpace/ShrinkingLemma.lean Modified Mathlib/Topology/UniformSpace/Basic.lean Modified Mathlib/Topology/UniformSpace/UniformConvergence.lean Modified Mathlib/Topology/UniformSpace/UniformConvergenceTopology.lean Modified Mathlib/Topology/VectorBundle/Constructions.lean 2023-06-14 13:55:11 171c84a feat: port Geometry.Euclidean.Angle.Oriented.RightAngle (#5043) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Geometry/Euclidean/Angle/Oriented/RightAngle.lean + theorem EuclideanGeometry.cos_oangle_left_mul_dist_of_oangle_eq_pi_div_two + theorem EuclideanGeometry.cos_oangle_left_of_oangle_eq_pi_div_two + theorem EuclideanGeometry.cos_oangle_right_mul_dist_of_oangle_eq_pi_div_two + theorem EuclideanGeometry.cos_oangle_right_of_oangle_eq_pi_div_two + theorem EuclideanGeometry.dist_div_cos_oangle_left_of_oangle_eq_pi_div_two + theorem EuclideanGeometry.dist_div_cos_oangle_right_of_oangle_eq_pi_div_two + theorem EuclideanGeometry.dist_div_sin_oangle_left_of_oangle_eq_pi_div_two + theorem EuclideanGeometry.dist_div_sin_oangle_right_of_oangle_eq_pi_div_two + theorem EuclideanGeometry.dist_div_tan_oangle_left_of_oangle_eq_pi_div_two + theorem EuclideanGeometry.dist_div_tan_oangle_right_of_oangle_eq_pi_div_two + theorem EuclideanGeometry.oangle_left_eq_arccos_of_oangle_eq_pi_div_two + theorem EuclideanGeometry.oangle_left_eq_arcsin_of_oangle_eq_pi_div_two + theorem EuclideanGeometry.oangle_left_eq_arctan_of_oangle_eq_pi_div_two + theorem EuclideanGeometry.oangle_right_eq_arccos_of_oangle_eq_pi_div_two + theorem EuclideanGeometry.oangle_right_eq_arcsin_of_oangle_eq_pi_div_two + theorem EuclideanGeometry.oangle_right_eq_arctan_of_oangle_eq_pi_div_two + theorem EuclideanGeometry.sin_oangle_left_mul_dist_of_oangle_eq_pi_div_two + theorem EuclideanGeometry.sin_oangle_left_of_oangle_eq_pi_div_two + theorem EuclideanGeometry.sin_oangle_right_mul_dist_of_oangle_eq_pi_div_two + theorem EuclideanGeometry.sin_oangle_right_of_oangle_eq_pi_div_two + theorem EuclideanGeometry.tan_oangle_left_mul_dist_of_oangle_eq_pi_div_two + theorem EuclideanGeometry.tan_oangle_left_of_oangle_eq_pi_div_two + theorem EuclideanGeometry.tan_oangle_right_mul_dist_of_oangle_eq_pi_div_two + theorem EuclideanGeometry.tan_oangle_right_of_oangle_eq_pi_div_two + theorem Orientation.cos_oangle_add_left_mul_norm_of_oangle_eq_pi_div_two + theorem Orientation.cos_oangle_add_left_of_oangle_eq_pi_div_two + theorem Orientation.cos_oangle_add_right_mul_norm_of_oangle_eq_pi_div_two + theorem Orientation.cos_oangle_add_right_of_oangle_eq_pi_div_two + theorem Orientation.cos_oangle_sub_left_mul_norm_of_oangle_eq_pi_div_two + theorem Orientation.cos_oangle_sub_left_of_oangle_eq_pi_div_two + theorem Orientation.cos_oangle_sub_right_mul_norm_of_oangle_eq_pi_div_two + theorem Orientation.cos_oangle_sub_right_of_oangle_eq_pi_div_two + theorem Orientation.norm_div_cos_oangle_add_left_of_oangle_eq_pi_div_two + theorem Orientation.norm_div_cos_oangle_add_right_of_oangle_eq_pi_div_two + theorem Orientation.norm_div_cos_oangle_sub_left_of_oangle_eq_pi_div_two + theorem Orientation.norm_div_cos_oangle_sub_right_of_oangle_eq_pi_div_two + theorem Orientation.norm_div_sin_oangle_add_left_of_oangle_eq_pi_div_two + theorem Orientation.norm_div_sin_oangle_add_right_of_oangle_eq_pi_div_two + theorem Orientation.norm_div_sin_oangle_sub_left_of_oangle_eq_pi_div_two + theorem Orientation.norm_div_sin_oangle_sub_right_of_oangle_eq_pi_div_two + theorem Orientation.norm_div_tan_oangle_add_left_of_oangle_eq_pi_div_two + theorem Orientation.norm_div_tan_oangle_add_right_of_oangle_eq_pi_div_two + theorem Orientation.norm_div_tan_oangle_sub_left_of_oangle_eq_pi_div_two + theorem Orientation.norm_div_tan_oangle_sub_right_of_oangle_eq_pi_div_two + theorem Orientation.oangle_add_left_eq_arccos_of_oangle_eq_pi_div_two + theorem Orientation.oangle_add_left_eq_arcsin_of_oangle_eq_pi_div_two + theorem Orientation.oangle_add_left_eq_arctan_of_oangle_eq_pi_div_two + theorem Orientation.oangle_add_left_smul_rotation_pi_div_two + theorem Orientation.oangle_add_right_eq_arccos_of_oangle_eq_pi_div_two + theorem Orientation.oangle_add_right_eq_arcsin_of_oangle_eq_pi_div_two + theorem Orientation.oangle_add_right_eq_arctan_of_oangle_eq_pi_div_two + theorem Orientation.oangle_add_right_smul_rotation_pi_div_two + theorem Orientation.oangle_sub_left_eq_arccos_of_oangle_eq_pi_div_two + theorem Orientation.oangle_sub_left_eq_arcsin_of_oangle_eq_pi_div_two + theorem Orientation.oangle_sub_left_eq_arctan_of_oangle_eq_pi_div_two + theorem Orientation.oangle_sub_left_smul_rotation_pi_div_two + theorem Orientation.oangle_sub_right_eq_arccos_of_oangle_eq_pi_div_two + theorem Orientation.oangle_sub_right_eq_arcsin_of_oangle_eq_pi_div_two + theorem Orientation.oangle_sub_right_eq_arctan_of_oangle_eq_pi_div_two + theorem Orientation.oangle_sub_right_smul_rotation_pi_div_two + theorem Orientation.sin_oangle_add_left_mul_norm_of_oangle_eq_pi_div_two + theorem Orientation.sin_oangle_add_left_of_oangle_eq_pi_div_two + theorem Orientation.sin_oangle_add_right_mul_norm_of_oangle_eq_pi_div_two + theorem Orientation.sin_oangle_add_right_of_oangle_eq_pi_div_two + theorem Orientation.sin_oangle_sub_left_mul_norm_of_oangle_eq_pi_div_two + theorem Orientation.sin_oangle_sub_left_of_oangle_eq_pi_div_two + theorem Orientation.sin_oangle_sub_right_mul_norm_of_oangle_eq_pi_div_two + theorem Orientation.sin_oangle_sub_right_of_oangle_eq_pi_div_two + theorem Orientation.tan_oangle_add_left_mul_norm_of_oangle_eq_pi_div_two + theorem Orientation.tan_oangle_add_left_of_oangle_eq_pi_div_two + theorem Orientation.tan_oangle_add_left_smul_rotation_pi_div_two + theorem Orientation.tan_oangle_add_right_mul_norm_of_oangle_eq_pi_div_two + theorem Orientation.tan_oangle_add_right_of_oangle_eq_pi_div_two + theorem Orientation.tan_oangle_add_right_smul_rotation_pi_div_two + theorem Orientation.tan_oangle_sub_left_mul_norm_of_oangle_eq_pi_div_two + theorem Orientation.tan_oangle_sub_left_of_oangle_eq_pi_div_two + theorem Orientation.tan_oangle_sub_right_mul_norm_of_oangle_eq_pi_div_two + theorem Orientation.tan_oangle_sub_right_of_oangle_eq_pi_div_two 2023-06-14 13:55:10 1e72d19 chore: forward-port leanprover-community/mathlib#19179 (#5022) Strangely, making one proof use fewer simp lemmas has made the proof slower (and the hearbeats have been bumped accordingly) ESTIMATED CHANGES Modified Mathlib/FieldTheory/Normal.lean Modified Mathlib/FieldTheory/SplittingField/IsSplittingField.lean + theorem Polynomial.IsSplittingField.adjoin_rootSet - theorem Polynomial.IsSplittingField.adjoin_roots 2023-06-14 13:55:09 6b93a4a feat: port Geometry.Euclidean.Circumcenter (#4446) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Data/Set/Basic.lean Added Mathlib/Geometry/Euclidean/Circumcenter.lean + inductive Affine.Simplex.PointsWithCircumcenterIndex + def Affine.Simplex.centroidWeightsWithCircumcenter + theorem Affine.Simplex.centroid_eq_affineCombination_of_pointsWithCircumcenter + def Affine.Simplex.circumcenter + def Affine.Simplex.circumcenterWeightsWithCircumcenter + theorem Affine.Simplex.circumcenter_eq_affineCombination_of_pointsWithCircumcenter + theorem Affine.Simplex.circumcenter_eq_centroid + theorem Affine.Simplex.circumcenter_eq_of_range_eq + theorem Affine.Simplex.circumcenter_eq_point + theorem Affine.Simplex.circumcenter_mem_affineSpan + theorem Affine.Simplex.circumcenter_reindex + def Affine.Simplex.circumradius + theorem Affine.Simplex.circumradius_nonneg + theorem Affine.Simplex.circumradius_pos + theorem Affine.Simplex.circumradius_reindex + def Affine.Simplex.circumsphere + theorem Affine.Simplex.circumsphere_center + theorem Affine.Simplex.circumsphere_radius + theorem Affine.Simplex.circumsphere_reindex + theorem Affine.Simplex.circumsphere_unique_dist_eq + theorem Affine.Simplex.coe_orthogonalProjection_vadd_smul_vsub_orthogonalProjection + theorem Affine.Simplex.dist_circumcenter_eq_circumradius' + theorem Affine.Simplex.dist_circumcenter_eq_circumradius + theorem Affine.Simplex.dist_circumcenter_sq_eq_sq_sub_circumradius + theorem Affine.Simplex.dist_sq_eq_dist_orthogonalProjection_sq_add_dist_orthogonalProjection_sq + theorem Affine.Simplex.eq_circumcenter_of_dist_eq + theorem Affine.Simplex.eq_circumradius_of_dist_eq + theorem Affine.Simplex.mem_circumsphere + def Affine.Simplex.orthogonalProjectionSpan + theorem Affine.Simplex.orthogonalProjection_circumcenter + theorem Affine.Simplex.orthogonalProjection_eq_circumcenter_of_dist_eq + theorem Affine.Simplex.orthogonalProjection_eq_circumcenter_of_exists_dist_eq + theorem Affine.Simplex.orthogonalProjection_vadd_smul_vsub_orthogonalProjection + def Affine.Simplex.pointIndexEmbedding + def Affine.Simplex.pointWeightsWithCircumcenter + theorem Affine.Simplex.point_eq_affineCombination_of_pointsWithCircumcenter + def Affine.Simplex.pointsWithCircumcenter + theorem Affine.Simplex.pointsWithCircumcenter_eq_circumcenter + theorem Affine.Simplex.pointsWithCircumcenter_point + def Affine.Simplex.reflectionCircumcenterWeightsWithCircumcenter + theorem Affine.Simplex.reflection_circumcenter_eq_affineCombination_of_pointsWithCircumcenter + theorem Affine.Simplex.sum_centroidWeightsWithCircumcenter + theorem Affine.Simplex.sum_circumcenterWeightsWithCircumcenter + theorem Affine.Simplex.sum_pointWeightsWithCircumcenter + theorem Affine.Simplex.sum_pointsWithCircumcenter + theorem Affine.Simplex.sum_reflectionCircumcenterWeightsWithCircumcenter + theorem AffineIndependent.existsUnique_dist_eq + theorem EuclideanGeometry.circumcenter_eq_of_cospherical + theorem EuclideanGeometry.circumcenter_eq_of_cospherical_subset + theorem EuclideanGeometry.circumradius_eq_of_cospherical + theorem EuclideanGeometry.circumradius_eq_of_cospherical_subset + theorem EuclideanGeometry.circumsphere_eq_of_cospherical + theorem EuclideanGeometry.circumsphere_eq_of_cospherical_subset + theorem EuclideanGeometry.cospherical_iff_exists_mem_of_complete + theorem EuclideanGeometry.cospherical_iff_exists_mem_of_finiteDimensional + theorem EuclideanGeometry.dist_eq_iff_dist_orthogonalProjection_eq + theorem EuclideanGeometry.dist_set_eq_iff_dist_orthogonalProjection_eq + theorem EuclideanGeometry.eq_or_eq_reflection_of_dist_eq + theorem EuclideanGeometry.existsUnique_dist_eq_of_insert + theorem EuclideanGeometry.exists_circumcenter_eq_of_cospherical + theorem EuclideanGeometry.exists_circumcenter_eq_of_cospherical_subset + theorem EuclideanGeometry.exists_circumradius_eq_of_cospherical + theorem EuclideanGeometry.exists_circumradius_eq_of_cospherical_subset + theorem EuclideanGeometry.exists_circumsphere_eq_of_cospherical + theorem EuclideanGeometry.exists_circumsphere_eq_of_cospherical_subset + theorem EuclideanGeometry.exists_dist_eq_iff_exists_dist_orthogonalProjection_eq 2023-06-14 12:28:10 282f807 chore: rename `library_search`/`propose`/`rewrites` to `apply?`/`have?`/`rw?` (#4885) Also adds `exact?` which is like `apply?` but fails if it can't close the goal. ESTIMATED CHANGES Modified Mathlib/Tactic/LibrarySearch.lean + def Mathlib.Tactic.LibrarySearch.exact? Modified Mathlib/Tactic/Propose.lean Modified Mathlib/Tactic/Rewrites.lean Modified test/LibrarySearch/IsCompact.lean Modified test/LibrarySearch/basic.lean Modified test/propose.lean Modified test/rewrites.lean 2023-06-14 11:40:54 d275e65 feat: port Analysis.SpecialFunctions.Gamma.Basic (#5042) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/SpecialFunctions/Gamma/Basic.lean + def Complex.Gamma + theorem Complex.GammaAux_recurrence1 + theorem Complex.GammaAux_recurrence2 + def Complex.GammaIntegral + theorem Complex.GammaIntegral_add_one + theorem Complex.GammaIntegral_conj + theorem Complex.GammaIntegral_convergent + theorem Complex.GammaIntegral_eq_mellin + theorem Complex.GammaIntegral_ofReal + theorem Complex.GammaIntegral_one + theorem Complex.Gamma_add_one + theorem Complex.Gamma_conj + theorem Complex.Gamma_eq_GammaAux + theorem Complex.Gamma_eq_integral + theorem Complex.Gamma_nat_eq_factorial + theorem Complex.Gamma_neg_nat_eq_zero + theorem Complex.Gamma_ofReal + theorem Complex.Gamma_one + theorem Complex.Gamma_zero + theorem Complex.differentiableAt_Gamma + theorem Complex.differentiableAt_GammaAux + theorem Complex.hasDerivAt_GammaIntegral + def Complex.partialGamma + theorem Complex.partialGamma_add_one + theorem Complex.tendsto_partialGamma + theorem Complex.tendsto_self_mul_Gamma_nhds_zero + def Real.Gamma + theorem Real.GammaIntegral_convergent + theorem Real.Gamma_add_one + theorem Real.Gamma_eq_integral + theorem Real.Gamma_eq_zero_iff + theorem Real.Gamma_integrand_isLittleO + theorem Real.Gamma_nat_eq_factorial + theorem Real.Gamma_ne_zero + theorem Real.Gamma_neg_nat_eq_zero + theorem Real.Gamma_one + theorem Real.Gamma_pos_of_pos + theorem Real.Gamma_zero + theorem Real.differentiableAt_Gamma 2023-06-14 11:40:53 78426b9 feat: port Topology.Gluing (#3987) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Topology/ContinuousFunction/Basic.lean Added Mathlib/Topology/Gluing.lean + def TopCat.GlueData.MkCore.t' + theorem TopCat.GlueData.MkCore.t_inv + structure TopCat.GlueData.MkCore + def TopCat.GlueData.Rel + theorem TopCat.GlueData.eqvGen_of_π_eq + def TopCat.GlueData.fromOpenSubsetsGlue + theorem TopCat.GlueData.fromOpenSubsetsGlue_injective + theorem TopCat.GlueData.fromOpenSubsetsGlue_isOpenMap + theorem TopCat.GlueData.fromOpenSubsetsGlue_openEmbedding + theorem TopCat.GlueData.image_inter + theorem TopCat.GlueData.isOpen_iff + def TopCat.GlueData.mk' + def TopCat.GlueData.ofOpenSubsets + def TopCat.GlueData.openCoverGlueHomeo + theorem TopCat.GlueData.open_image_open + theorem TopCat.GlueData.preimage_image_eq_image' + theorem TopCat.GlueData.preimage_image_eq_image + theorem TopCat.GlueData.preimage_range + theorem TopCat.GlueData.range_fromOpenSubsetsGlue + theorem TopCat.GlueData.rel_equiv + theorem TopCat.GlueData.ι_eq_iff_rel + theorem TopCat.GlueData.ι_fromOpenSubsetsGlue + theorem TopCat.GlueData.ι_injective + theorem TopCat.GlueData.ι_jointly_surjective + theorem TopCat.GlueData.ι_openEmbedding + theorem TopCat.GlueData.π_surjective + structure TopCat.GlueData 2023-06-14 11:22:36 817852e rfc: have casesm fail by default if it makes no progress (#4774) ESTIMATED CHANGES Modified Mathlib/Data/Num/Lemmas.lean Modified Mathlib/Tactic/CasesM.lean Modified Mathlib/Tactic/Tauto.lean Modified test/casesm.lean 2023-06-14 11:00:35 253d2d8 feat: port Analysis.Analytic.IsolatedZeros (#5038) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/Analytic/IsolatedZeros.lean + theorem AnalyticAt.eventually_eq_or_eventually_ne + theorem AnalyticAt.eventually_eq_zero_or_eventually_ne_zero + theorem AnalyticAt.frequently_eq_iff_eventually_eq + theorem AnalyticAt.frequently_zero_iff_eventually_zero + theorem AnalyticOn.eqOn_of_preconnected_of_frequently_eq + theorem AnalyticOn.eqOn_of_preconnected_of_mem_closure + theorem AnalyticOn.eqOn_zero_of_preconnected_of_frequently_eq_zero + theorem AnalyticOn.eqOn_zero_of_preconnected_of_mem_closure + theorem AnalyticOn.eq_of_frequently_eq + theorem HasFPowerSeriesAt.eq_pow_order_mul_iterate_dslope + theorem HasFPowerSeriesAt.has_fpower_series_dslope_fslope + theorem HasFPowerSeriesAt.has_fpower_series_iterate_dslope_fslope + theorem HasFPowerSeriesAt.iterate_dslope_fslope_ne_zero + theorem HasFPowerSeriesAt.locally_ne_zero + theorem HasFPowerSeriesAt.locally_zero_iff + theorem HasSum.exists_hasSum_smul_of_apply_eq_zero + theorem HasSum.hasSum_at_zero 2023-06-14 10:48:52 8663fc7 feat: port Geometry.Euclidean.Sphere.Ptolemy (#5037) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Geometry/Euclidean/Sphere/Ptolemy.lean + theorem EuclideanGeometry.mul_dist_add_mul_dist_eq_mul_dist_of_cospherical 2023-06-14 07:51:17 d746104 feat: port CategoryTheory.Monoidal.CommMon_ (#5012) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/CategoryTheory/Monoidal/Braided.lean + theorem CategoryTheory.BraidedFunctor.ext' + theorem CategoryTheory.LaxBraidedFunctor.ext' Added Mathlib/CategoryTheory/Monoidal/CommMon_.lean + def CategoryTheory.LaxBraidedFunctor.mapCommMon + def CategoryTheory.LaxBraidedFunctor.mapCommMonFunctor + def CommMon_.EquivLaxBraidedFunctorPunit.commMonToLaxBraided + def CommMon_.EquivLaxBraidedFunctorPunit.counitIso + def CommMon_.EquivLaxBraidedFunctorPunit.laxBraidedToCommMon + def CommMon_.EquivLaxBraidedFunctorPunit.unitIso + theorem CommMon_.comp' + theorem CommMon_.comp_hom + def CommMon_.equivLaxBraidedFunctorPunit + def CommMon_.forget₂Mon_ + theorem CommMon_.forget₂_Mon_map_hom + theorem CommMon_.forget₂_Mon_obj_mul + theorem CommMon_.forget₂_Mon_obj_one + theorem CommMon_.hom_ext + theorem CommMon_.id' + theorem CommMon_.id_hom + def CommMon_.trivial + structure CommMon_ 2023-06-14 07:51:16 d8c9d31 feat: port Algebra.Homology.Module (#5000) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Category/ModuleCat/Subobject.lean Modified Mathlib/Algebra/Homology/ImageToKernel.lean + theorem homology.π_map_apply + theorem imageToKernel_arrow_apply Added Mathlib/Algebra/Homology/ModuleCat.lean + theorem ModuleCat.cyclesMap_toCycles + theorem ModuleCat.cycles_ext + theorem ModuleCat.homology_ext' + theorem ModuleCat.homology_ext 2023-06-14 07:38:10 798cd59 feat: port Geometry.Euclidean.Triangle (#5036) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Geometry/Euclidean/Triangle.lean + theorem EuclideanGeometry.angle_add_angle_add_angle_eq_pi + theorem EuclideanGeometry.angle_eq_angle_of_dist_eq + theorem EuclideanGeometry.dist_eq_of_angle_eq_angle_of_angle_ne_pi + theorem EuclideanGeometry.dist_mul_of_eq_angle_of_dist_mul + theorem EuclideanGeometry.dist_sq_add_dist_sq_eq_two_mul_dist_midpoint_sq_add_half_dist_sq + theorem EuclideanGeometry.dist_sq_eq_dist_sq_add_dist_sq_sub_two_mul_dist_mul_dist_mul_cos_angle + theorem EuclideanGeometry.dist_sq_mul_dist_add_dist_sq_mul_dist + theorem EuclideanGeometry.oangle_add_oangle_add_oangle_eq_pi + theorem InnerProductGeometry.angle_add_angle_sub_add_angle_sub_eq_pi + theorem InnerProductGeometry.angle_sub_eq_angle_sub_rev_of_norm_eq + theorem InnerProductGeometry.cos_angle_add_angle_sub_add_angle_sub_eq_neg_one + theorem InnerProductGeometry.cos_angle_sub_add_angle_sub_rev_eq_neg_cos_angle + theorem InnerProductGeometry.norm_eq_of_angle_sub_eq_angle_sub_rev_of_angle_ne_pi + theorem InnerProductGeometry.norm_sub_sq_eq_norm_sq_add_norm_sq_sub_two_mul_norm_mul_norm_mul_cos_angle + theorem InnerProductGeometry.sin_angle_add_angle_sub_add_angle_sub_eq_zero + theorem InnerProductGeometry.sin_angle_sub_add_angle_sub_rev_eq_sin_angle 2023-06-14 07:38:09 7349ffd feat: port Algebra.Lie.Weights (#4988) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Lie/Weights.lean + theorem LieAlgebra.coe_rootSpaceWeightSpaceProduct_tmul + theorem LieAlgebra.coe_zeroRootSubalgebra + theorem LieAlgebra.is_cartan_of_zeroRootSubalgebra_eq + theorem LieAlgebra.le_zeroRootSubalgebra + theorem LieAlgebra.lie_mem_weightSpace_of_mem_weightSpace + theorem LieAlgebra.mem_zeroRootSubalgebra + def LieAlgebra.rootSpaceProduct + theorem LieAlgebra.rootSpaceProduct_def + theorem LieAlgebra.rootSpaceProduct_tmul + def LieAlgebra.rootSpaceWeightSpaceProduct + def LieAlgebra.rootSpaceWeightSpaceProductAux + theorem LieAlgebra.rootSpace_comap_eq_weightSpace + theorem LieAlgebra.toLieSubmodule_le_rootSpace_zero + def LieAlgebra.zeroRootSubalgebra + theorem LieAlgebra.zeroRootSubalgebra_eq_iff_is_cartan + theorem LieAlgebra.zeroRootSubalgebra_eq_of_is_cartan + theorem LieAlgebra.zeroRootSubalgebra_normalizer_eq_self + theorem LieAlgebra.zero_rootSpace_eq_top_of_nilpotent + def LieModule.IsWeight + theorem LieModule.coe_weightSpace' + theorem LieModule.coe_weightSpace_of_top + theorem LieModule.exists_preWeightSpace_zero_le_ker_of_isNoetherian + theorem LieModule.isNilpotent_toEndomorphism_weightSpace_zero + theorem LieModule.isWeight_zero_of_nilpotent + theorem LieModule.lie_mem_preWeightSpace_of_mem_preWeightSpace + theorem LieModule.mem_preWeightSpace + theorem LieModule.mem_weightSpace + def LieModule.preWeightSpace + def LieModule.weightSpace' + def LieModule.weightSpace + theorem LieModule.zero_weightSpace_eq_top_of_nilpotent' + theorem LieModule.zero_weightSpace_eq_top_of_nilpotent 2023-06-14 07:27:14 9558b65 chore: clean up porting notes about op_induction (#5035) Closes #4551. Essentially `op_induction` is not necessary, now that `Opposite.rec'` is labelled with `@[eliminator]`. It would be nice if we could use this from inside `aesop`, see https://github.com/JLimperg/aesop/issues/59. ESTIMATED CHANGES Modified Mathlib/AlgebraicGeometry/PresheafedSpace.lean Modified Mathlib/AlgebraicGeometry/SheafedSpace.lean Modified Mathlib/AlgebraicGeometry/Stalks.lean Modified Mathlib/Mathport/Syntax.lean Modified Mathlib/Topology/Sheaves/Presheaf.lean Modified Mathlib/Topology/Sheaves/Stalks.lean 2023-06-14 06:27:22 6054b3d feat: port Analysis.MellinTransform (#4932) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/MellinTransform.lean + theorem Complex.cpow_mul_ofReal_nonneg + def HasMellin + theorem MellinConvergent.comp_mul_left + theorem MellinConvergent.comp_rpow + theorem MellinConvergent.const_smul + theorem MellinConvergent.cpow_smul + def MellinConvergent + theorem hasMellin_add + theorem hasMellin_cpow_Ioc + theorem hasMellin_one_Ioc + theorem hasMellin_sub + theorem isBigO_rpow_top_log_smul + theorem isBigO_rpow_zero_log_smul + def mellin + theorem mellinConvergent_of_isBigO_rpow + theorem mellinConvergent_of_isBigO_rpow_exp + theorem mellin_comp_inv + theorem mellin_comp_mul_left + theorem mellin_comp_mul_right + theorem mellin_comp_rpow + theorem mellin_const_smul + theorem mellin_convergent_iff_norm + theorem mellin_convergent_of_isBigO_scalar + theorem mellin_convergent_top_of_isBigO + theorem mellin_convergent_zero_of_isBigO + theorem mellin_cpow_smul + theorem mellin_differentiableAt_of_isBigO_rpow + theorem mellin_differentiableAt_of_isBigO_rpow_exp + theorem mellin_div_const + theorem mellin_hasDerivAt_of_isBigO_rpow 2023-06-14 06:16:51 591ade4 feat: IO.waitAny', that also returns the remaining tasks (#3620) Also `List.waitAll` that turns a `List (Task α)` into a `Task (List α)`. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Lean/System/IO.lean + def IO.waitAny' + def List.waitAll 2023-06-14 06:06:18 18107fe feat: reading from files and processes as lazy lists (#3617) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Data/ListM/IO.lean + def ListM.lines + def ListM.linesFromHandle + def ListM.runCmd 2023-06-14 04:35:44 65535ab feat: port Geometry.Euclidean.Angle.Oriented.Affine (#5016) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Geometry/Euclidean/Angle/Oriented/Affine.lean + theorem AffineSubspace.SOppSide.oangle_sign_eq_neg + theorem AffineSubspace.SSameSide.oangle_sign_eq + theorem Collinear.oangle_sign_of_sameRay_vsub + theorem Collinear.two_zsmul_oangle_eq_left + theorem Collinear.two_zsmul_oangle_eq_right + theorem EuclideanGeometry.abs_oangle_left_toReal_lt_pi_div_two_of_dist_eq + theorem EuclideanGeometry.abs_oangle_right_toReal_lt_pi_div_two_of_dist_eq + theorem EuclideanGeometry.affineIndependent_iff_of_two_zsmul_oangle_eq + theorem EuclideanGeometry.angle_eq_abs_oangle_toReal + theorem EuclideanGeometry.angle_eq_iff_oangle_eq_of_sign_eq + theorem EuclideanGeometry.angle_eq_pi_div_two_of_oangle_eq_neg_pi_div_two + theorem EuclideanGeometry.angle_eq_pi_div_two_of_oangle_eq_pi_div_two + theorem EuclideanGeometry.angle_rev_eq_pi_div_two_of_oangle_eq_neg_pi_div_two + theorem EuclideanGeometry.angle_rev_eq_pi_div_two_of_oangle_eq_pi_div_two + theorem EuclideanGeometry.collinear_iff_of_two_zsmul_oangle_eq + theorem EuclideanGeometry.continuousAt_oangle + theorem EuclideanGeometry.cos_oangle_eq_cos_angle + theorem EuclideanGeometry.dist_eq_iff_eq_smul_rotation_pi_div_two_vadd_midpoint + theorem EuclideanGeometry.eq_zero_or_angle_eq_zero_or_pi_of_sign_oangle_eq_zero + theorem EuclideanGeometry.left_ne_of_oangle_eq_neg_pi_div_two + theorem EuclideanGeometry.left_ne_of_oangle_eq_pi + theorem EuclideanGeometry.left_ne_of_oangle_eq_pi_div_two + theorem EuclideanGeometry.left_ne_of_oangle_ne_zero + theorem EuclideanGeometry.left_ne_of_oangle_sign_eq_neg_one + theorem EuclideanGeometry.left_ne_of_oangle_sign_eq_one + theorem EuclideanGeometry.left_ne_of_oangle_sign_ne_zero + theorem EuclideanGeometry.left_ne_right_of_oangle_eq_neg_pi_div_two + theorem EuclideanGeometry.left_ne_right_of_oangle_eq_pi + theorem EuclideanGeometry.left_ne_right_of_oangle_eq_pi_div_two + theorem EuclideanGeometry.left_ne_right_of_oangle_ne_zero + theorem EuclideanGeometry.left_ne_right_of_oangle_sign_eq_neg_one + theorem EuclideanGeometry.left_ne_right_of_oangle_sign_eq_one + theorem EuclideanGeometry.left_ne_right_of_oangle_sign_ne_zero + def EuclideanGeometry.oangle + theorem EuclideanGeometry.oangle_add + theorem EuclideanGeometry.oangle_add_cyc3 + theorem EuclideanGeometry.oangle_add_oangle_rev + theorem EuclideanGeometry.oangle_add_swap + theorem EuclideanGeometry.oangle_eq_angle_of_sign_eq_one + theorem EuclideanGeometry.oangle_eq_angle_or_eq_neg_angle + theorem EuclideanGeometry.oangle_eq_neg_angle_of_sign_eq_neg_one + theorem EuclideanGeometry.oangle_eq_oangle_of_dist_eq + theorem EuclideanGeometry.oangle_eq_of_angle_eq_of_sign_eq + theorem EuclideanGeometry.oangle_eq_pi_iff_angle_eq_pi + theorem EuclideanGeometry.oangle_eq_pi_iff_oangle_rev_eq_pi + theorem EuclideanGeometry.oangle_eq_pi_iff_sbtw + theorem EuclideanGeometry.oangle_eq_pi_sub_two_zsmul_oangle_of_dist_eq + theorem EuclideanGeometry.oangle_eq_zero_iff_angle_eq_zero + theorem EuclideanGeometry.oangle_eq_zero_iff_oangle_rev_eq_zero + theorem EuclideanGeometry.oangle_eq_zero_iff_wbtw + theorem EuclideanGeometry.oangle_eq_zero_or_eq_pi_iff_collinear + theorem EuclideanGeometry.oangle_midpoint_left + theorem EuclideanGeometry.oangle_midpoint_rev_left + theorem EuclideanGeometry.oangle_midpoint_rev_right + theorem EuclideanGeometry.oangle_midpoint_right + theorem EuclideanGeometry.oangle_ne_zero_and_ne_pi_iff_affineIndependent + theorem EuclideanGeometry.oangle_rev + theorem EuclideanGeometry.oangle_rotate_sign + theorem EuclideanGeometry.oangle_self_left + theorem EuclideanGeometry.oangle_self_left_right + theorem EuclideanGeometry.oangle_self_right + theorem EuclideanGeometry.oangle_sub_left + theorem EuclideanGeometry.oangle_sub_right + theorem EuclideanGeometry.oangle_swap₁₂_sign + theorem EuclideanGeometry.oangle_swap₁₃_sign + theorem EuclideanGeometry.oangle_swap₂₃_sign + theorem EuclideanGeometry.right_ne_of_oangle_eq_neg_pi_div_two + theorem EuclideanGeometry.right_ne_of_oangle_eq_pi + theorem EuclideanGeometry.right_ne_of_oangle_eq_pi_div_two + theorem EuclideanGeometry.right_ne_of_oangle_ne_zero + theorem EuclideanGeometry.right_ne_of_oangle_sign_eq_neg_one + theorem EuclideanGeometry.right_ne_of_oangle_sign_eq_one + theorem EuclideanGeometry.right_ne_of_oangle_sign_ne_zero + theorem EuclideanGeometry.two_zsmul_oangle_of_parallel + theorem EuclideanGeometry.two_zsmul_oangle_of_vectorSpan_eq + theorem Sbtw.oangle_eq_add_pi_left + theorem Sbtw.oangle_eq_add_pi_right + theorem Sbtw.oangle_eq_left + theorem Sbtw.oangle_eq_left_right + theorem Sbtw.oangle_eq_right + theorem Sbtw.oangle_sign_eq + theorem Sbtw.oangle_sign_eq_left + theorem Sbtw.oangle_sign_eq_right + theorem Sbtw.oangle₁₂₃_eq_pi + theorem Sbtw.oangle₁₃₂_eq_zero + theorem Sbtw.oangle₂₁₃_eq_zero + theorem Sbtw.oangle₂₃₁_eq_zero + theorem Sbtw.oangle₃₁₂_eq_zero + theorem Sbtw.oangle₃₂₁_eq_pi + theorem Wbtw.oangle_eq_left + theorem Wbtw.oangle_eq_right + theorem Wbtw.oangle_sign_eq_of_ne_left + theorem Wbtw.oangle_sign_eq_of_ne_right + theorem Wbtw.oangle₁₃₂_eq_zero + theorem Wbtw.oangle₂₁₃_eq_zero + theorem Wbtw.oangle₂₃₁_eq_zero + theorem Wbtw.oangle₃₁₂_eq_zero 2023-06-14 03:30:55 4167cba feat: every complete linear order is a complete distributive lattice (#5031) ESTIMATED CHANGES Modified Mathlib/Order/CompleteBooleanAlgebra.lean 2023-06-14 02:22:01 7a82f16 feat: port Analysis.Analytic.Uniqueness (#5029) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/Analytic/Uniqueness.lean + theorem AnalyticOn.eqOn_of_preconnected_of_eventuallyEq + theorem AnalyticOn.eqOn_zero_of_preconnected_of_eventuallyEq_zero + theorem AnalyticOn.eqOn_zero_of_preconnected_of_eventuallyEq_zero_aux + theorem AnalyticOn.eq_of_eventuallyEq 2023-06-14 02:21:59 635f0d1 feat: port Probability.Kernel.WithDensity (#5027) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Probability/Kernel/WithDensity.lean + theorem ProbabilityTheory.kernel.integral_withDensity + theorem ProbabilityTheory.kernel.isFiniteKernel_withDensity_of_bounded + theorem ProbabilityTheory.kernel.isSFiniteKernel_withDensity_of_isFiniteKernel + theorem ProbabilityTheory.kernel.lintegral_withDensity + theorem ProbabilityTheory.kernel.withDensity_add_left + theorem ProbabilityTheory.kernel.withDensity_apply' + theorem ProbabilityTheory.kernel.withDensity_kernel_sum + theorem ProbabilityTheory.kernel.withDensity_of_not_measurable + theorem ProbabilityTheory.kernel.withDensity_tsum 2023-06-14 02:21:58 af3b54c feat : port RingTheory.RingHom.Finite (#5013) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/RingTheory/RingHom/Finite.lean + theorem RingHom.finite_respectsIso + theorem RingHom.finite_stableUnderBaseChange + theorem RingHom.finite_stableUnderComposition 2023-06-14 02:21:57 c7c6b57 feat: finish forward port of #18877 (#5011) leanprover-community/mathlib#18877 ESTIMATED CHANGES Modified Mathlib/Topology/Algebra/Module/Basic.lean + theorem ContinuousLinearMap.comp_fst_add_comp_snd + theorem ContinuousLinearMap.coprod_inl_inr Modified Mathlib/Topology/Basic.lean Modified test/Continuity.lean 2023-06-14 02:21:56 5ae7501 feat: port Geometry.Euclidean.Angle.Oriented.Rotation (#5009) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Geometry/Euclidean/Angle/Oriented/Rotation.lean + theorem Orientation.det_rotation + theorem Orientation.eq_rotation_self_iff + theorem Orientation.eq_rotation_self_iff_angle_eq_zero + theorem Orientation.exists_linearIsometryEquiv_eq_of_det_pos + theorem Orientation.inner_eq_zero_iff_eq_zero_or_eq_smul_rotation_pi_div_two + theorem Orientation.inner_rotation_pi_div_two_left + theorem Orientation.inner_rotation_pi_div_two_left_smul + theorem Orientation.inner_rotation_pi_div_two_right + theorem Orientation.inner_rotation_pi_div_two_right_smul + theorem Orientation.inner_smul_rotation_pi_div_two_left + theorem Orientation.inner_smul_rotation_pi_div_two_right + theorem Orientation.inner_smul_rotation_pi_div_two_smul_left + theorem Orientation.inner_smul_rotation_pi_div_two_smul_right + theorem Orientation.kahler_rotation_left' + theorem Orientation.kahler_rotation_left + theorem Orientation.kahler_rotation_right + theorem Orientation.linearEquiv_det_rotation + theorem Orientation.neg_rotation + theorem Orientation.neg_rotation_neg_pi_div_two + theorem Orientation.neg_rotation_pi_div_two + theorem Orientation.oangle_eq_iff_eq_norm_div_norm_smul_rotation_of_ne_zero + theorem Orientation.oangle_eq_iff_eq_norm_div_norm_smul_rotation_or_eq_zero + theorem Orientation.oangle_eq_iff_eq_pos_smul_rotation_of_ne_zero + theorem Orientation.oangle_eq_iff_eq_pos_smul_rotation_or_eq_zero + theorem Orientation.oangle_rotation + theorem Orientation.oangle_rotation_left + theorem Orientation.oangle_rotation_oangle_left + theorem Orientation.oangle_rotation_oangle_right + theorem Orientation.oangle_rotation_right + theorem Orientation.oangle_rotation_self_left + theorem Orientation.oangle_rotation_self_right + def Orientation.rotation + def Orientation.rotationAux + theorem Orientation.rotationAux_apply + theorem Orientation.rotation_apply + theorem Orientation.rotation_eq_matrix_toLin + theorem Orientation.rotation_eq_self_iff + theorem Orientation.rotation_eq_self_iff_angle_eq_zero + theorem Orientation.rotation_map + theorem Orientation.rotation_map_complex + theorem Orientation.rotation_neg_orientation_eq_neg + theorem Orientation.rotation_oangle_eq_iff_norm_eq + theorem Orientation.rotation_pi + theorem Orientation.rotation_pi_apply + theorem Orientation.rotation_pi_div_two + theorem Orientation.rotation_rotation + theorem Orientation.rotation_symm + theorem Orientation.rotation_symm_apply + theorem Orientation.rotation_trans + theorem Orientation.rotation_zero 2023-06-14 02:21:55 3929353 feat: port Init.Control.Lawful (#4999) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Control/Monad/Basic.lean Modified Mathlib/Init/Align.lean Added Mathlib/Init/Control/Lawful.lean + theorem ExceptT.run_mk + theorem ExceptT.run_monadLift + theorem ExceptT.run_monadMap + theorem OptionT.ext + theorem OptionT.run_bind + theorem OptionT.run_map + theorem OptionT.run_mk + theorem OptionT.run_monadLift + theorem OptionT.run_monadMap + theorem OptionT.run_pure + theorem ReaderT.run_mk + theorem StateT.run_mk 2023-06-14 02:21:54 fa22559 chore: forward-port leanprover-community/mathlib#15681 (complete) (#4939) Removed `diagonal` stuff which is no longer needed. ESTIMATED CHANGES Modified Mathlib/Topology/ContinuousFunction/Basic.lean Modified Mathlib/Topology/Homotopy/HomotopyGroup.lean +/- def Cube.boundary - theorem Cube.boundary_one - theorem Cube.boundary_zero - theorem Cube.head.continuous - def Cube.head + def Cube.insertAt + theorem Cube.insertAt_boundary - theorem Cube.mem_boundary - theorem Cube.one_char - theorem Cube.one_mem_boundary - theorem Cube.proj_continuous + def Cube.splitAt - def Cube.tail - theorem Cube.zero_mem_boundary - def Cube +/- theorem GenLoop.Homotopic.equiv +/- theorem GenLoop.Homotopic.refl +/- def GenLoop.Homotopic + theorem GenLoop.boundary + def GenLoop.cCompInsert + theorem GenLoop.coe_copy +/- def GenLoop.const + theorem GenLoop.const_apply + theorem GenLoop.continuous_fromLoop + theorem GenLoop.continuous_toLoop + def GenLoop.copy + theorem GenLoop.copy_eq - def GenLoop.diagonal +/- theorem GenLoop.ext + def GenLoop.fromLoop + theorem GenLoop.fromLoop_apply + theorem GenLoop.fromLoop_symm_toLoop + theorem GenLoop.fromLoop_trans_toLoop + theorem GenLoop.homotopicFrom + theorem GenLoop.homotopicTo + def GenLoop.homotopyFrom + def GenLoop.homotopyTo + theorem GenLoop.homotopyTo_apply + def GenLoop.loopHomeo +/- theorem GenLoop.mk_apply + def GenLoop.symmAt - theorem GenLoop.toContinuousMap_apply + def GenLoop.toLoop + theorem GenLoop.toLoop_apply + theorem GenLoop.to_from + def GenLoop.transAt + theorem GenLoop.transAt_distrib + def GenLoop - structure GenLoop + def HomotopyGroup.Pi + def HomotopyGroup.auxGroup + theorem HomotopyGroup.auxGroup_indep + theorem HomotopyGroup.inv_spec + theorem HomotopyGroup.isUnital_auxGroup + theorem HomotopyGroup.mul_spec + theorem HomotopyGroup.one_def + def HomotopyGroup.pi0EquivZerothHomotopy + def HomotopyGroup.pi1EquivFundamentalGroup + theorem HomotopyGroup.symmAt_indep + theorem HomotopyGroup.transAt_indep +/- def HomotopyGroup + def LoopSpace + def genLoopEquivOfUnique + def genLoopHomeoOfIsEmpty - def genLoopOneEquivPathSelf - theorem genLoopOneEquivPathSelf_homotopic_iff - theorem genLoopOneEquivPathSelf_symm_homotopic_iff - def genLoopZeroEquiv - theorem homotopic_genLoopZeroEquiv_symm_iff + def homotopyGroupEquivFundamentalGroup + def homotopyGroupEquivFundamentalGroupOfUnique + def homotopyGroupEquivZerothHomotopyOfIsEmpty - theorem joined_genLoopZeroEquiv_iff - def pi0EquivPathComponents - def pi1EquivFundamentalGroup Modified Mathlib/Topology/SubsetProperties.lean 2023-06-14 02:02:06 6dc7173 chore: forward-port leanprover-community/mathlib#14870 (#4699) This one needed some small changes on top of the mathport output. ESTIMATED CHANGES Modified Mathlib/Analysis/InnerProductSpace/Projection.lean + def OrthogonalFamily.decomposition + theorem OrthogonalFamily.projection_directSum_coeAddHom + theorem OrthogonalFamily.sum_projection_of_mem_iSup 2023-06-14 02:02:05 9089d3e feat: port AlgebraicGeometry.Spec (#4599) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/AlgebraicGeometry/Spec.lean + theorem AlgebraicGeometry.Spec.basicOpen_hom_ext + def AlgebraicGeometry.Spec.locallyRingedSpaceMap + theorem AlgebraicGeometry.Spec.locallyRingedSpaceMap_comp + theorem AlgebraicGeometry.Spec.locallyRingedSpaceMap_id + def AlgebraicGeometry.Spec.locallyRingedSpaceObj + def AlgebraicGeometry.Spec.sheafedSpaceMap + theorem AlgebraicGeometry.Spec.sheafedSpaceMap_comp + theorem AlgebraicGeometry.Spec.sheafedSpaceMap_id + def AlgebraicGeometry.Spec.sheafedSpaceObj + def AlgebraicGeometry.Spec.toLocallyRingedSpace + def AlgebraicGeometry.Spec.toPresheafedSpace + theorem AlgebraicGeometry.Spec.toPresheafedSpace_map + theorem AlgebraicGeometry.Spec.toPresheafedSpace_map_op + theorem AlgebraicGeometry.Spec.toPresheafedSpace_obj + theorem AlgebraicGeometry.Spec.toPresheafedSpace_obj_op + def AlgebraicGeometry.Spec.toSheafedSpace + def AlgebraicGeometry.Spec.toTop + def AlgebraicGeometry.Spec.topMap + theorem AlgebraicGeometry.Spec.topMap_comp + theorem AlgebraicGeometry.Spec.topMap_id + def AlgebraicGeometry.Spec.topObj + theorem AlgebraicGeometry.Spec_map_localization_isIso + theorem AlgebraicGeometry.Spec_Γ_naturality + def AlgebraicGeometry.SpecΓIdentity + theorem AlgebraicGeometry.StructureSheaf.algebraMap_pushforward_stalk + theorem AlgebraicGeometry.StructureSheaf.is_localized_module_toPushforwardStalkAlgHom_aux + def AlgebraicGeometry.StructureSheaf.toPushforwardStalk + def AlgebraicGeometry.StructureSheaf.toPushforwardStalkAlgHom + theorem AlgebraicGeometry.StructureSheaf.toPushforwardStalk_comp + theorem AlgebraicGeometry.localRingHom_comp_stalkIso + theorem AlgebraicGeometry.stalkMap_toStalk + def AlgebraicGeometry.toSpecΓ 2023-06-14 01:28:17 b1701f8 chore: forward-port leanprover-community/mathlib#18949 (#3918) Match https://github.com/leanprover-community/mathlib/pull/18949 [`order.hom.lattice`@`9d684a893c52e1d6692a504a118bfccbae04feeb`..`7581030920af3dcb241d1df0e36f6ec8289dd6be`](https://leanprover-community.github.io/mathlib-port-status/file/order/hom/lattice?range=9d684a893c52e1d6692a504a118bfccbae04feeb..7581030920af3dcb241d1df0e36f6ec8289dd6be) ESTIMATED CHANGES Modified Mathlib/Order/Hom/Lattice.lean + def InfHom.withBot' + theorem InfHom.withBot_comp + theorem InfHom.withBot_id + def InfHom.withTop' + theorem InfHom.withTop_comp + theorem InfHom.withTop_id + theorem LatticeHom.coe_withBot + theorem LatticeHom.coe_withTop + theorem LatticeHom.coe_withTopWithBot + def LatticeHom.withBot' + theorem LatticeHom.withBot_apply + theorem LatticeHom.withBot_comp + theorem LatticeHom.withBot_id + def LatticeHom.withTop' + def LatticeHom.withTopWithBot' + def LatticeHom.withTopWithBot + theorem LatticeHom.withTopWithBot_apply + theorem LatticeHom.withTopWithBot_comp + theorem LatticeHom.withTopWithBot_id + theorem LatticeHom.withTop_apply + theorem LatticeHom.withTop_comp + theorem LatticeHom.withTop_id + def SupHom.withBot' + theorem SupHom.withBot_comp + theorem SupHom.withBot_id + def SupHom.withTop' + theorem SupHom.withTop_comp + theorem SupHom.withTop_id 2023-06-14 01:13:58 3534d84 feat: port MeasureTheory.Function.ConditionalExpectation.Unique (#5008) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/MeasureTheory/Function/ConditionalExpectation/Unique.lean + theorem MeasureTheory.Lp.ae_eq_of_forall_set_integral_eq' + theorem MeasureTheory.Lp.ae_eq_zero_of_forall_set_integral_eq_zero' + theorem MeasureTheory.ae_eq_of_forall_set_integral_eq_of_sigmaFinite' + theorem MeasureTheory.integral_norm_le_of_forall_fin_meas_integral_eq + theorem MeasureTheory.lintegral_nnnorm_le_of_forall_fin_meas_integral_eq + theorem MeasureTheory.lpMeas.ae_eq_zero_of_forall_set_integral_eq_zero 2023-06-14 01:02:00 e6f9a50 feat: port Probability.Kernel.MeasurableIntegral (#4884) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Probability/Kernel/MeasurableIntegral.lean + theorem Measurable.lintegral_kernel + theorem Measurable.lintegral_kernel_prod_left' + theorem Measurable.lintegral_kernel_prod_left + theorem Measurable.lintegral_kernel_prod_right'' + theorem Measurable.lintegral_kernel_prod_right' + theorem Measurable.lintegral_kernel_prod_right + theorem Measurable.set_lintegral_kernel + theorem Measurable.set_lintegral_kernel_prod_left + theorem Measurable.set_lintegral_kernel_prod_right + theorem MeasureTheory.StronglyMeasurable.integral_kernel_prod_left'' + theorem MeasureTheory.StronglyMeasurable.integral_kernel_prod_left' + theorem MeasureTheory.StronglyMeasurable.integral_kernel_prod_left + theorem MeasureTheory.StronglyMeasurable.integral_kernel_prod_right'' + theorem MeasureTheory.StronglyMeasurable.integral_kernel_prod_right' + theorem MeasureTheory.StronglyMeasurable.integral_kernel_prod_right + theorem ProbabilityTheory.Kernel.measurable_kernel_prod_mk_left' + theorem ProbabilityTheory.Kernel.measurable_kernel_prod_mk_left + theorem ProbabilityTheory.Kernel.measurable_kernel_prod_mk_left_of_finite + theorem ProbabilityTheory.Kernel.measurable_kernel_prod_mk_right + theorem ProbabilityTheory.Kernel.measurable_lintegral_indicator_const + theorem ProbabilityTheory.measurableSet_kernel_integrable 2023-06-14 00:07:33 9c20de9 feat: port Topology.ContinuousFunction.Ideals (#4852) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Topology/Algebra/Ring/Ideal.lean +/- theorem Ideal.closure_eq_of_isClosed Added Mathlib/Topology/ContinuousFunction/Ideals.lean + theorem ContinuousMap.exists_mul_le_one_eqOn_ge + theorem ContinuousMap.idealOfEmpty_eq_bot + def ContinuousMap.idealOfSet + theorem ContinuousMap.idealOfSet_closed + theorem ContinuousMap.idealOfSet_isMaximal_iff + theorem ContinuousMap.idealOfSet_ofIdeal_eq_closure + theorem ContinuousMap.idealOfSet_ofIdeal_isClosed + theorem ContinuousMap.idealOf_compl_singleton_isMaximal + def ContinuousMap.idealOpensGI + theorem ContinuousMap.ideal_gc + theorem ContinuousMap.ideal_isMaximal_iff + theorem ContinuousMap.mem_idealOfSet + theorem ContinuousMap.mem_idealOfSet_compl_singleton + theorem ContinuousMap.mem_setOfIdeal + theorem ContinuousMap.not_mem_idealOfSet + theorem ContinuousMap.not_mem_setOfIdeal + def ContinuousMap.opensOfIdeal + def ContinuousMap.setOfIdeal + theorem ContinuousMap.setOfIdeal_eq_compl_singleton + theorem ContinuousMap.setOfIdeal_ofSet_eq_interior + theorem ContinuousMap.setOfIdeal_ofSet_of_isOpen + theorem ContinuousMap.setOfIdeal_open + theorem ContinuousMap.setOfTop_eq_univ + def WeakDual.CharacterSpace.continuousMapEval + theorem WeakDual.CharacterSpace.continuousMapEval_apply_apply + theorem WeakDual.CharacterSpace.continuousMapEval_bijective 2023-06-13 23:55:50 0f286b0 feat: port CategoryTheory.DifferentialObject (#4020) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/DifferentialObject.lean + def CategoryTheory.DifferentialObject.Hom.comp + def CategoryTheory.DifferentialObject.Hom.id + structure CategoryTheory.DifferentialObject.Hom + theorem CategoryTheory.DifferentialObject.comp_f + theorem CategoryTheory.DifferentialObject.eqToHom_f + theorem CategoryTheory.DifferentialObject.ext + def CategoryTheory.DifferentialObject.forget + theorem CategoryTheory.DifferentialObject.id_f + def CategoryTheory.DifferentialObject.isoApp + theorem CategoryTheory.DifferentialObject.isoApp_refl + theorem CategoryTheory.DifferentialObject.isoApp_symm + theorem CategoryTheory.DifferentialObject.isoApp_trans + def CategoryTheory.DifferentialObject.mkIso + def CategoryTheory.DifferentialObject.shiftFunctor + def CategoryTheory.DifferentialObject.shiftZero + theorem CategoryTheory.DifferentialObject.zero_f + structure CategoryTheory.DifferentialObject + def CategoryTheory.Functor.mapDifferentialObject 2023-06-13 22:07:17 9b2617a feat: port Analysis.Analytic.Composition (#4572) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/Analytic/Composition.lean + theorem AnalyticAt.comp + theorem Composition.blocksFun_sigmaCompositionAux + def Composition.gather + theorem Composition.length_gather + theorem Composition.length_sigmaCompositionAux + def Composition.sigmaCompositionAux + def Composition.sigmaEquivSigmaPi + theorem Composition.sigma_composition_eq_iff + theorem Composition.sigma_pi_composition_eq_iff + theorem Composition.sizeUpTo_sizeUpTo_add + def ContinuousMultilinearMap.compAlongComposition + theorem ContinuousMultilinearMap.compAlongComposition_apply + def FormalMultilinearSeries.applyComposition + theorem FormalMultilinearSeries.applyComposition_ones + theorem FormalMultilinearSeries.applyComposition_single + theorem FormalMultilinearSeries.applyComposition_update + def FormalMultilinearSeries.compAlongComposition + theorem FormalMultilinearSeries.compAlongComposition_apply + theorem FormalMultilinearSeries.compAlongComposition_bound + theorem FormalMultilinearSeries.compAlongComposition_nnnorm + theorem FormalMultilinearSeries.compAlongComposition_norm + def FormalMultilinearSeries.compChangeOfVariables + theorem FormalMultilinearSeries.compChangeOfVariables_blocksFun + theorem FormalMultilinearSeries.compChangeOfVariables_length + theorem FormalMultilinearSeries.compChangeOfVariables_sum + theorem FormalMultilinearSeries.compContinuousLinearMap_applyComposition + def FormalMultilinearSeries.compPartialSumSource + def FormalMultilinearSeries.compPartialSumTarget + def FormalMultilinearSeries.compPartialSumTargetSet + theorem FormalMultilinearSeries.compPartialSumTargetSet_image_compPartialSumSource + theorem FormalMultilinearSeries.compPartialSumTarget_tendsto_atTop + theorem FormalMultilinearSeries.comp_assoc + theorem FormalMultilinearSeries.comp_coeff_one + theorem FormalMultilinearSeries.comp_coeff_zero'' + theorem FormalMultilinearSeries.comp_coeff_zero' + theorem FormalMultilinearSeries.comp_coeff_zero + theorem FormalMultilinearSeries.comp_id + theorem FormalMultilinearSeries.comp_partialSum + theorem FormalMultilinearSeries.comp_removeZero + theorem FormalMultilinearSeries.comp_summable_nnreal + def FormalMultilinearSeries.id + theorem FormalMultilinearSeries.id_apply_ne_one + theorem FormalMultilinearSeries.id_apply_one' + theorem FormalMultilinearSeries.id_apply_one + theorem FormalMultilinearSeries.id_comp + theorem FormalMultilinearSeries.le_comp_radius_of_summable + theorem FormalMultilinearSeries.mem_compPartialSumSource_iff + theorem FormalMultilinearSeries.mem_compPartialSumTarget_iff + theorem FormalMultilinearSeries.removeZero_applyComposition + theorem FormalMultilinearSeries.removeZero_comp_of_pos + theorem HasFPowerSeriesAt.comp Modified Mathlib/Combinatorics/Composition.lean + theorem List.get_splitWrtComposition 2023-06-13 10:57:36 df58f20 chore: fix grammar 3/3 (#5003) Part 3 of #5001 ESTIMATED CHANGES Modified Mathlib/Order/BooleanAlgebra.lean Modified Mathlib/Order/CompleteLattice.lean Modified Mathlib/Order/Extension/Well.lean Modified Mathlib/Order/Heyting/Basic.lean Modified Mathlib/Order/Heyting/Regular.lean Modified Mathlib/Order/Hom/Basic.lean Modified Mathlib/Order/Interval.lean Modified Mathlib/Order/Iterate.lean Modified Mathlib/Order/Lattice.lean Modified Mathlib/Order/OmegaCompletePartialOrder.lean Modified Mathlib/Order/OrdContinuous.lean Modified Mathlib/Order/PrimeIdeal.lean Modified Mathlib/Order/RelClasses.lean Modified Mathlib/Order/RelIso/Basic.lean Modified Mathlib/Order/UpperLower/Basic.lean Modified Mathlib/Order/Zorn.lean Modified Mathlib/Order/ZornAtoms.lean Modified Mathlib/Probability/Kernel/Basic.lean Modified Mathlib/RepresentationTheory/Action.lean Modified Mathlib/RepresentationTheory/Basic.lean Modified Mathlib/RingTheory/Algebraic.lean Modified Mathlib/RingTheory/Artinian.lean Modified Mathlib/RingTheory/Derivation/Basic.lean Modified Mathlib/RingTheory/Derivation/ToSquareZero.lean Modified Mathlib/RingTheory/FreeCommRing.lean Modified Mathlib/RingTheory/HahnSeries.lean Modified Mathlib/RingTheory/Ideal/Basic.lean Modified Mathlib/RingTheory/IsTensorProduct.lean Modified Mathlib/RingTheory/Multiplicity.lean Modified Mathlib/RingTheory/OreLocalization/Basic.lean Modified Mathlib/RingTheory/Subring/Basic.lean Modified Mathlib/RingTheory/Subsemiring/Basic.lean Modified Mathlib/SetTheory/Cardinal/Basic.lean Modified Mathlib/SetTheory/Ordinal/Arithmetic.lean Modified Mathlib/Tactic/Abel.lean Modified Mathlib/Tactic/FieldSimp.lean Modified Mathlib/Tactic/GCongr/Core.lean Modified Mathlib/Tactic/NormNum/Core.lean Modified Mathlib/Tactic/NormNum/Prime.lean Modified Mathlib/Tactic/Positivity/Core.lean Modified Mathlib/Tactic/Ring/Basic.lean Modified Mathlib/Tactic/Simps/Basic.lean Modified Mathlib/Tactic/ToAdditive.lean Modified Mathlib/Testing/SlimCheck/Gen.lean Modified Mathlib/Topology/Algebra/Group/Basic.lean Modified Mathlib/Topology/Algebra/Module/Basic.lean Modified Mathlib/Topology/Algebra/Module/CharacterSpace.lean Modified Mathlib/Topology/Algebra/Module/StrongTopology.lean Modified Mathlib/Topology/Algebra/Monoid.lean Modified Mathlib/Topology/Algebra/Nonarchimedean/AdicTopology.lean Modified Mathlib/Topology/Algebra/Nonarchimedean/Bases.lean Modified Mathlib/Topology/Basic.lean Modified Mathlib/Topology/ContinuousFunction/Algebra.lean Modified Mathlib/Topology/DiscreteQuotient.lean Modified Mathlib/Topology/Homeomorph.lean Modified Mathlib/Topology/Homotopy/HSpaces.lean Modified Mathlib/Topology/LocalHomeomorph.lean Modified Mathlib/Topology/MetricSpace/EMetricSpace.lean Modified Mathlib/Topology/Order/Basic.lean Modified Mathlib/Topology/Sets/Order.lean Modified Mathlib/Topology/Sheaves/Sheaf.lean Modified Mathlib/Topology/UniformSpace/Basic.lean Modified test/Replace.lean Modified test/measurability.lean 2023-06-13 10:57:35 9e80ae3 chore: fix grammar 2/3 (#5002) Part 2 of #5001 ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Limits/Preserves/Shapes/Terminal.lean Modified Mathlib/CategoryTheory/Limits/Shapes/BinaryProducts.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Biproducts.lean Modified Mathlib/CategoryTheory/Limits/Shapes/CommSq.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Products.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Pullbacks.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Terminal.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Types.lean Modified Mathlib/CategoryTheory/Limits/Shapes/ZeroMorphisms.lean Modified Mathlib/CategoryTheory/Monoidal/Category.lean Modified Mathlib/CategoryTheory/Over.lean Modified Mathlib/CategoryTheory/Pi/Basic.lean Modified Mathlib/CategoryTheory/Preadditive/Injective.lean Modified Mathlib/CategoryTheory/Preadditive/InjectiveResolution.lean Modified Mathlib/CategoryTheory/Shift/Basic.lean Modified Mathlib/CategoryTheory/Sites/DenseSubsite.lean Modified Mathlib/CategoryTheory/Sites/Grothendieck.lean Modified Mathlib/CategoryTheory/Sites/Subsheaf.lean Modified Mathlib/CategoryTheory/Subobject/Lattice.lean Modified Mathlib/CategoryTheory/Subobject/Limits.lean Modified Mathlib/Combinatorics/SimpleGraph/Basic.lean Modified Mathlib/Computability/NFA.lean Modified Mathlib/Control/Functor.lean Modified Mathlib/Data/Dfinsupp/Basic.lean Modified Mathlib/Data/Fin/Basic.lean Modified Mathlib/Data/Fin/Tuple/Basic.lean Modified Mathlib/Data/Finmap.lean Modified Mathlib/Data/Finsupp/Basic.lean Modified Mathlib/Data/IsROrC/Attr.lean Modified Mathlib/Data/IsROrC/Basic.lean Modified Mathlib/Data/List/BigOperators/Basic.lean Modified Mathlib/Data/List/Chain.lean Modified Mathlib/Data/List/MinMax.lean Modified Mathlib/Data/Matrix/Basic.lean Modified Mathlib/Data/Multiset/Sections.lean Modified Mathlib/Data/MvPolynomial/Monad.lean Modified Mathlib/Data/Nat/PartENat.lean Modified Mathlib/Data/Num/Lemmas.lean Modified Mathlib/Data/PFunctor/Univariate/M.lean Modified Mathlib/Data/Polynomial/Module.lean Modified Mathlib/Data/Real/ENNReal.lean Modified Mathlib/Data/Semiquot.lean Modified Mathlib/Data/Set/Image.lean Modified Mathlib/Data/Set/Ncard.lean Modified Mathlib/Data/Subtype.lean Modified Mathlib/Dynamics/Flow.lean Modified Mathlib/FieldTheory/IntermediateField.lean Modified Mathlib/FieldTheory/IsAlgClosed/Spectrum.lean Modified Mathlib/FieldTheory/Normal.lean Modified Mathlib/FieldTheory/RatFunc.lean Modified Mathlib/GroupTheory/Congruence.lean Modified Mathlib/GroupTheory/Coset.lean Modified Mathlib/GroupTheory/GroupAction/Defs.lean Modified Mathlib/GroupTheory/GroupAction/Group.lean Modified Mathlib/GroupTheory/MonoidLocalization.lean Modified Mathlib/GroupTheory/NoncommPiCoprod.lean Modified Mathlib/GroupTheory/Perm/Cycle/Concrete.lean Modified Mathlib/GroupTheory/Perm/List.lean Modified Mathlib/GroupTheory/SpecificGroups/Dihedral.lean Modified Mathlib/GroupTheory/Subgroup/Basic.lean Modified Mathlib/GroupTheory/Submonoid/Basic.lean Modified Mathlib/GroupTheory/Submonoid/Operations.lean Modified Mathlib/Init/Data/Int/Bitwise.lean Modified Mathlib/LinearAlgebra/Alternating.lean Modified Mathlib/LinearAlgebra/Basic.lean Modified Mathlib/LinearAlgebra/Dimension.lean Modified Mathlib/LinearAlgebra/Matrix/Block.lean Modified Mathlib/LinearAlgebra/TensorProduct.lean Modified Mathlib/Logic/Embedding/Basic.lean Modified Mathlib/Logic/Function/Basic.lean Modified Mathlib/Mathport/Notation.lean Modified Mathlib/MeasureTheory/Decomposition/Jordan.lean Modified Mathlib/MeasureTheory/Integral/IntegralEqImproper.lean Modified Mathlib/MeasureTheory/Measure/Complex.lean Modified Mathlib/MeasureTheory/Measure/MeasureSpace.lean Modified Mathlib/MeasureTheory/Measure/VectorMeasure.lean Modified Mathlib/ModelTheory/LanguageMap.lean 2023-06-13 10:57:34 d8caa37 chore: fix grammar 1/3 (#5001) All of these are doc fixes ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/Basic.lean Modified Mathlib/Algebra/Algebra/Equiv.lean Modified Mathlib/Algebra/Algebra/Hom.lean Modified Mathlib/Algebra/Algebra/Subalgebra/Basic.lean Modified Mathlib/Algebra/BigOperators/Order.lean Modified Mathlib/Algebra/Category/GroupCat/Basic.lean Modified Mathlib/Algebra/Category/GroupCat/Biproducts.lean Modified Mathlib/Algebra/Category/ModuleCat/Biproducts.lean Modified Mathlib/Algebra/Category/MonCat/Basic.lean Modified Mathlib/Algebra/CharP/MixedCharZero.lean Modified Mathlib/Algebra/DirectSum/Ring.lean Modified Mathlib/Algebra/GradedMonoid.lean Modified Mathlib/Algebra/Group/Basic.lean Modified Mathlib/Algebra/Group/Opposite.lean Modified Mathlib/Algebra/Group/Pi.lean Modified Mathlib/Algebra/Group/Semiconj.lean Modified Mathlib/Algebra/GroupWithZero/InjSurj.lean Modified Mathlib/Algebra/Hom/Equiv/Basic.lean Modified Mathlib/Algebra/Hom/Group.lean Modified Mathlib/Algebra/Hom/GroupInstances.lean Modified Mathlib/Algebra/Hom/Units.lean Modified Mathlib/Algebra/Homology/HomologicalComplex.lean Modified Mathlib/Algebra/Homology/QuasiIso.lean Modified Mathlib/Algebra/Homology/ShortComplex/Homology.lean Modified Mathlib/Algebra/Lie/Subalgebra.lean Modified Mathlib/Algebra/Module/DedekindDomain.lean Modified Mathlib/Algebra/Module/LinearMap.lean Modified Mathlib/Algebra/Module/Submodule/Basic.lean Modified Mathlib/Algebra/Module/Torsion.lean Modified Mathlib/Algebra/MonoidAlgebra/Basic.lean Modified Mathlib/Algebra/MonoidAlgebra/ToDirectSum.lean Modified Mathlib/Algebra/Order/Group/Defs.lean Modified Mathlib/Algebra/Order/Hom/Ring.lean Modified Mathlib/Algebra/Order/Monoid/Lemmas.lean Modified Mathlib/Algebra/Order/Nonneg/Ring.lean Modified Mathlib/Algebra/Regular/Basic.lean Modified Mathlib/Algebra/Ring/Equiv.lean Modified Mathlib/Algebra/Star/Basic.lean Modified Mathlib/Algebra/Star/Subalgebra.lean Modified Mathlib/AlgebraicTopology/DoldKan/HomotopyEquivalence.lean Modified Mathlib/AlgebraicTopology/ExtraDegeneracy.lean Modified Mathlib/Analysis/Calculus/Deriv/Inverse.lean Modified Mathlib/Analysis/Calculus/MeanValue.lean Modified Mathlib/Analysis/Convex/Exposed.lean Modified Mathlib/Analysis/Convex/KreinMilman.lean Modified Mathlib/Analysis/InnerProductSpace/Basic.lean Modified Mathlib/Analysis/InnerProductSpace/LaxMilgram.lean Modified Mathlib/Analysis/InnerProductSpace/PiL2.lean Modified Mathlib/Analysis/InnerProductSpace/l2Space.lean Modified Mathlib/Analysis/Normed/Field/Basic.lean Modified Mathlib/Analysis/Normed/Group/Basic.lean Modified Mathlib/Analysis/NormedSpace/AffineIsometry.lean Modified Mathlib/Analysis/NormedSpace/Banach.lean Modified Mathlib/Analysis/NormedSpace/BoundedLinearMaps.lean Modified Mathlib/Analysis/NormedSpace/LinearIsometry.lean Modified Mathlib/Analysis/NormedSpace/lpSpace.lean Modified Mathlib/CategoryTheory/Adjunction/Basic.lean Modified Mathlib/CategoryTheory/Adjunction/Comma.lean Modified Mathlib/CategoryTheory/Bicategory/Basic.lean Modified Mathlib/CategoryTheory/Category/Basic.lean Modified Mathlib/CategoryTheory/Category/Pointed.lean Modified Mathlib/CategoryTheory/CommSq.lean Modified Mathlib/CategoryTheory/EssentialImage.lean Modified Mathlib/CategoryTheory/Functor/Functorial.lean Modified Mathlib/CategoryTheory/Limits/Preserves/Basic.lean 2023-06-13 10:44:58 dc318ce feat: port Order.Category.SemilatCat (#4990) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Order/Category/SemilatCat.lean + def SemilatInfCat.Iso.mk + theorem SemilatInfCat.coe_forget_to_partOrdCat + theorem SemilatInfCat.coe_of + def SemilatInfCat.dual + def SemilatInfCat.of + structure SemilatInfCat + theorem SemilatInfCat_dual_comp_forget_to_partOrdCat + def SemilatSupCat.Iso.mk + theorem SemilatSupCat.coe_forget_to_partOrdCat + theorem SemilatSupCat.coe_of + def SemilatSupCat.dual + def SemilatSupCat.of + structure SemilatSupCat + def SemilatSupCatEquivSemilatInfCat + theorem SemilatSupCat_dual_comp_forget_to_partOrdCat 2023-06-13 10:21:55 a121cf8 feat: port RingTheory.RingHom.Integral (#5004) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/RingTheory/RingHom/Integral.lean + theorem RingHom.isIntegral_respectsIso + theorem RingHom.isIntegral_stableUnderBaseChange + theorem RingHom.isIntegral_stableUnderComposition 2023-06-13 09:59:22 dd23585 feat: port MeasureTheory.Function.ConditionalExpectation.AEMeasurable (#5005) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/MeasureTheory/Function/ConditionalExpectation/AEMeasurable.lean + theorem MeasureTheory.AEStronglyMeasurable'.add + theorem MeasureTheory.AEStronglyMeasurable'.aeStronglyMeasurable'_of_measurableSpace_le_on + theorem MeasureTheory.AEStronglyMeasurable'.ae_eq_mk + theorem MeasureTheory.AEStronglyMeasurable'.congr + theorem MeasureTheory.AEStronglyMeasurable'.const_inner + theorem MeasureTheory.AEStronglyMeasurable'.const_smul + theorem MeasureTheory.AEStronglyMeasurable'.continuous_comp + theorem MeasureTheory.AEStronglyMeasurable'.neg + theorem MeasureTheory.AEStronglyMeasurable'.stronglyMeasurable_mk + theorem MeasureTheory.AEStronglyMeasurable'.sub + def MeasureTheory.AEStronglyMeasurable' + theorem MeasureTheory.AEStronglyMeasurable.comp_ae_measurable' + theorem MeasureTheory.Lp.induction_stronglyMeasurable + theorem MeasureTheory.Lp.induction_stronglyMeasurable_aux + theorem MeasureTheory.Memℒp.induction_stronglyMeasurable + theorem MeasureTheory.StronglyMeasurable.aeStronglyMeasurable' + theorem MeasureTheory.aeStronglyMeasurable'_of_aeStronglyMeasurable'_trim + theorem MeasureTheory.ae_eq_trim_iff_of_aeStronglyMeasurable' + theorem MeasureTheory.isClosed_aeStronglyMeasurable' + theorem MeasureTheory.isComplete_aeStronglyMeasurable' + theorem MeasureTheory.isometry_lpMeasSubgroupToLpTrim + theorem MeasureTheory.lpMeas.aeStronglyMeasurable' + theorem MeasureTheory.lpMeas.ae_fin_strongly_measurable' + def MeasureTheory.lpMeas + def MeasureTheory.lpMeasSubgroup + theorem MeasureTheory.lpMeasSubgroupToLpTrim_add + theorem MeasureTheory.lpMeasSubgroupToLpTrim_ae_eq + theorem MeasureTheory.lpMeasSubgroupToLpTrim_left_inv + theorem MeasureTheory.lpMeasSubgroupToLpTrim_neg + theorem MeasureTheory.lpMeasSubgroupToLpTrim_norm_map + theorem MeasureTheory.lpMeasSubgroupToLpTrim_right_inv + theorem MeasureTheory.lpMeasSubgroupToLpTrim_sub + theorem MeasureTheory.lpMeasSubgroup_coe + theorem MeasureTheory.lpMeasToLpTrimLie_symm_indicator + theorem MeasureTheory.lpMeasToLpTrimLie_symm_toLp + theorem MeasureTheory.lpMeasToLpTrim_ae_eq + theorem MeasureTheory.lpMeasToLpTrim_smul + theorem MeasureTheory.lpMeas_coe + theorem MeasureTheory.lpTrimToLpMeasSubgroup_ae_eq + theorem MeasureTheory.lpTrimToLpMeas_ae_eq + theorem MeasureTheory.mem_lpMeasSubgroup_iff_aeStronglyMeasurable' + theorem MeasureTheory.mem_lpMeasSubgroup_toLp_of_trim + theorem MeasureTheory.mem_lpMeas_iff_aeStronglyMeasurable' + theorem MeasureTheory.mem_lpMeas_indicatorConstLp + theorem MeasureTheory.mem_lpMeas_self + theorem MeasureTheory.memℒp_trim_of_mem_lpMeasSubgroup 2023-06-13 09:39:41 a1d7063 feat: port RingTheory.Polynomial.Hermite.Gaussian (#5006) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/RingTheory/Polynomial/Hermite/Gaussian.lean + theorem Polynomial.deriv_gaussian_eq_hermite_mul_gaussian + theorem Polynomial.hermite_eq_deriv_gaussian' + theorem Polynomial.hermite_eq_deriv_gaussian 2023-06-13 08:12:13 6845e26 feat: port Geometry.Euclidean.Angle.Oriented.Basic (#4966) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Geometry/Euclidean/Angle/Oriented/Basic.lean + theorem Orientation.abs_oangle_sub_left_toReal_lt_pi_div_two + theorem Orientation.abs_oangle_sub_right_toReal_lt_pi_div_two + theorem Orientation.angle_eq_abs_oangle_toReal + theorem Orientation.angle_eq_iff_oangle_eq_of_sign_eq + theorem Orientation.continuousAt_oangle + theorem Orientation.cos_oangle_eq_cos_angle + theorem Orientation.cos_oangle_eq_inner_div_norm_mul_norm + theorem Orientation.eq_iff_norm_eq_and_oangle_eq_zero + theorem Orientation.eq_iff_norm_eq_of_oangle_eq_zero + theorem Orientation.eq_iff_oangle_eq_zero_of_norm_eq + theorem Orientation.eq_zero_or_angle_eq_zero_or_pi_of_sign_oangle_eq_zero + theorem Orientation.eq_zero_or_oangle_eq_iff_inner_eq_zero + theorem Orientation.inner_eq_norm_mul_norm_mul_cos_oangle + theorem Orientation.inner_eq_zero_of_oangle_eq_neg_pi_div_two + theorem Orientation.inner_eq_zero_of_oangle_eq_pi_div_two + theorem Orientation.inner_rev_eq_zero_of_oangle_eq_neg_pi_div_two + theorem Orientation.inner_rev_eq_zero_of_oangle_eq_pi_div_two + theorem Orientation.left_ne_zero_of_oangle_eq_neg_pi_div_two + theorem Orientation.left_ne_zero_of_oangle_eq_pi + theorem Orientation.left_ne_zero_of_oangle_eq_pi_div_two + theorem Orientation.left_ne_zero_of_oangle_ne_zero + theorem Orientation.left_ne_zero_of_oangle_sign_eq_neg_one + theorem Orientation.left_ne_zero_of_oangle_sign_eq_one + theorem Orientation.left_ne_zero_of_oangle_sign_ne_zero + theorem Orientation.ne_of_oangle_eq_neg_pi_div_two + theorem Orientation.ne_of_oangle_eq_pi + theorem Orientation.ne_of_oangle_eq_pi_div_two + theorem Orientation.ne_of_oangle_ne_zero + theorem Orientation.ne_of_oangle_sign_eq_neg_one + theorem Orientation.ne_of_oangle_sign_eq_one + theorem Orientation.ne_of_oangle_sign_ne_zero + def Orientation.oangle + theorem Orientation.oangle_add + theorem Orientation.oangle_add_cyc3 + theorem Orientation.oangle_add_cyc3_neg_left + theorem Orientation.oangle_add_cyc3_neg_right + theorem Orientation.oangle_add_oangle_rev + theorem Orientation.oangle_add_oangle_rev_neg_left + theorem Orientation.oangle_add_oangle_rev_neg_right + theorem Orientation.oangle_add_swap + theorem Orientation.oangle_eq_angle_of_sign_eq_one + theorem Orientation.oangle_eq_angle_or_eq_neg_angle + theorem Orientation.oangle_eq_neg_angle_of_sign_eq_neg_one + theorem Orientation.oangle_eq_of_angle_eq_of_sign_eq + theorem Orientation.oangle_eq_pi_iff_angle_eq_pi + theorem Orientation.oangle_eq_pi_iff_oangle_rev_eq_pi + theorem Orientation.oangle_eq_pi_iff_sameRay_neg + theorem Orientation.oangle_eq_pi_sub_two_zsmul_oangle_sub_of_norm_eq + theorem Orientation.oangle_eq_zero_iff_angle_eq_zero + theorem Orientation.oangle_eq_zero_iff_oangle_rev_eq_zero + theorem Orientation.oangle_eq_zero_iff_sameRay + theorem Orientation.oangle_eq_zero_or_eq_pi_iff_not_linearIndependent + theorem Orientation.oangle_eq_zero_or_eq_pi_iff_right_eq_smul + theorem Orientation.oangle_map + theorem Orientation.oangle_map_complex + theorem Orientation.oangle_ne_zero_and_ne_pi_iff_linearIndependent + theorem Orientation.oangle_neg_left + theorem Orientation.oangle_neg_left_eq_neg_right + theorem Orientation.oangle_neg_neg + theorem Orientation.oangle_neg_orientation_eq_neg + theorem Orientation.oangle_neg_right + theorem Orientation.oangle_neg_self_left + theorem Orientation.oangle_neg_self_right + theorem Orientation.oangle_rev + theorem Orientation.oangle_self + theorem Orientation.oangle_sign_add_left + theorem Orientation.oangle_sign_add_right + theorem Orientation.oangle_sign_add_smul_left + theorem Orientation.oangle_sign_neg_left + theorem Orientation.oangle_sign_neg_right + theorem Orientation.oangle_sign_smul_add_right + theorem Orientation.oangle_sign_smul_add_smul_left + theorem Orientation.oangle_sign_smul_add_smul_right + theorem Orientation.oangle_sign_smul_add_smul_smul_add_smul + theorem Orientation.oangle_sign_smul_left + theorem Orientation.oangle_sign_smul_right + theorem Orientation.oangle_sign_smul_sub_left + theorem Orientation.oangle_sign_smul_sub_right + theorem Orientation.oangle_sign_sub_left + theorem Orientation.oangle_sign_sub_left_eq_neg + theorem Orientation.oangle_sign_sub_left_swap + theorem Orientation.oangle_sign_sub_right + theorem Orientation.oangle_sign_sub_right_eq_neg + theorem Orientation.oangle_sign_sub_right_swap + theorem Orientation.oangle_sign_sub_smul_left + theorem Orientation.oangle_sign_sub_smul_right + theorem Orientation.oangle_smul_add_right_eq_zero_or_eq_pi_iff + theorem Orientation.oangle_smul_left_of_neg + theorem Orientation.oangle_smul_left_of_pos + theorem Orientation.oangle_smul_left_self_of_nonneg + theorem Orientation.oangle_smul_right_of_neg + theorem Orientation.oangle_smul_right_of_pos + theorem Orientation.oangle_smul_right_self_of_nonneg + theorem Orientation.oangle_smul_smul_self_of_nonneg + theorem Orientation.oangle_sub_eq_oangle_sub_rev_of_norm_eq + theorem Orientation.oangle_sub_left + theorem Orientation.oangle_sub_right + theorem Orientation.oangle_zero_left + theorem Orientation.oangle_zero_right + theorem Orientation.right_ne_zero_of_oangle_eq_neg_pi_div_two + theorem Orientation.right_ne_zero_of_oangle_eq_pi + theorem Orientation.right_ne_zero_of_oangle_eq_pi_div_two + theorem Orientation.right_ne_zero_of_oangle_ne_zero + theorem Orientation.right_ne_zero_of_oangle_sign_eq_neg_one + theorem Orientation.right_ne_zero_of_oangle_sign_eq_one + theorem Orientation.right_ne_zero_of_oangle_sign_ne_zero + theorem Orientation.two_zsmul_oangle_left_of_span_eq + theorem Orientation.two_zsmul_oangle_neg_left + theorem Orientation.two_zsmul_oangle_neg_right + theorem Orientation.two_zsmul_oangle_neg_self_left + theorem Orientation.two_zsmul_oangle_neg_self_right + theorem Orientation.two_zsmul_oangle_of_span_eq_of_span_eq + theorem Orientation.two_zsmul_oangle_right_of_span_eq + theorem Orientation.two_zsmul_oangle_smul_left_of_ne_zero + theorem Orientation.two_zsmul_oangle_smul_left_self + theorem Orientation.two_zsmul_oangle_smul_right_of_ne_zero + theorem Orientation.two_zsmul_oangle_smul_right_self + theorem Orientation.two_zsmul_oangle_smul_smul_self 2023-06-13 07:43:36 de7e0a5 chore: restore AlgebraTensorModule.curry_apply (#4995) Fix the `simps` for the definitions of `AlgebraTensorModule.curry` `AlgebraTensorModule.mk` so that the correct lemmas are generated, see [this discussion](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/TensorProduct.2Ecurry/near/365616691). ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/Trace.lean Modified Mathlib/RingTheory/TensorProduct.lean 2023-06-13 07:27:37 de8ac50 feat: port Order.Category.BddOrdCat (#4984) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Order/Category/BddOrdCat.lean + def BddOrdCat.Iso.mk + theorem BddOrdCat.coe_of + def BddOrdCat.dual + def BddOrdCat.dualEquiv + def BddOrdCat.of + structure BddOrdCat + theorem bddOrd_dual_comp_forget_to_bipointed + theorem bddOrd_dual_comp_forget_to_partOrdCat 2023-06-13 06:31:46 7a742ac chore: adapt install scripts from mathlib-tools (#4965) This takes the installation scripts from `mathlib-tools` and adapts them for `lean4`. I will use these in the new installation instructions to replace * https://leanprover-community.github.io/install/macos.html * https://leanprover-community.github.io/install/debian.html ESTIMATED CHANGES Added scripts/install_debian.sh Added scripts/install_macos.sh 2023-06-13 06:31:45 d9d8c53 feat: port Analysis.Convex.Intrinsic (#4937) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/Convex/Intrinsic.lean + theorem AffineIsometry.image_intrinsicClosure + theorem AffineIsometry.image_intrinsicFrontier + theorem AffineIsometry.image_intrinsicInterior + theorem affineSpan_intrinsicClosure + theorem closure_diff_intrinsicFrontier + theorem closure_diff_intrinsicInterior + theorem interior_subset_intrinsicInterior + def intrinsicClosure + theorem intrinsicClosure_diff_intrinsicFrontier + theorem intrinsicClosure_diff_intrinsicInterior + theorem intrinsicClosure_empty + theorem intrinsicClosure_eq_closure + theorem intrinsicClosure_idem + theorem intrinsicClosure_mono + theorem intrinsicClosure_nonempty + theorem intrinsicClosure_singleton + theorem intrinsicClosure_subset_affineSpan + theorem intrinsicClosure_subset_closure + def intrinsicFrontier + theorem intrinsicFrontier_empty + theorem intrinsicFrontier_singleton + theorem intrinsicFrontier_subset + theorem intrinsicFrontier_subset_frontier + theorem intrinsicFrontier_subset_intrinsicClosure + theorem intrinsicFrontier_union_intrinsicInterior + def intrinsicInterior + theorem intrinsicInterior_empty + theorem intrinsicInterior_nonempty + theorem intrinsicInterior_singleton + theorem intrinsicInterior_subset + theorem intrinsicInterior_union_intrinsicFrontier + theorem isClosed_intrinsicClosure + theorem isClosed_intrinsicFrontier + theorem mem_intrinsicClosure + theorem mem_intrinsicFrontier + theorem mem_intrinsicInterior + theorem subset_intrinsicClosure 2023-06-13 06:31:44 9e3895d feat: port Analysis.SpecialFunctions.JapaneseBracket (#4924) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/SpecialFunctions/JapaneseBracket.lean + theorem closedBall_rpow_sub_one_eq_empty_aux + theorem finite_integral_one_add_norm + theorem finite_integral_rpow_sub_one_pow_aux + theorem integrable_one_add_norm + theorem integrable_rpow_neg_one_add_norm_sq + theorem le_rpow_one_add_norm_iff_norm_le + theorem one_add_norm_le_sqrt_two_mul_sqrt + theorem rpow_neg_one_add_norm_sq_le + theorem sqrt_one_add_norm_sq_le Modified Mathlib/Analysis/SpecialFunctions/Pow/Real.lean Modified Mathlib/MeasureTheory/Integral/Lebesgue.lean + theorem MeasureTheory.lintegral_union_le + theorem MeasureTheory.set_lintegral_mono' + theorem MeasureTheory.set_lintegral_mono_ae' 2023-06-13 06:31:43 c285cf7 feat: port Analysis.InnerProductSpace.TwoDim (#4602) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/InnerProductSpace/TwoDim.lean + theorem FiniteDimensional.finiteDimensional_of_fact_finrank_eq_two + theorem Orientation.abs_areaForm_le + theorem Orientation.abs_areaForm_of_orthogonal + theorem Orientation.abs_kahler + def Orientation.areaForm' + theorem Orientation.areaForm'_apply + theorem Orientation.areaForm_apply_self + theorem Orientation.areaForm_comp_linearIsometryEquiv + theorem Orientation.areaForm_comp_rightAngleRotation + theorem Orientation.areaForm_le + theorem Orientation.areaForm_map + theorem Orientation.areaForm_map_complex + theorem Orientation.areaForm_neg_orientation + theorem Orientation.areaForm_rightAngleRotation_left + theorem Orientation.areaForm_rightAngleRotation_right + theorem Orientation.areaForm_swap + theorem Orientation.areaForm_to_volumeForm + def Orientation.basisRightAngleRotation + theorem Orientation.coe_basisRightAngleRotation + theorem Orientation.eq_zero_or_eq_zero_of_kahler_eq_zero + theorem Orientation.inner_comp_rightAngleRotation + theorem Orientation.inner_mul_areaForm_sub' + theorem Orientation.inner_mul_areaForm_sub + theorem Orientation.inner_mul_inner_add_areaForm_mul_areaForm' + theorem Orientation.inner_mul_inner_add_areaForm_mul_areaForm + theorem Orientation.inner_rightAngleRotationAux₁_left + theorem Orientation.inner_rightAngleRotationAux₁_right + theorem Orientation.inner_rightAngleRotation_left + theorem Orientation.inner_rightAngleRotation_right + theorem Orientation.inner_rightAngleRotation_self + theorem Orientation.inner_rightAngleRotation_swap' + theorem Orientation.inner_rightAngleRotation_swap + theorem Orientation.inner_sq_add_areaForm_sq + def Orientation.kahler + theorem Orientation.kahler_apply_apply + theorem Orientation.kahler_apply_self + theorem Orientation.kahler_comp_linearIsometryEquiv + theorem Orientation.kahler_comp_rightAngleRotation' + theorem Orientation.kahler_comp_rightAngleRotation + theorem Orientation.kahler_eq_zero_iff + theorem Orientation.kahler_map + theorem Orientation.kahler_map_complex + theorem Orientation.kahler_mul + theorem Orientation.kahler_ne_zero + theorem Orientation.kahler_ne_zero_iff + theorem Orientation.kahler_neg_orientation + theorem Orientation.kahler_rightAngleRotation_left + theorem Orientation.kahler_rightAngleRotation_right + theorem Orientation.kahler_swap + theorem Orientation.linearIsometryEquiv_comp_rightAngleRotation' + theorem Orientation.linearIsometryEquiv_comp_rightAngleRotation + theorem Orientation.nonneg_inner_and_areaForm_eq_zero_iff_sameRay + theorem Orientation.normSq_kahler + theorem Orientation.norm_kahler + theorem Orientation.rightAngleRotationAux₁_rightAngleRotationAux₁ + def Orientation.rightAngleRotationAux₂ + theorem Orientation.rightAngleRotation_map' + theorem Orientation.rightAngleRotation_map + theorem Orientation.rightAngleRotation_map_complex + theorem Orientation.rightAngleRotation_neg_orientation + theorem Orientation.rightAngleRotation_rightAngleRotation + theorem Orientation.rightAngleRotation_symm + theorem Orientation.rightAngleRotation_trans_neg_orientation + theorem Orientation.rightAngleRotation_trans_rightAngleRotation 2023-06-13 06:31:42 802488e feat: port RingTheory.RingHomProperties (#4404) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/RingTheory/RingHomProperties.lean + theorem RingHom.RespectsIso.cancel_left_isIso + theorem RingHom.RespectsIso.cancel_right_isIso + theorem RingHom.RespectsIso.is_localization_away_iff + def RingHom.RespectsIso + theorem RingHom.StableUnderBaseChange.mk + theorem RingHom.StableUnderBaseChange.pushout_inl + def RingHom.StableUnderBaseChange + theorem RingHom.StableUnderComposition.respectsIso + def RingHom.StableUnderComposition 2023-06-13 06:31:40 765d910 feat: port RingTheory.Polynomial.Hermite.Basic (#3967) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/RingTheory/Polynomial/Hermite/Basic.lean + theorem Polynomial.coeff_hermite + theorem Polynomial.coeff_hermite_explicit + theorem Polynomial.coeff_hermite_of_even_add + theorem Polynomial.coeff_hermite_of_lt + theorem Polynomial.coeff_hermite_of_odd_add + theorem Polynomial.coeff_hermite_self + theorem Polynomial.coeff_hermite_succ_succ + theorem Polynomial.coeff_hermite_succ_zero + theorem Polynomial.degree_hermite + theorem Polynomial.hermite_eq_iterate + theorem Polynomial.hermite_monic + theorem Polynomial.hermite_one + theorem Polynomial.hermite_succ + theorem Polynomial.hermite_zero + theorem Polynomial.leadingCoeff_hermite + theorem Polynomial.natDegree_hermite 2023-06-13 06:07:46 95de1de chore: tidy various files (#4997) ESTIMATED CHANGES Modified Mathlib/Algebra/Order/CompleteField.lean +/- def LinearOrderedField.inducedAddHom Modified Mathlib/AlgebraicTopology/FundamentalGroupoid/PUnit.lean Modified Mathlib/CategoryTheory/Closed/Zero.lean + def CategoryTheory.equivPUnit - def CategoryTheory.equivPunit Modified Mathlib/CategoryTheory/IsConnected.lean + def CategoryTheory.discreteIsConnectedEquivPUnit - def CategoryTheory.discreteIsConnectedEquivPunit Modified Mathlib/CategoryTheory/Limits/Comma.lean Modified Mathlib/CategoryTheory/Limits/Unit.lean - def CategoryTheory.Limits.pUnitCocone - def CategoryTheory.Limits.pUnitCoconeIsColimit - def CategoryTheory.Limits.pUnitCone - def CategoryTheory.Limits.pUnitConeIsLimit + def CategoryTheory.Limits.punitCocone + def CategoryTheory.Limits.punitCoconeIsColimit + def CategoryTheory.Limits.punitCone + def CategoryTheory.Limits.punitConeIsLimit Modified Mathlib/CategoryTheory/PUnit.lean - def CategoryTheory.Functor.pUnitExt - theorem CategoryTheory.Functor.pUnit_ext' + def CategoryTheory.Functor.punitExt + theorem CategoryTheory.Functor.punit_ext' - theorem CategoryTheory.equiv_pUnit_iff_unique + theorem CategoryTheory.equiv_punit_iff_unique Modified Mathlib/FieldTheory/IsAlgClosed/Basic.lean + theorem IsAlgClosed.algebraMap_surjective_of_isIntegral' - theorem IsAlgClosed.algebra_map_surjective_of_is_integral' Modified Mathlib/Probability/Integration.lean Modified Mathlib/RingTheory/ClassGroup.lean Modified Mathlib/RingTheory/DedekindDomain/Dvr.lean Modified Mathlib/RingTheory/WittVector/IsPoly.lean 2023-06-13 05:38:21 1bb77b6 feat: port Algebra.Category.Group.Subobject (#4996) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Category/GroupCat/Subobject.lean 2023-06-13 00:47:42 b7cba33 feat: change `ConcreteCategory.hasCoeToFun` to `FunLike` (#4693) ESTIMATED CHANGES Modified Mathlib/Algebra/Category/Ring/Basic.lean + theorem CommRingCat.RingEquiv_coe_eq - theorem CommSemiRing.coe_comp - theorem CommSemiRing.coe_id - theorem CommSemiRing.coe_of - theorem CommSemiRing.ext - theorem CommSemiRing.forget_map - def CommSemiRing.of - def CommSemiRing.ofHom + theorem CommSemiRingCat.RingEquiv_coe_eq + theorem CommSemiRingCat.coe_comp + theorem CommSemiRingCat.coe_id + theorem CommSemiRingCat.coe_of + theorem CommSemiRingCat.ext + theorem CommSemiRingCat.forget_map + def CommSemiRingCat.of + def CommSemiRingCat.ofHom + theorem RingCat.RingEquiv_coe_eq + theorem SemiRingCat.RingEquiv_coe_eq Modified Mathlib/Algebra/Category/Ring/FilteredColimits.lean Modified Mathlib/Algebra/Category/Ring/Limits.lean Modified Mathlib/Algebra/Ring/Equiv.lean +/- theorem RingEquiv.toRingHom_eq_coe Modified Mathlib/AlgebraicGeometry/LocallyRingedSpace.lean Modified Mathlib/AlgebraicGeometry/PresheafedSpace/HasColimits.lean Modified Mathlib/AlgebraicGeometry/RingedSpace.lean Modified Mathlib/AlgebraicGeometry/StructureSheaf.lean Modified Mathlib/AlgebraicTopology/FundamentalGroupoid/Basic.lean Modified Mathlib/AlgebraicTopology/TopologicalSimplex.lean Modified Mathlib/CategoryTheory/ConcreteCategory/Basic.lean + def CategoryTheory.ConcreteCategory.funLike - def CategoryTheory.ConcreteCategory.hasCoeToFun + theorem CategoryTheory.comp_apply' +/- theorem CategoryTheory.comp_apply + theorem CategoryTheory.forget_map_eq_coe +/- theorem CategoryTheory.id_apply Modified Mathlib/CategoryTheory/ConcreteCategory/BundledHom.lean Modified Mathlib/CategoryTheory/Elementwise.lean Modified Mathlib/CategoryTheory/Limits/ConcreteCategory.lean Modified Mathlib/CategoryTheory/MorphismProperty.lean Modified Mathlib/CategoryTheory/Sites/Sheafification.lean Modified Mathlib/CategoryTheory/Sites/Subsheaf.lean Modified Mathlib/CategoryTheory/Sites/Surjective.lean Modified Mathlib/Order/Category/NonemptyFinLinOrdCat.lean Modified Mathlib/RingTheory/Ideal/Operations.lean Modified Mathlib/Tactic/CategoryTheory/Elementwise.lean Modified Mathlib/Topology/Category/CompHaus/EffectiveEpi.lean Modified Mathlib/Topology/Category/CompHaus/Projective.lean Modified Mathlib/Topology/Category/Profinite/Basic.lean Modified Mathlib/Topology/Category/Profinite/CofilteredLimit.lean Modified Mathlib/Topology/Category/Profinite/Projective.lean Modified Mathlib/Topology/Category/TopCat/Basic.lean Modified Mathlib/Topology/Category/TopCat/EpiMono.lean Modified Mathlib/Topology/Category/TopCat/Limits/Basic.lean Modified Mathlib/Topology/Category/TopCat/Limits/Cofiltered.lean Modified Mathlib/Topology/Category/TopCat/Limits/Products.lean Modified Mathlib/Topology/Category/TopCat/Limits/Pullbacks.lean + theorem TopCat.pullbackFst_apply + theorem TopCat.pullbackSnd_apply Modified Mathlib/Topology/Category/TopCat/Opens.lean Modified Mathlib/Topology/Sheaves/Presheaf.lean Modified Mathlib/Topology/Sheaves/SheafCondition/UniqueGluing.lean Modified Mathlib/Topology/Sheaves/Sheafify.lean Modified Mathlib/Topology/Sheaves/Stalks.lean + theorem TopCat.Presheaf.germ_res_apply 2023-06-12 21:52:28 5d417f2 feat: port LinearAlgebra.Eigenspace.Minpoly (#4861) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/CharZero/Lemmas.lean Added Mathlib/LinearAlgebra/Eigenspace/Minpoly.lean + theorem Module.End.aeval_apply_of_hasEigenvector + theorem Module.End.eigenspace_aeval_polynomial_degree_1 + theorem Module.End.hasEigenvalue_iff_isRoot + theorem Module.End.hasEigenvalue_of_isRoot + theorem Module.End.isRoot_of_hasEigenvalue + theorem Module.End.ker_aeval_ring_hom'_unit_polynomial 2023-06-12 20:15:40 42b5fd4 feat: port Probability.Density (#4962) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Probability/Density.lean + theorem MeasureTheory.HasPDF.measurable + theorem MeasureTheory.hasPDF_of_pdf_ne_zero + theorem MeasureTheory.map_eq_set_lintegral_pdf + theorem MeasureTheory.map_eq_withDensity_pdf + theorem MeasureTheory.measurable_of_pdf_ne_zero + theorem MeasureTheory.measurable_pdf + theorem MeasureTheory.pdf.IsUniform.hasPDF + theorem MeasureTheory.pdf.IsUniform.integral_eq + theorem MeasureTheory.pdf.IsUniform.isProbabilityMeasure + theorem MeasureTheory.pdf.IsUniform.measure_preimage + theorem MeasureTheory.pdf.IsUniform.mul_pdf_integrable + theorem MeasureTheory.pdf.IsUniform.pdf_toReal_ae_eq + def MeasureTheory.pdf.IsUniform + theorem MeasureTheory.pdf.hasFiniteIntegral_mul + theorem MeasureTheory.pdf.hasPDF_iff + theorem MeasureTheory.pdf.hasPDF_iff_of_measurable + theorem MeasureTheory.pdf.haveLebesgueDecomposition_of_hasPDF + theorem MeasureTheory.pdf.integrable_iff_integrable_mul_pdf + theorem MeasureTheory.pdf.integral_fun_mul_eq_integral + theorem MeasureTheory.pdf.integral_mul_eq_integral + theorem MeasureTheory.pdf.lintegral_eq_measure_univ + theorem MeasureTheory.pdf.map_absolutelyContinuous + theorem MeasureTheory.pdf.quasiMeasurePreserving_hasPDF' + theorem MeasureTheory.pdf.quasiMeasurePreserving_hasPDF + theorem MeasureTheory.pdf.to_quasiMeasurePreserving + def MeasureTheory.pdf + theorem MeasureTheory.pdf_eq_zero_of_not_measurable + theorem MeasureTheory.pdf_undef + theorem Real.hasPDF_iff 2023-06-12 18:27:48 f16a409 feat: port Analysis.NormedSpace.Star.ContinuousFunctionalCalculus (#4977) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/NormedSpace/Star/ContinuousFunctionalCalculus.lean + theorem StarSubalgebra.coe_isUnit + theorem StarSubalgebra.isUnit_coe_inv_mem + theorem StarSubalgebra.mem_spectrum_iff + theorem StarSubalgebra.spectrum_eq + theorem continuousFunctionalCalculus_map_id + theorem elementalStarAlgebra.bijective_characterSpaceToSpectrum + theorem elementalStarAlgebra.continuous_characterSpaceToSpectrum + theorem elementalStarAlgebra.isUnit_of_isUnit_of_isStarNormal + theorem spectrum_star_mul_self_of_isStarNormal 2023-06-12 15:36:49 021caeb feat: re-port `Analysis.Calculus.Darboux` (#4993) Forward-port leanprover-community/mathlib#19125 by re-porting the file. ESTIMATED CHANGES Modified Mathlib/Analysis/Calculus/Darboux.lean + theorem Convex.image_deriv + theorem Convex.image_derivWithin + theorem Convex.image_hasDerivWithinAt + theorem Set.OrdConnected.image_deriv + theorem Set.OrdConnected.image_derivWithin + theorem Set.OrdConnected.image_hasDerivWithinAt - theorem convex_image_hasDerivAt - theorem deriv_forall_lt_or_forall_gt_of_forall_ne + theorem exists_hasDerivWithinAt_eq_of_ge_of_le + theorem exists_hasDerivWithinAt_eq_of_le_of_ge + theorem hasDerivWithinAt_forall_lt_or_forall_gt_of_forall_ne 2023-06-12 15:16:46 9d9686a feat: port CategoryTheory.Groupoid.Subgroupoid (#4975) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Groupoid/Subgroupoid.lean + inductive CategoryTheory.Subgroupoid.Discrete.Arrows + theorem CategoryTheory.Subgroupoid.IsNormal.conj' + theorem CategoryTheory.Subgroupoid.IsNormal.conjugation_bij + theorem CategoryTheory.Subgroupoid.IsNormal.generatedNormal_le + theorem CategoryTheory.Subgroupoid.IsNormal.vertexSubgroup + structure CategoryTheory.Subgroupoid.IsNormal + theorem CategoryTheory.Subgroupoid.IsWide.eqToHom_mem + theorem CategoryTheory.Subgroupoid.IsWide.id_mem + structure CategoryTheory.Subgroupoid.IsWide + inductive CategoryTheory.Subgroupoid.Map.Arrows + theorem CategoryTheory.Subgroupoid.Map.arrows_iff + def CategoryTheory.Subgroupoid.asWideQuiver + theorem CategoryTheory.Subgroupoid.coe_inv_coe' + def CategoryTheory.Subgroupoid.comap + theorem CategoryTheory.Subgroupoid.comap_comp + theorem CategoryTheory.Subgroupoid.comap_mono + def CategoryTheory.Subgroupoid.disconnect + theorem CategoryTheory.Subgroupoid.disconnect_isTotallyDisconnected + theorem CategoryTheory.Subgroupoid.disconnect_le + theorem CategoryTheory.Subgroupoid.disconnect_normal + theorem CategoryTheory.Subgroupoid.disconnect_objs + def CategoryTheory.Subgroupoid.discrete + theorem CategoryTheory.Subgroupoid.discrete_isNormal + def CategoryTheory.Subgroupoid.full + theorem CategoryTheory.Subgroupoid.full_arrow_eq_iff + theorem CategoryTheory.Subgroupoid.full_empty + theorem CategoryTheory.Subgroupoid.full_mono + theorem CategoryTheory.Subgroupoid.full_objs + theorem CategoryTheory.Subgroupoid.full_univ + theorem CategoryTheory.Subgroupoid.galoisConnection_map_comap + def CategoryTheory.Subgroupoid.generated + def CategoryTheory.Subgroupoid.generatedNormal + theorem CategoryTheory.Subgroupoid.generatedNormal_isNormal + theorem CategoryTheory.Subgroupoid.generated_le_generatedNormal + theorem CategoryTheory.Subgroupoid.hom.faithful + theorem CategoryTheory.Subgroupoid.hom.inj_on_objects + def CategoryTheory.Subgroupoid.hom + theorem CategoryTheory.Subgroupoid.id_mem_of_nonempty_isotropy + theorem CategoryTheory.Subgroupoid.id_mem_of_src + theorem CategoryTheory.Subgroupoid.id_mem_of_tgt + def CategoryTheory.Subgroupoid.im + def CategoryTheory.Subgroupoid.inclusion + theorem CategoryTheory.Subgroupoid.inclusion_comp_embedding + theorem CategoryTheory.Subgroupoid.inclusion_faithful + theorem CategoryTheory.Subgroupoid.inclusion_inj_on_objects + theorem CategoryTheory.Subgroupoid.inclusion_refl + theorem CategoryTheory.Subgroupoid.inclusion_trans + theorem CategoryTheory.Subgroupoid.inv_mem_iff + theorem CategoryTheory.Subgroupoid.isNormal_comap + theorem CategoryTheory.Subgroupoid.isNormal_map + theorem CategoryTheory.Subgroupoid.isTotallyDisconnected_iff + theorem CategoryTheory.Subgroupoid.isWide_iff_objs_eq_univ + def CategoryTheory.Subgroupoid.ker + theorem CategoryTheory.Subgroupoid.ker_comp + theorem CategoryTheory.Subgroupoid.ker_isNormal + theorem CategoryTheory.Subgroupoid.le_comap_map + theorem CategoryTheory.Subgroupoid.le_iff + theorem CategoryTheory.Subgroupoid.le_objs + def CategoryTheory.Subgroupoid.map + theorem CategoryTheory.Subgroupoid.map_comap_le + theorem CategoryTheory.Subgroupoid.map_le_iff_le_comap + theorem CategoryTheory.Subgroupoid.map_mono + theorem CategoryTheory.Subgroupoid.map_objs_eq + theorem CategoryTheory.Subgroupoid.mem_disconnect_objs_iff + theorem CategoryTheory.Subgroupoid.mem_discrete_iff + theorem CategoryTheory.Subgroupoid.mem_full_iff + theorem CategoryTheory.Subgroupoid.mem_full_objs_iff + theorem CategoryTheory.Subgroupoid.mem_iff + theorem CategoryTheory.Subgroupoid.mem_im_iff + theorem CategoryTheory.Subgroupoid.mem_im_objs_iff + theorem CategoryTheory.Subgroupoid.mem_ker_iff + theorem CategoryTheory.Subgroupoid.mem_map_iff + theorem CategoryTheory.Subgroupoid.mem_map_objs_iff + theorem CategoryTheory.Subgroupoid.mem_objs_of_src + theorem CategoryTheory.Subgroupoid.mem_objs_of_tgt + theorem CategoryTheory.Subgroupoid.mem_sInf + theorem CategoryTheory.Subgroupoid.mem_sInf_arrows + theorem CategoryTheory.Subgroupoid.mem_top + theorem CategoryTheory.Subgroupoid.mem_top_objs + theorem CategoryTheory.Subgroupoid.mul_mem_cancel_left + theorem CategoryTheory.Subgroupoid.mul_mem_cancel_right + theorem CategoryTheory.Subgroupoid.obj_surjective_of_im_eq_top + def CategoryTheory.Subgroupoid.objs + theorem CategoryTheory.Subgroupoid.sInf_isNormal + theorem CategoryTheory.Subgroupoid.subset_generated + def CategoryTheory.Subgroupoid.toSet + theorem CategoryTheory.Subgroupoid.top_isNormal + def CategoryTheory.Subgroupoid.vertexSubgroup + structure CategoryTheory.Subgroupoid 2023-06-12 15:03:00 df50c17 feat: port Algebra.Category.Module.Simple (#4992) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Category/ModuleCat/Simple.lean + theorem simple_iff_isSimpleModule + theorem simple_iff_is_simple_module' + theorem simple_of_finrank_eq_one 2023-06-12 14:52:33 41b0484 feat: port Topology.MetricSpace.HausdorffDimension (#4974) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Topology/MetricSpace/HausdorffDimension.lean + theorem AntilipschitzWith.dimH_preimage_le + theorem AntilipschitzWith.le_dimH_image + theorem ContDiff.dense_compl_range_of_finrank_lt_finrank + theorem ContDiff.dimH_range_le + theorem ContDiffOn.dense_compl_image_of_dimH_lt_finrank + theorem ContDiffOn.dimH_image_le + theorem ContinuousLinearEquiv.dimH_image + theorem ContinuousLinearEquiv.dimH_preimage + theorem ContinuousLinearEquiv.dimH_univ + theorem HolderOnWith.dimH_image_le + theorem HolderWith.dimH_image_le + theorem HolderWith.dimH_range_le + theorem Isometry.dimH_image + theorem IsometryEquiv.dimH_image + theorem IsometryEquiv.dimH_preimage + theorem IsometryEquiv.dimH_univ + theorem LipschitzOnWith.dimH_image_le + theorem LipschitzWith.dimH_image_le + theorem LipschitzWith.dimH_range_le + theorem Real.dimH_ball_pi + theorem Real.dimH_ball_pi_fin + theorem Real.dimH_of_mem_nhds + theorem Real.dimH_of_nonempty_interior + theorem Real.dimH_univ + theorem Real.dimH_univ_eq_finrank + theorem Real.dimH_univ_pi + theorem Real.dimH_univ_pi_fin + theorem bsupr_limsup_dimH + theorem dense_compl_of_dimH_lt_finrank + theorem dimH_bUnion + theorem dimH_coe_finset + theorem dimH_countable + theorem dimH_def + theorem dimH_empty + theorem dimH_finite + theorem dimH_iUnion + theorem dimH_image_le_of_locally_holder_on + theorem dimH_image_le_of_locally_lipschitz_on + theorem dimH_le + theorem dimH_le_of_hausdorffMeasure_ne_top + theorem dimH_mono + theorem dimH_of_hausdorffMeasure_ne_zero_ne_top + theorem dimH_range_le_of_locally_holder_on + theorem dimH_range_le_of_locally_lipschitz_on + theorem dimH_sUnion + theorem dimH_singleton + theorem dimH_subsingleton + theorem dimH_union + theorem exists_mem_nhdsWithin_lt_dimH_of_lt_dimH + theorem hausdorffMeasure_of_dimH_lt + theorem hausdorffMeasure_of_lt_dimH + theorem iSup_limsup_dimH + theorem le_dimH_of_hausdorffMeasure_eq_top + theorem le_dimH_of_hausdorffMeasure_ne_zero + theorem measure_zero_of_dimH_lt 2023-06-12 14:27:20 25c2987 feat: reimplement the banning of import tactic (#4991) ESTIMATED CHANGES Modified scripts/lint-style.py 2023-06-12 14:10:24 e738670 feat: final functors preserve filteredness (#4973) Also generalize some facts about `IsFiltered` to `IsFilteredOrEmpty`. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Filtered.lean + theorem CategoryTheory.IsCofilteredOrEmpty.of_equivalence + theorem CategoryTheory.IsCofilteredOrEmpty.of_isLeftAdjoint + theorem CategoryTheory.IsCofilteredOrEmpty.of_left_adjoint + theorem CategoryTheory.IsFilteredOrEmpty.of_equivalence + theorem CategoryTheory.IsFilteredOrEmpty.of_isRightAdjoint + theorem CategoryTheory.IsFilteredOrEmpty.of_right_adjoint + theorem CategoryTheory.isCofilteredOrEmpty_of_isFilteredOrEmpty_op + theorem CategoryTheory.isCofiltered_of_isFiltered_op + theorem CategoryTheory.isFilteredOrEmpty_of_isCofilteredOrEmpty_op + theorem CategoryTheory.isFiltered_of_isCofiltered_op Modified Mathlib/CategoryTheory/Limits/Final.lean + theorem CategoryTheory.IsCofiltered.of_initial + theorem CategoryTheory.IsCofilteredOrEmpty.of_initial + theorem CategoryTheory.IsFiltered.of_final + theorem CategoryTheory.IsFilteredOrEmpty.of_final 2023-06-12 12:56:09 2da2fd3 chore: forward port leanprover-community/mathlib#19118 (#4831) This also removes a stray `import Mathlib.Tactic`, which causes a downstream file to break. ESTIMATED CHANGES Modified Mathlib/Data/Real/GoldenRatio.lean Modified Mathlib/RingTheory/TensorProduct.lean +/- theorem Algebra.TensorProduct.algebraMap_apply 2023-06-12 10:54:53 43cb986 fix: correct for surprising precedence in Bool DeMorgan laws (#4987) The DeMorgan laws as stated were being parsed as an inequality ```lean ! ((a && b) = (!a || !b)) ``` So, I added parenthesis to force the intended meaning of ```lean (!(a && b)) = (!a || !b) ``` ESTIMATED CHANGES Modified Mathlib/Data/Bool/Basic.lean +/- theorem Bool.not_and +/- theorem Bool.not_or 2023-06-12 10:22:34 54b7211 chore: fix many typos (#4983) These are all doc fixes ESTIMATED CHANGES Modified Cache/Requests.lean Modified Mathlib/Algebra/Abs.lean Modified Mathlib/Algebra/CharP/Invertible.lean Modified Mathlib/Algebra/DirectSum/Ring.lean Modified Mathlib/Algebra/GradedMonoid.lean Modified Mathlib/Algebra/Group/Prod.lean Modified Mathlib/Algebra/GroupWithZero/Defs.lean Modified Mathlib/Algebra/Homology/LocalCohomology.lean Modified Mathlib/Algebra/Module/Hom.lean Modified Mathlib/Algebra/Module/Torsion.lean Modified Mathlib/Algebra/Order/Monoid/Canonical/Defs.lean Modified Mathlib/AlgebraicTopology/SplitSimplicialObject.lean Modified Mathlib/Analysis/Calculus/LHopital.lean Modified Mathlib/Analysis/InnerProductSpace/Basic.lean Modified Mathlib/Analysis/InnerProductSpace/PiL2.lean Modified Mathlib/Analysis/NormedSpace/PiLp.lean Modified Mathlib/Analysis/NormedSpace/Spectrum.lean Modified Mathlib/Analysis/NormedSpace/Star/GelfandDuality.lean Modified Mathlib/CategoryTheory/Abelian/Exact.lean Modified Mathlib/CategoryTheory/Bicategory/Basic.lean Modified Mathlib/CategoryTheory/Bicategory/NaturalTransformation.lean Modified Mathlib/CategoryTheory/Equivalence.lean Modified Mathlib/CategoryTheory/GlueData.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Pullbacks.lean Modified Mathlib/CategoryTheory/Limits/Shapes/StrictInitial.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Types.lean Modified Mathlib/CategoryTheory/Monad/Adjunction.lean Modified Mathlib/CategoryTheory/Shift/Basic.lean Modified Mathlib/Computability/EpsilonNFA.lean Modified Mathlib/Data/Fin/Basic.lean Modified Mathlib/Data/Finite/Defs.lean Modified Mathlib/Data/Finset/Image.lean Modified Mathlib/Data/List/Infix.lean Modified Mathlib/Data/PFunctor/Univariate/M.lean Modified Mathlib/Data/Polynomial/Reverse.lean Modified Mathlib/Data/Polynomial/RingDivision.lean Modified Mathlib/Data/Real/ENNReal.lean Modified Mathlib/Data/Sym/Basic.lean Modified Mathlib/GroupTheory/Nilpotent.lean Modified Mathlib/GroupTheory/QuotientGroup.lean Modified Mathlib/GroupTheory/Subgroup/Basic.lean Modified Mathlib/GroupTheory/Transfer.lean Modified Mathlib/LinearAlgebra/Dimension.lean Modified Mathlib/MeasureTheory/Measure/Hausdorff.lean Modified Mathlib/Order/Filter/Extr.lean Modified Mathlib/Order/Heyting/Hom.lean Modified Mathlib/Order/Lattice.lean Modified Mathlib/Order/LiminfLimsup.lean Modified Mathlib/Order/Monotone/Basic.lean Modified Mathlib/Probability/CondCount.lean Modified Mathlib/RingTheory/DedekindDomain/Ideal.lean Modified Mathlib/RingTheory/Derivation/ToSquareZero.lean Modified Mathlib/RingTheory/FiniteType.lean Modified Mathlib/RingTheory/Perfection.lean Modified Mathlib/RingTheory/Subring/Basic.lean Modified Mathlib/SetTheory/Game/PGame.lean Modified Mathlib/Tactic/DeriveFintype.lean Modified Mathlib/Tactic/Explode/Datatypes.lean Modified Mathlib/Tactic/NormNum/Basic.lean Modified Mathlib/Topology/Algebra/GroupWithZero.lean Modified Mathlib/Topology/Algebra/Nonarchimedean/Bases.lean Modified Mathlib/Topology/Algebra/StarSubalgebra.lean Modified Mathlib/Topology/UniformSpace/UniformConvergenceTopology.lean Modified Mathlib/Topology/UrysohnsLemma.lean Modified Mathlib/Util/PiNotation.lean Modified test/Clear_.lean Modified test/Simps.lean Modified test/polyrith.lean 2023-06-12 09:47:52 546f6ba chore: forward-port leanprover-community/mathlib#19120 (#4958) ESTIMATED CHANGES Modified Mathlib/Data/Polynomial/Div.lean + theorem Polynomial.X_sub_C_dvd_sub_C_eval + theorem Polynomial.mem_span_C_X_sub_C_X_sub_C_iff_eval_eval_eq_zero 2023-06-12 09:47:51 eba2601 feat: port Algebra.Lie.Engel (#4926) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Lie/Engel.lean + theorem Function.Surjective.isEngelian + def LieAlgebra.IsEngelian + theorem LieAlgebra.exists_engelian_lieSubalgebra_of_lt_normalizer + theorem LieAlgebra.isEngelian_of_isNoetherian + theorem LieAlgebra.isEngelian_of_subsingleton + theorem LieAlgebra.isNilpotent_iff_forall + theorem LieEquiv.isEngelian_iff + theorem LieModule.isNilpotent_iff_forall + theorem LieSubmodule.exists_smul_add_of_span_sup_eq_top + theorem LieSubmodule.isNilpotentOfIsNilpotentSpanSupEqTop + theorem LieSubmodule.lcs_le_lcs_of_is_nilpotent_span_sup_eq_top + theorem LieSubmodule.lie_top_eq_of_span_sup_eq_top 2023-06-12 09:36:58 4729d1c chore: forward-port leanprover-community/mathlib#19121 (#4959) ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/FreeModule/IdealQuotient.lean +/- theorem Ideal.finrank_quotient_eq_sum 2023-06-12 09:24:11 1ab969a feat: port CategoryTheory.Monoidal.Center (#4941) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Monoidal/Center.lean + structure CategoryTheory.Center.Hom + def CategoryTheory.Center.associator + theorem CategoryTheory.Center.associator_hom_f + theorem CategoryTheory.Center.associator_inv_f + def CategoryTheory.Center.braiding + theorem CategoryTheory.Center.comp_f + theorem CategoryTheory.Center.ext + def CategoryTheory.Center.forget + theorem CategoryTheory.Center.id_f + def CategoryTheory.Center.isoMk + def CategoryTheory.Center.leftUnitor + theorem CategoryTheory.Center.leftUnitor_hom_f + theorem CategoryTheory.Center.leftUnitor_inv_f + def CategoryTheory.Center.ofBraided + def CategoryTheory.Center.ofBraidedObj + def CategoryTheory.Center.rightUnitor + theorem CategoryTheory.Center.rightUnitor_hom_f + theorem CategoryTheory.Center.rightUnitor_inv_f + def CategoryTheory.Center.tensorHom + def CategoryTheory.Center.tensorObj + def CategoryTheory.Center.tensorUnit + theorem CategoryTheory.Center.tensorUnit_β + theorem CategoryTheory.Center.tensor_f + theorem CategoryTheory.Center.tensor_fst + theorem CategoryTheory.Center.tensor_β + def CategoryTheory.Center + structure CategoryTheory.HalfBraiding 2023-06-12 08:12:34 889ec59 feat: port Algebra.Category.Module.Subobject (#4224) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Category/ModuleCat/Subobject.lean + theorem ModuleCat.cokernel_π_imageSubobject_ext + theorem ModuleCat.toKernelSubobject_arrow 2023-06-12 07:56:43 6d9f81d fix: fix simp regression (#4982) Presumably a consequence of https://github.com/leanprover/lean4/pull/2266 . ESTIMATED CHANGES Modified Mathlib/Data/Nat/Factorization/Basic.lean 2023-06-12 05:44:51 f9de2aa feat: port CategoryTheory.Bicategory.FunctorBicategory (#4976) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Bicategory/FunctorBicategory.lean + def CategoryTheory.OplaxNatTrans.associator + def CategoryTheory.OplaxNatTrans.leftUnitor + def CategoryTheory.OplaxNatTrans.rightUnitor + def CategoryTheory.OplaxNatTrans.whiskerLeft + def CategoryTheory.OplaxNatTrans.whiskerRight Modified Mathlib/CategoryTheory/Bicategory/NaturalTransformation.lean + theorem CategoryTheory.OplaxNatTrans.Modification.comp_app' + theorem CategoryTheory.OplaxNatTrans.Modification.id_app' + theorem CategoryTheory.OplaxNatTrans.ext 2023-06-12 04:10:15 04fc2f1 feat: port MeasureTheory.Integral.TorusIntegral (#4942) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/MeasureTheory/Integral/TorusIntegral.lean + theorem TorusIntegrable.function_integrable + theorem TorusIntegrable.torusIntegrable_const + theorem TorusIntegrable.torusIntegrable_zero_radius + def TorusIntegrable + theorem norm_torusIntegral_le_of_norm_le_const + def torusIntegral + theorem torusIntegral_add + theorem torusIntegral_const_mul + theorem torusIntegral_dim0 + theorem torusIntegral_dim1 + theorem torusIntegral_neg + theorem torusIntegral_radius_zero + theorem torusIntegral_smul + theorem torusIntegral_sub + theorem torusIntegral_succ + theorem torusIntegral_succAbove + def torusMap + theorem torusMap_eq_center_iff + theorem torusMap_sub_center + theorem torusMap_zero_radius 2023-06-12 02:21:54 269ae93 feat: port `#explode` (#1218) Ported from [/explode.lean](https://github.com/leanprover-community/mathlib/blob/master/src/tactic/explode.lean). ### Example output ``` lemma_5 : ∀ (p q : Prop), (¬q → ¬p) → p → q 0 │ │ p ├ Prop 1 │ │ q ├ Prop 2 │ │ hNQNP ├ ¬q → ¬p 3 │ │ hP ├ p 4 │ │ Classical.em │ q ∨ ¬q 5 │ │ hQ │ ┌ q 6 │5,5 │ ∀I │ q → q 7 │ │ hNQ │ ┌ ¬q 8 │2,7 │ ∀E │ │ ¬p 10│8,3 │ ∀E │ │ False 11│10 │ False.elim │ │ q 12│7,11 │ ∀I │ ¬q → q 13│4,6,12 │ Or.elim │ q 14│0,1,2,3,13│ ∀I │ ∀ (p q : Prop), (¬q → ¬p) → p → q ``` ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Mathport/Syntax.lean Modified Mathlib/Tactic.lean Added Mathlib/Tactic/Explode.lean + def Mathlib.Explode.explode + def Mathlib.Explode.ppConst Added Mathlib/Tactic/Explode/Datatypes.lean + def Mathlib.Explode.Entries.add + def Mathlib.Explode.Entries.addSynonym + def Mathlib.Explode.Entries.find? + def Mathlib.Explode.Entries.size + structure Mathlib.Explode.Entries + def Mathlib.Explode.Entry.line! + structure Mathlib.Explode.Entry + inductive Mathlib.Explode.Status Added Mathlib/Tactic/Explode/Pretty.lean + def Mathlib.Explode.entriesToMessageData + def Mathlib.Explode.padRight + def Mathlib.Explode.rowToMessageData Added test/Explode.lean + theorem application + theorem lambda + theorem lemma_5' + theorem lemma_5 + theorem lemma_6 + theorem lemma_7 + theorem theorem_1 + theorem theorem_2 + theorem theorem_3 + theorem theorem_4 2023-06-12 01:02:51 5068808 chore: formatting issues (#4947) ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/Equiv.lean +/- theorem AlgEquiv.aut_mul +/- theorem AlgEquiv.aut_one Modified Mathlib/Algebra/Algebra/Hom.lean Modified Mathlib/Algebra/Algebra/Operations.lean Modified Mathlib/Algebra/BigOperators/Order.lean Modified Mathlib/Algebra/BigOperators/Pi.lean Modified Mathlib/Algebra/Category/GroupCat/Basic.lean Modified Mathlib/Algebra/Category/GroupCat/Colimits.lean Modified Mathlib/Algebra/Category/Mon/FilteredColimits.lean Modified Mathlib/Algebra/Category/MonCat/Basic.lean Modified Mathlib/Algebra/Category/Ring/Limits.lean Modified Mathlib/Algebra/DirectLimit.lean Modified Mathlib/Algebra/DirectSum/Module.lean Modified Mathlib/Algebra/Free.lean Modified Mathlib/Algebra/FreeMonoid/Basic.lean Modified Mathlib/Algebra/FreeMonoid/Count.lean +/- theorem FreeAddMonoid.countp_of Modified Mathlib/Algebra/GradedMonoid.lean Modified Mathlib/Algebra/Group/OrderSynonym.lean Modified Mathlib/Algebra/Group/UniqueProds.lean Modified Mathlib/Algebra/Group/Units.lean Modified Mathlib/Algebra/GroupPower/Lemmas.lean Modified Mathlib/Algebra/GroupWithZero/Defs.lean Modified Mathlib/Algebra/GroupWithZero/Units/Basic.lean +/- theorem Units.exists0 Modified Mathlib/Algebra/HierarchyDesign.lean Modified Mathlib/Algebra/Hom/Equiv/Basic.lean Modified Mathlib/Algebra/Hom/Group.lean Modified Mathlib/Algebra/Hom/GroupAction.lean +/- theorem DistribMulActionHom.toFun_eq_coe Modified Mathlib/Algebra/Hom/Ring.lean Modified Mathlib/Algebra/Homology/Additive.lean Modified Mathlib/Algebra/Homology/HomologicalComplex.lean +/- def ChainComplex.MkStruct.flat +/- def CochainComplex.MkStruct.flat Modified Mathlib/Algebra/Homology/Homotopy.lean Modified Mathlib/Algebra/Homology/HomotopyCategory.lean Modified Mathlib/Algebra/IsPrimePow.lean +/- theorem isPrimePow_def +/- theorem isPrimePow_iff_pow_succ Modified Mathlib/Algebra/Lie/Basic.lean Modified Mathlib/Algebra/Module/GradedModule.lean Modified Mathlib/Algebra/Module/LocalizedModule.lean Modified Mathlib/Algebra/Order/Floor.lean +/- theorem Int.preimage_ceil_singleton +/- theorem Int.preimage_floor_singleton Modified Mathlib/Algebra/Order/Hom/Monoid.lean Modified Mathlib/Algebra/Order/Hom/Ring.lean +/- theorem OrderRingIso.trans_toRingEquiv +/- theorem OrderRingIso.trans_toRingEquiv_aux Modified Mathlib/Algebra/Order/ZeroLEOne.lean Modified Mathlib/Algebra/PUnitInstances.lean +/- theorem PUnit.norm_unit_eq Modified Mathlib/Algebra/Periodic.lean Modified Mathlib/Algebra/Ring/Divisibility.lean Modified Mathlib/Algebra/Ring/Opposite.lean Modified Mathlib/Algebra/Star/Basic.lean +/- theorem star_ofNat Modified Mathlib/AlgebraicGeometry/PresheafedSpace/HasColimits.lean Modified Mathlib/AlgebraicGeometry/PrimeSpectrum/Basic.lean Modified Mathlib/AlgebraicGeometry/StructureSheaf.lean Modified Mathlib/AlgebraicTopology/DoldKan/Projections.lean +/- theorem AlgebraicTopology.DoldKan.P_succ Modified Mathlib/AlgebraicTopology/SimplexCategory.lean Modified Mathlib/AlgebraicTopology/SimplicialSet.lean Modified Mathlib/Analysis/Asymptotics/Asymptotics.lean Modified Mathlib/Analysis/InnerProductSpace/PiL2.lean Modified Mathlib/Analysis/InnerProductSpace/l2Space.lean +/- theorem exists_hilbertBasis Modified Mathlib/Analysis/LocallyConvex/BalancedCoreHull.lean +/- theorem mem_balancedHull_iff Modified Mathlib/Analysis/LocallyConvex/WithSeminorms.lean Modified Mathlib/Analysis/NormedSpace/Banach.lean Modified Mathlib/Analysis/NormedSpace/FiniteDimension.lean Modified Mathlib/Analysis/NormedSpace/HahnBanach/Separation.lean Modified Mathlib/CategoryTheory/Adjunction/AdjointFunctorTheorems.lean Modified Mathlib/CategoryTheory/Bicategory/Functor.lean Modified Mathlib/CategoryTheory/Category/Basic.lean Modified Mathlib/CategoryTheory/Endofunctor/Algebra.lean Modified Mathlib/CategoryTheory/EpiMono.lean Modified Mathlib/CategoryTheory/Filtered.lean Modified Mathlib/CategoryTheory/FintypeCat.lean +/- theorem FintypeCat.hom_ext Modified Mathlib/CategoryTheory/FullSubcategory.lean +/- def CategoryTheory.InducedCategory Modified Mathlib/CategoryTheory/GlueData.lean Modified Mathlib/CategoryTheory/Idempotents/Basic.lean Modified Mathlib/CategoryTheory/Limits/ConcreteCategory.lean Modified Mathlib/CategoryTheory/Limits/FilteredColimitCommutesFiniteLimit.lean Modified Mathlib/CategoryTheory/Limits/IsLimit.lean +/- def CategoryTheory.Limits.IsColimit.OfNatIso.homOfCocone Modified Mathlib/CategoryTheory/Limits/Shapes/Equalizers.lean +/- theorem CategoryTheory.Limits.WalkingParallelPairHom.comp_id +/- theorem CategoryTheory.Limits.WalkingParallelPairHom.id_comp Modified Mathlib/CategoryTheory/Limits/Shapes/Images.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Kernels.lean Modified Mathlib/CategoryTheory/Limits/Shapes/NormalMono/Basic.lean +/- def CategoryTheory.NormalEpi.desc' Modified Mathlib/CategoryTheory/Limits/Shapes/Reflexive.lean +/- theorem CategoryTheory.IsCoreflexivePair.common_retraction +/- theorem CategoryTheory.IsReflexivePair.common_section Modified Mathlib/CategoryTheory/Limits/Shapes/SplitCoequalizer.lean Modified Mathlib/CategoryTheory/Limits/Types.lean Modified Mathlib/CategoryTheory/Opposites.lean Modified Mathlib/CategoryTheory/Preadditive/Biproducts.lean Modified Mathlib/CategoryTheory/Preadditive/Yoneda/Projective.lean +/- theorem CategoryTheory.Projective.projective_iff_preservesEpimorphisms_preadditiveCoyoneda_obj Modified Mathlib/CategoryTheory/Shift/Basic.lean +/- theorem CategoryTheory.shiftFunctorAdd'_add_zero_hom_app +/- theorem CategoryTheory.shiftFunctorAdd'_add_zero_inv_app +/- theorem CategoryTheory.shiftFunctorAdd_add_zero_hom_app +/- theorem CategoryTheory.shiftFunctorAdd_add_zero_inv_app +/- theorem CategoryTheory.shiftFunctorComm_eq Modified Mathlib/CategoryTheory/Sites/Grothendieck.lean +/- theorem CategoryTheory.GrothendieckTopology.dense_covering Modified Mathlib/CategoryTheory/Sites/SheafOfTypes.lean Modified Mathlib/CategoryTheory/Sites/Sheafification.lean Modified Mathlib/CategoryTheory/Sites/Sieves.lean Modified Mathlib/CategoryTheory/Sites/Spaces.lean Modified Mathlib/CategoryTheory/StructuredArrow.lean Modified Mathlib/CategoryTheory/Triangulated/Pretriangulated.lean Modified Mathlib/CategoryTheory/Yoneda.lean Modified Mathlib/Combinatorics/Additive/SalemSpencer.lean Modified Mathlib/Combinatorics/Composition.lean Modified Mathlib/Combinatorics/Configuration.lean Modified Mathlib/Combinatorics/HalesJewett.lean Modified Mathlib/Combinatorics/Quiver/Path.lean Modified Mathlib/Combinatorics/SetFamily/LYM.lean +/- theorem Finset.card_mul_le_card_shadow_mul Modified Mathlib/Combinatorics/SetFamily/Shadow.lean +/- theorem Finset.mem_shadow_iff_insert_mem +/- theorem Finset.mem_upShadow_iff Modified Mathlib/Combinatorics/SimpleGraph/Basic.lean Modified Mathlib/Combinatorics/SimpleGraph/Connectivity.lean Modified Mathlib/Combinatorics/SimpleGraph/Ends/Defs.lean Modified Mathlib/Computability/TuringMachine.lean Modified Mathlib/Control/Monad/Writer.lean Modified Mathlib/Control/Traversable/Basic.lean Modified Mathlib/Data/Bool/Basic.lean +/- theorem Bool.eq_iff_eq_true_iff Modified Mathlib/Data/ByteArray.lean Modified Mathlib/Data/Complex/Basic.lean Modified Mathlib/Data/DList/Basic.lean Modified Mathlib/Data/Fin/Basic.lean +/- theorem Fin.castSucc_lt_castSucc_iff Modified Mathlib/Data/Finset/Basic.lean +/- theorem Finset.ssubset_iff_exists_cons_subset Modified Mathlib/Data/Finset/Card.lean Modified Mathlib/Data/Finset/NAry.lean Modified Mathlib/Data/Finset/Pointwise.lean +/- theorem Finset.coe_pow +/- theorem Finset.coe_zpow Modified Mathlib/Data/Finset/Powerset.lean Modified Mathlib/Data/Finset/Preimage.lean Modified Mathlib/Data/Finset/Sigma.lean Modified Mathlib/Data/Finsupp/BigOperators.lean Modified Mathlib/Data/Finsupp/Defs.lean Modified Mathlib/Data/FunLike/Basic.lean Modified Mathlib/Data/FunLike/Embedding.lean Modified Mathlib/Data/FunLike/Equiv.lean Modified Mathlib/Data/HashMap.lean Modified Mathlib/Data/Holor.lean Modified Mathlib/Data/Int/Basic.lean Modified Mathlib/Data/Int/Cast/Lemmas.lean Modified Mathlib/Data/Int/GCD.lean Modified Mathlib/Data/Int/Log.lean Modified Mathlib/Data/Int/Order/Basic.lean Modified Mathlib/Data/List/Basic.lean +/- theorem List.modifyLast.go_append_one Modified Mathlib/Data/List/Card.lean Modified Mathlib/Data/List/Cycle.lean Modified Mathlib/Data/List/OfFn.lean Modified Mathlib/Data/List/Perm.lean Modified Mathlib/Data/List/Sigma.lean Modified Mathlib/Data/ListM/DepthFirst.lean Modified Mathlib/Data/Multiset/Basic.lean Modified Mathlib/Data/Multiset/Fintype.lean Modified Mathlib/Data/MvPolynomial/Monad.lean Modified Mathlib/Data/MvPolynomial/Rename.lean Modified Mathlib/Data/MvPolynomial/Variables.lean Modified Mathlib/Data/Nat/ModEq.lean Modified Mathlib/Data/Nat/Pow.lean Modified Mathlib/Data/Option/Basic.lean Modified Mathlib/Data/Option/Defs.lean Modified Mathlib/Data/Ordmap/Ordnode.lean +/- def Ordnode.repr Modified Mathlib/Data/PFunctor/Multivariate/Basic.lean Modified Mathlib/Data/PFunctor/Multivariate/M.lean Modified Mathlib/Data/PFunctor/Univariate/M.lean Modified Mathlib/Data/PNat/Find.lean Modified Mathlib/Data/Pi/Algebra.lean +/- theorem Function.extend_mul Modified Mathlib/Data/Polynomial/DenomsClearable.lean Modified Mathlib/Data/Polynomial/Div.lean Modified Mathlib/Data/Polynomial/EraseLead.lean Modified Mathlib/Data/Polynomial/Laurent.lean +/- theorem LaurentPolynomial.exists_T_pow Modified Mathlib/Data/Polynomial/PartialFractions.lean Modified Mathlib/Data/Prod/Basic.lean Modified Mathlib/Data/QPF/Multivariate/Basic.lean Modified Mathlib/Data/Real/NNReal.lean +/- theorem NNReal.toReal_le_toReal Modified Mathlib/Data/Seq/Computation.lean +/- def Computation.orElse Modified Mathlib/Data/Seq/WSeq.lean Modified Mathlib/Data/Set/Basic.lean +/- theorem Set.eq_singleton_or_nontrivial Modified Mathlib/Data/Set/Finite.lean Modified Mathlib/Data/Set/Function.lean +/- theorem Set.surjOn_iff_exists_bijOn_subset Modified Mathlib/Data/Set/Image.lean Modified Mathlib/Data/Set/Lattice.lean Modified Mathlib/Data/Set/NAry.lean +/- theorem Set.image2_inter_left +/- theorem Set.image2_inter_right Modified Mathlib/Data/Set/Pointwise/BigOperators.lean Modified Mathlib/Data/Set/Prod.lean Modified Mathlib/Data/SetLike/Basic.lean Modified Mathlib/Data/Setoid/Partition.lean +/- theorem Setoid.classes_eqv_classes +/- theorem Setoid.eq_eqv_class_of_mem +/- theorem Setoid.eq_of_mem_eqv_class +/- theorem Setoid.eqv_class_mem' +/- theorem Setoid.eqv_class_mem +/- theorem Setoid.eqv_classes_disjoint +/- def Setoid.mkClasses Modified Mathlib/Data/String/Defs.lean Modified Mathlib/Data/String/Lemmas.lean +/- theorem String.length_eq_list_length +/- theorem String.length_replicate Modified Mathlib/Data/Sum/Basic.lean +/- theorem Sum.getLeft_map +/- theorem Sum.isLeft_map +/- theorem Sum.isRight_map Modified Mathlib/Data/Sym/Basic.lean +/- theorem Sym.exists_eq_cons_of_succ Modified Mathlib/Data/TypeVec.lean Modified Mathlib/Data/UnionFind.lean Modified Mathlib/Data/Vector/Basic.lean +/- theorem Vector.exists_eq_cons Modified Mathlib/Data/Vector3.lean +/- theorem Vector3.consElim_cons Modified Mathlib/Data/W/Basic.lean Modified Mathlib/Data/ZMod/Basic.lean +/- theorem ZMod.int_cast_rightInverse Modified Mathlib/FieldTheory/Finite/Basic.lean +/- theorem FiniteField.card' Modified Mathlib/FieldTheory/RatFunc.lean Modified Mathlib/FieldTheory/Separable.lean Modified Mathlib/Geometry/Euclidean/Sphere/Basic.lean Modified Mathlib/Geometry/Manifold/Instances/Real.lean Modified Mathlib/Geometry/Manifold/Instances/UnitsOfNormedAlgebra.lean Modified Mathlib/GroupTheory/Finiteness.lean Modified Mathlib/GroupTheory/FreeGroup.lean +/- theorem FreeGroup.reduce.not Modified Mathlib/GroupTheory/FreeProduct.lean +/- theorem FreeProduct.NeWord.of_word Modified Mathlib/GroupTheory/MonoidLocalization.lean +/- theorem Submonoid.LocalizationMap.mk'_surjective +/- theorem Submonoid.LocalizationMap.mul_inv_left Modified Mathlib/GroupTheory/Perm/Basic.lean +/- theorem Equiv.pow_addLeft +/- theorem Equiv.pow_addRight +/- theorem Equiv.pow_mulLeft +/- theorem Equiv.pow_mulRight Modified Mathlib/GroupTheory/Perm/Sign.lean Modified Mathlib/GroupTheory/SpecificGroups/Cyclic.lean Modified Mathlib/GroupTheory/Subgroup/Basic.lean +/- theorem Subgroup.mem_sup' Modified Mathlib/GroupTheory/Submonoid/Operations.lean Modified Mathlib/GroupTheory/Subsemigroup/Center.lean Modified Mathlib/GroupTheory/Subsemigroup/Operations.lean Modified Mathlib/Init/Algebra/Classes.lean Modified Mathlib/Init/Algebra/Functions.lean +/- theorem max_eq_left +/- theorem max_eq_right +/- theorem min_assoc +/- theorem min_eq_left +/- theorem min_eq_right Modified Mathlib/Init/Algebra/Order.lean Modified Mathlib/Init/Data/Int/Bitwise.lean Modified Mathlib/Init/Data/List/Basic.lean Modified Mathlib/Init/Data/Nat/Lemmas.lean Modified Mathlib/Init/Data/Ordering/Basic.lean Modified Mathlib/Init/Function.lean Modified Mathlib/Init/Set.lean Modified Mathlib/Lean/Expr/Basic.lean +/- def Lean.Expr.getArg? +/- def Lean.Expr.modifyRevArg Modified Mathlib/Lean/Expr/Traverse.lean Modified Mathlib/LinearAlgebra/AffineSpace/AffineSubspace.lean Modified Mathlib/LinearAlgebra/AffineSpace/Basis.lean +/- theorem AffineBasis.exists_affineBasis Modified Mathlib/LinearAlgebra/AffineSpace/Combination.lean Modified Mathlib/LinearAlgebra/Basic.lean Modified Mathlib/LinearAlgebra/Basis.lean Modified Mathlib/LinearAlgebra/Dual.lean Modified Mathlib/LinearAlgebra/FreeModule/PID.lean Modified Mathlib/LinearAlgebra/LinearIndependent.lean Modified Mathlib/LinearAlgebra/Matrix/SesquilinearForm.lean Modified Mathlib/LinearAlgebra/Matrix/SpecialLinearGroup.lean Modified Mathlib/LinearAlgebra/Matrix/ToLinearEquiv.lean Modified Mathlib/LinearAlgebra/Matrix/Transvection.lean Modified Mathlib/LinearAlgebra/Projection.lean Modified Mathlib/LinearAlgebra/ProjectiveSpace/Independence.lean Modified Mathlib/LinearAlgebra/QuadraticForm/Isometry.lean Modified Mathlib/LinearAlgebra/Ray.lean Modified Mathlib/LinearAlgebra/Span.lean +/- theorem Submodule.mem_sup' Modified Mathlib/Logic/Basic.lean Modified Mathlib/Logic/Encodable/Basic.lean +/- theorem Encodable.decode_one Modified Mathlib/Logic/Equiv/Defs.lean Modified Mathlib/Logic/Function/Basic.lean +/- theorem Function.hfunext Modified Mathlib/Logic/Lemmas.lean Modified Mathlib/Logic/Relator.lean Modified Mathlib/Logic/Small/Basic.lean Modified Mathlib/MeasureTheory/Constructions/BorelSpace/Basic.lean Modified Mathlib/MeasureTheory/Constructions/BorelSpace/Metrizable.lean Modified Mathlib/MeasureTheory/Decomposition/Jordan.lean Modified Mathlib/MeasureTheory/Function/StronglyMeasurable/Basic.lean Modified Mathlib/MeasureTheory/Integral/CircleIntegral.lean Modified Mathlib/MeasureTheory/Measure/Haar/OfBasis.lean Modified Mathlib/MeasureTheory/Measure/MeasureSpace.lean Modified Mathlib/MeasureTheory/Measure/NullMeasurable.lean Modified Mathlib/MeasureTheory/Measure/OuterMeasure.lean Modified Mathlib/MeasureTheory/Measure/Regular.lean Modified Mathlib/ModelTheory/FinitelyGenerated.lean Modified Mathlib/NumberTheory/ArithmeticFunction.lean Modified Mathlib/NumberTheory/Padics/PadicNumbers.lean Modified Mathlib/NumberTheory/PellMatiyasevic.lean Modified Mathlib/NumberTheory/PythagoreanTriples.lean Modified Mathlib/Order/BooleanAlgebra.lean Modified Mathlib/Order/CompleteLattice.lean Modified Mathlib/Order/ConditionallyCompleteLattice/Basic.lean Modified Mathlib/Order/Disjoint.lean Modified Mathlib/Order/Hom/Basic.lean Modified Mathlib/Order/MinMax.lean Modified Mathlib/Order/Partition/Finpartition.lean Modified Mathlib/Order/SuccPred/Basic.lean Modified Mathlib/Order/SupIndep.lean Modified Mathlib/Order/WellFoundedSet.lean Modified Mathlib/Order/WithBot.lean Modified Mathlib/Order/ZornAtoms.lean Modified Mathlib/RingTheory/Algebraic.lean Modified Mathlib/RingTheory/DiscreteValuationRing/Basic.lean Modified Mathlib/RingTheory/FinitePresentation.lean Modified Mathlib/RingTheory/FiniteType.lean Modified Mathlib/RingTheory/Finiteness.lean +/- theorem Module.Finite.exists_fin Modified Mathlib/RingTheory/FractionalIdeal.lean Modified Mathlib/RingTheory/HahnSeries.lean Modified Mathlib/RingTheory/Ideal/Basic.lean Modified Mathlib/RingTheory/Ideal/Operations.lean Modified Mathlib/RingTheory/Localization/Basic.lean +/- theorem IsLocalization.mk'_surjective Modified Mathlib/RingTheory/Localization/FractionRing.lean Modified Mathlib/RingTheory/Localization/LocalizationLocalization.lean Modified Mathlib/RingTheory/Localization/NumDen.lean Modified Mathlib/RingTheory/Multiplicity.lean +/- theorem multiplicity.finite_mul_aux Modified Mathlib/RingTheory/OreLocalization/Basic.lean Modified Mathlib/RingTheory/Polynomial/Basic.lean Modified Mathlib/RingTheory/Polynomial/Content.lean Modified Mathlib/RingTheory/Polynomial/Dickson.lean Modified Mathlib/RingTheory/Polynomial/Pochhammer.lean +/- theorem pochhammer_nat_eq_ascFactorial Modified Mathlib/RingTheory/Prime.lean Modified Mathlib/RingTheory/RingInvo.lean Modified Mathlib/RingTheory/UniqueFactorizationDomain.lean Modified Mathlib/RingTheory/Valuation/Basic.lean Modified Mathlib/RingTheory/Valuation/ExtendToLocalization.lean Modified Mathlib/RingTheory/WittVector/Basic.lean Modified Mathlib/RingTheory/WittVector/Defs.lean +/- def WittVector.mk Modified Mathlib/SetTheory/Cardinal/Basic.lean Modified Mathlib/SetTheory/Cardinal/Cofinality.lean Modified Mathlib/SetTheory/Ordinal/Basic.lean +/- theorem Cardinal.ord_eq Modified Mathlib/SetTheory/Ordinal/NaturalOps.lean +/- theorem Ordinal.toNatOrdinal_max Modified Mathlib/SetTheory/Ordinal/Principal.lean Modified Mathlib/Tactic/Alias.lean Modified Mathlib/Tactic/CancelDenoms.lean +/- def cancelDenominatorsAt Modified Mathlib/Tactic/CasesM.lean Modified Mathlib/Tactic/CategoryTheory/Coherence.lean +/- theorem Mathlib.Tactic.Coherence.insert_id_lhs +/- theorem Mathlib.Tactic.Coherence.insert_id_rhs Modified Mathlib/Tactic/Choose.lean Modified Mathlib/Tactic/Continuity.lean Modified Mathlib/Tactic/Convert.lean Modified Mathlib/Tactic/Core.lean Modified Mathlib/Tactic/DeriveToExpr.lean Modified Mathlib/Tactic/Eqns.lean Modified Mathlib/Tactic/Existsi.lean Modified Mathlib/Tactic/HigherOrder.lean Modified Mathlib/Tactic/LibrarySearch.lean Modified Mathlib/Tactic/Linarith/Datatypes.lean Modified Mathlib/Tactic/Linarith/Elimination.lean Modified Mathlib/Tactic/Linarith/Lemmas.lean Modified Mathlib/Tactic/Linarith/Parsing.lean Modified Mathlib/Tactic/Linarith/Verification.lean Modified Mathlib/Tactic/NormNum/Core.lean Modified Mathlib/Tactic/Positivity/Basic.lean - def Mathlib.Meta.Positivity.evalFactorial: + def Mathlib.Meta.Positivity.evalFactorial Modified Mathlib/Tactic/PushNeg.lean +/- def Mathlib.Tactic.PushNeg.pushNegLocalDecl Modified Mathlib/Tactic/RestateAxiom.lean Modified Mathlib/Tactic/Sat/FromLRAT.lean Modified Mathlib/Tactic/Set.lean Modified Mathlib/Tactic/Simps/Basic.lean Modified Mathlib/Tactic/Simps/NotationClass.lean - def Simps.nsmulArgs: + def Simps.nsmulArgs Modified Mathlib/Tactic/SolveByElim.lean Modified Mathlib/Tactic/ToAdditive.lean +/- def ToAdditive.etaExpandN Modified Mathlib/Tactic/Use.lean Modified Mathlib/Testing/SlimCheck/Gen.lean Modified Mathlib/Testing/SlimCheck/Testable.lean Modified Mathlib/Topology/Algebra/Module/LinearPMap.lean Modified Mathlib/Topology/Algebra/Nonarchimedean/Basic.lean Modified Mathlib/Topology/Category/CompHaus/Basic.lean Modified Mathlib/Topology/Category/CompHaus/ExplicitLimits.lean +/- def CompHaus.pullback.cone Modified Mathlib/Topology/Category/Compactum.lean Modified Mathlib/Topology/Category/TopCat/Limits/Cofiltered.lean Modified Mathlib/Topology/Category/TopCat/Limits/Konig.lean Modified Mathlib/Topology/CompactOpen.lean Modified Mathlib/Topology/Constructions.lean Modified Mathlib/Topology/Instances/Real.lean Modified Mathlib/Topology/MetricSpace/Baire.lean +/- theorem mem_residual Modified Mathlib/Topology/MetricSpace/Basic.lean Modified Mathlib/Topology/MetricSpace/Closeds.lean Modified Mathlib/Topology/MetricSpace/EMetricSpace.lean Modified Mathlib/Topology/MetricSpace/Infsep.lean +/- theorem Set.einfsep_zero Modified Mathlib/Topology/MetricSpace/PiNat.lean Modified Mathlib/Topology/MetricSpace/ShrinkingLemma.lean Modified Mathlib/Topology/PathConnected.lean Modified Mathlib/Topology/Sequences.lean Modified Mathlib/Topology/Sheaves/LocalPredicate.lean Modified Mathlib/Topology/Sheaves/Stalks.lean Modified Mathlib/Topology/ShrinkingLemma.lean Modified Mathlib/Topology/SubsetProperties.lean Modified Mathlib/Topology/UniformSpace/CompactConvergence.lean Modified Mathlib/Topology/UniformSpace/CompareReals.lean Modified Mathlib/Topology/UniformSpace/Equiv.lean +/- def UniformEquiv.finTwoArrow Modified Mathlib/Topology/UniformSpace/Separation.lean Modified Mathlib/Topology/UnitInterval.lean Modified Mathlib/Util/Export.lean Modified test/DeriveToExpr.lean Modified test/LibrarySearch/basic.lean +/- theorem Bool_eq_iff2 +/- theorem Bool_eq_iff +/- theorem lemma_with_false_in_head Modified test/ListM.lean Modified test/MfldSetTac.lean Modified test/NthRewrite.lean Modified test/Simps.lean Modified test/cases.lean Modified test/casesm.lean +/- theorem foo Modified test/congr.lean Modified test/eqns.lean Modified test/left_right.lean - def two: + def two - def zero: + def zero Modified test/lift.lean Modified test/linarith.lean +/- theorem bar Modified test/push_neg.lean Modified test/restate_axiom.lean Modified test/search/BestFirst.lean + def nbhd Modified test/symm.lean Modified test/toAdditive.lean Modified test/trans.lean 2023-06-11 20:55:30 95092b2 feat: port Analysis.NormedSpace.Star.GelfandDuality (#4972) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/NormedSpace/Star/GelfandDuality.lean + theorem Ideal.toCharacterSpace_apply_eq_zero_of_mem + theorem WeakDual.CharacterSpace.compContinuousMap_comp + theorem WeakDual.CharacterSpace.compContinuousMap_id + theorem WeakDual.CharacterSpace.exists_apply_eq_zero + theorem WeakDual.CharacterSpace.mem_spectrum_iff_exists + theorem gelfandTransform_bijective + theorem gelfandTransform_isometry + theorem gelfandTransform_map_star + theorem spectrum.gelfandTransform_eq 2023-06-11 15:31:38 fe6b4e5 feat: port NumberTheory.Dioph (#4914) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/NumberTheory/Dioph.lean + def Dioph.DiophFn + theorem Dioph.DiophList.all₂ + def Dioph.DiophPfun + theorem Dioph.abs_poly_dioph + theorem Dioph.add_dioph + theorem Dioph.const_dioph + theorem Dioph.diophFn_comp1 + theorem Dioph.diophFn_comp2 + theorem Dioph.diophFn_comp + theorem Dioph.diophFn_compn + theorem Dioph.diophFn_iff_pFun + theorem Dioph.diophFn_vec + theorem Dioph.diophFn_vec_comp1 + theorem Dioph.diophPfun_comp1 + theorem Dioph.diophPfun_vec + theorem Dioph.dioph_comp2 + theorem Dioph.dioph_comp + theorem Dioph.div_dioph + theorem Dioph.dom_dioph + theorem Dioph.dvd_dioph + theorem Dioph.eq_dioph + theorem Dioph.ex1_dioph + theorem Dioph.ex_dioph + theorem Dioph.ext + theorem Dioph.inject_dummies + theorem Dioph.inject_dummies_lem + theorem Dioph.inter + theorem Dioph.le_dioph + theorem Dioph.lt_dioph + theorem Dioph.modEq_dioph + theorem Dioph.mod_dioph + theorem Dioph.mul_dioph + theorem Dioph.ne_dioph + theorem Dioph.of_no_dummies + theorem Dioph.pell_dioph + theorem Dioph.pow_dioph + theorem Dioph.proj_dioph + theorem Dioph.proj_dioph_of_nat + theorem Dioph.reindex_dioph + theorem Dioph.reindex_diophFn + theorem Dioph.sub_dioph + theorem Dioph.union + theorem Dioph.vec_ex1_dioph + theorem Dioph.xn_dioph + def Dioph + theorem IsPoly.add + theorem IsPoly.neg + inductive IsPoly + theorem Poly.add_apply + theorem Poly.coe_add + theorem Poly.coe_mul + theorem Poly.coe_neg + theorem Poly.coe_one + theorem Poly.coe_sub + theorem Poly.coe_zero + def Poly.const + theorem Poly.const_apply + theorem Poly.ext + theorem Poly.induction + def Poly.map + theorem Poly.map_apply + theorem Poly.mul_apply + theorem Poly.neg_apply + theorem Poly.one_apply + def Poly.proj + theorem Poly.proj_apply + theorem Poly.sub_apply + def Poly.sumsq + theorem Poly.sumsq_eq_zero + theorem Poly.sumsq_nonneg + theorem Poly.zero_apply + def Poly 2023-06-11 15:21:35 5e3467b feat: port Analysis.NormedSpace.Star.Spectrum (#4964) - [x] depends on: #4946 ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/NormedSpace/Star/Spectrum.lean + theorem IsSelfAdjoint.mem_spectrum_eq_re + theorem IsSelfAdjoint.spectralRadius_eq_nnnorm + theorem IsSelfAdjoint.val_re_map_spectrum + theorem IsStarNormal.spectralRadius_eq_nnnorm + theorem StarAlgHom.nnnorm_apply_le + theorem StarAlgHom.norm_apply_le + theorem selfAdjoint.mem_spectrum_eq_re + theorem selfAdjoint.val_re_map_spectrum + theorem spectrum.subset_circle_of_unitary + theorem unitary.spectrum_subset_circle 2023-06-11 14:53:00 50d067d feat: port Analysis.NormedSpace.Algebra (#4971) - [x] depends on: #4946 ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/NormedSpace/Algebra.lean + theorem WeakDual.CharacterSpace.norm_le_norm_one 2023-06-11 14:32:27 bd0681b feat: port MeasureTheory.Measure.Hausdorff (#4886) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/MeasureTheory/Measure/Hausdorff.lean + theorem AntilipschitzWith.hausdorffMeasure_preimage_le + theorem AntilipschitzWith.le_hausdorffMeasure_image + theorem HolderOnWith.hausdorffMeasure_image_le + theorem Isometry.hausdorffMeasure_image + theorem Isometry.hausdorffMeasure_preimage + theorem Isometry.map_hausdorffMeasure + theorem IsometryEquiv.hausdorffMeasure_image + theorem IsometryEquiv.hausdorffMeasure_preimage + theorem IsometryEquiv.map_hausdorffMeasure + theorem IsometryEquiv.measurePreserving_hausdorffMeasure + theorem LipschitzOnWith.hausdorffMeasure_image_le + theorem LipschitzWith.hausdorffMeasure_image_le + def MeasureTheory.Measure.hausdorffMeasure + theorem MeasureTheory.Measure.hausdorffMeasure_apply + theorem MeasureTheory.Measure.hausdorffMeasure_le_liminf_sum + theorem MeasureTheory.Measure.hausdorffMeasure_le_liminf_tsum + theorem MeasureTheory.Measure.hausdorffMeasure_le_one_of_subsingleton + theorem MeasureTheory.Measure.hausdorffMeasure_mono + theorem MeasureTheory.Measure.hausdorffMeasure_smul₀ + theorem MeasureTheory.Measure.hausdorffMeasure_zero_or_top + theorem MeasureTheory.Measure.hausdorffMeasure_zero_singleton + theorem MeasureTheory.Measure.le_hausdorffMeasure + theorem MeasureTheory.Measure.le_mkMetric + def MeasureTheory.Measure.mkMetric' + theorem MeasureTheory.Measure.mkMetric'_toOuterMeasure + def MeasureTheory.Measure.mkMetric + theorem MeasureTheory.Measure.mkMetric_apply + theorem MeasureTheory.Measure.mkMetric_le_liminf_sum + theorem MeasureTheory.Measure.mkMetric_le_liminf_tsum + theorem MeasureTheory.Measure.mkMetric_mono + theorem MeasureTheory.Measure.mkMetric_mono_smul + theorem MeasureTheory.Measure.mkMetric_toOuterMeasure + theorem MeasureTheory.Measure.mkMetric_top + theorem MeasureTheory.Measure.noAtoms_hausdorff + theorem MeasureTheory.Measure.one_le_hausdorffMeasure_zero_of_nonempty + theorem MeasureTheory.OuterMeasure.IsMetric.borel_le_caratheodory + theorem MeasureTheory.OuterMeasure.IsMetric.finset_iUnion_of_pairwise_separated + theorem MeasureTheory.OuterMeasure.IsMetric.le_caratheodory + def MeasureTheory.OuterMeasure.IsMetric + theorem MeasureTheory.OuterMeasure.coe_mkMetric + theorem MeasureTheory.OuterMeasure.isometryEquiv_comap_mkMetric + theorem MeasureTheory.OuterMeasure.isometryEquiv_map_mkMetric + theorem MeasureTheory.OuterMeasure.isometry_comap_mkMetric + theorem MeasureTheory.OuterMeasure.isometry_map_mkMetric + theorem MeasureTheory.OuterMeasure.le_mkMetric + theorem MeasureTheory.OuterMeasure.mkMetric'.eq_iSup_nat + theorem MeasureTheory.OuterMeasure.mkMetric'.le_pre + theorem MeasureTheory.OuterMeasure.mkMetric'.mono_pre + theorem MeasureTheory.OuterMeasure.mkMetric'.mono_pre_nat + def MeasureTheory.OuterMeasure.mkMetric'.pre + theorem MeasureTheory.OuterMeasure.mkMetric'.pre_le + theorem MeasureTheory.OuterMeasure.mkMetric'.tendsto_pre + theorem MeasureTheory.OuterMeasure.mkMetric'.tendsto_pre_nat + theorem MeasureTheory.OuterMeasure.mkMetric'.trim_pre + def MeasureTheory.OuterMeasure.mkMetric' + theorem MeasureTheory.OuterMeasure.mkMetric'_isMetric + def MeasureTheory.OuterMeasure.mkMetric + theorem MeasureTheory.OuterMeasure.mkMetric_mono + theorem MeasureTheory.OuterMeasure.mkMetric_mono_smul + theorem MeasureTheory.OuterMeasure.mkMetric_nnreal_smul + theorem MeasureTheory.OuterMeasure.mkMetric_smul + theorem MeasureTheory.OuterMeasure.mkMetric_top + theorem MeasureTheory.OuterMeasure.trim_mkMetric + theorem MeasureTheory.hausdorffMeasure_affineSegment + theorem MeasureTheory.hausdorffMeasure_homothety_image + theorem MeasureTheory.hausdorffMeasure_homothety_preimage + theorem MeasureTheory.hausdorffMeasure_lineMap_image + theorem MeasureTheory.hausdorffMeasure_measurePreserving_funUnique + theorem MeasureTheory.hausdorffMeasure_measurePreserving_piFinTwo + theorem MeasureTheory.hausdorffMeasure_pi_real + theorem MeasureTheory.hausdorffMeasure_prod_real + theorem MeasureTheory.hausdorffMeasure_real + theorem MeasureTheory.hausdorffMeasure_segment + theorem MeasureTheory.hausdorffMeasure_smul + theorem MeasureTheory.hausdorffMeasure_smul_right_image 2023-06-11 13:19:44 f0892df feat: port NumberTheory.Wilson (#4970) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/NumberTheory/Wilson.lean + theorem Nat.prime_iff_fac_equiv_neg_one + theorem Nat.prime_of_fac_equiv_neg_one + theorem ZMod.prod_Ico_one_prime + theorem ZMod.wilsons_lemma 2023-06-11 13:19:43 57f3c44 feat: port CategoryTheory.Sites.Surjective (#4969) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Sites/Surjective.lean + theorem CategoryTheory.IsLocallySurjective.comp + def CategoryTheory.IsLocallySurjective + def CategoryTheory.imageSieve + theorem CategoryTheory.imageSieve_app + theorem CategoryTheory.imageSieve_eq_sieveOfSection + theorem CategoryTheory.imageSieve_whisker_forget + theorem CategoryTheory.isLocallySurjective_iff_imagePresheaf_sheafify_eq_top' + theorem CategoryTheory.isLocallySurjective_iff_imagePresheaf_sheafify_eq_top + theorem CategoryTheory.isLocallySurjective_iff_isIso + theorem CategoryTheory.isLocallySurjective_iff_whisker_forget + theorem CategoryTheory.isLocallySurjective_of_iso + theorem CategoryTheory.isLocallySurjective_of_surjective + theorem CategoryTheory.toSheafify_isLocallySurjective 2023-06-11 13:19:42 13af0fb chore: fix `addCentralizer` naming (#4968) This did not obey the naming convention; this is now fixed. ESTIMATED CHANGES Modified Mathlib/GroupTheory/Subsemigroup/Centralizer.lean 2023-06-11 13:19:40 6f9e51c chore: fix many typos (#4967) These are all doc fixes ESTIMATED CHANGES Modified Mathlib/Algebra/ContinuedFractions/Computation/CorrectnessTerminating.lean Modified Mathlib/Algebra/DirectSum/Ring.lean Modified Mathlib/Algebra/GCDMonoid/Basic.lean Modified Mathlib/Algebra/GradedMonoid.lean Modified Mathlib/Algebra/Group/Units.lean Modified Mathlib/Algebra/GroupRingAction/Basic.lean Modified Mathlib/Algebra/Hom/Group.lean Modified Mathlib/Algebra/Lie/Basic.lean Modified Mathlib/Algebra/Lie/SkewAdjoint.lean Modified Mathlib/Algebra/Module/Opposites.lean Modified Mathlib/Algebra/Module/Submodule/Basic.lean Modified Mathlib/Algebra/Order/CompleteField.lean Modified Mathlib/Algebra/Order/Ring/Canonical.lean Modified Mathlib/Algebra/Ring/InjSurj.lean Modified Mathlib/Algebra/Star/Order.lean Modified Mathlib/AlgebraicGeometry/LocallyRingedSpace.lean Modified Mathlib/AlgebraicGeometry/Stalks.lean Modified Mathlib/AlgebraicTopology/AlternatingFaceMapComplex.lean Modified Mathlib/AlgebraicTopology/TopologicalSimplex.lean Modified Mathlib/Analysis/BoxIntegral/Integrability.lean Modified Mathlib/Analysis/BoxIntegral/Partition/Tagged.lean Modified Mathlib/Analysis/Calculus/ContDiff.lean Modified Mathlib/Analysis/Calculus/UniformLimitsDeriv.lean Modified Mathlib/Analysis/Complex/PhragmenLindelof.lean Modified Mathlib/Analysis/InnerProductSpace/PiL2.lean Modified Mathlib/Analysis/InnerProductSpace/l2Space.lean Modified Mathlib/Analysis/Normed/Group/Basic.lean Modified Mathlib/Analysis/Normed/Group/Quotient.lean Modified Mathlib/Analysis/NormedSpace/BoundedLinearMaps.lean Modified Mathlib/Analysis/NormedSpace/HahnBanach/Extension.lean Modified Mathlib/Analysis/NormedSpace/PiLp.lean Modified Mathlib/Analysis/NormedSpace/Star/Exponential.lean Modified Mathlib/Analysis/NormedSpace/Star/Multiplier.lean Modified Mathlib/Analysis/Quaternion.lean Modified Mathlib/Analysis/SpecialFunctions/Exponential.lean Modified Mathlib/Analysis/SpecialFunctions/Stirling.lean Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/EulerSineProd.lean Modified Mathlib/Analysis/SpecificLimits/Normed.lean Modified Mathlib/Analysis/VonNeumannAlgebra/Basic.lean Modified Mathlib/CategoryTheory/Abelian/Basic.lean Modified Mathlib/CategoryTheory/Abelian/NonPreadditive.lean Modified Mathlib/CategoryTheory/Bicategory/Functor.lean Modified Mathlib/CategoryTheory/Category/ULift.lean Modified Mathlib/CategoryTheory/ConnectedComponents.lean Modified Mathlib/CategoryTheory/Limits/Constructions/Filtered.lean Modified Mathlib/CategoryTheory/Limits/Constructions/ZeroObjects.lean Modified Mathlib/CategoryTheory/Limits/Final.lean Modified Mathlib/CategoryTheory/Limits/Shapes/BinaryProducts.lean Modified Mathlib/CategoryTheory/Limits/Shapes/NormalMono/Basic.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Products.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Pullbacks.lean Modified Mathlib/CategoryTheory/Monoidal/Braided.lean Modified Mathlib/CategoryTheory/Monoidal/Free/Coherence.lean Modified Mathlib/CategoryTheory/Monoidal/Functorial.lean Modified Mathlib/CategoryTheory/Monoidal/Subcategory.lean Modified Mathlib/CategoryTheory/Preadditive/Biproducts.lean Modified Mathlib/CategoryTheory/Preadditive/LeftExact.lean Modified Mathlib/CategoryTheory/Products/Basic.lean Modified Mathlib/CategoryTheory/Shift/Basic.lean Modified Mathlib/CategoryTheory/Shift/CommShift.lean Modified Mathlib/CategoryTheory/Sites/Closed.lean Modified Mathlib/CategoryTheory/Sites/DenseSubsite.lean Modified Mathlib/CategoryTheory/Sites/Sheafification.lean Modified Mathlib/CategoryTheory/Subobject/Lattice.lean Modified Mathlib/CategoryTheory/Triangulated/Rotate.lean Modified Mathlib/CategoryTheory/WithTerminal.lean Modified Mathlib/Combinatorics/HalesJewett.lean Modified Mathlib/Combinatorics/Quiver/Arborescence.lean Modified Mathlib/Combinatorics/SetFamily/Shadow.lean Modified Mathlib/Combinatorics/SimpleGraph/Basic.lean Modified Mathlib/Combinatorics/SimpleGraph/Subgraph.lean Modified Mathlib/Control/Fix.lean Modified Mathlib/Data/Complex/Basic.lean Modified Mathlib/Data/Finset/Pointwise.lean Modified Mathlib/Data/Finsupp/ToDfinsupp.lean Modified Mathlib/Data/Fintype/Card.lean Modified Mathlib/Data/List/Cycle.lean Modified Mathlib/Data/List/Sublists.lean Modified Mathlib/Data/Matrix/Reflection.lean Modified Mathlib/Data/Multiset/Fintype.lean Modified Mathlib/Data/MvPolynomial/Rename.lean Modified Mathlib/Data/Nat/Lattice.lean Modified Mathlib/Data/PSigma/Order.lean Modified Mathlib/Data/Pi/Lex.lean Modified Mathlib/Data/Polynomial/Div.lean Modified Mathlib/Data/Real/Basic.lean Modified Mathlib/Data/Real/CauSeqCompletion.lean Modified Mathlib/Data/Real/Irrational.lean Modified Mathlib/Data/Seq/Computation.lean Modified Mathlib/Data/Seq/Seq.lean Modified Mathlib/Data/ZMod/Basic.lean Modified Mathlib/Dynamics/Flow.lean Modified Mathlib/FieldTheory/Minpoly/Basic.lean Modified Mathlib/FieldTheory/Normal.lean Modified Mathlib/FieldTheory/SeparableDegree.lean Modified Mathlib/GroupTheory/Congruence.lean Modified Mathlib/GroupTheory/Divisible.lean Modified Mathlib/GroupTheory/FreeGroup.lean Modified Mathlib/GroupTheory/FreeProduct.lean Modified Mathlib/GroupTheory/GroupAction/Defs.lean Modified Mathlib/GroupTheory/IsFreeGroup.lean Modified Mathlib/GroupTheory/Nilpotent.lean Modified Mathlib/GroupTheory/Subgroup/Basic.lean Modified Mathlib/Init/Data/Nat/Bitwise.lean Modified Mathlib/LinearAlgebra/AdicCompletion.lean Modified Mathlib/LinearAlgebra/AffineSpace/Basis.lean Modified Mathlib/LinearAlgebra/Dual.lean Modified Mathlib/LinearAlgebra/FreeModule/Basic.lean Modified Mathlib/LinearAlgebra/Matrix/Charpoly/LinearMap.lean Modified Mathlib/LinearAlgebra/Matrix/Transvection.lean Modified Mathlib/LinearAlgebra/PiTensorProduct.lean Modified Mathlib/LinearAlgebra/QuadraticForm/Real.lean Modified Mathlib/LinearAlgebra/Ray.lean Modified Mathlib/Logic/Equiv/Basic.lean Modified Mathlib/Logic/Function/Iterate.lean Modified Mathlib/MeasureTheory/Covering/Besicovitch.lean Modified Mathlib/MeasureTheory/Covering/BesicovitchVectorSpace.lean Modified Mathlib/MeasureTheory/Decomposition/Lebesgue.lean Modified Mathlib/MeasureTheory/Decomposition/SignedHahn.lean Modified Mathlib/MeasureTheory/Function/AEEqFun.lean Modified Mathlib/MeasureTheory/Function/UniformIntegrable.lean Modified Mathlib/MeasureTheory/Integral/DivergenceTheorem.lean Modified Mathlib/MeasureTheory/Integral/FundThmCalculus.lean Modified Mathlib/MeasureTheory/Measure/FiniteMeasure.lean Modified Mathlib/MeasureTheory/Measure/ProbabilityMeasure.lean Modified Mathlib/MeasureTheory/Measure/VectorMeasure.lean Modified Mathlib/NumberTheory/ArithmeticFunction.lean Modified Mathlib/NumberTheory/FermatPsp.lean Modified Mathlib/NumberTheory/FrobeniusNumber.lean Modified Mathlib/NumberTheory/Liouville/LiouvilleNumber.lean Modified Mathlib/NumberTheory/Liouville/Measure.lean Modified Mathlib/NumberTheory/Padics/RingHoms.lean Modified Mathlib/NumberTheory/PythagoreanTriples.lean Modified Mathlib/Order/CompleteLattice.lean Modified Mathlib/Order/ConditionallyCompleteLattice/Basic.lean Modified Mathlib/Order/CountableDenseLinearOrder.lean Modified Mathlib/Order/Filter/Ultrafilter.lean Modified Mathlib/Order/Hom/Basic.lean Modified Mathlib/Order/Hom/CompleteLattice.lean Modified Mathlib/Order/Interval.lean Modified Mathlib/Order/Monotone/Basic.lean Modified Mathlib/RepresentationTheory/Basic.lean Modified Mathlib/RingTheory/Bezout.lean Modified Mathlib/RingTheory/Derivation/Basic.lean Modified Mathlib/RingTheory/FinitePresentation.lean Modified Mathlib/RingTheory/FreeRing.lean Modified Mathlib/RingTheory/Ideal/Operations.lean Modified Mathlib/RingTheory/IsTensorProduct.lean Modified Mathlib/RingTheory/JacobsonIdeal.lean Modified Mathlib/RingTheory/Localization/Basic.lean Modified Mathlib/RingTheory/OreLocalization/Basic.lean Modified Mathlib/RingTheory/Valuation/Integral.lean Modified Mathlib/SetTheory/Cardinal/Basic.lean Modified Mathlib/SetTheory/Cardinal/SchroederBernstein.lean Modified Mathlib/SetTheory/Ordinal/Arithmetic.lean Modified Mathlib/SetTheory/Ordinal/Basic.lean Modified Mathlib/Tactic/CategoryTheory/Reassoc.lean Modified Mathlib/Tactic/Continuity/Init.lean Modified Mathlib/Tactic/FBinop.lean Modified Mathlib/Tactic/Linarith/Datatypes.lean Modified Mathlib/Tactic/Polyrith.lean Modified Mathlib/Tactic/Recover.lean Modified Mathlib/Topology/Algebra/InfiniteSum/Ring.lean Modified Mathlib/Topology/Algebra/MulAction.lean Modified Mathlib/Topology/Algebra/Order/Field.lean Modified Mathlib/Topology/Algebra/Order/IntermediateValue.lean Modified Mathlib/Topology/Category/Profinite/Basic.lean Modified Mathlib/Topology/ContinuousFunction/Algebra.lean Modified Mathlib/Topology/ContinuousFunction/CocompactMap.lean Modified Mathlib/Topology/Homotopy/HSpaces.lean Modified Mathlib/Topology/Homotopy/HomotopyGroup.lean Modified Mathlib/Topology/Instances/Rat.lean Modified Mathlib/Topology/LocalHomeomorph.lean Modified Mathlib/Topology/MetricSpace/Basic.lean Modified Mathlib/Topology/MetricSpace/EMetricSpace.lean Modified Mathlib/Topology/Order/Basic.lean Modified Mathlib/Topology/Order/Lattice.lean Modified Mathlib/Topology/PathConnected.lean Modified Mathlib/Topology/Sets/Opens.lean Modified Mathlib/Topology/Sheaves/Forget.lean Modified Mathlib/Topology/Sheaves/Presheaf.lean Modified Mathlib/Topology/Sheaves/SheafCondition/EqualizerProducts.lean Modified Mathlib/Topology/Sheaves/Sheafify.lean Modified Mathlib/Topology/Spectral/Hom.lean Modified Mathlib/Topology/SubsetProperties.lean Modified Mathlib/Topology/UniformSpace/Compact.lean Modified Mathlib/Topology/UniformSpace/CompareReals.lean Modified Mathlib/Util/Tactic.lean 2023-06-11 13:19:39 60fe129 chore: copy integral notation precedence from mathport (#4963) Also drop some of the parentheses that are no longer needed. ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Integral/Average.lean +/- theorem MeasureTheory.average_congr +/- theorem MeasureTheory.average_const +/- theorem MeasureTheory.average_eq' +/- theorem MeasureTheory.average_eq +/- theorem MeasureTheory.average_eq_integral +/- theorem MeasureTheory.average_neg +/- theorem MeasureTheory.average_zero Modified Mathlib/MeasureTheory/Integral/Bochner.lean +/- theorem MeasureTheory.integrable_of_integral_eq_one +/- theorem MeasureTheory.integral_coe_le_of_lintegral_coe_le +/- theorem MeasureTheory.integral_congr_ae +/- theorem MeasureTheory.integral_const +/- theorem MeasureTheory.integral_eq +/- theorem MeasureTheory.integral_eq_zero_of_ae +/- theorem MeasureTheory.integral_neg' +/- theorem MeasureTheory.integral_neg +/- theorem MeasureTheory.integral_non_aestronglyMeasurable +/- theorem MeasureTheory.integral_nonpos +/- theorem MeasureTheory.integral_nonpos_of_ae +/- theorem MeasureTheory.integral_smul +/- theorem MeasureTheory.integral_undef +/- theorem MeasureTheory.integral_zero Modified Mathlib/MeasureTheory/Integral/IntervalAverage.lean Modified Mathlib/MeasureTheory/Integral/IntervalIntegral.lean Modified Mathlib/MeasureTheory/Integral/Lebesgue.lean +/- theorem MeasureTheory.ae_eq_of_ae_le_of_lintegral_le +/- theorem MeasureTheory.ae_lt_top' +/- theorem MeasureTheory.ae_lt_top +/- theorem MeasureTheory.exists_pos_set_lintegral_lt_of_measure_lt +/- theorem MeasureTheory.exists_simpleFunc_forall_lintegral_sub_lt_of_pos +/- theorem MeasureTheory.isFiniteMeasure_withDensity +/- theorem MeasureTheory.lintegral_congr +/- theorem MeasureTheory.lintegral_congr_ae +/- theorem MeasureTheory.lintegral_const +/- theorem MeasureTheory.lintegral_const_lt_top +/- theorem MeasureTheory.lintegral_eq_zero_iff +/- theorem MeasureTheory.lintegral_mono +/- theorem MeasureTheory.lintegral_mono_nnreal +/- theorem MeasureTheory.lintegral_one +/- theorem MeasureTheory.lintegral_sub' +/- theorem MeasureTheory.lintegral_sub +/- theorem MeasureTheory.lintegral_unique +/- theorem MeasureTheory.lintegral_zero +/- theorem MeasureTheory.set_lintegral_const +/- theorem MeasureTheory.set_lintegral_empty +/- theorem MeasureTheory.set_lintegral_one +/- theorem MeasureTheory.set_lintegral_univ +/- theorem MeasureTheory.tendsto_set_lintegral_zero 2023-06-11 13:19:38 45f4483 Port/Algebra.Category.Module.FilteredColimits (#4949) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Category/GroupCat/FilteredColimits.lean Added Mathlib/Algebra/Category/ModuleCat/FilteredColimits.lean + theorem ModuleCat.FilteredColimits.M.mk_eq + def ModuleCat.FilteredColimits.coconeMorphism + def ModuleCat.FilteredColimits.colimit + def ModuleCat.FilteredColimits.colimitCocone + def ModuleCat.FilteredColimits.colimitCoconeIsColimit + def ModuleCat.FilteredColimits.colimitDesc + def ModuleCat.FilteredColimits.colimitSmulAux + theorem ModuleCat.FilteredColimits.colimitSmulAux_eq_of_rel + theorem ModuleCat.FilteredColimits.colimit_smul_mk_eq Modified Mathlib/CategoryTheory/ConcreteCategory/Basic.lean +/- def CategoryTheory.HasForget₂.mk' +/- def CategoryTheory.forget₂ +/- def CategoryTheory.hasForgetToType 2023-06-11 13:19:37 19ef206 feat: port Analysis.NormedSpace.Spectrum (#4946) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/NormedSpace/Spectrum.lean + theorem AlgHom.coe_toContinuousLinearMap + theorem AlgHom.norm_apply_le_self + theorem AlgHom.norm_apply_le_self_mul_norm_one + def AlgHom.toContinuousLinearMap + theorem AlgHom.toContinuousLinearMap_norm + def WeakDual.CharacterSpace.equivAlgHom + theorem WeakDual.CharacterSpace.equivAlgHom_coe + theorem WeakDual.CharacterSpace.equivAlgHom_symm_coe + theorem spectrum.SpectralRadius.of_subsingleton + theorem spectrum.algebraMap_eq_of_mem + theorem spectrum.differentiableOn_inverse_one_sub_smul + theorem spectrum.exists_nnnorm_eq_spectralRadius + theorem spectrum.exists_nnnorm_eq_spectralRadius_of_nonempty + theorem spectrum.exp_mem_exp + theorem spectrum.hasDerivAt_resolvent + theorem spectrum.hasFPowerSeriesOnBall_inverse_one_sub_smul + theorem spectrum.isOpen_resolventSet + theorem spectrum.isUnit_one_sub_smul_of_lt_inv_radius + theorem spectrum.is_bounded + theorem spectrum.limsup_pow_nnnorm_pow_one_div_le_spectralRadius + theorem spectrum.map_polynomial_aeval + theorem spectrum.mem_resolventSet_of_norm_lt + theorem spectrum.mem_resolventSet_of_norm_lt_mul + theorem spectrum.mem_resolventSet_of_spectralRadius_lt + theorem spectrum.norm_le_norm_mul_of_mem + theorem spectrum.norm_le_norm_of_mem + theorem spectrum.norm_resolvent_le_forall + theorem spectrum.pow_nnnorm_pow_one_div_tendsto_nhds_spectralRadius + theorem spectrum.pow_norm_pow_one_div_tendsto_nhds_spectralRadius + theorem spectrum.spectralRadius_le_liminf_pow_nnnorm_pow_one_div + theorem spectrum.spectralRadius_le_nnnorm + theorem spectrum.spectralRadius_le_pow_nnnorm_pow_one_div + theorem spectrum.spectralRadius_lt_of_forall_lt + theorem spectrum.spectralRadius_lt_of_forall_lt_of_nonempty + theorem spectrum.spectralRadius_zero + theorem spectrum.subset_closedBall_norm + theorem spectrum.subset_closedBall_norm_mul 2023-06-11 13:19:36 b29c8d1 feat: port RingTheory.Perfection (#4629) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/RingTheory/Localization/FractionRing.lean Added Mathlib/RingTheory/Perfection.lean + theorem ModP.mul_ne_zero_of_pow_p_ne_zero + theorem ModP.preVal_add + theorem ModP.preVal_eq_zero + theorem ModP.preVal_mk + theorem ModP.preVal_mul + theorem ModP.preVal_zero + theorem ModP.v_p_lt_preVal + theorem ModP.v_p_lt_val + def ModP + def Monoid.perfection + def Perfection.coeff + theorem Perfection.coeff_add_ne_zero + theorem Perfection.coeff_frobenius + theorem Perfection.coeff_iterate_frobenius' + theorem Perfection.coeff_iterate_frobenius + theorem Perfection.coeff_map + theorem Perfection.coeff_mk + theorem Perfection.coeff_ne_zero_of_le + theorem Perfection.coeff_pow_p' + theorem Perfection.coeff_pow_p + theorem Perfection.coeff_pthRoot + theorem Perfection.ext + theorem Perfection.frobenius_pthRoot + theorem Perfection.hom_ext + def Perfection.lift + def Perfection.map + def Perfection.pthRoot + theorem Perfection.pthRoot_frobenius + theorem PerfectionMap.comp_equiv' + theorem PerfectionMap.comp_equiv + theorem PerfectionMap.comp_map + theorem PerfectionMap.comp_symm_equiv' + theorem PerfectionMap.comp_symm_equiv + theorem PerfectionMap.equiv_apply + theorem PerfectionMap.hom_ext + theorem PerfectionMap.id + theorem PerfectionMap.map_eq_map + theorem PerfectionMap.map_map + theorem PerfectionMap.mk' + theorem PerfectionMap.of + structure PerfectionMap + theorem PreTilt.coeff_nat_find_add_ne_zero + theorem PreTilt.map_eq_zero + theorem PreTilt.valAux_add + theorem PreTilt.valAux_eq + theorem PreTilt.valAux_mul + theorem PreTilt.valAux_one + theorem PreTilt.valAux_zero + def PreTilt + def Ring.Perfection + def Ring.perfectionSubring + def Ring.perfectionSubsemiring + def Tilt 2023-06-11 12:07:31 a01c6e8 chore: bump to nightly-2023-06-10 (#4933) The bumps to nightly-2023-06-10, which includes @gebner's https://github.com/leanprover/lean4/pull/2266. After this is merged I encourage everyone to look around at simp regressions! - [x] depends on: #4954 (I've moved changes that work without lean4#2266 to this PR) [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) ESTIMATED CHANGES Modified Mathlib/Algebra/GroupPower/Order.lean Modified Mathlib/Logic/Encodable/Basic.lean Modified Mathlib/MeasureTheory/Constructions/Prod/Integral.lean Modified lean-toolchain 2023-06-11 09:18:57 aea24d2 chore: cleanup some simp-related porting notes (#4954) I was looking on https://github.com/leanprover-community/mathlib4/pull/4933 to see what simp related porting notes I could improve after https://github.com/leanprover/lean4/pull/2266 lands in Lean 4. Mostly things I found could be cleaned up in any case, and so I've moved those into this PR. There is lots more work to do diagnosing all the simp-related porting notes! ESTIMATED CHANGES Modified Mathlib/Algebra/Category/GroupCat/Injective.lean Modified Mathlib/Algebra/Category/ModuleCat/Colimits.lean Modified Mathlib/Algebra/GroupPower/Lemmas.lean Modified Mathlib/Algebra/Hom/Ring.lean Modified Mathlib/Algebra/Homology/Augment.lean Modified Mathlib/Algebra/Lie/Nilpotent.lean Modified Mathlib/Algebra/Module/Submodule/Basic.lean Modified Mathlib/Algebra/Module/ULift.lean Modified Mathlib/Algebra/Order/Group/Defs.lean Modified Mathlib/Algebra/Order/Ring/WithTop.lean Modified Mathlib/Algebra/Star/Module.lean 2023-06-10 20:59:25 5a91953 feat: port Data.Polynomial.UnitTrinomial (#4948) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Data/Polynomial/UnitTrinomial.lean + theorem Polynomial.IsUnitTrinomial.card_support_eq_three + theorem Polynomial.IsUnitTrinomial.coeff_isUnit + theorem Polynomial.IsUnitTrinomial.irreducible_aux1 + theorem Polynomial.IsUnitTrinomial.irreducible_aux2 + theorem Polynomial.IsUnitTrinomial.irreducible_aux3 + theorem Polynomial.IsUnitTrinomial.irreducible_of_coprime' + theorem Polynomial.IsUnitTrinomial.irreducible_of_coprime + theorem Polynomial.IsUnitTrinomial.irreducible_of_isCoprime + theorem Polynomial.IsUnitTrinomial.leadingCoeff_isUnit + theorem Polynomial.IsUnitTrinomial.ne_zero + theorem Polynomial.IsUnitTrinomial.not_isUnit + theorem Polynomial.IsUnitTrinomial.trailingCoeff_isUnit + def Polynomial.IsUnitTrinomial + theorem Polynomial.isUnitTrinomial_iff'' + theorem Polynomial.isUnitTrinomial_iff' + theorem Polynomial.isUnitTrinomial_iff + theorem Polynomial.trinomial_def + theorem Polynomial.trinomial_leadingCoeff + theorem Polynomial.trinomial_leading_coeff' + theorem Polynomial.trinomial_middle_coeff + theorem Polynomial.trinomial_mirror + theorem Polynomial.trinomial_monic + theorem Polynomial.trinomial_natDegree + theorem Polynomial.trinomial_natTrailingDegree + theorem Polynomial.trinomial_support + theorem Polynomial.trinomial_trailingCoeff + theorem Polynomial.trinomial_trailing_coeff' 2023-06-10 20:32:22 da6373c feat: port CategoryTheory.Monoidal.Limits (#4956) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Monoidal/Limits.lean + def CategoryTheory.Limits.limLax + theorem CategoryTheory.Limits.limLax_map + theorem CategoryTheory.Limits.limLax_obj' + theorem CategoryTheory.Limits.limLax_obj + theorem CategoryTheory.Limits.limLax_ε + theorem CategoryTheory.Limits.limLax_μ + theorem CategoryTheory.Limits.limitFunctorial_map 2023-06-10 18:19:13 69dc66a chore: forward-port leanprover-community/mathlib#19084 (file 1 of 2) (#4820) [`linear_algebra.free_module.pid`@`210657c4ea4a4a7b234392f70a3a2a83346dfa90`..`d87199d51218d36a0a42c66c82d147b5a7ff87b3`](https://leanprover-community.github.io/mathlib-port-status/file/linear_algebra/free_module/pid?range=210657c4ea4a4a7b234392f70a3a2a83346dfa90..d87199d51218d36a0a42c66c82d147b5a7ff87b3) ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/FreeModule/PID.lean 2023-06-10 16:28:29 d8ad8d8 feat: port Algebra.Module.Zlattice (#4944) Maybe this file should be called `ZLattice`.... ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Module/Zlattice.lean + def Zspan.ceil + theorem Zspan.ceil_eq_self_of_mem + theorem Zspan.coe_floor_self + theorem Zspan.coe_fract_self + theorem Zspan.exist_unique_vadd_mem_fundamentalDomain + def Zspan.floor + theorem Zspan.floor_eq_self_of_mem + def Zspan.fract + theorem Zspan.fract_add_zspan + theorem Zspan.fract_apply + theorem Zspan.fract_eq_fract + theorem Zspan.fract_eq_self + theorem Zspan.fract_fract + theorem Zspan.fract_mem_fundamentalDomain + theorem Zspan.fract_zspan_add + def Zspan.fundamentalDomain + theorem Zspan.fundamentalDomain_bounded + theorem Zspan.fundamentalDomain_measurableSet + theorem Zspan.mem_fundamentalDomain + theorem Zspan.norm_fract_le + theorem Zspan.repr_ceil_apply + theorem Zspan.repr_floor_apply + theorem Zspan.repr_fract_apply + theorem Zspan.vadd_mem_fundamentalDomain 2023-06-10 14:53:22 b0a2167 chore: port leanprover-community/mathlib#18861 (#4896) I forgot to put some required `to_additive`s in Lean3, I am currently backporting this change in leanprover-community/mathlib#19168. ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/Subalgebra/Basic.lean + theorem Subalgebra.center_le_centralizer + theorem Subalgebra.centralizer_eq_top_iff_subset Modified Mathlib/GroupTheory/Subgroup/Basic.lean + theorem Subgroup.center_le_centralizer + theorem Subgroup.centralizer_eq_top_iff_subset Modified Mathlib/GroupTheory/Submonoid/Centralizer.lean + theorem Submonoid.center_le_centralizer + theorem Submonoid.centralizer_eq_top_iff_subset Modified Mathlib/GroupTheory/Subsemigroup/Centralizer.lean + theorem Set.center_subset_centralizer + theorem Set.centralizer_eq_top_iff_subset + theorem Subsemigroup.center_le_centralizer + theorem Subsemigroup.centralizer_eq_top_iff_subset Modified Mathlib/RingTheory/NonUnitalSubsemiring/Basic.lean + theorem NonUnitalSubsemiring.center_le_centralizer + theorem NonUnitalSubsemiring.centralizer_eq_top_iff_subset Modified Mathlib/RingTheory/Subring/Basic.lean + theorem Subring.center_le_centralizer + def Subring.centralizer + theorem Subring.centralizer_eq_top_iff_subset + theorem Subring.centralizer_le + theorem Subring.centralizer_toSubmonoid + theorem Subring.centralizer_toSubsemiring + theorem Subring.centralizer_univ + theorem Subring.coe_centralizer + theorem Subring.mem_centralizer_iff Modified Mathlib/RingTheory/Subsemiring/Basic.lean + theorem Subsemiring.center_le_centralizer + theorem Subsemiring.centralizer_eq_top_iff_subset 2023-06-10 14:18:37 0b88993 feat: port CategoryTheory.Preadditive.Schur (#4952) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Preadditive/Schur.lean + theorem CategoryTheory.endomorphism_simple_eq_smul_id + theorem CategoryTheory.finrank_endomorphism_eq_one + theorem CategoryTheory.finrank_endomorphism_simple_eq_one + theorem CategoryTheory.finrank_hom_simple_simple + theorem CategoryTheory.finrank_hom_simple_simple_eq_one_iff + theorem CategoryTheory.finrank_hom_simple_simple_eq_zero_iff + theorem CategoryTheory.finrank_hom_simple_simple_eq_zero_of_not_iso + theorem CategoryTheory.finrank_hom_simple_simple_le_one + theorem CategoryTheory.isIso_iff_nonzero + theorem CategoryTheory.isIso_of_hom_simple + theorem CategoryTheory.mono_of_nonzero_from_simple 2023-06-10 12:49:55 5e1ed57 feat: port CategoryTheory.Sites.CompatibleSheafification (#4953) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/CategoryTheory/Limits/Constructions/LimitsOfProductsAndEqualizers.lean Added Mathlib/CategoryTheory/Sites/CompatibleSheafification.lean + theorem CategoryTheory.GrothendieckTopology.sheafificationWhiskerLeftIso_hom_app + theorem CategoryTheory.GrothendieckTopology.sheafificationWhiskerLeftIso_inv_app + theorem CategoryTheory.GrothendieckTopology.sheafificationWhiskerRightIso_hom_app + theorem CategoryTheory.GrothendieckTopology.sheafificationWhiskerRightIso_inv_app + theorem CategoryTheory.GrothendieckTopology.sheafifyCompIso_inv_eq_sheafifyLift + theorem CategoryTheory.GrothendieckTopology.toSheafify_comp_sheafifyCompIso_inv + theorem CategoryTheory.GrothendieckTopology.whiskerRight_toSheafify_sheafifyCompIso_hom 2023-06-10 10:48:20 a55642f refactor: Defs and Lemmas files for Bitvec (#4899) The `Core` file was just dumped from Lean3 core. I've split it into `Defs` and `Lemmas` in the style of the `List` folder for example. ESTIMATED CHANGES Modified Mathlib.lean Renamed Mathlib/Data/Bitvec/Core.lean to Mathlib/Data/Bitvec/Defs.lean - theorem Bitvec.bitsToNat_toList - theorem Bitvec.bits_toNat_decide + def Bitvec.ofFin - theorem Bitvec.ofNat_succ + def Bitvec.toFin - theorem Bitvec.toNat_append - theorem Bitvec.toNat_ofNat Renamed Mathlib/Data/Bitvec/Basic.lean to Mathlib/Data/Bitvec/Lemmas.lean + theorem Bitvec.bitsToNat_toList + theorem Bitvec.bits_toNat_decide - def Bitvec.ofFin + theorem Bitvec.ofNat_succ - def Bitvec.toFin + theorem Bitvec.toNat_append + theorem Bitvec.toNat_ofNat Modified Mathlib/Data/Num/Bitwise.lean 2023-06-10 09:37:25 4354bcb feat: add `ContinuousAt.comp_of_eq` (#4904) Forward-port of leanprover-community/mathlib#18877 (2 files) ESTIMATED CHANGES Modified Mathlib/Analysis/Calculus/FDeriv/Prod.lean - theorem DifferentiableAt.fderivWithin_prod + theorem DifferentiableWithinAt.fderivWithin_prod Modified Mathlib/Topology/Basic.lean + theorem ContinuousAt.comp_of_eq 2023-06-10 08:21:22 52608a6 feat: port Algebra.Lie.CartanMatrix (#4930) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Lie/CartanMatrix.lean + def CartanMatrix.E₆ + def CartanMatrix.E₇ + def CartanMatrix.E₈ + def CartanMatrix.F₄ + inductive CartanMatrix.Generators + def CartanMatrix.G₂ + def CartanMatrix.Relations.EF + def CartanMatrix.Relations.HE + def CartanMatrix.Relations.HF + def CartanMatrix.Relations.HH + def CartanMatrix.Relations.adE + def CartanMatrix.Relations.adF + def CartanMatrix.Relations.toIdeal + def CartanMatrix.Relations.toSet + def Matrix.ToLieAlgebra 2023-06-10 07:04:14 ae75b32 feat: better handling of symm in library_search (#4534) Rather than separately indexing the `symm` version of each `Eq` lemma (and `Iff` lemma, although we were forgetting to do this at all!), we just try `library_search` on the goal and then on `symm` of the goal. ESTIMATED CHANGES Modified Mathlib/Tactic/LibrarySearch.lean + def Mathlib.Tactic.LibrarySearch.librarySearchSymm Modified test/LibrarySearch/basic.lean + theorem prime_of_prime 2023-06-10 05:46:52 bf799bb chore: add space after exacts (#4945) Too often tempted to change these during other PRs, so doing a mass edit here. ESTIMATED CHANGES Modified Mathlib/Algebra/BigOperators/Finprod.lean Modified Mathlib/Algebra/DirectLimit.lean Modified Mathlib/Algebra/GroupPower/Order.lean Modified Mathlib/Algebra/Homology/QuasiIso.lean Modified Mathlib/Algebra/IndicatorFunction.lean Modified Mathlib/Algebra/MonoidAlgebra/NoZeroDivisors.lean Modified Mathlib/Algebra/Order/Ring/Defs.lean Modified Mathlib/Algebra/Star/Subalgebra.lean Modified Mathlib/AlgebraicGeometry/StructureSheaf.lean Modified Mathlib/Analysis/Asymptotics/Asymptotics.lean Modified Mathlib/Analysis/BoxIntegral/Box/Basic.lean Modified Mathlib/Analysis/BoxIntegral/Partition/Additive.lean Modified Mathlib/Analysis/BoxIntegral/Partition/Filter.lean Modified Mathlib/Analysis/BoxIntegral/Partition/Tagged.lean Modified Mathlib/Analysis/Calculus/ContDiffDef.lean Modified Mathlib/Analysis/Calculus/LocalExtr.lean Modified Mathlib/Analysis/Convex/Combination.lean Modified Mathlib/Analysis/Convex/KreinMilman.lean Modified Mathlib/Analysis/InnerProductSpace/Projection.lean Modified Mathlib/Analysis/LocallyConvex/Basic.lean Modified Mathlib/Analysis/MeanInequalities.lean Modified Mathlib/Analysis/Normed/Field/Basic.lean Modified Mathlib/Analysis/Normed/Ring/Seminorm.lean Modified Mathlib/Analysis/NormedSpace/Banach.lean Modified Mathlib/Analysis/NormedSpace/Multilinear.lean Modified Mathlib/Analysis/PSeries.lean Modified Mathlib/Analysis/SpecialFunctions/CompareExp.lean Modified Mathlib/Analysis/SpecialFunctions/Complex/Arg.lean Modified Mathlib/Analysis/SpecialFunctions/Pow/NNReal.lean Modified Mathlib/CategoryTheory/CommSq.lean Modified Mathlib/CategoryTheory/Extensive.lean Modified Mathlib/CategoryTheory/GlueData.lean Modified Mathlib/CategoryTheory/LiftingProperties/Basic.lean Modified Mathlib/CategoryTheory/Limits/Constructions/BinaryProducts.lean Modified Mathlib/CategoryTheory/Limits/Shapes/BinaryProducts.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Biproducts.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Equalizers.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Pullbacks.lean Modified Mathlib/CategoryTheory/MorphismProperty.lean Modified Mathlib/Computability/TMToPartrec.lean Modified Mathlib/Computability/TuringMachine.lean Modified Mathlib/Data/Bool/Basic.lean Modified Mathlib/Data/Complex/Module.lean Modified Mathlib/Data/Fin/Basic.lean Modified Mathlib/Data/Fin/Tuple/Sort.lean Modified Mathlib/Data/Fintype/Option.lean Modified Mathlib/Data/Fintype/Perm.lean Modified Mathlib/Data/List/BigOperators/Basic.lean Modified Mathlib/Data/List/Sort.lean Modified Mathlib/Data/Nat/Basic.lean Modified Mathlib/Data/Nat/Log.lean Modified Mathlib/Data/Nat/Order/Basic.lean Modified Mathlib/Data/Num/Lemmas.lean Modified Mathlib/Data/Pi/Lex.lean Modified Mathlib/Data/Polynomial/Degree/Definitions.lean Modified Mathlib/Data/Polynomial/Module.lean Modified Mathlib/Data/Polynomial/Monic.lean Modified Mathlib/Data/Polynomial/RingDivision.lean Modified Mathlib/Data/Real/Basic.lean Modified Mathlib/Data/Real/ENNReal.lean Modified Mathlib/Data/Real/Sqrt.lean Modified Mathlib/Data/Seq/Computation.lean Modified Mathlib/Data/Seq/Seq.lean Modified Mathlib/Data/Set/Basic.lean Modified Mathlib/Data/Set/Image.lean Modified Mathlib/Data/Set/Intervals/UnorderedInterval.lean Modified Mathlib/Data/Sum/Order.lean Modified Mathlib/Data/Sym/Sym2.lean Modified Mathlib/Data/Vector3.lean Modified Mathlib/Data/ZMod/Basic.lean Modified Mathlib/Dynamics/Minimal.lean Modified Mathlib/Dynamics/OmegaLimit.lean Modified Mathlib/Geometry/Euclidean/Sphere/Power.lean Modified Mathlib/GroupTheory/GroupAction/Option.lean Modified Mathlib/GroupTheory/GroupAction/Sum.lean Modified Mathlib/GroupTheory/OrderOfElement.lean Modified Mathlib/GroupTheory/Subgroup/Basic.lean Modified Mathlib/LinearAlgebra/LinearIndependent.lean Modified Mathlib/Logic/Encodable/Basic.lean Modified Mathlib/Logic/Equiv/Basic.lean Modified Mathlib/Logic/Equiv/Set.lean Modified Mathlib/Logic/Relation.lean Modified Mathlib/MeasureTheory/Constructions/BorelSpace/Basic.lean Modified Mathlib/MeasureTheory/Covering/VitaliFamily.lean Modified Mathlib/MeasureTheory/Decomposition/Jordan.lean Modified Mathlib/MeasureTheory/Group/Pointwise.lean Modified Mathlib/MeasureTheory/Integral/Lebesgue.lean Modified Mathlib/MeasureTheory/MeasurableSpaceDef.lean Modified Mathlib/MeasureTheory/Measure/Complex.lean Modified Mathlib/MeasureTheory/Measure/MeasureSpace.lean Modified Mathlib/MeasureTheory/Measure/MeasureSpaceDef.lean Modified Mathlib/MeasureTheory/Measure/NullMeasurable.lean Modified Mathlib/MeasureTheory/Measure/OuterMeasure.lean Modified Mathlib/MeasureTheory/Measure/VectorMeasure.lean Modified Mathlib/MeasureTheory/PiSystem.lean Modified Mathlib/Order/Compare.lean Modified Mathlib/Order/Cover.lean Modified Mathlib/Order/Directed.lean Modified Mathlib/Order/Filter/CountableInter.lean Modified Mathlib/Order/GameAdd.lean Modified Mathlib/Order/Iterate.lean Modified Mathlib/Order/Lattice.lean Modified Mathlib/Order/Monotone/Basic.lean Modified Mathlib/Order/OrderIsoNat.lean Modified Mathlib/Order/WellFoundedSet.lean Modified Mathlib/Probability/CondCount.lean Modified Mathlib/RingTheory/Ideal/Basic.lean Modified Mathlib/RingTheory/Ideal/MinimalPrime.lean Modified Mathlib/RingTheory/Ideal/Operations.lean Modified Mathlib/RingTheory/PrincipalIdealDomain.lean Modified Mathlib/RingTheory/UniqueFactorizationDomain.lean Modified Mathlib/SetTheory/Cardinal/Basic.lean Modified Mathlib/SetTheory/Cardinal/Ordinal.lean Modified Mathlib/Topology/Algebra/InfiniteSum/Basic.lean Modified Mathlib/Topology/Algebra/Order/Compact.lean Modified Mathlib/Topology/Algebra/Order/MonotoneConvergence.lean Modified Mathlib/Topology/Algebra/Semigroup.lean Modified Mathlib/Topology/Algebra/StarSubalgebra.lean Modified Mathlib/Topology/Algebra/UniformRing.lean Modified Mathlib/Topology/Bases.lean Modified Mathlib/Topology/Basic.lean Modified Mathlib/Topology/Category/Compactum.lean Modified Mathlib/Topology/Category/TopCat/Limits/Products.lean Modified Mathlib/Topology/Category/TopCat/Limits/Pullbacks.lean Modified Mathlib/Topology/FiberBundle/Basic.lean Modified Mathlib/Topology/Homotopy/HSpaces.lean Modified Mathlib/Topology/Instances/AddCircle.lean Modified Mathlib/Topology/Instances/ENNReal.lean Modified Mathlib/Topology/MetricSpace/Metrizable.lean Modified Mathlib/Topology/Separation.lean Modified Mathlib/Topology/Sheaves/SheafCondition/PairwiseIntersections.lean Modified Mathlib/Topology/Sheaves/Stalks.lean Modified Mathlib/Topology/SubsetProperties.lean Modified Mathlib/Topology/Support.lean Modified Mathlib/Topology/UniformSpace/Basic.lean Modified Mathlib/Topology/UniformSpace/Compact.lean Modified Mathlib/Topology/VectorBundle/Constructions.lean 2023-06-10 05:46:50 90dafad feat: port LinearAlgebra.Eigenspace.IsAlgClosed (#4943) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/LinearAlgebra/Eigenspace/IsAlgClosed.lean + theorem Module.End.exists_eigenvalue + theorem Module.End.iSup_generalizedEigenspace_eq_top 2023-06-10 05:39:24 9b8201d feat: port LinearAlgebra.Matrix.Charpoly.Eigs (#4936) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/LinearAlgebra/Matrix/Charpoly/Eigs.lean + theorem Matrix.det_eq_prod_roots_charpoly + theorem Matrix.det_eq_prod_roots_charpoly_of_splits + theorem Matrix.trace_eq_sum_roots_charpoly + theorem Matrix.trace_eq_sum_roots_charpoly_of_splits 2023-06-10 04:50:29 71f1384 feat: port FieldTheory.IsAlgClosed.Classification (#4940) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/FieldTheory/IsAlgClosed/Classification.lean + theorem Algebra.IsAlgebraic.cardinal_mk_le_max + theorem Algebra.IsAlgebraic.cardinal_mk_le_sigma_polynomial + theorem IsAlgClosed.cardinal_eq_cardinal_transcendence_basis_of_aleph0_lt + theorem IsAlgClosed.cardinal_le_max_transcendence_basis + def IsAlgClosed.equivOfTranscendenceBasis + theorem IsAlgClosed.isAlgClosure_of_transcendence_basis + theorem IsAlgClosed.ringEquivOfCardinalEqOfCharEq + theorem IsAlgClosed.ringEquivOfCardinalEqOfCharZero 2023-06-10 04:28:47 e3d3b97 feat: port Analysis.Complex.Polynomial (#4931) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/Complex/Polynomial.lean + theorem Complex.exists_root 2023-06-10 04:16:34 4799639 feat: port FieldTheory.IsAlgClosed.Spectrum (#4935) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/FieldTheory/IsAlgClosed/Basic.lean Added Mathlib/FieldTheory/IsAlgClosed/Spectrum.lean + theorem spectrum.exists_mem_of_not_isUnit_aeval_prod + theorem spectrum.map_polynomial_aeval_of_degree_pos + theorem spectrum.map_polynomial_aeval_of_nonempty + theorem spectrum.map_pow_of_nonempty + theorem spectrum.map_pow_of_pos + theorem spectrum.nonempty_of_isAlgClosed_of_finiteDimensional + theorem spectrum.pow_image_subset + theorem spectrum.subset_polynomial_aeval 2023-06-10 03:42:46 e19bd9e feat: port MeasureTheory.Measure.Portmanteau (#4938) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/MeasureTheory/Measure/Portmanteau.lean + theorem MeasureTheory.FiniteMeasure.limsup_measure_closed_le_of_tendsto + theorem MeasureTheory.ProbabilityMeasure.le_liminf_measure_open_of_tendsto + theorem MeasureTheory.ProbabilityMeasure.limsup_measure_closed_le_of_tendsto + theorem MeasureTheory.ProbabilityMeasure.tendsto_measure_of_null_frontier_of_tendsto' + theorem MeasureTheory.ProbabilityMeasure.tendsto_measure_of_null_frontier_of_tendsto + theorem MeasureTheory.exists_null_frontier_thickening + theorem MeasureTheory.exists_null_frontiers_thickening + theorem MeasureTheory.le_measure_compl_liminf_of_limsup_measure_le + theorem MeasureTheory.le_measure_liminf_of_limsup_measure_compl_le + theorem MeasureTheory.limsup_measure_closed_le_iff_liminf_measure_open_ge + theorem MeasureTheory.limsup_measure_compl_le_of_le_liminf_measure + theorem MeasureTheory.limsup_measure_le_of_le_liminf_measure_compl + theorem MeasureTheory.measure_of_cont_bdd_of_tendsto_filter_indicator + theorem MeasureTheory.measure_of_cont_bdd_of_tendsto_indicator + theorem MeasureTheory.tendsto_lintegral_thickenedIndicator_of_isClosed + theorem MeasureTheory.tendsto_measure_of_le_liminf_measure_of_limsup_measure_le + theorem MeasureTheory.tendsto_measure_of_null_frontier 2023-06-10 02:10:11 9dd22b8 chore: use `ofReal` instead of `of_real` in lemma names (#4934) ESTIMATED CHANGES Modified Mathlib/Analysis/Complex/RealDeriv.lean + theorem HasDerivAt.comp_ofReal - theorem HasDerivAt.comp_of_real + theorem HasDerivAt.ofReal_comp - theorem HasDerivAt.of_real_comp Modified Mathlib/Analysis/SpecialFunctions/Complex/Arg.lean + theorem Complex.arg_ofReal_of_neg + theorem Complex.arg_ofReal_of_nonneg - theorem Complex.arg_of_real_of_neg - theorem Complex.arg_of_real_of_nonneg Modified Mathlib/Analysis/SpecialFunctions/Complex/Log.lean + theorem Complex.log_mul_ofReal - theorem Complex.log_mul_of_real + theorem Complex.log_ofReal_mul + theorem Complex.log_ofReal_re - theorem Complex.log_of_real_mul - theorem Complex.log_of_real_re + theorem Complex.ofReal_log - theorem Complex.of_real_log Modified Mathlib/Analysis/SpecialFunctions/ImproperIntegrals.lean Modified Mathlib/Analysis/SpecialFunctions/Integrals.lean Modified Mathlib/Analysis/SpecialFunctions/Pow/Complex.lean + theorem Complex.mul_cpow_ofReal_nonneg - theorem Complex.mul_cpow_of_real_nonneg Modified Mathlib/Analysis/SpecialFunctions/Pow/Continuity.lean + theorem Complex.continuousAt_ofReal_cpow + theorem Complex.continuousAt_ofReal_cpow_const - theorem Complex.continuousAt_of_real_cpow - theorem Complex.continuousAt_of_real_cpow_const + theorem Complex.continuous_ofReal_cpow_const - theorem Complex.continuous_of_real_cpow_const Modified Mathlib/Analysis/SpecialFunctions/Pow/Deriv.lean + theorem hasDerivAt_ofReal_cpow - theorem hasDerivAt_of_real_cpow Modified Mathlib/Analysis/SpecialFunctions/Pow/Real.lean + theorem Complex.ofReal_cpow + theorem Complex.ofReal_cpow_of_nonpos - theorem Complex.of_real_cpow - theorem Complex.of_real_cpow_of_nonpos Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Chebyshev.lean + theorem Polynomial.Chebyshev.complex_ofReal_eval_T + theorem Polynomial.Chebyshev.complex_ofReal_eval_U - theorem Polynomial.Chebyshev.complex_of_real_eval_T - theorem Polynomial.Chebyshev.complex_of_real_eval_U Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/EulerSineProd.lean Modified Mathlib/Data/Complex/Exponential.lean + theorem Complex.sinh_ofReal_im + theorem Complex.sinh_ofReal_re - theorem Complex.sinh_of_real_im - theorem Complex.sinh_of_real_re + theorem Complex.tan_ofReal_im + theorem Complex.tan_ofReal_re - theorem Complex.tan_of_real_im - theorem Complex.tan_of_real_re Modified Mathlib/Data/Real/ENNReal.lean Modified Mathlib/MeasureTheory/Function/SpecialFunctions/Basic.lean + theorem Complex.measurable_ofReal - theorem Complex.measurable_of_real Modified Mathlib/NumberTheory/LSeries.lean 2023-06-10 00:09:42 3280dcc feat: precedence in notation3 (#4712) The mathlib side of the fix for https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/mathport.3A.20big.20operators/near/363878759 . ESTIMATED CHANGES Modified Mathlib/Mathport/Notation.lean 2023-06-10 00:02:23 b31b203 feat: port CategoryTheory.Closed.Zero (#4921) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Closed/Zero.lean + def CategoryTheory.equivPunit + def CategoryTheory.uniqueHomsetOfInitialIsoTerminal + def CategoryTheory.uniqueHomsetOfZero 2023-06-09 23:11:06 d9c7687 feat: port Analysis.SpecialFunctions.ImproperIntegrals (#4928) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/SpecialFunctions/ImproperIntegrals.lean + theorem integrableOn_Ioi_cpow_of_lt + theorem integrableOn_Ioi_rpow_of_lt + theorem integrableOn_exp_Iic + theorem integral_Ioi_cpow_of_lt + theorem integral_Ioi_rpow_of_lt + theorem integral_exp_Iic + theorem integral_exp_Iic_zero + theorem integral_exp_neg_Ioi + theorem integral_exp_neg_Ioi_zero 2023-06-09 23:11:05 ef9a563 feat: port FieldTheory.IsAlgClosed.Basic (#4888) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/FieldTheory/IsAlgClosed/Basic.lean + theorem Algebra.IsAlgebraic.range_eval_eq_rootSet_minpoly + theorem IsAlgClosed.algebraMap_surjective_of_isAlgebraic + theorem IsAlgClosed.algebraMap_surjective_of_isIntegral + theorem IsAlgClosed.algebra_map_surjective_of_is_integral' + theorem IsAlgClosed.degree_eq_one_of_irreducible + theorem IsAlgClosed.exists_aeval_eq_zero + theorem IsAlgClosed.exists_aeval_eq_zero_of_injective + theorem IsAlgClosed.exists_eq_mul_self + theorem IsAlgClosed.exists_eval₂_eq_zero + theorem IsAlgClosed.exists_eval₂_eq_zero_of_injective + theorem IsAlgClosed.exists_pow_nat_eq + theorem IsAlgClosed.exists_root + theorem IsAlgClosed.of_exists_root + theorem IsAlgClosed.roots_eq_zero_iff + theorem IsAlgClosed.splits_codomain + theorem IsAlgClosed.splits_domain + theorem IsAlgClosure.equivOfEquiv_algebraMap + theorem IsAlgClosure.equivOfEquiv_comp_algebraMap + theorem IsAlgClosure.equivOfEquiv_symm_algebraMap + theorem IsAlgClosure.equivOfEquiv_symm_comp_algebraMap + theorem IsAlgClosure.ofAlgebraic + theorem isAlgClosure_iff + theorem lift.SubfieldWithHom.compat + theorem lift.SubfieldWithHom.exists_maximal_subfieldWithHom + theorem lift.SubfieldWithHom.le_def + theorem lift.SubfieldWithHom.maximalSubfieldWithHom_eq_top + theorem lift.SubfieldWithHom.maximalSubfieldWithHom_is_maximal + theorem lift.SubfieldWithHom.maximal_subfieldWithHom_chain_bounded + structure lift.SubfieldWithHom 2023-06-09 22:59:22 708e990 feat: port Analysis.Fourier.FourierTransform (#4927) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/Fourier/FourierTransform.lean + def Fourier.fourierIntegral + theorem Fourier.fourierIntegral_comp_add_right + theorem Fourier.fourierIntegral_def + theorem Fourier.fourierIntegral_smul_const + theorem Fourier.norm_fourierIntegral_le_integral_norm + theorem Real.continuous_fourierChar + def Real.fourierChar + theorem Real.fourierChar_apply + def Real.fourierIntegral + theorem Real.fourierIntegral_def + theorem Real.fourierIntegral_eq_integral_exp_smul + theorem Real.vector_fourierIntegral_eq_integral_exp_smul + def VectorFourier.fourierIntegral + theorem VectorFourier.fourierIntegral_add + theorem VectorFourier.fourierIntegral_comp_add_right + theorem VectorFourier.fourierIntegral_continuous + theorem VectorFourier.fourierIntegral_smul_const + theorem VectorFourier.fourier_integral_convergent_iff + theorem VectorFourier.norm_fourierIntegral_le_integral_norm 2023-06-09 22:59:21 0a81ec1 feat: port Algebra.Lie.CartanSubalgebra (#4925) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Lie/CartanSubalgebra.lean + theorem LieIdeal.normalizer_eq_top + theorem LieSubalgebra.isCartanSubalgebra_iff_isUcsLimit + theorem LieSubalgebra.normalizer_eq_self_of_isCartanSubalgebra + theorem LieSubalgebra.ucs_eq_self_of_isCartanSubalgebra + def LieSubmodule.IsUcsLimit 2023-06-09 22:59:19 41b9904 chore(Control.Monad.Writer): add SHA & missing definitions (#4923) ESTIMATED CHANGES Modified Mathlib/Control/Monad/Writer.lean + def WriterT.equiv 2023-06-09 22:47:32 b42d562 feat: port CategoryTheory.Closed.Types (#4918) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/CategoryTheory/Closed/Cartesian.lean + def CategoryTheory.CartesianClosed.mk Added Mathlib/CategoryTheory/Closed/Types.lean 2023-06-09 21:04:48 fdc28c9 feat: port Algebra.Lie.Nilpotent (#4919) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Lie/Nilpotent.lean + theorem Equiv.lieModule_isNilpotent_iff + theorem Function.Injective.lieAlgebra_isNilpotent + theorem Function.Surjective.lieAlgebra_isNilpotent + theorem Function.Surjective.lieModuleIsNilpotent + theorem Function.Surjective.lieModule_lcs_map_eq + theorem LieAlgebra.ad_nilpotent_of_nilpotent + theorem LieAlgebra.iInf_max_gen_zero_eigenspace_eq_top_of_nilpotent + theorem LieAlgebra.isNilpotent_ad_of_isNilpotent + theorem LieAlgebra.isNilpotent_range_ad_iff + theorem LieAlgebra.nilpotent_ad_of_nilpotent_algebra + theorem LieAlgebra.nilpotent_of_nilpotent_quotient + theorem LieAlgebra.non_trivial_center_of_isNilpotent + theorem LieEquiv.nilpotent_iff_equiv_nilpotent + theorem LieHom.isNilpotent_range + theorem LieIdeal.coe_lcs_eq + def LieIdeal.lcs + theorem LieIdeal.lcs_succ + theorem LieIdeal.lcs_top + theorem LieIdeal.lcs_zero + theorem LieIdeal.lowerCentralSeries_map_eq + theorem LieIdeal.map_lowerCentralSeries_le + theorem LieModule.antitone_lowerCentralSeries + theorem LieModule.coe_lcs_range_toEndomorphism_eq + theorem LieModule.coe_lowerCentralSeries_ideal_le + theorem LieModule.derivedSeries_le_lowerCentralSeries + theorem LieModule.iInf_max_gen_zero_eigenspace_eq_top_of_nilpotent + theorem LieModule.isNilpotent_iff + theorem LieModule.isNilpotent_iff_exists_ucs_eq_top + theorem LieModule.isNilpotent_of_top_iff + theorem LieModule.isNilpotent_range_toEndomorphism_iff + theorem LieModule.iterate_toEndomorphism_mem_lowerCentralSeries + def LieModule.lowerCentralSeries + theorem LieModule.lowerCentralSeriesLast_le_max_triv + theorem LieModule.lowerCentralSeries_succ + theorem LieModule.lowerCentralSeries_zero + theorem LieModule.map_lowerCentralSeries_le + theorem LieModule.nilpotencyLength_eq_succ_iff + theorem LieModule.nilpotencyLength_eq_zero_iff + theorem LieModule.nilpotentOfNilpotentQuotient + theorem LieModule.nilpotent_endo_of_nilpotent_module + theorem LieModule.nontrivial_lowerCentralSeriesLast + theorem LieModule.nontrivial_max_triv_of_isNilpotent + theorem LieModule.trivial_iff_lower_central_eq_bot + theorem LieSubalgebra.isNilpotent_ad_of_isNilpotent_ad + theorem LieSubmodule.gc_lcs_ucs + theorem LieSubmodule.isNilpotent_iff_exists_lcs_eq_bot + theorem LieSubmodule.isNilpotent_iff_exists_self_le_ucs + def LieSubmodule.lcs + theorem LieSubmodule.lcs_add_le_iff + theorem LieSubmodule.lcs_le_iff + theorem LieSubmodule.lcs_le_self + theorem LieSubmodule.lcs_succ + theorem LieSubmodule.lcs_zero + theorem LieSubmodule.lowerCentralSeries_eq_lcs_comap + theorem LieSubmodule.lowerCentralSeries_map_eq_lcs + def LieSubmodule.ucs + theorem LieSubmodule.ucs_add + theorem LieSubmodule.ucs_comap_incl + theorem LieSubmodule.ucs_eq_self_of_normalizer_eq_self + theorem LieSubmodule.ucs_eq_top_iff + theorem LieSubmodule.ucs_le_of_normalizer_eq_self + theorem LieSubmodule.ucs_mono + theorem LieSubmodule.ucs_succ + theorem LieSubmodule.ucs_zero + theorem coe_lowerCentralSeries_ideal_quot_eq 2023-06-09 21:04:47 8907994 feat: port MeasureTheory.Group.Integration (#4694) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/MeasureTheory/Group/Integration.lean + theorem MeasureTheory.Integrable.comp_div_left + theorem MeasureTheory.Integrable.comp_div_right + theorem MeasureTheory.Integrable.comp_inv + theorem MeasureTheory.Integrable.comp_mul_left + theorem MeasureTheory.Integrable.comp_mul_right + theorem MeasureTheory.integrable_comp_div_left + theorem MeasureTheory.integral_div_left_eq_self + theorem MeasureTheory.integral_div_right_eq_self + theorem MeasureTheory.integral_eq_zero_of_mul_left_eq_neg + theorem MeasureTheory.integral_eq_zero_of_mul_right_eq_neg + theorem MeasureTheory.integral_inv_eq_self + theorem MeasureTheory.integral_mul_left_eq_self + theorem MeasureTheory.integral_mul_right_eq_self + theorem MeasureTheory.integral_smul_eq_self + theorem MeasureTheory.lintegral_div_right_eq_self + theorem MeasureTheory.lintegral_eq_zero_of_isMulLeftInvariant + theorem MeasureTheory.lintegral_mul_left_eq_self + theorem MeasureTheory.lintegral_mul_right_eq_self 2023-06-09 20:52:58 ee87762 feat: port Analysis.ODE.PicardLindelof (#4907) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/ODE/PicardLindelof.lean + theorem IsPicardLindelof.exists_forall_hasDerivWithinAt_Icc_eq + theorem IsPicardLindelof.norm_le₀ + structure IsPicardLindelof + theorem PicardLindelof.FunSpace.continuous_vComp + theorem PicardLindelof.FunSpace.dist_apply_le_dist + theorem PicardLindelof.FunSpace.dist_iterate_next_apply_le + theorem PicardLindelof.FunSpace.dist_iterate_next_le + theorem PicardLindelof.FunSpace.dist_le_of_forall + theorem PicardLindelof.FunSpace.dist_next_apply_le_of_le + theorem PicardLindelof.FunSpace.hasDerivWithinAt_next + theorem PicardLindelof.FunSpace.intervalIntegrable_vComp + theorem PicardLindelof.FunSpace.map_t₀ + def PicardLindelof.FunSpace.next + theorem PicardLindelof.FunSpace.next_apply + theorem PicardLindelof.FunSpace.norm_vComp_le + theorem PicardLindelof.FunSpace.range_toContinuousMap + def PicardLindelof.FunSpace.toContinuousMap + theorem PicardLindelof.FunSpace.uniformInducing_toContinuousMap + def PicardLindelof.FunSpace.vComp + theorem PicardLindelof.FunSpace.vComp_apply_coe + structure PicardLindelof.FunSpace + theorem PicardLindelof.continuous_proj + theorem PicardLindelof.dist_t₀_le + theorem PicardLindelof.exists_contracting_iterate + theorem PicardLindelof.exists_fixed + theorem PicardLindelof.exists_solution + theorem PicardLindelof.norm_le + def PicardLindelof.proj + theorem PicardLindelof.proj_coe + theorem PicardLindelof.proj_of_mem + def PicardLindelof.tDist + theorem PicardLindelof.tDist_nonneg + theorem PicardLindelof.tMin_le_tMax + structure PicardLindelof + theorem exists_forall_deriv_at_Ioo_eq_of_contDiffOn_nhds + theorem exists_forall_hasDerivAt_Ioo_eq_of_contDiff + theorem exists_isPicardLindelof_const_of_contDiffOn_nhds 2023-06-09 20:01:10 2770c2e feat: port MeasureTheory.Integral.Layercake (#4913) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/MeasureTheory/Integral/Layercake.lean + theorem Measure.countable_meas_le_ne_meas_lt + theorem Measure.meas_le_ae_eq_meas_lt + theorem Measure.meas_le_ne_meas_lt_subset_meas_pos + theorem MeasureTheory.lintegral_comp_eq_lintegral_meas_le_mul + theorem MeasureTheory.lintegral_comp_eq_lintegral_meas_le_mul_of_measurable + theorem MeasureTheory.lintegral_eq_lintegral_meas_le + theorem MeasureTheory.lintegral_rpow_eq_lintegral_meas_le_mul + theorem lintegral_comp_eq_lintegral_meas_lt_mul + theorem lintegral_eq_lintegral_meas_lt + theorem lintegral_rpow_eq_lintegral_meas_lt_mul 2023-06-09 20:01:09 9adb47d feat: port Analysis.Complex.PhragmenLindelof (#4912) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/Complex/PhragmenLindelof.lean + theorem PhragmenLindelof.eqOn_horizontal_strip + theorem PhragmenLindelof.eqOn_quadrant_I + theorem PhragmenLindelof.eqOn_quadrant_II + theorem PhragmenLindelof.eqOn_quadrant_III + theorem PhragmenLindelof.eqOn_quadrant_IV + theorem PhragmenLindelof.eqOn_right_half_plane_of_superexponential_decay + theorem PhragmenLindelof.eqOn_vertical_strip + theorem PhragmenLindelof.eq_zero_on_horizontal_strip + theorem PhragmenLindelof.eq_zero_on_quadrant_I + theorem PhragmenLindelof.eq_zero_on_quadrant_II + theorem PhragmenLindelof.eq_zero_on_quadrant_III + theorem PhragmenLindelof.eq_zero_on_quadrant_IV + theorem PhragmenLindelof.eq_zero_on_right_half_plane_of_superexponential_decay + theorem PhragmenLindelof.eq_zero_on_vertical_strip + theorem PhragmenLindelof.horizontal_strip + theorem PhragmenLindelof.isBigO_sub_exp_exp + theorem PhragmenLindelof.isBigO_sub_exp_rpow + theorem PhragmenLindelof.quadrant_II + theorem PhragmenLindelof.quadrant_III + theorem PhragmenLindelof.quadrant_IV + theorem PhragmenLindelof.right_half_plane_of_bounded_on_real + theorem PhragmenLindelof.right_half_plane_of_tendsto_zero_on_real + theorem PhragmenLindelof.vertical_strip 2023-06-09 20:01:08 2cac01c feat: port Data.Real.Pi.Bounds (#4872) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Data/Real/Pi/Bounds.lean + theorem Real.pi_gt_3141592 + theorem Real.pi_gt_31415 + theorem Real.pi_gt_314 + theorem Real.pi_gt_sqrtTwoAddSeries + theorem Real.pi_gt_three + theorem Real.pi_lower_bound_start + theorem Real.pi_lt_3141593 + theorem Real.pi_lt_31416 + theorem Real.pi_lt_315 + theorem Real.pi_lt_sqrtTwoAddSeries + theorem Real.pi_upper_bound_start + theorem Real.sqrtTwoAddSeries_step_down + theorem Real.sqrtTwoAddSeries_step_up 2023-06-09 18:48:16 34dead3 feat: port NumberTheory.BernoulliPolynomials (#4352) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/NumberTheory/BernoulliPolynomials.lean + def Polynomial.bernoulli + theorem Polynomial.bernoulli_def + theorem Polynomial.bernoulli_eq_sub_sum + theorem Polynomial.bernoulli_eval_one + theorem Polynomial.bernoulli_eval_one_add + theorem Polynomial.bernoulli_eval_zero + theorem Polynomial.bernoulli_generating_function + theorem Polynomial.bernoulli_succ_eval + theorem Polynomial.bernoulli_zero + theorem Polynomial.derivative_bernoulli_add_one + theorem Polynomial.sum_range_pow_eq_bernoulli_sub Modified Mathlib/Tactic/ApplyCongr.lean 2023-06-09 16:56:21 f684661 feat: port MeasureTheory.Group.GeometryOfNumbers (#4915) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/MeasureTheory/Group/GeometryOfNumbers.lean + theorem MeasureTheory.exists_ne_zero_mem_lattice_of_measure_mul_two_pow_lt_measure + theorem MeasureTheory.exists_pair_mem_lattice_not_disjoint_vadd 2023-06-09 16:56:20 8d243ee feat: port FieldTheory.Fixed (#4890) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/FieldTheory/Fixed.lean + def FixedBy.subfield + theorem FixedPoints.coe_algebraMap + theorem FixedPoints.finrank_eq_card + theorem FixedPoints.finrank_le_card + theorem FixedPoints.isIntegral + theorem FixedPoints.linearIndependent_smul_of_linearIndependent + theorem FixedPoints.minpoly.eval₂' + theorem FixedPoints.minpoly.eval₂ + theorem FixedPoints.minpoly.irreducible + theorem FixedPoints.minpoly.irreducible_aux + theorem FixedPoints.minpoly.monic + theorem FixedPoints.minpoly.ne_one + theorem FixedPoints.minpoly.of_eval₂ + def FixedPoints.minpoly + theorem FixedPoints.minpoly_eq_minpoly + theorem FixedPoints.rank_le_card + theorem FixedPoints.smul + theorem FixedPoints.smul_polynomial + def FixedPoints.subfield + def FixedPoints.toAlgHomEquiv + theorem FixedPoints.toAlgHom_bijective + theorem cardinal_mk_algHom + theorem finrank_algHom + theorem linearIndependent_toLinearMap 2023-06-09 16:34:32 afa7c0c feat: Abelian sheaves and condensed abelian groups. (#4909) Both are shown to be abelian categories. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Sites/AbelianSheaf.lean Added Mathlib/Condensed/Abelian.lean 2023-06-09 16:34:31 03c3ef6 chore: forward-port leanprover-community/mathlib#19084 (file 2 of 2) (#4821) [`linear_algebra.free_module.ideal_quotient`@`6623e6af705e97002a9054c1c05a980180276fc1`..`d87199d51218d36a0a42c66c82d147b5a7ff87b3`](https://leanprover-community.github.io/mathlib-port-status/file/linear_algebra/free_module/ideal_quotient?range=6623e6af705e97002a9054c1c05a980180276fc1..d87199d51218d36a0a42c66c82d147b5a7ff87b3) ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/FreeModule/IdealQuotient.lean + theorem Ideal.finrank_quotient_eq_sum 2023-06-09 16:21:23 0c2078a feat: port Analysis.Complex.Schwarz (#4910) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/Complex/Schwarz.lean + theorem Complex.abs_deriv_le_div_of_mapsTo_ball + theorem Complex.abs_deriv_le_one_of_mapsTo_ball + theorem Complex.abs_le_abs_of_mapsTo_ball_self + theorem Complex.affine_of_mapsTo_ball_of_exists_norm_dslope_eq_div' + theorem Complex.affine_of_mapsTo_ball_of_exists_norm_dslope_eq_div + theorem Complex.dist_le_dist_of_mapsTo_ball_self + theorem Complex.dist_le_div_mul_dist_of_mapsTo_ball + theorem Complex.norm_deriv_le_div_of_mapsTo_ball + theorem Complex.norm_dslope_le_div_of_mapsTo_ball + theorem Complex.schwarz_aux 2023-06-09 16:10:08 45c9d61 feat: port Analysis.Convex.Measure (#4911) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/Convex/Measure.lean + theorem Convex.add_haar_frontier 2023-06-09 14:49:38 eb1efd9 feat: port Analysis.Complex.AbsMax (#4901) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/Complex/AbsMax.lean + theorem Complex.eqOn_closedBall_of_isMaxOn_norm + theorem Complex.eqOn_closure_of_eqOn_frontier + theorem Complex.eqOn_closure_of_isPreconnected_of_isMaxOn_norm + theorem Complex.eqOn_of_eqOn_frontier + theorem Complex.eqOn_of_isPreconnected_of_isMaxOn_norm + theorem Complex.eq_of_isMaxOn_of_ball_subset + theorem Complex.eventually_eq_of_isLocalMax_norm + theorem Complex.eventually_eq_or_eq_zero_of_isLocalMin_norm + theorem Complex.exists_mem_frontier_isMaxOn_norm + theorem Complex.isOpen_setOf_mem_nhds_and_isMaxOn_norm + theorem Complex.norm_eqOn_closedBall_of_isMaxOn + theorem Complex.norm_eqOn_closure_of_isPreconnected_of_isMaxOn + theorem Complex.norm_eqOn_of_isPreconnected_of_isMaxOn + theorem Complex.norm_eq_norm_of_isMaxOn_of_ball_subset + theorem Complex.norm_eventually_eq_of_isLocalMax + theorem Complex.norm_le_of_forall_mem_frontier_norm_le + theorem Complex.norm_max_aux₁ + theorem Complex.norm_max_aux₂ + theorem Complex.norm_max_aux₃ 2023-06-09 14:37:40 33666e3 feat: port MeasureTheory.Integral.CircleTransform (#4908) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/MeasureTheory/Integral/CircleTransform.lean + theorem Complex.abs_circleTransformBoundingFunction_le + def Complex.circleTransform + def Complex.circleTransformBoundingFunction + def Complex.circleTransformDeriv + theorem Complex.circleTransformDeriv_bound + theorem Complex.circleTransformDeriv_eq + theorem Complex.circleTransformDeriv_periodic + theorem Complex.continuousOn_abs_circleTransformBoundingFunction + theorem Complex.continuousOn_prod_circle_transform_function + theorem Complex.continuous_circleTransform + theorem Complex.continuous_circleTransformDeriv + theorem Complex.integral_circleTransform 2023-06-09 14:11:29 87c0e82 feat: port Analysis.Complex.LocallyUniformLimit (#4906) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/Complex/LocallyUniformLimit.lean + theorem Complex.cderiv_eq_deriv + theorem Complex.cderiv_sub + theorem Complex.differentiableOn_tsum_of_summable_norm + theorem Complex.exists_cthickening_tendstoUniformlyOn + theorem Complex.hasSum_deriv_of_summable_norm + theorem Complex.norm_cderiv_le + theorem Complex.norm_cderiv_lt + theorem Complex.norm_cderiv_sub_lt + theorem Complex.tendstoUniformlyOn_deriv_of_cthickening_subset + theorem TendstoLocallyUniformlyOn.deriv + theorem TendstoLocallyUniformlyOn.differentiableOn + theorem TendstoUniformlyOn.cderiv 2023-06-09 14:11:28 cc6a12b feat: port MeasureTheory.Integral.ExpDecay (#4905) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/MeasureTheory/Integral/ExpDecay.lean + theorem exp_neg_integrableOn_Ioi + theorem integrable_of_isBigO_exp_neg 2023-06-09 14:11:26 9f01785 feat: port Topology.Category.Profinite.CofilteredLimit (#4889) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Topology/Category/Profinite/CofilteredLimit.lean + theorem Profinite.exists_clopen_of_cofiltered + theorem Profinite.exists_locallyConstant + theorem Profinite.exists_locallyConstant_fin_two + theorem Profinite.exists_locallyConstant_finite_aux + theorem Profinite.exists_locallyConstant_finite_nonempty 2023-06-09 14:00:00 0234140 feat: port Analysis.NormedSpace.AddTorsorBases (#4903) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/NormedSpace/AddTorsorBases.lean + theorem AffineBasis.centroid_mem_interior_convexHull + theorem AffineBasis.interior_convexHull + theorem Convex.interior_nonempty_iff_affineSpan_eq_top + theorem IsOpen.affineSpan_eq_top + theorem IsOpen.exists_between_affineIndependent_span_eq_top + theorem IsOpen.exists_subset_affineIndependent_span_eq_top + theorem affineSpan_eq_top_of_nonempty_interior + theorem continuous_barycentric_coord + theorem interior_convexHull_nonempty_iff_affineSpan_eq_top + theorem isOpenMap_barycentric_coord + theorem smooth_barycentric_coord 2023-06-09 13:13:00 171a442 feat: port Analysis.SumIntegralComparisons (#4902) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/SumIntegralComparisons.lean + theorem AntitoneOn.integral_le_sum + theorem AntitoneOn.integral_le_sum_Ico + theorem AntitoneOn.sum_le_integral + theorem AntitoneOn.sum_le_integral_Ico + theorem MonotoneOn.integral_le_sum + theorem MonotoneOn.integral_le_sum_Ico + theorem MonotoneOn.sum_le_integral + theorem MonotoneOn.sum_le_integral_Ico 2023-06-09 13:12:59 0e19980 feat: port Analysis.Complex.RemovableSingularity (#4900) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/Complex/RemovableSingularity.lean + theorem Complex.analyticAt_of_differentiable_on_punctured_nhds_of_continuousAt + theorem Complex.differentiableOn_compl_singleton_and_continuousAt_iff + theorem Complex.differentiableOn_dslope + theorem Complex.differentiableOn_update_limUnder_insert_of_isLittleO + theorem Complex.differentiableOn_update_limUnder_of_bddAbove + theorem Complex.differentiableOn_update_limUnder_of_isLittleO + theorem Complex.tendsto_limUnder_of_differentiable_on_punctured_nhds_of_bounded_under + theorem Complex.tendsto_limUnder_of_differentiable_on_punctured_nhds_of_isLittleO + theorem Complex.two_pi_I_inv_smul_circleIntegral_sub_sq_inv_smul_of_differentiable 2023-06-09 13:12:58 03854c5 feat: port Analysis.Complex.Liouville (#4894) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/Complex/Liouville.lean + theorem Complex.deriv_eq_smul_circleIntegral + theorem Complex.liouville_theorem_aux + theorem Complex.norm_deriv_le_aux + theorem Complex.norm_deriv_le_of_forall_mem_sphere_norm_le + theorem Differentiable.apply_eq_apply_of_bounded + theorem Differentiable.exists_const_forall_eq_of_bounded + theorem Differentiable.exists_eq_const_of_bounded 2023-06-09 12:20:14 512a73e feat: port MeasureTheory.Integral.IntegralEqImproper (#4864) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/MeasureTheory/Integral/IntegralEqImproper.lean + theorem MeasureTheory.AECover.ae_tendsto_indicator + theorem MeasureTheory.AECover.aemeasurable + theorem MeasureTheory.AECover.aestronglyMeasurable + theorem MeasureTheory.AECover.biInter_Ici_aecover + theorem MeasureTheory.AECover.biUnion_Iic_aecover + theorem MeasureTheory.AECover.comp_tendsto + theorem MeasureTheory.AECover.iSup_lintegral_eq_of_countably_generated + theorem MeasureTheory.AECover.integrable_of_integral_bounded_of_nonneg_ae + theorem MeasureTheory.AECover.integrable_of_integral_norm_bounded + theorem MeasureTheory.AECover.integrable_of_integral_norm_tendsto + theorem MeasureTheory.AECover.integrable_of_integral_tendsto_of_nonneg_ae + theorem MeasureTheory.AECover.integrable_of_lintegral_nnnorm_bounded' + theorem MeasureTheory.AECover.integrable_of_lintegral_nnnorm_bounded + theorem MeasureTheory.AECover.integrable_of_lintegral_nnnorm_tendsto' + theorem MeasureTheory.AECover.integrable_of_lintegral_nnnorm_tendsto + theorem MeasureTheory.AECover.integral_eq_of_tendsto + theorem MeasureTheory.AECover.integral_eq_of_tendsto_of_nonneg_ae + theorem MeasureTheory.AECover.integral_tendsto_of_countably_generated + theorem MeasureTheory.AECover.inter + theorem MeasureTheory.AECover.inter_restrict + theorem MeasureTheory.AECover.lintegral_eq_of_tendsto + theorem MeasureTheory.AECover.lintegral_tendsto_of_countably_generated + theorem MeasureTheory.AECover.lintegral_tendsto_of_nat + theorem MeasureTheory.AECover.mono + theorem MeasureTheory.AECover.mono_ac + theorem MeasureTheory.AECover.superset + structure MeasureTheory.AECover + theorem MeasureTheory.aecover_Icc + theorem MeasureTheory.aecover_Icc_of_Icc + theorem MeasureTheory.aecover_Icc_of_Ico + theorem MeasureTheory.aecover_Icc_of_Ioc + theorem MeasureTheory.aecover_Icc_of_Ioo + theorem MeasureTheory.aecover_Ici + theorem MeasureTheory.aecover_Ico + theorem MeasureTheory.aecover_Ico_of_Icc + theorem MeasureTheory.aecover_Ico_of_Ico + theorem MeasureTheory.aecover_Ico_of_Ioc + theorem MeasureTheory.aecover_Ico_of_Ioo + theorem MeasureTheory.aecover_Iic + theorem MeasureTheory.aecover_Iio + theorem MeasureTheory.aecover_Iio_of_Iic + theorem MeasureTheory.aecover_Iio_of_Iio + theorem MeasureTheory.aecover_Ioc + theorem MeasureTheory.aecover_Ioc_of_Icc + theorem MeasureTheory.aecover_Ioc_of_Ico + theorem MeasureTheory.aecover_Ioc_of_Ioc + theorem MeasureTheory.aecover_Ioc_of_Ioo + theorem MeasureTheory.aecover_Ioi + theorem MeasureTheory.aecover_Ioi_of_Ici + theorem MeasureTheory.aecover_Ioi_of_Ioi + theorem MeasureTheory.aecover_Ioo + theorem MeasureTheory.aecover_Ioo_of_Icc + theorem MeasureTheory.aecover_Ioo_of_Ico + theorem MeasureTheory.aecover_Ioo_of_Ioc + theorem MeasureTheory.aecover_Ioo_of_Ioo + theorem MeasureTheory.aecover_restrict_of_ae_imp + theorem MeasureTheory.integrableOn_Iic_of_intervalIntegral_norm_bounded + theorem MeasureTheory.integrableOn_Iic_of_intervalIntegral_norm_tendsto + theorem MeasureTheory.integrableOn_Ioc_of_interval_integral_norm_bounded + theorem MeasureTheory.integrableOn_Ioc_of_interval_integral_norm_bounded_left + theorem MeasureTheory.integrableOn_Ioc_of_interval_integral_norm_bounded_right + theorem MeasureTheory.integrableOn_Ioi_comp_mul_left_iff + theorem MeasureTheory.integrableOn_Ioi_comp_mul_right_iff + theorem MeasureTheory.integrableOn_Ioi_comp_rpow_iff' + theorem MeasureTheory.integrableOn_Ioi_comp_rpow_iff + theorem MeasureTheory.integrableOn_Ioi_deriv_of_nonneg' + theorem MeasureTheory.integrableOn_Ioi_deriv_of_nonneg + theorem MeasureTheory.integrableOn_Ioi_deriv_of_nonpos' + theorem MeasureTheory.integrableOn_Ioi_deriv_of_nonpos + theorem MeasureTheory.integrableOn_Ioi_of_intervalIntegral_norm_bounded + theorem MeasureTheory.integrableOn_Ioi_of_intervalIntegral_norm_tendsto + theorem MeasureTheory.integrable_of_intervalIntegral_norm_bounded + theorem MeasureTheory.integrable_of_intervalIntegral_norm_tendsto + theorem MeasureTheory.integral_Ioi_of_hasDerivAt_of_nonneg' + theorem MeasureTheory.integral_Ioi_of_hasDerivAt_of_nonneg + theorem MeasureTheory.integral_Ioi_of_hasDerivAt_of_nonpos' + theorem MeasureTheory.integral_Ioi_of_hasDerivAt_of_nonpos + theorem MeasureTheory.integral_Ioi_of_hasDerivAt_of_tendsto' + theorem MeasureTheory.integral_Ioi_of_hasDerivAt_of_tendsto + theorem MeasureTheory.integral_comp_mul_deriv_Ioi + theorem MeasureTheory.integral_comp_mul_left_Ioi + theorem MeasureTheory.integral_comp_mul_right_Ioi + theorem MeasureTheory.integral_comp_rpow_Ioi + theorem MeasureTheory.integral_comp_rpow_Ioi_of_pos + theorem MeasureTheory.integral_comp_smul_deriv_Ioi + theorem MeasureTheory.intervalIntegral_tendsto_integral + theorem MeasureTheory.intervalIntegral_tendsto_integral_Iic + theorem MeasureTheory.intervalIntegral_tendsto_integral_Ioi Modified Mathlib/Order/Filter/AtTopBot.lean + theorem Filter.eventually_forall_ge_atTop + theorem Filter.eventually_forall_le_atBot 2023-06-09 10:15:09 f92a152 feat: port Analysis.SpecialFunctions.Stirling (#4892) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/SpecialFunctions/Stirling.lean + theorem Stirling.log_stirlingSeq'_antitone + theorem Stirling.log_stirlingSeq_bounded_aux + theorem Stirling.log_stirlingSeq_bounded_by_constant + theorem Stirling.log_stirlingSeq_diff_hasSum + theorem Stirling.log_stirlingSeq_diff_le_geo_sum + theorem Stirling.log_stirlingSeq_formula + theorem Stirling.log_stirlingSeq_sub_log_stirlingSeq_succ + theorem Stirling.second_wallis_limit + theorem Stirling.stirlingSeq'_antitone + theorem Stirling.stirlingSeq'_bounded_by_pos_constant + theorem Stirling.stirlingSeq'_pos + theorem Stirling.stirlingSeq_has_pos_limit_a + theorem Stirling.stirlingSeq_one + theorem Stirling.stirlingSeq_pow_four_div_stirlingSeq_pow_two_eq + theorem Stirling.stirlingSeq_zero + theorem Stirling.tendsto_self_div_two_mul_self_add_one + theorem Stirling.tendsto_stirlingSeq_sqrt_pi 2023-06-09 10:07:36 1cad7fe feat: port Analysis.Calculus.AffineMap (#4893) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/Calculus/AffineMap.lean + theorem ContinuousAffineMap.contDiff 2023-06-09 09:11:32 697b395 feat: port Analysis.NormedSpace.ContinuousAffineMap (#4867) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/NormedSpace/ContinuousAffineMap.lean + theorem ContinuousAffineMap.add_contLinear + theorem ContinuousAffineMap.coe_contLinear + theorem ContinuousAffineMap.coe_contLinear_eq_linear + theorem ContinuousAffineMap.coe_linear_eq_coe_contLinear + theorem ContinuousAffineMap.coe_mk_const_linear_eq_linear + theorem ContinuousAffineMap.comp_contLinear + theorem ContinuousAffineMap.const_contLinear + def ContinuousAffineMap.contLinear + theorem ContinuousAffineMap.contLinear_eq_zero_iff_exists_const + theorem ContinuousAffineMap.contLinear_map_vsub + theorem ContinuousAffineMap.decomp + theorem ContinuousAffineMap.map_vadd + theorem ContinuousAffineMap.neg_contLinear + theorem ContinuousAffineMap.norm_comp_le + theorem ContinuousAffineMap.norm_contLinear_le + theorem ContinuousAffineMap.norm_def + theorem ContinuousAffineMap.norm_eq + theorem ContinuousAffineMap.norm_image_zero_le + theorem ContinuousAffineMap.smul_contLinear + theorem ContinuousAffineMap.sub_contLinear + def ContinuousAffineMap.toConstProdContinuousLinearMap + theorem ContinuousAffineMap.toConstProdContinuousLinearMap_fst + theorem ContinuousAffineMap.toConstProdContinuousLinearMap_snd + theorem ContinuousAffineMap.to_affine_map_contLinear + theorem ContinuousAffineMap.zero_contLinear 2023-06-09 07:23:42 5b95861 chore: review of automation in category theory (#4793) Clean up of automation in the category theory library. Leaving out unnecessary proof steps, or fields done by `aesop_cat`, and making more use of available autoparameters. ESTIMATED CHANGES Modified Mathlib/Algebra/Category/GroupCat/EquivalenceGroupAddGroup.lean Modified Mathlib/Algebra/Category/GroupCat/Limits.lean Modified Mathlib/Algebra/Category/ModuleCat/Adjunctions.lean Modified Mathlib/Algebra/Homology/Additive.lean Modified Mathlib/Algebra/Homology/HomologicalComplex.lean Modified Mathlib/Algebra/Homology/Opposite.lean Modified Mathlib/Algebra/Homology/ShortComplex/Basic.lean Modified Mathlib/Algebra/Homology/ShortComplex/LeftHomology.lean Modified Mathlib/Algebra/Homology/ShortExact/Abelian.lean Modified Mathlib/Algebra/Homology/Single.lean Modified Mathlib/AlgebraicGeometry/StructureSheaf.lean Modified Mathlib/AlgebraicTopology/DoldKan/FunctorN.lean Modified Mathlib/AlgebraicTopology/DoldKan/GammaCompN.lean Modified Mathlib/AlgebraicTopology/FundamentalGroupoid/PUnit.lean + def FundamentalGroupoid.punitEquivDiscretePUnit - def FundamentalGroupoid.punitEquivDiscretePunit Modified Mathlib/AlgebraicTopology/SimplicialObject.lean Modified Mathlib/CategoryTheory/Adjunction/Basic.lean Modified Mathlib/CategoryTheory/Adjunction/Comma.lean Modified Mathlib/CategoryTheory/Adjunction/FullyFaithful.lean Modified Mathlib/CategoryTheory/Adjunction/Limits.lean +/- def CategoryTheory.Adjunction.functorialityIsLeftAdjoint +/- def CategoryTheory.Adjunction.functorialityIsRightAdjoint +/- def CategoryTheory.Adjunction.leftAdjointPreservesColimits +/- def CategoryTheory.Adjunction.rightAdjointPreservesLimits Modified Mathlib/CategoryTheory/Adjunction/Opposites.lean Modified Mathlib/CategoryTheory/Arrow.lean Modified Mathlib/CategoryTheory/Bicategory/End.lean Modified Mathlib/CategoryTheory/Bicategory/Free.lean Modified Mathlib/CategoryTheory/Bicategory/SingleObj.lean Modified Mathlib/CategoryTheory/Category/Bipointed.lean Modified Mathlib/CategoryTheory/Category/Cat.lean Modified Mathlib/CategoryTheory/Category/Cat/Limit.lean +/- def CategoryTheory.Cat.HasLimits.limitCone +/- def CategoryTheory.Cat.HasLimits.limitConeLift Modified Mathlib/CategoryTheory/Category/Pairwise.lean + def CategoryTheory.Pairwise.pairwiseCases Modified Mathlib/CategoryTheory/Category/TwoP.lean Modified Mathlib/CategoryTheory/Category/ULift.lean Modified Mathlib/CategoryTheory/Closed/Monoidal.lean +/- def CategoryTheory.unitClosed Modified Mathlib/CategoryTheory/Comma.lean +/- def CategoryTheory.Comma.mapLeft +/- def CategoryTheory.Comma.mapLeftComp +/- def CategoryTheory.Comma.mapLeftId +/- def CategoryTheory.Comma.mapRight +/- def CategoryTheory.Comma.mapRightComp +/- def CategoryTheory.Comma.mapRightId +/- def CategoryTheory.Comma.post +/- def CategoryTheory.Comma.preLeft +/- def CategoryTheory.Comma.preRight Modified Mathlib/CategoryTheory/DiscreteCategory.lean Modified Mathlib/CategoryTheory/Elements.lean Modified Mathlib/CategoryTheory/Endofunctor/Algebra.lean + theorem CategoryTheory.Endofunctor.Algebra.ext +/- def CategoryTheory.Endofunctor.Algebra.isoMk + theorem CategoryTheory.Endofunctor.Coalgebra.ext +/- def CategoryTheory.Endofunctor.Coalgebra.isoMk Modified Mathlib/CategoryTheory/EqToHom.lean Modified Mathlib/CategoryTheory/Equivalence.lean Modified Mathlib/CategoryTheory/EssentiallySmall.lean Modified Mathlib/CategoryTheory/FinCategory.lean Modified Mathlib/CategoryTheory/FullSubcategory.lean Modified Mathlib/CategoryTheory/Functor/Currying.lean Modified Mathlib/CategoryTheory/Functor/Flat.lean Modified Mathlib/CategoryTheory/Functor/Hom.lean Modified Mathlib/CategoryTheory/GlueData.lean Modified Mathlib/CategoryTheory/GradedObject.lean Modified Mathlib/CategoryTheory/Groupoid.lean Modified Mathlib/CategoryTheory/Idempotents/HomologicalComplex.lean Modified Mathlib/CategoryTheory/Idempotents/Karoubi.lean Modified Mathlib/CategoryTheory/IsConnected.lean Modified Mathlib/CategoryTheory/Limits/ConeCategory.lean Modified Mathlib/CategoryTheory/Limits/Cones.lean +/- def CategoryTheory.Limits.Cocones.ext +/- def CategoryTheory.Limits.Cones.ext Modified Mathlib/CategoryTheory/Limits/Constructions/Over/Connected.lean Modified Mathlib/CategoryTheory/Limits/Constructions/Over/Products.lean Modified Mathlib/CategoryTheory/Limits/Creates.lean Modified Mathlib/CategoryTheory/Limits/Final.lean Modified Mathlib/CategoryTheory/Limits/Fubini.lean Modified Mathlib/CategoryTheory/Limits/FunctorCategory.lean Modified Mathlib/CategoryTheory/Limits/HasLimits.lean Modified Mathlib/CategoryTheory/Limits/IsLimit.lean +/- def CategoryTheory.Limits.IsColimit.OfNatIso.coconeOfHom +/- def CategoryTheory.Limits.IsColimit.equivIsoColimit +/- def CategoryTheory.Limits.IsLimit.equivIsoLimit +/- def CategoryTheory.Limits.IsLimit.natIso Modified Mathlib/CategoryTheory/Limits/Over.lean Modified Mathlib/CategoryTheory/Limits/Preserves/Basic.lean Modified Mathlib/CategoryTheory/Limits/Presheaf.lean Modified Mathlib/CategoryTheory/Limits/Shapes/BinaryProducts.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Diagonal.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Equalizers.lean +/- def CategoryTheory.Limits.Cofork.ext +/- def CategoryTheory.Limits.Fork.ext Modified Mathlib/CategoryTheory/Limits/Shapes/Kernels.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Multiequalizer.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Products.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Pullbacks.lean Modified Mathlib/CategoryTheory/Limits/Shapes/RegularMono.lean Modified Mathlib/CategoryTheory/Limits/Shapes/WideEqualizers.lean +/- def CategoryTheory.Limits.Cotrident.ext +/- def CategoryTheory.Limits.Cotrident.mkHom +/- def CategoryTheory.Limits.Trident.ext +/- def CategoryTheory.Limits.Trident.mkHom Modified Mathlib/CategoryTheory/Limits/Shapes/WidePullbacks.lean Modified Mathlib/CategoryTheory/Limits/Yoneda.lean Modified Mathlib/CategoryTheory/Monad/Adjunction.lean Modified Mathlib/CategoryTheory/Monad/Algebra.lean +/- def CategoryTheory.Comonad.Coalgebra.isoMk +/- def CategoryTheory.Monad.Algebra.isoMk Modified Mathlib/CategoryTheory/Monad/Basic.lean Modified Mathlib/CategoryTheory/Monad/Kleisli.lean Modified Mathlib/CategoryTheory/Monad/Limits.lean Modified Mathlib/CategoryTheory/Monad/Products.lean Modified Mathlib/CategoryTheory/Monad/Types.lean Modified Mathlib/CategoryTheory/Monoidal/Functor.lean Modified Mathlib/CategoryTheory/Monoidal/FunctorCategory.lean Modified Mathlib/CategoryTheory/Monoidal/Preadditive.lean Modified Mathlib/CategoryTheory/NatIso.lean Modified Mathlib/CategoryTheory/Opposites.lean Modified Mathlib/CategoryTheory/Over.lean +/- def CategoryTheory.Under.isoMk Modified Mathlib/CategoryTheory/PEmpty.lean Modified Mathlib/CategoryTheory/PUnit.lean +/- def CategoryTheory.Functor.pUnitExt +/- theorem CategoryTheory.Functor.pUnit_ext' Modified Mathlib/CategoryTheory/Pi/Basic.lean Modified Mathlib/CategoryTheory/Preadditive/OfBiproducts.lean Modified Mathlib/CategoryTheory/Products/Associator.lean Modified Mathlib/CategoryTheory/Products/Basic.lean +/- def CategoryTheory.Functor.prod' +/- def CategoryTheory.Functor.prod +/- def CategoryTheory.evaluation +/- def CategoryTheory.evaluationUncurried Modified Mathlib/CategoryTheory/Quotient.lean Modified Mathlib/CategoryTheory/Sigma/Basic.lean Modified Mathlib/CategoryTheory/SingleObj.lean +/- def CategoryTheory.SingleObj.mapHom Modified Mathlib/CategoryTheory/Sites/CoverLifting.lean Modified Mathlib/CategoryTheory/Sites/Grothendieck.lean Modified Mathlib/CategoryTheory/Sites/Plus.lean Modified Mathlib/CategoryTheory/Sites/Pushforward.lean Modified Mathlib/CategoryTheory/Sites/Sheaf.lean Modified Mathlib/CategoryTheory/Sites/Sheafification.lean Modified Mathlib/CategoryTheory/Skeletal.lean Modified Mathlib/CategoryTheory/StructuredArrow.lean +/- def CategoryTheory.CostructuredArrow.homMk +/- def CategoryTheory.CostructuredArrow.isoMk +/- def CategoryTheory.StructuredArrow.homMk +/- def CategoryTheory.StructuredArrow.isoMk Modified Mathlib/CategoryTheory/Subobject/Basic.lean Modified Mathlib/CategoryTheory/Subobject/Lattice.lean Modified Mathlib/CategoryTheory/Subobject/MonoOver.lean +/- def CategoryTheory.MonoOver.isoMk Modified Mathlib/CategoryTheory/Subobject/Types.lean Modified Mathlib/CategoryTheory/Subterminal.lean Modified Mathlib/CategoryTheory/Sums/Basic.lean +/- def CategoryTheory.Sum.swap Modified Mathlib/CategoryTheory/Triangulated/Basic.lean Modified Mathlib/CategoryTheory/Triangulated/Rotate.lean Modified Mathlib/CategoryTheory/Triangulated/Triangulated.lean Modified Mathlib/CategoryTheory/Types.lean Modified Mathlib/CategoryTheory/Yoneda.lean Modified Mathlib/Order/Category/DistLatCat.lean Modified Mathlib/Order/Category/FinPartOrd.lean Modified Mathlib/Order/Category/LatCat.lean Modified Mathlib/Order/Category/LinOrdCat.lean Modified Mathlib/Order/Category/NonemptyFinLinOrdCat.lean Modified Mathlib/Order/Category/PartOrdCat.lean Modified Mathlib/Order/Category/PreordCat.lean Modified Mathlib/RepresentationTheory/Action.lean +/- def Action.mkIso Modified Mathlib/Topology/Category/Compactum.lean Modified Mathlib/Topology/Category/TopCat/OpenNhds.lean Modified Mathlib/Topology/Category/TopCat/Opens.lean Modified Mathlib/Topology/Sheaves/Limits.lean Modified Mathlib/Topology/Sheaves/LocalPredicate.lean Modified Mathlib/Topology/Sheaves/SheafCondition/EqualizerProducts.lean 2023-06-09 07:09:55 185d28b feat: port Analysis.SpecialFunctions.Trigonometric.EulerSineProd (#4881) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/SpecialFunctions/Trigonometric/EulerSineProd.lean + theorem Complex.tendsto_euler_sin_prod + theorem EulerSine.antideriv_cos_comp_const_mul + theorem EulerSine.antideriv_sin_comp_const_mul + theorem EulerSine.integral_cos_mul_cos_pow + theorem EulerSine.integral_cos_mul_cos_pow_aux + theorem EulerSine.integral_cos_mul_cos_pow_even + theorem EulerSine.integral_cos_pow_eq + theorem EulerSine.integral_cos_pow_pos + theorem EulerSine.integral_sin_mul_sin_mul_cos_pow_eq + theorem EulerSine.sin_pi_mul_eq + theorem EulerSine.tendsto_integral_cos_pow_mul_div + theorem Real.tendsto_euler_sin_prod 2023-06-09 06:37:15 99f948e feat: port Analysis.Complex.CauchyIntegral (#4880) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Analysis/Calculus/DiffContOnCl.lean Added Mathlib/Analysis/Complex/CauchyIntegral.lean + theorem Complex.circleIntegral_div_sub_of_differentiable_on_off_countable + theorem Complex.circleIntegral_eq_of_differentiable_on_annulus_off_countable + theorem Complex.circleIntegral_eq_zero_of_differentiable_on_off_countable + theorem Complex.circleIntegral_sub_center_inv_smul_eq_of_differentiable_on_annulus_off_countable + theorem Complex.circleIntegral_sub_center_inv_smul_of_differentiable_on_off_countable + theorem Complex.circleIntegral_sub_center_inv_smul_of_differentiable_on_off_countable_of_tendsto + theorem Complex.circleIntegral_sub_inv_smul_of_differentiable_on_off_countable + theorem Complex.circleIntegral_sub_inv_smul_of_differentiable_on_off_countable_aux + theorem Complex.hasFPowerSeriesOnBall_of_differentiable_off_countable + theorem Complex.integral_boundary_rect_eq_zero_of_continuousOn_of_differentiableOn + theorem Complex.integral_boundary_rect_eq_zero_of_differentiableOn + theorem Complex.integral_boundary_rect_eq_zero_of_differentiable_on_off_countable + theorem Complex.integral_boundary_rect_of_continuousOn_of_hasFDerivAt_real + theorem Complex.integral_boundary_rect_of_differentiableOn_real + theorem Complex.integral_boundary_rect_of_hasFDerivAt_real_off_countable + theorem Complex.two_pi_I_inv_smul_circleIntegral_sub_inv_smul_of_differentiable_on_off_countable + theorem DiffContOnCl.circleIntegral_sub_inv_smul + theorem DiffContOnCl.hasFPowerSeriesOnBall + theorem DiffContOnCl.two_pi_i_inv_smul_circleIntegral_sub_inv_smul + theorem DifferentiableOn.analyticOn + theorem DifferentiableOn.circleIntegral_sub_inv_smul 2023-06-09 06:37:13 62b6b1a feat: port FieldTheory.Normal (#4856) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Data/Polynomial/RingDivision.lean + theorem Polynomial.mem_roots_iff_aeval_eq_zero Added Mathlib/FieldTheory/Normal.lean + theorem AlgEquiv.liftNormal_commutes + def AlgEquiv.restrictNormal + def AlgEquiv.restrictNormalHom + theorem AlgEquiv.restrictNormalHom_surjective + theorem AlgEquiv.restrictNormal_commutes + theorem AlgEquiv.restrictNormal_trans + theorem AlgEquiv.restrict_liftNormal + theorem AlgEquiv.transfer_normal + theorem AlgHom.fieldRange_of_normal + theorem AlgHom.liftNormal_commutes + theorem AlgHom.normal_bijective + def AlgHom.restrictNormal' + def AlgHom.restrictNormal + def AlgHom.restrictNormalAux + theorem AlgHom.restrictNormal_commutes + theorem AlgHom.restrictNormal_comp + theorem AlgHom.restrict_liftNormal + theorem IntermediateField.restrictScalars_normal + def Normal.algHomEquivAut + theorem Normal.exists_isSplittingField + theorem Normal.isAlgebraic + theorem Normal.isIntegral + theorem Normal.of_algEquiv + theorem Normal.of_isSplittingField + theorem Normal.out + theorem Normal.splits + theorem Normal.tower_top_of_normal + theorem isSolvable_of_isScalarTower + theorem normalClosure.restrictScalars_eq_iSup_adjoin + theorem normal_iff Modified Mathlib/RingTheory/PowerBasis.lean 2023-06-09 05:20:13 f8e9600 fix: use hygieneInfoKind (#4883) This was not supposed to be committed, it was from a test. ESTIMATED CHANGES Modified Mathlib/Tactic/Have.lean 2023-06-09 04:21:35 419351f feat: port Data.Vector3 (#1204) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Data/Vector3.lean + def Vector3.append + theorem Vector3.append_add + theorem Vector3.append_cons + theorem Vector3.append_insert + theorem Vector3.append_left + theorem Vector3.append_nil + def Vector3.cons + def Vector3.consElim + theorem Vector3.consElim_cons + theorem Vector3.cons_fs + theorem Vector3.cons_fz + theorem Vector3.cons_head_tail + theorem Vector3.eq_nil + def Vector3.head + def Vector3.insert + theorem Vector3.insert_fs + theorem Vector3.insert_fz + def Vector3.nil + def Vector3.nilElim + def Vector3.nth + def Vector3.ofFn + theorem Vector3.recOn_cons + theorem Vector3.recOn_nil + def Vector3.tail + def Vector3.unexpandCons + def Vector3.unexpandNil + def Vector3 + def VectorAll + theorem VectorAllP.imp + def VectorAllP + def VectorEx + theorem exists_vector_succ + theorem exists_vector_zero + theorem vectorAllP_cons + theorem vectorAllP_iff_forall + theorem vectorAllP_nil + theorem vectorAllP_singleton + theorem vectorAll_iff_forall + theorem vectorEx_iff_exists 2023-06-09 04:10:37 4b23323 feat: port Probability.Kernel.Basic (#4879) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Probability/Kernel/Basic.lean + theorem ProbabilityTheory.IsFiniteKernel.bound_lt_top + theorem ProbabilityTheory.IsFiniteKernel.bound_ne_top + theorem ProbabilityTheory.kernel.IsMarkovKernel.comapRight + theorem ProbabilityTheory.kernel.IsSFiniteKernel.finset_sum + def ProbabilityTheory.kernel.coeAddHom + theorem ProbabilityTheory.kernel.coeFn_add + theorem ProbabilityTheory.kernel.coeFn_zero + theorem ProbabilityTheory.kernel.coe_finset_sum + theorem ProbabilityTheory.kernel.comapRight_apply' + theorem ProbabilityTheory.kernel.comapRight_apply + def ProbabilityTheory.kernel.const + theorem ProbabilityTheory.kernel.const_apply + theorem ProbabilityTheory.kernel.deterministic_apply' + theorem ProbabilityTheory.kernel.deterministic_apply + theorem ProbabilityTheory.kernel.ext + theorem ProbabilityTheory.kernel.ext_fun + theorem ProbabilityTheory.kernel.ext_fun_iff + theorem ProbabilityTheory.kernel.ext_iff' + theorem ProbabilityTheory.kernel.ext_iff + theorem ProbabilityTheory.kernel.finset_sum_apply' + theorem ProbabilityTheory.kernel.finset_sum_apply + theorem ProbabilityTheory.kernel.integral_const + theorem ProbabilityTheory.kernel.integral_deterministic' + theorem ProbabilityTheory.kernel.integral_deterministic + theorem ProbabilityTheory.kernel.integral_piecewise + theorem ProbabilityTheory.kernel.isSFiniteKernel_sum + theorem ProbabilityTheory.kernel.isSFiniteKernel_sum_of_denumerable + theorem ProbabilityTheory.kernel.kernel_sum_seq + theorem ProbabilityTheory.kernel.lintegral_const + theorem ProbabilityTheory.kernel.lintegral_deterministic' + theorem ProbabilityTheory.kernel.lintegral_deterministic + theorem ProbabilityTheory.kernel.lintegral_piecewise + theorem ProbabilityTheory.kernel.lintegral_restrict + theorem ProbabilityTheory.kernel.measure_le_bound + theorem ProbabilityTheory.kernel.measure_sum_seq + def ProbabilityTheory.kernel.ofFunOfCountable + def ProbabilityTheory.kernel.piecewise + theorem ProbabilityTheory.kernel.piecewise_apply' + theorem ProbabilityTheory.kernel.piecewise_apply + theorem ProbabilityTheory.kernel.restrict_apply' + theorem ProbabilityTheory.kernel.restrict_apply + theorem ProbabilityTheory.kernel.restrict_univ + theorem ProbabilityTheory.kernel.set_integral_const + theorem ProbabilityTheory.kernel.set_integral_deterministic' + theorem ProbabilityTheory.kernel.set_integral_deterministic + theorem ProbabilityTheory.kernel.set_integral_piecewise + theorem ProbabilityTheory.kernel.set_integral_restrict + theorem ProbabilityTheory.kernel.set_lintegral_const + theorem ProbabilityTheory.kernel.set_lintegral_deterministic' + theorem ProbabilityTheory.kernel.set_lintegral_deterministic + theorem ProbabilityTheory.kernel.set_lintegral_piecewise + theorem ProbabilityTheory.kernel.set_lintegral_restrict + theorem ProbabilityTheory.kernel.sum_add + theorem ProbabilityTheory.kernel.sum_apply' + theorem ProbabilityTheory.kernel.sum_apply + theorem ProbabilityTheory.kernel.sum_comm + theorem ProbabilityTheory.kernel.sum_fintype + theorem ProbabilityTheory.kernel.sum_zero + theorem ProbabilityTheory.kernel.zero_apply 2023-06-09 02:13:26 2ca5e13 chore: do code review in CategoryTheory.Monoidal.Opposite (#4877) #4850 was merged before I could do the code review comments ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Monoidal/Opposite.lean 2023-06-09 02:13:25 f5cb6f2 feat: port MeasureTheory.Integral.CircleIntegral (#4858) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/MeasureTheory/Integral/CircleIntegral.lean + theorem CircleIntegrable.out + def CircleIntegrable + theorem ContinuousOn.circleIntegrable' + theorem ContinuousOn.circleIntegrable + theorem Set.Countable.preimage_circleMap + theorem abs_circleMap_zero + def cauchyPowerSeries + theorem cauchyPowerSeries_apply + theorem circleIntegrable_const + theorem circleIntegrable_iff + theorem circleIntegrable_sub_inv_iff + theorem circleIntegrable_sub_zpow_iff + theorem circleIntegrable_zero_radius + theorem circleIntegral.integral_congr + theorem circleIntegral.integral_const_mul + theorem circleIntegral.integral_eq_zero_of_hasDerivWithinAt' + theorem circleIntegral.integral_eq_zero_of_hasDerivWithinAt + theorem circleIntegral.integral_radius_zero + theorem circleIntegral.integral_smul + theorem circleIntegral.integral_smul_const + theorem circleIntegral.integral_sub + theorem circleIntegral.integral_sub_center_inv + theorem circleIntegral.integral_sub_inv_of_mem_ball + theorem circleIntegral.integral_sub_inv_smul_sub_smul + theorem circleIntegral.integral_sub_zpow_of_ne + theorem circleIntegral.integral_sub_zpow_of_undef + theorem circleIntegral.integral_undef + theorem circleIntegral.norm_integral_le_of_norm_le_const' + theorem circleIntegral.norm_integral_le_of_norm_le_const + theorem circleIntegral.norm_integral_lt_of_norm_le_const_of_lt + theorem circleIntegral.norm_two_pi_i_inv_smul_integral_le_of_norm_le_const + def circleIntegral + theorem circleIntegral_def_Icc + def circleMap + theorem circleMap_eq_center_iff + theorem circleMap_mem_closedBall + theorem circleMap_mem_sphere' + theorem circleMap_mem_sphere + theorem circleMap_ne_center + theorem circleMap_ne_mem_ball + theorem circleMap_not_mem_ball + theorem circleMap_sub_center + theorem circleMap_zero + theorem circleMap_zero_radius + theorem continuous_circleMap + theorem continuous_circleMap_inv + theorem deriv_circleMap + theorem deriv_circleMap_eq_zero_iff + theorem deriv_circleMap_ne_zero + theorem differentiable_circleMap + theorem hasDerivAt_circleMap + theorem hasFPowerSeriesOn_cauchy_integral + theorem hasSum_cauchyPowerSeries_integral + theorem hasSum_two_pi_I_cauchyPowerSeries_integral + theorem image_circleMap_Ioc + theorem le_radius_cauchyPowerSeries + theorem lipschitzWith_circleMap + theorem measurable_circleMap + theorem norm_cauchyPowerSeries_le + theorem periodic_circleMap + theorem range_circleMap + theorem sum_cauchyPowerSeries_eq_integral 2023-06-09 02:13:24 b3635a9 feat: completion of ShortComplex.LeftHomology (#4853) This PR marks the completion of the file Algebra.Homology.ShortComplex.LeftHomology ESTIMATED CHANGES Modified Mathlib/Algebra/Homology/ShortComplex/LeftHomology.lean + theorem CategoryTheory.ShortComplex.HasLeftHomology.hasCokernel + theorem CategoryTheory.ShortComplex.HasLeftHomology.hasKernel +/- theorem CategoryTheory.ShortComplex.LeftHomologyData.cyclesIso_hom_comp_i +/- theorem CategoryTheory.ShortComplex.LeftHomologyData.cyclesIso_inv_comp_iCycles + theorem CategoryTheory.ShortComplex.LeftHomologyData.isIso_i + theorem CategoryTheory.ShortComplex.LeftHomologyData.isIso_π + theorem CategoryTheory.ShortComplex.LeftHomologyData.leftHomologyπ_comp_leftHomologyIso_hom + theorem CategoryTheory.ShortComplex.LeftHomologyData.liftCycles_comp_cyclesIso_hom + theorem CategoryTheory.ShortComplex.LeftHomologyData.lift_K_comp_cyclesIso_inv + theorem CategoryTheory.ShortComplex.LeftHomologyData.π_comp_leftHomologyIso_inv + theorem CategoryTheory.ShortComplex.cyclesIsoLeftHomology_hom_inv_id + theorem CategoryTheory.ShortComplex.cyclesIsoLeftHomology_inv_hom_id + theorem CategoryTheory.ShortComplex.cyclesIsoX₂_hom_inv_id + theorem CategoryTheory.ShortComplex.cyclesIsoX₂_inv_hom_id + theorem CategoryTheory.ShortComplex.isIso_iCycles + theorem CategoryTheory.ShortComplex.isIso_leftHomologyπ + theorem CategoryTheory.ShortComplex.liftCycles_comp_cyclesMap + theorem CategoryTheory.ShortComplex.liftCycles_leftHomologyπ_eq_zero_of_boundary + theorem CategoryTheory.ShortComplex.toCycles_comp_leftHomology_π Modified Mathlib/CategoryTheory/Limits/Shapes/Kernels.lean + theorem CategoryTheory.Limits.CokernelCofork.IsColimit.isIso_π + theorem CategoryTheory.Limits.KernelFork.IsLimit.isIso_ι 2023-06-09 02:13:23 7a0fa5d feat: port CategoryTheory.Closed.Cartesian (#4829) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Closed/Cartesian.lean + def CategoryTheory.CartesianClosed.curry + theorem CategoryTheory.CartesianClosed.curry_eq + theorem CategoryTheory.CartesianClosed.curry_eq_iff + theorem CategoryTheory.CartesianClosed.curry_id_eq_coev + theorem CategoryTheory.CartesianClosed.curry_injective + theorem CategoryTheory.CartesianClosed.curry_natural_left + theorem CategoryTheory.CartesianClosed.curry_natural_right + theorem CategoryTheory.CartesianClosed.curry_uncurry + theorem CategoryTheory.CartesianClosed.eq_curry_iff + theorem CategoryTheory.CartesianClosed.homEquiv_apply_eq + theorem CategoryTheory.CartesianClosed.homEquiv_symm_apply_eq + def CategoryTheory.CartesianClosed.uncurry + theorem CategoryTheory.CartesianClosed.uncurry_curry + theorem CategoryTheory.CartesianClosed.uncurry_eq + theorem CategoryTheory.CartesianClosed.uncurry_id_eq_ev + theorem CategoryTheory.CartesianClosed.uncurry_injective + theorem CategoryTheory.CartesianClosed.uncurry_natural_left + theorem CategoryTheory.CartesianClosed.uncurry_natural_right + def CategoryTheory.binaryProductExponentiable + def CategoryTheory.cartesianClosedOfEquiv + theorem CategoryTheory.coev_app_comp_pre_app + theorem CategoryTheory.exp.coev_ev + def CategoryTheory.exp.delabPrefunctorObjExp + theorem CategoryTheory.exp.ev_coev + def CategoryTheory.expTerminalIsoSelf + theorem CategoryTheory.initial_mono + def CategoryTheory.internalHom + def CategoryTheory.internalizeHom + def CategoryTheory.mulZero + def CategoryTheory.powZero + def CategoryTheory.pre + theorem CategoryTheory.pre_id + theorem CategoryTheory.pre_map + def CategoryTheory.prodCoprodDistrib + theorem CategoryTheory.prod_map_pre_app_comp_ev + theorem CategoryTheory.strict_initial + def CategoryTheory.terminalExponentiable + theorem CategoryTheory.uncurry_pre + def CategoryTheory.zeroMul Modified Mathlib/CategoryTheory/Yoneda.lean 2023-06-09 00:56:50 8dbcc1d chore: fix `lift_fun` -> `liftFun` in lemma names (#4873) ESTIMATED CHANGES Modified Mathlib/Data/Fin/Basic.lean + theorem Fin.liftFun_iff_succ - theorem Fin.lift_fun_iff_succ Modified Mathlib/Data/Fin/Tuple/Monotone.lean + theorem liftFun_vecCons - theorem lift_fun_vecCons Modified Mathlib/Order/Antisymmetrization.lean 2023-06-09 00:56:49 3b8ea35 feat: port CategoryTheory.Monoidal.Mod_ (#4866) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Monoidal/Mod_.lean + structure Mod_.Hom + theorem Mod_.assoc_flip + def Mod_.comap + def Mod_.comp + theorem Mod_.comp_hom' + def Mod_.forget + theorem Mod_.hom_ext + def Mod_.id + theorem Mod_.id_hom' + def Mod_.regular + structure Mod_ 2023-06-09 00:56:48 a292f55 Bump ProofWidgets4 to v0.0.11 (#4865) ESTIMATED CHANGES Modified lake-manifest.json Modified lakefile.lean 2023-06-09 00:56:47 9320714 chore: bump lean 06-07 (#4849) ESTIMATED CHANGES Modified Mathlib/Analysis/Calculus/UniformLimitsDeriv.lean Modified Mathlib/Analysis/InnerProductSpace/Projection.lean Modified Mathlib/Analysis/NormedSpace/Multilinear.lean Modified Mathlib/Tactic/Have.lean - def Lean.Parser.Term.haveIdLhs' + def Mathlib.Tactic.haveIdLhs' +/- def Mathlib.Tactic.haveLetCore + def Mathlib.Tactic.hygieneInfo + def Mathlib.Tactic.hygieneInfoFn + def Mathlib.Tactic.hygieneInfoNoAntiquot.formatter + def Mathlib.Tactic.hygieneInfoNoAntiquot.parenthesizer + def Mathlib.Tactic.hygieneInfoNoAntiquot + def Mathlib.Tactic.optBinderIdent.name + def Mathlib.Tactic.optBinderIdent Modified Mathlib/Tactic/Replace.lean Modified lake-manifest.json Modified lean-toolchain Modified test/Have.lean Modified test/wlog.lean 2023-06-09 00:45:11 67c1479 chore: golf 2 proofs (#4875) ESTIMATED CHANGES Modified Mathlib/Algebra/BigOperators/Fin.lean Modified Mathlib/Order/Filter/Basic.lean +/- theorem Filter.sup_bind 2023-06-08 21:24:22 846afbe feat: port Data.Rat.Star (#4868) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Data/Rat/Star.lean 2023-06-08 20:47:28 1e35f7f feat: port Data.Real.Pi.Wallis (#4870) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Data/Real/Pi/Wallis.lean + theorem Real.Wallis.W_eq_factorial_ratio + theorem Real.Wallis.W_eq_integral_sin_pow_div_integral_sin_pow + theorem Real.Wallis.W_le + theorem Real.Wallis.W_pos + theorem Real.Wallis.W_succ + theorem Real.Wallis.le_W + theorem Real.Wallis.tendsto_W_nhds_pi_div_two + theorem Real.tendsto_prod_pi_div_two 2023-06-08 20:36:05 e39ba24 feat: port RingTheory.WittVector.MulP (#4869) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/RingTheory/WittVector/MulP.lean + theorem WittVector.bind₁_wittMulN_wittPolynomial + theorem WittVector.mulN_coeff + theorem WittVector.mulN_isPoly 2023-06-08 20:14:36 7c2a6d5 fix: restore notations in MeasureTheory.Integral.DivergenceTheorem (#4841) ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Integral/DivergenceTheorem.lean 2023-06-08 19:16:09 840194b feat: port Analysis.SpecialFunctions.Integrals (#4860) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/SpecialFunctions/Integrals.lean + theorem IntervalIntegrable.log + theorem integral_const_on_unit_interval + theorem integral_cos + theorem integral_cos_mul_complex + theorem integral_cos_pow + theorem integral_cos_pow_aux + theorem integral_cos_pow_three + theorem integral_cos_sq + theorem integral_cos_sq_sub_sin_sq + theorem integral_cpow + theorem integral_exp + theorem integral_exp_mul_complex + theorem integral_id + theorem integral_inv + theorem integral_inv_of_neg + theorem integral_inv_of_pos + theorem integral_inv_one_add_sq + theorem integral_log + theorem integral_log_of_neg + theorem integral_log_of_pos + theorem integral_mul_cpow_one_add_sq + theorem integral_mul_rpow_one_add_sq + theorem integral_one + theorem integral_one_div + theorem integral_one_div_of_neg + theorem integral_one_div_of_pos + theorem integral_one_div_one_add_sq + theorem integral_pow + theorem integral_pow_abs_sub_uIoc + theorem integral_rpow + theorem integral_sin + theorem integral_sin_mul_cos_sq + theorem integral_sin_mul_cos₁ + theorem integral_sin_mul_cos₂ + theorem integral_sin_pow + theorem integral_sin_pow_antitone + theorem integral_sin_pow_aux + theorem integral_sin_pow_even + theorem integral_sin_pow_even_mul_cos_pow_even + theorem integral_sin_pow_mul_cos_pow_odd + theorem integral_sin_pow_odd + theorem integral_sin_pow_odd_mul_cos_pow + theorem integral_sin_pow_pos + theorem integral_sin_pow_succ_le + theorem integral_sin_pow_three + theorem integral_sin_sq + theorem integral_sin_sq_mul_cos + theorem integral_sin_sq_mul_cos_sq + theorem integral_zpow + theorem intervalIntegral.intervalIntegrable_const + theorem intervalIntegral.intervalIntegrable_cos + theorem intervalIntegral.intervalIntegrable_cpow' + theorem intervalIntegral.intervalIntegrable_cpow + theorem intervalIntegral.intervalIntegrable_exp + theorem intervalIntegral.intervalIntegrable_id + theorem intervalIntegral.intervalIntegrable_inv + theorem intervalIntegral.intervalIntegrable_inv_one_add_sq + theorem intervalIntegral.intervalIntegrable_log + theorem intervalIntegral.intervalIntegrable_one_div + theorem intervalIntegral.intervalIntegrable_one_div_one_add_sq + theorem intervalIntegral.intervalIntegrable_pow + theorem intervalIntegral.intervalIntegrable_rpow' + theorem intervalIntegral.intervalIntegrable_rpow + theorem intervalIntegral.intervalIntegrable_sin + theorem intervalIntegral.intervalIntegrable_zpow + theorem intervalIntegral.inv_mul_integral_comp_add_div + theorem intervalIntegral.inv_mul_integral_comp_div + theorem intervalIntegral.inv_mul_integral_comp_div_add + theorem intervalIntegral.inv_mul_integral_comp_div_sub + theorem intervalIntegral.inv_mul_integral_comp_sub_div + theorem intervalIntegral.mul_integral_comp_add_mul + theorem intervalIntegral.mul_integral_comp_mul_add + theorem intervalIntegral.mul_integral_comp_mul_left + theorem intervalIntegral.mul_integral_comp_mul_right + theorem intervalIntegral.mul_integral_comp_mul_sub + theorem intervalIntegral.mul_integral_comp_sub_mul 2023-06-08 18:50:42 ce3d179 feat: port Algebra.Order.CompleteField (#4859) A statement in `Analysis.SpecialFunctions.Pow.Real.lean` was incorrect compared to the Mathlib3 version. I fixed it since it is used in this file. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Order/CompleteField.lean + theorem LinearOrderedField.coe_inducedOrderRingIso + theorem LinearOrderedField.coe_lt_inducedMap_iff + theorem LinearOrderedField.coe_mem_cutMap_iff + def LinearOrderedField.cutMap + theorem LinearOrderedField.cutMap_add + theorem LinearOrderedField.cutMap_bddAbove + theorem LinearOrderedField.cutMap_coe + theorem LinearOrderedField.cutMap_mono + theorem LinearOrderedField.cutMap_nonempty + theorem LinearOrderedField.cutMap_self + theorem LinearOrderedField.exists_mem_cutMap_mul_self_of_lt_inducedMap_mul_self + def LinearOrderedField.inducedAddHom + def LinearOrderedField.inducedMap + theorem LinearOrderedField.inducedMap_add + theorem LinearOrderedField.inducedMap_inducedMap + theorem LinearOrderedField.inducedMap_inv_self + theorem LinearOrderedField.inducedMap_mono + theorem LinearOrderedField.inducedMap_nonneg + theorem LinearOrderedField.inducedMap_one + theorem LinearOrderedField.inducedMap_rat + theorem LinearOrderedField.inducedMap_self + theorem LinearOrderedField.inducedMap_zero + def LinearOrderedField.inducedOrderRingHom + def LinearOrderedField.inducedOrderRingIso + theorem LinearOrderedField.inducedOrderRingIso_self + theorem LinearOrderedField.inducedOrderRingIso_symm + theorem LinearOrderedField.le_inducedMap_mul_self_of_mem_cutMap + theorem LinearOrderedField.lt_inducedMap_iff + theorem LinearOrderedField.mem_cutMap_iff + theorem ringHom_monotone Modified Mathlib/Analysis/SpecialFunctions/Pow/Real.lean 2023-06-08 18:26:46 5238ba1 chore: tidy various files (#4854) ESTIMATED CHANGES Modified Mathlib/Algebra/AlgebraicCard.lean + theorem Algebraic.cardinal_mk_of_countable_of_charZero - theorem Algebraic.cardinal_mk_of_countble_of_charZero Modified Mathlib/Algebra/Category/ModuleCat/Limits.lean Modified Mathlib/Analysis/Calculus/Deriv/Basic.lean Modified Mathlib/Analysis/Complex/UnitDisc/Basic.lean Modified Mathlib/Analysis/NormedSpace/BallAction.lean Modified Mathlib/CategoryTheory/Bicategory/Coherence.lean Modified Mathlib/CategoryTheory/Limits/Fubini.lean Modified Mathlib/FieldTheory/Minpoly/Field.lean + theorem minpoly.dvd_map_of_isScalarTower' - theorem minpoly.dvd_map_of_is_scalar_tower' + def minpoly.rootsOfMinPolyPiType Modified Mathlib/GroupTheory/Complement.lean - theorem Subgroup.IsComplement'_bot_left - theorem Subgroup.IsComplement'_bot_right - theorem Subgroup.IsComplement'_bot_top - theorem Subgroup.IsComplement'_comm - theorem Subgroup.IsComplement'_def - theorem Subgroup.IsComplement'_iff_card_mul_and_disjoint - theorem Subgroup.IsComplement'_of_card_mul_and_disjoint - theorem Subgroup.IsComplement'_of_coprime - theorem Subgroup.IsComplement'_of_disjoint_and_mul_eq_univ - theorem Subgroup.IsComplement'_stabilizer - theorem Subgroup.IsComplement'_top_bot - theorem Subgroup.IsComplement'_top_left - theorem Subgroup.IsComplement'_top_right - theorem Subgroup.IsComplement_iff_existsUnique - theorem Subgroup.IsComplement_singleton_left - theorem Subgroup.IsComplement_singleton_right - theorem Subgroup.IsComplement_singleton_top - theorem Subgroup.IsComplement_top_left - theorem Subgroup.IsComplement_top_right - theorem Subgroup.IsComplement_top_singleton + theorem Subgroup.isComplement'_bot_left + theorem Subgroup.isComplement'_bot_right + theorem Subgroup.isComplement'_bot_top + theorem Subgroup.isComplement'_comm + theorem Subgroup.isComplement'_def + theorem Subgroup.isComplement'_iff_card_mul_and_disjoint + theorem Subgroup.isComplement'_of_card_mul_and_disjoint + theorem Subgroup.isComplement'_of_coprime + theorem Subgroup.isComplement'_of_disjoint_and_mul_eq_univ + theorem Subgroup.isComplement'_stabilizer + theorem Subgroup.isComplement'_top_bot + theorem Subgroup.isComplement'_top_left + theorem Subgroup.isComplement'_top_right + theorem Subgroup.isComplement_iff_existsUnique + theorem Subgroup.isComplement_singleton_left + theorem Subgroup.isComplement_singleton_right + theorem Subgroup.isComplement_singleton_top + theorem Subgroup.isComplement_top_left + theorem Subgroup.isComplement_top_right + theorem Subgroup.isComplement_top_singleton + theorem Subgroup.quotientEquivSigmaZMod_apply + theorem Subgroup.quotientEquivSigmaZMod_symm_apply - theorem Subgroup.quotientEquivSigmaZmod_apply - theorem Subgroup.quotientEquivSigmaZmod_symm_apply Modified Mathlib/GroupTheory/Perm/Cycle/Concrete.lean Modified Mathlib/GroupTheory/SchurZassenhaus.lean Modified Mathlib/GroupTheory/Transfer.lean Modified Mathlib/Topology/Sheaves/SheafCondition/UniqueGluing.lean 2023-06-08 18:26:45 21a1610 feat: port MeasureTheory.Measure.Lebesgue.Integral (#4734) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/MeasureTheory/Measure/Lebesgue/Integral.lean + theorem Real.integrable_of_summable_norm_Icc + theorem integral_comp_neg_Iic + theorem integral_comp_neg_Ioi + theorem volume_regionBetween_eq_integral' + theorem volume_regionBetween_eq_integral 2023-06-08 18:15:11 5d80868 feat: port RingTheory.WittVector.IsPoly (#4851) This file contains a couple of tactics. I ported everything that is not a tactic and added an "attributes" file. My plan is to try to develop the tactics while porting a file that actually uses them. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/RingTheory/WittVector/IsPoly.lean + theorem WittVector.IsPoly.comp + theorem WittVector.IsPoly.comp₂ + theorem WittVector.IsPoly.ext + theorem WittVector.IsPoly.map + theorem WittVector.IsPoly₂.comp + theorem WittVector.IsPoly₂.compLeft + theorem WittVector.IsPoly₂.compRight + theorem WittVector.IsPoly₂.diag + theorem WittVector.IsPoly₂.ext + theorem WittVector.IsPoly₂.map + theorem WittVector.addIsPoly₂ + theorem WittVector.bind₁_onePoly_wittPolynomial + theorem WittVector.bind₁_zero_wittPolynomial + theorem WittVector.mulIsPoly₂ + theorem WittVector.negIsPoly + def WittVector.onePoly + theorem WittVector.poly_eq_of_wittPolynomial_bind_eq' + theorem WittVector.poly_eq_of_wittPolynomial_bind_eq Added Mathlib/RingTheory/WittVector/WittAttributes.lean 2023-06-08 17:35:27 ac5fb5c feat: port Algebra.Lie.Free (#4863) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Lie/Free.lean + theorem FreeLieAlgebra.Rel.addLeft + theorem FreeLieAlgebra.Rel.neg + theorem FreeLieAlgebra.Rel.smulOfTower + theorem FreeLieAlgebra.Rel.subLeft + theorem FreeLieAlgebra.Rel.subRight + inductive FreeLieAlgebra.Rel + theorem FreeLieAlgebra.hom_ext + def FreeLieAlgebra.lift + def FreeLieAlgebra.liftAux + theorem FreeLieAlgebra.liftAux_map_add + theorem FreeLieAlgebra.liftAux_map_mul + theorem FreeLieAlgebra.liftAux_map_smul + theorem FreeLieAlgebra.liftAux_spec + theorem FreeLieAlgebra.lift_comp_of + theorem FreeLieAlgebra.lift_of_apply + theorem FreeLieAlgebra.lift_symm_apply + theorem FreeLieAlgebra.lift_unique + def FreeLieAlgebra.mk + def FreeLieAlgebra.of + theorem FreeLieAlgebra.of_comp_lift + def FreeLieAlgebra.universalEnvelopingEquivFreeAlgebra + def FreeLieAlgebra 2023-06-08 17:23:21 34e6b3d feat: port RingTheory.DedekindDomain.PID (#4855) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/RingTheory/DedekindDomain/PID.lean + theorem FractionalIdeal.isPrincipal.of_finite_maximals_of_inv + theorem FractionalIdeal.isPrincipal_of_unit_of_comap_mul_span_singleton_eq_top + theorem Ideal.IsPrincipal.of_finite_maximals_of_isUnit + theorem Ideal.eq_span_singleton_of_mem_of_not_mem_sq_of_not_mem_prime_ne + theorem IsDedekindDomain.isPrincipalIdealRing_localization_over_prime + theorem IsLocalization.OverPrime.mem_normalizedFactors_of_isPrime + theorem IsPrincipalIdealRing.of_finite_primes 2023-06-08 16:01:11 d6a4e2f feat: port CategoryTheory.Monoidal.OfHasFiniteProducts (#4826) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Monoidal/OfHasFiniteProducts.lean + theorem CategoryTheory.monoidalOfHasFiniteCoproducts.associator_hom + theorem CategoryTheory.monoidalOfHasFiniteCoproducts.leftUnitor_hom + theorem CategoryTheory.monoidalOfHasFiniteCoproducts.leftUnitor_inv + theorem CategoryTheory.monoidalOfHasFiniteCoproducts.rightUnitor_hom + theorem CategoryTheory.monoidalOfHasFiniteCoproducts.rightUnitor_inv + theorem CategoryTheory.monoidalOfHasFiniteCoproducts.tensorHom + theorem CategoryTheory.monoidalOfHasFiniteCoproducts.tensorObj + def CategoryTheory.monoidalOfHasFiniteCoproducts + theorem CategoryTheory.monoidalOfHasFiniteProducts.associator_hom + theorem CategoryTheory.monoidalOfHasFiniteProducts.leftUnitor_hom + theorem CategoryTheory.monoidalOfHasFiniteProducts.leftUnitor_inv + theorem CategoryTheory.monoidalOfHasFiniteProducts.rightUnitor_hom + theorem CategoryTheory.monoidalOfHasFiniteProducts.rightUnitor_inv + theorem CategoryTheory.monoidalOfHasFiniteProducts.tensorHom + theorem CategoryTheory.monoidalOfHasFiniteProducts.tensorObj + def CategoryTheory.monoidalOfHasFiniteProducts + def CategoryTheory.symmetricOfHasFiniteCoproducts + def CategoryTheory.symmetricOfHasFiniteProducts 2023-06-08 14:12:40 6d680d9 chore: forward-port leanprover-community/mathlib#19086 (#4817) [`ring_theory.polynomial.quotient`@`61d8b8248633da198afea97ae7a90ee63bdf8c1c`..`4f840b8d28320b20c87db17b3a6eef3d325fca87`](https://leanprover-community.github.io/mathlib-port-status/file/ring_theory/polynomial/quotient?range=61d8b8248633da198afea97ae7a90ee63bdf8c1c..4f840b8d28320b20c87db17b3a6eef3d325fca87) ESTIMATED CHANGES Modified Mathlib/RingTheory/Polynomial/Quotient.lean 2023-06-08 12:59:26 e06ec21 chore: forward-port leanprover-community/mathlib#19082 (#4816) ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/Span.lean + theorem LinearEquiv.coord_apply_smul +/- theorem LinearEquiv.coord_self +/- def LinearEquiv.toSpanNonzeroSingleton +/- theorem LinearEquiv.toSpanNonzeroSingleton_one +/- theorem LinearMap.ker_toSpanSingleton 2023-06-08 11:30:14 832c78a feat: port FieldTheory.Adjoin (#4723) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/FieldTheory/Adjoin.lean + theorem IntermediateField.AdjoinSimple.algebraMap_gen + def IntermediateField.AdjoinSimple.gen + theorem IntermediateField.AdjoinSimple.isIntegral_gen + theorem IntermediateField.AlgEquiv.fieldRange_eq_top + theorem IntermediateField.AlgHom.fieldRange_eq_map + theorem IntermediateField.AlgHom.fieldRange_eq_top + theorem IntermediateField.AlgHom.map_fieldRange + def IntermediateField.FG + theorem IntermediateField.Lifts.eq_of_le + theorem IntermediateField.Lifts.exists_lift_of_splits + theorem IntermediateField.Lifts.exists_max_three + theorem IntermediateField.Lifts.exists_max_two + theorem IntermediateField.Lifts.exists_upper_bound + theorem IntermediateField.Lifts.le_lifts_of_splits + theorem IntermediateField.Lifts.mem_lifts_of_splits + def IntermediateField.Lifts.upperBoundIntermediateField + def IntermediateField.Lifts + theorem IntermediateField.adjoin.algebraMap_mem + theorem IntermediateField.adjoin.finiteDimensional + theorem IntermediateField.adjoin.finrank + theorem IntermediateField.adjoin.mono + theorem IntermediateField.adjoin.range_algebraMap_subset + def IntermediateField.adjoin + theorem IntermediateField.adjoinRootEquivAdjoin_apply_root + theorem IntermediateField.adjoin_adjoin_comm + theorem IntermediateField.adjoin_adjoin_left + theorem IntermediateField.adjoin_algebraic_toSubalgebra + theorem IntermediateField.adjoin_contains_field_as_subfield + theorem IntermediateField.adjoin_empty + theorem IntermediateField.adjoin_eq_algebra_adjoin + theorem IntermediateField.adjoin_eq_bot_iff + theorem IntermediateField.adjoin_eq_range_algebraMap_adjoin + theorem IntermediateField.adjoin_finite_isCompactElement + theorem IntermediateField.adjoin_finset_isCompactElement + theorem IntermediateField.adjoin_induction + theorem IntermediateField.adjoin_insert_adjoin + theorem IntermediateField.adjoin_int + theorem IntermediateField.adjoin_le_iff + theorem IntermediateField.adjoin_le_subfield + theorem IntermediateField.adjoin_map + theorem IntermediateField.adjoin_nat + theorem IntermediateField.adjoin_one + theorem IntermediateField.adjoin_rootSet_isSplittingField + theorem IntermediateField.adjoin_simple_adjoin_simple + theorem IntermediateField.adjoin_simple_comm + theorem IntermediateField.adjoin_simple_eq_bot_iff + theorem IntermediateField.adjoin_simple_isCompactElement + theorem IntermediateField.adjoin_simple_le_iff + theorem IntermediateField.adjoin_simple_toSubalgebra_of_integral + theorem IntermediateField.adjoin_subset_adjoin_iff + theorem IntermediateField.adjoin_univ + theorem IntermediateField.adjoin_zero + theorem IntermediateField.aeval_gen_minpoly + theorem IntermediateField.algHom_mk_adjoin_splits' + theorem IntermediateField.algHom_mk_adjoin_splits + theorem IntermediateField.algebra_adjoin_le_adjoin + theorem IntermediateField.botEquiv_def + theorem IntermediateField.botEquiv_symm + theorem IntermediateField.bot_eq_top_of_finrank_adjoin_eq_one + theorem IntermediateField.bot_eq_top_of_finrank_adjoin_le_one + theorem IntermediateField.bot_eq_top_of_rank_adjoin_eq_one + theorem IntermediateField.bot_toSubalgebra + theorem IntermediateField.card_algHom_adjoin_integral + theorem IntermediateField.coe_algebraMap_over_bot + theorem IntermediateField.coe_bot + theorem IntermediateField.coe_iInf + theorem IntermediateField.coe_inf + theorem IntermediateField.coe_sInf + theorem IntermediateField.coe_top + theorem IntermediateField.eq_adjoin_of_eq_algebra_adjoin + def IntermediateField.equivOfEq + theorem IntermediateField.equivOfEq_rfl + theorem IntermediateField.equivOfEq_symm + theorem IntermediateField.equivOfEq_trans + theorem IntermediateField.exists_finset_of_mem_iSup + theorem IntermediateField.exists_finset_of_mem_supr'' + theorem IntermediateField.exists_finset_of_mem_supr' + theorem IntermediateField.fG_of_fG_toSubalgebra + theorem IntermediateField.fg_adjoin_finset + theorem IntermediateField.fg_bot + theorem IntermediateField.fg_def + theorem IntermediateField.fg_of_noetherian + theorem IntermediateField.finiteDimensional_iSup_of_finset' + theorem IntermediateField.finrank_adjoin_eq_one_iff + theorem IntermediateField.finrank_adjoin_simple_eq_one_iff + theorem IntermediateField.finrank_bot + theorem IntermediateField.finrank_eq_one_iff + theorem IntermediateField.gc + def IntermediateField.gi + theorem IntermediateField.iInf_toSubalgebra + theorem IntermediateField.iInf_toSubfield + theorem IntermediateField.induction_on_adjoin + theorem IntermediateField.induction_on_adjoin_fg + theorem IntermediateField.induction_on_adjoin_finset + theorem IntermediateField.inf_toSubalgebra + theorem IntermediateField.inf_toSubfield + theorem IntermediateField.insert_le_iff + theorem IntermediateField.isAlgebraic_iSup + theorem IntermediateField.isSplittingField_iSup + theorem IntermediateField.isSplittingField_iff + theorem IntermediateField.le_sup_toSubalgebra + theorem IntermediateField.mem_adjoin_simple_self + theorem IntermediateField.mem_bot + theorem IntermediateField.mem_inf + theorem IntermediateField.mem_top + theorem IntermediateField.minpoly.degree_le + theorem IntermediateField.minpoly.natDegree_le + theorem IntermediateField.minpoly_gen + theorem IntermediateField.rank_adjoin_eq_one_iff + theorem IntermediateField.rank_adjoin_simple_eq_one_iff + theorem IntermediateField.rank_bot + theorem IntermediateField.rank_eq_one_iff + theorem IntermediateField.restrictScalars_bot_eq_self + theorem IntermediateField.restrictScalars_top + theorem IntermediateField.sInf_toSubalgebra + theorem IntermediateField.sInf_toSubfield + theorem IntermediateField.subset_adjoin + theorem IntermediateField.subset_adjoin_of_subset_left + theorem IntermediateField.subset_adjoin_of_subset_right + theorem IntermediateField.subsingleton_of_finrank_adjoin_eq_one + theorem IntermediateField.subsingleton_of_finrank_adjoin_le_one + theorem IntermediateField.subsingleton_of_rank_adjoin_eq_one + theorem IntermediateField.sup_toSubalgebra + def IntermediateField.topEquiv + theorem IntermediateField.top_toSubalgebra + theorem IntermediateField.top_toSubfield + theorem PowerBasis.equivAdjoinSimple_aeval + theorem PowerBasis.equivAdjoinSimple_gen + theorem PowerBasis.equivAdjoinSimple_symm_aeval + theorem PowerBasis.equivAdjoinSimple_symm_gen 2023-06-08 10:38:32 2b1f0dc feat: port LinearAlgebra.Eigenspace.Basic (#4842) Two instances defined in `Data.Dfinsupp.Basic` are used in this file (with explicit arguments) so I gave them names. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Data/Dfinsupp/Basic.lean Added Mathlib/LinearAlgebra/Eigenspace/Basic.lean + def Module.End.Eigenvalues + theorem Module.End.HasEigenvalue.exists_hasEigenvector + def Module.End.HasEigenvalue + theorem Module.End.HasEigenvector.apply_eq_smul + def Module.End.HasEigenvector + def Module.End.HasGeneralizedEigenvalue + def Module.End.HasGeneralizedEigenvector + def Module.End.eigenspace + theorem Module.End.eigenspace_div + theorem Module.End.eigenspace_le_generalizedEigenspace + theorem Module.End.eigenspace_restrict_eq_bot + theorem Module.End.eigenspace_restrict_le_eigenspace + theorem Module.End.eigenspace_zero + theorem Module.End.eigenspaces_independent + theorem Module.End.eigenvectors_linearIndependent + theorem Module.End.exp_ne_zero_of_hasGeneralizedEigenvalue + def Module.End.generalizedEigenrange + def Module.End.generalizedEigenspace + theorem Module.End.generalizedEigenspace_eq_generalizedEigenspace_finrank_of_le + theorem Module.End.generalizedEigenspace_le_generalizedEigenspace_finrank + theorem Module.End.generalizedEigenspace_le_maximal + theorem Module.End.generalizedEigenspace_restrict + theorem Module.End.generalizedEigenspace_zero + theorem Module.End.generalized_eigenvec_disjoint_range_ker + theorem Module.End.hasEigenvalue_iff_mem_spectrum + theorem Module.End.hasEigenvalue_of_hasEigenvector + theorem Module.End.hasEigenvalue_of_hasGeneralizedEigenvalue + theorem Module.End.hasGeneralizedEigenvalue_iff_hasEigenvalue + theorem Module.End.hasGeneralizedEigenvalue_of_hasEigenvalue + theorem Module.End.hasGeneralizedEigenvalue_of_hasGeneralizedEigenvalue_of_le + theorem Module.End.map_generalizedEigenrange_le + def Module.End.maximalGeneralizedEigenspace + theorem Module.End.maximalGeneralizedEigenspace_eq + theorem Module.End.mem_eigenspace_iff + theorem Module.End.mem_generalizedEigenspace + theorem Module.End.mem_maximalGeneralizedEigenspace + theorem Module.End.mem_spectrum_of_hasEigenvalue + theorem Module.End.pos_finrank_generalizedEigenspace_of_hasEigenvalue 2023-06-08 09:51:32 6f39ffa feat: port LinearAlgebra.TensorAlgebra.Grading (#4803) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Algebra/Operations.lean Added Mathlib/LinearAlgebra/TensorAlgebra/Grading.lean + theorem TensorAlgebra.GradedAlgebra.ι_apply 2023-06-08 09:12:30 bd09dbc feat: port CategoryTheory.Preadditive.Mat (#4796) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Preadditive/Mat.lean + def CategoryTheory.Functor.mapMatComp + def CategoryTheory.Functor.mapMatId + def CategoryTheory.Functor.mapMat_ + theorem CategoryTheory.Mat.add_apply + theorem CategoryTheory.Mat.comp_apply + theorem CategoryTheory.Mat.comp_def + def CategoryTheory.Mat.equivalenceSingleObj + def CategoryTheory.Mat.equivalenceSingleObjInverse + theorem CategoryTheory.Mat.hom_ext + theorem CategoryTheory.Mat.id_apply + theorem CategoryTheory.Mat.id_apply_of_ne + theorem CategoryTheory.Mat.id_apply_self + theorem CategoryTheory.Mat.id_def + def CategoryTheory.Mat + def CategoryTheory.Mat_.Hom.comp + def CategoryTheory.Mat_.Hom.id + def CategoryTheory.Mat_.Hom + theorem CategoryTheory.Mat_.add_apply + def CategoryTheory.Mat_.additiveObjIsoBiproduct + theorem CategoryTheory.Mat_.additiveObjIsoBiproduct_hom_π + theorem CategoryTheory.Mat_.additiveObjIsoBiproduct_naturality' + theorem CategoryTheory.Mat_.additiveObjIsoBiproduct_naturality + theorem CategoryTheory.Mat_.comp_apply + theorem CategoryTheory.Mat_.comp_def + def CategoryTheory.Mat_.embedding + def CategoryTheory.Mat_.embeddingLiftIso + def CategoryTheory.Mat_.equivalenceSelfOfHasFiniteBiproducts + def CategoryTheory.Mat_.equivalenceSelfOfHasFiniteBiproductsAux + theorem CategoryTheory.Mat_.equivalenceSelfOfHasFiniteBiproducts_functor + theorem CategoryTheory.Mat_.equivalenceSelfOfHasFiniteBiproducts_inverse + def CategoryTheory.Mat_.ext + theorem CategoryTheory.Mat_.hom_ext + theorem CategoryTheory.Mat_.id_apply + theorem CategoryTheory.Mat_.id_apply_of_ne + theorem CategoryTheory.Mat_.id_apply_self + theorem CategoryTheory.Mat_.id_def + def CategoryTheory.Mat_.isoBiproductEmbedding + def CategoryTheory.Mat_.lift + def CategoryTheory.Mat_.liftUnique + theorem CategoryTheory.Mat_.ι_additiveObjIsoBiproduct_inv + structure CategoryTheory.Mat_ 2023-06-08 09:01:09 4c89147 feat: port Algebra.Lie.UniversalEnveloping (#4827) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Lie/UniversalEnveloping.lean + inductive UniversalEnvelopingAlgebra.Rel + theorem UniversalEnvelopingAlgebra.hom_ext + def UniversalEnvelopingAlgebra.lift + theorem UniversalEnvelopingAlgebra.lift_symm_apply + theorem UniversalEnvelopingAlgebra.lift_unique + theorem UniversalEnvelopingAlgebra.lift_ι_apply' + theorem UniversalEnvelopingAlgebra.lift_ι_apply + def UniversalEnvelopingAlgebra.mkAlgHom + def UniversalEnvelopingAlgebra.ι + theorem UniversalEnvelopingAlgebra.ι_comp_lift + def UniversalEnvelopingAlgebra 2023-06-08 08:49:31 3dbd9bf feat: port CategoryTheory.Monoidal.Opposite (#4850) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Monoidal/Opposite.lean + def CategoryTheory.Iso.mop + def CategoryTheory.MonoidalOpposite.mop + theorem CategoryTheory.MonoidalOpposite.mop_unmop + theorem CategoryTheory.MonoidalOpposite.op_inj_iff + theorem CategoryTheory.MonoidalOpposite.op_injective + def CategoryTheory.MonoidalOpposite.unmop + theorem CategoryTheory.MonoidalOpposite.unmop_mop + theorem CategoryTheory.MonoidalOpposite.unop_inj_iff + theorem CategoryTheory.MonoidalOpposite.unop_injective + def CategoryTheory.MonoidalOpposite + theorem CategoryTheory.mop_comp + theorem CategoryTheory.mop_id + theorem CategoryTheory.mop_id_unmop + theorem CategoryTheory.mop_inj + theorem CategoryTheory.mop_tensorObj + theorem CategoryTheory.mop_tensorUnit + theorem CategoryTheory.mop_unmop + theorem CategoryTheory.op_tensorObj + theorem CategoryTheory.op_tensorUnit + theorem CategoryTheory.unmop_comp + theorem CategoryTheory.unmop_id + theorem CategoryTheory.unmop_id_mop + theorem CategoryTheory.unmop_inj + theorem CategoryTheory.unmop_mop + def Quiver.Hom.mop + def Quiver.Hom.unmop 2023-06-08 08:49:30 6898130 feat: port Analysis.SpecialFunctions.PolarCoord (#4848) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/SpecialFunctions/PolarCoord.lean + theorem hasFDerivAt_polarCoord_symm + theorem integral_comp_polarCoord_symm + def polarCoord + theorem polarCoord_source_ae_eq_univ 2023-06-08 08:49:29 d950df7 feat: port RingTheory.DedekindDomain.Dvr (#4846) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/RingTheory/DedekindDomain/Dvr.lean + theorem IsDedekindDomain.isDedekindDomainDvr + structure IsDedekindDomainDvr + theorem IsLocalization.AtPrime.discreteValuationRing_of_dedekind_domain + theorem IsLocalization.AtPrime.isDedekindDomain + theorem IsLocalization.AtPrime.not_isField + theorem IsLocalization.isDedekindDomain + theorem Ring.DimensionLEOne.localization 2023-06-08 08:49:28 2e5bbfa feat: port RingTheory.WittVector.Teichmuller (#4845) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/RingTheory/WittVector/Teichmuller.lean + theorem WittVector.ghostComponent_teichmuller + theorem WittVector.map_teichmuller + def WittVector.teichmuller + def WittVector.teichmullerFun + theorem WittVector.teichmuller_coeff_pos + theorem WittVector.teichmuller_coeff_zero + theorem WittVector.teichmuller_zero 2023-06-08 08:49:27 a3f5bad feat: port CategoryTheory.Monoidal.Skeleton (#4844) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Monoidal/Skeleton.lean + def CategoryTheory.commMonoidOfSkeletalBraided + def CategoryTheory.monoidOfSkeletalMonoidal 2023-06-08 08:38:13 8461076 feat: port Algebra.Lie.Normalizer (#4843) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Lie/Normalizer.lean + theorem LieSubalgebra.coe_normalizer_eq_normalizer + theorem LieSubalgebra.exists_nested_lieIdeal_ofLe_normalizer + theorem LieSubalgebra.ideal_in_normalizer + theorem LieSubalgebra.le_normalizer + theorem LieSubalgebra.lie_mem_sup_of_mem_normalizer + theorem LieSubalgebra.mem_normalizer_iff' + theorem LieSubalgebra.mem_normalizer_iff + def LieSubalgebra.normalizer + theorem LieSubalgebra.normalizer_eq_self_iff + theorem LieSubmodule.comap_normalizer + theorem LieSubmodule.gc_top_lie_normalizer + theorem LieSubmodule.le_normalizer + theorem LieSubmodule.mem_normalizer + theorem LieSubmodule.monotone_normalizer + def LieSubmodule.normalizer + theorem LieSubmodule.normalizer_bot_eq_maxTrivSubmodule + theorem LieSubmodule.normalizer_inf + theorem LieSubmodule.top_lie_le_iff_le_normalizer 2023-06-08 08:15:22 e50b7a3 fix: Data/Bitvec change definition of `ofInt` to the ring homomorphism (#4525) ESTIMATED CHANGES Modified Mathlib/Data/Bitvec/Core.lean 2023-06-08 07:32:00 4d3d2de chore: forward-port leanprover-community/mathlib#18854 (#4840) This forward-ports all the files from leanprover-community/mathlib#18854 which have already been ported, and it also ports the new file `algebra.star.order`, which is a split from `algebra.star.basic` and was necessary to do at the same time. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/MonoidAlgebra/Grading.lean Modified Mathlib/Algebra/Star/Basic.lean - theorem conjugate_le_conjugate' - theorem conjugate_le_conjugate - theorem conjugate_nonneg' - theorem conjugate_nonneg - theorem star_mul_self_nonneg' - theorem star_mul_self_nonneg Modified Mathlib/Algebra/Star/CHSH.lean Added Mathlib/Algebra/Star/Order.lean + theorem StarOrderedRing.nonneg_iff + def StarOrderedRing.ofLeIff + def StarOrderedRing.ofNonnegIff' + def StarOrderedRing.ofNonnegIff + theorem conjugate_le_conjugate' + theorem conjugate_le_conjugate + theorem conjugate_nonneg' + theorem conjugate_nonneg + theorem star_mul_self_nonneg' + theorem star_mul_self_nonneg Modified Mathlib/Data/Complex/Basic.lean Modified Mathlib/Data/Real/Sqrt.lean Modified Mathlib/LinearAlgebra/Matrix/DotProduct.lean Modified docs/references.bib 2023-06-08 07:20:43 b8c7685 feat: port Topology.Algebra.ContinuousAffineMap (#3277) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Topology/Algebra/ContinuousAffineMap.lean + theorem ContinuousAffineMap.add_apply + theorem ContinuousAffineMap.coe_add + theorem ContinuousAffineMap.coe_affineMap_mk + theorem ContinuousAffineMap.coe_comp + theorem ContinuousAffineMap.coe_const + theorem ContinuousAffineMap.coe_continuousMap_mk + theorem ContinuousAffineMap.coe_injective + theorem ContinuousAffineMap.coe_mk + theorem ContinuousAffineMap.coe_neg + theorem ContinuousAffineMap.coe_smul + theorem ContinuousAffineMap.coe_sub + theorem ContinuousAffineMap.coe_to_affineMap + theorem ContinuousAffineMap.coe_to_continuousMap + theorem ContinuousAffineMap.coe_zero + def ContinuousAffineMap.comp + theorem ContinuousAffineMap.comp_apply + theorem ContinuousAffineMap.congr_fun + def ContinuousAffineMap.const + theorem ContinuousAffineMap.ext + theorem ContinuousAffineMap.ext_iff + theorem ContinuousAffineMap.mk_coe + theorem ContinuousAffineMap.neg_apply + theorem ContinuousAffineMap.smul_apply + theorem ContinuousAffineMap.sub_apply + def ContinuousAffineMap.toContinuousMap + theorem ContinuousAffineMap.toContinuousMap_coe + theorem ContinuousAffineMap.toFun_eq_coe + theorem ContinuousAffineMap.to_affineMap_injective + theorem ContinuousAffineMap.to_continuousMap_injective + theorem ContinuousAffineMap.zero_apply + structure ContinuousAffineMap + theorem ContinuousLinearMap.coe_toContinuousAffineMap + def ContinuousLinearMap.toContinuousAffineMap + theorem ContinuousLinearMap.toContinuousAffineMap_map_zero 2023-06-08 06:34:43 9dff81a feat: port NumberTheory.RamificationInertia (#4795) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/NumberTheory/RamificationInertia.lean + theorem Ideal.Factors.finrank_pow_ramificationIdx + theorem Ideal.Factors.inertiaDeg_ne_zero + theorem Ideal.Factors.ne_bot + theorem Ideal.Factors.piQuotientEquiv_map + theorem Ideal.Factors.piQuotientEquiv_mk + theorem Ideal.Factors.ramificationIdx_ne_zero + theorem Ideal.FinrankQuotientMap.linearIndependent_of_nontrivial + theorem Ideal.FinrankQuotientMap.span_eq_top + theorem Ideal.IsDedekindDomain.ramificationIdx_eq_factors_count + theorem Ideal.IsDedekindDomain.ramificationIdx_eq_normalizedFactors_count + theorem Ideal.IsDedekindDomain.ramificationIdx_ne_zero + theorem Ideal.Quotient.algebraMap_quotient_of_ramificationIdx_neZero + theorem Ideal.Quotient.algebraMap_quotient_pow_ramificationIdx + def Ideal.Quotient.algebraQuotientOfRamificationIdxNeZero + theorem Ideal.finrank_prime_pow_ramificationIdx + theorem Ideal.finrank_quotient_map + theorem Ideal.inertiaDeg_algebraMap + theorem Ideal.inertiaDeg_of_subsingleton + theorem Ideal.le_comap_of_ramificationIdx_ne_zero + theorem Ideal.le_comap_pow_ramificationIdx + theorem Ideal.le_pow_of_le_ramificationIdx + theorem Ideal.le_pow_ramificationIdx + def Ideal.powQuotSuccInclusion + theorem Ideal.powQuotSuccInclusion_injective + theorem Ideal.quotientToQuotientRangePowQuotSuccAux_mk + theorem Ideal.quotientToQuotientRangePowQuotSucc_injective + theorem Ideal.quotientToQuotientRangePowQuotSucc_mk + theorem Ideal.quotientToQuotientRangePowQuotSucc_surjective + theorem Ideal.ramificationIdx_bot + theorem Ideal.ramificationIdx_eq_find + theorem Ideal.ramificationIdx_eq_zero + theorem Ideal.ramificationIdx_lt + theorem Ideal.ramificationIdx_ne_zero + theorem Ideal.ramificationIdx_of_not_le + theorem Ideal.ramificationIdx_spec + theorem Ideal.rank_pow_quot + theorem Ideal.rank_pow_quot_aux + theorem Ideal.rank_prime_pow_ramificationIdx + theorem Ideal.sum_ramification_inertia 2023-06-08 05:08:16 6221798 feat: port MeasureTheory.Integral.DivergenceTheorem (#4814) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/MeasureTheory/Integral/DivergenceTheorem.lean + theorem MeasureTheory.integral2_divergence_prod_of_hasFDerivWithinAt_off_countable + theorem MeasureTheory.integral_divergence_of_hasFDerivWithinAt_off_countable' + theorem MeasureTheory.integral_divergence_of_hasFDerivWithinAt_off_countable + theorem MeasureTheory.integral_divergence_of_hasFDerivWithinAt_off_countable_aux₁ + theorem MeasureTheory.integral_divergence_of_hasFDerivWithinAt_off_countable_aux₂ + theorem MeasureTheory.integral_divergence_of_hasFDerivWithinAt_off_countable_of_equiv + theorem MeasureTheory.integral_divergence_prod_Icc_of_hasFDerivWithinAt_off_countable_of_le + theorem MeasureTheory.integral_eq_of_hasDerivWithinAt_off_countable_of_le + theorem MeasureTheory.integral_eq_of_has_deriv_within_at_off_countable 2023-06-08 04:56:41 f704f56 chore: put library_search cache in the right place for projects (#4838) ESTIMATED CHANGES Modified Cache/IO.lean 2023-06-08 04:46:14 0674e58 feat: port MeasureTheory.Function.Jacobian (#4839) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/MeasureTheory/Function/Jacobian.lean + theorem ApproximatesLinearOn.norm_fderiv_sub_le + theorem MeasureTheory.addHaar_image_eq_zero_of_det_fderivWithin_eq_zero + theorem MeasureTheory.addHaar_image_eq_zero_of_det_fderivWithin_eq_zero_aux + theorem MeasureTheory.addHaar_image_eq_zero_of_differentiableOn_of_addHaar_eq_zero + theorem MeasureTheory.addHaar_image_le_lintegral_abs_det_fderiv + theorem MeasureTheory.addHaar_image_le_lintegral_abs_det_fderiv_aux1 + theorem MeasureTheory.addHaar_image_le_lintegral_abs_det_fderiv_aux2 + theorem MeasureTheory.addHaar_image_le_mul_of_det_lt + theorem MeasureTheory.aemeasurable_fderivWithin + theorem MeasureTheory.aemeasurable_ofReal_abs_det_fderivWithin + theorem MeasureTheory.aemeasurable_toNNReal_abs_det_fderivWithin + theorem MeasureTheory.det_one_smulRight + theorem MeasureTheory.integrableOn_image_iff_integrableOn_abs_deriv_smul + theorem MeasureTheory.integrableOn_image_iff_integrableOn_abs_det_fderiv_smul + theorem MeasureTheory.integral_image_eq_integral_abs_deriv_smul + theorem MeasureTheory.integral_image_eq_integral_abs_det_fderiv_smul + theorem MeasureTheory.integral_target_eq_integral_abs_det_fderiv_smul + theorem MeasureTheory.lintegral_abs_det_fderiv_eq_addHaar_image + theorem MeasureTheory.lintegral_abs_det_fderiv_le_addHaar_image + theorem MeasureTheory.lintegral_abs_det_fderiv_le_addHaar_image_aux1 + theorem MeasureTheory.lintegral_abs_det_fderiv_le_addHaar_image_aux2 + theorem MeasureTheory.lintegral_image_eq_lintegral_abs_det_fderiv_mul + theorem MeasureTheory.map_withDensity_abs_det_fderiv_eq_addHaar + theorem MeasureTheory.measurableEmbedding_of_fderivWithin + theorem MeasureTheory.measurable_image_of_fderivWithin + theorem MeasureTheory.mul_le_addHaar_image_of_lt_det + theorem MeasureTheory.restrict_map_withDensity_abs_det_fderiv_eq_addHaar + theorem exists_closed_cover_approximatesLinearOn_of_hasFDerivWithinAt + theorem exists_partition_approximatesLinearOn_of_hasFDerivWithinAt 2023-06-08 04:34:31 cabed4d feat: port RingTheory.DiscreteValuationRing.TFAE (#4825) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/RingTheory/DedekindDomain/Basic.lean Modified Mathlib/RingTheory/DedekindDomain/Ideal.lean + theorem IsDedekindDomainInv.dimensionLEOne - theorem IsDedekindDomainInv.dimensionLeOne Added Mathlib/RingTheory/DiscreteValuationRing/TFAE.lean + theorem DiscreteValuationRing.TFAE + theorem exists_maximalIdeal_pow_eq_of_principal + theorem maximalIdeal_isPrincipal_of_isDedekindDomain 2023-06-08 04:34:30 a0ff095 feat: port Analysis.SpecialFunctions.NonIntegrable (#4823) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/SpecialFunctions/NonIntegrable.lean + theorem intervalIntegrable_inv_iff + theorem intervalIntegrable_sub_inv_iff + theorem not_intervalIntegrable_of_sub_inv_isBigO_punctured + theorem not_intervalIntegrable_of_tendsto_norm_atTop_of_deriv_isBigO_filter + theorem not_intervalIntegrable_of_tendsto_norm_atTop_of_deriv_isBigO_punctured + theorem not_intervalIntegrable_of_tendsto_norm_atTop_of_deriv_isBigO_within_diff_singleton 2023-06-08 04:34:29 dfc4f3d feat: port RingTheory.WittVector.Basic (#4688) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/RingTheory/WittVector/Basic.lean + def WittVector.ghostComponent + theorem WittVector.ghostComponent_apply + def WittVector.ghostEquiv + theorem WittVector.ghostEquiv_coe + theorem WittVector.ghostMap.bijective_of_invertible + def WittVector.ghostMap + theorem WittVector.ghostMap_apply + theorem WittVector.mapFun.add + theorem WittVector.mapFun.injective + theorem WittVector.mapFun.int_cast + theorem WittVector.mapFun.mul + theorem WittVector.mapFun.nat_cast + theorem WittVector.mapFun.neg + theorem WittVector.mapFun.nsmul + theorem WittVector.mapFun.one + theorem WittVector.mapFun.pow + theorem WittVector.mapFun.sub + theorem WittVector.mapFun.surjective + theorem WittVector.mapFun.zero + theorem WittVector.mapFun.zsmul + def WittVector.mapFun + theorem WittVector.map_coeff + theorem WittVector.map_injective + theorem WittVector.map_surjective + theorem WittVector.matrix_vecEmpty_coeff Modified Mathlib/RingTheory/WittVector/Defs.lean 2023-06-08 04:34:28 7c00d96 feat: port Analysis.NormedSpace.ENorm (#3469) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/NormedSpace/ENorm.lean + theorem ENorm.coeFn_injective + theorem ENorm.coe_inj + theorem ENorm.coe_max + def ENorm.emetricSpace + theorem ENorm.eq_zero_iff + theorem ENorm.ext + theorem ENorm.ext_iff + def ENorm.finiteSubspace + theorem ENorm.finite_dist_eq + theorem ENorm.finite_edist_eq + theorem ENorm.finite_norm_eq + theorem ENorm.map_add_le + theorem ENorm.map_neg + theorem ENorm.map_smul + theorem ENorm.map_sub_le + theorem ENorm.map_sub_rev + theorem ENorm.map_zero + theorem ENorm.max_map + theorem ENorm.top_map + structure ENorm 2023-06-08 04:21:51 76deb42 feat: port Topology.ContinuousFunction.Units (#4818) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Topology/ContinuousFunction/Units.lean + theorem ContinuousMap.continuous_isUnit_unit + theorem ContinuousMap.isUnit_iff_forall_isUnit + theorem ContinuousMap.isUnit_iff_forall_ne_zero + theorem ContinuousMap.spectrum_eq_range + def ContinuousMap.unitsLift + theorem ContinuousMap.unitsLift_apply_inv_apply + theorem ContinuousMap.unitsLift_symm_apply_apply_inv' 2023-06-08 04:21:50 3d02c7d feat: port Topology.Category.Compactum (#3872) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Topology/Category/Compactum.lean + def Compactum.adj + theorem Compactum.cl_eq_closure + theorem Compactum.continuous_of_hom + def Compactum.forget + def Compactum.free + def Compactum.homOfContinuous + def Compactum.incl + theorem Compactum.isClosed_cl + theorem Compactum.isClosed_iff + def Compactum.join + theorem Compactum.join_distrib + theorem Compactum.le_nhds_of_str_eq + theorem Compactum.lim_eq_str + def Compactum.str + theorem Compactum.str_eq_of_le_nhds + theorem Compactum.str_hom_commute + theorem Compactum.str_incl + def Compactum + theorem compactumToCompHaus.essSurj + theorem compactumToCompHaus.faithful + def compactumToCompHaus.full + def compactumToCompHaus.isoOfTopologicalSpace + def compactumToCompHaus + def compactumToCompHausCompForget 2023-06-08 03:38:52 d217949 feat: port MeasureTheory.Covering.BesicovitchVectorSpace (#4832) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/MeasureTheory/Covering/BesicovitchVectorSpace.lean + def Besicovitch.SatelliteConfig.centerAndRescale + theorem Besicovitch.SatelliteConfig.centerAndRescale_center + theorem Besicovitch.SatelliteConfig.centerAndRescale_radius + theorem Besicovitch.SatelliteConfig.exists_normalized + theorem Besicovitch.SatelliteConfig.exists_normalized_aux1 + theorem Besicovitch.SatelliteConfig.exists_normalized_aux2 + theorem Besicovitch.SatelliteConfig.exists_normalized_aux3 + theorem Besicovitch.card_le_multiplicity + theorem Besicovitch.card_le_multiplicity_of_δ + theorem Besicovitch.card_le_of_separated + theorem Besicovitch.exists_goodδ + def Besicovitch.goodδ + theorem Besicovitch.goodδ_lt_one + def Besicovitch.goodτ + theorem Besicovitch.isEmpty_satelliteConfig_multiplicity + theorem Besicovitch.le_multiplicity_of_δ_of_fin + def Besicovitch.multiplicity + theorem Besicovitch.multiplicity_le + theorem Besicovitch.one_lt_goodτ 2023-06-08 03:38:51 6101723 feat: port Topology.Algebra.Module.CharacterSpace (#4819) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Topology/Algebra/Module/CharacterSpace.lean + theorem WeakDual.CharacterSpace.apply_mem_spectrum + theorem WeakDual.CharacterSpace.coe_toClm + theorem WeakDual.CharacterSpace.coe_toNonUnitalAlgHom + theorem WeakDual.CharacterSpace.eq_set_map_one_map_mul + theorem WeakDual.CharacterSpace.ext + theorem WeakDual.CharacterSpace.ext_ker + def WeakDual.CharacterSpace.toAlgHom + def WeakDual.CharacterSpace.toClm + def WeakDual.CharacterSpace.toNonUnitalAlgHom + theorem WeakDual.CharacterSpace.union_zero + theorem WeakDual.CharacterSpace.union_zero_isClosed + def WeakDual.characterSpace + def WeakDual.gelfandTransform 2023-06-08 03:38:50 1507c18 feat: golf using gcongr throughout the library (#4784) Following on from #4702, another hundred sample uses of the `gcongr` tactic. ESTIMATED CHANGES Modified Mathlib/Algebra/Order/SMul.lean +/- theorem smul_le_smul_of_nonneg +/- theorem smul_lt_smul_of_pos Modified Mathlib/Analysis/Analytic/Basic.lean Modified Mathlib/Analysis/Calculus/FDerivMeasurable.lean Modified Mathlib/Analysis/Calculus/FDerivSymmetric.lean Modified Mathlib/Analysis/Calculus/Inverse.lean Modified Mathlib/Analysis/Calculus/Taylor.lean Modified Mathlib/Analysis/Calculus/UniformLimitsDeriv.lean Modified Mathlib/Analysis/Convex/Function.lean Modified Mathlib/Analysis/Convex/Segment.lean Modified Mathlib/Analysis/Convex/SpecificFunctions/Basic.lean Modified Mathlib/Analysis/Convex/Star.lean Modified Mathlib/Analysis/Convex/Uniform.lean Modified Mathlib/Analysis/InnerProductSpace/Projection.lean Modified Mathlib/Analysis/LocallyConvex/Polar.lean Modified Mathlib/Analysis/NormedSpace/FiniteDimension.lean Modified Mathlib/Analysis/NormedSpace/Multilinear.lean Modified Mathlib/Analysis/NormedSpace/OperatorNorm.lean Modified Mathlib/Analysis/SpecialFunctions/Bernstein.lean + def Mathlib.Meta.Positivity.evalBernstein Modified Mathlib/Analysis/SpecialFunctions/Log/Deriv.lean Modified Mathlib/MeasureTheory/Integral/Lebesgue.lean Modified Mathlib/MeasureTheory/Integral/SetToL1.lean Modified Mathlib/MeasureTheory/Measure/Doubling.lean Modified Mathlib/NumberTheory/Liouville/Basic.lean Modified Mathlib/NumberTheory/Padics/Hensel.lean Modified Mathlib/Topology/ContinuousFunction/Bounded.lean Modified Mathlib/Topology/MetricSpace/GromovHausdorffRealized.lean 2023-06-08 03:27:53 2bb9fc3 feat: port CategoryTheory.Monoidal.Types.Coyoneda (#4806) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Monoidal/Types/Coyoneda.lean + def CategoryTheory.coyonedaTensorUnit 2023-06-08 03:16:42 4a57554 feat: port Algebra.Lie.Quotient (#4822) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Lie/Quotient.lean + def LieSubmodule.Quotient.actionAsEndoMap + theorem LieSubmodule.Quotient.is_quotient_mk + theorem LieSubmodule.Quotient.lieModuleHom_ext + def LieSubmodule.Quotient.lieSubmoduleInvariant + theorem LieSubmodule.Quotient.map_mk'_eq_bot_le + def LieSubmodule.Quotient.mk' + theorem LieSubmodule.Quotient.mk'_ker + theorem LieSubmodule.Quotient.mk_bracket + theorem LieSubmodule.Quotient.mk_eq_zero' + theorem LieSubmodule.Quotient.mk_eq_zero 2023-06-08 01:53:28 af771c7 chore: have `lake exe cache get` retrieve large files first (#4834) This should make better use of parallelism, by initiating the requests for the largest files first. ESTIMATED CHANGES Modified Cache/Requests.lean 2023-06-08 01:11:55 6b3e91e fix: which object is shown in commutative square (#4833) ESTIMATED CHANGES Modified Mathlib/Tactic/Widget/CommDiag.lean 2023-06-08 00:43:11 86ade6e chore: cleanup Discrete porting notes (#4780) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Adjunction/Comma.lean Modified Mathlib/CategoryTheory/Category/Grpd.lean Modified Mathlib/CategoryTheory/DiscreteCategory.lean +/- def CategoryTheory.Discrete.natIso +/- def CategoryTheory.Discrete.natTrans Modified Mathlib/CategoryTheory/GradedObject.lean Modified Mathlib/CategoryTheory/Limits/Constructions/Over/Products.lean Modified Mathlib/CategoryTheory/Limits/Shapes/BinaryProducts.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Biproducts.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Products.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Terminal.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Types.lean Modified Mathlib/CategoryTheory/Limits/Shapes/ZeroMorphisms.lean Modified Mathlib/CategoryTheory/Monoidal/Free/Coherence.lean Modified Mathlib/CategoryTheory/Monoidal/OfChosenFiniteProducts/Basic.lean Modified Mathlib/CategoryTheory/Preadditive/Projective.lean Modified Mathlib/CategoryTheory/StructuredArrow.lean 2023-06-07 23:57:40 28f3fa3 fix: library_search doesn't get tired (#4828) I had badly misunderstood how to keep track of remaining heartbeats in a given computation, and library_search was using a thread-local heartbeat count, rather than a declaration-local heartbeat count, so would "get tired" after working in the same file for a while. ESTIMATED CHANGES Modified Mathlib/Data/ListM/Heartbeats.lean Modified Mathlib/Lean/CoreM.lean + def getInitHeartbeats +/- def getMaxHeartbeats +/- def getRemainingHeartbeats +/- def heartbeatsPercent +/- def reportOutOfHeartbeats Modified Mathlib/Tactic/LibrarySearch.lean 2023-06-07 18:35:49 f24c97e chore: forward-port leanprover-community/mathlib#15681 (file 1 of 3) (#3874) just changing explicitness of one variable https://github.com/leanprover-community/mathlib/pull/15681 ESTIMATED CHANGES Modified Mathlib/Topology/Homeomorph.lean 2023-06-07 18:05:26 b9c988d feat: port MeasureTheory.Integral.FundThmCalculus (#4773) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/MeasureTheory/Integral/FundThmCalculus.lean + theorem Continuous.deriv_integral + theorem Continuous.integral_hasStrictDerivAt + theorem intervalIntegral.FTCFilter.finite_at_inner + theorem intervalIntegral.derivWithin_integral_left + theorem intervalIntegral.derivWithin_integral_of_tendsto_ae_left + theorem intervalIntegral.derivWithin_integral_of_tendsto_ae_right + theorem intervalIntegral.derivWithin_integral_right + theorem intervalIntegral.deriv_integral_left + theorem intervalIntegral.deriv_integral_of_tendsto_ae_left + theorem intervalIntegral.deriv_integral_of_tendsto_ae_right + theorem intervalIntegral.deriv_integral_right + theorem intervalIntegral.differentiableOn_integral_of_continuous + theorem intervalIntegral.fderivWithin_integral_of_tendsto_ae + theorem intervalIntegral.fderiv_integral + theorem intervalIntegral.fderiv_integral_of_tendsto_ae + theorem intervalIntegral.integrableOn_deriv_of_nonneg + theorem intervalIntegral.integrableOn_deriv_right_of_nonneg + theorem intervalIntegral.integral_comp_mul_deriv''' + theorem intervalIntegral.integral_comp_mul_deriv'' + theorem intervalIntegral.integral_comp_mul_deriv' + theorem intervalIntegral.integral_comp_mul_deriv + theorem intervalIntegral.integral_comp_smul_deriv''' + theorem intervalIntegral.integral_comp_smul_deriv'' + theorem intervalIntegral.integral_comp_smul_deriv' + theorem intervalIntegral.integral_comp_smul_deriv + theorem intervalIntegral.integral_deriv_comp_mul_deriv' + theorem intervalIntegral.integral_deriv_comp_mul_deriv + theorem intervalIntegral.integral_deriv_comp_smul_deriv' + theorem intervalIntegral.integral_deriv_comp_smul_deriv + theorem intervalIntegral.integral_deriv_eq_sub' + theorem intervalIntegral.integral_deriv_eq_sub + theorem intervalIntegral.integral_deriv_mul_eq_sub + theorem intervalIntegral.integral_eq_sub_of_hasDerivAt + theorem intervalIntegral.integral_eq_sub_of_hasDerivAt_of_le + theorem intervalIntegral.integral_eq_sub_of_hasDerivAt_of_tendsto + theorem intervalIntegral.integral_eq_sub_of_hasDeriv_right + theorem intervalIntegral.integral_eq_sub_of_hasDeriv_right_of_le + theorem intervalIntegral.integral_eq_sub_of_hasDeriv_right_of_le_real + theorem intervalIntegral.integral_hasDerivAt_left + theorem intervalIntegral.integral_hasDerivAt_of_tendsto_ae_left + theorem intervalIntegral.integral_hasDerivAt_of_tendsto_ae_right + theorem intervalIntegral.integral_hasDerivAt_right + theorem intervalIntegral.integral_hasDerivWithinAt_left + theorem intervalIntegral.integral_hasDerivWithinAt_of_tendsto_ae_left + theorem intervalIntegral.integral_hasDerivWithinAt_of_tendsto_ae_right + theorem intervalIntegral.integral_hasDerivWithinAt_right + theorem intervalIntegral.integral_hasFDerivAt + theorem intervalIntegral.integral_hasFDerivAt_of_tendsto_ae + theorem intervalIntegral.integral_hasFDerivWithinAt + theorem intervalIntegral.integral_hasFDerivWithinAt_of_tendsto_ae + theorem intervalIntegral.integral_hasStrictDerivAt_left + theorem intervalIntegral.integral_hasStrictDerivAt_of_tendsto_ae_left + theorem intervalIntegral.integral_hasStrictDerivAt_of_tendsto_ae_right + theorem intervalIntegral.integral_hasStrictDerivAt_right + theorem intervalIntegral.integral_hasStrictFDerivAt + theorem intervalIntegral.integral_hasStrictFDerivAt_of_tendsto_ae + theorem intervalIntegral.integral_le_sub_of_hasDeriv_right_of_le + theorem intervalIntegral.integral_mul_deriv_eq_deriv_mul + theorem intervalIntegral.integral_sub_integral_sub_linear_isLittleO_of_tendsto_ae + theorem intervalIntegral.integral_sub_integral_sub_linear_isLittleO_of_tendsto_ae_left + theorem intervalIntegral.integral_sub_integral_sub_linear_isLittleO_of_tendsto_ae_right + theorem intervalIntegral.integral_sub_linear_isLittleO_of_tendsto_ae + theorem intervalIntegral.intervalIntegrable_deriv_of_nonneg + theorem intervalIntegral.measure_integral_sub_integral_sub_linear_isLittleO_of_tendsto_ae + theorem intervalIntegral.measure_integral_sub_integral_sub_linear_isLittleO_of_tendsto_ae_left + theorem intervalIntegral.measure_integral_sub_integral_sub_linear_isLittleO_of_tendsto_ae_right + theorem intervalIntegral.measure_integral_sub_linear_isLittleO_of_tendsto_ae' + theorem intervalIntegral.measure_integral_sub_linear_isLittleO_of_tendsto_ae + theorem intervalIntegral.measure_integral_sub_linear_isLittleO_of_tendsto_ae_of_ge' + theorem intervalIntegral.measure_integral_sub_linear_isLittleO_of_tendsto_ae_of_ge + theorem intervalIntegral.measure_integral_sub_linear_isLittleO_of_tendsto_ae_of_le' + theorem intervalIntegral.measure_integral_sub_linear_isLittleO_of_tendsto_ae_of_le + theorem intervalIntegral.sub_le_integral_of_hasDeriv_right_of_le + theorem intervalIntegral.sub_le_integral_of_hasDeriv_right_of_le_Ico 2023-06-07 16:52:49 4d53e9f feat: port Algebra.Algebra.Spectrum (#4778) - [x] depends on: #4804 ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Algebra/Spectrum.lean + theorem AlgHom.apply_mem_spectrum + theorem AlgHom.mem_resolventSet_apply + theorem AlgHom.spectrum_apply_subset + def resolventSet + theorem spectrum.add_mem_add_iff + theorem spectrum.add_mem_iff + theorem spectrum.add_singleton_eq + theorem spectrum.inv_mem_iff + theorem spectrum.inv_mem_resolventSet + theorem spectrum.isUnit_resolvent + theorem spectrum.mem_iff + theorem spectrum.mem_resolventSet_iff + theorem spectrum.mem_resolventSet_of_left_right_inverse + theorem spectrum.ne_zero_of_mem_of_unit + theorem spectrum.neg_eq + theorem spectrum.nonzero_mul_eq_swap_mul + theorem spectrum.not_mem_iff + theorem spectrum.of_subsingleton + theorem spectrum.one_eq + theorem spectrum.preimage_units_mul_eq_swap_mul + theorem spectrum.resolventSet_of_subsingleton + theorem spectrum.resolvent_eq + theorem spectrum.scalar_eq + theorem spectrum.singleton_add_eq + theorem spectrum.singleton_sub_eq + theorem spectrum.smul_eq_smul + theorem spectrum.smul_mem_smul_iff + theorem spectrum.star_mem_resolventSet_iff + theorem spectrum.sub_singleton_eq + theorem spectrum.subset_starSubalgebra + theorem spectrum.subset_subalgebra + theorem spectrum.unit_mem_mul_iff_mem_swap_mul + theorem spectrum.unit_smul_eq_smul + theorem spectrum.units_smul_resolvent + theorem spectrum.units_smul_resolvent_self + theorem spectrum.vadd_eq + theorem spectrum.zero_eq + theorem spectrum.zero_mem_iff + theorem spectrum.zero_mem_resolventSet_of_unit + theorem spectrum.zero_not_mem_iff + def spectrum 2023-06-07 16:52:48 4eebfa2 feat: port Algebra.Order.Interval (#4464) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Order/Interval.lean + theorem Interval.bot_div + theorem Interval.bot_mul + theorem Interval.bot_ne_one + theorem Interval.bot_pow + theorem Interval.bot_sub + theorem Interval.coe_one + theorem Interval.div_bot + theorem Interval.inv_bot + def Interval.length + theorem Interval.length_add_le + theorem Interval.length_neg + theorem Interval.length_nonneg + theorem Interval.length_pure + theorem Interval.length_sub_le + theorem Interval.length_sum_le + theorem Interval.length_zero + theorem Interval.mul_bot + theorem Interval.one_mem_one + theorem Interval.one_ne_bot + theorem Interval.pure_one + theorem Interval.sub_bot + def Mathlib.Meta.Positivity.evalIntervalLength + def Mathlib.Meta.Positivity.evalNonemptyIntervalLength + theorem NonemptyInterval.coe_div_interval + theorem NonemptyInterval.coe_inv_interval + theorem NonemptyInterval.coe_mul_interval + theorem NonemptyInterval.coe_one + theorem NonemptyInterval.coe_one_interval + theorem NonemptyInterval.coe_pow_interval + theorem NonemptyInterval.coe_sub_interval + theorem NonemptyInterval.div_mem_div + theorem NonemptyInterval.fst_div + theorem NonemptyInterval.fst_inv + theorem NonemptyInterval.fst_mul + theorem NonemptyInterval.fst_one + theorem NonemptyInterval.fst_pow + theorem NonemptyInterval.fst_sub + theorem NonemptyInterval.inv_mem_inv + theorem NonemptyInterval.inv_pure + def NonemptyInterval.length + theorem NonemptyInterval.length_add + theorem NonemptyInterval.length_neg + theorem NonemptyInterval.length_nonneg + theorem NonemptyInterval.length_pure + theorem NonemptyInterval.length_sub + theorem NonemptyInterval.length_sum + theorem NonemptyInterval.length_zero + theorem NonemptyInterval.one_mem_one + theorem NonemptyInterval.pure_div_pure + theorem NonemptyInterval.pure_mul_pure + theorem NonemptyInterval.pure_one + theorem NonemptyInterval.pure_pow + theorem NonemptyInterval.pure_sub_pure + theorem NonemptyInterval.snd_div + theorem NonemptyInterval.snd_inv + theorem NonemptyInterval.snd_mul + theorem NonemptyInterval.snd_one + theorem NonemptyInterval.snd_pow + theorem NonemptyInterval.snd_sub + theorem NonemptyInterval.sub_mem_sub + theorem NonemptyInterval.toProd_mul + theorem NonemptyInterval.toProd_one + theorem NonemptyInterval.toProd_pow 2023-06-07 16:01:21 d2f2b0e feat: port Algebra.Category.ModuleCat.Algebra (#4801) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Category/ModuleCat/Algebra.lean + theorem ModuleCat.isScalarTower_of_algebra_moduleCat + def ModuleCat.moduleOfAlgebraModule Modified Mathlib/Algebra/Category/ModuleCat/Basic.lean Modified Mathlib/Algebra/Module/LinearMap.lean 2023-06-07 15:16:44 1ae835c feat: port `noncomm_ring` tactic (#4804) This aims to be a faithful implementation of mathlib3's `noncomm_ring` tactic. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Lie/SkewAdjoint.lean Modified Mathlib/Analysis/NormedSpace/MStructure.lean Modified Mathlib/RingTheory/OreLocalization/Basic.lean Modified Mathlib/Tactic.lean Added Mathlib/Tactic/NoncommRing.lean + theorem Mathlib.Tactic.NoncommRing.mul_nat_lit_eq_nsmul + theorem Mathlib.Tactic.NoncommRing.nat_lit_mul_eq_nsmul Added test/NoncommRing.lean 2023-06-07 15:05:20 52f1652 feat: port RingTheory.Polynomial.Cyclotomic.Basic (#4805) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/RingTheory/Polynomial/Cyclotomic/Basic.lean + theorem Polynomial.X_pow_sub_one_dvd_prod_cyclotomic + theorem Polynomial.X_pow_sub_one_eq_prod + theorem Polynomial.X_pow_sub_one_mul_cyclotomic_dvd_X_pow_sub_one_of_dvd + theorem Polynomial.X_pow_sub_one_mul_prod_cyclotomic_eq_X_pow_sub_one_of_dvd + theorem Polynomial.X_pow_sub_one_splits + theorem Polynomial.coprime_of_root_cyclotomic + theorem Polynomial.cyclotomic'.monic + def Polynomial.cyclotomic' + theorem Polynomial.cyclotomic'_eq_X_pow_sub_one_div + theorem Polynomial.cyclotomic'_ne_zero + theorem Polynomial.cyclotomic'_one + theorem Polynomial.cyclotomic'_splits + theorem Polynomial.cyclotomic'_two + theorem Polynomial.cyclotomic'_zero + theorem Polynomial.cyclotomic.dvd_X_pow_sub_one + theorem Polynomial.cyclotomic.eval_apply + theorem Polynomial.cyclotomic.isPrimitive + theorem Polynomial.cyclotomic.monic + def Polynomial.cyclotomic + theorem Polynomial.cyclotomic_coeff_zero + theorem Polynomial.cyclotomic_dvd_geom_sum_of_dvd + theorem Polynomial.cyclotomic_eq_X_pow_sub_one_div + theorem Polynomial.cyclotomic_eq_prod_X_pow_sub_one_pow_moebius + theorem Polynomial.cyclotomic_eq_prod_X_sub_primitiveRoots + theorem Polynomial.cyclotomic_ne_zero + theorem Polynomial.cyclotomic_one + theorem Polynomial.cyclotomic_prime + theorem Polynomial.cyclotomic_prime_mul_X_sub_one + theorem Polynomial.cyclotomic_prime_pow_eq_geom_sum + theorem Polynomial.cyclotomic_prime_pow_mul_X_pow_sub_one + theorem Polynomial.cyclotomic_three + theorem Polynomial.cyclotomic_two + theorem Polynomial.cyclotomic_zero + theorem Polynomial.degree_cyclotomic' + theorem Polynomial.degree_cyclotomic + theorem Polynomial.degree_cyclotomic_pos + theorem Polynomial.eq_cyclotomic_iff + theorem Polynomial.int_coeff_of_cyclotomic' + theorem Polynomial.int_cyclotomic_rw + theorem Polynomial.int_cyclotomic_spec + theorem Polynomial.int_cyclotomic_unique + theorem Polynomial.map_cyclotomic + theorem Polynomial.map_cyclotomic_int + theorem Polynomial.natDegree_cyclotomic' + theorem Polynomial.natDegree_cyclotomic + theorem Polynomial.orderOf_root_cyclotomic_dvd + theorem Polynomial.prod_cyclotomic'_eq_X_pow_sub_one + theorem Polynomial.prod_cyclotomic_eq_X_pow_sub_one + theorem Polynomial.prod_cyclotomic_eq_geom_sum + theorem Polynomial.roots_of_cyclotomic + theorem Polynomial.unique_int_coeff_of_cycl 2023-06-07 15:05:18 2ae7578 fix: include the archive in the port status output (#4800) ESTIMATED CHANGES Modified scripts/make_port_status.py 2023-06-07 15:05:17 e715576 feat: port MeasureTheory.Covering.Besicovitch (#4794) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/MeasureTheory/Covering/Besicovitch.lean + structure Besicovitch.BallPackage + theorem Besicovitch.SatelliteConfig.hlast' + theorem Besicovitch.SatelliteConfig.inter' + structure Besicovitch.SatelliteConfig + def Besicovitch.TauPackage.R + theorem Besicovitch.TauPackage.color_lt + def Besicovitch.TauPackage.iUnionUpTo + def Besicovitch.TauPackage.lastStep + theorem Besicovitch.TauPackage.lastStep_nonempty + theorem Besicovitch.TauPackage.mem_iUnionUpTo_lastStep + theorem Besicovitch.TauPackage.monotone_iUnionUpTo + structure Besicovitch.TauPackage + theorem Besicovitch.ae_tendsto_measure_inter_div + theorem Besicovitch.ae_tendsto_measure_inter_div_of_measurableSet + theorem Besicovitch.ae_tendsto_rnDeriv + theorem Besicovitch.exist_disjoint_covering_families + theorem Besicovitch.exist_finset_disjoint_balls_large_measure + theorem Besicovitch.exists_closedBall_covering_tsum_measure_le + theorem Besicovitch.exists_disjoint_closedBall_covering_ae + theorem Besicovitch.exists_disjoint_closedBall_covering_ae_aux + theorem Besicovitch.exists_disjoint_closedBall_covering_ae_of_finiteMeasure_aux + theorem Besicovitch.tendsto_filterAt + def Besicovitch.unitBallPackage 2023-06-07 15:05:16 050bf14 feat: port GroupTheory.SchurZassenhaus (#4752) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/GroupTheory/SchurZassenhaus.lean + def Subgroup.QuotientDiff + theorem Subgroup.SchurZassenhausInduction.step7 + theorem Subgroup.eq_one_of_smul_eq_one + theorem Subgroup.exists_left_complement'_of_coprime + theorem Subgroup.exists_left_complement'_of_coprime_of_fintype + theorem Subgroup.exists_right_complement'_of_coprime + theorem Subgroup.exists_right_complement'_of_coprime_of_fintype + theorem Subgroup.exists_smul_eq + theorem Subgroup.isComplement'_stabilizer_of_coprime + theorem Subgroup.smul_diff' + theorem Subgroup.smul_diff_smul' 2023-06-07 13:56:19 2d45c79 feat: port MeasureTheory.Function.L2Space (#4737) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/GroupPower/Order.lean Modified Mathlib/Analysis/InnerProductSpace/Adjoint.lean Modified Mathlib/Analysis/InnerProductSpace/Basic.lean Added Mathlib/MeasureTheory/Function/L2Space.lean + theorem MeasureTheory.BoundedContinuousFunction.inner_toLp + theorem MeasureTheory.ContinuousMap.inner_toLp + theorem MeasureTheory.Integrable.const_inner + theorem MeasureTheory.Integrable.inner_const + theorem MeasureTheory.L2.inner_def + theorem MeasureTheory.L2.inner_indicatorConstLp_eq_inner_set_integral + theorem MeasureTheory.L2.inner_indicatorConstLp_eq_set_integral_inner + theorem MeasureTheory.L2.inner_indicatorConstLp_one + theorem MeasureTheory.L2.integrable_inner + theorem MeasureTheory.L2.integral_inner_eq_sq_snorm + theorem MeasureTheory.L2.mem_L1_inner + theorem MeasureTheory.L2.snorm_inner_lt_top + theorem MeasureTheory.L2.snorm_rpow_two_norm_lt_top + theorem MeasureTheory.Memℒp.const_inner + theorem MeasureTheory.Memℒp.inner_const + theorem MeasureTheory.Memℒp.integrable_sq + theorem MeasureTheory.memℒp_two_iff_integrable_sq + theorem MeasureTheory.memℒp_two_iff_integrable_sq_norm + theorem integral_eq_zero_of_forall_integral_inner_eq_zero + theorem integral_inner 2023-06-07 13:39:09 e7eeaa6 feat: port RingTheory.RootsOfUnity.Complex (#4798) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/RingTheory/RootsOfUnity/Complex.lean + theorem Complex.card_primitiveRoots + theorem Complex.card_rootsOfUnity + theorem Complex.isPrimitiveRoot_exp + theorem Complex.isPrimitiveRoot_exp_of_coprime + theorem Complex.isPrimitiveRoot_iff + theorem IsPrimitiveRoot.arg + theorem IsPrimitiveRoot.arg_eq_pi_iff + theorem IsPrimitiveRoot.arg_eq_zero_iff + theorem IsPrimitiveRoot.arg_ext + theorem IsPrimitiveRoot.nnnorm_eq_one + theorem IsPrimitiveRoot.norm'_eq_one 2023-06-07 12:54:50 c4c280d feat: port MeasureTheory.Covering.LiminfLimsup (#4797) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/MeasureTheory/Covering/LiminfLimsup.lean + theorem blimsup_cthickening_ae_eq_blimsup_thickening + theorem blimsup_cthickening_ae_le_of_eventually_mul_le + theorem blimsup_cthickening_ae_le_of_eventually_mul_le_aux + theorem blimsup_cthickening_mul_ae_eq + theorem blimsup_thickening_mul_ae_eq + theorem blimsup_thickening_mul_ae_eq_aux 2023-06-07 12:41:05 549bb59 feat: port RingTheory.ClassGroup (#4732) Some proofs are really slow and need a lot of heartbeats to complete (up to 600000). ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/RingTheory/ClassGroup.lean + theorem ClassGroup.equiv_mk0 + theorem ClassGroup.equiv_mk + theorem ClassGroup.induction + theorem ClassGroup.mk0_eq_mk0_iff + theorem ClassGroup.mk0_eq_mk0_iff_exists_fraction_ring + theorem ClassGroup.mk0_eq_one_iff + theorem ClassGroup.mk0_surjective + theorem ClassGroup.mk_canonicalEquiv + theorem ClassGroup.mk_eq_mk + theorem ClassGroup.mk_eq_mk_of_coe_ideal + theorem ClassGroup.mk_eq_one_iff + theorem ClassGroup.mk_eq_one_of_coe_ideal + theorem ClassGroup.mk_mk0 + def ClassGroup + theorem FractionalIdeal.canonicalEquiv_mk0 + theorem FractionalIdeal.coe_mk0 + theorem FractionalIdeal.map_canonicalEquiv_mk0 + theorem card_classGroup_eq_one + theorem card_classGroup_eq_one_iff + theorem coe_toPrincipalIdeal + theorem mem_principal_ideals_iff + theorem toPrincipalIdeal_eq_iff 2023-06-07 12:41:04 55822ef feat: port RingTheory.RootsOfUnity.Basic (#4677) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/RingTheory/RootsOfUnity/Basic.lean + theorem IsPrimitiveRoot.autToPow_spec + theorem IsPrimitiveRoot.card_nthRootsFinset + theorem IsPrimitiveRoot.card_primitiveRoots + theorem IsPrimitiveRoot.card_rootsOfUnity' + theorem IsPrimitiveRoot.card_rootsOfUnity + theorem IsPrimitiveRoot.coe_autToPow_apply + theorem IsPrimitiveRoot.coe_submonoidClass_iff + theorem IsPrimitiveRoot.coe_units_iff + theorem IsPrimitiveRoot.disjoint + theorem IsPrimitiveRoot.eq_neg_one_of_two_right + theorem IsPrimitiveRoot.eq_orderOf + theorem IsPrimitiveRoot.eq_pow_of_mem_rootsOfUnity + theorem IsPrimitiveRoot.eq_pow_of_pow_eq_one + theorem IsPrimitiveRoot.geom_sum_eq_zero + theorem IsPrimitiveRoot.iff_def + theorem IsPrimitiveRoot.inv + theorem IsPrimitiveRoot.inv_iff + theorem IsPrimitiveRoot.isPrimitiveRoot_iff' + theorem IsPrimitiveRoot.isPrimitiveRoot_iff + theorem IsPrimitiveRoot.isUnit + theorem IsPrimitiveRoot.map_iff_of_injective + theorem IsPrimitiveRoot.map_of_injective + theorem IsPrimitiveRoot.mk_of_lt + theorem IsPrimitiveRoot.ne_one + theorem IsPrimitiveRoot.ne_zero' + theorem IsPrimitiveRoot.neg_one + theorem IsPrimitiveRoot.nthRoots_nodup + theorem IsPrimitiveRoot.nthRoots_one_eq_biUnion_primitiveRoots' + theorem IsPrimitiveRoot.nthRoots_one_eq_biUnion_primitiveRoots + theorem IsPrimitiveRoot.of_map_of_injective + theorem IsPrimitiveRoot.of_subsingleton + theorem IsPrimitiveRoot.one + theorem IsPrimitiveRoot.one_right_iff + theorem IsPrimitiveRoot.pow + theorem IsPrimitiveRoot.pow_eq_one_iff_dvd + theorem IsPrimitiveRoot.pow_iff_coprime + theorem IsPrimitiveRoot.pow_inj + theorem IsPrimitiveRoot.pow_ne_one_of_pos_of_lt + theorem IsPrimitiveRoot.pow_of_coprime + theorem IsPrimitiveRoot.pow_of_dvd + theorem IsPrimitiveRoot.pow_of_prime + theorem IsPrimitiveRoot.pow_sub_one_eq + theorem IsPrimitiveRoot.primitiveRoots_one + def IsPrimitiveRoot.toRootsOfUnity + theorem IsPrimitiveRoot.unique + theorem IsPrimitiveRoot.zero + def IsPrimitiveRoot.zmodEquivZpowers + theorem IsPrimitiveRoot.zmodEquivZpowers_apply_coe_int + theorem IsPrimitiveRoot.zmodEquivZpowers_apply_coe_nat + theorem IsPrimitiveRoot.zmodEquivZpowers_symm_apply_pow' + theorem IsPrimitiveRoot.zmodEquivZpowers_symm_apply_pow + theorem IsPrimitiveRoot.zmodEquivZpowers_symm_apply_zpow' + theorem IsPrimitiveRoot.zmodEquivZpowers_symm_apply_zpow + theorem IsPrimitiveRoot.zpow_eq_one + theorem IsPrimitiveRoot.zpow_eq_one_iff_dvd + theorem IsPrimitiveRoot.zpow_of_gcd_eq_one + theorem IsPrimitiveRoot.zpowers_eq + structure IsPrimitiveRoot + theorem RingEquiv.restrictRootsOfUnity_coe_apply + theorem RingEquiv.restrictRootsOfUnity_symm + theorem card_rootsOfUnity + theorem isPrimitiveRoot_of_mem_primitiveRoots + theorem map_rootsOfUnity + theorem map_rootsOfUnity_eq_pow_self + theorem mem_primitiveRoots + theorem mem_rootsOfUnity' + theorem mem_rootsOfUnity + theorem mem_rootsOfUnity_iff_mem_nthRoots + theorem mem_rootsOfUnity_prime_pow_mul_iff' + theorem mem_rootsOfUnity_prime_pow_mul_iff + def primitiveRoots + theorem primitiveRoots_zero + def restrictRootsOfUnity + theorem restrictRootsOfUnity_coe_apply + theorem rootsOfUnity.coe_injective + theorem rootsOfUnity.coe_mkOfPowEq + theorem rootsOfUnity.coe_pow + def rootsOfUnity.mkOfPowEq + def rootsOfUnity + def rootsOfUnityEquivNthRoots + theorem rootsOfUnityEquivNthRoots_apply + theorem rootsOfUnityEquivNthRoots_symm_apply + theorem rootsOfUnity_le_of_dvd 2023-06-07 12:30:05 3d3a468 feat: port Analysis.Calculus.Monotone (#4792) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/Calculus/Monotone.lean + theorem Monotone.ae_differentiableAt + theorem Monotone.ae_hasDerivAt + theorem MonotoneOn.ae_differentiableWithinAt + theorem MonotoneOn.ae_differentiableWithinAt_of_mem + theorem StieltjesFunction.ae_hasDerivAt + theorem tendsto_apply_add_mul_sq_div_sub 2023-06-07 11:40:54 2b4e836 feat: port MeasureTheory.Covering.OneDim (#4790) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/MeasureTheory/Covering/OneDim.lean + theorem Real.Icc_mem_vitaliFamily_at_left + theorem Real.Icc_mem_vitaliFamily_at_right + theorem Real.tendsto_Icc_vitaliFamily_left + theorem Real.tendsto_Icc_vitaliFamily_right 2023-06-07 11:17:43 f5cf43d feat: port MeasureTheory.Covering.DensityTheorem (#4789) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/MeasureTheory/Covering/DensityTheorem.lean + theorem IsUnifLocDoublingMeasure.ae_tendsto_average + theorem IsUnifLocDoublingMeasure.ae_tendsto_average_norm_sub + theorem IsUnifLocDoublingMeasure.ae_tendsto_measure_inter_div + theorem IsUnifLocDoublingMeasure.closedBall_mem_vitaliFamily_of_dist_le_mul + theorem IsUnifLocDoublingMeasure.tendsto_closedBall_filterAt 2023-06-07 11:17:42 83a4c1c doc: fix `lake new` incantation in readme (#4724) ESTIMATED CHANGES Modified README.md 2023-06-07 10:11:23 468830c feat: port Algebra.Lie.Classical (#4788) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Invertible.lean Added Mathlib/Algebra/Lie/Classical.lean + def LieAlgebra.Orthogonal.JB + def LieAlgebra.Orthogonal.JD + def LieAlgebra.Orthogonal.PB + def LieAlgebra.Orthogonal.PD + def LieAlgebra.Orthogonal.Pso + def LieAlgebra.Orthogonal.S + def LieAlgebra.Orthogonal.indefiniteDiagonal + theorem LieAlgebra.Orthogonal.indefiniteDiagonal_assoc + theorem LieAlgebra.Orthogonal.indefiniteDiagonal_transform + def LieAlgebra.Orthogonal.invertiblePso + theorem LieAlgebra.Orthogonal.jb_transform + theorem LieAlgebra.Orthogonal.jd_transform + theorem LieAlgebra.Orthogonal.mem_so + theorem LieAlgebra.Orthogonal.pb_inv + theorem LieAlgebra.Orthogonal.pd_inv + theorem LieAlgebra.Orthogonal.pso_inv + theorem LieAlgebra.Orthogonal.s_as_blocks + def LieAlgebra.Orthogonal.so' + def LieAlgebra.Orthogonal.so + def LieAlgebra.Orthogonal.soIndefiniteEquiv + theorem LieAlgebra.Orthogonal.soIndefiniteEquiv_apply + def LieAlgebra.Orthogonal.typeB + def LieAlgebra.Orthogonal.typeBEquivSo' + def LieAlgebra.Orthogonal.typeD + def LieAlgebra.Orthogonal.typeDEquivSo' + def LieAlgebra.SpecialLinear.Eb + theorem LieAlgebra.SpecialLinear.eb_val + def LieAlgebra.SpecialLinear.sl + theorem LieAlgebra.SpecialLinear.sl_bracket + theorem LieAlgebra.SpecialLinear.sl_non_abelian + def LieAlgebra.Symplectic.sp + theorem LieAlgebra.matrix_trace_commutator_zero 2023-06-07 10:11:22 5dce215 feat: more substantial API for the left homology of short complexes (#4787) This PR continues the development of the API for the left homology of short complexes. ESTIMATED CHANGES Modified Mathlib/Algebra/Homology/ShortComplex/LeftHomology.lean + theorem CategoryTheory.ShortComplex.LeftHomologyData.ofEpiOfIsIsoOfMono'_f' + theorem CategoryTheory.ShortComplex.LeftHomologyData.τ₁_ofEpiOfIsIsoOfMono_f' + def CategoryTheory.ShortComplex.LeftHomologyMapData.ofEpiOfIsIsoOfMono + theorem CategoryTheory.ShortComplex.comp_liftCycles + theorem CategoryTheory.ShortComplex.cycles_ext + theorem CategoryTheory.ShortComplex.cycles_ext_iff + theorem CategoryTheory.ShortComplex.hasLeftHomology_of_epi_of_isIso_of_mono' + theorem CategoryTheory.ShortComplex.hasLeftHomology_of_epi_of_isIso_of_mono + theorem CategoryTheory.ShortComplex.hasLeftHomology_of_iso + theorem CategoryTheory.ShortComplex.leftHomology_ext + theorem CategoryTheory.ShortComplex.leftHomology_ext_iff + theorem CategoryTheory.ShortComplex.liftCycles_i 2023-06-07 08:52:16 d5e7df6 feat: port MeasureTheory.Integral.IntervalAverage (#4783) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/MeasureTheory/Integral/IntervalAverage.lean + theorem interval_average_eq + theorem interval_average_eq_div + theorem interval_average_symm 2023-06-07 08:52:15 08c0b9f feat: port Analysis.Calculus.ParametricIntervalIntegral (#4782) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/Calculus/ParametricIntervalIntegral.lean 2023-06-07 08:52:13 f06b52f feat: add commutative diagram widget (#3583) Adds a widget for displaying goals in the language of category theory as commutative diagrams. Examples are found in `test/CommDiag.lean`. The set of diagram shapes which can be visualized is extensible via the `@[expr_presenter]` attribute. The widget is triggered in a tactic proof using the `with_panel_widgets [GoalTypePanel]` tactic combinator. Support for globally enabling the widget in a given file is planned for another PR. Continued from #363, please see there for more discussion. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Tactic.lean Added Mathlib/Tactic/Widget/CommDiag.lean + def Lean.Expr.app7? + def Mathlib.Tactic.Widget.commSquareM? + def Mathlib.Tactic.Widget.commTriangleM? + def Mathlib.Tactic.Widget.commutativeSquarePresenter + def Mathlib.Tactic.Widget.commutativeTrianglePresenter + def Mathlib.Tactic.Widget.homComp? + def Mathlib.Tactic.Widget.homType? + def Mathlib.Tactic.Widget.mkCommDiag + def Mathlib.Tactic.Widget.subSquare + def Mathlib.Tactic.Widget.subTriangle Modified lake-manifest.json Modified lakefile.lean Added test/CommDiag.lean Added widget/src/penrose/README.md Added widget/src/penrose/commutative.dsl Added widget/src/penrose/commutative.sty Added widget/src/penrose/others.sub Added widget/src/penrose/square.sub Added widget/src/penrose/triangle.sub 2023-06-07 08:40:38 51cf597 feat: port MeasureTheory.Covering.Differentiation (#4779) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/MeasureTheory/Covering/Differentiation.lean + theorem VitaliFamily.ae_eventually_measure_pos + theorem VitaliFamily.ae_eventually_measure_zero_of_singular + theorem VitaliFamily.ae_tendsto_average + theorem VitaliFamily.ae_tendsto_average_norm_sub + theorem VitaliFamily.ae_tendsto_div + theorem VitaliFamily.ae_tendsto_limRatio + theorem VitaliFamily.ae_tendsto_limRatioMeas + theorem VitaliFamily.ae_tendsto_lintegral_div' + theorem VitaliFamily.ae_tendsto_lintegral_div + theorem VitaliFamily.ae_tendsto_lintegral_nnnorm_sub_div' + theorem VitaliFamily.ae_tendsto_lintegral_nnnorm_sub_div + theorem VitaliFamily.ae_tendsto_measure_inter_div + theorem VitaliFamily.ae_tendsto_measure_inter_div_of_measurableSet + theorem VitaliFamily.ae_tendsto_rnDeriv + theorem VitaliFamily.ae_tendsto_rnDeriv_of_absolutelyContinuous + theorem VitaliFamily.aemeasurable_limRatio + theorem VitaliFamily.eventually_measure_lt_top + theorem VitaliFamily.exists_measurable_supersets_limRatio + theorem VitaliFamily.le_mul_withDensity + theorem VitaliFamily.limRatioMeas_measurable + theorem VitaliFamily.measure_le_mul_of_subset_limRatioMeas_lt + theorem VitaliFamily.measure_le_of_frequently_le + theorem VitaliFamily.measure_limRatioMeas_top + theorem VitaliFamily.measure_limRatioMeas_zero + theorem VitaliFamily.mul_measure_le_of_subset_lt_limRatioMeas + theorem VitaliFamily.null_of_frequently_le_of_frequently_ge + theorem VitaliFamily.withDensity_le_mul + theorem VitaliFamily.withDensity_limRatioMeas_eq 2023-06-07 07:14:22 21511d6 feat: port MeasureTheory.Decomposition.RadonNikodym (#4781) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/MeasureTheory/Decomposition/RadonNikodym.lean + theorem MeasureTheory.Measure.absolutelyContinuous_iff_withDensity_rnDeriv_eq + theorem MeasureTheory.Measure.withDensity_rnDeriv_eq + theorem MeasureTheory.Measure.withDensity_rnDeriv_toReal_eq + theorem MeasureTheory.SignedMeasure.absolutelyContinuous_iff_withDensityᵥ_rnDeriv_eq + theorem MeasureTheory.SignedMeasure.withDensityᵥ_rnDeriv_eq 2023-06-07 06:36:35 1a729bd feat: port CategoryTheory.Sites.Types (#4776) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Sites/Types.lean + def CategoryTheory.discretePresieve + def CategoryTheory.discreteSieve + theorem CategoryTheory.discreteSieve_mem + def CategoryTheory.eval + theorem CategoryTheory.eval_app + theorem CategoryTheory.eval_map + theorem CategoryTheory.eval_typesGlue + theorem CategoryTheory.generate_discretePresieve_mem + theorem CategoryTheory.isSheaf_yoneda' + theorem CategoryTheory.subcanonical_typesGrothendieckTopology + theorem CategoryTheory.typesGlue_eval + def CategoryTheory.typesGrothendieckTopology + theorem CategoryTheory.typesGrothendieckTopology_eq_canonical + def CategoryTheory.yoneda' + theorem CategoryTheory.yoneda'_comp 2023-06-07 06:36:34 556d5fc feat: port MeasureTheory.Measure.ProbabilityMeasure (#4765) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/MeasureTheory/Measure/ProbabilityMeasure.lean + theorem MeasureTheory.FiniteMeasure.average_eq_integral_normalize + def MeasureTheory.FiniteMeasure.normalize + theorem MeasureTheory.FiniteMeasure.normalize_eq_inv_mass_smul_of_nonzero + theorem MeasureTheory.FiniteMeasure.normalize_eq_of_nonzero + theorem MeasureTheory.FiniteMeasure.normalize_testAgainstNN + theorem MeasureTheory.FiniteMeasure.self_eq_mass_mul_normalize + theorem MeasureTheory.FiniteMeasure.self_eq_mass_smul_normalize + theorem MeasureTheory.FiniteMeasure.tendsto_normalize_iff_tendsto + theorem MeasureTheory.FiniteMeasure.tendsto_normalize_of_tendsto + theorem MeasureTheory.FiniteMeasure.tendsto_normalize_testAgainstNN_of_tendsto + theorem MeasureTheory.FiniteMeasure.tendsto_of_tendsto_normalize_testAgainstNN_of_tendsto_mass + theorem MeasureTheory.FiniteMeasure.tendsto_testAgainstNN_of_tendsto_normalize_testAgainstNN_of_tendsto_mass + theorem MeasureTheory.FiniteMeasure.testAgainstNN_eq_mass_mul + theorem MeasureTheory.FiniteMeasure.toMeasure_normalize_eq_of_nonzero + theorem MeasureTheory.ProbabilityMeasure.apply_mono + theorem MeasureTheory.ProbabilityMeasure.coeFn_comp_toFiniteMeasure_eq_coeFn + theorem MeasureTheory.ProbabilityMeasure.coeFn_univ + theorem MeasureTheory.ProbabilityMeasure.coeFn_univ_ne_zero + theorem MeasureTheory.ProbabilityMeasure.coe_toWeakDualBCNN + theorem MeasureTheory.ProbabilityMeasure.continuous_testAgainstNN_eval + theorem MeasureTheory.ProbabilityMeasure.ennreal_coeFn_eq_coeFn_toMeasure + theorem MeasureTheory.ProbabilityMeasure.eq_of_forall_apply_eq + theorem MeasureTheory.ProbabilityMeasure.eq_of_forall_toMeasure_apply_eq + theorem MeasureTheory.ProbabilityMeasure.mass_toFiniteMeasure + theorem MeasureTheory.ProbabilityMeasure.nonempty + theorem MeasureTheory.ProbabilityMeasure.tendsto_iff_forall_integral_tendsto + theorem MeasureTheory.ProbabilityMeasure.tendsto_iff_forall_lintegral_tendsto + theorem MeasureTheory.ProbabilityMeasure.tendsto_nhds_iff_toFiniteMeasure_tendsto_nhds + theorem MeasureTheory.ProbabilityMeasure.testAgainstNN_lipschitz + def MeasureTheory.ProbabilityMeasure.toFiniteMeasure + theorem MeasureTheory.ProbabilityMeasure.toFiniteMeasure_continuous + theorem MeasureTheory.ProbabilityMeasure.toFiniteMeasure_embedding + theorem MeasureTheory.ProbabilityMeasure.toFiniteMeasure_nonzero + def MeasureTheory.ProbabilityMeasure.toMeasure + theorem MeasureTheory.ProbabilityMeasure.toMeasure_comp_toFiniteMeasure_eq_toMeasure + theorem MeasureTheory.ProbabilityMeasure.toMeasure_injective + def MeasureTheory.ProbabilityMeasure.toWeakDualBCNN + theorem MeasureTheory.ProbabilityMeasure.toWeakDualBCNN_apply + theorem MeasureTheory.ProbabilityMeasure.toWeakDualBCNN_continuous + theorem MeasureTheory.ProbabilityMeasure.val_eq_to_measure + def MeasureTheory.ProbabilityMeasure + theorem ProbabilityMeasure.toFiniteMeasure_normalize_eq_self 2023-06-07 06:21:28 5e32f28 feat: port MeasureTheory.Integral.IntervalIntegral (#4710) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/MeasureTheory/Integral/IntervalIntegral.lean + theorem Antitone.intervalIntegrable + theorem AntitoneOn.intervalIntegrable + theorem Continuous.intervalIntegrable + theorem ContinuousLinearMap.intervalIntegral_apply + theorem ContinuousLinearMap.intervalIntegral_comp_comm + theorem ContinuousOn.intervalIntegrable + theorem ContinuousOn.intervalIntegrable_of_Icc + theorem Filter.Tendsto.eventually_intervalIntegrable + theorem Filter.Tendsto.eventually_intervalIntegrable_ae + theorem IntervalIntegrable.abs + theorem IntervalIntegrable.add + theorem IntervalIntegrable.comp_add_left + theorem IntervalIntegrable.comp_add_right + theorem IntervalIntegrable.comp_mul_left + theorem IntervalIntegrable.comp_mul_left_iff + theorem IntervalIntegrable.comp_mul_right + theorem IntervalIntegrable.comp_sub_left + theorem IntervalIntegrable.comp_sub_right + theorem IntervalIntegrable.const_mul + theorem IntervalIntegrable.continuousOn_mul + theorem IntervalIntegrable.def + theorem IntervalIntegrable.div_const + theorem IntervalIntegrable.iff_comp_neg + theorem IntervalIntegrable.intervalIntegrable_norm_iff + theorem IntervalIntegrable.mono + theorem IntervalIntegrable.mono_fun' + theorem IntervalIntegrable.mono_fun + theorem IntervalIntegrable.mono_measure + theorem IntervalIntegrable.mono_set' + theorem IntervalIntegrable.mono_set + theorem IntervalIntegrable.mono_set_ae + theorem IntervalIntegrable.mul_const + theorem IntervalIntegrable.mul_continuousOn + theorem IntervalIntegrable.neg + theorem IntervalIntegrable.norm + theorem IntervalIntegrable.refl + theorem IntervalIntegrable.smul + theorem IntervalIntegrable.sub + theorem IntervalIntegrable.sum + theorem IntervalIntegrable.trans + theorem IntervalIntegrable.trans_iterate + theorem IntervalIntegrable.trans_iterate_Ico + def IntervalIntegrable + theorem MeasureTheory.Integrable.hasSum_intervalIntegral + theorem MeasureTheory.Integrable.hasSum_intervalIntegral_comp_add_int + theorem MeasureTheory.Integrable.intervalIntegrable + theorem MeasureTheory.IntegrableOn.intervalIntegrable + theorem Monotone.intervalIntegrable + theorem MonotoneOn.intervalIntegrable + theorem intervalIntegrable_const + theorem intervalIntegrable_const_iff + theorem intervalIntegrable_iff' + theorem intervalIntegrable_iff + theorem intervalIntegrable_iff_integrable_Icc_of_le + theorem intervalIntegrable_iff_integrable_Ioc_of_le + theorem intervalIntegral.abs_integral_eq_abs_integral_uIoc + theorem intervalIntegral.abs_integral_le_integral_abs + theorem intervalIntegral.abs_integral_mono_interval + theorem intervalIntegral.abs_intervalIntegral_eq + theorem intervalIntegral.continuousAt_of_dominated_interval + theorem intervalIntegral.continuousOn_primitive + theorem intervalIntegral.continuousOn_primitive_Icc + theorem intervalIntegral.continuousOn_primitive_interval' + theorem intervalIntegral.continuousOn_primitive_interval + theorem intervalIntegral.continuousOn_primitive_interval_left + theorem intervalIntegral.continuousWithinAt_of_dominated_interval + theorem intervalIntegral.continuousWithinAt_primitive + theorem intervalIntegral.continuous_of_dominated_interval + theorem intervalIntegral.continuous_primitive + theorem intervalIntegral.hasSum_intervalIntegral_of_summable_norm + theorem intervalIntegral.integral_Iic_sub_Iic + theorem intervalIntegral.integral_add_adjacent_intervals + theorem intervalIntegral.integral_add_adjacent_intervals_cancel + theorem intervalIntegral.integral_cases + theorem intervalIntegral.integral_comp_add_div + theorem intervalIntegral.integral_comp_add_mul + theorem intervalIntegral.integral_comp_add_right + theorem intervalIntegral.integral_comp_div + theorem intervalIntegral.integral_comp_div_add + theorem intervalIntegral.integral_comp_div_sub + theorem intervalIntegral.integral_comp_mul_add + theorem intervalIntegral.integral_comp_mul_left + theorem intervalIntegral.integral_comp_mul_right + theorem intervalIntegral.integral_comp_mul_sub + theorem intervalIntegral.integral_comp_neg + theorem intervalIntegral.integral_comp_sub_div + theorem intervalIntegral.integral_comp_sub_left + theorem intervalIntegral.integral_comp_sub_mul + theorem intervalIntegral.integral_comp_sub_right + theorem intervalIntegral.integral_congr + theorem intervalIntegral.integral_congr_ae' + theorem intervalIntegral.integral_congr_ae + theorem intervalIntegral.integral_const' + theorem intervalIntegral.integral_const + theorem intervalIntegral.integral_const_mul + theorem intervalIntegral.integral_const_of_cdf + theorem intervalIntegral.integral_div + theorem intervalIntegral.integral_eq_integral_of_support_subset + theorem intervalIntegral.integral_eq_zero_iff_of_le_of_nonneg_ae + theorem intervalIntegral.integral_eq_zero_iff_of_nonneg_ae + theorem intervalIntegral.integral_interval_add_interval_comm + theorem intervalIntegral.integral_interval_sub_interval_comm' + theorem intervalIntegral.integral_interval_sub_interval_comm + theorem intervalIntegral.integral_interval_sub_left + theorem intervalIntegral.integral_lt_integral_of_ae_le_of_measure_setOf_lt_ne_zero + theorem intervalIntegral.integral_lt_integral_of_continuousOn_of_le_of_exists_lt + theorem intervalIntegral.integral_mono + theorem intervalIntegral.integral_mono_ae + theorem intervalIntegral.integral_mono_ae_restrict + theorem intervalIntegral.integral_mono_interval + theorem intervalIntegral.integral_mono_on + theorem intervalIntegral.integral_mul_const + theorem intervalIntegral.integral_non_aestronglyMeasurable_of_le + theorem intervalIntegral.integral_nonneg + theorem intervalIntegral.integral_nonneg_of_ae + theorem intervalIntegral.integral_nonneg_of_ae_restrict + theorem intervalIntegral.integral_nonneg_of_forall + theorem intervalIntegral.integral_of_ge + theorem intervalIntegral.integral_of_le + theorem intervalIntegral.integral_pos_iff_support_of_nonneg_ae' + theorem intervalIntegral.integral_pos_iff_support_of_nonneg_ae + theorem intervalIntegral.integral_same + theorem intervalIntegral.integral_sub + theorem intervalIntegral.integral_symm + theorem intervalIntegral.integral_zero + theorem intervalIntegral.integral_zero_ae + theorem intervalIntegral.intervalIntegrable_of_integral_ne_zero + theorem intervalIntegral.intervalIntegral_eq_integral_uIoc + theorem intervalIntegral.intervalIntegral_pos_of_pos + theorem intervalIntegral.intervalIntegral_pos_of_pos_on + theorem intervalIntegral.inv_smul_integral_comp_add_div + theorem intervalIntegral.inv_smul_integral_comp_div + theorem intervalIntegral.inv_smul_integral_comp_div_add + theorem intervalIntegral.inv_smul_integral_comp_div_sub + theorem intervalIntegral.inv_smul_integral_comp_sub_div + theorem intervalIntegral.norm_integral_eq_norm_integral_Ioc + theorem intervalIntegral.norm_integral_le_abs_integral_norm + theorem intervalIntegral.norm_integral_le_integral_norm + theorem intervalIntegral.norm_integral_le_integral_norm_Ioc + theorem intervalIntegral.norm_integral_le_of_norm_le_const + theorem intervalIntegral.norm_integral_le_of_norm_le_const_ae + theorem intervalIntegral.norm_integral_min_max + theorem intervalIntegral.norm_intervalIntegral_eq + theorem intervalIntegral.smul_integral_comp_add_mul + theorem intervalIntegral.smul_integral_comp_mul_add + theorem intervalIntegral.smul_integral_comp_mul_left + theorem intervalIntegral.smul_integral_comp_mul_right + theorem intervalIntegral.smul_integral_comp_mul_sub + theorem intervalIntegral.smul_integral_comp_sub_mul + theorem intervalIntegral.sum_integral_adjacent_intervals + theorem intervalIntegral.sum_integral_adjacent_intervals_Ico + theorem intervalIntegral.tsum_intervalIntegral_eq_of_summable_norm + def intervalIntegral Modified Mathlib/MeasureTheory/Integral/SetIntegral.lean + theorem integral_ofReal - theorem integral_of_real 2023-06-07 05:59:24 ae860a6 feat: port CategoryTheory.Monoidal.Subcategory (#4769) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Monoidal/Subcategory.lean + def CategoryTheory.MonoidalCategory.fullBraidedSubcategory.map + def CategoryTheory.MonoidalCategory.fullBraidedSubcategoryInclusion + theorem CategoryTheory.MonoidalCategory.fullMonoidalClosedSubcategory_ihom_map + theorem CategoryTheory.MonoidalCategory.fullMonoidalClosedSubcategory_ihom_obj + def CategoryTheory.MonoidalCategory.fullMonoidalSubcategory.map + def CategoryTheory.MonoidalCategory.fullMonoidalSubcategoryInclusion 2023-06-07 05:59:23 e95a136 feat: port CategoryTheory.Monoidal.Mon_ (#4763) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/CategoryTheory/DiscreteCategory.lean + def CategoryTheory.Discrete.discreteCases Modified Mathlib/CategoryTheory/Limits/Shapes/Multiequalizer.lean Added Mathlib/CategoryTheory/Monoidal/Mon_.lean + def CategoryTheory.LaxMonoidalFunctor.mapMon + def CategoryTheory.LaxMonoidalFunctor.mapMonFunctor + def Mon_.EquivLaxMonoidalFunctorPUnit.counitIso + def Mon_.EquivLaxMonoidalFunctorPUnit.laxMonoidalToMon + def Mon_.EquivLaxMonoidalFunctorPUnit.monToLaxMonoidal + def Mon_.EquivLaxMonoidalFunctorPUnit.unitIso + structure Mon_.Hom + theorem Mon_.Mon_tensor_mul_assoc + theorem Mon_.Mon_tensor_mul_one + theorem Mon_.Mon_tensor_one_mul + theorem Mon_.assoc_flip + def Mon_.comp + theorem Mon_.comp_hom' + def Mon_.equivLaxMonoidalFunctorPUnit + theorem Mon_.ext + def Mon_.forget + def Mon_.id + theorem Mon_.id_hom' + def Mon_.isoOfIso + theorem Mon_.mul_associator + theorem Mon_.mul_leftUnitor + theorem Mon_.mul_one_hom + theorem Mon_.mul_rightUnitor + theorem Mon_.one_associator + theorem Mon_.one_leftUnitor + theorem Mon_.one_mul_hom + theorem Mon_.one_rightUnitor + def Mon_.trivial + structure Mon_ Modified Mathlib/CategoryTheory/Monoidal/NaturalTransformation.lean + theorem CategoryTheory.MonoidalNatTrans.ext' 2023-06-07 05:59:22 157b07c chore: cleanup using lake exe cache clean (#4728) This moves CI back to the Hoskinson machines (after being disabled temporarily in https://github.com/leanprover-community/mathlib4/pull/4726), but cleans up the cache before each build. ~~(We can't merge this until we manually clean up!)~~ ESTIMATED CHANGES Modified .github/workflows/bors.yml Modified .github/workflows/build.yml Modified .github/workflows/build.yml.in Modified .github/workflows/build_fork.yml 2023-06-07 05:16:00 c76f0eb feat: port Analysis.Calculus.BumpFunctionInner (#4745) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/Calculus/BumpFunctionInner.lean + theorem ContDiff.contDiffBump + theorem ContDiffBump.contDiff_normed + theorem ContDiffBump.continuous_normed + theorem ContDiffBump.eventuallyEq_one + theorem ContDiffBump.eventuallyEq_one_of_mem_ball + theorem ContDiffBump.hasCompactSupport_normed + theorem ContDiffBump.integral_normed + theorem ContDiffBump.integral_normed_smul + theorem ContDiffBump.integral_pos + theorem ContDiffBump.le_one + theorem ContDiffBump.nonneg' + theorem ContDiffBump.nonneg + theorem ContDiffBump.nonneg_normed + theorem ContDiffBump.normed_def + theorem ContDiffBump.normed_neg + theorem ContDiffBump.normed_sub + theorem ContDiffBump.one_lt_rOut_div_rIn + theorem ContDiffBump.one_of_mem_closedBall + theorem ContDiffBump.pos_of_mem_ball + theorem ContDiffBump.rOut_pos + theorem ContDiffBump.support_eq + theorem ContDiffBump.support_normed_eq + theorem ContDiffBump.tendsto_support_normed_smallSets + def ContDiffBump.toFun + theorem ContDiffBump.tsupport_eq + theorem ContDiffBump.tsupport_normed_eq + theorem ContDiffBump.zero_of_le_dist + structure ContDiffBump + def ContDiffBumpBase.ofInnerProductSpace + structure ContDiffBumpBase + theorem Real.smoothTransition.le_one + theorem Real.smoothTransition.lt_one_of_lt_one + theorem Real.smoothTransition.nonneg + theorem Real.smoothTransition.one_of_one_le + theorem Real.smoothTransition.pos_denom + theorem Real.smoothTransition.pos_of_pos + theorem Real.smoothTransition.zero_of_nonpos + def Real.smoothTransition + theorem expNegInvGlue.contDiff_polynomial_eval_inv_mul + theorem expNegInvGlue.continuous_polynomial_eval_inv_mul + theorem expNegInvGlue.differentiable_polynomial_eval_inv_mul + theorem expNegInvGlue.hasDerivAt_polynomial_eval_inv_mul + theorem expNegInvGlue.nonneg + theorem expNegInvGlue.pos_of_pos + theorem expNegInvGlue.tendsto_polynomial_inv_mul_zero + theorem expNegInvGlue.zero_iff_nonpos + theorem expNegInvGlue.zero_of_nonpos + def expNegInvGlue + def someContDiffBumpBase Modified Mathlib/Analysis/Calculus/ContDiffDef.lean + theorem ContDiffOn.contDiffAt Added Mathlib/Analysis/SpecialFunctions/PolynomialExp.lean + theorem Polynomial.tendsto_div_exp_atTop 2023-06-07 04:47:06 900f806 feat: port CategoryTheory.Sites.CompatiblePlus (#3836) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Sites/CompatiblePlus.lean + def CategoryTheory.GrothendieckTopology.diagramCompIso + theorem CategoryTheory.GrothendieckTopology.diagramCompIso_hom_ι + def CategoryTheory.GrothendieckTopology.plusCompIso + theorem CategoryTheory.GrothendieckTopology.plusCompIso_inv_eq_plusLift + theorem CategoryTheory.GrothendieckTopology.plusCompIso_whiskerLeft + theorem CategoryTheory.GrothendieckTopology.plusCompIso_whiskerRight + def CategoryTheory.GrothendieckTopology.plusFunctorWhiskerLeftIso + def CategoryTheory.GrothendieckTopology.plusFunctorWhiskerRightIso + theorem CategoryTheory.GrothendieckTopology.toPlus_comp_plusCompIso_inv + theorem CategoryTheory.GrothendieckTopology.whiskerRight_toPlus_comp_plusCompIso_hom + theorem CategoryTheory.GrothendieckTopology.ι_plusCompIso_hom 2023-06-07 04:25:17 1a01c22 feat: port MeasureTheory.Integral.PeakFunction (#4772) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/MeasureTheory/Integral/PeakFunction.lean + theorem Set.disjoint_sdiff_inter + theorem integrableOn_peak_smul_of_integrableOn_of_continuousWithinAt + theorem tendsto_set_integral_peak_smul_of_integrableOn_of_continuousWithinAt + theorem tendsto_set_integral_peak_smul_of_integrableOn_of_continuousWithinAt_aux + theorem tendsto_set_integral_pow_smul_of_unique_maximum_of_isCompact_of_continuousOn + theorem tendsto_set_integral_pow_smul_of_unique_maximum_of_isCompact_of_integrableOn + theorem tendsto_set_integral_pow_smul_of_unique_maximum_of_isCompact_of_measure_nhdsWithin_pos 2023-06-07 04:25:16 27596b0 feat: port MeasureTheory.Measure.Haar.Quotient (#4770) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/MeasureTheory/Measure/Haar/Quotient.lean + theorem MeasurePreservingQuotientGroup.mk' + theorem MeasureTheory.IsFundamentalDomain.isMulLeftInvariant_map + theorem MeasureTheory.IsFundamentalDomain.map_restrict_quotient + theorem MeasureTheory.IsFundamentalDomain.smulInvariantMeasure_map 2023-06-07 04:25:15 bb248de feat: port Analysis.SpecialFunctions.Trigonometric.Bounds (#4768) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/SpecialFunctions/Trigonometric/Bounds.lean + theorem Real.cos_le_one_div_sqrt_sq_add_one + theorem Real.cos_lt_one_div_sqrt_sq_add_one + theorem Real.deriv_tan_sub_id + theorem Real.le_tan + theorem Real.lt_tan + theorem Real.sin_gt_sub_cube + theorem Real.sin_lt 2023-06-07 04:25:14 e91b6a8 feat: port Geometry.Euclidean.Angle.Unoriented.RightAngle (#4767) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Geometry/Euclidean/Angle/Unoriented/RightAngle.lean + theorem EuclideanGeometry.angle_eq_arccos_of_angle_eq_pi_div_two + theorem EuclideanGeometry.angle_eq_arcsin_of_angle_eq_pi_div_two + theorem EuclideanGeometry.angle_eq_arctan_of_angle_eq_pi_div_two + theorem EuclideanGeometry.angle_le_pi_div_two_of_angle_eq_pi_div_two + theorem EuclideanGeometry.angle_lt_pi_div_two_of_angle_eq_pi_div_two + theorem EuclideanGeometry.angle_pos_of_angle_eq_pi_div_two + theorem EuclideanGeometry.cos_angle_mul_dist_of_angle_eq_pi_div_two + theorem EuclideanGeometry.cos_angle_of_angle_eq_pi_div_two + theorem EuclideanGeometry.dist_div_cos_angle_of_angle_eq_pi_div_two + theorem EuclideanGeometry.dist_div_sin_angle_of_angle_eq_pi_div_two + theorem EuclideanGeometry.dist_div_tan_angle_of_angle_eq_pi_div_two + theorem EuclideanGeometry.dist_sq_eq_dist_sq_add_dist_sq_iff_angle_eq_pi_div_two + theorem EuclideanGeometry.sin_angle_mul_dist_of_angle_eq_pi_div_two + theorem EuclideanGeometry.sin_angle_of_angle_eq_pi_div_two + theorem EuclideanGeometry.tan_angle_mul_dist_of_angle_eq_pi_div_two + theorem EuclideanGeometry.tan_angle_of_angle_eq_pi_div_two + theorem InnerProductGeometry.angle_add_eq_arccos_of_inner_eq_zero + theorem InnerProductGeometry.angle_add_eq_arcsin_of_inner_eq_zero + theorem InnerProductGeometry.angle_add_eq_arctan_of_inner_eq_zero + theorem InnerProductGeometry.angle_add_le_pi_div_two_of_inner_eq_zero + theorem InnerProductGeometry.angle_add_lt_pi_div_two_of_inner_eq_zero + theorem InnerProductGeometry.angle_add_pos_of_inner_eq_zero + theorem InnerProductGeometry.angle_sub_eq_arccos_of_inner_eq_zero + theorem InnerProductGeometry.angle_sub_eq_arcsin_of_inner_eq_zero + theorem InnerProductGeometry.angle_sub_eq_arctan_of_inner_eq_zero + theorem InnerProductGeometry.angle_sub_le_pi_div_two_of_inner_eq_zero + theorem InnerProductGeometry.angle_sub_lt_pi_div_two_of_inner_eq_zero + theorem InnerProductGeometry.angle_sub_pos_of_inner_eq_zero + theorem InnerProductGeometry.cos_angle_add_mul_norm_of_inner_eq_zero + theorem InnerProductGeometry.cos_angle_add_of_inner_eq_zero + theorem InnerProductGeometry.cos_angle_sub_mul_norm_of_inner_eq_zero + theorem InnerProductGeometry.cos_angle_sub_of_inner_eq_zero + theorem InnerProductGeometry.norm_add_sq_eq_norm_sq_add_norm_sq' + theorem InnerProductGeometry.norm_add_sq_eq_norm_sq_add_norm_sq_iff_angle_eq_pi_div_two + theorem InnerProductGeometry.norm_div_cos_angle_add_of_inner_eq_zero + theorem InnerProductGeometry.norm_div_cos_angle_sub_of_inner_eq_zero + theorem InnerProductGeometry.norm_div_sin_angle_add_of_inner_eq_zero + theorem InnerProductGeometry.norm_div_sin_angle_sub_of_inner_eq_zero + theorem InnerProductGeometry.norm_div_tan_angle_add_of_inner_eq_zero + theorem InnerProductGeometry.norm_div_tan_angle_sub_of_inner_eq_zero + theorem InnerProductGeometry.norm_sub_sq_eq_norm_sq_add_norm_sq' + theorem InnerProductGeometry.norm_sub_sq_eq_norm_sq_add_norm_sq_iff_angle_eq_pi_div_two + theorem InnerProductGeometry.sin_angle_add_mul_norm_of_inner_eq_zero + theorem InnerProductGeometry.sin_angle_add_of_inner_eq_zero + theorem InnerProductGeometry.sin_angle_sub_mul_norm_of_inner_eq_zero + theorem InnerProductGeometry.sin_angle_sub_of_inner_eq_zero + theorem InnerProductGeometry.tan_angle_add_mul_norm_of_inner_eq_zero + theorem InnerProductGeometry.tan_angle_add_of_inner_eq_zero + theorem InnerProductGeometry.tan_angle_sub_mul_norm_of_inner_eq_zero + theorem InnerProductGeometry.tan_angle_sub_of_inner_eq_zero 2023-06-07 04:25:13 311f1ba feat: port Data.Real.Pi.Leibniz (#4766) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Data/Real/Pi/Leibniz.lean + theorem Real.tendsto_sum_pi_div_four 2023-06-07 04:25:12 09f63ec feat: port Probability.Integration (#4759) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Probability/Integration.lean + theorem ProbabilityTheory.IndepFun.integrable_left_of_integrable_mul + theorem ProbabilityTheory.IndepFun.integrable_mul + theorem ProbabilityTheory.IndepFun.integrable_right_of_integrable_mul + theorem ProbabilityTheory.IndepFun.integral_mul' + theorem ProbabilityTheory.IndepFun.integral_mul + theorem ProbabilityTheory.IndepFun.integral_mul_of_integrable + theorem ProbabilityTheory.IndepFun.integral_mul_of_nonneg + theorem ProbabilityTheory.indepFun_iff_integral_comp_mul + theorem ProbabilityTheory.lintegral_mul_eq_lintegral_mul_lintegral_of_indepFun'' + theorem ProbabilityTheory.lintegral_mul_eq_lintegral_mul_lintegral_of_indepFun' + theorem ProbabilityTheory.lintegral_mul_eq_lintegral_mul_lintegral_of_indepFun + theorem ProbabilityTheory.lintegral_mul_eq_lintegral_mul_lintegral_of_independent_measurableSpace + theorem ProbabilityTheory.lintegral_mul_indicator_eq_lintegral_mul_lintegral_indicator 2023-06-07 04:25:11 aab87ec feat: port MeasureTheory.Decomposition.Lebesgue (#4736) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/MeasureTheory/Decomposition/Lebesgue.lean + theorem MeasureTheory.ComplexMeasure.integrable_rnDeriv + def MeasureTheory.ComplexMeasure.rnDeriv + def MeasureTheory.ComplexMeasure.singularPart + theorem MeasureTheory.ComplexMeasure.singularPart_add_withDensity_rnDeriv_eq + theorem MeasureTheory.Measure.LebesgueDecomposition.iSup_le_le + theorem MeasureTheory.Measure.LebesgueDecomposition.iSup_mem_measurableLE' + theorem MeasureTheory.Measure.LebesgueDecomposition.iSup_mem_measurableLE + theorem MeasureTheory.Measure.LebesgueDecomposition.iSup_monotone' + theorem MeasureTheory.Measure.LebesgueDecomposition.iSup_monotone + theorem MeasureTheory.Measure.LebesgueDecomposition.iSup_succ_eq_sup + def MeasureTheory.Measure.LebesgueDecomposition.measurableLE + def MeasureTheory.Measure.LebesgueDecomposition.measurableLEEval + theorem MeasureTheory.Measure.LebesgueDecomposition.sup_mem_measurableLE + theorem MeasureTheory.Measure.LebesgueDecomposition.zero_mem_measurableLE + theorem MeasureTheory.Measure.eq_rnDeriv + theorem MeasureTheory.Measure.eq_singularPart + theorem MeasureTheory.Measure.eq_withDensity_rnDeriv + theorem MeasureTheory.Measure.exists_positive_of_not_mutuallySingular + theorem MeasureTheory.Measure.haveLebesgueDecomposition_add + theorem MeasureTheory.Measure.haveLebesgueDecomposition_of_finiteMeasure + theorem MeasureTheory.Measure.haveLebesgueDecomposition_spec + theorem MeasureTheory.Measure.lintegral_rnDeriv_lt_top + theorem MeasureTheory.Measure.lintegral_rnDeriv_lt_top_of_measure_ne_top + theorem MeasureTheory.Measure.measurable_rnDeriv + theorem MeasureTheory.Measure.mutuallySingular_singularPart + theorem MeasureTheory.Measure.rnDeriv_lt_top + theorem MeasureTheory.Measure.rnDeriv_restrict + theorem MeasureTheory.Measure.rnDeriv_withDensity + theorem MeasureTheory.Measure.singularPart_add + theorem MeasureTheory.Measure.singularPart_le + theorem MeasureTheory.Measure.singularPart_smul + theorem MeasureTheory.Measure.singularPart_withDensity + theorem MeasureTheory.Measure.singularPart_zero + theorem MeasureTheory.Measure.withDensity_rnDeriv_le + theorem MeasureTheory.SignedMeasure.eq_rnDeriv + theorem MeasureTheory.SignedMeasure.eq_singularPart + theorem MeasureTheory.SignedMeasure.haveLebesgueDecomposition_mk + theorem MeasureTheory.SignedMeasure.integrable_rnDeriv + theorem MeasureTheory.SignedMeasure.jordanDecomposition_add_withDensity_mutuallySingular + theorem MeasureTheory.SignedMeasure.measurable_rnDeriv + theorem MeasureTheory.SignedMeasure.not_haveLebesgueDecomposition_iff + def MeasureTheory.SignedMeasure.rnDeriv + theorem MeasureTheory.SignedMeasure.rnDeriv_add + theorem MeasureTheory.SignedMeasure.rnDeriv_def + theorem MeasureTheory.SignedMeasure.rnDeriv_neg + theorem MeasureTheory.SignedMeasure.rnDeriv_smul + theorem MeasureTheory.SignedMeasure.rnDeriv_sub + def MeasureTheory.SignedMeasure.singularPart + theorem MeasureTheory.SignedMeasure.singularPart_add + theorem MeasureTheory.SignedMeasure.singularPart_add_withDensity_rnDeriv_eq + theorem MeasureTheory.SignedMeasure.singularPart_mutuallySingular + theorem MeasureTheory.SignedMeasure.singularPart_neg + theorem MeasureTheory.SignedMeasure.singularPart_smul_nnreal + theorem MeasureTheory.SignedMeasure.singularPart_sub + theorem MeasureTheory.SignedMeasure.singularPart_totalVariation + theorem MeasureTheory.SignedMeasure.singularPart_zero + theorem MeasureTheory.SignedMeasure.toJordanDecomposition_eq_of_eq_add_withDensity 2023-06-07 03:51:02 159e04e feat: port LinearAlgebra.TensorAlgebra.Basic (#3600) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/LinearAlgebra/TensorAlgebra/Basic.lean + def FreeAlgebra.toTensor + theorem FreeAlgebra.toTensor_ι + inductive TensorAlgebra.Rel + def TensorAlgebra.algebraMapInv + theorem TensorAlgebra.algebraMap_eq_one_iff + theorem TensorAlgebra.algebraMap_eq_zero_iff + theorem TensorAlgebra.algebraMap_inj + theorem TensorAlgebra.algebraMap_leftInverse + theorem TensorAlgebra.hom_ext + theorem TensorAlgebra.induction + def TensorAlgebra.lift + theorem TensorAlgebra.lift_comp_ι + theorem TensorAlgebra.lift_unique + theorem TensorAlgebra.lift_ι_apply + theorem TensorAlgebra.ringQuot_mkAlgHom_freeAlgebra_ι_eq_ι + def TensorAlgebra.toTrivSqZeroExt + theorem TensorAlgebra.toTrivSqZeroExt_ι + def TensorAlgebra.tprod + theorem TensorAlgebra.tprod_apply + def TensorAlgebra.ιInv + theorem TensorAlgebra.ι_comp_lift + theorem TensorAlgebra.ι_eq_algebraMap_iff + theorem TensorAlgebra.ι_eq_zero_iff + theorem TensorAlgebra.ι_inj + theorem TensorAlgebra.ι_leftInverse + theorem TensorAlgebra.ι_ne_one + theorem TensorAlgebra.ι_range_disjoint_one + def TensorAlgebra 2023-06-07 03:09:56 b59f0dd feat: port CategoryTheory.Bicategory.CoherenceTactic (#4610) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Category/ModuleCat/Adjunctions.lean Modified Mathlib/Algebra/Category/ModuleCat/Monoidal/Closed.lean Modified Mathlib/Algebra/Category/ModuleCat/Monoidal/Symmetric.lean Modified Mathlib/CategoryTheory/Limits/Yoneda.lean Modified Mathlib/CategoryTheory/Monoidal/Braided.lean Modified Mathlib/CategoryTheory/Monoidal/Category.lean Modified Mathlib/CategoryTheory/Monoidal/Discrete.lean Modified Mathlib/CategoryTheory/Monoidal/Rigid/Basic.lean Modified Mathlib/CategoryTheory/Monoidal/Rigid/OfEquivalence.lean Modified Mathlib/CategoryTheory/Monoidal/Types/Basic.lean Modified Mathlib/CategoryTheory/Monoidal/Types/Symmetric.lean Modified Mathlib/RepresentationTheory/Action.lean Modified Mathlib/Tactic.lean Added Mathlib/Tactic/CategoryTheory/BicategoryCoherence.lean + def Mathlib.Tactic.BicategoryCoherence.BicategoricalCoherence.hom + theorem Mathlib.Tactic.BicategoryCoherence.assoc_liftHom₂ + def Mathlib.Tactic.BicategoryCoherence.bicategoricalComp + theorem Mathlib.Tactic.BicategoryCoherence.bicategoricalComp_refl + def Mathlib.Tactic.BicategoryCoherence.bicategoricalIso + def Mathlib.Tactic.BicategoryCoherence.bicategoricalIsoComp + def Mathlib.Tactic.BicategoryCoherence.bicategory_coherence + def Mathlib.Tactic.BicategoryCoherence.exception' + def Mathlib.Tactic.BicategoryCoherence.exception + def Mathlib.Tactic.BicategoryCoherence.mkLiftMap₂LiftExpr Modified Mathlib/Tactic/CategoryTheory/Coherence.lean - theorem Mathlib.Tactic.Coherence.assoc_LiftHom + theorem Mathlib.Tactic.Coherence.assoc_liftHom Modified test/CategoryTheory/Coherence.lean 2023-06-07 02:07:24 e477098 feat: re-port #4738, with porting note for leanprover/lean4#2220 (#4746) Cf. [this Zulip thread](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/Golfing.20a.20have.20in.20!4.234738/near/364037827). ESTIMATED CHANGES Modified Mathlib/Analysis/Convex/SpecificFunctions/Deriv.lean 2023-06-07 02:07:23 3b23c3a feat: add missing lemma `Fintype.bddBelow_range` (#4739) ESTIMATED CHANGES Modified Mathlib/Data/Fintype/Order.lean + theorem Fintype.bddBelow_range + theorem Fintype.exists_ge 2023-06-07 01:25:01 ea80818 chore: tidy various files (#4757) ESTIMATED CHANGES Modified Mathlib/Algebra/MonoidAlgebra/ToDirectSum.lean Modified Mathlib/Analysis/Calculus/FDeriv/Mul.lean Modified Mathlib/Analysis/MeanInequalities.lean Modified Mathlib/Analysis/NormedSpace/AffineIsometry.lean + theorem AffineIsometryEquiv.coe_constVAdd + theorem AffineIsometryEquiv.coe_constVSub - theorem AffineIsometryEquiv.coe_constVadd - theorem AffineIsometryEquiv.coe_constVsub + def AffineIsometryEquiv.constVAdd + theorem AffineIsometryEquiv.constVAdd_zero + def AffineIsometryEquiv.constVSub - def AffineIsometryEquiv.constVadd - theorem AffineIsometryEquiv.constVadd_zero - def AffineIsometryEquiv.constVsub + theorem AffineIsometryEquiv.symm_constVSub - theorem AffineIsometryEquiv.symm_constVsub Modified Mathlib/Analysis/NormedSpace/Dual.lean Modified Mathlib/Analysis/SpecialFunctions/Pow/NNReal.lean Modified Mathlib/CategoryTheory/Abelian/LeftDerived.lean - theorem CategoryTheory.Abelian.Functor.exact_of_map_ProjectiveResolution + theorem CategoryTheory.Abelian.Functor.exact_of_map_projectiveResolution Modified Mathlib/CategoryTheory/Abelian/RightDerived.lean Modified Mathlib/CategoryTheory/Monoidal/Braided.lean Modified Mathlib/FieldTheory/Finite/Basic.lean - theorem ZMod.frobenius_zMod + theorem ZMod.frobenius_zmod Modified Mathlib/Geometry/Euclidean/Angle/Unoriented/Affine.lean Modified Mathlib/LinearAlgebra/InvariantBasisNumber.lean Modified Mathlib/LinearAlgebra/Matrix/Charpoly/Basic.lean Modified Mathlib/MeasureTheory/Constructions/Prod/Integral.lean Modified Mathlib/MeasureTheory/Function/SimpleFuncDenseLp.lean Modified Mathlib/MeasureTheory/Group/Action.lean Modified Mathlib/MeasureTheory/Integral/MeanInequalities.lean Modified Mathlib/MeasureTheory/Measure/Lebesgue/Basic.lean Modified Mathlib/NumberTheory/Bernoulli.lean Modified Mathlib/Probability/Independence/Basic.lean Modified Mathlib/RingTheory/Artinian.lean Modified Mathlib/RingTheory/Noetherian.lean Modified Mathlib/Topology/Algebra/ContinuousMonoidHom.lean - theorem PontryaginDual.map_mul' Modified Mathlib/Topology/Sheaves/Presheaf.lean 2023-06-07 00:58:07 04a303a feat: port Analysis.SpecialFunctions.Trigonometric.ArctanDeriv (#4764) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/SpecialFunctions/Trigonometric/ArctanDeriv.lean + theorem ContDiff.arctan + theorem ContDiffAt.arctan + theorem ContDiffOn.arctan + theorem ContDiffWithinAt.arctan + theorem Differentiable.arctan + theorem DifferentiableAt.arctan + theorem DifferentiableOn.arctan + theorem DifferentiableWithinAt.arctan + theorem HasDerivAt.arctan + theorem HasDerivWithinAt.arctan + theorem HasFDerivAt.arctan + theorem HasFDerivWithinAt.arctan + theorem HasStrictDerivAt.arctan + theorem HasStrictFDerivAt.arctan + theorem Real.contDiffAt_tan + theorem Real.contDiff_arctan + theorem Real.continuousAt_tan + theorem Real.deriv_arctan + theorem Real.deriv_tan + theorem Real.differentiableAt_arctan + theorem Real.differentiableAt_tan + theorem Real.differentiableAt_tan_of_mem_Ioo + theorem Real.differentiable_arctan + theorem Real.hasDerivAt_arctan + theorem Real.hasDerivAt_tan + theorem Real.hasDerivAt_tan_of_mem_Ioo + theorem Real.hasStrictDerivAt_arctan + theorem Real.hasStrictDerivAt_tan + theorem Real.tendsto_abs_tan_atTop + theorem Real.tendsto_abs_tan_of_cos_eq_zero + theorem derivWithin_arctan + theorem deriv_arctan + theorem fderivWithin_arctan + theorem fderiv_arctan 2023-06-07 00:58:06 b90d4a0 feat: port MeasureTheory.Function.ContinuousMapDense (#4760) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/MeasureTheory/Function/ContinuousMapDense.lean + theorem BoundedContinuousFunction.toLp_denseRange + theorem ContinuousMap.toLp_denseRange + theorem MeasureTheory.Integrable.exists_boundedContinuous_integral_sub_le + theorem MeasureTheory.Integrable.exists_boundedContinuous_lintegral_sub_le + theorem MeasureTheory.Integrable.exists_hasCompactSupport_integral_sub_le + theorem MeasureTheory.Integrable.exists_hasCompactSupport_lintegral_sub_le + theorem MeasureTheory.Lp.boundedContinuousFunction_dense + theorem MeasureTheory.Memℒp.exists_boundedContinuous_integral_rpow_sub_le + theorem MeasureTheory.Memℒp.exists_boundedContinuous_snorm_sub_le + theorem MeasureTheory.Memℒp.exists_hasCompactSupport_integral_rpow_sub_le + theorem MeasureTheory.Memℒp.exists_hasCompactSupport_snorm_sub_le + theorem MeasureTheory.exists_continuous_snorm_sub_le_of_closed 2023-06-07 00:58:05 1cabfdd feat: port Analysis.NormedSpace.QuaternionExponential (#4756) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/NormedSpace/QuaternionExponential.lean + theorem Quaternion.exp_coe + theorem Quaternion.exp_eq + theorem Quaternion.exp_of_re_eq_zero + theorem Quaternion.hasSum_expSeries_of_imaginary + theorem Quaternion.im_exp + theorem Quaternion.normSq_exp + theorem Quaternion.norm_exp + theorem Quaternion.re_exp 2023-06-07 00:58:04 02d615d feat: port MeasureTheory.Function.SpecialFunctions.Arctan (#4754) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/MeasureTheory/Function/SpecialFunctions/Arctan.lean + theorem Measurable.arctan + theorem Real.measurable_arctan 2023-06-07 00:58:03 5caec4b feat: port Topology.Order.Hom.Esakia (#3108) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Topology/Order/Hom/Basic.lean + def ContinuousOrderHomClass.toContinuousOrderHom Added Mathlib/Topology/Order/Hom/Esakia.lean + theorem EsakiaHom.cancel_left + theorem EsakiaHom.cancel_right + theorem EsakiaHom.coe_comp + theorem EsakiaHom.coe_comp_continuousOrderHom + theorem EsakiaHom.coe_comp_pseudoEpimorphism + theorem EsakiaHom.coe_copy + theorem EsakiaHom.coe_id + theorem EsakiaHom.coe_id_continuousOrderHom + theorem EsakiaHom.coe_id_pseudoEpimorphism + def EsakiaHom.comp + theorem EsakiaHom.comp_apply + theorem EsakiaHom.comp_assoc + theorem EsakiaHom.comp_id + theorem EsakiaHom.copy_eq + theorem EsakiaHom.ext + theorem EsakiaHom.id_apply + theorem EsakiaHom.id_comp + theorem EsakiaHom.toContinuousOrderHom_coe + theorem EsakiaHom.toFun_eq_coe + def EsakiaHom.toPseudoEpimorphism + structure EsakiaHom + theorem PseudoEpimorphism.cancel_left + theorem PseudoEpimorphism.cancel_right + theorem PseudoEpimorphism.coe_comp + theorem PseudoEpimorphism.coe_comp_orderHom + theorem PseudoEpimorphism.coe_copy + theorem PseudoEpimorphism.coe_id + theorem PseudoEpimorphism.coe_id_orderHom + def PseudoEpimorphism.comp + theorem PseudoEpimorphism.comp_apply + theorem PseudoEpimorphism.comp_assoc + theorem PseudoEpimorphism.comp_id + theorem PseudoEpimorphism.copy_eq + theorem PseudoEpimorphism.ext + theorem PseudoEpimorphism.id_apply + theorem PseudoEpimorphism.id_comp + theorem PseudoEpimorphism.toFun_eq_coe + structure PseudoEpimorphism 2023-06-07 00:35:17 b1e3dbe feat: port MeasureTheory.Measure.FiniteMeasure (#4747) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/MeasureTheory/Measure/FiniteMeasure.lean + theorem BoundedContinuousFunction.NNReal.coe_ennreal_comp_measurable + theorem BoundedContinuousFunction.NNReal.toReal_lintegral_eq_integral + theorem BoundedContinuousFunction.integral_eq_integral_nnrealPart_sub + theorem Filter.Tendsto.mass + theorem MeasureTheory.FiniteMeasure.apply_mono + theorem MeasureTheory.FiniteMeasure.coeFn_add + theorem MeasureTheory.FiniteMeasure.coeFn_smul + theorem MeasureTheory.FiniteMeasure.coeFn_smul_apply + theorem MeasureTheory.FiniteMeasure.coeFn_zero + theorem MeasureTheory.FiniteMeasure.coe_toWeakDualBCNN + theorem MeasureTheory.FiniteMeasure.continuous_mass + theorem MeasureTheory.FiniteMeasure.continuous_testAgainstNN_eval + theorem MeasureTheory.FiniteMeasure.ennreal_coeFn_eq_coeFn_toMeasure + theorem MeasureTheory.FiniteMeasure.ennreal_mass + theorem MeasureTheory.FiniteMeasure.eq_of_forall_apply_eq + theorem MeasureTheory.FiniteMeasure.eq_of_forall_toMeasure_apply_eq + theorem MeasureTheory.FiniteMeasure.integrable_of_boundedContinuous_to_nnreal + theorem MeasureTheory.FiniteMeasure.integrable_of_boundedContinuous_to_real + theorem MeasureTheory.FiniteMeasure.lintegral_lt_top_of_boundedContinuous_to_real + def MeasureTheory.FiniteMeasure.mass + theorem MeasureTheory.FiniteMeasure.mass_nonzero_iff + theorem MeasureTheory.FiniteMeasure.mass_zero_iff + def MeasureTheory.FiniteMeasure.restrict + theorem MeasureTheory.FiniteMeasure.restrict_apply + theorem MeasureTheory.FiniteMeasure.restrict_apply_measure + theorem MeasureTheory.FiniteMeasure.restrict_eq_zero_iff + theorem MeasureTheory.FiniteMeasure.restrict_mass + theorem MeasureTheory.FiniteMeasure.restrict_measure_eq + theorem MeasureTheory.FiniteMeasure.restrict_nonzero_iff + theorem MeasureTheory.FiniteMeasure.smul_testAgainstNN_apply + theorem MeasureTheory.FiniteMeasure.tendsto_iff_forall_integral_tendsto + theorem MeasureTheory.FiniteMeasure.tendsto_iff_forall_lintegral_tendsto + theorem MeasureTheory.FiniteMeasure.tendsto_iff_forall_testAgainstNN_tendsto + theorem MeasureTheory.FiniteMeasure.tendsto_iff_forall_toWeakDualBCNN_tendsto + theorem MeasureTheory.FiniteMeasure.tendsto_iff_weak_star_tendsto + theorem MeasureTheory.FiniteMeasure.tendsto_lintegral_nn_filter_of_le_const + theorem MeasureTheory.FiniteMeasure.tendsto_lintegral_nn_of_le_const + theorem MeasureTheory.FiniteMeasure.tendsto_of_forall_integral_tendsto + theorem MeasureTheory.FiniteMeasure.tendsto_testAgainstNN_filter_of_le_const + theorem MeasureTheory.FiniteMeasure.tendsto_testAgainstNN_of_le_const + theorem MeasureTheory.FiniteMeasure.tendsto_zero_of_tendsto_zero_mass + theorem MeasureTheory.FiniteMeasure.tendsto_zero_testAgainstNN_of_tendsto_zero_mass + def MeasureTheory.FiniteMeasure.testAgainstNN + theorem MeasureTheory.FiniteMeasure.testAgainstNN_add + theorem MeasureTheory.FiniteMeasure.testAgainstNN_coe_eq + theorem MeasureTheory.FiniteMeasure.testAgainstNN_const + theorem MeasureTheory.FiniteMeasure.testAgainstNN_lipschitz + theorem MeasureTheory.FiniteMeasure.testAgainstNN_lipschitz_estimate + theorem MeasureTheory.FiniteMeasure.testAgainstNN_mono + theorem MeasureTheory.FiniteMeasure.testAgainstNN_one + theorem MeasureTheory.FiniteMeasure.testAgainstNN_smul + theorem MeasureTheory.FiniteMeasure.testAgainstNN_zero + def MeasureTheory.FiniteMeasure.toMeasure + def MeasureTheory.FiniteMeasure.toMeasureAddMonoidHom + theorem MeasureTheory.FiniteMeasure.toMeasure_add + theorem MeasureTheory.FiniteMeasure.toMeasure_injective + theorem MeasureTheory.FiniteMeasure.toMeasure_smul + theorem MeasureTheory.FiniteMeasure.toMeasure_zero + def MeasureTheory.FiniteMeasure.toWeakDualBCNN + theorem MeasureTheory.FiniteMeasure.toWeakDualBCNN_apply + theorem MeasureTheory.FiniteMeasure.toWeakDualBCNN_continuous + theorem MeasureTheory.FiniteMeasure.val_eq_toMeasure + theorem MeasureTheory.FiniteMeasure.zero_mass + theorem MeasureTheory.FiniteMeasure.zero_testAgainstNN + theorem MeasureTheory.FiniteMeasure.zero_testAgainstNN_apply + def MeasureTheory.FiniteMeasure + theorem MeasureTheory.lintegral_lt_top_of_boundedContinuous_to_nnreal 2023-06-06 23:22:36 e78e34f chore: Add import to Mathlib.Data.Nat.PrimeNormNum (#4748) This PR adds the import to `Mathlib.Data.Nat.PrimeNormNum` that enables `norm_num` to check primality. ESTIMATED CHANGES Modified Mathlib/Data/Nat/PrimeNormNum.lean 2023-06-06 22:59:57 e0ca116 style: rename `Rtendsto` and `Ptendsto` to `RTendsto` and `PTendsto` (#4722) https://github.com/leanprover-community/mathlib4/issues/2203 ESTIMATED CHANGES Modified Mathlib/Order/Filter/Partial.lean + def Filter.PTendsto' + def Filter.PTendsto - def Filter.Ptendsto' - def Filter.Ptendsto + def Filter.RTendsto' + def Filter.RTendsto - def Filter.Rtendsto' - def Filter.Rtendsto Modified Mathlib/Topology/Partial.lean 2023-06-06 22:12:59 2076bf0 feat: port LinearAlgebra.QuadraticForm.Real (#4758) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/LinearAlgebra/QuadraticForm/Real.lean + theorem QuadraticForm.equivalent_one_neg_one_weighted_sum_squared + theorem QuadraticForm.equivalent_one_zero_neg_one_weighted_sum_squared 2023-06-06 20:29:54 03e1c2f feat: port Analysis.SpecialFunctions.Trigonometric.Arctan (#4750) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/SpecialFunctions/Trigonometric/Arctan.lean + theorem Real.arccos_eq_arctan + theorem Real.arcsin_eq_arctan + theorem Real.arctan_eq_arccos + theorem Real.arctan_eq_arcsin + theorem Real.arctan_eq_of_tan_eq + theorem Real.arctan_lt_pi_div_two + theorem Real.arctan_mem_Ioo + theorem Real.arctan_neg + theorem Real.arctan_one + theorem Real.arctan_tan + theorem Real.arctan_zero + theorem Real.coe_tanLocalHomeomorph + theorem Real.coe_tanLocalHomeomorph_symm + theorem Real.continuousAt_arctan + theorem Real.continuousOn_tan + theorem Real.continuousOn_tan_Ioo + theorem Real.continuous_arctan + theorem Real.continuous_tan + theorem Real.cos_arctan + theorem Real.cos_arctan_pos + theorem Real.cos_sq_arctan + theorem Real.image_tan_Ioo + theorem Real.neg_pi_div_two_lt_arctan + theorem Real.range_arctan + theorem Real.sin_arctan + theorem Real.surjOn_tan + def Real.tanLocalHomeomorph + def Real.tanOrderIso + theorem Real.tan_add' + theorem Real.tan_add + theorem Real.tan_arctan + theorem Real.tan_eq_zero_iff + theorem Real.tan_int_mul_pi_div_two + theorem Real.tan_ne_zero_iff + theorem Real.tan_surjective + theorem Real.tan_two_mul 2023-06-06 20:03:45 02219c1 feat: port Analysis.SpecialFunctions.Trigonometric.ComplexDeriv (#4753) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/SpecialFunctions/Trigonometric/ComplexDeriv.lean + theorem Complex.contDiffAt_tan + theorem Complex.continuousAt_tan + theorem Complex.deriv_tan + theorem Complex.differentiableAt_tan + theorem Complex.hasDerivAt_tan + theorem Complex.hasStrictDerivAt_tan + theorem Complex.tendsto_abs_tan_atTop + theorem Complex.tendsto_abs_tan_of_cos_eq_zero 2023-06-06 19:24:51 22a865f feat: port Algebra.Homology.LocalCohomology (#4749) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Homology/LocalCohomology.lean + theorem Ideal.exists_pow_le_of_le_radical_of_fG + def localCohomology.SelfLeRadical + def localCohomology.diagram + def localCohomology.idealPowersDiagram + def localCohomology.idealPowersToSelfLeRadical + def localCohomology.idealPowersToSelfLeRadicalCompInclusion + def localCohomology.ofDiagram + def localCohomology.ofSelfLeRadical + def localCohomology.ringModIdeals + def localCohomology.selfLeRadicalDiagram + def localCohomology 2023-06-06 18:52:43 011748b feat: port Analysis.BoxIntegral.Integrability (#4742) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/BoxIntegral/Integrability.lean + theorem BoxIntegral.HasIntegral.congr_ae + theorem BoxIntegral.HasIntegral.of_aeEq_zero + theorem BoxIntegral.hasIntegralIndicatorConst + theorem MeasureTheory.IntegrableOn.hasBoxIntegral + theorem MeasureTheory.SimpleFunc.box_integral_eq_integral + theorem MeasureTheory.SimpleFunc.hasBoxIntegral 2023-06-06 18:52:42 ae871a7 feat: port RepresentationTheory.Action (#4700) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Category/MonCat/Basic.lean + theorem MonCat.mul_of + theorem MonCat.oneHom_apply + theorem MonCat.one_of Modified Mathlib/CategoryTheory/Conj.lean +/- theorem CategoryTheory.Iso.conjAut_apply Modified Mathlib/CategoryTheory/Endomorphism.lean + theorem CategoryTheory.Aut.ext Added Mathlib/RepresentationTheory/Action.lean + def Action.FunctorCategoryEquivalence.counitIso + def Action.FunctorCategoryEquivalence.functor + def Action.FunctorCategoryEquivalence.inverse + def Action.FunctorCategoryEquivalence.unitIso + def Action.Hom.comp + def Action.Hom.id + structure Action.Hom + theorem Action.Iso.conj_ρ + def Action.abelianAux + def Action.actionPunitEquivalence + theorem Action.add_hom + theorem Action.associator_hom_hom + theorem Action.associator_inv_hom + theorem Action.comp_hom + def Action.diagonal + def Action.diagonalOneIsoLeftRegular + def Action.forget + def Action.forgetBraided + def Action.forgetMonoidal + def Action.functorCategoryEquivalence + def Action.functorCategoryEquivalenceCompEvaluation + theorem Action.functorCategoryMonoidalEquivalence.counit_app + theorem Action.functorCategoryMonoidalEquivalence.functor_map + theorem Action.functorCategoryMonoidalEquivalence.inv_counit_app_hom + theorem Action.functorCategoryMonoidalEquivalence.inv_unit_app_app + theorem Action.functorCategoryMonoidalEquivalence.inverse_map + theorem Action.functorCategoryMonoidalEquivalence.unit_app_hom + theorem Action.functorCategoryMonoidalEquivalence.ε_app + theorem Action.functorCategoryMonoidalEquivalence.μIso_inv_app + theorem Action.functorCategoryMonoidalEquivalence.μ_app + def Action.functorCategoryMonoidalEquivalence + theorem Action.hom_ext + theorem Action.id_hom + theorem Action.leftDual_v + theorem Action.leftDual_ρ + def Action.leftRegular + theorem Action.leftUnitor_hom_hom + theorem Action.leftUnitor_inv_hom + def Action.mkIso + theorem Action.neg_hom + def Action.ofMulAction + def Action.ofMulActionLimitCone + theorem Action.ofMulAction_apply + def Action.res + def Action.resComp + def Action.resId + theorem Action.rightDual_v + theorem Action.rightDual_ρ + theorem Action.rightUnitor_hom_hom + theorem Action.rightUnitor_inv_hom + theorem Action.smul_hom + theorem Action.sum_hom + theorem Action.tensorHom + def Action.tensorUnitIso + theorem Action.tensorUnit_rho + theorem Action.tensorUnit_v + theorem Action.tensor_rho + theorem Action.tensor_v + def Action.trivial + theorem Action.zero_hom + def Action.ρAut + theorem Action.ρ_one + structure Action + def CategoryTheory.Functor.mapAction + def CategoryTheory.MonoidalFunctor.mapAction + theorem CategoryTheory.MonoidalFunctor.mapAction_ε_inv_hom + theorem CategoryTheory.MonoidalFunctor.mapAction_μ_inv_hom 2023-06-06 18:52:41 e77b8f0 feat: port Data.Set.Ncard (#4591) A port of the newly added `ncard` file. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Data/Set/Ncard.lean + theorem Set.Finite_of_ncard_ne_zero + theorem Set.Finite_of_ncard_pos + theorem Set.Infinite.exists_subset_ncard_eq + theorem Set.Infinite.exists_supset_ncard_eq + theorem Set.Infinite.ncard + theorem Set.Nat.card_coe_set_eq + theorem Set.diff_nonempty_of_ncard_lt_ncard + theorem Set.eq_insert_of_ncard_eq_succ + theorem Set.eq_of_subset_of_ncard_le + theorem Set.exists_eq_insert_iff_ncard + theorem Set.exists_intermediate_Set' + theorem Set.exists_intermediate_Set + theorem Set.exists_mem_not_mem_of_ncard_lt_ncard + theorem Set.exists_ne_map_eq_of_ncard_lt_of_maps_to + theorem Set.exists_ne_of_one_lt_ncard + theorem Set.exists_smaller_Set + theorem Set.exists_subset_or_subset_of_two_mul_lt_ncard + theorem Set.fiber_ncard_ne_zero_iff_mem_image + theorem Set.injOn_of_ncard_image_eq + theorem Set.inj_on_of_surj_on_of_ncard_le + theorem Set.le_ncard_diff + theorem Set.le_ncard_of_inj_on_range + theorem Set.map_eq_of_subset + theorem Set.ncard_add_ncard_compl + theorem Set.ncard_coe_Finset + theorem Set.ncard_congr + theorem Set.ncard_def + theorem Set.ncard_diff + theorem Set.ncard_diff_add_ncard + theorem Set.ncard_diff_add_ncard_eq_ncard + theorem Set.ncard_diff_singleton_add_one + theorem Set.ncard_diff_singleton_le + theorem Set.ncard_diff_singleton_lt_of_mem + theorem Set.ncard_diff_singleton_of_mem + theorem Set.ncard_empty + theorem Set.ncard_eq_ncard_iff_ncard_diff_eq_ncard_diff + theorem Set.ncard_eq_ofBijective + theorem Set.ncard_eq_one + theorem Set.ncard_eq_succ + theorem Set.ncard_eq_three + theorem Set.ncard_eq_toFinset_card' + theorem Set.ncard_eq_toFinset_card + theorem Set.ncard_eq_two + theorem Set.ncard_eq_zero + theorem Set.ncard_exchange' + theorem Set.ncard_exchange + theorem Set.ncard_image_iff + theorem Set.ncard_image_le + theorem Set.ncard_image_ofInjective + theorem Set.ncard_image_of_injOn + theorem Set.ncard_insert_eq_ite + theorem Set.ncard_insert_le + theorem Set.ncard_insert_of_mem + theorem Set.ncard_insert_of_not_mem + theorem Set.ncard_inter_add_ncard_diff_eq_ncard + theorem Set.ncard_inter_add_ncard_union + theorem Set.ncard_inter_le_ncard_left + theorem Set.ncard_inter_le_ncard_right + theorem Set.ncard_le_ncard_diff_add_ncard + theorem Set.ncard_le_ncard_iff_ncard_diff_le_ncard_diff + theorem Set.ncard_le_ncard_insert + theorem Set.ncard_le_ncard_of_injOn + theorem Set.ncard_le_of_subset + theorem Set.ncard_le_one + theorem Set.ncard_le_one_iff + theorem Set.ncard_le_one_iff_eq + theorem Set.ncard_le_one_iff_subset_singleton + theorem Set.ncard_le_one_of_subsingleton + theorem Set.ncard_lt_ncard + theorem Set.ncard_lt_ncard_iff_ncard_diff_lt_ncard_diff + theorem Set.ncard_map + theorem Set.ncard_mono + theorem Set.ncard_ne_zero_of_mem + theorem Set.ncard_pair + theorem Set.ncard_pos + theorem Set.ncard_preimage_ofInjective_subset_range + theorem Set.ncard_singleton + theorem Set.ncard_singleton_inter + theorem Set.ncard_strictMono + theorem Set.ncard_subtype + theorem Set.ncard_union_add_ncard_inter + theorem Set.ncard_union_eq + theorem Set.ncard_union_le + theorem Set.ncard_univ + theorem Set.nonempty_of_ncard_ne_zero + theorem Set.one_lt_ncard + theorem Set.one_lt_ncard_iff + theorem Set.pred_ncard_le_ncard_diff_singleton + theorem Set.sep_of_ncard_eq + theorem Set.subset_iff_eq_of_ncard_le + theorem Set.surj_on_of_inj_on_of_ncard_le + theorem Set.two_lt_ncard + theorem Set.two_lt_ncard_iff 2023-06-06 18:26:01 a30980e feat: port Analysis.SpecialFunctions.Trigonometric.Complex (#4744) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/SpecialFunctions/Trigonometric/Complex.lean + theorem Complex.continuousOn_tan + theorem Complex.continuous_tan + theorem Complex.cos_eq_cos_iff + theorem Complex.cos_eq_iff_quadratic + theorem Complex.cos_eq_zero_iff + theorem Complex.cos_ne_zero_iff + theorem Complex.cos_surjective + theorem Complex.range_cos + theorem Complex.range_sin + theorem Complex.sin_eq_sin_iff + theorem Complex.sin_eq_zero_iff + theorem Complex.sin_ne_zero_iff + theorem Complex.sin_surjective + theorem Complex.tan_add' + theorem Complex.tan_add + theorem Complex.tan_add_mul_I + theorem Complex.tan_eq + theorem Complex.tan_eq_zero_iff + theorem Complex.tan_int_mul_pi_div_two + theorem Complex.tan_ne_zero_iff + theorem Complex.tan_two_mul + theorem Real.cos_eq_cos_iff + theorem Real.cos_eq_zero_iff + theorem Real.cos_ne_zero_iff + theorem Real.le_sin_mul + theorem Real.lt_sin_mul + theorem Real.mul_le_sin + theorem Real.mul_lt_sin + theorem Real.sin_eq_sin_iff 2023-06-06 18:25:59 976994b feat: port Analysis.Calculus.ParametricIntegral (#4743) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/Calculus/ParametricIntegral.lean + theorem hasDerivAt_integral_of_dominated_loc_of_deriv_le + theorem hasDerivAt_integral_of_dominated_loc_of_lip + theorem hasFDerivAt_integral_of_dominated_loc_of_lip' + theorem hasFDerivAt_integral_of_dominated_loc_of_lip + theorem hasFDerivAt_integral_of_dominated_of_fderiv_le 2023-06-06 17:47:20 27fd4ae feat: port MeasureTheory.Group.FundamentalDomain (#4740) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/MeasureTheory/Group/FundamentalDomain.lean + structure MeasureTheory.IsAddFundamentalDomain + theorem MeasureTheory.IsFundamentalDomain.essSup_measure_restrict + theorem MeasureTheory.IsFundamentalDomain.exists_ne_one_smul_eq + theorem MeasureTheory.IsFundamentalDomain.iUnion_smul_ae_eq + theorem MeasureTheory.IsFundamentalDomain.image_of_equiv + theorem MeasureTheory.IsFundamentalDomain.integral_eq_tsum' + theorem MeasureTheory.IsFundamentalDomain.integral_eq_tsum + theorem MeasureTheory.IsFundamentalDomain.integral_eq_tsum_of_ac + theorem MeasureTheory.IsFundamentalDomain.lintegral_eq_tsum' + theorem MeasureTheory.IsFundamentalDomain.lintegral_eq_tsum + theorem MeasureTheory.IsFundamentalDomain.lintegral_eq_tsum_of_ac + theorem MeasureTheory.IsFundamentalDomain.measure_eq_card_smul_of_smul_ae_eq_self + theorem MeasureTheory.IsFundamentalDomain.measure_eq_tsum' + theorem MeasureTheory.IsFundamentalDomain.measure_eq_tsum + theorem MeasureTheory.IsFundamentalDomain.measure_eq_tsum_of_ac + theorem MeasureTheory.IsFundamentalDomain.measure_fundamentalFrontier + theorem MeasureTheory.IsFundamentalDomain.measure_fundamentalInterior + theorem MeasureTheory.IsFundamentalDomain.measure_le_of_pairwise_disjoint + theorem MeasureTheory.IsFundamentalDomain.measure_set_eq + theorem MeasureTheory.IsFundamentalDomain.measure_zero_of_invariant + theorem MeasureTheory.IsFundamentalDomain.mk'' + theorem MeasureTheory.IsFundamentalDomain.mk' + theorem MeasureTheory.IsFundamentalDomain.mk_of_measure_univ_le + theorem MeasureTheory.IsFundamentalDomain.mono + theorem MeasureTheory.IsFundamentalDomain.nullMeasurableSet_smul + theorem MeasureTheory.IsFundamentalDomain.pairwise_aEDisjoint_of_ac + theorem MeasureTheory.IsFundamentalDomain.preimage_of_equiv + theorem MeasureTheory.IsFundamentalDomain.restrict_restrict + theorem MeasureTheory.IsFundamentalDomain.set_integral_eq_tsum' + theorem MeasureTheory.IsFundamentalDomain.set_integral_eq_tsum + theorem MeasureTheory.IsFundamentalDomain.set_lintegral_eq_tsum' + theorem MeasureTheory.IsFundamentalDomain.set_lintegral_eq_tsum + theorem MeasureTheory.IsFundamentalDomain.smul + theorem MeasureTheory.IsFundamentalDomain.smul_of_comm + theorem MeasureTheory.IsFundamentalDomain.sum_restrict + theorem MeasureTheory.IsFundamentalDomain.sum_restrict_of_ac + structure MeasureTheory.IsFundamentalDomain + theorem MeasureTheory.disjoint_fundamentalInterior_fundamentalFrontier + def MeasureTheory.fundamentalFrontier + theorem MeasureTheory.fundamentalFrontier_smul + theorem MeasureTheory.fundamentalFrontier_subset + theorem MeasureTheory.fundamentalFrontier_union_fundamentalInterior + def MeasureTheory.fundamentalInterior + theorem MeasureTheory.fundamentalInterior_smul + theorem MeasureTheory.fundamentalInterior_subset + theorem MeasureTheory.fundamentalInterior_union_fundamentalFrontier + theorem MeasureTheory.mem_fundamentalFrontier + theorem MeasureTheory.mem_fundamentalInterior + theorem MeasureTheory.pairwise_disjoint_fundamentalInterior + theorem MeasureTheory.sdiff_fundamentalFrontier + theorem MeasureTheory.sdiff_fundamentalInterior Modified Mathlib/MeasureTheory/Measure/MeasureSpace.lean + theorem MeasureTheory.AEDisjoint.preimage - theorem MeasureTheory.AeDisjoint.preimage 2023-06-06 17:01:20 0196e48 feat: port Analysis.BoxIntegral.DivergenceTheorem (#4741) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/BoxIntegral/DivergenceTheorem.lean + theorem BoxIntegral.hasIntegral_GP_divergence_of_forall_hasDerivWithinAt + theorem BoxIntegral.hasIntegral_GP_pderiv + theorem BoxIntegral.norm_volume_sub_integral_face_upper_sub_lower_smul_le 2023-06-06 16:13:49 a86c4df feat: port Analysis.Convex.SpecificFunctions.Deriv (#4738) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/Convex/SpecificFunctions/Deriv.lean + theorem Even.strictConvexOn_pow + theorem Finset.prod_nonneg_of_card_nonpos_even + theorem deriv2_sqrt_mul_log + theorem deriv_sqrt_mul_log' + theorem deriv_sqrt_mul_log + theorem hasDerivAt_sqrt_mul_log + theorem int_prod_range_nonneg + theorem int_prod_range_pos + theorem strictConcaveOn_cos_Icc + theorem strictConcaveOn_sin_Icc + theorem strictConcaveOn_sqrt_mul_log_Ioi + theorem strictConvexOn_pow + theorem strictConvexOn_zpow 2023-06-06 15:53:05 49f3a15 feat: port Analysis.BoxIntegral.Basic (#4695) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/BoxIntegral/Basic.lean + theorem BoxIntegral.HasIntegral.integrable + theorem BoxIntegral.HasIntegral.integral_eq + theorem BoxIntegral.HasIntegral.mcShane_of_forall_isLittleO + theorem BoxIntegral.HasIntegral.mono + theorem BoxIntegral.HasIntegral.of_bRiemann_eq_false_of_forall_isLittleO + theorem BoxIntegral.HasIntegral.of_le_Henstock_of_forall_isLittleO + theorem BoxIntegral.HasIntegral.of_mul + theorem BoxIntegral.HasIntegral.smul + theorem BoxIntegral.HasIntegral.sub + theorem BoxIntegral.HasIntegral.sum + theorem BoxIntegral.HasIntegral.tendsto + theorem BoxIntegral.HasIntegral.unique + def BoxIntegral.HasIntegral + theorem BoxIntegral.Integrable.add + theorem BoxIntegral.Integrable.cauchy_map_integralSum_toFilteriUnion + def BoxIntegral.Integrable.convergenceR + theorem BoxIntegral.Integrable.convergenceR_cond + theorem BoxIntegral.Integrable.dist_integralSum_integral_le_of_memBaseSet + theorem BoxIntegral.Integrable.dist_integralSum_le_of_memBaseSet + theorem BoxIntegral.Integrable.dist_integralSum_sum_integral_le_of_memBaseSet + theorem BoxIntegral.Integrable.dist_integralSum_sum_integral_le_of_memBaseSet_of_iUnion_eq + theorem BoxIntegral.Integrable.mono + theorem BoxIntegral.Integrable.neg + theorem BoxIntegral.Integrable.of_neg + theorem BoxIntegral.Integrable.of_smul + theorem BoxIntegral.Integrable.smul + theorem BoxIntegral.Integrable.sub + theorem BoxIntegral.Integrable.sum_integral_congr + theorem BoxIntegral.Integrable.tendsto_integralSum_sum_integral + theorem BoxIntegral.Integrable.tendsto_integralSum_toFilter_prod_self_inf_iUnion_eq_uniformity + theorem BoxIntegral.Integrable.tendsto_integralSum_toFilteriUnion_single + def BoxIntegral.Integrable.toBoxAdditive + theorem BoxIntegral.Integrable.to_subbox + theorem BoxIntegral.Integrable.to_subbox_aux + def BoxIntegral.Integrable + theorem BoxIntegral.hasIntegral_const + theorem BoxIntegral.hasIntegral_iff + theorem BoxIntegral.hasIntegral_zero + theorem BoxIntegral.integrable_const + theorem BoxIntegral.integrable_iff_cauchy + theorem BoxIntegral.integrable_iff_cauchy_basis + theorem BoxIntegral.integrable_neg + theorem BoxIntegral.integrable_of_continuousOn + theorem BoxIntegral.integrable_zero + def BoxIntegral.integral + def BoxIntegral.integralSum + theorem BoxIntegral.integralSum_add + theorem BoxIntegral.integralSum_biUnionTagged + theorem BoxIntegral.integralSum_biUnion_partition + theorem BoxIntegral.integralSum_disjUnion + theorem BoxIntegral.integralSum_fiberwise + theorem BoxIntegral.integralSum_inf_partition + theorem BoxIntegral.integralSum_neg + theorem BoxIntegral.integralSum_smul + theorem BoxIntegral.integralSum_sub_partitions + theorem BoxIntegral.integral_add + theorem BoxIntegral.integral_const + theorem BoxIntegral.integral_neg + theorem BoxIntegral.integral_nonneg + theorem BoxIntegral.integral_smul + theorem BoxIntegral.integral_sub + theorem BoxIntegral.integral_zero + theorem BoxIntegral.norm_integral_le_of_le_const + theorem BoxIntegral.norm_integral_le_of_norm_le Modified Mathlib/Analysis/BoxIntegral/Partition/Additive.lean +/- theorem BoxIntegral.BoxAdditiveMap.coe_inj +/- theorem BoxIntegral.BoxAdditiveMap.coe_injective Modified Mathlib/Analysis/BoxIntegral/Partition/Basic.lean Modified Mathlib/Analysis/BoxIntegral/Partition/Filter.lean Modified Mathlib/Analysis/BoxIntegral/Partition/Measure.lean Modified Mathlib/Analysis/BoxIntegral/Partition/SubboxInduction.lean 2023-06-06 14:40:19 8f95ac4 feat: port LinearAlgebra.QuadraticForm.Prod (#4735) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/LinearAlgebra/QuadraticForm/Prod.lean + theorem QuadraticForm.Equivalent.pi + theorem QuadraticForm.Equivalent.prod + def QuadraticForm.Isometry.pi + def QuadraticForm.Isometry.prod + theorem QuadraticForm.PosDef.prod + theorem QuadraticForm.anisotropic_of_pi + theorem QuadraticForm.anisotropic_of_prod + theorem QuadraticForm.nonneg_pi_iff + theorem QuadraticForm.nonneg_prod_iff + def QuadraticForm.pi + theorem QuadraticForm.pi_apply + theorem QuadraticForm.posDef_pi_iff + theorem QuadraticForm.posDef_prod_iff + def QuadraticForm.prod 2023-06-06 14:40:18 892102c feat: port MeasureTheory.Constructions.Prod.Integral (#4727) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/MeasureTheory/Constructions/Prod/Integral.lean + theorem MeasureTheory.AEStronglyMeasurable.fst + theorem MeasureTheory.AEStronglyMeasurable.integral_prod_right' + theorem MeasureTheory.AEStronglyMeasurable.prod_mk_left + theorem MeasureTheory.AEStronglyMeasurable.snd + theorem MeasureTheory.Integrable.integral_norm_prod_left + theorem MeasureTheory.Integrable.integral_norm_prod_right + theorem MeasureTheory.Integrable.integral_prod_left + theorem MeasureTheory.Integrable.integral_prod_right + theorem MeasureTheory.Integrable.prod_left_ae + theorem MeasureTheory.Integrable.prod_right_ae + theorem MeasureTheory.Integrable.swap + theorem MeasureTheory.Measure.integrable_measure_prod_mk_left + theorem MeasureTheory.StronglyMeasurable.integral_prod_left' + theorem MeasureTheory.StronglyMeasurable.integral_prod_left + theorem MeasureTheory.StronglyMeasurable.integral_prod_right' + theorem MeasureTheory.StronglyMeasurable.integral_prod_right + theorem MeasureTheory.continuous_integral_integral + theorem MeasureTheory.hasFiniteIntegral_prod_iff' + theorem MeasureTheory.hasFiniteIntegral_prod_iff + theorem MeasureTheory.integrable_prod_iff' + theorem MeasureTheory.integrable_prod_iff + theorem MeasureTheory.integrable_prod_mul + theorem MeasureTheory.integrable_swap_iff + theorem MeasureTheory.integral_fn_integral_add + theorem MeasureTheory.integral_fn_integral_sub + theorem MeasureTheory.integral_integral + theorem MeasureTheory.integral_integral_add' + theorem MeasureTheory.integral_integral_add + theorem MeasureTheory.integral_integral_sub' + theorem MeasureTheory.integral_integral_sub + theorem MeasureTheory.integral_integral_swap + theorem MeasureTheory.integral_integral_symm + theorem MeasureTheory.integral_prod + theorem MeasureTheory.integral_prod_mul + theorem MeasureTheory.integral_prod_swap + theorem MeasureTheory.integral_prod_symm + theorem MeasureTheory.lintegral_fn_integral_sub + theorem MeasureTheory.set_integral_prod + theorem MeasureTheory.set_integral_prod_mul + theorem measurableSet_integrable Modified Mathlib/MeasureTheory/Function/LpSpace.lean 2023-06-06 14:18:41 cdb1b89 feat: port GroupTheory.SpecificGroups.Quaternion (#4448) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Data/ZMod/Basic.lean Added Mathlib/GroupTheory/SpecificGroups/Quaternion.lean + theorem QuaternionGroup.a_mul_a + theorem QuaternionGroup.a_mul_xa + theorem QuaternionGroup.a_one_pow + theorem QuaternionGroup.a_one_pow_n + theorem QuaternionGroup.card + theorem QuaternionGroup.exponent + theorem QuaternionGroup.one_def + theorem QuaternionGroup.orderOf_a + theorem QuaternionGroup.orderOf_a_one + theorem QuaternionGroup.orderOf_xa + def QuaternionGroup.quaternionGroupZeroEquivDihedralGroupZero + theorem QuaternionGroup.quaternionGroup_one_isCyclic + theorem QuaternionGroup.xa_mul_a + theorem QuaternionGroup.xa_mul_xa + theorem QuaternionGroup.xa_pow_four + theorem QuaternionGroup.xa_sq + inductive QuaternionGroup 2023-06-06 14:18:40 0a8cda9 feat: port Algebra.Category.Module.Colimits (#4282) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Category/ModuleCat/Abelian.lean Modified Mathlib/Algebra/Category/ModuleCat/Basic.lean Added Mathlib/Algebra/Category/ModuleCat/Colimits.lean + def ModuleCat.Colimits.ColimitType.mk + def ModuleCat.Colimits.ColimitType + inductive ModuleCat.Colimits.Prequotient + inductive ModuleCat.Colimits.Relation + def ModuleCat.Colimits.coconeFun + def ModuleCat.Colimits.coconeMorphism + theorem ModuleCat.Colimits.cocone_naturality + theorem ModuleCat.Colimits.cocone_naturality_components + def ModuleCat.Colimits.colimit + def ModuleCat.Colimits.colimitCocone + def ModuleCat.Colimits.colimitCoconeIsColimit + def ModuleCat.Colimits.colimitSetoid + def ModuleCat.Colimits.descFun + def ModuleCat.Colimits.descFunLift + def ModuleCat.Colimits.descMorphism + theorem ModuleCat.Colimits.quot_add + theorem ModuleCat.Colimits.quot_neg + theorem ModuleCat.Colimits.quot_smul + theorem ModuleCat.Colimits.quot_zero Modified Mathlib/Algebra/Category/ModuleCat/Limits.lean +/- def ModuleCat.HasLimits.limitCone +/- def ModuleCat.HasLimits.limitConeIsLimit +/- def ModuleCat.forget₂AddCommGroupPreservesLimitsAux +/- theorem ModuleCat.hasLimitsOfSize +/- def ModuleCat.limitπLinearMap +/- def ModuleCat.sectionsSubmodule 2023-06-06 13:22:06 e59c761 feat: port LinearAlgebra.QuadraticForm.Complex (#4733) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/LinearAlgebra/QuadraticForm/Complex.lean + theorem QuadraticForm.complex_equivalent + theorem QuadraticForm.equivalent_sum_squares 2023-06-06 13:22:05 ce2ed4a feat: port Analysis.Convex.Integral (#4718) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/Convex/Integral.lean + theorem ConcaveOn.average_mem_hypograph + theorem ConcaveOn.le_map_average + theorem ConcaveOn.le_map_integral + theorem ConcaveOn.le_map_set_average + theorem ConcaveOn.set_average_mem_hypograph + theorem Convex.average_mem + theorem Convex.average_mem_interior_of_set + theorem Convex.integral_mem + theorem Convex.set_average_mem + theorem Convex.set_average_mem_closure + theorem ConvexOn.average_mem_epigraph + theorem ConvexOn.map_average_le + theorem ConvexOn.map_integral_le + theorem ConvexOn.map_set_average_le + theorem ConvexOn.set_average_mem_epigraph + theorem StrictConcaveOn.ae_eq_const_or_lt_map_average + theorem StrictConvex.ae_eq_const_or_average_mem_interior + theorem StrictConvexOn.ae_eq_const_or_map_average_lt + theorem ae_eq_const_or_exists_average_ne_compl + theorem ae_eq_const_or_norm_average_lt_of_norm_le_const + theorem ae_eq_const_or_norm_integral_lt_of_norm_le_const + theorem ae_eq_const_or_norm_set_integral_lt_of_norm_le_const 2023-06-06 13:22:03 a9359cb feat: port Analysis.SpecialFunctions.Pow.Deriv (#4689) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/SpecialFunctions/Pow/Deriv.lean + theorem Complex.hasFDerivAt_cpow + theorem Complex.hasStrictDerivAt_const_cpow + theorem Complex.hasStrictDerivAt_cpow_const + theorem Complex.hasStrictFDerivAt_cpow' + theorem Complex.hasStrictFDerivAt_cpow + theorem ContDiff.rpow + theorem ContDiff.rpow_const_of_le + theorem ContDiff.rpow_const_of_ne + theorem ContDiffAt.rpow + theorem ContDiffAt.rpow_const_of_le + theorem ContDiffAt.rpow_const_of_ne + theorem ContDiffOn.rpow + theorem ContDiffOn.rpow_const_of_le + theorem ContDiffOn.rpow_const_of_ne + theorem ContDiffWithinAt.rpow + theorem ContDiffWithinAt.rpow_const_of_le + theorem ContDiffWithinAt.rpow_const_of_ne + theorem Differentiable.rpow + theorem Differentiable.rpow_const + theorem DifferentiableAt.const_cpow + theorem DifferentiableAt.cpow + theorem DifferentiableAt.rpow + theorem DifferentiableAt.rpow_const + theorem DifferentiableOn.rpow + theorem DifferentiableOn.rpow_const + theorem DifferentiableWithinAt.const_cpow + theorem DifferentiableWithinAt.cpow + theorem DifferentiableWithinAt.rpow + theorem DifferentiableWithinAt.rpow_const + theorem HasDerivAt.const_cpow + theorem HasDerivAt.cpow + theorem HasDerivAt.cpow_const + theorem HasDerivAt.rpow + theorem HasDerivAt.rpow_const + theorem HasDerivWithinAt.const_cpow + theorem HasDerivWithinAt.cpow + theorem HasDerivWithinAt.cpow_const + theorem HasDerivWithinAt.rpow + theorem HasDerivWithinAt.rpow_const + theorem HasFDerivAt.const_cpow + theorem HasFDerivAt.const_rpow + theorem HasFDerivAt.cpow + theorem HasFDerivAt.rpow + theorem HasFDerivAt.rpow_const + theorem HasFDerivWithinAt.const_cpow + theorem HasFDerivWithinAt.const_rpow + theorem HasFDerivWithinAt.cpow + theorem HasFDerivWithinAt.rpow + theorem HasFDerivWithinAt.rpow_const + theorem HasStrictDerivAt.const_cpow + theorem HasStrictDerivAt.cpow_const + theorem HasStrictDerivAt.rpow + theorem HasStrictFDerivAt.const_cpow + theorem HasStrictFDerivAt.const_rpow + theorem HasStrictFDerivAt.cpow + theorem HasStrictFDerivAt.rpow + theorem HasStrictFDerivAt.rpow_const + theorem Real.contDiffAt_rpow_const + theorem Real.contDiffAt_rpow_const_of_le + theorem Real.contDiffAt_rpow_const_of_ne + theorem Real.contDiffAt_rpow_of_ne + theorem Real.contDiff_rpow_const_of_le + theorem Real.deriv_rpow_const' + theorem Real.deriv_rpow_const + theorem Real.differentiableAt_rpow_of_ne + theorem Real.differentiable_rpow_const + theorem Real.hasDerivAt_rpow_const + theorem Real.hasStrictDerivAt_const_rpow + theorem Real.hasStrictDerivAt_const_rpow_of_neg + theorem Real.hasStrictDerivAt_rpow_const + theorem Real.hasStrictDerivAt_rpow_const_of_ne + theorem Real.hasStrictFDerivAt_rpow_of_neg + theorem Real.hasStrictFDerivAt_rpow_of_pos + theorem derivWithin_rpow_const + theorem deriv_rpow_const + theorem hasDerivAt_of_real_cpow + theorem tendsto_one_plus_div_pow_exp + theorem tendsto_one_plus_div_rpow_exp 2023-06-06 12:49:57 41086ad feat: port RingTheory.Localization.Away.AdjoinRoot (#4725) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/RingTheory/AdjoinRoot.lean + theorem AdjoinRoot.root_isInv - theorem AdjoinRoot.root_is_inv Added Mathlib/RingTheory/Localization/Away/AdjoinRoot.lean + theorem IsLocalization.Away.finitePresentation + theorem IsLocalization.adjoin_inv 2023-06-06 12:49:56 a7f98fb feat: pi notation for pi types (#4719) Adds a parser for pi notation (like `Π x : α, β x`). Also adds a pretty printer that can be activated using `open scoped PiNotation`. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Util/PiNotation.lean + def PiNotation.delabPi + def PiNotation.piNotation + def PiNotation.replacePiNotation 2023-06-06 12:22:36 c072e18 feat: port RingTheory.Valuation.ValuationRing (#4720) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/RingTheory/Valuation/ValuationRing.lean + theorem Function.Surjective.valuationRing + def ValuationRing.ValueGroup + theorem ValuationRing.coe_equivInteger_apply + theorem ValuationRing.cond + theorem ValuationRing.dvd_total + theorem ValuationRing.iff_dvd_total + theorem ValuationRing.iff_ideal_total + theorem ValuationRing.iff_isInteger_or_isInteger + theorem ValuationRing.iff_local_bezout_domain + theorem ValuationRing.isInteger_or_isInteger + theorem ValuationRing.mem_integer_iff + theorem ValuationRing.of_integers + theorem ValuationRing.range_algebraMap_eq + theorem ValuationRing.unique_irreducible + def ValuationRing.valuation 2023-06-06 11:47:23 6dea3c8 feat: port Combinatorics.Additive.Behrend (#4730) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Combinatorics/Additive/Behrend.lean + theorem Behrend.addSalemSpencer_image_sphere + theorem Behrend.bound + theorem Behrend.bound_aux' + theorem Behrend.bound_aux + def Behrend.box + theorem Behrend.box_zero + theorem Behrend.card_box + theorem Behrend.card_sphere_le_rothNumberNat + theorem Behrend.ceil_lt_mul + theorem Behrend.dValue_pos + theorem Behrend.div_lt_floor + theorem Behrend.exists_large_sphere + theorem Behrend.exists_large_sphere_aux + theorem Behrend.exp_four_lt + theorem Behrend.exp_neg_two_mul_le + theorem Behrend.four_zero_nine_six_lt_exp_sixteen + theorem Behrend.le_N + theorem Behrend.le_sqrt_log + theorem Behrend.log_two_mul_two_le_sqrt_log_eight + theorem Behrend.lower_bound_le_one' + theorem Behrend.lower_bound_le_one + def Behrend.map + theorem Behrend.map_eq_iff + theorem Behrend.map_injOn + theorem Behrend.map_le_of_mem_box + theorem Behrend.map_mod + theorem Behrend.map_monotone + theorem Behrend.map_succ' + theorem Behrend.map_succ + theorem Behrend.map_zero + theorem Behrend.mem_box + theorem Behrend.nValue_pos + theorem Behrend.norm_of_mem_sphere + theorem Behrend.roth_lower_bound + theorem Behrend.roth_lower_bound_explicit + def Behrend.sphere + theorem Behrend.sphere_subset_box + theorem Behrend.sphere_subset_preimage_metric_sphere + theorem Behrend.sphere_zero_right + theorem Behrend.sphere_zero_subset + theorem Behrend.sum_eq + theorem Behrend.sum_lt + theorem Behrend.sum_sq_le_of_mem_box + theorem Behrend.three_le_nValue + theorem Behrend.two_div_one_sub_two_div_e_le_eight + theorem Behrend.two_le_nValue 2023-06-06 10:51:58 9f0fbd0 feat: port RingTheory.DedekindDomain.Factorization (#4721) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/RingTheory/DedekindDomain/Factorization.lean + theorem Associates.finite_factors + theorem Associates.finprod_ne_zero + theorem Ideal.finite_factors + theorem Ideal.finite_mulSupport + theorem Ideal.finite_mulSupport_coe + theorem Ideal.finite_mulSupport_inv + theorem Ideal.finprod_count + theorem Ideal.finprod_heightOneSpectrum_factorization + theorem Ideal.finprod_heightOneSpectrum_factorization_coe + theorem Ideal.finprod_not_dvd + def IsDedekindDomain.HeightOneSpectrum.maxPowDividing 2023-06-06 10:51:56 6f0499b feat: port LinearAlgebra.QuadraticForm.Isometry (#4703) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/LinearAlgebra/QuadraticForm/Isometry.lean + theorem QuadraticForm.Equivalent.refl + theorem QuadraticForm.Equivalent.symm + theorem QuadraticForm.Equivalent.trans + def QuadraticForm.Equivalent + theorem QuadraticForm.Isometry.coe_toLinearEquiv + theorem QuadraticForm.Isometry.map_app + def QuadraticForm.Isometry.refl + def QuadraticForm.Isometry.symm + def QuadraticForm.Isometry.trans + structure QuadraticForm.Isometry + theorem QuadraticForm.equivalent_weightedSumSquares + theorem QuadraticForm.equivalent_weightedSumSquares_units_of_nondegenerate' + def QuadraticForm.isometryOfCompLinearEquiv 2023-06-06 20:24:46+10:00 7c49857 chore: don't run bors on hoskinson either (#4729) * don't run bors on hoskinson either ESTIMATED CHANGES Modified .github/workflows/bors.yml 2023-06-06 11:09:53+01:00 c2b9648 Revert "chore: run CI on Hoskinson machines (#4539)" (#4726) This reverts commit 18b622df767cc9ef272454f416192a53e52a41e4. ESTIMATED CHANGES Modified .github/workflows/bors.yml Modified .github/workflows/build.yml Modified .github/workflows/build.yml.in 2023-06-06 06:00:22 c340d96 feat: port MeasureTheory.Measure.WithDensityVectorMeasure (#4715) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/MeasureTheory/Measure/VectorMeasure.lean + def MeasureTheory.Measure.toENNRealVectorMeasure + theorem MeasureTheory.Measure.toENNRealVectorMeasure_add + theorem MeasureTheory.Measure.toENNRealVectorMeasure_apply_measurable + theorem MeasureTheory.Measure.toENNRealVectorMeasure_zero - def MeasureTheory.Measure.toEnnrealVectorMeasure - theorem MeasureTheory.Measure.toEnnrealVectorMeasure_add - theorem MeasureTheory.Measure.toEnnrealVectorMeasure_apply_measurable - theorem MeasureTheory.Measure.toEnnrealVectorMeasure_zero Added Mathlib/MeasureTheory/Measure/WithDensityVectorMeasure.lean + theorem MeasureTheory.Integrable.ae_eq_of_withDensityᵥ_eq + theorem MeasureTheory.Integrable.withDensityᵥ_eq_iff + theorem MeasureTheory.Integrable.withDensityᵥ_trim_absolutelyContinuous + theorem MeasureTheory.Integrable.withDensityᵥ_trim_eq_integral + def MeasureTheory.Measure.withDensityᵥ + theorem MeasureTheory.Measure.withDensityᵥ_absolutelyContinuous + theorem MeasureTheory.WithDensityᵥEq.congr_ae + theorem MeasureTheory.withDensityᵥ_add' + theorem MeasureTheory.withDensityᵥ_add + theorem MeasureTheory.withDensityᵥ_apply + theorem MeasureTheory.withDensityᵥ_eq_withDensity_pos_part_sub_withDensity_neg_part + theorem MeasureTheory.withDensityᵥ_neg' + theorem MeasureTheory.withDensityᵥ_neg + theorem MeasureTheory.withDensityᵥ_smul' + theorem MeasureTheory.withDensityᵥ_smul + theorem MeasureTheory.withDensityᵥ_sub' + theorem MeasureTheory.withDensityᵥ_sub + theorem MeasureTheory.withDensityᵥ_toReal + theorem MeasureTheory.withDensityᵥ_zero 2023-06-06 05:42:33 3df2a02 feat: more API for the left homology of short complexes (#4645) This PR develops the API for the left homology of short complexes: properties of morphisms induced on (left) homology by morphisms of short complexes. ESTIMATED CHANGES Modified Mathlib/Algebra/Homology/ShortComplex/LeftHomology.lean + theorem CategoryTheory.ShortComplex.LeftHomologyData.cyclesIso_hom_comp_i + theorem CategoryTheory.ShortComplex.LeftHomologyData.cyclesIso_inv_comp_iCycles + theorem CategoryTheory.ShortComplex.LeftHomologyMapData.cyclesMap'_eq + theorem CategoryTheory.ShortComplex.LeftHomologyMapData.cyclesMap_comm + theorem CategoryTheory.ShortComplex.LeftHomologyMapData.cyclesMap_eq + theorem CategoryTheory.ShortComplex.LeftHomologyMapData.leftHomologyMap'_eq + theorem CategoryTheory.ShortComplex.LeftHomologyMapData.leftHomologyMap_comm + theorem CategoryTheory.ShortComplex.LeftHomologyMapData.leftHomologyMap_eq + theorem CategoryTheory.ShortComplex.cyclesMap'_comp + theorem CategoryTheory.ShortComplex.cyclesMap'_id + theorem CategoryTheory.ShortComplex.cyclesMap'_zero + def CategoryTheory.ShortComplex.cyclesMapIso' + theorem CategoryTheory.ShortComplex.cyclesMap_comp + theorem CategoryTheory.ShortComplex.cyclesMap_id + theorem CategoryTheory.ShortComplex.cyclesMap_zero + theorem CategoryTheory.ShortComplex.leftHomologyMap'_comp + theorem CategoryTheory.ShortComplex.leftHomologyMap'_id + theorem CategoryTheory.ShortComplex.leftHomologyMap'_zero + def CategoryTheory.ShortComplex.leftHomologyMapIso' + theorem CategoryTheory.ShortComplex.leftHomologyMap_comp + theorem CategoryTheory.ShortComplex.leftHomologyMap_id + theorem CategoryTheory.ShortComplex.leftHomologyMap_zero 2023-06-06 05:32:12 c6a63ba feat: port FieldTheory.SplittingField.IsSplittingField (#4714) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/FieldTheory/SplittingField/IsSplittingField.lean + theorem IntermediateField.splits_of_splits + theorem Polynomial.IsSplittingField.adjoin_roots + theorem Polynomial.IsSplittingField.finiteDimensional + def Polynomial.IsSplittingField.lift + theorem Polynomial.IsSplittingField.mul + theorem Polynomial.IsSplittingField.of_algEquiv + theorem Polynomial.IsSplittingField.splits + theorem Polynomial.IsSplittingField.splits_iff 2023-06-06 05:22:21 43edd54 feat: port Analysis.SpecialFunctions.Trigonometric.Series (#4717) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/SpecialFunctions/Trigonometric/Series.lean + theorem Complex.cos_eq_tsum' + theorem Complex.cos_eq_tsum + theorem Complex.hasSum_cos' + theorem Complex.hasSum_cos + theorem Complex.hasSum_sin' + theorem Complex.hasSum_sin + theorem Complex.sin_eq_tsum' + theorem Complex.sin_eq_tsum + theorem Real.cos_eq_tsum + theorem Real.hasSum_cos + theorem Real.hasSum_sin + theorem Real.sin_eq_tsum 2023-06-06 05:22:20 d2f957d feat: port Combinatorics.Derangements.Exponential (#4716) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Combinatorics/Derangements/Exponential.lean + theorem numDerangements_tendsto_inv_e 2023-06-06 04:51:00 b8326f9 feat: port Analysis.SpecialFunctions.Exponential (#4713) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/SpecialFunctions/Exponential.lean + theorem Complex.exp_eq_exp_ℂ + theorem Real.exp_eq_exp_ℝ + theorem hasDerivAt_exp + theorem hasDerivAt_exp_of_mem_ball + theorem hasDerivAt_exp_smul_const' + theorem hasDerivAt_exp_smul_const + theorem hasDerivAt_exp_smul_const_of_mem_ball' + theorem hasDerivAt_exp_smul_const_of_mem_ball + theorem hasDerivAt_exp_zero + theorem hasDerivAt_exp_zero_of_radius_pos + theorem hasFDerivAt_exp + theorem hasFDerivAt_exp_of_mem_ball + theorem hasFDerivAt_exp_smul_const' + theorem hasFDerivAt_exp_smul_const + theorem hasFDerivAt_exp_smul_const_of_mem_ball' + theorem hasFDerivAt_exp_smul_const_of_mem_ball + theorem hasFDerivAt_exp_zero + theorem hasFDerivAt_exp_zero_of_radius_pos + theorem hasStrictDerivAt_exp + theorem hasStrictDerivAt_exp_of_mem_ball + theorem hasStrictDerivAt_exp_smul_const' + theorem hasStrictDerivAt_exp_smul_const + theorem hasStrictDerivAt_exp_smul_const_of_mem_ball' + theorem hasStrictDerivAt_exp_smul_const_of_mem_ball + theorem hasStrictDerivAt_exp_zero + theorem hasStrictDerivAt_exp_zero_of_radius_pos + theorem hasStrictFDerivAt_exp + theorem hasStrictFDerivAt_exp_of_mem_ball + theorem hasStrictFDerivAt_exp_smul_const' + theorem hasStrictFDerivAt_exp_smul_const + theorem hasStrictFDerivAt_exp_smul_const_of_mem_ball' + theorem hasStrictFDerivAt_exp_smul_const_of_mem_ball + theorem hasStrictFDerivAt_exp_zero + theorem hasStrictFDerivAt_exp_zero_of_radius_pos Modified Mathlib/Data/Complex/Basic.lean 2023-06-06 04:38:40 aecdd16 feat: port MeasureTheory.Function.AEEqOfIntegral (#4711) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/MeasureTheory/Function/AEEqOfIntegral.lean + theorem MeasureTheory.AEFinStronglyMeasurable.ae_eq_of_forall_set_integral_eq + theorem MeasureTheory.AEFinStronglyMeasurable.ae_eq_zero_of_forall_set_integral_eq_zero + theorem MeasureTheory.AEFinStronglyMeasurable.ae_nonneg_of_forall_set_integral_nonneg + theorem MeasureTheory.AeMeasurable.ae_eq_of_forall_set_lintegral_eq + theorem MeasureTheory.Integrable.ae_eq_of_forall_set_integral_eq + theorem MeasureTheory.Integrable.ae_eq_zero_of_forall_set_integral_eq_zero + theorem MeasureTheory.Lp.ae_eq_of_forall_set_integral_eq + theorem MeasureTheory.Lp.ae_eq_zero_of_forall_set_integral_eq_zero + theorem MeasureTheory.ae_const_le_iff_forall_lt_measure_zero + theorem MeasureTheory.ae_eq_of_forall_set_integral_eq_of_sigmaFinite + theorem MeasureTheory.ae_eq_of_forall_set_lintegral_eq_of_sigmaFinite + theorem MeasureTheory.ae_eq_restrict_of_forall_set_integral_eq + theorem MeasureTheory.ae_eq_zero_of_forall_dual + theorem MeasureTheory.ae_eq_zero_of_forall_dual_of_isSeparable + theorem MeasureTheory.ae_eq_zero_of_forall_inner + theorem MeasureTheory.ae_eq_zero_of_forall_set_integral_eq_of_finStronglyMeasurable_trim + theorem MeasureTheory.ae_eq_zero_of_forall_set_integral_eq_of_sigmaFinite + theorem MeasureTheory.ae_eq_zero_restrict_of_forall_set_integral_eq_zero + theorem MeasureTheory.ae_eq_zero_restrict_of_forall_set_integral_eq_zero_real + theorem MeasureTheory.ae_le_of_forall_set_integral_le + theorem MeasureTheory.ae_le_of_forall_set_lintegral_le_of_sigmaFinite + theorem MeasureTheory.ae_nonneg_of_forall_set_integral_nonneg + theorem MeasureTheory.ae_nonneg_of_forall_set_integral_nonneg_of_sigmaFinite + theorem MeasureTheory.ae_nonneg_of_forall_set_integral_nonneg_of_stronglyMeasurable + theorem MeasureTheory.ae_nonneg_restrict_of_forall_set_integral_nonneg + theorem MeasureTheory.ae_nonneg_restrict_of_forall_set_integral_nonneg_inter 2023-06-06 04:38:39 1e174d9 feat: port MeasureTheory.Measure.Haar.InnerProductSpace (#4708) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/MeasureTheory/Measure/Haar/InnerProductSpace.lean + theorem Orientation.measure_eq_volume + theorem Orientation.measure_orthonormalBasis + theorem OrthonormalBasis.volume_parallelepiped 2023-06-06 04:38:38 aee1925 feat: port GroupTheory.Schreier (#4706) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/GroupTheory/Schreier.lean + def Subgroup.cardCommutatorBound + theorem Subgroup.card_commutator_dvd_index_center_pow + theorem Subgroup.card_commutator_le_of_finite_commutatorSet + theorem Subgroup.closure_mul_image_eq + theorem Subgroup.closure_mul_image_eq_top' + theorem Subgroup.closure_mul_image_eq_top + theorem Subgroup.closure_mul_image_mul_eq_top + theorem Subgroup.exists_finset_card_le_mul + theorem Subgroup.rank_le_index_mul_rank 2023-06-06 04:28:38 6c77281 feat: port MeasureTheory.Integral.Average (#4709) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/MeasureTheory/Integral/Average.lean + theorem MeasureTheory.average_add_measure + theorem MeasureTheory.average_congr + theorem MeasureTheory.average_const + theorem MeasureTheory.average_eq' + theorem MeasureTheory.average_eq + theorem MeasureTheory.average_eq_integral + theorem MeasureTheory.average_mem_openSegment_compl_self + theorem MeasureTheory.average_neg + theorem MeasureTheory.average_pair + theorem MeasureTheory.average_union + theorem MeasureTheory.average_union_mem_openSegment + theorem MeasureTheory.average_union_mem_segment + theorem MeasureTheory.average_zero + theorem MeasureTheory.average_zero_measure + theorem MeasureTheory.measure_smul_average + theorem MeasureTheory.measure_smul_set_average + theorem MeasureTheory.set_average_const + theorem MeasureTheory.set_average_eq' + theorem MeasureTheory.set_average_eq 2023-06-06 04:18:15 4db78bd feat: port CategoryTheory.Closed.FunctorCategory (#4686) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Closed/FunctorCategory.lean + def CategoryTheory.Functor.closedCounit + def CategoryTheory.Functor.closedIhom + def CategoryTheory.Functor.closedUnit + theorem CategoryTheory.Functor.ihom_coev_app + theorem CategoryTheory.Functor.ihom_ev_app + theorem CategoryTheory.Functor.ihom_map 2023-06-06 03:55:35 9aaa599 feat: port CategoryTheory.WithTerminal (#2630) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/WithTerminal.lean + def CategoryTheory.WithInitial.Hom + def CategoryTheory.WithInitial.comp + def CategoryTheory.WithInitial.down + theorem CategoryTheory.WithInitial.down_comp + theorem CategoryTheory.WithInitial.down_id + theorem CategoryTheory.WithInitial.false_of_to_star + def CategoryTheory.WithInitial.homTo + def CategoryTheory.WithInitial.id + def CategoryTheory.WithInitial.incl + def CategoryTheory.WithInitial.inclLift + def CategoryTheory.WithInitial.inclLiftToInitial + def CategoryTheory.WithInitial.lift + def CategoryTheory.WithInitial.liftStar + theorem CategoryTheory.WithInitial.liftStar_lift_map + def CategoryTheory.WithInitial.liftToInitial + def CategoryTheory.WithInitial.liftToInitialUnique + def CategoryTheory.WithInitial.liftUnique + def CategoryTheory.WithInitial.map + def CategoryTheory.WithInitial.starInitial + inductive CategoryTheory.WithInitial + def CategoryTheory.WithTerminal.Hom + def CategoryTheory.WithTerminal.comp + def CategoryTheory.WithTerminal.down + theorem CategoryTheory.WithTerminal.down_comp + theorem CategoryTheory.WithTerminal.down_id + theorem CategoryTheory.WithTerminal.false_of_from_star + def CategoryTheory.WithTerminal.homFrom + def CategoryTheory.WithTerminal.id + def CategoryTheory.WithTerminal.incl + def CategoryTheory.WithTerminal.inclLift + def CategoryTheory.WithTerminal.inclLiftToTerminal + def CategoryTheory.WithTerminal.lift + def CategoryTheory.WithTerminal.liftStar + def CategoryTheory.WithTerminal.liftToTerminal + def CategoryTheory.WithTerminal.liftToTerminalUnique + def CategoryTheory.WithTerminal.liftUnique + theorem CategoryTheory.WithTerminal.lift_map_liftStar + def CategoryTheory.WithTerminal.map + def CategoryTheory.WithTerminal.starTerminal + inductive CategoryTheory.WithTerminal 2023-06-06 03:44:29 f03ab11 feat: port Algebra.Category.Module.Monoidal.Closed (#4696) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Category/ModuleCat/Monoidal/Closed.lean + theorem ModuleCat.ihom_coev_app + theorem ModuleCat.ihom_ev_app + theorem ModuleCat.ihom_map_apply + def ModuleCat.monoidalClosedHomEquiv + theorem ModuleCat.monoidalClosed_curry + theorem ModuleCat.monoidalClosed_pre_app + theorem ModuleCat.monoidalClosed_uncurry 2023-06-06 03:26:14 34d928e chore: forward-port leanprover-community/mathlib#18981 (#4667) ESTIMATED CHANGES Modified Mathlib/Analysis/Convex/Between.lean + theorem affineSegment_same 2023-06-06 03:17:54 c863067 feat: use new problem matcher output for annotating linter fails (#4460) ESTIMATED CHANGES Modified .github/workflows/bors.yml Modified .github/workflows/build.yml Modified .github/workflows/build.yml.in Modified .github/workflows/build_fork.yml Modified scripts/runLinter.lean 2023-06-06 00:38:15 7d6d728 feat: port MeasureTheory.Integral.SetIntegral (#4690) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/MeasureTheory/Integral/SetIntegral.lean + theorem Antitone.tendsto_set_integral + theorem ClosedEmbedding.set_integral_map + theorem ContinuousAt.integral_sub_linear_isLittleO_ae + theorem ContinuousLinearEquiv.integral_comp_comm + theorem ContinuousLinearMap.continuous_integral_comp_L1 + theorem ContinuousLinearMap.integral_apply + theorem ContinuousLinearMap.integral_compLp + theorem ContinuousLinearMap.integral_comp_L1_comm + theorem ContinuousLinearMap.integral_comp_comm' + theorem ContinuousLinearMap.integral_comp_comm + theorem ContinuousLinearMap.set_integral_compLp + theorem ContinuousOn.integral_sub_linear_isLittleO_ae + theorem ContinuousWithinAt.integral_sub_linear_isLittleO_ae + theorem Filter.Tendsto.integral_sub_linear_isLittleO_ae + theorem LinearIsometry.integral_comp_comm + theorem MeasurableEmbedding.set_integral_map + theorem MeasureTheory.Integrable.simpleFunc_mul' + theorem MeasureTheory.Integrable.simpleFunc_mul + def MeasureTheory.LpToLpRestrictCLM + theorem MeasureTheory.LpToLpRestrictCLM_coeFn + theorem MeasureTheory.Lp_toLp_restrict_add + theorem MeasureTheory.Lp_toLp_restrict_smul + theorem MeasureTheory.MeasurePreserving.set_integral_image_emb + theorem MeasureTheory.MeasurePreserving.set_integral_preimage_emb + theorem MeasureTheory.continuous_set_integral + theorem MeasureTheory.hasSum_integral_iUnion + theorem MeasureTheory.hasSum_integral_iUnion_ae + theorem MeasureTheory.integrableOn_iUnion_of_summable_integral_norm + theorem MeasureTheory.integrableOn_iUnion_of_summable_norm_restrict + theorem MeasureTheory.integrable_of_summable_norm_restrict + theorem MeasureTheory.integral_Icc_eq_integral_Ico' + theorem MeasureTheory.integral_Icc_eq_integral_Ico + theorem MeasureTheory.integral_Icc_eq_integral_Ioc' + theorem MeasureTheory.integral_Icc_eq_integral_Ioc + theorem MeasureTheory.integral_Icc_eq_integral_Ioo' + theorem MeasureTheory.integral_Icc_eq_integral_Ioo + theorem MeasureTheory.integral_Ici_eq_integral_Ioi' + theorem MeasureTheory.integral_Ici_eq_integral_Ioi + theorem MeasureTheory.integral_Ico_eq_integral_Ioo' + theorem MeasureTheory.integral_Ico_eq_integral_Ioo + theorem MeasureTheory.integral_Iic_eq_integral_Iio' + theorem MeasureTheory.integral_Iic_eq_integral_Iio + theorem MeasureTheory.integral_Ioc_eq_integral_Ioo' + theorem MeasureTheory.integral_Ioc_eq_integral_Ioo + theorem MeasureTheory.integral_add_compl + theorem MeasureTheory.integral_add_compl₀ + theorem MeasureTheory.integral_diff + theorem MeasureTheory.integral_empty + theorem MeasureTheory.integral_finset_biUnion + theorem MeasureTheory.integral_fintype_iUnion + theorem MeasureTheory.integral_iUnion + theorem MeasureTheory.integral_iUnion_ae + theorem MeasureTheory.integral_indicator + theorem MeasureTheory.integral_indicatorConstLp + theorem MeasureTheory.integral_indicator_const + theorem MeasureTheory.integral_indicator_one + theorem MeasureTheory.integral_inter_add_diff + theorem MeasureTheory.integral_inter_add_diff₀ + theorem MeasureTheory.integral_norm_eq_pos_sub_neg + theorem MeasureTheory.integral_piecewise + theorem MeasureTheory.integral_union + theorem MeasureTheory.integral_union_ae + theorem MeasureTheory.integral_union_eq_left_of_ae + theorem MeasureTheory.integral_union_eq_left_of_ae_aux + theorem MeasureTheory.integral_union_eq_left_of_forall + theorem MeasureTheory.integral_union_eq_left_of_forall₀ + theorem MeasureTheory.integral_univ + theorem MeasureTheory.norm_Lp_toLp_restrict_le + theorem MeasureTheory.norm_set_integral_le_of_norm_le_const' + theorem MeasureTheory.norm_set_integral_le_of_norm_le_const + theorem MeasureTheory.norm_set_integral_le_of_norm_le_const_ae'' + theorem MeasureTheory.norm_set_integral_le_of_norm_le_const_ae' + theorem MeasureTheory.norm_set_integral_le_of_norm_le_const_ae + theorem MeasureTheory.ofReal_set_integral_one + theorem MeasureTheory.ofReal_set_integral_one_of_measure_ne_top + theorem MeasureTheory.set_integral_congr + theorem MeasureTheory.set_integral_congr_ae + theorem MeasureTheory.set_integral_congr_ae₀ + theorem MeasureTheory.set_integral_congr_set_ae + theorem MeasureTheory.set_integral_congr₀ + theorem MeasureTheory.set_integral_const + theorem MeasureTheory.set_integral_eq_integral_of_ae_compl_eq_zero + theorem MeasureTheory.set_integral_eq_integral_of_forall_compl_eq_zero + theorem MeasureTheory.set_integral_eq_of_subset_of_ae_diff_eq_zero + theorem MeasureTheory.set_integral_eq_of_subset_of_ae_diff_eq_zero_aux + theorem MeasureTheory.set_integral_eq_of_subset_of_forall_diff_eq_zero + theorem MeasureTheory.set_integral_eq_zero_iff_of_nonneg_ae + theorem MeasureTheory.set_integral_eq_zero_of_ae_eq_zero + theorem MeasureTheory.set_integral_eq_zero_of_forall_eq_zero + theorem MeasureTheory.set_integral_ge_of_const_le + theorem MeasureTheory.set_integral_gt_gt + theorem MeasureTheory.set_integral_indicator + theorem MeasureTheory.set_integral_indicatorConstLp + theorem MeasureTheory.set_integral_le_nonneg + theorem MeasureTheory.set_integral_map + theorem MeasureTheory.set_integral_map_equiv + theorem MeasureTheory.set_integral_mono + theorem MeasureTheory.set_integral_mono_ae + theorem MeasureTheory.set_integral_mono_ae_restrict + theorem MeasureTheory.set_integral_mono_on + theorem MeasureTheory.set_integral_mono_on_ae + theorem MeasureTheory.set_integral_mono_set + theorem MeasureTheory.set_integral_neg_eq_set_integral_nonpos + theorem MeasureTheory.set_integral_nonneg + theorem MeasureTheory.set_integral_nonneg_ae + theorem MeasureTheory.set_integral_nonneg_of_ae + theorem MeasureTheory.set_integral_nonneg_of_ae_restrict + theorem MeasureTheory.set_integral_nonpos + theorem MeasureTheory.set_integral_nonpos_ae + theorem MeasureTheory.set_integral_nonpos_le + theorem MeasureTheory.set_integral_nonpos_of_ae + theorem MeasureTheory.set_integral_nonpos_of_ae_restrict + theorem MeasureTheory.set_integral_pos_iff_support_of_nonneg_ae + theorem MeasureTheory.set_integral_trim + theorem MeasureTheory.tendsto_set_integral_of_monotone + theorem fst_integral + theorem integral_coe_re_add_coe_im + theorem integral_conj + theorem integral_im + theorem integral_of_real + theorem integral_pair + theorem integral_re + theorem integral_re_add_im + theorem integral_smul_const + theorem integral_withDensity_eq_integral_smul + theorem integral_withDensity_eq_integral_smul₀ + theorem measure_le_lintegral_thickenedIndicator + theorem measure_le_lintegral_thickenedIndicatorAux + theorem set_integral_re_add_im + theorem set_integral_withDensity_eq_set_integral_smul + theorem set_integral_withDensity_eq_set_integral_smul₀ + theorem snd_integral 2023-06-05 20:26:05 47535dd feat: port Algebra.Module.DedekindDomain (#4705) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Module/DedekindDomain.lean + theorem Submodule.exists_isInternal_prime_power_torsion + theorem Submodule.isInternal_prime_power_torsion + theorem Submodule.isInternal_prime_power_torsion_of_is_torsion_by_ideal 2023-06-05 20:26:04 b895b18 feat: port MeasureTheory.Measure.Haar.NormedSpace (#4704) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/MeasureTheory/Measure/Haar/NormedSpace.lean + theorem MeasureTheory.Integrable.comp_div + theorem MeasureTheory.Integrable.comp_mul_left' + theorem MeasureTheory.Integrable.comp_mul_right' + theorem MeasureTheory.Integrable.comp_smul + theorem MeasureTheory.Measure.integral_comp_div + theorem MeasureTheory.Measure.integral_comp_inv_mul_left + theorem MeasureTheory.Measure.integral_comp_inv_mul_right + theorem MeasureTheory.Measure.integral_comp_inv_smul + theorem MeasureTheory.Measure.integral_comp_inv_smul_of_nonneg + theorem MeasureTheory.Measure.integral_comp_mul_left + theorem MeasureTheory.Measure.integral_comp_mul_right + theorem MeasureTheory.Measure.integral_comp_smul + theorem MeasureTheory.Measure.integral_comp_smul_of_nonneg + theorem MeasureTheory.integrable_comp_div_iff + theorem MeasureTheory.integrable_comp_mul_left_iff + theorem MeasureTheory.integrable_comp_mul_right_iff + theorem MeasureTheory.integrable_comp_smul_iff 2023-06-05 20:15:20 cac0cba feat: port Topology.ContinuousFunction.StoneWeierstrass (#4701) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Topology/ContinuousFunction/StoneWeierstrass.lean + def ContinuousMap.ConjInvariantSubalgebra + theorem ContinuousMap.abs_mem_subalgebra_closure + def ContinuousMap.attachBound + theorem ContinuousMap.attachBound_apply_coe + theorem ContinuousMap.comp_attachBound_mem_closure + theorem ContinuousMap.continuousMap_mem_subalgebra_closure_of_separatesPoints + theorem ContinuousMap.exists_mem_subalgebra_near_continuousMap_of_separatesPoints + theorem ContinuousMap.exists_mem_subalgebra_near_continuous_of_separatesPoints + theorem ContinuousMap.inf_mem_closed_subalgebra + theorem ContinuousMap.inf_mem_subalgebra_closure + theorem ContinuousMap.mem_conjInvariantSubalgebra + theorem ContinuousMap.polynomial_comp_attachBound + theorem ContinuousMap.polynomial_comp_attachBound_mem + theorem ContinuousMap.subalgebraConjInvariant + theorem ContinuousMap.subalgebra_isROrC_topologicalClosure_eq_top_of_separatesPoints + theorem ContinuousMap.subalgebra_topologicalClosure_eq_top_of_separatesPoints + theorem ContinuousMap.sublattice_closure_eq_top + theorem ContinuousMap.sup_mem_closed_subalgebra + theorem ContinuousMap.sup_mem_subalgebra_closure + theorem Subalgebra.SeparatesPoints.isROrC_to_real 2023-06-05 19:04:19 d759934 feat: port Algebra.Lie.DirectSum (#4684) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Lie/DirectSum.lean + theorem DirectSum.bracket_apply + def DirectSum.lieAlgebraComponent + def DirectSum.lieAlgebraOf + theorem DirectSum.lieAlgebra_ext + def DirectSum.lieModuleComponent + def DirectSum.lieModuleOf + theorem DirectSum.lie_module_bracket_apply + theorem DirectSum.lie_of + theorem DirectSum.lie_of_of_eq + theorem DirectSum.lie_of_of_ne + def DirectSum.toLieAlgebra 2023-06-05 17:16:23 db83690 feat: golf using `gcongr` throughout the library (#4702) 100 sample uses of the new tactic `gcongr`, added in #3965. ESTIMATED CHANGES Modified Mathlib/Analysis/Asymptotics/AsymptoticEquivalent.lean Modified Mathlib/Analysis/Asymptotics/Asymptotics.lean Modified Mathlib/Analysis/Asymptotics/SpecificAsymptotics.lean Modified Mathlib/Analysis/Asymptotics/SuperpolynomialDecay.lean Modified Mathlib/Analysis/BoxIntegral/Box/Basic.lean Modified Mathlib/Analysis/Convex/Star.lean Modified Mathlib/Analysis/Hofer.lean Modified Mathlib/Analysis/Normed/Field/Basic.lean Modified Mathlib/Analysis/Normed/Field/InfiniteSum.lean Modified Mathlib/Analysis/Normed/Group/Basic.lean Modified Mathlib/Analysis/Normed/Group/ControlledClosure.lean Modified Mathlib/Analysis/Normed/Group/Hom.lean Modified Mathlib/Analysis/Normed/Group/HomCompletion.lean Modified Mathlib/Analysis/Normed/Group/Seminorm.lean Modified Mathlib/Analysis/Normed/MulAction.lean Modified Mathlib/Analysis/NormedSpace/Basic.lean Modified Mathlib/Analysis/NormedSpace/RieszLemma.lean Modified Mathlib/Analysis/Seminorm.lean Modified Mathlib/Analysis/SpecificLimits/Basic.lean Modified Mathlib/Combinatorics/Additive/PluenneckeRuzsa.lean Modified Mathlib/Combinatorics/SimpleGraph/Density.lean Modified Mathlib/Combinatorics/SimpleGraph/Regularity/Uniform.lean Modified Mathlib/Combinatorics/SimpleGraph/Triangle/Basic.lean Modified Mathlib/Data/Complex/Exponential.lean Modified Mathlib/Data/Nat/Choose/Sum.lean Modified Mathlib/Data/Real/CauSeq.lean Modified Mathlib/Dynamics/Circle/RotationNumber/TranslationNumber.lean Modified Mathlib/Order/Filter/Archimedean.lean Modified Mathlib/Topology/Algebra/Polynomial.lean Modified Mathlib/Topology/MetricSpace/Antilipschitz.lean Modified Mathlib/Topology/MetricSpace/EMetricParacompact.lean Modified Mathlib/Topology/MetricSpace/Lipschitz.lean Modified Mathlib/Topology/UrysohnsLemma.lean 2023-06-05 17:06:02 17f92ef feat: port GroupTheory.Transfer (#4482) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/GroupTheory/Transfer.lean + theorem MonoidHom.ker_transferSylow_disjoint + theorem MonoidHom.ker_transferSylow_isComplement' + theorem MonoidHom.not_dvd_card_ker_transferSylow + theorem MonoidHom.transferCenterPow_apply + theorem MonoidHom.transferSylow_eq_pow + theorem MonoidHom.transferSylow_restrict_eq_pow + theorem MonoidHom.transfer_center_eq_pow + theorem MonoidHom.transfer_def + theorem MonoidHom.transfer_eq_pow + theorem MonoidHom.transfer_eq_pow_aux + theorem MonoidHom.transfer_eq_prod_quotient_orbitRel_zpowers_quot + theorem MonoidHom.transfer_sylow_eq_pow_aux + theorem Subgroup.leftTransversals.diff_inv + theorem Subgroup.leftTransversals.diff_mul_diff + theorem Subgroup.leftTransversals.diff_self + theorem Subgroup.leftTransversals.smul_diff_smul 2023-06-05 16:53:44 f08cd34 feat: port RingTheory.DedekindDomain.Ideal (#4630) - An instance from `RingTheory.FractionalIdeal` was used explicitly so I had to give it a name - At three places, an `equiv` is defined and the lemmas produced by `[simps]` (or `[simps!]`) make the simpNF linter very unhappy so I commented out the `[simps]` and left a porting note ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/RingTheory/DedekindDomain/Ideal.lean + theorem Associates.le_singleton_iff + theorem FractionalIdeal.adjoinIntegral_eq_one_of_isUnit + theorem FractionalIdeal.coe_ideal_le_self_mul_inv + theorem FractionalIdeal.coe_ideal_mul_inv + theorem FractionalIdeal.coe_ideal_span_singleton_div_self + theorem FractionalIdeal.coe_ideal_span_singleton_inv_mul + theorem FractionalIdeal.coe_ideal_span_singleton_mul_inv + theorem FractionalIdeal.coe_inv_of_nonzero + theorem FractionalIdeal.exists_not_mem_one_of_ne_bot + theorem FractionalIdeal.inv_anti_mono + theorem FractionalIdeal.inv_eq + theorem FractionalIdeal.inv_nonzero + theorem FractionalIdeal.inv_zero' + theorem FractionalIdeal.invertible_iff_generator_nonzero + theorem FractionalIdeal.invertible_of_principal + theorem FractionalIdeal.isPrincipal_inv + theorem FractionalIdeal.le_self_mul_inv + theorem FractionalIdeal.map_inv + theorem FractionalIdeal.mem_inv_iff + theorem FractionalIdeal.mul_generator_self_inv + theorem FractionalIdeal.mul_inv_cancel_iff + theorem FractionalIdeal.mul_inv_cancel_iff_isUnit + theorem FractionalIdeal.mul_inv_cancel_of_le_one + theorem FractionalIdeal.mul_left_le_iff + theorem FractionalIdeal.mul_left_strictMono + theorem FractionalIdeal.mul_right_le_iff + theorem FractionalIdeal.mul_right_strictMono + theorem FractionalIdeal.one_mem_inv_coe_ideal + theorem FractionalIdeal.right_inverse_eq + theorem FractionalIdeal.spanSingleton_div_self + theorem FractionalIdeal.spanSingleton_div_spanSingleton + theorem FractionalIdeal.spanSingleton_inv + theorem FractionalIdeal.spanSingleton_inv_mul + theorem FractionalIdeal.spanSingleton_mul_inv + theorem Ideal.IsPrime.mul_mem_pow + theorem Ideal.coprime_of_no_prime_ge + theorem Ideal.count_normalizedFactors_eq + theorem Ideal.dvdNotUnit_iff_lt + theorem Ideal.dvd_iff_le + theorem Ideal.dvd_span_singleton + theorem Ideal.eq_prime_pow_of_succ_lt_of_le + theorem Ideal.exist_integer_multiples_not_mem + theorem Ideal.exists_mem_pow_not_mem_pow_succ + theorem Ideal.gcd_eq_sup + theorem Ideal.inf_eq_mul_of_coprime + theorem Ideal.isPrime_iff_bot_or_prime + theorem Ideal.isPrime_of_prime + theorem Ideal.lcm_eq_inf + theorem Ideal.le_mul_of_no_prime_factors + theorem Ideal.le_of_pow_le_prime + theorem Ideal.pow_le_prime_iff + theorem Ideal.pow_lt_self + theorem Ideal.pow_succ_lt_pow + theorem Ideal.prime_iff_isPrime + theorem Ideal.prime_of_isPrime + theorem Ideal.prod_le_prime + theorem Ideal.strictAnti_pow + theorem Ideal.sup_mul_inf + theorem IsDedekindDomain.HeightOneSpectrum.associates_irreducible + def IsDedekindDomain.HeightOneSpectrum.equivMaximalSpectrum + theorem IsDedekindDomain.HeightOneSpectrum.iInf_localization_eq_bot + theorem IsDedekindDomain.HeightOneSpectrum.irreducible + theorem IsDedekindDomain.HeightOneSpectrum.prime + structure IsDedekindDomain.HeightOneSpectrum + theorem IsDedekindDomain.exists_forall_sub_mem_ideal + theorem IsDedekindDomain.exists_representative_mod_finset + theorem IsDedekindDomain.inf_prime_pow_eq_prod + theorem IsDedekindDomain.quotientEquivPiFactors_mk + theorem IsDedekindDomainInv.dimensionLeOne + theorem IsDedekindDomainInv.integrallyClosed + theorem IsDedekindDomainInv.inv_mul_eq_one + theorem IsDedekindDomainInv.isDedekindDomain + theorem IsDedekindDomainInv.isNoetherianRing + theorem IsDedekindDomainInv.mul_inv_eq_one + def IsDedekindDomainInv + theorem Ring.DimensionLeOne.prime_le_prime_iff_eq + theorem count_le_of_ideal_ge + theorem exists_multiset_prod_cons_le_and_prod_not_le + def idealFactorsEquivOfQuotEquiv + theorem idealFactorsEquivOfQuotEquiv_is_dvd_iso + theorem idealFactorsEquivOfQuotEquiv_mem_normalizedFactors_of_mem_normalizedFactors + theorem idealFactorsEquivOfQuotEquiv_symm + def idealFactorsFunOfQuotHom + theorem idealFactorsFunOfQuotHom_comp + theorem idealFactorsFunOfQuotHom_id + theorem irreducible_pow_sup + theorem irreducible_pow_sup_of_ge + theorem irreducible_pow_sup_of_le + theorem isDedekindDomainInv_iff + theorem isDedekindDomain_iff_isDedekindDomainInv + theorem multiplicity_eq_multiplicity_span + theorem multiplicity_normalizedFactorsEquivSpanNormalizedFactors_eq_multiplicity + theorem multiplicity_normalizedFactorsEquivSpanNormalizedFactors_symm_eq_multiplicity + def normalizedFactorsEquivOfQuotEquiv + theorem normalizedFactorsEquivOfQuotEquiv_multiplicity_eq_multiplicity + theorem normalizedFactorsEquivOfQuotEquiv_symm + theorem prod_normalizedFactors_eq_self + theorem singleton_span_mem_normalizedFactors_of_mem_normalizedFactors + theorem span_singleton_dvd_span_singleton_iff_dvd + theorem sup_eq_prod_inf_factors Modified Mathlib/RingTheory/FractionalIdeal.lean 2023-06-05 16:18:42 cab32c9 feat: port Topology.ContinuousFunction.Weierstrass (#4698) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Topology/ContinuousFunction/Weierstrass.lean + theorem continuousMap_mem_polynomialFunctions_closure + theorem exists_polynomial_near_continuousMap + theorem exists_polynomial_near_of_continuousOn + theorem polynomialFunctions_closure_eq_top' + theorem polynomialFunctions_closure_eq_top 2023-06-05 15:29:05 2db7650 feat: port Analysis.SpecialFunctions.Bernstein (#4697) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/SpecialFunctions/Bernstein.lean + theorem bernstein.probability + theorem bernstein.variance + def bernstein.z + def bernstein + def bernsteinApproximation.S + theorem bernsteinApproximation.apply + theorem bernsteinApproximation.le_of_mem_S_compl + theorem bernsteinApproximation.lt_of_mem_S + def bernsteinApproximation.δ + theorem bernsteinApproximation.δ_pos + def bernsteinApproximation + theorem bernsteinApproximation_uniform + theorem bernstein_apply + theorem bernstein_nonneg 2023-06-05 14:50:47 1b2a311 feat: port MeasureTheory.Measure.Lebesgue.EqHaar (#4666) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Data/Real/NNReal.lean + theorem Real.toNNReal_ofNat Added Mathlib/MeasureTheory/Measure/Lebesgue/EqHaar.lean + theorem AlternatingMap.measure_parallelepiped + theorem Basis.parallelepiped_basisFun + theorem MeasureTheory.Measure.NullMeasurableSet.const_smul + theorem MeasureTheory.Measure.addHaar_parallelepiped + theorem MeasureTheory.Measure.add_haar_affineSubspace + theorem MeasureTheory.Measure.add_haar_ball + theorem MeasureTheory.Measure.add_haar_ball_center + theorem MeasureTheory.Measure.add_haar_ball_mul + theorem MeasureTheory.Measure.add_haar_ball_mul_of_pos + theorem MeasureTheory.Measure.add_haar_ball_of_pos + theorem MeasureTheory.Measure.add_haar_closedBall' + theorem MeasureTheory.Measure.add_haar_closedBall + theorem MeasureTheory.Measure.add_haar_closedBall_center + theorem MeasureTheory.Measure.add_haar_closedBall_eq_add_haar_ball + theorem MeasureTheory.Measure.add_haar_closedBall_mul + theorem MeasureTheory.Measure.add_haar_closedBall_mul_of_pos + theorem MeasureTheory.Measure.add_haar_closed_unit_ball_eq_add_haar_unit_ball + theorem MeasureTheory.Measure.add_haar_eq_zero_of_disjoint_translates + theorem MeasureTheory.Measure.add_haar_eq_zero_of_disjoint_translates_aux + theorem MeasureTheory.Measure.add_haar_image_continuousLinearEquiv + theorem MeasureTheory.Measure.add_haar_image_continuousLinearMap + theorem MeasureTheory.Measure.add_haar_image_homothety + theorem MeasureTheory.Measure.add_haar_image_linearMap + theorem MeasureTheory.Measure.add_haar_preimage_continuousLinearEquiv + theorem MeasureTheory.Measure.add_haar_preimage_continuousLinearMap + theorem MeasureTheory.Measure.add_haar_preimage_linearEquiv + theorem MeasureTheory.Measure.add_haar_preimage_linearMap + theorem MeasureTheory.Measure.add_haar_preimage_smul + theorem MeasureTheory.Measure.add_haar_singleton_add_smul_div_singleton_add_smul + theorem MeasureTheory.Measure.add_haar_smul + theorem MeasureTheory.Measure.add_haar_smul_of_nonneg + theorem MeasureTheory.Measure.add_haar_sphere + theorem MeasureTheory.Measure.add_haar_sphere_of_ne_zero + theorem MeasureTheory.Measure.add_haar_submodule + theorem MeasureTheory.Measure.eventually_nonempty_inter_smul_of_density_one + theorem MeasureTheory.Measure.map_add_haar_smul + theorem MeasureTheory.Measure.map_linearMap_add_haar_eq_smul_add_haar + theorem MeasureTheory.Measure.map_linearMap_add_haar_pi_eq_smul_add_haar + theorem MeasureTheory.Measure.tendsto_add_haar_inter_smul_one_of_density_one + theorem MeasureTheory.Measure.tendsto_add_haar_inter_smul_one_of_density_one_aux + theorem MeasureTheory.Measure.tendsto_add_haar_inter_smul_zero_of_density_zero + theorem MeasureTheory.Measure.tendsto_add_haar_inter_smul_zero_of_density_zero_aux1 + theorem MeasureTheory.Measure.tendsto_add_haar_inter_smul_zero_of_density_zero_aux2 + theorem MeasureTheory.addHaarMeasure_eq_volume + theorem MeasureTheory.addHaarMeasure_eq_volume_pi + def TopologicalSpace.PositiveCompacts.Icc01 + def TopologicalSpace.PositiveCompacts.piIcc01 2023-06-05 14:10:44 b53afec feat: port MeasureTheory.Integral.VitaliCaratheodory (#4692) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/MeasureTheory/Integral/VitaliCaratheodory.lean + theorem MeasureTheory.SimpleFunc.exists_le_lowerSemicontinuous_lintegral_ge + theorem MeasureTheory.SimpleFunc.exists_upperSemicontinuous_le_lintegral_le + theorem MeasureTheory.exists_le_lowerSemicontinuous_lintegral_ge + theorem MeasureTheory.exists_lt_lowerSemicontinuous_integral_gt_nnreal + theorem MeasureTheory.exists_lt_lowerSemicontinuous_integral_lt + theorem MeasureTheory.exists_lt_lowerSemicontinuous_lintegral_ge + theorem MeasureTheory.exists_lt_lowerSemicontinuous_lintegral_ge_of_aemeasurable + theorem MeasureTheory.exists_upperSemicontinuous_le_integral_le + theorem MeasureTheory.exists_upperSemicontinuous_le_lintegral_le + theorem MeasureTheory.exists_upperSemicontinuous_lt_integral_gt 2023-06-05 13:56:27 92923b3 feat: port Geometry.Manifold.Instances.Real (#4654) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Analysis/NormedSpace/PiLp.lean Added Mathlib/Geometry/Manifold/Instances/Real.lean + theorem EuclideanHalfSpace.ext + def EuclideanHalfSpace + theorem EuclideanQuadrant.ext + def EuclideanQuadrant + def IccLeftChart + def IccRightChart + def modelWithCornersEuclideanHalfSpace + def modelWithCornersEuclideanQuadrant + theorem range_half_space + theorem range_quadrant 2023-06-05 13:56:26 33b0b06 feat: port CategoryTheory.Sites.Canonical (#3936) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Sites/Canonical.lean + theorem CategoryTheory.Sheaf.Subcanonical.isSheaf_of_representable + theorem CategoryTheory.Sheaf.Subcanonical.of_yoneda_isSheaf + def CategoryTheory.Sheaf.Subcanonical + def CategoryTheory.Sheaf.canonicalTopology + def CategoryTheory.Sheaf.finestTopology + def CategoryTheory.Sheaf.finestTopologySingle + theorem CategoryTheory.Sheaf.isSheafFor_bind + theorem CategoryTheory.Sheaf.isSheafFor_trans + theorem CategoryTheory.Sheaf.isSheaf_of_representable + theorem CategoryTheory.Sheaf.isSheaf_yoneda_obj + theorem CategoryTheory.Sheaf.le_finestTopology + theorem CategoryTheory.Sheaf.sheaf_for_finestTopology Modified Mathlib/CategoryTheory/Sites/Sieves.lean 2023-06-05 12:54:38 648a40a feat: port LinearAlgebra.QuadraticForm.Basic (#4432) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Data/Nat/Cast/Basic.lean + theorem Commute.ofNat_left + theorem Commute.ofNat_right Added Mathlib/LinearAlgebra/QuadraticForm/Basic.lean + theorem BilinForm.exists_bilinForm_self_ne_zero + theorem BilinForm.exists_orthogonal_basis + theorem BilinForm.nondegenerate_of_anisotropic + theorem BilinForm.polar_to_quadratic_form + def BilinForm.toQuadraticForm + def BilinForm.toQuadraticFormAddMonoidHom + theorem BilinForm.toQuadraticForm_add + theorem BilinForm.toQuadraticForm_apply + theorem BilinForm.toQuadraticForm_eq_zero + theorem BilinForm.toQuadraticForm_list_sum + theorem BilinForm.toQuadraticForm_multiset_sum + theorem BilinForm.toQuadraticForm_neg + theorem BilinForm.toQuadraticForm_smul + theorem BilinForm.toQuadraticForm_sub + theorem BilinForm.toQuadraticForm_sum + theorem BilinForm.toQuadraticForm_zero + def LinearMap.compQuadraticForm + def Matrix.toQuadraticForm' + theorem QuadraticForm.Anisotropic.eq_zero_iff + def QuadraticForm.Anisotropic + theorem QuadraticForm.PosDef.add + theorem QuadraticForm.PosDef.anisotropic + theorem QuadraticForm.PosDef.nonneg + theorem QuadraticForm.PosDef.smul + def QuadraticForm.PosDef + theorem QuadraticForm.add_apply + theorem QuadraticForm.add_linMulLin + def QuadraticForm.associatedHom + theorem QuadraticForm.associated_apply + theorem QuadraticForm.associated_comp + theorem QuadraticForm.associated_eq_self_apply + theorem QuadraticForm.associated_isSymm + theorem QuadraticForm.associated_left_inverse + theorem QuadraticForm.associated_linMulLin + theorem QuadraticForm.associated_rightInverse + theorem QuadraticForm.associated_toQuadraticForm + theorem QuadraticForm.basisRepr_apply + theorem QuadraticForm.basisRepr_eq_of_iIsOrtho + theorem QuadraticForm.choose_exists_companion + def QuadraticForm.coeFnAddMonoidHom + theorem QuadraticForm.coeFn_add + theorem QuadraticForm.coeFn_neg + theorem QuadraticForm.coeFn_smul + theorem QuadraticForm.coeFn_sub + theorem QuadraticForm.coeFn_sum + theorem QuadraticForm.coeFn_zero + theorem QuadraticForm.coe_copy + def QuadraticForm.comp + theorem QuadraticForm.comp_apply + theorem QuadraticForm.congr_fun + theorem QuadraticForm.copy_eq + def QuadraticForm.discr + theorem QuadraticForm.discr_comp + theorem QuadraticForm.discr_smul + def QuadraticForm.evalAddMonoidHom + theorem QuadraticForm.exists_companion + theorem QuadraticForm.exists_quadraticForm_ne_zero + theorem QuadraticForm.ext + theorem QuadraticForm.ext_iff + theorem QuadraticForm.isSymm_toMatrix' + def QuadraticForm.linMulLin + theorem QuadraticForm.linMulLinSelfPosDef + theorem QuadraticForm.linMulLin_add + theorem QuadraticForm.linMulLin_apply + theorem QuadraticForm.linMulLin_comp + theorem QuadraticForm.map_add_add_add_map + theorem QuadraticForm.map_add_self + theorem QuadraticForm.map_neg + theorem QuadraticForm.map_smul + theorem QuadraticForm.map_smul_of_tower + theorem QuadraticForm.map_sub + theorem QuadraticForm.map_zero + theorem QuadraticForm.neg_apply + theorem QuadraticForm.nondegenerate_of_anisotropic + theorem QuadraticForm.not_anisotropic_iff_exists + def QuadraticForm.ofPolar + def QuadraticForm.polar + def QuadraticForm.polarBilin + theorem QuadraticForm.polar_add + theorem QuadraticForm.polar_add_left + theorem QuadraticForm.polar_add_left_iff + theorem QuadraticForm.polar_add_right + theorem QuadraticForm.polar_comm + theorem QuadraticForm.polar_comp + theorem QuadraticForm.polar_neg + theorem QuadraticForm.polar_neg_left + theorem QuadraticForm.polar_neg_right + theorem QuadraticForm.polar_self + theorem QuadraticForm.polar_smul + theorem QuadraticForm.polar_smul_left + theorem QuadraticForm.polar_smul_left_of_tower + theorem QuadraticForm.polar_smul_right + theorem QuadraticForm.polar_smul_right_of_tower + theorem QuadraticForm.polar_sub_left + theorem QuadraticForm.polar_sub_right + theorem QuadraticForm.polar_zero_left + theorem QuadraticForm.polar_zero_right + theorem QuadraticForm.posDefOfNonneg + theorem QuadraticForm.posDef_iff_nonneg + def QuadraticForm.proj + theorem QuadraticForm.proj_apply + theorem QuadraticForm.smul_apply + def QuadraticForm.sq + theorem QuadraticForm.sub_apply + theorem QuadraticForm.sum_apply + theorem QuadraticForm.toFun_eq_coe + def QuadraticForm.toMatrix' + theorem QuadraticForm.toMatrix'_comp + theorem QuadraticForm.toMatrix'_smul + theorem QuadraticForm.toQuadraticForm_associated + def QuadraticForm.weightedSumSquares + theorem QuadraticForm.weightedSumSquares_apply + theorem QuadraticForm.zero_apply + structure QuadraticForm 2023-06-05 12:36:00 1e3b7db feat: port Analysis.Calculus.FDerivAnalytic (#4568) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/Calculus/FDerivAnalytic.lean + theorem AnalyticAt.differentiableAt + theorem AnalyticAt.differentiableWithinAt + theorem AnalyticOn.contDiffOn + theorem AnalyticOn.deriv + theorem AnalyticOn.differentiableOn + theorem AnalyticOn.fderiv + theorem AnalyticOn.iteratedFDeriv + theorem AnalyticOn.iterated_deriv + theorem HasFPowerSeriesAt.differentiableAt + theorem HasFPowerSeriesAt.fderiv_eq + theorem HasFPowerSeriesAt.hasFDerivAt + theorem HasFPowerSeriesAt.hasStrictFDerivAt + theorem HasFPowerSeriesOnBall.differentiableOn + theorem HasFPowerSeriesOnBall.fderiv + theorem HasFPowerSeriesOnBall.fderiv_eq + theorem HasFPowerSeriesOnBall.hasFDerivAt 2023-06-05 10:52:47 e01ef88 chore: fix failed download reporting in cache (#4685) ESTIMATED CHANGES Modified Cache/Requests.lean 2023-06-05 10:52:46 11c160d feat: port Algebra.Lie.Semisimple (#4680) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Lie/Semisimple.lean + theorem LieAlgebra.abelian_radical_iff_solvable_is_abelian + theorem LieAlgebra.abelian_radical_of_semisimple + theorem LieAlgebra.ad_ker_eq_bot_of_semisimple + theorem LieAlgebra.center_eq_bot_of_semisimple + theorem LieAlgebra.isSemisimple_iff_no_abelian_ideals + theorem LieAlgebra.isSemisimple_iff_no_solvable_ideals + theorem LieAlgebra.subsingleton_of_semisimple_lie_abelian 2023-06-05 10:42:05 3452e3d feat: port RingTheory.WittVector.Defs (#4687) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/RingTheory/WittVector/Defs.lean + theorem WittVector.add_coeff + theorem WittVector.add_coeff_zero + theorem WittVector.coeff_mk + theorem WittVector.constantCoeff_wittAdd + theorem WittVector.constantCoeff_wittMul + theorem WittVector.constantCoeff_wittNSMul + theorem WittVector.constantCoeff_wittNeg + theorem WittVector.constantCoeff_wittSub + theorem WittVector.constantCoeff_wittZSMul + def WittVector.eval + theorem WittVector.ext + theorem WittVector.ext_iff + def WittVector.mk + theorem WittVector.mul_coeff + theorem WittVector.mul_coeff_zero + theorem WittVector.neg_coeff + theorem WittVector.nsmul_coeff + theorem WittVector.one_coeff_eq_of_pos + theorem WittVector.one_coeff_zero + def WittVector.peval + theorem WittVector.pow_coeff + theorem WittVector.sub_coeff + theorem WittVector.v2_coeff + def WittVector.wittAdd + theorem WittVector.wittAdd_vars + theorem WittVector.wittAdd_zero + def WittVector.wittMul + theorem WittVector.wittMul_vars + theorem WittVector.wittMul_zero + def WittVector.wittNSMul + theorem WittVector.wittNSMul_vars + def WittVector.wittNeg + theorem WittVector.wittNeg_vars + theorem WittVector.wittNeg_zero + def WittVector.wittOne + theorem WittVector.wittOne_pos_eq_zero + theorem WittVector.wittOne_zero_eq_one + def WittVector.wittPow + theorem WittVector.wittPow_vars + def WittVector.wittSub + theorem WittVector.wittSub_vars + theorem WittVector.wittSub_zero + def WittVector.wittZSMul + theorem WittVector.wittZSMul_vars + def WittVector.wittZero + theorem WittVector.wittZero_eq_zero + theorem WittVector.zero_coeff + theorem WittVector.zsmul_coeff + structure WittVector 2023-06-05 10:42:03 8546e23 feat: port Algebra.Lie.Character (#4683) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Lie/Character.lean + def LieAlgebra.lieCharacterEquivLinearDual + theorem LieAlgebra.lieCharacter_apply_lie' + theorem LieAlgebra.lieCharacter_apply_lie + theorem LieAlgebra.lieCharacter_apply_of_mem_derived 2023-06-05 10:31:30 58aa285 feat: port Data.Complex.ExponentialBounds (#4682) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Data/Complex/ExponentialBounds.lean + theorem Real.exp_neg_one_gt_d9 + theorem Real.exp_neg_one_lt_d9 + theorem Real.exp_one_gt_d9 + theorem Real.exp_one_lt_d9 + theorem Real.exp_one_near_10 + theorem Real.exp_one_near_20 + theorem Real.log_two_gt_d9 + theorem Real.log_two_lt_d9 + theorem Real.log_two_near_10 2023-06-05 10:31:29 fb8ee97 feat: port RingTheory.Polynomial.Bernstein (#4661) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/RingTheory/Polynomial/Bernstein.lean + theorem bernsteinPolynomial.derivative_succ + theorem bernsteinPolynomial.derivative_succ_aux + theorem bernsteinPolynomial.derivative_zero + theorem bernsteinPolynomial.eq_zero_of_lt + theorem bernsteinPolynomial.eval_at_0 + theorem bernsteinPolynomial.eval_at_1 + theorem bernsteinPolynomial.flip' + theorem bernsteinPolynomial.flip + theorem bernsteinPolynomial.iterate_derivative_at_0 + theorem bernsteinPolynomial.iterate_derivative_at_0_eq_zero_of_lt + theorem bernsteinPolynomial.iterate_derivative_at_0_ne_zero + theorem bernsteinPolynomial.iterate_derivative_at_1 + theorem bernsteinPolynomial.iterate_derivative_at_1_eq_zero_of_lt + theorem bernsteinPolynomial.iterate_derivative_at_1_ne_zero + theorem bernsteinPolynomial.iterate_derivative_succ_at_0_eq_zero + theorem bernsteinPolynomial.linearIndependent + theorem bernsteinPolynomial.linearIndependent_aux + theorem bernsteinPolynomial.map + theorem bernsteinPolynomial.sum + theorem bernsteinPolynomial.sum_mul_smul + theorem bernsteinPolynomial.sum_smul + theorem bernsteinPolynomial.variance + def bernsteinPolynomial 2023-06-05 10:31:28 84b0637 feat: port Analysis.BoxIntegral.Partition.Measure (#4611) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/BoxIntegral/Partition/Measure.lean + theorem BoxIntegral.Box.Ioo_ae_eq_Icc + theorem BoxIntegral.Box.coe_ae_eq_Icc + theorem BoxIntegral.Box.measurableSet_Icc + theorem BoxIntegral.Box.measurableSet_Ioo + theorem BoxIntegral.Box.measurableSet_coe + theorem BoxIntegral.Box.measure_Icc_lt_top + theorem BoxIntegral.Box.measure_coe_lt_top + theorem BoxIntegral.Box.volume_apply' + theorem BoxIntegral.Box.volume_apply + theorem BoxIntegral.Box.volume_face_mul + theorem BoxIntegral.BoxAdditiveMap.volume_apply + theorem BoxIntegral.Prepartition.measure_iUnion_toReal + def MeasureTheory.Measure.toBoxAdditive 2023-06-05 09:43:56 20cb2f3 feat: port Geometry.Manifold.Instances.UnitsOfNormedAlgebra (#4681) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Geometry/Manifold/Instances/UnitsOfNormedAlgebra.lean + theorem Units.chartAt_apply + theorem Units.chartAt_source 2023-06-05 09:43:55 89d74ab feat: port Geometry.Manifold.Metrizable (#4679) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Geometry/Manifold/Metrizable.lean + theorem ManifoldWithCorners.metrizableSpace 2023-06-05 09:43:54 6ece430 feat: allow cancel_denoms to handle equalities and inequalities over fields (#4176) Previously it assumed a linear order, due perhaps to its historical origins as a linarith internal. We also allow canceling in inequalities, ne. ESTIMATED CHANGES Modified Mathlib/Tactic/CancelDenoms.lean +/- theorem CancelDenoms.cancel_factors_eq + theorem CancelDenoms.cancel_factors_ne +/- def CancelDenoms.findCompLemma Modified test/cancel_denoms.lean + def C 2023-06-05 08:38:03 4515484 feat: port Algebra.Category.Module.Monoidal.Symmetric (#4664) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Category/ModuleCat/Monoidal/Symmetric.lean + theorem ModuleCat.MonoidalCategory.braiding_hom_apply + theorem ModuleCat.MonoidalCategory.braiding_inv_apply + theorem ModuleCat.MonoidalCategory.braiding_naturality + theorem ModuleCat.MonoidalCategory.hexagon_forward + theorem ModuleCat.MonoidalCategory.hexagon_reverse + def ModuleCat.braiding 2023-06-05 08:38:00 2ec3275 feat: port CategoryTheory.Monoidal.Types.Symmetric (#4662) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Monoidal/Types/Symmetric.lean + theorem CategoryTheory.braiding_hom_apply + theorem CategoryTheory.braiding_inv_apply 2023-06-05 08:37:48 6af7bec feat: port MeasureTheory.Integral.Bochner (#4590) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/MeasureTheory/Integral/Bochner.lean + theorem ClosedEmbedding.integral_map + theorem MeasurableEmbedding.integral_map + theorem MeasureTheory.HasFiniteIntegral.tendsto_set_integral_nhds_zero + theorem MeasureTheory.Integrable.tendsto_set_integral_nhds_zero + theorem MeasureTheory.L1.SimpleFunc.coe_negPart + theorem MeasureTheory.L1.SimpleFunc.coe_posPart + def MeasureTheory.L1.SimpleFunc.integral + def MeasureTheory.L1.SimpleFunc.integralCLM' + def MeasureTheory.L1.SimpleFunc.integralCLM + theorem MeasureTheory.L1.SimpleFunc.integral_L1_eq_integral + theorem MeasureTheory.L1.SimpleFunc.integral_add + theorem MeasureTheory.L1.SimpleFunc.integral_eq_integral + theorem MeasureTheory.L1.SimpleFunc.integral_eq_norm_posPart_sub + theorem MeasureTheory.L1.SimpleFunc.integral_eq_setToL1S + theorem MeasureTheory.L1.SimpleFunc.integral_smul + def MeasureTheory.L1.SimpleFunc.negPart + theorem MeasureTheory.L1.SimpleFunc.negPart_toSimpleFunc + theorem MeasureTheory.L1.SimpleFunc.norm_Integral_le_one + theorem MeasureTheory.L1.SimpleFunc.norm_eq_integral + theorem MeasureTheory.L1.SimpleFunc.norm_integral_le_norm + theorem MeasureTheory.L1.SimpleFunc.posPart_toSimpleFunc + theorem MeasureTheory.L1.continuous_integral + def MeasureTheory.L1.integralCLM + theorem MeasureTheory.L1.integral_add + theorem MeasureTheory.L1.integral_eq + theorem MeasureTheory.L1.integral_eq_integral + theorem MeasureTheory.L1.integral_eq_norm_posPart_sub + theorem MeasureTheory.L1.integral_eq_setToL1 + theorem MeasureTheory.L1.integral_neg + theorem MeasureTheory.L1.integral_of_fun_eq_integral + theorem MeasureTheory.L1.integral_smul + theorem MeasureTheory.L1.integral_sub + theorem MeasureTheory.L1.integral_zero + theorem MeasureTheory.L1.norm_Integral_le_one + theorem MeasureTheory.L1.norm_eq_integral_norm + theorem MeasureTheory.L1.norm_integral_le + theorem MeasureTheory.L1.norm_of_fun_eq_integral_norm + theorem MeasureTheory.MeasurePreserving.integral_comp + theorem MeasureTheory.Memℒp.snorm_eq_integral_rpow_norm + theorem MeasureTheory.SimpleFunc.coe_toLargerSpace_eq + def MeasureTheory.SimpleFunc.integral + theorem MeasureTheory.SimpleFunc.integral_add + theorem MeasureTheory.SimpleFunc.integral_add_measure + theorem MeasureTheory.SimpleFunc.integral_congr + theorem MeasureTheory.SimpleFunc.integral_const + theorem MeasureTheory.SimpleFunc.integral_def + theorem MeasureTheory.SimpleFunc.integral_eq + theorem MeasureTheory.SimpleFunc.integral_eq_integral + theorem MeasureTheory.SimpleFunc.integral_eq_lintegral' + theorem MeasureTheory.SimpleFunc.integral_eq_lintegral + theorem MeasureTheory.SimpleFunc.integral_eq_sum + theorem MeasureTheory.SimpleFunc.integral_eq_sum_filter + theorem MeasureTheory.SimpleFunc.integral_eq_sum_of_subset + theorem MeasureTheory.SimpleFunc.integral_neg + theorem MeasureTheory.SimpleFunc.integral_piecewise_zero + theorem MeasureTheory.SimpleFunc.integral_smul + theorem MeasureTheory.SimpleFunc.integral_sub + theorem MeasureTheory.SimpleFunc.map_integral + def MeasureTheory.SimpleFunc.negPart + theorem MeasureTheory.SimpleFunc.negPart_map_norm + theorem MeasureTheory.SimpleFunc.norm_integral_le_integral_norm + theorem MeasureTheory.SimpleFunc.norm_setToSimpleFunc_le_integral_norm + def MeasureTheory.SimpleFunc.posPart + theorem MeasureTheory.SimpleFunc.posPart_map_norm + theorem MeasureTheory.SimpleFunc.posPart_sub_negPart + def MeasureTheory.SimpleFunc.toLargerSpace + theorem MeasureTheory.ae_eq_trim_iff + theorem MeasureTheory.ae_eq_trim_of_stronglyMeasurable + theorem MeasureTheory.ae_le_trim_iff + theorem MeasureTheory.ae_le_trim_of_stronglyMeasurable + theorem MeasureTheory.continuousAt_of_dominated + theorem MeasureTheory.continuousOn_of_dominated + theorem MeasureTheory.continuousWithinAt_of_dominated + theorem MeasureTheory.continuous_integral + theorem MeasureTheory.continuous_of_dominated + theorem MeasureTheory.dominatedFinMeasAdditive_weightedSMul + theorem MeasureTheory.ennnorm_integral_le_lintegral_ennnorm + theorem MeasureTheory.hasSum_integral_measure + theorem MeasureTheory.hasSum_integral_of_dominated_convergence + theorem MeasureTheory.integrable_of_integral_eq_one + theorem MeasureTheory.integral_add' + theorem MeasureTheory.integral_add + theorem MeasureTheory.integral_add_measure + theorem MeasureTheory.integral_coe_le_of_lintegral_coe_le + theorem MeasureTheory.integral_congr_ae + theorem MeasureTheory.integral_const + theorem MeasureTheory.integral_dirac' + theorem MeasureTheory.integral_dirac + theorem MeasureTheory.integral_div + theorem MeasureTheory.integral_eq + theorem MeasureTheory.integral_eq_integral_pos_part_sub_integral_neg_part + theorem MeasureTheory.integral_eq_lintegral_of_nonneg_ae + theorem MeasureTheory.integral_eq_lintegral_pos_part_sub_lintegral_neg_part + theorem MeasureTheory.integral_eq_setToFun + theorem MeasureTheory.integral_eq_zero_iff_of_nonneg + theorem MeasureTheory.integral_eq_zero_iff_of_nonneg_ae + theorem MeasureTheory.integral_eq_zero_of_ae + theorem MeasureTheory.integral_finset_sum + theorem MeasureTheory.integral_finset_sum_measure + theorem MeasureTheory.integral_map + theorem MeasureTheory.integral_map_equiv + theorem MeasureTheory.integral_map_of_stronglyMeasurable + theorem MeasureTheory.integral_mono + theorem MeasureTheory.integral_mono_ae + theorem MeasureTheory.integral_mono_measure + theorem MeasureTheory.integral_mono_of_nonneg + theorem MeasureTheory.integral_mul_le_Lp_mul_Lq_of_nonneg + theorem MeasureTheory.integral_mul_left + theorem MeasureTheory.integral_mul_norm_le_Lp_mul_Lq + theorem MeasureTheory.integral_mul_right + theorem MeasureTheory.integral_neg' + theorem MeasureTheory.integral_neg + theorem MeasureTheory.integral_non_aestronglyMeasurable + theorem MeasureTheory.integral_nonneg + theorem MeasureTheory.integral_nonneg_of_ae + theorem MeasureTheory.integral_nonpos + theorem MeasureTheory.integral_nonpos_of_ae + theorem MeasureTheory.integral_norm_eq_lintegral_nnnorm + theorem MeasureTheory.integral_pos_iff_support_of_nonneg + theorem MeasureTheory.integral_pos_iff_support_of_nonneg_ae + theorem MeasureTheory.integral_simpleFunc_larger_space + theorem MeasureTheory.integral_smul + theorem MeasureTheory.integral_smul_measure + theorem MeasureTheory.integral_sub' + theorem MeasureTheory.integral_sub + theorem MeasureTheory.integral_sum_measure + theorem MeasureTheory.integral_toReal + theorem MeasureTheory.integral_trim + theorem MeasureTheory.integral_trim_ae + theorem MeasureTheory.integral_trim_simpleFunc + theorem MeasureTheory.integral_tsum + theorem MeasureTheory.integral_undef + theorem MeasureTheory.integral_zero' + theorem MeasureTheory.integral_zero + theorem MeasureTheory.integral_zero_measure + theorem MeasureTheory.lintegral_coe_eq_integral + theorem MeasureTheory.lintegral_coe_le_coe_iff_integral_le + theorem MeasureTheory.mul_meas_ge_le_integral_of_nonneg + theorem MeasureTheory.nndist_integral_add_measure_le_lintegral + theorem MeasureTheory.norm_integral_le_integral_norm + theorem MeasureTheory.norm_integral_le_lintegral_norm + theorem MeasureTheory.norm_integral_le_of_norm_le + theorem MeasureTheory.norm_integral_le_of_norm_le_const + theorem MeasureTheory.norm_weightedSMul_le + theorem MeasureTheory.ofReal_integral_eq_lintegral_ofReal + theorem MeasureTheory.ofReal_integral_norm_eq_lintegral_nnnorm + theorem MeasureTheory.set_integral_dirac' + theorem MeasureTheory.set_integral_dirac + theorem MeasureTheory.set_integral_eq_subtype + theorem MeasureTheory.snorm_one_le_of_le' + theorem MeasureTheory.snorm_one_le_of_le + theorem MeasureTheory.tendsto_integral_approxOn_of_measurable + theorem MeasureTheory.tendsto_integral_approxOn_of_measurable_of_range_subset + theorem MeasureTheory.tendsto_integral_filter_of_dominated_convergence + theorem MeasureTheory.tendsto_integral_of_L1 + theorem MeasureTheory.tendsto_integral_of_dominated_convergence + def MeasureTheory.weightedSMul + theorem MeasureTheory.weightedSMul_add_measure + theorem MeasureTheory.weightedSMul_apply + theorem MeasureTheory.weightedSMul_congr + theorem MeasureTheory.weightedSMul_empty + theorem MeasureTheory.weightedSMul_nonneg + theorem MeasureTheory.weightedSMul_null + theorem MeasureTheory.weightedSMul_smul + theorem MeasureTheory.weightedSMul_smul_measure + theorem MeasureTheory.weightedSMul_union' + theorem MeasureTheory.weightedSMul_union + theorem MeasureTheory.weightedSMul_zero_measure Added Mathlib/MeasureTheory/Integral/IntegralSimps.lean 2023-06-05 08:37:38 fb7ec3e feat: tactic `gcongr` for "relational congruence" (#3965) This PR implements a new tactic, `gcongr`, which applies "relational congruence" rules, reducing a relational goal between a LHS and RHS matching the same pattern to relational subgoals between the differing inputs to the pattern. For example, ```lean example {a b x c d : ℝ} (h1 : a + 1 ≤ b + 1) (h2 : c + 2 ≤ d + 2) : x ^ 4 * a + c ≤ x ^ 4 * b + d := by gcongr · linarith · linarith ``` This example has the goal of proving the relation `≤` between a LHS and RHS both of the pattern ``` x ^ 4 * ?_ + ?_ ``` (with inputs `a`, `c` on the left and `b`, `d` on the right); after the use of `gcongr`, we have the simpler goals `a ≤ b` and `c ≤ d`. For a sense of the style of argument facilitated by the tactic, [this commit](https://github.com/leanprover-community/mathlib4/commit/9a5e0ce9f9b714fd5383610a12746cded21f030f) (which will be PR'd separately) gives >100 examples of use cases in the existing library. The tactic's syntax allows for a pattern to be provided explicitly; this is useful if a non-maximal match is desired: ```lean example {a b c d x : ℝ} (h : a + c + 1 ≤ b + d + 1) : x ^ 4 * (a + c) + 5 ≤ x ^ 4 * (b + d) + 5 := by gcongr x ^ 4 * ?_ + 5 linarith ``` This feature is the analogue for general relations of the mathlib3 [`congrm` tactic](https://leanprover-community.github.io/mathlib_docs/tactics.html#congrm). The "relational congruence" rules used are the library lemmas which have been tagged with the attribute `@[gcongr]`. For example, the first example constructs the proof term ```lean add_le_add (mul_le_mul_of_nonneg_left _ (pow_bit0_nonneg x 2)) _ ``` using the relational congruence lemmas `add_le_add` and `mul_le_mul_of_nonneg_left`. In this initial implementation, the `@[gcongr]` tagging has been set up for arithmetic head functions (`+`, `*` etc) and the relations `≤`, `<` and congruence-mod-`n`. The tactic attempts to discharge side goals to these "relational congruence" lemmas (such as the side goal `0 ≤ x ^ 4` in the above application of `mul_le_mul_of_nonneg_left`) using the tactic `gcongr_discharger`, which wraps `positivity` but can also be extended. Side goals not discharged in this way are left for the user. [Zulip discussion](https://leanprover.zulipchat.com/#narrow/stream/116395-maths/topic/New.20tactic.20for.20.22relational.20congruence.22) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/BigOperators/Order.lean + theorem GCongr.prod_le_prod' + theorem GCongr.prod_le_prod + theorem GCongr.prod_lt_prod_of_nonempty' Modified Mathlib/Data/Int/ModEq.lean Modified Mathlib/Data/Real/ENNReal.lean +/- theorem ENNReal.add_lt_add Modified Mathlib/Data/Real/NNReal.lean + theorem NNReal.toReal_le_toReal Modified Mathlib/Data/Seq/Computation.lean Modified Mathlib/Lean/Expr/Basic.lean +/- def Lean.Expr.addLocalVarInfoForBinderIdent Modified Mathlib/Tactic.lean Modified Mathlib/Tactic/Choose.lean Modified Mathlib/Tactic/Core.lean + def Lean.MVarId.introsWithBinderIdents Added Mathlib/Tactic/GCongr.lean + def Mathlib.Tactic.GCongr.exact + def Mathlib.Tactic.GCongr.exactLeOfLt + def Mathlib.Tactic.GCongr.exactRefl + def Mathlib.Tactic.GCongr.symmExact + theorem Nat.cast_le_cast + theorem zpow_lt_of_lt Added Mathlib/Tactic/GCongr/Core.lean + def Lean.MVarId.exact + def Lean.MVarId.gcongrForward + structure Mathlib.Tactic.GCongr.ForwardExt + structure Mathlib.Tactic.GCongr.GCongrLemma + def Mathlib.Tactic.GCongr.mkForwardExt Added test/GCongr/inequalities.lean Added test/GCongr/mod.lean 2023-06-05 07:16:43 23cb016 feat: port Analysis.SpecialFunctions.Log.Deriv (#4669) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/SpecialFunctions/Log/Deriv.lean + theorem ContDiff.log + theorem ContDiffAt.log + theorem ContDiffOn.log + theorem ContDiffWithinAt.log + theorem Differentiable.log + theorem DifferentiableAt.log + theorem DifferentiableOn.log + theorem DifferentiableWithinAt.log + theorem HasDerivAt.log + theorem HasDerivWithinAt.log + theorem HasFDerivAt.log + theorem HasFDerivWithinAt.log + theorem HasStrictDerivAt.log + theorem HasStrictFDerivAt.log + theorem Real.abs_log_sub_add_sum_range_le + theorem Real.contDiffAt_log + theorem Real.contDiffOn_log + theorem Real.deriv_log' + theorem Real.deriv_log + theorem Real.differentiableAt_log + theorem Real.differentiableAt_log_iff + theorem Real.differentiableOn_log + theorem Real.hasDerivAt_log + theorem Real.hasStrictDerivAt_log + theorem Real.hasStrictDerivAt_log_of_pos + theorem Real.hasSum_log_one_add_inv + theorem Real.hasSum_log_sub_log_of_abs_lt_1 + theorem Real.hasSum_pow_div_log_of_abs_lt_1 + theorem Real.tendsto_mul_log_one_plus_div_atTop + theorem deriv.log + theorem derivWithin.log + theorem fderiv.log + theorem fderivWithin.log 2023-06-05 07:16:42 ba4be16 feat: port Algebra.Lie.SkewAdjoint (#4649) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Lie/SkewAdjoint.lean + theorem BilinForm.isSkewAdjoint_bracket + theorem Matrix.isSkewAdjoint_bracket + theorem Matrix.lie_transpose + theorem mem_skewAdjointMatricesLieSubalgebra + theorem mem_skewAdjointMatricesLieSubalgebra_unit_smul + def skewAdjointLieSubalgebra + def skewAdjointLieSubalgebraEquiv + theorem skewAdjointLieSubalgebraEquiv_apply + theorem skewAdjointLieSubalgebraEquiv_symm_apply + def skewAdjointMatricesLieSubalgebra + def skewAdjointMatricesLieSubalgebraEquiv + def skewAdjointMatricesLieSubalgebraEquivTranspose + theorem skewAdjointMatricesLieSubalgebraEquivTranspose_apply + theorem skewAdjointMatricesLieSubalgebraEquiv_apply 2023-06-05 07:16:41 9287821 fix: rewrites doesn't fail when trying an unimported lemma (#4537) Because of the global `DiscrTree` cache, `rewrites` was encountering lemmas that were not yet imported, and failing when calling `mkConst`. We also switch to using `MVarId.rfl` rather than `MVarId.refl` to see if goals can be closed, make sure that if a solution closes the goal it is reported ahead of other solutions, and slightly tweak the sort order again. ESTIMATED CHANGES Modified Mathlib/Lean/Meta/DiscrTree.lean Modified Mathlib/Tactic/Rewrites.lean - def Mathlib.Tactic.Rewrites.RewriteResult.computeRefl + def Mathlib.Tactic.Rewrites.RewriteResult.computeRfl Modified test/rewrites.lean + theorem prime_of_prime 2023-06-05 06:16:15 80efeea chore: further cleanup after lean4#2210 (#4511) Tracking down porting notes mentioning lean4#2210. Some removals of `nolint simpNF` may need to be reverted; let's see what CI says. ESTIMATED CHANGES Modified Mathlib/Data/Dfinsupp/Order.lean Modified Mathlib/Data/Fin/Basic.lean Modified Mathlib/GroupTheory/FreeGroup.lean Modified Mathlib/RingTheory/QuotientNilpotent.lean Modified Mathlib/Topology/Algebra/Module/Basic.lean Modified Mathlib/Topology/Algebra/Nonarchimedean/Bases.lean 2023-06-05 05:47:02 010d3ee feat: port Algebra.Lie.BaseChange (#4650) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Lie/BaseChange.lean + theorem LieAlgebra.ExtendScalars.bracket_tmul 2023-06-05 05:24:19 267eb59 feat: mark Data.Nat.SqrtNormNum as ported (#4678) Cf. #4027 and #4253. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Data/Nat/SqrtNormNum.lean 2023-06-05 05:24:18 eb964e0 feat: port CategoryTheory.Monoidal.Rigid.FunctorCategory (#4647) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Monoidal/Rigid/FunctorCategory.lean 2023-06-05 05:24:17 a595c8e chore: start port from non-master branch (#4643) Add an undocumented way to start new port from a non-`master` branch. This is useful if some dependencies were not merged to `master` yet. ESTIMATED CHANGES Modified scripts/start_port.sh 2023-06-05 05:24:16 545176b feat: Forgetful functor `NonemptyFinLinOrd ⥤ FinPartOrd` (#4548) Match https://github.com/leanprover-community/mathlib/pull/18948 [`order.category.NonemptyFinLinOrd`@`e8ac6315bcfcbaf2d19a046719c3b553206dac75`..`fa4a805d16a9cd9c96e0f8edeb57dc5a07af1a19`](https://leanprover-community.github.io/mathlib-port-status/file/order/category/NonemptyFinLinOrd?range=e8ac6315bcfcbaf2d19a046719c3b553206dac75..fa4a805d16a9cd9c96e0f8edeb57dc5a07af1a19) ESTIMATED CHANGES Modified Mathlib/Order/Category/NonemptyFinLinOrdCat.lean + def nonemptyFinLinOrdDualCompForgetToFinPartOrd 2023-06-05 05:24:15 1ead746 feat: UV-compressing reduces the size of the shadow (#4546) Match https://github.com/leanprover-community/mathlib/pull/13149 [`combinatorics.set_family.compression.uv`@`9003f28797c0664a49e4179487267c494477d853`..`6f8ab7de1c4b78a68ab8cf7dd83d549eb78a68a1`](https://leanprover-community.github.io/mathlib-port-status/file/combinatorics/set_family/compression/uv?range=9003f28797c0664a49e4179487267c494477d853..6f8ab7de1c4b78a68ab8cf7dd83d549eb78a68a1) ESTIMATED CHANGES Modified Mathlib/Combinatorics/SetFamily/Compression/UV.lean +/- theorem UV.card_compress + theorem UV.card_shadow_compression_le + theorem UV.compress_of_disjoint_of_le' + theorem UV.compress_sdiff_sdiff + theorem UV.disjoint_of_mem_compression_of_not_mem + theorem UV.le_of_mem_compression_of_not_mem + theorem UV.shadow_compression_subset_compression_shadow + theorem UV.sup_sdiff_mem_of_mem_compression_of_not_mem 2023-06-05 05:13:26 dd381f6 feat: port Analysis.ODE.Gronwall (#4672) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/ODE/Gronwall.lean + theorem ODE_solution_unique + theorem ODE_solution_unique_of_mem_set + theorem dist_le_of_approx_trajectories_ODE + theorem dist_le_of_approx_trajectories_ODE_of_mem_set + theorem dist_le_of_trajectories_ODE + theorem dist_le_of_trajectories_ODE_of_mem_set + theorem gronwallBound_K0 + theorem gronwallBound_continuous_ε + theorem gronwallBound_of_K_ne_0 + theorem gronwallBound_x0 + theorem gronwallBound_ε0 + theorem gronwallBound_ε0_δ0 + theorem hasDerivAt_gronwallBound + theorem hasDerivAt_gronwallBound_shift + theorem le_gronwallBound_of_liminf_deriv_right_le + theorem norm_le_gronwallBound_of_norm_deriv_right_le 2023-06-05 05:13:25 bcdc81c feat: port RingTheory.WittVector.StructurePolynomial (#4633) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/FieldTheory/Finite/Polynomial.lean + theorem MvPolynomial.C_dvd_iff_zmod - theorem MvPolynomial.c_dvd_iff_zMod - theorem MvPolynomial.expand_zMod + theorem MvPolynomial.expand_zmod - theorem MvPolynomial.frobenius_zMod + theorem MvPolynomial.frobenius_zmod Added Mathlib/RingTheory/WittVector/StructurePolynomial.lean + theorem C_p_pow_dvd_bind₁_rename_wittPolynomial_sub_sum + theorem bind₁_rename_expand_wittPolynomial + theorem constantCoeff_wittStructureInt + theorem constantCoeff_wittStructureInt_zero + theorem constantCoeff_wittStructureRat + theorem constantCoeff_wittStructureRat_zero + theorem eq_wittStructureInt + theorem map_wittStructureInt + theorem wittStructureInt_existsUnique + theorem wittStructureInt_prop + theorem wittStructureInt_rename + theorem wittStructureInt_vars + theorem wittStructureRat_existsUnique + theorem wittStructureRat_prop + theorem wittStructureRat_rec + theorem wittStructureRat_rec_aux + theorem wittStructureRat_vars + theorem witt_structure_prop 2023-06-05 05:13:24 041a489 feat: port Algebra.Symmetrized (#4632) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Symmetrized.lean + theorem SymAlg.invOf_sym + theorem SymAlg.mul_comm + theorem SymAlg.mul_def + def SymAlg.sym + theorem SymAlg.sym_add + theorem SymAlg.sym_bijective + theorem SymAlg.sym_comp_unsym + theorem SymAlg.sym_eq_one_iff + theorem SymAlg.sym_inj + theorem SymAlg.sym_injective + theorem SymAlg.sym_inv + theorem SymAlg.sym_mul_self + theorem SymAlg.sym_mul_sym + theorem SymAlg.sym_ne_one_iff + theorem SymAlg.sym_neg + theorem SymAlg.sym_one + theorem SymAlg.sym_smul + theorem SymAlg.sym_sub + theorem SymAlg.sym_surjective + theorem SymAlg.sym_symm + theorem SymAlg.sym_unsym + def SymAlg.unsym + theorem SymAlg.unsym_add + theorem SymAlg.unsym_bijective + theorem SymAlg.unsym_comp_sym + theorem SymAlg.unsym_eq_one_iff + theorem SymAlg.unsym_inj + theorem SymAlg.unsym_injective + theorem SymAlg.unsym_inv + theorem SymAlg.unsym_mul + theorem SymAlg.unsym_mul_self + theorem SymAlg.unsym_ne_one_iff + theorem SymAlg.unsym_neg + theorem SymAlg.unsym_one + theorem SymAlg.unsym_smul + theorem SymAlg.unsym_sub + theorem SymAlg.unsym_surjective + theorem SymAlg.unsym_sym + theorem SymAlg.unsym_symm + def SymAlg 2023-06-05 05:13:21 0aab133 feat: port NumberTheory.Liouville.Measure (#4613) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/MeasureTheory/Measure/Haar/OfBasis.lean Added Mathlib/NumberTheory/Liouville/Measure.lean + theorem Real.disjoint_residual_ae + theorem ae_not_liouville + theorem ae_not_liouvilleWith + theorem setOf_liouvilleWith_subset_aux + theorem volume_iUnion_setOf_liouvilleWith + theorem volume_setOf_liouville 2023-06-05 05:13:20 496e831 feat: port FieldTheory.Laurent (#4512) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/FieldTheory/Laurent.lean + def RatFunc.laurent + def RatFunc.laurentAux + theorem RatFunc.laurentAux_algebraMap + theorem RatFunc.laurentAux_div + theorem RatFunc.laurentAux_ofFractionRing_mk + theorem RatFunc.laurent_C + theorem RatFunc.laurent_X + theorem RatFunc.laurent_algebraMap + theorem RatFunc.laurent_at_zero + theorem RatFunc.laurent_div + theorem RatFunc.laurent_injective + theorem RatFunc.laurent_laurent + theorem RatFunc.taylor_mem_nonZeroDivisors 2023-06-05 05:02:06 ddef6f4 feat: port Analysis.SpecialFunctions.Trigonometric.InverseDeriv (#4676) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/SpecialFunctions/Trigonometric/InverseDeriv.lean + theorem Real.contDiffAt_arccos + theorem Real.contDiffAt_arccos_iff + theorem Real.contDiffAt_arcsin + theorem Real.contDiffAt_arcsin_iff + theorem Real.contDiffOn_arccos + theorem Real.contDiffOn_arcsin + theorem Real.deriv_arccos + theorem Real.deriv_arcsin + theorem Real.deriv_arcsin_aux + theorem Real.differentiableAt_arccos + theorem Real.differentiableAt_arcsin + theorem Real.differentiableOn_arccos + theorem Real.differentiableOn_arcsin + theorem Real.differentiableWithinAt_arccos_Ici + theorem Real.differentiableWithinAt_arccos_Iic + theorem Real.differentiableWithinAt_arcsin_Ici + theorem Real.differentiableWithinAt_arcsin_Iic + theorem Real.hasDerivAt_arccos + theorem Real.hasDerivAt_arcsin + theorem Real.hasDerivWithinAt_arccos_Ici + theorem Real.hasDerivWithinAt_arccos_Iic + theorem Real.hasDerivWithinAt_arcsin_Ici + theorem Real.hasDerivWithinAt_arcsin_Iic + theorem Real.hasStrictDerivAt_arccos + theorem Real.hasStrictDerivAt_arcsin 2023-06-05 05:02:05 9d6881f feat: port Geometry.Manifold.SmoothManifoldWithCorners (#4636) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Geometry/Manifold/SmoothManifoldWithCorners.lean + theorem LocalHomeomorph.contDiffOn_extend_coord_change + theorem LocalHomeomorph.contDiffWithinAt_extend_coord_change' + theorem LocalHomeomorph.contDiffWithinAt_extend_coord_change + theorem LocalHomeomorph.continuousAt_extend + theorem LocalHomeomorph.continuousAt_extend_symm' + theorem LocalHomeomorph.continuousAt_extend_symm + theorem LocalHomeomorph.continuousOn_extend + theorem LocalHomeomorph.continuousOn_extend_symm + def LocalHomeomorph.extend + theorem LocalHomeomorph.extend_coe + theorem LocalHomeomorph.extend_coe_symm + theorem LocalHomeomorph.extend_coord_change_source + theorem LocalHomeomorph.extend_coord_change_source_mem_nhdsWithin' + theorem LocalHomeomorph.extend_coord_change_source_mem_nhdsWithin + theorem LocalHomeomorph.extend_image_source_inter + theorem LocalHomeomorph.extend_left_inv + theorem LocalHomeomorph.extend_preimage_inter_eq + theorem LocalHomeomorph.extend_preimage_mem_nhds + theorem LocalHomeomorph.extend_preimage_mem_nhdsWithin + theorem LocalHomeomorph.extend_source + theorem LocalHomeomorph.extend_source_mem_nhds + theorem LocalHomeomorph.extend_source_mem_nhdsWithin + theorem LocalHomeomorph.extend_symm_continuousWithinAt_comp_right_iff + theorem LocalHomeomorph.extend_symm_preimage_inter_range_eventuallyEq + theorem LocalHomeomorph.extend_symm_preimage_inter_range_eventuallyEq_aux + theorem LocalHomeomorph.extend_target + theorem LocalHomeomorph.extend_target_mem_nhdsWithin + theorem LocalHomeomorph.extend_target_subset_range + theorem LocalHomeomorph.isOpen_extend_preimage' + theorem LocalHomeomorph.isOpen_extend_preimage + theorem LocalHomeomorph.isOpen_extend_source + theorem LocalHomeomorph.map_extend_nhds + theorem LocalHomeomorph.map_extend_nhdsWithin + theorem LocalHomeomorph.map_extend_nhdsWithin_eq_image + theorem LocalHomeomorph.map_extend_symm_nhdsWithin + theorem LocalHomeomorph.map_extend_symm_nhdsWithin_range + theorem LocalHomeomorph.mapsTo_extend + theorem LocalHomeomorph.nhdsWithin_extend_target_eq + theorem LocalHomeomorph.singleton_smoothManifoldWithCorners + def ModelWithCorners.Simps.apply + def ModelWithCorners.Simps.symm_apply + theorem ModelWithCorners.closed_range + theorem ModelWithCorners.continuousAt_symm + theorem ModelWithCorners.continuousOn_symm + theorem ModelWithCorners.continuousWithinAt_symm + theorem ModelWithCorners.continuous_symm + theorem ModelWithCorners.image_mem_nhdsWithin + theorem ModelWithCorners.injective + theorem ModelWithCorners.map_nhdsWithin_eq + theorem ModelWithCorners.map_nhds_eq + theorem ModelWithCorners.mk_coe + theorem ModelWithCorners.mk_symm + def ModelWithCorners.pi + theorem ModelWithCorners.preimage_image + def ModelWithCorners.prod + theorem ModelWithCorners.range_prod + theorem ModelWithCorners.symm_comp_self + theorem ModelWithCorners.symm_continuousWithinAt_comp_right_iff + theorem ModelWithCorners.symm_map_nhdsWithin_image + theorem ModelWithCorners.symm_map_nhdsWithin_range + def ModelWithCorners.tangent + theorem ModelWithCorners.target_eq + def ModelWithCorners.toFun' + theorem ModelWithCorners.toLocalEquiv_coe + theorem ModelWithCorners.toLocalEquiv_coe_symm + theorem ModelWithCorners.unique_diff_at_image + theorem ModelWithCorners.unique_diff_preimage + theorem ModelWithCorners.unique_diff_preimage_source + structure ModelWithCorners + theorem OpenEmbedding.singleton_smoothManifoldWithCorners + theorem SmoothManifoldWithCorners.chart_mem_maximalAtlas + theorem SmoothManifoldWithCorners.compatible_of_mem_maximalAtlas + def SmoothManifoldWithCorners.maximalAtlas + theorem SmoothManifoldWithCorners.mk' + theorem SmoothManifoldWithCorners.subset_maximalAtlas + def contDiffGroupoid + theorem contDiffGroupoid_le + theorem contDiffGroupoid_prod + theorem contDiffGroupoid_zero_eq + theorem contDiffOn_ext_coord_change + theorem contDiffWithinAt_ext_coord_change + theorem continuousAt_extChartAt' + theorem continuousAt_extChartAt + theorem continuousAt_extChartAt_symm'' + theorem continuousAt_extChartAt_symm' + theorem continuousAt_extChartAt_symm + theorem continuousOn_extChartAt + theorem continuousOn_extChartAt_symm + def extChartAt + theorem extChartAt_coe + theorem extChartAt_coe_symm + theorem extChartAt_model_space_eq_id + theorem extChartAt_preimage_inter_eq + theorem extChartAt_preimage_mem_nhds' + theorem extChartAt_preimage_mem_nhds + theorem extChartAt_preimage_mem_nhdsWithin' + theorem extChartAt_preimage_mem_nhdsWithin + theorem extChartAt_prod + theorem extChartAt_self_apply + theorem extChartAt_self_eq + theorem extChartAt_source + theorem extChartAt_source_mem_nhds' + theorem extChartAt_source_mem_nhds + theorem extChartAt_source_mem_nhdsWithin' + theorem extChartAt_source_mem_nhdsWithin + theorem extChartAt_target + theorem extChartAt_target_mem_nhdsWithin' + theorem extChartAt_target_mem_nhdsWithin + theorem extChartAt_target_subset_range + theorem extChartAt_to_inv + theorem ext_chart_model_space_apply + theorem ext_coord_change_source + theorem isOpen_extChartAt_preimage' + theorem isOpen_extChartAt_preimage + theorem isOpen_extChartAt_source + theorem map_extChartAt_nhds' + theorem map_extChartAt_nhds + theorem map_extChartAt_nhdsWithin' + theorem map_extChartAt_nhdsWithin + theorem map_extChartAt_nhdsWithin_eq_image' + theorem map_extChartAt_nhdsWithin_eq_image + theorem map_extChartAt_symm_nhdsWithin' + theorem map_extChartAt_symm_nhdsWithin + theorem map_extChartAt_symm_nhdsWithin_range' + theorem map_extChartAt_symm_nhdsWithin_range + theorem mapsTo_extChartAt + theorem mem_extChartAt_source + def modelWithCornersSelf + theorem modelWithCornersSelf_coe + theorem modelWithCornersSelf_coe_symm + theorem modelWithCornersSelf_localEquiv + theorem modelWithCornersSelf_prod + theorem modelWithCorners_prod_coe + theorem modelWithCorners_prod_coe_symm + theorem modelWithCorners_prod_toLocalEquiv + theorem nhdsWithin_extChartAt_target_eq' + theorem nhdsWithin_extChartAt_target_eq + theorem ofSet_mem_contDiffGroupoid + theorem smoothManifoldWithCorners_of_contDiffOn + theorem symm_trans_mem_contDiffGroupoid + def writtenInExtChartAt 2023-06-05 05:02:04 bb78855 feat: port Algebra.Lie.Solvable (#4634) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Lie/Solvable.lean + theorem Function.Injective.lieAlgebra_isSolvable + theorem Function.Surjective.lieAlgebra_isSolvable + theorem LieAlgebra.LieIdeal.solvable_iff_le_radical + theorem LieAlgebra.abelian_derivedAbelianOfIdeal + theorem LieAlgebra.abelian_iff_derived_one_eq_bot + theorem LieAlgebra.abelian_iff_derived_succ_eq_bot + theorem LieAlgebra.abelian_of_solvable_ideal_eq_bot_iff + theorem LieAlgebra.center_le_radical + theorem LieAlgebra.derivedLength_eq_derivedLengthOfIdeal + theorem LieAlgebra.derivedLength_zero + def LieAlgebra.derivedSeriesOfIdeal + theorem LieAlgebra.derivedSeriesOfIdeal_add + theorem LieAlgebra.derivedSeriesOfIdeal_add_le_add + theorem LieAlgebra.derivedSeriesOfIdeal_antitone + theorem LieAlgebra.derivedSeriesOfIdeal_le + theorem LieAlgebra.derivedSeriesOfIdeal_le_self + theorem LieAlgebra.derivedSeriesOfIdeal_mono + theorem LieAlgebra.derivedSeriesOfIdeal_succ + theorem LieAlgebra.derivedSeriesOfIdeal_succ_le + theorem LieAlgebra.derivedSeriesOfIdeal_zero + theorem LieAlgebra.derivedSeries_def + theorem LieAlgebra.derivedSeries_of_bot_eq_bot + theorem LieAlgebra.derivedSeries_of_derivedLength_succ + theorem LieAlgebra.le_solvable_ideal_solvable + def LieAlgebra.radical + theorem LieAlgebra.solvable_iff_equiv_solvable + theorem LieHom.isSolvable_range + theorem LieIdeal.derivedSeries_add_eq_bot + theorem LieIdeal.derivedSeries_eq_bot_iff + theorem LieIdeal.derivedSeries_eq_derivedSeriesOfIdeal_comap + theorem LieIdeal.derivedSeries_eq_derivedSeriesOfIdeal_map + theorem LieIdeal.derivedSeries_map_eq + theorem LieIdeal.derivedSeries_map_le 2023-06-05 04:51:37 6cb58e7 feat: port Analysis.InnerProductSpace.EuclideanDist (#4675) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/InnerProductSpace/EuclideanDist.lean + theorem ContDiff.euclidean_dist + def Euclidean.ball + theorem Euclidean.ball_eq_preimage + theorem Euclidean.ball_mem_nhds + theorem Euclidean.ball_subset_closedBall + def Euclidean.closedBall + theorem Euclidean.closedBall_eq_image + theorem Euclidean.closedBall_eq_preimage + theorem Euclidean.closedBall_mem_nhds + theorem Euclidean.isClosed_closedBall + theorem Euclidean.isOpen_ball + theorem Euclidean.mem_ball_self + theorem Euclidean.nhds_basis_ball + theorem Euclidean.nhds_basis_closedBall + def toEuclidean 2023-06-05 03:59:33 311c241 feat: port Analysis.SpecialFunctions.Arsinh (#4674) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/SpecialFunctions/Arsinh.lean + theorem ContDiff.arsinh + theorem ContDiffAt.arsinh + theorem ContDiffOn.arsinh + theorem ContDiffWithinAt.arsinh + theorem Continuous.arsinh + theorem ContinuousOn.arsinh + theorem Differentiable.arsinh + theorem DifferentiableAt.arsinh + theorem DifferentiableOn.arsinh + theorem DifferentiableWithinAt.arsinh + theorem Filter.Tendsto.arsinh + theorem HasDerivAt.arsinh + theorem HasDerivWithinAt.arsinh + theorem HasFDerivAt.arsinh + theorem HasFDerivWithinAt.arsinh + theorem HasStrictDerivAt.arsinh + theorem HasStrictFDerivAt.arsinh + def Real.arsinh + theorem Real.arsinh_bijective + theorem Real.arsinh_eq_zero_iff + theorem Real.arsinh_inj + theorem Real.arsinh_injective + theorem Real.arsinh_le_arsinh + theorem Real.arsinh_lt_arsinh + theorem Real.arsinh_neg + theorem Real.arsinh_neg_iff + theorem Real.arsinh_nonneg_iff + theorem Real.arsinh_nonpos_iff + theorem Real.arsinh_pos_iff + theorem Real.arsinh_sinh + theorem Real.arsinh_strictMono + theorem Real.arsinh_surjective + theorem Real.arsinh_zero + theorem Real.contDiff_arsinh + theorem Real.continuous_arsinh + theorem Real.cosh_arsinh + theorem Real.differentiable_arsinh + theorem Real.exp_arsinh + theorem Real.hasDerivAt_arsinh + theorem Real.hasStrictDerivAt_arsinh + def Real.sinhEquiv + def Real.sinhHomeomorph + def Real.sinhOrderIso + theorem Real.sinh_arsinh + theorem Real.sinh_bijective + theorem Real.sinh_surjective 2023-06-05 03:09:12 af31097 feat: port Analysis.SpecialFunctions.Complex.LogDeriv (#4671) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/SpecialFunctions/Complex/LogDeriv.lean + theorem Complex.contDiffAt_log + theorem Complex.hasStrictDerivAt_log + theorem Complex.hasStrictFDerivAt_log_real + theorem Complex.isOpenMap_exp + theorem Differentiable.clog + theorem DifferentiableAt.clog + theorem DifferentiableOn.clog + theorem DifferentiableWithinAt.clog + theorem HasDerivAt.clog + theorem HasDerivAt.clog_real + theorem HasDerivWithinAt.clog + theorem HasDerivWithinAt.clog_real + theorem HasFDerivAt.clog + theorem HasFDerivWithinAt.clog + theorem HasStrictDerivAt.clog + theorem HasStrictDerivAt.clog_real + theorem HasStrictFDerivAt.clog 2023-06-05 02:03:49 d27c625 feat: port Analysis.InnerProductSpace.Calculus (#4659) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/InnerProductSpace/Calculus.lean + theorem ContDiff.dist + theorem ContDiff.inner + theorem ContDiff.norm + theorem ContDiff.norm_sq + theorem ContDiffAt.dist + theorem ContDiffAt.norm + theorem ContDiffOn.dist + theorem ContDiffOn.inner + theorem ContDiffOn.norm + theorem ContDiffOn.norm_sq + theorem ContDiffWithinAt.dist + theorem ContDiffWithinAt.inner + theorem ContDiffWithinAt.norm + theorem ContDiffWithinAt.norm_sq + theorem Differentiable.dist + theorem Differentiable.inner + theorem Differentiable.norm + theorem Differentiable.norm_sq + theorem DifferentiableAt.dist + theorem DifferentiableAt.inner + theorem DifferentiableAt.norm + theorem DifferentiableAt.norm_sq + theorem DifferentiableOn.dist + theorem DifferentiableOn.inner + theorem DifferentiableOn.norm + theorem DifferentiableOn.norm_sq + theorem DifferentiableWithinAt.dist + theorem DifferentiableWithinAt.inner + theorem DifferentiableWithinAt.norm + theorem DifferentiableWithinAt.norm_sq + theorem HasDerivAt.inner + theorem HasDerivWithinAt.inner + theorem HasFDerivAt.inner + theorem HasFDerivWithinAt.inner + theorem HasStrictFDerivAt.inner + theorem contDiffAt_euclidean + theorem contDiffAt_inner + theorem contDiffAt_norm + theorem contDiffOn_euclidean + theorem contDiffOn_homeomorphUnitBall_symm + theorem contDiffWithinAt_euclidean + theorem contDiff_euclidean + theorem contDiff_homeomorphUnitBall + theorem contDiff_inner + theorem contDiff_norm_sq + theorem deriv_inner_apply + theorem differentiableAt_euclidean + theorem differentiableOn_euclidean + theorem differentiableWithinAt_euclidean + theorem differentiable_euclidean + theorem differentiable_inner + def fderivInnerClm + theorem fderivInnerClm_apply + theorem fderiv_inner_apply + theorem hasFDerivWithinAt_euclidean + theorem hasStrictFDerivAt_euclidean + theorem hasStrictFDerivAt_norm_sq 2023-06-05 02:03:48 f30dbfc feat: use `TryThis` infrastructure for `polyrith` (#4655) ESTIMATED CHANGES Modified Mathlib/Tactic/Polyrith.lean 2023-06-05 02:03:47 116627d feat: port CategoryTheory.Bicategory.NaturalTransformation (#4594) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Bicategory/NaturalTransformation.lean + def CategoryTheory.OplaxNatTrans.Modification.id + def CategoryTheory.OplaxNatTrans.Modification.vcomp + theorem CategoryTheory.OplaxNatTrans.Modification.whiskerLeft_naturality + theorem CategoryTheory.OplaxNatTrans.Modification.whiskerRight_naturality + structure CategoryTheory.OplaxNatTrans.Modification + def CategoryTheory.OplaxNatTrans.ModificationIso.ofComponents + def CategoryTheory.OplaxNatTrans.id + def CategoryTheory.OplaxNatTrans.vcomp + theorem CategoryTheory.OplaxNatTrans.whiskerLeft_naturality_comp + theorem CategoryTheory.OplaxNatTrans.whiskerLeft_naturality_id + theorem CategoryTheory.OplaxNatTrans.whiskerLeft_naturality_naturality + theorem CategoryTheory.OplaxNatTrans.whiskerRight_naturality_comp + theorem CategoryTheory.OplaxNatTrans.whiskerRight_naturality_id + theorem CategoryTheory.OplaxNatTrans.whiskerRight_naturality_naturality + structure CategoryTheory.OplaxNatTrans 2023-06-05 02:03:45 6424b6a fix: `push_neg` check that inferred correct instances (#4478) Adds a defeq check that `push_neg` infers the correct instances for `LinearOrder` transformations. Also uses the transformation theorem to produce the LE/LT/GE/GT instance rather than inferring it separately, since otherwise these answers can be different. Fixes error reported by Sophie Morel [on Zulip](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/Strange.20push_neg.20behaviour/near/362022527). ESTIMATED CHANGES Modified Mathlib/Tactic/PushNeg.lean Modified test/push_neg.lean 2023-06-05 02:03:44 2ac19d6 feat: port Analysis.SpecialFunctions.CompareExp (#4412) I had to add several `norm_cast` to force coercion. My guess is that in Lean3 `simp` also tried `norm_cast` but here we need to invoke the tactic explicitly. There are two `calc` proofs that I'm having difficulty resolving, both because of type casting issues. - [x] isLittleO_im_pow_exp_re - [x] isLittleO_cpow_exp Please feel free to push to this branch. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/SpecialFunctions/CompareExp.lean + theorem Complex.IsExpCmpFilter.abs_im_pow_eventuallyLE_exp_re + theorem Complex.IsExpCmpFilter.eventually_ne + theorem Complex.IsExpCmpFilter.isLittleO_cpow_exp + theorem Complex.IsExpCmpFilter.isLittleO_cpow_mul_exp + theorem Complex.IsExpCmpFilter.isLittleO_exp_cpow + theorem Complex.IsExpCmpFilter.isLittleO_im_pow_exp_re + theorem Complex.IsExpCmpFilter.isLittleO_log_abs_re + theorem Complex.IsExpCmpFilter.isLittleO_log_re_re + theorem Complex.IsExpCmpFilter.isLittleO_pow_mul_exp + theorem Complex.IsExpCmpFilter.isLittleO_zpow_mul_exp + theorem Complex.IsExpCmpFilter.of_boundedUnder_abs_im + theorem Complex.IsExpCmpFilter.of_boundedUnder_im + theorem Complex.IsExpCmpFilter.of_isBigO_im_re_pow + theorem Complex.IsExpCmpFilter.of_isBigO_im_re_rpow + theorem Complex.IsExpCmpFilter.tendsto_abs + theorem Complex.IsExpCmpFilter.tendsto_abs_re + structure Complex.IsExpCmpFilter 2023-06-05 01:30:22 8951bb6 feat: port CategoryTheory.Monoidal.Rigid.OfEquivalence (#4660) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Monoidal/Rigid/OfEquivalence.lean + def CategoryTheory.exactPairingOfFaithful + def CategoryTheory.exactPairingOfFullyFaithful + def CategoryTheory.hasLeftDualOfEquivalence + def CategoryTheory.hasRightDualOfEquivalence + def CategoryTheory.leftRigidCategoryOfEquivalence + def CategoryTheory.rightRigidCategoryOfEquivalence + def CategoryTheory.rigidCategoryOfEquivalence 2023-06-05 01:30:21 208633b feat: port CategoryTheory.Monoidal.OfChosenFiniteProducts.Symmetric (#4658) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Monoidal/OfChosenFiniteProducts/Symmetric.lean + theorem CategoryTheory.MonoidalOfChosenFiniteProducts.braiding_naturality + theorem CategoryTheory.MonoidalOfChosenFiniteProducts.hexagon_forward + theorem CategoryTheory.MonoidalOfChosenFiniteProducts.hexagon_reverse + theorem CategoryTheory.MonoidalOfChosenFiniteProducts.symmetry + def CategoryTheory.symmetricOfChosenFiniteProducts 2023-06-05 01:30:20 459cffe chore: mark `LocalEquiv.toFun` as `coe` (#4640) ESTIMATED CHANGES Modified Mathlib/Logic/Equiv/LocalEquiv.lean 2023-06-05 01:20:08 e3fdf99 refactor: add abbreviations with explicit arguments (#4641) Lean 4 does not support `[]` fields in classes, so some definitions like `ChartedSpace.atlas` have fewer explicit arguments than they used to have in Lean 3. This PR adds abbreviations in the root namespace with explicit arguments. ESTIMATED CHANGES Modified Mathlib/Geometry/Manifold/ChartedSpace.lean +/- theorem StructureGroupoid.subset_maximalAtlas +/- def achart +/- theorem achart_def +/- theorem achart_val + theorem chart_mem_atlas +/- theorem chart_source_mem_nhds +/- theorem chart_target_mem_nhds +/- theorem coe_achart + theorem mem_chart_source +/- theorem mem_chart_target Modified Mathlib/Geometry/Manifold/LocalInvariantProperties.lean 2023-06-05 00:28:49 ea2f669 feat: port Analysis.Calculus.Series (#4657) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/Calculus/Series.lean + theorem contDiff_tsum + theorem contDiff_tsum_of_eventually + theorem continuousOn_tsum + theorem continuous_tsum + theorem differentiable_tsum + theorem fderiv_tsum + theorem fderiv_tsum_apply + theorem hasFDerivAt_tsum + theorem hasFDerivAt_tsum_of_isPreconnected + theorem iteratedFDeriv_tsum + theorem iteratedFDeriv_tsum_apply + theorem summable_of_summable_hasFDerivAt + theorem summable_of_summable_hasFDerivAt_of_isPreconnected + theorem tendstoUniformlyOn_tsum + theorem tendstoUniformlyOn_tsum_nat + theorem tendstoUniformly_tsum + theorem tendstoUniformly_tsum_nat 2023-06-05 00:03:12 716d796 feat: port Analysis.SpecialFunctions.Trigonometric.Deriv (#4653) - [x] depends on: #4651 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/SpecialFunctions/Trigonometric/Deriv.lean + theorem Complex.contDiff_cos + theorem Complex.contDiff_cosh + theorem Complex.contDiff_sin + theorem Complex.contDiff_sinh + theorem Complex.deriv_cos' + theorem Complex.deriv_cos + theorem Complex.deriv_cosh + theorem Complex.deriv_sin + theorem Complex.deriv_sinh + theorem Complex.differentiableAt_cos + theorem Complex.differentiableAt_cosh + theorem Complex.differentiableAt_sin + theorem Complex.differentiableAt_sinh + theorem Complex.differentiable_cos + theorem Complex.differentiable_cosh + theorem Complex.differentiable_sin + theorem Complex.differentiable_sinh + theorem Complex.hasDerivAt_cos + theorem Complex.hasDerivAt_cosh + theorem Complex.hasDerivAt_sin + theorem Complex.hasDerivAt_sinh + theorem Complex.hasStrictDerivAt_cos + theorem Complex.hasStrictDerivAt_cosh + theorem Complex.hasStrictDerivAt_sin + theorem Complex.hasStrictDerivAt_sinh + theorem ContDiff.ccos + theorem ContDiff.ccosh + theorem ContDiff.cos + theorem ContDiff.cosh + theorem ContDiff.csin + theorem ContDiff.csinh + theorem ContDiff.sin + theorem ContDiff.sinh + theorem ContDiffAt.ccos + theorem ContDiffAt.ccosh + theorem ContDiffAt.cos + theorem ContDiffAt.cosh + theorem ContDiffAt.csin + theorem ContDiffAt.csinh + theorem ContDiffAt.sin + theorem ContDiffAt.sinh + theorem ContDiffOn.ccos + theorem ContDiffOn.ccosh + theorem ContDiffOn.cos + theorem ContDiffOn.cosh + theorem ContDiffOn.csin + theorem ContDiffOn.csinh + theorem ContDiffOn.sin + theorem ContDiffOn.sinh + theorem ContDiffWithinAt.ccos + theorem ContDiffWithinAt.ccosh + theorem ContDiffWithinAt.cos + theorem ContDiffWithinAt.cosh + theorem ContDiffWithinAt.csin + theorem ContDiffWithinAt.csinh + theorem ContDiffWithinAt.sin + theorem ContDiffWithinAt.sinh + theorem Differentiable.ccos + theorem Differentiable.ccosh + theorem Differentiable.cos + theorem Differentiable.cosh + theorem Differentiable.csin + theorem Differentiable.csinh + theorem Differentiable.sin + theorem Differentiable.sinh + theorem DifferentiableAt.ccos + theorem DifferentiableAt.ccosh + theorem DifferentiableAt.cos + theorem DifferentiableAt.cosh + theorem DifferentiableAt.csin + theorem DifferentiableAt.csinh + theorem DifferentiableAt.sin + theorem DifferentiableAt.sinh + theorem DifferentiableOn.ccos + theorem DifferentiableOn.ccosh + theorem DifferentiableOn.cos + theorem DifferentiableOn.cosh + theorem DifferentiableOn.csin + theorem DifferentiableOn.csinh + theorem DifferentiableOn.sin + theorem DifferentiableOn.sinh + theorem DifferentiableWithinAt.ccos + theorem DifferentiableWithinAt.ccosh + theorem DifferentiableWithinAt.cos + theorem DifferentiableWithinAt.cosh + theorem DifferentiableWithinAt.csin + theorem DifferentiableWithinAt.csinh + theorem DifferentiableWithinAt.sin + theorem DifferentiableWithinAt.sinh + theorem HasDerivAt.ccos + theorem HasDerivAt.ccosh + theorem HasDerivAt.cos + theorem HasDerivAt.cosh + theorem HasDerivAt.csin + theorem HasDerivAt.csinh + theorem HasDerivAt.sin + theorem HasDerivAt.sinh + theorem HasDerivWithinAt.ccos + theorem HasDerivWithinAt.ccosh + theorem HasDerivWithinAt.cos + theorem HasDerivWithinAt.cosh + theorem HasDerivWithinAt.csin + theorem HasDerivWithinAt.csinh + theorem HasDerivWithinAt.sin + theorem HasDerivWithinAt.sinh + theorem HasFDerivAt.ccos + theorem HasFDerivAt.ccosh + theorem HasFDerivAt.cos + theorem HasFDerivAt.cosh + theorem HasFDerivAt.csin + theorem HasFDerivAt.csinh + theorem HasFDerivAt.sin + theorem HasFDerivAt.sinh + theorem HasFDerivWithinAt.ccos + theorem HasFDerivWithinAt.ccosh + theorem HasFDerivWithinAt.cos + theorem HasFDerivWithinAt.cosh + theorem HasFDerivWithinAt.csin + theorem HasFDerivWithinAt.csinh + theorem HasFDerivWithinAt.sin + theorem HasFDerivWithinAt.sinh + theorem HasStrictDerivAt.ccos + theorem HasStrictDerivAt.ccosh + theorem HasStrictDerivAt.cos + theorem HasStrictDerivAt.cosh + theorem HasStrictDerivAt.csin + theorem HasStrictDerivAt.csinh + theorem HasStrictDerivAt.sin + theorem HasStrictDerivAt.sinh + theorem HasStrictFDerivAt.ccos + theorem HasStrictFDerivAt.ccosh + theorem HasStrictFDerivAt.cos + theorem HasStrictFDerivAt.cosh + theorem HasStrictFDerivAt.csin + theorem HasStrictFDerivAt.csinh + theorem HasStrictFDerivAt.sin + theorem HasStrictFDerivAt.sinh + theorem Real.abs_sinh + theorem Real.contDiff_cos + theorem Real.contDiff_cosh + theorem Real.contDiff_sin + theorem Real.contDiff_sinh + theorem Real.cosh_le_cosh + theorem Real.cosh_lt_cosh + theorem Real.cosh_strictMonoOn + theorem Real.deriv_cos' + theorem Real.deriv_cos + theorem Real.deriv_cosh + theorem Real.deriv_sin + theorem Real.deriv_sinh + theorem Real.differentiableAt_cos + theorem Real.differentiableAt_cosh + theorem Real.differentiableAt_sin + theorem Real.differentiableAt_sinh + theorem Real.differentiable_cos + theorem Real.differentiable_cosh + theorem Real.differentiable_sin + theorem Real.differentiable_sinh + theorem Real.hasDerivAt_cos + theorem Real.hasDerivAt_cosh + theorem Real.hasDerivAt_sin + theorem Real.hasDerivAt_sinh + theorem Real.hasStrictDerivAt_cos + theorem Real.hasStrictDerivAt_cosh + theorem Real.hasStrictDerivAt_sin + theorem Real.hasStrictDerivAt_sinh + theorem Real.one_le_cosh + theorem Real.one_lt_cosh + theorem Real.self_le_sinh_iff + theorem Real.self_lt_sinh_iff + theorem Real.sinh_inj + theorem Real.sinh_injective + theorem Real.sinh_le_self_iff + theorem Real.sinh_le_sinh + theorem Real.sinh_lt_self_iff + theorem Real.sinh_lt_sinh + theorem Real.sinh_neg_iff + theorem Real.sinh_nonneg_iff + theorem Real.sinh_nonpos_iff + theorem Real.sinh_pos_iff + theorem Real.sinh_strictMono + theorem Real.sinh_sub_id_strictMono + theorem derivWithin_ccos + theorem derivWithin_ccosh + theorem derivWithin_cos + theorem derivWithin_cosh + theorem derivWithin_csin + theorem derivWithin_csinh + theorem derivWithin_sin + theorem derivWithin_sinh + theorem deriv_ccos + theorem deriv_ccosh + theorem deriv_cos + theorem deriv_cosh + theorem deriv_csin + theorem deriv_csinh + theorem deriv_sin + theorem deriv_sinh + theorem fderivWithin_ccos + theorem fderivWithin_ccosh + theorem fderivWithin_cos + theorem fderivWithin_cosh + theorem fderivWithin_csin + theorem fderivWithin_csinh + theorem fderivWithin_sin + theorem fderivWithin_sinh + theorem fderiv_ccos + theorem fderiv_ccosh + theorem fderiv_cos + theorem fderiv_cosh + theorem fderiv_csin + theorem fderiv_csinh + theorem fderiv_sin + theorem fderiv_sinh 2023-06-04 23:02:22 f712a29 feat: port Analysis.SpecialFunctions.ExpDeriv (#4651) This incorporates the changes from https://github.com/leanprover-community/mathlib/pull/19139 which haven't hit mathport yet due to mathport CI failing for a few days. (Hopefully it will succeed on the next run.) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/SpecialFunctions/ExpDeriv.lean + theorem Complex.contDiff_exp + theorem Complex.deriv_exp + theorem Complex.differentiableAt_exp + theorem Complex.differentiable_exp + theorem Complex.hasDerivAt_exp + theorem Complex.hasStrictDerivAt_exp + theorem Complex.hasStrictFDerivAt_exp_real + theorem Complex.iter_deriv_exp + theorem ContDiff.cexp + theorem ContDiff.exp + theorem ContDiffAt.cexp + theorem ContDiffAt.exp + theorem ContDiffOn.cexp + theorem ContDiffOn.exp + theorem ContDiffWithinAt.cexp + theorem ContDiffWithinAt.exp + theorem Differentiable.cexp + theorem Differentiable.exp + theorem DifferentiableAt.cexp + theorem DifferentiableAt.exp + theorem DifferentiableOn.cexp + theorem DifferentiableOn.exp + theorem DifferentiableWithinAt.cexp + theorem DifferentiableWithinAt.exp + theorem HasDerivAt.cexp + theorem HasDerivAt.exp + theorem HasDerivWithinAt.cexp + theorem HasDerivWithinAt.exp + theorem HasFDerivAt.cexp + theorem HasFDerivAt.exp + theorem HasFDerivWithinAt.cexp + theorem HasFDerivWithinAt.exp + theorem HasStrictDerivAt.cexp + theorem HasStrictDerivAt.exp + theorem HasStrictFDerivAt.cexp + theorem HasStrictFDerivAt.exp + theorem Real.contDiff_exp + theorem Real.deriv_exp + theorem Real.differentiableAt_exp + theorem Real.differentiable_exp + theorem Real.hasDerivAt_exp + theorem Real.hasStrictDerivAt_exp + theorem Real.iter_deriv_exp + theorem derivWithin_cexp + theorem derivWithin_exp + theorem deriv_cexp + theorem deriv_exp + theorem fderivWithin_exp + theorem fderiv_exp 2023-06-04 22:38:49 756d1f8 feat: port Analysis.Calculus.LagrangeMultipliers (#4663) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/Calculus/LagrangeMultipliers.lean + theorem IsLocalExtrOn.exists_linear_map_of_hasStrictFDerivAt + theorem IsLocalExtrOn.exists_multipliers_of_hasStrictFDerivAt + theorem IsLocalExtrOn.exists_multipliers_of_hasStrictFDerivAt_1d + theorem IsLocalExtrOn.linear_dependent_of_hasStrictFDerivAt + theorem IsLocalExtrOn.range_ne_top_of_hasStrictFDerivAt 2023-06-04 20:49:18 04d916c feat: port Analysis.SpecialFunctions.Sqrt (#4529) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/SpecialFunctions/Sqrt.lean + theorem ContDiff.sqrt + theorem ContDiffAt.sqrt + theorem ContDiffOn.sqrt + theorem ContDiffWithinAt.sqrt + theorem Differentiable.sqrt + theorem DifferentiableAt.sqrt + theorem DifferentiableOn.sqrt + theorem DifferentiableWithinAt.sqrt + theorem HasDerivAt.sqrt + theorem HasDerivWithinAt.sqrt + theorem HasFDerivAt.sqrt + theorem HasFDerivWithinAt.sqrt + theorem HasStrictDerivAt.sqrt + theorem HasStrictFDerivAt.sqrt + theorem Real.contDiffAt_sqrt + theorem Real.deriv_sqrt_aux + theorem Real.hasDerivAt_sqrt + theorem Real.hasStrictDerivAt_sqrt + theorem derivWithin_sqrt + theorem deriv_sqrt + theorem fderivWithin_sqrt + theorem fderiv_sqrt 2023-06-04 18:51:31 9a28a6c feat: add instances about `volume` (#4628) Lean 3 was able to apply, e.g., instances about `measure_theory.measure.prod` to the volume on the Cartesian product. Lean 4 can't do this, so we need to duplicate many instances. ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Constructions/Pi.lean Modified Mathlib/MeasureTheory/Constructions/Prod/Basic.lean Modified Mathlib/MeasureTheory/Measure/Haar/OfBasis.lean Modified Mathlib/MeasureTheory/Measure/Lebesgue/Basic.lean 2023-06-04 17:52:15 6ab2e35 feat: port Analysis.Calculus.Inverse (#4644) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/Calculus/Inverse.lean + theorem ApproximatesLinearOn.approximatesLinearOn_iff_lipschitzOnWith + theorem ApproximatesLinearOn.closedBall_subset_target + theorem ApproximatesLinearOn.exists_homeomorph_extension + theorem ApproximatesLinearOn.image_mem_nhds + theorem ApproximatesLinearOn.inverse_continuousOn + theorem ApproximatesLinearOn.lipschitz_sub + theorem ApproximatesLinearOn.map_nhds_eq + theorem ApproximatesLinearOn.mono_num + theorem ApproximatesLinearOn.mono_set + theorem ApproximatesLinearOn.open_image + theorem ApproximatesLinearOn.surjOn_closedBall_of_nonlinearRightInverse + def ApproximatesLinearOn.toHomeomorph + def ApproximatesLinearOn.toLocalEquiv + def ApproximatesLinearOn.toLocalHomeomorph + theorem ApproximatesLinearOn.toLocalHomeomorph_coe + theorem ApproximatesLinearOn.toLocalHomeomorph_source + theorem ApproximatesLinearOn.toLocalHomeomorph_target + theorem ApproximatesLinearOn.to_inv + def ApproximatesLinearOn + theorem ContDiffAt.image_mem_toLocalHomeomorph_target + def ContDiffAt.localInverse + theorem ContDiffAt.localInverse_apply_image + theorem ContDiffAt.mem_toLocalHomeomorph_source + def ContDiffAt.toLocalHomeomorph + theorem ContDiffAt.toLocalHomeomorph_coe + theorem ContDiffAt.to_localInverse + def HasStrictDerivAt.localInverse + theorem HasStrictDerivAt.map_nhds_eq + theorem HasStrictDerivAt.to_localInverse + theorem HasStrictDerivAt.to_local_left_inverse + theorem HasStrictFDerivAt.approximates_deriv_on_nhds + theorem HasStrictFDerivAt.approximates_deriv_on_open_nhds + theorem HasStrictFDerivAt.eventually_left_inverse + theorem HasStrictFDerivAt.eventually_right_inverse + theorem HasStrictFDerivAt.image_mem_toLocalHomeomorph_target + def HasStrictFDerivAt.localInverse + theorem HasStrictFDerivAt.localInverse_apply_image + theorem HasStrictFDerivAt.localInverse_continuousAt + theorem HasStrictFDerivAt.localInverse_def + theorem HasStrictFDerivAt.localInverse_tendsto + theorem HasStrictFDerivAt.localInverse_unique + theorem HasStrictFDerivAt.map_nhds_eq_of_equiv + theorem HasStrictFDerivAt.map_nhds_eq_of_surj + theorem HasStrictFDerivAt.mem_toLocalHomeomorph_source + def HasStrictFDerivAt.toLocalHomeomorph + theorem HasStrictFDerivAt.toLocalHomeomorph_coe + theorem HasStrictFDerivAt.to_localInverse + theorem HasStrictFDerivAt.to_local_left_inverse + theorem approximatesLinearOn_empty + theorem open_map_of_strict_deriv + theorem open_map_of_strict_fderiv_equiv 2023-06-04 14:19:57 e2b5ca3 style: allow `_` for an argument in `notation3` & replace `_foo` with `_` in `notation3` (#4652) ESTIMATED CHANGES Modified Mathlib/Algebra/BigOperators/Finprod.lean +/- theorem finprod_cond_eq_left +/- theorem finprod_cond_eq_right +/- theorem finprod_eq_if +/- theorem finprod_mem_mulSupport +/- theorem finprod_one Modified Mathlib/Algebra/DirectSum/Basic.lean Modified Mathlib/Algebra/DirectSum/Finsupp.lean +/- def finsuppLEquivDirectSum Modified Mathlib/Algebra/DirectSum/Module.lean Modified Mathlib/Algebra/DirectSum/Ring.lean Modified Mathlib/Algebra/Module/Torsion.lean Modified Mathlib/Algebra/MonoidAlgebra/ToDirectSum.lean +/- def AddMonoidAlgebra.toDirectSum +/- def DirectSum.toAddMonoidAlgebra +/- theorem DirectSum.toAddMonoidAlgebra_add +/- theorem DirectSum.toAddMonoidAlgebra_toDirectSum Modified Mathlib/AlgebraicGeometry/PrimeSpectrum/Basic.lean Modified Mathlib/AlgebraicGeometry/ProjectiveSpectrum/Topology.lean Modified Mathlib/Analysis/Analytic/Basic.lean Modified Mathlib/Analysis/BoxIntegral/Box/Basic.lean Modified Mathlib/Analysis/BoxIntegral/Partition/Basic.lean Modified Mathlib/Analysis/BoxIntegral/Partition/Filter.lean Modified Mathlib/Analysis/Convex/Cone/Basic.lean Modified Mathlib/Analysis/Convex/Gauge.lean Modified Mathlib/Analysis/Convex/Hull.lean Modified Mathlib/Analysis/LocallyConvex/BalancedCoreHull.lean Modified Mathlib/Analysis/LocallyConvex/WithSeminorms.lean Modified Mathlib/Analysis/NormedSpace/Pointwise.lean Modified Mathlib/Data/Dfinsupp/Basic.lean Modified Mathlib/Data/Dfinsupp/Multiset.lean +/- def Dfinsupp.toMultiset +/- theorem Dfinsupp.toMultiset_toDfinsupp +/- def Multiset.equivDfinsupp +/- def Multiset.toDfinsupp Modified Mathlib/Data/Finsupp/ToDfinsupp.lean +/- def Dfinsupp.toFinsupp +/- theorem Dfinsupp.toFinsupp_add +/- theorem Dfinsupp.toFinsupp_coe +/- theorem Dfinsupp.toFinsupp_neg +/- theorem Dfinsupp.toFinsupp_sub +/- theorem Dfinsupp.toFinsupp_support +/- theorem Dfinsupp.toFinsupp_toDfinsupp +/- def Finsupp.toDfinsupp Modified Mathlib/Data/Polynomial/RingDivision.lean Modified Mathlib/Data/Real/Basic.lean +/- theorem Real.ciInf_const_zero +/- theorem Real.ciSup_const_zero Modified Mathlib/Data/Real/ENNReal.lean +/- theorem ENNReal.iSup_zero_eq_zero Modified Mathlib/Data/Real/NNReal.lean +/- theorem NNReal.iInf_const_zero Modified Mathlib/Data/Set/Finite.lean Modified Mathlib/Data/Set/Lattice.lean +/- theorem Set.iInter_const +/- theorem Set.iInter_eq_if +/- theorem Set.iInter_univ +/- theorem Set.iUnion_const +/- theorem Set.iUnion_empty +/- theorem Set.iUnion_eq_if +/- theorem Set.iUnion_nonempty_self +/- theorem Set.iUnion_subset_iUnion_const +/- theorem Set.sInter_eq_biInter +/- theorem Set.sUnion_eq_biUnion Modified Mathlib/Geometry/Manifold/ChartedSpace.lean Modified Mathlib/GroupTheory/Subgroup/Basic.lean Modified Mathlib/LinearAlgebra/Basic.lean +/- theorem LinearMap.ker_smul' Modified Mathlib/LinearAlgebra/Dfinsupp.lean Modified Mathlib/LinearAlgebra/LinearIndependent.lean Modified Mathlib/LinearAlgebra/PiTensorProduct.lean +/- def PiTensorProduct.isEmptyEquiv +/- theorem PiTensorProduct.lift_reindex +/- def PiTensorProduct.reindex +/- theorem PiTensorProduct.reindex_reindex +/- def PiTensorProduct.subsingletonEquiv +/- def PiTensorProduct.tmulEquiv Modified Mathlib/LinearAlgebra/TensorPower.lean +/- theorem TensorPower.gradedMonoid_eq_of_cast Modified Mathlib/Mathport/Notation.lean Modified Mathlib/MeasureTheory/Constructions/BorelSpace/Basic.lean Modified Mathlib/MeasureTheory/Constructions/Pi.lean Modified Mathlib/MeasureTheory/Constructions/Polish.lean Modified Mathlib/MeasureTheory/Constructions/Prod/Basic.lean Modified Mathlib/MeasureTheory/Covering/VitaliFamily.lean Modified Mathlib/MeasureTheory/Decomposition/SignedHahn.lean Modified Mathlib/MeasureTheory/Function/AEMeasurableOrder.lean Modified Mathlib/MeasureTheory/Function/Egorov.lean Modified Mathlib/MeasureTheory/Function/L1Space.lean +/- theorem MeasureTheory.lintegral_nnnorm_zero Modified Mathlib/MeasureTheory/Function/LpSeminorm.lean Modified Mathlib/MeasureTheory/Function/SimpleFunc.lean Modified Mathlib/MeasureTheory/Group/Measure.lean Modified Mathlib/MeasureTheory/Integral/Lebesgue.lean +/- theorem MeasureTheory.lintegral_const +/- theorem MeasureTheory.lintegral_const_lt_top +/- theorem MeasureTheory.lintegral_one +/- theorem MeasureTheory.lintegral_zero +/- theorem MeasureTheory.set_lintegral_const +/- theorem MeasureTheory.set_lintegral_one Modified Mathlib/MeasureTheory/Measure/Content.lean Modified Mathlib/MeasureTheory/Measure/GiryMonad.lean Modified Mathlib/MeasureTheory/Measure/MeasureSpace.lean +/- theorem MeasureTheory.Measure.le_count_apply Modified Mathlib/MeasureTheory/Measure/MeasureSpaceDef.lean +/- theorem MeasureTheory.measure_eq_iInf Modified Mathlib/MeasureTheory/Measure/OuterMeasure.lean +/- theorem MeasureTheory.OuterMeasure.trim_eq_iInf Modified Mathlib/MeasureTheory/Measure/Regular.lean Modified Mathlib/MeasureTheory/Measure/Stieltjes.lean Modified Mathlib/NumberTheory/Liouville/Residual.lean Modified Mathlib/Order/CompactlyGenerated.lean Modified Mathlib/Order/CompleteLattice.lean +/- theorem iInf_const +/- theorem iInf_const_mono +/- theorem iInf_eq_if +/- theorem iInf_le_iInf₂ +/- theorem iInf_split_single +/- theorem iInf_subtype'' +/- theorem iInf_top +/- theorem iSup_bot +/- theorem iSup_const +/- theorem iSup_const_le +/- theorem iSup_const_mono +/- theorem iSup_eq_if +/- theorem iSup_split_single +/- theorem iSup_subtype'' +/- theorem iSup₂_le_iSup +/- theorem le_iInf_const Modified Mathlib/Order/ConditionallyCompleteLattice/Basic.lean +/- theorem ciInf_const +/- theorem ciSup_const Modified Mathlib/Order/Filter/Bases.lean +/- theorem Filter.HasBasis.eq_biInf +/- theorem Filter.HasBasis.sInter_sets Modified Mathlib/Order/Filter/Basic.lean +/- theorem Filter.eventually_const +/- theorem Filter.eventually_false_iff_eq_bot +/- theorem Filter.eventually_true +/- theorem Filter.frequently_const +/- theorem Filter.frequently_false +/- theorem Filter.frequently_true_iff_neBot Modified Mathlib/Order/Filter/Germ.lean +/- theorem Filter.const_eventuallyEq' Modified Mathlib/Order/Filter/Ultrafilter.lean Modified Mathlib/Order/Interval.lean Modified Mathlib/Order/LiminfLimsup.lean Modified Mathlib/Order/SuccPred/Basic.lean +/- theorem Order.pred_eq_iSup +/- theorem Order.succ_eq_iInf Modified Mathlib/Order/SupIndep.lean +/- theorem CompleteLattice.independent_def Modified Mathlib/Probability/Independence/Basic.lean Modified Mathlib/Probability/Independence/ZeroOne.lean Modified Mathlib/RingTheory/Coprime/Ideal.lean Modified Mathlib/RingTheory/Filtration.lean Modified Mathlib/RingTheory/FiniteType.lean Modified Mathlib/RingTheory/Ideal/Operations.lean Modified Mathlib/RingTheory/Polynomial/Basic.lean Modified Mathlib/Topology/Algebra/ContinuousMonoidHom.lean Modified Mathlib/Topology/Algebra/InfiniteSum/Basic.lean +/- theorem tsum_zero' +/- theorem tsum_zero Modified Mathlib/Topology/Algebra/InfiniteSum/Order.lean Modified Mathlib/Topology/Algebra/Monoid.lean Modified Mathlib/Topology/Algebra/WithZeroTopology.lean +/- theorem WithZeroTopology.nhds_eq_update +/- theorem WithZeroTopology.nhds_zero Modified Mathlib/Topology/Bases.lean Modified Mathlib/Topology/Basic.lean +/- theorem nhds_def' Modified Mathlib/Topology/Category/TopCat/Limits/Cofiltered.lean Modified Mathlib/Topology/Category/TopCat/Limits/Konig.lean Modified Mathlib/Topology/CompactOpen.lean Modified Mathlib/Topology/ContinuousOn.lean Modified Mathlib/Topology/FiberBundle/Basic.lean Modified Mathlib/Topology/Filter.lean +/- theorem Filter.nhds_nhds Modified Mathlib/Topology/Instances/ENNReal.lean +/- theorem ENNReal.nhds_top +/- theorem ENNReal.nhds_zero +/- theorem ENNReal.tsum_iSup_eq Modified Mathlib/Topology/Instances/EReal.lean +/- theorem EReal.nhds_bot +/- theorem EReal.nhds_top Modified Mathlib/Topology/Instances/NNReal.lean +/- theorem NNReal.nhds_zero Modified Mathlib/Topology/Instances/Real.lean Modified Mathlib/Topology/LocallyFinite.lean Modified Mathlib/Topology/MetricSpace/HausdorffDistance.lean Modified Mathlib/Topology/MetricSpace/Infsep.lean +/- theorem Set.einfsep_insert_le Modified Mathlib/Topology/MetricSpace/PartitionOfUnity.lean Modified Mathlib/Topology/Order/Basic.lean Modified Mathlib/Topology/Paracompact.lean Modified Mathlib/Topology/PartitionOfUnity.lean Modified Mathlib/Topology/Separation.lean Modified Mathlib/Topology/ShrinkingLemma.lean Modified Mathlib/Topology/SubsetProperties.lean Modified Mathlib/Topology/UniformSpace/Basic.lean Modified Mathlib/Topology/UniformSpace/Separation.lean Modified Mathlib/Topology/UniformSpace/UniformConvergenceTopology.lean 2023-06-04 13:34:43 abdf755 feat: port Analysis.Complex.RealDeriv (#4642) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/Complex/RealDeriv.lean + theorem ContDiff.real_of_complex + theorem ContDiffAt.real_of_complex + theorem DifferentiableAt.conformalAt + theorem HasDerivAt.comp_of_real + theorem HasDerivAt.complexToReal_fderiv' + theorem HasDerivAt.complexToReal_fderiv + theorem HasDerivAt.of_real_comp + theorem HasDerivAt.real_of_complex + theorem HasDerivWithinAt.complexToReal_fderiv' + theorem HasDerivWithinAt.complexToReal_fderiv + theorem HasStrictDerivAt.complexToReal_fderiv' + theorem HasStrictDerivAt.complexToReal_fderiv + theorem HasStrictDerivAt.real_of_complex + theorem conformalAt_iff_differentiableAt_or_differentiableAt_comp_conj 2023-06-04 09:37:56 c9bd9b5 feat: port Analysis.Calculus.ContDiff (#4532) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/Calculus/ContDiff.lean + theorem ContDiff.add + theorem ContDiff.clm_apply + theorem ContDiff.clm_comp + theorem ContDiff.comp + theorem ContDiff.comp_contDiffAt + theorem ContDiff.comp_contDiffOn + theorem ContDiff.comp_contDiffWithinAt + theorem ContDiff.comp_contDiff_on₂ + theorem ContDiff.comp_contDiff_on₃ + theorem ContDiff.comp_continuousLinearMap + theorem ContDiff.comp₂ + theorem ContDiff.comp₃ + theorem ContDiff.const_smul + theorem ContDiff.contDiff_fderiv_apply + theorem ContDiff.continuousLinearMap_comp + theorem ContDiff.continuous_deriv + theorem ContDiff.div + theorem ContDiff.div_const + theorem ContDiff.fderiv_apply + theorem ContDiff.fderiv_right + theorem ContDiff.fst' + theorem ContDiff.fst + theorem ContDiff.hasStrictDerivAt + theorem ContDiff.hasStrictFDerivAt + theorem ContDiff.inv + theorem ContDiff.iterate_deriv' + theorem ContDiff.iterate_deriv + theorem ContDiff.mul + theorem ContDiff.neg + theorem ContDiff.pow + theorem ContDiff.prod + theorem ContDiff.prod_map + theorem ContDiff.restrict_scalars + theorem ContDiff.smul + theorem ContDiff.smulRight + theorem ContDiff.snd' + theorem ContDiff.snd + theorem ContDiff.sub + theorem ContDiff.sum + theorem ContDiffAt.add + theorem ContDiffAt.comp_contDiffWithinAt + theorem ContDiffAt.const_smul + theorem ContDiffAt.continuousLinearMap_comp + theorem ContDiffAt.exists_lipschitzOnWith + theorem ContDiffAt.exists_lipschitzOnWith_of_nnnorm_lt + theorem ContDiffAt.fderiv_right + theorem ContDiffAt.fst'' + theorem ContDiffAt.fst' + theorem ContDiffAt.fst + theorem ContDiffAt.hasStrictDerivAt' + theorem ContDiffAt.hasStrictDerivAt + theorem ContDiffAt.hasStrictFDerivAt' + theorem ContDiffAt.hasStrictFDerivAt + theorem ContDiffAt.neg + theorem ContDiffAt.prod + theorem ContDiffAt.prod_map' + theorem ContDiffAt.prod_map + theorem ContDiffAt.restrict_scalars + theorem ContDiffAt.smul + theorem ContDiffAt.snd'' + theorem ContDiffAt.snd' + theorem ContDiffAt.snd + theorem ContDiffAt.sub + theorem ContDiffAt.sum + theorem ContDiffOn.add + theorem ContDiffOn.clm_apply + theorem ContDiffOn.clm_comp + theorem ContDiffOn.comp' + theorem ContDiffOn.comp + theorem ContDiffOn.comp_continuousLinearMap + theorem ContDiffOn.const_smul + theorem ContDiffOn.continuousLinearMap_comp + theorem ContDiffOn.continuousOn_derivWithin + theorem ContDiffOn.continuousOn_deriv_of_open + theorem ContDiffOn.continuousOn_fderivWithin_apply + theorem ContDiffOn.deriv_of_open + theorem ContDiffOn.div + theorem ContDiffOn.div_const + theorem ContDiffOn.fst + theorem ContDiffOn.inv + theorem ContDiffOn.mul + theorem ContDiffOn.neg + theorem ContDiffOn.pow + theorem ContDiffOn.prod + theorem ContDiffOn.prod_map + theorem ContDiffOn.restrict_scalars + theorem ContDiffOn.smul + theorem ContDiffOn.snd + theorem ContDiffOn.sub + theorem ContDiffOn.sum + theorem ContDiffWithinAt.add + theorem ContDiffWithinAt.comp' + theorem ContDiffWithinAt.comp + theorem ContDiffWithinAt.comp_continuousLinearMap + theorem ContDiffWithinAt.comp_of_mem + theorem ContDiffWithinAt.const_smul + theorem ContDiffWithinAt.continuousLinearMap_comp + theorem ContDiffWithinAt.div + theorem ContDiffWithinAt.div_const + theorem ContDiffWithinAt.exists_lipschitzOnWith + theorem ContDiffWithinAt.fderivWithin'' + theorem ContDiffWithinAt.fderivWithin' + theorem ContDiffWithinAt.fderivWithin_apply + theorem ContDiffWithinAt.fderivWithin_right + theorem ContDiffWithinAt.hasFDerivWithinAt_nhds + theorem ContDiffWithinAt.inv + theorem ContDiffWithinAt.mul + theorem ContDiffWithinAt.neg + theorem ContDiffWithinAt.pow + theorem ContDiffWithinAt.prod + theorem ContDiffWithinAt.prod_map' + theorem ContDiffWithinAt.prod_map + theorem ContDiffWithinAt.restrict_scalars + theorem ContDiffWithinAt.smul + theorem ContDiffWithinAt.sub + theorem ContDiffWithinAt.sum + theorem Continuous.fderiv + theorem ContinuousLinearEquiv.comp_contDiffAt_iff + theorem ContinuousLinearEquiv.comp_contDiffOn_iff + theorem ContinuousLinearEquiv.comp_contDiffWithinAt_iff + theorem ContinuousLinearEquiv.comp_contDiff_iff + theorem ContinuousLinearEquiv.contDiff + theorem ContinuousLinearEquiv.contDiffAt_comp_iff + theorem ContinuousLinearEquiv.contDiffOn_comp_iff + theorem ContinuousLinearEquiv.contDiffWithinAt_comp_iff + theorem ContinuousLinearEquiv.contDiff_comp_iff + theorem ContinuousLinearEquiv.iteratedFDerivWithin_comp_left + theorem ContinuousLinearEquiv.iteratedFDerivWithin_comp_right + theorem ContinuousLinearMap.contDiff + theorem ContinuousLinearMap.iteratedFDerivWithin_comp_left + theorem ContinuousLinearMap.iteratedFDerivWithin_comp_right + theorem ContinuousLinearMap.iteratedFDeriv_comp_left + theorem ContinuousLinearMap.iteratedFDeriv_comp_right + theorem ContinuousLinearMap.norm_iteratedFDerivWithin_le_of_bilinear + theorem ContinuousLinearMap.norm_iteratedFDerivWithin_le_of_bilinear_aux + theorem ContinuousLinearMap.norm_iteratedFDerivWithin_le_of_bilinear_of_le_one + theorem ContinuousLinearMap.norm_iteratedFDeriv_le_of_bilinear + theorem ContinuousLinearMap.norm_iteratedFDeriv_le_of_bilinear_of_le_one + theorem HasFTaylorSeriesUpToOn.add + theorem HasFTaylorSeriesUpToOn.compContinuousLinearMap + theorem HasFTaylorSeriesUpToOn.continuousLinearMap_comp + theorem HasFTaylorSeriesUpToOn.exists_lipschitzOnWith + theorem HasFTaylorSeriesUpToOn.exists_lipschitzOnWith_of_nnnorm_lt + theorem HasFTaylorSeriesUpToOn.hasStrictFDerivAt + theorem HasFTaylorSeriesUpToOn.prod + theorem HasFTaylorSeriesUpToOn.restrictScalars + theorem Homeomorph.contDiff_symm + theorem Homeomorph.contDiff_symm_deriv + theorem IsBoundedBilinearMap.contDiff + theorem IsBoundedLinearMap.contDiff + theorem LinearIsometry.contDiff + theorem LinearIsometry.norm_iteratedFDerivWithin_comp_left + theorem LinearIsometry.norm_iteratedFDeriv_comp_left + theorem LinearIsometryEquiv.contDiff + theorem LinearIsometryEquiv.norm_iteratedFDerivWithin_comp_left + theorem LinearIsometryEquiv.norm_iteratedFDerivWithin_comp_right + theorem LinearIsometryEquiv.norm_iteratedFDeriv_comp_left + theorem LinearIsometryEquiv.norm_iteratedFDeriv_comp_right + theorem LocalHomeomorph.contDiffAt_symm + theorem LocalHomeomorph.contDiffAt_symm_deriv + theorem contDiffAt_const + theorem contDiffAt_fst + theorem contDiffAt_id + theorem contDiffAt_inv + theorem contDiffAt_map_inverse + theorem contDiffAt_of_subsingleton + theorem contDiffAt_pi + theorem contDiffAt_prod' + theorem contDiffAt_prod + theorem contDiffAt_ring_inverse + theorem contDiffAt_snd + theorem contDiffOn_clm_apply + theorem contDiffOn_const + theorem contDiffOn_fderivWithin_apply + theorem contDiffOn_fst + theorem contDiffOn_id + theorem contDiffOn_inv + theorem contDiffOn_of_subsingleton + theorem contDiffOn_pi + theorem contDiffOn_prod' + theorem contDiffOn_prod + theorem contDiffOn_snd + theorem contDiffOn_succ_iff_derivWithin + theorem contDiffOn_succ_iff_deriv_of_open + theorem contDiffOn_succ_iff_fderiv_apply + theorem contDiffOn_succ_of_fderiv_apply + theorem contDiffOn_top_iff_derivWithin + theorem contDiffOn_top_iff_deriv_of_open + theorem contDiffWithinAt_const + theorem contDiffWithinAt_fst + theorem contDiffWithinAt_id + theorem contDiffWithinAt_of_subsingleton + theorem contDiffWithinAt_pi + theorem contDiffWithinAt_prod' + theorem contDiffWithinAt_prod + theorem contDiffWithinAt_snd + theorem contDiff_add + theorem contDiff_apply + theorem contDiff_apply_apply + theorem contDiff_clm_apply_iff + theorem contDiff_const + theorem contDiff_const_smul + theorem contDiff_fst + theorem contDiff_id + theorem contDiff_mul + theorem contDiff_neg + theorem contDiff_of_subsingleton + theorem contDiff_one_iff_deriv + theorem contDiff_pi + theorem contDiff_prod' + theorem contDiff_prod + theorem contDiff_prodAssoc + theorem contDiff_prodAssoc_symm + theorem contDiff_prod_mk_left + theorem contDiff_prod_mk_right + theorem contDiff_smul + theorem contDiff_snd + theorem contDiff_succ_iff_deriv + theorem contDiff_succ_iff_fderiv_apply + theorem contDiff_top_iff_deriv + theorem contDiff_zero_fun + theorem hasFTaylorSeriesUpToOn_pi' + theorem hasFTaylorSeriesUpToOn_pi + theorem iteratedFDerivWithin_add_apply' + theorem iteratedFDerivWithin_add_apply + theorem iteratedFDerivWithin_const_smul_apply + theorem iteratedFDerivWithin_neg_apply + theorem iteratedFDeriv_add_apply' + theorem iteratedFDeriv_add_apply + theorem iteratedFDeriv_const_of_ne + theorem iteratedFDeriv_const_smul_apply + theorem iteratedFDeriv_neg_apply + theorem iteratedFDeriv_succ_const + theorem iteratedFDeriv_zero_fun + theorem norm_iteratedFDerivWithin_clm_apply + theorem norm_iteratedFDerivWithin_clm_apply_const + theorem norm_iteratedFDerivWithin_comp_le + theorem norm_iteratedFDerivWithin_comp_le_aux + theorem norm_iteratedFDerivWithin_mul_le + theorem norm_iteratedFDerivWithin_smul_le + theorem norm_iteratedFDeriv_clm_apply + theorem norm_iteratedFDeriv_clm_apply_const + theorem norm_iteratedFDeriv_comp_le + theorem norm_iteratedFDeriv_mul_le + theorem norm_iteratedFDeriv_smul_le 2023-06-04 08:48:24 9e1c6b3 feat: port CategoryTheory.Monoidal.FunctorCategory (#4646) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Monoidal/FunctorCategory.lean + def CategoryTheory.Monoidal.FunctorCategory.tensorHom + def CategoryTheory.Monoidal.FunctorCategory.tensorObj + theorem CategoryTheory.Monoidal.associator_hom_app + theorem CategoryTheory.Monoidal.associator_inv_app + theorem CategoryTheory.Monoidal.leftUnitor_hom_app + theorem CategoryTheory.Monoidal.leftUnitor_inv_app + theorem CategoryTheory.Monoidal.rightUnitor_hom_app + theorem CategoryTheory.Monoidal.rightUnitor_inv_app + theorem CategoryTheory.Monoidal.tensorHom_app + theorem CategoryTheory.Monoidal.tensorObj_map + theorem CategoryTheory.Monoidal.tensorObj_obj + theorem CategoryTheory.Monoidal.tensorUnit_map + theorem CategoryTheory.Monoidal.tensorUnit_obj 2023-06-04 08:38:36 6f6b64f feat: port LinearAlgebra.TensorPower (#4648) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/LinearAlgebra/TensorPower.lean + theorem PiTensorProduct.gradedMonoid_eq_of_reindex_cast + def TensorPower.algebraMap₀ + theorem TensorPower.algebraMap₀_eq_smul_one + theorem TensorPower.algebraMap₀_mul + theorem TensorPower.algebraMap₀_mul_algebraMap₀ + theorem TensorPower.algebraMap₀_one + def TensorPower.cast + theorem TensorPower.cast_cast + theorem TensorPower.cast_eq_cast + theorem TensorPower.cast_refl + theorem TensorPower.cast_symm + theorem TensorPower.cast_tprod + theorem TensorPower.cast_trans + theorem TensorPower.gMul_def + theorem TensorPower.gMul_eq_coe_linearMap + theorem TensorPower.gOne_def + theorem TensorPower.galgebra_toFun_def + theorem TensorPower.gradedMonoid_eq_of_cast + def TensorPower.mulEquiv + theorem TensorPower.mul_algebraMap₀ + theorem TensorPower.mul_assoc + theorem TensorPower.mul_one + theorem TensorPower.one_mul + theorem TensorPower.tprod_mul_tprod + def TensorPower 2023-06-04 08:28:11 0353f47 feat: port Algebra.Lie.TensorProduct (#4638) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Lie/TensorProduct.lean + def LieModule.toModuleHom + theorem LieModule.toModuleHom_apply + theorem LieSubmodule.lieIdeal_oper_eq_tensor_map_range + theorem TensorProduct.LieModule.coe_liftLie_eq_lift_coe + theorem TensorProduct.LieModule.coe_linearMap_map + def TensorProduct.LieModule.hasBracketAux + theorem TensorProduct.LieModule.lie_tmul_right + def TensorProduct.LieModule.lift + def TensorProduct.LieModule.liftLie + theorem TensorProduct.LieModule.liftLie_apply + theorem TensorProduct.LieModule.lift_apply + def TensorProduct.LieModule.mapIncl + theorem TensorProduct.LieModule.mapIncl_def 2023-06-04 07:30:07 eb95d89 feat: port NumberTheory.SumFourSquares (#4604) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Data/Nat/Order/Lemmas.lean + theorem Nat.mul_div_eq_iff_dvd + theorem Nat.mul_div_lt_iff_not_dvd Modified Mathlib/Data/Nat/Parity.lean + theorem Odd.not_two_dvd_nat Modified Mathlib/FieldTheory/Finite/Basic.lean + theorem Nat.sq_add_sq_modEq + theorem Nat.sq_add_sq_zmodEq Added Mathlib/NumberTheory/SumFourSquares.lean + theorem Int.exists_sq_add_sq_add_one_eq_k + theorem Int.exists_sq_add_sq_add_one_eq_mul + theorem Int.lt_of_sum_four_squares_eq_mul + theorem Int.sq_add_sq_of_two_mul_sq_add_sq + theorem Nat.euler_four_squares + theorem Nat.sum_four_squares + theorem euler_four_squares 2023-06-04 05:44:58 0b92c7b style: recover `Is` of `Foo` which is ported from `is_foo` (#4639) I have misported `is_foo` to `Foo` because I misunderstood the rule for `IsLawfulFoo`. This PR recover `Is` of `Foo` which is ported from `is_foo`. This PR also renames some misported theorems. ESTIMATED CHANGES Modified Mathlib/Dynamics/Ergodic/Conservative.lean Modified Mathlib/Dynamics/Ergodic/Ergodic.lean +/- theorem PreErgodic.prob_eq_zero_or_one Modified Mathlib/Dynamics/Ergodic/MeasurePreserving.lean +/- theorem MeasureTheory.MeasurePreserving.exists_mem_image_mem Modified Mathlib/MeasureTheory/Constructions/BorelSpace/Basic.lean + theorem Continuous.isOpenPosMeasure_map - theorem Continuous.openPosMeasure_map +/- def Real.finiteSpanningSetsInIooRat +/- theorem Real.measure_ext_Ioo_rat Modified Mathlib/MeasureTheory/Constructions/Pi.lean Modified Mathlib/MeasureTheory/Constructions/Prod/Basic.lean +/- theorem measurable_measure_prod_mk_left_finite Modified Mathlib/MeasureTheory/Covering/Vitali.lean Modified Mathlib/MeasureTheory/Decomposition/Jordan.lean Modified Mathlib/MeasureTheory/Decomposition/UnsignedHahn.lean +/- theorem MeasureTheory.hahn_decomposition Modified Mathlib/MeasureTheory/Function/ConvergenceInMeasure.lean +/- theorem MeasureTheory.tendstoInMeasure_of_tendsto_ae +/- theorem MeasureTheory.tendstoInMeasure_of_tendsto_ae_of_stronglyMeasurable Modified Mathlib/MeasureTheory/Function/Egorov.lean +/- theorem MeasureTheory.tendstoUniformlyOn_of_ae_tendsto' Modified Mathlib/MeasureTheory/Function/L1Space.lean +/- theorem MeasureTheory.Memℒp.integrable +/- theorem MeasureTheory.Memℒp.integrable_norm_rpow' - theorem MeasureTheory.finiteMeasure_withDensity_ofReal +/- theorem MeasureTheory.hasFiniteIntegral_const +/- theorem MeasureTheory.hasFiniteIntegral_of_bounded +/- theorem MeasureTheory.integrable_average +/- theorem MeasureTheory.integrable_const + theorem MeasureTheory.isFiniteMeasure_withDensity_ofReal Modified Mathlib/MeasureTheory/Function/LocallyIntegrable.lean +/- theorem AntioneOn.integrableOn_isCompact +/- theorem Antitone.locallyIntegrable +/- theorem MeasureTheory.locallyIntegrableOn_const +/- theorem MeasureTheory.locallyIntegrable_const +/- theorem Monotone.locallyIntegrable +/- theorem MonotoneOn.integrableOn_isCompact Modified Mathlib/MeasureTheory/Function/LpSeminorm.lean +/- theorem MeasureTheory.Memℒp.memℒp_of_exponent_le +/- theorem MeasureTheory.Memℒp.of_bound +/- theorem MeasureTheory.memℒp_const +/- theorem MeasureTheory.snorm'_const' + theorem MeasureTheory.snorm'_const_of_isProbabilityMeasure - theorem MeasureTheory.snorm'_const_of_probabilityMeasure +/- theorem MeasureTheory.snorm'_le_snormEssSup +/- theorem MeasureTheory.snorm'_lt_top_of_snorm'_lt_top_of_exponent_le +/- theorem MeasureTheory.snorm_le_snorm_of_exponent_le Modified Mathlib/MeasureTheory/Function/LpSpace.lean +/- theorem BoundedContinuousFunction.toLp_inj +/- theorem BoundedContinuousFunction.toLp_injective +/- theorem ContinuousMap.hasSum_of_hasSum_Lp +/- theorem ContinuousMap.toLp_inj +/- theorem ContinuousMap.toLp_injective +/- theorem MeasureTheory.Lp.mem_Lp_of_ae_bound +/- theorem MeasureTheory.Lp.mem_Lp_of_ae_nnnorm_bound +/- theorem MeasureTheory.Lp.mem_lp_const +/- theorem MeasureTheory.Lp.nnnorm_le_of_ae_bound +/- theorem MeasureTheory.Lp.norm_le_of_ae_bound Modified Mathlib/MeasureTheory/Function/SimpleFuncDenseLp.lean - theorem MeasureTheory.SimpleFunc.integrable_of_finiteMeasure + theorem MeasureTheory.SimpleFunc.integrable_of_isFiniteMeasure - theorem MeasureTheory.SimpleFunc.memℒp_of_finiteMeasure + theorem MeasureTheory.SimpleFunc.memℒp_of_isFiniteMeasure Modified Mathlib/MeasureTheory/Function/UniformIntegrable.lean +/- theorem MeasureTheory.tendstoInMeasure_iff_tendsto_Lp +/- theorem MeasureTheory.tendsto_Lp_of_tendstoInMeasure +/- theorem MeasureTheory.tendsto_Lp_of_tendsto_ae +/- theorem MeasureTheory.tendsto_Lp_of_tendsto_ae_of_meas +/- theorem MeasureTheory.uniformIntegrable_iff +/- theorem MeasureTheory.uniformIntegrable_of' +/- theorem MeasureTheory.uniformIntegrable_of Modified Mathlib/MeasureTheory/Group/Action.lean + theorem MeasureTheory.isLocallyFiniteMeasure_of_smulInvariant - theorem MeasureTheory.locallyFiniteMeasure_of_smulInvariant Modified Mathlib/MeasureTheory/Group/Measure.lean - theorem MeasureTheory.Measure.HaarMeasure.smul + theorem MeasureTheory.Measure.IsHaarMeasure.smul - theorem MeasureTheory.Measure.haarMeasure_map - theorem MeasureTheory.Measure.haarMeasure_of_isCompact_nonempty_interior +/- theorem MeasureTheory.Measure.inv_eq_self + theorem MeasureTheory.Measure.isHaarMeasure_map + theorem MeasureTheory.Measure.isHaarMeasure_of_isCompact_nonempty_interior +/- theorem MeasureTheory.Measure.map_div_left_ae +/- theorem MeasureTheory.Measure.map_div_left_eq_self +/- theorem MeasureTheory.Measure.map_inv_eq_self +/- theorem MeasureTheory.Measure.map_mul_right_inv_eq_self +/- theorem MeasureTheory.Measure.measurePreserving_div_left +/- theorem MeasureTheory.Measure.measurePreserving_inv +/- theorem MeasureTheory.Measure.measurePreserving_mul_right_inv +/- theorem MeasureTheory.Measure.measure_inv +/- theorem MeasureTheory.Measure.measure_preimage_inv +/- theorem MeasureTheory.MeasurePreserving.mul_left +/- theorem MeasureTheory.MeasurePreserving.mul_right +/- theorem MeasureTheory.eventually_div_right_iff +/- theorem MeasureTheory.eventually_mul_left_iff +/- theorem MeasureTheory.eventually_mul_right_iff + theorem MeasureTheory.isMulLeftInvariant_map + theorem MeasureTheory.isOpenPosMeasure_of_mulLeftInvariant_of_compact + theorem MeasureTheory.isOpenPosMeasure_of_mulLeftInvariant_of_regular +/- theorem MeasureTheory.map_div_right_ae +/- theorem MeasureTheory.map_div_right_eq_self +/- theorem MeasureTheory.map_mul_left_ae +/- theorem MeasureTheory.map_mul_left_eq_self +/- theorem MeasureTheory.map_mul_right_ae +/- theorem MeasureTheory.map_mul_right_eq_self +/- theorem MeasureTheory.measurePreserving_div_right +/- theorem MeasureTheory.measurePreserving_mul_left +/- theorem MeasureTheory.measurePreserving_mul_right + theorem MeasureTheory.measure_lt_top_of_isCompact_of_isMulLeftInvariant' + theorem MeasureTheory.measure_lt_top_of_isCompact_of_isMulLeftInvariant - theorem MeasureTheory.measure_lt_top_of_isCompact_of_mulLeftInvariant' - theorem MeasureTheory.measure_lt_top_of_isCompact_of_mulLeftInvariant + theorem MeasureTheory.measure_ne_zero_iff_nonempty_of_isMulLeftInvariant - theorem MeasureTheory.measure_ne_zero_iff_nonempty_of_mulLeftInvariant + theorem MeasureTheory.measure_pos_iff_nonempty_of_isMulLeftInvariant - theorem MeasureTheory.measure_pos_iff_nonempty_of_mulLeftInvariant +/- theorem MeasureTheory.measure_preimage_mul +/- theorem MeasureTheory.measure_preimage_mul_right + theorem MeasureTheory.measure_univ_of_isMulLeftInvariant - theorem MeasureTheory.measure_univ_of_mulLeftInvariant - theorem MeasureTheory.mulLeftInvariant_map + theorem MeasureTheory.null_iff_of_isMulLeftInvariant - theorem MeasureTheory.null_iff_of_mulLeftInvariant - theorem MeasureTheory.openPosMeasure_of_mulLeftInvariant_of_compact - theorem MeasureTheory.openPosMeasure_of_mulLeftInvariant_of_regular Modified Mathlib/MeasureTheory/Group/Prod.lean + theorem MeasureTheory.absolutelyContinuous_of_isMulLeftInvariant - theorem MeasureTheory.absolutelyContinuous_of_mulLeftInvariant +/- theorem MeasureTheory.ae_measure_preimage_mul_right_lt_top +/- theorem MeasureTheory.ae_measure_preimage_mul_right_lt_top_of_ne_zero +/- theorem MeasureTheory.lintegral_lintegral_mul_inv +/- theorem MeasureTheory.measurePreserving_div_prod +/- theorem MeasureTheory.measurePreserving_mul_prod +/- theorem MeasureTheory.measurePreserving_mul_prod_inv +/- theorem MeasureTheory.measurePreserving_mul_prod_inv_right +/- theorem MeasureTheory.measurePreserving_prod_div +/- theorem MeasureTheory.measurePreserving_prod_div_swap +/- theorem MeasureTheory.measurePreserving_prod_inv_mul +/- theorem MeasureTheory.measurePreserving_prod_mul +/- theorem MeasureTheory.measurePreserving_prod_mul_right +/- theorem MeasureTheory.measurePreserving_prod_mul_swap +/- theorem MeasureTheory.measurePreserving_prod_mul_swap_right +/- theorem MeasureTheory.measure_eq_div_smul +/- theorem MeasureTheory.measure_lintegral_div_measure +/- theorem MeasureTheory.measure_mul_lintegral_eq +/- theorem MeasureTheory.measure_mul_measure_eq +/- theorem MeasureTheory.quasiMeasurePreserving_div +/- theorem MeasureTheory.quasiMeasurePreserving_div_left +/- theorem MeasureTheory.quasiMeasurePreserving_div_left_of_right_invariant +/- theorem MeasureTheory.quasiMeasurePreserving_div_of_right_invariant +/- theorem MeasureTheory.quasiMeasurePreserving_inv_of_right_invariant +/- theorem MeasureTheory.quasiMeasurePreserving_mul_left +/- theorem MeasureTheory.quasiMeasurePreserving_mul_right Modified Mathlib/MeasureTheory/Integral/IntegrableOn.lean Modified Mathlib/MeasureTheory/Integral/Lebesgue.lean - theorem MeasureTheory.exists_absolutelyContinuous_finiteMeasure + theorem MeasureTheory.exists_absolutelyContinuous_isFiniteMeasure - theorem MeasureTheory.finiteMeasure_withDensity + theorem MeasureTheory.isFiniteMeasure_withDensity +/- theorem MeasureTheory.lintegral_const_lt_top +/- theorem MeasureTheory.set_lintegral_const_lt_top Modified Mathlib/MeasureTheory/Integral/SetToL1.lean +/- theorem MeasureTheory.L1.SimpleFunc.setToL1SCLM_const +/- theorem MeasureTheory.L1.SimpleFunc.setToL1S_const +/- theorem MeasureTheory.L1.setToL1_const +/- theorem MeasureTheory.setToFun_const Modified Mathlib/MeasureTheory/Measure/Content.lean Modified Mathlib/MeasureTheory/Measure/Haar/Basic.lean +/- theorem MeasureTheory.Measure.div_mem_nhds_one_of_haar_pos - theorem MeasureTheory.Measure.haarMeasure_eq_smul_haarMeasure +/- theorem MeasureTheory.Measure.haarMeasure_unique + theorem MeasureTheory.Measure.isHaarMeasure_eq_smul_isHaarMeasure + theorem MeasureTheory.Measure.regular_of_isMulLeftInvariant - theorem MeasureTheory.Measure.regular_of_mulLeftInvariant Modified Mathlib/MeasureTheory/Measure/Haar/OfBasis.lean Modified Mathlib/MeasureTheory/Measure/Lebesgue/Basic.lean Modified Mathlib/MeasureTheory/Measure/MeasureSpace.lean - theorem MeasureTheory.CompactSpace.finiteMeasure + theorem MeasureTheory.CompactSpace.isFiniteMeasure + theorem MeasureTheory.IsProbabilityMeasure.ne_zero - theorem MeasureTheory.Measure.finiteAtFilterOfFinite + theorem MeasureTheory.Measure.finiteAtFilter_of_finite +/- theorem MeasureTheory.Measure.finiteAt_nhds - theorem MeasureTheory.Measure.finiteMeasureMap + theorem MeasureTheory.Measure.isFiniteMeasure_map + theorem MeasureTheory.Measure.isLocallyFiniteMeasure_of_le +/- theorem MeasureTheory.Measure.le_of_add_le_add_left - theorem MeasureTheory.Measure.locallyFiniteMeasure_of_le +/- theorem MeasureTheory.Measure.smul_finite - theorem MeasureTheory.ProbabilityMeasure.ne_zero +/- theorem MeasureTheory.ae_eq_univ_iff_measure_eq +/- theorem MeasureTheory.ae_iff_measure_eq +/- theorem MeasureTheory.ae_mem_iff_measure_eq +/- theorem MeasureTheory.coe_measureUnivNNReal - theorem MeasureTheory.finiteMeasureOfLe + theorem MeasureTheory.isFiniteMeasure_of_le + theorem MeasureTheory.isLocallyFiniteMeasure_of_isFiniteMeasureOnCompacts - theorem MeasureTheory.isProbabilityMeasureMap +/- theorem MeasureTheory.isProbabilityMeasureSmul + theorem MeasureTheory.isProbabilityMeasure_map - theorem MeasureTheory.locallyFiniteMeasure_of_finiteMeasureOnCompacts +/- theorem MeasureTheory.measureUnivNNReal_eq_zero +/- theorem MeasureTheory.measureUnivNNReal_pos +/- theorem MeasureTheory.measure_compl_le_add_iff +/- theorem MeasureTheory.measure_compl_le_add_of_le_add +/- theorem MeasureTheory.measure_lt_top +/- theorem MeasureTheory.measure_ne_top - theorem MeasureTheory.not_finiteMeasure_iff + theorem MeasureTheory.not_isFiniteMeasure_iff +/- theorem MeasureTheory.one_le_prob_iff +/- theorem MeasureTheory.prob_add_prob_compl +/- theorem MeasureTheory.prob_compl_eq_one_iff +/- theorem MeasureTheory.prob_compl_eq_one_sub +/- theorem MeasureTheory.prob_compl_eq_zero_iff +/- theorem MeasureTheory.prob_le_one +/- theorem MeasureTheory.sigmaFinite_bot_iff +/- theorem MeasureTheory.sigmaFinite_trim_bot_iff +/- theorem MeasureTheory.summable_measure_toReal - theorem finiteMeasure_iff_finiteMeasureOnCompacts_of_compactSpace + theorem isFiniteMeasure_iff_isFiniteMeasureOnCompacts_of_compactSpace Modified Mathlib/MeasureTheory/Measure/OpenPos.lean +/- theorem LE.le.isOpenPosMeasure + theorem MeasureTheory.Measure.isOpenPosMeasure_smul - theorem MeasureTheory.Measure.openPosMeasure_smul Modified Mathlib/MeasureTheory/Measure/Regular.lean +/- theorem MeasureTheory.Measure.InnerRegular.weaklyRegular_of_finite Modified Mathlib/MeasureTheory/Measure/Stieltjes.lean Modified Mathlib/MeasureTheory/Measure/Sub.lean +/- theorem MeasureTheory.Measure.sub_add_cancel_of_le +/- theorem MeasureTheory.Measure.sub_apply Modified Mathlib/MeasureTheory/Measure/VectorMeasure.lean +/- def MeasureTheory.Measure.toSignedMeasure +/- theorem MeasureTheory.Measure.toSignedMeasure_add +/- theorem MeasureTheory.Measure.toSignedMeasure_apply_measurable +/- theorem MeasureTheory.Measure.toSignedMeasure_congr +/- theorem MeasureTheory.Measure.toSignedMeasure_eq_toSignedMeasure_iff +/- theorem MeasureTheory.Measure.toSignedMeasure_smul +/- theorem MeasureTheory.Measure.toSignedMeasure_sub_apply Modified Mathlib/Probability/CondCount.lean + theorem ProbabilityTheory.condCount_isProbabilityMeasure - theorem ProbabilityTheory.condCount_probabilityMeasure Modified Mathlib/Probability/ConditionalProbability.lean +/- theorem ProbabilityTheory.cond_add_cond_compl_eq +/- theorem ProbabilityTheory.cond_cond_eq_cond_inter +/- theorem ProbabilityTheory.cond_eq_inv_mul_cond_mul + theorem ProbabilityTheory.cond_isProbabilityMeasure +/- theorem ProbabilityTheory.cond_mul_eq_inter +/- theorem ProbabilityTheory.cond_pos_of_inter_ne_zero - theorem ProbabilityTheory.cond_probabilityMeasure +/- theorem ProbabilityTheory.cond_univ Modified Mathlib/Probability/Independence/Basic.lean +/- theorem ProbabilityTheory.IndepSets.indep' +/- theorem ProbabilityTheory.iIndepFun.indepFun_finset +/- theorem ProbabilityTheory.iIndepFun.indepFun_finset_prod_of_not_mem +/- theorem ProbabilityTheory.iIndepFun.indepFun_prod +/- theorem ProbabilityTheory.iIndepFun.indepFun_prod_range_succ +/- theorem ProbabilityTheory.iIndepFun.mul +/- theorem ProbabilityTheory.iIndepSet.indep_generateFrom_le +/- theorem ProbabilityTheory.iIndepSet.indep_generateFrom_le_nat +/- theorem ProbabilityTheory.iIndepSet.indep_generateFrom_lt +/- theorem ProbabilityTheory.iIndepSet.indep_generateFrom_of_disjoint +/- theorem ProbabilityTheory.iIndepSets.iIndep +/- theorem ProbabilityTheory.indepSet_empty_left +/- theorem ProbabilityTheory.indepSet_empty_right +/- theorem ProbabilityTheory.indepSets_piiUnionInter_of_disjoint +/- theorem ProbabilityTheory.indep_iSup_of_disjoint Modified Mathlib/Probability/Independence/ZeroOne.lean +/- theorem ProbabilityTheory.measure_eq_zero_or_one_of_indepSetCat_self Modified Mathlib/Probability/ProbabilityMassFunction/Basic.lean +/- theorem Pmf.toMeasure_eq_iff_eq_toPmf +/- theorem Pmf.toPmf_eq_iff_toMeasure_eq 2023-06-03 19:30:03 5a5a09f feat: port Algebra.Lie.Abelian (#4631) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Lie/Abelian.lean + theorem Function.Injective.isLieAbelian + theorem Function.Surjective.isLieAbelian + theorem LieAlgebra.abelian_of_le_center + theorem LieAlgebra.ad_ker_eq_self_module_ker + theorem LieAlgebra.isLieAbelian_bot + theorem LieAlgebra.isLieAbelian_iff_center_eq_top + theorem LieAlgebra.self_module_ker_eq_center + theorem LieModule.coe_linearMap_maxTrivLinearMapEquivLieModuleHom + theorem LieModule.coe_linearMap_maxTrivLinearMapEquivLieModuleHom_symm + theorem LieModule.coe_maxTrivEquiv_apply + theorem LieModule.coe_maxTrivHom_apply + theorem LieModule.coe_maxTrivLinearMapEquivLieModuleHom + theorem LieModule.coe_maxTrivLinearMapEquivLieModuleHom_symm + theorem LieModule.ideal_oper_maxTrivSubmodule_eq_bot + theorem LieModule.isTrivial_iff_max_triv_eq_top + theorem LieModule.le_max_triv_iff_bracket_eq_bot + def LieModule.maxTrivEquiv + theorem LieModule.maxTrivEquiv_of_equiv_symm_eq_symm + theorem LieModule.maxTrivEquiv_of_refl_eq_refl + def LieModule.maxTrivHom + def LieModule.maxTrivLinearMapEquivLieModuleHom + def LieModule.maxTrivSubmodule + theorem LieModule.mem_maxTrivSubmodule + theorem LieModule.trivial_iff_le_maximal_trivial + theorem LieSubmodule.lie_abelian_iff_lie_self_eq_bot + theorem LieSubmodule.trivial_lie_oper_zero + theorem commutative_ring_iff_abelian_lie_ring + theorem lie_abelian_iff_equiv_lie_abelian + theorem trivial_lie_zero 2023-06-03 16:04:01 39e8384 feat: port LinearAlgebra.PiTensorProduct (#3361) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/LinearAlgebra/PiTensorProduct.lean + inductive PiTensorProduct.Eqv + theorem PiTensorProduct.add_tprodCoeff' + theorem PiTensorProduct.add_tprodCoeff + theorem PiTensorProduct.ext + def PiTensorProduct.isEmptyEquiv + theorem PiTensorProduct.isEmptyEquiv_apply_tprod + theorem PiTensorProduct.lift.tprod + theorem PiTensorProduct.lift.unique' + theorem PiTensorProduct.lift.unique + def PiTensorProduct.lift + def PiTensorProduct.liftAddHom + theorem PiTensorProduct.liftAux.smul + def PiTensorProduct.liftAux + theorem PiTensorProduct.liftAux_tprod + theorem PiTensorProduct.liftAux_tprodCoeff + theorem PiTensorProduct.lift_comp_reindex + theorem PiTensorProduct.lift_reindex + theorem PiTensorProduct.lift_symm + theorem PiTensorProduct.lift_tprod + def PiTensorProduct.reindex + theorem PiTensorProduct.reindex_comp_tprod + theorem PiTensorProduct.reindex_refl + theorem PiTensorProduct.reindex_reindex + theorem PiTensorProduct.reindex_symm + theorem PiTensorProduct.reindex_tprod + theorem PiTensorProduct.reindex_trans + theorem PiTensorProduct.smul_tprodCoeff' + theorem PiTensorProduct.smul_tprodCoeff + theorem PiTensorProduct.smul_tprodCoeff_aux + def PiTensorProduct.subsingletonEquiv + theorem PiTensorProduct.subsingletonEquiv_apply_tprod + def PiTensorProduct.tmulEquiv + theorem PiTensorProduct.tmulEquiv_apply + theorem PiTensorProduct.tmulEquiv_symm_apply + def PiTensorProduct.tprod + def PiTensorProduct.tprodCoeff + theorem PiTensorProduct.tprodCoeff_eq_smul_tprod + theorem PiTensorProduct.tprod_eq_tprodCoeff_one + theorem PiTensorProduct.zero_tprodCoeff' + theorem PiTensorProduct.zero_tprodCoeff + def PiTensorProduct 2023-06-03 15:03:58 bf2154e feat: port Algebra.Lie.IdealOperations (#4618) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Lie/IdealOperations.lean + theorem LieIdeal.comap_bracket_eq + theorem LieIdeal.comap_bracket_incl + theorem LieIdeal.comap_bracket_incl_of_le + theorem LieIdeal.comap_bracket_le + theorem LieIdeal.map_bracket_eq + theorem LieIdeal.map_bracket_le + theorem LieIdeal.map_comap_bracket_eq + theorem LieIdeal.map_comap_incl + theorem LieSubmodule.bot_lie + theorem LieSubmodule.comap_bracket_eq + theorem LieSubmodule.comap_map_eq + theorem LieSubmodule.inf_lie + theorem LieSubmodule.le_comap_map + theorem LieSubmodule.lieIdeal_oper_eq_linear_span' + theorem LieSubmodule.lieIdeal_oper_eq_linear_span + theorem LieSubmodule.lieIdeal_oper_eq_span + theorem LieSubmodule.lie_bot + theorem LieSubmodule.lie_coe_mem_lie + theorem LieSubmodule.lie_comm + theorem LieSubmodule.lie_eq_bot_iff + theorem LieSubmodule.lie_inf + theorem LieSubmodule.lie_le_iff + theorem LieSubmodule.lie_le_inf + theorem LieSubmodule.lie_le_left + theorem LieSubmodule.lie_le_right + theorem LieSubmodule.lie_mem_lie + theorem LieSubmodule.lie_sup + theorem LieSubmodule.map_bracket_eq + theorem LieSubmodule.map_comap_eq + theorem LieSubmodule.map_comap_incl + theorem LieSubmodule.map_comap_le + theorem LieSubmodule.mono_lie + theorem LieSubmodule.mono_lie_left + theorem LieSubmodule.mono_lie_right + theorem LieSubmodule.sup_lie 2023-06-03 14:52:18 b4fa258 chore(FieldTheory.Ratfunc): forward-port #19133 (#4580) This PR re-ports `FieldTheory/RatFunc`, now that the mathlib3 version uses `section`s, after PR[#19133](https://github.com/leanprover-community/mathlib/pull/19133). This closes [#4513](https://github.com/leanprover-community/mathlib4/issues/4513) and closes #4373. ESTIMATED CHANGES Modified Mathlib/FieldTheory/RatFunc.lean +/- def RatFunc.instAddCommGroup +/- def RatFunc.instCommMonoid +/- theorem RatFunc.ofFractionRing_add +/- theorem RatFunc.ofFractionRing_mul +/- theorem RatFunc.ofFractionRing_neg +/- theorem RatFunc.ofFractionRing_one +/- theorem RatFunc.ofFractionRing_sub +/- theorem RatFunc.ofFractionRing_zero +/- def RatFunc.toFractionRingRingEquiv +/- structure RatFunc 2023-06-03 12:56:22 f055042 feat: port Analysis.NormedSpace.DualNumber (#4627) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/NormedSpace/DualNumber.lean + theorem DualNumber.exp_eps + theorem DualNumber.exp_smul_eps 2023-06-03 12:46:53 1ca6740 feat: port NumberTheory.FermatPsp (#4605) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/NumberTheory/FermatPsp.lean + def FermatPsp.ProbablePrime + theorem FermatPsp.base_one + theorem FermatPsp.coprime_of_fermatPsp + theorem FermatPsp.coprime_of_probablePrime + theorem FermatPsp.exists_infinite_pseudoprimes + theorem FermatPsp.frequently_atTop_fermatPsp + theorem FermatPsp.infinite_setOf_prime_modeq_one + theorem FermatPsp.probablePrime_iff_modEq + def FermatPsp 2023-06-03 12:15:42 e28cc52 feat: port Analysis.NormedSpace.TrivSqZeroExt (#4626) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/NormedSpace/TrivSqZeroExt.lean + theorem TrivSqZeroExt.eq_smul_exp_of_invertible + theorem TrivSqZeroExt.eq_smul_exp_of_ne_zero + theorem TrivSqZeroExt.exp_def + theorem TrivSqZeroExt.exp_def_of_smul_comm + theorem TrivSqZeroExt.exp_inl + theorem TrivSqZeroExt.exp_inr + theorem TrivSqZeroExt.fst_exp + theorem TrivSqZeroExt.hasSum_expSeries_of_smul_comm + theorem TrivSqZeroExt.hasSum_fst_expSeries + theorem TrivSqZeroExt.hasSum_snd_expSeries_of_smul_comm + theorem TrivSqZeroExt.snd_exp 2023-06-03 11:08:30 bb6f514 fix: tinker with structure fields for better defeqs (#4507) This is the outcome of the discussion in the 29/5/23 porting meeting about the spurious `Div.div` in AdjoinRoot. ESTIMATED CHANGES Modified Mathlib/RingTheory/AdjoinRoot.lean 2023-06-03 10:55:31 46443dc feat: port Algebra.Jordan.Basic (#4625) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Jordan/Basic.lean + theorem commute_lmul_lmul_sq + theorem commute_lmul_rmul + theorem commute_lmul_rmul_sq + theorem commute_lmul_sq_rmul + theorem commute_rmul_rmul_sq + theorem two_nsmul_lie_lmul_lmul_add_add_eq_zero + theorem two_nsmul_lie_lmul_lmul_add_eq_lie_lmul_lmul_add 2023-06-03 10:55:30 1688e7b fix: move `dummy_label_attr` to a separate file (#4623) This setup was AFAIK never designed to work, and only worked by luck in this case. It is nondeterministic whether `dummy_label_attr` is evaluated before or after `labelExtensionMapRef`, depending on the iteration order over the constants in the file. See https://leanprover.zulipchat.com/#narrow/stream/270676-lean4/topic/initialization.20order.20fiasco/near/363247722 ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Tactic/LabelAttr.lean Added Mathlib/Util/DummyLabelAttr.lean Modified test/solve_by_elim/basic.lean 2023-06-03 10:45:47 09763c8 feat: port CategoryTheory.Adhesive (#4622) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Adhesive.lean + theorem CategoryTheory.Adhesive.isPullback_of_isPushout_of_mono_left + theorem CategoryTheory.Adhesive.isPullback_of_isPushout_of_mono_right + theorem CategoryTheory.Adhesive.mono_of_isPushout_of_mono_left + theorem CategoryTheory.Adhesive.mono_of_isPushout_of_mono_right + theorem CategoryTheory.Adhesive.van_kampen' + theorem CategoryTheory.IsPushout.IsVanKampen.flip + theorem CategoryTheory.IsPushout.IsVanKampen.isPullback_of_mono_left + theorem CategoryTheory.IsPushout.IsVanKampen.isPullback_of_mono_right + theorem CategoryTheory.IsPushout.IsVanKampen.mono_of_mono_left + theorem CategoryTheory.IsPushout.IsVanKampen.mono_of_mono_right + def CategoryTheory.IsPushout.IsVanKampen + theorem CategoryTheory.IsPushout.isVanKampen_iff + theorem CategoryTheory.IsPushout.isVanKampen_inl + theorem CategoryTheory.is_coprod_iff_isPushout 2023-06-03 10:21:43 43023e8 feat: port Topology.Sheaves.Sheafify (#4624) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Topology/Sheaves/Sheafify.lean + def TopCat.Presheaf.Sheafify.isGerm + def TopCat.Presheaf.Sheafify.isLocallyGerm + def TopCat.Presheaf.sheafify + def TopCat.Presheaf.sheafifyStalkIso + def TopCat.Presheaf.stalkToFiber + theorem TopCat.Presheaf.stalkToFiber_injective + theorem TopCat.Presheaf.stalkToFiber_surjective + def TopCat.Presheaf.toSheafify 2023-06-03 08:32:14 533e6e4 feat: port Algebra.Lie.Matrix (#4621) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Lie/Matrix.lean + def Matrix.lieConj + theorem Matrix.lieConj_apply + theorem Matrix.lieConj_symm_apply + def Matrix.reindexLieEquiv + theorem Matrix.reindexLieEquiv_apply + theorem Matrix.reindexLieEquiv_symm + def lieEquivMatrix' + theorem lieEquivMatrix'_apply + theorem lieEquivMatrix'_symm_apply 2023-06-03 08:22:43 3a5743e feat: port RingTheory.Derivation.Lie (#4620) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/RingTheory/Derivation/Basic.lean Added Mathlib/RingTheory/Derivation/Lie.lean + theorem Derivation.commutator_apply + theorem Derivation.commutator_coe_linear_map 2023-06-03 08:02:19 319e493 feat: port FieldTheory.ChevalleyWarning (#4619) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/FieldTheory/ChevalleyWarning.lean + theorem MvPolynomial.sum_eval_eq_zero + theorem char_dvd_card_solutions + theorem char_dvd_card_solutions_of_add_lt + theorem char_dvd_card_solutions_of_fintype_sum_lt + theorem char_dvd_card_solutions_of_sum_lt 2023-06-03 08:02:18 77a69e8 feat: port Analysis.Calculus.FDerivSymmetric (#4616) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/Calculus/FDerivSymmetric.lean + theorem Convex.isLittleO_alternate_sum_square + theorem Convex.second_derivative_within_at_symmetric + theorem Convex.second_derivative_within_at_symmetric_of_mem_interior + theorem Convex.taylor_approx_two_segment + theorem second_derivative_symmetric + theorem second_derivative_symmetric_of_eventually 2023-06-03 08:02:17 6303390 feat: basic API for the left homology of short complexes (#4609) This PR defines the left homology of short complexes and some basic API. ESTIMATED CHANGES Modified Mathlib/Algebra/Homology/ShortComplex/LeftHomology.lean + def CategoryTheory.ShortComplex.LeftHomologyMapData.comp + def CategoryTheory.ShortComplex.LeftHomologyMapData.compatibilityOfZerosOfIsColimitCokernelCofork + def CategoryTheory.ShortComplex.LeftHomologyMapData.compatibilityOfZerosOfIsLimitKernelFork + theorem CategoryTheory.ShortComplex.LeftHomologyMapData.congr_φH + theorem CategoryTheory.ShortComplex.LeftHomologyMapData.congr_φK + def CategoryTheory.ShortComplex.LeftHomologyMapData.id + def CategoryTheory.ShortComplex.LeftHomologyMapData.ofIsColimitCokernelCofork + def CategoryTheory.ShortComplex.LeftHomologyMapData.ofIsLimitKernelFork + def CategoryTheory.ShortComplex.LeftHomologyMapData.ofZeros + def CategoryTheory.ShortComplex.LeftHomologyMapData.zero + def CategoryTheory.ShortComplex.cyclesMap' + theorem CategoryTheory.ShortComplex.cyclesMap'_i + theorem CategoryTheory.ShortComplex.cyclesMap_i + theorem CategoryTheory.ShortComplex.f'_cyclesMap' + theorem CategoryTheory.ShortComplex.iCycles_g + def CategoryTheory.ShortComplex.leftHomologyMap' + def CategoryTheory.ShortComplex.leftHomologyMapData + theorem CategoryTheory.ShortComplex.leftHomologyπ_naturality' + theorem CategoryTheory.ShortComplex.leftHomologyπ_naturality + theorem CategoryTheory.ShortComplex.toCycles_i + theorem CategoryTheory.ShortComplex.toCycles_naturality 2023-06-03 07:53:05 eb679e0 refactor: fixes to material on sheaves and stalks (#4571) Mostly this is installing the `Opposite.rec'` induction principle as the default `@[eliminator]`, but also many other fixes and removing unnecessary steps from proofs. ESTIMATED CHANGES Modified Mathlib/AlgebraicGeometry/PresheafedSpace.lean Modified Mathlib/AlgebraicGeometry/PresheafedSpace/HasColimits.lean Modified Mathlib/AlgebraicGeometry/SheafedSpace.lean Modified Mathlib/AlgebraicGeometry/Stalks.lean Modified Mathlib/CategoryTheory/Limits/Cones.lean Modified Mathlib/CategoryTheory/Limits/Creates.lean + theorem CategoryTheory.hasColimits_of_hasColimits_createsColimits + theorem CategoryTheory.hasLimits_of_hasLimits_createsLimits - theorem CategoryTheory.has_colimits_of_has_colimits_creates_colimits - theorem CategoryTheory.has_limits_of_has_limits_creates_limits Modified Mathlib/CategoryTheory/Monad/Limits.lean + theorem CategoryTheory.hasColimits_of_reflective + theorem CategoryTheory.hasLimits_of_reflective - theorem CategoryTheory.has_colimits_of_reflective - theorem CategoryTheory.has_limits_of_reflective Modified Mathlib/CategoryTheory/Sites/Limits.lean Modified Mathlib/Data/Opposite.lean Modified Mathlib/Topology/Category/CompHaus/Basic.lean Modified Mathlib/Topology/Category/Profinite/Basic.lean Modified Mathlib/Topology/Sheaves/Limits.lean Modified Mathlib/Topology/Sheaves/Presheaf.lean Modified Mathlib/Topology/Sheaves/SheafCondition/PairwiseIntersections.lean Modified Mathlib/Topology/Sheaves/Stalks.lean 2023-06-03 07:38:34 6bd0913 feat: port NumberTheory.Liouville.LiouvilleNumber (#4615) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/NumberTheory/Liouville/LiouvilleNumber.lean + theorem LiouvilleNumber.aux_calc + def LiouvilleNumber.partialSum + theorem LiouvilleNumber.partialSum_add_remainder + theorem LiouvilleNumber.partialSum_eq_rat + theorem LiouvilleNumber.partialSum_succ + def LiouvilleNumber.remainder + theorem LiouvilleNumber.remainder_lt' + theorem LiouvilleNumber.remainder_lt + theorem LiouvilleNumber.remainder_pos + theorem LiouvilleNumber.remainder_summable + def liouvilleNumber + theorem liouville_liouvilleNumber + theorem transcendental_liouvilleNumber 2023-06-03 07:38:33 e611ab9 feat: port RingTheory.Derivation.ToSquareZero (#4614) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/RingTheory/Derivation/ToSquareZero.lean + def derivationToSquareZeroEquivLift + def derivationToSquareZeroOfLift + theorem derivationToSquareZeroOfLift_apply + def diffToIdealOfQuotientCompEq + theorem diffToIdealOfQuotientCompEq_apply + def liftOfDerivationToSquareZero + theorem liftOfDerivationToSquareZero_mk_apply' + theorem liftOfDerivationToSquareZero_mk_apply 2023-06-03 07:38:32 8618b12 feat: port Data.MvPolynomial.PDeriv (#4612) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Data/MvPolynomial/PDeriv.lean + def MvPolynomial.pderiv + theorem MvPolynomial.pderiv_C + theorem MvPolynomial.pderiv_C_mul + theorem MvPolynomial.pderiv_X + theorem MvPolynomial.pderiv_X_of_ne + theorem MvPolynomial.pderiv_X_self + theorem MvPolynomial.pderiv_def + theorem MvPolynomial.pderiv_eq_zero_of_not_mem_vars + theorem MvPolynomial.pderiv_monomial + theorem MvPolynomial.pderiv_monomial_single + theorem MvPolynomial.pderiv_mul + theorem MvPolynomial.pderiv_one 2023-06-03 07:38:31 4d80fbf feat: port RingTheory.DedekindDomain.Basic (#4608) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/RingTheory/DedekindDomain/Basic.lean + theorem Ring.DimensionLEOne.eq_bot_of_lt + theorem Ring.DimensionLEOne.isIntegralClosure + theorem Ring.DimensionLEOne.not_lt_lt + theorem Ring.DimensionLEOne.principal_ideal_ring + def Ring.DimensionLEOne + theorem isDedekindDomain_iff Modified Mathlib/RingTheory/Polynomial/RationalRoot.lean 2023-06-03 07:38:30 9a4c88c feat: port RingTheory.Bezout (#4607) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/RingTheory/Bezout.lean + theorem Function.Surjective.isBezout + theorem IsBezout.TFAE + theorem IsBezout.dvd_gcd + theorem IsBezout.gcd_dvd_left + theorem IsBezout.gcd_dvd_right + theorem IsBezout.gcd_eq_sum + theorem IsBezout.iff_span_pair_isPrincipal + theorem IsBezout.span_gcd 2023-06-03 07:32:02 0068737 feat: port Algebra.Lie.OfAssociative (#4617) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Lie/OfAssociative.lean + def AlgEquiv.toLieEquiv + theorem AlgEquiv.toLieEquiv_apply + theorem AlgEquiv.toLieEquiv_symm_apply + theorem AlgHom.coe_to_lieHom + def AlgHom.toLieHom + theorem AlgHom.toLieHom_apply + theorem AlgHom.to_lieHom_comp + theorem AlgHom.to_lieHom_id + theorem AlgHom.to_lieHom_injective + theorem Commute.lie_eq + def LieAlgebra.ad + theorem LieAlgebra.ad_apply + theorem LieAlgebra.ad_eq_lmul_left_sub_lmul_right + def LieModule.ofAssociativeModule + def LieModule.toEndomorphism + theorem LieModule.toEndomorphism_module_end + theorem LieRing.lie_apply + theorem LieRing.of_associative_ring_bracket + def LieRingModule.ofAssociativeModule + theorem LieSubalgebra.ad_comp_incl_eq + theorem LieSubalgebra.toEndomorphism_eq + theorem LieSubalgebra.toEndomorphism_mk + theorem LieSubmodule.coe_map_toEndomorphism_le + theorem LieSubmodule.toEndomorphism_comp_subtype_mem + theorem LieSubmodule.toEndomorphism_restrict_eq_toEndomorphism + def LinearEquiv.lieConj + theorem LinearEquiv.lieConj_apply + theorem LinearEquiv.lieConj_symm + theorem Ring.lie_def + theorem commute_iff_lie_eq + def lieSubalgebraOfSubalgebra + theorem lie_eq_smul 2023-06-02 20:28:50 171df1e feat: port NumberTheory.Liouville.LiouvilleWith (#4596) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/NumberTheory/Liouville/LiouvilleWith.lean + theorem Liouville.frequently_exists_num + theorem LiouvilleWith.add_int + theorem LiouvilleWith.add_int_iff + theorem LiouvilleWith.add_nat + theorem LiouvilleWith.add_nat_iff + theorem LiouvilleWith.add_rat + theorem LiouvilleWith.add_rat_iff + theorem LiouvilleWith.exists_pos + theorem LiouvilleWith.frequently_lt_rpow_neg + theorem LiouvilleWith.int_add + theorem LiouvilleWith.int_add_iff + theorem LiouvilleWith.int_mul + theorem LiouvilleWith.int_mul_iff + theorem LiouvilleWith.int_sub + theorem LiouvilleWith.int_sub_iff + theorem LiouvilleWith.mono + theorem LiouvilleWith.mul_int + theorem LiouvilleWith.mul_int_iff + theorem LiouvilleWith.mul_nat + theorem LiouvilleWith.mul_nat_iff + theorem LiouvilleWith.mul_rat + theorem LiouvilleWith.mul_rat_iff + theorem LiouvilleWith.nat_add + theorem LiouvilleWith.nat_add_iff + theorem LiouvilleWith.nat_mul + theorem LiouvilleWith.nat_mul_iff + theorem LiouvilleWith.nat_sub + theorem LiouvilleWith.nat_sub_iff + theorem LiouvilleWith.ne_cast_int + theorem LiouvilleWith.neg_iff + theorem LiouvilleWith.rat_add + theorem LiouvilleWith.rat_add_iff + theorem LiouvilleWith.rat_mul + theorem LiouvilleWith.rat_mul_iff + theorem LiouvilleWith.rat_sub + theorem LiouvilleWith.rat_sub_iff + theorem LiouvilleWith.sub_int + theorem LiouvilleWith.sub_int_iff + theorem LiouvilleWith.sub_nat + theorem LiouvilleWith.sub_nat_iff + theorem LiouvilleWith.sub_rat + theorem LiouvilleWith.sub_rat_iff + def LiouvilleWith + theorem forall_liouvilleWith_iff + theorem liouvilleWith_one 2023-06-02 19:21:18 1c81f56 feat: port Data.MvPolynomial.Derivation (#4603) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Data/MvPolynomial/Derivation.lean + theorem MvPolynomial.derivation_C + theorem MvPolynomial.derivation_C_mul' + theorem MvPolynomial.derivation_C_mul + theorem MvPolynomial.derivation_eqOn_supported + theorem MvPolynomial.derivation_eq_of_forall_mem_vars + theorem MvPolynomial.derivation_eq_zero_of_forall_mem_vars + theorem MvPolynomial.derivation_ext + theorem MvPolynomial.leibniz_iff_X + def MvPolynomial.mkDerivation + def MvPolynomial.mkDerivationEquiv + theorem MvPolynomial.mkDerivation_X + theorem MvPolynomial.mkDerivation_monomial + def MvPolynomial.mkDerivationₗ + theorem MvPolynomial.mkDerivationₗ_C + theorem MvPolynomial.mkDerivationₗ_X + theorem MvPolynomial.mkDerivationₗ_monomial 2023-06-02 19:15:13 c9c1578 feat: port Probability.Independence.ZeroOne (#4606) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Probability/Independence/Basic.lean Added Mathlib/Probability/Independence/ZeroOne.lean + theorem ProbabilityTheory.indep_biSup_compl + theorem ProbabilityTheory.indep_biSup_limsup + theorem ProbabilityTheory.indep_iSup_directed_limsup + theorem ProbabilityTheory.indep_iSup_limsup + theorem ProbabilityTheory.indep_limsup_atBot_self + theorem ProbabilityTheory.indep_limsup_atTop_self + theorem ProbabilityTheory.indep_limsup_self + theorem ProbabilityTheory.measure_eq_zero_or_one_of_indepSetCat_self + theorem ProbabilityTheory.measure_eq_zero_or_one_or_top_of_indepSet_self + theorem ProbabilityTheory.measure_zero_or_one_of_measurableSet_limsup + theorem ProbabilityTheory.measure_zero_or_one_of_measurableSet_limsup_atBot + theorem ProbabilityTheory.measure_zero_or_one_of_measurableSet_limsup_atTop 2023-06-02 17:44:51 a513eec feat: basic definitions for Algebra.Homology.ShortComplex.LeftHomology (#4388) This PR develops notion of `LeftHomologyData` for a short complex involving two maps `f` and `g`, where homology is understood as a quotient (cokernel) of the kernel of the second map `g`. It also introduces the structure `LeftHomologyMapData` which will allow computations of induced maps on (left) homology. ESTIMATED CHANGES Modified Mathlib/Algebra/Homology/ShortComplex/Basic.lean Modified Mathlib/Algebra/Homology/ShortComplex/Homology.lean Modified Mathlib/Algebra/Homology/ShortComplex/LeftHomology.lean + theorem CategoryTheory.ShortComplex.HasLeftHomology.mk' + def CategoryTheory.ShortComplex.LeftHomologyData.descH + def CategoryTheory.ShortComplex.LeftHomologyData.f' + theorem CategoryTheory.ShortComplex.LeftHomologyData.f'_i + theorem CategoryTheory.ShortComplex.LeftHomologyData.f'_π + def CategoryTheory.ShortComplex.LeftHomologyData.hπ' + def CategoryTheory.ShortComplex.LeftHomologyData.liftH + def CategoryTheory.ShortComplex.LeftHomologyData.liftK + theorem CategoryTheory.ShortComplex.LeftHomologyData.liftK_i + theorem CategoryTheory.ShortComplex.LeftHomologyData.liftK_π_eq_zero_of_boundary + def CategoryTheory.ShortComplex.LeftHomologyData.ofIsColimitCokernelCofork + theorem CategoryTheory.ShortComplex.LeftHomologyData.ofIsColimitCokernelCofork_f' + def CategoryTheory.ShortComplex.LeftHomologyData.ofIsLimitKernelFork + theorem CategoryTheory.ShortComplex.LeftHomologyData.ofIsLimitKernelFork_f' + def CategoryTheory.ShortComplex.LeftHomologyData.ofZeros + theorem CategoryTheory.ShortComplex.LeftHomologyData.ofZeros_f' + theorem CategoryTheory.ShortComplex.LeftHomologyData.π_descH + structure CategoryTheory.ShortComplex.LeftHomologyMapData Modified Mathlib/CategoryTheory/Limits/Shapes/Kernels.lean + def CategoryTheory.Limits.CokernelCofork.IsColimit.ofEpiOfIsZero + def CategoryTheory.Limits.CokernelCofork.IsColimit.ofId + def CategoryTheory.Limits.KernelFork.IsLimit.ofId + def CategoryTheory.Limits.KernelFork.IsLimit.ofMonoOfIsZero 2023-06-02 16:56:03 49ae3c6 feat: port MeasureTheory.Measure.Lebesgue.Complex (#4598) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/MeasureTheory/Measure/Lebesgue/Complex.lean + def Complex.measurableEquivPi + def Complex.measurableEquivRealProd + theorem Complex.volume_preserving_equiv_pi + theorem Complex.volume_preserving_equiv_real_prod 2023-06-02 16:56:01 b7e84bf Port/FieldTheory.Finite.Polynomial (#4597) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/FieldTheory/Finite/Polynomial.lean + def MvPolynomial.R + theorem MvPolynomial.c_dvd_iff_zMod + theorem MvPolynomial.degrees_indicator + theorem MvPolynomial.eq_zero_of_eval_eq_zero + theorem MvPolynomial.eval_indicator_apply_eq_one + theorem MvPolynomial.eval_indicator_apply_eq_zero + def MvPolynomial.evalᵢ + def MvPolynomial.evalₗ + theorem MvPolynomial.expand_zMod + theorem MvPolynomial.finrank_R + theorem MvPolynomial.frobenius_zMod + def MvPolynomial.indicator + theorem MvPolynomial.indicator_mem_restrictDegree + theorem MvPolynomial.ker_evalₗ + theorem MvPolynomial.map_restrict_dom_evalₗ + theorem MvPolynomial.range_evalᵢ + theorem MvPolynomial.rank_R 2023-06-02 16:45:59 22a3771 feat: port LinearAlgebra.Matrix.Charpoly.FiniteField (#4601) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/LinearAlgebra/Matrix/Charpoly/FiniteField.lean + theorem FiniteField.Matrix.charpoly_pow_card + theorem FiniteField.trace_pow_card + theorem ZMod.charpoly_pow_card + theorem ZMod.trace_pow_card 2023-06-02 16:45:58 89a10c6 feat: port RingTheory.Valuation.Integral (#4600) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/RingTheory/Valuation/Integral.lean + theorem Valuation.Integers.integrallyClosed + theorem Valuation.Integers.mem_of_integral 2023-06-02 16:32:46 55a106e feat: port NumberTheory.Liouville.Residual (#4592) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/NumberTheory/Liouville/Residual.lean + theorem dense_liouville + theorem eventually_residual_liouville + theorem isGδ_setOf_liouville + theorem setOf_liouville_eq_iInter_iUnion + theorem setOf_liouville_eq_irrational_inter_iInter_iUnion 2023-06-02 15:44:37 ea247a5 chore: forward-port leanprover-community/mathlib#19117 (#4549) ESTIMATED CHANGES Modified Mathlib/Data/Matrix/Notation.lean + theorem Matrix.submatrix_updateColumn_succAbove + theorem Matrix.submatrix_updateRow_succAbove Modified Mathlib/LinearAlgebra/Matrix/Adjugate.lean + theorem Matrix.adjugate_fin_succ_eq_det_submatrix + theorem Matrix.det_eq_sum_mul_adjugate_col + theorem Matrix.det_eq_sum_mul_adjugate_row 2023-06-02 15:12:43 5b9ce13 feat: port AlgebraicGeometry.LocallyRingedSpace (#4589) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/AlgebraicGeometry/LocallyRingedSpace.lean + structure AlgebraicGeometry.LocallyRingedSpace.Hom + theorem AlgebraicGeometry.LocallyRingedSpace.basicOpen_zero + def AlgebraicGeometry.LocallyRingedSpace.comp + theorem AlgebraicGeometry.LocallyRingedSpace.comp_val + theorem AlgebraicGeometry.LocallyRingedSpace.comp_val_c + theorem AlgebraicGeometry.LocallyRingedSpace.comp_val_c_app + def AlgebraicGeometry.LocallyRingedSpace.forgetToSheafedSpace + def AlgebraicGeometry.LocallyRingedSpace.forgetToTop + def AlgebraicGeometry.LocallyRingedSpace.homOfSheafedSpaceHomOfIsIso + def AlgebraicGeometry.LocallyRingedSpace.id + def AlgebraicGeometry.LocallyRingedSpace.isoOfSheafedSpaceIso + def AlgebraicGeometry.LocallyRingedSpace.ofRestrict + theorem AlgebraicGeometry.LocallyRingedSpace.preimage_basicOpen + def AlgebraicGeometry.LocallyRingedSpace.restrict + def AlgebraicGeometry.LocallyRingedSpace.restrictTopIso + def AlgebraicGeometry.LocallyRingedSpace.toRingedSpace + def AlgebraicGeometry.LocallyRingedSpace.toTopCat + def AlgebraicGeometry.LocallyRingedSpace.Γ + theorem AlgebraicGeometry.LocallyRingedSpace.Γ_def + theorem AlgebraicGeometry.LocallyRingedSpace.Γ_map + theorem AlgebraicGeometry.LocallyRingedSpace.Γ_map_op + theorem AlgebraicGeometry.LocallyRingedSpace.Γ_obj + theorem AlgebraicGeometry.LocallyRingedSpace.Γ_obj_op + def AlgebraicGeometry.LocallyRingedSpace.𝒪 + structure AlgebraicGeometry.LocallyRingedSpace 2023-06-02 15:12:42 7f6ce65 feat: port Probability.Independence.Basic (#4557) The names of many definitions and lemmas in the Mathlib3 file contained `Indep` so Mathport added `Cat` at a bunch of places that had to be removed. The Mathlib4 equivalent is `iIndep` see this [thread](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/!4.234557.20Probability.2EIndepence.2EBasic/near/362823239) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Probability/Independence/Basic.lean + theorem ProbabilityTheory.Indep.indepSet_of_measurableSet + theorem ProbabilityTheory.Indep.indepSets + theorem ProbabilityTheory.Indep.symm + def ProbabilityTheory.Indep + theorem ProbabilityTheory.IndepFun.ae_eq + theorem ProbabilityTheory.IndepFun.comp + def ProbabilityTheory.IndepFun + def ProbabilityTheory.IndepSet + theorem ProbabilityTheory.IndepSets.bInter + theorem ProbabilityTheory.IndepSets.bUnion + theorem ProbabilityTheory.IndepSets.iInter + theorem ProbabilityTheory.IndepSets.iUnion + theorem ProbabilityTheory.IndepSets.indep' + theorem ProbabilityTheory.IndepSets.indep + theorem ProbabilityTheory.IndepSets.indepSet_of_mem + theorem ProbabilityTheory.IndepSets.inter + theorem ProbabilityTheory.IndepSets.symm + theorem ProbabilityTheory.IndepSets.union + theorem ProbabilityTheory.IndepSets.union_iff + def ProbabilityTheory.IndepSets + theorem ProbabilityTheory.iIndep.iIndepSets + theorem ProbabilityTheory.iIndep.indep + def ProbabilityTheory.iIndep + theorem ProbabilityTheory.iIndepFun.indepFun + theorem ProbabilityTheory.iIndepFun.indepFun_finset + theorem ProbabilityTheory.iIndepFun.indepFun_finset_prod_of_not_mem + theorem ProbabilityTheory.iIndepFun.indepFun_prod + theorem ProbabilityTheory.iIndepFun.indepFun_prod_range_succ + theorem ProbabilityTheory.iIndepFun.mul + def ProbabilityTheory.iIndepFun + theorem ProbabilityTheory.iIndepFun_iff_measure_inter_preimage_eq_mul + theorem ProbabilityTheory.iIndepSet.iIndepFun_indicator + theorem ProbabilityTheory.iIndepSet.indep_generateFrom_le + theorem ProbabilityTheory.iIndepSet.indep_generateFrom_le_nat + theorem ProbabilityTheory.iIndepSet.indep_generateFrom_lt + theorem ProbabilityTheory.iIndepSet.indep_generateFrom_of_disjoint + def ProbabilityTheory.iIndepSet + theorem ProbabilityTheory.iIndepSets.iIndep + theorem ProbabilityTheory.iIndepSets.indepSets + theorem ProbabilityTheory.iIndepSets.piiUnionInter_of_not_mem + def ProbabilityTheory.iIndepSets + theorem ProbabilityTheory.indepFun_iff_indepSet_preimage + theorem ProbabilityTheory.indepFun_iff_measure_inter_preimage_eq_mul + theorem ProbabilityTheory.indepSet_empty_left + theorem ProbabilityTheory.indepSet_empty_right + theorem ProbabilityTheory.indepSet_iff_indepSets_singleton + theorem ProbabilityTheory.indepSet_iff_measure_inter_eq_mul + theorem ProbabilityTheory.indepSets_of_indepSets_of_le_left + theorem ProbabilityTheory.indepSets_of_indepSets_of_le_right + theorem ProbabilityTheory.indepSets_piiUnionInter_of_disjoint + theorem ProbabilityTheory.indepSets_singleton_iff + theorem ProbabilityTheory.indep_bot_left + theorem ProbabilityTheory.indep_bot_right + theorem ProbabilityTheory.indep_iSup_of_antitone + theorem ProbabilityTheory.indep_iSup_of_directed_le + theorem ProbabilityTheory.indep_iSup_of_disjoint + theorem ProbabilityTheory.indep_iSup_of_monotone + theorem ProbabilityTheory.indep_iff_forall_indepSet + theorem ProbabilityTheory.indep_of_indep_of_le_left + theorem ProbabilityTheory.indep_of_indep_of_le_right 2023-06-02 15:12:41 a5a1b04 chore: forward-port leanprover-community/mathlib#18997 (#4550) ESTIMATED CHANGES Modified Mathlib/Analysis/Normed/Group/AddTorsor.lean + theorem nndist_eq_nnnorm_vsub' + theorem nndist_eq_nnnorm_vsub + theorem nndist_vadd_cancel_left + theorem nndist_vadd_cancel_right + theorem nndist_vadd_left + theorem nndist_vadd_right + theorem nndist_vsub_cancel_left + theorem nndist_vsub_cancel_right Modified Mathlib/Analysis/NormedSpace/AddTorsor.lean + theorem nndist_center_homothety + theorem nndist_homothety_center + theorem nndist_homothety_self + theorem nndist_left_lineMap + theorem nndist_left_midpoint + theorem nndist_lineMap_left + theorem nndist_lineMap_lineMap + theorem nndist_lineMap_right + theorem nndist_midpoint_left + theorem nndist_midpoint_midpoint_le' + theorem nndist_midpoint_midpoint_le + theorem nndist_midpoint_right + theorem nndist_right_lineMap + theorem nndist_right_midpoint + theorem nndist_self_homothety 2023-06-02 15:01:18 1cce536 feat: port MeasureTheory.Measure.Lebesgue.Basic (#4552) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/MeasureTheory/Measure/Lebesgue/Basic.lean + theorem Filter.Eventually.volume_pos_of_nhds_real + theorem Real.map_linearMap_volume_pi_eq_smul_volume_pi + theorem Real.map_matrix_volume_pi_eq_smul_volume_pi + theorem Real.map_volume_mul_left + theorem Real.map_volume_mul_right + theorem Real.smul_map_diagonal_volume_pi + theorem Real.smul_map_volume_mul_left + theorem Real.smul_map_volume_mul_right + theorem Real.volume_Icc + theorem Real.volume_Icc_pi + theorem Real.volume_Icc_pi_toReal + theorem Real.volume_Ici + theorem Real.volume_Ico + theorem Real.volume_Iic + theorem Real.volume_Iio + theorem Real.volume_Ioc + theorem Real.volume_Ioi + theorem Real.volume_Ioo + theorem Real.volume_ball + theorem Real.volume_closedBall + theorem Real.volume_emetric_ball + theorem Real.volume_emetric_closedBall + theorem Real.volume_eq_stieltjes_id + theorem Real.volume_interval + theorem Real.volume_le_diam + theorem Real.volume_pi_Ico + theorem Real.volume_pi_Ico_toReal + theorem Real.volume_pi_Ioc + theorem Real.volume_pi_Ioc_toReal + theorem Real.volume_pi_Ioo + theorem Real.volume_pi_Ioo_toReal + theorem Real.volume_pi_le_diam_pow + theorem Real.volume_pi_le_prod_diam + theorem Real.volume_preimage_mul_left + theorem Real.volume_preimage_mul_right + theorem Real.volume_preserving_transvectionStruct + theorem Real.volume_singleton + theorem Real.volume_univ + theorem Real.volume_val + theorem ae_of_mem_of_ae_of_mem_inter_Ioo + theorem ae_restrict_of_ae_restrict_inter_Ioo + theorem measurableSet_graph + theorem measurableSet_regionBetween + theorem measurableSet_region_between_cc + theorem measurableSet_region_between_co + theorem measurableSet_region_between_oc + def regionBetween + theorem regionBetween_subset + theorem volume_regionBetween_eq_lintegral' + theorem volume_regionBetween_eq_lintegral 2023-06-02 14:41:05 4384aba fix: workaround for leanprover/lean4#2249 (#4586) This puts all the mathlib tactics in the `Mathlib.Tactic` namespace instead of pretending we are an extension of the `Lean` package, which is causing problems. ESTIMATED CHANGES Modified Mathlib/Mathport/Syntax.lean 2023-06-02 14:25:50 a1f721a fix: less confusing percentage (#4561) This fixes output that we have currently like: ``` Attempting to download 19 file(s) Downloaded 14 file(s) [19/19 = 100%] ``` I mean `19/19 = 100%` is true in this case, but I think `14/19 = ...` would be more relevant. ESTIMATED CHANGES Modified Cache/Requests.lean 2023-06-02 13:42:33 593b929 feat: port Algebra.GCDMonoid.IntegrallyClosed (#4588) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/GCDMonoid/IntegrallyClosed.lean + theorem IsLocalization.surj_of_gcd_domain 2023-06-02 13:42:32 b2d5c97 feat: port Analysis.NormedSpace.Star.Exponential (#4587) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/NormedSpace/Star/Exponential.lean + theorem Commute.expUnitary + theorem Commute.expUnitary_add 2023-06-02 13:42:31 53b2607 feat: port RingTheory.Polynomial.RationalRoot (#4585) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/RingTheory/Polynomial/RationalRoot.lean + theorem UniqueFactorizationMonoid.integer_of_integral + theorem den_dvd_of_is_root + theorem isInteger_of_is_root_of_monic + theorem num_dvd_of_is_root + theorem num_isRoot_scaleRoots_of_aeval_eq_zero + theorem scaleRoots_aeval_eq_zero_of_aeval_mk'_eq_zero 2023-06-02 13:42:30 99ad0c1 feat: port Analysis.Calculus.UniformLimitsDeriv (#4584) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/Calculus/UniformLimitsDeriv.lean + theorem UniformCauchySeqOnFilter.one_smulRight + theorem cauchy_map_of_uniformCauchySeqOn_fderiv + theorem difference_quotients_converge_uniformly + theorem hasDerivAt_of_tendstoLocallyUniformlyOn + theorem hasDerivAt_of_tendstoUniformly + theorem hasDerivAt_of_tendstoUniformlyOn + theorem hasDerivAt_of_tendstoUniformlyOnFilter + theorem hasDerivAt_of_tendsto_locally_uniformly_on' + theorem hasFDerivAt_of_tendstoLocallyUniformlyOn + theorem hasFDerivAt_of_tendstoUniformly + theorem hasFDerivAt_of_tendstoUniformlyOn + theorem hasFDerivAt_of_tendstoUniformlyOnFilter + theorem hasFDerivAt_of_tendsto_locally_uniformly_on' + theorem uniformCauchySeqOnFilter_of_deriv + theorem uniformCauchySeqOnFilter_of_fderiv + theorem uniformCauchySeqOn_ball_of_deriv + theorem uniformCauchySeqOn_ball_of_fderiv 2023-06-02 13:42:28 a0b995b feat: port Algebra.Lie.Submodule (#3045) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Lie/Basic.lean + theorem LieModuleHom.coe_toLinearMap - theorem LieModuleHom.coe_to_linearMap Modified Mathlib/Algebra/Lie/Subalgebra.lean Added Mathlib/Algebra/Lie/Submodule.lean + def LieHom.IsIdealMorphism + def LieHom.idealRange + theorem LieHom.idealRange_eq_lieSpan_range + theorem LieHom.idealRange_eq_map + theorem LieHom.idealRange_eq_top_of_surjective + theorem LieHom.isIdealMorphism_def + theorem LieHom.isIdealMorphism_iff + theorem LieHom.isIdealMorphism_of_surjective + def LieHom.ker + theorem LieHom.ker_coeSubmodule + theorem LieHom.ker_eq_bot + theorem LieHom.ker_le_comap + theorem LieHom.le_ker_iff + theorem LieHom.map_le_idealRange + theorem LieHom.mem_idealRange + theorem LieHom.mem_idealRange_iff + theorem LieHom.mem_ker + theorem LieHom.range_coeSubmodule + theorem LieHom.range_eq_top + theorem LieHom.range_subset_idealRange + theorem LieIdeal.bot_of_map_eq_bot + theorem LieIdeal.coe_bracket_of_module + theorem LieIdeal.coe_homOfLe + theorem LieIdeal.coe_map_of_surjective + theorem LieIdeal.coe_toSubalgebra + theorem LieIdeal.coe_to_lieSubalgebra_to_submodule + def LieIdeal.comap + theorem LieIdeal.comap_coeSubmodule + theorem LieIdeal.comap_incl_self + theorem LieIdeal.comap_map_eq + theorem LieIdeal.comap_map_le + theorem LieIdeal.comap_mono + theorem LieIdeal.gc_map_comap + def LieIdeal.homOfLe + theorem LieIdeal.homOfLe_apply + theorem LieIdeal.homOfLe_injective + def LieIdeal.incl + theorem LieIdeal.incl_apply + theorem LieIdeal.incl_coe + theorem LieIdeal.incl_idealRange + theorem LieIdeal.incl_isIdealMorphism + theorem LieIdeal.incl_range + theorem LieIdeal.ker_incl + def LieIdeal.map + theorem LieIdeal.map_coeSubmodule + theorem LieIdeal.map_comap_eq + theorem LieIdeal.map_comap_le + theorem LieIdeal.map_eq_bot_iff + theorem LieIdeal.map_le + theorem LieIdeal.map_le_iff_le_comap + theorem LieIdeal.map_mono + theorem LieIdeal.map_of_image + theorem LieIdeal.map_sup + theorem LieIdeal.map_sup_ker_eq_map' + theorem LieIdeal.map_sup_ker_eq_map + theorem LieIdeal.mem_comap + theorem LieIdeal.mem_map + theorem LieIdeal.mem_map_of_surjective + def LieIdeal.topEquiv + theorem LieIdeal.topEquiv_apply + theorem LieIdeal.top_coe_lieSubalgebra + theorem LieModuleHom.coeSubmodule_range + theorem LieModuleHom.coe_range + theorem LieModuleHom.comp_ker_incl + def LieModuleHom.ker + theorem LieModuleHom.ker_coeSubmodule + theorem LieModuleHom.ker_eq_bot + theorem LieModuleHom.ker_id + theorem LieModuleHom.le_ker_iff_map + theorem LieModuleHom.map_top + theorem LieModuleHom.mem_ker + theorem LieModuleHom.mem_range + def LieModuleHom.range + theorem LieSubalgebra.coe_toLieSubmodule + theorem LieSubalgebra.exists_lieIdeal_coe_eq_iff + theorem LieSubalgebra.exists_nested_lieIdeal_coe_eq_iff + theorem LieSubalgebra.mem_toLieSubmodule + def LieSubalgebra.toLieSubmodule + def LieSubalgebra.topEquiv + theorem LieSubalgebra.topEquiv_apply + theorem LieSubmodule.add_eq_sup + theorem LieSubmodule.bot_coe + theorem LieSubmodule.bot_coeSubmodule + theorem LieSubmodule.coeSubmodule_comap + theorem LieSubmodule.coeSubmodule_injective + theorem LieSubmodule.coeSubmodule_le_coeSubmodule + theorem LieSubmodule.coeSubmodule_map + theorem LieSubmodule.coe_add + theorem LieSubmodule.coe_bracket + theorem LieSubmodule.coe_copy + theorem LieSubmodule.coe_homOfLe + theorem LieSubmodule.coe_injective + theorem LieSubmodule.coe_lieSpan_submodule_eq_iff + theorem LieSubmodule.coe_neg + theorem LieSubmodule.coe_smul + theorem LieSubmodule.coe_sub + theorem LieSubmodule.coe_toSet_mk + theorem LieSubmodule.coe_toSubmodule + theorem LieSubmodule.coe_toSubmodule_eq_iff + theorem LieSubmodule.coe_toSubmodule_mk + theorem LieSubmodule.coe_zero + def LieSubmodule.comap + theorem LieSubmodule.comap_incl_eq_bot + theorem LieSubmodule.comap_incl_eq_top + theorem LieSubmodule.comap_incl_self + theorem LieSubmodule.copy_eq + theorem LieSubmodule.ext + theorem LieSubmodule.gc_map_comap + def LieSubmodule.homOfLe + theorem LieSubmodule.homOfLe_apply + theorem LieSubmodule.homOfLe_injective + def LieSubmodule.incl + theorem LieSubmodule.incl_apply + theorem LieSubmodule.incl_coe + theorem LieSubmodule.incl_eq_val + theorem LieSubmodule.inf_coe + theorem LieSubmodule.inf_coe_toSubmodule + theorem LieSubmodule.ker_incl + def LieSubmodule.lieSpan + theorem LieSubmodule.lieSpan_eq + theorem LieSubmodule.lieSpan_eq_bot_iff + theorem LieSubmodule.lieSpan_le + theorem LieSubmodule.lieSpan_mono + def LieSubmodule.map + theorem LieSubmodule.map_le_iff_le_comap + theorem LieSubmodule.map_sup + theorem LieSubmodule.mem_bot + theorem LieSubmodule.mem_carrier + theorem LieSubmodule.mem_coe + theorem LieSubmodule.mem_coeSubmodule + theorem LieSubmodule.mem_comap + theorem LieSubmodule.mem_inf + theorem LieSubmodule.mem_lieSpan + theorem LieSubmodule.mem_map + theorem LieSubmodule.mem_mk_iff + theorem LieSubmodule.mem_sup + theorem LieSubmodule.mem_top + theorem LieSubmodule.mk_eq_zero + theorem LieSubmodule.nontrivial_iff + theorem LieSubmodule.nontrivial_iff_ne_bot + theorem LieSubmodule.range_incl + theorem LieSubmodule.sInf_coe + theorem LieSubmodule.sInf_coe_toSubmodule + theorem LieSubmodule.sInf_glb + theorem LieSubmodule.span_empty + theorem LieSubmodule.span_iUnion + theorem LieSubmodule.span_union + theorem LieSubmodule.span_univ + theorem LieSubmodule.submodule_span_le_lieSpan + theorem LieSubmodule.subset_lieSpan + theorem LieSubmodule.subsingleton_iff + theorem LieSubmodule.sup_coe_toSubmodule + theorem LieSubmodule.top_coe + theorem LieSubmodule.top_coeSubmodule + theorem LieSubmodule.wellFounded_of_noetherian + structure LieSubmodule + theorem Submodule.exists_lieSubmodule_coe_eq_iff + def lieIdealSubalgebra + theorem lie_mem_left + theorem lie_mem_right Modified Mathlib/Algebra/Module/Submodule/Basic.lean + theorem Submodule.eta 2023-06-02 12:48:56 329fc54 feat: `notation3` delaborator generation (#4533) Gives the `notation3` command the ability to generate a delaborator in most common situations. When it succeeds, `notation3`-defined syntax is pretty printable. Examples: ``` (⋃ (i : ι) (i' : ι'), s i i') = ⋃ (i' : ι') (i : ι), s i i' (⨆ (g : α → ℝ≥0∞) (_ : Measurable g) (_ : g ≤ f), ∫⁻ (a : α), g a ∂μ) = ∫⁻ (a : α), f a ∂μ ``` ESTIMATED CHANGES Modified Mathlib/Data/Pi/Lex.lean Modified Mathlib/GroupTheory/Perm/Cycle/Concrete.lean Modified Mathlib/Mathport/Notation.lean + def Mathlib.Notation3.$(Lean.mkIdent + inductive Mathlib.Notation3.BoundValueType + def Mathlib.Notation3.MatchState.captureSubexpr + def Mathlib.Notation3.MatchState.delabVar + def Mathlib.Notation3.MatchState.empty + def Mathlib.Notation3.MatchState.getFoldArray + def Mathlib.Notation3.MatchState.pushBinder + def Mathlib.Notation3.MatchState.pushFold + def Mathlib.Notation3.MatchState.withVar + structure Mathlib.Notation3.MatchState + def Mathlib.Notation3.Matcher + def Mathlib.Notation3.fnArgMatcher + def Mathlib.Notation3.getExplicitArgIndices + def Mathlib.Notation3.getPrettyPrintOpt + def Mathlib.Notation3.matchConst + def Mathlib.Notation3.matchFVar + def Mathlib.Notation3.matchVar + def Mathlib.Notation3.mkNameFromSyntax + def Mathlib.Notation3.natLitMatcher Modified Mathlib/MeasureTheory/Integral/Lebesgue.lean - def unexpandLIntegral Modified Mathlib/MeasureTheory/Measure/MeasureSpaceDef.lean Modified Mathlib/Order/CompleteLattice.lean - def iInf.unexpander - def iSup.unexpander Modified Mathlib/Order/Filter/FilterProduct.lean Modified test/notation3.lean + structure Test.MyUnit + def Test.bar' + def Test.bar + def Test.foo' + def Test.foo + def Test.func + def Test.myId 2023-06-02 12:29:26 151c25b feat: port MeasureTheory.Integral.SetToL1 (#4579) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/MeasureTheory/Integral/SetToL1.lean + theorem MeasureTheory.DominatedFinMeasAdditive.add + theorem MeasureTheory.DominatedFinMeasAdditive.add_measure_left + theorem MeasureTheory.DominatedFinMeasAdditive.add_measure_right + theorem MeasureTheory.DominatedFinMeasAdditive.eq_zero + theorem MeasureTheory.DominatedFinMeasAdditive.eq_zero_of_measure_zero + theorem MeasureTheory.DominatedFinMeasAdditive.of_measure_le + theorem MeasureTheory.DominatedFinMeasAdditive.of_measure_le_smul + theorem MeasureTheory.DominatedFinMeasAdditive.of_smul_measure + theorem MeasureTheory.DominatedFinMeasAdditive.smul + theorem MeasureTheory.DominatedFinMeasAdditive.zero + def MeasureTheory.DominatedFinMeasAdditive + theorem MeasureTheory.FinMeasAdditive.add + theorem MeasureTheory.FinMeasAdditive.map_empty_eq_zero + theorem MeasureTheory.FinMeasAdditive.map_iUnion_fin_meas_set_eq_sum + theorem MeasureTheory.FinMeasAdditive.of_eq_top_imp_eq_top + theorem MeasureTheory.FinMeasAdditive.of_smul_measure + theorem MeasureTheory.FinMeasAdditive.smul + theorem MeasureTheory.FinMeasAdditive.smul_measure + theorem MeasureTheory.FinMeasAdditive.smul_measure_iff + theorem MeasureTheory.FinMeasAdditive.zero + def MeasureTheory.FinMeasAdditive + theorem MeasureTheory.L1.SimpleFunc.norm_eq_sum_mul + theorem MeasureTheory.L1.SimpleFunc.norm_setToL1SCLM_le' + theorem MeasureTheory.L1.SimpleFunc.norm_setToL1SCLM_le + theorem MeasureTheory.L1.SimpleFunc.norm_setToL1S_le + def MeasureTheory.L1.SimpleFunc.setToL1S + def MeasureTheory.L1.SimpleFunc.setToL1SCLM' + def MeasureTheory.L1.SimpleFunc.setToL1SCLM + theorem MeasureTheory.L1.SimpleFunc.setToL1SCLM_add_left' + theorem MeasureTheory.L1.SimpleFunc.setToL1SCLM_add_left + theorem MeasureTheory.L1.SimpleFunc.setToL1SCLM_congr_left' + theorem MeasureTheory.L1.SimpleFunc.setToL1SCLM_congr_left + theorem MeasureTheory.L1.SimpleFunc.setToL1SCLM_congr_measure + theorem MeasureTheory.L1.SimpleFunc.setToL1SCLM_const + theorem MeasureTheory.L1.SimpleFunc.setToL1SCLM_mono + theorem MeasureTheory.L1.SimpleFunc.setToL1SCLM_mono_left' + theorem MeasureTheory.L1.SimpleFunc.setToL1SCLM_mono_left + theorem MeasureTheory.L1.SimpleFunc.setToL1SCLM_nonneg + theorem MeasureTheory.L1.SimpleFunc.setToL1SCLM_smul_left' + theorem MeasureTheory.L1.SimpleFunc.setToL1SCLM_smul_left + theorem MeasureTheory.L1.SimpleFunc.setToL1SCLM_zero_left' + theorem MeasureTheory.L1.SimpleFunc.setToL1SCLM_zero_left + theorem MeasureTheory.L1.SimpleFunc.setToL1S_add + theorem MeasureTheory.L1.SimpleFunc.setToL1S_add_left' + theorem MeasureTheory.L1.SimpleFunc.setToL1S_add_left + theorem MeasureTheory.L1.SimpleFunc.setToL1S_congr + theorem MeasureTheory.L1.SimpleFunc.setToL1S_congr_left + theorem MeasureTheory.L1.SimpleFunc.setToL1S_congr_measure + theorem MeasureTheory.L1.SimpleFunc.setToL1S_const + theorem MeasureTheory.L1.SimpleFunc.setToL1S_eq_setToSimpleFunc + theorem MeasureTheory.L1.SimpleFunc.setToL1S_indicatorConst + theorem MeasureTheory.L1.SimpleFunc.setToL1S_mono + theorem MeasureTheory.L1.SimpleFunc.setToL1S_mono_left' + theorem MeasureTheory.L1.SimpleFunc.setToL1S_mono_left + theorem MeasureTheory.L1.SimpleFunc.setToL1S_neg + theorem MeasureTheory.L1.SimpleFunc.setToL1S_nonneg + theorem MeasureTheory.L1.SimpleFunc.setToL1S_smul + theorem MeasureTheory.L1.SimpleFunc.setToL1S_smul_left' + theorem MeasureTheory.L1.SimpleFunc.setToL1S_smul_left + theorem MeasureTheory.L1.SimpleFunc.setToL1S_smul_real + theorem MeasureTheory.L1.SimpleFunc.setToL1S_sub + theorem MeasureTheory.L1.SimpleFunc.setToL1S_zero_left' + theorem MeasureTheory.L1.SimpleFunc.setToL1S_zero_left + theorem MeasureTheory.L1.norm_setToL1_le' + theorem MeasureTheory.L1.norm_setToL1_le + theorem MeasureTheory.L1.norm_setToL1_le_mul_norm' + theorem MeasureTheory.L1.norm_setToL1_le_mul_norm + theorem MeasureTheory.L1.norm_setToL1_le_norm_setToL1SCLM + theorem MeasureTheory.L1.setToFun_eq_setToL1 + def MeasureTheory.L1.setToL1' + def MeasureTheory.L1.setToL1 + theorem MeasureTheory.L1.setToL1_add_left' + theorem MeasureTheory.L1.setToL1_add_left + theorem MeasureTheory.L1.setToL1_congr_left' + theorem MeasureTheory.L1.setToL1_congr_left + theorem MeasureTheory.L1.setToL1_const + theorem MeasureTheory.L1.setToL1_eq_setToL1' + theorem MeasureTheory.L1.setToL1_eq_setToL1SCLM + theorem MeasureTheory.L1.setToL1_indicatorConstLp + theorem MeasureTheory.L1.setToL1_lipschitz + theorem MeasureTheory.L1.setToL1_mono + theorem MeasureTheory.L1.setToL1_mono_left' + theorem MeasureTheory.L1.setToL1_mono_left + theorem MeasureTheory.L1.setToL1_nonneg + theorem MeasureTheory.L1.setToL1_simpleFunc_indicatorConst + theorem MeasureTheory.L1.setToL1_smul + theorem MeasureTheory.L1.setToL1_smul_left' + theorem MeasureTheory.L1.setToL1_smul_left + theorem MeasureTheory.L1.setToL1_zero_left' + theorem MeasureTheory.L1.setToL1_zero_left + theorem MeasureTheory.L1.tendsto_setToL1 + theorem MeasureTheory.SimpleFunc.map_setToSimpleFunc + theorem MeasureTheory.SimpleFunc.norm_setToSimpleFunc_le_sum_mul_norm + theorem MeasureTheory.SimpleFunc.norm_setToSimpleFunc_le_sum_mul_norm_of_integrable + theorem MeasureTheory.SimpleFunc.norm_setToSimpleFunc_le_sum_op_norm + def MeasureTheory.SimpleFunc.setToSimpleFunc + theorem MeasureTheory.SimpleFunc.setToSimpleFunc_add + theorem MeasureTheory.SimpleFunc.setToSimpleFunc_add_left' + theorem MeasureTheory.SimpleFunc.setToSimpleFunc_add_left + theorem MeasureTheory.SimpleFunc.setToSimpleFunc_congr' + theorem MeasureTheory.SimpleFunc.setToSimpleFunc_congr + theorem MeasureTheory.SimpleFunc.setToSimpleFunc_congr_left + theorem MeasureTheory.SimpleFunc.setToSimpleFunc_const' + theorem MeasureTheory.SimpleFunc.setToSimpleFunc_const + theorem MeasureTheory.SimpleFunc.setToSimpleFunc_eq_sum_filter + theorem MeasureTheory.SimpleFunc.setToSimpleFunc_indicator + theorem MeasureTheory.SimpleFunc.setToSimpleFunc_mono + theorem MeasureTheory.SimpleFunc.setToSimpleFunc_mono_left' + theorem MeasureTheory.SimpleFunc.setToSimpleFunc_mono_left + theorem MeasureTheory.SimpleFunc.setToSimpleFunc_neg + theorem MeasureTheory.SimpleFunc.setToSimpleFunc_nonneg' + theorem MeasureTheory.SimpleFunc.setToSimpleFunc_nonneg + theorem MeasureTheory.SimpleFunc.setToSimpleFunc_smul + theorem MeasureTheory.SimpleFunc.setToSimpleFunc_smul_left' + theorem MeasureTheory.SimpleFunc.setToSimpleFunc_smul_left + theorem MeasureTheory.SimpleFunc.setToSimpleFunc_smul_real + theorem MeasureTheory.SimpleFunc.setToSimpleFunc_sub + theorem MeasureTheory.SimpleFunc.setToSimpleFunc_zero' + theorem MeasureTheory.SimpleFunc.setToSimpleFunc_zero + theorem MeasureTheory.SimpleFunc.setToSimpleFunc_zero_apply + theorem MeasureTheory.continuousAt_setToFun_of_dominated + theorem MeasureTheory.continuousOn_setToFun_of_dominated + theorem MeasureTheory.continuousWithinAt_setToFun_of_dominated + theorem MeasureTheory.continuous_L1_toL1 + theorem MeasureTheory.continuous_setToFun + theorem MeasureTheory.continuous_setToFun_of_dominated + theorem MeasureTheory.norm_setToFun_le' + theorem MeasureTheory.norm_setToFun_le + theorem MeasureTheory.norm_setToFun_le_mul_norm' + theorem MeasureTheory.norm_setToFun_le_mul_norm + def MeasureTheory.setToFun + theorem MeasureTheory.setToFun_add + theorem MeasureTheory.setToFun_add_left' + theorem MeasureTheory.setToFun_add_left + theorem MeasureTheory.setToFun_congr_ae + theorem MeasureTheory.setToFun_congr_left' + theorem MeasureTheory.setToFun_congr_left + theorem MeasureTheory.setToFun_congr_measure + theorem MeasureTheory.setToFun_congr_measure_of_add_left + theorem MeasureTheory.setToFun_congr_measure_of_add_right + theorem MeasureTheory.setToFun_congr_measure_of_integrable + theorem MeasureTheory.setToFun_congr_smul_measure + theorem MeasureTheory.setToFun_const + theorem MeasureTheory.setToFun_eq + theorem MeasureTheory.setToFun_finset_sum' + theorem MeasureTheory.setToFun_finset_sum + theorem MeasureTheory.setToFun_indicator_const + theorem MeasureTheory.setToFun_measure_zero' + theorem MeasureTheory.setToFun_measure_zero + theorem MeasureTheory.setToFun_mono + theorem MeasureTheory.setToFun_mono_left' + theorem MeasureTheory.setToFun_mono_left + theorem MeasureTheory.setToFun_neg + theorem MeasureTheory.setToFun_non_aEStronglyMeasurable + theorem MeasureTheory.setToFun_nonneg + theorem MeasureTheory.setToFun_smul + theorem MeasureTheory.setToFun_smul_left' + theorem MeasureTheory.setToFun_smul_left + theorem MeasureTheory.setToFun_sub + theorem MeasureTheory.setToFun_toL1 + theorem MeasureTheory.setToFun_top_smul_measure + theorem MeasureTheory.setToFun_undef + theorem MeasureTheory.setToFun_zero + theorem MeasureTheory.setToFun_zero_left' + theorem MeasureTheory.setToFun_zero_left + theorem MeasureTheory.tendsto_setToFun_approxOn_of_measurable + theorem MeasureTheory.tendsto_setToFun_approxOn_of_measurable_of_range_subset + theorem MeasureTheory.tendsto_setToFun_filter_of_dominated_convergence + theorem MeasureTheory.tendsto_setToFun_of_L1 + theorem MeasureTheory.tendsto_setToFun_of_dominated_convergence 2023-06-02 12:29:24 0273cb3 feat: port MeasureTheory.Function.StronglyMeasurable.Lp (#4578) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/MeasureTheory/Function/StronglyMeasurable/Lp.lean + theorem MeasureTheory.Integrable.aefinStronglyMeasurable + theorem MeasureTheory.Lp.finStronglyMeasurable + theorem MeasureTheory.Memℒp.aefinStronglyMeasurable + theorem MeasureTheory.Memℒp.finStronglyMeasurable_of_stronglyMeasurable 2023-06-02 12:18:54 7412bcf feat: port FieldTheory.Finite.Basic (#4583) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/FieldTheory/Finite/Basic.lean + theorem CharP.sq_add_sq + theorem FiniteField.X_pow_card_pow_sub_X_natDegree_eq + theorem FiniteField.X_pow_card_pow_sub_X_ne_zero + theorem FiniteField.X_pow_card_sub_X_natDegree_eq + theorem FiniteField.X_pow_card_sub_X_ne_zero + theorem FiniteField.card' + theorem FiniteField.card + theorem FiniteField.card_image_polynomial_eval + theorem FiniteField.cast_card_eq_zero + theorem FiniteField.even_card_iff_char_two + theorem FiniteField.even_card_of_char_two + theorem FiniteField.exists_nonsquare + theorem FiniteField.exists_root_sum_quadratic + theorem FiniteField.expand_card + theorem FiniteField.forall_pow_eq_one_iff + theorem FiniteField.frobenius_pow + theorem FiniteField.isSquare_iff + theorem FiniteField.isSquare_of_char_two + theorem FiniteField.odd_card_of_char_ne_two + theorem FiniteField.pow_card + theorem FiniteField.pow_card_pow + theorem FiniteField.pow_card_sub_one_eq_one + theorem FiniteField.pow_dichotomy + theorem FiniteField.prod_univ_units_id_eq_neg_one + theorem FiniteField.roots_X_pow_card_sub_X + theorem FiniteField.sum_pow_lt_card_sub_one + theorem FiniteField.sum_pow_units + theorem FiniteField.unit_isSquare_iff + theorem Int.ModEq.pow_card_sub_one_eq_one + theorem Nat.ModEq.pow_totient + theorem ZMod.card_units + theorem ZMod.expand_card + theorem ZMod.frobenius_zMod + theorem ZMod.orderOf_dvd_card_sub_one + theorem ZMod.orderOf_units_dvd_card_sub_one + theorem ZMod.pow_card + theorem ZMod.pow_card_pow + theorem ZMod.pow_card_sub_one_eq_one + theorem ZMod.pow_totient + theorem ZMod.sq_add_sq + theorem ZMod.units_pow_card_sub_one_eq_one + theorem card_eq_pow_finrank 2023-06-02 12:18:52 bbc0ea7 feat: port AlgebraicGeometry.RingedSpace (#4499) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/AlgebraicGeometry/RingedSpace.lean + def AlgebraicGeometry.RingedSpace.basicOpen + theorem AlgebraicGeometry.RingedSpace.basicOpen_le + theorem AlgebraicGeometry.RingedSpace.basicOpen_mul + theorem AlgebraicGeometry.RingedSpace.basicOpen_of_isUnit + theorem AlgebraicGeometry.RingedSpace.basicOpen_res + theorem AlgebraicGeometry.RingedSpace.basicOpen_res_eq + theorem AlgebraicGeometry.RingedSpace.isUnit_of_isUnit_germ + theorem AlgebraicGeometry.RingedSpace.isUnit_res_basicOpen + theorem AlgebraicGeometry.RingedSpace.isUnit_res_of_isUnit_germ + theorem AlgebraicGeometry.RingedSpace.mem_basicOpen + theorem AlgebraicGeometry.RingedSpace.mem_top_basicOpen 2023-06-02 11:44:27 bac5670 chore: fix some names (#4564) * Protect `HasFTaylorSeriesUpToOn.fderivWithin`, `IsBoundedBilinearMap.fderiv`, and `IsBoundedBilinearMap.fderivWithin`. * Rename - `isBoundedBilinearMapSmul` -> `isBoundedBilinearMap_smul`; - `isBoundedBilinearMapMul` -> `isBoundedBilinearMap_mul`; - `isBoundedBilinearMapComp` -> `isBoundedBilinearMap_comp`; - `isBoundedBilinearMapSmulRight` -> `isBoundedBilinearMap_smulRight`; - `isBoundedBilinearMapCompMultilinear` -> `isBoundedBilinearMap_compMultilinear`; - `ContinuousLinearMap.mulLeftRightIsBoundedBilinear` -> `ContinuousLinearMap.mulLeftRight_isBoundedBilinear`; - `nhdsWithin_eq_nhds_within'` -> `nhdsWithin_eq_nhdsWithin'`; - `ContinuousWithinAt.preimage_mem_nhds_within'` -> `ContinuousWithinAt.preimage_mem_nhdsWithin'`. ESTIMATED CHANGES Modified Mathlib/Analysis/Calculus/ContDiffDef.lean Modified Mathlib/Analysis/Calculus/ExtendDeriv.lean Modified Mathlib/Analysis/Calculus/FDeriv/Bilinear.lean - theorem IsBoundedBilinearMap.fderiv - theorem IsBoundedBilinearMap.fderivWithin Modified Mathlib/Analysis/Calculus/FDeriv/Mul.lean Modified Mathlib/Analysis/NormedSpace/BoundedLinearMaps.lean - theorem ContinuousLinearMap.mulLeftRightIsBoundedBilinear + theorem ContinuousLinearMap.mulLeftRight_isBoundedBilinear - theorem isBoundedBilinearMapComp - theorem isBoundedBilinearMapCompMultilinear - theorem isBoundedBilinearMapMul - theorem isBoundedBilinearMapSmul - theorem isBoundedBilinearMapSmulRight + theorem isBoundedBilinearMap_comp + theorem isBoundedBilinearMap_compMultilinear + theorem isBoundedBilinearMap_mul + theorem isBoundedBilinearMap_smul + theorem isBoundedBilinearMap_smulRight Modified Mathlib/Topology/ContinuousOn.lean + theorem ContinuousWithinAt.preimage_mem_nhdsWithin' - theorem ContinuousWithinAt.preimage_mem_nhds_within' + theorem nhdsWithin_eq_nhdsWithin' - theorem nhdsWithin_eq_nhds_within' Modified Mathlib/Topology/UniformSpace/UniformConvergence.lean 2023-06-02 11:07:25 cdbd878 feat: port Analysis.Calculus.Taylor (#4582) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/Calculus/Taylor.lean + theorem continuousOn_taylorWithinEval + theorem exists_taylor_mean_remainder_bound + theorem hasDerivWithinAt_taylorWithinEval + theorem hasDerivWithinAt_taylor_coeff_within + theorem has_deriv_within_taylorWithinEval_at_Icc + theorem monomial_has_deriv_aux + theorem taylorWithinEval_hasDerivAt_Ioo + theorem taylorWithinEval_self + theorem taylorWithinEval_succ + theorem taylorWithin_succ + theorem taylor_mean_remainder + theorem taylor_mean_remainder_bound + theorem taylor_mean_remainder_cauchy + theorem taylor_mean_remainder_lagrange + theorem taylor_within_apply + theorem taylor_within_zero_eval 2023-06-02 11:07:24 9523725 chore: forward-port leanprover-community/mathlib#19134 (#4581) The mathlib3 change was fixing a synchronization comment, so there is nothing to port. ESTIMATED CHANGES Modified Mathlib/Analysis/NormedSpace/PiLp.lean 2023-06-02 11:07:23 204f135 feat: port MeasureTheory.Function.UniformIntegrable (#4577) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/MeasureTheory/Function/UniformIntegrable.lean + theorem MeasureTheory.Memℒp.integral_indicator_norm_ge_le + theorem MeasureTheory.Memℒp.integral_indicator_norm_ge_nonneg_le + theorem MeasureTheory.Memℒp.integral_indicator_norm_ge_nonneg_le_of_meas + theorem MeasureTheory.Memℒp.snormEssSup_indicator_norm_ge_eq_zero + theorem MeasureTheory.Memℒp.snorm_indicator_le' + theorem MeasureTheory.Memℒp.snorm_indicator_le + theorem MeasureTheory.Memℒp.snorm_indicator_le_of_meas + theorem MeasureTheory.Memℒp.snorm_indicator_norm_ge_le + theorem MeasureTheory.Memℒp.snorm_indicator_norm_ge_pos_le + def MeasureTheory.UnifIntegrable + theorem MeasureTheory.UniformIntegrable.ae_eq + theorem MeasureTheory.UniformIntegrable.spec' + theorem MeasureTheory.UniformIntegrable.spec + def MeasureTheory.UniformIntegrable + theorem MeasureTheory.snorm_indicator_le_of_bound + theorem MeasureTheory.snorm_sub_le_of_dist_bdd + theorem MeasureTheory.tendstoInMeasure_iff_tendsto_Lp + theorem MeasureTheory.tendsto_Lp_of_tendstoInMeasure + theorem MeasureTheory.tendsto_Lp_of_tendsto_ae + theorem MeasureTheory.tendsto_Lp_of_tendsto_ae_of_meas + theorem MeasureTheory.tendsto_indicator_ge + theorem MeasureTheory.unifIntegrable_congr_ae + theorem MeasureTheory.unifIntegrable_const + theorem MeasureTheory.unifIntegrable_fin + theorem MeasureTheory.unifIntegrable_finite + theorem MeasureTheory.unifIntegrable_of' + theorem MeasureTheory.unifIntegrable_of + theorem MeasureTheory.unifIntegrable_of_tendsto_Lp + theorem MeasureTheory.unifIntegrable_of_tendsto_Lp_zero + theorem MeasureTheory.unifIntegrable_subsingleton + theorem MeasureTheory.unifIntegrable_zero_meas + theorem MeasureTheory.uniformIntegrable_average + theorem MeasureTheory.uniformIntegrable_congr_ae + theorem MeasureTheory.uniformIntegrable_const + theorem MeasureTheory.uniformIntegrable_finite + theorem MeasureTheory.uniformIntegrable_iff + theorem MeasureTheory.uniformIntegrable_of' + theorem MeasureTheory.uniformIntegrable_of + theorem MeasureTheory.uniformIntegrable_subsingleton + theorem MeasureTheory.uniformIntegrable_zero_meas 2023-06-02 11:07:21 fa72225 feat: port NumberTheory.Liouville.Basic (#4576) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/NumberTheory/Liouville/Basic.lean + theorem Liouville.exists_one_le_pow_mul_dist + theorem Liouville.exists_pos_real_of_irrational_root + def Liouville 2023-06-02 11:07:20 c0a6eca feat: port RingTheory.Derivation.Basic (#4575) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/RingTheory/Derivation/Basic.lean + theorem Derivation.add_apply + def Derivation.coeFnAddMonoidHom + theorem Derivation.coeFn_coe + theorem Derivation.coe_add + theorem Derivation.coe_add_linearMap + theorem Derivation.coe_comp + theorem Derivation.coe_injective + theorem Derivation.coe_mk' + theorem Derivation.coe_mk'_linearMap + theorem Derivation.coe_neg + theorem Derivation.coe_neg_linearMap + theorem Derivation.coe_smul + theorem Derivation.coe_smul_linearMap + theorem Derivation.coe_sub + theorem Derivation.coe_sub_linearMap + theorem Derivation.coe_to_linearMap_comp + theorem Derivation.coe_zero + theorem Derivation.coe_zero_linearMap + theorem Derivation.congr_fun + theorem Derivation.eqOn_adjoin + theorem Derivation.ext + theorem Derivation.ext_of_adjoin_eq_top + theorem Derivation.leibniz + theorem Derivation.leibniz_inv + theorem Derivation.leibniz_invOf + theorem Derivation.leibniz_of_mul_eq_one + theorem Derivation.leibniz_pow + def Derivation.llcomp + theorem Derivation.map_algebraMap + theorem Derivation.map_coe_int + theorem Derivation.map_coe_nat + theorem Derivation.map_one_eq_zero + theorem Derivation.map_smul + theorem Derivation.map_smul_of_tower + theorem Derivation.map_sum + def Derivation.mk' + theorem Derivation.mk_coe + theorem Derivation.neg_apply + theorem Derivation.smul_apply + theorem Derivation.sub_apply + theorem Derivation.toFun_eq_coe + theorem Derivation.zero_apply + structure Derivation + def LinearEquiv.compDer + def LinearMap.compDer 2023-06-02 11:07:19 5020974 chore: bump aesop (#4570) ESTIMATED CHANGES 2023-06-02 11:07:18 be7e0e9 feat: port Analysis.Analytic.Linear (#4566) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/Analytic/Linear.lean + def ContinuousLinearMap.fpowerSeries + def ContinuousLinearMap.fpowerSeriesBilinear + theorem ContinuousLinearMap.fpowerSeriesBilinear_radius + theorem ContinuousLinearMap.fpowerSeries_apply_add_two + theorem ContinuousLinearMap.fpowerSeries_radius + def ContinuousLinearMap.uncurryBilinear + theorem ContinuousLinearMap.uncurryBilinear_apply 2023-06-02 11:07:17 2afe8cb feat: port Data.Ordmap.Ordset (#4541) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Data/Ordmap/Ordnode.lean + theorem Ordnode.size_nil + theorem Ordnode.size_node Added Mathlib/Data/Ordmap/Ordset.lean + theorem Ordnode.All.imp + theorem Ordnode.Any.imp + theorem Ordnode.Balanced.dual + def Ordnode.Balanced + theorem Ordnode.BalancedSz.symm + def Ordnode.BalancedSz + theorem Ordnode.Bounded.dual + theorem Ordnode.Bounded.dual_iff + theorem Ordnode.Bounded.mem_gt + theorem Ordnode.Bounded.mem_lt + theorem Ordnode.Bounded.mono_left + theorem Ordnode.Bounded.mono_right + theorem Ordnode.Bounded.of_gt + theorem Ordnode.Bounded.of_lt + theorem Ordnode.Bounded.to_lt + theorem Ordnode.Bounded.to_nil + theorem Ordnode.Bounded.to_sep + theorem Ordnode.Bounded.trans_left + theorem Ordnode.Bounded.trans_right + theorem Ordnode.Bounded.weak + theorem Ordnode.Bounded.weak_left + theorem Ordnode.Bounded.weak_right + def Ordnode.Bounded + theorem Ordnode.Raised.add_left + theorem Ordnode.Raised.add_right + theorem Ordnode.Raised.dist_le' + theorem Ordnode.Raised.dist_le + theorem Ordnode.Raised.right + def Ordnode.Raised + theorem Ordnode.Sized.balance' + theorem Ordnode.Sized.dual + theorem Ordnode.Sized.dual_iff + theorem Ordnode.Sized.eq_node' + theorem Ordnode.Sized.induction + theorem Ordnode.Sized.node' + theorem Ordnode.Sized.node3L + theorem Ordnode.Sized.node3R + theorem Ordnode.Sized.node4L + theorem Ordnode.Sized.pos + theorem Ordnode.Sized.rotateL + theorem Ordnode.Sized.rotateL_size + theorem Ordnode.Sized.rotateR + theorem Ordnode.Sized.rotateR_size + theorem Ordnode.Sized.size_eq + theorem Ordnode.Sized.size_eq_zero + def Ordnode.Sized + theorem Ordnode.Valid'.balance' + theorem Ordnode.Valid'.balance'_aux + theorem Ordnode.Valid'.balance'_lemma + theorem Ordnode.Valid'.balance + theorem Ordnode.Valid'.balanceL + theorem Ordnode.Valid'.balanceL_aux + theorem Ordnode.Valid'.balanceR + theorem Ordnode.Valid'.balanceR_aux + theorem Ordnode.Valid'.dual + theorem Ordnode.Valid'.dual_iff + theorem Ordnode.Valid'.eraseMax_aux + theorem Ordnode.Valid'.eraseMin_aux + theorem Ordnode.Valid'.erase_aux + theorem Ordnode.Valid'.glue + theorem Ordnode.Valid'.glue_aux + theorem Ordnode.Valid'.left + theorem Ordnode.Valid'.map_aux + theorem Ordnode.Valid'.merge_aux + theorem Ordnode.Valid'.merge_aux₁ + theorem Ordnode.Valid'.merge_lemma + theorem Ordnode.Valid'.mono_left + theorem Ordnode.Valid'.mono_right + theorem Ordnode.Valid'.node' + theorem Ordnode.Valid'.node3L + theorem Ordnode.Valid'.node3R + theorem Ordnode.Valid'.node4L + theorem Ordnode.Valid'.node4L_lemma₁ + theorem Ordnode.Valid'.node4L_lemma₂ + theorem Ordnode.Valid'.node4L_lemma₃ + theorem Ordnode.Valid'.node4L_lemma₄ + theorem Ordnode.Valid'.node4L_lemma₅ + theorem Ordnode.Valid'.node + theorem Ordnode.Valid'.of_gt + theorem Ordnode.Valid'.of_lt + theorem Ordnode.Valid'.right + theorem Ordnode.Valid'.rotateL + theorem Ordnode.Valid'.rotateL_lemma₁ + theorem Ordnode.Valid'.rotateL_lemma₂ + theorem Ordnode.Valid'.rotateL_lemma₃ + theorem Ordnode.Valid'.rotateL_lemma₄ + theorem Ordnode.Valid'.rotateR + theorem Ordnode.Valid'.trans_left + theorem Ordnode.Valid'.trans_right + theorem Ordnode.Valid'.valid + structure Ordnode.Valid' + theorem Ordnode.Valid.dual + theorem Ordnode.Valid.dual_iff + theorem Ordnode.Valid.merge + theorem Ordnode.Valid.size_eq + def Ordnode.Valid + theorem Ordnode.all_balance' + theorem Ordnode.all_balanceL + theorem Ordnode.all_balanceR + theorem Ordnode.all_dual + theorem Ordnode.all_iff_forall + theorem Ordnode.all_node' + theorem Ordnode.all_node3L + theorem Ordnode.all_node3R + theorem Ordnode.all_node4L + theorem Ordnode.all_node4R + theorem Ordnode.all_rotateL + theorem Ordnode.all_rotateR + theorem Ordnode.all_singleton + theorem Ordnode.any_iff_exists + theorem Ordnode.any_singleton + def Ordnode.balance' + def Ordnode.balanceL' + theorem Ordnode.balanceL_eq_balance' + theorem Ordnode.balanceL_eq_balance + def Ordnode.balanceR' + theorem Ordnode.balanceR_eq_balance' + theorem Ordnode.balance_eq_balance' + theorem Ordnode.balance_sz_dual + theorem Ordnode.balancedSz_down + theorem Ordnode.balancedSz_up + theorem Ordnode.balancedSz_zero + theorem Ordnode.delta_lt_false + theorem Ordnode.dual_balance' + theorem Ordnode.dual_balanceL + theorem Ordnode.dual_balanceR + theorem Ordnode.dual_dual + theorem Ordnode.dual_eraseMax + theorem Ordnode.dual_eraseMin + theorem Ordnode.dual_insert + theorem Ordnode.dual_node' + theorem Ordnode.dual_node3L + theorem Ordnode.dual_node3R + theorem Ordnode.dual_node4L + theorem Ordnode.dual_node4R + theorem Ordnode.dual_rotateL + theorem Ordnode.dual_rotateR + theorem Ordnode.emem_iff_all + theorem Ordnode.emem_iff_mem_toList + theorem Ordnode.equiv_iff + theorem Ordnode.erase.valid + theorem Ordnode.eraseMax.valid + theorem Ordnode.eraseMin.valid + theorem Ordnode.findMax'_all + theorem Ordnode.findMax'_dual + theorem Ordnode.findMax_dual + theorem Ordnode.findMin'_all + theorem Ordnode.findMin'_dual + theorem Ordnode.findMin_dual + theorem Ordnode.foldr_cons_eq_toList + theorem Ordnode.insert'.valid + theorem Ordnode.insert'_eq_insertWith + theorem Ordnode.insert.valid + theorem Ordnode.insertWith.valid + theorem Ordnode.insertWith.valid_aux + theorem Ordnode.insert_eq_insertWith + theorem Ordnode.length_toList' + theorem Ordnode.length_toList + theorem Ordnode.map.valid + theorem Ordnode.merge_nil_left + theorem Ordnode.merge_nil_right + theorem Ordnode.merge_node + def Ordnode.node3L + theorem Ordnode.node3L_size + def Ordnode.node3R + theorem Ordnode.node3R_size + def Ordnode.node4L + theorem Ordnode.node4L_size + def Ordnode.node4R + theorem Ordnode.not_le_delta + theorem Ordnode.pos_size_of_mem + theorem Ordnode.raised_iff + def Ordnode.realSize + def Ordnode.rotateL + theorem Ordnode.rotateL_nil + theorem Ordnode.rotateL_node + def Ordnode.rotateR + theorem Ordnode.rotateR_nil + theorem Ordnode.rotateR_node + theorem Ordnode.size_balance' + theorem Ordnode.size_balanceL + theorem Ordnode.size_balanceR + theorem Ordnode.size_dual + theorem Ordnode.size_eq_realSize + theorem Ordnode.size_erase_of_mem + theorem Ordnode.splitMax_eq + theorem Ordnode.splitMin_eq + theorem Ordnode.toList_nil + theorem Ordnode.toList_node + theorem Ordnode.valid'_nil + theorem Ordnode.valid'_singleton + theorem Ordnode.valid_nil + theorem Ordnode.valid_singleton + def Ordset.Empty + theorem Ordset.empty_iff + def Ordset.erase + def Ordset.find + def Ordset.map + def Ordset.mem + theorem Ordset.pos_size_of_mem + def Ordset.size + def Ordset 2023-06-02 11:07:15 18b622d chore: run CI on Hoskinson machines (#4539) ESTIMATED CHANGES Modified .github/workflows/bors.yml Modified .github/workflows/build.yml Modified .github/workflows/build.yml.in 2023-06-02 11:07:14 a17426c feat: Condensed objects (#4527) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Condensed/Basic.lean + def Condensed Added Mathlib/Topology/Category/CompHaus/EffectiveEpi.lean + def CompHaus.EffectiveEpiFamily.QB + def CompHaus.EffectiveEpiFamily.relation + def CompHaus.EffectiveEpiFamily.struct + def CompHaus.EffectiveEpiFamily.structAux + def CompHaus.EffectiveEpiFamily.ι + def CompHaus.EffectiveEpiFamily.ιFun + theorem CompHaus.EffectiveEpiFamily.ιFun_continuous + theorem CompHaus.EffectiveEpiFamily.ιFun_injective + def CompHaus.EffectiveEpiFamily.ιHom + def CompHaus.EffectiveEpiFamily.π' + theorem CompHaus.EffectiveEpiFamily.π'_comp_ι_hom + theorem CompHaus.EffectiveEpiFamily.π_comp_ι_inv + theorem CompHaus.effectiveEpiFamily_of_jointly_surjective + theorem CompHaus.effectiveEpiFamily_tfae Added Mathlib/Topology/Category/CompHaus/ExplicitLimits.lean + def CompHaus.finiteCoproduct.cocone + def CompHaus.finiteCoproduct.desc + theorem CompHaus.finiteCoproduct.hom_ext + def CompHaus.finiteCoproduct.isColimit + def CompHaus.finiteCoproduct.ι + theorem CompHaus.finiteCoproduct.ι_desc + def CompHaus.finiteCoproduct + theorem CompHaus.pullback.condition + def CompHaus.pullback.cone + def CompHaus.pullback.fst + theorem CompHaus.pullback.hom_ext + def CompHaus.pullback.isLimit + def CompHaus.pullback.lift + theorem CompHaus.pullback.lift_fst + theorem CompHaus.pullback.lift_snd + def CompHaus.pullback.snd + def CompHaus.pullback Modified docs/references.bib 2023-06-02 11:07:13 a2ba3ef feat: port MeasureTheory.Function.SimpleFuncDenseLp (#4521) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/MeasureTheory/Function/SimpleFuncDenseLp.lean + theorem MeasureTheory.Integrable.induction + theorem MeasureTheory.L1.SimpleFunc.toLp_one_eq_toL1 + theorem MeasureTheory.Lp.induction + theorem MeasureTheory.Lp.simpleFunc.add_toSimpleFunc + theorem MeasureTheory.Lp.simpleFunc.coeFn_le + theorem MeasureTheory.Lp.simpleFunc.coeFn_nonneg + theorem MeasureTheory.Lp.simpleFunc.coeFn_zero + def MeasureTheory.Lp.simpleFunc.coeSimpleFuncNonnegToLpNonneg + def MeasureTheory.Lp.simpleFunc.coeToLp + theorem MeasureTheory.Lp.simpleFunc.coe_indicatorConst + theorem MeasureTheory.Lp.simpleFunc.coe_smul + theorem MeasureTheory.Lp.simpleFunc.denseRange_coeSimpleFuncNonnegToLpNonneg + theorem MeasureTheory.Lp.simpleFunc.exists_simpleFunc_nonneg_ae_eq + def MeasureTheory.Lp.simpleFunc.indicatorConst + theorem MeasureTheory.Lp.simpleFunc.neg_toSimpleFunc + theorem MeasureTheory.Lp.simpleFunc.norm_toSimpleFunc + theorem MeasureTheory.Lp.simpleFunc.smul_toSimpleFunc + theorem MeasureTheory.Lp.simpleFunc.sub_toSimpleFunc + def MeasureTheory.Lp.simpleFunc.toLp + theorem MeasureTheory.Lp.simpleFunc.toLp_add + theorem MeasureTheory.Lp.simpleFunc.toLp_eq_mk + theorem MeasureTheory.Lp.simpleFunc.toLp_eq_toLp + theorem MeasureTheory.Lp.simpleFunc.toLp_neg + theorem MeasureTheory.Lp.simpleFunc.toLp_smul + theorem MeasureTheory.Lp.simpleFunc.toLp_sub + theorem MeasureTheory.Lp.simpleFunc.toLp_toSimpleFunc + theorem MeasureTheory.Lp.simpleFunc.toLp_zero + def MeasureTheory.Lp.simpleFunc.toSimpleFunc + theorem MeasureTheory.Lp.simpleFunc.toSimpleFunc_eq_toFun + theorem MeasureTheory.Lp.simpleFunc.toSimpleFunc_indicatorConst + theorem MeasureTheory.Lp.simpleFunc.toSimpleFunc_toLp + theorem MeasureTheory.Lp.simpleFunc.zero_toSimpleFunc + def MeasureTheory.Lp.simpleFunc + theorem MeasureTheory.Memℒp.exists_simpleFunc_snorm_sub_lt + theorem MeasureTheory.Memℒp.induction + theorem MeasureTheory.Memℒp.induction_dense + theorem MeasureTheory.SimpleFunc.FinMeasSupp.integrable + theorem MeasureTheory.SimpleFunc.exists_forall_norm_le + theorem MeasureTheory.SimpleFunc.integrable_approxOn + theorem MeasureTheory.SimpleFunc.integrable_approxOn_range + theorem MeasureTheory.SimpleFunc.integrable_iff + theorem MeasureTheory.SimpleFunc.integrable_iff_finMeasSupp + theorem MeasureTheory.SimpleFunc.integrable_of_finiteMeasure + theorem MeasureTheory.SimpleFunc.integrable_pair + theorem MeasureTheory.SimpleFunc.measure_lt_top_of_memℒp_indicator + theorem MeasureTheory.SimpleFunc.measure_preimage_lt_top_of_integrable + theorem MeasureTheory.SimpleFunc.measure_preimage_lt_top_of_memℒp + theorem MeasureTheory.SimpleFunc.measure_support_lt_top + theorem MeasureTheory.SimpleFunc.measure_support_lt_top_of_integrable + theorem MeasureTheory.SimpleFunc.measure_support_lt_top_of_memℒp + theorem MeasureTheory.SimpleFunc.memℒp_approxOn + theorem MeasureTheory.SimpleFunc.memℒp_approxOn_range + theorem MeasureTheory.SimpleFunc.memℒp_iff + theorem MeasureTheory.SimpleFunc.memℒp_iff_finMeasSupp + theorem MeasureTheory.SimpleFunc.memℒp_iff_integrable + theorem MeasureTheory.SimpleFunc.memℒp_of_finiteMeasure + theorem MeasureTheory.SimpleFunc.memℒp_of_finite_measure_preimage + theorem MeasureTheory.SimpleFunc.memℒp_top + theorem MeasureTheory.SimpleFunc.memℒp_zero + theorem MeasureTheory.SimpleFunc.nnnorm_approxOn_le + theorem MeasureTheory.SimpleFunc.norm_approxOn_y₀_le + theorem MeasureTheory.SimpleFunc.norm_approxOn_zero_le + theorem MeasureTheory.SimpleFunc.tendsto_approxOn_L1_nnnorm + theorem MeasureTheory.SimpleFunc.tendsto_approxOn_Lp_snorm + theorem MeasureTheory.SimpleFunc.tendsto_approxOn_range_L1_nnnorm + theorem MeasureTheory.SimpleFunc.tendsto_approxOn_range_Lp + theorem MeasureTheory.SimpleFunc.tendsto_approxOn_range_Lp_snorm 2023-06-02 11:07:12 71abac0 feat: port Analysis.InnerProductSpace.Orientation (#4503) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Analysis/InnerProductSpace/GramSchmidtOrtho.lean +/- theorem gramSchmidtOrthonormalBasis_det Added Mathlib/Analysis/InnerProductSpace/Orientation.lean + theorem Orientation.abs_volumeForm_apply_le + theorem Orientation.abs_volumeForm_apply_of_orthonormal + theorem Orientation.abs_volumeForm_apply_of_pairwise_orthogonal + theorem Orientation.finOrthonormalBasis_orientation + theorem Orientation.volumeForm_apply_le + theorem Orientation.volumeForm_comp_linearIsometryEquiv + theorem Orientation.volumeForm_map + theorem Orientation.volumeForm_neg_orientation + theorem Orientation.volumeForm_robust' + theorem Orientation.volumeForm_robust + theorem Orientation.volumeForm_robust_neg + theorem Orientation.volumeForm_zero_neg + theorem Orientation.volumeForm_zero_pos + theorem OrthonormalBasis.abs_det_adjustToOrientation + def OrthonormalBasis.adjustToOrientation + theorem OrthonormalBasis.adjustToOrientation_apply_eq_or_eq_neg + theorem OrthonormalBasis.det_adjustToOrientation + theorem OrthonormalBasis.det_eq_neg_det_of_opposite_orientation + theorem OrthonormalBasis.det_to_matrix_orthonormalBasis_of_opposite_orientation + theorem OrthonormalBasis.det_to_matrix_orthonormalBasis_of_same_orientation + theorem OrthonormalBasis.orientation_adjustToOrientation + theorem OrthonormalBasis.orthonormal_adjustToOrientation + theorem OrthonormalBasis.same_orientation_iff_det_eq_det + theorem OrthonormalBasis.toBasis_adjustToOrientation 2023-06-02 11:07:11 8b3f2b6 feat: functors which commute with shifts (#4429) This PR defines the notion of a functor which commutes with shifts, when both the source and target categories are equipped with shifts by a monoid. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Shift/CommShift.lean + theorem CategoryTheory.Functor.CommShift.isoAdd_hom_app + theorem CategoryTheory.Functor.CommShift.isoAdd_inv_app + def CategoryTheory.Functor.commShiftIso + theorem CategoryTheory.Functor.commShiftIso_add' + theorem CategoryTheory.Functor.commShiftIso_add + theorem CategoryTheory.Functor.commShiftIso_hom_naturality + theorem CategoryTheory.Functor.commShiftIso_inv_naturality + theorem CategoryTheory.Functor.commShiftIso_zero Modified docs/references.bib 2023-06-02 11:07:09 c29cd91 feat: port Topology.Homotopy.HSpaces (#4334) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Topology/Homotopy/HSpaces.lean + theorem Path.continuous_delayReflLeft + theorem Path.continuous_delayReflRight + def Path.delayReflLeft + theorem Path.delayReflLeft_one + theorem Path.delayReflLeft_zero + def Path.delayReflRight + theorem Path.delayReflRight_one + theorem Path.delayReflRight_zero + theorem TopologicalGroup.one_eq_hSpace_e + def TopologicalGroup.toHSpace + theorem unitInterval.continuous_qRight + def unitInterval.qRight + theorem unitInterval.qRight_one_left + theorem unitInterval.qRight_one_right + theorem unitInterval.qRight_zero_left + theorem unitInterval.qRight_zero_right 2023-06-02 11:07:08 7a20abe feat: port CategoryTheory.Extensive (#4022) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Extensive.lean + theorem CategoryTheory.BinaryCofan.isPullback_initial_to_of_isVanKampen + theorem CategoryTheory.BinaryCofan.isVanKampen_iff + theorem CategoryTheory.BinaryCofan.isVanKampen_mk + theorem CategoryTheory.BinaryCofan.mono_inr_of_isVanKampen + theorem CategoryTheory.FinitaryExtensive.isPullback_initial_to_binaryCofan + theorem CategoryTheory.FinitaryExtensive.mono_inl_of_isColimit + theorem CategoryTheory.FinitaryExtensive.mono_inr_of_isColimit + theorem CategoryTheory.FinitaryExtensive.vanKampen + theorem CategoryTheory.IsInitial.isVanKampenColimit + def CategoryTheory.IsUniversalColimit + theorem CategoryTheory.IsVanKampenColimit.isUniversal + theorem CategoryTheory.IsVanKampenColimit.of_iso + theorem CategoryTheory.IsVanKampenColimit.of_map + def CategoryTheory.IsVanKampenColimit + theorem CategoryTheory.NatTrans.Equifibered.comp + theorem CategoryTheory.NatTrans.Equifibered.whiskerRight + def CategoryTheory.NatTrans.Equifibered + theorem CategoryTheory.NatTrans.equifibered_of_isIso + theorem CategoryTheory.finitaryExtensive_iff_of_isTerminal + theorem CategoryTheory.finitaryExtensive_of_preserves_and_reflects + theorem CategoryTheory.finitaryExtensive_of_preserves_and_reflects_isomorphism + theorem CategoryTheory.hasStrictInitial_of_isUniversal + theorem CategoryTheory.isVanKampenColimit_of_evaluation + theorem CategoryTheory.mapPair_equifibered 2023-06-02 10:22:54 2d6ccb3 feat: port RingTheory.IntegrallyClosed (#4574) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/RingTheory/IntegrallyClosed.lean + theorem IsIntegrallyClosed.exists_algebraMap_eq_of_isIntegral_pow + theorem IsIntegrallyClosed.exists_algebraMap_eq_of_pow_mem_subalgebra + theorem IsIntegrallyClosed.integralClosure_eq_bot + theorem IsIntegrallyClosed.integralClosure_eq_bot_iff + theorem IsIntegrallyClosed.isIntegral_iff + theorem integralClosure.isIntegrallyClosedOfFiniteExtension + theorem isIntegrallyClosed_iff + theorem isIntegrallyClosed_iff_isIntegralClosure 2023-06-02 10:22:53 488dc76 feat: port Analysis.VonNeumannAlgebra.Basic (#4569) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/VonNeumannAlgebra/Basic.lean + theorem VonNeumannAlgebra.centralizer_centralizer + theorem VonNeumannAlgebra.coe_commutant + def VonNeumannAlgebra.commutant + theorem VonNeumannAlgebra.commutant_commutant + theorem VonNeumannAlgebra.ext + theorem VonNeumannAlgebra.mem_carrier + theorem VonNeumannAlgebra.mem_commutant_iff + structure VonNeumannAlgebra 2023-06-02 10:22:51 45733cc feat: port Analysis.NormedSpace.Exponential (#4567) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/NormedSpace/Exponential.lean + theorem Commute.exp + theorem Commute.exp_left + theorem Commute.exp_right + theorem Function.update_exp + theorem IsSelfAdjoint.exp + theorem Pi.exp_apply + theorem Pi.exp_def + theorem Prod.fst_exp + theorem Prod.snd_exp + theorem Ring.inverse_exp + theorem algebraMap_exp_comm + theorem algebraMap_exp_comm_of_mem_ball + theorem analyticAt_exp_of_mem_ball + theorem continuousOn_exp + def expSeries + theorem expSeries_apply_eq' + theorem expSeries_apply_eq + theorem expSeries_apply_eq_div' + theorem expSeries_apply_eq_div + theorem expSeries_apply_zero + theorem expSeries_div_hasSum_exp + theorem expSeries_div_hasSum_exp_of_mem_ball + theorem expSeries_div_summable + theorem expSeries_div_summable_of_mem_ball + theorem expSeries_eq_expSeries + theorem expSeries_hasSum_exp + theorem expSeries_hasSum_exp_of_mem_ball' + theorem expSeries_hasSum_exp_of_mem_ball + theorem expSeries_radius_eq_top + theorem expSeries_radius_pos + theorem expSeries_sum_eq + theorem expSeries_sum_eq_div + theorem expSeries_summable' + theorem expSeries_summable + theorem expSeries_summable_of_mem_ball' + theorem expSeries_summable_of_mem_ball + theorem exp_add + theorem exp_add_of_commute + theorem exp_add_of_commute_of_mem_ball + theorem exp_add_of_mem_ball + theorem exp_analytic + theorem exp_conj' + theorem exp_conj + theorem exp_continuous + theorem exp_eq_exp + theorem exp_eq_tsum + theorem exp_eq_tsum_div + theorem exp_hasFPowerSeriesAt_zero + theorem exp_hasFPowerSeriesOnBall + theorem exp_mem_unitary_of_mem_skewAdjoint + theorem exp_neg + theorem exp_neg_of_mem_ball + theorem exp_nsmul + theorem exp_op + theorem exp_series_hasSum_exp' + theorem exp_smul + theorem exp_sum + theorem exp_sum_of_commute + theorem exp_units_conj' + theorem exp_units_conj + theorem exp_unop + theorem exp_zero + theorem exp_zsmul + theorem exp_ℝ_ℂ_eq_exp_ℂ_ℂ + theorem hasFPowerSeriesAt_exp_zero_of_radius_pos + theorem hasFPowerSeriesOnBall_exp_of_radius_pos + theorem invOf_exp + theorem invOf_exp_of_mem_ball + theorem isUnit_exp + theorem isUnit_exp_of_mem_ball + theorem map_exp + theorem map_exp_of_mem_ball + theorem norm_expSeries_div_summable + theorem norm_expSeries_div_summable_of_mem_ball + theorem norm_expSeries_summable' + theorem norm_expSeries_summable + theorem norm_expSeries_summable_of_mem_ball' + theorem norm_expSeries_summable_of_mem_ball + theorem of_real_exp_ℝ_ℝ + theorem star_exp 2023-06-02 10:22:50 2ce27d0 feat: port CategoryTheory.Monoidal.Rigid.Basic (#4563) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Monoidal/Rigid/Basic.lean + def CategoryTheory.ExactPairing.coevaluation + theorem CategoryTheory.ExactPairing.coevaluation_evaluation + def CategoryTheory.ExactPairing.evaluation + theorem CategoryTheory.ExactPairing.evaluation_coevaluation + def CategoryTheory.closedOfHasLeftDual + theorem CategoryTheory.coevaluation_comp_leftAdjointMate + theorem CategoryTheory.coevaluation_comp_rightAdjointMate + theorem CategoryTheory.comp_leftAdjointMate + theorem CategoryTheory.comp_rightAdjointMate + def CategoryTheory.exactPairingCongr + def CategoryTheory.exactPairingCongrLeft + def CategoryTheory.exactPairingCongrRight + def CategoryTheory.leftAdjointMate + theorem CategoryTheory.leftAdjointMate_comp + theorem CategoryTheory.leftAdjointMate_comp_evaluation + theorem CategoryTheory.leftAdjointMate_id + def CategoryTheory.leftDualIso + theorem CategoryTheory.leftDualIso_id + theorem CategoryTheory.leftDual_rightDual + def CategoryTheory.monoidalClosedOfLeftRigidCategory + def CategoryTheory.rightAdjointMate + theorem CategoryTheory.rightAdjointMate_comp + theorem CategoryTheory.rightAdjointMate_comp_evaluation + theorem CategoryTheory.rightAdjointMate_id + def CategoryTheory.rightDualIso + theorem CategoryTheory.rightDualIso_id + theorem CategoryTheory.rightDual_leftDual + def CategoryTheory.tensorLeftAdjunction + def CategoryTheory.tensorLeftHomEquiv + theorem CategoryTheory.tensorLeftHomEquiv_id_tensor_comp_evaluation + theorem CategoryTheory.tensorLeftHomEquiv_naturality + theorem CategoryTheory.tensorLeftHomEquiv_symm_coevaluation_comp_id_tensor + theorem CategoryTheory.tensorLeftHomEquiv_symm_coevaluation_comp_tensor_id + theorem CategoryTheory.tensorLeftHomEquiv_symm_naturality + theorem CategoryTheory.tensorLeftHomEquiv_tensor + theorem CategoryTheory.tensorLeftHomEquiv_tensor_id_comp_evaluation + def CategoryTheory.tensorRightAdjunction + def CategoryTheory.tensorRightHomEquiv + theorem CategoryTheory.tensorRightHomEquiv_id_tensor_comp_evaluation + theorem CategoryTheory.tensorRightHomEquiv_naturality + theorem CategoryTheory.tensorRightHomEquiv_symm_coevaluation_comp_id_tensor + theorem CategoryTheory.tensorRightHomEquiv_symm_coevaluation_comp_tensor_id + theorem CategoryTheory.tensorRightHomEquiv_symm_naturality + theorem CategoryTheory.tensorRightHomEquiv_tensor + theorem CategoryTheory.tensorRightHomEquiv_tensor_id_comp_evaluation 2023-06-02 10:22:49 b265a52 feat: port CategoryTheory.Monoidal.Braided (#4560) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Monoidal/Braided.lean + def CategoryTheory.BraidedFunctor.comp + theorem CategoryTheory.BraidedFunctor.comp_toNatTrans + def CategoryTheory.BraidedFunctor.id + def CategoryTheory.BraidedFunctor.mkIso + def CategoryTheory.BraidedFunctor.toLaxBraidedFunctor + structure CategoryTheory.BraidedFunctor + def CategoryTheory.Discrete.braidedFunctor + def CategoryTheory.LaxBraidedFunctor.comp + theorem CategoryTheory.LaxBraidedFunctor.comp_toNatTrans + def CategoryTheory.LaxBraidedFunctor.id + def CategoryTheory.LaxBraidedFunctor.mkIso + structure CategoryTheory.LaxBraidedFunctor + theorem CategoryTheory.associator_monoidal + theorem CategoryTheory.associator_monoidal_aux + def CategoryTheory.braidedCategoryOfFaithful + theorem CategoryTheory.braiding_leftUnitor + theorem CategoryTheory.braiding_leftUnitor_aux₁ + theorem CategoryTheory.braiding_leftUnitor_aux₂ + theorem CategoryTheory.braiding_rightUnitor + theorem CategoryTheory.braiding_rightUnitor_aux₁ + theorem CategoryTheory.braiding_rightUnitor_aux₂ + theorem CategoryTheory.leftUnitor_inv_braiding + theorem CategoryTheory.leftUnitor_monoidal + theorem CategoryTheory.rightUnitor_inv_braiding + theorem CategoryTheory.rightUnitor_monoidal + def CategoryTheory.symmetricCategoryOfFaithful + def CategoryTheory.tensorMonoidal + theorem CategoryTheory.tensor_associativity + theorem CategoryTheory.tensor_associativity_aux + theorem CategoryTheory.tensor_left_unitality + theorem CategoryTheory.tensor_right_unitality + def CategoryTheory.tensor_μ + theorem CategoryTheory.tensor_μ_def₁ + theorem CategoryTheory.tensor_μ_def₂ + theorem CategoryTheory.tensor_μ_natural Modified Mathlib/Tactic/CategoryTheory/Coherence.lean 2023-06-02 06:13:32 b89360a feat: port Analysis.Calculus.LHopital (#4556) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/Calculus/LHopital.lean + theorem HasDerivAt.lhopital_zero_atBot + theorem HasDerivAt.lhopital_zero_atBot_on_Iio + theorem HasDerivAt.lhopital_zero_atTop + theorem HasDerivAt.lhopital_zero_atTop_on_Ioi + theorem HasDerivAt.lhopital_zero_left_on_Ioc + theorem HasDerivAt.lhopital_zero_left_on_Ioo + theorem HasDerivAt.lhopital_zero_nhds' + theorem HasDerivAt.lhopital_zero_nhds + theorem HasDerivAt.lhopital_zero_nhds_left + theorem HasDerivAt.lhopital_zero_nhds_right + theorem HasDerivAt.lhopital_zero_right_on_Ico + theorem HasDerivAt.lhopital_zero_right_on_Ioo + theorem deriv.lhopital_zero_atBot + theorem deriv.lhopital_zero_atBot_on_Iio + theorem deriv.lhopital_zero_atTop + theorem deriv.lhopital_zero_atTop_on_Ioi + theorem deriv.lhopital_zero_left_on_Ioo + theorem deriv.lhopital_zero_nhds' + theorem deriv.lhopital_zero_nhds + theorem deriv.lhopital_zero_nhds_left + theorem deriv.lhopital_zero_nhds_right + theorem deriv.lhopital_zero_right_on_Ico + theorem deriv.lhopital_zero_right_on_Ioo 2023-06-02 06:13:30 162ec81 fix: spacing and indentation in tactic formatters (#4519) This fixes a bunch of spacing bugs in tactics. Mathlib counterpart of: * Lean: leanprover/lean4#2240 * Std: leanprover/std4#149 * Aesop: JLimperg/aesop#56 ESTIMATED CHANGES Modified Cache/Main.lean Modified Mathlib/Algebra/BigOperators/Finprod.lean Modified Mathlib/Algebra/DirectSum/Basic.lean Modified Mathlib/Algebra/GradedMonoid.lean Modified Mathlib/CategoryTheory/DiscreteCategory.lean Modified Mathlib/Data/Dfinsupp/Basic.lean Modified Mathlib/Data/Set/Lattice.lean Modified Mathlib/GroupTheory/Perm/Cycle/Concrete.lean Modified Mathlib/Init/Logic.lean Modified Mathlib/Init/Set.lean +/- def Set.image +/- def Set.powerset Modified Mathlib/Mathport/Notation.lean Modified Mathlib/Mathport/Rename.lean Modified Mathlib/Mathport/Syntax.lean Modified Mathlib/MeasureTheory/Integral/Lebesgue.lean Modified Mathlib/MeasureTheory/Measure/MeasureSpaceDef.lean Modified Mathlib/Order/Filter/Basic.lean Modified Mathlib/Order/Filter/FilterProduct.lean Modified Mathlib/Order/LiminfLimsup.lean Modified Mathlib/RingTheory/Localization/Basic.lean Modified Mathlib/Tactic/Abel.lean Modified Mathlib/Tactic/Alias.lean Modified Mathlib/Tactic/ApplyCongr.lean Modified Mathlib/Tactic/ApplyFun.lean Modified Mathlib/Tactic/Basic.lean Modified Mathlib/Tactic/CancelDenoms.lean Modified Mathlib/Tactic/Cases.lean - def Lean.Parser.Tactic.ElimApp.evalNames + def Mathlib.Tactic.ElimApp.evalNames Modified Mathlib/Tactic/CasesM.lean Modified Mathlib/Tactic/CategoryTheory/Elementwise.lean Modified Mathlib/Tactic/CategoryTheory/Reassoc.lean Modified Mathlib/Tactic/CategoryTheory/Slice.lean Modified Mathlib/Tactic/Choose.lean Modified Mathlib/Tactic/Classical.lean Modified Mathlib/Tactic/ClearExcept.lean Modified Mathlib/Tactic/Congr!.lean Modified Mathlib/Tactic/Convert.lean Modified Mathlib/Tactic/Core.lean - def Lean.Parser.Tactic.getDSimpArgs - def Lean.Parser.Tactic.getSimpArgs - def Lean.Parser.Tactic.getUsingArg - def Lean.Parser.Tactic.getWithArgs + def Mathlib.Tactic.getDSimpArgs + def Mathlib.Tactic.getSimpArgs + def Mathlib.Tactic.getUsingArg + def Mathlib.Tactic.getWithArgs Modified Mathlib/Tactic/Eqns.lean Modified Mathlib/Tactic/FBinop.lean Modified Mathlib/Tactic/FailIfNoProgress.lean Modified Mathlib/Tactic/FieldSimp.lean Modified Mathlib/Tactic/Find.lean Modified Mathlib/Tactic/GeneralizeProofs.lean Modified Mathlib/Tactic/Group.lean Modified Mathlib/Tactic/HelpCmd.lean Modified Mathlib/Tactic/IrreducibleDef.lean Modified Mathlib/Tactic/LabelAttr.lean Modified Mathlib/Tactic/LibrarySearch.lean Modified Mathlib/Tactic/Lift.lean Modified Mathlib/Tactic/MkIffOfInductiveProp.lean Modified Mathlib/Tactic/ModCases.lean Modified Mathlib/Tactic/Nontriviality/Core.lean Modified Mathlib/Tactic/NormCast/Tactic.lean Modified Mathlib/Tactic/NormNum/Core.lean Modified Mathlib/Tactic/NthRewrite.lean Modified Mathlib/Tactic/Positivity/Core.lean Modified Mathlib/Tactic/Propose.lean Modified Mathlib/Tactic/PushNeg.lean Modified Mathlib/Tactic/Qify.lean Modified Mathlib/Tactic/Recover.lean Modified Mathlib/Tactic/Relation/Trans.lean Modified Mathlib/Tactic/Rename.lean Modified Mathlib/Tactic/RenameBVar.lean Modified Mathlib/Tactic/Replace.lean Modified Mathlib/Tactic/RestateAxiom.lean Modified Mathlib/Tactic/Ring/RingNF.lean Modified Mathlib/Tactic/RunCmd.lean Modified Mathlib/Tactic/Sat/FromLRAT.lean Modified Mathlib/Tactic/Set.lean Modified Mathlib/Tactic/SimpRw.lean Modified Mathlib/Tactic/Simps/Basic.lean Modified Mathlib/Tactic/SolveByElim.lean Modified Mathlib/Tactic/SplitIfs.lean Modified Mathlib/Tactic/SuccessIfFailWithMsg.lean Modified Mathlib/Tactic/SudoSetOption.lean Modified Mathlib/Tactic/SwapVar.lean Modified Mathlib/Tactic/ToAdditive.lean Modified Mathlib/Tactic/Zify.lean Modified Mathlib/Topology/Algebra/InfiniteSum/Basic.lean Modified Mathlib/Topology/Sheaves/Presheaf.lean Modified Mathlib/Topology/UniformSpace/UniformConvergenceTopology.lean Modified Mathlib/Topology/UnitInterval.lean Modified Mathlib/Util/WhatsNew.lean Modified lake-manifest.json 2023-06-02 04:07:24 d2b5332 feat: port Analysis.Calculus.ExtendDeriv (#4562) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/Calculus/ExtendDeriv.lean + theorem hasDerivAt_of_hasDerivAt_of_ne' + theorem hasDerivAt_of_hasDerivAt_of_ne + theorem has_deriv_at_interval_left_endpoint_of_tendsto_deriv + theorem has_deriv_at_interval_right_endpoint_of_tendsto_deriv + theorem has_fderiv_at_boundary_of_tendsto_fderiv 2023-06-02 04:07:23 b69f9d1 chore: cleanup in PresheafedSpace (#4558) ESTIMATED CHANGES Modified Mathlib/AlgebraicGeometry/PresheafedSpace.lean Modified Mathlib/CategoryTheory/Functor/Category.lean Modified Mathlib/CategoryTheory/NatTrans.lean Modified Mathlib/Combinatorics/Quiver/Basic.lean + theorem Prefunctor.mk_map + theorem Prefunctor.mk_obj Modified Mathlib/Data/Opposite.lean 2023-06-02 03:45:48 65ec38c feat: port Analysis.Analytic.RadiusLiminf (#4559) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/Analytic/RadiusLiminf.lean + theorem FormalMultilinearSeries.radius_eq_liminf 2023-06-02 03:45:47 3eaf72e feat: port Analysis.InnerProductSpace.l2Space (#4555) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/InnerProductSpace/l2Space.lean + theorem HilbertBasis.coe_toOrthonormalBasis + theorem HilbertBasis.finite_spans_dense + structure HilbertBasis + theorem IsHilbertSum.mk + theorem IsHilbertSum.mkInternal + structure IsHilbertSum + theorem Orthonormal.exists_hilbertBasis_extension + theorem Orthonormal.isHilbertSum + theorem Orthonormal.linearIsometryEquiv_symm_apply_single_one + theorem OrthonormalBasis.coe_toHilbertBasis + theorem Submodule.isHilbertSumOrthogonal + theorem exists_hilbertBasis + theorem lp.hasSum_inner + theorem lp.inner_eq_tsum + theorem lp.inner_single_left + theorem lp.inner_single_right + theorem lp.summable_inner 2023-06-01 23:29:39 2b30bc3 feat: forward-port 2 lemmas from mathlib3 (#4542) These lemmas are in the `analysis.calculus.cont_diff` file with a porting comment saying to move them to `Data.Nat.Choose.Sum`. I moved them, golfed, and added multiplicative versions. ESTIMATED CHANGES Modified Mathlib/Data/Nat/Choose/Sum.lean + theorem Finset.prod_antidiagonal_pow_choose_succ + theorem Finset.prod_pow_choose_succ + theorem Finset.sum_antidiagonal_choose_succ_mul + theorem Finset.sum_choose_succ_mul 2023-06-01 23:29:38 4d65690 fix: `Control.Writer` -> `Control.Monad.Writer` (#4540) ESTIMATED CHANGES Modified Mathlib.lean Renamed Mathlib/Control/Writer.lean to Mathlib/Control/Monad/Writer.lean 2023-06-01 23:29:37 63c7147 style(MeasureTheory.Measure.MeasureDpaceDef): refactors `notation`s so that `f =ᵐ[μ] g` and `f ≤ᵐ[μ] g` can be pretty-printed (#4536) ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Measure/MeasureSpaceDef.lean 2023-06-01 23:29:36 b2bddc3 chore(Mathlib/FieldTheory/RatFunc): change from `elab` to `macro` in custom tactic (#4528) This PR switches a custom tactic, used just in RatFunc, to a simple `macro`. Although this is quite straightforward, this is my first "official" metaprogramming in Lean4, so any kind of feedback is more than welcome! ESTIMATED CHANGES Modified Mathlib/FieldTheory/RatFunc.lean 2023-06-01 23:29:34 685595f chore: make `ι` an explicit arg of `AlternatingMap.constOfIsEmpty` (#4510) Forward-port leanprover-community/mathlib#19123 ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/Alternating.lean Modified Mathlib/LinearAlgebra/Determinant.lean +/- theorem Basis.det_isEmpty Modified Mathlib/LinearAlgebra/Orientation.lean 2023-06-01 19:26:08 30940c3 feat: port Data.Json (#4538) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Lean/Json.lean 2023-06-01 19:26:06 92f5c62 chore: fix many typos (#4535) Run `codespell Mathlib` and keep some suggestions. ESTIMATED CHANGES Modified Mathlib/Analysis/SpecificLimits/Normed.lean Modified Mathlib/Data/ListM/Basic.lean Modified Mathlib/Data/Nat/PrimeNormNum.lean Modified Mathlib/Data/Num/Lemmas.lean Modified Mathlib/Deprecated/Subgroup.lean Modified Mathlib/GroupTheory/Coset.lean Modified Mathlib/GroupTheory/DoubleCoset.lean Modified Mathlib/GroupTheory/FreeProduct.lean Modified Mathlib/GroupTheory/MonoidLocalization.lean Modified Mathlib/GroupTheory/NielsenSchreier.lean Modified Mathlib/GroupTheory/Nilpotent.lean Modified Mathlib/GroupTheory/Submonoid/Operations.lean Modified Mathlib/Init/Algebra/Classes.lean Modified Mathlib/LinearAlgebra/AffineSpace/AffineSubspace.lean Modified Mathlib/LinearAlgebra/Basis.lean Modified Mathlib/LinearAlgebra/FiniteDimensional.lean Modified Mathlib/LinearAlgebra/FreeModule/Basic.lean Modified Mathlib/LinearAlgebra/Matrix/GeneralLinearGroup.lean Modified Mathlib/LinearAlgebra/Multilinear/Basic.lean Modified Mathlib/LinearAlgebra/TensorProduct/Matrix.lean Modified Mathlib/Logic/Equiv/Defs.lean Modified Mathlib/MeasureTheory/Constructions/Prod/Basic.lean Modified Mathlib/MeasureTheory/Decomposition/SignedHahn.lean Modified Mathlib/MeasureTheory/Function/Egorov.lean Modified Mathlib/MeasureTheory/Integral/Lebesgue.lean Modified Mathlib/MeasureTheory/Measure/Stieltjes.lean Modified Mathlib/MeasureTheory/PiSystem.lean Modified Mathlib/NumberTheory/LegendreSymbol/ZModChar.lean Modified Mathlib/NumberTheory/PythagoreanTriples.lean Modified Mathlib/Order/Basic.lean Modified Mathlib/Order/Filter/AtTopBot.lean Modified Mathlib/Order/Filter/Extr.lean Modified Mathlib/Order/Hom/Order.lean Modified Mathlib/Order/Interval.lean Modified Mathlib/Order/JordanHolder.lean Modified Mathlib/Order/OrderIsoNat.lean Modified Mathlib/Order/SuccPred/Basic.lean Modified Mathlib/Order/SupIndep.lean Modified Mathlib/Probability/CondCount.lean Modified Mathlib/RingTheory/Ideal/Cotangent.lean Modified Mathlib/RingTheory/IsTensorProduct.lean Modified Mathlib/RingTheory/MvPolynomial/WeightedHomogeneous.lean Modified Mathlib/RingTheory/PowerSeries/Basic.lean Modified Mathlib/RingTheory/UniqueFactorizationDomain.lean Modified Mathlib/SetTheory/Cardinal/Basic.lean Modified Mathlib/SetTheory/Lists.lean Modified Mathlib/Tactic/Abel.lean Modified Mathlib/Tactic/CategoryTheory/Coherence.lean Modified Mathlib/Tactic/CategoryTheory/Elementwise.lean Modified Mathlib/Tactic/Choose.lean Modified Mathlib/Tactic/Congr!.lean Modified Mathlib/Tactic/Eqns.lean Modified Mathlib/Tactic/FBinop.lean Modified Mathlib/Tactic/FieldSimp.lean Modified Mathlib/Tactic/GeneralizeProofs.lean Modified Mathlib/Tactic/LabelAttr.lean Modified Mathlib/Tactic/LibrarySearch.lean Modified Mathlib/Tactic/Linarith/Elimination.lean Modified Mathlib/Tactic/Linarith/Frontend.lean Modified Mathlib/Tactic/Linarith/Preprocessing.lean Modified Mathlib/Tactic/NormCast/Tactic.lean Modified Mathlib/Tactic/NormNum/Core.lean Modified Mathlib/Tactic/NormNum/Prime.lean Modified Mathlib/Tactic/Polyrith.lean Modified Mathlib/Tactic/PushNeg.lean Modified Mathlib/Tactic/Simps/Basic.lean Modified Mathlib/Tactic/ToAdditive.lean Modified Mathlib/Topology/Algebra/Module/FiniteDimension.lean Modified Mathlib/Topology/Algebra/Polynomial.lean Modified Mathlib/Topology/Algebra/UniformGroup.lean Modified Mathlib/Topology/Category/TopCat/Limits/Products.lean Modified Mathlib/Topology/Connected.lean Modified Mathlib/Topology/Constructions.lean Modified Mathlib/Topology/ContinuousFunction/Algebra.lean Modified Mathlib/Topology/ContinuousOn.lean Modified Mathlib/Topology/ExtendFrom.lean Modified Mathlib/Topology/Homotopy/Basic.lean Modified Mathlib/Topology/Homotopy/HomotopyGroup.lean Modified Mathlib/Topology/LocallyConstant/Basic.lean Modified Mathlib/Topology/MetricSpace/Antilipschitz.lean Modified Mathlib/Topology/MetricSpace/Basic.lean Modified Mathlib/Topology/MetricSpace/IsometricSMul.lean Modified Mathlib/Topology/MetricSpace/Lipschitz.lean Modified Mathlib/Topology/Sheaves/Stalks.lean Modified Mathlib/Topology/ShrinkingLemma.lean 2023-06-01 19:05:14 d4a3d04 feat: port Analysis.Calculus.MeanValue (#4249) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/Calculus/MeanValue.lean + theorem Antitone.concaveOn_univ_of_deriv + theorem AntitoneOn.concaveOn_of_deriv + theorem Convex.antitoneOn_of_deriv_nonpos + theorem Convex.eqOn_of_fderivWithin_eq + theorem Convex.exists_nhdsWithin_lipschitzOnWith_of_hasFDerivWithinAt + theorem Convex.exists_nhdsWithin_lipschitzOnWith_of_hasFDerivWithinAt_of_nnnorm_lt + theorem Convex.image_sub_le_mul_sub_of_deriv_le + theorem Convex.image_sub_lt_mul_sub_of_deriv_lt + theorem Convex.is_const_of_fderivWithin_eq_zero + theorem Convex.lipschitzOnWith_of_nnnorm_derivWithin_le + theorem Convex.lipschitzOnWith_of_nnnorm_deriv_le + theorem Convex.lipschitzOnWith_of_nnnorm_fderivWithin_le + theorem Convex.lipschitzOnWith_of_nnnorm_fderiv_le + theorem Convex.lipschitzOnWith_of_nnnorm_hasDerivWithin_le + theorem Convex.lipschitzOnWith_of_nnnorm_hasFDerivWithin_le + theorem Convex.monotoneOn_of_deriv_nonneg + theorem Convex.mul_sub_le_image_sub_of_le_deriv + theorem Convex.mul_sub_lt_image_sub_of_lt_deriv + theorem Convex.norm_image_sub_le_of_norm_derivWithin_le + theorem Convex.norm_image_sub_le_of_norm_deriv_le + theorem Convex.norm_image_sub_le_of_norm_fderivWithin_le' + theorem Convex.norm_image_sub_le_of_norm_fderivWithin_le + theorem Convex.norm_image_sub_le_of_norm_fderiv_le' + theorem Convex.norm_image_sub_le_of_norm_fderiv_le + theorem Convex.norm_image_sub_le_of_norm_hasDerivWithin_le + theorem Convex.norm_image_sub_le_of_norm_hasFDerivWithin_le' + theorem Convex.norm_image_sub_le_of_norm_hasFDerivWithin_le + theorem Convex.strictAntiOn_of_deriv_neg + theorem Convex.strictMonoOn_of_deriv_pos + theorem Monotone.convexOn_univ_of_deriv + theorem MonotoneOn.convexOn_of_deriv + theorem StrictAnti.strictConcaveOn_univ_of_deriv + theorem StrictAntiOn.strictConcaveOn_of_deriv + theorem StrictMono.strictConvexOn_univ_of_deriv + theorem StrictMonoOn.exists_deriv_lt_slope + theorem StrictMonoOn.exists_deriv_lt_slope_aux + theorem StrictMonoOn.exists_slope_lt_deriv + theorem StrictMonoOn.exists_slope_lt_deriv_aux + theorem StrictMonoOn.strictConvexOn_of_deriv + theorem antitone_of_deriv_nonpos + theorem concaveOn_of_deriv2_nonpos' + theorem concaveOn_of_deriv2_nonpos + theorem concaveOn_univ_of_deriv2_nonpos + theorem constant_of_derivWithin_zero + theorem constant_of_has_deriv_right_zero + theorem convexOn_of_deriv2_nonneg' + theorem convexOn_of_deriv2_nonneg + theorem convexOn_univ_of_deriv2_nonneg + theorem domain_mvt + theorem eq_of_derivWithin_eq + theorem eq_of_fderiv_eq + theorem eq_of_has_deriv_right_eq + theorem exists_deriv_eq_slope + theorem exists_hasDerivAt_eq_slope + theorem exists_ratio_deriv_eq_ratio_slope' + theorem exists_ratio_deriv_eq_ratio_slope + theorem exists_ratio_hasDerivAt_eq_ratio_slope' + theorem exists_ratio_hasDerivAt_eq_ratio_slope + theorem hasStrictDerivAt_of_hasDerivAt_of_continuousAt + theorem hasStrictFDerivAt_of_hasFDerivAt_of_continuousAt + theorem image_le_of_deriv_right_le_deriv_boundary + theorem image_le_of_deriv_right_lt_deriv_boundary' + theorem image_le_of_deriv_right_lt_deriv_boundary + theorem image_le_of_liminf_slope_right_le_deriv_boundary + theorem image_le_of_liminf_slope_right_lt_deriv_boundary' + theorem image_le_of_liminf_slope_right_lt_deriv_boundary + theorem image_norm_le_of_liminf_right_slope_norm_lt_deriv_boundary + theorem image_norm_le_of_norm_deriv_right_le_deriv_boundary' + theorem image_norm_le_of_norm_deriv_right_le_deriv_boundary + theorem image_norm_le_of_norm_deriv_right_lt_deriv_boundary' + theorem image_norm_le_of_norm_deriv_right_lt_deriv_boundary + theorem image_sub_le_mul_sub_of_deriv_le + theorem image_sub_lt_mul_sub_of_deriv_lt + theorem is_const_of_deriv_eq_zero + theorem is_const_of_fderiv_eq_zero + theorem lipschitzWith_of_nnnorm_deriv_le + theorem monotone_of_deriv_nonneg + theorem mul_sub_le_image_sub_of_le_deriv + theorem mul_sub_lt_image_sub_of_lt_deriv + theorem norm_image_sub_le_of_norm_deriv_le_segment' + theorem norm_image_sub_le_of_norm_deriv_le_segment + theorem norm_image_sub_le_of_norm_deriv_le_segment_01' + theorem norm_image_sub_le_of_norm_deriv_le_segment_01 + theorem norm_image_sub_le_of_norm_deriv_right_le_segment + theorem strictAnti_of_deriv_neg + theorem strictConcaveOn_of_deriv2_neg' + theorem strictConcaveOn_of_deriv2_neg + theorem strictConcaveOn_univ_of_deriv2_neg + theorem strictConvexOn_of_deriv2_pos' + theorem strictConvexOn_of_deriv2_pos + theorem strictConvexOn_univ_of_deriv2_pos + theorem strictMono_of_deriv_pos 2023-06-01 17:10:51 4be56bf feat: CategoryTheory.Sites.Coherent -- define the coherent coverage and Grothendieck topology (#4505) As a requirement, we also define the notion of "effective epi" for morphisms and families of morphisms. We also define an analogous notion for (pre)sieves, and provide some API for the relationship between these notions. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Sites/Coherent.lean + def CategoryTheory.coherentCoverage + def CategoryTheory.coherentTopology + theorem CategoryTheory.isSheaf_coherent Added Mathlib/CategoryTheory/Sites/EffectiveEpimorphic.lean + def CategoryTheory.EffectiveEpi.desc + theorem CategoryTheory.EffectiveEpi.fac + def CategoryTheory.EffectiveEpi.getStruct + theorem CategoryTheory.EffectiveEpi.uniq + def CategoryTheory.EffectiveEpiFamily.desc + theorem CategoryTheory.EffectiveEpiFamily.fac + def CategoryTheory.EffectiveEpiFamily.getStruct + theorem CategoryTheory.EffectiveEpiFamily.hom_ext + theorem CategoryTheory.EffectiveEpiFamily.uniq + structure CategoryTheory.EffectiveEpiFamilyStruct + structure CategoryTheory.EffectiveEpiStruct + def CategoryTheory.Sieve.EffectiveEpimorphic + theorem CategoryTheory.Sieve.effectiveEpimorphic_family + theorem CategoryTheory.Sieve.effectiveEpimorphic_singleton + def CategoryTheory.Sieve.generateFamily + theorem CategoryTheory.Sieve.generateFamily_eq + def CategoryTheory.Sieve.generateSingleton + theorem CategoryTheory.Sieve.generateSingleton_eq + def CategoryTheory.effectiveEpiFamilyStructOfIsColimit + def CategoryTheory.effectiveEpiStructOfIsColimit + def CategoryTheory.isColimitOfEffectiveEpiFamilyStruct + def CategoryTheory.isColimitOfEffectiveEpiStruct 2023-06-01 16:20:38 f7b4507 feat: port Analysis.Analytic.Basic (#4275) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/Analytic/Basic.lean + theorem AnalyticAt.add + theorem AnalyticAt.neg + theorem AnalyticAt.sub + def AnalyticAt + theorem AnalyticOn.add + theorem AnalyticOn.mono + theorem AnalyticOn.sub + def AnalyticOn + theorem Asymptotics.IsBigO.continuousMultilinearMap_apply_eq_zero + theorem ContinuousLinearMap.comp_analyticOn + theorem ContinuousLinearMap.comp_hasFPowerSeriesOnBall + def FormalMultilinearSeries.changeOrigin + def FormalMultilinearSeries.changeOriginIndexEquiv + def FormalMultilinearSeries.changeOriginSeries + def FormalMultilinearSeries.changeOriginSeriesTerm + theorem FormalMultilinearSeries.changeOriginSeriesTerm_apply + theorem FormalMultilinearSeries.changeOriginSeries_summable_aux₁ + theorem FormalMultilinearSeries.changeOriginSeries_summable_aux₂ + theorem FormalMultilinearSeries.changeOriginSeries_summable_aux₃ + theorem FormalMultilinearSeries.changeOrigin_eval + theorem FormalMultilinearSeries.changeOrigin_radius + theorem FormalMultilinearSeries.constFormalMultilinearSeries_radius + theorem FormalMultilinearSeries.hasFPowerSeriesOnBall_changeOrigin + theorem FormalMultilinearSeries.isLittleO_of_lt_radius + theorem FormalMultilinearSeries.isLittleO_one_of_lt_radius + theorem FormalMultilinearSeries.le_changeOriginSeries_radius + theorem FormalMultilinearSeries.le_mul_pow_of_radius_pos + theorem FormalMultilinearSeries.le_radius_of_bound + theorem FormalMultilinearSeries.le_radius_of_bound_nnreal + theorem FormalMultilinearSeries.le_radius_of_eventually_le + theorem FormalMultilinearSeries.le_radius_of_isBigO + theorem FormalMultilinearSeries.le_radius_of_summable + theorem FormalMultilinearSeries.le_radius_of_summable_nnnorm + theorem FormalMultilinearSeries.le_radius_of_summable_norm + theorem FormalMultilinearSeries.le_radius_of_tendsto + theorem FormalMultilinearSeries.lt_radius_of_isBigO + theorem FormalMultilinearSeries.min_radius_le_radius_add + theorem FormalMultilinearSeries.nnnorm_changeOriginSeriesTerm + theorem FormalMultilinearSeries.nnnorm_changeOriginSeriesTerm_apply_le + theorem FormalMultilinearSeries.nnnorm_changeOriginSeries_apply_le_tsum + theorem FormalMultilinearSeries.nnnorm_changeOriginSeries_le_tsum + theorem FormalMultilinearSeries.nnnorm_changeOrigin_le + theorem FormalMultilinearSeries.nnnorm_mul_pow_le_of_lt_radius + theorem FormalMultilinearSeries.norm_changeOriginSeriesTerm + theorem FormalMultilinearSeries.norm_le_div_pow_of_pos_of_lt_radius + theorem FormalMultilinearSeries.norm_mul_pow_le_mul_pow_of_lt_radius + theorem FormalMultilinearSeries.norm_mul_pow_le_of_lt_radius + theorem FormalMultilinearSeries.not_summable_norm_of_radius_lt_nnnorm + def FormalMultilinearSeries.partialSum + theorem FormalMultilinearSeries.partialSum_continuous + def FormalMultilinearSeries.radius + theorem FormalMultilinearSeries.radius_eq_top_iff_summable_norm + theorem FormalMultilinearSeries.radius_eq_top_of_eventually_eq_zero + theorem FormalMultilinearSeries.radius_eq_top_of_forall_image_add_eq_zero + theorem FormalMultilinearSeries.radius_eq_top_of_forall_nnreal_isBigO + theorem FormalMultilinearSeries.radius_eq_top_of_summable_norm + theorem FormalMultilinearSeries.radius_le_radius_continuousLinearMap_comp + theorem FormalMultilinearSeries.radius_neg + theorem FormalMultilinearSeries.summable_nnnorm_mul_pow + theorem FormalMultilinearSeries.summable_norm_apply + theorem FormalMultilinearSeries.summable_norm_mul_pow + theorem HasFPowerSeriesAt.add + theorem HasFPowerSeriesAt.analyticAt + theorem HasFPowerSeriesAt.apply_eq_zero + theorem HasFPowerSeriesAt.coeff_zero + theorem HasFPowerSeriesAt.congr + theorem HasFPowerSeriesAt.eq_formalMultilinearSeries + theorem HasFPowerSeriesAt.eq_formalMultilinearSeries_of_eventually + theorem HasFPowerSeriesAt.eq_zero + theorem HasFPowerSeriesAt.eq_zero_of_eventually + theorem HasFPowerSeriesAt.eventually_eq_zero + theorem HasFPowerSeriesAt.eventually_hasSum + theorem HasFPowerSeriesAt.eventually_hasSum_sub + theorem HasFPowerSeriesAt.isBigO_image_sub_norm_mul_norm_sub + theorem HasFPowerSeriesAt.isBigO_sub_partialSum_pow + theorem HasFPowerSeriesAt.neg + theorem HasFPowerSeriesAt.radius_pos + theorem HasFPowerSeriesAt.sub + def HasFPowerSeriesAt + theorem HasFPowerSeriesOnBall.add + theorem HasFPowerSeriesOnBall.analyticAt + theorem HasFPowerSeriesOnBall.analyticAt_of_mem + theorem HasFPowerSeriesOnBall.analyticOn + theorem HasFPowerSeriesOnBall.changeOrigin + theorem HasFPowerSeriesOnBall.coeff_zero + theorem HasFPowerSeriesOnBall.comp_sub + theorem HasFPowerSeriesOnBall.congr + theorem HasFPowerSeriesOnBall.eventually_eq_zero + theorem HasFPowerSeriesOnBall.eventually_hasSum + theorem HasFPowerSeriesOnBall.eventually_hasSum_sub + theorem HasFPowerSeriesOnBall.exchange_radius + theorem HasFPowerSeriesOnBall.hasFPowerSeriesAt + theorem HasFPowerSeriesOnBall.hasSum_sub + theorem HasFPowerSeriesOnBall.image_sub_sub_deriv_le + theorem HasFPowerSeriesOnBall.isBigO_image_sub_image_sub_deriv_principal + theorem HasFPowerSeriesOnBall.mono + theorem HasFPowerSeriesOnBall.neg + theorem HasFPowerSeriesOnBall.r_eq_top_of_exists + theorem HasFPowerSeriesOnBall.radius_pos + theorem HasFPowerSeriesOnBall.sub + theorem HasFPowerSeriesOnBall.sum + theorem HasFPowerSeriesOnBall.tendstoLocallyUniformlyOn' + theorem HasFPowerSeriesOnBall.tendstoLocallyUniformlyOn + theorem HasFPowerSeriesOnBall.tendstoUniformlyOn' + theorem HasFPowerSeriesOnBall.tendstoUniformlyOn + theorem HasFPowerSeriesOnBall.uniform_geometric_approx' + theorem HasFPowerSeriesOnBall.uniform_geometric_approx + structure HasFPowerSeriesOnBall + theorem analyticAt_const + theorem analyticOn_const + theorem hasFPowerSeriesAt_const + theorem hasFPowerSeriesAt_iff' + theorem hasFPowerSeriesAt_iff + theorem hasFPowerSeriesOnBall_const + theorem isOpen_analyticAt Modified Mathlib/Analysis/Calculus/FormalMultilinearSeries.lean + theorem neg_apply 2023-06-01 16:00:48 9b438da feat: port Analysis.NormedSpace.LpEquiv (#4554) This PR also renames `Analysis.NormedSpace.LpSpace` to `Analysis.NormedSpace.lpSpace` per this [Zulip poll](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/!4.234465.20.60lp.60/near/362543235) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/NormedSpace/LpEquiv.lean + def AddEquiv.lpPiLp + def Equiv.lpPiLp + theorem Memℓp.all + theorem coe_addEquiv_lpBcf + theorem coe_addEquiv_lpBcf_symm + theorem coe_addEquiv_lpPiLp + theorem coe_addEquiv_lpPiLp_symm + theorem coe_algEquiv_lpBcf + theorem coe_algEquiv_lpBcf_symm + theorem coe_equiv_lpPiLp + theorem coe_equiv_lpPiLp_symm + theorem coe_lpBcfₗᵢ + theorem coe_lpBcfₗᵢ_symm + theorem coe_lpPiLpₗᵢ + theorem coe_lpPiLpₗᵢ_symm + theorem coe_ringEquiv_lpBcf + theorem coe_ringEquiv_lpBcf_symm + theorem equiv_lpPiLp_norm Renamed Mathlib/Analysis/NormedSpace/LpSpace.lean to Mathlib/Analysis/NormedSpace/lpSpace.lean Modified Mathlib/Topology/MetricSpace/Kuratowski.lean 2023-06-01 15:15:16 b0cc020 feat: port Probability.ProbabilityMassFunction.Uniform (#4463) Please feel free to push to this branch. One proof remaining: - [x] toOuterMeasure_uniformOfFintype_apply ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Probability/ProbabilityMassFunction/Uniform.lean + theorem Pmf.mem_support_ofMultiset_iff + theorem Pmf.mem_support_uniformOfFinset_iff + theorem Pmf.mem_support_uniformOfFintype + def Pmf.ofMultiset + theorem Pmf.ofMultiset_apply + theorem Pmf.ofMultiset_apply_of_not_mem + theorem Pmf.support_ofMultiset + theorem Pmf.support_uniformOfFinset + theorem Pmf.support_uniformOfFintype + theorem Pmf.toMeasure_ofMultiset_apply + theorem Pmf.toMeasure_uniformOfFinset_apply + theorem Pmf.toMeasure_uniformOfFintype_apply + theorem Pmf.toOuterMeasure_ofMultiset_apply + theorem Pmf.toOuterMeasure_uniformOfFinset_apply + theorem Pmf.toOuterMeasure_uniformOfFintype_apply + def Pmf.uniformOfFinset + theorem Pmf.uniformOfFinset_apply + theorem Pmf.uniformOfFinset_apply_of_mem + theorem Pmf.uniformOfFinset_apply_of_not_mem + def Pmf.uniformOfFintype + theorem Pmf.uniformOfFintype_apply 2023-06-01 15:15:14 7e0afc1 feat: port Topology.Algebra.ValuedField (#3511) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Topology/Algebra/ValuedField.lean + theorem Valuation.inversion_estimate + theorem Valued.closure_coe_completion_v_lt + theorem Valued.continuous_extension + theorem Valued.continuous_valuation + theorem Valued.extension_extends + theorem Valued.valuedCompletion_apply 2023-06-01 14:53:53 c34b1e7 feat: port Analysis.InnerProductSpace.Positive (#4553) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/InnerProductSpace/Positive.lean + theorem ContinuousLinearMap.IsPositive.add + theorem ContinuousLinearMap.IsPositive.adjoint_conj + theorem ContinuousLinearMap.IsPositive.conj_adjoint + theorem ContinuousLinearMap.IsPositive.conj_orthogonalProjection + theorem ContinuousLinearMap.IsPositive.inner_nonneg_left + theorem ContinuousLinearMap.IsPositive.inner_nonneg_right + theorem ContinuousLinearMap.IsPositive.isSelfAdjoint + theorem ContinuousLinearMap.IsPositive.orthogonalProjection_comp + def ContinuousLinearMap.IsPositive + theorem ContinuousLinearMap.isPositive_iff_complex + theorem ContinuousLinearMap.isPositive_one + theorem ContinuousLinearMap.isPositive_zero 2023-06-01 14:13:54 950706e feat: port AlgebraicGeometry.StructureSheaf (#4522) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/AlgebraicGeometry/StructureSheaf.lean + def AlgebraicGeometry.PrimeSpectrum.Top + def AlgebraicGeometry.Spec.structureSheaf + theorem AlgebraicGeometry.StructureSheaf.IsFraction.eq_mk' + def AlgebraicGeometry.StructureSheaf.IsFraction + def AlgebraicGeometry.StructureSheaf.Localizations + def AlgebraicGeometry.StructureSheaf.basicOpenIso + theorem AlgebraicGeometry.StructureSheaf.coe_openToLocalization + def AlgebraicGeometry.StructureSheaf.comap + def AlgebraicGeometry.StructureSheaf.comapFun + theorem AlgebraicGeometry.StructureSheaf.comapFunIsLocallyFraction + theorem AlgebraicGeometry.StructureSheaf.comap_apply + theorem AlgebraicGeometry.StructureSheaf.comap_comp + theorem AlgebraicGeometry.StructureSheaf.comap_const + theorem AlgebraicGeometry.StructureSheaf.comap_id' + theorem AlgebraicGeometry.StructureSheaf.comap_id + theorem AlgebraicGeometry.StructureSheaf.comap_id_eq_map + def AlgebraicGeometry.StructureSheaf.const + theorem AlgebraicGeometry.StructureSheaf.const_add + theorem AlgebraicGeometry.StructureSheaf.const_apply' + theorem AlgebraicGeometry.StructureSheaf.const_apply + theorem AlgebraicGeometry.StructureSheaf.const_congr + theorem AlgebraicGeometry.StructureSheaf.const_ext + theorem AlgebraicGeometry.StructureSheaf.const_mul + theorem AlgebraicGeometry.StructureSheaf.const_mul_cancel' + theorem AlgebraicGeometry.StructureSheaf.const_mul_cancel + theorem AlgebraicGeometry.StructureSheaf.const_mul_rev + theorem AlgebraicGeometry.StructureSheaf.const_one + theorem AlgebraicGeometry.StructureSheaf.const_self + theorem AlgebraicGeometry.StructureSheaf.const_zero + theorem AlgebraicGeometry.StructureSheaf.exists_const + theorem AlgebraicGeometry.StructureSheaf.germ_comp_stalkToFiberRingHom + theorem AlgebraicGeometry.StructureSheaf.germ_toOpen + theorem AlgebraicGeometry.StructureSheaf.germ_to_top + def AlgebraicGeometry.StructureSheaf.globalSectionsIso + theorem AlgebraicGeometry.StructureSheaf.globalSectionsIso_hom + def AlgebraicGeometry.StructureSheaf.isFractionPrelocal + def AlgebraicGeometry.StructureSheaf.isLocallyFraction + theorem AlgebraicGeometry.StructureSheaf.isLocallyFraction_pred + theorem AlgebraicGeometry.StructureSheaf.isUnit_toStalk + theorem AlgebraicGeometry.StructureSheaf.isUnit_to_basicOpen_self + def AlgebraicGeometry.StructureSheaf.localizationToStalk + theorem AlgebraicGeometry.StructureSheaf.localizationToStalk_mk' + theorem AlgebraicGeometry.StructureSheaf.localizationToStalk_of + theorem AlgebraicGeometry.StructureSheaf.localizationToStalk_stalkSpecializes + theorem AlgebraicGeometry.StructureSheaf.localizationToStalk_stalkToFiberRingHom + theorem AlgebraicGeometry.StructureSheaf.localization_toBasicOpen + theorem AlgebraicGeometry.StructureSheaf.locally_const_basicOpen + theorem AlgebraicGeometry.StructureSheaf.normalize_finite_fraction_representation + theorem AlgebraicGeometry.StructureSheaf.openAlgebra_map + def AlgebraicGeometry.StructureSheaf.openToLocalization + theorem AlgebraicGeometry.StructureSheaf.openToLocalization_apply + theorem AlgebraicGeometry.StructureSheaf.res_apply + theorem AlgebraicGeometry.StructureSheaf.res_const' + theorem AlgebraicGeometry.StructureSheaf.res_const + def AlgebraicGeometry.StructureSheaf.sectionsSubring + theorem AlgebraicGeometry.StructureSheaf.stalkAlgebra_map + def AlgebraicGeometry.StructureSheaf.stalkIso + theorem AlgebraicGeometry.StructureSheaf.stalkSpecializes_stalk_to_fiber + def AlgebraicGeometry.StructureSheaf.stalkToFiberRingHom + theorem AlgebraicGeometry.StructureSheaf.stalkToFiberRingHom_germ' + theorem AlgebraicGeometry.StructureSheaf.stalkToFiberRingHom_germ + theorem AlgebraicGeometry.StructureSheaf.stalkToFiberRingHom_localizationToStalk + theorem AlgebraicGeometry.StructureSheaf.stalkToFiberRingHom_toStalk + def AlgebraicGeometry.StructureSheaf.toBasicOpen + theorem AlgebraicGeometry.StructureSheaf.toBasicOpen_injective + theorem AlgebraicGeometry.StructureSheaf.toBasicOpen_mk' + theorem AlgebraicGeometry.StructureSheaf.toBasicOpen_surjective + theorem AlgebraicGeometry.StructureSheaf.toBasicOpen_to_map + def AlgebraicGeometry.StructureSheaf.toOpen + theorem AlgebraicGeometry.StructureSheaf.toOpen_apply + theorem AlgebraicGeometry.StructureSheaf.toOpen_comp_comap + theorem AlgebraicGeometry.StructureSheaf.toOpen_eq_const + theorem AlgebraicGeometry.StructureSheaf.toOpen_germ + theorem AlgebraicGeometry.StructureSheaf.toOpen_res + def AlgebraicGeometry.StructureSheaf.toStalk + theorem AlgebraicGeometry.StructureSheaf.toStalk_comp_stalkToFiberRingHom + theorem AlgebraicGeometry.StructureSheaf.toStalk_stalkSpecializes + theorem AlgebraicGeometry.StructureSheaf.to_global_factors + def AlgebraicGeometry.structurePresheafCompForget + def AlgebraicGeometry.structurePresheafInCommRing + def AlgebraicGeometry.structureSheafInType 2023-06-01 13:37:41 01da6a3 chore: bump to nightly-2023-05-31 (#4530) ESTIMATED CHANGES Modified Mathlib/Algebra/EuclideanDomain/Defs.lean Modified Mathlib/Algebra/Homology/Single.lean Modified Mathlib/Analysis/Normed/Group/Pointwise.lean Modified Mathlib/Analysis/NormedSpace/LpSpace.lean Modified Mathlib/Analysis/NormedSpace/Star/Multiplier.lean Modified Mathlib/CategoryTheory/Abelian/InjectiveResolution.lean Modified Mathlib/CategoryTheory/Category/Basic.lean Modified Mathlib/CategoryTheory/IsConnected.lean Modified Mathlib/CategoryTheory/Preadditive/HomOrthogonal.lean Modified Mathlib/CategoryTheory/Preadditive/ProjectiveResolution.lean Modified Mathlib/CategoryTheory/Sites/InducedTopology.lean Modified Mathlib/Control/LawfulFix.lean Modified Mathlib/Data/Dfinsupp/Basic.lean Modified Mathlib/Data/Fin/VecNotation.lean Modified Mathlib/Data/List/Basic.lean - def List.attach - def List.pmap Modified Mathlib/Data/List/Chain.lean - theorem List.Chain.imp' - theorem List.Chain.imp - theorem List.chain_of_chain_cons - theorem List.rel_of_chain_cons Modified Mathlib/Data/List/Defs.lean - theorem List.chain_cons Modified Mathlib/Data/List/Intervals.lean Modified Mathlib/Data/List/Range.lean - theorem List.chain_lt_range' - theorem List.chain_succ_range' + theorem List.enumFrom_eq_zip_range' - theorem List.enum_from_eq_zip_range' - theorem List.enum_from_map_fst - theorem List.enum_map_fst - theorem List.get?_range' - theorem List.get?_range - theorem List.get_range' - theorem List.get_range - theorem List.iota_eq_reverse_range' - theorem List.length_iota - theorem List.length_range' - theorem List.length_range - theorem List.map_add_range' - theorem List.map_sub_range' - theorem List.mem_iota - theorem List.mem_range' - theorem List.mem_range +/- theorem List.nodup_range' - theorem List.not_mem_range_self +/- theorem List.nthLe_range' + theorem List.nthLe_range'_1 +/- theorem List.pairwise_lt_range' - theorem List.range'_append - theorem List.range'_concat - theorem List.range'_eq_map_range - theorem List.range'_eq_nil + theorem List.range'_one - theorem List.range'_sublist_right - theorem List.range'_subset_right - theorem List.range_add - theorem List.range_eq_nil - theorem List.range_eq_range' - theorem List.range_loop_range' - theorem List.range_sublist - theorem List.range_subset - theorem List.range_succ - theorem List.range_succ_eq_map - theorem List.range_zero - theorem List.reverse_range' - theorem List.self_mem_range_succ + theorem List.unzip_enumFrom_eq_prod - theorem List.unzip_enum_from_eq_prod Modified Mathlib/Data/Nat/Interval.lean Modified Mathlib/Data/Nat/Totient.lean Modified Mathlib/Data/Polynomial/AlgebraMap.lean Modified Mathlib/Data/Polynomial/Identities.lean Modified Mathlib/Data/Rel.lean Modified Mathlib/GroupTheory/Submonoid/Pointwise.lean Modified Mathlib/LinearAlgebra/BilinearForm.lean Modified Mathlib/LinearAlgebra/FiniteDimensional.lean Modified Mathlib/LinearAlgebra/Finsupp.lean Modified Mathlib/LinearAlgebra/Matrix/ToLin.lean Modified Mathlib/LinearAlgebra/Projection.lean Modified Mathlib/Logic/Basic.lean - theorem exists_comm Modified Mathlib/Logic/Equiv/List.lean Modified Mathlib/ModelTheory/LanguageMap.lean Modified Mathlib/Order/LocallyFinite.lean Modified Mathlib/Probability/ProbabilityMassFunction/Monad.lean Modified Mathlib/RingTheory/IntegralClosure.lean Modified Mathlib/RingTheory/PolynomialAlgebra.lean Modified Mathlib/Topology/Sheaves/LocalPredicate.lean Modified Mathlib/Topology/Sheaves/PresheafOfFunctions.lean Modified lake-manifest.json Modified lean-toolchain 2023-06-01 13:13:05 859c9ce feat: lemmas about derivatives of affine maps (#4508) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Analysis/Calculus/Deriv/Add.lean + theorem HasStrictDerivAt.add_const + theorem HasStrictDerivAt.const_add Added Mathlib/Analysis/Calculus/Deriv/AffineMap.lean + theorem AffineMap.hasDerivAt + theorem AffineMap.hasDerivAtFilter + theorem AffineMap.hasDerivAt_lineMap + theorem AffineMap.hasDerivWithinAt + theorem AffineMap.hasDerivWithinAt_lineMap + theorem AffineMap.hasStrictDerivAt + theorem AffineMap.hasStrictDerivAt_lineMap 2023-06-01 13:13:04 34e8b42 feat: port Analysis.InnerProductSpace.Adjoint (#4476) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/InnerProductSpace/Adjoint.lean + def ContinuousLinearMap.adjoint + def ContinuousLinearMap.adjointAux + theorem ContinuousLinearMap.adjointAux_adjointAux + theorem ContinuousLinearMap.adjointAux_apply + theorem ContinuousLinearMap.adjointAux_inner_left + theorem ContinuousLinearMap.adjointAux_inner_right + theorem ContinuousLinearMap.adjointAux_norm + theorem ContinuousLinearMap.adjoint_adjoint + theorem ContinuousLinearMap.adjoint_comp + theorem ContinuousLinearMap.adjoint_id + theorem ContinuousLinearMap.adjoint_inner_left + theorem ContinuousLinearMap.adjoint_inner_right + theorem ContinuousLinearMap.apply_norm_eq_sqrt_inner_adjoint_left + theorem ContinuousLinearMap.apply_norm_eq_sqrt_inner_adjoint_right + theorem ContinuousLinearMap.apply_norm_sq_eq_inner_adjoint_left + theorem ContinuousLinearMap.apply_norm_sq_eq_inner_adjoint_right + theorem ContinuousLinearMap.eq_adjoint_iff + theorem ContinuousLinearMap.isAdjointPair_inner + theorem ContinuousLinearMap.isSelfAdjoint_iff' + theorem ContinuousLinearMap.isSelfAdjoint_iff_isSymmetric + theorem ContinuousLinearMap.star_eq_adjoint + theorem IsSelfAdjoint.adjoint_conj + theorem IsSelfAdjoint.adjoint_eq + theorem IsSelfAdjoint.conj_adjoint + theorem IsSelfAdjoint.conj_orthogonalProjection + theorem IsSelfAdjoint.isSymmetric + theorem LinearMap.IsSymmetric.coe_toSelfAdjoint + theorem LinearMap.IsSymmetric.isSelfAdjoint + def LinearMap.IsSymmetric.toSelfAdjoint + theorem LinearMap.IsSymmetric.toSelfAdjoint_apply + def LinearMap.adjoint + theorem LinearMap.adjoint_adjoint + theorem LinearMap.adjoint_comp + theorem LinearMap.adjoint_eq_toClm_adjoint + theorem LinearMap.adjoint_inner_left + theorem LinearMap.adjoint_inner_right + theorem LinearMap.adjoint_toContinuousLinearMap + theorem LinearMap.eq_adjoint_iff + theorem LinearMap.eq_adjoint_iff_basis + theorem LinearMap.eq_adjoint_iff_basis_left + theorem LinearMap.eq_adjoint_iff_basis_right + theorem LinearMap.im_inner_adjoint_mul_self_eq_zero + theorem LinearMap.isAdjointPair_inner + theorem LinearMap.isSelfAdjoint_iff' + theorem LinearMap.isSymmetric_adjoint_mul_self + theorem LinearMap.isSymmetric_iff_isSelfAdjoint + theorem LinearMap.re_inner_adjoint_mul_self_nonneg + theorem LinearMap.star_eq_adjoint + theorem Matrix.toEuclideanLin_conjTranspose_eq_adjoint + theorem Submodule.adjoint_orthogonalProjection + theorem Submodule.adjoint_subtypeL + theorem orthogonalProjection_isSelfAdjoint 2023-06-01 12:52:01 c639b48 feat: port RingTheory.Filtration (#4488) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/RingTheory/Filtration.lean + theorem Ideal.Filtration.Stable.bounded_difference + theorem Ideal.Filtration.Stable.exists_forall_le + theorem Ideal.Filtration.Stable.exists_pow_smul_eq + theorem Ideal.Filtration.Stable.exists_pow_smul_eq_of_ge + theorem Ideal.Filtration.Stable.inter_left + theorem Ideal.Filtration.Stable.inter_right + theorem Ideal.Filtration.Stable.of_le + def Ideal.Filtration.Stable + theorem Ideal.Filtration.bot_N + theorem Ideal.Filtration.iInf_N + theorem Ideal.Filtration.iSup_N + theorem Ideal.Filtration.inf_N + theorem Ideal.Filtration.inf_submodule + theorem Ideal.Filtration.mem_submodule + theorem Ideal.Filtration.pow_smul_le + theorem Ideal.Filtration.pow_smul_le_pow_smul + theorem Ideal.Filtration.sInf_N + theorem Ideal.Filtration.sSup_N + theorem Ideal.Filtration.stable_iff_exists_pow_smul_eq_of_ge + def Ideal.Filtration.submoduleInfHom + theorem Ideal.Filtration.submodule_closure_single + theorem Ideal.Filtration.submodule_eq_span_le_iff_stable_ge + theorem Ideal.Filtration.submodule_fg_iff_stable + theorem Ideal.Filtration.submodule_span_single + theorem Ideal.Filtration.sup_N + theorem Ideal.Filtration.top_N + structure Ideal.Filtration + theorem Ideal.exists_pow_inf_eq_pow_smul + theorem Ideal.iInf_pow_eq_bot_of_isDomain + theorem Ideal.iInf_pow_eq_bot_of_localRing + theorem Ideal.iInf_pow_smul_eq_bot_of_localRing + theorem Ideal.mem_iInf_smul_pow_eq_bot_iff + def Ideal.stableFiltration + theorem Ideal.stableFiltration_stable + def Ideal.trivialFiltration 2023-06-01 12:52:00 dc28581 feat: port MeasureTheory.Function.ConvergenceInMeasure (#4484) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/MeasureTheory/Function/ConvergenceInMeasure.lean + theorem MeasureTheory.ExistsSeqTendstoAe.exists_nat_measure_lt_two_inv + theorem MeasureTheory.ExistsSeqTendstoAe.seqTendstoAeSeq_spec + theorem MeasureTheory.ExistsSeqTendstoAe.seqTendstoAeSeq_strictMono + theorem MeasureTheory.ExistsSeqTendstoAe.seqTendstoAeSeq_succ + theorem MeasureTheory.TendstoInMeasure.aeMeasurable + theorem MeasureTheory.TendstoInMeasure.congr_left + theorem MeasureTheory.TendstoInMeasure.congr_right + theorem MeasureTheory.TendstoInMeasure.exists_seq_tendstoInMeasure_atTop + theorem MeasureTheory.TendstoInMeasure.exists_seq_tendsto_ae' + theorem MeasureTheory.TendstoInMeasure.exists_seq_tendsto_ae + def MeasureTheory.TendstoInMeasure + theorem MeasureTheory.tendstoInMeasure_iff_norm + theorem MeasureTheory.tendstoInMeasure_of_tendsto_Lp + theorem MeasureTheory.tendstoInMeasure_of_tendsto_ae + theorem MeasureTheory.tendstoInMeasure_of_tendsto_ae_of_stronglyMeasurable + theorem MeasureTheory.tendstoInMeasure_of_tendsto_snorm + theorem MeasureTheory.tendstoInMeasure_of_tendsto_snorm_of_ne_top + theorem MeasureTheory.tendstoInMeasure_of_tendsto_snorm_of_stronglyMeasurable + theorem MeasureTheory.tendstoInMeasure_of_tendsto_snorm_top 2023-06-01 12:32:52 0165a5b feat: port AlgebraicGeometry.Stalks (#4498) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/AlgebraicGeometry/PresheafedSpace.lean Added Mathlib/AlgebraicGeometry/Stalks.lean + def AlgebraicGeometry.PresheafedSpace.restrictStalkIso + theorem AlgebraicGeometry.PresheafedSpace.restrictStalkIso_hom_eq_germ + theorem AlgebraicGeometry.PresheafedSpace.restrictStalkIso_inv_eq_germ + theorem AlgebraicGeometry.PresheafedSpace.restrictStalkIso_inv_eq_ofRestrict + theorem AlgebraicGeometry.PresheafedSpace.stalkMap.comp + theorem AlgebraicGeometry.PresheafedSpace.stalkMap.congr + theorem AlgebraicGeometry.PresheafedSpace.stalkMap.congr_hom + theorem AlgebraicGeometry.PresheafedSpace.stalkMap.congr_point + theorem AlgebraicGeometry.PresheafedSpace.stalkMap.id + def AlgebraicGeometry.PresheafedSpace.stalkMap.stalkIso + theorem AlgebraicGeometry.PresheafedSpace.stalkMap.stalkSpecializes_stalkMap + def AlgebraicGeometry.PresheafedSpace.stalkMap + theorem AlgebraicGeometry.PresheafedSpace.stalkMap_germ 2023-06-01 10:18:43 eaa69ef feat: port Analysis.Calculus.IteratedDeriv (#4545) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/Calculus/IteratedDeriv.lean + theorem ContDiff.continuous_iteratedDeriv + theorem ContDiff.differentiable_iteratedDeriv + theorem ContDiffOn.continuousOn_iteratedDerivWithin + theorem ContDiffOn.differentiableOn_iteratedDerivWithin + theorem ContDiffWithinAt.differentiableWithinAt_iteratedDerivWithin + theorem contDiffOn_iff_continuousOn_differentiableOn_deriv + theorem contDiffOn_of_continuousOn_differentiableOn_deriv + theorem contDiffOn_of_differentiableOn_deriv + theorem contDiff_iff_iteratedDeriv + theorem contDiff_of_differentiable_iteratedDeriv + def iteratedDeriv + def iteratedDerivWithin + theorem iteratedDerivWithin_eq_equiv_comp + theorem iteratedDerivWithin_eq_iterate + theorem iteratedDerivWithin_eq_iteratedFDerivWithin + theorem iteratedDerivWithin_one + theorem iteratedDerivWithin_succ' + theorem iteratedDerivWithin_succ + theorem iteratedDerivWithin_univ + theorem iteratedDerivWithin_zero + theorem iteratedDeriv_eq_equiv_comp + theorem iteratedDeriv_eq_iterate + theorem iteratedDeriv_eq_iteratedFDeriv + theorem iteratedDeriv_one + theorem iteratedDeriv_succ' + theorem iteratedDeriv_succ + theorem iteratedDeriv_zero + theorem iteratedFDerivWithin_apply_eq_iteratedDerivWithin_mul_prod + theorem iteratedFDerivWithin_eq_equiv_comp + theorem iteratedFDeriv_apply_eq_iteratedDeriv_mul_prod + theorem iteratedFDeriv_eq_equiv_comp + theorem norm_iteratedFDerivWithin_eq_norm_iteratedDerivWithin + theorem norm_iteratedFDeriv_eq_norm_iteratedDeriv 2023-06-01 10:18:42 a8e8789 feat: port Topology.MetricSpace.Kuratowski (#4544) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Topology/MetricSpace/Kuratowski.lean + def KuratowskiEmbedding.embeddingOfSubset + theorem KuratowskiEmbedding.embeddingOfSubset_coe + theorem KuratowskiEmbedding.embeddingOfSubset_dist_le + theorem KuratowskiEmbedding.embeddingOfSubset_isometry + theorem KuratowskiEmbedding.exists_isometric_embedding + def kuratowskiEmbedding 2023-06-01 10:18:41 906ce08 feat: port MeasureTheory.Measure.Haar.OfBasis (#4523) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/MeasureTheory/Measure/Haar/OfBasis.lean + theorem Basis.addHaar_self + def Basis.parallelepiped + theorem Basis.parallelepiped_map + theorem Basis.parallelepiped_reindex + theorem EuclideanSpace.coe_measurableEquiv + theorem convex_parallelepiped + theorem image_parallelepiped + theorem mem_parallelepiped_iff + def parallelepiped + theorem parallelepiped_comp_equiv + theorem parallelepiped_eq_convexHull + theorem parallelepiped_eq_sum_segment + theorem parallelepiped_orthonormalBasis_one_dim + theorem parallelepiped_single 2023-06-01 05:57:38 77ba888 feat: port MeasureTheory.Function.LocallyIntegrable (#4524) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/MeasureTheory/Function/LocallyIntegrable.lean + theorem AntioneOn.integrableOn_isCompact + theorem Antitone.locallyIntegrable + theorem AntitoneOn.integrableOn_of_measure_ne_top + theorem Continuous.integrableOn_Icc + theorem Continuous.integrableOn_Ioc + theorem Continuous.integrableOn_uIcc + theorem Continuous.integrableOn_uIoc + theorem Continuous.integrable_of_hasCompactSupport + theorem Continuous.locallyIntegrable + theorem ContinuousOn.integrableOn_Icc + theorem ContinuousOn.integrableOn_compact + theorem ContinuousOn.integrableOn_uIcc + theorem ContinuousOn.locallyIntegrableOn + theorem MeasureTheory.Integrable.locallyIntegrable + theorem MeasureTheory.IntegrableOn.continuousOn_mul + theorem MeasureTheory.IntegrableOn.continuousOn_mul_of_subset + theorem MeasureTheory.IntegrableOn.continuousOn_smul + theorem MeasureTheory.IntegrableOn.locallyIntegrableOn + theorem MeasureTheory.IntegrableOn.mul_continuousOn + theorem MeasureTheory.IntegrableOn.mul_continuousOn_of_subset + theorem MeasureTheory.IntegrableOn.smul_continuousOn + theorem MeasureTheory.LocallyIntegrable.aestronglyMeasurable + theorem MeasureTheory.LocallyIntegrable.indicator + theorem MeasureTheory.LocallyIntegrable.integrableOn_isCompact + theorem MeasureTheory.LocallyIntegrable.integrableOn_nhds_isCompact + theorem MeasureTheory.LocallyIntegrable.locallyIntegrableOn + def MeasureTheory.LocallyIntegrable + theorem MeasureTheory.LocallyIntegrableOn.aestronglyMeasurable + theorem MeasureTheory.LocallyIntegrableOn.continuousOn_mul + theorem MeasureTheory.LocallyIntegrableOn.continuousOn_smul + theorem MeasureTheory.LocallyIntegrableOn.integrableOn_compact_subset + theorem MeasureTheory.LocallyIntegrableOn.integrableOn_isCompact + theorem MeasureTheory.LocallyIntegrableOn.mono + theorem MeasureTheory.LocallyIntegrableOn.mul_continuousOn + theorem MeasureTheory.LocallyIntegrableOn.norm + theorem MeasureTheory.LocallyIntegrableOn.smul_continuousOn + def MeasureTheory.LocallyIntegrableOn + theorem MeasureTheory.locallyIntegrableOn_const + theorem MeasureTheory.locallyIntegrableOn_iff + theorem MeasureTheory.locallyIntegrableOn_iff_locallyIntegrable_restrict + theorem MeasureTheory.locallyIntegrableOn_of_locallyIntegrable_restrict + theorem MeasureTheory.locallyIntegrableOn_univ + theorem MeasureTheory.locallyIntegrable_const + theorem MeasureTheory.locallyIntegrable_iff + theorem MeasureTheory.locallyIntegrable_map_homeomorph + theorem Monotone.locallyIntegrable + theorem MonotoneOn.integrableOn_isCompact + theorem MonotoneOn.integrableOn_of_measure_ne_top 2023-06-01 05:37:25 54965d9 chore: Remove commutativity assumption in ModuleCat.Images (#4543) Change [CommRing R] to [Ring R] at the top of the file Mathlib.Algebra.Category.ModuleCat.Images. ESTIMATED CHANGES Modified Mathlib/Algebra/Category/ModuleCat/Images.lean 2023-06-01 05:37:24 622fd5f feat: port Analysis.Calculus.ContDiffDef (#4256) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/Calculus/ContDiffDef.lean + theorem ContDiff.contDiffAt + theorem ContDiff.contDiffOn + theorem ContDiff.contDiffWithinAt + theorem ContDiff.continuous + theorem ContDiff.continuous_fderiv + theorem ContDiff.continuous_fderiv_apply + theorem ContDiff.continuous_iteratedFDeriv + theorem ContDiff.differentiable + theorem ContDiff.differentiable_iteratedFDeriv + theorem ContDiff.of_le + theorem ContDiff.of_succ + theorem ContDiff.one_of_succ + def ContDiff + theorem ContDiffAt.congr_of_eventuallyEq + theorem ContDiffAt.contDiffWithinAt + theorem ContDiffAt.continuousAt + theorem ContDiffAt.differentiableAt + theorem ContDiffAt.of_le + def ContDiffAt + theorem ContDiffOn.congr + theorem ContDiffOn.congr_mono + theorem ContDiffOn.contDiffWithinAt + theorem ContDiffOn.continuousOn + theorem ContDiffOn.continuousOn_fderivWithin + theorem ContDiffOn.continuousOn_fderiv_of_open + theorem ContDiffOn.continuousOn_iteratedFDerivWithin + theorem ContDiffOn.differentiableOn + theorem ContDiffOn.differentiableOn_iteratedFDerivWithin + theorem ContDiffOn.fderiv_of_open + theorem ContDiffOn.mono + theorem ContDiffOn.of_le + theorem ContDiffOn.of_succ + theorem ContDiffOn.one_of_succ + def ContDiffOn + theorem ContDiffWithinAt.congr' + theorem ContDiffWithinAt.congr + theorem ContDiffWithinAt.congr_nhds + theorem ContDiffWithinAt.congr_of_eventuallyEq + theorem ContDiffWithinAt.congr_of_eventuallyEq_insert + theorem ContDiffWithinAt.congr_of_eventually_eq' + theorem ContDiffWithinAt.contDiffAt + theorem ContDiffWithinAt.contDiffOn' + theorem ContDiffWithinAt.contDiffOn + theorem ContDiffWithinAt.continuousWithinAt + theorem ContDiffWithinAt.differentiableWithinAt + theorem ContDiffWithinAt.differentiableWithinAt_iteratedFDerivWithin + theorem ContDiffWithinAt.differentiable_within_at' + theorem ContDiffWithinAt.mono + theorem ContDiffWithinAt.mono_of_mem + theorem ContDiffWithinAt.of_le + def ContDiffWithinAt + theorem Filter.EventuallyEq.contDiffWithinAt_iff + theorem Filter.EventuallyEq.iteratedFDerivWithin_eq + theorem Filter.EventuallyEq.iterated_fderiv_within' + theorem HasCompactSupport.iteratedFDeriv + theorem HasFTaylorSeriesUpTo.contDiff + theorem HasFTaylorSeriesUpTo.continuous + theorem HasFTaylorSeriesUpTo.differentiable + theorem HasFTaylorSeriesUpTo.hasFDerivAt + theorem HasFTaylorSeriesUpTo.hasFTaylorSeriesUpToOn + theorem HasFTaylorSeriesUpTo.ofLe + theorem HasFTaylorSeriesUpTo.zero_eq' + structure HasFTaylorSeriesUpTo + theorem HasFTaylorSeriesUpToOn.congr + theorem HasFTaylorSeriesUpToOn.contDiffOn + theorem HasFTaylorSeriesUpToOn.continuousOn + theorem HasFTaylorSeriesUpToOn.differentiableAt + theorem HasFTaylorSeriesUpToOn.differentiableOn + theorem HasFTaylorSeriesUpToOn.eq_ftaylor_series_of_uniqueDiffOn + theorem HasFTaylorSeriesUpToOn.eventually_hasFDerivAt + theorem HasFTaylorSeriesUpToOn.hasFDerivAt + theorem HasFTaylorSeriesUpToOn.hasFDerivWithinAt + theorem HasFTaylorSeriesUpToOn.mono + theorem HasFTaylorSeriesUpToOn.of_le + theorem HasFTaylorSeriesUpToOn.shift_of_succ + theorem HasFTaylorSeriesUpToOn.zero_eq' + structure HasFTaylorSeriesUpToOn + theorem contDiffAt_one_iff + theorem contDiffAt_succ_iff_hasFDerivAt + theorem contDiffAt_top + theorem contDiffAt_zero + theorem contDiffOn_all_iff_nat + theorem contDiffOn_congr + theorem contDiffOn_iff_continuousOn_differentiableOn + theorem contDiffOn_iff_forall_nat_le + theorem contDiffOn_of_continuousOn_differentiableOn + theorem contDiffOn_of_differentiableOn + theorem contDiffOn_of_locally_contDiffOn + theorem contDiffOn_succ_iff_fderivWithin + theorem contDiffOn_succ_iff_fderiv_of_open + theorem contDiffOn_succ_iff_hasFDerivWithinAt + theorem contDiffOn_succ_iff_has_fderiv_within + theorem contDiffOn_succ_of_fderivWithin + theorem contDiffOn_top + theorem contDiffOn_top_iff_fderivWithin + theorem contDiffOn_top_iff_fderiv_of_open + theorem contDiffOn_univ + theorem contDiffOn_zero + theorem contDiffWithinAt_congr_nhds + theorem contDiffWithinAt_iff_forall_nat_le + theorem contDiffWithinAt_insert + theorem contDiffWithinAt_inter' + theorem contDiffWithinAt_inter + theorem contDiffWithinAt_nat + theorem contDiffWithinAt_succ_iff_hasFDerivWithinAt' + theorem contDiffWithinAt_succ_iff_hasFDerivWithinAt + theorem contDiffWithinAt_top + theorem contDiffWithinAt_univ + theorem contDiffWithinAt_zero + theorem contDiff_all_iff_nat + theorem contDiff_iff_contDiffAt + theorem contDiff_iff_continuous_differentiable + theorem contDiff_iff_forall_nat_le + theorem contDiff_iff_ftaylorSeries + theorem contDiff_of_differentiable_iteratedFDeriv + theorem contDiff_one_iff_fderiv + theorem contDiff_succ_iff_fderiv + theorem contDiff_succ_iff_has_fderiv + theorem contDiff_top + theorem contDiff_top_iff_fderiv + theorem contDiff_zero + theorem fderiv_iteratedFDeriv + def ftaylorSeries + def ftaylorSeriesWithin + theorem ftaylorSeriesWithin_univ + theorem hasFTaylorSeriesUpToOn_succ_iff_left + theorem hasFTaylorSeriesUpToOn_succ_iff_right + theorem hasFTaylorSeriesUpToOn_top_iff' + theorem hasFTaylorSeriesUpToOn_top_iff + theorem hasFTaylorSeriesUpToOn_univ_iff + theorem hasFTaylorSeriesUpToOn_zero_iff + theorem hasFTaylorSeriesUpTo_succ_iff_right + theorem hasFTaylorSeriesUpTo_top_iff' + theorem hasFTaylorSeriesUpTo_top_iff + theorem hasFTaylorSeriesUpTo_zero_iff + theorem iteratedFDerivWithin_congr + theorem iteratedFDerivWithin_congr_set + theorem iteratedFDerivWithin_eventually_congr_set' + theorem iteratedFDerivWithin_eventually_congr_set + theorem iteratedFDerivWithin_inter' + theorem iteratedFDerivWithin_inter + theorem iteratedFDerivWithin_inter_open + theorem iteratedFDerivWithin_of_isOpen + theorem iteratedFDerivWithin_one_apply + theorem iteratedFDerivWithin_succ_apply_left + theorem iteratedFDerivWithin_succ_apply_right + theorem iteratedFDerivWithin_succ_eq_comp_left + theorem iteratedFDerivWithin_succ_eq_comp_right + theorem iteratedFDerivWithin_univ + theorem iteratedFDerivWithin_zero_apply + theorem iteratedFDerivWithin_zero_eq_comp + theorem iteratedFDeriv_one_apply + theorem iteratedFDeriv_succ_apply_left + theorem iteratedFDeriv_succ_apply_right + theorem iteratedFDeriv_succ_eq_comp_left + theorem iteratedFDeriv_succ_eq_comp_right + theorem iteratedFDeriv_with_zero_eq + theorem iteratedFDeriv_zero_apply + theorem iteratedFDeriv_zero_eq_comp + theorem norm_fderivWithin_iteratedFDerivWithin + theorem norm_fderiv_iteratedFDeriv + theorem norm_iteratedFDerivWithin_fderivWithin + theorem norm_iteratedFDerivWithin_zero + theorem norm_iteratedFDeriv_fderiv + theorem norm_iteratedFDeriv_zero Modified Mathlib/Analysis/Calculus/FormalMultilinearSeries.lean Modified Mathlib/Analysis/NormedSpace/LinearIsometry.lean 2023-06-01 05:16:37 bc20bc9 feat: port Analysis.NormedSpace.LpSpace (#4465) Notes [Zulip thread](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/!4.234465.20.60lp.60) : 1. There are both `CoeOut` and `CoeFun` instances for `lp E p`. This is consistent with mathlib3, but it seems strange and I would expect it to cause problems. 2. It seems there is some defeq abuse (identifiying `PreLp E` with `∀ i, E i` in the aforementioned `CoeOut` instance, for example) happening here which is rather convenient, but it's possible it may cause problems. (this abuse was also present in mathlib3) 3. What should the name of this file be? `LpSpace` seems wrong semantically, but `lpSpace` doesn't seem allowable by our file name conventions. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/NormedSpace/LpSpace.lean + theorem Memℓp.add + theorem Memℓp.bddAbove + theorem Memℓp.const_mul + theorem Memℓp.const_smul + theorem Memℓp.finite_dsupport + theorem Memℓp.finset_sum + theorem Memℓp.infty_mul + theorem Memℓp.infty_pow + theorem Memℓp.neg + theorem Memℓp.neg_iff + theorem Memℓp.of_exponent_ge + theorem Memℓp.star_iff + theorem Memℓp.star_mem + theorem Memℓp.sub + theorem Memℓp.summable + def Memℓp + def PreLp + theorem algebraMap_memℓp_infty + theorem int_cast_memℓp_infty + theorem lp.coeFn_add + theorem lp.coeFn_neg + theorem lp.coeFn_smul + theorem lp.coeFn_star + theorem lp.coeFn_sub + theorem lp.coeFn_sum + theorem lp.coeFn_zero + theorem lp.coe_lpSubmodule + theorem lp.eq_zero' + theorem lp.eq_zero_iff_coeFn_eq_zero + theorem lp.ext + theorem lp.hasSum_norm + theorem lp.infty_coeFn_int_cast + theorem lp.infty_coeFn_mul + theorem lp.infty_coeFn_nat_cast + theorem lp.infty_coeFn_one + theorem lp.infty_coeFn_pow + theorem lp.isLUB_norm + theorem lp.mem_lp_const_smul + theorem lp.memℓp_of_tendsto + theorem lp.norm_apply_le_norm + theorem lp.norm_apply_le_of_tendsto + theorem lp.norm_const_smul + theorem lp.norm_const_smul_le + theorem lp.norm_eq_card_dsupport + theorem lp.norm_eq_ciSup + theorem lp.norm_eq_tsum_rpow + theorem lp.norm_eq_zero_iff + theorem lp.norm_le_of_forall_le' + theorem lp.norm_le_of_forall_le + theorem lp.norm_le_of_forall_sum_le + theorem lp.norm_le_of_tendsto + theorem lp.norm_le_of_tsum_le + theorem lp.norm_neg + theorem lp.norm_nonneg' + theorem lp.norm_rpow_eq_tsum + theorem lp.norm_zero + theorem lp.sum_rpow_le_norm_rpow + theorem lp.sum_rpow_le_of_tendsto + theorem lp.tendsto_lp_of_tendsto_pi + theorem lp.uniformContinuous_coe + def lp + def lpInftySubalgebra + def lpInftySubring + def lpSubmodule + theorem memℓp_gen' + theorem memℓp_gen + theorem memℓp_gen_iff + theorem memℓp_infty + theorem memℓp_infty_iff + theorem memℓp_zero + theorem memℓp_zero_iff + theorem nat_cast_memℓp_infty + theorem one_memℓp_infty + theorem zero_mem_ℓp' + theorem zero_memℓp 2023-06-01 03:52:51 785b825 feat: port MeasureTheory.Constructions.Pi (#4501) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/MeasureTheory/Constructions/Pi.lean + theorem IsCountablySpanning.pi + theorem IsPiSystem.pi + def MeasureTheory.Measure.FiniteSpanningSetsIn.pi + theorem MeasureTheory.Measure.ae_eq_pi + theorem MeasureTheory.Measure.ae_eq_set_pi + theorem MeasureTheory.Measure.ae_eval_ne + theorem MeasureTheory.Measure.ae_le_pi + theorem MeasureTheory.Measure.ae_le_set_pi + theorem MeasureTheory.Measure.ae_pi_le_pi + def MeasureTheory.Measure.pi' + theorem MeasureTheory.Measure.pi'_eq_pi + theorem MeasureTheory.Measure.pi'_pi + theorem MeasureTheory.Measure.pi_Ico_ae_eq_pi_Icc + theorem MeasureTheory.Measure.pi_Iio_ae_eq_pi_Iic + theorem MeasureTheory.Measure.pi_Ioc_ae_eq_pi_Icc + theorem MeasureTheory.Measure.pi_Ioi_ae_eq_pi_Ici + theorem MeasureTheory.Measure.pi_Ioo_ae_eq_pi_Icc + theorem MeasureTheory.Measure.pi_Ioo_ae_eq_pi_Ioc + theorem MeasureTheory.Measure.pi_ball + theorem MeasureTheory.Measure.pi_caratheodory + theorem MeasureTheory.Measure.pi_closedBall + theorem MeasureTheory.Measure.pi_eq + theorem MeasureTheory.Measure.pi_eq_generateFrom + theorem MeasureTheory.Measure.pi_eval_preimage_null + theorem MeasureTheory.Measure.pi_hyperplane + theorem MeasureTheory.Measure.pi_noAtoms + theorem MeasureTheory.Measure.pi_of_empty + theorem MeasureTheory.Measure.pi_pi + theorem MeasureTheory.Measure.pi_pi_aux + theorem MeasureTheory.Measure.tendsto_eval_ae_ae + theorem MeasureTheory.Measure.tprod_cons + theorem MeasureTheory.Measure.tprod_nil + theorem MeasureTheory.Measure.tprod_tprod + theorem MeasureTheory.Measure.univ_pi_Ico_ae_eq_Icc + theorem MeasureTheory.Measure.univ_pi_Iio_ae_eq_Iic + theorem MeasureTheory.Measure.univ_pi_Ioc_ae_eq_Icc + theorem MeasureTheory.Measure.univ_pi_Ioi_ae_eq_Ici + theorem MeasureTheory.Measure.univ_pi_Ioo_ae_eq_Icc + theorem MeasureTheory.OuterMeasure.le_pi + theorem MeasureTheory.OuterMeasure.pi_pi_le + theorem MeasureTheory.measurePreserving_finTwoArrow + theorem MeasureTheory.measurePreserving_finTwoArrow_vec + theorem MeasureTheory.measurePreserving_funUnique + theorem MeasureTheory.measurePreserving_piEquivPiSubtypeProd + theorem MeasureTheory.measurePreserving_piFinSuccAboveEquiv + theorem MeasureTheory.measurePreserving_piFinTwo + theorem MeasureTheory.measurePreserving_pi_empty + def MeasureTheory.piPremeasure + theorem MeasureTheory.piPremeasure_pi' + theorem MeasureTheory.piPremeasure_pi + theorem MeasureTheory.piPremeasure_pi_eval + theorem MeasureTheory.piPremeasure_pi_mono + theorem MeasureTheory.volume_pi + theorem MeasureTheory.volume_pi_ball + theorem MeasureTheory.volume_pi_closedBall + theorem MeasureTheory.volume_pi_pi + theorem MeasureTheory.volume_preserving_finTwoArrow + theorem MeasureTheory.volume_preserving_funUnique + theorem MeasureTheory.volume_preserving_piEquivPiSubtypeProd + theorem MeasureTheory.volume_preserving_piFinSuccAboveEquiv + theorem MeasureTheory.volume_preserving_piFinTwo + theorem MeasureTheory.volume_preserving_pi_empty + theorem generateFrom_eq_pi + theorem generateFrom_pi + theorem generateFrom_pi_eq + theorem isPiSystem_pi 2023-05-31 19:45:13 af5eea3 feat: `positivity` extension for `Real.rpow` (#4486) This PR introduces a positivity extension for `Real.rpow`. It is located at the same place as the mathlib3 version, namely in `Analysis/SpecialFunctions/Pow/Real.lean`. Note that the two tests I left commented out fail, but due to coercions from `ℝ≥0∞` not working yet. ESTIMATED CHANGES Modified Mathlib/Analysis/SpecialFunctions/Pow/Real.lean + def Mathlib.Meta.Positivity.evalRpow + def Mathlib.Meta.Positivity.evalRpowZero + theorem Real.rpow_zero_pos Modified test/positivity.lean 2023-05-31 19:45:11 32e796e feat: port Analysis.Calculus.Deriv.ZPow (#4447) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/Calculus/Deriv/ZPow.lean + theorem Differentiable.zpow + theorem DifferentiableAt.zpow + theorem DifferentiableOn.zpow + theorem DifferentiableWithinAt.zpow + theorem derivWithin_zpow + theorem deriv_zpow' + theorem deriv_zpow + theorem differentiableAt_zpow + theorem differentiableOn_zpow + theorem differentiableWithinAt_zpow + theorem hasDerivAt_zpow + theorem hasDerivWithinAt_zpow + theorem hasStrictDerivAt_zpow + theorem iter_deriv_inv' + theorem iter_deriv_inv + theorem iter_deriv_pow' + theorem iter_deriv_pow + theorem iter_deriv_zpow' + theorem iter_deriv_zpow 2023-05-31 17:34:38 92beef5 chore: fix typos (#4518) I ran `codespell Mathlib` and got tired halfway through the suggestions. ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/Prod.lean Modified Mathlib/Algebra/Category/GroupCat/Basic.lean Modified Mathlib/Algebra/CharP/CharAndCard.lean Modified Mathlib/Algebra/CharP/MixedCharZero.lean Modified Mathlib/Algebra/Field/Defs.lean Modified Mathlib/Algebra/FreeAlgebra.lean Modified Mathlib/Algebra/GradedMonoid.lean Modified Mathlib/Algebra/HierarchyDesign.lean Modified Mathlib/Algebra/Homology/Augment.lean Modified Mathlib/Algebra/Homology/ComplexShape.lean Modified Mathlib/Algebra/Homology/HomologicalComplex.lean Modified Mathlib/Algebra/Invertible.lean Modified Mathlib/Algebra/Module/GradedModule.lean Modified Mathlib/Algebra/Module/Torsion.lean Modified Mathlib/Algebra/MonoidAlgebra/Basic.lean Modified Mathlib/Algebra/Order/Group/Defs.lean Modified Mathlib/Algebra/Ring/Idempotents.lean Modified Mathlib/AlgebraicGeometry/PresheafedSpace.lean Modified Mathlib/AlgebraicTopology/FundamentalGroupoid/Basic.lean Modified Mathlib/AlgebraicTopology/SimplexCategory.lean Modified Mathlib/Analysis/Asymptotics/Asymptotics.lean Modified Mathlib/Analysis/BoxIntegral/Box/Basic.lean Modified Mathlib/Analysis/InnerProductSpace/Projection.lean Modified Mathlib/Analysis/Normed/Group/Basic.lean Modified Mathlib/Analysis/Normed/Group/Quotient.lean Modified Mathlib/Analysis/NormedSpace/BoundedLinearMaps.lean Modified Mathlib/Analysis/NormedSpace/MStructure.lean Modified Mathlib/Analysis/NormedSpace/Star/Basic.lean Modified Mathlib/Analysis/SpecialFunctions/Complex/Arg.lean Modified Mathlib/Analysis/SpecialFunctions/Pow/Real.lean Modified Mathlib/CategoryTheory/Abelian/Transfer.lean Modified Mathlib/CategoryTheory/Action.lean Modified Mathlib/CategoryTheory/Bicategory/Basic.lean Modified Mathlib/CategoryTheory/Category/Basic.lean Modified Mathlib/CategoryTheory/Core.lean Modified Mathlib/CategoryTheory/Elements.lean Modified Mathlib/CategoryTheory/Endofunctor/Algebra.lean Modified Mathlib/CategoryTheory/EqToHom.lean Modified Mathlib/CategoryTheory/EssentialImage.lean Modified Mathlib/CategoryTheory/Functor/Const.lean Modified Mathlib/CategoryTheory/Idempotents/Karoubi.lean Modified Mathlib/CategoryTheory/Limits/Cones.lean Modified Mathlib/CategoryTheory/Limits/FunctorCategory.lean Modified Mathlib/CategoryTheory/Limits/HasLimits.lean Modified Mathlib/CategoryTheory/Limits/Shapes/BinaryProducts.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Equalizers.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Kernels.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Pullbacks.lean Modified Mathlib/CategoryTheory/Monad/Basic.lean Modified Mathlib/CategoryTheory/Monoidal/Category.lean Modified Mathlib/CategoryTheory/NatTrans.lean Modified Mathlib/CategoryTheory/PEmpty.lean Modified Mathlib/CategoryTheory/Products/Basic.lean Modified Mathlib/CategoryTheory/Sigma/Basic.lean Modified Mathlib/CategoryTheory/SingleObj.lean Modified Mathlib/CategoryTheory/Sites/Coverage.lean Modified Mathlib/CategoryTheory/Sites/SheafOfTypes.lean Modified Mathlib/CategoryTheory/Sites/Sieves.lean Modified Mathlib/CategoryTheory/Subobject/WellPowered.lean Modified Mathlib/Combinatorics/Hall/Finite.lean Modified Mathlib/Combinatorics/SimpleGraph/Regularity/Equitabilise.lean Modified Mathlib/Combinatorics/Young/YoungDiagram.lean Modified Mathlib/Computability/PartrecCode.lean Modified Mathlib/Computability/TuringMachine.lean Modified Mathlib/Data/Dfinsupp/Interval.lean Modified Mathlib/Data/Fin/Basic.lean Modified Mathlib/Data/Finset/Basic.lean Modified Mathlib/Data/Finset/Image.lean Modified Mathlib/Data/Finsupp/Order.lean Modified Mathlib/Data/Fintype/Option.lean Modified Mathlib/Data/List/Basic.lean Modified Mathlib/Data/List/Join.lean Modified Mathlib/Data/List/Rdrop.lean Modified Mathlib/Data/List/Sublists.lean Modified Mathlib/Data/Matrix/Rank.lean Modified Mathlib/Data/Multiset/Basic.lean Modified Mathlib/Data/MvPolynomial/Equiv.lean Modified Mathlib/Data/MvPolynomial/Expand.lean Modified Mathlib/Data/Nat/Choose/Multinomial.lean Modified Mathlib/Data/Nat/EvenOddRec.lean Modified Mathlib/Data/Nat/Interval.lean Modified Mathlib/Data/Nat/Lattice.lean Modified Mathlib/Data/Nat/PartENat.lean Modified Mathlib/Data/Num/Lemmas.lean Modified Mathlib/Data/PFun.lean Modified Mathlib/Data/PNat/Basic.lean Modified Mathlib/Data/PNat/Find.lean Modified Mathlib/Data/Polynomial/AlgebraMap.lean Modified Mathlib/Data/Quot.lean Modified Mathlib/Data/Real/EReal.lean Modified Mathlib/Data/Real/NNReal.lean Modified Mathlib/Data/SProd.lean Modified Mathlib/Data/Seq/Computation.lean Modified Mathlib/Data/Seq/WSeq.lean Modified Mathlib/Data/Set/Intervals/Basic.lean Modified Mathlib/Data/Subtype.lean Modified Mathlib/Data/Sym/Basic.lean Modified Mathlib/Data/TypeVec.lean Modified Mathlib/Data/ZMod/Defs.lean Modified Mathlib/Deprecated/Submonoid.lean Modified Mathlib/GroupTheory/Abelianization.lean 2023-05-31 17:34:36 6007b4d fix: OreLocalization notation breaks [] (#4267) As [reported on Zulip](https://leanprover.zulipchat.com/#narrow/stream/270676-lean4/topic/Bug.2FObservation.20about.20Empty.20Lists/near/360479548). ESTIMATED CHANGES Modified Mathlib/RingTheory/OreLocalization/Basic.lean 2023-05-31 17:15:26 53e068c feat: cache: show 200 errors different from 404 (#4417) The `lake exe cache get` progress bar now shows ``` Downloaded S file(s) [N/T = ...%] ``` instead of ``` Downloaded N/T file(s) [...%] ``` where `T` is the total number of files to download, `N` is the number of downloads resolved to either OK 200 or Missing 404, and `S` is the number of files resolving to OK 200. Under normal conditions `S` and `N` will be equal, but if there are a lot of new files which are not reflected upstream then `S` will be somewhat less than `N`, and if `S` is stuck at 0 then there is [something wrong with the hashing](https://leanprover.zulipchat.com/#narrow/stream/270676-lean4/topic/.60lake.20exe.60.20interpreted.20mode.3F/near/361194937). ESTIMATED CHANGES Modified Cache/Requests.lean 2023-06-01 03:03:45+10:00 aa81e2f Revert "chore: bump to nightly-2023-05-31" This reverts commit 2d72cfd46517abaf67541e5b7234207a87a97d24. ESTIMATED CHANGES Modified lean-toolchain 2023-06-01 03:03:17+10:00 2d72cfd chore: bump to nightly-2023-05-31 ESTIMATED CHANGES Modified lean-toolchain 2023-05-31 10:33:14 422af61 feat: port MeasureTheory.Measure.Haar.Basic (#4517) This PR also rename `locallyCompactSpace_of_Group` to `locallyCompactSpace_of_group`, and add a reference to the [issue](https://github.com/leanprover/lean4/issues/2243) in `MeasureTheory.Group.Measure`. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/MeasureTheory/Group/Measure.lean Added Mathlib/MeasureTheory/Measure/Haar/Basic.lean + theorem MeasureTheory.Measure.MeasurePreserving.zpow + theorem MeasureTheory.Measure.div_mem_nhds_one_of_haar_pos + theorem MeasureTheory.Measure.haar.chaar_empty + theorem MeasureTheory.Measure.haar.chaar_mem_clPrehaar + theorem MeasureTheory.Measure.haar.chaar_mem_haarProduct + theorem MeasureTheory.Measure.haar.chaar_mono + theorem MeasureTheory.Measure.haar.chaar_nonneg + theorem MeasureTheory.Measure.haar.chaar_self + theorem MeasureTheory.Measure.haar.chaar_sup_eq + theorem MeasureTheory.Measure.haar.chaar_sup_le + def MeasureTheory.Measure.haar.clPrehaar + theorem MeasureTheory.Measure.haar.haarContent_apply + theorem MeasureTheory.Measure.haar.haarContent_outerMeasure_self_pos + theorem MeasureTheory.Measure.haar.haarContent_self + def MeasureTheory.Measure.haar.haarProduct + theorem MeasureTheory.Measure.haar.index_defined + theorem MeasureTheory.Measure.haar.index_elim + theorem MeasureTheory.Measure.haar.index_empty + theorem MeasureTheory.Measure.haar.index_mono + theorem MeasureTheory.Measure.haar.index_pos + theorem MeasureTheory.Measure.haar.index_union_eq + theorem MeasureTheory.Measure.haar.index_union_le + theorem MeasureTheory.Measure.haar.is_left_invariant_chaar + theorem MeasureTheory.Measure.haar.is_left_invariant_haarContent + theorem MeasureTheory.Measure.haar.is_left_invariant_index + theorem MeasureTheory.Measure.haar.is_left_invariant_prehaar + theorem MeasureTheory.Measure.haar.le_index_mul + theorem MeasureTheory.Measure.haar.mem_prehaar_empty + theorem MeasureTheory.Measure.haar.mul_left_index_le + theorem MeasureTheory.Measure.haar.nonempty_iInter_clPrehaar + theorem MeasureTheory.Measure.haar.prehaar_empty + theorem MeasureTheory.Measure.haar.prehaar_le_index + theorem MeasureTheory.Measure.haar.prehaar_mem_haarProduct + theorem MeasureTheory.Measure.haar.prehaar_mono + theorem MeasureTheory.Measure.haar.prehaar_nonneg + theorem MeasureTheory.Measure.haar.prehaar_pos + theorem MeasureTheory.Measure.haar.prehaar_self + theorem MeasureTheory.Measure.haar.prehaar_sup_eq + theorem MeasureTheory.Measure.haar.prehaar_sup_le + theorem MeasureTheory.Measure.haarMeasure_apply + theorem MeasureTheory.Measure.haarMeasure_eq_smul_haarMeasure + theorem MeasureTheory.Measure.haarMeasure_self + theorem MeasureTheory.Measure.haarMeasure_unique + theorem MeasureTheory.Measure.measurePreserving_zpow + theorem MeasureTheory.Measure.regular_of_mulLeftInvariant Modified Mathlib/Topology/Algebra/Group/Compact.lean - theorem TopologicalSpace.PositiveCompacts.locallyCompactSpace_of_Group + theorem TopologicalSpace.PositiveCompacts.locallyCompactSpace_of_group 2023-05-31 09:29:35 0eaf85d feat: add `Real.iSup_nonneg` etc (#4475) Forward-port of leanprover-community/mathlib#19096 ESTIMATED CHANGES Modified Mathlib/Data/Real/Basic.lean +/- theorem Real.sSup_nonpos 2023-05-31 07:40:26 a9f9889 chore: restore tfae proofs (#4493) ESTIMATED CHANGES Modified Mathlib/Order/Height.lean Modified Mathlib/Topology/Inseparable.lean +/- theorem specializes_TFAE Modified Mathlib/Topology/Order/Basic.lean Modified Mathlib/Topology/Separation.lean Modified Mathlib/Topology/UniformSpace/UniformConvergence.lean 2023-05-31 07:40:24 1fb02ec chore: move category theory tactics to Tactic/CategoryTheory (#4461) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/CategoryTheory/ConcreteCategory/Elementwise.lean Modified Mathlib/CategoryTheory/Elementwise.lean Modified Mathlib/CategoryTheory/Equivalence.lean Modified Mathlib/CategoryTheory/GlueData.lean Modified Mathlib/CategoryTheory/Iso.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Types.lean Modified Mathlib/CategoryTheory/NatTrans.lean Modified Mathlib/CategoryTheory/Preadditive/OfBiproducts.lean Modified Mathlib/CategoryTheory/Sites/Subsheaf.lean Modified Mathlib/CategoryTheory/Subobject/Basic.lean Modified Mathlib/Mathport/Syntax.lean Modified Mathlib/Tactic.lean Renamed Mathlib/Tactic/Elementwise.lean to Mathlib/Tactic/CategoryTheory/Elementwise.lean Renamed Mathlib/Tactic/Reassoc.lean to Mathlib/Tactic/CategoryTheory/Reassoc.lean Renamed Mathlib/Tactic/Slice.lean to Mathlib/Tactic/CategoryTheory/Slice.lean Modified Mathlib/Topology/Sheaves/Stalks.lean Renamed test/CategoryTheory/coherence.lean to test/CategoryTheory/Coherence.lean Renamed test/elementwise.lean to test/CategoryTheory/Elementwise.lean Renamed test/slice.lean to test/CategoryTheory/Slice.lean 2023-05-31 07:01:17 19f958e feat: port MeasureTheory.Integral.IntegrableOn (#4520) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/MeasureTheory/Integral/IntegrableOn.lean + theorem AeStronglyMeasurable.stronglyMeasurableAtFilter_of_mem + theorem Continuous.integrableAt_nhds + theorem Continuous.stronglyMeasurableAtFilter + theorem ContinuousAt.stronglyMeasurableAtFilter + theorem ContinuousOn.aemeasurable + theorem ContinuousOn.aestronglyMeasurable + theorem ContinuousOn.aestronglyMeasurable_of_isCompact + theorem ContinuousOn.aestronglyMeasurable_of_isSeparable + theorem ContinuousOn.integrableAt_nhdsWithin + theorem ContinuousOn.integrableAt_nhdsWithin_of_isSeparable + theorem ContinuousOn.stronglyMeasurableAtFilter + theorem ContinuousOn.stronglyMeasurableAtFilter_nhdsWithin + theorem MeasurableEmbedding.integrableOn_map_iff + theorem MeasureTheory.Integrable.indicator + theorem MeasureTheory.Integrable.integrableAtFilter + theorem MeasureTheory.Integrable.integrableOn + theorem MeasureTheory.Integrable.lintegral_lt_top + theorem MeasureTheory.IntegrableAtFilter.filter_mono + theorem MeasureTheory.IntegrableAtFilter.inf_ae_iff + theorem MeasureTheory.IntegrableAtFilter.inf_of_left + theorem MeasureTheory.IntegrableAtFilter.inf_of_right + def MeasureTheory.IntegrableAtFilter + theorem MeasureTheory.IntegrableOn.add_measure + theorem MeasureTheory.IntegrableOn.congr_fun + theorem MeasureTheory.IntegrableOn.congr_fun_ae + theorem MeasureTheory.IntegrableOn.congr_set_ae + theorem MeasureTheory.IntegrableOn.indicator + theorem MeasureTheory.IntegrableOn.integrable + theorem MeasureTheory.IntegrableOn.integrable_indicator + theorem MeasureTheory.IntegrableOn.integrable_of_ae_not_mem_eq_zero + theorem MeasureTheory.IntegrableOn.integrable_of_forall_not_mem_eq_zero + theorem MeasureTheory.IntegrableOn.left_of_union + theorem MeasureTheory.IntegrableOn.mono + theorem MeasureTheory.IntegrableOn.mono_measure + theorem MeasureTheory.IntegrableOn.mono_set + theorem MeasureTheory.IntegrableOn.mono_set_ae + theorem MeasureTheory.IntegrableOn.of_ae_diff_eq_zero + theorem MeasureTheory.IntegrableOn.of_forall_diff_eq_zero + theorem MeasureTheory.IntegrableOn.restrict + theorem MeasureTheory.IntegrableOn.restrict_toMeasurable + theorem MeasureTheory.IntegrableOn.right_of_union + theorem MeasureTheory.IntegrableOn.set_lintegral_lt_top + theorem MeasureTheory.IntegrableOn.union + def MeasureTheory.IntegrableOn + theorem MeasureTheory.Measure.FiniteAtFilter.integrableAtFilter + theorem MeasureTheory.Measure.FiniteAtFilter.integrableAtFilter_of_tendsto + theorem MeasureTheory.Measure.FiniteAtFilter.integrableAtFilter_of_tendsto_ae + theorem MeasureTheory.MeasurePreserving.integrableOn_comp_preimage + theorem MeasureTheory.MeasurePreserving.integrableOn_image + theorem MeasureTheory.hasFiniteIntegral_restrict_of_bounded + theorem MeasureTheory.integrableOn_Lp_of_measure_ne_top + theorem MeasureTheory.integrableOn_add_measure + theorem MeasureTheory.integrableOn_congr_fun + theorem MeasureTheory.integrableOn_congr_fun_ae + theorem MeasureTheory.integrableOn_const + theorem MeasureTheory.integrableOn_def + theorem MeasureTheory.integrableOn_empty + theorem MeasureTheory.integrableOn_finite_biUnion + theorem MeasureTheory.integrableOn_finite_iUnion + theorem MeasureTheory.integrableOn_finset_iUnion + theorem MeasureTheory.integrableOn_iff_integrable_of_support_subset + theorem MeasureTheory.integrableOn_map_equiv + theorem MeasureTheory.integrableOn_singleton_iff + theorem MeasureTheory.integrableOn_union + theorem MeasureTheory.integrableOn_univ + theorem MeasureTheory.integrableOn_zero + theorem MeasureTheory.integrable_add_of_disjoint + theorem MeasureTheory.integrable_indicatorConstLp + theorem MeasureTheory.integrable_indicator_iff + def StronglyMeasurableAtFilter + theorem integrableOn_Icc_iff_integrableOn_Ico' + theorem integrableOn_Icc_iff_integrableOn_Ico + theorem integrableOn_Icc_iff_integrableOn_Ioc' + theorem integrableOn_Icc_iff_integrableOn_Ioc + theorem integrableOn_Icc_iff_integrableOn_Ioo' + theorem integrableOn_Icc_iff_integrableOn_Ioo + theorem integrableOn_Ici_iff_integrableOn_Ioi' + theorem integrableOn_Ici_iff_integrableOn_Ioi + theorem integrableOn_Ico_iff_integrableOn_Ioo' + theorem integrableOn_Ico_iff_integrableOn_Ioo + theorem integrableOn_Iic_iff_integrableOn_Iio' + theorem integrableOn_Iic_iff_integrableOn_Iio + theorem integrableOn_Ioc_iff_integrableOn_Ioo' + theorem integrableOn_Ioc_iff_integrableOn_Ioo + theorem stronglyMeasurableAt_bot 2023-05-31 07:01:16 e9bc920 feat: port Analysis.Quaternion (#4515) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Category/ModuleCat/Basic.lean Modified Mathlib/Algebra/Quaternion.lean Added Mathlib/Analysis/Quaternion.lean + def Quaternion.coeComplex + theorem Quaternion.coeComplex_add + theorem Quaternion.coeComplex_coe + theorem Quaternion.coeComplex_imI + theorem Quaternion.coeComplex_imJ + theorem Quaternion.coeComplex_imK + theorem Quaternion.coeComplex_mul + theorem Quaternion.coeComplex_one + theorem Quaternion.coeComplex_re + theorem Quaternion.coeComplex_zero + theorem Quaternion.coe_ofComplex + theorem Quaternion.coe_real_complex_mul + theorem Quaternion.continuous_coe + theorem Quaternion.continuous_im + theorem Quaternion.continuous_imI + theorem Quaternion.continuous_imJ + theorem Quaternion.continuous_imK + theorem Quaternion.continuous_normSq + theorem Quaternion.continuous_re + theorem Quaternion.hasSum_coe + theorem Quaternion.inner_def + theorem Quaternion.inner_self + theorem Quaternion.nnnorm_coe + theorem Quaternion.nnnorm_star + theorem Quaternion.normSq_eq_norm_mul_self + theorem Quaternion.norm_coe + theorem Quaternion.norm_piLp_equiv_symm_equivTuple + theorem Quaternion.norm_star + def Quaternion.ofComplex + theorem Quaternion.summable_coe + theorem Quaternion.tsum_coe Modified Mathlib/CategoryTheory/Limits/Shapes/Biproducts.lean Modified Mathlib/Data/Matrix/Rank.lean 2023-05-31 06:39:40 b940e45 feat: port Topology.Sheaves.LocalPredicate (#4497) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Topology/Sheaves/LocalPredicate.lean + structure TopCat.LocalPredicate + def TopCat.PrelocalPredicate.sheafify + theorem TopCat.PrelocalPredicate.sheafifyOf + structure TopCat.PrelocalPredicate + def TopCat.continuousLocal + def TopCat.continuousPrelocal + def TopCat.sheafToTop + def TopCat.stalkToFiber + theorem TopCat.stalkToFiber_germ + theorem TopCat.stalkToFiber_injective + theorem TopCat.stalkToFiber_surjective + def TopCat.subpresheafContinuousPrelocalIsoPresheafToTop + theorem TopCat.subpresheafToTypes.isSheaf + def TopCat.subpresheafToTypes.subtype + def TopCat.subpresheafToTypes + def TopCat.subsheafToTypes 2023-05-31 06:20:50 40237d1 feat: port GroupTheory.Nilpotent (#4472) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/GroupTheory/Nilpotent.lean + theorem CommGroup.nilpotencyClass_le_one + theorem Group.IsNilpotent.nilpotent + def IsAscendingCentralSeries + def IsDescendingCentralSeries + theorem IsPGroup.isNilpotent + theorem Subgroup.nilpotencyClass_le + theorem ascending_central_series_le_upper + theorem comap_upperCentralSeries_quotient_center + def commGroupOfNilpotencyClass + theorem derived_le_lower_central + theorem descending_central_series_ge_lower + theorem isNilpotent_of_finite_tFAE + theorem isNilpotent_of_ker_le_center + theorem isNilpotent_of_product_of_sylow_group + theorem isNilpotent_pi_of_bounded_class + theorem is_ascending_rev_series_of_is_descending + theorem is_decending_rev_series_of_is_ascending + theorem least_ascending_central_series_length_eq_nilpotencyClass + theorem least_descending_central_series_length_eq_nilpotencyClass + theorem lowerCentralSeries.map + def lowerCentralSeries + theorem lowerCentralSeries_antitone + theorem lowerCentralSeries_eq_bot_iff_nilpotencyClass_le + theorem lowerCentralSeries_isDescendingCentralSeries + theorem lowerCentralSeries_length_eq_nilpotencyClass + theorem lowerCentralSeries_map_subtype_le + theorem lowerCentralSeries_nilpotencyClass + theorem lowerCentralSeries_one + theorem lowerCentralSeries_pi_le + theorem lowerCentralSeries_pi_of_finite + theorem lowerCentralSeries_prod + theorem lowerCentralSeries_succ + theorem lowerCentralSeries_succ_eq_bot + theorem lowerCentralSeries_zero + theorem mem_lowerCentralSeries_succ_iff + theorem mem_upperCentralSeriesStep + theorem mem_upperCentralSeries_succ_iff + theorem nilpotencyClass_eq_quotient_center_plus_one + theorem nilpotencyClass_le_of_ker_le_center + theorem nilpotencyClass_le_of_surjective + theorem nilpotencyClass_pi + theorem nilpotencyClass_prod + theorem nilpotencyClass_quotient_center + theorem nilpotencyClass_quotient_le + theorem nilpotencyClass_zero_iff_subsingleton + theorem nilpotent_center_quotient_ind + theorem nilpotent_iff_finite_ascending_central_series + theorem nilpotent_iff_finite_descending_central_series + theorem nilpotent_iff_lowerCentralSeries + theorem nilpotent_of_mulEquiv + theorem nilpotent_of_surjective + theorem normalizerCondition_of_isNilpotent + theorem of_quotient_center_nilpotent + theorem upperCentralSeries.map + def upperCentralSeries + def upperCentralSeriesAux + def upperCentralSeriesStep + theorem upperCentralSeriesStep_eq_comap_center + theorem upperCentralSeries_eq_top_iff_nilpotencyClass_le + theorem upperCentralSeries_isAscendingCentralSeries + theorem upperCentralSeries_mono + theorem upperCentralSeries_nilpotencyClass + theorem upperCentralSeries_one + theorem upperCentralSeries_zero 2023-05-31 06:03:27 de28350 chore: show qq in docs (#4462) As requested on zulip https://leanprover.zulipchat.com/#narrow/stream/270676-lean4/topic/Feeding.20instances.20to.20QQ/near/361156532 ESTIMATED CHANGES Modified scripts/deploy_docs.sh 2023-05-31 05:42:50 0cbb9b8 feat: port CategoryTheory.Sites.Closed (#3356) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Sites/Closed.lean + def CategoryTheory.Functor.closedSieves + def CategoryTheory.GrothendieckTopology.IsClosed + def CategoryTheory.GrothendieckTopology.close + theorem CategoryTheory.GrothendieckTopology.close_close + theorem CategoryTheory.GrothendieckTopology.close_eq_self_of_isClosed + theorem CategoryTheory.GrothendieckTopology.close_eq_top_iff_mem + theorem CategoryTheory.GrothendieckTopology.close_isClosed + theorem CategoryTheory.GrothendieckTopology.closed_iff_closed + def CategoryTheory.GrothendieckTopology.closureOperator + theorem CategoryTheory.GrothendieckTopology.covers_iff_mem_of_isClosed + theorem CategoryTheory.GrothendieckTopology.isClosed_iff_close_eq_self + theorem CategoryTheory.GrothendieckTopology.isClosed_pullback + theorem CategoryTheory.GrothendieckTopology.le_close + theorem CategoryTheory.GrothendieckTopology.le_close_of_isClosed + theorem CategoryTheory.GrothendieckTopology.monotone_close + theorem CategoryTheory.GrothendieckTopology.pullback_close + theorem CategoryTheory.classifier_isSheaf + theorem CategoryTheory.le_topology_of_closedSieves_isSheaf + def CategoryTheory.topologyOfClosureOperator + theorem CategoryTheory.topologyOfClosureOperator_close + theorem CategoryTheory.topologyOfClosureOperator_self + theorem CategoryTheory.topology_eq_iff_same_sheaves 2023-05-31 04:37:04 27ebbd6 feat: port MeasureTheory.Function.L1Space (#4383) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/MeasureTheory/Function/L1Space.lean + theorem ContinuousLinearMap.integrable_comp + theorem IsUnit.integrable_smul_iff + theorem MeasurableEmbedding.integrable_map_iff + theorem MeasureTheory.AEEqFun.Integrable.add + theorem MeasureTheory.AEEqFun.Integrable.neg + theorem MeasureTheory.AEEqFun.Integrable.smul + theorem MeasureTheory.AEEqFun.Integrable.sub + def MeasureTheory.AEEqFun.Integrable + theorem MeasureTheory.AEEqFun.integrable_coeFn + theorem MeasureTheory.AEEqFun.integrable_iff_mem_L1 + theorem MeasureTheory.AEEqFun.integrable_mk + theorem MeasureTheory.AEEqFun.integrable_zero + theorem MeasureTheory.HasFiniteIntegral.add_measure + theorem MeasureTheory.HasFiniteIntegral.congr' + theorem MeasureTheory.HasFiniteIntegral.congr + theorem MeasureTheory.HasFiniteIntegral.const_mul + theorem MeasureTheory.HasFiniteIntegral.left_of_add_measure + theorem MeasureTheory.HasFiniteIntegral.max_zero + theorem MeasureTheory.HasFiniteIntegral.min_zero + theorem MeasureTheory.HasFiniteIntegral.mono' + theorem MeasureTheory.HasFiniteIntegral.mono + theorem MeasureTheory.HasFiniteIntegral.mono_measure + theorem MeasureTheory.HasFiniteIntegral.mul_const + theorem MeasureTheory.HasFiniteIntegral.neg + theorem MeasureTheory.HasFiniteIntegral.norm + theorem MeasureTheory.HasFiniteIntegral.right_of_add_measure + theorem MeasureTheory.HasFiniteIntegral.smul + theorem MeasureTheory.HasFiniteIntegral.smul_measure + def MeasureTheory.HasFiniteIntegral + theorem MeasureTheory.Integrable.abs + theorem MeasureTheory.Integrable.add' + theorem MeasureTheory.Integrable.add + theorem MeasureTheory.Integrable.add_measure + theorem MeasureTheory.Integrable.aemeasurable + theorem MeasureTheory.Integrable.aestronglyMeasurable + theorem MeasureTheory.Integrable.apply_continuousLinearMap + theorem MeasureTheory.Integrable.bdd_mul' + theorem MeasureTheory.Integrable.bdd_mul + theorem MeasureTheory.Integrable.coeFn_toL1 + theorem MeasureTheory.Integrable.comp_aemeasurable + theorem MeasureTheory.Integrable.comp_measurable + theorem MeasureTheory.Integrable.congr' + theorem MeasureTheory.Integrable.congr + theorem MeasureTheory.Integrable.const_mul' + theorem MeasureTheory.Integrable.const_mul + theorem MeasureTheory.Integrable.div_const + theorem MeasureTheory.Integrable.edist_toL1_toL1 + theorem MeasureTheory.Integrable.edist_toL1_zero + theorem MeasureTheory.Integrable.essSup_smul + theorem MeasureTheory.Integrable.hasFiniteIntegral + theorem MeasureTheory.Integrable.im + theorem MeasureTheory.Integrable.inf + theorem MeasureTheory.Integrable.left_of_add_measure + theorem MeasureTheory.Integrable.measure_ge_lt_top + theorem MeasureTheory.Integrable.mono' + theorem MeasureTheory.Integrable.mono + theorem MeasureTheory.Integrable.mono_measure + theorem MeasureTheory.Integrable.mul_const' + theorem MeasureTheory.Integrable.mul_const + theorem MeasureTheory.Integrable.neg + theorem MeasureTheory.Integrable.neg_part + theorem MeasureTheory.Integrable.norm + theorem MeasureTheory.Integrable.norm_toL1 + theorem MeasureTheory.Integrable.norm_toL1_eq_lintegral_norm + theorem MeasureTheory.Integrable.ofReal + theorem MeasureTheory.Integrable.of_measure_le_smul + theorem MeasureTheory.Integrable.pos_part + theorem MeasureTheory.Integrable.prod_mk + theorem MeasureTheory.Integrable.re + theorem MeasureTheory.Integrable.re_im_iff + theorem MeasureTheory.Integrable.real_toNNReal + theorem MeasureTheory.Integrable.right_of_add_measure + theorem MeasureTheory.Integrable.smul + theorem MeasureTheory.Integrable.smul_const + theorem MeasureTheory.Integrable.smul_essSup + theorem MeasureTheory.Integrable.smul_measure + theorem MeasureTheory.Integrable.smul_of_top_left + theorem MeasureTheory.Integrable.smul_of_top_right + theorem MeasureTheory.Integrable.sub + theorem MeasureTheory.Integrable.sup + def MeasureTheory.Integrable.toL1 + theorem MeasureTheory.Integrable.toL1_add + theorem MeasureTheory.Integrable.toL1_coeFn + theorem MeasureTheory.Integrable.toL1_eq_mk + theorem MeasureTheory.Integrable.toL1_eq_toL1_iff + theorem MeasureTheory.Integrable.toL1_neg + theorem MeasureTheory.Integrable.toL1_smul' + theorem MeasureTheory.Integrable.toL1_smul + theorem MeasureTheory.Integrable.toL1_sub + theorem MeasureTheory.Integrable.toL1_zero + theorem MeasureTheory.Integrable.to_average + theorem MeasureTheory.Integrable.trim + def MeasureTheory.Integrable + theorem MeasureTheory.L1.aemeasurable_coeFn + theorem MeasureTheory.L1.aestronglyMeasurable_coeFn + theorem MeasureTheory.L1.dist_def + theorem MeasureTheory.L1.edist_def + theorem MeasureTheory.L1.hasFiniteIntegral_coeFn + theorem MeasureTheory.L1.integrable_coeFn + theorem MeasureTheory.L1.measurable_coeFn + theorem MeasureTheory.L1.norm_def + theorem MeasureTheory.L1.norm_sub_eq_lintegral + theorem MeasureTheory.L1.ofReal_norm_eq_lintegral + theorem MeasureTheory.L1.ofReal_norm_sub_eq_lintegral + theorem MeasureTheory.L1.stronglyMeasurable_coeFn + theorem MeasureTheory.LipschitzWith.integrable_comp_iff_of_antilipschitz + theorem MeasureTheory.MeasurePreserving.integrable_comp + theorem MeasureTheory.MeasurePreserving.integrable_comp_emb + theorem MeasureTheory.Memℒp.integrable + theorem MeasureTheory.Memℒp.integrable_norm_rpow' + theorem MeasureTheory.Memℒp.integrable_norm_rpow + theorem MeasureTheory.all_ae_ofReal_F_le_bound + theorem MeasureTheory.all_ae_ofReal_f_le_bound + theorem MeasureTheory.all_ae_tendsto_ofReal_norm + theorem MeasureTheory.coe_toNNReal_ae_eq + theorem MeasureTheory.finiteMeasure_withDensity_ofReal + theorem MeasureTheory.hasFiniteIntegral_add_measure + theorem MeasureTheory.hasFiniteIntegral_congr' + theorem MeasureTheory.hasFiniteIntegral_congr + theorem MeasureTheory.hasFiniteIntegral_const + theorem MeasureTheory.hasFiniteIntegral_const_iff + theorem MeasureTheory.hasFiniteIntegral_def + theorem MeasureTheory.hasFiniteIntegral_iff_edist + theorem MeasureTheory.hasFiniteIntegral_iff_norm + theorem MeasureTheory.hasFiniteIntegral_iff_ofNNReal + theorem MeasureTheory.hasFiniteIntegral_iff_ofReal + theorem MeasureTheory.hasFiniteIntegral_neg_iff + theorem MeasureTheory.hasFiniteIntegral_norm_iff + theorem MeasureTheory.hasFiniteIntegral_of_bounded + theorem MeasureTheory.hasFiniteIntegral_of_dominated_convergence + theorem MeasureTheory.hasFiniteIntegral_smul_iff + theorem MeasureTheory.hasFiniteIntegral_toReal_of_lintegral_ne_top + theorem MeasureTheory.hasFiniteIntegral_zero + theorem MeasureTheory.hasFiniteIntegral_zero_measure + theorem MeasureTheory.integrable_add_measure + theorem MeasureTheory.integrable_average + theorem MeasureTheory.integrable_congr' + theorem MeasureTheory.integrable_congr + theorem MeasureTheory.integrable_const + theorem MeasureTheory.integrable_const_iff + theorem MeasureTheory.integrable_const_mul_iff + theorem MeasureTheory.integrable_def + theorem MeasureTheory.integrable_finset_sum' + theorem MeasureTheory.integrable_finset_sum + theorem MeasureTheory.integrable_finset_sum_measure + theorem MeasureTheory.integrable_inv_smul_measure + theorem MeasureTheory.integrable_map_equiv + theorem MeasureTheory.integrable_map_measure + theorem MeasureTheory.integrable_mul_const_iff + theorem MeasureTheory.integrable_neg_iff + theorem MeasureTheory.integrable_norm_iff + theorem MeasureTheory.integrable_of_forall_fin_meas_le' + theorem MeasureTheory.integrable_of_forall_fin_meas_le + theorem MeasureTheory.integrable_of_integrable_trim + theorem MeasureTheory.integrable_of_norm_sub_le + theorem MeasureTheory.integrable_smul_const + theorem MeasureTheory.integrable_smul_iff + theorem MeasureTheory.integrable_smul_measure + theorem MeasureTheory.integrable_toReal_of_lintegral_ne_top + theorem MeasureTheory.integrable_withDensity_iff + theorem MeasureTheory.integrable_withDensity_iff_integrable_coe_smul + theorem MeasureTheory.integrable_withDensity_iff_integrable_coe_smul₀ + theorem MeasureTheory.integrable_withDensity_iff_integrable_smul' + theorem MeasureTheory.integrable_withDensity_iff_integrable_smul + theorem MeasureTheory.integrable_withDensity_iff_integrable_smul₀ + theorem MeasureTheory.integrable_zero + theorem MeasureTheory.integrable_zero_measure + theorem MeasureTheory.lintegral_edist_lt_top + theorem MeasureTheory.lintegral_edist_triangle + theorem MeasureTheory.lintegral_nnnorm_add_left + theorem MeasureTheory.lintegral_nnnorm_add_right + theorem MeasureTheory.lintegral_nnnorm_eq_lintegral_edist + theorem MeasureTheory.lintegral_nnnorm_neg + theorem MeasureTheory.lintegral_nnnorm_zero + theorem MeasureTheory.lintegral_norm_eq_lintegral_edist + theorem MeasureTheory.mem_ℒ1_toReal_of_lintegral_ne_top + theorem MeasureTheory.memℒ1_smul_of_L1_withDensity + theorem MeasureTheory.memℒp_one_iff_integrable + theorem MeasureTheory.ofReal_toReal_ae_eq + theorem MeasureTheory.tendsto_lintegral_norm_of_dominated_convergence + theorem MeasureTheory.withDensitySMulLI_apply Modified Mathlib/MeasureTheory/Function/LpSeminorm.lean 2023-05-31 04:37:03 d90140d feat: add lemmas about `AffineMap.lineMap` (#4254) Add `Convex.mapsTo_lineMap`, `Convex.lineMap_mem`. ESTIMATED CHANGES Modified Mathlib/Analysis/Convex/Basic.lean + theorem Convex.lineMap_mem + theorem Convex.mapsTo_lineMap 2023-05-31 01:08:11 6fa529a feat: add 3 missing defs about `AlternatingMap` (#4509) Forward-port leanprover-community/mathlib#19069 ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/Alternating.lean + theorem AlternatingMap.coe_pi + theorem AlternatingMap.coe_prod + theorem AlternatingMap.coe_smulRight + def AlternatingMap.pi + def AlternatingMap.prod + def AlternatingMap.smulRight + theorem LinearMap.smulRight_eq_comp Modified Mathlib/LinearAlgebra/Multilinear/Basic.lean 2023-05-31 01:08:09 ec79b6b feat: port MeasureTheory.Group.Prod (#4502) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/MeasureTheory/Group/Prod.lean + theorem MeasureTheory.absolutelyContinuous_inv + theorem MeasureTheory.absolutelyContinuous_map_div_left + theorem MeasureTheory.absolutelyContinuous_map_mul_right + theorem MeasureTheory.absolutelyContinuous_of_mulLeftInvariant + theorem MeasureTheory.ae_measure_preimage_mul_right_lt_top + theorem MeasureTheory.ae_measure_preimage_mul_right_lt_top_of_ne_zero + theorem MeasureTheory.inv_absolutelyContinuous + theorem MeasureTheory.lintegral_lintegral_mul_inv + theorem MeasureTheory.measurable_measure_mul_right + theorem MeasureTheory.measurePreserving_div_prod + theorem MeasureTheory.measurePreserving_mul_prod + theorem MeasureTheory.measurePreserving_mul_prod_inv + theorem MeasureTheory.measurePreserving_mul_prod_inv_right + theorem MeasureTheory.measurePreserving_prod_div + theorem MeasureTheory.measurePreserving_prod_div_swap + theorem MeasureTheory.measurePreserving_prod_inv_mul + theorem MeasureTheory.measurePreserving_prod_inv_mul_swap + theorem MeasureTheory.measurePreserving_prod_mul + theorem MeasureTheory.measurePreserving_prod_mul_right + theorem MeasureTheory.measurePreserving_prod_mul_swap + theorem MeasureTheory.measurePreserving_prod_mul_swap_right + theorem MeasureTheory.measure_eq_div_smul + theorem MeasureTheory.measure_inv_null + theorem MeasureTheory.measure_lintegral_div_measure + theorem MeasureTheory.measure_mul_lintegral_eq + theorem MeasureTheory.measure_mul_measure_eq + theorem MeasureTheory.measure_mul_right_ne_zero + theorem MeasureTheory.measure_mul_right_null + theorem MeasureTheory.quasiMeasurePreserving_div + theorem MeasureTheory.quasiMeasurePreserving_div_left + theorem MeasureTheory.quasiMeasurePreserving_div_left_of_right_invariant + theorem MeasureTheory.quasiMeasurePreserving_div_of_right_invariant + theorem MeasureTheory.quasiMeasurePreserving_inv + theorem MeasureTheory.quasiMeasurePreserving_inv_of_right_invariant + theorem MeasureTheory.quasiMeasurePreserving_mul_left + theorem MeasureTheory.quasiMeasurePreserving_mul_right 2023-05-31 01:08:07 3026bb9 chore: remove sup from union_congr_left statement (#4481) This appears to have been accidental. Added in https://github.com/leanprover-community/mathlib/pull/15439 ESTIMATED CHANGES Modified Mathlib/Data/Finset/Basic.lean +/- theorem Finset.union_congr_left Modified Mathlib/Data/Set/Basic.lean +/- theorem Set.union_congr_left 2023-05-30 23:49:36 ff4f070 feat: port Topology.Homotopy.HomotopyGroup (#4485) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Topology/ContinuousFunction/Basic.lean + def ContinuousMap.constPi + def ContinuousMap.prodSwap Modified Mathlib/Topology/Homotopy/Basic.lean + def ContinuousMap.Homotopy.compContinuousMap + theorem ContinuousMap.homotopicRel_empty Added Mathlib/Topology/Homotopy/HomotopyGroup.lean + def Cube.boundary + theorem Cube.boundary_one + theorem Cube.boundary_zero + theorem Cube.head.continuous + def Cube.head + theorem Cube.mem_boundary + theorem Cube.one_char + theorem Cube.one_mem_boundary + theorem Cube.proj_continuous + def Cube.tail + theorem Cube.zero_mem_boundary + def Cube + theorem GenLoop.Homotopic.equiv + theorem GenLoop.Homotopic.refl + def GenLoop.Homotopic + def GenLoop.const + def GenLoop.diagonal + theorem GenLoop.ext + theorem GenLoop.mk_apply + theorem GenLoop.toContinuousMap_apply + structure GenLoop + def HomotopyGroup + def genLoopOneEquivPathSelf + theorem genLoopOneEquivPathSelf_homotopic_iff + theorem genLoopOneEquivPathSelf_symm_homotopic_iff + def genLoopZeroEquiv + theorem homotopic_genLoopZeroEquiv_symm_iff + theorem joined_genLoopZeroEquiv_iff + def pi0EquivPathComponents + def pi1EquivFundamentalGroup Modified Mathlib/Topology/Homotopy/Path.lean + theorem ContinuousMap.homotopic_const_iff + def Path.toHomotopyConst 2023-05-30 23:49:35 35a96e2 feat: port Analysis.SpecificLimits.FloorPow (#4396) Notes: 1. This PR also contains a fix to the `filter_upwards` tactic, see [Zulip](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/.60filter_upwards.60.20missing.20an.20.60instantiateMVars.60.3F) 2. Several situations required extra type annotations in order to get the expressions to elaborate the same way (because of heterogeneous operations in Lean 4). 3. `^ n` was not being elaborated correctly for `n : ℕ` and a coercion was being inserted. This seems to be the same issue as [this one](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/!4.234085) and I used Floris' fix there. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/SpecificLimits/FloorPow.lean + theorem mul_pow_le_nat_floor_pow + theorem sum_div_nat_floor_pow_sq_le_div_sq + theorem sum_div_pow_sq_le_div_sq + theorem tendsto_div_of_monotone_of_exists_subseq_tendsto_div + theorem tendsto_div_of_monotone_of_tendsto_div_floor_pow Modified Mathlib/Order/Filter/Basic.lean 2023-05-30 23:20:12 6e1dbc7 chore: Rename Alenxandroff to Compactification.OnePoint (#4506) We rename Alexandroff to Compactification.OnePoint to avoid future name conflicts (with e.g. Alexandroff topological spaces). See [this zulip thread](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/Possible.20future.20name.20collision/near/361834935). ESTIMATED CHANGES Modified Mathlib.lean Deleted Mathlib/Topology/Alexandroff.lean - theorem Alexandroff.coe_eq_coe - theorem Alexandroff.coe_injective - theorem Alexandroff.coe_ne_infty - theorem Alexandroff.coe_preimage_infty - theorem Alexandroff.comap_coe_nhds - theorem Alexandroff.comap_coe_nhds_infty - theorem Alexandroff.compl_image_coe - theorem Alexandroff.compl_infty - theorem Alexandroff.compl_range_coe - theorem Alexandroff.continuousAt_coe - theorem Alexandroff.continuousAt_infty' - theorem Alexandroff.continuousAt_infty - theorem Alexandroff.continuous_coe - theorem Alexandroff.denseEmbedding_coe - theorem Alexandroff.denseRange_coe - theorem Alexandroff.hasBasis_nhds_infty - def Alexandroff.infty - theorem Alexandroff.infty_mem_opensOfCompl - theorem Alexandroff.infty_ne_coe - theorem Alexandroff.infty_not_mem_image_coe - theorem Alexandroff.infty_not_mem_range_coe - theorem Alexandroff.inseparable_coe - theorem Alexandroff.inseparable_iff - theorem Alexandroff.insert_infty_range_coe - theorem Alexandroff.isClosed_iff_of_mem - theorem Alexandroff.isClosed_iff_of_not_mem - theorem Alexandroff.isClosed_image_coe - theorem Alexandroff.isClosed_infty - theorem Alexandroff.isCompl_range_coe_infty - theorem Alexandroff.isOpenMap_coe - theorem Alexandroff.isOpen_compl_image_coe - theorem Alexandroff.isOpen_def - theorem Alexandroff.isOpen_iff_of_mem' - theorem Alexandroff.isOpen_iff_of_mem - theorem Alexandroff.isOpen_iff_of_not_mem - theorem Alexandroff.isOpen_image_coe - theorem Alexandroff.isOpen_range_coe - theorem Alexandroff.le_nhds_infty - theorem Alexandroff.ne_infty_iff_exists - theorem Alexandroff.nhdsWithin_coe - theorem Alexandroff.nhdsWithin_coe_image - theorem Alexandroff.nhdsWithin_compl_infty_eq - theorem Alexandroff.nhds_coe_eq - theorem Alexandroff.nhds_infty_eq - theorem Alexandroff.not_continuous_cofiniteTopology_of_symm - theorem Alexandroff.not_inseparable_coe_infty - theorem Alexandroff.not_inseparable_infty_coe - theorem Alexandroff.not_mem_range_coe_iff - theorem Alexandroff.not_specializes_infty_coe - theorem Alexandroff.openEmbedding_coe - def Alexandroff.opensOfCompl - theorem Alexandroff.range_coe_inter_infty - theorem Alexandroff.range_coe_union_infty - def Alexandroff.some - theorem Alexandroff.specializes_coe - theorem Alexandroff.tendsto_nhds_infty' - theorem Alexandroff.tendsto_nhds_infty - theorem Alexandroff.ultrafilter_le_nhds_infty - def Alexandroff - theorem Continuous.homeoOfEquivCompactToT2.t1_counterexample Added Mathlib/Topology/Compactification/OnePoint.lean + theorem Continuous.homeoOfEquivCompactToT2.t1_counterexample + theorem OnePoint.coe_eq_coe + theorem OnePoint.coe_injective + theorem OnePoint.coe_ne_infty + theorem OnePoint.coe_preimage_infty + theorem OnePoint.comap_coe_nhds + theorem OnePoint.comap_coe_nhds_infty + theorem OnePoint.compl_image_coe + theorem OnePoint.compl_infty + theorem OnePoint.compl_range_coe + theorem OnePoint.continuousAt_coe + theorem OnePoint.continuousAt_infty' + theorem OnePoint.continuousAt_infty + theorem OnePoint.continuous_coe + theorem OnePoint.denseEmbedding_coe + theorem OnePoint.denseRange_coe + theorem OnePoint.hasBasis_nhds_infty + def OnePoint.infty + theorem OnePoint.infty_mem_opensOfCompl + theorem OnePoint.infty_ne_coe + theorem OnePoint.infty_not_mem_image_coe + theorem OnePoint.infty_not_mem_range_coe + theorem OnePoint.inseparable_coe + theorem OnePoint.inseparable_iff + theorem OnePoint.insert_infty_range_coe + theorem OnePoint.isClosed_iff_of_mem + theorem OnePoint.isClosed_iff_of_not_mem + theorem OnePoint.isClosed_image_coe + theorem OnePoint.isClosed_infty + theorem OnePoint.isCompl_range_coe_infty + theorem OnePoint.isOpenMap_coe + theorem OnePoint.isOpen_compl_image_coe + theorem OnePoint.isOpen_def + theorem OnePoint.isOpen_iff_of_mem' + theorem OnePoint.isOpen_iff_of_mem + theorem OnePoint.isOpen_iff_of_not_mem + theorem OnePoint.isOpen_image_coe + theorem OnePoint.isOpen_range_coe + theorem OnePoint.le_nhds_infty + theorem OnePoint.ne_infty_iff_exists + theorem OnePoint.nhdsWithin_coe + theorem OnePoint.nhdsWithin_coe_image + theorem OnePoint.nhdsWithin_compl_infty_eq + theorem OnePoint.nhds_coe_eq + theorem OnePoint.nhds_infty_eq + theorem OnePoint.not_continuous_cofiniteTopology_of_symm + theorem OnePoint.not_inseparable_coe_infty + theorem OnePoint.not_inseparable_infty_coe + theorem OnePoint.not_mem_range_coe_iff + theorem OnePoint.not_specializes_infty_coe + theorem OnePoint.openEmbedding_coe + def OnePoint.opensOfCompl + theorem OnePoint.range_coe_inter_infty + theorem OnePoint.range_coe_union_infty + def OnePoint.some + theorem OnePoint.specializes_coe + theorem OnePoint.tendsto_nhds_infty' + theorem OnePoint.tendsto_nhds_infty + theorem OnePoint.ultrafilter_le_nhds_infty + def OnePoint Modified Mathlib/Topology/Instances/RatLemmas.lean - theorem Rat.not_countably_generated_nhds_infty_alexandroff + theorem Rat.not_countably_generated_nhds_infty_opc - theorem Rat.not_firstCountableTopology_alexandroff + theorem Rat.not_firstCountableTopology_opc - theorem Rat.not_secondCountableTopology_alexandroff + theorem Rat.not_secondCountableTopology_opc 2023-05-30 21:51:05 dea27b2 feat: port MeasureTheory.Decomposition.Jordan (#4500) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/MeasureTheory/Decomposition/Jordan.lean + theorem MeasureTheory.JordanDecomposition.coe_smul + theorem MeasureTheory.JordanDecomposition.exists_compl_positive_negative + theorem MeasureTheory.JordanDecomposition.neg_negPart + theorem MeasureTheory.JordanDecomposition.neg_posPart + theorem MeasureTheory.JordanDecomposition.real_smul_def + theorem MeasureTheory.JordanDecomposition.real_smul_neg + theorem MeasureTheory.JordanDecomposition.real_smul_negPart_neg + theorem MeasureTheory.JordanDecomposition.real_smul_negPart_nonneg + theorem MeasureTheory.JordanDecomposition.real_smul_nonneg + theorem MeasureTheory.JordanDecomposition.real_smul_posPart_neg + theorem MeasureTheory.JordanDecomposition.real_smul_posPart_nonneg + theorem MeasureTheory.JordanDecomposition.smul_negPart + theorem MeasureTheory.JordanDecomposition.smul_posPart + theorem MeasureTheory.JordanDecomposition.toJordanDecomposition_toSignedMeasure + def MeasureTheory.JordanDecomposition.toSignedMeasure + theorem MeasureTheory.JordanDecomposition.toSignedMeasure_injective + theorem MeasureTheory.JordanDecomposition.toSignedMeasure_neg + theorem MeasureTheory.JordanDecomposition.toSignedMeasure_smul + theorem MeasureTheory.JordanDecomposition.toSignedMeasure_zero + theorem MeasureTheory.JordanDecomposition.zero_negPart + theorem MeasureTheory.JordanDecomposition.zero_posPart + structure MeasureTheory.JordanDecomposition + theorem MeasureTheory.SignedMeasure.absolutelyContinuous_ennreal_iff + theorem MeasureTheory.SignedMeasure.mutuallySingular_ennreal_iff + theorem MeasureTheory.SignedMeasure.mutuallySingular_iff + theorem MeasureTheory.SignedMeasure.null_of_totalVariation_zero + theorem MeasureTheory.SignedMeasure.of_diff_eq_zero_of_symmDiff_eq_zero_negative + theorem MeasureTheory.SignedMeasure.of_diff_eq_zero_of_symmDiff_eq_zero_positive + theorem MeasureTheory.SignedMeasure.of_inter_eq_of_symmDiff_eq_zero_negative + theorem MeasureTheory.SignedMeasure.of_inter_eq_of_symmDiff_eq_zero_positive + theorem MeasureTheory.SignedMeasure.subset_negative_null_set + theorem MeasureTheory.SignedMeasure.subset_positive_null_set + def MeasureTheory.SignedMeasure.toJordanDecomposition + def MeasureTheory.SignedMeasure.toJordanDecompositionEquiv + theorem MeasureTheory.SignedMeasure.toJordanDecomposition_eq + theorem MeasureTheory.SignedMeasure.toJordanDecomposition_neg + theorem MeasureTheory.SignedMeasure.toJordanDecomposition_smul + theorem MeasureTheory.SignedMeasure.toJordanDecomposition_smul_real + theorem MeasureTheory.SignedMeasure.toJordanDecomposition_spec + theorem MeasureTheory.SignedMeasure.toJordanDecomposition_zero + theorem MeasureTheory.SignedMeasure.toSignedMeasure_toJordanDecomposition + def MeasureTheory.SignedMeasure.totalVariation + theorem MeasureTheory.SignedMeasure.totalVariation_absolutelyContinuous_iff + theorem MeasureTheory.SignedMeasure.totalVariation_mutuallySingular_iff + theorem MeasureTheory.SignedMeasure.totalVariation_neg + theorem MeasureTheory.SignedMeasure.totalVariation_zero Modified Mathlib/MeasureTheory/Measure/VectorMeasure.lean + theorem MeasureTheory.Measure.toSignedMeasure_toMeasureOfZeroLE - theorem MeasureTheory.Measure.toSignedMeasure_toMeasureOfZeroLe + def MeasureTheory.SignedMeasure.toMeasureOfLEZero + theorem MeasureTheory.SignedMeasure.toMeasureOfLEZero_apply + theorem MeasureTheory.SignedMeasure.toMeasureOfLEZero_toSignedMeasure - def MeasureTheory.SignedMeasure.toMeasureOfLeZero - theorem MeasureTheory.SignedMeasure.toMeasureOfLeZero_apply - theorem MeasureTheory.SignedMeasure.toMeasureOfLeZero_toSignedMeasure + def MeasureTheory.SignedMeasure.toMeasureOfZeroLE' + def MeasureTheory.SignedMeasure.toMeasureOfZeroLE + theorem MeasureTheory.SignedMeasure.toMeasureOfZeroLE_apply + theorem MeasureTheory.SignedMeasure.toMeasureOfZeroLE_toSignedMeasure - def MeasureTheory.SignedMeasure.toMeasureOfZeroLe' - def MeasureTheory.SignedMeasure.toMeasureOfZeroLe - theorem MeasureTheory.SignedMeasure.toMeasureOfZeroLe_apply - theorem MeasureTheory.SignedMeasure.toMeasureOfZeroLe_toSignedMeasure 2023-05-30 11:24:51 bc67f7e feat: add a version of `Set.Finite.biUnion` (#4469) forward-port leanprover-community/mathlib#19098 ESTIMATED CHANGES Modified Mathlib/Data/Set/Finite.lean + theorem Equiv.set_finite_iff + theorem Set.Finite.iUnion 2023-05-30 10:47:23 e2aa801 feat: port MeasureTheory.Group.Measure (#4496) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/MeasureTheory/Group/Measure.lean + theorem MeasureTheory.Measure.HaarMeasure.smul + theorem MeasureTheory.Measure.haarMeasure_map + theorem MeasureTheory.Measure.haarMeasure_of_isCompact_nonempty_interior + theorem MeasureTheory.Measure.haar_singleton + theorem MeasureTheory.Measure.inv_apply + theorem MeasureTheory.Measure.inv_eq_self + theorem MeasureTheory.Measure.map_div_left_ae + theorem MeasureTheory.Measure.map_div_left_eq_self + theorem MeasureTheory.Measure.map_inv_eq_self + theorem MeasureTheory.Measure.map_mul_right_inv_eq_self + theorem MeasureTheory.Measure.measurePreserving_div_left + theorem MeasureTheory.Measure.measurePreserving_inv + theorem MeasureTheory.Measure.measurePreserving_mul_right_inv + theorem MeasureTheory.Measure.measure_inv + theorem MeasureTheory.Measure.measure_preimage_inv + theorem MeasureTheory.MeasurePreserving.mul_left + theorem MeasureTheory.MeasurePreserving.mul_right + theorem MeasureTheory.eventually_div_right_iff + theorem MeasureTheory.eventually_mul_left_iff + theorem MeasureTheory.eventually_mul_right_iff + theorem MeasureTheory.forall_measure_preimage_mul_iff + theorem MeasureTheory.forall_measure_preimage_mul_right_iff + theorem MeasureTheory.map_div_right_ae + theorem MeasureTheory.map_div_right_eq_self + theorem MeasureTheory.map_mul_left_ae + theorem MeasureTheory.map_mul_left_eq_self + theorem MeasureTheory.map_mul_right_ae + theorem MeasureTheory.map_mul_right_eq_self + theorem MeasureTheory.measurePreserving_div_right + theorem MeasureTheory.measurePreserving_mul_left + theorem MeasureTheory.measurePreserving_mul_right + theorem MeasureTheory.measure_lt_top_of_isCompact_of_mulLeftInvariant' + theorem MeasureTheory.measure_lt_top_of_isCompact_of_mulLeftInvariant + theorem MeasureTheory.measure_ne_zero_iff_nonempty_of_mulLeftInvariant + theorem MeasureTheory.measure_pos_iff_nonempty_of_mulLeftInvariant + theorem MeasureTheory.measure_preimage_mul + theorem MeasureTheory.measure_preimage_mul_right + theorem MeasureTheory.measure_univ_of_mulLeftInvariant + theorem MeasureTheory.mulLeftInvariant_map + theorem MeasureTheory.null_iff_of_mulLeftInvariant + theorem MeasureTheory.openPosMeasure_of_mulLeftInvariant_of_compact + theorem MeasureTheory.openPosMeasure_of_mulLeftInvariant_of_regular + theorem MeasureTheory.regular_inv_iff 2023-05-30 10:47:22 9300e8a feat: port Analysis.Calculus.DiffContOnCl (#4492) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/Calculus/DiffContOnCl.lean + theorem DiffContOnCl.add + theorem DiffContOnCl.add_const + theorem DiffContOnCl.comp + theorem DiffContOnCl.const_add + theorem DiffContOnCl.const_smul + theorem DiffContOnCl.const_sub + theorem DiffContOnCl.continuousOn_ball + theorem DiffContOnCl.differentiable_at' + theorem DiffContOnCl.inv + theorem DiffContOnCl.mk_ball + theorem DiffContOnCl.neg + theorem DiffContOnCl.smul + theorem DiffContOnCl.smul_const + theorem DiffContOnCl.sub + theorem DiffContOnCl.sub_const + structure DiffContOnCl + theorem Differentiable.comp_diffContOnCl + theorem Differentiable.diffContOnCl + theorem DifferentiableOn.diffContOnCl + theorem DifferentiableOn.diffContOnCl_ball + theorem IsClosed.diffContOnCl_iff + theorem diffContOnCl_const + theorem diffContOnCl_univ 2023-05-30 09:54:43 12c5da0 feat: port NumberTheory.LSeries (#4495) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/NumberTheory/LSeries.lean + def Nat.ArithmeticFunction.LSeries + def Nat.ArithmeticFunction.LSeriesSummable + theorem Nat.ArithmeticFunction.LSeriesSummable_iff_of_re_eq_re + theorem Nat.ArithmeticFunction.LSeriesSummable_of_bounded_of_one_lt_re + theorem Nat.ArithmeticFunction.LSeriesSummable_of_bounded_of_one_lt_real + theorem Nat.ArithmeticFunction.LSeriesSummable_zero + theorem Nat.ArithmeticFunction.LSeries_add + theorem Nat.ArithmeticFunction.LSeries_eq_zero_of_not_LSeriesSummable + theorem Nat.ArithmeticFunction.zeta_LSeriesSummable_iff_one_lt_re 2023-05-30 09:32:47 541bcf2 feat: port NumberTheory.VonMangoldt (#4494) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/NumberTheory/VonMangoldt.lean + theorem Nat.ArithmeticFunction.log_apply + theorem Nat.ArithmeticFunction.log_mul_moebius_eq_vonMangoldt + theorem Nat.ArithmeticFunction.moebius_mul_log_eq_vonMangoldt + theorem Nat.ArithmeticFunction.sum_moebius_mul_log_eq + theorem Nat.ArithmeticFunction.vonMangoldt_apply + theorem Nat.ArithmeticFunction.vonMangoldt_apply_one + theorem Nat.ArithmeticFunction.vonMangoldt_apply_pow + theorem Nat.ArithmeticFunction.vonMangoldt_apply_prime + theorem Nat.ArithmeticFunction.vonMangoldt_eq_zero_iff + theorem Nat.ArithmeticFunction.vonMangoldt_le_log + theorem Nat.ArithmeticFunction.vonMangoldt_mul_zeta + theorem Nat.ArithmeticFunction.vonMangoldt_ne_zero_iff + theorem Nat.ArithmeticFunction.vonMangoldt_nonneg + theorem Nat.ArithmeticFunction.vonMangoldt_pos_iff + theorem Nat.ArithmeticFunction.vonMangoldt_sum + theorem Nat.ArithmeticFunction.zeta_mul_vonMangoldt 2023-05-30 09:11:57 e9ab1b4 feat: port Topology.Sheaves.Stalks (#4449) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Topology/Sheaves/Stalks.lean + theorem TopCat.Presheaf.app_bijective_of_stalkFunctor_map_bijective + theorem TopCat.Presheaf.app_injective_iff_stalkFunctor_map_injective + theorem TopCat.Presheaf.app_injective_of_stalkFunctor_map_injective + theorem TopCat.Presheaf.app_isIso_of_stalkFunctor_map_iso + theorem TopCat.Presheaf.app_surjective_of_injective_of_locally_surjective + theorem TopCat.Presheaf.app_surjective_of_stalkFunctor_map_bijective + def TopCat.Presheaf.germ + def TopCat.Presheaf.germToPullbackStalk + theorem TopCat.Presheaf.germ_eq + theorem TopCat.Presheaf.germ_exist + theorem TopCat.Presheaf.germ_ext + theorem TopCat.Presheaf.germ_res + theorem TopCat.Presheaf.germ_stalkSpecializes + theorem TopCat.Presheaf.germ_stalk_specializes' + theorem TopCat.Presheaf.isIso_iff_stalkFunctor_map_iso + theorem TopCat.Presheaf.isIso_of_stalkFunctor_map_iso + theorem TopCat.Presheaf.mono_iff_stalk_mono + theorem TopCat.Presheaf.mono_of_stalk_mono + theorem TopCat.Presheaf.section_ext + def TopCat.Presheaf.stalk + def TopCat.Presheaf.stalkCongr + def TopCat.Presheaf.stalkFunctor + theorem TopCat.Presheaf.stalkFunctor_map_germ + theorem TopCat.Presheaf.stalkFunctor_map_injective_of_app_injective + theorem TopCat.Presheaf.stalkFunctor_obj + def TopCat.Presheaf.stalkPullbackHom + def TopCat.Presheaf.stalkPullbackInv + def TopCat.Presheaf.stalkPullbackIso + theorem TopCat.Presheaf.stalkPushforward.comp + theorem TopCat.Presheaf.stalkPushforward.id + theorem TopCat.Presheaf.stalkPushforward.stalkPushforward_iso_of_openEmbedding + def TopCat.Presheaf.stalkPushforward + theorem TopCat.Presheaf.stalkPushforward_germ + theorem TopCat.Presheaf.stalkSpecializes_comp + theorem TopCat.Presheaf.stalkSpecializes_refl + theorem TopCat.Presheaf.stalkSpecializes_stalkFunctor_map + theorem TopCat.Presheaf.stalkSpecializes_stalkPushforward + theorem TopCat.Presheaf.stalk_hom_ext + theorem TopCat.Presheaf.stalk_mono_of_mono + theorem TopCat.Presheaf.stalk_open_algebraMap 2023-05-30 08:46:41 76b688b feat: port MeasureTheory.Group.Action (#4431) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/MeasureTheory/Group/Action.lean + theorem MeasureTheory.NullMeasurableSet.smul + theorem MeasureTheory.locallyFiniteMeasure_of_smulInvariant + theorem MeasureTheory.map_smul + theorem MeasureTheory.measurePreserving_smul + theorem MeasureTheory.measure_eq_zero_iff_eq_empty_of_smulInvariant + theorem MeasureTheory.measure_isOpen_pos_of_smulInvariant_of_compact_ne_zero + theorem MeasureTheory.measure_isOpen_pos_of_smulInvariant_of_ne_zero + theorem MeasureTheory.measure_pos_iff_nonempty_of_smulInvariant + theorem MeasureTheory.measure_preimage_smul + theorem MeasureTheory.measure_smul + theorem MeasureTheory.measure_smul_null + theorem MeasureTheory.smulInvariantMeasure_tfae + theorem MeasureTheory.smul_ae_eq_self_of_mem_zpowers + theorem MeasureTheory.vadd_ae_eq_self_of_mem_zmultiples 2023-05-30 08:46:40 7e873bb feat: port Topology.Algebra.ContinuousMonoidHom (#4162) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Topology/Algebra/ContinuousMonoidHom.lean + structure ContinuousAddMonoidHom + theorem ContinuousMonoidHom.closedEmbedding_toContinuousMap + def ContinuousMonoidHom.comp + def ContinuousMonoidHom.compLeft + def ContinuousMonoidHom.compRight + theorem ContinuousMonoidHom.continuous_comp + theorem ContinuousMonoidHom.continuous_comp_left + theorem ContinuousMonoidHom.continuous_comp_right + theorem ContinuousMonoidHom.continuous_of_continuous_uncurry + def ContinuousMonoidHom.coprod + def ContinuousMonoidHom.diag + theorem ContinuousMonoidHom.embedding_toContinuousMap + theorem ContinuousMonoidHom.ext + def ContinuousMonoidHom.fst + def ContinuousMonoidHom.id + theorem ContinuousMonoidHom.inducing_toContinuousMap + def ContinuousMonoidHom.inl + def ContinuousMonoidHom.inr + def ContinuousMonoidHom.inv + def ContinuousMonoidHom.mk' + def ContinuousMonoidHom.mul + def ContinuousMonoidHom.one + def ContinuousMonoidHom.prod + def ContinuousMonoidHom.prod_map + def ContinuousMonoidHom.snd + def ContinuousMonoidHom.swap + def ContinuousMonoidHom.toContinuousMap + theorem ContinuousMonoidHom.toContinuousMap_injective + structure ContinuousMonoidHom + theorem PontryaginDual.map_apply + theorem PontryaginDual.map_comp + theorem PontryaginDual.map_mul' + theorem PontryaginDual.map_one + def PontryaginDual 2023-05-30 08:23:50 6e4598a feat: port Analysis.Calculus.Dslope (#4491) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/Calculus/Dslope.lean + theorem ContinuousAt.of_dslope + theorem ContinuousLinearMap.dslope_comp + theorem ContinuousOn.of_dslope + theorem ContinuousWithinAt.of_dslope + theorem DifferentiableAt.of_dslope + theorem DifferentiableOn.of_dslope + theorem DifferentiableWithinAt.of_dslope + theorem continuousAt_dslope_of_ne + theorem continuousAt_dslope_same + theorem continuousOn_dslope + theorem continuousWithinAt_dslope_of_ne + theorem differentiableAt_dslope_of_ne + theorem differentiableOn_dslope_of_nmem + theorem differentiableWithinAt_dslope_of_ne + theorem dslope_eventuallyEq_slope_of_ne + theorem dslope_eventuallyEq_slope_punctured_nhds + theorem dslope_of_ne + theorem dslope_same + theorem dslope_sub_smul + theorem dslope_sub_smul_of_ne + theorem eqOn_dslope_slope + theorem eqOn_dslope_sub_smul + theorem sub_smul_dslope 2023-05-30 07:31:14 0e56a9e feat: port CategoryTheory.Abelian.LeftDerived (#4477) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Abelian/LeftDerived.lean + theorem CategoryTheory.Abelian.Functor.exact_of_map_ProjectiveResolution + def CategoryTheory.Abelian.Functor.leftDerivedZeroIsoSelf + def CategoryTheory.Abelian.Functor.leftDerivedZeroToSelfApp + def CategoryTheory.Abelian.Functor.leftDerivedZeroToSelfAppInv + theorem CategoryTheory.Abelian.Functor.leftDerivedZeroToSelfAppInv_comp + def CategoryTheory.Abelian.Functor.leftDerivedZeroToSelfAppIso + theorem CategoryTheory.Abelian.Functor.leftDerivedZeroToSelfApp_comp_inv + theorem CategoryTheory.Abelian.Functor.leftDerived_zero_to_self_natural + theorem CategoryTheory.Abelian.Functor.preserves_exact_of_PreservesFiniteColimits_of_epi 2023-05-30 07:31:13 992857a perf: replace solveByElim by DFS in TFAE (#4422) This is an alternative to #4154, where rather than replacing the backend of TFAE with the `scc` tactic we use limited forward reasoning to apply `Iff.mp` and `Iff.mpr` to iff hypotheses, and use a manual DFS implementation to find a path through the graph. (A previous version of this PR used solveByElim, but the implications can have irrelevant structure which confuses `apply` and hence `solve_by_elim` as well.) The implementation is now *very* fast, and takes no measurable time on the test file. ESTIMATED CHANGES Modified Mathlib/Tactic/TFAE.lean +/- def Mathlib.Tactic.TFAE.mkImplType +/- def Mathlib.Tactic.TFAE.mkTFAEHypName +/- def Mathlib.Tactic.TFAE.proveImpl +/- def Mathlib.Tactic.TFAE.proveTFAE Modified test/tfae.lean 2023-05-30 07:01:28 9001542 feat: port CategoryTheory.Bicategory.SingleObj (#4489) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Bicategory/SingleObj.lean + def CategoryTheory.MonoidalSingleObj.endMonoidalStarFunctor + def CategoryTheory.MonoidalSingleObj 2023-05-30 07:01:26 56e4133 feat: port Analysis.InnerProductSpace.GramSchmidtOrtho (#4473) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/InnerProductSpace/GramSchmidtOrtho.lean + theorem coe_gramSchmidtBasis + theorem gramSchmidtNormed_unit_length' + theorem gramSchmidtNormed_unit_length + theorem gramSchmidtNormed_unit_length_coe + theorem gramSchmidtOrthonormalBasis_apply + theorem gramSchmidtOrthonormalBasis_apply_of_orthogonal + theorem gramSchmidtOrthonormalBasis_det + theorem gramSchmidtOrthonormalBasis_inv_blockTriangular + theorem gramSchmidtOrthonormalBasis_inv_triangular' + theorem gramSchmidtOrthonormalBasis_inv_triangular + theorem gramSchmidt_def'' + theorem gramSchmidt_def' + theorem gramSchmidt_def + theorem gramSchmidt_inv_triangular + theorem gramSchmidt_linearIndependent + theorem gramSchmidt_mem_span + theorem gramSchmidt_ne_zero + theorem gramSchmidt_ne_zero_coe + theorem gramSchmidt_of_orthogonal + theorem gramSchmidt_orthogonal + theorem gramSchmidt_orthonormal' + theorem gramSchmidt_orthonormal + theorem gramSchmidt_pairwise_orthogonal + theorem gramSchmidt_triangular + theorem gramSchmidt_zero + theorem inner_gramSchmidtOrthonormalBasis_eq_zero + theorem mem_span_gramSchmidt + theorem span_gramSchmidt + theorem span_gramSchmidtNormed + theorem span_gramSchmidtNormed_range + theorem span_gramSchmidt_Iic + theorem span_gramSchmidt_Iio 2023-05-30 07:01:25 c57f43b feat: port Algebra.Category.ModuleCat.Adjunctions (#4457) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Category/ModuleCat/Adjunctions.lean + def CategoryTheory.Free.embedding + def CategoryTheory.Free.embeddingLiftIso + def CategoryTheory.Free.ext + def CategoryTheory.Free.lift + def CategoryTheory.Free.liftUnique + theorem CategoryTheory.Free.lift_map_single + def CategoryTheory.Free.of + theorem CategoryTheory.Free.single_comp_single + def CategoryTheory.Free + theorem ModuleCat.Free.associativity + theorem ModuleCat.Free.left_unitality + theorem ModuleCat.Free.right_unitality + def ModuleCat.Free.ε + theorem ModuleCat.Free.ε_apply + def ModuleCat.Free.μ + theorem ModuleCat.Free.μ_natural + def ModuleCat.adj + def ModuleCat.free + def ModuleCat.monoidalFree 2023-05-30 07:01:24 a206a3e feat: port Analysis.Calculus.Deriv.Inv (#4443) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/Calculus/Deriv/Inv.lean + theorem Differentiable.div + theorem Differentiable.inv + theorem DifferentiableAt.div + theorem DifferentiableAt.inv + theorem DifferentiableOn.div + theorem DifferentiableOn.inv + theorem DifferentiableWithinAt.div + theorem DifferentiableWithinAt.inv + theorem HasDerivAt.div + theorem HasDerivAt.inv + theorem HasDerivWithinAt.div + theorem HasDerivWithinAt.inv + theorem HasStrictDerivAt.div + theorem derivWithin_div + theorem derivWithin_inv' + theorem derivWithin_inv + theorem deriv_div + theorem deriv_inv'' + theorem deriv_inv' + theorem deriv_inv + theorem differentiableAt_inv + theorem differentiableOn_inv + theorem differentiableWithinAt_inv + theorem fderivWithin_inv + theorem fderiv_inv + theorem hasDerivAt_inv + theorem hasDerivWithinAt_inv + theorem hasFDerivAt_inv + theorem hasFDerivWithinAt_inv + theorem hasStrictDerivAt_inv 2023-05-30 06:41:25 5c0483b feat: port NumberTheory.ArithmeticFunction (#4358) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/NumberTheory/ArithmeticFunction.lean + theorem Nat.ArithmeticFunction.IsMultiplicative.eq_iff_eq_on_prime_powers + theorem Nat.ArithmeticFunction.IsMultiplicative.iff_ne_zero + theorem Nat.ArithmeticFunction.IsMultiplicative.int_cast + theorem Nat.ArithmeticFunction.IsMultiplicative.map_mul_of_coprime + theorem Nat.ArithmeticFunction.IsMultiplicative.map_one + theorem Nat.ArithmeticFunction.IsMultiplicative.map_prod + theorem Nat.ArithmeticFunction.IsMultiplicative.mul + theorem Nat.ArithmeticFunction.IsMultiplicative.multiplicative_factorization + theorem Nat.ArithmeticFunction.IsMultiplicative.nat_cast + theorem Nat.ArithmeticFunction.IsMultiplicative.pmul + theorem Nat.ArithmeticFunction.IsMultiplicative.ppow + def Nat.ArithmeticFunction.IsMultiplicative + theorem Nat.ArithmeticFunction.add_apply + def Nat.ArithmeticFunction.cardDistinctFactors + theorem Nat.ArithmeticFunction.cardDistinctFactors_apply + theorem Nat.ArithmeticFunction.cardDistinctFactors_apply_prime + theorem Nat.ArithmeticFunction.cardDistinctFactors_apply_prime_pow + theorem Nat.ArithmeticFunction.cardDistinctFactors_eq_cardFactors_iff_squarefree + theorem Nat.ArithmeticFunction.cardDistinctFactors_one + theorem Nat.ArithmeticFunction.cardDistinctFactors_zero + def Nat.ArithmeticFunction.cardFactors + theorem Nat.ArithmeticFunction.cardFactors_apply + theorem Nat.ArithmeticFunction.cardFactors_apply_prime + theorem Nat.ArithmeticFunction.cardFactors_apply_prime_pow + theorem Nat.ArithmeticFunction.cardFactors_eq_one_iff_prime + theorem Nat.ArithmeticFunction.cardFactors_mul + theorem Nat.ArithmeticFunction.cardFactors_multiset_prod + theorem Nat.ArithmeticFunction.cardFactors_one + theorem Nat.ArithmeticFunction.coe_coe + theorem Nat.ArithmeticFunction.coe_inj + theorem Nat.ArithmeticFunction.coe_mk + theorem Nat.ArithmeticFunction.coe_moebius_mul_coe_zeta + theorem Nat.ArithmeticFunction.coe_mul_zeta_apply + theorem Nat.ArithmeticFunction.coe_zetaUnit + theorem Nat.ArithmeticFunction.coe_zeta_mul_apply + theorem Nat.ArithmeticFunction.coe_zeta_mul_coe_moebius + theorem Nat.ArithmeticFunction.coe_zeta_mul_moebius + theorem Nat.ArithmeticFunction.coe_zeta_smul_apply + theorem Nat.ArithmeticFunction.ext + theorem Nat.ArithmeticFunction.ext_iff + def Nat.ArithmeticFunction.id + theorem Nat.ArithmeticFunction.id_apply + theorem Nat.ArithmeticFunction.intCoe_apply + theorem Nat.ArithmeticFunction.intCoe_int + theorem Nat.ArithmeticFunction.intCoe_mul + theorem Nat.ArithmeticFunction.intCoe_one + theorem Nat.ArithmeticFunction.inv_zetaUnit + theorem Nat.ArithmeticFunction.isMultiplicative_id + theorem Nat.ArithmeticFunction.isMultiplicative_moebius + theorem Nat.ArithmeticFunction.isMultiplicative_one + theorem Nat.ArithmeticFunction.isMultiplicative_pow + theorem Nat.ArithmeticFunction.isMultiplicative_sigma + theorem Nat.ArithmeticFunction.isMultiplicative_zeta + theorem Nat.ArithmeticFunction.map_zero + def Nat.ArithmeticFunction.moebius + theorem Nat.ArithmeticFunction.moebius_apply_isPrimePow_not_prime + theorem Nat.ArithmeticFunction.moebius_apply_of_squarefree + theorem Nat.ArithmeticFunction.moebius_apply_one + theorem Nat.ArithmeticFunction.moebius_apply_prime + theorem Nat.ArithmeticFunction.moebius_apply_prime_pow + theorem Nat.ArithmeticFunction.moebius_eq_zero_of_not_squarefree + theorem Nat.ArithmeticFunction.moebius_mul_coe_zeta + theorem Nat.ArithmeticFunction.moebius_ne_zero_iff_eq_or + theorem Nat.ArithmeticFunction.moebius_ne_zero_iff_squarefree + theorem Nat.ArithmeticFunction.mul_apply + theorem Nat.ArithmeticFunction.mul_apply_one + theorem Nat.ArithmeticFunction.mul_smul' + theorem Nat.ArithmeticFunction.mul_zeta_apply + theorem Nat.ArithmeticFunction.natCoe_apply + theorem Nat.ArithmeticFunction.natCoe_mul + theorem Nat.ArithmeticFunction.natCoe_nat + theorem Nat.ArithmeticFunction.natCoe_one + def Nat.ArithmeticFunction.natToArithmeticFunction + def Nat.ArithmeticFunction.ofInt + theorem Nat.ArithmeticFunction.one_apply + theorem Nat.ArithmeticFunction.one_apply_ne + theorem Nat.ArithmeticFunction.one_one + theorem Nat.ArithmeticFunction.one_smul' + def Nat.ArithmeticFunction.pmul + theorem Nat.ArithmeticFunction.pmul_apply + theorem Nat.ArithmeticFunction.pmul_comm + theorem Nat.ArithmeticFunction.pmul_zeta + def Nat.ArithmeticFunction.pow + theorem Nat.ArithmeticFunction.pow_apply + theorem Nat.ArithmeticFunction.pow_zero_eq_zeta + def Nat.ArithmeticFunction.ppow + theorem Nat.ArithmeticFunction.ppow_apply + theorem Nat.ArithmeticFunction.ppow_succ' + theorem Nat.ArithmeticFunction.ppow_succ + theorem Nat.ArithmeticFunction.ppow_zero + theorem Nat.ArithmeticFunction.prod_eq_iff_prod_pow_moebius_eq + theorem Nat.ArithmeticFunction.prod_eq_iff_prod_pow_moebius_eq_of_nonzero + def Nat.ArithmeticFunction.sigma + theorem Nat.ArithmeticFunction.sigma_apply + theorem Nat.ArithmeticFunction.sigma_one_apply + theorem Nat.ArithmeticFunction.sigma_zero_apply + theorem Nat.ArithmeticFunction.sigma_zero_apply_prime_pow + theorem Nat.ArithmeticFunction.smul_apply + theorem Nat.ArithmeticFunction.sum_eq_iff_sum_mul_moebius_eq + theorem Nat.ArithmeticFunction.sum_eq_iff_sum_smul_moebius_eq + theorem Nat.ArithmeticFunction.toFun_eq + theorem Nat.ArithmeticFunction.zero_apply + def Nat.ArithmeticFunction.zeta + def Nat.ArithmeticFunction.zetaUnit + theorem Nat.ArithmeticFunction.zeta_apply + theorem Nat.ArithmeticFunction.zeta_apply_ne + theorem Nat.ArithmeticFunction.zeta_mul_apply + theorem Nat.ArithmeticFunction.zeta_mul_pow_eq_sigma + theorem Nat.ArithmeticFunction.zeta_pmul + def Nat.ArithmeticFunction 2023-05-30 06:20:54 e28e13f feat: port MeasureTheory.Category.Meas (#4487) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/MeasureTheory/Category/MeasCat.lean + def Borel + def MeasCat.Giry + def MeasCat.Integral + def MeasCat.Measure + theorem MeasCat.coe_of + def MeasCat.of + def MeasCat 2023-05-30 06:20:53 6e60154 feat: port MeasureTheory.Decomposition.SignedHahn (#4480) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/MeasureTheory/Decomposition/SignedHahn.lean + theorem MeasureTheory.SignedMeasure.bddBelow_measureOfNegatives + theorem MeasureTheory.SignedMeasure.exists_compl_positive_negative + theorem MeasureTheory.SignedMeasure.exists_isCompl_positive_negative + theorem MeasureTheory.SignedMeasure.exists_subset_restrict_nonpos + def MeasureTheory.SignedMeasure.measureOfNegatives + theorem MeasureTheory.SignedMeasure.of_symmDiff_compl_positive_negative + theorem MeasureTheory.SignedMeasure.zero_mem_measureOfNegatives 2023-05-30 06:20:52 8077254 feat: port Topology.TietzeExtension (#4246) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Topology/TietzeExtension.lean + theorem BoundedContinuousFunction.exists_extension_forall_exists_le_ge_of_closedEmbedding + theorem BoundedContinuousFunction.exists_extension_forall_mem_Icc_of_closedEmbedding + theorem BoundedContinuousFunction.exists_extension_forall_mem_of_closedEmbedding + theorem BoundedContinuousFunction.exists_extension_norm_eq_of_closedEmbedding' + theorem BoundedContinuousFunction.exists_extension_norm_eq_of_closedEmbedding + theorem BoundedContinuousFunction.exists_forall_mem_restrict_eq_of_closed + theorem BoundedContinuousFunction.exists_norm_eq_restrict_eq_of_closed + theorem BoundedContinuousFunction.tietze_extension_step + theorem ContinuousMap.exists_extension_forall_mem_of_closedEmbedding + theorem ContinuousMap.exists_extension_of_closedEmbedding + theorem ContinuousMap.exists_restrict_eq_forall_mem_of_closed + theorem ContinuousMap.exists_restrict_eq_of_closed 2023-05-30 06:01:00 4acdb59 feat: port Data.Real.GoldenRatio (#4332) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Data/Real/GoldenRatio.lean + theorem Real.coe_fib_eq' + theorem Real.coe_fib_eq + def fibRec + theorem fibRec_charPoly_eq + theorem fib_isSol_fibRec + theorem geom_goldConj_isSol_fibRec + theorem geom_gold_isSol_fibRec + theorem goldConj_irrational + theorem goldConj_mul_gold + theorem goldConj_ne_zero + theorem goldConj_neg + theorem goldConj_sq + theorem gold_add_goldConj + theorem gold_irrational + theorem gold_mul_goldConj + theorem gold_ne_zero + theorem gold_pos + theorem gold_sq + theorem gold_sub_goldConj + def goldenConj + def goldenRatio + theorem inv_gold + theorem inv_goldConj + theorem neg_one_lt_goldConj + theorem one_lt_gold + theorem one_sub_gold + theorem one_sub_goldConj 2023-05-30 04:33:25 15f033d feat: port Topology.Instances.Discrete (#4479) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Topology/Instances/Discrete.lean + theorem LinearOrder.bot_topologicalSpace_eq_generateFrom + theorem bot_topologicalSpace_eq_generateFrom_of_pred_succOrder + theorem discreteTopology_iff_orderTopology_of_pred_succ' + theorem discreteTopology_iff_orderTopology_of_pred_succ 2023-05-30 04:13:54 2a8387a feat: port Analysis.Calculus.Darboux (#4483) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/Calculus/Darboux.lean + theorem convex_image_hasDerivAt + theorem deriv_forall_lt_or_forall_gt_of_forall_ne + theorem exists_hasDerivWithinAt_eq_of_gt_of_lt + theorem exists_hasDerivWithinAt_eq_of_lt_of_gt 2023-05-30 03:21:15 de26a77 feat: port CategoryTheory.Abelian.Ext (#4401) Apologies about the git history, a whole chain of PRs have been opened before the previous one was merged. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Abelian/Ext.lean + def Ext + def extSuccOfProjective 2023-05-29 23:41:30 5519d19 feat: forward-port 19107 (#4470) Forward-port leanprover-community/mathlib#19107 ESTIMATED CHANGES Modified Mathlib/Analysis/NormedSpace/OperatorNorm.lean - def ContinuousLinearEquiv.arrowCongr - def ContinuousLinearEquiv.arrowCongrSL Modified Mathlib/Analysis/NormedSpace/PiLp.lean - theorem PiLp.continuousLinearEquiv_invFun Modified Mathlib/Topology/Algebra/Module/Basic.lean Modified Mathlib/Topology/Algebra/Module/StrongTopology.lean + def ContinuousLinearEquiv.arrowCongr + def ContinuousLinearEquiv.arrowCongrSL + def ContinuousLinearEquiv.arrowCongrₛₗ + theorem ContinuousLinearEquiv.arrowCongrₛₗ_continuous Modified Mathlib/Topology/Constructions.lean + theorem inducing_const_prod + theorem inducing_prod_const Modified Mathlib/Topology/FiberBundle/Basic.lean - def FiberPrebundle.fiberTopology - theorem FiberPrebundle.inducing_totalSpaceMk + theorem FiberPrebundle.inducing_totalSpaceMk_of_inducing_comp +/- def FiberPrebundle.toFiberBundle Modified Mathlib/Topology/VectorBundle/Basic.lean - def VectorPrebundle.fiberTopology - theorem VectorPrebundle.inducing_totalSpaceMk +/- def VectorPrebundle.toFiberBundle 2023-05-29 20:52:58 328546c fix: make universe variable unique (#4474) ESTIMATED CHANGES Modified Mathlib/Init/Function.lean 2023-05-29 19:05:22 3318c2d feat: port Analysis.Calculus.LocalExtr (#4247) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/Calculus/LocalExtr.lean + theorem IsLocalExtr.deriv_eq_zero + theorem IsLocalExtr.fderiv_eq_zero + theorem IsLocalExtr.hasDerivAt_eq_zero + theorem IsLocalExtr.hasFDerivAt_eq_zero + theorem IsLocalMax.deriv_eq_zero + theorem IsLocalMax.fderiv_eq_zero + theorem IsLocalMax.hasDerivAt_eq_zero + theorem IsLocalMax.hasFDerivAt_eq_zero + theorem IsLocalMaxOn.fderivWithin_eq_zero + theorem IsLocalMaxOn.fderivWithin_nonpos + theorem IsLocalMaxOn.hasFDerivWithinAt_eq_zero + theorem IsLocalMaxOn.hasFDerivWithinAt_nonpos + theorem IsLocalMin.deriv_eq_zero + theorem IsLocalMin.fderiv_eq_zero + theorem IsLocalMin.hasDerivAt_eq_zero + theorem IsLocalMin.hasFDerivAt_eq_zero + theorem IsLocalMinOn.fderivWithin_eq_zero + theorem IsLocalMinOn.fderivWithin_nonneg + theorem IsLocalMinOn.hasFDerivWithinAt_eq_zero + theorem IsLocalMinOn.hasFDerivWithinAt_nonneg + theorem Polynomial.card_rootSet_le_derivative + theorem Polynomial.card_roots_le_derivative + theorem Polynomial.card_roots_toFinset_le_card_roots_derivative_diff_roots_succ + theorem Polynomial.card_roots_toFinset_le_derivative + theorem exists_Ioo_extr_on_Icc + theorem exists_deriv_eq_zero' + theorem exists_deriv_eq_zero + theorem exists_hasDerivAt_eq_zero' + theorem exists_hasDerivAt_eq_zero + theorem exists_local_extr_Ioo + theorem mem_posTangentConeAt_of_segment_subset' + theorem mem_posTangentConeAt_of_segment_subset + def posTangentConeAt + theorem posTangentConeAt_mono + theorem posTangentConeAt_univ 2023-05-29 19:05:21 57072ed feat: port Topology.MetricSpace.MetrizableUniformity (#4229) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Topology/MetricSpace/MetrizableUniformity.lean + theorem PseudoMetricSpace.dist_ofPreNNDist + theorem PseudoMetricSpace.dist_ofPreNNDist_le + theorem PseudoMetricSpace.le_two_mul_dist_ofPreNNDist + theorem UniformSpace.metrizableSpace 2023-05-29 18:40:11 1196ccc feat: port Analysis.Calculus.FDerivMeasurable (#4468) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/Calculus/FDerivMeasurable.lean + theorem ContinuousLinearMap.measurable_apply₂ + def FDerivMeasurableAux.A + def FDerivMeasurableAux.B + def FDerivMeasurableAux.D + theorem FDerivMeasurableAux.a_mono + theorem FDerivMeasurableAux.d_subset_differentiable_set + theorem FDerivMeasurableAux.differentiable_set_eq_d + theorem FDerivMeasurableAux.differentiable_set_subset_d + theorem FDerivMeasurableAux.isOpen_a + theorem FDerivMeasurableAux.isOpen_b + theorem FDerivMeasurableAux.le_of_mem_a + theorem FDerivMeasurableAux.mem_a_of_differentiable + theorem FDerivMeasurableAux.norm_sub_le_of_mem_a + def RightDerivMeasurableAux.A + def RightDerivMeasurableAux.B + def RightDerivMeasurableAux.D + theorem RightDerivMeasurableAux.a_mem_nhdsWithin_Ioi + theorem RightDerivMeasurableAux.a_mono + theorem RightDerivMeasurableAux.b_mem_nhdsWithin_Ioi + theorem RightDerivMeasurableAux.d_subset_differentiable_set + theorem RightDerivMeasurableAux.differentiable_set_eq_d + theorem RightDerivMeasurableAux.differentiable_set_subset_d + theorem RightDerivMeasurableAux.le_of_mem_a + theorem RightDerivMeasurableAux.measurableSet_b + theorem RightDerivMeasurableAux.mem_a_of_differentiable + theorem RightDerivMeasurableAux.norm_sub_le_of_mem_a + theorem aemeasurable_deriv + theorem aemeasurable_derivWithin_Ici + theorem aemeasurable_derivWithin_Ioi + theorem aestronglyMeasurable_deriv + theorem aestronglyMeasurable_derivWithin_Ici + theorem aestronglyMeasurable_derivWithin_Ioi + theorem measurableSet_of_differentiableAt + theorem measurableSet_of_differentiableAt_of_isComplete + theorem measurableSet_of_differentiableWithinAt_Ici + theorem measurableSet_of_differentiableWithinAt_Ici_of_isComplete + theorem measurableSet_of_differentiableWithinAt_Ioi + theorem measurable_deriv + theorem measurable_derivWithin_Ici + theorem measurable_derivWithin_Ioi + theorem measurable_fderiv + theorem measurable_fderiv_apply_const + theorem stronglyMeasurable_deriv + theorem stronglyMeasurable_derivWithin_Ici + theorem stronglyMeasurable_derivWithin_Ioi 2023-05-29 14:57:27 5f0e28c feat: port CategoryTheory.Monoidal.CoherenceLemmas (#4359) - [x] depends on: #4357 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Monoidal/CoherenceLemmas.lean + theorem CategoryTheory.MonoidalCategory.id_tensor_rightUnitor_inv + theorem CategoryTheory.MonoidalCategory.leftUnitor_inv_tensor_id + theorem CategoryTheory.MonoidalCategory.leftUnitor_tensor' + theorem CategoryTheory.MonoidalCategory.leftUnitor_tensor + theorem CategoryTheory.MonoidalCategory.leftUnitor_tensor_inv + theorem CategoryTheory.MonoidalCategory.pentagon_hom_inv + theorem CategoryTheory.MonoidalCategory.pentagon_inv_hom + theorem CategoryTheory.MonoidalCategory.pentagon_inv_inv_hom + theorem CategoryTheory.MonoidalCategory.triangle_assoc_comp_right_inv + theorem CategoryTheory.MonoidalCategory.unitors_equal + theorem CategoryTheory.MonoidalCategory.unitors_inv_equal 2023-05-29 14:32:40 6e48706 feat: port MeasureTheory.Measure.Complex (#4471) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/MeasureTheory/Measure/Complex.lean + theorem MeasureTheory.ComplexMeasure.absolutelyContinuous_eNNReal_iff + def MeasureTheory.ComplexMeasure.equivSignedMeasure + def MeasureTheory.ComplexMeasure.equivSignedMeasureₗ + def MeasureTheory.ComplexMeasure.im + def MeasureTheory.ComplexMeasure.re + theorem MeasureTheory.ComplexMeasure.toComplexMeasure_to_signedMeasure + theorem MeasureTheory.SignedMeasure.im_toComplexMeasure + theorem MeasureTheory.SignedMeasure.re_toComplexMeasure + def MeasureTheory.SignedMeasure.toComplexMeasure + theorem MeasureTheory.SignedMeasure.toComplexMeasure_apply 2023-05-29 13:15:07 ef6c15a feat: port LinearAlgebra.Matrix.Hermitian (#4467) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/LinearAlgebra/Matrix/Hermitian.lean + theorem Matrix.IsHermitian.add + theorem Matrix.IsHermitian.adjugate + theorem Matrix.IsHermitian.apply + theorem Matrix.IsHermitian.coe_re_apply_self + theorem Matrix.IsHermitian.coe_re_diag + theorem Matrix.IsHermitian.conjTranspose + theorem Matrix.IsHermitian.eq + theorem Matrix.IsHermitian.ext + theorem Matrix.IsHermitian.ext_iff + theorem Matrix.IsHermitian.fromBlocks + theorem Matrix.IsHermitian.inv + theorem Matrix.IsHermitian.map + theorem Matrix.IsHermitian.neg + theorem Matrix.IsHermitian.sub + theorem Matrix.IsHermitian.submatrix + theorem Matrix.IsHermitian.transpose + def Matrix.IsHermitian + theorem Matrix.isHermitian_add_transpose_self + theorem Matrix.isHermitian_conjTranspose_iff + theorem Matrix.isHermitian_conjTranspose_mul_mul + theorem Matrix.isHermitian_diagonal + theorem Matrix.isHermitian_diagonal_of_self_adjoint + theorem Matrix.isHermitian_fromBlocks_iff + theorem Matrix.isHermitian_iff_isSymmetric + theorem Matrix.isHermitian_inv + theorem Matrix.isHermitian_mul_conjTranspose_self + theorem Matrix.isHermitian_mul_mul_conjTranspose + theorem Matrix.isHermitian_one + theorem Matrix.isHermitian_submatrix_equiv + theorem Matrix.isHermitian_transpose_add_self + theorem Matrix.isHermitian_transpose_iff + theorem Matrix.isHermitian_transpose_mul_self + theorem Matrix.isHermitian_zero 2023-05-29 12:31:48 63c05ba feat: port RingTheory.Ideal.Cotangent (#4451) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/RingTheory/Ideal/Cotangent.lean + def AlgHom.kerSquareLift + theorem AlgHom.ker_ker_sqare_lift + def Ideal.Cotangent + theorem Ideal.cotangentEquivIdeal_apply + theorem Ideal.cotangentEquivIdeal_symm_apply + def Ideal.cotangentIdeal + theorem Ideal.cotangentIdeal_square + def Ideal.cotangentToQuotientSquare + theorem Ideal.cotangent_subsingleton_iff + theorem Ideal.map_toCotangent_ker + theorem Ideal.mem_toCotangent_ker + def Ideal.quotCotangent + def Ideal.toCotangent + theorem Ideal.toCotangent_eq + theorem Ideal.toCotangent_eq_zero + theorem Ideal.toCotangent_range + theorem Ideal.toCotangent_surjective + theorem Ideal.toCotangent_to_quotient_square + theorem Ideal.to_quotient_square_comp_toCotangent + theorem Ideal.to_quotient_square_range + def LocalRing.CotangentSpace 2023-05-29 12:10:47 ebce4c0 feat: port MeasureTheory.Function.LpOrder (#4374) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/MeasureTheory/Function/LpOrder.lean + theorem MeasureTheory.Lp.coeFn_abs + theorem MeasureTheory.Lp.coeFn_inf + theorem MeasureTheory.Lp.coeFn_le + theorem MeasureTheory.Lp.coeFn_nonneg + theorem MeasureTheory.Lp.coeFn_sup + theorem MeasureTheory.Memℒp.abs + theorem MeasureTheory.Memℒp.inf + theorem MeasureTheory.Memℒp.sup 2023-05-29 10:13:06 46aa58d chore: tidy various files (#4466) ESTIMATED CHANGES Modified Mathlib/Algebra/DirectSum/Internal.lean Modified Mathlib/AlgebraicTopology/FundamentalGroupoid/Basic.lean Modified Mathlib/Analysis/NormedSpace/FiniteDimension.lean Modified Mathlib/CategoryTheory/Abelian/Projective.lean Modified Mathlib/Geometry/Euclidean/Sphere/Basic.lean Modified Mathlib/LinearAlgebra/Matrix/Charpoly/Coeff.lean +/- theorem charmatrix_apply_natDegree_le Modified Mathlib/MeasureTheory/Measure/Stieltjes.lean Modified Mathlib/NumberTheory/LegendreSymbol/MulCharacter.lean + theorem MulChar.equivToUnitHom_symm_coe - theorem MulChar.equiv_unit_hom_symm_coe Modified Mathlib/NumberTheory/Padics/RingHoms.lean + theorem PadicInt.norm_sub_modPart_aux - theorem PadicInt.norm_sub_mod_part_aux Modified Mathlib/RingTheory/Ideal/LocalRing.lean Modified Mathlib/RingTheory/Ideal/Operations.lean Modified Mathlib/RingTheory/JacobsonIdeal.lean Modified Mathlib/Topology/Algebra/Module/FiniteDimension.lean + theorem LinearEquiv.coe_toContinuousLinearEquiv' - theorem LinearEquiv.coe_to_continuous_linear_equiv' + theorem LinearMap.coe_toContinuousLinearMap' - theorem LinearMap.coe_to_continuous_linear_map' Modified Mathlib/Topology/Category/TopCommRingCat.lean Modified Mathlib/Topology/Sheaves/Sheaf.lean - def TopCat.Presheaf.IsSheaf - def TopCat.Sheaf Modified Mathlib/Topology/Sheaves/SheafCondition/EqualizerProducts.lean 2023-05-29 09:35:26 37fa523 feat: port GroupTheory.Sylow (#4387) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/GroupTheory/Sylow.lean + theorem IsPGroup.exists_le_sylow + theorem IsPGroup.inf_normalizer_sylow + theorem IsPGroup.sylow_mem_fixedPoints_iff + theorem QuotientGroup.card_preimage_mk + theorem Subgroup.sylow_mem_fixedPoints_iff + theorem Sylow.card_coprime_index + theorem Sylow.card_eq_multiplicity + theorem Sylow.card_normalizer_modEq_card + theorem Sylow.card_quotient_normalizer_modEq_card_quotient + theorem Sylow.characteristic_of_normal + theorem Sylow.coe_comapOfInjective + theorem Sylow.coe_comapOfKerIsPGroup + theorem Sylow.coe_smul + theorem Sylow.coe_subgroup_smul + theorem Sylow.coe_subtype + def Sylow.comapOfInjective + def Sylow.comapOfKerIsPGroup + theorem Sylow.conj_eq_normalizer_conj_of_mem + theorem Sylow.conj_eq_normalizer_conj_of_mem_centralizer + theorem Sylow.dvd_card_of_dvd_card + theorem Sylow.exists_comap_eq_of_injective + theorem Sylow.exists_comap_eq_of_ker_isPGroup + theorem Sylow.exists_comap_subtype_eq + theorem Sylow.exists_subgroup_card_pow_prime + theorem Sylow.exists_subgroup_card_pow_prime_le + theorem Sylow.exists_subgroup_card_pow_succ + theorem Sylow.ext + theorem Sylow.ext_iff + def Sylow.fixedPointsMulLeftCosetsEquivQuotient + theorem Sylow.mem_fixedPoints_mul_left_cosets_iff_mem_normalizer + theorem Sylow.ne_bot_of_dvd_card + theorem Sylow.normal_of_all_max_subgroups_normal + theorem Sylow.normal_of_normalizerCondition + theorem Sylow.normal_of_normalizer_normal + theorem Sylow.normalizer_normalizer + theorem Sylow.normalizer_sup_eq_top' + theorem Sylow.normalizer_sup_eq_top + theorem Sylow.orbit_eq_top + theorem Sylow.pointwise_smul_def + theorem Sylow.pow_dvd_card_of_pow_dvd_card + theorem Sylow.prime_dvd_card_quotient_normalizer + theorem Sylow.prime_pow_dvd_card_normalizer + theorem Sylow.smul_def + theorem Sylow.smul_eq_iff_mem_normalizer + theorem Sylow.smul_eq_of_normal + theorem Sylow.smul_le + theorem Sylow.smul_subtype + theorem Sylow.stabilizer_eq_normalizer + theorem Sylow.subsingleton_of_normal + theorem Sylow.subtype_injective + structure Sylow + theorem card_sylow_dvd_index + theorem card_sylow_eq_card_quotient_normalizer + theorem card_sylow_eq_index_normalizer + theorem card_sylow_modEq_one + theorem not_dvd_card_sylow + theorem not_dvd_index_sylow' + theorem not_dvd_index_sylow 2023-05-29 09:08:12 1243a0e feat: port Analysis.Calculus.Deriv.Polynomial (#4459) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/Calculus/Deriv/Polynomial.lean 2023-05-29 08:45:19 b2dbc75 chore(RingTheory/AdjoinRoot): modify field instance on AdjoinRoot (#4456) We copy the fields of `GroupWithZero` structure instead of `Field`. This speeds up `AdjoinRoot`. This forward-ports [#19119](https://github.com/leanprover-community/mathlib/pull/19119). We also remove an unused `LibrarySearch` import that was not present in mathlib3. [Zulip discussion](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/!4.234339.20.20FieldTheory.2ESplittingField) ESTIMATED CHANGES Modified Mathlib/RingTheory/AdjoinRoot.lean 2023-05-29 08:45:18 cd203c8 feat: port MeasureTheory.Constructions.Prod.Basic (#4433) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/MeasureTheory/Constructions/Prod/Basic.lean + theorem AEMeasurable.fst + theorem AEMeasurable.prod_swap + theorem AEMeasurable.snd + theorem IsCountablySpanning.prod + theorem IsPiSystem.prod + theorem Measurable.lintegral_prod_left' + theorem Measurable.lintegral_prod_left + theorem Measurable.lintegral_prod_right' + theorem Measurable.lintegral_prod_right + theorem Measurable.map_prod_mk_left + theorem Measurable.map_prod_mk_right + theorem MeasurableEmbedding.prod_mk + theorem MeasureTheory.Measure.AbsolutelyContinuous.prod + theorem MeasureTheory.Measure.add_prod + theorem MeasureTheory.Measure.ae_ae_of_ae_prod + theorem MeasureTheory.Measure.ae_measure_lt_top + theorem MeasureTheory.Measure.dirac_prod + theorem MeasureTheory.Measure.dirac_prod_dirac + theorem MeasureTheory.Measure.fst_apply + theorem MeasureTheory.Measure.fst_univ + theorem MeasureTheory.Measure.map_prod_map + theorem MeasureTheory.Measure.measurePreserving_swap + theorem MeasureTheory.Measure.measure_ae_null_of_prod_null + theorem MeasureTheory.Measure.measure_prod_null + theorem MeasureTheory.Measure.prodAssoc_prod + theorem MeasureTheory.Measure.prod_add + theorem MeasureTheory.Measure.prod_apply + theorem MeasureTheory.Measure.prod_apply_symm + theorem MeasureTheory.Measure.prod_dirac + theorem MeasureTheory.Measure.prod_eq + theorem MeasureTheory.Measure.prod_eq_generateFrom + theorem MeasureTheory.Measure.prod_prod + theorem MeasureTheory.Measure.prod_restrict + theorem MeasureTheory.Measure.prod_sum + theorem MeasureTheory.Measure.prod_swap + theorem MeasureTheory.Measure.prod_zero + theorem MeasureTheory.Measure.quasiMeasurePreserving_fst + theorem MeasureTheory.Measure.quasiMeasurePreserving_snd + theorem MeasureTheory.Measure.restrict_prod_eq_prod_univ + theorem MeasureTheory.Measure.snd_apply + theorem MeasureTheory.Measure.snd_univ + theorem MeasureTheory.Measure.sum_prod + theorem MeasureTheory.Measure.volume_eq_prod + theorem MeasureTheory.Measure.zero_prod + theorem MeasureTheory.MeasurePreserving.skew_product + theorem MeasureTheory.QuasiMeasurePreserving.prod_of_left + theorem MeasureTheory.QuasiMeasurePreserving.prod_of_right + theorem MeasureTheory.lintegral_lintegral + theorem MeasureTheory.lintegral_lintegral_swap + theorem MeasureTheory.lintegral_lintegral_symm + theorem MeasureTheory.lintegral_prod + theorem MeasureTheory.lintegral_prod_mul + theorem MeasureTheory.lintegral_prod_of_measurable + theorem MeasureTheory.lintegral_prod_swap + theorem MeasureTheory.lintegral_prod_symm' + theorem MeasureTheory.lintegral_prod_symm + theorem generateFrom_eq_prod + theorem generateFrom_prod + theorem generateFrom_prod_eq + theorem isPiSystem_prod + theorem measurable_measure_prod_mk_left + theorem measurable_measure_prod_mk_left_finite + theorem measurable_measure_prod_mk_right 2023-05-29 08:45:17 eebd925 feat: port GroupTheory.Complement (#4349) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/GroupTheory/Complement.lean + theorem Subgroup.IsComplement'.card_mul + theorem Subgroup.IsComplement'.disjoint + theorem Subgroup.IsComplement'.index_eq_card + theorem Subgroup.IsComplement'.isCompl + theorem Subgroup.IsComplement'.sup_eq_top + theorem Subgroup.IsComplement'.symm + theorem Subgroup.IsComplement'_bot_left + theorem Subgroup.IsComplement'_bot_right + theorem Subgroup.IsComplement'_bot_top + theorem Subgroup.IsComplement'_comm + theorem Subgroup.IsComplement'_def + theorem Subgroup.IsComplement'_iff_card_mul_and_disjoint + theorem Subgroup.IsComplement'_of_card_mul_and_disjoint + theorem Subgroup.IsComplement'_of_coprime + theorem Subgroup.IsComplement'_of_disjoint_and_mul_eq_univ + theorem Subgroup.IsComplement'_stabilizer + theorem Subgroup.IsComplement'_top_bot + theorem Subgroup.IsComplement'_top_left + theorem Subgroup.IsComplement'_top_right + theorem Subgroup.IsComplement.card_mul + theorem Subgroup.IsComplement.existsUnique + def Subgroup.IsComplement + theorem Subgroup.IsComplement_iff_existsUnique + theorem Subgroup.IsComplement_singleton_left + theorem Subgroup.IsComplement_singleton_right + theorem Subgroup.IsComplement_singleton_top + theorem Subgroup.IsComplement_top_left + theorem Subgroup.IsComplement_top_right + theorem Subgroup.IsComplement_top_singleton + theorem Subgroup.MemLeftTransversals.inv_mul_toFun_mem + theorem Subgroup.MemLeftTransversals.inv_toFun_mul_mem + theorem Subgroup.MemLeftTransversals.mk''_toEquiv + theorem Subgroup.MemLeftTransversals.toEquiv_apply + theorem Subgroup.MemRightTransversals.mk''_toEquiv + theorem Subgroup.MemRightTransversals.mul_inv_toFun_mem + theorem Subgroup.MemRightTransversals.toEquiv_apply + theorem Subgroup.MemRightTransversals.toFun_mul_inv_mem + theorem Subgroup.card_left_transversal + theorem Subgroup.card_right_transversal + theorem Subgroup.coe_transferFunction + theorem Subgroup.exists_left_transversal + theorem Subgroup.exists_right_transversal + def Subgroup.leftTransversals + theorem Subgroup.mem_leftTransversals_iff_bijective + theorem Subgroup.mem_leftTransversals_iff_existsUnique_inv_mul_mem + theorem Subgroup.mem_leftTransversals_iff_existsUnique_quotient_mk''_eq + theorem Subgroup.mem_rightTransversals_iff_bijective + theorem Subgroup.mem_rightTransversals_iff_existsUnique_mul_inv_mem + theorem Subgroup.mem_rightTransversals_iff_existsUnique_quotient_mk''_eq + theorem Subgroup.mem_transferSet + theorem Subgroup.quotientEquivSigmaZmod_apply + theorem Subgroup.quotientEquivSigmaZmod_symm_apply + theorem Subgroup.range_mem_leftTransversals + theorem Subgroup.range_mem_rightTransversals + def Subgroup.rightTransversals + theorem Subgroup.smul_apply_eq_smul_apply_inv_smul + theorem Subgroup.smul_toEquiv + theorem Subgroup.smul_toFun + theorem Subgroup.transferFunction_apply + def Subgroup.transferSet + def Subgroup.transferTransversal + theorem Subgroup.transferTransversal_apply'' + theorem Subgroup.transferTransversal_apply' + theorem Subgroup.transferTransversal_apply 2023-05-29 08:45:16 041f3da feat: port MeasureTheory.Function.LpSpace (#4341) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/MeasureTheory/Function/LpSpace.lean + theorem BoundedContinuousFunction.Lp_nnnorm_le + theorem BoundedContinuousFunction.Lp_norm_le + theorem BoundedContinuousFunction.coeFn_toLp + theorem BoundedContinuousFunction.mem_Lp + theorem BoundedContinuousFunction.range_toLp + theorem BoundedContinuousFunction.range_toLpHom + def BoundedContinuousFunction.toLp + def BoundedContinuousFunction.toLpHom + theorem BoundedContinuousFunction.toLp_inj + theorem BoundedContinuousFunction.toLp_injective + theorem BoundedContinuousFunction.toLp_norm_le + theorem ContinuousLinearMap.add_compLp + theorem ContinuousLinearMap.add_compLpL + theorem ContinuousLinearMap.coeFn_compLp' + theorem ContinuousLinearMap.coeFn_compLp + theorem ContinuousLinearMap.coeFn_compLpL + def ContinuousLinearMap.compLp + def ContinuousLinearMap.compLpL + def ContinuousLinearMap.compLpₗ + theorem ContinuousLinearMap.comp_memℒp' + theorem ContinuousLinearMap.comp_memℒp + theorem ContinuousLinearMap.norm_compLpL_le + theorem ContinuousLinearMap.norm_compLp_le + theorem ContinuousLinearMap.smul_compLp + theorem ContinuousLinearMap.smul_compLpL + theorem ContinuousMap.coeFn_toLp + theorem ContinuousMap.coe_toLp + theorem ContinuousMap.hasSum_of_hasSum_Lp + theorem ContinuousMap.range_toLp + def ContinuousMap.toLp + theorem ContinuousMap.toLp_comp_toContinuousMap + theorem ContinuousMap.toLp_def + theorem ContinuousMap.toLp_inj + theorem ContinuousMap.toLp_injective + theorem ContinuousMap.toLp_norm_eq_toLp_norm_coe + theorem ContinuousMap.toLp_norm_le + theorem LipschitzWith.coeFn_compLp + def LipschitzWith.compLp + theorem LipschitzWith.compLp_zero + theorem LipschitzWith.comp_memℒp + theorem LipschitzWith.continuous_compLp + theorem LipschitzWith.lipschitzWith_compLp + theorem LipschitzWith.memℒp_comp_iff_of_antilipschitz + theorem LipschitzWith.norm_compLp_le + theorem LipschitzWith.norm_compLp_sub_le + def MeasureTheory.Lp.LpSubmodule + theorem MeasureTheory.Lp.ae_tendsto_of_cauchy_snorm' + theorem MeasureTheory.Lp.ae_tendsto_of_cauchy_snorm + def MeasureTheory.Lp.boundedContinuousFunction + theorem MeasureTheory.Lp.cauchySeq_Lp_iff_cauchySeq_ℒp + theorem MeasureTheory.Lp.cauchy_complete_ℒp + theorem MeasureTheory.Lp.cauchy_tendsto_of_tendsto + theorem MeasureTheory.Lp.coeFn_add + theorem MeasureTheory.Lp.coeFn_mk + theorem MeasureTheory.Lp.coeFn_neg + theorem MeasureTheory.Lp.coeFn_negPart + theorem MeasureTheory.Lp.coeFn_negPart_eq_max + theorem MeasureTheory.Lp.coeFn_posPart + theorem MeasureTheory.Lp.coeFn_smul + theorem MeasureTheory.Lp.coeFn_sub + theorem MeasureTheory.Lp.coeFn_zero + theorem MeasureTheory.Lp.coe_LpSubmodule + theorem MeasureTheory.Lp.coe_mk + theorem MeasureTheory.Lp.coe_posPart + theorem MeasureTheory.Lp.completeSpace_lp_of_cauchy_complete_ℒp + theorem MeasureTheory.Lp.continuous_negPart + theorem MeasureTheory.Lp.continuous_posPart + theorem MeasureTheory.Lp.dist_def + theorem MeasureTheory.Lp.edist_def + theorem MeasureTheory.Lp.edist_toLp_toLp + theorem MeasureTheory.Lp.edist_toLp_zero + theorem MeasureTheory.Lp.eq_zero_iff_ae_eq_zero + theorem MeasureTheory.Lp.ext + theorem MeasureTheory.Lp.ext_iff + theorem MeasureTheory.Lp.lipschitzWith_pos_part + theorem MeasureTheory.Lp.meas_ge_le_mul_pow_norm + theorem MeasureTheory.Lp.mem_Lp_const_smul + theorem MeasureTheory.Lp.mem_Lp_iff_memℒp + theorem MeasureTheory.Lp.mem_Lp_iff_snorm_lt_top + theorem MeasureTheory.Lp.mem_Lp_of_ae_bound + theorem MeasureTheory.Lp.mem_Lp_of_ae_le + theorem MeasureTheory.Lp.mem_Lp_of_ae_le_mul + theorem MeasureTheory.Lp.mem_Lp_of_ae_nnnorm_bound + theorem MeasureTheory.Lp.mem_Lp_of_nnnorm_ae_le + theorem MeasureTheory.Lp.mem_Lp_of_nnnorm_ae_le_mul + theorem MeasureTheory.Lp.mem_boundedContinuousFunction_iff + theorem MeasureTheory.Lp.mem_lp_const + theorem MeasureTheory.Lp.memℒp_of_cauchy_tendsto + theorem MeasureTheory.Lp.mul_meas_ge_le_pow_norm' + theorem MeasureTheory.Lp.mul_meas_ge_le_pow_norm + def MeasureTheory.Lp.negPart + theorem MeasureTheory.Lp.nnnorm_def + theorem MeasureTheory.Lp.nnnorm_eq_zero_iff + theorem MeasureTheory.Lp.nnnorm_le_mul_nnnorm_of_ae_le_mul + theorem MeasureTheory.Lp.nnnorm_le_of_ae_bound + theorem MeasureTheory.Lp.nnnorm_neg + theorem MeasureTheory.Lp.nnnorm_toLp + theorem MeasureTheory.Lp.nnnorm_zero + theorem MeasureTheory.Lp.norm_def + theorem MeasureTheory.Lp.norm_eq_zero_iff + theorem MeasureTheory.Lp.norm_le_mul_norm_of_ae_le_mul + theorem MeasureTheory.Lp.norm_le_norm_of_ae_le + theorem MeasureTheory.Lp.norm_le_of_ae_bound + theorem MeasureTheory.Lp.norm_neg + theorem MeasureTheory.Lp.norm_toLp + theorem MeasureTheory.Lp.norm_zero + def MeasureTheory.Lp.posPart + theorem MeasureTheory.Lp.pow_mul_meas_ge_le_norm + theorem MeasureTheory.Lp.snorm'_lim_eq_lintegral_liminf + theorem MeasureTheory.Lp.snorm'_lim_le_liminf_snorm' + theorem MeasureTheory.Lp.snorm_exponent_top_lim_eq_essSup_liminf + theorem MeasureTheory.Lp.snorm_exponent_top_lim_le_liminf_snorm_exponent_top + theorem MeasureTheory.Lp.snorm_lim_le_liminf_snorm + theorem MeasureTheory.Lp.snorm_lt_top + theorem MeasureTheory.Lp.snorm_ne_top + theorem MeasureTheory.Lp.tendsto_Lp_iff_tendsto_ℒp'' + theorem MeasureTheory.Lp.tendsto_Lp_iff_tendsto_ℒp' + theorem MeasureTheory.Lp.tendsto_Lp_iff_tendsto_ℒp + theorem MeasureTheory.Lp.tendsto_Lp_of_tendsto_ℒp + theorem MeasureTheory.Lp.toLp_coeFn + def MeasureTheory.Lp + theorem MeasureTheory.Memℒp.coeFn_toLp + theorem MeasureTheory.Memℒp.indicator + theorem MeasureTheory.Memℒp.neg_part + theorem MeasureTheory.Memℒp.norm_rpow + theorem MeasureTheory.Memℒp.norm_rpow_div + theorem MeasureTheory.Memℒp.ofReal + theorem MeasureTheory.Memℒp.of_comp_antilipschitzWith + theorem MeasureTheory.Memℒp.pos_part + theorem MeasureTheory.Memℒp.snorm_mk_lt_top + def MeasureTheory.Memℒp.toLp + theorem MeasureTheory.Memℒp.toLp_add + theorem MeasureTheory.Memℒp.toLp_congr + theorem MeasureTheory.Memℒp.toLp_const_smul + theorem MeasureTheory.Memℒp.toLp_eq_toLp_iff + theorem MeasureTheory.Memℒp.toLp_neg + theorem MeasureTheory.Memℒp.toLp_sub + theorem MeasureTheory.Memℒp.toLp_zero + theorem MeasureTheory.exists_snorm_indicator_le + def MeasureTheory.indicatorConstLp + theorem MeasureTheory.indicatorConstLp_coeFn + theorem MeasureTheory.indicatorConstLp_coeFn_mem + theorem MeasureTheory.indicatorConstLp_coeFn_nmem + theorem MeasureTheory.indicatorConstLp_disjoint_union + theorem MeasureTheory.indicatorConstLp_eq_toSpanSingleton_compLp + theorem MeasureTheory.indicatorConst_empty + theorem MeasureTheory.memℒp_add_of_disjoint + theorem MeasureTheory.memℒp_indicator_const + theorem MeasureTheory.memℒp_indicator_iff_restrict + theorem MeasureTheory.memℒp_norm_rpow_iff + theorem MeasureTheory.memℒp_re_im_iff + theorem MeasureTheory.norm_indicatorConstLp' + theorem MeasureTheory.norm_indicatorConstLp + theorem MeasureTheory.norm_indicatorConstLp_top + theorem MeasureTheory.snormEssSup_indicator_const_eq + theorem MeasureTheory.snormEssSup_indicator_const_le + theorem MeasureTheory.snormEssSup_indicator_eq_snormEssSup_restrict + theorem MeasureTheory.snormEssSup_indicator_le + theorem MeasureTheory.snorm_aeeqFun + theorem MeasureTheory.snorm_indicator_const' + theorem MeasureTheory.snorm_indicator_const + theorem MeasureTheory.snorm_indicator_const_le + theorem MeasureTheory.snorm_indicator_eq_snorm_restrict + theorem MeasureTheory.snorm_indicator_le 2023-05-29 08:45:14 a6e9434 feat: port MeasureTheory.Measure.VectorMeasure (#4016) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/MeasureTheory/Measure/VectorMeasure.lean + def MeasureTheory.Measure.toEnnrealVectorMeasure + theorem MeasureTheory.Measure.toEnnrealVectorMeasure_add + theorem MeasureTheory.Measure.toEnnrealVectorMeasure_apply_measurable + theorem MeasureTheory.Measure.toEnnrealVectorMeasure_zero + def MeasureTheory.Measure.toSignedMeasure + theorem MeasureTheory.Measure.toSignedMeasure_add + theorem MeasureTheory.Measure.toSignedMeasure_apply_measurable + theorem MeasureTheory.Measure.toSignedMeasure_congr + theorem MeasureTheory.Measure.toSignedMeasure_eq_toSignedMeasure_iff + theorem MeasureTheory.Measure.toSignedMeasure_smul + theorem MeasureTheory.Measure.toSignedMeasure_sub_apply + theorem MeasureTheory.Measure.toSignedMeasure_toMeasureOfZeroLe + theorem MeasureTheory.Measure.toSignedMeasure_zero + theorem MeasureTheory.Measure.zero_le_toSignedMeasure + def MeasureTheory.SignedMeasure.toMeasureOfLeZero + theorem MeasureTheory.SignedMeasure.toMeasureOfLeZero_apply + theorem MeasureTheory.SignedMeasure.toMeasureOfLeZero_toSignedMeasure + def MeasureTheory.SignedMeasure.toMeasureOfZeroLe' + def MeasureTheory.SignedMeasure.toMeasureOfZeroLe + theorem MeasureTheory.SignedMeasure.toMeasureOfZeroLe_apply + theorem MeasureTheory.SignedMeasure.toMeasureOfZeroLe_toSignedMeasure + theorem MeasureTheory.VectorMeasure.AbsolutelyContinuous.add + theorem MeasureTheory.VectorMeasure.AbsolutelyContinuous.ennrealToMeasure + theorem MeasureTheory.VectorMeasure.AbsolutelyContinuous.eq + theorem MeasureTheory.VectorMeasure.AbsolutelyContinuous.map + theorem MeasureTheory.VectorMeasure.AbsolutelyContinuous.mk + theorem MeasureTheory.VectorMeasure.AbsolutelyContinuous.neg_left + theorem MeasureTheory.VectorMeasure.AbsolutelyContinuous.neg_right + theorem MeasureTheory.VectorMeasure.AbsolutelyContinuous.refl + theorem MeasureTheory.VectorMeasure.AbsolutelyContinuous.smul + theorem MeasureTheory.VectorMeasure.AbsolutelyContinuous.sub + theorem MeasureTheory.VectorMeasure.AbsolutelyContinuous.trans + theorem MeasureTheory.VectorMeasure.AbsolutelyContinuous.zero + def MeasureTheory.VectorMeasure.AbsolutelyContinuous + theorem MeasureTheory.VectorMeasure.MutuallySingular.add_left + theorem MeasureTheory.VectorMeasure.MutuallySingular.add_right + theorem MeasureTheory.VectorMeasure.MutuallySingular.mk + theorem MeasureTheory.VectorMeasure.MutuallySingular.neg_left + theorem MeasureTheory.VectorMeasure.MutuallySingular.neg_left_iff + theorem MeasureTheory.VectorMeasure.MutuallySingular.neg_right + theorem MeasureTheory.VectorMeasure.MutuallySingular.neg_right_iff + theorem MeasureTheory.VectorMeasure.MutuallySingular.smul_left + theorem MeasureTheory.VectorMeasure.MutuallySingular.smul_right + theorem MeasureTheory.VectorMeasure.MutuallySingular.symm + theorem MeasureTheory.VectorMeasure.MutuallySingular.zero_left + theorem MeasureTheory.VectorMeasure.MutuallySingular.zero_right + def MeasureTheory.VectorMeasure.MutuallySingular + def MeasureTheory.VectorMeasure.add + theorem MeasureTheory.VectorMeasure.add_apply + def MeasureTheory.VectorMeasure.coeFnAddMonoidHom + theorem MeasureTheory.VectorMeasure.coe_add + theorem MeasureTheory.VectorMeasure.coe_injective + theorem MeasureTheory.VectorMeasure.coe_neg + theorem MeasureTheory.VectorMeasure.coe_smul + theorem MeasureTheory.VectorMeasure.coe_sub + theorem MeasureTheory.VectorMeasure.coe_zero + theorem MeasureTheory.VectorMeasure.empty + def MeasureTheory.VectorMeasure.ennrealToMeasure + theorem MeasureTheory.VectorMeasure.ennrealToMeasure_apply + def MeasureTheory.VectorMeasure.equivMeasure + theorem MeasureTheory.VectorMeasure.exists_pos_measure_of_not_restrict_le_zero + theorem MeasureTheory.VectorMeasure.ext + theorem MeasureTheory.VectorMeasure.ext_iff' + theorem MeasureTheory.VectorMeasure.ext_iff + theorem MeasureTheory.VectorMeasure.hasSum_of_disjoint_iUnion + theorem MeasureTheory.VectorMeasure.le_iff' + theorem MeasureTheory.VectorMeasure.le_iff + theorem MeasureTheory.VectorMeasure.le_restrict_empty + theorem MeasureTheory.VectorMeasure.le_restrict_univ_iff_le + theorem MeasureTheory.VectorMeasure.m_iUnion + def MeasureTheory.VectorMeasure.map + def MeasureTheory.VectorMeasure.mapGm + def MeasureTheory.VectorMeasure.mapRange + def MeasureTheory.VectorMeasure.mapRangeHom + theorem MeasureTheory.VectorMeasure.mapRange_add + theorem MeasureTheory.VectorMeasure.mapRange_apply + theorem MeasureTheory.VectorMeasure.mapRange_id + theorem MeasureTheory.VectorMeasure.mapRange_zero + def MeasureTheory.VectorMeasure.mapRangeₗ + theorem MeasureTheory.VectorMeasure.map_add + theorem MeasureTheory.VectorMeasure.map_apply + theorem MeasureTheory.VectorMeasure.map_id + theorem MeasureTheory.VectorMeasure.map_not_measurable + theorem MeasureTheory.VectorMeasure.map_smul + theorem MeasureTheory.VectorMeasure.map_zero + def MeasureTheory.VectorMeasure.mapₗ + theorem MeasureTheory.VectorMeasure.measurable_of_not_restrict_le_zero + theorem MeasureTheory.VectorMeasure.measurable_of_not_zero_le_restrict + def MeasureTheory.VectorMeasure.neg + theorem MeasureTheory.VectorMeasure.neg_apply + theorem MeasureTheory.VectorMeasure.neg_le_neg_iff + theorem MeasureTheory.VectorMeasure.nonneg_of_zero_le_restrict + theorem MeasureTheory.VectorMeasure.nonpos_of_restrict_le_zero + theorem MeasureTheory.VectorMeasure.not_measurable + theorem MeasureTheory.VectorMeasure.of_add_of_diff + theorem MeasureTheory.VectorMeasure.of_diff + theorem MeasureTheory.VectorMeasure.of_diff_of_diff_eq_zero + theorem MeasureTheory.VectorMeasure.of_disjoint_iUnion + theorem MeasureTheory.VectorMeasure.of_disjoint_iUnion_nat + theorem MeasureTheory.VectorMeasure.of_iUnion_nonneg + theorem MeasureTheory.VectorMeasure.of_iUnion_nonpos + theorem MeasureTheory.VectorMeasure.of_nonneg_disjoint_union_eq_zero + theorem MeasureTheory.VectorMeasure.of_nonpos_disjoint_union_eq_zero + theorem MeasureTheory.VectorMeasure.of_union + def MeasureTheory.VectorMeasure.restrict + def MeasureTheory.VectorMeasure.restrictGm + theorem MeasureTheory.VectorMeasure.restrict_add + theorem MeasureTheory.VectorMeasure.restrict_apply + theorem MeasureTheory.VectorMeasure.restrict_empty + theorem MeasureTheory.VectorMeasure.restrict_eq_self + theorem MeasureTheory.VectorMeasure.restrict_le_restrict_countable_iUnion + theorem MeasureTheory.VectorMeasure.restrict_le_restrict_iUnion + theorem MeasureTheory.VectorMeasure.restrict_le_restrict_iff + theorem MeasureTheory.VectorMeasure.restrict_le_restrict_of_subset_le + theorem MeasureTheory.VectorMeasure.restrict_le_restrict_subset + theorem MeasureTheory.VectorMeasure.restrict_le_restrict_union + theorem MeasureTheory.VectorMeasure.restrict_le_zero_of_not_measurable + theorem MeasureTheory.VectorMeasure.restrict_le_zero_subset + theorem MeasureTheory.VectorMeasure.restrict_not_measurable + theorem MeasureTheory.VectorMeasure.restrict_smul + theorem MeasureTheory.VectorMeasure.restrict_trim + theorem MeasureTheory.VectorMeasure.restrict_univ + theorem MeasureTheory.VectorMeasure.restrict_zero + def MeasureTheory.VectorMeasure.restrictₗ + def MeasureTheory.VectorMeasure.smul + theorem MeasureTheory.VectorMeasure.smul_apply + def MeasureTheory.VectorMeasure.sub + theorem MeasureTheory.VectorMeasure.sub_apply + theorem MeasureTheory.VectorMeasure.subset_le_of_restrict_le_restrict + def MeasureTheory.VectorMeasure.trim + theorem MeasureTheory.VectorMeasure.trim_eq_self + theorem MeasureTheory.VectorMeasure.trim_measurableSet_eq + theorem MeasureTheory.VectorMeasure.zero_apply + theorem MeasureTheory.VectorMeasure.zero_le_restrict_not_measurable + theorem MeasureTheory.VectorMeasure.zero_le_restrict_subset + theorem MeasureTheory.VectorMeasure.zero_trim + structure MeasureTheory.VectorMeasure 2023-05-29 07:37:04 deff4e1 feat: add `SigmaCompactSpace` instances (#4458) forward-port of leanprover-community/mathlib#19100. Also adds a new lemma `IsClosed.sigmaCompactSpace`. ESTIMATED CHANGES Modified Mathlib/Topology/Constructions.lean + theorem ULift.closedEmbedding_down Modified Mathlib/Topology/SubsetProperties.lean + theorem IsClosed.sigmaCompactSpace 2023-05-29 06:19:16 849b087 feat: port Analysis.Calculus.Deriv.Star (#4452) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/Calculus/Deriv/Star.lean 2023-05-29 05:29:24 b5b6fb2 feat: port Analysis.Calculus.Deriv.Pow (#4441) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/Calculus/Deriv/Pow.lean + theorem HasDerivAt.pow + theorem HasDerivWithinAt.pow + theorem derivWithin_pow' + theorem derivWithin_pow + theorem deriv_pow'' + theorem deriv_pow' + theorem deriv_pow + theorem differentiableAt_pow + theorem differentiableOn_pow + theorem differentiableWithinAt_pow + theorem differentiable_pow + theorem hasDerivAt_pow + theorem hasDerivWithinAt_pow + theorem hasStrictDerivAt_pow 2023-05-29 05:29:23 cfaaf51 feat: port Analysis.InnerProductSpace.PiL2 (#4420) Some theorems in `Analysis.InnerProductSpace.Basic`, such as `Orthonormal.inner_right_finsupp`, accidentally gained a new `DecidableEq` hypothesis during the port. This removes the hypothesis by using `classical!` instead of `classical` in their proofs. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Analysis/InnerProductSpace/Basic.lean Added Mathlib/Analysis/InnerProductSpace/PiL2.lean + theorem Basis.coe_toOrthonormalBasis + theorem Basis.coe_toOrthonormalBasis_repr + theorem Basis.coe_toOrthonormalBasis_repr_symm + theorem Basis.toBasis_toOrthonormalBasis + def Basis.toOrthonormalBasis + theorem Complex.coe_orthonormalBasisOneI + def Complex.isometryOfOrthonormal + theorem Complex.isometryOfOrthonormal_apply + theorem Complex.isometryOfOrthonormal_symm_apply + theorem Complex.map_isometryOfOrthonormal + def Complex.orthonormalBasisOneI + theorem Complex.orthonormalBasisOneI_repr_apply + theorem Complex.orthonormalBasisOneI_repr_symm_apply + theorem Complex.toBasis_orthonormalBasisOneI + theorem DirectSum.IsInternal.collectedOrthonormalBasis_mem + def DirectSum.IsInternal.isometryL2OfOrthogonalFamily + theorem DirectSum.IsInternal.isometryL2OfOrthogonalFamily_symm_apply + theorem DirectSum.IsInternal.subordinateOrthonormalBasis_subordinate + theorem EuclideanSpace.dist_eq + theorem EuclideanSpace.dist_single_same + theorem EuclideanSpace.edist_eq + theorem EuclideanSpace.edist_single_same + def EuclideanSpace.equiv + theorem EuclideanSpace.inner_eq_star_dotProduct + theorem EuclideanSpace.inner_piLp_equiv_symm + theorem EuclideanSpace.inner_single_left + theorem EuclideanSpace.inner_single_right + theorem EuclideanSpace.nndist_eq + theorem EuclideanSpace.nndist_single_same + theorem EuclideanSpace.nnnorm_eq + theorem EuclideanSpace.nnnorm_single + theorem EuclideanSpace.norm_eq + theorem EuclideanSpace.norm_single + theorem EuclideanSpace.orthonormal_single + theorem EuclideanSpace.piLpCongrLeft_single + def EuclideanSpace.proj + def EuclideanSpace.projₗ + def EuclideanSpace.single + theorem EuclideanSpace.single_apply + def EuclideanSpace + theorem LinearIsometry.extend_apply + theorem Matrix.piLp_equiv_toEuclideanLin + def Matrix.toEuclideanLin + theorem Matrix.toEuclideanLin_eq_toLin + theorem Matrix.toEuclideanLin_piLp_equiv_symm + theorem Orthonormal.exists_orthonormalBasis_extension + theorem Orthonormal.exists_orthonormalBasis_extension_of_card_eq + theorem OrthonormalBasis.coe_ofRepr + theorem OrthonormalBasis.det_to_matrix_orthonormalBasis + theorem OrthonormalBasis.det_to_matrix_orthonormalBasis_real + def OrthonormalBasis.fromOrthogonalSpanSingleton + def OrthonormalBasis.reindex + theorem OrthonormalBasis.repr_injective + theorem OrthonormalBasis.toMatrix_orthonormalBasis_mem_orthogonal + theorem OrthonormalBasis.toMatrix_orthonormalBasis_mem_unitary + structure OrthonormalBasis + theorem PiLp.equiv_single + theorem PiLp.equiv_symm_single + theorem PiLp.inner_apply + theorem exists_orthonormalBasis + theorem finrank_euclideanSpace + theorem finrank_euclideanSpace_fin + theorem inner_matrix_col_col + theorem inner_matrix_row_row + theorem orthonormalBasis_one_dim Modified Mathlib/Analysis/InnerProductSpace/Projection.lean 2023-05-29 05:02:18 1e3da72 feat: port CategoryTheory.Limits.Fubini (#4416) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Limits/Fubini.lean + def CategoryTheory.Limits.DiagramOfCones.conePoints + theorem CategoryTheory.Limits.DiagramOfCones.mkOfHasLimits_conePoints + structure CategoryTheory.Limits.DiagramOfCones + def CategoryTheory.Limits.coneOfConeUncurry + def CategoryTheory.Limits.coneOfConeUncurryIsLimit + theorem CategoryTheory.Limits.limitCurrySwapCompLimIsoLimitCurryCompLim_hom_π_π + theorem CategoryTheory.Limits.limitCurrySwapCompLimIsoLimitCurryCompLim_inv_π_π + theorem CategoryTheory.Limits.limitFlipCompLimIsoLimitCompLim_hom_π_π + theorem CategoryTheory.Limits.limitFlipCompLimIsoLimitCompLim_inv_π_π + theorem CategoryTheory.Limits.limitIsoLimitCurryCompLim_hom_π_π + theorem CategoryTheory.Limits.limitIsoLimitCurryCompLim_inv_π + theorem CategoryTheory.Limits.limitUncurryIsoLimitCompLim_hom_π_π + theorem CategoryTheory.Limits.limitUncurryIsoLimitCompLim_inv_π 2023-05-29 00:54:10 e434199 feat: port Analysis.Calculus.Deriv.Support (#4442) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/Calculus/Deriv/Support.lean + theorem HasCompactSupport.deriv + theorem support_deriv_subset 2023-05-28 23:39:46 4052caf feat: port Analysis.Calculus.Deriv.Inverse (#4438) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/Calculus/Deriv/Inverse.lean + theorem HasDerivAt.eventually_ne + theorem HasDerivAt.hasFDerivAt_equiv + theorem HasDerivAt.of_local_left_inverse + theorem HasDerivAt.tendsto_punctured_nhds + theorem HasStrictDerivAt.hasStrictFDerivAt_equiv + theorem HasStrictDerivAt.of_local_left_inverse + theorem LocalHomeomorph.hasDerivAt_symm + theorem LocalHomeomorph.hasStrictDerivAt_symm + theorem not_differentiableAt_of_local_left_inverse_hasDerivAt_zero + theorem not_differentiableWithinAt_of_local_left_inverse_hasDerivWithinAt_zero 2023-05-28 23:18:50 c58c36e feat: port Analysis.Calculus.Deriv.Slope (#4444) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/Calculus/Deriv/Slope.lean + theorem HasDerivWithinAt.liminf_right_norm_slope_le + theorem HasDerivWithinAt.liminf_right_slope_le + theorem HasDerivWithinAt.liminf_right_slope_norm_le + theorem HasDerivWithinAt.limsup_norm_slope_le + theorem HasDerivWithinAt.limsup_slope_le' + theorem HasDerivWithinAt.limsup_slope_le + theorem HasDerivWithinAt.limsup_slope_norm_le + theorem hasDerivAtFilter_iff_tendsto_slope + theorem hasDerivAt_iff_tendsto_slope + theorem hasDerivWithinAt_iff_tendsto_slope' + theorem hasDerivWithinAt_iff_tendsto_slope 2023-05-28 22:51:17 e7643d6 feat: port Analysis.Calculus.Deriv.Linear (#4439) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/Calculus/Deriv/Linear.lean 2023-05-28 22:16:00 f328e6f feat: port Analysis.Calculus.Deriv.Mul (#4440) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/Calculus/Deriv/Mul.lean + theorem Differentiable.div_const + theorem DifferentiableAt.div_const + theorem DifferentiableOn.div_const + theorem DifferentiableWithinAt.div_const + theorem HasDerivAt.clm_apply + theorem HasDerivAt.clm_comp + theorem HasDerivAt.const_mul + theorem HasDerivAt.div_const + theorem HasDerivAt.mul + theorem HasDerivAt.mul_const + theorem HasDerivAt.smul + theorem HasDerivAt.smul_const + theorem HasDerivWithinAt.clm_apply + theorem HasDerivWithinAt.clm_comp + theorem HasDerivWithinAt.const_mul + theorem HasDerivWithinAt.div_const + theorem HasDerivWithinAt.mul + theorem HasDerivWithinAt.mul_const + theorem HasDerivWithinAt.smul + theorem HasDerivWithinAt.smul_const + theorem HasStrictDerivAt.clm_apply + theorem HasStrictDerivAt.clm_comp + theorem HasStrictDerivAt.const_mul + theorem HasStrictDerivAt.div_const + theorem HasStrictDerivAt.mul + theorem HasStrictDerivAt.mul_const + theorem HasStrictDerivAt.smul_const + theorem derivWithin_clm_apply + theorem derivWithin_clm_comp + theorem derivWithin_const_mul + theorem derivWithin_const_smul + theorem derivWithin_div_const + theorem derivWithin_mul + theorem derivWithin_mul_const + theorem derivWithin_smul + theorem derivWithin_smul_const + theorem deriv_clm_apply + theorem deriv_clm_comp + theorem deriv_const_mul + theorem deriv_const_mul_field' + theorem deriv_const_mul_field + theorem deriv_const_smul + theorem deriv_div_const + theorem deriv_mul + theorem deriv_mul_const + theorem deriv_mul_const_field' + theorem deriv_mul_const_field + theorem deriv_smul + theorem deriv_smul_const + theorem hasDerivAt_mul_const 2023-05-28 21:54:35 4bf88e0 chore: forward-port leanprover-community/mathlib#19081 (#4399) This PR also uncomment `assert_not_exists` which was forgotten to be uncommented when `assert_not_exists` was ported. ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Function/StronglyMeasurable/Basic.lean +/- theorem stronglyMeasurable_const_smul_iff₀ 2023-05-28 20:08:02 5e71308 feat: add lemmas about closed and quotient maps (#4455) Forward-port of leanprover-community/mathlib#19071 ESTIMATED CHANGES Modified Mathlib/Topology/Maps.lean + theorem IsClosedMap.to_quotientMap +/- theorem quotientMap_iff + theorem quotientMap_iff_closed Modified Mathlib/Topology/Separation.lean - theorem Continuous.isClosedMap + theorem QuotientMap.of_surjective_continuous 2023-05-28 20:08:01 0f5133e feat: add `Set.IccExtend_eq_self` (#4454) Partial forward-port of leanprover-community/mathlib#19097 Also rename `Set.Icc_extend_coe` to `Set.IccExtend_val`. ESTIMATED CHANGES Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Inverse.lean Modified Mathlib/Data/Set/Intervals/ProjIcc.lean + theorem Set.IccExtend_eq_self + theorem Set.IccExtend_val - theorem Set.Icc_extend_coe Modified Mathlib/Topology/Homotopy/Basic.lean Modified Mathlib/Topology/PathConnected.lean 2023-05-28 20:07:59 115b6c3 feat: continuity of the `gauge` function (#4453) Forward-port of leanprover-community/mathlib#19102 ESTIMATED CHANGES Modified Mathlib/Analysis/Convex/Gauge.lean + theorem Convex.lipschitzWith_gauge + theorem Convex.uniformContinuous_gauge 2023-05-28 20:07:58 6936ba2 feat: port Algebra.MonoidAlgebra.Grading (#4450) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/MonoidAlgebra/Grading.lean + theorem AddMonoidAlgebra.GradesBy.decompose_single + def AddMonoidAlgebra.decomposeAux + theorem AddMonoidAlgebra.decomposeAux_coe + theorem AddMonoidAlgebra.decomposeAux_eq_decompose + theorem AddMonoidAlgebra.decomposeAux_single + theorem AddMonoidAlgebra.grade.decompose_single + theorem AddMonoidAlgebra.grade.isInternal + theorem AddMonoidAlgebra.gradeBy.isInternal + theorem AddMonoidAlgebra.gradeBy_id + theorem AddMonoidAlgebra.grade_eq_lsingle_range + theorem AddMonoidAlgebra.mem_gradeBy_iff + theorem AddMonoidAlgebra.mem_grade_iff' + theorem AddMonoidAlgebra.mem_grade_iff + theorem AddMonoidAlgebra.single_mem_grade + theorem AddMonoidAlgebra.single_mem_gradeBy 2023-05-28 20:07:57 54f2da2 feat: port MeasureTheory.Function.LpSeminorm (#4445) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/MeasureTheory/Function/LpSeminorm.lean + theorem MeasurableEmbedding.memℒp_map_measure_iff + theorem MeasurableEmbedding.snormEssSup_map_measure + theorem MeasurableEmbedding.snorm_map_measure + theorem MeasurableEquiv.memℒp_map_measure_iff + def MeasureTheory.LpAddConst + theorem MeasureTheory.LpAddConst_lt_top + theorem MeasureTheory.LpAddConst_of_one_le + theorem MeasureTheory.LpAddConst_zero + theorem MeasureTheory.Memℒp.add + theorem MeasureTheory.Memℒp.ae_eq + theorem MeasureTheory.Memℒp.aestronglyMeasurable + theorem MeasureTheory.Memℒp.congr_norm + theorem MeasureTheory.Memℒp.const_mul + theorem MeasureTheory.Memℒp.const_smul + theorem MeasureTheory.Memℒp.im + theorem MeasureTheory.Memℒp.left_of_add_measure + theorem MeasureTheory.Memℒp.memℒp_of_exponent_le + theorem MeasureTheory.Memℒp.mono' + theorem MeasureTheory.Memℒp.mono_measure + theorem MeasureTheory.Memℒp.neg + theorem MeasureTheory.Memℒp.norm + theorem MeasureTheory.Memℒp.of_bound + theorem MeasureTheory.Memℒp.of_le + theorem MeasureTheory.Memℒp.of_le_mul + theorem MeasureTheory.Memℒp.of_measure_le_smul + theorem MeasureTheory.Memℒp.of_nnnorm_le_mul + theorem MeasureTheory.Memℒp.re + theorem MeasureTheory.Memℒp.restrict + theorem MeasureTheory.Memℒp.right_of_add_measure + theorem MeasureTheory.Memℒp.smul + theorem MeasureTheory.Memℒp.smul_measure + theorem MeasureTheory.Memℒp.smul_of_top_left + theorem MeasureTheory.Memℒp.smul_of_top_right + theorem MeasureTheory.Memℒp.snorm_lt_top + theorem MeasureTheory.Memℒp.snorm_ne_top + theorem MeasureTheory.Memℒp.sub + def MeasureTheory.Memℒp + theorem MeasureTheory.ae_bdd_liminf_atTop_of_snorm_bdd + theorem MeasureTheory.ae_bdd_liminf_atTop_rpow_of_snorm_bdd + theorem MeasureTheory.ae_eq_zero_of_snorm'_eq_zero + theorem MeasureTheory.ae_le_snormEssSup + theorem MeasureTheory.coe_nnnorm_ae_le_snormEssSup + theorem MeasureTheory.essSup_trim + theorem MeasureTheory.exists_Lp_half + theorem MeasureTheory.limsup_trim + theorem MeasureTheory.lintegral_rpow_nnnorm_eq_rpow_snorm' + theorem MeasureTheory.lintegral_rpow_nnnorm_lt_top_of_snorm'_lt_top + theorem MeasureTheory.lintegral_rpow_nnnorm_lt_top_of_snorm_lt_top + theorem MeasureTheory.meas_ge_le_mul_pow_snorm + theorem MeasureTheory.meas_snormEssSup_lt + theorem MeasureTheory.memℒp_congr_ae + theorem MeasureTheory.memℒp_congr_norm + theorem MeasureTheory.memℒp_const + theorem MeasureTheory.memℒp_const_iff + theorem MeasureTheory.memℒp_def + theorem MeasureTheory.memℒp_finset_sum' + theorem MeasureTheory.memℒp_finset_sum + theorem MeasureTheory.memℒp_map_measure_iff + theorem MeasureTheory.memℒp_neg_iff + theorem MeasureTheory.memℒp_norm_iff + theorem MeasureTheory.memℒp_of_memℒp_trim + theorem MeasureTheory.memℒp_top_const + theorem MeasureTheory.memℒp_top_of_bound + theorem MeasureTheory.memℒp_zero_iff_aestronglyMeasurable + theorem MeasureTheory.mul_meas_ge_le_pow_snorm' + theorem MeasureTheory.mul_meas_ge_le_pow_snorm + theorem MeasureTheory.pow_mul_meas_ge_le_snorm + def MeasureTheory.snorm' + theorem MeasureTheory.snorm'_add_le + theorem MeasureTheory.snorm'_add_le_of_le_one + theorem MeasureTheory.snorm'_congr_ae + theorem MeasureTheory.snorm'_congr_nnnorm_ae + theorem MeasureTheory.snorm'_congr_norm_ae + theorem MeasureTheory.snorm'_const' + theorem MeasureTheory.snorm'_const + theorem MeasureTheory.snorm'_const_of_probabilityMeasure + theorem MeasureTheory.snorm'_const_smul + theorem MeasureTheory.snorm'_const_smul_le + theorem MeasureTheory.snorm'_eq_zero_iff + theorem MeasureTheory.snorm'_eq_zero_of_ae_zero' + theorem MeasureTheory.snorm'_eq_zero_of_ae_zero + theorem MeasureTheory.snorm'_exponent_zero + theorem MeasureTheory.snorm'_le_nnreal_smul_snorm'_of_ae_le_mul + theorem MeasureTheory.snorm'_le_snorm'_mul_rpow_measure_univ + theorem MeasureTheory.snorm'_le_snorm'_mul_snorm' + theorem MeasureTheory.snorm'_le_snorm'_of_exponent_le + theorem MeasureTheory.snorm'_le_snormEssSup + theorem MeasureTheory.snorm'_le_snormEssSup_mul_rpow_measure_univ + theorem MeasureTheory.snorm'_lt_top_of_snorm'_lt_top_of_exponent_le + theorem MeasureTheory.snorm'_measure_zero_of_exponent_zero + theorem MeasureTheory.snorm'_measure_zero_of_neg + theorem MeasureTheory.snorm'_measure_zero_of_pos + theorem MeasureTheory.snorm'_mono_ae + theorem MeasureTheory.snorm'_mono_measure + theorem MeasureTheory.snorm'_mono_nnnorm_ae + theorem MeasureTheory.snorm'_neg + theorem MeasureTheory.snorm'_norm + theorem MeasureTheory.snorm'_norm_rpow + theorem MeasureTheory.snorm'_smul_le_mul_snorm' + theorem MeasureTheory.snorm'_smul_measure + theorem MeasureTheory.snorm'_sum_le + theorem MeasureTheory.snorm'_trim + theorem MeasureTheory.snorm'_zero' + theorem MeasureTheory.snorm'_zero + def MeasureTheory.snorm + def MeasureTheory.snormEssSup + theorem MeasureTheory.snormEssSup_add_le + theorem MeasureTheory.snormEssSup_congr_ae + theorem MeasureTheory.snormEssSup_const + theorem MeasureTheory.snormEssSup_const_smul + theorem MeasureTheory.snormEssSup_const_smul_le + theorem MeasureTheory.snormEssSup_eq_zero_iff + theorem MeasureTheory.snormEssSup_le_nnreal_smul_snormEssSup_of_ae_le_mul + theorem MeasureTheory.snormEssSup_le_of_ae_bound + theorem MeasureTheory.snormEssSup_le_of_ae_nnnorm_bound + theorem MeasureTheory.snormEssSup_lt_top_of_ae_bound + theorem MeasureTheory.snormEssSup_lt_top_of_ae_nnnorm_bound + theorem MeasureTheory.snormEssSup_map_measure + theorem MeasureTheory.snormEssSup_measure_zero + theorem MeasureTheory.snormEssSup_mono_measure + theorem MeasureTheory.snormEssSup_mono_nnnorm_ae + theorem MeasureTheory.snormEssSup_smul_measure + theorem MeasureTheory.snormEssSup_trim + theorem MeasureTheory.snormEssSup_zero + theorem MeasureTheory.snorm_add_le' + theorem MeasureTheory.snorm_add_le + theorem MeasureTheory.snorm_add_lt_top + theorem MeasureTheory.snorm_congr_ae + theorem MeasureTheory.snorm_congr_nnnorm_ae + theorem MeasureTheory.snorm_congr_norm_ae + theorem MeasureTheory.snorm_const' + theorem MeasureTheory.snorm_const + theorem MeasureTheory.snorm_const_lt_top_iff + theorem MeasureTheory.snorm_const_smul + theorem MeasureTheory.snorm_const_smul_le + theorem MeasureTheory.snorm_eq_lintegral_rpow_nnnorm + theorem MeasureTheory.snorm_eq_snorm' + theorem MeasureTheory.snorm_eq_zero_and_zero_of_ae_le_mul_neg + theorem MeasureTheory.snorm_eq_zero_iff + theorem MeasureTheory.snorm_exponent_top + theorem MeasureTheory.snorm_exponent_zero + theorem MeasureTheory.snorm_indicator_ge_of_bdd_below + theorem MeasureTheory.snorm_le_add_measure_left + theorem MeasureTheory.snorm_le_add_measure_right + theorem MeasureTheory.snorm_le_mul_snorm_of_ae_le_mul + theorem MeasureTheory.snorm_le_nnreal_smul_snorm_of_ae_le_mul + theorem MeasureTheory.snorm_le_of_ae_bound + theorem MeasureTheory.snorm_le_of_ae_nnnorm_bound + theorem MeasureTheory.snorm_le_snorm_mul_rpow_measure_univ + theorem MeasureTheory.snorm_le_snorm_mul_snorm'_of_norm + theorem MeasureTheory.snorm_le_snorm_mul_snorm_of_nnnorm + theorem MeasureTheory.snorm_le_snorm_mul_snorm_top + theorem MeasureTheory.snorm_le_snorm_of_exponent_le + theorem MeasureTheory.snorm_le_snorm_top_mul_snorm + theorem MeasureTheory.snorm_lt_top_iff_lintegral_rpow_nnnorm_lt_top + theorem MeasureTheory.snorm_map_measure + theorem MeasureTheory.snorm_measure_zero + theorem MeasureTheory.snorm_mono + theorem MeasureTheory.snorm_mono_ae + theorem MeasureTheory.snorm_mono_ae_real + theorem MeasureTheory.snorm_mono_measure + theorem MeasureTheory.snorm_mono_nnnorm + theorem MeasureTheory.snorm_mono_nnnorm_ae + theorem MeasureTheory.snorm_mono_real + theorem MeasureTheory.snorm_neg + theorem MeasureTheory.snorm_norm + theorem MeasureTheory.snorm_norm_rpow + theorem MeasureTheory.snorm_one_add_measure + theorem MeasureTheory.snorm_one_eq_lintegral_nnnorm + theorem MeasureTheory.snorm_one_smul_measure + theorem MeasureTheory.snorm_smul_le_mul_snorm + theorem MeasureTheory.snorm_smul_le_snorm_mul_snorm_top + theorem MeasureTheory.snorm_smul_le_snorm_top_mul_snorm + theorem MeasureTheory.snorm_smul_measure_of_ne_top + theorem MeasureTheory.snorm_smul_measure_of_ne_zero + theorem MeasureTheory.snorm_sub_le' + theorem MeasureTheory.snorm_sub_le + theorem MeasureTheory.snorm_sum_le + theorem MeasureTheory.snorm_trim + theorem MeasureTheory.snorm_trim_ae + theorem MeasureTheory.snorm_zero' + theorem MeasureTheory.snorm_zero + theorem MeasureTheory.zero_mem_ℒp' + theorem MeasureTheory.zero_memℒp 2023-05-28 20:07:55 1481cae feat: port Analysis.Calculus.Deriv.Prod (#4437) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/Calculus/Deriv/Prod.lean + theorem derivWithin_pi + theorem deriv_pi + theorem hasDerivAtFilter_pi + theorem hasDerivAt_pi + theorem hasDerivWithinAt_pi + theorem hasStrictDerivAt_pi 2023-05-28 20:07:54 2dfdbc1 chore: clean-up protect_proj porting notes (#4425) ESTIMATED CHANGES Modified Mathlib/Algebra/Lie/Basic.lean Modified Mathlib/Algebra/Order/Kleene.lean Modified Mathlib/Analysis/BoxIntegral/Partition/Filter.lean Modified Mathlib/Order/Heyting/Hom.lean Modified Mathlib/Topology/ContinuousFunction/Basic.lean 2023-05-28 17:25:52 b759789 fix: out-line instance equality proofs in norm_num (#4048) This applies a similar technique as was used for the `ofScientific` norm_num extension to the core field operations. This ensures that lean doesn't try to prove `Add.add (inst := inst1) 1234 56 = Add.add (inst := inst2) 1234 56` by evaluating the addition itself, and instead tries to prove the instances equal and let norm_num do the adding. Reported at https://github.com/leanprover-community/mathlib4/pull/4036#issuecomment-1550297061 , although I can't find a test case that doesn't involve the base norm_num implementation because all the core operations on nat are already overridden. ESTIMATED CHANGES Modified Mathlib/Tactic/NormNum/Basic.lean +/- theorem Mathlib.Meta.NormNum.isInt_add +/- theorem Mathlib.Meta.NormNum.isInt_mul +/- theorem Mathlib.Meta.NormNum.isInt_neg +/- theorem Mathlib.Meta.NormNum.isInt_pow +/- theorem Mathlib.Meta.NormNum.isInt_sub +/- theorem Mathlib.Meta.NormNum.isNat_add +/- theorem Mathlib.Meta.NormNum.isNat_eq_true +/- theorem Mathlib.Meta.NormNum.isNat_mul +/- theorem Mathlib.Meta.NormNum.isNat_pow +/- theorem Mathlib.Meta.NormNum.isRat_add +/- theorem Mathlib.Meta.NormNum.isRat_mul +/- theorem Mathlib.Meta.NormNum.isRat_neg +/- theorem Mathlib.Meta.NormNum.isRat_pow +/- theorem Mathlib.Meta.NormNum.isRat_sub Modified Mathlib/Tactic/Ring/Basic.lean Modified test/norm_num_ext.lean + theorem ex64' 2023-05-28 14:10:41 910d34b feat: port Analysis.Calculus.Deriv.Comp (#4436) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/Calculus/Deriv/Comp.lean + theorem HasDerivAt.comp_hasDerivWithinAt + theorem HasDerivAt.comp_hasFDerivAt + theorem HasDerivAt.comp_hasFDerivWithinAt + theorem HasDerivAt.scomp_hasDerivWithinAt + theorem HasDerivAtFilter.comp + theorem HasDerivAtFilter.comp_hasFDerivAtFilter + theorem HasDerivAtFilter.scomp + theorem HasDerivWithinAt.comp + theorem HasDerivWithinAt.comp_hasFDerivWithinAt + theorem HasDerivWithinAt.scomp_hasDerivAt + theorem HasFDerivAt.comp_hasDerivAt + theorem HasFDerivAt.comp_hasDerivWithinAt + theorem HasFDerivWithinAt.comp_hasDerivWithinAt + theorem HasStrictDerivAt.comp + theorem HasStrictDerivAt.comp_hasStrictFDerivAt + theorem HasStrictDerivAt.scomp + theorem HasStrictFDerivAt.comp_hasStrictDerivAt + theorem deriv.comp + theorem deriv.scomp + theorem derivWithin.comp + theorem derivWithin.scomp + theorem fderiv.comp_deriv + theorem fderivWithin.comp_derivWithin 2023-05-28 14:10:40 62ca344 chore: restore 2 `#align`s (#4427) This prevents some false positives in the `mathport` "dubious translation" linter. ESTIMATED CHANGES Modified Mathlib/Init/Algebra/Order.lean 2023-05-28 11:05:51 15ddd4b feat: port coherence tactic (#4357) This is a by-hand port of `category_theory.monoidal.coherence`, which is blocking things like https://tqft.net/mathlib4/2023-05-26/representation_theory.group_cohomology.basic.pdf. It does not include a port of the coherence tactic for bicategories, but this is not actually used in mathlib yet. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Lean/Meta.lean + def Lean.MVarId.applyConst Modified Mathlib/Lean/Meta/Simp.lean + def Lean.Meta.Simp.Simp.Context.ofNames +/- def Lean.Meta.Simp.simpTheoremsOfNames Modified Mathlib/Tactic.lean Added Mathlib/Tactic/CategoryTheory/Coherence.lean + theorem Mathlib.Tactic.Coherence.assoc_LiftHom + def Mathlib.Tactic.Coherence.coherence_loop + def Mathlib.Tactic.Coherence.exception' + def Mathlib.Tactic.Coherence.exception + def Mathlib.Tactic.Coherence.insertTrailingIds + theorem Mathlib.Tactic.Coherence.insert_id_lhs + theorem Mathlib.Tactic.Coherence.insert_id_rhs + def Mathlib.Tactic.Coherence.mkProjectMapExpr + def Mathlib.Tactic.Coherence.monoidalComp + theorem Mathlib.Tactic.Coherence.monoidalComp_refl + def Mathlib.Tactic.Coherence.monoidalIso + def Mathlib.Tactic.Coherence.monoidal_coherence Added test/CategoryTheory/coherence.lean 2023-05-28 11:05:50 6c01dc6 refactor: use the typeclass `SProd` to implement overloaded notation `· ×ˢ ·` (#4200) Currently, the following notations are changed from `· ×ˢ ·` because Lean 4 can't deal with ambiguous notations. | Definition | Notation | | : ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Algebra/Subalgebra/Basic.lean +/- theorem Subalgebra.coe_prod Modified Mathlib/Algebra/BigOperators/Basic.lean Modified Mathlib/Algebra/BigOperators/Ring.lean Modified Mathlib/Algebra/DirectSum/Internal.lean Modified Mathlib/Algebra/DirectSum/Ring.lean Modified Mathlib/Algebra/Group/UniqueProds.lean Modified Mathlib/Algebra/Module/BigOperators.lean Modified Mathlib/Algebra/MonoidAlgebra/Basic.lean Modified Mathlib/Analysis/Convex/Combination.lean Modified Mathlib/Analysis/Normed/Group/Basic.lean Modified Mathlib/Analysis/SpecialFunctions/Pow/Continuity.lean Modified Mathlib/Combinatorics/Additive/Energy.lean Modified Mathlib/Combinatorics/Additive/PluenneckeRuzsa.lean Modified Mathlib/Combinatorics/Additive/SalemSpencer.lean Modified Mathlib/Combinatorics/Catalan.lean Modified Mathlib/Combinatorics/SimpleGraph/Density.lean Modified Mathlib/Combinatorics/SimpleGraph/Prod.lean Modified Mathlib/Combinatorics/Young/YoungDiagram.lean +/- theorem YoungDiagram.col_eq_prod +/- theorem YoungDiagram.row_eq_prod Modified Mathlib/Computability/TuringMachine.lean Modified Mathlib/Data/Finset/Functor.lean Modified Mathlib/Data/Finset/Lattice.lean Modified Mathlib/Data/Finset/NAry.lean Modified Mathlib/Data/Finset/Pointwise.lean +/- theorem Finset.div_def +/- theorem Finset.image_div_prod +/- theorem Finset.image_mul_product +/- theorem Finset.image_smul_product +/- theorem Finset.mul_def +/- theorem Finset.smul_def Modified Mathlib/Data/Finset/Prod.lean +/- theorem Finset.Nonempty.fst +/- theorem Finset.Nonempty.product +/- theorem Finset.Nonempty.snd +/- theorem Finset.card_product +/- theorem Finset.diag_union_offDiag +/- theorem Finset.disjoint_product +/- theorem Finset.empty_product +/- theorem Finset.inter_product +/- theorem Finset.mem_product +/- theorem Finset.mk_mem_product +/- theorem Finset.nonempty_product +/- theorem Finset.offDiag_insert +/- theorem Finset.product_empty +/- theorem Finset.product_eq_empty +/- theorem Finset.product_image_fst +/- theorem Finset.product_image_snd +/- theorem Finset.product_inter +/- theorem Finset.product_sdiff_diag +/- theorem Finset.product_sdiff_offDiag +/- theorem Finset.product_singleton +/- theorem Finset.product_subset_product +/- theorem Finset.product_subset_product_left +/- theorem Finset.product_subset_product_right +/- theorem Finset.product_union +/- theorem Finset.product_val +/- theorem Finset.subset_product_image_fst +/- theorem Finset.subset_product_image_snd +/- theorem Finset.union_product Modified Mathlib/Data/Finset/Sups.lean +/- theorem Finset.image_inf_product +/- theorem Finset.image_sup_product Modified Mathlib/Data/Finset/Sym.lean Modified Mathlib/Data/Fintype/Prod.lean Modified Mathlib/Data/List/Defs.lean Modified Mathlib/Data/List/Nodup.lean Modified Mathlib/Data/List/ProdSigma.lean +/- theorem List.nil_product +/- theorem List.product_nil Modified Mathlib/Data/Multiset/Bind.lean +/- theorem Multiset.card_product +/- theorem Multiset.coe_product +/- theorem Multiset.cons_product +/- theorem Multiset.product_cons +/- theorem Multiset.product_zero +/- theorem Multiset.zero_product Modified Mathlib/Data/Multiset/Nodup.lean Added Mathlib/Data/SProd.lean Modified Mathlib/Data/Set/Finite.lean Modified Mathlib/Data/Set/Prod.lean Modified Mathlib/Data/Sym/Sym2.lean Modified Mathlib/GroupTheory/Perm/Cycle/Basic.lean Modified Mathlib/GroupTheory/Subgroup/Basic.lean +/- theorem Subgroup.coe_prod Modified Mathlib/GroupTheory/Submonoid/Operations.lean +/- theorem Submonoid.coe_prod Modified Mathlib/GroupTheory/Subsemigroup/Operations.lean +/- theorem Subsemigroup.coe_prod Modified Mathlib/LinearAlgebra/Span.lean +/- theorem Submodule.prod_coe Modified Mathlib/MeasureTheory/Constructions/Polish.lean Modified Mathlib/ModelTheory/Syntax.lean Modified Mathlib/NumberTheory/Divisors.lean Modified Mathlib/Order/Filter/AtTopBot.lean Modified Mathlib/Order/Filter/Bases.lean +/- theorem Filter.compl_diagonal_mem_prod +/- theorem Filter.mem_prod_self_iff Modified Mathlib/Order/Filter/Curry.lean Modified Mathlib/Order/Filter/Interval.lean Modified Mathlib/Order/Filter/Lift.lean +/- theorem Filter.prod_same_eq Modified Mathlib/Order/Filter/NAry.lean +/- theorem Filter.map₂_mk_eq_prod Modified Mathlib/Order/Filter/Pointwise.lean +/- theorem Filter.one_prod_one Modified Mathlib/Order/Filter/Prod.lean +/- theorem Filter.Eventually.diag_of_prod +/- theorem Filter.NeBot.prod +/- theorem Filter.bot_prod +/- theorem Filter.inf_prod +/- theorem Filter.le_prod_map_fst_snd +/- theorem Filter.map_fst_prod +/- theorem Filter.map_snd_prod +/- theorem Filter.prod_bot +/- theorem Filter.prod_comm' +/- theorem Filter.prod_comm +/- theorem Filter.prod_eq +/- theorem Filter.prod_eq_bot +/- theorem Filter.prod_inf +/- theorem Filter.prod_mono_left +/- theorem Filter.prod_mono_right +/- theorem Filter.prod_neBot +/- theorem Filter.prod_principal_principal +/- theorem Filter.prod_pure +/- theorem Filter.prod_pure_pure +/- theorem Filter.prod_sup +/- theorem Filter.prod_top +/- theorem Filter.pure_prod +/- theorem Filter.sup_prod +/- theorem Filter.tendsto_diag +/- theorem Filter.tendsto_fst +/- theorem Filter.tendsto_snd Modified Mathlib/Order/LocallyFinite.lean Modified Mathlib/Order/Partition/Finpartition.lean Modified Mathlib/Order/UpperLower/Basic.lean +/- theorem LowerSet.Ici_prod_Ici +/- theorem LowerSet.Iic_prod +/- theorem LowerSet.bot_prod +/- theorem LowerSet.coe_prod +/- theorem LowerSet.disjoint_prod +/- theorem LowerSet.inf_prod +/- theorem LowerSet.mem_prod +/- theorem LowerSet.prod_bot +/- theorem LowerSet.prod_eq_bot +/- theorem LowerSet.prod_inf +/- theorem LowerSet.prod_inf_prod +/- theorem LowerSet.prod_le_prod_iff +/- theorem LowerSet.prod_mono +/- theorem LowerSet.prod_mono_left +/- theorem LowerSet.prod_mono_right +/- theorem LowerSet.prod_self_le_prod_self +/- theorem LowerSet.prod_self_lt_prod_self +/- theorem LowerSet.prod_sup +/- theorem LowerSet.sup_prod +/- theorem LowerSet.top_prod_top +/- theorem UpperSet.Ici_prod +/- theorem UpperSet.Ici_prod_Ici +/- theorem UpperSet.bot_prod_bot +/- theorem UpperSet.coe_prod +/- theorem UpperSet.inf_prod +/- theorem UpperSet.mem_prod +/- theorem UpperSet.prod_eq_top +/- theorem UpperSet.prod_inf +/- theorem UpperSet.prod_le_prod_iff +/- theorem UpperSet.prod_mono +/- theorem UpperSet.prod_mono_left +/- theorem UpperSet.prod_mono_right +/- theorem UpperSet.prod_self_le_prod_self +/- theorem UpperSet.prod_self_lt_prod_self +/- theorem UpperSet.prod_sup +/- theorem UpperSet.prod_sup_prod +/- theorem UpperSet.prod_top +/- theorem UpperSet.sup_prod +/- theorem UpperSet.top_prod Modified Mathlib/RingTheory/AlgebraTower.lean Modified Mathlib/RingTheory/GradedAlgebra/Radical.lean Modified Mathlib/RingTheory/IntegralClosure.lean Modified Mathlib/RingTheory/Subring/Basic.lean +/- theorem Subring.coe_prod Modified Mathlib/RingTheory/Subsemiring/Basic.lean +/- theorem Subsemiring.coe_prod Modified Mathlib/RingTheory/UniqueFactorizationDomain.lean Modified Mathlib/Topology/Algebra/Group/Basic.lean Modified Mathlib/Topology/Algebra/GroupWithZero.lean Modified Mathlib/Topology/Algebra/Module/Basic.lean Modified Mathlib/Topology/Algebra/Monoid.lean Modified Mathlib/Topology/Algebra/OpenSubgroup.lean +/- theorem OpenSubgroup.coe_prod Modified Mathlib/Topology/Algebra/Order/Compact.lean Modified Mathlib/Topology/Algebra/Order/ProjIcc.lean Modified Mathlib/Topology/Algebra/Ring/Basic.lean Modified Mathlib/Topology/Algebra/UniformFilterBasis.lean Modified Mathlib/Topology/Algebra/UniformGroup.lean Modified Mathlib/Topology/Bases.lean Modified Mathlib/Topology/Constructions.lean +/- theorem nhds_prod_eq Modified Mathlib/Topology/Instances/ENNReal.lean Modified Mathlib/Topology/List.lean Modified Mathlib/Topology/LocallyFinite.lean Modified Mathlib/Topology/MetricSpace/Basic.lean Modified Mathlib/Topology/MetricSpace/PartitionOfUnity.lean Modified Mathlib/Topology/PathConnected.lean Modified Mathlib/Topology/Sequences.lean Modified Mathlib/Topology/Sets/Compacts.lean +/- theorem TopologicalSpace.CompactOpens.coe_prod +/- theorem TopologicalSpace.Compacts.coe_prod Modified Mathlib/Topology/UniformSpace/Basic.lean Modified Mathlib/Topology/UniformSpace/Cauchy.lean Modified Mathlib/Topology/UniformSpace/Completion.lean Modified Mathlib/Topology/UniformSpace/UniformConvergence.lean Modified Mathlib/Topology/UniformSpace/UniformConvergenceTopology.lean Modified Mathlib/Topology/UniformSpace/UniformEmbedding.lean 2023-05-28 08:49:45 3e1d33f feat: port Analysis.Calculus.Deriv.Add (#4435) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/Calculus/Deriv/Add.lean + theorem HasDerivAt.sum + theorem HasDerivAtFilter.add_const + theorem HasDerivAtFilter.const_add + theorem HasDerivAtFilter.const_sub + theorem HasDerivAtFilter.sub + theorem HasDerivAtFilter.sub_const + theorem HasDerivAtFilter.sum + theorem HasDerivWithinAt.sum + theorem HasStrictDerivAt.const_sub + theorem HasStrictDerivAt.sub + theorem HasStrictDerivAt.sum + theorem deriv.neg' + theorem deriv.neg + theorem derivWithin.neg + theorem derivWithin_add + theorem derivWithin_add_const + theorem derivWithin_const_add + theorem derivWithin_const_sub + theorem derivWithin_neg + theorem derivWithin_sub + theorem derivWithin_sub_const + theorem derivWithin_sum + theorem deriv_add + theorem deriv_add_const' + theorem deriv_add_const + theorem deriv_const_add' + theorem deriv_const_add + theorem deriv_const_sub + theorem deriv_neg'' + theorem deriv_neg' + theorem deriv_neg + theorem deriv_sub + theorem deriv_sub_const + theorem deriv_sum + theorem differentiableOn_neg + theorem differentiable_neg + theorem hasDerivAtFilter_neg + theorem hasDerivAt_neg' + theorem hasDerivAt_neg + theorem hasDerivWithinAt_neg + theorem hasStrictDerivAt_neg 2023-05-28 08:49:44 f93df69 chore: rename `Ulower` to `ULower` (#4430) ref #4354 ESTIMATED CHANGES Modified Mathlib/Computability/Primrec.lean +/- theorem Primrec.ulower_down +/- theorem Primrec.ulower_up Modified Mathlib/Computability/Reduce.lean + theorem ULower.down_computable - theorem Ulower.down_computable +/- theorem manyOneEquiv_up Modified Mathlib/Logic/Encodable/Basic.lean + def ULower.down + theorem ULower.down_eq_down + theorem ULower.down_up + def ULower.equiv + def ULower.up + theorem ULower.up_down + theorem ULower.up_eq_up + def ULower - def Ulower.down - theorem Ulower.down_eq_down - theorem Ulower.down_up - def Ulower.equiv - def Ulower.up - theorem Ulower.up_down - theorem Ulower.up_eq_up - def Ulower 2023-05-28 08:49:43 3ff6ded chore: rename `Pcontinuous` to `PContinuous` (#4428) ref #4354 ESTIMATED CHANGES Modified Mathlib/Topology/Basic.lean Modified Mathlib/Topology/Partial.lean + def PContinuous - def Pcontinuous +/- theorem open_dom_of_pcontinuous 2023-05-28 08:49:42 e258549 feat: port Topology.Sheaves.SheafOfFunctions (#4426) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Topology/Sheaves/SheafOfFunctions.lean + theorem TopCat.Presheaf.toType_isSheaf + theorem TopCat.Presheaf.toTypes_isSheaf + def TopCat.sheafToType + def TopCat.sheafToTypes 2023-05-28 08:49:40 32f2722 feat: port/CategoryTheory.Bicategory.Coherence (#4062) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Bicategory/Coherence.lean + def CategoryTheory.FreeBicategory.inclusion + def CategoryTheory.FreeBicategory.inclusionMapCompAux + def CategoryTheory.FreeBicategory.inclusionPath + def CategoryTheory.FreeBicategory.inclusionPathAux + def CategoryTheory.FreeBicategory.normalize + def CategoryTheory.FreeBicategory.normalizeAux + theorem CategoryTheory.FreeBicategory.normalizeAux_congr + theorem CategoryTheory.FreeBicategory.normalizeAux_nil_comp + def CategoryTheory.FreeBicategory.normalizeEquiv + def CategoryTheory.FreeBicategory.normalizeIso + def CategoryTheory.FreeBicategory.normalizeUnitIso + theorem CategoryTheory.FreeBicategory.normalize_naturality + def CategoryTheory.FreeBicategory.preinclusion + theorem CategoryTheory.FreeBicategory.preinclusion_map₂ + theorem CategoryTheory.FreeBicategory.preinclusion_obj 2023-05-28 05:00:30 63c31cc feat: add `compile_inductive%` and `compile_def%` commands (#4097) Add a `#compile inductive` command to compile the recursors of an inductive type, which works by creating a recursive definition and using `@[csimp]`. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/DirectSum/Basic.lean + def DirectSum.sigmaUncurry Modified Mathlib/Algebra/Free.lean + def FreeMagma.recOnMul + def FreeSemigroup.recOnPure Modified Mathlib/Algebra/Star/Basic.lean Modified Mathlib/Algebra/Star/Pointwise.lean Modified Mathlib/Combinatorics/Quiver/Path.lean - def Quiver.Path.recC.{w, - theorem Quiver.Path.rec_eq_recC Modified Mathlib/Computability/PartrecCode.lean Modified Mathlib/Computability/TMToPartrec.lean Modified Mathlib/Data/Analysis/Filter.lean + def Filter.Realizer.ofFilter Modified Mathlib/Data/Dfinsupp/Basic.lean + def Dfinsupp.sigmaUncurry Modified Mathlib/Data/FunLike/Basic.lean Modified Mathlib/Data/List/Defs.lean - def List._sizeOf_instC.{u} - theorem List._sizeOfinst_eq_sizeOfinstC - def List.recC.{u_1, - theorem List.rec_eq_recC Modified Mathlib/Data/Option/Basic.lean - def Option.recC.{u_1, - def Option.recOnC.{u_1, - theorem Option.recOn_eq_recOnC - theorem Option.rec_eq_recC Modified Mathlib/Data/Set/Basic.lean Modified Mathlib/Data/Set/Semiring.lean Modified Mathlib/Data/Tree.lean - def Tree.recOnC - theorem Tree.recOn_Unit_eq_recOnC Modified Mathlib/Data/W/Basic.lean Modified Mathlib/Init/Data/Nat/Basic.lean - def Nat.recC.{u} - theorem Nat.rec_eq_recC Modified Mathlib/Init/Data/Prod.lean - def Prod.recC - theorem rec_eq_recC Modified Mathlib/MeasureTheory/MeasurableSpace.lean Modified Mathlib/ModelTheory/Definability.lean Modified Mathlib/Order/RelClasses.lean Modified Mathlib/SetTheory/Game/PGame.lean Modified Mathlib/SetTheory/Lists.lean + def Lists.Equiv.decidableMeas + def Lists.inductionMut Added Mathlib/Util/CompileInductive.lean + def Mathlib.Util.compileDefn + def Mathlib.Util.compileInductive + def Mathlib.Util.mkRecNames Added test/CompileInductive.lean + def tryToCompileAllInductives 2023-05-28 04:44:03 410924a feat: port Analysis.Calculus.Deriv.Basic (#4434) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/Calculus/Deriv/Basic.lean + theorem DifferentiableAt.derivWithin + theorem DifferentiableAt.hasDerivAt + theorem DifferentiableOn.hasDerivAt + theorem DifferentiableWithinAt.hasDerivWithinAt + theorem Filter.EventuallyEq.derivWithin_eq + theorem Filter.EventuallyEq.deriv_eq + theorem Filter.EventuallyEq.hasDerivAtFilter_iff + theorem HasDerivAt.congr_of_eventuallyEq + theorem HasDerivAt.continuousAt + theorem HasDerivAt.deriv + theorem HasDerivAt.differentiableAt + theorem HasDerivAt.hasDerivAtFilter + theorem HasDerivAt.hasDerivWithinAt + theorem HasDerivAt.unique + def HasDerivAt + theorem HasDerivAtFilter.congr_of_eventuallyEq + theorem HasDerivAtFilter.isBigO_sub + theorem HasDerivAtFilter.mono + def HasDerivAtFilter + theorem HasDerivWithinAt.Ioi_iff_Ioo + theorem HasDerivWithinAt.congr + theorem HasDerivWithinAt.congr_mono + theorem HasDerivWithinAt.congr_of_eventuallyEq + theorem HasDerivWithinAt.congr_of_eventuallyEq_of_mem + theorem HasDerivWithinAt.congr_of_mem + theorem HasDerivWithinAt.continuousWithinAt + theorem HasDerivWithinAt.derivWithin + theorem HasDerivWithinAt.deriv_eq_zero + theorem HasDerivWithinAt.differentiableWithinAt + theorem HasDerivWithinAt.hasDerivAt + theorem HasDerivWithinAt.hasFDerivWithinAt + theorem HasDerivWithinAt.mono + theorem HasDerivWithinAt.mono_of_mem + theorem HasDerivWithinAt.nhdsWithin + theorem HasDerivWithinAt.union + def HasDerivWithinAt + theorem HasFDerivAt.hasDerivAt + theorem HasFDerivAtFilter.hasDerivAtFilter + theorem HasFDerivWithinAt.hasDerivWithinAt + theorem HasStrictDerivAt.hasDerivAt + def HasStrictDerivAt + theorem UniqueDiffWithinAt.eq_deriv + def deriv + def derivWithin + theorem derivWithin_Ioi_eq_Ici + theorem derivWithin_congr + theorem derivWithin_congr_set' + theorem derivWithin_congr_set + theorem derivWithin_const + theorem derivWithin_fderivWithin + theorem derivWithin_id + theorem derivWithin_inter + theorem derivWithin_mem_iff + theorem derivWithin_of_mem + theorem derivWithin_of_open + theorem derivWithin_subset + theorem derivWithin_univ + theorem derivWithin_zero_of_not_differentiableWithinAt + theorem deriv_const' + theorem deriv_const + theorem deriv_eq + theorem deriv_fderiv + theorem deriv_id'' + theorem deriv_id' + theorem deriv_id + theorem deriv_mem_iff + theorem deriv_zero_of_not_differentiableAt + theorem differentiableAt_of_deriv_ne_zero + theorem differentiableWithinAt_Ioi_iff_Ici + theorem differentiableWithinAt_of_derivWithin_ne_zero + theorem fderivWithin_derivWithin + theorem fderiv_deriv + theorem hasDerivAtFilter_const + theorem hasDerivAtFilter_id + theorem hasDerivAtFilter_iff_isLittleO + theorem hasDerivAtFilter_iff_tendsto + theorem hasDerivAt_const + theorem hasDerivAt_deriv_iff + theorem hasDerivAt_id' + theorem hasDerivAt_id + theorem hasDerivAt_iff_hasFDerivAt + theorem hasDerivAt_iff_isLittleO + theorem hasDerivAt_iff_isLittleO_nhds_zero + theorem hasDerivAt_iff_tendsto + theorem hasDerivWithinAt_Iio_iff_Iic + theorem hasDerivWithinAt_Ioi_iff_Ici + theorem hasDerivWithinAt_congr_set' + theorem hasDerivWithinAt_congr_set + theorem hasDerivWithinAt_const + theorem hasDerivWithinAt_derivWithin_iff + theorem hasDerivWithinAt_diff_singleton + theorem hasDerivWithinAt_id + theorem hasDerivWithinAt_iff_hasFDerivWithinAt + theorem hasDerivWithinAt_iff_isLittleO + theorem hasDerivWithinAt_iff_tendsto + theorem hasDerivWithinAt_inter' + theorem hasDerivWithinAt_inter + theorem hasDerivWithinAt_univ + theorem hasFDerivAtFilter_iff_hasDerivAtFilter + theorem hasFDerivAt_iff_hasDerivAt + theorem hasFDerivWithinAt_iff_hasDerivWithinAt + theorem hasStrictDerivAt_const + theorem hasStrictDerivAt_id + theorem hasStrictDerivAt_iff_hasStrictFDerivAt + theorem hasStrictFDerivAt_iff_hasStrictDerivAt 2023-05-27 20:20:49 9b8711f feat: port Algebra.Category.ModuleCat.Monoidal.Basic (#4368) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Category/ModuleCat/Monoidal/Basic.lean + def ModuleCat.MonoidalCategory.associator + theorem ModuleCat.MonoidalCategory.associator_hom_apply + theorem ModuleCat.MonoidalCategory.associator_inv_apply + theorem ModuleCat.MonoidalCategory.associator_naturality + theorem ModuleCat.MonoidalCategory.hom_apply + def ModuleCat.MonoidalCategory.leftUnitor + theorem ModuleCat.MonoidalCategory.leftUnitor_hom_apply + theorem ModuleCat.MonoidalCategory.leftUnitor_inv_apply + theorem ModuleCat.MonoidalCategory.leftUnitor_naturality + theorem ModuleCat.MonoidalCategory.pentagon + def ModuleCat.MonoidalCategory.rightUnitor + theorem ModuleCat.MonoidalCategory.rightUnitor_hom_apply + theorem ModuleCat.MonoidalCategory.rightUnitor_inv_apply + theorem ModuleCat.MonoidalCategory.rightUnitor_naturality + def ModuleCat.MonoidalCategory.tensorHom + def ModuleCat.MonoidalCategory.tensorObj + theorem ModuleCat.MonoidalCategory.tensor_comp + theorem ModuleCat.MonoidalCategory.tensor_id + theorem ModuleCat.MonoidalCategory.triangle 2023-05-27 16:47:24 53b34d3 chore: forward-port leanprover-community/mathlib#19080 (#4398) ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Opposite.lean + theorem isUnit_op + theorem isUnit_unop 2023-05-27 16:32:04 fde7c99 fix: don't use `initialize` for rootHash (#4369) This fixes a bug [reported on Zulip](https://leanprover.zulipchat.com/#narrow/stream/270676-lean4/topic/.60lake.20exe.60.20interpreted.20mode.3F/near/361190733). Using `initialize` here is bad for two reasons: 1. The root hash is calculated during initialization, meaning that whenever lean builds any file downstream of `Cache.Hashing` the relevant files have to be re-read and hashed (meaning 3x for `Cache.Hashing` , `Cache.Requests` and `Cache.Main`), even though they will be hashed once more at run time when run via `lake exe cache get`. 2. The variable does not seem to be initialized when run in the interpreter, leading to nondeterministic results when accessing the `rootHash` and causing the aforementioned bug. A fix for this bug is up at https://github.com/leanprover/lean4/pull/2236 , but there is no need to wait for it for this PR. ESTIMATED CHANGES Modified Cache/Hashing.lean 2023-05-27 16:11:47 082fcd0 feat: port NumberTheory.Padics.RingHoms (#4395) A coercion in a previous file (done by me) was wrong so I fix it in this PR ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/NumberTheory/Padics/PadicIntegers.lean +/- theorem PadicInt.exists_pow_neg_lt_rat Added Mathlib/NumberTheory/Padics/RingHoms.lean + theorem PadicInt.appr_lt + theorem PadicInt.appr_mono + theorem PadicInt.appr_spec + theorem PadicInt.cast_toZModPow + theorem PadicInt.denseRange_int_cast + theorem PadicInt.denseRange_nat_cast + theorem PadicInt.dvd_appr_sub_appr + theorem PadicInt.exists_mem_range + theorem PadicInt.exists_mem_range_of_norm_rat_le_one + theorem PadicInt.ext_of_toZModPow + theorem PadicInt.isCauSeq_nthHom + theorem PadicInt.isUnit_den + theorem PadicInt.ker_toZMod + theorem PadicInt.ker_toZModPow + def PadicInt.lift + theorem PadicInt.lift_self + theorem PadicInt.lift_spec + theorem PadicInt.lift_sub_val_mem_span + theorem PadicInt.lift_unique + def PadicInt.limNthHom + theorem PadicInt.limNthHom_add + theorem PadicInt.limNthHom_mul + theorem PadicInt.limNthHom_one + theorem PadicInt.limNthHom_spec + theorem PadicInt.limNthHom_zero + def PadicInt.modPart + theorem PadicInt.modPart_lt_p + theorem PadicInt.modPart_nonneg + theorem PadicInt.norm_sub_modPart + theorem PadicInt.norm_sub_mod_part_aux + def PadicInt.nthHom + def PadicInt.nthHomSeq + theorem PadicInt.nthHomSeq_add + theorem PadicInt.nthHomSeq_mul + theorem PadicInt.nthHomSeq_one + theorem PadicInt.nthHom_zero + theorem PadicInt.pow_dvd_nthHom_sub + theorem PadicInt.sub_zmodRepr_mem + def PadicInt.toZMod + def PadicInt.toZModHom + def PadicInt.toZModPow + theorem PadicInt.toZModPow_eq_iff_ext + theorem PadicInt.toZMod_spec + def PadicInt.zmodRepr + theorem PadicInt.zmodRepr_lt_p + theorem PadicInt.zmodRepr_spec + theorem PadicInt.zmod_cast_comp_toZModPow + theorem PadicInt.zmod_congr_of_sub_mem_max_ideal + theorem PadicInt.zmod_congr_of_sub_mem_span + theorem PadicInt.zmod_congr_of_sub_mem_span_aux 2023-05-27 15:27:29 b9fc156 feat: port Topology.Sheaves.SheafCondition.UniqueGluing (#4424) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Topology/Sheaves/SheafCondition/UniqueGluing.lean + def TopCat.Presheaf.IsCompatible + def TopCat.Presheaf.IsGluing + def TopCat.Presheaf.IsSheafUniqueGluing + theorem TopCat.Presheaf.compatible_iff_leftRes_eq_rightRes + theorem TopCat.Presheaf.isGluing_iff_eq_res + theorem TopCat.Presheaf.isSheafUniqueGluing_of_isSheaf_types + theorem TopCat.Presheaf.isSheaf_iff_isSheafUniqueGluing + theorem TopCat.Presheaf.isSheaf_iff_isSheafUniqueGluing_types + theorem TopCat.Presheaf.isSheaf_of_isSheafUniqueGluing_types + def TopCat.Presheaf.piOpensIsoSectionsFamily + theorem TopCat.Sheaf.eq_of_locally_eq' + theorem TopCat.Sheaf.eq_of_locally_eq + theorem TopCat.Sheaf.eq_of_locally_eq₂ + theorem TopCat.Sheaf.existsUnique_gluing' + theorem TopCat.Sheaf.existsUnique_gluing 2023-05-27 14:58:24 746478e feat: port Geometry.Euclidean.Sphere.SecondInter (#4419) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Geometry/Euclidean/Sphere/SecondInter.lean + theorem EuclideanGeometry.Sphere.eq_or_eq_secondInter_of_mem_mk'_span_singleton_iff_mem + theorem EuclideanGeometry.Sphere.sbtw_secondInter + def EuclideanGeometry.Sphere.secondInter + theorem EuclideanGeometry.Sphere.secondInter_collinear + theorem EuclideanGeometry.Sphere.secondInter_dist + theorem EuclideanGeometry.Sphere.secondInter_eq_lineMap + theorem EuclideanGeometry.Sphere.secondInter_eq_self_iff + theorem EuclideanGeometry.Sphere.secondInter_mem + theorem EuclideanGeometry.Sphere.secondInter_neg + theorem EuclideanGeometry.Sphere.secondInter_secondInter + theorem EuclideanGeometry.Sphere.secondInter_smul + theorem EuclideanGeometry.Sphere.secondInter_vsub_mem_affineSpan + theorem EuclideanGeometry.Sphere.secondInter_zero + theorem EuclideanGeometry.Sphere.wbtw_secondInter 2023-05-27 14:37:51 9f94180 chore: tidy various files (#4423) ESTIMATED CHANGES Modified Mathlib/Algebra/Category/GroupCat/Colimits.lean Modified Mathlib/Algebra/Category/GroupCat/Images.lean Modified Mathlib/Algebra/Category/Ring/Constructions.lean Modified Mathlib/Algebra/Module/Torsion.lean Modified Mathlib/AlgebraicGeometry/PrimeSpectrum/IsOpenComapC.lean + theorem AlgebraicGeometry.Polynomial.isOpenMap_comap_C - theorem AlgebraicGeometry.Polynomial.isOpenMap_comap_c Modified Mathlib/AlgebraicGeometry/SheafedSpace.lean Modified Mathlib/Analysis/BoxIntegral/Partition/Additive.lean + def BoxIntegral.BoxAdditiveMap.toSMul + theorem BoxIntegral.BoxAdditiveMap.toSMul_apply - def BoxIntegral.BoxAdditiveMap.toSmul - theorem BoxIntegral.BoxAdditiveMap.toSmul_apply Modified Mathlib/Analysis/NormedSpace/Star/Multiplier.lean Modified Mathlib/Combinatorics/Configuration.lean Modified Mathlib/Data/Nat/Squarefree.lean Modified Mathlib/FieldTheory/Separable.lean Modified Mathlib/GroupTheory/SpecificGroups/Cyclic.lean Modified Mathlib/LinearAlgebra/Contraction.lean Modified Mathlib/LinearAlgebra/Matrix/GeneralLinearGroup.lean Modified Mathlib/RingTheory/IntegralDomain.lean Modified Mathlib/RingTheory/LaurentSeries.lean Modified Mathlib/RingTheory/Localization/LocalizationLocalization.lean 2023-05-27 14:09:46 c7a9e11 feat: port Geometry.Euclidean.Sphere.Power (#4418) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Geometry/Euclidean/Sphere/Power.lean + theorem EuclideanGeometry.mul_dist_eq_abs_sub_sq_dist + theorem EuclideanGeometry.mul_dist_eq_mul_dist_of_cospherical + theorem EuclideanGeometry.mul_dist_eq_mul_dist_of_cospherical_of_angle_eq_pi + theorem EuclideanGeometry.mul_dist_eq_mul_dist_of_cospherical_of_angle_eq_zero + theorem InnerProductGeometry.mul_norm_eq_abs_sub_sq_norm 2023-05-27 13:50:35 82da8be fix: recover `convert` proof in Geometry.Euclidean.Inversion (#4421) During porting a `convert` proof was converted to `calc`. This switches to a more direct translation of the original. We need `using` now because `convert` is happy to descend into the expressions and equate `(HMul.hMul : ℝ → ℝ → ℝ) = (HDiv.hDiv : ℝ → ℝ → ℝ)` since these involve the same types. The old `convert` wouldn't do this because it used simp's congr lemmas, and these require that the functions be defeq rather than just equal. ESTIMATED CHANGES Modified Mathlib/Geometry/Euclidean/Inversion.lean 2023-05-27 13:11:53 ba4e1ad feat: port Algebra.Category.GroupCat.Biproducts (#4411) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Category/GroupCat/Biproducts.lean + def AddCommGroupCat.HasLimit.lift + def AddCommGroupCat.HasLimit.productLimitCone + def AddCommGroupCat.binaryProductLimitCone + theorem AddCommGroupCat.binaryProductLimitCone_cone_π_app_left + theorem AddCommGroupCat.binaryProductLimitCone_cone_π_app_right + theorem AddCommGroupCat.biprodIsoProd_inv_comp_fst + theorem AddCommGroupCat.biprodIsoProd_inv_comp_snd + theorem AddCommGroupCat.biproductIsoPi_inv_comp_π 2023-05-27 13:11:52 03406ab feat: port Analysis.Convex.Cone.Dual (#4410) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/Convex/Cone/Dual.lean + theorem ConvexCone.hyperplane_separation_of_nonempty_of_isClosed_of_nmem + theorem ConvexCone.innerDualCone_of_innerDualCone_eq_self + theorem ConvexCone.pointed_of_nonempty_of_isClosed + def Set.innerDualCone + theorem innerDualCone_empty + theorem innerDualCone_eq_iInter_innerDualCone_singleton + theorem innerDualCone_iUnion + theorem innerDualCone_insert + theorem innerDualCone_le_innerDualCone + theorem innerDualCone_sUnion + theorem innerDualCone_singleton + theorem innerDualCone_union + theorem innerDualCone_univ + theorem innerDualCone_zero + theorem isClosed_innerDualCone + theorem mem_innerDualCone + theorem pointed_innerDualCone 2023-05-27 13:11:50 5c0e233 feat: port Topology.Sheaves.Forget (#4407) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Topology/Sheaves/Forget.lean + def TopCat.Presheaf.SheafCondition.diagramCompPreservesLimits + def TopCat.Presheaf.SheafCondition.mapConeFork + theorem TopCat.Presheaf.isSheaf_iff_isSheaf_comp 2023-05-27 12:50:32 d38efec feat: port Geometry.Euclidean.Sphere.Basic (#4408) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Geometry/Euclidean/Sphere/Basic.lean + theorem EuclideanGeometry.Concyclic.subset + structure EuclideanGeometry.Concyclic + theorem EuclideanGeometry.Cospherical.affineIndependent + theorem EuclideanGeometry.Cospherical.affineIndependent_of_mem_of_ne + theorem EuclideanGeometry.Cospherical.affineIndependent_of_ne + theorem EuclideanGeometry.Cospherical.subset + def EuclideanGeometry.Cospherical + theorem EuclideanGeometry.Sphere.center_eq_iff_eq_of_mem + theorem EuclideanGeometry.Sphere.center_ne_iff_ne_of_mem + theorem EuclideanGeometry.Sphere.coe_mk + theorem EuclideanGeometry.Sphere.cospherical + theorem EuclideanGeometry.Sphere.mem_coe' + theorem EuclideanGeometry.Sphere.mem_coe + theorem EuclideanGeometry.Sphere.mk_center + theorem EuclideanGeometry.Sphere.mk_center_radius + theorem EuclideanGeometry.Sphere.mk_radius + theorem EuclideanGeometry.Sphere.ne_iff + structure EuclideanGeometry.Sphere + theorem EuclideanGeometry.concyclic_empty + theorem EuclideanGeometry.concyclic_pair + theorem EuclideanGeometry.concyclic_singleton + theorem EuclideanGeometry.cospherical_def + theorem EuclideanGeometry.cospherical_empty + theorem EuclideanGeometry.cospherical_iff_exists_sphere + theorem EuclideanGeometry.cospherical_pair + theorem EuclideanGeometry.cospherical_singleton + theorem EuclideanGeometry.dist_center_eq_dist_center_of_mem_sphere' + theorem EuclideanGeometry.dist_center_eq_dist_center_of_mem_sphere + theorem EuclideanGeometry.dist_of_mem_subset_mk_sphere + theorem EuclideanGeometry.dist_of_mem_subset_sphere + theorem EuclideanGeometry.eq_of_mem_sphere_of_mem_sphere_of_finrank_eq_two + theorem EuclideanGeometry.eq_of_mem_sphere_of_mem_sphere_of_mem_of_finrank_eq_two + theorem EuclideanGeometry.inner_nonneg_of_dist_le_radius + theorem EuclideanGeometry.inner_pos_of_dist_lt_radius + theorem EuclideanGeometry.inner_pos_or_eq_of_dist_le_radius + theorem EuclideanGeometry.inner_vsub_vsub_of_mem_sphere_of_mem_sphere + theorem EuclideanGeometry.mem_sphere' + theorem EuclideanGeometry.mem_sphere + theorem EuclideanGeometry.sbtw_of_collinear_of_dist_center_lt_radius + theorem EuclideanGeometry.subset_sphere + theorem EuclideanGeometry.wbtw_of_collinear_of_dist_center_le_radius 2023-05-27 12:18:31 23055ec port: `Nat.sqrt` extension for `norm_num` (#4027) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Tactic.lean Added Mathlib/Tactic/NormNum/NatSqrt.lean + def Tactic.NormNum.evalNatSqrt + theorem Tactic.NormNum.isNat_sqrt + theorem Tactic.NormNum.nat_sqrt_helper + def Tactic.NormNum.proveNatSqrt Modified test/norm_num_ext.lean 2023-05-27 10:43:01 67093cd port: `Nat.fib` extension for `norm_num` (#4036) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Data/Nat/Fib.lean + theorem Nat.fib_two_mul_add_two - def NormNum.IsFibAux - theorem NormNum.is_fib_aux_bit0 - theorem NormNum.is_fib_aux_bit0_done - theorem NormNum.is_fib_aux_bit1 - theorem NormNum.is_fib_aux_bit1_done - theorem NormNum.is_fib_aux_one Modified Mathlib/Tactic.lean Added Mathlib/Tactic/NormNum/NatFib.lean + def Mathlib.Meta.NormNum.IsFibAux + def Mathlib.Meta.NormNum.evalNatFib + theorem Mathlib.Meta.NormNum.isFibAux_one + theorem Mathlib.Meta.NormNum.isFibAux_two_mul + theorem Mathlib.Meta.NormNum.isFibAux_two_mul_add_one + theorem Mathlib.Meta.NormNum.isFibAux_two_mul_add_one_done + theorem Mathlib.Meta.NormNum.isFibAux_two_mul_done + theorem Mathlib.Meta.NormNum.isFibAux_zero + theorem Mathlib.Meta.NormNum.isNat_fib + def Mathlib.Meta.NormNum.proveNatFib Modified test/norm_num_ext.lean 2023-05-27 09:19:15 aabb305 feat: port Algebra.Category.Ring.Adjunctions (#4413) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Category/Ring/Adjunctions.lean + def CommRingCat.adj + def CommRingCat.free + theorem CommRingCat.free_map_coe + theorem CommRingCat.free_obj_coe 2023-05-27 09:03:28 caa86f1 feat: port Analysis.InnerProductSpace.LaxMilgram (#4415) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/InnerProductSpace/LaxMilgram.lean + theorem IsCoercive.antilipschitz + theorem IsCoercive.bounded_below + theorem IsCoercive.closed_range + def IsCoercive.continuousLinearEquivOfBilin + theorem IsCoercive.continuousLinearEquivOfBilin_apply + theorem IsCoercive.ker_eq_bot + theorem IsCoercive.range_eq_top + theorem IsCoercive.unique_continuousLinearEquivOfBilin 2023-05-26 23:07:22 4321641 feat: port Geometry.Euclidean.Basic (#4406) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Geometry/Euclidean/Basic.lean + theorem EuclideanGeometry.dist_affineCombination + theorem EuclideanGeometry.dist_left_midpoint_eq_dist_right_midpoint + theorem EuclideanGeometry.dist_orthogonalProjection_eq_zero_iff + theorem EuclideanGeometry.dist_orthogonalProjection_ne_zero_of_not_mem + theorem EuclideanGeometry.dist_reflection + theorem EuclideanGeometry.dist_reflection_eq_of_mem + theorem EuclideanGeometry.dist_smul_vadd_eq_dist + theorem EuclideanGeometry.dist_smul_vadd_sq + theorem EuclideanGeometry.dist_sq_eq_dist_orthogonalProjection_sq_add_dist_orthogonalProjection_sq + theorem EuclideanGeometry.dist_sq_smul_orthogonal_vadd_smul_orthogonal_vadd + theorem EuclideanGeometry.eq_of_dist_eq_of_dist_eq_of_finrank_eq_two + theorem EuclideanGeometry.eq_of_dist_eq_of_dist_eq_of_mem_of_finrank_eq_two + theorem EuclideanGeometry.eq_orthogonalProjection_of_eq_subspace + theorem EuclideanGeometry.eq_reflection_of_eq_subspace + theorem EuclideanGeometry.inner_vsub_vsub_of_dist_eq_of_dist_eq + theorem EuclideanGeometry.inner_weightedVSub + theorem EuclideanGeometry.inter_eq_singleton_orthogonalProjection + theorem EuclideanGeometry.inter_eq_singleton_orthogonalProjectionFn + def EuclideanGeometry.orthogonalProjectionFn + theorem EuclideanGeometry.orthogonalProjectionFn_eq + theorem EuclideanGeometry.orthogonalProjectionFn_mem + theorem EuclideanGeometry.orthogonalProjectionFn_mem_orthogonal + theorem EuclideanGeometry.orthogonalProjectionFn_vsub_mem_direction_orthogonal + theorem EuclideanGeometry.orthogonalProjection_eq_self_iff + theorem EuclideanGeometry.orthogonalProjection_linear + theorem EuclideanGeometry.orthogonalProjection_mem + theorem EuclideanGeometry.orthogonalProjection_mem_orthogonal + theorem EuclideanGeometry.orthogonalProjection_mem_subspace_eq_self + theorem EuclideanGeometry.orthogonalProjection_orthogonalProjection + theorem EuclideanGeometry.orthogonalProjection_vadd_eq_self + theorem EuclideanGeometry.orthogonalProjection_vadd_smul_vsub_orthogonalProjection + theorem EuclideanGeometry.orthogonalProjection_vsub_mem_direction + theorem EuclideanGeometry.orthogonalProjection_vsub_mem_direction_orthogonal + theorem EuclideanGeometry.orthogonalProjection_vsub_orthogonalProjection + def EuclideanGeometry.reflection + theorem EuclideanGeometry.reflection_apply + theorem EuclideanGeometry.reflection_eq_iff_orthogonalProjection_eq + theorem EuclideanGeometry.reflection_eq_self_iff + theorem EuclideanGeometry.reflection_involutive + theorem EuclideanGeometry.reflection_mem_of_le_of_mem + theorem EuclideanGeometry.reflection_orthogonal_vadd + theorem EuclideanGeometry.reflection_reflection + theorem EuclideanGeometry.reflection_symm + theorem EuclideanGeometry.reflection_vadd_smul_vsub_orthogonalProjection + theorem EuclideanGeometry.vsub_orthogonalProjection_mem_direction + theorem EuclideanGeometry.vsub_orthogonalProjection_mem_direction_orthogonal 2023-05-26 23:07:21 cff244b feat: port AlgebraicGeometry.SheafedSpace (#4405) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/AlgebraicGeometry/SheafedSpace.lean + theorem AlgebraicGeometry.SheafedSpace.comp_base + theorem AlgebraicGeometry.SheafedSpace.comp_c_app' + theorem AlgebraicGeometry.SheafedSpace.comp_c_app + theorem AlgebraicGeometry.SheafedSpace.congr_app + def AlgebraicGeometry.SheafedSpace.forget + def AlgebraicGeometry.SheafedSpace.forgetToPresheafedSpace + theorem AlgebraicGeometry.SheafedSpace.id_base + theorem AlgebraicGeometry.SheafedSpace.id_c + theorem AlgebraicGeometry.SheafedSpace.id_c_app + theorem AlgebraicGeometry.SheafedSpace.mk_coe + def AlgebraicGeometry.SheafedSpace.restrict + def AlgebraicGeometry.SheafedSpace.restrictTopIso + def AlgebraicGeometry.SheafedSpace.sheaf + def AlgebraicGeometry.SheafedSpace.unit + def AlgebraicGeometry.SheafedSpace.Γ + theorem AlgebraicGeometry.SheafedSpace.Γ_def + theorem AlgebraicGeometry.SheafedSpace.Γ_map + theorem AlgebraicGeometry.SheafedSpace.Γ_map_op + theorem AlgebraicGeometry.SheafedSpace.Γ_obj + theorem AlgebraicGeometry.SheafedSpace.Γ_obj_op + structure AlgebraicGeometry.SheafedSpace 2023-05-26 23:07:20 78c6eda feat: port Algebra.Category.GroupCat.Images (#4403) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Category/GroupCat/Images.lean + def AddCommGroupCat.factorThruImage + theorem AddCommGroupCat.image.fac + theorem AddCommGroupCat.image.lift_fac + def AddCommGroupCat.image.ι + def AddCommGroupCat.image + def AddCommGroupCat.monoFactorisation 2023-05-26 23:07:19 9145958 feat: port Analysis.InnerProductSpace.Dual (#4402) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/InnerProductSpace/Dual.lean + def InnerProductSpace.continuousLinearMapOfBilin + theorem InnerProductSpace.continuousLinearMapOfBilin_apply + theorem InnerProductSpace.ext_inner_left_basis + theorem InnerProductSpace.ext_inner_right_basis + theorem InnerProductSpace.innerSL_norm + def InnerProductSpace.toDual + def InnerProductSpace.toDualMap + theorem InnerProductSpace.toDualMap_apply + theorem InnerProductSpace.toDual_apply + theorem InnerProductSpace.toDual_symm_apply + theorem InnerProductSpace.unique_continuousLinearMapOfBilin 2023-05-26 23:07:18 2094018 feat: port Geometry.Euclidean.Angle.Unoriented.Affine (#4400) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Geometry/Euclidean/Angle/Unoriented/Affine.lean + theorem AffineIsometry.angle_map + theorem AffineSubspace.angle_coe + theorem EuclideanGeometry.angle_add_const + theorem EuclideanGeometry.angle_const_add + theorem EuclideanGeometry.angle_const_sub + theorem EuclideanGeometry.angle_const_vadd + theorem EuclideanGeometry.angle_const_vsub + theorem EuclideanGeometry.angle_eq_angle_of_angle_eq_pi + theorem EuclideanGeometry.angle_eq_angle_of_angle_eq_pi_of_angle_eq_pi + theorem EuclideanGeometry.angle_eq_left + theorem EuclideanGeometry.angle_eq_of_ne + theorem EuclideanGeometry.angle_eq_pi_iff_sbtw + theorem EuclideanGeometry.angle_eq_right + theorem EuclideanGeometry.angle_eq_zero_iff_eq_and_ne_or_sbtw + theorem EuclideanGeometry.angle_eq_zero_iff_ne_and_wbtw + theorem EuclideanGeometry.angle_eq_zero_of_angle_eq_pi_left + theorem EuclideanGeometry.angle_eq_zero_of_angle_eq_pi_right + theorem EuclideanGeometry.angle_left_midpoint_eq_pi_div_two_of_dist_eq + theorem EuclideanGeometry.angle_lt_pi_of_not_collinear + theorem EuclideanGeometry.angle_midpoint_eq_pi + theorem EuclideanGeometry.angle_ne_pi_of_not_collinear + theorem EuclideanGeometry.angle_ne_zero_of_not_collinear + theorem EuclideanGeometry.angle_neg + theorem EuclideanGeometry.angle_pos_of_not_collinear + theorem EuclideanGeometry.angle_right_midpoint_eq_pi_div_two_of_dist_eq + theorem EuclideanGeometry.angle_sub_const + theorem EuclideanGeometry.angle_vadd_const + theorem EuclideanGeometry.angle_vsub_const + theorem EuclideanGeometry.collinear_iff_eq_or_eq_or_angle_eq_zero_or_angle_eq_pi + theorem EuclideanGeometry.collinear_iff_eq_or_eq_or_sin_eq_zero + theorem EuclideanGeometry.collinear_of_angle_eq_pi + theorem EuclideanGeometry.collinear_of_angle_eq_zero + theorem EuclideanGeometry.collinear_of_sin_eq_zero + theorem EuclideanGeometry.continuousAt_angle + theorem EuclideanGeometry.dist_eq_abs_sub_dist_iff_angle_eq_zero + theorem EuclideanGeometry.dist_eq_abs_sub_dist_of_angle_eq_zero + theorem EuclideanGeometry.dist_eq_add_dist_iff_angle_eq_pi + theorem EuclideanGeometry.dist_eq_add_dist_of_angle_eq_pi + theorem EuclideanGeometry.left_dist_ne_zero_of_angle_eq_pi + theorem EuclideanGeometry.right_dist_ne_zero_of_angle_eq_pi + theorem EuclideanGeometry.sin_ne_zero_of_not_collinear + theorem EuclideanGeometry.sin_pos_of_not_collinear + theorem Sbtw.angle₁₂₃_eq_pi + theorem Sbtw.angle₁₃₂_eq_zero + theorem Sbtw.angle₂₁₃_eq_zero + theorem Sbtw.angle₂₃₁_eq_zero + theorem Sbtw.angle₃₁₂_eq_zero + theorem Sbtw.angle₃₂₁_eq_pi + theorem Wbtw.angle₁₃₂_eq_zero_of_ne + theorem Wbtw.angle₂₁₃_eq_zero_of_ne + theorem Wbtw.angle₂₃₁_eq_zero_of_ne + theorem Wbtw.angle₃₁₂_eq_zero_of_ne 2023-05-26 22:04:26 65926b1 feat: port Analysis.NormedSpace.PiLp (#4345) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/NormedSpace/PiLp.lean + def LinearIsometryEquiv.piLpCongrLeft + theorem LinearIsometryEquiv.piLpCongrLeft_apply + theorem LinearIsometryEquiv.piLpCongrLeft_single + theorem LinearIsometryEquiv.piLpCongrLeft_symm + theorem PiLp.add_apply + theorem PiLp.antilipschitzWith_equiv + theorem PiLp.antilipschitzWith_equiv_aux + theorem PiLp.aux_cobounded_eq + theorem PiLp.aux_uniformity_eq + def PiLp.basisFun + theorem PiLp.basisFun_apply + theorem PiLp.basisFun_eq_pi_basisFun + theorem PiLp.basisFun_equivFun + theorem PiLp.basisFun_map + theorem PiLp.basisFun_repr + theorem PiLp.continuousLinearEquiv_invFun + theorem PiLp.continuous_equiv + theorem PiLp.continuous_equiv_symm + theorem PiLp.dist_eq_card + theorem PiLp.dist_eq_iSup + theorem PiLp.dist_eq_of_L2 + theorem PiLp.dist_eq_sum + theorem PiLp.dist_equiv_symm_single_same + theorem PiLp.edist_eq_card + theorem PiLp.edist_eq_iSup + theorem PiLp.edist_eq_of_L2 + theorem PiLp.edist_eq_sum + theorem PiLp.edist_equiv_symm_single_same + theorem PiLp.equiv_add + theorem PiLp.equiv_apply + theorem PiLp.equiv_neg + theorem PiLp.equiv_smul + theorem PiLp.equiv_sub + theorem PiLp.equiv_symm_add + theorem PiLp.equiv_symm_apply + theorem PiLp.equiv_symm_neg + theorem PiLp.equiv_symm_smul + theorem PiLp.equiv_symm_sub + theorem PiLp.equiv_symm_zero + theorem PiLp.equiv_zero + def PiLp.equivₗᵢ + theorem PiLp.iSup_edist_ne_top_aux + theorem PiLp.infty_equiv_isometry + theorem PiLp.lipschitzWith_equiv + theorem PiLp.lipschitzWith_equiv_aux + theorem PiLp.neg_apply + theorem PiLp.nndist_eq_iSup + theorem PiLp.nndist_eq_of_L2 + theorem PiLp.nndist_eq_sum + theorem PiLp.nndist_equiv_symm_single_same + theorem PiLp.nnnorm_eq_ciSup + theorem PiLp.nnnorm_eq_of_L2 + theorem PiLp.nnnorm_eq_sum + theorem PiLp.nnnorm_equiv_symm_const' + theorem PiLp.nnnorm_equiv_symm_const + theorem PiLp.nnnorm_equiv_symm_one + theorem PiLp.nnnorm_equiv_symm_single + theorem PiLp.norm_eq_card + theorem PiLp.norm_eq_ciSup + theorem PiLp.norm_eq_of_L2 + theorem PiLp.norm_eq_of_nat + theorem PiLp.norm_eq_sum + theorem PiLp.norm_equiv_symm_const' + theorem PiLp.norm_equiv_symm_const + theorem PiLp.norm_equiv_symm_one + theorem PiLp.norm_equiv_symm_single + theorem PiLp.norm_sq_eq_of_L2 + def PiLp.pseudoEmetricAux + def PiLp.pseudoMetricAux + theorem PiLp.smul_apply + theorem PiLp.sub_apply + theorem PiLp.uniformContinuous_equiv + theorem PiLp.uniformContinuous_equiv_symm + theorem PiLp.zero_apply + def PiLp Modified Mathlib/Topology/Bornology/Constructions.lean Modified Mathlib/Topology/Separation.lean 2023-05-26 20:04:11 61bc9c0 feat: port Topology.Sheaves.SheafCondition.EqualizerProducts (#4394) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Topology/Sheaves/SheafCondition/EqualizerProducts.lean + def TopCat.Presheaf.IsSheafEqualizerProducts + def TopCat.Presheaf.SheafConditionEqualizerProducts.diagram.isoOfIso + def TopCat.Presheaf.SheafConditionEqualizerProducts.diagram + def TopCat.Presheaf.SheafConditionEqualizerProducts.fork.isoOfIso + def TopCat.Presheaf.SheafConditionEqualizerProducts.fork + theorem TopCat.Presheaf.SheafConditionEqualizerProducts.fork_pt + theorem TopCat.Presheaf.SheafConditionEqualizerProducts.fork_ι + theorem TopCat.Presheaf.SheafConditionEqualizerProducts.fork_π_app_walkingParallelPair_one + theorem TopCat.Presheaf.SheafConditionEqualizerProducts.fork_π_app_walkingParallelPair_zero + def TopCat.Presheaf.SheafConditionEqualizerProducts.leftRes + def TopCat.Presheaf.SheafConditionEqualizerProducts.piInters.isoOfIso + def TopCat.Presheaf.SheafConditionEqualizerProducts.piInters + def TopCat.Presheaf.SheafConditionEqualizerProducts.piOpens.isoOfIso + def TopCat.Presheaf.SheafConditionEqualizerProducts.piOpens + def TopCat.Presheaf.SheafConditionEqualizerProducts.res + theorem TopCat.Presheaf.SheafConditionEqualizerProducts.res_π + def TopCat.Presheaf.SheafConditionEqualizerProducts.rightRes + theorem TopCat.Presheaf.SheafConditionEqualizerProducts.w + def TopCat.Presheaf.SheafConditionPairwiseIntersections.coneEquiv + def TopCat.Presheaf.SheafConditionPairwiseIntersections.coneEquivCounitIso + def TopCat.Presheaf.SheafConditionPairwiseIntersections.coneEquivFunctor + def TopCat.Presheaf.SheafConditionPairwiseIntersections.coneEquivFunctorObj + def TopCat.Presheaf.SheafConditionPairwiseIntersections.coneEquivInverse + def TopCat.Presheaf.SheafConditionPairwiseIntersections.coneEquivInverseObj + def TopCat.Presheaf.SheafConditionPairwiseIntersections.coneEquivUnitIso + def TopCat.Presheaf.SheafConditionPairwiseIntersections.coneEquivUnitIsoApp + def TopCat.Presheaf.SheafConditionPairwiseIntersections.isLimitMapConeOfIsLimitSheafConditionFork + def TopCat.Presheaf.SheafConditionPairwiseIntersections.isLimitSheafConditionForkOfIsLimitMapCone + theorem TopCat.Presheaf.isSheaf_iff_isSheafEqualizerProducts 2023-05-26 20:04:10 a1d2ab6 feat: port LinearAlgebra.Matrix.BilinearForm (#4361) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/LinearAlgebra/Matrix/BilinearForm.lean + theorem BilinForm.Nondegenerate.toMatrix' + theorem BilinForm.Nondegenerate.toMatrix + theorem BilinForm.mul_toMatrix' + theorem BilinForm.mul_toMatrix'_mul + theorem BilinForm.mul_toMatrix + theorem BilinForm.mul_toMatrix_mul + theorem BilinForm.nondegenerate_iff_det_ne_zero + theorem BilinForm.nondegenerate_of_det_ne_zero + theorem BilinForm.nondegenerate_toBilin'_iff_det_ne_zero + theorem BilinForm.nondegenerate_toBilin'_of_det_ne_zero' + theorem BilinForm.nondegenerate_toMatrix'_iff + theorem BilinForm.nondegenerate_toMatrix_iff + def BilinForm.toMatrix' + theorem BilinForm.toMatrix'_apply + theorem BilinForm.toMatrix'_comp + theorem BilinForm.toMatrix'_compLeft + theorem BilinForm.toMatrix'_compRight + theorem BilinForm.toMatrix'_mul + theorem BilinForm.toMatrix'_symm + theorem BilinForm.toMatrix'_toBilin' + def BilinForm.toMatrixAux + theorem BilinForm.toMatrixAux_apply + theorem BilinForm.toMatrixAux_stdBasis + theorem BilinForm.toMatrix_apply + theorem BilinForm.toMatrix_basisFun + theorem BilinForm.toMatrix_comp + theorem BilinForm.toMatrix_compLeft + theorem BilinForm.toMatrix_compRight + theorem BilinForm.toMatrix_mul + theorem BilinForm.toMatrix_mul_basis_toMatrix + theorem BilinForm.toMatrix_symm + theorem BilinForm.toMatrix_toBilin + theorem BilinearForm.toMatrixAux_eq + theorem Matrix.Nondegenerate.toBilin' + theorem Matrix.Nondegenerate.toBilin + theorem Matrix.isAdjointPair_equiv' + theorem Matrix.nondegenerate_toBilin'_iff + theorem Matrix.nondegenerate_toBilin'_iff_nondegenerate_toBilin + theorem Matrix.nondegenerate_toBilin_iff + def Matrix.toBilin' + def Matrix.toBilin'Aux + theorem Matrix.toBilin'Aux_eq + theorem Matrix.toBilin'Aux_stdBasis + theorem Matrix.toBilin'_apply' + theorem Matrix.toBilin'_apply + theorem Matrix.toBilin'_comp + theorem Matrix.toBilin'_stdBasis + theorem Matrix.toBilin'_symm + theorem Matrix.toBilin'_toMatrix' + theorem Matrix.toBilin_apply + theorem Matrix.toBilin_basisFun + theorem Matrix.toBilin_comp + theorem Matrix.toBilin_symm + theorem Matrix.toBilin_toMatrix + theorem isAdjointPair_toBilin' + theorem isAdjointPair_toBilin + theorem mem_pairSelfAdjointMatricesSubmodule' + theorem mem_selfAdjointMatricesSubmodule' + theorem mem_skewAdjointMatricesSubmodule' + def pairSelfAdjointMatricesSubmodule' + def selfAdjointMatricesSubmodule' + def skewAdjointMatricesSubmodule' + theorem toBilin'Aux_toMatrixAux 2023-05-26 17:27:59 6cba052 feat: port Geometry.Euclidean.Angle.Unoriented.Conformal (#4397) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Geometry/Euclidean/Angle/Unoriented/Conformal.lean + theorem InnerProductGeometry.ConformalAt.preserves_angle + theorem InnerProductGeometry.IsConformalMap.preserves_angle 2023-05-26 17:27:58 c9d630c feat: port CategoryTheory.Abelian.Projective (#4322) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Homology/HomologicalComplex.lean Added Mathlib/CategoryTheory/Abelian/Projective.lean + theorem CategoryTheory.ProjectiveResolution.exact_ofComplex + def CategoryTheory.ProjectiveResolution.ofComplex + theorem CategoryTheory.ProjectiveResolution.ofComplex_sq_10_comm + theorem CategoryTheory.exact_d_f + def CategoryTheory.preservesFiniteColimitsPreadditiveCoyonedaObjOfProjective + theorem CategoryTheory.projective_of_preservesFiniteColimits_preadditiveCoyonedaObj + def HomologicalComplex.Hom.toSingle₀ProjectiveResolution 2023-05-26 17:27:57 8214f46 chore: tidy various files (#4304) ESTIMATED CHANGES Modified Mathlib/Algebra/Category/GroupCat/Limits.lean Modified Mathlib/Algebra/Category/Ring/Instances.lean Modified Mathlib/Algebra/Module/Bimodule.lean Modified Mathlib/Analysis/Complex/Basic.lean + theorem Complex.restrictScalars_one_smulRight' - theorem Complex.restrictScalars_one_smul_right' Modified Mathlib/CategoryTheory/Category/Preorder.lean + def CategoryTheory.opHomOfLE - def CategoryTheory.opHomOfLe Modified Mathlib/CategoryTheory/Limits/Constructions/Over/Products.lean Modified Mathlib/Combinatorics/SimpleGraph/Ends/Defs.lean Modified Mathlib/Computability/Partrec.lean Modified Mathlib/Data/Fin/VecNotation.lean Modified Mathlib/GroupTheory/Congruence.lean Modified Mathlib/MeasureTheory/Constructions/Polish.lean Modified Mathlib/MeasureTheory/Function/SpecialFunctions/IsROrC.lean + theorem IsROrC.measurable_ofReal - theorem IsROrC.measurable_of_real Modified Mathlib/MeasureTheory/Measure/OuterMeasure.lean + theorem MeasureTheory.OuterMeasure.le_boundedBy' - theorem MeasureTheory.OuterMeasure.le_bounded_by' Modified Mathlib/MeasureTheory/Measure/Regular.lean Modified Mathlib/NumberTheory/LegendreSymbol/ZModChar.lean - theorem ZMod.test Modified Mathlib/RingTheory/AdjoinRoot.lean Modified Mathlib/RingTheory/Polynomial/Basic.lean + theorem Polynomial.mem_ker_modByMonic - theorem Polynomial.mem_ker_mod_by_monic Modified Mathlib/RingTheory/PolynomialAlgebra.lean + theorem PolyEquivTensor.toFunLinear_mul_tmul_mul_aux_1 + theorem PolyEquivTensor.toFunLinear_mul_tmul_mul_aux_2 - theorem PolyEquivTensor.to_fun_linear_mul_tmul_mul_aux_1 - theorem PolyEquivTensor.to_fun_linear_mul_tmul_mul_aux_2 Modified Mathlib/RingTheory/QuotientNilpotent.lean Modified Mathlib/Topology/Algebra/Module/Basic.lean Modified Mathlib/Topology/Algebra/Nonarchimedean/Bases.lean Modified Mathlib/Topology/MetricSpace/PartitionOfUnity.lean Modified Mathlib/Topology/PathConnected.lean Modified Mathlib/Topology/Sheaves/PresheafOfFunctions.lean 2023-05-26 15:32:08 518697a feat: port Analysis.InnerProductSpace.Projection (#4393) This PR also increase the priority of `Submodule.bot_ext`. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Module/Submodule/Lattice.lean Added Mathlib/Analysis/InnerProductSpace/Projection.lean + theorem Dense.eq_of_inner_left + theorem Dense.eq_of_inner_right + theorem Dense.eq_of_sub_mem_orthogonal + theorem Dense.eq_zero_of_inner_left + theorem Dense.eq_zero_of_inner_right + theorem Dense.eq_zero_of_mem_orthogonal + theorem LinearIsometry.map_orthogonalProjection' + theorem LinearIsometry.map_orthogonalProjection + theorem LinearIsometryEquiv.reflections_generate + theorem LinearIsometryEquiv.reflections_generate_dim + theorem LinearIsometryEquiv.reflections_generate_dim_aux + theorem OrthogonalFamily.isInternal_iff + theorem OrthogonalFamily.isInternal_iff_of_isComplete + theorem Submodule.IsOrtho.orthogonalProjection_comp_subtypeL + theorem Submodule.exists_sum_mem_mem_orthogonal + theorem Submodule.finrank_add_finrank_orthogonal' + theorem Submodule.finrank_add_finrank_orthogonal + theorem Submodule.finrank_add_inf_finrank_orthogonal' + theorem Submodule.finrank_add_inf_finrank_orthogonal + theorem Submodule.isCompl_orthogonal_of_completeSpace + theorem Submodule.orthogonal_eq_bot_iff + theorem Submodule.orthogonal_orthogonal + theorem Submodule.orthogonal_orthogonal_eq_closure + theorem Submodule.sup_orthogonal_inf_of_completeSpace + theorem Submodule.sup_orthogonal_of_completeSpace + theorem Submodule.topologicalClosure_eq_top_iff + theorem Submodule.triorthogonal_eq_orthogonal + theorem eq_orthogonalProjectionFn_of_mem_of_inner_eq_zero + theorem eq_orthogonalProjection_of_eq_submodule + theorem eq_orthogonalProjection_of_mem_of_inner_eq_zero + theorem eq_orthogonalProjection_of_mem_orthogonal' + theorem eq_orthogonalProjection_of_mem_orthogonal + theorem eq_sum_orthogonalProjection_self_orthogonalComplement + theorem exists_norm_eq_iInf_of_complete_convex + theorem exists_norm_eq_iInf_of_complete_subspace + theorem finrank_orthogonal_span_singleton + theorem id_eq_sum_orthogonalProjection_self_orthogonalComplement + theorem inner_orthogonalProjection_eq_of_mem_left + theorem inner_orthogonalProjection_eq_of_mem_right + theorem inner_orthogonalProjection_left_eq_right + theorem maximal_orthonormal_iff_basis_of_finiteDimensional + theorem maximal_orthonormal_iff_orthogonalComplement_eq_bot + theorem norm_eq_iInf_iff_inner_eq_zero + theorem norm_eq_iInf_iff_real_inner_eq_zero + theorem norm_eq_iInf_iff_real_inner_le_zero + theorem norm_sq_eq_add_norm_sq_projection + def orthogonalProjection + def orthogonalProjectionFn + theorem orthogonalProjectionFn_eq + theorem orthogonalProjectionFn_inner_eq_zero + theorem orthogonalProjectionFn_mem + theorem orthogonalProjectionFn_norm_sq + theorem orthogonalProjection_bot + theorem orthogonalProjection_coe_linearMap_eq_linearProj + theorem orthogonalProjection_comp_subtypeL_eq_zero_iff + theorem orthogonalProjection_eq_linear_proj + theorem orthogonalProjection_eq_self_iff + theorem orthogonalProjection_inner_eq_zero + theorem orthogonalProjection_isSymmetric + theorem orthogonalProjection_map_apply + theorem orthogonalProjection_mem_subspace_eq_self + theorem orthogonalProjection_mem_subspace_orthogonalComplement_eq_zero + theorem orthogonalProjection_mem_subspace_orthogonal_precomplement_eq_zero + theorem orthogonalProjection_minimal + theorem orthogonalProjection_norm_le + theorem orthogonalProjection_orthogonalComplement_singleton_eq_zero + theorem orthogonalProjection_orthogonalProjection_of_le + theorem orthogonalProjection_singleton + theorem orthogonalProjection_tendsto_closure_iSup + theorem orthogonalProjection_tendsto_self + theorem orthogonalProjection_unit_singleton + def reflection + def reflectionLinearEquiv + theorem reflection_apply + theorem reflection_bot + theorem reflection_eq_self_iff + theorem reflection_inv + theorem reflection_involutive + theorem reflection_map + theorem reflection_map_apply + theorem reflection_mem_subspace_eq_self + theorem reflection_mem_subspace_orthogonalComplement_eq_neg + theorem reflection_mem_subspace_orthogonal_precomplement_eq_neg + theorem reflection_mul_reflection + theorem reflection_orthogonalComplement_singleton_eq_neg + theorem reflection_reflection + theorem reflection_sub + theorem reflection_symm + theorem reflection_trans_reflection + theorem smul_orthogonalProjection_singleton + theorem sub_orthogonalProjection_mem_orthogonal 2023-05-26 15:03:19 60dc12a feat: port Topology.Sheaves.Functors (#4392) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Topology/Sheaves/Functors.lean + theorem TopCat.Presheaf.SheafConditionPairwiseIntersections.mapCocone + theorem TopCat.Presheaf.SheafConditionPairwiseIntersections.map_diagram + theorem TopCat.Presheaf.SheafConditionPairwiseIntersections.pushforward_sheaf_of_sheaf + def TopCat.Sheaf.pushforward + theorem TopCat.Sheaf.pushforward_sheaf_of_sheaf 2023-05-26 15:03:17 51b5453 feat: port NumberTheory.Padics.Hensel (#4344) This file makes heavy use of `parameter` and `include` that do not exist in Lean4 thus many arguments have to provided explicitly. In some cases where this would have been too heavy, I used `local notation` instead, see [this](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/!4.234344.20NumberTheory.2EPadics.2EHensel/near/361119207) Zulip thread. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/NumberTheory/Padics/Hensel.lean + theorem hensels_lemma + theorem limit_zero_of_norm_tendsto_zero + theorem padic_polynomial_dist 2023-05-26 15:03:16 7442e24 feat: port Probability.ProbabilityMassFunction.Constructions (#3928) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Probability/ProbabilityMassFunction/Constructions.lean + def Pmf.bernoulli + theorem Pmf.bernoulli_apply + theorem Pmf.bind_map + theorem Pmf.bind_pure_comp + def Pmf.filter + theorem Pmf.filter_apply + theorem Pmf.filter_apply_eq_zero_iff + theorem Pmf.filter_apply_eq_zero_of_not_mem + theorem Pmf.filter_apply_ne_zero_iff + def Pmf.map + theorem Pmf.map_apply + theorem Pmf.map_bind + theorem Pmf.map_comp + theorem Pmf.map_const + theorem Pmf.map_id + theorem Pmf.mem_support_bernoulli_iff + theorem Pmf.mem_support_filter_iff + theorem Pmf.mem_support_map_iff + theorem Pmf.mem_support_normalize_iff + theorem Pmf.mem_support_ofFinset_iff + theorem Pmf.mem_support_ofFintype_iff + theorem Pmf.mem_support_seq_iff + theorem Pmf.monad_map_eq_map + theorem Pmf.monad_seq_eq_seq + def Pmf.normalize + theorem Pmf.normalize_apply + def Pmf.ofFinset + theorem Pmf.ofFinset_apply + theorem Pmf.ofFinset_apply_of_not_mem + def Pmf.ofFintype + theorem Pmf.ofFintype_apply + theorem Pmf.pure_map + def Pmf.seq + theorem Pmf.seq_apply + theorem Pmf.support_bernoulli + theorem Pmf.support_filter + theorem Pmf.support_map + theorem Pmf.support_normalize + theorem Pmf.support_ofFinset + theorem Pmf.support_ofFintype + theorem Pmf.support_seq + theorem Pmf.toMeasure_map_apply + theorem Pmf.toMeasure_ofFinset_apply + theorem Pmf.toMeasure_ofFintype_apply + theorem Pmf.toOuterMeasure_map_apply + theorem Pmf.toOuterMeasure_ofFinset_apply + theorem Pmf.toOuterMeasure_ofFintype_apply 2023-05-26 15:03:15 8828d20 feat: port Order.Category.FinPartOrd (#3831) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Order/Category/FinPartOrd.lean + def FinPartOrd.Iso.mk + theorem FinPartOrd.coe_of + def FinPartOrd.dual + def FinPartOrd.dualEquiv + def FinPartOrd.of + structure FinPartOrd + theorem FinPartOrd_dual_comp_forget_to_partOrdCat 2023-05-26 13:13:41 27d257f chore: fix upper/lowercase in comments (#4360) * Run a non-interactive version of `fix-comments.py` on all files. * Go through the diff and manually add/discard/edit chunks. ESTIMATED CHANGES Modified Mathlib/Algebra/BigOperators/Basic.lean Modified Mathlib/Algebra/BigOperators/Finprod.lean Modified Mathlib/Algebra/BigOperators/Order.lean Modified Mathlib/Algebra/CharP/Algebra.lean Modified Mathlib/Algebra/CharP/LocalRing.lean Modified Mathlib/Algebra/CharP/Two.lean Modified Mathlib/Algebra/CovariantAndContravariant.lean Modified Mathlib/Algebra/DirectSum/Ring.lean Modified Mathlib/Algebra/DualNumber.lean Modified Mathlib/Algebra/Free.lean Modified Mathlib/Algebra/GradedMonoid.lean Modified Mathlib/Algebra/Group/Conj.lean Modified Mathlib/Algebra/Group/Defs.lean Modified Mathlib/Algebra/Group/OrderSynonym.lean Modified Mathlib/Algebra/Group/Prod.lean Modified Mathlib/Algebra/Group/WithOne/Defs.lean Modified Mathlib/Algebra/GroupWithZero/Defs.lean Modified Mathlib/Algebra/Hom/NonUnitalAlg.lean Modified Mathlib/Algebra/Homology/Homotopy.lean Modified Mathlib/Algebra/Invertible.lean Modified Mathlib/Algebra/Lie/Basic.lean Modified Mathlib/Algebra/Module/Basic.lean Modified Mathlib/Algebra/Module/Equiv.lean Modified Mathlib/Algebra/Module/Injective.lean Modified Mathlib/Algebra/Module/LinearMap.lean Modified Mathlib/Algebra/Module/Projective.lean Modified Mathlib/Algebra/Module/Submodule/Basic.lean Modified Mathlib/Algebra/MonoidAlgebra/Basic.lean Modified Mathlib/Algebra/Opposites.lean Modified Mathlib/Algebra/Order/Field/Basic.lean Modified Mathlib/Algebra/Order/Field/Power.lean Modified Mathlib/Algebra/Order/Module.lean Modified Mathlib/Algebra/Order/Nonneg/Floor.lean Modified Mathlib/Algebra/Order/Pi.lean Modified Mathlib/Algebra/Order/WithZero.lean Modified Mathlib/Algebra/Parity.lean Modified Mathlib/Algebra/Quandle.lean Modified Mathlib/Algebra/Ring/BooleanRing.lean Modified Mathlib/Algebra/Ring/Defs.lean Modified Mathlib/Algebra/Ring/OrderSynonym.lean Modified Mathlib/Algebra/Star/Unitary.lean Modified Mathlib/Algebra/TrivSqZeroExt.lean Modified Mathlib/Algebra/Tropical/Basic.lean Modified Mathlib/AlgebraicGeometry/PresheafedSpace/HasColimits.lean Modified Mathlib/AlgebraicTopology/FundamentalGroupoid/Basic.lean Modified Mathlib/AlgebraicTopology/MooreComplex.lean Modified Mathlib/AlgebraicTopology/SimplexCategory.lean Modified Mathlib/AlgebraicTopology/TopologicalSimplex.lean Modified Mathlib/Analysis/Calculus/FDeriv/Basic.lean Modified Mathlib/Analysis/Convex/Basic.lean Modified Mathlib/Analysis/Convex/Segment.lean Modified Mathlib/Analysis/LocallyConvex/BalancedCoreHull.lean Modified Mathlib/Analysis/LocallyConvex/Polar.lean Modified Mathlib/Analysis/LocallyConvex/WithSeminorms.lean Modified Mathlib/Analysis/MeanInequalities.lean Modified Mathlib/Analysis/Normed/Field/Basic.lean Modified Mathlib/Analysis/Normed/Group/AddCircle.lean Modified Mathlib/Analysis/Normed/Group/AddTorsor.lean Modified Mathlib/Analysis/NormedSpace/OperatorNorm.lean Modified Mathlib/Analysis/NormedSpace/Ray.lean Modified Mathlib/Analysis/SpecialFunctions/Complex/Circle.lean Modified Mathlib/Analysis/SpecialFunctions/Exp.lean Modified Mathlib/Analysis/SpecialFunctions/Pow/Complex.lean Modified Mathlib/Analysis/SpecialFunctions/Pow/NNReal.lean Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Angle.lean Modified Mathlib/CategoryTheory/Category/Pairwise.lean Modified Mathlib/CategoryTheory/Category/Pointed.lean Modified Mathlib/CategoryTheory/Comma.lean Modified Mathlib/CategoryTheory/ConcreteCategory/Bundled.lean Modified Mathlib/CategoryTheory/ConcreteCategory/BundledHom.lean Modified Mathlib/CategoryTheory/EpiMono.lean Modified Mathlib/CategoryTheory/Filtered.lean Modified Mathlib/CategoryTheory/FullSubcategory.lean Modified Mathlib/CategoryTheory/Limits/Shapes/BinaryProducts.lean Modified Mathlib/CategoryTheory/Limits/Shapes/StrictInitial.lean Modified Mathlib/CategoryTheory/Limits/Shapes/ZeroMorphisms.lean Modified Mathlib/CategoryTheory/Limits/Yoneda.lean Modified Mathlib/CategoryTheory/Monad/Limits.lean Modified Mathlib/CategoryTheory/Opposites.lean Modified Mathlib/CategoryTheory/PathCategory.lean Modified Mathlib/CategoryTheory/SingleObj.lean Modified Mathlib/CategoryTheory/Sites/CoverLifting.lean Modified Mathlib/CategoryTheory/Sites/Subsheaf.lean Modified Mathlib/CategoryTheory/Types.lean Modified Mathlib/Combinatorics/Pigeonhole.lean Modified Mathlib/Combinatorics/Quiver/Push.lean Modified Mathlib/Combinatorics/Quiver/SingleObj.lean Modified Mathlib/Combinatorics/Quiver/Symmetric.lean Modified Mathlib/Combinatorics/SetFamily/Shadow.lean Modified Mathlib/Combinatorics/Young/YoungDiagram.lean Modified Mathlib/Computability/Encoding.lean Modified Mathlib/Computability/Language.lean Modified Mathlib/Computability/Primrec.lean Modified Mathlib/Computability/TMToPartrec.lean Modified Mathlib/Control/Basic.lean Modified Mathlib/Control/LawfulFix.lean Modified Mathlib/Control/Traversable/Basic.lean Modified Mathlib/Data/Analysis/Topology.lean Modified Mathlib/Data/Bool/Basic.lean Modified Mathlib/Data/Complex/Basic.lean Modified Mathlib/Data/Dfinsupp/Basic.lean Modified Mathlib/Data/Dfinsupp/NeLocus.lean Modified Mathlib/Data/Equiv/Functor.lean Modified Mathlib/Data/Fin/Basic.lean Modified Mathlib/Data/Fin/Tuple/Basic.lean Modified Mathlib/Data/Fin/Tuple/Sort.lean Modified Mathlib/Data/Finite/Basic.lean Modified Mathlib/Data/Finset/Basic.lean Modified Mathlib/Data/Finset/Image.lean Modified Mathlib/Data/Finset/Lattice.lean Modified Mathlib/Data/Finset/LocallyFinite.lean Modified Mathlib/Data/Finset/Option.lean Modified Mathlib/Data/Finset/Pairwise.lean Modified Mathlib/Data/Finset/Pointwise.lean Modified Mathlib/Data/Finsupp/Basic.lean Modified Mathlib/Data/Finsupp/Order.lean Modified Mathlib/Data/Fintype/Basic.lean Modified Mathlib/Data/Fintype/Card.lean Modified Mathlib/Data/Fintype/List.lean Modified Mathlib/Data/Fintype/Parity.lean Modified Mathlib/Data/Int/Order/Units.lean Modified Mathlib/Data/IsROrC/Basic.lean Modified Mathlib/Data/LazyList.lean Modified Mathlib/Data/List/AList.lean Modified Mathlib/Data/List/Cycle.lean Modified Mathlib/Data/List/Defs.lean Modified Mathlib/Data/List/Duplicate.lean Modified Mathlib/Data/List/Func.lean Modified Mathlib/Data/List/Intervals.lean Modified Mathlib/Data/List/Lattice.lean Modified Mathlib/Data/List/ProdSigma.lean Modified Mathlib/Data/List/Sigma.lean Modified Mathlib/Data/List/TFAE.lean Modified Mathlib/Data/Matrix/Basic.lean Modified Mathlib/Data/Matrix/Basis.lean Modified Mathlib/Data/Matrix/Block.lean Modified Mathlib/Data/Matrix/DMatrix.lean Modified Mathlib/Data/Multiset/Basic.lean Modified Mathlib/Data/Multiset/Bind.lean Modified Mathlib/Data/MvPolynomial/Basic.lean Modified Mathlib/Data/Nat/Cast/Prod.lean Modified Mathlib/Data/Nat/Choose/Central.lean Modified Mathlib/Data/Nat/Choose/Vandermonde.lean Modified Mathlib/Data/Nat/Digits.lean Modified Mathlib/Data/Nat/Fib.lean Modified Mathlib/Data/Nat/Interval.lean Modified Mathlib/Data/Nat/ModEq.lean Modified Mathlib/Data/Nat/Order/Basic.lean Modified Mathlib/Data/Nat/PartENat.lean Modified Mathlib/Data/Option/Basic.lean Modified Mathlib/Data/PFun.lean Modified Mathlib/Data/PFunctor/Univariate/Basic.lean Modified Mathlib/Data/PNat/Prime.lean Modified Mathlib/Data/Part.lean Modified Mathlib/Data/Polynomial/Eval.lean Modified Mathlib/Data/Prod/Basic.lean Modified Mathlib/Data/Prod/PProd.lean Modified Mathlib/Data/Real/Basic.lean Modified Mathlib/Data/Real/CauSeqCompletion.lean Modified Mathlib/Data/Real/ENatENNReal.lean Modified Mathlib/Data/Rel.lean Modified Mathlib/Data/Set/Basic.lean Modified Mathlib/Data/Set/Finite.lean Modified Mathlib/Data/Set/Image.lean Modified Mathlib/Data/Set/Intervals/Instances.lean Modified Mathlib/Data/Set/Intervals/UnorderedInterval.lean Modified Mathlib/Data/Set/NAry.lean Modified Mathlib/Data/Set/Pairwise/Lattice.lean Modified Mathlib/Data/Set/Pointwise/Basic.lean Modified Mathlib/Data/Set/Prod.lean Modified Mathlib/Data/Set/Sups.lean Modified Mathlib/Data/Sign.lean Modified Mathlib/Data/Sum/Order.lean Modified Mathlib/Data/Sym/Basic.lean Modified Mathlib/Data/TypeVec.lean Modified Mathlib/Data/TypeVec/Attr.lean Modified Mathlib/Data/Vector/Basic.lean Modified Mathlib/Data/Vector/Mem.lean Modified Mathlib/Data/ZMod/Defs.lean Modified Mathlib/Deprecated/Subgroup.lean Modified Mathlib/FieldTheory/Minpoly/Basic.lean Modified Mathlib/GroupTheory/Congruence.lean Modified Mathlib/GroupTheory/Coset.lean Modified Mathlib/GroupTheory/FreeGroup.lean Modified Mathlib/GroupTheory/GroupAction/Defs.lean Modified Mathlib/GroupTheory/GroupAction/FixingSubgroup.lean Modified Mathlib/GroupTheory/GroupAction/Units.lean Modified Mathlib/GroupTheory/MonoidLocalization.lean Modified Mathlib/GroupTheory/Perm/Basic.lean Modified Mathlib/GroupTheory/Perm/Cycle/Basic.lean Modified Mathlib/GroupTheory/Perm/Cycle/Concrete.lean Modified Mathlib/GroupTheory/Perm/Option.lean Modified Mathlib/GroupTheory/SemidirectProduct.lean Modified Mathlib/GroupTheory/Subgroup/Basic.lean Modified Mathlib/GroupTheory/Submonoid/Operations.lean Modified Mathlib/GroupTheory/Subsemigroup/Basic.lean Modified Mathlib/GroupTheory/Subsemigroup/Membership.lean Modified Mathlib/GroupTheory/Subsemigroup/Operations.lean Modified Mathlib/Init/Algebra/Classes.lean Modified Mathlib/LinearAlgebra/AffineSpace/AffineMap.lean Modified Mathlib/LinearAlgebra/AffineSpace/Combination.lean Modified Mathlib/LinearAlgebra/Alternating.lean Modified Mathlib/LinearAlgebra/Basic.lean Modified Mathlib/LinearAlgebra/Contraction.lean Modified Mathlib/LinearAlgebra/Dfinsupp.lean Modified Mathlib/LinearAlgebra/Dimension.lean Modified Mathlib/LinearAlgebra/FiniteDimensional.lean Modified Mathlib/LinearAlgebra/Finsupp.lean Modified Mathlib/LinearAlgebra/LinearIndependent.lean Modified Mathlib/LinearAlgebra/Matrix/Charpoly/Basic.lean Modified Mathlib/LinearAlgebra/Matrix/Charpoly/Coeff.lean Modified Mathlib/LinearAlgebra/Pi.lean Modified Mathlib/LinearAlgebra/Quotient.lean Modified Mathlib/LinearAlgebra/Span.lean Modified Mathlib/LinearAlgebra/TensorProduct.lean Modified Mathlib/Logic/Basic.lean Modified Mathlib/Logic/Denumerable.lean Modified Mathlib/Logic/Embedding/Basic.lean Modified Mathlib/Logic/Encodable/Basic.lean Modified Mathlib/Logic/Equiv/Basic.lean Modified Mathlib/Logic/Equiv/Defs.lean Modified Mathlib/Logic/Equiv/List.lean Modified Mathlib/Logic/Equiv/Nat.lean Modified Mathlib/Logic/Equiv/Set.lean Modified Mathlib/Logic/Nontrivial.lean Modified Mathlib/Logic/Relation.lean Modified Mathlib/Logic/Unique.lean Modified Mathlib/MeasureTheory/Integral/Lebesgue.lean Modified Mathlib/MeasureTheory/Measure/MeasureSpaceDef.lean Modified Mathlib/MeasureTheory/Measure/Regular.lean Modified Mathlib/NumberTheory/ADEInequality.lean Modified Mathlib/NumberTheory/Divisors.lean Modified Mathlib/NumberTheory/LegendreSymbol/MulCharacter.lean Modified Mathlib/NumberTheory/LucasLehmer.lean Modified Mathlib/NumberTheory/Padics/PadicNumbers.lean Modified Mathlib/Order/BooleanAlgebra.lean Modified Mathlib/Order/Bounds/Basic.lean Modified Mathlib/Order/Closure.lean Modified Mathlib/Order/CompactlyGenerated.lean Modified Mathlib/Order/CompleteLattice.lean Modified Mathlib/Order/Filter/AtTopBot.lean Modified Mathlib/Order/Filter/Bases.lean Modified Mathlib/Order/Filter/Basic.lean Modified Mathlib/Order/Filter/CountableInter.lean Modified Mathlib/Order/Filter/Curry.lean Modified Mathlib/Order/Filter/NAry.lean Modified Mathlib/Order/Filter/Pi.lean Modified Mathlib/Order/Filter/Pointwise.lean Modified Mathlib/Order/Filter/Prod.lean Modified Mathlib/Order/Grade.lean Modified Mathlib/Order/Hom/Basic.lean Modified Mathlib/Order/Hom/Lattice.lean Modified Mathlib/Order/InitialSeg.lean Modified Mathlib/Order/KrullDimension.lean Modified Mathlib/Order/LatticeIntervals.lean Modified Mathlib/Order/OmegaCompletePartialOrder.lean Modified Mathlib/Order/OrdContinuous.lean Modified Mathlib/Order/PrimeIdeal.lean Modified Mathlib/Order/RelIso/Basic.lean Modified Mathlib/Order/RelIso/Set.lean Modified Mathlib/Order/SuccPred/Basic.lean Modified Mathlib/Order/SupIndep.lean Modified Mathlib/Order/SymmDiff.lean Modified Mathlib/Order/Synonym.lean Modified Mathlib/Order/Zorn.lean Modified Mathlib/RingTheory/Adjoin/FG.lean Modified Mathlib/RingTheory/Congruence.lean Modified Mathlib/RingTheory/Finiteness.lean Modified Mathlib/RingTheory/FractionalIdeal.lean Modified Mathlib/RingTheory/FreeCommRing.lean Modified Mathlib/RingTheory/Ideal/LocalRing.lean Modified Mathlib/RingTheory/Ideal/Over.lean Modified Mathlib/RingTheory/Ideal/QuotientOperations.lean Modified Mathlib/RingTheory/Localization/Away/Basic.lean Modified Mathlib/RingTheory/Localization/Ideal.lean Modified Mathlib/RingTheory/MvPolynomial/WeightedHomogeneous.lean Modified Mathlib/RingTheory/PowerBasis.lean Modified Mathlib/RingTheory/Subsemiring/Basic.lean Modified Mathlib/RingTheory/TensorProduct.lean Modified Mathlib/RingTheory/WittVector/WittPolynomial.lean Modified Mathlib/SetTheory/Cardinal/Ordinal.lean Modified Mathlib/SetTheory/Game/PGame.lean Modified Mathlib/SetTheory/Ordinal/Basic.lean Modified Mathlib/SetTheory/Ordinal/Exponential.lean Modified Mathlib/SetTheory/Ordinal/FixedPoint.lean Modified Mathlib/Tactic/ApplyFun.lean Modified Mathlib/Tactic/Convert.lean Modified Mathlib/Tactic/DeriveFintype.lean Modified Mathlib/Tactic/Elementwise.lean Modified Mathlib/Tactic/FinCases.lean Modified Mathlib/Tactic/GeneralizeProofs.lean Modified Mathlib/Tactic/Group.lean Modified Mathlib/Tactic/IntervalCases.lean Modified Mathlib/Tactic/Lift.lean Modified Mathlib/Tactic/Linarith/Frontend.lean Modified Mathlib/Tactic/Linarith/Parsing.lean Modified Mathlib/Tactic/Nontriviality/Core.lean Modified Mathlib/Tactic/Polyrith.lean Modified Mathlib/Tactic/PushNeg.lean Modified Mathlib/Tactic/RestateAxiom.lean Modified Mathlib/Tactic/SlimCheck.lean Modified Mathlib/Tactic/ToAdditive.lean Modified Mathlib/Topology/Algebra/Constructions.lean Modified Mathlib/Topology/Algebra/Module/Basic.lean Modified Mathlib/Topology/Algebra/Module/StrongTopology.lean Modified Mathlib/Topology/Algebra/Nonarchimedean/Bases.lean Modified Mathlib/Topology/Algebra/Order/ProjIcc.lean Modified Mathlib/Topology/Algebra/StarSubalgebra.lean Modified Mathlib/Topology/Basic.lean Modified Mathlib/Topology/Bornology/Basic.lean Modified Mathlib/Topology/CompactOpen.lean Modified Mathlib/Topology/ContinuousFunction/Ordered.lean Modified Mathlib/Topology/FiberBundle/Constructions.lean Modified Mathlib/Topology/FiberBundle/IsHomeomorphicTrivialBundle.lean Modified Mathlib/Topology/Inseparable.lean Modified Mathlib/Topology/Instances/Real.lean Modified Mathlib/Topology/LocalAtTarget.lean Modified Mathlib/Topology/LocallyFinite.lean Modified Mathlib/Topology/Maps.lean Modified Mathlib/Topology/MetricSpace/Algebra.lean Modified Mathlib/Topology/Sheaves/PresheafOfFunctions.lean Modified Mathlib/Topology/Sheaves/Sheaf.lean Modified Mathlib/Topology/Sheaves/SheafCondition/OpensLeCover.lean Modified Mathlib/Topology/UniformSpace/Equicontinuity.lean Modified Mathlib/Topology/UniformSpace/Equiv.lean 2023-05-26 12:43:57 0b81267 feat: port Analysis.Calculus.Conformal.InnerProduct (#4389) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/Calculus/Conformal/InnerProduct.lean + theorem conformalAt_iff' + theorem conformalAt_iff + def conformalFactorAt + theorem conformalFactorAt_inner_eq_mul_inner' + theorem conformalFactorAt_inner_eq_mul_inner + theorem conformalFactorAt_pos 2023-05-26 12:18:19 1220050 feat: port Geometry.Euclidean.Angle.Unoriented.Basic (#4376) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Geometry/Euclidean/Angle/Unoriented/Basic.lean + def InnerProductGeometry.angle + theorem InnerProductGeometry.angle_add_angle_eq_pi_of_angle_eq_pi + theorem InnerProductGeometry.angle_comm + theorem InnerProductGeometry.angle_eq_pi_iff + theorem InnerProductGeometry.angle_eq_zero_iff + theorem InnerProductGeometry.angle_le_pi + theorem InnerProductGeometry.angle_neg_left + theorem InnerProductGeometry.angle_neg_neg + theorem InnerProductGeometry.angle_neg_right + theorem InnerProductGeometry.angle_neg_self_of_nonzero + theorem InnerProductGeometry.angle_nonneg + theorem InnerProductGeometry.angle_self + theorem InnerProductGeometry.angle_self_neg_of_nonzero + theorem InnerProductGeometry.angle_smul_left_of_neg + theorem InnerProductGeometry.angle_smul_left_of_pos + theorem InnerProductGeometry.angle_smul_right_of_neg + theorem InnerProductGeometry.angle_smul_right_of_pos + theorem InnerProductGeometry.angle_smul_smul + theorem InnerProductGeometry.angle_zero_left + theorem InnerProductGeometry.angle_zero_right + theorem InnerProductGeometry.continuousAt_angle + theorem InnerProductGeometry.cos_angle + theorem InnerProductGeometry.cos_angle_mul_norm_mul_norm + theorem InnerProductGeometry.cos_eq_neg_one_iff_angle_eq_pi + theorem InnerProductGeometry.cos_eq_one_iff_angle_eq_zero + theorem InnerProductGeometry.cos_eq_zero_iff_angle_eq_pi_div_two + theorem InnerProductGeometry.inner_eq_mul_norm_iff_angle_eq_zero + theorem InnerProductGeometry.inner_eq_mul_norm_of_angle_eq_zero + theorem InnerProductGeometry.inner_eq_neg_mul_norm_iff_angle_eq_pi + theorem InnerProductGeometry.inner_eq_neg_mul_norm_of_angle_eq_pi + theorem InnerProductGeometry.inner_eq_zero_iff_angle_eq_pi_div_two + theorem InnerProductGeometry.norm_add_eq_add_norm_iff_angle_eq_zero + theorem InnerProductGeometry.norm_add_eq_add_norm_of_angle_eq_zero + theorem InnerProductGeometry.norm_add_eq_norm_sub_iff_angle_eq_pi_div_two + theorem InnerProductGeometry.norm_sub_eq_abs_sub_norm_iff_angle_eq_zero + theorem InnerProductGeometry.norm_sub_eq_abs_sub_norm_of_angle_eq_zero + theorem InnerProductGeometry.norm_sub_eq_add_norm_iff_angle_eq_pi + theorem InnerProductGeometry.norm_sub_eq_add_norm_of_angle_eq_pi + theorem InnerProductGeometry.sin_angle_mul_norm_mul_norm + theorem InnerProductGeometry.sin_eq_one_iff_angle_eq_pi_div_two + theorem InnerProductGeometry.sin_eq_zero_iff_angle_eq_zero_or_angle_eq_pi + theorem LinearIsometry.angle_map + theorem Submodule.angle_coe 2023-05-26 11:51:45 23c0f40 feat: port Topology.Sheaves.SheafCondition.PairwiseIntersections (#4384) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Topology/Sheaves/SheafCondition/PairwiseIntersections.lean + def TopCat.Presheaf.IsSheafPairwiseIntersections + def TopCat.Presheaf.IsSheafPreservesLimitPairwiseIntersections + def TopCat.Presheaf.SheafCondition.pairwiseCoconeIso + def TopCat.Presheaf.SheafCondition.pairwiseDiagramIso + def TopCat.Presheaf.SheafCondition.pairwiseToOpensLeCover + def TopCat.Presheaf.SheafCondition.pairwiseToOpensLeCoverMap + def TopCat.Presheaf.SheafCondition.pairwiseToOpensLeCoverObj + theorem TopCat.Presheaf.isSheafOpensLeCover_iff_isSheafPairwiseIntersections + theorem TopCat.Presheaf.isSheaf_iff_isSheafPairwiseIntersections + theorem TopCat.Presheaf.isSheaf_iff_isSheafPreservesLimitPairwiseIntersections + def TopCat.Sheaf.interUnionPullbackCone + def TopCat.Sheaf.interUnionPullbackConeLift + theorem TopCat.Sheaf.interUnionPullbackConeLift_left + theorem TopCat.Sheaf.interUnionPullbackConeLift_right + theorem TopCat.Sheaf.interUnionPullbackCone_fst + theorem TopCat.Sheaf.interUnionPullbackCone_pt + theorem TopCat.Sheaf.interUnionPullbackCone_snd + def TopCat.Sheaf.isLimitPullbackCone + def TopCat.Sheaf.isProductOfDisjoint + def TopCat.Sheaf.objSupIsoProdEqLocus + theorem TopCat.Sheaf.objSupIsoProdEqLocus_hom_fst + theorem TopCat.Sheaf.objSupIsoProdEqLocus_hom_snd + theorem TopCat.Sheaf.objSupIsoProdEqLocus_inv_fst + theorem TopCat.Sheaf.objSupIsoProdEqLocus_inv_snd 2023-05-26 10:07:24 e268997 feat: port Algebra.Category.Module.Biproducts (#4386) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Category/ModuleCat/Biproducts.lean + def ModuleCat.HasLimit.lift + def ModuleCat.HasLimit.productLimitCone + def ModuleCat.binaryProductLimitCone + theorem ModuleCat.binaryProductLimitCone_cone_π_app_left + theorem ModuleCat.binaryProductLimitCone_cone_π_app_right + theorem ModuleCat.biprodIsoProd_inv_comp_fst + theorem ModuleCat.biprodIsoProd_inv_comp_snd + theorem ModuleCat.biproductIsoPi_inv_comp_π 2023-05-26 09:48:18 416ff47 feat: port Geometry.Euclidean.Inversion (#4375) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Geometry/Euclidean/Inversion.lean + theorem EuclideanGeometry.dist_center_inversion + theorem EuclideanGeometry.dist_inversion_center + theorem EuclideanGeometry.dist_inversion_inversion + def EuclideanGeometry.inversion + theorem EuclideanGeometry.inversion_bijective + theorem EuclideanGeometry.inversion_dist_center + theorem EuclideanGeometry.inversion_injective + theorem EuclideanGeometry.inversion_inversion + theorem EuclideanGeometry.inversion_involutive + theorem EuclideanGeometry.inversion_of_mem_sphere + theorem EuclideanGeometry.inversion_self + theorem EuclideanGeometry.inversion_surjective + theorem EuclideanGeometry.inversion_vsub_center + theorem EuclideanGeometry.mul_dist_le_mul_dist_add_mul_dist 2023-05-26 09:28:21 90b7bda style(MeasureTheory/Integral/Lebesgue): rename `aEMeasurable_withDensity_eNNReal_iff` to `aemeasurable_withDensity_ennreal_iff` (#4379) ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Integral/Lebesgue.lean - theorem MeasureTheory.aEMeasurable_withDensity_eNNReal_iff + theorem MeasureTheory.aemeasurable_withDensity_ennreal_iff 2023-05-26 09:28:20 4d90a64 feat: port GroupTheory.SpecificGroups.Dihedral (#4370) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/GroupTheory/SpecificGroups/Dihedral.lean + theorem DihedralGroup.card + theorem DihedralGroup.exponent + theorem DihedralGroup.one_def + theorem DihedralGroup.orderOf_r + theorem DihedralGroup.orderOf_r_one + theorem DihedralGroup.orderOf_sr + theorem DihedralGroup.r_mul_r + theorem DihedralGroup.r_mul_sr + theorem DihedralGroup.r_one_pow + theorem DihedralGroup.r_one_pow_n + theorem DihedralGroup.sr_mul_r + theorem DihedralGroup.sr_mul_self + theorem DihedralGroup.sr_mul_sr + inductive DihedralGroup 2023-05-26 09:28:19 314bfe2 feat: port Analysis.NormedSpace.WeakDual (#4351) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/NormedSpace/WeakDual.lean + theorem NormedSpace.Dual.coe_toWeakDual + def NormedSpace.Dual.continuousLinearMapToWeakDual + theorem NormedSpace.Dual.dual_norm_topology_le_weak_dual_topology + theorem NormedSpace.Dual.isClosed_image_polar_of_mem_nhds + def NormedSpace.Dual.toWeakDual + theorem NormedSpace.Dual.toWeakDual_continuous + theorem NormedSpace.Dual.toWeakDual_eq_iff + theorem WeakDual.coe_toNormedDual + theorem WeakDual.isClosed_closedBall + theorem WeakDual.isClosed_image_coe_of_bounded_of_closed + theorem WeakDual.isClosed_image_polar_of_mem_nhds + theorem WeakDual.isClosed_polar + theorem WeakDual.isCompact_closedBall + theorem WeakDual.isCompact_of_bounded_of_closed + theorem WeakDual.isCompact_polar + def WeakDual.polar + theorem WeakDual.polar_def + def WeakDual.toNormedDual + theorem WeakDual.toNormedDual_apply + theorem WeakDual.toNormedDual_eq_iff 2023-05-26 09:02:06 4e6f574 feat: port Algebra.Category.Module.Images (#4385) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Category/ModuleCat/Images.lean + def ModuleCat.factorThruImage + theorem ModuleCat.image.fac + theorem ModuleCat.image.lift_fac + def ModuleCat.image.ι + def ModuleCat.image + theorem ModuleCat.imageIsoRange_hom_subtype + theorem ModuleCat.imageIsoRange_inv_image_ι + def ModuleCat.monoFactorisation 2023-05-26 09:02:05 e4a716f feat: port Topology.MetricSpace.Holder (#4381) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Topology/MetricSpace/Holder.lean + theorem HolderOnWith.comp + theorem HolderOnWith.comp_holderWith + theorem HolderOnWith.ediam_image_inter_le + theorem HolderOnWith.ediam_image_inter_le_of_le + theorem HolderOnWith.ediam_image_le + theorem HolderOnWith.ediam_image_le_of_le + theorem HolderOnWith.ediam_image_le_of_subset + theorem HolderOnWith.ediam_image_le_of_subset_of_le + theorem HolderOnWith.edist_le + theorem HolderOnWith.edist_le_of_le + def HolderOnWith + theorem HolderWith.comp + theorem HolderWith.comp_holderOnWith + theorem HolderWith.dist_le + theorem HolderWith.dist_le_of_le + theorem HolderWith.ediam_image_le + theorem HolderWith.edist_le + theorem HolderWith.edist_le_of_le + theorem HolderWith.nndist_le + theorem HolderWith.nndist_le_of_le + def HolderWith + theorem Set.Subsingleton.holderOnWith + theorem holderOnWith_empty + theorem holderOnWith_one + theorem holderOnWith_singleton + theorem holderOnWith_univ + theorem holderWith_id + theorem holderWith_one 2023-05-26 09:02:04 f7eb52d feat: port Algebra.Category.GroupCat.Abelian (#4380) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Category/GroupCat/Abelian.lean + def AddCommGroupCat.normalEpi + def AddCommGroupCat.normalMono 2023-05-26 09:02:03 598f6a6 feat: port Analysis.InnerProductSpace.ConformalLinearMap (#4378) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/InnerProductSpace/ConformalLinearMap.lean + theorem isConformalMap_iff 2023-05-26 09:02:01 807ca8d feat: port MeasureTheory.Function.SpecialFunctions.Inner (#4377) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/MeasureTheory/Function/SpecialFunctions/Inner.lean + theorem AEMeasurable.inner + theorem Measurable.inner 2023-05-26 08:39:27 4667c8a feat: port RingTheory.Polynomial.Dickson (#4382) Rewrote the proof for `dickson_one_one_eq_chebyshev_T` and `chebyshev_T_eq_dickson_one_one` ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/RingTheory/Polynomial/Dickson.lean + theorem Polynomial.chebyshev_T_eq_dickson_one_one + theorem Polynomial.dickson_add_two + theorem Polynomial.dickson_of_two_le + theorem Polynomial.dickson_one + theorem Polynomial.dickson_one_one_charP + theorem Polynomial.dickson_one_one_comp_comm + theorem Polynomial.dickson_one_one_eq_chebyshev_T + theorem Polynomial.dickson_one_one_eval_add_inv + theorem Polynomial.dickson_one_one_mul + theorem Polynomial.dickson_one_one_zmod_p + theorem Polynomial.dickson_two + theorem Polynomial.dickson_two_zero + theorem Polynomial.dickson_zero + theorem Polynomial.map_dickson 2023-05-26 07:56:25 8fdb233 feat: port Geometry.Manifold.ConformalGroupoid (#4372) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Geometry/Manifold/ConformalGroupoid.lean + def conformalGroupoid + def conformalPregroupoid 2023-05-26 06:17:47 4bdcb8d feat: port Analysis.InnerProductSpace.Symmetric (#4367) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/InnerProductSpace/Symmetric.lean + theorem LinearMap.IsSymmetric.add + theorem LinearMap.IsSymmetric.apply_clm + theorem LinearMap.IsSymmetric.coe_reApplyInnerSelf_apply + theorem LinearMap.IsSymmetric.conj_inner_sym + theorem LinearMap.IsSymmetric.continuous + theorem LinearMap.IsSymmetric.inner_map_polarization + theorem LinearMap.IsSymmetric.inner_map_self_eq_zero + theorem LinearMap.IsSymmetric.restrictScalars + theorem LinearMap.IsSymmetric.restrict_invariant + def LinearMap.IsSymmetric + theorem LinearMap.isSymmetric_id + theorem LinearMap.isSymmetric_iff_inner_map_self_real + theorem LinearMap.isSymmetric_iff_sesqForm + theorem LinearMap.isSymmetric_zero 2023-05-26 05:11:15 1f3f23f feat: port MeasureTheory.Function.StronglyMeasurable.Inner (#4371) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/MeasureTheory/Function/StronglyMeasurable/Inner.lean 2023-05-26 05:11:14 ca45801 feat: port Algebra.Category.Ring.Constructions (#4366) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Category/Ring/Constructions.lean + def CommRingCat.equalizerFork + def CommRingCat.equalizerForkIsLimit + def CommRingCat.prodFan + def CommRingCat.prodFanIsLimit + def CommRingCat.pullbackCone + def CommRingCat.pullbackConeIsLimit + def CommRingCat.punitIsTerminal + def CommRingCat.pushoutCocone + def CommRingCat.pushoutCoconeIsColimit + theorem CommRingCat.pushoutCocone_inl + theorem CommRingCat.pushoutCocone_inr + theorem CommRingCat.pushoutCocone_pt + theorem CommRingCat.subsingleton_of_isTerminal + def CommRingCat.zIsInitial 2023-05-26 05:11:13 7832033 feat: port Algebra.Module.Torsion (#4365) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Module/Torsion.lean + theorem AddMonoid.isTorsion_iff_isTorsion_int + theorem AddMonoid.isTorsion_iff_isTorsion_nat + theorem Ideal.CompleteLattice.Independent.linear_independent' + theorem Ideal.Quotient.torsionBy_eq_span_singleton + theorem Ideal.mem_torsionOf_iff + theorem Ideal.quotTorsionOfEquivSpanSingleton_apply_mk + def Ideal.torsionOf + theorem Ideal.torsionOf_eq_bot_iff_of_noZeroSMulDivisors + theorem Ideal.torsionOf_eq_top_iff + theorem Ideal.torsionOf_zero + def Module.IsTorsion' + def Module.IsTorsion + def Module.IsTorsionBy + def Module.IsTorsionBySet.hasSMul + theorem Module.IsTorsionBySet.mk_smul + def Module.IsTorsionBySet.module + def Module.IsTorsionBySet + theorem Module.isTorsionBySet_annihilator_top + theorem Module.isTorsionBySet_iff_is_torsion_by_span + theorem Module.isTorsionBySet_iff_torsionBySet_eq_top + theorem Module.isTorsionBySet_singleton_iff + theorem Module.isTorsionBySet_span_singleton_iff + theorem Module.isTorsionBy_iff_torsionBy_eq_top + theorem Submodule.QuotientTorsion.torsion_eq_bot + theorem Submodule.annihilator_top_inter_nonZeroDivisors + theorem Submodule.coe_torsion_eq_annihilator_ne_bot + theorem Submodule.exists_isTorsionBy + theorem Submodule.iSup_torsionBySet_ideal_eq_torsionBySet_iInf + theorem Submodule.iSup_torsionBy_eq_torsionBy_prod + theorem Submodule.isTorsion'_iff_torsion'_eq_top + theorem Submodule.isTorsion'_powers_iff + theorem Submodule.mem_torsion'_iff + theorem Submodule.mem_torsionBySet_iff + theorem Submodule.mem_torsionBy_iff + theorem Submodule.mem_torsion_iff + theorem Submodule.noZeroSMulDivisors_iff_torsion_eq_bot + def Submodule.pOrder + theorem Submodule.pow_pOrder_smul + theorem Submodule.smul_coe_torsionBy + theorem Submodule.smul_torsionBy + theorem Submodule.supIndep_torsionBy + theorem Submodule.supIndep_torsionBySet_ideal + def Submodule.torsion' + def Submodule.torsion'AddSubMonoid + theorem Submodule.torsion'_isTorsion' + theorem Submodule.torsion'_torsion'_eq_top + def Submodule.torsion + theorem Submodule.torsionBy.mk_ideal_smul + theorem Submodule.torsionBy.mk_smul + def Submodule.torsionBy + theorem Submodule.torsionBySet.mk_smul + def Submodule.torsionBySet + theorem Submodule.torsionBySet_eq_torsionBySet_span + theorem Submodule.torsionBySet_isInternal + theorem Submodule.torsionBySet_isTorsionBySet + theorem Submodule.torsionBySet_le_torsionBySet_of_subset + theorem Submodule.torsionBySet_singleton_eq + theorem Submodule.torsionBySet_span_singleton_eq + theorem Submodule.torsionBySet_torsionBySet_eq_top + theorem Submodule.torsionBySet_univ + theorem Submodule.torsionBy_isInternal + theorem Submodule.torsionBy_isTorsionBy + theorem Submodule.torsionBy_le_torsionBy_of_dvd + theorem Submodule.torsionBy_one + theorem Submodule.torsionBy_torsionBy_eq_top + theorem Submodule.torsion_gc + theorem Submodule.torsion_isTorsion + theorem Submodule.torsion_torsion_eq_top 2023-05-26 05:11:12 0a215a9 feat: port AlgebraicGeometry.PrimeSpectrum.Noetherian (#4364) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/AlgebraicGeometry/PrimeSpectrum/Noetherian.lean + theorem PrimeSpectrum.exists_primeSpectrum_prod_le + theorem PrimeSpectrum.exists_primeSpectrum_prod_le_and_ne_bot_of_domain 2023-05-26 05:11:11 e18a7af feat: port RingTheory.IntegralDomain (#4362) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/RingTheory/IntegralDomain.lean + theorem Finite.isField_of_domain + theorem Finset.exists_eq_pow_of_mul_eq_pow_of_coprime + def Fintype.divisionRingOfIsDomain + def Fintype.fieldOfDomain + def Fintype.groupWithZeroOfCancel + theorem Polynomial.div_eq_quo_add_rem_div + theorem card_fiber_eq_of_mem_range + theorem card_nthRoots_subgroup_units + theorem exists_eq_pow_of_mul_eq_pow_of_coprime + theorem isCyclic_of_subgroup_isDomain + theorem mul_left_bijective_of_finite₀ + theorem mul_right_bijective_of_finite₀ + theorem sum_hom_units + theorem sum_hom_units_eq_zero 2023-05-26 04:47:52 d3d280e feat: port Analysis.InnerProductSpace.Orthogonal (#4363) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/InnerProductSpace/Orthogonal.lean + theorem OrthogonalFamily.isOrtho + theorem Submodule.IsOrtho.comap + theorem Submodule.IsOrtho.comap_iff + theorem Submodule.IsOrtho.disjoint + theorem Submodule.IsOrtho.ge + theorem Submodule.IsOrtho.inner_eq + theorem Submodule.IsOrtho.le + theorem Submodule.IsOrtho.map + theorem Submodule.IsOrtho.map_iff + theorem Submodule.IsOrtho.mono + theorem Submodule.IsOrtho.mono_left + theorem Submodule.IsOrtho.mono_right + theorem Submodule.IsOrtho.symm + def Submodule.IsOrtho + theorem Submodule.bot_orthogonal_eq_top + theorem Submodule.iInf_orthogonal + theorem Submodule.inf_orthogonal + theorem Submodule.inf_orthogonal_eq_bot + theorem Submodule.inner_left_of_mem_orthogonal + theorem Submodule.inner_right_of_mem_orthogonal + theorem Submodule.isClosed_orthogonal + theorem Submodule.isOrtho_bot_left + theorem Submodule.isOrtho_bot_right + theorem Submodule.isOrtho_comm + theorem Submodule.isOrtho_iSup_left + theorem Submodule.isOrtho_iSup_right + theorem Submodule.isOrtho_iff_inner_eq + theorem Submodule.isOrtho_iff_le + theorem Submodule.isOrtho_orthogonal_left + theorem Submodule.isOrtho_orthogonal_right + theorem Submodule.isOrtho_sSup_left + theorem Submodule.isOrtho_sSup_right + theorem Submodule.isOrtho_self + theorem Submodule.isOrtho_span + theorem Submodule.isOrtho_sup_left + theorem Submodule.isOrtho_sup_right + theorem Submodule.isOrtho_top_left + theorem Submodule.isOrtho_top_right + theorem Submodule.le_orthogonal_orthogonal + theorem Submodule.mem_orthogonal' + theorem Submodule.mem_orthogonal + theorem Submodule.mem_orthogonal_singleton_iff_inner_left + theorem Submodule.mem_orthogonal_singleton_iff_inner_right + def Submodule.orthogonal + theorem Submodule.orthogonalFamily_self + theorem Submodule.orthogonal_disjoint + theorem Submodule.orthogonal_eq_inter + theorem Submodule.orthogonal_eq_top_iff + theorem Submodule.orthogonal_gc + theorem Submodule.orthogonal_le + theorem Submodule.orthogonal_orthogonal_monotone + theorem Submodule.sInf_orthogonal + theorem Submodule.sub_mem_orthogonal_of_inner_left + theorem Submodule.sub_mem_orthogonal_of_inner_right + theorem Submodule.symmetric_isOrtho + theorem Submodule.top_orthogonal_eq_bot + theorem bilinFormOfRealInner_orthogonal + theorem orthogonalFamily_iff_pairwise 2023-05-26 01:31:41 ca570a1 feat: `fbinop%` term elaborator to support set product notation (#4308) This introduces a term elaborator like the `binop%` term elaborator to help elaborate expressions involving "functorial" types, like `Set`, `Finset`, `List`, etc., and coercions between them. The `binop%` elaborator tries to solve for the minimal type where an arithmetic expression makes sense given which coercions exist. The `fbinop%` elaborator tries to solve for the minimal "functor." This is designed specifically to support the generic `s ×ˢ t` set product notation. Using just a class is unsufficient because often you want the expected type to help drive the coercions. This also is able to supply hints to the arguments to help homogenize the operator. Some examples: ``` example (s : Finset α) (t : Set β) (u : Finset γ) : Nat.card (s ×ˢ t ×ˢ u) = 0 -- After elaboration: Nat.card ↑(↑s ×ˢ t ×ˢ ↑u) with the Finsets as Sets example (s : Set α) (t : Set (α × ℕ)) : s ×ˢ {1, 2, 3} = t -- The {1, 2, 3} is a Set example (s : Finset α) (t : Finset (α × ℕ)) : s ×ˢ {1, 2, 3} = t -- The {1, 2, 3} is a Finset ``` These would fail without the `fbinop%` elaborator. To support subobjects in the algebraic hierarchy, a "functorial type" may have any number of instance arguments after the type argument. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Tactic.lean Added Mathlib/Tactic/FBinop.lean + structure FBinopElab.SRec + def FBinopElab.elabBinOp Added test/FBinop.lean + def FBinopTests.DecSubObj.prod + structure FBinopTests.DecSubObj + def FBinopTests.SubObj.prod + structure FBinopTests.SubObj 2023-05-26 00:36:44 78b4690 feat: port LinearAlgebra.FreeModule.IdealQuotient (#4356) This changes `Basis.mem_submodule_iff'` and `Basis.mem_ideal_iff'` because Lean 4 inserts the coercion in a different place than Lean 3 does. Otherwise, just a few implicits that needed to be explicit and one syntax weirdness. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/LinearAlgebra/Basis.lean Added Mathlib/LinearAlgebra/FreeModule/IdealQuotient.lean Modified Mathlib/RingTheory/Ideal/Operations.lean 2023-05-26 00:36:43 54c883d feat: port Algebra.Category.Group.Colimits (#3217) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Category/GroupCat/Colimits.lean + def AddCommGroupCat.Colimits.ColimitType + inductive AddCommGroupCat.Colimits.Prequotient + inductive AddCommGroupCat.Colimits.Relation + def AddCommGroupCat.Colimits.coconeFun + def AddCommGroupCat.Colimits.coconeMorphism + theorem AddCommGroupCat.Colimits.cocone_naturality + theorem AddCommGroupCat.Colimits.cocone_naturality_components + def AddCommGroupCat.Colimits.colimit + def AddCommGroupCat.Colimits.colimitCocone + def AddCommGroupCat.Colimits.colimitCoconeIsColimit + def AddCommGroupCat.Colimits.colimitSetoid + def AddCommGroupCat.Colimits.descFun + def AddCommGroupCat.Colimits.descFunLift + def AddCommGroupCat.Colimits.descMorphism + theorem AddCommGroupCat.Colimits.quot_add + theorem AddCommGroupCat.Colimits.quot_neg + theorem AddCommGroupCat.Colimits.quot_zero 2023-05-26 00:14:06 72340a7 fix: quote string in Cache (#4289) As [reported on Zulip](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/.60lake.20exe.20cache.20get.60.20fails.20when.20username.20contains.20spaces/near/360687803). ESTIMATED CHANGES Modified Cache/IO.lean Modified Cache/Requests.lean 2023-05-25 23:22:30 a6885a1 feat: port Analysis.Complex.Arg (#4355) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/Complex/Arg.lean + theorem Complex.abs_add_eq + theorem Complex.abs_add_eq_iff + theorem Complex.abs_sub_eq + theorem Complex.abs_sub_eq_iff + theorem Complex.sameRay_iff + theorem Complex.sameRay_iff_arg_div_eq_zero + theorem Complex.sameRay_of_arg_eq Modified Mathlib/Analysis/Convex/StrictConvexSpace.lean Modified Mathlib/Analysis/NormedSpace/Ray.lean 2023-05-25 22:41:12 fa76ef0 feat: port GroupTheory.Torsion (#4321) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/GroupTheory/Torsion.lean + theorem AddMonoid.IsTorsion.module_of_finite + theorem AddMonoid.IsTorsion.module_of_torsion + theorem CommGroup.primaryComponent.isPGroup + def CommGroup.primaryComponent + def CommGroup.torsion + theorem CommGroup.torsion_eq_torsion_submonoid + theorem CommMonoid.primaryComponent.disjoint + theorem CommMonoid.primaryComponent.exists_orderOf_eq_prime_pow + def CommMonoid.primaryComponent + theorem CommMonoid.torsion.isTorsion + def CommMonoid.torsion + theorem ExponentExists.isTorsion + theorem IsTorsion.exponentExists + theorem IsTorsion.extension_closed + theorem IsTorsion.not_torsion_free + theorem IsTorsion.of_surjective + theorem IsTorsion.quotient_iff + theorem IsTorsion.subgroup + theorem IsTorsionFree.not_torsion + theorem IsTorsionFree.prod + theorem IsTorsionFree.quotient_torsion + theorem IsTorsionFree.subgroup + def Monoid.IsTorsion.torsionMulEquiv + theorem Monoid.IsTorsion.torsionMulEquiv_apply + theorem Monoid.IsTorsion.torsionMulEquiv_symm_apply_coe + theorem Monoid.IsTorsion.torsion_eq_top + def Monoid.IsTorsion + def Monoid.IsTorsionFree + theorem Monoid.not_isTorsionFree_iff + theorem Monoid.not_isTorsion_iff + def Torsion.ofTorsion + theorem isTorsion_of_finite 2023-05-25 21:39:54 87b896a chore: improve docs (#4324) Also use `∀ x ∈ s, _` ESTIMATED CHANGES Modified Mathlib/Topology/Connected.lean 2023-05-25 21:39:52 83f97af feat: port FieldTheory.Ratfunc (#4293) I am going to try to work on this for a bit, but it looks hard. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/FieldTheory/RatFunc.lean + def RatFunc.C + def RatFunc.X + theorem RatFunc.X_ne_zero + theorem RatFunc.algebraMap_C + theorem RatFunc.algebraMap_X + theorem RatFunc.algebraMap_apply + theorem RatFunc.algebraMap_apply_div + theorem RatFunc.algebraMap_comp_C + theorem RatFunc.algebraMap_eq_C + theorem RatFunc.algebraMap_eq_zero_iff + theorem RatFunc.algebraMap_injective + theorem RatFunc.algebraMap_ne_zero + def RatFunc.coeAlgHom + def RatFunc.coeToLaurentSeries_fun + theorem RatFunc.coe_C + theorem RatFunc.coe_X + theorem RatFunc.coe_add + theorem RatFunc.coe_apply + theorem RatFunc.coe_def + theorem RatFunc.coe_div + theorem RatFunc.coe_injective + theorem RatFunc.coe_mapAlgHom_eq_coe_map + theorem RatFunc.coe_mapRingHom_eq_coe_map + theorem RatFunc.coe_mul + theorem RatFunc.coe_neg + theorem RatFunc.coe_num_denom + theorem RatFunc.coe_one + theorem RatFunc.coe_pow + theorem RatFunc.coe_smul + theorem RatFunc.coe_sub + theorem RatFunc.coe_zero + def RatFunc.denom + theorem RatFunc.denom_C + theorem RatFunc.denom_X + theorem RatFunc.denom_add_dvd + theorem RatFunc.denom_algebraMap + theorem RatFunc.denom_div + theorem RatFunc.denom_div_dvd + theorem RatFunc.denom_dvd + theorem RatFunc.denom_mul_dvd + theorem RatFunc.denom_ne_zero + theorem RatFunc.denom_one + theorem RatFunc.denom_zero + theorem RatFunc.div_smul + def RatFunc.eval + theorem RatFunc.eval_C + theorem RatFunc.eval_X + theorem RatFunc.eval_add + theorem RatFunc.eval_algebraMap + theorem RatFunc.eval_eq_zero_of_eval₂_denom_eq_zero + theorem RatFunc.eval_mul + theorem RatFunc.eval_one + theorem RatFunc.eval_zero + theorem RatFunc.eval₂_denom_ne_zero + def RatFunc.instAddCommGroup + def RatFunc.instCommMonoid + def RatFunc.intDegree + theorem RatFunc.intDegree_C + theorem RatFunc.intDegree_X + theorem RatFunc.intDegree_add + theorem RatFunc.intDegree_add_le + theorem RatFunc.intDegree_mul + theorem RatFunc.intDegree_neg + theorem RatFunc.intDegree_one + theorem RatFunc.intDegree_polynomial + theorem RatFunc.intDegree_zero + def RatFunc.liftAlgHom + theorem RatFunc.liftAlgHom_apply + theorem RatFunc.liftAlgHom_apply_div' + theorem RatFunc.liftAlgHom_apply_div + theorem RatFunc.liftAlgHom_apply_ofFractionRing_mk + theorem RatFunc.liftAlgHom_injective + def RatFunc.liftMonoidWithZeroHom + theorem RatFunc.liftMonoidWithZeroHom_apply + theorem RatFunc.liftMonoidWithZeroHom_apply_div' + theorem RatFunc.liftMonoidWithZeroHom_apply_div + theorem RatFunc.liftMonoidWithZeroHom_apply_ofFractionRing_mk + theorem RatFunc.liftMonoidWithZeroHom_injective + theorem RatFunc.liftOn'_div + theorem RatFunc.liftOn'_mk + theorem RatFunc.liftOn_div + theorem RatFunc.liftOn_mk + theorem RatFunc.liftOn_ofFractionRing_mk + def RatFunc.liftRingHom + theorem RatFunc.liftRingHom_apply + theorem RatFunc.liftRingHom_apply_div' + theorem RatFunc.liftRingHom_apply_div + theorem RatFunc.liftRingHom_apply_ofFractionRing_mk + theorem RatFunc.liftRingHom_injective + theorem RatFunc.lift_on_condition_of_lift_on'_condition + def RatFunc.map + def RatFunc.mapAlgHom + def RatFunc.mapRingHom + theorem RatFunc.map_apply + theorem RatFunc.map_apply_div + theorem RatFunc.map_apply_div_ne_zero + theorem RatFunc.map_apply_ofFractionRing_mk + theorem RatFunc.map_denom_ne_zero + theorem RatFunc.map_injective + theorem RatFunc.mk_coe_def + theorem RatFunc.mk_def_of_mem + theorem RatFunc.mk_def_of_ne + theorem RatFunc.mk_eq_div' + theorem RatFunc.mk_eq_div + theorem RatFunc.mk_eq_localization_mk + theorem RatFunc.mk_eq_mk + theorem RatFunc.mk_one' + theorem RatFunc.mk_one + theorem RatFunc.mk_smul + theorem RatFunc.mk_zero + theorem RatFunc.monic_denom + theorem RatFunc.mul_inv_cancel + theorem RatFunc.natDegree_num_mul_right_sub_natDegree_denom_mul_left_eq_intDegree + def RatFunc.num + def RatFunc.numDenom + theorem RatFunc.numDenom_div + theorem RatFunc.num_C + theorem RatFunc.num_X + theorem RatFunc.num_algebraMap + theorem RatFunc.num_denom_add + theorem RatFunc.num_denom_mul + theorem RatFunc.num_denom_neg + theorem RatFunc.num_div + theorem RatFunc.num_div_denom + theorem RatFunc.num_div_dvd' + theorem RatFunc.num_div_dvd + theorem RatFunc.num_dvd + theorem RatFunc.num_eq_zero_iff + theorem RatFunc.num_mul_denom_add_denom_mul_num_ne_zero + theorem RatFunc.num_mul_dvd + theorem RatFunc.num_mul_eq_mul_denom_iff + theorem RatFunc.num_ne_zero + theorem RatFunc.num_one + theorem RatFunc.num_zero + theorem RatFunc.ofFractionRing_add + theorem RatFunc.ofFractionRing_algebraMap + theorem RatFunc.ofFractionRing_comp_algebraMap + theorem RatFunc.ofFractionRing_div + theorem RatFunc.ofFractionRing_eq + theorem RatFunc.ofFractionRing_injective + theorem RatFunc.ofFractionRing_inv + theorem RatFunc.ofFractionRing_mk' + theorem RatFunc.ofFractionRing_mul + theorem RatFunc.ofFractionRing_neg + theorem RatFunc.ofFractionRing_one + theorem RatFunc.ofFractionRing_smul + theorem RatFunc.ofFractionRing_sub + theorem RatFunc.ofFractionRing_zero + theorem RatFunc.smul_eq_C_mul + theorem RatFunc.smul_eq_C_smul + def RatFunc.toFractionRingRingEquiv + theorem RatFunc.toFractionRingRingEquiv_symm_eq + theorem RatFunc.toFractionRing_eq + theorem RatFunc.toFractionRing_injective + theorem RatFunc.toFractionRing_smul + structure RatFunc 2023-05-25 21:14:33 4538449 feat: weaken assumptions in lemmas about `fderivWithin` (#4330) This is a partial forward-port of leanprover-community/mathlib#19045. I only forward-ported 1 file that was already merged into `master`. I'll do some git history rewrites in pending PRs instead. ESTIMATED CHANGES Modified Mathlib/Analysis/Calculus/FDeriv/Basic.lean - theorem DifferentiableWithinAt.antimono +/- theorem DifferentiableWithinAt.congr_mono +/- theorem Filter.EventuallyEq.fderivWithin_eq +/- theorem Filter.EventuallyEq.fderivWithin_eq_nhds +/- theorem Filter.EventuallyEq.fderiv_eq + theorem Filter.EventuallyEq.fderiv_within' - theorem HasFDerivWithinAt.antimono +/- theorem HasFDerivWithinAt.congr' +/- theorem HasFDerivWithinAt.congr +/- theorem HasFDerivWithinAt.congr_mono +/- theorem HasFDerivWithinAt.insert + theorem differentiableWithinAt_congr_set' + theorem differentiableWithinAt_congr_set +/- theorem fderivWithin_congr' +/- theorem fderivWithin_congr + theorem fderivWithin_congr_set' + theorem fderivWithin_congr_set + theorem fderivWithin_eventually_congr_set' + theorem fderivWithin_eventually_congr_set +/- theorem fderivWithin_inter + theorem fderivWithin_of_mem - theorem fderivWithin_subset' +/- theorem fderivWithin_univ + theorem hasFDerivWithinAt_congr_set' + theorem hasFDerivWithinAt_congr_set + theorem hasFDerivWithinAt_diff_singleton +/- theorem hasFDerivWithinAt_insert +/- theorem support_fderiv_subset + theorem tsupport_fderiv_subset 2023-05-25 20:21:22 7e67446 feat: port GroupTheory.PGroup (#4318) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/GroupTheory/PGroup.lean + theorem IsPGroup.bot_lt_center + theorem IsPGroup.card_center_eq_prime_pow + theorem IsPGroup.card_eq_or_dvd + theorem IsPGroup.card_modEq_card_fixedPoints + theorem IsPGroup.card_orbit + theorem IsPGroup.center_nontrivial + theorem IsPGroup.comap_of_injective + theorem IsPGroup.comap_of_ker_isPGroup + theorem IsPGroup.comap_subtype + def IsPGroup.commGroupOfCardEqPrimeSq + theorem IsPGroup.commutative_of_card_eq_prime_sq + theorem IsPGroup.coprime_card_of_ne + theorem IsPGroup.cyclic_center_quotient_of_card_eq_prime_sq + theorem IsPGroup.disjoint_of_ne + theorem IsPGroup.exists_fixed_point_of_prime_dvd_card_of_fixed_point + theorem IsPGroup.iff_card + theorem IsPGroup.iff_orderOf + theorem IsPGroup.index + theorem IsPGroup.ker_isPGroup_of_injective + theorem IsPGroup.map + theorem IsPGroup.nonempty_fixed_point_of_prime_not_dvd_card + theorem IsPGroup.nontrivial_iff_card + theorem IsPGroup.of_bot + theorem IsPGroup.of_card + theorem IsPGroup.of_equiv + theorem IsPGroup.of_injective + theorem IsPGroup.of_surjective + theorem IsPGroup.orderOf_coprime + theorem IsPGroup.powEquiv_apply + theorem IsPGroup.powEquiv_symm_apply + theorem IsPGroup.to_inf_left + theorem IsPGroup.to_inf_right + theorem IsPGroup.to_le + theorem IsPGroup.to_quotient + theorem IsPGroup.to_subgroup + theorem IsPGroup.to_sup_of_normal_left' + theorem IsPGroup.to_sup_of_normal_left + theorem IsPGroup.to_sup_of_normal_right' + theorem IsPGroup.to_sup_of_normal_right + def IsPGroup 2023-05-25 19:41:35 3dde1ee feat: port Analysis.PSeries (#4182) Removed the `simp` attribute on one lemma because `simpNF` was timing out trying to reduce the LHS. See [Zulip](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/looping.20in.20.60simp.60.20set) for the problem. Once this error is corrected with `simp`, we should be able to add the attribute again. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/PSeries.lean + theorem ENNReal.le_tsum_condensed + theorem ENNReal.tsum_condensed_le + theorem Finset.le_sum_condensed' + theorem Finset.le_sum_condensed + theorem Finset.sum_condensed_le' + theorem Finset.sum_condensed_le + theorem NNReal.summable_condensed_iff + theorem NNReal.summable_one_div_rpow + theorem NNReal.summable_rpow + theorem NNReal.summable_rpow_inv + theorem Real.not_summable_nat_cast_inv + theorem Real.not_summable_one_div_nat_cast + theorem Real.summable_abs_int_rpow + theorem Real.summable_nat_pow_inv + theorem Real.summable_nat_rpow + theorem Real.summable_nat_rpow_inv + theorem Real.summable_one_div_int_pow + theorem Real.summable_one_div_nat_pow + theorem Real.summable_one_div_nat_rpow + theorem Real.tendsto_sum_range_one_div_nat_succ_atTop + theorem sum_Ioc_inv_sq_le_sub + theorem sum_Ioo_inv_sq_le + theorem summable_condensed_iff_of_nonneg 2023-05-25 17:59:09 a601ad1 feat: port CategoryTheory.Abelian.Injective (#4348) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Abelian/Injective.lean + theorem CategoryTheory.injective_of_preservesFiniteColimits_preadditiveYonedaObj + def CategoryTheory.preservesFiniteColimitsPreadditiveYonedaObjOfInjective 2023-05-25 17:59:08 868ddb6 feat: port Analysis.Convex.KreinMilman (#4347) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/Convex/KreinMilman.lean + theorem IsCompact.has_extreme_point + theorem closure_convexHull_extremePoints 2023-05-25 17:59:06 18ecd67 chore: fix 2 comments (#4346) ESTIMATED CHANGES Modified Mathlib/Data/Real/ENNReal.lean 2023-05-25 17:59:03 73ad900 feat: port Analysis.Calculus.Conformal.NormedSpace (#4343) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/Calculus/Conformal/NormedSpace.lean + theorem Conformal.comp + theorem Conformal.conformalAt + theorem Conformal.const_smul + theorem Conformal.differentiable + def Conformal + theorem ConformalAt.comp + theorem ConformalAt.congr + theorem ConformalAt.const_smul + theorem ConformalAt.differentiableAt + def ConformalAt + theorem Subsingleton.conformalAt + theorem conformalAt_const_smul + theorem conformalAt_id + theorem conformalAt_iff_isConformalMap_fderiv + theorem conformal_const_smul + theorem conformal_id 2023-05-25 17:59:01 0d0143c chore: update SHA sums (#4342) The actual forward-porting was done in #4327 and #4328 ESTIMATED CHANGES Modified Mathlib/Analysis/Normed/MulAction.lean Modified Mathlib/Analysis/NormedSpace/Basic.lean Modified Mathlib/Analysis/NormedSpace/Pointwise.lean Modified Mathlib/Data/Real/ENNReal.lean Modified Mathlib/Order/Filter/Basic.lean Modified Mathlib/Topology/ContinuousOn.lean Modified Mathlib/Topology/MetricSpace/HausdorffDistance.lean Modified Mathlib/Topology/MetricSpace/IsometricSMul.lean 2023-05-25 17:59:00 f8480be feat: port GroupTheory.SpecificGroups.Cyclic (#4316) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/GroupTheory/SpecificGroups/Cyclic.lean + theorem CommGroup.is_simple_iff_isCyclic_and_prime_card + theorem Infinite.orderOf_eq_zero_of_forall_mem_zpowers + theorem IsAddCyclic.card_orderOf_eq_totient + theorem IsCyclic.card_orderOf_eq_totient + theorem IsCyclic.card_pow_eq_one_le + def IsCyclic.commGroup + theorem IsCyclic.exists_monoid_generator + theorem IsCyclic.exponent_eq_card + theorem IsCyclic.exponent_eq_zero_of_infinite + theorem IsCyclic.iff_exponent_eq_card + theorem IsCyclic.image_range_card + theorem IsCyclic.image_range_orderOf + theorem IsCyclic.of_exponent_eq_card + theorem IsSimpleGroup.prime_card + theorem MonoidHom.map_cyclic + theorem card_orderOf_eq_totient_aux₂ + def commGroupOfCycleCenterQuotient + theorem commutative_of_cyclic_center_quotient + theorem isAddCyclic_of_card_pow_eq_one_le + theorem isCyclic_of_card_pow_eq_one_le + theorem isCyclic_of_orderOf_eq_card + theorem isCyclic_of_prime_card + theorem isSimpleGroup_of_prime_card + theorem orderOf_eq_card_of_forall_mem_zpowers 2023-05-25 17:58:59 fea3e4c feat: port Analysis.InnerProductSpace.Basic (#4280) I had to add big `maxHeartbeats` increases into two places, but I haven't been able to improve the situation (it compiles though). This might need to be addressed before merging. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/InnerProductSpace/Basic.lean + theorem Continuous.inner + theorem ContinuousAt.inner + def ContinuousLinearMap.reApplyInnerSelf + theorem ContinuousLinearMap.reApplyInnerSelf_apply + theorem ContinuousLinearMap.reApplyInnerSelf_continuous + theorem ContinuousLinearMap.reApplyInnerSelf_smul + def ContinuousLinearMap.toSesqForm + theorem ContinuousLinearMap.toSesqForm_apply_coe + theorem ContinuousLinearMap.toSesqForm_apply_norm_le + theorem ContinuousOn.inner + theorem ContinuousWithinAt.inner + theorem Dfinsupp.inner_sum + theorem Dfinsupp.sum_inner + theorem DirectSum.IsInternal.collectedBasis_orthonormal + theorem Filter.Tendsto.inner + theorem Finsupp.inner_sum + theorem Finsupp.sum_inner + def Inner.isROrCToReal + theorem InnerProductSpace.Core.cauchy_schwarz_aux + theorem InnerProductSpace.Core.inner_add_add_self + theorem InnerProductSpace.Core.inner_add_left + theorem InnerProductSpace.Core.inner_add_right + theorem InnerProductSpace.Core.inner_conj_symm + theorem InnerProductSpace.Core.inner_im_symm + theorem InnerProductSpace.Core.inner_mul_inner_self_le + theorem InnerProductSpace.Core.inner_mul_symm_re_eq_norm + theorem InnerProductSpace.Core.inner_neg_left + theorem InnerProductSpace.Core.inner_neg_right + theorem InnerProductSpace.Core.inner_re_symm + theorem InnerProductSpace.Core.inner_self_eq_norm_mul_norm + theorem InnerProductSpace.Core.inner_self_eq_zero + theorem InnerProductSpace.Core.inner_self_im + theorem InnerProductSpace.Core.inner_self_ne_zero + theorem InnerProductSpace.Core.inner_self_nonneg + theorem InnerProductSpace.Core.inner_self_ofReal_re + theorem InnerProductSpace.Core.inner_smul_left + theorem InnerProductSpace.Core.inner_smul_right + theorem InnerProductSpace.Core.inner_sub_left + theorem InnerProductSpace.Core.inner_sub_right + theorem InnerProductSpace.Core.inner_sub_sub_self + theorem InnerProductSpace.Core.inner_zero_left + theorem InnerProductSpace.Core.inner_zero_right + def InnerProductSpace.Core.normSq + theorem InnerProductSpace.Core.normSq_eq_zero + theorem InnerProductSpace.Core.norm_eq_sqrt_inner + theorem InnerProductSpace.Core.norm_inner_le_norm + theorem InnerProductSpace.Core.norm_inner_symm + theorem InnerProductSpace.Core.ofReal_normSq_eq_inner_self + theorem InnerProductSpace.Core.sqrt_normSq_eq_norm + def InnerProductSpace.Core.toInner' + def InnerProductSpace.Core.toNorm + def InnerProductSpace.Core.toNormedAddCommGroup + def InnerProductSpace.Core.toNormedSpace + structure InnerProductSpace.Core + def InnerProductSpace.isROrCToReal + def InnerProductSpace.ofCore + def InnerProductSpace.toCore + theorem IsROrC.inner_apply + theorem LinearEquiv.coe_isometryOfInner + theorem LinearEquiv.coe_isometryOfOrthonormal + def LinearEquiv.isometryOfInner + theorem LinearEquiv.isometryOfInner_toLinearEquiv + def LinearEquiv.isometryOfOrthonormal + theorem LinearEquiv.isometryOfOrthonormal_toLinearEquiv + theorem LinearIsometry.inner_map_map + theorem LinearIsometry.orthonormal_comp_iff + theorem LinearIsometryEquiv.inner_map_map + theorem LinearMap.coe_isometryOfInner + theorem LinearMap.coe_isometryOfOrthonormal + def LinearMap.isometryOfInner + theorem LinearMap.isometryOfInner_toLinearMap + def LinearMap.isometryOfOrthonormal + theorem LinearMap.isometryOfOrthonormal_toLinearMap + theorem OrthogonalFamily.comp + theorem OrthogonalFamily.eq_ite + theorem OrthogonalFamily.independent + theorem OrthogonalFamily.inner_right_dfinsupp + theorem OrthogonalFamily.inner_right_fintype + theorem OrthogonalFamily.inner_sum + theorem OrthogonalFamily.norm_sq_diff_sum + theorem OrthogonalFamily.norm_sum + theorem OrthogonalFamily.orthonormal_sigma_orthonormal + theorem OrthogonalFamily.summable_iff_norm_sq_summable + def OrthogonalFamily + theorem Orthonormal.codRestrict + theorem Orthonormal.comp + theorem Orthonormal.comp_linearIsometry + theorem Orthonormal.comp_linearIsometryEquiv + def Orthonormal.equiv + theorem Orthonormal.equiv_apply + theorem Orthonormal.equiv_refl + theorem Orthonormal.equiv_symm + theorem Orthonormal.equiv_toLinearEquiv + theorem Orthonormal.equiv_trans + theorem Orthonormal.inner_finsupp_eq_sum_left + theorem Orthonormal.inner_finsupp_eq_sum_right + theorem Orthonormal.inner_finsupp_eq_zero + theorem Orthonormal.inner_left_finsupp + theorem Orthonormal.inner_left_fintype + theorem Orthonormal.inner_left_right_finset + theorem Orthonormal.inner_left_sum + theorem Orthonormal.inner_products_summable + theorem Orthonormal.inner_right_finsupp + theorem Orthonormal.inner_right_fintype + theorem Orthonormal.inner_right_sum + theorem Orthonormal.inner_sum + theorem Orthonormal.linearIndependent + theorem Orthonormal.mapLinearIsometryEquiv + theorem Orthonormal.map_equiv + theorem Orthonormal.ne_zero + theorem Orthonormal.orthogonalFamily + theorem Orthonormal.orthonormal_of_forall_eq_or_eq_neg + theorem Orthonormal.sum_inner_products_le + theorem Orthonormal.toSubtypeRange + theorem Orthonormal.tsum_inner_products_le + def Orthonormal + theorem Submodule.coe_inner + theorem UniformSpace.Completion.inner_coe + theorem abs_real_inner_div_norm_mul_norm_eq_one_iff + theorem abs_real_inner_div_norm_mul_norm_eq_one_of_ne_zero_of_ne_zero_mul + theorem abs_real_inner_div_norm_mul_norm_le_one + theorem abs_real_inner_le_norm + def basisOfOrthonormalOfCardEqFinrank + def bilinFormOfRealInner + theorem coe_basisOfOrthonormalOfCardEqFinrank + theorem continuous_inner + theorem dist_div_norm_sq_smul + theorem exists_maximal_orthonormal + theorem ext_inner_left + theorem ext_inner_map + theorem ext_inner_right + theorem im_inner_eq_norm_sub_i_smul_mul_self_sub_norm_add_i_smul_mul_self_div_four + def innerSL + def innerSLFlip + theorem innerSLFlip_apply + theorem innerSL_apply + theorem innerSL_apply_coe + theorem innerSL_apply_norm + theorem inner_add_add_self + theorem inner_add_left + theorem inner_add_right + theorem inner_conj_symm + theorem inner_eq_norm_mul_iff + theorem inner_eq_norm_mul_iff_div + theorem inner_eq_norm_mul_iff_real + theorem inner_eq_one_iff_of_norm_one + theorem inner_eq_sum_norm_sq_div_four + theorem inner_eq_zero_symm + theorem inner_im_symm + theorem inner_lt_norm_mul_iff_real + theorem inner_lt_one_iff_real_of_norm_one + theorem inner_map_complex + theorem inner_map_polarization' + theorem inner_map_polarization + theorem inner_map_self_eq_zero + theorem inner_mul_inner_self_le + theorem inner_mul_symm_re_eq_norm + theorem inner_neg_left + theorem inner_neg_neg + theorem inner_neg_right + theorem inner_re_symm + theorem inner_re_zero_left + theorem inner_re_zero_right + theorem inner_self_conj + theorem inner_self_eq_norm_mul_norm + theorem inner_self_eq_norm_sq + theorem inner_self_eq_norm_sq_to_K + theorem inner_self_eq_zero + theorem inner_self_im + theorem inner_self_ne_zero + theorem inner_self_nonneg + theorem inner_self_nonpos + theorem inner_self_ofReal_norm + theorem inner_self_ofReal_re + theorem inner_self_re_eq_norm + theorem inner_smul_left + theorem inner_smul_real_left + theorem inner_smul_real_right + theorem inner_smul_right + theorem inner_sub_left + theorem inner_sub_right + theorem inner_sub_sub_self + theorem inner_sum + theorem inner_sum_smul_sum_smul_of_sum_eq_zero + theorem inner_zero_left + theorem inner_zero_right + def innerₛₗ + theorem innerₛₗ_apply + theorem innerₛₗ_apply_coe + theorem isBoundedBilinearMap_inner + theorem linearIndependent_of_ne_zero_of_inner_eq_zero + theorem nnnorm_inner_le_nnnorm + theorem norm_add_eq_sqrt_iff_real_inner_eq_zero + theorem norm_add_mul_self + theorem norm_add_mul_self_real + theorem norm_add_sq + theorem norm_add_sq_eq_norm_sq_add_norm_sq_iff_real_inner_eq_zero + theorem norm_add_sq_eq_norm_sq_add_norm_sq_of_inner_eq_zero + theorem norm_add_sq_eq_norm_sq_add_norm_sq_real + theorem norm_add_sq_real + theorem norm_eq_sqrt_inner + theorem norm_eq_sqrt_real_inner + theorem norm_inner_div_norm_mul_norm_eq_one_iff + theorem norm_inner_div_norm_mul_norm_eq_one_of_ne_zero_of_ne_zero_mul + theorem norm_inner_eq_norm_iff + theorem norm_inner_eq_norm_tfae + theorem norm_inner_le_norm + theorem norm_inner_symm + theorem norm_sub_eq_norm_add + theorem norm_sub_eq_sqrt_iff_real_inner_eq_zero + theorem norm_sub_mul_self + theorem norm_sub_mul_self_real + theorem norm_sub_sq + theorem norm_sub_sq_eq_norm_sq_add_norm_sq_iff_real_inner_eq_zero + theorem norm_sub_sq_eq_norm_sq_add_norm_sq_real + theorem norm_sub_sq_real + theorem orthonormal_empty + theorem orthonormal_iUnion_of_directed + theorem orthonormal_iff_ite + theorem orthonormal_sUnion_of_directed + theorem orthonormal_span + theorem orthonormal_subtype_iff_ite + theorem orthonormal_subtype_range + theorem parallelogram_law + theorem parallelogram_law_with_nnnorm + theorem parallelogram_law_with_norm + theorem re_inner_eq_norm_add_mul_self_sub_norm_mul_self_sub_norm_mul_self_div_two + theorem re_inner_eq_norm_add_mul_self_sub_norm_sub_mul_self_div_four + theorem re_inner_eq_norm_mul_self_add_norm_mul_self_sub_norm_sub_mul_self_div_two + theorem re_inner_le_norm + theorem real_inner_I_smul_self + theorem real_inner_add_add_self + theorem real_inner_add_sub_eq_zero_iff + theorem real_inner_comm + theorem real_inner_div_norm_mul_norm_eq_neg_one_iff + theorem real_inner_div_norm_mul_norm_eq_neg_one_of_ne_zero_of_neg_mul + theorem real_inner_div_norm_mul_norm_eq_one_iff + theorem real_inner_div_norm_mul_norm_eq_one_of_ne_zero_of_pos_mul + theorem real_inner_eq_norm_add_mul_self_sub_norm_mul_self_sub_norm_mul_self_div_two + theorem real_inner_eq_norm_mul_self_add_norm_mul_self_sub_norm_sub_mul_self_div_two + theorem real_inner_eq_re_inner + theorem real_inner_le_norm + theorem real_inner_mul_inner_self_le + theorem real_inner_self_abs + theorem real_inner_self_eq_norm_mul_norm + theorem real_inner_self_eq_norm_sq + theorem real_inner_self_nonneg + theorem real_inner_self_nonpos + theorem real_inner_smul_left + theorem real_inner_smul_right + theorem real_inner_smul_self_left + theorem real_inner_smul_self_right + theorem real_inner_sub_sub_self + def sesqFormOfInner + theorem sum_inner Modified Mathlib/Data/IsROrC/Basic.lean 2023-05-25 17:58:57 a1c58a9 feat: port Data.Nat.Squarefree (#4278) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Data/Nat/Squarefree.lean + def Nat.MinSqFacProp + theorem Nat.Squarefree.ext_iff + theorem Nat.Squarefree.factorization_le_one + theorem Nat.divisors_filter_squarefree + def Nat.minSqFac + def Nat.minSqFacAux + theorem Nat.minSqFacAux_has_prop + theorem Nat.minSqFacProp_div + theorem Nat.minSqFac_dvd + theorem Nat.minSqFac_has_prop + theorem Nat.minSqFac_le_of_dvd + theorem Nat.minSqFac_prime + theorem Nat.sq_mul_squarefree + theorem Nat.sq_mul_squarefree_of_pos' + theorem Nat.sq_mul_squarefree_of_pos + theorem Nat.squarefree_and_prime_pow_iff_prime + theorem Nat.squarefree_iff_factorization_le_one + theorem Nat.squarefree_iff_minSqFac + theorem Nat.squarefree_iff_nodup_factors + theorem Nat.squarefree_iff_prime_squarefree + theorem Nat.squarefree_mul + theorem Nat.squarefree_of_factorization_le_one + theorem Nat.squarefree_pow_iff + theorem Nat.squarefree_two + theorem Nat.sum_divisors_filter_squarefree + def SquarefreeHelper + theorem not_squarefree_mul + theorem squarefreeHelper_1 + theorem squarefreeHelper_2 + theorem squarefreeHelper_3 + theorem squarefreeHelper_4 + theorem squarefree_bit10 + theorem squarefree_bit1 + theorem squarefree_helper_0 2023-05-25 17:58:56 e53aed1 feat: port Algebra.Category.Ring.Limits (#4235) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Category/Ring/Basic.lean + def RingEquiv.toCommSemiRingCatIso + def RingEquiv.toSemiRingCatIso Modified Mathlib/Algebra/Category/Ring/FilteredColimits.lean Added Mathlib/Algebra/Category/Ring/Limits.lean + def CommRingCat.forget₂CommSemiRingPreservesLimitsAux + def CommRingCat.limitCone + def CommRingCat.limitConeIsLimit + def CommSemiRingCat.limitCone + def CommSemiRingCat.limitConeIsLimit + def RingCat.forget₂AddCommGroupPreservesLimitsAux + def RingCat.limitCone + def RingCat.limitConeIsLimit + def RingCat.sectionsSubring + def SemiRingCat.HasLimits.limitCone + def SemiRingCat.HasLimits.limitConeIsLimit + def SemiRingCat.forget₂AddCommMonPreservesLimitsAux + def SemiRingCat.forget₂MonPreservesLimitsAux + def SemiRingCat.limitπRingHom + def SemiRingCat.sectionsSubsemiring 2023-05-25 17:58:55 c111a30 feat: port Analysis.Complex.UnitDisc.Basic (#4180) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/Complex/UnitDisc/Basic.lean + theorem Complex.UnitDisc.abs_lt_one + theorem Complex.UnitDisc.abs_ne_one + theorem Complex.UnitDisc.coe_conj + theorem Complex.UnitDisc.coe_eq_zero + theorem Complex.UnitDisc.coe_injective + theorem Complex.UnitDisc.coe_mk + theorem Complex.UnitDisc.coe_mul + theorem Complex.UnitDisc.coe_ne_neg_one + theorem Complex.UnitDisc.coe_ne_one + theorem Complex.UnitDisc.coe_smul_circle + theorem Complex.UnitDisc.coe_smul_closedBall + theorem Complex.UnitDisc.coe_zero + def Complex.UnitDisc.conj + theorem Complex.UnitDisc.conj_conj + theorem Complex.UnitDisc.conj_mul + theorem Complex.UnitDisc.conj_neg + theorem Complex.UnitDisc.conj_zero + def Complex.UnitDisc.im + theorem Complex.UnitDisc.im_coe + theorem Complex.UnitDisc.im_conj + theorem Complex.UnitDisc.im_neg + def Complex.UnitDisc.mk + theorem Complex.UnitDisc.mk_coe + theorem Complex.UnitDisc.mk_neg + theorem Complex.UnitDisc.normSq_lt_one + theorem Complex.UnitDisc.one_add_coe_ne_zero + def Complex.UnitDisc.re + theorem Complex.UnitDisc.re_coe + theorem Complex.UnitDisc.re_conj + theorem Complex.UnitDisc.re_neg + def Complex.UnitDisc 2023-05-25 15:08:15 e425f61 feat: port CategoryTheory.Abelian.RightDerived (#4284) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Abelian/RightDerived.lean + theorem CategoryTheory.Abelian.Functor.exact_of_map_injectiveResolution + theorem CategoryTheory.Abelian.Functor.preserves_exact_of_preservesFiniteLimits_of_mono + def CategoryTheory.Abelian.Functor.rightDerivedZeroIsoSelf + def CategoryTheory.Abelian.Functor.rightDerivedZeroToSelfApp + def CategoryTheory.Abelian.Functor.rightDerivedZeroToSelfAppInv + theorem CategoryTheory.Abelian.Functor.rightDerivedZeroToSelfAppInv_comp + def CategoryTheory.Abelian.Functor.rightDerivedZeroToSelfAppIso + theorem CategoryTheory.Abelian.Functor.rightDerivedZeroToSelfApp_comp_inv + theorem CategoryTheory.Abelian.Functor.rightDerivedZeroToSelf_natural + def CategoryTheory.Functor.rightDerived + def CategoryTheory.Functor.rightDerivedObjInjectiveSucc + def CategoryTheory.Functor.rightDerivedObjInjectiveZero + def CategoryTheory.Functor.rightDerivedObjIso + theorem CategoryTheory.Functor.rightDerived_map_eq + def CategoryTheory.NatTrans.rightDerived + theorem CategoryTheory.NatTrans.rightDerived_comp + theorem CategoryTheory.NatTrans.rightDerived_eq + theorem CategoryTheory.NatTrans.rightDerived_id 2023-05-25 14:50:30 f85a2b8 feat: port GroupTheory.Exponent (#4313) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/GroupTheory/Exponent.lean + def Monoid.ExponentExists + theorem Monoid.exp_eq_one_of_subsingleton + theorem Monoid.exponentExists_iff_ne_zero + theorem Monoid.exponent_dvd_of_forall_pow_eq_one + theorem Monoid.exponent_eq_iSup_orderOf' + theorem Monoid.exponent_eq_iSup_orderOf + theorem Monoid.exponent_eq_max'_orderOf + theorem Monoid.exponent_eq_zero_iff + theorem Monoid.exponent_eq_zero_iff_range_orderOf_infinite + theorem Monoid.exponent_eq_zero_of_order_zero + theorem Monoid.exponent_min' + theorem Monoid.exponent_min + theorem Monoid.exponent_ne_zero_iff_range_orderOf_finite + theorem Monoid.exponent_ne_zero_of_finite + theorem Monoid.exponent_pos_of_exists + theorem Monoid.lcm_orderOf_dvd_exponent + theorem Monoid.lcm_order_eq_exponent + theorem Monoid.order_dvd_exponent + theorem Monoid.pow_eq_mod_exponent + theorem Monoid.pow_exponent_eq_one + theorem Nat.Prime.exists_orderOf_eq_pow_factorization_exponent + theorem card_dvd_exponent_pow_rank' + theorem card_dvd_exponent_pow_rank 2023-05-25 14:31:08 c8442dc feat: port MeasureTheory.Integral.MeanInequalities (#4337) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/MeasureTheory/Integral/MeanInequalities.lean + theorem ENNReal.ae_eq_zero_of_lintegral_rpow_eq_zero + def ENNReal.funMulInvSnorm + theorem ENNReal.funMulInvSnorm_rpow + theorem ENNReal.fun_eq_funMulInvSnorm_mul_snorm + theorem ENNReal.lintegral_Lp_add_le + theorem ENNReal.lintegral_Lp_add_le_of_le_one + theorem ENNReal.lintegral_Lp_mul_le_Lq_mul_Lr + theorem ENNReal.lintegral_mul_eq_zero_of_lintegral_rpow_eq_zero + theorem ENNReal.lintegral_mul_le_Lp_mul_Lq + theorem ENNReal.lintegral_mul_le_Lp_mul_Lq_of_ne_zero_of_eq_top + theorem ENNReal.lintegral_mul_le_Lp_mul_Lq_of_ne_zero_of_ne_top + theorem ENNReal.lintegral_mul_le_one_of_lintegral_rpow_eq_one + theorem ENNReal.lintegral_mul_rpow_le_lintegral_rpow_mul_lintegral_rpow + theorem ENNReal.lintegral_rpow_add_le_add_snorm_mul_lintegral_rpow_add + theorem ENNReal.lintegral_rpow_add_lt_top_of_lintegral_rpow_lt_top + theorem ENNReal.lintegral_rpow_funMulInvSnorm_eq_one + theorem NNReal.lintegral_mul_le_Lp_mul_Lq 2023-05-25 14:31:07 5611e57 feat: port NumberTheory.Bernoulli (#4259) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/NumberTheory/Bernoulli.lean + def bernoulli' + def bernoulli'PowerSeries + theorem bernoulli'PowerSeries_mul_exp_sub_one + theorem bernoulli'_def' + theorem bernoulli'_def + theorem bernoulli'_eq_bernoulli + theorem bernoulli'_four + theorem bernoulli'_odd_eq_zero + theorem bernoulli'_one + theorem bernoulli'_spec' + theorem bernoulli'_spec + theorem bernoulli'_three + theorem bernoulli'_two + theorem bernoulli'_zero + def bernoulli + def bernoulliPowerSeries + theorem bernoulliPowerSeries_mul_exp_sub_one + theorem bernoulli_eq_bernoulli'_of_ne_one + theorem bernoulli_one + theorem bernoulli_spec' + theorem bernoulli_zero + theorem sum_Ico_pow + theorem sum_bernoulli' + theorem sum_bernoulli + theorem sum_range_pow 2023-05-25 14:13:32 12633d2 feat: port Data.ZMod.Quotient (#4074) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Data/ZMod/Quotient.lean + theorem AddAction.orbitZmultiplesEquiv_symm_apply' + theorem AddAction.zmultiplesQuotientStabilizerEquiv_symm_apply + def Int.quotientSpanEquivZMod + def Int.quotientSpanNatEquivZMod + def Int.quotientZmultiplesEquivZMod + def Int.quotientZmultiplesNatEquivZMod + theorem IsOfFinOrder.finite_zpowers + theorem MulAction.minimalPeriod_eq_card + theorem MulAction.orbitZpowersEquiv_symm_apply' + theorem MulAction.orbitZpowersEquiv_symm_apply + theorem MulAction.zpowersQuotientStabilizerEquiv_symm_apply + theorem order_eq_card_zpowers' 2023-05-25 13:41:02 8916ee4 feat: port Analysis.SpecialFunctions.Pow.Continuity (#4336) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/SpecialFunctions/Pow/Continuity.lean + theorem Complex.continuousAt_cpow_const_of_re_pos + theorem Complex.continuousAt_cpow_of_re_pos + theorem Complex.continuousAt_cpow_zero_of_re_pos + theorem Complex.continuousAt_of_real_cpow + theorem Complex.continuousAt_of_real_cpow_const + theorem Complex.continuous_of_real_cpow_const + theorem Continuous.const_cpow + theorem Continuous.cpow + theorem Continuous.rpow + theorem Continuous.rpow_const + theorem ContinuousOn.const_cpow + theorem ContinuousOn.cpow + theorem ContinuousOn.cpow_const + theorem ContinuousOn.rpow + theorem ContinuousOn.rpow_const + theorem ENNReal.continuous_rpow_const + theorem ENNReal.eventually_pow_one_div_le + theorem ENNReal.tendsto_const_mul_rpow_nhds_zero_of_pos + theorem Filter.Tendsto.const_cpow + theorem Filter.Tendsto.cpow + theorem Filter.Tendsto.ennrpow_const + theorem Filter.Tendsto.nnrpow + theorem Filter.Tendsto.rpow + theorem Filter.Tendsto.rpow_const + theorem NNReal.continuousAt_rpow + theorem NNReal.continuousAt_rpow_const + theorem NNReal.continuous_rpow_const + theorem NNReal.eventually_pow_one_div_le + theorem Real.continuousAt_const_rpow' + theorem Real.continuousAt_const_rpow + theorem Real.continuousAt_rpow + theorem Real.continuousAt_rpow_const + theorem Real.continuousAt_rpow_of_ne + theorem Real.continuousAt_rpow_of_pos + theorem Real.rpow_eq_nhds_of_neg + theorem Real.rpow_eq_nhds_of_pos + theorem continuousAt_const_cpow' + theorem continuousAt_const_cpow + theorem continuousAt_cpow + theorem continuousAt_cpow_const + theorem cpow_eq_nhds' + theorem cpow_eq_nhds + theorem zero_cpow_eq_nhds 2023-05-25 13:41:01 9febf7e feat: port Analysis.MeanInequalitiesPow (#4331) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/MeanInequalitiesPow.lean + theorem ENNReal.add_rpow_le_rpow_add + theorem ENNReal.rpow_add_le_add_rpow + theorem ENNReal.rpow_add_le_mul_rpow_add_rpow + theorem ENNReal.rpow_add_rpow_le + theorem ENNReal.rpow_add_rpow_le_add + theorem ENNReal.rpow_arith_mean_le_arith_mean2_rpow + theorem ENNReal.rpow_arith_mean_le_arith_mean_rpow + theorem NNReal.add_rpow_le_rpow_add + theorem NNReal.arith_mean_le_rpow_mean + theorem NNReal.pow_arith_mean_le_arith_mean_pow + theorem NNReal.pow_sum_div_card_le_sum_pow + theorem NNReal.rpow_add_le_add_rpow + theorem NNReal.rpow_add_le_mul_rpow_add_rpow + theorem NNReal.rpow_add_rpow_le + theorem NNReal.rpow_add_rpow_le_add + theorem NNReal.rpow_arith_mean_le_arith_mean2_rpow + theorem NNReal.rpow_arith_mean_le_arith_mean_rpow + theorem Real.arith_mean_le_rpow_mean + theorem Real.pow_arith_mean_le_arith_mean_pow + theorem Real.pow_arith_mean_le_arith_mean_pow_of_even + theorem Real.pow_sum_div_card_le_sum_pow + theorem Real.rpow_arith_mean_le_arith_mean_rpow + theorem Real.zpow_arith_mean_le_arith_mean_zpow 2023-05-25 13:41:00 0fa4966 feat: add progress reporting for `cache get` (#4291) This adds a really basic "progress bar" report for `lake exe cache get`: ``` $ lake exe cache get! Attempting to download 2638 file(s) Downloaded 96/2638 file(s) [3%] ``` The "Downloaded" line overwrites itself during the download. (I considered doing fancier things like an actual progress bar, but the strategy of using `\r` to overwrite the line breaks down when the line gets too long and I didn't want to try to figure out the console width.) I did not add a similar progress bar for "Decompressing", but that step is generally comparatively fast (although I suppose this depends on the relative speed of your CPU and your internet connection). ESTIMATED CHANGES Modified Cache/IO.lean Modified Cache/Requests.lean 2023-05-25 13:40:59 f4520b4 feat: port CategoryTheory.Abelian.InjectiveResolution (#4059) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Abelian/InjectiveResolution.lean + def CategoryTheory.InjectiveResolution.desc + def CategoryTheory.InjectiveResolution.descCompHomotopy + def CategoryTheory.InjectiveResolution.descFOne + theorem CategoryTheory.InjectiveResolution.descFOne_zero_comm + def CategoryTheory.InjectiveResolution.descFSucc + def CategoryTheory.InjectiveResolution.descFZero + def CategoryTheory.InjectiveResolution.descHomotopy + def CategoryTheory.InjectiveResolution.descHomotopyZero + def CategoryTheory.InjectiveResolution.descHomotopyZeroOne + def CategoryTheory.InjectiveResolution.descHomotopyZeroSucc + def CategoryTheory.InjectiveResolution.descHomotopyZeroZero + def CategoryTheory.InjectiveResolution.descIdHomotopy + theorem CategoryTheory.InjectiveResolution.desc_commutes + theorem CategoryTheory.InjectiveResolution.exact_ofCocomplex + def CategoryTheory.InjectiveResolution.homotopyEquiv + theorem CategoryTheory.InjectiveResolution.homotopyEquiv_hom_ι + theorem CategoryTheory.InjectiveResolution.homotopyEquiv_inv_ι + def CategoryTheory.InjectiveResolution.ofCocomplex + theorem CategoryTheory.InjectiveResolution.ofCocomplex_sq_01_comm + theorem CategoryTheory.exact_f_d + def CategoryTheory.injectiveResolutions + def HomologicalComplex.Hom.HomologicalComplex.Hom.fromSingle₀InjectiveResolution 2023-05-25 12:49:17 ff68ab1 feat: forward-port PR 18990 (#4328) Forward-port of leanprover-community/mathlib#18990 Original title: feat(analysis/normed_space/basic): scaling a set scales its diameter, translating it leaves it unchanged ESTIMATED CHANGES Modified Mathlib/Analysis/Normed/MulAction.lean + theorem edist_smul_le + theorem edist_smul₀ Modified Mathlib/Analysis/NormedSpace/Basic.lean Modified Mathlib/Analysis/NormedSpace/Pointwise.lean + theorem diam_smul₀ + theorem ediam_smul_le + theorem ediam_smul₀ + theorem infDist_smul₀ + theorem infEdist_smul₀ Modified Mathlib/Data/Real/ENNReal.lean Modified Mathlib/Topology/MetricSpace/HausdorffDistance.lean + theorem EMetric.infEdist_smul Modified Mathlib/Topology/MetricSpace/IsometricSMul.lean + theorem diam_smul + theorem ediam_smul 2023-05-25 12:49:16 ff91e18 feat: port/CategoryTheory.Preadditive.Yoneda.Limits (#4319) Easy. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Preadditive/Yoneda/Limits.lean 2023-05-25 12:49:14 63d78da feat: port NumberTheory.Padics.PadicIntegers (#4269) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/NumberTheory/Padics/PadicIntegers.lean + def PadicInt.Coe.ringHom + theorem PadicInt.algebraMap_apply + theorem PadicInt.coe_add + theorem PadicInt.coe_eq_zero + theorem PadicInt.coe_int_cast + theorem PadicInt.coe_int_eq + theorem PadicInt.coe_mul + theorem PadicInt.coe_nat_cast + theorem PadicInt.coe_ne_zero + theorem PadicInt.coe_neg + theorem PadicInt.coe_one + theorem PadicInt.coe_pow + theorem PadicInt.coe_sub + theorem PadicInt.coe_zero + theorem PadicInt.exists_pow_neg_lt + theorem PadicInt.exists_pow_neg_lt_rat + theorem PadicInt.ext + theorem PadicInt.ideal_eq_span_pow_p + def PadicInt.inv + theorem PadicInt.inv_mul + theorem PadicInt.irreducible_p + theorem PadicInt.isUnit_iff + theorem PadicInt.maximalIdeal_eq_span_p + theorem PadicInt.mem_nonunits + theorem PadicInt.mem_span_pow_iff_le_valuation + theorem PadicInt.mem_subring_iff + def PadicInt.mkUnits + theorem PadicInt.mkUnits_eq + theorem PadicInt.mk_coe + theorem PadicInt.mk_zero + theorem PadicInt.mul_inv + theorem PadicInt.nonarchimedean + theorem PadicInt.norm_add_eq_max_of_ne + theorem PadicInt.norm_def + theorem PadicInt.norm_eq_of_norm_add_lt_left + theorem PadicInt.norm_eq_of_norm_add_lt_right + theorem PadicInt.norm_eq_padic_norm + theorem PadicInt.norm_eq_pow_val + theorem PadicInt.norm_int_cast_eq_padic_norm + theorem PadicInt.norm_int_le_pow_iff_dvd + theorem PadicInt.norm_int_lt_one_iff_dvd + theorem PadicInt.norm_le_one + theorem PadicInt.norm_le_pow_iff_le_valuation + theorem PadicInt.norm_le_pow_iff_mem_span_pow + theorem PadicInt.norm_le_pow_iff_norm_lt_pow_add_one + theorem PadicInt.norm_lt_one_add + theorem PadicInt.norm_lt_one_iff_dvd + theorem PadicInt.norm_lt_one_mul + theorem PadicInt.norm_lt_pow_iff_norm_le_pow_sub_one + theorem PadicInt.norm_mul + theorem PadicInt.norm_p + theorem PadicInt.norm_p_pow + theorem PadicInt.norm_pow + theorem PadicInt.norm_units + def PadicInt.ofIntSeq + theorem PadicInt.p_nonnunit + theorem PadicInt.padic_norm_e_of_padicInt + theorem PadicInt.pow_p_dvd_int_iff + theorem PadicInt.prime_p + def PadicInt.subring + def PadicInt.unitCoeff + theorem PadicInt.unitCoeff_coe + theorem PadicInt.unitCoeff_spec + def PadicInt.valuation + theorem PadicInt.valuation_nonneg + theorem PadicInt.valuation_one + theorem PadicInt.valuation_p + theorem PadicInt.valuation_p_pow_mul + theorem PadicInt.valuation_zero + def PadicInt 2023-05-25 12:49:13 5ec08fd feat: port RingTheory.AlgebraicIndependent (#4263) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/RingTheory/AlgebraicIndependent.lean + theorem AlgHom.algebraicIndependent_iff + def AlgebraicIndependent.aevalEquiv + theorem AlgebraicIndependent.aeval_comp_mvPolynomialOptionEquivPolynomialAdjoin + theorem AlgebraicIndependent.aeval_comp_repr + theorem AlgebraicIndependent.aeval_repr + theorem AlgebraicIndependent.algebraMap_aevalEquiv + theorem AlgebraicIndependent.algebraMap_injective + theorem AlgebraicIndependent.coe_range + theorem AlgebraicIndependent.comp + theorem AlgebraicIndependent.eq_zero_of_aeval_eq_zero + theorem AlgebraicIndependent.image + theorem AlgebraicIndependent.image_of_comp + theorem AlgebraicIndependent.isTranscendenceBasis_iff + theorem AlgebraicIndependent.linearIndependent + theorem AlgebraicIndependent.map' + theorem AlgebraicIndependent.map + theorem AlgebraicIndependent.mono + def AlgebraicIndependent.mvPolynomialOptionEquivPolynomialAdjoin + theorem AlgebraicIndependent.mvPolynomialOptionEquivPolynomialAdjoin_C + theorem AlgebraicIndependent.mvPolynomialOptionEquivPolynomialAdjoin_X_none + theorem AlgebraicIndependent.mvPolynomialOptionEquivPolynomialAdjoin_X_some + theorem AlgebraicIndependent.mvPolynomialOptionEquivPolynomialAdjoin_apply + theorem AlgebraicIndependent.ne_zero + theorem AlgebraicIndependent.of_comp + theorem AlgebraicIndependent.option_iff + def AlgebraicIndependent.repr + theorem AlgebraicIndependent.repr_ker + theorem AlgebraicIndependent.restrictScalars + theorem AlgebraicIndependent.restrict_of_comp_subtype + theorem AlgebraicIndependent.to_subtype_range' + theorem AlgebraicIndependent.to_subtype_range + def AlgebraicIndependent + theorem IsTranscendenceBasis.isAlgebraic + def IsTranscendenceBasis + theorem algebraicIndependent_adjoin + theorem algebraicIndependent_bounded_of_finset_algebraicIndependent_bounded + theorem algebraicIndependent_comp_subtype + theorem algebraicIndependent_empty + theorem algebraicIndependent_empty_iff + theorem algebraicIndependent_empty_type + theorem algebraicIndependent_empty_type_iff + theorem algebraicIndependent_equiv' + theorem algebraicIndependent_equiv + theorem algebraicIndependent_finset_map_embedding_subtype + theorem algebraicIndependent_iUnion_of_directed + theorem algebraicIndependent_iff + theorem algebraicIndependent_iff_injective_aeval + theorem algebraicIndependent_iff_ker_eq_bot + theorem algebraicIndependent_image + theorem algebraicIndependent_of_finite + theorem algebraicIndependent_of_subsingleton + theorem algebraicIndependent_sUnion_of_directed + theorem algebraicIndependent_subtype + theorem algebraicIndependent_subtype_range + theorem exists_isTranscendenceBasis + theorem exists_maximal_algebraicIndependent 2023-05-25 12:49:12 83cb97a feat: port RingTheory.IsTensorProduct (#4227) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/RingTheory/IsTensorProduct.lean + theorem Algebra.IsPushout.algHom_ext + theorem Algebra.IsPushout.comm + theorem Algebra.IsPushout.symm + theorem Algebra.lift_algHom_comp_left + theorem Algebra.lift_algHom_comp_right + theorem Algebra.pushoutDesc_apply + theorem Algebra.pushoutDesc_left + theorem Algebra.pushoutDesc_right + theorem IsBaseChange.alg_hom_ext' + theorem IsBaseChange.alg_hom_ext + theorem IsBaseChange.comp + theorem IsBaseChange.equiv_symm_apply + theorem IsBaseChange.equiv_tmul + theorem IsBaseChange.iff_lift_unique + theorem IsBaseChange.lift_comp + theorem IsBaseChange.ofEquiv + theorem IsBaseChange.of_lift_unique + def IsBaseChange + theorem IsTensorProduct.equiv_symm_apply + theorem IsTensorProduct.equiv_toLinearMap + theorem IsTensorProduct.inductionOn + theorem IsTensorProduct.lift_eq + theorem IsTensorProduct.map_eq + def IsTensorProduct + theorem TensorProduct.isBaseChange + theorem TensorProduct.isTensorProduct 2023-05-25 11:48:07 81dd6c6 feat: port MeasureTheory.Function.Egorov (#4333) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/MeasureTheory/Function/Egorov.lean + theorem MeasureTheory.Egorov.exists_notConvergentSeq_lt + def MeasureTheory.Egorov.iUnionNotConvergentSeq + theorem MeasureTheory.Egorov.iUnionNotConvergentSeq_measurableSet + theorem MeasureTheory.Egorov.iUnionNotConvergentSeq_subset + theorem MeasureTheory.Egorov.measure_iUnionNotConvergentSeq + theorem MeasureTheory.Egorov.measure_inter_notConvergentSeq_eq_zero + theorem MeasureTheory.Egorov.measure_notConvergentSeq_tendsto_zero + theorem MeasureTheory.Egorov.mem_notConvergentSeq_iff + def MeasureTheory.Egorov.notConvergentSeq + def MeasureTheory.Egorov.notConvergentSeqLtIndex + theorem MeasureTheory.Egorov.notConvergentSeqLtIndex_spec + theorem MeasureTheory.Egorov.notConvergentSeq_antitone + theorem MeasureTheory.Egorov.notConvergentSeq_measurableSet + theorem MeasureTheory.Egorov.tendstoUniformlyOn_diff_iUnionNotConvergentSeq + theorem MeasureTheory.tendstoUniformlyOn_of_ae_tendsto' + theorem MeasureTheory.tendstoUniformlyOn_of_ae_tendsto 2023-05-25 11:48:06 74f0a04 feat: forward-port PR 19070 (#4327) Forward-port leanprover-community/mathlib#19070: - add `Filter.set_eventuallyLE_iff_mem_inf_principal`, `Filter.set_eventuallyLE_iff_inf_principal_le`, and `Filter.set_eventuallyEq_iff_inf_principal`; - golf `nhdsWithin_eq_iff_eventuallyEq` and `nhdsWithin_le_iff`. The original PR golfs one more lemma which was already golfed to 1 line in Mathlib 4. ESTIMATED CHANGES Modified Mathlib/Order/Filter/Basic.lean + theorem Filter.set_eventuallyEq_iff_inf_principal + theorem Filter.set_eventuallyLE_iff_inf_principal_le + theorem Filter.set_eventuallyLE_iff_mem_inf_principal Modified Mathlib/Topology/ContinuousOn.lean +/- theorem nhdsWithin_eq_iff_eventuallyEq +/- theorem nhdsWithin_le_iff 2023-05-25 11:48:05 039deaf feat: port AlgebraicGeometry.PresheafedSpace.HasColimits (#4285) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/AlgebraicGeometry/PresheafedSpace/HasColimits.lean + def AlgebraicGeometry.PresheafedSpace.ColimitCoconeIsColimit.desc + def AlgebraicGeometry.PresheafedSpace.ColimitCoconeIsColimit.descCApp + theorem AlgebraicGeometry.PresheafedSpace.ColimitCoconeIsColimit.desc_c_naturality + theorem AlgebraicGeometry.PresheafedSpace.ColimitCoconeIsColimit.desc_fac + def AlgebraicGeometry.PresheafedSpace.colimit + def AlgebraicGeometry.PresheafedSpace.colimitCocone + def AlgebraicGeometry.PresheafedSpace.colimitCoconeIsColimit + def AlgebraicGeometry.PresheafedSpace.colimitPresheafObjIsoComponentwiseLimit + theorem AlgebraicGeometry.PresheafedSpace.colimitPresheafObjIsoComponentwiseLimit_hom_π + theorem AlgebraicGeometry.PresheafedSpace.colimitPresheafObjIsoComponentwiseLimit_inv_ι_app + theorem AlgebraicGeometry.PresheafedSpace.colimit_carrier + theorem AlgebraicGeometry.PresheafedSpace.colimit_presheaf + def AlgebraicGeometry.PresheafedSpace.componentwiseDiagram + theorem AlgebraicGeometry.PresheafedSpace.map_comp_c_app + theorem AlgebraicGeometry.PresheafedSpace.map_id_c_app + def AlgebraicGeometry.PresheafedSpace.pushforwardDiagramToColimit 2023-05-25 11:48:03 5e90989 feat: port Analysis.Calculus.FDeriv.Mul (#4241) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/Calculus/FDeriv/Mul.lean + theorem Differentiable.clm_apply + theorem Differentiable.clm_comp + theorem Differentiable.const_mul + theorem Differentiable.mul + theorem Differentiable.mul_const + theorem Differentiable.pow + theorem Differentiable.smul + theorem Differentiable.smul_const + theorem DifferentiableAt.clm_apply + theorem DifferentiableAt.clm_comp + theorem DifferentiableAt.const_mul + theorem DifferentiableAt.mul + theorem DifferentiableAt.mul_const + theorem DifferentiableAt.pow + theorem DifferentiableAt.smul + theorem DifferentiableAt.smul_const + theorem DifferentiableOn.clm_apply + theorem DifferentiableOn.clm_comp + theorem DifferentiableOn.const_mul + theorem DifferentiableOn.mul + theorem DifferentiableOn.mul_const + theorem DifferentiableOn.pow + theorem DifferentiableOn.smul + theorem DifferentiableOn.smul_const + theorem DifferentiableWithinAt.clm_apply + theorem DifferentiableWithinAt.clm_comp + theorem DifferentiableWithinAt.const_mul + theorem DifferentiableWithinAt.mul + theorem DifferentiableWithinAt.mul_const + theorem DifferentiableWithinAt.pow + theorem DifferentiableWithinAt.smul + theorem DifferentiableWithinAt.smul_const + theorem HasFDerivAt.clm_apply + theorem HasFDerivAt.clm_comp + theorem HasFDerivAt.const_mul + theorem HasFDerivAt.mul' + theorem HasFDerivAt.mul + theorem HasFDerivAt.mul_const' + theorem HasFDerivAt.mul_const + theorem HasFDerivAt.smul + theorem HasFDerivAt.smul_const + theorem HasFDerivWithinAt.clm_apply + theorem HasFDerivWithinAt.clm_comp + theorem HasFDerivWithinAt.const_mul + theorem HasFDerivWithinAt.mul' + theorem HasFDerivWithinAt.mul + theorem HasFDerivWithinAt.mul_const' + theorem HasFDerivWithinAt.mul_const + theorem HasFDerivWithinAt.smul + theorem HasFDerivWithinAt.smul_const + theorem HasStrictFDerivAt.clm_apply + theorem HasStrictFDerivAt.clm_comp + theorem HasStrictFDerivAt.const_mul + theorem HasStrictFDerivAt.mul' + theorem HasStrictFDerivAt.mul + theorem HasStrictFDerivAt.mul_const' + theorem HasStrictFDerivAt.mul_const + theorem HasStrictFDerivAt.smul + theorem HasStrictFDerivAt.smul_const + theorem differentiableAt_inverse + theorem fderivWithin_clm_apply + theorem fderivWithin_clm_comp + theorem fderivWithin_const_mul + theorem fderivWithin_mul' + theorem fderivWithin_mul + theorem fderivWithin_mul_const' + theorem fderivWithin_mul_const + theorem fderivWithin_smul + theorem fderivWithin_smul_const + theorem fderiv_clm_apply + theorem fderiv_clm_comp + theorem fderiv_const_mul + theorem fderiv_inverse + theorem fderiv_mul' + theorem fderiv_mul + theorem fderiv_mul_const' + theorem fderiv_mul_const + theorem fderiv_smul + theorem fderiv_smul_const + theorem hasFDerivAt_ring_inverse 2023-05-25 11:24:55 037038d feat: port Algebra.Module.GradedModule (#4228) - In `Algebra.DirectSum.Decomposition`, a simps was commented because it was causing a recurrence loop. However, one of the lemma that it generates is needed in this file, so I put the simps back (and fixed the loop) - At the end of the file, the local instance `GradedModule.isModule` was causing a lot of troubles. (It was in fact marked as a dangerous instance in Mathlib3). I removed it and declared it directly in the only result using it, see [this](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/!4.234228.20cannot.20find.20synthesization.20order.20for.20instance/near/360591542) Zulip thread ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/DirectSum/Decomposition.lean + theorem DirectSum.decomposeAddEquiv_apply + theorem DirectSum.decomposeAddEquiv_symm_apply Added Mathlib/Algebra/Module/GradedModule.lean + theorem DirectSum.Gmodule.of_smul_of + def DirectSum.Gmodule.smulAddMonoidHom + theorem DirectSum.Gmodule.smulAddMonoidHom_apply_of_of + theorem DirectSum.Gmodule.smul_def + def DirectSum.gsmulHom + def GradedModule.isModule + def GradedModule.linearEquiv 2023-05-25 11:24:54 acca960 feat: port Analysis.BoxIntegral.Partition.Filter (#4126) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/BoxIntegral/Partition/Filter.lean + def BoxIntegral.IntegrationParams.GP + def BoxIntegral.IntegrationParams.Henstock + def BoxIntegral.IntegrationParams.McShane + theorem BoxIntegral.IntegrationParams.MemBaseSet.exists_common_compl + theorem BoxIntegral.IntegrationParams.MemBaseSet.mono' + theorem BoxIntegral.IntegrationParams.MemBaseSet.mono + structure BoxIntegral.IntegrationParams.MemBaseSet + theorem BoxIntegral.IntegrationParams.RCond.mono + def BoxIntegral.IntegrationParams.RCond + def BoxIntegral.IntegrationParams.Riemann + theorem BoxIntegral.IntegrationParams.biUnionTagged_memBaseSet + def BoxIntegral.IntegrationParams.equivProd + theorem BoxIntegral.IntegrationParams.eventually_isPartition + theorem BoxIntegral.IntegrationParams.exists_memBaseSet_isPartition + theorem BoxIntegral.IntegrationParams.exists_memBaseSet_le_iUnion_eq + theorem BoxIntegral.IntegrationParams.gp_le + theorem BoxIntegral.IntegrationParams.hasBasis_toFilter + theorem BoxIntegral.IntegrationParams.hasBasis_toFilterDistortion + theorem BoxIntegral.IntegrationParams.hasBasis_toFilterDistortioniUnion + theorem BoxIntegral.IntegrationParams.hasBasis_toFilteriUnion + theorem BoxIntegral.IntegrationParams.hasBasis_toFilteriUnion_top + theorem BoxIntegral.IntegrationParams.henstock_le_mcShane + theorem BoxIntegral.IntegrationParams.henstock_le_riemann + def BoxIntegral.IntegrationParams.isoProd + theorem BoxIntegral.IntegrationParams.rCond_of_bRiemann_eq_false + theorem BoxIntegral.IntegrationParams.tendsto_embedBox_toFilteriUnion_top + def BoxIntegral.IntegrationParams.toFilter + def BoxIntegral.IntegrationParams.toFilterDistortion + theorem BoxIntegral.IntegrationParams.toFilterDistortion_mono + def BoxIntegral.IntegrationParams.toFilterDistortioniUnion + theorem BoxIntegral.IntegrationParams.toFilterDistortioniUnion_neBot + theorem BoxIntegral.IntegrationParams.toFilter_inf_iUnion_eq + theorem BoxIntegral.IntegrationParams.toFilter_mono + def BoxIntegral.IntegrationParams.toFilteriUnion + theorem BoxIntegral.IntegrationParams.toFilteriUnion_congr + theorem BoxIntegral.IntegrationParams.toFilteriUnion_mono + structure BoxIntegral.IntegrationParams 2023-05-25 11:24:53 e67b5cf feat: port ModelTheory.Types (#3991) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/ModelTheory/Types.lean + theorem FirstOrder.Language.Theory.CompleteType.compl_setOf_mem + theorem FirstOrder.Language.Theory.CompleteType.formula_mem_typeOf + theorem FirstOrder.Language.Theory.CompleteType.iInter_setOf_subset + theorem FirstOrder.Language.Theory.CompleteType.isMaximal + theorem FirstOrder.Language.Theory.CompleteType.mem_of_models + theorem FirstOrder.Language.Theory.CompleteType.mem_or_not_mem + theorem FirstOrder.Language.Theory.CompleteType.mem_typeOf + theorem FirstOrder.Language.Theory.CompleteType.nonempty_iff + theorem FirstOrder.Language.Theory.CompleteType.not_mem_iff + theorem FirstOrder.Language.Theory.CompleteType.setOf_mem_eq_univ_iff + theorem FirstOrder.Language.Theory.CompleteType.setOf_subset_eq_empty_iff + theorem FirstOrder.Language.Theory.CompleteType.setOf_subset_eq_univ_iff + theorem FirstOrder.Language.Theory.CompleteType.subset + theorem FirstOrder.Language.Theory.CompleteType.toList_foldr_inf_mem + structure FirstOrder.Language.Theory.CompleteType + theorem FirstOrder.Language.Theory.exists_modelType_is_realized_in + def FirstOrder.Language.Theory.realizedTypes + def FirstOrder.Language.Theory.typeOf 2023-05-25 11:24:51 56573ef feat: port ModelTheory.Graph (#3989) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/ModelTheory/Graph.lean + theorem FirstOrder.Language.Theory.simpleGraph_isSatisfiable + theorem FirstOrder.Language.Theory.simpleGraph_model_iff + def FirstOrder.Language.adj + def FirstOrder.Language.simpleGraphOfStructure + theorem FirstOrder.Language.structure_simpleGraphOfStructure + theorem SimpleGraph.simpleGraphOfStructure + def SimpleGraph.structure 2023-05-25 08:46:22 62d0776 feat: port Analysis.MeanInequalities (#4329) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/MeanInequalities.lean + theorem ENNReal.Lp_add_le + theorem ENNReal.inner_le_Lp_mul_Lq + theorem ENNReal.rpow_sum_le_const_mul_sum_rpow + theorem ENNReal.young_inequality + theorem NNReal.Lp_add_le + theorem NNReal.Lp_add_le_hasSum + theorem NNReal.Lp_add_le_tsum' + theorem NNReal.Lp_add_le_tsum + theorem NNReal.geom_mean_le_arith_mean2_weighted + theorem NNReal.geom_mean_le_arith_mean3_weighted + theorem NNReal.geom_mean_le_arith_mean4_weighted + theorem NNReal.geom_mean_le_arith_mean_weighted + theorem NNReal.inner_le_Lp_mul_Lq + theorem NNReal.inner_le_Lp_mul_Lq_hasSum + theorem NNReal.inner_le_Lp_mul_Lq_tsum' + theorem NNReal.inner_le_Lp_mul_Lq_tsum + theorem NNReal.isGreatest_Lp + theorem NNReal.rpow_sum_le_const_mul_sum_rpow + theorem NNReal.summable_Lp_add + theorem NNReal.summable_mul_of_Lp_Lq + theorem NNReal.young_inequality + theorem NNReal.young_inequality_real + theorem Real.Lp_add_le + theorem Real.Lp_add_le_hasSum_of_nonneg + theorem Real.Lp_add_le_of_nonneg + theorem Real.Lp_add_le_tsum_of_nonneg' + theorem Real.Lp_add_le_tsum_of_nonneg + theorem Real.arith_mean_weighted_of_constant + theorem Real.geom_mean_eq_arith_mean_weighted_of_constant + theorem Real.geom_mean_le_arith_mean2_weighted + theorem Real.geom_mean_le_arith_mean3_weighted + theorem Real.geom_mean_le_arith_mean4_weighted + theorem Real.geom_mean_le_arith_mean_weighted + theorem Real.geom_mean_weighted_of_constant + theorem Real.inner_le_Lp_mul_Lq + theorem Real.inner_le_Lp_mul_Lq_hasSum_of_nonneg + theorem Real.inner_le_Lp_mul_Lq_of_nonneg + theorem Real.inner_le_Lp_mul_Lq_tsum_of_nonneg' + theorem Real.inner_le_Lp_mul_Lq_tsum_of_nonneg + theorem Real.rpow_sum_le_const_mul_sum_rpow + theorem Real.rpow_sum_le_const_mul_sum_rpow_of_nonneg + theorem Real.summable_Lp_add_of_nonneg + theorem Real.summable_mul_of_Lp_Lq_of_nonneg + theorem Real.young_inequality + theorem Real.young_inequality_of_nonneg 2023-05-25 08:46:21 6994f45 feat: port AlgebraicGeometry.PrimeSpectrum.Maximal (#4323) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/AlgebraicGeometry/PrimeSpectrum/Maximal.lean + theorem MaximalSpectrum.iInf_localization_eq_bot + def MaximalSpectrum.toPrimeSpectrum + theorem MaximalSpectrum.toPrimeSpectrum_continuous + theorem MaximalSpectrum.toPrimeSpectrum_injective + theorem MaximalSpectrum.toPrimeSpectrum_range + structure MaximalSpectrum + theorem PrimeSpectrum.iInf_localization_eq_bot 2023-05-25 08:46:19 b4ae759 feat: port Analysis.LocallyConvex.AbsConvex (#4320) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/LocallyConvex/AbsConvex.lean + theorem AbsConvexOpenSets.coe_balanced + theorem AbsConvexOpenSets.coe_convex + theorem AbsConvexOpenSets.coe_isOpen + theorem AbsConvexOpenSets.coe_nhds + theorem AbsConvexOpenSets.coe_zero_mem + def AbsConvexOpenSets + theorem gaugeSeminormFamily_ball + theorem nhds_basis_abs_convex + theorem nhds_basis_abs_convex_open + theorem with_gaugeSeminormFamily 2023-05-25 08:46:18 01cfa4d feat: port Analysis.NormedSpace.HahnBanach.Separation (#4317) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/NormedSpace/HahnBanach/Separation.lean + theorem geometric_hahn_banach_closed_compact + theorem geometric_hahn_banach_closed_point + theorem geometric_hahn_banach_compact_closed + theorem geometric_hahn_banach_open + theorem geometric_hahn_banach_open_open + theorem geometric_hahn_banach_open_point + theorem geometric_hahn_banach_point_closed + theorem geometric_hahn_banach_point_open + theorem geometric_hahn_banach_point_point + theorem iInter_halfspaces_eq + theorem separate_convex_open_set 2023-05-25 08:46:17 e7890e2 feat: port LinearAlgebra.Matrix.SesquilinearForm (#4315) Dot notation is broken here, but I don't think there is anything we can do about it. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/LinearAlgebra/Matrix/SesquilinearForm.lean + theorem LinearMap.SeparatingLeft.toMatrix₂' + theorem LinearMap.SeparatingLeft.toMatrix₂ + theorem LinearMap.mul_toMatrix' + theorem LinearMap.mul_toMatrix₂'_mul + theorem LinearMap.mul_toMatrix₂ + theorem LinearMap.mul_toMatrix₂_mul + theorem LinearMap.nondegenerate_toMatrix_iff + theorem LinearMap.nondegenerate_toMatrix₂'_iff + theorem LinearMap.separatingLeft_iff_det_ne_zero + theorem LinearMap.separatingLeft_of_det_ne_zero + theorem LinearMap.separatingLeft_toLinearMap₂'_iff_det_ne_zero + theorem LinearMap.separatingLeft_toLinearMap₂'_of_det_ne_zero' + theorem LinearMap.toLinearMap₂'Aux_toMatrix₂Aux + theorem LinearMap.toMatrix'_toLinearMap₂' + theorem LinearMap.toMatrix'_toLinearMapₛₗ₂' + def LinearMap.toMatrix₂' + theorem LinearMap.toMatrix₂'_apply + theorem LinearMap.toMatrix₂'_comp + theorem LinearMap.toMatrix₂'_compl₁₂ + theorem LinearMap.toMatrix₂'_compl₂ + theorem LinearMap.toMatrix₂'_mul + def LinearMap.toMatrix₂Aux + theorem LinearMap.toMatrix₂Aux_apply + theorem LinearMap.toMatrix₂Aux_eq + theorem LinearMap.toMatrix₂_apply + theorem LinearMap.toMatrix₂_basisFun + theorem LinearMap.toMatrix₂_comp + theorem LinearMap.toMatrix₂_compl₁₂ + theorem LinearMap.toMatrix₂_compl₂ + theorem LinearMap.toMatrix₂_mul + theorem LinearMap.toMatrix₂_mul_basis_toMatrix + theorem LinearMap.toMatrix₂_symm + theorem LinearMap.toMatrix₂_toLinearMap₂ + def LinearMap.toMatrixₛₗ₂' + theorem LinearMap.toMatrixₛₗ₂'_apply + theorem LinearMap.toMatrixₛₗ₂'_symm + def Matrix.IsAdjointPair + def Matrix.IsSelfAdjoint + def Matrix.IsSkewAdjoint + theorem Matrix.Nondegenerate.toLinearMap₂' + theorem Matrix.Nondegenerate.toLinearMap₂ + theorem Matrix.isAdjointPair_equiv + theorem Matrix.separatingLeft_toLinearMap₂'_iff + theorem Matrix.separatingLeft_toLinearMap₂'_iff_separatingLeft_toLinearMap₂ + theorem Matrix.separatingLeft_toLinearMap₂_iff + def Matrix.toLinearMap₂' + def Matrix.toLinearMap₂'Aux + theorem Matrix.toLinearMap₂'Aux_stdBasis + theorem Matrix.toLinearMap₂'_apply' + theorem Matrix.toLinearMap₂'_apply + theorem Matrix.toLinearMap₂'_comp + theorem Matrix.toLinearMap₂'_stdBasis + theorem Matrix.toLinearMap₂'_toMatrix' + theorem Matrix.toLinearMap₂_apply + theorem Matrix.toLinearMap₂_basisFun + theorem Matrix.toLinearMap₂_compl₁₂ + theorem Matrix.toLinearMap₂_symm + theorem Matrix.toLinearMap₂_toMatrix₂ + def Matrix.toLinearMapₛₗ₂' + theorem Matrix.toLinearMapₛₗ₂'_apply + theorem Matrix.toLinearMapₛₗ₂'_aux_eq + theorem Matrix.toLinearMapₛₗ₂'_stdBasis + theorem Matrix.toLinearMapₛₗ₂'_symm + theorem Matrix.toLinearMapₛₗ₂'_toMatrix' + theorem Matrix.toMatrix₂Aux_toLinearMap₂'Aux + theorem isAdjointPair_toLinearMap₂' + theorem isAdjointPair_toLinearMap₂ + theorem mem_pairSelfAdjointMatricesSubmodule + theorem mem_selfAdjointMatricesSubmodule + theorem mem_skewAdjointMatricesSubmodule + def pairSelfAdjointMatricesSubmodule + def selfAdjointMatricesSubmodule + def skewAdjointMatricesSubmodule 2023-05-25 08:46:16 24e633e feat: port Analysis.NormedSpace.Dual (#4310) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/NormedSpace/Dual.lean + def NormedSpace.Dual + theorem NormedSpace.bounded_polar_of_mem_nhds_zero + theorem NormedSpace.closedBall_inv_subset_polar_closedBall + theorem NormedSpace.double_dual_bound + def NormedSpace.dualPairing + theorem NormedSpace.dualPairing_apply + theorem NormedSpace.dualPairing_separatingLeft + theorem NormedSpace.dual_def + theorem NormedSpace.eq_iff_forall_dual_eq + theorem NormedSpace.eq_zero_iff_forall_dual_eq_zero + theorem NormedSpace.eq_zero_of_forall_dual_eq_zero + def NormedSpace.inclusionInDoubleDual + def NormedSpace.inclusionInDoubleDualLi + theorem NormedSpace.inclusionInDoubleDual_norm_eq + theorem NormedSpace.inclusionInDoubleDual_norm_le + theorem NormedSpace.isClosed_polar + theorem NormedSpace.mem_polar_iff + theorem NormedSpace.norm_le_dual_bound + def NormedSpace.polar + theorem NormedSpace.polar_ball_subset_closedBall_div + theorem NormedSpace.polar_closedBall + theorem NormedSpace.polar_closure + theorem NormedSpace.polar_univ + theorem NormedSpace.smul_mem_polar 2023-05-25 08:46:14 f4c3dda feat: port Analysis.Complex.Conformal (#4309) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/Complex/Conformal.lean + theorem IsConformalMap.is_complex_or_conj_linear + theorem isConformalMap_complex_linear + theorem isConformalMap_complex_linear_conj + theorem isConformalMap_conj + theorem isConformalMap_iff_is_complex_or_conj_linear 2023-05-25 08:46:13 9a3eb6f feat: port Algebra.Category.Ring.FilteredColimits (#4305) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Category/Ring/FilteredColimits.lean + def CommRingCat.FilteredColimits.colimit + def CommRingCat.FilteredColimits.colimitCocone + def CommRingCat.FilteredColimits.colimitCoconeIsColimit + def CommSemiRingCat.FilteredColimits.colimit + def CommSemiRingCat.FilteredColimits.colimitCocone + def CommSemiRingCat.FilteredColimits.colimitCoconeIsColimit + def RingCat.FilteredColimits.colimit + def RingCat.FilteredColimits.colimitCocone + def RingCat.FilteredColimits.colimitCoconeIsColimit + def SemiRingCat.FilteredColimits.colimit + def SemiRingCat.FilteredColimits.colimitCocone + def SemiRingCat.FilteredColimits.colimitCoconeIsColimit 2023-05-25 08:46:12 4c6c02a feat: port RingTheory.Adjoin.Field (#4303) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/RingTheory/Adjoin/Field.lean + def AlgEquiv.adjoinSingletonEquivAdjoinRootMinpoly + theorem lift_of_splits 2023-05-25 08:46:11 e9d2bc8 feat: port Algebra.Category.Module.Abelian (#4299) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Category/ModuleCat/Abelian.lean + theorem ModuleCat.exact_iff + def ModuleCat.normalEpi + def ModuleCat.normalMono 2023-05-25 08:46:09 74e10fe feat: port Topology.ContinuousFunction.Compact (#4183) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Topology/ContinuousFunction/Compact.lean + theorem BoundedContinuousFunction.dist_mkOfCompact + theorem BoundedContinuousFunction.dist_toContinuousMap + theorem BoundedContinuousFunction.mkOfCompact_star + theorem BoundedContinuousFunction.norm_mkOfCompact + theorem BoundedContinuousFunction.norm_toContinuousMap_eq + theorem ContinuousLinearMap.compLeftContinuousCompact_apply + theorem ContinuousLinearMap.toLinear_compLeftContinuousCompact + def ContinuousMap.addEquivBoundedOfCompact + theorem ContinuousMap.addEquivBoundedOfCompact_apply + theorem ContinuousMap.addEquivBoundedOfCompact_symm_apply + theorem ContinuousMap.apply_le_norm + theorem ContinuousMap.compRightAlgHom_continuous + def ContinuousMap.compRightContinuousMap + theorem ContinuousMap.compRightContinuousMap_apply + def ContinuousMap.compRightHomeomorph + theorem ContinuousMap.continuous_coe + theorem ContinuousMap.continuous_eval + theorem ContinuousMap.continuous_eval_const + theorem ContinuousMap.dist_apply_le_dist + theorem ContinuousMap.dist_le + theorem ContinuousMap.dist_le_iff_of_nonempty + theorem ContinuousMap.dist_le_two_norm + theorem ContinuousMap.dist_lt_iff + theorem ContinuousMap.dist_lt_iff_of_nonempty + theorem ContinuousMap.dist_lt_of_dist_lt_modulus + theorem ContinuousMap.dist_lt_of_nonempty + def ContinuousMap.equivBoundedOfCompact + def ContinuousMap.evalClm + def ContinuousMap.isometryEquivBoundedOfCompact + def ContinuousMap.linearIsometryBoundedOfCompact + theorem ContinuousMap.linearIsometryBoundedOfCompact_apply_apply + theorem ContinuousMap.linearIsometryBoundedOfCompact_of_compact_toEquiv + theorem ContinuousMap.linearIsometryBoundedOfCompact_symm_apply + theorem ContinuousMap.linearIsometryBoundedOfCompact_toAddEquiv + theorem ContinuousMap.linearIsometryBoundedOfCompact_toIsometryEquiv + def ContinuousMap.modulus + theorem ContinuousMap.modulus_pos + theorem ContinuousMap.neg_norm_le_apply + theorem ContinuousMap.nnnorm_lt_iff + theorem ContinuousMap.nnnorm_lt_iff_of_nonempty + theorem ContinuousMap.norm_coe_le_norm + theorem ContinuousMap.norm_eq_iSup_norm + theorem ContinuousMap.norm_le + theorem ContinuousMap.norm_le_of_nonempty + theorem ContinuousMap.norm_lt_iff + theorem ContinuousMap.norm_lt_iff_of_nonempty + theorem ContinuousMap.norm_restrict_mono_set + theorem ContinuousMap.summable_of_locally_summable_norm + theorem ContinuousMap.uniformEmbedding_equivBoundedOfCompact + theorem ContinuousMap.uniformInducing_equivBoundedOfCompact + theorem ContinuousMap.uniform_continuity 2023-05-25 08:46:08 9d7a61c feat: port Analysis.SpecialFunctions.Pow.Asymptotics (#4174) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Analysis/Asymptotics/Theta.lean Added Mathlib/Analysis/SpecialFunctions/Pow/Asymptotics.lean + theorem Asymptotics.IsBigO.rpow + theorem Asymptotics.IsBigOWith.rpow + theorem Asymptotics.IsLittleO.rpow + theorem Complex.isBigO_cpow_rpow + theorem Complex.isTheta_cpow_const_rpow + theorem Complex.isTheta_cpow_rpow + theorem Complex.isTheta_exp_arg_mul_im + theorem ENNReal.tendsto_rpow_at_top + theorem isLittleO_abs_log_rpow_rpow_nhds_zero + theorem isLittleO_exp_neg_mul_rpow_atTop + theorem isLittleO_log_rpow_atTop + theorem isLittleO_log_rpow_nhds_zero + theorem isLittleO_log_rpow_rpow_atTop + theorem isLittleO_pow_exp_pos_mul_atTop + theorem isLittleO_rpow_exp_atTop + theorem isLittleO_rpow_exp_pos_mul_atTop + theorem isLittleO_zpow_exp_pos_mul_atTop + theorem tendsto_exp_div_rpow_atTop + theorem tendsto_exp_mul_div_rpow_atTop + theorem tendsto_log_div_rpow_nhds_zero + theorem tendsto_log_mul_rpow_nhds_zero + theorem tendsto_rpow_atTop + theorem tendsto_rpow_div + theorem tendsto_rpow_div_mul_add + theorem tendsto_rpow_mul_exp_neg_mul_atTop_nhds_0 + theorem tendsto_rpow_neg_atTop + theorem tendsto_rpow_neg_div Modified Mathlib/Data/Real/Basic.lean 2023-05-25 08:46:07 e7e3867 feat: assorted positivity extensions (#3907) Positivity extensions for `NonnegHomClass` (this includes `AbsoluteValue` and `Seminorm`), `IsAbsoluteValue`, norm, the `NNReal`-to-`Real` coercion, factorials, square roots, distance (in a metric space), and diameter. I tried to do these "properly" using Qq but I hit various errors I couldn't fix -- see https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/Qq.20doesn't.20know.20that.20two.20things.20have.20the.20same.20type for some examples. cc @dwrensha ESTIMATED CHANGES Modified Mathlib/Algebra/Order/AbsoluteValue.lean + def IsAbsoluteValue.Mathlib.Meta.Positivity.evalAbv Modified Mathlib/Algebra/Order/Hom/Basic.lean + def Mathlib.Meta.Positivity.evalMap Modified Mathlib/Analysis/LocallyConvex/WithSeminorms.lean Modified Mathlib/Analysis/Normed/Group/Basic.lean + def Mathlib.Meta.Positivity.evalAddNorm + def Mathlib.Meta.Positivity.evalMulNorm Modified Mathlib/Analysis/Normed/Group/Seminorm.lean Modified Mathlib/Analysis/Seminorm.lean Modified Mathlib/Data/Real/NNReal.lean + def Mathlib.Meta.Positivity.evalNNRealtoReal Modified Mathlib/Data/Real/Sqrt.lean + def Mathlib.Meta.Positivity.evalNNRealSqrt + def Mathlib.Meta.Positivity.evalSqrt + theorem NNReal.sqrt_pos Modified Mathlib/Tactic/Positivity/Basic.lean + def Mathlib.Meta.Positivity.evalFactorial: Modified Mathlib/Topology/MetricSpace/Basic.lean + def Mathlib.Meta.Positivity.evalDiam + def Mathlib.Meta.Positivity.evalDist Modified Mathlib/Topology/MetricSpace/HausdorffDistance.lean Modified test/positivity.lean 2023-05-25 08:25:56 036470e feat: port Analysis.Calculus.Fderiv.Bilinear (#4221) Also golf/extend theorems about bounded bilinear maps and rewrite the proof using the fact that the derivative of a bilinear map is a continuous bilinear map. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/Calculus/FDeriv/Bilinear.lean + theorem ContinuousLinearMap.fderivWithin_of_bilinear + theorem ContinuousLinearMap.fderiv_of_bilinear + theorem ContinuousLinearMap.hasFDerivAt_of_bilinear + theorem ContinuousLinearMap.hasFDerivWithinAt_of_bilinear + theorem IsBoundedBilinearMap.differentiable + theorem IsBoundedBilinearMap.differentiableAt + theorem IsBoundedBilinearMap.differentiableOn + theorem IsBoundedBilinearMap.differentiableWithinAt + theorem IsBoundedBilinearMap.fderiv + theorem IsBoundedBilinearMap.fderivWithin + theorem IsBoundedBilinearMap.hasFDerivAt + theorem IsBoundedBilinearMap.hasFDerivWithinAt + theorem IsBoundedBilinearMap.hasStrictFDerivAt 2023-05-25 08:25:55 4a1f49b feat: port ModelTheory.Satisfiability (#3980) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/ModelTheory/Satisfiability.lean + theorem Cardinal.Categorical.isComplete + def Cardinal.Categorical + theorem Cardinal.empty_infinite_Theory_isComplete + theorem Cardinal.empty_theory_categorical + theorem FirstOrder.Language.BoundedFormula.IsQF.induction_on_inf_not + theorem FirstOrder.Language.BoundedFormula.IsQF.induction_on_sup_not + theorem FirstOrder.Language.BoundedFormula.all_semanticallyEquivalent_not_ex_not + theorem FirstOrder.Language.BoundedFormula.ex_semanticallyEquivalent_not_all_not + theorem FirstOrder.Language.BoundedFormula.imp_semanticallyEquivalent_not_sup + theorem FirstOrder.Language.BoundedFormula.induction_on_all_ex + theorem FirstOrder.Language.BoundedFormula.induction_on_exists_not + theorem FirstOrder.Language.BoundedFormula.inf_semanticallyEquivalent_not_sup_not + theorem FirstOrder.Language.BoundedFormula.semanticallyEquivalent_all_liftAt + theorem FirstOrder.Language.BoundedFormula.semanticallyEquivalent_not_not + theorem FirstOrder.Language.BoundedFormula.semanticallyEquivalent_toPrenex + theorem FirstOrder.Language.BoundedFormula.sup_semanticallyEquivalent_not_inf_not + theorem FirstOrder.Language.Formula.imp_semanticallyEquivalent_not_sup + theorem FirstOrder.Language.Formula.inf_semanticallyEquivalent_not_sup_not + theorem FirstOrder.Language.Formula.semanticallyEquivalent_not_not + theorem FirstOrder.Language.Formula.sup_semanticallyEquivalent_not_inf_not + theorem FirstOrder.Language.Theory.IsComplete.models_not_iff + theorem FirstOrder.Language.Theory.IsComplete.realize_sentence_iff + def FirstOrder.Language.Theory.IsComplete + def FirstOrder.Language.Theory.IsFinitelySatisfiable + theorem FirstOrder.Language.Theory.IsMaximal.isComplete + theorem FirstOrder.Language.Theory.IsMaximal.mem_iff_models + theorem FirstOrder.Language.Theory.IsMaximal.mem_of_models + theorem FirstOrder.Language.Theory.IsMaximal.mem_or_not_mem + def FirstOrder.Language.Theory.IsMaximal + theorem FirstOrder.Language.Theory.IsSatisfiable.isFinitelySatisfiable + theorem FirstOrder.Language.Theory.IsSatisfiable.mono + def FirstOrder.Language.Theory.IsSatisfiable + theorem FirstOrder.Language.Theory.Model.isSatisfiable + theorem FirstOrder.Language.Theory.ModelsBoundedFormula.realize_sentence + def FirstOrder.Language.Theory.ModelsBoundedFormula + theorem FirstOrder.Language.Theory.SemanticallyEquivalent.realize_bd_iff + theorem FirstOrder.Language.Theory.SemanticallyEquivalent.realize_iff + theorem FirstOrder.Language.Theory.SemanticallyEquivalent.refl + theorem FirstOrder.Language.Theory.SemanticallyEquivalent.symm + theorem FirstOrder.Language.Theory.SemanticallyEquivalent.trans + def FirstOrder.Language.Theory.SemanticallyEquivalent + theorem FirstOrder.Language.Theory.exists_large_model_of_infinite_model + theorem FirstOrder.Language.Theory.exists_model_card_eq + theorem FirstOrder.Language.Theory.isSatisfiable_directed_union_iff + theorem FirstOrder.Language.Theory.isSatisfiable_empty + theorem FirstOrder.Language.Theory.isSatisfiable_iUnion_iff_isSatisfiable_iUnion_finset + theorem FirstOrder.Language.Theory.isSatisfiable_iff_isFinitelySatisfiable + theorem FirstOrder.Language.Theory.isSatisfiable_of_isSatisfiable_onTheory + theorem FirstOrder.Language.Theory.isSatisfiable_onTheory_iff + theorem FirstOrder.Language.Theory.isSatisfiable_union_distinctConstantsTheory_of_card_le + theorem FirstOrder.Language.Theory.isSatisfiable_union_distinctConstantsTheory_of_infinite + theorem FirstOrder.Language.Theory.models_formula_iff + theorem FirstOrder.Language.Theory.models_iff_not_satisfiable + theorem FirstOrder.Language.Theory.models_sentence_iff + theorem FirstOrder.Language.Theory.models_sentence_of_mem + def FirstOrder.Language.Theory.semanticallyEquivalentSetoid + theorem FirstOrder.Language.completeTheory.isComplete + theorem FirstOrder.Language.completeTheory.isMaximal + theorem FirstOrder.Language.completeTheory.isSatisfiable + theorem FirstOrder.Language.completeTheory.mem_or_not_mem + theorem FirstOrder.Language.exists_elementarilyEquivalent_card_eq + theorem FirstOrder.Language.exists_elementaryEmbedding_card_eq + theorem FirstOrder.Language.exists_elementaryEmbedding_card_eq_of_ge + theorem FirstOrder.Language.exists_elementaryEmbedding_card_eq_of_le 2023-05-25 03:53:28 0a78381 feat: port Topology.Instances.Complex (#4314) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Topology/Algebra/Ring/Basic.lean Added Mathlib/Topology/Instances/Complex.lean + theorem Complex.subfield_eq_of_closed + theorem Complex.uniformContinuous_ringHom_eq_id_or_conj 2023-05-25 03:53:26 b399e6a feat: port Analysis.NormedSpace.Star.Multiplier (#4312) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/NormedSpace/Star/Multiplier.lean + theorem DoubleCentralizer.add_fst + theorem DoubleCentralizer.add_snd + theorem DoubleCentralizer.add_toProd + theorem DoubleCentralizer.algebraMap_fst + theorem DoubleCentralizer.algebraMap_snd + theorem DoubleCentralizer.algebraMap_toProd + theorem DoubleCentralizer.coe_eq_algebraMap + theorem DoubleCentralizer.coe_fst + theorem DoubleCentralizer.coe_snd + theorem DoubleCentralizer.ext + theorem DoubleCentralizer.int_cast_fst + theorem DoubleCentralizer.int_cast_snd + theorem DoubleCentralizer.int_cast_toProd + theorem DoubleCentralizer.mul_fst + theorem DoubleCentralizer.mul_snd + theorem DoubleCentralizer.nat_cast_fst + theorem DoubleCentralizer.nat_cast_snd + theorem DoubleCentralizer.nat_cast_toProd + theorem DoubleCentralizer.neg_fst + theorem DoubleCentralizer.neg_snd + theorem DoubleCentralizer.neg_toProd + theorem DoubleCentralizer.nnnorm_def' + theorem DoubleCentralizer.nnnorm_def + theorem DoubleCentralizer.nnnorm_fst + theorem DoubleCentralizer.nnnorm_fst_eq_snd + theorem DoubleCentralizer.nnnorm_snd + theorem DoubleCentralizer.norm_def' + theorem DoubleCentralizer.norm_def + theorem DoubleCentralizer.norm_fst + theorem DoubleCentralizer.norm_fst_eq_snd + theorem DoubleCentralizer.norm_snd + theorem DoubleCentralizer.one_fst + theorem DoubleCentralizer.one_snd + theorem DoubleCentralizer.one_toProd + theorem DoubleCentralizer.pow_fst + theorem DoubleCentralizer.pow_snd + theorem DoubleCentralizer.pow_toProd + theorem DoubleCentralizer.range_toProd + theorem DoubleCentralizer.range_toProdMulOpposite + theorem DoubleCentralizer.smul_fst + theorem DoubleCentralizer.smul_snd + theorem DoubleCentralizer.smul_toProd + theorem DoubleCentralizer.star_fst + theorem DoubleCentralizer.star_snd + theorem DoubleCentralizer.sub_fst + theorem DoubleCentralizer.sub_snd + theorem DoubleCentralizer.sub_toProd + def DoubleCentralizer.toProdHom + def DoubleCentralizer.toProdMulOpposite + def DoubleCentralizer.toProdMulOppositeHom + theorem DoubleCentralizer.toProdMulOpposite_injective + theorem DoubleCentralizer.uniformEmbedding_toProdMulOpposite + theorem DoubleCentralizer.zero_fst + theorem DoubleCentralizer.zero_snd + theorem DoubleCentralizer.zero_toProd + structure DoubleCentralizer 2023-05-25 03:53:21 662ed1f doc: porting note on quotient `⟦a⟧` notation (#4306) The details of this notation changed between mathlib 3 and 4, so we should leave a porting note about this change and give a bit motivation (the motivation is actually not totally clear anymore). Zulip thread: https://leanprover.zulipchat.com/#narrow/stream/113489-new-members/topic/confusion.20between.20equivalence.20and.20instance.20setoid/near/360822354 ESTIMATED CHANGES Modified Mathlib/Data/Quot.lean 2023-05-25 03:53:19 745fa52 chore: golf proofs about `IsBoundedBilinearMap` (#4239) Add `IsBoundedBilinearMap.toContinuousLinearMap` and use it to golf proofs by reusing facts about bundled bilinear maps `E →L[𝕜] F →L[𝕜] G`. ### All changes - Add `IsBoundedBilinearMap.toContinuousLinearMap`. - Rename `IsBoundedBilinearMap.is_O'` to `IsBoundedBilinearMap.isBigO'`. - Rename `isBoundedBilinearMap_deriv_coe` to `IsBoundedBilinearMap.deriv_apply`. - Add `LinearMap.mkContinuousOfExistsBound₂`, a bilinear map version of `LinearMap.mkContinuousOfExistsBound` and use it to redefine `LinearMap.mkContinuous₂`. The new definition is definitionally equal to the old one. - Import `Mathlib.Analysis.NormedSpace.OperatorNorm` instead of `Mathlib.Analysis.NormedSpace.BoundedLinearMaps` in `Mathlib.Analysis.Calculus.FDeriv.Basic`. - Golf many proofs ESTIMATED CHANGES Modified Mathlib/Analysis/Calculus/FDeriv/Basic.lean Modified Mathlib/Analysis/Calculus/FDeriv/Linear.lean Modified Mathlib/Analysis/NormedSpace/BoundedLinearMaps.lean + theorem IsBoundedBilinearMap.deriv_apply +/- def IsBoundedBilinearMap.linearDeriv + def IsBoundedBilinearMap.toContinuousLinearMap - theorem isBoundedBilinearMap_deriv_coe Modified Mathlib/Analysis/NormedSpace/OperatorNorm.lean + def LinearMap.mkContinuousOfExistsBound₂ + theorem LinearMap.norm_mkContinuous₂_aux 2023-05-25 03:53:15 1b43f3b feat: port Analysis.Convex.SpecificFunctions.Basic (#4142) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/Convex/SpecificFunctions/Basic.lean + theorem convexOn_exp + theorem convexOn_pow + theorem convexOn_rpow + theorem convexOn_zpow + theorem one_add_mul_self_le_rpow_one_add + theorem one_add_mul_self_lt_rpow_one_add + theorem strictConcaveOn_log_Iio + theorem strictConcaveOn_log_Ioi + theorem strictConvexOn_exp + theorem strictConvexOn_rpow 2023-05-25 03:53:12 141c9c3 feat: port ModelTheory.Ultraproducts (#3976) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/ModelTheory/Ultraproducts.lean + theorem FirstOrder.Language.Ultraproduct.boundedFormula_realize_cast + theorem FirstOrder.Language.Ultraproduct.funMap_cast + theorem FirstOrder.Language.Ultraproduct.realize_formula_cast + theorem FirstOrder.Language.Ultraproduct.sentence_realize + theorem FirstOrder.Language.Ultraproduct.term_realize_cast 2023-05-25 00:26:30 14a5152 feat: port Analysis.LocallyConvex.WeakDual (#4307) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/LocallyConvex/WeakDual.lean + theorem LinearMap.coe_toSeminorm + theorem LinearMap.hasBasis_weakBilin + def LinearMap.toSeminorm + def LinearMap.toSeminormFamily + theorem LinearMap.toSeminormFamily_apply + theorem LinearMap.toSeminorm_apply + theorem LinearMap.toSeminorm_ball_zero + theorem LinearMap.toSeminorm_comp + theorem LinearMap.weakBilin_withSeminorms 2023-05-25 00:26:29 dacfbcb chore: fix statement of PNat.pow_coe (#4298) ESTIMATED CHANGES Modified Mathlib/Data/PNat/Basic.lean +/- theorem PNat.pow_coe 2023-05-25 00:26:28 9b45a6f chore: restore simp tag for BoxIntegral.BoxAdditiveMap.map_split_add (#4294) ESTIMATED CHANGES Modified Mathlib/Analysis/BoxIntegral/Partition/Additive.lean Modified Mathlib/Data/Option/Defs.lean + theorem Option.elim'_none + theorem Option.elim'_some 2023-05-24 22:02:33 52d71ad feat: port AlgebraicGeometry.PrimeSpectrum.IsOpenComapC (#4302) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/AlgebraicGeometry/PrimeSpectrum/IsOpenComapC.lean + theorem AlgebraicGeometry.Polynomial.comap_C_mem_imageOfDf + def AlgebraicGeometry.Polynomial.imageOfDf + theorem AlgebraicGeometry.Polynomial.imageOfDf_eq_comap_C_compl_zeroLocus + theorem AlgebraicGeometry.Polynomial.isOpenMap_comap_c + theorem AlgebraicGeometry.Polynomial.isOpen_imageOfDf 2023-05-24 22:02:32 8aca1d5 feat: port Analysis.Calculus.FDeriv.Star (#4301) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/Calculus/FDeriv/Star.lean + theorem Differentiable.star + theorem DifferentiableAt.star + theorem DifferentiableOn.star + theorem DifferentiableWithinAt.star + theorem HasFDerivAtFilter.star + theorem HasStrictFDerivAt.star + theorem differentiableAt_star_iff + theorem differentiableOn_star_iff + theorem differentiableWithinAt_star_iff + theorem differentiable_star_iff + theorem fderivWithin_star + theorem fderiv_star 2023-05-24 22:02:31 cc66f52 feat: port Algebra.Category.Module.Limits (#4297) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Category/ModuleCat/Basic.lean + theorem ModuleCat.forget_map Added Mathlib/Algebra/Category/ModuleCat/Limits.lean + def ModuleCat.HasLimits.limitCone + def ModuleCat.HasLimits.limitConeIsLimit + def ModuleCat.directLimitCocone + def ModuleCat.directLimitDiagram + def ModuleCat.directLimitIsColimit + def ModuleCat.forget₂AddCommGroupPreservesLimitsAux + theorem ModuleCat.hasLimitsOfSize + def ModuleCat.limitπLinearMap + def ModuleCat.sectionsSubmodule 2023-05-24 22:02:29 9364374 feat: basic definitions for Algebra.Homology.ShortComplex.Homology (#4204) This PR introduces the basic definition of a `HomologyData` for `S : ShortComplex C`. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Homology/ShortComplex/Homology.lean + structure CategoryTheory.ShortComplex.HomologyData Added Mathlib/Algebra/Homology/ShortComplex/LeftHomology.lean + structure CategoryTheory.ShortComplex.LeftHomologyData Added Mathlib/Algebra/Homology/ShortComplex/RightHomology.lean + structure CategoryTheory.ShortComplex.RightHomologyData 2023-05-24 22:02:28 2cbf189 feat: Double quotient of an algebra (#3750) Match https://github.com/leanprover-community/mathlib/pull/18452 [`ring_theory.ideal.quotient_operations`@`d3acee0d776b15ffb8318f327325ff343cc8bdcc`..`b88d81c84530450a8989e918608e5960f015e6c8`](https://leanprover-community.github.io/mathlib-port-status/file/ring_theory/ideal/quotient_operations?range=d3acee0d776b15ffb8318f327325ff343cc8bdcc..b88d81c84530450a8989e918608e5960f015e6c8) ESTIMATED CHANGES Modified Mathlib/RingTheory/Ideal/QuotientOperations.lean + theorem DoubleQuot.coe_liftSupQuotQuotMkₐ + theorem DoubleQuot.coe_quotLeftToQuotSupₐ + theorem DoubleQuot.coe_quotQuotEquivCommₐ + theorem DoubleQuot.coe_quotQuotEquivQuotOfLEₐ + theorem DoubleQuot.coe_quotQuotEquivQuotOfLEₐ_symm + theorem DoubleQuot.coe_quotQuotEquivQuotSupₐ + theorem DoubleQuot.coe_quotQuotEquivQuotSupₐ_symm + theorem DoubleQuot.coe_quotQuotMkₐ + theorem DoubleQuot.coe_quotQuotToQuotSupₐ + def DoubleQuot.liftSupQuotQuotMkₐ + theorem DoubleQuot.liftSupQuotQuotMkₐ_toRingHom + def DoubleQuot.quotLeftToQuotSupₐ + theorem DoubleQuot.quotLeftToQuotSupₐ_toRingHom + theorem DoubleQuot.quotQuotEquivComm_comp_quotQuotMkₐ + theorem DoubleQuot.quotQuotEquivComm_symmₐ + def DoubleQuot.quotQuotEquivCommₐ + theorem DoubleQuot.quotQuotEquivCommₐ_toRingEquiv + def DoubleQuot.quotQuotEquivQuotOfLE + theorem DoubleQuot.quotQuotEquivQuotOfLE_comp_quotQuotMk + theorem DoubleQuot.quotQuotEquivQuotOfLE_comp_quotQuotMkₐ + theorem DoubleQuot.quotQuotEquivQuotOfLE_quotQuotMk + theorem DoubleQuot.quotQuotEquivQuotOfLE_symm_comp_mk + theorem DoubleQuot.quotQuotEquivQuotOfLE_symm_comp_mkₐ + theorem DoubleQuot.quotQuotEquivQuotOfLE_symm_mk + def DoubleQuot.quotQuotEquivQuotOfLEₐ + theorem DoubleQuot.quotQuotEquivQuotOfLEₐ_symm_toRingEquiv + theorem DoubleQuot.quotQuotEquivQuotOfLEₐ_toRingEquiv - def DoubleQuot.quotQuotEquivQuotOfLe - theorem DoubleQuot.quotQuotEquivQuotOfLe_comp_quotQuotMk - theorem DoubleQuot.quotQuotEquivQuotOfLe_quotQuotMk - theorem DoubleQuot.quotQuotEquivQuotOfLe_symm_comp_mk - theorem DoubleQuot.quotQuotEquivQuotOfLe_symm_mk + def DoubleQuot.quotQuotEquivQuotSupₐ + theorem DoubleQuot.quotQuotEquivQuotSupₐ_symm_toRingEquiv + theorem DoubleQuot.quotQuotEquivQuotSupₐ_toRingEquiv + def DoubleQuot.quotQuotMkₐ + theorem DoubleQuot.quotQuotMkₐ_toRingHom + def DoubleQuot.quotQuotToQuotSupₐ + theorem DoubleQuot.quotQuotToQuotSupₐ_toRingHom 2023-05-24 15:17:44 009b047 chore: forward-port #19026 (#4129) Fiddly, not done yet ... help welcome. Cross-reference: https://github.com/leanprover-community/mathlib/pull/19026. ESTIMATED CHANGES Modified Mathlib/Analysis/Convex/Slope.lean + theorem ConvexOn.secant_mono + theorem ConvexOn.secant_mono_aux1 + theorem ConvexOn.secant_mono_aux2 + theorem ConvexOn.secant_mono_aux3 + theorem StrictConcaveOn.secant_strict_mono + theorem StrictConvexOn.secant_strict_mono + theorem StrictConvexOn.secant_strict_mono_aux1 + theorem StrictConvexOn.secant_strict_mono_aux2 + theorem StrictConvexOn.secant_strict_mono_aux3 Modified Mathlib/Analysis/SpecialFunctions/Log/Basic.lean + theorem Real.log_lt_sub_one_of_pos Modified Mathlib/Data/Complex/Exponential.lean +/- theorem Real.add_one_le_exp_of_nonneg - theorem Real.add_one_le_exp_of_nonpos + theorem Real.add_one_lt_exp_of_neg + theorem Real.add_one_lt_exp_of_nonzero + theorem Real.add_one_lt_exp_of_pos + theorem Real.exp_bound_div_one_sub_of_interval' - theorem Real.exp_bound_div_one_sub_of_interval_approx + theorem Real.one_sub_le_exp_minus_of_nonneg - theorem Real.one_sub_le_exp_minus_of_pos + theorem Real.one_sub_lt_exp_minus_of_pos + theorem Real.quadratic_le_exp_of_nonneg + theorem Real.sum_le_exp_of_nonneg 2023-05-24 12:14:43 100392f feat: port Algebra.DirectLimit (#4052) A few times `rw [RingHom.map_neg]` worked, `rw [(FreeCommRing.lift _).map_neg]` failed, and `rw [(FreeCommRing.lift ).map_neg]` succeeded. So there was some "sweet spot" where `rw` would fail, and if you either gave it strictly less or strictly more information it would succeed. Other than that, not much to say. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/DirectLimit.lean + def AddCommGroup.DirectLimit.lift + theorem AddCommGroup.DirectLimit.lift_of + theorem AddCommGroup.DirectLimit.lift_unique + theorem AddCommGroup.DirectLimit.of.zero_exact + def AddCommGroup.DirectLimit.of + theorem AddCommGroup.DirectLimit.of_f + def AddCommGroup.DirectLimit + theorem DirectedSystem.map_map + theorem DirectedSystem.map_self + theorem Field.DirectLimit.exists_inv + theorem Module.DirectLimit.exists_of + def Module.DirectLimit.lift + theorem Module.DirectLimit.lift_of + theorem Module.DirectLimit.lift_unique + theorem Module.DirectLimit.of.zero_exact + theorem Module.DirectLimit.of.zero_exact_aux + def Module.DirectLimit.of + theorem Module.DirectLimit.of_f + theorem Module.DirectLimit.toModule_totalize_of_le + theorem Module.DirectLimit.totalize_of_le + theorem Module.DirectLimit.totalize_of_not_le + def Module.DirectLimit + theorem Ring.DirectLimit.exists_of + theorem Ring.DirectLimit.induction_on + def Ring.DirectLimit.lift + theorem Ring.DirectLimit.lift_of + theorem Ring.DirectLimit.lift_unique + theorem Ring.DirectLimit.of.zero_exact + theorem Ring.DirectLimit.of.zero_exact_aux2 + theorem Ring.DirectLimit.of.zero_exact_aux + theorem Ring.DirectLimit.of_f + theorem Ring.DirectLimit.of_injective + def Ring.DirectLimit Modified Mathlib/RingTheory/FreeCommRing.lean + theorem FreeCommRing.of_cons 2023-05-24 11:42:22 88a01cc feat: port ModelTheory.Quotients (#3972) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/ModelTheory/Quotients.lean + theorem FirstOrder.Language.Term.realize_quotient_mk' + theorem FirstOrder.Language.funMap_quotient_mk' + theorem FirstOrder.Language.relMap_quotient_mk' 2023-05-24 10:36:50 a40639a feat: port Analysis.Normed.MulAction + #19053 (#4288) Both the new file and the other fixes are done in the same PR, since according to the description of leanprover-community/mathlib#19053 "this should be very easy to forward-port". ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/Normed/MulAction.lean + theorem BoundedSMul.of_norm_smul_le + theorem dist_smul_le + theorem dist_smul₀ + theorem lipschitzWith_smul + theorem nndist_smul_le + theorem nndist_smul₀ + theorem nnnorm_smul + theorem nnnorm_smul_le + theorem norm_smul + theorem norm_smul_le Modified Mathlib/Analysis/NormedSpace/Basic.lean - theorem dist_smul_le - theorem dist_smul₀ - theorem lipschitzWith_smul - theorem nndist_smul_le - theorem nndist_smul₀ - theorem nnnorm_smul - theorem nnnorm_smul_le - theorem norm_smul - theorem norm_smul_le Modified Mathlib/Analysis/SpecialFunctions/Exp.lean 2023-05-24 10:36:49 0123bf2 feat: port RingTheory.AdjoinRoot (#4271) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/RingTheory/AdjoinRoot.lean + theorem AdjoinRoot.Minpoly.toAdjoin.apply_X + theorem AdjoinRoot.Minpoly.toAdjoin.surjective + def AdjoinRoot.Minpoly.toAdjoin + theorem AdjoinRoot.Minpoly.toAdjoin_apply' + def AdjoinRoot.Polynomial.quotQuotEquivComm + theorem AdjoinRoot.Polynomial.quotQuotEquivComm_mk + theorem AdjoinRoot.Polynomial.quotQuotEquivComm_symm_mk_mk + theorem AdjoinRoot.adjoinRoot_eq_top + theorem AdjoinRoot.aeval_algHom_eq_zero + theorem AdjoinRoot.aeval_eq + theorem AdjoinRoot.algHom_ext + theorem AdjoinRoot.algHom_subsingleton + theorem AdjoinRoot.algebraMap_eq' + theorem AdjoinRoot.algebraMap_eq + theorem AdjoinRoot.coe_injective' + theorem AdjoinRoot.coe_injective + theorem AdjoinRoot.coe_liftHom + def AdjoinRoot.equiv' + theorem AdjoinRoot.equiv'_symm_toAlgHom + theorem AdjoinRoot.equiv'_toAlgHom + def AdjoinRoot.equiv + theorem AdjoinRoot.eval₂_root + theorem AdjoinRoot.finitePresentation + theorem AdjoinRoot.finiteType + theorem AdjoinRoot.induction_on + theorem AdjoinRoot.isAlgebraic_root + theorem AdjoinRoot.isDomain_of_prime + theorem AdjoinRoot.isIntegral_root' + theorem AdjoinRoot.isIntegral_root + theorem AdjoinRoot.isRoot_root + def AdjoinRoot.lift + def AdjoinRoot.liftHom + theorem AdjoinRoot.liftHom_eq_algHom + theorem AdjoinRoot.liftHom_mk + theorem AdjoinRoot.liftHom_of + theorem AdjoinRoot.liftHom_root + theorem AdjoinRoot.lift_comp_of + theorem AdjoinRoot.lift_mk + theorem AdjoinRoot.lift_of + theorem AdjoinRoot.lift_root + theorem AdjoinRoot.minpoly_powerBasis_gen + theorem AdjoinRoot.minpoly_powerBasis_gen_of_monic + theorem AdjoinRoot.minpoly_root + def AdjoinRoot.mk + theorem AdjoinRoot.mk_C + theorem AdjoinRoot.mk_X + theorem AdjoinRoot.mk_eq_mk + theorem AdjoinRoot.mk_eq_zero + theorem AdjoinRoot.mk_leftInverse + theorem AdjoinRoot.mk_ne_zero_of_degree_lt + theorem AdjoinRoot.mk_ne_zero_of_natDegree_lt + theorem AdjoinRoot.mk_self + theorem AdjoinRoot.mk_surjective + def AdjoinRoot.modByMonicHom + theorem AdjoinRoot.modByMonicHom_mk + theorem AdjoinRoot.mul_div_root_cancel + theorem AdjoinRoot.noZeroSMulDivisors_of_prime_of_degree_ne_zero + theorem AdjoinRoot.of.injective_of_degree_ne_zero + def AdjoinRoot.of + def AdjoinRoot.powerBasis' + def AdjoinRoot.powerBasis + def AdjoinRoot.powerBasisAux' + theorem AdjoinRoot.powerBasisAux'_repr_apply_to_fun + theorem AdjoinRoot.powerBasisAux'_repr_symm_apply + def AdjoinRoot.powerBasisAux + def AdjoinRoot.quotAdjoinRootEquivQuotPolynomialQuot + theorem AdjoinRoot.quotAdjoinRootEquivQuotPolynomialQuot_mk_of + theorem AdjoinRoot.quotAdjoinRootEquivQuotPolynomialQuot_symm_mk_mk + theorem AdjoinRoot.quotEquivQuotMap_apply_mk + theorem AdjoinRoot.quotEquivQuotMap_symm_apply_mk + def AdjoinRoot.quotMapCMapSpanMkEquivQuotMapCQuotMapSpanMk + theorem AdjoinRoot.quotMapCMapSpanMkEquivQuotMapCQuotMapSpanMk_mk + theorem AdjoinRoot.quotMapCMapSpanMkEquivQuotMapCQuotMapSpanMk_symm_quotQuotMk + def AdjoinRoot.quotMapOfEquivQuotMapCMapSpanMk + theorem AdjoinRoot.quotMapOfEquivQuotMapCMapSpanMk_mk + theorem AdjoinRoot.quotMapOfEquivQuotMapCMapSpanMk_symm_mk + def AdjoinRoot.root + theorem AdjoinRoot.root_is_inv + theorem AdjoinRoot.smul_mk + theorem AdjoinRoot.smul_of + def AdjoinRoot + theorem PowerBasis.quotientEquivQuotientMinpolyMap_apply_mk + theorem PowerBasis.quotientEquivQuotientMinpolyMap_symm_apply_mk 2023-05-24 10:36:47 357ecbc feat: Algebra.Homology.ShortComplex.Basic (#4203) This PR introduces the category of short complexes `X₁ ⟶ X₂ ⟶ X₃` in a category with zero morphisms. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Homology/ShortComplex/Basic.lean + def CategoryTheory.Functor.mapShortComplex + def CategoryTheory.ShortComplex.Hom.comp + def CategoryTheory.ShortComplex.Hom.id + structure CategoryTheory.ShortComplex.Hom + theorem CategoryTheory.ShortComplex.comp_τ₁ + theorem CategoryTheory.ShortComplex.comp_τ₂ + theorem CategoryTheory.ShortComplex.comp_τ₃ + def CategoryTheory.ShortComplex.homMk + theorem CategoryTheory.ShortComplex.hom_ext + theorem CategoryTheory.ShortComplex.id_τ₁ + theorem CategoryTheory.ShortComplex.id_τ₂ + theorem CategoryTheory.ShortComplex.id_τ₃ + theorem CategoryTheory.ShortComplex.isIso_of_isIso + def CategoryTheory.ShortComplex.isoMk + def CategoryTheory.ShortComplex.map + def CategoryTheory.ShortComplex.mapNatIso + def CategoryTheory.ShortComplex.mapNatTrans + def CategoryTheory.ShortComplex.op + def CategoryTheory.ShortComplex.opEquiv + def CategoryTheory.ShortComplex.opFunctor + def CategoryTheory.ShortComplex.opMap + theorem CategoryTheory.ShortComplex.opMap_id + def CategoryTheory.ShortComplex.unop + def CategoryTheory.ShortComplex.unopFunctor + def CategoryTheory.ShortComplex.unopMap + theorem CategoryTheory.ShortComplex.unopMap_id + theorem CategoryTheory.ShortComplex.zero_τ₁ + theorem CategoryTheory.ShortComplex.zero_τ₂ + theorem CategoryTheory.ShortComplex.zero_τ₃ + def CategoryTheory.ShortComplex.π₁ + def CategoryTheory.ShortComplex.π₁Toπ₂ + theorem CategoryTheory.ShortComplex.π₁Toπ₂_comp_π₂Toπ₃ + def CategoryTheory.ShortComplex.π₂ + def CategoryTheory.ShortComplex.π₂Toπ₃ + def CategoryTheory.ShortComplex.π₃ + structure CategoryTheory.ShortComplex 2023-05-24 10:36:46 3d4bf22 feat: port Data.Fintype.Quotient (#3971) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Data/Fintype/Quotient.lean + def Quotient.finChoice + def Quotient.finChoiceAux + theorem Quotient.finChoiceAux_eq + theorem Quotient.finChoice_eq 2023-05-24 09:57:38 30e138d feat: port NumberTheory.ModularForms.CongruenceSubgroups (#4296) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/NumberTheory/ModularForms/CongruenceSubgroups.lean + def Gamma0 + def Gamma0Map + theorem Gamma0_det + theorem Gamma0_is_congruence + theorem Gamma0_mem + def Gamma1' + def Gamma1 + theorem Gamma1_in_Gamma0 + theorem Gamma1_is_congruence + theorem Gamma1_mem' + theorem Gamma1_mem + theorem Gamma1_to_Gamma0_mem + def Gamma + theorem Gamma_cong_eq_self + theorem Gamma_is_cong_sub + theorem Gamma_mem' + theorem Gamma_mem + theorem Gamma_normal + theorem Gamma_one_top + theorem Gamma_zero_bot + def IsCongruenceSubgroup + theorem SL_reduction_mod_hom_val + theorem conj_cong_is_cong + theorem isCongruenceSubgroup_trans 2023-05-24 09:57:37 1164db8 feat: port Topology.MetricSpace.GromovHausdorffRealized (#4206) Proof of `dist_mem_candidates` has been simplified ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Topology/MetricSpace/GromovHausdorffRealized.lean + def GromovHausdorff.HD + theorem GromovHausdorff.HD_below_aux1 + theorem GromovHausdorff.HD_below_aux2 + theorem GromovHausdorff.HD_candidatesBDist_le + def GromovHausdorff.OptimalGHCoupling + def GromovHausdorff.candidates + def GromovHausdorff.candidatesBDist + theorem GromovHausdorff.candidatesBDist_mem_candidatesB + def GromovHausdorff.candidatesBOfCandidates + theorem GromovHausdorff.candidatesBOfCandidates_mem + theorem GromovHausdorff.hausdorffDist_optimal_le_HD + theorem GromovHausdorff.isometry_optimalGHInjl + theorem GromovHausdorff.isometry_optimalGHInjr + def GromovHausdorff.optimalGHInjl + def GromovHausdorff.optimalGHInjr + def GromovHausdorff.premetricOptimalGHDist 2023-05-24 09:57:36 56ebf4c feat: port Analysis.LocallyConvex.WithSeminorms (#4170) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/LocallyConvex/WithSeminorms.lean + theorem Inducing.withSeminorms + theorem LinearMap.withSeminorms_induced + theorem NormedSpace.toLocallyConvexSpace' + def Seminorm.IsBounded + theorem Seminorm.const_isBounded + theorem Seminorm.cont_normedSpace_to_withSeminorms + theorem Seminorm.cont_withSeminorms_normedSpace + theorem Seminorm.continuous_from_bounded + theorem Seminorm.continuous_iff_continuous_comp + theorem Seminorm.continuous_of_continuous_comp + theorem Seminorm.isBounded_const + theorem Seminorm.isBounded_sup + def SeminormFamily.basisSets + theorem SeminormFamily.basisSets_add + theorem SeminormFamily.basisSets_iff + theorem SeminormFamily.basisSets_intersect + theorem SeminormFamily.basisSets_mem + theorem SeminormFamily.basisSets_neg + theorem SeminormFamily.basisSets_nonempty + theorem SeminormFamily.basisSets_singleton_mem + theorem SeminormFamily.basisSets_smul + theorem SeminormFamily.basisSets_smul_left + theorem SeminormFamily.basisSets_smul_right + theorem SeminormFamily.basisSets_zero + def SeminormFamily.comp + theorem SeminormFamily.comp_apply + theorem SeminormFamily.filter_eq_iInf + theorem SeminormFamily.finset_sup_comp + theorem SeminormFamily.withSeminorms_iff_nhds_eq_iInf + theorem SeminormFamily.withSeminorms_iff_topologicalSpace_eq_iInf + theorem SeminormFamily.withSeminorms_iff_uniformSpace_eq_iInf + theorem SeminormFamily.withSeminorms_of_hasBasis + theorem SeminormFamily.withSeminorms_of_nhds + theorem WithSeminorms.T1_of_separating + theorem WithSeminorms.continuous_seminorm + theorem WithSeminorms.first_countable + theorem WithSeminorms.hasBasis + theorem WithSeminorms.hasBasis_ball + theorem WithSeminorms.hasBasis_zero_ball + theorem WithSeminorms.image_isVonNBounded_iff_finset_seminorm_bounded + theorem WithSeminorms.image_isVonNBounded_iff_seminorm_bounded + theorem WithSeminorms.isOpen_iff_mem_balls + theorem WithSeminorms.isVonNBounded_iff_finset_seminorm_bounded + theorem WithSeminorms.isVonNBounded_iff_seminorm_bounded + theorem WithSeminorms.mem_nhds_iff + theorem WithSeminorms.separating_iff_T1 + theorem WithSeminorms.separating_of_T1 + theorem WithSeminorms.tendsto_nhds' + theorem WithSeminorms.tendsto_nhds + theorem WithSeminorms.tendsto_nhds_atTop + theorem WithSeminorms.toLocallyConvexSpace + theorem WithSeminorms.topologicalAddGroup + theorem WithSeminorms.withSeminorms_eq + structure WithSeminorms + theorem norm_withSeminorms Modified Mathlib/Analysis/Normed/Group/Basic.lean 2023-05-24 09:36:38 468469a feat: port LinearAlgebra.Charpoly.ToMatrix (#4295) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/LinearAlgebra/Charpoly/ToMatrix.lean + theorem LinearMap.charpoly_toMatrix 2023-05-24 09:36:36 104cb17 feat: port Topology.Instances.RatLemmas (#4277) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Topology/Instances/RatLemmas.lean + theorem Rat.dense_compl_compact + theorem Rat.interior_compact_eq_empty + theorem Rat.not_countably_generated_cocompact + theorem Rat.not_countably_generated_nhds_infty_alexandroff + theorem Rat.not_firstCountableTopology_alexandroff + theorem Rat.not_secondCountableTopology_alexandroff 2023-05-24 09:36:33 5719f01 feat: port AlgebraicGeometry.PrimeSpectrum.Basic (#4276) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/AlgebraicGeometry/PrimeSpectrum/Basic.lean + theorem LocalRing.PrimeSpectrum.comap_residue + def LocalRing.closedPoint + theorem LocalRing.closedPoint_mem_iff + theorem LocalRing.comap_closedPoint + theorem LocalRing.isLocalRingHom_iff_comap_closedPoint + theorem LocalRing.specializes_closedPoint + theorem PrimeSpectrum.asIdeal_le_asIdeal + theorem PrimeSpectrum.asIdeal_lt_asIdeal + def PrimeSpectrum.basicOpen + theorem PrimeSpectrum.basicOpen_eq_bot_iff + theorem PrimeSpectrum.basicOpen_eq_zeroLocus_compl + theorem PrimeSpectrum.basicOpen_le_basicOpen_iff + theorem PrimeSpectrum.basicOpen_mul + theorem PrimeSpectrum.basicOpen_mul_le_left + theorem PrimeSpectrum.basicOpen_mul_le_right + theorem PrimeSpectrum.basicOpen_one + theorem PrimeSpectrum.basicOpen_pow + theorem PrimeSpectrum.basicOpen_zero + theorem PrimeSpectrum.closedEmbedding_comap_of_surjective + def PrimeSpectrum.closedsEmbedding + theorem PrimeSpectrum.closure_singleton + theorem PrimeSpectrum.coe_vanishingIdeal + def PrimeSpectrum.comap + theorem PrimeSpectrum.comap_asIdeal + theorem PrimeSpectrum.comap_comp + theorem PrimeSpectrum.comap_comp_apply + theorem PrimeSpectrum.comap_id + theorem PrimeSpectrum.comap_inducing_of_surjective + theorem PrimeSpectrum.comap_injective_of_surjective + theorem PrimeSpectrum.comap_singleton_isClosed_of_isIntegral + theorem PrimeSpectrum.comap_singleton_isClosed_of_surjective + theorem PrimeSpectrum.gc + theorem PrimeSpectrum.gc_set + theorem PrimeSpectrum.image_comap_zeroLocus_eq_zeroLocus_comap + theorem PrimeSpectrum.isBasis_basic_opens + theorem PrimeSpectrum.isClosed_iff_zeroLocus + theorem PrimeSpectrum.isClosed_iff_zeroLocus_ideal + theorem PrimeSpectrum.isClosed_iff_zeroLocus_radical_ideal + theorem PrimeSpectrum.isClosed_range_comap_of_surjective + theorem PrimeSpectrum.isClosed_singleton_iff_isMaximal + theorem PrimeSpectrum.isClosed_zeroLocus + theorem PrimeSpectrum.isCompact_basicOpen + theorem PrimeSpectrum.isIrreducible_iff_vanishingIdeal_isPrime + theorem PrimeSpectrum.isIrreducible_zeroLocus_iff + theorem PrimeSpectrum.isIrreducible_zeroLocus_iff_of_radical + theorem PrimeSpectrum.isOpen_basicOpen + theorem PrimeSpectrum.isOpen_iff + theorem PrimeSpectrum.isRadical_vanishingIdeal + theorem PrimeSpectrum.isTopologicalBasis_basic_opens + theorem PrimeSpectrum.le_iff_mem_closure + theorem PrimeSpectrum.le_iff_specializes + theorem PrimeSpectrum.le_vanishingIdeal_zeroLocus + def PrimeSpectrum.localizationMapOfSpecializes + theorem PrimeSpectrum.localization_away_comap_range + theorem PrimeSpectrum.localization_away_openEmbedding + theorem PrimeSpectrum.localization_comap_embedding + theorem PrimeSpectrum.localization_comap_inducing + theorem PrimeSpectrum.localization_comap_injective + theorem PrimeSpectrum.localization_comap_range + theorem PrimeSpectrum.mem_basicOpen + theorem PrimeSpectrum.mem_compl_zeroLocus_iff_not_mem + theorem PrimeSpectrum.mem_vanishingIdeal + theorem PrimeSpectrum.mem_zeroLocus + def PrimeSpectrum.nhdsOrderEmbedding + theorem PrimeSpectrum.pUnit + theorem PrimeSpectrum.preimage_comap_zeroLocus + theorem PrimeSpectrum.preimage_comap_zeroLocus_aux + def PrimeSpectrum.primeSpectrumProdOfSum + theorem PrimeSpectrum.primeSpectrumProd_symm_inl_asIdeal + theorem PrimeSpectrum.primeSpectrumProd_symm_inr_asIdeal + theorem PrimeSpectrum.range_comap_of_surjective + theorem PrimeSpectrum.subset_vanishingIdeal_zeroLocus + theorem PrimeSpectrum.subset_zeroLocus_iff_le_vanishingIdeal + theorem PrimeSpectrum.subset_zeroLocus_iff_subset_vanishingIdeal + theorem PrimeSpectrum.subset_zeroLocus_vanishingIdeal + theorem PrimeSpectrum.sup_vanishingIdeal_le + theorem PrimeSpectrum.t1Space_iff_isField + theorem PrimeSpectrum.union_zeroLocus + def PrimeSpectrum.vanishingIdeal + theorem PrimeSpectrum.vanishingIdeal_anti_mono + theorem PrimeSpectrum.vanishingIdeal_anti_mono_iff + theorem PrimeSpectrum.vanishingIdeal_closure + theorem PrimeSpectrum.vanishingIdeal_eq_top_iff + theorem PrimeSpectrum.vanishingIdeal_iUnion + theorem PrimeSpectrum.vanishingIdeal_singleton + theorem PrimeSpectrum.vanishingIdeal_strict_anti_mono_iff + theorem PrimeSpectrum.vanishingIdeal_union + theorem PrimeSpectrum.vanishingIdeal_univ + theorem PrimeSpectrum.vanishingIdeal_zeroLocus_eq_radical + def PrimeSpectrum.zeroLocus + theorem PrimeSpectrum.zeroLocus_anti_mono + theorem PrimeSpectrum.zeroLocus_anti_mono_ideal + theorem PrimeSpectrum.zeroLocus_bUnion + theorem PrimeSpectrum.zeroLocus_bot + theorem PrimeSpectrum.zeroLocus_empty + theorem PrimeSpectrum.zeroLocus_empty_iff_eq_top + theorem PrimeSpectrum.zeroLocus_empty_of_one_mem + theorem PrimeSpectrum.zeroLocus_iSup + theorem PrimeSpectrum.zeroLocus_iUnion + theorem PrimeSpectrum.zeroLocus_inf + theorem PrimeSpectrum.zeroLocus_mul + theorem PrimeSpectrum.zeroLocus_pow + theorem PrimeSpectrum.zeroLocus_radical + theorem PrimeSpectrum.zeroLocus_singleton_mul + theorem PrimeSpectrum.zeroLocus_singleton_one + theorem PrimeSpectrum.zeroLocus_singleton_pow + theorem PrimeSpectrum.zeroLocus_singleton_zero + theorem PrimeSpectrum.zeroLocus_span + theorem PrimeSpectrum.zeroLocus_subset_zeroLocus_iff + theorem PrimeSpectrum.zeroLocus_subset_zeroLocus_singleton_iff + theorem PrimeSpectrum.zeroLocus_sup + theorem PrimeSpectrum.zeroLocus_union + theorem PrimeSpectrum.zeroLocus_univ + theorem PrimeSpectrum.zeroLocus_vanishingIdeal_eq_closure + structure PrimeSpectrum 2023-05-24 09:36:32 ac81fdb feat: port Algebra.Category.Group.FilteredColimits (#4274) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Category/GroupCat/FilteredColimits.lean + def CommGroupCat.FilteredColimits.colimitCoconeIsColimit + theorem GroupCat.FilteredColimits.G.mk_eq + def GroupCat.FilteredColimits.colimitCoconeIsColimit + def GroupCat.FilteredColimits.colimitInvAux + theorem GroupCat.FilteredColimits.colimitInvAux_eq_of_rel + theorem GroupCat.FilteredColimits.colimit_inv_mk_eq 2023-05-24 09:36:30 8161656 feat: port Analysis.NormedSpace.HahnBanach.Extension (#4268) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/NormedSpace/HahnBanach/Extension.lean + theorem Real.exists_extension_norm_eq + theorem coord_norm' + theorem exists_dual_vector'' + theorem exists_dual_vector' + theorem exists_dual_vector + theorem exists_extension_norm_eq 2023-05-24 09:36:29 1976a29 feat: port LinearAlgebra.Matrix.ToLinearEquiv (#3702) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/LinearAlgebra/Matrix/ToLinearEquiv.lean + theorem Matrix.exists_mulVec_eq_zero_iff' + theorem Matrix.exists_mulVec_eq_zero_iff + theorem Matrix.exists_mulVec_eq_zero_iff_aux + theorem Matrix.exists_vecMul_eq_zero_iff + theorem Matrix.ker_toLin_eq_bot + theorem Matrix.nondegenerate_iff_det_ne_zero + theorem Matrix.range_toLin_eq_top + def Matrix.toLinearEquiv' + theorem Matrix.toLinearEquiv'_apply + theorem Matrix.toLinearEquiv'_symm_apply 2023-05-24 08:50:17 cc9bb0f feat: port Analysis.Complex.Isometry (#4292) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/Complex/Isometry.lean + theorem LinearIsometry.im_apply_eq_im + theorem LinearIsometry.im_apply_eq_im_or_neg_of_re_apply_eq_re + theorem LinearIsometry.re_apply_eq_re + theorem LinearIsometry.re_apply_eq_re_of_add_conj_eq + theorem det_rotation + theorem linearEquiv_det_rotation + theorem linear_isometry_complex + theorem linear_isometry_complex_aux + def rotation + def rotationOf + theorem rotationOf_rotation + theorem rotation_apply + theorem rotation_injective + theorem rotation_ne_conjLie + theorem rotation_symm + theorem rotation_trans + theorem toMatrix_rotation 2023-05-24 08:50:16 2200a2f feat: port FieldTheory.SeparableDegree (#4287) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/FieldTheory/SeparableDegree.lean + def Polynomial.HasSeparableContraction.contraction + def Polynomial.HasSeparableContraction.degree + theorem Polynomial.HasSeparableContraction.dvd_degree' + theorem Polynomial.HasSeparableContraction.dvd_degree + theorem Polynomial.HasSeparableContraction.eq_degree + def Polynomial.HasSeparableContraction + theorem Polynomial.Irreducible.hasSeparableContraction + theorem Polynomial.IsSeparableContraction.degree_eq + theorem Polynomial.IsSeparableContraction.dvd_degree' + def Polynomial.IsSeparableContraction + theorem Polynomial.contraction_degree_eq_or_insep 2023-05-24 08:50:14 41490c3 feat: port MeasureTheory.Function.AEEqFun (#4286) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/MeasureTheory/Function/AEEqFun.lean + theorem ContinuousMap.coeFn_toAEEqFun + def ContinuousMap.toAEEqFun + def ContinuousMap.toAEEqFunLinearMap + def ContinuousMap.toAEEqFunMulHom + def MeasureTheory.AEEqFun.LiftPred + def MeasureTheory.AEEqFun.LiftRel + def MeasureTheory.AEEqFun.cast + theorem MeasureTheory.AEEqFun.coeFn_abs + theorem MeasureTheory.AEEqFun.coeFn_comp + theorem MeasureTheory.AEEqFun.coeFn_compMeasurable + theorem MeasureTheory.AEEqFun.coeFn_comp₂ + theorem MeasureTheory.AEEqFun.coeFn_comp₂Measurable + theorem MeasureTheory.AEEqFun.coeFn_const + theorem MeasureTheory.AEEqFun.coeFn_div + theorem MeasureTheory.AEEqFun.coeFn_inf + theorem MeasureTheory.AEEqFun.coeFn_inv + theorem MeasureTheory.AEEqFun.coeFn_le + theorem MeasureTheory.AEEqFun.coeFn_mk + theorem MeasureTheory.AEEqFun.coeFn_mul + theorem MeasureTheory.AEEqFun.coeFn_one + theorem MeasureTheory.AEEqFun.coeFn_pair + theorem MeasureTheory.AEEqFun.coeFn_posPart + theorem MeasureTheory.AEEqFun.coeFn_pow + theorem MeasureTheory.AEEqFun.coeFn_smul + theorem MeasureTheory.AEEqFun.coeFn_sup + theorem MeasureTheory.AEEqFun.coeFn_zpow + def MeasureTheory.AEEqFun.comp + def MeasureTheory.AEEqFun.compMeasurable + theorem MeasureTheory.AEEqFun.compMeasurable_eq_mk + theorem MeasureTheory.AEEqFun.compMeasurable_mk + theorem MeasureTheory.AEEqFun.compMeasurable_toGerm + theorem MeasureTheory.AEEqFun.comp_eq_mk + theorem MeasureTheory.AEEqFun.comp_mk + theorem MeasureTheory.AEEqFun.comp_toGerm + def MeasureTheory.AEEqFun.comp₂ + def MeasureTheory.AEEqFun.comp₂Measurable + theorem MeasureTheory.AEEqFun.comp₂Measurable_eq_mk + theorem MeasureTheory.AEEqFun.comp₂Measurable_eq_pair + theorem MeasureTheory.AEEqFun.comp₂Measurable_mk_mk + theorem MeasureTheory.AEEqFun.comp₂Measurable_toGerm + theorem MeasureTheory.AEEqFun.comp₂_eq_mk + theorem MeasureTheory.AEEqFun.comp₂_eq_pair + theorem MeasureTheory.AEEqFun.comp₂_mk_mk + theorem MeasureTheory.AEEqFun.comp₂_toGerm + def MeasureTheory.AEEqFun.const + theorem MeasureTheory.AEEqFun.div_toGerm + theorem MeasureTheory.AEEqFun.ext + theorem MeasureTheory.AEEqFun.ext_iff + theorem MeasureTheory.AEEqFun.induction_on + theorem MeasureTheory.AEEqFun.induction_on₂ + theorem MeasureTheory.AEEqFun.induction_on₃ + theorem MeasureTheory.AEEqFun.inv_mk + theorem MeasureTheory.AEEqFun.inv_toGerm + theorem MeasureTheory.AEEqFun.liftRel_iff_coeFn + theorem MeasureTheory.AEEqFun.liftRel_mk_mk + def MeasureTheory.AEEqFun.lintegral + theorem MeasureTheory.AEEqFun.lintegral_add + theorem MeasureTheory.AEEqFun.lintegral_coeFn + theorem MeasureTheory.AEEqFun.lintegral_eq_zero_iff + theorem MeasureTheory.AEEqFun.lintegral_mk + theorem MeasureTheory.AEEqFun.lintegral_mono + def MeasureTheory.AEEqFun.mk + theorem MeasureTheory.AEEqFun.mk_coeFn + theorem MeasureTheory.AEEqFun.mk_div + theorem MeasureTheory.AEEqFun.mk_eq_mk + theorem MeasureTheory.AEEqFun.mk_le_mk + theorem MeasureTheory.AEEqFun.mk_mul_mk + theorem MeasureTheory.AEEqFun.mk_pow + theorem MeasureTheory.AEEqFun.mk_toGerm + theorem MeasureTheory.AEEqFun.mk_zpow + theorem MeasureTheory.AEEqFun.mul_toGerm + theorem MeasureTheory.AEEqFun.one_def + theorem MeasureTheory.AEEqFun.one_toGerm + def MeasureTheory.AEEqFun.pair + theorem MeasureTheory.AEEqFun.pair_eq_mk + theorem MeasureTheory.AEEqFun.pair_mk_mk + def MeasureTheory.AEEqFun.posPart + theorem MeasureTheory.AEEqFun.posPart_mk + theorem MeasureTheory.AEEqFun.pow_toGerm + theorem MeasureTheory.AEEqFun.quot_mk_eq_mk + theorem MeasureTheory.AEEqFun.smul_mk + theorem MeasureTheory.AEEqFun.smul_toGerm + def MeasureTheory.AEEqFun.toGerm + def MeasureTheory.AEEqFun.toGermMonoidHom + theorem MeasureTheory.AEEqFun.toGerm_eq + theorem MeasureTheory.AEEqFun.toGerm_injective + theorem MeasureTheory.AEEqFun.zpow_toGerm + def MeasureTheory.AEEqFun + def MeasureTheory.Measure.aeEqSetoid 2023-05-24 08:28:41 2cab396 chore: forward port leanprover-community/mathlib#19038 (#4290) ESTIMATED CHANGES Modified Mathlib/Topology/Algebra/Module/Star.lean + def starL' 2023-05-24 01:45:09 b3b7e04 feat: port RingTheory.LaurentSeries (#4283) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/RingTheory/HahnSeries.lean + theorem HahnSeries.ofPowerSeries_X_pow - theorem HahnSeries.ofPowerSeries_x_pow Added Mathlib/RingTheory/LaurentSeries.lean + theorem LaurentSeries.coe_algebraMap + theorem LaurentSeries.coeff_coe_powerSeries + theorem LaurentSeries.ofPowerSeries_powerSeriesPart + def LaurentSeries.powerSeriesPart + theorem LaurentSeries.powerSeriesPart_coeff + theorem LaurentSeries.powerSeriesPart_eq_zero + theorem LaurentSeries.powerSeriesPart_zero + theorem LaurentSeries.single_order_mul_powerSeriesPart + theorem PowerSeries.coe_C + theorem PowerSeries.coe_X + theorem PowerSeries.coe_add + theorem PowerSeries.coe_mul + theorem PowerSeries.coe_neg + theorem PowerSeries.coe_one + theorem PowerSeries.coe_pow + theorem PowerSeries.coe_smul + theorem PowerSeries.coe_sub + theorem PowerSeries.coe_zero + theorem PowerSeries.coeff_coe 2023-05-24 01:45:08 de301c8 feat: port Init.Data.Ordering.Lemmas (#4281) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Init/Data/Ordering/Lemmas.lean + theorem Ordering.ite_eq_eq_distrib + theorem Ordering.ite_eq_gt_distrib + theorem Ordering.ite_eq_lt_distrib + theorem cmpUsing_eq_eq + theorem cmpUsing_eq_gt + theorem cmpUsing_eq_lt 2023-05-24 01:45:07 25809c6 feat: assert_not_exists (#4245) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Associated.lean Modified Mathlib/Algebra/Group/Conj.lean Modified Mathlib/Algebra/GroupWithZero/Units/Basic.lean Modified Mathlib/Algebra/Hom/GroupAction.lean Modified Mathlib/Algebra/Module/Basic.lean Modified Mathlib/Algebra/Module/LinearMap.lean Modified Mathlib/Algebra/Order/Field/Defs.lean Modified Mathlib/Algebra/Ring/Equiv.lean Modified Mathlib/Algebra/Star/Basic.lean Modified Mathlib/Analysis/Complex/Basic.lean Modified Mathlib/Analysis/Convex/Topology.lean Modified Mathlib/Analysis/Normed/Field/Basic.lean Modified Mathlib/Analysis/Seminorm.lean Modified Mathlib/CategoryTheory/Limits/Yoneda.lean Modified Mathlib/CategoryTheory/Monoidal/Tor.lean Modified Mathlib/Data/Finset/Basic.lean Modified Mathlib/Data/Int/Order/Basic.lean Modified Mathlib/Data/List/Basic.lean Modified Mathlib/Data/Multiset/FinsetOps.lean Modified Mathlib/Data/Nat/Factors.lean Modified Mathlib/Data/Rat/Defs.lean Modified Mathlib/Data/Rat/Order.lean Modified Mathlib/Data/Real/Basic.lean Modified Mathlib/GroupTheory/Subgroup/Basic.lean Modified Mathlib/GroupTheory/Submonoid/Center.lean Modified Mathlib/GroupTheory/Submonoid/Centralizer.lean Modified Mathlib/GroupTheory/Subsemigroup/Center.lean Modified Mathlib/GroupTheory/Subsemigroup/Centralizer.lean Modified Mathlib/Mathport/Syntax.lean Modified Mathlib/MeasureTheory/Function/SpecialFunctions/Basic.lean Modified Mathlib/Order/ConditionallyCompleteLattice/Basic.lean Modified Mathlib/Order/Hom/Basic.lean Modified Mathlib/Order/SemiconjSup.lean Added Mathlib/Util/AssertExists.lean 2023-05-23 22:59:18 36f5131 feat: port RingTheory.Adjoin.PowerBasis (#4279) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/RingTheory/Adjoin/PowerBasis.lean + theorem PowerBasis.repr_gen_pow_isIntegral + theorem PowerBasis.repr_mul_isIntegral + theorem PowerBasis.repr_pow_isIntegral + theorem PowerBasis.toMatrix_isIntegral 2023-05-23 22:59:17 ccccfcf feat: port LinearAlgebra.Matrix.GeneralLinearGroup (#4265) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/LinearAlgebra/Matrix/GeneralLinearGroup.lean + theorem Matrix.GLPos.coe_neg + theorem Matrix.GLPos.coe_neg_GL + theorem Matrix.GLPos.coe_neg_apply + theorem Matrix.GLPos.det_ne_zero + def Matrix.GLPos + theorem Matrix.GeneralLinearGroup.coe_inv + theorem Matrix.GeneralLinearGroup.coe_mul + theorem Matrix.GeneralLinearGroup.coe_one + theorem Matrix.GeneralLinearGroup.coe_toLinear + def Matrix.GeneralLinearGroup.det + theorem Matrix.GeneralLinearGroup.ext + theorem Matrix.GeneralLinearGroup.ext_iff + def Matrix.GeneralLinearGroup.mk' + def Matrix.GeneralLinearGroup.mkOfDetNeZero + def Matrix.GeneralLinearGroup.toLin + def Matrix.GeneralLinearGroup.toLinear + theorem Matrix.GeneralLinearGroup.toLinear_apply + def Matrix.SpecialLinearGroup.coeToGL + theorem Matrix.SpecialLinearGroup.coeToGL_det + theorem Matrix.SpecialLinearGroup.coe_GLPos_coe_GL_coe_matrix + theorem Matrix.SpecialLinearGroup.coe_GLPos_neg + theorem Matrix.SpecialLinearGroup.coe_to_GLPos_to_GL_det + def Matrix.SpecialLinearGroup.toGLPos + theorem Matrix.SpecialLinearGroup.toGLPos_injective + theorem Matrix.mem_glpos + def Matrix.planeConformalMatrix Modified Mathlib/LinearAlgebra/Matrix/SpecialLinearGroup.lean 2023-05-23 22:59:16 4f3556f chore: forward-port leanprover-community/mathlib#19021 (#4257) ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/Basis.lean + theorem Basis.equivFun_ofEquivFun Modified Mathlib/LinearAlgebra/StdBasis.lean + theorem Pi.basisFun_equivFun 2023-05-23 22:59:15 ac36b28 chore: update std 05-22 (#4248) The main breaking change is that `tac <;> [t1, t2]` is now written `tac <;> [t1; t2]`, to avoid clashing with tactics like `cases` and `use` that take comma-separated lists. ESTIMATED CHANGES Modified Mathlib/Algebra/EuclideanDomain/Basic.lean Modified Mathlib/Algebra/GCDMonoid/Basic.lean Modified Mathlib/Algebra/GroupPower/Lemmas.lean Modified Mathlib/Algebra/GroupWithZero/Basic.lean Modified Mathlib/Algebra/Order/Floor.lean Modified Mathlib/AlgebraicTopology/FundamentalGroupoid/Basic.lean Modified Mathlib/Analysis/Asymptotics/AsymptoticEquivalent.lean Modified Mathlib/Analysis/BoxIntegral/Partition/Split.lean Modified Mathlib/Analysis/Convex/Slope.lean Modified Mathlib/Analysis/Convex/Strict.lean Modified Mathlib/Analysis/LocallyConvex/Basic.lean Modified Mathlib/Analysis/NormedSpace/Multilinear.lean Modified Mathlib/Analysis/SpecialFunctions/Complex/Arg.lean Modified Mathlib/Analysis/SpecialFunctions/Pow/Real.lean Modified Mathlib/Computability/Reduce.lean Modified Mathlib/Computability/TMToPartrec.lean Modified Mathlib/Computability/TuringMachine.lean Modified Mathlib/Control/LawfulFix.lean Modified Mathlib/Control/Traversable/Equiv.lean Modified Mathlib/Data/Dfinsupp/Basic.lean Modified Mathlib/Data/FinEnum.lean Modified Mathlib/Data/Finset/Functor.lean Modified Mathlib/Data/Finsupp/Defs.lean Modified Mathlib/Data/Fintype/Perm.lean Modified Mathlib/Data/List/AList.lean Modified Mathlib/Data/List/Basic.lean +/- theorem List.splitOnP.go_acc - theorem List.splitOnP.go_append + theorem List.splitOnP.go_ne_nil +/- theorem List.splitOnP_ne_nil - theorem List.takeWhile_append_drop Modified Mathlib/Data/List/BigOperators/Basic.lean Modified Mathlib/Data/List/Chain.lean Modified Mathlib/Data/List/Infix.lean Modified Mathlib/Data/List/Join.lean Modified Mathlib/Data/List/Pairwise.lean Modified Mathlib/Data/List/Permutation.lean Modified Mathlib/Data/List/Sigma.lean Modified Mathlib/Data/List/Sublists.lean Modified Mathlib/Data/Multiset/Basic.lean Modified Mathlib/Data/Nat/Bits.lean Modified Mathlib/Data/Nat/Order/Basic.lean Modified Mathlib/Data/Nat/Prime.lean Modified Mathlib/Data/Nat/Size.lean Modified Mathlib/Data/Nat/Upto.lean Modified Mathlib/Data/Num/Lemmas.lean Modified Mathlib/Data/Num/Prime.lean Modified Mathlib/Data/PNat/Basic.lean Modified Mathlib/Data/Real/CauSeqCompletion.lean Modified Mathlib/Data/Real/ENNReal.lean Modified Mathlib/Data/Seq/Parallel.lean Modified Mathlib/Data/Seq/Seq.lean Modified Mathlib/Data/Seq/WSeq.lean Modified Mathlib/Data/Set/Function.lean Modified Mathlib/Data/Set/Image.lean Modified Mathlib/Data/Set/Intervals/Basic.lean Modified Mathlib/Data/Set/NAry.lean Modified Mathlib/Data/String/Basic.lean + theorem String.Iterator.hasNext_cons_addChar Modified Mathlib/Data/Sym/Card.lean Modified Mathlib/Dynamics/Circle/RotationNumber/TranslationNumber.lean Modified Mathlib/Dynamics/Ergodic/Ergodic.lean Modified Mathlib/LinearAlgebra/AffineSpace/Combination.lean Modified Mathlib/LinearAlgebra/LinearIndependent.lean Modified Mathlib/LinearAlgebra/LinearPMap.lean Modified Mathlib/Logic/Equiv/Set.lean Modified Mathlib/MeasureTheory/Constructions/BorelSpace/Basic.lean Modified Mathlib/MeasureTheory/Function/SimpleFunc.lean Modified Mathlib/MeasureTheory/Integral/Lebesgue.lean Modified Mathlib/NumberTheory/PellMatiyasevic.lean Modified Mathlib/Order/InitialSeg.lean Modified Mathlib/Order/OmegaCompletePartialOrder.lean Modified Mathlib/RingTheory/PowerSeries/Basic.lean Modified Mathlib/SetTheory/Cardinal/Cofinality.lean Modified Mathlib/SetTheory/Cardinal/Divisibility.lean Modified Mathlib/SetTheory/Lists.lean Modified Mathlib/SetTheory/Ordinal/Arithmetic.lean Modified Mathlib/SetTheory/Ordinal/Basic.lean Modified Mathlib/SetTheory/ZFC/Basic.lean Modified Mathlib/Topology/Algebra/Module/Basic.lean Modified Mathlib/Topology/Algebra/UniformFilterBasis.lean Modified Mathlib/Topology/Algebra/WithZeroTopology.lean Modified Mathlib/Topology/Connected.lean Modified Mathlib/Topology/ContinuousFunction/Bounded.lean Modified Mathlib/Topology/FiberBundle/Trivialization.lean Modified Mathlib/Topology/Separation.lean Modified Mathlib/Topology/UniformSpace/Basic.lean Modified lake-manifest.json 2023-05-23 20:29:11 598588d refactor: make MulOpposite = AddOpposite (#4050) It turns out to be convenient to have `MulOpposite α = AddOpposite α` true by definition, in the same way that it is convenient to have `Additive α = α`; this means that we also get the defeq `AddOpposite (Additive α) = MulOpposite α`, which is convenient when working with quotients. This is a compromise between making `MulOpposite α = AddOpposite α = α` (what we had in Lean 3) and having no defeqs within those three types (which we had as of #1036). This is motivated by #3333 ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/Basic.lean Modified Mathlib/Algebra/Group/Opposite.lean Modified Mathlib/Algebra/Opposites.lean - structure AddOpposite + def MulOpposite.op +/- theorem MulOpposite.op_inj + def MulOpposite.unop + def MulOpposite - structure MulOpposite + structure PreOpposite Modified Mathlib/Algebra/Quandle.lean Modified Mathlib/Algebra/Ring/Equiv.lean Modified Mathlib/GroupTheory/GroupAction/Defs.lean Modified Mathlib/GroupTheory/GroupAction/Opposite.lean Modified Mathlib/RingTheory/Polynomial/Opposites.lean 2023-05-23 18:30:19 6c2856c feat: port RingTheory.FractionalIdeal (#4243) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/RingTheory/FractionalIdeal.lean + theorem FractionalIdeal.add_le_add_left + def FractionalIdeal.adjoinIntegral + theorem FractionalIdeal.adjoinIntegral_coe + theorem FractionalIdeal.bot_eq_zero + theorem FractionalIdeal.canonicalEquiv_canonicalEquiv + theorem FractionalIdeal.canonicalEquiv_coeIdeal + theorem FractionalIdeal.canonicalEquiv_flip + theorem FractionalIdeal.canonicalEquiv_self + theorem FractionalIdeal.canonicalEquiv_spanSingleton + theorem FractionalIdeal.canonicalEquiv_symm + theorem FractionalIdeal.canonicalEquiv_trans_canonicalEquiv + theorem FractionalIdeal.coeFun_mapEquiv + def FractionalIdeal.coeIdeal + def FractionalIdeal.coeIdealHom + theorem FractionalIdeal.coeIdeal_bot + theorem FractionalIdeal.coeIdeal_eq_one + theorem FractionalIdeal.coeIdeal_eq_zero' + theorem FractionalIdeal.coeIdeal_eq_zero + theorem FractionalIdeal.coeIdeal_fg + theorem FractionalIdeal.coeIdeal_finprod + theorem FractionalIdeal.coeIdeal_inj' + theorem FractionalIdeal.coeIdeal_inj + theorem FractionalIdeal.coeIdeal_injective' + theorem FractionalIdeal.coeIdeal_injective + theorem FractionalIdeal.coeIdeal_le_coeIdeal' + theorem FractionalIdeal.coeIdeal_le_coeIdeal + theorem FractionalIdeal.coeIdeal_le_one + theorem FractionalIdeal.coeIdeal_mul + theorem FractionalIdeal.coeIdeal_ne_one + theorem FractionalIdeal.coeIdeal_ne_zero' + theorem FractionalIdeal.coeIdeal_ne_zero + theorem FractionalIdeal.coeIdeal_pow + theorem FractionalIdeal.coeIdeal_span_singleton + theorem FractionalIdeal.coeIdeal_sup + theorem FractionalIdeal.coeIdeal_top + def FractionalIdeal.coeSubmoduleHom + theorem FractionalIdeal.coeToSet_coeToSubmodule + def FractionalIdeal.coeToSubmodule + theorem FractionalIdeal.coeToSubmodule_eq_bot + theorem FractionalIdeal.coeToSubmodule_inj + theorem FractionalIdeal.coeToSubmodule_injective + theorem FractionalIdeal.coeToSubmodule_ne_bot + theorem FractionalIdeal.coe_add + theorem FractionalIdeal.coe_coeIdeal + theorem FractionalIdeal.coe_copy + theorem FractionalIdeal.coe_div + theorem FractionalIdeal.coe_eq + theorem FractionalIdeal.coe_inf + theorem FractionalIdeal.coe_le_coe + theorem FractionalIdeal.coe_map + theorem FractionalIdeal.coe_mem_one + theorem FractionalIdeal.coe_mk + theorem FractionalIdeal.coe_mul + theorem FractionalIdeal.coe_nat_cast + theorem FractionalIdeal.coe_nsmul + theorem FractionalIdeal.coe_one + theorem FractionalIdeal.coe_one_eq_coeSubmodule_top + theorem FractionalIdeal.coe_pow + theorem FractionalIdeal.coe_spanSingleton + theorem FractionalIdeal.coe_sup + theorem FractionalIdeal.coe_zero + theorem FractionalIdeal.div_nonzero + theorem FractionalIdeal.div_one + theorem FractionalIdeal.div_spanSingleton + theorem FractionalIdeal.div_zero + theorem FractionalIdeal.eq_one_div_of_mul_eq_one_right + theorem FractionalIdeal.eq_spanSingleton_mul + theorem FractionalIdeal.eq_spanSingleton_of_principal + theorem FractionalIdeal.eq_zero_iff + theorem FractionalIdeal.eq_zero_or_one + theorem FractionalIdeal.eq_zero_or_one_of_isField + theorem FractionalIdeal.exists_eq_spanSingleton_mul + theorem FractionalIdeal.exists_mem_algebraMap_eq + theorem FractionalIdeal.exists_ne_zero_mem_isInteger + theorem FractionalIdeal.ext + theorem FractionalIdeal.fg_of_isUnit + theorem FractionalIdeal.fg_unit + theorem FractionalIdeal.fractional_div_of_nonzero + theorem FractionalIdeal.isFractional_adjoin_integral + theorem FractionalIdeal.isFractional_of_fg + theorem FractionalIdeal.isFractional_of_le + theorem FractionalIdeal.isFractional_of_le_one + theorem FractionalIdeal.isFractional_span_iff + theorem FractionalIdeal.isFractional_span_singleton + theorem FractionalIdeal.isNoetherian + theorem FractionalIdeal.isNoetherian_coeIdeal + theorem FractionalIdeal.isNoetherian_iff + theorem FractionalIdeal.isNoetherian_spanSingleton_inv_to_map_mul + theorem FractionalIdeal.isNoetherian_zero + theorem FractionalIdeal.isPrincipal_iff + theorem FractionalIdeal.le_div_iff_mul_le + theorem FractionalIdeal.le_div_iff_of_nonzero + theorem FractionalIdeal.le_one_iff_exists_coeIdeal + theorem FractionalIdeal.le_self_mul_one_div + theorem FractionalIdeal.le_self_mul_self + theorem FractionalIdeal.le_spanSingleton_mul_iff + theorem FractionalIdeal.le_zero_iff + def FractionalIdeal.map + def FractionalIdeal.mapEquiv + theorem FractionalIdeal.mapEquiv_apply + theorem FractionalIdeal.mapEquiv_refl + theorem FractionalIdeal.mapEquiv_symm + theorem FractionalIdeal.map_add + theorem FractionalIdeal.map_coeIdeal + theorem FractionalIdeal.map_comp + theorem FractionalIdeal.map_div + theorem FractionalIdeal.map_eq_zero_iff + theorem FractionalIdeal.map_id + theorem FractionalIdeal.map_injective + theorem FractionalIdeal.map_map_symm + theorem FractionalIdeal.map_mem_map + theorem FractionalIdeal.map_mul + theorem FractionalIdeal.map_ne_zero + theorem FractionalIdeal.map_one + theorem FractionalIdeal.map_one_div + theorem FractionalIdeal.map_symm_map + theorem FractionalIdeal.map_zero + theorem FractionalIdeal.mem_adjoinIntegral_self + theorem FractionalIdeal.mem_canonicalEquiv_apply + theorem FractionalIdeal.mem_coe + theorem FractionalIdeal.mem_coeIdeal + theorem FractionalIdeal.mem_coeIdeal_of_mem + theorem FractionalIdeal.mem_div_iff_of_nonzero + theorem FractionalIdeal.mem_map + theorem FractionalIdeal.mem_one_iff + theorem FractionalIdeal.mem_singleton_mul + theorem FractionalIdeal.mem_spanSingleton + theorem FractionalIdeal.mem_spanSingleton_self + theorem FractionalIdeal.mem_span_mul_finite_of_mem_mul + theorem FractionalIdeal.mem_zero_iff + theorem FractionalIdeal.mk'_mul_coeIdeal_eq_coeIdeal + theorem FractionalIdeal.mul_def + theorem FractionalIdeal.mul_div_self_cancel_iff + theorem FractionalIdeal.mul_eq_mul + theorem FractionalIdeal.mul_le + theorem FractionalIdeal.mul_le_mul_left + theorem FractionalIdeal.mul_left_mono + theorem FractionalIdeal.mul_mem_mul + theorem FractionalIdeal.mul_one_div_le_one + theorem FractionalIdeal.mul_right_mono + theorem FractionalIdeal.mul_self_le_self + theorem FractionalIdeal.ne_zero_of_mul_eq_one + theorem FractionalIdeal.one_div_spanSingleton + theorem FractionalIdeal.one_le + theorem FractionalIdeal.one_mem_one + def FractionalIdeal.spanFinset + theorem FractionalIdeal.spanFinset_coe + theorem FractionalIdeal.spanFinset_eq_zero + theorem FractionalIdeal.spanFinset_ne_zero + theorem FractionalIdeal.spanSingleton_eq_spanSingleton + theorem FractionalIdeal.spanSingleton_eq_zero_iff + theorem FractionalIdeal.spanSingleton_le_iff_mem + theorem FractionalIdeal.spanSingleton_mul_coeIdeal_eq_coeIdeal + theorem FractionalIdeal.spanSingleton_mul_le_iff + theorem FractionalIdeal.spanSingleton_mul_spanSingleton + theorem FractionalIdeal.spanSingleton_ne_zero_iff + theorem FractionalIdeal.spanSingleton_one + theorem FractionalIdeal.spanSingleton_pow + theorem FractionalIdeal.spanSingleton_zero + theorem FractionalIdeal.sup_eq_add + theorem FractionalIdeal.val_eq_coe + theorem FractionalIdeal.zero_le + def FractionalIdeal + theorem Ideal.fg_of_isUnit + theorem IsFractional.div_of_nonzero + theorem IsFractional.inf_right + theorem IsFractional.map + theorem IsFractional.mul + theorem IsFractional.nsmul + theorem IsFractional.pow + theorem IsFractional.sup + def IsFractional 2023-05-23 17:53:55 dcfe638 feat: port MeasureTheory.Function.StronglyMeasurable.Basic (#4226) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/MeasureTheory/Function/StronglyMeasurable/Basic.lean + theorem AEMeasurable.aestronglyMeasurable + theorem Continuous.aestronglyMeasurable + theorem Continuous.comp_aestronglyMeasurable + theorem Continuous.comp_stronglyMeasurable + theorem Continuous.stronglyMeasurable + theorem ContinuousLinearMap.aestronglyMeasurable_comp₂ + theorem Embedding.aestronglyMeasurable_comp_iff + theorem Embedding.comp_stronglyMeasurable_iff + theorem Finset.aestronglyMeasurable_prod' + theorem Finset.aestronglyMeasurable_prod + theorem Finset.stronglyMeasurable_prod' + theorem Finset.stronglyMeasurable_prod + theorem List.aestronglyMeasurable_prod' + theorem List.aestronglyMeasurable_prod + theorem List.stronglyMeasurable_prod' + theorem List.stronglyMeasurable_prod + theorem Measurable.aestronglyMeasurable + theorem Measurable.stronglyMeasurable + theorem MeasurableEmbedding.aestronglyMeasurable_map_iff + theorem MeasurableEmbedding.exists_stronglyMeasurable_extend + theorem MeasurableEmbedding.stronglyMeasurable_extend + theorem MeasureTheory.AEFinStronglyMeasurable.ae_eq_mk + theorem MeasureTheory.AEFinStronglyMeasurable.ae_eq_zero_compl + theorem MeasureTheory.AEFinStronglyMeasurable.exists_set_sigmaFinite + theorem MeasureTheory.AEFinStronglyMeasurable.finStronglyMeasurable_mk + def MeasureTheory.AEFinStronglyMeasurable.sigmaFiniteSet + def MeasureTheory.AEFinStronglyMeasurable + theorem MeasureTheory.AEStronglyMeasurable.add_measure + theorem MeasureTheory.AEStronglyMeasurable.ae_eq_mk + theorem MeasureTheory.AEStronglyMeasurable.ae_mem_imp_eq_mk + theorem MeasureTheory.AEStronglyMeasurable.aestronglyMeasurable_uIoc_iff + theorem MeasureTheory.AEStronglyMeasurable.apply_continuousLinearMap + theorem MeasureTheory.AEStronglyMeasurable.comp_aemeasurable + theorem MeasureTheory.AEStronglyMeasurable.comp_measurable + theorem MeasureTheory.AEStronglyMeasurable.comp_quasiMeasurePreserving + theorem MeasureTheory.AEStronglyMeasurable.congr + theorem MeasureTheory.AEStronglyMeasurable.isSeparable_ae_range + theorem MeasureTheory.AEStronglyMeasurable.measurable_mk + theorem MeasureTheory.AEStronglyMeasurable.mono_measure + theorem MeasureTheory.AEStronglyMeasurable.mono_set + theorem MeasureTheory.AEStronglyMeasurable.nullMeasurableSet_eq_fun + theorem MeasureTheory.AEStronglyMeasurable.nullMeasurableSet_le + theorem MeasureTheory.AEStronglyMeasurable.nullMeasurableSet_lt + theorem MeasureTheory.AEStronglyMeasurable.smul_measure + theorem MeasureTheory.AEStronglyMeasurable.stronglyMeasurable_mk + theorem MeasureTheory.AEStronglyMeasurable.sum_measure + def MeasureTheory.AEStronglyMeasurable + theorem MeasureTheory.FinStronglyMeasurable.aefinStronglyMeasurable + theorem MeasureTheory.FinStronglyMeasurable.exists_set_sigmaFinite + def MeasureTheory.FinStronglyMeasurable + theorem MeasureTheory.MeasurePreserving.aestronglyMeasurable_comp_iff + theorem MeasureTheory.SimpleFunc.aestronglyMeasurable + theorem MeasureTheory.SimpleFunc.stronglyMeasurable + theorem MeasureTheory.StronglyMeasurable.comp_measurable + theorem MeasureTheory.StronglyMeasurable.const_mul + theorem MeasureTheory.StronglyMeasurable.exists_spanning_measurableSet_norm_le + theorem MeasureTheory.StronglyMeasurable.finStronglyMeasurable_of_set_sigmaFinite + theorem MeasureTheory.StronglyMeasurable.isSeparable_range + theorem MeasureTheory.StronglyMeasurable.measurableSet_eq_fun + theorem MeasureTheory.StronglyMeasurable.measurableSet_le + theorem MeasureTheory.StronglyMeasurable.measurableSet_lt + theorem MeasureTheory.StronglyMeasurable.mul_const + theorem MeasureTheory.StronglyMeasurable.norm_approxBounded_le + theorem MeasureTheory.StronglyMeasurable.of_uncurry_left + theorem MeasureTheory.StronglyMeasurable.of_uncurry_right + theorem MeasureTheory.StronglyMeasurable.separableSpace_range_union_singleton + theorem MeasureTheory.StronglyMeasurable.stronglyMeasurable_in_set + theorem MeasureTheory.StronglyMeasurable.stronglyMeasurable_of_measurableSpace_le_on + theorem MeasureTheory.StronglyMeasurable.tendsto_approxBounded_ae + theorem MeasureTheory.StronglyMeasurable.tendsto_approxBounded_of_norm_le + def MeasureTheory.StronglyMeasurable + theorem MeasureTheory.Subsingleton.aestronglyMeasurable' + theorem MeasureTheory.Subsingleton.aestronglyMeasurable + theorem MeasureTheory.Subsingleton.stronglyMeasurable' + theorem MeasureTheory.Subsingleton.stronglyMeasurable + theorem MeasureTheory.aefinStronglyMeasurable_iff_aemeasurable + theorem MeasureTheory.aefinStronglyMeasurable_zero + theorem MeasureTheory.aestronglyMeasurable_const + theorem MeasureTheory.aestronglyMeasurable_one + theorem MeasureTheory.aestronglyMeasurable_zero_measure + theorem MeasureTheory.finStronglyMeasurable_iff_measurable + theorem MeasureTheory.finStronglyMeasurable_iff_stronglyMeasurable_and_exists_set_sigmaFinite + theorem MeasureTheory.finStronglyMeasurable_zero + theorem MeasureTheory.measurable_uncurry_of_continuous_of_measurable + theorem MeasureTheory.stronglyMeasurable_const' + theorem MeasureTheory.stronglyMeasurable_const + theorem MeasureTheory.stronglyMeasurable_of_isEmpty + theorem MeasureTheory.stronglyMeasurable_one + theorem MeasureTheory.stronglyMeasurable_uncurry_of_continuous_of_stronglyMeasurable + theorem Multiset.aestronglyMeasurable_prod' + theorem Multiset.aestronglyMeasurable_prod + theorem Multiset.stronglyMeasurable_prod' + theorem Multiset.stronglyMeasurable_prod + theorem StronglyMeasurable.apply_continuousLinearMap + theorem aestronglyMeasurable_add_measure_iff + theorem aestronglyMeasurable_congr + theorem aestronglyMeasurable_const_smul_iff + theorem aestronglyMeasurable_const_smul_iff₀ + theorem aestronglyMeasurable_iUnion_iff + theorem aestronglyMeasurable_id + theorem aestronglyMeasurable_iff_aemeasurable + theorem aestronglyMeasurable_iff_aemeasurable_separable + theorem aestronglyMeasurable_indicator_iff + theorem aestronglyMeasurable_of_aestronglyMeasurable_trim + theorem aestronglyMeasurable_of_tendsto_ae + theorem aestronglyMeasurable_smul_const_iff + theorem aestronglyMeasurable_sum_measure_iff + theorem aestronglyMeasurable_union_iff + theorem aestronglyMeasurable_withDensity_iff + theorem exists_stronglyMeasurable_limit_of_tendsto_ae + theorem stronglyMeasurable_bot_iff + theorem stronglyMeasurable_const_smul_iff + theorem stronglyMeasurable_const_smul_iff₀ + theorem stronglyMeasurable_id + theorem stronglyMeasurable_iff_measurable + theorem stronglyMeasurable_iff_measurable_separable + theorem stronglyMeasurable_of_restrict_of_restrict_compl + theorem stronglyMeasurable_of_stronglyMeasurable_union_cover + theorem stronglyMeasurable_of_tendsto Modified Mathlib/Tactic/Measurability.lean 2023-05-23 17:21:31 7c0f06f feat: port RepresentationTheory.Basic (#4240) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/RepresentationTheory/Basic.lean + theorem Representation.asAlgebraHom_def + theorem Representation.asAlgebraHom_of + theorem Representation.asAlgebraHom_single + theorem Representation.asAlgebraHom_single_one + def Representation.asGroupHom + theorem Representation.asGroupHom_apply + def Representation.asModule + def Representation.asModuleEquiv + theorem Representation.asModuleEquiv_map_smul + theorem Representation.asModuleEquiv_symm_map_rho + theorem Representation.asModuleEquiv_symm_map_smul + def Representation.dual + theorem Representation.dualTensorHom_comm + theorem Representation.dual_apply + def Representation.linHom + theorem Representation.linHom_apply + theorem Representation.ofModule_asAlgebraHom_apply_apply + theorem Representation.ofModule_asModule_act + theorem Representation.ofMulAction_apply + theorem Representation.ofMulAction_def + theorem Representation.ofMulAction_self_smul_eq_mul + theorem Representation.ofMulAction_single + theorem Representation.smul_ofModule_asModule + theorem Representation.smul_one_tprod_asModule + theorem Representation.smul_tprod_one_asModule + def Representation.tprod + theorem Representation.tprod_apply + def Representation.trivial + theorem Representation.trivial_def 2023-05-23 16:17:44 c82f149 feat: port FieldTheory.Separable (#4272) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/FieldTheory/Separable.lean + theorem AlgHom.card_of_powerBasis + theorem Irreducible.separable + theorem IsSeparable.isIntegral + theorem IsSeparable.of_algHom + theorem IsSeparable.separable + theorem Polynomial.Separable.inj_of_prod_X_sub_C + theorem Polynomial.Separable.injective_of_prod_X_sub_C + theorem Polynomial.Separable.isCoprime + theorem Polynomial.Separable.map + theorem Polynomial.Separable.mul + theorem Polynomial.Separable.of_dvd + theorem Polynomial.Separable.of_mul_left + theorem Polynomial.Separable.of_mul_right + theorem Polynomial.Separable.of_pow' + theorem Polynomial.Separable.of_pow + theorem Polynomial.Separable.squarefree + def Polynomial.Separable + theorem Polynomial.X_pow_sub_one_separable_iff + theorem Polynomial.card_rootSet_eq_natDegree + theorem Polynomial.count_roots_le_one + theorem Polynomial.eq_X_sub_C_of_separable_of_root_eq + theorem Polynomial.exists_finset_of_splits + theorem Polynomial.exists_separable_of_irreducible + theorem Polynomial.isUnit_of_self_mul_dvd_separable + theorem Polynomial.isUnit_or_eq_zero_of_separable_expand + theorem Polynomial.multiplicity_le_one_of_separable + theorem Polynomial.nodup_of_separable_prod + theorem Polynomial.nodup_roots + theorem Polynomial.not_separable_zero + theorem Polynomial.rootMultiplicity_le_one_of_separable + theorem Polynomial.separable_C + theorem Polynomial.separable_X + theorem Polynomial.separable_X_add_C + theorem Polynomial.separable_X_pow_sub_C + theorem Polynomial.separable_X_pow_sub_C_unit + theorem Polynomial.separable_X_sub_C + theorem Polynomial.separable_def' + theorem Polynomial.separable_def + theorem Polynomial.separable_gcd_left + theorem Polynomial.separable_gcd_right + theorem Polynomial.separable_iff_derivative_ne_zero + theorem Polynomial.separable_map + theorem Polynomial.separable_of_subsingleton + theorem Polynomial.separable_one + theorem Polynomial.separable_or + theorem Polynomial.separable_prod' + theorem Polynomial.separable_prod + theorem Polynomial.separable_prod_X_sub_C_iff' + theorem Polynomial.separable_prod_X_sub_C_iff + theorem Polynomial.unique_separable_of_irreducible + theorem isSeparable_iff + theorem isSeparable_tower_bot_of_isSeparable + theorem isSeparable_tower_top_of_isSeparable 2023-05-23 16:17:43 ab19baa feat: port Analysis.BoxIntegral.Partition.Additive (#4054) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/BoxIntegral/Partition/Additive.lean + theorem BoxIntegral.BoxAdditiveMap.coe_inj + theorem BoxIntegral.BoxAdditiveMap.coe_injective + theorem BoxIntegral.BoxAdditiveMap.coe_mk + def BoxIntegral.BoxAdditiveMap.map + theorem BoxIntegral.BoxAdditiveMap.map_split_add + def BoxIntegral.BoxAdditiveMap.ofMapSplitAdd + def BoxIntegral.BoxAdditiveMap.restrict + theorem BoxIntegral.BoxAdditiveMap.sum_boxes_congr + theorem BoxIntegral.BoxAdditiveMap.sum_partition_boxes + def BoxIntegral.BoxAdditiveMap.toSmul + theorem BoxIntegral.BoxAdditiveMap.toSmul_apply + def BoxIntegral.BoxAdditiveMap.upperSubLower.{u} + structure BoxIntegral.BoxAdditiveMap 2023-05-23 15:02:36 5a39104 feat: port Topology.Sheaves.SheafCondition.OpensLeCover (#4273) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Topology/Sheaves/SheafCondition/OpensLeCover.lean + def TopCat.Presheaf.IsSheafOpensLeCover + def TopCat.Presheaf.SheafCondition.OpensLeCover.homToIndex + def TopCat.Presheaf.SheafCondition.OpensLeCover.index + def TopCat.Presheaf.SheafCondition.OpensLeCover + def TopCat.Presheaf.SheafCondition.opensLeCoverCocone + def TopCat.Presheaf.generateEquivalenceOpensLe + def TopCat.Presheaf.generateEquivalenceOpensLe_functor' + def TopCat.Presheaf.generateEquivalenceOpensLe_inverse' + def TopCat.Presheaf.isLimitOpensLeEquivGenerate₁ + def TopCat.Presheaf.isLimitOpensLeEquivGenerate₂ + theorem TopCat.Presheaf.isSheaf_iff_isSheafOpensLeCover + def TopCat.Presheaf.whiskerIsoMapGenerateCocone 2023-05-23 13:58:59 f1455f1 feat: port RingTheory.Ideal.Over (#4270) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/RingTheory/Ideal/Over.lean + theorem Ideal.IntegralClosure.comap_lt_comap + theorem Ideal.IntegralClosure.comap_ne_bot + theorem Ideal.IntegralClosure.eq_bot_of_comap_eq_bot + theorem Ideal.IntegralClosure.isMaximal_of_isMaximal_comap + theorem Ideal.IsIntegralClosure.comap_lt_comap + theorem Ideal.IsIntegralClosure.comap_ne_bot + theorem Ideal.IsIntegralClosure.eq_bot_of_comap_eq_bot + theorem Ideal.IsIntegralClosure.isMaximal_of_isMaximal_comap + theorem Ideal.Quotient.algebraMap_quotient_map_quotient + def Ideal.Quotient.algebraQuotientOfLeComap + theorem Ideal.Quotient.mk_smul_mk_quotient_map_quotient + theorem Ideal.coeff_zero_mem_comap_of_root_mem + theorem Ideal.coeff_zero_mem_comap_of_root_mem_of_eval_mem + theorem Ideal.comap_eq_of_scalar_tower_quotient + theorem Ideal.comap_lt_comap_of_integral_mem_sdiff + theorem Ideal.comap_lt_comap_of_root_mem_sdiff + theorem Ideal.comap_ne_bot_of_algebraic_mem + theorem Ideal.comap_ne_bot_of_integral_mem + theorem Ideal.comap_ne_bot_of_root_mem + theorem Ideal.eq_bot_of_comap_eq_bot + theorem Ideal.exists_coeff_mem_comap_sdiff_comap_of_root_mem_sdiff + theorem Ideal.exists_coeff_ne_zero_mem_comap_of_non_zero_divisor_root_mem + theorem Ideal.exists_coeff_ne_zero_mem_comap_of_root_mem + theorem Ideal.exists_ideal_over_maximal_of_isIntegral + theorem Ideal.exists_ideal_over_prime_of_isIntegral + theorem Ideal.exists_ideal_over_prime_of_is_integral' + theorem Ideal.exists_nonzero_mem_of_ne_bot + theorem Ideal.injective_quotient_le_comap_map + theorem Ideal.isMaximal_comap_of_isIntegral_of_isMaximal + theorem Ideal.isMaximal_comap_of_isIntegral_of_is_maximal' + theorem Ideal.isMaximal_of_isIntegral_of_isMaximal_comap' + theorem Ideal.isMaximal_of_isIntegral_of_isMaximal_comap + theorem Ideal.mem_of_one_mem + theorem Ideal.quotient_mk_maps_eq 2023-05-23 12:52:54 178cf0f feat: port RingTheory.HahnSeries (#4261) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/RingTheory/DiscreteValuationRing/Basic.lean Added Mathlib/RingTheory/HahnSeries.lean + def HahnSeries.C + theorem HahnSeries.C_eq_algebraMap + theorem HahnSeries.C_injective + theorem HahnSeries.C_mul_eq_smul + theorem HahnSeries.C_ne_zero + theorem HahnSeries.C_one + theorem HahnSeries.C_zero + theorem HahnSeries.SummableFamily.add_apply + theorem HahnSeries.SummableFamily.coe_add + theorem HahnSeries.SummableFamily.coe_injective + theorem HahnSeries.SummableFamily.coe_neg + theorem HahnSeries.SummableFamily.coe_ofFinsupp + theorem HahnSeries.SummableFamily.coe_powers + theorem HahnSeries.SummableFamily.coe_sub + theorem HahnSeries.SummableFamily.coe_zero + def HahnSeries.SummableFamily.embDomain + theorem HahnSeries.SummableFamily.embDomain_apply + theorem HahnSeries.SummableFamily.embDomain_image + theorem HahnSeries.SummableFamily.embDomain_notin_range + theorem HahnSeries.SummableFamily.embDomain_succ_smul_powers + theorem HahnSeries.SummableFamily.ext + theorem HahnSeries.SummableFamily.finite_co_support + def HahnSeries.SummableFamily.hsum + theorem HahnSeries.SummableFamily.hsum_add + theorem HahnSeries.SummableFamily.hsum_coeff + theorem HahnSeries.SummableFamily.hsum_embDomain + theorem HahnSeries.SummableFamily.hsum_ofFinsupp + theorem HahnSeries.SummableFamily.hsum_smul + theorem HahnSeries.SummableFamily.hsum_sub + theorem HahnSeries.SummableFamily.isPwo_iUnion_support + def HahnSeries.SummableFamily.lsum + theorem HahnSeries.SummableFamily.neg_apply + def HahnSeries.SummableFamily.ofFinsupp + theorem HahnSeries.SummableFamily.one_sub_self_mul_hsum_powers + def HahnSeries.SummableFamily.powers + theorem HahnSeries.SummableFamily.smul_apply + theorem HahnSeries.SummableFamily.sub_apply + theorem HahnSeries.SummableFamily.support_hsum_subset + theorem HahnSeries.SummableFamily.zero_apply + structure HahnSeries.SummableFamily + def HahnSeries.addVal + theorem HahnSeries.addVal_apply + theorem HahnSeries.addVal_apply_of_ne + theorem HahnSeries.addVal_le_of_coeff_ne_zero + theorem HahnSeries.add_coeff' + theorem HahnSeries.add_coeff + theorem HahnSeries.algebraMap_apply' + theorem HahnSeries.algebraMap_apply + def HahnSeries.coeff.addMonoidHom + def HahnSeries.coeff.linearMap + theorem HahnSeries.coeff_eq_zero_of_lt_order + theorem HahnSeries.coeff_fun_eq_zero_iff + theorem HahnSeries.coeff_inj + theorem HahnSeries.coeff_injective + theorem HahnSeries.coeff_order_ne_zero + theorem HahnSeries.coeff_toMvPowerSeries + theorem HahnSeries.coeff_toMvPowerSeries_symm + theorem HahnSeries.coeff_toPowerSeries + theorem HahnSeries.coeff_toPowerSeries_symm + def HahnSeries.embDomain + def HahnSeries.embDomainAlgHom + def HahnSeries.embDomainLinearMap + def HahnSeries.embDomainRingHom + theorem HahnSeries.embDomainRingHom_C + theorem HahnSeries.embDomain_add + theorem HahnSeries.embDomain_coeff + theorem HahnSeries.embDomain_injective + theorem HahnSeries.embDomain_mk_coeff + theorem HahnSeries.embDomain_mul + theorem HahnSeries.embDomain_notin_image_support + theorem HahnSeries.embDomain_notin_range + theorem HahnSeries.embDomain_one + theorem HahnSeries.embDomain_single + theorem HahnSeries.embDomain_smul + theorem HahnSeries.embDomain_zero + theorem HahnSeries.eq_of_mem_support_single + theorem HahnSeries.isPwo_iUnion_support_powers + theorem HahnSeries.isPwo_support + theorem HahnSeries.isUnit_iff + theorem HahnSeries.isWf_support + theorem HahnSeries.mem_support + theorem HahnSeries.min_order_le_order_add + theorem HahnSeries.mul_coeff + theorem HahnSeries.mul_coeff_left' + theorem HahnSeries.mul_coeff_order_add_order + theorem HahnSeries.mul_coeff_right' + theorem HahnSeries.mul_single_coeff_add + theorem HahnSeries.mul_single_zero_coeff + theorem HahnSeries.ne_zero_of_coeff_ne_zero + theorem HahnSeries.neg_coeff' + theorem HahnSeries.neg_coeff + def HahnSeries.ofPowerSeries + def HahnSeries.ofPowerSeriesAlg + theorem HahnSeries.ofPowerSeries_C + theorem HahnSeries.ofPowerSeries_X + theorem HahnSeries.ofPowerSeries_apply + theorem HahnSeries.ofPowerSeries_apply_coeff + theorem HahnSeries.ofPowerSeries_injective + theorem HahnSeries.ofPowerSeries_x_pow + theorem HahnSeries.one_coeff + def HahnSeries.order + theorem HahnSeries.order_C + theorem HahnSeries.order_le_of_coeff_ne_zero + theorem HahnSeries.order_mul + theorem HahnSeries.order_neg + theorem HahnSeries.order_of_ne + theorem HahnSeries.order_one + theorem HahnSeries.order_pow + theorem HahnSeries.order_single + theorem HahnSeries.order_zero + def HahnSeries.single.addMonoidHom + def HahnSeries.single.linearMap + def HahnSeries.single + theorem HahnSeries.single_coeff + theorem HahnSeries.single_coeff_of_ne + theorem HahnSeries.single_coeff_same + theorem HahnSeries.single_eq_zero + theorem HahnSeries.single_eq_zero_iff + theorem HahnSeries.single_injective + theorem HahnSeries.single_mul_coeff_add + theorem HahnSeries.single_mul_single + theorem HahnSeries.single_ne_zero + theorem HahnSeries.single_zero_mul_coeff + theorem HahnSeries.single_zero_mul_eq_smul + theorem HahnSeries.single_zero_one + theorem HahnSeries.smul_coeff + theorem HahnSeries.sub_coeff' + theorem HahnSeries.sub_coeff + theorem HahnSeries.support_add_subset + theorem HahnSeries.support_embDomain_subset + theorem HahnSeries.support_eq_empty_iff + theorem HahnSeries.support_mul_subset_add_support + theorem HahnSeries.support_neg + theorem HahnSeries.support_one + theorem HahnSeries.support_single_of_ne + theorem HahnSeries.support_single_subset + theorem HahnSeries.support_zero + def HahnSeries.toMvPowerSeries + def HahnSeries.toPowerSeries + def HahnSeries.toPowerSeriesAlg + theorem HahnSeries.unit_aux + theorem HahnSeries.zero_coeff + structure HahnSeries + theorem Polynomial.algebraMap_hahnSeries_apply + theorem Polynomial.algebraMap_hahnSeries_injective Modified Mathlib/RingTheory/Valuation/Basic.lean +/- theorem AddValuation.map_add' +/- theorem AddValuation.map_add +/- theorem AddValuation.map_eq_of_lt_sub +/- theorem AddValuation.map_inv +/- theorem AddValuation.map_mul +/- theorem AddValuation.map_pow +/- theorem AddValuation.map_sub +/- theorem AddValuation.top_iff 2023-05-23 11:55:17 9594d4a feat: port FieldTheory.IntermediateField (#4258) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/FieldTheory/IntermediateField.lean + theorem AlgHom.coe_fieldRange + def AlgHom.fieldRange + theorem AlgHom.fieldRange_toSubfield + theorem AlgHom.mem_fieldRange + theorem IntermediateField.aeval_coe + theorem IntermediateField.algebraMap_mem + theorem IntermediateField.coe_copy + theorem IntermediateField.coe_inclusion + theorem IntermediateField.coe_isIntegral_iff + theorem IntermediateField.coe_map + theorem IntermediateField.coe_nat_mem + theorem IntermediateField.coe_prod + theorem IntermediateField.coe_restrictScalars + theorem IntermediateField.coe_smul + theorem IntermediateField.coe_sum + theorem IntermediateField.coe_toSubalgebra + theorem IntermediateField.coe_toSubfield + theorem IntermediateField.coe_val + theorem IntermediateField.copy_eq + theorem IntermediateField.eq_of_le_of_finrank_eq' + theorem IntermediateField.eq_of_le_of_finrank_eq + theorem IntermediateField.eq_of_le_of_finrank_le' + theorem IntermediateField.ext + theorem IntermediateField.fieldRange_le + theorem IntermediateField.fieldRange_val + theorem IntermediateField.finrank_eq_finrank_subalgebra + def IntermediateField.inclusion + theorem IntermediateField.inclusion_inclusion + theorem IntermediateField.inclusion_injective + theorem IntermediateField.inclusion_self + def IntermediateField.intermediateFieldMap + theorem IntermediateField.intermediateFieldMap_apply_coe + theorem IntermediateField.intermediateFieldMap_symm_apply_coe + theorem IntermediateField.isAlgebraic_iff + theorem IntermediateField.isIntegral_iff + def IntermediateField.lift + def IntermediateField.map + theorem IntermediateField.map_map + theorem IntermediateField.mem_carrier + theorem IntermediateField.mem_mk + theorem IntermediateField.mem_restrictScalars + theorem IntermediateField.mem_toSubalgebra + theorem IntermediateField.mem_toSubfield + theorem IntermediateField.minpoly_eq + theorem IntermediateField.range_val + theorem IntermediateField.rank_eq_rank_subalgebra + def IntermediateField.restrictScalars + theorem IntermediateField.restrictScalars_injective + theorem IntermediateField.restrictScalars_toSubalgebra + theorem IntermediateField.restrictScalars_toSubfield + theorem IntermediateField.set_range_subset + theorem IntermediateField.smul_mem + theorem IntermediateField.toSubalgebra_eq_iff + theorem IntermediateField.toSubalgebra_injective + theorem IntermediateField.toSubalgebra_le_toSubalgebra + theorem IntermediateField.toSubalgebra_lt_toSubalgebra + def IntermediateField.toSubfield + def IntermediateField.val + theorem IntermediateField.val_mk + structure IntermediateField + def Subalgebra.toIntermediateField' + def Subalgebra.toIntermediateField + def Subfield.toIntermediateField + theorem mem_subalgebraEquivIntermediateField + theorem mem_subalgebraEquivIntermediateField_symm + def subalgebraEquivIntermediateField + theorem toIntermediateField'_toSubalgebra + theorem toIntermediateField_toSubalgebra + theorem toSubalgebra_toIntermediateField' + theorem toSubalgebra_toIntermediateField 2023-05-23 11:38:25 1c9045f feat: port LinearAlgebra.Trace (#4264) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/LinearAlgebra/Trace.lean + theorem LinearMap.IsProj.trace + def LinearMap.trace + def LinearMap.traceAux + theorem LinearMap.traceAux_def + theorem LinearMap.traceAux_eq + theorem LinearMap.trace_comp_comm' + theorem LinearMap.trace_comp_comm + theorem LinearMap.trace_conj' + theorem LinearMap.trace_conj + theorem LinearMap.trace_eq_contract' + theorem LinearMap.trace_eq_contract + theorem LinearMap.trace_eq_contract_apply + theorem LinearMap.trace_eq_contract_of_basis' + theorem LinearMap.trace_eq_contract_of_basis + theorem LinearMap.trace_eq_matrix_trace + theorem LinearMap.trace_eq_matrix_trace_of_finset + theorem LinearMap.trace_id + theorem LinearMap.trace_mul_comm + theorem LinearMap.trace_one + theorem LinearMap.trace_prodMap' + theorem LinearMap.trace_prodMap + theorem LinearMap.trace_tensorProduct' + theorem LinearMap.trace_tensorProduct + theorem LinearMap.trace_transpose' + theorem LinearMap.trace_transpose 2023-05-23 11:05:26 7e279c7 feat: port LinearAlgebra.Matrix.Charpoly.Minpoly (#4266) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/LinearAlgebra/Matrix/Charpoly/Minpoly.lean + theorem LinearMap.minpoly_toMatrix' + theorem LinearMap.minpoly_toMatrix + theorem Matrix.isIntegral + theorem Matrix.minpoly_dvd_charpoly + theorem Matrix.minpoly_toLin' + theorem Matrix.minpoly_toLin + theorem charpoly_leftMulMatrix 2023-05-23 11:05:24 51c31d5 feat: port Analysis.Calculus.FormalMultilinearSeries (#4114) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/Calculus/FormalMultilinearSeries.lean + def ContinuousLinearMap.compFormalMultilinearSeries + theorem ContinuousLinearMap.compFormalMultilinearSeries_apply' + theorem ContinuousLinearMap.compFormalMultilinearSeries_apply + theorem FormalMultilinearSeries.apply_eq_pow_smul_coeff + theorem FormalMultilinearSeries.apply_eq_prod_smul_coeff + theorem FormalMultilinearSeries.apply_eq_zero_of_lt_order + theorem FormalMultilinearSeries.apply_order_ne_zero' + theorem FormalMultilinearSeries.apply_order_ne_zero + def FormalMultilinearSeries.coeff + theorem FormalMultilinearSeries.coeff_eq_zero + theorem FormalMultilinearSeries.coeff_fslope + theorem FormalMultilinearSeries.coeff_iterate_fslope + def FormalMultilinearSeries.compContinuousLinearMap + theorem FormalMultilinearSeries.compContinuousLinearMap_apply + theorem FormalMultilinearSeries.congr + theorem FormalMultilinearSeries.mkPiField_coeff_eq + theorem FormalMultilinearSeries.ne_zero_of_order_ne_zero + theorem FormalMultilinearSeries.norm_apply_eq_norm_coef + theorem FormalMultilinearSeries.order_eq_find' + theorem FormalMultilinearSeries.order_eq_find + theorem FormalMultilinearSeries.order_eq_zero_iff' + theorem FormalMultilinearSeries.order_eq_zero_iff + theorem FormalMultilinearSeries.order_zero + def FormalMultilinearSeries.removeZero + theorem FormalMultilinearSeries.removeZero_coeff_succ + theorem FormalMultilinearSeries.removeZero_coeff_zero + theorem FormalMultilinearSeries.removeZero_of_pos + def FormalMultilinearSeries.shift + def FormalMultilinearSeries.unshift + def FormalMultilinearSeries + def constFormalMultilinearSeries + theorem constFormalMultilinearSeries_apply + theorem zero_apply 2023-05-23 10:39:51 bcdaa34 feat: port LinearAlgebra.FreeModule.StrongRankCondition (#4262) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/LinearAlgebra/FreeModule/StrongRankCondition.lean 2023-05-23 10:39:50 91d9c13 feat: port RingTheory.Henselian (#4260) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/RingTheory/Henselian.lean + theorem HenselianLocalRing.TFAE + theorem isLocalRingHom_of_le_jacobson_bot 2023-05-23 10:39:49 d865f0c feat: port RingTheory.Localization.Integral (#4231) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/RingTheory/Localization/Integral.lean + theorem IsFractionRing.comap_isAlgebraic_iff + theorem IsFractionRing.ideal_span_singleton_map_subset + theorem IsFractionRing.integerNormalization_eq_zero_iff + theorem IsFractionRing.isAlgebraic_iff' + theorem IsFractionRing.isAlgebraic_iff + theorem IsIntegral.exists_multiple_integral_of_isLocalization + theorem IsIntegralClosure.isFractionRing_of_algebraic + theorem IsIntegralClosure.isFractionRing_of_finite_extension + theorem IsLocalization.coeffIntegerNormalization_mem_support + theorem IsLocalization.coeffIntegerNormalization_of_not_mem_support + theorem IsLocalization.integerNormalization_aeval_eq_zero + theorem IsLocalization.integerNormalization_coeff + theorem IsLocalization.integerNormalization_eval₂_eq_zero + theorem IsLocalization.integerNormalization_map_to_map + theorem IsLocalization.integerNormalization_spec + theorem IsLocalization.scaleRoots_commonDenom_mem_lifts + theorem RingHom.isIntegralElem_localization_at_leadingCoeff + theorem integralClosure.isFractionRing_of_algebraic + theorem integralClosure.isFractionRing_of_finite_extension + theorem isIntegral_localization' + theorem isIntegral_localization + theorem is_integral_localization_at_leadingCoeff 2023-05-23 10:39:48 b2a9302 feat: port Algebra.Category.Ring.Colimits (#4164) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Category/Ring/Colimits.lean + def CommRingCat.Colimits.ColimitType + inductive CommRingCat.Colimits.Prequotient + inductive CommRingCat.Colimits.Relation + def CommRingCat.Colimits.coconeFun + def CommRingCat.Colimits.coconeMorphism + theorem CommRingCat.Colimits.cocone_naturality + theorem CommRingCat.Colimits.cocone_naturality_components + def CommRingCat.Colimits.colimit + def CommRingCat.Colimits.colimitCocone + def CommRingCat.Colimits.colimitIsColimit + def CommRingCat.Colimits.colimitSetoid + def CommRingCat.Colimits.descFun + def CommRingCat.Colimits.descFunLift + def CommRingCat.Colimits.descMorphism + theorem CommRingCat.Colimits.quot_add + theorem CommRingCat.Colimits.quot_mul + theorem CommRingCat.Colimits.quot_neg + theorem CommRingCat.Colimits.quot_one + theorem CommRingCat.Colimits.quot_zero 2023-05-23 09:47:13 cd29f4c chore: forward-port leanprover-community/mathlib#18962 (#4209) ESTIMATED CHANGES Modified Mathlib/Order/Filter/CountableInter.lean + inductive Filter.CountableGenerateSets + def Filter.countableGenerate + theorem Filter.countableGenerate_isGreatest + theorem Filter.le_countableGenerate_iff_of_countableInterFilter + theorem Filter.mem_countableGenerate_iff Modified Mathlib/Topology/GDelta.lean + theorem mem_residual_iff + theorem residual_of_dense_Gδ + theorem residual_of_dense_open Modified Mathlib/Topology/MetricSpace/Baire.lean +/- theorem mem_residual 2023-05-23 07:30:14 79617e9 feat: mark Data.Nat.PrimeNormNum as ported (#4253) The `norm_num` extension was already ported in #3892, so this PR adopts the same approach as #3816. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Data/Nat/PrimeNormNum.lean 2023-05-23 07:30:13 c092497 feat: port LinearAlgebra.Charpoly.Basic (#4251) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/LinearAlgebra/Charpoly/Basic.lean + theorem LinearMap.aeval_eq_aeval_mod_charpoly + theorem LinearMap.aeval_self_charpoly + def LinearMap.charpoly + theorem LinearMap.charpoly_def + theorem LinearMap.charpoly_monic + theorem LinearMap.isIntegral + theorem LinearMap.minpoly_coeff_zero_of_injective + theorem LinearMap.minpoly_dvd_charpoly + theorem LinearMap.pow_eq_aeval_mod_charpoly 2023-05-23 07:30:11 32b9ea8 feat: port Analysis.Convex.Side (#4250) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/Convex/Side.lean + theorem AffineEquiv.sOppSide_map_iff + theorem AffineEquiv.sSameSide_map_iff + theorem AffineEquiv.wOppSide_map_iff + theorem AffineEquiv.wSameSide_map_iff + theorem AffineSubspace.SOppSide.exists_sbtw + theorem AffineSubspace.SOppSide.left_not_mem + theorem AffineSubspace.SOppSide.nonempty + theorem AffineSubspace.SOppSide.not_sSameSide + theorem AffineSubspace.SOppSide.not_wSameSide + theorem AffineSubspace.SOppSide.right_not_mem + theorem AffineSubspace.SOppSide.trans + theorem AffineSubspace.SOppSide.trans_sSameSide + theorem AffineSubspace.SOppSide.trans_wOppSide + theorem AffineSubspace.SOppSide.trans_wSameSide + theorem AffineSubspace.SOppSide.wOppSide + def AffineSubspace.SOppSide + theorem AffineSubspace.SSameSide.left_not_mem + theorem AffineSubspace.SSameSide.nonempty + theorem AffineSubspace.SSameSide.not_sOppSide + theorem AffineSubspace.SSameSide.not_wOppSide + theorem AffineSubspace.SSameSide.right_not_mem + theorem AffineSubspace.SSameSide.trans + theorem AffineSubspace.SSameSide.trans_sOppSide + theorem AffineSubspace.SSameSide.trans_wOppSide + theorem AffineSubspace.SSameSide.trans_wSameSide + theorem AffineSubspace.SSameSide.wSameSide + def AffineSubspace.SSameSide + theorem AffineSubspace.WOppSide.map + theorem AffineSubspace.WOppSide.nonempty + theorem AffineSubspace.WOppSide.not_sSameSide + theorem AffineSubspace.WOppSide.trans + theorem AffineSubspace.WOppSide.trans_sOppSide + theorem AffineSubspace.WOppSide.trans_sSameSide + theorem AffineSubspace.WOppSide.trans_wSameSide + def AffineSubspace.WOppSide + theorem AffineSubspace.WSameSide.map + theorem AffineSubspace.WSameSide.nonempty + theorem AffineSubspace.WSameSide.not_sOppSide + theorem AffineSubspace.WSameSide.trans + theorem AffineSubspace.WSameSide.trans_sOppSide + theorem AffineSubspace.WSameSide.trans_sSameSide + theorem AffineSubspace.WSameSide.trans_wOppSide + def AffineSubspace.WSameSide + theorem AffineSubspace.isConnected_setOf_sOppSide + theorem AffineSubspace.isConnected_setOf_sSameSide + theorem AffineSubspace.isConnected_setOf_wOppSide + theorem AffineSubspace.isConnected_setOf_wSameSide + theorem AffineSubspace.isPreconnected_setOf_sOppSide + theorem AffineSubspace.isPreconnected_setOf_sSameSide + theorem AffineSubspace.isPreconnected_setOf_wOppSide + theorem AffineSubspace.isPreconnected_setOf_wSameSide + theorem AffineSubspace.not_sOppSide_bot + theorem AffineSubspace.not_sOppSide_self + theorem AffineSubspace.not_sSameSide_bot + theorem AffineSubspace.not_wOppSide_bot + theorem AffineSubspace.not_wSameSide_bot + theorem AffineSubspace.sOppSide_comm + theorem AffineSubspace.sOppSide_iff_exists_left + theorem AffineSubspace.sOppSide_iff_exists_right + theorem AffineSubspace.sOppSide_lineMap_left + theorem AffineSubspace.sOppSide_lineMap_right + theorem AffineSubspace.sOppSide_pointReflection + theorem AffineSubspace.sOppSide_smul_vsub_vadd_left + theorem AffineSubspace.sOppSide_smul_vsub_vadd_right + theorem AffineSubspace.sOppSide_vadd_left_iff + theorem AffineSubspace.sOppSide_vadd_right_iff + theorem AffineSubspace.sSameSide_comm + theorem AffineSubspace.sSameSide_iff_exists_left + theorem AffineSubspace.sSameSide_iff_exists_right + theorem AffineSubspace.sSameSide_lineMap_left + theorem AffineSubspace.sSameSide_lineMap_right + theorem AffineSubspace.sSameSide_self_iff + theorem AffineSubspace.sSameSide_smul_vsub_vadd_left + theorem AffineSubspace.sSameSide_smul_vsub_vadd_right + theorem AffineSubspace.sSameSide_vadd_left_iff + theorem AffineSubspace.sSameSide_vadd_right_iff + theorem AffineSubspace.setOf_sOppSide_eq_image2 + theorem AffineSubspace.setOf_sSameSide_eq_image2 + theorem AffineSubspace.setOf_wOppSide_eq_image2 + theorem AffineSubspace.setOf_wSameSide_eq_image2 + theorem AffineSubspace.wOppSide_comm + theorem AffineSubspace.wOppSide_iff_exists_left + theorem AffineSubspace.wOppSide_iff_exists_right + theorem AffineSubspace.wOppSide_iff_exists_wbtw + theorem AffineSubspace.wOppSide_lineMap_left + theorem AffineSubspace.wOppSide_lineMap_right + theorem AffineSubspace.wOppSide_of_left_mem + theorem AffineSubspace.wOppSide_of_right_mem + theorem AffineSubspace.wOppSide_pointReflection + theorem AffineSubspace.wOppSide_self_iff + theorem AffineSubspace.wOppSide_smul_vsub_vadd_left + theorem AffineSubspace.wOppSide_smul_vsub_vadd_right + theorem AffineSubspace.wOppSide_vadd_left_iff + theorem AffineSubspace.wOppSide_vadd_right_iff + theorem AffineSubspace.wSameSide_and_wOppSide_iff + theorem AffineSubspace.wSameSide_comm + theorem AffineSubspace.wSameSide_iff_exists_left + theorem AffineSubspace.wSameSide_iff_exists_right + theorem AffineSubspace.wSameSide_lineMap_left + theorem AffineSubspace.wSameSide_lineMap_right + theorem AffineSubspace.wSameSide_of_left_mem + theorem AffineSubspace.wSameSide_of_right_mem + theorem AffineSubspace.wSameSide_self_iff + theorem AffineSubspace.wSameSide_smul_vsub_vadd_left + theorem AffineSubspace.wSameSide_smul_vsub_vadd_right + theorem AffineSubspace.wSameSide_vadd_left_iff + theorem AffineSubspace.wSameSide_vadd_right_iff + theorem Function.Injective.sOppSide_map_iff + theorem Function.Injective.sSameSide_map_iff + theorem Function.Injective.wOppSide_map_iff + theorem Function.Injective.wSameSide_map_iff + theorem Sbtw.sOppSide_of_not_mem_of_mem + theorem Wbtw.wOppSide₁₃ + theorem Wbtw.wOppSide₃₁ + theorem Wbtw.wSameSide₁₂ + theorem Wbtw.wSameSide₂₁ + theorem Wbtw.wSameSide₂₃ + theorem Wbtw.wSameSide₃₂ 2023-05-23 07:30:10 4ecc5d5 feat: port Topology.Instances.Irrational (#4244) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Topology/Instances/Irrational.lean + theorem Irrational.eventually_forall_le_dist_cast_div + theorem Irrational.eventually_forall_le_dist_cast_div_of_denom_le + theorem Irrational.eventually_forall_le_dist_cast_rat_of_den_le + theorem dense_irrational + theorem eventually_residual_irrational + theorem isGδ_irrational 2023-05-23 07:30:09 e1328b4 feat: port RingTheory.PowerBasis (#4238) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Logic/IsEmpty.lean Added Mathlib/RingTheory/PowerBasis.lean + theorem IsIntegral.mem_span_pow + theorem PowerBasis.adjoin_eq_top_of_gen_mem_adjoin + theorem PowerBasis.adjoin_gen_eq_top + theorem PowerBasis.aeval_minpolyGen + theorem PowerBasis.algHom_ext + theorem PowerBasis.coe_basis + theorem PowerBasis.constr_pow_aeval + theorem PowerBasis.constr_pow_algebraMap + theorem PowerBasis.constr_pow_gen + theorem PowerBasis.constr_pow_mul + theorem PowerBasis.degree_minpoly + theorem PowerBasis.degree_minpolyGen + theorem PowerBasis.dim_le_degree_of_root + theorem PowerBasis.dim_le_natDegree_of_root + theorem PowerBasis.dim_ne_zero + theorem PowerBasis.dim_pos + theorem PowerBasis.equivOfMinpoly_aeval + theorem PowerBasis.equivOfMinpoly_gen + theorem PowerBasis.equivOfMinpoly_map + theorem PowerBasis.equivOfMinpoly_symm + theorem PowerBasis.equivOfRoot_aeval + theorem PowerBasis.equivOfRoot_gen + theorem PowerBasis.equivOfRoot_map + theorem PowerBasis.equivOfRoot_symm + theorem PowerBasis.exists_eq_aeval' + theorem PowerBasis.exists_eq_aeval + theorem PowerBasis.finiteDimensional + theorem PowerBasis.finrank + theorem PowerBasis.isIntegral_gen + theorem PowerBasis.lift_aeval + theorem PowerBasis.lift_gen + theorem PowerBasis.mem_span_pow' + theorem PowerBasis.mem_span_pow + theorem PowerBasis.minpolyGen_eq + theorem PowerBasis.minpolyGen_map + theorem PowerBasis.minpolyGen_monic + theorem PowerBasis.natDegree_minpoly + theorem PowerBasis.natDegree_minpolyGen + structure PowerBasis + theorem linearIndependent_pow 2023-05-23 07:30:08 22a8c45 feat: port Analysis.Convex.Cone.Basic (#4152) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/Convex/Cone/Basic.lean + theorem Convex.mem_toCone + theorem Convex.mem_to_cone' + theorem Convex.subset_toCone + def Convex.toCone + theorem Convex.toCone_eq_sInf + theorem Convex.toCone_isLeast + theorem ConvexCone.Blunt.anti + theorem ConvexCone.Blunt.salient + def ConvexCone.Blunt + theorem ConvexCone.Flat.mono + theorem ConvexCone.Flat.pointed + def ConvexCone.Flat + theorem ConvexCone.Pointed.mono + def ConvexCone.Pointed + theorem ConvexCone.Salient.anti + def ConvexCone.Salient + theorem ConvexCone.add_mem + theorem ConvexCone.blunt_iff_not_pointed + theorem ConvexCone.blunt_strictlyPositive + theorem ConvexCone.coe_bot + theorem ConvexCone.coe_comap + theorem ConvexCone.coe_iInf + theorem ConvexCone.coe_inf + theorem ConvexCone.coe_mk + theorem ConvexCone.coe_positive + theorem ConvexCone.coe_sInf + theorem ConvexCone.coe_strictlyPositive + theorem ConvexCone.coe_top + theorem ConvexCone.coe_zero + def ConvexCone.comap + theorem ConvexCone.comap_comap + theorem ConvexCone.comap_id + theorem ConvexCone.ext + def ConvexCone.map + theorem ConvexCone.map_id + theorem ConvexCone.map_map + theorem ConvexCone.mem_add + theorem ConvexCone.mem_bot + theorem ConvexCone.mem_comap + theorem ConvexCone.mem_iInf + theorem ConvexCone.mem_inf + theorem ConvexCone.mem_map + theorem ConvexCone.mem_mk + theorem ConvexCone.mem_positive + theorem ConvexCone.mem_sInf + theorem ConvexCone.mem_strictlyPositive + theorem ConvexCone.mem_top + theorem ConvexCone.mem_zero + theorem ConvexCone.pointed_iff_not_blunt + theorem ConvexCone.pointed_positive + theorem ConvexCone.pointed_zero + def ConvexCone.positive + theorem ConvexCone.positive_le_strictlyPositive + theorem ConvexCone.salient_iff_not_flat + theorem ConvexCone.salient_positive + theorem ConvexCone.salient_strictlyPositive + theorem ConvexCone.smul_mem + theorem ConvexCone.smul_mem_iff + def ConvexCone.strictlyPositive + def ConvexCone.toOrderedAddCommGroup + def ConvexCone.toPartialOrder + def ConvexCone.toPreorder + theorem ConvexCone.to_orderedSMul + structure ConvexCone + theorem RieszExtension.exists_top + theorem RieszExtension.step + theorem Submodule.coe_toConvexCone + theorem Submodule.mem_toConvexCone + theorem Submodule.pointed_toConvexCone + def Submodule.toConvexCone + theorem Submodule.toConvexCone_bot + theorem Submodule.toConvexCone_inf + theorem Submodule.toConvexCone_le_iff + theorem Submodule.toConvexCone_top + theorem convexHull_toCone_eq_sInf + theorem convexHull_toCone_isLeast + theorem exists_extension_of_le_sublinear + theorem riesz_extension 2023-05-23 07:30:07 a4dbf4c feat: port LinearAlgebra.Matrix.SpecialLinearGroup (#3710) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/LinearAlgebra/Matrix/SpecialLinearGroup.lean + theorem Matrix.SpecialLinearGroup.SL2_inv_expl + theorem Matrix.SpecialLinearGroup.SL2_inv_expl_det + theorem Matrix.SpecialLinearGroup.coe_int_neg + theorem Matrix.SpecialLinearGroup.coe_inv + theorem Matrix.SpecialLinearGroup.coe_matrix_coe + theorem Matrix.SpecialLinearGroup.coe_mk + theorem Matrix.SpecialLinearGroup.coe_mul + theorem Matrix.SpecialLinearGroup.coe_neg + theorem Matrix.SpecialLinearGroup.coe_one + theorem Matrix.SpecialLinearGroup.coe_pow + theorem Matrix.SpecialLinearGroup.coe_toGL + theorem Matrix.SpecialLinearGroup.det_coe + theorem Matrix.SpecialLinearGroup.det_ne_zero + theorem Matrix.SpecialLinearGroup.ext + theorem Matrix.SpecialLinearGroup.ext_iff + theorem Matrix.SpecialLinearGroup.fin_two_exists_eq_mk_of_apply_zero_one_eq_zero + theorem Matrix.SpecialLinearGroup.fin_two_induction + def Matrix.SpecialLinearGroup.map + theorem Matrix.SpecialLinearGroup.row_ne_zero + def Matrix.SpecialLinearGroup.toGL + def Matrix.SpecialLinearGroup.toLin' + theorem Matrix.SpecialLinearGroup.toLin'_apply + theorem Matrix.SpecialLinearGroup.toLin'_injective + theorem Matrix.SpecialLinearGroup.toLin'_symm_apply + theorem Matrix.SpecialLinearGroup.toLin'_symm_to_linearMap + theorem Matrix.SpecialLinearGroup.toLin'_to_linearMap + def Matrix.SpecialLinearGroup + def ModularGroup.S + def ModularGroup.T + theorem ModularGroup.T_inv_mul_apply_one + theorem ModularGroup.T_mul_apply_one + theorem ModularGroup.T_pow_mul_apply_one + theorem ModularGroup.coe_S + theorem ModularGroup.coe_T + theorem ModularGroup.coe_T_inv + theorem ModularGroup.coe_T_zpow 2023-05-23 04:50:16 c4f284b feat: port LinearAlgebra.AnnihilatingPolynomial (#4252) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/LinearAlgebra/AnnihilatingPolynomial.lean + theorem Polynomial.annIdealGenerator_aeval_eq_zero + theorem Polynomial.annIdealGenerator_eq_minpoly + theorem Polynomial.annIdealGenerator_eq_zero_iff + theorem Polynomial.annIdealGenerator_mem + theorem Polynomial.degree_annIdealGenerator_le_of_mem + theorem Polynomial.mem_annIdeal_iff_aeval_eq_zero + theorem Polynomial.mem_iff_annIdealGenerator_dvd + theorem Polynomial.mem_iff_eq_smul_annIdealGenerator + theorem Polynomial.monic_annIdealGenerator + theorem Polynomial.monic_generator_eq_minpoly + theorem Polynomial.span_singleton_annIdealGenerator 2023-05-23 04:50:15 6292b8e feat: norm num extension for division and succ of naturals (#4090) ESTIMATED CHANGES Modified Mathlib/Tactic/NormNum/Basic.lean + def Mathlib.Meta.NormNum.evalNatDiv + def Mathlib.Meta.NormNum.evalNatSucc + theorem Mathlib.Meta.NormNum.isNat_natDiv + theorem Mathlib.Meta.NormNum.isNat_natSucc Modified test/norm_num.lean 2023-05-23 01:34:39 bd7d776 feat: port FieldTheory.AxGrothendieck (#4237) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/FieldTheory/AxGrothendieck.lean + theorem ax_grothendieck_of_locally_finite 2023-05-22 22:00:44 5afb4f3 feat: port Algebra.AlgebraicCard (#4236) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/AlgebraicCard.lean + theorem Algebraic.aleph0_le_cardinal_mk_of_charZero + theorem Algebraic.cardinal_mk_le_max + theorem Algebraic.cardinal_mk_le_mul + theorem Algebraic.cardinal_mk_lift_le_max + theorem Algebraic.cardinal_mk_lift_le_mul + theorem Algebraic.cardinal_mk_lift_of_infinite + theorem Algebraic.cardinal_mk_of_countble_of_charZero + theorem Algebraic.cardinal_mk_of_infinite + theorem Algebraic.infinite_of_charZero 2023-05-22 22:00:43 bdf3e42 feat: port FieldTheory.Minpoly.Field (#4232) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/FieldTheory/Minpoly/Field.lean + theorem minpoly.add_algebraMap + theorem minpoly.aeval_of_isScalarTower + theorem minpoly.aux_inj_roots_of_min_poly + theorem minpoly.coeff_zero_eq_zero + theorem minpoly.coeff_zero_ne_zero + theorem minpoly.degree_le_of_ne_zero + theorem minpoly.dvd + theorem minpoly.dvd_map_of_isScalarTower + theorem minpoly.dvd_map_of_is_scalar_tower' + theorem minpoly.eq_X_sub_C' + theorem minpoly.eq_X_sub_C + theorem minpoly.eq_of_algebraMap_eq + theorem minpoly.eq_of_irreducible + theorem minpoly.eq_of_irreducible_of_monic + theorem minpoly.ne_zero_of_finite_field_extension + theorem minpoly.one + theorem minpoly.prime + theorem minpoly.root + theorem minpoly.sub_algebraMap + theorem minpoly.unique + theorem minpoly.zero 2023-05-22 22:00:42 cf6dcb5 feat: port Data.Nat.PrimeNormNum (#3892) * Excluding computing `Nat.factors`, which requires a little bit of generalization of `NormNum.Result`. * It's a lot faster than in Lean 3: ``` 2 ^ 19 - 1 is prime: Lean 3: 330ms, Lean 4: 36ms 2 ^ 25 - 39 is prime: Lean 3: 3300ms + multiple seconds type-checking, Lean 4 165ms + <100ms type-checking (2 ^ 19 - 1) * (2 ^ 25 - 39) is not prime: Lean 3: 300ms, Lean 4: 90ms ``` * Simplify the definition of `Nat.minFac` a bit * Added some remarks in the code, explaining why some parts are a bit more verbose than necessary. In these cases, simplifying the code would cause a significant slow-down (my first version of this port was 100x slower). * Note: Calling the function on larger numbers currently does cause panics/stack overflows in Lean 4 ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Data/Nat/Prime.lean +/- def Nat.minFac +/- theorem Nat.minFac_eq Modified Mathlib/Tactic.lean Modified Mathlib/Tactic/NormNum/Basic.lean + theorem Mathlib.Meta.NormNum.ble_eq_false Modified Mathlib/Tactic/NormNum/Core.lean + def Mathlib.Meta.NormNum.BoolResult + def Mathlib.Meta.NormNum.Result.ofBoolResult + def Mathlib.Meta.NormNum.deriveBool + def Mathlib.Meta.NormNum.deriveBoolOfIff + theorem Mathlib.Meta.NormNum.isNat.natElim Added Mathlib/Tactic/NormNum/Prime.lean + theorem Mathlib.Meta.NormNum.MinFacHelper.one_lt + def Mathlib.Meta.NormNum.MinFacHelper + def Mathlib.Meta.NormNum.deriveNotPrime + def Mathlib.Meta.NormNum.evalNatPrime + theorem Mathlib.Meta.NormNum.isNat_minFac_1 + theorem Mathlib.Meta.NormNum.isNat_minFac_2 + theorem Mathlib.Meta.NormNum.isNat_minFac_3 + theorem Mathlib.Meta.NormNum.isNat_minFac_4 + theorem Mathlib.Meta.NormNum.isNat_not_prime + theorem Mathlib.Meta.NormNum.isNat_prime_0 + theorem Mathlib.Meta.NormNum.isNat_prime_1 + theorem Mathlib.Meta.NormNum.isNat_prime_2 + theorem Mathlib.Meta.NormNum.minFacHelper_0 + theorem Mathlib.Meta.NormNum.minFacHelper_1 + theorem Mathlib.Meta.NormNum.minFacHelper_2 + theorem Mathlib.Meta.NormNum.minFacHelper_3 + theorem Mathlib.Meta.NormNum.not_prime_mul_of_ble Modified test/norm_num_ext.lean 2023-05-22 21:43:52 66dca25 feat: port Algebra.Category.Ring.Instances (#4185) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Category/Ring/Instances.lean + theorem IsLocalization.epi + theorem isLocalRingHom_of_iso 2023-05-22 21:00:53 20f9f92 feat: port Data.Real.Irrational (#4234) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Data/Real/Irrational.lean + theorem Int.not_irrational + theorem Irrational.add_cases + theorem Irrational.add_int + theorem Irrational.add_nat + theorem Irrational.add_rat + theorem Irrational.div_cases + theorem Irrational.div_int + theorem Irrational.div_nat + theorem Irrational.div_rat + theorem Irrational.int_add + theorem Irrational.int_div + theorem Irrational.int_mul + theorem Irrational.int_sub + theorem Irrational.mul_cases + theorem Irrational.mul_int + theorem Irrational.mul_nat + theorem Irrational.mul_rat + theorem Irrational.nat_add + theorem Irrational.nat_div + theorem Irrational.nat_mul + theorem Irrational.nat_sub + theorem Irrational.ne_int + theorem Irrational.ne_nat + theorem Irrational.ne_one + theorem Irrational.ne_rat + theorem Irrational.ne_zero + theorem Irrational.of_add_int + theorem Irrational.of_add_nat + theorem Irrational.of_add_rat + theorem Irrational.of_div_int + theorem Irrational.of_div_nat + theorem Irrational.of_div_rat + theorem Irrational.of_int_add + theorem Irrational.of_int_div + theorem Irrational.of_int_mul + theorem Irrational.of_int_sub + theorem Irrational.of_inv + theorem Irrational.of_mul_int + theorem Irrational.of_mul_nat + theorem Irrational.of_mul_rat + theorem Irrational.of_mul_self + theorem Irrational.of_nat_add + theorem Irrational.of_nat_div + theorem Irrational.of_nat_mul + theorem Irrational.of_nat_sub + theorem Irrational.of_neg + theorem Irrational.of_one_div + theorem Irrational.of_pow + theorem Irrational.of_rat_add + theorem Irrational.of_rat_div + theorem Irrational.of_rat_mul + theorem Irrational.of_rat_sub + theorem Irrational.of_sub_int + theorem Irrational.of_sub_nat + theorem Irrational.of_sub_rat + theorem Irrational.of_zpow + theorem Irrational.rat_add + theorem Irrational.rat_div + theorem Irrational.rat_mul + theorem Irrational.rat_sub + theorem Irrational.sub_int + theorem Irrational.sub_nat + theorem Irrational.sub_rat + def Irrational + theorem Nat.Prime.irrational_sqrt + theorem Nat.not_irrational + theorem Rat.not_irrational + theorem Transcendental.irrational + theorem exists_irrational_btwn + theorem irrational_add_int_iff + theorem irrational_add_nat_iff + theorem irrational_add_rat_iff + theorem irrational_div_int_iff + theorem irrational_div_nat_iff + theorem irrational_div_rat_iff + theorem irrational_iff_ne_rational + theorem irrational_int_add_iff + theorem irrational_int_div_iff + theorem irrational_int_mul_iff + theorem irrational_int_sub_iff + theorem irrational_inv_iff + theorem irrational_mul_int_iff + theorem irrational_mul_nat_iff + theorem irrational_mul_rat_iff + theorem irrational_nat_add_iff + theorem irrational_nat_div_iff + theorem irrational_nat_mul_iff + theorem irrational_nat_sub_iff + theorem irrational_neg_iff + theorem irrational_nrt_of_n_not_dvd_multiplicity + theorem irrational_nrt_of_notint_nrt + theorem irrational_rat_add_iff + theorem irrational_rat_div_iff + theorem irrational_rat_mul_iff + theorem irrational_rat_sub_iff + theorem irrational_sqrt_of_multiplicity_odd + theorem irrational_sqrt_rat_iff + theorem irrational_sqrt_two + theorem irrational_sub_int_iff + theorem irrational_sub_nat_iff + theorem irrational_sub_rat_iff + theorem one_lt_natDegree_of_irrational_root 2023-05-22 19:47:16 9e514c7 feat: port LinearAlgebra.BilinearForm.TensorProduct (#4233) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/LinearAlgebra/BilinearForm/TensorProduct.lean + def BilinForm.tensorDistrib + theorem BilinForm.tensorDistribEquiv_apply + theorem BilinForm.tensorDistrib_tmul 2023-05-22 19:15:02 d4dbf92 feat: port Dynamics.Ergodic.Conservative (#4230) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Dynamics/Ergodic/Conservative.lean + theorem MeasureTheory.Conservative.ae_forall_image_mem_imp_frequently_image_mem + theorem MeasureTheory.Conservative.ae_frequently_mem_of_mem_nhds + theorem MeasureTheory.Conservative.ae_mem_imp_frequently_image_mem + theorem MeasureTheory.Conservative.exists_gt_measure_inter_ne_zero + theorem MeasureTheory.Conservative.frequently_ae_mem_and_frequently_image_mem + theorem MeasureTheory.Conservative.frequently_measure_inter_ne_zero + theorem MeasureTheory.Conservative.inter_frequently_image_mem_ae_eq + theorem MeasureTheory.Conservative.measure_inter_frequently_image_mem_eq + theorem MeasureTheory.Conservative.measure_mem_forall_ge_image_not_mem_eq_zero + structure MeasureTheory.Conservative 2023-05-22 19:15:01 d911e50 feat: port Analysis.Calculus.Fderiv.Equiv (#4210) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/Calculus/FDeriv/Equiv.lean + theorem ContinuousLinearEquiv.comp_differentiableAt_iff + theorem ContinuousLinearEquiv.comp_differentiableOn_iff + theorem ContinuousLinearEquiv.comp_differentiableWithinAt_iff + theorem ContinuousLinearEquiv.comp_differentiable_iff + theorem ContinuousLinearEquiv.comp_fderiv + theorem ContinuousLinearEquiv.comp_fderivWithin + theorem ContinuousLinearEquiv.comp_hasFDerivAt_iff' + theorem ContinuousLinearEquiv.comp_hasFDerivAt_iff + theorem ContinuousLinearEquiv.comp_hasFDerivWithinAt_iff' + theorem ContinuousLinearEquiv.comp_hasFDerivWithinAt_iff + theorem ContinuousLinearEquiv.comp_hasStrictFDerivAt_iff + theorem ContinuousLinearEquiv.comp_right_differentiableAt_iff + theorem ContinuousLinearEquiv.comp_right_differentiableOn_iff + theorem ContinuousLinearEquiv.comp_right_differentiableWithinAt_iff + theorem ContinuousLinearEquiv.comp_right_differentiable_iff + theorem ContinuousLinearEquiv.comp_right_fderiv + theorem ContinuousLinearEquiv.comp_right_fderivWithin + theorem ContinuousLinearEquiv.comp_right_hasFDerivAt_iff' + theorem ContinuousLinearEquiv.comp_right_hasFDerivAt_iff + theorem ContinuousLinearEquiv.comp_right_hasFDerivWithinAt_iff' + theorem ContinuousLinearEquiv.comp_right_hasFDerivWithinAt_iff + theorem ContinuousLinearEquiv.uniqueDiffOn_image + theorem ContinuousLinearEquiv.uniqueDiffOn_image_iff + theorem ContinuousLinearEquiv.uniqueDiffOn_preimage_iff + theorem HasFDerivAt.eventually_ne + theorem HasFDerivAt.lim_real + theorem HasFDerivAt.of_local_left_inverse + theorem HasFDerivWithinAt.eventually_ne + theorem HasFDerivWithinAt.mapsTo_tangent_cone + theorem HasFDerivWithinAt.uniqueDiffWithinAt + theorem HasFDerivWithinAt.uniqueDiffWithinAt_of_continuousLinearEquiv + theorem HasStrictFDerivAt.of_local_left_inverse + theorem LinearIsometryEquiv.comp_differentiableAt_iff + theorem LinearIsometryEquiv.comp_differentiableOn_iff + theorem LinearIsometryEquiv.comp_differentiableWithinAt_iff + theorem LinearIsometryEquiv.comp_differentiable_iff + theorem LinearIsometryEquiv.comp_fderiv + theorem LinearIsometryEquiv.comp_fderivWithin + theorem LinearIsometryEquiv.comp_hasFDerivAt_iff' + theorem LinearIsometryEquiv.comp_hasFDerivAt_iff + theorem LinearIsometryEquiv.comp_hasFDerivWithinAt_iff' + theorem LinearIsometryEquiv.comp_hasFDerivWithinAt_iff + theorem LinearIsometryEquiv.comp_hasStrictFDerivAt_iff + theorem LocalHomeomorph.hasFDerivAt_symm + theorem LocalHomeomorph.hasStrictFDerivAt_symm + theorem UniqueDiffOn.image + theorem has_fderiv_at_filter_real_equiv 2023-05-22 19:15:00 6210e2d feat: port NumberTheory.LegendreSymbol.ZModChar (#4205) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/NumberTheory/LegendreSymbol/ZModChar.lean + theorem ZMod.isQuadratic_χ₄ + theorem ZMod.isQuadratic_χ₈' + theorem ZMod.isQuadratic_χ₈ + theorem ZMod.neg_one_pow_div_two_of_one_mod_four + theorem ZMod.neg_one_pow_div_two_of_three_mod_four + theorem ZMod.test + def ZMod.χ₄ + theorem ZMod.χ₄_eq_neg_one_pow + theorem ZMod.χ₄_int_eq_if_mod_four + theorem ZMod.χ₄_int_mod_four + theorem ZMod.χ₄_int_one_mod_four + theorem ZMod.χ₄_int_three_mod_four + theorem ZMod.χ₄_nat_eq_if_mod_four + theorem ZMod.χ₄_nat_mod_four + theorem ZMod.χ₄_nat_one_mod_four + theorem ZMod.χ₄_nat_three_mod_four + def ZMod.χ₈' + theorem ZMod.χ₈'_eq_χ₄_mul_χ₈ + theorem ZMod.χ₈'_int_eq_if_mod_eight + theorem ZMod.χ₈'_int_eq_χ₄_mul_χ₈ + theorem ZMod.χ₈'_nat_eq_if_mod_eight + def ZMod.χ₈ + theorem ZMod.χ₈_int_eq_if_mod_eight + theorem ZMod.χ₈_int_mod_eight + theorem ZMod.χ₈_nat_eq_if_mod_eight + theorem ZMod.χ₈_nat_mod_eight 2023-05-22 19:14:58 76a0306 feat: port Algebra.Category.GroupWithZero (#3962) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Category/GroupWithZeroCat.lean + def GroupWithZeroCat.Iso.mk + theorem GroupWithZeroCat.coe_comp + theorem GroupWithZeroCat.coe_id + theorem GroupWithZeroCat.forget_map + def GroupWithZeroCat.of + def GroupWithZeroCat 2023-05-22 18:54:16 7715520 feat: port RingTheory.Algebraic (#4217) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/RingTheory/Algebraic.lean + theorem AlgEquiv.isAlgebraic + theorem AlgEquiv.isAlgebraic_iff + theorem AlgHom.bijective + theorem Algebra.IsAlgebraic.algHom_bijective + def Algebra.IsAlgebraic + theorem Algebra.isAlgebraic_iff + theorem Algebra.isAlgebraic_of_finite + theorem Algebra.isAlgebraic_of_larger_base + theorem Algebra.isAlgebraic_of_larger_base_of_injective + theorem Algebra.isAlgebraic_trans + theorem Algebra.isIntegral_of_finite + def IsAlgebraic + theorem IsIntegral.isAlgebraic + theorem IsIntegralClosure.exists_smul_eq_mul + theorem Polynomial.algebraMap_pi_eq_aeval + theorem Polynomial.algebraMap_pi_self_eq_eval + def Polynomial.hasSMulPi + def Subalgebra.IsAlgebraic + theorem Subalgebra.inv_mem_of_algebraic + theorem Subalgebra.inv_mem_of_root_of_coeff_zero_ne_zero + theorem Subalgebra.isAlgebraic_iff + theorem Subalgebra.isField_of_algebraic + theorem Transcendental.pow + def Transcendental + theorem exists_integral_multiple + theorem inv_eq_of_aeval_divX_ne_zero + theorem inv_eq_of_root_of_coeff_zero_ne_zero + theorem isAlgebraic_algHom_of_isAlgebraic + theorem isAlgebraic_algebraMap + theorem isAlgebraic_algebraMap_iff + theorem isAlgebraic_algebraMap_of_isAlgebraic + theorem isAlgebraic_iff_isIntegral + theorem isAlgebraic_iff_not_injective + theorem isAlgebraic_int + theorem isAlgebraic_nat + theorem isAlgebraic_of_larger_base + theorem isAlgebraic_of_larger_base_of_injective + theorem isAlgebraic_of_mem_rootSet + theorem isAlgebraic_of_pow + theorem isAlgebraic_one + theorem isAlgebraic_rat + theorem isAlgebraic_zero + theorem is_transcendental_of_subsingleton + theorem polynomial_smul_apply' + theorem polynomial_smul_apply 2023-05-22 18:54:15 d22d5a0 feat: port RingTheory.PowerSeries.WellKnown (#4215) - [x] depends on: #4167 ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/RingTheory/PowerSeries/WellKnown.lean + theorem PowerSeries.coeff_cos_bit0 + theorem PowerSeries.coeff_cos_bit1 + theorem PowerSeries.coeff_exp + theorem PowerSeries.coeff_invUnitsSub + theorem PowerSeries.coeff_sin_bit0 + theorem PowerSeries.coeff_sin_bit1 + theorem PowerSeries.constantCoeff_exp + theorem PowerSeries.constantCoeff_invUnitsSub + def PowerSeries.cos + def PowerSeries.exp + theorem PowerSeries.exp_mul_exp_eq_exp_add + theorem PowerSeries.exp_mul_exp_neg_eq_one + theorem PowerSeries.exp_pow_eq_rescale_exp + theorem PowerSeries.exp_pow_sum + def PowerSeries.invUnitsSub + theorem PowerSeries.invUnitsSub_mul_X + theorem PowerSeries.invUnitsSub_mul_sub + theorem PowerSeries.map_cos + theorem PowerSeries.map_exp + theorem PowerSeries.map_invUnitsSub + theorem PowerSeries.map_sin + def PowerSeries.sin 2023-05-22 18:54:13 60fa900 feat: port MeasureTheory.Integral.LebesgueNormedSpace (#4189) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/MeasureTheory/Integral/LebesgueNormedSpace.lean + theorem aemeasurable_withDensity_iff 2023-05-22 18:33:52 b079bbf feat: port FieldTheory.Minpoly.Basic (#4216) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/FieldTheory/Minpoly/Basic.lean + theorem minpoly.aeval + theorem minpoly.aeval_ne_zero_of_dvdNotUnit_minpoly + theorem minpoly.degree_pos + theorem minpoly.eq_X_sub_C_of_algebraMap_inj + theorem minpoly.eq_zero + theorem minpoly.irreducible + theorem minpoly.map_ne_one + theorem minpoly.mem_range_of_degree_eq_one + theorem minpoly.min + theorem minpoly.minpoly_algEquiv + theorem minpoly.minpoly_algHom + theorem minpoly.monic + theorem minpoly.natDegree_pos + theorem minpoly.ne_one + theorem minpoly.ne_zero + theorem minpoly.not_isUnit + theorem minpoly.subsingleton + theorem minpoly.unique' 2023-05-22 18:33:51 18d81fb feat: port Analysis.Calculus.Fderiv.Add (#4211) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/Calculus/FDeriv/Add.lean + theorem Differentiable.add + theorem Differentiable.add_const + theorem Differentiable.const_add + theorem Differentiable.const_smul + theorem Differentiable.const_sub + theorem Differentiable.neg + theorem Differentiable.sub + theorem Differentiable.sub_const + theorem Differentiable.sum + theorem DifferentiableAt.add + theorem DifferentiableAt.add_const + theorem DifferentiableAt.const_add + theorem DifferentiableAt.const_smul + theorem DifferentiableAt.const_sub + theorem DifferentiableAt.neg + theorem DifferentiableAt.sub + theorem DifferentiableAt.sub_const + theorem DifferentiableAt.sum + theorem DifferentiableOn.add + theorem DifferentiableOn.add_const + theorem DifferentiableOn.const_add + theorem DifferentiableOn.const_smul + theorem DifferentiableOn.const_sub + theorem DifferentiableOn.neg + theorem DifferentiableOn.sub + theorem DifferentiableOn.sub_const + theorem DifferentiableOn.sum + theorem DifferentiableWithinAt.add + theorem DifferentiableWithinAt.add_const + theorem DifferentiableWithinAt.const_add + theorem DifferentiableWithinAt.const_smul + theorem DifferentiableWithinAt.const_sub + theorem DifferentiableWithinAt.neg + theorem DifferentiableWithinAt.sub + theorem DifferentiableWithinAt.sub_const + theorem DifferentiableWithinAt.sum + theorem HasFDerivAt.sum + theorem HasFDerivAtFilter.add_const + theorem HasFDerivAtFilter.const_add + theorem HasFDerivAtFilter.const_smul + theorem HasFDerivAtFilter.const_sub + theorem HasFDerivAtFilter.neg + theorem HasFDerivAtFilter.sub + theorem HasFDerivAtFilter.sub_const + theorem HasFDerivAtFilter.sum + theorem HasFDerivWithinAt.sum + theorem HasStrictFDerivAt.add_const + theorem HasStrictFDerivAt.const_add + theorem HasStrictFDerivAt.const_smul + theorem HasStrictFDerivAt.const_sub + theorem HasStrictFDerivAt.neg + theorem HasStrictFDerivAt.sub + theorem HasStrictFDerivAt.sub_const + theorem HasStrictFDerivAt.sum + theorem differentiableAt_add_const_iff + theorem differentiableAt_const_add_iff + theorem differentiableAt_const_sub_iff + theorem differentiableAt_neg_iff + theorem differentiableAt_sub_const_iff + theorem differentiableOn_add_const_iff + theorem differentiableOn_const_add_iff + theorem differentiableOn_const_sub_iff + theorem differentiableOn_neg_iff + theorem differentiableOn_sub_const_iff + theorem differentiableWithinAt_add_const_iff + theorem differentiableWithinAt_const_add_iff + theorem differentiableWithinAt_const_sub_iff + theorem differentiableWithinAt_neg_iff + theorem differentiableWithinAt_sub_const_iff + theorem differentiable_add_const_iff + theorem differentiable_const_add_iff + theorem differentiable_const_sub_iff + theorem differentiable_neg_iff + theorem differentiable_sub_const_iff + theorem fderivWithin_add + theorem fderivWithin_add_const + theorem fderivWithin_const_add + theorem fderivWithin_const_smul + theorem fderivWithin_const_sub + theorem fderivWithin_neg + theorem fderivWithin_sub + theorem fderivWithin_sub_const + theorem fderivWithin_sum + theorem fderiv_add + theorem fderiv_add_const + theorem fderiv_const_add + theorem fderiv_const_smul + theorem fderiv_const_sub + theorem fderiv_neg + theorem fderiv_sub + theorem fderiv_sub_const + theorem fderiv_sum 2023-05-22 18:33:50 c851d27 feat: port Analysis.Calculus.Fderiv.Prod (#4208) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/Calculus/FDeriv/Prod.lean + theorem Differentiable.prod + theorem DifferentiableAt.fderivWithin_prod + theorem DifferentiableAt.fderiv_prod + theorem DifferentiableAt.prod + theorem DifferentiableOn.prod + theorem DifferentiableWithinAt.prod + theorem HasFDerivAtFilter.prod + theorem differentiableAt_fst + theorem differentiableAt_pi + theorem differentiableAt_snd + theorem differentiableOn_fst + theorem differentiableOn_pi + theorem differentiableOn_snd + theorem differentiableWithinAt_fst + theorem differentiableWithinAt_pi + theorem differentiableWithinAt_snd + theorem differentiable_fst + theorem differentiable_pi + theorem differentiable_snd + theorem fderiv.fst + theorem fderiv.snd + theorem fderivWithin.fst + theorem fderivWithin.snd + theorem fderivWithin_fst + theorem fderivWithin_pi + theorem fderivWithin_snd + theorem fderiv_fst + theorem fderiv_pi + theorem fderiv_snd + theorem hasFDerivAtFilter_fst + theorem hasFDerivAtFilter_pi' + theorem hasFDerivAtFilter_pi + theorem hasFDerivAtFilter_snd + theorem hasFDerivAt_fst + theorem hasFDerivAt_pi' + theorem hasFDerivAt_pi + theorem hasFDerivAt_prod_mk_left + theorem hasFDerivAt_prod_mk_right + theorem hasFDerivAt_snd + theorem hasFDerivWithinAt_fst + theorem hasFDerivWithinAt_pi' + theorem hasFDerivWithinAt_pi + theorem hasFDerivWithinAt_snd + theorem hasStrictFDerivAt_fst + theorem hasStrictFDerivAt_pi' + theorem hasStrictFDerivAt_pi + theorem hasStrictFDerivAt_snd 2023-05-22 18:33:49 314e4d6 feat: port Topology.VectorBundle.Constructions (#4207) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Topology/VectorBundle/Constructions.lean + theorem Bundle.Trivial.trivialization.coordChangeL + theorem Trivialization.continuousLinearEquivAt_prod + theorem Trivialization.coordChangeL_prod + theorem Trivialization.prod_apply 2023-05-22 18:33:48 7d99d4a feat: port MeasureTheory.Function.SpecialFunctions.IsROrC (#4194) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/MeasureTheory/Function/SpecialFunctions/IsROrC.lean + theorem AEMeasurable.im + theorem AEMeasurable.re + theorem IsROrC.measurable_im + theorem IsROrC.measurable_of_real + theorem IsROrC.measurable_re + theorem Measurable.im + theorem Measurable.re + theorem aemeasurable_of_re_im + theorem measurable_of_re_im 2023-05-22 18:01:20 e5bc933 feat: port MeasureTheory.Measure.Content (#4198) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/MeasureTheory/Measure/Content.lean + def MeasureTheory.Content.ContentRegular + theorem MeasureTheory.Content.apply_eq_coe_toFun + theorem MeasureTheory.Content.borel_le_caratheodory + theorem MeasureTheory.Content.contentRegular_exists_compact + theorem MeasureTheory.Content.empty + def MeasureTheory.Content.innerContent + theorem MeasureTheory.Content.innerContent_bot + theorem MeasureTheory.Content.innerContent_comap + theorem MeasureTheory.Content.innerContent_exists_compact + theorem MeasureTheory.Content.innerContent_iSup_nat + theorem MeasureTheory.Content.innerContent_iUnion_nat + theorem MeasureTheory.Content.innerContent_le + theorem MeasureTheory.Content.innerContent_mono' + theorem MeasureTheory.Content.innerContent_mono + theorem MeasureTheory.Content.innerContent_of_isCompact + theorem MeasureTheory.Content.innerContent_pos_of_is_mul_left_invariant + theorem MeasureTheory.Content.is_mul_left_invariant_innerContent + theorem MeasureTheory.Content.is_mul_left_invariant_outerMeasure + theorem MeasureTheory.Content.le_innerContent + theorem MeasureTheory.Content.le_outerMeasure_compacts + theorem MeasureTheory.Content.lt_top + theorem MeasureTheory.Content.measure_apply + theorem MeasureTheory.Content.measure_eq_content_of_regular + theorem MeasureTheory.Content.mono + theorem MeasureTheory.Content.outerMeasure_caratheodory + theorem MeasureTheory.Content.outerMeasure_eq_iInf + theorem MeasureTheory.Content.outerMeasure_exists_compact + theorem MeasureTheory.Content.outerMeasure_exists_open + theorem MeasureTheory.Content.outerMeasure_interior_compacts + theorem MeasureTheory.Content.outerMeasure_le + theorem MeasureTheory.Content.outerMeasure_lt_top_of_isCompact + theorem MeasureTheory.Content.outerMeasure_of_isOpen + theorem MeasureTheory.Content.outerMeasure_opens + theorem MeasureTheory.Content.outerMeasure_pos_of_is_mul_left_invariant + theorem MeasureTheory.Content.outerMeasure_preimage + theorem MeasureTheory.Content.sup_disjoint + theorem MeasureTheory.Content.sup_le + structure MeasureTheory.Content 2023-05-22 18:01:18 1c2bf60 feat: port MeasureTheory.Integral.RieszMarkovKakutani (#4195) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/MeasureTheory/Integral/RieszMarkovKakutani.lean + theorem exists_lt_rieszContentAux_add_pos + def rieszContentAux + theorem rieszContentAux_le + theorem rieszContentAux_mono + theorem rieszContentAux_sup_le + theorem riesz_content_aux_image_nonempty 2023-05-22 18:01:17 99234da feat: port Analysis.LocallyConvex.StrongTopology (#4193) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/LocallyConvex/StrongTopology.lean + theorem ContinuousLinearMap.strongTopology.locallyConvexSpace 2023-05-22 18:01:16 6bc7d71 feat: port Topology.MetricSpace.ThickenedIndicator (#4191) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Topology/MetricSpace/ThickenedIndicator.lean + theorem continuous_thickenedIndicatorAux + theorem indicator_le_thickenedIndicator + theorem indicator_le_thickenedIndicatorAux + theorem thickenedIndicator.coeFn_eq_comp + def thickenedIndicator + def thickenedIndicatorAux + theorem thickenedIndicatorAux_closure_eq + theorem thickenedIndicatorAux_le_one + theorem thickenedIndicatorAux_lt_top + theorem thickenedIndicatorAux_mono + theorem thickenedIndicatorAux_one + theorem thickenedIndicatorAux_one_of_mem_closure + theorem thickenedIndicatorAux_subset + theorem thickenedIndicatorAux_tendsto_indicator_closure + theorem thickenedIndicatorAux_zero + theorem thickenedIndicator_le_one + theorem thickenedIndicator_mono + theorem thickenedIndicator_one + theorem thickenedIndicator_one_of_mem_closure + theorem thickenedIndicator_subset + theorem thickenedIndicator_tendsto_indicator_closure + theorem thickenedIndicator_zero 2023-05-22 18:01:15 e8f2fcb feat: port RingTheory.DiscreteValuationRing.Basic (#4156) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/RingTheory/DiscreteValuationRing/Basic.lean + theorem DiscreteValuationRing.HasUnitMulPowIrreducibleFactorization.of_ufd_of_unique_irreducible + theorem DiscreteValuationRing.HasUnitMulPowIrreducibleFactorization.toUniqueFactorizationMonoid + theorem DiscreteValuationRing.HasUnitMulPowIrreducibleFactorization.unique_irreducible + def DiscreteValuationRing.HasUnitMulPowIrreducibleFactorization + theorem DiscreteValuationRing.addVal_add + theorem DiscreteValuationRing.addVal_def' + theorem DiscreteValuationRing.addVal_def + theorem DiscreteValuationRing.addVal_eq_top_iff + theorem DiscreteValuationRing.addVal_le_iff_dvd + theorem DiscreteValuationRing.addVal_mul + theorem DiscreteValuationRing.addVal_one + theorem DiscreteValuationRing.addVal_pow + theorem DiscreteValuationRing.addVal_uniformizer + theorem DiscreteValuationRing.addVal_zero + theorem DiscreteValuationRing.associated_of_irreducible + theorem DiscreteValuationRing.associated_pow_irreducible + theorem DiscreteValuationRing.aux_pid_of_ufd_of_unique_irreducible + theorem DiscreteValuationRing.eq_unit_mul_pow_irreducible + theorem DiscreteValuationRing.exists_irreducible + theorem DiscreteValuationRing.exists_prime + theorem DiscreteValuationRing.ideal_eq_span_pow_irreducible + theorem DiscreteValuationRing.iff_pid_with_one_nonzero_prime + theorem DiscreteValuationRing.irreducible_iff_uniformizer + theorem DiscreteValuationRing.irreducible_of_span_eq_maximalIdeal + theorem DiscreteValuationRing.not_a_field + theorem DiscreteValuationRing.not_isField + theorem DiscreteValuationRing.ofHasUnitMulPowIrreducibleFactorization + theorem DiscreteValuationRing.of_ufd_of_unique_irreducible + theorem DiscreteValuationRing.unit_mul_pow_congr_pow + theorem DiscreteValuationRing.unit_mul_pow_congr_unit + theorem Irreducible.maximalIdeal_eq 2023-05-22 18:01:14 bea2d58 ci: Use full URLs in maintainer merge messages (#4108) ESTIMATED CHANGES Modified .github/workflows/maintainer_merge_comment.yml Modified .github/workflows/maintainer_merge_review.yml Modified .github/workflows/maintainer_merge_review_comment.yml 2023-05-22 18:01:13 2b47ec0 chore: forward-port leanprover-community/mathlib#18983 (#4001) ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Measure/MeasureSpace.lean + theorem MeasureTheory.Measure.toOuterMeasure_top + theorem MeasureTheory.OuterMeasure.toMeasure_top Modified Mathlib/MeasureTheory/Measure/OuterMeasure.lean + theorem MeasureTheory.OuterMeasure.boundedBy_top + theorem MeasureTheory.OuterMeasure.boundedBy_zero + theorem MeasureTheory.OuterMeasure.trim_top + theorem MeasureTheory.extend_top 2023-05-22 18:01:12 06326c9 feat: port RingTheory.WittVector.WittPolynomial (#3355) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/RingTheory/WittVector/WittPolynomial.lean + theorem aeval_wittPolynomial + theorem bind₁_wittPolynomial_xInTermsOfW + theorem bind₁_xInTermsOfW_wittPolynomial + theorem constantCoeff_wittPolynomial + theorem constantCoeff_xInTermsOfW + theorem map_wittPolynomial + theorem wittPolynomial_eq_sum_c_mul_x_pow + theorem wittPolynomial_one + theorem wittPolynomial_vars + theorem wittPolynomial_vars_subset + theorem wittPolynomial_zMod_self + theorem wittPolynomial_zero + theorem xInTermsOfW_aux + theorem xInTermsOfW_eq + theorem xInTermsOfW_vars_aux + theorem xInTermsOfW_vars_subset + theorem xInTermsOfW_zero 2023-05-22 17:42:44 6cae3a6 feat: port Algebra.DualQuaternion (#4225) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/DualQuaternion.lean + def Quaternion.dualNumberEquiv + theorem Quaternion.fst_imI_dualNumberEquiv_symm + theorem Quaternion.fst_imJ_dualNumberEquiv_symm + theorem Quaternion.fst_imK_dualNumberEquiv_symm + theorem Quaternion.fst_re_dualNumberEquiv_symm + theorem Quaternion.imI_fst_dualNumberEquiv + theorem Quaternion.imI_snd_dualNumberEquiv + theorem Quaternion.imJ_fst_dualNumberEquiv + theorem Quaternion.imJ_snd_dualNumberEquiv + theorem Quaternion.imK_fst_dualNumberEquiv + theorem Quaternion.imK_snd_dualNumberEquiv + theorem Quaternion.re_fst_dualNumberEquiv + theorem Quaternion.re_snd_dualNumberEquiv + theorem Quaternion.snd_imI_dualNumberEquiv_symm + theorem Quaternion.snd_imJ_dualNumberEquiv_symm + theorem Quaternion.snd_imK_dualNumberEquiv_symm + theorem Quaternion.snd_re_dualNumberEquiv_symm 2023-05-22 17:42:43 3b415f2 feat: port RingTheory.GradedAlgebra.Radical (#4223) There is a long proof in this file that needs `maxHeartbeats 300000` to complete ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/RingTheory/GradedAlgebra/Radical.lean + theorem HomogeneousIdeal.coe_radical + def HomogeneousIdeal.radical + theorem Ideal.IsHomogeneous.isPrime_iff + theorem Ideal.IsHomogeneous.isPrime_of_homogeneous_mem_or_mem + theorem Ideal.IsHomogeneous.radical + theorem Ideal.IsHomogeneous.radical_eq + theorem Ideal.IsPrime.homogeneousCore 2023-05-22 17:42:41 e91e8b9 feat: port MeasureTheory.Constructions.BorelSpace.Metrizable (#4222) easy port, only needed to change some names and small proof fixes ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/MeasureTheory/Constructions/BorelSpace/Metrizable.lean + theorem aemeasurable_of_tendsto_metrizable_ae' + theorem aemeasurable_of_tendsto_metrizable_ae + theorem aemeasurable_of_unif_approx + theorem measurable_limit_of_tendsto_metrizable_ae + theorem measurable_of_tendsto_ennreal' + theorem measurable_of_tendsto_ennreal + theorem measurable_of_tendsto_metrizable' + theorem measurable_of_tendsto_metrizable + theorem measurable_of_tendsto_metrizable_ae + theorem measurable_of_tendsto_nnreal' + theorem measurable_of_tendsto_nnreal 2023-05-22 17:42:39 0dabbb5 feat: port Analysis.Convex.StrictConvexBetween (#4220) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/Convex/StrictConvexBetween.lean + theorem Collinear.sbtw_of_dist_eq_of_dist_lt + theorem Collinear.wbtw_of_dist_eq_of_dist_le + theorem Sbtw.dist_lt_max_dist + theorem Wbtw.dist_le_max_dist 2023-05-22 17:42:37 c05164f feat: port LinearAlgebra.Coevaluation (#4219) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/LinearAlgebra/Coevaluation.lean + def coevaluation + theorem coevaluation_apply_one + theorem contractLeft_assoc_coevaluation' + theorem contractLeft_assoc_coevaluation 2023-05-22 17:42:36 7df74eb fix: remove unneeded LibrarySearch import in RingTheory/Artinian.lean (#4218) Removes an unneeded import that was accidentally included in #4104 ESTIMATED CHANGES Modified Mathlib/RingTheory/Artinian.lean 2023-05-22 17:42:34 f32d52b chore: fix a name, protect (#4212) * Rename `ContinuousLinearMap.hasStrictFderivAt` to `ContinuousLinearMap.hasStrictFDerivAt`. * Protect some theorems in `Analysis/Calculus/FDeriv/Basic`. ESTIMATED CHANGES Modified Mathlib/Analysis/Calculus/FDeriv/Basic.lean - theorem DifferentiableAt.fderivWithin - theorem HasCompactSupport.fderiv - theorem HasFDerivAt.fderiv - theorem HasFDerivWithinAt.fderivWithin - theorem HasFDerivWithinAt.nhdsWithin Modified Mathlib/Analysis/Calculus/FDeriv/Linear.lean 2023-05-22 17:42:33 69632ee feat: port LinearAlgebra.BilinearForm (#4202) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/LinearAlgebra/BilinearForm.lean + theorem BilinForm.IsAdjointPair.add + theorem BilinForm.IsAdjointPair.comp + theorem BilinForm.IsAdjointPair.eq + theorem BilinForm.IsAdjointPair.mul + theorem BilinForm.IsAdjointPair.smul + theorem BilinForm.IsAdjointPair.sub + def BilinForm.IsAdjointPair + theorem BilinForm.IsAlt.isRefl + theorem BilinForm.IsAlt.neg_eq + theorem BilinForm.IsAlt.ortho_comm + theorem BilinForm.IsAlt.self_eq_zero + def BilinForm.IsAlt + def BilinForm.IsOrtho + def BilinForm.IsPairSelfAdjoint + theorem BilinForm.IsRefl.eq_zero + theorem BilinForm.IsRefl.ortho_comm + def BilinForm.IsRefl + def BilinForm.IsSelfAdjoint + def BilinForm.IsSkewAdjoint + theorem BilinForm.IsSymm.isRefl + theorem BilinForm.IsSymm.ortho_comm + def BilinForm.IsSymm + theorem BilinForm.Nondegenerate.congr + theorem BilinForm.Nondegenerate.ker_eq_bot + theorem BilinForm.Nondegenerate.ne_zero + def BilinForm.Nondegenerate + theorem BilinForm.add_apply + theorem BilinForm.add_left + theorem BilinForm.add_right + theorem BilinForm.apply_dualBasis_left + theorem BilinForm.apply_dualBasis_right + def BilinForm.coeFnAddMonoidHom + theorem BilinForm.coeFn_congr + theorem BilinForm.coeFn_mk + theorem BilinForm.coe_add + theorem BilinForm.coe_injective + theorem BilinForm.coe_neg + theorem BilinForm.coe_smul + theorem BilinForm.coe_sub + theorem BilinForm.coe_zero + def BilinForm.comp + def BilinForm.compLeft + theorem BilinForm.compLeft_apply + theorem BilinForm.compLeft_compRight + theorem BilinForm.compLeft_id + theorem BilinForm.compLeft_injective + def BilinForm.compRight + theorem BilinForm.compRight_apply + theorem BilinForm.compRight_compLeft + theorem BilinForm.compRight_id + theorem BilinForm.comp_apply + theorem BilinForm.comp_comp + theorem BilinForm.comp_congr + theorem BilinForm.comp_id_id + theorem BilinForm.comp_id_left + theorem BilinForm.comp_id_right + theorem BilinForm.comp_inj + theorem BilinForm.comp_symmCompOfNondegenerate_apply + def BilinForm.congr + theorem BilinForm.congr_apply + theorem BilinForm.congr_comp + theorem BilinForm.congr_congr + theorem BilinForm.congr_fun + theorem BilinForm.congr_refl + theorem BilinForm.congr_symm + theorem BilinForm.congr_trans + theorem BilinForm.dualBasis_repr_apply + theorem BilinForm.ext + theorem BilinForm.ext_basis + theorem BilinForm.ext_iff + theorem BilinForm.finrank_add_finrank_orthogonal + def BilinForm.flipHom + def BilinForm.flipHomAux + theorem BilinForm.flip_apply + theorem BilinForm.flip_flip + theorem BilinForm.flip_flip_aux + theorem BilinForm.iIsOrtho.nondegenerate_iff_not_isOrtho_basis_self + theorem BilinForm.iIsOrtho.not_isOrtho_basis_self_of_nondegenerate + def BilinForm.iIsOrtho + theorem BilinForm.iIsOrtho_def + theorem BilinForm.isAdjointPairLeftAdjointOfNondegenerate + theorem BilinForm.isAdjointPair_id + theorem BilinForm.isAdjointPair_iff_compLeft_eq_compRight + theorem BilinForm.isAdjointPair_iff_eq_of_nondegenerate + theorem BilinForm.isAdjointPair_unique_of_nondegenerate + theorem BilinForm.isAdjointPair_zero + theorem BilinForm.isAlt_neg + theorem BilinForm.isAlt_zero + theorem BilinForm.isCompl_span_singleton_orthogonal + theorem BilinForm.isOrtho_def + theorem BilinForm.isOrtho_smul_left + theorem BilinForm.isOrtho_smul_right + theorem BilinForm.isOrtho_zero_left + theorem BilinForm.isOrtho_zero_right + def BilinForm.isPairSelfAdjointSubmodule + theorem BilinForm.isPairSelfAdjoint_equiv + theorem BilinForm.isRefl_neg + theorem BilinForm.isRefl_zero + theorem BilinForm.isSkewAdjoint_iff_neg_self_adjoint + theorem BilinForm.isSymm_iff_flip' + theorem BilinForm.isSymm_neg + theorem BilinForm.isSymm_zero + theorem BilinForm.le_orthogonal_orthogonal + def BilinForm.linMulLin + theorem BilinForm.linMulLin_apply + theorem BilinForm.linMulLin_comp + theorem BilinForm.linMulLin_compLeft + theorem BilinForm.linMulLin_compRight + theorem BilinForm.linearIndependent_of_iIsOrtho + theorem BilinForm.mem_isPairSelfAdjointSubmodule + theorem BilinForm.mem_orthogonal_iff + theorem BilinForm.mem_selfAdjointSubmodule + theorem BilinForm.mem_skewAdjointSubmodule + theorem BilinForm.ne_zero_of_not_isOrtho_self + theorem BilinForm.neg_apply + theorem BilinForm.neg_left + theorem BilinForm.neg_right + theorem BilinForm.nondegenerateRestrictOfDisjointOrthogonal + theorem BilinForm.nondegenerate_congr_iff + theorem BilinForm.nondegenerate_iff_ker_eq_bot + theorem BilinForm.not_nondegenerate_zero + def BilinForm.orthogonal + theorem BilinForm.orthogonal_le + theorem BilinForm.orthogonal_span_singleton_eq_toLin_ker + def BilinForm.restrict + theorem BilinForm.restrictOrthogonalSpanSingletonNondegenerate + theorem BilinForm.restrictSymm + theorem BilinForm.restrict_nondegenerate_iff_isCompl_orthogonal + theorem BilinForm.restrict_nondegenerate_of_isCompl_orthogonal + def BilinForm.selfAdjointSubmodule + def BilinForm.skewAdjointSubmodule + theorem BilinForm.smul_apply + theorem BilinForm.smul_left + theorem BilinForm.smul_right + theorem BilinForm.span_singleton_inf_orthogonal_eq_bot + theorem BilinForm.span_singleton_sup_orthogonal_eq_top + theorem BilinForm.sub_apply + theorem BilinForm.sub_left + theorem BilinForm.sub_right + theorem BilinForm.sum_left + theorem BilinForm.sum_repr_mul_repr_mul + theorem BilinForm.sum_right + theorem BilinForm.symmCompOfNondegenerate_left_apply + theorem BilinForm.toDual_def + theorem BilinForm.toLin'Flip_apply + theorem BilinForm.toLin'_apply + def BilinForm.toLin + def BilinForm.toLinHom + def BilinForm.toLinHomAux₁ + def BilinForm.toLinHomAux₂ + def BilinForm.toLinHomFlip + theorem BilinForm.toLin_apply + theorem BilinForm.toLin_restrict_ker_eq_inf_orthogonal + theorem BilinForm.toLin_restrict_range_dualCoannihilator_eq_orthogonal + theorem BilinForm.toLin_symm + theorem BilinForm.zero_apply + theorem BilinForm.zero_left + theorem BilinForm.zero_right + structure BilinForm + def LinearMap.compBilinForm + def LinearMap.toBilin + def LinearMap.toBilinAux + theorem LinearMap.toBilinAux_eq + theorem LinearMap.toBilin_symm 2023-05-22 17:42:31 b8d6cde feat: port RingTheory.Localization.AsSubring (#4201) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/RingTheory/Localization/AsSubring.lean + theorem Localization.mapToFractionRing_apply + theorem Localization.map_isUnit_of_le + theorem Localization.mem_range_mapToFractionRing_iff + theorem Localization.subalgebra.mem_range_mapToFractionRing_iff_ofField 2023-05-22 17:42:30 75a6e21 feat: port Algebra.QuaternionBasis (#4199) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/QuaternionBasis.lean + def QuaternionAlgebra.Basis.compHom + theorem QuaternionAlgebra.Basis.i_mul_k + theorem QuaternionAlgebra.Basis.j_mul_k + theorem QuaternionAlgebra.Basis.k_mul_i + theorem QuaternionAlgebra.Basis.k_mul_j + theorem QuaternionAlgebra.Basis.k_mul_k + def QuaternionAlgebra.Basis.lift + def QuaternionAlgebra.Basis.liftHom + theorem QuaternionAlgebra.Basis.lift_add + theorem QuaternionAlgebra.Basis.lift_mul + theorem QuaternionAlgebra.Basis.lift_one + theorem QuaternionAlgebra.Basis.lift_smul + theorem QuaternionAlgebra.Basis.lift_zero + structure QuaternionAlgebra.Basis + def QuaternionAlgebra.lift 2023-05-22 16:36:10 b6c4100 feat: port RingTheory.IntegralClosure (#4196) I tried to fix what I could, but this contains a lot of `sorries`! ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Algebra/Subalgebra/Basic.lean Added Mathlib/RingTheory/IntegralClosure.lean + theorem Algebra.IsIntegral.finite + theorem Algebra.IsIntegral.isField_iff_isField + theorem Algebra.IsIntegral.of_finite + theorem Algebra.finite_iff_isIntegral_and_finiteType + theorem FG_adjoin_of_finite + theorem FG_adjoin_singleton_of_integral + theorem IsIntegral.algebraMap + theorem IsIntegral.det + theorem IsIntegral.multiset_prod + theorem IsIntegral.multiset_sum + theorem IsIntegral.nsmul + theorem IsIntegral.pow + theorem IsIntegral.pow_iff + theorem IsIntegral.prod + theorem IsIntegral.sum + theorem IsIntegral.tmul + theorem IsIntegral.zsmul + def IsIntegral + theorem IsIntegralClosure.algebraMap_equiv + theorem IsIntegralClosure.algebraMap_injective + theorem IsIntegralClosure.algebraMap_lift + theorem IsIntegralClosure.algebraMap_mk' + theorem IsIntegralClosure.isIntegral_algebra + theorem IsIntegralClosure.mk'_add + theorem IsIntegralClosure.mk'_algebraMap + theorem IsIntegralClosure.mk'_mul + theorem IsIntegralClosure.mk'_one + theorem IsIntegralClosure.mk'_zero + theorem IsIntegralClosure.noZeroSMulDivisors + theorem Module.End.isIntegral + theorem RingHom.Finite.to_isIntegral + theorem RingHom.IsIntegral.to_finite + def RingHom.IsIntegral + def RingHom.IsIntegralElem + theorem RingHom.finite_iff_isIntegral_and_finiteType + theorem RingHom.isIntegralElem_leadingCoeff_mul + theorem RingHom.isIntegralElem_of_isIntegralElem_comp + theorem RingHom.isIntegral_of_surjective + theorem RingHom.isIntegral_quotient_of_isIntegral + theorem RingHom.isIntegral_tower_top_of_isIntegral + theorem RingHom.isIntegral_trans + theorem RingHom.is_integral_add + theorem RingHom.is_integral_map + theorem RingHom.is_integral_mul + theorem RingHom.is_integral_neg + theorem RingHom.is_integral_of_is_integral_mul_unit + theorem RingHom.is_integral_of_mem_closure + theorem RingHom.is_integral_one + theorem RingHom.is_integral_sub + theorem RingHom.is_integral_zero + theorem adjoin_le_integralClosure + theorem integralClosure.isIntegral + def integralClosure + theorem integralClosure_idem + theorem integralClosure_map_algEquiv + theorem isField_of_isIntegral_of_isField' + theorem isField_of_isIntegral_of_isField + theorem isIntegral_add + theorem isIntegral_algEquiv + theorem isIntegral_algHom_iff + theorem isIntegral_algebraMap + theorem isIntegral_algebraMap_iff + theorem isIntegral_iff_isIntegral_closure_finite + theorem isIntegral_leadingCoeff_smul + theorem isIntegral_map_of_comp_eq_of_isIntegral + theorem isIntegral_mul + theorem isIntegral_neg + theorem isIntegral_ofSubring + theorem isIntegral_of_isIntegral_mul_unit + theorem isIntegral_of_isScalarTower + theorem isIntegral_of_mem_closure' + theorem isIntegral_of_mem_closure + theorem isIntegral_of_mem_of_FG + theorem isIntegral_of_noetherian + theorem isIntegral_of_pow + theorem isIntegral_of_smul_mem_submodule + theorem isIntegral_of_submodule_noetherian + theorem isIntegral_of_surjective + theorem isIntegral_one + theorem isIntegral_quotientMap_iff + theorem isIntegral_quotient_of_isIntegral + theorem isIntegral_smul + theorem isIntegral_sub + theorem isIntegral_sup + theorem isIntegral_tower_bot_of_isIntegral + theorem isIntegral_tower_bot_of_isIntegral_field + theorem isIntegral_tower_top_of_isIntegral + theorem isIntegral_trans + theorem isIntegral_trans_aux + theorem isIntegral_zero + theorem isNoetherian_adjoin_finset + theorem is_integral_of_mem_closure'' + theorem le_integralClosure_iff_isIntegral + theorem leadingCoeff_smul_normalizeScaleRoots + theorem map_isIntegral + theorem map_isIntegral_int + theorem mem_integralClosure_iff_mem_FG + theorem normalizeScaleRoots_coeff_mul_leadingCoeff_pow + theorem normalizeScaleRoots_degree + theorem normalizeScaleRoots_eval₂_leadingCoeff_mul + theorem normalizeScaleRoots_monic + theorem normalizeScaleRoots_support + theorem roots_mem_integralClosure 2023-05-22 16:36:08 a68b0a8 feat: port Topology.UrysohnsBounded (#4190) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Topology/UrysohnsBounded.lean + theorem exists_bounded_mem_Icc_of_closed_of_le + theorem exists_bounded_zero_one_of_closed 2023-05-22 16:36:06 6744080 feat: port LinearAlgebra.Matrix.Dual (#4188) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/LinearAlgebra/Matrix/Dual.lean + theorem LinearMap.toMatrix_transpose + theorem Matrix.toLin_transpose 2023-05-22 16:36:03 2acd194 feat: port Topology.VectorBundle.Basic (#4187) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Topology/VectorBundle/Basic.lean + def Bundle.zeroSection + theorem Bundle.zeroSection_proj + theorem Bundle.zeroSection_snd + def ContinuousLinearMap.inCoordinates + theorem ContinuousLinearMap.inCoordinates_eq + theorem Pretrivialization.coe_linearMapAt + theorem Pretrivialization.coe_linearMapAt_of_mem + theorem Pretrivialization.linear + def Pretrivialization.linearEquivAt + theorem Pretrivialization.linearMapAt_apply + theorem Pretrivialization.linearMapAt_def_of_mem + theorem Pretrivialization.linearMapAt_def_of_not_mem + theorem Pretrivialization.linearMapAt_eq_zero + theorem Pretrivialization.linearMapAt_symmₗ + theorem Pretrivialization.symmₗ_linearMapAt + theorem Trivialization.apply_eq_prod_continuousLinearEquivAt + theorem Trivialization.apply_symm_apply_eq_coordChangeL + theorem Trivialization.coe_continuousLinearEquivAt_eq + theorem Trivialization.coe_coordChangeL' + theorem Trivialization.coe_coordChangeL + theorem Trivialization.coe_linearMapAt + theorem Trivialization.coe_linearMapAt_of_mem + theorem Trivialization.coe_symmₗ + theorem Trivialization.comp_continuousLinearEquivAt_eq_coord_change + def Trivialization.continuousLinearEquivAt + theorem Trivialization.continuousLinearEquivAt_apply' + def Trivialization.continuousLinearMapAt + theorem Trivialization.continuousLinearMapAt_symmL + def Trivialization.coordChangeL + theorem Trivialization.coordChangeL_apply' + theorem Trivialization.coordChangeL_apply + theorem Trivialization.coordChangeL_symm_apply + def Trivialization.linearEquivAt + theorem Trivialization.linearEquivAt_apply + theorem Trivialization.linearEquivAt_symm_apply + theorem Trivialization.linearMapAt_apply + theorem Trivialization.linearMapAt_def_of_mem + theorem Trivialization.linearMapAt_def_of_not_mem + theorem Trivialization.linearMapAt_symmₗ + theorem Trivialization.mk_coordChangeL + def Trivialization.symmL + theorem Trivialization.symmL_continuousLinearMapAt + theorem Trivialization.symm_apply_eq_mk_continuousLinearEquivAt_symm + theorem Trivialization.symm_continuousLinearEquivAt_eq + theorem Trivialization.symm_coordChangeL + theorem Trivialization.symmₗ_linearMapAt + def VectorBundleCore.Base + def VectorBundleCore.Fiber + def VectorBundleCore.Index + theorem VectorBundleCore.baseSet_at + theorem VectorBundleCore.coe_coordChange + theorem VectorBundleCore.continuous_proj + theorem VectorBundleCore.coordChange_linear_comp + theorem VectorBundleCore.isOpenMap_proj + def VectorBundleCore.localTriv + def VectorBundleCore.localTrivAt + theorem VectorBundleCore.localTrivAt_apply + theorem VectorBundleCore.localTrivAt_apply_mk + theorem VectorBundleCore.localTrivAt_def + theorem VectorBundleCore.localTriv_apply + theorem VectorBundleCore.localTriv_continuousLinearMapAt + theorem VectorBundleCore.localTriv_coordChange_eq + theorem VectorBundleCore.localTriv_symmL + theorem VectorBundleCore.localTriv_symm_apply + theorem VectorBundleCore.localTriv_symm_fst + theorem VectorBundleCore.mem_localTrivAt_baseSet + theorem VectorBundleCore.mem_localTriv_source + theorem VectorBundleCore.mem_localTriv_target + theorem VectorBundleCore.mem_source_at + theorem VectorBundleCore.mem_trivChange_source + def VectorBundleCore.toFiberBundleCore + def VectorBundleCore.trivChange + theorem VectorBundleCore.trivializationAt_continuousLinearMapAt + theorem VectorBundleCore.trivializationAt_coordChange_eq + theorem VectorBundleCore.trivializationAt_symmL + structure VectorBundleCore + theorem VectorPrebundle.continuousOn_coordChange + theorem VectorPrebundle.continuous_totalSpaceMk + def VectorPrebundle.coordChange + theorem VectorPrebundle.coordChange_apply + def VectorPrebundle.fiberTopology + theorem VectorPrebundle.inducing_totalSpaceMk + theorem VectorPrebundle.linear_trivializationOfMemPretrivializationAtlas + theorem VectorPrebundle.mem_trivialization_at_source + theorem VectorPrebundle.mk_coordChange + def VectorPrebundle.toFiberBundle + def VectorPrebundle.toFiberPrebundle + theorem VectorPrebundle.to_vectorBundle + theorem VectorPrebundle.totalSpaceMk_preimage_source + def VectorPrebundle.totalSpaceTopology + def VectorPrebundle.trivializationOfMemPretrivializationAtlas + structure VectorPrebundle + theorem continuousOn_coordChange + def trivialVectorBundleCore 2023-05-22 16:36:01 7634824 feat: port Analysis.Calculus.FDeriv.RestrictScalars (#4186) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/Calculus/FDeriv/RestrictScalars.lean + theorem Differentiable.restrictScalars + theorem DifferentiableAt.fderiv_restrictScalars + theorem DifferentiableAt.restrictScalars + theorem DifferentiableOn.restrictScalars + theorem DifferentiableWithinAt.restrictScalars + theorem HasFDerivAt.restrictScalars + theorem HasFDerivAtFilter.restrictScalars + theorem HasFDerivWithinAt.restrictScalars + theorem HasStrictFDerivAt.restrictScalars + theorem differentiableAt_iff_restrictScalars + theorem differentiableWithinAt_iff_restrictScalars + theorem hasFDerivAt_of_restrictScalars + theorem hasFDerivWithinAt_of_restrictScalars 2023-05-22 16:35:58 d02b929 feat: port Analysis.Calculus.Fderiv.Comp (#4184) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/Calculus/FDeriv/Comp.lean + theorem Differentiable.comp + theorem Differentiable.comp_differentiableOn + theorem DifferentiableAt.comp + theorem DifferentiableAt.comp_differentiableWithinAt + theorem DifferentiableOn.comp + theorem DifferentiableWithinAt.comp' + theorem DifferentiableWithinAt.comp + theorem HasFDerivAt.comp + theorem HasFDerivAt.comp_hasFDerivWithinAt + theorem HasFDerivAtFilter.comp + theorem HasFDerivWithinAt.comp + theorem HasFDerivWithinAt.comp_of_mem + theorem fderiv.comp + theorem fderiv.comp_fderivWithin + theorem fderivWithin.comp + theorem fderivWithin.comp₃ + theorem fderivWithin_fderivWithin 2023-05-22 16:35:54 de4c745 feat: port Topology.Sheaves.PUnit (#4173) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Topology/Sheaves/PUnit.lean + theorem TopCat.Presheaf.isSheaf_iff_isTerminal_of_indiscrete + theorem TopCat.Presheaf.isSheaf_of_isTerminal_of_indiscrete + theorem TopCat.Presheaf.isSheaf_on_pUnit_iff_isTerminal + theorem TopCat.Presheaf.isSheaf_on_pUnit_of_isTerminal 2023-05-22 16:35:52 3d92471 feat: port RingTheory.PowerSeries.Basic (#4167) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/RingTheory/PowerSeries/Basic.lean + def MvPolynomial.coeToMvPowerSeries.algHom + theorem MvPolynomial.coeToMvPowerSeries.algHom_apply + def MvPolynomial.coeToMvPowerSeries.ringHom + theorem MvPolynomial.coeToMvPowerSeries.ringHom_apply + theorem MvPolynomial.coe_C + theorem MvPolynomial.coe_X + theorem MvPolynomial.coe_add + theorem MvPolynomial.coe_bit0 + theorem MvPolynomial.coe_bit1 + theorem MvPolynomial.coe_def + theorem MvPolynomial.coe_eq_one_iff + theorem MvPolynomial.coe_eq_zero_iff + theorem MvPolynomial.coe_inj + theorem MvPolynomial.coe_injective + theorem MvPolynomial.coe_monomial + theorem MvPolynomial.coe_mul + theorem MvPolynomial.coe_one + theorem MvPolynomial.coe_pow + theorem MvPolynomial.coe_zero + theorem MvPolynomial.coeff_coe + def MvPolynomial.toMvPowerSeries + def MvPowerSeries.C + theorem MvPowerSeries.C_inv + def MvPowerSeries.X + theorem MvPowerSeries.X_def + theorem MvPowerSeries.X_dvd_iff + theorem MvPowerSeries.X_inj + theorem MvPowerSeries.X_inv + theorem MvPowerSeries.X_pow_dvd_iff + theorem MvPowerSeries.X_pow_eq + theorem MvPowerSeries.algebraMap_apply'' + theorem MvPowerSeries.algebraMap_apply' + theorem MvPowerSeries.algebraMap_apply + theorem MvPowerSeries.c_eq_algebraMap + def MvPowerSeries.coeff + theorem MvPowerSeries.coeff_C + theorem MvPowerSeries.coeff_C_mul + theorem MvPowerSeries.coeff_X + theorem MvPowerSeries.coeff_X_pow + theorem MvPowerSeries.coeff_add_monomial_mul + theorem MvPowerSeries.coeff_add_mul_monomial + theorem MvPowerSeries.coeff_comp_monomial + theorem MvPowerSeries.coeff_index_single_X + theorem MvPowerSeries.coeff_index_single_self_X + theorem MvPowerSeries.coeff_inv + theorem MvPowerSeries.coeff_invOfUnit + theorem MvPowerSeries.coeff_inv_aux + theorem MvPowerSeries.coeff_map + theorem MvPowerSeries.coeff_monomial + theorem MvPowerSeries.coeff_monomial_mul + theorem MvPowerSeries.coeff_monomial_ne + theorem MvPowerSeries.coeff_monomial_same + theorem MvPowerSeries.coeff_mul + theorem MvPowerSeries.coeff_mul_C + theorem MvPowerSeries.coeff_mul_monomial + theorem MvPowerSeries.coeff_one + theorem MvPowerSeries.coeff_smul + theorem MvPowerSeries.coeff_trunc + theorem MvPowerSeries.coeff_truncFun + theorem MvPowerSeries.coeff_zero + theorem MvPowerSeries.coeff_zero_C + theorem MvPowerSeries.coeff_zero_X + theorem MvPowerSeries.coeff_zero_X_mul + theorem MvPowerSeries.coeff_zero_eq_constantCoeff + theorem MvPowerSeries.coeff_zero_eq_constantCoeff_apply + theorem MvPowerSeries.coeff_zero_mul_X + theorem MvPowerSeries.coeff_zero_one + theorem MvPowerSeries.commute_X + theorem MvPowerSeries.commute_monomial + def MvPowerSeries.constantCoeff + theorem MvPowerSeries.constantCoeff_C + theorem MvPowerSeries.constantCoeff_X + theorem MvPowerSeries.constantCoeff_comp_C + theorem MvPowerSeries.constantCoeff_inv + theorem MvPowerSeries.constantCoeff_invOfUnit + theorem MvPowerSeries.constantCoeff_map + theorem MvPowerSeries.constantCoeff_one + theorem MvPowerSeries.constantCoeff_zero + theorem MvPowerSeries.eq_of_coeff_monomial_ne_zero + theorem MvPowerSeries.ext + theorem MvPowerSeries.ext_iff + def MvPowerSeries.invOfUnit + theorem MvPowerSeries.invOfUnit_eq' + theorem MvPowerSeries.invOfUnit_eq + theorem MvPowerSeries.inv_eq_zero + theorem MvPowerSeries.isUnit_constantCoeff + def MvPowerSeries.map + theorem MvPowerSeries.map_C + theorem MvPowerSeries.map_X + theorem MvPowerSeries.map_comp + theorem MvPowerSeries.map_id + theorem MvPowerSeries.map_monomial + def MvPowerSeries.monomial + theorem MvPowerSeries.monomial_def + theorem MvPowerSeries.monomial_mul_monomial + theorem MvPowerSeries.monomial_zero_eq_C + theorem MvPowerSeries.monomial_zero_eq_C_apply + theorem MvPowerSeries.monomial_zero_one + theorem MvPowerSeries.mul_invOfUnit + theorem MvPowerSeries.smul_eq_C_mul + theorem MvPowerSeries.smul_inv + def MvPowerSeries.trunc + def MvPowerSeries.truncFun + theorem MvPowerSeries.trunc_c + theorem MvPowerSeries.trunc_one + theorem MvPowerSeries.zero_inv + def MvPowerSeries + def Polynomial.ToPowerSeries + def Polynomial.coeToPowerSeries.algHom + theorem Polynomial.coeToPowerSeries.algHom_apply + def Polynomial.coeToPowerSeries.ringHom + theorem Polynomial.coeToPowerSeries.ringHom_apply + theorem Polynomial.coe_C + theorem Polynomial.coe_X + theorem Polynomial.coe_add + theorem Polynomial.coe_bit0 + theorem Polynomial.coe_bit1 + theorem Polynomial.coe_def + theorem Polynomial.coe_eq_one_iff + theorem Polynomial.coe_eq_zero_iff + theorem Polynomial.coe_inj + theorem Polynomial.coe_injective + theorem Polynomial.coe_monomial + theorem Polynomial.coe_mul + theorem Polynomial.coe_one + theorem Polynomial.coe_pow + theorem Polynomial.coe_zero + theorem Polynomial.coeff_coe + theorem Polynomial.constantCoeff_coe + def PowerSeries.C + theorem PowerSeries.C_eq_algebraMap + theorem PowerSeries.C_inv + def PowerSeries.X + theorem PowerSeries.X_dvd_iff + theorem PowerSeries.X_eq + theorem PowerSeries.X_inv + theorem PowerSeries.X_ne_zero + theorem PowerSeries.X_pow_dvd_iff + theorem PowerSeries.X_pow_eq + theorem PowerSeries.X_pow_order_dvd + theorem PowerSeries.X_prime + theorem PowerSeries.algebraMap_apply'' + theorem PowerSeries.algebraMap_apply' + theorem PowerSeries.algebraMap_apply + def PowerSeries.coeff + theorem PowerSeries.coeff_C + theorem PowerSeries.coeff_C_mul + theorem PowerSeries.coeff_C_mul_X_pow + theorem PowerSeries.coeff_X + theorem PowerSeries.coeff_X_pow + theorem PowerSeries.coeff_X_pow_mul' + theorem PowerSeries.coeff_X_pow_mul + theorem PowerSeries.coeff_X_pow_self + theorem PowerSeries.coeff_comp_monomial + theorem PowerSeries.coeff_def + theorem PowerSeries.coeff_inv + theorem PowerSeries.coeff_invOfUnit + theorem PowerSeries.coeff_inv_aux + theorem PowerSeries.coeff_map + theorem PowerSeries.coeff_mk + theorem PowerSeries.coeff_monomial + theorem PowerSeries.coeff_monomial_same + theorem PowerSeries.coeff_mul + theorem PowerSeries.coeff_mul_C + theorem PowerSeries.coeff_mul_X_pow' + theorem PowerSeries.coeff_mul_X_pow + theorem PowerSeries.coeff_mul_of_lt_order + theorem PowerSeries.coeff_mul_one_sub_of_lt_order + theorem PowerSeries.coeff_mul_prod_one_sub_of_lt_order + theorem PowerSeries.coeff_of_lt_order + theorem PowerSeries.coeff_one + theorem PowerSeries.coeff_one_X + theorem PowerSeries.coeff_order + theorem PowerSeries.coeff_rescale + theorem PowerSeries.coeff_smul + theorem PowerSeries.coeff_succ_X_mul + theorem PowerSeries.coeff_succ_mul_X + theorem PowerSeries.coeff_trunc + theorem PowerSeries.coeff_zero_C + theorem PowerSeries.coeff_zero_X + theorem PowerSeries.coeff_zero_X_mul + theorem PowerSeries.coeff_zero_eq_constantCoeff + theorem PowerSeries.coeff_zero_eq_constantCoeff_apply + theorem PowerSeries.coeff_zero_mul_X + theorem PowerSeries.coeff_zero_one + theorem PowerSeries.commute_X + def PowerSeries.constantCoeff + theorem PowerSeries.constantCoeff_C + theorem PowerSeries.constantCoeff_X + theorem PowerSeries.constantCoeff_comp_C + theorem PowerSeries.constantCoeff_inv + theorem PowerSeries.constantCoeff_invOfUnit + theorem PowerSeries.constantCoeff_one + theorem PowerSeries.constantCoeff_zero + theorem PowerSeries.eq_X_mul_shift_add_const + theorem PowerSeries.eq_inv_iff_mul_eq_one + theorem PowerSeries.eq_mul_inv_iff_mul_eq + theorem PowerSeries.eq_shift_mul_X_add_const + theorem PowerSeries.eq_zero_or_eq_zero_of_mul_eq_zero + theorem PowerSeries.evalNegHom_X + theorem PowerSeries.exists_coeff_ne_zero_iff_ne_zero + theorem PowerSeries.ext + theorem PowerSeries.ext_iff + def PowerSeries.invOfUnit + theorem PowerSeries.invOfUnit_eq' + theorem PowerSeries.invOfUnit_eq + theorem PowerSeries.inv_eq_iff_mul_eq_one + theorem PowerSeries.inv_eq_inv_aux + theorem PowerSeries.inv_eq_zero + theorem PowerSeries.isUnit_constantCoeff + theorem PowerSeries.le_order + theorem PowerSeries.le_order_add + def PowerSeries.map + theorem PowerSeries.map_C + theorem PowerSeries.map_X + theorem PowerSeries.map_comp + theorem PowerSeries.map_id + def PowerSeries.mk + def PowerSeries.monomial + theorem PowerSeries.monomial_eq_mk + theorem PowerSeries.monomial_zero_eq_C + theorem PowerSeries.monomial_zero_eq_C_apply + theorem PowerSeries.mul_invOfUnit + theorem PowerSeries.nat_le_order + def PowerSeries.order + theorem PowerSeries.order_X + theorem PowerSeries.order_X_pow + theorem PowerSeries.order_add_of_order_eq + theorem PowerSeries.order_eq + theorem PowerSeries.order_eq_multiplicity_X + theorem PowerSeries.order_eq_nat + theorem PowerSeries.order_eq_top + theorem PowerSeries.order_finite_iff_ne_zero + theorem PowerSeries.order_le + theorem PowerSeries.order_monomial + theorem PowerSeries.order_monomial_of_ne_zero + theorem PowerSeries.order_mul + theorem PowerSeries.order_mul_ge + theorem PowerSeries.order_one + theorem PowerSeries.order_zero + theorem PowerSeries.rescale_X + theorem PowerSeries.rescale_injective + theorem PowerSeries.rescale_mk + theorem PowerSeries.rescale_mul + theorem PowerSeries.rescale_neg_one_X + theorem PowerSeries.rescale_one + theorem PowerSeries.rescale_rescale + theorem PowerSeries.rescale_zero + theorem PowerSeries.rescale_zero_apply + theorem PowerSeries.smul_eq_C_mul + theorem PowerSeries.smul_inv + theorem PowerSeries.span_X_isPrime + theorem PowerSeries.sub_const_eq_X_mul_shift + theorem PowerSeries.sub_const_eq_shift_mul_X + def PowerSeries.trunc + theorem PowerSeries.trunc_C + theorem PowerSeries.trunc_add + theorem PowerSeries.trunc_one + theorem PowerSeries.trunc_zero + theorem PowerSeries.zero_inv + def PowerSeries 2023-05-22 16:35:50 02858e2 feat: port Order.Interval (#3360) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Order/Interval.lean + theorem Interval.bot_ne_pure + def Interval.coeHom + theorem Interval.coe_bot + theorem Interval.coe_coe + theorem Interval.coe_dual + theorem Interval.coe_iInf + theorem Interval.coe_iInf₂ + theorem Interval.coe_inf + theorem Interval.coe_inj + theorem Interval.coe_injective + theorem Interval.coe_pure + theorem Interval.coe_sInf + theorem Interval.coe_sSubset_coe + theorem Interval.coe_subset_coe + theorem Interval.coe_top + theorem Interval.disjoint_coe + def Interval.dual + theorem Interval.dual_bot + theorem Interval.dual_map + theorem Interval.dual_pure + theorem Interval.dual_top + def Interval.map + theorem Interval.map_map + theorem Interval.map_pure + theorem Interval.mem_pure + theorem Interval.mem_pure_self + def Interval.pure + theorem Interval.pure_injective + theorem Interval.pure_ne_bot + theorem Interval.subset_coe_map + theorem Interval.«exists» + theorem Interval.«forall» + def Interval + def NonemptyInterval.coeHom + theorem NonemptyInterval.coe_coeHom + theorem NonemptyInterval.coe_dual + theorem NonemptyInterval.coe_eq_pure + theorem NonemptyInterval.coe_nonempty + theorem NonemptyInterval.coe_pure + theorem NonemptyInterval.coe_pure_interval + theorem NonemptyInterval.coe_ssubset_coe + theorem NonemptyInterval.coe_subset_coe + theorem NonemptyInterval.coe_sup_interval + theorem NonemptyInterval.coe_top + theorem NonemptyInterval.coe_top_interval + def NonemptyInterval.dual + theorem NonemptyInterval.dual_map + theorem NonemptyInterval.dual_map₂ + theorem NonemptyInterval.dual_pure + theorem NonemptyInterval.dual_top + theorem NonemptyInterval.ext + theorem NonemptyInterval.ext_iff + theorem NonemptyInterval.fst_dual + theorem NonemptyInterval.fst_sup + theorem NonemptyInterval.le_def + def NonemptyInterval.map + theorem NonemptyInterval.map_map + theorem NonemptyInterval.map_pure + def NonemptyInterval.map₂ + theorem NonemptyInterval.map₂_pure + theorem NonemptyInterval.mem_coe_interval + theorem NonemptyInterval.mem_def + theorem NonemptyInterval.mem_mk + theorem NonemptyInterval.mem_pure + theorem NonemptyInterval.mem_pure_self + def NonemptyInterval.pure + theorem NonemptyInterval.pure_injective + theorem NonemptyInterval.snd_dual + theorem NonemptyInterval.snd_sup + theorem NonemptyInterval.subset_coe_map + def NonemptyInterval.toDualProd + def NonemptyInterval.toDualProdHom + theorem NonemptyInterval.toDualProd_apply + theorem NonemptyInterval.toDualProd_injective + theorem NonemptyInterval.toProd_injective + structure NonemptyInterval Modified Mathlib/Order/WithBot.lean 2023-05-22 12:09:30 c6afc89 feat: port RingTheory.Localization.Cardinality (#4192) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/RingTheory/Localization/Cardinality.lean + theorem IsLocalization.card + theorem IsLocalization.card_le 2023-05-22 12:09:29 f9055df feat: port LinearAlgebra.Contraction (#4124) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/LinearAlgebra/Contraction.lean + theorem comp_dualTensorHom + def contractLeft + theorem contractLeft_apply + def contractRight + theorem contractRight_apply + def dualTensorHom + theorem dualTensorHomEquivOfBasis_apply + theorem dualTensorHomEquivOfBasis_symm_cancel_left + theorem dualTensorHomEquivOfBasis_symm_cancel_right + theorem dualTensorHomEquivOfBasis_toLinearMap + theorem dualTensorHom_apply + theorem dualTensorHom_prodMap_zero + theorem homTensorHomEquiv_apply + theorem homTensorHomEquiv_toLinearMap + theorem lTensorHomEquivHomLTensor_apply + theorem lTensorHomEquivHomLTensor_toLinearMap + theorem map_dualTensorHom + theorem rTensorHomEquivHomRTensor_apply + theorem rTensorHomEquivHomRTensor_toLinearMap + theorem toMatrix_dualTensorHom + theorem transpose_dualTensorHom + theorem zero_prodMap_dualTensorHom Modified Mathlib/LinearAlgebra/DirectSum/TensorProduct.lean Modified Mathlib/LinearAlgebra/TensorProduct.lean + theorem LinearMap.coe_lTensorHom - theorem LinearMap.coe_ltensorHom + theorem LinearMap.coe_rTensorHom - theorem LinearMap.coe_rtensorHom + def LinearMap.lTensor + def LinearMap.lTensorHom + theorem LinearMap.lTensor_add + theorem LinearMap.lTensor_comp + theorem LinearMap.lTensor_comp_apply + theorem LinearMap.lTensor_comp_map + theorem LinearMap.lTensor_comp_rTensor + theorem LinearMap.lTensor_id + theorem LinearMap.lTensor_id_apply + theorem LinearMap.lTensor_mul + theorem LinearMap.lTensor_neg + theorem LinearMap.lTensor_pow + theorem LinearMap.lTensor_smul + theorem LinearMap.lTensor_sub + theorem LinearMap.lTensor_tmul + theorem LinearMap.lTensor_zero - def LinearMap.ltensor - def LinearMap.ltensorHom - theorem LinearMap.ltensor_add - theorem LinearMap.ltensor_comp - theorem LinearMap.ltensor_comp_apply - theorem LinearMap.ltensor_comp_map - theorem LinearMap.ltensor_comp_rtensor - theorem LinearMap.ltensor_id - theorem LinearMap.ltensor_id_apply - theorem LinearMap.ltensor_mul - theorem LinearMap.ltensor_neg - theorem LinearMap.ltensor_pow - theorem LinearMap.ltensor_smul - theorem LinearMap.ltensor_sub - theorem LinearMap.ltensor_tmul - theorem LinearMap.ltensor_zero + theorem LinearMap.map_comp_lTensor - theorem LinearMap.map_comp_ltensor + theorem LinearMap.map_comp_rTensor - theorem LinearMap.map_comp_rtensor + def LinearMap.rTensor + def LinearMap.rTensorHom + theorem LinearMap.rTensor_add + theorem LinearMap.rTensor_comp + theorem LinearMap.rTensor_comp_apply + theorem LinearMap.rTensor_comp_lTensor + theorem LinearMap.rTensor_comp_map + theorem LinearMap.rTensor_id + theorem LinearMap.rTensor_id_apply + theorem LinearMap.rTensor_mul + theorem LinearMap.rTensor_neg + theorem LinearMap.rTensor_pow + theorem LinearMap.rTensor_smul + theorem LinearMap.rTensor_sub + theorem LinearMap.rTensor_tmul + theorem LinearMap.rTensor_zero - def LinearMap.rtensor - def LinearMap.rtensorHom - theorem LinearMap.rtensor_add - theorem LinearMap.rtensor_comp - theorem LinearMap.rtensor_comp_apply - theorem LinearMap.rtensor_comp_ltensor - theorem LinearMap.rtensor_comp_map - theorem LinearMap.rtensor_id - theorem LinearMap.rtensor_id_apply - theorem LinearMap.rtensor_mul - theorem LinearMap.rtensor_neg - theorem LinearMap.rtensor_pow - theorem LinearMap.rtensor_smul - theorem LinearMap.rtensor_sub - theorem LinearMap.rtensor_tmul - theorem LinearMap.rtensor_zero + def TensorProduct.lTensorHomToHomLTensor + theorem TensorProduct.lTensorHomToHomLTensor_apply - def TensorProduct.ltensorHomToHomLtensor - theorem TensorProduct.ltensorHomToHomLtensor_apply + def TensorProduct.rTensorHomToHomRTensor + theorem TensorProduct.rTensorHomToHomRTensor_apply - def TensorProduct.rtensorHomToHomRtensor - theorem TensorProduct.rtensorHomToHomRtensor_apply Modified Mathlib/RingTheory/TensorProduct.lean +/- theorem LinearMap.baseChange_eq_ltensor + theorem TensorProduct.AlgebraTensorModule.smul_eq_lsmul_rTensor - theorem TensorProduct.AlgebraTensorModule.smul_eq_lsmul_rtensor 2023-05-22 12:09:27 2f77125 chore: forward-port leanprover-community/mathlib#18872 (#3958) ESTIMATED CHANGES Modified Mathlib/Topology/Sets/Compacts.lean + theorem TopologicalSpace.CompactOpens.map_comp + theorem TopologicalSpace.CompactOpens.map_id + theorem TopologicalSpace.Compacts.coe_equiv_apply_eq_preimage + theorem TopologicalSpace.Compacts.equiv_refl + theorem TopologicalSpace.Compacts.equiv_symm - theorem TopologicalSpace.Compacts.equiv_to_fun_val + theorem TopologicalSpace.Compacts.equiv_trans + theorem TopologicalSpace.Compacts.map_comp + theorem TopologicalSpace.Compacts.map_id + theorem TopologicalSpace.PositiveCompacts.coe_map + theorem TopologicalSpace.PositiveCompacts.map_comp + theorem TopologicalSpace.PositiveCompacts.map_id 2023-05-22 12:09:26 9247bc4 feat: port Analysis.Convex.Between (#3790) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/Convex/Between.lean + theorem AffineEquiv.sbtw_map_iff + theorem AffineEquiv.wbtw_map_iff + theorem Collinear.wbtw_or_wbtw_or_wbtw + theorem Function.Injective.sbtw_map_iff + theorem Function.Injective.wbtw_map_iff + theorem Sbtw.affineCombination_of_mem_affineSpan_pair + theorem Sbtw.left_mem_affineSpan + theorem Sbtw.left_mem_image_Ioi + theorem Sbtw.left_ne + theorem Sbtw.left_ne_right + theorem Sbtw.mem_image_Ioo + theorem Sbtw.ne_left + theorem Sbtw.ne_right + theorem Sbtw.not_rotate + theorem Sbtw.not_swap_left + theorem Sbtw.not_swap_right + theorem Sbtw.right_mem_affineSpan + theorem Sbtw.right_mem_image_Ioi + theorem Sbtw.right_ne + theorem Sbtw.trans_left + theorem Sbtw.trans_left_right + theorem Sbtw.trans_right + theorem Sbtw.trans_right_left + theorem Sbtw.trans_wbtw_left_ne + theorem Sbtw.trans_wbtw_right_ne + theorem Sbtw.wbtw + def Sbtw + theorem Wbtw.collinear + theorem Wbtw.left_mem_affineSpan_of_right_ne + theorem Wbtw.left_mem_image_Ici_of_right_ne + theorem Wbtw.left_ne_right_of_ne_left + theorem Wbtw.left_ne_right_of_ne_right + theorem Wbtw.map + theorem Wbtw.mem_affineSpan + theorem Wbtw.right_mem_affineSpan_of_left_ne + theorem Wbtw.right_mem_image_Ici_of_left_ne + theorem Wbtw.rotate_iff + theorem Wbtw.sameRay_vsub + theorem Wbtw.sameRay_vsub_left + theorem Wbtw.sameRay_vsub_right + theorem Wbtw.swap_left_iff + theorem Wbtw.swap_right_iff + theorem Wbtw.trans_left + theorem Wbtw.trans_left_ne + theorem Wbtw.trans_left_right + theorem Wbtw.trans_right + theorem Wbtw.trans_right_left + theorem Wbtw.trans_right_ne + theorem Wbtw.trans_sbtw_left + theorem Wbtw.trans_sbtw_right + def Wbtw + def affineSegment + theorem affineSegment_comm + theorem affineSegment_const_vadd_image + theorem affineSegment_const_vsub_image + theorem affineSegment_eq_segment + theorem affineSegment_image + theorem affineSegment_vadd_const_image + theorem affineSegment_vsub_const_image + theorem left_mem_affineSegment + theorem mem_const_vadd_affineSegment + theorem mem_const_vsub_affineSegment + theorem mem_vadd_const_affineSegment + theorem mem_vsub_const_affineSegment + theorem not_sbtw_self + theorem not_sbtw_self_left + theorem not_sbtw_self_right + theorem right_mem_affineSegment + theorem sbtw_comm + theorem sbtw_const_vadd_iff + theorem sbtw_const_vsub_iff + theorem sbtw_iff_left_ne_and_right_mem_image_Ioi + theorem sbtw_iff_mem_image_Ioo_and_ne + theorem sbtw_iff_right_ne_and_left_mem_image_Ioi + theorem sbtw_lineMap_iff + theorem sbtw_midpoint_of_ne + theorem sbtw_mul_sub_add_iff + theorem sbtw_of_sbtw_of_sbtw_of_mem_affineSpan_pair + theorem sbtw_one_zero_iff + theorem sbtw_pointReflection_of_ne + theorem sbtw_vadd_const_iff + theorem sbtw_vsub_const_iff + theorem sbtw_zero_one_iff + theorem wbtw_comm + theorem wbtw_const_vadd_iff + theorem wbtw_const_vsub_iff + theorem wbtw_iff_left_eq_or_right_mem_image_Ici + theorem wbtw_iff_right_eq_or_left_mem_image_Ici + theorem wbtw_iff_sameRay_vsub + theorem wbtw_lineMap_iff + theorem wbtw_midpoint + theorem wbtw_mul_sub_add_iff + theorem wbtw_one_zero_iff + theorem wbtw_or_wbtw_smul_vadd_of_nonneg + theorem wbtw_or_wbtw_smul_vadd_of_nonpos + theorem wbtw_pointReflection + theorem wbtw_rotate_iff + theorem wbtw_self_iff + theorem wbtw_self_left + theorem wbtw_self_right + theorem wbtw_smul_vadd_smul_vadd_of_nonneg_of_le + theorem wbtw_smul_vadd_smul_vadd_of_nonneg_of_nonpos + theorem wbtw_smul_vadd_smul_vadd_of_nonpos_of_le + theorem wbtw_smul_vadd_smul_vadd_of_nonpos_of_nonneg + theorem wbtw_swap_left_iff + theorem wbtw_swap_right_iff + theorem wbtw_vadd_const_iff + theorem wbtw_vsub_const_iff + theorem wbtw_zero_one_iff Modified Mathlib/Data/Set/Pointwise/SMul.lean 2023-05-22 11:18:51 c59c263 chore: forward-port leanprover-community/mathlib#18980 (#3956) ESTIMATED CHANGES Modified Mathlib/Data/Real/ENNReal.lean + theorem ENNReal.smul_top Modified Mathlib/MeasureTheory/Measure/OuterMeasure.lean + theorem MeasureTheory.smul_extend Modified Mathlib/Topology/Instances/ENNReal.lean + theorem ENNReal.smul_iSup + theorem ENNReal.smul_sSup 2023-05-22 09:14:49 02d14be chore: Add reference for SRL (#4160) Match https://github.com/leanprover-community/mathlib/pull/19051 (and one line of https://github.com/leanprover-community/mathlib/pull/18371) * [`combinatorics.simple_graph.regularity.energy`@`f7707875544ef1f81b32cb68c79e0e24e45a0e76`..`bf7ef0e83e5b7e6c1169e97f055e58a2e4e9d52d`](https://leanprover-community.github.io/mathlib-port-status/file/combinatorics/simple_graph/regularity/energy?range=f7707875544ef1f81b32cb68c79e0e24e45a0e76..bf7ef0e83e5b7e6c1169e97f055e58a2e4e9d52d) * [`combinatorics.simple_graph.regularity.equitabilise`@`4c19a16e4b705bf135cf9a80ac18fcc99c438514`..`bf7ef0e83e5b7e6c1169e97f055e58a2e4e9d52d`](https://leanprover-community.github.io/mathlib-port-status/file/combinatorics/simple_graph/regularity/equitabilise?range=4c19a16e4b705bf135cf9a80ac18fcc99c438514..bf7ef0e83e5b7e6c1169e97f055e58a2e4e9d52d) * [`combinatorics.simple_graph.regularity.uniform`@`32b08ef840dd25ca2e47e035c5da03ce16d2dc3c`..`bf7ef0e83e5b7e6c1169e97f055e58a2e4e9d52d`](https://leanprover-community.github.io/mathlib-port-status/file/combinatorics/simple_graph/regularity/uniform?range=32b08ef840dd25ca2e47e035c5da03ce16d2dc3c..bf7ef0e83e5b7e6c1169e97f055e58a2e4e9d52d) ESTIMATED CHANGES Modified Mathlib/Combinatorics/SimpleGraph/Regularity/Energy.lean + theorem Finpartition.coe_energy Modified Mathlib/Combinatorics/SimpleGraph/Regularity/Equitabilise.lean Modified Mathlib/Combinatorics/SimpleGraph/Regularity/Uniform.lean + theorem SimpleGraph.le_card_nonuniformWitness - theorem SimpleGraph.nonuniformWitness_card_le 2023-05-22 05:47:22 94a92f1 feat: port Topology.MetricSpace.Metrizable (#4181) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Topology/MetricSpace/Metrizable.lean + theorem Embedding.metrizableSpace + theorem Inducing.pseudoMetrizableSpace + theorem TopologicalSpace.exists_embedding_l_infty + theorem TopologicalSpace.metrizableSpace_of_t3_second_countable 2023-05-22 03:13:20 17b3381 chore: fix tactic usage in docs (#4179) ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Monoid/Cancel/Defs.lean Modified Mathlib/Algebra/Order/Monoid/Defs.lean Modified Mathlib/Analysis/NormedSpace/Basic.lean Modified Mathlib/CategoryTheory/Limits/Pi.lean 2023-05-22 03:13:18 6453a95 feat: port MeasureTheory.Covering.Vitali (#4178) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/MeasureTheory/Covering/Vitali.lean + theorem Vitali.exists_disjoint_covering_ae + theorem Vitali.exists_disjoint_subfamily_covering_enlargment + theorem Vitali.exists_disjoint_subfamily_covering_enlargment_closedBall 2023-05-22 03:13:17 e23d258 feat: port Analysis.Calculus.Fderiv.Linear (#4177) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/Calculus/FDeriv/Linear.lean + theorem IsBoundedLinearMap.differentiable + theorem IsBoundedLinearMap.differentiableAt + theorem IsBoundedLinearMap.differentiableOn + theorem IsBoundedLinearMap.differentiableWithinAt + theorem IsBoundedLinearMap.fderiv + theorem IsBoundedLinearMap.fderivWithin + theorem IsBoundedLinearMap.hasFDerivAt + theorem IsBoundedLinearMap.hasFDerivAtFilter + theorem IsBoundedLinearMap.hasFDerivWithinAt 2023-05-22 03:13:16 eec62fe feat: port RingTheory.Localization.LocalizationLocalization (#4137) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/RingTheory/Localization/LocalizationLocalization.lean + theorem IsFractionRing.isFractionRing_of_isDomain_of_isLocalization + theorem IsFractionRing.isFractionRing_of_isLocalization + theorem IsLocalization.isLocalization_isLocalization_atPrime_isLocalization + theorem IsLocalization.isLocalization_of_is_exists_mul_mem + theorem IsLocalization.isLocalization_of_submonoid_le + def IsLocalization.localizationLocalizationSubmodule + theorem IsLocalization.localization_isScalarTower_of_submonoid_le + theorem IsLocalization.localization_localization_eq_iff_exists + theorem IsLocalization.localization_localization_isLocalization + theorem IsLocalization.localization_localization_isLocalization_of_has_all_units + theorem IsLocalization.localization_localization_map_units + theorem IsLocalization.localization_localization_surj + theorem IsLocalization.mem_localizationLocalizationSubmodule 2023-05-22 03:13:15 6a3f848 fix: remove duplicate syntax definitions (#4125) Many of the tactics stubbed in Mathlib.Mathport.Syntax have been implemented already, but we forgot about removing the stubs. ESTIMATED CHANGES Modified Mathlib/Data/Matrix/Notation.lean Modified Mathlib/Mathport/Syntax.lean Modified Mathlib/Tactic/ApplyCongr.lean Modified Mathlib/Tactic/Elementwise.lean Modified Mathlib/Tactic/Measurability.lean 2023-05-22 03:13:14 78f62c8 chore: forward-port leanprover-community/mathlib#19050 (#4119) ESTIMATED CHANGES Modified Mathlib/Algebra/BigOperators/Ring.lean Modified Mathlib/Data/Finset/Pi.lean + theorem Finset.Pi.cons_injective - theorem Finset.pi_cons_injective Modified Mathlib/Data/Multiset/Pi.lean + theorem Multiset.Pi.cons_injective + theorem Multiset.pi.cons_eta - theorem Multiset.pi.cons_ext - theorem Multiset.pi_cons_injective 2023-05-22 03:13:13 6f37168 feat: Add CategoryTheory.Sites.Coverage (#4113) This PR adds the notion of a coverage, and constructs the natural Galois insertion between coverages and Grothendieck topologies. We also show that a `Type _`-valued presheaf is a sheaf for a coverage if and only if it is a sheaf for the associated Grothendieck topology. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Sites/Coverage.lean + theorem CategoryTheory.Coverage.eq_top_pullback + def CategoryTheory.Coverage.gi + def CategoryTheory.Coverage.ofGrothendieck + theorem CategoryTheory.Coverage.ofGrothendieck_iff + inductive CategoryTheory.Coverage.saturate + theorem CategoryTheory.Coverage.saturate_of_superset + def CategoryTheory.Coverage.toGrothendieck + theorem CategoryTheory.Coverage.toGrothendieck_eq_sInf + structure CategoryTheory.Coverage + def CategoryTheory.Presieve.FactorsThru + def CategoryTheory.Presieve.FactorsThruAlong + theorem CategoryTheory.Presieve.factorsThruAlong_id + theorem CategoryTheory.Presieve.factorsThru_of_le + theorem CategoryTheory.Presieve.factorsThru_top + theorem CategoryTheory.Presieve.isSheafFor_of_factorsThru + theorem CategoryTheory.Presieve.isSheaf_coverage + theorem CategoryTheory.Presieve.le_of_factorsThru_sieve 2023-05-22 03:13:12 8d40252 feat: add a global cache for the rewrites tactic (#4110) ESTIMATED CHANGES Modified Mathlib/Tactic/Cache.lean + structure Mathlib.Tactic.CachedData Modified Mathlib/Tactic/LibrarySearch.lean - structure Mathlib.Tactic.LibrarySearch.CachedData Modified Mathlib/Tactic/Rewrites.lean + def Mathlib.Tactic.Rewrites.addLemma + def Mathlib.Tactic.Rewrites.buildDiscrTree + def Mathlib.Tactic.Rewrites.cachePath + def Mathlib.Tactic.Rewrites.processLemma + def Mathlib.Tactic.Rewrites.rewriteLemmas +/- def Mathlib.Tactic.Rewrites.rewrites +/- def Mathlib.Tactic.Rewrites.rewritesCore Modified MathlibExtras.lean Modified MathlibExtras/LibrarySearch.lean Added MathlibExtras/Rewrites.lean Modified test/rewrites.lean 2023-05-22 03:13:11 14a0842 feat: port MeasureTheory.Measure.GiryMonad (#4103) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/MeasureTheory/Measure/GiryMonad.lean + def MeasureTheory.Measure.bind + theorem MeasureTheory.Measure.bind_apply + theorem MeasureTheory.Measure.bind_bind + theorem MeasureTheory.Measure.bind_dirac + theorem MeasureTheory.Measure.bind_zero_left + theorem MeasureTheory.Measure.bind_zero_right' + theorem MeasureTheory.Measure.bind_zero_right + theorem MeasureTheory.Measure.dirac_bind + def MeasureTheory.Measure.join + theorem MeasureTheory.Measure.join_apply + theorem MeasureTheory.Measure.join_dirac + theorem MeasureTheory.Measure.join_eq_bind + theorem MeasureTheory.Measure.join_map_dirac + theorem MeasureTheory.Measure.join_map_join + theorem MeasureTheory.Measure.join_map_map + theorem MeasureTheory.Measure.join_zero + theorem MeasureTheory.Measure.lintegral_bind + theorem MeasureTheory.Measure.lintegral_join + theorem MeasureTheory.Measure.measurable_bind' + theorem MeasureTheory.Measure.measurable_coe + theorem MeasureTheory.Measure.measurable_dirac + theorem MeasureTheory.Measure.measurable_join + theorem MeasureTheory.Measure.measurable_lintegral + theorem MeasureTheory.Measure.measurable_map + theorem MeasureTheory.Measure.measurable_measure + theorem MeasureTheory.Measure.measurable_of_measurable_coe 2023-05-22 00:38:50 c8b79ba feat: port Combinatorics.Configuration (#4025) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Combinatorics/Configuration.lean + def Configuration.Dual + theorem Configuration.HasLines.card_le + theorem Configuration.HasLines.existsUnique_line + theorem Configuration.HasLines.exists_bijective_of_card_eq + theorem Configuration.HasLines.lineCount_eq_pointCount + theorem Configuration.HasLines.pointCount_le_lineCount + theorem Configuration.HasPoints.card_le + theorem Configuration.HasPoints.existsUnique_point + theorem Configuration.HasPoints.lineCount_eq_pointCount + theorem Configuration.HasPoints.lineCount_le_pointCount + theorem Configuration.Nondegenerate.exists_injective_of_card_le + theorem Configuration.ProjectivePlane.Dual.order + theorem Configuration.ProjectivePlane.card_lines + theorem Configuration.ProjectivePlane.card_points + theorem Configuration.ProjectivePlane.card_points_eq_card_lines + theorem Configuration.ProjectivePlane.lineCount_eq + theorem Configuration.ProjectivePlane.lineCount_eq_lineCount + theorem Configuration.ProjectivePlane.lineCount_eq_pointCount + theorem Configuration.ProjectivePlane.one_lt_order + theorem Configuration.ProjectivePlane.pointCount_eq + theorem Configuration.ProjectivePlane.pointCount_eq_pointCount + theorem Configuration.ProjectivePlane.two_lt_lineCount + theorem Configuration.ProjectivePlane.two_lt_pointCount + theorem Configuration.sum_lineCount_eq_sum_pointCount 2023-05-22 00:38:49 8c6ccaf feat: port Algebra.Quaternion (#3776) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Quaternion.lean + theorem Cardinal.mk_quaternion + theorem Cardinal.mk_quaternionAlgebra + theorem Cardinal.mk_quaternionAlgebra_of_infinite + theorem Cardinal.mk_quaternion_of_infinite + theorem Cardinal.mk_univ_quaternion + theorem Cardinal.mk_univ_quaternionAlgebra + theorem Cardinal.mk_univ_quaternionAlgebra_of_infinite + theorem Cardinal.mk_univ_quaternion_of_infinite + theorem Quaternion.add_imI + theorem Quaternion.add_imJ + theorem Quaternion.add_imK + theorem Quaternion.add_re + theorem Quaternion.algebraMap_def + def Quaternion.coe + theorem Quaternion.coe_add + theorem Quaternion.coe_commute + theorem Quaternion.coe_commutes + theorem Quaternion.coe_div + theorem Quaternion.coe_im + theorem Quaternion.coe_imI + theorem Quaternion.coe_imJ + theorem Quaternion.coe_imK + theorem Quaternion.coe_inj + theorem Quaternion.coe_injective + theorem Quaternion.coe_int_cast + theorem Quaternion.coe_inv + theorem Quaternion.coe_mul + theorem Quaternion.coe_mul_eq_smul + theorem Quaternion.coe_nat_cast + theorem Quaternion.coe_neg + theorem Quaternion.coe_normSq_add + theorem Quaternion.coe_one + theorem Quaternion.coe_pow + theorem Quaternion.coe_rat_cast + theorem Quaternion.coe_re + theorem Quaternion.coe_smul + theorem Quaternion.coe_starAe + theorem Quaternion.coe_sub + theorem Quaternion.coe_zero + theorem Quaternion.coe_zpow + theorem Quaternion.eq_re_iff_mem_range_coe + theorem Quaternion.eq_re_of_eq_coe + def Quaternion.equivProd + def Quaternion.equivTuple + theorem Quaternion.equivTuple_apply + theorem Quaternion.ext + theorem Quaternion.ext_iff + theorem Quaternion.finrank_eq_four + theorem Quaternion.im_idem + theorem Quaternion.im_imI + theorem Quaternion.im_imJ + theorem Quaternion.im_imK + theorem Quaternion.im_re + theorem Quaternion.im_sq + theorem Quaternion.im_star + theorem Quaternion.int_cast_im + theorem Quaternion.int_cast_imI + theorem Quaternion.int_cast_imJ + theorem Quaternion.int_cast_imK + theorem Quaternion.int_cast_re + theorem Quaternion.mul_coe_eq_smul + theorem Quaternion.mul_imI + theorem Quaternion.mul_imJ + theorem Quaternion.mul_imK + theorem Quaternion.mul_re + theorem Quaternion.nat_cast_im + theorem Quaternion.nat_cast_imI + theorem Quaternion.nat_cast_imJ + theorem Quaternion.nat_cast_imK + theorem Quaternion.nat_cast_re + theorem Quaternion.neg_imI + theorem Quaternion.neg_imJ + theorem Quaternion.neg_imK + theorem Quaternion.neg_re + def Quaternion.normSq + theorem Quaternion.normSq_add + theorem Quaternion.normSq_coe + theorem Quaternion.normSq_def' + theorem Quaternion.normSq_def + theorem Quaternion.normSq_div + theorem Quaternion.normSq_eq_zero + theorem Quaternion.normSq_int_cast + theorem Quaternion.normSq_inv + theorem Quaternion.normSq_le_zero + theorem Quaternion.normSq_nat_cast + theorem Quaternion.normSq_ne_zero + theorem Quaternion.normSq_neg + theorem Quaternion.normSq_nonneg + theorem Quaternion.normSq_rat_cast + theorem Quaternion.normSq_smul + theorem Quaternion.normSq_star + theorem Quaternion.normSq_zpow + theorem Quaternion.one_im + theorem Quaternion.one_imI + theorem Quaternion.one_imJ + theorem Quaternion.one_imK + theorem Quaternion.one_re + theorem Quaternion.rank_eq_four + theorem Quaternion.rat_cast_im + theorem Quaternion.rat_cast_imI + theorem Quaternion.rat_cast_imJ + theorem Quaternion.rat_cast_imK + theorem Quaternion.rat_cast_re + theorem Quaternion.self_mul_star + theorem Quaternion.smul_coe + theorem Quaternion.smul_imI + theorem Quaternion.smul_imJ + theorem Quaternion.smul_imK + theorem Quaternion.smul_re + theorem Quaternion.sq_eq_neg_normSq + theorem Quaternion.sq_eq_normSq + def Quaternion.starAe + theorem Quaternion.star_coe + theorem Quaternion.star_eq_neg + theorem Quaternion.star_eq_self + theorem Quaternion.star_im + theorem Quaternion.star_imI + theorem Quaternion.star_imJ + theorem Quaternion.star_imK + theorem Quaternion.star_mul_self + theorem Quaternion.star_re + theorem Quaternion.star_smul + theorem Quaternion.sub_imI + theorem Quaternion.sub_imJ + theorem Quaternion.sub_imK + theorem Quaternion.sub_re + theorem Quaternion.zero_im + theorem Quaternion.zero_imI + theorem Quaternion.zero_imJ + theorem Quaternion.zero_imK + theorem Quaternion.zero_re + def Quaternion + theorem QuaternionAlgebra.add_im + theorem QuaternionAlgebra.add_imI + theorem QuaternionAlgebra.add_imJ + theorem QuaternionAlgebra.add_imK + theorem QuaternionAlgebra.add_re + theorem QuaternionAlgebra.algebraMap_eq + def QuaternionAlgebra.coe + theorem QuaternionAlgebra.coe_add + theorem QuaternionAlgebra.coe_algebraMap + theorem QuaternionAlgebra.coe_basisOneIJK_repr + theorem QuaternionAlgebra.coe_commute + theorem QuaternionAlgebra.coe_commutes + theorem QuaternionAlgebra.coe_im + theorem QuaternionAlgebra.coe_imI + theorem QuaternionAlgebra.coe_imJ + theorem QuaternionAlgebra.coe_imK + theorem QuaternionAlgebra.coe_inj + theorem QuaternionAlgebra.coe_injective + theorem QuaternionAlgebra.coe_int_cast + theorem QuaternionAlgebra.coe_linearEquivTuple + theorem QuaternionAlgebra.coe_linearEquivTuple_symm + theorem QuaternionAlgebra.coe_mul + theorem QuaternionAlgebra.coe_mul_eq_smul + theorem QuaternionAlgebra.coe_nat_cast + theorem QuaternionAlgebra.coe_neg + theorem QuaternionAlgebra.coe_one + theorem QuaternionAlgebra.coe_pow + theorem QuaternionAlgebra.coe_re + theorem QuaternionAlgebra.coe_smul + theorem QuaternionAlgebra.coe_starAe + theorem QuaternionAlgebra.coe_sub + theorem QuaternionAlgebra.coe_zero + theorem QuaternionAlgebra.eq_re_iff_mem_range_coe + theorem QuaternionAlgebra.eq_re_of_eq_coe + def QuaternionAlgebra.equivProd + def QuaternionAlgebra.equivTuple + theorem QuaternionAlgebra.equivTuple_apply + theorem QuaternionAlgebra.finrank_eq_four + def QuaternionAlgebra.im + theorem QuaternionAlgebra.imI_star + def QuaternionAlgebra.imIₗ + theorem QuaternionAlgebra.imJ_star + def QuaternionAlgebra.imJₗ + theorem QuaternionAlgebra.imK_star + def QuaternionAlgebra.imKₗ + theorem QuaternionAlgebra.im_idem + theorem QuaternionAlgebra.im_imI + theorem QuaternionAlgebra.im_imJ + theorem QuaternionAlgebra.im_imK + theorem QuaternionAlgebra.im_re + theorem QuaternionAlgebra.im_star + theorem QuaternionAlgebra.int_cast_im + theorem QuaternionAlgebra.int_cast_imI + theorem QuaternionAlgebra.int_cast_imJ + theorem QuaternionAlgebra.int_cast_imK + theorem QuaternionAlgebra.int_cast_re + def QuaternionAlgebra.linearEquivTuple + theorem QuaternionAlgebra.mk.eta + theorem QuaternionAlgebra.mk_add_mk + theorem QuaternionAlgebra.mk_mul_mk + theorem QuaternionAlgebra.mk_sub_mk + theorem QuaternionAlgebra.mul_coe_eq_smul + theorem QuaternionAlgebra.mul_imI + theorem QuaternionAlgebra.mul_imJ + theorem QuaternionAlgebra.mul_imK + theorem QuaternionAlgebra.mul_re + theorem QuaternionAlgebra.mul_star_eq_coe + theorem QuaternionAlgebra.nat_cast_im + theorem QuaternionAlgebra.nat_cast_imI + theorem QuaternionAlgebra.nat_cast_imJ + theorem QuaternionAlgebra.nat_cast_imK + theorem QuaternionAlgebra.nat_cast_re + theorem QuaternionAlgebra.neg_im + theorem QuaternionAlgebra.neg_imI + theorem QuaternionAlgebra.neg_imJ + theorem QuaternionAlgebra.neg_imK + theorem QuaternionAlgebra.neg_mk + theorem QuaternionAlgebra.neg_re + theorem QuaternionAlgebra.one_im + theorem QuaternionAlgebra.one_imI + theorem QuaternionAlgebra.one_imJ + theorem QuaternionAlgebra.one_imK + theorem QuaternionAlgebra.one_re + theorem QuaternionAlgebra.rank_eq_four + theorem QuaternionAlgebra.re_add_im + theorem QuaternionAlgebra.re_star + def QuaternionAlgebra.reₗ + theorem QuaternionAlgebra.self_add_star' + theorem QuaternionAlgebra.self_add_star + theorem QuaternionAlgebra.smul_coe + theorem QuaternionAlgebra.smul_im + theorem QuaternionAlgebra.smul_imI + theorem QuaternionAlgebra.smul_imJ + theorem QuaternionAlgebra.smul_imK + theorem QuaternionAlgebra.smul_mk + theorem QuaternionAlgebra.smul_re + def QuaternionAlgebra.starAe + theorem QuaternionAlgebra.star_add_self' + theorem QuaternionAlgebra.star_add_self + theorem QuaternionAlgebra.star_coe + theorem QuaternionAlgebra.star_eq_neg + theorem QuaternionAlgebra.star_eq_self + theorem QuaternionAlgebra.star_eq_two_re_sub + theorem QuaternionAlgebra.star_im + theorem QuaternionAlgebra.star_mk + theorem QuaternionAlgebra.star_mul_eq_coe + theorem QuaternionAlgebra.star_smul + theorem QuaternionAlgebra.sub_im + theorem QuaternionAlgebra.sub_imI + theorem QuaternionAlgebra.sub_imJ + theorem QuaternionAlgebra.sub_imK + theorem QuaternionAlgebra.sub_re + theorem QuaternionAlgebra.sub_self_im + theorem QuaternionAlgebra.sub_self_re + theorem QuaternionAlgebra.zero_im + theorem QuaternionAlgebra.zero_imI + theorem QuaternionAlgebra.zero_imJ + theorem QuaternionAlgebra.zero_imK + theorem QuaternionAlgebra.zero_re + structure QuaternionAlgebra Modified Mathlib/SetTheory/Cardinal/Basic.lean + theorem Cardinal.toNat_ofNat 2023-05-22 00:38:47 b284c7c feat: port GroupTheory.Perm.Cycle.Concrete (#3472) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/GroupTheory/Perm/Cycle/Concrete.lean + def Cycle.formPerm + theorem Cycle.formPerm_apply_mem_eq_next + theorem Cycle.formPerm_coe + theorem Cycle.formPerm_eq_self_of_not_mem + theorem Cycle.formPerm_subsingleton + theorem Cycle.isCycle_formPerm + theorem Cycle.support_formPerm + theorem Equiv.Perm.IsCycle.existsUnique_cycle + theorem Equiv.Perm.IsCycle.existsUnique_cycle_nontrivial_subtype + theorem Equiv.Perm.IsCycle.existsUnique_cycle_subtype + theorem Equiv.Perm.SameCycle.toList_isRotated + theorem Equiv.Perm.formPerm_toList + def Equiv.Perm.isoCycle' + def Equiv.Perm.isoCycle + theorem Equiv.Perm.length_toList + theorem Equiv.Perm.length_toList_pos_of_mem_support + theorem Equiv.Perm.mem_toList_iff + theorem Equiv.Perm.next_toList_eq_apply + theorem Equiv.Perm.nodup_toCycle + theorem Equiv.Perm.nodup_toList + theorem Equiv.Perm.nontrivial_toCycle + theorem Equiv.Perm.nthLe_toList + theorem Equiv.Perm.pow_apply_mem_toList_iff_mem_support + def Equiv.Perm.toCycle + theorem Equiv.Perm.toCycle_eq_toList + def Equiv.Perm.toList + theorem Equiv.Perm.toList_eq_nil_iff + theorem Equiv.Perm.toList_formPerm_isRotated_self + theorem Equiv.Perm.toList_formPerm_nil + theorem Equiv.Perm.toList_formPerm_nontrivial + theorem Equiv.Perm.toList_formPerm_singleton + theorem Equiv.Perm.toList_ne_singleton + theorem Equiv.Perm.toList_nthLe_zero + theorem Equiv.Perm.toList_one + theorem Equiv.Perm.toList_pow_apply_eq_rotate + theorem Equiv.Perm.two_le_length_toList_iff_mem_support + theorem List.cycleOf_formPerm + theorem List.cycleType_formPerm + theorem List.formPerm_apply_mem_eq_next + theorem List.formPerm_disjoint_iff + theorem List.isCycle_formPerm + theorem List.pairwise_sameCycle_formPerm 2023-05-22 00:38:45 bd1295b feat: port NumberTheory.Padics.PadicNumbers (#3095) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Order/Field/Basic.lean + theorem add_thirds Added Mathlib/NumberTheory/Padics/PadicNumbers.lean + theorem Padic.AddValuation.map_add + theorem Padic.AddValuation.map_mul + theorem Padic.AddValuation.map_one + theorem Padic.AddValuation.map_zero + theorem Padic.addValuation.apply + def Padic.addValuation + def Padic.addValuationDef + theorem Padic.coe_add + theorem Padic.coe_div + theorem Padic.coe_inj + theorem Padic.coe_mul + theorem Padic.coe_neg + theorem Padic.coe_one + theorem Padic.coe_sub + theorem Padic.coe_zero + theorem Padic.complete'' + theorem Padic.complete' + theorem Padic.const_equiv + theorem Padic.exi_rat_seq_conv + theorem Padic.exi_rat_seq_conv_cauchy + def Padic.limSeq + def Padic.mk + theorem Padic.mk_eq + theorem Padic.norm_eq_pow_val + theorem Padic.norm_le_one_iff_val_nonneg + theorem Padic.norm_le_pow_iff_norm_lt_pow_add_one + theorem Padic.norm_lt_pow_iff_norm_le_pow_sub_one + theorem Padic.padicNormE_lim_le + theorem Padic.rat_dense' + theorem Padic.rat_dense + def Padic.valuation + theorem Padic.valuation_map_add + theorem Padic.valuation_map_mul + theorem Padic.valuation_one + theorem Padic.valuation_p + theorem Padic.valuation_zero + theorem Padic.zero_def + def Padic + theorem PadicSeq.add_eq_max_of_ne + theorem PadicSeq.eq_zero_iff_equiv_zero + theorem PadicSeq.equiv_zero_of_val_eq_of_equiv_zero + theorem PadicSeq.lift_index_left + theorem PadicSeq.lift_index_left_left + theorem PadicSeq.lift_index_right + theorem PadicSeq.ne_zero_iff_nequiv_zero + def PadicSeq.norm + theorem PadicSeq.norm_const + theorem PadicSeq.norm_eq + theorem PadicSeq.norm_eq_norm_app_of_nonzero + theorem PadicSeq.norm_eq_of_add_equiv_zero + theorem PadicSeq.norm_eq_pow_val + theorem PadicSeq.norm_equiv + theorem PadicSeq.norm_mul + theorem PadicSeq.norm_neg + theorem PadicSeq.norm_nonarchimedean + theorem PadicSeq.norm_nonneg + theorem PadicSeq.norm_nonzero_of_not_equiv_zero + theorem PadicSeq.norm_one + theorem PadicSeq.norm_values_discrete + theorem PadicSeq.norm_zero_iff + theorem PadicSeq.not_equiv_zero_const_of_nonzero + theorem PadicSeq.not_limZero_const_of_nonzero + theorem PadicSeq.stationary + def PadicSeq.stationaryPoint + theorem PadicSeq.stationaryPoint_spec + theorem PadicSeq.val_eq_iff_norm_eq + def PadicSeq.valuation + def PadicSeq + theorem padicNormE.add_eq_max_of_ne' + theorem padicNormE.add_eq_max_of_ne + theorem padicNormE.defn + theorem padicNormE.eq_of_norm_add_lt_left + theorem padicNormE.eq_of_norm_add_lt_right + theorem padicNormE.eq_padicNorm + theorem padicNormE.eq_padic_norm' + theorem padicNormE.eq_ratNorm + theorem padicNormE.nonarchimedean' + theorem padicNormE.nonarchimedean + theorem padicNormE.norm_int_le_one + theorem padicNormE.norm_int_le_pow_iff_dvd + theorem padicNormE.norm_int_lt_one_iff_dvd + theorem padicNormE.norm_p + theorem padicNormE.norm_p_lt_one + theorem padicNormE.norm_p_pow + theorem padicNormE.norm_p_zpow + theorem padicNormE.norm_rat_le_one + def padicNormE.ratNorm + def padicNormE Modified Mathlib/RingTheory/Valuation/Basic.lean 2023-05-21 22:17:00 db7cc7d feat: port RingTheory.Localization.Away.Basic (#4139) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Init/Data/Int/Basic.lean + theorem Int.natAbs_add_neg + theorem Int.natAbs_add_nonneg Added Mathlib/RingTheory/Localization/Away/Basic.lean + theorem IsLocalization.Away.AwayMap.lift_comp + theorem IsLocalization.Away.AwayMap.lift_eq + theorem IsLocalization.Away.mul_invSelf + theorem IsLocalization.away_of_isUnit_of_bijective + theorem exists_reduced_fraction' + theorem selfZpow_add + theorem selfZpow_coe_nat + theorem selfZpow_mul_neg + theorem selfZpow_neg_coe_nat + theorem selfZpow_neg_mul + theorem selfZpow_of_neg + theorem selfZpow_of_nonneg + theorem selfZpow_of_nonpos + theorem selfZpow_pow_sub + theorem selfZpow_sub_cast_nat + theorem selfZpow_zero 2023-05-21 22:16:59 870712f feat: port RingTheory.Artinian (#4104) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/RingTheory/Artinian.lean + theorem Function.Surjective.isArtinianRing + theorem IsArtinian.bijective_of_injective_endomorphism + theorem IsArtinian.disjoint_partial_infs_eventually_top + theorem IsArtinian.exists_endomorphism_iterate_ker_sup_range_eq_top + theorem IsArtinian.exists_pow_succ_smul_dvd + theorem IsArtinian.finite_of_linearIndependent + theorem IsArtinian.induction + theorem IsArtinian.monotone_stabilizes + theorem IsArtinian.range_smul_pow_stabilizes + theorem IsArtinian.set_has_minimal + theorem IsArtinian.surjective_of_injective_endomorphism + theorem IsArtinian.wellFounded_submodule_lt + theorem IsArtinianRing.isNilpotent_jacobson_bot + theorem IsArtinianRing.localization_artinian + theorem IsArtinianRing.localization_surjective + def IsArtinianRing + theorem Ring.isArtinian_of_zero_eq_one + theorem isArtinianRing_iff + theorem isArtinian_iff_wellFounded + theorem isArtinian_of_fg_of_artinian' + theorem isArtinian_of_fg_of_artinian + theorem isArtinian_of_injective + theorem isArtinian_of_le + theorem isArtinian_of_linearEquiv + theorem isArtinian_of_quotient_of_artinian + theorem isArtinian_of_range_eq_ker + theorem isArtinian_of_submodule_of_artinian + theorem isArtinian_of_surjective + theorem isArtinian_of_tower + theorem isArtinian_span_of_finite + theorem monotone_stabilizes_iff_artinian + theorem set_has_minimal_iff_artinian 2023-05-21 22:16:58 0adac46 feat: port LinearAlgebra.Dual (#3659) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/LinearAlgebra/Dual.lean + theorem Basis.coe_dualBasis + theorem Basis.coe_toDual_self + def Basis.dualBasis + theorem Basis.dualBasis_apply + theorem Basis.dualBasis_apply_self + theorem Basis.dualBasis_equivFun + theorem Basis.dualBasis_repr + theorem Basis.dual_rank_eq + def Basis.evalEquiv + theorem Basis.evalEquiv_toLinearMap + theorem Basis.eval_ker + theorem Basis.eval_range + theorem Basis.sum_dual_apply_smul_coord + def Basis.toDual + def Basis.toDualEquiv + theorem Basis.toDualEquiv_apply + def Basis.toDualFlip + theorem Basis.toDualFlip_apply + theorem Basis.toDual_apply + theorem Basis.toDual_apply_left + theorem Basis.toDual_apply_right + theorem Basis.toDual_eq_equivFun + theorem Basis.toDual_eq_repr + theorem Basis.toDual_inj + theorem Basis.toDual_ker + theorem Basis.toDual_range + theorem Basis.toDual_toDual + theorem Basis.toDual_total_left + theorem Basis.toDual_total_right + theorem Basis.total_coord + theorem Basis.total_dualBasis + def LinearEquiv.dualMap + theorem LinearEquiv.dualMap_apply + theorem LinearEquiv.dualMap_refl + theorem LinearEquiv.dualMap_symm + theorem LinearEquiv.dualMap_trans + def LinearMap.dualMap + theorem LinearMap.dualMap_apply' + theorem LinearMap.dualMap_apply + theorem LinearMap.dualMap_bijective_iff + theorem LinearMap.dualMap_comp_dualMap + theorem LinearMap.dualMap_def + theorem LinearMap.dualMap_id + theorem LinearMap.dualMap_injective_iff + theorem LinearMap.dualMap_injective_of_surjective + theorem LinearMap.dualMap_surjective_iff + theorem LinearMap.dualMap_surjective_of_injective + theorem LinearMap.dualPairing_nondegenerate + theorem LinearMap.finrank_range_dualMap_eq_finrank_range + theorem LinearMap.ker_dualMap_eq_dualAnnihilator_range + theorem LinearMap.range_dualMap_eq_dualAnnihilator_ker + theorem LinearMap.range_dualMap_eq_dualAnnihilator_ker_of_subtype_range_surjective + theorem LinearMap.range_dualMap_eq_dualAnnihilator_ker_of_surjective + theorem LinearMap.range_dualMap_le_dualAnnihilator_ker + def Module.Dual.eval + theorem Module.Dual.eval_apply + def Module.Dual.transpose + theorem Module.Dual.transpose_apply + theorem Module.Dual.transpose_comp + def Module.Dual + def Module.DualBases.basis + theorem Module.DualBases.coe_basis + theorem Module.DualBases.coe_dualBasis + def Module.DualBases.coeffs + theorem Module.DualBases.coeffs_apply + theorem Module.DualBases.coeffs_lc + theorem Module.DualBases.dual_lc + def Module.DualBases.lc + theorem Module.DualBases.lc_coeffs + theorem Module.DualBases.lc_def + theorem Module.DualBases.mem_of_mem_span + structure Module.DualBases + theorem Module.comap_eval_surjective + def Module.dualPairing + theorem Module.dualPairing_apply + def Module.dualProdDualEquivDual + theorem Module.dualProdDualEquivDual_apply + theorem Module.dual_rank_eq + theorem Module.erange_coe + def Module.evalEquiv + theorem Module.evalEquiv_toLinearMap + theorem Module.eval_apply_eq_zero_iff + theorem Module.eval_apply_injective + theorem Module.eval_ker + theorem Module.forall_dual_apply_eq_zero_iff + def Module.mapEvalEquiv + theorem Module.mapEvalEquiv_apply + theorem Module.mapEvalEquiv_symm_apply + theorem Module.map_eval_injective + def Submodule.dualAnnihilator + theorem Submodule.dualAnnihilator_anti + theorem Submodule.dualAnnihilator_bot + theorem Submodule.dualAnnihilator_dualCoannihilator_dualAnnihilator + theorem Submodule.dualAnnihilator_gc + theorem Submodule.dualAnnihilator_iSup_eq + theorem Submodule.dualAnnihilator_sup_eq + theorem Submodule.dualAnnihilator_top + def Submodule.dualCoannihilator + theorem Submodule.dualCoannihilator_anti + theorem Submodule.dualCoannihilator_bot + theorem Submodule.dualCoannihilator_dualAnnihilator_dualCoannihilator + theorem Submodule.dualCoannihilator_iSup_eq + theorem Submodule.dualCoannihilator_sup_eq + def Submodule.dualCopairing + theorem Submodule.dualCopairing_apply + theorem Submodule.dualCopairing_eq + def Submodule.dualPairing + theorem Submodule.dualPairing_apply + def Submodule.dualQuotEquivDualAnnihilator + theorem Submodule.dualQuotEquivDualAnnihilator_apply + theorem Submodule.dualQuotEquivDualAnnihilator_symm_apply_mk + def Submodule.dualRestrict + theorem Submodule.dualRestrict_apply + theorem Submodule.dualRestrict_def + theorem Submodule.dualRestrict_ker_eq_dualAnnihilator + theorem Submodule.iSup_dualAnnihilator_le_iInf + theorem Submodule.le_dualAnnihilator_dualCoannihilator + theorem Submodule.le_dualAnnihilator_iff_le_dualCoannihilator + theorem Submodule.le_dualCoannihilator_dualAnnihilator + theorem Submodule.mem_dualAnnihilator + theorem Submodule.mem_dualCoannihilator + theorem Submodule.range_dualMap_mkQ_eq + theorem Submodule.sup_dualAnnihilator_le_inf + def Subspace.dualAnnihilatorGci + theorem Subspace.dualAnnihilator_dualAnnihilator_eq + theorem Subspace.dualAnnihilator_dualCoannihilator_eq + theorem Subspace.dualAnnihilator_iInf_eq + theorem Subspace.dualAnnihilator_inf_eq + theorem Subspace.dualAnnihilator_inj + theorem Subspace.dualAnnihilator_le_dualAnnihilator_iff + theorem Subspace.dualCoannihilator_top + theorem Subspace.dualCopairing_nondegenerate + theorem Subspace.dualEquivDual_apply + theorem Subspace.dualEquivDual_def + theorem Subspace.dualLift_injective + theorem Subspace.dualLift_of_mem + theorem Subspace.dualLift_of_subtype + theorem Subspace.dualLift_rightInverse + theorem Subspace.dualPairing_eq + theorem Subspace.dualPairing_nondegenerate + def Subspace.dualQuotDistrib + theorem Subspace.dualRestrict_comp_dualLift + theorem Subspace.dualRestrict_leftInverse + theorem Subspace.dualRestrict_surjective + theorem Subspace.dual_finrank_eq + theorem Subspace.finrank_add_finrank_dualCoannihilator_eq + theorem Subspace.finrank_dualCoannihilator_eq + theorem Subspace.forall_mem_dualAnnihilator_apply_eq_zero_iff + theorem Subspace.isCompl_dualAnnihilator + theorem Subspace.quotAnnihilatorEquiv_apply + def TensorProduct.dualDistrib + theorem TensorProduct.dualDistribInvOfBasis_apply + theorem TensorProduct.dualDistrib_apply + theorem TensorProduct.dualDistrib_dualDistribInvOfBasis_left_inverse + theorem TensorProduct.dualDistrib_dualDistribInvOfBasis_right_inverse + def evalUseFiniteInstance 2023-05-21 21:51:34 d15ff06 feat: port MeasureTheory.Function.SpecialFunctions.Basic (#4175) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/MeasureTheory/Function/SpecialFunctions/Basic.lean + theorem Complex.measurable_arg + theorem Complex.measurable_cos + theorem Complex.measurable_cosh + theorem Complex.measurable_exp + theorem Complex.measurable_im + theorem Complex.measurable_log + theorem Complex.measurable_of_real + theorem Complex.measurable_re + theorem Complex.measurable_sin + theorem Complex.measurable_sinh + theorem Measurable.carg + theorem Measurable.ccos + theorem Measurable.ccosh + theorem Measurable.cexp + theorem Measurable.clog + theorem Measurable.cos + theorem Measurable.cosh + theorem Measurable.csin + theorem Measurable.csinh + theorem Measurable.exp + theorem Measurable.log + theorem Measurable.sin + theorem Measurable.sinh + theorem Measurable.sqrt + theorem Real.measurable_arccos + theorem Real.measurable_arcsin + theorem Real.measurable_cos + theorem Real.measurable_cosh + theorem Real.measurable_exp + theorem Real.measurable_log + theorem Real.measurable_sin + theorem Real.measurable_sinh 2023-05-21 21:51:33 2a3dcf0 feat: port Analysis.Calculus.FDeriv.Basic (#4132) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/Calculus/FDeriv/Basic.lean + theorem Asymptotics.IsBigO.hasFDerivAt + theorem Asymptotics.IsBigO.hasFDerivWithinAt + theorem Differentiable.continuous + theorem Differentiable.differentiableAt + theorem Differentiable.differentiableOn + def Differentiable + theorem DifferentiableAt.congr_of_eventuallyEq + theorem DifferentiableAt.continuousAt + theorem DifferentiableAt.differentiableWithinAt + theorem DifferentiableAt.fderivWithin + theorem DifferentiableAt.hasFDerivAt + theorem DifferentiableAt.le_of_lip + def DifferentiableAt + theorem DifferentiableOn.congr + theorem DifferentiableOn.congr_mono + theorem DifferentiableOn.continuousOn + theorem DifferentiableOn.differentiableAt + theorem DifferentiableOn.eventually_differentiableAt + theorem DifferentiableOn.hasFDerivAt + theorem DifferentiableOn.mono + def DifferentiableOn + theorem DifferentiableWithinAt.antimono + theorem DifferentiableWithinAt.congr + theorem DifferentiableWithinAt.congr_mono + theorem DifferentiableWithinAt.congr_of_eventuallyEq + theorem DifferentiableWithinAt.continuousWithinAt + theorem DifferentiableWithinAt.differentiableAt + theorem DifferentiableWithinAt.fderivWithin_congr_mono + theorem DifferentiableWithinAt.hasFDerivWithinAt + theorem DifferentiableWithinAt.mono + theorem DifferentiableWithinAt.mono_of_mem + def DifferentiableWithinAt + theorem Filter.EventuallyEq.differentiableAt_iff + theorem Filter.EventuallyEq.differentiableWithinAt_iff + theorem Filter.EventuallyEq.differentiableWithinAt_iff_of_mem + theorem Filter.EventuallyEq.fderivWithin_eq + theorem Filter.EventuallyEq.fderivWithin_eq_nhds + theorem Filter.EventuallyEq.fderiv_eq + theorem Filter.EventuallyEq.hasFDerivAtFilter_iff + theorem Filter.EventuallyEq.hasFDerivAt_iff + theorem Filter.EventuallyEq.hasFDerivWithinAt_iff + theorem Filter.EventuallyEq.hasFDerivWithinAt_iff_of_mem + theorem Filter.EventuallyEq.hasStrictFDerivAt_iff + theorem HasCompactSupport.fderiv + theorem HasFDerivAt.congr_of_eventuallyEq + theorem HasFDerivAt.continuousAt + theorem HasFDerivAt.differentiableAt + theorem HasFDerivAt.fderiv + theorem HasFDerivAt.hasFDerivAtFilter + theorem HasFDerivAt.hasFDerivWithinAt + theorem HasFDerivAt.le_of_lip' + theorem HasFDerivAt.le_of_lip + theorem HasFDerivAt.lim + theorem HasFDerivAt.unique + def HasFDerivAt + theorem HasFDerivAtFilter.congr_of_eventuallyEq + theorem HasFDerivAtFilter.isBigO_sub + theorem HasFDerivAtFilter.isBigO_sub_rev + theorem HasFDerivAtFilter.tendsto_nhds + def HasFDerivAtFilter + theorem HasFDerivWithinAt.antimono + theorem HasFDerivWithinAt.congr' + theorem HasFDerivWithinAt.congr + theorem HasFDerivWithinAt.congr_mono + theorem HasFDerivWithinAt.congr_of_eventuallyEq + theorem HasFDerivWithinAt.continuousWithinAt + theorem HasFDerivWithinAt.differentiableWithinAt + theorem HasFDerivWithinAt.fderivWithin + theorem HasFDerivWithinAt.hasFDerivAt + theorem HasFDerivWithinAt.insert + theorem HasFDerivWithinAt.lim + theorem HasFDerivWithinAt.mono_of_mem + theorem HasFDerivWithinAt.nhdsWithin + theorem HasFDerivWithinAt.union + theorem HasFDerivWithinAt.unique_on + def HasFDerivWithinAt + theorem HasStrictFDerivAt.congr_of_eventuallyEq + theorem HasStrictFDerivAt.exists_lipschitzOnWith + theorem HasStrictFDerivAt.exists_lipschitzOnWith_of_nnnorm_lt + theorem HasStrictFDerivAt.isBigO_sub + theorem HasStrictFDerivAt.isBigO_sub_rev + def HasStrictFDerivAt + theorem Set.Subsingleton.differentiableOn + theorem UniqueDiffOn.eq + theorem UniqueDiffWithinAt.eq + theorem differentiableAt_const + theorem differentiableAt_id' + theorem differentiableAt_id + theorem differentiableOn_congr + theorem differentiableOn_const + theorem differentiableOn_empty + theorem differentiableOn_id + theorem differentiableOn_of_locally_differentiableOn + theorem differentiableOn_singleton + theorem differentiableOn_univ + theorem differentiableWithinAt_const + theorem differentiableWithinAt_id + theorem differentiableWithinAt_inter' + theorem differentiableWithinAt_inter + theorem differentiableWithinAt_univ + theorem differentiable_const + theorem differentiable_id' + theorem differentiable_id + def fderiv + def fderivWithin + theorem fderivWithin_congr' + theorem fderivWithin_congr + theorem fderivWithin_const_apply + theorem fderivWithin_eq_fderiv + theorem fderivWithin_id' + theorem fderivWithin_id + theorem fderivWithin_inter + theorem fderivWithin_mem_iff + theorem fderivWithin_of_mem_nhds + theorem fderivWithin_of_open + theorem fderivWithin_subset' + theorem fderivWithin_subset + theorem fderivWithin_univ + theorem fderivWithin_zero_of_not_differentiableWithinAt + theorem fderiv_const + theorem fderiv_const_apply + theorem fderiv_eq + theorem fderiv_id' + theorem fderiv_id + theorem fderiv_mem_iff + theorem fderiv_zero_of_not_differentiableAt + theorem hasFDerivAtFilter_const + theorem hasFDerivAtFilter_id + theorem hasFDerivAtFilter_iff_tendsto + theorem hasFDerivAt_const + theorem hasFDerivAt_id + theorem hasFDerivAt_iff_isLittleO_nhds_zero + theorem hasFDerivAt_iff_tendsto + theorem hasFDerivAt_of_subsingleton + theorem hasFDerivAt_zero_of_eventually_const + theorem hasFDerivWithinAt_const + theorem hasFDerivWithinAt_id + theorem hasFDerivWithinAt_iff_tendsto + theorem hasFDerivWithinAt_insert + theorem hasFDerivWithinAt_inter' + theorem hasFDerivWithinAt_inter + theorem hasFDerivWithinAt_of_not_mem_closure + theorem hasFDerivWithinAt_singleton + theorem hasFDerivWithinAt_univ + theorem hasStrictFDerivAt_const + theorem hasStrictFDerivAt_id + theorem support_fderiv_subset 2023-05-21 21:51:32 5e4ff03 feat: port Topology.ContinuousFunction.Bounded (#4075) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Topology/ContinuousFunction/Bounded.lean + def BoundedContinuousFunction.C + theorem BoundedContinuousFunction.Nnreal.upper_bound + def BoundedContinuousFunction.Simps.apply + theorem BoundedContinuousFunction.abs_diff_coe_le_dist + theorem BoundedContinuousFunction.abs_self_eq_nnrealPart_add_nnrealPart_neg + theorem BoundedContinuousFunction.add_apply + theorem BoundedContinuousFunction.add_compContinuous + theorem BoundedContinuousFunction.algebraMap_apply + theorem BoundedContinuousFunction.arzela_ascoli + theorem BoundedContinuousFunction.arzela_ascoli₁ + theorem BoundedContinuousFunction.arzela_ascoli₂ + theorem BoundedContinuousFunction.bddAbove_range_norm_comp + theorem BoundedContinuousFunction.bounded_image + theorem BoundedContinuousFunction.bounded_range + def BoundedContinuousFunction.codRestrict + def BoundedContinuousFunction.coeFnAddHom + theorem BoundedContinuousFunction.coeFn_abs + theorem BoundedContinuousFunction.coeFn_sup + theorem BoundedContinuousFunction.coe_add + theorem BoundedContinuousFunction.coe_compContinuous + theorem BoundedContinuousFunction.coe_intCast + theorem BoundedContinuousFunction.coe_le_coe_add_dist + theorem BoundedContinuousFunction.coe_mul + theorem BoundedContinuousFunction.coe_natCast + theorem BoundedContinuousFunction.coe_neg + theorem BoundedContinuousFunction.coe_normComp + theorem BoundedContinuousFunction.coe_npowRec + theorem BoundedContinuousFunction.coe_nsmul + theorem BoundedContinuousFunction.coe_nsmulRec + theorem BoundedContinuousFunction.coe_ofNormedAddCommGroup + theorem BoundedContinuousFunction.coe_ofNormedAddCommGroupDiscrete + theorem BoundedContinuousFunction.coe_one + theorem BoundedContinuousFunction.coe_pow + theorem BoundedContinuousFunction.coe_restrict + theorem BoundedContinuousFunction.coe_smul + theorem BoundedContinuousFunction.coe_star + theorem BoundedContinuousFunction.coe_sub + theorem BoundedContinuousFunction.coe_sum + theorem BoundedContinuousFunction.coe_to_continuous_fun + theorem BoundedContinuousFunction.coe_zsmul + theorem BoundedContinuousFunction.coe_zsmulRec + def BoundedContinuousFunction.comp + def BoundedContinuousFunction.compContinuous + theorem BoundedContinuousFunction.compContinuous_apply + def BoundedContinuousFunction.const + theorem BoundedContinuousFunction.const_apply' + theorem BoundedContinuousFunction.continuous_coe + theorem BoundedContinuousFunction.continuous_comp + theorem BoundedContinuousFunction.continuous_compContinuous + theorem BoundedContinuousFunction.continuous_eval + theorem BoundedContinuousFunction.continuous_eval_const + theorem BoundedContinuousFunction.dist_coe_le_dist + theorem BoundedContinuousFunction.dist_eq + theorem BoundedContinuousFunction.dist_eq_iSup + theorem BoundedContinuousFunction.dist_extend_extend + theorem BoundedContinuousFunction.dist_le + theorem BoundedContinuousFunction.dist_le_iff_of_nonempty + theorem BoundedContinuousFunction.dist_le_two_norm' + theorem BoundedContinuousFunction.dist_le_two_norm + theorem BoundedContinuousFunction.dist_lt_iff_of_compact + theorem BoundedContinuousFunction.dist_lt_iff_of_nonempty_compact + theorem BoundedContinuousFunction.dist_lt_of_nonempty_compact + theorem BoundedContinuousFunction.dist_set_exists + theorem BoundedContinuousFunction.dist_zero_of_empty + theorem BoundedContinuousFunction.embedding_coeFn + theorem BoundedContinuousFunction.eq_of_empty + def BoundedContinuousFunction.evalClm + theorem BoundedContinuousFunction.evalClm_apply + theorem BoundedContinuousFunction.ext + theorem BoundedContinuousFunction.extend_apply + theorem BoundedContinuousFunction.extend_of_empty + theorem BoundedContinuousFunction.forall_coe_one_iff_one + theorem BoundedContinuousFunction.inducing_coeFn + theorem BoundedContinuousFunction.isometry_extend + theorem BoundedContinuousFunction.lipschitz_comp + theorem BoundedContinuousFunction.lipschitz_compContinuous + theorem BoundedContinuousFunction.lipschitz_evalx + def BoundedContinuousFunction.mkOfBound + theorem BoundedContinuousFunction.mkOfBound_coe + def BoundedContinuousFunction.mkOfCompact + theorem BoundedContinuousFunction.mkOfCompact_add + theorem BoundedContinuousFunction.mkOfCompact_apply + theorem BoundedContinuousFunction.mkOfCompact_neg + theorem BoundedContinuousFunction.mkOfCompact_one + theorem BoundedContinuousFunction.mkOfCompact_sub + def BoundedContinuousFunction.mkOfDiscrete + theorem BoundedContinuousFunction.mul_apply + theorem BoundedContinuousFunction.neg_apply + theorem BoundedContinuousFunction.nndist_coe_le_nndist + theorem BoundedContinuousFunction.nndist_eq + theorem BoundedContinuousFunction.nndist_eq_iSup + theorem BoundedContinuousFunction.nndist_le_two_nnnorm + theorem BoundedContinuousFunction.nndist_set_exists + def BoundedContinuousFunction.nnnorm + theorem BoundedContinuousFunction.nnnorm_coeFn_eq + theorem BoundedContinuousFunction.nnnorm_coe_le_nnnorm + theorem BoundedContinuousFunction.nnnorm_const_eq + theorem BoundedContinuousFunction.nnnorm_const_le + theorem BoundedContinuousFunction.nnnorm_def + theorem BoundedContinuousFunction.nnnorm_eq_iSup_nnnorm + theorem BoundedContinuousFunction.nnnorm_le + def BoundedContinuousFunction.nnrealPart + theorem BoundedContinuousFunction.nnrealPart_coeFn_eq + def BoundedContinuousFunction.normComp + theorem BoundedContinuousFunction.norm_coe_le_norm + theorem BoundedContinuousFunction.norm_compContinuous_le + theorem BoundedContinuousFunction.norm_const_eq + theorem BoundedContinuousFunction.norm_const_le + theorem BoundedContinuousFunction.norm_def + theorem BoundedContinuousFunction.norm_eq + theorem BoundedContinuousFunction.norm_eq_iSup_norm + theorem BoundedContinuousFunction.norm_eq_of_nonempty + theorem BoundedContinuousFunction.norm_eq_zero_of_empty + theorem BoundedContinuousFunction.norm_le + theorem BoundedContinuousFunction.norm_le_of_nonempty + theorem BoundedContinuousFunction.norm_lt_iff_of_compact + theorem BoundedContinuousFunction.norm_lt_iff_of_nonempty_compact + theorem BoundedContinuousFunction.norm_normComp + theorem BoundedContinuousFunction.norm_ofNormedAddCommGroup_le + theorem BoundedContinuousFunction.norm_smul_le + theorem BoundedContinuousFunction.nsmul_apply + def BoundedContinuousFunction.ofNormedAddCommGroup + def BoundedContinuousFunction.ofNormedAddCommGroupDiscrete + theorem BoundedContinuousFunction.one_compContinuous + theorem BoundedContinuousFunction.pow_apply + def BoundedContinuousFunction.restrict + theorem BoundedContinuousFunction.restrict_apply + theorem BoundedContinuousFunction.self_eq_nnrealPart_sub_nnrealPart_neg + theorem BoundedContinuousFunction.smul_apply + theorem BoundedContinuousFunction.star_apply + theorem BoundedContinuousFunction.sub_apply + theorem BoundedContinuousFunction.sum_apply + theorem BoundedContinuousFunction.tendsto_iff_tendstoUniformly + def BoundedContinuousFunction.toContinuousMapAddHom + def BoundedContinuousFunction.toContinuousMapLinearMap + theorem BoundedContinuousFunction.uniformContinuous_coe + theorem BoundedContinuousFunction.uniformContinuous_comp + theorem BoundedContinuousFunction.zsmul_apply + structure BoundedContinuousFunction + theorem ContinuousLinearMap.compLeftContinuousBounded_apply 2023-05-21 21:51:31 7b2fc8a chore: forward-port leanprover-community/mathlib#18848 (#4007) I've been someone sloppy about forward-porting the exact mathport here; a lot of the `classical` additions result in the whole proof being indented, which IMO just adds noise to the diff. What's important is that: * `open Classical` is removed from all the same files * `[DecidableEq _]` is added in the same position to all the same lemmas. In theory mathport will detect if we mess this up, so it's not essential to catch this in review. The linter will tell us if it is added unnecessarily, and the build will fail if is not added someewhere it is needed; so only the argument order is at risk of being wrong. * The new `foo_def` lemmas are all added in `variables.lean` ESTIMATED CHANGES Modified Mathlib/Data/MvPolynomial/Basic.lean +/- theorem MvPolynomial.eval₂_add +/- theorem MvPolynomial.support_add +/- theorem MvPolynomial.support_mul +/- theorem MvPolynomial.support_sum Modified Mathlib/Data/MvPolynomial/CommRing.lean +/- theorem MvPolynomial.degrees_sub +/- theorem MvPolynomial.support_sub +/- theorem MvPolynomial.vars_sub_of_disjoint +/- theorem MvPolynomial.vars_sub_subset Modified Mathlib/Data/MvPolynomial/Equiv.lean Modified Mathlib/Data/MvPolynomial/Monad.lean +/- theorem MvPolynomial.vars_bind₁ Modified Mathlib/Data/MvPolynomial/Rename.lean +/- theorem MvPolynomial.support_rename_of_injective Modified Mathlib/Data/MvPolynomial/Supported.lean Modified Mathlib/Data/MvPolynomial/Variables.lean +/- theorem MvPolynomial.degreeOf_X + theorem MvPolynomial.degreeOf_def +/- theorem MvPolynomial.degrees_add +/- theorem MvPolynomial.degrees_add_of_disjoint + theorem MvPolynomial.degrees_def +/- theorem MvPolynomial.degrees_monomial +/- theorem MvPolynomial.degrees_sum +/- theorem MvPolynomial.vars_add_of_disjoint +/- theorem MvPolynomial.vars_add_subset + theorem MvPolynomial.vars_def +/- theorem MvPolynomial.vars_eq_support_biUnion_support +/- theorem MvPolynomial.vars_map +/- theorem MvPolynomial.vars_mul +/- theorem MvPolynomial.vars_prod +/- theorem MvPolynomial.vars_rename +/- theorem MvPolynomial.vars_sum_of_disjoint +/- theorem MvPolynomial.vars_sum_subset Modified Mathlib/RingTheory/MvPolynomial/Basic.lean +/- theorem MvPolynomial.mem_restrictDegree_iff_sup Modified Mathlib/RingTheory/MvPolynomial/Symmetric.lean Modified Mathlib/RingTheory/MvPolynomial/WeightedHomogeneous.lean +/- theorem MvPolynomial.coeff_weightedHomogeneousComponent +/- theorem MvPolynomial.weightedHomogeneousComponent_apply +/- theorem MvPolynomial.weightedHomogeneousComponent_weighted_homogeneous_polynomial 2023-05-21 21:36:10 b37b871 feat: port LinearAlgebra.Matrix.Charpoly.LinearMap (#4172) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/LinearAlgebra/Matrix/Charpoly/LinearMap.lean + theorem LinearMap.exists_monic_and_aeval_eq_zero + theorem LinearMap.exists_monic_and_coeff_mem_pow_and_aeval_eq_zero_of_range_le_smul + theorem Matrix.Represents.add + theorem Matrix.Represents.congr_fun + theorem Matrix.Represents.eq + theorem Matrix.Represents.mul + theorem Matrix.Represents.one + theorem Matrix.Represents.smul + theorem Matrix.Represents.zero + def Matrix.Represents + theorem Matrix.isRepresentation.eq_toEnd_of_represents + theorem Matrix.isRepresentation.toEnd_exists_mem_ideal + theorem Matrix.isRepresentation.toEnd_represents + theorem Matrix.isRepresentation.toEnd_surjective + def Matrix.isRepresentation + theorem Matrix.represents_iff' + theorem Matrix.represents_iff + def PiToModule.fromEnd + theorem PiToModule.fromEnd_apply + theorem PiToModule.fromEnd_apply_single_one + theorem PiToModule.fromEnd_injective + def PiToModule.fromMatrix + theorem PiToModule.fromMatrix_apply + theorem PiToModule.fromMatrix_apply_single_one 2023-05-21 19:38:13 92b28a1 feat: port AlgebraicGeometry.ProjectiveSpectrum.Topology (#4171) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/AlgebraicGeometry/ProjectiveSpectrum/Topology.lean + theorem ProjectiveSpectrum.as_ideal_le_as_ideal + theorem ProjectiveSpectrum.as_ideal_lt_as_ideal + def ProjectiveSpectrum.basicOpen + theorem ProjectiveSpectrum.basicOpen_eq_union_of_projection + theorem ProjectiveSpectrum.basicOpen_eq_zeroLocus_compl + theorem ProjectiveSpectrum.basicOpen_mul + theorem ProjectiveSpectrum.basicOpen_mul_le_left + theorem ProjectiveSpectrum.basicOpen_mul_le_right + theorem ProjectiveSpectrum.basicOpen_one + theorem ProjectiveSpectrum.basicOpen_pow + theorem ProjectiveSpectrum.basicOpen_zero + theorem ProjectiveSpectrum.coe_vanishingIdeal + theorem ProjectiveSpectrum.gc_homogeneousIdeal + theorem ProjectiveSpectrum.gc_ideal + theorem ProjectiveSpectrum.gc_set + theorem ProjectiveSpectrum.homogeneousIdeal_le_vanishingIdeal_zeroLocus + theorem ProjectiveSpectrum.ideal_le_vanishingIdeal_zeroLocus + theorem ProjectiveSpectrum.isClosed_iff_zeroLocus + theorem ProjectiveSpectrum.isClosed_zeroLocus + theorem ProjectiveSpectrum.isOpen_basicOpen + theorem ProjectiveSpectrum.isOpen_iff + theorem ProjectiveSpectrum.isTopologicalBasis_basic_opens + theorem ProjectiveSpectrum.le_iff_mem_closure + theorem ProjectiveSpectrum.mem_basicOpen + theorem ProjectiveSpectrum.mem_coe_basicOpen + theorem ProjectiveSpectrum.mem_compl_zeroLocus_iff_not_mem + theorem ProjectiveSpectrum.mem_vanishingIdeal + theorem ProjectiveSpectrum.mem_zeroLocus + theorem ProjectiveSpectrum.subset_vanishingIdeal_zeroLocus + theorem ProjectiveSpectrum.subset_zeroLocus_iff_le_vanishingIdeal + theorem ProjectiveSpectrum.subset_zeroLocus_iff_subset_vanishingIdeal + theorem ProjectiveSpectrum.subset_zeroLocus_vanishingIdeal + theorem ProjectiveSpectrum.sup_vanishingIdeal_le + def ProjectiveSpectrum.top + theorem ProjectiveSpectrum.union_zeroLocus + def ProjectiveSpectrum.vanishingIdeal + theorem ProjectiveSpectrum.vanishingIdeal_anti_mono + theorem ProjectiveSpectrum.vanishingIdeal_closure + theorem ProjectiveSpectrum.vanishingIdeal_iUnion + theorem ProjectiveSpectrum.vanishingIdeal_singleton + theorem ProjectiveSpectrum.vanishingIdeal_union + theorem ProjectiveSpectrum.vanishingIdeal_univ + def ProjectiveSpectrum.zeroLocus + theorem ProjectiveSpectrum.zeroLocus_anti_mono + theorem ProjectiveSpectrum.zeroLocus_anti_mono_homogeneousIdeal + theorem ProjectiveSpectrum.zeroLocus_anti_mono_ideal + theorem ProjectiveSpectrum.zeroLocus_bUnion + theorem ProjectiveSpectrum.zeroLocus_bot + theorem ProjectiveSpectrum.zeroLocus_empty + theorem ProjectiveSpectrum.zeroLocus_empty_of_one_mem + theorem ProjectiveSpectrum.zeroLocus_iSup_homogeneousIdeal + theorem ProjectiveSpectrum.zeroLocus_iSup_ideal + theorem ProjectiveSpectrum.zeroLocus_iUnion + theorem ProjectiveSpectrum.zeroLocus_inf + theorem ProjectiveSpectrum.zeroLocus_mul_homogeneousIdeal + theorem ProjectiveSpectrum.zeroLocus_mul_ideal + theorem ProjectiveSpectrum.zeroLocus_singleton_mul + theorem ProjectiveSpectrum.zeroLocus_singleton_one + theorem ProjectiveSpectrum.zeroLocus_singleton_pow + theorem ProjectiveSpectrum.zeroLocus_singleton_zero + theorem ProjectiveSpectrum.zeroLocus_span + theorem ProjectiveSpectrum.zeroLocus_sup_homogeneousIdeal + theorem ProjectiveSpectrum.zeroLocus_sup_ideal + theorem ProjectiveSpectrum.zeroLocus_union + theorem ProjectiveSpectrum.zeroLocus_univ + theorem ProjectiveSpectrum.zeroLocus_vanishingIdeal_eq_closure + structure ProjectiveSpectrum 2023-05-21 17:21:30 a1ec399 feat: port LinearAlgebra.Matrix.Charpoly.Coeff (#4169) Most of the file had minor fixes. I added porting notes for everything that was not just a capitalization issue. I tried to fix all the capitalization issues in the first actual commit (2492f1c1add83cbcf58705a03c6e1c22d5218eb9). The next commit (b59a8cf3d8863ddd882e27e0e28b97bd39d4c768) contains all the porting notes. I still have not managed to fix one of the proofs, though. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/LinearAlgebra/Matrix/Charpoly/Coeff.lean + theorem Matrix.aeval_eq_aeval_mod_charpoly + theorem Matrix.charpoly_coeff_eq_prod_coeff_of_le + theorem Matrix.charpoly_degree_eq_dim + theorem Matrix.charpoly_monic + theorem Matrix.charpoly_natDegree_eq_dim + theorem Matrix.charpoly_sub_diagonal_degree_lt + theorem Matrix.det_eq_sign_charpoly_coeff + theorem Matrix.det_of_card_zero + theorem Matrix.eval_det + theorem Matrix.matPolyEquiv_eval + theorem Matrix.pow_eq_aeval_mod_charpoly + theorem Matrix.trace_eq_neg_charpoly_coeff + theorem charmatrix_apply_natDegree + theorem charmatrix_apply_natDegree_le + theorem coeff_charpoly_mem_ideal_pow + theorem matPolyEquiv_eq_x_pow_sub_c 2023-05-21 17:05:57 e7aad4d feat: port MeasureTheory.Constructions.BorelSpace.ContinuousLinearMap (#4163) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/MeasureTheory/Constructions/BorelSpace/ContinuousLinearMap.lean + theorem AEMeasurable.apply_continuousLinearMap + theorem ContinuousLinearMap.measurable_apply' + theorem ContinuousLinearMap.measurable_apply + theorem ContinuousLinearMap.measurable_coe + theorem ContinuousLinearMap.measurable_comp + theorem Measurable.apply_continuousLinearMap + theorem aemeasurable_smul_const + theorem measurable_smul_const 2023-05-21 17:05:56 9b4547a feat: port MeasureTheory.Measure.Stieltjes (#4067) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/MeasureTheory/Measure/Stieltjes.lean + theorem MeasureTheory.tendsto_measure_Ici_atBot + theorem MeasureTheory.tendsto_measure_Ico_atTop + theorem MeasureTheory.tendsto_measure_Iic_atTop + theorem MeasureTheory.tendsto_measure_Ioc_atBot + theorem Monotone.stieltjesFunction_eq + theorem StieltjesFunction.borel_le_measurable + theorem StieltjesFunction.countable_leftLim_ne + theorem StieltjesFunction.iInf_Ioi_eq + theorem StieltjesFunction.iInf_rat_gt_eq + theorem StieltjesFunction.id_leftLim + def StieltjesFunction.length + theorem StieltjesFunction.length_Ioc + theorem StieltjesFunction.length_empty + theorem StieltjesFunction.length_mono + theorem StieltjesFunction.length_subadditive_Icc_Ioo + theorem StieltjesFunction.measurableSet_Ioi + theorem StieltjesFunction.measure_Icc + theorem StieltjesFunction.measure_Ici + theorem StieltjesFunction.measure_Ico + theorem StieltjesFunction.measure_Iic + theorem StieltjesFunction.measure_Ioc + theorem StieltjesFunction.measure_Ioo + theorem StieltjesFunction.measure_singleton + theorem StieltjesFunction.measure_univ + theorem StieltjesFunction.mono + theorem StieltjesFunction.outer_Ioc + theorem StieltjesFunction.outer_le_length + theorem StieltjesFunction.outer_trim + theorem StieltjesFunction.rightLim_eq + theorem StieltjesFunction.right_continuous + structure StieltjesFunction + theorem exists_seq_antitone_tendsto_atTop_atBot + theorem exists_seq_monotone_tendsto_atTop_atTop + theorem iInf_Ioi_eq_iInf_rat_gt + theorem iSup_eq_iSup_subseq_of_antitone + theorem rightLim_eq_of_tendsto + theorem rightLim_eq_sInf 2023-05-21 17:05:54 28e1d29 feat: port MeasureTheory.Integral.Lebesgue (#4058) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/MeasureTheory/Integral/Lebesgue.lean + theorem ENNReal.count_const_le_le_of_tsum_le + theorem ENNReal.tsum_const_eq + theorem IsFiniteMeasure.lintegral_lt_top_of_bounded_to_eNNReal + theorem MeasurableEmbedding.lintegral_map + def MeasureTheory.Measure.withDensity + theorem MeasureTheory.MeasurePreserving.lintegral_comp + theorem MeasureTheory.MeasurePreserving.lintegral_comp_emb + theorem MeasureTheory.MeasurePreserving.set_lintegral_comp_emb + theorem MeasureTheory.MeasurePreserving.set_lintegral_comp_preimage + theorem MeasureTheory.MeasurePreserving.set_lintegral_comp_preimage_emb + theorem MeasureTheory.SimpleFunc.exists_lt_lintegral_simpleFunc_of_lt_lintegral + theorem MeasureTheory.SimpleFunc.lintegral_eq_lintegral + theorem MeasureTheory.aEMeasurable_withDensity_eNNReal_iff + theorem MeasureTheory.ae_eq_of_ae_le_of_lintegral_le + theorem MeasureTheory.ae_lt_top' + theorem MeasureTheory.ae_lt_top + theorem MeasureTheory.ae_withDensity_iff + theorem MeasureTheory.ae_withDensity_iff_ae_restrict + theorem MeasureTheory.exists_absolutelyContinuous_finiteMeasure + theorem MeasureTheory.exists_lt_lintegral_simpleFunc_of_lt_lintegral + theorem MeasureTheory.exists_measurable_le_lintegral_eq + theorem MeasureTheory.exists_pos_lintegral_lt_of_sigmaFinite + theorem MeasureTheory.exists_pos_set_lintegral_lt_of_measure_lt + theorem MeasureTheory.exists_simpleFunc_forall_lintegral_sub_lt_of_pos + theorem MeasureTheory.finiteMeasure_withDensity + theorem MeasureTheory.hasSum_lintegral_measure + theorem MeasureTheory.iSup_lintegral_le + theorem MeasureTheory.iSup_lintegral_measurable_le_eq_lintegral + theorem MeasureTheory.iSup₂_lintegral_le + theorem MeasureTheory.le_iInf_lintegral + theorem MeasureTheory.le_iInf₂_lintegral + theorem MeasureTheory.le_lintegral_add + theorem MeasureTheory.limsup_lintegral_le + theorem MeasureTheory.lintegral_add_aux + theorem MeasureTheory.lintegral_add_compl + theorem MeasureTheory.lintegral_add_left' + theorem MeasureTheory.lintegral_add_left + theorem MeasureTheory.lintegral_add_measure + theorem MeasureTheory.lintegral_add_mul_meas_add_le_le_lintegral + theorem MeasureTheory.lintegral_add_right' + theorem MeasureTheory.lintegral_add_right + theorem MeasureTheory.lintegral_biUnion + theorem MeasureTheory.lintegral_biUnion_finset + theorem MeasureTheory.lintegral_biUnion_finset₀ + theorem MeasureTheory.lintegral_biUnion₀ + theorem MeasureTheory.lintegral_comp + theorem MeasureTheory.lintegral_congr + theorem MeasureTheory.lintegral_congr_ae + theorem MeasureTheory.lintegral_const + theorem MeasureTheory.lintegral_const_lt_top + theorem MeasureTheory.lintegral_const_mul'' + theorem MeasureTheory.lintegral_const_mul' + theorem MeasureTheory.lintegral_const_mul + theorem MeasureTheory.lintegral_const_mul_le + theorem MeasureTheory.lintegral_count' + theorem MeasureTheory.lintegral_count + theorem MeasureTheory.lintegral_countable' + theorem MeasureTheory.lintegral_countable + theorem MeasureTheory.lintegral_dirac' + theorem MeasureTheory.lintegral_dirac + theorem MeasureTheory.lintegral_eq_iSup_eapprox_lintegral + theorem MeasureTheory.lintegral_eq_nnreal + theorem MeasureTheory.lintegral_eq_top_of_measure_eq_top_pos + theorem MeasureTheory.lintegral_eq_zero_iff' + theorem MeasureTheory.lintegral_eq_zero_iff + theorem MeasureTheory.lintegral_finset + theorem MeasureTheory.lintegral_finset_sum' + theorem MeasureTheory.lintegral_finset_sum + theorem MeasureTheory.lintegral_finset_sum_measure + theorem MeasureTheory.lintegral_fintype + theorem MeasureTheory.lintegral_iInf + theorem MeasureTheory.lintegral_iInf_ae + theorem MeasureTheory.lintegral_iSup' + theorem MeasureTheory.lintegral_iSup + theorem MeasureTheory.lintegral_iSup_ae + theorem MeasureTheory.lintegral_iSup_directed + theorem MeasureTheory.lintegral_iSup_directed_of_measurable + theorem MeasureTheory.lintegral_iUnion + theorem MeasureTheory.lintegral_iUnion_le + theorem MeasureTheory.lintegral_iUnion₀ + theorem MeasureTheory.lintegral_indicator + theorem MeasureTheory.lintegral_indicator_const + theorem MeasureTheory.lintegral_indicator_const_comp + theorem MeasureTheory.lintegral_indicator₀ + theorem MeasureTheory.lintegral_insert + theorem MeasureTheory.lintegral_inter_add_diff + theorem MeasureTheory.lintegral_le_of_forall_fin_meas_le' + theorem MeasureTheory.lintegral_le_of_forall_fin_meas_le + theorem MeasureTheory.lintegral_le_of_forall_fin_meas_le_of_measurable + theorem MeasureTheory.lintegral_liminf_le' + theorem MeasureTheory.lintegral_liminf_le + theorem MeasureTheory.lintegral_lintegral_mul + theorem MeasureTheory.lintegral_map' + theorem MeasureTheory.lintegral_map + theorem MeasureTheory.lintegral_map_equiv + theorem MeasureTheory.lintegral_map_le + theorem MeasureTheory.lintegral_max + theorem MeasureTheory.lintegral_mono' + theorem MeasureTheory.lintegral_mono + theorem MeasureTheory.lintegral_mono_ae + theorem MeasureTheory.lintegral_mono_nnreal + theorem MeasureTheory.lintegral_mono_set' + theorem MeasureTheory.lintegral_mono_set + theorem MeasureTheory.lintegral_mul_const'' + theorem MeasureTheory.lintegral_mul_const' + theorem MeasureTheory.lintegral_mul_const + theorem MeasureTheory.lintegral_mul_const_le + theorem MeasureTheory.lintegral_nnnorm_eq_of_ae_nonneg + theorem MeasureTheory.lintegral_nnnorm_eq_of_nonneg + theorem MeasureTheory.lintegral_ofReal_le_lintegral_nnnorm + theorem MeasureTheory.lintegral_one + theorem MeasureTheory.lintegral_pos_iff_support + theorem MeasureTheory.lintegral_rw₁ + theorem MeasureTheory.lintegral_rw₂ + theorem MeasureTheory.lintegral_singleton' + theorem MeasureTheory.lintegral_singleton + theorem MeasureTheory.lintegral_smul_measure + theorem MeasureTheory.lintegral_strict_mono + theorem MeasureTheory.lintegral_strict_mono_of_ae_le_of_ae_lt_on + theorem MeasureTheory.lintegral_strict_mono_of_ae_le_of_frequently_ae_lt + theorem MeasureTheory.lintegral_sub' + theorem MeasureTheory.lintegral_sub + theorem MeasureTheory.lintegral_sub_le' + theorem MeasureTheory.lintegral_sub_le + theorem MeasureTheory.lintegral_sum_measure + theorem MeasureTheory.lintegral_tendsto_of_tendsto_of_monotone + theorem MeasureTheory.lintegral_trim + theorem MeasureTheory.lintegral_trim_ae + theorem MeasureTheory.lintegral_tsum + theorem MeasureTheory.lintegral_union + theorem MeasureTheory.lintegral_unique + theorem MeasureTheory.lintegral_withDensity_eq_lintegral_mul + theorem MeasureTheory.lintegral_withDensity_eq_lintegral_mul_non_measurable + theorem MeasureTheory.lintegral_withDensity_eq_lintegral_mul_non_measurable₀ + theorem MeasureTheory.lintegral_withDensity_eq_lintegral_mul₀' + theorem MeasureTheory.lintegral_withDensity_eq_lintegral_mul₀ + theorem MeasureTheory.lintegral_withDensity_le_lintegral_mul + theorem MeasureTheory.lintegral_zero + theorem MeasureTheory.lintegral_zero_fun + theorem MeasureTheory.lintegral_zero_measure + theorem MeasureTheory.meas_ge_le_lintegral_div + theorem MeasureTheory.monotone_lintegral + theorem MeasureTheory.mul_meas_ge_le_lintegral + theorem MeasureTheory.mul_meas_ge_le_lintegral₀ + theorem MeasureTheory.restrict_dirac' + theorem MeasureTheory.restrict_dirac + theorem MeasureTheory.restrict_withDensity + theorem MeasureTheory.set_lintegral_congr + theorem MeasureTheory.set_lintegral_congr_fun + theorem MeasureTheory.set_lintegral_const + theorem MeasureTheory.set_lintegral_const_lt_top + theorem MeasureTheory.set_lintegral_dirac' + theorem MeasureTheory.set_lintegral_dirac + theorem MeasureTheory.set_lintegral_empty + theorem MeasureTheory.set_lintegral_eq_const + theorem MeasureTheory.set_lintegral_lt_top_of_bddAbove + theorem MeasureTheory.set_lintegral_lt_top_of_isCompact + theorem MeasureTheory.set_lintegral_map + theorem MeasureTheory.set_lintegral_max + theorem MeasureTheory.set_lintegral_measure_zero + theorem MeasureTheory.set_lintegral_mono + theorem MeasureTheory.set_lintegral_mono_ae + theorem MeasureTheory.set_lintegral_one + theorem MeasureTheory.set_lintegral_strict_mono + theorem MeasureTheory.set_lintegral_univ + theorem MeasureTheory.set_lintegral_withDensity_eq_set_lintegral_mul + theorem MeasureTheory.set_lintegral_withDensity_eq_set_lintegral_mul_non_measurable + theorem MeasureTheory.set_lintegral_withDensity_eq_set_lintegral_mul_non_measurable₀ + theorem MeasureTheory.tendsto_lintegral_filter_of_dominated_convergence + theorem MeasureTheory.tendsto_lintegral_of_dominated_convergence' + theorem MeasureTheory.tendsto_lintegral_of_dominated_convergence + theorem MeasureTheory.tendsto_set_lintegral_zero + theorem MeasureTheory.univ_le_of_forall_fin_meas_le + theorem MeasureTheory.withDensity_absolutelyContinuous + theorem MeasureTheory.withDensity_add_left + theorem MeasureTheory.withDensity_add_measure + theorem MeasureTheory.withDensity_add_right + theorem MeasureTheory.withDensity_apply + theorem MeasureTheory.withDensity_apply_eq_zero + theorem MeasureTheory.withDensity_congr_ae + theorem MeasureTheory.withDensity_eq_zero + theorem MeasureTheory.withDensity_indicator + theorem MeasureTheory.withDensity_indicator_one + theorem MeasureTheory.withDensity_mul + theorem MeasureTheory.withDensity_ofReal_mutuallySingular + theorem MeasureTheory.withDensity_one + theorem MeasureTheory.withDensity_smul' + theorem MeasureTheory.withDensity_smul + theorem MeasureTheory.withDensity_sum + theorem MeasureTheory.withDensity_tsum + theorem MeasureTheory.withDensity_zero + theorem NNReal.count_const_le_le_of_tsum_le + def unexpandLIntegral 2023-05-21 16:45:44 76bc165 feat: port MeasureTheory.Function.SimpleFuncDense (#4099) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/MeasureTheory/Function/SimpleFuncDense.lean + theorem MeasureTheory.SimpleFunc.approxOn_comp + theorem MeasureTheory.SimpleFunc.approxOn_mem + theorem MeasureTheory.SimpleFunc.approxOn_zero + theorem MeasureTheory.SimpleFunc.edist_approxOn_le + theorem MeasureTheory.SimpleFunc.edist_approxOn_mono + theorem MeasureTheory.SimpleFunc.edist_approxOn_y0_le + theorem MeasureTheory.SimpleFunc.edist_nearestPt_le + theorem MeasureTheory.SimpleFunc.nearestPtInd_le + theorem MeasureTheory.SimpleFunc.nearestPtInd_succ + theorem MeasureTheory.SimpleFunc.nearestPtInd_zero + theorem MeasureTheory.SimpleFunc.nearestPt_zero + theorem MeasureTheory.SimpleFunc.tendsto_approxOn + theorem MeasureTheory.SimpleFunc.tendsto_nearestPt 2023-05-21 16:29:27 3676f83 feat: port MeasureTheory.Function.Floor (#4166) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/MeasureTheory/Function/Floor.lean + theorem Int.measurable_ceil + theorem Int.measurable_floor + theorem Measurable.ceil + theorem Measurable.floor + theorem Measurable.fract + theorem Measurable.nat_ceil + theorem Measurable.nat_floor + theorem MeasurableSet.image_fract + theorem Nat.measurable_ceil + theorem Nat.measurable_floor + theorem measurable_fract 2023-05-21 16:29:26 d05ddaf feat: port MeasureTheory.Measure.Regular (#4101) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/MeasureTheory/Measure/Regular.lean + theorem IsOpen.exists_lt_isClosed + theorem IsOpen.exists_lt_isCompact + theorem IsOpen.measure_eq_iSup_isClosed + theorem IsOpen.measure_eq_iSup_isCompact + theorem MeasurableSet.exists_isClosed_diff_lt + theorem MeasurableSet.exists_isClosed_lt_add + theorem MeasurableSet.exists_isCompact_diff_lt + theorem MeasurableSet.exists_isCompact_lt_add + theorem MeasurableSet.exists_isOpen_diff_lt + theorem MeasurableSet.exists_lt_isClosed_of_ne_top + theorem MeasurableSet.exists_lt_isCompact_of_ne_top + theorem MeasurableSet.measure_eq_iSup_isClosed_of_ne_top + theorem MeasurableSet.measure_eq_iSup_isCompact_of_ne_top + theorem MeasureTheory.Measure.InnerRegular.exists_subset_lt_add + theorem MeasureTheory.Measure.InnerRegular.isCompact_isClosed + theorem MeasureTheory.Measure.InnerRegular.map + theorem MeasureTheory.Measure.InnerRegular.measurableSet_of_open + theorem MeasureTheory.Measure.InnerRegular.measure_eq_iSup + theorem MeasureTheory.Measure.InnerRegular.of_pseudoEMetricSpace + theorem MeasureTheory.Measure.InnerRegular.smul + theorem MeasureTheory.Measure.InnerRegular.trans + theorem MeasureTheory.Measure.InnerRegular.weaklyRegular_of_finite + def MeasureTheory.Measure.InnerRegular + theorem MeasureTheory.Measure.Regular.exists_compact_not_null + theorem MeasureTheory.Measure.Regular.innerRegular_measurable + theorem MeasureTheory.Measure.WeaklyRegular.innerRegular_measurable + theorem MeasureTheory.Measure.WeaklyRegular.restrict_of_measurableSet + theorem Set.exists_isOpen_le_add + theorem Set.exists_isOpen_lt_add + theorem Set.exists_isOpen_lt_of_lt + theorem Set.measure_eq_iInf_isOpen 2023-05-21 16:29:24 9646956 feat: port MeasureTheory.Constructions.Polish (#4064) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/MeasureTheory/Constructions/Polish.lean + theorem Continuous.measurableEmbedding + theorem ContinuousOn.measurableEmbedding + theorem IsClosed.analyticSet + theorem IsClosed.measurableSet_image_of_continuousOn_injOn + theorem IsOpen.analyticSet_image + theorem Measurable.exists_continuous + theorem Measurable.measurableEmbedding + theorem MeasurableSet.analyticSet + theorem MeasurableSet.image_of_continuousOn_injOn + theorem MeasurableSet.image_of_measurable_injOn + theorem MeasurableSet.isClopenable + theorem MeasureTheory.AnalyticSet.iInter + theorem MeasureTheory.AnalyticSet.iUnion + theorem MeasureTheory.AnalyticSet.image_of_continuous + theorem MeasureTheory.AnalyticSet.image_of_continuousOn + theorem MeasureTheory.AnalyticSet.measurablySeparable + theorem MeasureTheory.MeasurablySeparable.iUnion + def MeasureTheory.MeasurablySeparable + theorem MeasureTheory.analyticSet_empty + theorem MeasureTheory.analyticSet_iff_exists_polishSpace_range + theorem MeasureTheory.analyticSet_range_of_polishSpace + theorem MeasureTheory.exists_measurableEmbedding_real + theorem MeasureTheory.exists_nat_measurableEquiv_range_coe_fin_of_finite + theorem MeasureTheory.exists_subset_real_measurableEquiv + theorem MeasureTheory.isClopenable_iff_measurableSet + theorem MeasureTheory.measurableEquiv_range_coe_nat_of_infinite_of_countable + theorem MeasureTheory.measurableSet_exists_tendsto + theorem MeasureTheory.measurableSet_range_of_continuous_injective + theorem MeasureTheory.measurablySeparable_range_of_disjoint 2023-05-21 16:04:44 39893cc feat: port MeasureTheory.Function.SimpleFunc (#4043) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/MeasureTheory/Function/SimpleFunc.lean + theorem Measurable.ennreal_induction + theorem MeasureTheory.SimpleFunc.FinMeasSupp.iff_lintegral_lt_top + theorem MeasureTheory.SimpleFunc.FinMeasSupp.lintegral_lt_top + theorem MeasureTheory.SimpleFunc.FinMeasSupp.map_iff + theorem MeasureTheory.SimpleFunc.FinMeasSupp.meas_preimage_singleton_ne_zero + theorem MeasureTheory.SimpleFunc.FinMeasSupp.of_lintegral_ne_top + theorem MeasureTheory.SimpleFunc.FinMeasSupp.of_map + theorem MeasureTheory.SimpleFunc.add_lintegral + theorem MeasureTheory.SimpleFunc.apply_mk + def MeasureTheory.SimpleFunc.approx + theorem MeasureTheory.SimpleFunc.approx_apply + theorem MeasureTheory.SimpleFunc.approx_comp + def MeasureTheory.SimpleFunc.bind + theorem MeasureTheory.SimpleFunc.bind_apply + theorem MeasureTheory.SimpleFunc.bind_const + theorem MeasureTheory.SimpleFunc.coe_comp + theorem MeasureTheory.SimpleFunc.coe_const + theorem MeasureTheory.SimpleFunc.coe_div + theorem MeasureTheory.SimpleFunc.coe_inf + theorem MeasureTheory.SimpleFunc.coe_injective + theorem MeasureTheory.SimpleFunc.coe_inv + theorem MeasureTheory.SimpleFunc.coe_le + theorem MeasureTheory.SimpleFunc.coe_map + theorem MeasureTheory.SimpleFunc.coe_mul + theorem MeasureTheory.SimpleFunc.coe_one + theorem MeasureTheory.SimpleFunc.coe_piecewise + theorem MeasureTheory.SimpleFunc.coe_pow + theorem MeasureTheory.SimpleFunc.coe_range + theorem MeasureTheory.SimpleFunc.coe_restrict + theorem MeasureTheory.SimpleFunc.coe_smul + theorem MeasureTheory.SimpleFunc.coe_sup + theorem MeasureTheory.SimpleFunc.coe_zpow + def MeasureTheory.SimpleFunc.comp + def MeasureTheory.SimpleFunc.const + theorem MeasureTheory.SimpleFunc.const_apply + theorem MeasureTheory.SimpleFunc.const_lintegral + theorem MeasureTheory.SimpleFunc.const_lintegral_restrict + theorem MeasureTheory.SimpleFunc.const_mul_eq_map + theorem MeasureTheory.SimpleFunc.const_mul_lintegral + theorem MeasureTheory.SimpleFunc.const_one + theorem MeasureTheory.SimpleFunc.div_apply + def MeasureTheory.SimpleFunc.eapprox + def MeasureTheory.SimpleFunc.eapproxDiff + theorem MeasureTheory.SimpleFunc.eapprox_comp + theorem MeasureTheory.SimpleFunc.eapprox_lt_top + def MeasureTheory.SimpleFunc.ennrealRatEmbed + theorem MeasureTheory.SimpleFunc.ennrealRatEmbed_encode + theorem MeasureTheory.SimpleFunc.eq_zero_of_mem_range_zero + theorem MeasureTheory.SimpleFunc.exists_forall_le + theorem MeasureTheory.SimpleFunc.exists_range_iff + theorem MeasureTheory.SimpleFunc.ext + def MeasureTheory.SimpleFunc.extend + theorem MeasureTheory.SimpleFunc.extend_apply' + theorem MeasureTheory.SimpleFunc.extend_apply + theorem MeasureTheory.SimpleFunc.extend_comp_eq' + theorem MeasureTheory.SimpleFunc.extend_comp_eq + theorem MeasureTheory.SimpleFunc.finMeasSupp_iff + theorem MeasureTheory.SimpleFunc.finMeasSupp_iff_support + theorem MeasureTheory.SimpleFunc.finite_range + theorem MeasureTheory.SimpleFunc.finset_sup_apply + theorem MeasureTheory.SimpleFunc.forall_range_iff + theorem MeasureTheory.SimpleFunc.iSup_approx_apply + theorem MeasureTheory.SimpleFunc.iSup_eapprox_apply + theorem MeasureTheory.SimpleFunc.inf_apply + theorem MeasureTheory.SimpleFunc.inv_apply + theorem MeasureTheory.SimpleFunc.le_sup_lintegral + def MeasureTheory.SimpleFunc.lintegral + theorem MeasureTheory.SimpleFunc.lintegral_add + theorem MeasureTheory.SimpleFunc.lintegral_congr + theorem MeasureTheory.SimpleFunc.lintegral_eq_of_measure_preimage + theorem MeasureTheory.SimpleFunc.lintegral_eq_of_subset' + theorem MeasureTheory.SimpleFunc.lintegral_eq_of_subset + theorem MeasureTheory.SimpleFunc.lintegral_map' + theorem MeasureTheory.SimpleFunc.lintegral_map + theorem MeasureTheory.SimpleFunc.lintegral_mono + theorem MeasureTheory.SimpleFunc.lintegral_restrict + theorem MeasureTheory.SimpleFunc.lintegral_smul + theorem MeasureTheory.SimpleFunc.lintegral_sum + theorem MeasureTheory.SimpleFunc.lintegral_zero + def MeasureTheory.SimpleFunc.lintegralₗ + def MeasureTheory.SimpleFunc.map + theorem MeasureTheory.SimpleFunc.map_apply + theorem MeasureTheory.SimpleFunc.map_coe_ennreal_restrict + theorem MeasureTheory.SimpleFunc.map_coe_nnreal_restrict + theorem MeasureTheory.SimpleFunc.map_const + theorem MeasureTheory.SimpleFunc.map_lintegral + theorem MeasureTheory.SimpleFunc.map_map + theorem MeasureTheory.SimpleFunc.map_mul + theorem MeasureTheory.SimpleFunc.map_preimage + theorem MeasureTheory.SimpleFunc.map_preimage_singleton + theorem MeasureTheory.SimpleFunc.map_restrict_of_zero + theorem MeasureTheory.SimpleFunc.measurableSet_cut + theorem MeasureTheory.SimpleFunc.measurableSet_fiber + theorem MeasureTheory.SimpleFunc.measurableSet_preimage + theorem MeasureTheory.SimpleFunc.measurableSet_support + theorem MeasureTheory.SimpleFunc.measurable_bind + theorem MeasureTheory.SimpleFunc.mem_image_of_mem_range_restrict + theorem MeasureTheory.SimpleFunc.mem_range + theorem MeasureTheory.SimpleFunc.mem_range_of_measure_ne_zero + theorem MeasureTheory.SimpleFunc.mem_range_self + theorem MeasureTheory.SimpleFunc.mem_restrict_range + theorem MeasureTheory.SimpleFunc.monotone_approx + theorem MeasureTheory.SimpleFunc.monotone_eapprox + theorem MeasureTheory.SimpleFunc.mul_apply + theorem MeasureTheory.SimpleFunc.mul_eq_map₂ + def MeasureTheory.SimpleFunc.ofIsEmpty + def MeasureTheory.SimpleFunc.pair + theorem MeasureTheory.SimpleFunc.pair_apply + theorem MeasureTheory.SimpleFunc.pair_preimage + theorem MeasureTheory.SimpleFunc.pair_preimage_singleton + def MeasureTheory.SimpleFunc.piecewise + theorem MeasureTheory.SimpleFunc.piecewise_apply + theorem MeasureTheory.SimpleFunc.piecewise_compl + theorem MeasureTheory.SimpleFunc.piecewise_empty + theorem MeasureTheory.SimpleFunc.piecewise_univ + theorem MeasureTheory.SimpleFunc.pow_apply + theorem MeasureTheory.SimpleFunc.preimage_eq_empty_iff + theorem MeasureTheory.SimpleFunc.range_comp_subset_range + theorem MeasureTheory.SimpleFunc.range_const + theorem MeasureTheory.SimpleFunc.range_const_subset + theorem MeasureTheory.SimpleFunc.range_eq_empty_of_isEmpty + theorem MeasureTheory.SimpleFunc.range_indicator + theorem MeasureTheory.SimpleFunc.range_map + theorem MeasureTheory.SimpleFunc.range_one + def MeasureTheory.SimpleFunc.restrict + theorem MeasureTheory.SimpleFunc.restrict_apply + theorem MeasureTheory.SimpleFunc.restrict_const_lintegral + theorem MeasureTheory.SimpleFunc.restrict_empty + theorem MeasureTheory.SimpleFunc.restrict_lintegral + theorem MeasureTheory.SimpleFunc.restrict_lintegral_eq_lintegral_restrict + theorem MeasureTheory.SimpleFunc.restrict_mono + theorem MeasureTheory.SimpleFunc.restrict_of_not_measurable + theorem MeasureTheory.SimpleFunc.restrict_preimage + theorem MeasureTheory.SimpleFunc.restrict_preimage_singleton + theorem MeasureTheory.SimpleFunc.restrict_univ + def MeasureTheory.SimpleFunc.seq + theorem MeasureTheory.SimpleFunc.seq_apply + theorem MeasureTheory.SimpleFunc.simpleFunc_bot' + theorem MeasureTheory.SimpleFunc.simpleFunc_bot + theorem MeasureTheory.SimpleFunc.smul_apply + theorem MeasureTheory.SimpleFunc.smul_eq_map + theorem MeasureTheory.SimpleFunc.sum_eapproxDiff + theorem MeasureTheory.SimpleFunc.sum_range_measure_preimage_singleton + theorem MeasureTheory.SimpleFunc.sup_apply + theorem MeasureTheory.SimpleFunc.sup_eq_map₂ + theorem MeasureTheory.SimpleFunc.support_eq + theorem MeasureTheory.SimpleFunc.support_indicator + theorem MeasureTheory.SimpleFunc.tsum_eapproxDiff + theorem MeasureTheory.SimpleFunc.zero_lintegral + theorem MeasureTheory.SimpleFunc.zpow_apply + structure MeasureTheory.SimpleFunc.{u, 2023-05-21 15:37:49 67e16b0 feat: port RingTheory.Ideal.MinimalPrime (#4146) Please feel free to push changes to this branch. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/RingTheory/Ideal/MinimalPrime.lean + theorem Ideal.comap_minimalPrimes_eq_of_surjective + theorem Ideal.exists_comap_eq_of_mem_minimalPrimes + theorem Ideal.exists_comap_eq_of_mem_minimalPrimes_of_injective + theorem Ideal.exists_minimalPrimes_comap_eq + theorem Ideal.exists_minimalPrimes_le + theorem Ideal.mimimal_primes_comap_of_surjective + theorem Ideal.minimalPrimes_eq_comap + theorem Ideal.minimalPrimes_eq_subsingleton + theorem Ideal.minimalPrimes_eq_subsingleton_self + theorem Ideal.radical_minimalPrimes + theorem Ideal.sInf_minimalPrimes + def minimalPrimes Modified Mathlib/RingTheory/Localization/Basic.lean 2023-05-21 15:37:48 e02d83e feat: port Algebra.Category.ModuleCat.Kernels (#3916) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Category/ModuleCat/Kernels.lean + def ModuleCat.cokernelCocone + def ModuleCat.cokernelIsColimit + theorem ModuleCat.cokernel_π_cokernelIsoRangeQuotient_hom + theorem ModuleCat.cokernel_π_ext + theorem ModuleCat.hasCokernels_moduleCat + theorem ModuleCat.hasKernels_moduleCat + def ModuleCat.kernelCone + def ModuleCat.kernelIsLimit + theorem ModuleCat.kernelIsoKer_hom_ker_subtype + theorem ModuleCat.kernelIsoKer_inv_kernel_ι + theorem ModuleCat.range_mkQ_cokernelIsoRangeQuotient_inv 2023-05-21 15:37:47 a4c11e8 feat: port Topology.Algebra.Module.LocallyConvex (#3637) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Topology/Algebra/Module/LocallyConvex.lean + theorem Disjoint.exists_open_convexes + theorem LocallyConvexSpace.convex_basis_zero + theorem LocallyConvexSpace.convex_open_basis_zero + theorem LocallyConvexSpace.ofBases + theorem LocallyConvexSpace.ofBasisZero + theorem locallyConvexSpace_iInf + theorem locallyConvexSpace_iff + theorem locallyConvexSpace_iff_exists_convex_subset + theorem locallyConvexSpace_iff_exists_convex_subset_zero + theorem locallyConvexSpace_iff_zero + theorem locallyConvexSpace_induced + theorem locallyConvexSpace_inf + theorem locallyConvexSpace_sInf 2023-05-21 15:13:26 357f282 feat: port Algebra.Category.Mon.FilteredColimits (#4094) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Category/Mon/FilteredColimits.lean + def CommMonCat.FilteredColimits.colimitCoconeIsColimit + theorem MonCat.FilteredColimits.M.mk_eq + def MonCat.FilteredColimits.coconeMorphism + theorem MonCat.FilteredColimits.cocone_naturality + def MonCat.FilteredColimits.colimitCoconeIsColimit + def MonCat.FilteredColimits.colimitDesc + theorem MonCat.FilteredColimits.colimitMulAux_eq_of_rel_left + theorem MonCat.FilteredColimits.colimitMulAux_eq_of_rel_right + theorem MonCat.FilteredColimits.colimit_mul_mk_eq + theorem MonCat.FilteredColimits.colimit_one_eq Modified Mathlib/Algebra/Category/MonCat/Basic.lean 2023-05-21 15:13:25 6d77e3b feat: port AlgebraicGeometry.PresheafedSpace (#4093) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/AlgebraicGeometry/PresheafedSpace.lean + theorem AlgebraicGeometry.PresheafedSpace.Hom.ext + structure AlgebraicGeometry.PresheafedSpace.Hom + def AlgebraicGeometry.PresheafedSpace.comp + theorem AlgebraicGeometry.PresheafedSpace.comp_base + theorem AlgebraicGeometry.PresheafedSpace.comp_c + theorem AlgebraicGeometry.PresheafedSpace.comp_c_app + theorem AlgebraicGeometry.PresheafedSpace.congr_app + def AlgebraicGeometry.PresheafedSpace.const + theorem AlgebraicGeometry.PresheafedSpace.ext + def AlgebraicGeometry.PresheafedSpace.forget + theorem AlgebraicGeometry.PresheafedSpace.hext + def AlgebraicGeometry.PresheafedSpace.id + theorem AlgebraicGeometry.PresheafedSpace.id_base + theorem AlgebraicGeometry.PresheafedSpace.id_c + theorem AlgebraicGeometry.PresheafedSpace.id_c_app + theorem AlgebraicGeometry.PresheafedSpace.isIso_of_components + def AlgebraicGeometry.PresheafedSpace.isoOfComponents + theorem AlgebraicGeometry.PresheafedSpace.mk_coe + def AlgebraicGeometry.PresheafedSpace.ofRestrict + theorem AlgebraicGeometry.PresheafedSpace.ofRestrict_top_c + def AlgebraicGeometry.PresheafedSpace.restrict + def AlgebraicGeometry.PresheafedSpace.restrictTopIso + theorem AlgebraicGeometry.PresheafedSpace.restrict_top_presheaf + def AlgebraicGeometry.PresheafedSpace.sheafIsoOfIso + def AlgebraicGeometry.PresheafedSpace.toRestrictTop + def AlgebraicGeometry.PresheafedSpace.Γ + theorem AlgebraicGeometry.PresheafedSpace.Γ_map_op + theorem AlgebraicGeometry.PresheafedSpace.Γ_obj_op + structure AlgebraicGeometry.PresheafedSpace + def CategoryTheory.Functor.mapPresheaf + theorem CategoryTheory.Functor.mapPresheaf_map_c + theorem CategoryTheory.Functor.mapPresheaf_map_f + theorem CategoryTheory.Functor.mapPresheaf_obj_X + theorem CategoryTheory.Functor.mapPresheaf_obj_presheaf + def CategoryTheory.NatTrans.onPresheaf 2023-05-21 15:13:24 d3369c5 feat: port MeasureTheory.Function.AEMeasurableOrder (#4073) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/MeasureTheory/Function/AEMeasurableOrder.lean + theorem ENNReal.aemeasurable_of_exist_almost_disjoint_supersets + theorem MeasureTheory.aemeasurable_of_exist_almost_disjoint_supersets 2023-05-21 14:57:13 54991d4 feat: port RingTheory.GradedAlgebra.HomogeneousIdeal (#4159) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/RingTheory/GradedAlgebra/HomogeneousIdeal.lean + theorem HomogeneousIdeal.coe_bot + theorem HomogeneousIdeal.coe_inf + theorem HomogeneousIdeal.coe_sup + theorem HomogeneousIdeal.coe_top + theorem HomogeneousIdeal.eq_bot_iff + theorem HomogeneousIdeal.eq_top_iff + theorem HomogeneousIdeal.ext + theorem HomogeneousIdeal.homogeneousHull_toIdeal_eq_self + def HomogeneousIdeal.irrelevant + theorem HomogeneousIdeal.isHomogeneous + theorem HomogeneousIdeal.mem_iff + theorem HomogeneousIdeal.mem_irrelevant_iff + def HomogeneousIdeal.toIdeal + theorem HomogeneousIdeal.toIdeal_add + theorem HomogeneousIdeal.toIdeal_bot + theorem HomogeneousIdeal.toIdeal_homogeneousCore_eq_self + theorem HomogeneousIdeal.toIdeal_iInf + theorem HomogeneousIdeal.toIdeal_iInf₂ + theorem HomogeneousIdeal.toIdeal_iSup + theorem HomogeneousIdeal.toIdeal_iSup₂ + theorem HomogeneousIdeal.toIdeal_inf + theorem HomogeneousIdeal.toIdeal_injective + theorem HomogeneousIdeal.toIdeal_irrelevant + theorem HomogeneousIdeal.toIdeal_mul + theorem HomogeneousIdeal.toIdeal_sInf + theorem HomogeneousIdeal.toIdeal_sSup + theorem HomogeneousIdeal.toIdeal_sup + theorem HomogeneousIdeal.toIdeal_top + structure HomogeneousIdeal + theorem Ideal.IsHomogeneous.bot + theorem Ideal.IsHomogeneous.iInf₂ + theorem Ideal.IsHomogeneous.iSup₂ + theorem Ideal.IsHomogeneous.iff_eq + theorem Ideal.IsHomogeneous.iff_exists + theorem Ideal.IsHomogeneous.inf + theorem Ideal.IsHomogeneous.mul + theorem Ideal.IsHomogeneous.sInf + theorem Ideal.IsHomogeneous.sSup + theorem Ideal.IsHomogeneous.sup + theorem Ideal.IsHomogeneous.toIdeal_homogeneousCore_eq_self + theorem Ideal.IsHomogeneous.toIdeal_homogeneousHull_eq_self + theorem Ideal.IsHomogeneous.top + def Ideal.IsHomogeneous + def Ideal.homogeneousCore' + theorem Ideal.homogeneousCore'_eq_sSup + theorem Ideal.homogeneousCore'_le + theorem Ideal.homogeneousCore'_mono + theorem Ideal.homogeneousCore.gc + def Ideal.homogeneousCore.gi + def Ideal.homogeneousCore + theorem Ideal.homogeneousCore_eq_sSup + theorem Ideal.homogeneousCore_mono + theorem Ideal.homogeneousHull.gc + def Ideal.homogeneousHull.gi + def Ideal.homogeneousHull + theorem Ideal.homogeneousHull_eq_iSup + theorem Ideal.homogeneousHull_eq_sInf + theorem Ideal.homogeneousHull_mono + theorem Ideal.homogeneous_span + theorem Ideal.isHomogeneous_iff_forall_subset + theorem Ideal.isHomogeneous_iff_subset_iInter + theorem Ideal.le_toIdeal_homogeneousHull + theorem Ideal.mem_homogeneousCore_of_homogeneous_of_mem + theorem Ideal.mul_homogeneous_element_mem_of_mem + theorem Ideal.toIdeal_homogeneousCore_le + theorem Ideal.toIdeal_homogeneousHull_eq_iSup 2023-05-21 14:40:02 2a5e11e feat: port MeasureTheory.Constructions.BorelSpace.Complex (#4095) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/MeasureTheory/Constructions/BorelSpace/Complex.lean 2023-05-21 14:20:17 3c3ab91 feat: port MeasureTheory.Function.EssSup (#4098) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/MeasureTheory/Function/EssSup.lean + theorem ENNReal.ae_le_essSup + theorem ENNReal.coe_essSup + theorem ENNReal.essSup_add_le + theorem ENNReal.essSup_const_mul + theorem ENNReal.essSup_eq_zero_iff + theorem ENNReal.essSup_liminf_le + theorem ENNReal.essSup_mul_le + theorem MeasurableEmbedding.essSup_map_measure + theorem OrderIso.essInf_apply + theorem OrderIso.essSup_apply + theorem ae_essInf_le + theorem ae_le_essSup + theorem ae_lt_of_essSup_lt + theorem ae_lt_of_lt_essInf + def essInf + theorem essInf_antitone_measure + theorem essInf_congr_ae + theorem essInf_const' + theorem essInf_const + theorem essInf_const_top + theorem essInf_eq_sSup + theorem essInf_measure_zero + theorem essInf_mono_ae + def essSup + theorem essSup_comp_le_essSup_map_measure + theorem essSup_congr_ae + theorem essSup_const' + theorem essSup_const + theorem essSup_const_bot + theorem essSup_eq_sInf + theorem essSup_indicator_eq_essSup_restrict + theorem essSup_le_of_ae_le + theorem essSup_map_measure + theorem essSup_map_measure_of_measurable + theorem essSup_measure_zero + theorem essSup_mono_ae + theorem essSup_mono_measure' + theorem essSup_mono_measure + theorem essSup_smul_measure + theorem le_essInf_of_ae_le + theorem meas_essSup_lt + theorem meas_lt_essInf 2023-05-21 13:59:45 a85cea9 feat: port Algebra.Category.Group.Limits (#4148) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Category/GroupCat/Basic.lean Added Mathlib/Algebra/Category/GroupCat/Limits.lean + def AddCommGroupCat.kernelIsoKer + def AddCommGroupCat.kernelIsoKerOver + theorem AddCommGroupCat.kernelIsoKer_hom_comp_subtype + theorem AddCommGroupCat.kernelIsoKer_inv_comp_ι + def GroupCat.sectionsSubgroup 2023-05-21 13:23:39 ab900bd feat: port Algebra.CharP.MixedCharZero (#3222) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/CharP/MixedCharZero.lean + theorem EqualCharZero.PNat.isUnit_natCast + theorem EqualCharZero.iff_not_mixedCharZero + theorem EqualCharZero.nonempty_algebraRat_iff + theorem EqualCharZero.of_algebraRat + theorem EqualCharZero.of_not_mixedCharZero + theorem EqualCharZero.pnatCast_eq_natCast + theorem EqualCharZero.pnatCast_one + theorem EqualCharZero.to_not_mixedCharZero + theorem MixedCharZero.reduce_to_maximal_ideal + theorem MixedCharZero.reduce_to_p_prime + theorem isEmpty_algebraRat_iff_mixedCharZero + theorem split_by_characteristic + theorem split_by_characteristic_domain + theorem split_by_characteristic_localRing + theorem split_equalCharZero_mixedCharZero Modified Mathlib/Algebra/Group/Units.lean +/- theorem Units.ext 2023-05-21 13:02:04 542f2e5 feat: port LinearAlgebra.Matrix.Charpoly.Basic (#4118) Very few fixes were needed for this file! ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/LinearAlgebra/Matrix/Charpoly/Basic.lean + theorem Matrix.aeval_self_charpoly + def Matrix.charpoly + theorem Matrix.charpoly_reindex + def charmatrix + theorem charmatrix_apply + theorem charmatrix_apply_eq + theorem charmatrix_apply_ne + theorem charmatrix_reindex + theorem matPolyEquiv_charmatrix 2023-05-21 12:39:38 85b38a0 feat: port Analysis.SpecialFunctions.Pow.NNReal (#4161) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/SpecialFunctions/Pow/NNReal.lean + theorem ENNReal.coe_mul_rpow + theorem ENNReal.coe_rpow_def + theorem ENNReal.coe_rpow_of_ne_zero + theorem ENNReal.coe_rpow_of_nonneg + theorem ENNReal.div_rpow_of_nonneg + theorem ENNReal.inv_rpow + theorem ENNReal.le_rpow_one_div_iff + theorem ENNReal.le_rpow_self_of_one_le + theorem ENNReal.lt_rpow_one_div_iff + theorem ENNReal.monotone_rpow_of_nonneg + theorem ENNReal.mul_rpow_eq_ite + theorem ENNReal.mul_rpow_of_ne_top + theorem ENNReal.mul_rpow_of_ne_zero + theorem ENNReal.mul_rpow_of_nonneg + theorem ENNReal.ofReal_rpow_of_nonneg + theorem ENNReal.ofReal_rpow_of_pos + theorem ENNReal.one_le_rpow + theorem ENNReal.one_le_rpow_of_pos_of_le_one_of_neg + theorem ENNReal.one_lt_rpow + theorem ENNReal.one_lt_rpow_of_pos_of_lt_one_of_neg + theorem ENNReal.one_rpow + def ENNReal.orderIsoRpow + theorem ENNReal.orderIsoRpow_symm_apply + theorem ENNReal.rpow_add + theorem ENNReal.rpow_eq_pow + theorem ENNReal.rpow_eq_top_iff + theorem ENNReal.rpow_eq_top_iff_of_pos + theorem ENNReal.rpow_eq_top_of_nonneg + theorem ENNReal.rpow_eq_zero_iff + theorem ENNReal.rpow_le_one + theorem ENNReal.rpow_le_one_of_one_le_of_neg + theorem ENNReal.rpow_le_rpow + theorem ENNReal.rpow_le_rpow_iff + theorem ENNReal.rpow_le_rpow_of_exponent_ge + theorem ENNReal.rpow_le_rpow_of_exponent_le + theorem ENNReal.rpow_le_self_of_le_one + theorem ENNReal.rpow_left_bijective + theorem ENNReal.rpow_left_injective + theorem ENNReal.rpow_left_surjective + theorem ENNReal.rpow_lt_one + theorem ENNReal.rpow_lt_one_of_one_lt_of_neg + theorem ENNReal.rpow_lt_rpow + theorem ENNReal.rpow_lt_rpow_iff + theorem ENNReal.rpow_lt_rpow_of_exponent_gt + theorem ENNReal.rpow_lt_rpow_of_exponent_lt + theorem ENNReal.rpow_lt_top_of_nonneg + theorem ENNReal.rpow_mul + theorem ENNReal.rpow_nat_cast + theorem ENNReal.rpow_ne_top_of_nonneg + theorem ENNReal.rpow_neg + theorem ENNReal.rpow_neg_one + theorem ENNReal.rpow_one + theorem ENNReal.rpow_one_div_le_iff + theorem ENNReal.rpow_pos + theorem ENNReal.rpow_pos_of_nonneg + theorem ENNReal.rpow_sub + theorem ENNReal.rpow_two + theorem ENNReal.rpow_zero + theorem ENNReal.strictMono_rpow_of_pos + theorem ENNReal.toNNReal_rpow + theorem ENNReal.toReal_rpow + theorem ENNReal.top_rpow_def + theorem ENNReal.top_rpow_of_neg + theorem ENNReal.top_rpow_of_pos + theorem ENNReal.zero_rpow_def + theorem ENNReal.zero_rpow_mul_self + theorem ENNReal.zero_rpow_of_neg + theorem ENNReal.zero_rpow_of_pos + theorem NNReal.coe_rpow + theorem NNReal.div_rpow + theorem NNReal.eq_rpow_one_div_iff + theorem NNReal.inv_rpow + theorem NNReal.le_rpow_one_div_iff + theorem NNReal.mul_rpow + theorem NNReal.one_le_rpow + theorem NNReal.one_le_rpow_of_pos_of_le_one_of_nonpos + theorem NNReal.one_lt_rpow + theorem NNReal.one_lt_rpow_of_pos_of_lt_one_of_neg + theorem NNReal.one_rpow + theorem NNReal.pow_nat_rpow_nat_inv + theorem NNReal.rpow_add' + theorem NNReal.rpow_add + theorem NNReal.rpow_eq_pow + theorem NNReal.rpow_eq_rpow_iff + theorem NNReal.rpow_eq_zero_iff + theorem NNReal.rpow_inv_rpow_self + theorem NNReal.rpow_le_one + theorem NNReal.rpow_le_one_of_one_le_of_nonpos + theorem NNReal.rpow_le_rpow + theorem NNReal.rpow_le_rpow_iff + theorem NNReal.rpow_le_rpow_of_exponent_ge + theorem NNReal.rpow_le_rpow_of_exponent_le + theorem NNReal.rpow_le_self_of_le_one + theorem NNReal.rpow_left_bijective + theorem NNReal.rpow_left_injective + theorem NNReal.rpow_left_surjective + theorem NNReal.rpow_lt_one + theorem NNReal.rpow_lt_one_of_one_lt_of_neg + theorem NNReal.rpow_lt_rpow + theorem NNReal.rpow_lt_rpow_iff + theorem NNReal.rpow_lt_rpow_of_exponent_gt + theorem NNReal.rpow_lt_rpow_of_exponent_lt + theorem NNReal.rpow_mul + theorem NNReal.rpow_nat_cast + theorem NNReal.rpow_nat_inv_pow_nat + theorem NNReal.rpow_neg + theorem NNReal.rpow_neg_one + theorem NNReal.rpow_one + theorem NNReal.rpow_one_div_eq_iff + theorem NNReal.rpow_one_div_le_iff + theorem NNReal.rpow_pos + theorem NNReal.rpow_self_rpow_inv + theorem NNReal.rpow_sub' + theorem NNReal.rpow_sub + theorem NNReal.rpow_two + theorem NNReal.rpow_zero + theorem NNReal.sqrt_eq_rpow + theorem NNReal.zero_rpow + theorem Real.toNNReal_rpow_of_nonneg 2023-05-21 12:39:37 9ef61a0 feat: port NumberTheory.ClassNumber.AdmissibleCardPowDegree (#4158) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/NumberTheory/ClassNumber/AdmissibleCardPowDegree.lean + theorem Polynomial.cardPowDegree_anti_archimedean + theorem Polynomial.exists_approx_polynomial + theorem Polynomial.exists_approx_polynomial_aux + theorem Polynomial.exists_eq_polynomial + theorem Polynomial.exists_partition_polynomial + theorem Polynomial.exists_partition_polynomial_aux 2023-05-21 12:23:27 bbc61ef feat: port RingTheory.GradedAlgebra.HomogeneousLocalization (#4155) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/RingTheory/GradedAlgebra/HomogeneousLocalization.lean + theorem HomogeneousLocalization.NumDenSameDeg.deg_add + theorem HomogeneousLocalization.NumDenSameDeg.deg_mul + theorem HomogeneousLocalization.NumDenSameDeg.deg_neg + theorem HomogeneousLocalization.NumDenSameDeg.deg_one + theorem HomogeneousLocalization.NumDenSameDeg.deg_pow + theorem HomogeneousLocalization.NumDenSameDeg.deg_smul + theorem HomogeneousLocalization.NumDenSameDeg.deg_zero + theorem HomogeneousLocalization.NumDenSameDeg.den_add + theorem HomogeneousLocalization.NumDenSameDeg.den_mul + theorem HomogeneousLocalization.NumDenSameDeg.den_neg + theorem HomogeneousLocalization.NumDenSameDeg.den_one + theorem HomogeneousLocalization.NumDenSameDeg.den_pow + theorem HomogeneousLocalization.NumDenSameDeg.den_smul + theorem HomogeneousLocalization.NumDenSameDeg.den_zero + def HomogeneousLocalization.NumDenSameDeg.embedding + theorem HomogeneousLocalization.NumDenSameDeg.ext + theorem HomogeneousLocalization.NumDenSameDeg.num_add + theorem HomogeneousLocalization.NumDenSameDeg.num_mul + theorem HomogeneousLocalization.NumDenSameDeg.num_neg + theorem HomogeneousLocalization.NumDenSameDeg.num_one + theorem HomogeneousLocalization.NumDenSameDeg.num_pow + theorem HomogeneousLocalization.NumDenSameDeg.num_smul + theorem HomogeneousLocalization.NumDenSameDeg.num_zero + structure HomogeneousLocalization.NumDenSameDeg + theorem HomogeneousLocalization.add_val + def HomogeneousLocalization.deg + def HomogeneousLocalization.den + theorem HomogeneousLocalization.den_mem + theorem HomogeneousLocalization.den_mem_deg + theorem HomogeneousLocalization.eq_num_div_den + theorem HomogeneousLocalization.ext_iff_val + theorem HomogeneousLocalization.intCast_val + theorem HomogeneousLocalization.isUnit_iff_isUnit_val + theorem HomogeneousLocalization.mul_val + theorem HomogeneousLocalization.natCast_val + theorem HomogeneousLocalization.neg_val + def HomogeneousLocalization.num + theorem HomogeneousLocalization.num_mem_deg + theorem HomogeneousLocalization.one_eq + theorem HomogeneousLocalization.one_val + theorem HomogeneousLocalization.pow_val + theorem HomogeneousLocalization.smul_val + theorem HomogeneousLocalization.sub_val + def HomogeneousLocalization.val + theorem HomogeneousLocalization.val_injective + theorem HomogeneousLocalization.val_mk'' + theorem HomogeneousLocalization.zero_eq + theorem HomogeneousLocalization.zero_val + def HomogeneousLocalization 2023-05-21 12:23:26 7f9830e feat: port Analysis.SpecialFunctions.Complex.Circle (#4151) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/SpecialFunctions/Complex/Circle.lean + theorem Real.Angle.arg_expMapCircle + theorem Real.Angle.coe_expMapCircle + theorem Real.Angle.expMapCircle_add + theorem Real.Angle.expMapCircle_coe + theorem Real.Angle.expMapCircle_neg + theorem Real.Angle.expMapCircle_zero + theorem arg_expMapCircle + theorem circle.arg_eq_arg + theorem circle.injective_arg + theorem expMapCircle_add_two_pi + theorem expMapCircle_arg + theorem expMapCircle_eq_expMapCircle + theorem expMapCircle_sub_two_pi + theorem expMapCircle_two_pi + theorem invOn_arg_expMapCircle + theorem leftInverse_expMapCircle_arg + theorem periodic_expMapCircle + theorem surjOn_expMapCircle_neg_pi_pi 2023-05-21 12:23:25 eeb99a4 feat: port Topology.Sheaves.SheafCondition.Sites (#4150) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Topology/Sheaves/SheafCondition/Sites.lean + theorem IsOpenMap.coverPreserving + theorem OpenEmbedding.compatiblePreserving + theorem TopCat.Opens.coverDense_iff_isBasis + theorem TopCat.Opens.coverDense_inducedFunctor + theorem TopCat.Presheaf.coveringOfPresieve.iSup_eq_of_mem_grothendieck + def TopCat.Presheaf.coveringOfPresieve + theorem TopCat.Presheaf.coveringOfPresieve_apply + theorem TopCat.Presheaf.covering_presieve_eq_self + theorem TopCat.Presheaf.isSheaf_of_openEmbedding + def TopCat.Presheaf.presieveOfCovering.homOfIndex + def TopCat.Presheaf.presieveOfCovering.indexOfHom + theorem TopCat.Presheaf.presieveOfCovering.indexOfHom_spec + theorem TopCat.Presheaf.presieveOfCovering.mem_grothendieckTopology + def TopCat.Presheaf.presieveOfCovering + def TopCat.Presheaf.presieveOfCoveringAux + theorem TopCat.Sheaf.extend_hom_app + theorem TopCat.Sheaf.hom_ext + def TopCat.Sheaf.isTerminalOfEmpty + def TopCat.Sheaf.isTerminalOfEqEmpty + def TopCat.Sheaf.restrictHomEquivHom 2023-05-21 12:07:02 11332d5 feat: port MeasureTheory.Constructions.BorelSpace.Basic (#4018) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/MeasureTheory/Constructions/BorelSpace/Basic.lean + theorem AEMeasurable.coe_ereal_ennreal + theorem AEMeasurable.coe_nnreal_ennreal + theorem AEMeasurable.coe_nnreal_real + theorem AEMeasurable.coe_real_ereal + theorem AEMeasurable.edist + theorem AEMeasurable.ennnorm + theorem AEMeasurable.ennreal_toNNReal + theorem AEMeasurable.ennreal_toReal + theorem AEMeasurable.ennreal_tsum + theorem AEMeasurable.ereal_toReal + theorem AEMeasurable.isGLB + theorem AEMeasurable.isLUB + theorem AEMeasurable.nnnorm + theorem AEMeasurable.nnreal_tsum + theorem AEMeasurable.norm + theorem AEMeasurable.real_toNNReal + theorem ClosedEmbedding.measurable + theorem Continuous.aemeasurable2 + theorem Continuous.aemeasurable + theorem Continuous.borel_measurable + theorem Continuous.measurable2 + theorem Continuous.measurable + theorem Continuous.openPosMeasure_map + theorem ContinuousMap.measurable + theorem ContinuousOn.measurable_piecewise + theorem Dense.borel_eq_generateFrom_Ico_mem + theorem Dense.borel_eq_generateFrom_Ico_mem_aux + theorem Dense.borel_eq_generateFrom_Ioc_mem + theorem Dense.borel_eq_generateFrom_Ioc_mem_aux + def ENNReal.ennrealEquivSum + theorem ENNReal.measurable_ofReal + theorem ENNReal.measurable_of_measurable_nnreal + theorem ENNReal.measurable_of_measurable_nnreal_nnreal + theorem ENNReal.measurable_of_measurable_nnreal_prod + theorem ENNReal.measurable_toNNReal + theorem ENNReal.measurable_toReal + theorem EReal.measurable_of_measurable_real + def Homemorph.toMeasurableEquiv + def Homeomorph.toMeasurableEquiv + theorem Homeomorph.toMeasurableEquiv_coe + theorem Homeomorph.toMeasurableEquiv_symm_coe + theorem IsClosed.measurableSet + theorem IsCompact.measurableSet + theorem IsGδ.measurableSet + theorem IsOpen.measurableSet + theorem IsPreconnected.measurableSet + theorem LowerSemicontinuous.measurable + def Mathlib.Tactic.Borelize.addBorelInstance + def Mathlib.Tactic.Borelize.borelToRefl + def Mathlib.Tactic.Borelize.borelize + theorem Measurable.coe_ereal_ennreal + theorem Measurable.coe_nnreal_ennreal + theorem Measurable.coe_nnreal_real + theorem Measurable.coe_real_ereal + theorem Measurable.dist + theorem Measurable.edist + theorem Measurable.ennnorm + theorem Measurable.ennreal_ofReal + theorem Measurable.ennreal_toNNReal + theorem Measurable.ennreal_toReal + theorem Measurable.ennreal_tsum' + theorem Measurable.ennreal_tsum + theorem Measurable.ereal_toReal + theorem Measurable.iInf_Prop + theorem Measurable.iSup_Prop + theorem Measurable.infDist + theorem Measurable.infEdist + theorem Measurable.infNndist + theorem Measurable.isGLB + theorem Measurable.isLUB + theorem Measurable.max + theorem Measurable.min + theorem Measurable.nndist + theorem Measurable.nnnorm + theorem Measurable.nnreal_tsum + theorem Measurable.norm + theorem Measurable.real_toNNReal + def MeasurableEquiv.ennrealEquivNNReal + def MeasurableEquiv.erealEquivReal + theorem MeasurableSet.induction_on_open + theorem MeasurableSet.nhdsWithin_isMeasurablyGenerated + theorem MeasureTheory.Measure.ext_of_Ici + theorem MeasureTheory.Measure.ext_of_Ico' + theorem MeasureTheory.Measure.ext_of_Ico + theorem MeasureTheory.Measure.ext_of_Ico_finite + theorem MeasureTheory.Measure.ext_of_Iic + theorem MeasureTheory.Measure.ext_of_Ioc' + theorem MeasureTheory.Measure.ext_of_Ioc + theorem MeasureTheory.Measure.ext_of_Ioc_finite + theorem Real.borel_eq_generateFrom_Iio_rat + theorem Real.borel_eq_generateFrom_Ioo_rat + def Real.finiteSpanningSetsInIooRat + theorem Real.isPiSystem_Ioo_rat + theorem Real.measure_ext_Ioo_rat + theorem Set.OrdConnected.measurableSet + theorem TopologicalSpace.IsTopologicalBasis.borel_eq_generateFrom + theorem UpperSemicontinuous.measurable + theorem aEMeasurable_coe_nnreal_real_iff + theorem aemeasurable_biInf + theorem aemeasurable_biSup + theorem aemeasurable_coe_nnreal_ennreal_iff + theorem aemeasurable_iInf + theorem aemeasurable_iSup + theorem aemeasurable_restrict_of_antitoneOn + theorem aemeasurable_restrict_of_monotoneOn + def borel + theorem borel_comap + theorem borel_eq_generateFrom_Ici + theorem borel_eq_generateFrom_Ico + theorem borel_eq_generateFrom_Iic + theorem borel_eq_generateFrom_Iio + theorem borel_eq_generateFrom_Ioc + theorem borel_eq_generateFrom_Ioi + theorem borel_eq_generateFrom_isClosed + theorem borel_eq_generateFrom_of_subbasis + theorem borel_eq_top_of_countable + theorem borel_eq_top_of_discrete + theorem closure_ae_eq_of_null_frontier + theorem generateFrom_Ico_mem_le_borel + theorem interior_ae_eq_of_null_frontier + theorem isPiSystem_isOpen + theorem measurableSet_Icc + theorem measurableSet_Ici + theorem measurableSet_Ico + theorem measurableSet_Iic + theorem measurableSet_Iio + theorem measurableSet_Ioc + theorem measurableSet_Ioi + theorem measurableSet_Ioo + theorem measurableSet_ball + theorem measurableSet_closedBall + theorem measurableSet_closure + theorem measurableSet_eball + theorem measurableSet_interior + theorem measurableSet_le' + theorem measurableSet_le + theorem measurableSet_lt' + theorem measurableSet_lt + theorem measurableSet_of_continuousAt + theorem measurableSet_of_mem_nhdsWithin_Ioi + theorem measurableSet_of_mem_nhdsWithin_Ioi_aux + theorem measurableSet_uIcc + theorem measurableSet_uIoc + theorem measurable_biInf + theorem measurable_biSup + theorem measurable_cInf + theorem measurable_cSup + theorem measurable_ciInf + theorem measurable_ciSup + theorem measurable_coe_ennreal_ereal + theorem measurable_coe_nnreal_ennreal + theorem measurable_coe_nnreal_ennreal_iff + theorem measurable_coe_nnreal_real + theorem measurable_coe_nnreal_real_iff + theorem measurable_coe_real_ereal + theorem measurable_dist + theorem measurable_edist + theorem measurable_edist_left + theorem measurable_edist_right + theorem measurable_ennnorm + theorem measurable_ereal_toReal + theorem measurable_iInf + theorem measurable_iSup + theorem measurable_infDist + theorem measurable_infEdist + theorem measurable_infNndist + theorem measurable_liminf' + theorem measurable_liminf + theorem measurable_limsup' + theorem measurable_limsup + theorem measurable_nndist + theorem measurable_nnnorm + theorem measurable_norm + theorem measurable_of_Ici + theorem measurable_of_Iic + theorem measurable_of_Iio + theorem measurable_of_Ioi + theorem measurable_of_continuousOn_compl_singleton + theorem measurable_of_isClosed + theorem measurable_of_isOpen + theorem measurable_of_is_closed' + theorem measurable_real_toNNReal + theorem measure_closure_of_null_frontier + theorem measure_eq_measure_preimage_add_measure_tsum_Ico_zpow + theorem measure_interior_of_null_frontier + theorem nullMeasurableSet_lt + theorem nullMeasurableSet_of_null_frontier + theorem pi_le_borel_pi + theorem prod_le_borel_prod + theorem tendsto_measure_cthickening + theorem tendsto_measure_cthickening_of_isClosed + theorem tendsto_measure_cthickening_of_isCompact 2023-05-21 08:56:04 3c517ae feat: port RingTheory.PolynomialAlgebra (#4106) This is my first attempt at porting a file. I fixed a few of the errors, but there are still two issues left. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/RingTheory/PolynomialAlgebra.lean + def PolyEquivTensor.equiv + def PolyEquivTensor.invFun + theorem PolyEquivTensor.invFun_add + theorem PolyEquivTensor.invFun_monomial + theorem PolyEquivTensor.left_inv + theorem PolyEquivTensor.right_inv + def PolyEquivTensor.toFunAlgHom + theorem PolyEquivTensor.toFunAlgHom_apply_tmul + def PolyEquivTensor.toFunBilinear + theorem PolyEquivTensor.toFunBilinear_apply_eq_sum + def PolyEquivTensor.toFunLinear + theorem PolyEquivTensor.toFunLinear_algebraMap_tmul_one + theorem PolyEquivTensor.toFunLinear_mul_tmul_mul + theorem PolyEquivTensor.toFunLinear_tmul_apply + theorem PolyEquivTensor.to_fun_linear_mul_tmul_mul_aux_1 + theorem PolyEquivTensor.to_fun_linear_mul_tmul_mul_aux_2 + theorem matPolyEquiv_coeff_apply + theorem matPolyEquiv_coeff_apply_aux_1 + theorem matPolyEquiv_coeff_apply_aux_2 + theorem matPolyEquiv_smul_one + theorem matPolyEquiv_symm_apply_coeff + def polyEquivTensor + theorem polyEquivTensor_apply + theorem polyEquivTensor_symm_apply_tmul + theorem support_subset_support_matPolyEquiv 2023-05-21 08:32:43 46527be feat: port Analysis.NormedSpace.Star.Mul (#4147) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/NormedSpace/Star/Mul.lean + theorem mul_flip_isometry + theorem mul_isometry + theorem op_nnnorm_mul + theorem op_nnnorm_mul_flip 2023-05-21 07:53:34 c809799 chore: forward port leanprover-community/mathlib#19037 (#4136) ESTIMATED CHANGES Modified Mathlib/Analysis/NormedSpace/Star/Basic.lean + theorem starₗᵢ_toContinuousLinearEquiv 2023-05-20 22:35:19 0000688 feat: port MeasureTheory.Measure.Doubling (#4149) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/MeasureTheory/Measure/Doubling.lean + def IsUnifLocDoublingMeasure.doublingConstant + theorem IsUnifLocDoublingMeasure.eventually_measure_le_scaling_constant_mul' + theorem IsUnifLocDoublingMeasure.eventually_measure_le_scaling_constant_mul + theorem IsUnifLocDoublingMeasure.eventually_measure_mul_le_scalingConstantOf_mul + theorem IsUnifLocDoublingMeasure.exists_eventually_forall_measure_closedBall_le_mul + theorem IsUnifLocDoublingMeasure.exists_measure_closedBall_le_mul' + theorem IsUnifLocDoublingMeasure.exists_measure_closedBall_le_mul + theorem IsUnifLocDoublingMeasure.measure_mul_le_scalingConstantOf_mul + theorem IsUnifLocDoublingMeasure.one_le_scalingConstantOf + def IsUnifLocDoublingMeasure.scalingConstantOf + def IsUnifLocDoublingMeasure.scalingScaleOf + theorem IsUnifLocDoublingMeasure.scalingScaleOf_pos 2023-05-20 19:38:29 fae93aa feat: port Analysis.NormedSpace.MazurUlam (#4145) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/NormedSpace/MazurUlam.lean + theorem IsometryEquiv.coeFn_toRealAffineIsometryEquiv + theorem IsometryEquiv.coe_toRealAffineIsometryEquiv + theorem IsometryEquiv.coe_to_real_linear_equiv_of_map_zero + theorem IsometryEquiv.coe_to_real_linear_equiv_of_map_zero_symm + theorem IsometryEquiv.map_midpoint + theorem IsometryEquiv.midpoint_fixed + def IsometryEquiv.toRealAffineIsometryEquiv + def IsometryEquiv.toRealLinearIsometryEquiv + def IsometryEquiv.toRealLinearIsometryEquivOfMapZero + theorem IsometryEquiv.toRealLinearIsometryEquiv_symm_apply + theorem IsometryEquiv.to_real_linear_equiv_apply 2023-05-20 16:09:49 62e4694 feat: port Analysis.SpecialFunctions.Log.Monotone (#4144) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/SpecialFunctions/Log/Monotone.lean + theorem Real.log_div_self_antitoneOn + theorem Real.log_div_self_rpow_antitoneOn + theorem Real.log_div_sqrt_antitoneOn + theorem Real.log_mul_self_monotoneOn 2023-05-20 15:51:05 ebfb60d feat: port Algebra.MonoidAlgebra.ToDirectSum (#4087) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/MonoidAlgebra/ToDirectSum.lean + def AddMonoidAlgebra.toDirectSum + theorem AddMonoidAlgebra.toDirectSum_add + theorem AddMonoidAlgebra.toDirectSum_mul + theorem AddMonoidAlgebra.toDirectSum_single + theorem AddMonoidAlgebra.toDirectSum_toAddMonoidAlgebra + theorem AddMonoidAlgebra.toDirectSum_zero + def DirectSum.toAddMonoidAlgebra + theorem DirectSum.toAddMonoidAlgebra_add + theorem DirectSum.toAddMonoidAlgebra_mul + theorem DirectSum.toAddMonoidAlgebra_of + theorem DirectSum.toAddMonoidAlgebra_toDirectSum + theorem DirectSum.toAddMonoidAlgebra_zero + def addMonoidAlgebraAddEquivDirectSum + def addMonoidAlgebraAlgEquivDirectSum + def addMonoidAlgebraEquivDirectSum + def addMonoidAlgebraRingEquivDirectSum 2023-05-20 14:27:51 3eaf598 feat: port RingTheory.GradedAlgebra.Basic (#4143) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/RingTheory/GradedAlgebra/Basic.lean + theorem DirectSum.coe_decompose_mul_add_of_left_mem + theorem DirectSum.coe_decompose_mul_add_of_right_mem + theorem DirectSum.coe_decompose_mul_of_left_mem + theorem DirectSum.coe_decompose_mul_of_left_mem_of_le + theorem DirectSum.coe_decompose_mul_of_left_mem_of_not_le + theorem DirectSum.coe_decompose_mul_of_right_mem + theorem DirectSum.coe_decompose_mul_of_right_mem_of_le + theorem DirectSum.coe_decompose_mul_of_right_mem_of_not_le + def DirectSum.decomposeAlgEquiv + def DirectSum.decomposeRingEquiv + theorem DirectSum.decompose_mul + theorem DirectSum.decompose_mul_add_left + theorem DirectSum.decompose_mul_add_right + theorem DirectSum.decompose_one + theorem DirectSum.decompose_symm_mul + theorem DirectSum.decompose_symm_one + theorem GradedAlgebra.mem_support_iff + def GradedAlgebra.ofAlgHom + def GradedAlgebra.proj + theorem GradedAlgebra.proj_apply + theorem GradedAlgebra.proj_recompose + def GradedAlgebra + theorem GradedRing.mem_support_iff + def GradedRing.proj + def GradedRing.projZeroRingHom + theorem GradedRing.proj_apply + theorem GradedRing.proj_recompose 2023-05-20 14:05:40 e73b3d6 feat: port Analysis.SpecialFunctions.Log.Base (#4140) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/SpecialFunctions/Log/Base.lean + theorem Real.ceil_logb_nat_cast + theorem Real.eq_one_of_pos_of_logb_eq_zero + theorem Real.eq_one_of_pos_of_logb_eq_zero_of_base_lt_one + theorem Real.floor_logb_nat_cast + theorem Real.le_logb_iff_rpow_le + theorem Real.le_logb_iff_rpow_le_of_base_lt_one + theorem Real.log_div_log + theorem Real.logb_abs + theorem Real.logb_div + theorem Real.logb_eq_zero + theorem Real.logb_injOn_pos + theorem Real.logb_injOn_pos_of_base_lt_one + theorem Real.logb_inv + theorem Real.logb_le_iff_le_rpow + theorem Real.logb_le_iff_le_rpow_of_base_lt_one + theorem Real.logb_le_logb + theorem Real.logb_le_logb_of_base_lt_one + theorem Real.logb_lt_iff_lt_rpow + theorem Real.logb_lt_iff_lt_rpow_of_base_lt_one + theorem Real.logb_lt_logb + theorem Real.logb_lt_logb_iff + theorem Real.logb_lt_logb_iff_of_base_lt_one + theorem Real.logb_lt_logb_of_base_lt_one + theorem Real.logb_mul + theorem Real.logb_ne_zero_of_pos_of_ne_one + theorem Real.logb_ne_zero_of_pos_of_ne_one_of_base_lt_one + theorem Real.logb_neg + theorem Real.logb_neg_eq_logb + theorem Real.logb_neg_iff + theorem Real.logb_neg_iff_of_base_lt_one + theorem Real.logb_neg_of_base_lt_one + theorem Real.logb_nonneg + theorem Real.logb_nonneg_iff + theorem Real.logb_nonneg_iff_of_base_lt_one + theorem Real.logb_nonneg_of_base_lt_one + theorem Real.logb_nonpos + theorem Real.logb_nonpos_iff' + theorem Real.logb_nonpos_iff + theorem Real.logb_nonpos_iff_of_base_lt_one + theorem Real.logb_one + theorem Real.logb_pos + theorem Real.logb_pos_iff + theorem Real.logb_pos_iff_of_base_lt_one + theorem Real.logb_pos_of_base_lt_one + theorem Real.logb_prod + theorem Real.logb_rpow + theorem Real.logb_surjective + theorem Real.logb_zero + theorem Real.lt_logb_iff_rpow_lt + theorem Real.lt_logb_iff_rpow_lt_of_base_lt_one + theorem Real.range_logb + theorem Real.rpow_logb + theorem Real.rpow_logb_eq_abs + theorem Real.rpow_logb_of_neg + theorem Real.strictAntiOn_logb + theorem Real.strictAntiOn_logb_of_base_lt_one + theorem Real.strictMonoOn_logb + theorem Real.strictMonoOn_logb_of_base_lt_one + theorem Real.surjOn_logb' + theorem Real.surjOn_logb + theorem Real.tendsto_logb_atTop + theorem Real.tendsto_logb_atTop_of_base_lt_one 2023-05-20 13:50:17 63bcb96 feat: port Data.IsROrC.Lemmas (#4141) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Data/IsROrC/Lemmas.lean + theorem FiniteDimensional.proper_isROrC + theorem IsROrC.conjCle_norm + theorem IsROrC.ofRealClm_norm + theorem IsROrC.reClm_norm + theorem Polynomial.ofReal_eval 2023-05-20 12:38:51 ddd8e1d feat: port LinearAlgebra.CrossProduct (#3736) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Data/Matrix/Notation.lean + theorem Matrix.vec2_dotProduct' - theorem Matrix.vec2_dot_product' + theorem Matrix.vec3_dotProduct' - theorem Matrix.vec3_dot_product' Added Mathlib/LinearAlgebra/CrossProduct.lean + def Cross.lieRing + def crossProduct + theorem cross_anticomm' + theorem cross_anticomm + theorem cross_apply + theorem cross_cross + theorem cross_dot_cross + theorem cross_self + theorem dot_cross_self + theorem dot_self_cross + theorem jacobi_cross + theorem leibniz_cross + theorem triple_product_eq_det + theorem triple_product_permutation 2023-05-20 11:53:16 52ae305 feat: port Combinatorics.Additive.SalemSpencer (#4128) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Combinatorics/Additive/SalemSpencer.lean + theorem AddSalemSpencer.le_rothNumberNat + theorem MulSalemSpencer.image + theorem MulSalemSpencer.le_mulRothNumber + theorem MulSalemSpencer.mono + theorem MulSalemSpencer.mul_left + theorem MulSalemSpencer.mul_left₀ + theorem MulSalemSpencer.mul_right + theorem MulSalemSpencer.mul_right₀ + theorem MulSalemSpencer.of_image + theorem MulSalemSpencer.prod + theorem MulSalemSpencer.roth_number_eq + def MulSalemSpencer + theorem Set.Subsingleton.mulSalemSpencer + theorem addRothNumber_Ico + theorem addSalemSpencer_frontier + theorem addSalemSpencer_iff_eq_right + theorem addSalemSpencer_sphere + theorem le_mulRothNumber_product + def mulRothNumber + theorem mulRothNumber_empty + theorem mulRothNumber_le + theorem mulRothNumber_lt_of_forall_not_mulSalemSpencer + theorem mulRothNumber_map_mul_left + theorem mulRothNumber_map_mul_right + theorem mulRothNumber_singleton + theorem mulRothNumber_spec + theorem mulRothNumber_union_le + theorem mulSalemSpencer_empty + theorem mulSalemSpencer_insert + theorem mulSalemSpencer_insert_of_lt + theorem mulSalemSpencer_mul_left_iff + theorem mulSalemSpencer_mul_left_iff₀ + theorem mulSalemSpencer_mul_right_iff + theorem mulSalemSpencer_mul_right_iff₀ + theorem mulSalemSpencer_pair + theorem mulSalemSpencer_pi + theorem mulSalemSpencer_singleton + def rothNumberNat + theorem rothNumberNat_add_le + theorem rothNumberNat_def + theorem rothNumberNat_isBigOWith_id + theorem rothNumberNat_isBigO_id + theorem rothNumberNat_le + theorem rothNumberNat_spec + theorem rothNumberNat_zero 2023-05-20 11:32:23 b876411 feat: port Analysis.Convex.Uniform (#4134) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/Convex/Uniform.lean + theorem exists_forall_closed_ball_dist_add_le_two_mul_sub + theorem exists_forall_closed_ball_dist_add_le_two_sub + theorem exists_forall_sphere_dist_add_le_two_sub 2023-05-20 10:55:33 3310935 feat: port Analysis.NormedSpace.BoundedLinearMaps (#4091) Simplify a few proofs to avoid non-terminal simps in favor of rewrites and `have` instead of `convert`. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/NormedSpace/BoundedLinearMaps.lean + theorem Continuous.clm_comp + theorem ContinuousLinearMap.continuous₂ + theorem ContinuousLinearMap.isBoundedBilinearMap + theorem ContinuousLinearMap.isBoundedLinearMap + theorem ContinuousLinearMap.isBoundedLinearMap_comp_left + theorem ContinuousLinearMap.isBoundedLinearMap_comp_right + theorem ContinuousLinearMap.map_add₂ + theorem ContinuousLinearMap.map_neg₂ + theorem ContinuousLinearMap.map_smul₂ + theorem ContinuousLinearMap.map_smulₛₗ₂ + theorem ContinuousLinearMap.map_sub₂ + theorem ContinuousLinearMap.map_zero₂ + theorem ContinuousLinearMap.mulLeftRightIsBoundedBilinear + theorem ContinuousOn.clm_comp + theorem IsBoundedBilinearMap.continuous + theorem IsBoundedBilinearMap.continuous_left + theorem IsBoundedBilinearMap.continuous_right + def IsBoundedBilinearMap.deriv + theorem IsBoundedBilinearMap.isBigO_comp + theorem IsBoundedBilinearMap.isBoundedLinearMap_deriv + theorem IsBoundedBilinearMap.isBoundedLinearMap_left + theorem IsBoundedBilinearMap.isBoundedLinearMap_right + def IsBoundedBilinearMap.linearDeriv + theorem IsBoundedBilinearMap.map_sub_left + theorem IsBoundedBilinearMap.map_sub_right + structure IsBoundedBilinearMap + theorem IsBoundedLinearMap.add + theorem IsBoundedLinearMap.comp + theorem IsBoundedLinearMap.continuous + theorem IsBoundedLinearMap.fst + theorem IsBoundedLinearMap.id + theorem IsBoundedLinearMap.isBigO_comp + theorem IsBoundedLinearMap.isBigO_id + theorem IsBoundedLinearMap.isBigO_sub + theorem IsBoundedLinearMap.lim_zero_bounded_linear_map + theorem IsBoundedLinearMap.neg + theorem IsBoundedLinearMap.smul + theorem IsBoundedLinearMap.snd + theorem IsBoundedLinearMap.sub + def IsBoundedLinearMap.toContinuousLinearMap + def IsBoundedLinearMap.toLinearMap + theorem IsBoundedLinearMap.zero + structure IsBoundedLinearMap + theorem IsLinearMap.with_bound + theorem isBoundedBilinearMapApply + theorem isBoundedBilinearMapComp + theorem isBoundedBilinearMapCompMultilinear + theorem isBoundedBilinearMapMul + theorem isBoundedBilinearMapSmul + theorem isBoundedBilinearMapSmulRight + theorem isBoundedBilinearMap_deriv_coe + theorem isBoundedLinearMap_continuousMultilinearMap_comp_linear + theorem isBoundedLinearMap_prod_multilinear 2023-05-20 10:55:32 b58077e feat: port Algebra.Category.ModuleCat.Projective (#3964) This is stuck at a universe issue. Lean is having trouble merging `Type (max (max v u) u v)` with `Type (max u u v)` See comment below. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Category/ModuleCat/Projective.lean + theorem IsProjective.iff_projective + theorem ModuleCat.projective_of_free 2023-05-20 10:39:40 74203d9 feat: port RingTheory.MvPolynomial.Homogeneous (#4138) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/RingTheory/MvPolynomial/Homogeneous.lean + theorem MvPolynomial.IsHomogeneous.add + theorem MvPolynomial.IsHomogeneous.coeff_eq_zero + theorem MvPolynomial.IsHomogeneous.inj_right + theorem MvPolynomial.IsHomogeneous.mul + theorem MvPolynomial.IsHomogeneous.prod + theorem MvPolynomial.IsHomogeneous.sum + theorem MvPolynomial.IsHomogeneous.totalDegree + def MvPolynomial.IsHomogeneous + theorem MvPolynomial.coeff_homogeneousComponent + def MvPolynomial.homogeneousComponent + theorem MvPolynomial.homogeneousComponent_C_mul + theorem MvPolynomial.homogeneousComponent_apply + theorem MvPolynomial.homogeneousComponent_eq_zero' + theorem MvPolynomial.homogeneousComponent_eq_zero + theorem MvPolynomial.homogeneousComponent_homogeneous_polynomial + theorem MvPolynomial.homogeneousComponent_isHomogeneous + theorem MvPolynomial.homogeneousComponent_zero + def MvPolynomial.homogeneousSubmodule + theorem MvPolynomial.homogeneousSubmodule_eq_finsupp_supported + theorem MvPolynomial.homogeneousSubmodule_mul + theorem MvPolynomial.isHomogeneous_C + theorem MvPolynomial.isHomogeneous_X + theorem MvPolynomial.isHomogeneous_monomial + theorem MvPolynomial.isHomogeneous_of_totalDegree_zero + theorem MvPolynomial.isHomogeneous_one + theorem MvPolynomial.isHomogeneous_zero + theorem MvPolynomial.mem_homogeneousSubmodule + theorem MvPolynomial.sum_homogeneousComponent 2023-05-20 10:39:39 7c8c964 feat: port LinearAlgebra.AdicCompletion (#4133) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/LinearAlgebra/AdicCompletion.lean + theorem Hausdorffification.induction_on + def Hausdorffification.lift + theorem Hausdorffification.lift_comp_of + theorem Hausdorffification.lift_eq + theorem Hausdorffification.lift_of + def Hausdorffification.of + def Hausdorffification + theorem IsAdicComplete.le_jacobson_bot + theorem IsHausdorff.haus + theorem IsHausdorff.iInf_pow_smul + theorem IsPrecomplete.prec + theorem adicCompletion.coe_eval + def adicCompletion.eval + theorem adicCompletion.eval_apply + theorem adicCompletion.eval_comp_of + theorem adicCompletion.eval_of + theorem adicCompletion.ext + def adicCompletion.of + theorem adicCompletion.of_apply + theorem adicCompletion.range_eval + def adicCompletion + theorem isHausdorff_iff + theorem isPrecomplete_iff 2023-05-20 10:39:38 c9bcb0a feat: port Analysis.NormedSpace.Complemented (#4131) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/NormedSpace/Complemented.lean + theorem ContinuousLinearMap.coe_equivProdOfSurjectiveOfIsCompl + theorem ContinuousLinearMap.equivProdOfSurjectiveOfIsCompl_apply + theorem ContinuousLinearMap.equivProdOfSurjectiveOfIsCompl_toLinearEquiv + theorem ContinuousLinearMap.ker_closedComplemented_of_finiteDimensional_range + theorem Subspace.closedComplemented_iff_has_closed_compl + theorem Subspace.closedComplemented_of_closed_compl + theorem Subspace.closedComplemented_of_quotient_finiteDimensional + theorem Subspace.coe_continuous_linearProjOfClosedCompl' + theorem Subspace.coe_continuous_linearProjOfClosedCompl + theorem Subspace.coe_prodEquivOfClosedCompl + theorem Subspace.coe_prodEquivOfClosedCompl_symm + def Subspace.linearProjOfClosedCompl + def Subspace.prodEquivOfClosedCompl 2023-05-20 10:39:37 fad183b feat: port RingTheory.Valuation.ExtendToLocalization (#4130) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/RingTheory/Valuation/ExtendToLocalization.lean + theorem Valuation.extendToLocalization_apply_map_apply 2023-05-20 10:39:36 0500ff5 feat: port Analysis.Convex.StrictConvexSpace (#4120) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/Convex/StrictConvexSpace.lean + theorem Isometry.affineIsometryOfStrictConvexSpace_apply + theorem Isometry.coe_affineIsometryOfStrictConvexSpace + theorem StrictConvexSpace.ofNormAdd + theorem StrictConvexSpace.ofNormAddNeTwo + theorem StrictConvexSpace.ofNormComboLtOne + theorem StrictConvexSpace.ofNormComboNeOne + theorem StrictConvexSpace.ofPairwiseSphereNormNeTwo + theorem StrictConvexSpace.ofStrictConvexClosedUnitBall + theorem abs_lt_norm_sub_of_not_sameRay + theorem combo_mem_ball_of_ne + theorem dist_add_dist_eq_iff + theorem eq_lineMap_of_dist_eq_mul_of_dist_eq_mul + theorem eq_midpoint_of_dist_eq_half + theorem eq_of_norm_eq_of_norm_add_eq + theorem lt_norm_sub_of_not_sameRay + theorem norm_add_lt_of_not_sameRay + theorem norm_combo_lt_of_ne + theorem norm_midpoint_lt_iff + theorem not_sameRay_iff_abs_lt_norm_sub + theorem not_sameRay_iff_norm_add_lt + theorem openSegment_subset_ball_of_ne + theorem sameRay_iff_norm_add + theorem sameRay_iff_norm_sub + theorem strictConvex_closedBall 2023-05-20 10:23:45 6de3b49 feat: port Topology.Algebra.Module.Star (#4135) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Topology/Algebra/Module/Star.lean + def StarModule.decomposeProdAdjointL + theorem continuous_decomposeProdAdjoint + theorem continuous_decomposeProdAdjoint_symm + theorem continuous_selfAdjointPart + theorem continuous_skewAdjointPart + def selfAdjointPartL + def skewAdjointPartL + def starL 2023-05-20 09:37:16 848e5df feat: port Analysis.SpecialFunctions.Pow.Real (#4085) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/SpecialFunctions/Pow/Real.lean + theorem Complex.abs_cpow_eq_rpow_re_of_nonneg + theorem Complex.abs_cpow_eq_rpow_re_of_pos + theorem Complex.abs_cpow_inv_nat + theorem Complex.abs_cpow_le + theorem Complex.abs_cpow_of_imp + theorem Complex.abs_cpow_of_ne_zero + theorem Complex.abs_cpow_real + theorem Complex.of_real_cpow + theorem Complex.of_real_cpow_of_nonpos + theorem Real.abs_log_mul_self_rpow_lt + theorem Real.abs_rpow_le_abs_rpow + theorem Real.abs_rpow_le_exp_log_mul + theorem Real.abs_rpow_of_nonneg + theorem Real.div_rpow + theorem Real.eq_zero_rpow_iff + theorem Real.exists_rat_pow_btwn + theorem Real.exists_rat_pow_btwn_rat + theorem Real.exists_rat_pow_btwn_rat_aux + theorem Real.exp_mul + theorem Real.exp_one_rpow + theorem Real.inv_rpow + theorem Real.le_rpow_add + theorem Real.le_rpow_iff_log_le + theorem Real.le_rpow_inv_iff_of_neg + theorem Real.le_rpow_of_log_le + theorem Real.log_rpow + theorem Real.lt_rpow_iff_log_lt + theorem Real.lt_rpow_inv_iff_of_neg + theorem Real.lt_rpow_of_log_lt + theorem Real.mul_rpow + theorem Real.norm_rpow_of_nonneg + theorem Real.one_le_rpow + theorem Real.one_le_rpow_of_pos_of_le_one_of_nonpos + theorem Real.one_lt_rpow + theorem Real.one_lt_rpow_iff + theorem Real.one_lt_rpow_iff_of_pos + theorem Real.one_lt_rpow_of_pos_of_lt_one_of_neg + theorem Real.one_rpow + theorem Real.pow_nat_rpow_nat_inv + theorem Real.rpow_add' + theorem Real.rpow_add + theorem Real.rpow_add_int + theorem Real.rpow_add_nat + theorem Real.rpow_add_of_nonneg + theorem Real.rpow_add_one + theorem Real.rpow_def + theorem Real.rpow_def_of_neg + theorem Real.rpow_def_of_nonneg + theorem Real.rpow_def_of_nonpos + theorem Real.rpow_def_of_pos + theorem Real.rpow_div_two_eq_sqrt + theorem Real.rpow_eq_pow + theorem Real.rpow_eq_zero_iff_of_nonneg + theorem Real.rpow_int_cast + theorem Real.rpow_inv_le_iff_of_neg + theorem Real.rpow_inv_lt_iff_of_neg + theorem Real.rpow_le_one + theorem Real.rpow_le_one_iff_of_pos + theorem Real.rpow_le_one_of_one_le_of_nonpos + theorem Real.rpow_le_rpow + theorem Real.rpow_le_rpow_iff + theorem Real.rpow_le_rpow_left_iff + theorem Real.rpow_le_rpow_left_iff_of_base_lt_one + theorem Real.rpow_le_rpow_of_exponent_ge' + theorem Real.rpow_le_rpow_of_exponent_ge + theorem Real.rpow_le_rpow_of_exponent_le + theorem Real.rpow_left_injOn + theorem Real.rpow_lt_one + theorem Real.rpow_lt_one_iff + theorem Real.rpow_lt_one_iff_of_pos + theorem Real.rpow_lt_one_of_one_lt_of_neg + theorem Real.rpow_lt_rpow + theorem Real.rpow_lt_rpow_iff + theorem Real.rpow_lt_rpow_left_iff + theorem Real.rpow_lt_rpow_left_iff_of_base_lt_one + theorem Real.rpow_lt_rpow_of_exponent_gt + theorem Real.rpow_lt_rpow_of_exponent_lt + theorem Real.rpow_mul + theorem Real.rpow_nat_cast + theorem Real.rpow_nat_inv_pow_nat + theorem Real.rpow_neg + theorem Real.rpow_neg_one + theorem Real.rpow_nonneg_of_nonneg + theorem Real.rpow_one + theorem Real.rpow_pos_of_pos + theorem Real.rpow_sub' + theorem Real.rpow_sub + theorem Real.rpow_sub_int + theorem Real.rpow_sub_nat + theorem Real.rpow_sub_one + theorem Real.rpow_sum_of_nonneg + theorem Real.rpow_sum_of_pos + theorem Real.rpow_two + theorem Real.rpow_zero + theorem Real.sqrt_eq_rpow + theorem Real.zero_rpow + theorem Real.zero_rpow_eq_iff + theorem Real.zero_rpow_le_one + theorem Real.zero_rpow_nonneg 2023-05-20 01:21:51 81b3137 feat: port Analysis.NormedSpace.Banach (#4122) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/NormedSpace/Banach.lean + theorem AffineMap.isOpenMap + theorem ContinuousLinearEquiv.coeFn_ofBijective + theorem ContinuousLinearEquiv.coe_ofBijective + theorem ContinuousLinearEquiv.ofBijective_apply_symm_apply + theorem ContinuousLinearEquiv.ofBijective_symm_apply_apply + theorem ContinuousLinearMap.NonlinearRightInverse.bound + theorem ContinuousLinearMap.NonlinearRightInverse.right_inv + structure ContinuousLinearMap.NonlinearRightInverse + theorem ContinuousLinearMap.closed_complemented_range_of_isCompl_of_ker_eq_bot + theorem ContinuousLinearMap.closure_preimage + theorem ContinuousLinearMap.coeFn_ofIsClosedGraph + theorem ContinuousLinearMap.coeFn_ofSeqClosedGraph + theorem ContinuousLinearMap.coe_ofIsClosedGraph + theorem ContinuousLinearMap.coe_ofSeqClosedGraph + theorem ContinuousLinearMap.exists_approx_preimage_norm_le + theorem ContinuousLinearMap.exists_nonlinearRightInverse_of_surjective + theorem ContinuousLinearMap.exists_preimage_norm_le + theorem ContinuousLinearMap.frontier_preimage + theorem ContinuousLinearMap.interior_preimage + theorem ContinuousLinearMap.nonlinearRightInverseOfSurjective_nnnorm_pos + def ContinuousLinearMap.ofIsClosedGraph + def ContinuousLinearMap.ofSeqClosedGraph + theorem ContinuousLinearMap.range_eq_map_coprodSubtypeLEquivOfIsCompl + theorem LinearEquiv.coeFn_toContinuousLinearEquivOfContinuous + theorem LinearEquiv.coeFn_toContinuousLinearEquivOfContinuous_symm + theorem LinearEquiv.continuous_symm + def LinearEquiv.toContinuousLinearEquivOfContinuous + theorem LinearMap.continuous_of_isClosed_graph + theorem LinearMap.continuous_of_seq_closed_graph 2023-05-20 01:06:58 78acb82 feat: port Analysis.NormedSpace.FiniteDimension (#4123) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/NormedSpace/FiniteDimension.lean + theorem AffineEquiv.coe_toHomeomorphOfFiniteDimensional + theorem AffineEquiv.coe_toHomeomorphOfFiniteDimensional_symm + theorem AffineEquiv.continuous_of_finiteDimensional + def AffineEquiv.toHomeomorphOfFiniteDimensional + theorem AffineIsometry.coe_toAffineIsometryEquiv + def AffineIsometry.toAffineIsometryEquiv + theorem AffineIsometry.toAffineIsometryEquiv_apply + theorem AffineMap.continuous_of_finiteDimensional + theorem AffineSubspace.closed_of_finiteDimensional + theorem Basis.exists_op_nnnorm_le + theorem Basis.exists_op_norm_le + theorem Basis.op_nnnorm_le + theorem Basis.op_norm_le + def ContinuousLinearEquiv.piRing + theorem ContinuousLinearMap.continuous_det + theorem ContinuousLinearMap.exists_right_inverse_of_surjective + theorem FiniteDimensional.complete + theorem FiniteDimensional.proper + theorem HasCompactMulSupport.eq_one_or_finiteDimensional + theorem IsEquivalent.summable_iff + theorem IsEquivalent.summable_iff_nat + theorem LinearEquiv.closedEmbedding_of_injective + theorem LinearIsometry.coe_toLinearIsometryEquiv + def LinearIsometry.toLinearIsometryEquiv + theorem LinearIsometry.toLinearIsometryEquiv_apply + theorem LinearMap.exists_antilipschitzWith + theorem LipschitzOnWith.extend_finite_dimension + theorem Submodule.closed_of_finiteDimensional + theorem Submodule.complete_of_finiteDimensional + theorem closedEmbedding_smul_left + theorem continuousOn_clm_apply + theorem continuous_clm_apply + theorem exists_mem_frontier_infDist_compl_eq_dist + theorem exists_norm_le_le_norm_sub_of_finset + theorem exists_seq_norm_le_one_le_norm_sub' + theorem exists_seq_norm_le_one_le_norm_sub + theorem finiteDimensional_of_isCompact_closedBall + theorem finiteDimensional_of_isCompact_closed_ball₀ + theorem isClosedMap_smul_left + theorem isOpen_setOf_linearIndependent + theorem isOpen_setOf_nat_le_rank + theorem lipschitzExtensionConstant_pos + theorem summable_norm_iff + theorem summable_of_isBigO' + theorem summable_of_isBigO_nat' + theorem summable_of_isEquivalent + theorem summable_of_isEquivalent_nat 2023-05-19 20:57:09 3b22771 feat: port CategoryTheory.Monoidal.Types.Basic (#4121) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Monoidal/Types/Basic.lean + theorem CategoryTheory.associator_hom_apply + theorem CategoryTheory.associator_inv_apply + theorem CategoryTheory.leftUnitor_hom_apply + theorem CategoryTheory.leftUnitor_inv_apply + theorem CategoryTheory.rightUnitor_hom_apply + theorem CategoryTheory.rightUnitor_inv_apply + theorem CategoryTheory.tensor_apply 2023-05-19 18:00:35 d1691c3 feat: port Analysis.NormedSpace.AffineIsometry (#3651) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/NormedSpace/AffineIsometry.lean + theorem AffineIsometry.coeFn_injective + theorem AffineIsometry.coe_comp + theorem AffineIsometry.coe_id + theorem AffineIsometry.coe_mul + theorem AffineIsometry.coe_one + theorem AffineIsometry.coe_toAffineMap + def AffineIsometry.comp + theorem AffineIsometry.comp_assoc + theorem AffineIsometry.comp_continuous_iff + theorem AffineIsometry.comp_id + theorem AffineIsometry.diam_image + theorem AffineIsometry.diam_range + theorem AffineIsometry.dist_map + theorem AffineIsometry.ediam_image + theorem AffineIsometry.ediam_range + theorem AffineIsometry.edist_map + theorem AffineIsometry.ext + def AffineIsometry.id + theorem AffineIsometry.id_apply + theorem AffineIsometry.id_comp + theorem AffineIsometry.id_toAffineMap + theorem AffineIsometry.linear_eq_linearIsometry + theorem AffineIsometry.map_eq_iff + theorem AffineIsometry.map_ne + theorem AffineIsometry.map_vadd + theorem AffineIsometry.map_vsub + theorem AffineIsometry.nndist_map + theorem AffineIsometry.toAffineMap_injective + structure AffineIsometry + theorem AffineIsometryEquiv.apply_symm_apply + theorem AffineIsometryEquiv.coe_constVadd + theorem AffineIsometryEquiv.coe_constVsub + theorem AffineIsometryEquiv.coe_inv + theorem AffineIsometryEquiv.coe_mk' + theorem AffineIsometryEquiv.coe_mk + theorem AffineIsometryEquiv.coe_mul + theorem AffineIsometryEquiv.coe_one + theorem AffineIsometryEquiv.coe_refl + theorem AffineIsometryEquiv.coe_symm_trans + theorem AffineIsometryEquiv.coe_toAffineEquiv + theorem AffineIsometryEquiv.coe_toAffineIsometry + theorem AffineIsometryEquiv.coe_toHomeomorph + theorem AffineIsometryEquiv.coe_toIsometryEquiv + theorem AffineIsometryEquiv.coe_trans + theorem AffineIsometryEquiv.coe_vaddConst' + theorem AffineIsometryEquiv.coe_vaddConst + theorem AffineIsometryEquiv.coe_vaddConst_symm + theorem AffineIsometryEquiv.comp_continuousOn_iff + theorem AffineIsometryEquiv.comp_continuous_iff + def AffineIsometryEquiv.constVadd + theorem AffineIsometryEquiv.constVadd_zero + def AffineIsometryEquiv.constVsub + theorem AffineIsometryEquiv.diam_image + theorem AffineIsometryEquiv.dist_map + theorem AffineIsometryEquiv.dist_pointReflection_fixed + theorem AffineIsometryEquiv.dist_pointReflection_self' + theorem AffineIsometryEquiv.dist_pointReflection_self + theorem AffineIsometryEquiv.dist_pointReflection_self_real + theorem AffineIsometryEquiv.ediam_image + theorem AffineIsometryEquiv.edist_map + theorem AffineIsometryEquiv.ext + theorem AffineIsometryEquiv.linearIsometryEquiv_mk' + theorem AffineIsometryEquiv.linear_eq_linear_isometry + theorem AffineIsometryEquiv.map_eq_iff + theorem AffineIsometryEquiv.map_ne + theorem AffineIsometryEquiv.map_vadd + theorem AffineIsometryEquiv.map_vsub + def AffineIsometryEquiv.mk' + def AffineIsometryEquiv.pointReflection + theorem AffineIsometryEquiv.pointReflection_apply + theorem AffineIsometryEquiv.pointReflection_fixed_iff + theorem AffineIsometryEquiv.pointReflection_involutive + theorem AffineIsometryEquiv.pointReflection_midpoint_left + theorem AffineIsometryEquiv.pointReflection_midpoint_right + theorem AffineIsometryEquiv.pointReflection_self + theorem AffineIsometryEquiv.pointReflection_symm + theorem AffineIsometryEquiv.pointReflection_toAffineEquiv + theorem AffineIsometryEquiv.range_eq_univ + def AffineIsometryEquiv.refl + theorem AffineIsometryEquiv.refl_trans + theorem AffineIsometryEquiv.self_trans_symm + def AffineIsometryEquiv.symm + theorem AffineIsometryEquiv.symm_apply_apply + theorem AffineIsometryEquiv.symm_constVsub + theorem AffineIsometryEquiv.symm_symm + theorem AffineIsometryEquiv.symm_trans_self + theorem AffineIsometryEquiv.toAffineEquiv_injective + theorem AffineIsometryEquiv.toAffineEquiv_refl + theorem AffineIsometryEquiv.toAffineEquiv_symm + def AffineIsometryEquiv.toAffineIsometry + def AffineIsometryEquiv.toHomeomorph + theorem AffineIsometryEquiv.toHomeomorph_refl + theorem AffineIsometryEquiv.toHomeomorph_symm + def AffineIsometryEquiv.toIsometryEquiv + theorem AffineIsometryEquiv.toIsometryEquiv_refl + theorem AffineIsometryEquiv.toIsometryEquiv_symm + def AffineIsometryEquiv.trans + theorem AffineIsometryEquiv.trans_assoc + theorem AffineIsometryEquiv.trans_refl + def AffineIsometryEquiv.vaddConst + theorem AffineIsometryEquiv.vaddConst_toAffineEquiv + theorem AffineIsometryEquiv.vadd_vsub + structure AffineIsometryEquiv + theorem AffineMap.continuous_linear_iff + theorem AffineMap.isOpenMap_linear_iff + theorem AffineSubspace.coe_subtypeₐᵢ + theorem AffineSubspace.isometryEquivMap.apply_symm_apply + theorem AffineSubspace.isometryEquivMap.coe_apply + theorem AffineSubspace.isometryEquivMap.toAffineMap_eq + def AffineSubspace.subtypeₐᵢ + theorem AffineSubspace.subtypeₐᵢ_linear + theorem AffineSubspace.subtypeₐᵢ_linearIsometry + theorem AffineSubspace.subtypeₐᵢ_toAffineMap + theorem LinearIsometry.coe_toAffineIsometry + def LinearIsometry.toAffineIsometry + theorem LinearIsometry.toAffineIsometry_linearIsometry + theorem LinearIsometry.toAffineIsometry_toAffineMap + theorem LinearIsometryEquiv.coe_toAffineIsometryEquiv + def LinearIsometryEquiv.toAffineIsometryEquiv + theorem LinearIsometryEquiv.toAffineIsometryEquiv_linearIsometryEquiv + theorem LinearIsometryEquiv.toAffineIsometryEquiv_toAffineEquiv + theorem LinearIsometryEquiv.toAffineIsometryEquiv_toAffineIsometry 2023-05-19 16:59:27 afc7721 Port/category_theory.monoidal.of_chosen_finite_products.basic (#4115) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Monoidal/OfChosenFiniteProducts/Basic.lean + def CategoryTheory.Limits.BinaryFan.assoc + def CategoryTheory.Limits.BinaryFan.assocInv + theorem CategoryTheory.Limits.BinaryFan.assocInv_fst + theorem CategoryTheory.Limits.BinaryFan.assocInv_snd + theorem CategoryTheory.Limits.BinaryFan.assoc_fst + theorem CategoryTheory.Limits.BinaryFan.assoc_snd + def CategoryTheory.Limits.BinaryFan.associator + def CategoryTheory.Limits.BinaryFan.associatorOfLimitCone + def CategoryTheory.Limits.BinaryFan.braiding + def CategoryTheory.Limits.BinaryFan.leftUnitor + def CategoryTheory.Limits.BinaryFan.rightUnitor + def CategoryTheory.Limits.BinaryFan.swap + theorem CategoryTheory.Limits.BinaryFan.swap_fst + theorem CategoryTheory.Limits.BinaryFan.swap_snd + theorem CategoryTheory.Limits.HasBinaryProduct.swap + def CategoryTheory.Limits.IsLimit.assoc + def CategoryTheory.Limits.IsLimit.swapBinaryFan + def CategoryTheory.MonoidalOfChosenFiniteProducts.MonoidalOfChosenFiniteProductsSynonym + theorem CategoryTheory.MonoidalOfChosenFiniteProducts.associator_naturality + theorem CategoryTheory.MonoidalOfChosenFiniteProducts.leftUnitor_naturality + theorem CategoryTheory.MonoidalOfChosenFiniteProducts.pentagon + theorem CategoryTheory.MonoidalOfChosenFiniteProducts.rightUnitor_naturality + def CategoryTheory.MonoidalOfChosenFiniteProducts.tensorHom + def CategoryTheory.MonoidalOfChosenFiniteProducts.tensorObj + theorem CategoryTheory.MonoidalOfChosenFiniteProducts.tensor_comp + theorem CategoryTheory.MonoidalOfChosenFiniteProducts.tensor_id + theorem CategoryTheory.MonoidalOfChosenFiniteProducts.triangle + def CategoryTheory.monoidalOfChosenFiniteProducts 2023-05-19 16:40:40 8c878fe feat: port Data.Nat.Factorial.DoubleFactorial (#4117) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Data/Nat/Factorial/DoubleFactorial.lean + def Nat.doubleFactorial + theorem Nat.doubleFactorial_add_one + theorem Nat.doubleFactorial_add_two + theorem Nat.doubleFactorial_eq_prod_even + theorem Nat.doubleFactorial_eq_prod_odd + theorem Nat.doubleFactorial_two_mul + theorem Nat.factorial_eq_mul_doubleFactorial 2023-05-19 15:02:38 a0e77e7 feat: port Analysis.NormedSpace.BanachSteinhaus (#4111) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/NormedSpace/BanachSteinhaus.lean + theorem banach_steinhaus + theorem banach_steinhaus_iSup_nnnorm + def continuousLinearMapOfTendsto 2023-05-19 15:02:37 2fd1bae fix: `ι` of `iInf_isMeasurablyGenerated` becomes `Prop` (#4038) `ι` of `iInf_isMeasurablyGenerated` was `Sort _` in Lean 3, but it's `Prop` in Lean 4. This PR fixes this issue. ESTIMATED CHANGES Modified Mathlib/MeasureTheory/MeasurableSpace.lean 2023-05-19 15:02:36 65012b4 feat: port RingTheory.FinitePresentation (#3316) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/RingTheory/FinitePresentation.lean + theorem AlgHom.FinitePresentation.comp + theorem AlgHom.FinitePresentation.comp_surjective + theorem AlgHom.FinitePresentation.id + theorem AlgHom.FinitePresentation.of_finiteType + theorem AlgHom.FinitePresentation.of_surjective + def AlgHom.FinitePresentation + theorem AlgHom.FiniteType.of_finitePresentation + theorem Algebra.FinitePresentation.equiv + theorem Algebra.FinitePresentation.iff + theorem Algebra.FinitePresentation.iff_quotient_mvPolynomial' + theorem Algebra.FinitePresentation.ker_fG_of_surjective + theorem Algebra.FinitePresentation.ker_fg_of_mvPolynomial + theorem Algebra.FinitePresentation.mvPolynomial_of_finitePresentation + theorem Algebra.FinitePresentation.of_finiteType + theorem Algebra.FinitePresentation.of_restrict_scalars_finitePresentation + theorem Algebra.FinitePresentation.of_surjective + theorem Algebra.FinitePresentation.polynomial + theorem Algebra.FinitePresentation.self + theorem Algebra.FinitePresentation.trans + def Algebra.FinitePresentation + theorem Algebra.FiniteType.of_finitePresentation + theorem RingHom.FinitePresentation.comp + theorem RingHom.FinitePresentation.comp_surjective + theorem RingHom.FinitePresentation.id + theorem RingHom.FinitePresentation.of_comp_finiteType + theorem RingHom.FinitePresentation.of_finiteType + theorem RingHom.FinitePresentation.of_surjective + def RingHom.FinitePresentation + theorem RingHom.FiniteType.of_finitePresentation 2023-05-19 12:42:13 73ac006 style(MeasureTheory/Measure/MeasureSpace): rename `FiniteSpanningSetsIn.Set` to `FiniteSpanningSetsIn.set` (#4100) this PR also aligns projections in `MeasureTheory/Measure/MeasureSpace`. ESTIMATED CHANGES Modified Mathlib/MeasureTheory/Measure/MeasureSpace.lean 2023-05-19 12:42:12 6fbdb19 chore: rename Top->TopCat (#4089) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/AlgebraicTopology/FundamentalGroupoid/Basic.lean Modified Mathlib/AlgebraicTopology/FundamentalGroupoid/FundamentalGroup.lean Modified Mathlib/AlgebraicTopology/SimplicialSet.lean Modified Mathlib/AlgebraicTopology/TopologicalSimplex.lean Modified Mathlib/CategoryTheory/CofilteredSystem.lean Modified Mathlib/Topology/Category/CompHaus/Basic.lean Renamed Mathlib/Topology/Category/Top/Adjunctions.lean to Mathlib/Topology/Category/TopCat/Adjunctions.lean Renamed Mathlib/Topology/Category/Top/Basic.lean to Mathlib/Topology/Category/TopCat/Basic.lean Renamed Mathlib/Topology/Category/Top/EpiMono.lean to Mathlib/Topology/Category/TopCat/EpiMono.lean Renamed Mathlib/Topology/Category/Top/Limits/Basic.lean to Mathlib/Topology/Category/TopCat/Limits/Basic.lean Renamed Mathlib/Topology/Category/Top/Limits/Cofiltered.lean to Mathlib/Topology/Category/TopCat/Limits/Cofiltered.lean Renamed Mathlib/Topology/Category/Top/Limits/Konig.lean to Mathlib/Topology/Category/TopCat/Limits/Konig.lean Renamed Mathlib/Topology/Category/Top/Limits/Products.lean to Mathlib/Topology/Category/TopCat/Limits/Products.lean Renamed Mathlib/Topology/Category/Top/Limits/Pullbacks.lean to Mathlib/Topology/Category/TopCat/Limits/Pullbacks.lean Renamed Mathlib/Topology/Category/Top/OpenNhds.lean to Mathlib/Topology/Category/TopCat/OpenNhds.lean Renamed Mathlib/Topology/Category/Top/Opens.lean to Mathlib/Topology/Category/TopCat/Opens.lean Modified Mathlib/Topology/Category/TopCommRingCat.lean Modified Mathlib/Topology/Sheaves/Presheaf.lean 2023-05-19 12:42:10 a4eaf1c feat: add Mathlib.Tactic.Common, and import (#4056) This makes a mathlib4 version of mathlib3's `tactic.basic`, now called `Mathlib.Tactic.Common`, which imports all tactics which do not have significant theory requirements, and then is imported all across the base of the hierarchy. This ensures that all common tactics are available nearly everywhere in the library, rather than having to be imported one-by-one as you need them. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/BigOperators/Basic.lean Modified Mathlib/Algebra/BigOperators/Finprod.lean Modified Mathlib/Algebra/ContinuedFractions/ConvergentsEquiv.lean Modified Mathlib/Algebra/DirectSum/Basic.lean Modified Mathlib/Algebra/Field/Defs.lean Modified Mathlib/Algebra/GCDMonoid/Basic.lean Modified Mathlib/Algebra/Group/Commute.lean Modified Mathlib/Algebra/Group/Defs.lean Modified Mathlib/Algebra/Group/Ext.lean Modified Mathlib/Algebra/Group/Units.lean Modified Mathlib/Algebra/Group/WithOne/Defs.lean Modified Mathlib/Algebra/GroupWithZero/Basic.lean Modified Mathlib/Algebra/GroupWithZero/Units/Basic.lean Modified Mathlib/Algebra/Homology/ComplexShape.lean Modified Mathlib/Algebra/Module/Basic.lean Modified Mathlib/Algebra/Order/Hom/Ring.lean Modified Mathlib/Algebra/Order/Kleene.lean Modified Mathlib/Algebra/Order/LatticeGroup.lean Modified Mathlib/Algebra/Order/Monoid/Lemmas.lean Modified Mathlib/Algebra/Order/Monoid/MinMax.lean Modified Mathlib/Algebra/Quandle.lean Modified Mathlib/Algebra/Quotient.lean Modified Mathlib/Algebra/Ring/BooleanRing.lean Modified Mathlib/Algebra/Ring/Defs.lean Modified Mathlib/Algebra/Ring/Divisibility.lean Modified Mathlib/Algebra/Star/Basic.lean Modified Mathlib/AlgebraicTopology/SimplexCategory.lean Modified Mathlib/Analysis/Convex/Function.lean Modified Mathlib/Analysis/NormedSpace/Ray.lean Modified Mathlib/CategoryTheory/Abelian/Homology.lean Modified Mathlib/CategoryTheory/Category/Basic.lean Modified Mathlib/CategoryTheory/DiscreteCategory.lean Modified Mathlib/CategoryTheory/EssentiallySmall.lean Modified Mathlib/CategoryTheory/Functor/FullyFaithful.lean Modified Mathlib/CategoryTheory/Limits/Shapes/ZeroObjects.lean Modified Mathlib/Combinatorics/Composition.lean Modified Mathlib/Combinatorics/Quiver/Basic.lean Modified Mathlib/Combinatorics/SetFamily/Compression/Down.lean Modified Mathlib/Combinatorics/SetFamily/Compression/UV.lean Modified Mathlib/Computability/DFA.lean Modified Mathlib/Computability/PartrecCode.lean Modified Mathlib/Computability/TMToPartrec.lean Modified Mathlib/Computability/TuringMachine.lean Modified Mathlib/Control/Basic.lean Modified Mathlib/Control/Bifunctor.lean Modified Mathlib/Control/EquivFunctor.lean Modified Mathlib/Control/LawfulFix.lean Modified Mathlib/Control/Monad/Basic.lean Modified Mathlib/Data/Countable/Defs.lean Modified Mathlib/Data/Fin/Basic.lean Modified Mathlib/Data/Fin/VecNotation.lean Modified Mathlib/Data/Finset/Card.lean Modified Mathlib/Data/Int/Basic.lean Modified Mathlib/Data/Int/Bitwise.lean Modified Mathlib/Data/Int/Units.lean Modified Mathlib/Data/List/Lex.lean Modified Mathlib/Data/Matrix/Notation.lean Modified Mathlib/Data/Nat/Basic.lean Modified Mathlib/Data/Nat/Bitwise.lean Modified Mathlib/Data/Nat/Cast/Defs.lean Modified Mathlib/Data/Nat/Count.lean Modified Mathlib/Data/Nat/Factors.lean Modified Mathlib/Data/Nat/Fib.lean Modified Mathlib/Data/Nat/Log.lean Modified Mathlib/Data/Nat/Prime.lean Modified Mathlib/Data/Nat/WithBot.lean Modified Mathlib/Data/Option/Basic.lean Modified Mathlib/Data/PNat/Defs.lean Modified Mathlib/Data/Pi/Algebra.lean Modified Mathlib/Data/Prod/Basic.lean Modified Mathlib/Data/Rat/Floor.lean Modified Mathlib/Data/Rat/Lemmas.lean Modified Mathlib/Data/Real/CauSeq.lean Modified Mathlib/Data/Seq/Computation.lean Modified Mathlib/Data/Set/Basic.lean Modified Mathlib/Data/Set/Enumerate.lean Modified Mathlib/Data/Set/Intervals/OrdConnectedComponent.lean Modified Mathlib/Data/Set/Intervals/UnorderedInterval.lean Modified Mathlib/Data/Set/Pointwise/Basic.lean Modified Mathlib/Data/Set/Pointwise/SMul.lean Modified Mathlib/Data/Subtype.lean Modified Mathlib/Data/Sum/Basic.lean Modified Mathlib/Data/Sym/Basic.lean Modified Mathlib/Data/TypeVec.lean Modified Mathlib/Dynamics/PeriodicPts.lean Modified Mathlib/GroupTheory/OrderOfElement.lean Modified Mathlib/Logic/Equiv/Basic.lean Modified Mathlib/Logic/Equiv/Defs.lean Modified Mathlib/Logic/Pairwise.lean Modified Mathlib/Logic/Relation.lean Modified Mathlib/Logic/Unique.lean Modified Mathlib/Order/Basic.lean Modified Mathlib/Order/BooleanAlgebra.lean Modified Mathlib/Order/BoundedOrder.lean Modified Mathlib/Order/Circular.lean Modified Mathlib/Order/Extension/Linear.lean Modified Mathlib/Order/FixedPoints.lean Modified Mathlib/Order/Heyting/Boundary.lean Modified Mathlib/Order/Hom/Basic.lean Modified Mathlib/Order/Lattice.lean Modified Mathlib/Order/Max.lean Modified Mathlib/Order/MinMax.lean Modified Mathlib/Order/Monotone/Basic.lean Modified Mathlib/Order/RelClasses.lean Modified Mathlib/Order/WellFounded.lean Modified Mathlib/Order/WithBot.lean Modified Mathlib/RingTheory/Valuation/Basic.lean Modified Mathlib/SetTheory/Ordinal/Arithmetic.lean Modified Mathlib/SetTheory/Ordinal/NaturalOps.lean Modified Mathlib/Tactic.lean Modified Mathlib/Tactic/Backtracking.lean Added Mathlib/Tactic/Common.lean Modified Mathlib/Tactic/FieldSimp.lean Modified Mathlib/Tactic/Set.lean Modified Mathlib/Testing/SlimCheck/Testable.lean Modified Mathlib/Topology/Algebra/Order/LeftRightLim.lean Modified Mathlib/Topology/Algebra/WithZeroTopology.lean Modified Mathlib/Topology/ContinuousFunction/Algebra.lean Modified Mathlib/Topology/MetricSpace/EMetricParacompact.lean Modified Mathlib/Topology/Separation.lean Modified test/Simps.lean 2023-05-19 12:42:08 b963857 feat: port SetTheory.Game.PGame (#1512) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/SetTheory/Game/PGame.lean + theorem LE.le.not_gf + theorem PGame.Equiv.ge + theorem PGame.Equiv.isEmpty + theorem PGame.Equiv.le + theorem PGame.Equiv.not_fuzzy' + theorem PGame.Equiv.not_fuzzy + def PGame.Equiv + theorem PGame.Fuzzy.not_equiv' + theorem PGame.Fuzzy.not_equiv + theorem PGame.Fuzzy.swap + theorem PGame.Fuzzy.swap_iff + def PGame.Fuzzy + theorem PGame.IsOption.mk_left + theorem PGame.IsOption.mk_right + inductive PGame.IsOption + def PGame.LeftMoves + theorem PGame.Lf.not_equiv' + theorem PGame.Lf.not_equiv + theorem PGame.Lf.not_ge + theorem PGame.Lf.not_gt + def PGame.Lf + def PGame.Relabelling.addCongr + theorem PGame.Relabelling.equiv + theorem PGame.Relabelling.ge + def PGame.Relabelling.isEmpty + theorem PGame.Relabelling.le + def PGame.Relabelling.leftMovesEquiv + def PGame.Relabelling.mk' + theorem PGame.Relabelling.mk'_leftMovesEquiv + theorem PGame.Relabelling.mk'_rightMovesEquiv + theorem PGame.Relabelling.mk_leftMovesEquiv + theorem PGame.Relabelling.mk_rightMovesEquiv + def PGame.Relabelling.moveLeft + def PGame.Relabelling.moveLeftSymm + def PGame.Relabelling.moveRight + def PGame.Relabelling.moveRightSymm + def PGame.Relabelling.negCongr + def PGame.Relabelling.refl + def PGame.Relabelling.rightMovesEquiv + def PGame.Relabelling.subCongr + def PGame.Relabelling.symm + def PGame.Relabelling.trans + inductive PGame.Relabelling + def PGame.RightMoves + theorem PGame.Subsequent.mk_left + theorem PGame.Subsequent.mk_right' + theorem PGame.Subsequent.mk_right + theorem PGame.Subsequent.moveLeft + theorem PGame.Subsequent.moveLeft_mk_left + theorem PGame.Subsequent.moveLeft_mk_right + theorem PGame.Subsequent.moveRight + theorem PGame.Subsequent.moveRight_mk_left + theorem PGame.Subsequent.moveRight_mk_right + theorem PGame.Subsequent.trans + def PGame.Subsequent + def PGame.addAssocRelabelling + def PGame.addCommRelabelling + def PGame.addZeroRelabelling + theorem PGame.add_assoc_equiv + theorem PGame.add_comm_equiv + theorem PGame.add_comm_le + theorem PGame.add_congr + theorem PGame.add_congr_left + theorem PGame.add_congr_right + theorem PGame.add_left_neg_equiv + theorem PGame.add_left_neg_le_zero + theorem PGame.add_lf_add_left + theorem PGame.add_lf_add_of_le_of_lf + theorem PGame.add_lf_add_of_lf_of_le + theorem PGame.add_lf_add_right + theorem PGame.add_moveLeft_inl + theorem PGame.add_moveLeft_inr + theorem PGame.add_moveRight_inl + theorem PGame.add_moveRight_inr + theorem PGame.add_right_neg_equiv + theorem PGame.add_right_neg_le_zero + theorem PGame.add_zero_equiv + theorem PGame.equiv_congr_left + theorem PGame.equiv_congr_right + theorem PGame.equiv_of_eq + theorem PGame.equiv_of_mk_equiv + theorem PGame.equiv_refl + theorem PGame.equiv_rfl + theorem PGame.fuzzy_congr + theorem PGame.fuzzy_congr_imp + theorem PGame.fuzzy_congr_left + theorem PGame.fuzzy_congr_right + theorem PGame.fuzzy_irrefl + theorem PGame.fuzzy_of_equiv_of_fuzzy + theorem PGame.fuzzy_of_fuzzy_of_equiv + theorem PGame.isOption_neg + theorem PGame.isOption_neg_neg + theorem PGame.le_congr + theorem PGame.le_congr_imp + theorem PGame.le_congr_left + theorem PGame.le_congr_right + theorem PGame.le_def + theorem PGame.le_iff_forall_lf + theorem PGame.le_iff_sub_nonneg + theorem PGame.le_neg_iff + theorem PGame.le_of_equiv_of_le + theorem PGame.le_of_forall_lf + theorem PGame.le_of_forall_lt + theorem PGame.le_of_le_of_equiv + theorem PGame.le_or_gf + theorem PGame.le_zero + theorem PGame.le_zero_lf + theorem PGame.le_zero_of_isEmpty_leftMoves + theorem PGame.leftMoves_add + theorem PGame.leftMoves_add_cases + theorem PGame.leftMoves_mk + theorem PGame.leftMoves_neg + theorem PGame.leftMoves_ofLists + theorem PGame.leftResponse_spec + theorem PGame.lf_congr + theorem PGame.lf_congr_imp + theorem PGame.lf_congr_left + theorem PGame.lf_congr_right + theorem PGame.lf_def + theorem PGame.lf_iff_exists_le + theorem PGame.lf_iff_lt_or_fuzzy + theorem PGame.lf_iff_sub_zero_lf + theorem PGame.lf_irrefl + theorem PGame.lf_mk + theorem PGame.lf_mk_of_le + theorem PGame.lf_moveRight + theorem PGame.lf_moveRight_of_le + theorem PGame.lf_neg_iff + theorem PGame.lf_of_equiv_of_lf + theorem PGame.lf_of_fuzzy + theorem PGame.lf_of_le_mk + theorem PGame.lf_of_le_moveLeft + theorem PGame.lf_of_le_of_lf + theorem PGame.lf_of_lf_of_equiv + theorem PGame.lf_of_lf_of_le + theorem PGame.lf_of_lf_of_lt + theorem PGame.lf_of_lt + theorem PGame.lf_of_lt_of_lf + theorem PGame.lf_of_mk_le + theorem PGame.lf_of_moveRight_le + theorem PGame.lf_or_equiv_or_gf + theorem PGame.lf_zero + theorem PGame.lf_zero_le + theorem PGame.lt_congr + theorem PGame.lt_congr_imp + theorem PGame.lt_congr_left + theorem PGame.lt_congr_right + theorem PGame.lt_iff_le_and_lf + theorem PGame.lt_iff_sub_pos + theorem PGame.lt_neg_iff + theorem PGame.lt_of_equiv_of_lt + theorem PGame.lt_of_le_of_lf + theorem PGame.lt_of_lt_of_equiv + theorem PGame.lt_or_equiv_of_le + theorem PGame.lt_or_equiv_or_gf + theorem PGame.lt_or_equiv_or_gt_or_fuzzy + theorem PGame.lt_or_fuzzy_of_lf + theorem PGame.mk_add_moveLeft_inl + theorem PGame.mk_add_moveLeft_inr + theorem PGame.mk_add_moveRight_inl + theorem PGame.mk_add_moveRight_inr + theorem PGame.mk_le_mk + theorem PGame.mk_lf + theorem PGame.mk_lf_mk + theorem PGame.mk_lf_of_le + def PGame.moveLeft + theorem PGame.moveLeft_lf + theorem PGame.moveLeft_lf_of_le + theorem PGame.moveLeft_mk + theorem PGame.moveLeft_neg' + theorem PGame.moveLeft_neg + theorem PGame.moveLeft_neg_symm' + theorem PGame.moveLeft_neg_symm + def PGame.moveRecOn + def PGame.moveRight + theorem PGame.moveRight_mk + theorem PGame.moveRight_neg' + theorem PGame.moveRight_neg + theorem PGame.moveRight_neg_symm' + theorem PGame.moveRight_neg_symm + def PGame.neg + def PGame.negAddRelabelling + theorem PGame.neg_add_le + theorem PGame.neg_def + theorem PGame.neg_equiv_iff + theorem PGame.neg_equiv_neg_iff + theorem PGame.neg_equiv_zero_iff + theorem PGame.neg_fuzzy_iff + theorem PGame.neg_fuzzy_neg_iff + theorem PGame.neg_fuzzy_zero_iff + theorem PGame.neg_le_iff + theorem PGame.neg_le_neg_iff + theorem PGame.neg_le_zero_iff + theorem PGame.neg_lf_iff + theorem PGame.neg_lf_neg_iff + theorem PGame.neg_lf_zero_iff + theorem PGame.neg_lt_iff + theorem PGame.neg_lt_neg_iff + theorem PGame.neg_lt_zero_iff + theorem PGame.neg_ofLists + theorem PGame.neg_star + theorem PGame.not_fuzzy_of_ge + theorem PGame.not_fuzzy_of_le + theorem PGame.not_lf + def PGame.ofLists + theorem PGame.ofLists_moveLeft' + theorem PGame.ofLists_moveLeft + theorem PGame.ofLists_moveRight' + theorem PGame.ofLists_moveRight + theorem PGame.one_leftMoves + theorem PGame.one_moveLeft + theorem PGame.one_rightMoves + def PGame.relabel + def PGame.relabelRelabelling + theorem PGame.relabel_moveLeft' + theorem PGame.relabel_moveLeft + theorem PGame.relabel_moveRight' + theorem PGame.relabel_moveRight + theorem PGame.rightMoves_add + theorem PGame.rightMoves_add_cases + theorem PGame.rightMoves_mk + theorem PGame.rightMoves_neg + theorem PGame.rightMoves_ofLists + theorem PGame.rightResponse_spec + def PGame.star + theorem PGame.star_fuzzy_zero + theorem PGame.star_leftMoves + theorem PGame.star_moveLeft + theorem PGame.star_moveRight + theorem PGame.star_rightMoves + theorem PGame.sub_congr + theorem PGame.sub_congr_left + theorem PGame.sub_congr_right + theorem PGame.sub_self_equiv + theorem PGame.sub_zero + def PGame.toLeftMovesAdd + def PGame.toLeftMovesNeg + def PGame.toOfListsLeftMoves + def PGame.toOfListsRightMoves + def PGame.toRightMovesAdd + def PGame.toRightMovesNeg + theorem PGame.wf_isOption + theorem PGame.wf_subsequent + def PGame.zeroAddRelabelling + theorem PGame.zero_add_equiv + theorem PGame.zero_equiv_neg_iff + theorem PGame.zero_fuzzy_neg_iff + theorem PGame.zero_le + theorem PGame.zero_le_add_left_neg + theorem PGame.zero_le_add_right_neg + theorem PGame.zero_le_lf + theorem PGame.zero_le_neg_iff + theorem PGame.zero_le_of_isEmpty_rightMoves + theorem PGame.zero_leftMoves + theorem PGame.zero_lf + theorem PGame.zero_lf_le + theorem PGame.zero_lf_neg_iff + theorem PGame.zero_lf_one + theorem PGame.zero_lt_neg_iff + theorem PGame.zero_rightMoves + inductive PGame 2023-05-19 12:01:12 83998c1 chore Set/UnionLift: generalize to Sort (#4071) ESTIMATED CHANGES Modified Mathlib/Data/Set/UnionLift.lean 2023-05-19 11:34:33 bd2d76d chore: partially forward-port leanprover-community/mathlib#19037 (#4102) ESTIMATED CHANGES Modified Mathlib/Algebra/Star/Module.lean +/- def starLinearEquiv 2023-05-19 11:12:48 8ec526b feat: port RingTheory.Localization.AtPrime (#4086) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/RingTheory/Localization/AtPrime.lean + def Ideal.primeCompl + theorem Ideal.primeCompl_le_nonZeroDivisors + theorem IsLocalization.AtPrime.Nontrivial + theorem IsLocalization.AtPrime.comap_maximalIdeal + theorem IsLocalization.AtPrime.isUnit_mk'_iff + theorem IsLocalization.AtPrime.isUnit_to_map_iff + theorem IsLocalization.AtPrime.localRing + theorem IsLocalization.AtPrime.mk'_mem_maximal_iff + theorem IsLocalization.AtPrime.to_map_mem_maximal_iff + theorem Localization.AtPrime.comap_maximalIdeal + theorem Localization.AtPrime.map_eq_maximalIdeal + theorem Localization.le_comap_primeCompl_iff + theorem Localization.localRingHom_comp + theorem Localization.localRingHom_id + theorem Localization.localRingHom_mk' + theorem Localization.localRingHom_to_map + theorem Localization.localRingHom_unique 2023-05-19 07:19:09 149f940 feat: port CategoryTheory.Monoidal.Free.Coherence (#3769) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/CategoryTheory/DiscreteCategory.lean Added Mathlib/CategoryTheory/Monoidal/Free/Coherence.lean + inductive CategoryTheory.FreeMonoidalCategory.NormalMonoidalObject + theorem CategoryTheory.FreeMonoidalCategory.discrete_functor_map_eq_id + theorem CategoryTheory.FreeMonoidalCategory.discrete_functor_obj_eq_as + def CategoryTheory.FreeMonoidalCategory.fullNormalize + def CategoryTheory.FreeMonoidalCategory.fullNormalizeIso + def CategoryTheory.FreeMonoidalCategory.inclusion + def CategoryTheory.FreeMonoidalCategory.inclusionObj + def CategoryTheory.FreeMonoidalCategory.inverseAux + def CategoryTheory.FreeMonoidalCategory.normalize' + def CategoryTheory.FreeMonoidalCategory.normalize + def CategoryTheory.FreeMonoidalCategory.normalizeIso + def CategoryTheory.FreeMonoidalCategory.normalizeIsoApp + theorem CategoryTheory.FreeMonoidalCategory.normalizeIsoApp_tensor + theorem CategoryTheory.FreeMonoidalCategory.normalizeIsoApp_unitor + def CategoryTheory.FreeMonoidalCategory.normalizeIsoAux + def CategoryTheory.FreeMonoidalCategory.normalizeMapAux + def CategoryTheory.FreeMonoidalCategory.normalizeObj + theorem CategoryTheory.FreeMonoidalCategory.normalizeObj_tensor + theorem CategoryTheory.FreeMonoidalCategory.normalizeObj_unitor + def CategoryTheory.FreeMonoidalCategory.tensorFunc + theorem CategoryTheory.FreeMonoidalCategory.tensorFunc_map_app + theorem CategoryTheory.FreeMonoidalCategory.tensorFunc_obj_map 2023-05-19 05:51:25 ee4307d feat: port Topology.Sheaves.Limits (#4096) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/CategoryTheory/Sites/Limits.lean Added Mathlib/Topology/Sheaves/Limits.lean + theorem TopCat.isSheaf_of_isLimit + theorem TopCat.limit_isSheaf 2023-05-19 05:51:24 01f4692 feat: port Topology.Sheaves.PresheafOfFunctions (#4092) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Topology/Sheaves/PresheafOfFunctions.lean + def TopCat.commRingYoneda + def TopCat.continuousFunctions.map + def TopCat.continuousFunctions.pullback + def TopCat.continuousFunctions + def TopCat.presheafToTop + def TopCat.presheafToTopCommRing + theorem TopCat.presheafToTop_obj + def TopCat.presheafToType + theorem TopCat.presheafToType_map + theorem TopCat.presheafToType_obj + def TopCat.presheafToTypes + theorem TopCat.presheafToTypes_map + theorem TopCat.presheafToTypes_obj 2023-05-19 05:51:23 20979e9 feat: port Analysis.NormedSpace.Extend (#4069) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/NormedSpace/Extend.lean + theorem ContinuousLinearMap.extendTo𝕜'_apply + theorem ContinuousLinearMap.extendTo𝕜_apply + theorem ContinuousLinearMap.norm_extendTo𝕜' + theorem ContinuousLinearMap.norm_extendTo𝕜'_bound + theorem ContinuousLinearMap.norm_extendTo𝕜 + theorem LinearMap.extendTo𝕜'_apply + theorem LinearMap.extendTo𝕜'_apply_re + theorem LinearMap.extendTo𝕜_apply + theorem LinearMap.norm_extendTo𝕜'_apply_sq 2023-05-19 05:32:18 2d3cfc5 feat: port RingTheory.MatrixAlgebra (#4063) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/RingTheory/MatrixAlgebra.lean + def MatrixEquivTensor.equiv + def MatrixEquivTensor.invFun + theorem MatrixEquivTensor.invFun_add + theorem MatrixEquivTensor.invFun_algebraMap + theorem MatrixEquivTensor.invFun_smul + theorem MatrixEquivTensor.invFun_zero + theorem MatrixEquivTensor.left_inv + theorem MatrixEquivTensor.right_inv + def MatrixEquivTensor.toFunAlgHom + theorem MatrixEquivTensor.toFunAlgHom_apply + def MatrixEquivTensor.toFunBilinear + theorem MatrixEquivTensor.toFunBilinear_apply + def MatrixEquivTensor.toFunLinear + def matrixEquivTensor + theorem matrixEquivTensor_apply + theorem matrixEquivTensor_apply_std_basis + theorem matrixEquivTensor_apply_symm 2023-05-19 00:59:55 db15210 feat: port Data.Polynomial.Expand (#4083) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Data/Polynomial/Expand.lean + theorem Polynomial.Monic.expand + theorem Polynomial.coe_expand + theorem Polynomial.coeff_contract + theorem Polynomial.coeff_expand + theorem Polynomial.coeff_expand_mul' + theorem Polynomial.coeff_expand_mul + theorem Polynomial.contract_expand + theorem Polynomial.derivative_expand + theorem Polynomial.expand_C + theorem Polynomial.expand_X + theorem Polynomial.expand_aeval + theorem Polynomial.expand_char + theorem Polynomial.expand_contract + theorem Polynomial.expand_eq_C + theorem Polynomial.expand_eq_sum + theorem Polynomial.expand_eq_zero + theorem Polynomial.expand_eval + theorem Polynomial.expand_expand + theorem Polynomial.expand_inj + theorem Polynomial.expand_injective + theorem Polynomial.expand_monomial + theorem Polynomial.expand_mul + theorem Polynomial.expand_ne_zero + theorem Polynomial.expand_one + theorem Polynomial.expand_pow + theorem Polynomial.expand_zero + theorem Polynomial.isLocalRingHom_expand + theorem Polynomial.map_expand + theorem Polynomial.map_expand_pow_char + theorem Polynomial.natDegree_expand + theorem Polynomial.of_irreducible_expand + theorem Polynomial.of_irreducible_expand_pow 2023-05-18 20:51:11 87c4a75 feat: port Algebra.Category.Mon.Limits (#3073) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Category/MonCat/Basic.lean +/- theorem MonCat.forget_map Added Mathlib/Algebra/Category/MonCat/Limits.lean + def MonCat.HasLimits.limitCone + def MonCat.HasLimits.limitConeIsLimit + def MonCat.limitπMonoidHom + def MonCat.sectionsSubmonoid Modified Mathlib/CategoryTheory/ConcreteCategory/Basic.lean Modified Mathlib/Data/TypeMax.lean 2023-05-18 20:25:41 18c085a feat: port Analysis.NormedSpace.Multilinear (#4057) Porting notes: * Some declarations are slow and need extra heartbeats * Needed to `simp` often before applying `mkContinuous_norm_le`, otherwise Lean wouldn't find the argument `H` automatically. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/NormedSpace/Multilinear.lean + def ContinuousLinearEquiv.compContinuousMultilinearMapL + theorem ContinuousLinearEquiv.compContinuousMultilinearMapL_apply + theorem ContinuousLinearEquiv.compContinuousMultilinearMapL_symm + def ContinuousLinearMap.compContinuousMultilinearMapL + theorem ContinuousLinearMap.curry_uncurryLeft + def ContinuousLinearMap.flipMultilinear + theorem ContinuousLinearMap.norm_compContinuousMultilinearMap_le + theorem ContinuousLinearMap.norm_map_tail_le + def ContinuousLinearMap.uncurryLeft + theorem ContinuousLinearMap.uncurryLeft_apply + theorem ContinuousLinearMap.uncurryLeft_norm + theorem ContinuousMultilinearMap.apply_zero_curry0 + theorem ContinuousMultilinearMap.bound + theorem ContinuousMultilinearMap.bounds_bddBelow + theorem ContinuousMultilinearMap.bounds_nonempty + def ContinuousMultilinearMap.compContinuousLinearMapEquivL + theorem ContinuousMultilinearMap.compContinuousLinearMapEquivL_apply + theorem ContinuousMultilinearMap.compContinuousLinearMapEquivL_symm + def ContinuousMultilinearMap.compContinuousLinearMapL + theorem ContinuousMultilinearMap.compContinuousLinearMapL_apply + theorem ContinuousMultilinearMap.continuous_eval + theorem ContinuousMultilinearMap.continuous_eval_left + theorem ContinuousMultilinearMap.continuous_restrictScalars + def ContinuousMultilinearMap.curry0 + theorem ContinuousMultilinearMap.curry0_apply + theorem ContinuousMultilinearMap.curry0_norm + theorem ContinuousMultilinearMap.curry0_uncurry0 + def ContinuousMultilinearMap.curryFinFinset + theorem ContinuousMultilinearMap.curryFinFinset_apply + theorem ContinuousMultilinearMap.curryFinFinset_apply_const + theorem ContinuousMultilinearMap.curryFinFinset_symm_apply + theorem ContinuousMultilinearMap.curryFinFinset_symm_apply_const + theorem ContinuousMultilinearMap.curryFinFinset_symm_apply_piecewise_const + def ContinuousMultilinearMap.curryLeft + theorem ContinuousMultilinearMap.curryLeft_apply + theorem ContinuousMultilinearMap.curryLeft_norm + def ContinuousMultilinearMap.curryRight + theorem ContinuousMultilinearMap.curryRight_apply + theorem ContinuousMultilinearMap.curryRight_norm + def ContinuousMultilinearMap.currySum + def ContinuousMultilinearMap.currySumEquiv + theorem ContinuousMultilinearMap.currySum_apply + theorem ContinuousMultilinearMap.curry_uncurryRight + def ContinuousMultilinearMap.domDomCongr + theorem ContinuousMultilinearMap.fin0_apply_norm + theorem ContinuousMultilinearMap.hasSum_eval + theorem ContinuousMultilinearMap.le_of_op_nnnorm_le + theorem ContinuousMultilinearMap.le_of_op_norm_le + theorem ContinuousMultilinearMap.le_op_nnnorm + theorem ContinuousMultilinearMap.le_op_norm + theorem ContinuousMultilinearMap.le_op_norm_mul_pow_card_of_le + theorem ContinuousMultilinearMap.le_op_norm_mul_pow_of_le + theorem ContinuousMultilinearMap.le_op_norm_mul_prod_of_le + theorem ContinuousMultilinearMap.mkPiField_apply + theorem ContinuousMultilinearMap.mkPiField_apply_one_eq_self + theorem ContinuousMultilinearMap.mkPiField_eq_iff + theorem ContinuousMultilinearMap.mkPiField_eq_zero_iff + theorem ContinuousMultilinearMap.mkPiField_zero + theorem ContinuousMultilinearMap.nnnorm_constOfIsEmpty + theorem ContinuousMultilinearMap.nnnorm_ofSubsingleton + theorem ContinuousMultilinearMap.norm_compContinuousLinearMapL_le + theorem ContinuousMultilinearMap.norm_compContinuousLinearMap_le + theorem ContinuousMultilinearMap.norm_compContinuous_linearIsometryEquiv + theorem ContinuousMultilinearMap.norm_compContinuous_linearIsometry_le + theorem ContinuousMultilinearMap.norm_constOfIsEmpty + theorem ContinuousMultilinearMap.norm_def + theorem ContinuousMultilinearMap.norm_image_sub_le' + theorem ContinuousMultilinearMap.norm_image_sub_le + theorem ContinuousMultilinearMap.norm_map_cons_le + theorem ContinuousMultilinearMap.norm_map_init_le + theorem ContinuousMultilinearMap.norm_map_snoc_le + theorem ContinuousMultilinearMap.norm_mkPiAlgebra + theorem ContinuousMultilinearMap.norm_mkPiAlgebraFin + theorem ContinuousMultilinearMap.norm_mkPiAlgebraFin_le_of_pos + theorem ContinuousMultilinearMap.norm_mkPiAlgebraFin_succ_le + theorem ContinuousMultilinearMap.norm_mkPiAlgebraFin_zero + theorem ContinuousMultilinearMap.norm_mkPiAlgebra_le + theorem ContinuousMultilinearMap.norm_mkPiAlgebra_of_empty + theorem ContinuousMultilinearMap.norm_mkPiField + theorem ContinuousMultilinearMap.norm_ofSubsingleton + theorem ContinuousMultilinearMap.norm_pi + theorem ContinuousMultilinearMap.norm_restr + theorem ContinuousMultilinearMap.norm_restrictScalars + def ContinuousMultilinearMap.opNorm + theorem ContinuousMultilinearMap.op_norm_add_le + theorem ContinuousMultilinearMap.op_norm_le_bound + theorem ContinuousMultilinearMap.op_norm_neg + theorem ContinuousMultilinearMap.op_norm_nonneg + theorem ContinuousMultilinearMap.op_norm_prod + theorem ContinuousMultilinearMap.op_norm_smul_le + theorem ContinuousMultilinearMap.op_norm_zero + theorem ContinuousMultilinearMap.op_norm_zero_iff + def ContinuousMultilinearMap.piₗᵢ + def ContinuousMultilinearMap.prodL + theorem ContinuousMultilinearMap.ratio_le_op_norm + def ContinuousMultilinearMap.restr + def ContinuousMultilinearMap.restrictScalarsLinear + theorem ContinuousMultilinearMap.tsum_eval + def ContinuousMultilinearMap.uncurry0 + theorem ContinuousMultilinearMap.uncurry0_apply + theorem ContinuousMultilinearMap.uncurry0_curry0 + theorem ContinuousMultilinearMap.uncurry0_norm + def ContinuousMultilinearMap.uncurryRight + theorem ContinuousMultilinearMap.uncurryRight_apply + theorem ContinuousMultilinearMap.uncurryRight_norm + def ContinuousMultilinearMap.uncurrySum + theorem ContinuousMultilinearMap.uncurrySum_apply + theorem ContinuousMultilinearMap.uncurry_curryLeft + theorem ContinuousMultilinearMap.uncurry_curryRight + theorem ContinuousMultilinearMap.unit_le_op_norm + theorem LinearIsometry.norm_compContinuousMultilinearMap + theorem MultilinearMap.bound_of_shell + theorem MultilinearMap.coe_mkContinuous + theorem MultilinearMap.continuous_of_bound + theorem MultilinearMap.exists_bound_of_continuous + def MultilinearMap.mkContinuous + def MultilinearMap.mkContinuousLinear + theorem MultilinearMap.mkContinuousLinear_norm_le' + theorem MultilinearMap.mkContinuousLinear_norm_le + def MultilinearMap.mkContinuousMultilinear + theorem MultilinearMap.mkContinuousMultilinear_apply + theorem MultilinearMap.mkContinuousMultilinear_norm_le' + theorem MultilinearMap.mkContinuousMultilinear_norm_le + theorem MultilinearMap.mkContinuous_norm_le' + theorem MultilinearMap.mkContinuous_norm_le + theorem MultilinearMap.norm_image_sub_le_of_bound' + theorem MultilinearMap.norm_image_sub_le_of_bound + theorem MultilinearMap.restr_norm_le + def continuousMultilinearCurryFin0 + theorem continuousMultilinearCurryFin0_apply + theorem continuousMultilinearCurryFin0_symm_apply + def continuousMultilinearCurryFin1 + theorem continuousMultilinearCurryFin1_apply + theorem continuousMultilinearCurryFin1_symm_apply + def continuousMultilinearCurryLeftEquiv + theorem continuousMultilinearCurryLeftEquiv_apply + theorem continuousMultilinearCurryLeftEquiv_symm_apply + def continuousMultilinearCurryRightEquiv' + def continuousMultilinearCurryRightEquiv + theorem continuousMultilinearCurryRightEquiv_apply' + theorem continuousMultilinearCurryRightEquiv_apply + theorem continuousMultilinearCurryRightEquiv_symm_apply' + theorem continuousMultilinearCurryRightEquiv_symm_apply 2023-05-18 18:22:27 d8005bc feat: port Topology.Sheaves.Sheaf (#4088) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Topology/Sheaves/Sheaf.lean + def TopCat.Presheaf.IsSheaf + theorem TopCat.Presheaf.isSheaf_iso_iff + theorem TopCat.Presheaf.isSheaf_of_iso + theorem TopCat.Presheaf.isSheaf_unit + theorem TopCat.Sheaf.comp_app + def TopCat.Sheaf.forget + theorem TopCat.Sheaf.id_app + def TopCat.Sheaf 2023-05-18 18:06:24 362fc59 feat: port NumberTheory.LegendreSymbol.MulCharacter (#2994) [Zulip thread](https://leanprover.zulipchat.com/#narrow/stream/144837-PR-reviews/topic/!4.232994.20NumberTheory.2ELegendreSymbol.2EMulCharacter) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Data/MvPolynomial/Supported.lean Added Mathlib/NumberTheory/LegendreSymbol/MulCharacter.lean + theorem MulChar.IsNontrivial.comp + theorem MulChar.IsNontrivial.sum_eq_zero + def MulChar.IsNontrivial + theorem MulChar.IsQuadratic.comp + theorem MulChar.IsQuadratic.eq_of_eq_coe + theorem MulChar.IsQuadratic.inv + theorem MulChar.IsQuadratic.pow_char + theorem MulChar.IsQuadratic.pow_even + theorem MulChar.IsQuadratic.pow_odd + theorem MulChar.IsQuadratic.sq_eq_one + def MulChar.IsQuadratic + theorem MulChar.coeToFun_mul + theorem MulChar.coe_coe + theorem MulChar.coe_equivToUnitHom + theorem MulChar.coe_mk + theorem MulChar.coe_toUnitHom + theorem MulChar.equiv_unit_hom_symm_coe + theorem MulChar.ext' + theorem MulChar.ext + theorem MulChar.ext_iff + theorem MulChar.inv_apply' + theorem MulChar.inv_apply + theorem MulChar.inv_apply_eq_inv' + theorem MulChar.inv_apply_eq_inv + theorem MulChar.inv_mul + theorem MulChar.isNontrivial_iff + theorem MulChar.map_nonunit + theorem MulChar.map_ringChar + def MulChar.mul + theorem MulChar.mul_apply + theorem MulChar.ofUnitHom_coe + theorem MulChar.ofUnitHom_eq + theorem MulChar.one_apply_coe + theorem MulChar.pow_apply' + theorem MulChar.pow_apply_coe + def MulChar.ringHomComp + theorem MulChar.sum_one_eq_card_units + theorem MulChar.toFun_eq_coe + def MulChar.toUnitHom + theorem MulChar.toUnitHom_eq + structure MulChar 2023-05-18 17:21:18 e12177d chore: forward port leanprover-community/mathlib#19025, 18982 (#4076) * leanprover-community/mathlib#19025 (already changed while porting) * leanprover-community/mathlib#18982 ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/StdBasis.lean Modified Mathlib/Topology/MetricSpace/Isometry.lean + def IsometryEquiv.funUnique + def IsometryEquiv.piFinTwo 2023-05-18 16:02:27 c0be162 feat: port Topology.Sheaves.Presheaf (#3828) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Topology/Sheaves/Init.lean Added Mathlib/Topology/Sheaves/Presheaf.lean + def TopCat.Presheaf.Pullback.id + theorem TopCat.Presheaf.Pullback.id_inv_app + def TopCat.Presheaf.Pushforward.comp + theorem TopCat.Presheaf.Pushforward.comp_eq + theorem TopCat.Presheaf.Pushforward.comp_hom_app + theorem TopCat.Presheaf.Pushforward.comp_inv_app + def TopCat.Presheaf.Pushforward.id + theorem TopCat.Presheaf.Pushforward.id_eq + theorem TopCat.Presheaf.Pushforward.id_hom_app' + theorem TopCat.Presheaf.Pushforward.id_hom_app + theorem TopCat.Presheaf.Pushforward.id_inv_app' + theorem TopCat.Presheaf.id_pushforward + theorem TopCat.Presheaf.map_restrict + def TopCat.Presheaf.presheafEquivOfIso + def TopCat.Presheaf.pullback + def TopCat.Presheaf.pullbackHomIsoPushforwardInv + def TopCat.Presheaf.pullbackInvIsoPushforwardHom + def TopCat.Presheaf.pullbackMap + def TopCat.Presheaf.pullbackObj + def TopCat.Presheaf.pullbackObjObjOfImageOpen + theorem TopCat.Presheaf.pullbackObj_eq_pullbackObj + def TopCat.Presheaf.pushforward + def TopCat.Presheaf.pushforwardEq + theorem TopCat.Presheaf.pushforwardEq_eq + theorem TopCat.Presheaf.pushforwardEq_hom_app + theorem TopCat.Presheaf.pushforwardEq_rfl + def TopCat.Presheaf.pushforwardMap + def TopCat.Presheaf.pushforwardObj + theorem TopCat.Presheaf.pushforwardObj_map + theorem TopCat.Presheaf.pushforwardObj_obj + def TopCat.Presheaf.pushforwardPullbackAdjunction + def TopCat.Presheaf.pushforwardToOfIso + theorem TopCat.Presheaf.pushforwardToOfIso_app + theorem TopCat.Presheaf.pushforward_eq' + theorem TopCat.Presheaf.pushforward_eq'_hom_app + theorem TopCat.Presheaf.pushforward_map_app' + def TopCat.Presheaf.restrict + theorem TopCat.Presheaf.restrict_restrict + def TopCat.Presheaf.toPushforwardOfIso + theorem TopCat.Presheaf.toPushforwardOfIso_app + def TopCat.Presheaf 2023-05-18 15:44:49 ee5111f feat: port Algebra.CharP.LocalRing (#4082) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/CharP/LocalRing.lean + theorem charP_zero_or_prime_power 2023-05-18 15:44:48 b9104ba feat port: Algebra.DirectSum.Internal (#4078) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/DirectSum/Internal.lean + def DirectSum.coeAlgHom + theorem DirectSum.coeAlgHom_of + def DirectSum.coeRingHom + theorem DirectSum.coeRingHom_of + theorem DirectSum.coe_mul_apply + theorem DirectSum.coe_mul_apply_eq_dfinsupp_sum + theorem DirectSum.coe_mul_of_apply + theorem DirectSum.coe_mul_of_apply_add + theorem DirectSum.coe_mul_of_apply_aux + theorem DirectSum.coe_mul_of_apply_of_le + theorem DirectSum.coe_mul_of_apply_of_not_le + theorem DirectSum.coe_of_mul_apply + theorem DirectSum.coe_of_mul_apply_add + theorem DirectSum.coe_of_mul_apply_aux + theorem DirectSum.coe_of_mul_apply_of_le + theorem DirectSum.coe_of_mul_apply_of_not_le + theorem SetLike.Homogeneous.smul + theorem SetLike.algebraMap_mem_graded + theorem SetLike.homogeneous_zero_submodule + theorem SetLike.int_cast_mem_graded + theorem SetLike.nat_cast_mem_graded + theorem Submodule.iSup_eq_toSubmodule_range + theorem Submodule.setLike.coe_galgebra_toFun 2023-05-18 15:44:47 4c4a23d feat: port Algebra.Module.Bimodule (#4077) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Module/Bimodule.lean + def Subbimodule.baseChange + def Subbimodule.mk + theorem Subbimodule.smul_mem' + theorem Subbimodule.smul_mem + def Subbimodule.toSubbimoduleInt + def Subbimodule.toSubbimoduleNat + def Subbimodule.toSubmodule' + def Subbimodule.toSubmodule 2023-05-18 15:31:06 c247773 feat: port RingTheory.Nakayama (#4084) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/RingTheory/Nakayama.lean + theorem Submodule.eq_bot_of_le_smul_of_le_jacobson_bot + theorem Submodule.eq_smul_of_le_smul_of_le_jacobson + theorem Submodule.smul_sup_eq_smul_sup_of_le_smul_of_le_jacobson + theorem Submodule.smul_sup_le_of_le_smul_of_le_jacobson_bot 2023-05-18 13:08:43 c39117e feat: port NumberTheory.Multiplicity (#4044) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/NumberTheory/Multiplicity.lean + theorem Int.sq_mod_four_eq_one_of_odd + theorem Int.two_pow_sub_pow' + theorem Int.two_pow_sub_pow + theorem Int.two_pow_two_pow_add_two_pow_two_pow + theorem Int.two_pow_two_pow_sub_pow_two_pow + theorem Nat.two_pow_sub_pow + theorem dvd_geom_sum₂_iff_of_dvd_sub' + theorem dvd_geom_sum₂_iff_of_dvd_sub + theorem dvd_geom_sum₂_self + theorem multiplicity.Int.pow_add_pow + theorem multiplicity.Int.pow_sub_pow + theorem multiplicity.Nat.pow_add_pow + theorem multiplicity.Nat.pow_sub_pow + theorem multiplicity.geom_sum₂_eq_one + theorem multiplicity.pow_prime_pow_sub_pow_prime_pow + theorem multiplicity.pow_prime_sub_pow_prime + theorem multiplicity.pow_sub_pow_of_prime + theorem not_dvd_geom_sum₂ + theorem odd_sq_dvd_geom_sum₂_sub + theorem padicValNat.pow_add_pow + theorem padicValNat.pow_sub_pow + theorem padicValNat.pow_two_sub_pow + theorem pow_two_pow_sub_pow_two_pow + theorem sq_dvd_add_pow_sub_sub 2023-05-18 12:57:10 870cc2b feat port: Algebra.DirectSum.Decomposition (#4081) A `@[simps (config := { fullyApplied := false })]` on line [133](https://github.com/leanprover-community/mathlib4/blob/2eba0496c3fb83eeb65898498bdd726c38bbadf0/Mathlib/Algebra/DirectSum/Decomposition.lean#L133) is causing a `maximum recursion depth` so I commented it out with a porting note ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/DirectSum/Decomposition.lean + theorem DirectSum.Decomposition.decompose'_eq + def DirectSum.decompose + def DirectSum.decomposeAddEquiv + def DirectSum.decomposeLinearEquiv + theorem DirectSum.decompose_add + theorem DirectSum.decompose_coe + theorem DirectSum.decompose_neg + theorem DirectSum.decompose_of_mem + theorem DirectSum.decompose_of_mem_ne + theorem DirectSum.decompose_of_mem_same + theorem DirectSum.decompose_smul + theorem DirectSum.decompose_sub + theorem DirectSum.decompose_sum + theorem DirectSum.decompose_symm_add + theorem DirectSum.decompose_symm_neg + theorem DirectSum.decompose_symm_of + theorem DirectSum.decompose_symm_sub + theorem DirectSum.decompose_symm_sum + theorem DirectSum.decompose_symm_zero + theorem DirectSum.decompose_zero + theorem DirectSum.sum_support_decompose 2023-05-18 11:07:28 72fecdb feat: port LinearAlgebra.TensorProduct.Matrix (#4080) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/LinearAlgebra/TensorProduct/Matrix.lean + theorem Matrix.toLin_kronecker + theorem TensorProduct.toMatrix_assoc + theorem TensorProduct.toMatrix_comm + theorem TensorProduct.toMatrix_map 2023-05-18 11:07:27 7d0d674 feat: port LinearAlgebra.Matrix.IsDiag (#4079) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/LinearAlgebra/Matrix/IsDiag.lean + theorem Matrix.IsDiag.add + theorem Matrix.IsDiag.conjTranspose + theorem Matrix.IsDiag.diagonal_diag + theorem Matrix.IsDiag.fromBlocks + theorem Matrix.IsDiag.fromBlocks_of_isSymm + theorem Matrix.IsDiag.isSymm + theorem Matrix.IsDiag.kronecker + theorem Matrix.IsDiag.map + theorem Matrix.IsDiag.neg + theorem Matrix.IsDiag.smul + theorem Matrix.IsDiag.sub + theorem Matrix.IsDiag.submatrix + theorem Matrix.IsDiag.transpose + def Matrix.IsDiag + theorem Matrix.isDiag_conjTranspose_iff + theorem Matrix.isDiag_diagonal + theorem Matrix.isDiag_fromBlocks_iff + theorem Matrix.isDiag_iff_diagonal_diag + theorem Matrix.isDiag_neg_iff + theorem Matrix.isDiag_of_subsingleton + theorem Matrix.isDiag_one + theorem Matrix.isDiag_smul_one + theorem Matrix.isDiag_transpose_iff + theorem Matrix.isDiag_zero + theorem Matrix.mul_transpose_self_isDiag_iff_hasOrthogonalRows + theorem Matrix.transpose_mul_self_isDiag_iff_hasOrthogonalCols 2023-05-18 11:07:26 4c76d31 feat: port RingTheory.Ideal.LocalRing (#4066) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/RingTheory/Ideal/LocalRing.lean + theorem LocalRing.ResidueField.algebraMap_eq + def LocalRing.ResidueField.lift + theorem LocalRing.ResidueField.lift_comp_residue + theorem LocalRing.ResidueField.lift_residue_apply + def LocalRing.ResidueField.map + def LocalRing.ResidueField.mapAut + theorem LocalRing.ResidueField.mapEquiv.symm + def LocalRing.ResidueField.mapEquiv + theorem LocalRing.ResidueField.mapEquiv_refl + theorem LocalRing.ResidueField.mapEquiv_trans + theorem LocalRing.ResidueField.map_comp + theorem LocalRing.ResidueField.map_comp_residue + theorem LocalRing.ResidueField.map_id + theorem LocalRing.ResidueField.map_id_apply + theorem LocalRing.ResidueField.map_map + theorem LocalRing.ResidueField.map_residue + theorem LocalRing.ResidueField.residue_smul + def LocalRing.ResidueField + theorem LocalRing.eq_maximalIdeal + theorem LocalRing.isField_iff_maximalIdeal_eq + theorem LocalRing.isLocalRingHom_residue + theorem LocalRing.isUnit_of_mem_nonunits_one_sub_self + theorem LocalRing.isUnit_one_sub_self_of_mem_nonunits + theorem LocalRing.isUnit_or_isUnit_of_isUnit_add + theorem LocalRing.isUnit_or_isUnit_one_sub_self + theorem LocalRing.jacobson_eq_maximalIdeal + theorem LocalRing.ker_eq_maximalIdeal + theorem LocalRing.le_maximalIdeal + theorem LocalRing.local_hom_TFAE + def LocalRing.maximalIdeal + theorem LocalRing.maximalIdeal_eq_bot + theorem LocalRing.maximal_ideal_unique + theorem LocalRing.mem_maximalIdeal + theorem LocalRing.nonunits_add + theorem LocalRing.of_isUnit_or_isUnit_of_isUnit_add + theorem LocalRing.of_isUnit_or_isUnit_one_sub_self + theorem LocalRing.of_nonunits_add + theorem LocalRing.of_surjective' + theorem LocalRing.of_surjective + theorem LocalRing.of_unique_max_ideal + theorem LocalRing.of_unique_nonzero_prime + def LocalRing.residue + theorem LocalRing.surjective_units_map_of_local_ringHom + theorem RingHom.domain_localRing + theorem isLocalRingHom_of_comp + theorem isUnit_map_iff + theorem isUnit_of_map_unit + theorem map_mem_nonunits_iff + theorem map_nonunit + theorem of_irreducible_map 2023-05-18 10:53:27 cb49305 feat: port Topology.Category.TopCommRingCat (#3975) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Topology/Category/TopCommRingCat.lean + theorem TopCommRingCat.coe_of + def TopCommRingCat.of + structure TopCommRingCat 2023-05-18 09:26:17 f035a65 feat: port Analysis.SpecialFunctions.Pow.Complex (#4070) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/SpecialFunctions/Pow/Complex.lean + theorem Complex.conj_cpow + theorem Complex.conj_cpow_eq_ite + theorem Complex.cpow_add + theorem Complex.cpow_conj + theorem Complex.cpow_def + theorem Complex.cpow_def_of_ne_zero + theorem Complex.cpow_eq_pow + theorem Complex.cpow_eq_zero_iff + theorem Complex.cpow_int_cast + theorem Complex.cpow_mul + theorem Complex.cpow_nat_cast + theorem Complex.cpow_nat_inv_pow + theorem Complex.cpow_neg + theorem Complex.cpow_neg_one + theorem Complex.cpow_one + theorem Complex.cpow_sub + theorem Complex.cpow_two + theorem Complex.cpow_zero + theorem Complex.eq_zero_cpow_iff + theorem Complex.inv_cpow + theorem Complex.inv_cpow_eq_ite' + theorem Complex.inv_cpow_eq_ite + theorem Complex.mul_cpow_of_real_nonneg + theorem Complex.one_cpow + theorem Complex.zero_cpow + theorem Complex.zero_cpow_eq_iff 2023-05-18 09:10:23 8126cf1 feat: port Analysis.NormedSpace.Completion (#4072) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/NormedSpace/Completion.lean + theorem UniformSpace.Completion.coe_toComplL + theorem UniformSpace.Completion.coe_toComplₗᵢ + theorem UniformSpace.Completion.norm_toComplL + def UniformSpace.Completion.toComplL + def UniformSpace.Completion.toComplₗᵢ Modified Mathlib/Topology/Algebra/GroupCompletion.lean Modified Mathlib/Topology/MetricSpace/Completion.lean 2023-05-18 08:40:05 968d650 feat: port Data.Matrix.Kronecker (#4068) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Data/Matrix/Kronecker.lean + theorem Matrix.add_kronecker + theorem Matrix.add_kroneckerTMul + theorem Matrix.det_kronecker + theorem Matrix.det_kroneckerMapBilinear + theorem Matrix.det_kroneckerTMul + theorem Matrix.diagonal_kronecker + theorem Matrix.diagonal_kroneckerTMul + theorem Matrix.diagonal_kroneckerTMul_diagonal + theorem Matrix.diagonal_kronecker_diagonal + theorem Matrix.inv_kronecker + def Matrix.kronecker + def Matrix.kroneckerBilinear + def Matrix.kroneckerMap + def Matrix.kroneckerMapBilinear + theorem Matrix.kroneckerMapBilinear_mul_mul + theorem Matrix.kroneckerMap_add_left + theorem Matrix.kroneckerMap_add_right + theorem Matrix.kroneckerMap_apply + theorem Matrix.kroneckerMap_assoc + theorem Matrix.kroneckerMap_assoc₁ + theorem Matrix.kroneckerMap_diagonal_diagonal + theorem Matrix.kroneckerMap_diagonal_left + theorem Matrix.kroneckerMap_diagonal_right + theorem Matrix.kroneckerMap_map + theorem Matrix.kroneckerMap_map_left + theorem Matrix.kroneckerMap_map_right + theorem Matrix.kroneckerMap_one_one + theorem Matrix.kroneckerMap_reindex + theorem Matrix.kroneckerMap_reindex_left + theorem Matrix.kroneckerMap_reindex_right + theorem Matrix.kroneckerMap_smul_left + theorem Matrix.kroneckerMap_smul_right + theorem Matrix.kroneckerMap_transpose + theorem Matrix.kroneckerMap_zero_left + theorem Matrix.kroneckerMap_zero_right + def Matrix.kroneckerTMul + def Matrix.kroneckerTMulBilinear + theorem Matrix.kroneckerTMul_add + theorem Matrix.kroneckerTMul_apply + theorem Matrix.kroneckerTMul_assoc' + theorem Matrix.kroneckerTMul_assoc + theorem Matrix.kroneckerTMul_diagonal + theorem Matrix.kroneckerTMul_smul + theorem Matrix.kroneckerTMul_zero + theorem Matrix.kronecker_add + theorem Matrix.kronecker_apply + theorem Matrix.kronecker_assoc' + theorem Matrix.kronecker_assoc + theorem Matrix.kronecker_diagonal + theorem Matrix.kronecker_one + theorem Matrix.kronecker_smul + theorem Matrix.kronecker_zero + theorem Matrix.mul_kroneckerTMul_mul + theorem Matrix.mul_kronecker_mul + theorem Matrix.one_kronecker + theorem Matrix.one_kroneckerTMul_one + theorem Matrix.one_kronecker_one + theorem Matrix.smul_kronecker + theorem Matrix.smul_kroneckerTMul + theorem Matrix.trace_kronecker + theorem Matrix.trace_kroneckerMapBilinear + theorem Matrix.trace_kroneckerTMul + theorem Matrix.zero_kronecker + theorem Matrix.zero_kroneckerTMul 2023-05-18 08:20:27 af2d493 feat: port AlgebraicTopology.FundamentalGroupoid.Punit (#4053) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/AlgebraicTopology/FundamentalGroupoid/PUnit.lean + def FundamentalGroupoid.punitEquivDiscretePunit 2023-05-18 08:06:47 17e26bf feat: port Analysis.Complex.OperatorNorm (#4065) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/Complex/OperatorNorm.lean + theorem Complex.conjCle_nnorm + theorem Complex.conjCle_norm + theorem Complex.det_conjLie + theorem Complex.imClm_nnnorm + theorem Complex.imClm_norm + theorem Complex.linearEquiv_det_conjLie + theorem Complex.ofRealClm_nnnorm + theorem Complex.ofRealClm_norm + theorem Complex.reClm_nnnorm + theorem Complex.reClm_norm 2023-05-18 07:49:34 bf2ce41 feat: port AlgebraicTopology.FundamentalGroupoid.FundamentalGroup (#4051) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/AlgebraicTopology/FundamentalGroupoid/FundamentalGroup.lean + def FundamentalGroup.fundamentalGroupMulEquivOfPath + def FundamentalGroup.fundamentalGroupMulEquivOfPathConnected + def FundamentalGroup 2023-05-18 07:49:33 0d5e1c8 feat: port CategoryTheory.Groupoid.FreeGroupoid (#3347) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Groupoid/FreeGroupoid.lean + def CategoryTheory.FreeGroupoid + theorem CategoryTheory.Groupoid.Free.congr_comp_reverse + theorem CategoryTheory.Groupoid.Free.congr_reverse + theorem CategoryTheory.Groupoid.Free.congr_reverse_comp + theorem CategoryTheory.Groupoid.Free.freeGroupoidFunctor_comp + theorem CategoryTheory.Groupoid.Free.freeGroupoidFunctor_id + def CategoryTheory.Groupoid.Free.lift + theorem CategoryTheory.Groupoid.Free.lift_spec + theorem CategoryTheory.Groupoid.Free.lift_unique + def CategoryTheory.Groupoid.Free.of + theorem CategoryTheory.Groupoid.Free.of_eq + def CategoryTheory.Groupoid.Free.quotInv + inductive CategoryTheory.Groupoid.Free.redStep + def CategoryTheory.freeGroupoidFunctor 2023-05-18 07:49:32 c01ffda feat: port Topology.FiberBundle.Constructions (#3145) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Topology/FiberBundle/Constructions.lean + theorem Bundle.Trivial.eq_trivialization + def Bundle.Trivial.trivialization + theorem Bundle.Trivial.trivialization_source + theorem Bundle.Trivial.trivialization_target + theorem FiberBundle.Prod.inducing_diag + theorem Pullback.continuous_lift + theorem Pullback.continuous_proj + theorem Pullback.continuous_totalSpaceMk + theorem Trivialization.Prod.continuous_inv_fun + theorem Trivialization.Prod.continuous_to_fun + theorem Trivialization.Prod.left_inv + theorem Trivialization.Prod.right_inv + def Trivialization.Prod.toFun' + theorem Trivialization.baseSet_prod + theorem Trivialization.prod_symm_apply + theorem inducing_pullbackTotalSpaceEmbedding 2023-05-18 07:35:43 0fe136b feat: port LinearAlgebra.UnitaryGroup (#3699) I use name `unitaryGroup` (because it's a `Submonoid`, not a `Type _`) and namespace `UnitaryGroup`. Should I change either of these names? Also, I don't know how to fix the timeout in the `simpNF` linter. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/LinearAlgebra/UnitaryGroup.lean + theorem Matrix.UnitaryGroup.coe_toGL + def Matrix.UnitaryGroup.embeddingGL + theorem Matrix.UnitaryGroup.ext + theorem Matrix.UnitaryGroup.ext_iff + theorem Matrix.UnitaryGroup.inv_apply + theorem Matrix.UnitaryGroup.inv_val + theorem Matrix.UnitaryGroup.mul_apply + theorem Matrix.UnitaryGroup.mul_val + theorem Matrix.UnitaryGroup.one_apply + theorem Matrix.UnitaryGroup.one_val + theorem Matrix.UnitaryGroup.star_mul_self + def Matrix.UnitaryGroup.toGL + theorem Matrix.UnitaryGroup.toGL_mul + theorem Matrix.UnitaryGroup.toGL_one + def Matrix.UnitaryGroup.toLin' + theorem Matrix.UnitaryGroup.toLin'_mul + theorem Matrix.UnitaryGroup.toLin'_one + def Matrix.UnitaryGroup.toLinearEquiv + theorem Matrix.det_of_mem_unitary + theorem Matrix.mem_orthogonalGroup_iff' + theorem Matrix.mem_orthogonalGroup_iff + theorem Matrix.mem_unitaryGroup_iff' + theorem Matrix.mem_unitaryGroup_iff 2023-05-18 06:07:10 a7d7577 port: Analysis.SpecialFunctions.Complex.Log (#4060) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/SpecialFunctions/Complex/Log.lean + theorem Complex.continuousWithinAt_log_of_re_neg_of_im_zero + theorem Complex.countable_preimage_exp + theorem Complex.exp_eq_exp_iff_exists_int + theorem Complex.exp_eq_exp_iff_exp_sub_eq_one + theorem Complex.exp_eq_one_iff + theorem Complex.exp_inj_of_neg_pi_lt_of_le_pi + theorem Complex.exp_log + theorem Complex.log_I + theorem Complex.log_conj + theorem Complex.log_conj_eq_ite + theorem Complex.log_exp + theorem Complex.log_im + theorem Complex.log_im_le_pi + theorem Complex.log_inv + theorem Complex.log_inv_eq_ite + theorem Complex.log_mul_of_real + theorem Complex.log_neg_I + theorem Complex.log_neg_one + theorem Complex.log_of_real_mul + theorem Complex.log_of_real_re + theorem Complex.log_one + theorem Complex.log_re + theorem Complex.log_zero + theorem Complex.map_exp_comap_re_atBot + theorem Complex.map_exp_comap_re_atTop + theorem Complex.neg_pi_lt_log_im + theorem Complex.of_real_log + theorem Complex.range_exp + theorem Complex.tendsto_log_nhdsWithin_im_neg_of_re_neg_of_im_zero + theorem Complex.tendsto_log_nhdsWithin_im_nonneg_of_re_neg_of_im_zero + theorem Complex.two_pi_I_ne_zero + theorem Continuous.clog + theorem ContinuousAt.clog + theorem ContinuousOn.clog + theorem ContinuousWithinAt.clog + theorem Filter.Tendsto.clog + theorem continuousAt_clog 2023-05-18 05:52:45 a3ae6e9 feat port RingTheory.JacobsonIdeal (#4061) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/RingTheory/JacobsonIdeal.lean + theorem Ideal.IsLocal.le_jacobson + theorem Ideal.IsLocal.mem_jacobson_or_exists_inv + theorem Ideal.comap_jacobson + theorem Ideal.comap_jacobson_of_surjective + theorem Ideal.eq_jacobson_iff_not_mem + theorem Ideal.eq_jacobson_iff_sInf_maximal' + theorem Ideal.eq_jacobson_iff_sInf_maximal + theorem Ideal.exists_mul_sub_mem_of_sub_one_mem_jacobson + theorem Ideal.isLocal_iff + theorem Ideal.isLocal_of_isMaximal_radical + theorem Ideal.isPrimary_of_isMaximal_radical + theorem Ideal.isRadical_of_eq_jacobson + theorem Ideal.isUnit_of_sub_one_mem_jacobson_bot + def Ideal.jacobson + theorem Ideal.jacobson_bot_polynomial_le_sInf_map_maximal + theorem Ideal.jacobson_bot_polynomial_of_jacobson_bot + theorem Ideal.jacobson_eq_bot + theorem Ideal.jacobson_eq_iff_jacobson_quotient_eq_bot + theorem Ideal.jacobson_eq_self_of_isMaximal + theorem Ideal.jacobson_eq_top_iff + theorem Ideal.jacobson_idem + theorem Ideal.jacobson_mono + theorem Ideal.jacobson_radical_eq_jacobson + theorem Ideal.jacobson_top + theorem Ideal.le_jacobson + theorem Ideal.map_jacobson_of_bijective + theorem Ideal.map_jacobson_of_surjective + theorem Ideal.mem_jacobson_bot + theorem Ideal.mem_jacobson_iff + theorem Ideal.radical_eq_jacobson_iff_radical_quotient_eq_jacobson_bot + theorem Ideal.radical_le_jacobson 2023-05-18 04:09:58 5a1d44a feat: port Analysis.SpecialFunctions.Complex.Arg (#4041) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/SpecialFunctions/Complex/Arg.lean + theorem Complex.abs_arg_le_pi + theorem Complex.abs_arg_le_pi_div_two_iff + theorem Complex.abs_eq_one_iff + theorem Complex.abs_mul_cos_add_sin_mul_I + theorem Complex.abs_mul_exp_arg_mul_I + theorem Complex.arg_I + theorem Complex.arg_coe_angle_eq_iff + theorem Complex.arg_coe_angle_eq_iff_eq_toReal + theorem Complex.arg_coe_angle_toReal_eq_arg + theorem Complex.arg_conj + theorem Complex.arg_conj_coe_angle + theorem Complex.arg_cos_add_sin_mul_I + theorem Complex.arg_cos_add_sin_mul_I_coe_angle + theorem Complex.arg_cos_add_sin_mul_I_eq_toIocMod + theorem Complex.arg_cos_add_sin_mul_I_sub + theorem Complex.arg_div_coe_angle + theorem Complex.arg_eq_arg_iff + theorem Complex.arg_eq_neg_pi_div_two_iff + theorem Complex.arg_eq_nhds_of_im_neg + theorem Complex.arg_eq_nhds_of_im_pos + theorem Complex.arg_eq_nhds_of_re_neg_of_im_neg + theorem Complex.arg_eq_nhds_of_re_neg_of_im_pos + theorem Complex.arg_eq_nhds_of_re_pos + theorem Complex.arg_eq_pi_div_two_iff + theorem Complex.arg_eq_pi_iff + theorem Complex.arg_eq_zero_iff + theorem Complex.arg_inv + theorem Complex.arg_inv_coe_angle + theorem Complex.arg_le_pi + theorem Complex.arg_le_pi_div_two_iff + theorem Complex.arg_lt_pi_iff + theorem Complex.arg_mem_Ioc + theorem Complex.arg_mul_coe_angle + theorem Complex.arg_mul_cos_add_sin_mul_I + theorem Complex.arg_mul_cos_add_sin_mul_I_coe_angle + theorem Complex.arg_mul_cos_add_sin_mul_I_eq_toIocMod + theorem Complex.arg_mul_cos_add_sin_mul_I_sub + theorem Complex.arg_neg_I + theorem Complex.arg_neg_coe_angle + theorem Complex.arg_neg_eq_arg_add_pi_iff + theorem Complex.arg_neg_eq_arg_add_pi_of_im_neg + theorem Complex.arg_neg_eq_arg_sub_pi_iff + theorem Complex.arg_neg_eq_arg_sub_pi_of_im_pos + theorem Complex.arg_neg_iff + theorem Complex.arg_neg_one + theorem Complex.arg_nonneg_iff + theorem Complex.arg_of_im_neg + theorem Complex.arg_of_im_nonneg_of_ne_zero + theorem Complex.arg_of_im_pos + theorem Complex.arg_of_re_neg_of_im_neg + theorem Complex.arg_of_re_neg_of_im_nonneg + theorem Complex.arg_of_re_nonneg + theorem Complex.arg_of_real_of_neg + theorem Complex.arg_of_real_of_nonneg + theorem Complex.arg_one + theorem Complex.arg_real_mul + theorem Complex.arg_zero + theorem Complex.continuousAt_arg + theorem Complex.continuousAt_arg_coe_angle + theorem Complex.continuousWithinAt_arg_of_re_neg_of_im_zero + theorem Complex.cos_arg + theorem Complex.ext_abs_arg + theorem Complex.ext_abs_arg_iff + theorem Complex.neg_pi_div_two_le_arg_iff + theorem Complex.neg_pi_lt_arg + theorem Complex.range_arg + theorem Complex.range_exp_mul_I + theorem Complex.sin_arg + theorem Complex.tan_arg + theorem Complex.tendsto_arg_nhdsWithin_im_neg_of_re_neg_of_im_zero + theorem Complex.tendsto_arg_nhdsWithin_im_nonneg_of_re_neg_of_im_zero 2023-05-18 03:55:19 01d72c4 feat: port CategoryTheory.Bicategory.Free (#2482) - [x] depends on: #2301 ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Bicategory/Free.lean + inductive CategoryTheory.FreeBicategory.Hom + inductive CategoryTheory.FreeBicategory.Hom₂ + inductive CategoryTheory.FreeBicategory.Rel + theorem CategoryTheory.FreeBicategory.comp_def + def CategoryTheory.FreeBicategory.lift + def CategoryTheory.FreeBicategory.liftHom + theorem CategoryTheory.FreeBicategory.liftHom_comp + theorem CategoryTheory.FreeBicategory.liftHom_id + def CategoryTheory.FreeBicategory.liftHom₂ + theorem CategoryTheory.FreeBicategory.liftHom₂_congr + theorem CategoryTheory.FreeBicategory.mk_associator_hom + theorem CategoryTheory.FreeBicategory.mk_associator_inv + theorem CategoryTheory.FreeBicategory.mk_id + theorem CategoryTheory.FreeBicategory.mk_left_unitor_hom + theorem CategoryTheory.FreeBicategory.mk_left_unitor_inv + theorem CategoryTheory.FreeBicategory.mk_right_unitor_hom + theorem CategoryTheory.FreeBicategory.mk_right_unitor_inv + theorem CategoryTheory.FreeBicategory.mk_vcomp + theorem CategoryTheory.FreeBicategory.mk_whisker_left + theorem CategoryTheory.FreeBicategory.mk_whisker_right + def CategoryTheory.FreeBicategory.of + def CategoryTheory.FreeBicategory 2023-05-17 23:46:59 de0cf0a fix: use cleanupAnnotations in symm and trans (#3768) * `trans` would fail if the goal had an annotation * `symm` would use `whnf` with normal transparency on the goal, now we use `cleanupAnnotations`. * `rfl` is fixed in #3758 ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Lean/Elab/Tactic/Basic.lean + def Lean.Elab.Tactic.getMainTarget'' Modified Mathlib/Lean/Meta.lean + def Lean.MVarId.getType'' Modified Mathlib/Tactic/Relation/Symm.lean Modified Mathlib/Tactic/Relation/Trans.lean Modified test/symm.lean + theorem MyEq.symm + def MyEq Modified test/trans.lean + theorem MyLE.trans + def MyLE 2023-05-17 23:10:26 dd5ae6b feat: port CategoryTheory.Limits.Constructions.Over.Products (#4046) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Limits/Constructions/Over/Products.lean + def CategoryTheory.Over.ConstructProducts.conesEquiv + def CategoryTheory.Over.ConstructProducts.conesEquivCounitIso + def CategoryTheory.Over.ConstructProducts.conesEquivFunctor + def CategoryTheory.Over.ConstructProducts.conesEquivInverse + def CategoryTheory.Over.ConstructProducts.conesEquivInverseObj + def CategoryTheory.Over.ConstructProducts.conesEquivUnitIso + theorem CategoryTheory.Over.ConstructProducts.has_over_limit_discrete_of_widePullback_limit + theorem CategoryTheory.Over.ConstructProducts.over_binaryProduct_of_pullback + theorem CategoryTheory.Over.ConstructProducts.over_finiteProducts_of_finiteWidePullbacks + theorem CategoryTheory.Over.ConstructProducts.over_product_of_widePullback + theorem CategoryTheory.Over.ConstructProducts.over_products_of_widePullbacks + def CategoryTheory.Over.ConstructProducts.widePullbackDiagramOfDiagramOver + theorem CategoryTheory.Over.over_hasTerminal 2023-05-17 23:10:25 56773eb feat: port RingTheory.TensorProduct (#4004) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/RingTheory/TensorProduct.lean + theorem Algebra.TensorProduct.adjoin_tmul_eq_top + def Algebra.TensorProduct.algEquivOfLinearEquivTensorProduct + theorem Algebra.TensorProduct.algEquivOfLinearEquivTensorProduct_apply + def Algebra.TensorProduct.algEquivOfLinearEquivTripleTensorProduct + theorem Algebra.TensorProduct.algEquivOfLinearEquivTripleTensorProduct_apply + def Algebra.TensorProduct.algHomOfLinearMapTensorProduct + theorem Algebra.TensorProduct.algHomOfLinearMapTensorProduct_apply + theorem Algebra.TensorProduct.algebraMap_apply + theorem Algebra.TensorProduct.assoc_aux_1 + theorem Algebra.TensorProduct.assoc_aux_2 + theorem Algebra.TensorProduct.assoc_tmul + theorem Algebra.TensorProduct.basisAux_map_smul + theorem Algebra.TensorProduct.basisAux_tmul + theorem Algebra.TensorProduct.basis_repr_symm_apply' + theorem Algebra.TensorProduct.basis_repr_symm_apply + theorem Algebra.TensorProduct.basis_repr_tmul + theorem Algebra.TensorProduct.comm_tmul + def Algebra.TensorProduct.congr + theorem Algebra.TensorProduct.congr_apply + theorem Algebra.TensorProduct.congr_symm_apply + theorem Algebra.TensorProduct.ext + def Algebra.TensorProduct.includeLeft + def Algebra.TensorProduct.includeLeftRingHom + theorem Algebra.TensorProduct.includeLeft_apply + theorem Algebra.TensorProduct.includeLeft_comp_algebraMap + def Algebra.TensorProduct.includeRight + theorem Algebra.TensorProduct.includeRight_apply + theorem Algebra.TensorProduct.lid_tmul + def Algebra.TensorProduct.lmul' + theorem Algebra.TensorProduct.lmul'_apply_tmul + theorem Algebra.TensorProduct.lmul'_comp_includeLeft + theorem Algebra.TensorProduct.lmul'_comp_includeRight + theorem Algebra.TensorProduct.lmul'_toLinearMap + def Algebra.TensorProduct.map + theorem Algebra.TensorProduct.map_comp_includeLeft + theorem Algebra.TensorProduct.map_comp_includeRight + theorem Algebra.TensorProduct.map_range + theorem Algebra.TensorProduct.map_tmul + def Algebra.TensorProduct.mul + def Algebra.TensorProduct.mulAux + theorem Algebra.TensorProduct.mulAux_apply + theorem Algebra.TensorProduct.mul_apply + theorem Algebra.TensorProduct.mul_assoc' + theorem Algebra.TensorProduct.mul_one + theorem Algebra.TensorProduct.one_def + theorem Algebra.TensorProduct.one_mul + def Algebra.TensorProduct.productLeftAlgHom + def Algebra.TensorProduct.productMap + theorem Algebra.TensorProduct.productMap_apply_tmul + theorem Algebra.TensorProduct.productMap_left + theorem Algebra.TensorProduct.productMap_left_apply + theorem Algebra.TensorProduct.productMap_range + theorem Algebra.TensorProduct.productMap_right + theorem Algebra.TensorProduct.productMap_right_apply + theorem Algebra.TensorProduct.rid_tmul + def Algebra.TensorProduct.rightAlgebra + theorem Algebra.TensorProduct.tmul_mul_tmul + theorem Algebra.TensorProduct.tmul_pow + def LinearMap.baseChange + def LinearMap.baseChangeHom + theorem LinearMap.baseChange_add + theorem LinearMap.baseChange_eq_ltensor + theorem LinearMap.baseChange_neg + theorem LinearMap.baseChange_smul + theorem LinearMap.baseChange_sub + theorem LinearMap.baseChange_tmul + theorem LinearMap.baseChange_zero + def Module.endTensorEndAlgHom + theorem Module.endTensorEndAlgHom_apply + theorem Subalgebra.finiteDimensional_sup + def TensorProduct.Algebra.moduleAux + theorem TensorProduct.Algebra.moduleAux_apply + theorem TensorProduct.Algebra.smul_def + def TensorProduct.AlgebraTensorModule.assoc + theorem TensorProduct.AlgebraTensorModule.ext + def TensorProduct.AlgebraTensorModule.lcurry + def TensorProduct.AlgebraTensorModule.lift.equiv + theorem TensorProduct.AlgebraTensorModule.lift_apply + theorem TensorProduct.AlgebraTensorModule.lift_tmul + theorem TensorProduct.AlgebraTensorModule.restrictScalars_curry + theorem TensorProduct.AlgebraTensorModule.smul_eq_lsmul_rtensor + def TensorProduct.AlgebraTensorModule.uncurry 2023-05-17 23:10:24 99e853d feat: port Topology.Algebra.Module.FiniteDimension (#3796) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Category/ModuleCat/Basic.lean Modified Mathlib/Algebra/Module/LinearMap.lean Added Mathlib/Topology/Algebra/Module/FiniteDimension.lean + theorem Basis.coe_constrL + def Basis.constrL + theorem Basis.constrL_apply + theorem Basis.constrL_basis + def Basis.equivFunL + def ContinuousLinearEquiv.ofFinrankEq + theorem ContinuousLinearMap.coe_toContinuousLinearEquivOfDetNeZero + def ContinuousLinearMap.toContinuousLinearEquivOfDetNeZero + theorem ContinuousLinearMap.toContinuousLinearEquivOfDetNeZero_apply + theorem FiniteDimensional.nonempty_continuousLinearEquiv_iff_finrank_eq + theorem FiniteDimensional.nonempty_continuousLinearEquiv_of_finrank_eq + theorem LinearEquiv.coe_toContinuousLinearEquiv + theorem LinearEquiv.coe_toContinuousLinearEquiv_symm' + theorem LinearEquiv.coe_toContinuousLinearEquiv_symm + theorem LinearEquiv.coe_to_continuous_linear_equiv' + def LinearEquiv.toContinuousLinearEquiv + theorem LinearEquiv.toLinearEquiv_toContinuousLinearEquiv + theorem LinearEquiv.toLinearEquiv_toContinuousLinearEquiv_symm + theorem LinearMap.coe_toContinuousLinearMap + theorem LinearMap.coe_toContinuousLinearMap_symm + theorem LinearMap.coe_to_continuous_linear_map' + theorem LinearMap.continuous_iff_isClosed_ker + theorem LinearMap.continuous_of_finiteDimensional + theorem LinearMap.continuous_of_isClosed_ker + theorem LinearMap.continuous_of_nonzero_on_open + theorem LinearMap.det_toContinuousLinearMap + theorem LinearMap.isOpenMap_of_finiteDimensional + theorem LinearMap.ker_toContinuousLinearMap + theorem LinearMap.range_toContinuousLinearMap + def LinearMap.toContinuousLinearMap + theorem Matrix.toLin_finTwoProd_toContinuousLinearMap + theorem continuous_equivFun_basis + theorem unique_topology_of_t2 Modified Mathlib/Topology/Algebra/UniformGroup.lean 2023-05-17 22:53:24 d0c30e1 feat: port Analysis.SpecialFunctions.Trigonometric.Inverse (#4037) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/SpecialFunctions/Trigonometric/Inverse.lean + theorem Real.arccos_cos + theorem Real.arccos_eq_arcsin + theorem Real.arccos_eq_pi + theorem Real.arccos_eq_pi_div_two + theorem Real.arccos_eq_pi_div_two_sub_arcsin + theorem Real.arccos_eq_zero + theorem Real.arccos_inj + theorem Real.arccos_injOn + theorem Real.arccos_le_pi + theorem Real.arccos_le_pi_div_four + theorem Real.arccos_le_pi_div_two + theorem Real.arccos_lt_pi_div_two + theorem Real.arccos_neg + theorem Real.arccos_neg_one + theorem Real.arccos_nonneg + theorem Real.arccos_of_le_neg_one + theorem Real.arccos_of_one_le + theorem Real.arccos_one + theorem Real.arccos_pos + theorem Real.arccos_zero + theorem Real.arcsin_eq_arccos + theorem Real.arcsin_eq_iff_eq_sin + theorem Real.arcsin_eq_neg_pi_div_two + theorem Real.arcsin_eq_of_sin_eq + theorem Real.arcsin_eq_pi_div_two + theorem Real.arcsin_eq_pi_div_two_sub_arccos + theorem Real.arcsin_eq_zero_iff + theorem Real.arcsin_inj + theorem Real.arcsin_le_iff_le_sin' + theorem Real.arcsin_le_iff_le_sin + theorem Real.arcsin_le_neg_pi_div_two + theorem Real.arcsin_le_pi_div_two + theorem Real.arcsin_lt_iff_lt_sin' + theorem Real.arcsin_lt_iff_lt_sin + theorem Real.arcsin_lt_pi_div_two + theorem Real.arcsin_lt_zero + theorem Real.arcsin_mem_Icc + theorem Real.arcsin_neg + theorem Real.arcsin_neg_one + theorem Real.arcsin_nonneg + theorem Real.arcsin_nonpos + theorem Real.arcsin_of_le_neg_one + theorem Real.arcsin_of_one_le + theorem Real.arcsin_one + theorem Real.arcsin_pos + theorem Real.arcsin_projIcc + theorem Real.arcsin_sin' + theorem Real.arcsin_sin + theorem Real.arcsin_zero + theorem Real.continuousAt_arcsin + theorem Real.continuous_arccos + theorem Real.continuous_arcsin + theorem Real.cos_arccos + theorem Real.cos_arcsin + theorem Real.cos_arcsin_nonneg + theorem Real.injOn_arcsin + theorem Real.le_arcsin_iff_sin_le' + theorem Real.le_arcsin_iff_sin_le + theorem Real.lt_arcsin_iff_sin_lt' + theorem Real.lt_arcsin_iff_sin_lt + theorem Real.mapsTo_sin_Ioo + theorem Real.monotone_arcsin + theorem Real.neg_pi_div_two_eq_arcsin + theorem Real.neg_pi_div_two_le_arcsin + theorem Real.neg_pi_div_two_lt_arcsin + theorem Real.pi_div_four_le_arcsin + theorem Real.pi_div_two_eq_arcsin + theorem Real.pi_div_two_le_arcsin + theorem Real.range_arcsin + def Real.sinLocalHomeomorph + theorem Real.sin_arccos + theorem Real.sin_arcsin' + theorem Real.sin_arcsin + theorem Real.strictAntiOn_arccos + theorem Real.strictMonoOn_arcsin + theorem Real.tan_arccos + theorem Real.tan_arcsin + theorem Real.zero_eq_arcsin_iff 2023-05-17 22:53:23 d8a59ae feat: port RingTheory.Polynomial.Quotient (#3932) Coming from #3292 - [x] depends on: #3414 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/RingTheory/Polynomial/Quotient.lean + theorem Ideal.eq_zero_of_polynomial_mem_map_range + theorem Ideal.eval₂_C_mk_eq_zero + theorem Ideal.isDomain_map_C_quotient + def Ideal.polynomialQuotientEquivQuotientPolynomial + theorem Ideal.polynomialQuotientEquivQuotientPolynomial_map_mk + theorem Ideal.polynomialQuotientEquivQuotientPolynomial_symm_mk + theorem Ideal.quotient_map_C_eq_zero + theorem MvPolynomial.eval₂_C_mk_eq_zero + theorem MvPolynomial.quotientEquivQuotientMvPolynomial_leftInverse + theorem MvPolynomial.quotientEquivQuotientMvPolynomial_rightInverse + theorem MvPolynomial.quotient_map_C_eq_zero + theorem Polynomial.quotientSpanXSubCAlgEquiv_mk + theorem Polynomial.quotientSpanXSubCAlgEquiv_symm_apply 2023-05-17 22:53:22 9bc9431 feat: port LinearAlgebra.Multilinear.FiniteDimensional (#3822) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/LinearAlgebra/Multilinear/FiniteDimensional.lean 2023-05-17 22:42:34 8bf7881 feat: port Analysis.NormedSpace.IsROrC (#4055) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/NormedSpace/IsROrC.lean + theorem ContinuousLinearMap.op_norm_bound_of_ball_bound + theorem IsROrC.norm_coe_norm + theorem LinearMap.bound_of_ball_bound' + theorem LinearMap.bound_of_sphere_bound + theorem NormedSpace.sphere_nonempty_isROrC + theorem norm_smul_inv_norm' + theorem norm_smul_inv_norm 2023-05-17 17:34:18-04:00 7a81a20 Revert "feat: add Mathlib.Tactic.Common, and import" This reverts commit 1ce2f69bc4ff126f3b6b97bddae3bd43d0a54a9c. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Group/Defs.lean Modified Mathlib/Algebra/Quotient.lean Modified Mathlib/Control/Monad/Basic.lean Modified Mathlib/Data/Option/Basic.lean Modified Mathlib/Data/Prod/Basic.lean Modified Mathlib/Data/Real/CauSeq.lean Modified Mathlib/Data/Seq/Computation.lean Modified Mathlib/Data/Sum/Basic.lean Modified Mathlib/Data/TypeVec.lean Modified Mathlib/Logic/Pairwise.lean Modified Mathlib/Logic/Relation.lean Modified Mathlib/Logic/Unique.lean Modified Mathlib/Tactic.lean Modified Mathlib/Tactic/Backtracking.lean Deleted Mathlib/Tactic/Common.lean Modified Mathlib/Testing/SlimCheck/Gen.lean Modified Mathlib/Testing/SlimCheck/Testable.lean 2023-05-17 17:33:59-04:00 1ce2f69 feat: add Mathlib.Tactic.Common, and import ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Group/Defs.lean Modified Mathlib/Algebra/Quotient.lean Modified Mathlib/Control/Monad/Basic.lean Modified Mathlib/Data/Option/Basic.lean Modified Mathlib/Data/Prod/Basic.lean Modified Mathlib/Data/Real/CauSeq.lean Modified Mathlib/Data/Seq/Computation.lean Modified Mathlib/Data/Sum/Basic.lean Modified Mathlib/Data/TypeVec.lean Modified Mathlib/Logic/Pairwise.lean Modified Mathlib/Logic/Relation.lean Modified Mathlib/Logic/Unique.lean Modified Mathlib/Tactic.lean Modified Mathlib/Tactic/Backtracking.lean Added Mathlib/Tactic/Common.lean Modified Mathlib/Testing/SlimCheck/Gen.lean Modified Mathlib/Testing/SlimCheck/Testable.lean 2023-05-17 20:21:05 9ab4016 feat: port Analysis.NormedSpace.OperatorNorm (#3903) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/NormedSpace/OperatorNorm.lean + theorem Continuous.clm_comp_const + theorem Continuous.const_clm_comp + theorem Continuous.prod_mapL + theorem Continuous.prod_map_equivL + def ContinuousLinearEquiv.arrowCongr + def ContinuousLinearEquiv.arrowCongrSL + theorem ContinuousLinearEquiv.coord_norm + theorem ContinuousLinearEquiv.isBigO_comp + theorem ContinuousLinearEquiv.isBigO_comp_rev + theorem ContinuousLinearEquiv.isBigO_sub + theorem ContinuousLinearEquiv.isBigO_sub_rev + theorem ContinuousLinearEquiv.nnnorm_symm_pos + theorem ContinuousLinearEquiv.norm_pos + theorem ContinuousLinearEquiv.norm_symm_pos + theorem ContinuousLinearEquiv.one_le_norm_mul_norm_symm + theorem ContinuousLinearEquiv.subsingleton_or_nnnorm_symm_pos + theorem ContinuousLinearEquiv.subsingleton_or_norm_symm_pos + theorem ContinuousLinearMap.antilipschitz_of_embedding + def ContinuousLinearMap.apply' + def ContinuousLinearMap.apply + theorem ContinuousLinearMap.apply_apply' + theorem ContinuousLinearMap.apply_apply + def ContinuousLinearMap.bilinearComp + theorem ContinuousLinearMap.bilinearComp_apply + theorem ContinuousLinearMap.bound + theorem ContinuousLinearMap.bounds_bddBelow + theorem ContinuousLinearMap.bounds_nonempty + theorem ContinuousLinearMap.coe_deriv₂ + theorem ContinuousLinearMap.coe_flipₗᵢ' + theorem ContinuousLinearMap.coe_flipₗᵢ + theorem ContinuousLinearMap.coe_mulₗᵢ + theorem ContinuousLinearMap.coe_restrictScalarsIsometry + theorem ContinuousLinearMap.coe_restrictScalarsL + theorem ContinuousLinearMap.coe_restrict_scalarsL' + def ContinuousLinearMap.compL + theorem ContinuousLinearMap.compL_apply + def ContinuousLinearMap.compSL + theorem ContinuousLinearMap.compSL_apply + def ContinuousLinearMap.deriv₂ + theorem ContinuousLinearMap.dist_le_op_norm + theorem ContinuousLinearMap.exists_lt_apply_of_lt_op_nnnorm + theorem ContinuousLinearMap.exists_lt_apply_of_lt_op_norm + theorem ContinuousLinearMap.exists_mul_lt_apply_of_lt_op_nnnorm + theorem ContinuousLinearMap.exists_mul_lt_of_lt_op_norm + def ContinuousLinearMap.extend + theorem ContinuousLinearMap.extend_eq + theorem ContinuousLinearMap.extend_unique + theorem ContinuousLinearMap.extend_zero + def ContinuousLinearMap.flip + theorem ContinuousLinearMap.flip_add + theorem ContinuousLinearMap.flip_apply + theorem ContinuousLinearMap.flip_flip + theorem ContinuousLinearMap.flip_smul + def ContinuousLinearMap.flipₗᵢ' + theorem ContinuousLinearMap.flipₗᵢ'_symm + def ContinuousLinearMap.flipₗᵢ + theorem ContinuousLinearMap.flipₗᵢ_symm + theorem ContinuousLinearMap.homothety_norm + theorem ContinuousLinearMap.isBigOWith_comp + theorem ContinuousLinearMap.isBigOWith_id + theorem ContinuousLinearMap.isBigOWith_sub + theorem ContinuousLinearMap.isBigO_comp + theorem ContinuousLinearMap.isBigO_id + theorem ContinuousLinearMap.isBigO_sub + theorem ContinuousLinearMap.isClosed_image_coe_closedBall + theorem ContinuousLinearMap.isClosed_image_coe_of_bounded_of_weak_closed + theorem ContinuousLinearMap.isCompact_closure_image_coe_of_bounded + theorem ContinuousLinearMap.isCompact_image_coe_closedBall + theorem ContinuousLinearMap.isCompact_image_coe_of_bounded_of_closed_image + theorem ContinuousLinearMap.isCompact_image_coe_of_bounded_of_weak_closed + theorem ContinuousLinearMap.is_weak_closed_closedBall + theorem ContinuousLinearMap.le_of_op_norm_le + theorem ContinuousLinearMap.le_op_nnnorm + theorem ContinuousLinearMap.le_op_norm + theorem ContinuousLinearMap.le_op_norm_of_le + theorem ContinuousLinearMap.le_op_norm₂ + theorem ContinuousLinearMap.lipschitz + theorem ContinuousLinearMap.lipschitz_apply + def ContinuousLinearMap.lsmul + theorem ContinuousLinearMap.lsmul_apply + theorem ContinuousLinearMap.map_add_add + def ContinuousLinearMap.mul + def ContinuousLinearMap.mulLeftRight + theorem ContinuousLinearMap.mulLeftRight_apply + theorem ContinuousLinearMap.mul_apply' + def ContinuousLinearMap.mulₗᵢ + theorem ContinuousLinearMap.nndist_le_op_nnnorm + theorem ContinuousLinearMap.nnnorm_def + theorem ContinuousLinearMap.nnnorm_smulRight_apply + theorem ContinuousLinearMap.norm_compL_le + theorem ContinuousLinearMap.norm_compSL_le + theorem ContinuousLinearMap.norm_def + theorem ContinuousLinearMap.norm_id + theorem ContinuousLinearMap.norm_id_le + theorem ContinuousLinearMap.norm_id_of_nontrivial_seminorm + theorem ContinuousLinearMap.norm_precompL_le + theorem ContinuousLinearMap.norm_precompR_le + theorem ContinuousLinearMap.norm_restrictScalars + theorem ContinuousLinearMap.norm_smulRightL + theorem ContinuousLinearMap.norm_smulRightL_apply + theorem ContinuousLinearMap.norm_smulRight_apply + theorem ContinuousLinearMap.norm_toSpanSingleton + def ContinuousLinearMap.ofMemClosureImageCoeBounded + def ContinuousLinearMap.ofTendstoOfBoundedRange + def ContinuousLinearMap.opNorm + theorem ContinuousLinearMap.op_nnnorm_comp_le + theorem ContinuousLinearMap.op_nnnorm_eq_of_bounds + theorem ContinuousLinearMap.op_nnnorm_le_bound' + theorem ContinuousLinearMap.op_nnnorm_le_bound + theorem ContinuousLinearMap.op_nnnorm_le_of_lipschitz + theorem ContinuousLinearMap.op_nnnorm_le_of_unit_nnnorm + theorem ContinuousLinearMap.op_nnnorm_prod + theorem ContinuousLinearMap.op_norm_add_le + theorem ContinuousLinearMap.op_norm_comp_le' + theorem ContinuousLinearMap.op_norm_comp_le + theorem ContinuousLinearMap.op_norm_comp_linearIsometryEquiv + theorem ContinuousLinearMap.op_norm_eq_of_bounds + theorem ContinuousLinearMap.op_norm_ext + theorem ContinuousLinearMap.op_norm_extend_le + theorem ContinuousLinearMap.op_norm_flip + theorem ContinuousLinearMap.op_norm_le_bound' + theorem ContinuousLinearMap.op_norm_le_bound + theorem ContinuousLinearMap.op_norm_le_bound₂ + theorem ContinuousLinearMap.op_norm_le_of_ball + theorem ContinuousLinearMap.op_norm_le_of_lipschitz + theorem ContinuousLinearMap.op_norm_le_of_nhds_zero + theorem ContinuousLinearMap.op_norm_le_of_shell' + theorem ContinuousLinearMap.op_norm_le_of_shell + theorem ContinuousLinearMap.op_norm_le_of_unit_norm + theorem ContinuousLinearMap.op_norm_lsmul + theorem ContinuousLinearMap.op_norm_lsmul_apply_le + theorem ContinuousLinearMap.op_norm_lsmul_le + theorem ContinuousLinearMap.op_norm_mul + theorem ContinuousLinearMap.op_norm_mulLeftRight_apply_apply_le + theorem ContinuousLinearMap.op_norm_mulLeftRight_apply_le + theorem ContinuousLinearMap.op_norm_mulLeftRight_le + theorem ContinuousLinearMap.op_norm_mul_apply + theorem ContinuousLinearMap.op_norm_mul_apply_le + theorem ContinuousLinearMap.op_norm_mul_le + theorem ContinuousLinearMap.op_norm_neg + theorem ContinuousLinearMap.op_norm_nonneg + theorem ContinuousLinearMap.op_norm_prod + theorem ContinuousLinearMap.op_norm_smul_le + theorem ContinuousLinearMap.op_norm_subsingleton + theorem ContinuousLinearMap.op_norm_zero + theorem ContinuousLinearMap.op_norm_zero_iff + def ContinuousLinearMap.precompL + def ContinuousLinearMap.precompR + def ContinuousLinearMap.prodMapL + theorem ContinuousLinearMap.prodMapL_apply + def ContinuousLinearMap.prodₗᵢ + theorem ContinuousLinearMap.ratio_le_op_norm + def ContinuousLinearMap.restrictScalarsIsometry + theorem ContinuousLinearMap.restrictScalarsIsometry_toLinearMap + def ContinuousLinearMap.restrictScalarsL + theorem ContinuousLinearMap.sSup_closed_unit_ball_eq_nnnorm + theorem ContinuousLinearMap.sSup_closed_unit_ball_eq_norm + theorem ContinuousLinearMap.sSup_unit_ball_eq_nnnorm + theorem ContinuousLinearMap.sSup_unit_ball_eq_norm + def ContinuousLinearMap.smulRightL + theorem ContinuousLinearMap.tendsto_of_tendsto_pointwise_of_cauchySeq + theorem ContinuousLinearMap.unit_le_op_norm + theorem ContinuousOn.prod_mapL + theorem ContinuousOn.prod_map_equivL + def IsCoercive + theorem LinearIsometry.coe_toSpanSingleton + theorem LinearIsometry.norm_toContinuousLinearMap + theorem LinearIsometry.norm_toContinuousLinearMap_comp + theorem LinearIsometry.norm_toContinuousLinearMap_le + def LinearIsometry.toSpanSingleton + theorem LinearIsometry.toSpanSingleton_apply + theorem LinearMap.antilipschitz_of_comap_nhds_le + theorem LinearMap.bound_of_ball_bound + theorem LinearMap.bound_of_shell + theorem LinearMap.mkContinuous_norm_le' + theorem LinearMap.mkContinuous_norm_le + def LinearMap.mkContinuous₂ + theorem LinearMap.mkContinuous₂_apply + theorem LinearMap.mkContinuous₂_norm_le' + theorem LinearMap.mkContinuous₂_norm_le + theorem SemilinearMapClass.bound_of_continuous + theorem SemilinearMapClass.bound_of_shell_semi_normed + theorem Submodule.norm_subtypeL + theorem Submodule.norm_subtypeL_le + theorem norm_image_of_norm_zero Modified Mathlib/Topology/Algebra/Module/Basic.lean Modified Mathlib/Topology/Algebra/Module/StrongTopology.lean 2023-05-17 17:03:22 d995a93 feat: port Algebra.DirectSum.Algebra (#4049) Deletes a section that was always content-free, as well as a reference to code that was removed in leanprover-community/mathlib#10127. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/DirectSum/Algebra.lean + theorem DirectSum.algHom_ext' + theorem DirectSum.algHom_ext + theorem DirectSum.algebraMap_apply + theorem DirectSum.algebraMap_toAddMonoid_hom + def DirectSum.toAlgebra Modified Mathlib/Algebra/DirectSum/Basic.lean 2023-05-17 16:14:32 48c72e8 feat: more simp lemmas about streams (#3929) This marks many existing lemmas for `Stream'` as simp, and adds a few new ones. Notably, I've removed the simp attribute from `take_succ` because that lemma can result in huge goal states (since it duplicates the stream). ESTIMATED CHANGES Modified Mathlib/Data/Seq/Computation.lean Modified Mathlib/Data/Seq/Seq.lean Modified Mathlib/Data/Stream/Defs.lean +/- def Stream'.drop - def Stream'.head +/- def Stream'.tail - def Stream'.unfolds Modified Mathlib/Data/Stream/Init.lean + theorem Stream'.concat_take_nth +/- theorem Stream'.cycle_singleton + theorem Stream'.dropLast_take +/- theorem Stream'.drop_drop + theorem Stream'.drop_tail' + theorem Stream'.drop_zero + theorem Stream'.get?_take +/- theorem Stream'.get?_take_succ +/- theorem Stream'.head_drop + theorem Stream'.nth_succ_iterate' + theorem Stream'.nth_tail + theorem Stream'.tail_drop' +/- theorem Stream'.tail_drop +/- theorem Stream'.tail_map + theorem Stream'.take_succ' + theorem Stream'.take_succ_cons + theorem Stream'.take_take 2023-05-17 13:57:47 3d49f21 chore: some simpNF cleanaup after #3414 (#4033) ESTIMATED CHANGES Modified Mathlib/Data/Finset/Pointwise.lean Modified Mathlib/LinearAlgebra/Isomorphisms.lean - theorem LinearMap.asFun_coe Modified Mathlib/RingTheory/Ideal/QuotientOperations.lean 2023-05-17 12:51:57 674cdb1 chore: whitespace changes remaining after merging lean#2074 workarounds (#4032) ESTIMATED CHANGES Modified Mathlib/Algebra/Star/SelfAdjoint.lean Modified Mathlib/LinearAlgebra/AffineSpace/AffineMap.lean Modified Mathlib/LinearAlgebra/Projection.lean Modified Mathlib/LinearAlgebra/Quotient.lean Modified Mathlib/RingTheory/Ideal/Operations.lean Modified Mathlib/RingTheory/Ideal/QuotientOperations.lean Modified Mathlib/RingTheory/QuotientNoetherian.lean 2023-05-17 12:51:56 ce333e2 feat: port Combinatorics.SimpleGraph.Finsubgraph (#4010) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Combinatorics/SimpleGraph/Finsubgraph.lean + def SimpleGraph.FinsubgraphHom.restrict + def SimpleGraph.finsubgraphHomFunctor + def SimpleGraph.finsubgraphOfAdj + theorem SimpleGraph.nonempty_hom_of_forall_finite_subgraph_hom + def SimpleGraph.singletonFinsubgraph + theorem SimpleGraph.singletonFinsubgraph_le_adj_left + theorem SimpleGraph.singletonFinsubgraph_le_adj_right 2023-05-17 12:51:55 13d2e52 feat: port Algebra.Homology.QuasiIso (#3969) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Homology/QuasiIso.lean + theorem CategoryTheory.Functor.quasiIso_of_map_quasiIso + theorem HomologicalComplex.Hom.fromSingle₀KernelAtZeroIso_inv_eq + theorem HomologicalComplex.Hom.from_single₀_exact_at_succ + theorem HomologicalComplex.Hom.from_single₀_exact_f_d_at_zero + theorem HomologicalComplex.Hom.from_single₀_mono_at_zero + theorem HomologicalComplex.Hom.toSingle₀CokernelAtZeroIso_hom_eq + theorem HomologicalComplex.Hom.to_single₀_epi_at_zero + theorem HomologicalComplex.Hom.to_single₀_exact_at_succ + theorem HomologicalComplex.Hom.to_single₀_exact_d_f_at_zero + theorem HomotopyEquiv.toQuasiIso + theorem HomotopyEquiv.toQuasiIso_inv + theorem quasiIso_of_comp_left + theorem quasiIso_of_comp_right 2023-05-17 12:05:30 f513eb6 chore: bump dependencies (#4012) This just bumps the Std dependency, to get access to Mario's new "Try this:" implementation. ESTIMATED CHANGES Modified Mathlib/Data/Char.lean - theorem String.csize_pos Modified Mathlib/Data/List/Infix.lean - theorem List.drop_sublist - theorem List.drop_subset - theorem List.drop_suffix - theorem List.eq_nil_of_infix_nil - theorem List.infix_append' - theorem List.infix_append - theorem List.infix_concat - theorem List.infix_cons - theorem List.infix_cons_iff - theorem List.infix_iff_prefix_suffix - theorem List.infix_nil_iff - theorem List.infix_of_mem_join - theorem List.infix_refl - theorem List.isInfix.filter - theorem List.isInfix.length_le - theorem List.isInfix.trans - theorem List.isPrefix.filter - theorem List.isPrefix.isInfix - theorem List.isPrefix.length_le - theorem List.isPrefix.trans - theorem List.isSuffix.filter - theorem List.isSuffix.isInfix - theorem List.isSuffix.length_le - theorem List.isSuffix.trans - theorem List.mem_of_mem_take - theorem List.nil_infix - theorem List.nil_prefix - theorem List.nil_suffix - theorem List.prefix_append - theorem List.prefix_append_right_inj - theorem List.prefix_cons_inj - theorem List.prefix_nil_iff - theorem List.prefix_of_prefix_length_le - theorem List.prefix_or_prefix_of_prefix - theorem List.prefix_refl - theorem List.reverse_infix - theorem List.reverse_prefix - theorem List.reverse_suffix - theorem List.suffix_append - theorem List.suffix_cons - theorem List.suffix_cons_iff - theorem List.suffix_nil_iff - theorem List.suffix_of_suffix_length_le - theorem List.suffix_or_suffix_of_suffix - theorem List.suffix_refl - theorem List.take_prefix - theorem List.take_sublist - theorem List.take_subset Modified Mathlib/Data/Nat/Order/Basic.lean - theorem Nat.add_pos_left - theorem Nat.add_pos_right Modified Mathlib/Data/String/Basic.lean - theorem String.Iterator.hasNext.cons_add_csize - theorem String.get.cons_add_csize + theorem String.length_data - theorem String.length_toList - theorem String.ltb.cons_add_csize + theorem String.ltb_cons_addChar - theorem String.popn_empty +/- theorem String.toList_nonempty - theorem String.toList_singleton - theorem String.utf8GetAux.add_right_cancel Modified Mathlib/Data/String/Defs.lean - def String.popn Modified Mathlib/Tactic/LibrarySearch.lean Modified Mathlib/Tactic/TryThis.lean +/- def addHaveSuggestion - def addRefineSuggestion +/- def addRewriteSuggestion Modified lake-manifest.json Modified test/matrix.lean 2023-05-17 11:25:45 8886682 feat: port Analysis.SpecialFunctions.Trigonometric.Angle (#4040) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/SpecialFunctions/Trigonometric/Angle.lean + theorem ContinuousOn.angle_sign_comp + theorem Real.Angle.abs_cos_eq_abs_sin_of_two_nsmul_add_two_nsmul_eq_pi + theorem Real.Angle.abs_cos_eq_abs_sin_of_two_zsmul_add_two_zsmul_eq_pi + theorem Real.Angle.abs_cos_eq_of_two_nsmul_eq + theorem Real.Angle.abs_cos_eq_of_two_zsmul_eq + theorem Real.Angle.abs_sin_eq_of_two_nsmul_eq + theorem Real.Angle.abs_sin_eq_of_two_zsmul_eq + theorem Real.Angle.abs_toReal_coe_eq_self_iff + theorem Real.Angle.abs_toReal_eq_pi_div_two_iff + theorem Real.Angle.abs_toReal_le_pi + theorem Real.Angle.abs_toReal_neg_coe_eq_self_iff + theorem Real.Angle.angle_eq_iff_two_pi_dvd_sub + def Real.Angle.coeHom + theorem Real.Angle.coe_abs_toReal_of_sign_nonneg + theorem Real.Angle.coe_add + theorem Real.Angle.coe_coeHom + theorem Real.Angle.coe_int_mul_eq_zsmul + theorem Real.Angle.coe_nat_mul_eq_nsmul + theorem Real.Angle.coe_neg + theorem Real.Angle.coe_nsmul + theorem Real.Angle.coe_pi_add_coe_pi + theorem Real.Angle.coe_sub + theorem Real.Angle.coe_toIcoMod + theorem Real.Angle.coe_toIocMod + theorem Real.Angle.coe_toReal + theorem Real.Angle.coe_two_pi + theorem Real.Angle.coe_zero + theorem Real.Angle.coe_zsmul + theorem Real.Angle.continuousAt_sign + theorem Real.Angle.continuous_coe + theorem Real.Angle.continuous_cos + theorem Real.Angle.continuous_sin + def Real.Angle.cos + theorem Real.Angle.cos_add + theorem Real.Angle.cos_add_pi + theorem Real.Angle.cos_add_pi_div_two + theorem Real.Angle.cos_antiperiodic + theorem Real.Angle.cos_coe + theorem Real.Angle.cos_coe_pi + theorem Real.Angle.cos_eq_iff_coe_eq_or_eq_neg + theorem Real.Angle.cos_eq_iff_eq_or_eq_neg + theorem Real.Angle.cos_eq_real_cos_iff_eq_or_eq_neg + theorem Real.Angle.cos_eq_zero_iff + theorem Real.Angle.cos_neg + theorem Real.Angle.cos_neg_iff_pi_div_two_lt_abs_toReal + theorem Real.Angle.cos_nonneg_iff_abs_toReal_le_pi_div_two + theorem Real.Angle.cos_pi_div_two_sub + theorem Real.Angle.cos_pos_iff_abs_toReal_lt_pi_div_two + theorem Real.Angle.cos_sin_inj + theorem Real.Angle.cos_sq_add_sin_sq + theorem Real.Angle.cos_sub_pi + theorem Real.Angle.cos_sub_pi_div_two + theorem Real.Angle.cos_toReal + theorem Real.Angle.cos_zero + theorem Real.Angle.eq_iff_abs_toReal_eq_of_sign_eq + theorem Real.Angle.eq_iff_sign_eq_and_abs_toReal_eq + theorem Real.Angle.eq_neg_self_iff + theorem Real.Angle.ne_neg_self_iff + theorem Real.Angle.neg_coe_abs_toReal_of_sign_nonpos + theorem Real.Angle.neg_coe_pi + theorem Real.Angle.neg_eq_self_iff + theorem Real.Angle.neg_ne_self_iff + theorem Real.Angle.neg_pi_div_two_ne_zero + theorem Real.Angle.neg_pi_lt_toReal + theorem Real.Angle.nsmul_eq_iff + theorem Real.Angle.nsmul_toReal_eq_mul + theorem Real.Angle.pi_div_two_ne_zero + theorem Real.Angle.pi_ne_zero + def Real.Angle.sign + theorem Real.Angle.sign_add_pi + theorem Real.Angle.sign_antiperiodic + theorem Real.Angle.sign_coe_neg_pi_div_two + theorem Real.Angle.sign_coe_nonneg_of_nonneg_of_le_pi + theorem Real.Angle.sign_coe_pi + theorem Real.Angle.sign_coe_pi_div_two + theorem Real.Angle.sign_eq_of_continuousOn + theorem Real.Angle.sign_eq_zero_iff + theorem Real.Angle.sign_ne_zero_iff + theorem Real.Angle.sign_neg + theorem Real.Angle.sign_neg_coe_nonpos_of_nonneg_of_le_pi + theorem Real.Angle.sign_pi_add + theorem Real.Angle.sign_pi_sub + theorem Real.Angle.sign_sub_pi + theorem Real.Angle.sign_toReal + theorem Real.Angle.sign_two_nsmul_eq_sign_iff + theorem Real.Angle.sign_two_zsmul_eq_sign_iff + theorem Real.Angle.sign_zero + def Real.Angle.sin + theorem Real.Angle.sin_add + theorem Real.Angle.sin_add_pi + theorem Real.Angle.sin_add_pi_div_two + theorem Real.Angle.sin_antiperiodic + theorem Real.Angle.sin_coe + theorem Real.Angle.sin_coe_pi + theorem Real.Angle.sin_eq_iff_coe_eq_or_add_eq_pi + theorem Real.Angle.sin_eq_iff_eq_or_add_eq_pi + theorem Real.Angle.sin_eq_real_sin_iff_eq_or_add_eq_pi + theorem Real.Angle.sin_eq_zero_iff + theorem Real.Angle.sin_ne_zero_iff + theorem Real.Angle.sin_neg + theorem Real.Angle.sin_pi_div_two_sub + theorem Real.Angle.sin_sub_pi + theorem Real.Angle.sin_sub_pi_div_two + theorem Real.Angle.sin_toReal + theorem Real.Angle.sin_zero + theorem Real.Angle.sub_coe_pi_eq_add_coe_pi + def Real.Angle.tan + theorem Real.Angle.tan_add_pi + theorem Real.Angle.tan_coe + theorem Real.Angle.tan_coe_pi + theorem Real.Angle.tan_eq_inv_of_two_nsmul_add_two_nsmul_eq_pi + theorem Real.Angle.tan_eq_inv_of_two_zsmul_add_two_zsmul_eq_pi + theorem Real.Angle.tan_eq_of_two_nsmul_eq + theorem Real.Angle.tan_eq_of_two_zsmul_eq + theorem Real.Angle.tan_eq_sin_div_cos + theorem Real.Angle.tan_periodic + theorem Real.Angle.tan_sub_pi + theorem Real.Angle.tan_toReal + theorem Real.Angle.tan_zero + theorem Real.Angle.toIocMod_toReal + def Real.Angle.toReal + theorem Real.Angle.toReal_coe + theorem Real.Angle.toReal_coe_eq_self_add_two_pi_iff + theorem Real.Angle.toReal_coe_eq_self_iff + theorem Real.Angle.toReal_coe_eq_self_iff_mem_Ioc + theorem Real.Angle.toReal_coe_eq_self_sub_two_mul_int_mul_pi_iff + theorem Real.Angle.toReal_coe_eq_self_sub_two_pi_iff + theorem Real.Angle.toReal_eq_neg_pi_div_two_iff + theorem Real.Angle.toReal_eq_pi_div_two_iff + theorem Real.Angle.toReal_eq_pi_iff + theorem Real.Angle.toReal_eq_zero_iff + theorem Real.Angle.toReal_inj + theorem Real.Angle.toReal_injective + theorem Real.Angle.toReal_le_pi + theorem Real.Angle.toReal_mem_Ioc + theorem Real.Angle.toReal_neg_iff_sign_neg + theorem Real.Angle.toReal_neg_pi_div_two + theorem Real.Angle.toReal_nonneg_iff_sign_nonneg + theorem Real.Angle.toReal_pi + theorem Real.Angle.toReal_pi_div_two + theorem Real.Angle.toReal_zero + theorem Real.Angle.two_nsmul_coe_div_two + theorem Real.Angle.two_nsmul_coe_pi + theorem Real.Angle.two_nsmul_eq_iff + theorem Real.Angle.two_nsmul_eq_pi_iff + theorem Real.Angle.two_nsmul_eq_zero_iff + theorem Real.Angle.two_nsmul_ne_zero_iff + theorem Real.Angle.two_nsmul_neg_pi_div_two + theorem Real.Angle.two_nsmul_toReal_eq_two_mul + theorem Real.Angle.two_nsmul_toReal_eq_two_mul_add_two_pi + theorem Real.Angle.two_nsmul_toReal_eq_two_mul_sub_two_pi + theorem Real.Angle.two_zsmul_coe_div_two + theorem Real.Angle.two_zsmul_coe_pi + theorem Real.Angle.two_zsmul_eq_iff + theorem Real.Angle.two_zsmul_eq_pi_iff + theorem Real.Angle.two_zsmul_eq_zero_iff + theorem Real.Angle.two_zsmul_ne_zero_iff + theorem Real.Angle.two_zsmul_neg_pi_div_two + theorem Real.Angle.two_zsmul_toReal_eq_two_mul + theorem Real.Angle.two_zsmul_toReal_eq_two_mul_add_two_pi + theorem Real.Angle.two_zsmul_toReal_eq_two_mul_sub_two_pi + theorem Real.Angle.zsmul_eq_iff + def Real.Angle Modified Mathlib/Analysis/SpecialFunctions/Trigonometric/Basic.lean + theorem Real.tan_pi 2023-05-17 09:15:14 d25807f feat: port Combinatorics.SimpleGraph.Ends.Properties (#4034) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Combinatorics/SimpleGraph/Ends/Properties.lean 2023-05-17 09:03:33 7a9d695 feat: port Analysis.BoxIntegral.Partition.SubboxInduction (#4045) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/BoxIntegral/Partition/SubboxInduction.lean + theorem BoxIntegral.Box.exists_taggedPartition_isHenstock_isSubordinate_homothetic + theorem BoxIntegral.Box.subbox_induction_on + theorem BoxIntegral.Prepartition.distortion_toSubordinate + theorem BoxIntegral.Prepartition.exists_tagged_le_isHenstock_isSubordinate_iUnion_eq + theorem BoxIntegral.Prepartition.iUnion_toSubordinate + theorem BoxIntegral.Prepartition.isHenstock_toSubordinate + theorem BoxIntegral.Prepartition.isPartition_splitCenter + theorem BoxIntegral.Prepartition.isSubordinate_toSubordinate + theorem BoxIntegral.Prepartition.mem_splitCenter + def BoxIntegral.Prepartition.splitCenter + def BoxIntegral.Prepartition.toSubordinate + theorem BoxIntegral.Prepartition.toSubordinate_toPrepartition_le + theorem BoxIntegral.Prepartition.upper_sub_lower_of_mem_splitCenter + theorem BoxIntegral.TaggedPrepartition.distortion_unionComplToSubordinate + theorem BoxIntegral.TaggedPrepartition.iUnion_unionComplToSubordinate_boxes + theorem BoxIntegral.TaggedPrepartition.isPartition_unionComplToSubordinate + def BoxIntegral.TaggedPrepartition.unionComplToSubordinate + theorem BoxIntegral.TaggedPrepartition.unionComplToSubordinate_boxes 2023-05-17 06:40:55 905ac03 feat: port AlgebraicTopology.FundamentalGroupoid.Basic (#3955) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/AlgebraicTopology/FundamentalGroupoid/Basic.lean + theorem FundamentalGroupoid.comp_eq + def FundamentalGroupoid.fromPath + def FundamentalGroupoid.fromTop + def FundamentalGroupoid.fundamentalGroupoidFunctor + theorem FundamentalGroupoid.id_eq_path_refl + theorem FundamentalGroupoid.map_eq + def FundamentalGroupoid.toPath + def FundamentalGroupoid.toTop + def FundamentalGroupoid + theorem Path.Homotopy.continuous_reflTransSymmAux + theorem Path.Homotopy.continuous_transAssocReparamAux + theorem Path.Homotopy.continuous_transReflReparamAux + def Path.Homotopy.reflSymmTrans + def Path.Homotopy.reflTrans + def Path.Homotopy.reflTransSymm + def Path.Homotopy.reflTransSymmAux + theorem Path.Homotopy.reflTransSymmAux_mem_I + def Path.Homotopy.transAssoc + def Path.Homotopy.transAssocReparamAux + theorem Path.Homotopy.transAssocReparamAux_mem_I + theorem Path.Homotopy.transAssocReparamAux_one + theorem Path.Homotopy.transAssocReparamAux_zero + def Path.Homotopy.transRefl + def Path.Homotopy.transReflReparamAux + theorem Path.Homotopy.transReflReparamAux_mem_I + theorem Path.Homotopy.transReflReparamAux_one + theorem Path.Homotopy.transReflReparamAux_zero + theorem Path.Homotopy.trans_assoc_reparam + theorem Path.Homotopy.trans_refl_reparam 2023-05-17 06:40:54 f0287f3 feat: port Topology.MetricSpace.PartitionOfUnity (#3883) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Topology/MetricSpace/PartitionOfUnity.lean + theorem EMetric.eventually_nhds_zero_forall_closedBall_subset + theorem EMetric.exists_continuous_eNNReal_forall_closedBall_subset + theorem EMetric.exists_continuous_nNReal_forall_closedBall_subset + theorem EMetric.exists_continuous_real_forall_closedBall_subset + theorem EMetric.exists_forall_closedBall_subset_aux₁ + theorem EMetric.exists_forall_closedBall_subset_aux₂ + theorem Metric.exists_continuous_nNReal_forall_closedBall_subset + theorem Metric.exists_continuous_real_forall_closedBall_subset 2023-05-17 06:40:53 4e3c151 feat: port Algebra.DirectSum.Ring (#1968) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/DirectSum/Ring.lean + def DirectSum.gMulHom + def DirectSum.liftRingHom + theorem DirectSum.list_prod_ofFn_of_eq_dProd + def DirectSum.mulHom + theorem DirectSum.mulHom_apply + theorem DirectSum.mulHom_of_of + theorem DirectSum.mul_eq_dfinsupp_sum + theorem DirectSum.mul_eq_sum_support_ghas_mul + theorem DirectSum.ofIntCast + theorem DirectSum.ofList_dProd + theorem DirectSum.ofNatCast + theorem DirectSum.ofPow + def DirectSum.ofZeroRingHom + theorem DirectSum.of_eq_of_gradedMonoid_eq + theorem DirectSum.of_mul_of + theorem DirectSum.of_zero_mul + theorem DirectSum.of_zero_one + theorem DirectSum.of_zero_pow + theorem DirectSum.of_zero_smul + theorem DirectSum.ringHom_ext' + theorem DirectSum.ringHom_ext + def DirectSum.toSemiring + theorem DirectSum.toSemiring_coe_addMonoidHom + theorem DirectSum.toSemiring_of 2023-05-17 06:12:40 1ab36e4 feat: port CategoryTheory.Preadditive.EndoFunctor (#4042) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/CategoryTheory/Endofunctor/Algebra.lean Added Mathlib/CategoryTheory/Preadditive/EndoFunctor.lean 2023-05-17 06:12:39 882c98b feat: port Analysis.SpecialFunctions.Trigonometric.Basic (#4015) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/SpecialFunctions/Trigonometric/Basic.lean + theorem Complex.abs_exp_mul_exp_add_exp_neg_le_of_abs_im_le + theorem Complex.continuousOn_cos + theorem Complex.continuousOn_sin + theorem Complex.continuous_cos + theorem Complex.continuous_cosh + theorem Complex.continuous_sin + theorem Complex.continuous_sinh + theorem Complex.cos_add_int_mul_two_pi + theorem Complex.cos_add_nat_mul_two_pi + theorem Complex.cos_add_pi + theorem Complex.cos_add_pi_div_two + theorem Complex.cos_add_two_pi + theorem Complex.cos_antiperiodic + theorem Complex.cos_int_mul_two_pi + theorem Complex.cos_int_mul_two_pi_add_pi + theorem Complex.cos_int_mul_two_pi_sub + theorem Complex.cos_int_mul_two_pi_sub_pi + theorem Complex.cos_nat_mul_two_pi + theorem Complex.cos_nat_mul_two_pi_add_pi + theorem Complex.cos_nat_mul_two_pi_sub + theorem Complex.cos_nat_mul_two_pi_sub_pi + theorem Complex.cos_periodic + theorem Complex.cos_pi + theorem Complex.cos_pi_div_two + theorem Complex.cos_pi_div_two_sub + theorem Complex.cos_pi_sub + theorem Complex.cos_sub_int_mul_two_pi + theorem Complex.cos_sub_nat_mul_two_pi + theorem Complex.cos_sub_pi + theorem Complex.cos_sub_pi_div_two + theorem Complex.cos_sub_two_pi + theorem Complex.cos_two_pi + theorem Complex.cos_two_pi_sub + theorem Complex.exp_add_pi_mul_I + theorem Complex.exp_antiperiodic + theorem Complex.exp_int_mul_two_pi_mul_I + theorem Complex.exp_mul_I_antiperiodic + theorem Complex.exp_mul_I_periodic + theorem Complex.exp_nat_mul_two_pi_mul_I + theorem Complex.exp_periodic + theorem Complex.exp_pi_mul_I + theorem Complex.exp_sub_pi_mul_I + theorem Complex.exp_two_pi_mul_I + theorem Complex.sin_add_int_mul_two_pi + theorem Complex.sin_add_nat_mul_two_pi + theorem Complex.sin_add_pi + theorem Complex.sin_add_pi_div_two + theorem Complex.sin_add_two_pi + theorem Complex.sin_antiperiodic + theorem Complex.sin_eq_zero_iff_cos_eq + theorem Complex.sin_int_mul_pi + theorem Complex.sin_int_mul_two_pi_sub + theorem Complex.sin_nat_mul_pi + theorem Complex.sin_nat_mul_two_pi_sub + theorem Complex.sin_periodic + theorem Complex.sin_pi + theorem Complex.sin_pi_div_two + theorem Complex.sin_pi_div_two_sub + theorem Complex.sin_pi_sub + theorem Complex.sin_sub_int_mul_two_pi + theorem Complex.sin_sub_nat_mul_two_pi + theorem Complex.sin_sub_pi + theorem Complex.sin_sub_pi_div_two + theorem Complex.sin_sub_two_pi + theorem Complex.sin_two_pi + theorem Complex.sin_two_pi_sub + theorem Complex.tan_add_int_mul_pi + theorem Complex.tan_add_nat_mul_pi + theorem Complex.tan_add_pi + theorem Complex.tan_int_mul_pi + theorem Complex.tan_int_mul_pi_sub + theorem Complex.tan_nat_mul_pi + theorem Complex.tan_nat_mul_pi_sub + theorem Complex.tan_periodic + theorem Complex.tan_pi_div_two_sub + theorem Complex.tan_pi_sub + theorem Complex.tan_sub_int_mul_pi + theorem Complex.tan_sub_nat_mul_pi + theorem Complex.tan_sub_pi + theorem NNReal.coe_real_pi + theorem NNReal.pi_ne_zero + theorem NNReal.pi_pos + theorem Real.bijOn_cos + theorem Real.bijOn_sin + theorem Real.coe_sinOrderIso_apply + theorem Real.continuousOn_cos + theorem Real.continuousOn_sin + theorem Real.continuous_cos + theorem Real.continuous_cosh + theorem Real.continuous_sin + theorem Real.continuous_sinh + theorem Real.cos_add_int_mul_two_pi + theorem Real.cos_add_nat_mul_two_pi + theorem Real.cos_add_pi + theorem Real.cos_add_pi_div_two + theorem Real.cos_add_two_pi + theorem Real.cos_antiperiodic + theorem Real.cos_eq_one_iff + theorem Real.cos_eq_one_iff_of_lt_of_lt + theorem Real.cos_eq_sqrt_one_sub_sin_sq + theorem Real.cos_int_mul_two_pi + theorem Real.cos_int_mul_two_pi_add_pi + theorem Real.cos_int_mul_two_pi_sub + theorem Real.cos_int_mul_two_pi_sub_pi + theorem Real.cos_le_cos_of_nonneg_of_le_pi + theorem Real.cos_lt_cos_of_nonneg_of_le_pi + theorem Real.cos_lt_cos_of_nonneg_of_le_pi_div_two + theorem Real.cos_mem_Icc + theorem Real.cos_nat_mul_two_pi + theorem Real.cos_nat_mul_two_pi_add_pi + theorem Real.cos_nat_mul_two_pi_sub + theorem Real.cos_nat_mul_two_pi_sub_pi + theorem Real.cos_neg_of_pi_div_two_lt_of_lt + theorem Real.cos_nonneg_of_mem_Icc + theorem Real.cos_nonneg_of_neg_pi_div_two_le_of_le + theorem Real.cos_nonpos_of_pi_div_two_le_of_le + theorem Real.cos_periodic + theorem Real.cos_pi + theorem Real.cos_pi_div_eight + theorem Real.cos_pi_div_four + theorem Real.cos_pi_div_six + theorem Real.cos_pi_div_sixteen + theorem Real.cos_pi_div_thirty_two + theorem Real.cos_pi_div_three + theorem Real.cos_pi_div_two + theorem Real.cos_pi_div_two_sub + theorem Real.cos_pi_over_two_pow + theorem Real.cos_pi_sub + theorem Real.cos_pos_of_mem_Ioo + theorem Real.cos_sub_int_mul_two_pi + theorem Real.cos_sub_nat_mul_two_pi + theorem Real.cos_sub_pi + theorem Real.cos_sub_pi_div_two + theorem Real.cos_sub_two_pi + theorem Real.cos_two_pi + theorem Real.cos_two_pi_sub + theorem Real.exists_cos_eq_zero + theorem Real.injOn_cos + theorem Real.injOn_sin + theorem Real.injOn_tan + theorem Real.mapsTo_cos + theorem Real.mapsTo_sin + theorem Real.one_le_pi_div_two + theorem Real.pi_div_two_le_two + theorem Real.pi_div_two_pos + theorem Real.pi_le_four + theorem Real.pi_ne_zero + theorem Real.pi_pos + theorem Real.range_cos + theorem Real.range_cos_infinite + theorem Real.range_sin + theorem Real.range_sin_infinite + def Real.sinOrderIso + theorem Real.sinOrderIso_apply + theorem Real.sin_add_int_mul_two_pi + theorem Real.sin_add_nat_mul_two_pi + theorem Real.sin_add_pi + theorem Real.sin_add_pi_div_two + theorem Real.sin_add_two_pi + theorem Real.sin_antiperiodic + theorem Real.sin_eq_sqrt_one_sub_cos_sq + theorem Real.sin_eq_zero_iff + theorem Real.sin_eq_zero_iff_cos_eq + theorem Real.sin_eq_zero_iff_of_lt_of_lt + theorem Real.sin_int_mul_pi + theorem Real.sin_int_mul_two_pi_sub + theorem Real.sin_le_sin_of_le_of_le_pi_div_two + theorem Real.sin_lt_sin_of_lt_of_le_pi_div_two + theorem Real.sin_mem_Icc + theorem Real.sin_nat_mul_pi + theorem Real.sin_nat_mul_two_pi_sub + theorem Real.sin_ne_zero_iff + theorem Real.sin_neg_of_neg_of_neg_pi_lt + theorem Real.sin_nonneg_of_mem_Icc + theorem Real.sin_nonneg_of_nonneg_of_le_pi + theorem Real.sin_nonpos_of_nonnpos_of_neg_pi_le + theorem Real.sin_periodic + theorem Real.sin_pi + theorem Real.sin_pi_div_eight + theorem Real.sin_pi_div_four + theorem Real.sin_pi_div_six + theorem Real.sin_pi_div_sixteen + theorem Real.sin_pi_div_thirty_two + theorem Real.sin_pi_div_three + theorem Real.sin_pi_div_two + theorem Real.sin_pi_div_two_sub + theorem Real.sin_pi_over_two_pow_succ + theorem Real.sin_pi_sub + theorem Real.sin_pos_of_mem_Ioo + theorem Real.sin_pos_of_pos_of_lt_pi + theorem Real.sin_sq_pi_over_two_pow + theorem Real.sin_sq_pi_over_two_pow_succ + theorem Real.sin_sub_int_mul_two_pi + theorem Real.sin_sub_nat_mul_two_pi + theorem Real.sin_sub_pi + theorem Real.sin_sub_pi_div_two + theorem Real.sin_sub_two_pi + theorem Real.sin_two_pi + theorem Real.sin_two_pi_sub + theorem Real.sq_cos_pi_div_six + theorem Real.sq_sin_pi_div_three + theorem Real.sqrtTwoAddSeries_lt_two + theorem Real.sqrtTwoAddSeries_monotone_left + theorem Real.sqrtTwoAddSeries_nonneg + theorem Real.sqrtTwoAddSeries_one + theorem Real.sqrtTwoAddSeries_succ + theorem Real.sqrtTwoAddSeries_two + theorem Real.sqrtTwoAddSeries_zero + theorem Real.sqrtTwoAddSeries_zero_nonneg + theorem Real.strictAntiOn_cos + theorem Real.strictMonoOn_sin + theorem Real.strictMonoOn_tan + theorem Real.surjOn_cos + theorem Real.surjOn_sin + theorem Real.tan_add_int_mul_pi + theorem Real.tan_add_nat_mul_pi + theorem Real.tan_add_pi + theorem Real.tan_inj_of_lt_of_lt_pi_div_two + theorem Real.tan_int_mul_pi + theorem Real.tan_int_mul_pi_sub + theorem Real.tan_lt_tan_of_lt_of_lt_pi_div_two + theorem Real.tan_lt_tan_of_nonneg_of_lt_pi_div_two + theorem Real.tan_nat_mul_pi + theorem Real.tan_nat_mul_pi_sub + theorem Real.tan_neg_of_neg_of_pi_div_two_lt + theorem Real.tan_nonneg_of_nonneg_of_le_pi_div_two + theorem Real.tan_nonpos_of_nonpos_of_neg_pi_div_two_le + theorem Real.tan_periodic + theorem Real.tan_pi_div_four + theorem Real.tan_pi_div_two + theorem Real.tan_pi_div_two_sub + theorem Real.tan_pi_sub + theorem Real.tan_pos_of_pos_of_lt_pi_div_two + theorem Real.tan_sub_int_mul_pi + theorem Real.tan_sub_nat_mul_pi + theorem Real.tan_sub_pi + theorem Real.tendsto_cos_neg_pi_div_two + theorem Real.tendsto_cos_pi_div_two + theorem Real.tendsto_sin_neg_pi_div_two + theorem Real.tendsto_sin_pi_div_two + theorem Real.tendsto_tan_neg_pi_div_two + theorem Real.tendsto_tan_pi_div_two + theorem Real.two_le_pi + theorem Real.two_pi_pos Modified Mathlib/Topology/Algebra/Group/Basic.lean 2023-05-17 06:12:38 4cb84b7 feat: port Algebra.Homology.Opposite (#3998) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Homology/Opposite.lean + def HomologicalComplex.homologyOpDef + def HomologicalComplex.homologyUnopDef + def HomologicalComplex.opCounitIso + def HomologicalComplex.opEquivalence + def HomologicalComplex.opFunctor + def HomologicalComplex.opInverse + def HomologicalComplex.opUnitIso + def HomologicalComplex.unopCounitIso + def HomologicalComplex.unopEquivalence + def HomologicalComplex.unopFunctor + def HomologicalComplex.unopInverse + def HomologicalComplex.unopUnitIso + def homologyOp + def homologyUnop + theorem imageToKernel_op + theorem imageToKernel_unop 2023-05-17 06:12:37 c948d8a feat: port RingTheory.FreeCommRing (#3994) - [x] depends on: #3414 original: #3087 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/RingTheory/FreeCommRing.lean + def FreeCommRing.IsSupported + theorem FreeCommRing.exists_finite_support + theorem FreeCommRing.exists_finset_support + theorem FreeCommRing.hom_ext + theorem FreeCommRing.isSupported_add + theorem FreeCommRing.isSupported_int + theorem FreeCommRing.isSupported_mul + theorem FreeCommRing.isSupported_neg + theorem FreeCommRing.isSupported_of + theorem FreeCommRing.isSupported_one + theorem FreeCommRing.isSupported_sub + theorem FreeCommRing.isSupported_upwards + theorem FreeCommRing.isSupported_zero + def FreeCommRing.lift + theorem FreeCommRing.lift_comp_of + theorem FreeCommRing.lift_of + def FreeCommRing.map + theorem FreeCommRing.map_of + theorem FreeCommRing.map_subtype_val_restriction + def FreeCommRing.of + theorem FreeCommRing.of_injective + def FreeCommRing.restriction + theorem FreeCommRing.restriction_of + def FreeCommRing + def FreeRing.castFreeCommRing + def FreeRing.coeRingHom + theorem FreeRing.coe_eq + def FreeRing.subsingletonEquivFreeCommRing + def FreeRing.toFreeCommRing + def freeCommRingEquivMvPolynomialInt + def freeCommRingPemptyEquivInt + def freeCommRingPunitEquivPolynomialInt + def freeRingPemptyEquivInt + def freeRingPunitEquivPolynomialInt 2023-05-17 05:45:01 44a2ae6 feat: port Analysis.Complex.Circle (#4014) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/Complex/Circle.lean + theorem abs_coe_circle + def circle.ofConjDivSelf + def circle.toUnits + theorem circle.toUnits_apply + def circle + theorem circle_def + theorem coe_div_circle + theorem coe_inv_circle + theorem coe_inv_circle_eq_conj + def expMapCircle + def expMapCircleHom + theorem expMapCircle_add + theorem expMapCircle_apply + theorem expMapCircle_neg + theorem expMapCircle_sub + theorem expMapCircle_zero + theorem mem_circle_iff_abs + theorem mem_circle_iff_normSq + theorem ne_zero_of_mem_circle + theorem normSq_eq_of_mem_circle Modified Mathlib/Analysis/Normed/Field/UnitBall.lean Modified Mathlib/Topology/MetricSpace/Basic.lean 2023-05-16 22:26:48 ced5afa fix: sUnion doc comment typos (#4039) Fixes some doc comment typos added added in #1121. Note that the `sUnion` comment is correct is mathlib3: https://github.com/leanprover-community/mathlib/blob/b76e9f654df09f8a832aeee712511fe5f3e57869/src/data/set/lattice.lean#L72-L74 ESTIMATED CHANGES Modified Mathlib/Data/Set/Lattice.lean 2023-05-16 20:35:58 4d9acdd chore: use variable not variables in test/matrix.lean (#4024) ESTIMATED CHANGES Modified test/matrix.lean 2023-05-16 19:05:44 23f6b15 docs: AddCircle instead of add_circle in docstrings (#4035) ESTIMATED CHANGES Modified Mathlib/Topology/Instances/AddCircle.lean 2023-05-16 19:05:43 1877b12 chore: delete 2074 references (#4030) ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/Bilinear.lean Modified Mathlib/Algebra/Algebra/Hom.lean Modified Mathlib/Algebra/Algebra/Operations.lean Modified Mathlib/Algebra/Algebra/Subalgebra/Basic.lean Modified Mathlib/Algebra/Lie/Basic.lean Modified Mathlib/Algebra/Lie/Subalgebra.lean Modified Mathlib/Algebra/Star/Module.lean Modified Mathlib/Algebra/Star/SelfAdjoint.lean Modified Mathlib/Data/Polynomial/Splits.lean Modified Mathlib/LinearAlgebra/AffineSpace/AffineEquiv.lean Modified Mathlib/LinearAlgebra/AffineSpace/AffineMap.lean Modified Mathlib/LinearAlgebra/AffineSpace/Slope.lean Modified Mathlib/LinearAlgebra/Basis.lean Modified Mathlib/LinearAlgebra/Dfinsupp.lean Modified Mathlib/LinearAlgebra/LinearPMap.lean Modified Mathlib/LinearAlgebra/Prod.lean Modified Mathlib/LinearAlgebra/Projection.lean Modified Mathlib/LinearAlgebra/Quotient.lean Modified Mathlib/LinearAlgebra/QuotientPi.lean Modified Mathlib/LinearAlgebra/Ray.lean Modified Mathlib/RingTheory/Ideal/Basic.lean Modified Mathlib/RingTheory/Ideal/Operations.lean Modified Mathlib/RingTheory/Ideal/QuotientOperations.lean Modified Mathlib/RingTheory/Noetherian.lean Modified Mathlib/RingTheory/QuotientNoetherian.lean Modified Mathlib/Topology/Algebra/UniformMulAction.lean 2023-05-16 18:39:29 c6d1b53 feat: port CategoryTheory.Sites.Subsheaf (#3997) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Sites/Subsheaf.lean + theorem CategoryTheory.GrothendieckTopology.Subpresheaf.eq_sheafify + theorem CategoryTheory.GrothendieckTopology.Subpresheaf.eq_sheafify_iff + theorem CategoryTheory.GrothendieckTopology.Subpresheaf.eq_top_iff_isIso + def CategoryTheory.GrothendieckTopology.Subpresheaf.familyOfElementsOfSection + theorem CategoryTheory.GrothendieckTopology.Subpresheaf.family_of_elements_compatible + def CategoryTheory.GrothendieckTopology.Subpresheaf.homOfLe + theorem CategoryTheory.GrothendieckTopology.Subpresheaf.homOfLe_ι + theorem CategoryTheory.GrothendieckTopology.Subpresheaf.isSheaf_iff + theorem CategoryTheory.GrothendieckTopology.Subpresheaf.le_sheafify + def CategoryTheory.GrothendieckTopology.Subpresheaf.lift + theorem CategoryTheory.GrothendieckTopology.Subpresheaf.lift_ι + theorem CategoryTheory.GrothendieckTopology.Subpresheaf.nat_trans_naturality + def CategoryTheory.GrothendieckTopology.Subpresheaf.sheafify + theorem CategoryTheory.GrothendieckTopology.Subpresheaf.sheafify_isSheaf + theorem CategoryTheory.GrothendieckTopology.Subpresheaf.sheafify_le + theorem CategoryTheory.GrothendieckTopology.Subpresheaf.sheafify_sheafify + def CategoryTheory.GrothendieckTopology.Subpresheaf.sieveOfSection + def CategoryTheory.GrothendieckTopology.Subpresheaf.toPresheaf + theorem CategoryTheory.GrothendieckTopology.Subpresheaf.to_sheafifyLift + theorem CategoryTheory.GrothendieckTopology.Subpresheaf.to_sheafify_lift_unique + def CategoryTheory.GrothendieckTopology.Subpresheaf.ι + structure CategoryTheory.GrothendieckTopology.Subpresheaf + def CategoryTheory.GrothendieckTopology.imageMonoFactorization + def CategoryTheory.GrothendieckTopology.imagePresheaf + theorem CategoryTheory.GrothendieckTopology.imagePresheaf_comp_le + theorem CategoryTheory.GrothendieckTopology.imagePresheaf_id + def CategoryTheory.GrothendieckTopology.imageSheaf + def CategoryTheory.GrothendieckTopology.imageSheafι + def CategoryTheory.GrothendieckTopology.toImagePresheaf + def CategoryTheory.GrothendieckTopology.toImagePresheafSheafify + theorem CategoryTheory.GrothendieckTopology.toImagePresheaf_ι + def CategoryTheory.GrothendieckTopology.toImageSheaf + theorem CategoryTheory.GrothendieckTopology.toImageSheaf_ι + theorem CategoryTheory.GrothendieckTopology.top_subpresheaf_obj 2023-05-16 18:39:26 41d747a feat: port Algebra.Module.LocalizedModule (#3993) - [x] depends on: #3414 ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Module/LocalizedModule.lean + theorem IsLocalizedModule.eq_iff_exists + theorem IsLocalizedModule.eq_zero_iff + theorem IsLocalizedModule.fromLocalizedModule'_add + theorem IsLocalizedModule.fromLocalizedModule'_mk + theorem IsLocalizedModule.fromLocalizedModule'_smul + theorem IsLocalizedModule.fromLocalizedModule.bij + theorem IsLocalizedModule.fromLocalizedModule.inj + theorem IsLocalizedModule.fromLocalizedModule.surj + theorem IsLocalizedModule.fromLocalizedModule_mk + theorem IsLocalizedModule.is_universal + theorem IsLocalizedModule.iso_apply_mk + theorem IsLocalizedModule.iso_symm_apply' + theorem IsLocalizedModule.iso_symm_apply_aux + theorem IsLocalizedModule.iso_symm_comp + theorem IsLocalizedModule.lift_comp + theorem IsLocalizedModule.lift_unique + theorem IsLocalizedModule.mk'_add + theorem IsLocalizedModule.mk'_add_mk' + theorem IsLocalizedModule.mk'_cancel' + theorem IsLocalizedModule.mk'_cancel + theorem IsLocalizedModule.mk'_cancel_left + theorem IsLocalizedModule.mk'_cancel_right + theorem IsLocalizedModule.mk'_eq_iff + theorem IsLocalizedModule.mk'_eq_mk'_iff + theorem IsLocalizedModule.mk'_eq_zero' + theorem IsLocalizedModule.mk'_eq_zero + theorem IsLocalizedModule.mk'_mul_mk' + theorem IsLocalizedModule.mk'_mul_mk'_of_map_mul + theorem IsLocalizedModule.mk'_neg + theorem IsLocalizedModule.mk'_one + theorem IsLocalizedModule.mk'_smul + theorem IsLocalizedModule.mk'_sub + theorem IsLocalizedModule.mk'_sub_mk' + theorem IsLocalizedModule.mk'_surjective + theorem IsLocalizedModule.mk'_zero + theorem IsLocalizedModule.mkOfAlgebra + theorem IsLocalizedModule.mk_eq_mk' + theorem IsLocalizedModule.ringHom_ext + theorem IsLocalizedModule.smul_inj + theorem IsLocalizedModule.smul_injective + theorem IsLocalizedModule.surj + theorem LocalizedModule.algebraMap_mk + def LocalizedModule.divBy + theorem LocalizedModule.divBy_mul_by + theorem LocalizedModule.induction_on + theorem LocalizedModule.induction_on₂ + theorem LocalizedModule.lift'_add + theorem LocalizedModule.lift'_mk + theorem LocalizedModule.lift'_smul + def LocalizedModule.liftOn + theorem LocalizedModule.liftOn_mk + def LocalizedModule.liftOn₂ + theorem LocalizedModule.liftOn₂_mk + theorem LocalizedModule.lift_comp + theorem LocalizedModule.lift_mk + theorem LocalizedModule.lift_unique + def LocalizedModule.mk + def LocalizedModule.mkLinearMap + theorem LocalizedModule.mk_add_mk + theorem LocalizedModule.mk_cancel + theorem LocalizedModule.mk_cancel_common_left + theorem LocalizedModule.mk_cancel_common_right + theorem LocalizedModule.mk_eq + theorem LocalizedModule.mk_mul_mk + theorem LocalizedModule.mk_neg + theorem LocalizedModule.mk_smul_mk + theorem LocalizedModule.mul_by_divBy + theorem LocalizedModule.r.isEquiv + def LocalizedModule.r + theorem LocalizedModule.smul'_mk + theorem LocalizedModule.zero_mk + def LocalizedModule 2023-05-16 18:39:24 4623513 chore: forward-port mathlib#18554 (#3982) Match [#18554](https://github.com/leanprover-community/mathlib/pull/18554) * [`algebra.order.lattice_group`@`db07e6feaf211fe704c1e79ba5f480fd6d218523`..`5dc275ec639221ca4d5f56938eb966f6ad9bc89f`](https://leanprover-community.github.io/mathlib-port-status/file/algebra/order/lattice_group?range=db07e6feaf211fe704c1e79ba5f480fd6d218523..5dc275ec639221ca4d5f56938eb966f6ad9bc89f) * [`analysis.normed.order.lattice`@`17ef379e997badd73e5eabb4d38f11919ab3c4b3`..`5dc275ec639221ca4d5f56938eb966f6ad9bc89f`](https://leanprover-community.github.io/mathlib-port-status/file/analysis/normed/order/lattice?range=17ef379e997badd73e5eabb4d38f11919ab3c4b3..5dc275ec639221ca4d5f56938eb966f6ad9bc89f) ESTIMATED CHANGES Modified Mathlib/Algebra/Order/LatticeGroup.lean + def LatticeOrderedAddCommGroup.IsSolid + theorem LatticeOrderedAddCommGroup.isSolid_solidClosure + def LatticeOrderedAddCommGroup.solidClosure + theorem LatticeOrderedAddCommGroup.solidClosure_min Modified Mathlib/Analysis/Normed/Order/Lattice.lean + theorem LatticeOrderedAddCommGroup.isSolid_ball + theorem norm_le_norm_of_abs_le_abs - theorem solid 2023-05-16 15:19:56 097206b chore: remove a simpNF workaround (#4031) ESTIMATED CHANGES Modified Mathlib/Data/IsROrC/Basic.lean 2023-05-16 15:19:55 ecb752a chore: cleanup various notes about etaExperiment (#4029) ESTIMATED CHANGES Modified Mathlib/Algebra/DirectSum/Finsupp.lean +/- def finsuppLEquivDirectSum Modified Mathlib/RingTheory/Finiteness.lean Modified Mathlib/RingTheory/Ideal/Prod.lean Modified Mathlib/RingTheory/QuotientNilpotent.lean Modified Mathlib/Topology/Algebra/Ring/Ideal.lean 2023-05-16 15:19:54 f44ff70 chore: minor cleanup after eta's return (#4028) ESTIMATED CHANGES Modified Mathlib/Algebra/Star/Subalgebra.lean Modified Mathlib/LinearAlgebra/FreeModule/Finite/Rank.lean Modified Mathlib/LinearAlgebra/Matrix/Determinant.lean 2023-05-16 15:19:53 95a9188 feat: port Analysis.Normed.Group.AddCircle (#4023) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/Normed/Group/AddCircle.lean + theorem AddCircle.closedBall_eq_univ_of_half_period_le + theorem AddCircle.coe_real_preimage_closedBall_eq_iUnion + theorem AddCircle.coe_real_preimage_closedBall_inter_eq + theorem AddCircle.coe_real_preimage_closedBall_period_zero + theorem AddCircle.exists_norm_eq_of_isOfFinAddOrder + theorem AddCircle.le_add_order_smul_norm_of_isOfFinAddOrder + theorem AddCircle.norm_coe_eq_abs_iff + theorem AddCircle.norm_coe_mul + theorem AddCircle.norm_div_nat_cast + theorem AddCircle.norm_eq' + theorem AddCircle.norm_eq + theorem AddCircle.norm_eq_of_zero + theorem AddCircle.norm_half_period_eq + theorem AddCircle.norm_le_half_period + theorem AddCircle.norm_neg_period + theorem UnitAddCircle.norm_eq 2023-05-16 15:19:51 e93b690 fix: add missing `#align` lines (#4021) ESTIMATED CHANGES Modified Mathlib/Data/String/Defs.lean 2023-05-16 15:19:50 6a969d4 feat: port Analysis.SpecialFunctions.Log.Basic (#4019) Includes some additional declarations and golfs from #4017. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Analysis/SpecialFunctions/Exp.lean + theorem Real.comap_exp_nhds_exp + theorem Real.map_exp_nhds + theorem Real.openEmbedding_exp Added Mathlib/Analysis/SpecialFunctions/Log/Basic.lean + theorem Continuous.log + theorem ContinuousOn.log + theorem Filter.Tendsto.log + theorem Real.abs_log_mul_self_lt + theorem Real.continuousAt_log + theorem Real.continuousAt_log_iff + theorem Real.continuousOn_log + theorem Real.continuous_log' + theorem Real.continuous_log + theorem Real.cosh_log + theorem Real.eq_one_of_pos_of_log_eq_zero + theorem Real.exp_log + theorem Real.exp_log_eq_abs + theorem Real.exp_log_of_neg + theorem Real.isLittleO_log_id_atTop + theorem Real.isLittleO_pow_log_id_atTop + theorem Real.le_exp_log + theorem Real.le_log_iff_exp_le + theorem Real.log_abs + theorem Real.log_div + theorem Real.log_eq_zero + theorem Real.log_exp + theorem Real.log_injOn_pos + theorem Real.log_inv + theorem Real.log_le_iff_le_exp + theorem Real.log_le_log + theorem Real.log_le_sub_one_of_pos + theorem Real.log_lt_iff_lt_exp + theorem Real.log_lt_log + theorem Real.log_lt_log_iff + theorem Real.log_mul + theorem Real.log_nat_eq_sum_factorization + theorem Real.log_ne_zero_of_pos_of_ne_one + theorem Real.log_neg + theorem Real.log_neg_eq_log + theorem Real.log_neg_iff + theorem Real.log_nonneg + theorem Real.log_nonneg_iff + theorem Real.log_nonpos + theorem Real.log_nonpos_iff' + theorem Real.log_nonpos_iff + theorem Real.log_of_ne_zero + theorem Real.log_of_pos + theorem Real.log_one + theorem Real.log_pos + theorem Real.log_pos_iff + theorem Real.log_pow + theorem Real.log_prod + theorem Real.log_sqrt + theorem Real.log_surjective + theorem Real.log_zero + theorem Real.log_zpow + theorem Real.lt_log_iff_exp_lt + theorem Real.range_log + theorem Real.sinh_log + theorem Real.strictAntiOn_log + theorem Real.strictMonoOn_log + theorem Real.surjOn_log' + theorem Real.surjOn_log + theorem Real.tendsto_log_atTop + theorem Real.tendsto_log_comp_add_sub_log + theorem Real.tendsto_log_nat_add_one_sub_log + theorem Real.tendsto_log_nhdsWithin_zero + theorem Real.tendsto_pow_log_div_mul_add_atTop 2023-05-16 15:19:49 0abd4a4 feat: port Analysis.Complex.ReImTopology (#4013) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/Complex/ReImTopology.lean + theorem Complex.closure_preimage_im + theorem Complex.closure_preimage_re + theorem Complex.closure_reProdIm + theorem Complex.closure_setOf_im_lt + theorem Complex.closure_setOf_lt_im + theorem Complex.closure_setOf_lt_re + theorem Complex.closure_setOf_re_lt + theorem Complex.frontier_preimage_im + theorem Complex.frontier_preimage_re + theorem Complex.frontier_reProdIm + theorem Complex.frontier_setOf_im_le + theorem Complex.frontier_setOf_im_lt + theorem Complex.frontier_setOf_le_im + theorem Complex.frontier_setOf_le_re + theorem Complex.frontier_setOf_le_re_and_im_le + theorem Complex.frontier_setOf_le_re_and_le_im + theorem Complex.frontier_setOf_lt_im + theorem Complex.frontier_setOf_lt_re + theorem Complex.frontier_setOf_re_le + theorem Complex.frontier_setOf_re_lt + theorem Complex.interior_preimage_im + theorem Complex.interior_preimage_re + theorem Complex.interior_reProdIm + theorem Complex.interior_setOf_im_le + theorem Complex.interior_setOf_le_im + theorem Complex.interior_setOf_le_re + theorem Complex.interior_setOf_re_le + theorem Complex.isHomeomorphicTrivialFiberBundle_im + theorem Complex.isHomeomorphicTrivialFiberBundle_re + theorem Complex.isOpenMap_im + theorem Complex.isOpenMap_re + theorem Complex.quotientMap_im + theorem Complex.quotientMap_re + theorem IsClosed.reProdIm + theorem IsOpen.reProdIm + theorem Metric.Bounded.reProdIm 2023-05-16 15:19:48 06c43c5 feat: port Topology.Category.Locale (#4011) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Topology/Category/Locale.lean + theorem Locale.coe_of + def Locale.of + def Locale + def topToLocale 2023-05-16 15:19:47 73a6416 feat: port Analysis.BoxIntegral.Partition.Tagged (#3669) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/BoxIntegral/Partition/Tagged.lean + theorem BoxIntegral.Prepartition.IsPartition.biUnionTagged + def BoxIntegral.Prepartition.biUnionTagged + theorem BoxIntegral.Prepartition.distortion_biUnionTagged + theorem BoxIntegral.Prepartition.forall_biUnionTagged + theorem BoxIntegral.Prepartition.iUnion_biUnionTagged + theorem BoxIntegral.Prepartition.mem_biUnionTagged + theorem BoxIntegral.Prepartition.tag_biUnionTagged + theorem BoxIntegral.TaggedPrepartition.IsHenstock.card_filter_tag_eq_le + theorem BoxIntegral.TaggedPrepartition.IsHenstock.disjUnion + def BoxIntegral.TaggedPrepartition.IsHenstock + theorem BoxIntegral.TaggedPrepartition.IsPartition.biUnionPrepartition + theorem BoxIntegral.TaggedPrepartition.IsPartition.infPrepartition + def BoxIntegral.TaggedPrepartition.IsPartition + theorem BoxIntegral.TaggedPrepartition.IsSubordinate.biUnionPrepartition + theorem BoxIntegral.TaggedPrepartition.IsSubordinate.diam_le + theorem BoxIntegral.TaggedPrepartition.IsSubordinate.disjUnion + theorem BoxIntegral.TaggedPrepartition.IsSubordinate.infPrepartition + theorem BoxIntegral.TaggedPrepartition.IsSubordinate.mono' + theorem BoxIntegral.TaggedPrepartition.IsSubordinate.mono + def BoxIntegral.TaggedPrepartition.IsSubordinate + def BoxIntegral.TaggedPrepartition.biUnionPrepartition + def BoxIntegral.TaggedPrepartition.disjUnion + theorem BoxIntegral.TaggedPrepartition.disjUnion_boxes + theorem BoxIntegral.TaggedPrepartition.disjUnion_tag_of_mem_left + theorem BoxIntegral.TaggedPrepartition.disjUnion_tag_of_mem_right + def BoxIntegral.TaggedPrepartition.distortion + theorem BoxIntegral.TaggedPrepartition.distortion_biUnionPrepartition + theorem BoxIntegral.TaggedPrepartition.distortion_disjUnion + theorem BoxIntegral.TaggedPrepartition.distortion_filter_le + theorem BoxIntegral.TaggedPrepartition.distortion_le_iff + theorem BoxIntegral.TaggedPrepartition.distortion_le_of_mem + theorem BoxIntegral.TaggedPrepartition.distortion_of_const + theorem BoxIntegral.TaggedPrepartition.distortion_single + def BoxIntegral.TaggedPrepartition.embedBox + def BoxIntegral.TaggedPrepartition.filter + theorem BoxIntegral.TaggedPrepartition.forall_mem_single + def BoxIntegral.TaggedPrepartition.iUnion + theorem BoxIntegral.TaggedPrepartition.iUnion_def + theorem BoxIntegral.TaggedPrepartition.iUnion_disjUnion + theorem BoxIntegral.TaggedPrepartition.iUnion_filter_not + theorem BoxIntegral.TaggedPrepartition.iUnion_mk + theorem BoxIntegral.TaggedPrepartition.iUnion_single + theorem BoxIntegral.TaggedPrepartition.iUnion_subset + theorem BoxIntegral.TaggedPrepartition.iUnion_toPrepartition + def BoxIntegral.TaggedPrepartition.infPrepartition + theorem BoxIntegral.TaggedPrepartition.infPrepartition_toPrepartition + theorem BoxIntegral.TaggedPrepartition.isHenstock_biUnionTagged + theorem BoxIntegral.TaggedPrepartition.isHenstock_single + theorem BoxIntegral.TaggedPrepartition.isHenstock_single_iff + theorem BoxIntegral.TaggedPrepartition.isPartition_iff_iUnion_eq + theorem BoxIntegral.TaggedPrepartition.isPartition_single + theorem BoxIntegral.TaggedPrepartition.isPartition_single_iff + theorem BoxIntegral.TaggedPrepartition.isSubordinate_biUnionTagged + theorem BoxIntegral.TaggedPrepartition.isSubordinate_single + theorem BoxIntegral.TaggedPrepartition.mem_disjUnion + theorem BoxIntegral.TaggedPrepartition.mem_filter + theorem BoxIntegral.TaggedPrepartition.mem_iUnion + theorem BoxIntegral.TaggedPrepartition.mem_infPrepartition_comm + theorem BoxIntegral.TaggedPrepartition.mem_mk + theorem BoxIntegral.TaggedPrepartition.mem_single + theorem BoxIntegral.TaggedPrepartition.mem_toPrepartition + def BoxIntegral.TaggedPrepartition.single + theorem BoxIntegral.TaggedPrepartition.subset_iUnion + structure BoxIntegral.TaggedPrepartition 2023-05-16 13:10:30 1c09f07 doc: revamp "Using `mathlib4` as a dependency" (#4008) ESTIMATED CHANGES Modified README.md 2023-05-16 13:10:29 3450d09 chore: tidy various files (#4003) ESTIMATED CHANGES Modified Mathlib/Algebra/Category/Ring/Basic.lean Modified Mathlib/Algebra/Ring/BooleanRing.lean Modified Mathlib/Analysis/Normed/Group/Quotient.lean Modified Mathlib/Analysis/Seminorm.lean + def Seminorm.ofSMulLE - def Seminorm.ofSMulLe Modified Mathlib/CategoryTheory/Preadditive/HomOrthogonal.lean Modified Mathlib/CategoryTheory/Preadditive/Yoneda/Projective.lean + theorem CategoryTheory.Projective.projective_iff_preservesEpimorphisms_preadditiveCoyoneda_obj' - theorem CategoryTheory.Projective.projective_iff_preservesEpimorphisms_preadditive_coyoneda_obj' Modified Mathlib/CategoryTheory/Sites/CoverPreserving.lean Modified Mathlib/CategoryTheory/Sites/DenseSubsite.lean Modified Mathlib/ModelTheory/Definability.lean Modified Mathlib/ModelTheory/ElementaryMaps.lean Modified Mathlib/ModelTheory/FinitelyGenerated.lean Modified Mathlib/ModelTheory/Order.lean Modified Mathlib/Topology/Category/Top/OpenNhds.lean + def TopologicalSpace.OpenNhds.infLELeft + def TopologicalSpace.OpenNhds.infLERight - def TopologicalSpace.OpenNhds.infLeLeft - def TopologicalSpace.OpenNhds.infLeRight 2023-05-16 13:10:28 5680c5a feat: port Combinatorics.SimpleGraph.Ends.Defs (#4002) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Combinatorics/SimpleGraph/Ends/Defs.lean + theorem SimpleGraph.ComponentCompl.coe_inj + theorem SimpleGraph.ComponentCompl.exists_adj_boundary_pair + def SimpleGraph.ComponentCompl.hom + theorem SimpleGraph.ComponentCompl.hom_eq_iff_le + theorem SimpleGraph.ComponentCompl.hom_eq_iff_not_disjoint + theorem SimpleGraph.ComponentCompl.hom_infinite + theorem SimpleGraph.ComponentCompl.hom_mk + theorem SimpleGraph.ComponentCompl.hom_refl + theorem SimpleGraph.ComponentCompl.hom_trans + theorem SimpleGraph.ComponentCompl.infinite_iff_in_all_ranges + theorem SimpleGraph.ComponentCompl.mem_of_adj + theorem SimpleGraph.ComponentCompl.mem_supp_iff + theorem SimpleGraph.ComponentCompl.not_mem_of_mem + theorem SimpleGraph.ComponentCompl.subset_hom + def SimpleGraph.ComponentCompl.supp + theorem SimpleGraph.ComponentCompl.supp_inj + theorem SimpleGraph.ComponentCompl.supp_injective + def SimpleGraph.ComponentCompl + def SimpleGraph.componentComplFunctor + def SimpleGraph.componentComplMk + theorem SimpleGraph.componentComplMk_eq_of_adj + theorem SimpleGraph.componentComplMk_mem + theorem SimpleGraph.componentComplMk_mem_hom + theorem SimpleGraph.end_hom_mk_of_mk + theorem SimpleGraph.infinite_iff_in_eventualRange 2023-05-16 13:10:26 3eaefa4 fix: re-port Init/Algebra/Order (#4000) The ad-hoc port was added in #18, but the `#align`s were all missing and two defs were incorrectly promoted to an instance. The absense of these instances reveals some missing instances that need to be added (and were found via unfolding in Lean 3). ESTIMATED CHANGES Modified Mathlib/Init/Algebra/Functions.lean Modified Mathlib/Init/Algebra/Order.lean + def decidableEqOfDecidableLE + def decidableLTOfDecidableLE +/- theorem eq_or_lt_of_not_lt +/- theorem ge_trans +/- theorem gt_irrefl +/- theorem gt_trans +/- theorem le_iff_lt_or_eq +/- theorem le_imp_le_of_lt_imp_lt +/- theorem le_not_le_of_lt +/- theorem le_of_eq +/- theorem le_of_eq_or_lt +/- theorem le_of_lt_or_eq +/- theorem le_of_not_ge +/- theorem le_of_not_gt +/- theorem le_of_not_le +/- theorem le_of_not_lt +/- theorem le_or_gt +/- theorem le_refl + def ltByCases +/- theorem lt_asymm - def lt_by_cases +/- theorem lt_iff_le_not_le +/- theorem lt_iff_not_ge +/- theorem lt_irrefl +/- theorem lt_of_le_not_le +/- theorem lt_of_le_of_ne +/- theorem lt_of_not_ge +/- theorem lt_or_eq_of_le +/- theorem lt_or_ge +/- theorem ne_of_gt +/- theorem ne_of_lt +/- theorem not_le +/- theorem not_le_of_gt +/- theorem not_lt +/- theorem not_lt_of_ge +/- theorem not_lt_of_gt Modified Mathlib/Order/WithBot.lean 2023-05-16 13:10:25 bb4ae7c feat: port CategoryTheory.Endofunctor.Algebra (#3541) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Endofunctor/Algebra.lean + def CategoryTheory.Endofunctor.Adjunction.AlgCoalgEquiv.counitIso + def CategoryTheory.Endofunctor.Adjunction.AlgCoalgEquiv.unitIso + theorem CategoryTheory.Endofunctor.Adjunction.Algebra.homEquiv_naturality_str + def CategoryTheory.Endofunctor.Adjunction.Algebra.toCoalgebraOf + theorem CategoryTheory.Endofunctor.Adjunction.Coalgebra.homEquiv_naturality_str_symm + def CategoryTheory.Endofunctor.Adjunction.Coalgebra.toAlgebraOf + def CategoryTheory.Endofunctor.Adjunction.algebraCoalgebraEquiv + def CategoryTheory.Endofunctor.Algebra.Hom.comp + def CategoryTheory.Endofunctor.Algebra.Hom.id + structure CategoryTheory.Endofunctor.Algebra.Hom + theorem CategoryTheory.Endofunctor.Algebra.Initial.left_inv' + theorem CategoryTheory.Endofunctor.Algebra.Initial.left_inv + theorem CategoryTheory.Endofunctor.Algebra.Initial.right_inv + def CategoryTheory.Endofunctor.Algebra.Initial.strInv + theorem CategoryTheory.Endofunctor.Algebra.Initial.str_isIso + theorem CategoryTheory.Endofunctor.Algebra.comp_eq_comp + theorem CategoryTheory.Endofunctor.Algebra.comp_f + theorem CategoryTheory.Endofunctor.Algebra.epi_of_epi + def CategoryTheory.Endofunctor.Algebra.equivOfNatIso + def CategoryTheory.Endofunctor.Algebra.forget + def CategoryTheory.Endofunctor.Algebra.functorOfNatTrans + def CategoryTheory.Endofunctor.Algebra.functorOfNatTransComp + def CategoryTheory.Endofunctor.Algebra.functorOfNatTransEq + def CategoryTheory.Endofunctor.Algebra.functorOfNatTransId + theorem CategoryTheory.Endofunctor.Algebra.id_eq_id + theorem CategoryTheory.Endofunctor.Algebra.id_f + def CategoryTheory.Endofunctor.Algebra.isoMk + theorem CategoryTheory.Endofunctor.Algebra.iso_of_iso + theorem CategoryTheory.Endofunctor.Algebra.mono_of_mono + structure CategoryTheory.Endofunctor.Algebra + def CategoryTheory.Endofunctor.Coalgebra.Hom.comp + def CategoryTheory.Endofunctor.Coalgebra.Hom.id + structure CategoryTheory.Endofunctor.Coalgebra.Hom + theorem CategoryTheory.Endofunctor.Coalgebra.comp_eq_comp + theorem CategoryTheory.Endofunctor.Coalgebra.comp_f + theorem CategoryTheory.Endofunctor.Coalgebra.epi_of_epi + def CategoryTheory.Endofunctor.Coalgebra.equivOfNatIso + def CategoryTheory.Endofunctor.Coalgebra.forget + def CategoryTheory.Endofunctor.Coalgebra.functorOfNatTrans + def CategoryTheory.Endofunctor.Coalgebra.functorOfNatTransComp + def CategoryTheory.Endofunctor.Coalgebra.functorOfNatTransEq + def CategoryTheory.Endofunctor.Coalgebra.functorOfNatTransId + theorem CategoryTheory.Endofunctor.Coalgebra.id_eq_id + theorem CategoryTheory.Endofunctor.Coalgebra.id_f + def CategoryTheory.Endofunctor.Coalgebra.isoMk + theorem CategoryTheory.Endofunctor.Coalgebra.iso_of_iso + theorem CategoryTheory.Endofunctor.Coalgebra.mono_of_mono + structure CategoryTheory.Endofunctor.Coalgebra 2023-05-16 10:59:11 a6e1045 chore: reenable eta, bump to nightly 2023-05-16 (#3414) Now that leanprover/lean4#2210 has been merged, this PR: * removes all the `set_option synthInstance.etaExperiment true` commands (and some `etaExperiment%` term elaborators) * removes many but not quite all `set_option maxHeartbeats` commands * makes various other changes required to cope with leanprover/lean4#2210. ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/Subalgebra/Basic.lean Modified Mathlib/Algebra/BigOperators/Basic.lean Modified Mathlib/Algebra/Category/ModuleCat/Tannaka.lean Modified Mathlib/Algebra/CharP/Quotient.lean Modified Mathlib/Algebra/CharP/Two.lean Modified Mathlib/Algebra/CubicDiscriminant.lean Modified Mathlib/Algebra/DirectSum/Basic.lean Modified Mathlib/Algebra/Group/Ext.lean Modified Mathlib/Algebra/Hom/Centroid.lean Modified Mathlib/Algebra/Hom/Equiv/Basic.lean Modified Mathlib/Algebra/Homology/Flip.lean Modified Mathlib/Algebra/Module/Injective.lean Modified Mathlib/Algebra/Module/LinearMap.lean Modified Mathlib/Algebra/Module/Projective.lean Modified Mathlib/Algebra/Module/Submodule/Lattice.lean +/- def Submodule.botEquivPUnit Modified Mathlib/Algebra/Order/Algebra.lean Modified Mathlib/Algebra/Order/Chebyshev.lean Modified Mathlib/Algebra/Order/Field/InjSurj.lean Modified Mathlib/Algebra/Order/Floor.lean Modified Mathlib/Algebra/Order/Group/Defs.lean Modified Mathlib/Algebra/Order/Positive/Field.lean Modified Mathlib/Algebra/Order/Rearrangement.lean Modified Mathlib/Algebra/Order/ToIntervalMod.lean Modified Mathlib/Algebra/PUnitInstances.lean Modified Mathlib/Algebra/Star/Basic.lean Modified Mathlib/Algebra/Star/CHSH.lean Modified Mathlib/Algebra/Star/SelfAdjoint.lean Modified Mathlib/Algebra/Star/Subalgebra.lean Modified Mathlib/AlgebraicTopology/DoldKan/FunctorGamma.lean Modified Mathlib/AlgebraicTopology/DoldKan/HomotopyEquivalence.lean Modified Mathlib/AlgebraicTopology/SimplexCategory.lean Modified Mathlib/Analysis/Complex/Basic.lean Modified Mathlib/Analysis/Convex/Basic.lean Modified Mathlib/Analysis/Convex/Exposed.lean Modified Mathlib/Analysis/Convex/Function.lean Modified Mathlib/Analysis/Convex/Jensen.lean Modified Mathlib/Analysis/Convex/Segment.lean Modified Mathlib/Analysis/LocallyConvex/Bounded.lean Modified Mathlib/Analysis/LocallyConvex/Polar.lean Modified Mathlib/Analysis/Normed/Field/Basic.lean Modified Mathlib/Analysis/Normed/Group/Quotient.lean Modified Mathlib/Analysis/Normed/Ring/Seminorm.lean Modified Mathlib/Analysis/NormedSpace/AddTorsor.lean Modified Mathlib/Analysis/NormedSpace/Basic.lean Modified Mathlib/Analysis/NormedSpace/ConformalLinearMap.lean Modified Mathlib/Analysis/NormedSpace/ContinuousLinearMap.lean Modified Mathlib/Analysis/NormedSpace/LinearIsometry.lean Modified Mathlib/Analysis/NormedSpace/Star/Basic.lean Modified Mathlib/Analysis/Seminorm.lean Modified Mathlib/Analysis/SpecialFunctions/Polynomials.lean Modified Mathlib/Analysis/SpecificLimits/Basic.lean Modified Mathlib/Analysis/SpecificLimits/Normed.lean Modified Mathlib/CategoryTheory/Abelian/Homology.lean Modified Mathlib/CategoryTheory/Bicategory/Functor.lean Modified Mathlib/CategoryTheory/Category/Basic.lean Modified Mathlib/CategoryTheory/Functor/LeftDerived.lean Modified Mathlib/CategoryTheory/Idempotents/FunctorExtension.lean Modified Mathlib/CategoryTheory/Limits/Constructions/ZeroObjects.lean Modified Mathlib/CategoryTheory/Sites/Adjunction.lean Modified Mathlib/CategoryTheory/Sites/DenseSubsite.lean Modified Mathlib/CategoryTheory/Sites/LeftExact.lean Modified Mathlib/CategoryTheory/Sites/Sheafification.lean Modified Mathlib/Data/Complex/Determinant.lean Modified Mathlib/Data/Complex/Exponential.lean Modified Mathlib/Data/Complex/Module.lean Modified Mathlib/Data/Dfinsupp/Order.lean +/- theorem Dfinsupp.orderEmbeddingToFun_apply Modified Mathlib/Data/Fin/Basic.lean Modified Mathlib/Data/Fin/VecNotation.lean Modified Mathlib/Data/IsROrC/Basic.lean Modified Mathlib/Data/List/Basic.lean Modified Mathlib/Data/List/Perm.lean Modified Mathlib/Data/List/Rotate.lean Modified Mathlib/Data/Matrix/Rank.lean Modified Mathlib/Data/MvPolynomial/CommRing.lean Modified Mathlib/Data/Polynomial/AlgebraMap.lean Modified Mathlib/Data/Polynomial/Basic.lean +/- theorem Polynomial.C_eq_int_cast Modified Mathlib/Data/Polynomial/DenomsClearable.lean Modified Mathlib/Data/Polynomial/Eval.lean Modified Mathlib/Data/Polynomial/FieldDivision.lean Modified Mathlib/Data/Polynomial/Module.lean Modified Mathlib/Data/Polynomial/RingDivision.lean Modified Mathlib/Data/Polynomial/Splits.lean Modified Mathlib/Data/Quot.lean Modified Mathlib/Data/Rat/Cast.lean Modified Mathlib/Data/Set/Intervals/Instances.lean Modified Mathlib/Data/ZMod/Algebra.lean Modified Mathlib/Data/ZMod/Basic.lean Modified Mathlib/FieldTheory/MvPolynomial.lean Modified Mathlib/FieldTheory/Tower.lean Modified Mathlib/Geometry/Manifold/ChartedSpace.lean Modified Mathlib/GroupTheory/Congruence.lean Modified Mathlib/GroupTheory/FreeAbelianGroup.lean Modified Mathlib/GroupTheory/FreeGroup.lean Modified Mathlib/Lean/Meta.lean Modified Mathlib/LinearAlgebra/AffineSpace/Basis.lean Modified Mathlib/LinearAlgebra/AffineSpace/Combination.lean Modified Mathlib/LinearAlgebra/AffineSpace/Matrix.lean Modified Mathlib/LinearAlgebra/Basis.lean Modified Mathlib/LinearAlgebra/Determinant.lean Modified Mathlib/LinearAlgebra/Dfinsupp.lean Modified Mathlib/LinearAlgebra/Dimension.lean Modified Mathlib/LinearAlgebra/DirectSum/Finsupp.lean Modified Mathlib/LinearAlgebra/DirectSum/TensorProduct.lean Modified Mathlib/LinearAlgebra/FiniteDimensional.lean Modified Mathlib/LinearAlgebra/Finrank.lean Modified Mathlib/LinearAlgebra/FinsuppVectorSpace.lean Modified Mathlib/LinearAlgebra/FreeAlgebra.lean Modified Mathlib/LinearAlgebra/FreeModule/Determinant.lean Modified Mathlib/LinearAlgebra/FreeModule/Finite/Basic.lean Modified Mathlib/LinearAlgebra/FreeModule/Finite/Matrix.lean Modified Mathlib/LinearAlgebra/FreeModule/Finite/Rank.lean Modified Mathlib/LinearAlgebra/FreeModule/PID.lean Modified Mathlib/LinearAlgebra/FreeModule/Rank.lean Modified Mathlib/LinearAlgebra/InvariantBasisNumber.lean Modified Mathlib/LinearAlgebra/Isomorphisms.lean Modified Mathlib/LinearAlgebra/Lagrange.lean +/- def Lagrange.interpolate Modified Mathlib/LinearAlgebra/LinearIndependent.lean Modified Mathlib/LinearAlgebra/Matrix/Adjugate.lean Modified Mathlib/LinearAlgebra/Matrix/Basis.lean Modified Mathlib/LinearAlgebra/Matrix/Determinant.lean Modified Mathlib/LinearAlgebra/Matrix/Diagonal.lean Modified Mathlib/LinearAlgebra/Matrix/FiniteDimensional.lean Modified Mathlib/LinearAlgebra/Matrix/Nondegenerate.lean Modified Mathlib/LinearAlgebra/Matrix/NonsingularInverse.lean Modified Mathlib/LinearAlgebra/Matrix/Reindex.lean Modified Mathlib/LinearAlgebra/Matrix/ToLin.lean Modified Mathlib/LinearAlgebra/Matrix/ZPow.lean Modified Mathlib/LinearAlgebra/Orientation.lean Modified Mathlib/LinearAlgebra/ProjectiveSpace/Basic.lean Modified Mathlib/LinearAlgebra/Quotient.lean Modified Mathlib/LinearAlgebra/SModEq.lean Modified Mathlib/LinearAlgebra/SesquilinearForm.lean Modified Mathlib/LinearAlgebra/Span.lean Modified Mathlib/LinearAlgebra/SymplecticGroup.lean Modified Mathlib/LinearAlgebra/TensorProductBasis.lean Modified Mathlib/NumberTheory/Zsqrtd/Basic.lean Modified Mathlib/Order/GameAdd.lean Modified Mathlib/Order/RelIso/Basic.lean Modified Mathlib/RepresentationTheory/Maschke.lean Modified Mathlib/RingTheory/Adjoin/Tower.lean Modified Mathlib/RingTheory/EisensteinCriterion.lean Modified Mathlib/RingTheory/FiniteType.lean Modified Mathlib/RingTheory/Finiteness.lean Modified Mathlib/RingTheory/Flat.lean Modified Mathlib/RingTheory/Ideal/AssociatedPrime.lean Modified Mathlib/RingTheory/Ideal/IdempotentFG.lean Modified Mathlib/RingTheory/Ideal/Operations.lean Modified Mathlib/RingTheory/Ideal/Quotient.lean Modified Mathlib/RingTheory/Ideal/QuotientOperations.lean Modified Mathlib/RingTheory/Localization/Basic.lean +/- theorem IsLocalization.algEquiv_symm_mk' Modified Mathlib/RingTheory/Localization/InvSubmonoid.lean Modified Mathlib/RingTheory/Localization/Module.lean Modified Mathlib/RingTheory/Localization/Submodule.lean Modified Mathlib/RingTheory/MvPolynomial/Basic.lean Modified Mathlib/RingTheory/Noetherian.lean Modified Mathlib/RingTheory/Polynomial/Basic.lean Modified Mathlib/RingTheory/Polynomial/Eisenstein/Basic.lean Modified Mathlib/RingTheory/PrincipalIdealDomain.lean Modified Mathlib/RingTheory/QuotientNilpotent.lean Modified Mathlib/RingTheory/QuotientNoetherian.lean Modified Mathlib/RingTheory/ReesAlgebra.lean Modified Mathlib/RingTheory/SimpleModule.lean Modified Mathlib/RingTheory/Subring/Basic.lean Modified Mathlib/RingTheory/Subring/Pointwise.lean Modified Mathlib/RingTheory/Valuation/Basic.lean Modified Mathlib/RingTheory/Valuation/Quotient.lean Modified Mathlib/SetTheory/ZFC/Basic.lean Modified Mathlib/Topology/Algebra/Algebra.lean Modified Mathlib/Topology/Algebra/Module/Basic.lean Modified Mathlib/Topology/Algebra/Module/Determinant.lean Modified Mathlib/Topology/Algebra/Module/Multilinear.lean Modified Mathlib/Topology/Algebra/Module/Simple.lean Modified Mathlib/Topology/Algebra/Module/StrongTopology.lean Modified Mathlib/Topology/Algebra/Module/WeakDual.lean Modified Mathlib/Topology/Algebra/Nonarchimedean/AdicTopology.lean Modified Mathlib/Topology/Algebra/Nonarchimedean/Bases.lean Modified Mathlib/Topology/Algebra/Polynomial.lean Modified Mathlib/Topology/Algebra/StarSubalgebra.lean Modified Mathlib/Topology/Algebra/UniformConvergence.lean Modified Mathlib/Topology/Algebra/UniformRing.lean Modified Mathlib/Topology/ContinuousFunction/Algebra.lean Modified Mathlib/Topology/Instances/AddCircle.lean Modified Mathlib/Topology/Instances/Matrix.lean Modified Mathlib/Topology/Instances/RealVectorSpace.lean Modified lean-toolchain 2023-05-16 20:15:58+10:00 c853142 Revert "workaround" This reverts commit 4e69a93a91b3a3e08674f4c34d9618291e51510a. ESTIMATED CHANGES Modified Mathlib/AlgebraicTopology/DoldKan/HomotopyEquivalence.lean 2023-05-16 20:13:18+10:00 4e69a93 workaround ESTIMATED CHANGES Modified Mathlib/AlgebraicTopology/DoldKan/HomotopyEquivalence.lean 2023-05-16 06:36:12 6c44e6a feat: port Combinatorics.Hall.Basic (#3999) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Combinatorics/Hall/Basic.lean + theorem Finset.all_card_le_biUnion_card_iff_exists_injective + theorem Fintype.all_card_le_filter_rel_iff_exists_injective + theorem Fintype.all_card_le_rel_image_card_iff_exists_injective + def hallMatchingsFunctor + theorem hallMatchingsOn.nonempty + def hallMatchingsOn.restrict + def hallMatchingsOn 2023-05-16 06:36:11 a183081 feat: port Topology.Instances.AddCircle (#3984) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/CharZero/Quotient.lean + theorem QuotientAddGroup.zmultiples_nsmul_eq_nsmul_iff + theorem QuotientAddGroup.zmultiples_zsmul_eq_zsmul_iff - theorem quotientAddGroup.zmultiples_nsmul_eq_nsmul_iff - theorem quotientAddGroup.zmultiples_zsmul_eq_zsmul_iff Modified Mathlib/Algebra/Order/ToIntervalMod.lean + theorem QuotientAddGroup.btw_coe_iff' + theorem QuotientAddGroup.btw_coe_iff + def QuotientAddGroup.equivIcoMod + theorem QuotientAddGroup.equivIcoMod_coe + theorem QuotientAddGroup.equivIcoMod_zero + def QuotientAddGroup.equivIocMod + theorem QuotientAddGroup.equivIocMod_coe + theorem QuotientAddGroup.equivIocMod_zero - theorem quotientAddGroup.btw_coe_iff' - theorem quotientAddGroup.btw_coe_iff - def quotientAddGroup.equivIcoMod - theorem quotientAddGroup.equivIcoMod_coe - theorem quotientAddGroup.equivIcoMod_zero - def quotientAddGroup.equivIocMod - theorem quotientAddGroup.equivIocMod_coe - theorem quotientAddGroup.equivIocMod_zero Added Mathlib/Topology/Instances/AddCircle.lean + inductive AddCircle.EndpointIdent + theorem AddCircle.addOrderOf_coe_rat + theorem AddCircle.addOrderOf_div_of_gcd_eq_one' + theorem AddCircle.addOrderOf_div_of_gcd_eq_one + theorem AddCircle.addOrderOf_eq_pos_iff + theorem AddCircle.addOrderOf_period_div + theorem AddCircle.card_addOrderOf_eq_totient + theorem AddCircle.coe_add + theorem AddCircle.coe_add_period + theorem AddCircle.coe_eq_coe_iff_of_mem_Ico + theorem AddCircle.coe_eq_zero_iff + theorem AddCircle.coe_eq_zero_of_pos_iff + theorem AddCircle.coe_equivIco_mk_apply + theorem AddCircle.coe_image_Icc_eq + theorem AddCircle.coe_image_Ico_eq + theorem AddCircle.coe_image_Ioc_eq + theorem AddCircle.coe_neg + theorem AddCircle.coe_nsmul + theorem AddCircle.coe_period + theorem AddCircle.coe_sub + theorem AddCircle.coe_zsmul + theorem AddCircle.continuousAt_equivIco + theorem AddCircle.continuousAt_equivIoc + theorem AddCircle.continuous_equivIco_symm + theorem AddCircle.continuous_equivIoc_symm + def AddCircle.equivAddCircle + theorem AddCircle.equivAddCircle_apply_mk + theorem AddCircle.equivAddCircle_symm_apply_mk + def AddCircle.equivIccQuot + theorem AddCircle.equivIccQuot_comp_mk_eq_toIcoMod + theorem AddCircle.equivIccQuot_comp_mk_eq_toIocMod + def AddCircle.equivIco + def AddCircle.equivIoc + theorem AddCircle.exists_gcd_eq_one_of_isOfFinAddOrder + theorem AddCircle.finite_setOf_add_order_eq + theorem AddCircle.gcd_mul_addOrderOf_div_eq + def AddCircle.homeoIccQuot + def AddCircle.liftIco + theorem AddCircle.liftIco_coe_apply + theorem AddCircle.liftIco_continuous + theorem AddCircle.liftIco_eq_lift_Icc + theorem AddCircle.liftIco_zero_coe_apply + theorem AddCircle.liftIco_zero_continuous + def AddCircle.liftIoc + theorem AddCircle.liftIoc_coe_apply + def AddCircle.setAddOrderOfEquiv + def AddCircle + theorem continuousAt_toIcoMod + theorem continuousAt_toIocMod + theorem continuous_left_toIocMod + theorem continuous_right_toIcoMod + theorem toIcoMod_eventuallyEq_toIocMod 2023-05-16 06:36:10 cfd8426 refactor: increase the priority of `FirstOrder.Language.Theory.ModelType.struc` (#3979) In Lean4, other instances precedes `FirstOrder.Language.Theory.ModelType.struc`, it's issues in `ModelTheory.Satisfiability`. ESTIMATED CHANGES Modified Mathlib/ModelTheory/Bundled.lean 2023-05-16 06:36:09 93b1c8e feat: add unexpanders for preimage and op (#3959) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Functor/FullyFaithful.lean Modified Mathlib/CategoryTheory/Opposites.lean 2023-05-16 06:36:08 000e226 refactor: rename `Fg` to `FG` (#3948) Please refer to this Zulip thread: https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/Naming.20convention/near/357712556 ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/GroupTheory/Abelianization.lean Modified Mathlib/GroupTheory/Finiteness.lean +/- theorem AddGroup.fg_def +/- theorem AddGroup.fg_iff_mul_fg +/- theorem AddMonoid.fg_def +/- theorem AddMonoid.fg_iff_mul_fg +/- theorem AddSubgroup.fg_iff_mul_fg +/- theorem AddSubmonoid.fg_iff_mul_fg +/- theorem Group.fg_def +/- theorem Group.fg_iff +/- theorem Group.fg_iff_monoid_fg +/- theorem Group.fg_of_surjective +/- theorem Group.rank_congr +/- theorem Group.rank_le +/- theorem Group.rank_le_of_surjective +/- theorem Group.rank_range_le +/- theorem Group.rank_spec + theorem GroupFG.iff_add_fg - theorem GroupFg.iff_add_fg +/- theorem Monoid.fg_def +/- theorem Monoid.fg_iff_add_fg +/- theorem Monoid.fg_iff_submonoid_fg +/- theorem Monoid.fg_of_surjective + def Subgroup.FG - def Subgroup.Fg +/- theorem Subgroup.fg_iff_add_fg +/- theorem Subgroup.fg_iff_submonoid_fg +/- theorem Subgroup.rank_congr + theorem Submonoid.FG.map + theorem Submonoid.FG.map_injective + def Submonoid.FG - theorem Submonoid.Fg.map - theorem Submonoid.Fg.map_injective - def Submonoid.Fg +/- theorem Submonoid.fg_iff_add_fg +/- theorem Submonoid.powers_fg Modified Mathlib/GroupTheory/Index.lean +/- theorem Subgroup.index_center_le_pow Modified Mathlib/LinearAlgebra/FiniteDimensional.lean +/- theorem Submodule.fg_iff_finiteDimensional Renamed Mathlib/RingTheory/Adjoin/Fg.lean to Mathlib/RingTheory/Adjoin/FG.lean +/- theorem Algebra.fg_trans + theorem Subalgebra.FG.map + theorem Subalgebra.FG.prod + def Subalgebra.FG - theorem Subalgebra.Fg.map - theorem Subalgebra.Fg.prod - def Subalgebra.Fg +/- theorem Subalgebra.fg_adjoin_finset +/- theorem Subalgebra.fg_bot +/- theorem Subalgebra.fg_def +/- theorem Subalgebra.fg_of_fg_toSubmodule +/- theorem Subalgebra.fg_of_noetherian +/- theorem Subalgebra.fg_of_submodule_fg +/- theorem Subalgebra.fg_top +/- theorem isNoetherianRing_of_fg Modified Mathlib/RingTheory/Adjoin/Tower.lean +/- theorem exists_subalgebra_of_fg +/- theorem fg_of_fg_of_fg Modified Mathlib/RingTheory/FiniteType.lean Modified Mathlib/RingTheory/Finiteness.lean + theorem Ideal.FG.map + def Ideal.FG - theorem Ideal.Fg.map - def Ideal.Fg +/- theorem Ideal.exists_radical_pow_le_of_fg +/- theorem Module.Finite.iff_addGroup_fg +/- theorem Module.Finite.iff_addMonoid_fg + theorem Submodule.FG.map + theorem Submodule.FG.map₂ + theorem Submodule.FG.mul + theorem Submodule.FG.pow + theorem Submodule.FG.prod + theorem Submodule.FG.stablizes_of_iSup_eq + theorem Submodule.FG.sup + def Submodule.FG - theorem Submodule.Fg.map - theorem Submodule.Fg.map₂ - theorem Submodule.Fg.mul - theorem Submodule.Fg.pow - theorem Submodule.Fg.prod - theorem Submodule.Fg.stablizes_of_iSup_eq - theorem Submodule.Fg.sup - def Submodule.Fg +/- theorem Submodule.fg_biSup +/- theorem Submodule.fg_bot +/- theorem Submodule.fg_def +/- theorem Submodule.fg_finset_sup +/- theorem Submodule.fg_iSup +/- theorem Submodule.fg_iff_addSubmonoid_fg +/- theorem Submodule.fg_iff_compact +/- theorem Submodule.fg_of_linearEquiv +/- theorem Submodule.fg_span +/- theorem Submodule.fg_span_singleton +/- theorem Submodule.fg_top Modified Mathlib/RingTheory/Flat.lean Renamed Mathlib/RingTheory/Ideal/IdempotentFg.lean to Mathlib/RingTheory/Ideal/IdempotentFG.lean +/- theorem Ideal.isIdempotentElem_iff_of_fg Modified Mathlib/RingTheory/Localization/InvSubmonoid.lean +/- theorem IsLocalization.finiteType_of_monoid_fg Modified Mathlib/RingTheory/Localization/Submodule.lean Modified Mathlib/RingTheory/Noetherian.lean +/- theorem isNoetherian_def Modified Mathlib/RingTheory/Polynomial/Basic.lean Modified Mathlib/RingTheory/ReesAlgebra.lean +/- theorem reesAlgebra.fg 2023-05-16 06:36:07 d9a38fa fix: unexpanders for SetOf, supi, and infi (#3941) The `fun` notation uses parentheses when the type is explicit. This can be checked with `set_option pp.funBinderTypes true`. Closes #1654. ESTIMATED CHANGES Modified Mathlib/Init/Set.lean Modified Mathlib/Order/CompleteLattice.lean 2023-05-16 03:29:03 f5551f2 chore: disable instances causing trouble with etaExperiment (#3905) ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Group/Defs.lean + theorem OrderedCommGroup.to_contravariantClass_left_le + theorem OrderedCommGroup.to_contravariantClass_right_le 2023-05-16 00:56:21 c0f7bfd feat: porting norm_num extensions for `Nat.gcd`, `Nat.lcm`, `Int.gcd`, `Int.lcm`, and `IsCoprime` (#3923) This completes the porting of these norm_num extensions while adding a new extension for `IsCoprime` over `Int`. It also adds the norm_num extension testing file from mathlib3. Closes #3246. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Data/Int/GCD.lean + theorem Int.gcd_def Modified Mathlib/Data/Nat/ModEq.lean Modified Mathlib/GroupTheory/Perm/Cycle/Type.lean Modified Mathlib/RingTheory/Coprime/Basic.lean Modified Mathlib/RingTheory/Coprime/Lemmas.lean + theorem Int.isCoprime_iff_gcd_eq_one +/- theorem Nat.isCoprime_iff_coprime Modified Mathlib/Tactic.lean Modified Mathlib/Tactic/NormNum/Core.lean + def Lean.Expr.intLit! + def Mathlib.Meta.NormNum.rawIntLitNatAbs Added Mathlib/Tactic/NormNum/GCD.lean + def Tactic.NormNum.evalIntGCD + def Tactic.NormNum.evalIntLCM + def Tactic.NormNum.evalNatGCD + def Tactic.NormNum.evalNatLCM + theorem Tactic.NormNum.int_gcd_helper' + theorem Tactic.NormNum.int_gcd_helper + theorem Tactic.NormNum.int_lcm_helper + theorem Tactic.NormNum.isInt_gcd + theorem Tactic.NormNum.isInt_lcm + theorem Tactic.NormNum.isNat_gcd + theorem Tactic.NormNum.isNat_lcm + theorem Tactic.NormNum.nat_gcd_helper_1' + theorem Tactic.NormNum.nat_gcd_helper_1 + theorem Tactic.NormNum.nat_gcd_helper_2' + theorem Tactic.NormNum.nat_gcd_helper_2 + theorem Tactic.NormNum.nat_gcd_helper_dvd_left + theorem Tactic.NormNum.nat_gcd_helper_dvd_right + theorem Tactic.NormNum.nat_lcm_helper + def Tactic.NormNum.proveIntGCD + def Tactic.NormNum.proveIntLCM + def Tactic.NormNum.proveNatGCD + def Tactic.NormNum.proveNatLCM Added Mathlib/Tactic/NormNum/IsCoprime.lean + def Tactic.NormNum.evalIntIsCoprime + theorem Tactic.NormNum.int_not_isCoprime_helper + theorem Tactic.NormNum.isInt_isCoprime + theorem Tactic.NormNum.isInt_not_isCoprime + def Tactic.NormNum.proveIntIsCoprime Added test/norm_num_ext.lean + theorem ex11 + theorem ex12 + theorem ex13 + theorem ex14 + theorem ex15 + theorem ex16' + theorem ex16 + theorem ex17 + theorem ex21 + theorem ex22 + theorem ex23 + theorem ex24 + theorem ex25 + theorem ex26 + theorem ex27 + theorem ex31 + theorem ex32 + theorem ex33 + theorem ex34 + theorem ex35 + theorem ex36 + theorem ex37 + theorem ex41 + theorem ex42 + theorem ex43 + theorem ex44 + theorem ex51 + theorem ex52 + theorem ex53 + theorem ex54 + theorem ex61 + theorem ex62' + theorem ex62 + theorem ex63 + theorem ex64 2023-05-16 00:41:18 4816740 feat: port Analysis.SpecialFunctions.Exp (#3988) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/SpecialFunctions/Exp.lean + theorem Complex.comap_exp_comap_abs_atTop + theorem Complex.comap_exp_nhdsWithin_zero + theorem Complex.comap_exp_nhds_zero + theorem Complex.continuousOn_exp + theorem Complex.continuous_exp + theorem Complex.exp_bound_sq + theorem Complex.locally_lipschitz_exp + theorem Complex.tendsto_exp_comap_re_atBot + theorem Complex.tendsto_exp_comap_re_atBot_nhdsWithin + theorem Complex.tendsto_exp_comap_re_atTop + theorem Complex.tendsto_exp_nhds_zero_iff + theorem Continuous.cexp + theorem Continuous.exp + theorem ContinuousAt.cexp + theorem ContinuousAt.exp + theorem ContinuousOn.cexp + theorem ContinuousOn.exp + theorem ContinuousWithinAt.cexp + theorem ContinuousWithinAt.exp + theorem Filter.Tendsto.cexp + theorem Filter.Tendsto.exp + theorem Real.coe_comp_expOrderIso + theorem Real.coe_expOrderIso_apply + theorem Real.comap_exp_atTop + theorem Real.comap_exp_nhdsWithin_Ioi_zero + theorem Real.comap_exp_nhds_zero + theorem Real.continuousOn_exp + theorem Real.continuous_exp + def Real.expOrderIso + theorem Real.exp_half + theorem Real.isBigO_exp_comp_exp_comp + theorem Real.isBigO_exp_comp_one + theorem Real.isBigO_one_exp_comp + theorem Real.isBoundedUnder_ge_exp_comp + theorem Real.isBoundedUnder_le_exp_comp + theorem Real.isLittleO_exp_comp_exp_comp + theorem Real.isLittleO_one_exp_comp + theorem Real.isLittleO_pow_exp_atTop + theorem Real.isTheta_exp_comp_exp_comp + theorem Real.isTheta_exp_comp_one + theorem Real.map_exp_atBot + theorem Real.map_exp_atTop + theorem Real.range_exp + theorem Real.tendsto_comp_exp_atBot + theorem Real.tendsto_comp_exp_atTop + theorem Real.tendsto_div_pow_mul_exp_add_atTop + theorem Real.tendsto_exp_atBot + theorem Real.tendsto_exp_atBot_nhdsWithin + theorem Real.tendsto_exp_atTop + theorem Real.tendsto_exp_comp_atTop + theorem Real.tendsto_exp_comp_nhds_zero + theorem Real.tendsto_exp_div_pow_atTop + theorem Real.tendsto_exp_neg_atTop_nhds_0 + theorem Real.tendsto_exp_nhds_0_nhds_1 + theorem Real.tendsto_mul_exp_add_div_pow_atTop + theorem Real.tendsto_pow_mul_exp_neg_atTop_nhds_0 2023-05-15 21:45:22 e728043 fix: correct names of `LinearOrder` decidable fields (#4006) This renames * `decidable_eq` to `decidableEq` * `decidable_lt` to `decidableLT` * `decidable_le` to `decidableLE` * `decidableLT_of_decidableLE` to `decidableLTOfDecidableLE` * `decidableEq_of_decidableLE` to `decidableEqOfDecidableLE` These fields are data not proofs, so they should be `lowerCamelCased`. ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Field/Basic.lean Modified Mathlib/Algebra/Order/Group/Defs.lean Modified Mathlib/Algebra/Order/Ring/Defs.lean Modified Mathlib/Algebra/Tropical/Basic.lean Modified Mathlib/Analysis/Convex/Caratheodory.lean Modified Mathlib/Combinatorics/Colex.lean Modified Mathlib/Combinatorics/SetFamily/Compression/UV.lean Modified Mathlib/Data/Bool/Basic.lean Modified Mathlib/Data/Char.lean Modified Mathlib/Data/Dfinsupp/Lex.lean Modified Mathlib/Data/Nat/PartENat.lean Modified Mathlib/Data/Num/Lemmas.lean Modified Mathlib/Data/PSigma/Order.lean Modified Mathlib/Data/Prod/Lex.lean Modified Mathlib/Data/Rat/Order.lean Modified Mathlib/Data/Sigma/Order.lean Modified Mathlib/Data/Sign.lean Modified Mathlib/Data/String/Basic.lean Modified Mathlib/Data/Sum/Order.lean Modified Mathlib/GroupTheory/MonoidLocalization.lean Modified Mathlib/Init/Algebra/Order.lean Modified Mathlib/Init/Data/Int/Order.lean Modified Mathlib/Init/Data/Nat/Lemmas.lean Modified Mathlib/LinearAlgebra/AffineSpace/Independent.lean Modified Mathlib/NumberTheory/Zsqrtd/Basic.lean Modified Mathlib/Order/Antisymmetrization.lean Modified Mathlib/Order/Atoms.lean Modified Mathlib/Order/Basic.lean Modified Mathlib/Order/Chain.lean Modified Mathlib/Order/Compare.lean Modified Mathlib/Order/CompleteLattice.lean Modified Mathlib/Order/ConditionallyCompleteLattice/Basic.lean Modified Mathlib/Order/Extension/Linear.lean Modified Mathlib/Order/Lattice.lean Modified Mathlib/Order/RelClasses.lean Modified Mathlib/SetTheory/Cardinal/Basic.lean Modified Mathlib/SetTheory/Ordinal/Basic.lean 2023-05-15 21:28:25 0c89172 feat: port Analysis.Complex.Basic (#3930) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/Complex/Basic.lean + theorem Complex.antilipschitz_equivRealProd + theorem Complex.comap_abs_nhds_zero + def Complex.conjCle + theorem Complex.conjCle_apply + theorem Complex.conjCle_coe + def Complex.conjLie + theorem Complex.conjLie_apply + theorem Complex.conjLie_symm + theorem Complex.conj_tsum + theorem Complex.continuous_abs + theorem Complex.continuous_conj + theorem Complex.continuous_im + theorem Complex.continuous_normSq + theorem Complex.continuous_ofReal + theorem Complex.continuous_re + theorem Complex.dist_conj_comm + theorem Complex.dist_conj_conj + theorem Complex.dist_conj_self + theorem Complex.dist_eq + theorem Complex.dist_eq_re_im + theorem Complex.dist_mk + theorem Complex.dist_of_im_eq + theorem Complex.dist_of_re_eq + theorem Complex.dist_self_conj + theorem Complex.edist_of_im_eq + theorem Complex.edist_of_re_eq + theorem Complex.eq_coe_norm_of_nonneg + def Complex.equivRealProdClm + theorem Complex.equivRealProd_apply_le' + theorem Complex.equivRealProd_apply_le + theorem Complex.hasSum_conj' + theorem Complex.hasSum_conj + theorem Complex.hasSum_iff + theorem Complex.hasSum_im + theorem Complex.hasSum_ofReal + theorem Complex.hasSum_re + def Complex.imClm + theorem Complex.imClm_apply + theorem Complex.imClm_coe + theorem Complex.im_tsum + theorem Complex.isometry_conj + theorem Complex.isometry_ofReal + theorem Complex.lipschitz_equivRealProd + theorem Complex.nndist_conj_comm + theorem Complex.nndist_conj_conj + theorem Complex.nndist_conj_self + theorem Complex.nndist_of_im_eq + theorem Complex.nndist_of_re_eq + theorem Complex.nndist_self_conj + theorem Complex.nnnorm_eq_one_of_pow_eq_one + theorem Complex.nnnorm_int + theorem Complex.nnnorm_nat + theorem Complex.nnnorm_real + theorem Complex.norm_eq_abs + theorem Complex.norm_eq_one_of_pow_eq_one + theorem Complex.norm_exp_ofReal_mul_I + theorem Complex.norm_int + theorem Complex.norm_int_of_nonneg + theorem Complex.norm_nat + theorem Complex.norm_rat + theorem Complex.norm_real + def Complex.ofRealClm + theorem Complex.ofRealClm_apply + theorem Complex.ofRealClm_coe + def Complex.ofRealLi + theorem Complex.ofReal_tsum + def Complex.reClm + theorem Complex.reClm_apply + theorem Complex.reClm_coe + theorem Complex.re_tsum + theorem Complex.restrictScalars_one_smulRight + theorem Complex.restrictScalars_one_smul_right' + theorem Complex.ringHom_eq_id_or_conj_of_continuous + theorem Complex.ringHom_eq_ofReal_of_continuous + theorem Complex.summable_conj + theorem Complex.summable_ofReal + theorem Complex.tendsto_abs_cocompact_atTop + theorem Complex.tendsto_normSq_cocompact_atTop + theorem Complex.uniformEmbedding_equivRealProd + theorem IsROrC.I_to_complex + theorem IsROrC.conj_tsum + theorem IsROrC.hasSum_conj' + theorem IsROrC.hasSum_conj + theorem IsROrC.hasSum_iff + theorem IsROrC.hasSum_im + theorem IsROrC.hasSum_ofReal + theorem IsROrC.hasSum_re + theorem IsROrC.im_eq_complex_im + theorem IsROrC.im_to_complex + theorem IsROrC.im_tsum + theorem IsROrC.normSq_to_complex + theorem IsROrC.ofReal_tsum + theorem IsROrC.re_eq_complex_re + theorem IsROrC.re_to_complex + theorem IsROrC.re_tsum + theorem IsROrC.summable_conj + theorem IsROrC.summable_ofReal 2023-05-15 21:12:17 3bd6716 chore: fix typo in maintainer merge action (#4005) presumably a typo in #3992 ESTIMATED CHANGES Modified .github/workflows/maintainer_merge_review.yml 2023-05-15 14:58:21 a39a8f5 feat: port GroupTheory.NielsenSchreier (#3981) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/GroupTheory/NielsenSchreier.lean + def IsFreeGroupoid.Generators + def IsFreeGroupoid.SpanningTree.endIsFree + def IsFreeGroupoid.SpanningTree.functorOfMonoidHom + def IsFreeGroupoid.SpanningTree.homOfPath + def IsFreeGroupoid.SpanningTree.loopOfHom + theorem IsFreeGroupoid.SpanningTree.loopOfHom_eq_id + def IsFreeGroupoid.SpanningTree.treeHom + theorem IsFreeGroupoid.SpanningTree.treeHom_eq + theorem IsFreeGroupoid.SpanningTree.treeHom_root + theorem IsFreeGroupoid.ext_functor + theorem IsFreeGroupoid.path_nonempty_of_hom 2023-05-15 12:33:46 e167dd6 feat: let pp_extended_field_notation work for non-structures (#3946) ESTIMATED CHANGES Modified Mathlib/Combinatorics/Quiver/Basic.lean Modified Mathlib/Tactic/ProjectionNotation.lean 2023-05-15 10:07:02 9ec7de3 chore: tidy various files (#3996) ESTIMATED CHANGES Modified Mathlib/Algebra/ContinuedFractions/Computation/CorrectnessTerminating.lean Modified Mathlib/Analysis/NormedSpace/CompactOperator.lean + theorem IsCompactOperator.image_subset_compact_of_isVonNBounded - theorem IsCompactOperator.image_subset_compact_of_vonN_bounded + theorem IsCompactOperator.isCompact_closure_image_of_isVonNBounded - theorem IsCompactOperator.isCompact_closure_image_of_vonN_bounded Modified Mathlib/Analysis/SpecificLimits/Basic.lean Modified Mathlib/CategoryTheory/Functor/LeftDerived.lean Modified Mathlib/CategoryTheory/Preadditive/InjectiveResolution.lean Modified Mathlib/CategoryTheory/Subobject/Basic.lean Modified Mathlib/Data/Complex/Exponential.lean Modified Mathlib/Data/Num/Lemmas.lean Modified Mathlib/Data/Real/ENNReal.lean Modified Mathlib/LinearAlgebra/ProjectiveSpace/Subspace.lean Modified Mathlib/MeasureTheory/Measure/Sub.lean Modified Mathlib/NumberTheory/LucasLehmer.lean Modified Mathlib/Order/KrullDimension.lean Modified Mathlib/Topology/Category/Profinite/AsLimit.lean Modified Mathlib/Topology/ContinuousFunction/Algebra.lean Modified Mathlib/Topology/MetricSpace/Basic.lean + theorem Metric.tendsto_atTop' - theorem Metric.tendsto_at_top' 2023-05-15 10:07:00 9bf37f6 feat: port CategoryTheory.Sites.InducedTopology (#3995) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Sites/InducedTopology.lean + theorem CategoryTheory.CoverDense.locallyCoverDense + def CategoryTheory.LocallyCoverDense.inducedTopology + theorem CategoryTheory.LocallyCoverDense.inducedTopology_coverLifting + theorem CategoryTheory.LocallyCoverDense.inducedTopology_coverPreserving + theorem CategoryTheory.LocallyCoverDense.pushforward_cover_iff_cover_pullback + def CategoryTheory.LocallyCoverDense + theorem CategoryTheory.over_forget_locallyCoverDense 2023-05-15 10:06:59 89672a9 chore Order/Chain: unused arguments (#3986) ESTIMATED CHANGES Modified Mathlib/Order/Chain.lean 2023-05-15 10:06:58 ae53970 feat: port CategoryTheory.CofilteredSystem (#3977) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/CofilteredSystem.lean + theorem CategoryTheory.Functor.IsMittagLeffler.eq_image_eventualRange + theorem CategoryTheory.Functor.IsMittagLeffler.subset_image_eventualRange + theorem CategoryTheory.Functor.IsMittagLeffler.toPreimages + def CategoryTheory.Functor.IsMittagLeffler + theorem CategoryTheory.Functor.eval_section_injective_of_eventually_injective + theorem CategoryTheory.Functor.eval_section_surjective_of_surjective + def CategoryTheory.Functor.eventualRange + theorem CategoryTheory.Functor.eventualRange_eq_iff + theorem CategoryTheory.Functor.eventualRange_eq_range_precomp + theorem CategoryTheory.Functor.eventualRange_mapsTo + theorem CategoryTheory.Functor.eventually_injective + theorem CategoryTheory.Functor.isMittagLeffler_iff_eventualRange + theorem CategoryTheory.Functor.isMittagLeffler_iff_subset_range_comp + theorem CategoryTheory.Functor.isMittagLeffler_of_exists_finite_range + theorem CategoryTheory.Functor.isMittagLeffler_of_surjective + theorem CategoryTheory.Functor.mem_eventualRange_iff + theorem CategoryTheory.Functor.surjective_toEventualRanges + theorem CategoryTheory.Functor.thin_diagram_of_surjective + def CategoryTheory.Functor.toEventualRanges + def CategoryTheory.Functor.toEventualRangesSectionsEquiv + theorem CategoryTheory.Functor.toEventualRanges_nonempty + def CategoryTheory.Functor.toPreimages + theorem CategoryTheory.Functor.toPreimages_nonempty_of_surjective + theorem nonempty_sections_of_finite_cofiltered_system.init + theorem nonempty_sections_of_finite_cofiltered_system + theorem nonempty_sections_of_finite_inverse_system 2023-05-15 10:06:56 23a970b feat: port Order.Category.FrmCat (#3970) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Order/Category/FrmCat.lean + def FrmCat.Iso.mk + theorem FrmCat.coe_of + def FrmCat.of + def FrmCat + def topCatOpToFrameCat 2023-05-15 10:06:55 a2ab29c doc: fix the docs on `ModelTheory/*` (#3968) ESTIMATED CHANGES Modified Mathlib/ModelTheory/Basic.lean Modified Mathlib/ModelTheory/Bundled.lean Modified Mathlib/ModelTheory/ElementaryMaps.lean Modified Mathlib/ModelTheory/FinitelyGenerated.lean Modified Mathlib/ModelTheory/LanguageMap.lean Modified Mathlib/ModelTheory/Order.lean Modified Mathlib/ModelTheory/Semantics.lean Modified Mathlib/ModelTheory/Substructures.lean Modified Mathlib/ModelTheory/Syntax.lean 2023-05-15 10:06:54 618546f feat: port Analysis.Calculus.TangentCone (#3636) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/Calculus/TangentCone.lean + theorem IsOpen.uniqueDiffOn + theorem IsOpen.uniqueDiffWithinAt + theorem UniqueDiffOn.inter + theorem UniqueDiffOn.pi + theorem UniqueDiffOn.prod + theorem UniqueDiffOn.uniqueDiffWithinAt + theorem UniqueDiffOn.univ_pi + def UniqueDiffOn + theorem UniqueDiffWithinAt.inter' + theorem UniqueDiffWithinAt.inter + theorem UniqueDiffWithinAt.mono + theorem UniqueDiffWithinAt.mono_nhds + theorem UniqueDiffWithinAt.pi + theorem UniqueDiffWithinAt.prod + theorem UniqueDiffWithinAt.univ_pi + structure UniqueDiffWithinAt + theorem mapsTo_tangentCone_pi + theorem mem_tangentCone_of_openSegment_subset + theorem mem_tangentCone_of_segment_subset + theorem subset_tangentCone_prod_left + theorem subset_tangentCone_prod_right + theorem tangentConeAt.lim_zero + def tangentConeAt + theorem tangentCone_congr + theorem tangentCone_inter_nhds + theorem tangentCone_mono + theorem tangentCone_mono_nhds + theorem tangentCone_univ + theorem uniqueDiffOn_Icc + theorem uniqueDiffOn_Icc_zero_one + theorem uniqueDiffOn_Ici + theorem uniqueDiffOn_Ico + theorem uniqueDiffOn_Iic + theorem uniqueDiffOn_Iio + theorem uniqueDiffOn_Ioc + theorem uniqueDiffOn_Ioi + theorem uniqueDiffOn_Ioo + theorem uniqueDiffOn_convex + theorem uniqueDiffOn_empty + theorem uniqueDiffOn_univ + theorem uniqueDiffWithinAt_Iio + theorem uniqueDiffWithinAt_Ioi + theorem uniqueDiffWithinAt_Ioo + theorem uniqueDiffWithinAt_congr + theorem uniqueDiffWithinAt_convex + theorem uniqueDiffWithinAt_inter' + theorem uniqueDiffWithinAt_inter + theorem uniqueDiffWithinAt_of_mem_nhds + theorem uniqueDiffWithinAt_univ 2023-05-15 09:49:01 0de17db refactor: rename `FirstOrder.Language.Theory.CompleteTheory.subset` to `FirstOrder.Language.Theory.completeTheory.subset` (#3990) ESTIMATED CHANGES Modified Mathlib/ModelTheory/Semantics.lean - theorem FirstOrder.Language.Theory.CompleteTheory.subset + theorem FirstOrder.Language.Theory.completeTheory.subset 2023-05-15 09:05:58 c442325 feat: port Data.Polynomial.Laurent (#2953) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Data/Polynomial/Laurent.lean + def LaurentPolynomial.C + theorem LaurentPolynomial.C_eq_algebraMap + def LaurentPolynomial.T + theorem LaurentPolynomial.T_add + theorem LaurentPolynomial.T_mul + theorem LaurentPolynomial.T_pow + theorem LaurentPolynomial.T_sub + theorem LaurentPolynomial.T_zero + theorem LaurentPolynomial.algebraMap_X_pow + theorem LaurentPolynomial.algebraMap_apply + theorem LaurentPolynomial.algebraMap_eq_toLaurent + theorem LaurentPolynomial.commute_T + def LaurentPolynomial.degree + theorem LaurentPolynomial.degree_C + theorem LaurentPolynomial.degree_C_ite + theorem LaurentPolynomial.degree_C_le + theorem LaurentPolynomial.degree_C_mul_T + theorem LaurentPolynomial.degree_C_mul_T_ite + theorem LaurentPolynomial.degree_C_mul_T_le + theorem LaurentPolynomial.degree_T + theorem LaurentPolynomial.degree_T_le + theorem LaurentPolynomial.degree_eq_bot_iff + theorem LaurentPolynomial.degree_zero + theorem LaurentPolynomial.exists_T_pow + theorem LaurentPolynomial.induction_on_mul_T + theorem LaurentPolynomial.invOf_T + theorem LaurentPolynomial.isLocalization + theorem LaurentPolynomial.isUnit_T + theorem LaurentPolynomial.leftInverse_trunc_toLaurent + theorem LaurentPolynomial.mul_T_assoc + theorem LaurentPolynomial.reduce_to_polynomial_of_mul_T + theorem LaurentPolynomial.single_eq_C + theorem LaurentPolynomial.single_eq_C_mul_T + theorem LaurentPolynomial.single_zero_one_eq_one + theorem LaurentPolynomial.support_C_mul_T + theorem LaurentPolynomial.support_C_mul_T_of_ne_zero + theorem LaurentPolynomial.toLaurent_support + def LaurentPolynomial.trunc + theorem LaurentPolynomial.trunc_C_mul_T + def Polynomial.toLaurent + def Polynomial.toLaurentAlg + theorem Polynomial.toLaurentAlg_apply + theorem Polynomial.toLaurent_C + theorem Polynomial.toLaurent_C_mul_T + theorem Polynomial.toLaurent_C_mul_X_pow + theorem Polynomial.toLaurent_C_mul_eq + theorem Polynomial.toLaurent_X + theorem Polynomial.toLaurent_X_pow + theorem Polynomial.toLaurent_apply + theorem Polynomial.toLaurent_inj + theorem Polynomial.toLaurent_injective + theorem Polynomial.toLaurent_ne_zero + theorem Polynomial.toLaurent_one + theorem Polynomial.trunc_toLaurent + theorem ext 2023-05-15 06:06:55 31f0309 feat: port CategoryTheory.Sites.DenseSubsite (#3985) Mostly straightforward. Had to fight with `simp` once and the typeclass inference system a couple of times. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Sites/DenseSubsite.lean + theorem CategoryTheory.CoverDense.Types.appHom_restrict + theorem CategoryTheory.CoverDense.Types.appHom_valid_glue + theorem CategoryTheory.CoverDense.Types.pushforwardFamily_apply + theorem CategoryTheory.CoverDense.Types.pushforwardFamily_compatible + theorem CategoryTheory.CoverDense.Types.pushforwardFamily_def + theorem CategoryTheory.CoverDense.compatiblePreserving + theorem CategoryTheory.CoverDense.ext + theorem CategoryTheory.CoverDense.functorPullback_pushforward_covering + def CategoryTheory.CoverDense.homOver + def CategoryTheory.CoverDense.isoOver + theorem CategoryTheory.CoverDense.iso_of_restrict_iso + theorem CategoryTheory.CoverDense.sheafHom_eq + theorem CategoryTheory.CoverDense.sheafHom_restrict_eq + theorem CategoryTheory.CoverDense.sheaf_eq_amalgamation + structure CategoryTheory.CoverDense + structure CategoryTheory.Presieve.CoverByImageStructure + def CategoryTheory.Presieve.coverByImage + theorem CategoryTheory.Presieve.in_coverByImage + def CategoryTheory.Sieve.coverByImage 2023-05-15 05:38:52 4bc088b chore: update zulip bot for maintainer merge (#3992) ESTIMATED CHANGES Modified .github/workflows/maintainer_merge_comment.yml Modified .github/workflows/maintainer_merge_review.yml Modified .github/workflows/maintainer_merge_review_comment.yml 2023-05-14 22:49:41 ffd0ad4 chore(*): forward-port #18947 (#3925) * [`ring_theory.ideal.quotient`@`2f39bcbc98f8255490f8d4562762c9467694c809`..`949dc57e616a621462062668c9f39e4e17b64b69`](https://leanprover-community.github.io/mathlib-port-status/file/ring_theory/ideal/quotient?range=2f39bcbc98f8255490f8d4562762c9467694c809..949dc57e616a621462062668c9f39e4e17b64b69) * [`data.polynomial.basic`@`2651125b48fc5c170ab1111afd0817c903b1fc6c`..`949dc57e616a621462062668c9f39e4e17b64b69`](https://leanprover-community.github.io/mathlib-port-status/file/data/polynomial/basic?range=2651125b48fc5c170ab1111afd0817c903b1fc6c..949dc57e616a621462062668c9f39e4e17b64b69) * [`algebra.monoid_algebra.basic`@`f69db8cecc668e2d5894d7e9bfc491da60db3b9f`..`949dc57e616a621462062668c9f39e4e17b64b69`](https://leanprover-community.github.io/mathlib-port-status/file/algebra/monoid_algebra/basic?range=f69db8cecc668e2d5894d7e9bfc491da60db3b9f..949dc57e616a621462062668c9f39e4e17b64b69) ESTIMATED CHANGES Modified Mathlib/Algebra/MonoidAlgebra/Basic.lean Modified Mathlib/Data/Polynomial/Basic.lean Modified Mathlib/RingTheory/Ideal/Quotient.lean 2023-05-14 21:50:26 e066c3b chore: forward port leanprover-community/mathlib#18946 (#3888) Forward port leanprover-community/mathlib#18946. ESTIMATED CHANGES Modified Mathlib/Data/Real/ENNReal.lean +/- theorem ENNReal.coe_iInf + theorem ENNReal.coe_iSup + theorem ENNReal.toNNReal_iSup + theorem ENNReal.toNNReal_sInf + theorem ENNReal.toNNReal_sSup + theorem ENNReal.toReal_iSup + theorem ENNReal.toReal_sInf + theorem ENNReal.toReal_sSup Modified Mathlib/Topology/MetricSpace/HausdorffDistance.lean 2023-05-14 15:19:13 02a8d70 feat: port Analysis.Convex.Contractible (#3983) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/Convex/Contractible.lean 2023-05-14 14:00:49 b18d11e chore: fix Lean 3 source filename (#3963) These 2 files show up as unported on the porting page. Try to fix it. ESTIMATED CHANGES Modified Mathlib/Topology/Category/Top/Limits/Cofiltered.lean Modified Mathlib/Topology/Category/Top/Limits/Konig.lean 2023-05-14 11:05:13 adf5859 feat: port Topology.Homotopy.Contractible (#3960) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Topology/Homotopy/Contractible.lean + theorem ContinuousMap.Nullhomotopic.comp_left + theorem ContinuousMap.Nullhomotopic.comp_right + def ContinuousMap.Nullhomotopic + theorem ContinuousMap.nullhomotopic_of_constant + theorem ContractibleSpace.hequiv_unit + theorem contractible_iff_id_nullhomotopic + theorem id_nullhomotopic 2023-05-14 07:54:14 d0773f9 feat: `finset` distributivity lemmas (#3937) Match https://github.com/leanprover-community/mathlib/pull/18611 [`data.finset.lattice`@`9d684a893c52e1d6692a504a118bfccbae04feeb`..`2d44d6823a96f9c79b7d1ab185918377be663424`](https://leanprover-community.github.io/mathlib-port-status/file/data/finset/lattice?range=9d684a893c52e1d6692a504a118bfccbae04feeb..2d44d6823a96f9c79b7d1ab185918377be663424) ESTIMATED CHANGES Modified Mathlib/Data/Finset/Lattice.lean - theorem Finset.inf_eq_top_iff + theorem Finset.inf_himp_right + theorem Finset.inf_sup + theorem Finset.inf_sup_inf - theorem Finset.sup_eq_bot_iff + theorem Finset.sup_himp_left + theorem Finset.sup_himp_right + theorem Finset.sup_inf + theorem Finset.sup_inf_sup 2023-05-14 07:05:52 d1eb626 chore: Rename to `sSup`/`iSup` (#3938) As discussed on [Zulip](https://leanprover.zulipchat.com/#narrow/stream/270676-lean4/topic/sup.2FSup) ## Renames * `supₛ` → `sSup` * `infₛ` → `sInf` * `supᵢ` → `iSup` * `infᵢ` → `iInf` * `bsupₛ` → `bsSup` * `binfₛ` → `bsInf` * `bsupᵢ` → `biSup` * `binfᵢ` → `biInf` * `csupₛ` → `csSup` * `cinfₛ` → `csInf` * `csupᵢ` → `ciSup` * `cinfᵢ` → `ciInf` * `unionₛ` → `sUnion` * `interₛ` → `sInter` * `unionᵢ` → `iUnion` * `interᵢ` → `iInter` * `bunionₛ` → `bsUnion` * `binterₛ` → `bsInter` * `bunionᵢ` → `biUnion` * `binterᵢ` → `biInter` ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/Operations.lean + theorem Submodule.iSup_mul + theorem Submodule.mul_iSup - theorem Submodule.mul_supᵢ - theorem Submodule.supᵢ_mul Modified Mathlib/Algebra/Algebra/Subalgebra/Basic.lean + theorem Algebra.coe_iInf - theorem Algebra.coe_infᵢ - theorem Algebra.coe_infₛ + theorem Algebra.coe_sInf + theorem Algebra.iInf_toSubmodule - theorem Algebra.infᵢ_toSubmodule - theorem Algebra.infₛ_toSubmodule - theorem Algebra.infₛ_toSubsemiring + theorem Algebra.mem_iInf - theorem Algebra.mem_infᵢ - theorem Algebra.mem_infₛ + theorem Algebra.mem_sInf + theorem Algebra.sInf_toSubmodule + theorem Algebra.sInf_toSubsemiring + theorem Subalgebra.coe_iSup_of_directed - theorem Subalgebra.coe_supᵢ_of_directed + theorem Subalgebra.iSupLift_comp_inclusion + theorem Subalgebra.iSupLift_inclusion + theorem Subalgebra.iSupLift_mk + theorem Subalgebra.iSupLift_of_mem - theorem Subalgebra.supᵢLift_comp_inclusion - theorem Subalgebra.supᵢLift_inclusion - theorem Subalgebra.supᵢLift_mk - theorem Subalgebra.supᵢLift_of_mem Modified Mathlib/Algebra/BigOperators/Basic.lean + theorem Finset.card_biUnion + theorem Finset.card_biUnion_le - theorem Finset.card_bunionᵢ - theorem Finset.card_bunionᵢ_le - theorem Finset.card_disjUnionᵢ + theorem Finset.card_disjiUnion + theorem Finset.prod_biUnion - theorem Finset.prod_bunionᵢ - theorem Finset.prod_disjUnionᵢ + theorem Finset.prod_disjiUnion Modified Mathlib/Algebra/BigOperators/Finprod.lean + theorem finprod_mem_biUnion - theorem finprod_mem_bunionᵢ + theorem finprod_mem_iUnion + theorem finprod_mem_sUnion - theorem finprod_mem_unionᵢ - theorem finprod_mem_unionₛ Modified Mathlib/Algebra/BigOperators/Finsupp.lean + theorem Finsupp.support_sum_eq_biUnion - theorem Finsupp.support_sum_eq_bunionᵢ Modified Mathlib/Algebra/BigOperators/Order.lean + theorem Finset.card_biUnion_le_card_mul - theorem Finset.card_bunionᵢ_le_card_mul + theorem Finset.card_le_card_biUnion + theorem Finset.card_le_card_biUnion_add_card_fiber + theorem Finset.card_le_card_biUnion_add_one - theorem Finset.card_le_card_bunionᵢ - theorem Finset.card_le_card_bunionᵢ_add_card_fiber - theorem Finset.card_le_card_bunionᵢ_add_one Modified Mathlib/Algebra/BigOperators/Ring.lean Modified Mathlib/Algebra/Bounds.lean + theorem ciSup_div + theorem ciSup_mul - theorem csupᵢ_div - theorem csupᵢ_mul + theorem mul_ciSup - theorem mul_csupᵢ Modified Mathlib/Algebra/DirectSum/Basic.lean + theorem DirectSum.IsInternal.addSubmonoid_iSup_eq_top - theorem DirectSum.IsInternal.addSubmonoid_supᵢ_eq_top Modified Mathlib/Algebra/DirectSum/Module.lean + theorem DirectSum.IsInternal.submodule_iSup_eq_top - theorem DirectSum.IsInternal.submodule_supᵢ_eq_top + theorem DirectSum.isInternal_submodule_iff_independent_and_iSup_eq_top - theorem DirectSum.isInternal_submodule_iff_independent_and_supᵢ_eq_top + theorem DirectSum.isInternal_submodule_of_independent_of_iSup_eq_top - theorem DirectSum.isInternal_submodule_of_independent_of_supᵢ_eq_top Modified Mathlib/Algebra/IndicatorFunction.lean + theorem Set.mulIndicator_finset_biUnion + theorem Set.mulIndicator_finset_biUnion_apply - theorem Set.mulIndicator_finset_bunionᵢ - theorem Set.mulIndicator_finset_bunionᵢ_apply + theorem Set.mulIndicator_iUnion_apply - theorem Set.mulIndicator_unionᵢ_apply Modified Mathlib/Algebra/Lie/Subalgebra.lean - theorem LieSubalgebra.infₛ_coe - theorem LieSubalgebra.infₛ_coe_to_submodule - theorem LieSubalgebra.infₛ_glb + theorem LieSubalgebra.sInf_coe + theorem LieSubalgebra.sInf_coe_to_submodule + theorem LieSubalgebra.sInf_glb + theorem LieSubalgebra.span_iUnion - theorem LieSubalgebra.span_unionᵢ Modified Mathlib/Algebra/Module/Injective.lean Modified Mathlib/Algebra/Module/Submodule/Bilinear.lean + theorem Submodule.map₂_iSup_left + theorem Submodule.map₂_iSup_right - theorem Submodule.map₂_supᵢ_left - theorem Submodule.map₂_supᵢ_right Modified Mathlib/Algebra/Module/Submodule/Lattice.lean + theorem Submodule.iInf_coe - theorem Submodule.infᵢ_coe - theorem Submodule.infₛ_coe + theorem Submodule.mem_iInf + theorem Submodule.mem_iSup_of_mem - theorem Submodule.mem_infᵢ - theorem Submodule.mem_infₛ + theorem Submodule.mem_sInf + theorem Submodule.mem_sSup_of_mem - theorem Submodule.mem_supᵢ_of_mem - theorem Submodule.mem_supₛ_of_mem + theorem Submodule.sInf_coe + theorem Submodule.sum_mem_biSup - theorem Submodule.sum_mem_bsupᵢ + theorem Submodule.sum_mem_iSup - theorem Submodule.sum_mem_supᵢ Modified Mathlib/Algebra/Module/Submodule/Pointwise.lean + theorem Submodule.neg_iInf + theorem Submodule.neg_iSup - theorem Submodule.neg_infᵢ - theorem Submodule.neg_supᵢ Modified Mathlib/Algebra/MonoidAlgebra/Degree.lean Modified Mathlib/Algebra/MonoidAlgebra/Ideal.lean Modified Mathlib/Algebra/MonoidAlgebra/Support.lean Modified Mathlib/Algebra/Order/Floor.lean Modified Mathlib/Algebra/Order/Nonneg/Ring.lean Modified Mathlib/Algebra/Order/Pointwise.lean - theorem cinfₛ_div - theorem cinfₛ_inv - theorem cinfₛ_mul - theorem cinfₛ_one + theorem csInf_div + theorem csInf_inv + theorem csInf_mul + theorem csInf_one + theorem csSup_div + theorem csSup_inv + theorem csSup_mul + theorem csSup_one - theorem csupₛ_div - theorem csupₛ_inv - theorem csupₛ_mul - theorem csupₛ_one - theorem infₛ_div - theorem infₛ_inv - theorem infₛ_mul - theorem infₛ_one + theorem sInf_div + theorem sInf_inv + theorem sInf_mul + theorem sInf_one + theorem sSup_div + theorem sSup_inv + theorem sSup_mul + theorem sSup_one - theorem supₛ_div - theorem supₛ_inv - theorem supₛ_mul - theorem supₛ_one Modified Mathlib/Algebra/Order/ToIntervalMod.lean + theorem Ico_eq_locus_Ioc_eq_iUnion_Ioo - theorem Ico_eq_locus_Ioc_eq_unionᵢ_Ioo + theorem iUnion_Icc_add_int_cast + theorem iUnion_Icc_add_zsmul + theorem iUnion_Icc_int_cast + theorem iUnion_Icc_zsmul + theorem iUnion_Ico_add_int_cast + theorem iUnion_Ico_add_zsmul + theorem iUnion_Ico_int_cast + theorem iUnion_Ico_zsmul + theorem iUnion_Ioc_add_int_cast + theorem iUnion_Ioc_add_zsmul + theorem iUnion_Ioc_int_cast + theorem iUnion_Ioc_zsmul - theorem unionᵢ_Icc_add_int_cast - theorem unionᵢ_Icc_add_zsmul - theorem unionᵢ_Icc_int_cast - theorem unionᵢ_Icc_zsmul - theorem unionᵢ_Ico_add_int_cast - theorem unionᵢ_Ico_add_zsmul - theorem unionᵢ_Ico_int_cast - theorem unionᵢ_Ico_zsmul - theorem unionᵢ_Ioc_add_int_cast - theorem unionᵢ_Ioc_add_zsmul - theorem unionᵢ_Ioc_int_cast - theorem unionᵢ_Ioc_zsmul Modified Mathlib/Algebra/Order/UpperLower.lean Modified Mathlib/Algebra/RingQuot.lean Modified Mathlib/Algebra/Star/Pointwise.lean + theorem Set.iInter_star + theorem Set.iUnion_star - theorem Set.interᵢ_star - theorem Set.unionᵢ_star Modified Mathlib/Algebra/Star/Subalgebra.lean + theorem StarSubalgebra.coe_iInf - theorem StarSubalgebra.coe_infᵢ - theorem StarSubalgebra.coe_infₛ + theorem StarSubalgebra.coe_sInf + theorem StarSubalgebra.iInf_toSubalgebra - theorem StarSubalgebra.infᵢ_toSubalgebra - theorem StarSubalgebra.infₛ_toSubalgebra + theorem StarSubalgebra.mem_iInf - theorem StarSubalgebra.mem_infᵢ - theorem StarSubalgebra.mem_infₛ + theorem StarSubalgebra.mem_sInf + theorem StarSubalgebra.sInf_toSubalgebra Modified Mathlib/Algebra/Support.lean + theorem Function.mulSupport_iInf + theorem Function.mulSupport_iSup - theorem Function.mulSupport_infᵢ - theorem Function.mulSupport_supᵢ Modified Mathlib/Algebra/Tropical/BigOperators.lean + theorem trop_iInf - theorem trop_infᵢ - theorem trop_infₛ_image + theorem trop_sInf_image - theorem untrop_sum_eq_infₛ_image + theorem untrop_sum_eq_sInf_image Modified Mathlib/Algebra/Tropical/Lattice.lean Modified Mathlib/AlgebraicTopology/TopologicalSimplex.lean Modified Mathlib/Analysis/BoxIntegral/Box/Basic.lean + theorem BoxIntegral.Box.biUnion_coe_eq_coe - theorem BoxIntegral.Box.bunionᵢ_coe_eq_coe + theorem BoxIntegral.Box.iUnion_Ioo_of_tendsto - theorem BoxIntegral.Box.unionᵢ_Ioo_of_tendsto Modified Mathlib/Analysis/BoxIntegral/Box/SubboxInduction.lean + theorem BoxIntegral.Box.iUnion_coe_splitCenterBox - theorem BoxIntegral.Box.unionᵢ_coe_splitCenterBox Modified Mathlib/Analysis/BoxIntegral/Partition/Basic.lean + theorem BoxIntegral.Prepartition.IsPartition.iUnion_eq + theorem BoxIntegral.Prepartition.IsPartition.iUnion_subset - theorem BoxIntegral.Prepartition.IsPartition.unionᵢ_eq - theorem BoxIntegral.Prepartition.IsPartition.unionᵢ_subset + def BoxIntegral.Prepartition.biUnion + def BoxIntegral.Prepartition.biUnionIndex + theorem BoxIntegral.Prepartition.biUnionIndex_le + theorem BoxIntegral.Prepartition.biUnionIndex_mem + theorem BoxIntegral.Prepartition.biUnionIndex_of_mem + theorem BoxIntegral.Prepartition.biUnion_assoc + theorem BoxIntegral.Prepartition.biUnion_congr + theorem BoxIntegral.Prepartition.biUnion_congr_of_le + theorem BoxIntegral.Prepartition.biUnion_le + theorem BoxIntegral.Prepartition.biUnion_le_iff + theorem BoxIntegral.Prepartition.biUnion_top - def BoxIntegral.Prepartition.bunionᵢ - def BoxIntegral.Prepartition.bunionᵢIndex - theorem BoxIntegral.Prepartition.bunionᵢIndex_le - theorem BoxIntegral.Prepartition.bunionᵢIndex_mem - theorem BoxIntegral.Prepartition.bunionᵢIndex_of_mem - theorem BoxIntegral.Prepartition.bunionᵢ_assoc - theorem BoxIntegral.Prepartition.bunionᵢ_congr - theorem BoxIntegral.Prepartition.bunionᵢ_congr_of_le - theorem BoxIntegral.Prepartition.bunionᵢ_le - theorem BoxIntegral.Prepartition.bunionᵢ_le_iff - theorem BoxIntegral.Prepartition.bunionᵢ_top +/- def BoxIntegral.Prepartition.disjUnion + theorem BoxIntegral.Prepartition.disjoint_boxes_of_disjoint_iUnion - theorem BoxIntegral.Prepartition.disjoint_boxes_of_disjoint_unionᵢ + theorem BoxIntegral.Prepartition.distortion_biUnion - theorem BoxIntegral.Prepartition.distortion_bunionᵢ +/- theorem BoxIntegral.Prepartition.distortion_disjUnion + theorem BoxIntegral.Prepartition.eq_of_boxes_subset_iUnion_superset - theorem BoxIntegral.Prepartition.eq_of_boxes_subset_unionᵢ_superset + theorem BoxIntegral.Prepartition.iUnion_biUnion + theorem BoxIntegral.Prepartition.iUnion_biUnion_partition + theorem BoxIntegral.Prepartition.iUnion_bot + theorem BoxIntegral.Prepartition.iUnion_def' + theorem BoxIntegral.Prepartition.iUnion_def + theorem BoxIntegral.Prepartition.iUnion_disjUnion + theorem BoxIntegral.Prepartition.iUnion_eq_empty + theorem BoxIntegral.Prepartition.iUnion_filter_not + theorem BoxIntegral.Prepartition.iUnion_inf + theorem BoxIntegral.Prepartition.iUnion_mono + theorem BoxIntegral.Prepartition.iUnion_ofWithBot + theorem BoxIntegral.Prepartition.iUnion_restrict + theorem BoxIntegral.Prepartition.iUnion_single + theorem BoxIntegral.Prepartition.iUnion_subset + theorem BoxIntegral.Prepartition.iUnion_top +/- theorem BoxIntegral.Prepartition.inf_def +/- theorem BoxIntegral.Prepartition.isPartitionDisjUnionOfEqDiff + theorem BoxIntegral.Prepartition.isPartition_iff_iUnion_eq - theorem BoxIntegral.Prepartition.isPartition_iff_unionᵢ_eq + theorem BoxIntegral.Prepartition.le_biUnionIndex + theorem BoxIntegral.Prepartition.le_biUnion_iff - theorem BoxIntegral.Prepartition.le_bunionᵢIndex - theorem BoxIntegral.Prepartition.le_bunionᵢ_iff + theorem BoxIntegral.Prepartition.le_iff_nonempty_imp_le_and_iUnion_subset - theorem BoxIntegral.Prepartition.le_iff_nonempty_imp_le_and_unionᵢ_subset + theorem BoxIntegral.Prepartition.mem_biUnion + theorem BoxIntegral.Prepartition.mem_biUnionIndex - theorem BoxIntegral.Prepartition.mem_bunionᵢ - theorem BoxIntegral.Prepartition.mem_bunionᵢIndex +/- theorem BoxIntegral.Prepartition.mem_disjUnion + theorem BoxIntegral.Prepartition.mem_iUnion - theorem BoxIntegral.Prepartition.mem_unionᵢ + theorem BoxIntegral.Prepartition.restrict_biUnion - theorem BoxIntegral.Prepartition.restrict_bunionᵢ + theorem BoxIntegral.Prepartition.subset_iUnion - theorem BoxIntegral.Prepartition.subset_unionᵢ + theorem BoxIntegral.Prepartition.sum_biUnion_boxes - theorem BoxIntegral.Prepartition.sum_bunionᵢ_boxes +/- theorem BoxIntegral.Prepartition.sum_disj_union_boxes - theorem BoxIntegral.Prepartition.unionᵢ_bot - theorem BoxIntegral.Prepartition.unionᵢ_bunionᵢ - theorem BoxIntegral.Prepartition.unionᵢ_bunionᵢ_partition - theorem BoxIntegral.Prepartition.unionᵢ_def' - theorem BoxIntegral.Prepartition.unionᵢ_def - theorem BoxIntegral.Prepartition.unionᵢ_disjUnion - theorem BoxIntegral.Prepartition.unionᵢ_eq_empty - theorem BoxIntegral.Prepartition.unionᵢ_filter_not - theorem BoxIntegral.Prepartition.unionᵢ_inf - theorem BoxIntegral.Prepartition.unionᵢ_mono - theorem BoxIntegral.Prepartition.unionᵢ_ofWithBot - theorem BoxIntegral.Prepartition.unionᵢ_restrict - theorem BoxIntegral.Prepartition.unionᵢ_single - theorem BoxIntegral.Prepartition.unionᵢ_subset - theorem BoxIntegral.Prepartition.unionᵢ_top Modified Mathlib/Analysis/BoxIntegral/Partition/Split.lean +/- theorem BoxIntegral.Prepartition.compl_congr + theorem BoxIntegral.Prepartition.exists_iUnion_eq_diff - theorem BoxIntegral.Prepartition.exists_unionᵢ_eq_diff + theorem BoxIntegral.Prepartition.iUnion_compl + theorem BoxIntegral.Prepartition.iUnion_split + theorem BoxIntegral.Prepartition.iUnion_splitMany - theorem BoxIntegral.Prepartition.unionᵢ_compl - theorem BoxIntegral.Prepartition.unionᵢ_split - theorem BoxIntegral.Prepartition.unionᵢ_splitMany Modified Mathlib/Analysis/Convex/Basic.lean + theorem Directed.convex_iUnion - theorem Directed.convex_unionᵢ + theorem DirectedOn.convex_sUnion - theorem DirectedOn.convex_unionₛ + theorem convex_iInter + theorem convex_iInter₂ - theorem convex_interᵢ - theorem convex_interᵢ₂ - theorem convex_interₛ + theorem convex_sInter Modified Mathlib/Analysis/Convex/Caratheodory.lean Modified Mathlib/Analysis/Convex/Combination.lean Modified Mathlib/Analysis/Convex/Exposed.lean - theorem IsExposed.interₛ + theorem IsExposed.sInter Modified Mathlib/Analysis/Convex/Extreme.lean + theorem isExtreme_biInter - theorem isExtreme_binterᵢ + theorem isExtreme_iInter - theorem isExtreme_interᵢ - theorem isExtreme_interₛ + theorem isExtreme_sInter Modified Mathlib/Analysis/Convex/Gauge.lean +/- theorem gauge_def' +/- theorem gauge_def Modified Mathlib/Analysis/Convex/Hull.lean + theorem convexHull_eq_iInter - theorem convexHull_eq_interᵢ Modified Mathlib/Analysis/Convex/Independent.lean Modified Mathlib/Analysis/Convex/Join.lean + theorem convexJoin_iUnion_left + theorem convexJoin_iUnion_right - theorem convexJoin_unionᵢ_left - theorem convexJoin_unionᵢ_right Modified Mathlib/Analysis/Convex/Normed.lean Modified Mathlib/Analysis/Convex/PartitionOfUnity.lean Modified Mathlib/Analysis/Convex/SimplicialComplex/Basic.lean Modified Mathlib/Analysis/Convex/Star.lean + theorem starConvex_iInter + theorem starConvex_iUnion - theorem starConvex_interᵢ - theorem starConvex_interₛ + theorem starConvex_sInter + theorem starConvex_sUnion - theorem starConvex_unionᵢ - theorem starConvex_unionₛ Modified Mathlib/Analysis/Convex/StoneSeparation.lean Modified Mathlib/Analysis/Convex/Strict.lean + theorem Directed.strictConvex_iUnion - theorem Directed.strictConvex_unionᵢ + theorem DirectedOn.strictConvex_sUnion - theorem DirectedOn.strictConvex_unionₛ Modified Mathlib/Analysis/Convex/Topology.lean Modified Mathlib/Analysis/LocallyConvex/BalancedCoreHull.lean + theorem balancedCore_eq_iInter - theorem balancedCore_eq_interᵢ Modified Mathlib/Analysis/LocallyConvex/Basic.lean + theorem Set.Finite.absorbs_iUnion - theorem Set.Finite.absorbs_unionᵢ + theorem absorbs_iUnion_finset - theorem absorbs_unionᵢ_finset + theorem balanced_iInter + theorem balanced_iInter₂ + theorem balanced_iUnion + theorem balanced_iUnion₂ - theorem balanced_interᵢ - theorem balanced_interᵢ₂ - theorem balanced_unionᵢ - theorem balanced_unionᵢ₂ Modified Mathlib/Analysis/LocallyConvex/Bounded.lean Modified Mathlib/Analysis/LocallyConvex/Polar.lean + theorem LinearMap.polar_eq_iInter - theorem LinearMap.polar_eq_interᵢ + theorem LinearMap.polar_iUnion - theorem LinearMap.polar_unionᵢ Modified Mathlib/Analysis/Normed/Group/Hom.lean +/- theorem NormedAddGroupHom.norm_def Modified Mathlib/Analysis/Normed/Group/Pointwise.lean Modified Mathlib/Analysis/Normed/Group/Quotient.lean Modified Mathlib/Analysis/Normed/Group/Seminorm.lean Modified Mathlib/Analysis/Normed/Order/UpperLower.lean Modified Mathlib/Analysis/NormedSpace/CompactOperator.lean Modified Mathlib/Analysis/Seminorm.lean + theorem Seminorm.ball_finset_sup_eq_iInter - theorem Seminorm.ball_finset_sup_eq_interᵢ + theorem Seminorm.closedBall_eq_biInter_ball - theorem Seminorm.closedBall_eq_binterᵢ_ball + theorem Seminorm.closedBall_finset_sup_eq_iInter - theorem Seminorm.closedBall_finset_sup_eq_interᵢ Modified Mathlib/Analysis/SpecificLimits/Basic.lean Modified Mathlib/Analysis/Subadditive.lean Modified Mathlib/CategoryTheory/Category/Pairwise.lean +/- def CategoryTheory.Pairwise.coconeιApp Modified Mathlib/CategoryTheory/Filtered.lean Modified Mathlib/CategoryTheory/Limits/FilteredColimitCommutesFiniteLimit.lean Modified Mathlib/CategoryTheory/Limits/Lattice.lean + theorem CategoryTheory.Limits.CompleteLattice.colimit_eq_iSup - theorem CategoryTheory.Limits.CompleteLattice.colimit_eq_supᵢ + theorem CategoryTheory.Limits.CompleteLattice.limit_eq_iInf - theorem CategoryTheory.Limits.CompleteLattice.limit_eq_infᵢ Modified Mathlib/CategoryTheory/Sites/Grothendieck.lean - theorem CategoryTheory.GrothendieckTopology.isGLB_infₛ + theorem CategoryTheory.GrothendieckTopology.isGLB_sInf Modified Mathlib/CategoryTheory/Sites/Sieves.lean - theorem CategoryTheory.Sieve.infₛ_apply + theorem CategoryTheory.Sieve.sInf_apply + theorem CategoryTheory.Sieve.sSup_apply - theorem CategoryTheory.Sieve.supₛ_apply Modified Mathlib/CategoryTheory/Subobject/Lattice.lean - def CategoryTheory.Subobject.infₛ - theorem CategoryTheory.Subobject.infₛ_le - theorem CategoryTheory.Subobject.le_infₛ + theorem CategoryTheory.Subobject.le_sInf + theorem CategoryTheory.Subobject.le_sSup - theorem CategoryTheory.Subobject.le_supₛ + def CategoryTheory.Subobject.sInf + theorem CategoryTheory.Subobject.sInf_le + def CategoryTheory.Subobject.sSup + theorem CategoryTheory.Subobject.sSup_le - def CategoryTheory.Subobject.supₛ - theorem CategoryTheory.Subobject.supₛ_le Modified Mathlib/Combinatorics/Catalan.lean Modified Mathlib/Combinatorics/Hall/Finite.lean + theorem Finset.all_card_le_biUnion_card_iff_existsInjective' - theorem Finset.all_card_le_bunionᵢ_card_iff_existsInjective' +/- theorem HallMarriageTheorem.hall_hard_inductive Modified Mathlib/Combinatorics/Hindman.lean Modified Mathlib/Combinatorics/SetFamily/Kleitman.lean + theorem Finset.card_biUnion_le_of_intersecting - theorem Finset.card_bunionᵢ_le_of_intersecting Modified Mathlib/Combinatorics/SimpleGraph/AdjMatrix.lean Modified Mathlib/Combinatorics/SimpleGraph/Basic.lean + theorem SimpleGraph.iInf_adj + theorem SimpleGraph.iInf_adj_of_nonempty + theorem SimpleGraph.iSup_adj - theorem SimpleGraph.infᵢ_adj - theorem SimpleGraph.infᵢ_adj_of_nonempty - theorem SimpleGraph.infₛ_adj - theorem SimpleGraph.infₛ_adj_of_nonempty + theorem SimpleGraph.sInf_adj + theorem SimpleGraph.sInf_adj_of_nonempty + theorem SimpleGraph.sSup_adj - theorem SimpleGraph.supᵢ_adj - theorem SimpleGraph.supₛ_adj Modified Mathlib/Combinatorics/SimpleGraph/Coloring.lean Modified Mathlib/Combinatorics/SimpleGraph/Connectivity.lean Modified Mathlib/Combinatorics/SimpleGraph/Density.lean + theorem Rel.interedges_biUnion + theorem Rel.interedges_biUnion_left + theorem Rel.interedges_biUnion_right - theorem Rel.interedges_bunionᵢ - theorem Rel.interedges_bunionᵢ_left - theorem Rel.interedges_bunionᵢ_right + theorem SimpleGraph.interedges_biUnion + theorem SimpleGraph.interedges_biUnion_left + theorem SimpleGraph.interedges_biUnion_right - theorem SimpleGraph.interedges_bunionᵢ - theorem SimpleGraph.interedges_bunionᵢ_left - theorem SimpleGraph.interedges_bunionᵢ_right Modified Mathlib/Combinatorics/SimpleGraph/Metric.lean Modified Mathlib/Combinatorics/SimpleGraph/Regularity/Equitabilise.lean Modified Mathlib/Combinatorics/SimpleGraph/Subgraph.lean + theorem SimpleGraph.Subgraph.edgeSet_iInf + theorem SimpleGraph.Subgraph.edgeSet_iSup - theorem SimpleGraph.Subgraph.edgeSet_infᵢ - theorem SimpleGraph.Subgraph.edgeSet_infₛ + theorem SimpleGraph.Subgraph.edgeSet_sInf + theorem SimpleGraph.Subgraph.edgeSet_sSup - theorem SimpleGraph.Subgraph.edgeSet_supᵢ - theorem SimpleGraph.Subgraph.edgeSet_supₛ + theorem SimpleGraph.Subgraph.iInf_adj + theorem SimpleGraph.Subgraph.iInf_adj_of_nonempty + theorem SimpleGraph.Subgraph.iSup_adj - theorem SimpleGraph.Subgraph.infᵢ_adj - theorem SimpleGraph.Subgraph.infᵢ_adj_of_nonempty - theorem SimpleGraph.Subgraph.infₛ_adj - theorem SimpleGraph.Subgraph.infₛ_adj_of_nonempty + theorem SimpleGraph.Subgraph.neighborSet_iInf + theorem SimpleGraph.Subgraph.neighborSet_iSup - theorem SimpleGraph.Subgraph.neighborSet_infᵢ - theorem SimpleGraph.Subgraph.neighborSet_infₛ + theorem SimpleGraph.Subgraph.neighborSet_sInf + theorem SimpleGraph.Subgraph.neighborSet_sSup - theorem SimpleGraph.Subgraph.neighborSet_supᵢ - theorem SimpleGraph.Subgraph.neighborSet_supₛ + theorem SimpleGraph.Subgraph.sInf_adj + theorem SimpleGraph.Subgraph.sInf_adj_of_nonempty + theorem SimpleGraph.Subgraph.sSup_adj - theorem SimpleGraph.Subgraph.supᵢ_adj - theorem SimpleGraph.Subgraph.supₛ_adj + theorem SimpleGraph.Subgraph.verts_iInf + theorem SimpleGraph.Subgraph.verts_iSup - theorem SimpleGraph.Subgraph.verts_infᵢ - theorem SimpleGraph.Subgraph.verts_infₛ + theorem SimpleGraph.Subgraph.verts_sInf + theorem SimpleGraph.Subgraph.verts_sSup - theorem SimpleGraph.Subgraph.verts_supᵢ - theorem SimpleGraph.Subgraph.verts_supₛ Modified Mathlib/Computability/EpsilonNFA.lean Modified Mathlib/Computability/Language.lean + theorem Language.add_iSup - theorem Language.add_supᵢ + theorem Language.iSup_add + theorem Language.iSup_mul + theorem Language.kstar_eq_iSup_pow - theorem Language.kstar_eq_supᵢ_pow + theorem Language.mem_iSup - theorem Language.mem_supᵢ + theorem Language.mul_iSup - theorem Language.mul_supᵢ - theorem Language.supᵢ_add - theorem Language.supᵢ_mul Modified Mathlib/Computability/RegularExpressions.lean Modified Mathlib/Computability/TMToPartrec.lean + theorem Turing.PartrecToTM2.supports_biUnion - theorem Turing.PartrecToTM2.supports_bunionᵢ Modified Mathlib/Computability/TuringMachine.lean Modified Mathlib/Data/Analysis/Filter.lean Modified Mathlib/Data/Dfinsupp/Basic.lean + theorem AddSubmonoid.iSup_eq_mrange_dfinsupp_sumAddHom + theorem AddSubmonoid.mem_iSup_iff_exists_dfinsupp' + theorem AddSubmonoid.mem_iSup_iff_exists_dfinsupp - theorem AddSubmonoid.mem_supᵢ_iff_exists_dfinsupp' - theorem AddSubmonoid.mem_supᵢ_iff_exists_dfinsupp - theorem AddSubmonoid.supᵢ_eq_mrange_dfinsupp_sumAddHom + theorem Dfinsupp.add_closure_iUnion_range_single - theorem Dfinsupp.add_closure_unionᵢ_range_single Modified Mathlib/Data/ENat/Lattice.lean + theorem ENat.coe_iSup - theorem ENat.coe_supᵢ + theorem ENat.iSup_coe_lt_top - theorem ENat.supᵢ_coe_lt_top Modified Mathlib/Data/Finset/Basic.lean + theorem Directed.exists_mem_subset_of_finset_subset_biUnion - theorem Directed.exists_mem_subset_of_finset_subset_bunionᵢ + theorem DirectedOn.exists_mem_subset_of_finset_subset_biUnion - theorem DirectedOn.exists_mem_subset_of_finset_subset_bunionᵢ + theorem Finset.Nonempty.biUnion - theorem Finset.Nonempty.bunionᵢ + theorem Finset.biUnion_biUnion + theorem Finset.biUnion_congr + theorem Finset.biUnion_empty + theorem Finset.biUnion_filter_eq_of_maps_to + theorem Finset.biUnion_insert + theorem Finset.biUnion_inter + theorem Finset.biUnion_mono + theorem Finset.biUnion_nonempty + theorem Finset.biUnion_singleton_eq_self + theorem Finset.biUnion_subset + theorem Finset.biUnion_subset_biUnion_of_subset_left + theorem Finset.biUnion_subset_iff_forall_subset + theorem Finset.biUnion_val - theorem Finset.bunionᵢ_bunionᵢ - theorem Finset.bunionᵢ_congr - theorem Finset.bunionᵢ_empty - theorem Finset.bunionᵢ_filter_eq_of_maps_to - theorem Finset.bunionᵢ_insert - theorem Finset.bunionᵢ_inter - theorem Finset.bunionᵢ_mono - theorem Finset.bunionᵢ_nonempty - theorem Finset.bunionᵢ_singleton_eq_self - theorem Finset.bunionᵢ_subset - theorem Finset.bunionᵢ_subset_bunionᵢ_of_subset_left - theorem Finset.bunionᵢ_subset_iff_forall_subset - theorem Finset.bunionᵢ_val + theorem Finset.coe_biUnion - theorem Finset.coe_bunionᵢ - theorem Finset.coe_disjUnionᵢ + theorem Finset.coe_disjiUnion - def Finset.disjUnionᵢ - theorem Finset.disjUnionᵢ_cons - theorem Finset.disjUnionᵢ_disjUnionᵢ - theorem Finset.disjUnionᵢ_empty - theorem Finset.disjUnionᵢ_eq_bunionᵢ - theorem Finset.disjUnionᵢ_filter_eq_of_maps_to - theorem Finset.disjUnionᵢ_val + def Finset.disjiUnion + theorem Finset.disjiUnion_cons + theorem Finset.disjiUnion_disjiUnion + theorem Finset.disjiUnion_empty + theorem Finset.disjiUnion_eq_biUnion + theorem Finset.disjiUnion_filter_eq_of_maps_to + theorem Finset.disjiUnion_val + theorem Finset.disjoint_biUnion_left + theorem Finset.disjoint_biUnion_right - theorem Finset.disjoint_bunionᵢ_left - theorem Finset.disjoint_bunionᵢ_right + theorem Finset.erase_biUnion - theorem Finset.erase_bunionᵢ + theorem Finset.filter_biUnion - theorem Finset.filter_bunionᵢ + theorem Finset.inter_biUnion - theorem Finset.inter_bunionᵢ + theorem Finset.mem_biUnion - theorem Finset.mem_bunionᵢ - theorem Finset.mem_disjUnionᵢ + theorem Finset.mem_disjiUnion + theorem Finset.singleton_biUnion - theorem Finset.singleton_bunionᵢ - theorem Finset.singleton_disjUnionᵢ + theorem Finset.singleton_disjiUnion + theorem Finset.subset_biUnion_of_mem - theorem Finset.subset_bunionᵢ_of_mem Modified Mathlib/Data/Finset/Fold.lean - theorem Finset.fold_disjUnionᵢ + theorem Finset.fold_disjiUnion Modified Mathlib/Data/Finset/Functor.lean Modified Mathlib/Data/Finset/Image.lean + theorem Finset.biUnion_image + theorem Finset.biUnion_singleton - theorem Finset.bunionᵢ_image - theorem Finset.bunionᵢ_singleton - theorem Finset.disjUnionᵢ_map + theorem Finset.disjiUnion_map + theorem Finset.image_biUnion + theorem Finset.image_biUnion_filter_eq - theorem Finset.image_bunionᵢ - theorem Finset.image_bunionᵢ_filter_eq - theorem Finset.map_disjUnionᵢ + theorem Finset.map_disjiUnion Modified Mathlib/Data/Finset/Lattice.lean + theorem Finset.iInf_biUnion + theorem Finset.iInf_coe + theorem Finset.iInf_finset_image + theorem Finset.iInf_insert + theorem Finset.iInf_insert_update + theorem Finset.iInf_option_toFinset + theorem Finset.iInf_singleton + theorem Finset.iInf_union + theorem Finset.iSup_biUnion + theorem Finset.iSup_coe + theorem Finset.iSup_finset_image + theorem Finset.iSup_insert + theorem Finset.iSup_insert_update + theorem Finset.iSup_option_toFinset + theorem Finset.iSup_singleton + theorem Finset.iSup_union + theorem Finset.inf'_biUnion - theorem Finset.inf'_bunionᵢ + theorem Finset.inf_biUnion - theorem Finset.inf_bunionᵢ + theorem Finset.inf_eq_iInf - theorem Finset.inf_eq_infᵢ - theorem Finset.inf_eq_infₛ_image + theorem Finset.inf_eq_sInf_image - theorem Finset.inf_id_eq_infₛ + theorem Finset.inf_id_eq_sInf - theorem Finset.inf_id_set_eq_interₛ + theorem Finset.inf_id_set_eq_sInter + theorem Finset.inf_set_eq_iInter - theorem Finset.inf_set_eq_interᵢ - theorem Finset.infᵢ_bunionᵢ - theorem Finset.infᵢ_coe - theorem Finset.infᵢ_finset_image - theorem Finset.infᵢ_insert - theorem Finset.infᵢ_insert_update - theorem Finset.infᵢ_option_toFinset - theorem Finset.infᵢ_singleton - theorem Finset.infᵢ_union + theorem Finset.set_biInter_biUnion + theorem Finset.set_biInter_coe + theorem Finset.set_biInter_finset_image + theorem Finset.set_biInter_insert + theorem Finset.set_biInter_insert_update + theorem Finset.set_biInter_inter + theorem Finset.set_biInter_option_toFinset + theorem Finset.set_biInter_singleton + theorem Finset.set_biUnion_biUnion + theorem Finset.set_biUnion_coe + theorem Finset.set_biUnion_finset_image + theorem Finset.set_biUnion_insert + theorem Finset.set_biUnion_insert_update + theorem Finset.set_biUnion_option_toFinset + theorem Finset.set_biUnion_preimage_singleton + theorem Finset.set_biUnion_singleton + theorem Finset.set_biUnion_union - theorem Finset.set_binterᵢ_bunionᵢ - theorem Finset.set_binterᵢ_coe - theorem Finset.set_binterᵢ_finset_image - theorem Finset.set_binterᵢ_insert - theorem Finset.set_binterᵢ_insert_update - theorem Finset.set_binterᵢ_inter - theorem Finset.set_binterᵢ_option_toFinset - theorem Finset.set_binterᵢ_singleton - theorem Finset.set_bunionᵢ_bunionᵢ - theorem Finset.set_bunionᵢ_coe - theorem Finset.set_bunionᵢ_finset_image - theorem Finset.set_bunionᵢ_insert - theorem Finset.set_bunionᵢ_insert_update - theorem Finset.set_bunionᵢ_option_toFinset - theorem Finset.set_bunionᵢ_preimage_singleton - theorem Finset.set_bunionᵢ_singleton - theorem Finset.set_bunionᵢ_union + theorem Finset.subset_set_biUnion_of_mem - theorem Finset.subset_set_bunionᵢ_of_mem + theorem Finset.sup'_biUnion - theorem Finset.sup'_bunionᵢ + theorem Finset.sup_biUnion - theorem Finset.sup_bunionᵢ + theorem Finset.sup_eq_biUnion - theorem Finset.sup_eq_bunionᵢ + theorem Finset.sup_eq_iSup + theorem Finset.sup_eq_sSup_image - theorem Finset.sup_eq_supᵢ - theorem Finset.sup_eq_supₛ_image + theorem Finset.sup_id_eq_sSup - theorem Finset.sup_id_eq_supₛ + theorem Finset.sup_id_set_eq_sUnion - theorem Finset.sup_id_set_eq_unionₛ + theorem Finset.sup_set_eq_biUnion - theorem Finset.sup_set_eq_bunionᵢ - theorem Finset.supᵢ_bunionᵢ - theorem Finset.supᵢ_coe - theorem Finset.supᵢ_finset_image - theorem Finset.supᵢ_insert - theorem Finset.supᵢ_insert_update - theorem Finset.supᵢ_option_toFinset - theorem Finset.supᵢ_singleton - theorem Finset.supᵢ_union + theorem Set.iInter_eq_iInter_finset' + theorem Set.iInter_eq_iInter_finset + theorem Set.iUnion_eq_iUnion_finset' + theorem Set.iUnion_eq_iUnion_finset - theorem Set.interᵢ_eq_interᵢ_finset' - theorem Set.interᵢ_eq_interᵢ_finset - theorem Set.unionᵢ_eq_unionᵢ_finset' - theorem Set.unionᵢ_eq_unionᵢ_finset + theorem iInf_eq_iInf_finset' + theorem iInf_eq_iInf_finset + theorem iSup_eq_iSup_finset' + theorem iSup_eq_iSup_finset - theorem infᵢ_eq_infᵢ_finset' - theorem infᵢ_eq_infᵢ_finset - theorem supᵢ_eq_supᵢ_finset' - theorem supᵢ_eq_supᵢ_finset Modified Mathlib/Data/Finset/NAry.lean + theorem Finset.biUnion_image_left + theorem Finset.biUnion_image_right - theorem Finset.bunionᵢ_image_left - theorem Finset.bunionᵢ_image_right Modified Mathlib/Data/Finset/Option.lean + theorem Finset.eraseNone_eq_biUnion - theorem Finset.eraseNone_eq_bunionᵢ Modified Mathlib/Data/Finset/PImage.lean Modified Mathlib/Data/Finset/Pairwise.lean + theorem Set.PairwiseDisjoint.biUnion_finset - theorem Set.PairwiseDisjoint.bunionᵢ_finset Modified Mathlib/Data/Finset/Pi.lean Modified Mathlib/Data/Finset/Pointwise.lean + theorem Finset.biUnion_op_smul_finset + theorem Finset.biUnion_smul_finset - theorem Finset.bunionᵢ_op_smul_finset - theorem Finset.bunionᵢ_smul_finset Modified Mathlib/Data/Finset/Powerset.lean + theorem Finset.powerset_card_biUnion - theorem Finset.powerset_card_bunionᵢ - theorem Finset.powerset_card_disjUnionᵢ + theorem Finset.powerset_card_disjiUnion Modified Mathlib/Data/Finset/Prod.lean + theorem Finset.product_biUnion - theorem Finset.product_bunionᵢ + theorem Finset.product_eq_biUnion + theorem Finset.product_eq_biUnion_right - theorem Finset.product_eq_bunionᵢ - theorem Finset.product_eq_bunionᵢ_right Modified Mathlib/Data/Finset/Sigma.lean - theorem Finset.disjUnionᵢ_map_sigma_mk + theorem Finset.disjiUnion_map_sigma_mk + theorem Finset.sigma_eq_biUnion - theorem Finset.sigma_eq_bunionᵢ Modified Mathlib/Data/Finset/Slice.lean + theorem Finset.biUnion_slice - theorem Finset.bunionᵢ_slice + theorem Set.sized_iUnion + theorem Set.sized_iUnion₂ - theorem Set.sized_unionᵢ - theorem Set.sized_unionᵢ₂ Modified Mathlib/Data/Finset/Sups.lean + theorem Finset.biUnion_image_inf_left + theorem Finset.biUnion_image_inf_right + theorem Finset.biUnion_image_sup_left + theorem Finset.biUnion_image_sup_right - theorem Finset.bunionᵢ_image_inf_left - theorem Finset.bunionᵢ_image_inf_right - theorem Finset.bunionᵢ_image_sup_left - theorem Finset.bunionᵢ_image_sup_right Modified Mathlib/Data/Finsupp/Basic.lean Modified Mathlib/Data/Fintype/Card.lean Modified Mathlib/Data/Fintype/Lattice.lean + theorem Finset.inf_univ_eq_iInf - theorem Finset.inf_univ_eq_infᵢ + theorem Finset.sup_univ_eq_iSup - theorem Finset.sup_univ_eq_supᵢ Modified Mathlib/Data/Fintype/List.lean Modified Mathlib/Data/Fintype/Order.lean Modified Mathlib/Data/Int/ConditionallyCompleteOrder.lean - theorem Int.cinfₛ_empty - theorem Int.cinfₛ_eq_least_of_bdd - theorem Int.cinfₛ_mem - theorem Int.cinfₛ_of_not_bdd_below + theorem Int.csInf_empty + theorem Int.csInf_eq_least_of_bdd + theorem Int.csInf_mem + theorem Int.csInf_of_not_bdd_below + theorem Int.csSup_empty + theorem Int.csSup_eq_greatest_of_bdd + theorem Int.csSup_mem + theorem Int.csSup_of_not_bdd_above - theorem Int.csupₛ_empty - theorem Int.csupₛ_eq_greatest_of_bdd - theorem Int.csupₛ_mem - theorem Int.csupₛ_of_not_bdd_above Modified Mathlib/Data/Multiset/Fintype.lean Modified Mathlib/Data/MvPolynomial/Basic.lean Modified Mathlib/Data/MvPolynomial/Monad.lean Modified Mathlib/Data/MvPolynomial/Variables.lean + theorem MvPolynomial.vars_eq_support_biUnion_support - theorem MvPolynomial.vars_eq_support_bunionᵢ_support +/- theorem MvPolynomial.vars_sum_subset Modified Mathlib/Data/Nat/Lattice.lean + theorem Nat.iInf_lt_succ' + theorem Nat.iInf_lt_succ + theorem Nat.iInf_of_empty + theorem Nat.iSup_lt_succ' + theorem Nat.iSup_lt_succ - theorem Nat.infᵢ_lt_succ' - theorem Nat.infᵢ_lt_succ - theorem Nat.infᵢ_of_empty - theorem Nat.infₛ_add' - theorem Nat.infₛ_add - theorem Nat.infₛ_def - theorem Nat.infₛ_empty - theorem Nat.infₛ_eq_zero - theorem Nat.infₛ_mem - theorem Nat.infₛ_upward_closed_eq_succ_iff - theorem Nat.nonempty_of_infₛ_eq_succ - theorem Nat.nonempty_of_pos_infₛ + theorem Nat.nonempty_of_pos_sInf + theorem Nat.nonempty_of_sInf_eq_succ - theorem Nat.not_mem_of_lt_infₛ + theorem Nat.not_mem_of_lt_sInf + theorem Nat.sInf_add' + theorem Nat.sInf_add + theorem Nat.sInf_def + theorem Nat.sInf_empty + theorem Nat.sInf_eq_zero + theorem Nat.sInf_mem + theorem Nat.sInf_upward_closed_eq_succ_iff + theorem Nat.sSup_def + theorem Nat.sSup_mem - theorem Nat.supᵢ_lt_succ' - theorem Nat.supᵢ_lt_succ - theorem Nat.supₛ_def - theorem Nat.supₛ_mem + theorem Set.Infinite.Nat.sSup_eq_zero - theorem Set.Infinite.Nat.supₛ_eq_zero + theorem Set.biInter_lt_succ' + theorem Set.biInter_lt_succ + theorem Set.biUnion_lt_succ' + theorem Set.biUnion_lt_succ - theorem Set.binterᵢ_lt_succ' - theorem Set.binterᵢ_lt_succ - theorem Set.bunionᵢ_lt_succ' - theorem Set.bunionᵢ_lt_succ Modified Mathlib/Data/Nat/Pairing.lean + theorem Set.iInter_unpair + theorem Set.iUnion_unpair + theorem Set.iUnion_unpair_prod - theorem Set.interᵢ_unpair - theorem Set.unionᵢ_unpair - theorem Set.unionᵢ_unpair_prod + theorem iInf_unpair + theorem iSup_unpair - theorem infᵢ_unpair - theorem supᵢ_unpair Modified Mathlib/Data/Polynomial/FieldDivision.lean Modified Mathlib/Data/Polynomial/RingDivision.lean Modified Mathlib/Data/Real/Basic.lean + theorem Real.add_neg_lt_sSup - theorem Real.add_neg_lt_supₛ + theorem Real.ciInf_const_zero + theorem Real.ciInf_empty + theorem Real.ciSup_const_zero + theorem Real.ciSup_empty - theorem Real.cinfᵢ_const_zero - theorem Real.cinfᵢ_empty - theorem Real.csupᵢ_const_zero - theorem Real.csupᵢ_empty + theorem Real.iInf_nonneg + theorem Real.iInf_of_not_bddBelow + theorem Real.iSup_of_not_bddAbove - theorem Real.infᵢ_nonneg - theorem Real.infᵢ_of_not_bddBelow - theorem Real.infₛ_def - theorem Real.infₛ_empty - theorem Real.infₛ_le_iff - theorem Real.infₛ_le_supₛ - theorem Real.infₛ_nonneg - theorem Real.infₛ_nonpos - theorem Real.infₛ_of_not_bddBelow + theorem Real.le_sSup_iff - theorem Real.le_supₛ_iff - theorem Real.lt_infₛ_add_pos + theorem Real.lt_sInf_add_pos + theorem Real.sInf_def + theorem Real.sInf_empty + theorem Real.sInf_le_iff + theorem Real.sInf_le_sSup + theorem Real.sInf_nonneg + theorem Real.sInf_nonpos + theorem Real.sInf_of_not_bddBelow + theorem Real.sSup_def + theorem Real.sSup_empty + theorem Real.sSup_nonneg + theorem Real.sSup_nonpos + theorem Real.sSup_of_not_bddAbove + theorem Real.sSup_univ - theorem Real.supᵢ_of_not_bddAbove - theorem Real.supₛ_def - theorem Real.supₛ_empty - theorem Real.supₛ_nonneg - theorem Real.supₛ_nonpos - theorem Real.supₛ_of_not_bddAbove - theorem Real.supₛ_univ Modified Mathlib/Data/Real/ENNReal.lean + theorem ENNReal.Ioo_zero_top_eq_iUnion_Ico_zpow - theorem ENNReal.Ioo_zero_top_eq_unionᵢ_Ico_zpow + theorem ENNReal.add_iInf - theorem ENNReal.add_infᵢ + theorem ENNReal.coe_iInf - theorem ENNReal.coe_infᵢ - theorem ENNReal.coe_infₛ + theorem ENNReal.coe_sInf + theorem ENNReal.coe_sSup - theorem ENNReal.coe_supₛ + theorem ENNReal.iInf_add + theorem ENNReal.iInf_add_iInf + theorem ENNReal.iInf_ennreal + theorem ENNReal.iInf_mul + theorem ENNReal.iInf_mul_of_ne + theorem ENNReal.iInf_ne_top + theorem ENNReal.iInf_sum + theorem ENNReal.iInter_Ici_coe_nat + theorem ENNReal.iInter_Ioi_coe_nat + theorem ENNReal.iSup_coe_nat + theorem ENNReal.iSup_ennreal + theorem ENNReal.iSup_eq_zero + theorem ENNReal.iSup_ne_top + theorem ENNReal.iSup_sub + theorem ENNReal.iSup_zero_eq_zero + theorem ENNReal.iUnion_Icc_coe_nat + theorem ENNReal.iUnion_Ico_coe_nat + theorem ENNReal.iUnion_Iic_coe_nat + theorem ENNReal.iUnion_Iio_coe_nat + theorem ENNReal.iUnion_Ioc_coe_nat + theorem ENNReal.iUnion_Ioo_coe_nat - theorem ENNReal.infᵢ_add - theorem ENNReal.infᵢ_add_infᵢ - theorem ENNReal.infᵢ_ennreal - theorem ENNReal.infᵢ_mul - theorem ENNReal.infᵢ_mul_of_ne - theorem ENNReal.infᵢ_ne_top - theorem ENNReal.infᵢ_sum - theorem ENNReal.infₛ_add - theorem ENNReal.interᵢ_Ici_coe_nat - theorem ENNReal.interᵢ_Ioi_coe_nat + theorem ENNReal.mul_iInf + theorem ENNReal.mul_iInf_of_ne - theorem ENNReal.mul_infᵢ - theorem ENNReal.mul_infᵢ_of_ne + theorem ENNReal.sInf_add - theorem ENNReal.sub_eq_infₛ + theorem ENNReal.sub_eq_sInf + theorem ENNReal.sub_iInf - theorem ENNReal.sub_infᵢ - theorem ENNReal.supᵢ_coe_nat - theorem ENNReal.supᵢ_ennreal - theorem ENNReal.supᵢ_eq_zero - theorem ENNReal.supᵢ_ne_top - theorem ENNReal.supᵢ_sub - theorem ENNReal.supᵢ_zero_eq_zero + theorem ENNReal.toNNReal_iInf - theorem ENNReal.toNNReal_infᵢ + theorem ENNReal.toReal_iInf - theorem ENNReal.toReal_infᵢ - theorem ENNReal.unionᵢ_Icc_coe_nat - theorem ENNReal.unionᵢ_Ico_coe_nat - theorem ENNReal.unionᵢ_Iic_coe_nat - theorem ENNReal.unionᵢ_Iio_coe_nat - theorem ENNReal.unionᵢ_Ioc_coe_nat - theorem ENNReal.unionᵢ_Ioo_coe_nat Modified Mathlib/Data/Real/Hyperreal.lean + theorem Hyperreal.isSt_sSup - theorem Hyperreal.isSt_supₛ + theorem Hyperreal.st_eq_sSup - theorem Hyperreal.st_eq_supₛ Modified Mathlib/Data/Real/NNReal.lean + theorem NNReal.coe_iInf + theorem NNReal.coe_iSup - theorem NNReal.coe_infᵢ - theorem NNReal.coe_infₛ + theorem NNReal.coe_sInf + theorem NNReal.coe_sSup - theorem NNReal.coe_supᵢ - theorem NNReal.coe_supₛ + theorem NNReal.iInf_const_zero + theorem NNReal.iInf_empty + theorem NNReal.iInf_mul + theorem NNReal.iSup_div + theorem NNReal.iSup_empty + theorem NNReal.iSup_mul + theorem NNReal.iSup_mul_iSup_le + theorem NNReal.iSup_mul_le + theorem NNReal.iSup_of_not_bddAbove - theorem NNReal.infᵢ_const_zero - theorem NNReal.infᵢ_empty - theorem NNReal.infᵢ_mul - theorem NNReal.infₛ_empty + theorem NNReal.le_iInf_add_iInf + theorem NNReal.le_iInf_mul + theorem NNReal.le_iInf_mul_iInf - theorem NNReal.le_infᵢ_add_infᵢ - theorem NNReal.le_infᵢ_mul - theorem NNReal.le_infᵢ_mul_infᵢ + theorem NNReal.le_mul_iInf - theorem NNReal.le_mul_infᵢ + theorem NNReal.mul_iInf + theorem NNReal.mul_iSup + theorem NNReal.mul_iSup_le - theorem NNReal.mul_infᵢ - theorem NNReal.mul_supᵢ - theorem NNReal.mul_supᵢ_le + theorem NNReal.sInf_empty - theorem NNReal.supᵢ_div - theorem NNReal.supᵢ_empty - theorem NNReal.supᵢ_mul - theorem NNReal.supᵢ_mul_le - theorem NNReal.supᵢ_mul_supᵢ_le - theorem NNReal.supᵢ_of_not_bddAbove Modified Mathlib/Data/Real/Pointwise.lean + theorem Real.iInf_mul_of_nonneg + theorem Real.iInf_mul_of_nonpos + theorem Real.iSup_mul_of_nonneg + theorem Real.iSup_mul_of_nonpos - theorem Real.infᵢ_mul_of_nonneg - theorem Real.infᵢ_mul_of_nonpos - theorem Real.infₛ_smul_of_nonneg - theorem Real.infₛ_smul_of_nonpos + theorem Real.mul_iInf_of_nonneg + theorem Real.mul_iInf_of_nonpos + theorem Real.mul_iSup_of_nonneg + theorem Real.mul_iSup_of_nonpos - theorem Real.mul_infᵢ_of_nonneg - theorem Real.mul_infᵢ_of_nonpos - theorem Real.mul_supᵢ_of_nonneg - theorem Real.mul_supᵢ_of_nonpos + theorem Real.sInf_smul_of_nonneg + theorem Real.sInf_smul_of_nonpos + theorem Real.sSup_smul_of_nonneg + theorem Real.sSup_smul_of_nonpos + theorem Real.smul_iInf_of_nonneg + theorem Real.smul_iInf_of_nonpos + theorem Real.smul_iSup_of_nonneg + theorem Real.smul_iSup_of_nonpos - theorem Real.smul_infᵢ_of_nonneg - theorem Real.smul_infᵢ_of_nonpos - theorem Real.smul_supᵢ_of_nonneg - theorem Real.smul_supᵢ_of_nonpos - theorem Real.supᵢ_mul_of_nonneg - theorem Real.supᵢ_mul_of_nonpos - theorem Real.supₛ_smul_of_nonneg - theorem Real.supₛ_smul_of_nonpos Modified Mathlib/Data/Semiquot.lean Modified Mathlib/Data/Set/Accumulate.lean + theorem Set.biUnion_accumulate - theorem Set.bunionᵢ_accumulate + theorem Set.iUnion_accumulate +/- theorem Set.subset_accumulate - theorem Set.unionᵢ_accumulate Modified Mathlib/Data/Set/Countable.lean + theorem Set.Countable.biUnion_iff - theorem Set.Countable.bunionᵢ_iff + theorem Set.Countable.sUnion_iff - theorem Set.Countable.unionₛ_iff + theorem Set.countable_iUnion + theorem Set.countable_iUnion_iff - theorem Set.countable_unionᵢ - theorem Set.countable_unionᵢ_iff + theorem Set.exists_seq_iSup_eq_top_iff_countable - theorem Set.exists_seq_supᵢ_eq_top_iff_countable Modified Mathlib/Data/Set/Finite.lean + theorem Finite.Set.finite_biUnion - theorem Finite.Set.finite_bunionᵢ + theorem Set.Finite.bddAbove_biUnion - theorem Set.Finite.bddAbove_bunionᵢ + theorem Set.Finite.bddBelow_biUnion - theorem Set.Finite.bddBelow_bunionᵢ + theorem Set.Finite.biUnion' + theorem Set.Finite.biUnion - theorem Set.Finite.bunionᵢ' - theorem Set.Finite.bunionᵢ + theorem Set.Finite.iInf_biSup_of_antitone + theorem Set.Finite.iInf_biSup_of_monotone + theorem Set.Finite.iSup_biInf_of_antitone + theorem Set.Finite.iSup_biInf_of_monotone - theorem Set.Finite.infᵢ_bsupᵢ_of_antitone - theorem Set.Finite.infᵢ_bsupᵢ_of_monotone - theorem Set.Finite.interₛ + theorem Set.Finite.sInter + theorem Set.Finite.sUnion - theorem Set.Finite.supᵢ_binfᵢ_of_antitone - theorem Set.Finite.supᵢ_binfᵢ_of_monotone - theorem Set.Finite.unionₛ + theorem Set.eq_finite_iUnion_of_finite_subset_iUnion - theorem Set.eq_finite_unionᵢ_of_finite_subset_unionᵢ + theorem Set.finite_diff_iUnion_Ioo' + theorem Set.finite_diff_iUnion_Ioo - theorem Set.finite_diff_unionᵢ_Ioo' - theorem Set.finite_diff_unionᵢ_Ioo + theorem Set.finite_iUnion + theorem Set.finite_subset_iUnion - theorem Set.finite_subset_unionᵢ - theorem Set.finite_unionᵢ - def Set.fintypeBUnionᵢ + def Set.fintypeBiUnion + theorem Set.iInf_iSup_of_antitone + theorem Set.iInf_iSup_of_monotone + theorem Set.iInter_iUnion_of_antitone + theorem Set.iInter_iUnion_of_monotone + theorem Set.iSup_iInf_of_antitone + theorem Set.iSup_iInf_of_monotone + theorem Set.iUnion_iInter_of_antitone + theorem Set.iUnion_iInter_of_monotone + theorem Set.iUnion_pi_of_monotone + theorem Set.iUnion_univ_pi_of_monotone - theorem Set.infᵢ_supᵢ_of_antitone - theorem Set.infᵢ_supᵢ_of_monotone - theorem Set.interᵢ_unionᵢ_of_antitone - theorem Set.interᵢ_unionᵢ_of_monotone - theorem Set.supᵢ_infᵢ_of_antitone - theorem Set.supᵢ_infᵢ_of_monotone - theorem Set.unionᵢ_interᵢ_of_antitone - theorem Set.unionᵢ_interᵢ_of_monotone - theorem Set.unionᵢ_pi_of_monotone - theorem Set.unionᵢ_univ_pi_of_monotone Modified Mathlib/Data/Set/Functor.lean Modified Mathlib/Data/Set/Intervals/Disjoint.lean + theorem IsGLB.biUnion_Ici_eq_Ici + theorem IsGLB.biUnion_Ici_eq_Ioi + theorem IsGLB.biUnion_Ioi_eq - theorem IsGLB.bunionᵢ_Ici_eq_Ici - theorem IsGLB.bunionᵢ_Ici_eq_Ioi - theorem IsGLB.bunionᵢ_Ioi_eq + theorem IsGLB.iUnion_Ioi_eq - theorem IsGLB.unionᵢ_Ioi_eq + theorem IsLUB.biUnion_Iic_eq_Iic + theorem IsLUB.biUnion_Iic_eq_Iio + theorem IsLUB.biUnion_Iio_eq - theorem IsLUB.bunionᵢ_Iic_eq_Iic - theorem IsLUB.bunionᵢ_Iic_eq_Iio - theorem IsLUB.bunionᵢ_Iio_eq + theorem IsLUB.iUnion_Iio_eq - theorem IsLUB.unionᵢ_Iio_eq + theorem Set.biUnion_Ico_eq_Iio_self_iff + theorem Set.biUnion_Ioc_eq_Ioi_self_iff - theorem Set.bunionᵢ_Ico_eq_Iio_self_iff - theorem Set.bunionᵢ_Ioc_eq_Ioi_self_iff + theorem Set.iUnion_Icc_left + theorem Set.iUnion_Icc_right + theorem Set.iUnion_Ici + theorem Set.iUnion_Ico_eq_Iio_self_iff + theorem Set.iUnion_Ico_left + theorem Set.iUnion_Ico_right + theorem Set.iUnion_Iic + theorem Set.iUnion_Iio + theorem Set.iUnion_Ioc_eq_Ioi_self_iff + theorem Set.iUnion_Ioc_left + theorem Set.iUnion_Ioc_right + theorem Set.iUnion_Ioi + theorem Set.iUnion_Ioo_left + theorem Set.iUnion_Ioo_right - theorem Set.unionᵢ_Icc_left - theorem Set.unionᵢ_Icc_right - theorem Set.unionᵢ_Ici - theorem Set.unionᵢ_Ico_eq_Iio_self_iff - theorem Set.unionᵢ_Ico_left - theorem Set.unionᵢ_Ico_right - theorem Set.unionᵢ_Iic - theorem Set.unionᵢ_Iio - theorem Set.unionᵢ_Ioc_eq_Ioi_self_iff - theorem Set.unionᵢ_Ioc_left - theorem Set.unionᵢ_Ioc_right - theorem Set.unionᵢ_Ioi - theorem Set.unionᵢ_Ioo_left - theorem Set.unionᵢ_Ioo_right + theorem iUnion_Ici_eq_Ici_iInf + theorem iUnion_Ici_eq_Ioi_iInf + theorem iUnion_Iic_eq_Iic_iSup + theorem iUnion_Iic_eq_Iio_iSup - theorem unionᵢ_Ici_eq_Ici_infᵢ - theorem unionᵢ_Ici_eq_Ioi_infᵢ - theorem unionᵢ_Iic_eq_Iic_supᵢ - theorem unionᵢ_Iic_eq_Iio_supᵢ Modified Mathlib/Data/Set/Intervals/Monotone.lean + theorem iUnion_Ioo_of_mono_of_isGLB_of_isLUB - theorem unionᵢ_Ioo_of_mono_of_isGLB_of_isLUB Modified Mathlib/Data/Set/Intervals/OrdConnected.lean + theorem Set.ordConnected_biInter - theorem Set.ordConnected_binterᵢ + theorem Set.ordConnected_iInter - theorem Set.ordConnected_interᵢ - theorem Set.ordConnected_interₛ + theorem Set.ordConnected_sInter Modified Mathlib/Data/Set/Intervals/OrdConnectedComponent.lean Modified Mathlib/Data/Set/Lattice.lean + theorem Antitone.iInter_nat_add - theorem Antitone.interᵢ_nat_add + theorem Function.Surjective.iInter_comp + theorem Function.Surjective.iUnion_comp - theorem Function.Surjective.interᵢ_comp - theorem Function.Surjective.unionᵢ_comp + theorem Monotone.iUnion_nat_add - theorem Monotone.unionᵢ_nat_add + theorem Set.Ici_iSup + theorem Set.Ici_iSup₂ + theorem Set.Ici_sSup - theorem Set.Ici_supᵢ - theorem Set.Ici_supᵢ₂ - theorem Set.Ici_supₛ + theorem Set.Iic_iInf + theorem Set.Iic_iInf₂ - theorem Set.Iic_infᵢ - theorem Set.Iic_infᵢ₂ - theorem Set.Iic_infₛ + theorem Set.Iic_sInf + theorem Set.InjOn.image_biInter_eq - theorem Set.InjOn.image_binterᵢ_eq + theorem Set.InjOn.image_iInter_eq - theorem Set.InjOn.image_interᵢ_eq + theorem Set.Nonempty.of_sUnion + theorem Set.Nonempty.of_sUnion_eq_univ - theorem Set.Nonempty.of_unionₛ - theorem Set.Nonempty.of_unionₛ_eq_univ + theorem Set.biInter_and' + theorem Set.biInter_and + theorem Set.biInter_empty + theorem Set.biInter_eq_iInter + theorem Set.biInter_iUnion + theorem Set.biInter_image + theorem Set.biInter_insert + theorem Set.biInter_inter + theorem Set.biInter_mono + theorem Set.biInter_pair + theorem Set.biInter_range + theorem Set.biInter_singleton + theorem Set.biInter_subset_biInter_left + theorem Set.biInter_subset_of_mem + theorem Set.biInter_union + theorem Set.biInter_univ + theorem Set.biUnion_and' + theorem Set.biUnion_and + theorem Set.biUnion_diff_biUnion_subset + theorem Set.biUnion_empty + theorem Set.biUnion_eq_iUnion + theorem Set.biUnion_iUnion + theorem Set.biUnion_image + theorem Set.biUnion_insert + theorem Set.biUnion_mono + theorem Set.biUnion_of_singleton + theorem Set.biUnion_pair + theorem Set.biUnion_preimage_singleton + theorem Set.biUnion_range + theorem Set.biUnion_range_preimage_singleton + theorem Set.biUnion_self + theorem Set.biUnion_singleton + theorem Set.biUnion_subset_biUnion_left + theorem Set.biUnion_union + theorem Set.biUnion_univ + theorem Set.bijOn_iInter + theorem Set.bijOn_iInter_of_directed + theorem Set.bijOn_iUnion + theorem Set.bijOn_iUnion_of_directed - theorem Set.bijOn_interᵢ - theorem Set.bijOn_interᵢ_of_directed - theorem Set.bijOn_unionᵢ - theorem Set.bijOn_unionᵢ_of_directed + theorem Set.bijective_iff_bijective_of_iUnion_eq_univ - theorem Set.bijective_iff_bijective_of_unionᵢ_eq_univ - theorem Set.binterᵢ_and' - theorem Set.binterᵢ_and - theorem Set.binterᵢ_empty - theorem Set.binterᵢ_eq_interᵢ - theorem Set.binterᵢ_image - theorem Set.binterᵢ_insert - theorem Set.binterᵢ_inter - theorem Set.binterᵢ_mono - theorem Set.binterᵢ_pair - theorem Set.binterᵢ_range - theorem Set.binterᵢ_singleton - theorem Set.binterᵢ_subset_binterᵢ_left - theorem Set.binterᵢ_subset_of_mem - theorem Set.binterᵢ_union - theorem Set.binterᵢ_unionᵢ - theorem Set.binterᵢ_univ - theorem Set.bunionᵢ_and' - theorem Set.bunionᵢ_and - theorem Set.bunionᵢ_diff_bunionᵢ_subset - theorem Set.bunionᵢ_empty - theorem Set.bunionᵢ_eq_unionᵢ - theorem Set.bunionᵢ_image - theorem Set.bunionᵢ_insert - theorem Set.bunionᵢ_mono - theorem Set.bunionᵢ_of_singleton - theorem Set.bunionᵢ_pair - theorem Set.bunionᵢ_preimage_singleton - theorem Set.bunionᵢ_range - theorem Set.bunionᵢ_range_preimage_singleton - theorem Set.bunionᵢ_self - theorem Set.bunionᵢ_singleton - theorem Set.bunionᵢ_subset_bunionᵢ_left - theorem Set.bunionᵢ_union - theorem Set.bunionᵢ_unionᵢ - theorem Set.bunionᵢ_univ + theorem Set.compl_iInter + theorem Set.compl_iInter₂ + theorem Set.compl_iUnion + theorem Set.compl_iUnion₂ - theorem Set.compl_interᵢ - theorem Set.compl_interᵢ₂ - theorem Set.compl_interₛ + theorem Set.compl_sInter + theorem Set.compl_sUnion - theorem Set.compl_unionᵢ - theorem Set.compl_unionᵢ₂ - theorem Set.compl_unionₛ + theorem Set.diff_iInter + theorem Set.diff_iUnion - theorem Set.diff_interᵢ - theorem Set.diff_unionᵢ + theorem Set.directed_on_iUnion - theorem Set.directed_on_unionᵢ + theorem Set.disjoint_iUnion_left + theorem Set.disjoint_iUnion_right + theorem Set.disjoint_iUnion₂_left + theorem Set.disjoint_iUnion₂_right + theorem Set.disjoint_sUnion_left + theorem Set.disjoint_sUnion_right - theorem Set.disjoint_unionᵢ_left - theorem Set.disjoint_unionᵢ_right - theorem Set.disjoint_unionᵢ₂_left - theorem Set.disjoint_unionᵢ₂_right - theorem Set.disjoint_unionₛ_left - theorem Set.disjoint_unionₛ_right + theorem Set.iInf_eq_dif + theorem Set.iInf_eq_iInter + def Set.iInter + theorem Set.iInter_and + theorem Set.iInter_coe_set + theorem Set.iInter_comm + theorem Set.iInter_congr + theorem Set.iInter_congr_Prop + theorem Set.iInter_congr_of_surjective + theorem Set.iInter_const + theorem Set.iInter_dite + theorem Set.iInter_eq_compl_iUnion_compl + theorem Set.iInter_eq_const + theorem Set.iInter_eq_empty_iff + theorem Set.iInter_eq_if + theorem Set.iInter_eq_univ + theorem Set.iInter_exists + theorem Set.iInter_false + theorem Set.iInter_ge_eq_iInter_nat_add + theorem Set.iInter_iInter_eq' + theorem Set.iInter_iInter_eq_left + theorem Set.iInter_iInter_eq_or_left + theorem Set.iInter_iInter_eq_right + theorem Set.iInter_inter + theorem Set.iInter_inter_distrib + theorem Set.iInter_ite + theorem Set.iInter_mono' + theorem Set.iInter_mono + theorem Set.iInter_of_empty + theorem Set.iInter_option + theorem Set.iInter_or + theorem Set.iInter_plift_down + theorem Set.iInter_plift_up + theorem Set.iInter_setOf + theorem Set.iInter_subset + theorem Set.iInter_subset_iInter₂ + theorem Set.iInter_subset_of_subset + theorem Set.iInter_subtype + theorem Set.iInter_true + theorem Set.iInter_union + theorem Set.iInter_union_of_antitone + theorem Set.iInter_union_of_monotone + theorem Set.iInter_univ + theorem Set.iInter₂_comm + theorem Set.iInter₂_congr + theorem Set.iInter₂_eq_empty_iff + theorem Set.iInter₂_mono' + theorem Set.iInter₂_mono + theorem Set.iInter₂_subset + theorem Set.iInter₂_subset_of_subset + theorem Set.iInter₂_union + theorem Set.iSup_eq_iUnion + def Set.iUnion + theorem Set.iUnion_and + theorem Set.iUnion_coe_set + theorem Set.iUnion_comm + theorem Set.iUnion_congr + theorem Set.iUnion_congr_Prop + theorem Set.iUnion_congr_of_surjective + theorem Set.iUnion_const + theorem Set.iUnion_diff + theorem Set.iUnion_dite + theorem Set.iUnion_empty + theorem Set.iUnion_eq_compl_iInter_compl + theorem Set.iUnion_eq_const + theorem Set.iUnion_eq_dif + theorem Set.iUnion_eq_empty + theorem Set.iUnion_eq_if + theorem Set.iUnion_eq_range_psigma + theorem Set.iUnion_eq_range_sigma + theorem Set.iUnion_eq_univ_iff + theorem Set.iUnion_exists + theorem Set.iUnion_false + theorem Set.iUnion_ge_eq_iUnion_nat_add + theorem Set.iUnion_iInter_ge_nat_add + theorem Set.iUnion_iInter_subset + theorem Set.iUnion_iUnion_eq' + theorem Set.iUnion_iUnion_eq_left + theorem Set.iUnion_iUnion_eq_or_left + theorem Set.iUnion_iUnion_eq_right + theorem Set.iUnion_image_left + theorem Set.iUnion_image_preimage_sigma_mk_eq_self + theorem Set.iUnion_image_right + theorem Set.iUnion_inter + theorem Set.iUnion_inter_of_antitone + theorem Set.iUnion_inter_of_monotone + theorem Set.iUnion_inter_subset + theorem Set.iUnion_ite + theorem Set.iUnion_mono' + theorem Set.iUnion_mono + theorem Set.iUnion_nonempty_index + theorem Set.iUnion_nonempty_self + theorem Set.iUnion_of_empty + theorem Set.iUnion_of_singleton + theorem Set.iUnion_of_singleton_coe + theorem Set.iUnion_option + theorem Set.iUnion_or + theorem Set.iUnion_plift_down + theorem Set.iUnion_plift_up + theorem Set.iUnion_prod + theorem Set.iUnion_prod_const + theorem Set.iUnion_prod_of_monotone + theorem Set.iUnion_range_eq_iUnion + theorem Set.iUnion_range_eq_sUnion + theorem Set.iUnion_setOf + theorem Set.iUnion_singleton_eq_range + theorem Set.iUnion_subset + theorem Set.iUnion_subset_iUnion_const + theorem Set.iUnion_subset_iff + theorem Set.iUnion_subtype + theorem Set.iUnion_true + theorem Set.iUnion_union + theorem Set.iUnion_union_distrib + theorem Set.iUnion_univ_pi + theorem Set.iUnion₂_comm + theorem Set.iUnion₂_congr + theorem Set.iUnion₂_eq_univ_iff + theorem Set.iUnion₂_inter + theorem Set.iUnion₂_mono' + theorem Set.iUnion₂_mono + theorem Set.iUnion₂_prod_const + theorem Set.iUnion₂_subset + theorem Set.iUnion₂_subset_iUnion + theorem Set.iUnion₂_subset_iff + theorem Set.image2_eq_iUnion - theorem Set.image2_eq_unionᵢ + theorem Set.image2_iInter_subset_left + theorem Set.image2_iInter_subset_right + theorem Set.image2_iInter₂_subset_left + theorem Set.image2_iInter₂_subset_right + theorem Set.image2_iUnion_left + theorem Set.image2_iUnion_right + theorem Set.image2_iUnion₂_left + theorem Set.image2_iUnion₂_right - theorem Set.image2_interᵢ_subset_left - theorem Set.image2_interᵢ_subset_right - theorem Set.image2_interᵢ₂_subset_left - theorem Set.image2_interᵢ₂_subset_right - theorem Set.image2_unionᵢ_left - theorem Set.image2_unionᵢ_right - theorem Set.image2_unionᵢ₂_left - theorem Set.image2_unionᵢ₂_right + theorem Set.image_eq_iUnion - theorem Set.image_eq_unionᵢ + theorem Set.image_iInter + theorem Set.image_iInter_subset + theorem Set.image_iInter₂ + theorem Set.image_iInter₂_subset + theorem Set.image_iUnion + theorem Set.image_iUnion₂ - theorem Set.image_interᵢ - theorem Set.image_interᵢ_subset - theorem Set.image_interᵢ₂ - theorem Set.image_interᵢ₂_subset - theorem Set.image_interₛ_subset + theorem Set.image_sInter_subset - theorem Set.image_unionᵢ - theorem Set.image_unionᵢ₂ - theorem Set.infᵢ_eq_dif - theorem Set.infᵢ_eq_interᵢ - theorem Set.infₛ_eq_interₛ + theorem Set.inj_on_iUnion_of_directed - theorem Set.inj_on_unionᵢ_of_directed + theorem Set.injective_iff_injective_of_iUnion_eq_univ - theorem Set.injective_iff_injective_of_unionᵢ_eq_univ + theorem Set.inter_biInter - theorem Set.inter_binterᵢ + theorem Set.inter_empty_of_inter_sUnion_empty - theorem Set.inter_empty_of_inter_unionₛ_empty + theorem Set.inter_eq_iInter - theorem Set.inter_eq_interᵢ + theorem Set.inter_iInter + theorem Set.inter_iInter_nat_succ + theorem Set.inter_iUnion + theorem Set.inter_iUnion₂ - theorem Set.inter_interᵢ - theorem Set.inter_interᵢ_nat_succ - theorem Set.inter_unionᵢ - theorem Set.inter_unionᵢ₂ - def Set.interᵢ - theorem Set.interᵢ_and - theorem Set.interᵢ_coe_set - theorem Set.interᵢ_comm - theorem Set.interᵢ_congr - theorem Set.interᵢ_congr_Prop - theorem Set.interᵢ_congr_of_surjective - theorem Set.interᵢ_const - theorem Set.interᵢ_dite - theorem Set.interᵢ_eq_compl_unionᵢ_compl - theorem Set.interᵢ_eq_const - theorem Set.interᵢ_eq_empty_iff - theorem Set.interᵢ_eq_if - theorem Set.interᵢ_eq_univ - theorem Set.interᵢ_exists - theorem Set.interᵢ_false - theorem Set.interᵢ_ge_eq_interᵢ_nat_add - theorem Set.interᵢ_inter - theorem Set.interᵢ_inter_distrib - theorem Set.interᵢ_interᵢ_eq' - theorem Set.interᵢ_interᵢ_eq_left - theorem Set.interᵢ_interᵢ_eq_or_left - theorem Set.interᵢ_interᵢ_eq_right - theorem Set.interᵢ_ite - theorem Set.interᵢ_mono' - theorem Set.interᵢ_mono - theorem Set.interᵢ_of_empty - theorem Set.interᵢ_option - theorem Set.interᵢ_or - theorem Set.interᵢ_plift_down - theorem Set.interᵢ_plift_up - theorem Set.interᵢ_setOf - theorem Set.interᵢ_subset - theorem Set.interᵢ_subset_interᵢ₂ - theorem Set.interᵢ_subset_of_subset - theorem Set.interᵢ_subtype - theorem Set.interᵢ_true - theorem Set.interᵢ_union - theorem Set.interᵢ_union_of_antitone - theorem Set.interᵢ_union_of_monotone - theorem Set.interᵢ_univ - theorem Set.interᵢ₂_comm - theorem Set.interᵢ₂_congr - theorem Set.interᵢ₂_eq_empty_iff - theorem Set.interᵢ₂_mono' - theorem Set.interᵢ₂_mono - theorem Set.interᵢ₂_subset - theorem Set.interᵢ₂_subset_of_subset - theorem Set.interᵢ₂_union - def Set.interₛ - theorem Set.interₛ_diff_singleton_univ - theorem Set.interₛ_empty - theorem Set.interₛ_eq_binterᵢ - theorem Set.interₛ_eq_compl_unionₛ_compl - theorem Set.interₛ_eq_empty_iff - theorem Set.interₛ_eq_interᵢ - theorem Set.interₛ_eq_univ - theorem Set.interₛ_image - theorem Set.interₛ_insert - theorem Set.interₛ_pair - theorem Set.interₛ_prod - theorem Set.interₛ_prod_interₛ - theorem Set.interₛ_prod_interₛ_subset - theorem Set.interₛ_range - theorem Set.interₛ_singleton - theorem Set.interₛ_subset_interₛ - theorem Set.interₛ_subset_of_mem - theorem Set.interₛ_union - theorem Set.interₛ_union_interₛ - theorem Set.interₛ_unionᵢ + theorem Set.mapsTo_iInter + theorem Set.mapsTo_iInter_iInter + theorem Set.mapsTo_iInter₂ + theorem Set.mapsTo_iInter₂_iInter₂ + theorem Set.mapsTo_iUnion + theorem Set.mapsTo_iUnion_iUnion + theorem Set.mapsTo_iUnion₂ + theorem Set.mapsTo_iUnion₂_iUnion₂ - theorem Set.mapsTo_interᵢ - theorem Set.mapsTo_interᵢ_interᵢ - theorem Set.mapsTo_interᵢ₂ - theorem Set.mapsTo_interᵢ₂_interᵢ₂ - theorem Set.mapsTo_interₛ + theorem Set.mapsTo_sInter + theorem Set.mapsTo_sUnion - theorem Set.mapsTo_unionᵢ - theorem Set.mapsTo_unionᵢ_unionᵢ - theorem Set.mapsTo_unionᵢ₂ - theorem Set.mapsTo_unionᵢ₂_unionᵢ₂ - theorem Set.mapsTo_unionₛ + theorem Set.mem_biInter + theorem Set.mem_biUnion - theorem Set.mem_binterᵢ - theorem Set.mem_bunionᵢ + theorem Set.mem_iInter + theorem Set.mem_iInter_of_mem + theorem Set.mem_iInter₂ + theorem Set.mem_iInter₂_of_mem + theorem Set.mem_iUnion + theorem Set.mem_iUnion_of_mem + theorem Set.mem_iUnion₂ + theorem Set.mem_iUnion₂_of_mem - theorem Set.mem_interᵢ - theorem Set.mem_interᵢ_of_mem - theorem Set.mem_interᵢ₂ - theorem Set.mem_interᵢ₂_of_mem - theorem Set.mem_interₛ + theorem Set.mem_sInter + theorem Set.mem_sUnion + theorem Set.mem_sUnion_of_mem - theorem Set.mem_unionᵢ - theorem Set.mem_unionᵢ_of_mem - theorem Set.mem_unionᵢ₂ - theorem Set.mem_unionᵢ₂_of_mem - theorem Set.mem_unionₛ - theorem Set.mem_unionₛ_of_mem + theorem Set.nonempty_biUnion - theorem Set.nonempty_bunionᵢ + theorem Set.nonempty_iInter + theorem Set.nonempty_iInter₂ + theorem Set.nonempty_iUnion - theorem Set.nonempty_interᵢ - theorem Set.nonempty_interᵢ₂ - theorem Set.nonempty_interₛ + theorem Set.nonempty_sInter + theorem Set.nonempty_sUnion - theorem Set.nonempty_unionᵢ - theorem Set.nonempty_unionₛ + theorem Set.not_mem_of_not_mem_sUnion - theorem Set.not_mem_of_not_mem_unionₛ + theorem Set.preimage_iInter + theorem Set.preimage_iInter₂ + theorem Set.preimage_iUnion + theorem Set.preimage_iUnion₂ - theorem Set.preimage_interᵢ - theorem Set.preimage_interᵢ₂ - theorem Set.preimage_interₛ + theorem Set.preimage_sInter + theorem Set.preimage_sUnion - theorem Set.preimage_unionᵢ - theorem Set.preimage_unionᵢ₂ - theorem Set.preimage_unionₛ + theorem Set.prod_eq_biUnion_left + theorem Set.prod_eq_biUnion_right - theorem Set.prod_eq_bunionᵢ_left - theorem Set.prod_eq_bunionᵢ_right + theorem Set.prod_iUnion + theorem Set.prod_iUnion₂ - theorem Set.prod_interₛ + theorem Set.prod_sInter + theorem Set.prod_sUnion - theorem Set.prod_unionᵢ - theorem Set.prod_unionᵢ₂ - theorem Set.prod_unionₛ + theorem Set.range_eq_iUnion - theorem Set.range_eq_unionᵢ + theorem Set.range_sigma_eq_iUnion_range - theorem Set.range_sigma_eq_unionᵢ_range + theorem Set.sInf_eq_sInter + def Set.sInter + theorem Set.sInter_diff_singleton_univ + theorem Set.sInter_empty + theorem Set.sInter_eq_biInter + theorem Set.sInter_eq_compl_sUnion_compl + theorem Set.sInter_eq_empty_iff + theorem Set.sInter_eq_iInter + theorem Set.sInter_eq_univ + theorem Set.sInter_iUnion + theorem Set.sInter_image + theorem Set.sInter_insert + theorem Set.sInter_pair + theorem Set.sInter_prod + theorem Set.sInter_prod_sInter + theorem Set.sInter_prod_sInter_subset + theorem Set.sInter_range + theorem Set.sInter_singleton + theorem Set.sInter_subset_of_mem + theorem Set.sInter_subset_sInter + theorem Set.sInter_union + theorem Set.sInter_union_sInter + theorem Set.sSup_eq_sUnion + def Set.sUnion + theorem Set.sUnion_diff_singleton_empty + theorem Set.sUnion_empty + theorem Set.sUnion_eq_biUnion + theorem Set.sUnion_eq_compl_sInter_compl + theorem Set.sUnion_eq_empty + theorem Set.sUnion_eq_iUnion + theorem Set.sUnion_eq_univ_iff + theorem Set.sUnion_iUnion + theorem Set.sUnion_image + theorem Set.sUnion_insert + theorem Set.sUnion_inter_sUnion + theorem Set.sUnion_mem_empty_univ + theorem Set.sUnion_mono + theorem Set.sUnion_pair + theorem Set.sUnion_prod_const + theorem Set.sUnion_range + theorem Set.sUnion_singleton + theorem Set.sUnion_subset + theorem Set.sUnion_subset_iff + theorem Set.sUnion_subset_sUnion + theorem Set.sUnion_union - def Set.sigmaToUnionᵢ - theorem Set.sigmaToUnionᵢ_bijective - theorem Set.sigmaToUnionᵢ_injective - theorem Set.sigmaToUnionᵢ_surjective + def Set.sigmaToiUnion + theorem Set.sigmaToiUnion_bijective + theorem Set.sigmaToiUnion_injective + theorem Set.sigmaToiUnion_surjective + theorem Set.subset_biUnion_of_mem - theorem Set.subset_bunionᵢ_of_mem + theorem Set.subset_iInter + theorem Set.subset_iInter_iff + theorem Set.subset_iInter₂ + theorem Set.subset_iInter₂_iff + theorem Set.subset_iUnion + theorem Set.subset_iUnion_of_subset + theorem Set.subset_iUnion₂ + theorem Set.subset_iUnion₂_of_subset - theorem Set.subset_interᵢ - theorem Set.subset_interᵢ_iff - theorem Set.subset_interᵢ₂ - theorem Set.subset_interᵢ₂_iff - theorem Set.subset_interₛ - theorem Set.subset_interₛ_iff + theorem Set.subset_sInter + theorem Set.subset_sInter_iff + theorem Set.subset_sUnion_of_mem + theorem Set.subset_sUnion_of_subset - theorem Set.subset_unionᵢ - theorem Set.subset_unionᵢ_of_subset - theorem Set.subset_unionᵢ₂ - theorem Set.subset_unionᵢ₂_of_subset - theorem Set.subset_unionₛ_of_mem - theorem Set.subset_unionₛ_of_subset - theorem Set.supᵢ_eq_unionᵢ - theorem Set.supₛ_eq_unionₛ + theorem Set.surjOn_iInter + theorem Set.surjOn_iInter_iInter + theorem Set.surjOn_iUnion + theorem Set.surjOn_iUnion_iUnion + theorem Set.surjOn_iUnion₂ + theorem Set.surjOn_iUnion₂_iUnion₂ - theorem Set.surjOn_interᵢ - theorem Set.surjOn_interᵢ_interᵢ + theorem Set.surjOn_sUnion - theorem Set.surjOn_unionᵢ - theorem Set.surjOn_unionᵢ_unionᵢ - theorem Set.surjOn_unionᵢ₂ - theorem Set.surjOn_unionᵢ₂_unionᵢ₂ - theorem Set.surjOn_unionₛ + theorem Set.surjective_iff_surjective_of_iUnion_eq_univ - theorem Set.surjective_iff_surjective_of_unionᵢ_eq_univ + theorem Set.union_distrib_iInter_left + theorem Set.union_distrib_iInter_right + theorem Set.union_distrib_iInter₂_left + theorem Set.union_distrib_iInter₂_right - theorem Set.union_distrib_interᵢ_left - theorem Set.union_distrib_interᵢ_right - theorem Set.union_distrib_interᵢ₂_left - theorem Set.union_distrib_interᵢ₂_right + theorem Set.union_eq_iUnion - theorem Set.union_eq_unionᵢ + theorem Set.union_iInter + theorem Set.union_iInter₂ + theorem Set.union_iUnion + theorem Set.union_iUnion_nat_succ - theorem Set.union_interᵢ - theorem Set.union_interᵢ₂ - theorem Set.union_unionᵢ - theorem Set.union_unionᵢ_nat_succ - def Set.unionᵢ - theorem Set.unionᵢ_and - theorem Set.unionᵢ_coe_set - theorem Set.unionᵢ_comm - theorem Set.unionᵢ_congr - theorem Set.unionᵢ_congr_Prop - theorem Set.unionᵢ_congr_of_surjective - theorem Set.unionᵢ_const - theorem Set.unionᵢ_diff - theorem Set.unionᵢ_dite - theorem Set.unionᵢ_empty - theorem Set.unionᵢ_eq_compl_interᵢ_compl - theorem Set.unionᵢ_eq_const - theorem Set.unionᵢ_eq_dif - theorem Set.unionᵢ_eq_empty - theorem Set.unionᵢ_eq_if - theorem Set.unionᵢ_eq_range_psigma - theorem Set.unionᵢ_eq_range_sigma - theorem Set.unionᵢ_eq_univ_iff - theorem Set.unionᵢ_exists - theorem Set.unionᵢ_false - theorem Set.unionᵢ_ge_eq_unionᵢ_nat_add - theorem Set.unionᵢ_image_left - theorem Set.unionᵢ_image_preimage_sigma_mk_eq_self - theorem Set.unionᵢ_image_right - theorem Set.unionᵢ_inter - theorem Set.unionᵢ_inter_of_antitone - theorem Set.unionᵢ_inter_of_monotone - theorem Set.unionᵢ_inter_subset - theorem Set.unionᵢ_interᵢ_ge_nat_add - theorem Set.unionᵢ_interᵢ_subset - theorem Set.unionᵢ_ite - theorem Set.unionᵢ_mono' - theorem Set.unionᵢ_mono - theorem Set.unionᵢ_nonempty_index - theorem Set.unionᵢ_nonempty_self - theorem Set.unionᵢ_of_empty - theorem Set.unionᵢ_of_singleton - theorem Set.unionᵢ_of_singleton_coe - theorem Set.unionᵢ_option - theorem Set.unionᵢ_or - theorem Set.unionᵢ_plift_down - theorem Set.unionᵢ_plift_up - theorem Set.unionᵢ_prod - theorem Set.unionᵢ_prod_const - theorem Set.unionᵢ_prod_of_monotone - theorem Set.unionᵢ_range_eq_unionᵢ - theorem Set.unionᵢ_range_eq_unionₛ - theorem Set.unionᵢ_setOf - theorem Set.unionᵢ_singleton_eq_range - theorem Set.unionᵢ_subset - theorem Set.unionᵢ_subset_iff - theorem Set.unionᵢ_subset_unionᵢ_const - theorem Set.unionᵢ_subtype - theorem Set.unionᵢ_true - theorem Set.unionᵢ_union - theorem Set.unionᵢ_union_distrib - theorem Set.unionᵢ_unionᵢ_eq' - theorem Set.unionᵢ_unionᵢ_eq_left - theorem Set.unionᵢ_unionᵢ_eq_or_left - theorem Set.unionᵢ_unionᵢ_eq_right - theorem Set.unionᵢ_univ_pi - theorem Set.unionᵢ₂_comm - theorem Set.unionᵢ₂_congr - theorem Set.unionᵢ₂_eq_univ_iff - theorem Set.unionᵢ₂_inter - theorem Set.unionᵢ₂_mono' - theorem Set.unionᵢ₂_mono - theorem Set.unionᵢ₂_prod_const - theorem Set.unionᵢ₂_subset - theorem Set.unionᵢ₂_subset_iff - theorem Set.unionᵢ₂_subset_unionᵢ - def Set.unionₛ - theorem Set.unionₛ_diff_singleton_empty - theorem Set.unionₛ_empty - theorem Set.unionₛ_eq_bunionᵢ - theorem Set.unionₛ_eq_compl_interₛ_compl - theorem Set.unionₛ_eq_empty - theorem Set.unionₛ_eq_unionᵢ - theorem Set.unionₛ_eq_univ_iff - theorem Set.unionₛ_image - theorem Set.unionₛ_insert - theorem Set.unionₛ_inter_unionₛ - theorem Set.unionₛ_mem_empty_univ - theorem Set.unionₛ_mono - theorem Set.unionₛ_pair - theorem Set.unionₛ_prod_const - theorem Set.unionₛ_range - theorem Set.unionₛ_singleton - theorem Set.unionₛ_subset - theorem Set.unionₛ_subset_iff - theorem Set.unionₛ_subset_unionₛ - theorem Set.unionₛ_union - theorem Set.unionₛ_unionᵢ + theorem Set.univ_pi_eq_iInter - theorem Set.univ_pi_eq_interᵢ + theorem iInf_iUnion + theorem iSup_iUnion - theorem infᵢ_unionᵢ - theorem infₛ_unionₛ + theorem sInf_sUnion + theorem sSup_sUnion - theorem supᵢ_unionᵢ - theorem supₛ_unionₛ Modified Mathlib/Data/Set/Pairwise/Lattice.lean + theorem Pairwise.biUnion_injective - theorem Pairwise.bunionᵢ_injective + theorem Pairwise.subset_of_biUnion_subset_biUnion - theorem Pairwise.subset_of_bunionᵢ_subset_bunionᵢ + theorem Set.PairwiseDisjoint.biUnion - theorem Set.PairwiseDisjoint.bunionᵢ + theorem Set.PairwiseDisjoint.subset_of_biUnion_subset_biUnion - theorem Set.PairwiseDisjoint.subset_of_bunionᵢ_subset_bunionᵢ + theorem Set.biUnion_diff_biUnion_eq - theorem Set.bunionᵢ_diff_bunionᵢ_eq + theorem Set.pairwiseDisjoint_iUnion + theorem Set.pairwiseDisjoint_sUnion - theorem Set.pairwiseDisjoint_unionᵢ - theorem Set.pairwiseDisjoint_unionₛ + theorem Set.pairwise_iUnion + theorem Set.pairwise_sUnion - theorem Set.pairwise_unionᵢ - theorem Set.pairwise_unionₛ Modified Mathlib/Data/Set/Pointwise/Basic.lean + theorem Set.div_iInter_subset + theorem Set.div_iInter₂_subset + theorem Set.div_iUnion + theorem Set.div_iUnion₂ - theorem Set.div_interᵢ_subset - theorem Set.div_interᵢ₂_subset - theorem Set.div_unionᵢ - theorem Set.div_unionᵢ₂ + theorem Set.iInter_div_subset + theorem Set.iInter_inv + theorem Set.iInter_mul_subset + theorem Set.iInter₂_div_subset + theorem Set.iInter₂_mul_subset + theorem Set.iUnion_div + theorem Set.iUnion_div_left_image + theorem Set.iUnion_div_right_image + theorem Set.iUnion_inv + theorem Set.iUnion_mul + theorem Set.iUnion_mul_left_image + theorem Set.iUnion_mul_right_image + theorem Set.iUnion₂_div + theorem Set.iUnion₂_mul - theorem Set.interᵢ_div_subset - theorem Set.interᵢ_inv - theorem Set.interᵢ_mul_subset - theorem Set.interᵢ₂_div_subset - theorem Set.interᵢ₂_mul_subset + theorem Set.mul_iInter_subset + theorem Set.mul_iInter₂_subset + theorem Set.mul_iUnion + theorem Set.mul_iUnion₂ - theorem Set.mul_interᵢ_subset - theorem Set.mul_interᵢ₂_subset - theorem Set.mul_unionᵢ - theorem Set.mul_unionᵢ₂ - theorem Set.unionᵢ_div - theorem Set.unionᵢ_div_left_image - theorem Set.unionᵢ_div_right_image - theorem Set.unionᵢ_inv - theorem Set.unionᵢ_mul - theorem Set.unionᵢ_mul_left_image - theorem Set.unionᵢ_mul_right_image - theorem Set.unionᵢ₂_div - theorem Set.unionᵢ₂_mul Modified Mathlib/Data/Set/Pointwise/SMul.lean + theorem Set.iInter_smul_subset + theorem Set.iInter_vsub_subset + theorem Set.iInter₂_smul_subset + theorem Set.iInter₂_vsub_subset + theorem Set.iUnion_inv_smul + theorem Set.iUnion_op_smul_set + theorem Set.iUnion_smul + theorem Set.iUnion_smul_eq_setOf_exists + theorem Set.iUnion_smul_left_image + theorem Set.iUnion_smul_right_image + theorem Set.iUnion_smul_set + theorem Set.iUnion_vsub + theorem Set.iUnion_vsub_left_image + theorem Set.iUnion_vsub_right_image + theorem Set.iUnion₂_smul + theorem Set.iUnion₂_vsub - theorem Set.interᵢ_smul_subset - theorem Set.interᵢ_vsub_subset - theorem Set.interᵢ₂_smul_subset - theorem Set.interᵢ₂_vsub_subset + theorem Set.smul_iInter_subset + theorem Set.smul_iInter₂_subset + theorem Set.smul_iUnion + theorem Set.smul_iUnion₂ - theorem Set.smul_interᵢ_subset - theorem Set.smul_interᵢ₂_subset + theorem Set.smul_set_iInter_subset + theorem Set.smul_set_iInter₂_subset + theorem Set.smul_set_iUnion₂ - theorem Set.smul_set_interᵢ_subset - theorem Set.smul_set_interᵢ₂_subset - theorem Set.smul_set_unionᵢ₂ - theorem Set.smul_unionᵢ - theorem Set.smul_unionᵢ₂ - theorem Set.unionᵢ_inv_smul - theorem Set.unionᵢ_op_smul_set - theorem Set.unionᵢ_smul - theorem Set.unionᵢ_smul_eq_setOf_exists - theorem Set.unionᵢ_smul_left_image - theorem Set.unionᵢ_smul_right_image - theorem Set.unionᵢ_smul_set - theorem Set.unionᵢ_vsub - theorem Set.unionᵢ_vsub_left_image - theorem Set.unionᵢ_vsub_right_image - theorem Set.unionᵢ₂_smul - theorem Set.unionᵢ₂_vsub + theorem Set.vsub_iInter_subset + theorem Set.vsub_iInter₂_subset + theorem Set.vsub_iUnion + theorem Set.vsub_iUnion₂ - theorem Set.vsub_interᵢ_subset - theorem Set.vsub_interᵢ₂_subset - theorem Set.vsub_unionᵢ - theorem Set.vsub_unionᵢ₂ Modified Mathlib/Data/Set/Sups.lean + theorem Set.iUnion_image_inf_left + theorem Set.iUnion_image_inf_right + theorem Set.iUnion_image_sup_left + theorem Set.iUnion_image_sup_right - theorem Set.unionᵢ_image_inf_left - theorem Set.unionᵢ_image_inf_right - theorem Set.unionᵢ_image_sup_left - theorem Set.unionᵢ_image_sup_right Modified Mathlib/Data/Set/UnionLift.lean + theorem Set.iUnionLift_binary + theorem Set.iUnionLift_const + theorem Set.iUnionLift_inclusion + theorem Set.iUnionLift_mk + theorem Set.iUnionLift_of_mem + theorem Set.iUnionLift_unary + theorem Set.preimage_iUnionLift - theorem Set.preimage_unionᵢLift - theorem Set.unionᵢLift_binary - theorem Set.unionᵢLift_const - theorem Set.unionᵢLift_inclusion - theorem Set.unionᵢLift_mk - theorem Set.unionᵢLift_of_mem - theorem Set.unionᵢLift_unary Modified Mathlib/Data/Setoid/Basic.lean - theorem Setoid.infₛ_def + theorem Setoid.sInf_def + theorem Setoid.sSup_def + theorem Setoid.sSup_eq_eqvGen - theorem Setoid.supₛ_def - theorem Setoid.supₛ_eq_eqvGen Modified Mathlib/Data/Setoid/Partition.lean + theorem IndexedPartition.iUnion - theorem IndexedPartition.unionᵢ + theorem Setoid.IsPartition.sUnion_eq_univ - theorem Setoid.IsPartition.unionₛ_eq_univ +/- theorem Setoid.eqv_classes_of_disjoint_union + theorem Setoid.sUnion_classes +/- def Setoid.setoidOfDisjointUnion - theorem Setoid.unionₛ_classes Modified Mathlib/Data/W/Cardinal.lean Modified Mathlib/Deprecated/Subfield.lean + theorem IsSubfield.iInter - theorem IsSubfield.interᵢ + theorem isSubfield_iUnion_of_directed - theorem isSubfield_unionᵢ_of_directed Modified Mathlib/Deprecated/Subgroup.lean + theorem IsSubgroup.iInter - theorem IsSubgroup.interᵢ + theorem isSubgroup_iUnion_of_directed - theorem isSubgroup_unionᵢ_of_directed Modified Mathlib/Deprecated/Submonoid.lean + theorem IsSubmonoid.iInter - theorem IsSubmonoid.interᵢ + theorem isSubmonoid_iUnion_of_directed - theorem isSubmonoid_unionᵢ_of_directed Modified Mathlib/Deprecated/Subring.lean + theorem IsSubring.iInter - theorem IsSubring.interᵢ + theorem isSubring_iUnion_of_directed - theorem isSubring_unionᵢ_of_directed Modified Mathlib/Dynamics/Circle/RotationNumber/TranslationNumber.lean Modified Mathlib/Dynamics/Minimal.lean + theorem IsOpen.iUnion_preimage_smul + theorem IsOpen.iUnion_smul - theorem IsOpen.unionᵢ_preimage_smul - theorem IsOpen.unionᵢ_smul Modified Mathlib/Dynamics/OmegaLimit.lean + theorem omegaLimit_eq_biInter_inter - theorem omegaLimit_eq_binterᵢ_inter + theorem omegaLimit_eq_iInter + theorem omegaLimit_eq_iInter_inter - theorem omegaLimit_eq_interᵢ - theorem omegaLimit_eq_interᵢ_inter + theorem omegaLimit_iInter + theorem omegaLimit_iUnion - theorem omegaLimit_interᵢ - theorem omegaLimit_unionᵢ Modified Mathlib/Dynamics/PeriodicPts.lean + theorem Function.iUnion_pNat_ptsOfPeriod - theorem Function.unionᵢ_pNat_ptsOfPeriod Modified Mathlib/FieldTheory/Subfield.lean + theorem Subfield.closure_iUnion + theorem Subfield.closure_sUnion - theorem Subfield.closure_unionᵢ - theorem Subfield.closure_unionₛ + theorem Subfield.coe_iSup_of_directed - theorem Subfield.coe_infₛ + theorem Subfield.coe_sInf + theorem Subfield.coe_sSup_of_directedOn - theorem Subfield.coe_supᵢ_of_directed - theorem Subfield.coe_supₛ_of_directedOn + theorem Subfield.comap_iInf - theorem Subfield.comap_infᵢ - theorem Subfield.infₛ_toSubring - theorem Subfield.isGLB_infₛ + theorem Subfield.isGLB_sInf + theorem Subfield.map_iSup - theorem Subfield.map_supᵢ + theorem Subfield.mem_iSup_of_directed - theorem Subfield.mem_infₛ + theorem Subfield.mem_sInf + theorem Subfield.mem_sSup_of_directedOn - theorem Subfield.mem_supᵢ_of_directed - theorem Subfield.mem_supₛ_of_directedOn + theorem Subfield.sInf_toSubring Modified Mathlib/Geometry/Manifold/ChartedSpace.lean Modified Mathlib/GroupTheory/Congruence.lean +/- theorem Con.conGen_eq - theorem Con.infₛ_def - theorem Con.infₛ_toSetoid + theorem Con.sInf_def + theorem Con.sInf_toSetoid + theorem Con.sSup_def + theorem Con.sSup_eq_conGen - theorem Con.supₛ_def - theorem Con.supₛ_eq_conGen Modified Mathlib/GroupTheory/Coset.lean - def Subgroup.quotientInfᵢEmbedding - theorem Subgroup.quotientInfᵢEmbedding_apply_mk - def Subgroup.quotientInfᵢSubgroupOfEmbedding - theorem Subgroup.quotientInfᵢSubgroupOfEmbedding_apply_mk + def Subgroup.quotientiInfEmbedding + theorem Subgroup.quotientiInfEmbedding_apply_mk + def Subgroup.quotientiInfSubgroupOfEmbedding + theorem Subgroup.quotientiInfSubgroupOfEmbedding_apply_mk Modified Mathlib/GroupTheory/DoubleCoset.lean Modified Mathlib/GroupTheory/FreeProduct.lean + theorem FreeProduct.mrange_eq_iSup - theorem FreeProduct.mrange_eq_supᵢ + theorem FreeProduct.range_eq_iSup - theorem FreeProduct.range_eq_supᵢ Modified Mathlib/GroupTheory/GroupAction/Basic.lean + theorem MulAction.fixed_eq_iInter_fixedBy - theorem MulAction.fixed_eq_interᵢ_fixedBy Modified Mathlib/GroupTheory/GroupAction/FixingSubgroup.lean + theorem fixedPoints_subgroup_iSup - theorem fixedPoints_subgroup_supᵢ + theorem fixedPoints_submonoid_iSup - theorem fixedPoints_submonoid_supᵢ + theorem fixingSubgroup_iUnion - theorem fixingSubgroup_unionᵢ + theorem fixingSubmonoid_iUnion - theorem fixingSubmonoid_unionᵢ Modified Mathlib/GroupTheory/GroupAction/Quotient.lean Modified Mathlib/GroupTheory/Index.lean + theorem Subgroup.index_iInf_le + theorem Subgroup.index_iInf_ne_zero - theorem Subgroup.index_infᵢ_le - theorem Subgroup.index_infᵢ_ne_zero + theorem Subgroup.relindex_iInf_le + theorem Subgroup.relindex_iInf_ne_zero - theorem Subgroup.relindex_infᵢ_le - theorem Subgroup.relindex_infᵢ_ne_zero Modified Mathlib/GroupTheory/MonoidLocalization.lean Modified Mathlib/GroupTheory/NoncommPiCoprod.lean Modified Mathlib/GroupTheory/OrderOfElement.lean Modified Mathlib/GroupTheory/Perm/Cycle/Basic.lean + theorem Set.prod_self_eq_iUnion_perm - theorem Set.prod_self_eq_unionᵢ_perm Modified Mathlib/GroupTheory/Subgroup/Basic.lean + theorem Subgroup.closure_iUnion - theorem Subgroup.closure_unionᵢ + theorem Subgroup.coe_iInf + theorem Subgroup.coe_iSup_of_directed - theorem Subgroup.coe_infᵢ - theorem Subgroup.coe_infₛ + theorem Subgroup.coe_sInf - theorem Subgroup.coe_supᵢ_of_directed + theorem Subgroup.comap_iInf - theorem Subgroup.comap_infᵢ + theorem Subgroup.iSup_comap_le + theorem Subgroup.iSup_eq_closure + theorem Subgroup.map_iSup - theorem Subgroup.map_supᵢ + theorem Subgroup.mem_iInf + theorem Subgroup.mem_iSup_of_directed + theorem Subgroup.mem_iSup_of_mem - theorem Subgroup.mem_infᵢ - theorem Subgroup.mem_infₛ + theorem Subgroup.mem_sInf + theorem Subgroup.mem_sSup_of_directedOn + theorem Subgroup.mem_sSup_of_mem - theorem Subgroup.mem_supᵢ_of_directed - theorem Subgroup.mem_supᵢ_of_mem - theorem Subgroup.mem_supₛ_of_directedOn - theorem Subgroup.mem_supₛ_of_mem + theorem Subgroup.normalClosure_eq_iInf - theorem Subgroup.normalClosure_eq_infᵢ + theorem Subgroup.normalCore_eq_iSup - theorem Subgroup.normalCore_eq_supᵢ - theorem Subgroup.supᵢ_comap_le - theorem Subgroup.supᵢ_eq_closure Modified Mathlib/GroupTheory/Subgroup/Pointwise.lean + theorem Subgroup.iSup_induction' + theorem Subgroup.iSup_induction - theorem Subgroup.supᵢ_induction' - theorem Subgroup.supᵢ_induction Modified Mathlib/GroupTheory/Subgroup/ZPowers.lean + theorem Subgroup.center_eq_iInf - theorem Subgroup.center_eq_infᵢ Modified Mathlib/GroupTheory/Submonoid/Basic.lean + theorem Submonoid.closure_iUnion - theorem Submonoid.closure_unionᵢ + theorem Submonoid.coe_iInf - theorem Submonoid.coe_infᵢ - theorem Submonoid.coe_infₛ + theorem Submonoid.coe_sInf + theorem Submonoid.iSup_eq_closure + theorem Submonoid.mem_iInf + theorem Submonoid.mem_iSup - theorem Submonoid.mem_infᵢ - theorem Submonoid.mem_infₛ + theorem Submonoid.mem_sInf - theorem Submonoid.mem_supᵢ - theorem Submonoid.supᵢ_eq_closure Modified Mathlib/GroupTheory/Submonoid/Membership.lean + theorem Submonoid.coe_iSup_of_directed + theorem Submonoid.coe_sSup_of_directedOn - theorem Submonoid.coe_supᵢ_of_directed - theorem Submonoid.coe_supₛ_of_directedOn + theorem Submonoid.iSup_induction' + theorem Submonoid.iSup_induction + theorem Submonoid.mem_iSup_of_directed + theorem Submonoid.mem_iSup_of_mem + theorem Submonoid.mem_sSup_of_directedOn + theorem Submonoid.mem_sSup_of_mem - theorem Submonoid.mem_supᵢ_of_directed - theorem Submonoid.mem_supᵢ_of_mem - theorem Submonoid.mem_supₛ_of_directedOn - theorem Submonoid.mem_supₛ_of_mem - theorem Submonoid.supᵢ_induction' - theorem Submonoid.supᵢ_induction Modified Mathlib/GroupTheory/Submonoid/Operations.lean + theorem Submonoid.comap_iInf + theorem Submonoid.comap_iInf_map_of_injective + theorem Submonoid.comap_iSup_map_of_injective - theorem Submonoid.comap_infᵢ - theorem Submonoid.comap_infᵢ_map_of_injective - theorem Submonoid.comap_supᵢ_map_of_injective + theorem Submonoid.map_iInf_comap_of_surjective + theorem Submonoid.map_iSup + theorem Submonoid.map_iSup_comap_of_surjective - theorem Submonoid.map_infᵢ_comap_of_surjective - theorem Submonoid.map_supᵢ - theorem Submonoid.map_supᵢ_comap_of_surjective Modified Mathlib/GroupTheory/Submonoid/Pointwise.lean + theorem Submonoid.inv_iInf + theorem Submonoid.inv_iSup - theorem Submonoid.inv_infᵢ - theorem Submonoid.inv_supᵢ Modified Mathlib/GroupTheory/Subsemigroup/Basic.lean + theorem Subsemigroup.closure_iUnion - theorem Subsemigroup.closure_unionᵢ + theorem Subsemigroup.coe_iInf - theorem Subsemigroup.coe_infᵢ - theorem Subsemigroup.coe_infₛ + theorem Subsemigroup.coe_sInf + theorem Subsemigroup.iSup_eq_closure + theorem Subsemigroup.mem_iInf + theorem Subsemigroup.mem_iSup - theorem Subsemigroup.mem_infᵢ - theorem Subsemigroup.mem_infₛ + theorem Subsemigroup.mem_sInf - theorem Subsemigroup.mem_supᵢ - theorem Subsemigroup.supᵢ_eq_closure Modified Mathlib/GroupTheory/Subsemigroup/Membership.lean + theorem Subsemigroup.coe_iSup_of_directed + theorem Subsemigroup.coe_sSup_of_directed_on - theorem Subsemigroup.coe_supᵢ_of_directed - theorem Subsemigroup.coe_supₛ_of_directed_on + theorem Subsemigroup.iSup_induction' + theorem Subsemigroup.iSup_induction + theorem Subsemigroup.mem_iSup_of_directed + theorem Subsemigroup.mem_iSup_of_mem + theorem Subsemigroup.mem_sSup_of_directed_on + theorem Subsemigroup.mem_sSup_of_mem - theorem Subsemigroup.mem_supᵢ_of_directed - theorem Subsemigroup.mem_supᵢ_of_mem - theorem Subsemigroup.mem_supₛ_of_directed_on - theorem Subsemigroup.mem_supₛ_of_mem - theorem Subsemigroup.supᵢ_induction' - theorem Subsemigroup.supᵢ_induction Modified Mathlib/GroupTheory/Subsemigroup/Operations.lean + theorem Subsemigroup.comap_iInf + theorem Subsemigroup.comap_iInf_map_of_injective + theorem Subsemigroup.comap_iSup_map_of_injective - theorem Subsemigroup.comap_infᵢ - theorem Subsemigroup.comap_infᵢ_map_of_injective - theorem Subsemigroup.comap_supᵢ_map_of_injective + theorem Subsemigroup.map_iInf_comap_of_surjective + theorem Subsemigroup.map_iSup + theorem Subsemigroup.map_iSup_comap_of_surjective - theorem Subsemigroup.map_infᵢ_comap_of_surjective - theorem Subsemigroup.map_supᵢ - theorem Subsemigroup.map_supᵢ_comap_of_surjective Modified Mathlib/LinearAlgebra/AffineSpace/AffineSubspace.lean - theorem AffineSubspace.affineSpan_eq_infₛ + theorem AffineSubspace.affineSpan_eq_sInf + theorem AffineSubspace.map_iSup - theorem AffineSubspace.map_supᵢ + theorem AffineSubspace.span_iUnion - theorem AffineSubspace.span_unionᵢ Modified Mathlib/LinearAlgebra/Basic.lean + theorem LinearMap.iInf_invariant - theorem LinearMap.infᵢ_invariant + theorem Submodule.comap_iInf + theorem Submodule.comap_iInf_map_of_injective + theorem Submodule.comap_iSup_map_of_injective - theorem Submodule.comap_infᵢ - theorem Submodule.comap_infᵢ_map_of_injective - theorem Submodule.comap_supᵢ_map_of_injective + theorem Submodule.map_iInf_comap_of_surjective + theorem Submodule.map_iSup + theorem Submodule.map_iSup_comap_of_sujective - theorem Submodule.map_infᵢ_comap_of_surjective - theorem Submodule.map_supᵢ - theorem Submodule.map_supᵢ_comap_of_sujective Modified Mathlib/LinearAlgebra/Basis.lean Modified Mathlib/LinearAlgebra/Dfinsupp.lean + theorem Submodule.biSup_eq_range_dfinsupp_lsum - theorem Submodule.bsupᵢ_eq_range_dfinsupp_lsum + theorem Submodule.iSup_eq_range_dfinsupp_lsum + theorem Submodule.mem_biSup_iff_exists_dfinsupp - theorem Submodule.mem_bsupᵢ_iff_exists_dfinsupp + theorem Submodule.mem_iSup_finset_iff_exists_sum + theorem Submodule.mem_iSup_iff_exists_dfinsupp' + theorem Submodule.mem_iSup_iff_exists_dfinsupp - theorem Submodule.mem_supᵢ_finset_iff_exists_sum - theorem Submodule.mem_supᵢ_iff_exists_dfinsupp' - theorem Submodule.mem_supᵢ_iff_exists_dfinsupp - theorem Submodule.supᵢ_eq_range_dfinsupp_lsum Modified Mathlib/LinearAlgebra/Dimension.lean Modified Mathlib/LinearAlgebra/FiniteDimensional.lean Modified Mathlib/LinearAlgebra/Finsupp.lean + theorem Finsupp.iInf_ker_lapply_le_bot + theorem Finsupp.iSup_lsingle_range - theorem Finsupp.infᵢ_ker_lapply_le_bot + theorem Finsupp.supported_iInter + theorem Finsupp.supported_iUnion - theorem Finsupp.supported_interᵢ - theorem Finsupp.supported_unionᵢ - theorem Finsupp.supᵢ_lsingle_range + theorem Submodule.exists_finset_of_mem_iSup - theorem Submodule.exists_finset_of_mem_supᵢ + theorem Submodule.mem_iSup_iff_exists_finset - theorem Submodule.mem_supᵢ_iff_exists_finset Modified Mathlib/LinearAlgebra/FinsuppVectorSpace.lean Modified Mathlib/LinearAlgebra/FreeModule/Finite/Rank.lean Modified Mathlib/LinearAlgebra/LinearIndependent.lean + theorem linearIndependent_biUnion_of_directed - theorem linearIndependent_bunionᵢ_of_directed + theorem linearIndependent_iUnion_finite + theorem linearIndependent_iUnion_finite_subtype + theorem linearIndependent_iUnion_of_directed + theorem linearIndependent_sUnion_of_directed - theorem linearIndependent_unionᵢ_finite - theorem linearIndependent_unionᵢ_finite_subtype - theorem linearIndependent_unionᵢ_of_directed - theorem linearIndependent_unionₛ_of_directed Modified Mathlib/LinearAlgebra/LinearPMap.lean Modified Mathlib/LinearAlgebra/Matrix/Diagonal.lean Modified Mathlib/LinearAlgebra/Matrix/ToLin.lean Modified Mathlib/LinearAlgebra/Pi.lean + def LinearMap.iInfKerProjEquiv + theorem LinearMap.iInf_ker_proj - def LinearMap.infᵢKerProjEquiv - theorem LinearMap.infᵢ_ker_proj + theorem Submodule.biInf_comap_proj - theorem Submodule.binfᵢ_comap_proj + theorem Submodule.iInf_comap_proj + theorem Submodule.iSup_map_single - theorem Submodule.infᵢ_comap_proj - theorem Submodule.supᵢ_map_single Modified Mathlib/LinearAlgebra/ProjectiveSpace/Subspace.lean - theorem Projectivization.Subspace.span_eq_infₛ + theorem Projectivization.Subspace.span_eq_sInf + theorem Projectivization.Subspace.span_iUnion - theorem Projectivization.Subspace.span_unionᵢ Modified Mathlib/LinearAlgebra/Span.lean + theorem Submodule.coe_iSup_of_chain + theorem Submodule.coe_iSup_of_directed - theorem Submodule.coe_supᵢ_of_chain - theorem Submodule.coe_supᵢ_of_directed + theorem Submodule.iSup_eq_span + theorem Submodule.iSup_induction' + theorem Submodule.iSup_induction + theorem Submodule.iSup_span + theorem Submodule.iSup_toAddSubmonoid + theorem Submodule.mem_iSup + theorem Submodule.mem_iSup_of_chain + theorem Submodule.mem_iSup_of_directed + theorem Submodule.mem_sSup_of_directed - theorem Submodule.mem_supᵢ - theorem Submodule.mem_supᵢ_of_chain - theorem Submodule.mem_supᵢ_of_directed - theorem Submodule.mem_supₛ_of_directed + theorem Submodule.span_attach_biUnion - theorem Submodule.span_attach_bunionᵢ + theorem Submodule.span_eq_iSup_of_singleton_spans - theorem Submodule.span_eq_supᵢ_of_singleton_spans + theorem Submodule.span_iUnion + theorem Submodule.span_iUnion₂ + theorem Submodule.span_range_eq_iSup - theorem Submodule.span_range_eq_supᵢ - theorem Submodule.span_unionᵢ - theorem Submodule.span_unionᵢ₂ + theorem Submodule.submodule_eq_sSup_le_nonzero_spans - theorem Submodule.submodule_eq_supₛ_le_nonzero_spans - theorem Submodule.supᵢ_eq_span - theorem Submodule.supᵢ_induction' - theorem Submodule.supᵢ_induction - theorem Submodule.supᵢ_span - theorem Submodule.supᵢ_toAddSubmonoid Modified Mathlib/LinearAlgebra/StdBasis.lean + theorem LinearMap.iInf_ker_proj_le_iSup_range_stdBasis + theorem LinearMap.iSup_range_stdBasis + theorem LinearMap.iSup_range_stdBasis_eq_iInf_ker_proj + theorem LinearMap.iSup_range_stdBasis_le_iInf_ker_proj - theorem LinearMap.infᵢ_ker_proj_le_supᵢ_range_stdBasis - theorem LinearMap.supᵢ_range_stdBasis - theorem LinearMap.supᵢ_range_stdBasis_eq_infᵢ_ker_proj - theorem LinearMap.supᵢ_range_stdBasis_le_infᵢ_ker_proj Modified Mathlib/Logic/Encodable/Lattice.lean + theorem Encodable.iSup_decode₂ + theorem Encodable.iUnion_decode₂ + theorem Encodable.iUnion_decode₂_cases + theorem Encodable.iUnion_decode₂_disjoint_on - theorem Encodable.supᵢ_decode₂ - theorem Encodable.unionᵢ_decode₂ - theorem Encodable.unionᵢ_decode₂_cases - theorem Encodable.unionᵢ_decode₂_disjoint_on Modified Mathlib/MeasureTheory/CardMeasurableSpace.lean + theorem MeasurableSpace.iUnion_mem_generateMeasurableRec - theorem MeasurableSpace.unionᵢ_mem_generateMeasurableRec Modified Mathlib/MeasureTheory/Covering/VitaliFamily.lean + theorem VitaliFamily.FineSubfamilyOn.measure_diff_biUnion - theorem VitaliFamily.FineSubfamilyOn.measure_diff_bunionᵢ Modified Mathlib/MeasureTheory/Decomposition/UnsignedHahn.lean Modified Mathlib/MeasureTheory/Function/AEMeasurableSequence.lean + theorem aeSeq.iSup - theorem aeSeq.supᵢ Modified Mathlib/MeasureTheory/Group/Arithmetic.lean Modified Mathlib/MeasureTheory/MeasurableSpace.lean + theorem MeasurableSpace.comap_iSup - theorem MeasurableSpace.comap_supᵢ + theorem MeasurableSpace.map_iInf - theorem MeasurableSpace.map_infᵢ + theorem measurable_iUnionLift - theorem measurable_unionᵢLift Modified Mathlib/MeasureTheory/MeasurableSpaceDef.lean + theorem Finset.measurableSet_biInter + theorem Finset.measurableSet_biUnion - theorem Finset.measurableSet_binterᵢ - theorem Finset.measurableSet_bunionᵢ + theorem MeasurableSet.biInter + theorem MeasurableSet.biUnion_decode₂ - theorem MeasurableSet.binterᵢ - theorem MeasurableSet.bunionᵢ_decode₂ + theorem MeasurableSet.iInter - theorem MeasurableSet.interᵢ - theorem MeasurableSet.interₛ + theorem MeasurableSet.sInter + theorem MeasurableSpace.generateFrom_iUnion_measurableSet - theorem MeasurableSpace.generateFrom_unionᵢ_measurableSet + theorem MeasurableSpace.measurableSet_iInf + theorem MeasurableSpace.measurableSet_iSup - theorem MeasurableSpace.measurableSet_infᵢ - theorem MeasurableSpace.measurableSet_infₛ + theorem MeasurableSpace.measurableSet_sInf + theorem MeasurableSpace.measurableSet_sSup - theorem MeasurableSpace.measurableSet_supᵢ - theorem MeasurableSpace.measurableSet_supₛ + theorem MeasurableSpace.measurableSpace_iSup_eq - theorem MeasurableSpace.measurableSpace_supᵢ_eq + theorem Set.Finite.measurableSet_biInter + theorem Set.Finite.measurableSet_biUnion - theorem Set.Finite.measurableSet_binterᵢ - theorem Set.Finite.measurableSet_bunionᵢ - theorem Set.Finite.measurableSet_interₛ + theorem Set.Finite.measurableSet_sInter + theorem Set.Finite.measurableSet_sUnion - theorem Set.Finite.measurableSet_unionₛ Modified Mathlib/MeasureTheory/Measure/AEDisjoint.lean + theorem MeasureTheory.AEDisjoint.iUnion_left_iff + theorem MeasureTheory.AEDisjoint.iUnion_right_iff - theorem MeasureTheory.AEDisjoint.unionᵢ_left_iff - theorem MeasureTheory.AEDisjoint.unionᵢ_right_iff Modified Mathlib/MeasureTheory/Measure/AEMeasurable.lean + theorem aemeasurable_iUnion_iff - theorem aemeasurable_unionᵢ_iff Modified Mathlib/MeasureTheory/Measure/MeasureSpace.lean + theorem MeasureTheory.Measure.countable_meas_pos_of_disjoint_iUnion + theorem MeasureTheory.Measure.countable_meas_pos_of_disjoint_of_meas_iUnion_ne_top - theorem MeasureTheory.Measure.countable_meas_pos_of_disjoint_of_meas_unionᵢ_ne_top - theorem MeasureTheory.Measure.countable_meas_pos_of_disjoint_unionᵢ + theorem MeasureTheory.Measure.ext_iff_of_biUnion_eq_univ - theorem MeasureTheory.Measure.ext_iff_of_bunionᵢ_eq_univ + theorem MeasureTheory.Measure.ext_iff_of_iUnion_eq_univ + theorem MeasureTheory.Measure.ext_iff_of_sUnion_eq_univ - theorem MeasureTheory.Measure.ext_iff_of_unionᵢ_eq_univ - theorem MeasureTheory.Measure.ext_iff_of_unionₛ_eq_univ + theorem MeasureTheory.Measure.ext_of_generateFrom_of_iUnion - theorem MeasureTheory.Measure.ext_of_generateFrom_of_unionᵢ + theorem MeasureTheory.Measure.finite_const_le_meas_of_disjoint_iUnion - theorem MeasureTheory.Measure.finite_const_le_meas_of_disjoint_unionᵢ + theorem MeasureTheory.Measure.iSup_restrict_spanningSets - theorem MeasureTheory.Measure.infₛ_apply - theorem MeasureTheory.Measure.infₛ_caratheodory + theorem MeasureTheory.Measure.restrict_biUnion_congr - theorem MeasureTheory.Measure.restrict_bunionᵢ_congr + theorem MeasureTheory.Measure.restrict_finset_biUnion_congr - theorem MeasureTheory.Measure.restrict_finset_bunionᵢ_congr + theorem MeasureTheory.Measure.restrict_iUnion + theorem MeasureTheory.Measure.restrict_iUnion_ae + theorem MeasureTheory.Measure.restrict_iUnion_apply + theorem MeasureTheory.Measure.restrict_iUnion_apply_ae + theorem MeasureTheory.Measure.restrict_iUnion_apply_eq_iSup + theorem MeasureTheory.Measure.restrict_iUnion_congr + theorem MeasureTheory.Measure.restrict_iUnion_le - theorem MeasureTheory.Measure.restrict_infₛ_eq_infₛ_restrict + theorem MeasureTheory.Measure.restrict_sInf_eq_sInf_restrict + theorem MeasureTheory.Measure.restrict_sUnion_congr - theorem MeasureTheory.Measure.restrict_unionᵢ - theorem MeasureTheory.Measure.restrict_unionᵢ_ae - theorem MeasureTheory.Measure.restrict_unionᵢ_apply - theorem MeasureTheory.Measure.restrict_unionᵢ_apply_ae - theorem MeasureTheory.Measure.restrict_unionᵢ_apply_eq_supᵢ - theorem MeasureTheory.Measure.restrict_unionᵢ_congr - theorem MeasureTheory.Measure.restrict_unionᵢ_le - theorem MeasureTheory.Measure.restrict_unionₛ_congr + theorem MeasureTheory.Measure.sInf_apply + theorem MeasureTheory.Measure.sInf_caratheodory - theorem MeasureTheory.Measure.supᵢ_restrict_spanningSets + theorem MeasureTheory.ae_eq_restrict_biUnion_finset_iff + theorem MeasureTheory.ae_eq_restrict_biUnion_iff - theorem MeasureTheory.ae_eq_restrict_bunionᵢ_finset_iff - theorem MeasureTheory.ae_eq_restrict_bunionᵢ_iff + theorem MeasureTheory.ae_eq_restrict_iUnion_iff - theorem MeasureTheory.ae_eq_restrict_unionᵢ_iff + theorem MeasureTheory.ae_restrict_biUnion_eq + theorem MeasureTheory.ae_restrict_biUnion_finset_eq + theorem MeasureTheory.ae_restrict_biUnion_finset_iff + theorem MeasureTheory.ae_restrict_biUnion_iff - theorem MeasureTheory.ae_restrict_bunionᵢ_eq - theorem MeasureTheory.ae_restrict_bunionᵢ_finset_eq - theorem MeasureTheory.ae_restrict_bunionᵢ_finset_iff - theorem MeasureTheory.ae_restrict_bunionᵢ_iff + theorem MeasureTheory.ae_restrict_iUnion_eq + theorem MeasureTheory.ae_restrict_iUnion_iff - theorem MeasureTheory.ae_restrict_unionᵢ_eq - theorem MeasureTheory.ae_restrict_unionᵢ_iff + theorem MeasureTheory.biSup_measure_Iic - theorem MeasureTheory.bsupᵢ_measure_Iic + theorem MeasureTheory.iUnion_spanningSets + theorem MeasureTheory.measure_biUnion + theorem MeasureTheory.measure_biUnion_eq_iSup + theorem MeasureTheory.measure_biUnion_finset + theorem MeasureTheory.measure_biUnion_finset₀ + theorem MeasureTheory.measure_biUnion_toMeasurable + theorem MeasureTheory.measure_biUnion₀ - theorem MeasureTheory.measure_bunionᵢ - theorem MeasureTheory.measure_bunionᵢ_eq_supᵢ - theorem MeasureTheory.measure_bunionᵢ_finset - theorem MeasureTheory.measure_bunionᵢ_finset₀ - theorem MeasureTheory.measure_bunionᵢ_toMeasurable - theorem MeasureTheory.measure_bunionᵢ₀ + theorem MeasureTheory.measure_iInter_eq_iInf + theorem MeasureTheory.measure_iUnion_congr_of_subset + theorem MeasureTheory.measure_iUnion_eq_iSup + theorem MeasureTheory.measure_iUnion_toMeasurable - theorem MeasureTheory.measure_interᵢ_eq_infᵢ + theorem MeasureTheory.measure_sUnion + theorem MeasureTheory.measure_sUnion₀ - theorem MeasureTheory.measure_unionᵢ_congr_of_subset - theorem MeasureTheory.measure_unionᵢ_eq_supᵢ - theorem MeasureTheory.measure_unionᵢ_toMeasurable - theorem MeasureTheory.measure_unionₛ - theorem MeasureTheory.measure_unionₛ₀ + theorem MeasureTheory.tendsto_measure_biInter_gt - theorem MeasureTheory.tendsto_measure_binterᵢ_gt + theorem MeasureTheory.tendsto_measure_iInter + theorem MeasureTheory.tendsto_measure_iUnion - theorem MeasureTheory.tendsto_measure_interᵢ - theorem MeasureTheory.tendsto_measure_unionᵢ + theorem MeasureTheory.tsum_meas_le_meas_iUnion_of_disjoint - theorem MeasureTheory.tsum_meas_le_meas_unionᵢ_of_disjoint - theorem MeasureTheory.unionᵢ_spanningSets Modified Mathlib/MeasureTheory/Measure/MeasureSpaceDef.lean + theorem MeasureTheory.exists_measure_pos_of_not_measure_iUnion_null - theorem MeasureTheory.exists_measure_pos_of_not_measure_unionᵢ_null + theorem MeasureTheory.measure_biUnion_finset_le + theorem MeasureTheory.measure_biUnion_le + theorem MeasureTheory.measure_biUnion_lt_top + theorem MeasureTheory.measure_biUnion_null_iff - theorem MeasureTheory.measure_bunionᵢ_finset_le - theorem MeasureTheory.measure_bunionᵢ_le - theorem MeasureTheory.measure_bunionᵢ_lt_top - theorem MeasureTheory.measure_bunionᵢ_null_iff + theorem MeasureTheory.measure_eq_iInf' + theorem MeasureTheory.measure_eq_iInf - theorem MeasureTheory.measure_eq_infᵢ' - theorem MeasureTheory.measure_eq_infᵢ + theorem MeasureTheory.measure_iUnion_fintype_le + theorem MeasureTheory.measure_iUnion_le + theorem MeasureTheory.measure_iUnion_null + theorem MeasureTheory.measure_iUnion_null_iff' + theorem MeasureTheory.measure_iUnion_null_iff + theorem MeasureTheory.measure_sUnion_null_iff - theorem MeasureTheory.measure_unionᵢ_fintype_le - theorem MeasureTheory.measure_unionᵢ_le - theorem MeasureTheory.measure_unionᵢ_null - theorem MeasureTheory.measure_unionᵢ_null_iff' - theorem MeasureTheory.measure_unionᵢ_null_iff - theorem MeasureTheory.measure_unionₛ_null_iff Modified Mathlib/MeasureTheory/Measure/MutuallySingular.lean Modified Mathlib/MeasureTheory/Measure/NullMeasurable.lean + theorem Finset.nullMeasurableSet_biInter + theorem Finset.nullMeasurableSet_biUnion - theorem Finset.nullMeasurableSet_binterᵢ - theorem Finset.nullMeasurableSet_bunionᵢ + theorem MeasureTheory.measure_iUnion + theorem MeasureTheory.measure_iUnion₀ - theorem MeasureTheory.measure_unionᵢ - theorem MeasureTheory.measure_unionᵢ₀ + theorem Set.Finite.nullMeasurableSet_biInter + theorem Set.Finite.nullMeasurableSet_biUnion - theorem Set.Finite.nullMeasurableSet_binterᵢ - theorem Set.Finite.nullMeasurableSet_bunionᵢ - theorem Set.Finite.nullMeasurableSet_interₛ + theorem Set.Finite.nullMeasurableSet_sInter + theorem Set.Finite.nullMeasurableSet_sUnion - theorem Set.Finite.nullMeasurableSet_unionₛ Modified Mathlib/MeasureTheory/Measure/OuterMeasure.lean + theorem MeasureTheory.OuterMeasure.biInf_apply' + theorem MeasureTheory.OuterMeasure.biInf_apply + theorem MeasureTheory.OuterMeasure.biUnion_null_iff - theorem MeasureTheory.OuterMeasure.binfᵢ_apply' - theorem MeasureTheory.OuterMeasure.binfᵢ_apply - theorem MeasureTheory.OuterMeasure.bunionᵢ_null_iff + theorem MeasureTheory.OuterMeasure.coe_iSup - theorem MeasureTheory.OuterMeasure.coe_supᵢ + theorem MeasureTheory.OuterMeasure.comap_iInf + theorem MeasureTheory.OuterMeasure.comap_iSup - theorem MeasureTheory.OuterMeasure.comap_infᵢ - theorem MeasureTheory.OuterMeasure.comap_supᵢ + theorem MeasureTheory.OuterMeasure.f_iUnion - theorem MeasureTheory.OuterMeasure.f_unionᵢ + theorem MeasureTheory.OuterMeasure.iInf_apply' + theorem MeasureTheory.OuterMeasure.iInf_apply + theorem MeasureTheory.OuterMeasure.iSup_apply + theorem MeasureTheory.OuterMeasure.iSup_sInfGen_nonempty + theorem MeasureTheory.OuterMeasure.iUnion_nat_of_monotone_of_tsum_ne_top + theorem MeasureTheory.OuterMeasure.iUnion_null + theorem MeasureTheory.OuterMeasure.iUnion_null_iff' + theorem MeasureTheory.OuterMeasure.iUnion_null_iff + theorem MeasureTheory.OuterMeasure.iUnion_of_tendsto_zero - theorem MeasureTheory.OuterMeasure.infᵢ_apply' - theorem MeasureTheory.OuterMeasure.infᵢ_apply - def MeasureTheory.OuterMeasure.infₛGen - theorem MeasureTheory.OuterMeasure.infₛGen_def - theorem MeasureTheory.OuterMeasure.infₛ_apply' - theorem MeasureTheory.OuterMeasure.infₛ_apply - theorem MeasureTheory.OuterMeasure.infₛ_eq_boundedBy_infₛGen + theorem MeasureTheory.OuterMeasure.isCaratheodory_iUnion_lt + theorem MeasureTheory.OuterMeasure.isCaratheodory_iUnion_nat - theorem MeasureTheory.OuterMeasure.isCaratheodory_unionᵢ_lt - theorem MeasureTheory.OuterMeasure.isCaratheodory_unionᵢ_nat + theorem MeasureTheory.OuterMeasure.map_biInf_comap - theorem MeasureTheory.OuterMeasure.map_binfᵢ_comap + theorem MeasureTheory.OuterMeasure.map_iInf + theorem MeasureTheory.OuterMeasure.map_iInf_comap + theorem MeasureTheory.OuterMeasure.map_iInf_le + theorem MeasureTheory.OuterMeasure.map_iSup - theorem MeasureTheory.OuterMeasure.map_infᵢ - theorem MeasureTheory.OuterMeasure.map_infᵢ_comap - theorem MeasureTheory.OuterMeasure.map_infᵢ_le - theorem MeasureTheory.OuterMeasure.map_supᵢ + theorem MeasureTheory.OuterMeasure.ofFunction_eq_sSup - theorem MeasureTheory.OuterMeasure.ofFunction_eq_supₛ + theorem MeasureTheory.OuterMeasure.restrict_biInf - theorem MeasureTheory.OuterMeasure.restrict_binfᵢ + theorem MeasureTheory.OuterMeasure.restrict_iInf + theorem MeasureTheory.OuterMeasure.restrict_iInf_restrict + theorem MeasureTheory.OuterMeasure.restrict_iSup - theorem MeasureTheory.OuterMeasure.restrict_infᵢ - theorem MeasureTheory.OuterMeasure.restrict_infᵢ_restrict - theorem MeasureTheory.OuterMeasure.restrict_infₛ_eq_infₛ_restrict + theorem MeasureTheory.OuterMeasure.restrict_sInf_eq_sInf_restrict - theorem MeasureTheory.OuterMeasure.restrict_supᵢ + def MeasureTheory.OuterMeasure.sInfGen + theorem MeasureTheory.OuterMeasure.sInfGen_def + theorem MeasureTheory.OuterMeasure.sInf_apply' + theorem MeasureTheory.OuterMeasure.sInf_apply + theorem MeasureTheory.OuterMeasure.sInf_eq_boundedBy_sInfGen + theorem MeasureTheory.OuterMeasure.sSup_apply + theorem MeasureTheory.OuterMeasure.sUnion_null_iff + theorem MeasureTheory.OuterMeasure.smul_iSup - theorem MeasureTheory.OuterMeasure.smul_supᵢ - theorem MeasureTheory.OuterMeasure.supᵢ_apply - theorem MeasureTheory.OuterMeasure.supᵢ_infₛGen_nonempty - theorem MeasureTheory.OuterMeasure.supₛ_apply + theorem MeasureTheory.OuterMeasure.trim_eq_iInf' + theorem MeasureTheory.OuterMeasure.trim_eq_iInf - theorem MeasureTheory.OuterMeasure.trim_eq_infᵢ' - theorem MeasureTheory.OuterMeasure.trim_eq_infᵢ + theorem MeasureTheory.OuterMeasure.trim_iSup - theorem MeasureTheory.OuterMeasure.trim_supᵢ - theorem MeasureTheory.OuterMeasure.unionᵢ_nat_of_monotone_of_tsum_ne_top - theorem MeasureTheory.OuterMeasure.unionᵢ_null - theorem MeasureTheory.OuterMeasure.unionᵢ_null_iff' - theorem MeasureTheory.OuterMeasure.unionᵢ_null_iff - theorem MeasureTheory.OuterMeasure.unionᵢ_of_tendsto_zero - theorem MeasureTheory.OuterMeasure.unionₛ_null_iff + theorem MeasureTheory.extend_iUnion + theorem MeasureTheory.extend_iUnion_le_tsum_nat' + theorem MeasureTheory.extend_iUnion_le_tsum_nat + theorem MeasureTheory.extend_iUnion_nat - theorem MeasureTheory.extend_unionᵢ - theorem MeasureTheory.extend_unionᵢ_le_tsum_nat' - theorem MeasureTheory.extend_unionᵢ_le_tsum_nat - theorem MeasureTheory.extend_unionᵢ_nat + theorem MeasureTheory.inducedOuterMeasure_eq_iInf - theorem MeasureTheory.inducedOuterMeasure_eq_infᵢ Modified Mathlib/MeasureTheory/Measure/Sub.lean +/- theorem MeasureTheory.Measure.sub_def Modified Mathlib/MeasureTheory/PiSystem.lean + theorem MeasurableSpace.DynkinSystem.has_iUnion - theorem MeasurableSpace.DynkinSystem.has_unionᵢ - theorem generateFrom_piUnionᵢInter_le - theorem generateFrom_piUnionᵢInter_measurableSet - theorem generateFrom_piUnionᵢInter_singleton_left + theorem generateFrom_piiUnionInter_le + theorem generateFrom_piiUnionInter_measurableSet + theorem generateFrom_piiUnionInter_singleton_left + theorem isPiSystem_iUnion_of_directed_le + theorem isPiSystem_iUnion_of_monotone - theorem isPiSystem_piUnionᵢInter + theorem isPiSystem_piiUnionInter - theorem isPiSystem_unionᵢ_of_directed_le - theorem isPiSystem_unionᵢ_of_monotone - theorem le_generateFrom_piUnionᵢInter + theorem le_generateFrom_piiUnionInter + theorem measurableSet_iSup_of_mem_piiUnionInter - theorem measurableSet_supᵢ_of_mem_piUnionᵢInter + theorem mem_generatePiSystem_iUnion_elim' + theorem mem_generatePiSystem_iUnion_elim - theorem mem_generatePiSystem_unionᵢ_elim' - theorem mem_generatePiSystem_unionᵢ_elim - theorem mem_piUnionᵢInter_of_measurableSet + theorem mem_piiUnionInter_of_measurableSet - def piUnionᵢInter - theorem piUnionᵢInter_mono_left - theorem piUnionᵢInter_mono_right - theorem piUnionᵢInter_singleton - theorem piUnionᵢInter_singleton_left + def piiUnionInter + theorem piiUnionInter_mono_left + theorem piiUnionInter_mono_right + theorem piiUnionInter_singleton + theorem piiUnionInter_singleton_left - theorem subset_piUnionᵢInter + theorem subset_piiUnionInter Modified Mathlib/ModelTheory/Definability.lean + theorem Set.definable_finset_biInter + theorem Set.definable_finset_biUnion - theorem Set.definable_finset_binterᵢ - theorem Set.definable_finset_bunionᵢ Modified Mathlib/ModelTheory/Encoding.lean Modified Mathlib/ModelTheory/Semantics.lean Modified Mathlib/ModelTheory/Substructures.lean - theorem FirstOrder.Language.ClosedUnder.infₛ + theorem FirstOrder.Language.ClosedUnder.sInf + theorem FirstOrder.Language.Substructure.coe_iInf - theorem FirstOrder.Language.Substructure.coe_infᵢ - theorem FirstOrder.Language.Substructure.coe_infₛ + theorem FirstOrder.Language.Substructure.coe_sInf + theorem FirstOrder.Language.Substructure.comap_iInf + theorem FirstOrder.Language.Substructure.comap_iInf_map_of_injective + theorem FirstOrder.Language.Substructure.comap_iSup_map_of_injective - theorem FirstOrder.Language.Substructure.comap_infᵢ - theorem FirstOrder.Language.Substructure.comap_infᵢ_map_of_injective - theorem FirstOrder.Language.Substructure.comap_supᵢ_map_of_injective + theorem FirstOrder.Language.Substructure.map_iInf_comap_of_surjective + theorem FirstOrder.Language.Substructure.map_iSup + theorem FirstOrder.Language.Substructure.map_iSup_comap_of_surjective - theorem FirstOrder.Language.Substructure.map_infᵢ_comap_of_surjective - theorem FirstOrder.Language.Substructure.map_supᵢ - theorem FirstOrder.Language.Substructure.map_supᵢ_comap_of_surjective + theorem FirstOrder.Language.Substructure.mem_iInf - theorem FirstOrder.Language.Substructure.mem_infᵢ - theorem FirstOrder.Language.Substructure.mem_infₛ + theorem FirstOrder.Language.Substructure.mem_sInf Modified Mathlib/ModelTheory/Syntax.lean + theorem FirstOrder.Language.distinctConstantsTheory_eq_iUnion - theorem FirstOrder.Language.distinctConstantsTheory_eq_unionᵢ Modified Mathlib/Order/Atoms.lean + theorem sSup_atoms_eq_top + theorem sSup_atoms_le_eq - theorem supₛ_atoms_eq_top - theorem supₛ_atoms_le_eq Modified Mathlib/Order/Chain.lean Modified Mathlib/Order/Closure.lean + theorem ClosureOperator.closure_iSup_closure + theorem ClosureOperator.closure_iSup₂_closure - theorem ClosureOperator.closure_supᵢ_closure - theorem ClosureOperator.closure_supᵢ₂_closure + theorem LowerAdjoint.closure_iSup_closure + theorem LowerAdjoint.closure_iSup₂_closure + theorem LowerAdjoint.closure_iUnion_closure + theorem LowerAdjoint.closure_iUnion₂_closure - theorem LowerAdjoint.closure_supᵢ_closure - theorem LowerAdjoint.closure_supᵢ₂_closure - theorem LowerAdjoint.closure_unionᵢ_closure - theorem LowerAdjoint.closure_unionᵢ₂_closure Modified Mathlib/Order/CompactlyGenerated.lean + theorem CompleteLattice.IsCompactElement.directed_sSup_lt_of_lt - theorem CompleteLattice.IsCompactElement.directed_supₛ_lt_of_lt + theorem CompleteLattice.IsCompactElement.exists_finset_of_le_iSup - theorem CompleteLattice.IsCompactElement.exists_finset_of_le_supᵢ + theorem CompleteLattice.independent_sUnion_of_directed - theorem CompleteLattice.independent_unionₛ_of_directed + theorem CompleteLattice.isCompactElement_iff_le_of_directed_sSup_le - theorem CompleteLattice.isCompactElement_iff_le_of_directed_supₛ_le + theorem CompleteLattice.setIndependent_iUnion_of_directed - theorem CompleteLattice.setIndependent_unionᵢ_of_directed + theorem DirectedOn.inf_sSup_eq - theorem DirectedOn.inf_supₛ_eq + theorem complementedLattice_of_sSup_atoms_eq_top - theorem complementedLattice_of_supₛ_atoms_eq_top + theorem exists_setIndependent_isCompl_sSup_atoms - theorem exists_setIndependent_isCompl_supₛ_atoms + theorem exists_setIndependent_of_sSup_atoms_eq_top - theorem exists_setIndependent_of_supₛ_atoms_eq_top + theorem inf_sSup_eq_iSup_inf_sup_finset - theorem inf_supₛ_eq_supᵢ_inf_sup_finset + theorem sSup_compact_eq_top + theorem sSup_compact_le_eq - theorem supₛ_compact_eq_top - theorem supₛ_compact_le_eq Modified Mathlib/Order/CompleteBooleanAlgebra.lean - theorem PUnit.infₛ_eq + theorem PUnit.sInf_eq + theorem PUnit.sSup_eq - theorem PUnit.supₛ_eq + theorem biInf_sup_biInf + theorem biSup_inf_biSup - theorem binfᵢ_sup_binfᵢ - theorem bsupᵢ_inf_bsupᵢ + theorem compl_iInf + theorem compl_iSup - theorem compl_infᵢ - theorem compl_infₛ' - theorem compl_infₛ + theorem compl_sInf' + theorem compl_sInf + theorem compl_sSup' + theorem compl_sSup - theorem compl_supᵢ - theorem compl_supₛ' - theorem compl_supₛ + theorem disjoint_iSup_iff + theorem disjoint_iSup₂_iff + theorem disjoint_sSup_iff - theorem disjoint_supᵢ_iff - theorem disjoint_supᵢ₂_iff - theorem disjoint_supₛ_iff + theorem iInf_sup_eq + theorem iInf_sup_iInf + theorem iInf_sup_of_antitone + theorem iInf_sup_of_monotone + theorem iInf₂_sup_eq + theorem iSup_disjoint_iff + theorem iSup_inf_eq + theorem iSup_inf_iSup + theorem iSup_inf_of_antitone + theorem iSup_inf_of_monotone + theorem iSup₂_disjoint_iff + theorem iSup₂_inf_eq + theorem inf_iSup_eq + theorem inf_iSup₂_eq + theorem inf_sSup_eq - theorem inf_supᵢ_eq - theorem inf_supᵢ₂_eq - theorem inf_supₛ_eq - theorem infᵢ_sup_eq - theorem infᵢ_sup_infᵢ - theorem infᵢ_sup_of_antitone - theorem infᵢ_sup_of_monotone - theorem infᵢ₂_sup_eq - theorem infₛ_sup_eq - theorem infₛ_sup_infₛ + theorem sInf_sup_eq + theorem sInf_sup_sInf + theorem sSup_disjoint_iff + theorem sSup_inf_eq + theorem sSup_inf_sSup + theorem sup_iInf_eq + theorem sup_iInf₂_eq - theorem sup_infᵢ_eq - theorem sup_infᵢ₂_eq - theorem sup_infₛ_eq + theorem sup_sInf_eq - theorem supᵢ_disjoint_iff - theorem supᵢ_inf_eq - theorem supᵢ_inf_of_antitone - theorem supᵢ_inf_of_monotone - theorem supᵢ_inf_supᵢ - theorem supᵢ₂_disjoint_iff - theorem supᵢ₂_inf_eq - theorem supₛ_disjoint_iff - theorem supₛ_inf_eq - theorem supₛ_inf_supₛ Modified Mathlib/Order/CompleteLattice.lean + theorem Antitone.iInf_nat_add - theorem Antitone.infᵢ_nat_add + theorem Antitone.le_map_iInf + theorem Antitone.le_map_iInf₂ - theorem Antitone.le_map_infᵢ - theorem Antitone.le_map_infᵢ₂ - theorem Antitone.le_map_infₛ + theorem Antitone.le_map_sInf + theorem Antitone.map_iSup_le + theorem Antitone.map_iSup₂_le + theorem Antitone.map_sSup_le - theorem Antitone.map_supᵢ_le - theorem Antitone.map_supᵢ₂_le - theorem Antitone.map_supₛ_le + theorem Equiv.iInf_comp + theorem Equiv.iSup_comp - theorem Equiv.infᵢ_comp - theorem Equiv.supᵢ_comp + theorem Function.Surjective.iInf_comp + theorem Function.Surjective.iSup_comp - theorem Function.Surjective.infᵢ_comp - theorem Function.Surjective.supᵢ_comp + theorem IsGLB.iInf_eq - theorem IsGLB.infᵢ_eq - theorem IsGLB.infₛ_eq + theorem IsGLB.sInf_eq + theorem IsLUB.iSup_eq + theorem IsLUB.sSup_eq - theorem IsLUB.supᵢ_eq - theorem IsLUB.supₛ_eq + theorem Monotone.iInf_comp_eq + theorem Monotone.iSup_comp_eq + theorem Monotone.iSup_nat_add - theorem Monotone.infᵢ_comp_eq + theorem Monotone.le_map_iSup + theorem Monotone.le_map_iSup₂ + theorem Monotone.le_map_sSup - theorem Monotone.le_map_supᵢ - theorem Monotone.le_map_supᵢ₂ - theorem Monotone.le_map_supₛ + theorem Monotone.map_iInf_le + theorem Monotone.map_iInf₂_le - theorem Monotone.map_infᵢ_le - theorem Monotone.map_infᵢ₂_le - theorem Monotone.map_infₛ_le + theorem Monotone.map_sInf_le - theorem Monotone.supᵢ_comp_eq - theorem Monotone.supᵢ_nat_add + theorem OrderIso.map_iInf + theorem OrderIso.map_iSup - theorem OrderIso.map_infᵢ - theorem OrderIso.map_infₛ + theorem OrderIso.map_sInf + theorem OrderIso.map_sSup - theorem OrderIso.map_supᵢ - theorem OrderIso.map_supₛ + theorem Prod.fst_iInf + theorem Prod.fst_iSup - theorem Prod.fst_infᵢ - theorem Prod.fst_infₛ + theorem Prod.fst_sInf + theorem Prod.fst_sSup - theorem Prod.fst_supᵢ - theorem Prod.fst_supₛ + theorem Prod.iInf_mk + theorem Prod.iSup_mk - theorem Prod.infᵢ_mk + theorem Prod.snd_iInf + theorem Prod.snd_iSup - theorem Prod.snd_infᵢ - theorem Prod.snd_infₛ + theorem Prod.snd_sInf + theorem Prod.snd_sSup - theorem Prod.snd_supᵢ - theorem Prod.snd_supₛ - theorem Prod.supᵢ_mk + theorem Prod.swap_iInf + theorem Prod.swap_iSup - theorem Prod.swap_infᵢ - theorem Prod.swap_infₛ + theorem Prod.swap_sInf + theorem Prod.swap_sSup - theorem Prod.swap_supᵢ - theorem Prod.swap_supₛ + theorem biInf_const + theorem biInf_inf + theorem biInf_mono + theorem biInf_prod + theorem biSup_const + theorem biSup_mono + theorem biSup_prod + theorem biSup_sup - theorem binary_relation_infₛ_iff + theorem binary_relation_sInf_iff + theorem binary_relation_sSup_iff - theorem binary_relation_supₛ_iff - theorem binfᵢ_const - theorem binfᵢ_inf - theorem binfᵢ_mono - theorem binfᵢ_prod - theorem bsupᵢ_const - theorem bsupᵢ_mono - theorem bsupᵢ_prod - theorem bsupᵢ_sup + theorem disjoint_sSup_left + theorem disjoint_sSup_right - theorem disjoint_supₛ_left - theorem disjoint_supₛ_right + theorem eq_singleton_bot_of_sSup_eq_bot_of_nonempty - theorem eq_singleton_bot_of_supₛ_eq_bot_of_nonempty - theorem eq_singleton_top_of_infₛ_eq_top_of_nonempty + theorem eq_singleton_top_of_sInf_eq_top_of_nonempty + def iInf.unexpander + def iInf + theorem iInf_Prop_eq + theorem iInf_and' + theorem iInf_and + theorem iInf_apply + theorem iInf_bool_eq + theorem iInf_comm + theorem iInf_congr + theorem iInf_congr_Prop + theorem iInf_const + theorem iInf_const_mono + theorem iInf_dite + theorem iInf_emptyset + theorem iInf_eq_bot + theorem iInf_eq_dif + theorem iInf_eq_if + theorem iInf_eq_of_forall_ge_of_forall_gt_exists_lt + theorem iInf_eq_top + theorem iInf_exists + theorem iInf_extend_top + theorem iInf_false + theorem iInf_ge_eq_iInf_nat_add + theorem iInf_iInf_eq_left + theorem iInf_iInf_eq_right + theorem iInf_iSup_ge_nat_add + theorem iInf_image + theorem iInf_inf + theorem iInf_inf_eq + theorem iInf_insert + theorem iInf_ite + theorem iInf_le' + theorem iInf_le + theorem iInf_le_iInf_of_subset + theorem iInf_le_iInf₂ + theorem iInf_le_iff + theorem iInf_le_of_le + theorem iInf_lt_iff + theorem iInf_mono' + theorem iInf_mono + theorem iInf_nat_gt_zero_eq + theorem iInf_ne_top_subtype + theorem iInf_neg + theorem iInf_of_empty' + theorem iInf_of_empty + theorem iInf_option + theorem iInf_option_elim + theorem iInf_or + theorem iInf_pair + theorem iInf_plift_down + theorem iInf_plift_up + theorem iInf_pos + theorem iInf_prod + theorem iInf_range' + theorem iInf_range + theorem iInf_sigma + theorem iInf_singleton + theorem iInf_split + theorem iInf_split_single + theorem iInf_subtype'' + theorem iInf_subtype' + theorem iInf_subtype + theorem iInf_sum + theorem iInf_sup_iInf_le + theorem iInf_top + theorem iInf_true + theorem iInf_union + theorem iInf_univ + theorem iInf₂_comm + theorem iInf₂_eq_top + theorem iInf₂_le + theorem iInf₂_le_of_le + theorem iInf₂_mono' + theorem iInf₂_mono + def iSup.unexpander + def iSup + theorem iSup_Prop_eq + theorem iSup_and' + theorem iSup_and + theorem iSup_apply + theorem iSup_bool_eq + theorem iSup_bot + theorem iSup_comm + theorem iSup_comp_le + theorem iSup_congr + theorem iSup_congr_Prop + theorem iSup_const + theorem iSup_const_le + theorem iSup_const_mono + theorem iSup_dite + theorem iSup_emptyset + theorem iSup_eq_bot + theorem iSup_eq_dif + theorem iSup_eq_if + theorem iSup_eq_of_forall_le_of_forall_lt_exists_gt + theorem iSup_eq_top + theorem iSup_exists + theorem iSup_extend_bot + theorem iSup_false + theorem iSup_ge_eq_iSup_nat_add + theorem iSup_iInf_ge_nat_add + theorem iSup_iInf_le_iInf_iSup + theorem iSup_iSup_eq_left + theorem iSup_iSup_eq_right + theorem iSup_image + theorem iSup_inf_le_inf_sSup + theorem iSup_inf_le_sSup_inf + theorem iSup_insert + theorem iSup_ite + theorem iSup_le + theorem iSup_le_iSup_of_subset + theorem iSup_le_iff + theorem iSup_lt_iff + theorem iSup_mono' + theorem iSup_mono + theorem iSup_nat_gt_zero_eq + theorem iSup_ne_bot_subtype + theorem iSup_neg + theorem iSup_of_empty' + theorem iSup_of_empty + theorem iSup_option + theorem iSup_option_elim + theorem iSup_or + theorem iSup_pair + theorem iSup_plift_down + theorem iSup_plift_up + theorem iSup_pos + theorem iSup_prod + theorem iSup_range' + theorem iSup_range + theorem iSup_sigma + theorem iSup_singleton + theorem iSup_split + theorem iSup_split_single + theorem iSup_subtype'' + theorem iSup_subtype' + theorem iSup_subtype + theorem iSup_sum + theorem iSup_sup + theorem iSup_sup_eq + theorem iSup_true + theorem iSup_union + theorem iSup_univ + theorem iSup₂_comm + theorem iSup₂_eq_bot + theorem iSup₂_le + theorem iSup₂_le_iSup + theorem iSup₂_le_iff + theorem iSup₂_mono' + theorem iSup₂_mono + theorem inf_biInf - theorem inf_binfᵢ + theorem inf_eq_iInf - theorem inf_eq_infᵢ + theorem inf_iInf + theorem inf_iInf_nat_succ - theorem inf_infᵢ - theorem inf_infᵢ_nat_succ - def infᵢ.unexpander - def infᵢ - theorem infᵢ_Prop_eq - theorem infᵢ_and' - theorem infᵢ_and - theorem infᵢ_apply - theorem infᵢ_bool_eq - theorem infᵢ_comm - theorem infᵢ_congr - theorem infᵢ_congr_Prop - theorem infᵢ_const - theorem infᵢ_const_mono - theorem infᵢ_dite - theorem infᵢ_emptyset - theorem infᵢ_eq_bot - theorem infᵢ_eq_dif - theorem infᵢ_eq_if - theorem infᵢ_eq_of_forall_ge_of_forall_gt_exists_lt - theorem infᵢ_eq_top - theorem infᵢ_exists - theorem infᵢ_extend_top - theorem infᵢ_false - theorem infᵢ_ge_eq_infᵢ_nat_add - theorem infᵢ_image - theorem infᵢ_inf - theorem infᵢ_inf_eq - theorem infᵢ_infᵢ_eq_left - theorem infᵢ_infᵢ_eq_right - theorem infᵢ_insert - theorem infᵢ_ite - theorem infᵢ_le' - theorem infᵢ_le - theorem infᵢ_le_iff - theorem infᵢ_le_infᵢ_of_subset - theorem infᵢ_le_infᵢ₂ - theorem infᵢ_le_of_le - theorem infᵢ_lt_iff - theorem infᵢ_mono' - theorem infᵢ_mono - theorem infᵢ_nat_gt_zero_eq - theorem infᵢ_ne_top_subtype - theorem infᵢ_neg - theorem infᵢ_of_empty' - theorem infᵢ_of_empty - theorem infᵢ_option - theorem infᵢ_option_elim - theorem infᵢ_or - theorem infᵢ_pair - theorem infᵢ_plift_down - theorem infᵢ_plift_up - theorem infᵢ_pos - theorem infᵢ_prod - theorem infᵢ_range' - theorem infᵢ_range - theorem infᵢ_sigma - theorem infᵢ_singleton - theorem infᵢ_split - theorem infᵢ_split_single - theorem infᵢ_subtype'' - theorem infᵢ_subtype' - theorem infᵢ_subtype - theorem infᵢ_sum - theorem infᵢ_sup_infᵢ_le - theorem infᵢ_supᵢ_ge_nat_add - theorem infᵢ_top - theorem infᵢ_true - theorem infᵢ_union - theorem infᵢ_univ - theorem infᵢ₂_comm - theorem infᵢ₂_eq_top - theorem infᵢ₂_le - theorem infᵢ₂_le_of_le - theorem infᵢ₂_mono' - theorem infᵢ₂_mono - theorem infₛ_Prop_eq - theorem infₛ_apply - theorem infₛ_diff_singleton_top - theorem infₛ_empty - theorem infₛ_eq_bot - theorem infₛ_eq_infᵢ' - theorem infₛ_eq_infᵢ - theorem infₛ_eq_of_forall_ge_of_forall_gt_exists_lt - theorem infₛ_eq_top - theorem infₛ_image' - theorem infₛ_image2 - theorem infₛ_image - theorem infₛ_insert - theorem infₛ_le - theorem infₛ_le_iff - theorem infₛ_le_infₛ - theorem infₛ_le_infₛ_of_forall_exists_le - theorem infₛ_le_infₛ_of_subset_insert_top - theorem infₛ_le_of_le - theorem infₛ_le_supₛ - theorem infₛ_lt_iff - theorem infₛ_pair - theorem infₛ_prod - theorem infₛ_range - theorem infₛ_singleton - theorem infₛ_sup_le_infᵢ_sup - theorem infₛ_union - theorem infₛ_univ + theorem isGLB_biInf - theorem isGLB_binfᵢ + theorem isGLB_iInf - theorem isGLB_infᵢ - theorem isGLB_infₛ + theorem isGLB_sInf + theorem isLUB_biSup - theorem isLUB_bsupᵢ + theorem isLUB_iSup + theorem isLUB_sSup - theorem isLUB_supᵢ - theorem isLUB_supₛ + theorem le_iInf + theorem le_iInf_comp + theorem le_iInf_const + theorem le_iInf_iff + theorem le_iInf₂ + theorem le_iInf₂_iff + theorem le_iSup' + theorem le_iSup + theorem le_iSup_iff + theorem le_iSup_inf_iSup + theorem le_iSup_of_le + theorem le_iSup₂ + theorem le_iSup₂_of_le - theorem le_infᵢ - theorem le_infᵢ_comp - theorem le_infᵢ_const - theorem le_infᵢ_iff - theorem le_infᵢ₂ - theorem le_infᵢ₂_iff - theorem le_infₛ - theorem le_infₛ_iff - theorem le_infₛ_inter + theorem le_sInf + theorem le_sInf_iff + theorem le_sInf_inter + theorem le_sSup + theorem le_sSup_iff + theorem le_sSup_of_le - theorem le_supᵢ' - theorem le_supᵢ - theorem le_supᵢ_iff - theorem le_supᵢ_inf_supᵢ - theorem le_supᵢ_of_le - theorem le_supᵢ₂ - theorem le_supᵢ₂_of_le - theorem le_supₛ - theorem le_supₛ_iff - theorem le_supₛ_of_le + theorem lt_iInf_iff + theorem lt_iSup_iff - theorem lt_infᵢ_iff + theorem lt_sSup_iff - theorem lt_supᵢ_iff - theorem lt_supₛ_iff - theorem monotone_infₛ_of_monotone + theorem monotone_sInf_of_monotone + theorem monotone_sSup_of_monotone - theorem monotone_supₛ_of_monotone + theorem ofDual_iInf + theorem ofDual_iSup - theorem ofDual_infᵢ - theorem ofDual_infₛ + theorem ofDual_sInf + theorem ofDual_sSup - theorem ofDual_supᵢ - theorem ofDual_supₛ + theorem sInf_Prop_eq + theorem sInf_apply + theorem sInf_diff_singleton_top + theorem sInf_empty + theorem sInf_eq_bot + theorem sInf_eq_iInf' + theorem sInf_eq_iInf + theorem sInf_eq_of_forall_ge_of_forall_gt_exists_lt + theorem sInf_eq_top + theorem sInf_image' + theorem sInf_image2 + theorem sInf_image + theorem sInf_insert + theorem sInf_le + theorem sInf_le_iff + theorem sInf_le_of_le + theorem sInf_le_sInf + theorem sInf_le_sInf_of_forall_exists_le + theorem sInf_le_sInf_of_subset_insert_top + theorem sInf_le_sSup + theorem sInf_lt_iff + theorem sInf_pair + theorem sInf_prod + theorem sInf_range + theorem sInf_singleton + theorem sInf_sup_le_iInf_sup + theorem sInf_union + theorem sInf_univ + theorem sSup_Prop_eq + theorem sSup_apply + theorem sSup_diff_singleton_bot + theorem sSup_empty + theorem sSup_eq_bot + theorem sSup_eq_iSup' + theorem sSup_eq_iSup + theorem sSup_eq_of_forall_le_of_forall_lt_exists_gt + theorem sSup_eq_top + theorem sSup_image' + theorem sSup_image2 + theorem sSup_image + theorem sSup_insert + theorem sSup_inter_le + theorem sSup_le + theorem sSup_le_iff + theorem sSup_le_sSup + theorem sSup_le_sSup_of_forall_exists_le + theorem sSup_le_sSup_of_subset_insert_bot + theorem sSup_pair + theorem sSup_prod + theorem sSup_range + theorem sSup_singleton + theorem sSup_union + theorem sSup_univ + theorem sup_biSup - theorem sup_bsupᵢ + theorem sup_eq_iSup - theorem sup_eq_supᵢ + theorem sup_iSup + theorem sup_iSup_nat_succ - theorem sup_infₛ_le_infᵢ_sup + theorem sup_sInf_le_iInf_sup - theorem sup_supᵢ - theorem sup_supᵢ_nat_succ - def supᵢ.unexpander - def supᵢ - theorem supᵢ_Prop_eq - theorem supᵢ_and' - theorem supᵢ_and - theorem supᵢ_apply - theorem supᵢ_bool_eq - theorem supᵢ_bot - theorem supᵢ_comm - theorem supᵢ_comp_le - theorem supᵢ_congr - theorem supᵢ_congr_Prop - theorem supᵢ_const - theorem supᵢ_const_le - theorem supᵢ_const_mono - theorem supᵢ_dite - theorem supᵢ_emptyset - theorem supᵢ_eq_bot - theorem supᵢ_eq_dif - theorem supᵢ_eq_if - theorem supᵢ_eq_of_forall_le_of_forall_lt_exists_gt - theorem supᵢ_eq_top - theorem supᵢ_exists - theorem supᵢ_extend_bot - theorem supᵢ_false - theorem supᵢ_ge_eq_supᵢ_nat_add - theorem supᵢ_image - theorem supᵢ_inf_le_inf_supₛ - theorem supᵢ_inf_le_supₛ_inf - theorem supᵢ_infᵢ_ge_nat_add - theorem supᵢ_infᵢ_le_infᵢ_supᵢ - theorem supᵢ_insert - theorem supᵢ_ite - theorem supᵢ_le - theorem supᵢ_le_iff - theorem supᵢ_le_supᵢ_of_subset - theorem supᵢ_lt_iff - theorem supᵢ_mono' - theorem supᵢ_mono - theorem supᵢ_nat_gt_zero_eq - theorem supᵢ_ne_bot_subtype - theorem supᵢ_neg - theorem supᵢ_of_empty' - theorem supᵢ_of_empty - theorem supᵢ_option - theorem supᵢ_option_elim - theorem supᵢ_or - theorem supᵢ_pair - theorem supᵢ_plift_down - theorem supᵢ_plift_up - theorem supᵢ_pos - theorem supᵢ_prod - theorem supᵢ_range' - theorem supᵢ_range - theorem supᵢ_sigma - theorem supᵢ_singleton - theorem supᵢ_split - theorem supᵢ_split_single - theorem supᵢ_subtype'' - theorem supᵢ_subtype' - theorem supᵢ_subtype - theorem supᵢ_sum - theorem supᵢ_sup - theorem supᵢ_sup_eq - theorem supᵢ_supᵢ_eq_left - theorem supᵢ_supᵢ_eq_right - theorem supᵢ_true - theorem supᵢ_union - theorem supᵢ_univ - theorem supᵢ₂_comm - theorem supᵢ₂_eq_bot - theorem supᵢ₂_le - theorem supᵢ₂_le_iff - theorem supᵢ₂_le_supᵢ - theorem supᵢ₂_mono' - theorem supᵢ₂_mono - theorem supₛ_Prop_eq - theorem supₛ_apply - theorem supₛ_diff_singleton_bot - theorem supₛ_empty - theorem supₛ_eq_bot - theorem supₛ_eq_of_forall_le_of_forall_lt_exists_gt - theorem supₛ_eq_supᵢ' - theorem supₛ_eq_supᵢ - theorem supₛ_eq_top - theorem supₛ_image' - theorem supₛ_image2 - theorem supₛ_image - theorem supₛ_insert - theorem supₛ_inter_le - theorem supₛ_le - theorem supₛ_le_iff - theorem supₛ_le_supₛ - theorem supₛ_le_supₛ_of_forall_exists_le - theorem supₛ_le_supₛ_of_subset_insert_bot - theorem supₛ_pair - theorem supₛ_prod - theorem supₛ_range - theorem supₛ_singleton - theorem supₛ_union - theorem supₛ_univ + theorem toDual_iInf + theorem toDual_iSup - theorem toDual_infᵢ - theorem toDual_infₛ + theorem toDual_sInf + theorem toDual_sSup - theorem toDual_supᵢ - theorem toDual_supₛ - theorem unary_relation_infₛ_iff + theorem unary_relation_sInf_iff + theorem unary_relation_sSup_iff - theorem unary_relation_supₛ_iff Modified Mathlib/Order/CompleteLatticeIntervals.lean - theorem infₛ_within_of_ordConnected + theorem sInf_within_of_ordConnected + theorem sSup_within_of_ordConnected - theorem subset_infₛ_def - theorem subset_infₛ_of_within + theorem subset_sInf_def + theorem subset_sInf_of_within + theorem subset_sSup_def + theorem subset_sSup_of_within - theorem subset_supₛ_def - theorem subset_supₛ_of_within - theorem supₛ_within_of_ordConnected Modified Mathlib/Order/Concept.lean - theorem Concept.infₛ_fst - theorem Concept.infₛ_snd + theorem Concept.sInf_fst + theorem Concept.sInf_snd + theorem Concept.sSup_fst + theorem Concept.sSup_snd - theorem Concept.supₛ_fst - theorem Concept.supₛ_snd + theorem extentClosure_iUnion - theorem extentClosure_unionᵢ + theorem intentClosure_iUnion + theorem intentClosure_iUnion₂ - theorem intentClosure_unionᵢ - theorem intentClosure_unionᵢ₂ Modified Mathlib/Order/ConditionallyCompleteLattice/Basic.lean + theorem GaloisConnection.l_ciSup + theorem GaloisConnection.l_ciSup_set + theorem GaloisConnection.l_csSup' + theorem GaloisConnection.l_csSup - theorem GaloisConnection.l_csupᵢ - theorem GaloisConnection.l_csupᵢ_set - theorem GaloisConnection.l_csupₛ' - theorem GaloisConnection.l_csupₛ + theorem GaloisConnection.u_ciInf + theorem GaloisConnection.u_ciInf_set - theorem GaloisConnection.u_cinfᵢ - theorem GaloisConnection.u_cinfᵢ_set - theorem GaloisConnection.u_cinfₛ' - theorem GaloisConnection.u_cinfₛ + theorem GaloisConnection.u_csInf' + theorem GaloisConnection.u_csInf + theorem IsGLB.ciInf_eq + theorem IsGLB.ciInf_set_eq - theorem IsGLB.cinfᵢ_eq - theorem IsGLB.cinfᵢ_set_eq - theorem IsGLB.cinfₛ_eq + theorem IsGLB.csInf_eq + theorem IsGreatest.csSup_eq + theorem IsGreatest.csSup_mem - theorem IsGreatest.csupₛ_eq - theorem IsGreatest.csupₛ_mem + theorem IsLUB.ciSup_eq + theorem IsLUB.ciSup_set_eq + theorem IsLUB.csSup_eq - theorem IsLUB.csupᵢ_eq - theorem IsLUB.csupᵢ_set_eq - theorem IsLUB.csupₛ_eq - theorem IsLeast.cinfₛ_eq - theorem IsLeast.cinfₛ_mem + theorem IsLeast.csInf_eq + theorem IsLeast.csInf_mem + theorem Monotone.ciSup_mem_Inter_Icc_of_antitone - theorem Monotone.cinfₛ_image_le + theorem Monotone.csInf_image_le + theorem Monotone.csSup_image_le - theorem Monotone.csupᵢ_mem_Inter_Icc_of_antitone - theorem Monotone.csupₛ_image_le - theorem Monotone.le_cinfₛ_image + theorem Monotone.le_csInf_image + theorem Monotone.le_csSup_image - theorem Monotone.le_csupₛ_image - theorem Monotone.map_cinfₛ + theorem Monotone.map_csInf - theorem MonotoneOn.map_cinfₛ + theorem MonotoneOn.map_csInf + theorem OrderIso.map_ciInf + theorem OrderIso.map_ciInf_set + theorem OrderIso.map_ciSup + theorem OrderIso.map_ciSup_set - theorem OrderIso.map_cinfᵢ - theorem OrderIso.map_cinfᵢ_set - theorem OrderIso.map_cinfₛ' - theorem OrderIso.map_cinfₛ + theorem OrderIso.map_csInf' + theorem OrderIso.map_csInf + theorem OrderIso.map_csSup' + theorem OrderIso.map_csSup - theorem OrderIso.map_csupᵢ - theorem OrderIso.map_csupᵢ_set - theorem OrderIso.map_csupₛ' - theorem OrderIso.map_csupₛ + theorem WithBot.ciSup_empty + theorem WithBot.coe_iInf + theorem WithBot.coe_iSup - theorem WithBot.coe_infᵢ - theorem WithBot.coe_infₛ' + theorem WithBot.coe_sInf' + theorem WithBot.coe_sSup' - theorem WithBot.coe_supᵢ - theorem WithBot.coe_supₛ' + theorem WithBot.csSup_empty - theorem WithBot.csupᵢ_empty - theorem WithBot.csupₛ_empty - theorem WithBot.infₛ_eq + theorem WithBot.sInf_eq + theorem WithBot.sSup_eq - theorem WithBot.supₛ_eq + theorem WithTop.coe_iInf + theorem WithTop.coe_iSup - theorem WithTop.coe_infᵢ - theorem WithTop.coe_infₛ' - theorem WithTop.coe_infₛ + theorem WithTop.coe_sInf' + theorem WithTop.coe_sInf + theorem WithTop.coe_sSup' + theorem WithTop.coe_sSup - theorem WithTop.coe_supᵢ - theorem WithTop.coe_supₛ' - theorem WithTop.coe_supₛ + theorem WithTop.iInf_empty + theorem WithTop.iSup_coe_eq_top + theorem WithTop.iSup_coe_lt_top - theorem WithTop.infᵢ_empty - theorem WithTop.infₛ_empty - theorem WithTop.infₛ_eq - theorem WithTop.isGLB_infₛ' - theorem WithTop.isGLB_infₛ + theorem WithTop.isGLB_sInf' + theorem WithTop.isGLB_sInf + theorem WithTop.isLUB_sSup' + theorem WithTop.isLUB_sSup - theorem WithTop.isLUB_supₛ' - theorem WithTop.isLUB_supₛ + theorem WithTop.sInf_empty + theorem WithTop.sInf_eq + theorem WithTop.sSup_eq - theorem WithTop.supᵢ_coe_eq_top - theorem WithTop.supᵢ_coe_lt_top - theorem WithTop.supₛ_eq + theorem ciInf_const + theorem ciInf_eq_of_forall_ge_of_forall_gt_exists_lt + theorem ciInf_le' + theorem ciInf_le + theorem ciInf_le_of_le + theorem ciInf_mem + theorem ciInf_mono + theorem ciInf_pos + theorem ciInf_set_le + theorem ciInf_subsingleton + theorem ciInf_unique + theorem ciSup_const + theorem ciSup_eq_of_forall_le_of_forall_lt_exists_gt + theorem ciSup_false + theorem ciSup_le' + theorem ciSup_le + theorem ciSup_le_iff' + theorem ciSup_le_iff + theorem ciSup_mem_Inter_Icc_of_antitone_Icc + theorem ciSup_mono' + theorem ciSup_mono + theorem ciSup_of_empty + theorem ciSup_pos + theorem ciSup_set_le_iff + theorem ciSup_subsingleton + theorem ciSup_unique - theorem cinfᵢ_const - theorem cinfᵢ_eq_of_forall_ge_of_forall_gt_exists_lt - theorem cinfᵢ_le' - theorem cinfᵢ_le - theorem cinfᵢ_le_of_le - theorem cinfᵢ_mem - theorem cinfᵢ_mono - theorem cinfᵢ_pos - theorem cinfᵢ_set_le - theorem cinfᵢ_subsingleton - theorem cinfᵢ_unique - theorem cinfₛ_Icc - theorem cinfₛ_Ici - theorem cinfₛ_Ico - theorem cinfₛ_Ioc - theorem cinfₛ_Ioi - theorem cinfₛ_Ioo - theorem cinfₛ_eq_of_forall_ge_of_forall_gt_exists_lt - theorem cinfₛ_image2_eq_cinfₛ_cinfₛ - theorem cinfₛ_image2_eq_cinfₛ_csupₛ - theorem cinfₛ_image2_eq_csupₛ_cinfₛ - theorem cinfₛ_image2_eq_csupₛ_csupₛ - theorem cinfₛ_insert - theorem cinfₛ_le' - theorem cinfₛ_le - theorem cinfₛ_le_cinfₛ' - theorem cinfₛ_le_cinfₛ - theorem cinfₛ_le_csupₛ - theorem cinfₛ_le_iff - theorem cinfₛ_le_of_le - theorem cinfₛ_lt_of_lt - theorem cinfₛ_mem - theorem cinfₛ_pair - theorem cinfₛ_singleton - theorem cinfₛ_union - theorem cinfₛ_univ - theorem cinfₛ_upper_bounds_eq_csupₛ - def conditionallyCompleteLatticeOfInfₛ - def conditionallyCompleteLatticeOfLatticeOfInfₛ - def conditionallyCompleteLatticeOfLatticeOfSupₛ + def conditionallyCompleteLatticeOfLatticeOfsInf + def conditionallyCompleteLatticeOfLatticeOfsSup - def conditionallyCompleteLatticeOfSupₛ + def conditionallyCompleteLatticeOfsInf + def conditionallyCompleteLatticeOfsSup + theorem csInf_Icc + theorem csInf_Ici + theorem csInf_Ico + theorem csInf_Ioc + theorem csInf_Ioi + theorem csInf_Ioo + theorem csInf_eq_of_forall_ge_of_forall_gt_exists_lt + theorem csInf_image2_eq_csInf_csInf + theorem csInf_image2_eq_csInf_csSup + theorem csInf_image2_eq_csSup_csInf + theorem csInf_image2_eq_csSup_csSup + theorem csInf_insert + theorem csInf_le' + theorem csInf_le + theorem csInf_le_csInf' + theorem csInf_le_csInf + theorem csInf_le_csSup + theorem csInf_le_iff + theorem csInf_le_of_le + theorem csInf_lt_of_lt + theorem csInf_mem + theorem csInf_pair + theorem csInf_singleton + theorem csInf_union + theorem csInf_univ + theorem csInf_upper_bounds_eq_csSup + theorem csSup_Icc + theorem csSup_Ico + theorem csSup_Iic + theorem csSup_Iio + theorem csSup_Ioc + theorem csSup_Ioo + theorem csSup_empty + theorem csSup_eq_of_forall_le_of_forall_lt_exists_gt + theorem csSup_eq_of_is_forall_le_of_forall_le_imp_ge + theorem csSup_image2_eq_csInf_csInf + theorem csSup_image2_eq_csInf_csSup + theorem csSup_image2_eq_csSup_csInf + theorem csSup_image2_eq_csSup_csSup + theorem csSup_insert + theorem csSup_inter_le + theorem csSup_le' + theorem csSup_le + theorem csSup_le_csSup + theorem csSup_le_iff' + theorem csSup_le_iff + theorem csSup_lower_bounds_eq_csInf + theorem csSup_pair + theorem csSup_singleton + theorem csSup_union - theorem csupᵢ_const - theorem csupᵢ_eq_of_forall_le_of_forall_lt_exists_gt - theorem csupᵢ_false - theorem csupᵢ_le' - theorem csupᵢ_le - theorem csupᵢ_le_iff' - theorem csupᵢ_le_iff - theorem csupᵢ_mem_Inter_Icc_of_antitone_Icc - theorem csupᵢ_mono' - theorem csupᵢ_mono - theorem csupᵢ_of_empty - theorem csupᵢ_pos - theorem csupᵢ_set_le_iff - theorem csupᵢ_subsingleton - theorem csupᵢ_unique - theorem csupₛ_Icc - theorem csupₛ_Ico - theorem csupₛ_Iic - theorem csupₛ_Iio - theorem csupₛ_Ioc - theorem csupₛ_Ioo - theorem csupₛ_empty - theorem csupₛ_eq_of_forall_le_of_forall_lt_exists_gt - theorem csupₛ_eq_of_is_forall_le_of_forall_le_imp_ge - theorem csupₛ_image2_eq_cinfₛ_cinfₛ - theorem csupₛ_image2_eq_cinfₛ_csupₛ - theorem csupₛ_image2_eq_csupₛ_cinfₛ - theorem csupₛ_image2_eq_csupₛ_csupₛ - theorem csupₛ_insert - theorem csupₛ_inter_le - theorem csupₛ_le' - theorem csupₛ_le - theorem csupₛ_le_csupₛ - theorem csupₛ_le_iff' - theorem csupₛ_le_iff - theorem csupₛ_lower_bounds_eq_cinfₛ - theorem csupₛ_pair - theorem csupₛ_singleton - theorem csupₛ_union + theorem exists_lt_of_ciInf_lt - theorem exists_lt_of_cinfᵢ_lt - theorem exists_lt_of_cinfₛ_lt + theorem exists_lt_of_csInf_lt + theorem exists_lt_of_lt_ciSup' + theorem exists_lt_of_lt_ciSup + theorem exists_lt_of_lt_csSup' + theorem exists_lt_of_lt_csSup - theorem exists_lt_of_lt_csupᵢ' - theorem exists_lt_of_lt_csupᵢ - theorem exists_lt_of_lt_csupₛ' - theorem exists_lt_of_lt_csupₛ - theorem infₛ_eq_argmin_on + theorem isGLB_ciInf + theorem isGLB_ciInf_set - theorem isGLB_cinfᵢ - theorem isGLB_cinfᵢ_set - theorem isGLB_cinfₛ + theorem isGLB_csInf + theorem isLUB_ciSup + theorem isLUB_ciSup_set + theorem isLUB_csSup' + theorem isLUB_csSup - theorem isLUB_csupᵢ - theorem isLUB_csupᵢ_set - theorem isLUB_csupₛ' - theorem isLUB_csupₛ - theorem isLeast_cinfₛ + theorem isLeast_csInf + theorem le_ciInf + theorem le_ciInf_iff' + theorem le_ciInf_iff + theorem le_ciInf_set_iff + theorem le_ciSup + theorem le_ciSup_iff' + theorem le_ciSup_of_le + theorem le_ciSup_set - theorem le_cinfᵢ - theorem le_cinfᵢ_iff' - theorem le_cinfᵢ_iff - theorem le_cinfᵢ_set_iff - theorem le_cinfₛ - theorem le_cinfₛ_iff'' - theorem le_cinfₛ_iff' - theorem le_cinfₛ_iff - theorem le_cinfₛ_inter + theorem le_csInf + theorem le_csInf_iff'' + theorem le_csInf_iff' + theorem le_csInf_iff + theorem le_csInf_inter + theorem le_csSup + theorem le_csSup_iff' + theorem le_csSup_iff + theorem le_csSup_of_le - theorem le_csupᵢ - theorem le_csupᵢ_iff' - theorem le_csupᵢ_of_le - theorem le_csupᵢ_set - theorem le_csupₛ - theorem le_csupₛ_iff' - theorem le_csupₛ_iff - theorem le_csupₛ_of_le + theorem lt_csSup_of_lt - theorem lt_csupₛ_of_lt + theorem not_mem_of_csSup_lt - theorem not_mem_of_csupₛ_lt - theorem not_mem_of_lt_cinfₛ + theorem not_mem_of_lt_csInf + theorem sInf_eq_argmin_on - theorem subset_Icc_cinfₛ_csupₛ + theorem subset_Icc_csInf_csSup Modified Mathlib/Order/ConditionallyCompleteLattice/Finset.lean +/- theorem Finset.Nonempty.cInf_eq_min' +/- theorem Finset.Nonempty.cInf_mem +/- theorem Finset.Nonempty.cSup_eq_max' +/- theorem Finset.Nonempty.cSup_mem +/- theorem Finset.Nonempty.sup'_id_eq_cSup - theorem Finset.inf'_eq_cinfₛ_image + theorem Finset.inf'_eq_csInf_image - theorem Finset.inf'_id_eq_cinfₛ + theorem Finset.inf'_id_eq_csInf + theorem Finset.sup'_eq_csSup_image - theorem Finset.sup'_eq_csupₛ_image + theorem Finset.sup'_id_eq_csSup - theorem Finset.sup'_id_eq_csupₛ +/- theorem Set.Finite.cSup_lt_iff +/- theorem Set.Finite.lt_cInf_iff +/- theorem Set.Nonempty.cInf_mem +/- theorem Set.Nonempty.cSup_mem Modified Mathlib/Order/ConditionallyCompleteLattice/Group.lean + theorem ciSup_mul_ciSup_le + theorem ciSup_mul_le - theorem csupᵢ_mul_csupᵢ_le - theorem csupᵢ_mul_le + theorem le_ciInf_mul + theorem le_ciInf_mul_ciInf - theorem le_cinfᵢ_mul - theorem le_cinfᵢ_mul_cinfᵢ + theorem le_mul_ciInf - theorem le_mul_cinfᵢ + theorem mul_ciSup_le - theorem mul_csupᵢ_le Modified Mathlib/Order/Copy.lean Modified Mathlib/Order/Disjointed.lean + theorem iSup_disjointed + theorem iUnion_disjointed - theorem supᵢ_disjointed - theorem unionᵢ_disjointed Modified Mathlib/Order/Extension/Linear.lean Modified Mathlib/Order/Filter/Archimedean.lean Modified Mathlib/Order/Filter/AtTopBot.lean + theorem Filter.atTop_finset_eq_iInf - theorem Filter.atTop_finset_eq_infᵢ Modified Mathlib/Order/Filter/Bases.lean + theorem Filter.HasBasis.eq_biInf - theorem Filter.HasBasis.eq_binfᵢ + theorem Filter.HasBasis.eq_iInf - theorem Filter.HasBasis.eq_infᵢ - theorem Filter.HasBasis.interₛ_sets + theorem Filter.HasBasis.sInter_sets + theorem Filter.countable_biInf_eq_iInf_seq' + theorem Filter.countable_biInf_eq_iInf_seq + theorem Filter.countable_biInf_principal_eq_seq_iInf - theorem Filter.countable_binfᵢ_eq_infᵢ_seq' - theorem Filter.countable_binfᵢ_eq_infᵢ_seq - theorem Filter.countable_binfᵢ_principal_eq_seq_infᵢ + theorem Filter.hasBasis_biInf_of_directed' + theorem Filter.hasBasis_biInf_of_directed + theorem Filter.hasBasis_biInf_principal' + theorem Filter.hasBasis_biInf_principal - theorem Filter.hasBasis_binfᵢ_of_directed' - theorem Filter.hasBasis_binfᵢ_of_directed - theorem Filter.hasBasis_binfᵢ_principal' - theorem Filter.hasBasis_binfᵢ_principal + theorem Filter.hasBasis_iInf' + theorem Filter.hasBasis_iInf + theorem Filter.hasBasis_iInf_of_directed' + theorem Filter.hasBasis_iInf_of_directed + theorem Filter.hasBasis_iInf_principal + theorem Filter.hasBasis_iInf_principal_finite + theorem Filter.hasBasis_iSup - theorem Filter.hasBasis_infᵢ' - theorem Filter.hasBasis_infᵢ - theorem Filter.hasBasis_infᵢ_of_directed' - theorem Filter.hasBasis_infᵢ_of_directed - theorem Filter.hasBasis_infᵢ_principal - theorem Filter.hasBasis_infᵢ_principal_finite - theorem Filter.hasBasis_supᵢ + theorem Filter.isCountablyGenerated_biInf_principal - theorem Filter.isCountablyGenerated_binfᵢ_principal + theorem FilterBasis.eq_iInf_principal - theorem FilterBasis.eq_infᵢ_principal Modified Mathlib/Order/Filter/Basic.lean + theorem Filter.biInf_sets_eq + theorem Filter.biInter_finset_mem + theorem Filter.biInter_mem - theorem Filter.binfᵢ_sets_eq - theorem Filter.binterᵢ_finset_mem - theorem Filter.binterᵢ_mem + theorem Filter.comap_iInf + theorem Filter.comap_iSup - theorem Filter.comap_infᵢ + theorem Filter.comap_sSup - theorem Filter.comap_supᵢ - theorem Filter.comap_supₛ + theorem Filter.eq_biInf_of_mem_iff_exists_mem - theorem Filter.eq_binfᵢ_of_mem_iff_exists_mem + theorem Filter.eq_iInf_of_mem_iff_exists_mem - theorem Filter.eq_infᵢ_of_mem_iff_exists_mem - theorem Filter.eq_infₛ_of_mem_iff_exists_mem + theorem Filter.eq_sInf_of_mem_iff_exists_mem + theorem Filter.eventually_iSup + theorem Filter.eventually_sSup - theorem Filter.eventually_supᵢ - theorem Filter.eventually_supₛ + theorem Filter.exists_iInter_of_mem_iInf - theorem Filter.exists_interᵢ_of_mem_infᵢ + theorem Filter.frequently_iSup + theorem Filter.frequently_sSup - theorem Filter.frequently_supᵢ - theorem Filter.frequently_supₛ + theorem Filter.generate_eq_biInf - theorem Filter.generate_eq_binfᵢ + theorem Filter.generate_iUnion - theorem Filter.generate_unionᵢ + theorem Filter.iInf_eq_generate + theorem Filter.iInf_neBot_iff_of_directed' + theorem Filter.iInf_neBot_iff_of_directed + theorem Filter.iInf_neBot_of_directed' + theorem Filter.iInf_neBot_of_directed + theorem Filter.iInf_principal + theorem Filter.iInf_principal_finite + theorem Filter.iInf_principal_finset + theorem Filter.iInf_sets_eq + theorem Filter.iInf_sets_eq_finite' + theorem Filter.iInf_sets_eq_finite + theorem Filter.iInf_sets_induct + theorem Filter.iInter_mem + theorem Filter.iSup_inf_principal + theorem Filter.iSup_join + theorem Filter.iSup_neBot + theorem Filter.iSup_principal + theorem Filter.iSup_sets_eq - theorem Filter.infᵢ_eq_generate - theorem Filter.infᵢ_neBot_iff_of_directed' - theorem Filter.infᵢ_neBot_iff_of_directed - theorem Filter.infᵢ_neBot_of_directed' - theorem Filter.infᵢ_neBot_of_directed - theorem Filter.infᵢ_principal - theorem Filter.infᵢ_principal_finite - theorem Filter.infᵢ_principal_finset - theorem Filter.infᵢ_sets_eq - theorem Filter.infᵢ_sets_eq_finite' - theorem Filter.infᵢ_sets_eq_finite - theorem Filter.infᵢ_sets_induct - theorem Filter.infₛ_neBot_of_directed' - theorem Filter.infₛ_neBot_of_directed - theorem Filter.interᵢ_mem - theorem Filter.interₛ_comap_sets - theorem Filter.interₛ_mem + theorem Filter.join_principal_eq_sSup - theorem Filter.join_principal_eq_supₛ + theorem Filter.map_biInf_eq - theorem Filter.map_binfᵢ_eq + theorem Filter.map_iInf_eq + theorem Filter.map_iInf_le + theorem Filter.map_iSup - theorem Filter.map_infᵢ_eq - theorem Filter.map_infᵢ_le - theorem Filter.map_supᵢ + theorem Filter.mem_biInf_of_directed - theorem Filter.mem_binfᵢ_of_directed + theorem Filter.mem_iInf' + theorem Filter.mem_iInf + theorem Filter.mem_iInf_finite' + theorem Filter.mem_iInf_finite + theorem Filter.mem_iInf_finset + theorem Filter.mem_iInf_of_directed + theorem Filter.mem_iInf_of_finite + theorem Filter.mem_iInf_of_iInter + theorem Filter.mem_iInf_of_mem + theorem Filter.mem_iSup - theorem Filter.mem_infᵢ' - theorem Filter.mem_infᵢ - theorem Filter.mem_infᵢ_finite' - theorem Filter.mem_infᵢ_finite - theorem Filter.mem_infᵢ_finset - theorem Filter.mem_infᵢ_of_directed - theorem Filter.mem_infᵢ_of_finite - theorem Filter.mem_infᵢ_of_interᵢ - theorem Filter.mem_infᵢ_of_mem + theorem Filter.mem_sSup - theorem Filter.mem_supᵢ - theorem Filter.mem_supₛ + theorem Filter.sInf_neBot_of_directed' + theorem Filter.sInf_neBot_of_directed + theorem Filter.sInter_comap_sets + theorem Filter.sInter_mem + theorem Filter.sSup_sets_eq - theorem Filter.supᵢ_inf_principal - theorem Filter.supᵢ_join - theorem Filter.supᵢ_neBot - theorem Filter.supᵢ_principal - theorem Filter.supᵢ_sets_eq - theorem Filter.supₛ_sets_eq + theorem Filter.tendsto_iInf' + theorem Filter.tendsto_iInf + theorem Filter.tendsto_iInf_iInf + theorem Filter.tendsto_iSup + theorem Filter.tendsto_iSup_iSup - theorem Filter.tendsto_infᵢ' - theorem Filter.tendsto_infᵢ - theorem Filter.tendsto_infᵢ_infᵢ - theorem Filter.tendsto_supᵢ - theorem Filter.tendsto_supᵢ_supᵢ Modified Mathlib/Order/Filter/Cofinite.lean Modified Mathlib/Order/Filter/CountableInter.lean + theorem EventuallyEq.countable_iInter + theorem EventuallyEq.countable_iUnion - theorem EventuallyEq.countable_interᵢ - theorem EventuallyEq.countable_unionᵢ + theorem EventuallyLE.countable_iInter + theorem EventuallyLE.countable_iUnion - theorem EventuallyLE.countable_interᵢ - theorem EventuallyLE.countable_unionᵢ + theorem countable_iInter_mem - theorem countable_interᵢ_mem - theorem countable_interₛ_mem + theorem countable_sInter_mem Modified Mathlib/Order/Filter/ENNReal.lean Modified Mathlib/Order/Filter/Extr.lean + theorem IsMaxOn.iSup_eq - theorem IsMaxOn.supᵢ_eq + theorem IsMinOn.iInf_eq - theorem IsMinOn.infᵢ_eq Modified Mathlib/Order/Filter/IndicatorFunction.lean + theorem tendsto_indicator_biUnion_finset - theorem tendsto_indicator_bunionᵢ_finset Modified Mathlib/Order/Filter/Interval.lean Modified Mathlib/Order/Filter/Lift.lean - theorem Filter.interₛ_lift'_sets - theorem Filter.interₛ_lift_sets + theorem Filter.lift'_iInf + theorem Filter.lift'_iInf_of_map_univ - theorem Filter.lift'_infᵢ - theorem Filter.lift'_infᵢ_of_map_univ + theorem Filter.lift_iInf + theorem Filter.lift_iInf_le + theorem Filter.lift_iInf_of_directed + theorem Filter.lift_iInf_of_map_univ - theorem Filter.lift_infᵢ - theorem Filter.lift_infᵢ_le - theorem Filter.lift_infᵢ_of_directed - theorem Filter.lift_infᵢ_of_map_univ +/- theorem Filter.lift_mono' + theorem Filter.sInter_lift'_sets + theorem Filter.sInter_lift_sets Modified Mathlib/Order/Filter/Pi.lean Modified Mathlib/Order/Filter/Prod.lean + theorem Filter.prod_iInf_left + theorem Filter.prod_iInf_right - theorem Filter.prod_infᵢ_left - theorem Filter.prod_infᵢ_right Modified Mathlib/Order/Filter/SmallSets.lean + theorem Filter.smallSets_iInf - theorem Filter.smallSets_infᵢ Modified Mathlib/Order/Filter/Ultrafilter.lean + theorem Filter.iSup_ultrafilter_le_eq - theorem Filter.supᵢ_ultrafilter_le_eq + theorem Ultrafilter.finite_biUnion_mem_iff - theorem Ultrafilter.finite_bunionᵢ_mem_iff + theorem Ultrafilter.finite_sUnion_mem_iff - theorem Ultrafilter.finite_unionₛ_mem_iff Modified Mathlib/Order/FixedPoints.lean + theorem OrderHom.le_map_sSup_subset_fixedPoints - theorem OrderHom.le_map_supₛ_subset_fixedPoints - theorem OrderHom.map_infₛ_subset_fixedPoints_le + theorem OrderHom.map_sInf_subset_fixedPoints_le Modified Mathlib/Order/GaloisConnection.lean + theorem GaloisCoinsertion.u_biSup_l + theorem GaloisCoinsertion.u_biSup_of_lu_eq_self - theorem GaloisCoinsertion.u_bsupᵢ_l - theorem GaloisCoinsertion.u_bsupᵢ_of_lu_eq_self + theorem GaloisCoinsertion.u_iInf_l + theorem GaloisCoinsertion.u_iSup_l + theorem GaloisCoinsertion.u_iSup_of_lu_eq_self - theorem GaloisCoinsertion.u_infᵢ_l - theorem GaloisCoinsertion.u_infₛ_l_image + theorem GaloisCoinsertion.u_sInf_l_image + theorem GaloisCoinsertion.u_sSup_l_image - theorem GaloisCoinsertion.u_supᵢ_l - theorem GaloisCoinsertion.u_supᵢ_of_lu_eq_self - theorem GaloisCoinsertion.u_supₛ_l_image + theorem GaloisConnection.l_iSup + theorem GaloisConnection.l_iSup₂ + theorem GaloisConnection.l_sSup - theorem GaloisConnection.l_supᵢ - theorem GaloisConnection.l_supᵢ₂ - theorem GaloisConnection.l_supₛ + theorem GaloisConnection.u_iInf + theorem GaloisConnection.u_iInf₂ - theorem GaloisConnection.u_infᵢ - theorem GaloisConnection.u_infᵢ₂ - theorem GaloisConnection.u_infₛ + theorem GaloisConnection.u_sInf + theorem GaloisInsertion.l_biInf_of_ul_eq_self + theorem GaloisInsertion.l_biInf_u + theorem GaloisInsertion.l_biSup_u - theorem GaloisInsertion.l_binfᵢ_of_ul_eq_self - theorem GaloisInsertion.l_binfᵢ_u - theorem GaloisInsertion.l_bsupᵢ_u + theorem GaloisInsertion.l_iInf_of_ul_eq_self + theorem GaloisInsertion.l_iInf_u + theorem GaloisInsertion.l_iSup_u - theorem GaloisInsertion.l_infᵢ_of_ul_eq_self - theorem GaloisInsertion.l_infᵢ_u - theorem GaloisInsertion.l_infₛ_u_image + theorem GaloisInsertion.l_sInf_u_image + theorem GaloisInsertion.l_sSup_u_image - theorem GaloisInsertion.l_supᵢ_u - theorem GaloisInsertion.l_supₛ_u_image - theorem infₛ_image2_eq_infₛ_infₛ - theorem infₛ_image2_eq_infₛ_supₛ - theorem infₛ_image2_eq_supₛ_infₛ - theorem infₛ_image2_eq_supₛ_supₛ + theorem sInf_image2_eq_sInf_sInf + theorem sInf_image2_eq_sInf_sSup + theorem sInf_image2_eq_sSup_sInf + theorem sInf_image2_eq_sSup_sSup + theorem sSup_image2_eq_sInf_sInf + theorem sSup_image2_eq_sInf_sSup + theorem sSup_image2_eq_sSup_sInf + theorem sSup_image2_eq_sSup_sSup - theorem supₛ_image2_eq_infₛ_infₛ - theorem supₛ_image2_eq_infₛ_supₛ - theorem supₛ_image2_eq_supₛ_infₛ - theorem supₛ_image2_eq_supₛ_supₛ Modified Mathlib/Order/Height.lean + theorem Set.chainHeight_eq_iSup_Ici + theorem Set.chainHeight_eq_iSup_Iic + theorem Set.chainHeight_eq_iSup_subtype - theorem Set.chainHeight_eq_supᵢ_Ici - theorem Set.chainHeight_eq_supᵢ_Iic - theorem Set.chainHeight_eq_supᵢ_subtype Modified Mathlib/Order/Hom/CompleteLattice.lean +/- theorem CompleteLatticeHom.toFun_eq_coe_aux - def CompleteLatticeHom.toSupₛHom + def CompleteLatticeHom.tosSupHom - theorem InfₛHom.cancel_left - theorem InfₛHom.cancel_right - theorem InfₛHom.coe_comp - theorem InfₛHom.coe_copy - theorem InfₛHom.coe_id - theorem InfₛHom.coe_top - def InfₛHom.comp - theorem InfₛHom.comp_apply - theorem InfₛHom.comp_assoc - theorem InfₛHom.comp_id - theorem InfₛHom.copy_eq - theorem InfₛHom.dual_comp - theorem InfₛHom.dual_id - theorem InfₛHom.ext - theorem InfₛHom.id_apply - theorem InfₛHom.id_comp - theorem InfₛHom.symm_dual_comp - theorem InfₛHom.symm_dual_id - theorem InfₛHom.toFun_eq_coe - theorem InfₛHom.top_apply - structure InfₛHom + theorem Set.image_sSup - theorem Set.image_supₛ - theorem SupₛHom.bot_apply - theorem SupₛHom.cancel_left - theorem SupₛHom.cancel_right - theorem SupₛHom.coe_bot - theorem SupₛHom.coe_comp - theorem SupₛHom.coe_copy - theorem SupₛHom.coe_id - def SupₛHom.comp - theorem SupₛHom.comp_apply - theorem SupₛHom.comp_assoc - theorem SupₛHom.comp_id - theorem SupₛHom.copy_eq - theorem SupₛHom.dual_comp - theorem SupₛHom.dual_id - theorem SupₛHom.ext - theorem SupₛHom.id_apply - theorem SupₛHom.id_comp - def SupₛHom.setImage - theorem SupₛHom.symm_dual_comp - theorem SupₛHom.symm_dual_id - theorem SupₛHom.toFun_eq_coe - structure SupₛHom - def infInfₛHom - theorem infInfₛHom_apply + def infsInfHom + theorem infsInfHom_apply + theorem map_iInf + theorem map_iInf₂ + theorem map_iSup + theorem map_iSup₂ - theorem map_infᵢ - theorem map_infᵢ₂ - theorem map_supᵢ - theorem map_supᵢ₂ + theorem sInfHom.cancel_left + theorem sInfHom.cancel_right + theorem sInfHom.coe_comp + theorem sInfHom.coe_copy + theorem sInfHom.coe_id + theorem sInfHom.coe_top + def sInfHom.comp + theorem sInfHom.comp_apply + theorem sInfHom.comp_assoc + theorem sInfHom.comp_id + theorem sInfHom.copy_eq + theorem sInfHom.dual_comp + theorem sInfHom.dual_id + theorem sInfHom.ext + theorem sInfHom.id_apply + theorem sInfHom.id_comp + theorem sInfHom.symm_dual_comp + theorem sInfHom.symm_dual_id + theorem sInfHom.toFun_eq_coe + theorem sInfHom.top_apply + structure sInfHom + theorem sSupHom.bot_apply + theorem sSupHom.cancel_left + theorem sSupHom.cancel_right + theorem sSupHom.coe_bot + theorem sSupHom.coe_comp + theorem sSupHom.coe_copy + theorem sSupHom.coe_id + def sSupHom.comp + theorem sSupHom.comp_apply + theorem sSupHom.comp_assoc + theorem sSupHom.comp_id + theorem sSupHom.copy_eq + theorem sSupHom.dual_comp + theorem sSupHom.dual_id + theorem sSupHom.ext + theorem sSupHom.id_apply + theorem sSupHom.id_comp + def sSupHom.setImage + theorem sSupHom.symm_dual_comp + theorem sSupHom.symm_dual_id + theorem sSupHom.toFun_eq_coe + structure sSupHom - def supSupₛHom - theorem supSupₛHom_apply + def supsSupHom + theorem supsSupHom_apply Modified Mathlib/Order/Hom/Order.lean + theorem OrderHom.coe_iInf + theorem OrderHom.coe_iSup - theorem OrderHom.coe_infᵢ - theorem OrderHom.coe_supᵢ + theorem OrderHom.iInf_apply + theorem OrderHom.iSup_apply - theorem OrderHom.infᵢ_apply - theorem OrderHom.infₛ_apply + theorem OrderHom.sInf_apply + theorem OrderHom.sSup_apply - theorem OrderHom.supᵢ_apply - theorem OrderHom.supₛ_apply Modified Mathlib/Order/Ideal.lean - theorem Order.Ideal.coe_infₛ + theorem Order.Ideal.coe_sInf - theorem Order.Ideal.mem_infₛ + theorem Order.Ideal.mem_sInf Modified Mathlib/Order/LiminfLimsup.lean + theorem Filter.HasBasis.liminf_eq_iSup_iInf - theorem Filter.HasBasis.liminf_eq_supᵢ_infᵢ - theorem Filter.HasBasis.liminfₛ_eq_supᵢ_infₛ + theorem Filter.HasBasis.limsInf_eq_iSup_sInf + theorem Filter.HasBasis.limsSup_eq_iInf_sSup + theorem Filter.HasBasis.limsup_eq_iInf_iSup - theorem Filter.HasBasis.limsup_eq_infᵢ_supᵢ - theorem Filter.HasBasis.limsupₛ_eq_infᵢ_supₛ +/- theorem Filter.InfHom.le_apply_bliminf +/- theorem Filter.SupHom.apply_blimsup_le +/- theorem Filter.bliminf_eq + theorem Filter.bliminf_eq_iSup_biInf + theorem Filter.bliminf_eq_iSup_biInf_of_nat - theorem Filter.bliminf_eq_supᵢ_binfᵢ - theorem Filter.bliminf_eq_supᵢ_binfᵢ_of_nat +/- theorem Filter.blimsup_eq + theorem Filter.blimsup_eq_iInf_biSup + theorem Filter.blimsup_eq_iInf_biSup_of_nat - theorem Filter.blimsup_eq_infᵢ_bsupᵢ - theorem Filter.blimsup_eq_infᵢ_bsupᵢ_of_nat - theorem Filter.frequently_lt_of_liminfₛ_lt + theorem Filter.frequently_lt_of_limsInf_lt + theorem Filter.frequently_lt_of_lt_limsSup - theorem Filter.frequently_lt_of_lt_limsupₛ + theorem Filter.iInf_le_liminf - theorem Filter.infᵢ_le_liminf - theorem Filter.le_liminfₛ_of_le + theorem Filter.le_limsInf_of_le + theorem Filter.le_limsSup_of_le - theorem Filter.le_limsupₛ_of_le +/- theorem Filter.liminf_eq + theorem Filter.liminf_eq_iSup_iInf + theorem Filter.liminf_eq_iSup_iInf_of_nat' + theorem Filter.liminf_eq_iSup_iInf_of_nat + theorem Filter.liminf_eq_sSup_sInf - theorem Filter.liminf_eq_supᵢ_infᵢ - theorem Filter.liminf_eq_supᵢ_infᵢ_of_nat' - theorem Filter.liminf_eq_supᵢ_infᵢ_of_nat - theorem Filter.liminf_eq_supₛ_infₛ - def Filter.liminfₛ - theorem Filter.liminfₛ_bot - theorem Filter.liminfₛ_eq_supᵢ_infₛ - theorem Filter.liminfₛ_le_liminfₛ - theorem Filter.liminfₛ_le_liminfₛ_of_le - theorem Filter.liminfₛ_le_limsupₛ - theorem Filter.liminfₛ_le_of_le - theorem Filter.liminfₛ_principal - theorem Filter.liminfₛ_top + def Filter.limsInf + theorem Filter.limsInf_bot + theorem Filter.limsInf_eq_iSup_sInf + theorem Filter.limsInf_le_limsInf + theorem Filter.limsInf_le_limsInf_of_le + theorem Filter.limsInf_le_limsSup + theorem Filter.limsInf_le_of_le + theorem Filter.limsInf_principal + theorem Filter.limsInf_top + def Filter.limsSup + theorem Filter.limsSup_bot + theorem Filter.limsSup_eq_iInf_sSup + theorem Filter.limsSup_le_limsSup + theorem Filter.limsSup_le_limsSup_of_le + theorem Filter.limsSup_le_of_le + theorem Filter.limsSup_principal + theorem Filter.limsSup_top +/- theorem Filter.limsup_eq + theorem Filter.limsup_eq_iInf_iSup + theorem Filter.limsup_eq_iInf_iSup_of_nat' + theorem Filter.limsup_eq_iInf_iSup_of_nat - theorem Filter.limsup_eq_infᵢ_supᵢ - theorem Filter.limsup_eq_infᵢ_supᵢ_of_nat' - theorem Filter.limsup_eq_infᵢ_supᵢ_of_nat - theorem Filter.limsup_eq_infₛ_supₛ + theorem Filter.limsup_eq_sInf_sSup + theorem Filter.limsup_le_iSup - theorem Filter.limsup_le_supᵢ - def Filter.limsupₛ - theorem Filter.limsupₛ_bot - theorem Filter.limsupₛ_eq_infᵢ_supₛ - theorem Filter.limsupₛ_le_limsupₛ - theorem Filter.limsupₛ_le_limsupₛ_of_le - theorem Filter.limsupₛ_le_of_le - theorem Filter.limsupₛ_principal - theorem Filter.limsupₛ_top Modified Mathlib/Order/Monotone/Extension.lean Modified Mathlib/Order/OmegaCompletePartialOrder.lean + theorem CompleteLattice.iSup_continuous + theorem CompleteLattice.sSup_continuous' + theorem CompleteLattice.sSup_continuous - theorem CompleteLattice.supᵢ_continuous - theorem CompleteLattice.supₛ_continuous' - theorem CompleteLattice.supₛ_continuous Modified Mathlib/Order/OrdContinuous.lean + theorem LeftOrdContinuous.map_ciSup + theorem LeftOrdContinuous.map_csSup - theorem LeftOrdContinuous.map_csupᵢ - theorem LeftOrdContinuous.map_csupₛ + theorem LeftOrdContinuous.map_iSup + theorem LeftOrdContinuous.map_sSup' + theorem LeftOrdContinuous.map_sSup - theorem LeftOrdContinuous.map_supᵢ - theorem LeftOrdContinuous.map_supₛ' - theorem LeftOrdContinuous.map_supₛ + theorem RightOrdContinuous.map_ciInf - theorem RightOrdContinuous.map_cinfᵢ - theorem RightOrdContinuous.map_cinfₛ + theorem RightOrdContinuous.map_csInf + theorem RightOrdContinuous.map_iInf - theorem RightOrdContinuous.map_infᵢ - theorem RightOrdContinuous.map_infₛ' - theorem RightOrdContinuous.map_infₛ + theorem RightOrdContinuous.map_sInf' + theorem RightOrdContinuous.map_sInf Modified Mathlib/Order/OrderIsoNat.lean + theorem WellFounded.iSup_eq_monotonicSequenceLimit - theorem WellFounded.supᵢ_eq_monotonicSequenceLimit Modified Mathlib/Order/PFilter.lean - theorem Order.PFilter.infₛ_gc + theorem Order.PFilter.sInf_gc Modified Mathlib/Order/PartialSups.lean + theorem ciSup_partialSups_eq - theorem csupᵢ_partialSups_eq + theorem iSup_eq_iSup_of_partialSups_eq_partialSups + theorem iSup_le_iSup_of_partialSups_le_partialSups + theorem iSup_partialSups_eq + theorem partialSups_eq_biSup - theorem partialSups_eq_bsupᵢ + theorem partialSups_eq_ciSup_Iic - theorem partialSups_eq_csupᵢ_Iic - theorem supᵢ_eq_supᵢ_of_partialSups_eq_partialSups - theorem supᵢ_le_supᵢ_of_partialSups_le_partialSups - theorem supᵢ_partialSups_eq Modified Mathlib/Order/Partition/Finpartition.lean + theorem Finpartition.biUnion_filter_atomise + theorem Finpartition.biUnion_parts - theorem Finpartition.bunionᵢ_filter_atomise - theorem Finpartition.bunionᵢ_parts Modified Mathlib/Order/SemiconjSup.lean + theorem Function.csSup_div_semiconj - theorem Function.csupₛ_div_semiconj + theorem Function.sSup_div_semiconj - theorem Function.supₛ_div_semiconj + theorem isOrderRightAdjoint_csSup - theorem isOrderRightAdjoint_csupₛ + theorem isOrderRightAdjoint_sSup - theorem isOrderRightAdjoint_supₛ Modified Mathlib/Order/SuccPred/Basic.lean + theorem Order.pred_eq_iSup - theorem Order.pred_eq_supᵢ + theorem Order.succ_eq_iInf - theorem Order.succ_eq_infᵢ Modified Mathlib/Order/SuccPred/IntervalSucc.lean + theorem Monotone.biUnion_Ico_Ioc_map_succ - theorem Monotone.bunionᵢ_Ico_Ioc_map_succ Modified Mathlib/Order/SupIndep.lean + theorem CompleteLattice.Independent.disjoint_biSup - theorem CompleteLattice.Independent.disjoint_bsupᵢ + theorem CompleteLattice.SetIndependent.disjoint_sSup - theorem CompleteLattice.SetIndependent.disjoint_supₛ +/- theorem CompleteLattice.independent_def' + theorem Finset.SupIndep.biUnion - theorem Finset.SupIndep.bunionᵢ Modified Mathlib/Order/UpperLower/Basic.lean + theorem LowerSet.Iic_iInf + theorem LowerSet.Iic_iInf₂ - theorem LowerSet.Iic_infᵢ - theorem LowerSet.Iic_infᵢ₂ - theorem LowerSet.Iic_infₛ + theorem LowerSet.Iic_sInf + theorem LowerSet.coe_iInf + theorem LowerSet.coe_iInf₂ + theorem LowerSet.coe_iSup + theorem LowerSet.coe_iSup₂ - theorem LowerSet.coe_infᵢ - theorem LowerSet.coe_infᵢ₂ - theorem LowerSet.coe_infₛ + theorem LowerSet.coe_sInf + theorem LowerSet.coe_sSup - theorem LowerSet.coe_supᵢ - theorem LowerSet.coe_supᵢ₂ - theorem LowerSet.coe_supₛ + theorem LowerSet.compl_iInf₂ + theorem LowerSet.compl_iSup₂ - theorem LowerSet.compl_infᵢ₂ - theorem LowerSet.compl_supᵢ₂ + theorem LowerSet.iSup_Iic + theorem LowerSet.mem_iInf_iff + theorem LowerSet.mem_iInf₂_iff + theorem LowerSet.mem_iSup_iff + theorem LowerSet.mem_iSup₂_iff - theorem LowerSet.mem_infᵢ_iff - theorem LowerSet.mem_infᵢ₂_iff - theorem LowerSet.mem_infₛ_iff + theorem LowerSet.mem_sInf_iff + theorem LowerSet.mem_sSup_iff - theorem LowerSet.mem_supᵢ_iff - theorem LowerSet.mem_supᵢ₂_iff - theorem LowerSet.mem_supₛ_iff - theorem LowerSet.supᵢ_Iic + theorem UpperSet.Ici_iSup + theorem UpperSet.Ici_iSup₂ + theorem UpperSet.Ici_sSup - theorem UpperSet.Ici_supᵢ - theorem UpperSet.Ici_supᵢ₂ - theorem UpperSet.Ici_supₛ + theorem UpperSet.coe_iInf + theorem UpperSet.coe_iInf₂ + theorem UpperSet.coe_iSup + theorem UpperSet.coe_iSup₂ - theorem UpperSet.coe_infᵢ - theorem UpperSet.coe_infᵢ₂ - theorem UpperSet.coe_infₛ + theorem UpperSet.coe_sInf + theorem UpperSet.coe_sSup - theorem UpperSet.coe_supᵢ - theorem UpperSet.coe_supᵢ₂ - theorem UpperSet.coe_supₛ + theorem UpperSet.compl_iInf₂ + theorem UpperSet.compl_iSup₂ - theorem UpperSet.compl_infᵢ₂ - theorem UpperSet.compl_supᵢ₂ + theorem UpperSet.iInf_Ici - theorem UpperSet.infᵢ_Ici + theorem UpperSet.mem_iInf_iff + theorem UpperSet.mem_iInf₂_iff + theorem UpperSet.mem_iSup_iff + theorem UpperSet.mem_iSup₂_iff - theorem UpperSet.mem_infᵢ_iff - theorem UpperSet.mem_infᵢ₂_iff - theorem UpperSet.mem_infₛ_iff + theorem UpperSet.mem_sInf_iff + theorem UpperSet.mem_sSup_iff - theorem UpperSet.mem_supᵢ_iff - theorem UpperSet.mem_supᵢ₂_iff - theorem UpperSet.mem_supₛ_iff + theorem isLowerSet_iInter + theorem isLowerSet_iInter₂ + theorem isLowerSet_iUnion + theorem isLowerSet_iUnion₂ - theorem isLowerSet_interᵢ - theorem isLowerSet_interᵢ₂ - theorem isLowerSet_interₛ + theorem isLowerSet_sInter + theorem isLowerSet_sUnion - theorem isLowerSet_unionᵢ - theorem isLowerSet_unionᵢ₂ - theorem isLowerSet_unionₛ + theorem isUpperSet_iInter + theorem isUpperSet_iInter₂ + theorem isUpperSet_iUnion + theorem isUpperSet_iUnion₂ - theorem isUpperSet_interᵢ - theorem isUpperSet_interᵢ₂ - theorem isUpperSet_interₛ + theorem isUpperSet_sInter + theorem isUpperSet_sUnion - theorem isUpperSet_unionᵢ - theorem isUpperSet_unionᵢ₂ - theorem isUpperSet_unionₛ + theorem lowerClosure_iUnion + theorem lowerClosure_sUnion - theorem lowerClosure_unionᵢ - theorem lowerClosure_unionₛ + theorem upperClosure_iUnion + theorem upperClosure_sUnion - theorem upperClosure_unionᵢ - theorem upperClosure_unionₛ Modified Mathlib/Order/UpperLower/Hom.lean - theorem LowerSet.coe_iicInfₛHom + theorem LowerSet.coe_iicsInfHom - def LowerSet.iicInfₛHom - theorem LowerSet.iicInfₛHom_apply + def LowerSet.iicsInfHom + theorem LowerSet.iicsInfHom_apply - theorem UpperSet.coe_iciSupₛHom + theorem UpperSet.coe_icisSupHom - def UpperSet.iciSupₛHom - theorem UpperSet.iciSupₛHom_apply + def UpperSet.icisSupHom + theorem UpperSet.icisSupHom_apply Modified Mathlib/Order/UpperLower/LocallyFinite.lean Modified Mathlib/Order/WellFoundedSet.lean Modified Mathlib/Order/Zorn.lean Modified Mathlib/Probability/ProbabilityMassFunction/Basic.lean Modified Mathlib/Probability/ProbabilityMassFunction/Monad.lean Modified Mathlib/RingTheory/Adjoin/Basic.lean + theorem Algebra.adjoin_attach_biUnion - theorem Algebra.adjoin_attach_bunionᵢ - theorem Algebra.adjoin_eq_infₛ + theorem Algebra.adjoin_eq_sInf + theorem Algebra.adjoin_iUnion - theorem Algebra.adjoin_unionᵢ Modified Mathlib/RingTheory/Congruence.lean Modified Mathlib/RingTheory/Coprime/Ideal.lean + theorem Ideal.iSup_iInf_eq_top_iff_pairwise - theorem Ideal.supᵢ_infᵢ_eq_top_iff_pairwise Modified Mathlib/RingTheory/FiniteType.lean Modified Mathlib/RingTheory/Finiteness.lean + theorem Submodule.Fg.stablizes_of_iSup_eq - theorem Submodule.Fg.stablizes_of_supᵢ_eq + theorem Submodule.fg_biSup - theorem Submodule.fg_bsupᵢ + theorem Submodule.fg_iSup - theorem Submodule.fg_supᵢ Modified Mathlib/RingTheory/Ideal/Basic.lean - theorem Ideal.infₛ_isPrime_of_isChain + theorem Ideal.mem_iInf + theorem Ideal.mem_iSup_of_mem - theorem Ideal.mem_infᵢ - theorem Ideal.mem_infₛ + theorem Ideal.mem_sInf + theorem Ideal.mem_sSup_of_mem - theorem Ideal.mem_supᵢ_of_mem - theorem Ideal.mem_supₛ_of_mem + theorem Ideal.sInf_isPrime_of_isChain + theorem Ideal.span_iUnion - theorem Ideal.span_unionᵢ Modified Mathlib/RingTheory/Ideal/Operations.lean + theorem Ideal.comap_iInf - theorem Ideal.comap_infᵢ - theorem Ideal.comap_infₛ' - theorem Ideal.comap_infₛ + theorem Ideal.comap_sInf' + theorem Ideal.comap_sInf + theorem Ideal.iInf_span_singleton + theorem Ideal.iInf_sup_eq_top - theorem Ideal.infᵢ_span_singleton - theorem Ideal.infᵢ_sup_eq_top + theorem Ideal.map_iInf_comap_of_surjective + theorem Ideal.map_iSup + theorem Ideal.map_iSup_comap_of_surjective - theorem Ideal.map_infᵢ_comap_of_surjective - theorem Ideal.map_infₛ + theorem Ideal.map_sInf + theorem Ideal.map_sSup - theorem Ideal.map_supᵢ - theorem Ideal.map_supᵢ_comap_of_surjective - theorem Ideal.map_supₛ - theorem Ideal.radical_eq_infₛ + theorem Ideal.radical_eq_sInf + theorem Ideal.sup_iInf_eq_top - theorem Ideal.sup_infᵢ_eq_top + theorem Submodule.annihilator_iSup - theorem Submodule.annihilator_supᵢ + theorem Submodule.iInf_colon_iSup - theorem Submodule.infᵢ_colon_supᵢ + theorem Submodule.smul_iInf_le + theorem Submodule.smul_iSup - theorem Submodule.smul_infᵢ_le - theorem Submodule.smul_supᵢ Modified Mathlib/RingTheory/Ideal/Quotient.lean Modified Mathlib/RingTheory/Localization/Ideal.lean Modified Mathlib/RingTheory/MvPolynomial/Symmetric.lean Modified Mathlib/RingTheory/Nilpotent.lean - theorem nilradical_eq_infₛ + theorem nilradical_eq_sInf Modified Mathlib/RingTheory/NonUnitalSubsemiring/Basic.lean + theorem NonUnitalSubsemiring.closure_iUnion + theorem NonUnitalSubsemiring.closure_sUnion - theorem NonUnitalSubsemiring.closure_unionᵢ - theorem NonUnitalSubsemiring.closure_unionₛ + theorem NonUnitalSubsemiring.coe_iSup_of_directed - theorem NonUnitalSubsemiring.coe_infₛ + theorem NonUnitalSubsemiring.coe_sInf + theorem NonUnitalSubsemiring.coe_sSup_of_directedOn - theorem NonUnitalSubsemiring.coe_supᵢ_of_directed - theorem NonUnitalSubsemiring.coe_supₛ_of_directedOn + theorem NonUnitalSubsemiring.comap_iInf - theorem NonUnitalSubsemiring.comap_infᵢ - theorem NonUnitalSubsemiring.infₛ_toAddSubmonoid - theorem NonUnitalSubsemiring.infₛ_toSubsemigroup + theorem NonUnitalSubsemiring.map_iSup - theorem NonUnitalSubsemiring.map_supᵢ + theorem NonUnitalSubsemiring.mem_iSup_of_directed - theorem NonUnitalSubsemiring.mem_infₛ + theorem NonUnitalSubsemiring.mem_sInf + theorem NonUnitalSubsemiring.mem_sSup_of_directedOn - theorem NonUnitalSubsemiring.mem_supᵢ_of_directed - theorem NonUnitalSubsemiring.mem_supₛ_of_directedOn + theorem NonUnitalSubsemiring.sInf_toAddSubmonoid + theorem NonUnitalSubsemiring.sInf_toSubsemigroup Modified Mathlib/RingTheory/Polynomial/Basic.lean Modified Mathlib/RingTheory/PrincipalIdealDomain.lean Modified Mathlib/RingTheory/SimpleModule.lean + theorem IsSemisimpleModule.sSup_simples_eq_top - theorem IsSemisimpleModule.supₛ_simples_eq_top + theorem is_semisimple_iff_top_eq_sSup_simples - theorem is_semisimple_iff_top_eq_supₛ_simples + theorem is_semisimple_of_sSup_simples_eq_top - theorem is_semisimple_of_supₛ_simples_eq_top Modified Mathlib/RingTheory/Subring/Basic.lean + theorem Subring.closure_iUnion + theorem Subring.closure_sUnion - theorem Subring.closure_unionᵢ - theorem Subring.closure_unionₛ + theorem Subring.coe_iInf + theorem Subring.coe_iSup_of_directed - theorem Subring.coe_infᵢ - theorem Subring.coe_infₛ + theorem Subring.coe_sInf + theorem Subring.coe_sSup_of_directedOn - theorem Subring.coe_supᵢ_of_directed - theorem Subring.coe_supₛ_of_directedOn + theorem Subring.comap_iInf - theorem Subring.comap_infᵢ - theorem Subring.infₛ_toAddSubgroup - theorem Subring.infₛ_toSubmonoid + theorem Subring.map_iSup - theorem Subring.map_supᵢ + theorem Subring.mem_iInf + theorem Subring.mem_iSup_of_directed - theorem Subring.mem_infᵢ - theorem Subring.mem_infₛ + theorem Subring.mem_sInf + theorem Subring.mem_sSup_of_directedOn - theorem Subring.mem_supᵢ_of_directed - theorem Subring.mem_supₛ_of_directedOn + theorem Subring.sInf_toAddSubgroup + theorem Subring.sInf_toSubmonoid Modified Mathlib/RingTheory/Subsemiring/Basic.lean + theorem Subsemiring.closure_iUnion + theorem Subsemiring.closure_sUnion - theorem Subsemiring.closure_unionᵢ - theorem Subsemiring.closure_unionₛ + theorem Subsemiring.coe_iSup_of_directed - theorem Subsemiring.coe_infₛ + theorem Subsemiring.coe_sInf + theorem Subsemiring.coe_sSup_of_directedOn - theorem Subsemiring.coe_supᵢ_of_directed - theorem Subsemiring.coe_supₛ_of_directedOn + theorem Subsemiring.comap_iInf - theorem Subsemiring.comap_infᵢ - theorem Subsemiring.infₛ_toAddSubmonoid - theorem Subsemiring.infₛ_toSubmonoid + theorem Subsemiring.map_iSup - theorem Subsemiring.map_supᵢ + theorem Subsemiring.mem_iSup_of_directed - theorem Subsemiring.mem_infₛ + theorem Subsemiring.mem_sInf + theorem Subsemiring.mem_sSup_of_directedOn - theorem Subsemiring.mem_supᵢ_of_directed - theorem Subsemiring.mem_supₛ_of_directedOn + theorem Subsemiring.sInf_toAddSubmonoid + theorem Subsemiring.sInf_toSubmonoid Modified Mathlib/SetTheory/Cardinal/Basic.lean + theorem Cardinal.iSup_le_sum - theorem Cardinal.infₛ_empty + theorem Cardinal.lift_iInf + theorem Cardinal.lift_iSup + theorem Cardinal.lift_iSup_le + theorem Cardinal.lift_iSup_le_iff + theorem Cardinal.lift_iSup_le_lift_iSup' + theorem Cardinal.lift_iSup_le_lift_iSup - theorem Cardinal.lift_infᵢ - theorem Cardinal.lift_infₛ + theorem Cardinal.lift_sInf + theorem Cardinal.lift_sSup - theorem Cardinal.lift_supᵢ - theorem Cardinal.lift_supᵢ_le - theorem Cardinal.lift_supᵢ_le_iff - theorem Cardinal.lift_supᵢ_le_lift_supᵢ' - theorem Cardinal.lift_supᵢ_le_lift_supᵢ - theorem Cardinal.lift_supₛ + theorem Cardinal.mk_biUnion_le - theorem Cardinal.mk_bunionᵢ_le + theorem Cardinal.mk_iUnion_eq_sum_mk + theorem Cardinal.mk_iUnion_le + theorem Cardinal.mk_iUnion_le_sum_mk + theorem Cardinal.mk_sUnion_le - theorem Cardinal.mk_unionᵢ_eq_sum_mk - theorem Cardinal.mk_unionᵢ_le - theorem Cardinal.mk_unionᵢ_le_sum_mk - theorem Cardinal.mk_unionₛ_le + theorem Cardinal.sInf_empty +/- theorem Cardinal.succ_def + theorem Cardinal.sum_le_iSup + theorem Cardinal.sum_le_iSup_lift - theorem Cardinal.sum_le_supᵢ - theorem Cardinal.sum_le_supᵢ_lift - theorem Cardinal.supᵢ_le_sum Modified Mathlib/SetTheory/Cardinal/Cofinality.lean + theorem Cardinal.iSup_lt_lift_of_isRegular + theorem Cardinal.iSup_lt_of_isRegular - theorem Cardinal.supᵢ_lt_lift_of_isRegular - theorem Cardinal.supᵢ_lt_of_isRegular - theorem Ordinal.cof_eq_infₛ_lsub + theorem Ordinal.cof_eq_sInf_lsub + theorem Ordinal.iSup_lt + theorem Ordinal.iSup_lt_lift - theorem Ordinal.supᵢ_lt - theorem Ordinal.supᵢ_lt_lift + theorem Ordinal.unbounded_of_unbounded_iUnion + theorem Ordinal.unbounded_of_unbounded_sUnion - theorem Ordinal.unbounded_of_unbounded_unionᵢ - theorem Ordinal.unbounded_of_unbounded_unionₛ Modified Mathlib/SetTheory/Cardinal/Ordinal.lean Modified Mathlib/SetTheory/Cardinal/SchroederBernstein.lean Modified Mathlib/SetTheory/Ordinal/Arithmetic.lean +/- theorem Ordinal.div_def +/- theorem Ordinal.enumOrd_def +/- theorem Ordinal.enumOrd_zero + theorem Ordinal.iSup_ord + theorem Ordinal.sSup_eq_bsup + theorem Ordinal.sSup_eq_sup + theorem Ordinal.sSup_ord + theorem Ordinal.sup_eq_sSup - theorem Ordinal.sup_eq_supₛ - theorem Ordinal.supᵢ_ord - theorem Ordinal.supₛ_eq_bsup - theorem Ordinal.supₛ_eq_sup - theorem Ordinal.supₛ_ord Modified Mathlib/SetTheory/Ordinal/Basic.lean - theorem Ordinal.infₛ_empty + theorem Ordinal.sInf_empty Modified Mathlib/SetTheory/Ordinal/Exponential.lean +/- theorem Ordinal.log_def Modified Mathlib/SetTheory/Ordinal/FixedPoint.lean Modified Mathlib/SetTheory/Ordinal/Topology.lean Modified Mathlib/SetTheory/ZFC/Basic.lean - theorem Class.coe_interₛ + theorem Class.coe_sInter + theorem Class.coe_sUnion - theorem Class.coe_unionₛ - def Class.interₛ - theorem Class.interₛ_apply - theorem Class.interₛ_empty - theorem Class.mem_interₛ - theorem Class.mem_of_mem_interₛ + theorem Class.mem_of_mem_sInter + theorem Class.mem_sInter + theorem Class.mem_sUnion - theorem Class.mem_unionₛ + def Class.sInter + theorem Class.sInter_apply + theorem Class.sInter_empty + def Class.sUnion + theorem Class.sUnion_apply + theorem Class.sUnion_empty - def Class.unionₛ - theorem Class.unionₛ_apply - theorem Class.unionₛ_empty + theorem PSet.mem_sUnion - theorem PSet.mem_unionₛ + def PSet.sUnion + theorem PSet.toSet_sUnion - theorem PSet.toSet_unionₛ - def PSet.unionₛ - theorem ZFSet.interₛ_empty - theorem ZFSet.interₛ_singleton - theorem ZFSet.mem_interₛ - theorem ZFSet.mem_of_mem_interₛ + theorem ZFSet.mem_of_mem_sInter + theorem ZFSet.mem_sInter + theorem ZFSet.mem_sUnion + theorem ZFSet.mem_sUnion_of_mem - theorem ZFSet.mem_unionₛ - theorem ZFSet.mem_unionₛ_of_mem - theorem ZFSet.not_mem_interₛ_of_not_mem + theorem ZFSet.not_mem_sInter_of_not_mem + theorem ZFSet.sInter_empty + theorem ZFSet.sInter_singleton + def ZFSet.sUnion + theorem ZFSet.sUnion_empty + theorem ZFSet.sUnion_lem + theorem ZFSet.sUnion_pair + theorem ZFSet.sUnion_singleton - theorem ZFSet.toSet_interₛ + theorem ZFSet.toSet_sInter + theorem ZFSet.toSet_sUnion - theorem ZFSet.toSet_unionₛ - def ZFSet.unionₛ - theorem ZFSet.unionₛ_empty - theorem ZFSet.unionₛ_lem - theorem ZFSet.unionₛ_pair - theorem ZFSet.unionₛ_singleton Modified Mathlib/SetTheory/ZFC/Ordinal.lean + theorem ZFSet.IsTransitive.sUnion' - theorem ZFSet.IsTransitive.unionₛ' + theorem ZFSet.isTransitive_iff_sUnion_subset - theorem ZFSet.isTransitive_iff_unionₛ_subset Modified Mathlib/Tactic/Monotonicity/Lemmas.lean Modified Mathlib/Topology/Alexandroff.lean Modified Mathlib/Topology/Algebra/ConstMulAction.lean Modified Mathlib/Topology/Algebra/Group/Basic.lean + theorem GroupTopology.toTopologicalSpace_iInf - theorem GroupTopology.toTopologicalSpace_infᵢ - theorem GroupTopology.toTopologicalSpace_infₛ + theorem GroupTopology.toTopologicalSpace_sInf + theorem continuousInv_iInf - theorem continuousInv_infᵢ - theorem continuousInv_infₛ + theorem continuousInv_sInf + theorem topologicalGroup_iInf - theorem topologicalGroup_infᵢ - theorem topologicalGroup_infₛ + theorem topologicalGroup_sInf Modified Mathlib/Topology/Algebra/InfiniteSum/Basic.lean + theorem rel_iSup_sum + theorem rel_iSup_tsum - theorem rel_supᵢ_sum - theorem rel_supᵢ_tsum + theorem tsum_iSup_decode₂ + theorem tsum_iUnion_decode₂ - theorem tsum_supᵢ_decode₂ - theorem tsum_unionᵢ_decode₂ Modified Mathlib/Topology/Algebra/Module/Basic.lean + def ContinuousLinearMap.iInfKerProjEquiv + theorem ContinuousLinearMap.iInf_ker_proj - def ContinuousLinearMap.infᵢKerProjEquiv - theorem ContinuousLinearMap.infᵢ_ker_proj Modified Mathlib/Topology/Algebra/Module/StrongTopology.lean Modified Mathlib/Topology/Algebra/Monoid.lean + theorem continuousMul_iInf - theorem continuousMul_infᵢ - theorem continuousMul_infₛ + theorem continuousMul_sInf Modified Mathlib/Topology/Algebra/MulAction.lean + theorem continuousSMul_iInf - theorem continuousSMul_infᵢ - theorem continuousSMul_infₛ + theorem continuousSMul_sInf Modified Mathlib/Topology/Algebra/Order/Compact.lean - theorem ContinuousOn.infₛ_image_Icc_le + theorem ContinuousOn.le_sSup_image_Icc - theorem ContinuousOn.le_supₛ_image_Icc + theorem ContinuousOn.sInf_image_Icc_le - theorem IsCompact.continuous_infₛ + theorem IsCompact.continuous_sInf + theorem IsCompact.continuous_sSup - theorem IsCompact.continuous_supₛ - theorem IsCompact.exists_infₛ_image_eq - theorem IsCompact.exists_infₛ_image_eq_and_le + theorem IsCompact.exists_sInf_image_eq + theorem IsCompact.exists_sInf_image_eq_and_le + theorem IsCompact.exists_sSup_image_eq + theorem IsCompact.exists_sSup_image_eq_and_ge - theorem IsCompact.exists_supₛ_image_eq - theorem IsCompact.exists_supₛ_image_eq_and_ge - theorem IsCompact.infₛ_mem - theorem IsCompact.isGLB_infₛ + theorem IsCompact.isGLB_sInf + theorem IsCompact.isGreatest_sSup - theorem IsCompact.isGreatest_supₛ + theorem IsCompact.isLUB_sSup - theorem IsCompact.isLUB_supₛ - theorem IsCompact.isLeast_infₛ + theorem IsCompact.isLeast_sInf - theorem IsCompact.lt_infₛ_iff_of_continuous + theorem IsCompact.lt_sInf_iff_of_continuous + theorem IsCompact.sInf_mem + theorem IsCompact.sSup_lt_iff_of_continuous + theorem IsCompact.sSup_mem - theorem IsCompact.supₛ_lt_iff_of_continuous - theorem IsCompact.supₛ_mem Modified Mathlib/Topology/Algebra/Order/IntermediateValue.lean - theorem IsConnected.Ioo_cinfₛ_csupₛ_subset + theorem IsConnected.Ioo_csInf_csSup_subset + theorem IsPreconnected.Iio_csSup_subset - theorem IsPreconnected.Iio_csupₛ_subset - theorem IsPreconnected.Ioi_cinfₛ_subset + theorem IsPreconnected.Ioi_csInf_subset - theorem eq_Icc_cinfₛ_csupₛ_of_connected_bdd_closed + theorem eq_Icc_csInf_csSup_of_connected_bdd_closed Modified Mathlib/Topology/Algebra/Order/LeftRightLim.lean + theorem Monotone.leftLim_eq_sSup - theorem Monotone.leftLim_eq_supₛ Modified Mathlib/Topology/Algebra/Order/LiminfLimsup.lean - theorem Antitone.map_liminfₛ_of_continuousAt + theorem Antitone.map_limsInf_of_continuousAt + theorem Antitone.map_limsSup_of_continuousAt - theorem Antitone.map_limsupₛ_of_continuousAt - theorem Monotone.map_liminfₛ_of_continuousAt + theorem Monotone.map_limsInf_of_continuousAt + theorem Monotone.map_limsSup_of_continuousAt - theorem Monotone.map_limsupₛ_of_continuousAt - theorem gt_mem_sets_of_liminfₛ_gt + theorem gt_mem_sets_of_limsInf_gt + theorem iInf_eq_of_forall_le_of_tendsto + theorem iSup_eq_of_forall_le_of_tendsto + theorem iUnion_Ici_eq_Ioi_of_lt_of_tendsto + theorem iUnion_Iic_eq_Iio_of_lt_of_tendsto - theorem infᵢ_eq_of_forall_le_of_tendsto + theorem le_nhds_of_limsSup_eq_limsInf - theorem le_nhds_of_limsupₛ_eq_liminfₛ - theorem liminfₛ_eq_of_le_nhds - theorem liminfₛ_nhds + theorem limsInf_eq_of_le_nhds + theorem limsInf_nhds + theorem limsSup_eq_of_le_nhds + theorem limsSup_nhds - theorem limsupₛ_eq_of_le_nhds - theorem limsupₛ_nhds + theorem lt_mem_sets_of_limsSup_lt - theorem lt_mem_sets_of_limsupₛ_lt - theorem supᵢ_eq_of_forall_le_of_tendsto - theorem unionᵢ_Ici_eq_Ioi_of_lt_of_tendsto - theorem unionᵢ_Iic_eq_Iio_of_lt_of_tendsto Modified Mathlib/Topology/Algebra/Order/MonotoneConvergence.lean + theorem iInf_eq_iInf_subseq_of_monotone + theorem iInf_eq_of_tendsto + theorem iSup_eq_iSup_subseq_of_monotone + theorem iSup_eq_of_tendsto - theorem infᵢ_eq_infᵢ_subseq_of_monotone - theorem infᵢ_eq_of_tendsto - theorem supᵢ_eq_of_tendsto - theorem supᵢ_eq_supᵢ_subseq_of_monotone + theorem tendsto_atBot_ciInf + theorem tendsto_atBot_ciSup - theorem tendsto_atBot_cinfᵢ - theorem tendsto_atBot_csupᵢ + theorem tendsto_atBot_iInf + theorem tendsto_atBot_iSup - theorem tendsto_atBot_infᵢ - theorem tendsto_atBot_supᵢ + theorem tendsto_atTop_ciInf + theorem tendsto_atTop_ciSup - theorem tendsto_atTop_cinfᵢ - theorem tendsto_atTop_csupᵢ + theorem tendsto_atTop_iInf + theorem tendsto_atTop_iSup - theorem tendsto_atTop_infᵢ - theorem tendsto_atTop_supᵢ Modified Mathlib/Topology/Algebra/Order/T5.lean Modified Mathlib/Topology/Algebra/Ring/Basic.lean Modified Mathlib/Topology/Algebra/Ring/Ideal.lean Modified Mathlib/Topology/Algebra/Semigroup.lean Modified Mathlib/Topology/Algebra/UniformGroup.lean + theorem totallyBounded_iff_subset_finite_iUnion_nhds_one - theorem totallyBounded_iff_subset_finite_unionᵢ_nhds_one + theorem uniformGroup_iInf - theorem uniformGroup_infᵢ - theorem uniformGroup_infₛ + theorem uniformGroup_sInf Modified Mathlib/Topology/Algebra/WithZeroTopology.lean Modified Mathlib/Topology/Bases.lean + theorem TopologicalSpace.IsTopologicalBasis.open_eq_iUnion + theorem TopologicalSpace.IsTopologicalBasis.open_eq_sUnion' + theorem TopologicalSpace.IsTopologicalBasis.open_eq_sUnion - theorem TopologicalSpace.IsTopologicalBasis.open_eq_unionᵢ - theorem TopologicalSpace.IsTopologicalBasis.open_eq_unionₛ' - theorem TopologicalSpace.IsTopologicalBasis.open_eq_unionₛ + theorem TopologicalSpace.IsTopologicalBasis.open_iff_eq_sUnion - theorem TopologicalSpace.IsTopologicalBasis.open_iff_eq_unionₛ + theorem TopologicalSpace.isOpen_iUnion_countable + theorem TopologicalSpace.isOpen_sUnion_countable - theorem TopologicalSpace.isOpen_unionᵢ_countable - theorem TopologicalSpace.isOpen_unionₛ_countable + theorem TopologicalSpace.isSeparable_iUnion - theorem TopologicalSpace.isSeparable_unionᵢ + theorem TopologicalSpace.secondCountableTopology_iInf - theorem TopologicalSpace.secondCountableTopology_infᵢ + theorem isTopologicalBasis_iInf - theorem isTopologicalBasis_infᵢ Modified Mathlib/Topology/Basic.lean + theorem Finset.closure_biUnion - theorem Finset.closure_bunionᵢ + theorem Finset.interior_iInter - theorem Finset.interior_interᵢ + theorem closure_iUnion - theorem closure_unionᵢ + theorem interior_iInter + theorem interior_iInter_subset - theorem interior_interᵢ - theorem interior_interᵢ_subset - theorem interior_interₛ_subset + theorem interior_sInter_subset + theorem isClosed_biInter + theorem isClosed_biUnion - theorem isClosed_binterᵢ - theorem isClosed_bunionᵢ + theorem isClosed_iInter + theorem isClosed_iUnion - theorem isClosed_interᵢ - theorem isClosed_interₛ + theorem isClosed_sInter - theorem isClosed_unionᵢ + theorem isOpen_biInter + theorem isOpen_biInter_finset + theorem isOpen_biUnion - theorem isOpen_binterᵢ - theorem isOpen_binterᵢ_finset - theorem isOpen_bunionᵢ + theorem isOpen_iInter + theorem isOpen_iUnion - theorem isOpen_interᵢ - theorem isOpen_interₛ + theorem isOpen_sInter + theorem isOpen_sUnion - theorem isOpen_unionᵢ - theorem isOpen_unionₛ Modified Mathlib/Topology/Bornology/Basic.lean + theorem Bornology.isBounded_biUnion + theorem Bornology.isBounded_biUnion_finset - theorem Bornology.isBounded_bunionᵢ - theorem Bornology.isBounded_bunionᵢ_finset + theorem Bornology.isBounded_iUnion + theorem Bornology.isBounded_sUnion - theorem Bornology.isBounded_unionᵢ - theorem Bornology.isBounded_unionₛ + theorem Bornology.isCobounded_biInter + theorem Bornology.isCobounded_biInter_finset - theorem Bornology.isCobounded_binterᵢ - theorem Bornology.isCobounded_binterᵢ_finset + theorem Bornology.isCobounded_iInter - theorem Bornology.isCobounded_interᵢ - theorem Bornology.isCobounded_interₛ + theorem Bornology.isCobounded_sInter + theorem Bornology.sUnion_bounded_univ - theorem Bornology.unionₛ_bounded_univ Modified Mathlib/Topology/Category/CompHaus/Basic.lean Modified Mathlib/Topology/Category/Top/Limits/Basic.lean Modified Mathlib/Topology/Category/Top/Limits/Cofiltered.lean Modified Mathlib/Topology/Category/Top/Limits/Konig.lean Modified Mathlib/Topology/Category/Top/Limits/Products.lean Modified Mathlib/Topology/Category/Top/Limits/Pullbacks.lean Modified Mathlib/Topology/Category/Top/Opens.lean + theorem TopologicalSpace.Opens.map_iSup - theorem TopologicalSpace.Opens.map_supᵢ Modified Mathlib/Topology/CompactOpen.lean - theorem ContinuousMap.compactOpen_eq_infₛ_induced + theorem ContinuousMap.compactOpen_eq_sInf_induced - theorem ContinuousMap.nhds_compactOpen_eq_infₛ_nhds_induced + theorem ContinuousMap.nhds_compactOpen_eq_sInf_nhds_induced Modified Mathlib/Topology/Connected.lean + theorem IsClopen.biUnion_connectedComponent_eq - theorem IsClopen.bunionᵢ_connectedComponent_eq + theorem IsConnected.biUnion_of_chain + theorem IsConnected.biUnion_of_reflTransGen - theorem IsConnected.bunionᵢ_of_chain - theorem IsConnected.bunionᵢ_of_reflTransGen + theorem IsConnected.iUnion_of_chain + theorem IsConnected.iUnion_of_reflTransGen - theorem IsConnected.unionᵢ_of_chain - theorem IsConnected.unionᵢ_of_reflTransGen + theorem IsPreconnected.biUnion_of_chain + theorem IsPreconnected.biUnion_of_reflTransGen - theorem IsPreconnected.bunionᵢ_of_chain - theorem IsPreconnected.bunionᵢ_of_reflTransGen + theorem IsPreconnected.iUnion_of_chain + theorem IsPreconnected.iUnion_of_reflTransGen + theorem IsPreconnected.sUnion_directed - theorem IsPreconnected.unionᵢ_of_chain - theorem IsPreconnected.unionᵢ_of_reflTransGen - theorem IsPreconnected.unionₛ_directed + theorem connectedComponent_subset_iInter_clopen - theorem connectedComponent_subset_interᵢ_clopen + theorem isConnected_iff_sUnion_disjoint_open - theorem isConnected_iff_unionₛ_disjoint_open + theorem isPreconnected_iUnion + theorem isPreconnected_sUnion - theorem isPreconnected_unionᵢ - theorem isPreconnected_unionₛ Modified Mathlib/Topology/Constructions.lean - theorem continuous_infₛ_dom₂ + theorem continuous_sInf_dom₂ + theorem inducing_iInf_to_pi - theorem inducing_infᵢ_to_pi Modified Mathlib/Topology/ContinuousFunction/Basic.lean Modified Mathlib/Topology/ContinuousFunction/T0Sierpinski.lean Modified Mathlib/Topology/ContinuousOn.lean + theorem nhdsWithin_biUnion - theorem nhdsWithin_bunionᵢ + theorem nhdsWithin_iUnion + theorem nhdsWithin_sUnion - theorem nhdsWithin_unionᵢ - theorem nhdsWithin_unionₛ Modified Mathlib/Topology/DiscreteQuotient.lean Modified Mathlib/Topology/FiberBundle/Basic.lean Modified Mathlib/Topology/Filter.lean - theorem Filter.interₛ_nhds + theorem Filter.nhds_iInf - theorem Filter.nhds_infᵢ + theorem Filter.sInter_nhds Modified Mathlib/Topology/GDelta.lean + theorem isGδ_biInter + theorem isGδ_biInter_of_open + theorem isGδ_biUnion - theorem isGδ_binterᵢ - theorem isGδ_binterᵢ_of_open - theorem isGδ_bunionᵢ + theorem isGδ_iInter + theorem isGδ_iInter_of_open - theorem isGδ_interᵢ - theorem isGδ_interᵢ_of_open - theorem isGδ_interₛ + theorem isGδ_sInter Modified Mathlib/Topology/Instances/ENNReal.lean + theorem ENNReal.add_biSup' + theorem ENNReal.add_biSup - theorem ENNReal.add_bsupᵢ' - theorem ENNReal.add_bsupᵢ + theorem ENNReal.add_iSup - theorem ENNReal.add_supᵢ + theorem ENNReal.biInf_le_nhds + theorem ENNReal.biSup_add' + theorem ENNReal.biSup_add + theorem ENNReal.biSup_add_biSup_le' + theorem ENNReal.biSup_add_biSup_le - theorem ENNReal.binfᵢ_le_nhds - theorem ENNReal.bsupᵢ_add' - theorem ENNReal.bsupᵢ_add - theorem ENNReal.bsupᵢ_add_bsupᵢ_le' - theorem ENNReal.bsupᵢ_add_bsupᵢ_le + theorem ENNReal.finset_sum_iSup_nat - theorem ENNReal.finset_sum_supᵢ_nat + theorem ENNReal.iInf_mul_left' + theorem ENNReal.iInf_mul_left + theorem ENNReal.iInf_mul_right' + theorem ENNReal.iInf_mul_right + theorem ENNReal.iSup_add + theorem ENNReal.iSup_add_iSup + theorem ENNReal.iSup_add_iSup_le + theorem ENNReal.iSup_add_iSup_of_monotone + theorem ENNReal.iSup_div + theorem ENNReal.iSup_mul - theorem ENNReal.infᵢ_mul_left' - theorem ENNReal.infᵢ_mul_left - theorem ENNReal.infᵢ_mul_right' - theorem ENNReal.infᵢ_mul_right + theorem ENNReal.inv_map_iInf + theorem ENNReal.inv_map_iSup - theorem ENNReal.inv_map_infᵢ - theorem ENNReal.inv_map_supᵢ + theorem ENNReal.mul_iSup + theorem ENNReal.mul_sSup - theorem ENNReal.mul_supᵢ - theorem ENNReal.mul_supₛ + theorem ENNReal.sSup_add + theorem ENNReal.sub_iSup - theorem ENNReal.sub_supᵢ - theorem ENNReal.supᵢ_add - theorem ENNReal.supᵢ_add_supᵢ - theorem ENNReal.supᵢ_add_supᵢ_le - theorem ENNReal.supᵢ_add_supᵢ_of_monotone - theorem ENNReal.supᵢ_div - theorem ENNReal.supᵢ_mul - theorem ENNReal.supₛ_add + theorem ENNReal.tsum_biUnion_le + theorem ENNReal.tsum_biUnion_le_tsum - theorem ENNReal.tsum_bunionᵢ_le - theorem ENNReal.tsum_bunionᵢ_le_tsum + theorem ENNReal.tsum_iSup_eq + theorem ENNReal.tsum_iUnion_le + theorem ENNReal.tsum_iUnion_le_tsum - theorem ENNReal.tsum_supᵢ_eq - theorem ENNReal.tsum_unionᵢ_le - theorem ENNReal.tsum_unionᵢ_le_tsum +/- theorem Real.diam_eq Modified Mathlib/Topology/Instances/EReal.lean +/- theorem EReal.nhds_top' Modified Mathlib/Topology/Instances/NNReal.lean + theorem NNReal.iInf_real_pos_eq_iInf_nnreal_pos - theorem NNReal.infᵢ_real_pos_eq_infᵢ_nnreal_pos Modified Mathlib/Topology/Instances/Real.lean - theorem Real.subset_Icc_infₛ_supₛ_of_bounded + theorem Real.subset_Icc_sInf_sSup_of_bounded Modified Mathlib/Topology/LocalAtTarget.lean + theorem closedEmbedding_iff_closedEmbedding_of_iSup_eq_top - theorem closedEmbedding_iff_closedEmbedding_of_supᵢ_eq_top + theorem embedding_iff_embedding_of_iSup_eq_top - theorem embedding_iff_embedding_of_supᵢ_eq_top + theorem inducing_iff_inducing_of_iSup_eq_top - theorem inducing_iff_inducing_of_supᵢ_eq_top + theorem isClosedMap_iff_isClosedMap_of_iSup_eq_top - theorem isClosedMap_iff_isClosedMap_of_supᵢ_eq_top + theorem isClosed_iff_coe_preimage_of_iSup_eq_top - theorem isClosed_iff_coe_preimage_of_supᵢ_eq_top + theorem isOpen_iff_coe_preimage_of_iSup_eq_top - theorem isOpen_iff_coe_preimage_of_supᵢ_eq_top + theorem isOpen_iff_inter_of_iSup_eq_top - theorem isOpen_iff_inter_of_supᵢ_eq_top + theorem openEmbedding_iff_openEmbedding_of_iSup_eq_top - theorem openEmbedding_iff_openEmbedding_of_supᵢ_eq_top Modified Mathlib/Topology/LocallyConstant/Basic.lean Modified Mathlib/Topology/LocallyFinite.lean + theorem LocallyFinite.closure_iUnion - theorem LocallyFinite.closure_unionᵢ + theorem LocallyFinite.continuousOn_iUnion' + theorem LocallyFinite.continuousOn_iUnion - theorem LocallyFinite.continuousOn_unionᵢ' - theorem LocallyFinite.continuousOn_unionᵢ + theorem LocallyFinite.iInter_compl_mem_nhds - theorem LocallyFinite.interᵢ_compl_mem_nhds + theorem LocallyFinite.isClosed_iUnion - theorem LocallyFinite.isClosed_unionᵢ Modified Mathlib/Topology/Maps.lean Modified Mathlib/Topology/MetricSpace/Baire.lean + theorem IsGδ.dense_biUnion_interior_of_closed - theorem IsGδ.dense_bunionᵢ_interior_of_closed + theorem IsGδ.dense_iUnion_interior_of_closed + theorem IsGδ.dense_sUnion_interior_of_closed - theorem IsGδ.dense_unionᵢ_interior_of_closed - theorem IsGδ.dense_unionₛ_interior_of_closed + theorem dense_biInter_of_Gδ + theorem dense_biInter_of_open + theorem dense_biUnion_interior_of_closed - theorem dense_binterᵢ_of_Gδ - theorem dense_binterᵢ_of_open - theorem dense_bunionᵢ_interior_of_closed + theorem dense_iInter_of_Gδ + theorem dense_iInter_of_open + theorem dense_iInter_of_open_nat + theorem dense_iUnion_interior_of_closed - theorem dense_interᵢ_of_Gδ - theorem dense_interᵢ_of_open - theorem dense_interᵢ_of_open_nat - theorem dense_interₛ_of_Gδ - theorem dense_interₛ_of_open + theorem dense_sInter_of_Gδ + theorem dense_sInter_of_open + theorem dense_sUnion_interior_of_closed - theorem dense_unionᵢ_interior_of_closed - theorem dense_unionₛ_interior_of_closed + theorem nonempty_interior_of_iUnion_of_closed - theorem nonempty_interior_of_unionᵢ_of_closed Modified Mathlib/Topology/MetricSpace/Basic.lean + theorem IsComplete.nonempty_iInter_of_nonempty_biInter - theorem IsComplete.nonempty_interᵢ_of_nonempty_binterᵢ + theorem Metric.bounded_biUnion - theorem Metric.bounded_bunionᵢ + theorem Metric.iUnion_ball_nat + theorem Metric.iUnion_ball_nat_succ + theorem Metric.iUnion_closedBall_nat + theorem Metric.iUnion_inter_closedBall_nat + theorem Metric.nonempty_iInter_of_nonempty_biInter - theorem Metric.nonempty_interᵢ_of_nonempty_binterᵢ - theorem Metric.unionᵢ_ball_nat - theorem Metric.unionᵢ_ball_nat_succ - theorem Metric.unionᵢ_closedBall_nat - theorem Metric.unionᵢ_inter_closedBall_nat + theorem lebesgue_number_lemma_of_metric_sUnion - theorem lebesgue_number_lemma_of_metric_unionₛ Modified Mathlib/Topology/MetricSpace/CantorScheme.lean Modified Mathlib/Topology/MetricSpace/Closeds.lean Modified Mathlib/Topology/MetricSpace/Completion.lean Modified Mathlib/Topology/MetricSpace/EMetricParacompact.lean Modified Mathlib/Topology/MetricSpace/EMetricSpace.lean + theorem EMetric.diam_eq_sSup - theorem EMetric.diam_eq_supₛ + theorem EMetric.diam_iUnion_mem_option - theorem EMetric.diam_unionᵢ_mem_option Modified Mathlib/Topology/MetricSpace/Gluing.lean Modified Mathlib/Topology/MetricSpace/HausdorffDistance.lean + theorem EMetric.infEdist_iUnion - theorem EMetric.infEdist_unionᵢ + theorem IsCompact.cthickening_eq_biUnion_closedBall - theorem IsCompact.cthickening_eq_bunionᵢ_closedBall + theorem IsOpen.exists_iUnion_isClosed - theorem IsOpen.exists_unionᵢ_isClosed + theorem Metric.closure_eq_iInter_cthickening' + theorem Metric.closure_eq_iInter_cthickening + theorem Metric.closure_eq_iInter_thickening' + theorem Metric.closure_eq_iInter_thickening - theorem Metric.closure_eq_interᵢ_cthickening' - theorem Metric.closure_eq_interᵢ_cthickening - theorem Metric.closure_eq_interᵢ_thickening' - theorem Metric.closure_eq_interᵢ_thickening + theorem Metric.cthickening_eq_biUnion_closedBall - theorem Metric.cthickening_eq_bunionᵢ_closedBall + theorem Metric.cthickening_eq_iInter_cthickening' + theorem Metric.cthickening_eq_iInter_cthickening + theorem Metric.cthickening_eq_iInter_thickening'' + theorem Metric.cthickening_eq_iInter_thickening' + theorem Metric.cthickening_eq_iInter_thickening - theorem Metric.cthickening_eq_interᵢ_cthickening' - theorem Metric.cthickening_eq_interᵢ_cthickening - theorem Metric.cthickening_eq_interᵢ_thickening'' - theorem Metric.cthickening_eq_interᵢ_thickening' - theorem Metric.cthickening_eq_interᵢ_thickening + theorem Metric.cthickening_subset_iUnion_closedBall_of_lt - theorem Metric.cthickening_subset_unionᵢ_closedBall_of_lt + theorem Metric.infDist_eq_iInf - theorem Metric.infDist_eq_infᵢ + theorem Metric.thickening_eq_biUnion_ball - theorem Metric.thickening_eq_bunionᵢ_ball + theorem Metric.thickening_iUnion - theorem Metric.thickening_unionᵢ Modified Mathlib/Topology/MetricSpace/Infsep.lean + theorem Set.Nontrivial.infsep_eq_iInf - theorem Set.Nontrivial.infsep_eq_infᵢ + theorem Set.einfsep_eq_iInf - theorem Set.einfsep_eq_infᵢ + theorem Set.einfsep_iUnion_mem_option - theorem Set.einfsep_unionᵢ_mem_option + theorem Set.infsep_eq_iInf - theorem Set.infsep_eq_infᵢ Modified Mathlib/Topology/MetricSpace/Lipschitz.lean Modified Mathlib/Topology/MetricSpace/MetricSeparated.lean + theorem IsMetricSeparated.finite_iUnion_left_iff + theorem IsMetricSeparated.finite_iUnion_right_iff - theorem IsMetricSeparated.finite_unionᵢ_left_iff - theorem IsMetricSeparated.finite_unionᵢ_right_iff + theorem IsMetricSeparated.finset_iUnion_left_iff + theorem IsMetricSeparated.finset_iUnion_right_iff - theorem IsMetricSeparated.finset_unionᵢ_left_iff - theorem IsMetricSeparated.finset_unionᵢ_right_iff Modified Mathlib/Topology/MetricSpace/PiNat.lean + theorem PiNat.iUnion_cylinder_update - theorem PiNat.unionᵢ_cylinder_update Modified Mathlib/Topology/MetricSpace/Polish.lean + theorem PolishSpace.IsClopenable.iUnion - theorem PolishSpace.IsClopenable.unionᵢ Modified Mathlib/Topology/MetricSpace/ShrinkingLemma.lean + theorem exists_iUnion_ball_eq_radius_lt + theorem exists_iUnion_ball_eq_radius_pos_lt + theorem exists_locallyFinite_iUnion_eq_ball_radius_lt + theorem exists_locallyFinite_subset_iUnion_ball_radius_lt - theorem exists_locallyFinite_subset_unionᵢ_ball_radius_lt - theorem exists_locallyFinite_unionᵢ_eq_ball_radius_lt + theorem exists_subset_iUnion_ball_radius_lt + theorem exists_subset_iUnion_ball_radius_pos_lt - theorem exists_subset_unionᵢ_ball_radius_lt - theorem exists_subset_unionᵢ_ball_radius_pos_lt - theorem exists_unionᵢ_ball_eq_radius_lt - theorem exists_unionᵢ_ball_eq_radius_pos_lt Modified Mathlib/Topology/NhdsSet.lean Modified Mathlib/Topology/NoetherianSpace.lean + theorem TopologicalSpace.NoetherianSpace.iUnion - theorem TopologicalSpace.NoetherianSpace.unionᵢ Modified Mathlib/Topology/OmegaCompletePartialOrder.lean + theorem Scott.isOpen_sUnion - theorem Scott.isOpen_unionₛ Modified Mathlib/Topology/Order.lean + theorem coinduced_iSup - theorem coinduced_supᵢ + theorem continuous_iInf_dom + theorem continuous_iInf_rng + theorem continuous_iSup_dom + theorem continuous_iSup_rng - theorem continuous_infᵢ_dom - theorem continuous_infᵢ_rng - theorem continuous_infₛ_dom - theorem continuous_infₛ_rng + theorem continuous_sInf_dom + theorem continuous_sInf_rng + theorem continuous_sSup_dom + theorem continuous_sSup_rng - theorem continuous_supᵢ_dom - theorem continuous_supᵢ_rng - theorem continuous_supₛ_dom - theorem continuous_supₛ_rng + theorem generateFrom_iInter + theorem generateFrom_iInter_of_generateFrom_eq_self + theorem generateFrom_iUnion + theorem generateFrom_iUnion_isOpen - theorem generateFrom_interᵢ - theorem generateFrom_interᵢ_of_generateFrom_eq_self + theorem generateFrom_sUnion - theorem generateFrom_unionᵢ - theorem generateFrom_unionᵢ_isOpen - theorem generateFrom_unionₛ + theorem induced_iInf - theorem induced_infᵢ + theorem isClosed_iSup_iff - theorem isClosed_supᵢ_iff + theorem isOpen_iSup_iff - theorem isOpen_supᵢ_iff + theorem nhds_iInf - theorem nhds_infᵢ - theorem nhds_infₛ + theorem nhds_sInf + theorem setOf_isOpen_iSup + theorem setOf_isOpen_sSup - theorem setOf_isOpen_supᵢ - theorem setOf_isOpen_supₛ Modified Mathlib/Topology/Order/Basic.lean + theorem Antitone.map_ciInf_of_continuousAt + theorem Antitone.map_ciSup_of_continuousAt - theorem Antitone.map_cinfᵢ_of_continuousAt - theorem Antitone.map_cinfₛ_of_continuousAt + theorem Antitone.map_csInf_of_continuousAt + theorem Antitone.map_csSup_of_continuousAt - theorem Antitone.map_csupᵢ_of_continuousAt - theorem Antitone.map_csupₛ_of_continuousAt + theorem Antitone.map_iInf_of_continuousAt' + theorem Antitone.map_iInf_of_continuousAt + theorem Antitone.map_iSup_of_continuousAt' + theorem Antitone.map_iSup_of_continuousAt - theorem Antitone.map_infᵢ_of_continuousAt' - theorem Antitone.map_infᵢ_of_continuousAt - theorem Antitone.map_infₛ_of_continuousAt' - theorem Antitone.map_infₛ_of_continuousAt + theorem Antitone.map_sInf_of_continuousAt' + theorem Antitone.map_sInf_of_continuousAt + theorem Antitone.map_sSup_of_continuousAt' + theorem Antitone.map_sSup_of_continuousAt - theorem Antitone.map_supᵢ_of_continuousAt' - theorem Antitone.map_supᵢ_of_continuousAt - theorem Antitone.map_supₛ_of_continuousAt' - theorem Antitone.map_supₛ_of_continuousAt + theorem Dense.Iio_eq_biUnion - theorem Dense.Iio_eq_bunionᵢ + theorem Dense.Ioi_eq_biUnion - theorem Dense.Ioi_eq_bunionᵢ - theorem IsClosed.cinfₛ_mem + theorem IsClosed.csInf_mem + theorem IsClosed.csSup_mem - theorem IsClosed.csupₛ_mem - theorem IsClosed.infₛ_mem + theorem IsClosed.sInf_mem + theorem IsClosed.sSup_mem - theorem IsClosed.supₛ_mem + theorem Monotone.map_ciInf_of_continuousAt + theorem Monotone.map_ciSup_of_continuousAt - theorem Monotone.map_cinfᵢ_of_continuousAt - theorem Monotone.map_cinfₛ_of_continuousAt + theorem Monotone.map_csInf_of_continuousAt + theorem Monotone.map_csSup_of_continuousAt - theorem Monotone.map_csupᵢ_of_continuousAt - theorem Monotone.map_csupₛ_of_continuousAt + theorem Monotone.map_iInf_of_continuousAt' + theorem Monotone.map_iInf_of_continuousAt + theorem Monotone.map_iSup_of_continuousAt' + theorem Monotone.map_iSup_of_continuousAt - theorem Monotone.map_infᵢ_of_continuousAt' - theorem Monotone.map_infᵢ_of_continuousAt - theorem Monotone.map_infₛ_of_continuousAt' - theorem Monotone.map_infₛ_of_continuousAt + theorem Monotone.map_sInf_of_continuousAt' + theorem Monotone.map_sInf_of_continuousAt + theorem Monotone.map_sSup_of_continuousAt' + theorem Monotone.map_sSup_of_continuousAt - theorem Monotone.map_supᵢ_of_continuousAt' - theorem Monotone.map_supᵢ_of_continuousAt - theorem Monotone.map_supₛ_of_continuousAt' - theorem Monotone.map_supₛ_of_continuousAt - theorem cinfₛ_mem_closure + theorem csInf_mem_closure + theorem csSup_mem_closure - theorem csupₛ_mem_closure - theorem exists_seq_tendsto_infₛ + theorem exists_seq_tendsto_sInf + theorem exists_seq_tendsto_sSup - theorem exists_seq_tendsto_supₛ - theorem infₛ_mem_closure + theorem nhds_eq_iInf_abs_sub - theorem nhds_eq_infᵢ_abs_sub + theorem sInf_mem_closure + theorem sSup_mem_closure - theorem supₛ_mem_closure Modified Mathlib/Topology/Order/LowerTopology.lean Modified Mathlib/Topology/Paracompact.lean Modified Mathlib/Topology/PartitionOfUnity.lean Modified Mathlib/Topology/Perfect.lean Modified Mathlib/Topology/Semicontinuous.lean + theorem lowerSemicontinuousAt_biSup - theorem lowerSemicontinuousAt_bsupᵢ + theorem lowerSemicontinuousAt_ciSup - theorem lowerSemicontinuousAt_csupᵢ + theorem lowerSemicontinuousAt_iSup - theorem lowerSemicontinuousAt_supᵢ + theorem lowerSemicontinuousOn_biSup - theorem lowerSemicontinuousOn_bsupᵢ + theorem lowerSemicontinuousOn_ciSup - theorem lowerSemicontinuousOn_csupᵢ + theorem lowerSemicontinuousOn_iSup - theorem lowerSemicontinuousOn_supᵢ + theorem lowerSemicontinuousWithinAt_biSup - theorem lowerSemicontinuousWithinAt_bsupᵢ + theorem lowerSemicontinuousWithinAt_ciSup - theorem lowerSemicontinuousWithinAt_csupᵢ + theorem lowerSemicontinuousWithinAt_iSup - theorem lowerSemicontinuousWithinAt_supᵢ + theorem lowerSemicontinuous_biSup - theorem lowerSemicontinuous_bsupᵢ + theorem lowerSemicontinuous_ciSup - theorem lowerSemicontinuous_csupᵢ + theorem lowerSemicontinuous_iSup - theorem lowerSemicontinuous_supᵢ + theorem upperSemicontinuousAt_biInf - theorem upperSemicontinuousAt_binfᵢ + theorem upperSemicontinuousAt_ciInf - theorem upperSemicontinuousAt_cinfᵢ + theorem upperSemicontinuousAt_iInf - theorem upperSemicontinuousAt_infᵢ + theorem upperSemicontinuousOn_biInf - theorem upperSemicontinuousOn_binfᵢ + theorem upperSemicontinuousOn_ciInf - theorem upperSemicontinuousOn_cinfᵢ + theorem upperSemicontinuousOn_iInf - theorem upperSemicontinuousOn_infᵢ + theorem upperSemicontinuousWithinAt_biInf - theorem upperSemicontinuousWithinAt_binfᵢ + theorem upperSemicontinuousWithinAt_ciInf - theorem upperSemicontinuousWithinAt_cinfᵢ + theorem upperSemicontinuousWithinAt_iInf - theorem upperSemicontinuousWithinAt_infᵢ + theorem upperSemicontinuous_biInf - theorem upperSemicontinuous_binfᵢ + theorem upperSemicontinuous_ciInf - theorem upperSemicontinuous_cinfᵢ + theorem upperSemicontinuous_iInf - theorem upperSemicontinuous_infᵢ Modified Mathlib/Topology/Separation.lean + theorem biInter_basis_nhds - theorem binterᵢ_basis_nhds + theorem connectedComponent_eq_iInter_clopen - theorem connectedComponent_eq_interᵢ_clopen + theorem regularSpace_iInf - theorem regularSpace_infᵢ - theorem regularSpace_infₛ + theorem regularSpace_sInf Modified Mathlib/Topology/Sequences.lean Modified Mathlib/Topology/Sets/Closeds.lean + theorem TopologicalSpace.Closeds.coe_iInf - theorem TopologicalSpace.Closeds.coe_infᵢ - theorem TopologicalSpace.Closeds.coe_infₛ + theorem TopologicalSpace.Closeds.coe_sInf + theorem TopologicalSpace.Closeds.iInf_def + theorem TopologicalSpace.Closeds.iInf_mk - theorem TopologicalSpace.Closeds.infᵢ_def - theorem TopologicalSpace.Closeds.infᵢ_mk + theorem TopologicalSpace.Closeds.mem_iInf - theorem TopologicalSpace.Closeds.mem_infᵢ - theorem TopologicalSpace.Closeds.mem_infₛ + theorem TopologicalSpace.Closeds.mem_sInf Modified Mathlib/Topology/Sets/Opens.lean + theorem TopologicalSpace.Opens.IsBasis.isCompact_open_iff_eq_finite_iUnion - theorem TopologicalSpace.Opens.IsBasis.isCompact_open_iff_eq_finite_unionᵢ + theorem TopologicalSpace.Opens.coe_iSup + theorem TopologicalSpace.Opens.coe_sSup - theorem TopologicalSpace.Opens.coe_supᵢ - theorem TopologicalSpace.Opens.coe_supₛ + theorem TopologicalSpace.Opens.iSup_def + theorem TopologicalSpace.Opens.iSup_mk + theorem TopologicalSpace.Opens.mem_iSup + theorem TopologicalSpace.Opens.mem_sSup - theorem TopologicalSpace.Opens.mem_supᵢ - theorem TopologicalSpace.Opens.mem_supₛ - theorem TopologicalSpace.Opens.supᵢ_def - theorem TopologicalSpace.Opens.supᵢ_mk Modified Mathlib/Topology/ShrinkingLemma.lean + theorem exists_iUnion_eq_closed_subset + theorem exists_iUnion_eq_closure_subset + theorem exists_subset_iUnion_closed_subset + theorem exists_subset_iUnion_closure_subset - theorem exists_subset_unionᵢ_closed_subset - theorem exists_subset_unionᵢ_closure_subset - theorem exists_unionᵢ_eq_closed_subset - theorem exists_unionᵢ_eq_closure_subset Modified Mathlib/Topology/Sober.lean Modified Mathlib/Topology/StoneCech.lean Modified Mathlib/Topology/SubsetProperties.lean + theorem CompactExhaustion.iUnion_eq - theorem CompactExhaustion.unionᵢ_eq + theorem Finset.isCompact_biUnion - theorem Finset.isCompact_bunionᵢ + theorem IsCompact.inter_iInter_nonempty - theorem IsCompact.inter_interᵢ_nonempty + theorem IsCompact.nonempty_iInter_of_directed_nonempty_compact_closed + theorem IsCompact.nonempty_iInter_of_sequence_nonempty_compact_closed - theorem IsCompact.nonempty_interᵢ_of_directed_nonempty_compact_closed - theorem IsCompact.nonempty_interᵢ_of_sequence_nonempty_compact_closed + theorem Set.Finite.isCompact_biUnion - theorem Set.Finite.isCompact_bunionᵢ + theorem Set.Finite.isCompact_sUnion - theorem Set.Finite.isCompact_unionₛ + theorem iUnion_compactCovering + theorem isClopen_biInter + theorem isClopen_biInter_finset + theorem isClopen_biUnion + theorem isClopen_biUnion_finset - theorem isClopen_binterᵢ - theorem isClopen_binterᵢ_finset - theorem isClopen_bunionᵢ - theorem isClopen_bunionᵢ_finset + theorem isClopen_iInter + theorem isClopen_iUnion - theorem isClopen_interᵢ - theorem isClopen_unionᵢ + theorem isCompact_iUnion + theorem isCompact_open_iff_eq_finite_iUnion_of_isTopologicalBasis - theorem isCompact_open_iff_eq_finite_unionᵢ_of_isTopologicalBasis - theorem isCompact_unionᵢ - theorem isIrreducible_iff_interₛ + theorem isIrreducible_iff_sInter + theorem isIrreducible_iff_sUnion_closed - theorem isIrreducible_iff_unionₛ_closed - theorem unionᵢ_compactCovering Modified Mathlib/Topology/Support.lean Modified Mathlib/Topology/UniformSpace/Basic.lean + theorem Dense.biUnion_uniformity_ball - theorem Dense.bunionᵢ_uniformity_ball + theorem Filter.HasBasis.biInter_biUnion_ball - theorem Filter.HasBasis.binterᵢ_bunionᵢ_ball + theorem UniformSpace.comap_iInf - theorem UniformSpace.comap_infᵢ + theorem iInf_uniformity + theorem iSup_nhds_le_uniformity - theorem infᵢ_uniformity + theorem lebesgue_number_lemma_sUnion - theorem lebesgue_number_lemma_unionₛ - theorem supᵢ_nhds_le_uniformity + theorem toTopologicalSpace_iInf - theorem toTopologicalSpace_infᵢ - theorem toTopologicalSpace_infₛ + theorem toTopologicalSpace_sInf + theorem uniformContinuous_iInf_dom + theorem uniformContinuous_iInf_rng - theorem uniformContinuous_infᵢ_dom - theorem uniformContinuous_infᵢ_rng - theorem uniformContinuous_infₛ_dom - theorem uniformContinuous_infₛ_dom₂ - theorem uniformContinuous_infₛ_rng + theorem uniformContinuous_sInf_dom + theorem uniformContinuous_sInf_dom₂ + theorem uniformContinuous_sInf_rng Modified Mathlib/Topology/UniformSpace/Cauchy.lean + theorem isComplete_iUnion_separated - theorem isComplete_unionᵢ_separated Modified Mathlib/Topology/UniformSpace/Compact.lean Modified Mathlib/Topology/UniformSpace/CompactConvergence.lean + theorem ContinuousMap.iInter_compactOpen_gen_subset_compactConvNhd - theorem ContinuousMap.interᵢ_compactOpen_gen_subset_compactConvNhd Modified Mathlib/Topology/UniformSpace/Matrix.lean Modified Mathlib/Topology/UniformSpace/Pi.lean Modified Mathlib/Topology/UniformSpace/Separation.lean Modified Mathlib/Topology/UniformSpace/UniformConvergence.lean + theorem tendstoLocallyUniformlyOn_biUnion - theorem tendstoLocallyUniformlyOn_bunionᵢ + theorem tendstoLocallyUniformlyOn_iUnion + theorem tendstoLocallyUniformlyOn_sUnion - theorem tendstoLocallyUniformlyOn_unionᵢ - theorem tendstoLocallyUniformlyOn_unionₛ Modified Mathlib/Topology/UniformSpace/UniformConvergenceTopology.lean Modified Mathlib/Topology/UniformSpace/UniformEmbedding.lean Modified Mathlib/Topology/UrysohnsLemma.lean 2023-05-14 01:40:24 759a521 feat: port Algebra.Category.Ring.Basic (#3901) This is a replacement for https://github.com/leanprover-community/mathlib4/pull/3105 which makes use of the refactors proposed in https://github.com/leanprover-community/mathlib4/pull/3900. I'm happy to just merge this into #3105 if that's preferred, but since it depends on a refactor I thought I'd keep it separate for now. - [x] depends on: #3900 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Category/Ring/Basic.lean + def CategoryTheory.Iso.commRingCatIsoToRingEquiv + theorem CategoryTheory.Iso.commRingIsoToRingEquiv_symm_toRingHom + theorem CategoryTheory.Iso.commRingIsoToRingEquiv_toRingHom + def CategoryTheory.Iso.ringCatIsoToRingEquiv + theorem CommRingCat.coe_comp + theorem CommRingCat.coe_id + theorem CommRingCat.coe_of + theorem CommRingCat.comp_eq_ring_hom_comp + theorem CommRingCat.ext + theorem CommRingCat.forget_map + def CommRingCat.of + def CommRingCat.ofHom + theorem CommRingCat.ringHom_comp_eq_comp + def CommRingCat + theorem CommSemiRing.coe_comp + theorem CommSemiRing.coe_id + theorem CommSemiRing.coe_of + theorem CommSemiRing.ext + theorem CommSemiRing.forget_map + def CommSemiRing.of + def CommSemiRing.ofHom + def CommSemiRingCat + theorem RingCat.coe_comp + theorem RingCat.coe_id + theorem RingCat.coe_of + theorem RingCat.ext + theorem RingCat.forget_map + def RingCat.of + def RingCat.ofHom + def RingCat + def RingEquiv.toCommRingCatIso + def RingEquiv.toRingCatIso + theorem SemiRingCat.coe_comp + theorem SemiRingCat.coe_id + theorem SemiRingCat.coe_of + theorem SemiRingCat.ext + theorem SemiRingCat.forget_map + def SemiRingCat.of + def SemiRingCat.ofHom + theorem SemiRingCat.ofHom_apply + def SemiRingCat + def ringEquivIsoCommRingIso + def ringEquivIsoRingIso 2023-05-13 21:44:09 bb17f9b fix: correct mathlib3-style lattice lemma names (#3957) ESTIMATED CHANGES Modified Mathlib/Data/ENat/Lattice.lean Modified Mathlib/Order/ConditionallyCompleteLattice/Basic.lean + theorem WithBot.csupᵢ_empty + theorem WithBot.csupₛ_empty - theorem WithBot.supᵢ_empty - theorem WithBot.supₛ_empty - theorem WithTop.supr_coe_eq_top - theorem WithTop.supr_coe_lt_top + theorem WithTop.supᵢ_coe_eq_top + theorem WithTop.supᵢ_coe_lt_top Modified Mathlib/Order/Height.lean 2023-05-13 17:10:41 e3f234a chore: forward port leanprover-community/mathlib#19001, 17743 (#3953) ESTIMATED CHANGES Modified Mathlib/Algebra/EuclideanDomain/Defs.lean Modified Mathlib/Order/Circular.lean 2023-05-13 14:37:33 9443ba4 feat: port ModelTheory.Bundled (#3933) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/ModelTheory/Bundled.lean + def Equiv.bundledInduced + def Equiv.bundledInducedEquiv + def FirstOrder.Language.ElementarilyEquivalent.toModel + def FirstOrder.Language.ElementarySubstructure.toModel + def FirstOrder.Language.Theory.Model.bundled + theorem FirstOrder.Language.Theory.ModelType.coe_of + def FirstOrder.Language.Theory.ModelType.equivInduced + def FirstOrder.Language.Theory.ModelType.of + def FirstOrder.Language.Theory.ModelType.reduct + def FirstOrder.Language.Theory.ModelType.subtheoryModel + def FirstOrder.Language.Theory.ModelType.ulift + structure FirstOrder.Language.Theory.ModelType + theorem FirstOrder.Language.Theory.coe_of 2023-05-13 14:21:20 21ac3b5 feat: port ModelTheory.Skolem (#3951) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/ModelTheory/Skolem.lean + theorem FirstOrder.Language.Substructure.coeSort_elementarySkolem₁Reduct + theorem FirstOrder.Language.Substructure.skolem₁_reduct_isElementary + theorem FirstOrder.Language.card_functions_sum_skolem₁ + theorem FirstOrder.Language.card_functions_sum_skolem₁_le + theorem FirstOrder.Language.exists_elementarySubstructure_card_eq + theorem FirstOrder.Language.exists_small_elementarySubstructure + def FirstOrder.Language.skolem₁ 2023-05-13 13:53:57 db47e7e feat: port Topology.Sheaves.Abelian (#3949) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Topology/Sheaves/Abelian.lean 2023-05-13 13:53:56 2934589 feat: port CategoryTheory.Subterminal (#3943) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Subterminal.lean + theorem CategoryTheory.IsSubterminal.def + theorem CategoryTheory.IsSubterminal.isIso_diag + def CategoryTheory.IsSubterminal.isoDiag + theorem CategoryTheory.IsSubterminal.mono_isTerminal_from + theorem CategoryTheory.IsSubterminal.mono_terminal_from + def CategoryTheory.IsSubterminal + def CategoryTheory.Subterminals + theorem CategoryTheory.isSubterminal_of_isIso_diag + theorem CategoryTheory.isSubterminal_of_isTerminal + theorem CategoryTheory.isSubterminal_of_mono_isTerminal_from + theorem CategoryTheory.isSubterminal_of_mono_terminal_from + theorem CategoryTheory.isSubterminal_of_terminal + theorem CategoryTheory.monoOver_terminal_to_subterminals_comp + def CategoryTheory.subterminalInclusion + def CategoryTheory.subterminalsEquivMonoOverTerminal + theorem CategoryTheory.subterminals_to_monoOver_terminal_comp_forget 2023-05-13 13:53:55 26d5728 feat: port ModelTheory.ElementaryMaps (#3931) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/ModelTheory/ElementaryMaps.lean + theorem FirstOrder.Language.ElementaryEmbedding.coe_injective + theorem FirstOrder.Language.ElementaryEmbedding.coe_toEmbedding + theorem FirstOrder.Language.ElementaryEmbedding.coe_toHom + def FirstOrder.Language.ElementaryEmbedding.comp + theorem FirstOrder.Language.ElementaryEmbedding.comp_apply + theorem FirstOrder.Language.ElementaryEmbedding.comp_assoc + theorem FirstOrder.Language.ElementaryEmbedding.elementarilyEquivalent + theorem FirstOrder.Language.ElementaryEmbedding.ext + theorem FirstOrder.Language.ElementaryEmbedding.ext_iff + theorem FirstOrder.Language.ElementaryEmbedding.injective + theorem FirstOrder.Language.ElementaryEmbedding.map_boundedFormula + theorem FirstOrder.Language.ElementaryEmbedding.map_constants + theorem FirstOrder.Language.ElementaryEmbedding.map_formula + theorem FirstOrder.Language.ElementaryEmbedding.map_fun + theorem FirstOrder.Language.ElementaryEmbedding.map_rel + theorem FirstOrder.Language.ElementaryEmbedding.map_sentence + def FirstOrder.Language.ElementaryEmbedding.ofModelsElementaryDiagram + def FirstOrder.Language.ElementaryEmbedding.refl + theorem FirstOrder.Language.ElementaryEmbedding.refl_apply + theorem FirstOrder.Language.ElementaryEmbedding.theory_model_iff + def FirstOrder.Language.ElementaryEmbedding.toEmbedding + theorem FirstOrder.Language.ElementaryEmbedding.toEmbedding_toHom + def FirstOrder.Language.ElementaryEmbedding.toHom + structure FirstOrder.Language.ElementaryEmbedding + theorem FirstOrder.Language.ElementarySubstructure.coeSubtype + theorem FirstOrder.Language.ElementarySubstructure.coe_top + theorem FirstOrder.Language.ElementarySubstructure.elementarilyEquivalent + theorem FirstOrder.Language.ElementarySubstructure.isElementary + theorem FirstOrder.Language.ElementarySubstructure.mem_top + theorem FirstOrder.Language.ElementarySubstructure.realize_sentence + def FirstOrder.Language.ElementarySubstructure.subtype + theorem FirstOrder.Language.ElementarySubstructure.theory_model_iff + structure FirstOrder.Language.ElementarySubstructure + theorem FirstOrder.Language.Embedding.isElementary_of_exists + def FirstOrder.Language.Embedding.toElementaryEmbedding + theorem FirstOrder.Language.Equiv.coe_toElementaryEmbedding + def FirstOrder.Language.Equiv.toElementaryEmbedding + theorem FirstOrder.Language.Equiv.toElementaryEmbedding_toEmbedding + def FirstOrder.Language.Substructure.IsElementary + theorem FirstOrder.Language.Substructure.isElementary_of_exists + theorem FirstOrder.Language.Substructure.realize_boundedFormula_top + theorem FirstOrder.Language.Substructure.realize_formula_top + def FirstOrder.Language.Substructure.toElementarySubstructure + theorem FirstOrder.Language.realize_term_substructure 2023-05-13 13:28:57 e53458a feat: port ModelTheory.FinitelyGenerated (#3927) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/ModelTheory/FinitelyGenerated.lean + theorem FirstOrder.Language.Equiv.cg_iff + theorem FirstOrder.Language.Equiv.fg_iff + theorem FirstOrder.Language.Structure.CG.map_of_surjective + theorem FirstOrder.Language.Structure.CG.range + theorem FirstOrder.Language.Structure.FG.cg + theorem FirstOrder.Language.Structure.FG.map_of_surjective + theorem FirstOrder.Language.Structure.FG.range + theorem FirstOrder.Language.Structure.cg_def + theorem FirstOrder.Language.Structure.cg_iff + theorem FirstOrder.Language.Structure.cg_iff_countable + theorem FirstOrder.Language.Structure.fg_def + theorem FirstOrder.Language.Structure.fg_iff + theorem FirstOrder.Language.Substructure.CG.map + theorem FirstOrder.Language.Substructure.CG.of_map_embedding + theorem FirstOrder.Language.Substructure.CG.sup + def FirstOrder.Language.Substructure.CG + theorem FirstOrder.Language.Substructure.FG.cg + theorem FirstOrder.Language.Substructure.FG.map + theorem FirstOrder.Language.Substructure.FG.of_map_embedding + theorem FirstOrder.Language.Substructure.FG.sup + def FirstOrder.Language.Substructure.FG + theorem FirstOrder.Language.Substructure.cg_bot + theorem FirstOrder.Language.Substructure.cg_closure + theorem FirstOrder.Language.Substructure.cg_closure_singleton + theorem FirstOrder.Language.Substructure.cg_def + theorem FirstOrder.Language.Substructure.cg_iff_countable + theorem FirstOrder.Language.Substructure.cg_iff_empty_or_exists_nat_generating_family + theorem FirstOrder.Language.Substructure.cg_iff_structure_cg + theorem FirstOrder.Language.Substructure.fg_bot + theorem FirstOrder.Language.Substructure.fg_closure + theorem FirstOrder.Language.Substructure.fg_closure_singleton + theorem FirstOrder.Language.Substructure.fg_def + theorem FirstOrder.Language.Substructure.fg_iff_exists_fin_generating_family + theorem FirstOrder.Language.Substructure.fg_iff_structure_fg 2023-05-13 13:28:55 95ba50f feat: port/CategoryTheory.Abelian.Homology (#3882) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Abelian/Homology.lean + theorem homology.condition_ι + theorem homology.condition_π' + def homology.desc' + theorem homology.hom_from_ext + theorem homology.hom_to_ext + def homology.lift + theorem homology.lift_ι + theorem homology.map_eq_desc'_lift_left + theorem homology.map_eq_desc'_lift_right + theorem homology.map_eq_lift_desc'_left + theorem homology.map_eq_lift_desc'_right + theorem homology.map_ι + def homology.ι + def homology.π' + theorem homology.π'_desc' + theorem homology.π'_eq_π + theorem homology.π'_map + theorem homology.π'_ι + def homologyIsoKernelDesc 2023-05-13 13:28:54 956490f feat: port Topology.Homotopy.Path (#3186) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Topology/Homotopy/Path.lean + def ContinuousMap.Homotopy.evalAt + def Path.Homotopic.Quotient.comp + def Path.Homotopic.Quotient.mapFn + theorem Path.Homotopic.comp_lift + theorem Path.Homotopic.equivalence + theorem Path.Homotopic.hcomp + theorem Path.Homotopic.hpath_hext + theorem Path.Homotopic.map_lift + theorem Path.Homotopic.refl + theorem Path.Homotopic.symm + theorem Path.Homotopic.trans + def Path.Homotopic + def Path.Homotopy.cast + theorem Path.Homotopy.coeFn_injective + def Path.Homotopy.eval + theorem Path.Homotopy.eval_one + theorem Path.Homotopy.eval_zero + def Path.Homotopy.hcomp + theorem Path.Homotopy.hcomp_apply + theorem Path.Homotopy.hcomp_half + def Path.Homotopy.map + def Path.Homotopy.refl + def Path.Homotopy.reparam + theorem Path.Homotopy.source + def Path.Homotopy.symm + theorem Path.Homotopy.symm_symm + theorem Path.Homotopy.symm_trans + def Path.Homotopy.symm₂ + theorem Path.Homotopy.target + def Path.Homotopy.trans + theorem Path.Homotopy.trans_apply 2023-05-13 11:16:03 4e590eb chore: forward-port leanprover-community/mathlib#18968 (#3890) ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Group/OrderIso.lean + def OrderIso.divLeft + def OrderIso.divRight 2023-05-13 11:16:02 e07a63a feat: port Algebra.Homology.Augment (#3560) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Homology/Augment.lean + def ChainComplex.augment + def ChainComplex.augmentTruncate + theorem ChainComplex.augmentTruncate_hom_f_succ + theorem ChainComplex.augmentTruncate_hom_f_zero + theorem ChainComplex.augmentTruncate_inv_f_succ + theorem ChainComplex.augmentTruncate_inv_f_zero + theorem ChainComplex.augment_X_succ + theorem ChainComplex.augment_X_zero + theorem ChainComplex.augment_d_one_zero + theorem ChainComplex.augment_d_succ_succ + theorem ChainComplex.chainComplex_d_succ_succ_zero + def ChainComplex.toSingle₀AsComplex + def ChainComplex.truncate + def ChainComplex.truncateAugment + theorem ChainComplex.truncateAugment_hom_f + theorem ChainComplex.truncateAugment_inv_f + def ChainComplex.truncateTo + def CochainComplex.augment + def CochainComplex.augmentTruncate + theorem CochainComplex.augmentTruncate_hom_f_succ + theorem CochainComplex.augmentTruncate_hom_f_zero + theorem CochainComplex.augmentTruncate_inv_f_succ + theorem CochainComplex.augmentTruncate_inv_f_zero + theorem CochainComplex.augment_X_succ + theorem CochainComplex.augment_X_zero + theorem CochainComplex.augment_d_succ_succ + theorem CochainComplex.augment_d_zero_one + theorem CochainComplex.cochainComplex_d_succ_succ_zero + def CochainComplex.fromSingle₀AsComplex + def CochainComplex.toTruncate + def CochainComplex.truncate + def CochainComplex.truncateAugment + theorem CochainComplex.truncateAugment_hom_f + theorem CochainComplex.truncateAugment_inv_f 2023-05-13 10:07:36 f9ae311 chore: Restore readability in Heine-Cantor (#3954) This proof had been uglyfied in mathlib3 already. ESTIMATED CHANGES Modified Mathlib/Topology/UniformSpace/Compact.lean 2023-05-13 08:55:19 a39c314 feat: port Algebra.Order.ToIntervalMod (#3952) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Order/ToIntervalMod.lean + theorem AddCommGroup.modEq_iff_not_forall_mem_Ioo_mod + theorem AddCommGroup.modEq_iff_toIcoDiv_eq_toIocDiv_add_one + theorem AddCommGroup.modEq_iff_toIcoMod_add_period_eq_toIocMod + theorem AddCommGroup.modEq_iff_toIcoMod_eq_left + theorem AddCommGroup.modEq_iff_toIcoMod_ne_toIocMod + theorem AddCommGroup.modEq_iff_toIocMod_eq_right + theorem AddCommGroup.not_modEq_iff_toIcoDiv_eq_toIocDiv + theorem AddCommGroup.not_modEq_iff_toIcoMod_eq_toIocMod + theorem AddCommGroup.tfae_modEq + theorem Ico_eq_locus_Ioc_eq_unionᵢ_Ioo + theorem left_le_toIcoMod + theorem left_lt_toIocMod + theorem quotientAddGroup.btw_coe_iff' + theorem quotientAddGroup.btw_coe_iff + def quotientAddGroup.equivIcoMod + theorem quotientAddGroup.equivIcoMod_coe + theorem quotientAddGroup.equivIcoMod_zero + def quotientAddGroup.equivIocMod + theorem quotientAddGroup.equivIocMod_coe + theorem quotientAddGroup.equivIocMod_zero + theorem self_sub_toIcoDiv_zsmul + theorem self_sub_toIcoMod + theorem self_sub_toIocDiv_zsmul + theorem self_sub_toIocMod + theorem sub_toIcoDiv_zsmul_mem_Ico + theorem sub_toIocDiv_zsmul_mem_Ioc + def toIcoDiv + theorem toIcoDiv_add_left' + theorem toIcoDiv_add_left + theorem toIcoDiv_add_right' + theorem toIcoDiv_add_right + theorem toIcoDiv_add_zsmul' + theorem toIcoDiv_add_zsmul + theorem toIcoDiv_apply_left + theorem toIcoDiv_apply_right + theorem toIcoDiv_eq_floor + theorem toIcoDiv_eq_of_sub_zsmul_mem_Ico + theorem toIcoDiv_eq_sub + theorem toIcoDiv_neg' + theorem toIcoDiv_neg + theorem toIcoDiv_sub' + theorem toIcoDiv_sub + theorem toIcoDiv_sub_eq_toIcoDiv_add' + theorem toIcoDiv_sub_eq_toIcoDiv_add + theorem toIcoDiv_sub_zsmul' + theorem toIcoDiv_sub_zsmul + theorem toIcoDiv_zero_one + theorem toIcoDiv_zsmul_add + theorem toIcoDiv_zsmul_sub_self + theorem toIcoDiv_zsmul_sub_toIcoMod + def toIcoMod + theorem toIcoMod_add_left' + theorem toIcoMod_add_left + theorem toIcoMod_add_right' + theorem toIcoMod_add_right + theorem toIcoMod_add_right_eq_add + theorem toIcoMod_add_toIcoDiv_zsmul + theorem toIcoMod_add_toIocMod_zero + theorem toIcoMod_add_zsmul' + theorem toIcoMod_add_zsmul + theorem toIcoMod_apply_left + theorem toIcoMod_apply_right + theorem toIcoMod_eq_add_fract_mul + theorem toIcoMod_eq_fract_mul + theorem toIcoMod_eq_iff + theorem toIcoMod_eq_self + theorem toIcoMod_eq_sub + theorem toIcoMod_eq_toIcoMod + theorem toIcoMod_inj + theorem toIcoMod_le_toIocMod + theorem toIcoMod_lt_right + theorem toIcoMod_mem_Ico' + theorem toIcoMod_mem_Ico + theorem toIcoMod_neg' + theorem toIcoMod_neg + theorem toIcoMod_periodic + theorem toIcoMod_sub' + theorem toIcoMod_sub + theorem toIcoMod_sub_eq_sub + theorem toIcoMod_sub_self + theorem toIcoMod_sub_zsmul' + theorem toIcoMod_sub_zsmul + theorem toIcoMod_toIcoMod + theorem toIcoMod_toIocMod + theorem toIcoMod_zero_one + theorem toIcoMod_zero_sub_comm + theorem toIcoMod_zsmul_add' + theorem toIcoMod_zsmul_add + def toIocDiv + theorem toIocDiv_add_left' + theorem toIocDiv_add_left + theorem toIocDiv_add_right' + theorem toIocDiv_add_right + theorem toIocDiv_add_zsmul' + theorem toIocDiv_add_zsmul + theorem toIocDiv_apply_left + theorem toIocDiv_apply_right + theorem toIocDiv_eq_neg_floor + theorem toIocDiv_eq_of_sub_zsmul_mem_Ioc + theorem toIocDiv_eq_sub + theorem toIocDiv_neg' + theorem toIocDiv_neg + theorem toIocDiv_sub' + theorem toIocDiv_sub + theorem toIocDiv_sub_eq_toIocDiv_add' + theorem toIocDiv_sub_eq_toIocDiv_add + theorem toIocDiv_sub_zsmul' + theorem toIocDiv_sub_zsmul + theorem toIocDiv_wcovby_toIcoDiv + theorem toIocDiv_zsmul_add + theorem toIocDiv_zsmul_sub_self + theorem toIocDiv_zsmul_sub_toIocMod + def toIocMod + theorem toIocMod_add_left' + theorem toIocMod_add_left + theorem toIocMod_add_right' + theorem toIocMod_add_right + theorem toIocMod_add_right_eq_add + theorem toIocMod_add_toIcoMod_zero + theorem toIocMod_add_toIocDiv_zsmul + theorem toIocMod_add_zsmul' + theorem toIocMod_add_zsmul + theorem toIocMod_apply_left + theorem toIocMod_apply_right + theorem toIocMod_eq_iff + theorem toIocMod_eq_self + theorem toIocMod_eq_sub + theorem toIocMod_eq_sub_fract_mul + theorem toIocMod_eq_toIocMod + theorem toIocMod_le_right + theorem toIocMod_le_toIcoMod_add + theorem toIocMod_mem_Ioc + theorem toIocMod_neg' + theorem toIocMod_neg + theorem toIocMod_periodic + theorem toIocMod_sub' + theorem toIocMod_sub + theorem toIocMod_sub_eq_sub + theorem toIocMod_sub_self + theorem toIocMod_sub_zsmul' + theorem toIocMod_sub_zsmul + theorem toIocMod_toIcoMod + theorem toIocMod_toIocMod + theorem toIocMod_zero_sub_comm + theorem toIocMod_zsmul_add' + theorem toIocMod_zsmul_add + theorem unionᵢ_Icc_add_int_cast + theorem unionᵢ_Icc_add_zsmul + theorem unionᵢ_Icc_int_cast + theorem unionᵢ_Icc_zsmul + theorem unionᵢ_Ico_add_int_cast + theorem unionᵢ_Ico_add_zsmul + theorem unionᵢ_Ico_int_cast + theorem unionᵢ_Ico_zsmul + theorem unionᵢ_Ioc_add_int_cast + theorem unionᵢ_Ioc_add_zsmul + theorem unionᵢ_Ioc_int_cast + theorem unionᵢ_Ioc_zsmul 2023-05-13 08:38:19 96a5adb feat: port Algebra.Category.Group.Injective (#3908) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Category/GroupCat/Injective.lean + theorem AddCommGroupCat.injective_as_module_of_injective_as_Ab + theorem AddCommGroupCat.injective_of_injective_as_module 2023-05-13 03:19:32 5ea3444 doc(Algebra/EuclideanDomain/Defs) : correct two typos in the doc (#3945) Correct two typos in the doc concerning the Main Statements of `Algebra.EuclideanDomain/Defs.lean`. The corresponding PR for `mathlib-3` is [#19001](https://github.com/leanprover-community/mathlib/pull/19001) ESTIMATED CHANGES Modified Mathlib/Algebra/EuclideanDomain/Defs.lean 2023-05-13 03:00:03 b28404d feat: port Analysis.Convex.Gauge (#3942) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/Convex/Gauge.lean + theorem Absorbent.gauge_set_nonempty + theorem Balanced.starConvex + theorem Convex.gauge_le + theorem Seminorm.gaugeSeminorm_ball + theorem exists_lt_of_gauge_lt + def gauge + def gaugeSeminorm + theorem gaugeSeminorm_ball_one + theorem gaugeSeminorm_lt_one_of_open + theorem gauge_add_le + theorem gauge_ball + theorem gauge_def' + theorem gauge_def + theorem gauge_empty + theorem gauge_le_eq + theorem gauge_le_of_mem + theorem gauge_le_one_of_mem + theorem gauge_lt_eq' + theorem gauge_lt_eq + theorem gauge_lt_of_mem_smul + theorem gauge_lt_one_eq_self_of_open + theorem gauge_lt_one_of_mem_of_open + theorem gauge_lt_one_subset_self + theorem gauge_mono + theorem gauge_neg + theorem gauge_neg_set_eq_gauge_neg + theorem gauge_neg_set_neg + theorem gauge_nonneg + theorem gauge_norm_smul + theorem gauge_of_subset_zero + theorem gauge_smul + theorem gauge_smul_left + theorem gauge_smul_left_of_nonneg + theorem gauge_smul_of_nonneg + theorem gauge_unit_ball + theorem gauge_zero' + theorem gauge_zero + theorem interior_subset_gauge_lt_one + theorem le_gauge_of_not_mem + theorem mul_gauge_le_norm + theorem one_le_gauge_of_not_mem + theorem self_subset_gauge_le_one 2023-05-12 18:40:07 fb165b6 feat: port Topology.Category.Top.Limits.Pullbacks (#3802) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Topology/Category/Top/Limits/Products.lean + def TopCat.binaryCofanIsColimit + theorem TopCat.binaryCofan_isColimit_iff +/- theorem TopCat.embedding_prod_map +/- theorem TopCat.inducing_prod_map +/- theorem TopCat.prod_topology Added Mathlib/Topology/Category/Top/Limits/Pullbacks.lean + theorem TopCat.coequalizer_isOpen_iff + theorem TopCat.coinduced_of_isColimit + theorem TopCat.colimit_isOpen_iff + theorem TopCat.colimit_topology + theorem TopCat.embedding_of_pullback_embeddings + theorem TopCat.embedding_pullback_to_prod + theorem TopCat.fst_embedding_of_right_embedding + theorem TopCat.fst_iso_of_right_embedding_range_subset + theorem TopCat.fst_openEmbedding_of_right_openEmbedding + theorem TopCat.inducing_pullback_to_prod + theorem TopCat.openEmbedding_of_pullback_open_embeddings + def TopCat.pullbackCone + def TopCat.pullbackConeIsLimit + def TopCat.pullbackIsoProdSubtype + theorem TopCat.pullbackIsoProdSubtype_hom_apply + theorem TopCat.pullbackIsoProdSubtype_hom_fst + theorem TopCat.pullbackIsoProdSubtype_hom_snd + theorem TopCat.pullbackIsoProdSubtype_inv_fst + theorem TopCat.pullbackIsoProdSubtype_inv_fst_apply + theorem TopCat.pullbackIsoProdSubtype_inv_snd + theorem TopCat.pullbackIsoProdSubtype_inv_snd_apply + theorem TopCat.pullback_fst_image_snd_preimage + theorem TopCat.pullback_fst_range + theorem TopCat.pullback_map_embedding_of_embeddings + theorem TopCat.pullback_map_openEmbedding_of_open_embeddings + theorem TopCat.pullback_snd_image_fst_preimage + theorem TopCat.pullback_snd_range + theorem TopCat.pullback_topology + theorem TopCat.range_pullback_map + theorem TopCat.range_pullback_to_prod + theorem TopCat.snd_embedding_of_left_embedding + theorem TopCat.snd_iso_of_left_embedding_range_subset + theorem TopCat.snd_openEmbedding_of_left_openEmbedding 2023-05-12 16:00:29 1fb5eb7 feat: port Analysis.LocallyConvex.ContinuousOfBounded (#3944) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/LocallyConvex/ContinuousOfBounded.lean + def LinearMap.clmOfExistsBoundedImage + theorem LinearMap.clmOfExistsBoundedImage_apply + theorem LinearMap.clmOfExistsBoundedImage_coe + theorem LinearMap.continuousAt_zero_of_locally_bounded + theorem LinearMap.continuous_of_locally_bounded 2023-05-12 16:00:27 fef2334 refactor: rename `FirstOrder.Language.inhabited.trivialStructure` to `Inhabited.trivialStructure` (#3934) ESTIMATED CHANGES Modified Mathlib/ModelTheory/Basic.lean + def FirstOrder.Language.Inhabited.trivialStructure - def FirstOrder.Language.inhabited.trivialStructure 2023-05-12 16:00:26 6e1a2ec feat: port ModelTheory.Substructures (#3913) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/ModelTheory/Substructures.lean + theorem FirstOrder.Language.ClosedUnder.inf + theorem FirstOrder.Language.ClosedUnder.infₛ + theorem FirstOrder.Language.ClosedUnder.inter + def FirstOrder.Language.ClosedUnder + def FirstOrder.Language.Embedding.codRestrict + theorem FirstOrder.Language.Embedding.codRestrict_apply + theorem FirstOrder.Language.Embedding.comp_codRestrict + def FirstOrder.Language.Embedding.domRestrict + theorem FirstOrder.Language.Embedding.domRestrict_apply + theorem FirstOrder.Language.Embedding.equivRange_apply + theorem FirstOrder.Language.Embedding.substructureEquivMap_apply + theorem FirstOrder.Language.Embedding.subtype_comp_codRestrict + theorem FirstOrder.Language.Equiv.toHom_range + def FirstOrder.Language.Hom.codRestrict + theorem FirstOrder.Language.Hom.comp_codRestrict + def FirstOrder.Language.Hom.domRestrict + def FirstOrder.Language.Hom.eqLocus + theorem FirstOrder.Language.Hom.eqOn_closure + theorem FirstOrder.Language.Hom.eq_of_eqOn_dense + theorem FirstOrder.Language.Hom.eq_of_eqOn_top + theorem FirstOrder.Language.Hom.map_le_range + theorem FirstOrder.Language.Hom.mem_range + theorem FirstOrder.Language.Hom.mem_range_self + def FirstOrder.Language.Hom.range + theorem FirstOrder.Language.Hom.range_coe + theorem FirstOrder.Language.Hom.range_comp + theorem FirstOrder.Language.Hom.range_comp_le_range + theorem FirstOrder.Language.Hom.range_eq_map + theorem FirstOrder.Language.Hom.range_eq_top + theorem FirstOrder.Language.Hom.range_id + theorem FirstOrder.Language.Hom.range_le_iff_comap + theorem FirstOrder.Language.Hom.subtype_comp_codRestrict + theorem FirstOrder.Language.LHom.coe_substructureReduct + theorem FirstOrder.Language.LHom.mem_substructureReduct + def FirstOrder.Language.LHom.substructureReduct + def FirstOrder.Language.Substructure.Simps.coe + theorem FirstOrder.Language.Substructure.apply_coe_mem_map + theorem FirstOrder.Language.Substructure.closed + def FirstOrder.Language.Substructure.closure + theorem FirstOrder.Language.Substructure.closure_empty + theorem FirstOrder.Language.Substructure.closure_eq + theorem FirstOrder.Language.Substructure.closure_eq_of_le + theorem FirstOrder.Language.Substructure.closure_image + theorem FirstOrder.Language.Substructure.closure_induction' + theorem FirstOrder.Language.Substructure.closure_induction + theorem FirstOrder.Language.Substructure.closure_le + theorem FirstOrder.Language.Substructure.closure_mono + theorem FirstOrder.Language.Substructure.closure_union + theorem FirstOrder.Language.Substructure.closure_unionᵢ + theorem FirstOrder.Language.Substructure.closure_univ + theorem FirstOrder.Language.Substructure.closure_withConstants_eq + theorem FirstOrder.Language.Substructure.coeSubtype + theorem FirstOrder.Language.Substructure.coe_closure_eq_range_term_realize + theorem FirstOrder.Language.Substructure.coe_copy + theorem FirstOrder.Language.Substructure.coe_inclusion + theorem FirstOrder.Language.Substructure.coe_inf + theorem FirstOrder.Language.Substructure.coe_infᵢ + theorem FirstOrder.Language.Substructure.coe_infₛ + theorem FirstOrder.Language.Substructure.coe_top + theorem FirstOrder.Language.Substructure.coe_topEquiv + theorem FirstOrder.Language.Substructure.coe_withConstants + def FirstOrder.Language.Substructure.comap + theorem FirstOrder.Language.Substructure.comap_comap + theorem FirstOrder.Language.Substructure.comap_id + theorem FirstOrder.Language.Substructure.comap_inf + theorem FirstOrder.Language.Substructure.comap_inf_map_of_injective + theorem FirstOrder.Language.Substructure.comap_infᵢ + theorem FirstOrder.Language.Substructure.comap_infᵢ_map_of_injective + theorem FirstOrder.Language.Substructure.comap_injective_of_surjective + theorem FirstOrder.Language.Substructure.comap_le_comap_iff_of_surjective + theorem FirstOrder.Language.Substructure.comap_map_comap + theorem FirstOrder.Language.Substructure.comap_map_eq_of_injective + theorem FirstOrder.Language.Substructure.comap_strictMono_of_surjective + theorem FirstOrder.Language.Substructure.comap_sup_map_of_injective + theorem FirstOrder.Language.Substructure.comap_supᵢ_map_of_injective + theorem FirstOrder.Language.Substructure.comap_surjective_of_injective + theorem FirstOrder.Language.Substructure.comap_top + theorem FirstOrder.Language.Substructure.constants_mem + theorem FirstOrder.Language.Substructure.copy_eq + theorem FirstOrder.Language.Substructure.dense_induction + theorem FirstOrder.Language.Substructure.ext + theorem FirstOrder.Language.Substructure.gc_map_comap + def FirstOrder.Language.Substructure.gciMapComap + def FirstOrder.Language.Substructure.giMapComap + def FirstOrder.Language.Substructure.inclusion + theorem FirstOrder.Language.Substructure.le_comap_map + theorem FirstOrder.Language.Substructure.le_comap_of_map_le + theorem FirstOrder.Language.Substructure.lift_card_closure_le + theorem FirstOrder.Language.Substructure.lift_card_closure_le_card_term + def FirstOrder.Language.Substructure.map + theorem FirstOrder.Language.Substructure.map_bot + theorem FirstOrder.Language.Substructure.map_closure + theorem FirstOrder.Language.Substructure.map_comap_eq_of_surjective + theorem FirstOrder.Language.Substructure.map_comap_le + theorem FirstOrder.Language.Substructure.map_comap_map + theorem FirstOrder.Language.Substructure.map_id + theorem FirstOrder.Language.Substructure.map_inf_comap_of_surjective + theorem FirstOrder.Language.Substructure.map_infᵢ_comap_of_surjective + theorem FirstOrder.Language.Substructure.map_injective_of_injective + theorem FirstOrder.Language.Substructure.map_le_iff_le_comap + theorem FirstOrder.Language.Substructure.map_le_map_iff_of_injective + theorem FirstOrder.Language.Substructure.map_le_of_le_comap + theorem FirstOrder.Language.Substructure.map_map + theorem FirstOrder.Language.Substructure.map_strictMono_of_injective + theorem FirstOrder.Language.Substructure.map_sup + theorem FirstOrder.Language.Substructure.map_sup_comap_of_surjective + theorem FirstOrder.Language.Substructure.map_supᵢ + theorem FirstOrder.Language.Substructure.map_supᵢ_comap_of_surjective + theorem FirstOrder.Language.Substructure.map_surjective_of_surjective + theorem FirstOrder.Language.Substructure.mem_carrier + theorem FirstOrder.Language.Substructure.mem_closure + theorem FirstOrder.Language.Substructure.mem_closure_iff_exists_term + theorem FirstOrder.Language.Substructure.mem_comap + theorem FirstOrder.Language.Substructure.mem_inf + theorem FirstOrder.Language.Substructure.mem_infᵢ + theorem FirstOrder.Language.Substructure.mem_infₛ + theorem FirstOrder.Language.Substructure.mem_map + theorem FirstOrder.Language.Substructure.mem_map_of_mem + theorem FirstOrder.Language.Substructure.mem_top + theorem FirstOrder.Language.Substructure.mem_withConstants + theorem FirstOrder.Language.Substructure.monotone_comap + theorem FirstOrder.Language.Substructure.monotone_map + theorem FirstOrder.Language.Substructure.not_mem_of_not_mem_closure + theorem FirstOrder.Language.Substructure.range_subtype + theorem FirstOrder.Language.Substructure.reduct_withConstants + theorem FirstOrder.Language.Substructure.subset_closure + theorem FirstOrder.Language.Substructure.subset_closure_withConstants + def FirstOrder.Language.Substructure.subtype + def FirstOrder.Language.Substructure.topEquiv + def FirstOrder.Language.Substructure.withConstants + structure FirstOrder.Language.Substructure + theorem FirstOrder.Language.Term.realize_mem + theorem FirstOrder.Language.closedUnder_univ + theorem Set.Countable.substructure_closure 2023-05-12 16:00:25 864fd0c feat: port ModelTheory.Order (#3911) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/ModelTheory/Order.lean + def FirstOrder.Language.Term.le + def FirstOrder.Language.Term.lt + theorem FirstOrder.Language.Term.realize_le + theorem FirstOrder.Language.Term.realize_lt + def FirstOrder.Language.denselyOrderedSentence + def FirstOrder.Language.dlo + def FirstOrder.Language.linearOrderTheory + def FirstOrder.Language.noBotOrderSentence + def FirstOrder.Language.noTopOrderSentence + def FirstOrder.Language.orderLHom + theorem FirstOrder.Language.orderLHom_leSymb + theorem FirstOrder.Language.orderLHom_order + theorem FirstOrder.Language.orderedStructure_iff + def FirstOrder.Language.partialOrderTheory + def FirstOrder.Language.preorderTheory + theorem FirstOrder.Language.realize_denselyOrdered + theorem FirstOrder.Language.realize_denselyOrdered_iff + theorem FirstOrder.Language.realize_noBotOrder + theorem FirstOrder.Language.realize_noBotOrder_iff + theorem FirstOrder.Language.realize_noTopOrder + theorem FirstOrder.Language.realize_noTopOrder_iff + theorem FirstOrder.Language.relMap_leSymb 2023-05-12 16:00:23 6887ea2 feat: port ModelTheory.Definability (#3909) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/ModelTheory/Definability.lean + theorem FirstOrder.Language.DefinableSet.coe_bot + theorem FirstOrder.Language.DefinableSet.coe_compl + theorem FirstOrder.Language.DefinableSet.coe_inf + theorem FirstOrder.Language.DefinableSet.coe_sdiff + theorem FirstOrder.Language.DefinableSet.coe_sup + theorem FirstOrder.Language.DefinableSet.coe_top + theorem FirstOrder.Language.DefinableSet.le_iff + theorem FirstOrder.Language.DefinableSet.mem_compl + theorem FirstOrder.Language.DefinableSet.mem_inf + theorem FirstOrder.Language.DefinableSet.mem_sdiff + theorem FirstOrder.Language.DefinableSet.mem_sup + theorem FirstOrder.Language.DefinableSet.mem_top + theorem FirstOrder.Language.DefinableSet.not_mem_bot + def FirstOrder.Language.DefinableSet + theorem Set.Definable.compl + theorem Set.Definable.image_comp + theorem Set.Definable.image_comp_embedding + theorem Set.Definable.image_comp_equiv + theorem Set.Definable.image_comp_sum_inl_fin + theorem Set.Definable.inter + theorem Set.Definable.map_expansion + theorem Set.Definable.mono + theorem Set.Definable.preimage_comp + theorem Set.Definable.sdiff + theorem Set.Definable.union + def Set.Definable + def Set.Definable₁ + def Set.Definable₂ + theorem Set.definable_empty + theorem Set.definable_finset_binterᵢ + theorem Set.definable_finset_bunionᵢ + theorem Set.definable_finset_inf + theorem Set.definable_finset_sup + theorem Set.definable_iff_empty_definable_with_params + theorem Set.definable_univ + theorem Set.empty_definable_iff 2023-05-12 15:18:41 c0391f8 chore: enable subsingleton.elim in aesop_cat (#3904) See discussion at https://leanprover.zulipchat.com/#narrow/stream/270676-lean4/topic/Failure.20of.20TC.20search.20in.20.60simp.60.20with.20.60etaExperiment.60.2E. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Category/Basic.lean 2023-05-12 15:18:40 017781e feat: port ModelTheory.Semantics (#3196) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/ModelTheory/Semantics.lean + def FirstOrder.Language.BoundedFormula.Realize + theorem FirstOrder.Language.BoundedFormula.realize_all + theorem FirstOrder.Language.BoundedFormula.realize_all_liftAt_one_self + theorem FirstOrder.Language.BoundedFormula.realize_alls + theorem FirstOrder.Language.BoundedFormula.realize_bdEqual + theorem FirstOrder.Language.BoundedFormula.realize_bot + theorem FirstOrder.Language.BoundedFormula.realize_castLe_of_eq + theorem FirstOrder.Language.BoundedFormula.realize_constantsVarsEquiv + theorem FirstOrder.Language.BoundedFormula.realize_ex + theorem FirstOrder.Language.BoundedFormula.realize_exs + theorem FirstOrder.Language.BoundedFormula.realize_foldr_inf + theorem FirstOrder.Language.BoundedFormula.realize_foldr_sup + theorem FirstOrder.Language.BoundedFormula.realize_iff + theorem FirstOrder.Language.BoundedFormula.realize_imp + theorem FirstOrder.Language.BoundedFormula.realize_inf + theorem FirstOrder.Language.BoundedFormula.realize_liftAt + theorem FirstOrder.Language.BoundedFormula.realize_liftAt_one + theorem FirstOrder.Language.BoundedFormula.realize_liftAt_one_self + theorem FirstOrder.Language.BoundedFormula.realize_mapTermRel_add_castLe + theorem FirstOrder.Language.BoundedFormula.realize_mapTermRel_id + theorem FirstOrder.Language.BoundedFormula.realize_not + theorem FirstOrder.Language.BoundedFormula.realize_rel + theorem FirstOrder.Language.BoundedFormula.realize_relabel + theorem FirstOrder.Language.BoundedFormula.realize_relabelEquiv + theorem FirstOrder.Language.BoundedFormula.realize_rel₁ + theorem FirstOrder.Language.BoundedFormula.realize_rel₂ + theorem FirstOrder.Language.BoundedFormula.realize_restrictFreeVar + theorem FirstOrder.Language.BoundedFormula.realize_subst + theorem FirstOrder.Language.BoundedFormula.realize_sup + theorem FirstOrder.Language.BoundedFormula.realize_toFormula + theorem FirstOrder.Language.BoundedFormula.realize_toPrenex + theorem FirstOrder.Language.BoundedFormula.realize_toPrenexImp + theorem FirstOrder.Language.BoundedFormula.realize_toPrenexImpRight + theorem FirstOrder.Language.BoundedFormula.realize_top + theorem FirstOrder.Language.ElementarilyEquivalent.completeTheory_eq + theorem FirstOrder.Language.ElementarilyEquivalent.infinite + theorem FirstOrder.Language.ElementarilyEquivalent.infinite_iff + theorem FirstOrder.Language.ElementarilyEquivalent.nonempty + theorem FirstOrder.Language.ElementarilyEquivalent.nonempty_iff + theorem FirstOrder.Language.ElementarilyEquivalent.realize_sentence + theorem FirstOrder.Language.ElementarilyEquivalent.theory_model + theorem FirstOrder.Language.ElementarilyEquivalent.theory_model_iff + def FirstOrder.Language.ElementarilyEquivalent + theorem FirstOrder.Language.Embedding.realize_term + theorem FirstOrder.Language.Equiv.elementarilyEquivalent + theorem FirstOrder.Language.Equiv.realize_boundedFormula + theorem FirstOrder.Language.Equiv.realize_formula + theorem FirstOrder.Language.Equiv.realize_sentence + theorem FirstOrder.Language.Equiv.realize_term + theorem FirstOrder.Language.Equiv.theory_model + theorem FirstOrder.Language.Formula.realize_bot + theorem FirstOrder.Language.Formula.realize_equal + theorem FirstOrder.Language.Formula.realize_equivSentence + theorem FirstOrder.Language.Formula.realize_equivSentence_symm + theorem FirstOrder.Language.Formula.realize_equivSentence_symm_con + theorem FirstOrder.Language.Formula.realize_graph + theorem FirstOrder.Language.Formula.realize_iff + theorem FirstOrder.Language.Formula.realize_imp + theorem FirstOrder.Language.Formula.realize_inf + theorem FirstOrder.Language.Formula.realize_not + theorem FirstOrder.Language.Formula.realize_rel + theorem FirstOrder.Language.Formula.realize_relabel + theorem FirstOrder.Language.Formula.realize_relabel_sum_inr + theorem FirstOrder.Language.Formula.realize_rel₁ + theorem FirstOrder.Language.Formula.realize_rel₂ + theorem FirstOrder.Language.Formula.realize_sup + theorem FirstOrder.Language.Formula.realize_top + theorem FirstOrder.Language.Hom.realize_term + theorem FirstOrder.Language.LHom.onTheory_model + theorem FirstOrder.Language.LHom.realize_onBoundedFormula + theorem FirstOrder.Language.LHom.realize_onFormula + theorem FirstOrder.Language.LHom.realize_onSentence + theorem FirstOrder.Language.LHom.realize_onTerm + theorem FirstOrder.Language.LHom.setOf_realize_onFormula + theorem FirstOrder.Language.Relations.realize_antisymmetric + theorem FirstOrder.Language.Relations.realize_irreflexive + theorem FirstOrder.Language.Relations.realize_reflexive + theorem FirstOrder.Language.Relations.realize_symmetric + theorem FirstOrder.Language.Relations.realize_total + theorem FirstOrder.Language.Relations.realize_transitive + theorem FirstOrder.Language.Sentence.realize_cardGe + theorem FirstOrder.Language.Sentence.realize_not + def FirstOrder.Language.Term.realize + theorem FirstOrder.Language.Term.realize_con + theorem FirstOrder.Language.Term.realize_constants + theorem FirstOrder.Language.Term.realize_constantsToVars + theorem FirstOrder.Language.Term.realize_constantsVarsEquivLeft + theorem FirstOrder.Language.Term.realize_func + theorem FirstOrder.Language.Term.realize_functions_apply₁ + theorem FirstOrder.Language.Term.realize_functions_apply₂ + theorem FirstOrder.Language.Term.realize_liftAt + theorem FirstOrder.Language.Term.realize_relabel + theorem FirstOrder.Language.Term.realize_restrictVar + theorem FirstOrder.Language.Term.realize_restrictVarLeft + theorem FirstOrder.Language.Term.realize_subst + theorem FirstOrder.Language.Term.realize_var + theorem FirstOrder.Language.Term.realize_varsToConstants + theorem FirstOrder.Language.Theory.CompleteTheory.subset + theorem FirstOrder.Language.Theory.Model.mono + theorem FirstOrder.Language.Theory.Model.union + theorem FirstOrder.Language.Theory.model_iff + theorem FirstOrder.Language.Theory.model_iff_subset_completeTheory + theorem FirstOrder.Language.Theory.model_singleton_iff + theorem FirstOrder.Language.Theory.model_union_iff + theorem FirstOrder.Language.Theory.realize_sentence_of_mem + theorem FirstOrder.Language.card_le_of_model_distinctConstantsTheory + def FirstOrder.Language.completeTheory + theorem FirstOrder.Language.elementarilyEquivalent_iff + theorem FirstOrder.Language.mem_completeTheory + theorem FirstOrder.Language.model_distinctConstantsTheory + theorem FirstOrder.Language.model_infiniteTheory_iff + theorem FirstOrder.Language.model_nonemptyTheory_iff + theorem FirstOrder.Language.realize_iff_of_model_completeTheory 2023-05-12 14:43:11 1549625 feat: port CategoryTheory.Idempotents.Biproducts (#3926) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Idempotents/Biproducts.lean + def CategoryTheory.Idempotents.Karoubi.Biproducts.bicone + def CategoryTheory.Idempotents.Karoubi.complement + def CategoryTheory.Idempotents.Karoubi.decomposition + theorem CategoryTheory.Idempotents.Karoubi.karoubi_hasFiniteBiproducts Modified Mathlib/CategoryTheory/Idempotents/Karoubi.lean 2023-05-12 14:43:09 0e1376f feat: port CategoryTheory.Abelian.Generator (#3924) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Abelian/Generator.lean + theorem CategoryTheory.Abelian.has_injective_coseparator + theorem CategoryTheory.Abelian.has_projective_separator 2023-05-12 14:43:08 b29921c feat: port Algebra.Modeq (#3921) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/GroupPower/Lemmas.lean +/- theorem Int.cast_mul_eq_zsmul_cast Added Mathlib/Algebra/ModEq.lean + theorem AddCommGroup.ModEq.trans + def AddCommGroup.ModEq + theorem AddCommGroup.add_modEq_left + theorem AddCommGroup.add_modEq_right + theorem AddCommGroup.add_nsmul_modEq + theorem AddCommGroup.add_zsmul_modEq + theorem AddCommGroup.int_cast_modEq_int_cast + theorem AddCommGroup.modEq_comm + theorem AddCommGroup.modEq_iff_eq_add_zsmul + theorem AddCommGroup.modEq_iff_eq_mod_zmultiples + theorem AddCommGroup.modEq_iff_int_modEq + theorem AddCommGroup.modEq_neg + theorem AddCommGroup.modEq_refl + theorem AddCommGroup.modEq_rfl + theorem AddCommGroup.modEq_sub + theorem AddCommGroup.modEq_sub_iff_add_modEq' + theorem AddCommGroup.modEq_sub_iff_add_modEq + theorem AddCommGroup.modEq_zero + theorem AddCommGroup.nat_cast_modEq_nat_cast + theorem AddCommGroup.neg_modEq_neg + theorem AddCommGroup.not_modEq_iff_ne_add_zsmul + theorem AddCommGroup.not_modEq_iff_ne_mod_zmultiples + theorem AddCommGroup.nsmul_add_modEq + theorem AddCommGroup.nsmul_modEq_nsmul + theorem AddCommGroup.self_modEq_zero + theorem AddCommGroup.sub_modEq_iff_modEq_add' + theorem AddCommGroup.sub_modEq_iff_modEq_add + theorem AddCommGroup.sub_modEq_zero + theorem AddCommGroup.zsmul_add_modEq + theorem AddCommGroup.zsmul_modEq_zero + theorem AddCommGroup.zsmul_modEq_zsmul 2023-05-12 14:23:07 0b1f387 feat: port Algebra.Homology.ShortExact.Abelian (#3940) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Homology/ShortExact/Abelian.lean + def CategoryTheory.LeftSplit.splitting + def CategoryTheory.RightSplit.splitting + def CategoryTheory.Splitting.mk'' + def CategoryTheory.Splitting.mk' + theorem CategoryTheory.isIso_of_shortExact_of_isIso_of_isIso 2023-05-12 11:43:07 237c33e chore: refactor of concrete categories (#3900) I think the ports * https://github.com/leanprover-community/mathlib4/pull/2902 (MonCat) * https://github.com/leanprover-community/mathlib4/pull/3036 (GroupCat) * https://github.com/leanprover-community/mathlib4/pull/3260 (ModuleCat) didn't quite get things right, and also have some variation between them. This PR tries to straighten things out. Major changes: * Have the coercion to type be via `X.\a`, and put attribute `@[coe]` on this. * Make sure the coercion from morphisms to functions means that simp lemmas about the underlying bundled morphisms apply directly. * This means we drop lemmas like ``` lemma Hom.map_mul {X Y : MonCat} (f : X ⟶ Y) (x y : X) : ((forget MonCat).map f) (x * y) = f x * f y ``` * But at the expense of adding lemmas like ``` lemma coe_comp {X Y Z : MonCat} {f : X ⟶ Y} {g : Y ⟶ Z} : (f ≫ g : X → Z) = g ∘ f := rfl ``` Overall I'm pretty happy, and it allows me to unstick the long stuck https://github.com/leanprover-community/mathlib4/pull/3105. This is not everything I want to do to refactor these files, but once I was satisfied that I can move forward with RingCat, I want to get this merged so we can unblock porting progress. I'll promise to come back to this soon! :-) ESTIMATED CHANGES Modified Mathlib/Algebra/Category/GroupCat/Basic.lean - theorem CommGroupCat.Hom.map_mul - theorem CommGroupCat.Hom.map_one - def CommGroupCat.Hom.mk - theorem CommGroupCat.Hom.mk_apply + theorem CommGroupCat.coe_comp + theorem CommGroupCat.coe_id - theorem CommGroupCat.comp_apply +/- theorem CommGroupCat.ext + theorem CommGroupCat.forget_map - theorem CommGroupCat.id_apply +/- theorem CommGroupCat.one_apply - theorem GroupCat.Hom.map_mul - theorem GroupCat.Hom.map_one - def GroupCat.Hom.mk - theorem GroupCat.Hom.mk_apply + theorem GroupCat.coe_comp + theorem GroupCat.coe_id - theorem GroupCat.comp_apply +/- theorem GroupCat.ext + theorem GroupCat.forget_map - theorem GroupCat.id_apply +/- theorem GroupCat.one_apply Modified Mathlib/Algebra/Category/GroupCat/EpiMono.lean Modified Mathlib/Algebra/Category/GroupCat/Zero.lean Modified Mathlib/Algebra/Category/ModuleCat/Basic.lean + theorem ModuleCat.ext - theorem ModuleCat.hom_ext Modified Mathlib/Algebra/Category/ModuleCat/Tannaka.lean Modified Mathlib/Algebra/Category/MonCat/Basic.lean - theorem CommMonCat.Hom.map_mul - theorem CommMonCat.Hom.map_one - def CommMonCat.Hom.mk + theorem CommMonCat.coe_comp + theorem CommMonCat.coe_id + theorem CommMonCat.ext + theorem CommMonCat.forget_map +/- def CommMonCat.ofHom - theorem MonCat.Hom.map_mul - theorem MonCat.Hom.map_one - def MonCat.Hom.mk + theorem MonCat.coe_comp + theorem MonCat.coe_id +/- theorem MonCat.coe_of + theorem MonCat.ext + theorem MonCat.forget_map +/- def MonCat.ofHom Modified Mathlib/AlgebraicTopology/SimplexCategory.lean Modified Mathlib/AlgebraicTopology/TopologicalSimplex.lean Modified Mathlib/CategoryTheory/Category/Bipointed.lean Modified Mathlib/CategoryTheory/Category/Pointed.lean Modified Mathlib/CategoryTheory/ConcreteCategory/Basic.lean - theorem CategoryTheory.forget_map_eq_coe - theorem CategoryTheory.forget_obj_eq_coe Modified Mathlib/CategoryTheory/ConcreteCategory/Bundled.lean Modified Mathlib/CategoryTheory/ConcreteCategory/BundledHom.lean Modified Mathlib/CategoryTheory/GradedObject.lean Modified Mathlib/CategoryTheory/Preadditive/Yoneda/Basic.lean Modified Mathlib/Order/Category/NonemptyFinLinOrdCat.lean Modified Mathlib/Tactic/Elementwise.lean Modified Mathlib/Topology/Category/CompHaus/Projective.lean Modified Mathlib/Topology/Category/Profinite/Projective.lean Modified Mathlib/Topology/Category/Top/Basic.lean 2023-05-12 08:51:17 30768e3 feat: port CategoryTheory.Abelian.DiagramLemmas.Four (#3935) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Abelian/DiagramLemmas/Four.lean + theorem CategoryTheory.Abelian.epi_of_epi_of_epi_of_mono + theorem CategoryTheory.Abelian.isIso_of_isIso_of_isIso_of_isIso_of_isIso + theorem CategoryTheory.Abelian.mono_of_epi_of_mono_of_mono 2023-05-12 05:54:23 797788a feat: port Data.IsROrC.Basic (#3654) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Data/IsROrC/Attr.lean Added Mathlib/Data/IsROrC/Basic.lean + theorem IsROrC.I_im' + theorem IsROrC.I_im + theorem IsROrC.I_mul_I + theorem IsROrC.I_mul_I_of_nonzero + theorem IsROrC.I_mul_re + theorem IsROrC.I_re + theorem IsROrC.I_to_real + theorem IsROrC.abs_im_div_norm_le_one + theorem IsROrC.abs_im_le_norm + theorem IsROrC.abs_re_div_norm_le_one + theorem IsROrC.abs_re_le_norm + theorem IsROrC.add_conj + theorem IsROrC.algebraMap_eq_ofReal + theorem IsROrC.bit0_im + theorem IsROrC.bit0_re + theorem IsROrC.bit1_im + theorem IsROrC.bit1_re + def IsROrC.conjAe + theorem IsROrC.conjAe_coe + theorem IsROrC.conjCle_apply + theorem IsROrC.conjCle_coe + theorem IsROrC.conjLie_apply + theorem IsROrC.conj_I + theorem IsROrC.conj_bit0 + theorem IsROrC.conj_bit1 + theorem IsROrC.conj_eq_iff_im + theorem IsROrC.conj_eq_iff_re + theorem IsROrC.conj_eq_iff_real + theorem IsROrC.conj_eq_re_sub_im + theorem IsROrC.conj_im + theorem IsROrC.conj_inv + theorem IsROrC.conj_mul + theorem IsROrC.conj_neg_I + theorem IsROrC.conj_ofReal + theorem IsROrC.conj_re + theorem IsROrC.conj_smul + theorem IsROrC.conj_to_real + theorem IsROrC.continuous_conj + theorem IsROrC.continuous_im + theorem IsROrC.continuous_normSq + theorem IsROrC.continuous_ofReal + theorem IsROrC.continuous_re + theorem IsROrC.div_I + theorem IsROrC.div_im + theorem IsROrC.div_re + theorem IsROrC.div_re_ofReal + theorem IsROrC.ext + theorem IsROrC.ext_iff + theorem IsROrC.imClm_apply + theorem IsROrC.imClm_coe + def IsROrC.imLm + theorem IsROrC.imLm_coe + theorem IsROrC.im_eq_conj_sub + theorem IsROrC.im_eq_zero_of_le + theorem IsROrC.im_le_norm + theorem IsROrC.im_sq_le_normSq + theorem IsROrC.im_to_real + theorem IsROrC.intCast_im + theorem IsROrC.intCast_re + theorem IsROrC.inv_I + theorem IsROrC.inv_def + theorem IsROrC.inv_im + theorem IsROrC.inv_re + theorem IsROrC.isCauSeq_im + theorem IsROrC.isCauSeq_norm + theorem IsROrC.isCauSeq_re + theorem IsROrC.is_real_TFAE + theorem IsROrC.mul_conj + theorem IsROrC.mul_im + theorem IsROrC.mul_re + theorem IsROrC.mul_self_norm + theorem IsROrC.natCast_im + theorem IsROrC.natCast_re + def IsROrC.normSq + theorem IsROrC.normSq_add + theorem IsROrC.normSq_apply + theorem IsROrC.normSq_conj + theorem IsROrC.normSq_div + theorem IsROrC.normSq_eq_def' + theorem IsROrC.normSq_eq_zero + theorem IsROrC.normSq_inv + theorem IsROrC.normSq_mul + theorem IsROrC.normSq_neg + theorem IsROrC.normSq_nonneg + theorem IsROrC.normSq_one + theorem IsROrC.normSq_pos + theorem IsROrC.normSq_sub + theorem IsROrC.normSq_to_real + theorem IsROrC.normSq_zero + theorem IsROrC.norm_conj + theorem IsROrC.norm_im_le_norm + theorem IsROrC.norm_natCast + theorem IsROrC.norm_ofNat + theorem IsROrC.norm_ofReal + theorem IsROrC.norm_of_nonneg + theorem IsROrC.norm_re_le_norm + theorem IsROrC.norm_sq_eq_def + theorem IsROrC.norm_sq_re_add_conj + theorem IsROrC.norm_sq_re_conj_add + theorem IsROrC.norm_two + theorem IsROrC.ofNat_im + theorem IsROrC.ofNat_mul_im + theorem IsROrC.ofNat_mul_re + theorem IsROrC.ofNat_re + theorem IsROrC.ofRealAm_coe + theorem IsROrC.ofRealClm_apply + theorem IsROrC.ofRealClm_coe + theorem IsROrC.ofRealLi_apply + theorem IsROrC.ofReal_add + theorem IsROrC.ofReal_alg + theorem IsROrC.ofReal_bit0 + theorem IsROrC.ofReal_bit1 + theorem IsROrC.ofReal_div + theorem IsROrC.ofReal_eq_zero + theorem IsROrC.ofReal_finsupp_prod + theorem IsROrC.ofReal_finsupp_sum + theorem IsROrC.ofReal_im + theorem IsROrC.ofReal_inj + theorem IsROrC.ofReal_injective + theorem IsROrC.ofReal_intCast + theorem IsROrC.ofReal_inv + theorem IsROrC.ofReal_mul + theorem IsROrC.ofReal_mul_im + theorem IsROrC.ofReal_mul_re + theorem IsROrC.ofReal_natCast + theorem IsROrC.ofReal_ne_zero + theorem IsROrC.ofReal_neg + theorem IsROrC.ofReal_ofNat + theorem IsROrC.ofReal_one + theorem IsROrC.ofReal_pow + theorem IsROrC.ofReal_prod + theorem IsROrC.ofReal_ratCast + theorem IsROrC.ofReal_re + theorem IsROrC.ofReal_real_eq_id + theorem IsROrC.ofReal_sub + theorem IsROrC.ofReal_sum + theorem IsROrC.ofReal_zero + theorem IsROrC.ofReal_zpow + theorem IsROrC.one_im + theorem IsROrC.one_re + theorem IsROrC.ratCast_im + theorem IsROrC.ratCast_re + theorem IsROrC.reClm_apply + theorem IsROrC.reClm_coe + def IsROrC.reLm + theorem IsROrC.reLm_coe + theorem IsROrC.re_add_im + theorem IsROrC.re_eq_add_conj + theorem IsROrC.re_eq_norm_of_mul_conj + theorem IsROrC.re_eq_self_of_le + theorem IsROrC.re_le_norm + theorem IsROrC.re_sq_le_normSq + theorem IsROrC.re_to_real + theorem IsROrC.real_smul_eq_coe_mul + theorem IsROrC.real_smul_eq_coe_smul + theorem IsROrC.real_smul_ofReal + theorem IsROrC.smul_im + theorem IsROrC.smul_re + theorem IsROrC.sqrt_normSq_eq_norm + theorem IsROrC.star_def + theorem IsROrC.sub_conj + theorem IsROrC.zero_re' Modified Mathlib/Mathport/Rename.lean 2023-05-12 05:31:38 0ace803 feat: Port Algebra.Ring.BooleanRing (#2104) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Ring/BooleanRing.lean + def AsBoolAlg + def AsBoolRing + def BooleanAlgebra.toBooleanRing + def BooleanRing.inf + theorem BooleanRing.inf_assoc + theorem BooleanRing.inf_comm + theorem BooleanRing.inf_sup_self + theorem BooleanRing.le_sup_inf + theorem BooleanRing.le_sup_inf_aux + def BooleanRing.sup + theorem BooleanRing.sup_assoc + theorem BooleanRing.sup_comm + theorem BooleanRing.sup_inf_self + def BooleanRing.toBooleanAlgebra + theorem BoundedLatticeHom.asBoolRing_comp + theorem BoundedLatticeHom.asBoolRing_id + def GeneralizedBooleanAlgebra.toNonUnitalCommRing + def OrderIso.asBoolAlgAsBoolRing + def RingEquiv.asBoolRingAsBoolAlg + theorem RingHom.asBoolAlg_comp + theorem RingHom.asBoolAlg_id + theorem add_eq_zero' + theorem add_self + theorem mul_add_mul + theorem mul_one_add_self + theorem mul_self + theorem neg_eq + def ofBoolAlg + theorem ofBoolAlg_bot + theorem ofBoolAlg_compl + theorem ofBoolAlg_inf + theorem ofBoolAlg_inj + theorem ofBoolAlg_mul_ofBoolAlg_eq_left_iff + theorem ofBoolAlg_sdiff + theorem ofBoolAlg_sup + theorem ofBoolAlg_symmDiff + theorem ofBoolAlg_symm_eq + theorem ofBoolAlg_toBoolAlg + theorem ofBoolAlg_top + def ofBoolRing + theorem ofBoolRing_add + theorem ofBoolRing_inj + theorem ofBoolRing_le_ofBoolRing_iff + theorem ofBoolRing_mul + theorem ofBoolRing_neg + theorem ofBoolRing_one + theorem ofBoolRing_sub + theorem ofBoolRing_symm_eq + theorem ofBoolRing_toBoolRing + theorem ofBoolRing_zero + theorem sub_eq_add + def toBoolAlg + theorem toBoolAlg_add + theorem toBoolAlg_add_add_mul + theorem toBoolAlg_inj + theorem toBoolAlg_mul + theorem toBoolAlg_ofBoolAlg + theorem toBoolAlg_one + theorem toBoolAlg_symm_eq + theorem toBoolAlg_zero + def toBoolRing + theorem toBoolRing_bot + theorem toBoolRing_inf + theorem toBoolRing_inj + theorem toBoolRing_ofBoolRing + theorem toBoolRing_symmDiff + theorem toBoolRing_symm_eq + theorem toBoolRing_top 2023-05-12 02:52:23 c01ced8 feat: port Analysis.NormedSpace.Units (#3856) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/GroupWithZero/Units/Basic.lean Added Mathlib/Analysis/NormedSpace/Units.lean + theorem Ideal.IsMaximal.closure_eq + theorem Ideal.closure_ne_top + theorem Ideal.eq_top_of_norm_lt_one + theorem NormedRing.inverse_add + theorem NormedRing.inverse_add_norm + theorem NormedRing.inverse_add_norm_diff_first_order + theorem NormedRing.inverse_add_norm_diff_nth_order + theorem NormedRing.inverse_add_norm_diff_second_order + theorem NormedRing.inverse_add_nth_order + theorem NormedRing.inverse_continuousAt + theorem NormedRing.inverse_one_sub + theorem NormedRing.inverse_one_sub_norm + theorem NormedRing.inverse_one_sub_nth_order' + theorem NormedRing.inverse_one_sub_nth_order + def Units.add + theorem Units.isOpenMap_val + def Units.ofNearby + def Units.oneSub + theorem Units.openEmbedding_val + theorem nonunits.subset_compl_ball Modified Mathlib/Topology/Algebra/Constructions.lean + theorem Units.embedding_val_mk' 2023-05-11 22:37:06 6b5c902 feat: port CategoryTheory.Sites.CoverLifting (#3898) Mostly straightforward. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Sites/CoverLifting.lean + structure CategoryTheory.CoverLifting + def CategoryTheory.RanIsSheafOfCoverLifting.getSection + theorem CategoryTheory.RanIsSheafOfCoverLifting.getSection_commute + theorem CategoryTheory.RanIsSheafOfCoverLifting.getSection_isAmalgamation + theorem CategoryTheory.RanIsSheafOfCoverLifting.getSection_is_unique + def CategoryTheory.RanIsSheafOfCoverLifting.gluedLimitCone + theorem CategoryTheory.RanIsSheafOfCoverLifting.gluedLimitCone_π_app + def CategoryTheory.RanIsSheafOfCoverLifting.gluedSection + theorem CategoryTheory.RanIsSheafOfCoverLifting.gluedSection_isAmalgamation + theorem CategoryTheory.RanIsSheafOfCoverLifting.gluedSection_is_unique + theorem CategoryTheory.RanIsSheafOfCoverLifting.helper + def CategoryTheory.RanIsSheafOfCoverLifting.pulledbackFamily + theorem CategoryTheory.RanIsSheafOfCoverLifting.pulledbackFamily_apply + def CategoryTheory.Sites.copullback + theorem CategoryTheory.compCoverLifting + theorem CategoryTheory.idCoverLifting + theorem CategoryTheory.ran_isSheaf_of_coverLifting 2023-05-11 17:49:05 e122338 chore: forward-port leanprover-community/mathlib#18958 (#3920) Match https://github.com/leanprover-community/mathlib/pull/18958 * [`algebra.group.basic`@`84771a9f5f0bd5e5d6218811556508ddf476dcbd`..`a07d750983b94c530ab69a726862c2ab6802b38c`](https://leanprover-community.github.io/mathlib-port-status/file/algebra/group/basic?range=84771a9f5f0bd5e5d6218811556508ddf476dcbd..a07d750983b94c530ab69a726862c2ab6802b38c) * [`algebra.group_power.lemmas`@`e655e4ea5c6d02854696f97494997ba4c31be802`..`a07d750983b94c530ab69a726862c2ab6802b38c`](https://leanprover-community.github.io/mathlib-port-status/file/algebra/group_power/lemmas?range=e655e4ea5c6d02854696f97494997ba4c31be802..a07d750983b94c530ab69a726862c2ab6802b38c) * [`algebra.hom.units`@`dc6c365e751e34d100e80fe6e314c3c3e0fd2988`..`a07d750983b94c530ab69a726862c2ab6802b38c`](https://leanprover-community.github.io/mathlib-port-status/file/algebra/hom/units?range=dc6c365e751e34d100e80fe6e314c3c3e0fd2988..a07d750983b94c530ab69a726862c2ab6802b38c) ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Basic.lean + theorem div_mul_cancel''' Modified Mathlib/Algebra/GroupPower/Lemmas.lean + theorem Int.cast_mul_eq_zsmul_cast Modified Mathlib/Algebra/Hom/Units.lean 2023-05-11 14:58:43 791d8dd feat: port Algebra.Module.Injective (#3873) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Module/Injective.lean + theorem Module.Baer.ExtensionOf.ext + theorem Module.Baer.ExtensionOf.ext_iff + theorem Module.Baer.ExtensionOf.le_max + def Module.Baer.ExtensionOf.max + structure Module.Baer.ExtensionOf + theorem Module.Baer.ExtensionOfMaxAdjoin.eqn + def Module.Baer.ExtensionOfMaxAdjoin.extendIdealTo + theorem Module.Baer.ExtensionOfMaxAdjoin.extendIdealTo_eq + theorem Module.Baer.ExtensionOfMaxAdjoin.extendIdealTo_is_extension + theorem Module.Baer.ExtensionOfMaxAdjoin.extendIdealTo_wd' + theorem Module.Baer.ExtensionOfMaxAdjoin.extendIdealTo_wd + def Module.Baer.ExtensionOfMaxAdjoin.extensionToFun + theorem Module.Baer.ExtensionOfMaxAdjoin.extensionToFun_wd + def Module.Baer.ExtensionOfMaxAdjoin.fst + def Module.Baer.ExtensionOfMaxAdjoin.ideal + def Module.Baer.ExtensionOfMaxAdjoin.idealTo + def Module.Baer.ExtensionOfMaxAdjoin.snd + theorem Module.Baer.chain_linearPMap_of_chain_extensionOf + def Module.Baer.extensionOfMax + def Module.Baer.extensionOfMaxAdjoin + theorem Module.Baer.extensionOfMax_is_max + theorem Module.Baer.extensionOfMax_le + theorem Module.Baer.extensionOfMax_to_submodule_eq_top + def Module.Baer.supExtensionOfMaxSingleton + def Module.Baer + theorem Module.injective_iff_injective_object + theorem Module.injective_module_of_injective_object + theorem Module.injective_object_of_injective_module 2023-05-11 11:48:08 cc90075 chore: make sorry only a warning again in the editor (#3919) Sorry everyone, my fault that `sorry` has been an error in the editor the past two weeks. I merged https://github.com/leanprover-community/mathlib4/pull/3556 prematurely. This PR leaves `sorry` as an error during `lake build` (and when rebuilding dependencies in VSCode), but in your active editor it is only a warning. ESTIMATED CHANGES Modified lakefile.lean + def moreServerArgs 2023-05-11 10:44:54 eff4459 feat: port Probability.CondCount (#3889) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Probability/CondCount.lean + def ProbabilityTheory.condCount + theorem ProbabilityTheory.condCount_add_compl_eq + theorem ProbabilityTheory.condCount_compl + theorem ProbabilityTheory.condCount_disjoint_union + theorem ProbabilityTheory.condCount_empty + theorem ProbabilityTheory.condCount_empty_meas + theorem ProbabilityTheory.condCount_eq_one_of + theorem ProbabilityTheory.condCount_eq_zero_iff + theorem ProbabilityTheory.condCount_inter' + theorem ProbabilityTheory.condCount_inter + theorem ProbabilityTheory.condCount_inter_self + theorem ProbabilityTheory.condCount_of_univ + theorem ProbabilityTheory.condCount_probabilityMeasure + theorem ProbabilityTheory.condCount_self + theorem ProbabilityTheory.condCount_singleton + theorem ProbabilityTheory.condCount_union + theorem ProbabilityTheory.condCount_univ + theorem ProbabilityTheory.finite_of_condCount_ne_zero + theorem ProbabilityTheory.pred_true_of_condCount_eq_one 2023-05-11 10:01:30 9d9de69 feat: port Topology.ContinuousFunction.Polynomial (#3881) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Topology/ContinuousFunction/Polynomial.lean + theorem Polynomial.aeval_continuousMap_apply + def Polynomial.toContinuousMap + def Polynomial.toContinuousMapAlgHom + def Polynomial.toContinuousMapOn + def Polynomial.toContinuousMapOnAlgHom + theorem polynomialFunctions.comap_compRightAlgHom_iccHomeoI + def polynomialFunctions + theorem polynomialFunctions_coe + theorem polynomialFunctions_separatesPoints 2023-05-11 10:01:29 1a5bf78 feat: port Probability.ProbabilityMassFunction.Monad (#3876) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Probability/ProbabilityMassFunction/Monad.lean + def Pmf.bind + def Pmf.bindOnSupport + theorem Pmf.bindOnSupport_apply + theorem Pmf.bindOnSupport_bindOnSupport + theorem Pmf.bindOnSupport_comm + theorem Pmf.bindOnSupport_eq_bind + theorem Pmf.bindOnSupport_eq_zero_iff + theorem Pmf.bindOnSupport_pure + theorem Pmf.bind_apply + theorem Pmf.bind_bind + theorem Pmf.bind_comm + theorem Pmf.bind_const + theorem Pmf.bind_pure + theorem Pmf.mem_support_bindOnSupport_iff + theorem Pmf.mem_support_bind_iff + theorem Pmf.mem_support_pure_iff + def Pmf.pure + theorem Pmf.pure_apply + theorem Pmf.pure_apply_of_ne + theorem Pmf.pure_apply_self + theorem Pmf.pure_bind + theorem Pmf.pure_bindOnSupport + theorem Pmf.support_bind + theorem Pmf.support_bindOnSupport + theorem Pmf.support_pure + theorem Pmf.toMeasure_bindOnSupport_apply + theorem Pmf.toMeasure_bind_apply + theorem Pmf.toMeasure_pure + theorem Pmf.toMeasure_pure_apply + theorem Pmf.toOuterMeasure_bindOnSupport_apply + theorem Pmf.toOuterMeasure_bind_apply + theorem Pmf.toOuterMeasure_pure_apply + theorem Pmf.toPmf_dirac 2023-05-11 08:19:09 739f7dd feat: port MeasureTheory.Group.Pointwise (#3914) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/MeasureTheory/Group/Pointwise.lean + theorem MeasurableSet.const_smul + theorem MeasurableSet.const_smul_of_ne_zero + theorem MeasurableSet.const_smul₀ 2023-05-11 05:53:58 5ed65e1 feat: port MeasureTheory.Group.MeasurableEquiv (#3912) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/MeasureTheory/Group/MeasurableEquiv.lean + theorem MeasurableEquiv.coe_mulLeft + theorem MeasurableEquiv.coe_mulLeft₀ + theorem MeasurableEquiv.coe_mulRight + theorem MeasurableEquiv.coe_mulRight₀ + theorem MeasurableEquiv.coe_smul₀ + def MeasurableEquiv.divLeft + def MeasurableEquiv.divRight + def MeasurableEquiv.inv + def MeasurableEquiv.mulLeft + def MeasurableEquiv.mulLeft₀ + def MeasurableEquiv.mulRight + def MeasurableEquiv.mulRight₀ + def MeasurableEquiv.smul + def MeasurableEquiv.smul₀ + theorem MeasurableEquiv.symm_inv + theorem MeasurableEquiv.symm_mulLeft + theorem MeasurableEquiv.symm_mulLeft₀ + theorem MeasurableEquiv.symm_mulRight + theorem MeasurableEquiv.symm_mulRight₀ + theorem MeasurableEquiv.symm_smul + theorem MeasurableEquiv.symm_smul₀ + theorem MeasurableEquiv.toEquiv_mulLeft + theorem MeasurableEquiv.toEquiv_mulLeft₀ + theorem MeasurableEquiv.toEquiv_mulRight + theorem MeasurableEquiv.toEquiv_mulRight₀ + theorem measurableEmbedding_const_smul + theorem measurableEmbedding_const_smul₀ + theorem measurableEmbedding_mulLeft + theorem measurableEmbedding_mulLeft₀ + theorem measurableEmbedding_mulRight + theorem measurableEmbedding_mulRight₀ 2023-05-11 05:53:57 799bb95 feat: port CategoryTheory.Sites.Pushforward (#3899) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Sites/Pushforward.lean + def CategoryTheory.Sites.pullbackPushforwardAdjunction + def CategoryTheory.Sites.pushforward 2023-05-11 05:53:56 f80d3b8 feat: port CategoryTheory.Preadditive.Yoneda.Injective (#3891) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Preadditive/Yoneda/Injective.lean + theorem CategoryTheory.Injective.injective_iff_preservesEpimorphisms_preadditiveYoneda_obj + theorem CategoryTheory.Injective.injective_iff_preservesEpimorphisms_preadditive_yoneda_obj' 2023-05-11 05:53:55 c894771 feat: port Computability.TMToPartrec (#3864) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Computability/TMToPartrec.lean + def Turing.PartrecToTM2.Cfg' + inductive Turing.PartrecToTM2.Cont' + def Turing.PartrecToTM2.K'.elim + theorem Turing.PartrecToTM2.K'.elim_aux + theorem Turing.PartrecToTM2.K'.elim_main + theorem Turing.PartrecToTM2.K'.elim_rev + theorem Turing.PartrecToTM2.K'.elim_stack + theorem Turing.PartrecToTM2.K'.elim_update_aux + theorem Turing.PartrecToTM2.K'.elim_update_main + theorem Turing.PartrecToTM2.K'.elim_update_rev + theorem Turing.PartrecToTM2.K'.elim_update_stack + inductive Turing.PartrecToTM2.K' + def Turing.PartrecToTM2.Stmt' + def Turing.PartrecToTM2.Supports + def Turing.PartrecToTM2.TrCfg + theorem Turing.PartrecToTM2.clear_ok + def Turing.PartrecToTM2.codeSupp' + theorem Turing.PartrecToTM2.codeSupp'_self + theorem Turing.PartrecToTM2.codeSupp'_supports + def Turing.PartrecToTM2.codeSupp + theorem Turing.PartrecToTM2.codeSupp_case + theorem Turing.PartrecToTM2.codeSupp_comp + theorem Turing.PartrecToTM2.codeSupp_cons + theorem Turing.PartrecToTM2.codeSupp_fix + theorem Turing.PartrecToTM2.codeSupp_self + theorem Turing.PartrecToTM2.codeSupp_succ + theorem Turing.PartrecToTM2.codeSupp_supports + theorem Turing.PartrecToTM2.codeSupp_tail + theorem Turing.PartrecToTM2.codeSupp_zero + def Turing.PartrecToTM2.contStack + def Turing.PartrecToTM2.contSupp + theorem Turing.PartrecToTM2.contSupp_comp + theorem Turing.PartrecToTM2.contSupp_cons₁ + theorem Turing.PartrecToTM2.contSupp_cons₂ + theorem Turing.PartrecToTM2.contSupp_fix + theorem Turing.PartrecToTM2.contSupp_halt + theorem Turing.PartrecToTM2.contSupp_supports + theorem Turing.PartrecToTM2.copy_ok + def Turing.PartrecToTM2.halt + def Turing.PartrecToTM2.head + theorem Turing.PartrecToTM2.head_main_ok + theorem Turing.PartrecToTM2.head_stack_ok + theorem Turing.PartrecToTM2.head_supports + def Turing.PartrecToTM2.init + def Turing.PartrecToTM2.moveExcl + theorem Turing.PartrecToTM2.move_ok + def Turing.PartrecToTM2.move₂ + theorem Turing.PartrecToTM2.move₂_ok + def Turing.PartrecToTM2.natEnd + def Turing.PartrecToTM2.peek' + def Turing.PartrecToTM2.pop' + theorem Turing.PartrecToTM2.pred_ok + def Turing.PartrecToTM2.push' + theorem Turing.PartrecToTM2.ret_supports + def Turing.PartrecToTM2.splitAtPred + theorem Turing.PartrecToTM2.splitAtPred_eq + theorem Turing.PartrecToTM2.splitAtPred_false + theorem Turing.PartrecToTM2.succ_ok + theorem Turing.PartrecToTM2.supports_bunionᵢ + theorem Turing.PartrecToTM2.supports_insert + theorem Turing.PartrecToTM2.supports_singleton + theorem Turing.PartrecToTM2.supports_union + def Turing.PartrecToTM2.tr + def Turing.PartrecToTM2.trCont + def Turing.PartrecToTM2.trContStack + def Turing.PartrecToTM2.trLList + def Turing.PartrecToTM2.trList + theorem Turing.PartrecToTM2.trList_ne_consₗ + def Turing.PartrecToTM2.trNat + theorem Turing.PartrecToTM2.trNat_default + theorem Turing.PartrecToTM2.trNat_natEnd + theorem Turing.PartrecToTM2.trNat_zero + def Turing.PartrecToTM2.trNormal + theorem Turing.PartrecToTM2.trNormal_respects + theorem Turing.PartrecToTM2.trNormal_supports + def Turing.PartrecToTM2.trNum + theorem Turing.PartrecToTM2.trNum_natEnd + def Turing.PartrecToTM2.trPosNum + theorem Turing.PartrecToTM2.trPosNum_natEnd + def Turing.PartrecToTM2.trStmts₁ + theorem Turing.PartrecToTM2.trStmts₁_self + theorem Turing.PartrecToTM2.trStmts₁_supports' + theorem Turing.PartrecToTM2.trStmts₁_supports + theorem Turing.PartrecToTM2.trStmts₁_trans + theorem Turing.PartrecToTM2.tr_clear + theorem Turing.PartrecToTM2.tr_copy + theorem Turing.PartrecToTM2.tr_eval + theorem Turing.PartrecToTM2.tr_init + theorem Turing.PartrecToTM2.tr_move + theorem Turing.PartrecToTM2.tr_pred + theorem Turing.PartrecToTM2.tr_push + theorem Turing.PartrecToTM2.tr_read + theorem Turing.PartrecToTM2.tr_respects + theorem Turing.PartrecToTM2.tr_ret_comp + theorem Turing.PartrecToTM2.tr_ret_cons₁ + theorem Turing.PartrecToTM2.tr_ret_cons₂ + theorem Turing.PartrecToTM2.tr_ret_fix + theorem Turing.PartrecToTM2.tr_ret_halt + theorem Turing.PartrecToTM2.tr_ret_respects + theorem Turing.PartrecToTM2.tr_succ + theorem Turing.PartrecToTM2.tr_supports + def Turing.PartrecToTM2.unrev + theorem Turing.PartrecToTM2.unrev_ok + inductive Turing.PartrecToTM2.Γ' + def Turing.PartrecToTM2.Λ'.Supports + inductive Turing.PartrecToTM2.Λ' + def Turing.ToPartrec.Cfg.then + inductive Turing.ToPartrec.Cfg + theorem Turing.ToPartrec.Code.Ok.zero + def Turing.ToPartrec.Code.Ok + theorem Turing.ToPartrec.Code.case_eval + theorem Turing.ToPartrec.Code.comp_eval + theorem Turing.ToPartrec.Code.cons_eval + def Turing.ToPartrec.Code.eval + theorem Turing.ToPartrec.Code.exists_code.comp + theorem Turing.ToPartrec.Code.exists_code + theorem Turing.ToPartrec.Code.fix_eval + def Turing.ToPartrec.Code.head + theorem Turing.ToPartrec.Code.head_eval + def Turing.ToPartrec.Code.id + theorem Turing.ToPartrec.Code.id_eval + def Turing.ToPartrec.Code.nil + theorem Turing.ToPartrec.Code.nil_eval + def Turing.ToPartrec.Code.prec + def Turing.ToPartrec.Code.pred + theorem Turing.ToPartrec.Code.pred_eval + def Turing.ToPartrec.Code.rfind + theorem Turing.ToPartrec.Code.succ_eval + theorem Turing.ToPartrec.Code.tail_eval + theorem Turing.ToPartrec.Code.zero'_eval + def Turing.ToPartrec.Code.zero + theorem Turing.ToPartrec.Code.zero_eval + inductive Turing.ToPartrec.Code + def Turing.ToPartrec.Cont.eval + def Turing.ToPartrec.Cont.then + theorem Turing.ToPartrec.Cont.then_eval + inductive Turing.ToPartrec.Cont + theorem Turing.ToPartrec.code_is_ok + theorem Turing.ToPartrec.cont_eval_fix + def Turing.ToPartrec.step + theorem Turing.ToPartrec.stepNormal.is_ret + def Turing.ToPartrec.stepNormal + theorem Turing.ToPartrec.stepNormal_eval + theorem Turing.ToPartrec.stepNormal_then + def Turing.ToPartrec.stepRet + theorem Turing.ToPartrec.stepRet_eval + theorem Turing.ToPartrec.stepRet_then 2023-05-11 05:53:53 db6e42c feat: port Computability.Reduce (#3862) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Computability/Reduce.lean + theorem Computable.equiv₂ + theorem Computable.eqv + theorem ComputablePred.computable_of_manyOneReducible + theorem ComputablePred.computable_of_oneOneReducible + theorem Equiv.Computable.symm + theorem Equiv.Computable.trans + theorem ManyOneDegree.add_of + def ManyOneDegree.of + theorem ManyOneDegree.of_eq_of + theorem ManyOneDegree.of_le_of + def ManyOneDegree + theorem ManyOneEquiv.congr_left + theorem ManyOneEquiv.congr_right + theorem ManyOneEquiv.le_congr_left + theorem ManyOneEquiv.le_congr_right + theorem ManyOneEquiv.of_equiv + theorem ManyOneEquiv.symm + theorem ManyOneEquiv.trans + def ManyOneEquiv + theorem ManyOneReducible.mk + theorem ManyOneReducible.trans + def ManyOneReducible + theorem OneOneEquiv.congr_left + theorem OneOneEquiv.congr_right + theorem OneOneEquiv.le_congr_left + theorem OneOneEquiv.le_congr_right + theorem OneOneEquiv.of_equiv + theorem OneOneEquiv.symm + theorem OneOneEquiv.to_many_one + theorem OneOneEquiv.trans + def OneOneEquiv + theorem OneOneReducible.disjoin_left + theorem OneOneReducible.disjoin_right + theorem OneOneReducible.mk + theorem OneOneReducible.of_equiv + theorem OneOneReducible.of_equiv_symm + theorem OneOneReducible.to_many_one + theorem OneOneReducible.trans + def OneOneReducible + theorem Ulower.down_computable + theorem disjoin_le + theorem disjoin_manyOneReducible + theorem equivalence_of_manyOneEquiv + theorem equivalence_of_oneOneEquiv + theorem manyOneEquiv_refl + theorem manyOneEquiv_toNat + theorem manyOneEquiv_up + theorem manyOneReducible_refl + theorem manyOneReducible_toNat + theorem manyOneReducible_toNat_toNat + theorem oneOneEquiv_refl + theorem oneOneReducible_refl + theorem reflexive_manyOneReducible + theorem reflexive_oneOneReducible + def toNat + theorem toNat_manyOneEquiv + theorem toNat_manyOneReducible + theorem transitive_manyOneReducible + theorem transitive_oneOneReducible 2023-05-11 05:39:12 127ca0a refactor: Rename `FirstOrder.Language.Structure.rel_map` to `RelMap` (#3910) ESTIMATED CHANGES Modified Mathlib/ModelTheory/Basic.lean Modified Mathlib/ModelTheory/LanguageMap.lean 2023-05-11 00:33:00 b5ac03c feat: port CategoryTheory.Preadditive.Yoneda.Projective (#3895) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Preadditive/Yoneda/Projective.lean + theorem CategoryTheory.Projective.projective_iff_preservesEpimorphisms_preadditiveCoyoneda_obj + theorem CategoryTheory.Projective.projective_iff_preservesEpimorphisms_preadditive_coyoneda_obj' 2023-05-11 00:32:59 532fee1 fix: uncomment no-longer-slow field_simp test (#3894) Now that https://github.com/leanprover/lean4/issues/2055 is resolved, this test no longer times out. ESTIMATED CHANGES Modified test/FieldSimp.lean 2023-05-11 00:32:58 ad67d70 chore: deal with a few `convert` porting notes (#3887) ESTIMATED CHANGES Modified Mathlib/Analysis/Normed/Field/Basic.lean Modified Mathlib/Analysis/Normed/Order/Lattice.lean Modified Mathlib/CategoryTheory/Adjunction/Opposites.lean Modified Mathlib/CategoryTheory/Category/Basic.lean 2023-05-11 00:13:27 f40ccb5 chore: correct the author list for Topology.Category.Top.Limits.Konig (#3886) The changes from https://github.com/leanprover-community/mathlib/commit/d4ef2e856125fc9c90a38b00dc8aeb44a70e3a6d underwent a refactor and were moved to a new file in mathlib3, and an inaccurate authors list made it into that file. ESTIMATED CHANGES Modified Mathlib/Topology/Category/Top/Limits/Konig.lean 2023-05-10 21:21:54 ec7fb74 feat: port CategoryTheory.Sites.CoverPreserving (#3884) Straightforward. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Sites/CoverPreserving.lean + theorem CategoryTheory.CompatiblePreserving.apply_map + structure CategoryTheory.CompatiblePreserving + theorem CategoryTheory.CoverPreserving.comp + structure CategoryTheory.CoverPreserving + theorem CategoryTheory.Presieve.FamilyOfElements.Compatible.functorPushforward + def CategoryTheory.Sites.pullback + theorem CategoryTheory.compatiblePreservingOfDownwardsClosed + theorem CategoryTheory.compatiblePreservingOfFlat + theorem CategoryTheory.idCoverPreserving + def CategoryTheory.pullbackSheaf + theorem CategoryTheory.pullback_isSheaf_of_coverPreserving 2023-05-10 17:39:07 13d176b feat: port Computability.Halting (#3851) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Computability/Halting.lean + theorem ComputablePred.computable_iff + theorem ComputablePred.computable_iff_re_compl_re' + theorem ComputablePred.computable_iff_re_compl_re + theorem ComputablePred.halting_problem + theorem ComputablePred.halting_problem_not_re + theorem ComputablePred.halting_problem_re + theorem ComputablePred.of_eq + theorem ComputablePred.rice + theorem ComputablePred.rice₂ + theorem ComputablePred.to_re + def ComputablePred + def Nat.Partrec'.Vec + theorem Nat.Partrec'.comp' + theorem Nat.Partrec'.comp₁ + theorem Nat.Partrec'.head + theorem Nat.Partrec'.idv + theorem Nat.Partrec'.of_eq + theorem Nat.Partrec'.of_part + theorem Nat.Partrec'.of_prim + theorem Nat.Partrec'.part_iff + theorem Nat.Partrec'.part_iff₁ + theorem Nat.Partrec'.part_iff₂ + theorem Nat.Partrec'.rfindOpt + theorem Nat.Partrec'.tail + theorem Nat.Partrec'.to_part + theorem Nat.Partrec'.vec_iff + inductive Nat.Partrec' + theorem Nat.Partrec.merge' + theorem Partrec.cond + theorem Partrec.dom_re + theorem Partrec.merge' + theorem Partrec.merge + theorem RePred.of_eq + def RePred Modified Mathlib/Data/Part.lean 2023-05-10 15:01:42 48c42c3 feat port: MeasureTheory.Decomposition.UnsignedHahn (#3870) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/MeasureTheory/Decomposition/UnsignedHahn.lean + theorem MeasureTheory.hahn_decomposition 2023-05-10 13:31:00 ee97f52 chore: drop some unnecessary imports (#3869) ESTIMATED CHANGES Modified Mathlib/Algebra/Order/AbsoluteValue.lean Modified Mathlib/Algebra/Order/Hom/Basic.lean 2023-05-10 13:30:59 9912e05 feat: port CategoryTheory.Preadditive.HomOrthogonal (#3734) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Preadditive/HomOrthogonal.lean + theorem CategoryTheory.HomOrthogonal.eq_zero + theorem CategoryTheory.HomOrthogonal.equiv_of_iso + theorem CategoryTheory.HomOrthogonal.matrixDecomposition_comp + theorem CategoryTheory.HomOrthogonal.matrixDecomposition_id + def CategoryTheory.HomOrthogonal 2023-05-10 11:05:54 94759f8 feat: port Algebra.Category.GroupCat.EpiMono (#3871) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Category/GroupCat/EpiMono.lean + theorem AddGroupCat.epi_iff_range_eq_top + theorem AddGroupCat.epi_iff_surjective + theorem CommGroupCat.epi_iff_range_eq_top + theorem CommGroupCat.epi_iff_surjective + theorem CommGroupCat.ker_eq_bot_of_mono + theorem CommGroupCat.mono_iff_injective + theorem CommGroupCat.mono_iff_ker_eq_bot + theorem CommGroupCat.range_eq_top_of_epi + inductive GroupCat.SurjectiveOfEpiAuxs.XWithInfinity + theorem GroupCat.SurjectiveOfEpiAuxs.agree + theorem GroupCat.SurjectiveOfEpiAuxs.comp_eq + theorem GroupCat.SurjectiveOfEpiAuxs.fromCoset_eq_of_mem_range + theorem GroupCat.SurjectiveOfEpiAuxs.fromCoset_ne_of_nin_range + def GroupCat.SurjectiveOfEpiAuxs.g + theorem GroupCat.SurjectiveOfEpiAuxs.g_apply_fromCoset + theorem GroupCat.SurjectiveOfEpiAuxs.g_apply_infinity + theorem GroupCat.SurjectiveOfEpiAuxs.g_ne_h + def GroupCat.SurjectiveOfEpiAuxs.h + theorem GroupCat.SurjectiveOfEpiAuxs.h_apply_fromCoset' + theorem GroupCat.SurjectiveOfEpiAuxs.h_apply_fromCoset + theorem GroupCat.SurjectiveOfEpiAuxs.h_apply_fromCoset_nin_range + theorem GroupCat.SurjectiveOfEpiAuxs.h_apply_infinity + theorem GroupCat.SurjectiveOfEpiAuxs.mul_smul + theorem GroupCat.SurjectiveOfEpiAuxs.one_smul + theorem GroupCat.SurjectiveOfEpiAuxs.τ_apply_fromCoset' + theorem GroupCat.SurjectiveOfEpiAuxs.τ_apply_fromCoset + theorem GroupCat.SurjectiveOfEpiAuxs.τ_apply_infinity + theorem GroupCat.SurjectiveOfEpiAuxs.τ_symm_apply_fromCoset + theorem GroupCat.SurjectiveOfEpiAuxs.τ_symm_apply_infinity + theorem GroupCat.epi_iff_range_eq_top + theorem GroupCat.epi_iff_surjective + theorem GroupCat.ker_eq_bot_of_mono + theorem GroupCat.mono_iff_injective + theorem GroupCat.mono_iff_ker_eq_bot + theorem GroupCat.surjective_of_epi + theorem MonoidHom.ker_eq_bot_of_cancel + theorem MonoidHom.range_eq_top_of_cancel 2023-05-10 11:05:53 5e04039 feat: port Computability.PartrecCode (#3833) This PR also renames some decls in `Computability.Primrec`. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Computability/Partrec.lean + theorem Computable.ofOption - theorem Computable.of_option - theorem Computable.option_cases + theorem Computable.option_casesOn - theorem Computable.sum_cases + theorem Computable.sum_casesOn + theorem Partrec.option_casesOn_right - theorem Partrec.option_cases_right + theorem Partrec.sum_casesOn_left + theorem Partrec.sum_casesOn_right - theorem Partrec.sum_cases_left - theorem Partrec.sum_cases_right Added Mathlib/Computability/PartrecCode.lean + theorem Nat.Partrec.Code.comp_prim + theorem Nat.Partrec.Code.const_inj + theorem Nat.Partrec.Code.const_prim + def Nat.Partrec.Code.curry + theorem Nat.Partrec.Code.curry_inj + theorem Nat.Partrec.Code.curry_prim + def Nat.Partrec.Code.encodeCode + theorem Nat.Partrec.Code.encodeCode_eq + theorem Nat.Partrec.Code.encode_lt_comp + theorem Nat.Partrec.Code.encode_lt_pair + theorem Nat.Partrec.Code.encode_lt_prec + theorem Nat.Partrec.Code.encode_lt_rfind' + def Nat.Partrec.Code.eval + theorem Nat.Partrec.Code.eval_const + theorem Nat.Partrec.Code.eval_curry + theorem Nat.Partrec.Code.eval_eq_rfindOpt + theorem Nat.Partrec.Code.eval_id + theorem Nat.Partrec.Code.eval_part + theorem Nat.Partrec.Code.eval_prec_succ + theorem Nat.Partrec.Code.eval_prec_zero + def Nat.Partrec.Code.evaln + theorem Nat.Partrec.Code.evaln_bound + theorem Nat.Partrec.Code.evaln_complete + theorem Nat.Partrec.Code.evaln_mono + theorem Nat.Partrec.Code.evaln_prim + theorem Nat.Partrec.Code.evaln_sound + theorem Nat.Partrec.Code.exists_code + theorem Nat.Partrec.Code.fixed_point + theorem Nat.Partrec.Code.fixed_point₂ + def Nat.Partrec.Code.ofNatCode + theorem Nat.Partrec.Code.ofNatCode_eq + theorem Nat.Partrec.Code.pair_prim + theorem Nat.Partrec.Code.prec_prim + theorem Nat.Partrec.Code.rec_computable + theorem Nat.Partrec.Code.rec_prim' + theorem Nat.Partrec.Code.rec_prim + theorem Nat.Partrec.Code.rfind_prim + theorem Nat.Partrec.Code.smn + inductive Nat.Partrec.Code + theorem Nat.Partrec.rfind' Modified Mathlib/Computability/Primrec.lean - theorem Nat.Primrec.cases1 - theorem Nat.Primrec.cases + theorem Nat.Primrec.casesOn' + theorem Nat.Primrec.casesOn1 - theorem Primrec.list_cases + theorem Primrec.list_casesOn - theorem Primrec.nat_cases' - theorem Primrec.nat_cases + theorem Primrec.nat_casesOn' + theorem Primrec.nat_casesOn + theorem Primrec.nat_casesOn₁ - theorem Primrec.nat_cases₁ - theorem Primrec.nat_elim' - theorem Primrec.nat_elim - theorem Primrec.nat_elim₁ + theorem Primrec.nat_rec' + theorem Primrec.nat_rec + theorem Primrec.nat_rec₁ - theorem Primrec.ofEquiv - theorem Primrec.ofEquiv_iff - theorem Primrec.ofEquiv_symm - theorem Primrec.ofEquiv_symm_iff + theorem Primrec.of_equiv + theorem Primrec.of_equiv_iff + theorem Primrec.of_equiv_symm + theorem Primrec.of_equiv_symm_iff - theorem Primrec.option_cases + theorem Primrec.option_casesOn - theorem Primrec.sum_cases + theorem Primrec.sum_casesOn + theorem Primrec.vector_get' - theorem Primrec.vector_nth' + theorem Primrec.vector_ofFn' - theorem Primrec.vector_of_fn' 2023-05-10 11:05:52 a614aa7 chore: forward-port leanprover-community/mathlib#18341 and leanprover-community/mathlib#18950 (#3807) This also brings the proof of `partialProd_right_inv` in line with mathlib3. ESTIMATED CHANGES Modified Mathlib/Algebra/BigOperators/Fin.lean + theorem Fin.inv_partialProd_mul_eq_contractNth +/- theorem Fin.partialProd_right_inv Modified Mathlib/Data/Fin/Tuple/Basic.lean + def Fin.contractNth + theorem Fin.contractNth_apply_of_eq + theorem Fin.contractNth_apply_of_gt + theorem Fin.contractNth_apply_of_lt + theorem Fin.contractNth_apply_of_ne 2023-05-10 10:25:37 ab8b90a feat: port Probability.ConditionalProbability (#3885) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Probability/ConditionalProbability.lean + def ProbabilityTheory.cond + theorem ProbabilityTheory.cond_add_cond_compl_eq + theorem ProbabilityTheory.cond_apply + theorem ProbabilityTheory.cond_cond_eq_cond_inter' + theorem ProbabilityTheory.cond_cond_eq_cond_inter + theorem ProbabilityTheory.cond_empty + theorem ProbabilityTheory.cond_eq_inv_mul_cond_mul + theorem ProbabilityTheory.cond_inter_self + theorem ProbabilityTheory.cond_mul_eq_inter' + theorem ProbabilityTheory.cond_mul_eq_inter + theorem ProbabilityTheory.cond_pos_of_inter_ne_zero + theorem ProbabilityTheory.cond_probabilityMeasure + theorem ProbabilityTheory.cond_univ + theorem ProbabilityTheory.inter_pos_of_cond_ne_zero 2023-05-10 09:29:35 2de98a0 feat(RingTheory/UniqueFactorizationDomain) : add lemma `max_power_factor` as in #18830 (#3558) Add lemma `max_powerFactor` needed in leanprover-community/mathlib#18830 and modified there. ESTIMATED CHANGES Modified Mathlib/RingTheory/UniqueFactorizationDomain.lean +/- theorem UniqueFactorizationMonoid.count_normalizedFactors_eq' +/- theorem UniqueFactorizationMonoid.count_normalizedFactors_eq +/- theorem UniqueFactorizationMonoid.le_multiplicity_iff_replicate_le_normalizedFactors + theorem UniqueFactorizationMonoid.max_power_factor +/- theorem UniqueFactorizationMonoid.multiplicity_eq_count_normalizedFactors 2023-05-10 08:59:38 bde5a1d feat: port MeasureTheory.Group.Arithmetic (#3823) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/MeasureTheory/Group/Arithmetic.lean + theorem AEMeasurable.const_div + theorem AEMeasurable.const_mul + theorem AEMeasurable.const_pow + theorem AEMeasurable.const_smul' + theorem AEMeasurable.const_smul + theorem AEMeasurable.div' + theorem AEMeasurable.div + theorem AEMeasurable.div_const + theorem AEMeasurable.inv + theorem AEMeasurable.mul' + theorem AEMeasurable.mul + theorem AEMeasurable.mul_const + theorem AEMeasurable.pow + theorem AEMeasurable.pow_const + theorem AEMeasurable.smul + theorem AEMeasurable.smul_const + theorem Finset.aemeasurable_prod' + theorem Finset.aemeasurable_prod + theorem Finset.measurable_prod' + theorem Finset.measurable_prod + theorem List.aemeasurable_prod' + theorem List.aemeasurable_prod + theorem List.measurable_prod' + theorem List.measurable_prod + theorem Measurable.const_div + theorem Measurable.const_mul + theorem Measurable.const_pow + theorem Measurable.const_smul' + theorem Measurable.const_smul + theorem Measurable.div' + theorem Measurable.div + theorem Measurable.div_const + theorem Measurable.inv + theorem Measurable.mul' + theorem Measurable.mul + theorem Measurable.mul_const + theorem Measurable.pow + theorem Measurable.pow_const + theorem Measurable.smul + theorem Measurable.smul_const + theorem MeasurableSet.inv + theorem Multiset.aemeasurable_prod' + theorem Multiset.aemeasurable_prod + theorem Multiset.measurable_prod' + theorem Multiset.measurable_prod + theorem ae_eq_trim_of_measurable + theorem aemeasurable_const_smul_iff + theorem aemeasurable_const_smul_iff₀ + theorem aemeasurable_inv_iff + theorem aemeasurable_inv_iff₀ + theorem measurableSet_eq_fun + theorem measurableSet_eq_fun_of_countable + theorem measurable_const_smul_iff + theorem measurable_const_smul_iff₀ + theorem measurable_div_const' + theorem measurable_inv_iff + theorem measurable_inv_iff₀ + theorem measurable_mul_op + theorem measurable_mul_unop + theorem nullMeasurableSet_eq_fun 2023-05-10 07:35:19 fc66e25 feat: port Dynamics.Ergodic.Ergodic (#3879) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Dynamics/Ergodic/Ergodic.lean + theorem Ergodic.ae_empty_or_univ_of_ae_le_preimage' + theorem Ergodic.ae_empty_or_univ_of_ae_le_preimage + theorem Ergodic.ae_empty_or_univ_of_image_ae_le' + theorem Ergodic.ae_empty_or_univ_of_image_ae_le + theorem Ergodic.ae_empty_or_univ_of_preimage_ae_le' + theorem Ergodic.ae_empty_or_univ_of_preimage_ae_le + theorem Ergodic.quasiErgodic + structure Ergodic + theorem MeasureTheory.MeasurePreserving.ergodic_conjugate_iff + theorem MeasureTheory.MeasurePreserving.preErgodic_conjugate_iff + theorem MeasureTheory.MeasurePreserving.preErgodic_of_preErgodic_conjugate + theorem PreErgodic.measure_self_or_compl_eq_zero + theorem PreErgodic.of_iterate + theorem PreErgodic.prob_eq_zero_or_one + structure PreErgodic + theorem QuasiErgodic.ae_empty_or_univ' + structure QuasiErgodic 2023-05-10 07:35:18 5d62566 feat: port Topology.Algebra.Equicontinuity (#3841) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Topology/Algebra/Equicontinuity.lean + theorem equicontinuous_of_equicontinuousAt_one + theorem uniformEquicontinuous_of_equicontinuousAt_one 2023-05-10 07:35:17 15c47a5 feat: simplify slim_check, removing proofs (#3835) Per [zulip](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/slim_check.20is.20broken/near/356447820). - [x] depends on: #3114 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) ESTIMATED CHANGES Modified Mathlib/Testing/SlimCheck/Sampleable.lean - def SlimCheck.Fin.shrink +/- def SlimCheck.Nat.shrink Modified Mathlib/Testing/SlimCheck/Testable.lean - def SlimCheck.Testable.minimizeAux 2023-05-10 07:14:19 9a910f6 feat: port Topology.Category.Profinite.AsLimit (#3875) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Topology/Category/Profinite/AsLimit.lean + def Profinite.asLimit + def Profinite.asLimitCone + def Profinite.asLimitConeIso + def Profinite.fintypeDiagram + def Profinite.isoAsLimitConeLift + def Profinite.lim 2023-05-10 06:33:21 c8eda95 feat: port Algebra.ContinuedFractions.Computation.CorrectnessTerminating (#3846) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/ContinuedFractions/Computation/CorrectnessTerminating.lean + theorem GeneralizedContinuedFraction.compExactValue_correctness_of_stream_eq_some + theorem GeneralizedContinuedFraction.of_correctness_atTop_of_terminates + theorem GeneralizedContinuedFraction.of_correctness_of_nth_stream_eq_none + theorem GeneralizedContinuedFraction.of_correctness_of_terminatedAt + theorem GeneralizedContinuedFraction.of_correctness_of_terminates 2023-05-10 06:33:19 c2a84a8 feat: port Topology.Category.Top.Limits.Products (#3709) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Topology/Category/Top/Basic.lean Modified Mathlib/Topology/Category/Top/Limits/Basic.lean Added Mathlib/Topology/Category/Top/Limits/Products.lean + theorem TopCat.embedding_prod_map + theorem TopCat.induced_of_isLimit + theorem TopCat.inducing_prod_map + theorem TopCat.limit_topology + def TopCat.piFan + def TopCat.piFanIsLimit + def TopCat.piIsoPi + theorem TopCat.piIsoPi_hom_apply + theorem TopCat.piIsoPi_inv_π + theorem TopCat.piIsoPi_inv_π_apply + def TopCat.prodBinaryFan + def TopCat.prodBinaryFanIsLimit + def TopCat.prodIsoProd + theorem TopCat.prodIsoProd_hom_apply + theorem TopCat.prodIsoProd_hom_fst + theorem TopCat.prodIsoProd_hom_snd + theorem TopCat.prodIsoProd_inv_fst + theorem TopCat.prodIsoProd_inv_snd + theorem TopCat.prod_topology + theorem TopCat.range_prod_map + def TopCat.sigmaCofan + def TopCat.sigmaCofanIsColimit + def TopCat.sigmaIsoSigma + theorem TopCat.sigmaIsoSigma_hom_ι + theorem TopCat.sigmaIsoSigma_hom_ι_apply + theorem TopCat.sigmaIsoSigma_inv_apply 2023-05-10 06:12:46 8ac1301 feat: port CategoryTheory.Abelian.Pseudoelements (#3843) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Abelian/Pseudoelements.lean + def CategoryTheory.Abelian.PseudoEqual + theorem CategoryTheory.Abelian.Pseudoelement.ModuleCat.eq_range_of_pseudoequal + theorem CategoryTheory.Abelian.Pseudoelement.apply_eq_zero_of_comp_eq_zero + theorem CategoryTheory.Abelian.Pseudoelement.apply_zero + theorem CategoryTheory.Abelian.Pseudoelement.comp_apply + theorem CategoryTheory.Abelian.Pseudoelement.comp_comp + theorem CategoryTheory.Abelian.Pseudoelement.epi_of_pseudo_surjective + theorem CategoryTheory.Abelian.Pseudoelement.eq_zero_iff + theorem CategoryTheory.Abelian.Pseudoelement.exact_of_pseudo_exact + def CategoryTheory.Abelian.Pseudoelement.homToFun + theorem CategoryTheory.Abelian.Pseudoelement.mono_of_zero_of_map_zero + def CategoryTheory.Abelian.Pseudoelement.objectToSort + def CategoryTheory.Abelian.Pseudoelement.overToSort + theorem CategoryTheory.Abelian.Pseudoelement.over_coe_def + def CategoryTheory.Abelian.Pseudoelement.pseudoApply + theorem CategoryTheory.Abelian.Pseudoelement.pseudoApply_aux + theorem CategoryTheory.Abelian.Pseudoelement.pseudoApply_mk' + def CategoryTheory.Abelian.Pseudoelement.pseudoZero + theorem CategoryTheory.Abelian.Pseudoelement.pseudoZero_aux + theorem CategoryTheory.Abelian.Pseudoelement.pseudoZero_def + theorem CategoryTheory.Abelian.Pseudoelement.pseudoZero_iff + theorem CategoryTheory.Abelian.Pseudoelement.pseudo_exact_of_exact + theorem CategoryTheory.Abelian.Pseudoelement.pseudo_injective_of_mono + theorem CategoryTheory.Abelian.Pseudoelement.pseudo_pullback + theorem CategoryTheory.Abelian.Pseudoelement.pseudo_surjective_of_epi + def CategoryTheory.Abelian.Pseudoelement.setoid + theorem CategoryTheory.Abelian.Pseudoelement.sub_of_eq_image + theorem CategoryTheory.Abelian.Pseudoelement.zero_apply + theorem CategoryTheory.Abelian.Pseudoelement.zero_eq_zero' + theorem CategoryTheory.Abelian.Pseudoelement.zero_eq_zero + theorem CategoryTheory.Abelian.Pseudoelement.zero_morphism_ext' + theorem CategoryTheory.Abelian.Pseudoelement.zero_morphism_ext + theorem CategoryTheory.Abelian.Pseudoelement.zero_of_map_zero + def CategoryTheory.Abelian.Pseudoelement + def CategoryTheory.Abelian.app + theorem CategoryTheory.Abelian.app_hom + theorem CategoryTheory.Abelian.pseudoEqual_refl + theorem CategoryTheory.Abelian.pseudoEqual_symm + theorem CategoryTheory.Abelian.pseudoEqual_trans 2023-05-10 06:12:45 0774576 feat: tactic frontend for slim_check (#3114) Adds a tactic front end for `slim_check`, and provides commands `#test` and `#sample`. Updates all the mathlib3 tests, although many are broken. There are still some missing parts of `Mathlib.Testing.SlimCheck.Sampleable`: in particular we can't currently sample from lists, and this explains most of the broken tests. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Tactic.lean Added Mathlib/Tactic/SlimCheck.lean Modified Mathlib/Tactic/SuccessIfFailWithMsg.lean Modified Mathlib/Testing/SlimCheck/Sampleable.lean + def SlimCheck.mkGenerator + def SlimCheck.printSamples Modified Mathlib/Testing/SlimCheck/Testable.lean Added test/slim_check.lean 2023-05-10 05:52:24 f2c85c3 feat: `rewrites`, a tactic to suggest rewrites. (#3119) Unlike the very slow `rw_hint` long ago proposed (but never merged) for mathlib3, this uses discrimination trees (with keys given by LHS and RHS of lemmas), and looks up all subexpressions of the target expression. - [x] depends on: #2898 - [x] depends on: #3181 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Lean/CoreM.lean + def reportOutOfHeartbeats Modified Mathlib/Lean/Meta/DiscrTree.lean Modified Mathlib/Tactic.lean Modified Mathlib/Tactic/LibrarySearch.lean - def Mathlib.Tactic.LibrarySearch.reportOutOfHeartbeats Added Mathlib/Tactic/Rewrites.lean + def Mathlib.Tactic.Rewrites.RewriteResult.computeRefl + structure Mathlib.Tactic.Rewrites.RewriteResult + def Mathlib.Tactic.Rewrites.rewrites + def Mathlib.Tactic.Rewrites.rewritesCore Modified Mathlib/Tactic/TryThis.lean + def addRewriteSuggestion Added test/rewrites.lean 2023-05-10 05:02:09 ebf0b75 feat: port Analysis.Normed.Group.ControlledClosure (#3880) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/Normed/Group/ControlledClosure.lean + theorem controlled_closure_of_complete + theorem controlled_closure_range_of_complete 2023-05-10 05:02:09 ae6decd feat: add some `pp_extended_field_notation`s (#3592) Add some `pp_extended_field_notation`, for opt-in cases with additional arguments. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Iso.lean Modified Mathlib/CategoryTheory/Limits/Cones.lean Modified Mathlib/CategoryTheory/Limits/IsLimit.lean Modified Mathlib/CategoryTheory/Opposites.lean Modified Mathlib/CategoryTheory/Types.lean Modified Mathlib/Logic/Equiv/Defs.lean 2023-05-10 04:45:22 dcf5342 feat: port Topology.ContinuousFunction.LocallyConstant (#3877) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Topology/ContinuousFunction/LocallyConstant.lean + def LocallyConstant.toContinuousMapAlgHom + def LocallyConstant.toContinuousMapLinearMap + def LocallyConstant.toContinuousMapMonoidHom 2023-05-10 01:01:27 c7a6fc0 feat: port MeasureTheory.Covering.VitaliFamily (#3867) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/MeasureTheory/Covering/VitaliFamily.lean + theorem VitaliFamily.FineSubfamilyOn.covering_disjoint + theorem VitaliFamily.FineSubfamilyOn.covering_disjoint_subtype + theorem VitaliFamily.FineSubfamilyOn.covering_mem + theorem VitaliFamily.FineSubfamilyOn.covering_mem_family + theorem VitaliFamily.FineSubfamilyOn.exists_disjoint_covering_ae + theorem VitaliFamily.FineSubfamilyOn.index_countable + theorem VitaliFamily.FineSubfamilyOn.index_subset + theorem VitaliFamily.FineSubfamilyOn.measure_diff_bunionᵢ + theorem VitaliFamily.FineSubfamilyOn.measure_le_tsum + theorem VitaliFamily.FineSubfamilyOn.measure_le_tsum_of_absolutelyContinuous + def VitaliFamily.FineSubfamilyOn + def VitaliFamily.enlarge + theorem VitaliFamily.eventually_filterAt_iff + theorem VitaliFamily.eventually_filterAt_measurableSet + theorem VitaliFamily.eventually_filterAt_mem_sets + theorem VitaliFamily.eventually_filterAt_subset_closedBall + theorem VitaliFamily.eventually_filterAt_subset_of_nhds + def VitaliFamily.filterAt + theorem VitaliFamily.fineSubfamilyOn_of_frequently + theorem VitaliFamily.frequently_filterAt_iff + theorem VitaliFamily.mem_filterAt_iff + def VitaliFamily.mono + theorem VitaliFamily.tendsto_filterAt_iff + structure VitaliFamily 2023-05-10 01:01:26 70f423b feat: port Algebra.Category.Group.EquivalenceGroupAddGroup (#3861) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Category/GroupCat/EquivalenceGroupAddGroup.lean + def AddCommGroupCat.toCommGroupCat + def AddGroupCat.toGroupCat + def CommGroupCat.toAddCommGroupCat + def GroupCat.toAddGroupCat + def commGroupAddCommGroupEquivalence + def groupAddGroupEquivalence 2023-05-10 01:01:24 3ae4023 feat: port Dynamics.Ergodic.MeasurePreserving (#3821) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Dynamics/Ergodic/MeasurePreserving.lean + theorem MeasureTheory.MeasurableEquiv.measurePreserving_symm + theorem MeasureTheory.MeasurePreserving.aemeasurable_comp_iff + theorem MeasureTheory.MeasurePreserving.exists_mem_image_mem + theorem MeasureTheory.MeasurePreserving.exists_mem_image_mem_of_volume_lt_mul_volume + theorem MeasureTheory.MeasurePreserving.measure_preimage + theorem MeasureTheory.MeasurePreserving.measure_preimage_emb + theorem MeasureTheory.MeasurePreserving.restrict_image_emb + theorem MeasureTheory.MeasurePreserving.restrict_preimage + theorem MeasureTheory.MeasurePreserving.restrict_preimage_emb + theorem MeasureTheory.MeasurePreserving.symm + structure MeasureTheory.MeasurePreserving 2023-05-10 01:01:22 68ec219 feat: port MeasureTheory.Measure.OpenPos (#3820) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/MeasureTheory/Measure/OpenPos.lean + theorem Continuous.ae_eq_iff_eq + theorem EMetric.measure_ball_pos + theorem EMetric.measure_closedBall_pos + theorem IsOpen.eq_empty_of_measure_zero + theorem IsOpen.measure_eq_zero_iff + theorem IsOpen.measure_ne_zero + theorem IsOpen.measure_pos + theorem IsOpen.measure_pos_iff + theorem LE.le.isOpenPosMeasure + theorem MeasureTheory.Measure.eqOn_Icc_of_ae_eq + theorem MeasureTheory.Measure.eqOn_Ico_of_ae_eq + theorem MeasureTheory.Measure.eqOn_Ioc_of_ae_eq + theorem MeasureTheory.Measure.eqOn_Ioo_of_ae_eq + theorem MeasureTheory.Measure.eqOn_of_ae_eq + theorem MeasureTheory.Measure.eqOn_open_of_ae_eq + theorem MeasureTheory.Measure.eq_of_ae_eq + theorem MeasureTheory.Measure.interior_eq_empty_of_null + theorem MeasureTheory.Measure.measure_Iio_pos + theorem MeasureTheory.Measure.measure_Ioi_pos + theorem MeasureTheory.Measure.measure_Ioo_eq_zero + theorem MeasureTheory.Measure.measure_Ioo_pos + theorem MeasureTheory.Measure.measure_pos_of_mem_nhds + theorem MeasureTheory.Measure.measure_pos_of_nonempty_interior + theorem MeasureTheory.Measure.openPosMeasure_smul + theorem Metric.measure_ball_pos + theorem Metric.measure_closedBall_pos 2023-05-10 00:18:41 92aa9de feat: port Analysis.Convex.PartitionOfUnity (#3868) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/Convex/PartitionOfUnity.lean + theorem PartitionOfUnity.finsum_smul_mem_convex + theorem exists_continuous_forall_mem_convex_of_local + theorem exists_continuous_forall_mem_convex_of_local_const 2023-05-10 00:18:39 13d7a9c feat: port MeasureTheory.Lattice (#3824) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/MeasureTheory/Lattice.lean + theorem AEMeasurable.const_inf + theorem AEMeasurable.const_sup + theorem AEMeasurable.inf' + theorem AEMeasurable.inf + theorem AEMeasurable.inf_const + theorem AEMeasurable.sup' + theorem AEMeasurable.sup + theorem AEMeasurable.sup_const + theorem Finset.measurable_range_sup'' + theorem Finset.measurable_range_sup' + theorem Finset.measurable_sup' + theorem Measurable.const_inf + theorem Measurable.const_sup + theorem Measurable.inf' + theorem Measurable.inf + theorem Measurable.inf_const + theorem Measurable.sup' + theorem Measurable.sup + theorem Measurable.sup_const 2023-05-10 00:18:37 672941e feat: port MeasureTheory.Measure.MutuallySingular (#3818) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/MeasureTheory/Measure/MutuallySingular.lean + theorem MeasureTheory.Measure.MutuallySingular.add_left + theorem MeasureTheory.Measure.MutuallySingular.add_left_iff + theorem MeasureTheory.Measure.MutuallySingular.add_right + theorem MeasureTheory.Measure.MutuallySingular.add_right_iff + theorem MeasureTheory.Measure.MutuallySingular.comm + theorem MeasureTheory.Measure.MutuallySingular.mk + theorem MeasureTheory.Measure.MutuallySingular.mono + theorem MeasureTheory.Measure.MutuallySingular.mono_ac + theorem MeasureTheory.Measure.MutuallySingular.smul + theorem MeasureTheory.Measure.MutuallySingular.smul_nnreal + theorem MeasureTheory.Measure.MutuallySingular.sum_left + theorem MeasureTheory.Measure.MutuallySingular.sum_right + theorem MeasureTheory.Measure.MutuallySingular.symm + theorem MeasureTheory.Measure.MutuallySingular.zero_left + theorem MeasureTheory.Measure.MutuallySingular.zero_right + def MeasureTheory.Measure.MutuallySingular 2023-05-10 00:18:35 c93011c feat: pp_extended_field_notation command to pretty print with dot notation (#3811) The projection notation delaborator that comes from core Lean has some limitations. We introduce a new projection notation delaborator that is able to collapse parent projection sequences, for example `x.toC.toB.toA.val` into `x.val`. The other limitation of the delaborator is that it can only handle true projections that do not have any additional arguments. This commit adds a `pp_extended_field_notation` command to switch on projection notation for specific functions. This command defines app unexpanders that pretty print that function application using dot notation. The app unexpander it produces has a small hack to completely collapse parent projection sequences. Since it is an app unexpander, we do not have access to the actual types, so we use a heuristic that, for example with `A.foo`, if we are looking at `A.foo x.toA y z ...` then we can pretty print this as `x.foo y z`. The projection delaborator is able to collapse parent projection sequences except for the vary last one, so this finishes it off. Note that this heuristic can lead to output that does not round trip if there is a `toA` function that is not a parent projection that happens to be pretty printed with dot notation. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/CategoryTheory/Functor/Basic.lean Modified Mathlib/CategoryTheory/NatIso.lean Modified Mathlib/CategoryTheory/NatTrans.lean Modified Mathlib/Combinatorics/Quiver/Basic.lean Modified Mathlib/Tactic.lean Added Mathlib/Tactic/ProjectionNotation.lean + def Mathlib.ProjectionNotation.getPPCollapseStructureProjections 2023-05-09 23:59:30 bb9f362 feat: port Analysis.NormedSpace.CompactOperator (#3805) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/NormedSpace/CompactOperator.lean + theorem ContinuousLinearMap.coe_mkOfIsCompactOperator + def ContinuousLinearMap.mkOfIsCompactOperator + theorem ContinuousLinearMap.mkOfIsCompactOperator_mem_compactOperator + theorem ContinuousLinearMap.mkOfIsCompactOperator_to_linearMap + theorem IsCompactOperator.add + theorem IsCompactOperator.clm_comp + theorem IsCompactOperator.codRestrict + theorem IsCompactOperator.comp_clm + theorem IsCompactOperator.continuous + theorem IsCompactOperator.continuous_comp + theorem IsCompactOperator.image_ball_subset_compact + theorem IsCompactOperator.image_closedBall_subset_compact + theorem IsCompactOperator.image_subset_compact_of_bounded + theorem IsCompactOperator.image_subset_compact_of_vonN_bounded + theorem IsCompactOperator.isCompact_closure_image_ball + theorem IsCompactOperator.isCompact_closure_image_closedBall + theorem IsCompactOperator.isCompact_closure_image_of_bounded + theorem IsCompactOperator.isCompact_closure_image_of_vonN_bounded + theorem IsCompactOperator.neg + theorem IsCompactOperator.restrict' + theorem IsCompactOperator.restrict + theorem IsCompactOperator.smul + theorem IsCompactOperator.sub + def IsCompactOperator + def compactOperator + theorem compactOperator_topologicalClosure + theorem isClosed_setOf_isCompactOperator + theorem isCompactOperator_iff_exists_mem_nhds_image_subset_compact + theorem isCompactOperator_iff_exists_mem_nhds_isCompact_closure_image + theorem isCompactOperator_iff_image_ball_subset_compact + theorem isCompactOperator_iff_image_closedBall_subset_compact + theorem isCompactOperator_iff_isCompact_closure_image_ball + theorem isCompactOperator_iff_isCompact_closure_image_closedBall + theorem isCompactOperator_of_tendsto + theorem isCompactOperator_zero 2023-05-09 23:06:55 ddeaa9d feat: port CategoryTheory.Functor.Flat (#3703) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/CategoryTheory/Filtered.lean Added Mathlib/CategoryTheory/Functor/Flat.lean + theorem CategoryTheory.PreservesFiniteLimitsOfFlat.fac + theorem CategoryTheory.PreservesFiniteLimitsOfFlat.uniq + def CategoryTheory.StructuredArrowCone.diagramToCone + def CategoryTheory.StructuredArrowCone.toCone + def CategoryTheory.StructuredArrowCone.toDiagram + theorem CategoryTheory.cofiltered_of_hasFiniteLimits + theorem CategoryTheory.flat_iff_lan_flat + theorem CategoryTheory.flat_of_preservesFiniteLimits 2023-05-09 19:44:35 9042f7b feat: port MeasureTheory.Measure.AEMeasurable (#3819) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/MeasureTheory/Measure/AEMeasurable.lean + theorem AEMeasurable.add_measure + theorem AEMeasurable.ae_inf_principal_eq_mk + theorem AEMeasurable.ae_mem_imp_eq_mk + theorem AEMeasurable.comp_aemeasurable + theorem AEMeasurable.comp_measurable + theorem AEMeasurable.comp_quasiMeasurePreserving + theorem AEMeasurable.exists_ae_eq_range_subset + theorem AEMeasurable.exists_measurable_nonneg + theorem AEMeasurable.indicator + theorem AEMeasurable.map_map_of_aemeasurable + theorem AEMeasurable.mono_measure + theorem AEMeasurable.mono_set + theorem AEMeasurable.prod_mk + theorem AEMeasurable.restrict + theorem AEMeasurable.smul_measure + theorem AEMeasurable.subtype_mk + theorem AEMeasurable.sum_measure + theorem MeasurableEmbedding.aemeasurable_comp_iff + theorem MeasurableEmbedding.aemeasurable_map_iff + theorem MeasureTheory.Measure.map_mono_of_aemeasurable + theorem MeasureTheory.Measure.restrict_map_of_aemeasurable + theorem Subsingleton.aemeasurable + theorem aemeasurable_Ioi_of_forall_Ioc + theorem aemeasurable_add_measure_iff + theorem aemeasurable_const' + theorem aemeasurable_iff_measurable + theorem aemeasurable_indicator_iff + theorem aemeasurable_map_equiv_iff + theorem aemeasurable_of_aemeasurable_trim + theorem aemeasurable_of_subsingleton_codomain + theorem aemeasurable_one + theorem aemeasurable_restrict_iff_comap_subtype + theorem aemeasurable_restrict_of_measurable_subtype + theorem aemeasurable_smul_measure_iff + theorem aemeasurable_sum_measure_iff + theorem aemeasurable_uIoc_iff + theorem aemeasurable_union_iff + theorem aemeasurable_unionᵢ_iff + theorem aemeasurable_zero_measure 2023-05-09 10:06:14 68b21e1 feat: port Probability.ProbabilityMassFunction.Basic (#3865) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Probability/ProbabilityMassFunction/Basic.lean + def MeasureTheory.Measure.toPmf + theorem MeasureTheory.Measure.toPmf_apply + theorem MeasureTheory.Measure.toPmf_toMeasure + theorem Pmf.apply_eq_one_iff + theorem Pmf.apply_eq_zero_iff + theorem Pmf.apply_lt_top + theorem Pmf.apply_ne_top + theorem Pmf.apply_pos_iff + theorem Pmf.coe_le_one + theorem Pmf.coe_ne_zero + theorem Pmf.ext_iff + theorem Pmf.hasSum_coe_one + theorem Pmf.mem_support_iff + def Pmf.support + theorem Pmf.support_nonempty + def Pmf.toMeasure + theorem Pmf.toMeasure_apply + theorem Pmf.toMeasure_apply_eq_of_inter_support_eq + theorem Pmf.toMeasure_apply_eq_one_iff + theorem Pmf.toMeasure_apply_eq_toOuterMeasure_apply + theorem Pmf.toMeasure_apply_eq_zero_iff + theorem Pmf.toMeasure_apply_finset + theorem Pmf.toMeasure_apply_fintype + theorem Pmf.toMeasure_apply_inter_support + theorem Pmf.toMeasure_apply_of_finite + theorem Pmf.toMeasure_apply_singleton + theorem Pmf.toMeasure_eq_iff_eq_toPmf + theorem Pmf.toMeasure_inj + theorem Pmf.toMeasure_injective + theorem Pmf.toMeasure_mono + theorem Pmf.toMeasure_toPmf + def Pmf.toOuterMeasure + theorem Pmf.toOuterMeasure_apply + theorem Pmf.toOuterMeasure_apply_eq_of_inter_support_eq + theorem Pmf.toOuterMeasure_apply_eq_one_iff + theorem Pmf.toOuterMeasure_apply_eq_zero_iff + theorem Pmf.toOuterMeasure_apply_finset + theorem Pmf.toOuterMeasure_apply_fintype + theorem Pmf.toOuterMeasure_apply_inter_support + theorem Pmf.toOuterMeasure_apply_le_toMeasure_apply + theorem Pmf.toOuterMeasure_apply_singleton + theorem Pmf.toOuterMeasure_caratheodory + theorem Pmf.toOuterMeasure_inj + theorem Pmf.toOuterMeasure_injective + theorem Pmf.toOuterMeasure_mono + theorem Pmf.toPmf_eq_iff_toMeasure_eq + theorem Pmf.tsum_coe + theorem Pmf.tsum_coe_indicator_ne_top + theorem Pmf.tsum_coe_ne_top + def Pmf.{u} 2023-05-09 10:06:13 98de133 feat: port CategoryTheory.Preadditive.InjectiveResolution (#3860) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Preadditive/InjectiveResolution.lean + theorem CategoryTheory.InjectiveResolution.complex_d_comp + def CategoryTheory.InjectiveResolution.self + theorem CategoryTheory.InjectiveResolution.ι_f_succ + theorem CategoryTheory.InjectiveResolution.ι_f_zero_comp_complex_d + structure CategoryTheory.InjectiveResolution 2023-05-09 10:06:12 0533f14 feat: port Topology.Category.Top.Limits.Konig (#3853) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Topology/Category/Top/Limits/Konig.lean + theorem TopCat.nonempty_limitCone_of_compact_t2_cofiltered_system + theorem TopCat.partialSections.closed + theorem TopCat.partialSections.directed + theorem TopCat.partialSections.nonempty + def TopCat.partialSections 2023-05-09 09:46:42 d4ad63c feat: port MeasureTheory.Measure.Sub (#3866) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/MeasureTheory/Measure/Sub.lean + theorem MeasureTheory.Measure.restrict_sub_eq_restrict_sub_restrict + theorem MeasureTheory.Measure.sub_add_cancel_of_le + theorem MeasureTheory.Measure.sub_apply + theorem MeasureTheory.Measure.sub_apply_eq_zero_of_restrict_le_restrict + theorem MeasureTheory.Measure.sub_def + theorem MeasureTheory.Measure.sub_eq_zero_of_le + theorem MeasureTheory.Measure.sub_le + theorem MeasureTheory.Measure.sub_le_of_le_add + theorem MeasureTheory.Measure.sub_self + theorem MeasureTheory.Measure.sub_top + theorem MeasureTheory.Measure.zero_sub 2023-05-09 08:58:57 3e2a20e feat port: LinearAlgebra.ProjectiveSpace.Subspace (#3832) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/LinearAlgebra/ProjectiveSpace/Subspace.lean + def Projectivization.Subspace.gi + theorem Projectivization.Subspace.mem_add + theorem Projectivization.Subspace.mem_carrier_iff + theorem Projectivization.Subspace.mem_span + theorem Projectivization.Subspace.monotone_span + def Projectivization.Subspace.span + inductive Projectivization.Subspace.spanCarrier + theorem Projectivization.Subspace.span_coe + theorem Projectivization.Subspace.span_empty + theorem Projectivization.Subspace.span_eq_infₛ + theorem Projectivization.Subspace.span_eq_of_le + theorem Projectivization.Subspace.span_eq_span_iff + theorem Projectivization.Subspace.span_le_subspace_iff + theorem Projectivization.Subspace.span_sup + theorem Projectivization.Subspace.span_union + theorem Projectivization.Subspace.span_unionᵢ + theorem Projectivization.Subspace.span_univ + theorem Projectivization.Subspace.subset_span + theorem Projectivization.Subspace.subset_span_trans + theorem Projectivization.Subspace.sup_span + structure Projectivization.Subspace 2023-05-09 06:29:09 66cb7cc chore: tidy various files (#3848) ESTIMATED CHANGES Modified Mathlib/Algebra/BigOperators/Fin.lean Modified Mathlib/Algebra/ContinuedFractions/Computation/Basic.lean Modified Mathlib/Algebra/Homology/Homotopy.lean Modified Mathlib/Algebra/Order/Floor.lean Modified Mathlib/CategoryTheory/Subobject/Basic.lean +/- def CategoryTheory.Subobject.existsPullbackAdj - def CategoryTheory.Subobject.exists_ +/- theorem CategoryTheory.Subobject.exists_iso_map + def CategoryTheory.Subobject.«exists» Modified Mathlib/CategoryTheory/Subobject/FactorThru.lean + theorem CategoryTheory.Subobject.factorThru_ofLE - theorem CategoryTheory.Subobject.factorThru_ofLe Modified Mathlib/CategoryTheory/Subobject/Lattice.lean + def CategoryTheory.MonoOver.botLE - def CategoryTheory.MonoOver.botLe + def CategoryTheory.MonoOver.infLELeft + def CategoryTheory.MonoOver.infLERight - def CategoryTheory.MonoOver.infLeLeft - def CategoryTheory.MonoOver.infLeRight + def CategoryTheory.MonoOver.topLEPullbackSelf - def CategoryTheory.MonoOver.topLePullbackSelf Modified Mathlib/CategoryTheory/Subobject/MonoOver.lean +/- def CategoryTheory.MonoOver.existsIsoMap +/- def CategoryTheory.MonoOver.existsPullbackAdj - def CategoryTheory.MonoOver.exists_ + def CategoryTheory.MonoOver.«exists» Modified Mathlib/Data/Dfinsupp/Order.lean +/- def Dfinsupp.orderEmbeddingToFun Modified Mathlib/Data/Fin/Tuple/Basic.lean + theorem Fin.snoc_castSucc - theorem Fin.snoc_cast_succ + theorem Fin.snoc_comp_castSucc - theorem Fin.snoc_comp_cast_succ Modified Mathlib/Data/Nat/Cast/Defs.lean Modified Mathlib/Data/Seq/WSeq.lean Modified Mathlib/Dynamics/Circle/RotationNumber/TranslationNumber.lean Modified Mathlib/LinearAlgebra/FiniteDimensional.lean Modified Mathlib/LinearAlgebra/FreeModule/PID.lean Modified Mathlib/LinearAlgebra/Lagrange.lean Modified Mathlib/MeasureTheory/Measure/NullMeasurable.lean + theorem MeasureTheory.nullMeasurableSet_toMeasurable - theorem MeasureTheory.nullMeasurableSet_to_measurable Modified Mathlib/Order/JordanHolder.lean Modified Mathlib/RingTheory/Ideal/Operations.lean - theorem Ideal.comap_Inf' + theorem Ideal.comap_infₛ' +/- def Ideal.relIsoOfBijective +/- def Ideal.relIsoOfSurjective Modified Mathlib/Topology/Category/Top/Limits/Basic.lean + def TopCat.initialIsoPEmpty - def TopCat.initialIsoPempty + def TopCat.isInitialPEmpty - def TopCat.isInitialPempty + def TopCat.isTerminalPUnit - def TopCat.isTerminalPunit + def TopCat.terminalIsoPUnit - def TopCat.terminalIsoPunit Modified Mathlib/Topology/Homotopy/Basic.lean +/- def ContinuousMap.Homotopy.symm Modified Mathlib/Topology/Order/Basic.lean - theorem Antitone.map_csupr_of_continuousAt + theorem Antitone.map_csupᵢ_of_continuousAt - theorem Monotone.map_csupr_of_continuousAt + theorem Monotone.map_csupᵢ_of_continuousAt 2023-05-09 06:12:54 47189ba feat: port Topology.PartitionOfUnity (#3863) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Topology/PartitionOfUnity.lean + theorem BumpCovering.IsSubordinate.mono + theorem BumpCovering.IsSubordinate.toPartitionOfUnity + def BumpCovering.IsSubordinate + theorem BumpCovering.coe_single + theorem BumpCovering.continuous_toPouFun + theorem BumpCovering.eventuallyEq_one + theorem BumpCovering.exists_finset_toPartitionOfUnity_eventuallyEq + theorem BumpCovering.exists_finset_toPouFun_eventuallyEq + theorem BumpCovering.exists_isSubordinate + theorem BumpCovering.exists_isSubordinate_of_locallyFinite + theorem BumpCovering.exists_isSubordinate_of_locallyFinite_of_prop + theorem BumpCovering.exists_isSubordinate_of_prop + def BumpCovering.ind + theorem BumpCovering.ind_apply + theorem BumpCovering.le_one + theorem BumpCovering.locallyFinite_tsupport + theorem BumpCovering.nonneg + theorem BumpCovering.sum_toPartitionOfUnity_eq + theorem BumpCovering.sum_toPouFun_eq + theorem BumpCovering.support_toPartitionOfUnity_subset + theorem BumpCovering.support_toPouFun_subset + def BumpCovering.toPartitionOfUnity + theorem BumpCovering.toPartitionOfUnity_apply + theorem BumpCovering.toPartitionOfUnity_eq_mul_prod + theorem BumpCovering.toPartitionOfUnity_zero_of_zero + def BumpCovering.toPouFun + theorem BumpCovering.toPouFun_eq_mul_prod + theorem BumpCovering.toPouFun_zero_of_zero + structure BumpCovering + theorem PartitionOfUnity.IsSubordinate.continuous_finsum_smul + def PartitionOfUnity.IsSubordinate + theorem PartitionOfUnity.continuous_finsum_smul + theorem PartitionOfUnity.continuous_smul + theorem PartitionOfUnity.exists_finset_nhd_support_subset + theorem PartitionOfUnity.exists_isSubordinate + theorem PartitionOfUnity.exists_isSubordinate_of_locallyFinite + theorem PartitionOfUnity.exists_pos + theorem PartitionOfUnity.le_one + theorem PartitionOfUnity.locallyFinite_tsupport + theorem PartitionOfUnity.nonneg + theorem PartitionOfUnity.sum_eq_one + theorem PartitionOfUnity.sum_le_one + theorem PartitionOfUnity.sum_nonneg + structure PartitionOfUnity 2023-05-09 06:12:53 5d7b89a feat: port CategoryTheory.Preadditive.Injective (#3859) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Preadditive/Injective.lean + theorem CategoryTheory.Adjunction.injective_of_map_injective + def CategoryTheory.Adjunction.mapInjectivePresentation + theorem CategoryTheory.Adjunction.map_injective + theorem CategoryTheory.Equivalence.enoughInjectives_iff + def CategoryTheory.Equivalence.injectivePresentationOfMapInjectivePresentation + theorem CategoryTheory.Injective.Exact.comp_desc + def CategoryTheory.Injective.Exact.desc + theorem CategoryTheory.Injective.comp_factorThru + theorem CategoryTheory.Injective.enoughInjectives_of_enoughProjectives_op + theorem CategoryTheory.Injective.enoughProjectives_of_enoughInjectives_op + def CategoryTheory.Injective.factorThru + theorem CategoryTheory.Injective.injective_iff_preservesEpimorphisms_yoneda_obj + theorem CategoryTheory.Injective.injective_iff_projective_op + theorem CategoryTheory.Injective.injective_of_adjoint + theorem CategoryTheory.Injective.iso_iff + theorem CategoryTheory.Injective.of_iso + theorem CategoryTheory.Injective.projective_iff_injective_op + def CategoryTheory.Injective.syzygies + def CategoryTheory.Injective.under + def CategoryTheory.Injective.ι + structure CategoryTheory.InjectivePresentation 2023-05-09 06:12:52 57b4fe5 feat: port Topology.Category.Top.Limits.Cofiltered (#3855) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Topology/Category/Top/Limits/Cofiltered.lean + theorem TopCat.isTopologicalBasis_cofiltered_limit 2023-05-09 06:12:51 a2eec64 fix: remove unneeded LibrarySearch import (#3854) Removes from `Analysis/SpecificLimits/Normed.lean` an `import Mathlib.Tactic.LibrarySearch` that was accidentally included in #3419. ESTIMATED CHANGES Modified Mathlib/Analysis/SpecificLimits/Normed.lean 2023-05-09 05:50:38 773a35f feat: port MeasureTheory.Measure.MeasureSpace (#3324) This PR also renames instances in `MeasureTheory.MeasurableSpace`. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/MeasureTheory/MeasurableSpace.lean Added Mathlib/MeasureTheory/Measure/MeasureSpace.lean + theorem Filter.EventuallyEq.restrict + theorem Finset.measure_zero + theorem IsCompact.exists_open_superset_measure_lt_top' + theorem IsCompact.exists_open_superset_measure_lt_top + theorem IsCompact.measure_lt_top + theorem IsCompact.measure_lt_top_of_nhdsWithin + theorem IsCompact.measure_zero_of_nhdsWithin + theorem MeasurableEmbedding.ae_map_iff + theorem MeasurableEmbedding.comap_apply + theorem MeasurableEmbedding.map_comap + theorem MeasurableEmbedding.restrict_map + theorem MeasurableEquiv.map_ae + theorem MeasurableEquiv.map_apply_eq_iff_map_symm_apply_eq + theorem MeasurableEquiv.map_map_symm + theorem MeasurableEquiv.map_measurableEquiv_injective + theorem MeasurableEquiv.map_symm_map + theorem MeasurableEquiv.quasiMeasurePreserving_symm + theorem MeasurableEquiv.restrict_map + theorem MeasurableEquiv.sigmaFinite_map + theorem MeasurableSet.map_coe_volume + theorem MeasureTheory.AeDisjoint.preimage + theorem MeasureTheory.CompactSpace.finiteMeasure + theorem MeasureTheory.Ico_ae_eq_Icc' + theorem MeasureTheory.Ico_ae_eq_Icc + theorem MeasureTheory.Ico_ae_eq_Ioc' + theorem MeasureTheory.Ico_ae_eq_Ioc + theorem MeasureTheory.Iio_ae_eq_Iic' + theorem MeasureTheory.Iio_ae_eq_Iic + theorem MeasureTheory.Ioc_ae_eq_Icc' + theorem MeasureTheory.Ioc_ae_eq_Icc + theorem MeasureTheory.Ioi_ae_eq_Ici' + theorem MeasureTheory.Ioi_ae_eq_Ici + theorem MeasureTheory.Ioo_ae_eq_Icc' + theorem MeasureTheory.Ioo_ae_eq_Icc + theorem MeasureTheory.Ioo_ae_eq_Ico' + theorem MeasureTheory.Ioo_ae_eq_Ico + theorem MeasureTheory.Ioo_ae_eq_Ioc' + theorem MeasureTheory.Ioo_ae_eq_Ioc + theorem MeasureTheory.Measure.AbsolutelyContinuous.ae_eq + theorem MeasureTheory.Measure.AbsolutelyContinuous.mk + def MeasureTheory.Measure.AbsolutelyContinuous + theorem MeasureTheory.Measure.FiniteAtFilter.exists_mem_basis + theorem MeasureTheory.Measure.FiniteAtFilter.filterSup + theorem MeasureTheory.Measure.FiniteAtFilter.filter_mono + theorem MeasureTheory.Measure.FiniteAtFilter.filter_mono_ae + theorem MeasureTheory.Measure.FiniteAtFilter.inf_ae_iff + theorem MeasureTheory.Measure.FiniteAtFilter.inf_of_left + theorem MeasureTheory.Measure.FiniteAtFilter.inf_of_right + def MeasureTheory.Measure.FiniteAtFilter + theorem MeasureTheory.Measure.FiniteSpanningSetsIn.disjointed_set_eq + def MeasureTheory.Measure.FiniteSpanningSetsIn.ofLE + structure MeasureTheory.Measure.FiniteSpanningSetsIn + theorem MeasureTheory.Measure.MeasurableSet.nullMeasurableSet_subtype_coe + theorem MeasureTheory.Measure.NullMeasurableSet.image + theorem MeasureTheory.Measure.NullMeasurableSet.subtype_coe + theorem MeasureTheory.Measure.QuasiMeasurePreserving.ae + theorem MeasureTheory.Measure.QuasiMeasurePreserving.ae_eq + theorem MeasureTheory.Measure.QuasiMeasurePreserving.ae_eq_comp + theorem MeasureTheory.Measure.QuasiMeasurePreserving.ae_map_le + theorem MeasureTheory.Measure.QuasiMeasurePreserving.exists_preimage_eq_of_preimage_ae + theorem MeasureTheory.Measure.QuasiMeasurePreserving.image_zpow_ae_eq + theorem MeasureTheory.Measure.QuasiMeasurePreserving.liminf_preimage_iterate_ae_eq + theorem MeasureTheory.Measure.QuasiMeasurePreserving.limsup_preimage_iterate_ae_eq + theorem MeasureTheory.Measure.QuasiMeasurePreserving.mono + theorem MeasureTheory.Measure.QuasiMeasurePreserving.mono_left + theorem MeasureTheory.Measure.QuasiMeasurePreserving.mono_right + theorem MeasureTheory.Measure.QuasiMeasurePreserving.preimage_ae_eq + theorem MeasureTheory.Measure.QuasiMeasurePreserving.preimage_iterate_ae_eq + theorem MeasureTheory.Measure.QuasiMeasurePreserving.preimage_mono_ae + theorem MeasureTheory.Measure.QuasiMeasurePreserving.preimage_null + theorem MeasureTheory.Measure.QuasiMeasurePreserving.smul_ae_eq_of_ae_eq + theorem MeasureTheory.Measure.QuasiMeasurePreserving.tendsto_ae + structure MeasureTheory.Measure.QuasiMeasurePreserving + theorem MeasureTheory.Measure.Subtype.volume_def + theorem MeasureTheory.Measure.Subtype.volume_univ + theorem MeasureTheory.Measure.absolutelyContinuous_of_eq + theorem MeasureTheory.Measure.absolutelyContinuous_of_le + theorem MeasureTheory.Measure.absolutelyContinuous_of_le_smul + theorem MeasureTheory.Measure.add_apply + theorem MeasureTheory.Measure.add_toOuterMeasure + theorem MeasureTheory.Measure.add_top + theorem MeasureTheory.Measure.ae_eq_image_of_ae_eq_comap + theorem MeasureTheory.Measure.ae_le_iff_absolutelyContinuous + theorem MeasureTheory.Measure.ae_smul_measure_iff + theorem MeasureTheory.Measure.ae_sum_eq + theorem MeasureTheory.Measure.ae_sum_iff' + theorem MeasureTheory.Measure.ae_sum_iff + def MeasureTheory.Measure.coeAddHom + theorem MeasureTheory.Measure.coe_add + theorem MeasureTheory.Measure.coe_finset_sum + theorem MeasureTheory.Measure.coe_nnreal_smul_apply + theorem MeasureTheory.Measure.coe_smul + theorem MeasureTheory.Measure.coe_zero + def MeasureTheory.Measure.cofinite + def MeasureTheory.Measure.comap + theorem MeasureTheory.Measure.comap_apply + theorem MeasureTheory.Measure.comap_apply₀ + theorem MeasureTheory.Measure.comap_preimage + def MeasureTheory.Measure.comapₗ + theorem MeasureTheory.Measure.comapₗ_apply + theorem MeasureTheory.Measure.comapₗ_eq_comap + theorem MeasureTheory.Measure.compl_mem_cofinite + def MeasureTheory.Measure.count + theorem MeasureTheory.Measure.count_apply + theorem MeasureTheory.Measure.count_apply_eq_top' + theorem MeasureTheory.Measure.count_apply_eq_top + theorem MeasureTheory.Measure.count_apply_finite' + theorem MeasureTheory.Measure.count_apply_finite + theorem MeasureTheory.Measure.count_apply_finset' + theorem MeasureTheory.Measure.count_apply_finset + theorem MeasureTheory.Measure.count_apply_infinite + theorem MeasureTheory.Measure.count_apply_lt_top' + theorem MeasureTheory.Measure.count_apply_lt_top + theorem MeasureTheory.Measure.count_empty + theorem MeasureTheory.Measure.count_eq_zero_iff' + theorem MeasureTheory.Measure.count_eq_zero_iff + theorem MeasureTheory.Measure.count_injective_image' + theorem MeasureTheory.Measure.count_injective_image + theorem MeasureTheory.Measure.count_ne_zero' + theorem MeasureTheory.Measure.count_ne_zero + theorem MeasureTheory.Measure.count_singleton' + theorem MeasureTheory.Measure.count_singleton + theorem MeasureTheory.Measure.countable_meas_level_set_pos + theorem MeasureTheory.Measure.countable_meas_pos_of_disjoint_of_meas_unionᵢ_ne_top + theorem MeasureTheory.Measure.countable_meas_pos_of_disjoint_unionᵢ + def MeasureTheory.Measure.dirac + theorem MeasureTheory.Measure.dirac_apply' + theorem MeasureTheory.Measure.dirac_apply + theorem MeasureTheory.Measure.dirac_apply_of_mem + theorem MeasureTheory.Measure.empty_of_count_eq_zero' + theorem MeasureTheory.Measure.empty_of_count_eq_zero + theorem MeasureTheory.Measure.eq_zero_of_isEmpty + theorem MeasureTheory.Measure.eventually_cofinite + theorem MeasureTheory.Measure.exists_eq_disjoint_finiteSpanningSetsIn + theorem MeasureTheory.Measure.exists_isOpen_measure_lt_top + theorem MeasureTheory.Measure.exists_measure_inter_spanningSets_pos + theorem MeasureTheory.Measure.exists_mem_of_measure_ne_zero_of_ae + theorem MeasureTheory.Measure.exists_subset_measure_lt_top + theorem MeasureTheory.Measure.ext_iff_of_bunionᵢ_eq_univ + theorem MeasureTheory.Measure.ext_iff_of_unionᵢ_eq_univ + theorem MeasureTheory.Measure.ext_iff_of_unionₛ_eq_univ + theorem MeasureTheory.Measure.ext_of_generateFrom_of_cover + theorem MeasureTheory.Measure.ext_of_generateFrom_of_cover_subset + theorem MeasureTheory.Measure.ext_of_generateFrom_of_unionᵢ + theorem MeasureTheory.Measure.finiteAtBot + theorem MeasureTheory.Measure.finiteAtFilterOfFinite + theorem MeasureTheory.Measure.finiteAt_nhds + theorem MeasureTheory.Measure.finiteAt_nhdsWithin + theorem MeasureTheory.Measure.finiteAt_principal + theorem MeasureTheory.Measure.finiteMeasureMap + def MeasureTheory.Measure.finiteSpanningSetsInCompact + def MeasureTheory.Measure.finiteSpanningSetsInOpen + theorem MeasureTheory.Measure.finite_const_le_meas_of_disjoint_unionᵢ + theorem MeasureTheory.Measure.finset_sum_apply + theorem MeasureTheory.Measure.forall_measure_inter_spanningSets_eq_zero + theorem MeasureTheory.Measure.infₛ_apply + theorem MeasureTheory.Measure.infₛ_caratheodory + theorem MeasureTheory.Measure.le_comap_apply + theorem MeasureTheory.Measure.le_count_apply + theorem MeasureTheory.Measure.le_dirac_apply + theorem MeasureTheory.Measure.le_iff' + theorem MeasureTheory.Measure.le_iff + theorem MeasureTheory.Measure.le_liftLinear_apply + theorem MeasureTheory.Measure.le_map_apply + theorem MeasureTheory.Measure.le_of_add_le_add_left + theorem MeasureTheory.Measure.le_restrict_apply + theorem MeasureTheory.Measure.le_sum + theorem MeasureTheory.Measure.le_sum_apply + def MeasureTheory.Measure.liftLinear + theorem MeasureTheory.Measure.liftLinear_apply + theorem MeasureTheory.Measure.locallyFiniteMeasure_of_le + theorem MeasureTheory.Measure.lt_iff' + theorem MeasureTheory.Measure.lt_iff + theorem MeasureTheory.Measure.map_add + theorem MeasureTheory.Measure.map_apply + theorem MeasureTheory.Measure.map_apply_of_aemeasurable + theorem MeasureTheory.Measure.map_congr + theorem MeasureTheory.Measure.map_dirac + theorem MeasureTheory.Measure.map_eq_sum + theorem MeasureTheory.Measure.map_id' + theorem MeasureTheory.Measure.map_id + theorem MeasureTheory.Measure.map_map + theorem MeasureTheory.Measure.map_mono + theorem MeasureTheory.Measure.map_of_not_aemeasurable + theorem MeasureTheory.Measure.map_toOuterMeasure + theorem MeasureTheory.Measure.map_zero + def MeasureTheory.Measure.mapₗ + theorem MeasureTheory.Measure.mapₗ_apply_of_measurable + theorem MeasureTheory.Measure.mapₗ_congr + theorem MeasureTheory.Measure.mapₗ_mk_apply_of_aemeasurable + theorem MeasureTheory.Measure.measure_eq_left_of_subset_of_measure_add_eq + theorem MeasureTheory.Measure.measure_eq_right_of_subset_of_measure_add_eq + theorem MeasureTheory.Measure.measure_image_eq_zero_of_comap_eq_zero + theorem MeasureTheory.Measure.measure_inter_eq_of_measure_eq + theorem MeasureTheory.Measure.measure_inter_eq_zero_of_restrict + theorem MeasureTheory.Measure.measure_subtype_coe_eq_zero_of_comap_eq_zero + theorem MeasureTheory.Measure.measure_subtype_coe_le_comap + theorem MeasureTheory.Measure.measure_toMeasurable_add_inter_left + theorem MeasureTheory.Measure.measure_toMeasurable_add_inter_right + theorem MeasureTheory.Measure.measure_toMeasurable_inter + theorem MeasureTheory.Measure.measure_toMeasurable_inter_of_cover + theorem MeasureTheory.Measure.measure_toMeasurable_inter_of_sigmaFinite + theorem MeasureTheory.Measure.measure_univ_eq_zero + theorem MeasureTheory.Measure.measure_univ_ne_zero + theorem MeasureTheory.Measure.measure_univ_pos + theorem MeasureTheory.Measure.mem_cofinite + theorem MeasureTheory.Measure.nnreal_smul_coe_apply + theorem MeasureTheory.Measure.nonpos_iff_eq_zero' + theorem MeasureTheory.Measure.pairwise_aedisjoint_of_aedisjoint_forall_ne_one + theorem MeasureTheory.Measure.preimage_null_of_map_null + def MeasureTheory.Measure.restrict + theorem MeasureTheory.Measure.restrict_add + theorem MeasureTheory.Measure.restrict_add_restrict_compl + theorem MeasureTheory.Measure.restrict_apply' + theorem MeasureTheory.Measure.restrict_apply + theorem MeasureTheory.Measure.restrict_apply_eq_zero' + theorem MeasureTheory.Measure.restrict_apply_eq_zero + theorem MeasureTheory.Measure.restrict_apply_self + theorem MeasureTheory.Measure.restrict_apply_superset + theorem MeasureTheory.Measure.restrict_apply_univ + theorem MeasureTheory.Measure.restrict_apply₀' + theorem MeasureTheory.Measure.restrict_apply₀ + theorem MeasureTheory.Measure.restrict_bunionᵢ_congr + theorem MeasureTheory.Measure.restrict_comm + theorem MeasureTheory.Measure.restrict_compl_add_restrict + theorem MeasureTheory.Measure.restrict_congr_meas + theorem MeasureTheory.Measure.restrict_congr_mono + theorem MeasureTheory.Measure.restrict_congr_set + theorem MeasureTheory.Measure.restrict_empty + theorem MeasureTheory.Measure.restrict_eq_self + theorem MeasureTheory.Measure.restrict_eq_self_of_ae_mem + theorem MeasureTheory.Measure.restrict_eq_zero + theorem MeasureTheory.Measure.restrict_finset_bunionᵢ_congr + theorem MeasureTheory.Measure.restrict_infₛ_eq_infₛ_restrict + theorem MeasureTheory.Measure.restrict_inter_add_diff + theorem MeasureTheory.Measure.restrict_inter_add_diff₀ + theorem MeasureTheory.Measure.restrict_le_self + theorem MeasureTheory.Measure.restrict_map + theorem MeasureTheory.Measure.restrict_mono' + theorem MeasureTheory.Measure.restrict_mono + theorem MeasureTheory.Measure.restrict_mono_ae + theorem MeasureTheory.Measure.restrict_restrict' + theorem MeasureTheory.Measure.restrict_restrict + theorem MeasureTheory.Measure.restrict_restrict_of_subset + theorem MeasureTheory.Measure.restrict_restrict₀' + theorem MeasureTheory.Measure.restrict_restrict₀ + theorem MeasureTheory.Measure.restrict_singleton' + theorem MeasureTheory.Measure.restrict_singleton + theorem MeasureTheory.Measure.restrict_smul + theorem MeasureTheory.Measure.restrict_sum + theorem MeasureTheory.Measure.restrict_toMeasurable + theorem MeasureTheory.Measure.restrict_toMeasurable_of_cover + theorem MeasureTheory.Measure.restrict_toMeasurable_of_sigmaFinite + theorem MeasureTheory.Measure.restrict_toOuterMeasure_eq_toOuterMeasure_restrict + theorem MeasureTheory.Measure.restrict_union' + theorem MeasureTheory.Measure.restrict_union + theorem MeasureTheory.Measure.restrict_union_add_inter' + theorem MeasureTheory.Measure.restrict_union_add_inter + theorem MeasureTheory.Measure.restrict_union_add_inter₀ + theorem MeasureTheory.Measure.restrict_union_congr + theorem MeasureTheory.Measure.restrict_union_le + theorem MeasureTheory.Measure.restrict_unionᵢ + theorem MeasureTheory.Measure.restrict_unionᵢ_ae + theorem MeasureTheory.Measure.restrict_unionᵢ_apply + theorem MeasureTheory.Measure.restrict_unionᵢ_apply_ae + theorem MeasureTheory.Measure.restrict_unionᵢ_apply_eq_supᵢ + theorem MeasureTheory.Measure.restrict_unionᵢ_congr + theorem MeasureTheory.Measure.restrict_unionᵢ_le + theorem MeasureTheory.Measure.restrict_union₀ + theorem MeasureTheory.Measure.restrict_unionₛ_congr + theorem MeasureTheory.Measure.restrict_univ + theorem MeasureTheory.Measure.restrict_zero + theorem MeasureTheory.Measure.restrict_zero_set + def MeasureTheory.Measure.restrictₗ + theorem MeasureTheory.Measure.restrictₗ_apply + theorem MeasureTheory.Measure.sigmaFinite_of_countable + theorem MeasureTheory.Measure.sigmaFinite_of_le + theorem MeasureTheory.Measure.smul_apply + theorem MeasureTheory.Measure.smul_finite + theorem MeasureTheory.Measure.smul_toOuterMeasure + def MeasureTheory.Measure.sum + theorem MeasureTheory.Measure.sum_add_sum + theorem MeasureTheory.Measure.sum_add_sum_compl + theorem MeasureTheory.Measure.sum_apply + theorem MeasureTheory.Measure.sum_apply_eq_zero' + theorem MeasureTheory.Measure.sum_apply_eq_zero + theorem MeasureTheory.Measure.sum_bool + theorem MeasureTheory.Measure.sum_coe_finset + theorem MeasureTheory.Measure.sum_comm + theorem MeasureTheory.Measure.sum_cond + theorem MeasureTheory.Measure.sum_congr + theorem MeasureTheory.Measure.sum_fintype + theorem MeasureTheory.Measure.sum_of_empty + theorem MeasureTheory.Measure.sum_smul_dirac + theorem MeasureTheory.Measure.supᵢ_restrict_spanningSets + theorem MeasureTheory.Measure.tendsto_ae_map + def MeasureTheory.Measure.toFiniteSpanningSetsIn + theorem MeasureTheory.Measure.toOuterMeasure_le + theorem MeasureTheory.Measure.top_add + def MeasureTheory.Measure.trim + theorem MeasureTheory.Measure.tsum_indicator_apply_singleton + theorem MeasureTheory.Measure.volume_subtype_coe_eq_zero_of_volume_eq_zero + theorem MeasureTheory.Measure.volume_subtype_coe_le_volume + theorem MeasureTheory.Measure.zero_toOuterMeasure + theorem MeasureTheory.NullMeasurableSet.mono + theorem MeasureTheory.NullMeasurableSet.mono_ac + theorem MeasureTheory.NullMeasurableSet.preimage + def MeasureTheory.OuterMeasure.toMeasure + theorem MeasureTheory.OuterMeasure.toMeasure_zero + theorem MeasureTheory.ProbabilityMeasure.ne_zero + theorem MeasureTheory.SigmaFinite.of_map + theorem MeasureTheory.SigmaFinite.out + theorem MeasureTheory.ae_add_measure_iff + theorem MeasureTheory.ae_dirac_eq + theorem MeasureTheory.ae_dirac_iff + theorem MeasureTheory.ae_eq_bot + theorem MeasureTheory.ae_eq_comp' + theorem MeasureTheory.ae_eq_comp + theorem MeasureTheory.ae_eq_dirac' + theorem MeasureTheory.ae_eq_dirac + theorem MeasureTheory.ae_eq_of_ae_eq_trim + theorem MeasureTheory.ae_eq_of_ae_subset_of_measure_ge + theorem MeasureTheory.ae_eq_of_subset_of_measure_ge + theorem MeasureTheory.ae_eq_restrict_bunionᵢ_finset_iff + theorem MeasureTheory.ae_eq_restrict_bunionᵢ_iff + theorem MeasureTheory.ae_eq_restrict_unionᵢ_iff + theorem MeasureTheory.ae_eq_univ_iff_measure_eq + theorem MeasureTheory.ae_eventually_not_mem + theorem MeasureTheory.ae_iff_measure_eq + theorem MeasureTheory.ae_imp_of_ae_restrict + theorem MeasureTheory.ae_le_of_ae_le_trim + theorem MeasureTheory.ae_map_iff + theorem MeasureTheory.ae_map_mem_range + theorem MeasureTheory.ae_mem_iff_measure_eq + theorem MeasureTheory.ae_mono + theorem MeasureTheory.ae_neBot + theorem MeasureTheory.ae_of_ae_map + theorem MeasureTheory.ae_of_ae_restrict_of_ae_restrict_compl + theorem MeasureTheory.ae_of_ae_trim + theorem MeasureTheory.ae_of_forall_measure_lt_top_ae_restrict' + theorem MeasureTheory.ae_of_forall_measure_lt_top_ae_restrict + theorem MeasureTheory.ae_restrict_bunionᵢ_eq + theorem MeasureTheory.ae_restrict_bunionᵢ_finset_eq + theorem MeasureTheory.ae_restrict_bunionᵢ_finset_iff + theorem MeasureTheory.ae_restrict_bunionᵢ_iff + theorem MeasureTheory.ae_restrict_congr_set + theorem MeasureTheory.ae_restrict_eq + theorem MeasureTheory.ae_restrict_eq_bot + theorem MeasureTheory.ae_restrict_iff' + theorem MeasureTheory.ae_restrict_iff'₀ + theorem MeasureTheory.ae_restrict_iff + theorem MeasureTheory.ae_restrict_mem + theorem MeasureTheory.ae_restrict_mem₀ + theorem MeasureTheory.ae_restrict_neBot + theorem MeasureTheory.ae_restrict_of_ae + theorem MeasureTheory.ae_restrict_of_ae_eq_of_ae_restrict + theorem MeasureTheory.ae_restrict_of_ae_restrict_of_subset + theorem MeasureTheory.ae_restrict_uIoc_eq + theorem MeasureTheory.ae_restrict_uIoc_iff + theorem MeasureTheory.ae_restrict_union_eq + theorem MeasureTheory.ae_restrict_union_iff + theorem MeasureTheory.ae_restrict_unionᵢ_eq + theorem MeasureTheory.ae_restrict_unionᵢ_iff + theorem MeasureTheory.ae_smul_measure + theorem MeasureTheory.ae_uIoc_iff + theorem MeasureTheory.ae_zero + theorem MeasureTheory.boundedBy_measure + theorem MeasureTheory.bsupᵢ_measure_Iic + theorem MeasureTheory.coe_measureUnivNNReal + theorem MeasureTheory.eventually_mem_spanningSets + theorem MeasureTheory.exists_mem_forall_mem_nhdsWithin_pos_measure + theorem MeasureTheory.exists_ne_forall_mem_nhds_pos_measure_preimage + theorem MeasureTheory.exists_nonempty_inter_of_measure_univ_lt_sum_measure + theorem MeasureTheory.exists_nonempty_inter_of_measure_univ_lt_tsum_measure + theorem MeasureTheory.exists_pos_ball + theorem MeasureTheory.exists_pos_measure_of_cover + theorem MeasureTheory.exists_pos_preimage_ball + theorem MeasureTheory.ext_of_generate_finite + theorem MeasureTheory.ext_on_measurableSpace_of_generate_finite + theorem MeasureTheory.finiteMeasureOfLe + theorem MeasureTheory.insert_ae_eq_self + theorem MeasureTheory.isCountablySpanning_spanningSets + theorem MeasureTheory.isProbabilityMeasureMap + theorem MeasureTheory.isProbabilityMeasureSmul + theorem MeasureTheory.ite_ae_eq_of_measure_compl_zero + theorem MeasureTheory.ite_ae_eq_of_measure_zero + theorem MeasureTheory.le_ae_restrict + theorem MeasureTheory.le_measure_diff + theorem MeasureTheory.le_toMeasure_apply + theorem MeasureTheory.le_toOuterMeasure_caratheodory + theorem MeasureTheory.le_trim + theorem MeasureTheory.liminf_ae_eq_of_forall_ae_eq + theorem MeasureTheory.limsup_ae_eq_of_forall_ae_eq + theorem MeasureTheory.locallyFiniteMeasure_of_finiteMeasureOnCompacts + theorem MeasureTheory.measurable_spanningSets + theorem MeasureTheory.measurable_spanningSetsIndex + def MeasureTheory.measureUnivNNReal + theorem MeasureTheory.measureUnivNNReal_eq_zero + theorem MeasureTheory.measureUnivNNReal_pos + theorem MeasureTheory.measureUnivNNReal_zero + theorem MeasureTheory.measure_add_diff + theorem MeasureTheory.measure_add_measure_compl + theorem MeasureTheory.measure_ball_lt_top + theorem MeasureTheory.measure_bunionᵢ + theorem MeasureTheory.measure_bunionᵢ_eq_supᵢ + theorem MeasureTheory.measure_bunionᵢ_finset + theorem MeasureTheory.measure_bunionᵢ_finset₀ + theorem MeasureTheory.measure_bunionᵢ_toMeasurable + theorem MeasureTheory.measure_bunionᵢ₀ + theorem MeasureTheory.measure_closedBall_lt_top + theorem MeasureTheory.measure_compl + theorem MeasureTheory.measure_compl_le_add_iff + theorem MeasureTheory.measure_compl_le_add_of_le_add + theorem MeasureTheory.measure_diff' + theorem MeasureTheory.measure_diff + theorem MeasureTheory.measure_diff_add_inter + theorem MeasureTheory.measure_diff_le_iff_le_add + theorem MeasureTheory.measure_diff_lt_of_lt_add + theorem MeasureTheory.measure_diff_null' + theorem MeasureTheory.measure_diff_null + theorem MeasureTheory.measure_eq_measure_larger_of_between_null_diff + theorem MeasureTheory.measure_eq_measure_of_between_null_diff + theorem MeasureTheory.measure_eq_measure_of_null_diff + theorem MeasureTheory.measure_eq_measure_smaller_of_between_null_diff + theorem MeasureTheory.measure_eq_zero_of_trim_eq_zero + theorem MeasureTheory.measure_if + theorem MeasureTheory.measure_inter_add_diff + theorem MeasureTheory.measure_interᵢ_eq_infᵢ + theorem MeasureTheory.measure_liminf_eq_zero + theorem MeasureTheory.measure_limsup_eq_zero + theorem MeasureTheory.measure_lt_top + theorem MeasureTheory.measure_ne_top + theorem MeasureTheory.measure_setOf_frequently_eq_zero + theorem MeasureTheory.measure_spanningSets_lt_top + theorem MeasureTheory.measure_toMeasurable_union + theorem MeasureTheory.measure_trim_toMeasurable_eq_zero + theorem MeasureTheory.measure_union' + theorem MeasureTheory.measure_union + theorem MeasureTheory.measure_union_add_inter' + theorem MeasureTheory.measure_union_add_inter + theorem MeasureTheory.measure_union_congr_of_subset + theorem MeasureTheory.measure_union_toMeasurable + theorem MeasureTheory.measure_unionᵢ_congr_of_subset + theorem MeasureTheory.measure_unionᵢ_eq_supᵢ + theorem MeasureTheory.measure_unionᵢ_toMeasurable + theorem MeasureTheory.measure_unionₛ + theorem MeasureTheory.measure_unionₛ₀ + theorem MeasureTheory.mem_ae_dirac_iff + theorem MeasureTheory.mem_ae_map_iff + theorem MeasureTheory.mem_ae_of_mem_ae_map + theorem MeasureTheory.mem_disjointed_spanningSetsIndex + theorem MeasureTheory.mem_map_restrict_ae_iff + theorem MeasureTheory.mem_spanningSetsIndex + theorem MeasureTheory.mem_spanningSets_of_index_le + theorem MeasureTheory.monotone_spanningSets + theorem MeasureTheory.nonempty_inter_of_measure_lt_add' + theorem MeasureTheory.nonempty_inter_of_measure_lt_add + theorem MeasureTheory.not_finiteMeasure_iff + theorem MeasureTheory.null_of_locally_null + theorem MeasureTheory.one_le_prob_iff + theorem MeasureTheory.preimage_spanningSetsIndex_singleton + theorem MeasureTheory.prob_add_prob_compl + theorem MeasureTheory.prob_compl_eq_one_iff + theorem MeasureTheory.prob_compl_eq_one_sub + theorem MeasureTheory.prob_compl_eq_zero_iff + theorem MeasureTheory.prob_le_one + theorem MeasureTheory.restrict_trim + theorem MeasureTheory.self_mem_ae_restrict + theorem MeasureTheory.sigmaFiniteTrim_mono + theorem MeasureTheory.sigmaFinite_bot_iff + theorem MeasureTheory.sigmaFinite_iff + theorem MeasureTheory.sigmaFinite_trim_bot_iff + def MeasureTheory.spanningSets + def MeasureTheory.spanningSetsIndex + theorem MeasureTheory.spanningSetsIndex_eq_iff + theorem MeasureTheory.sub_ae_eq_zero + theorem MeasureTheory.sum_measure_le_measure_univ + theorem MeasureTheory.sum_measure_preimage_singleton + theorem MeasureTheory.summable_measure_toReal + theorem MeasureTheory.tendsto_measure_binterᵢ_gt + theorem MeasureTheory.tendsto_measure_interᵢ + theorem MeasureTheory.tendsto_measure_unionᵢ + theorem MeasureTheory.toMeasure_apply + theorem MeasureTheory.toMeasure_apply₀ + theorem MeasureTheory.toMeasure_toOuterMeasure + theorem MeasureTheory.toOuterMeasure_toMeasure + theorem MeasureTheory.toOuterMeasure_trim_eq_trim_toOuterMeasure + theorem MeasureTheory.trim_eq_self + theorem MeasureTheory.trim_measurableSet_eq + theorem MeasureTheory.trim_trim + theorem MeasureTheory.tsum_meas_le_meas_unionᵢ_of_disjoint + theorem MeasureTheory.tsum_measure_le_measure_univ + theorem MeasureTheory.tsum_measure_preimage_singleton + theorem MeasureTheory.uIoc_ae_eq_interval + theorem MeasureTheory.union_ae_eq_left_iff_ae_subset + theorem MeasureTheory.union_ae_eq_right_iff_ae_subset + theorem MeasureTheory.unionᵢ_spanningSets + theorem MeasureTheory.zero_trim + theorem Metric.Bounded.measure_lt_top + theorem Set.Countable.ae_not_mem + theorem Set.Countable.measure_zero + theorem Set.Finite.measure_zero + theorem Set.Subsingleton.measure_zero + theorem ae_eq_restrict_iff_indicator_ae_eq + theorem ae_restrict_iff_subtype + theorem comap_subtype_coe_apply + theorem finiteMeasure_iff_finiteMeasureOnCompacts_of_compactSpace + theorem indicator_ae_eq_of_ae_eq_set + theorem indicator_ae_eq_of_restrict_compl_ae_eq_zero + theorem indicator_ae_eq_restrict + theorem indicator_ae_eq_restrict_compl + theorem indicator_ae_eq_zero_of_restrict_ae_eq_zero + theorem indicator_meas_zero + theorem map_comap_subtype_coe + theorem map_restrict_ae_le_map_indicator_ae + theorem measure_Icc_lt_top + theorem measure_Ico_lt_top + theorem measure_Ioc_lt_top + theorem measure_Ioo_lt_top + theorem mem_map_indicator_ae_iff_mem_map_restrict_ae_of_zero_mem + theorem mem_map_indicator_ae_iff_of_zero_nmem + theorem piecewise_ae_eq_of_ae_eq_set + theorem piecewise_ae_eq_restrict + theorem piecewise_ae_eq_restrict_compl + theorem volume_image_subtype_coe + theorem volume_preimage_coe + theorem volume_set_coe_def Modified Mathlib/MeasureTheory/Measure/OuterMeasure.lean 2023-05-08 22:44:20 9bac7ff fix: make `ConcreteCategory.Forget` reducible (#3857) This seems to help in downstream files, [See Zulip](https://leanprover.zulipchat.com/#narrow/stream/270676-lean4/topic/typeclass.20inference.20not.20seeing.20through.20reducible.20definition/near/356130343) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/ConcreteCategory/Basic.lean 2023-05-08 21:09:37 c418244 feat: port Topology.ContinuousFunction.Algebra (#3332) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Topology/ContinuousFunction/Algebra.lean + def ContinuousMap.C + theorem ContinuousMap.C_apply + def ContinuousMap.coeFnAlgHom + def ContinuousMap.coeFnLinearMap + def ContinuousMap.coeFnMonoidHom + def ContinuousMap.coeFnRingHom + theorem ContinuousMap.coe_div + theorem ContinuousMap.coe_int_cast + theorem ContinuousMap.coe_inv + theorem ContinuousMap.coe_mul + theorem ContinuousMap.coe_nat_cast + theorem ContinuousMap.coe_one + theorem ContinuousMap.coe_pow + theorem ContinuousMap.coe_prod + theorem ContinuousMap.coe_smul + theorem ContinuousMap.coe_star + theorem ContinuousMap.coe_zpow + def ContinuousMap.compMonoidHom' + def ContinuousMap.compRightAlgHom + def ContinuousMap.compStarAlgHom' + theorem ContinuousMap.compStarAlgHom'_comp + theorem ContinuousMap.compStarAlgHom'_id + theorem ContinuousMap.div_apply + theorem ContinuousMap.div_comp + theorem ContinuousMap.hasSum_apply + theorem ContinuousMap.inf_eq + theorem ContinuousMap.int_cast_apply + theorem ContinuousMap.inv_apply + theorem ContinuousMap.inv_comp + theorem ContinuousMap.mul_apply + theorem ContinuousMap.mul_comp + theorem ContinuousMap.nat_cast_apply + theorem ContinuousMap.one_apply + theorem ContinuousMap.one_comp + theorem ContinuousMap.periodic_tsum_comp_add_zsmul + theorem ContinuousMap.pow_apply + theorem ContinuousMap.pow_comp + theorem ContinuousMap.prod_apply + theorem ContinuousMap.smul_apply + theorem ContinuousMap.smul_comp + theorem ContinuousMap.star_apply + theorem ContinuousMap.summable_apply + theorem ContinuousMap.sup_eq + theorem ContinuousMap.tsum_apply + theorem ContinuousMap.zpow_apply + theorem ContinuousMap.zpow_comp + def Homeomorph.compStarAlgEquiv' + def Set.SeparatesPointsStrongly + theorem Subalgebra.SeparatesPoints.strongly + theorem Subalgebra.separatesPoints_monotone + theorem algebraMap_apply + def continuousSubalgebra + def continuousSubgroup + def continuousSubmodule + def continuousSubmonoid + def continuousSubring + def continuousSubsemiring + theorem max_eq_half_add_add_abs_sub + theorem min_eq_half_add_sub_abs_sub 2023-05-08 19:26:28 0d22228 chore(*): tweak priorities for linear algebra (#3840) We make sure that the canonical path from `NonAssocSemiring` to `Ring` passes through `Semiring`, as this is a path which is followed all the time in linear algebra where the defining semilinear map `σ : R →+* S` depends on the `NonAssocSemiring` structure of `R` and `S` while the module definition depends on the `Semiring` structure. Tt is not currently possible to adjust priorities by hand (see lean4#2115). Instead, the last declared instance is used, so we make sure that `Semiring` is declared after `NonAssocRing`, so that `Semiring -> NonAssocSemiring` is tried before `NonAssocRing -> NonAssocSemiring`. ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/Unitization.lean Modified Mathlib/Algebra/Order/Floor.lean Modified Mathlib/Algebra/Ring/Defs.lean Modified Mathlib/Algebra/Star/Basic.lean Modified Mathlib/Algebra/Star/SelfAdjoint.lean Modified Mathlib/Analysis/Normed/Field/Basic.lean Modified Mathlib/Analysis/NormedSpace/Star/Basic.lean Modified Mathlib/Analysis/Seminorm.lean Modified Mathlib/Data/MvPolynomial/CommRing.lean Modified Mathlib/Data/Polynomial/Eval.lean Modified Mathlib/Data/Polynomial/Splits.lean Modified Mathlib/Data/Rat/Cast.lean Modified Mathlib/Data/ZMod/Algebra.lean Modified Mathlib/Data/ZMod/Basic.lean Modified Mathlib/LinearAlgebra/AffineSpace/Independent.lean Modified Mathlib/LinearAlgebra/Matrix/Adjugate.lean Modified Mathlib/LinearAlgebra/Matrix/Determinant.lean Modified Mathlib/LinearAlgebra/Matrix/ToLin.lean Modified Mathlib/LinearAlgebra/Orientation.lean Modified Mathlib/NumberTheory/Zsqrtd/Basic.lean Modified Mathlib/RingTheory/Nilpotent.lean Modified Mathlib/RingTheory/Noetherian.lean Modified Mathlib/RingTheory/Subring/Basic.lean 2023-05-08 13:36:25 1c16791 chore: fix name in Mathlib.Topology.Algebra.Module (#3850) ESTIMATED CHANGES Modified Mathlib/Topology/Algebra/Module/Basic.lean + theorem ContinuousLinearMap.coe_prodMap' - theorem ContinuousLinearMap.coe_prod_map 2023-05-08 11:53:12 afde67a feat port: Topology.Algebra.Nonarchimedean.AdicTopology (#3826) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Topology/Algebra/Nonarchimedean/AdicTopology.lean + def Ideal.adicModuleTopology + def Ideal.adicTopology + theorem Ideal.adic_basis + theorem Ideal.adic_module_basis + theorem Ideal.hasBasis_nhds_adic + theorem Ideal.hasBasis_nhds_zero_adic + theorem Ideal.nonarchimedean + def Ideal.openAddSubgroup + def Ideal.ringFilterBasis + def IsAdic + def WithIdeal.topologicalSpaceModule + theorem isAdic_iff + theorem is_bot_adic_iff + theorem is_ideal_adic_pow 2023-05-08 11:21:34 5345880 feat: port Data.Complex.Orientation (#3849) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Data/Complex/Orientation.lean 2023-05-08 10:01:09 3d31c9e feat: port MeasureTheory.Tactic (#3816) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/MeasureTheory/MeasurableSpace.lean Modified Mathlib/MeasureTheory/MeasurableSpaceDef.lean +/- theorem MeasurableSpace.measurableSet_top Modified Mathlib/MeasureTheory/Measure/MeasureSpaceDef.lean + theorem Measurable.comp_aemeasurable' Added Mathlib/MeasureTheory/Tactic.lean Modified Mathlib/Tactic.lean Added Mathlib/Tactic/Measurability.lean Added Mathlib/Tactic/Measurability/Init.lean Added test/measurability.lean 2023-05-08 09:17:50 b81e363 feat: definition of krull dimension for a preordered set (#3704) Given a preordered set $(S, <)$, the krull dimension of $S$ is defined to be $\sup\{n | a_0 < a_1 < ... < a_n\}$ where the supremum takes place in extended natural numbers $\mathbb N \cup \{\pm \infty\}$, i.e. empty set is negative-infinite dimensional and a set with arbitrary long $a_0 < a_1 < ... < a_n$ is positive dimensional. Similar constructions in mathlib does require a chain to be nonempty so that empty set would have the wrong dimension, so I defined a new structure `StrictSeries` to avoid confusion with `chain`; in this structure, the underlying list is always nonempty. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Order/KrullDimension.lean + theorem StrictSeries.le_def + theorem StrictSeries.lt_def + def StrictSeries.singleton + theorem StrictSeries.top_len_unique' + theorem StrictSeries.top_len_unique + structure StrictSeries 2023-05-08 05:55:43 4c90d54 fix: remove lambda abstraction of `Nat.rec_zero` and `Nat.rec_add_one` (#3839) ```lean theorem rec_zero {C : ℕ → Sort u} (h0 : C 0) (h : ∀ n, C n → C (n + 1)) : (Nat.rec h0 h : ∀ n, C n) 0 = h0 := rfl ``` The above theorem is elaborated as follow: ```lean theorem rec_zero {C : ℕ → Sort u} (h0 : C 0) (h : ∀ n, C n → C (n + 1)) : (fun n => Nat.rec h0 h n) 0 = h0 := rfl ``` This form of the theorem isn't generic. This PR fixes this problem. ESTIMATED CHANGES Modified Mathlib/Data/Nat/Basic.lean 2023-05-08 05:55:41 39a4242 feat port: LinearAlgebra.Orientation (#3777) I had to add a bunch of `set_option synthInstance.etaExperiment true`, `set_option maxHeartbeats` and `set_option synthInstance.maxHeartbeats` to this file I tried to use the methods described in this [Zulip thread](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/maxHeartbeats/near/356217898) to remove some of the `maxHeartbeats` but I was not successful. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/LinearAlgebra/Orientation.lean + theorem Basis.abs_det_adjustToOrientation + def Basis.adjustToOrientation + theorem Basis.adjustToOrientation_apply_eq_or_eq_neg + theorem Basis.det_adjustToOrientation + theorem Basis.map_orientation_eq_det_inv_smul + theorem Basis.orientation_adjustToOrientation + theorem Basis.orientation_comp_linearEquiv_eq_iff_det_pos + theorem Basis.orientation_comp_linearEquiv_eq_neg_iff_det_neg + theorem Basis.orientation_eq_iff_det_pos + theorem Basis.orientation_eq_or_eq_neg + theorem Basis.orientation_isEmpty + theorem Basis.orientation_map + theorem Basis.orientation_ne_iff_eq_neg + theorem Basis.orientation_neg_single + theorem Basis.orientation_unitsSMul + theorem Orientation.eq_or_eq_neg + theorem Orientation.eq_or_eq_neg_of_isEmpty + def Orientation.map + theorem Orientation.map_apply + theorem Orientation.map_eq_det_inv_smul + theorem Orientation.map_eq_iff_det_pos + theorem Orientation.map_eq_neg_iff_det_neg + theorem Orientation.map_of_isEmpty + theorem Orientation.map_positiveOrientation_of_isEmpty + theorem Orientation.map_refl + theorem Orientation.map_symm + theorem Orientation.ne_iff_eq_neg + def Orientation.someBasis + theorem Orientation.someBasis_orientation 2023-05-08 05:55:40 3c74294 feat: port Analysis.SpecificLimits.Normed (#3419) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/SpecificLimits/Normed.lean + theorem Antitone.cauchySeq_alternating_series_of_tendsto_zero + theorem Antitone.cauchySeq_series_mul_of_tendsto_zero_of_bounded + theorem Antitone.tendsto_alternating_series_of_tendsto_zero + theorem Monotone.cauchySeq_alternating_series_of_tendsto_zero + theorem Monotone.cauchySeq_series_mul_of_tendsto_zero_of_bounded + theorem Monotone.tendsto_alternating_series_of_tendsto_zero + theorem NormedAddCommGroup.cauchy_series_of_le_geometric'' + theorem NormedAddCommGroup.cauchy_series_of_le_geometric' + theorem NormedField.continuousAt_inv + theorem NormedField.continuousAt_zpow + theorem NormedField.tendsto_norm_inverse_nhdsWithin_0_atTop + theorem NormedField.tendsto_norm_zpow_nhdsWithin_0_atTop + theorem NormedField.tendsto_zero_smul_of_tendsto_zero_of_bounded + theorem NormedRing.summable_geometric_of_norm_lt_1 + theorem NormedRing.tsum_geometric_of_norm_lt_1 + theorem Real.summable_pow_div_factorial + theorem Real.tendsto_pow_div_factorial_atTop + theorem TFAE_exists_lt_isLittleO_pow + theorem cauchySeq_finset_of_geometric_bound + theorem cauchy_series_of_le_geometric + theorem dist_partial_sum' + theorem dist_partial_sum + theorem dist_partial_sum_le_of_le_geometric + theorem geom_series_mul_neg + theorem hasSum_coe_mul_geometric_of_norm_lt_1 + theorem hasSum_geometric_of_abs_lt_1 + theorem hasSum_geometric_of_norm_lt_1 + theorem isBigO_pow_pow_of_le_left + theorem isLittleO_coe_const_pow_of_one_lt + theorem isLittleO_pow_const_const_pow_of_one_lt + theorem isLittleO_pow_const_mul_const_pow_const_pow_of_norm_lt + theorem isLittleO_pow_pow_of_abs_lt_left + theorem isLittleO_pow_pow_of_lt_left + theorem mul_neg_geom_series + theorem norm_sub_le_of_geometric_bound_of_hasSum + theorem norm_sum_neg_one_pow_le + theorem not_summable_of_ratio_norm_eventually_ge + theorem not_summable_of_ratio_test_tendsto_gt_one + theorem summable_geometric_iff_norm_lt_1 + theorem summable_geometric_of_abs_lt_1 + theorem summable_geometric_of_norm_lt_1 + theorem summable_norm_pow_mul_geometric_of_norm_lt_1 + theorem summable_of_absolute_convergence_real + theorem summable_of_ratio_norm_eventually_le + theorem summable_of_ratio_test_tendsto_lt_one + theorem summable_pow_mul_geometric_of_norm_lt_1 + theorem tendsto_norm_atTop_atTop + theorem tendsto_norm_zero' + theorem tendsto_pow_atTop_nhds_0_of_abs_lt_1 + theorem tendsto_pow_atTop_nhds_0_of_norm_lt_1 + theorem tendsto_pow_const_div_const_pow_of_one_lt + theorem tendsto_pow_const_mul_const_pow_of_abs_lt_one + theorem tendsto_pow_const_mul_const_pow_of_lt_one + theorem tendsto_self_mul_const_pow_of_abs_lt_one + theorem tendsto_self_mul_const_pow_of_lt_one + theorem tsum_coe_mul_geometric_of_norm_lt_1 + theorem tsum_geometric_of_abs_lt_1 + theorem tsum_geometric_of_norm_lt_1 2023-05-08 03:29:54 f53e4e5 fix: `lift` can't be used when the type of the goal is `Sort.{?u}` while `?u` is assigned by `0` (#3800) For example, this emits error. ```lean example (n : ℕ) : n = 0 ∨ ∃ p : ℕ+, n = p := by by_cases hn : 0 < n · lift n to ℕ+ using hn -- error right exact ⟨n, rfl⟩ · left exact Nat.eq_zero_of_nonpos _ hn ``` The cause is that `lift` doesn't instantiate level metavariables when checking that the type of the goal is `Prop`. This PR makes the above example available. Please refer to `test/lift.lean`. ESTIMATED CHANGES Modified Mathlib/Tactic/Lift.lean Modified test/lift.lean 2023-05-08 03:29:53 b429db2 feat: port Data.Sym.Card (#3109) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Data/Sym/Card.lean + theorem Finset.card_sym2 + theorem Sym.card_sym_eq_choose + theorem Sym.card_sym_eq_multichoose + theorem Sym.card_sym_fin_eq_multichoose + theorem Sym2.card_image_diag + theorem Sym2.card_image_offDiag + theorem Sym2.card_subtype_diag + theorem Sym2.card_subtype_not_diag + theorem Sym2.two_mul_card_image_offDiag 2023-05-08 03:07:17 da8157c feat: port Computability.Partrec (#3830) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Computability/Partrec.lean + theorem Computable.bind_decode_iff + theorem Computable.comp₂ + theorem Computable.cond + theorem Computable.const + theorem Computable.encode_iff + theorem Computable.fin_app + theorem Computable.fst + theorem Computable.list_append + theorem Computable.list_concat + theorem Computable.list_cons + theorem Computable.list_get? + theorem Computable.list_length + theorem Computable.list_ofFn + theorem Computable.list_reverse + theorem Computable.map_decode_iff + theorem Computable.nat_bodd + theorem Computable.nat_casesOn + theorem Computable.nat_div2 + theorem Computable.nat_rec + theorem Computable.nat_strong_rec + theorem Computable.of_eq + theorem Computable.of_option + theorem Computable.option_bind + theorem Computable.option_cases + theorem Computable.option_getD + theorem Computable.option_map + theorem Computable.option_some + theorem Computable.option_some_iff + theorem Computable.pred + theorem Computable.snd + theorem Computable.subtype_mk + theorem Computable.succ + theorem Computable.sum_cases + theorem Computable.sum_inl + theorem Computable.sum_inr + theorem Computable.to₂ + theorem Computable.unpair + theorem Computable.vector_cons + theorem Computable.vector_get + theorem Computable.vector_head + theorem Computable.vector_length + theorem Computable.vector_ofFn' + theorem Computable.vector_ofFn + theorem Computable.vector_tail + theorem Computable.vector_toList + def Computable + theorem Computable₂.comp₂ + def Computable₂ + theorem Decidable.Partrec.const' + theorem Nat.Partrec.none + theorem Nat.Partrec.of_eq + theorem Nat.Partrec.of_eq_tot + theorem Nat.Partrec.of_primrec + theorem Nat.Partrec.ppred + theorem Nat.Partrec.prec' + inductive Nat.Partrec + theorem Nat.mem_rfind + def Nat.rfind + def Nat.rfindOpt + theorem Nat.rfindOpt_dom + theorem Nat.rfindOpt_mono + theorem Nat.rfindOpt_spec + def Nat.rfindX + theorem Nat.rfind_dom' + theorem Nat.rfind_dom + theorem Nat.rfind_min' + theorem Nat.rfind_min + theorem Nat.rfind_spec + theorem Nat.rfind_zero_none + theorem Partrec.bind_decode₂_iff + theorem Partrec.const' + theorem Partrec.fix + theorem Partrec.fix_aux + theorem Partrec.map + theorem Partrec.map_encode_iff + theorem Partrec.nat_casesOn_right + theorem Partrec.nat_iff + theorem Partrec.nat_rec + theorem Partrec.none + theorem Partrec.of_eq + theorem Partrec.of_eq_tot + theorem Partrec.option_cases_right + theorem Partrec.option_some_iff + theorem Partrec.rfind + theorem Partrec.rfindOpt + theorem Partrec.sum_cases_left + theorem Partrec.sum_cases_right + theorem Partrec.to₂ + theorem Partrec.vector_mOfFn + def Partrec + theorem Partrec₂.comp₂ + theorem Partrec₂.unpaired' + theorem Partrec₂.unpaired + def Partrec₂ + theorem Primrec.to_comp + theorem Vector.mOfFn_part_some 2023-05-08 02:51:12 296aaf3 feat: port Topology.Category.Top.OpenNhds (#3834) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Topology/Category/Top/OpenNhds.lean + def IsOpenMap.adjunctionNhds + def IsOpenMap.functorNhds + def TopologicalSpace.OpenNhds.inclusion + def TopologicalSpace.OpenNhds.inclusionMapIso + theorem TopologicalSpace.OpenNhds.inclusionMapIso_hom + theorem TopologicalSpace.OpenNhds.inclusionMapIso_inv + theorem TopologicalSpace.OpenNhds.inclusion_obj + def TopologicalSpace.OpenNhds.infLeLeft + def TopologicalSpace.OpenNhds.infLeRight + def TopologicalSpace.OpenNhds.map + theorem TopologicalSpace.OpenNhds.map_id_obj' + theorem TopologicalSpace.OpenNhds.map_id_obj + theorem TopologicalSpace.OpenNhds.map_id_obj_unop + theorem TopologicalSpace.OpenNhds.map_obj + theorem TopologicalSpace.OpenNhds.op_map_id_obj + theorem TopologicalSpace.OpenNhds.openEmbedding + def TopologicalSpace.OpenNhds 2023-05-08 00:54:18 828c813 chore: forward-port leanprover-community/mathlib#18878 (#3742) ESTIMATED CHANGES Modified Mathlib/Algebra/BigOperators/Basic.lean + theorem Finset.prod_erase_lt_of_one_lt + theorem Finset.prod_pi_mulSingle' + theorem Finset.prod_pi_mulSingle - theorem Finset.sum_erase_lt_of_pos - theorem Finset.sum_pi_single' - theorem Finset.sum_pi_single Modified Mathlib/Algebra/BigOperators/Pi.lean - theorem AddMonoidHom.functions_ext' - theorem AddMonoidHom.functions_ext + theorem Finset.univ_prod_mulSingle - theorem Finset.univ_sum_single + theorem MonoidHom.functions_ext' + theorem MonoidHom.functions_ext 2023-05-08 00:54:17 2c51dda feat: port Analysis.Normed.Group.Quotient (#3457) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/Normed/Group/Quotient.lean + theorem AddSubgroup.ker_normedMk + theorem AddSubgroup.norm_normedMk + theorem AddSubgroup.norm_normedMk_le + theorem AddSubgroup.norm_trivial_quotient_mk + theorem AddSubgroup.normedMk.apply + theorem AddSubgroup.quotient_norm_eq + theorem AddSubgroup.surjective_normedMk + theorem Ideal.Quotient.norm_mk_le + theorem NormedAddGroupHom.IsQuotient.norm_le + theorem NormedAddGroupHom.IsQuotient.norm_lift + structure NormedAddGroupHom.IsQuotient + theorem NormedAddGroupHom.isQuotientQuotient + theorem NormedAddGroupHom.lift_mk + theorem NormedAddGroupHom.lift_normNoninc + theorem NormedAddGroupHom.lift_norm_le + theorem NormedAddGroupHom.lift_unique + theorem NormedAddGroupHom.norm_lift_le + theorem QuotientAddGroup.norm_eq_infDist + theorem QuotientAddGroup.norm_lift_apply_le + theorem QuotientAddGroup.norm_lt_iff + theorem QuotientAddGroup.norm_mk + theorem Submodule.Quotient.norm_mk_le + theorem bddBelow_image_norm + theorem image_norm_nonempty + theorem isGLB_quotient_norm + theorem norm_mk_eq_zero + theorem norm_mk_lt' + theorem norm_mk_lt + theorem norm_mk_nonneg + theorem norm_mk_zero + theorem quotient_nhd_basis + theorem quotient_norm_add_le + theorem quotient_norm_eq_zero_iff + theorem quotient_norm_mk_eq + theorem quotient_norm_mk_le' + theorem quotient_norm_mk_le + theorem quotient_norm_neg + theorem quotient_norm_nonneg + theorem quotient_norm_sub_rev Modified Mathlib/Data/Real/ENNReal.lean + theorem ENNReal.coe_infᵢ + theorem ENNReal.toNNReal_infᵢ + theorem ENNReal.toReal_infᵢ Modified Mathlib/Topology/MetricSpace/HausdorffDistance.lean + theorem Metric.infDist_eq_infᵢ 2023-05-08 00:35:14 acdc73b chore: add explicit name for instances in Analysis.Seminorm (#3759) Some names were extremely long. Example: [Seminorm.instConditionallyCompleteLatticeSeminormToSeminormedRingToSeminormedCommRingToNormedCommRingToAddGroupToSMulToZeroToNegZeroClassToSubNegZeroMonoidToSubtractionMonoidToDivisionAddCommMonoidToSMulZeroClassToZeroToCommMonoidWithZeroToCommGroupWithZeroToSemifieldToFieldToSMulWithZeroToMonoidWithZeroToSemiringToDivisionSemiringToMulActionWithZeroToAddCommMonoid](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Analysis/Seminorm.html#Seminorm.instConditionallyCompleteLatticeSeminormToSeminormedRingToSeminormedCommRingToNormedCommRingToAddGroupToSMulToZeroToNegZeroClassToSubNegZeroMonoidToSubtractionMonoidToDivisionAddCommMonoidToSMulZeroClassToZeroToCommMonoidWithZeroToCommGroupWithZeroToSemifieldToFieldToSMulWithZeroToMonoidWithZeroToSemiringToDivisionSemiringToMulActionWithZeroToAddCommMonoid) ESTIMATED CHANGES Modified Mathlib/Analysis/Seminorm.lean + def Seminorm.ofSMulLe - def Seminorm.ofSmulLe 2023-05-07 14:02:40 8e5a00a feat: port Algebra.ContinuedFractions.Computation.Translations (#3794) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/ContinuedFractions/Computation/Translations.lean + theorem GeneralizedContinuedFraction.IntFractPair.exists_succ_get?_stream_of_gcf_of_get?_eq_some + theorem GeneralizedContinuedFraction.IntFractPair.exists_succ_nth_stream_of_fr_zero + theorem GeneralizedContinuedFraction.IntFractPair.get?_seq1_eq_succ_get?_stream + theorem GeneralizedContinuedFraction.IntFractPair.seq1_fst_eq_of + theorem GeneralizedContinuedFraction.IntFractPair.stream_eq_none_of_fr_eq_zero + theorem GeneralizedContinuedFraction.IntFractPair.stream_succ + theorem GeneralizedContinuedFraction.IntFractPair.stream_succ_of_int + theorem GeneralizedContinuedFraction.IntFractPair.stream_succ_of_some + theorem GeneralizedContinuedFraction.IntFractPair.stream_zero + theorem GeneralizedContinuedFraction.IntFractPair.succ_nth_stream_eq_none_iff + theorem GeneralizedContinuedFraction.IntFractPair.succ_nth_stream_eq_some_iff + theorem GeneralizedContinuedFraction.convergents'_of_int + theorem GeneralizedContinuedFraction.convergents'_succ + theorem GeneralizedContinuedFraction.get?_of_eq_some_of_get?_intFractPair_stream_fr_ne_zero + theorem GeneralizedContinuedFraction.get?_of_eq_some_of_succ_get?_intFractPair_stream + theorem GeneralizedContinuedFraction.of_h_eq_floor + theorem GeneralizedContinuedFraction.of_h_eq_intFractPair_seq1_fst_b + theorem GeneralizedContinuedFraction.of_s_head + theorem GeneralizedContinuedFraction.of_s_head_aux + theorem GeneralizedContinuedFraction.of_s_of_int + theorem GeneralizedContinuedFraction.of_s_succ + theorem GeneralizedContinuedFraction.of_s_tail + theorem GeneralizedContinuedFraction.of_terminatedAt_iff_intFractPair_seq1_terminatedAt + theorem GeneralizedContinuedFraction.of_terminatedAt_n_iff_succ_nth_intFractPair_stream_eq_none 2023-05-07 13:25:52 e6aac88 chore: forward port leanprover-community/mathlib#18951 (#3837) ESTIMATED CHANGES Modified Mathlib/Algebra/Order/LatticeGroup.lean 2023-05-07 09:18:13 2d2ad99 chore: forward port leanprover-community/mathlib#18866 (#3813) ESTIMATED CHANGES Modified Mathlib/Algebra/GroupPower/Order.lean + theorem abs_pow_eq_one Modified Mathlib/Algebra/Ring/Equiv.lean + theorem RingEquiv.map_eq_neg_one_iff 2023-05-07 09:18:12 598f6c1 feat: library_search tries most specific lemmas first, and then those with shorter names first (#3725) It turns out that `DiscrTree.getMatch` returns more specific results later than less specific ones, and so we want to put a `.reverse` in, as `library_search` is more likely to be able to make use of the more specific lemmas. Additionally, within each "batch" of lemmas in the DiscrTree, we sort them so that those with shorter names are tried before those with longer names. You shouldn't expect this to be anymore successful, I think, but maybe the user will be happier getting shorter results rather than longer ones. See some further discussion at [zulip](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/library_search.20timeout/near/356406350). - [x] depends on: #3771 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) ESTIMATED CHANGES Modified Mathlib/Lean/Meta/DiscrTree.lean +/- def Lean.Meta.DiscrTree.insertIfSpecific + def Lean.Meta.DiscrTree.mapArrays + def Lean.Meta.DiscrTree.mapArraysM Modified Mathlib/Tactic/Cache.lean Modified Mathlib/Tactic/LibrarySearch.lean 2023-05-07 08:52:06 af9dc0f chore: forward port leanprover-community/mathlib#18479 (#3829) ESTIMATED CHANGES Modified Mathlib/Data/MvPolynomial/Basic.lean + theorem MvPolynomial.eval_mem + theorem MvPolynomial.eval₂_mem 2023-05-07 08:35:59 acf194c feat: speedup library_search by using two DiscrTrees (#3771) Previously, `library_search` used a single `DiscrTree`. There is a cached `DiscrTree` covering the whole library (and which is cached to disk), and then when we call `library_search`, we traverse the declarations in the current file, adding those into that `DiscrTree`. This PR speeds up that process by using a second independent `DiscrTree` for the declarations in the current file. This means that the cached tree for the library does not need to be "edited in place", and so we save some time. On the test file on my computer this speeds up from around 10.0s to around 8.2s. When calling `library_search` low down in a large file we should expect larger gains. The PR also does some refactoring work on `DeclCache`, which will be useful if/when we install global caching for other lookup tactics such as `propose` or [`rewrites`](https://github.com/leanprover-community/mathlib4/pull/3119). ESTIMATED CHANGES Modified Mathlib/Tactic/Cache.lean + structure Mathlib.Tactic.DeclCache - def Mathlib.Tactic.DeclCache + def Mathlib.Tactic.DiscrTreeCache.getMatch + def Mathlib.Tactic.DiscrTreeCache.mk + def Mathlib.Tactic.DiscrTreeCache Modified Mathlib/Tactic/LibrarySearch.lean +/- def Mathlib.Tactic.LibrarySearch.buildDiscrTree +/- def Mathlib.Tactic.LibrarySearch.librarySearch +/- def Mathlib.Tactic.LibrarySearch.librarySearchCore +/- def Mathlib.Tactic.LibrarySearch.librarySearchLemmas + def Mathlib.Tactic.LibrarySearch.processLemma Modified MathlibExtras/LibrarySearch.lean 2023-05-07 07:13:52 e24da2b chore: forward-port leanprover-community/mathlib#18934 (#3806) ESTIMATED CHANGES Modified Mathlib/RingTheory/Congruence.lean Modified Mathlib/RingTheory/Ideal/Quotient.lean 2023-05-07 07:13:51 84ce374 chore: forward-port leanprover-community/mathlib#18902 (#3770) ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/Subalgebra/Basic.lean Modified Mathlib/Algebra/Module/Submodule/Basic.lean 2023-05-07 05:02:30 14167e4 chore: bye-bye, solo `by`s! (#3825) This PR puts, with one exception, every single remaining `by` that lies all by itself on its own line to the previous line, thus matching the current behaviour of `start-port.sh`. The exception is when the `by` begins the second or later argument to a tuple or anonymous constructor; see https://github.com/leanprover-community/mathlib4/pull/3825#discussion_r1186702599. Essentially this is `s/\n *by$/ by/g`, but with manual editing to satisfy the linter's max-100-char-line requirement. The Python style linter is also modified to catch these "isolated `by`s". ESTIMATED CHANGES Modified Mathlib/Algebra/AddTorsor.lean +/- theorem neg_vsub_eq_vsub_rev +/- theorem vadd_vsub_assoc +/- theorem vsub_add_vsub_cancel +/- theorem vsub_right_cancel Modified Mathlib/Algebra/Algebra/Operations.lean +/- theorem Submodule.pow_toAddSubmonoid Modified Mathlib/Algebra/Algebra/Subalgebra/Basic.lean Modified Mathlib/Algebra/Algebra/Unitization.lean Modified Mathlib/Algebra/Associated.lean Modified Mathlib/Algebra/BigOperators/Associated.lean Modified Mathlib/Algebra/BigOperators/Finprod.lean Modified Mathlib/Algebra/BigOperators/Intervals.lean Modified Mathlib/Algebra/BigOperators/Multiset/Basic.lean +/- theorem Multiset.pow_card_le_prod +/- theorem Multiset.prod_eq_zero +/- theorem Multiset.prod_le_pow_card +/- theorem Multiset.prod_toList Modified Mathlib/Algebra/BigOperators/NatAntidiagonal.lean +/- theorem Finset.Nat.prod_antidiagonal_succ' Modified Mathlib/Algebra/BigOperators/Order.lean +/- theorem Finset.prod_le_prod_of_ne_one' Modified Mathlib/Algebra/BigOperators/Ring.lean Modified Mathlib/Algebra/DirectSum/Basic.lean Modified Mathlib/Algebra/FreeAlgebra.lean +/- theorem FreeAlgebra.lift_comp_ι Modified Mathlib/Algebra/GCDMonoid/Basic.lean Modified Mathlib/Algebra/GeomSum.lean +/- theorem geom_sum_mul_neg +/- theorem op_geom_sum₂ Modified Mathlib/Algebra/GradedMonoid.lean +/- theorem List.dProdIndex_eq_map_sum +/- theorem SetLike.pow_mem_graded Modified Mathlib/Algebra/Group/UniqueProds.lean Modified Mathlib/Algebra/GroupPower/Lemmas.lean Modified Mathlib/Algebra/GroupPower/Order.lean Modified Mathlib/Algebra/Hom/GroupAction.lean +/- theorem DistribMulActionHom.ext_ring +/- theorem DistribMulActionHom.toAddMonoidHom_injective Modified Mathlib/Algebra/Homology/Homotopy.lean +/- def Homotopy.nullHomotopy' Modified Mathlib/Algebra/IndicatorFunction.lean Modified Mathlib/Algebra/Lie/Basic.lean +/- theorem LieModuleEquiv.toEquiv_injective Modified Mathlib/Algebra/Module/LinearMap.lean Modified Mathlib/Algebra/Module/PointwisePi.lean Modified Mathlib/Algebra/MonoidAlgebra/Basic.lean Modified Mathlib/Algebra/Order/Floor.lean Modified Mathlib/Algebra/Order/Hom/Basic.lean +/- theorem map_div_le_add Modified Mathlib/Algebra/Order/LatticeGroup.lean Modified Mathlib/Algebra/Order/UpperLower.lean +/- theorem IsUpperSet.div_left +/- theorem IsUpperSet.div_right +/- theorem IsUpperSet.mul_left +/- theorem IsUpperSet.mul_right +/- theorem IsUpperSet.smul +/- theorem Set.OrdConnected.smul +/- theorem lowerClosure_mul +/- theorem upperClosure_mul Modified Mathlib/Algebra/Polynomial/BigOperators.lean +/- theorem Polynomial.leadingCoeff_multiset_prod +/- theorem Polynomial.natDegree_multiset_prod Modified Mathlib/Algebra/Polynomial/GroupRingAction.lean Modified Mathlib/Algebra/Star/Subalgebra.lean Modified Mathlib/Algebra/Support.lean +/- theorem Function.range_subset_insert_image_mulSupport Modified Mathlib/AlgebraicTopology/DoldKan/Compatibility.lean +/- theorem AlgebraicTopology.DoldKan.Compatibility.equivalence₂CounitIso_eq Modified Mathlib/AlgebraicTopology/SimplexCategory.lean Modified Mathlib/Analysis/Asymptotics/Asymptotics.lean +/- theorem Asymptotics.isBigO_const_iff +/- theorem Asymptotics.isBigO_one_iff Modified Mathlib/Analysis/Asymptotics/SpecificAsymptotics.lean +/- theorem tendsto_zpow_atTop_atTop Modified Mathlib/Analysis/Asymptotics/SuperpolynomialDecay.lean Modified Mathlib/Analysis/BoxIntegral/Box/Basic.lean Modified Mathlib/Analysis/Convex/Basic.lean +/- theorem Convex.linear_preimage +/- theorem convex_iff_pairwise_pos Modified Mathlib/Analysis/Convex/Combination.lean Modified Mathlib/Analysis/Convex/Segment.lean +/- theorem mem_openSegment_iff_div +/- theorem segment_eq_image_lineMap Modified Mathlib/Analysis/Convex/Star.lean +/- theorem StarConvex.mem_smul +/- theorem StarConvex.union +/- theorem starConvex_iff_div +/- theorem starConvex_iff_forall_pos Modified Mathlib/Analysis/Convex/Strict.lean +/- theorem StrictConvex.add Modified Mathlib/Analysis/Convex/Topology.lean Modified Mathlib/Analysis/LocallyConvex/BalancedCoreHull.lean Modified Mathlib/Analysis/LocallyConvex/Basic.lean +/- theorem Absorbs.sub +/- theorem balanced_zero_union_interior Modified Mathlib/Analysis/Normed/Field/Basic.lean +/- theorem dist_inv_inv₀ Modified Mathlib/Analysis/Normed/Group/Basic.lean +/- theorem pow_mem_closedBall Modified Mathlib/Analysis/Normed/Group/Seminorm.lean Modified Mathlib/Analysis/Normed/Order/Lattice.lean Modified Mathlib/Analysis/NormedSpace/ConformalLinearMap.lean +/- theorem IsConformalMap.smul Modified Mathlib/Analysis/NormedSpace/MStructure.lean Modified Mathlib/CategoryTheory/Abelian/Basic.lean Modified Mathlib/CategoryTheory/Abelian/Exact.lean +/- theorem CategoryTheory.Abelian.exact_of_is_cokernel Modified Mathlib/CategoryTheory/Adjunction/Basic.lean Modified Mathlib/CategoryTheory/Adjunction/Comma.lean Modified Mathlib/CategoryTheory/Adjunction/FullyFaithful.lean Modified Mathlib/CategoryTheory/Adjunction/Limits.lean Modified Mathlib/CategoryTheory/Adjunction/Opposites.lean Modified Mathlib/CategoryTheory/Adjunction/Reflective.lean Modified Mathlib/CategoryTheory/Arrow.lean +/- theorem CategoryTheory.Arrow.mk_injective Modified Mathlib/CategoryTheory/Bicategory/Basic.lean Modified Mathlib/CategoryTheory/Bicategory/Functor.lean Modified Mathlib/CategoryTheory/Comma.lean +/- theorem CategoryTheory.Comma.eqToHom_right Modified Mathlib/CategoryTheory/ConcreteCategory/ReflectsIso.lean Modified Mathlib/CategoryTheory/DiscreteCategory.lean +/- theorem CategoryTheory.Discrete.functor_map_id Modified Mathlib/CategoryTheory/EqToHom.lean Modified Mathlib/CategoryTheory/Equivalence.lean +/- theorem CategoryTheory.Equivalence.functor_asEquivalence +/- theorem CategoryTheory.Equivalence.inverse_asEquivalence +/- theorem CategoryTheory.IsEquivalence.ofIso_refl Modified Mathlib/CategoryTheory/Filtered.lean +/- theorem CategoryTheory.IsFiltered.coeq₃_condition₂ Modified Mathlib/CategoryTheory/Functor/Currying.lean Modified Mathlib/CategoryTheory/Functor/EpiMono.lean Modified Mathlib/CategoryTheory/Generator.lean +/- theorem CategoryTheory.IsSeparating.isDetecting Modified Mathlib/CategoryTheory/Groupoid/Basic.lean +/- theorem CategoryTheory.Groupoid.isThin_iff Modified Mathlib/CategoryTheory/LiftingProperties/Basic.lean Modified Mathlib/CategoryTheory/Limits/Comma.lean Modified Mathlib/CategoryTheory/Limits/ConcreteCategory.lean Modified Mathlib/CategoryTheory/Limits/Constructions/BinaryProducts.lean Modified Mathlib/CategoryTheory/Limits/Constructions/Equalizers.lean Modified Mathlib/CategoryTheory/Limits/Constructions/FiniteProductsOfBinaryProducts.lean Modified Mathlib/CategoryTheory/Limits/Constructions/Pullbacks.lean Modified Mathlib/CategoryTheory/Limits/Creates.lean Modified Mathlib/CategoryTheory/Limits/FilteredColimitCommutesFiniteLimit.lean +/- theorem CategoryTheory.Limits.colimitLimitToLimitColimit_injective Modified Mathlib/CategoryTheory/Limits/Final.lean Modified Mathlib/CategoryTheory/Limits/FunctorCategory.lean Modified Mathlib/CategoryTheory/Limits/HasLimits.lean +/- theorem CategoryTheory.Limits.colimit.ι_post Modified Mathlib/CategoryTheory/Limits/Lattice.lean Modified Mathlib/CategoryTheory/Limits/MonoCoprod.lean Modified Mathlib/CategoryTheory/Limits/Opposites.lean Modified Mathlib/CategoryTheory/Limits/Preserves/Basic.lean Modified Mathlib/CategoryTheory/Limits/Preserves/Shapes/Equalizers.lean Modified Mathlib/CategoryTheory/Limits/Preserves/Shapes/Pullbacks.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Biproducts.lean Modified Mathlib/CategoryTheory/Limits/Shapes/CommSq.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Images.lean Modified Mathlib/CategoryTheory/Limits/Shapes/KernelPair.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Kernels.lean Modified Mathlib/CategoryTheory/Limits/Shapes/NormalMono/Equalizers.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Products.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Pullbacks.lean +/- def CategoryTheory.Limits.pullbackPullbackLeftIsPullback Modified Mathlib/CategoryTheory/Limits/Shapes/RegularMono.lean Modified Mathlib/CategoryTheory/Limits/Shapes/WidePullbacks.lean +/- theorem CategoryTheory.Limits.WidePullback.hom_ext +/- theorem CategoryTheory.Limits.WidePushout.hom_ext Modified Mathlib/CategoryTheory/Limits/Shapes/ZeroMorphisms.lean +/- theorem CategoryTheory.Limits.hasZeroObject_of_hasInitial_object +/- theorem CategoryTheory.Limits.isIso_of_source_target_iso_zero Modified Mathlib/CategoryTheory/Limits/Types.lean Modified Mathlib/CategoryTheory/Limits/Yoneda.lean Modified Mathlib/CategoryTheory/Linear/Basic.lean Modified Mathlib/CategoryTheory/Localization/Construction.lean Modified Mathlib/CategoryTheory/Localization/Predicate.lean Modified Mathlib/CategoryTheory/Monoidal/Category.lean +/- theorem CategoryTheory.MonoidalCategory.comp_tensor_id +/- theorem CategoryTheory.MonoidalCategory.id_tensor_comp +/- theorem CategoryTheory.MonoidalCategory.id_tensor_comp_tensor_id +/- theorem CategoryTheory.MonoidalCategory.tensor_id_comp_id_tensor Modified Mathlib/CategoryTheory/Monoidal/End.lean Modified Mathlib/CategoryTheory/Monoidal/Free/Basic.lean Modified Mathlib/CategoryTheory/Monoidal/Functor.lean Modified Mathlib/CategoryTheory/MorphismProperty.lean Modified Mathlib/CategoryTheory/Over.lean +/- theorem CategoryTheory.Under.UnderMorphism.ext Modified Mathlib/CategoryTheory/Pi/Basic.lean Modified Mathlib/CategoryTheory/Preadditive/Biproducts.lean Modified Mathlib/CategoryTheory/Quotient.lean +/- theorem CategoryTheory.Quotient.lift_spec +/- theorem CategoryTheory.Quotient.lift_unique Modified Mathlib/CategoryTheory/Sites/Grothendieck.lean +/- theorem CategoryTheory.GrothendieckTopology.ext Modified Mathlib/CategoryTheory/Sites/Plus.lean +/- theorem CategoryTheory.GrothendieckTopology.isoToPlus_inv Modified Mathlib/CategoryTheory/Sites/Sieves.lean Modified Mathlib/CategoryTheory/Sites/Spaces.lean Modified Mathlib/CategoryTheory/StructuredArrow.lean Modified Mathlib/CategoryTheory/Yoneda.lean +/- theorem CategoryTheory.Functor.coreprW_app_hom Modified Mathlib/Combinatorics/Catalan.lean +/- theorem Tree.mem_treesOfNumNodesEq Modified Mathlib/Combinatorics/Colex.lean +/- theorem Colex.colex_le_of_subset +/- theorem Colex.colex_lt_of_ssubset Modified Mathlib/Combinatorics/Composition.lean Modified Mathlib/Combinatorics/Derangements/Basic.lean Modified Mathlib/Combinatorics/Derangements/Finite.lean Modified Mathlib/Combinatorics/Hall/Finite.lean Modified Mathlib/Combinatorics/Partition.lean Modified Mathlib/Combinatorics/Quiver/Arborescence.lean Modified Mathlib/Combinatorics/Quiver/Path.lean Modified Mathlib/Combinatorics/SetFamily/Compression/Down.lean +/- theorem Down.card_compression +/- theorem Down.compression_idem +/- theorem Down.erase_mem_compression +/- theorem Down.erase_mem_compression_of_mem_compression +/- theorem Down.mem_compression +/- theorem Down.mem_compression_of_insert_mem_compression +/- theorem Finset.mem_memberSubfamily +/- theorem Finset.memberSubfamily_memberSubfamily +/- theorem Finset.memberSubfamily_nonMemberSubfamily Modified Mathlib/Combinatorics/SetFamily/Compression/UV.lean +/- theorem UV.compress_idem Modified Mathlib/Combinatorics/SetFamily/HarrisKleitman.lean Modified Mathlib/Combinatorics/SetFamily/LYM.lean Modified Mathlib/Combinatorics/SimpleGraph/Basic.lean Modified Mathlib/Combinatorics/SimpleGraph/Connectivity.lean +/- theorem SimpleGraph.isBridge_iff_adj_and_forall_cycle_not_mem +/- theorem SimpleGraph.reachable_iff_reflTransGen Modified Mathlib/Combinatorics/SimpleGraph/IncMatrix.lean +/- theorem SimpleGraph.incMatrix_apply_mul_incMatrix_apply Modified Mathlib/Combinatorics/SimpleGraph/Partition.lean Modified Mathlib/Combinatorics/SimpleGraph/Regularity/Equitabilise.lean Modified Mathlib/Combinatorics/SimpleGraph/Regularity/Uniform.lean +/- theorem SimpleGraph.nonuniformWitness_spec Modified Mathlib/Combinatorics/SimpleGraph/Trails.lean Modified Mathlib/Combinatorics/SimpleGraph/Triangle/Basic.lean +/- theorem SimpleGraph.FarFromTriangleFree.nonpos Modified Mathlib/Combinatorics/Young/YoungDiagram.lean Modified Mathlib/Computability/DFA.lean Modified Mathlib/Computability/Encoding.lean +/- theorem Computability.Encoding.card_le_aleph0 Modified Mathlib/Computability/Primrec.lean +/- theorem Primrec₂.nat_iff Modified Mathlib/Computability/RegularExpressions.lean +/- theorem RegularExpression.rmatch_iff_matches' Modified Mathlib/Control/Applicative.lean Modified Mathlib/Control/Basic.lean Modified Mathlib/Control/Functor/Multivariate.lean Modified Mathlib/Data/Analysis/Filter.lean Modified Mathlib/Data/Bitvec/Basic.lean Modified Mathlib/Data/Complex/Basic.lean Modified Mathlib/Data/Complex/Exponential.lean Modified Mathlib/Data/Dfinsupp/Basic.lean Modified Mathlib/Data/Fin/Tuple/NatAntidiagonal.lean Modified Mathlib/Data/Fin/VecNotation.lean Modified Mathlib/Data/Finset/Basic.lean +/- theorem Finset.disjoint_of_erase_left +/- theorem Finset.disjoint_of_erase_right +/- theorem Finset.nodup_toList Modified Mathlib/Data/Finset/Card.lean +/- theorem Finset.one_lt_card_iff Modified Mathlib/Data/Finset/Finsupp.lean +/- theorem Finset.mem_finsupp_iff Modified Mathlib/Data/Finset/Functor.lean Modified Mathlib/Data/Finset/Image.lean Modified Mathlib/Data/Finset/Lattice.lean Modified Mathlib/Data/Finset/NAry.lean +/- theorem Finset.image₂_nonempty_iff +/- theorem Finset.image₂_subset Modified Mathlib/Data/Finset/NoncommProd.lean Modified Mathlib/Data/Finset/Pairwise.lean Modified Mathlib/Data/Finset/Pi.lean Modified Mathlib/Data/Finset/Pointwise.lean Modified Mathlib/Data/Finset/Powerset.lean +/- theorem Finset.empty_mem_ssubsets +/- theorem Finset.powersetLen_self +/- theorem Finset.powersetLen_zero Modified Mathlib/Data/Finset/Prod.lean +/- theorem Finset.diag_card +/- theorem Finset.diag_union +/- theorem Finset.inter_product +/- theorem Finset.product_image_fst +/- theorem Finset.product_image_snd +/- theorem Finset.product_inter +/- theorem Finset.product_singleton +/- theorem Finset.product_union +/- theorem Finset.singleton_product +/- theorem Finset.union_product Modified Mathlib/Data/Finset/Sigma.lean Modified Mathlib/Data/Finset/Sum.lean +/- theorem Finset.disjoint_map_inl_map_inr Modified Mathlib/Data/Finset/Sym.lean Modified Mathlib/Data/Finsupp/AList.lean +/- theorem Finsupp.toAList_keys_toFinset Modified Mathlib/Data/Finsupp/Basic.lean +/- theorem Finsupp.mapDomain_equiv_apply Modified Mathlib/Data/Finsupp/Defs.lean +/- theorem Finsupp.embDomain_single +/- theorem Finsupp.support_subset_iff Modified Mathlib/Data/Fintype/Basic.lean +/- theorem Fin.image_succAbove_univ +/- theorem Finset.Nonempty.eq_univ +/- theorem Finset.compl_erase +/- theorem Finset.compl_insert +/- theorem Finset.insert_inj_on' +/- theorem Function.Embedding.invFun_restrict +/- theorem Function.Injective.invFun_restrict +/- theorem Set.toFinset_compl +/- theorem Set.toFinset_diff +/- theorem Set.toFinset_empty +/- theorem Set.toFinset_inter +/- theorem Set.toFinset_singleton +/- theorem Set.toFinset_symmDiff +/- theorem Set.toFinset_union Modified Mathlib/Data/Fintype/BigOperators.lean Modified Mathlib/Data/Fintype/Card.lean Modified Mathlib/Data/Fintype/Option.lean Modified Mathlib/Data/Fintype/Pi.lean +/- theorem Fintype.mem_piFinset Modified Mathlib/Data/Fintype/Powerset.lean Modified Mathlib/Data/Int/Interval.lean Modified Mathlib/Data/Int/ModEq.lean +/- theorem Int.ModEq.cancel_right_div_gcd Modified Mathlib/Data/Int/SuccPred.lean +/- theorem Nat.cast_int_covby_iff Modified Mathlib/Data/List/AList.lean +/- theorem AList.insert_insert Modified Mathlib/Data/List/BigOperators/Basic.lean Modified Mathlib/Data/List/BigOperators/Lemmas.lean Modified Mathlib/Data/List/Cycle.lean +/- theorem Cycle.Nodup.nontrivial_iff +/- theorem Cycle.Subsingleton.nodup +/- theorem Cycle.prev_mem +/- theorem List.mem_of_nextOr_ne +/- theorem List.nextOr_concat Modified Mathlib/Data/List/Forall2.lean Modified Mathlib/Data/List/Lattice.lean Modified Mathlib/Data/List/MinMax.lean Modified Mathlib/Data/List/Nodup.lean Modified Mathlib/Data/List/NodupEquivFin.lean Modified Mathlib/Data/List/OfFn.lean Modified Mathlib/Data/List/Pairwise.lean Modified Mathlib/Data/List/Rotate.lean Modified Mathlib/Data/List/Sublists.lean +/- theorem List.mem_sublists' Modified Mathlib/Data/List/TFAE.lean Modified Mathlib/Data/Matrix/Basis.lean +/- theorem Matrix.StdBasisMatrix.mul_of_ne Modified Mathlib/Data/Matrix/Rank.lean +/- theorem Matrix.rank_le_card_height +/- theorem Matrix.rank_le_card_width Modified Mathlib/Data/Multiset/Basic.lean +/- theorem Multiset.Rel.add +/- theorem Multiset.addHom_ext +/- theorem Multiset.add_singleton_eq_iff +/- theorem Multiset.count_inter +/- theorem Multiset.count_sub +/- theorem Multiset.filter_nsmul +/- theorem Multiset.inter_add_distrib +/- theorem Multiset.le_cons_of_not_mem +/- theorem Multiset.le_inter +/- theorem Multiset.map_comp_cons +/- theorem Multiset.map_lt_map +/- theorem Multiset.mem_nsmul +/- theorem Multiset.mem_of_mem_nsmul +/- theorem Multiset.mem_singleton_self +/- theorem Multiset.rel_eq +/- theorem Multiset.rel_refl_of_refl_on +/- theorem Multiset.singleton_eq_cons_iff +/- theorem Multiset.singleton_inj +/- theorem Multiset.sub_add_inter +/- theorem Multiset.union_add_inter Modified Mathlib/Data/Multiset/Bind.lean Modified Mathlib/Data/Multiset/FinsetOps.lean Modified Mathlib/Data/Multiset/Fintype.lean Modified Mathlib/Data/Multiset/Fold.lean Modified Mathlib/Data/Multiset/Functor.lean Modified Mathlib/Data/Multiset/LocallyFinite.lean +/- theorem Multiset.Ico_add_Ico_eq_Ico Modified Mathlib/Data/Multiset/NatAntidiagonal.lean Modified Mathlib/Data/Multiset/Nodup.lean Modified Mathlib/Data/Multiset/Pi.lean Modified Mathlib/Data/Multiset/Range.lean +/- theorem Multiset.range_add_eq_union Modified Mathlib/Data/MvPolynomial/Equiv.lean Modified Mathlib/Data/MvPolynomial/Rename.lean Modified Mathlib/Data/MvPolynomial/Variables.lean +/- theorem MvPolynomial.totalDegree_pow Modified Mathlib/Data/Nat/Bitwise.lean Modified Mathlib/Data/Nat/Digits.lean +/- theorem Nat.digits_len_le_digits_len_succ Modified Mathlib/Data/Nat/Factors.lean +/- theorem Nat.mem_factors_mul_left Modified Mathlib/Data/Nat/Interval.lean +/- theorem Nat.Icc_pred_right +/- theorem Nat.Icc_succ_left +/- theorem Nat.Ico_succ_left +/- theorem Nat.Ico_succ_left_eq_erase_Ico +/- theorem Nat.Ico_succ_right +/- theorem Nat.Ico_succ_succ +/- theorem Nat.image_Ico_mod +/- theorem Nat.image_sub_const_Ico +/- theorem Nat.mod_injOn_Ico Modified Mathlib/Data/Nat/ModEq.lean Modified Mathlib/Data/Nat/Parity.lean +/- theorem Nat.bit1_mod_bit0 Modified Mathlib/Data/Nat/PartENat.lean Modified Mathlib/Data/Nat/PrimeFin.lean +/- theorem Nat.pow_succ_factors_toFinset Modified Mathlib/Data/Nat/Sqrt.lean Modified Mathlib/Data/Nat/Totient.lean Modified Mathlib/Data/Num/Lemmas.lean Modified Mathlib/Data/PFunctor/Multivariate/M.lean Modified Mathlib/Data/PFunctor/Univariate/M.lean Modified Mathlib/Data/PNat/Factors.lean +/- theorem PNat.factorMultiset_le_iff' Modified Mathlib/Data/PNat/Xgcd.lean +/- theorem PNat.gcdA'_coe +/- theorem PNat.gcd_eq Modified Mathlib/Data/Polynomial/AlgebraMap.lean Modified Mathlib/Data/Polynomial/Basic.lean Modified Mathlib/Data/Polynomial/Cardinal.lean Modified Mathlib/Data/Polynomial/Degree/Definitions.lean Modified Mathlib/Data/Polynomial/Degree/Lemmas.lean +/- theorem Polynomial.coeff_pow_of_natDegree_le Modified Mathlib/Data/Polynomial/Degree/TrailingDegree.lean +/- theorem Polynomial.coeff_mul_natTrailingDegree_add_natTrailingDegree +/- theorem Polynomial.le_natTrailingDegree +/- theorem Polynomial.le_trailingDegree_C_mul_X_pow Modified Mathlib/Data/Polynomial/DenomsClearable.lean Modified Mathlib/Data/Polynomial/Derivative.lean +/- theorem Polynomial.coeff_derivative +/- theorem Polynomial.coeff_iterate_derivative_as_prod_Ico +/- theorem Polynomial.derivative_comp Modified Mathlib/Data/Polynomial/Div.lean Modified Mathlib/Data/Polynomial/EraseLead.lean +/- theorem Polynomial.card_support_eq_one Modified Mathlib/Data/Polynomial/Eval.lean Modified Mathlib/Data/Polynomial/FieldDivision.lean Modified Mathlib/Data/Polynomial/HasseDeriv.lean +/- theorem Polynomial.hasseDeriv_coeff +/- theorem Polynomial.natDegree_hasseDeriv_le Modified Mathlib/Data/Polynomial/Identities.lean Modified Mathlib/Data/Polynomial/Inductions.lean Modified Mathlib/Data/Polynomial/IntegralNormalization.lean +/- theorem Polynomial.integralNormalization_support +/- theorem Polynomial.support_integralNormalization Modified Mathlib/Data/Polynomial/Mirror.lean +/- theorem Polynomial.natTrailingDegree_mul_mirror Modified Mathlib/Data/Polynomial/Monic.lean +/- theorem Polynomial.Monic.sub_of_left +/- theorem Polynomial.monic_X_pow_sub_C +/- theorem Polynomial.monic_of_isUnit_leadingCoeff_inv_smul Modified Mathlib/Data/Polynomial/RingDivision.lean +/- theorem Polynomial.Monic.irreducible_iff_natDegree' +/- theorem Polynomial.eq_zero_of_dvd_of_degree_lt +/- theorem Polynomial.natDegree_mul Modified Mathlib/Data/Prod/TProd.lean Modified Mathlib/Data/QPF/Multivariate/Constructions/Fix.lean Modified Mathlib/Data/Rat/Cast.lean Modified Mathlib/Data/Rat/Floor.lean Modified Mathlib/Data/Real/CauSeqCompletion.lean Modified Mathlib/Data/Real/ENNReal.lean Modified Mathlib/Data/Real/Hyperreal.lean Modified Mathlib/Data/Seq/Seq.lean +/- theorem Stream'.Seq.corec_eq Modified Mathlib/Data/Seq/WSeq.lean +/- theorem Stream'.WSeq.LiftRelO.swap Modified Mathlib/Data/Set/Intervals/Group.lean Modified Mathlib/Data/Set/Intervals/IsoIoo.lean +/- def orderIsoIooNegOneOne Modified Mathlib/Data/Set/Intervals/OrdConnectedComponent.lean Modified Mathlib/Data/Set/Intervals/Pi.lean Modified Mathlib/Data/Set/Pointwise/ListOfFn.lean Modified Mathlib/Data/Set/Pointwise/SMul.lean Modified Mathlib/Data/Setoid/Partition.lean Modified Mathlib/Data/Sigma/Interval.lean Modified Mathlib/Data/Sign.lean Modified Mathlib/Data/Stream/Init.lean Modified Mathlib/Data/Sym/Basic.lean +/- theorem Sym.exists_eq_cons_of_succ +/- theorem Sym.of_vector_cons +/- theorem SymOptionSuccEquiv.decode_encode Modified Mathlib/Data/Sym/Sym2.lean +/- theorem Sym2.IsDiag.mem_range_diag +/- theorem Sym2.ball +/- theorem Sym2.congr_left +/- theorem Sym2.congr_right +/- theorem Sym2.eq_swap +/- theorem Sym2.fromRel_bot +/- theorem Sym2.fromRel_top +/- theorem Sym2.map.injective +/- theorem Sym2.map_comp +/- theorem Sym2.map_congr +/- theorem Sym2.mem_and_mem_iff +/- theorem Sym2.mem_map +/- theorem Sym2.mk''_eq_mk''_iff +/- theorem Sym2.mk''_prod_swap_eq +/- theorem Sym2.other_mem' +/- theorem Sym2.other_mem +/- theorem Sym2.other_ne +/- theorem Sym2.other_spec' +/- theorem Sym2.relBool_spec Modified Mathlib/Data/TypeVec.lean +/- theorem TypeVec.append_prod_appendFun +/- theorem TypeVec.diag_sub_val +/- theorem TypeVec.fst_diag +/- theorem TypeVec.snd_diag Modified Mathlib/Data/Vector/Basic.lean +/- theorem Vector.head_map +/- theorem Vector.reverse_reverse +/- theorem Vector.tail_map +/- theorem Vector.toList_singleton Modified Mathlib/Data/W/Basic.lean Modified Mathlib/Data/ZMod/Basic.lean +/- theorem ZMod.valMinAbs_mem_Ioc Modified Mathlib/Deprecated/Subgroup.lean +/- theorem IsGroupHom.inv_ker_one' +/- theorem IsGroupHom.inv_ker_one +/- theorem IsGroupHom.one_ker_inv' +/- theorem IsGroupHom.one_ker_inv Modified Mathlib/FieldTheory/PerfectClosure.lean +/- theorem PerfectClosure.eq_pthRoot Modified Mathlib/FieldTheory/Subfield.lean Modified Mathlib/GroupTheory/Abelianization.lean Modified Mathlib/GroupTheory/Commutator.lean Modified Mathlib/GroupTheory/Congruence.lean +/- theorem Con.infₛ_def +/- theorem Con.lift_funext +/- theorem Con.sup_eq_conGen +/- theorem Con.supₛ_eq_conGen Modified Mathlib/GroupTheory/Coset.lean Modified Mathlib/GroupTheory/DoubleCoset.lean +/- theorem Doset.eq +/- theorem Doset.left_bot_eq_left_quot Modified Mathlib/GroupTheory/FreeProduct.lean +/- theorem FreeProduct.NeWord.toList_getLast? Modified Mathlib/GroupTheory/GroupAction/Quotient.lean Modified Mathlib/GroupTheory/GroupAction/Support.lean +/- theorem MulAction.Supports.smul Modified Mathlib/GroupTheory/Index.lean +/- theorem Subgroup.index_mul_card Modified Mathlib/GroupTheory/MonoidLocalization.lean Modified Mathlib/GroupTheory/NoncommPiCoprod.lean Modified Mathlib/GroupTheory/OrderOfElement.lean +/- theorem orderOf_map_dvd Modified Mathlib/GroupTheory/Perm/Cycle/Basic.lean +/- theorem Equiv.Perm.cycleOf_apply +/- theorem Finset.exists_cycleOn +/- theorem List.Nodup.isCycleOn_formPerm Modified Mathlib/GroupTheory/Perm/List.lean +/- theorem List.formPerm_eq_one_iff +/- theorem List.formPerm_rotate_one +/- theorem List.mem_of_formPerm_ne_self Modified Mathlib/GroupTheory/Perm/Option.lean Modified Mathlib/GroupTheory/Perm/Sign.lean Modified Mathlib/GroupTheory/Perm/Support.lean +/- theorem Equiv.Perm.disjoint_prod_right Modified Mathlib/GroupTheory/QuotientGroup.lean +/- theorem QuotientGroup.eq_iff_div_mem Modified Mathlib/GroupTheory/SpecificGroups/Alternating.lean Modified Mathlib/GroupTheory/Subgroup/Basic.lean +/- theorem Subgroup.le_normalizer_comap +/- theorem Subgroup.map_symm_eq_iff_map_eq Modified Mathlib/GroupTheory/Subgroup/Finite.lean +/- theorem Subgroup.eq_top_of_card_eq Modified Mathlib/GroupTheory/Submonoid/Inverses.lean Modified Mathlib/GroupTheory/Submonoid/Membership.lean +/- theorem Submonoid.powers_eq_closure Modified Mathlib/Init/Data/Int/Order.lean Modified Mathlib/Init/Data/Nat/Bitwise.lean Modified Mathlib/Init/Data/Nat/Lemmas.lean Modified Mathlib/LinearAlgebra/AffineSpace/AffineMap.lean +/- theorem AffineMap.linear_eq_zero_iff_exists_const Modified Mathlib/LinearAlgebra/AffineSpace/AffineSubspace.lean +/- theorem AffineSubspace.Parallel.trans +/- def AffineSubspace.comap +/- def AffineSubspace.directionOfNonempty +/- def AffineSubspace.map +/- def AffineSubspace.mk' +/- def Submodule.toAffineSubspace +/- def affineSpan Modified Mathlib/LinearAlgebra/Alternating.lean +/- theorem AlternatingMap.map_add_swap +/- theorem AlternatingMap.map_swap_add Modified Mathlib/LinearAlgebra/Basic.lean +/- theorem Submodule.mem_map_equiv +/- theorem Submodule.subtype_comp_ofLe Modified Mathlib/LinearAlgebra/Basis.lean Modified Mathlib/LinearAlgebra/Dfinsupp.lean Modified Mathlib/LinearAlgebra/Finrank.lean +/- theorem Submodule.lt_top_of_finrank_lt_finrank Modified Mathlib/LinearAlgebra/Finsupp.lean +/- theorem Finsupp.total_eq_fintype_total_apply Modified Mathlib/LinearAlgebra/FreeModule/Finite/Matrix.lean +/- theorem FiniteDimensional.finrank_linearMap Modified Mathlib/LinearAlgebra/Lagrange.lean +/- theorem Lagrange.basisDivisor_add_symm +/- theorem Lagrange.degree_interpolate_le +/- theorem Lagrange.nodal_erase_eq_nodal_div +/- theorem Lagrange.sum_basis Modified Mathlib/LinearAlgebra/LinearIndependent.lean Modified Mathlib/LinearAlgebra/LinearPMap.lean +/- theorem LinearPMap.graph_map_fst_eq_domain Modified Mathlib/LinearAlgebra/Matrix/Determinant.lean +/- theorem Matrix.det_eq_elem_of_subsingleton +/- theorem Matrix.det_eq_zero_of_column_eq_zero +/- theorem Matrix.det_submatrix_equiv_self Modified Mathlib/LinearAlgebra/Matrix/ToLin.lean Modified Mathlib/LinearAlgebra/Matrix/Transvection.lean Modified Mathlib/LinearAlgebra/Multilinear/Basic.lean +/- theorem LinearMap.curry_uncurryLeft +/- theorem MultilinearMap.mk_coe Modified Mathlib/LinearAlgebra/Prod.lean Modified Mathlib/LinearAlgebra/Quotient.lean Modified Mathlib/LinearAlgebra/SesquilinearForm.lean Modified Mathlib/Logic/Denumerable.lean Modified Mathlib/Logic/Encodable/Basic.lean +/- theorem Encodable.decode_ge_two +/- theorem Encodable.decode₂_encode Modified Mathlib/Logic/Encodable/Lattice.lean Modified Mathlib/Logic/Equiv/Embedding.lean Modified Mathlib/Logic/Equiv/List.lean Modified Mathlib/MeasureTheory/MeasurableSpace.lean Modified Mathlib/MeasureTheory/Measure/AEDisjoint.lean Modified Mathlib/MeasureTheory/Measure/MeasureSpaceDef.lean +/- theorem MeasureTheory.measurableSet_toMeasurable Modified Mathlib/MeasureTheory/Measure/NullMeasurable.lean Modified Mathlib/MeasureTheory/Measure/OuterMeasure.lean +/- theorem MeasureTheory.OuterMeasure.diff_null +/- theorem MeasureTheory.OuterMeasure.smul_ofFunction +/- theorem MeasureTheory.extend_unionᵢ_le_tsum_nat' +/- theorem MeasureTheory.extend_unionᵢ_le_tsum_nat Modified Mathlib/MeasureTheory/PiSystem.lean +/- theorem MeasurableSpace.DynkinSystem.has_diff Modified Mathlib/ModelTheory/Syntax.lean Modified Mathlib/NumberTheory/ADEInequality.lean Modified Mathlib/NumberTheory/ClassNumber/AdmissibleAbs.lean Modified Mathlib/NumberTheory/ClassNumber/AdmissibleAbsoluteValue.lean Modified Mathlib/NumberTheory/Fermat4.lean +/- theorem Int.coprime_of_sq_sum' Modified Mathlib/NumberTheory/PellMatiyasevic.lean Modified Mathlib/NumberTheory/Zsqrtd/Basic.lean Modified Mathlib/Order/Atoms.lean Modified Mathlib/Order/Atoms/Finite.lean Modified Mathlib/Order/CompactlyGenerated.lean +/- theorem CompleteLattice.IsSupFiniteCompact.isSupClosedCompact +/- theorem supₛ_compact_le_eq Modified Mathlib/Order/CountableDenseLinearOrder.lean Modified Mathlib/Order/Disjointed.lean +/- theorem disjointed_eq_inf_compl Modified Mathlib/Order/Filter/AtTopBot.lean +/- theorem Filter.disjoint_atBot_atTop Modified Mathlib/Order/Filter/Bases.lean Modified Mathlib/Order/Filter/Basic.lean Modified Mathlib/Order/Filter/Lift.lean Modified Mathlib/Order/Filter/Partial.lean +/- theorem Filter.pmap_res Modified Mathlib/Order/Filter/Pi.lean +/- theorem Filter.pi_inf_principal_univ_pi_eq_bot Modified Mathlib/Order/Filter/Prod.lean +/- theorem Filter.principal_coprod_principal Modified Mathlib/Order/GameAdd.lean +/- theorem Acc.sym2_gameAdd +/- theorem Sym2.GameAdd.fst_snd +/- theorem Sym2.GameAdd.snd_fst Modified Mathlib/Order/Grade.lean Modified Mathlib/Order/JordanHolder.lean Modified Mathlib/Order/LiminfLimsup.lean +/- theorem Filter.cofinite.blimsup_set_eq +/- theorem Filter.liminf_nat_add Modified Mathlib/Order/LocallyFinite.lean Modified Mathlib/Order/OrderIsoNat.lean Modified Mathlib/RingTheory/AlgebraTower.lean Modified Mathlib/RingTheory/ChainOfDivisors.lean Modified Mathlib/RingTheory/Coprime/Lemmas.lean Modified Mathlib/RingTheory/FiniteType.lean +/- theorem Algebra.FiniteType.iff_quotient_mvPolynomial' +/- theorem RingHom.FiniteType.of_comp_finiteType Modified Mathlib/RingTheory/Finiteness.lean +/- theorem Submodule.fg_supᵢ Modified Mathlib/RingTheory/Ideal/Basic.lean +/- theorem Ideal.pow_multiset_sum_mem_span_pow Modified Mathlib/RingTheory/Ideal/Operations.lean +/- theorem Ideal.finsuppTotal_apply +/- theorem Ideal.span_singleton_mul_le_iff Modified Mathlib/RingTheory/Ideal/Prod.lean +/- theorem Ideal.prod.ext_iff Modified Mathlib/RingTheory/Ideal/QuotientOperations.lean Modified Mathlib/RingTheory/Localization/Basic.lean Modified Mathlib/RingTheory/Localization/Ideal.lean +/- theorem IsLocalization.mem_map_algebraMap_iff Modified Mathlib/RingTheory/Multiplicity.lean +/- theorem multiplicity.pos_of_dvd Modified Mathlib/RingTheory/MvPolynomial/Symmetric.lean Modified Mathlib/RingTheory/NonUnitalSubsemiring/Basic.lean +/- theorem NonUnitalSubsemiring.closure_addSubmonoid_closure Modified Mathlib/RingTheory/NonZeroDivisors.lean +/- theorem mul_cancel_right_mem_nonZeroDivisors Modified Mathlib/RingTheory/OreLocalization/Basic.lean Modified Mathlib/RingTheory/Polynomial/Basic.lean Modified Mathlib/RingTheory/Polynomial/Chebyshev.lean Modified Mathlib/RingTheory/Polynomial/Content.lean +/- theorem Polynomial.primPart_mul Modified Mathlib/RingTheory/Polynomial/Eisenstein/Basic.lean +/- theorem Polynomial.IsWeaklyEisensteinAt.map Modified Mathlib/RingTheory/Polynomial/Pochhammer.lean +/- theorem pochhammer_succ_right Modified Mathlib/RingTheory/Polynomial/ScaleRoots.lean Modified Mathlib/RingTheory/PrincipalIdealDomain.lean +/- theorem Irreducible.coprime_iff_not_dvd Modified Mathlib/RingTheory/SimpleModule.lean +/- theorem LinearMap.injective_or_eq_zero Modified Mathlib/RingTheory/Subsemiring/Basic.lean +/- theorem Subsemiring.closure_addSubmonoid_closure +/- theorem Subsemiring.mem_map Modified Mathlib/RingTheory/UniqueFactorizationDomain.lean +/- theorem Associates.dvd_of_mem_factors +/- theorem Associates.pow_factors +/- theorem UniqueFactorizationMonoid.normalize_normalized_factor +/- theorem UniqueFactorizationMonoid.normalizedFactors_prod Modified Mathlib/RingTheory/Valuation/Integers.lean Modified Mathlib/SetTheory/Cardinal/Cofinality.lean +/- theorem Ordinal.cof_eq_infₛ_lsub +/- theorem Ordinal.exists_blsub_cof +/- theorem Ordinal.exists_fundamental_sequence Modified Mathlib/SetTheory/Cardinal/Ordinal.lean +/- theorem Cardinal.ord_aleph_eq_enum_card Modified Mathlib/SetTheory/Cardinal/SchroederBernstein.lean Modified Mathlib/SetTheory/Lists.lean Modified Mathlib/SetTheory/Ordinal/Arithmetic.lean Modified Mathlib/SetTheory/Ordinal/Basic.lean Modified Mathlib/SetTheory/Ordinal/CantorNormalForm.lean +/- theorem Ordinal.CNF_fst_le_log Modified Mathlib/SetTheory/Ordinal/Exponential.lean +/- theorem Ordinal.div_opow_log_pos +/- theorem Ordinal.lt_opow_succ_log_self Modified Mathlib/SetTheory/Ordinal/FixedPoint.lean +/- theorem Ordinal.mul_le_right_iff_opow_omega_dvd Modified Mathlib/SetTheory/Ordinal/NaturalOps.lean Modified Mathlib/SetTheory/Ordinal/Principal.lean +/- theorem Ordinal.principal_add_isLimit Modified Mathlib/SetTheory/Ordinal/Topology.lean Modified Mathlib/SetTheory/ZFC/Basic.lean +/- theorem Class.classToCong_empty +/- theorem Class.congToClass_empty +/- theorem Class.mem_unionₛ +/- theorem Class.unionₛ_apply +/- theorem ZFSet.Hereditarily.empty +/- theorem ZFSet.choice_mem +/- theorem ZFSet.eq_empty +/- theorem ZFSet.eq_empty_or_nonempty +/- theorem ZFSet.mem_pair +/- theorem ZFSet.mem_union +/- theorem ZFSet.pair_injective +/- theorem ZFSet.pair_mem_prod +/- theorem ZFSet.toSet_insert +/- theorem ZFSet.toSet_inter +/- theorem ZFSet.toSet_range +/- theorem ZFSet.toSet_sdiff +/- theorem ZFSet.toSet_singleton +/- theorem ZFSet.toSet_union Modified Mathlib/Topology/Algebra/Affine.lean Modified Mathlib/Topology/Algebra/Group/Basic.lean +/- theorem Homeomorph.mulRight_symm Modified Mathlib/Topology/Algebra/Group/Compact.lean Modified Mathlib/Topology/Algebra/GroupCompletion.lean Modified Mathlib/Topology/Algebra/InfiniteSum/Basic.lean +/- theorem HasSum.sub Modified Mathlib/Topology/Algebra/Module/Basic.lean Modified Mathlib/Topology/Algebra/Monoid.lean Modified Mathlib/Topology/Algebra/Nonarchimedean/Basic.lean Modified Mathlib/Topology/Algebra/Order/Group.lean Modified Mathlib/Topology/Algebra/Order/IntermediateValue.lean Modified Mathlib/Topology/Algebra/Order/LeftRightLim.lean Modified Mathlib/Topology/Algebra/Order/UpperLower.lean Modified Mathlib/Topology/Algebra/Semigroup.lean Modified Mathlib/Topology/Algebra/UniformField.lean +/- theorem UniformSpace.Completion.continuous_hatInv Modified Mathlib/Topology/Algebra/UniformGroup.lean Modified Mathlib/Topology/Bases.lean Modified Mathlib/Topology/Basic.lean Modified Mathlib/Topology/Bornology/Basic.lean Modified Mathlib/Topology/CompactOpen.lean Modified Mathlib/Topology/Connected.lean Modified Mathlib/Topology/Constructions.lean Modified Mathlib/Topology/ContinuousFunction/CocompactMap.lean Modified Mathlib/Topology/ContinuousOn.lean Modified Mathlib/Topology/DiscreteQuotient.lean +/- theorem DiscreteQuotient.ofLE_ofLE Modified Mathlib/Topology/Homotopy/Basic.lean Modified Mathlib/Topology/List.lean Modified Mathlib/Topology/LocalHomeomorph.lean Modified Mathlib/Topology/MetricSpace/Baire.lean Modified Mathlib/Topology/MetricSpace/Infsep.lean +/- theorem Finset.coe_infsep +/- theorem Set.einfsep_insert +/- theorem Set.infsep_of_fintype Modified Mathlib/Topology/Order.lean Modified Mathlib/Topology/Paracompact.lean Modified Mathlib/Topology/StoneCech.lean Modified Mathlib/Topology/SubsetProperties.lean Modified Mathlib/Topology/UniformSpace/AbstractCompletion.lean Modified Mathlib/Topology/UniformSpace/Basic.lean Modified Mathlib/Topology/UniformSpace/Cauchy.lean Modified Mathlib/Topology/UniformSpace/CompactConvergence.lean Modified Mathlib/Topology/UniformSpace/Completion.lean Modified Mathlib/Topology/UniformSpace/Pi.lean Modified Mathlib/Topology/UniformSpace/UniformConvergenceTopology.lean Modified scripts/lint-style.py Modified test/GeneralizeProofs.lean Modified test/convert.lean Modified test/eqns.lean Modified test/left_right.lean Modified test/linarith.lean Modified test/norm_cast.lean Modified test/norm_num.lean Modified test/solve_by_elim/basic.lean 2023-05-06 19:50:27 abcee9d feat(Data/MvPolynomial/Basic): add and generalize some lemmas from Finsupp and MonoidAlgebra (#3604) Most of these changes generalize from `DistribMulAction` to `SmulZeroClass`. The new lemmas are all just proved using corresponding lemmas on the underlying types. ESTIMATED CHANGES Modified Mathlib/Algebra/MonoidAlgebra/Basic.lean Modified Mathlib/Data/Finsupp/Basic.lean +/- theorem Finsupp.support_smul Modified Mathlib/Data/MvPolynomial/Basic.lean +/- theorem MvPolynomial.aevalTower_id +/- theorem MvPolynomial.coeff_smul +/- theorem MvPolynomial.constantCoeff_smul + theorem MvPolynomial.smul_monomial + theorem MvPolynomial.support_eq_empty +/- theorem MvPolynomial.support_smul + theorem MvPolynomial.support_smul_eq 2023-05-06 19:21:52 9ff903e ci: make bors block on the check_imported job (#3827) ESTIMATED CHANGES Modified Mathlib/Tactic.lean Modified bors.toml 2023-05-06 15:10:58 9cf0d9b chore: bump to Lean 4 nightly-2023-05-06 (#3817) ESTIMATED CHANGES Modified Mathlib/Data/String/Basic.lean + theorem String.utf8GetAux.add_right_cancel Modified lean-toolchain 2023-05-06 12:10:21 38dbcd8 feat: enable cancel_denoms preprocessor in linarith (#3801) Enable the `cancelDenoms` preprocessor in `linarith`. Closes #2714. - [x] depends on: #3797 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Floor.lean Modified Mathlib/Analysis/Normed/Order/UpperLower.lean Modified Mathlib/Data/Complex/Exponential.lean Modified Mathlib/Data/Nat/Digits.lean Modified Mathlib/GroupTheory/Perm/Cycle/Type.lean Modified Mathlib/Lean/Expr/Basic.lean + def Lean.Expr.containsConst + def Lean.Expr.rewrite + def Lean.Expr.rewriteType Modified Mathlib/Tactic/Linarith/Datatypes.lean +/- def Linarith.GlobalPreprocessor.branching +/- def Linarith.Preprocessor.globalize Modified Mathlib/Tactic/Linarith/Preprocessing.lean + def Linarith.cancelDenoms + def Linarith.normalizeDenominatorsLHS + theorem Linarith.without_one_mul Modified Mathlib/Topology/Homotopy/Basic.lean Modified Mathlib/Topology/MetricSpace/Basic.lean Modified Mathlib/Topology/MetricSpace/CantorScheme.lean Modified Mathlib/Topology/PathConnected.lean Modified Mathlib/Topology/UnitInterval.lean Modified test/linarith.lean + def P - def R + theorem T.works Modified test/linear_combination.lean 2023-05-06 11:29:51 b1a047a feat: port MeasureTheory.Measure.NullMeasurable (#3349) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/MeasureTheory/Measure/NullMeasurable.lean + theorem Finset.nullMeasurableSet_binterᵢ + theorem Finset.nullMeasurableSet_bunionᵢ + theorem Measurable.congr_ae + theorem MeasurableSet.nullMeasurableSet + theorem MeasureTheory.Measurable.comp_nullMeasurable + theorem MeasureTheory.Measure.IsComplete.out + theorem MeasureTheory.Measure.coe_completion + def MeasureTheory.Measure.completion + theorem MeasureTheory.Measure.completion_apply + theorem MeasureTheory.Measure.isComplete_iff + theorem MeasureTheory.NullMeasurable.congr + theorem MeasureTheory.NullMeasurable.measurable_of_complete + def MeasureTheory.NullMeasurable + theorem MeasureTheory.NullMeasurableSet.compl + theorem MeasureTheory.NullMeasurableSet.compl_iff + theorem MeasureTheory.NullMeasurableSet.compl_toMeasurable_compl_ae_eq + theorem MeasureTheory.NullMeasurableSet.exists_measurable_subset_ae_eq + theorem MeasureTheory.NullMeasurableSet.exists_measurable_superset_ae_eq + theorem MeasureTheory.NullMeasurableSet.measurable_of_complete + theorem MeasureTheory.NullMeasurableSet.of_compl + theorem MeasureTheory.NullMeasurableSet.of_null + theorem MeasureTheory.NullMeasurableSet.of_subsingleton + theorem MeasureTheory.NullMeasurableSet.toMeasurable_ae_eq + def MeasureTheory.NullMeasurableSet + def MeasureTheory.NullMeasurableSpace + theorem MeasureTheory.exists_subordinate_pairwise_disjoint + theorem MeasureTheory.measurableSet_of_null + theorem MeasureTheory.measure_add_measure_compl₀ + theorem MeasureTheory.measure_inter_add_diff₀ + theorem MeasureTheory.measure_union_add_inter₀' + theorem MeasureTheory.measure_union_add_inter₀ + theorem MeasureTheory.measure_unionᵢ + theorem MeasureTheory.measure_unionᵢ₀ + theorem MeasureTheory.measure_union₀' + theorem MeasureTheory.measure_union₀ + theorem MeasureTheory.measure_union₀_aux + theorem MeasureTheory.nullMeasurableSet_empty + theorem MeasureTheory.nullMeasurableSet_eq + theorem MeasureTheory.nullMeasurableSet_insert + theorem MeasureTheory.nullMeasurableSet_singleton + theorem MeasureTheory.nullMeasurableSet_to_measurable + theorem MeasureTheory.nullMeasurableSet_univ + theorem Set.Finite.nullMeasurableSet_binterᵢ + theorem Set.Finite.nullMeasurableSet_bunionᵢ + theorem Set.Finite.nullMeasurableSet_interₛ + theorem Set.Finite.nullMeasurableSet_unionₛ 2023-05-06 08:46:32 3cef175 chore: forward port leanprover-community/mathlib#18910 (#3814) ESTIMATED CHANGES Modified Mathlib/MeasureTheory/MeasurableSpace.lean - theorem MeasurableSpace.measurable_injection_cantor_of_countablyGenerated + theorem MeasurableSpace.measurable_injection_nat_bool_of_countablyGenerated Modified Mathlib/Topology/Perfect.lean 2023-05-06 08:46:30 bc9db78 feat: `cancel_denoms` tactic (#3797) Ports the tactic `CancelDenoms.derive` and the interactive tactic `cancel_denoms`. This tactic is needed to make `linarith` handle divisions by numbers, but this PR does not involve `linarith`. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Tactic/CancelDenoms.lean + theorem CancelDenoms.add_subst + def CancelDenoms.cancelDenominatorsInType + theorem CancelDenoms.cancel_factors_eq + theorem CancelDenoms.cancel_factors_eq_div + theorem CancelDenoms.cancel_factors_le + theorem CancelDenoms.cancel_factors_lt + def CancelDenoms.derive + def CancelDenoms.deriveThms + theorem CancelDenoms.derive_trans + theorem CancelDenoms.div_subst + def CancelDenoms.findCompLemma + theorem CancelDenoms.mul_subst + theorem CancelDenoms.neg_subst + theorem CancelDenoms.sub_subst + def CancelDenoms.synthesizeUsingNormNum + def cancelDenominators + def cancelDenominatorsAt + def cancelDenominatorsTarget Modified Mathlib/Tactic/Linarith/Datatypes.lean Modified Mathlib/Tactic/Linarith/Verification.lean Modified Mathlib/Util/Qq.lean Modified Mathlib/Util/SynthesizeUsing.lean + def synthesizeUsing' +/- def synthesizeUsing + def synthesizeUsingTactic' + def synthesizeUsingTactic Added test/cancel_denoms.lean 2023-05-06 08:29:50 cab5256 chore: fix names (#3812) Forward-port leanprover-community/mathlib#18921 and leanprover-community/mathlib#18924 ESTIMATED CHANGES Modified Mathlib/Analysis/NormedSpace/Basic.lean + theorem abs_norm - theorem abs_norm_eq_norm Modified Mathlib/Data/Set/Intervals/Monotone.lean + theorem StrictMonoOn.Ici_le_id - theorem StrictMonoOn.Iic_le_id + theorem strictAntiOn_Ici_of_lt_pred - theorem strictAntiOn_Iic_of_lt_pred + theorem strictMonoOn_Ici_of_pred_lt - theorem strictMonoOn_Iic_of_pred_lt 2023-05-06 07:33:35 4a20b63 feat port : RingTheory.Ideal.AssociatedPrime (#3810) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/RingTheory/Ideal/AssociatedPrime.lean + theorem AssociatePrimes.mem_iff + theorem IsAssociatedPrime.annihilator_le + theorem IsAssociatedPrime.eq_radical + theorem IsAssociatedPrime.isPrime + theorem IsAssociatedPrime.map_of_injective + def IsAssociatedPrime + theorem LinearEquiv.AssociatedPrimes.eq + theorem LinearEquiv.isAssociatedPrime_iff + theorem associatedPrimes.eq_empty_of_subsingleton + theorem associatedPrimes.eq_singleton_of_isPrimary + theorem associatedPrimes.nonempty + theorem associatedPrimes.subset_of_injective + def associatedPrimes + theorem exists_le_isAssociatedPrime_of_isNoetherianRing + theorem not_isAssociatedPrime_of_subsingleton 2023-05-06 07:17:10 7482d3e feat: port LinearAlgebra.Lagrange (#3784) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/LinearAlgebra/Lagrange.lean + theorem Lagrange.X_sub_C_dvd_nodal + def Lagrange.basisDivisor + theorem Lagrange.basisDivisor_add_symm + theorem Lagrange.basisDivisor_eq_zero_iff + theorem Lagrange.basisDivisor_inj + theorem Lagrange.basisDivisor_ne_zero_iff + theorem Lagrange.basisDivisor_self + theorem Lagrange.basis_empty + theorem Lagrange.basis_eq_prod_sub_inv_mul_nodal_div + theorem Lagrange.basis_ne_zero + theorem Lagrange.basis_pair_left + theorem Lagrange.basis_pair_right + theorem Lagrange.basis_singleton + theorem Lagrange.degree_basis + theorem Lagrange.degree_basisDivisor_of_ne + theorem Lagrange.degree_basisDivisor_self + theorem Lagrange.degree_interpolate_erase_lt + theorem Lagrange.degree_interpolate_le + theorem Lagrange.degree_interpolate_lt + theorem Lagrange.degree_nodal + theorem Lagrange.derivative_nodal + theorem Lagrange.eq_interpolate + theorem Lagrange.eq_interpolate_iff + theorem Lagrange.eq_interpolate_of_eval_eq + theorem Lagrange.eval_basisDivisor_left_of_ne + theorem Lagrange.eval_basisDivisor_right + theorem Lagrange.eval_basis_not_at_node + theorem Lagrange.eval_basis_of_ne + theorem Lagrange.eval_basis_self + theorem Lagrange.eval_interpolate_at_node + theorem Lagrange.eval_interpolate_not_at_node' + theorem Lagrange.eval_interpolate_not_at_node + theorem Lagrange.eval_nodal + theorem Lagrange.eval_nodal_at_node + theorem Lagrange.eval_nodal_derivative_eval_node_eq + theorem Lagrange.eval_nodal_not_at_node + def Lagrange.funEquivDegreeLT + def Lagrange.interpolate + theorem Lagrange.interpolate_empty + theorem Lagrange.interpolate_eq_add_interpolate_erase + theorem Lagrange.interpolate_eq_iff_values_eq_on + theorem Lagrange.interpolate_eq_nodalWeight_mul_nodal_div_X_sub_C + theorem Lagrange.interpolate_eq_of_values_eq_on + theorem Lagrange.interpolate_eq_sum_interpolate_insert_sdiff + theorem Lagrange.interpolate_one + theorem Lagrange.interpolate_singleton + theorem Lagrange.natDegree_basis + theorem Lagrange.natDegree_basisDivisor_of_ne + theorem Lagrange.natDegree_basisDivisor_self + def Lagrange.nodal + def Lagrange.nodalWeight + theorem Lagrange.nodalWeight_eq_eval_nodal_derative + theorem Lagrange.nodalWeight_eq_eval_nodal_erase_inv + theorem Lagrange.nodalWeight_ne_zero + theorem Lagrange.nodal_empty + theorem Lagrange.nodal_eq + theorem Lagrange.nodal_eq_mul_nodal_erase + theorem Lagrange.nodal_erase_eq_nodal_div + theorem Lagrange.nodal_insert_eq_nodal + theorem Lagrange.sum_basis + theorem Lagrange.sum_nodalWeight_mul_inv_sub_ne_zero + theorem Lagrange.values_eq_on_of_interpolate_eq + theorem Polynomial.eq_of_degree_sub_lt_of_eval_finset_eq + theorem Polynomial.eq_of_degree_sub_lt_of_eval_index_eq + theorem Polynomial.eq_of_degrees_lt_of_eval_finset_eq + theorem Polynomial.eq_of_degrees_lt_of_eval_index_eq + theorem Polynomial.eq_zero_of_degree_lt_of_eval_finset_eq_zero + theorem Polynomial.eq_zero_of_degree_lt_of_eval_index_eq_zero 2023-05-06 06:40:03 9831a01 feat: port MeasureTheory.Measure.AEDisjoint (#3351) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/MeasureTheory/Measure/AEDisjoint.lean + theorem MeasureTheory.AEDisjoint.diff_ae_eq_left + theorem MeasureTheory.AEDisjoint.diff_ae_eq_right + theorem MeasureTheory.AEDisjoint.exists_disjoint_diff + theorem MeasureTheory.AEDisjoint.measure_diff_left + theorem MeasureTheory.AEDisjoint.measure_diff_right + theorem MeasureTheory.AEDisjoint.mono_ae + theorem MeasureTheory.AEDisjoint.of_null_left + theorem MeasureTheory.AEDisjoint.of_null_right + theorem MeasureTheory.AEDisjoint.union_left + theorem MeasureTheory.AEDisjoint.union_left_iff + theorem MeasureTheory.AEDisjoint.union_right + theorem MeasureTheory.AEDisjoint.union_right_iff + theorem MeasureTheory.AEDisjoint.unionᵢ_left_iff + theorem MeasureTheory.AEDisjoint.unionᵢ_right_iff + def MeasureTheory.AEDisjoint + theorem MeasureTheory.aedisjoint_compl_left + theorem MeasureTheory.aedisjoint_compl_right + theorem MeasureTheory.exists_null_pairwise_disjoint_diff 2023-05-05 22:16:38 4f47420 chore: forward-port backports (#3752) * `data.mv_polynomial.basic`, `data.mv_polynomial.funext`: leanprover-community/mathlib#18839 * `category_theory.limits.preserves.finite`, `category_theory.preadditive.projective`: leanprover-community/mathlib#18890 * `category_theory.abelian.basic`, `category_theory.abelian.opposite`: leanprover-community/mathlib#18740 * `topology.category.Top.limits.basic`: leanprover-community/mathlib#18871. Note that this does not show a useful diff on the dashboard pages as file splits aren't tracked well by git. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Abelian/Basic.lean Modified Mathlib/CategoryTheory/Abelian/Opposite.lean Modified Mathlib/CategoryTheory/Limits/Preserves/Finite.lean Modified Mathlib/CategoryTheory/Preadditive/Projective.lean Modified Mathlib/Data/MvPolynomial/Basic.lean Modified Mathlib/Data/MvPolynomial/Funext.lean Modified Mathlib/Topology/Category/Top/Limits/Basic.lean + def TopCat.initialIsoPempty + def TopCat.isInitialPempty + def TopCat.isTerminalPunit + def TopCat.terminalIsoPunit 2023-05-05 14:00:33 097ba15 chore: forward-port leanprover-community/mathlib#18906 (#3798) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Limits/Preserves/FunctorCategory.lean 2023-05-05 13:44:48 2ff8f30 feat: port MeasureTheory.Function.AEMeasurableSequence (#3803) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/MeasureTheory/Function/AEMeasurableSequence.lean + theorem aeSeq.aeSeqSet_measurableSet + theorem aeSeq.aeSeq_eq_fun_ae + theorem aeSeq.aeSeq_eq_fun_of_mem_aeSeqSet + theorem aeSeq.aeSeq_eq_mk_ae + theorem aeSeq.aeSeq_eq_mk_of_mem_aeSeqSet + theorem aeSeq.aeSeq_n_eq_fun_n_ae + theorem aeSeq.fun_prop_of_mem_aeSeqSet + theorem aeSeq.measurable + theorem aeSeq.measure_compl_aeSeqSet_eq_zero + theorem aeSeq.mk_eq_fun_of_mem_aeSeqSet + theorem aeSeq.prop_of_mem_aeSeqSet + theorem aeSeq.supᵢ + def aeSeqSet 2023-05-05 12:24:18 2215ff4 chore: tidy various files (#3718) ESTIMATED CHANGES Modified Mathlib/Algebra/MonoidAlgebra/Ideal.lean Modified Mathlib/Analysis/Convex/Topology.lean Modified Mathlib/Analysis/NormedSpace/Star/Basic.lean Modified Mathlib/CategoryTheory/Limits/FilteredColimitCommutesFiniteLimit.lean Modified Mathlib/CategoryTheory/Limits/Shapes/WideEqualizers.lean +/- def CategoryTheory.Limits.parallelFamily Modified Mathlib/Data/Fintype/Perm.lean Modified Mathlib/Data/Set/Pointwise/BigOperators.lean Modified Mathlib/GroupTheory/MonoidLocalization.lean Modified Mathlib/LinearAlgebra/Dimension.lean Modified Mathlib/LinearAlgebra/FreeModule/PID.lean Modified Mathlib/LinearAlgebra/Matrix/ZPow.lean Modified Mathlib/RingTheory/Localization/Ideal.lean Modified Mathlib/Topology/Category/Top/Opens.lean + theorem TopologicalSpace.Opens.infLELeft_apply + theorem TopologicalSpace.Opens.infLELeft_apply_mk - theorem TopologicalSpace.Opens.infLeLeft_apply - theorem TopologicalSpace.Opens.infLeLeft_apply_mk Modified Mathlib/Topology/DiscreteQuotient.lean Modified Mathlib/Topology/Instances/Matrix.lean Modified Mathlib/Topology/MetricSpace/Polish.lean Modified Mathlib/Topology/UniformSpace/Separation.lean Modified Mathlib/Topology/UrysohnsLemma.lean 2023-05-05 06:25:34 4857a22 chore: update SHA from #3753 (#3799) I forgot to update it in #3753. ESTIMATED CHANGES Modified Mathlib/Data/Set/Intervals/Basic.lean 2023-05-04 19:07:27 d1ae7b1 feat: port Algebra.ContinuedFractions.ConvergentsEquiv (#3795) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/ContinuedFractions/ConvergentsEquiv.lean + theorem GeneralizedContinuedFraction.continuantsAux_eq_continuantsAux_squashGCF_of_le + theorem GeneralizedContinuedFraction.convergents_eq_convergents' + def GeneralizedContinuedFraction.squashGCF + theorem GeneralizedContinuedFraction.squashGCF_eq_self_of_terminated + theorem GeneralizedContinuedFraction.squashGCF_nth_of_lt + def GeneralizedContinuedFraction.squashSeq + theorem GeneralizedContinuedFraction.squashSeq_eq_self_of_terminated + theorem GeneralizedContinuedFraction.squashSeq_nth_of_lt + theorem GeneralizedContinuedFraction.squashSeq_nth_of_not_terminated + theorem GeneralizedContinuedFraction.squashSeq_succ_n_tail_eq_squashSeq_tail_n + theorem GeneralizedContinuedFraction.succ_nth_convergent'_eq_squashGCF_nth_convergent' + theorem GeneralizedContinuedFraction.succ_nth_convergent_eq_squashGCF_nth_convergent + theorem GeneralizedContinuedFraction.succ_succ_nth_convergent'_aux_eq_succ_nth_convergent'_aux_squashSeq 2023-05-04 16:30:32 eadc9bc feat: well-founded or transitive relations don't have cycles (#3793) Match https://github.com/leanprover-community/mathlib/pull/18512 ESTIMATED CHANGES Modified Mathlib/Data/List/Cycle.lean + theorem Cycle.Chain.eq_nil_of_irrefl + theorem Cycle.Chain.eq_nil_of_well_founded + theorem Cycle.Chain.imp + theorem Cycle.chain_mono Modified Mathlib/Order/RelClasses.lean 2023-05-04 11:23:11 f52ba34 chore: forward-port leanprover-community/mathlib#18922 (#3779) ESTIMATED CHANGES Modified Mathlib/Data/Complex/Basic.lean + theorem Complex.conj_eq_iff_im + theorem Complex.conj_eq_iff_re + theorem Complex.conj_eq_iff_real - theorem Complex.eq_conj_iff_im - theorem Complex.eq_conj_iff_re - theorem Complex.eq_conj_iff_real Modified Mathlib/Data/Complex/Exponential.lean 2023-05-04 11:23:10 9fe7218 chore: forward-port leanprover-community/mathlib#18876 (#3753) ESTIMATED CHANGES Modified Mathlib/Data/Set/Intervals/Basic.lean +/- theorem Set.not_mem_Icc_of_gt +/- theorem Set.not_mem_Icc_of_lt +/- theorem Set.not_mem_Ico_of_ge +/- theorem Set.not_mem_Ico_of_lt +/- theorem Set.not_mem_Iio_self +/- theorem Set.not_mem_Ioc_of_gt +/- theorem Set.not_mem_Ioc_of_le +/- theorem Set.not_mem_Ioi_self +/- theorem Set.not_mem_Ioo_of_ge +/- theorem Set.not_mem_Ioo_of_le 2023-05-04 11:23:09 e46fa51 chore: forward-port leanprover-community/mathlib#18879 (#3741) ESTIMATED CHANGES Modified Mathlib/Data/Matrix/Block.lean + theorem Matrix.fromBlocks_zero 2023-05-04 09:12:04 d8de9b7 feat: port Algebra.ContinuedFractions.TerminatedStable (#3792) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/ContinuedFractions/TerminatedStable.lean + theorem GeneralizedContinuedFraction.continuantsAux_stable_of_terminated + theorem GeneralizedContinuedFraction.continuantsAux_stable_step_of_terminated + theorem GeneralizedContinuedFraction.continuants_stable_of_terminated + theorem GeneralizedContinuedFraction.convergents'Aux_stable_of_terminated + theorem GeneralizedContinuedFraction.convergents'Aux_stable_step_of_terminated + theorem GeneralizedContinuedFraction.convergents'_stable_of_terminated + theorem GeneralizedContinuedFraction.convergents_stable_of_terminated + theorem GeneralizedContinuedFraction.denominators_stable_of_terminated + theorem GeneralizedContinuedFraction.numerators_stable_of_terminated + theorem GeneralizedContinuedFraction.terminated_stable 2023-05-04 09:12:03 12c3744 feat: port Algebra.ContinuedFractions.Computation.Basic (#3788) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/ContinuedFractions/Computation/Basic.lean + def GeneralizedContinuedFraction.IntFractPair.coeFn + theorem GeneralizedContinuedFraction.IntFractPair.coe_to_intFractPair + def GeneralizedContinuedFraction.IntFractPair.mapFr + theorem GeneralizedContinuedFraction.IntFractPair.stream_isSeq + structure GeneralizedContinuedFraction.IntFractPair 2023-05-04 08:44:21 8e9ff28 feat: port MeasureTheory.Measure.MeasureSpaceDef (#3325) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/MeasureTheory/Measure/MeasureSpaceDef.lean + theorem AEMeasurable.ae_eq_mk + theorem AEMeasurable.congr + theorem AEMeasurable.measurable_mk + def AEMeasurable.mk + def AEMeasurable + theorem Measurable.aemeasurable + theorem Measurable.comp_aemeasurable + def MeasureTheory.Measure.ae + theorem MeasureTheory.Measure.ext + theorem MeasureTheory.Measure.ext_iff + def MeasureTheory.Measure.ofMeasurable + theorem MeasureTheory.Measure.ofMeasurable_apply + theorem MeasureTheory.Measure.toOuterMeasure_injective + structure MeasureTheory.Measure + theorem MeasureTheory.Set.mulIndicator_ae_eq_one + theorem MeasureTheory.ae_all_iff + theorem MeasureTheory.ae_ball_iff + theorem MeasureTheory.ae_eq_empty + theorem MeasureTheory.ae_eq_refl + theorem MeasureTheory.ae_eq_set + theorem MeasureTheory.ae_eq_set_compl + theorem MeasureTheory.ae_eq_set_compl_compl + theorem MeasureTheory.ae_eq_set_inter + theorem MeasureTheory.ae_eq_set_union + theorem MeasureTheory.ae_eq_symm + theorem MeasureTheory.ae_eq_trans + theorem MeasureTheory.ae_eq_univ + theorem MeasureTheory.ae_iff + theorem MeasureTheory.ae_le_of_ae_lt + theorem MeasureTheory.ae_le_set + theorem MeasureTheory.ae_le_set_inter + theorem MeasureTheory.ae_le_set_union + theorem MeasureTheory.ae_le_toMeasurable + theorem MeasureTheory.ae_of_all + theorem MeasureTheory.compl_mem_ae_iff + theorem MeasureTheory.diff_ae_eq_self + theorem MeasureTheory.diff_null_ae_eq_self + theorem MeasureTheory.exists_measurable_superset + theorem MeasureTheory.exists_measurable_superset_forall_eq + theorem MeasureTheory.exists_measurable_superset_iff_measure_eq_zero + theorem MeasureTheory.exists_measurable_superset_of_null + theorem MeasureTheory.exists_measurable_superset₂ + theorem MeasureTheory.exists_measure_pos_of_not_measure_unionᵢ_null + theorem MeasureTheory.frequently_ae_iff + theorem MeasureTheory.frequently_ae_mem_iff + theorem MeasureTheory.inter_ae_eq_empty_of_ae_eq_empty_left + theorem MeasureTheory.inter_ae_eq_empty_of_ae_eq_empty_right + theorem MeasureTheory.inter_ae_eq_left_of_ae_eq_univ + theorem MeasureTheory.inter_ae_eq_right_of_ae_eq_univ + theorem MeasureTheory.measurableSet_toMeasurable + theorem MeasureTheory.measure_bunionᵢ_finset_le + theorem MeasureTheory.measure_bunionᵢ_le + theorem MeasureTheory.measure_bunionᵢ_lt_top + theorem MeasureTheory.measure_bunionᵢ_null_iff + theorem MeasureTheory.measure_congr + theorem MeasureTheory.measure_empty + theorem MeasureTheory.measure_eq_extend + theorem MeasureTheory.measure_eq_inducedOuterMeasure + theorem MeasureTheory.measure_eq_infᵢ' + theorem MeasureTheory.measure_eq_infᵢ + theorem MeasureTheory.measure_eq_trim + theorem MeasureTheory.measure_inter_lt_top_of_left_ne_top + theorem MeasureTheory.measure_inter_lt_top_of_right_ne_top + theorem MeasureTheory.measure_inter_null_of_null_left + theorem MeasureTheory.measure_inter_null_of_null_right + theorem MeasureTheory.measure_mono + theorem MeasureTheory.measure_mono_ae + theorem MeasureTheory.measure_mono_null + theorem MeasureTheory.measure_mono_null_ae + theorem MeasureTheory.measure_mono_top + theorem MeasureTheory.measure_symmDiff_eq_zero_iff + theorem MeasureTheory.measure_toMeasurable + theorem MeasureTheory.measure_union_eq_top_iff + theorem MeasureTheory.measure_union_le + theorem MeasureTheory.measure_union_lt_top + theorem MeasureTheory.measure_union_lt_top_iff + theorem MeasureTheory.measure_union_ne_top + theorem MeasureTheory.measure_union_null + theorem MeasureTheory.measure_union_null_iff + theorem MeasureTheory.measure_unionᵢ_fintype_le + theorem MeasureTheory.measure_unionᵢ_le + theorem MeasureTheory.measure_unionᵢ_null + theorem MeasureTheory.measure_unionᵢ_null_iff' + theorem MeasureTheory.measure_unionᵢ_null_iff + theorem MeasureTheory.measure_unionₛ_null_iff + theorem MeasureTheory.measure_zero_iff_ae_nmem + theorem MeasureTheory.mem_ae_iff + theorem MeasureTheory.nonempty_of_measure_ne_zero + theorem MeasureTheory.subset_toMeasurable + theorem MeasureTheory.toOuterMeasure_eq_inducedOuterMeasure + theorem MeasureTheory.union_ae_eq_left_of_ae_eq_empty + theorem MeasureTheory.union_ae_eq_right + theorem MeasureTheory.union_ae_eq_right_of_ae_eq_empty + theorem MeasureTheory.union_ae_eq_univ_of_ae_eq_univ_left + theorem MeasureTheory.union_ae_eq_univ_of_ae_eq_univ_right + theorem aemeasurable_congr + theorem aemeasurable_const + theorem aemeasurable_id' + theorem aemeasurable_id 2023-05-04 08:21:57 96a2d91 feat: port Algebra.ContinuedFractions.ContinuantsRecurrence (#3791) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/ContinuedFractions/ContinuantsRecurrence.lean + theorem GeneralizedContinuedFraction.continuantsAux_recurrence + theorem GeneralizedContinuedFraction.continuants_recurrence + theorem GeneralizedContinuedFraction.continuants_recurrenceAux + theorem GeneralizedContinuedFraction.denominators_recurrence + theorem GeneralizedContinuedFraction.numerators_recurrence 2023-05-04 05:47:35 a1e6ff6 feat: port Algebra.ContinuedFractions.Translations (#3783) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/ContinuedFractions/Translations.lean + theorem GeneralizedContinuedFraction.convergent_eq_conts_a_div_conts_b + theorem GeneralizedContinuedFraction.convergent_eq_num_div_denom + theorem GeneralizedContinuedFraction.convergents'Aux_succ_none + theorem GeneralizedContinuedFraction.convergents'Aux_succ_some + theorem GeneralizedContinuedFraction.denom_eq_conts_b + theorem GeneralizedContinuedFraction.exists_conts_a_of_num + theorem GeneralizedContinuedFraction.exists_conts_b_of_denom + theorem GeneralizedContinuedFraction.exists_s_a_of_part_num + theorem GeneralizedContinuedFraction.exists_s_b_of_part_denom + theorem GeneralizedContinuedFraction.first_continuant_aux_eq_h_one + theorem GeneralizedContinuedFraction.first_continuant_eq + theorem GeneralizedContinuedFraction.first_denominator_eq + theorem GeneralizedContinuedFraction.first_numerator_eq + theorem GeneralizedContinuedFraction.nth_cont_eq_succ_nth_cont_aux + theorem GeneralizedContinuedFraction.num_eq_conts_a + theorem GeneralizedContinuedFraction.part_denom_eq_s_b + theorem GeneralizedContinuedFraction.part_denom_none_iff_s_none + theorem GeneralizedContinuedFraction.part_num_eq_s_a + theorem GeneralizedContinuedFraction.part_num_none_iff_s_none + theorem GeneralizedContinuedFraction.second_continuant_aux_eq + theorem GeneralizedContinuedFraction.terminatedAt_iff_part_denom_none + theorem GeneralizedContinuedFraction.terminatedAt_iff_part_num_none + theorem GeneralizedContinuedFraction.terminatedAt_iff_s_none + theorem GeneralizedContinuedFraction.terminatedAt_iff_s_terminatedAt + theorem GeneralizedContinuedFraction.zeroth_continuant_aux_eq_one_zero + theorem GeneralizedContinuedFraction.zeroth_continuant_eq_h_one + theorem GeneralizedContinuedFraction.zeroth_convergent'_aux_eq_zero + theorem GeneralizedContinuedFraction.zeroth_convergent'_eq_h + theorem GeneralizedContinuedFraction.zeroth_convergent_eq_h + theorem GeneralizedContinuedFraction.zeroth_denominator_eq_one + theorem GeneralizedContinuedFraction.zeroth_numerator_eq_h 2023-05-03 23:01:50 093dc26 feat: delaborators for Finset.prod and Finset.sum (#3772) Also fixes some spacing in their `syntax` commands, which impacts pretty printing. ESTIMATED CHANGES Modified Mathlib/Algebra/BigOperators/Basic.lean + def BigOperators.delabFinsetProd + def BigOperators.delabFinsetSum 2023-05-03 22:31:52 816a4c0 chore: update Mathlib/Tactic.lean (#3727) ESTIMATED CHANGES Modified .github/workflows/bors.yml Modified .github/workflows/build.yml Modified .github/workflows/build.yml.in Modified .github/workflows/build_fork.yml Modified Mathlib/Tactic.lean 2023-05-03 17:20:53 ff33484 feat: implement intermediate state for simp_rw (#3738) closes #3680, see https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/Stepping.20through.20simp_rw/near/326712986 ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/Operations.lean Modified Mathlib/Algebra/BigOperators/Basic.lean Modified Mathlib/Algebra/BigOperators/Fin.lean Modified Mathlib/Algebra/BigOperators/Finsupp.lean Modified Mathlib/Algebra/CharZero/Quotient.lean Modified Mathlib/Algebra/GroupPower/Order.lean Modified Mathlib/Algebra/Homology/Flip.lean Modified Mathlib/Analysis/Convex/Join.lean Modified Mathlib/Analysis/LocallyConvex/BalancedCoreHull.lean Modified Mathlib/Analysis/Normed/Group/Seminorm.lean Modified Mathlib/Analysis/NormedSpace/LinearIsometry.lean Modified Mathlib/Analysis/Seminorm.lean Modified Mathlib/Combinatorics/Derangements/Basic.lean Modified Mathlib/Combinatorics/HalesJewett.lean Modified Mathlib/Combinatorics/SetFamily/Compression/Down.lean Modified Mathlib/Combinatorics/SetFamily/LYM.lean Modified Mathlib/Combinatorics/SimpleGraph/Regularity/Equitabilise.lean Modified Mathlib/Data/Fin/Tuple/NatAntidiagonal.lean Modified Mathlib/Data/Finset/Basic.lean Modified Mathlib/Data/Finset/Card.lean Modified Mathlib/Data/Finset/Functor.lean Modified Mathlib/Data/Finset/Interval.lean Modified Mathlib/Data/Finset/Sigma.lean Modified Mathlib/Data/Int/Interval.lean Modified Mathlib/Data/List/FinRange.lean Modified Mathlib/Data/List/OfFn.lean Modified Mathlib/Data/List/Sort.lean Modified Mathlib/Data/Matrix/DualNumber.lean Modified Mathlib/Data/MvPolynomial/Division.lean Modified Mathlib/Data/PFun.lean Modified Mathlib/Data/Polynomial/EraseLead.lean Modified Mathlib/Data/Polynomial/Eval.lean Modified Mathlib/Data/Rat/Lemmas.lean Modified Mathlib/Data/Set/Basic.lean Modified Mathlib/Data/Set/Pointwise/ListOfFn.lean Modified Mathlib/Data/Set/Prod.lean Modified Mathlib/Data/Vector/Basic.lean Modified Mathlib/GroupTheory/FreeProduct.lean Modified Mathlib/GroupTheory/MonoidLocalization.lean Modified Mathlib/GroupTheory/OrderOfElement.lean Modified Mathlib/GroupTheory/Perm/Cycle/Basic.lean Modified Mathlib/GroupTheory/Perm/Support.lean Modified Mathlib/GroupTheory/Subgroup/Basic.lean Modified Mathlib/GroupTheory/Submonoid/Membership.lean Modified Mathlib/GroupTheory/Submonoid/Operations.lean Modified Mathlib/LinearAlgebra/AffineSpace/Combination.lean Modified Mathlib/LinearAlgebra/Alternating.lean Modified Mathlib/LinearAlgebra/Dimension.lean Modified Mathlib/LinearAlgebra/DirectSum/TensorProduct.lean Modified Mathlib/LinearAlgebra/Matrix/Block.lean Modified Mathlib/LinearAlgebra/Matrix/Determinant.lean Modified Mathlib/LinearAlgebra/Multilinear/Basic.lean Modified Mathlib/LinearAlgebra/SesquilinearForm.lean Modified Mathlib/LinearAlgebra/Span.lean Modified Mathlib/MeasureTheory/PiSystem.lean Modified Mathlib/NumberTheory/Zsqrtd/Basic.lean Modified Mathlib/Order/Filter/Pointwise.lean Modified Mathlib/Order/Height.lean Modified Mathlib/Order/SuccPred/LinearLocallyFinite.lean Modified Mathlib/RingTheory/Ideal/Basic.lean Modified Mathlib/RingTheory/Ideal/Operations.lean Modified Mathlib/SetTheory/Cardinal/Basic.lean Modified Mathlib/SetTheory/ZFC/Basic.lean Modified Mathlib/Tactic/SimpRw.lean + def Mathlib.Tactic.withSimpRWRulesSeq Modified Mathlib/Topology/Algebra/UniformGroup.lean Modified Mathlib/Topology/Algebra/UniformRing.lean Modified Mathlib/Topology/Connected.lean Modified Mathlib/Topology/Constructions.lean Modified Mathlib/Topology/MetricSpace/Infsep.lean Modified Mathlib/Topology/UniformSpace/Compact.lean Modified Mathlib/Topology/UniformSpace/UniformConvergence.lean 2023-05-03 14:00:58 d65ed3b refactor, fix: `MetaM` version of `rfl` tactic and missing `whnfR`/`instantiateMVars` (#3758) This PR factors out a `MetaM` version of the `rfl` tactic and adds a missing `whnfR` and `instantiateMVars` in front of the goal type. This means that a few `rw`s across mathlib4 now close the goal instead of e.g. requiring a trailing `exact le_rfl`. Note: we do not use `whnfR` on the return type when adding the `refl` extension in the first place, as `forallMetaTelescopeReducing` already performs `whnf` (here, at reducible transparency). See [zulip](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/!4.233758.20.E2.80.93.20rfl.20refactor.20.26.20fix) for some discussion on the internal changes made. ESTIMATED CHANGES Modified Mathlib/Data/Complex/Exponential.lean Modified Mathlib/Data/MvPolynomial/Variables.lean Modified Mathlib/LinearAlgebra/AffineSpace/Basis.lean Modified Mathlib/LinearAlgebra/FiniteDimensional.lean Modified Mathlib/RingTheory/Multiplicity.lean Modified Mathlib/Tactic/Relation/Rfl.lean + def Lean.MVarId.rfl Modified test/rfl.lean 2023-05-03 13:39:19 b44bbff feat: port LinearAlgebra.AffineSpace.FiniteDimensional (#3670) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/LinearAlgebra/AffineSpace/FiniteDimensional.lean + theorem Affine.Simplex.span_eq_top + theorem AffineBasis.card_eq_finrank_add_one + theorem AffineBasis.exists_affineBasis_of_finiteDimensional + theorem AffineIndependent.affineSpan_eq_of_le_of_card_eq_finrank_add_one + theorem AffineIndependent.affineSpan_eq_top_iff_card_eq_finrank_add_one + theorem AffineIndependent.affineSpan_image_finset_eq_of_le_of_card_eq_finrank_add_one + theorem AffineIndependent.finrank_vectorSpan + theorem AffineIndependent.finrank_vectorSpan_image_finset + theorem AffineIndependent.vectorSpan_eq_of_le_of_card_eq_finrank_add_one + theorem AffineIndependent.vectorSpan_eq_top_of_card_eq_finrank_add_one + theorem AffineIndependent.vectorSpan_image_finset_eq_of_le_of_card_eq_finrank_add_one + theorem Collinear.affineSpan_eq_of_ne + theorem Collinear.collinear_insert_iff_of_ne + theorem Collinear.coplanar + theorem Collinear.coplanar_insert + theorem Collinear.finiteDimensional_direction_affineSpan + theorem Collinear.finiteDimensional_vectorSpan + theorem Collinear.mem_affineSpan_of_mem_of_ne + theorem Collinear.subset + def Collinear + theorem Coplanar.finiteDimensional_direction_affineSpan + theorem Coplanar.finiteDimensional_vectorSpan + theorem Coplanar.subset + def Coplanar + theorem affineIndependent_iff_finrank_vectorSpan_eq + theorem affineIndependent_iff_le_finrank_vectorSpan + theorem affineIndependent_iff_not_collinear + theorem affineIndependent_iff_not_collinear_of_ne + theorem affineIndependent_iff_not_collinear_set + theorem affineIndependent_iff_not_finrank_vectorSpan_le + theorem collinear_empty + theorem collinear_iff_exists_forall_eq_smul_vadd + theorem collinear_iff_finrank_le_one + theorem collinear_iff_not_affineIndependent + theorem collinear_iff_not_affineIndependent_of_ne + theorem collinear_iff_not_affineIndependent_set + theorem collinear_iff_of_mem + theorem collinear_iff_rank_le_one + theorem collinear_insert_iff_of_mem_affineSpan + theorem collinear_insert_insert_insert_left_of_mem_affineSpan_pair + theorem collinear_insert_insert_insert_of_mem_affineSpan_pair + theorem collinear_insert_insert_of_mem_affineSpan_pair + theorem collinear_insert_of_mem_affineSpan_pair + theorem collinear_pair + theorem collinear_singleton + theorem collinear_triple_of_mem_affineSpan_pair + theorem coplanar_empty + theorem coplanar_iff_finrank_le_two + theorem coplanar_insert_iff_of_mem_affineSpan + theorem coplanar_of_fact_finrank_eq_two + theorem coplanar_of_finrank_eq_two + theorem coplanar_pair + theorem coplanar_singleton + theorem coplanar_triple + theorem finiteDimensional_direction_affineSpan_of_finite + theorem finiteDimensional_vectorSpan_of_finite + theorem finite_of_fin_dim_affineIndependent + theorem finite_set_of_fin_dim_affineIndependent + theorem finrank_vectorSpan_image_finset_le + theorem finrank_vectorSpan_insert_le + theorem finrank_vectorSpan_insert_le_set + theorem finrank_vectorSpan_le_iff_not_affineIndependent + theorem finrank_vectorSpan_range_le + theorem ne₁₂_of_not_collinear + theorem ne₁₃_of_not_collinear + theorem ne₂₃_of_not_collinear 2023-05-03 13:39:17 b2959ac feat: port RingTheory.Localization.InvSubmonoid (#3384) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/RingTheory/Localization/InvSubmonoid.lean + theorem IsLocalization.finiteType_of_monoid_fg + def IsLocalization.invSubmonoid + theorem IsLocalization.mem_invSubmonoid_iff_exists_mk' + theorem IsLocalization.mul_toInvSubmonoid + theorem IsLocalization.smul_toInvSubmonoid + theorem IsLocalization.span_invSubmonoid + theorem IsLocalization.submonoid_map_le_is_unit + theorem IsLocalization.surj'' + theorem IsLocalization.toInvSubmonoid_eq_mk' + theorem IsLocalization.toInvSubmonoid_mul + theorem IsLocalization.toInvSubmonoid_surjective 2023-05-03 13:39:15 1a306e6 feat: port Algebra.ContinuedFractions.Basic (#3379) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/ContinuedFractions/Basic.lean + def ContinuedFraction.ofInteger + def ContinuedFraction + def GeneralizedContinuedFraction.IsSimpleContinuedFraction + def GeneralizedContinuedFraction.Pair.coeFn + theorem GeneralizedContinuedFraction.Pair.coe_toPair + def GeneralizedContinuedFraction.Pair.map + structure GeneralizedContinuedFraction.Pair + def GeneralizedContinuedFraction.TerminatedAt + def GeneralizedContinuedFraction.Terminates + def GeneralizedContinuedFraction.coeFn + theorem GeneralizedContinuedFraction.coe_toGeneralizedContinuedFraction + def GeneralizedContinuedFraction.continuants + def GeneralizedContinuedFraction.continuantsAux + def GeneralizedContinuedFraction.convergents' + def GeneralizedContinuedFraction.convergents'Aux + def GeneralizedContinuedFraction.convergents + def GeneralizedContinuedFraction.denominators + def GeneralizedContinuedFraction.nextContinuants + def GeneralizedContinuedFraction.nextDenominator + def GeneralizedContinuedFraction.nextNumerator + def GeneralizedContinuedFraction.numerators + def GeneralizedContinuedFraction.ofInteger + def GeneralizedContinuedFraction.partialDenominators + def GeneralizedContinuedFraction.partialNumerators + structure GeneralizedContinuedFraction + def SimpleContinuedFraction.IsContinuedFraction + def SimpleContinuedFraction.ofInteger + def SimpleContinuedFraction 2023-05-03 13:39:13 8ab1039 feat: port CategoryTheory.Monoidal.Free.Basic (#2808) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Monoidal/Free/Basic.lean + inductive CategoryTheory.FreeMonoidalCategory.Hom + inductive CategoryTheory.FreeMonoidalCategory.HomEquiv + theorem CategoryTheory.FreeMonoidalCategory.mk_comp + theorem CategoryTheory.FreeMonoidalCategory.mk_id + theorem CategoryTheory.FreeMonoidalCategory.mk_l_hom + theorem CategoryTheory.FreeMonoidalCategory.mk_l_inv + theorem CategoryTheory.FreeMonoidalCategory.mk_tensor + theorem CategoryTheory.FreeMonoidalCategory.mk_α_hom + theorem CategoryTheory.FreeMonoidalCategory.mk_α_inv + theorem CategoryTheory.FreeMonoidalCategory.mk_ρ_hom + theorem CategoryTheory.FreeMonoidalCategory.mk_ρ_inv + def CategoryTheory.FreeMonoidalCategory.project + def CategoryTheory.FreeMonoidalCategory.projectMap + def CategoryTheory.FreeMonoidalCategory.projectMapAux + def CategoryTheory.FreeMonoidalCategory.projectObj + def CategoryTheory.FreeMonoidalCategory.setoidHom + theorem CategoryTheory.FreeMonoidalCategory.tensor_eq_tensor + theorem CategoryTheory.FreeMonoidalCategory.unit_eq_unit + inductive CategoryTheory.FreeMonoidalCategory 2023-05-03 13:16:44 ed55d04 fix: a missing TypeMax (#3781) One was missed; curiously it wasn't harmful in `master`, but when we turn on `etaExperiment` globally this causes a breakage ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Limits/Shapes/Types.lean +/- def CategoryTheory.Limits.Types.productLimitCone 2023-05-03 12:09:25 5b5f298 chore: move shortcut instance to Algebra.Algebra.Basic (#3778) See https://github.com/leanprover-community/mathlib/pull/18907 ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/Basic.lean Modified Mathlib/Data/Complex/Module.lean 2023-05-03 11:33:41 fce7fae docs: fix names in Analysis.LocallyConvex.Bounded (#3774) ESTIMATED CHANGES Modified Mathlib/Analysis/LocallyConvex/Bounded.lean 2023-05-03 11:02:26 b7bda09 feat: port MeasureTheory.Measure.OuterMeasure (#3674) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Algebra/Tower.lean Added Mathlib/MeasureTheory/Measure/OuterMeasure.lean + def MeasureTheory.OuterMeasure.IsCaratheodory + theorem MeasureTheory.OuterMeasure.add_apply + theorem MeasureTheory.OuterMeasure.binfᵢ_apply' + theorem MeasureTheory.OuterMeasure.binfᵢ_apply + def MeasureTheory.OuterMeasure.boundedBy + theorem MeasureTheory.OuterMeasure.boundedBy_apply + theorem MeasureTheory.OuterMeasure.boundedBy_caratheodory + theorem MeasureTheory.OuterMeasure.boundedBy_eq + theorem MeasureTheory.OuterMeasure.boundedBy_eq_ofFunction + theorem MeasureTheory.OuterMeasure.boundedBy_eq_self + theorem MeasureTheory.OuterMeasure.boundedBy_le + theorem MeasureTheory.OuterMeasure.boundedBy_union_of_top_of_nonempty_inter + theorem MeasureTheory.OuterMeasure.bunionᵢ_null_iff + def MeasureTheory.OuterMeasure.caratheodoryDynkin + def MeasureTheory.OuterMeasure.coeFnAddMonoidHom + theorem MeasureTheory.OuterMeasure.coe_add + theorem MeasureTheory.OuterMeasure.coe_bot + theorem MeasureTheory.OuterMeasure.coe_fn_injective + theorem MeasureTheory.OuterMeasure.coe_smul + theorem MeasureTheory.OuterMeasure.coe_supᵢ + theorem MeasureTheory.OuterMeasure.coe_zero + def MeasureTheory.OuterMeasure.comap + theorem MeasureTheory.OuterMeasure.comap_apply + theorem MeasureTheory.OuterMeasure.comap_boundedBy + theorem MeasureTheory.OuterMeasure.comap_infᵢ + theorem MeasureTheory.OuterMeasure.comap_map + theorem MeasureTheory.OuterMeasure.comap_mono + theorem MeasureTheory.OuterMeasure.comap_ofFunction + theorem MeasureTheory.OuterMeasure.comap_supᵢ + theorem MeasureTheory.OuterMeasure.comap_top + theorem MeasureTheory.OuterMeasure.diff_null + def MeasureTheory.OuterMeasure.dirac + theorem MeasureTheory.OuterMeasure.dirac_apply + theorem MeasureTheory.OuterMeasure.dirac_caratheodory + theorem MeasureTheory.OuterMeasure.empty' + theorem MeasureTheory.OuterMeasure.exists_measurable_superset_eq_trim + theorem MeasureTheory.OuterMeasure.exists_measurable_superset_forall_eq_trim + theorem MeasureTheory.OuterMeasure.exists_measurable_superset_of_trim_eq_zero + theorem MeasureTheory.OuterMeasure.exists_mem_forall_mem_nhds_within_pos + theorem MeasureTheory.OuterMeasure.ext + theorem MeasureTheory.OuterMeasure.ext_nonempty + theorem MeasureTheory.OuterMeasure.f_unionᵢ + theorem MeasureTheory.OuterMeasure.infᵢ_apply' + theorem MeasureTheory.OuterMeasure.infᵢ_apply + def MeasureTheory.OuterMeasure.infₛGen + theorem MeasureTheory.OuterMeasure.infₛGen_def + theorem MeasureTheory.OuterMeasure.infₛ_apply' + theorem MeasureTheory.OuterMeasure.infₛ_apply + theorem MeasureTheory.OuterMeasure.infₛ_eq_boundedBy_infₛGen + theorem MeasureTheory.OuterMeasure.isCaratheodory_compl + theorem MeasureTheory.OuterMeasure.isCaratheodory_compl_iff + theorem MeasureTheory.OuterMeasure.isCaratheodory_empty + theorem MeasureTheory.OuterMeasure.isCaratheodory_iff + theorem MeasureTheory.OuterMeasure.isCaratheodory_iff_le' + theorem MeasureTheory.OuterMeasure.isCaratheodory_iff_le + theorem MeasureTheory.OuterMeasure.isCaratheodory_inter + theorem MeasureTheory.OuterMeasure.isCaratheodory_sum + theorem MeasureTheory.OuterMeasure.isCaratheodory_union + theorem MeasureTheory.OuterMeasure.isCaratheodory_unionᵢ_lt + theorem MeasureTheory.OuterMeasure.isCaratheodory_unionᵢ_nat + theorem MeasureTheory.OuterMeasure.isGreatest_ofFunction + theorem MeasureTheory.OuterMeasure.le_add_caratheodory + theorem MeasureTheory.OuterMeasure.le_boundedBy + theorem MeasureTheory.OuterMeasure.le_bounded_by' + theorem MeasureTheory.OuterMeasure.le_comap_map + theorem MeasureTheory.OuterMeasure.le_inter_add_diff + theorem MeasureTheory.OuterMeasure.le_ofFunction + theorem MeasureTheory.OuterMeasure.le_smul_caratheodory + theorem MeasureTheory.OuterMeasure.le_sum_caratheodory + theorem MeasureTheory.OuterMeasure.le_trim + theorem MeasureTheory.OuterMeasure.le_trim_iff + def MeasureTheory.OuterMeasure.map + theorem MeasureTheory.OuterMeasure.map_apply + theorem MeasureTheory.OuterMeasure.map_binfᵢ_comap + theorem MeasureTheory.OuterMeasure.map_comap + theorem MeasureTheory.OuterMeasure.map_comap_le + theorem MeasureTheory.OuterMeasure.map_comap_of_surjective + theorem MeasureTheory.OuterMeasure.map_id + theorem MeasureTheory.OuterMeasure.map_infᵢ + theorem MeasureTheory.OuterMeasure.map_infᵢ_comap + theorem MeasureTheory.OuterMeasure.map_infᵢ_le + theorem MeasureTheory.OuterMeasure.map_le_restrict_range + theorem MeasureTheory.OuterMeasure.map_map + theorem MeasureTheory.OuterMeasure.map_mono + theorem MeasureTheory.OuterMeasure.map_ofFunction + theorem MeasureTheory.OuterMeasure.map_ofFunction_le + theorem MeasureTheory.OuterMeasure.map_sup + theorem MeasureTheory.OuterMeasure.map_supᵢ + theorem MeasureTheory.OuterMeasure.map_top + theorem MeasureTheory.OuterMeasure.map_top_of_surjective + theorem MeasureTheory.OuterMeasure.measure_inter_union + theorem MeasureTheory.OuterMeasure.mono'' + theorem MeasureTheory.OuterMeasure.mono' + theorem MeasureTheory.OuterMeasure.mono_null + theorem MeasureTheory.OuterMeasure.null_of_locally_null + theorem MeasureTheory.OuterMeasure.ofFunction_apply + theorem MeasureTheory.OuterMeasure.ofFunction_caratheodory + theorem MeasureTheory.OuterMeasure.ofFunction_eq + theorem MeasureTheory.OuterMeasure.ofFunction_eq_supₛ + theorem MeasureTheory.OuterMeasure.ofFunction_le + theorem MeasureTheory.OuterMeasure.ofFunction_union_of_top_of_nonempty_inter + theorem MeasureTheory.OuterMeasure.pos_of_subset_ne_zero + def MeasureTheory.OuterMeasure.restrict + theorem MeasureTheory.OuterMeasure.restrict_apply + theorem MeasureTheory.OuterMeasure.restrict_binfᵢ + theorem MeasureTheory.OuterMeasure.restrict_empty + theorem MeasureTheory.OuterMeasure.restrict_infᵢ + theorem MeasureTheory.OuterMeasure.restrict_infᵢ_restrict + theorem MeasureTheory.OuterMeasure.restrict_infₛ_eq_infₛ_restrict + theorem MeasureTheory.OuterMeasure.restrict_le_self + theorem MeasureTheory.OuterMeasure.restrict_mono + theorem MeasureTheory.OuterMeasure.restrict_ofFunction + theorem MeasureTheory.OuterMeasure.restrict_supᵢ + theorem MeasureTheory.OuterMeasure.restrict_trim + theorem MeasureTheory.OuterMeasure.restrict_univ + theorem MeasureTheory.OuterMeasure.smul_apply + theorem MeasureTheory.OuterMeasure.smul_boundedBy + theorem MeasureTheory.OuterMeasure.smul_dirac_apply + theorem MeasureTheory.OuterMeasure.smul_ofFunction + theorem MeasureTheory.OuterMeasure.smul_supᵢ + def MeasureTheory.OuterMeasure.sum + theorem MeasureTheory.OuterMeasure.sum_apply + theorem MeasureTheory.OuterMeasure.sup_apply + theorem MeasureTheory.OuterMeasure.supᵢ_apply + theorem MeasureTheory.OuterMeasure.supᵢ_infₛGen_nonempty + theorem MeasureTheory.OuterMeasure.supₛ_apply + theorem MeasureTheory.OuterMeasure.top_apply' + theorem MeasureTheory.OuterMeasure.top_apply + theorem MeasureTheory.OuterMeasure.top_caratheodory + def MeasureTheory.OuterMeasure.trim + theorem MeasureTheory.OuterMeasure.trim_add + theorem MeasureTheory.OuterMeasure.trim_binop + theorem MeasureTheory.OuterMeasure.trim_congr + theorem MeasureTheory.OuterMeasure.trim_eq + theorem MeasureTheory.OuterMeasure.trim_eq_infᵢ' + theorem MeasureTheory.OuterMeasure.trim_eq_infᵢ + theorem MeasureTheory.OuterMeasure.trim_eq_trim_iff + theorem MeasureTheory.OuterMeasure.trim_le_trim_iff + theorem MeasureTheory.OuterMeasure.trim_mono + theorem MeasureTheory.OuterMeasure.trim_op + theorem MeasureTheory.OuterMeasure.trim_smul + theorem MeasureTheory.OuterMeasure.trim_sum_ge + theorem MeasureTheory.OuterMeasure.trim_sup + theorem MeasureTheory.OuterMeasure.trim_supᵢ + theorem MeasureTheory.OuterMeasure.trim_trim + theorem MeasureTheory.OuterMeasure.trim_zero + theorem MeasureTheory.OuterMeasure.union_null + theorem MeasureTheory.OuterMeasure.unionᵢ_nat_of_monotone_of_tsum_ne_top + theorem MeasureTheory.OuterMeasure.unionᵢ_null + theorem MeasureTheory.OuterMeasure.unionᵢ_null_iff' + theorem MeasureTheory.OuterMeasure.unionᵢ_null_iff + theorem MeasureTheory.OuterMeasure.unionᵢ_of_tendsto_zero + theorem MeasureTheory.OuterMeasure.unionₛ_null_iff + theorem MeasureTheory.OuterMeasure.univ_eq_zero_iff + theorem MeasureTheory.OuterMeasure.zero_caratheodory + structure MeasureTheory.OuterMeasure + def MeasureTheory.extend + theorem MeasureTheory.extend_congr + theorem MeasureTheory.extend_empty + theorem MeasureTheory.extend_eq + theorem MeasureTheory.extend_eq_top + theorem MeasureTheory.extend_mono' + theorem MeasureTheory.extend_mono + theorem MeasureTheory.extend_union + theorem MeasureTheory.extend_unionᵢ + theorem MeasureTheory.extend_unionᵢ_le_tsum_nat' + theorem MeasureTheory.extend_unionᵢ_le_tsum_nat + theorem MeasureTheory.extend_unionᵢ_nat + def MeasureTheory.inducedOuterMeasure + theorem MeasureTheory.inducedOuterMeasure_caratheodory + theorem MeasureTheory.inducedOuterMeasure_eq' + theorem MeasureTheory.inducedOuterMeasure_eq + theorem MeasureTheory.inducedOuterMeasure_eq_extend' + theorem MeasureTheory.inducedOuterMeasure_eq_extend + theorem MeasureTheory.inducedOuterMeasure_eq_infᵢ + theorem MeasureTheory.inducedOuterMeasure_exists_set + theorem MeasureTheory.inducedOuterMeasure_preimage + theorem MeasureTheory.inducedOuterMeasure_union_of_false_of_nonempty_inter + theorem MeasureTheory.le_extend + theorem MeasureTheory.le_inducedOuterMeasure 2023-05-03 06:27:24 2d97555 feat: port LinearAlgebra.AffineSpace.Matrix (#3775) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/LinearAlgebra/AffineSpace/Matrix.lean + theorem AffineBasis.affineIndependent_of_toMatrix_right_inv + theorem AffineBasis.affineSpan_eq_top_of_toMatrix_left_inv + theorem AffineBasis.det_smul_coords_eq_cramer_coords + theorem AffineBasis.isUnit_toMatrix + theorem AffineBasis.isUnit_toMatrix_iff + theorem AffineBasis.toMatrix_apply + theorem AffineBasis.toMatrix_inv_vecMul_toMatrix + theorem AffineBasis.toMatrix_mul_toMatrix + theorem AffineBasis.toMatrix_row_sum_one + theorem AffineBasis.toMatrix_self + theorem AffineBasis.toMatrix_vecMul_coords 2023-05-03 01:24:20 9c99950 feat port: Algebra.FreeModule.Determinant (#3767) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/LinearAlgebra/FreeModule/Determinant.lean + theorem LinearMap.det_zero'' 2023-05-03 01:24:19 775b745 feat: port Data.Complex.Determinant (#3765) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Data/Complex/Determinant.lean + theorem Complex.det_conjAe + theorem Complex.linearEquiv_det_conjAe 2023-05-03 01:24:17 83ffd4f feat: port Analysis.SpecialFunctions.Trigonometric.Chebyshev (#3764) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/SpecialFunctions/Trigonometric/Chebyshev.lean + theorem Polynomial.Chebyshev.T_complex_cos + theorem Polynomial.Chebyshev.T_real_cos + theorem Polynomial.Chebyshev.U_complex_cos + theorem Polynomial.Chebyshev.U_real_cos + theorem Polynomial.Chebyshev.aeval_T + theorem Polynomial.Chebyshev.aeval_U + theorem Polynomial.Chebyshev.algebraMap_eval_T + theorem Polynomial.Chebyshev.algebraMap_eval_U + theorem Polynomial.Chebyshev.complex_of_real_eval_T + theorem Polynomial.Chebyshev.complex_of_real_eval_U 2023-05-03 01:24:16 650121b feat: port Analysis.Convex.Complex (#3763) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/Convex/Complex.lean + theorem convex_halfspace_im_ge + theorem convex_halfspace_im_gt + theorem convex_halfspace_im_le + theorem convex_halfspace_im_lt + theorem convex_halfspace_re_ge + theorem convex_halfspace_re_gt + theorem convex_halfspace_re_le + theorem convex_halfspace_re_lt 2023-05-03 01:24:16 0a184b9 feat: port Data.Matrix.Rank (#3762) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Data/Matrix/Rank.lean + theorem Matrix.ker_mulVecLin_conjTranspose_mul_self + theorem Matrix.ker_mulVecLin_transpose_mul_self + theorem Matrix.rank_conjTranspose + theorem Matrix.rank_conjTranspose_mul_self + theorem Matrix.rank_eq_finrank_range_toLin + theorem Matrix.rank_eq_finrank_span_cols + theorem Matrix.rank_eq_finrank_span_row + theorem Matrix.rank_le_card_height + theorem Matrix.rank_le_card_width + theorem Matrix.rank_le_height + theorem Matrix.rank_le_width + theorem Matrix.rank_mul_le + theorem Matrix.rank_mul_le_left + theorem Matrix.rank_mul_le_right + theorem Matrix.rank_of_isUnit + theorem Matrix.rank_one + theorem Matrix.rank_reindex + theorem Matrix.rank_self_mul_conjTranspose + theorem Matrix.rank_self_mul_transpose + theorem Matrix.rank_submatrix + theorem Matrix.rank_submatrix_le + theorem Matrix.rank_transpose + theorem Matrix.rank_transpose_mul_self + theorem Matrix.rank_unit + theorem Matrix.rank_zero 2023-05-03 01:24:14 77aa05d feat: port CategoryTheory.Category.Groupoid (#3761) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Category/Grpd.lean + theorem CategoryTheory.Grpd.coe_of + def CategoryTheory.Grpd.forgetToCat + theorem CategoryTheory.Grpd.hom_to_functor + theorem CategoryTheory.Grpd.id_to_functor + def CategoryTheory.Grpd.objects + def CategoryTheory.Grpd.of + theorem CategoryTheory.Grpd.piIsoPi_hom_π + def CategoryTheory.Grpd.piLimitFan + def CategoryTheory.Grpd.piLimitFanIsLimit + def CategoryTheory.Grpd 2023-05-03 01:24:13 ffbbb25 chore: tweak `subsingleton_of_trichotomous_of_irrefl` (#3749) Match https://github.com/leanprover-community/mathlib/pull/18749 ESTIMATED CHANGES Modified Mathlib/Order/InitialSeg.lean - theorem InitialSeg.unique_of_trichotomous_of_irrefl 2023-05-02 22:58:39 755fcb9 feat: better display of partial results from library_search (#3743) On @PatrickMassot's [example](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/library_search.20regression/near/353375130): ```lean import Mathlib.Topology.Instances.Real import Mathlib.Topology.Algebra.Order.Compact import Mathlib.Tactic.LibrarySearch example (f : ℝ → ℝ) {K : Set ℝ} (hK: IsCompact K) : ∃ x ∈ K, ∀ y ∈ K, f x ≤ f y := by library_search ``` we have: * `refine IsCompact.exists_forall_le hK ?_ ?_` as one of the suggested solutions * in fact, as the first solution (on the basis that it uses more local hypotheses than alternatives) * none of the spurious results which use `False.elim ?_` * and better display of the result, with hints: ```lean refine IsCompact.exists_forall_le hK ?_ ?_ -- Remaining subgoals: -- ⊢ Set.Nonempty K -- ⊢ ContinuousOn (fun x ↦ f x) K ``` ESTIMATED CHANGES Modified Mathlib/Lean/Meta.lean + def Lean.MVarId.independent? + def Lean.MVarId.subsingleton? + def Lean.Meta.countLocalHypsUsed +/- def Lean.Meta.getLocalHyps Modified Mathlib/Tactic/Backtracking.lean + def List.tryAllM - def Mathlib.Tactic.backtrack + def Mathlib.Tactic.ppMVarIds Modified Mathlib/Tactic/LibrarySearch.lean +/- def Mathlib.Tactic.LibrarySearch.solveByElim + def Mathlib.Tactic.LibrarySearch.sortResults + def Mathlib.Tactic.LibrarySearch.subgoalRankType + def Mathlib.Tactic.LibrarySearch.subgoalRanking Modified Mathlib/Tactic/SolveByElim.lean Modified Mathlib/Tactic/TryThis.lean + def addRefineSuggestion Added test/LibrarySearch/IsCompact.lean Renamed test/librarySearch.lean to test/LibrarySearch/basic.lean Modified test/propose.lean 2023-05-02 16:51:37 3a192b3 feat: port Topology.Algebra.Module.Determinant (#3766) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Topology/Algebra/Module/Determinant.lean + theorem ContinuousLinearEquiv.det_coe_symm 2023-05-02 14:49:42 142e5ad fix: don't look too hard for binders when indexing lemmas for library_search (#3724) ESTIMATED CHANGES Modified Mathlib/Tactic/LibrarySearch.lean Modified test/librarySearch.lean 2023-05-02 12:23:16 eeca230 fix: linarith variable shadowing bug (#3760) As reported on [zulip](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/linarith.20bug). ESTIMATED CHANGES Modified Mathlib/Tactic/Linarith/Frontend.lean Modified Mathlib/Tactic/Linarith/Parsing.lean Modified Mathlib/Tactic/Linarith/Verification.lean Modified test/linarith.lean 2023-05-02 10:23:03 2bdc8a9 feat: port CategoryTheory.Monoidal.Tor (#3754) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Monoidal/Tor.lean + def CategoryTheory.Tor' + theorem CategoryTheory.Tor'_map_app' + theorem CategoryTheory.Tor'_obj_map + def CategoryTheory.Tor + def CategoryTheory.tor'SuccOfProjective + def CategoryTheory.torSuccOfProjective 2023-05-02 10:23:02 4c8d785 Revert "feat: port Algebra.Order.ToIntervalMod (#2148)" (#3388) This reverts commit 2d0dd3902a4a796d8f38778fec991ab1d4c2a660. The porting comments say "Would be nice to finish leanprover-community/mathlib#17743 first". The commit message says "Might be best to wait". We should wait; there is no urgency to merge this, and no discussion took place that argued against waiting. ESTIMATED CHANGES Modified Mathlib.lean Deleted Mathlib/Algebra/Order/ToIntervalMod.lean - theorem Ico_eq_locus_Ioc_eq_unionᵢ_Ioo - def MemIooMod - theorem eq_toIcoDiv_of_sub_zsmul_mem_Ico - theorem eq_toIocDiv_of_sub_zsmul_mem_Ioc - theorem left_le_toIcoMod - theorem left_lt_toIocMod - theorem memIooMod_iff_ne_add_zsmul - theorem memIooMod_iff_ne_mod_zmultiples - theorem memIooMod_iff_toIcoDiv_eq_toIocDiv - theorem memIooMod_iff_toIcoDiv_ne_toIocDiv_add_one - theorem memIooMod_iff_toIcoMod_add_period_ne_toIocMod - theorem memIooMod_iff_toIcoMod_eq_toIocMod - theorem memIooMod_iff_toIcoMod_ne_left - theorem memIooMod_iff_toIocMod_ne_right - theorem not_memIooMod_iff_eq_add_zsmul - theorem not_memIooMod_iff_eq_mod_zmultiples - theorem not_memIooMod_iff_toIcoDiv_eq_toIocDiv_add_one - theorem not_memIooMod_iff_toIcoMod_add_period_eq_toIocMod - theorem not_memIooMod_iff_toIcoMod_eq_left - theorem not_memIooMod_iff_to_Ioc_eq_right - def quotientAddGroup.equivIcoMod - theorem quotientAddGroup.equivIcoMod_coe - def quotientAddGroup.equivIocMod - theorem quotientAddGroup.equivIocMod_coe - theorem self_sub_toIcoDiv_zsmul - theorem self_sub_toIcoMod - theorem self_sub_toIocDiv_zsmul - theorem self_sub_toIocMod - theorem sub_toIcoDiv_zsmul_mem_Ico - theorem sub_toIocDiv_zsmul_mem_Ioc - theorem tfae_memIooMod - def toIcoDiv - theorem toIcoDiv_add_left - theorem toIcoDiv_add_right' - theorem toIcoDiv_add_right - theorem toIcoDiv_add_zsmul - theorem toIcoDiv_apply_left - theorem toIcoDiv_apply_right - theorem toIcoDiv_eq_floor - theorem toIcoDiv_neg - theorem toIcoDiv_sub' - theorem toIcoDiv_sub - theorem toIcoDiv_sub_zsmul - theorem toIcoDiv_zero_one - theorem toIcoDiv_zsmul_add - theorem toIcoDiv_zsmul_sub_self - theorem toIcoDiv_zsmul_sub_toIcoMod - def toIcoMod - theorem toIcoMod_add_left - theorem toIcoMod_add_right' - theorem toIcoMod_add_right - theorem toIcoMod_add_toIcoDiv_zsmul - theorem toIcoMod_add_zsmul - theorem toIcoMod_apply_left - theorem toIcoMod_apply_right - theorem toIcoMod_eq_add_fract_mul - theorem toIcoMod_eq_fract_mul - theorem toIcoMod_eq_iff - theorem toIcoMod_eq_self - theorem toIcoMod_eq_toIcoMod - theorem toIcoMod_le_toIocMod - theorem toIcoMod_lt_right - theorem toIcoMod_mem_Ico' - theorem toIcoMod_mem_Ico - theorem toIcoMod_neg - theorem toIcoMod_periodic - theorem toIcoMod_sub' - theorem toIcoMod_sub - theorem toIcoMod_sub_self - theorem toIcoMod_sub_zsmul - theorem toIcoMod_toIcoMod - theorem toIcoMod_toIocMod - theorem toIcoMod_zero_one - theorem toIcoMod_zsmul_add - def toIocDiv - theorem toIocDiv_add_left - theorem toIocDiv_add_right' - theorem toIocDiv_add_right - theorem toIocDiv_add_zsmul - theorem toIocDiv_apply_left - theorem toIocDiv_apply_right - theorem toIocDiv_eq_neg_floor - theorem toIocDiv_neg - theorem toIocDiv_sub' - theorem toIocDiv_sub - theorem toIocDiv_sub_zsmul - theorem toIocDiv_wcovby_toIcoDiv - theorem toIocDiv_zsmul_add - theorem toIocDiv_zsmul_sub_self - theorem toIocDiv_zsmul_sub_toIocMod - def toIocMod - theorem toIocMod_add_left - theorem toIocMod_add_right' - theorem toIocMod_add_right - theorem toIocMod_add_toIocDiv_zsmul - theorem toIocMod_add_zsmul - theorem toIocMod_apply_left - theorem toIocMod_apply_right - theorem toIocMod_eq_iff - theorem toIocMod_eq_self - theorem toIocMod_eq_sub_fract_mul - theorem toIocMod_eq_toIocMod - theorem toIocMod_le_right - theorem toIocMod_le_toIcoMod_add - theorem toIocMod_mem_Ioc - theorem toIocMod_neg - theorem toIocMod_periodic - theorem toIocMod_sub' - theorem toIocMod_sub - theorem toIocMod_sub_self - theorem toIocMod_sub_zsmul - theorem toIocMod_toIcoMod - theorem toIocMod_toIocMod - theorem toIocMod_zsmul_add - theorem unionᵢ_Icc_add_int_cast - theorem unionᵢ_Icc_add_zsmul - theorem unionᵢ_Icc_int_cast - theorem unionᵢ_Icc_zsmul - theorem unionᵢ_Ico_add_int_cast - theorem unionᵢ_Ico_add_zsmul - theorem unionᵢ_Ico_int_cast - theorem unionᵢ_Ico_zsmul - theorem unionᵢ_Ioc_add_int_cast - theorem unionᵢ_Ioc_add_zsmul - theorem unionᵢ_Ioc_int_cast - theorem unionᵢ_Ioc_zsmul 2023-05-02 10:05:14 cc8f26f feat: port LinearAlgebra.Determinant (#3694) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/LinearAlgebra/Determinant.lean + theorem AlternatingMap.eq_smul_basis_det + theorem AlternatingMap.map_basis_eq_zero_iff + theorem AlternatingMap.map_basis_ne_zero_iff + theorem Basis.det_apply + theorem Basis.det_comp + theorem Basis.det_comp_basis + theorem Basis.det_isEmpty + theorem Basis.det_isUnitSMul + theorem Basis.det_map' + theorem Basis.det_map + theorem Basis.det_ne_zero + theorem Basis.det_reindex + theorem Basis.det_reindex_symm + theorem Basis.det_self + theorem Basis.det_smul_mk_coord_eq_det_update + theorem Basis.det_unitsSMul + theorem Basis.det_unitsSMul_self + theorem Basis.isUnit_det + theorem LinearEquiv.coe_det + theorem LinearEquiv.coe_inv_det + theorem LinearEquiv.coe_ofIsUnitDet + theorem LinearEquiv.det_coe_symm + theorem LinearEquiv.det_conj + theorem LinearEquiv.det_mul_det_symm + theorem LinearEquiv.det_refl + theorem LinearEquiv.det_symm + theorem LinearEquiv.det_symm_mul_det + theorem LinearEquiv.det_trans + theorem LinearEquiv.isUnit_det' + theorem LinearEquiv.isUnit_det + def LinearEquiv.ofIsUnitDet + theorem LinearMap.associated_det_comp_equiv + theorem LinearMap.associated_det_of_eq_comp + theorem LinearMap.bot_lt_ker_of_det_eq_zero + theorem LinearMap.coe_det + theorem LinearMap.detAux_comp + theorem LinearMap.detAux_def'' + theorem LinearMap.detAux_def' + theorem LinearMap.detAux_id + theorem LinearMap.det_cases + theorem LinearMap.det_comp + theorem LinearMap.det_conj + theorem LinearMap.det_eq_det_toMatrix_of_finset + theorem LinearMap.det_eq_one_of_finrank_eq_zero + theorem LinearMap.det_eq_one_of_subsingleton + theorem LinearMap.det_id + theorem LinearMap.det_smul + theorem LinearMap.det_toLin' + theorem LinearMap.det_toLin + theorem LinearMap.det_toMatrix' + theorem LinearMap.det_toMatrix + theorem LinearMap.det_toMatrix_eq_det_toMatrix + theorem LinearMap.det_zero' + theorem LinearMap.det_zero + def LinearMap.equivOfDetNeZero + theorem LinearMap.finiteDimensional_of_det_ne_one + theorem LinearMap.isUnit_det + theorem LinearMap.range_lt_top_of_det_eq_zero + theorem Matrix.det_comm' + theorem Matrix.det_comm + theorem Matrix.det_conj_of_mul_eq_one + def Matrix.indexEquivOfInv + theorem Pi.basisFun_det + def equivOfPiLEquivPi + theorem is_basis_iff_det 2023-05-02 07:59:21 685bd4d feat: port Data.Complex.Module (#3737) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Data/Complex/Basic.lean Added Mathlib/Data/Complex/Module.lean + theorem AlgHom.map_coe_real_complex + theorem Complex.algHom_ext + theorem Complex.coe_algebraMap + theorem Complex.coe_basisOneI + theorem Complex.coe_basisOneI_repr + theorem Complex.coe_smul + def Complex.conjAe + theorem Complex.conjAe_coe + def Complex.equivRealProdAddHom + def Complex.equivRealProdLm + theorem Complex.finrank_real_complex + theorem Complex.finrank_real_complex_fact + def Complex.imLm + theorem Complex.imLm_coe + def Complex.lift + def Complex.liftAux + theorem Complex.liftAux_I + theorem Complex.liftAux_apply + theorem Complex.liftAux_apply_I + theorem Complex.liftAux_neg_I + def Complex.ofRealAm + theorem Complex.ofRealAm_coe + theorem Complex.rank_real_complex'.{u} + theorem Complex.rank_real_complex + def Complex.reLm + theorem Complex.reLm_coe + theorem Complex.real_algHom_eq_id_or_conj + theorem Complex.real_smul + theorem Complex.smul_im + theorem Complex.smul_re + theorem Complex.toMatrix_conjAe + theorem finrank_real_of_complex + theorem imaginaryPart_I_smul + theorem imaginaryPart_apply_coe + theorem imaginaryPart_smul + theorem rank_real_of_complex + theorem realPart_I_smul + theorem realPart_add_I_smul_imaginaryPart + theorem realPart_apply_coe + theorem realPart_smul + theorem skewAdjoint.I_smul_neg_I + def skewAdjoint.negISMul 2023-05-01 22:19:23 d5f2c21 chore: update workflows to avoid deprecation (#3755) Forward port of https://github.com/leanprover-community/mathlib/pull/18761 - https://github.com/leanprover-community/mathlib/pull/18765 but a bit simpler as we dont have as many things set up yet. ESTIMATED CHANGES Modified .github/workflows/bors.yml Modified .github/workflows/build.yml Modified .github/workflows/build.yml.in Modified .github/workflows/build_fork.yml Modified .github/workflows/dependent-issues.yml Modified .github/workflows/detect_sha_changes.yml 2023-05-01 22:19:22 4707059 feat: port CategoryTheory.Functor.LeftDerived (#3751) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Functor/LeftDerived.lean + def CategoryTheory.Functor.leftDerived + def CategoryTheory.Functor.leftDerivedObjIso + def CategoryTheory.Functor.leftDerivedObjProjectiveSucc + def CategoryTheory.Functor.leftDerivedObjProjectiveZero + theorem CategoryTheory.Functor.leftDerived_map_eq + def CategoryTheory.NatTrans.leftDerived + theorem CategoryTheory.NatTrans.leftDerived_comp + theorem CategoryTheory.NatTrans.leftDerived_eq + theorem CategoryTheory.NatTrans.leftDerived_id 2023-05-01 22:19:21 e8b2eac feat: port CategoryTheory.Sites.LeftExact (#3706) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Sites/LeftExact.lean + def CategoryTheory.GrothendieckTopology.coneCompEvaluationOfConeCompDiagramFunctorCompEvaluation + def CategoryTheory.GrothendieckTopology.liftToPlusObjLimitObj + theorem CategoryTheory.GrothendieckTopology.liftToPlusObjLimitObj_fac Modified Mathlib/CategoryTheory/Sites/Sheafification.lean + def CategoryTheory.GrothendieckTopology.sheafificationIsoPresheafToSheafCompSheafToPreasheaf 2023-05-01 22:19:20 31dba13 feat: make `Acc.rec` and many related defs computable (#3535) Lean 4 code generator has had no native supports for `Acc.rec`. This PR makes `Acc.rec` computable. This change makes many defs computable. Especially, computable `PFun.fix` and `Part.hasFix` enables us to reason about `partial` functions. This PR also renames some instances and gives `PFun.lift` `@[coe]` attr. ESTIMATED CHANGES Modified Mathlib/Computability/TuringMachine.lean + def Turing.TM0.eval + def Turing.TM1.eval + def Turing.TM2.eval + def Turing.eval + def Turing.evalInduction Modified Mathlib/Control/Fix.lean Modified Mathlib/Control/LawfulFix.lean Modified Mathlib/Data/Finset/PImage.lean + def Finset.pimage Modified Mathlib/Data/PFun.lean + def PFun.fix + def PFun.fixInduction' + def PFun.fixInduction Modified Mathlib/Init/Data/Nat/Lemmas.lean Modified Mathlib/Init/Logic.lean - def WellFounded.fix' Modified Mathlib/Order/GameAdd.lean + def Prod.GameAdd.fix + def Sym2.GameAdd.fix Modified lake-manifest.json 2023-05-01 22:02:09 c21b166 refactor: delete `import` line (#3745) Delete an unnecessary `import` line. ESTIMATED CHANGES Modified Mathlib/Data/String/Basic.lean 2023-05-01 20:06:10 3d2204e feat: port CategoryTheory.Preadditive.ProjectiveResolution (#3740) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Preadditive/ProjectiveResolution.lean + theorem CategoryTheory.ProjectiveResolution.complex_d_comp_π_f_zero + theorem CategoryTheory.ProjectiveResolution.complex_d_succ_comp + def CategoryTheory.ProjectiveResolution.homotopyEquiv + theorem CategoryTheory.ProjectiveResolution.homotopyEquiv_hom_π + theorem CategoryTheory.ProjectiveResolution.homotopyEquiv_inv_π + def CategoryTheory.ProjectiveResolution.lift + def CategoryTheory.ProjectiveResolution.liftCompHomotopy + def CategoryTheory.ProjectiveResolution.liftHomotopy + def CategoryTheory.ProjectiveResolution.liftHomotopyZero + def CategoryTheory.ProjectiveResolution.liftHomotopyZeroOne + def CategoryTheory.ProjectiveResolution.liftHomotopyZeroSucc + def CategoryTheory.ProjectiveResolution.liftHomotopyZeroZero + def CategoryTheory.ProjectiveResolution.liftIdHomotopy + def CategoryTheory.ProjectiveResolution.liftOne + theorem CategoryTheory.ProjectiveResolution.liftOne_zero_comm + def CategoryTheory.ProjectiveResolution.liftSucc + def CategoryTheory.ProjectiveResolution.liftZero + theorem CategoryTheory.ProjectiveResolution.lift_commutes + def CategoryTheory.ProjectiveResolution.self + theorem CategoryTheory.ProjectiveResolution.π_f_succ + structure CategoryTheory.ProjectiveResolution + def CategoryTheory.projectiveResolution + def CategoryTheory.projectiveResolutions 2023-05-01 17:47:55 8988b24 chore: Move lattice `finset` lemmas around (#3748) Match https://github.com/leanprover-community/mathlib/pull/18900 ESTIMATED CHANGES Modified Mathlib/Data/Complex/Exponential.lean Modified Mathlib/Data/Finset/Lattice.lean +/- theorem Finset.inf_sdiff_left +/- theorem Finset.inf_sdiff_right +/- theorem Finset.sup_sdiff_left + theorem map_finset_inf + theorem map_finset_sup Modified Mathlib/LinearAlgebra/Basic.lean Modified Mathlib/LinearAlgebra/Finsupp.lean Modified Mathlib/LinearAlgebra/LinearIndependent.lean Modified Mathlib/LinearAlgebra/Quotient.lean Modified Mathlib/Order/Hom/CompleteLattice.lean Modified Mathlib/Order/Hom/Lattice.lean - theorem map_finset_inf - theorem map_finset_sup Modified Mathlib/RingTheory/Ideal/Quotient.lean Modified Mathlib/Topology/ContinuousOn.lean 2023-05-01 17:47:54 e14488e feat: port CategoryTheory.Abelian.Exact (#3638) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Homology/Exact.lean + theorem CategoryTheory.Exact.epi_kernel_lift Added Mathlib/CategoryTheory/Abelian/Exact.lean + theorem CategoryTheory.Abelian.Exact.op + theorem CategoryTheory.Abelian.Exact.op_iff + theorem CategoryTheory.Abelian.Exact.unop + theorem CategoryTheory.Abelian.Exact.unop_iff + theorem CategoryTheory.Abelian.cokernel.desc.inv + theorem CategoryTheory.Abelian.epi_iff_cokernel_π_eq_zero + theorem CategoryTheory.Abelian.exact_cokernel + theorem CategoryTheory.Abelian.exact_epi_comp_iff + theorem CategoryTheory.Abelian.exact_iff' + theorem CategoryTheory.Abelian.exact_iff + theorem CategoryTheory.Abelian.exact_iff_exact_coimage_π + theorem CategoryTheory.Abelian.exact_iff_exact_image_ι + theorem CategoryTheory.Abelian.exact_iff_image_eq_kernel + theorem CategoryTheory.Abelian.exact_of_is_cokernel + theorem CategoryTheory.Abelian.exact_of_is_kernel + theorem CategoryTheory.Abelian.exact_tfae + def CategoryTheory.Abelian.isColimitCoimage + def CategoryTheory.Abelian.isColimitImage + def CategoryTheory.Abelian.isColimitOfExactOfEpi + theorem CategoryTheory.Abelian.isIso_cokernel_desc_of_exact_of_epi + theorem CategoryTheory.Abelian.isIso_kernel_lift_of_exact_of_mono + def CategoryTheory.Abelian.isLimitImage' + def CategoryTheory.Abelian.isLimitImage + def CategoryTheory.Abelian.isLimitOfExactOfMono + theorem CategoryTheory.Abelian.kernel.lift.inv + theorem CategoryTheory.Abelian.mono_cokernel_desc_of_exact + theorem CategoryTheory.Abelian.mono_iff_kernel_ι_eq_zero + theorem CategoryTheory.Abelian.tfae_epi + theorem CategoryTheory.Abelian.tfae_mono + theorem CategoryTheory.Functor.map_exact + def CategoryTheory.Functor.preservesCokernelsOfMapExact + theorem CategoryTheory.Functor.preservesEpimorphisms_of_map_exact + def CategoryTheory.Functor.preservesFiniteColimitsOfMapExact + def CategoryTheory.Functor.preservesFiniteColimitsOfPreservesEpisAndKernels + def CategoryTheory.Functor.preservesFiniteLimitsOfMapExact + def CategoryTheory.Functor.preservesFiniteLimitsOfPreservesMonosAndCokernels + def CategoryTheory.Functor.preservesKernelsOfMapExact + theorem CategoryTheory.Functor.preservesMonomorphisms_of_map_exact + theorem CategoryTheory.Functor.preservesZeroMorphisms_of_map_exact Modified Mathlib/CategoryTheory/Limits/Shapes/Kernels.lean + theorem CategoryTheory.Limits.colimit_ι_zero_cokernel_desc 2023-05-01 15:10:19 4476679 feat: `f.update i '' Icc a b = Icc (f.update i a) (f.update i b)` (#3747) Match https://github.com/leanprover-community/mathlib/pull/18892 * [`order.lattice`@`d6aad9528ddcac270ed35c6f7b5f1d8af25341d6`..`e4bc74cbaf429d706cb9140902f7ca6c431e75a4`](https://leanprover-community.github.io/mathlib-port-status/file/order/lattice?range=d6aad9528ddcac270ed35c6f7b5f1d8af25341d6..e4bc74cbaf429d706cb9140902f7ca6c431e75a4) * [`algebra.group.pi`@`90df25ded755a2cf9651ea850d1abe429b1e4eb1`..`e4bc74cbaf429d706cb9140902f7ca6c431e75a4`](https://leanprover-community.github.io/mathlib-port-status/file/algebra/group/pi?range=90df25ded755a2cf9651ea850d1abe429b1e4eb1..e4bc74cbaf429d706cb9140902f7ca6c431e75a4) * [`data.set.intervals.pi`@`4020ddee5b4580a409bfda7d2f42726ce86ae674`..`e4bc74cbaf429d706cb9140902f7ca6c431e75a4`](https://leanprover-community.github.io/mathlib-port-status/file/data/set/intervals/pi?range=4020ddee5b4580a409bfda7d2f42726ce86ae674..e4bc74cbaf429d706cb9140902f7ca6c431e75a4) ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Pi.lean + theorem Pi.mulSingle_inf + theorem Pi.mulSingle_sup Modified Mathlib/Data/Set/Intervals/Pi.lean + theorem Set.image_mulSingle_Icc + theorem Set.image_mulSingle_Icc_left + theorem Set.image_mulSingle_Icc_right + theorem Set.image_mulSingle_Ico + theorem Set.image_mulSingle_Ico_left + theorem Set.image_mulSingle_Ico_right + theorem Set.image_mulSingle_Ioc + theorem Set.image_mulSingle_Ioc_left + theorem Set.image_mulSingle_Ioc_right + theorem Set.image_mulSingle_Ioo + theorem Set.image_mulSingle_Ioo_left + theorem Set.image_mulSingle_Ioo_right + theorem Set.image_mulSingle_uIcc + theorem Set.image_mulSingle_uIcc_left + theorem Set.image_mulSingle_uIcc_right + theorem Set.image_update_Icc + theorem Set.image_update_Icc_left + theorem Set.image_update_Icc_right + theorem Set.image_update_Ico + theorem Set.image_update_Ico_left + theorem Set.image_update_Ico_right + theorem Set.image_update_Ioc + theorem Set.image_update_Ioc_left + theorem Set.image_update_Ioc_right + theorem Set.image_update_Ioo + theorem Set.image_update_Ioo_left + theorem Set.image_update_Ioo_right + theorem Set.image_update_uIcc + theorem Set.image_update_uIcc_left + theorem Set.image_update_uIcc_right Modified Mathlib/Order/Lattice.lean + theorem Function.update_inf + theorem Function.update_sup 2023-05-01 13:19:51 37a4276 feat: port Topology.Category.Profinite.Projective (#3746) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Topology/Category/Profinite/Projective.lean + def Profinite.projectivePresentation 2023-05-01 11:02:54 0ed9c8d feat: port Mathlib.Data.Ordmap.Ordnode (#1455) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Data/Ordmap/Ordnode.lean + def Ordnode.All + def Ordnode.Amem + def Ordnode.Any + def Ordnode.Emem + def Ordnode.Equiv + def Ordnode.adjustWith + def Ordnode.alter + def Ordnode.attach' + def Ordnode.balance + def Ordnode.balanceL + def Ordnode.balanceR + def Ordnode.delta + def Ordnode.diff + def Ordnode.disjoint + def Ordnode.drop + def Ordnode.dropAux + def Ordnode.dropWhile + def Ordnode.dual + def Ordnode.empty + def Ordnode.erase + def Ordnode.eraseMax + def Ordnode.eraseMin + def Ordnode.filter + def Ordnode.find + def Ordnode.findGe + def Ordnode.findGeAux + def Ordnode.findGt + def Ordnode.findGtAux + def Ordnode.findIndex + def Ordnode.findIndexAux + def Ordnode.findLe + def Ordnode.findLeAux + def Ordnode.findLt + def Ordnode.findLtAux + def Ordnode.findMax' + def Ordnode.findMax + def Ordnode.findMin' + def Ordnode.findMin + def Ordnode.fold + def Ordnode.foldl + def Ordnode.foldr + def Ordnode.glue + def Ordnode.image + def Ordnode.insert' + def Ordnode.insertMax + def Ordnode.insertMin + def Ordnode.insertWith + def Ordnode.inter + def Ordnode.isSubset + def Ordnode.isSubsetAux + def Ordnode.link + def Ordnode.map + def Ordnode.mem + def Ordnode.merge + def Ordnode.node' + def Ordnode.nth + def Ordnode.ofAscList + def Ordnode.ofAscListAux₁ + def Ordnode.ofAscListAux₂ + def Ordnode.ofList' + def Ordnode.ofList + def Ordnode.partition + def Ordnode.pmap + def Ordnode.powerset + def Ordnode.ratio + def Ordnode.removeNth + def Ordnode.repr + def Ordnode.size + def Ordnode.span + def Ordnode.split3 + def Ordnode.split + def Ordnode.splitAt + def Ordnode.splitAtAux + def Ordnode.splitMax' + def Ordnode.splitMax + def Ordnode.splitMin' + def Ordnode.splitMin + def Ordnode.take + def Ordnode.takeAux + def Ordnode.takeWhile + def Ordnode.toList + def Ordnode.toRevList + def Ordnode.union + def Ordnode.updateWith + inductive Ordnode Modified Mathlib/Init/Logic.lean 2023-05-01 08:43:35 7b35d8f feat: port ZFC set intersection (#3345) Also fixes some erroneous theorem names from the port. [`set_theory.zfc.basic`@`98bbc3526516bca903bff09ea10c4206bf079e6b`..`f0b3759a8ef0bd8239ecdaa5e1089add5feebe1a`](https://leanprover-community.github.io/mathlib-port-status/file/set_theory/zfc/basic?range=98bbc3526516bca903bff09ea10c4206bf079e6b..f0b3759a8ef0bd8239ecdaa5e1089add5feebe1a) Mathlib 3: https://github.com/leanprover-community/mathlib/pull/18232 ESTIMATED CHANGES Modified Mathlib/SetTheory/ZFC/Basic.lean + theorem Class.coe_interₛ + def Class.interₛ + theorem Class.interₛ_apply + theorem Class.interₛ_empty + theorem Class.mem_interₛ + theorem Class.mem_of_mem_interₛ + theorem Class.toSet_of_ZFSet - theorem Class.toSet_of_setCat +/- theorem Class.unionₛ_empty + theorem ZFSet.interₛ_empty + theorem ZFSet.interₛ_singleton + theorem ZFSet.mem_interₛ + theorem ZFSet.mem_of_mem_interₛ + theorem ZFSet.not_mem_interₛ_of_not_mem + theorem ZFSet.toSet_interₛ + theorem ZFSet.toSet_unionₛ - theorem ZFSet.to_set_unionₛ +/- theorem ZFSet.unionₛ_empty 2023-05-01 01:58:20 6d2b39c feat: port Topology.Category.Profinite.Basic (#3705) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Topology/Category/Profinite/Basic.lean + def CompHaus.toProfinite + def CompHaus.toProfiniteObj + theorem CompHaus.toProfinite_obj' + def FintypeCat.botTopology + theorem FintypeCat.discreteTopology + def FintypeCat.toProfinite + theorem Profinite.coe_comp + theorem Profinite.coe_id + theorem Profinite.epi_iff_surjective + theorem Profinite.forget_ContinuousMap_mk + def Profinite.homeoOfIso + theorem Profinite.isClosedMap + theorem Profinite.isIso_of_bijective + def Profinite.isoEquivHomeo + def Profinite.isoOfHomeo + def Profinite.limitCone + def Profinite.limitConeIsLimit + theorem Profinite.mono_iff_injective + def Profinite.of + def Profinite.toCompHausEquivalence + def Profinite.toProfiniteAdjToCompHaus + def Profinite.toTopCat + theorem Profinite.to_compHausToTopCat + structure Profinite + def profiniteToCompHaus 2023-05-01 01:36:18 c27be72 feat: annotate build errors in the github files changed tab using an action (#3739) This is suboptimal as it doesn't handle multiline comments, but it is better than nothing, and the implementation works out of the box. This is broadly similar to the support we had in mathlib 3, but the implementation is different as we no longer have json errors as an option, so must instead match an errorformat directly (the gcc one works fine). Supporting multiline error messages appears not to be possible using the builtin output without further processing with the current state of problem matchers supported by github (which follow the vscode design). Thus to get an improvement on this the build output must be piped through a second program that processes it in some way, or a lake build type command should be added that outputs in a required format. Likewise to get annotations for linter failures we will need to add extra information to the linter output, either setting the annotations ourselves (as we did in mathlib 3) or at least adding line numbers to the existing output so that we can at least match it with a problem matcher again. ESTIMATED CHANGES Modified .github/workflows/bors.yml Modified .github/workflows/build.yml Modified .github/workflows/build.yml.in Modified .github/workflows/build_fork.yml 2023-04-30 23:31:19 27ba168 chore: move theorems on `String` to std4 (#3712) https://github.com/leanprover/std4/pull/124 moves the following from Mathlib4 to Std4: * helper `simp` theorems on `String.Pos` * `String.utf8GetAux.inductionOn` ESTIMATED CHANGES Modified Mathlib/Data/String/Basic.lean +/- theorem String.Iterator.hasNext.cons_add_csize - theorem String.Pos.byteIdx_zero - theorem String.Pos.eq_iff - theorem String.Pos.zero_add_char - theorem String.Pos.zero_add_string +/- theorem String.get.cons_add_csize +/- theorem String.ltb.cons_add_csize - def String.utf8GetAux.inductionOn.{u} Modified lake-manifest.json 2023-04-30 11:38:03 42f68ca feat: port FieldTheory.Tower (#3716) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/FieldTheory/Tower.lean + theorem FiniteDimensional.Subalgebra.isSimpleOrder_of_finrank_prime + theorem FiniteDimensional.finrank_linear_map' + theorem FiniteDimensional.finrank_mul_finrank' + theorem FiniteDimensional.finrank_mul_finrank + theorem FiniteDimensional.left + theorem FiniteDimensional.right + theorem FiniteDimensional.trans + theorem lift_rank_mul_lift_rank + theorem rank_mul_rank 2023-04-29 23:07:53 385ed76 feat: port Algebra.Category.Group.ZModuleEquivalence (#3732) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Category/GroupCat/ZModuleEquivalence.lean 2023-04-29 23:07:52 1839138 feat: port AlgebraicTopology.ExtraDegeneracy (#3729) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/AlgebraicTopology/ExtraDegeneracy.lean + theorem CategoryTheory.Arrow.AugmentedCechNerve.ExtraDegeneracy.s_comp_base + theorem CategoryTheory.Arrow.AugmentedCechNerve.ExtraDegeneracy.s_comp_π_0 + theorem CategoryTheory.Arrow.AugmentedCechNerve.ExtraDegeneracy.s_comp_π_succ + def SSet.Augmented.StandardSimplex.shift + def SSet.Augmented.StandardSimplex.shiftFun + theorem SSet.Augmented.StandardSimplex.shiftFun_0 + theorem SSet.Augmented.StandardSimplex.shiftFun_succ + def SimplicialObject.Augmented.ExtraDegeneracy.map + def SimplicialObject.Augmented.ExtraDegeneracy.ofIso + structure SimplicialObject.Augmented.ExtraDegeneracy 2023-04-29 22:52:42 328f5d9 feat: port CategoryTheory.Monad.Coequalizer (#3733) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Monad/Coequalizer.lean + def CategoryTheory.Monad.FreeCoequalizer.bottomMap + theorem CategoryTheory.Monad.FreeCoequalizer.condition + def CategoryTheory.Monad.FreeCoequalizer.topMap + def CategoryTheory.Monad.FreeCoequalizer.π + def CategoryTheory.Monad.beckAlgebraCoequalizer + def CategoryTheory.Monad.beckAlgebraCofork + def CategoryTheory.Monad.beckCoequalizer + theorem CategoryTheory.Monad.beckCoequalizer_desc + def CategoryTheory.Monad.beckCofork + theorem CategoryTheory.Monad.beckCofork_π + def CategoryTheory.Monad.beckSplitCoequalizer 2023-04-29 22:28:56 aff74ff chore: no newline before aligns (#3735) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Limits/KanExtension.lean Modified Mathlib/Data/Finset/Sym.lean Modified Mathlib/SetTheory/Ordinal/Basic.lean 2023-04-29 16:26:38 3894e48 feat: `a * b ≠ b ↔ a ≠ 1` (#3726) https://github.com/leanprover-community/mathlib/pull/18635 * [`algebra.group.basic`@`2196ab363eb097c008d4497125e0dde23fb36db2`..`84771a9f5f0bd5e5d6218811556508ddf476dcbd`](https://leanprover-community.github.io/mathlib-port-status/file/algebra/group/basic?range=2196ab363eb097c008d4497125e0dde23fb36db2..84771a9f5f0bd5e5d6218811556508ddf476dcbd) * [`algebra.order.field.basic`@`44e29dbcff83ba7114a464d592b8c3743987c1e5`..`84771a9f5f0bd5e5d6218811556508ddf476dcbd`](https://leanprover-community.github.io/mathlib-port-status/file/algebra/order/field/basic?range=44e29dbcff83ba7114a464d592b8c3743987c1e5..84771a9f5f0bd5e5d6218811556508ddf476dcbd) ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Basic.lean + theorem mul_left_ne_self + theorem mul_right_ne_self + theorem self_ne_mul_left + theorem self_ne_mul_right Modified Mathlib/Algebra/Order/Field/Basic.lean - theorem div_two_lt_of_pos - theorem half_le_self + theorem half_le_self_iff - theorem half_lt_self + theorem half_lt_self_iff 2023-04-29 13:32:59 8c30986 feat: port LinearAlgebra.ProjectiveSpace.Independence (#3728) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/LinearAlgebra/Dfinsupp.lean Added Mathlib/LinearAlgebra/ProjectiveSpace/Independence.lean + inductive Projectivization.Dependent + inductive Projectivization.Independent + theorem Projectivization.dependent_iff + theorem Projectivization.dependent_iff_not_independent + theorem Projectivization.dependent_pair_iff_eq + theorem Projectivization.independent_iff + theorem Projectivization.independent_iff_completeLattice_independent + theorem Projectivization.independent_iff_not_dependent + theorem Projectivization.independent_pair_iff_neq 2023-04-29 13:32:58 45cc41e fix: find MathlibExtras from downstream projects (#3721) ESTIMATED CHANGES Modified Cache/IO.lean 2023-04-29 13:32:57 ee7ea3b fix: allow library_search to run when maxHeartbeats = 0 (#3720) ESTIMATED CHANGES Modified Mathlib/Data/ListM/Heartbeats.lean Modified test/librarySearch.lean 2023-04-29 13:32:56 eefa146 chore: Remove `finset.sup_finset_image` (#3713) Match https://github.com/leanprover-community/mathlib/pull/18893 ESTIMATED CHANGES Modified Mathlib/Data/Finset/Lattice.lean - theorem Finset.sup_finset_image Modified Mathlib/Order/CompactlyGenerated.lean Modified Mathlib/RingTheory/Finiteness.lean Modified Mathlib/RingTheory/MvPolynomial/Symmetric.lean 2023-04-29 13:32:55 6a35632 feat: port CategoryTheory.Abelian.Transfer (#3424) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Abelian/Transfer.lean + def CategoryTheory.AbelianOfAdjunction.coimageIsoImage + def CategoryTheory.AbelianOfAdjunction.coimageIsoImageAux + theorem CategoryTheory.AbelianOfAdjunction.coimageIsoImage_hom + def CategoryTheory.AbelianOfAdjunction.cokernelIso + theorem CategoryTheory.AbelianOfAdjunction.hasCokernels + theorem CategoryTheory.AbelianOfAdjunction.hasKernels + def CategoryTheory.abelianOfAdjunction + def CategoryTheory.abelianOfEquivalence 2023-04-29 10:38:07 7e05f55 feat: allow several tactics on types that are slightly less obviously Types (#3682) Many tactics attempt to get the universe of the sort of the terms involved by matching on the level being a succ of something. Unfortunately this fails on some nontrivial examples like mvpolynomial which can have type `Sort (max (u+1) (v+1))` Instead we decrement the level manually after matching it. See https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/.60ring.60.20tactic.20cannot.20prove.20equality.20about.20.60MvPolynomial.60/near/352549549 This PR modifies ring, ring_nf, nontriviality, polyrith, linarith, and some norm_num handlers to appropriately handle this. Test cases showing examples that failed before (inspired by the case of mvpolynomial, but in principle there could be other interesting types that have multiple universe parameters in this way, some of which may even have a linear order who knows). In doing so we factor out `inferTypeQ'` into its own file `Mathlib.Tactic.Qq` for mathlib-relevant extensions of Qq ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Tactic/Linarith/Verification.lean - def Qq.inferTypeQ' Modified Mathlib/Tactic/Nontriviality/Core.lean Modified Mathlib/Tactic/NormNum/Basic.lean Modified Mathlib/Tactic/NormNum/Core.lean Modified Mathlib/Tactic/Polyrith.lean Modified Mathlib/Tactic/Ring/Basic.lean Modified Mathlib/Tactic/Ring/RingNF.lean Added Mathlib/Util/Qq.lean + def Qq.inferTypeQ' Modified test/linarith.lean + def R Modified test/nontriviality.lean + def R Modified test/norm_num.lean + def R Modified test/ring.lean + def R 2023-04-29 09:57:49 7b53c83 feat: port LinearAlgebra.ProjectiveSpace.Basic (#3692) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/LinearAlgebra/ProjectiveSpace/Basic.lean + theorem Projectivization.exists_smul_eq_mk_rep + theorem Projectivization.finrank_submodule + theorem Projectivization.ind + def Projectivization.map + theorem Projectivization.map_comp + theorem Projectivization.map_id + theorem Projectivization.map_injective + theorem Projectivization.map_mk + theorem Projectivization.mk''_submodule + def Projectivization.mk' + theorem Projectivization.mk'_eq_mk + def Projectivization.mk + theorem Projectivization.mk_eq_mk_iff' + theorem Projectivization.mk_eq_mk_iff + theorem Projectivization.mk_rep + theorem Projectivization.rep_nonzero + theorem Projectivization.submodule_eq + theorem Projectivization.submodule_injective + theorem Projectivization.submodule_mk'' + theorem Projectivization.submodule_mk + def Projectivization + def projectivizationSetoid 2023-04-29 05:39:03 c3f2bce chore: add hash for Data.MvPolynomial.Polynomial (#3723) ESTIMATED CHANGES Modified Mathlib/Data/MvPolynomial/Polynomial.lean 2023-04-29 03:33:44 27974da feat: port LinearAlgebra.SymplecticGroup (#3696) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/LinearAlgebra/SymplecticGroup.lean + def Matrix.J + theorem Matrix.J_det_mul_J_det + theorem Matrix.J_inv + theorem Matrix.J_squared + theorem Matrix.J_transpose + theorem Matrix.isUnit_det_J + def Matrix.symplecticGroup + theorem SymplecticGroup.J_mem + theorem SymplecticGroup.coe_J + theorem SymplecticGroup.coe_inv' + theorem SymplecticGroup.coe_inv + theorem SymplecticGroup.inv_eq_symplectic_inv + theorem SymplecticGroup.inv_left_mul_aux + theorem SymplecticGroup.mem_iff' + theorem SymplecticGroup.mem_iff + theorem SymplecticGroup.neg_mem + def SymplecticGroup.symJ + theorem SymplecticGroup.symplectic_det + theorem SymplecticGroup.transpose_mem + theorem SymplecticGroup.transpose_mem_iff 2023-04-28 23:45:34 394e6b8 feat: make alias compile code when possible (#3719) ESTIMATED CHANGES Modified Mathlib/Tactic/Alias.lean Modified test/Alias.lean + def Alias.baz + def Alias.foo 2023-04-28 23:45:32 9520d97 chore: forward-port leanprover-community/mathlib#18880 (#3717) ESTIMATED CHANGES Modified Mathlib/RingTheory/Finiteness.lean +/- theorem Module.Finite.trans +/- theorem RingHom.Finite.comp 2023-04-28 23:19:17 d870695 chore: Rename to `AddLocalization` (#3714) This name wasn't properly capitalised. ESTIMATED CHANGES Modified Mathlib/GroupTheory/MonoidLocalization.lean Modified Mathlib/RingTheory/Localization/Basic.lean 2023-04-28 21:59:08 3e4e09a chore: update SHA (#3711) I forgot to update the SHA in #3675 ESTIMATED CHANGES Modified Mathlib/Data/Matrix/Block.lean 2023-04-28 21:59:07 a87b099 feat: port LinearAlgebra.Matrix.Diagonal (#3695) Some proofs in the last section were failing even with eta-experiment, so I generalized some lemmas from `Field`s to `Semifield`s. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Module/Submodule/Basic.lean Modified Mathlib/LinearAlgebra/Basic.lean +/- theorem LinearMap.ker_smul' Added Mathlib/LinearAlgebra/Matrix/Diagonal.lean + theorem Matrix.diagonal_comp_stdBasis + theorem Matrix.diagonal_toLin' + theorem Matrix.ker_diagonal_toLin' + theorem Matrix.proj_diagonal + theorem Matrix.range_diagonal + theorem Matrix.rank_diagonal 2023-04-28 18:56:37 ff03f49 feat: Port Topology.Category.CompHaus.Projective (#3715) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Topology/Category/CompHaus/Projective.lean + def CompHaus.projectivePresentation 2023-04-28 17:46:02 16eabc4 feat LinearAlgebra.Basis: add basis.restrictScalars (#3707) Mathlib4 version of https://github.com/leanprover-community/mathlib/pull/18814 [`linear_algebra.basis`@`2f4cdce0c2f2f3b8cd58f05d556d03b468e1eb2e`..`04cdee31e196e30f507e8e9eb2d06e02c9ff6310`](https://leanprover-community.github.io/mathlib-port-status/file/linear_algebra/basis?range=2f4cdce0c2f2f3b8cd58f05d556d03b468e1eb2e..04cdee31e196e30f507e8e9eb2d06e02c9ff6310)) ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/Basis.lean + theorem Basis.mem_span_iff_repr_mem + theorem Basis.restrictScalars_apply + theorem Basis.restrictScalars_repr_apply 2023-04-28 14:30:45 7be6153 feat: Lemmas relating definitions of infinite sets (#3672) Match https://github.com/leanprover-community/mathlib/pull/18620 * [`data.set.finite`@`c941bb9426d62e266612b6d99e6c9fc93e7a1d07`..`52fa514ec337dd970d71d8de8d0fd68b455a1e54`](https://leanprover-community.github.io/mathlib-port-status/file/data/set/finite?range=c941bb9426d62e266612b6d99e6c9fc93e7a1d07..52fa514ec337dd970d71d8de8d0fd68b455a1e54) * [`data.finset.locally_finite`@`f24cc2891c0e328f0ee8c57387103aa462c44b5e`..`52fa514ec337dd970d71d8de8d0fd68b455a1e54`](https://leanprover-community.github.io/mathlib-port-status/file/data/finset/locally_finite?range=f24cc2891c0e328f0ee8c57387103aa462c44b5e..52fa514ec337dd970d71d8de8d0fd68b455a1e54) * [`data.nat.lattice`@`2445c98ae4b87eabebdde552593519b9b6dc350c`..`52fa514ec337dd970d71d8de8d0fd68b455a1e54`](https://leanprover-community.github.io/mathlib-port-status/file/data/nat/lattice?range=2445c98ae4b87eabebdde552593519b9b6dc350c..52fa514ec337dd970d71d8de8d0fd68b455a1e54) ESTIMATED CHANGES Modified Mathlib/Data/Finset/LocallyFinite.lean + theorem Set.Infinite.exists_gt + theorem Set.Infinite.exists_lt + theorem Set.Infinite.not_bddAbove + theorem Set.Infinite.not_bddBelow + theorem Set.infinite_iff_exists_gt + theorem Set.infinite_iff_exists_lt Modified Mathlib/Data/Nat/Lattice.lean Modified Mathlib/Data/Set/Finite.lean - theorem Set.Infinite.exists_nat_lt + theorem Set.infinite_of_forall_exists_gt + theorem Set.infinite_of_forall_exists_lt 2023-04-28 14:00:44 e14fff3 feat: port LinearAlgebra.Matrix.Transvection (#3700) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/LinearAlgebra/Matrix/Transvection.lean + theorem Matrix.Pivot.exists_isTwoBlockDiagonal_list_transvec_mul_mul_list_transvec + theorem Matrix.Pivot.exists_isTwoBlockDiagonal_of_ne_zero + theorem Matrix.Pivot.exists_list_transvec_mul_diagonal_mul_list_transvec + theorem Matrix.Pivot.exists_list_transvec_mul_mul_list_transvec_eq_diagonal + theorem Matrix.Pivot.exists_list_transvec_mul_mul_list_transvec_eq_diagonal_aux + theorem Matrix.Pivot.exists_list_transvec_mul_mul_list_transvec_eq_diagonal_induction + theorem Matrix.Pivot.isTwoBlockDiagonal_listTransvecCol_mul_mul_listTransvecRow + def Matrix.Pivot.listTransvecCol + theorem Matrix.Pivot.listTransvecCol_mul_last_col + theorem Matrix.Pivot.listTransvecCol_mul_last_row + theorem Matrix.Pivot.listTransvecCol_mul_last_row_drop + theorem Matrix.Pivot.listTransvecCol_mul_mul_listTransvecRow_last_col + theorem Matrix.Pivot.listTransvecCol_mul_mul_listTransvecRow_last_row + def Matrix.Pivot.listTransvecRow + theorem Matrix.Pivot.mul_listTransvecRow_last_col + theorem Matrix.Pivot.mul_listTransvecRow_last_col_take + theorem Matrix.Pivot.mul_listTransvecRow_last_row + theorem Matrix.Pivot.reindex_exists_list_transvec_mul_mul_list_transvec_eq_diagonal + theorem Matrix.TransvectionStruct.det_toMatrix_prod + theorem Matrix.TransvectionStruct.inv_mul + theorem Matrix.TransvectionStruct.mul_inv + theorem Matrix.TransvectionStruct.mul_sumInl_toMatrix_prod + theorem Matrix.TransvectionStruct.prod_mul_reverse_inv_prod + def Matrix.TransvectionStruct.reindexEquiv + theorem Matrix.TransvectionStruct.reverse_inv_prod_mul_prod + def Matrix.TransvectionStruct.sumInl + theorem Matrix.TransvectionStruct.sumInl_toMatrix_prod_mul + def Matrix.TransvectionStruct.toMatrix + theorem Matrix.TransvectionStruct.toMatrix_mk + theorem Matrix.TransvectionStruct.toMatrix_reindexEquiv + theorem Matrix.TransvectionStruct.toMatrix_reindexEquiv_prod + theorem Matrix.TransvectionStruct.toMatrix_sumInl + structure Matrix.TransvectionStruct + theorem Matrix.det_transvection_of_ne + theorem Matrix.diagonal_transvection_induction + theorem Matrix.diagonal_transvection_induction_of_det_ne_zero + theorem Matrix.mul_transvection_apply_of_ne + theorem Matrix.mul_transvection_apply_same + def Matrix.transvection + theorem Matrix.transvection_mul_apply_of_ne + theorem Matrix.transvection_mul_apply_same + theorem Matrix.transvection_mul_transvection_same + theorem Matrix.transvection_zero + theorem Matrix.updateRow_eq_transvection 2023-04-28 11:44:00 5275db2 feat: For any `b`, there exists a set `s` of independent atoms such that `Sup s` is the complement of `b` (#3588) Match https://github.com/leanprover-community/mathlib/pull/8475 * [`order.compactly_generated`@`210657c4ea4a4a7b234392f70a3a2a83346dfa90`..`e8cf0cfec5fcab9baf46dc17d30c5e22048468be`](https://leanprover-community.github.io/mathlib-port-status/file/order/compactly_generated?range=210657c4ea4a4a7b234392f70a3a2a83346dfa90..e8cf0cfec5fcab9baf46dc17d30c5e22048468be) * [`order.directed`@`485b24ed47b1b7978d38a1e445158c6224c3f42c`..`e8cf0cfec5fcab9baf46dc17d30c5e22048468be`](https://leanprover-community.github.io/mathlib-port-status/file/order/directed?range=485b24ed47b1b7978d38a1e445158c6224c3f42c..e8cf0cfec5fcab9baf46dc17d30c5e22048468be) ESTIMATED CHANGES Modified Mathlib/Order/CompactlyGenerated.lean + theorem DirectedOn.inf_supₛ_eq + theorem exists_setIndependent_isCompl_supₛ_atoms + theorem exists_setIndependent_of_supₛ_atoms_eq_top - theorem inf_supₛ_eq_of_directedOn Modified Mathlib/Order/Directed.lean +/- theorem directedOn_range 2023-04-28 11:10:45 81e5856 feat: port CategoryTheory.Action (#3657) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Action.lean + theorem CategoryTheory.ActionCategory.back_coe + theorem CategoryTheory.ActionCategory.cases' + theorem CategoryTheory.ActionCategory.coe_back + def CategoryTheory.ActionCategory.curry + def CategoryTheory.ActionCategory.endMulEquivSubgroup + theorem CategoryTheory.ActionCategory.homOfPair.val + def CategoryTheory.ActionCategory.homOfPair + theorem CategoryTheory.ActionCategory.hom_as_subtype + def CategoryTheory.ActionCategory.objEquiv + def CategoryTheory.ActionCategory.stabilizerIsoEnd + theorem CategoryTheory.ActionCategory.stabilizerIsoEnd_apply + theorem CategoryTheory.ActionCategory.stabilizerIsoEnd_symm_apply + def CategoryTheory.ActionCategory.uncurry + def CategoryTheory.ActionCategory.π + theorem CategoryTheory.ActionCategory.π_map + theorem CategoryTheory.ActionCategory.π_obj + def CategoryTheory.ActionCategory + def CategoryTheory.actionAsFunctor 2023-04-28 11:10:44 bfb4a24 feat: port CategoryTheory.Preadditive.Projective (#3615) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/AlgebraicTopology/CechNerve.lean Modified Mathlib/CategoryTheory/Adjunction/Evaluation.lean Modified Mathlib/CategoryTheory/Limits/Preserves/Finite.lean Modified Mathlib/CategoryTheory/Limits/Shapes/BinaryProducts.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Multiequalizer.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Products.lean + theorem CategoryTheory.Limits.Pi.hom_ext + theorem CategoryTheory.Limits.Sigma.hom_ext Added Mathlib/CategoryTheory/Preadditive/Projective.lean + def CategoryTheory.Adjunction.mapProjectivePresentation + theorem CategoryTheory.Adjunction.map_projective + theorem CategoryTheory.Adjunction.projective_of_map_projective + theorem CategoryTheory.Equivalence.enoughProjectives_iff + def CategoryTheory.Equivalence.projectivePresentationOfMapProjectivePresentation + def CategoryTheory.Exact.lift + theorem CategoryTheory.Exact.lift_comp + def CategoryTheory.Projective.factorThru + theorem CategoryTheory.Projective.factorThru_comp + theorem CategoryTheory.Projective.iso_iff + theorem CategoryTheory.Projective.of_iso + def CategoryTheory.Projective.over + theorem CategoryTheory.Projective.projective_iff_preservesEpimorphisms_coyoneda_obj + def CategoryTheory.Projective.syzygies + def CategoryTheory.Projective.π + structure CategoryTheory.ProjectivePresentation 2023-04-28 10:54:06 9e33075 feat: port LinearAlgebra.Matrix.ZPow (#3671) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/LinearAlgebra/Matrix/ZPow.lean + theorem IsUnit.det_zpow + theorem Matrix.Commute.mul_zpow + theorem Matrix.Commute.self_zpow + theorem Matrix.Commute.zpow_left + theorem Matrix.Commute.zpow_right + theorem Matrix.Commute.zpow_self + theorem Matrix.Commute.zpow_zpow + theorem Matrix.Commute.zpow_zpow_self + theorem Matrix.SemiconjBy.zpow_right + theorem Matrix.coe_units_zpow + theorem Matrix.conjTranspose_zpow + theorem Matrix.inv_pow' + theorem Matrix.inv_zpow' + theorem Matrix.inv_zpow + theorem Matrix.isUnit_det_zpow_iff + theorem Matrix.one_div_pow + theorem Matrix.one_div_zpow + theorem Matrix.one_zpow + theorem Matrix.pow_inv_comm' + theorem Matrix.pow_sub' + theorem Matrix.transpose_zpow + theorem Matrix.zero_zpow + theorem Matrix.zero_zpow_eq + theorem Matrix.zpow_add + theorem Matrix.zpow_add_of_nonneg + theorem Matrix.zpow_add_of_nonpos + theorem Matrix.zpow_add_one + theorem Matrix.zpow_add_one_of_ne_neg_one + theorem Matrix.zpow_bit0' + theorem Matrix.zpow_bit0 + theorem Matrix.zpow_bit1' + theorem Matrix.zpow_bit1 + theorem Matrix.zpow_coe_nat + theorem Matrix.zpow_mul' + theorem Matrix.zpow_mul + theorem Matrix.zpow_ne_zero_of_isUnit_det + theorem Matrix.zpow_neg + theorem Matrix.zpow_neg_coe_nat + theorem Matrix.zpow_neg_mul_zpow_self + theorem Matrix.zpow_neg_one + theorem Matrix.zpow_one_add + theorem Matrix.zpow_sub + theorem Matrix.zpow_sub_one 2023-04-28 09:49:14 7702b8f feat: port LinearAlgebra.Matrix.FiniteDimensional (#3698) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/LinearAlgebra/Matrix/FiniteDimensional.lean 2023-04-28 09:32:10 a278b14 refactor: change arguments order (#3701) Change the order of the arguments to `String.utf8GetAux.add_right_cancel`. ESTIMATED CHANGES Modified Mathlib/Data/String/Basic.lean 2023-04-28 06:56:28 0c1b7aa feat: port LinearAlgebra.Matrix.InvariantBasisNumber (#3697) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/LinearAlgebra/Matrix/InvariantBasisNumber.lean + theorem Matrix.square_of_invertible 2023-04-28 06:56:27 85f0cc5 feat: port AlgebraicTopology.Nerve (#3693) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/AlgebraicTopology/Nerve.lean + def CategoryTheory.nerve + def CategoryTheory.nerveFunctor 2023-04-28 06:56:26 b6295ff forward-port leanprover-community/mathlib#18840 (#3678) ESTIMATED CHANGES Modified Mathlib/Data/Set/Pointwise/BigOperators.lean + theorem Set.image_finset_prod + theorem Set.image_finset_prod_pi + theorem Set.image_fintype_prod_pi + theorem Set.image_list_prod + theorem Set.image_multiset_prod 2023-04-28 06:56:25 dc060c8 chore: forward-port leanprover-community/mathlib#18802 (#3677) ESTIMATED CHANGES Modified Mathlib/Algebra/Star/Basic.lean + theorem commute_star_comm + theorem commute_star_star + theorem semiconjBy_star_star_star + theorem star_inj + theorem star_mul_star + theorem star_star_mul 2023-04-28 06:56:24 1eb993f chore: forward-port leanprover-community/mathlib#18869 (#3676) ESTIMATED CHANGES Modified Mathlib/Analysis/NormedSpace/Basic.lean + theorem frontier_sphere' + theorem frontier_sphere + theorem interior_sphere' + theorem interior_sphere Modified Mathlib/Topology/MetricSpace/Basic.lean + theorem Metric.closure_sphere 2023-04-28 06:56:23 3f22ac3 chore: forward-port leanprover-community/mathlib#18842 (#3675) ESTIMATED CHANGES Modified Mathlib/Data/Matrix/Block.lean + theorem Matrix.blockDiagonal'_inj + theorem Matrix.blockDiagonal'_injective + theorem Matrix.blockDiagonal_inj + theorem Matrix.blockDiagonal_injective + theorem Matrix.ext_iff_blocks + theorem Matrix.fromBlocks_inj 2023-04-28 06:56:22 20a3316 feat: The equivalence between `fin n → fin m` and `fin (m ^ n)` (#3673) Match https://github.com/leanprover-community/mathlib/pull/14817 [`algebra.big_operators.fin`@`f93c11933efbc3c2f0299e47b8ff83e9b539cbf6`..`cdb01be3c499930fd29be05dce960f4d8d201c54`](https://leanprover-community.github.io/mathlib-port-status/file/algebra/big_operators/fin?range=f93c11933efbc3c2f0299e47b8ff83e9b539cbf6..cdb01be3c499930fd29be05dce960f4d8d201c54) ESTIMATED CHANGES Modified Mathlib/Algebra/BigOperators/Fin.lean + def finFunctionFinEquiv + theorem finFunctionFinEquiv_apply + theorem finFunctionFinEquiv_single + def finPiFinEquiv + theorem finPiFinEquiv_apply + theorem finPiFinEquiv_single 2023-04-28 06:56:21 5b1916c chore: forward-port leanprover-community/mathlib#18833 (#3660) The previously hacky proofs with porting notes can be discarded in favor of the ones from mathport. ESTIMATED CHANGES Modified Mathlib/Analysis/Normed/Group/Seminorm.lean 2023-04-28 06:56:19 bcbd4ec perf: improve performance of `to_additive` (#3632) * `applyReplacementFun` now treats applications `f x_1 ... x_n` as atomic, and recurses directly into `f` and `x_i` (before it recursed on the partial appliations `f x_1 ... x_j`) * I had to reimplement the way `to_additive` reorders arguments, so at the same time I also made it more flexible. We can now reorder with an arbitrary permutation, and you have to specify this by providing a permutation using cycle notation (e.g. `(reorder := 1 2 3, 8 9)` means we're permuting the first three arguments and swapping arguments 8 and 9). This implements the first item of #1074. * `additiveTest` now memorizes the test on previously-visited subexpressions. Thanks to @kmill for this suggestion! The performance on (one of) the slowest declaration(s) to additivize (`MonoidLocalization.lift`) is summarized below (note: `dsimp only` refers to adding a single `dsimp only` tactic in the declaration, which was done in #3580) ``` original: 27400ms better applyReplacementFun: 1550ms better applyReplacementFun + better additiveTest: 176ms dsimp only: 6710ms better applyReplacementFun + dsimp only: 425ms better applyReplacementFun + better additiveTest + dsimp only: 128ms ``` ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Defs.lean Modified Mathlib/Algebra/Group/OrderSynonym.lean Modified Mathlib/Algebra/Group/ULift.lean Modified Mathlib/Algebra/Hom/Group.lean Modified Mathlib/Algebra/Hom/Iterate.lean Modified Mathlib/Data/Array/Defs.lean + def Array.cyclicPermute! + def Array.permute! Modified Mathlib/Data/Pi/Algebra.lean Modified Mathlib/GroupTheory/GroupAction/Prod.lean Modified Mathlib/Tactic/ToAdditive.lean - def ToAdditive.additiveTestAux +/- def ToAdditive.reorderForall +/- def ToAdditive.reorderLambda Modified test/toAdditive.lean + def Test.reorderMulThree 2023-04-28 05:58:44 88894f5 feat: port LinearAlgebra.Matrix.Basis (#3691) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/LinearAlgebra/Basis.lean + theorem Basis.coord_unitsSMul - theorem Basis.coord_unitsSmul + def Basis.isUnitSMul + theorem Basis.isUnitSMul_apply - def Basis.isUnitSmul - theorem Basis.isUnitSmul_apply + theorem Basis.repr_unitsSMul - theorem Basis.repr_unitsSmul + def Basis.unitsSMul + theorem Basis.unitsSMul_apply - def Basis.unitsSmul - theorem Basis.unitsSmul_apply Added Mathlib/LinearAlgebra/Matrix/Basis.lean + theorem Basis.coePiBasisFun.toMatrix_eq_transpose + def Basis.invertibleToMatrix + theorem Basis.sum_toMatrix_smul_self + theorem Basis.toLin_toMatrix + def Basis.toMatrix + def Basis.toMatrixEquiv + theorem Basis.toMatrix_apply + theorem Basis.toMatrix_eq_toMatrix_constr + theorem Basis.toMatrix_isUnitSMul + theorem Basis.toMatrix_map + theorem Basis.toMatrix_map_vecMul + theorem Basis.toMatrix_mul_toMatrix + theorem Basis.toMatrix_mul_toMatrix_flip + theorem Basis.toMatrix_reindex' + theorem Basis.toMatrix_reindex + theorem Basis.toMatrix_self + theorem Basis.toMatrix_transpose_apply + theorem Basis.toMatrix_unitsSMul + theorem Basis.toMatrix_update + theorem LinearMap.toMatrix_id_eq_basis_toMatrix + theorem basis_toMatrix_basisFun_mul + theorem basis_toMatrix_mul + theorem basis_toMatrix_mul_linearMap_toMatrix + theorem basis_toMatrix_mul_linearMap_toMatrix_mul_basis_toMatrix + theorem linearMap_toMatrix_mul_basis_toMatrix + theorem mul_basis_toMatrix 2023-04-28 05:41:51 fabd023 feat: port LinearAlgebra.FreeModule.Finite.Matrix (#3690) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/LinearAlgebra/FreeModule/Finite/Matrix.lean + theorem FiniteDimensional.finrank_linearMap + theorem Matrix.rank_vecMulVec 2023-04-28 03:54:51 499a196 feat: port LinearAlgebra.Matrix.ToLin (#3552) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Module/LinearMap.lean Added Mathlib/LinearAlgebra/Matrix/ToLin.lean + theorem Algebra.leftMulMatrix_apply + theorem Algebra.leftMulMatrix_eq_repr_mul + theorem Algebra.leftMulMatrix_injective + theorem Algebra.leftMulMatrix_mulVec_repr + theorem Algebra.smul_leftMulMatrix + theorem Algebra.smul_leftMulMatrix_algebraMap + theorem Algebra.smul_leftMulMatrix_algebraMap_eq + theorem Algebra.smul_leftMulMatrix_algebraMap_ne + theorem Algebra.toMatrix_lmul' + theorem Algebra.toMatrix_lmul_eq + theorem Algebra.toMatrix_lsmul + def LinearEquiv.algConj + def LinearMap.toMatrix' + theorem LinearMap.toMatrix'_algebraMap + theorem LinearMap.toMatrix'_apply + theorem LinearMap.toMatrix'_comp + theorem LinearMap.toMatrix'_id + theorem LinearMap.toMatrix'_mul + theorem LinearMap.toMatrix'_symm + theorem LinearMap.toMatrix'_toLin' + def LinearMap.toMatrix + def LinearMap.toMatrixAlgEquiv' + theorem LinearMap.toMatrixAlgEquiv'_apply + theorem LinearMap.toMatrixAlgEquiv'_comp + theorem LinearMap.toMatrixAlgEquiv'_id + theorem LinearMap.toMatrixAlgEquiv'_mul + theorem LinearMap.toMatrixAlgEquiv'_symm + theorem LinearMap.toMatrixAlgEquiv'_toLinAlgEquiv' + def LinearMap.toMatrixAlgEquiv + theorem LinearMap.toMatrixAlgEquiv_apply' + theorem LinearMap.toMatrixAlgEquiv_apply + theorem LinearMap.toMatrixAlgEquiv_comp + theorem LinearMap.toMatrixAlgEquiv_id + theorem LinearMap.toMatrixAlgEquiv_mul + theorem LinearMap.toMatrixAlgEquiv_reindexRange + theorem LinearMap.toMatrixAlgEquiv_symm + theorem LinearMap.toMatrixAlgEquiv_toLinAlgEquiv + theorem LinearMap.toMatrixAlgEquiv_transpose_apply' + theorem LinearMap.toMatrixAlgEquiv_transpose_apply + def LinearMap.toMatrixRight' + theorem LinearMap.toMatrix_algebraMap + theorem LinearMap.toMatrix_apply' + theorem LinearMap.toMatrix_apply + theorem LinearMap.toMatrix_basis_equiv + theorem LinearMap.toMatrix_comp + theorem LinearMap.toMatrix_eq_toMatrix' + theorem LinearMap.toMatrix_id + theorem LinearMap.toMatrix_mul + theorem LinearMap.toMatrix_mulVec_repr + theorem LinearMap.toMatrix_one + theorem LinearMap.toMatrix_reindexRange + theorem LinearMap.toMatrix_symm + theorem LinearMap.toMatrix_toLin + theorem LinearMap.toMatrix_transpose_apply' + theorem LinearMap.toMatrix_transpose_apply + theorem Matrix.ker_mulVecLin_eq_bot_iff + theorem Matrix.ker_toLin'_eq_bot_iff + def Matrix.mulVecLin + theorem Matrix.mulVecLin_add + theorem Matrix.mulVecLin_apply + theorem Matrix.mulVecLin_mul + theorem Matrix.mulVecLin_one + theorem Matrix.mulVecLin_reindex + theorem Matrix.mulVecLin_submatrix + theorem Matrix.mulVecLin_zero + theorem Matrix.mulVec_stdBasis + theorem Matrix.mulVec_stdBasis_apply + theorem Matrix.range_mulVecLin + theorem Matrix.range_toLin' + def Matrix.toLin' + def Matrix.toLin'OfInv + theorem Matrix.toLin'_apply' + theorem Matrix.toLin'_apply + theorem Matrix.toLin'_mul + theorem Matrix.toLin'_mul_apply + theorem Matrix.toLin'_one + theorem Matrix.toLin'_reindex + theorem Matrix.toLin'_submatrix + theorem Matrix.toLin'_symm + theorem Matrix.toLin'_toMatrix' + def Matrix.toLin + def Matrix.toLinAlgEquiv' + theorem Matrix.toLinAlgEquiv'_apply + theorem Matrix.toLinAlgEquiv'_mul + theorem Matrix.toLinAlgEquiv'_one + theorem Matrix.toLinAlgEquiv'_symm + theorem Matrix.toLinAlgEquiv'_toMatrixAlgEquiv' + def Matrix.toLinAlgEquiv + theorem Matrix.toLinAlgEquiv_apply + theorem Matrix.toLinAlgEquiv_mul + theorem Matrix.toLinAlgEquiv_one + theorem Matrix.toLinAlgEquiv_self + theorem Matrix.toLinAlgEquiv_symm + theorem Matrix.toLinAlgEquiv_toMatrixAlgEquiv + def Matrix.toLinOfInv + theorem Matrix.toLin_apply + theorem Matrix.toLin_eq_toLin' + theorem Matrix.toLin_finTwoProd + theorem Matrix.toLin_finTwoProd_apply + theorem Matrix.toLin_mul + theorem Matrix.toLin_mul_apply + theorem Matrix.toLin_one + theorem Matrix.toLin_self + theorem Matrix.toLin_symm + theorem Matrix.toLin_toMatrix + def Matrix.toLinearEquivRight'OfInv + theorem Matrix.toLinearMapRight'_apply + theorem Matrix.toLinearMapRight'_mul + theorem Matrix.toLinearMapRight'_mul_apply + theorem Matrix.toLinearMapRight'_one + def Matrix.vecMulLinear + theorem Matrix.vecMul_stdBasis + def algEquivMatrix' + def algEquivMatrix + theorem toMatrix_distrib_mul_action_toLinearMap 2023-04-28 02:53:49 cedf224 feat: port AlgebraicTopology.SimplicialSet (#3689) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/AlgebraicTopology/SimplicialSet.lean + def SSet.Truncated + def SSet.asOrderHom + def SSet.boundary + def SSet.boundaryInclusion + def SSet.horn + def SSet.hornInclusion + def SSet.sk + def SSet.standardSimplex + def SSet Modified Mathlib/CategoryTheory/Limits/Types.lean 2023-04-28 02:53:48 1a30116 ci: lint references.bib (#3683) Ported from mathlib3. ESTIMATED CHANGES Modified .github/workflows/bors.yml Modified .github/workflows/build.yml Modified .github/workflows/build.yml.in Modified .github/workflows/build_fork.yml Added scripts/lint-bib.sh 2023-04-28 02:53:47 ee71e4f chore: rename Zpowers -> ZPowers (#3681) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Periodic.lean Modified Mathlib/GroupTheory/GroupAction/ConjAct.lean Renamed Mathlib/GroupTheory/Subgroup/Zpowers.lean to Mathlib/GroupTheory/Subgroup/ZPowers.lean 2023-04-28 02:33:14 b9cc405 feat: port Topology.Algebra.Module.Multilinear (#3348) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Topology/Algebra/Module/Multilinear.lean + def ContinuousLinearMap.compContinuousMultilinearMap + theorem ContinuousLinearMap.compContinuousMultilinearMap_coe + def ContinuousMultilinearMap.Simps.apply + theorem ContinuousMultilinearMap.add_apply + def ContinuousMultilinearMap.applyAddHom + theorem ContinuousMultilinearMap.coe_coe + theorem ContinuousMultilinearMap.coe_continuous + theorem ContinuousMultilinearMap.coe_pi + theorem ContinuousMultilinearMap.coe_restrictScalars + def ContinuousMultilinearMap.compContinuousLinearMap + theorem ContinuousMultilinearMap.compContinuousLinearMap_apply + theorem ContinuousMultilinearMap.cons_add + theorem ContinuousMultilinearMap.cons_smul + def ContinuousMultilinearMap.constOfIsEmpty + theorem ContinuousMultilinearMap.ext + theorem ContinuousMultilinearMap.ext_iff + theorem ContinuousMultilinearMap.map_add + theorem ContinuousMultilinearMap.map_add_univ + theorem ContinuousMultilinearMap.map_coord_zero + theorem ContinuousMultilinearMap.map_piecewise_add + theorem ContinuousMultilinearMap.map_piecewise_smul + theorem ContinuousMultilinearMap.map_smul + theorem ContinuousMultilinearMap.map_smul_univ + theorem ContinuousMultilinearMap.map_sub + theorem ContinuousMultilinearMap.map_sum + theorem ContinuousMultilinearMap.map_sum_finset + theorem ContinuousMultilinearMap.map_zero + theorem ContinuousMultilinearMap.mkPiAlgebraFin_apply + theorem ContinuousMultilinearMap.mkPiAlgebra_apply + theorem ContinuousMultilinearMap.neg_apply + def ContinuousMultilinearMap.ofSubsingleton + def ContinuousMultilinearMap.pi + def ContinuousMultilinearMap.piEquiv + def ContinuousMultilinearMap.piLinearEquiv + theorem ContinuousMultilinearMap.pi_apply + def ContinuousMultilinearMap.prod + theorem ContinuousMultilinearMap.prod_apply + def ContinuousMultilinearMap.restrictScalars + def ContinuousMultilinearMap.smulRight + theorem ContinuousMultilinearMap.smul_apply + theorem ContinuousMultilinearMap.sub_apply + theorem ContinuousMultilinearMap.sum_apply + def ContinuousMultilinearMap.toContinuousLinearMap + def ContinuousMultilinearMap.toMultilinearMapLinear + theorem ContinuousMultilinearMap.toMultilinearMap_add + theorem ContinuousMultilinearMap.toMultilinearMap_injective + theorem ContinuousMultilinearMap.toMultilinearMap_smul + theorem ContinuousMultilinearMap.toMultilinearMap_zero + theorem ContinuousMultilinearMap.zero_apply + structure ContinuousMultilinearMap 2023-04-28 01:23:38 1a889c7 feat: port Topology.Algebra.Module.StrongTopology (#3684) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Topology/Algebra/Module/StrongTopology.lean + theorem ContinuousLinearMap.strongTopology.continuousSMul + theorem ContinuousLinearMap.strongTopology.embedding_coeFn + theorem ContinuousLinearMap.strongTopology.hasBasis_nhds_zero + theorem ContinuousLinearMap.strongTopology.hasBasis_nhds_zero_of_basis + theorem ContinuousLinearMap.strongTopology.t2Space + theorem ContinuousLinearMap.strongTopology.topologicalAddGroup + def ContinuousLinearMap.strongTopology + theorem ContinuousLinearMap.strongUniformity.uniformAddGroup + theorem ContinuousLinearMap.strongUniformity.uniformEmbedding_coeFn + def ContinuousLinearMap.strongUniformity + theorem ContinuousLinearMap.strongUniformity_topology_eq 2023-04-28 00:11:16 7be314b fix: mathlib4_docs cleanup routine (#3631) ESTIMATED CHANGES Modified .github/workflows/mathlib4docs.yml 2023-04-27 23:33:25 4e9ad32 feat : port CategoryTheory.Limits.FilteredColimitCommutesFiniteLimit (#3605) This was harder than it looked (the proofs are long and broke). ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Limits/FilteredColimitCommutesFiniteLimit.lean + theorem CategoryTheory.Limits.colimitLimitToLimitColimit_injective + theorem CategoryTheory.Limits.colimitLimitToLimitColimit_surjective + theorem CategoryTheory.Limits.comp_lim_obj_ext + theorem CategoryTheory.Limits.ι_colimitLimitIso_limit_π Modified Mathlib/CategoryTheory/Limits/HasLimits.lean 2023-04-27 23:18:23 a033eb9 feat: Port Topology.Category.CompHaus.Basic (#3688) Relatively straightforward port. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Topology/Category/CompHaus/Basic.lean + theorem CompHaus.coe_of + theorem CompHaus.epi_iff_surjective + theorem CompHaus.isClosedMap + theorem CompHaus.isIso_of_bijective + def CompHaus.limitCone + def CompHaus.limitConeIsLimit + theorem CompHaus.mono_iff_injective + def CompHaus.of + structure CompHaus + def compHausToTop + def stoneCechObj + theorem topToCompHaus_obj 2023-04-27 21:43:33 36c9270 feat: port Analysis.Convex.StoneSeparation (#3686) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/Convex/StoneSeparation.lean + theorem exists_convex_convex_compl_subset + theorem not_disjoint_segment_convexHull_triple 2023-04-27 21:43:32 a454a76 feat: port CategoryTheory.Noetherian (#3685) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Noetherian.lean + theorem CategoryTheory.ArtinianObject.subobject_lt_wellFounded + theorem CategoryTheory.NoetherianObject.subobject_gt_wellFounded + theorem CategoryTheory.exists_simple_subobject 2023-04-27 21:26:10 77870e4 chore: forward port leanprover-community/mathlib#18864 (#3687) Forward port changes from leanprover-community/mathlib#18864 to Topology/Perfect.lean and MeasureTheory/MeasurableSpace.lean ESTIMATED CHANGES Modified Mathlib/MeasureTheory/MeasurableSpace.lean + theorem MeasurableSpace.measurable_injection_cantor_of_countablyGenerated + theorem measurable_to_bool + theorem measurable_to_countable' Modified Mathlib/Topology/Perfect.lean + theorem IsClosed.exists_nat_bool_injection_of_not_countable 2023-04-27 15:27:17 1a35e03 feat: port CategoryTheory.Sites.Adjunction (#3663) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Sites/Adjunction.lean + def CategoryTheory.Sheaf.adjunction + def CategoryTheory.Sheaf.adjunctionToTypes + theorem CategoryTheory.Sheaf.adjunctionToTypes_counit_app_val + theorem CategoryTheory.Sheaf.adjunctionToTypes_unit_app_val + def CategoryTheory.Sheaf.composeEquiv 2023-04-27 14:06:46 a6ed4e7 chore: forward-port generalisation (#3679) * [`data.finsupp.basic`@`2651125b48fc5c170ab1111afd0817c903b1fc6c`..`57911c5a05a1b040598e1e15b189f035ac5cc33c`](https://leanprover-community.github.io/mathlib-port-status/file/data/finsupp/basic?range=2651125b48fc5c170ab1111afd0817c903b1fc6c..57911c5a05a1b040598e1e15b189f035ac5cc33c) ESTIMATED CHANGES Modified Mathlib/Data/Finsupp/Basic.lean 2023-04-27 14:06:45 4f8d8fa feat: port Topology.Algebra.UniformConvergence (#3664) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Topology/Algebra/UniformConvergence.lean + theorem UniformFun.div_apply + theorem UniformFun.inv_apply + theorem UniformFun.mul_apply + theorem UniformFun.one_apply + theorem UniformOnFun.continuousSMul_induced_of_image_bounded + theorem UniformOnFun.continuousSMul_submodule_of_image_bounded + theorem UniformOnFun.div_apply + theorem UniformOnFun.inv_apply + theorem UniformOnFun.mul_apply + theorem UniformOnFun.one_apply 2023-04-27 14:06:43 1c05ad4 feat: port Topology.Category.Top.Limits.Basic (#3487) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Topology/Category/Top/Basic.lean Added Mathlib/Topology/Category/Top/Limits/Basic.lean + def TopCat.colimitCocone + def TopCat.colimitCoconeIsColimit + def TopCat.limitCone + def TopCat.limitConeInfi + def TopCat.limitConeInfiIsLimit + def TopCat.limitConeIsLimit 2023-04-27 12:44:20 0f225a7 chore: use etaExperiment rather than hacking with instances (#3668) This is to fix timeouts in https://github.com/leanprover-community/mathlib4/pull/3552. See discussion at https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/!4.233552.20.28LinearAlgebra.2EMatrix.2EToLin.29. ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/Subalgebra/Basic.lean Modified Mathlib/Algebra/CharP/Two.lean Modified Mathlib/Algebra/Module/Projective.lean Modified Mathlib/Algebra/Order/Algebra.lean Modified Mathlib/Analysis/NormedSpace/Basic.lean Modified Mathlib/Analysis/Seminorm.lean Modified Mathlib/Data/Polynomial/Module.lean Modified Mathlib/Data/Polynomial/RingDivision.lean Modified Mathlib/LinearAlgebra/Basis.lean Modified Mathlib/LinearAlgebra/Dfinsupp.lean Modified Mathlib/LinearAlgebra/Dimension.lean Modified Mathlib/LinearAlgebra/FiniteDimensional.lean Modified Mathlib/LinearAlgebra/Finrank.lean Modified Mathlib/LinearAlgebra/FreeAlgebra.lean Modified Mathlib/LinearAlgebra/FreeModule/Finite/Basic.lean Modified Mathlib/LinearAlgebra/FreeModule/Finite/Rank.lean Modified Mathlib/LinearAlgebra/FreeModule/PID.lean Modified Mathlib/LinearAlgebra/FreeModule/Rank.lean Modified Mathlib/LinearAlgebra/InvariantBasisNumber.lean Modified Mathlib/LinearAlgebra/LinearIndependent.lean Modified Mathlib/LinearAlgebra/Matrix/Determinant.lean Modified Mathlib/LinearAlgebra/Matrix/NonsingularInverse.lean Modified Mathlib/LinearAlgebra/Matrix/Reindex.lean Modified Mathlib/LinearAlgebra/SesquilinearForm.lean Modified Mathlib/LinearAlgebra/Span.lean Modified Mathlib/RingTheory/Congruence.lean Modified Mathlib/RingTheory/FiniteType.lean Modified Mathlib/RingTheory/Finiteness.lean Modified Mathlib/RingTheory/Flat.lean Modified Mathlib/RingTheory/Ideal/IdempotentFg.lean Modified Mathlib/RingTheory/Ideal/Operations.lean Modified Mathlib/RingTheory/Ideal/QuotientOperations.lean Modified Mathlib/RingTheory/Localization/Submodule.lean Modified Mathlib/RingTheory/MvPolynomial/Basic.lean Modified Mathlib/RingTheory/Noetherian.lean Modified Mathlib/RingTheory/Polynomial/Basic.lean Modified Mathlib/RingTheory/PrincipalIdealDomain.lean Modified Mathlib/RingTheory/QuotientNoetherian.lean Modified Mathlib/RingTheory/ReesAlgebra.lean Modified Mathlib/Topology/Algebra/UniformMulAction.lean Modified Mathlib/Topology/Algebra/UniformRing.lean 2023-04-27 08:42:08 ea1dfb2 chore: use TypeMax in CategoryTheory.Limits.Types (#3653) Per discussion at https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/!4.233463.20universe.20constraint.20issues ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Types.lean +/- theorem CategoryTheory.Limits.Types.productIso_hom_comp_eval +/- theorem CategoryTheory.Limits.Types.productIso_inv_comp_π Modified Mathlib/CategoryTheory/Limits/Types.lean +/- theorem CategoryTheory.Limits.Types.Colimit.w_apply +/- theorem CategoryTheory.Limits.Types.Colimit.ι_desc_apply +/- theorem CategoryTheory.Limits.Types.Colimit.ι_map_apply +/- theorem CategoryTheory.Limits.Types.FilteredColimit.eqvGen_quot_rel_of_rel +/- theorem CategoryTheory.Limits.Types.FilteredColimit.rel_of_quot_rel +/- theorem CategoryTheory.Limits.Types.Limit.lift_π_apply +/- theorem CategoryTheory.Limits.Types.Limit.map_π_apply' +/- theorem CategoryTheory.Limits.Types.Limit.map_π_apply +/- theorem CategoryTheory.Limits.Types.Limit.w_apply' +/- theorem CategoryTheory.Limits.Types.Limit.w_apply +/- theorem CategoryTheory.Limits.Types.Limit.π_mk +/- def CategoryTheory.Limits.Types.Quot.Rel +/- def CategoryTheory.Limits.Types.Quot +/- def CategoryTheory.Limits.Types.colimitCocone +/- def CategoryTheory.Limits.Types.colimitCoconeIsColimit +/- theorem CategoryTheory.Limits.Types.colimitEquivQuot_apply +/- theorem CategoryTheory.Limits.Types.colimitEquivQuot_symm_apply +/- theorem CategoryTheory.Limits.Types.colimit_eq +/- theorem CategoryTheory.Limits.Types.colimit_sound' +/- theorem CategoryTheory.Limits.Types.colimit_sound +/- def CategoryTheory.Limits.Types.isLimitEquivSections +/- theorem CategoryTheory.Limits.Types.isLimitEquivSections_apply +/- theorem CategoryTheory.Limits.Types.isLimitEquivSections_symm_apply +/- theorem CategoryTheory.Limits.Types.jointly_surjective' +/- theorem CategoryTheory.Limits.Types.jointly_surjective +/- def CategoryTheory.Limits.Types.limitCone +/- def CategoryTheory.Limits.Types.limitConeIsLimit +/- theorem CategoryTheory.Limits.Types.limitEquivSections_apply +/- theorem CategoryTheory.Limits.Types.limitEquivSections_symm_apply +/- theorem CategoryTheory.Limits.Types.limit_ext' +/- theorem CategoryTheory.Limits.Types.limit_ext +/- theorem CategoryTheory.Limits.Types.limit_ext_iff' +/- theorem CategoryTheory.Limits.Types.limit_ext_iff Added Mathlib/Data/TypeMax.lean 2023-04-27 06:19:30 55d59ba feat: port LinearAlgebra.Matrix.Block (#3667) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/LinearAlgebra/Matrix/Block.lean + theorem Matrix.BlockTriangular.add + theorem Matrix.BlockTriangular.det_fintype + theorem Matrix.BlockTriangular.inv_toBlock + def Matrix.BlockTriangular.invertibleToBlock + theorem Matrix.BlockTriangular.mul + theorem Matrix.BlockTriangular.sub + theorem Matrix.BlockTriangular.toBlock_inverse_mul_toBlock_eq_one + def Matrix.BlockTriangular + theorem Matrix.blockTriangular_blockDiagonal' + theorem Matrix.blockTriangular_blockDiagonal + theorem Matrix.blockTriangular_diagonal + theorem Matrix.blockTriangular_inv_of_blockTriangular + theorem Matrix.blockTriangular_reindex_iff + theorem Matrix.blockTriangular_zero + theorem Matrix.det_of_lowerTriangular + theorem Matrix.det_of_upperTriangular + theorem Matrix.det_toBlock + theorem Matrix.det_toSquareBlock_id + theorem Matrix.equiv_block_det + theorem Matrix.toBlock_inverse_eq_zero + theorem Matrix.twoBlockTriangular_det' + theorem Matrix.twoBlockTriangular_det + theorem Matrix.upper_two_blockTriangular 2023-04-27 06:19:29 7abdbcc doc: move comments (#3666) Two comments were in the wrong places. ESTIMATED CHANGES Modified Mathlib/Data/String/Basic.lean 2023-04-27 06:19:28 d9d4ff5 fix: correct field names in `IsCompl` (#3661) These are proofs not propositions so should be `lowerCamelCase`. ESTIMATED CHANGES Modified Mathlib/Algebra/BigOperators/Basic.lean Modified Mathlib/LinearAlgebra/FiniteDimensional.lean Modified Mathlib/LinearAlgebra/LinearIndependent.lean Modified Mathlib/LinearAlgebra/Projection.lean Modified Mathlib/LinearAlgebra/SesquilinearForm.lean Modified Mathlib/Order/CompactlyGenerated.lean Modified Mathlib/Order/Disjoint.lean Modified Mathlib/Order/PrimeIdeal.lean Modified Mathlib/Topology/Separation.lean 2023-04-27 06:19:27 7a0e025 feat: instant library_search (#3404) Well, not quite instant, but very much faster. This works by creating an extra file in the `build` directory containing a cache of the `library_search` discrimination tree. * If you modify a file, then open another file, `library_search` will not see the modified declarations. * However after a `lake exe cache get` or a `lake env lean Extras/LibrarySearch.lean`, you will see the modifications. * In particular CI will automatically do the work of building this cache. * This will increase the size of a `lake exe cache get` download (by about 20mb). To accommodate the cache file, we create a new `build/extra/` directory, that can store `.olean` format cache files. Our `cache` executable now manages files in this directory too. ESTIMATED CHANGES Modified .github/workflows/bors.yml Modified .github/workflows/build.yml Modified .github/workflows/build.yml.in Modified .github/workflows/build_fork.yml Modified Cache/Hashing.lean + def Cache.Hashing.roots Modified Cache/IO.lean +/- def Cache.IO.allExist +/- def Cache.IO.mkBuildPaths Modified Mathlib.lean Modified Mathlib/Tactic/LibrarySearch.lean + structure Mathlib.Tactic.LibrarySearch.CachedData + def Mathlib.Tactic.LibrarySearch.addLemma + def Mathlib.Tactic.LibrarySearch.buildDiscrTree + def Mathlib.Tactic.LibrarySearch.cachePath + def Mathlib.Tactic.LibrarySearch.librarySearchLemmas Added Mathlib/Util/Pickle.lean + def pickle Added MathlibExtras.lean Added MathlibExtras/LibrarySearch.lean Modified lakefile.lean Modified test/librarySearch.lean 2023-04-27 06:05:34 5865020 chore: copy across references.bib (#3665) ESTIMATED CHANGES Added docs/references.bib 2023-04-27 02:53:43 8b1ed96 feat: port CategoryTheory.Simple (#3510) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Simple.lean + theorem CategoryTheory.Biprod.isIso_inl_iff_isZero + theorem CategoryTheory.Simple.iff_of_iso + theorem CategoryTheory.Simple.not_isZero + theorem CategoryTheory.Simple.of_iso + theorem CategoryTheory.cokernel_zero_of_nonzero_to_simple + theorem CategoryTheory.epi_from_simple_zero_of_not_iso + theorem CategoryTheory.epi_of_nonzero_to_simple + theorem CategoryTheory.id_nonzero + theorem CategoryTheory.indecomposable_of_simple + theorem CategoryTheory.isIso_of_epi_of_nonzero + theorem CategoryTheory.isIso_of_mono_of_nonzero + theorem CategoryTheory.kernel_zero_of_nonzero_from_simple + theorem CategoryTheory.mono_to_simple_zero_of_not_iso + theorem CategoryTheory.simple_iff_subobject_isSimpleOrder + theorem CategoryTheory.simple_of_cosimple + theorem CategoryTheory.simple_of_isSimpleOrder_subobject + theorem CategoryTheory.subobject_simple_iff_isAtom + theorem CategoryTheory.zero_not_simple 2023-04-27 02:37:38 48a2b71 feat: port Topology.Category.Top.Opens (#3662) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Topology/Category/Top/Opens.lean + def IsOpenMap.adjunction + def IsOpenMap.functor + theorem TopologicalSpace.Opens.adjunction_counit_app_self + theorem TopologicalSpace.Opens.adjunction_counit_map_functor + theorem TopologicalSpace.Opens.functor_map_eq_inf + theorem TopologicalSpace.Opens.functor_obj_map_obj + def TopologicalSpace.Opens.inclusion + def TopologicalSpace.Opens.inclusionTopIso + theorem TopologicalSpace.Opens.inclusion_map_eq_top + theorem TopologicalSpace.Opens.inclusion_top_functor + theorem TopologicalSpace.Opens.infLeLeft_apply + theorem TopologicalSpace.Opens.infLeLeft_apply_mk + theorem TopologicalSpace.Opens.leSupr_apply_mk + def TopologicalSpace.Opens.map + def TopologicalSpace.Opens.mapComp + def TopologicalSpace.Opens.mapId + def TopologicalSpace.Opens.mapIso + theorem TopologicalSpace.Opens.mapIso_hom_app + theorem TopologicalSpace.Opens.mapIso_inv_app + theorem TopologicalSpace.Opens.mapIso_refl + def TopologicalSpace.Opens.mapMapIso + theorem TopologicalSpace.Opens.map_coe + theorem TopologicalSpace.Opens.map_comp_eq + theorem TopologicalSpace.Opens.map_comp_map + theorem TopologicalSpace.Opens.map_comp_obj' + theorem TopologicalSpace.Opens.map_comp_obj + theorem TopologicalSpace.Opens.map_comp_obj_unop + theorem TopologicalSpace.Opens.map_eq + theorem TopologicalSpace.Opens.map_functor_eq' + theorem TopologicalSpace.Opens.map_functor_eq + theorem TopologicalSpace.Opens.map_id_eq + theorem TopologicalSpace.Opens.map_id_obj' + theorem TopologicalSpace.Opens.map_id_obj + theorem TopologicalSpace.Opens.map_id_obj_unop + theorem TopologicalSpace.Opens.map_obj + theorem TopologicalSpace.Opens.map_supᵢ + theorem TopologicalSpace.Opens.op_map_comp_obj + theorem TopologicalSpace.Opens.op_map_id_obj + theorem TopologicalSpace.Opens.openEmbedding + theorem TopologicalSpace.Opens.openEmbedding_obj_top + theorem TopologicalSpace.Opens.set_range_forget_map_inclusion + def TopologicalSpace.Opens.toTopCat + theorem TopologicalSpace.Opens.toTopCat_map 2023-04-26 23:45:09 850e670 feat: port Analysis.LocallyConvex.Bounded (#3656) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/LocallyConvex/Bounded.lean + theorem Bornology.IsVonNBounded.image + theorem Bornology.IsVonNBounded.of_topologicalSpace_le + theorem Bornology.IsVonNBounded.smul_tendsto_zero + theorem Bornology.IsVonNBounded.subset + theorem Bornology.IsVonNBounded.union + def Bornology.IsVonNBounded + theorem Bornology.isBounded_iff_isVonNBounded + theorem Bornology.isVonNBounded_covers + theorem Bornology.isVonNBounded_empty + theorem Bornology.isVonNBounded_iff + theorem Bornology.isVonNBounded_iff_smul_tendsto_zero + theorem Bornology.isVonNBounded_of_smul_tendsto_zero + theorem Bornology.isVonNBounded_singleton + def Bornology.vonNBornology + theorem Filter.HasBasis.isVonNBounded_basis_iff + theorem NormedSpace.image_isVonNBounded_iff + theorem NormedSpace.isBounded_iff_subset_smul_ball + theorem NormedSpace.isBounded_iff_subset_smul_closedBall + theorem NormedSpace.isVonNBounded_ball + theorem NormedSpace.isVonNBounded_closedBall + theorem NormedSpace.isVonNBounded_iff' + theorem NormedSpace.isVonNBounded_iff + theorem NormedSpace.vonNBornology_eq + theorem TotallyBounded.isVonNBounded 2023-04-26 12:39:02 a5ac4ef chore: forward-port leanprover-community/mathlib#18852 (#3646) This additionally makes a further small generalization to some of the finsupp instances (labelled with porting notes) which should be backported. The new statement of `Rat.smul_one_eq_coe` fixes a proof in `Mathlib/Analysis/NormedSpace/Basic.lean` that was mangled during porting. ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/Basic.lean - theorem Rat.smul_one_eq_coe Modified Mathlib/Algebra/Field/Defs.lean + theorem Rat.smul_one_eq_coe Modified Mathlib/Algebra/MonoidAlgebra/Basic.lean Modified Mathlib/Analysis/NormedSpace/Basic.lean Modified Mathlib/Data/Finsupp/Basic.lean +/- theorem Finsupp.coe_smul +/- theorem Finsupp.smul_apply +/- theorem Finsupp.smul_single +/- theorem IsSMulRegular.finsupp Modified Mathlib/Data/Polynomial/Basic.lean + theorem Polynomial.rat_smul_eq_C_mul +/- theorem Polynomial.smul_C +/- theorem Polynomial.smul_monomial Modified Mathlib/Data/Polynomial/Coeff.lean +/- theorem Polynomial.coeff_smul 2023-04-26 11:37:33 6aa4d44 feat: port Analysis.BoxIntegral.Partition.Split (#3658) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/BoxIntegral/Partition/Split.lean + theorem BoxIntegral.Box.coe_splitLower + theorem BoxIntegral.Box.coe_splitUpper + theorem BoxIntegral.Box.disjoint_splitLower_splitUpper + def BoxIntegral.Box.splitLower + theorem BoxIntegral.Box.splitLower_def + theorem BoxIntegral.Box.splitLower_eq_bot + theorem BoxIntegral.Box.splitLower_eq_self + theorem BoxIntegral.Box.splitLower_le + theorem BoxIntegral.Box.splitLower_ne_splitUpper + def BoxIntegral.Box.splitUpper + theorem BoxIntegral.Box.splitUpper_def + theorem BoxIntegral.Box.splitUpper_eq_bot + theorem BoxIntegral.Box.splitUpper_eq_self + theorem BoxIntegral.Box.splitUpper_le + theorem BoxIntegral.Prepartition.IsPartition.compl_eq_bot + theorem BoxIntegral.Prepartition.IsPartition.exists_splitMany_le + theorem BoxIntegral.Prepartition.coe_eq_of_mem_split_of_lt_mem + theorem BoxIntegral.Prepartition.coe_eq_of_mem_split_of_mem_le + def BoxIntegral.Prepartition.compl + theorem BoxIntegral.Prepartition.compl_congr + theorem BoxIntegral.Prepartition.compl_top + theorem BoxIntegral.Prepartition.eventually_not_disjoint_imp_le_of_mem_splitMany + theorem BoxIntegral.Prepartition.eventually_splitMany_inf_eq_filter + theorem BoxIntegral.Prepartition.exists_splitMany_inf_eq_filter_of_finite + theorem BoxIntegral.Prepartition.exists_unionᵢ_eq_diff + theorem BoxIntegral.Prepartition.inf_split + theorem BoxIntegral.Prepartition.inf_splitMany + theorem BoxIntegral.Prepartition.isPartitionSplit + theorem BoxIntegral.Prepartition.isPartition_splitMany + theorem BoxIntegral.Prepartition.mem_split_iff' + theorem BoxIntegral.Prepartition.mem_split_iff + theorem BoxIntegral.Prepartition.not_disjoint_imp_le_of_subset_of_mem_splitMany + theorem BoxIntegral.Prepartition.restrict_split + def BoxIntegral.Prepartition.split + def BoxIntegral.Prepartition.splitMany + theorem BoxIntegral.Prepartition.splitMany_empty + theorem BoxIntegral.Prepartition.splitMany_insert + theorem BoxIntegral.Prepartition.splitMany_le_split + theorem BoxIntegral.Prepartition.split_of_not_mem_Ioo + theorem BoxIntegral.Prepartition.sum_split_boxes + theorem BoxIntegral.Prepartition.unionᵢ_compl + theorem BoxIntegral.Prepartition.unionᵢ_split + theorem BoxIntegral.Prepartition.unionᵢ_splitMany 2023-04-26 07:58:11 94f2b20 feat: port Topology.Instances.Matrix (#3655) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Topology/Instances/Matrix.lean + theorem Continuous.matrix_adjugate + theorem Continuous.matrix_blockDiag' + theorem Continuous.matrix_blockDiag + theorem Continuous.matrix_blockDiagonal' + theorem Continuous.matrix_blockDiagonal + theorem Continuous.matrix_col + theorem Continuous.matrix_conjTranspose + theorem Continuous.matrix_cramer + theorem Continuous.matrix_det + theorem Continuous.matrix_diag + theorem Continuous.matrix_diagonal + theorem Continuous.matrix_dotProduct + theorem Continuous.matrix_elem + theorem Continuous.matrix_fromBlocks + theorem Continuous.matrix_map + theorem Continuous.matrix_mul + theorem Continuous.matrix_mulVec + theorem Continuous.matrix_reindex + theorem Continuous.matrix_row + theorem Continuous.matrix_submatrix + theorem Continuous.matrix_trace + theorem Continuous.matrix_transpose + theorem Continuous.matrix_updateColumn + theorem Continuous.matrix_updateRow + theorem Continuous.matrix_vecMul + theorem Continuous.matrix_vecMulVec + theorem HasSum.matrix_blockDiag' + theorem HasSum.matrix_blockDiag + theorem HasSum.matrix_blockDiagonal' + theorem HasSum.matrix_blockDiagonal + theorem HasSum.matrix_conjTranspose + theorem HasSum.matrix_diag + theorem HasSum.matrix_diagonal + theorem HasSum.matrix_transpose + theorem Matrix.blockDiagonal'_tsum + theorem Matrix.blockDiagonal_tsum + theorem Matrix.conjTranspose_tsum + theorem Matrix.diagonal_tsum + theorem Matrix.transpose_tsum + theorem Summable.matrix_blockDiag' + theorem Summable.matrix_blockDiag + theorem Summable.matrix_blockDiagonal' + theorem Summable.matrix_blockDiagonal + theorem Summable.matrix_conjTranspose + theorem Summable.matrix_diag + theorem Summable.matrix_diagonal + theorem Summable.matrix_transpose + theorem continuousAt_matrix_inv + theorem continuous_matrix + theorem continuous_matrix_diag + theorem summable_matrix_blockDiagonal' + theorem summable_matrix_blockDiagonal + theorem summable_matrix_conjTranspose + theorem summable_matrix_diagonal + theorem summable_matrix_transpose 2023-04-26 05:15:50 8dafb51 doc: fix typo and omission (#3614) * Capitalize the first letter of the docstring of `String.leftpad`. * Enclose in backticks 'A' in the docstring of `String.head`. ESTIMATED CHANGES Modified Mathlib/Data/String/Defs.lean 2023-04-26 04:57:05 39ecb3b feat: port Analysis.Seminorm (#3484) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/Seminorm.lean + theorem Seminorm.add_apply + theorem Seminorm.add_comp + theorem Seminorm.balanced_ball_zero + theorem Seminorm.balanced_closedBall_zero + def Seminorm.ball + theorem Seminorm.ball_add_ball_subset + theorem Seminorm.ball_antitone + theorem Seminorm.ball_bot + theorem Seminorm.ball_comp + theorem Seminorm.ball_eq_emptyset + theorem Seminorm.ball_finset_sup' + theorem Seminorm.ball_finset_sup + theorem Seminorm.ball_finset_sup_eq_interᵢ + theorem Seminorm.ball_mono + theorem Seminorm.ball_norm_mul_subset + theorem Seminorm.ball_smul + theorem Seminorm.ball_smul_ball + theorem Seminorm.ball_subset_closedBall + theorem Seminorm.ball_sup + theorem Seminorm.ball_zero' + theorem Seminorm.ball_zero_absorbs_ball_zero + theorem Seminorm.ball_zero_eq + theorem Seminorm.ball_zero_eq_preimage_ball + theorem Seminorm.bddBelow_range_add + theorem Seminorm.bot_eq_zero + def Seminorm.closedBall + theorem Seminorm.closedBall_add_closedBall_subset + theorem Seminorm.closedBall_antitone + theorem Seminorm.closedBall_bot + theorem Seminorm.closedBall_comp + theorem Seminorm.closedBall_eq_binterᵢ_ball + theorem Seminorm.closedBall_eq_emptyset + theorem Seminorm.closedBall_finset_sup' + theorem Seminorm.closedBall_finset_sup + theorem Seminorm.closedBall_finset_sup_eq_interᵢ + theorem Seminorm.closedBall_mono + theorem Seminorm.closedBall_smul + theorem Seminorm.closedBall_smul_closedBall + theorem Seminorm.closedBall_sup + theorem Seminorm.closedBall_zero' + theorem Seminorm.closedBall_zero_eq + theorem Seminorm.closedBall_zero_eq_preimage_closedBall + def Seminorm.coeFnAddMonoidHom + theorem Seminorm.coeFnAddMonoidHom_injective + theorem Seminorm.coe_add + theorem Seminorm.coe_bot + theorem Seminorm.coe_comp + theorem Seminorm.coe_le_coe + theorem Seminorm.coe_lt_coe + theorem Seminorm.coe_restrictScalars + theorem Seminorm.coe_smul + theorem Seminorm.coe_sup + theorem Seminorm.coe_zero + def Seminorm.comp + theorem Seminorm.comp_add_le + theorem Seminorm.comp_apply + theorem Seminorm.comp_comp + theorem Seminorm.comp_id + theorem Seminorm.comp_mono + theorem Seminorm.comp_smul + theorem Seminorm.comp_smul_apply + theorem Seminorm.comp_zero + theorem Seminorm.continuousAt_zero' + theorem Seminorm.continuousAt_zero + theorem Seminorm.continuous_of_le + theorem Seminorm.convex_ball + theorem Seminorm.convex_closedBall + theorem Seminorm.ext + theorem Seminorm.finset_sup_apply + theorem Seminorm.finset_sup_apply_le + theorem Seminorm.finset_sup_apply_lt + theorem Seminorm.finset_sup_le_sum + theorem Seminorm.inf_apply + theorem Seminorm.le_def + theorem Seminorm.lt_def + theorem Seminorm.mem_ball + theorem Seminorm.mem_ball_self + theorem Seminorm.mem_ball_zero + theorem Seminorm.mem_closedBall + theorem Seminorm.mem_closedBall_self + theorem Seminorm.mem_closedBall_zero + theorem Seminorm.neg_ball + theorem Seminorm.norm_sub_map_le_sub + def Seminorm.of + def Seminorm.ofSmulLe + theorem Seminorm.preimage_metric_ball + theorem Seminorm.preimage_metric_closedBall + def Seminorm.pullback + theorem Seminorm.restrictScalars_ball + theorem Seminorm.restrictScalars_closedBall + theorem Seminorm.smul_apply + theorem Seminorm.smul_ball_preimage + theorem Seminorm.smul_ball_zero + theorem Seminorm.smul_closedBall_subset + theorem Seminorm.smul_closedBall_zero + theorem Seminorm.smul_comp + theorem Seminorm.smul_inf + theorem Seminorm.smul_le_smul + theorem Seminorm.smul_sup + theorem Seminorm.sub_mem_ball + theorem Seminorm.sup_apply + theorem Seminorm.symmetric_ball_zero + theorem Seminorm.vadd_ball + theorem Seminorm.vadd_closedBall + theorem Seminorm.zero_apply + theorem Seminorm.zero_comp + structure Seminorm + theorem absorbent_ball + theorem absorbent_ball_zero + theorem balanced_ball_zero + theorem ball_normSeminorm + theorem coe_normSeminorm + def normSeminorm Modified Mathlib/Lean/Meta.lean 2023-04-26 04:18:25 f4c36e3 feat: port Analysis.BoxIntegral.Partition.Basic (#3438) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/BoxIntegral/Partition/Basic.lean + theorem BoxIntegral.Prepartition.IsPartition.eq_of_boxes_subset + theorem BoxIntegral.Prepartition.IsPartition.le_iff + theorem BoxIntegral.Prepartition.IsPartition.nonempty_boxes + theorem BoxIntegral.Prepartition.IsPartition.unionᵢ_eq + theorem BoxIntegral.Prepartition.IsPartition.unionᵢ_subset + def BoxIntegral.Prepartition.IsPartition + theorem BoxIntegral.Prepartition.bot_boxes + def BoxIntegral.Prepartition.bunionᵢ + def BoxIntegral.Prepartition.bunionᵢIndex + theorem BoxIntegral.Prepartition.bunionᵢIndex_le + theorem BoxIntegral.Prepartition.bunionᵢIndex_mem + theorem BoxIntegral.Prepartition.bunionᵢIndex_of_mem + theorem BoxIntegral.Prepartition.bunionᵢ_assoc + theorem BoxIntegral.Prepartition.bunionᵢ_congr + theorem BoxIntegral.Prepartition.bunionᵢ_congr_of_le + theorem BoxIntegral.Prepartition.bunionᵢ_le + theorem BoxIntegral.Prepartition.bunionᵢ_le_iff + theorem BoxIntegral.Prepartition.bunionᵢ_top + theorem BoxIntegral.Prepartition.card_filter_mem_Icc_le + def BoxIntegral.Prepartition.disjUnion + theorem BoxIntegral.Prepartition.disjoint_boxes_of_disjoint_unionᵢ + theorem BoxIntegral.Prepartition.disjoint_coe_of_mem + def BoxIntegral.Prepartition.distortion + theorem BoxIntegral.Prepartition.distortion_bot + theorem BoxIntegral.Prepartition.distortion_bunionᵢ + theorem BoxIntegral.Prepartition.distortion_disjUnion + theorem BoxIntegral.Prepartition.distortion_le_iff + theorem BoxIntegral.Prepartition.distortion_le_of_mem + theorem BoxIntegral.Prepartition.distortion_of_const + theorem BoxIntegral.Prepartition.distortion_top + theorem BoxIntegral.Prepartition.eq_of_boxes_subset_unionᵢ_superset + theorem BoxIntegral.Prepartition.eq_of_le + theorem BoxIntegral.Prepartition.eq_of_le_of_le + theorem BoxIntegral.Prepartition.eq_of_mem_of_mem + theorem BoxIntegral.Prepartition.ext + def BoxIntegral.Prepartition.filter + theorem BoxIntegral.Prepartition.filter_le + theorem BoxIntegral.Prepartition.filter_of_true + theorem BoxIntegral.Prepartition.filter_true + theorem BoxIntegral.Prepartition.inf_def + theorem BoxIntegral.Prepartition.injOn_setOf_mem_Icc_setOf_lower_eq + theorem BoxIntegral.Prepartition.injective_boxes + theorem BoxIntegral.Prepartition.isPartitionDisjUnionOfEqDiff + theorem BoxIntegral.Prepartition.isPartitionTop + theorem BoxIntegral.Prepartition.isPartition_iff_unionᵢ_eq + theorem BoxIntegral.Prepartition.isPartition_single_iff + theorem BoxIntegral.Prepartition.le_bunionᵢIndex + theorem BoxIntegral.Prepartition.le_bunionᵢ_iff + theorem BoxIntegral.Prepartition.le_def + theorem BoxIntegral.Prepartition.le_iff_nonempty_imp_le_and_unionᵢ_subset + theorem BoxIntegral.Prepartition.le_ofWithBot + theorem BoxIntegral.Prepartition.le_of_mem + theorem BoxIntegral.Prepartition.lower_le_lower + theorem BoxIntegral.Prepartition.mem_boxes + theorem BoxIntegral.Prepartition.mem_bunionᵢ + theorem BoxIntegral.Prepartition.mem_bunionᵢIndex + theorem BoxIntegral.Prepartition.mem_disjUnion + theorem BoxIntegral.Prepartition.mem_filter + theorem BoxIntegral.Prepartition.mem_inf + theorem BoxIntegral.Prepartition.mem_mk + theorem BoxIntegral.Prepartition.mem_ofWithBot + theorem BoxIntegral.Prepartition.mem_restrict' + theorem BoxIntegral.Prepartition.mem_restrict + theorem BoxIntegral.Prepartition.mem_single + theorem BoxIntegral.Prepartition.mem_top + theorem BoxIntegral.Prepartition.mem_unionᵢ + theorem BoxIntegral.Prepartition.monotone_restrict + theorem BoxIntegral.Prepartition.not_mem_bot + def BoxIntegral.Prepartition.ofWithBot + theorem BoxIntegral.Prepartition.ofWithBot_le + theorem BoxIntegral.Prepartition.ofWithBot_mono + def BoxIntegral.Prepartition.restrict + theorem BoxIntegral.Prepartition.restrict_boxes_of_le + theorem BoxIntegral.Prepartition.restrict_bunionᵢ + theorem BoxIntegral.Prepartition.restrict_mono + theorem BoxIntegral.Prepartition.restrict_self + def BoxIntegral.Prepartition.single + theorem BoxIntegral.Prepartition.subset_unionᵢ + theorem BoxIntegral.Prepartition.sum_bunionᵢ_boxes + theorem BoxIntegral.Prepartition.sum_disj_union_boxes + theorem BoxIntegral.Prepartition.sum_fiberwise + theorem BoxIntegral.Prepartition.sum_ofWithBot + theorem BoxIntegral.Prepartition.top_boxes + theorem BoxIntegral.Prepartition.unionᵢ_bot + theorem BoxIntegral.Prepartition.unionᵢ_bunionᵢ + theorem BoxIntegral.Prepartition.unionᵢ_bunionᵢ_partition + theorem BoxIntegral.Prepartition.unionᵢ_def' + theorem BoxIntegral.Prepartition.unionᵢ_def + theorem BoxIntegral.Prepartition.unionᵢ_disjUnion + theorem BoxIntegral.Prepartition.unionᵢ_eq_empty + theorem BoxIntegral.Prepartition.unionᵢ_filter_not + theorem BoxIntegral.Prepartition.unionᵢ_inf + theorem BoxIntegral.Prepartition.unionᵢ_mono + theorem BoxIntegral.Prepartition.unionᵢ_ofWithBot + theorem BoxIntegral.Prepartition.unionᵢ_restrict + theorem BoxIntegral.Prepartition.unionᵢ_single + theorem BoxIntegral.Prepartition.unionᵢ_subset + theorem BoxIntegral.Prepartition.unionᵢ_top + theorem BoxIntegral.Prepartition.upper_le_upper + structure BoxIntegral.Prepartition 2023-04-25 20:39:42 262e026 feat: port Analysis.Convex.Join (#3633) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Analysis/Convex/Basic.lean + theorem Convex.exists_mem_add_smul_eq Modified Mathlib/Analysis/Convex/Hull.lean +/- theorem AffineMap.image_convexHull Added Mathlib/Analysis/Convex/Join.lean + theorem convexHull_insert + theorem convexHull_union + def convexJoin + theorem convexJoin_assoc + theorem convexJoin_assoc_aux + theorem convexJoin_comm + theorem convexJoin_convexJoin_convexJoin_comm + theorem convexJoin_empty_left + theorem convexJoin_empty_right + theorem convexJoin_left_comm + theorem convexJoin_mono + theorem convexJoin_mono_left + theorem convexJoin_mono_right + theorem convexJoin_right_comm + theorem convexJoin_segment_singleton + theorem convexJoin_segments + theorem convexJoin_singleton_left + theorem convexJoin_singleton_right + theorem convexJoin_singleton_segment + theorem convexJoin_singletons + theorem convexJoin_subset + theorem convexJoin_subset_convexHull + theorem convexJoin_union_left + theorem convexJoin_union_right + theorem convexJoin_unionᵢ_left + theorem convexJoin_unionᵢ_right + theorem mem_convexJoin + theorem segment_subset_convexJoin + theorem subset_convexJoin_left + theorem subset_convexJoin_right Modified Mathlib/Data/Set/Pointwise/SMul.lean + theorem Set.add_smul_subset 2023-04-25 17:50:27 a71a4a3 feat: port Analysis.NormedSpace.Star.Basic (#3650) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/NormedSpace/Star/Basic.lean + theorem CstarRing.mul_star_self_eq_zero_iff + theorem CstarRing.mul_star_self_ne_zero_iff + theorem CstarRing.nnnorm_self_mul_star + theorem CstarRing.nnnorm_star_mul_self + theorem CstarRing.norm_coe_unitary + theorem CstarRing.norm_coe_unitary_mul + theorem CstarRing.norm_mem_unitary_mul + theorem CstarRing.norm_mul_coe_unitary + theorem CstarRing.norm_mul_mem_unitary + theorem CstarRing.norm_of_mem_unitary + theorem CstarRing.norm_one + theorem CstarRing.norm_self_mul_star + theorem CstarRing.norm_star_mul_self' + theorem CstarRing.norm_unitary_smul + theorem CstarRing.star_mul_self_eq_zero_iff + theorem CstarRing.star_mul_self_ne_zero_iff + theorem IsSelfAdjoint.nnnorm_pow_two_pow + theorem coe_starₗᵢ + theorem nnnorm_star + theorem selfAdjoint.nnnorm_pow_two_pow + def starNormedAddGroupHom + theorem star_isometry + def starₗᵢ + theorem starₗᵢ_apply 2023-04-25 17:50:26 b7f71b0 fix: add missing `_root_` (#3630) Mathport doesn't understand this, and apparently nor do many of the humans fixing the errors it creates. If your `#align` statement complains the def doesn't exist, **don't change the #align**; work out why it doesn't exist instead. ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/Bilinear.lean + theorem Algebra.coe_lmul_eq_mul + def Algebra.lmul - theorem LinearMap.Algebra.coe_lmul_eq_mul - def LinearMap.Algebra.lmul - theorem LinearMap.NonUnitalAlgHom.coe_lmul_eq_mul - def LinearMap.NonUnitalAlgHom.lmul + theorem NonUnitalAlgHom.coe_lmul_eq_mul + def NonUnitalAlgHom.lmul Modified Mathlib/Algebra/Algebra/Operations.lean Modified Mathlib/Algebra/Algebra/Subalgebra/Tower.lean +/- theorem Algebra.lmul_algebraMap Modified Mathlib/Algebra/Algebra/Tower.lean + theorem AlgHom.comp_algebraMap_of_tower + theorem AlgHom.map_algebraMap - theorem IsScalarTower.AlgHom.comp_algebraMap_of_tower - theorem IsScalarTower.AlgHom.map_algebraMap Modified Mathlib/Algebra/Group/ULift.lean + def MulEquiv.ulift - def ULift.MulEquiv.ulift Modified Mathlib/Algebra/Group/Units.lean Modified Mathlib/Algebra/GroupPower/Lemmas.lean Modified Mathlib/Algebra/Hom/Equiv/Units/GroupWithZero.lean - theorem Equiv.mulLeft_bijective₀ - theorem Equiv.mulRight_bijective₀ + theorem mulLeft_bijective₀ + theorem mulRight_bijective₀ Modified Mathlib/Algebra/Hom/Iterate.lean Modified Mathlib/Algebra/Module/Pi.lean + theorem IsSMulRegular.pi - theorem Pi.IsSMulRegular.pi Modified Mathlib/Data/Matrix/Basic.lean Modified Mathlib/Data/Nat/Lattice.lean - theorem Nat.Set.Infinite.Nat.supₛ_eq_zero + theorem Set.Infinite.Nat.supₛ_eq_zero Modified Mathlib/Data/Nat/Periodic.lean + theorem Function.Periodic.map_mod_nat - theorem Nat.Function.Periodic.map_mod_nat Modified Mathlib/Data/Rat/Denumerable.lean Modified Mathlib/Logic/Encodable/Basic.lean - def Encodable.Unique.encodable + def Unique.encodable Modified Mathlib/Logic/Equiv/List.lean Modified Mathlib/Order/Ideal.lean + theorem IsCoatom.isMaximal + theorem IsCoatom.isProper - theorem Order.Ideal.IsCoatom.isMaximal - theorem Order.Ideal.IsCoatom.isProper Modified Mathlib/Order/LocallyFinite.lean Modified Mathlib/Order/Partition/Finpartition.lean - def Finpartition.IsAtom.uniqueFinpartition + def IsAtom.uniqueFinpartition Modified Mathlib/Order/SuccPred/Basic.lean + theorem Covby.pred_eq + theorem Covby.succ_eq - theorem Order.Covby.pred_eq - theorem Order.Covby.succ_eq - theorem Order.Wcovby.le_succ - theorem Order.Wcovby.pred_le + theorem Wcovby.le_succ + theorem Wcovby.pred_le Modified Mathlib/Order/SuccPred/Limit.lean Modified Mathlib/RingTheory/Ideal/Operations.lean Modified Mathlib/RingTheory/MvPolynomial/Symmetric.lean + theorem Finset.esymm_map_val - theorem Multiset.Finset.esymm_map_val Modified Mathlib/RingTheory/Polynomial/Vieta.lean Modified Mathlib/Topology/MetricSpace/Infsep.lean + theorem Finset.coe_infsep + theorem Finset.coe_infsep_of_offDiag_empty + theorem Finset.coe_infsep_of_offDiag_nonempty + theorem Finset.infsep_pos_iff_nontrivial + theorem Finset.infsep_zero_iff_subsingleton - theorem Set.Finset.coe_infsep - theorem Set.Finset.coe_infsep_of_offDiag_empty - theorem Set.Finset.coe_infsep_of_offDiag_nonempty - theorem Set.Finset.infsep_pos_iff_nontrivial - theorem Set.Finset.infsep_zero_iff_subsingleton 2023-04-25 15:53:42 1d021f5 feat: port Analysis.NormedSpace.ConformalLinearMap (#3648) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/NormedSpace/ConformalLinearMap.lean + theorem IsConformalMap.comp + theorem IsConformalMap.ne_zero + theorem IsConformalMap.smul + def IsConformalMap + theorem isConformalMap_const_smul + theorem isConformalMap_id + theorem isConformalMap_of_subsingleton 2023-04-25 15:53:41 d8af7b4 feat: port LinearAlgebra.Matrix.NonsingularInverse (#3647) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Group/Units.lean Modified Mathlib/Algebra/Invertible.lean Added Mathlib/LinearAlgebra/Matrix/NonsingularInverse.lean + theorem Matrix.coe_units_inv + theorem Matrix.conjTranspose_nonsing_inv + def Matrix.detInvertibleOfInvertible + def Matrix.detInvertibleOfLeftInverse + def Matrix.detInvertibleOfRightInverse + theorem Matrix.det_conj' + theorem Matrix.det_conj + theorem Matrix.det_invOf + theorem Matrix.det_ne_zero_of_left_inverse + theorem Matrix.det_ne_zero_of_right_inverse + theorem Matrix.det_nonsing_inv + theorem Matrix.det_nonsing_inv_mul_det + theorem Matrix.det_smul_inv_mulVec_eq_cramer + theorem Matrix.det_smul_inv_vecMul_eq_cramer_transpose + def Matrix.diagonalInvertible + def Matrix.diagonalInvertibleEquivInvertible + theorem Matrix.invOf_diagonal_eq + theorem Matrix.invOf_eq + theorem Matrix.invOf_eq_nonsing_inv + theorem Matrix.invOf_submatrix_equiv_eq + theorem Matrix.inv_adjugate + theorem Matrix.inv_def + theorem Matrix.inv_diagonal + theorem Matrix.inv_eq_left_inv + theorem Matrix.inv_eq_right_inv + theorem Matrix.inv_inj + theorem Matrix.inv_inv_inv + theorem Matrix.inv_inv_of_invertible + theorem Matrix.inv_mul_cancel_left_of_invertible + theorem Matrix.inv_mul_cancel_right_of_invertible + theorem Matrix.inv_mul_eq_iff_eq_mul_of_invertible + theorem Matrix.inv_mul_of_invertible + theorem Matrix.inv_reindex + theorem Matrix.inv_smul' + theorem Matrix.inv_smul + theorem Matrix.inv_submatrix_equiv + theorem Matrix.inv_zero + def Matrix.invertibleEquivDetInvertible + def Matrix.invertibleOfDetInvertible + def Matrix.invertibleOfDiagonalInvertible + def Matrix.invertibleOfInvertibleConjTranspose + def Matrix.invertibleOfInvertibleTranspose + def Matrix.invertibleOfLeftInverse + def Matrix.invertibleOfRightInverse + def Matrix.invertibleOfSubmatrixEquivInvertible + theorem Matrix.isUnit_det_of_invertible + theorem Matrix.isUnit_det_of_left_inverse + theorem Matrix.isUnit_det_of_right_inverse + theorem Matrix.isUnit_det_transpose + theorem Matrix.isUnit_diagonal + theorem Matrix.isUnit_iff_isUnit_det + theorem Matrix.isUnit_nonsing_inv_det + theorem Matrix.isUnit_nonsing_inv_det_iff + theorem Matrix.isUnit_of_left_inverse + theorem Matrix.isUnit_of_right_inverse + theorem Matrix.isUnit_submatrix_equiv + theorem Matrix.left_inv_eq_left_inv + theorem Matrix.list_prod_inv_reverse + theorem Matrix.mul_eq_one_comm + theorem Matrix.mul_inv_cancel_left_of_invertible + theorem Matrix.mul_inv_cancel_right_of_invertible + theorem Matrix.mul_inv_eq_iff_eq_mul_of_invertible + theorem Matrix.mul_inv_of_invertible + theorem Matrix.mul_inv_rev + theorem Matrix.mul_nonsing_inv + theorem Matrix.mul_nonsing_inv_cancel_left + theorem Matrix.mul_nonsing_inv_cancel_right + theorem Matrix.nonsing_inv_apply + theorem Matrix.nonsing_inv_apply_not_isUnit + theorem Matrix.nonsing_inv_cancel_or_zero + theorem Matrix.nonsing_inv_eq_ring_inverse + theorem Matrix.nonsing_inv_mul + theorem Matrix.nonsing_inv_mul_cancel_left + theorem Matrix.nonsing_inv_mul_cancel_right + theorem Matrix.nonsing_inv_nonsing_inv + theorem Matrix.right_inv_eq_left_inv + theorem Matrix.right_inv_eq_right_inv + def Matrix.submatrixEquivInvertible + def Matrix.submatrixEquivInvertibleEquivInvertible + theorem Matrix.transpose_nonsing_inv + def Matrix.unitOfDetInvertible + theorem Matrix.unitOfDetInvertible_eq_nonsingInvUnit 2023-04-25 15:37:40 43df90a feat: port Algebra.Category.Module.Tannaka (#3645) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Category/ModuleCat/Tannaka.lean + def ringEquivEndForget₂ 2023-04-25 11:43:00 b4f2cf6 feat: port Analysis.Convex.Independent (#3641) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/Convex/Independent.lean + theorem Convex.convexIndependent_extremePoints + theorem ConvexIndependent.comp_embedding + def ConvexIndependent + theorem Function.Injective.convexIndependent_iff_set + theorem Subsingleton.convexIndependent + theorem convexIndependent_iff_finset + theorem convexIndependent_iff_not_mem_convexHull_diff + theorem convexIndependent_set_iff_inter_convexHull_subset + theorem convexIndependent_set_iff_not_mem_convexHull_diff 2023-04-25 11:42:58 2b42dc7 chore: fix #align lines (#3640) This PR fixes two things: * Most `align` statements for definitions and theorems and instances that are separated by two newlines from the relevant declaration (`s/\n\n#align/\n#align`). This is often seen in the mathport output after ending `calc` blocks. * **All** remaining more-than-one-line `#align` statements. (This was needed for a script I wrote for #3630.) ESTIMATED CHANGES Modified Mathlib/Algebra/AddTorsor.lean Modified Mathlib/Algebra/Algebra/Basic.lean Modified Mathlib/Algebra/Algebra/Operations.lean Modified Mathlib/Algebra/Associated.lean Modified Mathlib/Algebra/BigOperators/Basic.lean Modified Mathlib/Algebra/BigOperators/Finprod.lean Modified Mathlib/Algebra/BigOperators/Finsupp.lean Modified Mathlib/Algebra/BigOperators/Order.lean Modified Mathlib/Algebra/CharP/Basic.lean Modified Mathlib/Algebra/CharZero/Quotient.lean Modified Mathlib/Algebra/DirectSum/Basic.lean Modified Mathlib/Algebra/Field/Defs.lean Modified Mathlib/Algebra/GCDMonoid/Basic.lean Modified Mathlib/Algebra/GeomSum.lean Modified Mathlib/Algebra/Group/Basic.lean Modified Mathlib/Algebra/Group/Opposite.lean Modified Mathlib/Algebra/Group/Units.lean Modified Mathlib/Algebra/GroupPower/Lemmas.lean Modified Mathlib/Algebra/GroupPower/Order.lean Modified Mathlib/Algebra/GroupWithZero/Units/Basic.lean Modified Mathlib/Algebra/Hom/Equiv/Basic.lean Modified Mathlib/Algebra/Hom/Freiman.lean Modified Mathlib/Algebra/Hom/Group.lean Modified Mathlib/Algebra/Homology/Homotopy.lean Modified Mathlib/Algebra/Invertible.lean Modified Mathlib/Algebra/Module/Basic.lean Modified Mathlib/Algebra/Module/Submodule/Basic.lean Modified Mathlib/Algebra/MonoidAlgebra/Basic.lean Modified Mathlib/Algebra/Order/Field/Power.lean Modified Mathlib/Algebra/Order/Group/Abs.lean Modified Mathlib/Algebra/Order/Group/MinMax.lean Modified Mathlib/Algebra/Order/Hom/Ring.lean Modified Mathlib/Algebra/Order/LatticeGroup.lean Modified Mathlib/Algebra/Order/Monoid/Canonical/Defs.lean Modified Mathlib/Algebra/Order/Monoid/WithTop.lean Modified Mathlib/Algebra/Order/Ring/Defs.lean Modified Mathlib/Algebra/Order/Sub/Defs.lean Modified Mathlib/Algebra/PEmptyInstances.lean Modified Mathlib/Algebra/Polynomial/BigOperators.lean Modified Mathlib/Algebra/Ring/Defs.lean Modified Mathlib/Algebra/Ring/Opposite.lean Modified Mathlib/Algebra/RingQuot.lean Modified Mathlib/Algebra/SMulWithZero.lean Modified Mathlib/Algebra/Star/Unitary.lean +/- def unitary Modified Mathlib/Algebra/Support.lean Modified Mathlib/AlgebraicTopology/CechNerve.lean Modified Mathlib/AlgebraicTopology/DoldKan/Compatibility.lean Modified Mathlib/Analysis/Asymptotics/Asymptotics.lean Modified Mathlib/Analysis/Asymptotics/SuperpolynomialDecay.lean Modified Mathlib/Analysis/Convex/Basic.lean Modified Mathlib/Analysis/Convex/Extrema.lean Modified Mathlib/Analysis/Convex/Function.lean Modified Mathlib/Analysis/Convex/Segment.lean Modified Mathlib/Analysis/Convex/Star.lean Modified Mathlib/Analysis/LocallyConvex/Basic.lean Modified Mathlib/Analysis/Normed/Group/Basic.lean Modified Mathlib/Analysis/Normed/Group/Hom.lean Modified Mathlib/Analysis/Normed/Group/InfiniteSum.lean Modified Mathlib/Analysis/Normed/Order/Lattice.lean Modified Mathlib/Analysis/NormedSpace/ContinuousLinearMap.lean Modified Mathlib/Analysis/NormedSpace/Extr.lean Modified Mathlib/Analysis/NormedSpace/MStructure.lean Modified Mathlib/Analysis/NormedSpace/RieszLemma.lean Modified Mathlib/Analysis/SpecificLimits/Basic.lean Modified Mathlib/CategoryTheory/Abelian/Basic.lean Modified Mathlib/CategoryTheory/Abelian/NonPreadditive.lean Modified Mathlib/CategoryTheory/Adjunction/Mates.lean Modified Mathlib/CategoryTheory/Adjunction/Opposites.lean Modified Mathlib/CategoryTheory/Bicategory/Basic.lean Modified Mathlib/CategoryTheory/Bicategory/Functor.lean Modified Mathlib/CategoryTheory/Bicategory/Strict.lean Modified Mathlib/CategoryTheory/Elements.lean Modified Mathlib/CategoryTheory/Functor/EpiMono.lean Modified Mathlib/CategoryTheory/Groupoid/Basic.lean Modified Mathlib/CategoryTheory/Iso.lean Modified Mathlib/CategoryTheory/Limits/Comma.lean Modified Mathlib/CategoryTheory/Limits/ConeCategory.lean Modified Mathlib/CategoryTheory/Limits/Constructions/LimitsOfProductsAndEqualizers.lean Modified Mathlib/CategoryTheory/Limits/Lattice.lean Modified Mathlib/CategoryTheory/Limits/Opposites.lean Modified Mathlib/CategoryTheory/Limits/Preserves/Basic.lean Modified Mathlib/CategoryTheory/Limits/Presheaf.lean Modified Mathlib/CategoryTheory/Limits/Shapes/CommSq.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Images.lean Modified Mathlib/CategoryTheory/Limits/Shapes/ZeroMorphisms.lean Modified Mathlib/CategoryTheory/Monoidal/Category.lean Modified Mathlib/CategoryTheory/Over.lean Modified Mathlib/CategoryTheory/Subobject/Lattice.lean Modified Mathlib/Combinatorics/Composition.lean Modified Mathlib/Combinatorics/DoubleCounting.lean Modified Mathlib/Combinatorics/HalesJewett.lean Modified Mathlib/Combinatorics/Hall/Finite.lean Modified Mathlib/Combinatorics/Pigeonhole.lean Modified Mathlib/Combinatorics/Quiver/SingleObj.lean Modified Mathlib/Combinatorics/Quiver/Symmetric.lean Modified Mathlib/Combinatorics/SetFamily/Compression/UV.lean Modified Mathlib/Combinatorics/SetFamily/HarrisKleitman.lean Modified Mathlib/Combinatorics/SetFamily/LYM.lean Modified Mathlib/Combinatorics/SimpleGraph/Regularity/Energy.lean Modified Mathlib/Control/Applicative.lean Modified Mathlib/Control/Basic.lean Modified Mathlib/Control/Fold.lean Modified Mathlib/Control/Traversable/Basic.lean Modified Mathlib/Control/ULift.lean Modified Mathlib/Data/Complex/Basic.lean Modified Mathlib/Data/Complex/Exponential.lean Modified Mathlib/Data/Dfinsupp/Basic.lean Modified Mathlib/Data/Finmap.lean Modified Mathlib/Data/Finset/Basic.lean Modified Mathlib/Data/Finset/Card.lean Modified Mathlib/Data/Finset/Image.lean Modified Mathlib/Data/Finset/NoncommProd.lean Modified Mathlib/Data/Finset/Preimage.lean Modified Mathlib/Data/Finset/Sort.lean Modified Mathlib/Data/Finset/Sym.lean Modified Mathlib/Data/Finsupp/Basic.lean Modified Mathlib/Data/Finsupp/BigOperators.lean Modified Mathlib/Data/Finsupp/Interval.lean Modified Mathlib/Data/Finsupp/Multiset.lean Modified Mathlib/Data/Fintype/BigOperators.lean Modified Mathlib/Data/Fintype/Card.lean Modified Mathlib/Data/Fintype/Sort.lean Modified Mathlib/Data/Int/ModEq.lean Modified Mathlib/Data/Int/Range.lean Modified Mathlib/Data/LazyList.lean Modified Mathlib/Data/List/Basic.lean Modified Mathlib/Data/List/BigOperators/Basic.lean Modified Mathlib/Data/List/Count.lean Modified Mathlib/Data/List/Dedup.lean Modified Mathlib/Data/List/Forall2.lean Modified Mathlib/Data/List/Func.lean Modified Mathlib/Data/List/Infix.lean Modified Mathlib/Data/List/Lattice.lean Modified Mathlib/Data/List/NodupEquivFin.lean Modified Mathlib/Data/List/Perm.lean Modified Mathlib/Data/List/Rdrop.lean Modified Mathlib/Data/List/Rotate.lean Modified Mathlib/Data/List/Sort.lean Modified Mathlib/Data/List/Sublists.lean Modified Mathlib/Data/Multiset/Basic.lean Modified Mathlib/Data/Multiset/Nodup.lean Modified Mathlib/Data/Multiset/Sections.lean Modified Mathlib/Data/MvPolynomial/CommRing.lean Modified Mathlib/Data/MvPolynomial/Variables.lean Modified Mathlib/Data/Nat/Basic.lean Modified Mathlib/Data/Nat/Cast/Field.lean Modified Mathlib/Data/Nat/Choose/Basic.lean Modified Mathlib/Data/Nat/Choose/Central.lean Modified Mathlib/Data/Nat/Dist.lean Modified Mathlib/Data/Nat/Factors.lean Modified Mathlib/Data/Nat/Fib.lean +/- theorem Nat.fast_fib_aux_eq +/- theorem Nat.fib_add +/- theorem Nat.fib_add_two_strictMono +/- theorem Nat.fib_coprime_fib_succ +/- theorem Nat.fib_lt_fib_succ +/- theorem Nat.fib_succ_eq_succ_sum +/- theorem Nat.fib_two_mul +/- theorem Nat.fib_two_mul_add_one +/- theorem Nat.le_fib_self Modified Mathlib/Data/Nat/Log.lean Modified Mathlib/Data/Nat/ModEq.lean Modified Mathlib/Data/Nat/Multiplicity.lean Modified Mathlib/Data/Nat/Order/Basic.lean Modified Mathlib/Data/Nat/PSub.lean Modified Mathlib/Data/Nat/Parity.lean Modified Mathlib/Data/Nat/Pow.lean Modified Mathlib/Data/Nat/Prime.lean Modified Mathlib/Data/Nat/Totient.lean Modified Mathlib/Data/Option/Basic.lean Modified Mathlib/Data/Option/Defs.lean Modified Mathlib/Data/PNat/Basic.lean Modified Mathlib/Data/PNat/Defs.lean Modified Mathlib/Data/Pi/Algebra.lean Modified Mathlib/Data/Polynomial/Degree/Definitions.lean Modified Mathlib/Data/Polynomial/Eval.lean Modified Mathlib/Data/Polynomial/Module.lean Modified Mathlib/Data/Polynomial/Reverse.lean Modified Mathlib/Data/Prod/Lex.lean Modified Mathlib/Data/QPF/Multivariate/Constructions/Fix.lean Modified Mathlib/Data/Rat/Cast.lean Modified Mathlib/Data/Rat/Defs.lean Modified Mathlib/Data/Rat/Lemmas.lean Modified Mathlib/Data/Real/CauSeq.lean Modified Mathlib/Data/Real/NNReal.lean Modified Mathlib/Data/Set/Basic.lean Modified Mathlib/Data/Set/Finite.lean Modified Mathlib/Data/Set/Function.lean Modified Mathlib/Data/Set/Intervals/Basic.lean Modified Mathlib/Data/Set/Intervals/Instances.lean Modified Mathlib/Data/Set/Intervals/OrdConnectedComponent.lean Modified Mathlib/Data/Set/Intervals/Pi.lean Modified Mathlib/Data/Set/Pointwise/Interval.lean Modified Mathlib/Data/Set/Prod.lean Modified Mathlib/Data/Sigma/Lex.lean Modified Mathlib/Data/Sigma/Order.lean Modified Mathlib/Data/Stream/Init.lean Modified Mathlib/Data/Sum/Basic.lean Modified Mathlib/Data/TypeVec.lean Modified Mathlib/Data/W/Cardinal.lean Modified Mathlib/Data/ZMod/Basic.lean Modified Mathlib/Deprecated/Ring.lean Modified Mathlib/Dynamics/FixedPoints/Basic.lean Modified Mathlib/Dynamics/OmegaLimit.lean Modified Mathlib/GroupTheory/CommutingProbability.lean Modified Mathlib/GroupTheory/Coset.lean Modified Mathlib/GroupTheory/EckmannHilton.lean Modified Mathlib/GroupTheory/FreeGroup.lean Modified Mathlib/GroupTheory/GroupAction/Basic.lean Modified Mathlib/GroupTheory/GroupAction/Quotient.lean Modified Mathlib/GroupTheory/MonoidLocalization.lean Modified Mathlib/GroupTheory/NoncommPiCoprod.lean Modified Mathlib/GroupTheory/Perm/Sign.lean Modified Mathlib/GroupTheory/Perm/Support.lean Modified Mathlib/GroupTheory/QuotientGroup.lean Modified Mathlib/GroupTheory/Subgroup/Basic.lean Modified Mathlib/GroupTheory/Submonoid/Membership.lean Modified Mathlib/Init/Data/Bool/Basic.lean Modified Mathlib/Init/Data/Nat/Basic.lean Modified Mathlib/Init/Data/Nat/Bitwise.lean Modified Mathlib/Init/Data/Quot.lean Modified Mathlib/LinearAlgebra/AffineSpace/AffineMap.lean Modified Mathlib/LinearAlgebra/AffineSpace/Basis.lean Modified Mathlib/LinearAlgebra/AffineSpace/Midpoint.lean Modified Mathlib/LinearAlgebra/Basic.lean Modified Mathlib/LinearAlgebra/Basis.lean Modified Mathlib/LinearAlgebra/Dimension.lean Modified Mathlib/LinearAlgebra/FinsuppVectorSpace.lean Modified Mathlib/LinearAlgebra/FreeAlgebra.lean Modified Mathlib/LinearAlgebra/GeneralLinearGroup.lean Modified Mathlib/LinearAlgebra/Matrix/Adjugate.lean Modified Mathlib/LinearAlgebra/Matrix/Determinant.lean Modified Mathlib/LinearAlgebra/Quotient.lean Modified Mathlib/LinearAlgebra/Ray.lean Modified Mathlib/LinearAlgebra/Span.lean Modified Mathlib/Logic/Denumerable.lean Modified Mathlib/Logic/Equiv/Basic.lean Modified Mathlib/Logic/Equiv/Fin.lean Modified Mathlib/Logic/Equiv/List.lean Modified Mathlib/Logic/Equiv/Option.lean Modified Mathlib/Logic/Equiv/Set.lean Modified Mathlib/Logic/Function/Basic.lean Modified Mathlib/Logic/Relation.lean Modified Mathlib/Logic/Unique.lean Modified Mathlib/ModelTheory/Basic.lean Modified Mathlib/NumberTheory/ADEInequality.lean Modified Mathlib/NumberTheory/Divisors.lean Modified Mathlib/NumberTheory/LucasPrimality.lean Modified Mathlib/NumberTheory/PellMatiyasevic.lean Modified Mathlib/NumberTheory/PythagoreanTriples.lean Modified Mathlib/NumberTheory/Zsqrtd/Basic.lean Modified Mathlib/Order/Atoms.lean Modified Mathlib/Order/BooleanAlgebra.lean Modified Mathlib/Order/BoundedOrder.lean Modified Mathlib/Order/Bounds/Basic.lean Modified Mathlib/Order/Chain.lean Modified Mathlib/Order/CompleteLattice.lean Modified Mathlib/Order/Copy.lean Modified Mathlib/Order/Disjoint.lean Modified Mathlib/Order/Filter/AtTopBot.lean Modified Mathlib/Order/Filter/Basic.lean Modified Mathlib/Order/Filter/Lift.lean Modified Mathlib/Order/Filter/Pi.lean Modified Mathlib/Order/Filter/Prod.lean Modified Mathlib/Order/Filter/SmallSets.lean Modified Mathlib/Order/Filter/Ultrafilter.lean Modified Mathlib/Order/FixedPoints.lean Modified Mathlib/Order/GaloisConnection.lean Modified Mathlib/Order/Heyting/Basic.lean Modified Mathlib/Order/Hom/CompleteLattice.lean Modified Mathlib/Order/Hom/Lattice.lean Modified Mathlib/Order/Hom/Order.lean Modified Mathlib/Order/Ideal.lean Modified Mathlib/Order/JordanHolder.lean Modified Mathlib/Order/Lattice.lean Modified Mathlib/Order/LiminfLimsup.lean Modified Mathlib/Order/MinMax.lean Modified Mathlib/Order/ModularLattice.lean Modified Mathlib/Order/Monotone/Basic.lean Modified Mathlib/Order/OmegaCompletePartialOrder.lean Modified Mathlib/Order/OrdContinuous.lean Modified Mathlib/Order/PFilter.lean Modified Mathlib/Order/Partition/Equipartition.lean Modified Mathlib/Order/PropInstances.lean Modified Mathlib/Order/SupIndep.lean Modified Mathlib/RingTheory/Ideal/Basic.lean Modified Mathlib/RingTheory/Ideal/Operations.lean Modified Mathlib/RingTheory/Localization/Basic.lean Modified Mathlib/RingTheory/Localization/Ideal.lean Modified Mathlib/RingTheory/MvPolynomial/Symmetric.lean Modified Mathlib/RingTheory/NonZeroDivisors.lean Modified Mathlib/RingTheory/OreLocalization/Basic.lean Modified Mathlib/RingTheory/Polynomial/Eisenstein/Basic.lean Modified Mathlib/RingTheory/Subsemiring/Basic.lean Modified Mathlib/RingTheory/Valuation/Basic.lean Modified Mathlib/RingTheory/Valuation/Quotient.lean Modified Mathlib/SetTheory/Cardinal/Basic.lean Modified Mathlib/SetTheory/Cardinal/Ordinal.lean Modified Mathlib/SetTheory/Ordinal/Arithmetic.lean Modified Mathlib/SetTheory/Ordinal/Basic.lean Modified Mathlib/Topology/Algebra/Group/Basic.lean Modified Mathlib/Topology/Algebra/InfiniteSum/Basic.lean Modified Mathlib/Topology/Algebra/Order/LeftRightLim.lean Modified Mathlib/Topology/Basic.lean Modified Mathlib/Topology/DenseEmbedding.lean Modified Mathlib/Topology/List.lean Modified Mathlib/Topology/Maps.lean Modified Mathlib/Topology/MetricSpace/Equicontinuity.lean Modified Mathlib/Topology/MetricSpace/Lipschitz.lean Modified Mathlib/Topology/PathConnected.lean Modified Mathlib/Topology/Semicontinuous.lean Modified Mathlib/Topology/Separation.lean Modified Mathlib/Topology/UniformSpace/UniformConvergenceTopology.lean 2023-04-25 11:42:57 6b5a615 feat: port Analysis.Convex.Caratheodory (#3639) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/Convex/Caratheodory.lean + theorem Caratheodory.affineIndependent_minCardFinsetOfMemConvexHull + theorem Caratheodory.mem_convexHull_erase + theorem Caratheodory.mem_minCardFinsetOfMemConvexHull + theorem Caratheodory.minCardFinsetOfMemConvexHull_card_le_card + theorem Caratheodory.minCardFinsetOfMemConvexHull_nonempty + theorem Caratheodory.minCardFinsetOfMemConvexHull_subseteq + theorem convexHull_eq_union + theorem eq_pos_convex_span_of_mem_convexHull 2023-04-25 11:42:56 234b9c1 feat: port CategoryTheory.Adjunction.AdjointFunctorTheorems (#3628) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Adjunction/AdjointFunctorTheorems.lean + theorem CategoryTheory.Limits.hasColimits_of_hasLimits_of_isCoseparating + theorem CategoryTheory.Limits.hasLimits_of_hasColimits_of_isSeparating + def CategoryTheory.SolutionSetCondition + theorem CategoryTheory.solutionSetCondition_of_isRightAdjoint 2023-04-25 11:42:55 6653563 feat: port LinearAlgebra.FiniteDimensional (#3466) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/LinearAlgebra/FiniteDimensional.lean + theorem CompleteLattice.Independent.subtype_ne_bot_le_finrank + theorem CompleteLattice.Independent.subtype_ne_bot_le_finrank_aux + theorem FiniteDimensional.basisSingleton_apply + theorem FiniteDimensional.basisUnique.repr_eq_zero_iff + theorem FiniteDimensional.cardinal_mk_le_finrank_of_linearIndependent + theorem FiniteDimensional.eq_of_le_of_finrank_eq + theorem FiniteDimensional.eq_of_le_of_finrank_le + theorem FiniteDimensional.eq_top_of_finrank_eq + theorem FiniteDimensional.exists_nontrivial_relation_of_rank_lt_card + theorem FiniteDimensional.exists_nontrivial_relation_sum_zero_of_rank_succ_lt_card + theorem FiniteDimensional.exists_relation_sum_zero_pos_coefficient_of_rank_succ_lt_card + theorem FiniteDimensional.fact_finiteDimensional_of_finrank_eq_succ + theorem FiniteDimensional.finiteDimensional_iff_of_rank_eq_nsmul + theorem FiniteDimensional.finiteDimensional_of_finrank + theorem FiniteDimensional.finiteDimensional_of_finrank_eq_succ + theorem FiniteDimensional.finite_of_finite + theorem FiniteDimensional.finrank_eq_card_basis' + theorem FiniteDimensional.finrank_eq_rank' + theorem FiniteDimensional.finrank_of_infinite_dimensional + theorem FiniteDimensional.finrank_pos + theorem FiniteDimensional.finrank_pos_iff + theorem FiniteDimensional.finrank_pos_iff_exists_ne_zero + theorem FiniteDimensional.finrank_zero_iff + theorem FiniteDimensional.finset_card_le_finrank_of_linearIndependent + theorem FiniteDimensional.fintype_card_le_finrank_of_linearIndependent + theorem FiniteDimensional.lt_aleph0_of_linearIndependent + theorem FiniteDimensional.not_linearIndependent_of_infinite + theorem FiniteDimensional.of_finite_basis + theorem FiniteDimensional.of_fintype_basis + theorem FiniteDimensional.of_injective + theorem FiniteDimensional.of_surjective + theorem FiniteDimensional.range_basisSingleton + theorem FiniteDimensional.span_of_finite + def FiniteDimensional + theorem LinearEquiv.coe_ofInjectiveEndo + theorem LinearEquiv.ofInjectiveEndo_left_inv + theorem LinearEquiv.ofInjectiveEndo_right_inv + theorem LinearIndependent.finite + theorem LinearMap.comp_eq_id_comm + theorem LinearMap.finiteDimensional_of_surjective + theorem LinearMap.finrank_range_add_finrank_ker + theorem LinearMap.injective_iff_surjective + theorem LinearMap.injective_iff_surjective_of_finrank_eq_finrank + theorem LinearMap.isUnit_iff_ker_eq_bot + theorem LinearMap.isUnit_iff_range_eq_top + theorem LinearMap.ker_eq_bot_iff_range_eq_top + theorem LinearMap.ker_eq_bot_iff_range_eq_top_of_finrank_eq_finrank + theorem LinearMap.linearEquivOfInjective_apply + theorem LinearMap.mul_eq_one_comm + theorem LinearMap.mul_eq_one_of_mul_eq_one + theorem LinearMap.surjective_of_injective + theorem Module.End.exists_ker_pow_eq_ker_pow_succ + theorem Module.End.ker_pow_constant + theorem Module.End.ker_pow_eq_ker_pow_finrank_of_le + theorem Module.End.ker_pow_le_ker_pow_finrank + theorem Module.finrank_le_one_iff_top_isPrincipal + theorem Set.finrank_mono + theorem Subalgebra.bot_eq_top_iff_finrank_eq_one + theorem Subalgebra.bot_eq_top_iff_rank_eq_one + theorem Subalgebra.eq_bot_of_finrank_one + theorem Subalgebra.eq_bot_of_rank_le_one + theorem Subalgebra.finiteDimensional_toSubmodule + theorem Subalgebra.finrank_eq_one_iff + theorem Subalgebra.isSimpleOrder_of_finrank + theorem Subalgebra.rank_eq_one_iff + theorem Submodule.eq_top_of_disjoint + theorem Submodule.eq_top_of_finrank_eq + theorem Submodule.fg_iff_finiteDimensional + theorem Submodule.finiteDimensional_of_le + theorem Submodule.finrank_add_eq_of_isCompl + theorem Submodule.finrank_add_le_finrank_add_finrank + theorem Submodule.finrank_le_one_iff_isPrincipal + theorem Submodule.finrank_lt + theorem Submodule.finrank_lt_finrank_of_lt + theorem Submodule.finrank_mono + theorem Submodule.finrank_quotient_add_finrank + theorem Submodule.finrank_strictMono + theorem Submodule.finrank_sup_add_finrank_inf_eq + theorem bot_eq_top_of_rank_eq_zero + theorem cardinal_lt_aleph0_of_finiteDimensional + theorem cardinal_mk_eq_cardinal_mk_field_pow_rank + theorem coe_basisOfLinearIndependentOfCardEqFinrank + theorem coe_finsetBasisOfLinearIndependentOfCardEqFinrank + theorem coe_setBasisOfLinearIndependentOfCardEqFinrank + theorem finiteDimensional_of_rank_eq_nat + theorem finiteDimensional_of_rank_eq_one + theorem finiteDimensional_of_rank_eq_zero + theorem finrank_eq_one_iff' + theorem finrank_eq_one_iff + theorem finrank_eq_one_iff_of_nonzero' + theorem finrank_eq_one_iff_of_nonzero + theorem finrank_eq_zero + theorem finrank_eq_zero_of_rank_eq_zero + theorem finrank_le_one_iff + theorem finrank_span_singleton + theorem finrank_zero_iff_forall_zero + theorem is_simple_module_of_finrank_eq_one + theorem rank_eq_zero + theorem span_eq_top_of_linearIndependent_of_card_eq_finrank + theorem surjective_of_nonzero_of_finrank_eq_one Modified Mathlib/Tactic.lean 2023-04-25 11:42:53 5521248 feat: port Analysis.NormedSpace.LinearIsometry (#3289) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/NormedSpace/LinearIsometry.lean + theorem Basis.ext_linearIsometry + theorem Basis.ext_linearIsometryEquiv + def LinearIsometry.Simps.apply + theorem LinearIsometry.coe_comp + theorem LinearIsometry.coe_id + theorem LinearIsometry.coe_injective + theorem LinearIsometry.coe_mk + theorem LinearIsometry.coe_mul + theorem LinearIsometry.coe_one + theorem LinearIsometry.coe_toContinuousLinearMap + theorem LinearIsometry.coe_toLinearMap + def LinearIsometry.comp + theorem LinearIsometry.comp_assoc + theorem LinearIsometry.comp_continuous_iff + theorem LinearIsometry.comp_id + theorem LinearIsometry.diam_image + theorem LinearIsometry.diam_range + theorem LinearIsometry.dist_map + theorem LinearIsometry.ediam_image + theorem LinearIsometry.ediam_range + theorem LinearIsometry.edist_map + theorem LinearIsometry.ext + def LinearIsometry.id + theorem LinearIsometry.id_apply + theorem LinearIsometry.id_comp + theorem LinearIsometry.id_toContinuousLinearMap + theorem LinearIsometry.id_toLinearMap + theorem LinearIsometry.isComplete_image_iff + theorem LinearIsometry.isComplete_map_iff' + theorem LinearIsometry.isComplete_map_iff + theorem LinearIsometry.map_eq_iff + theorem LinearIsometry.map_ne + theorem LinearIsometry.mul_def + theorem LinearIsometry.nnnorm_map + theorem LinearIsometry.norm_map + theorem LinearIsometry.one_def + theorem LinearIsometry.preimage_ball + theorem LinearIsometry.preimage_closedBall + theorem LinearIsometry.preimage_sphere + def LinearIsometry.toContinuousLinearMap + theorem LinearIsometry.toContinuousLinearMap_inj + theorem LinearIsometry.toContinuousLinearMap_injective + theorem LinearIsometry.toLinearMap_inj + theorem LinearIsometry.toLinearMap_injective + structure LinearIsometry + def LinearIsometryEquiv.Simps.apply + def LinearIsometryEquiv.Simps.symm_apply + theorem LinearIsometryEquiv.apply_symm_apply + theorem LinearIsometryEquiv.coe_coe'' + theorem LinearIsometryEquiv.coe_coe + theorem LinearIsometryEquiv.coe_injective + theorem LinearIsometryEquiv.coe_inv + theorem LinearIsometryEquiv.coe_mk + theorem LinearIsometryEquiv.coe_mul + theorem LinearIsometryEquiv.coe_neg + theorem LinearIsometryEquiv.coe_ofEq_apply + theorem LinearIsometryEquiv.coe_ofLinearIsometry + theorem LinearIsometryEquiv.coe_ofLinearIsometry_symm + theorem LinearIsometryEquiv.coe_ofSurjective + theorem LinearIsometryEquiv.coe_one + theorem LinearIsometryEquiv.coe_prodAssoc + theorem LinearIsometryEquiv.coe_prodAssoc_symm + theorem LinearIsometryEquiv.coe_refl + theorem LinearIsometryEquiv.coe_symm_trans + theorem LinearIsometryEquiv.coe_toContinuousLinearEquiv + theorem LinearIsometryEquiv.coe_toHomeomorph + theorem LinearIsometryEquiv.coe_toIsometryEquiv + theorem LinearIsometryEquiv.coe_toLinearEquiv + theorem LinearIsometryEquiv.coe_toLinearIsometry + theorem LinearIsometryEquiv.coe_trans + theorem LinearIsometryEquiv.comp_continuousOn_iff + theorem LinearIsometryEquiv.comp_continuous_iff + theorem LinearIsometryEquiv.diam_image + theorem LinearIsometryEquiv.dist_map + theorem LinearIsometryEquiv.ediam_image + theorem LinearIsometryEquiv.edist_map + theorem LinearIsometryEquiv.ext + theorem LinearIsometryEquiv.image_ball + theorem LinearIsometryEquiv.image_closedBall + theorem LinearIsometryEquiv.image_eq_preimage + theorem LinearIsometryEquiv.image_sphere + theorem LinearIsometryEquiv.inv_def + theorem LinearIsometryEquiv.map_add + theorem LinearIsometryEquiv.map_eq_iff + theorem LinearIsometryEquiv.map_eq_zero_iff + theorem LinearIsometryEquiv.map_ne + theorem LinearIsometryEquiv.map_smul + theorem LinearIsometryEquiv.map_smulₛₗ + theorem LinearIsometryEquiv.map_sub + theorem LinearIsometryEquiv.map_zero + theorem LinearIsometryEquiv.mul_def + theorem LinearIsometryEquiv.mul_refl + def LinearIsometryEquiv.neg + theorem LinearIsometryEquiv.nnnorm_map + theorem LinearIsometryEquiv.norm_map + def LinearIsometryEquiv.ofBounds + def LinearIsometryEquiv.ofEq + theorem LinearIsometryEquiv.ofEq_rfl + theorem LinearIsometryEquiv.ofEq_symm + def LinearIsometryEquiv.ofLinearIsometry + def LinearIsometryEquiv.ofTop + theorem LinearIsometryEquiv.one_def + theorem LinearIsometryEquiv.one_trans + theorem LinearIsometryEquiv.preimage_ball + theorem LinearIsometryEquiv.preimage_closedBall + theorem LinearIsometryEquiv.preimage_sphere + def LinearIsometryEquiv.prodAssoc + theorem LinearIsometryEquiv.range_eq_univ + def LinearIsometryEquiv.refl + theorem LinearIsometryEquiv.refl_mul + theorem LinearIsometryEquiv.refl_trans + theorem LinearIsometryEquiv.self_comp_symm + theorem LinearIsometryEquiv.self_trans_symm + def LinearIsometryEquiv.symm + theorem LinearIsometryEquiv.symm_apply_apply + theorem LinearIsometryEquiv.symm_comp_self + theorem LinearIsometryEquiv.symm_neg + theorem LinearIsometryEquiv.symm_symm + theorem LinearIsometryEquiv.symm_trans + theorem LinearIsometryEquiv.symm_trans_self + def LinearIsometryEquiv.toContinuousLinearEquiv + theorem LinearIsometryEquiv.toContinuousLinearEquiv_inj + theorem LinearIsometryEquiv.toContinuousLinearEquiv_injective + def LinearIsometryEquiv.toHomeomorph + theorem LinearIsometryEquiv.toHomeomorph_inj + theorem LinearIsometryEquiv.toHomeomorph_injective + theorem LinearIsometryEquiv.toHomeomorph_symm + def LinearIsometryEquiv.toIsometryEquiv + theorem LinearIsometryEquiv.toIsometryEquiv_inj + theorem LinearIsometryEquiv.toIsometryEquiv_injective + theorem LinearIsometryEquiv.toIsometryEquiv_symm + theorem LinearIsometryEquiv.toLinearEquiv_inj + theorem LinearIsometryEquiv.toLinearEquiv_injective + theorem LinearIsometryEquiv.toLinearEquiv_symm + theorem LinearIsometryEquiv.toLinearEquiv_trans + def LinearIsometryEquiv.toLinearIsometry + theorem LinearIsometryEquiv.toLinearIsometry_inj + theorem LinearIsometryEquiv.toLinearIsometry_injective + def LinearIsometryEquiv.trans + theorem LinearIsometryEquiv.trans_apply + theorem LinearIsometryEquiv.trans_assoc + theorem LinearIsometryEquiv.trans_one + theorem LinearIsometryEquiv.trans_refl + def LinearIsometryEquiv.ulift + structure LinearIsometryEquiv + def LinearMap.toLinearIsometry + theorem SemilinearIsometryClass.diam_image + theorem SemilinearIsometryClass.diam_range + theorem SemilinearIsometryClass.ediam_image + theorem SemilinearIsometryClass.ediam_range + theorem SemilinearIsometryClass.nnnorm_map + theorem Submodule.coe_subtypeₗᵢ + def Submodule.subtypeₗᵢ + theorem Submodule.subtypeₗᵢ_toContinuousLinearMap + theorem Submodule.subtypeₗᵢ_toLinearMap 2023-04-25 11:29:21 06aa02b feat: port Analysis.Convex.SimplicialComplex.Basic (#3643) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/Convex/SimplicialComplex/Basic.lean + theorem Geometry.SimplicialComplex.convexHull_inter_convexHull + theorem Geometry.SimplicialComplex.convexHull_subset_space + theorem Geometry.SimplicialComplex.disjoint_or_exists_inter_eq_convexHull + theorem Geometry.SimplicialComplex.face_subset_face_iff + theorem Geometry.SimplicialComplex.faces_bot + def Geometry.SimplicialComplex.facets + theorem Geometry.SimplicialComplex.facets_bot + theorem Geometry.SimplicialComplex.facets_subset + theorem Geometry.SimplicialComplex.mem_facets + theorem Geometry.SimplicialComplex.mem_space_iff + theorem Geometry.SimplicialComplex.mem_vertices + theorem Geometry.SimplicialComplex.not_facet_iff_subface + def Geometry.SimplicialComplex.ofErase + def Geometry.SimplicialComplex.ofSubcomplex + def Geometry.SimplicialComplex.space + theorem Geometry.SimplicialComplex.space_bot + theorem Geometry.SimplicialComplex.vertex_mem_convexHull_iff + def Geometry.SimplicialComplex.vertices + theorem Geometry.SimplicialComplex.vertices_eq + theorem Geometry.SimplicialComplex.vertices_subset_space + structure Geometry.SimplicialComplex 2023-04-25 11:14:28 26e2786 feat: port CategoryTheory.Preadditive.Generator (#3644) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Preadditive/Generator.lean + theorem CategoryTheory.Preadditive.isCoseparating_iff + theorem CategoryTheory.Preadditive.isCoseparator_iff + theorem CategoryTheory.Preadditive.isSeparating_iff + theorem CategoryTheory.Preadditive.isSeparator_iff + theorem CategoryTheory.isCoseparator_iff_faithful_preadditiveYoneda + theorem CategoryTheory.isCoseparator_iff_faithful_preadditiveYonedaObj + theorem CategoryTheory.isSeparator_iff_faithful_preadditiveCoyoneda + theorem CategoryTheory.isSeparator_iff_faithful_preadditiveCoyonedaObj 2023-04-25 09:36:42 6137962 feat: port CategoryTheory.Limits.Constructions.WeaklyInitial (#3627) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Limits/Constructions/WeaklyInitial.lean + theorem CategoryTheory.hasInitial_of_weakly_initial_and_hasWideEqualizers + theorem CategoryTheory.has_weakly_initial_of_weakly_initial_set_and_hasProducts 2023-04-25 08:27:23 b237400 feat: Dot product of block matrices (#3642) Match https://github.com/leanprover-community/mathlib/pull/8289 [`data.matrix.block`@`3e068ece210655b7b9a9477c3aff38a492400aa1`..`eba5bb3155cab51d80af00e8d7d69fa271b1302b`](https://leanprover-community.github.io/mathlib-port-status/file/data/matrix/block?range=3e068ece210655b7b9a9477c3aff38a492400aa1..eba5bb3155cab51d80af00e8d7d69fa271b1302b) ESTIMATED CHANGES Modified Mathlib/Data/Matrix/Block.lean + theorem Matrix.dotProduct_block 2023-04-25 08:05:48 8f4f347 chore: Generalise `ess_sup` lemmas (#3590) Match https://github.com/leanprover-community/mathlib/pull/18669 * [`order.filter.ennreal`@`57ac39bd365c2f80589a700f9fbb664d3a1a30c2`..`52932b3a083d4142e78a15dc928084a22fea9ba0`](https://leanprover-community.github.io/mathlib-port-status/file/order/filter/ennreal?range=57ac39bd365c2f80589a700f9fbb664d3a1a30c2..52932b3a083d4142e78a15dc928084a22fea9ba0) * [`topology.algebra.order.liminf_limsup`@`98e83c3d541c77cdb7da20d79611a780ff8e7d90`..`52932b3a083d4142e78a15dc928084a22fea9ba0`](https://leanprover-community.github.io/mathlib-port-status/file/topology/algebra/order/liminf_limsup?range=98e83c3d541c77cdb7da20d79611a780ff8e7d90..52932b3a083d4142e78a15dc928084a22fea9ba0) ESTIMATED CHANGES Modified Mathlib/Order/Filter/ENNReal.lean Modified Mathlib/Topology/Algebra/Order/LiminfLimsup.lean + theorem eventually_le_limsup + theorem eventually_liminf_le + theorem liminf_eq_top + theorem limsup_eq_bot 2023-04-25 06:14:50 ed5009f feat: port CategoryTheory.Limits.Shapes.WideEqualizers (#2713) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Limits/Shapes/WideEqualizers.lean + def CategoryTheory.Limits.Cocone.ofCotrident + theorem CategoryTheory.Limits.Cocone.ofCotrident_ι + def CategoryTheory.Limits.Cone.ofTrident + theorem CategoryTheory.Limits.Cone.ofTrident_π + def CategoryTheory.Limits.Cotrident.IsColimit.desc' + def CategoryTheory.Limits.Cotrident.IsColimit.homIso + theorem CategoryTheory.Limits.Cotrident.IsColimit.homIso_natural + theorem CategoryTheory.Limits.Cotrident.IsColimit.hom_ext + def CategoryTheory.Limits.Cotrident.IsColimit.mk' + def CategoryTheory.Limits.Cotrident.IsColimit.mk + theorem CategoryTheory.Limits.Cotrident.app_one + theorem CategoryTheory.Limits.Cotrident.coequalizer_ext + theorem CategoryTheory.Limits.Cotrident.condition + def CategoryTheory.Limits.Cotrident.ext + def CategoryTheory.Limits.Cotrident.mkHom + def CategoryTheory.Limits.Cotrident.ofCocone + theorem CategoryTheory.Limits.Cotrident.ofCocone_ι + def CategoryTheory.Limits.Cotrident.ofπ + theorem CategoryTheory.Limits.Cotrident.π_eq_app_one + theorem CategoryTheory.Limits.Cotrident.π_ofπ + def CategoryTheory.Limits.Trident.IsLimit.homIso + theorem CategoryTheory.Limits.Trident.IsLimit.homIso_natural + theorem CategoryTheory.Limits.Trident.IsLimit.hom_ext + def CategoryTheory.Limits.Trident.IsLimit.lift' + def CategoryTheory.Limits.Trident.IsLimit.mk' + def CategoryTheory.Limits.Trident.IsLimit.mk + theorem CategoryTheory.Limits.Trident.app_zero + theorem CategoryTheory.Limits.Trident.condition + theorem CategoryTheory.Limits.Trident.equalizer_ext + def CategoryTheory.Limits.Trident.ext + def CategoryTheory.Limits.Trident.mkHom + def CategoryTheory.Limits.Trident.ofCone + theorem CategoryTheory.Limits.Trident.ofCone_π + def CategoryTheory.Limits.Trident.ofι + theorem CategoryTheory.Limits.Trident.ι_eq_app_zero + theorem CategoryTheory.Limits.Trident.ι_ofι + def CategoryTheory.Limits.WalkingParallelFamily.Hom.comp + inductive CategoryTheory.Limits.WalkingParallelFamily.Hom + theorem CategoryTheory.Limits.WalkingParallelFamily.hom_id + inductive CategoryTheory.Limits.WalkingParallelFamily + def CategoryTheory.Limits.diagramIsoParallelFamily + theorem CategoryTheory.Limits.epi_of_isColimit_parallelFamily + theorem CategoryTheory.Limits.hasWideCoequalizers_of_hasColimit_parallelFamily + theorem CategoryTheory.Limits.hasWideEqualizers_of_hasLimit_parallelFamily + theorem CategoryTheory.Limits.mono_of_isLimit_parallelFamily + def CategoryTheory.Limits.parallelFamily + theorem CategoryTheory.Limits.parallelFamily_map_left + theorem CategoryTheory.Limits.parallelFamily_obj_one + theorem CategoryTheory.Limits.parallelFamily_obj_zero + def CategoryTheory.Limits.walkingParallelFamilyEquivWalkingParallelPair + theorem CategoryTheory.Limits.wideCoequalizer.condition + theorem CategoryTheory.Limits.wideCoequalizer.cotrident_ι_app_one + theorem CategoryTheory.Limits.wideCoequalizer.cotrident_π + def CategoryTheory.Limits.wideCoequalizer.desc' + theorem CategoryTheory.Limits.wideCoequalizer.hom_ext + theorem CategoryTheory.Limits.wideCoequalizer.π_desc + def CategoryTheory.Limits.wideCoequalizerIsWideCoequalizer + theorem CategoryTheory.Limits.wideEqualizer.condition + theorem CategoryTheory.Limits.wideEqualizer.hom_ext + def CategoryTheory.Limits.wideEqualizer.lift' + theorem CategoryTheory.Limits.wideEqualizer.lift_ι + theorem CategoryTheory.Limits.wideEqualizer.trident_ι + theorem CategoryTheory.Limits.wideEqualizer.trident_π_app_zero + def CategoryTheory.Limits.wideEqualizerIsWideEqualizer 2023-04-25 06:01:15 44cdd3a feat: port CategoryTheory.Subobject.Comma (#3502) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Subobject/Comma.lean + def CategoryTheory.CostructuredArrow.liftQuotient + theorem CategoryTheory.CostructuredArrow.lift_projectQuotient + def CategoryTheory.CostructuredArrow.projectQuotient + theorem CategoryTheory.CostructuredArrow.projectQuotient_factors + theorem CategoryTheory.CostructuredArrow.projectQuotient_mk + def CategoryTheory.CostructuredArrow.quotientEquiv + theorem CategoryTheory.CostructuredArrow.unop_left_comp_ofMkLEMk_unop + theorem CategoryTheory.CostructuredArrow.unop_left_comp_underlyingIso_hom_unop + def CategoryTheory.StructuredArrow.liftSubobject + theorem CategoryTheory.StructuredArrow.lift_projectSubobject + def CategoryTheory.StructuredArrow.projectSubobject + theorem CategoryTheory.StructuredArrow.projectSubobject_factors + theorem CategoryTheory.StructuredArrow.projectSubobject_mk + def CategoryTheory.StructuredArrow.subobjectEquiv 2023-04-24 23:44:09 26fdd3e fix: enable ↦ in server mode (#3556) Apparently we didn't enable the `pp.unicode.fun` in server mode, so you got inconsistent output depending on whether you run the lean file on the command-line (↦) or in the editor (=>). This change makes the options uniform. ESTIMATED CHANGES Modified lakefile.lean + def moreLeanArgs 2023-04-24 22:52:33 3393c04 feat: port Analysis.Convex.Normed (#3626) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/Convex/Normed.lean + theorem Convex.cthickening + theorem Convex.thickening + theorem bounded_convexHull + theorem convexHull_diam + theorem convexHull_ediam + theorem convexHull_exists_dist_ge2 + theorem convexHull_exists_dist_ge + theorem convexOn_dist + theorem convexOn_norm + theorem convexOn_univ_dist + theorem convexOn_univ_norm + theorem convex_ball + theorem convex_closedBall + theorem dist_add_dist_of_mem_segment + theorem isConnected_setOf_sameRay + theorem isConnected_setOf_sameRay_and_ne_zero 2023-04-24 22:52:32 62dc4a1 feat: port CategoryTheory.Generator (#3623) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Generator.lean + theorem CategoryTheory.CostructuredArrow.isSeparating_proj_preimage + theorem CategoryTheory.IsCodetecting.isCoseparating + theorem CategoryTheory.IsCodetecting.mono + def CategoryTheory.IsCodetecting + theorem CategoryTheory.IsCodetector.def + theorem CategoryTheory.IsCodetector.isCoseparator + def CategoryTheory.IsCodetector + theorem CategoryTheory.IsCoseparating.isCodetecting + theorem CategoryTheory.IsCoseparating.mono + def CategoryTheory.IsCoseparating + theorem CategoryTheory.IsCoseparator.def + def CategoryTheory.IsCoseparator + theorem CategoryTheory.IsCospearator.isCodetector + theorem CategoryTheory.IsDetecting.isSeparating + theorem CategoryTheory.IsDetecting.mono + def CategoryTheory.IsDetecting + theorem CategoryTheory.IsDetector.def + theorem CategoryTheory.IsDetector.isSeparator + def CategoryTheory.IsDetector + theorem CategoryTheory.IsSeparating.isDetecting + theorem CategoryTheory.IsSeparating.mono + def CategoryTheory.IsSeparating + theorem CategoryTheory.IsSeparator.def + theorem CategoryTheory.IsSeparator.isDetector + def CategoryTheory.IsSeparator + theorem CategoryTheory.StructuredArrow.isCoseparating_proj_preimage + theorem CategoryTheory.Subobject.eq_of_isDetecting + theorem CategoryTheory.Subobject.eq_of_le_of_isDetecting + theorem CategoryTheory.Subobject.inf_eq_of_isDetecting + theorem CategoryTheory.groupoid_of_isCodetecting_empty + theorem CategoryTheory.groupoid_of_isDetecting_empty + theorem CategoryTheory.hasInitial_of_isCoseparating + theorem CategoryTheory.hasTerminal_of_isSeparating + theorem CategoryTheory.isCodetecting_empty_of_groupoid + theorem CategoryTheory.isCodetecting_iff_isCoseparating + theorem CategoryTheory.isCodetecting_op_iff + theorem CategoryTheory.isCodetecting_unop_iff + theorem CategoryTheory.isCodetector_def + theorem CategoryTheory.isCodetector_iff_reflectsIsomorphisms_yoneda_obj + theorem CategoryTheory.isCodetector_op_iff + theorem CategoryTheory.isCodetector_unop_iff + theorem CategoryTheory.isCoseparating_empty_of_thin + theorem CategoryTheory.isCoseparating_iff_mono + theorem CategoryTheory.isCoseparating_op_iff + theorem CategoryTheory.isCoseparating_unop_iff + theorem CategoryTheory.isCoseparator_def + theorem CategoryTheory.isCoseparator_iff_faithful_yoneda_obj + theorem CategoryTheory.isCoseparator_iff_mono + theorem CategoryTheory.isCoseparator_op_iff + theorem CategoryTheory.isCoseparator_pi + theorem CategoryTheory.isCoseparator_pi_of_isCoseparator + theorem CategoryTheory.isCoseparator_prod + theorem CategoryTheory.isCoseparator_prod_of_isCoseparator_left + theorem CategoryTheory.isCoseparator_prod_of_isCoseparator_right + theorem CategoryTheory.isCoseparator_unop_iff + theorem CategoryTheory.isDetecting_empty_of_groupoid + theorem CategoryTheory.isDetecting_iff_isSeparating + theorem CategoryTheory.isDetecting_op_iff + theorem CategoryTheory.isDetecting_unop_iff + theorem CategoryTheory.isDetector_def + theorem CategoryTheory.isDetector_iff_reflectsIsomorphisms_coyoneda_obj + theorem CategoryTheory.isDetector_op_iff + theorem CategoryTheory.isDetector_unop_iff + theorem CategoryTheory.isSeparating_empty_of_thin + theorem CategoryTheory.isSeparating_iff_epi + theorem CategoryTheory.isSeparating_op_iff + theorem CategoryTheory.isSeparating_unop_iff + theorem CategoryTheory.isSeparator_coprod + theorem CategoryTheory.isSeparator_coprod_of_isSeparator_left + theorem CategoryTheory.isSeparator_coprod_of_isSeparator_right + theorem CategoryTheory.isSeparator_def + theorem CategoryTheory.isSeparator_iff_epi + theorem CategoryTheory.isSeparator_iff_faithful_coyoneda_obj + theorem CategoryTheory.isSeparator_op_iff + theorem CategoryTheory.isSeparator_sigma + theorem CategoryTheory.isSeparator_sigma_of_isSeparator + theorem CategoryTheory.isSeparator_unop_iff + theorem CategoryTheory.thin_of_isCoseparating_empty + theorem CategoryTheory.thin_of_isSeparating_empty + theorem CategoryTheory.wellPowered_of_isDetecting + theorem CategoryTheory.wellPowered_of_isDetector 2023-04-24 22:52:31 b542144 feat: port CategoryTheory.Abelian.Opposite (#3595) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Abelian/Opposite.lean + theorem CategoryTheory.cokernel.π_op + theorem CategoryTheory.cokernel.π_unop + def CategoryTheory.cokernelOpOp + def CategoryTheory.cokernelOpUnop + def CategoryTheory.cokernelUnopOp + def CategoryTheory.cokernelUnopUnop + theorem CategoryTheory.factorThruImage_comp_imageUnopOp_inv + def CategoryTheory.imageOpOp + def CategoryTheory.imageOpUnop + def CategoryTheory.imageUnopOp + theorem CategoryTheory.imageUnopOp_hom_comp_image_ι + theorem CategoryTheory.imageUnopOp_inv_comp_op_factorThruImage + def CategoryTheory.imageUnopUnop + theorem CategoryTheory.image_ι_op_comp_imageUnopOp_hom + theorem CategoryTheory.kernel.ι_op + theorem CategoryTheory.kernel.ι_unop + def CategoryTheory.kernelOpOp + def CategoryTheory.kernelOpUnop + def CategoryTheory.kernelUnopOp + def CategoryTheory.kernelUnopUnop 2023-04-24 22:52:30 6320675 feat: port Data.Real.Hyperreal (#3586) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Data/Real/Hyperreal.lean + theorem Hyperreal.Infinite.mul + theorem Hyperreal.Infinite.ne_real + theorem Hyperreal.Infinite.ne_zero + theorem Hyperreal.Infinite.not_infinitesimal + theorem Hyperreal.Infinite.st_eq + def Hyperreal.Infinite + theorem Hyperreal.InfiniteNeg.lt_zero + theorem Hyperreal.InfiniteNeg.neg + theorem Hyperreal.InfiniteNeg.not_infinitePos + theorem Hyperreal.InfiniteNeg.not_infinitesimal + def Hyperreal.InfiniteNeg + theorem Hyperreal.InfinitePos.neg + theorem Hyperreal.InfinitePos.not_infiniteNeg + theorem Hyperreal.InfinitePos.not_infinitesimal + theorem Hyperreal.InfinitePos.pos + def Hyperreal.InfinitePos + theorem Hyperreal.Infinitesimal.eq_zero + def Hyperreal.Infinitesimal + theorem Hyperreal.IsSt.add + theorem Hyperreal.IsSt.infinitesimal_sub + theorem Hyperreal.IsSt.inv + theorem Hyperreal.IsSt.isSt_st + theorem Hyperreal.IsSt.le + theorem Hyperreal.IsSt.map + theorem Hyperreal.IsSt.map₂ + theorem Hyperreal.IsSt.mul + theorem Hyperreal.IsSt.neg + theorem Hyperreal.IsSt.not_infinite + theorem Hyperreal.IsSt.st_eq + theorem Hyperreal.IsSt.sub + theorem Hyperreal.IsSt.unique + def Hyperreal.IsSt + theorem Hyperreal.abs_lt_real_iff_infinitesimal + theorem Hyperreal.coe_abs + theorem Hyperreal.coe_add + theorem Hyperreal.coe_div + theorem Hyperreal.coe_eq_coe + theorem Hyperreal.coe_eq_one + theorem Hyperreal.coe_eq_zero + theorem Hyperreal.coe_inv + theorem Hyperreal.coe_le_coe + theorem Hyperreal.coe_lt_coe + theorem Hyperreal.coe_max + theorem Hyperreal.coe_min + theorem Hyperreal.coe_mul + theorem Hyperreal.coe_ne_coe + theorem Hyperreal.coe_ne_one + theorem Hyperreal.coe_ne_zero + theorem Hyperreal.coe_neg + theorem Hyperreal.coe_nonneg + theorem Hyperreal.coe_ofNat + theorem Hyperreal.coe_one + theorem Hyperreal.coe_pos + theorem Hyperreal.coe_sub + theorem Hyperreal.coe_zero + theorem Hyperreal.epsilon_lt_pos + theorem Hyperreal.epsilon_mul_omega + theorem Hyperreal.epsilon_ne_zero + theorem Hyperreal.epsilon_pos + theorem Hyperreal.eq_of_isSt_real + theorem Hyperreal.exists_st_iff_not_infinite + theorem Hyperreal.exists_st_of_not_infinite + theorem Hyperreal.gt_of_neg_of_infinitesimal + theorem Hyperreal.gt_of_tendsto_zero_of_neg + theorem Hyperreal.infiniteNeg_add_infiniteNeg + theorem Hyperreal.infiniteNeg_add_not_infinite + theorem Hyperreal.infiniteNeg_add_not_infinitePos + theorem Hyperreal.infiniteNeg_def + theorem Hyperreal.infiniteNeg_iff_infinite_and_neg + theorem Hyperreal.infiniteNeg_iff_infinite_of_neg + theorem Hyperreal.infiniteNeg_iff_infinitesimal_inv_neg + theorem Hyperreal.infiniteNeg_mul_infiniteNeg + theorem Hyperreal.infiniteNeg_mul_infinitePos + theorem Hyperreal.infiniteNeg_mul_of_infiniteNeg_not_infinitesimal_pos + theorem Hyperreal.infiniteNeg_mul_of_infinitePos_not_infinitesimal_neg + theorem Hyperreal.infiniteNeg_mul_of_not_infinitesimal_neg_infinitePos + theorem Hyperreal.infiniteNeg_mul_of_not_infinitesimal_pos_infiniteNeg + theorem Hyperreal.infiniteNeg_neg + theorem Hyperreal.infiniteNeg_of_tendsto_bot + theorem Hyperreal.infinitePos_abs_iff_infinite + theorem Hyperreal.infinitePos_abs_iff_infinite_abs + theorem Hyperreal.infinitePos_add_infinitePos + theorem Hyperreal.infinitePos_add_not_infinite + theorem Hyperreal.infinitePos_add_not_infiniteNeg + theorem Hyperreal.infinitePos_def + theorem Hyperreal.infinitePos_iff_infinite_and_pos + theorem Hyperreal.infinitePos_iff_infinite_of_nonneg + theorem Hyperreal.infinitePos_iff_infinite_of_pos + theorem Hyperreal.infinitePos_iff_infinitesimal_inv_pos + theorem Hyperreal.infinitePos_mul_infiniteNeg + theorem Hyperreal.infinitePos_mul_infinitePos + theorem Hyperreal.infinitePos_mul_of_infiniteNeg_not_infinitesimal_neg + theorem Hyperreal.infinitePos_mul_of_infinitePos_not_infinitesimal_pos + theorem Hyperreal.infinitePos_mul_of_not_infinitesimal_neg_infiniteNeg + theorem Hyperreal.infinitePos_mul_of_not_infinitesimal_pos_infinitePos + theorem Hyperreal.infinitePos_neg + theorem Hyperreal.infinitePos_of_tendsto_top + theorem Hyperreal.infinitePos_omega + theorem Hyperreal.infinite_abs_iff + theorem Hyperreal.infinite_iff_abs_lt_abs + theorem Hyperreal.infinite_iff_infinitesimal_inv + theorem Hyperreal.infinite_iff_not_exists_st + theorem Hyperreal.infinite_mul_of_infinite_not_infinitesimal + theorem Hyperreal.infinite_mul_of_not_infinitesimal_infinite + theorem Hyperreal.infinite_neg + theorem Hyperreal.infinite_of_infinitesimal_inv + theorem Hyperreal.infinite_omega + theorem Hyperreal.infinitesimal_def + theorem Hyperreal.infinitesimal_epsilon + theorem Hyperreal.infinitesimal_iff_infinite_inv + theorem Hyperreal.infinitesimal_inv_of_infinite + theorem Hyperreal.infinitesimal_neg + theorem Hyperreal.infinitesimal_neg_iff_infiniteNeg_inv + theorem Hyperreal.infinitesimal_of_tendsto_zero + theorem Hyperreal.infinitesimal_pos_iff_infinitePos_inv + theorem Hyperreal.infinitesimal_real_iff + theorem Hyperreal.infinitesimal_sub_st + theorem Hyperreal.infinitesimal_zero + theorem Hyperreal.inv_epsilon + theorem Hyperreal.inv_omega + theorem Hyperreal.isSt_iff_abs_sub_lt_delta + theorem Hyperreal.isSt_iff_tendsto + theorem Hyperreal.isSt_inj_real + theorem Hyperreal.isSt_ofSeq_iff_tendsto + theorem Hyperreal.isSt_of_tendsto + theorem Hyperreal.isSt_real_iff_eq + theorem Hyperreal.isSt_refl_real + theorem Hyperreal.isSt_st' + theorem Hyperreal.isSt_st + theorem Hyperreal.isSt_st_of_exists_st + theorem Hyperreal.isSt_supₛ + theorem Hyperreal.isSt_symm_real + theorem Hyperreal.isSt_trans_real + theorem Hyperreal.lt_neg_of_pos_of_infinitesimal + theorem Hyperreal.lt_of_pos_of_infinitesimal + theorem Hyperreal.lt_of_st_lt + theorem Hyperreal.lt_of_tendsto_zero_of_pos + theorem Hyperreal.neg_lt_of_tendsto_zero_of_pos + theorem Hyperreal.not_infiniteNeg_add_infinitePos + theorem Hyperreal.not_infinitePos_add_infiniteNeg + theorem Hyperreal.not_infinite_add + theorem Hyperreal.not_infinite_iff_exist_lt_gt + theorem Hyperreal.not_infinite_mul + theorem Hyperreal.not_infinite_neg + theorem Hyperreal.not_infinite_of_exists_st + theorem Hyperreal.not_infinite_real + theorem Hyperreal.not_infinite_zero + theorem Hyperreal.not_real_of_infinitesimal_ne_zero + def Hyperreal.ofReal + def Hyperreal.ofSeq + theorem Hyperreal.ofSeq_lt_ofSeq + theorem Hyperreal.ofSeq_surjective + theorem Hyperreal.omega_ne_zero + theorem Hyperreal.omega_pos + theorem Hyperreal.st_add + theorem Hyperreal.st_eq_supₛ + theorem Hyperreal.st_id_real + theorem Hyperreal.st_inv + theorem Hyperreal.st_le_of_le + theorem Hyperreal.st_mul + theorem Hyperreal.st_neg + def Hyperreal Modified Mathlib/Order/Filter/FilterProduct.lean Modified Mathlib/Order/Filter/Ultrafilter.lean + theorem Nat.hyperfilter_le_atTop 2023-04-24 22:04:18 6223f21 chore: tidy various files (#3629) ESTIMATED CHANGES Modified Mathlib/Algebra/RingQuot.lean Modified Mathlib/AlgebraicTopology/DoldKan/Degeneracies.lean Modified Mathlib/CategoryTheory/Yoneda.lean +/- def CategoryTheory.coyoneda +/- def CategoryTheory.yoneda +/- def CategoryTheory.yonedaLemma Modified Mathlib/LinearAlgebra/Dimension.lean Modified Mathlib/LinearAlgebra/Multilinear/Basic.lean - theorem MultilinearMap.coe_curr_sum_equiv_symm + theorem MultilinearMap.coe_currySumEquiv_symm Modified Mathlib/LinearAlgebra/SesquilinearForm.lean - theorem LinearMap.IsOrthoᵢ.nondegenerateOfNotIsOrthoBasisSelf + theorem LinearMap.IsOrthoᵢ.nondegenerate_of_not_isOrtho_basis_self - theorem LinearMap.IsOrthoᵢ.separatingLeftOfNotIsOrthoBasisSelf + theorem LinearMap.IsOrthoᵢ.separatingLeft_of_not_isOrtho_basis_self - theorem LinearMap.IsOrthoᵢ.separatingRightIffNotIsOrthoBasisSelf + theorem LinearMap.IsOrthoᵢ.separatingRight_iff_not_isOrtho_basis_self + theorem LinearMap.IsRefl.domRestrict - theorem LinearMap.IsRefl.domRestrictRefl - theorem LinearMap.IsRefl.nondegenerateOfSeparatingLeft - theorem LinearMap.IsRefl.nondegenerateOfSeparatingRight + theorem LinearMap.IsRefl.nondegenerate_of_separatingLeft + theorem LinearMap.IsRefl.nondegenerate_of_separatingRight + theorem LinearMap.IsSymm.domRestrict - theorem LinearMap.IsSymm.domRestrictSymm - theorem LinearMap.isAdjointPairId - theorem LinearMap.isAdjointPairZero + theorem LinearMap.isAdjointPair_id + theorem LinearMap.isAdjointPair_zero - theorem LinearMap.isOrthoZeroLeft - theorem LinearMap.isOrthoZeroRight + theorem LinearMap.isOrtho_zero_left + theorem LinearMap.isOrtho_zero_right +/- def LinearMap.isPairSelfAdjointSubmodule Modified Mathlib/Topology/MetricSpace/HausdorffDistance.lean 2023-04-24 21:46:25 4929c76 feat: port Analysis.Convex.Jensen (#3622) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/Convex/Jensen.lean + theorem ConcaveOn.exists_le_of_centerMass + theorem ConcaveOn.exists_le_of_mem_convexHull + theorem ConcaveOn.le_map_centerMass + theorem ConcaveOn.le_map_sum + theorem ConvexOn.exists_ge_of_centerMass + theorem ConvexOn.exists_ge_of_mem_convexHull + theorem ConvexOn.map_centerMass_le + theorem ConvexOn.map_sum_le + theorem inf_le_of_mem_convexHull + theorem le_sup_of_mem_convexHull 2023-04-24 21:32:33 0993683 feat: port Analysis.Convex.Topology (#3624) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/Convex/Topology.lean + theorem Convex.add_smul_mem_interior' + theorem Convex.add_smul_mem_interior + theorem Convex.add_smul_sub_mem_interior' + theorem Convex.add_smul_sub_mem_interior + theorem Convex.closure_subset_image_homothety_interior_of_one_lt + theorem Convex.closure_subset_interior_image_homothety_of_one_lt + theorem Convex.combo_closure_interior_mem_interior + theorem Convex.combo_closure_interior_subset_interior + theorem Convex.combo_interior_closure_mem_interior + theorem Convex.combo_interior_closure_subset_interior + theorem Convex.combo_interior_self_mem_interior + theorem Convex.combo_interior_self_subset_interior + theorem Convex.combo_self_interior_mem_interior + theorem Convex.combo_self_interior_subset_interior + theorem Convex.openSegment_closure_interior_subset_interior + theorem Convex.openSegment_interior_closure_subset_interior + theorem Convex.openSegment_interior_self_subset_interior + theorem Convex.openSegment_self_interior_subset_interior + theorem Convex.subset_interior_image_homothety_of_one_lt + theorem Real.convex_iff_isPreconnected + theorem Set.Finite.isClosed_convexHull + theorem Set.Finite.isCompact_convexHull + theorem bounded_stdSimplex + theorem closure_openSegment + theorem isClosed_stdSimplex + theorem isCompact_stdSimplex + theorem segment_subset_closure_openSegment + theorem stdSimplex_subset_closedBall 2023-04-24 15:51:54 186fdbc fix: make `apply_fun` instantiate metavariables when analyzing expression (#3621) `apply_fun` would erroneously raise an error when the goal is a metavariable, rather than instantiating it. Now it instantiates it and puts the goal into weak head normal form with reducible transparancy. ESTIMATED CHANGES Modified Mathlib/Tactic/ApplyFun.lean Modified test/apply_fun.lean 2023-04-24 14:36:15 ec01884 feat: port CategoryTheory.Linear.Yoneda (#3619) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Linear/Yoneda.lean + def CategoryTheory.linearCoyoneda + def CategoryTheory.linearYoneda + theorem CategoryTheory.whiskering_linearCoyoneda + theorem CategoryTheory.whiskering_linearCoyoneda₂ + theorem CategoryTheory.whiskering_linearYoneda + theorem CategoryTheory.whiskering_linearYoneda₂ 2023-04-24 14:36:14 cc8afbd feat: port Analysis.Convex.Combination (#3598) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/Convex/Combination.lean + theorem AffineBasis.convexHull_eq_nonneg_coord + theorem Convex.centerMass_mem + theorem Convex.finsum_mem + theorem Convex.sum_mem + def Finset.centerMass + theorem Finset.centerMass_empty + theorem Finset.centerMass_eq_of_sum_1 + theorem Finset.centerMass_filter_ne_zero + theorem Finset.centerMass_id_mem_convexHull + theorem Finset.centerMass_insert + theorem Finset.centerMass_ite_eq + theorem Finset.centerMass_le_sup + theorem Finset.centerMass_mem_convexHull + theorem Finset.centerMass_pair + theorem Finset.centerMass_segment' + theorem Finset.centerMass_segment + theorem Finset.centerMass_singleton + theorem Finset.centerMass_smul + theorem Finset.centerMass_subset + theorem Finset.centroid_eq_centerMass + theorem Finset.centroid_mem_convexHull + theorem Finset.convexHull_eq + theorem Finset.inf_le_centerMass + theorem Finset.mem_convexHull + theorem Set.Finite.convexHull_eq + theorem Set.Finite.convexHull_eq_image + theorem affineCombination_eq_centerMass + theorem affineCombination_mem_convexHull + theorem convexHull_add + theorem convexHull_basis_eq_stdSimplex + theorem convexHull_eq + theorem convexHull_eq_union_convexHull_finite_subsets + theorem convexHull_prod + theorem convexHull_range_eq_exists_affineCombination + theorem convexHull_sub + theorem convex_iff_sum_mem + theorem mem_Icc_of_mem_stdSimplex + theorem mk_mem_convexHull_prod 2023-04-24 14:36:13 5581564 feat: port LinearAlgebra.Vandermonde (#3596) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/LinearAlgebra/Vandermonde.lean + theorem Matrix.det_vandermonde + theorem Matrix.det_vandermonde_eq_zero_iff + theorem Matrix.det_vandermonde_ne_zero_iff + theorem Matrix.eq_zero_of_forall_index_sum_mul_pow_eq_zero + theorem Matrix.eq_zero_of_forall_index_sum_pow_mul_eq_zero + theorem Matrix.eq_zero_of_forall_pow_sum_mul_pow_eq_zero + def Matrix.vandermonde + theorem Matrix.vandermonde_apply + theorem Matrix.vandermonde_cons + theorem Matrix.vandermonde_mul_vandermonde_transpose + theorem Matrix.vandermonde_succ + theorem Matrix.vandermonde_transpose_mul_vandermonde 2023-04-24 13:28:37 b0c1460 chore: port missing instance priorities (#3613) See discussion at https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/mathport.20drops.20priorities.20in.20.60attribute.20.5Binstance.5D.60. `mathport` has been dropping the priorities on instances when using the `attribute` command. This PR adds back all the priorities, except for `local attribute`, and instances involving coercions, which I didn't want to mess with. ESTIMATED CHANGES Modified Mathlib/Algebra/AddTorsor.lean Modified Mathlib/CategoryTheory/Abelian/Basic.lean Modified Mathlib/CategoryTheory/Closed/Monoidal.lean Modified Mathlib/CategoryTheory/ConnectedComponents.lean Modified Mathlib/CategoryTheory/IsConnected.lean Modified Mathlib/CategoryTheory/Limits/Creates.lean Modified Mathlib/CategoryTheory/Limits/Preserves/Basic.lean Modified Mathlib/CategoryTheory/Limits/Preserves/Filtered.lean Modified Mathlib/CategoryTheory/Limits/Preserves/Shapes/Biproducts.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Biproducts.lean Modified Mathlib/CategoryTheory/Limits/Shapes/DisjointCoproduct.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Images.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Kernels.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Reflexive.lean Modified Mathlib/CategoryTheory/Limits/Shapes/StrongEpi.lean Modified Mathlib/Data/FinEnum.lean Modified Mathlib/Topology/Connected.lean Modified Mathlib/Topology/SubsetProperties.lean 2023-04-24 12:12:13 76525aa feat: port Algebra.Homology.ShortExact.Preadditive (#3611) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Homology/ShortExact/Preadditive.lean + theorem CategoryTheory.LeftSplit.shortExact + structure CategoryTheory.LeftSplit + theorem CategoryTheory.RightSplit.shortExact + structure CategoryTheory.RightSplit + structure CategoryTheory.ShortExact + theorem CategoryTheory.Split.exact + theorem CategoryTheory.Split.leftSplit + theorem CategoryTheory.Split.map + theorem CategoryTheory.Split.rightSplit + theorem CategoryTheory.Split.shortExact + structure CategoryTheory.Split + theorem CategoryTheory.Splitting.comp_eq_zero + theorem CategoryTheory.Splitting.inl_comp_iso_eq + theorem CategoryTheory.Splitting.inr_iso_inv + theorem CategoryTheory.Splitting.iso_comp_eq_snd + theorem CategoryTheory.Splitting.iso_hom_fst + def CategoryTheory.Splitting.retraction + theorem CategoryTheory.Splitting.retraction_ι_eq_id_sub + theorem CategoryTheory.Splitting.section_retraction + theorem CategoryTheory.Splitting.section_π + theorem CategoryTheory.Splitting.split + theorem CategoryTheory.Splitting.split_add + def CategoryTheory.Splitting.splittingOfIsIsoZero + theorem CategoryTheory.Splitting.splittings_comm + def CategoryTheory.Splitting.«section» + theorem CategoryTheory.Splitting.ι_retraction + theorem CategoryTheory.Splitting.π_section_eq_id_sub + structure CategoryTheory.Splitting + theorem CategoryTheory.exact_inl_snd + theorem CategoryTheory.exact_inr_fst + theorem CategoryTheory.exact_of_split 2023-04-24 11:35:23 30ca5ad feat: port Topology.ExtremallyDisconnected (#3616) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Topology/ExtremallyDisconnected.lean + def CompactT2.Projective + theorem StoneCech.projective 2023-04-24 11:35:22 8898247 chore: forward-port leanprover-community/mathlib#18856 (#3609) Forward-ports https://github.com/leanprover-community/mathlib/pull/18856 and https://github.com/leanprover-community/mathlib/pull/18858 ESTIMATED CHANGES Modified Mathlib/Data/ZMod/Basic.lean 2023-04-24 11:35:20 f339c7d feat: port AlgebraicTopology.DoldKan.HomotopyEquivalence (#3594) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/AlgebraicTopology/DoldKan/HomotopyEquivalence.lean + def AlgebraicTopology.DoldKan.homotopyEquivNormalizedMooreComplexAlternatingFaceMapComplex + def AlgebraicTopology.DoldKan.homotopyPInftyToId + theorem AlgebraicTopology.DoldKan.homotopyPToId_eventually_constant + def AlgebraicTopology.DoldKan.homotopyQToZero 2023-04-24 11:35:19 941d30b chore: forward-port leanprover-community/mathlib#18601 (#3579) * leanprover-community/mathlib#18601 * https://leanprover-community.github.io/mathlib-port-status/file/topology/fiber_bundle/basic ESTIMATED CHANGES Modified Mathlib/Topology/FiberBundle/Basic.lean + theorem FiberBundle.continuousAt_totalSpace + theorem FiberBundle.continuousWithinAt_totalSpace + theorem FiberBundle.mem_trivializationAt_proj_source + theorem FiberBundle.trivializationAt_proj_fst 2023-04-24 11:35:18 877237e feat: Order on the localization (#3567) Match https://github.com/leanprover-community/mathlib/pull/18724 and https://github.com/leanprover-community/mathlib/pull/18846 ESTIMATED CHANGES Modified Mathlib/GroupTheory/MonoidLocalization.lean + def Localization.mkOrderEmbedding + theorem Localization.mk_eq_mk_iff' + theorem Localization.mk_le_mk + theorem Localization.mk_left_injective + theorem Localization.mk_lt_mk + def Localization.recOnSubsingleton₂ 2023-04-24 08:51:27 0437079 feat: `insert` and `erase` lemmas (#3569) Match https://github.com/leanprover-community/mathlib/pull/18729 * [`order.heyting.basic`@`4e42a9d0a79d151ee359c270e498b1a00cc6fa4e`..`9ac7c0c8c4d7a535ec3e5b34b8859aab9233b2f4`](https://leanprover-community.github.io/mathlib-port-status/file/order/heyting/basic?range=4e42a9d0a79d151ee359c270e498b1a00cc6fa4e..9ac7c0c8c4d7a535ec3e5b34b8859aab9233b2f4) * [`order.boolean_algebra`@`bc7d81beddb3d6c66f71449c5bc76c38cb77cf9e`..`9ac7c0c8c4d7a535ec3e5b34b8859aab9233b2f4`](https://leanprover-community.github.io/mathlib-port-status/file/order/boolean_algebra?range=bc7d81beddb3d6c66f71449c5bc76c38cb77cf9e..9ac7c0c8c4d7a535ec3e5b34b8859aab9233b2f4) * [`data.set.basic`@`29cb56a7b35f72758b05a30490e1f10bd62c35c1`..`9ac7c0c8c4d7a535ec3e5b34b8859aab9233b2f4`](https://leanprover-community.github.io/mathlib-port-status/file/data/set/basic?range=29cb56a7b35f72758b05a30490e1f10bd62c35c1..9ac7c0c8c4d7a535ec3e5b34b8859aab9233b2f4) * [`data.finset.basic`@`68cc421841f2ebb8ad2b5a35a853895feb4b850a`..`9ac7c0c8c4d7a535ec3e5b34b8859aab9233b2f4`](https://leanprover-community.github.io/mathlib-port-status/file/data/finset/basic?range=68cc421841f2ebb8ad2b5a35a853895feb4b850a..9ac7c0c8c4d7a535ec3e5b34b8859aab9233b2f4) ESTIMATED CHANGES Modified Mathlib/Data/Finset/Basic.lean + theorem Finset.disjoint_erase_comm + theorem Finset.disjoint_of_erase_left + theorem Finset.disjoint_of_erase_right + theorem Finset.erase_eq + theorem Finset.erase_inter + theorem Finset.erase_inter_comm + theorem Finset.erase_sdiff_comm + theorem Finset.erase_sdiff_distrib + theorem Finset.erase_union_distrib + theorem Finset.erase_union_of_mem + theorem Finset.insert_inter_distrib + theorem Finset.insert_union_comm + theorem Finset.inter_erase +/- theorem Finset.sdiff_erase + theorem Finset.sdiff_erase_self + theorem Finset.sdiff_sdiff_eq_sdiff_union + theorem Finset.sdiff_singleton_eq_self - theorem Finset.sdiff_singleton_not_mem_eq_self + theorem Finset.sdiff_union_erase_cancel + theorem Finset.sdiff_union_sdiff_cancel + theorem Finset.union_erase_of_mem + theorem Finset.union_sdiff_cancel_left + theorem Finset.union_sdiff_cancel_right + theorem Finset.union_subset_union_left + theorem Finset.union_subset_union_right Modified Mathlib/Data/Set/Basic.lean + theorem Set.diff_diff_eq_sdiff_union + theorem Set.diff_union_diff_cancel Modified Mathlib/Order/BooleanAlgebra.lean + theorem codisjoint_himp_self_left + theorem codisjoint_himp_self_right + theorem disjoint_sdiff_comm + theorem himp_le Modified Mathlib/Order/Heyting/Basic.lean + theorem Codisjoint.himp_le_of_right_le + theorem Disjoint.le_sdiff_of_le_left 2023-04-24 05:58:32 e3fe5fa chore: tidy various files (#3606) ESTIMATED CHANGES Modified Mathlib/Algebra/Homology/Exact.lean Modified Mathlib/Algebra/Order/ToIntervalMod.lean - theorem tFAE_memIooMod + theorem tfae_memIooMod Modified Mathlib/Analysis/Normed/Group/AddTorsor.lean Modified Mathlib/CategoryTheory/Sites/Sheafification.lean Modified Mathlib/Dynamics/Circle/RotationNumber/TranslationNumber.lean Modified Mathlib/Geometry/Manifold/ChartedSpace.lean + theorem closedUnderRestriction' - theorem closed_under_restriction' Modified Mathlib/Geometry/Manifold/LocalInvariantProperties.lean Modified Mathlib/Logic/Equiv/TransferInstance.lean Modified Mathlib/RingTheory/Valuation/Basic.lean - theorem Valuation.IsEquiv_iff_val_eq_one - theorem Valuation.IsEquiv_iff_val_le_one - theorem Valuation.IsEquiv_iff_val_lt_one - theorem Valuation.IsEquiv_iff_val_sub_one_lt_one - theorem Valuation.IsEquiv_of_map_strictMono - theorem Valuation.IsEquiv_of_val_le_one - theorem Valuation.IsEquiv_tFAE + theorem Valuation.isEquiv_iff_val_eq_one + theorem Valuation.isEquiv_iff_val_le_one + theorem Valuation.isEquiv_iff_val_lt_one + theorem Valuation.isEquiv_iff_val_sub_one_lt_one + theorem Valuation.isEquiv_of_map_strictMono + theorem Valuation.isEquiv_of_val_le_one + theorem Valuation.isEquiv_tfae Modified Mathlib/Topology/MetricSpace/Closeds.lean 2023-04-24 05:58:31 928dcd5 feat: port CategoryTheory.Preadditive.Yoneda.Basic (#3603) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Preadditive/Yoneda/Basic.lean + def CategoryTheory.preadditiveCoyoneda + def CategoryTheory.preadditiveCoyonedaObj + def CategoryTheory.preadditiveYoneda + def CategoryTheory.preadditiveYonedaObj + theorem CategoryTheory.whiskering_preadditiveCoyoneda + theorem CategoryTheory.whiskering_preadditiveYoneda 2023-04-24 05:58:30 c6ead01 feat: port Algebra.Homology.HomotopyCategory (#3602) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Homology/HomotopyCategory.lean + def CategoryTheory.Functor.mapHomotopyCategory + theorem CategoryTheory.Functor.mapHomotopyCategory_map + def CategoryTheory.NatTrans.mapHomotopyCategory + theorem CategoryTheory.NatTrans.mapHomotopyCategory_comp + theorem CategoryTheory.NatTrans.mapHomotopyCategory_id + theorem HomotopyCategory.eq_of_homotopy + def HomotopyCategory.homologyFactors + theorem HomotopyCategory.homologyFactors_hom_app + theorem HomotopyCategory.homologyFactors_inv_app + def HomotopyCategory.homologyFunctor + theorem HomotopyCategory.homologyFunctor_map_factors + def HomotopyCategory.homotopyEquivOfIso + def HomotopyCategory.homotopyOfEq + def HomotopyCategory.homotopyOutMap + def HomotopyCategory.isoOfHomotopyEquiv + theorem HomotopyCategory.quot_mk_eq_quotient_map + def HomotopyCategory.quotient + theorem HomotopyCategory.quotient_map_out + theorem HomotopyCategory.quotient_map_out_comp_out + theorem HomotopyCategory.quotient_obj_as + def HomotopyCategory + def homotopic 2023-04-24 05:58:29 832c66f feat: port AlgebraicTopology.DoldKan.Normalized (#3591) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/AlgebraicTopology/DoldKan/Normalized.lean + theorem AlgebraicTopology.DoldKan.HigherFacesVanish.inclusionOfMooreComplexMap + def AlgebraicTopology.DoldKan.N₁_iso_normalizedMooreComplex_comp_toKaroubi + def AlgebraicTopology.DoldKan.PInftyToNormalizedMooreComplex + theorem AlgebraicTopology.DoldKan.PInftyToNormalizedMooreComplex_comp_inclusionOfMooreComplexMap + theorem AlgebraicTopology.DoldKan.PInftyToNormalizedMooreComplex_naturality + theorem AlgebraicTopology.DoldKan.PInfty_comp_PInftyToNormalizedMooreComplex + theorem AlgebraicTopology.DoldKan.factors_normalizedMooreComplex_PInfty + theorem AlgebraicTopology.DoldKan.inclusionOfMooreComplexMap_comp_PInfty + def AlgebraicTopology.DoldKan.splitMonoInclusionOfMooreComplexMap 2023-04-24 05:58:28 c98d1aa feat: port AlgebraicTopology.DoldKan.EquivalenceAdditive (#3581) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/AlgebraicTopology/DoldKan/EquivalenceAdditive.lean + def CategoryTheory.Preadditive.DoldKan.N + def CategoryTheory.Preadditive.DoldKan.equivalence + def CategoryTheory.Preadditive.DoldKan.Γ 2023-04-24 05:58:26 32d4b24 feat: port LinearAlgebra.Matrix.Circulant (#3465) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/LinearAlgebra/Matrix/Circulant.lean + theorem Matrix.Fin.circulant_inj + theorem Matrix.Fin.circulant_injective + theorem Matrix.Fin.circulant_isSymm_apply + theorem Matrix.Fin.circulant_isSymm_iff + theorem Matrix.Fin.circulant_ite + theorem Matrix.Fin.circulant_mul + theorem Matrix.Fin.circulant_mul_comm + theorem Matrix.Fin.conjTranspose_circulant + theorem Matrix.Fin.transpose_circulant + def Matrix.circulant + theorem Matrix.circulant_add + theorem Matrix.circulant_apply + theorem Matrix.circulant_col_zero_eq + theorem Matrix.circulant_inj + theorem Matrix.circulant_injective + theorem Matrix.circulant_isSymm_apply + theorem Matrix.circulant_isSymm_iff + theorem Matrix.circulant_mul + theorem Matrix.circulant_mul_comm + theorem Matrix.circulant_neg + theorem Matrix.circulant_single + theorem Matrix.circulant_single_one + theorem Matrix.circulant_smul + theorem Matrix.circulant_sub + theorem Matrix.circulant_zero + theorem Matrix.conjTranspose_circulant + theorem Matrix.map_circulant + theorem Matrix.transpose_circulant 2023-04-24 04:16:29 db7b6d2 feat: forward-port leanprover-community/mathlib#18517 (#2543) Matches https://github.com/leanprover-community/mathlib/pull/18517 This result is required in #2508. ESTIMATED CHANGES Modified Mathlib/Order/Directed.lean + theorem DirectedOn.insert + def ScottContinuous + theorem directedOn_pair' + theorem directedOn_pair + theorem directedOn_singleton 2023-04-24 02:11:21 4ddd292 feat: port Data.String.Defs (#3612) * Add `isSuffixOf`, `isSuffixOf?`, and `getRest` functions. * Add `#align` statements. * Indent function bodies. ESTIMATED CHANGES Modified Mathlib/Data/String/Defs.lean + def String.getRest + def String.isSuffixOf + def String.isSuffixOf? +/- def String.replicate 2023-04-24 00:27:46 67d9267 feat: Miscellaneous defs and lemmas (#3589) Match https://github.com/leanprover-community/mathlib/pull/8289 ESTIMATED CHANGES Modified Mathlib/Data/Matrix/Basic.lean + theorem Matrix.dotProduct_one + theorem Matrix.mulVec_one +/- theorem Matrix.mul_submatrix_one + theorem Matrix.one_dotProduct + theorem Matrix.one_dotProduct_one +/- theorem Matrix.one_submatrix_mul + theorem Matrix.vec_one_mul 2023-04-23 17:44:57 ff79160 feat: port CategoryTheory.Abelian.Subobject (#3607) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Abelian/Subobject.lean + def CategoryTheory.Abelian.subobjectIsoSubobjectOp 2023-04-23 17:29:09 3142d12 feat: port CategoryTheory.ConcreteCategory.UnbundledHom (#3608) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/ConcreteCategory/UnbundledHom.lean + def CategoryTheory.UnbundledHom.mkHasForget₂ 2023-04-23 17:08:25 6c0e929 chore: forward-port leanprover-community/mathlib#18616 (#3574) ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/TensorProductBasis.lean + theorem Basis.tensorProduct_repr_tmul_apply 2023-04-23 09:27:40 b014d9d feat: port CategoryTheory.Limits.Preserves.FunctorCategory (#3599) Straightforward. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Limits/Preserves/FunctorCategory.lean + def CategoryTheory.FunctorCategory.prodPreservesColimits 2023-04-23 09:27:39 9d2364a feat: port LinearAlgebra.Matrix.AbsoluteValue (#3597) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/LinearAlgebra/Matrix/AbsoluteValue.lean + theorem Matrix.det_le + theorem Matrix.det_sum_le + theorem Matrix.det_sum_smul_le 2023-04-23 09:27:38 8bc7aec feat: `Function.update` is monotone (#3587) Match leanprover-community/mathlib#6418 and leanprover-community/mathlib#18841 * [`order.basic`@`210657c4ea4a4a7b234392f70a3a2a83346dfa90`..`90df25ded755a2cf9651ea850d1abe429b1e4eb1`](https://leanprover-community.github.io/mathlib-port-status/file/order/basic?range=210657c4ea4a4a7b234392f70a3a2a83346dfa90..90df25ded755a2cf9651ea850d1abe429b1e4eb1) * [`order.monotone.basic`@`ac5a7cec422c3909db52e13dde2e729657d19b0e`..`90df25ded755a2cf9651ea850d1abe429b1e4eb1`](https://leanprover-community.github.io/mathlib-port-status/file/order/monotone/basic?range=ac5a7cec422c3909db52e13dde2e729657d19b0e..90df25ded755a2cf9651ea850d1abe429b1e4eb1) * [`algebra.group.pi`@`b3f25363ae62cb169e72cd6b8b1ac97bacf21ca7`..`90df25ded755a2cf9651ea850d1abe429b1e4eb1`](https://leanprover-community.github.io/mathlib-port-status/file/algebra/group/pi?range=b3f25363ae62cb169e72cd6b8b1ac97bacf21ca7..90df25ded755a2cf9651ea850d1abe429b1e4eb1) ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Pi.lean + theorem Pi.mulSingle_mono + theorem Pi.mulSingle_strictMono + theorem Pi.single_mul_left + theorem Pi.single_mul_left_apply + theorem Pi.single_mul_right + theorem Pi.single_mul_right_apply Modified Mathlib/Order/Basic.lean + theorem update_le_update_iff' + theorem update_lt_update_iff Modified Mathlib/Order/Monotone/Basic.lean + theorem Function.update_mono + theorem Function.update_strictMono 2023-04-23 09:27:37 75e569b chore: forward-port leanprover-community/mathlib#18835 (#3573) ESTIMATED CHANGES Modified Mathlib/Data/Set/Intervals/Pi.lean + theorem Set.pi_univ_uIcc Modified Mathlib/Data/Set/Intervals/UnorderedInterval.lean + theorem Set.uIcc_prod_eq + theorem Set.uIcc_prod_uIcc 2023-04-23 07:33:31 8ad95db chore: forward-port leanprover-community/mathlib#18831 (#3572) ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Field/Basic.lean + theorem div_le_one_of_ge Modified Mathlib/Algebra/Order/Ring/Defs.lean + theorem le_mul_of_le_one_left + theorem le_mul_of_le_one_right + theorem lt_mul_of_lt_one_left + theorem lt_mul_of_lt_one_right + theorem mul_le_of_one_le_left + theorem mul_le_of_one_le_right + theorem mul_lt_of_one_lt_left + theorem mul_lt_of_one_lt_right Modified Mathlib/Algebra/Order/Ring/Lemmas.lean 2023-04-22 23:19:19 7fe0016 feat: use more function coercions in `apply_fun` (#3582) When `apply_fun f` is applied to the main goal, it creates the expression `Function.Injective f`, which requires that `f` be a function. Now `apply_fun` will insert a function coercion here if needed. Furthermore, `apply_fun` is now aware of `Equiv.injective`. ESTIMATED CHANGES Modified Mathlib/Tactic/ApplyFun.lean +/- def Mathlib.Tactic.applyFunHyp +/- def Mathlib.Tactic.applyFunTarget +/- def Mathlib.Tactic.applyFunTargetFailure + def Mathlib.Tactic.maybeProveInjective Modified test/apply_fun.lean 2023-04-22 23:19:17 5b41878 feat: port AlgebraicTopology.DoldKan.NCompGamma (#3576) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/AlgebraicTopology/DoldKan/FunctorN.lean + theorem AlgebraicTopology.DoldKan.compatibility_N₁_N₂ Added Mathlib/AlgebraicTopology/DoldKan/NCompGamma.lean + theorem AlgebraicTopology.DoldKan.PInfty_comp_map_mono_eq_zero + def AlgebraicTopology.DoldKan.compatibility_Γ₂N₁_Γ₂N₂ + theorem AlgebraicTopology.DoldKan.compatibility_Γ₂N₁_Γ₂N₂_hom_app + theorem AlgebraicTopology.DoldKan.compatibility_Γ₂N₁_Γ₂N₂_natTrans + theorem AlgebraicTopology.DoldKan.identity_N₂ + theorem AlgebraicTopology.DoldKan.identity_N₂_objectwise + theorem AlgebraicTopology.DoldKan.Γ₀_obj_termwise_mapMono_comp_PInfty + def AlgebraicTopology.DoldKan.Γ₂N₁.natTrans + def AlgebraicTopology.DoldKan.Γ₂N₁ + def AlgebraicTopology.DoldKan.Γ₂N₂.natTrans + theorem AlgebraicTopology.DoldKan.Γ₂N₂.natTrans_app_f_app + def AlgebraicTopology.DoldKan.Γ₂N₂ 2023-04-22 23:05:58 19b2ce6 feat: port CategoryTheory.Limits.Presheaf (#3208) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/CategoryTheory/Elements.lean Added Mathlib/CategoryTheory/Limits/Presheaf.lean + def CategoryTheory.ColimitAdj.Elements.initial + theorem CategoryTheory.ColimitAdj.extendAlongYoneda_map + theorem CategoryTheory.ColimitAdj.extendAlongYoneda_obj.hom_ext + theorem CategoryTheory.ColimitAdj.extendAlongYoneda_obj + def CategoryTheory.ColimitAdj.isInitial + def CategoryTheory.ColimitAdj.restrictYonedaHomEquiv + theorem CategoryTheory.ColimitAdj.restrictYonedaHomEquiv_natural + def CategoryTheory.ColimitAdj.restrictedYoneda + def CategoryTheory.ColimitAdj.restrictedYonedaYoneda + theorem CategoryTheory.coconeOfRepresentable_naturality + theorem CategoryTheory.coconeOfRepresentable_pt + theorem CategoryTheory.coconeOfRepresentable_ι_app + def CategoryTheory.functorToRepresentables 2023-04-22 18:50:07 68f5770 feat : add ext lemma for `Type u` (#3593) This lemma, which was not needed in mathlib3, simplifies several proofs (back to the state they were in in mathlib3). Note on what's going on here: Lean 3 `ext` would fall back on "try all ext lemmas" if it failed, and thus it could see through lots of definitional equalities. Lean 4 `ext` doesn't do this (because it's inefficient) and so we need to add more `ext` lemmas in order to recover Lean 3 functionality. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Adjunction/FullyFaithful.lean Modified Mathlib/CategoryTheory/Elements.lean Modified Mathlib/CategoryTheory/Sites/SheafOfTypes.lean Modified Mathlib/CategoryTheory/Sites/Sieves.lean Modified Mathlib/CategoryTheory/Types.lean + theorem CategoryTheory.types_ext Modified Mathlib/CategoryTheory/Yoneda.lean 2023-04-22 16:39:40 0b676a2 feat: port AlgebraicTopology.DoldKan.GammaCompN (#3568) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/AlgebraicTopology/DoldKan/GammaCompN.lean + def AlgebraicTopology.DoldKan.N₁Γ₀ + theorem AlgebraicTopology.DoldKan.N₁Γ₀_app + theorem AlgebraicTopology.DoldKan.N₁Γ₀_hom_app + theorem AlgebraicTopology.DoldKan.N₁Γ₀_hom_app_f_f + theorem AlgebraicTopology.DoldKan.N₁Γ₀_inv_app + theorem AlgebraicTopology.DoldKan.N₁Γ₀_inv_app_f_f + def AlgebraicTopology.DoldKan.N₂Γ₂ + def AlgebraicTopology.DoldKan.N₂Γ₂ToKaroubiIso + theorem AlgebraicTopology.DoldKan.N₂Γ₂_compatible_with_N₁Γ₀ + theorem AlgebraicTopology.DoldKan.N₂Γ₂_inv_app_f_f + theorem AlgebraicTopology.DoldKan.N₂Γ₂_toKaroubi + theorem AlgebraicTopology.DoldKan.whiskerLeft_toKaroubi_N₂Γ₂_hom + def AlgebraicTopology.DoldKan.Γ₀'CompNondegComplexFunctor + def AlgebraicTopology.DoldKan.Γ₀NondegComplexIso Modified Mathlib/AlgebraicTopology/DoldKan/SplitSimplicialObject.lean Modified Mathlib/AlgebraicTopology/SplitSimplicialObject.lean 2023-04-22 09:23:40 2d65666 feat: port LinearAlgebra.AffineSpace.Basis (#3578) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/LinearAlgebra/AffineSpace/Basis.lean + theorem AffineBasis.affineCombination_coord_eq_self + theorem AffineBasis.basisOf_apply + theorem AffineBasis.basisOf_reindex + theorem AffineBasis.coe_coord_of_subsingleton_eq_one + theorem AffineBasis.coe_reindex + theorem AffineBasis.coord_apply + theorem AffineBasis.coord_apply_centroid + theorem AffineBasis.coord_apply_combination_of_mem + theorem AffineBasis.coord_apply_combination_of_not_mem + theorem AffineBasis.coord_apply_eq + theorem AffineBasis.coord_apply_ne + theorem AffineBasis.coord_reindex + theorem AffineBasis.coords_apply + theorem AffineBasis.exists_affineBasis + theorem AffineBasis.exists_affine_subbasis + theorem AffineBasis.ext + theorem AffineBasis.ext_elem + theorem AffineBasis.ind + theorem AffineBasis.linear_combination_coord_eq_self + theorem AffineBasis.linear_eq_sumCoords + def AffineBasis.reindex + theorem AffineBasis.reindex_apply + theorem AffineBasis.reindex_refl + theorem AffineBasis.sum_coord_apply_eq_one + theorem AffineBasis.surjective_coord + theorem AffineBasis.tot + structure AffineBasis 2023-04-22 02:22:20 3a1848e chore: tidy various files (#3584) ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/Equiv.lean +/- def AlgEquiv.autCongr + theorem AlgEquiv.refl_toAlgHom - theorem AlgEquiv.refl_to_algHom + theorem AlgEquiv.symm_toRingEquiv - theorem AlgEquiv.symm_to_ringEquiv + theorem AlgEquiv.toAlgHom_toLinearMap + theorem AlgEquiv.toRingEquiv_symm - theorem AlgEquiv.to_algHom_toLinearMap - theorem AlgEquiv.to_ringEquiv_symm Modified Mathlib/CategoryTheory/Filtered.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Terminal.lean +/- theorem CategoryTheory.Limits.IsInitial.hasInitial Modified Mathlib/Combinatorics/SimpleGraph/Density.lean Modified Mathlib/Data/Bitvec/Basic.lean Modified Mathlib/Data/Real/ConjugateExponents.lean - theorem Real.IsConjugateExponent.inv_add_inv_conj_nNReal + theorem Real.IsConjugateExponent.inv_add_inv_conj_nnreal - theorem Real.IsConjugateExponent.one_lt_nNReal + theorem Real.IsConjugateExponent.one_lt_nnreal Modified Mathlib/Dynamics/OmegaLimit.lean +/- theorem Flow.omegaLimit_image_subset + theorem mapsTo_omegaLimit' - theorem mapsTo_omega_limit' - theorem omegaLimit_eq_bInter_inter + theorem omegaLimit_eq_binterᵢ_inter 2023-04-22 02:22:19 29b8eef fix: Fix `Polynomial.repr` (#3442) I misunderstood the `Repr` instance when I port this file, In Lean 4, `Repr` returns `Format`, not `String`, so my porting of `Polynomial.repr` was unnatural. ESTIMATED CHANGES Modified Mathlib/Data/Polynomial/Basic.lean Added test/Polynomial.lean + def p0 + def p1 + def p2 + def pX + def pXsq + def pu1 2023-04-22 02:08:54 754c3ef fix: computable `KleeneAlgebra (Language α)` instance (#3585) This is another case of https://github.com/leanprover/lean4/issues/2096 ESTIMATED CHANGES Modified Mathlib/Computability/Language.lean 2023-04-22 01:34:23 b53dd02 feat: port AlgebraicTopology.DoldKan.FunctorGamma (#3566) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/AlgebraicTopology/DoldKan/FunctorGamma.lean + theorem AlgebraicTopology.DoldKan.HigherFacesVanish.on_Γ₀_summand_id + theorem AlgebraicTopology.DoldKan.Isδ₀.eq_δ₀ + theorem AlgebraicTopology.DoldKan.Isδ₀.iff + def AlgebraicTopology.DoldKan.Isδ₀ + theorem AlgebraicTopology.DoldKan.PInfty_on_Γ₀_splitting_summand_eq_self + def AlgebraicTopology.DoldKan.Γ₀' + def AlgebraicTopology.DoldKan.Γ₀.Obj.Termwise.mapMono + theorem AlgebraicTopology.DoldKan.Γ₀.Obj.Termwise.mapMono_comp + theorem AlgebraicTopology.DoldKan.Γ₀.Obj.Termwise.mapMono_eq_zero + theorem AlgebraicTopology.DoldKan.Γ₀.Obj.Termwise.mapMono_id + theorem AlgebraicTopology.DoldKan.Γ₀.Obj.Termwise.mapMono_naturality + theorem AlgebraicTopology.DoldKan.Γ₀.Obj.Termwise.mapMono_δ₀' + theorem AlgebraicTopology.DoldKan.Γ₀.Obj.Termwise.mapMono_δ₀ + def AlgebraicTopology.DoldKan.Γ₀.Obj.map + theorem AlgebraicTopology.DoldKan.Γ₀.Obj.mapMono_on_summand_id + theorem AlgebraicTopology.DoldKan.Γ₀.Obj.map_epi_on_summand_id + theorem AlgebraicTopology.DoldKan.Γ₀.Obj.map_on_summand' + theorem AlgebraicTopology.DoldKan.Γ₀.Obj.map_on_summand + theorem AlgebraicTopology.DoldKan.Γ₀.Obj.map_on_summand₀' + theorem AlgebraicTopology.DoldKan.Γ₀.Obj.map_on_summand₀ + def AlgebraicTopology.DoldKan.Γ₀.Obj.obj₂ + def AlgebraicTopology.DoldKan.Γ₀.Obj.summand + def AlgebraicTopology.DoldKan.Γ₀.map + def AlgebraicTopology.DoldKan.Γ₀.obj + def AlgebraicTopology.DoldKan.Γ₀.splitting + theorem AlgebraicTopology.DoldKan.Γ₀.splitting_iso_hom_eq_id + theorem AlgebraicTopology.DoldKan.Γ₀.splitting_map_eq_id + def AlgebraicTopology.DoldKan.Γ₀ + def AlgebraicTopology.DoldKan.Γ₂ Modified Mathlib/AlgebraicTopology/SplitSimplicialObject.lean + theorem SimplicialObject.Split.hom_ext 2023-04-21 23:10:49 33a04ca feat: move doc-gen CI here (#3520) Creates a Github Action which runs doc-gen4 from within the mathlib4. This is done due to the speed issues of the original doc-gen4 CI as suggested on Zulip. While I ran these scripts locally it might very well be that I made some mistake that will mess this up in CI. Furthermore someone with privileges needs to configure a secret `MATHLIB4_DOCS_KEY` with an ed25519 SSH key that has push access to `leanprover-community/mathlib4_docs` in order for the script to upload the generated docs. ESTIMATED CHANGES Added .github/workflows/mathlib4docs.yml Added scripts/deploy_docs.sh 2023-04-21 19:24:26 aba6f4a perf: dsimp only to mitigate to_additive slowness (#3580) * `to_additive` is slow on this file. I'll try to improve performance in `to_additive`, but this behavior is exposed by working with gigantic proof terms. * The `dsimp only` in `Submonoid.LocalizationMap.lift` changes `to_additive` time from ~27s to ~7s (still needs improving, but this puts a band-aid on it). ESTIMATED CHANGES Modified Mathlib/GroupTheory/MonoidLocalization.lean 2023-04-21 15:12:32 0415500 chore: Algebra.RingQuot cleanup (#3577) Those changes were meant to be part of #3383 that got prematurely merged after some abusive relabeling. ESTIMATED CHANGES Modified Mathlib/Algebra/RingQuot.lean 2023-04-21 15:12:31 6f8cb06 fix: sync file list expected by cache with Lake changes (#3571) The `.c.trace` files no longer exist, see https://github.com/leanprover/lake/commit/6499494befc24e388d12f3d9411f99aae0769491#diff-43ead6410f2dcb31276401eb765b8ada18c8e288626dfa8d6123cfab46961e7aL81-L83. ESTIMATED CHANGES Modified Cache/IO.lean 2023-04-21 15:12:29 a1e24be feat: port Data.Polynomial.Module (#3407) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Data/Polynomial/Module.lean + theorem PolynomialModule.add_apply + theorem PolynomialModule.comp_eval + theorem PolynomialModule.comp_single + theorem PolynomialModule.comp_smul + def PolynomialModule.eval + theorem PolynomialModule.eval_lsingle + theorem PolynomialModule.eval_map' + theorem PolynomialModule.eval_map + theorem PolynomialModule.eval_single + theorem PolynomialModule.eval_smul + theorem PolynomialModule.induction_linear + theorem PolynomialModule.lsingle_apply + theorem PolynomialModule.map_single + theorem PolynomialModule.map_smul + theorem PolynomialModule.monomial_smul_apply + theorem PolynomialModule.monomial_smul_single + theorem PolynomialModule.single_apply + theorem PolynomialModule.single_smul + theorem PolynomialModule.smul_apply + theorem PolynomialModule.smul_single_apply + theorem PolynomialModule.zero_apply + def PolynomialModule 2023-04-21 12:33:33 88850ab feat: port AlgebraicTopology.DoldKan.SplitSimplicialObject (#3563) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/AlgebraicTopology/DoldKan/PInfty.lean + theorem AlgebraicTopology.DoldKan.QInfty_f - theorem AlgebraicTopology.DoldKan.qInfty_f Added Mathlib/AlgebraicTopology/DoldKan/SplitSimplicialObject.lean + theorem SimplicialObject.Splitting.PInfty_comp_πSummand_id + theorem SimplicialObject.Splitting.comp_PInfty_eq_zero_iff + theorem SimplicialObject.Splitting.decomposition_id + theorem SimplicialObject.Splitting.ιSummand_comp_PInfty_eq_zero + theorem SimplicialObject.Splitting.ιSummand_comp_d_comp_πSummand_eq_zero + theorem SimplicialObject.Splitting.ι_πSummand_eq_id + theorem SimplicialObject.Splitting.ι_πSummand_eq_zero + theorem SimplicialObject.Splitting.πSummand_comp_ιSummand_comp_PInfty_eq_PInfty + theorem SimplicialObject.Splitting.σ_comp_πSummand_id_eq_zero 2023-04-21 10:29:37 497281c feat: port RingTheory.MvPolynomial.Ideal (#3565) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/RingTheory/MvPolynomial/Ideal.lean + theorem MvPolynomial.mem_ideal_span_X_image + theorem MvPolynomial.mem_ideal_span_monomial_image + theorem MvPolynomial.mem_ideal_span_monomial_image_iff_dvd 2023-04-21 08:03:17 becd698 feat: port LinearAlgebra.Matrix.Nondegenerate (#3564) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/LinearAlgebra/Matrix/Nondegenerate.lean + theorem Matrix.Nondegenerate.eq_zero_of_ortho + theorem Matrix.Nondegenerate.exists_not_ortho_of_ne_zero + def Matrix.Nondegenerate + theorem Matrix.eq_zero_of_mulVec_eq_zero + theorem Matrix.eq_zero_of_vecMul_eq_zero + theorem Matrix.nondegenerate_of_det_ne_zero 2023-04-21 08:03:16 e8e8196 feat: port CategoryTheory.Adjunction.Over (#3562) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Adjunction/Over.lean + def CategoryTheory.forgetAdjStar + def CategoryTheory.star 2023-04-21 08:03:15 09aef02 feat: port AlgebraicTopology.DoldKan.Degeneracies (#3561) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/AlgebraicTopology/DoldKan/Degeneracies.lean + theorem AlgebraicTopology.DoldKan.HigherFacesVanish.comp_σ + theorem AlgebraicTopology.DoldKan.degeneracy_comp_PInfty + theorem AlgebraicTopology.DoldKan.σ_comp_PInfty + theorem AlgebraicTopology.DoldKan.σ_comp_P_eq_zero 2023-04-21 08:03:14 506b8ae feat: port AlgebraicTopology.DoldKan.NReflectsIso (#3548) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/AlgebraicTopology/DoldKan/NReflectsIso.lean + theorem AlgebraicTopology.DoldKan.compatibility_N₂_N₁_karoubi Modified Mathlib/CategoryTheory/Functor/ReflectsIso.lean 2023-04-21 08:03:11 4bef854 feat: port Algebra.RingQuot (#3383) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/RingQuot.lean + theorem RingCon.coe_algebraMap + theorem RingQuot.Rel.add_right + theorem RingQuot.Rel.neg + theorem RingQuot.Rel.smul + theorem RingQuot.Rel.star + theorem RingQuot.Rel.sub_left + theorem RingQuot.Rel.sub_right + inductive RingQuot.Rel + theorem RingQuot.add_quot + theorem RingQuot.eq_liftAlgHom_comp_mkAlgHom + theorem RingQuot.eq_lift_comp_mkRingHom + theorem RingQuot.eqvGen_rel_eq + def RingQuot.idealQuotientToRingQuot + theorem RingQuot.idealQuotientToRingQuot_apply + theorem RingQuot.liftAlgHom_mkAlgHom_apply + theorem RingQuot.liftAlgHom_unique + theorem RingQuot.lift_mkRingHom_apply + theorem RingQuot.lift_unique + theorem RingQuot.mkAlgHom_coe + theorem RingQuot.mkAlgHom_rel + theorem RingQuot.mkAlgHom_surjective + theorem RingQuot.mkRingHom_rel + theorem RingQuot.mkRingHom_surjective + theorem RingQuot.mul_quot + theorem RingQuot.neg_quot + theorem RingQuot.one_quot + theorem RingQuot.pow_quot + def RingQuot.ringCon + def RingQuot.ringQuotEquivIdealQuotient + def RingQuot.ringQuotToIdealQuotient + theorem RingQuot.ringQuotToIdealQuotient_apply + theorem RingQuot.ringQuot_ext' + theorem RingQuot.ringQuot_ext + theorem RingQuot.smul_quot + theorem RingQuot.star'_quot + def RingQuot.starRing + theorem RingQuot.sub_quot + theorem RingQuot.zero_quot + structure RingQuot Modified Mathlib/RingTheory/Ideal/Quotient.lean 2023-04-21 08:03:10 94d947d feat: port LinearAlgebra.AffineSpace.Independent (#3341) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/LinearAlgebra/AffineSpace/Independent.lean + theorem Affine.Simplex.centroid_eq_iff + theorem Affine.Simplex.centroid_eq_of_range_eq + theorem Affine.Simplex.ext + theorem Affine.Simplex.ext_iff + def Affine.Simplex.face + theorem Affine.Simplex.face_centroid_eq_centroid + theorem Affine.Simplex.face_centroid_eq_iff + theorem Affine.Simplex.face_eq_mkOfPoint + theorem Affine.Simplex.face_points' + theorem Affine.Simplex.face_points + def Affine.Simplex.mkOfPoint + theorem Affine.Simplex.mkOfPoint_points + theorem Affine.Simplex.range_face_points + def Affine.Simplex.reindex + theorem Affine.Simplex.reindex_range_points + theorem Affine.Simplex.reindex_refl + theorem Affine.Simplex.reindex_reindex_symm + theorem Affine.Simplex.reindex_symm_reindex + theorem Affine.Simplex.reindex_trans + structure Affine.Simplex + theorem AffineEquiv.affineIndependent_iff + theorem AffineEquiv.affineIndependent_set_of_eq_iff + theorem AffineIndependent.affineIndependent_of_not_mem_span + theorem AffineIndependent.affineSpan_disjoint_of_disjoint + theorem AffineIndependent.comp_embedding + theorem AffineIndependent.exists_mem_inter_of_exists_mem_inter_affineSpan + theorem AffineIndependent.indicator_eq_of_affineCombination_eq + theorem AffineIndependent.map' + theorem AffineIndependent.not_mem_affineSpan_diff + theorem AffineIndependent.of_comp + theorem AffineIndependent.of_set_of_injective + theorem AffineIndependent.units_lineMap + def AffineIndependent + theorem AffineMap.affineIndependent_iff + theorem affineCombination_mem_affineSpan_pair + theorem affineIndependent_def + theorem affineIndependent_equiv + theorem affineIndependent_iff + theorem affineIndependent_iff_eq_of_fintype_affineCombination_eq + theorem affineIndependent_iff_indicator_eq_of_affineCombination_eq + theorem affineIndependent_iff_linearIndependent_vsub + theorem affineIndependent_iff_of_fintype + theorem affineIndependent_of_ne + theorem affineIndependent_of_ne_of_mem_of_mem_of_not_mem + theorem affineIndependent_of_ne_of_mem_of_not_mem_of_mem + theorem affineIndependent_of_ne_of_not_mem_of_mem_of_mem + theorem affineIndependent_of_subsingleton + theorem affineIndependent_set_iff_linearIndependent_vsub + theorem exists_affineIndependent + theorem exists_nontrivial_relation_sum_zero_of_not_affine_ind + theorem exists_subset_affineIndependent_affineSpan_eq_top + theorem linearIndependent_set_iff_affineIndependent_vadd_union_singleton + theorem sign_eq_of_affineCombination_mem_affineSpan_pair + theorem sign_eq_of_affineCombination_mem_affineSpan_single_lineMap + theorem weightedVSub_mem_vectorSpan_pair 2023-04-21 05:17:59 408fbe2 chore: bump to nightly-2023-04-20 (#3557) ESTIMATED CHANGES Modified lake-manifest.json Modified lean-toolchain 2023-04-21 04:55:31 aca5834 feat: port AlgebraicTopology.DoldKan.Decomposition (#3544) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/AlgebraicTopology/DoldKan/Decomposition.lean + def AlgebraicTopology.DoldKan.MorphComponents.id + theorem AlgebraicTopology.DoldKan.MorphComponents.id_φ + def AlgebraicTopology.DoldKan.MorphComponents.postComp + theorem AlgebraicTopology.DoldKan.MorphComponents.postComp_φ + def AlgebraicTopology.DoldKan.MorphComponents.preComp + theorem AlgebraicTopology.DoldKan.MorphComponents.preComp_φ + def AlgebraicTopology.DoldKan.MorphComponents.φ + structure AlgebraicTopology.DoldKan.MorphComponents + theorem AlgebraicTopology.DoldKan.decomposition_Q 2023-04-21 04:27:55 79366de feat: port LinearAlgebra.Matrix.Adjugate (#3554) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/LinearAlgebra/Matrix/Adjugate.lean + theorem AlgHom.map_adjugate + def Matrix.adjugate + theorem Matrix.adjugate_adjugate' + theorem Matrix.adjugate_adjugate + theorem Matrix.adjugate_apply + theorem Matrix.adjugate_conjTranspose + theorem Matrix.adjugate_def + theorem Matrix.adjugate_diagonal + theorem Matrix.adjugate_eq_one_of_card_eq_one + theorem Matrix.adjugate_fin_one + theorem Matrix.adjugate_fin_two + theorem Matrix.adjugate_fin_two_of + theorem Matrix.adjugate_fin_zero + theorem Matrix.adjugate_mul + theorem Matrix.adjugate_mul_distrib + theorem Matrix.adjugate_mul_distrib_aux + theorem Matrix.adjugate_one + theorem Matrix.adjugate_pow + theorem Matrix.adjugate_reindex + theorem Matrix.adjugate_smul + theorem Matrix.adjugate_submatrix_equiv_self + theorem Matrix.adjugate_subsingleton + theorem Matrix.adjugate_transpose + theorem Matrix.adjugate_zero + def Matrix.cramer + def Matrix.cramerMap + theorem Matrix.cramerMap_is_linear + theorem Matrix.cramer_apply + theorem Matrix.cramer_eq_adjugate_mulVec + theorem Matrix.cramer_is_linear + theorem Matrix.cramer_one + theorem Matrix.cramer_reindex + theorem Matrix.cramer_row_self + theorem Matrix.cramer_smul + theorem Matrix.cramer_submatrix_equiv + theorem Matrix.cramer_subsingleton_apply + theorem Matrix.cramer_transpose_apply + theorem Matrix.cramer_transpose_row_self + theorem Matrix.cramer_zero + theorem Matrix.det_adjugate + theorem Matrix.det_smul_adjugate_adjugate + theorem Matrix.isRegular_of_isLeftRegular_det + theorem Matrix.mulVec_cramer + theorem Matrix.mul_adjugate + theorem Matrix.mul_adjugate_apply + theorem Matrix.sum_cramer + theorem Matrix.sum_cramer_apply + theorem RingHom.map_adjugate 2023-04-21 04:11:45 c7d9149 feat: make `ListM` safe (#3559) Hide the unsafe inductive powering `ListM` behind a safe API using `implemented_by`. ESTIMATED CHANGES Modified Mathlib/Data/ListM/Basic.lean + def ListM.asArray + def ListM.cases' + def ListM.concat + def ListM.cons' + def ListM.cons + def ListM.drop + def ListM.enum + def ListM.filter + def ListM.filterMap + def ListM.first + def ListM.firstM + def ListM.fixl + def ListM.folds + def ListM.head + def ListM.head? + def ListM.isEmpty + def ListM.map + def ListM.monadLift + def ListM.nil + def ListM.ofList + def ListM.ofListM + def ListM.range + def ListM.runState' + def ListM.squash + def ListM.takeUpToFirst + def ListM.takeWhile + def ListM.uncons + def ListM Modified Mathlib/Data/ListM/Heartbeats.lean + def ListM.whileAtLeastHeartbeatsPercent Modified Mathlib/Tactic/LibrarySearch.lean + def Mathlib.Tactic.LibrarySearch.librarySearchCore Modified test/ListM.lean + def l1 + def l2 + def ll 2023-04-21 02:11:58 ed7dde1 chore: simplify how solve_by_elim works when not backtracking (#3480) We had some unfortunate spaghetti code in `solve_by_elim`. When @hrmacbeth had requested additional features for `apply_rules`, the easiest way to provide them was to re-use `solve_by_elim`'s parsing and lemma handling. (See https://github.com/leanprover-community/mathlib4/pull/856.) However `apply_rules` doesn't to backtracking, and `solve_by_elim` is all about it. At the time, `solve_by_elim` didn't have clean separation between its "lemma application" and "backtracking" considerations, so the solution was to add some hacks the prevented the backtracking from actually occurring, in the backtracking code... Since https://github.com/leanprover-community/mathlib4/pull/2920, those considerations have been cleanly separated out. Thus it's possible to greatly simplify how we don't backtrack when we don't want to (in `apply_rules`). This PR does that. ESTIMATED CHANGES Modified Mathlib/Tactic/Backtracking.lean Modified Mathlib/Tactic/Monotonicity/Basic.lean Modified Mathlib/Tactic/SolveByElim.lean +/- def Lean.MVarId.applyRules - def Mathlib.Tactic.SolveByElim.Config.noBackTracking + def Mathlib.Tactic.SolveByElim.applyFirst + def Mathlib.Tactic.SolveByElim.applyFirstLemma Modified test/apply_rules.lean 2023-04-21 02:11:57 9dc53ba feat: port Algebra.MonoidAlgebra.Ideal (#3106) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/MonoidAlgebra/Ideal.lean + theorem AddMonoidAlgebra.mem_ideal_span_of'_image + theorem MonoidAlgebra.mem_ideal_span_of_image 2023-04-20 18:32:12 9d37e73 feat: Port CategoryTheory.Monad.Limits (#3533) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Monad/Limits.lean + def CategoryTheory.Monad.ForgetCreatesColimits.coconePoint + theorem CategoryTheory.Monad.ForgetCreatesColimits.commuting + def CategoryTheory.Monad.ForgetCreatesColimits.lambda + def CategoryTheory.Monad.ForgetCreatesColimits.liftedCocone + def CategoryTheory.Monad.ForgetCreatesColimits.liftedCoconeIsColimit + def CategoryTheory.Monad.ForgetCreatesColimits.newCocone + def CategoryTheory.Monad.ForgetCreatesColimits.γ + def CategoryTheory.Monad.ForgetCreatesLimits.conePoint + def CategoryTheory.Monad.ForgetCreatesLimits.liftedCone + def CategoryTheory.Monad.ForgetCreatesLimits.liftedConeIsLimit + def CategoryTheory.Monad.ForgetCreatesLimits.newCone + def CategoryTheory.Monad.ForgetCreatesLimits.γ + theorem CategoryTheory.Monad.forget_creates_colimits_of_monad_preserves + theorem CategoryTheory.Monad.hasLimit_of_comp_forget_hasLimit + theorem CategoryTheory.hasColimitsOfShape_of_reflective + theorem CategoryTheory.hasLimit_of_reflective + theorem CategoryTheory.hasLimitsOfShape_of_reflective + theorem CategoryTheory.has_colimits_of_reflective + theorem CategoryTheory.has_limits_of_reflective 2023-04-20 17:57:47 5108877 feat: port AlgebraicTopology.DoldKan.FunctorN (#3543) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/AlgebraicTopology/DoldKan/FunctorN.lean + def AlgebraicTopology.DoldKan.N₁ + def AlgebraicTopology.DoldKan.N₂ 2023-04-20 17:11:32 1d9fdc0 feat: port AlgebraicTopology.DoldKan.PInfty (#3539) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/AlgebraicTopology/AlternatingFaceMapComplex.lean + theorem AlgebraicTopology.karoubi_alternatingFaceMapComplex_d - theorem AlgebraicTopology.karoubi_alternating_face_map_complex_d Added Mathlib/AlgebraicTopology/DoldKan/PInfty.lean + theorem AlgebraicTopology.DoldKan.PInfty_add_QInfty + theorem AlgebraicTopology.DoldKan.PInfty_comp_QInfty + theorem AlgebraicTopology.DoldKan.PInfty_f + theorem AlgebraicTopology.DoldKan.PInfty_f_0 + theorem AlgebraicTopology.DoldKan.PInfty_f_add_QInfty_f + theorem AlgebraicTopology.DoldKan.PInfty_f_comp_QInfty_f + theorem AlgebraicTopology.DoldKan.PInfty_f_idem + theorem AlgebraicTopology.DoldKan.PInfty_f_naturality + theorem AlgebraicTopology.DoldKan.PInfty_idem + theorem AlgebraicTopology.DoldKan.P_is_eventually_constant + theorem AlgebraicTopology.DoldKan.QInfty_comp_PInfty + theorem AlgebraicTopology.DoldKan.QInfty_f_0 + theorem AlgebraicTopology.DoldKan.QInfty_f_comp_PInfty_f + theorem AlgebraicTopology.DoldKan.QInfty_f_idem + theorem AlgebraicTopology.DoldKan.QInfty_f_naturality + theorem AlgebraicTopology.DoldKan.QInfty_idem + theorem AlgebraicTopology.DoldKan.Q_is_eventually_constant + theorem AlgebraicTopology.DoldKan.karoubi_PInfty_f + theorem AlgebraicTopology.DoldKan.map_PInfty_f + theorem AlgebraicTopology.DoldKan.qInfty_f 2023-04-20 16:23:08 4bea27d feat: port CategoryTheory.Monad.Products (#3553) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Monad/Products.lean + def CategoryTheory.algebraEquivUnder + def CategoryTheory.algebraToUnder + def CategoryTheory.coalgebraEquivOver + def CategoryTheory.coalgebraToOver + def CategoryTheory.coprodMonad + def CategoryTheory.overToCoalgebra + def CategoryTheory.prodComonad + def CategoryTheory.underToAlgebra 2023-04-20 15:58:07 de1fe35 feat: port LinearAlgebra.Matrix.Polynomial (#3550) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/LinearAlgebra/Matrix/Polynomial.lean + theorem Polynomial.coeff_det_X_add_C_card + theorem Polynomial.coeff_det_X_add_C_zero + theorem Polynomial.leadingCoeff_det_X_one_add_C + theorem Polynomial.natDegree_det_X_add_C_le 2023-04-20 15:36:22 6958ddf feat: port Data.Matrix.Reflection (#3551) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Data/Matrix/Reflection.lean + def Matrix.Exists + def Matrix.Forall + def Matrix.dotProductᵣ + theorem Matrix.dotProductᵣ_eq + def Matrix.etaExpand + theorem Matrix.etaExpand_eq + theorem Matrix.exists_iff + theorem Matrix.forall_iff + def Matrix.mulVecᵣ + theorem Matrix.mulVecᵣ_eq + def Matrix.mulᵣ + theorem Matrix.mulᵣ_eq + def Matrix.transposeᵣ + theorem Matrix.transposeᵣ_eq + def Matrix.vecMulᵣ + theorem Matrix.vecMulᵣ_eq 2023-04-20 15:22:30 604a91b feat: port LinearAlgebra.Matrix.Reindex (#3549) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/LinearAlgebra/Matrix/Reindex.lean + theorem Matrix.det_reindexAlgEquiv + theorem Matrix.det_reindexLinearEquiv_self + theorem Matrix.mul_reindexLinearEquiv_one + def Matrix.reindexAlgEquiv + theorem Matrix.reindexAlgEquiv_apply + theorem Matrix.reindexAlgEquiv_mul + theorem Matrix.reindexAlgEquiv_refl + theorem Matrix.reindexAlgEquiv_symm + def Matrix.reindexLinearEquiv + theorem Matrix.reindexLinearEquiv_apply + theorem Matrix.reindexLinearEquiv_comp + theorem Matrix.reindexLinearEquiv_comp_apply + theorem Matrix.reindexLinearEquiv_mul + theorem Matrix.reindexLinearEquiv_one + theorem Matrix.reindexLinearEquiv_refl_refl + theorem Matrix.reindexLinearEquiv_symm + theorem Matrix.reindexLinearEquiv_trans 2023-04-20 15:22:29 d394799 feat: port LinearAlgebra.Matrix.MvPolynomial (#3547) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/LinearAlgebra/Matrix/MvPolynomial.lean + theorem Matrix.det_mvPolynomialX_ne_zero + theorem Matrix.mvPolynomialX_apply + theorem Matrix.mvPolynomialX_mapMatrix_aeval + theorem Matrix.mvPolynomialX_mapMatrix_eval + theorem Matrix.mvPolynomialX_map_eval₂ 2023-04-20 15:22:27 184ec5c feat: Port CategoryTheory.Monad.Adjunction (#3528) ~~This is still WIP.~~ There may be a change to `reassoc` that would make this nicer, see [zulip](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/Bug.20in.20reassoc.3F/near/351111877) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Monad/Adjunction.lean + def CategoryTheory.Adjunction.adjToComonadIso + def CategoryTheory.Adjunction.adjToMonadIso + def CategoryTheory.Adjunction.toComonad + def CategoryTheory.Adjunction.toMonad + def CategoryTheory.Comonad.comparison + def CategoryTheory.Comonad.comparisonForget + theorem CategoryTheory.Comonad.left_comparison + def CategoryTheory.Monad.comparison + def CategoryTheory.Monad.comparisonForget + theorem CategoryTheory.Monad.left_comparison 2023-04-20 12:31:24 cc2f846 feat: port AlgebraicTopology.DoldKan.Projections (#3536) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/AlgebraicTopology/DoldKan/Projections.lean + theorem AlgebraicTopology.DoldKan.HigherFacesVanish.comp_P_eq_self + theorem AlgebraicTopology.DoldKan.HigherFacesVanish.of_P + theorem AlgebraicTopology.DoldKan.P_add_Q + theorem AlgebraicTopology.DoldKan.P_add_Q_f + theorem AlgebraicTopology.DoldKan.P_f_0_eq + theorem AlgebraicTopology.DoldKan.P_f_idem + theorem AlgebraicTopology.DoldKan.P_f_naturality + theorem AlgebraicTopology.DoldKan.P_idem + theorem AlgebraicTopology.DoldKan.P_succ + theorem AlgebraicTopology.DoldKan.P_zero + def AlgebraicTopology.DoldKan.Q + theorem AlgebraicTopology.DoldKan.Q_f_0_eq + theorem AlgebraicTopology.DoldKan.Q_f_idem + theorem AlgebraicTopology.DoldKan.Q_f_naturality + theorem AlgebraicTopology.DoldKan.Q_idem + theorem AlgebraicTopology.DoldKan.Q_succ + theorem AlgebraicTopology.DoldKan.Q_zero + theorem AlgebraicTopology.DoldKan.comp_P_eq_self_iff + theorem AlgebraicTopology.DoldKan.map_P + theorem AlgebraicTopology.DoldKan.map_Q + def AlgebraicTopology.DoldKan.natTransP + def AlgebraicTopology.DoldKan.natTransQ 2023-04-20 12:31:22 db5f318 feat: port Data.MvPolynomial.Funext (#3225) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Data/MvPolynomial/Basic.lean + theorem MvPolynomial.eval_eval₂ + theorem MvPolynomial.eval₂_id Added Mathlib/Data/MvPolynomial/Funext.lean + theorem MvPolynomial.funext + theorem MvPolynomial.funext_iff Added Mathlib/Data/MvPolynomial/Polynomial.lean + theorem MvPolynomial.eval_polynomial_eval_finSuccEquiv + theorem MvPolynomial.polynomial_eval_eval₂ Modified Mathlib/Tactic/Conv.lean 2023-04-20 12:31:21 c80a95d feat: port RingTheory.ChainOfDivisors (#3056) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/RingTheory/ChainOfDivisors.lean + theorem Associates.isAtom_iff + theorem DivisorChain.card_subset_divisors_le_length_of_chain + theorem DivisorChain.element_of_chain_eq_pow_second_of_chain + theorem DivisorChain.element_of_chain_not_isUnit_of_index_ne_zero + theorem DivisorChain.eq_pow_second_of_chain_of_has_chain + theorem DivisorChain.eq_second_of_chain_of_prime_dvd + theorem DivisorChain.exists_chain_of_prime_pow + theorem DivisorChain.first_of_chain_isUnit + theorem DivisorChain.isPrimePow_of_has_chain + theorem DivisorChain.second_of_chain_is_irreducible + theorem coe_factor_orderIso_map_eq_one_iff + theorem factor_orderIso_map_one_eq_bot + theorem map_prime_of_factor_orderIso + theorem mem_normalizedFactors_factor_dvd_iso_of_mem_normalizedFactors + theorem mem_normalizedFactors_factor_orderIso_of_mem_normalizedFactors + def mkFactorOrderIsoOfFactorDvdEquiv + theorem multiplicity_factor_dvd_iso_eq_multiplicity_of_mem_normalizedFactors + theorem multiplicity_prime_eq_multiplicity_image_by_factor_orderIso + theorem multiplicity_prime_le_multiplicity_image_by_factor_orderIso + theorem pow_image_of_prime_by_factor_orderIso_dvd 2023-04-20 11:28:09 5a5f6d5 chore: forward port leanprover-community/mathlib#18442 (#3545) * leanprover-community/mathlib#18442 ESTIMATED CHANGES Modified Mathlib/Combinatorics/SimpleGraph/Connectivity.lean + theorem SimpleGraph.ConnectedComponent.connectedComponentMk_eq_of_adj + theorem SimpleGraph.ConnectedComponent.connectedComponentMk_mem + def SimpleGraph.ConnectedComponent.isoEquivSupp + theorem SimpleGraph.ConnectedComponent.iso_image_comp_eq_map_iff_eq_comp + theorem SimpleGraph.ConnectedComponent.iso_inv_image_comp_eq_iff_eq_map + theorem SimpleGraph.ConnectedComponent.mem_supp_iff + def SimpleGraph.ConnectedComponent.supp + theorem SimpleGraph.ConnectedComponent.supp_inj + theorem SimpleGraph.ConnectedComponent.supp_injective + def SimpleGraph.Iso.connectedComponentEquiv + theorem SimpleGraph.Iso.connectedComponentEquiv_refl + theorem SimpleGraph.Iso.connectedComponentEquiv_symm + theorem SimpleGraph.Iso.connectedComponentEquiv_trans + theorem SimpleGraph.Iso.reachable_iff + theorem SimpleGraph.Iso.symm_apply_reachable 2023-04-20 11:28:07 e0fa506 feat: inverse of LinearPMap (#3527) ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/LinearPMap.lean + theorem LinearPMap.graph_map_fst_eq_domain + theorem LinearPMap.graph_map_snd_eq_range + theorem LinearPMap.inverse_apply_eq + theorem LinearPMap.inverse_domain + theorem LinearPMap.inverse_graph + theorem LinearPMap.inverse_range + theorem LinearPMap.mem_inverse_graph + theorem Submodule.toLinearPMap_domain + theorem Submodule.toLinearPMap_range Modified Mathlib/LinearAlgebra/Prod.lean + theorem LinearEquiv.fst_comp_prodComm + theorem LinearEquiv.snd_comp_prodComm 2023-04-20 11:28:06 a0ec959 feat: port LinearAlgebra.FreeModule.PID (#3434) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/LinearAlgebra/FreeModule/PID.lean + structure Basis.SmithNormalForm + theorem Ideal.exists_smith_normal_form + theorem Ideal.selfBasis_def + theorem Ideal.smithCoeffs_ne_zero + theorem LinearIndependent.restrict_scalars_algebras + theorem Module.free_of_finite_type_torsion_free' + theorem Module.free_of_finite_type_torsion_free + theorem Submodule.basisOfPid_bot + theorem Submodule.basis_of_pid_aux + theorem Submodule.exists_smith_normal_form_of_le + theorem Submodule.nonempty_basis_of_pid + theorem dvd_generator_iff + theorem eq_bot_of_generator_maximal_map_eq_zero + theorem eq_bot_of_generator_maximal_submoduleImage_eq_zero + theorem generator_maximal_submoduleImage_dvd 2023-04-20 10:27:47 047fc47 feat: port CategoryTheory.Preadditive.EilenbergMoore (#3546) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Preadditive/EilenbergMoore.lean 2023-04-20 10:27:46 1e61d3d feat: port LinearAlgebra.Matrix.Determinant (#3540) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/LinearAlgebra/Matrix/Determinant.lean + theorem AlgEquiv.map_det + theorem AlgHom.map_det + theorem Matrix.coe_detMonoidHom + theorem Matrix.coe_det_isEmpty + def Matrix.detMonoidHom + def Matrix.detRowAlternating + theorem Matrix.det_apply' + theorem Matrix.det_apply + theorem Matrix.det_blockDiagonal + theorem Matrix.det_conjTranspose + theorem Matrix.det_diagonal + theorem Matrix.det_eq_elem_of_card_eq_one + theorem Matrix.det_eq_elem_of_subsingleton + theorem Matrix.det_eq_of_eq_det_one_mul + theorem Matrix.det_eq_of_eq_mul_det_one + theorem Matrix.det_eq_of_forall_col_eq_smul_add_pred + theorem Matrix.det_eq_of_forall_row_eq_smul_add_const + theorem Matrix.det_eq_of_forall_row_eq_smul_add_const_aux + theorem Matrix.det_eq_of_forall_row_eq_smul_add_pred + theorem Matrix.det_eq_of_forall_row_eq_smul_add_pred_aux + theorem Matrix.det_eq_one_of_card_eq_zero + theorem Matrix.det_eq_zero_of_column_eq_zero + theorem Matrix.det_eq_zero_of_row_eq_zero + theorem Matrix.det_fin_one + theorem Matrix.det_fin_one_of + theorem Matrix.det_fin_three + theorem Matrix.det_fin_two + theorem Matrix.det_fin_two_of + theorem Matrix.det_fin_zero + theorem Matrix.det_fromBlocks_zero₁₂ + theorem Matrix.det_fromBlocks_zero₂₁ + theorem Matrix.det_isEmpty + theorem Matrix.det_mul + theorem Matrix.det_mul_aux + theorem Matrix.det_mul_column + theorem Matrix.det_mul_comm + theorem Matrix.det_mul_left_comm + theorem Matrix.det_mul_right_comm + theorem Matrix.det_mul_row + theorem Matrix.det_neg + theorem Matrix.det_neg_eq_smul + theorem Matrix.det_one + theorem Matrix.det_permutation + theorem Matrix.det_permute + theorem Matrix.det_pow + theorem Matrix.det_reindex_self + theorem Matrix.det_smul + theorem Matrix.det_smul_of_tower + theorem Matrix.det_submatrix_equiv_self + theorem Matrix.det_succ_column + theorem Matrix.det_succ_column_zero + theorem Matrix.det_succ_row + theorem Matrix.det_succ_row_zero + theorem Matrix.det_transpose + theorem Matrix.det_unique + theorem Matrix.det_units_conj' + theorem Matrix.det_units_conj + theorem Matrix.det_updateColumn_add + theorem Matrix.det_updateColumn_add_self + theorem Matrix.det_updateColumn_add_smul_self + theorem Matrix.det_updateColumn_smul' + theorem Matrix.det_updateColumn_smul + theorem Matrix.det_updateRow_add + theorem Matrix.det_updateRow_add_self + theorem Matrix.det_updateRow_add_smul_self + theorem Matrix.det_updateRow_smul' + theorem Matrix.det_updateRow_smul + theorem Matrix.det_zero + theorem Matrix.det_zero_of_column_eq + theorem Matrix.det_zero_of_row_eq + theorem RingEquiv.map_det + theorem RingHom.map_det 2023-04-20 10:27:45 c086651 feat: port AlgebraicTopology.DoldKan.Faces (#3526) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/AlgebraicTopology/DoldKan/Faces.lean + theorem AlgebraicTopology.DoldKan.HigherFacesVanish.comp_Hσ_eq + theorem AlgebraicTopology.DoldKan.HigherFacesVanish.comp_Hσ_eq_zero + theorem AlgebraicTopology.DoldKan.HigherFacesVanish.comp_δ_eq_zero + theorem AlgebraicTopology.DoldKan.HigherFacesVanish.induction + theorem AlgebraicTopology.DoldKan.HigherFacesVanish.of_comp + theorem AlgebraicTopology.DoldKan.HigherFacesVanish.of_succ + def AlgebraicTopology.DoldKan.HigherFacesVanish 2023-04-20 10:27:43 ac0e585 feat: port Data.Seq.Parallel (#3512) This PR also make `Prod.rec` computable. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Data/Seq/Parallel.lean + theorem Computation.exists_of_mem_parallel + theorem Computation.map_parallel + theorem Computation.mem_parallel + def Computation.parallel.aux1 + def Computation.parallel.aux2 + def Computation.parallel + def Computation.parallelRec + theorem Computation.parallel_congr_left + theorem Computation.parallel_congr_lem + theorem Computation.parallel_congr_right + theorem Computation.parallel_empty + theorem Computation.parallel_promises + theorem Computation.terminates_parallel.aux + theorem Computation.terminates_parallel Modified Mathlib/Init/Data/Prod.lean + def Prod.recC + theorem rec_eq_recC 2023-04-20 08:29:25 b1e0214 chore: add .DS_Store to .gitignore (#3538) mac users should have this in their `.gitignore` file, but sometimes don't, as evidenced by https://github.com/leanprover-community/mathlib4/pull/3511, which then unfortunately broke the port-status bot for a day! ESTIMATED CHANGES Modified .gitignore 2023-04-20 08:29:24 b68958f chore: remove `clear` (#3537) Those used to be necessary because of a linarith bug, which was fixed in #2611 ESTIMATED CHANGES Modified Mathlib/Topology/MetricSpace/EMetricParacompact.lean 2023-04-20 08:29:23 c378edf feat: improve propose documentation (#3534) Per suggestion on [zulip](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/New.20.60propose.60.20tactic/near/350961701). ESTIMATED CHANGES Modified Mathlib/Tactic/Propose.lean 2023-04-20 08:29:21 648ea12 feat: port observe tactic from mathlib (#3516) ESTIMATED CHANGES Modified Mathlib/Tactic/LibrarySearch.lean Modified Mathlib/Tactic/TryThis.lean +/- def addHaveSuggestion Modified test/librarySearch.lean Added test/observe.lean + theorem euclid 2023-04-20 08:29:20 8f32e1d chore: have linarith print the goal when it fails (#3273) This makes `linarith` print the goal (including hypotheses) when it fails, as many other tactics do. This was motivated by watching the `sagredo` tactic trying to use `linarith`, but failing to see that it didn't quite have the correct hypotheses yet. Once it gave up on using `linarith`, it tried `contradiction`, which printed a more helpful error message (in which a human, although not quite GPT, could easily see the inequalities weren't quite right). ESTIMATED CHANGES Modified Mathlib/Tactic/Linarith/Frontend.lean 2023-04-20 08:29:09 12c8e4f chore: fix simps projections in CategoryTheory.Monad.Basic (#3269) This fixes a regression of `@[simps]` to `@[simp]` from #2969, per [zulip](https://leanprover.zulipchat.com/#narrow/stream/144837-PR-reviews/topic/!4.232969.20simps.20bug.3F.20.28Monad.2EBasic.29). There are a few incidental changes to `@[simps]` arguments in this PR, just removing arguments that had no effect on behaviour. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Abelian/NonPreadditive.lean Modified Mathlib/CategoryTheory/Bicategory/Functor.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Equalizers.lean Modified Mathlib/CategoryTheory/Monad/Basic.lean Modified Mathlib/CategoryTheory/Monoidal/Functor.lean Modified Mathlib/CategoryTheory/Monoidal/NaturalTransformation.lean 2023-04-20 06:30:56 ba9ce27 chore: forward port last part of leanprover-community/mathlib#18248 (#3508) ESTIMATED CHANGES Modified Mathlib/Topology/Perfect.lean + theorem Perfect.exists_nat_bool_injection + theorem Perfect.small_diam_splitting 2023-04-20 06:30:55 133aee5 feat: port Data.Seq.WSeq (#3405) This PR also make `Option.recOn` computable. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Data/Option/Basic.lean + def Option.recOnC.{u_1, + theorem Option.recOn_eq_recOnC Added Mathlib/Data/Seq/WSeq.lean + theorem Stream'.WSeq.BisimO.imp + def Stream'.WSeq.BisimO + theorem Stream'.WSeq.Equiv.equivalence + theorem Stream'.WSeq.Equiv.ext + theorem Stream'.WSeq.Equiv.refl + theorem Stream'.WSeq.Equiv.symm + theorem Stream'.WSeq.Equiv.trans + def Stream'.WSeq.Equiv + theorem Stream'.WSeq.LiftRel.equiv + theorem Stream'.WSeq.LiftRel.refl + theorem Stream'.WSeq.LiftRel.swap + theorem Stream'.WSeq.LiftRel.swap_lem + theorem Stream'.WSeq.LiftRel.symm + theorem Stream'.WSeq.LiftRel.trans + def Stream'.WSeq.LiftRel + theorem Stream'.WSeq.LiftRelO.imp + theorem Stream'.WSeq.LiftRelO.imp_right + theorem Stream'.WSeq.LiftRelO.swap + def Stream'.WSeq.LiftRelO + def Stream'.WSeq.all + def Stream'.WSeq.any + def Stream'.WSeq.append + theorem Stream'.WSeq.append_assoc + theorem Stream'.WSeq.append_nil + def Stream'.WSeq.bind + theorem Stream'.WSeq.bind_assoc + theorem Stream'.WSeq.bind_congr + theorem Stream'.WSeq.bind_ret + def Stream'.WSeq.collect + def Stream'.WSeq.compute + def Stream'.WSeq.cons + theorem Stream'.WSeq.cons_append + theorem Stream'.WSeq.cons_congr + def Stream'.WSeq.destruct + def Stream'.WSeq.destruct_append.aux + theorem Stream'.WSeq.destruct_append + theorem Stream'.WSeq.destruct_congr + theorem Stream'.WSeq.destruct_congr_iff + theorem Stream'.WSeq.destruct_cons + theorem Stream'.WSeq.destruct_dropn + theorem Stream'.WSeq.destruct_flatten + def Stream'.WSeq.destruct_join.aux + theorem Stream'.WSeq.destruct_join + theorem Stream'.WSeq.destruct_map + theorem Stream'.WSeq.destruct_nil + theorem Stream'.WSeq.destruct_ofSeq + theorem Stream'.WSeq.destruct_some_of_destruct_tail_some + theorem Stream'.WSeq.destruct_tail + theorem Stream'.WSeq.destruct_terminates_of_get?_terminates + theorem Stream'.WSeq.destruct_think + def Stream'.WSeq.drop.aux + theorem Stream'.WSeq.drop.aux_none + def Stream'.WSeq.drop + theorem Stream'.WSeq.dropn_add + theorem Stream'.WSeq.dropn_congr + theorem Stream'.WSeq.dropn_cons + theorem Stream'.WSeq.dropn_nil + theorem Stream'.WSeq.dropn_ofSeq + theorem Stream'.WSeq.dropn_tail + theorem Stream'.WSeq.dropn_think + theorem Stream'.WSeq.eq_or_mem_iff_mem + theorem Stream'.WSeq.exists_dropn_of_mem + theorem Stream'.WSeq.exists_get?_of_mem + theorem Stream'.WSeq.exists_of_liftRel_left + theorem Stream'.WSeq.exists_of_liftRel_right + theorem Stream'.WSeq.exists_of_mem_bind + theorem Stream'.WSeq.exists_of_mem_join + theorem Stream'.WSeq.exists_of_mem_map + def Stream'.WSeq.filter + def Stream'.WSeq.filterMap + def Stream'.WSeq.find + def Stream'.WSeq.findIndex + def Stream'.WSeq.findIndexes + def Stream'.WSeq.flatten + theorem Stream'.WSeq.flatten_congr + theorem Stream'.WSeq.flatten_equiv + theorem Stream'.WSeq.flatten_pure + theorem Stream'.WSeq.flatten_think + def Stream'.WSeq.get + def Stream'.WSeq.get? + theorem Stream'.WSeq.get?_add + theorem Stream'.WSeq.get?_congr + theorem Stream'.WSeq.get?_mem + theorem Stream'.WSeq.get?_ofSeq + theorem Stream'.WSeq.get?_tail + theorem Stream'.WSeq.get?_terminates_le + def Stream'.WSeq.head + theorem Stream'.WSeq.head_congr + theorem Stream'.WSeq.head_cons + theorem Stream'.WSeq.head_nil + theorem Stream'.WSeq.head_ofSeq + theorem Stream'.WSeq.head_some_of_get?_some + theorem Stream'.WSeq.head_some_of_head_tail_some + theorem Stream'.WSeq.head_terminates_iff + theorem Stream'.WSeq.head_terminates_of_get?_terminates + theorem Stream'.WSeq.head_terminates_of_head_tail_terminates + theorem Stream'.WSeq.head_terminates_of_mem + theorem Stream'.WSeq.head_think + def Stream'.WSeq.indexOf + def Stream'.WSeq.indexesOf + def Stream'.WSeq.inits + def Stream'.WSeq.isEmpty + def Stream'.WSeq.join + theorem Stream'.WSeq.join_append + theorem Stream'.WSeq.join_congr + theorem Stream'.WSeq.join_cons + theorem Stream'.WSeq.join_join + theorem Stream'.WSeq.join_map_ret + theorem Stream'.WSeq.join_nil + theorem Stream'.WSeq.join_ret + theorem Stream'.WSeq.join_think + def Stream'.WSeq.length + theorem Stream'.WSeq.length_eq_map + theorem Stream'.WSeq.liftRel_append + theorem Stream'.WSeq.liftRel_bind + theorem Stream'.WSeq.liftRel_cons + theorem Stream'.WSeq.liftRel_destruct + theorem Stream'.WSeq.liftRel_destruct_iff + theorem Stream'.WSeq.liftRel_dropn_destruct + theorem Stream'.WSeq.liftRel_flatten + theorem Stream'.WSeq.liftRel_join.lem + theorem Stream'.WSeq.liftRel_join + theorem Stream'.WSeq.liftRel_map + theorem Stream'.WSeq.liftRel_nil + theorem Stream'.WSeq.liftRel_think_left + theorem Stream'.WSeq.liftRel_think_right + def Stream'.WSeq.map + theorem Stream'.WSeq.map_append + theorem Stream'.WSeq.map_comp + theorem Stream'.WSeq.map_congr + theorem Stream'.WSeq.map_cons + theorem Stream'.WSeq.map_id + theorem Stream'.WSeq.map_join + theorem Stream'.WSeq.map_nil + theorem Stream'.WSeq.map_ret + theorem Stream'.WSeq.map_think + theorem Stream'.WSeq.mem_append_left + theorem Stream'.WSeq.mem_congr + theorem Stream'.WSeq.mem_cons + theorem Stream'.WSeq.mem_cons_iff + theorem Stream'.WSeq.mem_cons_of_mem + theorem Stream'.WSeq.mem_map + theorem Stream'.WSeq.mem_of_mem_dropn + theorem Stream'.WSeq.mem_of_mem_tail + theorem Stream'.WSeq.mem_rec_on + theorem Stream'.WSeq.mem_think + def Stream'.WSeq.nil + theorem Stream'.WSeq.nil_append + theorem Stream'.WSeq.not_mem_nil + def Stream'.WSeq.ofList + theorem Stream'.WSeq.ofList_cons + theorem Stream'.WSeq.ofList_nil + def Stream'.WSeq.ofSeq + def Stream'.WSeq.ofStream + theorem Stream'.WSeq.of_mem_append + theorem Stream'.WSeq.productive_congr + theorem Stream'.WSeq.productive_iff + def Stream'.WSeq.recOn + def Stream'.WSeq.removeNth + def Stream'.WSeq.ret + theorem Stream'.WSeq.ret_bind + def Stream'.WSeq.scanl + theorem Stream'.WSeq.seq_destruct_cons + theorem Stream'.WSeq.seq_destruct_nil + theorem Stream'.WSeq.seq_destruct_think + def Stream'.WSeq.splitAt + def Stream'.WSeq.tail.aux + def Stream'.WSeq.tail + theorem Stream'.WSeq.tail_congr + theorem Stream'.WSeq.tail_cons + theorem Stream'.WSeq.tail_nil + theorem Stream'.WSeq.tail_ofSeq + theorem Stream'.WSeq.tail_think + def Stream'.WSeq.take + def Stream'.WSeq.think + theorem Stream'.WSeq.think_append + theorem Stream'.WSeq.think_congr + theorem Stream'.WSeq.think_equiv + theorem Stream'.WSeq.toList'_cons + theorem Stream'.WSeq.toList'_map + theorem Stream'.WSeq.toList'_nil + theorem Stream'.WSeq.toList'_think + def Stream'.WSeq.toList + theorem Stream'.WSeq.toList_cons + theorem Stream'.WSeq.toList_nil + theorem Stream'.WSeq.toList_ofList + def Stream'.WSeq.toSeq + theorem Stream'.WSeq.toSeq_ofSeq + def Stream'.WSeq.union + def Stream'.WSeq.updateNth + def Stream'.WSeq.zip + def Stream'.WSeq.zipWith + def Stream'.WSeq 2023-04-20 06:30:54 c8b10b0 chore: use FunLike.coe as coercion for OrderIso and RelEmbedding (#3082) The changes I made were. Use `FunLike.coe` instead of the previous definition for the coercion from `RelEmbedding` To functions and `OrderIso` to functions. The previous definition was ```lean instance : CoeFun (r ↪r s) fun _ => α → β := -- ⟨fun o => o.toEmbedding⟩ ``` This does not display nicely. I also restored the `simp` attributes on a few lemmas that had their `simp` attributes removed during the port. Eventually we might want a `RelEmbeddingLike` class, but this PR does not implement that. I also added a few lemmas that proved that coercions to function commute with `RelEmbedding.toRelHom` or similar. The other changes are just fixing the build. One strange issue is that the lemma `Finset.mapEmbedding_apply` seems to be harder to use, it has to be used with `rw` instead of `simp` ESTIMATED CHANGES Modified Mathlib/Algebra/BigOperators/Fin.lean Modified Mathlib/Combinatorics/SimpleGraph/Clique.lean Modified Mathlib/Data/Fin/Basic.lean Modified Mathlib/Data/Fin/Tuple/Basic.lean Modified Mathlib/Data/Finset/Powerset.lean Modified Mathlib/Data/Fintype/Fin.lean Modified Mathlib/Data/Set/Finite.lean Modified Mathlib/GroupTheory/Perm/Fin.lean Modified Mathlib/Order/Hom/Basic.lean Modified Mathlib/Order/LiminfLimsup.lean Modified Mathlib/Order/RelIso/Basic.lean + theorem RelEmbedding.coe_mk + theorem RelEmbedding.coe_toEmbedding + theorem RelEmbedding.coe_toRelHom + theorem RelIso.coe_toEmbedding + theorem RelIso.coe_toEquiv + theorem RelIso.coe_toRelEmbedding Modified Mathlib/RingTheory/MvPolynomial/Symmetric.lean 2023-04-20 04:08:33 f12a32b feat: port CategoryTheory.Idempotents.HomologicalComplex (#3532) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Idempotents/HomologicalComplex.lean + theorem CategoryTheory.Idempotents.Karoubi.HomologicalComplex.comp_p_d + theorem CategoryTheory.Idempotents.Karoubi.HomologicalComplex.p_comm_f + theorem CategoryTheory.Idempotents.Karoubi.HomologicalComplex.p_comp_d + theorem CategoryTheory.Idempotents.Karoubi.HomologicalComplex.p_idem + def CategoryTheory.Idempotents.KaroubiHomologicalComplexEquivalence.Functor.map + def CategoryTheory.Idempotents.KaroubiHomologicalComplexEquivalence.Functor.obj + def CategoryTheory.Idempotents.KaroubiHomologicalComplexEquivalence.Inverse.map + def CategoryTheory.Idempotents.KaroubiHomologicalComplexEquivalence.Inverse.obj + def CategoryTheory.Idempotents.KaroubiHomologicalComplexEquivalence.counitIso + def CategoryTheory.Idempotents.KaroubiHomologicalComplexEquivalence.functor + def CategoryTheory.Idempotents.KaroubiHomologicalComplexEquivalence.inverse + def CategoryTheory.Idempotents.KaroubiHomologicalComplexEquivalence.unitIso + def CategoryTheory.Idempotents.karoubiChainComplexEquivalence + def CategoryTheory.Idempotents.karoubiCochainComplexEquivalence + def CategoryTheory.Idempotents.karoubiHomologicalComplexEquivalence 2023-04-20 04:08:32 8cf71b0 chore: tidy various files (#3530) ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/Bilinear.lean + theorem LinearMap.mulLeft_toAddMonoidHom - theorem LinearMap.mulLeft_toAddMonoid_hom + theorem LinearMap.mulRight_toAddMonoidHom - theorem LinearMap.mulRight_toAddMonoid_hom Modified Mathlib/Algebra/Algebra/Operations.lean Modified Mathlib/Algebra/Algebra/Pi.lean Modified Mathlib/Algebra/Algebra/Tower.lean + theorem AlgEquiv.coe_restrictScalars' - theorem AlgEquiv.coe_restrict_scalars' + theorem AlgHom.coe_restrictScalars' - theorem AlgHom.coe_restrict_scalars' + theorem IsScalarTower.coe_toAlgHom' - theorem IsScalarTower.coe_to_alg_hom' Modified Mathlib/Algebra/Module/Submodule/Basic.lean Modified Mathlib/AlgebraicTopology/SimplexCategory.lean Modified Mathlib/Analysis/BoxIntegral/Box/Basic.lean + theorem BoxIntegral.Box.Icc_def + theorem BoxIntegral.Box.Icc_eq_pi + theorem BoxIntegral.Box.Ioo_subset_coe - theorem BoxIntegral.Box.bUnion_coe_eq_coe + theorem BoxIntegral.Box.bunionᵢ_coe_eq_coe + theorem BoxIntegral.Box.coe_subset_Icc - theorem BoxIntegral.Box.coe_subset_icc + theorem BoxIntegral.Box.continuousOn_face_Icc - theorem BoxIntegral.Box.continuousOn_face_icc + theorem BoxIntegral.Box.diam_Icc_le_of_distortion_le - theorem BoxIntegral.Box.diam_icc_le_of_distortion_le - theorem BoxIntegral.Box.icc_def - theorem BoxIntegral.Box.icc_eq_pi - theorem BoxIntegral.Box.ioo_subset_coe + theorem BoxIntegral.Box.le_iff_Icc - theorem BoxIntegral.Box.le_iff_icc + theorem BoxIntegral.Box.lower_mem_Icc - theorem BoxIntegral.Box.lower_mem_icc + theorem BoxIntegral.Box.unionᵢ_Ioo_of_tendsto - theorem BoxIntegral.Box.unionᵢ_ioo_of_tendsto + theorem BoxIntegral.Box.upper_mem_Icc - theorem BoxIntegral.Box.upper_mem_icc Modified Mathlib/Analysis/BoxIntegral/Box/SubboxInduction.lean Modified Mathlib/Analysis/NormedSpace/ContinuousLinearMap.lean Modified Mathlib/CategoryTheory/Category/Pairwise.lean Modified Mathlib/CategoryTheory/Functor/ReflectsIso.lean Modified Mathlib/CategoryTheory/Limits/Preserves/Limits.lean Modified Mathlib/CategoryTheory/Limits/Shapes/WidePullbacks.lean Modified Mathlib/Data/Finmap.lean Modified Mathlib/Data/LazyList/Basic.lean +/- def LazyList.listEquivLazyList Modified Mathlib/Data/Matrix/Block.lean + theorem Matrix.fromBlocks_toBlocks - theorem Matrix.fromBlocks_to_blocks + theorem Matrix.toBlocks_fromBlocks₁₁ + theorem Matrix.toBlocks_fromBlocks₁₂ + theorem Matrix.toBlocks_fromBlocks₂₁ + theorem Matrix.toBlocks_fromBlocks₂₂ - theorem Matrix.to_blocks_from_blocks₁₁ - theorem Matrix.to_blocks_from_blocks₁₂ - theorem Matrix.to_blocks_from_blocks₂₁ - theorem Matrix.to_blocks_from_blocks₂₂ Modified Mathlib/Data/MvPolynomial/Equiv.lean +/- def MvPolynomial.pUnitAlgEquiv Modified Mathlib/Data/Num/Prime.lean Modified Mathlib/Data/W/Cardinal.lean Modified Mathlib/LinearAlgebra/AffineSpace/Combination.lean +/- def AffineMap.weightedVSubOfPoint Modified Mathlib/LinearAlgebra/FreeModule/Rank.lean + theorem rank_tensorProduct' - theorem rank_tensor_product' Modified Mathlib/ModelTheory/Encoding.lean Modified Mathlib/ModelTheory/Syntax.lean Modified Mathlib/Topology/Algebra/UniformMulAction.lean Modified Mathlib/Topology/UniformSpace/Compact.lean Modified Mathlib/Topology/UniformSpace/Equicontinuity.lean 2023-04-20 04:08:31 66fc2fe feat: port AlgebraicTopology.DoldKan.Homotopies (#3523) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/AlgebraicTopology/DoldKan/Homotopies.lean + def AlgebraicTopology.DoldKan.Hσ + theorem AlgebraicTopology.DoldKan.Hσ_eq_zero + theorem AlgebraicTopology.DoldKan.c_mk + theorem AlgebraicTopology.DoldKan.cs_down_0_not_rel_left + def AlgebraicTopology.DoldKan.homotopyHσToZero + def AlgebraicTopology.DoldKan.hσ' + theorem AlgebraicTopology.DoldKan.hσ'_eq' + theorem AlgebraicTopology.DoldKan.hσ'_eq + theorem AlgebraicTopology.DoldKan.hσ'_eq_zero + theorem AlgebraicTopology.DoldKan.hσ'_naturality + def AlgebraicTopology.DoldKan.hσ + theorem AlgebraicTopology.DoldKan.map_Hσ + theorem AlgebraicTopology.DoldKan.map_hσ' + def AlgebraicTopology.DoldKan.natTransHσ 2023-04-20 04:08:29 a06db5f feat: port Data.Matrix.Notation (#3427) This PR also fixes the doc on `Data.Fin.VecNotation` and adds the unexpander for the `![x, y, ...]` notation. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Data/Fin/VecNotation.lean + def Matrix.vecConsUnexpander + def Matrix.vecEmptyUnexpander Modified Mathlib/Data/Matrix/Basic.lean Added Mathlib/Data/Matrix/Notation.lean + theorem Matrix.col_cons + theorem Matrix.col_empty + theorem Matrix.cons_dotProduct + theorem Matrix.cons_dotProduct_cons + theorem Matrix.cons_mul + theorem Matrix.cons_mulVec + theorem Matrix.cons_transpose + theorem Matrix.cons_val' + theorem Matrix.cons_vecMul + theorem Matrix.cons_vecMulVec + theorem Matrix.cons_vecMul_cons + theorem Matrix.dotProduct_cons + theorem Matrix.dotProduct_empty + theorem Matrix.empty_mul + theorem Matrix.empty_mulVec + theorem Matrix.empty_mul_empty + theorem Matrix.empty_vecMul + theorem Matrix.empty_vecMulVec + theorem Matrix.eta_fin_three + theorem Matrix.eta_fin_two + theorem Matrix.head_transpose + theorem Matrix.head_val' + theorem Matrix.mulVec_cons + theorem Matrix.mulVec_empty + theorem Matrix.mul_empty + theorem Matrix.mul_fin_three + theorem Matrix.mul_fin_two + theorem Matrix.mul_val_succ + theorem Matrix.one_fin_three + theorem Matrix.one_fin_two + theorem Matrix.row_cons + theorem Matrix.row_empty + theorem Matrix.smul_mat_cons + theorem Matrix.smul_mat_empty + theorem Matrix.smul_vec2 + theorem Matrix.smul_vec3 + theorem Matrix.submatrix_cons_row + theorem Matrix.submatrix_empty + theorem Matrix.tail_transpose + theorem Matrix.tail_val' + theorem Matrix.transpose_empty_cols + theorem Matrix.transpose_empty_rows + theorem Matrix.vec2_add + theorem Matrix.vec2_dotProduct + theorem Matrix.vec2_dot_product' + theorem Matrix.vec2_eq + theorem Matrix.vec3_add + theorem Matrix.vec3_dotProduct + theorem Matrix.vec3_dot_product' + theorem Matrix.vec3_eq + theorem Matrix.vecMulVec_cons + theorem Matrix.vecMulVec_empty + theorem Matrix.vecMul_cons + theorem Matrix.vecMul_empty Added test/matrix.lean + def Matrix.mkColumnVector + def Matrix.mkMatrix 2023-04-20 04:08:28 32cb47a fix: discard linarith wrong type equalities, style (#2611) Mostly style fixes in linarith, but also fixes #2610 ESTIMATED CHANGES Modified Mathlib/Lean/Exception.lean + def Lean.Exception.isFailedToSynthesize Modified Mathlib/Tactic/Linarith/Datatypes.lean Modified Mathlib/Tactic/Linarith/Frontend.lean +/- def Linarith.runLinarith Modified Mathlib/Tactic/Linarith/Preprocessing.lean +/- def Linarith.compWithZero +/- def Linarith.natToInt +/- def Linarith.nlinarithExtras +/- def Linarith.removeNegations +/- def Linarith.strengthenStrictInt Modified Mathlib/Tactic/Linarith/Verification.lean Modified test/linarith.lean 2023-04-20 04:08:26 6205726 feat: port Data.Bitvec.Basic (#2179) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Data/Bitvec/Basic.lean + theorem Bitvec.addLsb_div_two + theorem Bitvec.addLsb_eq_twice_add_one + theorem Bitvec.decide_addLsb_mod_two + def Bitvec.ofFin + theorem Bitvec.ofFin_le_ofFin_of_le + theorem Bitvec.ofFin_toFin + theorem Bitvec.ofFin_val + theorem Bitvec.ofNat_toNat + def Bitvec.toFin + theorem Bitvec.toFin_le_toFin_of_le + theorem Bitvec.toFin_ofFin + theorem Bitvec.toFin_val + theorem Bitvec.toNat_eq_foldr_reverse + theorem Bitvec.toNat_lt 2023-04-20 03:35:24 f965ca4 chore: Upgrade `reassoc`'s simplification skills (#3531) See [zulip discussion](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/Bug.20in.20reassoc.3F/near/351111877) The only lemmas added to `reassoc`'s simplification set are: ```lean Functor.id_obj, Functor.id_map, Functor.comp_obj, Functor.comp_map ``` all of which are definitional equalities. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Adjunction/Mates.lean Modified Mathlib/CategoryTheory/Functor/Basic.lean + theorem CategoryTheory.Functor.map_comp_assoc Modified Mathlib/CategoryTheory/Idempotents/FunctorExtension.lean Modified Mathlib/CategoryTheory/Iso.lean Modified Mathlib/CategoryTheory/Limits/Preserves/Shapes/Zero.lean Modified Mathlib/CategoryTheory/NatTrans.lean Modified Mathlib/Tactic/Reassoc.lean 2023-04-20 03:04:51 b01e05b feat: port Topology.MetricSpace.Polish (#3357) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Topology/Constructions.lean + theorem induced_to_pi Modified Mathlib/Topology/MetricSpace/HausdorffDistance.lean + theorem Metric.continuousAt_inv_infDist_pt Added Mathlib/Topology/MetricSpace/Polish.lean + theorem ClosedEmbedding.polishSpace + theorem Equiv.polishSpace_induced + theorem IsClosed.isClopenable + theorem IsClosed.polishSpace + theorem IsOpen.isClopenable + theorem IsOpen.polishSpace + def PolishSpace.AuxCopy + theorem PolishSpace.IsClopenable.compl + theorem PolishSpace.IsClopenable.unionᵢ + def PolishSpace.IsClopenable + theorem PolishSpace.exists_nat_nat_continuous_surjective + theorem PolishSpace.exists_polishSpace_forall_le + theorem TopologicalSpace.Opens.CompleteCopy.dist_eq + theorem TopologicalSpace.Opens.CompleteCopy.dist_val_le_dist + def TopologicalSpace.Opens.CompleteCopy + theorem complete_polishSpaceMetric + def polishSpaceMetric + def upgradePolishSpace 2023-04-20 01:28:06 f1b02be feat: more algebra for LinearPMap (#3521) ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/LinearPMap.lean + theorem LinearPMap.add_apply + theorem LinearPMap.add_domain + theorem LinearPMap.neg_domain + theorem LinearPMap.zero_apply + theorem LinearPMap.zero_domain 2023-04-19 23:15:39 458fdfa chore: port `fin.reflect` (#3486) This definition was deleted during porting. ESTIMATED CHANGES Modified Mathlib/Data/Fin/Basic.lean 2023-04-19 22:55:05 e74cf6d chore: bump std4 (#3529) ESTIMATED CHANGES Modified Mathlib/ModelTheory/Encoding.lean Modified lake-manifest.json 2023-04-19 22:29:07 4f99e00 feat: port Algebra.Homology.Homotopy (#3524) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Homology/Homotopy.lean + def CategoryTheory.Functor.mapHomotopy + def CategoryTheory.Functor.mapHomotopyEquiv + def Homotopy.add + def Homotopy.comp + def Homotopy.compLeft + def Homotopy.compLeftId + def Homotopy.compRight + def Homotopy.compRightId + theorem Homotopy.comp_nullHomotopicMap' + theorem Homotopy.comp_nullHomotopicMap + theorem Homotopy.dNext_cochainComplex + theorem Homotopy.dNext_succ_chainComplex + theorem Homotopy.dNext_zero_chainComplex + def Homotopy.equivSubZero + theorem Homotopy.map_nullHomotopicMap' + theorem Homotopy.map_nullHomotopicMap + def Homotopy.mkCoinductive + def Homotopy.mkCoinductiveAux₁ + def Homotopy.mkCoinductiveAux₂ + theorem Homotopy.mkCoinductiveAux₃ + def Homotopy.mkInductive + def Homotopy.mkInductiveAux₁ + def Homotopy.mkInductiveAux₂ + theorem Homotopy.mkInductiveAux₃ + def Homotopy.nullHomotopicMap' + theorem Homotopy.nullHomotopicMap'_comp + theorem Homotopy.nullHomotopicMap'_f + theorem Homotopy.nullHomotopicMap'_f_eq_zero + theorem Homotopy.nullHomotopicMap'_f_of_not_rel_left + theorem Homotopy.nullHomotopicMap'_f_of_not_rel_right + def Homotopy.nullHomotopicMap + theorem Homotopy.nullHomotopicMap_comp + theorem Homotopy.nullHomotopicMap_f + theorem Homotopy.nullHomotopicMap_f_eq_zero + theorem Homotopy.nullHomotopicMap_f_of_not_rel_left + theorem Homotopy.nullHomotopicMap_f_of_not_rel_right + def Homotopy.nullHomotopy' + def Homotopy.nullHomotopy + def Homotopy.ofEq + theorem Homotopy.prevD_chainComplex + theorem Homotopy.prevD_succ_cochainComplex + theorem Homotopy.prevD_zero_cochainComplex + def Homotopy.refl + def Homotopy.symm + def Homotopy.trans + structure Homotopy + def HomotopyEquiv.ofIso + def HomotopyEquiv.refl + def HomotopyEquiv.symm + def HomotopyEquiv.trans + structure HomotopyEquiv + def dNext + theorem dNext_comp_left + theorem dNext_comp_right + theorem dNext_eq + theorem dNext_eq_dFrom_fromNext + theorem dNext_nat + def fromNext + def homologyObjIsoOfHomotopyEquiv + theorem homology_map_eq_of_homotopy + def prevD + theorem prevD_comp_left + theorem prevD_comp_right + theorem prevD_eq + theorem prevD_eq_toPrev_dTo + theorem prevD_nat + def toPrev 2023-04-19 21:22:35 d7f8e10 chore: avoid RBTree.ofList in Cache (#3507) Unlike fromList, ofList is not tail recursive and hence susceptible to stack overflow. ESTIMATED CHANGES Modified Cache/IO.lean 2023-04-19 15:37:15 c9a607f feat: port AlgebraicTopology.DoldKan.Notations (#3522) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/AlgebraicTopology/DoldKan/Notations.lean 2023-04-19 15:24:18 823fd99 Feat: Port CategoryTheory.Monad.Algebra (#3525) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Monad/Algebra.lean + def CategoryTheory.Comonad.Coalgebra.Hom.comp + theorem CategoryTheory.Comonad.Coalgebra.Hom.ext' + def CategoryTheory.Comonad.Coalgebra.Hom.id + structure CategoryTheory.Comonad.Coalgebra.Hom + theorem CategoryTheory.Comonad.Coalgebra.comp_eq_comp + theorem CategoryTheory.Comonad.Coalgebra.comp_f + theorem CategoryTheory.Comonad.Coalgebra.id_eq_id + theorem CategoryTheory.Comonad.Coalgebra.id_f + def CategoryTheory.Comonad.Coalgebra.isoMk + structure CategoryTheory.Comonad.Coalgebra + def CategoryTheory.Comonad.adj + theorem CategoryTheory.Comonad.algebra_epi_of_epi + theorem CategoryTheory.Comonad.algebra_mono_of_mono + theorem CategoryTheory.Comonad.coalgebra_iso_of_iso + def CategoryTheory.Comonad.cofree + def CategoryTheory.Comonad.forget + theorem CategoryTheory.Comonad.ofLeftAdjoint_forget + theorem CategoryTheory.Comonad.rightAdjoint_forget + def CategoryTheory.Monad.Algebra.Hom.comp + theorem CategoryTheory.Monad.Algebra.Hom.ext' + def CategoryTheory.Monad.Algebra.Hom.id + structure CategoryTheory.Monad.Algebra.Hom + theorem CategoryTheory.Monad.Algebra.comp_eq_comp + theorem CategoryTheory.Monad.Algebra.comp_f + theorem CategoryTheory.Monad.Algebra.id_eq_id + theorem CategoryTheory.Monad.Algebra.id_f + def CategoryTheory.Monad.Algebra.isoMk + structure CategoryTheory.Monad.Algebra + def CategoryTheory.Monad.adj + def CategoryTheory.Monad.algebraEquivOfIsoMonads + def CategoryTheory.Monad.algebraFunctorOfMonadHom + def CategoryTheory.Monad.algebraFunctorOfMonadHomComp + def CategoryTheory.Monad.algebraFunctorOfMonadHomEq + def CategoryTheory.Monad.algebraFunctorOfMonadHomId + theorem CategoryTheory.Monad.algebra_epi_of_epi + theorem CategoryTheory.Monad.algebra_equiv_of_iso_monads_comp_forget + theorem CategoryTheory.Monad.algebra_iso_of_iso + theorem CategoryTheory.Monad.algebra_mono_of_mono + def CategoryTheory.Monad.forget + def CategoryTheory.Monad.free + theorem CategoryTheory.Monad.leftAdjoint_forget + theorem CategoryTheory.Monad.ofRightAdjoint_forget 2023-04-19 14:33:30 bb39bf9 feat: port AlgebraicTopology.AlternatingFaceMapComplex (#3519) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/AlgebraicTopology/AlternatingFaceMapComplex.lean + theorem AlgebraicTopology.AlternatingCofaceMapComplex.d_eq_unop_d + theorem AlgebraicTopology.AlternatingCofaceMapComplex.d_squared + def AlgebraicTopology.AlternatingCofaceMapComplex.map + def AlgebraicTopology.AlternatingCofaceMapComplex.obj + def AlgebraicTopology.AlternatingCofaceMapComplex.objD + theorem AlgebraicTopology.AlternatingFaceMapComplex.d_squared + def AlgebraicTopology.AlternatingFaceMapComplex.map + theorem AlgebraicTopology.AlternatingFaceMapComplex.map_f + def AlgebraicTopology.AlternatingFaceMapComplex.obj + def AlgebraicTopology.AlternatingFaceMapComplex.objD + theorem AlgebraicTopology.AlternatingFaceMapComplex.obj_X + theorem AlgebraicTopology.AlternatingFaceMapComplex.obj_d_eq + def AlgebraicTopology.AlternatingFaceMapComplex.ε + def AlgebraicTopology.alternatingCofaceMapComplex + def AlgebraicTopology.alternatingFaceMapComplex + theorem AlgebraicTopology.alternatingFaceMapComplex_map_f + theorem AlgebraicTopology.alternatingFaceMapComplex_obj_X + theorem AlgebraicTopology.alternatingFaceMapComplex_obj_d + def AlgebraicTopology.inclusionOfMooreComplex + def AlgebraicTopology.inclusionOfMooreComplexMap + theorem AlgebraicTopology.inclusionOfMooreComplexMap_f + theorem AlgebraicTopology.karoubi_alternating_face_map_complex_d + theorem AlgebraicTopology.map_alternatingFaceMapComplex 2023-04-19 13:55:34 b1e0bf7 feat: port Algebra.Homology.Additive (#3517) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Homology/Additive.lean + def CategoryTheory.Equivalence.mapHomologicalComplex + def CategoryTheory.Functor.mapHomologicalComplex + def CategoryTheory.Functor.mapHomologicalComplexIdIso + def CategoryTheory.NatIso.mapHomologicalComplex + def CategoryTheory.NatTrans.mapHomologicalComplex + theorem CategoryTheory.NatTrans.mapHomologicalComplex_comp + theorem CategoryTheory.NatTrans.mapHomologicalComplex_id + theorem CategoryTheory.NatTrans.mapHomologicalComplex_naturality + theorem ChainComplex.map_chain_complex_of + def ChainComplex.single₀MapHomologicalComplex + theorem ChainComplex.single₀MapHomologicalComplex_hom_app_succ + theorem ChainComplex.single₀MapHomologicalComplex_hom_app_zero + theorem ChainComplex.single₀MapHomologicalComplex_inv_app_succ + theorem ChainComplex.single₀MapHomologicalComplex_inv_app_zero + def CochainComplex.single₀MapHomologicalComplex + theorem CochainComplex.single₀MapHomologicalComplex_hom_app_succ + theorem CochainComplex.single₀MapHomologicalComplex_hom_app_zero + theorem CochainComplex.single₀MapHomologicalComplex_inv_app_succ + theorem CochainComplex.single₀MapHomologicalComplex_inv_app_zero + def HomologicalComplex.Hom.fAddMonoidHom + theorem HomologicalComplex.add_f_apply + theorem HomologicalComplex.neg_f_apply + theorem HomologicalComplex.nsmul_f_apply + def HomologicalComplex.singleMapHomologicalComplex + theorem HomologicalComplex.singleMapHomologicalComplex_hom_app_ne + theorem HomologicalComplex.singleMapHomologicalComplex_hom_app_self + theorem HomologicalComplex.singleMapHomologicalComplex_inv_app_ne + theorem HomologicalComplex.singleMapHomologicalComplex_inv_app_self + theorem HomologicalComplex.sub_f_apply + theorem HomologicalComplex.zero_f_apply + theorem HomologicalComplex.zsmul_f_apply 2023-04-19 11:37:18 aea85a2 feat: port CategoryTheory.Preadditive.Opposite (#3505) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Preadditive/Opposite.lean + def CategoryTheory.opHom + theorem CategoryTheory.op_add + theorem CategoryTheory.op_neg + theorem CategoryTheory.op_sum + theorem CategoryTheory.op_zero + theorem CategoryTheory.op_zsmul + def CategoryTheory.unopHom + theorem CategoryTheory.unop_add + theorem CategoryTheory.unop_neg + theorem CategoryTheory.unop_sum + theorem CategoryTheory.unop_zero + theorem CategoryTheory.unop_zsmul 2023-04-19 11:37:17 521ef78 chore: bump Aesop to 2023-04-18 version (#3501) ESTIMATED CHANGES Modified lake-manifest.json 2023-04-19 11:37:16 9db4c68 feat: port AlgebraicTopology.CechNerve (#3500) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/AlgebraicTopology/CechNerve.lean + def CategoryTheory.Arrow.augmentedCechConerve + def CategoryTheory.Arrow.augmentedCechNerve + def CategoryTheory.Arrow.cechConerve + def CategoryTheory.Arrow.cechNerve + def CategoryTheory.Arrow.mapAugmentedCechConerve + def CategoryTheory.Arrow.mapAugmentedCechNerve + def CategoryTheory.Arrow.mapCechConerve + def CategoryTheory.Arrow.mapCechNerve + def CategoryTheory.CechNerveTerminalFrom.iso + def CategoryTheory.CechNerveTerminalFrom.wideCospan.limitCone + def CategoryTheory.CechNerveTerminalFrom.wideCospan.limitIsoPi + theorem CategoryTheory.CechNerveTerminalFrom.wideCospan.limitIsoPi_hom_comp_pi + theorem CategoryTheory.CechNerveTerminalFrom.wideCospan.limitIsoPi_inv_comp_pi + def CategoryTheory.CechNerveTerminalFrom.wideCospan + def CategoryTheory.CosimplicialObject.augmentedCechConerve + def CategoryTheory.CosimplicialObject.cechConerve + def CategoryTheory.CosimplicialObject.cechConerveEquiv + def CategoryTheory.CosimplicialObject.equivalenceLeftToRight + def CategoryTheory.CosimplicialObject.equivalenceRightToLeft + def CategoryTheory.SimplicialObject.augmentedCechNerve + def CategoryTheory.SimplicialObject.cechNerve + def CategoryTheory.SimplicialObject.cechNerveEquiv + def CategoryTheory.SimplicialObject.equivalenceLeftToRight + def CategoryTheory.SimplicialObject.equivalenceRightToLeft + def CategoryTheory.cechNerveTerminalFrom Modified Mathlib/CategoryTheory/Limits/Shapes/WidePullbacks.lean 2023-04-19 11:37:14 96f9551 feat: port/CategoryTheory.Sites.Limits (#3463) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Sites/Limits.lean + def CategoryTheory.Sheaf.isLimitMultiforkOfIsLimit + theorem CategoryTheory.Sheaf.isSheaf_of_isLimit + def CategoryTheory.Sheaf.multiforkEvaluationCone 2023-04-19 11:19:14 e8c0244 feat: port Algebra.Category.ModuleCat.Products (#3515) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Category/ModuleCat/Products.lean + theorem ModuleCat.piIsoPi_hom_ker_subtype + theorem ModuleCat.piIsoPi_inv_kernel_ι + def ModuleCat.productCone + def ModuleCat.productConeIsLimit 2023-04-19 11:19:12 a12b711 feat: port Analysis.NormedSpace.BallAction (#3513) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/NormedSpace/BallAction.lean + theorem ne_neg_of_mem_sphere + theorem ne_neg_of_mem_unit_sphere 2023-04-19 11:19:11 0ccd610 feat: port Data.Complex.Cardinality (#3506) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Data/Complex/Cardinality.lean + theorem mk_complex + theorem mk_univ_complex + theorem not_countable_complex 2023-04-19 11:04:23 f0d2fca feat: port RingTheory.Localization.Submodule (#3514) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/RingTheory/Localization/Submodule.lean + theorem IsFractionRing.coeSubmodule_injective + theorem IsFractionRing.coeSubmodule_isPrincipal + theorem IsFractionRing.coeSubmodule_le_coeSubmodule + theorem IsFractionRing.coeSubmodule_strictMono + def IsLocalization.coeSubmodule + theorem IsLocalization.coeSubmodule_bot + theorem IsLocalization.coeSubmodule_fg + theorem IsLocalization.coeSubmodule_injective + theorem IsLocalization.coeSubmodule_isPrincipal + theorem IsLocalization.coeSubmodule_le_coeSubmodule + theorem IsLocalization.coeSubmodule_mono + theorem IsLocalization.coeSubmodule_mul + theorem IsLocalization.coeSubmodule_span + theorem IsLocalization.coeSubmodule_span_singleton + theorem IsLocalization.coeSubmodule_strictMono + theorem IsLocalization.coeSubmodule_sup + theorem IsLocalization.coeSubmodule_top + theorem IsLocalization.isNoetherianRing + theorem IsLocalization.mem_coeSubmodule + theorem IsLocalization.mem_span_iff + theorem IsLocalization.mem_span_map 2023-04-19 09:11:28 34a32cd feat: port Logic.Equiv.TransferInstance (#3206) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Logic/Equiv/TransferInstance.lean + def Equiv.algEquiv + theorem Equiv.div_def + theorem Equiv.inv_def + def Equiv.linearEquiv + def Equiv.mulEquiv + theorem Equiv.mulEquiv_apply + theorem Equiv.mulEquiv_symm_apply + theorem Equiv.mul_def + theorem Equiv.one_def + theorem Equiv.pow_def + def Equiv.ringEquiv + theorem Equiv.ringEquiv_apply + theorem Equiv.ringEquiv_symm_apply + theorem Equiv.smul_def 2023-04-19 07:15:58 df4f506 chore: fix push_neg on > (#3518) ESTIMATED CHANGES Modified Mathlib/Tactic/PushNeg.lean + theorem Mathlib.Tactic.PushNeg.not_ge_eq + theorem Mathlib.Tactic.PushNeg.not_gt_eq Modified test/push_neg.lean 2023-04-19 00:18:14 c0a6fe8 fix: disable unsafe closed term extraction (#3509) The compiler extracts the closed term `Option.get none ◾` here, which causes a segfault in compiled code depending on mathlib, like e.g. mathport. ESTIMATED CHANGES Modified Mathlib/ModelTheory/Encoding.lean 2023-04-18 14:23:57 15adff0 feat: Port CategoryTheory.Monad.Types (#3504) Fairly straightforward port. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Monad/Types.lean + def CategoryTheory.eq + def CategoryTheory.ofTypeMonad 2023-04-18 14:23:56 1c719e3 feat: port CategoryTheory.Subobject.Types (#3503) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Subobject/Types.lean + theorem subtype_val_mono 2023-04-18 12:01:57 2d98ae5 feat: `propose`, a forwards-reasoning analogue of `library_search`. (#2898) * `propose using a, b, c` tries to find a lemma which makes use of each of the local hypotheses `a, b, c`, and reports any results via trace messages. * `propose : h using a, b, c` only returns lemmas whose type matches `h` (which may contain `_`). * `propose! using a, b, c` will also call `have` to add results to the local goal state. `propose` should not be left in proofs; it is a search tool, like `library_search`. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Associated.lean Modified Mathlib/Lean/Expr/Basic.lean + def Lean.Name.isBlackListed Modified Mathlib/Lean/Meta.lean + def Lean.MVarId.synthInstance + def Lean.MVarId.«let» Added Mathlib/Lean/Meta/Basic.lean + def Lean.Meta.preservingMCtx Added Mathlib/Lean/Meta/DiscrTree.lean + def Lean.Meta.DiscrTree.insertIfSpecific Modified Mathlib/Tactic/LibrarySearch.lean - def Lean.Meta.DiscrTree.insertIfSpecific Added Mathlib/Tactic/Propose.lean + def Mathlib.Tactic.Propose.propose + def Mathlib.Tactic.Propose.solveByElim Modified Mathlib/Tactic/SolveByElim.lean + def Mathlib.Tactic.SolveByElim.Config.introsAfter + def Mathlib.Tactic.SolveByElim.Config.synthInstance + def Mathlib.Tactic.SolveByElim.Config.synthInstanceAfter + def Mathlib.Tactic.SolveByElim.Config.withDischarge Added Mathlib/Tactic/TryThis.lean + def addHaveSuggestion Added test/propose.lean + def bar + theorem dvd_of_dvd_pow + theorem foo 2023-04-18 11:49:25 178f346 feat: port Algebra.Homology.Exact (#3468) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Homology/Exact.lean + structure CategoryTheory.Exact + theorem CategoryTheory.Functor.exact_of_exact_map + theorem CategoryTheory.Preadditive.exact_iff_exact_of_iso + theorem CategoryTheory.Preadditive.exact_iff_homology_zero + theorem CategoryTheory.Preadditive.exact_of_iso_of_exact' + theorem CategoryTheory.Preadditive.exact_of_iso_of_exact + theorem CategoryTheory.comp_eq_zero_of_exact + theorem CategoryTheory.comp_eq_zero_of_image_eq_kernel + theorem CategoryTheory.epi_iff_exact_zero_right + theorem CategoryTheory.exact_comp_hom_inv_comp + theorem CategoryTheory.exact_comp_hom_inv_comp_iff + theorem CategoryTheory.exact_comp_inv_hom_comp + theorem CategoryTheory.exact_comp_iso + theorem CategoryTheory.exact_comp_mono + theorem CategoryTheory.exact_comp_mono_iff + theorem CategoryTheory.exact_epi_comp + theorem CategoryTheory.exact_epi_zero + theorem CategoryTheory.exact_iso_comp + theorem CategoryTheory.exact_kernelSubobject_arrow + theorem CategoryTheory.exact_kernel_ι + theorem CategoryTheory.exact_of_image_eq_kernel + theorem CategoryTheory.exact_of_zero + theorem CategoryTheory.exact_zero_left_of_mono + theorem CategoryTheory.exact_zero_mono + theorem CategoryTheory.fork_ι_comp_cofork_π + theorem CategoryTheory.imageToKernel_isIso_of_image_eq_kernel + theorem CategoryTheory.kernelSubobject_arrow_eq_zero_of_exact_zero_left + theorem CategoryTheory.kernel_comp_cokernel + theorem CategoryTheory.kernel_ι_eq_zero_of_exact_zero_left + theorem CategoryTheory.mono_iff_exact_zero_left 2023-04-18 11:36:55 ab23ea6 feat: port Topology.MetricSpace.CantorScheme (#3498) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Topology/MetricSpace/CantorScheme.lean + theorem CantorScheme.ClosureAntitone.map_of_vanishingDiam + def CantorScheme.ClosureAntitone + theorem CantorScheme.Disjoint.map_injective + theorem CantorScheme.VanishingDiam.dist_lt + theorem CantorScheme.VanishingDiam.map_continuous + def CantorScheme.VanishingDiam + theorem CantorScheme.map_mem 2023-04-18 11:25:28 f071772 feat: port Algebra.Homology.Functor (#3493) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Homology/Functor.lean + def HomologicalComplex.asFunctor + def HomologicalComplex.complexOfFunctorsToFunctorToComplex 2023-04-18 11:25:27 c9aa46a feat: depth first and best first search using ListM (#3221) Implementations of depth first search, best first search, and beam search, for graphs described by a neighbours function `α → ListM m α`. There are also wrappers for using `α → List α`. This is only intended for use in meta code. ESTIMATED CHANGES Modified Mathlib.lean Renamed Mathlib/Data/ListM.lean to Mathlib/Data/ListM/Basic.lean Added Mathlib/Data/ListM/BestFirst.lean Added Mathlib/Data/ListM/DepthFirst.lean + def depthFirst + def depthFirstRemovingDuplicates' Modified Mathlib/Data/ListM/Heartbeats.lean Modified test/ListM.lean Added test/search/BestFirst.lean + def wall Added test/search/DepthFirst.lean 2023-04-18 11:25:26 4cf370e feat: add 'cache get-' flag that does not decompress (#3179) Perhaps a big obscure for end-users, but useful if you would like to make sure something is in the cache, for later. ESTIMATED CHANGES Modified Cache/Main.lean Modified Cache/Requests.lean +/- def Cache.Requests.getFiles 2023-04-18 11:12:29 bff2791 feat: port Topology.Algebra.Valuation (#3499) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Topology/Algebra/Valuation.lean + theorem Valuation.subgroups_basis + theorem Valued.cauchy_iff + theorem Valued.hasBasis_nhds_zero + theorem Valued.hasBasis_uniformity + theorem Valued.loc_const + theorem Valued.mem_nhds + theorem Valued.mem_nhds_zero + def Valued.mk' + theorem Valued.toUniformSpace_eq 2023-04-18 11:12:28 e724faf chore: forward port leanprover-community/mathlib#18815 and part of leanprover-community/mathlib#18248 (#3496) ESTIMATED CHANGES Modified Mathlib/Algebra/Module/Submodule/Basic.lean + theorem Submodule.vadd_def Modified Mathlib/Topology/MetricSpace/PiNat.lean + theorem PiNat.cylinder_eq_res + theorem PiNat.isOpen_cylinder + def PiNat.res + theorem PiNat.res_eq_res + theorem PiNat.res_injective + theorem PiNat.res_length + theorem PiNat.res_succ + theorem PiNat.res_zero 2023-04-18 11:12:27 8efb2cb feat: port Algebra.Homology.Single (#3495) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Homology/Single.lean + def ChainComplex.fromSingle₀Equiv + def ChainComplex.single₀ + def ChainComplex.single₀IsoSingle + theorem ChainComplex.single₀_map_f_0 + theorem ChainComplex.single₀_map_f_succ + theorem ChainComplex.single₀_obj_X_0 + theorem ChainComplex.single₀_obj_X_d + theorem ChainComplex.single₀_obj_X_dTo + theorem ChainComplex.single₀_obj_X_succ + theorem ChainComplex.single₀_obj_x_dFrom + def ChainComplex.toSingle₀Equiv + theorem ChainComplex.to_single₀_ext + def CochainComplex.fromSingle₀Equiv + theorem CochainComplex.from_single₀_ext + def CochainComplex.single₀ + def CochainComplex.single₀IsoSingle + theorem CochainComplex.single₀_map_f_0 + theorem CochainComplex.single₀_map_f_succ + theorem CochainComplex.single₀_obj_X_0 + theorem CochainComplex.single₀_obj_X_d + theorem CochainComplex.single₀_obj_X_succ + theorem CochainComplex.single₀_obj_x_dFrom + theorem CochainComplex.single₀_obj_x_dTo + def HomologicalComplex.single + def HomologicalComplex.singleObjXSelf + theorem HomologicalComplex.single_map_f_self 2023-04-18 11:12:26 a372cbf feat: port ModelTheory.Encoding (#3494) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/ModelTheory/Encoding.lean + theorem FirstOrder.Language.BoundedFormula.card_le + def FirstOrder.Language.BoundedFormula.listDecode + theorem FirstOrder.Language.BoundedFormula.listDecode_encode_list + def FirstOrder.Language.BoundedFormula.listEncode + theorem FirstOrder.Language.BoundedFormula.listEncode_sigma_injective + def FirstOrder.Language.BoundedFormula.sigmaAll + def FirstOrder.Language.BoundedFormula.sigmaImp + theorem FirstOrder.Language.Term.card_le + theorem FirstOrder.Language.Term.card_sigma + def FirstOrder.Language.Term.listDecode + theorem FirstOrder.Language.Term.listDecode_encode_list + def FirstOrder.Language.Term.listEncode + theorem FirstOrder.Language.Term.listEncode_injective 2023-04-18 11:12:24 d139b4d feat: port `apply_congr` (#3471) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Tactic/ApplyCongr.lean + def Lean.Elab.Tactic.applyCongr Added test/apply_congr.lean 2023-04-18 10:57:09 53ccd1c feat: port Algebra.Homology.Flip (#3492) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Homology/Flip.lean + def HomologicalComplex.flip + def HomologicalComplex.flipEquivalence + def HomologicalComplex.flipEquivalenceCounitIso + def HomologicalComplex.flipEquivalenceUnitIso + def HomologicalComplex.flipObj 2023-04-18 10:45:15 8accf7a feat: port Algebra.Homology.Homology (#3491) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Homology/Homology.lean + def ChainComplex.homologySuccIso + def ChainComplex.homologyZeroIso + def CochainComplex.homologySuccIso + def CochainComplex.homologyZeroIso + def HomologicalComplex.boundariesIsoImage + theorem HomologicalComplex.boundaries_eq_bot + theorem HomologicalComplex.boundaries_eq_imageSubobject + theorem HomologicalComplex.boundaries_le_cycles + def HomologicalComplex.cyclesIsoKernel + theorem HomologicalComplex.cycles_eq_kernelSubobject + theorem HomologicalComplex.cycles_eq_top + def HomologicalComplex.homologyIso + theorem HomologicalComplex.imageToKernel_as_boundariesToCycles + def boundariesFunctor + def boundariesToCyclesNatTrans + theorem boundariesToCycles_naturality + def cyclesFunctor + theorem cyclesMap_arrow + theorem cyclesMap_comp + theorem cyclesMap_id + def gradedHomologyFunctor + def homologyFunctor 2023-04-18 10:45:14 f27c11d feat: port Data.Real.Cardinality (#3312) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Data/Real/Cardinality.lean + def Cardinal.cantorFunction + def Cardinal.cantorFunctionAux + theorem Cardinal.cantorFunctionAux_eq + theorem Cardinal.cantorFunctionAux_false + theorem Cardinal.cantorFunctionAux_nonneg + theorem Cardinal.cantorFunctionAux_succ + theorem Cardinal.cantorFunctionAux_true + theorem Cardinal.cantorFunctionAux_zero + theorem Cardinal.cantorFunction_injective + theorem Cardinal.cantorFunction_le + theorem Cardinal.cantorFunction_succ + theorem Cardinal.increasing_cantorFunction + theorem Cardinal.mk_Icc_real + theorem Cardinal.mk_Ici_real + theorem Cardinal.mk_Ico_real + theorem Cardinal.mk_Iic_real + theorem Cardinal.mk_Iio_real + theorem Cardinal.mk_Ioc_real + theorem Cardinal.mk_Ioi_real + theorem Cardinal.mk_Ioo_real + theorem Cardinal.mk_real + theorem Cardinal.mk_univ_real + theorem Cardinal.not_countable_real + theorem Cardinal.summable_cantor_function 2023-04-18 10:28:57 b786853 chore: refactor of library_search, and don't timeout (#3228) This is a refactor of `library_search`, separating the logic of applying lemmas and flow control (i.e. stopping if we find a good one). This version has an intermediate function that returns a lazy list of candidate results, using the new `ListM` API. As an easy add-on, we make sure `library_search` never times out ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Data/ListM.lean Added Mathlib/Data/ListM/Heartbeats.lean Added Mathlib/Lean/CoreM.lean + def getMaxHeartbeats + def getRemainingHeartbeats + def heartbeatsPercent Modified Mathlib/Tactic/LibrarySearch.lean + def Mathlib.Tactic.LibrarySearch.librarySearchLemma - def Mathlib.Tactic.LibrarySearch.lines + def Mathlib.Tactic.LibrarySearch.reportOutOfHeartbeats 2023-04-18 05:52:59 3e6e0fe feat: port RingTheory.Localization.Ideal (#3452) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/RingTheory/Localization/Ideal.lean + theorem IsLocalization.bot_lt_comap_prime + theorem IsLocalization.comap_map_of_isPrime_disjoint + theorem IsLocalization.isPrime_iff_isPrime_disjoint + theorem IsLocalization.isPrime_of_isPrime_disjoint + theorem IsLocalization.map_comap + theorem IsLocalization.mem_map_algebraMap_iff + def IsLocalization.orderEmbedding + def IsLocalization.orderIsoOfPrime + theorem IsLocalization.surjective_quotientMap_of_maximal_of_localization 2023-04-18 03:37:05 b706a5f feat: port Topology.UrysohnsLemma (#3490) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Topology/UrysohnsLemma.lean + theorem Urysohns.CU.approx_le_approx_of_U_sub_C + theorem Urysohns.CU.approx_le_lim + theorem Urysohns.CU.approx_le_one + theorem Urysohns.CU.approx_le_succ + theorem Urysohns.CU.approx_mem_Icc_right_left + theorem Urysohns.CU.approx_mono + theorem Urysohns.CU.approx_nonneg + theorem Urysohns.CU.approx_of_mem_C + theorem Urysohns.CU.approx_of_nmem_U + theorem Urysohns.CU.bddAbove_range_approx + theorem Urysohns.CU.continuous_lim + def Urysohns.CU.left + theorem Urysohns.CU.left_U_subset + theorem Urysohns.CU.left_U_subset_right_C + theorem Urysohns.CU.lim_eq_midpoint + theorem Urysohns.CU.lim_le_one + theorem Urysohns.CU.lim_mem_Icc + theorem Urysohns.CU.lim_nonneg + theorem Urysohns.CU.lim_of_mem_C + theorem Urysohns.CU.lim_of_nmem_U + def Urysohns.CU.right + theorem Urysohns.CU.subset_right_C + theorem Urysohns.CU.tendsto_approx_atTop + structure Urysohns.CU + theorem exists_continuous_zero_one_of_closed 2023-04-18 03:37:04 6c20894 chore: forward port 18648 (#3489) * [`data.finset.lattice`@`1c857a1f6798cb054be942199463c2cf904cb937`..`a968611b6a772cf7bdf61146e6d62fc882c92372`](https://leanprover-community.github.io/mathlib-port-status/file/data/finset/lattice?range=1c857a1f6798cb054be942199463c2cf904cb937..a968611b6a772cf7bdf61146e6d62fc882c92372) ESTIMATED CHANGES Modified Mathlib/Data/Finset/Lattice.lean + theorem Finset.inf'_le_of_le + theorem Finset.inf_le_of_le + theorem Finset.le_sup'_of_le + theorem Finset.le_sup_of_le 2023-04-18 03:37:03 920ec12 doc: add and clarify some docstrings in LinearAlgebra.Dimension (#3488) ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/Dimension.lean 2023-04-18 03:37:02 cb877dd feat: port Data.QPF.Univariate.Basic (#3470) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Data/QPF/Univariate/Basic.lean + theorem Qpf.Cofix.bisim' + theorem Qpf.Cofix.bisim + theorem Qpf.Cofix.bisim_rel + def Qpf.Cofix.corec + def Qpf.Cofix.dest + theorem Qpf.Cofix.dest_corec + def Qpf.Cofix + def Qpf.Fix.dest + theorem Qpf.Fix.dest_mk + theorem Qpf.Fix.ind + theorem Qpf.Fix.ind_aux + theorem Qpf.Fix.ind_rec + def Qpf.Fix.mk + theorem Qpf.Fix.mk_dest + def Qpf.Fix.rec + theorem Qpf.Fix.rec_eq + theorem Qpf.Fix.rec_unique + def Qpf.Fix + def Qpf.IsPrecongr + def Qpf.IsUniform + def Qpf.LiftpPreservation + def Qpf.Mcongr + def Qpf.SuppPreservation + theorem Qpf.Wequiv.abs' + theorem Qpf.Wequiv.refl + theorem Qpf.Wequiv.symm + inductive Qpf.Wequiv + def Qpf.Wrepr + theorem Qpf.Wrepr_equiv + def Qpf.Wsetoid + def Qpf.comp + theorem Qpf.comp_map + def Qpf.corecF + theorem Qpf.corecF_eq + def Qpf.fixToW + theorem Qpf.has_good_supp_iff + theorem Qpf.id_map + theorem Qpf.lawfulFunctor + theorem Qpf.liftpPreservation_iff_uniform + theorem Qpf.liftp_iff' + theorem Qpf.liftp_iff + theorem Qpf.liftp_iff_of_isUniform + theorem Qpf.liftr_iff + theorem Qpf.mem_supp + def Qpf.quotientQpf + def Qpf.recF + theorem Qpf.recF_eq' + theorem Qpf.recF_eq + theorem Qpf.recF_eq_of_Wequiv + theorem Qpf.suppPreservation_iff_liftpPreservation + theorem Qpf.suppPreservation_iff_uniform + theorem Qpf.supp_eq + theorem Qpf.supp_eq_of_isUniform + theorem Qpf.supp_map 2023-04-18 03:37:00 6804474 feat: port Control.Bitraversable.Lemmas (#3460) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Control/Bitraversable/Lemmas.lean + theorem Bitraversable.comp_tfst + theorem Bitraversable.comp_tsnd + theorem Bitraversable.id_tfst + theorem Bitraversable.id_tsnd + def Bitraversable.tfst + theorem Bitraversable.tfst_eq_fst_id + theorem Bitraversable.tfst_tsnd + def Bitraversable.tsnd + theorem Bitraversable.tsnd_eq_snd_id + theorem Bitraversable.tsnd_tfst 2023-04-18 03:36:59 7261a04 feat: Int.odd_pow (#3402) analogous to `Int.even_pow` and `Int.even_pow'` ESTIMATED CHANGES Modified Mathlib/Data/Int/Parity.lean + theorem Int.odd_pow' + theorem Int.odd_pow 2023-04-18 03:36:58 7fcd6d8 feat: `Fintype` deriving handler (#3198) Adds a handler to derive `Fintype` instances for non-recursive types without indices. Has an optimized implementation for enum types as well where it produces an underlying list (`enumList`) of its elements. For non-enum types, the `Fintype` instance comes from an equivalence to a "proxy type" made from `Sum`, `Sigma`, `PLift`, `Empty`, and `Unit`. Also adds a `derive_fintype%` elaborator to derive `Fintype` instances in the middle of terms. This is useful in case, for example, a `Fintype` instance needs an additional `DecidableEq` instance. This elaborator is defined in terms of a `proxy_equiv%` elaborator that constructs the proxy type and the the equivalence from it. The machinery for `proxy_equiv%` is made to be somewhat configurable. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Tactic/DeriveFintype.lean + def Mathlib.Deriving.Fintype.mkFintype + def Mathlib.Deriving.Fintype.mkFintypeEnum + def Mathlib.Deriving.Fintype.mkFintypeInstanceHandler Added Mathlib/Tactic/ProxyType.lean + def Mathlib.ProxyType.ProxyEquivConfig.default + structure Mathlib.ProxyType.ProxyEquivConfig + def Mathlib.ProxyType.defaultMkCtorProxyType + def Mathlib.ProxyType.defaultMkProxyType + def Mathlib.ProxyType.elabProxyEquiv + def Mathlib.ProxyType.elab_proxy_equiv + def Mathlib.ProxyType.ensureProxyEquiv Added test/DeriveFintype.lean + inductive tests.A'' + inductive tests.A' + inductive tests.A + inductive tests.Alphabet + inductive tests.B + inductive tests.C'' + inductive tests.C' + inductive tests.C + inductive tests.D + inductive tests.I' + inductive tests.I + inductive tests.MyOption + structure tests.MySubtype + structure tests.S + inductive tests.Y + inductive tests.bar + inductive tests.baz + inductive tests.foo2 + inductive tests.foo3 + structure tests.foo4 + inductive tests.foo + def tests.myBoolInst' + def tests.myBoolInst + def tests.myProdInst 2023-04-18 03:36:57 83fa554 feat: `with` clauses for `congr!`/`convert`/`convert_to` (#3060) Adds `with` clauses to `congr!` and friends consisting of a list of `rintro` patterns. These patterns are used when these tactics intro variables. ESTIMATED CHANGES Modified Mathlib/Tactic/Congr!.lean + def CongrMetaM.nextPattern + structure CongrState + def Lean.MVarId.congrImplies?' +/- def Lean.MVarId.introsClean Modified Mathlib/Tactic/Convert.lean Modified test/congr.lean + theorem ex15 Modified test/convert.lean 2023-04-18 03:36:55 bb3869b feat: port Computability.TMComputable (#2800) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Computability/TMComputable.lean + def Turing.EvalsTo.refl + def Turing.EvalsTo.trans + structure Turing.EvalsTo + def Turing.EvalsToInTime.refl + def Turing.EvalsToInTime.trans + structure Turing.EvalsToInTime + def Turing.FinTM2.Cfg + def Turing.FinTM2.Stmt + def Turing.FinTM2.step + structure Turing.FinTM2 + structure Turing.TM2Computable + structure Turing.TM2ComputableAux + def Turing.TM2ComputableInPolyTime.toTM2ComputableInTime + structure Turing.TM2ComputableInPolyTime + def Turing.TM2ComputableInTime.toTM2Computable + structure Turing.TM2ComputableInTime + def Turing.TM2Outputs + def Turing.TM2OutputsInTime.toTM2Outputs + def Turing.TM2OutputsInTime + def Turing.haltList + def Turing.idComputable + def Turing.idComputableInPolyTime + def Turing.idComputableInTime + def Turing.idComputer + def Turing.initList 2023-04-18 01:37:27 d090d0a chore: made Opposite a structure (#3193) The opposite category is no longer a type synonym, but a structure. ESTIMATED CHANGES Modified Mathlib/AlgebraicTopology/SimplicialObject.lean Modified Mathlib/CategoryTheory/DiscreteCategory.lean Modified Mathlib/CategoryTheory/Limits/Cones.lean Modified Mathlib/CategoryTheory/Limits/HasLimits.lean Modified Mathlib/CategoryTheory/Limits/Opposites.lean Modified Mathlib/CategoryTheory/Sites/Sheaf.lean Modified Mathlib/CategoryTheory/Subobject/Limits.lean +/- theorem CategoryTheory.Limits.imageSubobject_mono Modified Mathlib/Combinatorics/Quiver/Basic.lean +/- def Quiver.Hom.op +/- def Quiver.Hom.unop Modified Mathlib/Data/Opposite.lean +/- def Opposite.op +/- theorem Opposite.op_injective - def Opposite.unop +/- theorem Opposite.unop_injective + structure Opposite - def Opposite Modified Mathlib/Data/Set/Opposite.lean +/- theorem Set.singleton_op +/- theorem Set.singleton_op_unop +/- theorem Set.singleton_unop +/- theorem Set.singleton_unop_op Modified Mathlib/Tactic/Simps/Basic.lean 2023-04-17 21:44:06 b5e7e3e chore: bump dependencies (#3475) ESTIMATED CHANGES Modified lake-manifest.json 2023-04-17 21:44:04 6944050 feat: port AlgebraicTopology.MooreComplex (#3467) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/AlgebraicTopology/MooreComplex.lean + theorem AlgebraicTopology.NormalizedMooreComplex.d_squared + def AlgebraicTopology.NormalizedMooreComplex.map + def AlgebraicTopology.NormalizedMooreComplex.obj + def AlgebraicTopology.NormalizedMooreComplex.objD + def AlgebraicTopology.NormalizedMooreComplex.objX + def AlgebraicTopology.normalizedMooreComplex + theorem AlgebraicTopology.normalizedMooreComplex_objD 2023-04-17 21:44:02 4061810 golf: `SetTheory/Ordinal/CantorNormalForm` (#3189) We open the `List` namespace and golf `CNF_lt_snd`. Mathlib 3: https://github.com/leanprover-community/mathlib/pull/16009 ESTIMATED CHANGES Modified Mathlib/SetTheory/Ordinal/CantorNormalForm.lean 2023-04-17 21:32:26 53b3537 feat: port Algebra.Homology.ImageToKernel (#3459) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Homology/ImageToKernel.lean + theorem factorThruImageSubobject_comp_imageToKernel + theorem homology.comp_right_eq_comp_left + theorem homology.condition + def homology.congr + def homology.desc + theorem homology.ext + def homology.map + def homology.mapIso + theorem homology.map_comp + theorem homology.map_desc + theorem homology.map_id + def homology.π + theorem homology.π_desc + theorem homology.π_map + def homology + def homologyIsoCokernelImageToKernel' + def homologyIsoCokernelLift + def homologyOfZeroLeft + def homologyOfZeroRight + def homologyZeroZero + theorem imageSubobjectIso_imageToKernel' + theorem imageSubobjectMap_comp_imageToKernel + def imageToKernel' + theorem imageToKernel'_kernelSubobjectIso + def imageToKernel + theorem imageToKernel_arrow + theorem imageToKernel_comp_hom_inv_comp + theorem imageToKernel_comp_left + theorem imageToKernel_comp_mono + theorem imageToKernel_comp_right + theorem imageToKernel_epi_comp + theorem imageToKernel_zero_left + theorem imageToKernel_zero_right + theorem image_le_kernel + theorem subobject_ofLE_as_imageToKernel Modified Mathlib/CategoryTheory/Arrow.lean + theorem CategoryTheory.Arrow.comp_left + theorem CategoryTheory.Arrow.comp_right + theorem CategoryTheory.Arrow.hom_ext 2023-04-17 19:53:11 df69443 feat: add pretty-printer hints to matrix literals (#3485) ESTIMATED CHANGES Modified Mathlib/Mathport/Syntax.lean 2023-04-17 19:17:24 fca0956 feat: port Algebra.Homology.HomologicalComplex (#3451) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Homology/HomologicalComplex.lean + def ChainComplex.MkStruct.flat + structure ChainComplex.MkStruct + def ChainComplex.mk' + theorem ChainComplex.mk'_X_0 + theorem ChainComplex.mk'_X_1 + theorem ChainComplex.mk'_d_1_0 + def ChainComplex.mk + def ChainComplex.mkAux + def ChainComplex.mkHom + def ChainComplex.mkHomAux + theorem ChainComplex.mkHom_f_0 + theorem ChainComplex.mkHom_f_1 + theorem ChainComplex.mkHom_f_succ_succ + theorem ChainComplex.mk_X_0 + theorem ChainComplex.mk_X_1 + theorem ChainComplex.mk_X_2 + theorem ChainComplex.mk_d_1_0 + theorem ChainComplex.mk_d_2_0 + theorem ChainComplex.next + theorem ChainComplex.next_nat_succ + theorem ChainComplex.next_nat_zero + def ChainComplex.of + def ChainComplex.ofHom + theorem ChainComplex.of_d + theorem ChainComplex.of_d_ne + theorem ChainComplex.of_x + theorem ChainComplex.prev + def CochainComplex.MkStruct.flat + structure CochainComplex.MkStruct + def CochainComplex.mk' + theorem CochainComplex.mk'_X_0 + theorem CochainComplex.mk'_X_1 + theorem CochainComplex.mk'_d_1_0 + def CochainComplex.mk + def CochainComplex.mkAux + def CochainComplex.mkHom + def CochainComplex.mkHomAux + theorem CochainComplex.mkHom_f_0 + theorem CochainComplex.mkHom_f_1 + theorem CochainComplex.mkHom_f_succ_succ + theorem CochainComplex.mk_X_0 + theorem CochainComplex.mk_X_1 + theorem CochainComplex.mk_X_2 + theorem CochainComplex.mk_d_1_0 + theorem CochainComplex.mk_d_2_0 + theorem CochainComplex.next + def CochainComplex.of + def CochainComplex.ofHom + theorem CochainComplex.of_d + theorem CochainComplex.of_d_ne + theorem CochainComplex.of_x + theorem CochainComplex.prev + theorem CochainComplex.prev_nat_succ + theorem CochainComplex.prev_nat_zero + theorem HomologicalComplex.Hom.comm + theorem HomologicalComplex.Hom.comm_from + theorem HomologicalComplex.Hom.comm_to + theorem HomologicalComplex.Hom.isIso_of_components + def HomologicalComplex.Hom.isoApp + def HomologicalComplex.Hom.isoOfComponents + theorem HomologicalComplex.Hom.isoOfComponents_app + theorem HomologicalComplex.Hom.next_eq + theorem HomologicalComplex.Hom.prev_eq + def HomologicalComplex.Hom.sqFrom + theorem HomologicalComplex.Hom.sqFrom_comp + theorem HomologicalComplex.Hom.sqFrom_id + theorem HomologicalComplex.Hom.sqFrom_left + theorem HomologicalComplex.Hom.sqFrom_right + def HomologicalComplex.Hom.sqTo + theorem HomologicalComplex.Hom.sqTo_left + theorem HomologicalComplex.Hom.sqTo_right + structure HomologicalComplex.Hom + def HomologicalComplex.comp + theorem HomologicalComplex.comp_f + theorem HomologicalComplex.congr_hom + theorem HomologicalComplex.dFrom_comp_xNextIso + theorem HomologicalComplex.dFrom_comp_xNextIsoSelf + theorem HomologicalComplex.dFrom_eq + theorem HomologicalComplex.dFrom_eq_zero + theorem HomologicalComplex.dTo_comp_dFrom + theorem HomologicalComplex.dTo_eq + theorem HomologicalComplex.dTo_eq_zero + theorem HomologicalComplex.d_comp_d + theorem HomologicalComplex.d_comp_eqToHom + theorem HomologicalComplex.eqToHom_comp_d + theorem HomologicalComplex.eqToHom_f + def HomologicalComplex.eval + theorem HomologicalComplex.ext + def HomologicalComplex.forget + def HomologicalComplex.forgetEval + theorem HomologicalComplex.hom_ext + theorem HomologicalComplex.hom_f_injective + def HomologicalComplex.id + theorem HomologicalComplex.id_f + theorem HomologicalComplex.image_eq_image + theorem HomologicalComplex.image_to_eq_image + theorem HomologicalComplex.isZero_zero + theorem HomologicalComplex.kernel_eq_kernel + theorem HomologicalComplex.kernel_from_eq_kernel + def HomologicalComplex.xNextIso + def HomologicalComplex.xNextIsoSelf + def HomologicalComplex.xPrevIso + def HomologicalComplex.xPrevIsoSelf + theorem HomologicalComplex.xPrevIsoSelf_comp_dTo + theorem HomologicalComplex.xPrevIso_comp_dTo + theorem HomologicalComplex.zero_f + structure HomologicalComplex 2023-04-17 18:22:33 74a7c84 feat: port CategoryTheory.Subobject.Limits (#3450) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Subobject/Limits.lean + def CategoryTheory.Limits.cokernelOrderHom + def CategoryTheory.Limits.equalizerSubobjectIso + theorem CategoryTheory.Limits.equalizerSubobject_arrow' + theorem CategoryTheory.Limits.equalizerSubobject_arrow + theorem CategoryTheory.Limits.equalizerSubobject_arrow_comp + theorem CategoryTheory.Limits.equalizerSubobject_factors + theorem CategoryTheory.Limits.equalizerSubobject_factors_iff + def CategoryTheory.Limits.factorThruImageSubobject + theorem CategoryTheory.Limits.factorThruImageSubobject_comp_self + theorem CategoryTheory.Limits.factorThruImageSubobject_comp_self_assoc + def CategoryTheory.Limits.factorThruKernelSubobject + theorem CategoryTheory.Limits.factorThruKernelSubobject_comp_arrow + theorem CategoryTheory.Limits.factorThruKernelSubobject_comp_kernelSubobjectIso + def CategoryTheory.Limits.imageSubobjectCompIso + theorem CategoryTheory.Limits.imageSubobjectCompIso_hom_arrow + theorem CategoryTheory.Limits.imageSubobjectCompIso_inv_arrow + def CategoryTheory.Limits.imageSubobjectIso + theorem CategoryTheory.Limits.imageSubobjectIso_comp_image_map + def CategoryTheory.Limits.imageSubobjectMap + theorem CategoryTheory.Limits.imageSubobjectMap_arrow + theorem CategoryTheory.Limits.imageSubobject_arrow' + theorem CategoryTheory.Limits.imageSubobject_arrow + theorem CategoryTheory.Limits.imageSubobject_arrow_comp + theorem CategoryTheory.Limits.imageSubobject_arrow_comp_eq_zero + theorem CategoryTheory.Limits.imageSubobject_comp_le + theorem CategoryTheory.Limits.imageSubobject_factors_comp_self + theorem CategoryTheory.Limits.imageSubobject_iso_comp + theorem CategoryTheory.Limits.imageSubobject_le + theorem CategoryTheory.Limits.imageSubobject_le_mk + theorem CategoryTheory.Limits.imageSubobject_mono + theorem CategoryTheory.Limits.imageSubobject_zero + theorem CategoryTheory.Limits.imageSubobject_zero_arrow + theorem CategoryTheory.Limits.image_map_comp_imageSubobjectIso_inv + def CategoryTheory.Limits.kernelOrderHom + def CategoryTheory.Limits.kernelSubobjectIso + def CategoryTheory.Limits.kernelSubobjectIsoComp + theorem CategoryTheory.Limits.kernelSubobjectIsoComp_hom_arrow + theorem CategoryTheory.Limits.kernelSubobjectIsoComp_inv_arrow + theorem CategoryTheory.Limits.kernelSubobjectIso_comp_kernel_map + def CategoryTheory.Limits.kernelSubobjectMap + theorem CategoryTheory.Limits.kernelSubobjectMap_arrow + theorem CategoryTheory.Limits.kernelSubobjectMap_comp + theorem CategoryTheory.Limits.kernelSubobjectMap_id + theorem CategoryTheory.Limits.kernelSubobject_arrow' + theorem CategoryTheory.Limits.kernelSubobject_arrow + theorem CategoryTheory.Limits.kernelSubobject_arrow_comp + theorem CategoryTheory.Limits.kernelSubobject_comp_le + theorem CategoryTheory.Limits.kernelSubobject_comp_mono + theorem CategoryTheory.Limits.kernelSubobject_factors + theorem CategoryTheory.Limits.kernelSubobject_factors_iff + theorem CategoryTheory.Limits.kernelSubobject_zero + theorem CategoryTheory.Limits.kernel_map_comp_kernelSubobjectIso_inv + theorem CategoryTheory.Limits.le_kernelSubobject 2023-04-17 17:56:07 413c342 feat: port CategoryTheory.Subobject.Lattice (#3447) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Subobject/Lattice.lean + def CategoryTheory.MonoOver.botCoeIsoZero + def CategoryTheory.MonoOver.botLe + theorem CategoryTheory.MonoOver.bot_arrow + theorem CategoryTheory.MonoOver.bot_arrow_eq_zero + theorem CategoryTheory.MonoOver.bot_left + def CategoryTheory.MonoOver.inf + def CategoryTheory.MonoOver.infLeLeft + def CategoryTheory.MonoOver.infLeRight + def CategoryTheory.MonoOver.leInf + def CategoryTheory.MonoOver.leSupLeft + def CategoryTheory.MonoOver.leSupRight + def CategoryTheory.MonoOver.leTop + def CategoryTheory.MonoOver.mapBot + def CategoryTheory.MonoOver.mapTop + def CategoryTheory.MonoOver.pullbackSelf + def CategoryTheory.MonoOver.pullbackTop + def CategoryTheory.MonoOver.sup + def CategoryTheory.MonoOver.supLe + def CategoryTheory.MonoOver.topLePullbackSelf + theorem CategoryTheory.MonoOver.top_arrow + theorem CategoryTheory.MonoOver.top_left + def CategoryTheory.Subobject.botCoeIsoInitial + def CategoryTheory.Subobject.botCoeIsoZero + theorem CategoryTheory.Subobject.bot_arrow + theorem CategoryTheory.Subobject.bot_eq_initial_to + theorem CategoryTheory.Subobject.bot_eq_zero + theorem CategoryTheory.Subobject.bot_factors_iff_zero + theorem CategoryTheory.Subobject.eq_top_of_isIso_arrow + theorem CategoryTheory.Subobject.factors_left_of_inf_factors + theorem CategoryTheory.Subobject.factors_right_of_inf_factors + theorem CategoryTheory.Subobject.finset_inf_arrow_factors + theorem CategoryTheory.Subobject.finset_inf_factors + theorem CategoryTheory.Subobject.finset_sup_factors + def CategoryTheory.Subobject.functor + def CategoryTheory.Subobject.inf + theorem CategoryTheory.Subobject.inf_arrow_factors_left + theorem CategoryTheory.Subobject.inf_arrow_factors_right + theorem CategoryTheory.Subobject.inf_def + theorem CategoryTheory.Subobject.inf_eq_map_pullback' + theorem CategoryTheory.Subobject.inf_eq_map_pullback + theorem CategoryTheory.Subobject.inf_factors + theorem CategoryTheory.Subobject.inf_le_left + theorem CategoryTheory.Subobject.inf_le_right + theorem CategoryTheory.Subobject.inf_map + theorem CategoryTheory.Subobject.inf_pullback + def CategoryTheory.Subobject.infₛ + theorem CategoryTheory.Subobject.infₛ_le + theorem CategoryTheory.Subobject.isIso_arrow_iff_eq_top + theorem CategoryTheory.Subobject.isIso_iff_mk_eq_top + def CategoryTheory.Subobject.leInfCone + theorem CategoryTheory.Subobject.leInfCone_π_app_none + theorem CategoryTheory.Subobject.le_inf + theorem CategoryTheory.Subobject.le_infₛ + theorem CategoryTheory.Subobject.le_supₛ + theorem CategoryTheory.Subobject.map_bot + theorem CategoryTheory.Subobject.map_top + theorem CategoryTheory.Subobject.mk_eq_bot_iff_zero + theorem CategoryTheory.Subobject.mk_eq_top_of_isIso + theorem CategoryTheory.Subobject.nontrivial_of_not_isZero + theorem CategoryTheory.Subobject.prod_eq_inf + theorem CategoryTheory.Subobject.pullback_self + theorem CategoryTheory.Subobject.pullback_top + def CategoryTheory.Subobject.smallCoproductDesc + def CategoryTheory.Subobject.subobjectOrderIso + def CategoryTheory.Subobject.sup + theorem CategoryTheory.Subobject.sup_factors_of_factors_left + theorem CategoryTheory.Subobject.sup_factors_of_factors_right + def CategoryTheory.Subobject.supₛ + theorem CategoryTheory.Subobject.supₛ_le + theorem CategoryTheory.Subobject.symm_apply_mem_iff_mem_image + theorem CategoryTheory.Subobject.top_eq_id + theorem CategoryTheory.Subobject.top_factors + theorem CategoryTheory.Subobject.underlyingIso_inv_top_arrow + theorem CategoryTheory.Subobject.underlyingIso_top_hom + def CategoryTheory.Subobject.wideCospan + theorem CategoryTheory.Subobject.wideCospan_map_term + def CategoryTheory.Subobject.widePullback + def CategoryTheory.Subobject.widePullbackι 2023-04-17 17:25:05 82ea7bc feat: port CategoryTheory.Subobject.WellPowered (#3446) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Subobject/WellPowered.lean + theorem CategoryTheory.essentiallySmall_monoOver_iff_small_subobject + theorem CategoryTheory.wellPowered_congr + theorem CategoryTheory.wellPowered_of_equiv + theorem CategoryTheory.wellPowered_of_essentiallySmall_monoOver 2023-04-17 16:37:47 bd60da1 feat: port CategoryTheory.Subobject.FactorThru (#3445) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Subobject/FactorThru.lean + def CategoryTheory.MonoOver.Factors + def CategoryTheory.MonoOver.factorThru + theorem CategoryTheory.MonoOver.factors_congr + def CategoryTheory.Subobject.Factors + def CategoryTheory.Subobject.factorThru + theorem CategoryTheory.Subobject.factorThru_add + theorem CategoryTheory.Subobject.factorThru_add_sub_factorThru_left + theorem CategoryTheory.Subobject.factorThru_add_sub_factorThru_right + theorem CategoryTheory.Subobject.factorThru_arrow + theorem CategoryTheory.Subobject.factorThru_comp_arrow + theorem CategoryTheory.Subobject.factorThru_eq_zero + theorem CategoryTheory.Subobject.factorThru_mk_self + theorem CategoryTheory.Subobject.factorThru_ofLe + theorem CategoryTheory.Subobject.factorThru_right + theorem CategoryTheory.Subobject.factorThru_self + theorem CategoryTheory.Subobject.factorThru_zero + theorem CategoryTheory.Subobject.factors_add + theorem CategoryTheory.Subobject.factors_comp_arrow + theorem CategoryTheory.Subobject.factors_iff + theorem CategoryTheory.Subobject.factors_left_of_factors_add + theorem CategoryTheory.Subobject.factors_of_factors_right + theorem CategoryTheory.Subobject.factors_of_le + theorem CategoryTheory.Subobject.factors_right_of_factors_add + theorem CategoryTheory.Subobject.factors_self + theorem CategoryTheory.Subobject.factors_zero + theorem CategoryTheory.Subobject.mk_factors_iff + theorem CategoryTheory.Subobject.mk_factors_self 2023-04-17 15:59:33 d8ef30e feat: port CategoryTheory.Subobject.Basic (#3444) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/CategoryTheory/Category/Preorder.lean Added Mathlib/CategoryTheory/Subobject/Basic.lean + theorem CategoryTheory.Subobject.arrow_congr + theorem CategoryTheory.Subobject.eq_mk_of_comm + theorem CategoryTheory.Subobject.eq_of_comm + theorem CategoryTheory.Subobject.eq_of_comp_arrow_eq + def CategoryTheory.Subobject.existsPullbackAdj + def CategoryTheory.Subobject.exists_ + theorem CategoryTheory.Subobject.exists_iso_map + def CategoryTheory.Subobject.isoOfEq + def CategoryTheory.Subobject.isoOfEqMk + def CategoryTheory.Subobject.isoOfMkEq + def CategoryTheory.Subobject.isoOfMkEqMk + theorem CategoryTheory.Subobject.le_mk_of_comm + theorem CategoryTheory.Subobject.le_of_comm + def CategoryTheory.Subobject.lower + def CategoryTheory.Subobject.lowerAdjunction + def CategoryTheory.Subobject.lowerEquivalence + theorem CategoryTheory.Subobject.lower_comm + theorem CategoryTheory.Subobject.lower_iso + def CategoryTheory.Subobject.lower₂ + def CategoryTheory.Subobject.map + def CategoryTheory.Subobject.mapIso + def CategoryTheory.Subobject.mapIsoToOrderIso + theorem CategoryTheory.Subobject.mapIsoToOrderIso_apply + theorem CategoryTheory.Subobject.mapIsoToOrderIso_symm_apply + def CategoryTheory.Subobject.mapPullbackAdj + theorem CategoryTheory.Subobject.map_comp + theorem CategoryTheory.Subobject.map_id + theorem CategoryTheory.Subobject.map_pullback + def CategoryTheory.Subobject.mk + theorem CategoryTheory.Subobject.mk_arrow + theorem CategoryTheory.Subobject.mk_eq_mk_of_comm + theorem CategoryTheory.Subobject.mk_eq_of_comm + theorem CategoryTheory.Subobject.mk_le_mk_of_comm + theorem CategoryTheory.Subobject.mk_le_of_comm + def CategoryTheory.Subobject.ofLE + def CategoryTheory.Subobject.ofLEMk + theorem CategoryTheory.Subobject.ofLEMk_comp + theorem CategoryTheory.Subobject.ofLEMk_comp_ofMkLE + theorem CategoryTheory.Subobject.ofLEMk_comp_ofMkLEMk + theorem CategoryTheory.Subobject.ofLE_arrow + theorem CategoryTheory.Subobject.ofLE_comp_ofLE + theorem CategoryTheory.Subobject.ofLE_comp_ofLEMk + theorem CategoryTheory.Subobject.ofLE_mk_le_mk_of_comm + theorem CategoryTheory.Subobject.ofLE_refl + def CategoryTheory.Subobject.ofMkLE + def CategoryTheory.Subobject.ofMkLEMk + theorem CategoryTheory.Subobject.ofMkLEMk_comp + theorem CategoryTheory.Subobject.ofMkLEMk_comp_ofMkLE + theorem CategoryTheory.Subobject.ofMkLEMk_comp_ofMkLEMk + theorem CategoryTheory.Subobject.ofMkLEMk_refl + theorem CategoryTheory.Subobject.ofMkLE_arrow + theorem CategoryTheory.Subobject.ofMkLE_comp_ofLE + theorem CategoryTheory.Subobject.ofMkLE_comp_ofLEMk + def CategoryTheory.Subobject.pullback + theorem CategoryTheory.Subobject.pullback_comp + theorem CategoryTheory.Subobject.pullback_id + theorem CategoryTheory.Subobject.pullback_map_self + theorem CategoryTheory.Subobject.representative_arrow + theorem CategoryTheory.Subobject.representative_coe + theorem CategoryTheory.Subobject.underlyingIso_arrow + theorem CategoryTheory.Subobject.underlyingIso_hom_comp_eq_mk + theorem CategoryTheory.Subobject.underlying_arrow + def CategoryTheory.Subobject 2023-04-17 15:32:58 4060888 chore: ModelTheory.Syntax: whitespace fix (#3482) The diff is not very helpful, but I made sure the comments about the notation were closer to the notation they were about by removing a newline above and adding one below. ESTIMATED CHANGES Modified Mathlib/ModelTheory/Syntax.lean 2023-04-17 15:15:49 7a30096 feat: port Analysis.NormedSpace.AddTorsor (#3477) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/NormedSpace/AddTorsor.lean + def AffineMap.ofMapMidpoint + theorem AffineSubspace.isClosed_direction_iff + theorem antilipschitzWith_lineMap + theorem dist_center_homothety + theorem dist_homothety_center + theorem dist_homothety_self + theorem dist_left_lineMap + theorem dist_left_midpoint + theorem dist_lineMap_left + theorem dist_lineMap_lineMap + theorem dist_lineMap_right + theorem dist_midpoint_left + theorem dist_midpoint_midpoint_le' + theorem dist_midpoint_midpoint_le + theorem dist_midpoint_right + theorem dist_right_lineMap + theorem dist_right_midpoint + theorem dist_self_homothety + theorem eventually_homothety_image_subset_of_finite_subset_interior + theorem eventually_homothety_mem_of_mem_interior + theorem lipschitzWith_lineMap Modified Mathlib/LinearAlgebra/AffineSpace/AffineEquiv.lean - def AffineEquiv.Simps.symmApply + def AffineEquiv.Simps.symm_apply 2023-04-17 14:55:00 fda02e8 feat: port Analysis.SpecialFunctions.Polynomials (#3478) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/SpecialFunctions/Polynomials.lean + theorem Polynomial.abs_div_tendsto_atTop_of_degree_gt + theorem Polynomial.abs_isBoundedUnder_iff + theorem Polynomial.abs_tendsto_atTop + theorem Polynomial.abs_tendsto_atTop_iff + theorem Polynomial.div_tendsto_atBot_of_degree_gt' + theorem Polynomial.div_tendsto_atBot_of_degree_gt + theorem Polynomial.div_tendsto_atTop_of_degree_gt' + theorem Polynomial.div_tendsto_atTop_of_degree_gt + theorem Polynomial.div_tendsto_leadingCoeff_div_of_degree_eq + theorem Polynomial.div_tendsto_zero_iff_degree_lt + theorem Polynomial.div_tendsto_zero_of_degree_lt + theorem Polynomial.eventually_no_roots + theorem Polynomial.isBigO_of_degree_le + theorem Polynomial.isEquivalent_atTop_div + theorem Polynomial.isEquivalent_atTop_lead + theorem Polynomial.tendsto_atBot_iff_leadingCoeff_nonpos + theorem Polynomial.tendsto_atBot_of_leadingCoeff_nonpos + theorem Polynomial.tendsto_atTop_iff_leadingCoeff_nonneg + theorem Polynomial.tendsto_atTop_of_leadingCoeff_nonneg + theorem Polynomial.tendsto_nhds_iff 2023-04-17 14:54:59 6afed5e feat: port Topology.Algebra.Nonarchimedean.Bases (#3476) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Topology/Algebra/Nonarchimedean/Bases.lean + structure RingFilterBasis.SubmodulesBasis + def RingFilterBasis.moduleFilterBasis + theorem RingFilterBasis.submodulesBasisIsBasis + theorem RingSubgroupsBasis.hasBasis_nhds + theorem RingSubgroupsBasis.hasBasis_nhds_zero + theorem RingSubgroupsBasis.mem_addGroupFilterBasis + theorem RingSubgroupsBasis.mem_addGroupFilterBasis_iff + theorem RingSubgroupsBasis.nonarchimedean + theorem RingSubgroupsBasis.of_comm + def RingSubgroupsBasis.openAddSubgroup + def RingSubgroupsBasis.toRingFilterBasis + def RingSubgroupsBasis.topology + structure RingSubgroupsBasis + theorem SubmodulesBasis.nonarchimedean + def SubmodulesBasis.openAddSubgroup + def SubmodulesBasis.toModuleFilterBasis + def SubmodulesBasis.topology + structure SubmodulesBasis + theorem SubmodulesRingBasis.toRing_subgroups_basis + theorem SubmodulesRingBasis.toSubmodulesBasis + def SubmodulesRingBasis.topology + structure SubmodulesRingBasis Modified Mathlib/Topology/Algebra/Nonarchimedean/Basic.lean 2023-04-17 14:43:34 1d84d7d feat: port Analysis.NormedSpace.Pointwise (#3479) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/NormedSpace/Pointwise.lean + theorem Metric.Bounded.smul + theorem NormedSpace.sphere_nonempty + theorem affinity_unitBall + theorem affinity_unitClosedBall + theorem ball_add_ball + theorem ball_add_closedBall + theorem ball_sub_ball + theorem ball_sub_closedBall + theorem closedBall_add_ball + theorem closedBall_add_closedBall + theorem closedBall_sub_ball + theorem closedBall_sub_closedBall + theorem closure_thickening + theorem cthickening_ball + theorem cthickening_closedBall + theorem cthickening_cthickening + theorem cthickening_thickening + theorem disjoint_ball_ball_iff + theorem disjoint_ball_closedBall_iff + theorem disjoint_closedBall_ball_iff + theorem disjoint_closedBall_closedBall_iff + theorem eventually_singleton_add_smul_subset + theorem exists_dist_eq + theorem exists_dist_le_le + theorem exists_dist_le_lt + theorem exists_dist_lt_le + theorem exists_dist_lt_lt + theorem infEdist_cthickening + theorem infEdist_thickening + theorem smul_ball + theorem smul_closedBall' + theorem smul_closedBall + theorem smul_closedUnitBall + theorem smul_closedUnitBall_of_nonneg + theorem smul_sphere' + theorem smul_sphere + theorem smul_unitBall + theorem smul_unitBall_of_pos + theorem thickening_ball + theorem thickening_closedBall + theorem thickening_cthickening + theorem thickening_thickening 2023-04-17 14:24:14 dcd5622 chore: tidy various files (#3483) ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Nonneg/Ring.lean +/- theorem Nonneg.toNonneg_lt Modified Mathlib/CategoryTheory/Arrow.lean + theorem CategoryTheory.Arrow.isIso_of_isIso_left_of_isIso_right - theorem CategoryTheory.Arrow.isIso_of_iso_left_of_isIso_right Modified Mathlib/CategoryTheory/ConcreteCategory/Basic.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Equalizers.lean +/- def CategoryTheory.Limits.Cofork.ofπ +/- def CategoryTheory.Limits.Fork.ofι Modified Mathlib/CategoryTheory/Limits/Shapes/FiniteLimits.lean Modified Mathlib/GroupTheory/OrderOfElement.lean Modified Mathlib/LinearAlgebra/Dimension.lean Modified Mathlib/MeasureTheory/MeasurableSpace.lean + def MeasurableEquiv.piMeasurableEquivTProd - def MeasurableEquiv.piMeasurableEquivTprod + theorem measurable_findGreatest' - theorem measurable_find_greatest' Modified Mathlib/SetTheory/Cardinal/Basic.lean - theorem Cardinal.mk_pEmpty - theorem Cardinal.mk_pLift_false - theorem Cardinal.mk_pLift_true - theorem Cardinal.mk_pSum - theorem Cardinal.mk_pUnit + theorem Cardinal.mk_pempty + theorem Cardinal.mk_plift_false + theorem Cardinal.mk_plift_true + theorem Cardinal.mk_psum + theorem Cardinal.mk_punit +/- def Cardinal.toPartENat Modified Mathlib/SetTheory/Cardinal/Finite.lean - theorem Nat.card_pLift + theorem Nat.card_plift - theorem Nat.card_uLift + theorem Nat.card_ulift - theorem Nat.card_zMod + theorem Nat.card_zmod 2023-04-17 12:04:16 9a88da8 chore: fix names in DiscreteQuotient (#3481) ESTIMATED CHANGES Modified Mathlib/Topology/DiscreteQuotient.lean + theorem DiscreteQuotient.LEComap.comp + theorem DiscreteQuotient.LEComap.mono + def DiscreteQuotient.LEComap - theorem DiscreteQuotient.LeComap.comp - theorem DiscreteQuotient.LeComap.mono - def DiscreteQuotient.LeComap + theorem DiscreteQuotient.fiber_subset_ofLE - theorem DiscreteQuotient.fiber_subset_ofLe +/- theorem DiscreteQuotient.leComap_id +/- theorem DiscreteQuotient.leComap_id_iff +/- def DiscreteQuotient.map +/- theorem DiscreteQuotient.map_comp + theorem DiscreteQuotient.map_comp_ofLE - theorem DiscreteQuotient.map_comp_ofLe +/- theorem DiscreteQuotient.map_comp_proj +/- theorem DiscreteQuotient.map_continuous + theorem DiscreteQuotient.map_ofLE - theorem DiscreteQuotient.map_ofLe +/- theorem DiscreteQuotient.map_proj + def DiscreteQuotient.ofLE + theorem DiscreteQuotient.ofLE_comp_map + theorem DiscreteQuotient.ofLE_comp_ofLE + theorem DiscreteQuotient.ofLE_comp_proj + theorem DiscreteQuotient.ofLE_continuous + theorem DiscreteQuotient.ofLE_map + theorem DiscreteQuotient.ofLE_ofLE + theorem DiscreteQuotient.ofLE_proj + theorem DiscreteQuotient.ofLE_refl + theorem DiscreteQuotient.ofLE_refl_apply - def DiscreteQuotient.ofLe - theorem DiscreteQuotient.ofLe_comp_map - theorem DiscreteQuotient.ofLe_comp_ofLe - theorem DiscreteQuotient.ofLe_comp_proj - theorem DiscreteQuotient.ofLe_continuous - theorem DiscreteQuotient.ofLe_map - theorem DiscreteQuotient.ofLe_ofLe - theorem DiscreteQuotient.ofLe_proj - theorem DiscreteQuotient.ofLe_refl - theorem DiscreteQuotient.ofLe_refl_apply 2023-04-17 11:39:40 ed47d42 feat: port ModelTheory.Syntax (#3195) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/ModelTheory/Syntax.lean + theorem FirstOrder.Language.BoundedFormula.IsAtomic.castLE + theorem FirstOrder.Language.BoundedFormula.IsAtomic.isPrenex + theorem FirstOrder.Language.BoundedFormula.IsAtomic.isQF + theorem FirstOrder.Language.BoundedFormula.IsAtomic.liftAt + theorem FirstOrder.Language.BoundedFormula.IsAtomic.relabel + inductive FirstOrder.Language.BoundedFormula.IsAtomic + theorem FirstOrder.Language.BoundedFormula.IsPrenex.castLE + theorem FirstOrder.Language.BoundedFormula.IsPrenex.induction_on_all_not + theorem FirstOrder.Language.BoundedFormula.IsPrenex.liftAt + theorem FirstOrder.Language.BoundedFormula.IsPrenex.relabel + inductive FirstOrder.Language.BoundedFormula.IsPrenex + theorem FirstOrder.Language.BoundedFormula.IsQF.castLE + theorem FirstOrder.Language.BoundedFormula.IsQF.isPrenex + theorem FirstOrder.Language.BoundedFormula.IsQF.liftAt + theorem FirstOrder.Language.BoundedFormula.IsQF.not + theorem FirstOrder.Language.BoundedFormula.IsQF.relabel + theorem FirstOrder.Language.BoundedFormula.IsQF.toPrenexImp + theorem FirstOrder.Language.BoundedFormula.IsQF.toPrenexImpRight + inductive FirstOrder.Language.BoundedFormula.IsQF + def FirstOrder.Language.BoundedFormula.alls + def FirstOrder.Language.BoundedFormula.castLE + theorem FirstOrder.Language.BoundedFormula.castLE_castLE + theorem FirstOrder.Language.BoundedFormula.castLE_comp_castLE + theorem FirstOrder.Language.BoundedFormula.castLE_rfl + def FirstOrder.Language.BoundedFormula.constantsVarsEquiv + def FirstOrder.Language.BoundedFormula.exs + def FirstOrder.Language.BoundedFormula.freeVarFinset + theorem FirstOrder.Language.BoundedFormula.isPrenex_toPrenexImp + theorem FirstOrder.Language.BoundedFormula.isPrenex_toPrenexImpRight + theorem FirstOrder.Language.BoundedFormula.isQF_bot + def FirstOrder.Language.BoundedFormula.liftAt + def FirstOrder.Language.BoundedFormula.mapTermRel + def FirstOrder.Language.BoundedFormula.mapTermRelEquiv + theorem FirstOrder.Language.BoundedFormula.mapTermRel_id_id_id + theorem FirstOrder.Language.BoundedFormula.mapTermRel_mapTermRel + theorem FirstOrder.Language.BoundedFormula.not_all_isAtomic + theorem FirstOrder.Language.BoundedFormula.not_all_isQF + theorem FirstOrder.Language.BoundedFormula.not_ex_isAtomic + theorem FirstOrder.Language.BoundedFormula.not_ex_isQF + def FirstOrder.Language.BoundedFormula.relabel + def FirstOrder.Language.BoundedFormula.relabelAux + theorem FirstOrder.Language.BoundedFormula.relabelAux_sum_inl + def FirstOrder.Language.BoundedFormula.relabelEquiv + theorem FirstOrder.Language.BoundedFormula.relabel_all + theorem FirstOrder.Language.BoundedFormula.relabel_bot + theorem FirstOrder.Language.BoundedFormula.relabel_ex + theorem FirstOrder.Language.BoundedFormula.relabel_falsum + theorem FirstOrder.Language.BoundedFormula.relabel_imp + theorem FirstOrder.Language.BoundedFormula.relabel_not + theorem FirstOrder.Language.BoundedFormula.relabel_sum_inl + def FirstOrder.Language.BoundedFormula.restrictFreeVar + def FirstOrder.Language.BoundedFormula.subst + theorem FirstOrder.Language.BoundedFormula.sum_elim_comp_relabelAux + def FirstOrder.Language.BoundedFormula.toFormula + def FirstOrder.Language.BoundedFormula.toPrenex + def FirstOrder.Language.BoundedFormula.toPrenexImp + def FirstOrder.Language.BoundedFormula.toPrenexImpRight + theorem FirstOrder.Language.BoundedFormula.toPrenex_isPrenex + inductive FirstOrder.Language.BoundedFormula + def FirstOrder.Language.Constants.term + def FirstOrder.Language.Formula.equivSentence + theorem FirstOrder.Language.Formula.equivSentence_inf + theorem FirstOrder.Language.Formula.equivSentence_not + def FirstOrder.Language.Formula.graph + theorem FirstOrder.Language.Formula.isAtomic_graph + def FirstOrder.Language.Formula.relabel + def FirstOrder.Language.Formula + def FirstOrder.Language.Functions.apply₁ + def FirstOrder.Language.Functions.apply₂ + def FirstOrder.Language.LEquiv.onBoundedFormula + theorem FirstOrder.Language.LEquiv.onBoundedFormula_symm + def FirstOrder.Language.LEquiv.onFormula + theorem FirstOrder.Language.LEquiv.onFormula_apply + theorem FirstOrder.Language.LEquiv.onFormula_symm + def FirstOrder.Language.LEquiv.onSentence + theorem FirstOrder.Language.LHom.comp_onBoundedFormula + theorem FirstOrder.Language.LHom.comp_onTerm + theorem FirstOrder.Language.LHom.id_onBoundedFormula + theorem FirstOrder.Language.LHom.id_onTerm + theorem FirstOrder.Language.LHom.mem_onTheory + def FirstOrder.Language.LHom.onBoundedFormula + def FirstOrder.Language.LHom.onFormula + def FirstOrder.Language.LHom.onSentence + def FirstOrder.Language.LHom.onTerm + def FirstOrder.Language.LHom.onTheory + def FirstOrder.Language.Lequiv.onTerm + def FirstOrder.Language.Relations.boundedFormula + def FirstOrder.Language.Relations.boundedFormula₁ + def FirstOrder.Language.Relations.boundedFormula₂ + def FirstOrder.Language.Relations.formula + def FirstOrder.Language.Relations.formula₁ + def FirstOrder.Language.Relations.formula₂ + def FirstOrder.Language.Sentence + def FirstOrder.Language.Term.bdEqual + def FirstOrder.Language.Term.constantsToVars + def FirstOrder.Language.Term.constantsVarsEquiv + def FirstOrder.Language.Term.constantsVarsEquivLeft + theorem FirstOrder.Language.Term.constantsVarsEquivLeft_apply + theorem FirstOrder.Language.Term.constantsVarsEquivLeft_symm_apply + def FirstOrder.Language.Term.equal + def FirstOrder.Language.Term.liftAt + def FirstOrder.Language.Term.relabel + def FirstOrder.Language.Term.relabelEquiv + theorem FirstOrder.Language.Term.relabel_comp_relabel + theorem FirstOrder.Language.Term.relabel_id + theorem FirstOrder.Language.Term.relabel_id_eq_id + theorem FirstOrder.Language.Term.relabel_relabel + def FirstOrder.Language.Term.restrictVar + def FirstOrder.Language.Term.restrictVarLeft + def FirstOrder.Language.Term.subst + def FirstOrder.Language.Term.varFinset + def FirstOrder.Language.Term.varFinsetLeft + def FirstOrder.Language.Term.varsToConstants + inductive FirstOrder.Language.Term + def FirstOrder.Language.Theory + theorem FirstOrder.Language.directed_distinctConstantsTheory + def FirstOrder.Language.distinctConstantsTheory + theorem FirstOrder.Language.distinctConstantsTheory_eq_unionᵢ + def FirstOrder.Language.infiniteTheory + theorem FirstOrder.Language.monotone_distinctConstantsTheory + def FirstOrder.Language.nonemptyTheory 2023-04-17 11:13:23 5f42efa feat: port NumberTheory.PellMatiyasevic (#3083) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/NumberTheory/PellMatiyasevic.lean + def Pell.IsPell + theorem Pell.asq_pos + def Pell.az + theorem Pell.d_pos + theorem Pell.dvd_of_ysq_dvd + theorem Pell.dz_val + theorem Pell.eq_of_xn_modEq' + theorem Pell.eq_of_xn_modEq + theorem Pell.eq_of_xn_modEq_le + theorem Pell.eq_of_xn_modEq_lem1 + theorem Pell.eq_of_xn_modEq_lem2 + theorem Pell.eq_of_xn_modEq_lem3 + theorem Pell.eq_pell + theorem Pell.eq_pellZd + theorem Pell.eq_pell_lem + theorem Pell.eq_pow_of_pell + theorem Pell.eq_pow_of_pell_lem + theorem Pell.isPell_iff_mem_unitary + theorem Pell.isPell_mul + theorem Pell.isPell_nat + theorem Pell.isPell_norm + theorem Pell.isPell_one + theorem Pell.isPell_pellZd + theorem Pell.isPell_star + theorem Pell.matiyasevic + theorem Pell.modEq_of_xn_modEq + theorem Pell.n_lt_a_pow + theorem Pell.n_lt_xn + def Pell.pell + def Pell.pellZd + theorem Pell.pellZd_add + theorem Pell.pellZd_im + theorem Pell.pellZd_re + theorem Pell.pellZd_sub + theorem Pell.pellZd_succ + theorem Pell.pellZd_succ_succ + theorem Pell.pell_eq + theorem Pell.pell_eqz + theorem Pell.pell_val + theorem Pell.strictMono_x + theorem Pell.strictMono_y + theorem Pell.x_pos + theorem Pell.x_sub_y_dvd_pow + theorem Pell.x_sub_y_dvd_pow_lem + def Pell.xn + theorem Pell.xn_add + theorem Pell.xn_ge_a_pow + theorem Pell.xn_modEq_x2n_add + theorem Pell.xn_modEq_x2n_add_lem + theorem Pell.xn_modEq_x2n_sub + theorem Pell.xn_modEq_x2n_sub_lem + theorem Pell.xn_modEq_x4n_add + theorem Pell.xn_modEq_x4n_sub + theorem Pell.xn_one + theorem Pell.xn_succ + theorem Pell.xn_succ_succ + theorem Pell.xn_zero + theorem Pell.xy_coprime + theorem Pell.xy_modEq_of_modEq + theorem Pell.xy_modEq_yn + theorem Pell.xy_succ_succ + def Pell.xz + theorem Pell.xz_sub + theorem Pell.xz_succ + theorem Pell.xz_succ_succ + theorem Pell.y_dvd_iff + theorem Pell.y_mul_dvd + def Pell.yn + theorem Pell.yn_add + theorem Pell.yn_ge_n + theorem Pell.yn_modEq_a_sub_one + theorem Pell.yn_modEq_two + theorem Pell.yn_one + theorem Pell.yn_succ + theorem Pell.yn_succ_succ + theorem Pell.yn_zero + theorem Pell.ysq_dvd_yy + def Pell.yz + theorem Pell.yz_sub + theorem Pell.yz_succ + theorem Pell.yz_succ_succ 2023-04-17 10:44:03 2400458 feat: port Analysis.BoxIntegral.Box.SubboxInduction (#3440) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/BoxIntegral/Box/SubboxInduction.lean + theorem BoxIntegral.Box.disjoint_splitCenterBox + theorem BoxIntegral.Box.exists_mem_splitCenterBox + theorem BoxIntegral.Box.injective_splitCenterBox + theorem BoxIntegral.Box.mem_splitCenterBox + def BoxIntegral.Box.splitCenterBox + def BoxIntegral.Box.splitCenterBoxEmb + theorem BoxIntegral.Box.splitCenterBox_le + theorem BoxIntegral.Box.subbox_induction_on' + theorem BoxIntegral.Box.unionᵢ_coe_splitCenterBox + theorem BoxIntegral.Box.upper_sub_lower_splitCenterBox 2023-04-17 10:44:02 4c4de08 feat: the product of a compact space and a paracompact space is a paracompact space (#3296) ESTIMATED CHANGES Modified Mathlib/Topology/Paracompact.lean + theorem ClosedEmbedding.paracompactSpace + theorem Homeomorph.paracompactSpace_iff 2023-04-17 10:44:01 35acfaa feat: use `HomotopyLike` for `HomotopyWith` (#3197) Also fix some `simp`/`simps`. ESTIMATED CHANGES Modified Mathlib/Topology/Homotopy/Basic.lean +/- def ContinuousMap.HomotopyRel.symm +/- def ContinuousMap.HomotopyWith.Simps.apply +/- theorem ContinuousMap.HomotopyWith.coeFn_injective +/- theorem ContinuousMap.HomotopyWith.ext +/- theorem ContinuousMap.HomotopyWith.extendProp +/- def ContinuousMap.HomotopyWith.refl +/- def ContinuousMap.HomotopyWith.symm 2023-04-17 10:43:59 a51c865 feat: add constructions about continuous map and homotopies (#2984) * Add `ContinuousMap.fst`, `ContinuousMap.snd`, `ContinuousMap.eval`, and `ContinuousMap.piMap`. * Add `ContinuousMap.Homotopy.prodMk`, `ContinuousMap.Homotopy.prodMap`, `ContinuousMap.Homotopy.pi`, `ContinuousMap.Homotopy.piMap`. * Add `ContinuousMap.Homotopic.prodMk`, `ContinuousMap.Homotopic.prodMap`, `ContinuousMap.Homotopic.pi`, `ContinuousMap.Homotopic.piMap`. * Add `ContinuousMap.HomotopyEquiv.prodCongr` and `ContinuousMap.HomotopyEquiv.piCongrRight`. ESTIMATED CHANGES Modified Mathlib/Topology/ContinuousFunction/Basic.lean + def ContinuousMap.eval + def ContinuousMap.fst + def ContinuousMap.piMap + def ContinuousMap.snd Modified Mathlib/Topology/Homotopy/Basic.lean +/- def ContinuousMap.Homotopy.cast + def ContinuousMap.Homotopy.prodMap +/- def ContinuousMap.Homotopy.trans Modified Mathlib/Topology/Homotopy/Equiv.lean + def ContinuousMap.HomotopyEquiv.piCongrRight + def ContinuousMap.HomotopyEquiv.prodCongr 2023-04-17 10:23:59 c148e3f chore: golf (#3473) - Golf `TopologicalGroup.toUniformSpace`. - Slightly golf `GroupSeminorm.toSeminormedGroup` ESTIMATED CHANGES Modified Mathlib/Analysis/Normed/Group/Basic.lean +/- def GroupSeminorm.toSeminormedGroup Modified Mathlib/Topology/Algebra/UniformGroup.lean +/- def TopologicalGroup.toUniformSpace 2023-04-17 08:52:29 7392084 feat: port CategoryTheory.Sites.Whiskering (#3461) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Sites/Whiskering.lean + def CategoryTheory.GrothendieckTopology.Cover.mapMultifork + def CategoryTheory.GrothendieckTopology.Cover.multicospanComp + theorem CategoryTheory.GrothendieckTopology.Cover.multicospanComp_app_left + theorem CategoryTheory.GrothendieckTopology.Cover.multicospanComp_app_right + theorem CategoryTheory.GrothendieckTopology.Cover.multicospanComp_hom_app_left + theorem CategoryTheory.GrothendieckTopology.Cover.multicospanComp_hom_app_right + theorem CategoryTheory.GrothendieckTopology.Cover.multicospanComp_hom_inv_left + theorem CategoryTheory.GrothendieckTopology.Cover.multicospanComp_hom_inv_right + theorem CategoryTheory.Presheaf.IsSheaf.comp + def CategoryTheory.sheafCompose 2023-04-17 08:52:27 5e13d72 feat: port Order.Category.DistLatCat (#3458) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Order/Category/DistLatCat.lean + def DistLatCat.Iso.mk + theorem DistLatCat.coe_of + def DistLatCat.dual + def DistLatCat.dualEquiv + def DistLatCat.of + def DistLatCat + theorem distLatCat_dual_comp_forget_to_latCat 2023-04-17 08:52:26 7e4c9ba feat: port Analysis.Convex.Exposed (#3453) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/Convex/Exposed.lean + theorem ContinuousLinearMap.toExposed.isExposed + def ContinuousLinearMap.toExposed + theorem IsExposed.eq_inter_halfspace' + theorem IsExposed.eq_inter_halfspace + theorem IsExposed.inter_left + theorem IsExposed.inter_right + theorem IsExposed.interₛ + def IsExposed + def Set.exposedPoints + theorem exposedPoints_empty + theorem exposedPoints_subset + theorem exposedPoints_subset_extremePoints + theorem exposed_point_def + theorem isExposed_empty + theorem mem_exposedPoints_iff_exposed_singleton 2023-04-17 08:52:25 d286a1f feat: port AlgebraicTopology.TopologicalSimplex (#3437) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/AlgebraicTopology/TopologicalSimplex.lean + theorem SimplexCategory.coe_toTopMap + theorem SimplexCategory.continuous_toTopMap + def SimplexCategory.toTop + def SimplexCategory.toTopMap + theorem SimplexCategory.toTopObj.ext + def SimplexCategory.toTopObj Modified Mathlib/Topology/Category/Top/Basic.lean + theorem TopCat.hom_apply +/- theorem TopCat.id_app 2023-04-17 08:52:23 2313f45 feat: port Analysis.Normed.Ring.Seminorm (#3211) ~~This is currently stuck on an issue as indicated in line 111.~~ edit: fixed by the `etaExperiment` option ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/Normed/Ring/Seminorm.lean + theorem MulRingNorm.apply_one + theorem MulRingNorm.ext + structure MulRingNorm + theorem MulRingSeminorm.apply_one + theorem MulRingSeminorm.ext + theorem MulRingSeminorm.toFun_eq_coe + structure MulRingSeminorm + theorem RingNorm.apply_one + theorem RingNorm.ext + structure RingNorm + theorem RingSeminorm.apply_one + theorem RingSeminorm.eq_zero_iff + theorem RingSeminorm.ext + theorem RingSeminorm.ne_zero_iff + theorem RingSeminorm.seminorm_one_eq_one_iff_ne_zero + theorem RingSeminorm.toFun_eq_coe + def RingSeminorm.toRingNorm + structure RingSeminorm + def normRingNorm + def normRingSeminorm 2023-04-17 07:18:40 4fe63cb chore: tidy various files (#3474) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Limits/Over.lean Modified Mathlib/Data/Real/Pointwise.lean Modified Mathlib/GroupTheory/FreeGroup.lean Modified Mathlib/GroupTheory/OrderOfElement.lean Modified Mathlib/LinearAlgebra/AffineSpace/AffineMap.lean Modified Mathlib/LinearAlgebra/Matrix/DotProduct.lean Modified Mathlib/ModelTheory/LanguageMap.lean Modified Mathlib/Order/Filter/Pointwise.lean +/- def Filter.mapMonoidHom - theorem Filter.nsmul_top Modified Mathlib/Topology/Algebra/Group/Basic.lean +/- def Units.Homeomorph.prodUnits Modified Mathlib/Topology/FiberBundle/Basic.lean Modified Mathlib/Topology/List.lean + theorem List.tendsto_insertNth' - theorem List.tendsto_insert_nth' + theorem Vector.continuous_insertNth' - theorem Vector.continuous_insert_nth' Modified Mathlib/Topology/Separation.lean 2023-04-17 07:18:38 9df6313 chore: copy over some nth_rewrite tests from mathlib3 (#3462) There's a somewhat unsatisfactory situation here: when `nth_rewrite` was ported from mathlib3 to mathlib4, its behaviour changed significantly. Now it is "just" a syntax level tactic for accessing the "Occurrences" argument of the underlying rewrite machinery. However in mathlib3 is actually had different behaviour, allowing rewriting in individual locations even when the lemma matched in different ways. (Both Lean 3 and Lean 4 have a stuck metavariables problem in this situation.) This PR restores the tests from mathlib3, with the ones broken because of this regression just commented out, and an explanation added. Hopefully one day we'll fix this up. ESTIMATED CHANGES Modified test/NthRewrite.lean + structure Cat + structure F 2023-04-17 07:18:37 0a4bbec feat: port GroupTheory.FreeAbelianGroupFinsupp (#3441) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Data/Finsupp/Defs.lean Modified Mathlib/Data/Int/Cast/Lemmas.lean Modified Mathlib/GroupTheory/FreeAbelianGroup.lean Added Mathlib/GroupTheory/FreeAbelianGroupFinsupp.lean + def Finsupp.toFreeAbelianGroup + theorem Finsupp.toFreeAbelianGroup_comp_singleAddHom + theorem Finsupp.toFreeAbelianGroup_comp_toFinsupp + theorem Finsupp.toFreeAbelianGroup_toFinsupp + def FreeAbelianGroup.Equiv.ofFreeAbelianGroupEquiv + def FreeAbelianGroup.Equiv.ofFreeAbelianGroupLinearEquiv + def FreeAbelianGroup.Equiv.ofFreeGroupEquiv + def FreeAbelianGroup.Equiv.ofIsFreeGroupEquiv + def FreeAbelianGroup.coeff + def FreeAbelianGroup.equivFinsupp + theorem FreeAbelianGroup.mem_support_iff + theorem FreeAbelianGroup.not_mem_support_iff + def FreeAbelianGroup.support + theorem FreeAbelianGroup.support_add + theorem FreeAbelianGroup.support_neg + theorem FreeAbelianGroup.support_nsmul + theorem FreeAbelianGroup.support_of + theorem FreeAbelianGroup.support_zero + theorem FreeAbelianGroup.support_zsmul + def FreeAbelianGroup.toFinsupp + theorem FreeAbelianGroup.toFinsupp_comp_toFreeAbelianGroup + theorem FreeAbelianGroup.toFinsupp_of + theorem FreeAbelianGroup.toFinsupp_toFreeAbelianGroup 2023-04-17 07:01:44 b000aad feat: port Dynamics.Circle.RotationNumber.TranslationNumber (#3433) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Dynamics/Circle/RotationNumber/TranslationNumber.lean + theorem CircleDeg1Lift.ceil_map_map_zero_le + theorem CircleDeg1Lift.coe_mk + theorem CircleDeg1Lift.coe_mul + theorem CircleDeg1Lift.coe_one + theorem CircleDeg1Lift.coe_pow + theorem CircleDeg1Lift.coe_toOrderHom + theorem CircleDeg1Lift.coe_toOrderIso + theorem CircleDeg1Lift.coe_toOrderIso_inv + theorem CircleDeg1Lift.coe_toOrderIso_symm + theorem CircleDeg1Lift.commute_add_int + theorem CircleDeg1Lift.commute_add_nat + theorem CircleDeg1Lift.commute_iff_commute + theorem CircleDeg1Lift.commute_int_add + theorem CircleDeg1Lift.commute_nat_add + theorem CircleDeg1Lift.commute_sub_int + theorem CircleDeg1Lift.commute_sub_nat + theorem CircleDeg1Lift.continuous_iff_surjective + theorem CircleDeg1Lift.continuous_pow + theorem CircleDeg1Lift.dist_map_map_zero_lt + theorem CircleDeg1Lift.dist_map_zero_lt_of_semiconj + theorem CircleDeg1Lift.dist_map_zero_lt_of_semiconjBy + theorem CircleDeg1Lift.dist_map_zero_translationNumber_le + theorem CircleDeg1Lift.dist_pow_map_zero_mul_translationNumber_le + theorem CircleDeg1Lift.exists_eq_add_translationNumber + theorem CircleDeg1Lift.ext + theorem CircleDeg1Lift.ext_iff + theorem CircleDeg1Lift.floor_map_map_zero_le + theorem CircleDeg1Lift.floor_sub_le_translationNumber + theorem CircleDeg1Lift.forall_map_sub_of_Icc + theorem CircleDeg1Lift.inf_apply + theorem CircleDeg1Lift.isUnit_iff_bijective + theorem CircleDeg1Lift.iterate_eq_of_map_eq_add_int + theorem CircleDeg1Lift.iterate_le_of_map_le_add_int + theorem CircleDeg1Lift.iterate_mono + theorem CircleDeg1Lift.iterate_monotone + theorem CircleDeg1Lift.iterate_pos_eq_iff + theorem CircleDeg1Lift.iterate_pos_le_iff + theorem CircleDeg1Lift.iterate_pos_lt_iff + theorem CircleDeg1Lift.le_ceil_map_map_zero + theorem CircleDeg1Lift.le_floor_map_map_zero + theorem CircleDeg1Lift.le_iterate_of_add_int_le_map + theorem CircleDeg1Lift.le_iterate_pos_iff + theorem CircleDeg1Lift.le_map_map_zero + theorem CircleDeg1Lift.le_map_of_map_zero + theorem CircleDeg1Lift.le_translationNumber_of_add_int_le + theorem CircleDeg1Lift.le_translationNumber_of_add_le + theorem CircleDeg1Lift.le_translationNumber_of_add_nat_le + theorem CircleDeg1Lift.lt_iterate_pos_iff + theorem CircleDeg1Lift.lt_map_map_zero + theorem CircleDeg1Lift.lt_map_of_int_lt_translationNumber + theorem CircleDeg1Lift.lt_map_of_nat_lt_translationNumber + theorem CircleDeg1Lift.lt_translationNumber_of_forall_add_lt + theorem CircleDeg1Lift.map_add_int + theorem CircleDeg1Lift.map_add_nat + theorem CircleDeg1Lift.map_add_one + theorem CircleDeg1Lift.map_fract_sub_fract_eq + theorem CircleDeg1Lift.map_int_add + theorem CircleDeg1Lift.map_int_of_map_zero + theorem CircleDeg1Lift.map_le_of_map_zero + theorem CircleDeg1Lift.map_lt_add_floor_translationNumber_add_one + theorem CircleDeg1Lift.map_lt_add_translationNumber_add_one + theorem CircleDeg1Lift.map_lt_of_translationNumber_lt_int + theorem CircleDeg1Lift.map_lt_of_translationNumber_lt_nat + theorem CircleDeg1Lift.map_map_zero_le + theorem CircleDeg1Lift.map_map_zero_lt + theorem CircleDeg1Lift.map_nat_add + theorem CircleDeg1Lift.map_one_add + theorem CircleDeg1Lift.map_sub_int + theorem CircleDeg1Lift.map_sub_nat + theorem CircleDeg1Lift.mono + theorem CircleDeg1Lift.mul_apply + theorem CircleDeg1Lift.mul_floor_map_zero_le_floor_iterate_zero + theorem CircleDeg1Lift.pow_mono + theorem CircleDeg1Lift.pow_monotone + theorem CircleDeg1Lift.semiconjBy_iff_semiconj + theorem CircleDeg1Lift.semiconj_of_bijective_of_translationNumber_eq + theorem CircleDeg1Lift.semiconj_of_group_action_of_forall_translationNumber_eq + theorem CircleDeg1Lift.semiconj_of_isUnit_of_translationNumber_eq + theorem CircleDeg1Lift.strictMono_iff_injective + theorem CircleDeg1Lift.sup_apply + theorem CircleDeg1Lift.tendsto_translationNumber + theorem CircleDeg1Lift.tendsto_translationNumber_aux + theorem CircleDeg1Lift.tendsto_translationNumber_of_dist_bounded_aux + theorem CircleDeg1Lift.tendsto_translation_number' + theorem CircleDeg1Lift.tendsto_translation_number₀' + theorem CircleDeg1Lift.tendsto_translation_number₀ + def CircleDeg1Lift.toOrderIso + def CircleDeg1Lift.translate + theorem CircleDeg1Lift.translate_apply + theorem CircleDeg1Lift.translate_inv_apply + theorem CircleDeg1Lift.translate_iterate + theorem CircleDeg1Lift.translate_pow + theorem CircleDeg1Lift.translate_zpow + def CircleDeg1Lift.translationNumber + theorem CircleDeg1Lift.translationNumber_conj_eq' + theorem CircleDeg1Lift.translationNumber_conj_eq + theorem CircleDeg1Lift.translationNumber_eq_int_iff + theorem CircleDeg1Lift.translationNumber_eq_of_dist_bounded + theorem CircleDeg1Lift.translationNumber_eq_of_semiconj + theorem CircleDeg1Lift.translationNumber_eq_of_semiconjBy + theorem CircleDeg1Lift.translationNumber_eq_of_tendsto_aux + theorem CircleDeg1Lift.translationNumber_eq_of_tendsto₀' + theorem CircleDeg1Lift.translationNumber_eq_of_tendsto₀ + theorem CircleDeg1Lift.translationNumber_eq_rat_iff + theorem CircleDeg1Lift.translationNumber_le_ceil_sub + theorem CircleDeg1Lift.translationNumber_le_of_le_add + theorem CircleDeg1Lift.translationNumber_le_of_le_add_int + theorem CircleDeg1Lift.translationNumber_le_of_le_add_nat + theorem CircleDeg1Lift.translationNumber_lt_of_forall_lt_add + theorem CircleDeg1Lift.translationNumber_mono + theorem CircleDeg1Lift.translationNumber_mul_of_commute + theorem CircleDeg1Lift.translationNumber_of_eq_add_int + theorem CircleDeg1Lift.translationNumber_of_map_pow_eq_add_int + theorem CircleDeg1Lift.translationNumber_one + theorem CircleDeg1Lift.translationNumber_pow + theorem CircleDeg1Lift.translationNumber_translate + theorem CircleDeg1Lift.translationNumber_units_inv + theorem CircleDeg1Lift.translationNumber_zpow + def CircleDeg1Lift.transnumAuxSeq + theorem CircleDeg1Lift.transnumAuxSeq_def + theorem CircleDeg1Lift.transnumAuxSeq_dist_lt + theorem CircleDeg1Lift.transnumAuxSeq_zero + theorem CircleDeg1Lift.units_apply_inv_apply + theorem CircleDeg1Lift.units_inv_apply_apply + theorem CircleDeg1Lift.units_semiconj_of_translationNumber_eq + structure CircleDeg1Lift 2023-04-17 07:01:43 0ec9f46 feat: port Geometry.Manifold.LocalInvariantProperties (#3401) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Geometry/Manifold/LocalInvariantProperties.lean + def ChartedSpace.LiftProp + def ChartedSpace.LiftPropAt + def ChartedSpace.LiftPropOn + def ChartedSpace.LiftPropWithinAt + theorem ChartedSpace.liftPropAt_iff + theorem ChartedSpace.liftProp_iff + theorem LocalHomeomorph.isLocalStructomorphWithinAt_iff' + theorem LocalHomeomorph.isLocalStructomorphWithinAt_iff + theorem LocalHomeomorph.isLocalStructomorphWithinAt_source_iff + theorem StructureGroupoid.HasGroupoid.comp + def StructureGroupoid.IsLocalStructomorphWithinAt + theorem StructureGroupoid.LocalInvariantProp.congr' + theorem StructureGroupoid.LocalInvariantProp.congr + theorem StructureGroupoid.LocalInvariantProp.congr_iff + theorem StructureGroupoid.LocalInvariantProp.congr_iff_nhdsWithin + theorem StructureGroupoid.LocalInvariantProp.congr_nhdsWithin' + theorem StructureGroupoid.LocalInvariantProp.congr_nhdsWithin + theorem StructureGroupoid.LocalInvariantProp.congr_set + theorem StructureGroupoid.LocalInvariantProp.is_local_nhds + theorem StructureGroupoid.LocalInvariantProp.left_invariance + theorem StructureGroupoid.LocalInvariantProp.liftPropAt_chart + theorem StructureGroupoid.LocalInvariantProp.liftPropAt_chart_symm + theorem StructureGroupoid.LocalInvariantProp.liftPropAt_congr_iff_of_eventuallyEq + theorem StructureGroupoid.LocalInvariantProp.liftPropAt_congr_of_eventuallyEq + theorem StructureGroupoid.LocalInvariantProp.liftPropAt_of_liftPropWithinAt + theorem StructureGroupoid.LocalInvariantProp.liftPropAt_of_mem_groupoid + theorem StructureGroupoid.LocalInvariantProp.liftPropAt_of_mem_maximalAtlas + theorem StructureGroupoid.LocalInvariantProp.liftPropAt_symm_of_mem_maximalAtlas + theorem StructureGroupoid.LocalInvariantProp.liftPropOn_chart + theorem StructureGroupoid.LocalInvariantProp.liftPropOn_chart_symm + theorem StructureGroupoid.LocalInvariantProp.liftPropOn_congr + theorem StructureGroupoid.LocalInvariantProp.liftPropOn_congr_iff + theorem StructureGroupoid.LocalInvariantProp.liftPropOn_indep_chart + theorem StructureGroupoid.LocalInvariantProp.liftPropOn_mono + theorem StructureGroupoid.LocalInvariantProp.liftPropOn_of_liftProp + theorem StructureGroupoid.LocalInvariantProp.liftPropOn_of_locally_liftPropOn + theorem StructureGroupoid.LocalInvariantProp.liftPropOn_of_mem_groupoid + theorem StructureGroupoid.LocalInvariantProp.liftPropOn_of_mem_maximalAtlas + theorem StructureGroupoid.LocalInvariantProp.liftPropOn_symm_of_mem_maximalAtlas + theorem StructureGroupoid.LocalInvariantProp.liftPropWithinAt_congr + theorem StructureGroupoid.LocalInvariantProp.liftPropWithinAt_congr_iff + theorem StructureGroupoid.LocalInvariantProp.liftPropWithinAt_congr_iff_of_eventuallyEq + theorem StructureGroupoid.LocalInvariantProp.liftPropWithinAt_congr_of_eventuallyEq + theorem StructureGroupoid.LocalInvariantProp.liftPropWithinAt_iff + theorem StructureGroupoid.LocalInvariantProp.liftPropWithinAt_indep_chart' + theorem StructureGroupoid.LocalInvariantProp.liftPropWithinAt_indep_chart + theorem StructureGroupoid.LocalInvariantProp.liftPropWithinAt_indep_chart_aux + theorem StructureGroupoid.LocalInvariantProp.liftPropWithinAt_indep_chart_source + theorem StructureGroupoid.LocalInvariantProp.liftPropWithinAt_indep_chart_source_aux + theorem StructureGroupoid.LocalInvariantProp.liftPropWithinAt_indep_chart_target + theorem StructureGroupoid.LocalInvariantProp.liftPropWithinAt_indep_chart_target_aux2 + theorem StructureGroupoid.LocalInvariantProp.liftPropWithinAt_indep_chart_target_aux + theorem StructureGroupoid.LocalInvariantProp.liftPropWithinAt_inter' + theorem StructureGroupoid.LocalInvariantProp.liftPropWithinAt_inter + theorem StructureGroupoid.LocalInvariantProp.liftPropWithinAt_mono + theorem StructureGroupoid.LocalInvariantProp.liftPropWithinAt_mono_of_mem + theorem StructureGroupoid.LocalInvariantProp.liftPropWithinAt_of_liftPropAt + theorem StructureGroupoid.LocalInvariantProp.liftPropWithinAt_of_liftPropAt_of_mem_nhds + theorem StructureGroupoid.LocalInvariantProp.liftProp_id + theorem StructureGroupoid.LocalInvariantProp.liftProp_of_locally_liftPropOn + theorem StructureGroupoid.LocalInvariantProp.right_invariance + structure StructureGroupoid.LocalInvariantProp + theorem StructureGroupoid.isLocalStructomorphWithinAt_localInvariantProp + theorem StructureGroupoid.liftPropOn_univ + theorem StructureGroupoid.liftPropWithinAt_self + theorem StructureGroupoid.liftPropWithinAt_self_source + theorem StructureGroupoid.liftPropWithinAt_self_target + theorem StructureGroupoid.liftPropWithinAt_univ 2023-04-17 07:01:42 75fd61e feat: port Data.Num.Prime (#3386) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Data/Num/Basic.lean Added Mathlib/Data/Num/Prime.lean + def Num.Prime + def Num.minFac + theorem Num.minFac_to_nat + def PosNum.Prime + def PosNum.minFac + def PosNum.minFacAux + theorem PosNum.minFacAux_to_nat + theorem PosNum.minFac_to_nat 2023-04-17 07:01:41 cdb9a38 feat: port Topology.MetricSpace.Closeds (#3338) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Topology/MetricSpace/Closeds.lean + theorem EMetric.Closeds.edist_eq + theorem EMetric.NonemptyCompacts.ToCloseds.uniformEmbedding + theorem EMetric.NonemptyCompacts.isClosed_in_closeds + theorem EMetric.continuous_infEdist_hausdorffEdist + theorem EMetric.isClosed_subsets_of_isClosed + theorem Metric.NonemptyCompacts.dist_eq + theorem Metric.lipschitz_infDist + theorem Metric.lipschitz_infDist_set + theorem Metric.uniformContinuous_infDist_Hausdorff_dist 2023-04-17 06:46:11 426149a chore: forward-port leanprover-community/mathlib#18784 (#3454) ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/Dimension.lean + theorem LinearMap.lift_rank_comp_le + theorem LinearMap.lift_rank_comp_le_right + theorem LinearMap.rank_comp_le 2023-04-17 06:46:10 de1c73a feat: port Analysis.Asymptotics.AsymptoticEquivalent (#3417) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/Asymptotics/AsymptoticEquivalent.lean + theorem Asymptotics.IsEquivalent.add_isLittleO + theorem Asymptotics.IsEquivalent.congr_left + theorem Asymptotics.IsEquivalent.congr_right + theorem Asymptotics.IsEquivalent.div + theorem Asymptotics.IsEquivalent.exists_eq_mul + theorem Asymptotics.IsEquivalent.inv + theorem Asymptotics.IsEquivalent.isBigO_symm + theorem Asymptotics.IsEquivalent.isLittleO + theorem Asymptotics.IsEquivalent.mul + theorem Asymptotics.IsEquivalent.neg + theorem Asymptotics.IsEquivalent.refl + theorem Asymptotics.IsEquivalent.smul + theorem Asymptotics.IsEquivalent.sub_isLittleO + theorem Asymptotics.IsEquivalent.symm + theorem Asymptotics.IsEquivalent.tendsto_atBot + theorem Asymptotics.IsEquivalent.tendsto_atBot_iff + theorem Asymptotics.IsEquivalent.tendsto_atTop + theorem Asymptotics.IsEquivalent.tendsto_atTop_iff + theorem Asymptotics.IsEquivalent.tendsto_const + theorem Asymptotics.IsEquivalent.tendsto_nhds + theorem Asymptotics.IsEquivalent.tendsto_nhds_iff + theorem Asymptotics.IsEquivalent.trans + def Asymptotics.IsEquivalent + theorem Asymptotics.IsLittleO.add_isEquivalent + theorem Asymptotics.IsLittleO.isEquivalent + theorem Asymptotics.isEquivalent_const_iff_tendsto + theorem Asymptotics.isEquivalent_iff_exists_eq_mul + theorem Asymptotics.isEquivalent_iff_tendsto_one + theorem Asymptotics.isEquivalent_of_tendsto_one' + theorem Asymptotics.isEquivalent_of_tendsto_one + theorem Asymptotics.isEquivalent_zero_iff_eventually_zero + theorem Asymptotics.isEquivalent_zero_iff_isBigO_zero + theorem Filter.EventuallyEq.isEquivalent 2023-04-17 06:46:08 85576cf feat: port Topology.MetricSpace.Baire (#3315) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Topology/MetricSpace/Baire.lean + theorem Dense.inter_of_Gδ + theorem IsGδ.dense_bunionᵢ_interior_of_closed + theorem IsGδ.dense_unionᵢ_interior_of_closed + theorem IsGδ.dense_unionₛ_interior_of_closed + theorem dense_binterᵢ_of_Gδ + theorem dense_binterᵢ_of_open + theorem dense_bunionᵢ_interior_of_closed + theorem dense_interᵢ_of_Gδ + theorem dense_interᵢ_of_open + theorem dense_interᵢ_of_open_nat + theorem dense_interₛ_of_Gδ + theorem dense_interₛ_of_open + theorem dense_of_mem_residual + theorem dense_unionᵢ_interior_of_closed + theorem dense_unionₛ_interior_of_closed + theorem eventually_residual + theorem mem_residual + theorem nonempty_interior_of_unionᵢ_of_closed 2023-04-17 06:32:39 e29b9ea feat: port Analysis.Normed.Group.AddTorsor (#3063) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/Normed/Group/AddTorsor.lean + theorem Continuous.vsub + theorem Filter.Tendsto.lineMap + theorem Filter.Tendsto.midpoint + theorem Filter.Tendsto.vsub + def IsometryEquiv.constVSub + def IsometryEquiv.vaddConst + theorem LipschitzWith.vadd + theorem LipschitzWith.vsub + theorem continuous_vsub + theorem dist_eq_norm_vsub' + theorem dist_eq_norm_vsub + theorem dist_vadd_cancel_left + theorem dist_vadd_cancel_right + theorem dist_vadd_left + theorem dist_vadd_right + theorem dist_vadd_vadd_le + theorem dist_vsub_cancel_left + theorem dist_vsub_cancel_right + theorem dist_vsub_vsub_le + theorem edist_vadd_vadd_le + theorem edist_vsub_vsub_le + def metricSpaceOfNormedAddCommGroupOfAddTorsor + theorem nndist_vadd_vadd_le + theorem nndist_vsub_vsub_le + def pseudoMetricSpaceOfNormedAddCommGroupOfAddTorsor + theorem uniformContinuous_vadd + theorem uniformContinuous_vsub 2023-04-16 16:21:33 f25608f feat: port Analysis.Convex.Body (#3431) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/Convex/Body.lean + theorem ConvexBody.coe_add + theorem ConvexBody.coe_mk + theorem ConvexBody.coe_nsmul + theorem ConvexBody.coe_smul' + theorem ConvexBody.coe_smul + theorem ConvexBody.coe_zero + theorem ConvexBody.hausdorffDist_coe + theorem ConvexBody.hausdorffEdist_coe + theorem ConvexBody.hausdorffEdist_ne_top + structure ConvexBody 2023-04-16 11:41:35 2d048ef feat: port LinearAlgebra.FreeModule.Finite.Rank (#3455) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/LinearAlgebra/FreeModule/Finite/Rank.lean + theorem FiniteDimensional.Submodule.finrank_map_subtype_eq + theorem FiniteDimensional.finrank_directSum + theorem FiniteDimensional.finrank_eq_card_chooseBasisIndex + theorem FiniteDimensional.finrank_eq_rank + theorem FiniteDimensional.finrank_finsupp + theorem FiniteDimensional.finrank_matrix + theorem FiniteDimensional.finrank_pi + theorem FiniteDimensional.finrank_pi_fintype + theorem FiniteDimensional.finrank_prod + theorem FiniteDimensional.finrank_tensorProduct + theorem FiniteDimensional.nonempty_linearEquiv_iff_finrank_eq + theorem FiniteDimensional.nonempty_linearEquiv_of_finrank_eq + theorem FiniteDimensional.rank_lt_aleph0 + theorem LinearMap.finrank_le_finrank_of_injective + theorem LinearMap.finrank_range_le + theorem Submodule.finrank_le + theorem Submodule.finrank_le_finrank_of_le + theorem Submodule.finrank_map_le + theorem Submodule.finrank_quotient_le 2023-04-16 08:18:09 ab8e9be chore: forward port leanprover-community/mathlib#18811 (#3456) ESTIMATED CHANGES Modified Mathlib/RingTheory/Finiteness.lean 2023-04-15 20:36:42 e978148 chore: forward port mathlib#18810, 18798, 18738 (#3443) * `algebra.order.sub.defs`, `data.real.nnreal`: leanprover-community/mathlib#18810, which is itself a backport. Also fixes a docstring typo. * `linear_algebra.matrix.dot_product`: leanprover-community/mathlib#18798 * `data.matrix.basic`: leanprover-community/mathlib#18738 ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Sub/Defs.lean Modified Mathlib/Data/Matrix/Basic.lean + theorem Matrix.comp_equiv_dotProduct_comp_equiv + theorem Matrix.comp_equiv_symm_dotProduct + theorem Matrix.dotProduct_comp_equiv_symm + theorem Matrix.reindex_updateColumn + theorem Matrix.reindex_updateRow + theorem Matrix.submatrix_mulVec_equiv + theorem Matrix.submatrix_updateColumn_equiv + theorem Matrix.submatrix_updateRow_equiv + theorem Matrix.submatrix_vecMul_equiv +/- def Matrix.updateColumn + theorem Matrix.updateColumn_reindex + theorem Matrix.updateColumn_submatrix_equiv + theorem Matrix.updateRow_reindex + theorem Matrix.updateRow_submatrix_equiv Modified Mathlib/Data/Real/NNReal.lean Modified Mathlib/LinearAlgebra/Matrix/DotProduct.lean +/- theorem Matrix.dotProduct_self_star_eq_zero +/- theorem Matrix.dotProduct_star_self_eq_zero 2023-04-15 09:12:03 cab7832 doc: Fix typo in `Data.Seq.Seq` (#3439) ESTIMATED CHANGES Modified Mathlib/Data/Seq/Seq.lean 2023-04-15 00:49:35 85848f2 feat: port CategoryTheory.Subobject.MonoOver (#3423) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Subobject/MonoOver.lean + def CategoryTheory.MonoOver.congr + def CategoryTheory.MonoOver.existsIsoMap + def CategoryTheory.MonoOver.existsPullbackAdj + def CategoryTheory.MonoOver.exists_ + def CategoryTheory.MonoOver.forget + def CategoryTheory.MonoOver.forgetImage + theorem CategoryTheory.MonoOver.forget_obj_hom + theorem CategoryTheory.MonoOver.forget_obj_left + def CategoryTheory.MonoOver.image + def CategoryTheory.MonoOver.imageForgetAdj + def CategoryTheory.MonoOver.imageMonoOver + theorem CategoryTheory.MonoOver.imageMonoOver_arrow + def CategoryTheory.MonoOver.isoMk + def CategoryTheory.MonoOver.lift + def CategoryTheory.MonoOver.liftComp + def CategoryTheory.MonoOver.liftId + def CategoryTheory.MonoOver.liftIso + theorem CategoryTheory.MonoOver.lift_comm + theorem CategoryTheory.MonoOver.lift_obj_arrow + def CategoryTheory.MonoOver.map + def CategoryTheory.MonoOver.mapComp + def CategoryTheory.MonoOver.mapId + def CategoryTheory.MonoOver.mapIso + def CategoryTheory.MonoOver.mapPullbackAdj + theorem CategoryTheory.MonoOver.map_obj_arrow + theorem CategoryTheory.MonoOver.map_obj_left + def CategoryTheory.MonoOver.mk' + def CategoryTheory.MonoOver.mk'ArrowIso + theorem CategoryTheory.MonoOver.mk'_arrow + theorem CategoryTheory.MonoOver.mk'_coe' + def CategoryTheory.MonoOver.pullback + def CategoryTheory.MonoOver.pullbackComp + def CategoryTheory.MonoOver.pullbackId + def CategoryTheory.MonoOver.pullbackMapSelf + theorem CategoryTheory.MonoOver.pullback_obj_arrow + theorem CategoryTheory.MonoOver.pullback_obj_left + def CategoryTheory.MonoOver.slice + theorem CategoryTheory.MonoOver.w + def CategoryTheory.MonoOver 2023-04-15 00:49:34 94f9f7a feat: port NumberTheory.LucasLehmer (#2988) This generalizes some results from `LeftCancelMonoid` to work around an issue in `LucasLehmer.order_ineq`. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Dynamics/PeriodicPts.lean - theorem Function.is_fixed_point_iff_minimalPeriod_eq_one + theorem Function.minimalPeriod_eq_one_iff_isFixedPt Modified Mathlib/GroupTheory/OrderOfElement.lean +/- theorem pow_inj_mod +/- theorem pow_injective_of_lt_orderOf Added Mathlib/NumberTheory/LucasLehmer.lean + theorem LucasLehmer.Int.coe_nat_pow_pred + theorem LucasLehmer.Int.coe_nat_two_pow_pred + def LucasLehmer.LucasLehmerTest + theorem LucasLehmer.X.add_fst + theorem LucasLehmer.X.add_snd + theorem LucasLehmer.X.card_eq + theorem LucasLehmer.X.closed_form + theorem LucasLehmer.X.coe_mul + theorem LucasLehmer.X.coe_nat + theorem LucasLehmer.X.ext + theorem LucasLehmer.X.int_coe_fst + theorem LucasLehmer.X.int_coe_snd + theorem LucasLehmer.X.left_distrib + theorem LucasLehmer.X.mul_fst + theorem LucasLehmer.X.mul_snd + theorem LucasLehmer.X.nat_coe_fst + theorem LucasLehmer.X.nat_coe_snd + theorem LucasLehmer.X.neg_fst + theorem LucasLehmer.X.neg_snd + theorem LucasLehmer.X.ofNat_fst + theorem LucasLehmer.X.ofNat_snd + theorem LucasLehmer.X.one_fst + theorem LucasLehmer.X.one_snd + theorem LucasLehmer.X.right_distrib + theorem LucasLehmer.X.zero_fst + theorem LucasLehmer.X.zero_snd + def LucasLehmer.X.ω + theorem LucasLehmer.X.ω_mul_ωb + def LucasLehmer.X.ωb + theorem LucasLehmer.X.ωb_mul_ω + def LucasLehmer.X + def LucasLehmer.lucasLehmerResidue + theorem LucasLehmer.mersenne_coe_X + theorem LucasLehmer.mersenne_int_ne_zero + theorem LucasLehmer.mersenne_int_pos + theorem LucasLehmer.order_ineq + theorem LucasLehmer.order_ω + def LucasLehmer.q + theorem LucasLehmer.residue_eq_zero_iff_sMod_eq_zero + def LucasLehmer.s + def LucasLehmer.sMod + theorem LucasLehmer.sMod_lt + theorem LucasLehmer.sMod_mod + theorem LucasLehmer.sMod_nonneg + theorem LucasLehmer.sMod_succ + def LucasLehmer.sZMod + theorem LucasLehmer.sZMod_eq_s + theorem LucasLehmer.sZMod_eq_sMod + theorem LucasLehmer.two_lt_q + def LucasLehmer.ωUnit + theorem LucasLehmer.ωUnit_coe + theorem LucasLehmer.ω_pow_eq_neg_one + theorem LucasLehmer.ω_pow_eq_one + theorem LucasLehmer.ω_pow_formula + theorem lucas_lehmer_sufficiency + def mersenne + theorem mersenne_pos + theorem modEq_mersenne + theorem one_lt_mersenne + theorem succ_mersenne 2023-04-14 23:46:11 c7c0f54 feat: Port `RingTheory.NonUnitalSubsemiring.Basic` (#1774) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/GroupTheory/Subsemigroup/Center.lean Added Mathlib/RingTheory/NonUnitalSubsemiring/Basic.lean + def NonUnitalRingHom.codRestrict + theorem NonUnitalRingHom.coe_srange + theorem NonUnitalRingHom.coe_srangeRestrict + theorem NonUnitalRingHom.eqOn_sclosure + def NonUnitalRingHom.eqSlocus + theorem NonUnitalRingHom.eq_of_eqOn_sdense + theorem NonUnitalRingHom.eq_of_eqOn_stop + theorem NonUnitalRingHom.map_sclosure + theorem NonUnitalRingHom.map_srange + theorem NonUnitalRingHom.mem_srange + theorem NonUnitalRingHom.mem_srange_self + theorem NonUnitalRingHom.sclosure_preimage_le + def NonUnitalRingHom.srange + def NonUnitalRingHom.srangeRestrict + theorem NonUnitalRingHom.srangeRestrict_surjective + theorem NonUnitalRingHom.srange_eq_map + theorem NonUnitalRingHom.srange_top_iff_surjective + theorem NonUnitalRingHom.srange_top_of_surjective + def NonUnitalSubsemiring.center + theorem NonUnitalSubsemiring.center_eq_top + theorem NonUnitalSubsemiring.center_toSubsemigroup + def NonUnitalSubsemiring.centralizer + theorem NonUnitalSubsemiring.centralizer_le + theorem NonUnitalSubsemiring.centralizer_toSubsemigroup + theorem NonUnitalSubsemiring.centralizer_univ + def NonUnitalSubsemiring.closure + theorem NonUnitalSubsemiring.closure_addSubmonoid_closure + theorem NonUnitalSubsemiring.closure_empty + theorem NonUnitalSubsemiring.closure_eq + theorem NonUnitalSubsemiring.closure_eq_of_le + theorem NonUnitalSubsemiring.closure_induction + theorem NonUnitalSubsemiring.closure_induction₂ + theorem NonUnitalSubsemiring.closure_le + theorem NonUnitalSubsemiring.closure_mono + theorem NonUnitalSubsemiring.closure_subsemigroup_closure + theorem NonUnitalSubsemiring.closure_union + theorem NonUnitalSubsemiring.closure_unionᵢ + theorem NonUnitalSubsemiring.closure_unionₛ + theorem NonUnitalSubsemiring.closure_univ + theorem NonUnitalSubsemiring.coe_add + theorem NonUnitalSubsemiring.coe_bot + theorem NonUnitalSubsemiring.coe_center + theorem NonUnitalSubsemiring.coe_centralizer + theorem NonUnitalSubsemiring.coe_closure_eq + theorem NonUnitalSubsemiring.coe_comap + theorem NonUnitalSubsemiring.coe_copy + theorem NonUnitalSubsemiring.coe_equivMapOfInjective_apply + theorem NonUnitalSubsemiring.coe_inf + theorem NonUnitalSubsemiring.coe_infₛ + theorem NonUnitalSubsemiring.coe_map + theorem NonUnitalSubsemiring.coe_mk' + theorem NonUnitalSubsemiring.coe_mul + theorem NonUnitalSubsemiring.coe_prod + theorem NonUnitalSubsemiring.coe_supᵢ_of_directed + theorem NonUnitalSubsemiring.coe_supₛ_of_directedOn + theorem NonUnitalSubsemiring.coe_toAddSubmonoid + theorem NonUnitalSubsemiring.coe_toSubsemigroup + theorem NonUnitalSubsemiring.coe_top + theorem NonUnitalSubsemiring.coe_zero + def NonUnitalSubsemiring.comap + theorem NonUnitalSubsemiring.comap_comap + theorem NonUnitalSubsemiring.comap_equiv_eq_map_symm + theorem NonUnitalSubsemiring.comap_inf + theorem NonUnitalSubsemiring.comap_infᵢ + theorem NonUnitalSubsemiring.comap_top + theorem NonUnitalSubsemiring.copy_eq + theorem NonUnitalSubsemiring.eq_top_iff' + theorem NonUnitalSubsemiring.ext + theorem NonUnitalSubsemiring.gc_map_comap + def NonUnitalSubsemiring.inclusion + theorem NonUnitalSubsemiring.infₛ_toAddSubmonoid + theorem NonUnitalSubsemiring.infₛ_toSubsemigroup + def NonUnitalSubsemiring.map + theorem NonUnitalSubsemiring.map_bot + theorem NonUnitalSubsemiring.map_equiv_eq_comap_symm + theorem NonUnitalSubsemiring.map_id + theorem NonUnitalSubsemiring.map_le_iff_le_comap + theorem NonUnitalSubsemiring.map_map + theorem NonUnitalSubsemiring.map_sup + theorem NonUnitalSubsemiring.map_supᵢ + theorem NonUnitalSubsemiring.mem_bot + theorem NonUnitalSubsemiring.mem_carrier + theorem NonUnitalSubsemiring.mem_center_iff + theorem NonUnitalSubsemiring.mem_centralizer_iff + theorem NonUnitalSubsemiring.mem_closure + theorem NonUnitalSubsemiring.mem_closure_iff + theorem NonUnitalSubsemiring.mem_comap + theorem NonUnitalSubsemiring.mem_inf + theorem NonUnitalSubsemiring.mem_infₛ + theorem NonUnitalSubsemiring.mem_map + theorem NonUnitalSubsemiring.mem_map_equiv + theorem NonUnitalSubsemiring.mem_mk' + theorem NonUnitalSubsemiring.mem_prod + theorem NonUnitalSubsemiring.mem_supᵢ_of_directed + theorem NonUnitalSubsemiring.mem_supₛ_of_directedOn + theorem NonUnitalSubsemiring.mem_toAddSubmonoid + theorem NonUnitalSubsemiring.mem_toSubsemigroup + theorem NonUnitalSubsemiring.mem_top + theorem NonUnitalSubsemiring.mk'_toAddSubmonoid + theorem NonUnitalSubsemiring.mk'_toSubsemigroup + theorem NonUnitalSubsemiring.not_mem_of_not_mem_closure + def NonUnitalSubsemiring.prod + def NonUnitalSubsemiring.prodEquiv + theorem NonUnitalSubsemiring.prod_mono + theorem NonUnitalSubsemiring.prod_mono_left + theorem NonUnitalSubsemiring.prod_mono_right + theorem NonUnitalSubsemiring.prod_top + theorem NonUnitalSubsemiring.range_fst + theorem NonUnitalSubsemiring.range_snd + theorem NonUnitalSubsemiring.srange_subtype + theorem NonUnitalSubsemiring.subset_closure + theorem NonUnitalSubsemiring.toAddSubmonoid_injective + theorem NonUnitalSubsemiring.toAddSubmonoid_mono + theorem NonUnitalSubsemiring.toAddSubmonoid_strictMono + theorem NonUnitalSubsemiring.toSubsemigroup_injective + theorem NonUnitalSubsemiring.toSubsemigroup_mono + theorem NonUnitalSubsemiring.toSubsemigroup_strictMono + theorem NonUnitalSubsemiring.top_prod + theorem NonUnitalSubsemiring.top_prod_top + structure NonUnitalSubsemiring + theorem NonUnitalSubsemiringClass.coeSubtype + def NonUnitalSubsemiringClass.subtype + def RingEquiv.nonUnitalSubsemiringCongr + def RingEquiv.nonUnitalSubsemiringMap + def RingEquiv.sofLeftInverse' + theorem RingEquiv.sofLeftInverse'_apply + theorem RingEquiv.sofLeftInverse'_symm_apply + def Subsemigroup.nonUnitalSubsemiringClosure + theorem Subsemigroup.nonUnitalSubsemiringClosure_coe + theorem Subsemigroup.nonUnitalSubsemiringClosure_eq_closure + theorem Subsemigroup.nonUnitalSubsemiringClosure_toAddSubmonoid 2023-04-14 22:04:15 1ebf4e3 feat: port `pi_fin.reflect` instance (#3430) This was skipped during the initial port of this file. There are some golfing discussions [here on Zulip](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/unquoteExpr.3A.20inst.E2.9C.9D.C2.B2.2E2.20.3A.20Expr/near/349273797) that we could revisit later ESTIMATED CHANGES Modified Mathlib/Data/Fin/VecNotation.lean Modified Mathlib/Geometry/Manifold/ChartedSpace.lean Added test/vec_notation.lean 2023-04-14 16:45:16 6d024cd feat: port Topology.Category.Top.EpiMono (#3394) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Topology/Category/Top/Basic.lean Added Mathlib/Topology/Category/Top/EpiMono.lean + theorem TopCat.epi_iff_surjective + theorem TopCat.mono_iff_injective 2023-04-14 15:26:42 0d49462 feat: port Analysis.BoxIntegral.Box.Basic (#2625) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/BoxIntegral/Box/Basic.lean + theorem BoxIntegral.Box.antitone_lower + theorem BoxIntegral.Box.bUnion_coe_eq_coe + theorem BoxIntegral.Box.coe_bot + theorem BoxIntegral.Box.coe_coe + theorem BoxIntegral.Box.coe_eq_pi + theorem BoxIntegral.Box.coe_inf + theorem BoxIntegral.Box.coe_inj + theorem BoxIntegral.Box.coe_mk' + theorem BoxIntegral.Box.coe_ne_empty + theorem BoxIntegral.Box.coe_subset_coe + theorem BoxIntegral.Box.coe_subset_icc + theorem BoxIntegral.Box.continuousOn_face_icc + theorem BoxIntegral.Box.diam_icc_le_of_distortion_le + theorem BoxIntegral.Box.disjoint_coe + theorem BoxIntegral.Box.disjoint_withBotCoe + theorem BoxIntegral.Box.dist_le_distortion_mul + def BoxIntegral.Box.distortion + theorem BoxIntegral.Box.distortion_eq_of_sub_eq_div + theorem BoxIntegral.Box.empty_ne_coe + theorem BoxIntegral.Box.exists_mem + theorem BoxIntegral.Box.exists_seq_mono_tendsto + theorem BoxIntegral.Box.ext + def BoxIntegral.Box.face + theorem BoxIntegral.Box.face_mk + theorem BoxIntegral.Box.face_mono + theorem BoxIntegral.Box.icc_def + theorem BoxIntegral.Box.icc_eq_pi + theorem BoxIntegral.Box.injective_coe + theorem BoxIntegral.Box.ioo_subset_coe + theorem BoxIntegral.Box.isSome_iff + theorem BoxIntegral.Box.le_TFAE + theorem BoxIntegral.Box.le_def + theorem BoxIntegral.Box.le_iff_bounds + theorem BoxIntegral.Box.le_iff_icc + theorem BoxIntegral.Box.lower_le_upper + theorem BoxIntegral.Box.lower_mem_icc + theorem BoxIntegral.Box.lower_ne_upper + theorem BoxIntegral.Box.mapsTo_insertNth_face + theorem BoxIntegral.Box.mapsTo_insertNth_face_Icc + theorem BoxIntegral.Box.mem_coe + theorem BoxIntegral.Box.mem_def + theorem BoxIntegral.Box.mem_mk + theorem BoxIntegral.Box.mem_univ_Ioc + def BoxIntegral.Box.mk' + theorem BoxIntegral.Box.mk'_eq_bot + theorem BoxIntegral.Box.mk'_eq_coe + theorem BoxIntegral.Box.monotone_face + theorem BoxIntegral.Box.monotone_upper + theorem BoxIntegral.Box.ne_of_disjoint_coe + theorem BoxIntegral.Box.nndist_le_distortion_mul + theorem BoxIntegral.Box.nonempty_coe + theorem BoxIntegral.Box.not_disjoint_coe_iff_nonempty_inter + def BoxIntegral.Box.toSet + theorem BoxIntegral.Box.unionᵢ_ioo_of_tendsto + theorem BoxIntegral.Box.upper_mem + theorem BoxIntegral.Box.upper_mem_icc + theorem BoxIntegral.Box.withBotCoe_inj + theorem BoxIntegral.Box.withBotCoe_subset_iff + def BoxIntegral.Box.withBotToSet + structure BoxIntegral.Box 2023-04-14 14:34:45 2870d41 feat: port LinearAlgebra.FreeModule.Rank (#3377) This PR also fixes the order of universes in `Cardinal.lift_lift`. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/LinearAlgebra/FreeModule/Rank.lean + theorem rank_directSum + theorem rank_finsupp' + theorem rank_finsupp + theorem rank_finsupp_self' + theorem rank_finsupp_self + theorem rank_matrix'' + theorem rank_matrix' + theorem rank_matrix + theorem rank_tensorProduct + theorem rank_tensor_product' Modified Mathlib/SetTheory/Cardinal/Basic.lean + theorem Cardinal.lift_lift.{u_1} - theorem Cardinal.lift_lift Modified Mathlib/SetTheory/Cardinal/Cofinality.lean 2023-04-14 12:58:18 1b5c5dc fix: OrderedSub should be a Prop (#3436) This mistake was present in mathlib3 too. ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Sub/Defs.lean 2023-04-14 12:58:16 336482e feat: port Order.Filter.ZeroAndBoundedAtFilter (#3435) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Order/Filter/ZeroAndBoundedAtFilter.lean + theorem Filter.BoundedAtFilter.neg + theorem Filter.BoundedAtFilter.smul + def Filter.BoundedAtFilter + theorem Filter.ZeroAtFilter.boundedAtFilter + theorem Filter.ZeroAtFilter.smul + def Filter.ZeroAtFilter + def Filter.boundedFilterSubalgebra + def Filter.boundedFilterSubmodule + theorem Filter.const_boundedAtFilter + def Filter.zeroAtFilterAddSubmonoid + def Filter.zeroAtFilterSubmodule + theorem Filter.zero_zeroAtFilter 2023-04-14 12:58:15 6a4ba7f feat: port AlgebraicTopology.SplitSimplicialObject (#3432) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/AlgebraicTopology/SplitSimplicialObject.lean + theorem SimplicialObject.Split.Hom.ext + structure SimplicialObject.Split.Hom + theorem SimplicialObject.Split.comp_F + theorem SimplicialObject.Split.comp_f + theorem SimplicialObject.Split.congr_F + theorem SimplicialObject.Split.congr_f + def SimplicialObject.Split.evalN + def SimplicialObject.Split.forget + theorem SimplicialObject.Split.id_F + theorem SimplicialObject.Split.id_f + def SimplicialObject.Split.mk' + def SimplicialObject.Split.natTransιSummand + theorem SimplicialObject.Split.ιSummand_naturality_symm + structure SimplicialObject.Split + def SimplicialObject.Splitting.IndexSet.EqId + def SimplicialObject.Splitting.IndexSet.e + def SimplicialObject.Splitting.IndexSet.epiComp + theorem SimplicialObject.Splitting.IndexSet.eqId_iff_eq + theorem SimplicialObject.Splitting.IndexSet.eqId_iff_len_eq + theorem SimplicialObject.Splitting.IndexSet.eqId_iff_len_le + theorem SimplicialObject.Splitting.IndexSet.eqId_iff_mono + theorem SimplicialObject.Splitting.IndexSet.ext' + theorem SimplicialObject.Splitting.IndexSet.ext + theorem SimplicialObject.Splitting.IndexSet.fac_pull + def SimplicialObject.Splitting.IndexSet.id + def SimplicialObject.Splitting.IndexSet.mk + def SimplicialObject.Splitting.IndexSet.pull + def SimplicialObject.Splitting.IndexSet + def SimplicialObject.Splitting.coprod + def SimplicialObject.Splitting.desc + theorem SimplicialObject.Splitting.hom_ext' + theorem SimplicialObject.Splitting.hom_ext + def SimplicialObject.Splitting.iso + def SimplicialObject.Splitting.map + def SimplicialObject.Splitting.ofIso + def SimplicialObject.Splitting.summand + def SimplicialObject.Splitting.ιCoprod + def SimplicialObject.Splitting.ιSummand + theorem SimplicialObject.Splitting.ιSummand_comp_app + theorem SimplicialObject.Splitting.ιSummand_epi_naturality + theorem SimplicialObject.Splitting.ιSummand_eq + theorem SimplicialObject.Splitting.ιSummand_id + theorem SimplicialObject.Splitting.ι_desc + def SimplicialObject.Splitting.φ + structure SimplicialObject.Splitting 2023-04-14 12:58:14 9ec2b21 feat: port Analysis.Asymptotics.SuperpolynomialDecay (#3421) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/Asymptotics/SuperpolynomialDecay.lean + theorem Asymptotics.SuperpolynomialDecay.add + theorem Asymptotics.SuperpolynomialDecay.congr' + theorem Asymptotics.SuperpolynomialDecay.congr + theorem Asymptotics.SuperpolynomialDecay.const_mul + theorem Asymptotics.SuperpolynomialDecay.inv_param_mul + theorem Asymptotics.SuperpolynomialDecay.mul + theorem Asymptotics.SuperpolynomialDecay.mul_const + theorem Asymptotics.SuperpolynomialDecay.mul_param + theorem Asymptotics.SuperpolynomialDecay.mul_param_pow + theorem Asymptotics.SuperpolynomialDecay.mul_param_zpow + theorem Asymptotics.SuperpolynomialDecay.mul_polynomial + theorem Asymptotics.SuperpolynomialDecay.param_inv_mul + theorem Asymptotics.SuperpolynomialDecay.param_mul + theorem Asymptotics.SuperpolynomialDecay.param_pow_mul + theorem Asymptotics.SuperpolynomialDecay.param_zpow_mul + theorem Asymptotics.SuperpolynomialDecay.polynomial_mul + theorem Asymptotics.SuperpolynomialDecay.trans_abs_le + theorem Asymptotics.SuperpolynomialDecay.trans_eventuallyLE + theorem Asymptotics.SuperpolynomialDecay.trans_eventually_abs_le + def Asymptotics.SuperpolynomialDecay + theorem Asymptotics.superpolynomialDecay_const_mul_iff + theorem Asymptotics.superpolynomialDecay_iff_abs_isBoundedUnder + theorem Asymptotics.superpolynomialDecay_iff_abs_tendsto_zero + theorem Asymptotics.superpolynomialDecay_iff_isBigO + theorem Asymptotics.superpolynomialDecay_iff_isLittleO + theorem Asymptotics.superpolynomialDecay_iff_norm_tendsto_zero + theorem Asymptotics.superpolynomialDecay_iff_superpolynomialDecay_abs + theorem Asymptotics.superpolynomialDecay_iff_superpolynomialDecay_norm + theorem Asymptotics.superpolynomialDecay_iff_zpow_tendsto_zero + theorem Asymptotics.superpolynomialDecay_mul_const_iff + theorem Asymptotics.superpolynomialDecay_mul_param_iff + theorem Asymptotics.superpolynomialDecay_mul_param_pow_iff + theorem Asymptotics.superpolynomialDecay_param_mul_iff + theorem Asymptotics.superpolynomialDecay_param_pow_mul_iff + theorem Asymptotics.superpolynomialDecay_zero 2023-04-14 12:58:13 71438f7 feat: port CategoryTheory.Limits.Over (#3172) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Limits/Over.lean + theorem CategoryTheory.Over.epi_iff_epi_left + theorem CategoryTheory.Over.epi_left_of_epi + def CategoryTheory.Over.mapPullbackAdj + def CategoryTheory.Over.pullback + def CategoryTheory.Over.pullbackComp + def CategoryTheory.Over.pullbackId + theorem CategoryTheory.Under.mono_iff_mono_right + theorem CategoryTheory.Under.mono_right_of_mono + def CategoryTheory.Under.pushout 2023-04-14 10:31:57 27e0a79 feat: support irreducible_def in to_additive (#3399) ESTIMATED CHANGES Modified Mathlib/Algebra/BigOperators/Finprod.lean Modified Mathlib/Data/Real/Basic.lean Modified Mathlib/GroupTheory/MonoidLocalization.lean Modified Mathlib/LinearAlgebra/Finsupp.lean Modified Mathlib/Tactic/Eqns.lean Modified Mathlib/Tactic/IrreducibleDef.lean Modified Mathlib/Tactic/ToAdditive.lean Modified Mathlib/Topology/Algebra/InfiniteSum/Basic.lean Modified test/irreducibleDef.lean Added test/toAdditiveIrredDef.lean 2023-04-13 23:14:29 dfbb8aa fix: add matrix notation stub for mathport (#3429) Part of the implementation of mathport support for the `matrix.notation` user notation, see [Zulip](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/!4.233215.20and.20data.2Ematrix.2Enotation/near/349219891). ESTIMATED CHANGES Modified Mathlib/Mathport/Syntax.lean 2023-04-13 22:33:14 94c39a2 feat: `ToExpr` deriving handler (#3215) Add a deriving handler for `ToExpr` loosely modeled off the `Repr` one. Supports mutually recursive inductive types. Introduces a `ToLevel` typeclass for creating `Level` expressions that represent universe levels. This is used in the derived `ToExpr` instances to support some universe polymorphism. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Tactic/DeriveToExpr.lean + def Mathlib.Deriving.ToExpr.fixIndType + def Mathlib.Deriving.ToExpr.mkAppNTerm + def Mathlib.Deriving.ToExpr.mkAuxFunction + def Mathlib.Deriving.ToExpr.mkInstanceCmds + def Mathlib.Deriving.ToExpr.mkLocalInstanceLetDecls + def Mathlib.Deriving.ToExpr.mkMutualBlock + def Mathlib.Deriving.ToExpr.mkToExprBody + def Mathlib.Deriving.ToExpr.mkToExprHeader + def Mathlib.Deriving.ToExpr.mkToExprInstanceCmds + def Mathlib.Deriving.ToExpr.mkToExprInstanceHandler + def Mathlib.Deriving.ToExpr.mkToLevelBinders + def Mathlib.Deriving.ToExpr.mkToTypeExpr Added Mathlib/Tactic/ToExpr.lean Added Mathlib/Tactic/ToLevel.lean + def Lean.ToLevel.imax + def Lean.ToLevel.max Added test/DeriveToExpr.lean + inductive tests.A + inductive tests.B + inductive tests.Bar + inductive tests.C + inductive tests.D + inductive tests.Foo + inductive tests.MyMaybe + def tests.boolFunHelper 2023-04-13 20:39:41 1cd8b31 chore: bump to nightly-2023-04-11 (#3139) ESTIMATED CHANGES Modified Mathlib/Algebra/AddTorsor.lean Modified Mathlib/Algebra/Algebra/Equiv.lean Modified Mathlib/Algebra/Algebra/Hom.lean Modified Mathlib/Algebra/Category/ModuleCat/Basic.lean Modified Mathlib/Algebra/EuclideanDomain/Basic.lean Modified Mathlib/Algebra/Hom/Equiv/Basic.lean Modified Mathlib/Algebra/Hom/Group.lean +/- theorem MonoidHom.comp_inv +/- theorem MonoidHom.div_apply +/- theorem MonoidHom.inv_apply +/- theorem MonoidHom.inv_comp +/- theorem MonoidHom.mul_apply +/- theorem MulHom.mul_apply Modified Mathlib/Algebra/Hom/NonUnitalAlg.lean Modified Mathlib/Algebra/Hom/Ring.lean Modified Mathlib/Algebra/Module/Equiv.lean Modified Mathlib/Algebra/Module/LinearMap.lean Modified Mathlib/Algebra/Module/Pi.lean Modified Mathlib/Algebra/Module/Prod.lean Modified Mathlib/Algebra/Order/Hom/Basic.lean Modified Mathlib/Algebra/Order/Hom/Ring.lean Modified Mathlib/Algebra/Ring/Equiv.lean Modified Mathlib/Algebra/Star/StarAlgHom.lean Modified Mathlib/Analysis/Normed/Field/Basic.lean Modified Mathlib/Analysis/Normed/Group/Basic.lean +/- theorem Submodule.coe_norm +/- theorem Submodule.norm_coe Modified Mathlib/Analysis/Normed/Group/Seminorm.lean Modified Mathlib/CategoryTheory/ConcreteCategory/BundledHom.lean Modified Mathlib/CategoryTheory/Over.lean +/- def CategoryTheory.Over.coeFromHom Modified Mathlib/Combinatorics/Catalan.lean Modified Mathlib/Data/Analysis/Topology.lean Modified Mathlib/Data/MvPolynomial/Equiv.lean Modified Mathlib/Data/Nat/Fib.lean Modified Mathlib/Data/PNat/Xgcd.lean Modified Mathlib/GroupTheory/GroupAction/Basic.lean Modified Mathlib/GroupTheory/GroupAction/Prod.lean Modified Mathlib/LinearAlgebra/AffineSpace/AffineEquiv.lean Modified Mathlib/LinearAlgebra/AffineSpace/AffineMap.lean Modified Mathlib/LinearAlgebra/Basis.lean Modified Mathlib/LinearAlgebra/FinsuppVectorSpace.lean Modified Mathlib/LinearAlgebra/Ray.lean Modified Mathlib/LinearAlgebra/SesquilinearForm.lean Modified Mathlib/ModelTheory/Basic.lean Modified Mathlib/Order/Heyting/Hom.lean Modified Mathlib/Order/Hom/Basic.lean +/- def OrderIsoClass.toOrderIso Modified Mathlib/Order/Hom/Bounded.lean Modified Mathlib/Order/Hom/CompleteLattice.lean Modified Mathlib/Order/Hom/Lattice.lean Modified Mathlib/Order/RelClasses.lean Modified Mathlib/RingTheory/SimpleModule.lean Modified Mathlib/Topology/Algebra/ConstMulAction.lean Modified Mathlib/Topology/Algebra/Module/Basic.lean Modified Mathlib/Topology/Order/Hom/Basic.lean Modified Mathlib/Topology/Spectral/Hom.lean Modified lake-manifest.json Modified lean-toolchain 2023-04-13 17:26:01 9543173 feat: port Analysis.Asymptotics.SpecificAsymptotics (#3420) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/Asymptotics/SpecificAsymptotics.lean + theorem Asymptotics.IsBigO.trans_tendsto_norm_atTop + theorem Asymptotics.IsLittleO.sum_range + theorem Asymptotics.isLittleO_pow_pow_atTop_of_lt + theorem Asymptotics.isLittleO_sum_range_of_tendsto_zero + theorem Filter.IsBoundedUnder.isLittleO_sub_self_inv + theorem Filter.Tendsto.cesaro + theorem Filter.Tendsto.cesaro_smul + theorem pow_div_pow_eventuallyEq_atBot + theorem pow_div_pow_eventuallyEq_atTop + theorem tendsto_pow_div_pow_atTop_atTop + theorem tendsto_pow_div_pow_atTop_zero + theorem tendsto_zpow_atTop_atTop 2023-04-13 16:44:24 902ce18 chore: forward port mathlib#18668, 18781, 18783, 18792, 18794 (#3410) * `set_theory.cardinal.basic`: forward-ports leanprover-community/mathlib#18781, which backports some ad-hoc changes in #3247 in a more principled way * `ring_theory.int.basic`: these changes were already forward-ported in #3278, but we forgot the SHA. * `linear_algebra.dimension`: forward-ports leanprover-community/mathlib#18792 * `linear_algebra.matrix.dot_product`: forward-ports leanprover-community/mathlib#18783 * `linear_algebra.finrank`: forward-ports leanprover-community/mathlib#18794 which is itself a backport of #3378, hence no changes to the file ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/Dimension.lean + theorem linearIndependent_le_span_finset Modified Mathlib/LinearAlgebra/Finrank.lean Modified Mathlib/LinearAlgebra/Matrix/DotProduct.lean + theorem Matrix.dotProduct_self_eq_zero + theorem Matrix.dotProduct_self_star_eq_zero + theorem Matrix.dotProduct_star_self_eq_zero Modified Mathlib/RingTheory/Int/Basic.lean Modified Mathlib/SetTheory/Cardinal/Basic.lean 2023-04-13 14:29:37 a4d9db8 fix: make convert tactic use `convert` suffix for goals from anonymous placeholders (#3314) The `convert` tactic mistakenly calls `elabTermWithHoles` using the main goal's tag for the suffix. For example, if the main goal tag was `inl` this would produce tags like `inl.inl_1` for goals associated to anonymous placeholders. We change convert to use the suffix `convert` instead, yielding subgoals like `inl.convert_1` for these. The previous behavior caused a panic in #3312 due to macro scopes in goal tags, which this fix happily sidesteps. ESTIMATED CHANGES Modified Mathlib/Tactic/Convert.lean 2023-04-13 11:50:30 1f7abb8 feat: port Analysis.LocallyConvex.BalancedCoreHull (#3415) Slightly rewrote the one proof to avoid `convert` and renamed two lemmas, so that their names fit better with the naming convention. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/LocallyConvex/BalancedCoreHull.lean + theorem Balanced.balancedHull_subset_of_subset + theorem Balanced.subset_balancedCore_of_subset + def balancedCore + def balancedCoreAux + theorem balancedCoreAux_balanced + theorem balancedCoreAux_empty + theorem balancedCoreAux_maximal + theorem balancedCoreAux_subset + theorem balancedCore_balanced + theorem balancedCore_empty + theorem balancedCore_eq_interᵢ + theorem balancedCore_mem_nhds_zero + theorem balancedCore_nonempty_iff + theorem balancedCore_subset + theorem balancedCore_subset_balancedCoreAux + theorem balancedCore_zero_mem + theorem balancedHull.balanced + def balancedHull + theorem mem_balancedCoreAux_iff + theorem mem_balancedCore_iff + theorem mem_balancedHull_iff + theorem nhds_basis_balanced + theorem nhds_basis_closed_balanced + theorem smul_balancedCore_subset + theorem subset_balancedCore + theorem subset_balancedHull 2023-04-13 11:38:17 e303968 feat: port Algebra.Category.Module.EpiMono (#3413) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Category/ModuleCat/EpiMono.lean + theorem ModuleCat.epi_iff_range_eq_top + theorem ModuleCat.epi_iff_surjective + theorem ModuleCat.ker_eq_bot_of_mono + theorem ModuleCat.mono_iff_injective + theorem ModuleCat.mono_iff_ker_eq_bot + theorem ModuleCat.range_eq_top_of_epi + def ModuleCat.uniqueOfEpiZero 2023-04-13 11:38:16 c35e809 feat: port CategoryTheory.Sites.Sheafification (#3387) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/CategoryTheory/Sites/Grothendieck.lean Added Mathlib/CategoryTheory/Sites/Sheafification.lean + theorem CategoryTheory.GrothendieckTopology.Plus.eq_mk_iff_exists + theorem CategoryTheory.GrothendieckTopology.Plus.exists_of_sep + theorem CategoryTheory.GrothendieckTopology.Plus.exists_rep + theorem CategoryTheory.GrothendieckTopology.Plus.inj_of_sep + theorem CategoryTheory.GrothendieckTopology.Plus.isSheaf_of_sep + theorem CategoryTheory.GrothendieckTopology.Plus.isSheaf_plus_plus + def CategoryTheory.GrothendieckTopology.Plus.meqOfSep + def CategoryTheory.GrothendieckTopology.Plus.mk + theorem CategoryTheory.GrothendieckTopology.Plus.res_mk_eq_mk_pullback + theorem CategoryTheory.GrothendieckTopology.Plus.sep + theorem CategoryTheory.GrothendieckTopology.Plus.toPlus_apply + theorem CategoryTheory.GrothendieckTopology.Plus.toPlus_eq_mk + theorem CategoryTheory.GrothendieckTopology.Plus.toPlus_mk + theorem CategoryTheory.GrothendieckTopology.isIso_toSheafify + theorem CategoryTheory.GrothendieckTopology.isoSheafify_hom + theorem CategoryTheory.GrothendieckTopology.isoSheafify_inv + theorem CategoryTheory.GrothendieckTopology.sheafification_map + theorem CategoryTheory.GrothendieckTopology.sheafification_obj + theorem CategoryTheory.GrothendieckTopology.sheafifyLift_unique + theorem CategoryTheory.GrothendieckTopology.sheafifyMap_comp + theorem CategoryTheory.GrothendieckTopology.sheafifyMap_id + theorem CategoryTheory.GrothendieckTopology.sheafifyMap_sheafifyLift + theorem CategoryTheory.GrothendieckTopology.sheafify_hom_ext + theorem CategoryTheory.GrothendieckTopology.sheafify_isSheaf + theorem CategoryTheory.GrothendieckTopology.toSheafification_app + theorem CategoryTheory.GrothendieckTopology.toSheafify_naturality + theorem CategoryTheory.GrothendieckTopology.toSheafify_sheafifyLift + theorem CategoryTheory.Meq.condition + theorem CategoryTheory.Meq.equiv_apply + theorem CategoryTheory.Meq.equiv_symm_eq_apply + theorem CategoryTheory.Meq.ext + def CategoryTheory.Meq.mk + theorem CategoryTheory.Meq.mk_apply + def CategoryTheory.Meq.pullback + theorem CategoryTheory.Meq.pullback_apply + theorem CategoryTheory.Meq.pullback_refine + def CategoryTheory.Meq.refine + theorem CategoryTheory.Meq.refine_apply + def CategoryTheory.Meq + theorem CategoryTheory.Sheaf.Hom.mono_iff_presheaf_mono 2023-04-13 11:26:13 47213b8 feat: port Analysis.Asymptotics.Theta (#3416) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/Asymptotics/Theta.lean + theorem Asymptotics.IsBigO.antisymm + theorem Asymptotics.IsBigO.trans_isTheta + theorem Asymptotics.IsLittleO.trans_isTheta + theorem Asymptotics.IsTheta.div + theorem Asymptotics.IsTheta.eq_zero_iff + theorem Asymptotics.IsTheta.inv + theorem Asymptotics.IsTheta.isBigO_congr_left + theorem Asymptotics.IsTheta.isBigO_congr_right + theorem Asymptotics.IsTheta.isBoundedUnder_le_iff + theorem Asymptotics.IsTheta.isLittleO_congr_left + theorem Asymptotics.IsTheta.isLittleO_congr_right + theorem Asymptotics.IsTheta.mono + theorem Asymptotics.IsTheta.mul + theorem Asymptotics.IsTheta.pow + theorem Asymptotics.IsTheta.smul + theorem Asymptotics.IsTheta.sup + theorem Asymptotics.IsTheta.tendsto_norm_atTop_iff + theorem Asymptotics.IsTheta.tendsto_zero_iff + theorem Asymptotics.IsTheta.trans + theorem Asymptotics.IsTheta.trans_eventuallyEq + theorem Asymptotics.IsTheta.trans_isBigO + theorem Asymptotics.IsTheta.trans_isLittleO + theorem Asymptotics.IsTheta.zpow + def Asymptotics.IsTheta + theorem Asymptotics.isTheta_comm + theorem Asymptotics.isTheta_const_const + theorem Asymptotics.isTheta_const_const_iff + theorem Asymptotics.isTheta_const_mul_left + theorem Asymptotics.isTheta_const_mul_right + theorem Asymptotics.isTheta_const_smul_left + theorem Asymptotics.isTheta_const_smul_right + theorem Asymptotics.isTheta_inv + theorem Asymptotics.isTheta_norm_left + theorem Asymptotics.isTheta_norm_right + theorem Asymptotics.isTheta_of_norm_eventuallyEq' + theorem Asymptotics.isTheta_of_norm_eventuallyEq + theorem Asymptotics.isTheta_refl + theorem Asymptotics.isTheta_rfl + theorem Asymptotics.isTheta_sup + theorem Asymptotics.isTheta_zero_left + theorem Asymptotics.isTheta_zero_right + theorem Filter.EventuallyEq.trans_isTheta 2023-04-13 09:30:30 4372f6e feat: port Analysis.NormedSpace.Extr (#3418) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/NormedSpace/Extr.lean + theorem IsLocalMax.norm_add_sameRay + theorem IsLocalMax.norm_add_self + theorem IsLocalMaxOn.norm_add_sameRay + theorem IsLocalMaxOn.norm_add_self + theorem IsMaxFilter.norm_add_sameRay + theorem IsMaxFilter.norm_add_self + theorem IsMaxOn.norm_add_sameRay + theorem IsMaxOn.norm_add_self 2023-04-13 07:03:39 6112203 chore: restore irreducible_def in RingTheory.Localization (#3406) ESTIMATED CHANGES Modified Mathlib/RingTheory/Localization/Basic.lean 2023-04-12 23:03:30 b161af5 fix: use syntax quotation in notation3 (#3318) In addition to being more verbose, the original code was also slightly buggy, causing the formatter to choke on the output (although it does elaborate into a macro which generates correct notations). ESTIMATED CHANGES Modified Mathlib/Mathport/Notation.lean 2023-04-12 21:55:01 28d9dc6 feat: port ModelTheory.LanguageMap (#3194) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/ModelTheory/LanguageMap.lean + def FirstOrder.Language.LEquiv.addEmptyConstants + structure FirstOrder.Language.LEquiv + theorem FirstOrder.Language.LHom.Injective.isExpansionOn_default + def FirstOrder.Language.LHom.addConstants + def FirstOrder.Language.LHom.comp + theorem FirstOrder.Language.LHom.comp_assoc + theorem FirstOrder.Language.LHom.comp_id + theorem FirstOrder.Language.LHom.comp_sumElim + def FirstOrder.Language.LHom.constantsOnMap + theorem FirstOrder.Language.LHom.funMap_sumInl + theorem FirstOrder.Language.LHom.funMap_sumInr + theorem FirstOrder.Language.LHom.id_comp + theorem FirstOrder.Language.LHom.map_constants_comp_sumInl + theorem FirstOrder.Language.LHom.map_onFunction + theorem FirstOrder.Language.LHom.map_onRelation + theorem FirstOrder.Language.LHom.mk₂_funext + def FirstOrder.Language.LHom.reduct + theorem FirstOrder.Language.LHom.sumElim_comp_inl + theorem FirstOrder.Language.LHom.sumElim_comp_inr + theorem FirstOrder.Language.LHom.sumElim_inl_inr + theorem FirstOrder.Language.LHom.sumInl_injective + theorem FirstOrder.Language.LHom.sumInr_injective + def FirstOrder.Language.LHom.sumMap + theorem FirstOrder.Language.LHom.sumMap_comp_inl + theorem FirstOrder.Language.LHom.sumMap_comp_inr + structure FirstOrder.Language.LHom + theorem FirstOrder.Language.card_constantsOn + theorem FirstOrder.Language.card_withConstants + theorem FirstOrder.Language.coe_con + def FirstOrder.Language.constantsOn.structure + def FirstOrder.Language.constantsOn + theorem FirstOrder.Language.constantsOnMap_isExpansionOn + theorem FirstOrder.Language.constantsOn_constants + def FirstOrder.Language.lhomWithConstants + def FirstOrder.Language.lhomWithConstantsMap + theorem FirstOrder.Language.lhomWithConstants_injective + def FirstOrder.Language.withConstants + theorem FirstOrder.Language.withConstants_funMap_sum_inl + theorem FirstOrder.Language.withConstants_funMap_sum_inr + theorem FirstOrder.Language.withConstants_relMap_sum_inl 2023-04-12 21:22:44 b99d93c feat: port GroupTheory.SpecificGroups.Alternating (#3371) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/GroupTheory/SpecificGroups/Alternating.lean + theorem Equiv.Perm.IsThreeCycle.alternating_normalClosure + theorem Equiv.Perm.IsThreeCycle.mem_alternatingGroup + theorem Equiv.Perm.closure_three_cycles_eq_alternating + theorem Equiv.Perm.finRotate_bit1_mem_alternatingGroup + theorem Equiv.Perm.isThreeCycle_sq_of_three_mem_cycleType_five + theorem Equiv.Perm.mem_alternatingGroup + theorem Equiv.Perm.prod_list_swap_mem_alternatingGroup_iff_even_length + theorem alternatingGroup.isConj_of + theorem alternatingGroup.isConj_swap_mul_swap_of_cycleType_two + theorem alternatingGroup.isThreeCycle_isConj + theorem alternatingGroup.nontrivial_of_three_le_card + theorem alternatingGroup.normalClosure_finRotate_five + theorem alternatingGroup.normalClosure_swap_mul_swap_five + def alternatingGroup + theorem alternatingGroup_eq_sign_ker + theorem two_mul_card_alternatingGroup 2023-04-12 21:10:21 72a49e2 chore: add tests for continuity and golf some proofs (#3400) ESTIMATED CHANGES Modified Mathlib/Topology/CompactOpen.lean Modified Mathlib/Topology/PathConnected.lean Modified test/Continuity.lean 2023-04-12 20:56:42 1e02adb feat: port LinearAlgebra.Finrank (#3378) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/LinearAlgebra/Finrank.lean + theorem FiniteDimensional.Basis.subset_extend + theorem FiniteDimensional.finrank_eq_card_basis + theorem FiniteDimensional.finrank_eq_card_finset_basis + theorem FiniteDimensional.finrank_eq_of_rank_eq + theorem FiniteDimensional.finrank_fin_fun + theorem FiniteDimensional.finrank_fintype_fun_eq_card + theorem FiniteDimensional.finrank_le_finrank_of_rank_le_rank + theorem FiniteDimensional.finrank_le_of_rank_le + theorem FiniteDimensional.finrank_lt_of_rank_lt + theorem FiniteDimensional.finrank_self + theorem FiniteDimensional.finrank_zero_of_subsingleton + theorem FiniteDimensional.nontrivial_of_finrank_eq_succ + theorem FiniteDimensional.nontrivial_of_finrank_pos + theorem FiniteDimensional.rank_lt_of_finrank_lt + theorem LinearEquiv.finrank_eq + theorem LinearEquiv.finrank_map_eq + theorem LinearMap.finrank_range_of_inj + theorem Subalgebra.finrank_bot + theorem Subalgebra.finrank_toSubmodule + theorem Subalgebra.rank_bot + theorem Subalgebra.rank_toSubmodule + theorem Subalgebra.rank_top + theorem Submodule.lt_of_le_of_finrank_lt_finrank + theorem Submodule.lt_top_of_finrank_lt_finrank + theorem coe_basisOfTopLeSpanOfCardEqFinrank + theorem finrank_bot + theorem finrank_eq_one + theorem finrank_eq_zero_of_basis_imp_false + theorem finrank_eq_zero_of_basis_imp_not_finite + theorem finrank_eq_zero_of_not_exists_basis + theorem finrank_eq_zero_of_not_exists_basis_finite + theorem finrank_eq_zero_of_not_exists_basis_finset + theorem finrank_le_one + theorem finrank_range_le_card + theorem finrank_span_eq_card + theorem finrank_span_finset_eq_card + theorem finrank_span_finset_le_card + theorem finrank_span_le_card + theorem finrank_span_set_eq_card + theorem finrank_top + theorem linearIndependent_iff_card_eq_finrank_span + theorem linearIndependent_iff_card_le_finrank_span + theorem linearIndependent_of_top_le_span_of_card_eq_finrank + theorem span_lt_of_subset_of_card_lt_finrank + theorem span_lt_top_of_card_lt_finrank + theorem subalgebra_top_finrank_eq_submodule_top_finrank + theorem subalgebra_top_rank_eq_submodule_top_rank 2023-04-12 19:26:07 0ae830f feat: port CategoryTheory.Idempotents.SimplicialObject (#3411) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Idempotents/SimplicialObject.lean 2023-04-12 19:26:07 c79b27d feat: port Analysis.Normed.Order.UpperLower (#3409) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/Normed/Order/UpperLower.lean + theorem IsLowerSet.exists_subset_ball + theorem IsLowerSet.mem_interior_of_forall_lt + theorem IsUpperSet.exists_subset_ball + theorem IsUpperSet.mem_interior_of_forall_lt 2023-04-12 19:26:07 7e7ba10 chore: tidy various files (#3408) ESTIMATED CHANGES Modified Mathlib/Algebra/Module/Projective.lean Modified Mathlib/Analysis/Convex/Function.lean Modified Mathlib/Analysis/LocallyConvex/Polar.lean Modified Mathlib/Analysis/Normed/Order/Basic.lean Modified Mathlib/Analysis/NormedSpace/Basic.lean + theorem nnnorm_algebraMap' - theorem nnnorm_algebra_map' + theorem norm_algebraMap' - theorem norm_algebra_map' Modified Mathlib/CategoryTheory/Idempotents/Karoubi.lean Modified Mathlib/CategoryTheory/IsConnected.lean Modified Mathlib/CategoryTheory/Limits/Types.lean +/- def CategoryTheory.Limits.Types.colimitCocone +/- def CategoryTheory.Limits.Types.limitCone +/- def CategoryTheory.Limits.Types.monoFactorisation Modified Mathlib/CategoryTheory/Preadditive/AdditiveFunctor.lean Modified Mathlib/Computability/RegularExpressions.lean Modified Mathlib/Data/Seq/Seq.lean + theorem Stream'.Seq.get?_nil + theorem Stream'.Seq.nats_get? - theorem Stream'.Seq.nats_nth - theorem Stream'.Seq.nth_nil Modified Mathlib/LinearAlgebra/FreeModule/Basic.lean Modified Mathlib/LinearAlgebra/InvariantBasisNumber.lean Modified Mathlib/LinearAlgebra/Isomorphisms.lean Modified Mathlib/RingTheory/EuclideanDomain.lean Modified Mathlib/RingTheory/FiniteType.lean Modified Mathlib/RingTheory/Finiteness.lean +/- theorem Subalgebra.fg_bot_toSubmodule - theorem Submodule.fg_bsupr + theorem Submodule.fg_bsupᵢ Modified Mathlib/Topology/Category/Top/Basic.lean Modified Mathlib/Topology/MetricSpace/CauSeqFilter.lean - theorem cau_seq_iff_cauchySeq + theorem isCauSeq_iff_cauchySeq Modified Mathlib/Topology/MetricSpace/Contracting.lean + theorem ContractingWith.efixedPoint_isFixedPt' - theorem ContractingWith.efixedPoint_is_fixed_pt' Modified Mathlib/Topology/MetricSpace/Gluing.lean 2023-04-12 19:26:07 344196c feat: port Analysis.LocallyConvex.Basic (#3398) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/LocallyConvex/Basic.lean + theorem Absorbent.absorbs + theorem Absorbent.absorbs_finite + theorem Absorbent.subset + theorem Absorbent.zero_mem + def Absorbent + theorem Absorbs.add + theorem Absorbs.inter + theorem Absorbs.mono + theorem Absorbs.mono_left + theorem Absorbs.mono_right + theorem Absorbs.neg + theorem Absorbs.sub + theorem Absorbs.union + def Absorbs + theorem Balanced.absorbs_self + theorem Balanced.add + theorem Balanced.closure + theorem Balanced.inter + theorem Balanced.interior + theorem Balanced.mem_smul_iff + theorem Balanced.neg + theorem Balanced.neg_mem_iff + theorem Balanced.smul + theorem Balanced.smul_eq + theorem Balanced.smul_mono + theorem Balanced.sub + theorem Balanced.subset_smul + theorem Balanced.union + def Balanced + theorem Set.Finite.absorbs_unionᵢ + theorem absorbent_iff_forall_absorbs_singleton + theorem absorbent_iff_nonneg_lt + theorem absorbent_nhds_zero + theorem absorbent_univ + theorem absorbs_empty + theorem absorbs_inter + theorem absorbs_union + theorem absorbs_unionᵢ_finset + theorem absorbs_zero_iff + theorem balanced_convexHull_of_balanced + theorem balanced_empty + theorem balanced_iff_neg_mem + theorem balanced_iff_smul_mem + theorem balanced_interᵢ + theorem balanced_interᵢ₂ + theorem balanced_unionᵢ + theorem balanced_unionᵢ₂ + theorem balanced_univ + theorem balanced_zero + theorem balanced_zero_union_interior 2023-04-12 19:26:07 230c1dc chore: forward-port leanprover-community/mathlib#18787 (#3396) ESTIMATED CHANGES Modified Mathlib/RingTheory/Finiteness.lean 2023-04-12 19:26:07 518e4e1 feat: port Analysis.Asymptotics.Asymptotics (#3393) Because `is_O_with`, `is_O` and `is_o` don't play well with the Lean 4 casing conventions for naming, we have opted for `IsBigOWith`, `IsBigO` and `IsLittleO` in accordance with the [Zulip poll](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/names.20distinguished.20only.20by.20case/near/348557948) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/Asymptotics/Asymptotics.lean + theorem Asymptotics.IsBigO.add + theorem Asymptotics.IsBigO.add_isLittleO + theorem Asymptotics.IsBigO.bound + theorem Asymptotics.IsBigO.comp_tendsto + theorem Asymptotics.IsBigO.congr' + theorem Asymptotics.IsBigO.congr + theorem Asymptotics.IsBigO.congr_left + theorem Asymptotics.IsBigO.congr_of_sub + theorem Asymptotics.IsBigO.congr_right + theorem Asymptotics.IsBigO.const_mul_left + theorem Asymptotics.IsBigO.const_mul_right' + theorem Asymptotics.IsBigO.const_mul_right + theorem Asymptotics.IsBigO.const_smul_left + theorem Asymptotics.IsBigO.eq_zero_imp + theorem Asymptotics.IsBigO.eq_zero_of_norm_pow + theorem Asymptotics.IsBigO.eq_zero_of_norm_pow_within + theorem Asymptotics.IsBigO.eventually_mul_div_cancel + theorem Asymptotics.IsBigO.exists_mem_basis + theorem Asymptotics.IsBigO.exists_nonneg + theorem Asymptotics.IsBigO.exists_pos + theorem Asymptotics.IsBigO.inv_rev + theorem Asymptotics.IsBigO.isBigOWith + theorem Asymptotics.IsBigO.isBoundedUnder_le + theorem Asymptotics.IsBigO.mono + theorem Asymptotics.IsBigO.mul + theorem Asymptotics.IsBigO.mul_isLittleO + theorem Asymptotics.IsBigO.not_isLittleO + theorem Asymptotics.IsBigO.of_bound' + theorem Asymptotics.IsBigO.of_bound + theorem Asymptotics.IsBigO.of_const_mul_right + theorem Asymptotics.IsBigO.of_pow + theorem Asymptotics.IsBigO.pow + theorem Asymptotics.IsBigO.prod_left + theorem Asymptotics.IsBigO.prod_left_fst + theorem Asymptotics.IsBigO.prod_left_snd + theorem Asymptotics.IsBigO.prod_rightl + theorem Asymptotics.IsBigO.prod_rightr + theorem Asymptotics.IsBigO.smul + theorem Asymptotics.IsBigO.smul_isLittleO + theorem Asymptotics.IsBigO.sub + theorem Asymptotics.IsBigO.sum + theorem Asymptotics.IsBigO.sup + theorem Asymptotics.IsBigO.symm + theorem Asymptotics.IsBigO.trans + theorem Asymptotics.IsBigO.trans_eventuallyEq + theorem Asymptotics.IsBigO.trans_isLittleO + theorem Asymptotics.IsBigO.trans_le + theorem Asymptotics.IsBigO.trans_tendsto + theorem Asymptotics.IsBigO.trans_tendsto_nhds + theorem Asymptotics.IsBigO.triangle + theorem Asymptotics.IsBigOWith.add + theorem Asymptotics.IsBigOWith.add_isLittleO + theorem Asymptotics.IsBigOWith.comp_tendsto + theorem Asymptotics.IsBigOWith.congr' + theorem Asymptotics.IsBigOWith.congr + theorem Asymptotics.IsBigOWith.congr_const + theorem Asymptotics.IsBigOWith.congr_left + theorem Asymptotics.IsBigOWith.congr_right + theorem Asymptotics.IsBigOWith.const_mul_left + theorem Asymptotics.IsBigOWith.const_mul_right' + theorem Asymptotics.IsBigOWith.const_mul_right + theorem Asymptotics.IsBigOWith.const_smul_left + theorem Asymptotics.IsBigOWith.eq_zero_imp + theorem Asymptotics.IsBigOWith.eventually_mul_div_cancel + theorem Asymptotics.IsBigOWith.exists_eq_mul + theorem Asymptotics.IsBigOWith.exists_nonneg + theorem Asymptotics.IsBigOWith.exists_pos + theorem Asymptotics.IsBigOWith.insert + theorem Asymptotics.IsBigOWith.inv_rev + theorem Asymptotics.IsBigOWith.isBigO + theorem Asymptotics.IsBigOWith.mono + theorem Asymptotics.IsBigOWith.mul + theorem Asymptotics.IsBigOWith.of_const_mul_right + theorem Asymptotics.IsBigOWith.of_pow + theorem Asymptotics.IsBigOWith.pow' + theorem Asymptotics.IsBigOWith.pow + theorem Asymptotics.IsBigOWith.prod_left + theorem Asymptotics.IsBigOWith.prod_left_fst + theorem Asymptotics.IsBigOWith.prod_left_same + theorem Asymptotics.IsBigOWith.prod_left_snd + theorem Asymptotics.IsBigOWith.prod_rightl + theorem Asymptotics.IsBigOWith.prod_rightr + theorem Asymptotics.IsBigOWith.right_le_add_of_lt_1 + theorem Asymptotics.IsBigOWith.right_le_sub_of_lt_1 + theorem Asymptotics.IsBigOWith.smul + theorem Asymptotics.IsBigOWith.sub + theorem Asymptotics.IsBigOWith.sub_isLittleO + theorem Asymptotics.IsBigOWith.sum + theorem Asymptotics.IsBigOWith.sup' + theorem Asymptotics.IsBigOWith.sup + theorem Asymptotics.IsBigOWith.symm + theorem Asymptotics.IsBigOWith.trans + theorem Asymptotics.IsBigOWith.trans_isLittleO + theorem Asymptotics.IsBigOWith.trans_le + theorem Asymptotics.IsBigOWith.triangle + theorem Asymptotics.IsBigOWith.weaken + theorem Asymptotics.IsLittleO.add + theorem Asymptotics.IsLittleO.add_add + theorem Asymptotics.IsLittleO.add_isBigO + theorem Asymptotics.IsLittleO.add_isBigOWith + theorem Asymptotics.IsLittleO.comp_tendsto + theorem Asymptotics.IsLittleO.congr' + theorem Asymptotics.IsLittleO.congr + theorem Asymptotics.IsLittleO.congr_left + theorem Asymptotics.IsLittleO.congr_of_sub + theorem Asymptotics.IsLittleO.congr_right + theorem Asymptotics.IsLittleO.const_mul_left + theorem Asymptotics.IsLittleO.const_mul_right' + theorem Asymptotics.IsLittleO.const_mul_right + theorem Asymptotics.IsLittleO.const_smul_left + theorem Asymptotics.IsLittleO.def' + theorem Asymptotics.IsLittleO.def + theorem Asymptotics.IsLittleO.eventually_mul_div_cancel + theorem Asymptotics.IsLittleO.insert + theorem Asymptotics.IsLittleO.inv_rev + theorem Asymptotics.IsLittleO.isBigO + theorem Asymptotics.IsLittleO.isBigOWith + theorem Asymptotics.IsLittleO.mono + theorem Asymptotics.IsLittleO.mul + theorem Asymptotics.IsLittleO.mul_isBigO + theorem Asymptotics.IsLittleO.not_isBigO + theorem Asymptotics.IsLittleO.of_const_mul_right + theorem Asymptotics.IsLittleO.of_pow + theorem Asymptotics.IsLittleO.pow + theorem Asymptotics.IsLittleO.prod_left + theorem Asymptotics.IsLittleO.prod_left_fst + theorem Asymptotics.IsLittleO.prod_left_snd + theorem Asymptotics.IsLittleO.prod_rightl + theorem Asymptotics.IsLittleO.prod_rightr + theorem Asymptotics.IsLittleO.right_isBigO_add + theorem Asymptotics.IsLittleO.right_isBigO_sub + theorem Asymptotics.IsLittleO.smul + theorem Asymptotics.IsLittleO.smul_isBigO + theorem Asymptotics.IsLittleO.sub + theorem Asymptotics.IsLittleO.sum + theorem Asymptotics.IsLittleO.sup + theorem Asymptotics.IsLittleO.symm + theorem Asymptotics.IsLittleO.tendsto_div_nhds_zero + theorem Asymptotics.IsLittleO.tendsto_inv_smul_nhds_zero + theorem Asymptotics.IsLittleO.tendsto_zero_of_tendsto + theorem Asymptotics.IsLittleO.trans + theorem Asymptotics.IsLittleO.trans_eventuallyEq + theorem Asymptotics.IsLittleO.trans_isBigO + theorem Asymptotics.IsLittleO.trans_isBigOWith + theorem Asymptotics.IsLittleO.trans_le + theorem Asymptotics.IsLittleO.trans_tendsto + theorem Asymptotics.IsLittleO.triangle + theorem Asymptotics.bound_of_isBigO_cofinite + theorem Asymptotics.bound_of_isBigO_nat_atTop + theorem Asymptotics.div_isBoundedUnder_of_isBigO + theorem Asymptotics.isBigOWith_abs_abs + theorem Asymptotics.isBigOWith_abs_left + theorem Asymptotics.isBigOWith_abs_right + theorem Asymptotics.isBigOWith_bot + theorem Asymptotics.isBigOWith_comm + theorem Asymptotics.isBigOWith_congr + theorem Asymptotics.isBigOWith_const_const + theorem Asymptotics.isBigOWith_const_mul_self + theorem Asymptotics.isBigOWith_const_one + theorem Asymptotics.isBigOWith_fst_prod + theorem Asymptotics.isBigOWith_iff + theorem Asymptotics.isBigOWith_iff_exists_eq_mul + theorem Asymptotics.isBigOWith_insert + theorem Asymptotics.isBigOWith_inv + theorem Asymptotics.isBigOWith_map + theorem Asymptotics.isBigOWith_neg_left + theorem Asymptotics.isBigOWith_neg_right + theorem Asymptotics.isBigOWith_norm_left + theorem Asymptotics.isBigOWith_norm_norm + theorem Asymptotics.isBigOWith_norm_right + theorem Asymptotics.isBigOWith_of_eq_mul + theorem Asymptotics.isBigOWith_of_le' + theorem Asymptotics.isBigOWith_of_le + theorem Asymptotics.isBigOWith_pi + theorem Asymptotics.isBigOWith_principal + theorem Asymptotics.isBigOWith_prod_left + theorem Asymptotics.isBigOWith_pure + theorem Asymptotics.isBigOWith_refl + theorem Asymptotics.isBigOWith_self_const_mul' + theorem Asymptotics.isBigOWith_self_const_mul + theorem Asymptotics.isBigOWith_snd_prod + theorem Asymptotics.isBigOWith_top + theorem Asymptotics.isBigOWith_zero' + theorem Asymptotics.isBigOWith_zero + theorem Asymptotics.isBigOWith_zero_right_iff + theorem Asymptotics.isBigO_abs_abs + theorem Asymptotics.isBigO_abs_left + theorem Asymptotics.isBigO_abs_right + theorem Asymptotics.isBigO_bot + theorem Asymptotics.isBigO_cofinite_iff + theorem Asymptotics.isBigO_comm + theorem Asymptotics.isBigO_congr + theorem Asymptotics.isBigO_const_const + theorem Asymptotics.isBigO_const_const_iff + theorem Asymptotics.isBigO_const_iff + theorem Asymptotics.isBigO_const_left_iff_pos_le_norm + theorem Asymptotics.isBigO_const_mul_left_iff' + theorem Asymptotics.isBigO_const_mul_left_iff + theorem Asymptotics.isBigO_const_mul_right_iff' + theorem Asymptotics.isBigO_const_mul_right_iff + theorem Asymptotics.isBigO_const_mul_self + theorem Asymptotics.isBigO_const_of_ne + theorem Asymptotics.isBigO_const_of_tendsto + theorem Asymptotics.isBigO_const_one + theorem Asymptotics.isBigO_const_smul_left + theorem Asymptotics.isBigO_const_smul_right + theorem Asymptotics.isBigO_fst_prod' + theorem Asymptotics.isBigO_fst_prod + theorem Asymptotics.isBigO_iff + theorem Asymptotics.isBigO_iff_div_isBoundedUnder + theorem Asymptotics.isBigO_iff_eventually + theorem Asymptotics.isBigO_iff_eventually_isBigOWith + theorem Asymptotics.isBigO_iff_exists_eq_mul + theorem Asymptotics.isBigO_iff_isBigOWith + theorem Asymptotics.isBigO_iff_isBoundedUnder_le_div + theorem Asymptotics.isBigO_map + theorem Asymptotics.isBigO_nat_atTop_iff + theorem Asymptotics.isBigO_neg_left + theorem Asymptotics.isBigO_neg_right + theorem Asymptotics.isBigO_norm_left + theorem Asymptotics.isBigO_norm_norm + theorem Asymptotics.isBigO_norm_right + theorem Asymptotics.isBigO_of_div_tendsto_nhds + theorem Asymptotics.isBigO_of_le' + theorem Asymptotics.isBigO_of_le + theorem Asymptotics.isBigO_of_subsingleton + theorem Asymptotics.isBigO_one_iff + theorem Asymptotics.isBigO_one_nat_atTop_iff + theorem Asymptotics.isBigO_pi + theorem Asymptotics.isBigO_principal + theorem Asymptotics.isBigO_prod_left + theorem Asymptotics.isBigO_pure + theorem Asymptotics.isBigO_refl + theorem Asymptotics.isBigO_refl_left + theorem Asymptotics.isBigO_self_const_mul' + theorem Asymptotics.isBigO_self_const_mul + theorem Asymptotics.isBigO_snd_prod' + theorem Asymptotics.isBigO_snd_prod + theorem Asymptotics.isBigO_sup + theorem Asymptotics.isBigO_top + theorem Asymptotics.isBigO_zero + theorem Asymptotics.isBigO_zero_right_iff + theorem Asymptotics.isLittleO_abs_abs + theorem Asymptotics.isLittleO_abs_left + theorem Asymptotics.isLittleO_abs_right + theorem Asymptotics.isLittleO_bot + theorem Asymptotics.isLittleO_comm + theorem Asymptotics.isLittleO_congr + theorem Asymptotics.isLittleO_const_const_iff + theorem Asymptotics.isLittleO_const_id_atBot + theorem Asymptotics.isLittleO_const_id_atTop + theorem Asymptotics.isLittleO_const_id_comap_norm_atTop + theorem Asymptotics.isLittleO_const_iff + theorem Asymptotics.isLittleO_const_iff_isLittleO_one + theorem Asymptotics.isLittleO_const_left + theorem Asymptotics.isLittleO_const_left_of_ne + theorem Asymptotics.isLittleO_const_mul_left_iff' + theorem Asymptotics.isLittleO_const_mul_left_iff + theorem Asymptotics.isLittleO_const_mul_right_iff' + theorem Asymptotics.isLittleO_const_mul_right_iff + theorem Asymptotics.isLittleO_const_smul_left + theorem Asymptotics.isLittleO_const_smul_right + theorem Asymptotics.isLittleO_id_const + theorem Asymptotics.isLittleO_iff + theorem Asymptotics.isLittleO_iff_exists_eq_mul + theorem Asymptotics.isLittleO_iff_forall_isBigOWith + theorem Asymptotics.isLittleO_iff_nat_mul_le' + theorem Asymptotics.isLittleO_iff_nat_mul_le + theorem Asymptotics.isLittleO_iff_nat_mul_le_aux + theorem Asymptotics.isLittleO_iff_tendsto' + theorem Asymptotics.isLittleO_iff_tendsto + theorem Asymptotics.isLittleO_insert + theorem Asymptotics.isLittleO_irrefl' + theorem Asymptotics.isLittleO_irrefl + theorem Asymptotics.isLittleO_map + theorem Asymptotics.isLittleO_neg_left + theorem Asymptotics.isLittleO_neg_right + theorem Asymptotics.isLittleO_norm_left + theorem Asymptotics.isLittleO_norm_norm + theorem Asymptotics.isLittleO_norm_pow_id + theorem Asymptotics.isLittleO_norm_pow_norm_pow + theorem Asymptotics.isLittleO_norm_right + theorem Asymptotics.isLittleO_of_subsingleton + theorem Asymptotics.isLittleO_one_iff + theorem Asymptotics.isLittleO_one_left_iff + theorem Asymptotics.isLittleO_pi + theorem Asymptotics.isLittleO_pow_id + theorem Asymptotics.isLittleO_pow_pow + theorem Asymptotics.isLittleO_pow_sub_pow_sub + theorem Asymptotics.isLittleO_pow_sub_sub + theorem Asymptotics.isLittleO_prod_left + theorem Asymptotics.isLittleO_pure + theorem Asymptotics.isLittleO_refl_left + theorem Asymptotics.isLittleO_sup + theorem Asymptotics.isLittleO_top + theorem Asymptotics.isLittleO_zero + theorem Asymptotics.isLittleO_zero_right_iff + theorem Filter.Eventually.isBigO + theorem Filter.Eventually.trans_isBigO + theorem Filter.EventuallyEq.trans_isBigO + theorem Filter.EventuallyEq.trans_isLittleO + theorem Filter.IsBoundedUnder.isBigO_const + theorem Filter.Tendsto.isBigO_one + theorem Homeomorph.isBigOWith_congr + theorem Homeomorph.isBigO_congr + theorem Homeomorph.isLittleO_congr + theorem LocalHomeomorph.isBigOWith_congr + theorem LocalHomeomorph.isBigO_congr + theorem LocalHomeomorph.isLittleO_congr + theorem summable_of_isBigO + theorem summable_of_isBigO_nat 2023-04-12 19:26:07 b9c1f0d feat: pnat is well-order (#3245) Mathlib 3: https://github.com/leanprover-community/mathlib/pull/18700 ESTIMATED CHANGES Modified Mathlib/Data/PNat/Basic.lean Modified Mathlib/Order/RelClasses.lean 2023-04-12 19:26:07 6f8c9ae feat: command to list declarations with long names (#3122) This adds commands `#long_names` and `#long_instances`, useful for finding declarations with excessively long names. ~~I also add explicit names to some of the files that produce instances with names over 80 characters; can do more later.~~ ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Lean/Name.lean + def allNames + def allNamesByModule Added Mathlib/Lean/SMap.lean + def Lean.SMap.foldM Added Mathlib/Util/LongNames.lean + def printNameHashMap 2023-04-12 19:26:07 bc67aad feat: recognize scientific notation in `norm_num` (#1707) We implement #1706. In addition to a `norm_num` extension for `OfScientific.ofScientific`, we implement extensions for * `Int.ofNat` * `mkRat` * `Rat.cast`/`RatCast.ratCast` which made implementation more convenient. We also patch up the other two `*.cast` evaluators consistently while we're at it. We create an instance of `OfScientific K` for any division ring `K`. See [Zulip discussion here](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/OfScientific) for the original discussion, and [this Zulip discussion](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/finishing.20up.20ofScientific.20in.20norm_num) for the more recent one. ESTIMATED CHANGES Modified Mathlib/Algebra/Field/Defs.lean Modified Mathlib/Algebra/Invertible.lean + theorem invOf_mul_self' + theorem invOf_mul_self_assoc' + theorem mul_invOf_mul_self_cancel' + theorem mul_invOf_self' + theorem mul_invOf_self_assoc' + theorem mul_mul_invOf_self_cancel' Modified Mathlib/Data/Rat/Defs.lean + theorem Rat.divInt_one + theorem Rat.mkRat_eq_div + theorem Rat.mkRat_one Modified Mathlib/Tactic/NormNum/Basic.lean +/- def Mathlib.Meta.NormNum.evalIntCast + def Mathlib.Meta.NormNum.evalIntOfNat + def Mathlib.Meta.NormNum.evalMkRat +/- def Mathlib.Meta.NormNum.evalNatCast + def Mathlib.Meta.NormNum.evalOfScientific + def Mathlib.Meta.NormNum.evalRatCast + theorem Mathlib.Meta.NormNum.isInt_ratCast + theorem Mathlib.Meta.NormNum.isNat_intOfNat + theorem Mathlib.Meta.NormNum.isNat_ofScientific_of_false + theorem Mathlib.Meta.NormNum.isNat_ratCast + theorem Mathlib.Meta.NormNum.isRat_mkRat + theorem Mathlib.Meta.NormNum.isRat_ofScientific_of_true + theorem Mathlib.Meta.NormNum.isRat_ratCast Modified Mathlib/Tactic/NormNum/Core.lean + def Mathlib.Meta.NormNum.inferOfScientific + def Mathlib.Meta.NormNum.inferRatCast + def Mathlib.Meta.NormNum.instAddMonoidWithOne' + def Mathlib.Meta.NormNum.instRing Modified test/norm_num.lean 2023-04-12 19:26:07 22a2399 feat: port Analysis.Convex.Quasiconvex (#3412) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/Convex/Quasiconvex.lean + theorem Antitone.quasiconcaveOn + theorem Antitone.quasiconvexOn + theorem Antitone.quasilinearOn + theorem AntitoneOn.quasiconcaveOn + theorem AntitoneOn.quasiconvexOn + theorem AntitoneOn.quasilinearOn + theorem ConcaveOn.quasiconcaveOn + theorem Convex.quasiconcaveOn_of_convex_ge + theorem Convex.quasiconvexOn_of_convex_le + theorem ConvexOn.quasiconvexOn + theorem Monotone.quasiconcaveOn + theorem Monotone.quasiconvexOn + theorem Monotone.quasilinearOn + theorem MonotoneOn.quasiconcaveOn + theorem MonotoneOn.quasiconvexOn + theorem MonotoneOn.quasilinearOn + theorem QuasiconcaveOn.convex + theorem QuasiconcaveOn.convex_gt + theorem QuasiconcaveOn.dual + theorem QuasiconcaveOn.inf + def QuasiconcaveOn + theorem QuasiconvexOn.convex + theorem QuasiconvexOn.convex_lt + theorem QuasiconvexOn.dual + theorem QuasiconvexOn.sup + def QuasiconvexOn + theorem QuasilinearOn.dual + theorem QuasilinearOn.monotoneOn_or_antitoneOn + def QuasilinearOn + theorem quasiconcaveOn_iff_min_le + theorem quasiconvexOn_iff_le_max + theorem quasilinearOn_iff_mem_uIcc + theorem quasilinearOn_iff_monotoneOn_or_antitoneOn 2023-04-12 19:26:07 85a0b4c chore: move List.lt_iff_lex_lt to a more logical location (#3403) ESTIMATED CHANGES Modified Mathlib/Data/List/Lex.lean + theorem List.lt_iff_lex_lt Modified Mathlib/Data/String/Basic.lean - theorem List.lt_iff_lex_lt 2023-04-12 19:26:07 375149c port/Analysis.NormedSpace.Ray (#3392) - feat: port Analysis.NormedSpace.Ray - Initial file copy from mathport - automated fixes - nearly done ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/NormedSpace/Ray.lean + theorem SameRay.eq_of_norm_eq + theorem SameRay.norm_add + theorem SameRay.norm_eq_iff + theorem SameRay.norm_smul_eq + theorem SameRay.norm_sub + theorem norm_injOn_ray_left + theorem norm_injOn_ray_right + theorem not_sameRay_iff_of_norm_eq + theorem sameRay_iff_inv_norm_smul_eq + theorem sameRay_iff_inv_norm_smul_eq_of_ne + theorem sameRay_iff_norm_smul_eq + theorem sameRay_iff_of_norm_eq 2023-04-12 19:26:07 4472bdb feat: port Analysis.NormedSpace.ContinuousLinearMap (#3381) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/NormedSpace/ContinuousLinearMap.lean + theorem ContinuousLinearEquiv.coe_toSpanNonzeroSingleton_symm + theorem ContinuousLinearEquiv.coord_self + theorem ContinuousLinearEquiv.coord_toSpanNonzeroSingleton + theorem ContinuousLinearEquiv.homothety_inverse + theorem ContinuousLinearEquiv.toSpanNonzeroSingleton_coord + theorem ContinuousLinearEquiv.toSpanNonzeroSingleton_homothety + theorem ContinuousLinearMap.antilipschitz_of_bound + theorem ContinuousLinearMap.bound_of_antilipschitz + def ContinuousLinearMap.ofHomothety + def ContinuousLinearMap.toSpanSingleton + theorem ContinuousLinearMap.toSpanSingleton_add + theorem ContinuousLinearMap.toSpanSingleton_apply + theorem ContinuousLinearMap.toSpanSingleton_homothety + theorem ContinuousLinearMap.toSpanSingleton_smul' + theorem ContinuousLinearMap.toSpanSingleton_smul + theorem ContinuousLinearMap.uniformEmbedding_of_bound + def LinearEquiv.toContinuousLinearEquivOfBounds + def LinearMap.mkContinuous + def LinearMap.mkContinuousOfExistsBound + theorem LinearMap.mkContinuousOfExistsBound_apply + theorem LinearMap.mkContinuousOfExistsBound_coe + theorem LinearMap.mkContinuous_apply + theorem LinearMap.mkContinuous_coe + def LinearMap.toContinuousLinearMap₁ + theorem LinearMap.toContinuousLinearMap₁_apply + theorem LinearMap.toContinuousLinearMap₁_coe + theorem continuous_of_linear_of_bound + theorem continuous_of_linear_of_boundₛₗ 2023-04-12 19:26:07 10dd3d5 chore: rename `castLe` (#3326) ESTIMATED CHANGES Modified Mathlib/Algebra/BigOperators/Fin.lean Modified Mathlib/Combinatorics/Composition.lean Modified Mathlib/Data/Fin/Basic.lean + def Fin.castLE + theorem Fin.castLE_castLE + theorem Fin.castLE_comp_castLE + theorem Fin.castLE_mk + theorem Fin.castLE_of_eq + theorem Fin.castLE_succ + theorem Fin.castLE_zero - def Fin.castLe - theorem Fin.castLe_castLe - theorem Fin.castLe_comp_castLe - theorem Fin.castLe_mk - theorem Fin.castLe_of_eq - theorem Fin.castLe_succ - theorem Fin.castLe_zero + theorem Fin.coe_castLE - theorem Fin.coe_castLe + theorem Fin.coe_of_injective_castLE_symm - theorem Fin.coe_of_injective_castLe_symm + theorem Fin.range_castLE - theorem Fin.range_castLe Modified Mathlib/Data/Finset/Sort.lean Modified Mathlib/Data/Fintype/Card.lean Modified Mathlib/GroupTheory/Perm/Fin.lean Modified Mathlib/LinearAlgebra/InvariantBasisNumber.lean Modified Mathlib/Logic/Equiv/Fin.lean + def Fin.castLEOrderIso - def Fin.castLeOrderIso 2023-04-12 19:26:07 f836999 feat: Induction principle for powers (#3278) https://github.com/leanprover-community/mathlib/pull/18668 * [`algebra.group_power.lemmas`@`05101c3df9d9cfe9430edc205860c79b6d660102`..`e655e4ea5c6d02854696f97494997ba4c31be802`](https://leanprover-community.github.io/mathlib-port-status/file/algebra/group_power/lemmas?range=05101c3df9d9cfe9430edc205860c79b6d660102..e655e4ea5c6d02854696f97494997ba4c31be802) * [`group_theory.submonoid.membership`@`2ec920d35348cb2d13ac0e1a2ad9df0fdf1a76b4`..`e655e4ea5c6d02854696f97494997ba4c31be802`](https://leanprover-community.github.io/mathlib-port-status/file/group_theory/submonoid/membership?range=2ec920d35348cb2d13ac0e1a2ad9df0fdf1a76b4..e655e4ea5c6d02854696f97494997ba4c31be802) * [`group_theory.subgroup.zpowers`@`f93c11933efbc3c2f0299e47b8ff83e9b539cbf6`..`e655e4ea5c6d02854696f97494997ba4c31be802`](https://leanprover-community.github.io/mathlib-port-status/file/group_theory/subgroup/zpowers?range=f93c11933efbc3c2f0299e47b8ff83e9b539cbf6..e655e4ea5c6d02854696f97494997ba4c31be802) * [`group_theory.subgroup.pointwise`@`c10e724be91096453ee3db13862b9fb9a992fef2`..`e655e4ea5c6d02854696f97494997ba4c31be802`](https://leanprover-community.github.io/mathlib-port-status/file/group_theory/subgroup/pointwise?range=c10e724be91096453ee3db13862b9fb9a992fef2..e655e4ea5c6d02854696f97494997ba4c31be802) * [`ring_theory.int.basic`@`2196ab363eb097c008d4497125e0dde23fb36db2`..`e655e4ea5c6d02854696f97494997ba4c31be802`](https://leanprover-community.github.io/mathlib-port-status/file/ring_theory/int/basic?range=2196ab363eb097c008d4497125e0dde23fb36db2..e655e4ea5c6d02854696f97494997ba4c31be802) ESTIMATED CHANGES Modified Mathlib/Algebra/GroupPower/Lemmas.lean + theorem zpow_induction_left + theorem zpow_induction_right Modified Mathlib/GroupTheory/Subgroup/Pointwise.lean Modified Mathlib/GroupTheory/Subgroup/Zpowers.lean + theorem Subgroup.coe_zpowers + theorem Subgroup.zpowers_ne_bot - theorem Subgroup.zpowers_subset Modified Mathlib/GroupTheory/Submonoid/Membership.lean + theorem Submonoid.coe_powers Modified Mathlib/RingTheory/Int/Basic.lean 2023-04-12 19:26:07 3d1eb78 feat: port #15071 (#3248) * [`order.basic`@`de87d5053a9fe5cbde723172c0fb7e27e7436473`..`210657c4ea4a4a7b234392f70a3a2a83346dfa90`](https://leanprover-community.github.io/mathlib-port-status/file/order/basic?range=de87d5053a9fe5cbde723172c0fb7e27e7436473..210657c4ea4a4a7b234392f70a3a2a83346dfa90) * [`order.well_founded`@`1c521b4fb909320eca16b2bb6f8b5b0490b1cb5e`..`210657c4ea4a4a7b234392f70a3a2a83346dfa90`](https://leanprover-community.github.io/mathlib-port-status/file/order/well_founded?range=1c521b4fb909320eca16b2bb6f8b5b0490b1cb5e..210657c4ea4a4a7b234392f70a3a2a83346dfa90) * [`order.order_iso_nat`@`6623e6af705e97002a9054c1c05a980180276fc1`..`210657c4ea4a4a7b234392f70a3a2a83346dfa90`](https://leanprover-community.github.io/mathlib-port-status/file/order/order_iso_nat?range=6623e6af705e97002a9054c1c05a980180276fc1..210657c4ea4a4a7b234392f70a3a2a83346dfa90) * [`order.compactly_generated`@`861a26926586cd46ff80264d121cdb6fa0e35cc1`..`210657c4ea4a4a7b234392f70a3a2a83346dfa90`](https://leanprover-community.github.io/mathlib-port-status/file/order/compactly_generated?range=861a26926586cd46ff80264d121cdb6fa0e35cc1..210657c4ea4a4a7b234392f70a3a2a83346dfa90) * [`ring_theory.noetherian`@`da420a8c6dd5bdfb85c4ced85c34388f633bc6ff`..`210657c4ea4a4a7b234392f70a3a2a83346dfa90`](https://leanprover-community.github.io/mathlib-port-status/file/ring_theory/noetherian?range=da420a8c6dd5bdfb85c4ced85c34388f633bc6ff..210657c4ea4a4a7b234392f70a3a2a83346dfa90) Mathlib 3: https://github.com/leanprover-community/mathlib/pull/15071 ESTIMATED CHANGES Modified Mathlib/Order/Basic.lean + theorem eq_iff_not_lt_of_le Modified Mathlib/Order/CompactlyGenerated.lean Modified Mathlib/Order/OrderIsoNat.lean Modified Mathlib/Order/WellFounded.lean - theorem WellFounded.eq_iff_not_lt_of_le - theorem WellFounded.wellFounded_iff_has_max' - theorem WellFounded.wellFounded_iff_has_min' Modified Mathlib/RingTheory/Noetherian.lean 2023-04-12 19:26:07 8297aed feat: port Analysis.NormedSpace.RieszLemma (#3397) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/NormedSpace/RieszLemma.lean + theorem Metric.closedBall_infDist_compl_subset_closure + theorem riesz_lemma + theorem riesz_lemma_of_norm_lt 2023-04-12 19:26:07 35a20e1 feat: irreducible_def: support protected, equation lemmas (#3395) ESTIMATED CHANGES Modified Mathlib/GroupTheory/MonoidLocalization.lean +/- theorem Localization.mk_mul +/- theorem Localization.mk_one +/- theorem Localization.mk_pow Modified Mathlib/RingTheory/Localization/Basic.lean Modified Mathlib/RingTheory/Localization/FractionRing.lean Modified Mathlib/Tactic/Eqns.lean Modified Mathlib/Tactic/IrreducibleDef.lean + def Lean.Elab.Command.$n:ident$[.{$us,*}]? - theorem Lean.Elab.Command.$n_def:ident - structure Lean.Elab.Command.Wrapper$[.{$us,*}]? - def Lean.Elab.Command.definition$[.{$us,*}]? Modified test/irreducibleDef.lean 2023-04-12 19:26:07 288b962 feat: port Analysis.Normed.Order.Basic (#3391) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/Normed/Order/Basic.lean 2023-04-12 19:26:07 84169f4 chore: forward port mathlib#17611, 18742, 18198, 18520 (#3389) SHA-only updates: * leanprover-community/mathlib#17611 – `CategoryTheory.Sites.Sheaf` already uses `aesop_cat` at this location, nothing to port. * leanprover-community/mathlib#18742 – fiber spelling, which is all of the changes to `Topology.FiberBundle.Trivialization`, is already in mathlib4. * leanprover-community/mathlib#18198 – `FunLike` change to `Data.PEquiv` is already in mathlib4. Substantative forward port: * leanprover-community/mathlib#18520 ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Sites/Sheaf.lean Modified Mathlib/Combinatorics/SimpleGraph/Connectivity.lean +/- def SimpleGraph.ConnectedComponent.map +/- theorem SimpleGraph.ConnectedComponent.map_comp +/- theorem SimpleGraph.ConnectedComponent.map_id +/- theorem SimpleGraph.ConnectedComponent.map_mk +/- theorem SimpleGraph.Preconnected.subsingleton_connectedComponent Modified Mathlib/Data/PEquiv.lean Modified Mathlib/Topology/FiberBundle/Trivialization.lean 2023-04-12 19:26:07 4fa401f feat: Dot notation aliases (#3303) Match https://github.com/leanprover-community/mathlib/pull/18698 and a bit of https://github.com/leanprover-community/mathlib/pull/18785. * [`algebra.divisibility.basic`@`70d50ecfd4900dd6d328da39ab7ebd516abe4025`..`e8638a0fcaf73e4500469f368ef9494e495099b3`](https://leanprover-community.github.io/mathlib-port-status/file/algebra/divisibility/basic?range=70d50ecfd4900dd6d328da39ab7ebd516abe4025..e8638a0fcaf73e4500469f368ef9494e495099b3) * [`algebra.euclidean_domain.basic`@`655994e298904d7e5bbd1e18c95defd7b543eb94`..`e8638a0fcaf73e4500469f368ef9494e495099b3`](https://leanprover-community.github.io/mathlib-port-status/file/algebra/euclidean_domain/basic?range=655994e298904d7e5bbd1e18c95defd7b543eb94..e8638a0fcaf73e4500469f368ef9494e495099b3) * [`algebra.group.units`@`369525b73f229ccd76a6ec0e0e0bf2be57599768`..`e8638a0fcaf73e4500469f368ef9494e495099b3`](https://leanprover-community.github.io/mathlib-port-status/file/algebra/group/units?range=369525b73f229ccd76a6ec0e0e0bf2be57599768..e8638a0fcaf73e4500469f368ef9494e495099b3) * [`algebra.group_with_zero.basic`@`2196ab363eb097c008d4497125e0dde23fb36db2`..`e8638a0fcaf73e4500469f368ef9494e495099b3`](https://leanprover-community.github.io/mathlib-port-status/file/algebra/group_with_zero/basic?range=2196ab363eb097c008d4497125e0dde23fb36db2..e8638a0fcaf73e4500469f368ef9494e495099b3) * [`algebra.group_with_zero.divisibility`@`f1a2caaf51ef593799107fe9a8d5e411599f3996`..`e8638a0fcaf73e4500469f368ef9494e495099b3`](https://leanprover-community.github.io/mathlib-port-status/file/algebra/group_with_zero/divisibility?range=f1a2caaf51ef593799107fe9a8d5e411599f3996..e8638a0fcaf73e4500469f368ef9494e495099b3) * [`algebra.group_with_zero.units.basic`@`70d50ecfd4900dd6d328da39ab7ebd516abe4025`..`df5e9937a06fdd349fc60106f54b84d47b1434f0`](https://leanprover-community.github.io/mathlib-port-status/file/algebra/group_with_zero/units/basic?range=70d50ecfd4900dd6d328da39ab7ebd516abe4025..df5e9937a06fdd349fc60106f54b84d47b1434f0) * [`algebra.order.monoid.canonical.defs`@`de87d5053a9fe5cbde723172c0fb7e27e7436473`..`e8638a0fcaf73e4500469f368ef9494e495099b3`](https://leanprover-community.github.io/mathlib-port-status/file/algebra/order/monoid/canonical/defs?range=de87d5053a9fe5cbde723172c0fb7e27e7436473..e8638a0fcaf73e4500469f368ef9494e495099b3) * [`algebra.ring.divisibility`@`f1a2caaf51ef593799107fe9a8d5e411599f3996`..`e8638a0fcaf73e4500469f368ef9494e495099b3`](https://leanprover-community.github.io/mathlib-port-status/file/algebra/ring/divisibility?range=f1a2caaf51ef593799107fe9a8d5e411599f3996..e8638a0fcaf73e4500469f368ef9494e495099b3) * [`data.int.dvd.basic`@`e1bccd6e40ae78370f01659715d3c948716e3b7e`..`e8638a0fcaf73e4500469f368ef9494e495099b3`](https://leanprover-community.github.io/mathlib-port-status/file/data/int/dvd/basic?range=e1bccd6e40ae78370f01659715d3c948716e3b7e..e8638a0fcaf73e4500469f368ef9494e495099b3) * [`data.int.dvd.pow`@`b3f25363ae62cb169e72cd6b8b1ac97bacf21ca7`..`e8638a0fcaf73e4500469f368ef9494e495099b3`](https://leanprover-community.github.io/mathlib-port-status/file/data/int/dvd/pow?range=b3f25363ae62cb169e72cd6b8b1ac97bacf21ca7..e8638a0fcaf73e4500469f368ef9494e495099b3) * [`data.int.order.basic`@`728baa2f54e6062c5879a3e397ac6bac323e506f`..`e8638a0fcaf73e4500469f368ef9494e495099b3`](https://leanprover-community.github.io/mathlib-port-status/file/data/int/order/basic?range=728baa2f54e6062c5879a3e397ac6bac323e506f..e8638a0fcaf73e4500469f368ef9494e495099b3) * [`data.nat.gcd.basic`@`a47cda9662ff3925c6df271090b5808adbca5b46`..`e8638a0fcaf73e4500469f368ef9494e495099b3`](https://leanprover-community.github.io/mathlib-port-status/file/data/nat/gcd/basic?range=a47cda9662ff3925c6df271090b5808adbca5b46..e8638a0fcaf73e4500469f368ef9494e495099b3) * [`data.nat.order.basic`@`26f081a2fb920140ed5bc5cc5344e84bcc7cb2b2`..`e8638a0fcaf73e4500469f368ef9494e495099b3`](https://leanprover-community.github.io/mathlib-port-status/file/data/nat/order/basic?range=26f081a2fb920140ed5bc5cc5344e84bcc7cb2b2..e8638a0fcaf73e4500469f368ef9494e495099b3) * [`data.nat.order.lemmas`@`2258b40dacd2942571c8ce136215350c702dc78f`..`e8638a0fcaf73e4500469f368ef9494e495099b3`](https://leanprover-community.github.io/mathlib-port-status/file/data/nat/order/lemmas?range=2258b40dacd2942571c8ce136215350c702dc78f..e8638a0fcaf73e4500469f368ef9494e495099b3) * [`group_theory.perm.cycle.basic`@`92ca63f0fb391a9ca5f22d2409a6080e786d99f7`..`e8638a0fcaf73e4500469f368ef9494e495099b3`](https://leanprover-community.github.io/mathlib-port-status/file/group_theory/perm/cycle/basic?range=92ca63f0fb391a9ca5f22d2409a6080e786d99f7..e8638a0fcaf73e4500469f368ef9494e495099b3) * [`number_theory.divisors`@`f7fc89d5d5ff1db2d1242c7bb0e9062ce47ef47c`..`e8638a0fcaf73e4500469f368ef9494e495099b3`](https://leanprover-community.github.io/mathlib-port-status/file/number_theory/divisors?range=f7fc89d5d5ff1db2d1242c7bb0e9062ce47ef47c..e8638a0fcaf73e4500469f368ef9494e495099b3) * [`number_theory.pythagorean_triples`@`70fd9563a21e7b963887c9360bd29b2393e6225a`..`e8638a0fcaf73e4500469f368ef9494e495099b3`](https://leanprover-community.github.io/mathlib-port-status/file/number_theory/pythagorean_triples?range=70fd9563a21e7b963887c9360bd29b2393e6225a..e8638a0fcaf73e4500469f368ef9494e495099b3) * [`number_theory.zsqrtd.basic`@`7ec294687917cbc5c73620b4414ae9b5dd9ae1b4`..`e8638a0fcaf73e4500469f368ef9494e495099b3`](https://leanprover-community.github.io/mathlib-port-status/file/number_theory/zsqrtd/basic?range=7ec294687917cbc5c73620b4414ae9b5dd9ae1b4..e8638a0fcaf73e4500469f368ef9494e495099b3) * [`ring_theory.multiplicity`@`ceb887ddf3344dab425292e497fa2af91498437c`..`e8638a0fcaf73e4500469f368ef9494e495099b3`](https://leanprover-community.github.io/mathlib-port-status/file/ring_theory/multiplicity?range=ceb887ddf3344dab425292e497fa2af91498437c..e8638a0fcaf73e4500469f368ef9494e495099b3) ESTIMATED CHANGES Modified Mathlib/Algebra/CharP/Basic.lean Modified Mathlib/Algebra/Divisibility/Basic.lean + theorem dvd_of_eq Modified Mathlib/Algebra/EuclideanDomain/Basic.lean Modified Mathlib/Algebra/Group/Units.lean + theorem eq_one_of_mul_left + theorem eq_one_of_mul_right + theorem mul_eq_one Modified Mathlib/Algebra/GroupWithZero/Basic.lean + theorem left_eq_mul₀ + theorem mul_eq_left₀ + theorem mul_eq_right₀ + theorem right_eq_mul₀ Modified Mathlib/Algebra/GroupWithZero/Divisibility.lean + theorem dvd_antisymm' + theorem dvd_antisymm + theorem eq_of_forall_dvd' + theorem eq_of_forall_dvd Modified Mathlib/Algebra/GroupWithZero/Units/Basic.lean Modified Mathlib/Algebra/Order/Monoid/Canonical/Defs.lean Modified Mathlib/Algebra/Ring/Divisibility.lean - theorem dvd_add_iff_left - theorem dvd_add_iff_right +/- theorem dvd_add_right +/- theorem dvd_iff_dvd_of_dvd_sub +/- theorem dvd_neg - theorem dvd_neg_of_dvd - theorem dvd_of_dvd_neg - theorem dvd_of_neg_dvd +/- theorem dvd_sub_comm + theorem dvd_sub_left + theorem dvd_sub_right + theorem dvd_sub_self_left + theorem dvd_sub_self_right +/- theorem neg_dvd - theorem neg_dvd_of_dvd Modified Mathlib/Data/Int/Dvd/Basic.lean - theorem Int.dvd_natAbs_of_ofNat_dvd - theorem Int.ofNat_dvd_of_dvd_natAbs Modified Mathlib/Data/Int/Dvd/Pow.lean +/- theorem Int.dvd_of_pow_dvd Modified Mathlib/Data/Int/Order/Basic.lean Modified Mathlib/Data/Nat/GCD/Basic.lean + theorem Nat.lcm_pos Modified Mathlib/Data/Nat/Order/Basic.lean - theorem Nat.mul_eq_one_iff Modified Mathlib/Data/Nat/Order/Lemmas.lean Modified Mathlib/Dynamics/PeriodicPts.lean Modified Mathlib/GroupTheory/Perm/Cycle/Basic.lean Modified Mathlib/NumberTheory/Divisors.lean Modified Mathlib/NumberTheory/PythagoreanTriples.lean Modified Mathlib/NumberTheory/Zsqrtd/Basic.lean Modified Mathlib/RingTheory/Multiplicity.lean 2023-04-12 19:26:07 74101a7 feat: `@[eqns]` attribute to override equation lemmas (#3024) This is to help with #2960 and work around https://github.com/leanprover/lean4/issues/2042. Ideally we would inspect the function to find that it was declared as `| i, j => A j i` and generate `transpose_apply`, but that's not something I know how to do. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Tactic/Eqns.lean Added test/eqns.lean + def transpose + theorem transpose_apply + theorem transpose_const 2023-04-12 19:26:07 5771d64 feat: port RingTheory.Polynomial.Eisenstein.Basic (#3382) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/RingTheory/Polynomial/Eisenstein/Basic.lean + theorem Polynomial.IsEisensteinAt.Polynomial.Monic.isEisensteinAt_of_mem_of_not_mem + theorem Polynomial.IsEisensteinAt.Polynomial.Monic.leadingCoeff_not_mem + theorem Polynomial.IsEisensteinAt.coeff_mem + theorem Polynomial.IsEisensteinAt.irreducible + theorem Polynomial.IsEisensteinAt.isWeaklyEisensteinAt + structure Polynomial.IsEisensteinAt + theorem Polynomial.IsWeaklyEisensteinAt.exists_mem_adjoin_mul_eq_pow_natDegree + theorem Polynomial.IsWeaklyEisensteinAt.exists_mem_adjoin_mul_eq_pow_natDegree_le + theorem Polynomial.IsWeaklyEisensteinAt.map + theorem Polynomial.IsWeaklyEisensteinAt.pow_natDegree_le_of_aeval_zero_of_monic_mem_map + theorem Polynomial.IsWeaklyEisensteinAt.pow_natDegree_le_of_root_of_monic_mem + structure Polynomial.IsWeaklyEisensteinAt + theorem Polynomial.dvd_pow_natDegree_of_aeval_eq_zero + theorem Polynomial.dvd_pow_natDegree_of_eval₂_eq_zero + theorem Polynomial.scaleRoots.isWeaklyEisensteinAt 2023-04-12 19:26:07 da5ce5a feat: port Computability.Encoding (#2799) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Computability/Encoding.lean + theorem Computability.Encoding.card_le_aleph0 + theorem Computability.Encoding.card_le_card_list + theorem Computability.Encoding.encode_injective + structure Computability.Encoding + theorem Computability.FinEncoding.card_le_aleph0 + structure Computability.FinEncoding + def Computability.decodeBool + def Computability.decodeNat + def Computability.decodeNum + def Computability.decodePosNum + theorem Computability.decode_encodeBool + theorem Computability.decode_encodeNat + theorem Computability.decode_encodeNum + theorem Computability.decode_encodePosNum + def Computability.encodeBool + def Computability.encodeNat + def Computability.encodeNum + def Computability.encodePosNum + theorem Computability.encodePosNum_nonempty + def Computability.encodingNatBool + def Computability.encodingNatΓ' + def Computability.finEncodingBoolBool + def Computability.finEncodingNatBool + def Computability.finEncodingNatΓ' + def Computability.inclusionBoolΓ' + theorem Computability.inclusionBoolΓ'_injective + theorem Computability.leftInverse_section_inclusion + def Computability.sectionΓ'Bool + def Computability.unaryDecodeNat + def Computability.unaryEncodeNat + def Computability.unaryFinEncodingNat + theorem Computability.unary_decode_encode_nat + inductive Computability.Γ' 2023-04-12 19:26:01 844d0f4 feat: port Analysis.NormedSpace.Basic (#3280) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Algebra/RestrictScalars.lean Modified Mathlib/Analysis/Normed/Group/Basic.lean Added Mathlib/Analysis/NormedSpace/Basic.lean + theorem Filter.IsBoundedUnder.smul_tendsto_zero + theorem Filter.Tendsto.zero_smul_isBoundedUnder_le + def Module.RestrictScalars.normedSpaceOrig + def NormedAlgebra.induced + theorem NormedSpace.exists_lt_norm + def NormedSpace.induced + def NormedSpace.restrictScalars + theorem abs_norm_eq_norm + theorem algebraMap_isometry + theorem closure_ball + theorem coe_homeomorphUnitBall_apply_zero + theorem dist_smul_le + theorem dist_smul₀ + theorem eventually_nhds_norm_smul_sub_lt + theorem exists_norm_eq + theorem frontier_ball + theorem frontier_closedBall' + theorem frontier_closedBall + theorem interior_closedBall' + theorem interior_closedBall + theorem inv_norm_smul_mem_closed_unit_ball + theorem lipschitzWith_smul + theorem nndist_smul_le + theorem nndist_smul₀ + theorem nnnorm_algebraMap + theorem nnnorm_algebraMap_nNReal + theorem nnnorm_algebra_map' + theorem nnnorm_smul + theorem nnnorm_smul_le + theorem nnnorm_surjective + theorem norm_algebraMap + theorem norm_algebraMap_nNReal + theorem norm_algebra_map' + theorem norm_smul + theorem norm_smul_le + theorem norm_smul_of_nonneg + theorem norm_zsmul + theorem range_nnnorm + theorem range_norm + theorem rescale_to_shell + theorem rescale_to_shell_semi_normed + theorem rescale_to_shell_semi_normed_zpow + theorem rescale_to_shell_zpow Modified Mathlib/Tactic/Continuity.lean 2023-04-11 13:40:54 4d3d23d chore: fix bugs in nontriviality tactic (#3175) Prompted by a regression in the recently merged [Data.Polynomial.Mirror](https://github.com/leanprover-community/mathlib4/pull/3130). ESTIMATED CHANGES Modified Mathlib/Data/Polynomial/Mirror.lean Modified Mathlib/Tactic/Nontriviality/Core.lean 2023-04-11 13:40:52 a26c7d3 chore: factor out MVarId.casesType from casesm tactic (#3161) Very minor refactor, to enable access to `casesType` from `MetaM` rather than just syntactical tactics. ESTIMATED CHANGES Modified Mathlib/Tactic/CasesM.lean + def Lean.MVarId.casesType Modified Mathlib/Tactic/Tauto.lean 2023-04-11 13:28:11 93fc8ff feat: fallback to Task parallelization if curl --parallel is not available (#3146) For me it is about 10% slower. ESTIMATED CHANGES Modified Cache/IO.lean Modified Cache/Main.lean Modified Cache/Requests.lean + def Cache.Requests.downloadFile +/- def Cache.Requests.downloadFiles +/- def Cache.Requests.getFiles 2023-04-11 12:42:23 1b8b38c feat: port Analysis.Convex.Extrema (#3375) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/Convex/Extrema.lean + theorem IsMaxOn.of_isLocalMaxOn_of_concaveOn + theorem IsMaxOn.of_isLocalMax_of_convex_univ + theorem IsMinOn.of_isLocalMinOn_of_convexOn + theorem IsMinOn.of_isLocalMinOn_of_convexOn_Icc + theorem IsMinOn.of_isLocalMin_of_convex_univ 2023-04-11 12:42:21 9900e14 feat: port Analysis.Convex.Slope (#3374) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/Convex/Slope.lean + theorem ConcaveOn.slope_anti_adjacent + theorem ConvexOn.slope_mono_adjacent + theorem ConvexOn.strict_mono_of_lt + theorem StrictConcaveOn.slope_anti_adjacent + theorem StrictConvexOn.slope_strict_mono_adjacent + theorem concaveOn_iff_slope_anti_adjacent + theorem concaveOn_of_slope_anti_adjacent + theorem convexOn_iff_slope_mono_adjacent + theorem convexOn_of_slope_mono_adjacent + theorem strictConcaveOn_iff_slope_strict_anti_adjacent + theorem strictConcaveOn_of_slope_strict_anti_adjacent + theorem strictConvexOn_iff_slope_strict_mono_adjacent + theorem strictConvexOn_of_slope_strict_mono_adjacent 2023-04-11 12:30:58 85b0cd3 feat: port Topology.Category.Top.Adjunctions (#3390) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Topology/Category/Top/Adjunctions.lean + def TopCat.adj₁ + def TopCat.adj₂ 2023-04-11 12:30:56 0887fe6 feat: port linear algebra.free algebra (#3385) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/LinearAlgebra/FreeAlgebra.lean + theorem FreeAlgebra.rank_eq 2023-04-11 12:30:55 d98ece2 feat: port Algebra.LinearRecurrence (#3380) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/LinearRecurrence.lean + def LinearRecurrence.IsSolution + def LinearRecurrence.charPoly + theorem LinearRecurrence.eq_mk_of_is_sol_of_eq_init' + theorem LinearRecurrence.eq_mk_of_is_sol_of_eq_init + theorem LinearRecurrence.geom_sol_iff_root_charPoly + theorem LinearRecurrence.is_sol_iff_mem_solSpace + theorem LinearRecurrence.is_sol_mkSol + def LinearRecurrence.mkSol + theorem LinearRecurrence.mkSol_eq_init + def LinearRecurrence.solSpace + theorem LinearRecurrence.solSpace_rank + theorem LinearRecurrence.sol_eq_of_eq_init + def LinearRecurrence.toInit + def LinearRecurrence.tupleSucc + structure LinearRecurrence 2023-04-11 12:30:54 fa14d83 feat: port Algebra.Order.Chebyshev (#3376) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Order/Chebyshev.lean + theorem Antivary.card_mul_sum_le_sum_mul_sum + theorem Antivary.card_smul_sum_le_sum_smul_sum + theorem AntivaryOn.card_mul_sum_le_sum_mul_sum + theorem AntivaryOn.card_smul_sum_le_sum_smul_sum + theorem Monovary.sum_mul_sum_le_card_mul_sum + theorem Monovary.sum_smul_sum_le_card_smul_sum + theorem MonovaryOn.sum_mul_sum_le_card_mul_sum + theorem MonovaryOn.sum_smul_sum_le_card_smul_sum + theorem sq_sum_le_card_mul_sum_sq + theorem sum_div_card_sq_le_sum_sq_div_card 2023-04-11 12:30:52 ce0c89b feat: port CategoryTheory.GradedObject (#3342) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/GradedObject.lean + def CategoryTheory.GradedObject.comapEq + theorem CategoryTheory.GradedObject.comapEq_symm + theorem CategoryTheory.GradedObject.comapEq_trans + def CategoryTheory.GradedObject.comapEquiv + theorem CategoryTheory.GradedObject.eqToHom_apply + theorem CategoryTheory.GradedObject.eqToHom_proj + def CategoryTheory.GradedObject.eval + theorem CategoryTheory.GradedObject.hom_ext + theorem CategoryTheory.GradedObject.shiftFunctor_map_apply + theorem CategoryTheory.GradedObject.shiftFunctor_obj_apply + theorem CategoryTheory.GradedObject.zero_apply + def CategoryTheory.GradedObject Modified Mathlib/CategoryTheory/Limits/Shapes/ZeroMorphisms.lean Modified Mathlib/CategoryTheory/Shift/Basic.lean 2023-04-11 12:30:51 d462f81 feat: port AlgebraicTopology.SimplicialObject (#3302) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/AlgebraicTopology/SimplicialObject.lean + def CategoryTheory.CosimplicialObject.Augmented.drop + theorem CategoryTheory.CosimplicialObject.Augmented.hom_ext + def CategoryTheory.CosimplicialObject.Augmented.leftOp + def CategoryTheory.CosimplicialObject.Augmented.leftOpRightOpIso + def CategoryTheory.CosimplicialObject.Augmented.point + def CategoryTheory.CosimplicialObject.Augmented.toArrow + def CategoryTheory.CosimplicialObject.Augmented.whiskering + def CategoryTheory.CosimplicialObject.Augmented.whiskeringObj + def CategoryTheory.CosimplicialObject.Augmented + def CategoryTheory.CosimplicialObject.Truncated.whiskering + def CategoryTheory.CosimplicialObject.Truncated + def CategoryTheory.CosimplicialObject.augment + theorem CategoryTheory.CosimplicialObject.augment_hom_zero + def CategoryTheory.CosimplicialObject.eqToIso + theorem CategoryTheory.CosimplicialObject.eqToIso_refl + theorem CategoryTheory.CosimplicialObject.hom_ext + def CategoryTheory.CosimplicialObject.sk + def CategoryTheory.CosimplicialObject.whiskering + def CategoryTheory.CosimplicialObject.δ + theorem CategoryTheory.CosimplicialObject.δ_comp_δ'' + theorem CategoryTheory.CosimplicialObject.δ_comp_δ' + theorem CategoryTheory.CosimplicialObject.δ_comp_δ + theorem CategoryTheory.CosimplicialObject.δ_comp_δ_self' + theorem CategoryTheory.CosimplicialObject.δ_comp_δ_self + theorem CategoryTheory.CosimplicialObject.δ_comp_σ_of_gt' + theorem CategoryTheory.CosimplicialObject.δ_comp_σ_of_gt + theorem CategoryTheory.CosimplicialObject.δ_comp_σ_of_le + theorem CategoryTheory.CosimplicialObject.δ_comp_σ_self' + theorem CategoryTheory.CosimplicialObject.δ_comp_σ_self + theorem CategoryTheory.CosimplicialObject.δ_comp_σ_succ' + theorem CategoryTheory.CosimplicialObject.δ_comp_σ_succ + theorem CategoryTheory.CosimplicialObject.δ_naturality + def CategoryTheory.CosimplicialObject.σ + theorem CategoryTheory.CosimplicialObject.σ_comp_σ + theorem CategoryTheory.CosimplicialObject.σ_naturality + def CategoryTheory.CosimplicialObject + def CategoryTheory.SimplicialObject.Augmented.drop + theorem CategoryTheory.SimplicialObject.Augmented.hom_ext + def CategoryTheory.SimplicialObject.Augmented.point + def CategoryTheory.SimplicialObject.Augmented.rightOp + def CategoryTheory.SimplicialObject.Augmented.rightOpLeftOpIso + def CategoryTheory.SimplicialObject.Augmented.toArrow + def CategoryTheory.SimplicialObject.Augmented.whiskering + def CategoryTheory.SimplicialObject.Augmented.whiskeringObj + theorem CategoryTheory.SimplicialObject.Augmented.w₀ + def CategoryTheory.SimplicialObject.Augmented + def CategoryTheory.SimplicialObject.Truncated.whiskering + def CategoryTheory.SimplicialObject.Truncated + def CategoryTheory.SimplicialObject.augment + theorem CategoryTheory.SimplicialObject.augment_hom_zero + def CategoryTheory.SimplicialObject.eqToIso + theorem CategoryTheory.SimplicialObject.eqToIso_refl + theorem CategoryTheory.SimplicialObject.hom_ext + def CategoryTheory.SimplicialObject.sk + def CategoryTheory.SimplicialObject.whiskering + def CategoryTheory.SimplicialObject.δ + theorem CategoryTheory.SimplicialObject.δ_comp_δ'' + theorem CategoryTheory.SimplicialObject.δ_comp_δ' + theorem CategoryTheory.SimplicialObject.δ_comp_δ + theorem CategoryTheory.SimplicialObject.δ_comp_δ_self' + theorem CategoryTheory.SimplicialObject.δ_comp_δ_self + theorem CategoryTheory.SimplicialObject.δ_comp_σ_of_gt' + theorem CategoryTheory.SimplicialObject.δ_comp_σ_of_gt + theorem CategoryTheory.SimplicialObject.δ_comp_σ_of_le + theorem CategoryTheory.SimplicialObject.δ_comp_σ_self' + theorem CategoryTheory.SimplicialObject.δ_comp_σ_self + theorem CategoryTheory.SimplicialObject.δ_comp_σ_succ' + theorem CategoryTheory.SimplicialObject.δ_comp_σ_succ + theorem CategoryTheory.SimplicialObject.δ_naturality + def CategoryTheory.SimplicialObject.σ + theorem CategoryTheory.SimplicialObject.σ_comp_σ + theorem CategoryTheory.SimplicialObject.σ_naturality + def CategoryTheory.SimplicialObject + def CategoryTheory.cosimplicialSimplicialEquiv + def CategoryTheory.cosimplicialToSimplicialAugmented + def CategoryTheory.simplicialCosimplicialAugmentedEquiv + def CategoryTheory.simplicialCosimplicialEquiv + def CategoryTheory.simplicialToCosimplicialAugmented 2023-04-11 12:30:50 f5a903b feat: port Algebra.Category.Module.Basic (#3260) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Category/ModuleCat/Basic.lean + def CategoryTheory.Iso.toLinearEquiv + def LinearEquiv.toModuleIso + theorem ModuleCat.Iso.conj_eq_conj + theorem ModuleCat.Iso.homCongr_eq_arrowCongr + def ModuleCat.asHom + def ModuleCat.asHomLeft + def ModuleCat.asHomRight + theorem ModuleCat.coe_comp + theorem ModuleCat.coe_of + theorem ModuleCat.comp_def + theorem ModuleCat.forget₂_map + theorem ModuleCat.forget₂_obj + theorem ModuleCat.forget₂_obj_moduleCat_of + theorem ModuleCat.hom_ext + theorem ModuleCat.id_apply + theorem ModuleCat.isZero_of_subsingleton + def ModuleCat.of + def ModuleCat.ofHom + theorem ModuleCat.ofHom_apply + def ModuleCat.ofSelfIso + structure ModuleCat + def linearEquivIsoModuleIso 2023-04-11 12:17:07 814b0c4 feat: port Geometry.Manifold.ChartedSpace (#2365) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Geometry/Manifold/ChartedSpace.lean + def ChartedSpace.comp + theorem ChartedSpace.locallyCompact + theorem ChartedSpace.locallyConnectedSpace + theorem ChartedSpace.secondCountable_of_countable_cover + theorem ChartedSpace.secondCountable_of_sigma_compact + theorem ChartedSpaceCore.open_source' + theorem ChartedSpaceCore.open_target + def ChartedSpaceCore.toChartedSpace + structure ChartedSpaceCore + def LocalHomeomorph.singletonChartedSpace + theorem LocalHomeomorph.singletonChartedSpace_chartAt_eq + theorem LocalHomeomorph.singletonChartedSpace_chartAt_source + theorem LocalHomeomorph.singletonChartedSpace_mem_atlas_eq + theorem LocalHomeomorph.singleton_hasGroupoid + def ModelPi + def ModelProd + def OpenEmbedding.singletonChartedSpace + theorem OpenEmbedding.singletonChartedSpace_chartAt_eq + theorem OpenEmbedding.singleton_hasGroupoid + def Pregroupoid.groupoid + structure Pregroupoid + def Structomorph.refl + def Structomorph.symm + def Structomorph.trans + structure Structomorph + theorem StructureGroupoid.chart_mem_maximalAtlas + theorem StructureGroupoid.compatible + theorem StructureGroupoid.compatible_of_mem_maximalAtlas + theorem StructureGroupoid.eq_on_source + theorem StructureGroupoid.id_mem + theorem StructureGroupoid.id_mem_maximalAtlas + theorem StructureGroupoid.le_iff + theorem StructureGroupoid.locality + def StructureGroupoid.maximalAtlas + theorem StructureGroupoid.mem_maximalAtlas_of_mem_groupoid + theorem StructureGroupoid.subset_maximalAtlas + theorem StructureGroupoid.symm + theorem StructureGroupoid.trans + structure StructureGroupoid + def achart + theorem achart_def + theorem achart_val + theorem chartAt_self_eq + theorem chart_source_mem_nhds + theorem chart_target_mem_nhds + theorem chartedSpaceSelf_atlas + theorem chartedSpaceSelf_prod + theorem closedUnderRestriction_iff_id_le + theorem closed_under_restriction' + theorem coe_achart + def continuousGroupoid + def continuousPregroupoid + theorem groupoid_of_pregroupoid_le + theorem hasGroupoid_of_le + theorem hasGroupoid_of_pregroupoid + def idGroupoid + def idRestrGroupoid + theorem idRestrGroupoid_mem + theorem mem_achart_source + theorem mem_chart_target + theorem mem_groupoid_of_pregroupoid + theorem mem_maximalAtlas_iff + theorem mem_pregroupoid_of_eq_on_source + theorem modelProd_range_prod_id + theorem piChartedSpace_chartAt + theorem prodChartedSpace_chartAt 2023-04-11 09:57:27 f91e3c2 feat: port Topology.Category.Top.Basic (#2993) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Topology/Category/Top/Basic.lean + theorem TopCat.coe_of + theorem TopCat.comp_app + def TopCat.discrete + def TopCat.homeoOfIso + theorem TopCat.id_app + def TopCat.isoOfHomeo + def TopCat.of + theorem TopCat.of_homeoOfIso + theorem TopCat.of_isoOfHomeo + theorem TopCat.openEmbedding_iff_comp_isIso' + theorem TopCat.openEmbedding_iff_comp_isIso + theorem TopCat.openEmbedding_iff_isIso_comp' + theorem TopCat.openEmbedding_iff_isIso_comp + def TopCat.trivial + def TopCat 2023-04-11 09:57:26 2d0dd39 feat: port Algebra.Order.ToIntervalMod (#2148) Only now realized that this is part of an ongoing project within mathlib3, see https://github.com/leanprover-community/mathlib/pull/17743. Might be best to wait. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Order/ToIntervalMod.lean + theorem Ico_eq_locus_Ioc_eq_unionᵢ_Ioo + def MemIooMod + theorem eq_toIcoDiv_of_sub_zsmul_mem_Ico + theorem eq_toIocDiv_of_sub_zsmul_mem_Ioc + theorem left_le_toIcoMod + theorem left_lt_toIocMod + theorem memIooMod_iff_ne_add_zsmul + theorem memIooMod_iff_ne_mod_zmultiples + theorem memIooMod_iff_toIcoDiv_eq_toIocDiv + theorem memIooMod_iff_toIcoDiv_ne_toIocDiv_add_one + theorem memIooMod_iff_toIcoMod_add_period_ne_toIocMod + theorem memIooMod_iff_toIcoMod_eq_toIocMod + theorem memIooMod_iff_toIcoMod_ne_left + theorem memIooMod_iff_toIocMod_ne_right + theorem not_memIooMod_iff_eq_add_zsmul + theorem not_memIooMod_iff_eq_mod_zmultiples + theorem not_memIooMod_iff_toIcoDiv_eq_toIocDiv_add_one + theorem not_memIooMod_iff_toIcoMod_add_period_eq_toIocMod + theorem not_memIooMod_iff_toIcoMod_eq_left + theorem not_memIooMod_iff_to_Ioc_eq_right + def quotientAddGroup.equivIcoMod + theorem quotientAddGroup.equivIcoMod_coe + def quotientAddGroup.equivIocMod + theorem quotientAddGroup.equivIocMod_coe + theorem self_sub_toIcoDiv_zsmul + theorem self_sub_toIcoMod + theorem self_sub_toIocDiv_zsmul + theorem self_sub_toIocMod + theorem sub_toIcoDiv_zsmul_mem_Ico + theorem sub_toIocDiv_zsmul_mem_Ioc + theorem tFAE_memIooMod + def toIcoDiv + theorem toIcoDiv_add_left + theorem toIcoDiv_add_right' + theorem toIcoDiv_add_right + theorem toIcoDiv_add_zsmul + theorem toIcoDiv_apply_left + theorem toIcoDiv_apply_right + theorem toIcoDiv_eq_floor + theorem toIcoDiv_neg + theorem toIcoDiv_sub' + theorem toIcoDiv_sub + theorem toIcoDiv_sub_zsmul + theorem toIcoDiv_zero_one + theorem toIcoDiv_zsmul_add + theorem toIcoDiv_zsmul_sub_self + theorem toIcoDiv_zsmul_sub_toIcoMod + def toIcoMod + theorem toIcoMod_add_left + theorem toIcoMod_add_right' + theorem toIcoMod_add_right + theorem toIcoMod_add_toIcoDiv_zsmul + theorem toIcoMod_add_zsmul + theorem toIcoMod_apply_left + theorem toIcoMod_apply_right + theorem toIcoMod_eq_add_fract_mul + theorem toIcoMod_eq_fract_mul + theorem toIcoMod_eq_iff + theorem toIcoMod_eq_self + theorem toIcoMod_eq_toIcoMod + theorem toIcoMod_le_toIocMod + theorem toIcoMod_lt_right + theorem toIcoMod_mem_Ico' + theorem toIcoMod_mem_Ico + theorem toIcoMod_neg + theorem toIcoMod_periodic + theorem toIcoMod_sub' + theorem toIcoMod_sub + theorem toIcoMod_sub_self + theorem toIcoMod_sub_zsmul + theorem toIcoMod_toIcoMod + theorem toIcoMod_toIocMod + theorem toIcoMod_zero_one + theorem toIcoMod_zsmul_add + def toIocDiv + theorem toIocDiv_add_left + theorem toIocDiv_add_right' + theorem toIocDiv_add_right + theorem toIocDiv_add_zsmul + theorem toIocDiv_apply_left + theorem toIocDiv_apply_right + theorem toIocDiv_eq_neg_floor + theorem toIocDiv_neg + theorem toIocDiv_sub' + theorem toIocDiv_sub + theorem toIocDiv_sub_zsmul + theorem toIocDiv_wcovby_toIcoDiv + theorem toIocDiv_zsmul_add + theorem toIocDiv_zsmul_sub_self + theorem toIocDiv_zsmul_sub_toIocMod + def toIocMod + theorem toIocMod_add_left + theorem toIocMod_add_right' + theorem toIocMod_add_right + theorem toIocMod_add_toIocDiv_zsmul + theorem toIocMod_add_zsmul + theorem toIocMod_apply_left + theorem toIocMod_apply_right + theorem toIocMod_eq_iff + theorem toIocMod_eq_self + theorem toIocMod_eq_sub_fract_mul + theorem toIocMod_eq_toIocMod + theorem toIocMod_le_right + theorem toIocMod_le_toIcoMod_add + theorem toIocMod_mem_Ioc + theorem toIocMod_neg + theorem toIocMod_periodic + theorem toIocMod_sub' + theorem toIocMod_sub + theorem toIocMod_sub_self + theorem toIocMod_sub_zsmul + theorem toIocMod_toIcoMod + theorem toIocMod_toIocMod + theorem toIocMod_zsmul_add + theorem unionᵢ_Icc_add_int_cast + theorem unionᵢ_Icc_add_zsmul + theorem unionᵢ_Icc_int_cast + theorem unionᵢ_Icc_zsmul + theorem unionᵢ_Ico_add_int_cast + theorem unionᵢ_Ico_add_zsmul + theorem unionᵢ_Ico_int_cast + theorem unionᵢ_Ico_zsmul + theorem unionᵢ_Ioc_add_int_cast + theorem unionᵢ_Ioc_add_zsmul + theorem unionᵢ_Ioc_int_cast + theorem unionᵢ_Ioc_zsmul 2023-04-11 09:45:21 52d82e9 feat: port LinearAlgebra.QuotientPi (#2378) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/LinearAlgebra/QuotientPi.lean + def Submodule.piQuotientLift + theorem Submodule.piQuotientLift_mk + theorem Submodule.piQuotientLift_single + def Submodule.quotientPi + def Submodule.quotientPiLift + theorem Submodule.quotientPiLift_mk + def Submodule.quotientPi_aux.invFun + theorem Submodule.quotientPi_aux.left_inv + theorem Submodule.quotientPi_aux.map_add + theorem Submodule.quotientPi_aux.map_smul + theorem Submodule.quotientPi_aux.right_inv + def Submodule.quotientPi_aux.toFun 2023-04-10 20:28:25 c5372bb feat: port CategoryTheory.Triangulated.Triangulated (#3072) Also actually corrects the SHA that was incorrectly corrected in #3346; the stupid example was in `CategoryTheory.Triangulated.Rotate` and not `CategoryTheory.Triangulated.Basic`. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/CategoryTheory/Triangulated/Basic.lean Modified Mathlib/CategoryTheory/Triangulated/Rotate.lean Added Mathlib/CategoryTheory/Triangulated/Triangulated.lean + def CategoryTheory.Triangulated.Octahedron.triangle + def CategoryTheory.Triangulated.Octahedron.triangleMorphism₁ + def CategoryTheory.Triangulated.Octahedron.triangleMorphism₂ + structure CategoryTheory.Triangulated.Octahedron + def CategoryTheory.Triangulated.someOctahedron' + def CategoryTheory.Triangulated.someOctahedron 2023-04-10 19:55:17 71bb33c feat: port CategoryTheory.Fintype (#3365) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/FintypeCat.lean + theorem FintypeCat.Skeleton.ext + def FintypeCat.Skeleton.incl + theorem FintypeCat.Skeleton.incl_mk_nat_card + theorem FintypeCat.Skeleton.is_skeletal + def FintypeCat.Skeleton.len + def FintypeCat.Skeleton.mk + def FintypeCat.Skeleton + theorem FintypeCat.comp_apply + def FintypeCat.equivEquivIso + theorem FintypeCat.hom_ext + theorem FintypeCat.id_apply + def FintypeCat.incl + def FintypeCat.of + def FintypeCat 2023-04-10 19:09:13 487009f feat: port FieldTheory.Finiteness (#3373) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/FieldTheory/Finiteness.lean + theorem IsNoetherian.coeSort_finsetBasisIndex + theorem IsNoetherian.coe_finsetBasisIndex + theorem IsNoetherian.finite_basis_index + theorem IsNoetherian.iff_fg + theorem IsNoetherian.iff_rank_lt_aleph0 + theorem IsNoetherian.range_finsetBasis + theorem IsNoetherian.rank_lt_aleph0 2023-04-10 18:54:26 16b5e0a feat: port Data.List.ToFinsupp (#3350) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Data/List/ToFinsupp.lean + theorem List.coe_toFinsupp + def List.toFinsupp + theorem List.toFinsupp_append + theorem List.toFinsupp_apply + theorem List.toFinsupp_apply_fin + theorem List.toFinsupp_apply_le + theorem List.toFinsupp_apply_lt' + theorem List.toFinsupp_apply_lt + theorem List.toFinsupp_concat_eq_toFinsupp_add_single + theorem List.toFinsupp_cons_apply_succ + theorem List.toFinsupp_cons_apply_zero + theorem List.toFinsupp_cons_eq_single_add_embDomain + theorem List.toFinsupp_eq_sum_map_enum_single + theorem List.toFinsupp_nil + theorem List.toFinsupp_singleton + theorem List.toFinsupp_support 2023-04-10 18:54:24 ae63345 feat: port Topology.MetricSpace.PiNat (#3344) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Topology/MetricSpace/Basic.lean - theorem IsComplete.nonempty_interᵢ_of_nonempty_bInter + theorem IsComplete.nonempty_interᵢ_of_nonempty_binterᵢ - theorem Metric.nonempty_interᵢ_of_nonempty_bInter + theorem Metric.nonempty_interᵢ_of_nonempty_binterᵢ Added Mathlib/Topology/MetricSpace/PiNat.lean + theorem PiCountable.dist_eq_tsum + theorem PiCountable.dist_le_dist_pi_of_dist_lt + theorem PiCountable.dist_summable + theorem PiCountable.min_dist_le_dist_pi + theorem PiNat.apply_eq_of_dist_lt + theorem PiNat.apply_eq_of_lt_firstDiff + theorem PiNat.apply_firstDiff_ne + def PiNat.cylinder + theorem PiNat.cylinder_anti + theorem PiNat.cylinder_eq_cylinder_of_le_firstDiff + theorem PiNat.cylinder_eq_pi + theorem PiNat.cylinder_longestPrefix_eq_of_longestPrefix_lt_firstDiff + theorem PiNat.cylinder_zero + theorem PiNat.disjoint_cylinder_of_longestPrefix_lt + theorem PiNat.dist_eq_of_ne + theorem PiNat.dist_triangle_nonarch + theorem PiNat.exists_disjoint_cylinder + theorem PiNat.exists_lipschitz_retraction_of_isClosed + theorem PiNat.exists_retraction_of_isClosed + theorem PiNat.exists_retraction_subtype_of_isClosed + theorem PiNat.firstDiff_comm + theorem PiNat.firstDiff_le_longestPrefix + theorem PiNat.firstDiff_lt_shortestPrefixDiff + theorem PiNat.inter_cylinder_longestPrefix_nonempty + theorem PiNat.isOpen_iff_dist + theorem PiNat.isTopologicalBasis_cylinders + theorem PiNat.lipschitz_with_one_iff_forall_dist_image_le_of_mem_cylinder + def PiNat.longestPrefix + theorem PiNat.mem_cylinder_comm + theorem PiNat.mem_cylinder_firstDiff + theorem PiNat.mem_cylinder_iff + theorem PiNat.mem_cylinder_iff_dist_le + theorem PiNat.mem_cylinder_iff_eq + theorem PiNat.mem_cylinder_iff_le_firstDiff + def PiNat.metricSpaceNatNat + theorem PiNat.min_firstDiff_le + theorem PiNat.self_mem_cylinder + def PiNat.shortestPrefixDiff + theorem PiNat.shortestPrefixDiff_pos + theorem PiNat.unionᵢ_cylinder_update + theorem PiNat.update_mem_cylinder + theorem exists_nat_nat_continuous_surjective_of_completeSpace 2023-04-10 18:31:01 e44913f chore: forward port of #18742, no simps lemmas for Category.Hom (#3340) This is the forward port of https://github.com/leanprover-community/mathlib/pull/18742. That PR hasn't landed yet, so this PR still needs to be updated with the new commit SHA. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Category/Basic.lean Modified Mathlib/CategoryTheory/FinCategory.lean Modified Mathlib/CategoryTheory/FullSubcategory.lean Modified Mathlib/CategoryTheory/Groupoid.lean Modified Mathlib/CategoryTheory/Groupoid/VertexGroup.lean Modified Mathlib/CategoryTheory/Limits/Cones.lean + theorem CategoryTheory.Limits.CoconeMorphism.ext + theorem CategoryTheory.Limits.ConeMorphism.ext Modified Mathlib/CategoryTheory/Products/Basic.lean Modified Mathlib/CategoryTheory/Sites/SheafOfTypes.lean + theorem CategoryTheory.SheafOfTypes.Hom.ext' 2023-04-10 18:30:59 0248d13 feat: port Control.Fold (#2341) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Control/Fold.lean + def Monoid.Foldl.get + def Monoid.Foldl.mk + def Monoid.Foldl.ofFreeMonoid + def Monoid.Foldl + def Monoid.Foldr.get + def Monoid.Foldr.mk + def Monoid.Foldr.ofFreeMonoid + def Monoid.Foldr + def Monoid.foldlM.get + def Monoid.foldlM.mk + def Monoid.foldlM.ofFreeMonoid + def Monoid.foldlM + def Monoid.foldrM.get + def Monoid.foldrM.mk + def Monoid.foldrM.ofFreeMonoid + def Monoid.foldrM + theorem Traversable.Free.map_eq_map + def Traversable.foldMap + theorem Traversable.foldMap_hom + theorem Traversable.foldMap_hom_free + theorem Traversable.foldMap_map + theorem Traversable.foldl.ofFreeMonoid_comp_of + theorem Traversable.foldl.unop_ofFreeMonoid + def Traversable.foldl + theorem Traversable.foldl_map + theorem Traversable.foldl_toList + theorem Traversable.foldlm.ofFreeMonoid_comp_of + def Traversable.foldlm + theorem Traversable.foldlm_map + theorem Traversable.foldlm_toList + theorem Traversable.foldr.ofFreeMonoid_comp_of + def Traversable.foldr + theorem Traversable.foldr_map + theorem Traversable.foldr_toList + theorem Traversable.foldrm.ofFreeMonoid_comp_of + def Traversable.foldrm + theorem Traversable.foldrm_map + theorem Traversable.foldrm_toList + def Traversable.length + theorem Traversable.length_toList + def Traversable.mapFold + def Traversable.toList + theorem Traversable.toList_eq_self + theorem Traversable.toList_map + theorem Traversable.toList_spec 2023-04-10 18:08:56 b92a6b9 feat: port FieldTheory.MvPolynomial (#3372) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/FieldTheory/MvPolynomial.lean + theorem MvPolynomial.quotient_mk_comp_C_injective + theorem MvPolynomial.rank_mvPolynomial 2023-04-10 18:08:54 f7ed2ab feat: port Init.IteSimp (#3368) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Data/Finsupp/Antidiagonal.lean Modified Mathlib/Data/List/Defs.lean Added Mathlib/Init/IteSimp.lean + theorem if_false_left_eq_and + theorem if_false_right_eq_and + theorem if_true_left_eq_or + theorem if_true_right_eq_or 2023-04-10 18:08:52 5127295 feat: port Analysis.LocallyConvex.Polar (#3367) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/LocallyConvex/Polar.lean + def LinearMap.polar + theorem LinearMap.polar_antitone + theorem LinearMap.polar_empty + theorem LinearMap.polar_eq_interᵢ + theorem LinearMap.polar_gc + theorem LinearMap.polar_mem + theorem LinearMap.polar_mem_iff + theorem LinearMap.polar_union + theorem LinearMap.polar_unionᵢ + theorem LinearMap.polar_univ + theorem LinearMap.polar_weak_closed + theorem LinearMap.polar_zero + theorem LinearMap.subset_bipolar + theorem LinearMap.tripolar_eq_polar + theorem LinearMap.zero_mem_polar 2023-04-10 18:08:50 5cedfb5 chore: tidy various files (#3358) ESTIMATED CHANGES Modified Mathlib/Algebra/Category/GroupCat/Basic.lean +/- def MulEquiv.toCommGroupCatIso +/- def mulEquivIsoCommGroupIso Modified Mathlib/Algebra/GroupPower/Order.lean Modified Mathlib/CategoryTheory/Limits/Lattice.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Multiequalizer.lean Modified Mathlib/CategoryTheory/Localization/Opposite.lean Modified Mathlib/CategoryTheory/Shift/Basic.lean + theorem CategoryTheory.shiftComm' + theorem CategoryTheory.shiftZero' - theorem CategoryTheory.shift_comm' - theorem CategoryTheory.shift_zero' Modified Mathlib/CategoryTheory/Sites/Pretopology.lean Modified Mathlib/CategoryTheory/Sites/SheafOfTypes.lean Modified Mathlib/Combinatorics/SimpleGraph/Basic.lean Modified Mathlib/Data/List/Intervals.lean Modified Mathlib/Data/Matrix/DualNumber.lean Modified Mathlib/Data/Multiset/Pi.lean Modified Mathlib/Data/MvPolynomial/CommRing.lean Modified Mathlib/Data/Nat/Multiplicity.lean Modified Mathlib/ModelTheory/Basic.lean Modified Mathlib/RingTheory/Polynomial/Basic.lean +/- def Ideal.ofPolynomial + theorem Polynomial.coeff_toSubring' - theorem Polynomial.coeff_to_subring' Modified Mathlib/Topology/Algebra/InfiniteSum/Module.lean Modified Mathlib/Topology/PathConnected.lean +/- def Path.cast +/- def Path.ofLine +/- def Path.trans + def Path.truncateOfLE - def Path.truncateOfLe Modified Mathlib/Topology/Semicontinuous.lean - theorem lowerSemicontinuousAt_bsupr + theorem lowerSemicontinuousAt_bsupᵢ - theorem lowerSemicontinuousAt_csupr + theorem lowerSemicontinuousAt_csupᵢ - theorem lowerSemicontinuousOn_bsupr + theorem lowerSemicontinuousOn_bsupᵢ - theorem lowerSemicontinuousOn_csupr + theorem lowerSemicontinuousOn_csupᵢ - theorem lowerSemicontinuousWithinAt_bsupr + theorem lowerSemicontinuousWithinAt_bsupᵢ - theorem lowerSemicontinuousWithinAt_csupr + theorem lowerSemicontinuousWithinAt_csupᵢ - theorem lowerSemicontinuous_bsupr + theorem lowerSemicontinuous_bsupᵢ - theorem lowerSemicontinuous_csupr + theorem lowerSemicontinuous_csupᵢ - theorem upperSemicontinuousAt_binfi + theorem upperSemicontinuousAt_binfᵢ - theorem upperSemicontinuousAt_cinfi + theorem upperSemicontinuousAt_cinfᵢ - theorem upperSemicontinuousOn_binfi + theorem upperSemicontinuousOn_binfᵢ - theorem upperSemicontinuousOn_cinfi + theorem upperSemicontinuousOn_cinfᵢ - theorem upperSemicontinuousWithinAt_binfi + theorem upperSemicontinuousWithinAt_binfᵢ - theorem upperSemicontinuousWithinAt_cinfi + theorem upperSemicontinuousWithinAt_cinfᵢ - theorem upperSemicontinuous_binfi + theorem upperSemicontinuous_binfᵢ - theorem upperSemicontinuous_cinfi + theorem upperSemicontinuous_cinfᵢ 2023-04-10 18:08:47 9b53296 feat: port CategoryTheory.Sites.Plus (#3352) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Sites/Plus.lean + def CategoryTheory.GrothendieckTopology.diagram + def CategoryTheory.GrothendieckTopology.diagramFunctor + def CategoryTheory.GrothendieckTopology.diagramNatTrans + theorem CategoryTheory.GrothendieckTopology.diagramNatTrans_comp + theorem CategoryTheory.GrothendieckTopology.diagramNatTrans_id + theorem CategoryTheory.GrothendieckTopology.diagramNatTrans_zero + def CategoryTheory.GrothendieckTopology.diagramPullback + theorem CategoryTheory.GrothendieckTopology.isIso_toPlus_of_isSheaf + def CategoryTheory.GrothendieckTopology.isoToPlus + theorem CategoryTheory.GrothendieckTopology.isoToPlus_hom + theorem CategoryTheory.GrothendieckTopology.isoToPlus_inv + def CategoryTheory.GrothendieckTopology.plusFunctor + def CategoryTheory.GrothendieckTopology.plusLift + theorem CategoryTheory.GrothendieckTopology.plusLift_unique + def CategoryTheory.GrothendieckTopology.plusMap + theorem CategoryTheory.GrothendieckTopology.plusMap_comp + theorem CategoryTheory.GrothendieckTopology.plusMap_id + theorem CategoryTheory.GrothendieckTopology.plusMap_plusLift + theorem CategoryTheory.GrothendieckTopology.plusMap_toPlus + theorem CategoryTheory.GrothendieckTopology.plusMap_zero + def CategoryTheory.GrothendieckTopology.plusObj + theorem CategoryTheory.GrothendieckTopology.plus_hom_ext + def CategoryTheory.GrothendieckTopology.toPlus + def CategoryTheory.GrothendieckTopology.toPlusNatTrans + theorem CategoryTheory.GrothendieckTopology.toPlus_naturality + theorem CategoryTheory.GrothendieckTopology.toPlus_plusLift 2023-04-10 15:18:09 53caa18 feat: port LinearAlgebra.Alternating (#3337) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/LinearAlgebra/Alternating.lean + theorem AlternatingMap.add_apply + theorem AlternatingMap.add_compLinearMap + def AlternatingMap.codRestrict + theorem AlternatingMap.coeFn_smul + theorem AlternatingMap.coe_add + theorem AlternatingMap.coe_alternatization + theorem AlternatingMap.coe_compLinearMap + theorem AlternatingMap.coe_domDomCongr + theorem AlternatingMap.coe_inj + theorem AlternatingMap.coe_injective + theorem AlternatingMap.coe_mk + theorem AlternatingMap.coe_multilinearMap + theorem AlternatingMap.coe_multilinearMap_injective + theorem AlternatingMap.coe_multilinearMap_mk + theorem AlternatingMap.coe_neg + theorem AlternatingMap.coe_smul + theorem AlternatingMap.coe_sub + theorem AlternatingMap.coe_zero + theorem AlternatingMap.compLinearEquiv_eq_zero_iff + def AlternatingMap.compLinearMap + theorem AlternatingMap.compLinearMap_apply + theorem AlternatingMap.compLinearMap_assoc + theorem AlternatingMap.compLinearMap_id + theorem AlternatingMap.compLinearMap_inj + theorem AlternatingMap.compLinearMap_injective + theorem AlternatingMap.compLinearMap_zero + theorem AlternatingMap.congr_arg + theorem AlternatingMap.congr_fun + def AlternatingMap.constLinearEquivOfIsEmpty + def AlternatingMap.constOfIsEmpty + def AlternatingMap.curryLeft + def AlternatingMap.curryLeftLinearMap + theorem AlternatingMap.curryLeft_add + theorem AlternatingMap.curryLeft_compAlternatingMap + theorem AlternatingMap.curryLeft_compLinearMap + theorem AlternatingMap.curryLeft_same + theorem AlternatingMap.curryLeft_smul + theorem AlternatingMap.curryLeft_zero + def AlternatingMap.domCoprod' + theorem AlternatingMap.domCoprod'_apply + def AlternatingMap.domCoprod.summand + theorem AlternatingMap.domCoprod.summand_add_swap_smul_eq_zero + theorem AlternatingMap.domCoprod.summand_eq_zero_of_smul_invariant + theorem AlternatingMap.domCoprod.summand_mk'' + def AlternatingMap.domCoprod + theorem AlternatingMap.domCoprod_coe + def AlternatingMap.domDomCongr + def AlternatingMap.domDomCongrEquiv + theorem AlternatingMap.domDomCongr_add + theorem AlternatingMap.domDomCongr_eq_iff + theorem AlternatingMap.domDomCongr_eq_zero_iff + theorem AlternatingMap.domDomCongr_perm + theorem AlternatingMap.domDomCongr_refl + theorem AlternatingMap.domDomCongr_trans + theorem AlternatingMap.domDomCongr_zero + def AlternatingMap.domLCongr + theorem AlternatingMap.domLCongr_refl + theorem AlternatingMap.domLCongr_symm + theorem AlternatingMap.domLCongr_trans + theorem AlternatingMap.ext + theorem AlternatingMap.ext_iff + theorem AlternatingMap.map_add + theorem AlternatingMap.map_add_swap + theorem AlternatingMap.map_congr_perm + theorem AlternatingMap.map_coord_zero + theorem AlternatingMap.map_eq_zero_of_eq + theorem AlternatingMap.map_eq_zero_of_not_injective + theorem AlternatingMap.map_linearDependent + theorem AlternatingMap.map_neg + theorem AlternatingMap.map_perm + theorem AlternatingMap.map_smul + theorem AlternatingMap.map_sub + theorem AlternatingMap.map_swap + theorem AlternatingMap.map_swap_add + theorem AlternatingMap.map_update_self + theorem AlternatingMap.map_update_sum + theorem AlternatingMap.map_update_update + theorem AlternatingMap.map_update_zero + theorem AlternatingMap.map_vecCons_add + theorem AlternatingMap.map_vecCons_smul + theorem AlternatingMap.map_zero + theorem AlternatingMap.neg_apply + def AlternatingMap.ofSubsingleton + theorem AlternatingMap.smul_apply + theorem AlternatingMap.sub_apply + theorem AlternatingMap.toFun_eq_coe + theorem AlternatingMap.zero_apply + theorem AlternatingMap.zero_compLinearMap + structure AlternatingMap + theorem Basis.ext_alternating + theorem Equiv.Perm.ModSumCongr.swap_smul_involutive + theorem LinearMap.coe_compAlternatingMap + def LinearMap.compAlternatingMap + theorem LinearMap.compAlternatingMap_apply + theorem LinearMap.compAlternatingMap_codRestrict + theorem LinearMap.compMultilinearMap_alternatization + theorem LinearMap.subtype_compAlternatingMap_codRestrict + def MultilinearMap.alternatization + theorem MultilinearMap.alternatization_apply + theorem MultilinearMap.alternatization_coe + theorem MultilinearMap.alternatization_def + theorem MultilinearMap.domCoprod_alternization + theorem MultilinearMap.domCoprod_alternization_coe + theorem MultilinearMap.domCoprod_alternization_eq 2023-04-10 15:18:08 6ab1bde feat: port Algebra.Module.Projective (#3335) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Module/Projective.lean + theorem Module.Projective.of_basis + theorem Module.Projective.of_lifting_property'' + theorem Module.Projective.of_lifting_property' + theorem Module.Projective.of_lifting_property + theorem Module.projective_def' + theorem Module.projective_def + theorem Module.projective_lifting_property Modified Mathlib/Algebra/Star/Module.lean + theorem IsSelfAdjoint.coe_selfAdjointPart_apply + theorem IsSelfAdjoint.selfAdjointPart_apply + theorem IsSelfAdjoint.skewAdjointPart_apply +/- def selfAdjointPart + theorem selfAdjointPart_comp_subtype_selfAdjoint + theorem selfAdjointPart_comp_subtype_skewAdjoint +/- def skewAdjointPart + theorem skewAdjointPart_comp_subtype_selfAdjoint + theorem skewAdjointPart_comp_subtype_skewAdjoint Modified Mathlib/LinearAlgebra/Dfinsupp.lean + theorem Dfinsupp.coprodMap_apply_single Modified Mathlib/LinearAlgebra/Finsupp.lean + theorem Finsupp.apply_total_id Modified Mathlib/LinearAlgebra/Prod.lean + theorem LinearMap.coprod_zero_left + theorem LinearMap.coprod_zero_right +/- theorem LinearMap.fst_prod +/- theorem LinearMap.pair_fst_snd +/- def LinearMap.prod + theorem LinearMap.prod_comp +/- theorem LinearMap.snd_prod Modified Mathlib/LinearAlgebra/Projection.lean 2023-04-10 15:18:06 b9e5e44 feat: port SetTheory.ZFC.Ordinal (#3334) Also corrects the folder casing `Zfc` to `ZFC`. ESTIMATED CHANGES Modified Mathlib.lean Renamed Mathlib/SetTheory/Zfc/Basic.lean to Mathlib/SetTheory/ZFC/Basic.lean Added Mathlib/SetTheory/ZFC/Ordinal.lean + theorem ZFSet.IsTransitive.subset_of_mem + theorem ZFSet.IsTransitive.unionₛ' + def ZFSet.IsTransitive + theorem ZFSet.empty_isTransitive + theorem ZFSet.isTransitive_iff_mem_trans + theorem ZFSet.isTransitive_iff_subset_powerset + theorem ZFSet.isTransitive_iff_unionₛ_subset 2023-04-10 15:18:05 dcfb64b feat: port Topology.MetricSpace.Contracting (#3323) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Topology/MetricSpace/Contracting.lean + theorem ContractingWith.aposteriori_dist_iterate_fixedPoint_le + theorem ContractingWith.apriori_dist_iterate_fixedPoint_le + theorem ContractingWith.apriori_edist_iterate_efixedPoint_le' + theorem ContractingWith.apriori_edist_iterate_efixedPoint_le + theorem ContractingWith.dist_fixedPoint_fixedPoint_of_dist_le' + theorem ContractingWith.dist_fixedPoint_le + theorem ContractingWith.dist_inequality + theorem ContractingWith.dist_le_mul + theorem ContractingWith.dist_le_of_fixedPoint + theorem ContractingWith.edist_efixedPoint_le' + theorem ContractingWith.edist_efixedPoint_le + theorem ContractingWith.edist_efixedPoint_lt_top' + theorem ContractingWith.edist_efixedPoint_lt_top + theorem ContractingWith.edist_inequality + theorem ContractingWith.edist_le_of_fixedPoint + theorem ContractingWith.efixedPoint_eq_of_edist_lt_top' + theorem ContractingWith.efixedPoint_eq_of_edist_lt_top + theorem ContractingWith.efixedPoint_isFixedPt + theorem ContractingWith.efixedPoint_is_fixed_pt' + theorem ContractingWith.efixedPoint_mem' + theorem ContractingWith.eq_or_edist_eq_top_of_fixedPoints + theorem ContractingWith.exists_fixedPoint' + theorem ContractingWith.exists_fixedPoint + theorem ContractingWith.fixedPoint_isFixedPt + theorem ContractingWith.fixedPoint_lipschitz_in_map + theorem ContractingWith.fixedPoint_unique' + theorem ContractingWith.fixedPoint_unique + theorem ContractingWith.isFixedPt_fixedPoint_iterate + theorem ContractingWith.one_sub_K_ne_top + theorem ContractingWith.one_sub_K_ne_zero + theorem ContractingWith.one_sub_K_pos' + theorem ContractingWith.one_sub_K_pos + theorem ContractingWith.restrict + theorem ContractingWith.tendsto_iterate_efixedPoint' + theorem ContractingWith.tendsto_iterate_efixedPoint + theorem ContractingWith.tendsto_iterate_fixedPoint + theorem ContractingWith.toLipschitzWith + def ContractingWith 2023-04-10 15:18:04 59c21a0 Feat: Port/Data.Seq.Seq (#3187) Port of `Data.Seq.Seq` following Mathlib3 refactor to avoid `Seq` overload. Down to two issues: - [x] `bind_ret` goes like Mathlib3 right up to the last line but doesn't close (I've tried the full Mathlib3 `simp` invocation to no avail. - [x] `bind_assoc` has issues with single `match` lines gumming up the works, which should `dsimp` away but don't ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Data/Seq/Seq.lean + def Stream'.IsSeq + def Stream'.Seq.BisimO + def Stream'.Seq.Corec.f + def Stream'.Seq.IsBisimulation + def Stream'.Seq.TerminatedAt + def Stream'.Seq.Terminates + def Stream'.Seq.append + theorem Stream'.Seq.append_assoc + theorem Stream'.Seq.append_nil + theorem Stream'.Seq.coinduction2 + theorem Stream'.Seq.coinduction + def Stream'.Seq.cons + theorem Stream'.Seq.cons_append + theorem Stream'.Seq.cons_injective2 + theorem Stream'.Seq.cons_left_injective + theorem Stream'.Seq.cons_right_injective + def Stream'.Seq.corec + theorem Stream'.Seq.corec_eq + def Stream'.Seq.destruct + theorem Stream'.Seq.destruct_cons + theorem Stream'.Seq.destruct_eq_cons + theorem Stream'.Seq.destruct_eq_nil + theorem Stream'.Seq.destruct_nil + def Stream'.Seq.drop + theorem Stream'.Seq.dropn_add + theorem Stream'.Seq.dropn_tail + def Stream'.Seq.enum + theorem Stream'.Seq.enum_cons + theorem Stream'.Seq.enum_nil + theorem Stream'.Seq.eq_of_bisim + theorem Stream'.Seq.eq_or_mem_of_mem_cons + theorem Stream'.Seq.exists_of_mem_map + theorem Stream'.Seq.ge_stable + def Stream'.Seq.get? + theorem Stream'.Seq.get?_cons_succ + theorem Stream'.Seq.get?_cons_zero + theorem Stream'.Seq.get?_enum + theorem Stream'.Seq.get?_mk + theorem Stream'.Seq.get?_tail + theorem Stream'.Seq.get?_zip + theorem Stream'.Seq.get?_zipWith + def Stream'.Seq.head + theorem Stream'.Seq.head_cons + theorem Stream'.Seq.head_dropn + theorem Stream'.Seq.head_eq_destruct + theorem Stream'.Seq.head_nil + def Stream'.Seq.join + theorem Stream'.Seq.join_append + theorem Stream'.Seq.join_cons + theorem Stream'.Seq.join_cons_cons + theorem Stream'.Seq.join_cons_nil + theorem Stream'.Seq.join_nil + theorem Stream'.Seq.le_stable + def Stream'.Seq.map + theorem Stream'.Seq.map_append + theorem Stream'.Seq.map_comp + theorem Stream'.Seq.map_cons + theorem Stream'.Seq.map_get? + theorem Stream'.Seq.map_id + theorem Stream'.Seq.map_nil + theorem Stream'.Seq.map_tail + theorem Stream'.Seq.mem_append_left + theorem Stream'.Seq.mem_cons + theorem Stream'.Seq.mem_cons_iff + theorem Stream'.Seq.mem_cons_of_mem + theorem Stream'.Seq.mem_map + theorem Stream'.Seq.mem_rec_on + def Stream'.Seq.nats + theorem Stream'.Seq.nats_nth + def Stream'.Seq.nil + theorem Stream'.Seq.nil_append + theorem Stream'.Seq.not_mem_nil + theorem Stream'.Seq.not_terminates_iff + theorem Stream'.Seq.nth_nil + def Stream'.Seq.ofLazyList + def Stream'.Seq.ofList + theorem Stream'.Seq.ofList_append + theorem Stream'.Seq.ofList_cons + theorem Stream'.Seq.ofList_nil + theorem Stream'.Seq.ofList_nth + def Stream'.Seq.ofStream + theorem Stream'.Seq.ofStream_append + theorem Stream'.Seq.ofStream_cons + theorem Stream'.Seq.of_mem_append + def Stream'.Seq.omap + def Stream'.Seq.recOn + def Stream'.Seq.splitAt + def Stream'.Seq.tail + theorem Stream'.Seq.tail_cons + theorem Stream'.Seq.tail_nil + def Stream'.Seq.take + theorem Stream'.Seq.terminated_stable + def Stream'.Seq.toList' + def Stream'.Seq.toList + def Stream'.Seq.toListOrStream + def Stream'.Seq.toStream + def Stream'.Seq.unzip + theorem Stream'.Seq.val_cons + def Stream'.Seq.zip + def Stream'.Seq.zipWith + def Stream'.Seq1.bind + theorem Stream'.Seq1.bind_assoc + theorem Stream'.Seq1.bind_ret + def Stream'.Seq1.join + theorem Stream'.Seq1.join_cons + theorem Stream'.Seq1.join_join + theorem Stream'.Seq1.join_map_ret + theorem Stream'.Seq1.join_nil + def Stream'.Seq1.map + theorem Stream'.Seq1.map_id + theorem Stream'.Seq1.map_join' + theorem Stream'.Seq1.map_join + theorem Stream'.Seq1.map_pair + def Stream'.Seq1.ret + theorem Stream'.Seq1.ret_bind + def Stream'.Seq1.toSeq + def Stream'.Seq1 + def Stream'.Seq 2023-04-10 15:18:02 16371bd feat: port Analysis.Convex.Function (#3152) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/Convex/Function.lean + theorem ConcaveOn.add + theorem ConcaveOn.add_strictConcaveOn + theorem ConcaveOn.comp + theorem ConcaveOn.comp_affineMap + theorem ConcaveOn.comp_convexOn + theorem ConcaveOn.comp_linearMap + theorem ConcaveOn.convex_ge + theorem ConcaveOn.convex_gt + theorem ConcaveOn.convex_hypograph + theorem ConcaveOn.convex_strict_hypograph + theorem ConcaveOn.dual + theorem ConcaveOn.ge_on_segment' + theorem ConcaveOn.ge_on_segment + theorem ConcaveOn.inf + theorem ConcaveOn.left_le_of_le_right'' + theorem ConcaveOn.left_le_of_le_right' + theorem ConcaveOn.left_le_of_le_right + theorem ConcaveOn.left_lt_of_lt_right' + theorem ConcaveOn.left_lt_of_lt_right + theorem ConcaveOn.lt_right_of_left_lt' + theorem ConcaveOn.lt_right_of_left_lt + theorem ConcaveOn.openSegment_subset_strict_hypograph + theorem ConcaveOn.right_le_of_le_left'' + theorem ConcaveOn.right_le_of_le_left' + theorem ConcaveOn.right_le_of_le_left + theorem ConcaveOn.smul + theorem ConcaveOn.sub + theorem ConcaveOn.sub_strictConvexOn + theorem ConcaveOn.subset + theorem ConcaveOn.translate_left + theorem ConcaveOn.translate_right + def ConcaveOn + theorem ConvexOn.add + theorem ConvexOn.add_strictConvexOn + theorem ConvexOn.comp + theorem ConvexOn.comp_affineMap + theorem ConvexOn.comp_concaveOn + theorem ConvexOn.comp_linearMap + theorem ConvexOn.convex_epigraph + theorem ConvexOn.convex_le + theorem ConvexOn.convex_lt + theorem ConvexOn.convex_strict_epigraph + theorem ConvexOn.dual + theorem ConvexOn.le_left_of_right_le'' + theorem ConvexOn.le_left_of_right_le' + theorem ConvexOn.le_left_of_right_le + theorem ConvexOn.le_on_segment' + theorem ConvexOn.le_on_segment + theorem ConvexOn.le_right_of_left_le'' + theorem ConvexOn.le_right_of_left_le' + theorem ConvexOn.le_right_of_left_le + theorem ConvexOn.lt_left_of_right_lt' + theorem ConvexOn.lt_left_of_right_lt + theorem ConvexOn.lt_right_of_left_lt' + theorem ConvexOn.lt_right_of_left_lt + theorem ConvexOn.openSegment_subset_strict_epigraph + theorem ConvexOn.smul + theorem ConvexOn.sub + theorem ConvexOn.sub_strictConcaveOn + theorem ConvexOn.subset + theorem ConvexOn.sup + theorem ConvexOn.translate_left + theorem ConvexOn.translate_right + def ConvexOn + theorem LinearMap.concaveOn + theorem LinearMap.convexOn + theorem LinearOrder.concaveOn_of_lt + theorem LinearOrder.convexOn_of_lt + theorem LinearOrder.strictConcaveOn_of_lt + theorem LinearOrder.strictConvexOn_of_lt + theorem StrictConcaveOn.add + theorem StrictConcaveOn.add_concaveOn + theorem StrictConcaveOn.comp + theorem StrictConcaveOn.comp_strictConvexOn + theorem StrictConcaveOn.concaveOn + theorem StrictConcaveOn.convex_gt + theorem StrictConcaveOn.dual + theorem StrictConcaveOn.inf + theorem StrictConcaveOn.lt_on_openSegment + theorem StrictConcaveOn.lt_on_open_segment' + theorem StrictConcaveOn.sub + theorem StrictConcaveOn.sub_convexOn + theorem StrictConcaveOn.subset + theorem StrictConcaveOn.translate_left + theorem StrictConcaveOn.translate_right + def StrictConcaveOn + theorem StrictConvexOn.add + theorem StrictConvexOn.add_convexOn + theorem StrictConvexOn.comp + theorem StrictConvexOn.comp_strictConcaveOn + theorem StrictConvexOn.convexOn + theorem StrictConvexOn.convex_lt + theorem StrictConvexOn.dual + theorem StrictConvexOn.lt_on_openSegment + theorem StrictConvexOn.lt_on_open_segment' + theorem StrictConvexOn.sub + theorem StrictConvexOn.sub_concaveOn + theorem StrictConvexOn.subset + theorem StrictConvexOn.sup + theorem StrictConvexOn.translate_left + theorem StrictConvexOn.translate_right + def StrictConvexOn + theorem concaveOn_const + theorem concaveOn_id + theorem concaveOn_iff_convex_hypograph + theorem concaveOn_iff_div + theorem concaveOn_iff_forall_pos + theorem concaveOn_iff_pairwise_pos + theorem concaveOn_of_convex_hypograph + theorem convexOn_const + theorem convexOn_id + theorem convexOn_iff_convex_epigraph + theorem convexOn_iff_div + theorem convexOn_iff_forall_pos + theorem convexOn_iff_pairwise_pos + theorem convexOn_of_convex_epigraph + theorem neg_concaveOn_iff + theorem neg_convexOn_iff + theorem neg_strictConcaveOn_iff + theorem neg_strictConvexOn_iff + theorem strictConcaveOn_iff_div + theorem strictConvexOn_iff_div 2023-04-10 15:18:01 12d0c10 feat: port Data.Num.Lemmas (#2784) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Data/Num/Lemmas.lean + def Int.ofSnum + theorem Num.add_ofNat' + theorem Num.add_of_nat + theorem Num.add_one + theorem Num.add_succ + theorem Num.add_toZNum + theorem Num.add_to_nat + theorem Num.add_zero + theorem Num.bit0_of_bit0 + theorem Num.bit1_of_bit1 + theorem Num.bit1_succ + theorem Num.bit_to_nat + theorem Num.bitwise'_to_nat + theorem Num.cast_add + theorem Num.cast_bit0 + theorem Num.cast_bit1 + theorem Num.cast_inj + theorem Num.cast_le + theorem Num.cast_lt + theorem Num.cast_mul + theorem Num.cast_ofZNum + theorem Num.cast_one + theorem Num.cast_pos + theorem Num.cast_sub' + theorem Num.cast_succ' + theorem Num.cast_succ + theorem Num.cast_toZNum + theorem Num.cast_toZNumNeg + theorem Num.cast_to_int + theorem Num.cast_to_nat + theorem Num.cast_zero' + theorem Num.cast_zero + theorem Num.cmp_eq + theorem Num.cmp_swap + theorem Num.cmp_to_nat + theorem Num.div_to_nat + theorem Num.dvd_iff_mod_eq_zero + theorem Num.dvd_to_nat + theorem Num.gcd_to_nat + theorem Num.gcd_to_nat_aux + theorem Num.land'_to_nat + theorem Num.ldiff'_to_nat + theorem Num.le_iff_cmp + theorem Num.le_to_nat + theorem Num.lor'_to_nat + theorem Num.lt_iff_cmp + theorem Num.lt_to_nat + theorem Num.lxor'_to_nat + theorem Num.mem_ofZNum' + theorem Num.mod_to_nat + theorem Num.mul_to_nat + theorem Num.natSize_to_nat + theorem Num.ofInt'_toZNum + theorem Num.ofNat'_bit + theorem Num.ofNat'_eq + theorem Num.ofNat'_one + theorem Num.ofNat'_succ + theorem Num.ofNat'_zero + theorem Num.ofZNum'_toNat + theorem Num.ofZNum_toNat + theorem Num.of_nat_cast + theorem Num.of_nat_inj + theorem Num.of_to_nat' + theorem Num.of_to_nat + theorem Num.ppred_to_nat + theorem Num.pred_succ + theorem Num.pred_to_nat + theorem Num.shiftl_to_nat + theorem Num.shiftr_to_nat + theorem Num.size_eq_natSize + theorem Num.size_to_nat + theorem Num.sub_to_nat + theorem Num.succ'_to_nat + theorem Num.succ_ofInt' + theorem Num.succ_to_nat + theorem Num.testBit_to_nat + theorem Num.toZNumNeg_succ + theorem Num.toZNum_inj + theorem Num.toZNum_succ + theorem Num.to_nat_inj + theorem Num.to_nat_to_int + theorem Num.to_of_nat + theorem Num.zero_add + theorem Num.zneg_toZNum + theorem Num.zneg_toZNumNeg + theorem PosNum.add_one + theorem PosNum.add_succ + theorem PosNum.add_to_nat + theorem PosNum.bit0_of_bit0 + theorem PosNum.bit1_of_bit1 + theorem PosNum.bit_to_nat + theorem PosNum.cast_add + theorem PosNum.cast_bit0 + theorem PosNum.cast_bit1 + theorem PosNum.cast_inj + theorem PosNum.cast_le + theorem PosNum.cast_lt + theorem PosNum.cast_mul + theorem PosNum.cast_one' + theorem PosNum.cast_one + theorem PosNum.cast_pos + theorem PosNum.cast_sub' + theorem PosNum.cast_succ + theorem PosNum.cast_to_int + theorem PosNum.cast_to_nat + theorem PosNum.cast_to_num + theorem PosNum.cast_to_znum + theorem PosNum.cmp_eq + theorem PosNum.cmp_swap + theorem PosNum.cmp_to_nat + theorem PosNum.cmp_to_nat_lemma + theorem PosNum.div'_to_nat + theorem PosNum.divMod_to_nat + theorem PosNum.divMod_to_nat_aux + theorem PosNum.dvd_to_nat + theorem PosNum.le_iff_cmp + theorem PosNum.le_to_nat + theorem PosNum.lt_iff_cmp + theorem PosNum.lt_to_nat + theorem PosNum.mod'_to_nat + theorem PosNum.mul_to_nat + theorem PosNum.natSize_pos + theorem PosNum.natSize_to_nat + theorem PosNum.of_to_nat' + theorem PosNum.of_to_nat + theorem PosNum.one_add + theorem PosNum.one_le_cast + theorem PosNum.one_sub' + theorem PosNum.pred'_succ' + theorem PosNum.pred'_to_nat + theorem PosNum.pred_to_nat + theorem PosNum.size_eq_natSize + theorem PosNum.size_to_nat + theorem PosNum.sub'_one + theorem PosNum.succ'_pred' + theorem PosNum.succ_to_nat + theorem PosNum.to_int_eq_succ_pred + theorem PosNum.to_nat_eq_succ_pred + theorem PosNum.to_nat_inj + theorem PosNum.to_nat_pos + theorem PosNum.to_nat_to_int + theorem ZNum.abs_toZNum + theorem ZNum.abs_to_nat + theorem ZNum.add_one + theorem ZNum.add_zero + theorem ZNum.bit0_of_bit0 + theorem ZNum.bit1_of_bit1 + theorem ZNum.cast_add + theorem ZNum.cast_bit0 + theorem ZNum.cast_bit1 + theorem ZNum.cast_bitm1 + theorem ZNum.cast_inj + theorem ZNum.cast_le + theorem ZNum.cast_lt + theorem ZNum.cast_mul + theorem ZNum.cast_neg + theorem ZNum.cast_one + theorem ZNum.cast_pos + theorem ZNum.cast_sub + theorem ZNum.cast_succ + theorem ZNum.cast_to_int + theorem ZNum.cast_zero' + theorem ZNum.cast_zero + theorem ZNum.cast_zneg + theorem ZNum.cmp_to_int + theorem ZNum.div_to_int + theorem ZNum.dvd_iff_mod_eq_zero + theorem ZNum.dvd_to_int + theorem ZNum.gcd_to_nat + theorem ZNum.le_to_int + theorem ZNum.lt_to_int + theorem ZNum.mod_to_int + theorem ZNum.mul_to_int + theorem ZNum.neg_of_int + theorem ZNum.neg_zero + theorem ZNum.ofInt'_eq + theorem ZNum.ofInt'_neg + theorem ZNum.of_int_cast + theorem ZNum.of_nat_cast + theorem ZNum.of_nat_toZNum + theorem ZNum.of_nat_toZNumNeg + theorem ZNum.of_to_int' + theorem ZNum.of_to_int + theorem ZNum.to_int_inj + theorem ZNum.to_of_int + theorem ZNum.zero_add + theorem ZNum.zneg_bit1 + theorem ZNum.zneg_bitm1 + theorem ZNum.zneg_neg + theorem ZNum.zneg_pos + theorem ZNum.zneg_pred + theorem ZNum.zneg_succ + theorem ZNum.zneg_zneg 2023-04-10 15:18:00 9e9dfc2 feat: port Algebra.Order.Rearrangement (#2268) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Order/Rearrangement.lean + theorem Antivary.sum_mul_eq_sum_comp_perm_mul_iff + theorem Antivary.sum_mul_eq_sum_mul_comp_perm_iff + theorem Antivary.sum_mul_le_sum_comp_perm_mul + theorem Antivary.sum_mul_le_sum_mul_comp_perm + theorem Antivary.sum_mul_lt_sum_comp_perm_mul_iff + theorem Antivary.sum_mul_lt_sum_mul_comp_perm_iff + theorem Antivary.sum_smul_eq_sum_comp_perm_smul_iff + theorem Antivary.sum_smul_eq_sum_smul_comp_perm_iff + theorem Antivary.sum_smul_le_sum_comp_perm_smul + theorem Antivary.sum_smul_le_sum_smul_comp_perm + theorem Antivary.sum_smul_lt_sum_comp_perm_smul_iff + theorem Antivary.sum_smul_lt_sum_smul_comp_perm_iff + theorem AntivaryOn.sum_mul_eq_sum_comp_perm_mul_iff + theorem AntivaryOn.sum_mul_eq_sum_mul_comp_perm_iff + theorem AntivaryOn.sum_mul_le_sum_comp_perm_mul + theorem AntivaryOn.sum_mul_le_sum_mul_comp_perm + theorem AntivaryOn.sum_mul_lt_sum_comp_perm_mul_iff + theorem AntivaryOn.sum_mul_lt_sum_mul_comp_perm_iff + theorem AntivaryOn.sum_smul_eq_sum_comp_perm_smul_iff + theorem AntivaryOn.sum_smul_eq_sum_smul_comp_perm_iff + theorem AntivaryOn.sum_smul_le_sum_comp_perm_smul + theorem AntivaryOn.sum_smul_le_sum_smul_comp_perm + theorem AntivaryOn.sum_smul_lt_sum_comp_perm_smul_iff + theorem AntivaryOn.sum_smul_lt_sum_smul_comp_perm_iff + theorem Monovary.sum_comp_perm_mul_eq_sum_mul_iff + theorem Monovary.sum_comp_perm_mul_le_sum_mul + theorem Monovary.sum_comp_perm_mul_lt_sum_mul_iff + theorem Monovary.sum_comp_perm_smul_eq_sum_smul_iff + theorem Monovary.sum_comp_perm_smul_le_sum_smul + theorem Monovary.sum_comp_perm_smul_lt_sum_smul_iff + theorem Monovary.sum_mul_comp_perm_eq_sum_mul_iff + theorem Monovary.sum_mul_comp_perm_le_sum_mul + theorem Monovary.sum_mul_comp_perm_lt_sum_mul_iff + theorem Monovary.sum_smul_comp_perm_eq_sum_smul_iff + theorem Monovary.sum_smul_comp_perm_le_sum_smul + theorem Monovary.sum_smul_comp_perm_lt_sum_smul_iff + theorem MonovaryOn.sum_comp_perm_mul_eq_sum_mul_iff + theorem MonovaryOn.sum_comp_perm_mul_le_sum_mul + theorem MonovaryOn.sum_comp_perm_mul_lt_sum_mul_iff + theorem MonovaryOn.sum_comp_perm_smul_eq_sum_smul_iff + theorem MonovaryOn.sum_comp_perm_smul_le_sum_smul + theorem MonovaryOn.sum_comp_perm_smul_lt_sum_smul_iff + theorem MonovaryOn.sum_mul_comp_perm_eq_sum_mul_iff + theorem MonovaryOn.sum_mul_comp_perm_le_sum_mul + theorem MonovaryOn.sum_mul_comp_perm_lt_sum_mul_iff + theorem MonovaryOn.sum_smul_comp_perm_eq_sum_smul_iff + theorem MonovaryOn.sum_smul_comp_perm_le_sum_smul + theorem MonovaryOn.sum_smul_comp_perm_lt_sum_smul_iff 2023-04-10 15:17:59 28c8a70 feat: port Topology.LocalAtTarget (#2205) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Topology/LocalAtTarget.lean + theorem Set.restrictPreimage_closedEmbedding + theorem Set.restrictPreimage_embedding + theorem Set.restrictPreimage_inducing + theorem Set.restrictPreimage_isClosedMap + theorem Set.restrictPreimage_openEmbedding + theorem closedEmbedding_iff_closedEmbedding_of_supᵢ_eq_top + theorem embedding_iff_embedding_of_supᵢ_eq_top + theorem inducing_iff_inducing_of_supᵢ_eq_top + theorem isClosedMap_iff_isClosedMap_of_supᵢ_eq_top + theorem isClosed_iff_coe_preimage_of_supᵢ_eq_top + theorem isOpen_iff_coe_preimage_of_supᵢ_eq_top + theorem isOpen_iff_inter_of_supᵢ_eq_top + theorem openEmbedding_iff_openEmbedding_of_supᵢ_eq_top 2023-04-10 13:16:42 05186d6 feat: port LinearAlgebra.FreeModule.Finite.Basic (#3364) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/LinearAlgebra/FreeModule/Finite/Basic.lean + theorem Module.Finite.of_basis 2023-04-10 13:16:40 5558d43 chore: update SHA for mathlib#18268, #18771, RelIso/Basic (#3362) * `algebra.group.ulift`: this is a change that was already backported in leanprover-community/mathlib#18268 to match mathlib4, only the SHA needs to be updated. * `set_theory.cardinal.basic`: the changes from leanprover-community/mathlib#18771 were already forward-ported in #3343, but the sha was not updated. Here I've also inlined all `by`s and generally tidied up the formatting. * `order.rel_iso.basic` (leanprover-community/mathlib#18699, leanprover-community/mathlib#18758) is now fully forward-ported too. ESTIMATED CHANGES Modified Mathlib/Algebra/Group/ULift.lean Modified Mathlib/Order/RelIso/Basic.lean +/- def Quotient.mkRelHom +/- theorem RelIso.rel_symm_apply +/- theorem RelIso.symm_apply_rel +/- theorem acc_liftOn₂'_iff +/- theorem acc_lift₂_iff +/- theorem wellFounded_liftOn₂'_iff +/- theorem wellFounded_lift₂_iff Modified Mathlib/SetTheory/Cardinal/Basic.lean +/- theorem Cardinal.IsLimit.aleph0_le +/- theorem Cardinal.aleph0_le_mul_iff' +/- theorem Cardinal.aleph0_le_mul_iff +/- theorem Cardinal.cantor' +/- theorem Cardinal.cantor +/- theorem Cardinal.card_le_of +/- theorem Cardinal.le_powerlt +/- theorem Cardinal.lift_infᵢ +/- theorem Cardinal.lift_infₛ +/- theorem Cardinal.lift_supₛ +/- theorem Cardinal.mk_emptyCollection_iff +/- theorem Cardinal.mk_eq_nat_iff_fintype +/- theorem Cardinal.mk_eq_two_iff' +/- theorem Cardinal.mk_eq_two_iff +/- theorem Cardinal.mk_unionₛ_le +/- theorem Cardinal.mul_lt_aleph0_iff +/- theorem Cardinal.nsmul_lt_aleph0_iff +/- theorem Cardinal.power_le_max_power_one +/- theorem Cardinal.powerlt_le +/- theorem Cardinal.prod_eq_zero +/- theorem Cardinal.self_le_power +/- theorem Cardinal.sum_le_supᵢ +/- theorem Cardinal.three_le +/- theorem Cardinal.toNat_cast +/- theorem Cardinal.toNat_lift +/- theorem Cardinal.toNat_mul +/- theorem Cardinal.zero_powerlt 2023-04-10 13:06:02 00f1617 feat: port Topology.Algebra.Module.WeakDual (#3366) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Topology/Algebra/Module/WeakDual.lean + theorem WeakBilin.coeFn_continuous + theorem WeakBilin.continuous_of_continuous_eval + theorem WeakBilin.embedding + theorem WeakBilin.eval_continuous + theorem WeakBilin.tendsto_iff_forall_eval_tendsto + def WeakBilin + theorem WeakDual.coeFn_continuous + theorem WeakDual.continuous_of_continuous_eval + theorem WeakDual.eval_continuous + def WeakDual + theorem WeakSpace.coe_map + def WeakSpace.map + theorem WeakSpace.map_apply + def WeakSpace + theorem tendsto_iff_forall_eval_tendsto_topDualPairing + def topDualPairing + theorem topDualPairing_apply 2023-04-10 12:08:36 b63c972 chore: update sha for LinearAlgebra.AffineSpace.Combination (#3363) The hash was out of date due to a fix in the mathlib3 file, which was needed for porting. * [`linear_algebra.affine_space.combination`@`87c54600fe3cdc7d32ff5b50873ac724d86aef8d`..`2de9c37fa71dde2f1c6feff19876dd6a7b1519f0`](https://leanprover-community.github.io/mathlib-port-status/file/linear_algebra/affine_space/combination?range=87c54600fe3cdc7d32ff5b50873ac724d86aef8d..2de9c37fa71dde2f1c6feff19876dd6a7b1519f0) ESTIMATED CHANGES Modified Mathlib/LinearAlgebra/AffineSpace/Combination.lean 2023-04-10 11:55:39 947fb74 chore: sync Topology/FiberBundle/Trivialization.lean (#3370) Also fix a lean3-style name in the comment. ESTIMATED CHANGES Modified Mathlib/Topology/FiberBundle/Trivialization.lean 2023-04-10 11:55:37 566f2e2 chore: sync RingTheory/Ideal/Quotient.lean (#3369) ESTIMATED CHANGES Modified Mathlib/RingTheory/Ideal/Quotient.lean 2023-04-10 11:19:21 74e4a55 feat: port Order.Height (#2186) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Data/ENat/Basic.lean + theorem ENat.some_eq_coe Modified Mathlib/Data/ENat/Lattice.lean + theorem ENat.coe_supᵢ + theorem ENat.supᵢ_coe_lt_top Added Mathlib/Order/Height.lean + theorem Set.chainHeight_add_le_chainHeight_add + theorem Set.chainHeight_dual + theorem Set.chainHeight_empty + theorem Set.chainHeight_eq_supᵢ_Ici + theorem Set.chainHeight_eq_supᵢ_Iic + theorem Set.chainHeight_eq_supᵢ_subtype + theorem Set.chainHeight_eq_top_iff + theorem Set.chainHeight_eq_zero_iff + theorem Set.chainHeight_image + theorem Set.chainHeight_insert_of_forall_gt + theorem Set.chainHeight_insert_of_forall_lt + theorem Set.chainHeight_le_chainHeight_TFAE + theorem Set.chainHeight_le_chainHeight_iff + theorem Set.chainHeight_le_chainHeight_iff_le + theorem Set.chainHeight_mono + theorem Set.chainHeight_of_isEmpty + theorem Set.chainHeight_union_eq + theorem Set.chainHeight_union_le + theorem Set.cons_mem_subchain_iff + theorem Set.exists_chain_of_le_chainHeight + theorem Set.le_chainHeight_TFAE + theorem Set.le_chainHeight_add_nat_iff + theorem Set.le_chainHeight_iff + theorem Set.length_le_chainHeight_of_mem_subchain + theorem Set.nil_mem_subchain + theorem Set.one_le_chainHeight_iff + theorem Set.singleton_mem_subchain_iff + def Set.subchain + theorem Set.wellFoundedGT_of_chainHeight_ne_top + theorem Set.wellFoundedLT_of_chainHeight_ne_top 2023-04-10 07:27:08 afb1a7e feat: port LinearAlgebra.Dimension (#3354) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/LinearAlgebra/Dimension.lean + theorem Basis.card_le_card_of_le + theorem Basis.card_le_card_of_linearIndependent + theorem Basis.card_le_card_of_linearIndependent_aux + theorem Basis.card_le_card_of_submodule + theorem Basis.finite_index_of_rank_lt_aleph0 + theorem Basis.finite_ofVectorSpaceIndex_of_rank_lt_aleph0 + def Basis.indexEquiv + theorem Basis.le_span'' + theorem Basis.le_span + theorem Basis.mk_eq_rank'' + theorem Basis.mk_eq_rank'.{m} + theorem Basis.mk_eq_rank + theorem Basis.mk_range_eq_rank + theorem Basis.nonempty_fintype_index_of_rank_lt_aleph0 + def Basis.ofRankEqZero + theorem Basis.ofRankEqZero_apply + theorem CompleteLattice.Independent.subtype_ne_bot_le_rank + theorem Ideal.rank_eq + theorem LinearEquiv.lift_rank_eq + theorem LinearEquiv.nonempty_equiv_iff_lift_rank_eq + theorem LinearEquiv.nonempty_equiv_iff_rank_eq + def LinearEquiv.ofLiftRankEq + def LinearEquiv.ofRankEq + theorem LinearEquiv.rank_eq + theorem LinearEquiv.rank_map_eq + theorem LinearIndependent.finite_of_isNoetherian + theorem LinearIndependent.set_finite_of_isNoetherian + theorem LinearMap.le_rank_iff_exists_linearIndependent + theorem LinearMap.le_rank_iff_exists_linearIndependent_finset + theorem LinearMap.lift_rank_le_of_injective + def LinearMap.rank + theorem LinearMap.rank_add_le + theorem LinearMap.rank_comp_le_left + theorem LinearMap.rank_comp_le_right + theorem LinearMap.rank_finset_sum_le + theorem LinearMap.rank_le_domain + theorem LinearMap.rank_le_of_injective + theorem LinearMap.rank_le_of_surjective + theorem LinearMap.rank_le_range + theorem LinearMap.rank_zero + theorem Module.Free.rank_eq_card_chooseBasisIndex + theorem Module.rank_le_one_iff_top_isPrincipal + def Submodule.inductionOnRank + theorem Submodule.rank_add_le_rank_add_rank + theorem Submodule.rank_le_one_iff_isPrincipal + theorem Submodule.rank_sup_add_rank_inf_eq + def basisFintypeOfFiniteSpans + theorem basis_le_span' + theorem cardinal_le_rank_of_linearIndependent' + theorem cardinal_le_rank_of_linearIndependent + theorem cardinal_lift_le_rank_of_linearIndependent' + theorem cardinal_lift_le_rank_of_linearIndependent + theorem exists_mem_ne_zero_of_rank_pos + def finDimVectorspaceEquiv + theorem infinite_basis_le_maximal_linearIndependent' + theorem infinite_basis_le_maximal_linearIndependent + theorem le_rank_iff_exists_linearIndependent + theorem le_rank_iff_exists_linearIndependent_finset + theorem lift_rank_map_le + theorem lift_rank_range_le + def linearIndependentFintypeOfLeSpanFintype + theorem linearIndependent_le_basis + theorem linearIndependent_le_infinite_basis + theorem linearIndependent_le_span' + theorem linearIndependent_le_span + theorem linearIndependent_le_span_aux' + theorem maximal_linearIndependent_eq_infinite_basis + theorem mk_eq_mk_of_basis' + theorem mk_eq_mk_of_basis + theorem nonempty_linearEquiv_of_lift_rank_eq + theorem nonempty_linearEquiv_of_rank_eq + theorem rank_add_rank_split + theorem rank_bot + theorem rank_eq_card_basis + theorem rank_eq_of_injective + theorem rank_eq_of_surjective + theorem rank_fin_fun + theorem rank_fun' + theorem rank_fun + theorem rank_fun_eq_lift_mul + theorem rank_le + theorem rank_le_of_submodule + theorem rank_le_one_iff + theorem rank_map_le + theorem rank_pi + theorem rank_pos + theorem rank_pos_iff_exists_ne_zero + theorem rank_pos_iff_nontrivial + theorem rank_prod' + theorem rank_prod + theorem rank_punit + theorem rank_quotient_add_rank + theorem rank_quotient_le + theorem rank_range_add_rank_ker + theorem rank_range_le + theorem rank_range_of_surjective + theorem rank_self + theorem rank_span + theorem rank_span_le + theorem rank_span_of_finset + theorem rank_span_set + theorem rank_submodule_le + theorem rank_submodule_le_one_iff' + theorem rank_submodule_le_one_iff + theorem rank_subsingleton + theorem rank_top + theorem rank_zero_iff + theorem rank_zero_iff_forall_zero + theorem union_support_maximal_linearIndependent_eq_range_basis 2023-04-10 04:09:09 540bae8 feat: port #18526 (#3207) Mathlib 3: https://github.com/leanprover-community/mathlib/pull/18526/files ESTIMATED CHANGES Modified Mathlib/Order/Antisymmetrization.lean Modified Mathlib/Order/RelIso/Basic.lean + def Quotient.mkRelHom + theorem acc_liftOn₂'_iff + theorem acc_lift₂_iff + theorem wellFounded_liftOn₂'_iff +/- theorem wellFounded_lift₂_iff 2023-04-09 22:44:56 3fb0331 fix: remove unneeded LibrarySearch imports (#3353) Removes `LibrarySearch` imports that were accidentally included in #2843 and #2361. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/ConnectedComponents.lean Modified Mathlib/Data/Nat/Choose/Multinomial.lean 2023-04-09 22:44:55 a8db3aa feat: protect `Subgroup.subtype` (#3254) Mathlib 3: https://github.com/leanprover-community/mathlib/pull/18712 ESTIMATED CHANGES Modified Mathlib/GroupTheory/Subgroup/Basic.lean - def Subgroup.subtype +/- theorem Subgroup.subtype_injective +/- theorem SubgroupClass.coeSubtype - def SubgroupClass.subtype 2023-04-09 22:34:33 f13648c feat: port changes to `Cardinal` files (#3343) My bad for letting these pile up. * [`set_theory.cardinal.basic`@`4c19a16e4b705bf135cf9a80ac18fcc99c438514`..`e05ead7993520a432bec94ac504842d90707ad63`](https://leanprover-community.github.io/mathlib-port-status/file/set_theory/cardinal/basic?range=4c19a16e4b705bf135cf9a80ac18fcc99c438514..e05ead7993520a432bec94ac504842d90707ad63) * [`set_theory.cardinal.continuum`@`3d7987cda72abc473c7cdbbb075170e9ac620042`..`e08a42b2dd544cf11eba72e5fc7bf199d4349925`](https://leanprover-community.github.io/mathlib-port-status/file/set_theory/cardinal/continuum?range=3d7987cda72abc473c7cdbbb075170e9ac620042..e08a42b2dd544cf11eba72e5fc7bf199d4349925) * [`set_theory.cardinal.cofinality`@`bb168510ef455e9280a152e7f31673cabd3d7496`..`7c2ce0c2da15516b4e65d0c9e254bb6dc93abd1f`](https://leanprover-community.github.io/mathlib-port-status/file/set_theory/cardinal/cofinality?range=bb168510ef455e9280a152e7f31673cabd3d7496..7c2ce0c2da15516b4e65d0c9e254bb6dc93abd1f) * [`set_theory.cardinal.ordinal`@`8da9e30545433fdd8fe55a0d3da208e5d9263f03`..`7c2ce0c2da15516b4e65d0c9e254bb6dc93abd1f`](https://leanprover-community.github.io/mathlib-port-status/file/set_theory/cardinal/ordinal?range=8da9e30545433fdd8fe55a0d3da208e5d9263f03..7c2ce0c2da15516b4e65d0c9e254bb6dc93abd1f) * [`set_theory.ordinal.arithmetic`@`b67044ba53af18680e1dd246861d9584e968495d`..`e08a42b2dd544cf11eba72e5fc7bf199d4349925`](https://leanprover-community.github.io/mathlib-port-status/file/set_theory/ordinal/arithmetic?range=b67044ba53af18680e1dd246861d9584e968495d..e08a42b2dd544cf11eba72e5fc7bf199d4349925) ESTIMATED CHANGES Modified Mathlib/SetTheory/Cardinal/Basic.lean + theorem Cardinal.IsLimit.aleph0_le + theorem Cardinal.IsLimit.succ_lt + def Cardinal.IsLimit + theorem Cardinal.aleph0_lt_lift + theorem Cardinal.isLimit_aleph0 + theorem Cardinal.isSuccLimit_aleph0 + theorem Cardinal.isSuccLimit_zero + theorem Cardinal.lift_le_nat_iff + theorem Cardinal.lift_lt_aleph0 + theorem Cardinal.lift_lt_nat_iff + theorem Cardinal.nat_le_lift_iff + theorem Cardinal.nat_lt_lift_iff Modified Mathlib/SetTheory/Cardinal/Cofinality.lean - theorem Cardinal.IsLimit.aleph0_le - theorem Cardinal.IsLimit.ne_zero - theorem Cardinal.IsLimit.succ_lt - def Cardinal.IsLimit - theorem Cardinal.isLimit_aleph0 +/- theorem Cardinal.isStrongLimit_beth Modified Mathlib/SetTheory/Cardinal/Continuum.lean + theorem Cardinal.continuum_le_lift + theorem Cardinal.continuum_lt_lift + theorem Cardinal.lift_le_continuum + theorem Cardinal.lift_lt_continuum Modified Mathlib/SetTheory/Cardinal/Ordinal.lean +/- theorem Cardinal.aleph'_limit +/- theorem Cardinal.aleph_limit +/- theorem Cardinal.beth_limit +/- theorem Cardinal.ord_aleph_isLimit Modified Mathlib/SetTheory/Ordinal/Arithmetic.lean 2023-04-09 20:58:03 72b511e feat: tweak cardinal instances (#3247) Mathlib 3: https://github.com/leanprover-community/mathlib/pull/18714 ESTIMATED CHANGES Modified Mathlib/SetTheory/Cardinal/Basic.lean Modified Mathlib/SetTheory/Cardinal/Divisibility.lean 2023-04-09 07:30:15 da1bd9e fix: `inv_of` -> `invOf` (#3336) ESTIMATED CHANGES Modified Mathlib/Algebra/Module/Basic.lean + theorem invOf_two_smul_add_invOf_two_smul - theorem inv_of_two_smul_add_inv_of_two_smul Modified Mathlib/Algebra/Star/Module.lean Modified Mathlib/LinearAlgebra/AffineSpace/Midpoint.lean 2023-04-09 07:30:13 7663224 feat: port CategoryTheory.Triangulated.Pretriangulated (#3070) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Triangulated/Pretriangulated.lean + theorem CategoryTheory.Pretriangulated.comp_dist_triangle_mor_zero₁₂ + theorem CategoryTheory.Pretriangulated.comp_dist_triangle_mor_zero₂₃ + theorem CategoryTheory.Pretriangulated.comp_dist_triangle_mor_zero₃₁ + theorem CategoryTheory.Pretriangulated.inv_rot_of_dist_triangle + theorem CategoryTheory.Pretriangulated.rot_of_dist_triangle 2023-04-09 07:17:10 736aebb chore: update SHA in `CategoryTheory.Triangulated.Basic` (#3346) The stupid example (https://github.com/leanprover-community/mathlib/pull/18701) wasn't ported and thus doesn't need to be removed. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Triangulated/Basic.lean 2023-04-08 22:23:04 3c7c29d feat: port CategoryTheory.Triangulated.Rotate (#3047) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Triangulated/Rotate.lean + def CategoryTheory.Pretriangulated.Triangle.invRotate + def CategoryTheory.Pretriangulated.Triangle.rotate + def CategoryTheory.Pretriangulated.invRotCompRot + def CategoryTheory.Pretriangulated.invRotate + def CategoryTheory.Pretriangulated.rotCompInvRot + def CategoryTheory.Pretriangulated.rotate + def CategoryTheory.Pretriangulated.triangleRotation 2023-04-08 22:11:43 f564598 fix: correct `String.instLinearOrderString` (#3339) Use the optimized `compare` function and provide a manual `compare_eq_compareOfLessAndEq` field. ESTIMATED CHANGES Modified Mathlib/Data/String/Basic.lean + theorem List.lt_iff_lex_lt 2023-04-08 12:22:47 536275b feat: port Data.Finset.Sups (#1663) - [x] depends on: https://github.com/leanprover-community/mathlib/pull/18172 - [x] depends on: #2991 ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Data/Finset/Sups.lean + theorem Finset.Nonempty.of_disjSups_left + theorem Finset.Nonempty.of_disjSups_right + theorem Finset.Nonempty.of_infs_left + theorem Finset.Nonempty.of_infs_right + theorem Finset.Nonempty.of_sups_left + theorem Finset.Nonempty.of_sups_right + theorem Finset.bunionᵢ_image_inf_left + theorem Finset.bunionᵢ_image_inf_right + theorem Finset.bunionᵢ_image_sup_left + theorem Finset.bunionᵢ_image_sup_right + theorem Finset.card_disjSups_le + theorem Finset.card_infs_iff + theorem Finset.card_infs_le + theorem Finset.card_sups_iff + theorem Finset.card_sups_le + theorem Finset.coe_infs + theorem Finset.coe_sups + def Finset.disjSups + theorem Finset.disjSups_assoc + theorem Finset.disjSups_comm + theorem Finset.disjSups_disjSups_disjSups_comm + theorem Finset.disjSups_empty_left + theorem Finset.disjSups_empty_right + theorem Finset.disjSups_inter_subset_left + theorem Finset.disjSups_inter_subset_right + theorem Finset.disjSups_left_comm + theorem Finset.disjSups_right_comm + theorem Finset.disjSups_singleton + theorem Finset.disjSups_subset + theorem Finset.disjSups_subset_iff + theorem Finset.disjSups_subset_left + theorem Finset.disjSups_subset_right + theorem Finset.disjSups_subset_sups + theorem Finset.disjSups_union_left + theorem Finset.disjSups_union_right + theorem Finset.empty_infs + theorem Finset.empty_sups + theorem Finset.forall_disjSups_iff + theorem Finset.forall_infs_iff + theorem Finset.forall_sups_iff + theorem Finset.image_inf_product + theorem Finset.image_subset_infs_left + theorem Finset.image_subset_infs_right + theorem Finset.image_subset_sups_left + theorem Finset.image_subset_sups_right + theorem Finset.image_sup_product + theorem Finset.inf_mem_infs + theorem Finset.infs_assoc + theorem Finset.infs_comm + theorem Finset.infs_empty + theorem Finset.infs_eq_empty + theorem Finset.infs_infs_infs_comm + theorem Finset.infs_inter_subset_left + theorem Finset.infs_inter_subset_right + theorem Finset.infs_left_comm + theorem Finset.infs_nonempty + theorem Finset.infs_right_comm + theorem Finset.infs_singleton + theorem Finset.infs_subset + theorem Finset.infs_subset_iff + theorem Finset.infs_subset_left + theorem Finset.infs_subset_right + theorem Finset.infs_sups_subset_left + theorem Finset.infs_sups_subset_right + theorem Finset.infs_union_left + theorem Finset.infs_union_right + theorem Finset.mem_disjSups + theorem Finset.mem_infs + theorem Finset.mem_sups + theorem Finset.singleton_infs + theorem Finset.singleton_infs_singleton + theorem Finset.singleton_sups + theorem Finset.singleton_sups_singleton + theorem Finset.subset_infs + theorem Finset.subset_sups + theorem Finset.sup_mem_sups + theorem Finset.sups_assoc + theorem Finset.sups_comm + theorem Finset.sups_empty + theorem Finset.sups_eq_empty + theorem Finset.sups_infs_subset_left + theorem Finset.sups_infs_subset_right + theorem Finset.sups_inter_subset_left + theorem Finset.sups_inter_subset_right + theorem Finset.sups_left_comm + theorem Finset.sups_nonempty + theorem Finset.sups_right_comm + theorem Finset.sups_singleton + theorem Finset.sups_subset + theorem Finset.sups_subset_iff + theorem Finset.sups_subset_left + theorem Finset.sups_subset_right + theorem Finset.sups_sups_sups_comm + theorem Finset.sups_union_left + theorem Finset.sups_union_right 2023-04-08 00:58:07 406233d feat: port CategoryTheory.Abelian.FunctorCategory (#3327) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Abelian/FunctorCategory.lean + theorem CategoryTheory.Abelian.FunctorCategory.coimageImageComparison_app' + theorem CategoryTheory.Abelian.FunctorCategory.coimageImageComparison_app + def CategoryTheory.Abelian.FunctorCategory.coimageObjIso + def CategoryTheory.Abelian.FunctorCategory.imageObjIso 2023-04-07 19:59:25 d9a1c78 feat: port Analysis.Normed.Group.Pointwise (#3331) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/Normed/Group/Pointwise.lean + theorem IsCompact.closedBall_div + theorem IsCompact.closedBall_mul + theorem IsCompact.closedBall_one_div + theorem IsCompact.closedBall_one_mul + theorem IsCompact.div_closedBall + theorem IsCompact.div_closedBall_one + theorem IsCompact.mul_closedBall + theorem IsCompact.mul_closedBall_one + theorem Metric.Bounded.div + theorem Metric.Bounded.inv + theorem Metric.Bounded.mul + theorem ball_div + theorem ball_div_one + theorem ball_div_singleton + theorem ball_mul + theorem ball_mul_one + theorem ball_mul_singleton + theorem ball_one_div_singleton + theorem ball_one_mul_singleton + theorem closedBall_div_singleton + theorem closedBall_mul_singleton + theorem closedBall_one_div_singleton + theorem closedBall_one_mul_singleton + theorem div_ball + theorem div_ball_one + theorem infEdist_inv + theorem infEdist_inv_inv + theorem inv_ball + theorem inv_closedBall + theorem inv_cthickening + theorem inv_thickening + theorem mul_ball + theorem mul_ball_one + theorem singleton_div_ball + theorem singleton_div_ball_one + theorem singleton_div_closedBall + theorem singleton_div_closedBall_one + theorem singleton_mul_ball + theorem singleton_mul_ball_one + theorem singleton_mul_closedBall + theorem singleton_mul_closedBall_one + theorem smul_ball_one + theorem smul_closedBall_one Modified Mathlib/Topology/MetricSpace/HausdorffDistance.lean - theorem IsCompact.cthickening_eq_bUnion_closedBall + theorem IsCompact.cthickening_eq_bunionᵢ_closedBall - theorem Metric.thickening_eq_bUnion_ball + theorem Metric.thickening_eq_bunionᵢ_ball 2023-04-07 17:47:58 a78e52b feat: port Analysis.Hofer (#3321) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/Hofer.lean + theorem hofer + theorem pos_div_pow_pos 2023-04-07 16:43:15 cdb0c70 feat: port GroupTheory.Perm.Fin (#3288) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/GroupTheory/Perm/Fin.lean + theorem Equiv.Perm.decomposeFin.symm_sign + def Equiv.Perm.decomposeFin + theorem Equiv.Perm.decomposeFin_symm_apply_one + theorem Equiv.Perm.decomposeFin_symm_apply_succ + theorem Equiv.Perm.decomposeFin_symm_apply_zero + theorem Equiv.Perm.decomposeFin_symm_of_one + theorem Equiv.Perm.decomposeFin_symm_of_refl + theorem Fin.coe_cycleRange_of_le + theorem Fin.coe_cycleRange_of_lt + def Fin.cycleRange + theorem Fin.cycleRange_apply + theorem Fin.cycleRange_last + theorem Fin.cycleRange_of_eq + theorem Fin.cycleRange_of_gt + theorem Fin.cycleRange_of_le + theorem Fin.cycleRange_of_lt + theorem Fin.cycleRange_self + theorem Fin.cycleRange_succAbove + theorem Fin.cycleRange_symm_succ + theorem Fin.cycleRange_symm_zero + theorem Fin.cycleRange_zero' + theorem Fin.cycleRange_zero + theorem Fin.cycleType_cycleRange + theorem Fin.isCycle_cycleRange + theorem Fin.isThreeCycle_cycleRange_two + theorem Fin.sign_cycleRange + theorem Fin.succAbove_cycleRange + theorem Finset.univ_perm_fin_succ + theorem cycleType_finRotate + theorem cycleType_finRotate_of_le + theorem finRotate_succ_eq_decomposeFin + theorem isCycle_finRotate + theorem isCycle_finRotate_of_le + theorem sign_finRotate + theorem support_finRotate + theorem support_finRotate_of_le 2023-04-07 16:11:23 7a94bed feat: port LinearAlgebra.Multilinear.Basis (#3330) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/LinearAlgebra/Multilinear/Basis.lean + theorem Basis.ext_multilinear + theorem Basis.ext_multilinear_fin 2023-04-07 15:02:16 5a04e70 feat: port RingTheory.MvPolynomial.Basic (#3329) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/RingTheory/MvPolynomial/Basic.lean + def MvPolynomial.basisMonomials + theorem MvPolynomial.coe_basisMonomials + theorem MvPolynomial.linearIndependent_X + theorem MvPolynomial.mapRange_eq_map + theorem MvPolynomial.mem_restrictDegree + theorem MvPolynomial.mem_restrictDegree_iff_sup + theorem MvPolynomial.mem_restrictTotalDegree + def MvPolynomial.restrictDegree + def MvPolynomial.restrictTotalDegree + theorem Polynomial.coe_basisMonomials 2023-04-07 15:02:14 861c873 feat: port LinearAlgebra.Multilinear.TensorProduct (#3328) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/LinearAlgebra/Multilinear/TensorProduct.lean + def MultilinearMap.domCoprod' + theorem MultilinearMap.domCoprod'_apply + def MultilinearMap.domCoprod + theorem MultilinearMap.domCoprod_domDomCongr_sumCongr 2023-04-07 13:27:45 03f055b feat: port LinearAlgebra.FreeModule.Basic (#3317) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/LinearAlgebra/FreeModule/Basic.lean + def Module.Free.ChooseBasisIndex + theorem Module.Free.of_basis + theorem Module.Free.of_equiv' + theorem Module.Free.of_equiv + theorem Module.free_def + theorem Module.free_iff_set 2023-04-07 13:27:44 76215d0 feat: port Topology.MetricSpace.HausdorffDistance (#3313) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Data/Real/ENNReal.lean +/- theorem ENNReal.toNNReal_mono + theorem ENNReal.toReal_le_add' + theorem ENNReal.toReal_le_add + theorem ENNReal.toReal_mono' + theorem ENNReal.toReal_ofNat Modified Mathlib/Mathport/Rename.lean Modified Mathlib/Topology/MetricSpace/Basic.lean + theorem Metric.ediam_eq_top_iff_unbounded +/- theorem Metric.ediam_of_unbounded Added Mathlib/Topology/MetricSpace/HausdorffDistance.lean + theorem Disjoint.exists_cthickenings + theorem Disjoint.exists_thickenings + theorem EMetric.continuous_infEdist + theorem EMetric.disjoint_closedBall_of_lt_infEdist + theorem EMetric.edist_le_infEdist_add_ediam + theorem EMetric.empty_or_nonempty_of_hausdorffEdist_ne_top + theorem EMetric.exists_edist_lt_of_hausdorffEdist_lt + theorem EMetric.exists_pos_forall_lt_edist + theorem EMetric.exists_real_pos_lt_infEdist_of_not_mem_closure + theorem EMetric.hausdorffEdist_closure + theorem EMetric.hausdorffEdist_closure₁ + theorem EMetric.hausdorffEdist_closure₂ + theorem EMetric.hausdorffEdist_comm + theorem EMetric.hausdorffEdist_empty + theorem EMetric.hausdorffEdist_image + theorem EMetric.hausdorffEdist_le_ediam + theorem EMetric.hausdorffEdist_le_of_infEdist + theorem EMetric.hausdorffEdist_le_of_mem_edist + theorem EMetric.hausdorffEdist_self + theorem EMetric.hausdorffEdist_self_closure + theorem EMetric.hausdorffEdist_triangle + theorem EMetric.hausdorffEdist_zero_iff_closure_eq_closure + theorem EMetric.hausdorffEdist_zero_iff_eq_of_closed + def EMetric.infEdist + theorem EMetric.infEdist_anti + theorem EMetric.infEdist_closure + theorem EMetric.infEdist_closure_pos_iff_not_mem_closure + theorem EMetric.infEdist_empty + theorem EMetric.infEdist_image + theorem EMetric.infEdist_le_edist_add_infEdist + theorem EMetric.infEdist_le_edist_of_mem + theorem EMetric.infEdist_le_hausdorffEdist_of_mem + theorem EMetric.infEdist_le_infEdist_add_edist + theorem EMetric.infEdist_le_infEdist_add_hausdorffEdist + theorem EMetric.infEdist_lt_iff + theorem EMetric.infEdist_pos_iff_not_mem_closure + theorem EMetric.infEdist_singleton + theorem EMetric.infEdist_union + theorem EMetric.infEdist_unionᵢ + theorem EMetric.infEdist_zero_of_mem + theorem EMetric.le_infEdist + theorem EMetric.mem_closure_iff_infEdist_zero + theorem EMetric.mem_iff_infEdist_zero_of_closed + theorem EMetric.nonempty_of_hausdorffEdist_ne_top + theorem IsClosed.exists_infDist_eq_dist + theorem IsClosed.hausdorffDist_zero_iff_eq + theorem IsClosed.mem_iff_infDist_zero + theorem IsClosed.not_mem_iff_infDist_pos + theorem IsCompact.cthickening_eq_bUnion_closedBall + theorem IsCompact.exists_cthickening_subset_open + theorem IsCompact.exists_infDist_eq_dist + theorem IsCompact.exists_infEdist_eq_edist + theorem IsCompact.exists_thickening_subset_open + theorem IsOpen.exists_unionᵢ_isClosed + theorem Metric.Bounded.cthickening + theorem Metric.ball_infDist_compl_subset + theorem Metric.ball_infDist_subset_compl + theorem Metric.ball_subset_thickening + theorem Metric.closedBall_subset_cthickening + theorem Metric.closedBall_subset_cthickening_singleton + theorem Metric.closure_eq_interᵢ_cthickening' + theorem Metric.closure_eq_interᵢ_cthickening + theorem Metric.closure_eq_interᵢ_thickening' + theorem Metric.closure_eq_interᵢ_thickening + theorem Metric.closure_subset_cthickening + theorem Metric.closure_subset_thickening + theorem Metric.closure_thickening_subset_cthickening + theorem Metric.coe_infNndist + theorem Metric.continuous_infDist_pt + theorem Metric.continuous_infNndist_pt + def Metric.cthickening + theorem Metric.cthickening_closure + theorem Metric.cthickening_cthickening_subset + theorem Metric.cthickening_empty + theorem Metric.cthickening_eq_bunionᵢ_closedBall + theorem Metric.cthickening_eq_interᵢ_cthickening' + theorem Metric.cthickening_eq_interᵢ_cthickening + theorem Metric.cthickening_eq_interᵢ_thickening'' + theorem Metric.cthickening_eq_interᵢ_thickening' + theorem Metric.cthickening_eq_interᵢ_thickening + theorem Metric.cthickening_eq_preimage_infEdist + theorem Metric.cthickening_max_zero + theorem Metric.cthickening_mem_nhdsSet + theorem Metric.cthickening_mono + theorem Metric.cthickening_of_nonpos + theorem Metric.cthickening_singleton + theorem Metric.cthickening_subset_of_subset + theorem Metric.cthickening_subset_thickening' + theorem Metric.cthickening_subset_thickening + theorem Metric.cthickening_subset_unionᵢ_closedBall_of_lt + theorem Metric.cthickening_thickening_subset + theorem Metric.cthickening_union + theorem Metric.cthickening_zero + theorem Metric.diam_cthickening_le + theorem Metric.diam_thickening_le + theorem Metric.disjoint_ball_infDist + theorem Metric.disjoint_closedBall_of_lt_infDist + theorem Metric.dist_le_infDist_add_diam + theorem Metric.ediam_cthickening_le + theorem Metric.ediam_thickening_le + theorem Metric.exists_dist_lt_of_hausdorffDist_lt' + theorem Metric.exists_dist_lt_of_hausdorffDist_lt + theorem Metric.exists_mem_closure_infDist_eq_dist + theorem Metric.frontier_cthickening_disjoint + theorem Metric.frontier_cthickening_subset + theorem Metric.frontier_thickening_disjoint + theorem Metric.frontier_thickening_subset + theorem Metric.hasBasis_nhdsSet_cthickening + theorem Metric.hasBasis_nhdsSet_thickening + def Metric.hausdorffDist + theorem Metric.hausdorffDist_closure + theorem Metric.hausdorffDist_closure₁ + theorem Metric.hausdorffDist_closure₂ + theorem Metric.hausdorffDist_comm + theorem Metric.hausdorffDist_empty' + theorem Metric.hausdorffDist_empty + theorem Metric.hausdorffDist_image + theorem Metric.hausdorffDist_le_diam + theorem Metric.hausdorffDist_le_of_infDist + theorem Metric.hausdorffDist_le_of_mem_dist + theorem Metric.hausdorffDist_nonneg + theorem Metric.hausdorffDist_self_closure + theorem Metric.hausdorffDist_self_zero + theorem Metric.hausdorffDist_triangle' + theorem Metric.hausdorffDist_triangle + theorem Metric.hausdorffDist_zero_iff_closure_eq_closure + theorem Metric.hausdorffEdist_ne_top_of_nonempty_of_bounded + def Metric.infDist + theorem Metric.infDist_closure + theorem Metric.infDist_empty + theorem Metric.infDist_image + theorem Metric.infDist_inter_closedBall_of_mem + theorem Metric.infDist_le_dist_of_mem + theorem Metric.infDist_le_hausdorffDist_of_mem + theorem Metric.infDist_le_infDist_add_dist + theorem Metric.infDist_le_infDist_add_hausdorffDist + theorem Metric.infDist_le_infDist_of_subset + theorem Metric.infDist_lt_iff + theorem Metric.infDist_nonneg + theorem Metric.infDist_singleton + theorem Metric.infDist_zero_of_mem + theorem Metric.infDist_zero_of_mem_closure + theorem Metric.infEdist_eq_top_iff + theorem Metric.infEdist_le_infEdist_cthickening_add + theorem Metric.infEdist_le_infEdist_thickening_add + theorem Metric.infEdist_ne_top + def Metric.infNndist + theorem Metric.isClosed_cthickening + theorem Metric.isOpen_thickening + theorem Metric.lipschitz_infDist_pt + theorem Metric.lipschitz_infNndist_pt + theorem Metric.mem_closure_iff_infDist_zero + theorem Metric.mem_cthickening_iff + theorem Metric.mem_cthickening_of_dist_le + theorem Metric.mem_cthickening_of_edist_le + theorem Metric.mem_thickening_iff + theorem Metric.mem_thickening_iff_exists_edist_lt + theorem Metric.mem_thickening_iff_infDist_lt + theorem Metric.mem_thickening_iff_infEdist_lt + theorem Metric.not_mem_of_dist_lt_infDist + theorem Metric.self_subset_cthickening + theorem Metric.self_subset_thickening + def Metric.thickening + theorem Metric.thickening_closure + theorem Metric.thickening_cthickening_subset + theorem Metric.thickening_empty + theorem Metric.thickening_eq_bUnion_ball + theorem Metric.thickening_eq_preimage_infEdist + theorem Metric.thickening_mem_nhdsSet + theorem Metric.thickening_mono + theorem Metric.thickening_of_nonpos + theorem Metric.thickening_singleton + theorem Metric.thickening_subset_cthickening + theorem Metric.thickening_subset_cthickening_of_le + theorem Metric.thickening_subset_interior_cthickening + theorem Metric.thickening_subset_of_subset + theorem Metric.thickening_thickening_subset + theorem Metric.thickening_union + theorem Metric.thickening_unionᵢ + theorem Metric.uniformContinuous_infDist_pt + theorem Metric.uniformContinuous_infNndist_pt Modified scripts/start_port.sh 2023-04-07 13:27:43 f5de9eb feat: port Data.Matrix.PEquiv (#3234) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Data/Matrix/PEquiv.lean + theorem PEquiv.equiv_toPEquiv_toMatrix + theorem PEquiv.matrix_mul_apply + theorem PEquiv.mul_matrix_apply + theorem PEquiv.mul_toPEquiv_toMatrix + theorem PEquiv.single_mul_single + theorem PEquiv.single_mul_single_of_ne + theorem PEquiv.single_mul_single_right + def PEquiv.toMatrix + theorem PEquiv.toMatrix_apply + theorem PEquiv.toMatrix_bot + theorem PEquiv.toMatrix_injective + theorem PEquiv.toMatrix_refl + theorem PEquiv.toMatrix_swap + theorem PEquiv.toMatrix_symm + theorem PEquiv.toMatrix_trans + theorem PEquiv.toPEquiv_mul_matrix 2023-04-07 13:27:42 520ecd2 feat: port Data.Nat.Choose.Multinomial (#2361) - [x] depends on: #2168 ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Data/Nat/Choose/Multinomial.lean + theorem Finset.sum_pow + theorem Finset.sum_pow_of_commute + def Finsupp.multinomial + theorem Finsupp.multinomial_eq + theorem Finsupp.multinomial_update + theorem Multiset.multinomial_filter_ne + theorem Nat.binomial_eq + theorem Nat.binomial_eq_choose + theorem Nat.binomial_one + theorem Nat.binomial_spec + theorem Nat.binomial_succ_succ + def Nat.multinomial + theorem Nat.multinomial_congr + theorem Nat.multinomial_insert + theorem Nat.multinomial_insert_one + theorem Nat.multinomial_nil + theorem Nat.multinomial_pos + theorem Nat.multinomial_singleton + theorem Nat.multinomial_spec + theorem Nat.multinomial_univ_three + theorem Nat.multinomial_univ_two + theorem Nat.succ_mul_binomial 2023-04-07 11:39:47 959d3b9 feat: port LinearAlgebra.Multilinear.Basic (#2450) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/LinearAlgebra/Multilinear/Basic.lean + theorem LinearMap.coe_compMultilinearMap + def LinearMap.compMultilinearMap + theorem LinearMap.compMultilinearMap_apply + theorem LinearMap.compMultilinearMap_codRestrict + theorem LinearMap.compMultilinearMap_domDomCongr + theorem LinearMap.curry_uncurryLeft + theorem LinearMap.subtype_compMultilinearMap_codRestrict + def LinearMap.uncurryLeft + theorem LinearMap.uncurryLeft_apply + theorem MultilinearMap.add_apply + def MultilinearMap.codRestrict + theorem MultilinearMap.coe_curr_sum_equiv_symm + theorem MultilinearMap.coe_currySumEquiv + theorem MultilinearMap.coe_inj + theorem MultilinearMap.coe_injective + theorem MultilinearMap.coe_mk + theorem MultilinearMap.coe_restrictScalars + theorem MultilinearMap.coe_smul + def MultilinearMap.compLinearMap + theorem MultilinearMap.compLinearMap_apply + theorem MultilinearMap.compLinearMap_assoc + theorem MultilinearMap.compLinearMap_id + theorem MultilinearMap.compLinearMap_inj + theorem MultilinearMap.compLinearMap_injective + theorem MultilinearMap.comp_linearEquiv_eq_zero_iff + theorem MultilinearMap.congr_fun + theorem MultilinearMap.cons_add + theorem MultilinearMap.cons_smul + def MultilinearMap.constLinearEquivOfIsEmpty + def MultilinearMap.constOfIsEmpty + def MultilinearMap.curryFinFinset + theorem MultilinearMap.curryFinFinset_apply + theorem MultilinearMap.curryFinFinset_apply_const + theorem MultilinearMap.curryFinFinset_apply_const_aux + theorem MultilinearMap.curryFinFinset_symm_apply + theorem MultilinearMap.curryFinFinset_symm_apply_const + theorem MultilinearMap.curryFinFinset_symm_apply_piecewise_const + theorem MultilinearMap.curryFinFinset_symm_apply_piecewise_const_aux + def MultilinearMap.curryLeft + theorem MultilinearMap.curryLeft_apply + def MultilinearMap.curryRight + theorem MultilinearMap.curryRight_apply + def MultilinearMap.currySum + def MultilinearMap.currySumEquiv + theorem MultilinearMap.currySum_apply + theorem MultilinearMap.curry_uncurryRight + def MultilinearMap.domDomCongr + def MultilinearMap.domDomCongrEquiv + def MultilinearMap.domDomCongrLinearEquiv' + def MultilinearMap.domDomCongrLinearEquiv + theorem MultilinearMap.domDomCongr_eq_iff + theorem MultilinearMap.domDomCongr_mul + theorem MultilinearMap.domDomCongr_trans + theorem MultilinearMap.ext + theorem MultilinearMap.ext_iff + def MultilinearMap.map + theorem MultilinearMap.map_add_univ + theorem MultilinearMap.map_coord_zero + theorem MultilinearMap.map_neg + theorem MultilinearMap.map_nonempty + theorem MultilinearMap.map_piecewise_add + theorem MultilinearMap.map_piecewise_smul + theorem MultilinearMap.map_smul_univ + theorem MultilinearMap.map_sub + theorem MultilinearMap.map_sum + theorem MultilinearMap.map_sum_finset + theorem MultilinearMap.map_sum_finset_aux + theorem MultilinearMap.map_update_smul + theorem MultilinearMap.map_update_sum + theorem MultilinearMap.map_update_zero + theorem MultilinearMap.map_zero + theorem MultilinearMap.mkPiAlgebraFin_apply + theorem MultilinearMap.mkPiAlgebraFin_apply_const + theorem MultilinearMap.mkPiAlgebra_apply + theorem MultilinearMap.mkPiRing_apply + theorem MultilinearMap.mkPiRing_apply_one_eq_self + theorem MultilinearMap.mkPiRing_eq_iff + theorem MultilinearMap.mkPiRing_eq_zero_iff + theorem MultilinearMap.mkPiRing_zero + theorem MultilinearMap.mk_coe + theorem MultilinearMap.neg_apply + def MultilinearMap.ofSubsingleton + def MultilinearMap.pi + def MultilinearMap.prod + def MultilinearMap.range + def MultilinearMap.restr + def MultilinearMap.restrictScalars + def MultilinearMap.smulRight + theorem MultilinearMap.smulRight_apply + theorem MultilinearMap.smul_apply + theorem MultilinearMap.snoc_add + theorem MultilinearMap.snoc_smul + theorem MultilinearMap.sub_apply + theorem MultilinearMap.sum_apply + theorem MultilinearMap.toFun_eq_coe + def MultilinearMap.toLinearMap + def MultilinearMap.uncurryRight + theorem MultilinearMap.uncurryRight_apply + def MultilinearMap.uncurrySum + theorem MultilinearMap.uncurrySum_aux_apply + theorem MultilinearMap.uncurry_curryLeft + theorem MultilinearMap.uncurry_curryRight + theorem MultilinearMap.zero_apply + theorem MultilinearMap.zero_compLinearMap + structure MultilinearMap + def multilinearCurryLeftEquiv + def multilinearCurryRightEquiv Modified Mathlib/Logic/Equiv/Set.lean +/- theorem dite_comp_equiv_update 2023-04-07 11:23:23 934f05d feat: port LinearAlgebra.TensorProductBasis (#3295) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/LinearAlgebra/TensorProductBasis.lean + def Basis.tensorProduct + theorem Basis.tensorProduct_apply' + theorem Basis.tensorProduct_apply 2023-04-07 11:23:22 875c586 feat: port Topology.Algebra.UniformField (#3049) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Topology/Algebra/UniformField.lean + theorem UniformSpace.Completion.coe_inv + theorem UniformSpace.Completion.continuous_hatInv + def UniformSpace.Completion.hatInv + theorem UniformSpace.Completion.hatInv_extends + theorem UniformSpace.Completion.mul_hatInv_cancel 2023-04-07 11:11:59 dc37f26 chore: rename `castLT` (#3320) From #2450: > `castSucc_cast_lt` is misnamed, it should be `castSucc_castLt`. I wonder why mathport can't align it. This PR goes one step further and renames `castLt` to `castLT` everywhere, per https://leanprover.zulipchat.com/#narrow/stream/144837-PR-reviews/topic/!4.233320/near/347567570. ESTIMATED CHANGES Modified Mathlib/Algebra/BigOperators/Fin.lean Modified Mathlib/AlgebraicTopology/SimplexCategory.lean Modified Mathlib/Data/Fin/Basic.lean + theorem Fin.castAdd_castLT - theorem Fin.castAdd_castLt + def Fin.castLT + theorem Fin.castLT_castAdd + theorem Fin.castLT_castSucc + theorem Fin.castLT_mk + theorem Fin.castLT_succAbove - def Fin.castLt - theorem Fin.castLt_castAdd - theorem Fin.castLt_mk - theorem Fin.castLt_succAbove + theorem Fin.castSucc_castLT - theorem Fin.castSucc_cast_lt - theorem Fin.cast_lt_castSucc + theorem Fin.coe_castLT - theorem Fin.coe_castLt + theorem Fin.succAbove_castLT - theorem Fin.succAbove_castLt Modified Mathlib/Data/Fin/Tuple/Basic.lean Modified Mathlib/Logic/Equiv/Fin.lean 2023-04-07 11:00:07 b210ed1 feat: port LinearAlgebra.AffineSpace.Combination (#3051) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/LinearAlgebra/AffineSpace/Combination.lean + def AffineMap.weightedVSubOfPoint + def Finset.affineCombination + def Finset.affineCombinationLineMapWeights + theorem Finset.affineCombinationLineMapWeights_apply_left + theorem Finset.affineCombinationLineMapWeights_apply_of_ne + theorem Finset.affineCombinationLineMapWeights_apply_right + theorem Finset.affineCombinationLineMapWeights_self + def Finset.affineCombinationSingleWeights + theorem Finset.affineCombinationSingleWeights_apply_of_ne + theorem Finset.affineCombinationSingleWeights_apply_self + theorem Finset.affineCombination_affineCombinationLineMapWeights + theorem Finset.affineCombination_affineCombinationSingleWeights + theorem Finset.affineCombination_apply + theorem Finset.affineCombination_apply_const + theorem Finset.affineCombination_congr + theorem Finset.affineCombination_eq_linear_combination + theorem Finset.affineCombination_eq_of_weightedVSub_eq_zero_of_eq_neg_one + theorem Finset.affineCombination_eq_weightedVSubOfPoint_vadd_of_sum_eq_one + theorem Finset.affineCombination_filter_of_ne + theorem Finset.affineCombination_indicator_subset + theorem Finset.affineCombination_linear + theorem Finset.affineCombination_map + theorem Finset.affineCombination_of_eq_one_of_eq_zero + theorem Finset.affineCombination_sdiff_sub + theorem Finset.affineCombination_subtype_eq_filter + theorem Finset.affineCombination_vsub + theorem Finset.attach_affineCombination_coe + theorem Finset.attach_affineCombination_of_injective + def Finset.centroid + def Finset.centroidWeights + def Finset.centroidWeightsIndicator + theorem Finset.centroidWeightsIndicator_def + theorem Finset.centroidWeights_apply + theorem Finset.centroidWeights_eq_const + theorem Finset.centroid_def + theorem Finset.centroid_eq_affineCombination_fintype + theorem Finset.centroid_eq_centroid_image_of_inj_on + theorem Finset.centroid_eq_of_inj_on_of_image_eq + theorem Finset.centroid_map + theorem Finset.centroid_pair + theorem Finset.centroid_pair_fin + theorem Finset.centroid_singleton + theorem Finset.centroid_univ + theorem Finset.eq_affineCombination_subset_iff_eq_affineCombination_subtype + theorem Finset.eq_weightedVSubOfPoint_subset_iff_eq_weightedVSubOfPoint_subtype + theorem Finset.eq_weightedVSub_subset_iff_eq_weightedVSub_subtype + theorem Finset.map_affineCombination + theorem Finset.sum_affineCombinationLineMapWeights + theorem Finset.sum_affineCombinationSingleWeights + theorem Finset.sum_centroidWeightsIndicator + theorem Finset.sum_centroidWeightsIndicator_eq_one_of_card_eq_add_one + theorem Finset.sum_centroidWeightsIndicator_eq_one_of_card_ne_zero + theorem Finset.sum_centroidWeightsIndicator_eq_one_of_nonempty + theorem Finset.sum_centroidWeights_eq_one_of_card_eq_add_one + theorem Finset.sum_centroidWeights_eq_one_of_card_ne_zero + theorem Finset.sum_centroidWeights_eq_one_of_cast_card_ne_zero + theorem Finset.sum_centroidWeights_eq_one_of_nonempty + theorem Finset.sum_smul_const_vsub_eq_neg_weightedVSub + theorem Finset.sum_smul_const_vsub_eq_sub_weightedVSubOfPoint + theorem Finset.sum_smul_const_vsub_eq_vsub_affineCombination + theorem Finset.sum_smul_vsub_const_eq_affineCombination_vsub + theorem Finset.sum_smul_vsub_const_eq_weightedVSub + theorem Finset.sum_smul_vsub_const_eq_weightedVSubOfPoint_sub + theorem Finset.sum_smul_vsub_eq_affineCombination_vsub + theorem Finset.sum_smul_vsub_eq_weightedVSubOfPoint_sub + theorem Finset.sum_smul_vsub_eq_weightedVSub_sub + theorem Finset.sum_weightedVSubVSubWeights + theorem Finset.univ_fin2 + def Finset.weightedVSub + def Finset.weightedVSubOfPoint + theorem Finset.weightedVSubOfPoint_apply + theorem Finset.weightedVSubOfPoint_apply_const + theorem Finset.weightedVSubOfPoint_congr + theorem Finset.weightedVSubOfPoint_const_smul + theorem Finset.weightedVSubOfPoint_eq_of_sum_eq_zero + theorem Finset.weightedVSubOfPoint_eq_of_weights_eq + theorem Finset.weightedVSubOfPoint_erase + theorem Finset.weightedVSubOfPoint_filter_of_ne + theorem Finset.weightedVSubOfPoint_indicator_subset + theorem Finset.weightedVSubOfPoint_insert + theorem Finset.weightedVSubOfPoint_map + theorem Finset.weightedVSubOfPoint_sdiff + theorem Finset.weightedVSubOfPoint_sdiff_sub + theorem Finset.weightedVSubOfPoint_subtype_eq_filter + theorem Finset.weightedVSubOfPoint_vadd_eq_of_sum_eq_one + def Finset.weightedVSubVSubWeights + theorem Finset.weightedVSubVSubWeights_apply_left + theorem Finset.weightedVSubVSubWeights_apply_of_ne + theorem Finset.weightedVSubVSubWeights_apply_right + theorem Finset.weightedVSubVSubWeights_self + theorem Finset.weightedVSub_apply + theorem Finset.weightedVSub_apply_const + theorem Finset.weightedVSub_congr + theorem Finset.weightedVSub_const_smul + theorem Finset.weightedVSub_empty + theorem Finset.weightedVSub_eq_linear_combination + theorem Finset.weightedVSub_eq_weightedVSubOfPoint_of_sum_eq_zero + theorem Finset.weightedVSub_filter_of_ne + theorem Finset.weightedVSub_indicator_subset + theorem Finset.weightedVSub_map + theorem Finset.weightedVSub_sdiff + theorem Finset.weightedVSub_sdiff_sub + theorem Finset.weightedVSub_subtype_eq_filter + theorem Finset.weightedVSub_vadd_affineCombination + theorem Finset.weightedVSub_weightedVSubVSubWeights + theorem affineCombination_mem_affineSpan + theorem affineSpan_eq_affineSpan_lineMap_units + theorem centroid_mem_affineSpan_of_card_eq_add_one + theorem centroid_mem_affineSpan_of_card_ne_zero + theorem centroid_mem_affineSpan_of_cast_card_ne_zero + theorem centroid_mem_affineSpan_of_nonempty + theorem eq_affineCombination_of_mem_affineSpan + theorem eq_affineCombination_of_mem_affineSpan_of_fintype + theorem mem_affineSpan_iff_eq_affineCombination + theorem mem_affineSpan_iff_eq_weightedVSubOfPoint_vadd + theorem mem_vectorSpan_iff_eq_weightedVSub + theorem weightedVSub_mem_vectorSpan 2023-04-07 10:44:09 d2c4d0c feat: port LinearAlgebra.FinsuppVectorSpace (#3294) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/LinearAlgebra/FinsuppVectorSpace.lean + theorem Basis.equivFun_symm_stdBasis + theorem Finset.sum_single_ite + theorem Finset.sum_univ_ite + theorem Finsupp.basis_repr + theorem Finsupp.coe_basis + theorem Finsupp.coe_basisSingleOne + theorem Finsupp.linearIndependent_single 2023-04-07 10:08:00 e39b210 feat: port Topology.Algebra.StarSubalgebra (#3319) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Topology/Algebra/StarSubalgebra.lean + theorem StarAlgHom.ext_topologicalClosure + theorem StarAlgHomClass.ext_topologicalClosure + theorem StarSubalgebra.closedEmbedding_inclusion + def StarSubalgebra.commRingTopologicalClosure + def StarSubalgebra.commSemiringTopologicalClosure + theorem StarSubalgebra.embedding_inclusion + theorem StarSubalgebra.isClosed_topologicalClosure + theorem StarSubalgebra.le_topologicalClosure + def StarSubalgebra.topologicalClosure + theorem StarSubalgebra.topologicalClosure_coe + theorem StarSubalgebra.topologicalClosure_minimal + theorem StarSubalgebra.topologicalClosure_mono + theorem elementalStarAlgebra.closedEmbedding_coe + theorem elementalStarAlgebra.le_of_isClosed_of_mem + theorem elementalStarAlgebra.self_mem + theorem elementalStarAlgebra.starAlgHomClass_ext + theorem elementalStarAlgebra.star_self_mem + def elementalStarAlgebra 2023-04-07 09:57:39 6ccf368 feat: port RingTheory.Valuation.Quotient (#3322) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/RingTheory/Valuation/Quotient.lean + theorem AddValuation.comap_onQuot_eq + theorem AddValuation.comap_supp + def AddValuation.onQuot + def AddValuation.onQuotVal + theorem AddValuation.onQuot_comap_eq + theorem AddValuation.self_le_supp_comap + theorem AddValuation.supp_quot + theorem AddValuation.supp_quot_supp + theorem Valuation.comap_onQuot_eq + def Valuation.onQuot + def Valuation.onQuotVal + theorem Valuation.onQuot_comap_eq + theorem Valuation.self_le_supp_comap + theorem Valuation.supp_quot + theorem Valuation.supp_quot_supp 2023-04-06 22:39:40 a897757 chore: Generalise instances (#3304) Match https://github.com/leanprover-community/mathlib/pull/15171 * [`topology.algebra.group.basic`@`c10e724be91096453ee3db13862b9fb9a992fef2`..`3b1890e71632be9e3b2086ab512c3259a7e9a3ef`](https://leanprover-community.github.io/mathlib-port-status/file/topology/algebra/group/basic?range=c10e724be91096453ee3db13862b9fb9a992fef2..3b1890e71632be9e3b2086ab512c3259a7e9a3ef) * [`topology.algebra.infinite_sum.basic`@`32253a1a1071173b33dc7d6a218cf722c6feb514`..`3b1890e71632be9e3b2086ab512c3259a7e9a3ef`](https://leanprover-community.github.io/mathlib-port-status/file/topology/algebra/infinite_sum/basic?range=32253a1a1071173b33dc7d6a218cf722c6feb514..3b1890e71632be9e3b2086ab512c3259a7e9a3ef) ESTIMATED CHANGES Modified Mathlib/Topology/Algebra/Group/Basic.lean +/- theorem TopologicalGroup.t2Space +/- theorem TopologicalGroup.t3Space Modified Mathlib/Topology/Algebra/InfiniteSum/Basic.lean +/- theorem tsum_comm +/- theorem tsum_prod +/- theorem tsum_sigma 2023-04-06 22:39:38 a4929f5 feat: port SetTheory.ZFC.Basic (#3165) A re-do of #1215, necessary since a lot of major changes have happened in the last months. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/SetTheory/Zfc/Basic.lean + def Arity.Const + theorem Arity.const_succ + theorem Arity.const_succ_apply + theorem Arity.const_zero + def Arity + def Class.ToSet + def Class.classToCong + theorem Class.classToCong_empty + theorem Class.coe_apply + theorem Class.coe_diff + theorem Class.coe_empty + theorem Class.coe_insert + theorem Class.coe_inter + theorem Class.coe_mem + theorem Class.coe_powerset + theorem Class.coe_sep + theorem Class.coe_subset + theorem Class.coe_union + theorem Class.coe_unionₛ + def Class.congToClass + theorem Class.congToClass_empty + theorem Class.eq_univ_iff_forall + theorem Class.eq_univ_of_forall + theorem Class.eq_univ_of_powerset_subset + theorem Class.ext + theorem Class.ext_iff + def Class.fval + theorem Class.fval_ex + def Class.iota + theorem Class.iota_ex + theorem Class.iota_val + theorem Class.mem_asymm + theorem Class.mem_def + theorem Class.mem_irrefl + theorem Class.mem_unionₛ + theorem Class.mem_univ + theorem Class.mem_univ_hom + theorem Class.mem_wf + theorem Class.not_empty_hom + theorem Class.not_mem_empty + theorem Class.ofSet.inj + def Class.ofSet + def Class.powerset + theorem Class.powerset_apply + theorem Class.toSet_of_setCat + def Class.unionₛ + theorem Class.unionₛ_apply + theorem Class.unionₛ_empty + def Class.univ + theorem Class.univ_not_mem_univ + def Class + def PSet.Arity.Equiv + theorem PSet.Arity.equiv_const + def PSet.Definable.EqMk + def PSet.Definable.Resp + theorem PSet.Definable.eq + theorem PSet.Equiv.eq + theorem PSet.Equiv.exists_left + theorem PSet.Equiv.exists_right + theorem PSet.Equiv.ext + def PSet.Equiv + def PSet.Func + theorem PSet.Mem.congr_left + theorem PSet.Mem.congr_right + theorem PSet.Mem.ext + theorem PSet.Mem.mk + def PSet.Resp.Equiv + def PSet.Resp.EvalAux + def PSet.Resp.eval + theorem PSet.Resp.eval_val + def PSet.Resp.f + def PSet.Resp + theorem PSet.Subset.congr_left + theorem PSet.Subset.congr_right + def PSet.embed + theorem PSet.empty_subset + theorem PSet.equiv_iff + theorem PSet.equiv_iff_mem + theorem PSet.eta + theorem PSet.func_mem + def PSet.image + theorem PSet.lift_mem_embed + theorem PSet.mem_asymm + theorem PSet.mem_image + theorem PSet.mem_irrefl + theorem PSet.mem_powerset + theorem PSet.mem_toSet + theorem PSet.mem_unionₛ + theorem PSet.mem_wf + theorem PSet.mk_func + theorem PSet.mk_type + theorem PSet.nonempty_def + theorem PSet.nonempty_of_mem + theorem PSet.nonempty_of_nonempty_type + theorem PSet.nonempty_toSet_iff + theorem PSet.nonempty_type_iff_nonempty + theorem PSet.not_mem_empty + theorem PSet.not_nonempty_empty + def PSet.ofNat + def PSet.omega + def PSet.powerset + def PSet.toSet + theorem PSet.toSet_empty + theorem PSet.toSet_unionₛ + def PSet.unionₛ + def PSet.«Type» + inductive PSet + theorem ZFSet.Hereditarily.empty + theorem ZFSet.Hereditarily.mem + theorem ZFSet.Hereditarily.self + def ZFSet.Hereditarily + def ZFSet.IsFunc + theorem ZFSet.choice_isFunc + theorem ZFSet.choice_mem + theorem ZFSet.choice_mem_aux + theorem ZFSet.empty_subset + theorem ZFSet.eq + theorem ZFSet.eq_empty + theorem ZFSet.eq_empty_or_nonempty + theorem ZFSet.eval_mk + theorem ZFSet.exact + theorem ZFSet.ext + theorem ZFSet.ext_iff + def ZFSet.funs + theorem ZFSet.hereditarily_iff + theorem ZFSet.image.mk + def ZFSet.image + theorem ZFSet.inductionOn + theorem ZFSet.insert_nonempty + theorem ZFSet.map_fval + theorem ZFSet.map_isFunc + theorem ZFSet.map_unique + theorem ZFSet.mem_asymm + theorem ZFSet.mem_diff + theorem ZFSet.mem_funs + theorem ZFSet.mem_image + theorem ZFSet.mem_insert + theorem ZFSet.mem_insert_iff + theorem ZFSet.mem_insert_of_mem + theorem ZFSet.mem_inter + theorem ZFSet.mem_irrefl + theorem ZFSet.mem_map + theorem ZFSet.mem_pair + theorem ZFSet.mem_pairSep + theorem ZFSet.mem_powerset + theorem ZFSet.mem_prod + theorem ZFSet.mem_range + theorem ZFSet.mem_sep + theorem ZFSet.mem_singleton + theorem ZFSet.mem_toSet + theorem ZFSet.mem_union + theorem ZFSet.mem_unionₛ + theorem ZFSet.mem_unionₛ_of_mem + theorem ZFSet.mem_wf + def ZFSet.mk + theorem ZFSet.mk_eq + theorem ZFSet.mk_mem_iff + theorem ZFSet.mk_out + theorem ZFSet.nonempty_def + theorem ZFSet.nonempty_mk_iff + theorem ZFSet.nonempty_of_mem + theorem ZFSet.nonempty_toSet_iff + theorem ZFSet.not_mem_empty + theorem ZFSet.not_nonempty_empty + def ZFSet.omega + theorem ZFSet.omega_succ + theorem ZFSet.omega_zero + def ZFSet.pair + def ZFSet.pairSep + theorem ZFSet.pair_inj + theorem ZFSet.pair_injective + theorem ZFSet.pair_mem_prod + def ZFSet.powerset + def ZFSet.prod + theorem ZFSet.regularity + theorem ZFSet.singleton_inj + theorem ZFSet.singleton_injective + theorem ZFSet.singleton_nonempty + theorem ZFSet.sound + theorem ZFSet.subset_def + theorem ZFSet.subset_iff + def ZFSet.toSet + theorem ZFSet.toSet_empty + theorem ZFSet.toSet_image + theorem ZFSet.toSet_inj + theorem ZFSet.toSet_injective + theorem ZFSet.toSet_insert + theorem ZFSet.toSet_inter + theorem ZFSet.toSet_pair + theorem ZFSet.toSet_range + theorem ZFSet.toSet_sdiff + theorem ZFSet.toSet_sep + theorem ZFSet.toSet_singleton + theorem ZFSet.toSet_subset_iff + theorem ZFSet.toSet_union + theorem ZFSet.to_set_unionₛ + def ZFSet.unionₛ + theorem ZFSet.unionₛ_empty + theorem ZFSet.unionₛ_lem + theorem ZFSet.unionₛ_pair + theorem ZFSet.unionₛ_singleton + def ZFSet + theorem arity_succ + theorem arity_zero 2023-04-06 20:37:47 c070d28 feat: bump Data/List/Defs SHA (#3249) Both https://github.com/leanprover-community/mathlib/pull/18182 and https://github.com/leanprover-community/mathlib/pull/18543 are backports, and as such no other modification needs to be made to this file. ESTIMATED CHANGES Modified Mathlib/Data/List/Defs.lean 2023-04-06 17:52:56 9d33922 feat: `a/c ≡ b/c mod m/c → a ≡ b mod m` (#3259) https://github.com/leanprover-community/mathlib/pull/18119, https://github.com/leanprover-community/mathlib/pull/18666. * [`algebra.ring.divisibility`@`f1a2caaf51ef593799107fe9a8d5e411599f3996`..`47a1a73351de8dd6c8d3d32b569c8e434b03ca47`](https://leanprover-community.github.io/mathlib-port-status/file/algebra/ring/divisibility?range=f1a2caaf51ef593799107fe9a8d5e411599f3996..47a1a73351de8dd6c8d3d32b569c8e434b03ca47) * [`data.nat.order.lemmas`@`2258b40dacd2942571c8ce136215350c702dc78f`..`47a1a73351de8dd6c8d3d32b569c8e434b03ca47`](https://leanprover-community.github.io/mathlib-port-status/file/data/nat/order/lemmas?range=2258b40dacd2942571c8ce136215350c702dc78f..47a1a73351de8dd6c8d3d32b569c8e434b03ca47) * [`data.int.gcd`@`d4f69d96f3532729da8ebb763f4bc26fcf640f06`..`47a1a73351de8dd6c8d3d32b569c8e434b03ca47`](https://leanprover-community.github.io/mathlib-port-status/file/data/int/gcd?range=d4f69d96f3532729da8ebb763f4bc26fcf640f06..47a1a73351de8dd6c8d3d32b569c8e434b03ca47) * [`data.nat.modeq`@`2ed7e4aec72395b6a7c3ac4ac7873a7a43ead17c`..`47a1a73351de8dd6c8d3d32b569c8e434b03ca47`](https://leanprover-community.github.io/mathlib-port-status/file/data/nat/modeq?range=2ed7e4aec72395b6a7c3ac4ac7873a7a43ead17c..47a1a73351de8dd6c8d3d32b569c8e434b03ca47) * [`data.int.modeq`@`2ed7e4aec72395b6a7c3ac4ac7873a7a43ead17c`..`47a1a73351de8dd6c8d3d32b569c8e434b03ca47`](https://leanprover-community.github.io/mathlib-port-status/file/data/int/modeq?range=2ed7e4aec72395b6a7c3ac4ac7873a7a43ead17c..47a1a73351de8dd6c8d3d32b569c8e434b03ca47) * [`algebra.char_p.basic`@`ceb887ddf3344dab425292e497fa2af91498437c`..`47a1a73351de8dd6c8d3d32b569c8e434b03ca47`](https://leanprover-community.github.io/mathlib-port-status/file/algebra/char_p/basic?range=ceb887ddf3344dab425292e497fa2af91498437c..47a1a73351de8dd6c8d3d32b569c8e434b03ca47) * [`data.zmod.basic`@`297619ec79dedf23525458b6bf5bf35c736fd2b8`..`47a1a73351de8dd6c8d3d32b569c8e434b03ca47`](https://leanprover-community.github.io/mathlib-port-status/file/data/zmod/basic?range=297619ec79dedf23525458b6bf5bf35c736fd2b8..47a1a73351de8dd6c8d3d32b569c8e434b03ca47) ESTIMATED CHANGES Modified Mathlib/Algebra/CharP/Basic.lean + theorem CharP.intCast_eq_intCast - theorem CharP.int_cast_eq_int_cast_iff + theorem CharP.natCast_eq_natCast - theorem eq_iff_modEq_int Modified Mathlib/Algebra/Ring/Divisibility.lean + theorem dvd_sub_comm Modified Mathlib/Data/Int/GCD.lean + theorem Int.gcd_pos_of_ne_zero_left + theorem Int.gcd_pos_of_ne_zero_right - theorem Int.gcd_pos_of_non_zero_left - theorem Int.gcd_pos_of_non_zero_right Modified Mathlib/Data/Int/ModEq.lean + theorem Int.ModEq.cancel_left_div_gcd + theorem Int.ModEq.cancel_right_div_gcd + theorem Int.ModEq.of_div + theorem Int.add_modEq_left + theorem Int.add_modEq_right + theorem Int.modEq_comm + theorem Int.modEq_neg + theorem Int.modEq_zero_iff + theorem Int.neg_modEq_neg Modified Mathlib/Data/Nat/ModEq.lean + theorem Nat.ModEq.of_div Modified Mathlib/Data/Nat/Order/Lemmas.lean + theorem Nat.le_of_lt_add_of_dvd Modified Mathlib/Data/ZMod/Basic.lean + theorem ZMod.valMinAbs_natCast_eq_self + theorem ZMod.valMinAbs_natCast_of_half_lt + theorem ZMod.valMinAbs_natCast_of_le_half 2023-04-06 16:41:18 da954ad feat: port LinearAlgebra.Matrix.DotProduct (#3311) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/LinearAlgebra/Matrix/DotProduct.lean + theorem Matrix.dotProduct_eq + theorem Matrix.dotProduct_eq_iff + theorem Matrix.dotProduct_eq_zero + theorem Matrix.dotProduct_eq_zero_iff + theorem Matrix.dotProduct_stdBasis_eq_mul + theorem Matrix.dotProduct_stdBasis_one 2023-04-06 16:41:17 c90b557 feat: port Topology.Algebra.UniformFilterBasis (#3310) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Topology/Algebra/UniformFilterBasis.lean + theorem AddGroupFilterBasis.cauchy_iff 2023-04-06 16:41:15 b56224c feat: port CategoryTheory.Idempotents.KaroubiKaroubi (#3298) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Idempotents/KaroubiKaroubi.lean + def CategoryTheory.Idempotents.KaroubiKaroubi.counitIso + def CategoryTheory.Idempotents.KaroubiKaroubi.equivalence + theorem CategoryTheory.Idempotents.KaroubiKaroubi.idem_f + def CategoryTheory.Idempotents.KaroubiKaroubi.inverse + theorem CategoryTheory.Idempotents.KaroubiKaroubi.p_comm_f + def CategoryTheory.Idempotents.KaroubiKaroubi.unitIso 2023-04-06 16:29:53 1434fd0 feat: port RingTheory.QuotientNoetherian (#3308) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/RingTheory/QuotientNoetherian.lean 2023-04-06 15:52:13 330e22c feat: port Topology.Algebra.Module.Simple (#3307) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Topology/Algebra/Module/Simple.lean + theorem LinearMap.isClosed_or_dense_ker 2023-04-06 15:42:05 8f5e041 feat: port CategoryTheory.Idempotents.FunctorCategories (#3301) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Idempotents/FunctorCategories.lean + def CategoryTheory.Idempotents.KaroubiFunctorCategoryEmbedding.map + def CategoryTheory.Idempotents.KaroubiFunctorCategoryEmbedding.obj + theorem CategoryTheory.Idempotents.app_comp_p + theorem CategoryTheory.Idempotents.app_idem + theorem CategoryTheory.Idempotents.app_p_comm + theorem CategoryTheory.Idempotents.app_p_comp + def CategoryTheory.Idempotents.karoubiFunctorCategoryEmbedding + theorem CategoryTheory.Idempotents.toKaroubi_comp_karoubiFunctorCategoryEmbedding Modified Mathlib/CategoryTheory/Idempotents/Karoubi.lean 2023-04-06 15:26:24 3c23f5d feat: port Data.Multiset.Basic change from mathlib3 (#3306) See https://github.com/leanprover-community/mathlib/pull/15161. ESTIMATED CHANGES Modified Mathlib/Data/Multiset/Basic.lean - theorem Multiset.pairwise_nil + theorem Multiset.pairwise_zero 2023-04-06 15:15:32 37b23da feat: port CategoryTheory.Idempotents.FunctorExtension (#3300) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Idempotents/FunctorExtension.lean + def CategoryTheory.Idempotents.FunctorExtension₁.map + def CategoryTheory.Idempotents.FunctorExtension₁.obj + def CategoryTheory.Idempotents.KaroubiUniversal₁.counitIso + def CategoryTheory.Idempotents.functorExtension₁ + theorem CategoryTheory.Idempotents.functorExtension₁_comp + theorem CategoryTheory.Idempotents.functorExtension₁_comp_whiskeringLeft_toKaroubi + def CategoryTheory.Idempotents.functorExtension₁_comp_whiskeringLeft_toKaroubi_iso + def CategoryTheory.Idempotents.functorExtension₂ + def CategoryTheory.Idempotents.functorExtension₂CompWhiskeringLeftToKaroubiIso + theorem CategoryTheory.Idempotents.functorExtension₂_comp_whiskeringLeft_toKaroubi + theorem CategoryTheory.Idempotents.isEquivalence_whiskeringLeft_obj_toKaroubi_aux + theorem CategoryTheory.Idempotents.karoubiUniversal_functor_eq + def CategoryTheory.Idempotents.karoubiUniversal₁ + theorem CategoryTheory.Idempotents.karoubiUniversal₂_functor_eq + theorem CategoryTheory.Idempotents.natTrans_eq + theorem CategoryTheory.Idempotents.whiskeringLeft_obj_preimage_app 2023-04-06 15:15:31 0cabc60 chore: CategoryTheory/Monad/Basic cleanup (#3253) The [porting PR](https://github.com/leanprover-community/mathlib4/pull/2969) removed two `@[simp]` that the simpNF linter complained about. Now that I've verified they are not actually needed downstream (see https://github.com/leanprover-community/mathlib/pull/18727), we may as well remove the comments. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Monad/Basic.lean 2023-04-06 15:04:05 26479b0 feat: port Analysis.SpecificLimits.Basic (#3242) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/SpecificLimits/Basic.lean + theorem ENNReal.exists_pos_sum_of_countable' + theorem ENNReal.exists_pos_sum_of_countable + theorem ENNReal.exists_pos_tsum_mul_lt_of_countable + theorem ENNReal.tendsto_pow_atTop_nhds_0_of_lt_1 + theorem ENNReal.tsum_geometric + theorem NNReal.exists_pos_sum_of_countable + theorem NNReal.hasSum_geometric + theorem NNReal.summable_geometric + theorem NNReal.tendsto_const_div_atTop_nhds_0_nat + theorem NNReal.tendsto_inverse_atTop_nhds_0_nat + theorem NNReal.tendsto_pow_atTop_nhds_0_of_lt_1 + theorem Nat.tendsto_pow_atTop_atTop_of_one_lt + theorem Set.Countable.exists_pos_forall_sum_le + theorem Set.Countable.exists_pos_hasSum_le + theorem aux_hasSum_of_le_geometric + theorem cauchySeq_of_edist_le_geometric + theorem cauchySeq_of_edist_le_geometric_two + theorem cauchySeq_of_le_geometric + theorem cauchySeq_of_le_geometric_two + theorem dist_le_of_le_geometric_of_tendsto + theorem dist_le_of_le_geometric_of_tendsto₀ + theorem dist_le_of_le_geometric_two_of_tendsto + theorem dist_le_of_le_geometric_two_of_tendsto₀ + theorem edist_le_of_edist_le_geometric_of_tendsto + theorem edist_le_of_edist_le_geometric_of_tendsto₀ + theorem edist_le_of_edist_le_geometric_two_of_tendsto + theorem edist_le_of_edist_le_geometric_two_of_tendsto₀ + theorem factorial_tendsto_atTop + theorem geom_le + theorem geom_lt + theorem hasSum_geometric_of_lt_1 + theorem hasSum_geometric_two' + theorem hasSum_geometric_two + theorem le_geom + theorem lt_geom + def posSumOfEncodable + theorem sum_geometric_two_le + theorem summable_geometric_of_lt_1 + theorem summable_geometric_two' + theorem summable_geometric_two + theorem summable_geometric_two_encode + theorem summable_one_div_pow_of_le + theorem tendsto_add_one_pow_atTop_atTop_of_pos + theorem tendsto_atTop_of_geom_le + theorem tendsto_coe_nat_div_add_atTop + theorem tendsto_const_div_atTop_nhds_0_nat + theorem tendsto_factorial_div_pow_self_atTop + theorem tendsto_inverse_atTop_nhds_0_nat + theorem tendsto_nat_ceil_div_atTop + theorem tendsto_nat_ceil_mul_div_atTop + theorem tendsto_nat_floor_atTop + theorem tendsto_nat_floor_div_atTop + theorem tendsto_nat_floor_mul_div_atTop + theorem tendsto_one_div_add_atTop_nhds_0_nat + theorem tendsto_pow_atTop_atTop_of_one_lt + theorem tendsto_pow_atTop_nhdsWithin_0_of_lt_1 + theorem tendsto_pow_atTop_nhds_0_of_lt_1 + theorem tsum_geometric_inv_two + theorem tsum_geometric_inv_two_ge + theorem tsum_geometric_nNReal + theorem tsum_geometric_of_lt_1 + theorem tsum_geometric_two' + theorem tsum_geometric_two + theorem uniformity_basis_dist_pow_of_lt_1 2023-04-06 14:47:38 bd8664d feat: port LinearAlgebra.StdBasis (#3264) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/LinearAlgebra/StdBasis.lean + theorem LinearMap.coe_stdBasis + theorem LinearMap.disjoint_stdBasis_stdBasis + theorem LinearMap.infᵢ_ker_proj_le_supᵢ_range_stdBasis + theorem LinearMap.ker_stdBasis + theorem LinearMap.proj_comp_stdBasis + theorem LinearMap.proj_stdBasis_ne + theorem LinearMap.proj_stdBasis_same + def LinearMap.stdBasis + theorem LinearMap.stdBasis_apply' + theorem LinearMap.stdBasis_apply + theorem LinearMap.stdBasis_eq_pi_diag + theorem LinearMap.stdBasis_eq_single + theorem LinearMap.stdBasis_ne + theorem LinearMap.stdBasis_same + theorem LinearMap.supᵢ_range_stdBasis + theorem LinearMap.supᵢ_range_stdBasis_eq_infᵢ_ker_proj + theorem LinearMap.supᵢ_range_stdBasis_le_infᵢ_ker_proj + theorem Matrix.stdBasis_eq_stdBasisMatrix + theorem Pi.basisFun_apply + theorem Pi.basisFun_repr + theorem Pi.basis_apply + theorem Pi.basis_repr + theorem Pi.basis_repr_stdBasis + theorem Pi.linearIndependent_stdBasis 2023-04-06 14:19:52 5432803 chore: fix align linebreaks (#3299) Result of running ``` find . -type f -name "*.lean" -exec sed -i -E 'N;s/^#align ([^[:space:]]+)\n *([^[:space:]]+)$/#align \1 \2/' {} \; ``` Some scripts depend on those statements being on one line. I think it is not important enough to have a special linter or github workflow for that, especially considering this is only needed during the port. I plan to just run this once in a while. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Elements.lean Modified Mathlib/CategoryTheory/Limits/ConeCategory.lean 2023-04-06 14:19:51 e9d9a6f feat: port CategoryTheory.Idempotents.Karoubi (#3291) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Idempotents/Karoubi.lean + structure CategoryTheory.Idempotents.Karoubi.Hom + theorem CategoryTheory.Idempotents.Karoubi.coe_X + theorem CategoryTheory.Idempotents.Karoubi.coe_p + theorem CategoryTheory.Idempotents.Karoubi.comp_f + theorem CategoryTheory.Idempotents.Karoubi.comp_p + theorem CategoryTheory.Idempotents.Karoubi.comp_proof + theorem CategoryTheory.Idempotents.Karoubi.decompId + def CategoryTheory.Idempotents.Karoubi.decompId_i + theorem CategoryTheory.Idempotents.Karoubi.decompId_i_naturality + theorem CategoryTheory.Idempotents.Karoubi.decompId_i_toKaroubi + def CategoryTheory.Idempotents.Karoubi.decompId_p + theorem CategoryTheory.Idempotents.Karoubi.decompId_p_naturality + theorem CategoryTheory.Idempotents.Karoubi.decompId_p_toKaroubi + theorem CategoryTheory.Idempotents.Karoubi.decomp_p + theorem CategoryTheory.Idempotents.Karoubi.eqToHom_f + theorem CategoryTheory.Idempotents.Karoubi.ext + theorem CategoryTheory.Idempotents.Karoubi.hom_eq_zero_iff + theorem CategoryTheory.Idempotents.Karoubi.hom_ext + theorem CategoryTheory.Idempotents.Karoubi.hom_ext_iff + theorem CategoryTheory.Idempotents.Karoubi.id_eq + def CategoryTheory.Idempotents.Karoubi.inclusionHom + theorem CategoryTheory.Idempotents.Karoubi.p_comm + theorem CategoryTheory.Idempotents.Karoubi.p_comp + theorem CategoryTheory.Idempotents.Karoubi.sum_hom + theorem CategoryTheory.Idempotents.Karoubi.zsmul_hom + structure CategoryTheory.Idempotents.Karoubi + def CategoryTheory.Idempotents.toKaroubi + def CategoryTheory.Idempotents.toKaroubi_equivalence + def CategoryTheory.Idempotents.toKaroubi_isEquivalence 2023-04-06 14:19:50 c6bb7e6 feat: port RingTheory.SimpleModule (#3267) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/RingTheory/SimpleModule.lean + theorem IsSemisimpleModule.supₛ_simples_eq_top + theorem IsSimpleModule.congr + theorem IsSimpleModule.isAtom + theorem IsSimpleModule.nontrivial + def JordanHolderModule.Iso + theorem JordanHolderModule.iso_symm + theorem JordanHolderModule.iso_trans + theorem JordanHolderModule.second_iso + theorem LinearMap.bijective_of_ne_zero + theorem LinearMap.bijective_or_eq_zero + theorem LinearMap.injective_of_ne_zero + theorem LinearMap.injective_or_eq_zero + theorem LinearMap.isCoatom_ker_of_surjective + theorem LinearMap.surjective_of_ne_zero + theorem LinearMap.surjective_or_eq_zero + theorem covby_iff_quot_is_simple + theorem isSimpleModule_iff_isAtom + theorem isSimpleModule_iff_isCoatom + theorem is_semisimple_iff_top_eq_supₛ_simples + theorem is_semisimple_of_supₛ_simples_eq_top 2023-04-06 10:57:22 56944fb feat: port AlgebraicTopology.SimplexCategory (#3286) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/AlgebraicTopology/SimplexCategory.lean + def SimplexCategory.Hom.comp + theorem SimplexCategory.Hom.ext' + theorem SimplexCategory.Hom.ext + def SimplexCategory.Hom.id + def SimplexCategory.Hom.mk + theorem SimplexCategory.Hom.mk_toOrderHom + theorem SimplexCategory.Hom.mk_toOrderHom_apply + def SimplexCategory.Hom.toOrderHom + theorem SimplexCategory.Hom.toOrderHom_mk + def SimplexCategory.Truncated.inclusion + def SimplexCategory.Truncated + def SimplexCategory.const + theorem SimplexCategory.const_comp + theorem SimplexCategory.epi_iff_surjective + theorem SimplexCategory.eq_comp_δ_of_not_surjective' + theorem SimplexCategory.eq_comp_δ_of_not_surjective + theorem SimplexCategory.eq_id_of_epi + theorem SimplexCategory.eq_id_of_isIso + theorem SimplexCategory.eq_id_of_mono + theorem SimplexCategory.eq_δ_of_mono + theorem SimplexCategory.eq_σ_comp_of_not_injective' + theorem SimplexCategory.eq_σ_comp_of_not_injective + theorem SimplexCategory.eq_σ_of_epi + theorem SimplexCategory.ext + theorem SimplexCategory.factorThruImage_eq + theorem SimplexCategory.hom_zero_zero + theorem SimplexCategory.image_eq + theorem SimplexCategory.image_ι_eq + theorem SimplexCategory.isIso_of_bijective + theorem SimplexCategory.iso_eq_iso_refl + theorem SimplexCategory.le_of_epi + theorem SimplexCategory.le_of_mono + def SimplexCategory.len + theorem SimplexCategory.len_le_of_epi + theorem SimplexCategory.len_le_of_mono + theorem SimplexCategory.len_lt_of_mono + theorem SimplexCategory.len_mk + def SimplexCategory.mk + def SimplexCategory.mkHom + theorem SimplexCategory.mk_len + theorem SimplexCategory.mono_iff_injective + def SimplexCategory.orderIsoOfIso + theorem SimplexCategory.skeletal + theorem SimplexCategory.skeletalFunctor.coe_map + def SimplexCategory.skeletalFunctor + def SimplexCategory.toCat + def SimplexCategory.δ + theorem SimplexCategory.δ_comp_δ'' + theorem SimplexCategory.δ_comp_δ' + theorem SimplexCategory.δ_comp_δ + theorem SimplexCategory.δ_comp_δ_self' + theorem SimplexCategory.δ_comp_δ_self + theorem SimplexCategory.δ_comp_σ_of_gt' + theorem SimplexCategory.δ_comp_σ_of_gt + theorem SimplexCategory.δ_comp_σ_of_le + theorem SimplexCategory.δ_comp_σ_self' + theorem SimplexCategory.δ_comp_σ_self + theorem SimplexCategory.δ_comp_σ_succ' + theorem SimplexCategory.δ_comp_σ_succ + def SimplexCategory.σ + theorem SimplexCategory.σ_comp_σ + def SimplexCategory Modified Mathlib/Data/Fin/Basic.lean + theorem Fin.dite_val + theorem Fin.ite_val 2023-04-06 10:44:10 332ff81 feat: port RingTheory.QuotientNilpotent (#3293) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/RingTheory/QuotientNilpotent.lean + theorem Ideal.IsNilpotent.induction_on + theorem Ideal.isRadical_iff_quotient_reduced + theorem IsNilpotent.isUnit_quotient_mk_iff 2023-04-06 10:44:08 0ad947c feat: port CategoryTheory.Idempotents.Basic (#3290) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Idempotents/Basic.lean + theorem CategoryTheory.Idempotents.Equivalence.isIdempotentComplete + theorem CategoryTheory.Idempotents.idem_of_id_sub_idem + theorem CategoryTheory.Idempotents.isIdempotentComplete_iff_hasEqualizer_of_id_and_idempotent + theorem CategoryTheory.Idempotents.isIdempotentComplete_iff_idempotents_have_kernels + theorem CategoryTheory.Idempotents.isIdempotentComplete_iff_of_equivalence + theorem CategoryTheory.Idempotents.isIdempotentComplete_iff_opposite + theorem CategoryTheory.Idempotents.isIdempotentComplete_of_isIdempotentComplete_opposite + theorem CategoryTheory.Idempotents.split_iff_of_iso + theorem CategoryTheory.Idempotents.split_imp_of_iso 2023-04-06 10:29:47 346de93 feat: port Topology.Algebra.Module.LinearPmap (#3297) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Topology/Algebra/Module/LinearPMap.lean + structure LinearPMap.HasCore + theorem LinearPMap.IsClosable.closureIsClosable + theorem LinearPMap.IsClosable.closure_isClosed + theorem LinearPMap.IsClosable.closure_mono + theorem LinearPMap.IsClosable.existsUnique + theorem LinearPMap.IsClosable.graph_closure_eq_closure_graph + theorem LinearPMap.IsClosable.leIsClosable + def LinearPMap.IsClosable + theorem LinearPMap.IsClosed.isClosable + def LinearPMap.IsClosed + theorem LinearPMap.closureHasCore + theorem LinearPMap.closure_def' + theorem LinearPMap.closure_def + theorem LinearPMap.hasCore_def + theorem LinearPMap.isClosable_iff_exists_closed_extension + theorem LinearPMap.le_closure 2023-04-06 07:51:02 2f26603 feat: port Topology.Algebra.FilterBasis (#3279) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Topology/Algebra/FilterBasis.lean + theorem ContinuousSMul.of_basis_zero + def GroupFilterBasis.N + theorem GroupFilterBasis.N_one + theorem GroupFilterBasis.conj + theorem GroupFilterBasis.inv + theorem GroupFilterBasis.mem_nhds_one + theorem GroupFilterBasis.mul + theorem GroupFilterBasis.nhds_eq + theorem GroupFilterBasis.nhds_hasBasis + theorem GroupFilterBasis.nhds_one_eq + theorem GroupFilterBasis.nhds_one_hasBasis + theorem GroupFilterBasis.one + theorem GroupFilterBasis.prod_subset_self + def GroupFilterBasis.topology + def ModuleFilterBasis.ofBases + theorem ModuleFilterBasis.smul + theorem ModuleFilterBasis.smul_left + theorem ModuleFilterBasis.smul_right + def ModuleFilterBasis.topology' + def ModuleFilterBasis.topology + structure ModuleFilterBasis + theorem RingFilterBasis.mul + theorem RingFilterBasis.mul_left + theorem RingFilterBasis.mul_right + def RingFilterBasis.topology + def groupFilterBasisOfComm 2023-04-05 22:27:29 226e81a feat: port RingTheory.EisensteinCriterion (#3283) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/RingTheory/EisensteinCriterion.lean + theorem Polynomial.EisensteinCriterionAux.eval_zero_mem_ideal_of_eq_mul_X_pow + theorem Polynomial.EisensteinCriterionAux.isUnit_of_natDegree_eq_zero_of_isPrimitive + theorem Polynomial.EisensteinCriterionAux.le_natDegree_of_map_eq_mul_X_pow + theorem Polynomial.EisensteinCriterionAux.map_eq_C_mul_X_pow_of_forall_coeff_mem + theorem Polynomial.irreducible_of_eisenstein_criterion 2023-04-05 16:27:42 0fdb96c feat: port Data.String.Basic (#1054) mathlib3 SHA: 8a275d92e9f9f3069871cbdf0ddd54b88c17e144 ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Data/String/Basic.lean + theorem List.asString_eq + theorem List.asString_inj + theorem List.length_asString + theorem List.toList_inv_asString + theorem String.Iterator.hasNext.cons_add_csize + theorem String.Pos.byteIdx_zero + theorem String.Pos.eq_iff + theorem String.Pos.zero_add_char + theorem String.Pos.zero_add_string + theorem String.asString_inv_toList + theorem String.get.cons_add_csize + theorem String.head_empty + theorem String.le_iff_toList_le + theorem String.length_toList + theorem String.lt_iff_toList_lt + theorem String.ltb.cons_add_csize + def String.ltb.inductionOn.{u} + def String.ltb + theorem String.nil_asString_eq_empty + theorem String.popn_empty + theorem String.toList_empty + theorem String.toList_inj + theorem String.toList_nonempty + theorem String.toList_singleton + def String.utf8GetAux.inductionOn.{u} Modified Mathlib/Data/String/Defs.lean + def String.head + def String.popn 2023-04-05 15:22:44 41bcd06 feat: port Order.Category.NonemptyFinLinOrd (#3282) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Order/Category/NonemptyFinLinOrdCat.lean + def NonemptyFinLinOrdCat.Iso.mk + theorem NonemptyFinLinOrdCat.coe_of + def NonemptyFinLinOrdCat.dual + def NonemptyFinLinOrdCat.dualEquiv + theorem NonemptyFinLinOrdCat.epi_iff_surjective + theorem NonemptyFinLinOrdCat.forget_map_apply + theorem NonemptyFinLinOrdCat.mono_iff_injective + def NonemptyFinLinOrdCat.of + def NonemptyFinLinOrdCat + theorem nonemptyFinLinOrdCat_dual_comp_forget_to_linOrdCat 2023-04-05 14:47:27 e54ba22 feat: port Order.Category.LinOrd (#3281) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Order/Category/LinOrdCat.lean + def LinOrdCat.Iso.mk + theorem LinOrdCat.coe_of + def LinOrdCat.dual + def LinOrdCat.dualEquiv + def LinOrdCat.of + def LinOrdCat + theorem linOrdCat_dual_comp_forget_to_latCat 2023-04-05 14:36:17 52872ce feat: port Combinatorics.SimpleGraph.AdjMatrix (#3287) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Combinatorics/SimpleGraph/AdjMatrix.lean + theorem Matrix.IsAdjMatrix.adjMatrix_toGraph_eq + theorem Matrix.IsAdjMatrix.apply_diag_ne + theorem Matrix.IsAdjMatrix.apply_ne_one_iff + theorem Matrix.IsAdjMatrix.apply_ne_zero_iff + theorem Matrix.IsAdjMatrix.compl + def Matrix.IsAdjMatrix.toGraph + theorem Matrix.IsAdjMatrix.toGraph_compl_eq + structure Matrix.IsAdjMatrix + def Matrix.compl + theorem Matrix.compl_apply + theorem Matrix.compl_apply_diag + theorem Matrix.isAdjMatrix_compl + theorem Matrix.isSymm_compl + def SimpleGraph.adjMatrix + theorem SimpleGraph.adjMatrix_apply + theorem SimpleGraph.adjMatrix_dotProduct + theorem SimpleGraph.adjMatrix_mulVec_apply + theorem SimpleGraph.adjMatrix_mulVec_const_apply + theorem SimpleGraph.adjMatrix_mulVec_const_apply_of_regular + theorem SimpleGraph.adjMatrix_mul_apply + theorem SimpleGraph.adjMatrix_mul_self_apply_self + theorem SimpleGraph.adjMatrix_pow_apply_eq_card_walk + theorem SimpleGraph.adjMatrix_vecMul_apply + theorem SimpleGraph.dotProduct_adjMatrix + theorem SimpleGraph.isAdjMatrix_adjMatrix + theorem SimpleGraph.isSymm_adjMatrix + theorem SimpleGraph.mul_adjMatrix_apply + theorem SimpleGraph.toGraph_adjMatrix_eq + theorem SimpleGraph.trace_adjMatrix + theorem SimpleGraph.transpose_adjMatrix 2023-04-05 13:57:42 af527cc feat: port Order.Category.Lat (#3268) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Order/Category/LatCat.lean + def LatCat.Iso.mk + theorem LatCat.coe_of + def LatCat.dual + def LatCat.dualEquiv + def LatCat.of + def LatCat + theorem latCat_dual_comp_forget_to_partOrdCat 2023-04-05 13:39:15 50dc55d feat: port CategoryTheory.Sites.Sheaf (#3244) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Sites/Sheaf.lean + def CategoryTheory.Presheaf.IsSheaf' + def CategoryTheory.Presheaf.IsSheaf.amalgamate + theorem CategoryTheory.Presheaf.IsSheaf.amalgamate_map + theorem CategoryTheory.Presheaf.IsSheaf.hom_ext + def CategoryTheory.Presheaf.IsSheaf + def CategoryTheory.Presheaf.conesEquivSieveCompatibleFamily + def CategoryTheory.Presheaf.firstMap + def CategoryTheory.Presheaf.firstObj + def CategoryTheory.Presheaf.forkMap + def CategoryTheory.Presheaf.homEquivAmalgamation + def CategoryTheory.Presheaf.isLimitOfIsSheaf + theorem CategoryTheory.Presheaf.isLimit_iff_isSheafFor + theorem CategoryTheory.Presheaf.isLimit_iff_isSheafFor_presieve + theorem CategoryTheory.Presheaf.isSeparated_iff_subsingleton + def CategoryTheory.Presheaf.isSheafForIsSheafFor' + theorem CategoryTheory.Presheaf.isSheaf_iff_isLimit + theorem CategoryTheory.Presheaf.isSheaf_iff_isLimit_pretopology + theorem CategoryTheory.Presheaf.isSheaf_iff_isSheaf' + theorem CategoryTheory.Presheaf.isSheaf_iff_isSheaf_forget + theorem CategoryTheory.Presheaf.isSheaf_iff_multiequalizer + theorem CategoryTheory.Presheaf.isSheaf_iff_multifork + theorem CategoryTheory.Presheaf.isSheaf_of_isTerminal + theorem CategoryTheory.Presheaf.isSheaf_of_iso_iff + def CategoryTheory.Presheaf.secondMap + def CategoryTheory.Presheaf.secondObj + theorem CategoryTheory.Presheaf.subsingleton_iff_isSeparatedFor + theorem CategoryTheory.Presheaf.w + def CategoryTheory.Presieve.FamilyOfElements.SieveCompatible.cone + theorem CategoryTheory.Sheaf.Hom.add_app + theorem CategoryTheory.Sheaf.Hom.mono_of_presheaf_mono + structure CategoryTheory.Sheaf.Hom + theorem CategoryTheory.Sheaf.hom_ext + def CategoryTheory.Sheaf.isTerminalOfBotCover + structure CategoryTheory.Sheaf + theorem CategoryTheory.isSheaf_iff_isSheaf_of_type + def CategoryTheory.sheafEquivSheafOfTypes + def CategoryTheory.sheafOver + def CategoryTheory.sheafToPresheaf Modified Mathlib/CategoryTheory/Sites/SheafOfTypes.lean 2023-04-05 13:20:20 5b38e89 chore: capitalization of C and X in Polynomial lemmas (#3284) ESTIMATED CHANGES Modified Mathlib/Algebra/Polynomial/BigOperators.lean + theorem Polynomial.prod_X_sub_C_nextCoeff - theorem Polynomial.prod_x_sub_c_nextCoeff Modified Mathlib/RingTheory/Polynomial/Content.lean + theorem Polynomial.isPrimitive_iff_isUnit_of_C_dvd - theorem Polynomial.isPrimitive_iff_isUnit_of_c_dvd 2023-04-05 11:30:43 b57ede5 chore: fix some names in comments (#3276) ESTIMATED CHANGES Modified Mathlib/Algebra/BigOperators/Pi.lean Modified Mathlib/Algebra/FreeMonoid/Count.lean Modified Mathlib/Algebra/Order/Floor.lean Modified Mathlib/Algebra/Parity.lean Modified Mathlib/Analysis/Normed/Group/Seminorm.lean Modified Mathlib/CategoryTheory/Functor/Basic.lean Modified Mathlib/CategoryTheory/Functor/Category.lean Modified Mathlib/CategoryTheory/Limits/Cones.lean Modified Mathlib/CategoryTheory/Limits/HasLimits.lean Modified Mathlib/CategoryTheory/Sigma/Basic.lean Modified Mathlib/Data/Complex/Exponential.lean Modified Mathlib/Data/Fin/Tuple/Basic.lean Modified Mathlib/Data/Polynomial/RingDivision.lean Modified Mathlib/Data/Real/ENNReal.lean Modified Mathlib/Data/Subtype.lean Modified Mathlib/GroupTheory/OrderOfElement.lean Modified Mathlib/Logic/Equiv/List.lean Modified Mathlib/Order/Filter/Curry.lean Modified Mathlib/Topology/Algebra/Monoid.lean Modified Mathlib/Topology/MetricSpace/EMetricSpace.lean 2023-04-05 11:30:42 c84577c feat: port Order.Category.PartOrd (#3266) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Order/Category/PartOrdCat.lean + def PartOrdCat.Iso.mk + theorem PartOrdCat.coe_of + def PartOrdCat.dual + def PartOrdCat.dualEquiv + def PartOrdCat.of + def PartOrdCat + theorem partOrdCat_dual_comp_forget_to_preordCat + def preordCatToPartOrdCat + def preordCatToPartOrdCatCompToDualIsoToDualCompPreordCatToPartOrdCat + def preordCatToPartOrdCatForgetAdjunction 2023-04-05 11:14:46 333d55a feat: port Algebra.CharP.CharAndCard (#3285) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/CharP/CharAndCard.lean + theorem isUnit_iff_not_dvd_char + theorem isUnit_iff_not_dvd_char_of_ringChar_ne_zero + theorem not_isUnit_prime_of_dvd_card + theorem prime_dvd_char_iff_dvd_card 2023-04-05 09:20:48 2be86d8 feat: port GroupTheory.Perm.Cycle.Type (#3027) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/GroupTheory/Perm/Cycle/Basic.lean Added Mathlib/GroupTheory/Perm/Cycle/Type.lean + theorem Equiv.Perm.Disjoint.cycleType + theorem Equiv.Perm.IsCycle.cycleType + theorem Equiv.Perm.IsSwap.mul_mem_closure_three_cycles + theorem Equiv.Perm.IsThreeCycle.card_support + theorem Equiv.Perm.IsThreeCycle.cycleType + theorem Equiv.Perm.IsThreeCycle.inv + theorem Equiv.Perm.IsThreeCycle.inv_iff + theorem Equiv.Perm.IsThreeCycle.isCycle + theorem Equiv.Perm.IsThreeCycle.isThreeCycle_sq + theorem Equiv.Perm.IsThreeCycle.orderOf + theorem Equiv.Perm.IsThreeCycle.sign + def Equiv.Perm.IsThreeCycle + theorem Equiv.Perm.VectorsProdEqOne.card + def Equiv.Perm.VectorsProdEqOne.equivVector + theorem Equiv.Perm.VectorsProdEqOne.mem_iff + theorem Equiv.Perm.VectorsProdEqOne.one_eq + def Equiv.Perm.VectorsProdEqOne.rotate + theorem Equiv.Perm.VectorsProdEqOne.rotate_length + theorem Equiv.Perm.VectorsProdEqOne.rotate_rotate + theorem Equiv.Perm.VectorsProdEqOne.rotate_zero + def Equiv.Perm.VectorsProdEqOne.vectorEquiv + theorem Equiv.Perm.VectorsProdEqOne.zero_eq + theorem Equiv.Perm.card_compl_support_modEq + theorem Equiv.Perm.card_cycleType_eq_one + theorem Equiv.Perm.card_cycleType_eq_zero + theorem Equiv.Perm.card_cycleType_pos + def Equiv.Perm.cycleType + theorem Equiv.Perm.cycleType_conj + theorem Equiv.Perm.cycleType_def + theorem Equiv.Perm.cycleType_eq' + theorem Equiv.Perm.cycleType_eq + theorem Equiv.Perm.cycleType_eq_zero + theorem Equiv.Perm.cycleType_extendDomain + theorem Equiv.Perm.cycleType_inv + theorem Equiv.Perm.cycleType_le_of_mem_cycleFactorsFinset + theorem Equiv.Perm.cycleType_mul_inv_mem_cycleFactorsFinset_eq_sub + theorem Equiv.Perm.cycleType_ofSubtype + theorem Equiv.Perm.cycleType_of_card_le_mem_cycleType_add_two + theorem Equiv.Perm.cycleType_one + theorem Equiv.Perm.cycleType_prime_order + theorem Equiv.Perm.dvd_of_mem_cycleType + theorem Equiv.Perm.exists_fixed_point_of_prime' + theorem Equiv.Perm.exists_fixed_point_of_prime + theorem Equiv.Perm.filter_parts_partition_eq_cycleType + theorem Equiv.Perm.isConj_iff_cycleType_eq + theorem Equiv.Perm.isConj_of_cycleType_eq + theorem Equiv.Perm.isCycle_of_prime_order'' + theorem Equiv.Perm.isCycle_of_prime_order' + theorem Equiv.Perm.isCycle_of_prime_order + theorem Equiv.Perm.isThreeCycle_swap_mul_swap_same + theorem Equiv.Perm.lcm_cycleType + theorem Equiv.Perm.le_card_support_of_mem_cycleType + theorem Equiv.Perm.mem_cycleType_iff + theorem Equiv.Perm.one_lt_of_mem_cycleType + theorem Equiv.Perm.orderOf_cycleOf_dvd_orderOf + def Equiv.Perm.partition + theorem Equiv.Perm.partition_eq_of_isConj + theorem Equiv.Perm.parts_partition + theorem Equiv.Perm.sign_of_cycleType' + theorem Equiv.Perm.sign_of_cycleType + theorem Equiv.Perm.subgroup_eq_top_of_swap_mem + theorem Equiv.Perm.sum_cycleType + theorem Equiv.Perm.swap_mul_swap_same_mem_closure_three_cycles + theorem Equiv.Perm.two_dvd_card_support + theorem Equiv.Perm.two_le_of_mem_cycleType + def Equiv.Perm.vectorsProdEqOne + theorem card_support_eq_three_iff + theorem exists_prime_addOrderOf_dvd_card + theorem exists_prime_orderOf_dvd_card Modified Mathlib/GroupTheory/Perm/Support.lean + theorem Equiv.Perm.Disjoint.conj + theorem Equiv.Perm.disjoint_conj 2023-04-05 09:08:10 7d522d3 feat: Port Computability.Ackermann (#2922) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Computability/Ackermann.lean + def ack + theorem ack_ack_lt_ack_max_add_two + theorem ack_add_one_sq_lt_ack_add_four + theorem ack_add_one_sq_lt_ack_add_three + theorem ack_inj_left + theorem ack_inj_right + theorem ack_injective_left + theorem ack_injective_right + theorem ack_le_ack + theorem ack_le_iff_left + theorem ack_le_iff_right + theorem ack_lt_iff_left + theorem ack_lt_iff_right + theorem ack_mono_left + theorem ack_mono_right + theorem ack_one + theorem ack_pair_lt + theorem ack_pos + theorem ack_strictMono_left + theorem ack_strictMono_right + theorem ack_succ_right_le_ack_succ_left + theorem ack_succ_succ + theorem ack_succ_zero + theorem ack_three + theorem ack_two + theorem ack_zero + theorem add_add_one_le_ack + theorem add_lt_ack + theorem exists_lt_ack_of_nat_primrec + theorem lt_ack_left + theorem lt_ack_right + theorem max_ack_left + theorem max_ack_right + theorem not_nat_primrec_ack_self + theorem not_primrec_ack_self + theorem not_primrec₂_ack + theorem one_lt_ack_succ_left + theorem one_lt_ack_succ_right 2023-04-05 08:46:48 2461fc6 feat: port Topology.Algebra.InfiniteSum.Module (#3272) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Topology/Algebra/InfiniteSum/Module.lean + theorem ContinuousLinearEquiv.tsum_eq_iff + theorem HasSum.smul_const + theorem Summable.smul_const + theorem tsum_smul_const 2023-04-05 08:46:47 9a8d2c4 feat: port Topology.Algebra.Algebra (#3271) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Topology/Algebra/Algebra.lean + def Algebra.elementalAlgebra + theorem Algebra.self_mem_elementalAlgebra + def Subalgebra.commRingTopologicalClosure + def Subalgebra.commSemiringTopologicalClosure + theorem Subalgebra.isClosed_topologicalClosure + theorem Subalgebra.le_topologicalClosure + def Subalgebra.topologicalClosure + theorem Subalgebra.topologicalClosure_coe + theorem Subalgebra.topologicalClosure_comap_homeomorph + theorem Subalgebra.topologicalClosure_minimal + def algebraMapClm + theorem algebraMapClm_coe + theorem algebraMapClm_toLinearMap + theorem continuousSMul_of_algebraMap + theorem continuous_algebraMap + theorem continuous_algebraMap_iff_smul Modified Mathlib/Topology/Algebra/Ring/Basic.lean 2023-04-05 08:46:46 0c99e2f feat: port Topology.Instances.RealVectorSpace (#3270) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Topology/Instances/RealVectorSpace.lean + def AddEquiv.toRealLinearEquiv + theorem AddMonoidHom.coe_toRealLinearMap + def AddMonoidHom.toRealLinearMap + theorem map_real_smul 2023-04-05 08:46:44 bdfb716 feat: port Order.Category.Preord (#3265) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Order/Category/PreordCat.lean + def PreordCat.Iso.mk + theorem PreordCat.coe_of + def PreordCat.dual + def PreordCat.dualEquiv + def PreordCat.of + def PreordCat + def preordCatToCat 2023-04-05 08:46:43 1bf712a feat: port RingTheory.Ideal.QuotientOperations (#2757) "timeouts at whnf"s that I do not know what to do with. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/RingTheory/Ideal/QuotientOperations.lean + theorem DoubleQuot.ker_quotLeftToQuotSup + theorem DoubleQuot.ker_quotQuotMk + def DoubleQuot.liftSupQuotQuotMk + def DoubleQuot.quotLeftToQuotSup + def DoubleQuot.quotQuotEquivComm + theorem DoubleQuot.quotQuotEquivComm_algebraMap + theorem DoubleQuot.quotQuotEquivComm_comp_quotQuotMk + theorem DoubleQuot.quotQuotEquivComm_mk_mk + theorem DoubleQuot.quotQuotEquivComm_quotQuotMk + theorem DoubleQuot.quotQuotEquivComm_symm + def DoubleQuot.quotQuotEquivQuotOfLe + theorem DoubleQuot.quotQuotEquivQuotOfLe_comp_quotQuotMk + theorem DoubleQuot.quotQuotEquivQuotOfLe_quotQuotMk + theorem DoubleQuot.quotQuotEquivQuotOfLe_symm_comp_mk + theorem DoubleQuot.quotQuotEquivQuotOfLe_symm_mk + def DoubleQuot.quotQuotEquivQuotSup + theorem DoubleQuot.quotQuotEquivQuotSup_quotQuotMk + theorem DoubleQuot.quotQuotEquivQuotSup_quot_quot_algebraMap + theorem DoubleQuot.quotQuotEquivQuotSup_symm_quotQuotMk + def DoubleQuot.quotQuotMk + def DoubleQuot.quotQuotToQuotSup + theorem Ideal.KerLift.map_smul + theorem Ideal.Quotient.algHom_ext + theorem Ideal.Quotient.alg_map_eq + theorem Ideal.Quotient.algebraMap_eq + def Ideal.Quotient.liftₐ + theorem Ideal.Quotient.liftₐ_apply + theorem Ideal.Quotient.liftₐ_comp + theorem Ideal.Quotient.mk_algebraMap + theorem Ideal.Quotient.mk_comp_algebraMap + def Ideal.Quotient.mkₐ + theorem Ideal.Quotient.mkₐ_eq_mk + theorem Ideal.Quotient.mkₐ_ker + theorem Ideal.Quotient.mkₐ_surjective + theorem Ideal.Quotient.mkₐ_toRingHom + theorem Ideal.QuotientKerAlgEquivOfRightInverseSymm.apply + theorem Ideal.algebraMap_quotient_injective + theorem Ideal.bot_quotient_isMaximal_iff + theorem Ideal.comap_map_mk + theorem Ideal.comp_quotientMap_eq_of_comp_eq + def Ideal.kerLiftAlg + theorem Ideal.kerLiftAlg_injective + theorem Ideal.kerLiftAlg_mk + theorem Ideal.kerLiftAlg_toRingHom + theorem Ideal.ker_quotient_lift + theorem Ideal.map_mk_eq_bot_of_le + theorem Ideal.map_quotient_self + theorem Ideal.mem_quotient_iff_mem + theorem Ideal.mem_quotient_iff_mem_sup + theorem Ideal.mk_ker + def Ideal.quotientEquiv + def Ideal.quotientEquivAlg + def Ideal.quotientEquivAlgOfEq + theorem Ideal.quotientEquivAlgOfEq_mk + theorem Ideal.quotientEquivAlgOfEq_symm + theorem Ideal.quotientEquiv_mk + theorem Ideal.quotientEquiv_symm_mk + theorem Ideal.quotientKerAlgEquivOfRightInverse.apply + def Ideal.quotientKerAlgEquivOfRightInverse + def Ideal.quotientMap + theorem Ideal.quotientMap_algebraMap + theorem Ideal.quotientMap_comp_mk + theorem Ideal.quotientMap_injective' + theorem Ideal.quotientMap_injective + theorem Ideal.quotientMap_mk + theorem Ideal.quotientMap_surjective + def Ideal.quotientMapₐ + theorem Ideal.quotient_map_comp_mkₐ + theorem Ideal.quotient_map_mkₐ + def RingHom.kerLift + theorem RingHom.kerLift_injective + theorem RingHom.kerLift_mk + theorem RingHom.lift_injective_of_ker_le_ideal + theorem RingHom.quotientKerEquivOfRightInverse.Symm.apply + theorem RingHom.quotientKerEquivOfRightInverse.apply + def RingHom.quotientKerEquivOfRightInverse 2023-04-05 08:35:49 9ce81ec feat: port Combinatorics.SimpleGraph.IncMatrix (#3274) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Combinatorics/SimpleGraph/IncMatrix.lean + theorem SimpleGraph.incMatrix_apply' + theorem SimpleGraph.incMatrix_apply + theorem SimpleGraph.incMatrix_apply_eq_one_iff + theorem SimpleGraph.incMatrix_apply_eq_zero_iff + theorem SimpleGraph.incMatrix_apply_mul_incMatrix_apply + theorem SimpleGraph.incMatrix_apply_mul_incMatrix_apply_of_not_adj + theorem SimpleGraph.incMatrix_mul_transpose + theorem SimpleGraph.incMatrix_mul_transpose_apply_of_adj + theorem SimpleGraph.incMatrix_mul_transpose_diag + theorem SimpleGraph.incMatrix_of_mem_incidenceSet + theorem SimpleGraph.incMatrix_of_not_mem_incidenceSet + theorem SimpleGraph.incMatrix_transpose_mul_diag + theorem SimpleGraph.sum_incMatrix_apply + theorem SimpleGraph.sum_incMatrix_apply_of_mem_edgeSet + theorem SimpleGraph.sum_incMatrix_apply_of_not_mem_edgeSet 2023-04-05 08:13:57 fd51554 feat: port Topology.Instances.TrivSqZeroExt (#3275) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Topology/Algebra/ConstMulAction.lean Modified Mathlib/Topology/Algebra/Group/Basic.lean Modified Mathlib/Topology/Algebra/Monoid.lean Modified Mathlib/Topology/Algebra/MulAction.lean Added Mathlib/Topology/Instances/TrivSqZeroExt.lean + theorem TrivSqZeroExt.continuous_inl + theorem TrivSqZeroExt.continuous_inr + theorem TrivSqZeroExt.embedding_inl + theorem TrivSqZeroExt.embedding_inr + def TrivSqZeroExt.fstClm + theorem TrivSqZeroExt.hasSum_fst + theorem TrivSqZeroExt.hasSum_inl + theorem TrivSqZeroExt.hasSum_inr + theorem TrivSqZeroExt.hasSum_snd + def TrivSqZeroExt.inlClm + def TrivSqZeroExt.inrClm + theorem TrivSqZeroExt.nhds_def + theorem TrivSqZeroExt.nhds_inl + theorem TrivSqZeroExt.nhds_inr + def TrivSqZeroExt.sndClm + theorem TrivSqZeroExt.topologicalSemiring Modified Mathlib/Topology/Separation.lean 2023-04-05 03:49:01 78dc0f9 feat: port CategoryTheory.Grothendieck (#3204) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Grothendieck.lean + structure CategoryTheory.Grothendieck.Hom + def CategoryTheory.Grothendieck.comp + theorem CategoryTheory.Grothendieck.congr + theorem CategoryTheory.Grothendieck.ext + def CategoryTheory.Grothendieck.forget + def CategoryTheory.Grothendieck.grothendieckTypeToCat + def CategoryTheory.Grothendieck.grothendieckTypeToCatFunctor + def CategoryTheory.Grothendieck.grothendieckTypeToCatInverse + def CategoryTheory.Grothendieck.id + theorem CategoryTheory.Grothendieck.id_fiber' + structure CategoryTheory.Grothendieck 2023-04-05 03:01:31 1084b88 feat: port CategoryTheory.Abelian.Basic (#2769) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Abelian/Basic.lean + def CategoryTheory.Abelian.BiproductToPushoutIsCokernel.isColimitBiproductToPushout + theorem CategoryTheory.Abelian.OfCoimageImageComparisonIsIso.hasImages + def CategoryTheory.Abelian.OfCoimageImageComparisonIsIso.imageFactorisation + def CategoryTheory.Abelian.OfCoimageImageComparisonIsIso.imageMonoFactorisation + theorem CategoryTheory.Abelian.OfCoimageImageComparisonIsIso.imageMonoFactorisation_e' + def CategoryTheory.Abelian.OfCoimageImageComparisonIsIso.normalEpiCategory + def CategoryTheory.Abelian.OfCoimageImageComparisonIsIso.normalMonoCategory + def CategoryTheory.Abelian.PullbackToBiproductIsKernel.isLimitPullbackToBiproduct + theorem CategoryTheory.Abelian.coimageIsoImage'_hom + def CategoryTheory.Abelian.coimageStrongEpiMonoFactorisation + theorem CategoryTheory.Abelian.comp_coimage_π_eq_zero + theorem CategoryTheory.Abelian.comp_epiDesc + def CategoryTheory.Abelian.epiDesc + def CategoryTheory.Abelian.epiIsCokernelOfKernel + theorem CategoryTheory.Abelian.epi_fst_of_factor_thru_epi_mono_factorization + theorem CategoryTheory.Abelian.epi_fst_of_isLimit + theorem CategoryTheory.Abelian.epi_of_cokernel_π_eq_zero + theorem CategoryTheory.Abelian.epi_snd_of_isLimit + theorem CategoryTheory.Abelian.factorThruImage_comp_coimageIsoImage'_inv + theorem CategoryTheory.Abelian.hasFiniteBiproducts + theorem CategoryTheory.Abelian.imageIsoImage_hom_comp_image_ι + theorem CategoryTheory.Abelian.imageIsoImage_inv + def CategoryTheory.Abelian.imageStrongEpiMonoFactorisation + theorem CategoryTheory.Abelian.image_ι_comp_eq_zero + def CategoryTheory.Abelian.monoIsKernelOfCokernel + def CategoryTheory.Abelian.monoLift + theorem CategoryTheory.Abelian.monoLift_comp + theorem CategoryTheory.Abelian.mono_inl_of_factor_thru_epi_mono_factorization + theorem CategoryTheory.Abelian.mono_inl_of_isColimit + theorem CategoryTheory.Abelian.mono_inr_of_isColimit + theorem CategoryTheory.Abelian.mono_of_kernel_ι_eq_zero + def CategoryTheory.Abelian.nonPreadditiveAbelian + def CategoryTheory.Abelian.ofCoimageImageComparisonIsIso + def CategoryTheory.NonPreadditiveAbelian.abelian 2023-04-04 23:52:26 fd3a03d feat: add Mathlib.Tactic import (#3263) It's very convenient for teaching to have `import Mathlib.Tactic` analogous to mathlib3's `import tactic`. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Tactic.lean 2023-04-04 21:00:03 7647a76 Feat: Add computable rec for Option via rec_eq_recC pattern (#3255) Adds a computable recursor for `Option` ESTIMATED CHANGES Modified Mathlib/Data/Option/Basic.lean + def Option.recC.{u_1, + theorem Option.rec_eq_recC 2023-04-04 14:45:19 2dd4be1 feat: port Topology.Algebra.Module.Basic (#2983) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Topology/Algebra/ConstMulAction.lean + theorem isClosed_setOf_map_smul Added Mathlib/Topology/Algebra/Module/Basic.lean + def ContinuousLinearEquiv.Simps.apply + def ContinuousLinearEquiv.Simps.symm_apply + theorem ContinuousLinearEquiv.apply_symm_apply + def ContinuousLinearEquiv.arrowCongrEquiv + theorem ContinuousLinearEquiv.coe_apply + theorem ContinuousLinearEquiv.coe_coe + theorem ContinuousLinearEquiv.coe_comp_coe_symm + theorem ContinuousLinearEquiv.coe_funUnique + theorem ContinuousLinearEquiv.coe_funUnique_symm + theorem ContinuousLinearEquiv.coe_inj + theorem ContinuousLinearEquiv.coe_injective + theorem ContinuousLinearEquiv.coe_prod + theorem ContinuousLinearEquiv.coe_refl' + theorem ContinuousLinearEquiv.coe_refl + theorem ContinuousLinearEquiv.coe_symm_comp_coe + theorem ContinuousLinearEquiv.coe_toHomeomorph + theorem ContinuousLinearEquiv.coe_toLinearEquiv + theorem ContinuousLinearEquiv.comp_coe + theorem ContinuousLinearEquiv.comp_continuousOn_iff + theorem ContinuousLinearEquiv.comp_continuous_iff + theorem ContinuousLinearEquiv.eq_symm_apply + def ContinuousLinearEquiv.equivOfInverse + theorem ContinuousLinearEquiv.equivOfInverse_apply + def ContinuousLinearEquiv.equivOfRightInverse + theorem ContinuousLinearEquiv.equivOfRightInverse_symm_apply + theorem ContinuousLinearEquiv.ext + theorem ContinuousLinearEquiv.ext₁ + def ContinuousLinearEquiv.finTwoArrow + theorem ContinuousLinearEquiv.fst_equivOfRightInverse + def ContinuousLinearEquiv.funUnique + theorem ContinuousLinearEquiv.image_closure + theorem ContinuousLinearEquiv.image_symm_image + theorem ContinuousLinearEquiv.isClosed_image + theorem ContinuousLinearEquiv.map_add + theorem ContinuousLinearEquiv.map_eq_zero_iff + theorem ContinuousLinearEquiv.map_neg + theorem ContinuousLinearEquiv.map_nhds_eq + theorem ContinuousLinearEquiv.map_smul + theorem ContinuousLinearEquiv.map_smulₛₗ + theorem ContinuousLinearEquiv.map_sub + theorem ContinuousLinearEquiv.map_zero + def ContinuousLinearEquiv.ofUnit + def ContinuousLinearEquiv.piFinTwo + theorem ContinuousLinearEquiv.preimage_closure + def ContinuousLinearEquiv.prod + theorem ContinuousLinearEquiv.prod_apply + theorem ContinuousLinearEquiv.prod_symm + theorem ContinuousLinearEquiv.refl_symm + theorem ContinuousLinearEquiv.self_comp_symm + def ContinuousLinearEquiv.skewProd + theorem ContinuousLinearEquiv.skewProd_apply + theorem ContinuousLinearEquiv.skewProd_symm_apply + theorem ContinuousLinearEquiv.snd_equivOfRightInverse + theorem ContinuousLinearEquiv.symm_apply_apply + theorem ContinuousLinearEquiv.symm_apply_eq + theorem ContinuousLinearEquiv.symm_comp_self + theorem ContinuousLinearEquiv.symm_equivOfInverse + theorem ContinuousLinearEquiv.symm_image_image + theorem ContinuousLinearEquiv.symm_map_nhds_eq + theorem ContinuousLinearEquiv.symm_symm + theorem ContinuousLinearEquiv.symm_symm_apply + theorem ContinuousLinearEquiv.symm_toHomeomorph + theorem ContinuousLinearEquiv.symm_toLinearEquiv + theorem ContinuousLinearEquiv.symm_trans_apply + def ContinuousLinearEquiv.toContinuousLinearMap + def ContinuousLinearEquiv.toHomeomorph + theorem ContinuousLinearEquiv.toLinearEquiv_injective + def ContinuousLinearEquiv.toUnit + theorem ContinuousLinearEquiv.trans_apply + theorem ContinuousLinearEquiv.trans_toLinearEquiv + def ContinuousLinearEquiv.ulift + def ContinuousLinearEquiv.unitsEquiv + def ContinuousLinearEquiv.unitsEquivAut + theorem ContinuousLinearEquiv.unitsEquivAut_apply + theorem ContinuousLinearEquiv.unitsEquivAut_apply_symm + theorem ContinuousLinearEquiv.unitsEquivAut_symm_apply + theorem ContinuousLinearEquiv.unitsEquiv_apply + structure ContinuousLinearEquiv + def ContinuousLinearMap.Simps.apply + def ContinuousLinearMap.Simps.coe + theorem ContinuousLinearMap.add_apply + theorem ContinuousLinearMap.add_comp + theorem ContinuousLinearMap.closedComplemented_ker_of_rightInverse + def ContinuousLinearMap.codRestrict + theorem ContinuousLinearMap.coeFn_injective + def ContinuousLinearMap.coeLM + def ContinuousLinearMap.coeLMₛₗ + theorem ContinuousLinearMap.coe_add' + theorem ContinuousLinearMap.coe_add + theorem ContinuousLinearMap.coe_codRestrict + theorem ContinuousLinearMap.coe_codRestrict_apply + theorem ContinuousLinearMap.coe_coe + theorem ContinuousLinearMap.coe_comp' + theorem ContinuousLinearMap.coe_comp + theorem ContinuousLinearMap.coe_coprod + theorem ContinuousLinearMap.coe_copy + theorem ContinuousLinearMap.coe_eq_id + theorem ContinuousLinearMap.coe_fst' + theorem ContinuousLinearMap.coe_fst + theorem ContinuousLinearMap.coe_id' + theorem ContinuousLinearMap.coe_id + theorem ContinuousLinearMap.coe_inj + theorem ContinuousLinearMap.coe_injective + theorem ContinuousLinearMap.coe_inl + theorem ContinuousLinearMap.coe_inr + theorem ContinuousLinearMap.coe_mk' + theorem ContinuousLinearMap.coe_mk + theorem ContinuousLinearMap.coe_mul + theorem ContinuousLinearMap.coe_neg' + theorem ContinuousLinearMap.coe_neg + theorem ContinuousLinearMap.coe_pi' + theorem ContinuousLinearMap.coe_pi + theorem ContinuousLinearMap.coe_prod + theorem ContinuousLinearMap.coe_prodMap + theorem ContinuousLinearMap.coe_prod_map + theorem ContinuousLinearMap.coe_projKerOfRightInverse_apply + theorem ContinuousLinearMap.coe_restrictScalars' + theorem ContinuousLinearMap.coe_restrictScalars + theorem ContinuousLinearMap.coe_restrictScalarsₗ + theorem ContinuousLinearMap.coe_smul' + theorem ContinuousLinearMap.coe_smul + theorem ContinuousLinearMap.coe_smulRightₗ + theorem ContinuousLinearMap.coe_snd' + theorem ContinuousLinearMap.coe_snd + theorem ContinuousLinearMap.coe_sub' + theorem ContinuousLinearMap.coe_sub + theorem ContinuousLinearMap.coe_sum' + theorem ContinuousLinearMap.coe_sum + theorem ContinuousLinearMap.coe_zero' + theorem ContinuousLinearMap.coe_zero + def ContinuousLinearMap.comp + theorem ContinuousLinearMap.comp_add + theorem ContinuousLinearMap.comp_apply + theorem ContinuousLinearMap.comp_assoc + theorem ContinuousLinearMap.comp_id + theorem ContinuousLinearMap.comp_neg + theorem ContinuousLinearMap.comp_smul + theorem ContinuousLinearMap.comp_smulₛₗ + theorem ContinuousLinearMap.comp_sub + theorem ContinuousLinearMap.comp_zero + def ContinuousLinearMap.coprod + theorem ContinuousLinearMap.coprod_apply + theorem ContinuousLinearMap.copy_eq + theorem ContinuousLinearMap.default_def + theorem ContinuousLinearMap.eqOn_closure_span + theorem ContinuousLinearMap.exists_ne_zero + theorem ContinuousLinearMap.ext + theorem ContinuousLinearMap.ext_iff + theorem ContinuousLinearMap.ext_on + theorem ContinuousLinearMap.ext_ring + theorem ContinuousLinearMap.ext_ring_iff + def ContinuousLinearMap.fst + theorem ContinuousLinearMap.fst_comp_prod + theorem ContinuousLinearMap.fst_prod_snd + def ContinuousLinearMap.id + theorem ContinuousLinearMap.id_apply + theorem ContinuousLinearMap.id_comp + def ContinuousLinearMap.infᵢKerProjEquiv + theorem ContinuousLinearMap.infᵢ_ker_proj + def ContinuousLinearMap.inl + theorem ContinuousLinearMap.inl_apply + def ContinuousLinearMap.inr + theorem ContinuousLinearMap.inr_apply + theorem ContinuousLinearMap.inverse_equiv + theorem ContinuousLinearMap.inverse_non_equiv + theorem ContinuousLinearMap.isClosed_ker + theorem ContinuousLinearMap.isComplete_ker + theorem ContinuousLinearMap.ker_codRestrict + theorem ContinuousLinearMap.ker_coprod_of_disjoint_range + theorem ContinuousLinearMap.ker_prod + theorem ContinuousLinearMap.ker_prod_ker_le_ker_coprod + theorem ContinuousLinearMap.map_smul_of_tower + theorem ContinuousLinearMap.mul_apply + theorem ContinuousLinearMap.mul_def + theorem ContinuousLinearMap.neg_apply + theorem ContinuousLinearMap.neg_comp + theorem ContinuousLinearMap.one_apply + theorem ContinuousLinearMap.one_def + def ContinuousLinearMap.pi + theorem ContinuousLinearMap.pi_apply + theorem ContinuousLinearMap.pi_comp + theorem ContinuousLinearMap.pi_eq_zero + theorem ContinuousLinearMap.pi_zero + def ContinuousLinearMap.prodEquiv + def ContinuousLinearMap.prodMap + theorem ContinuousLinearMap.prod_apply + theorem ContinuousLinearMap.prod_ext + theorem ContinuousLinearMap.prod_ext_iff + def ContinuousLinearMap.prodₗ + def ContinuousLinearMap.proj + def ContinuousLinearMap.projKerOfRightInverse + theorem ContinuousLinearMap.projKerOfRightInverse_apply_idem + theorem ContinuousLinearMap.projKerOfRightInverse_comp_inv + theorem ContinuousLinearMap.proj_apply + theorem ContinuousLinearMap.proj_pi + theorem ContinuousLinearMap.range_coprod + theorem ContinuousLinearMap.range_prod_eq + def ContinuousLinearMap.restrictScalars + theorem ContinuousLinearMap.restrictScalars_add + theorem ContinuousLinearMap.restrictScalars_neg + theorem ContinuousLinearMap.restrictScalars_smul + theorem ContinuousLinearMap.restrictScalars_zero + def ContinuousLinearMap.restrictScalarsₗ + theorem ContinuousLinearMap.ring_inverse_eq_map_inverse + theorem ContinuousLinearMap.ring_inverse_equiv + def ContinuousLinearMap.smulRight + theorem ContinuousLinearMap.smulRight_apply + theorem ContinuousLinearMap.smulRight_comp + theorem ContinuousLinearMap.smulRight_one_eq_iff + theorem ContinuousLinearMap.smulRight_one_one + theorem ContinuousLinearMap.smulRight_one_pow + def ContinuousLinearMap.smulRightₗ + theorem ContinuousLinearMap.smul_apply + theorem ContinuousLinearMap.smul_comp + def ContinuousLinearMap.snd + theorem ContinuousLinearMap.snd_comp_prod + theorem ContinuousLinearMap.sub_apply' + theorem ContinuousLinearMap.sub_apply + theorem ContinuousLinearMap.sub_comp + theorem ContinuousLinearMap.sum_apply + def ContinuousLinearMap.toLinearMapRingHom + theorem ContinuousLinearMap.to_ring_inverse + theorem ContinuousLinearMap.zero_apply + theorem ContinuousLinearMap.zero_comp + structure ContinuousLinearMap + theorem ContinuousSMul.of_nhds_zero + theorem DenseRange.topologicalClosure_map_submodule + theorem IsClosed.submodule_topologicalClosure_eq + theorem LinearMap.continuous_on_pi + theorem LinearMap.isClosed_range_coe + theorem Module.punctured_nhds_neBot + theorem Submodule.ClosedComplemented.has_closed_complement + def Submodule.ClosedComplemented + theorem Submodule.closedComplemented_bot + theorem Submodule.closedComplemented_top + theorem Submodule.coe_subtypeL' + theorem Submodule.coe_subtypeL + theorem Submodule.dense_iff_topologicalClosure_eq_top + theorem Submodule.eq_top_of_nonempty_interior' + theorem Submodule.isClosed_or_dense_of_isCoatom + theorem Submodule.isClosed_topologicalClosure + theorem Submodule.isOpenMap_mkQ + theorem Submodule.ker_subtypeL + theorem Submodule.le_topologicalClosure + theorem Submodule.mapsTo_smul_closure + theorem Submodule.range_subtypeL + theorem Submodule.smul_closure_subset + def Submodule.subtypeL + theorem Submodule.subtypeL_apply + def Submodule.topologicalClosure + theorem Submodule.topologicalClosure_coe + theorem Submodule.topologicalClosure_map + theorem Submodule.topologicalClosure_minimal + theorem Submodule.topologicalClosure_mono + theorem continuousSMul_induced + def linearMapOfMemClosureRangeCoe + def linearMapOfTendsto 2023-04-04 13:30:21 56c1ca9 feat: port LinearAlgebra.Isomorphisms (#2364) This is currently stuck on an issue described in [this Zulip thread](https://leanprover.zulipchat.com/#narrow/stream/270676-lean4/topic/Another.20type.20class.20search.20issue). ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/LinearAlgebra/Isomorphisms.lean + theorem LinearMap.asFun_coe + theorem LinearMap.coe_quotientInfToSupQuotient + theorem LinearMap.comap_leq_ker_subToSupQuotient + theorem LinearMap.quotKerEquivRange_apply_mk + theorem LinearMap.quotKerEquivRange_symm_apply_image + theorem LinearMap.quotientInfEquivSupQuotient_apply_mk + theorem LinearMap.quotientInfEquivSupQuotient_injective + theorem LinearMap.quotientInfEquivSupQuotient_surjective + theorem LinearMap.quotientInfEquivSupQuotient_symm_apply_eq_zero_iff + theorem LinearMap.quotientInfEquivSupQuotient_symm_apply_left + theorem LinearMap.quotientInfEquivSupQuotient_symm_apply_right + def LinearMap.quotientInfToSupQuotient + def LinearMap.subToSupQuotient + theorem Submodule.card_quotient_mul_card_quotient + def Submodule.quotientQuotientEquivQuotient + def Submodule.quotientQuotientEquivQuotientAux + theorem Submodule.quotientQuotientEquivQuotientAux_mk + theorem Submodule.quotientQuotientEquivQuotientAux_mk_mk 2023-04-04 13:14:06 d75ac72 feat: port LinearAlgebra.Matrix.Orthogonal (#3235) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/LinearAlgebra/Matrix/Orthogonal.lean + theorem Matrix.HasOrthogonalCols.hasOrthogonalRows + theorem Matrix.HasOrthogonalCols.transpose_hasOrthogonalRows + def Matrix.HasOrthogonalCols + theorem Matrix.HasOrthogonalRows.hasOrthogonalCols + theorem Matrix.HasOrthogonalRows.transpose_hasOrthogonalCols + def Matrix.HasOrthogonalRows + theorem Matrix.transpose_hasOrthogonalCols_iff_hasOrthogonalRows + theorem Matrix.transpose_hasOrthogonalRows_iff_hasOrthogonalCols 2023-04-04 13:03:06 e25fc65 feat: port Data.Matrix.Basis (#3243) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Data/Matrix/Basis.lean + theorem Matrix.StdBasisMatrix.apply_of_col_ne + theorem Matrix.StdBasisMatrix.apply_of_ne + theorem Matrix.StdBasisMatrix.apply_of_row_ne + theorem Matrix.StdBasisMatrix.apply_same + theorem Matrix.StdBasisMatrix.diag_same + theorem Matrix.StdBasisMatrix.diag_zero + theorem Matrix.StdBasisMatrix.mul_left_apply_of_ne + theorem Matrix.StdBasisMatrix.mul_left_apply_same + theorem Matrix.StdBasisMatrix.mul_of_ne + theorem Matrix.StdBasisMatrix.mul_right_apply_of_ne + theorem Matrix.StdBasisMatrix.mul_right_apply_same + theorem Matrix.StdBasisMatrix.mul_same + theorem Matrix.StdBasisMatrix.trace_eq + theorem Matrix.StdBasisMatrix.trace_zero + theorem Matrix.matrix_eq_sum_std_basis + theorem Matrix.smul_stdBasisMatrix + def Matrix.stdBasisMatrix + theorem Matrix.stdBasisMatrix_add + theorem Matrix.stdBasisMatrix_zero + theorem Matrix.std_basis_eq_basis_mul_basis 2023-04-04 12:51:16 4b272b5 feat: port Data.MvPolynomial.Expand (#3261) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Data/MvPolynomial/Expand.lean + theorem MvPolynomial.expand_C + theorem MvPolynomial.expand_X + theorem MvPolynomial.expand_bind₁ + theorem MvPolynomial.expand_comp_bind₁ + theorem MvPolynomial.expand_monomial + theorem MvPolynomial.expand_one + theorem MvPolynomial.expand_one_apply + theorem MvPolynomial.map_expand + theorem MvPolynomial.rename_comp_expand + theorem MvPolynomial.rename_expand 2023-04-04 12:51:14 ecb79e4 feat: port LinearAlgebra.Matrix.Symmetric (#3258) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/LinearAlgebra/Matrix/Symmetric.lean + theorem Matrix.IsSymm.add + theorem Matrix.IsSymm.apply + theorem Matrix.IsSymm.conjTranspose + theorem Matrix.IsSymm.eq + theorem Matrix.IsSymm.ext + theorem Matrix.IsSymm.ext_iff + theorem Matrix.IsSymm.fromBlocks + theorem Matrix.IsSymm.map + theorem Matrix.IsSymm.neg + theorem Matrix.IsSymm.smul + theorem Matrix.IsSymm.sub + theorem Matrix.IsSymm.submatrix + theorem Matrix.IsSymm.transpose + def Matrix.IsSymm + theorem Matrix.isSymm_add_transpose_self + theorem Matrix.isSymm_diagonal + theorem Matrix.isSymm_fromBlocks_iff + theorem Matrix.isSymm_mul_transpose_self + theorem Matrix.isSymm_one + theorem Matrix.isSymm_transpose_add_self + theorem Matrix.isSymm_transpose_mul_self + theorem Matrix.isSymm_zero 2023-04-04 12:51:13 f6c95f5 feat: port RingTheory.ZMod (#3257) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Squarefree.lean + theorem Int.squarefree_coe_nat + theorem Int.squarefree_natAbs Modified Mathlib/Data/Int/Basic.lean + theorem Int.natAbs_surjective Added Mathlib/RingTheory/ZMod.lean + theorem isReduced_zmod 2023-04-04 12:51:12 544bdac feat: port RingTheory.ReesAlgebra (#3252) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/RingTheory/ReesAlgebra.lean + theorem adjoin_monomial_eq_reesAlgebra + theorem mem_reesAlgebra_iff + theorem mem_reesAlgebra_iff_support + theorem monomial_mem_adjoin_monomial + theorem reesAlgebra.fg + theorem reesAlgebra.monomial_mem + def reesAlgebra 2023-04-04 12:51:11 dc86cda feat: port Data.Matrix.CharP (#3250) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Data/Matrix/CharP.lean 2023-04-04 12:40:33 52e7469 feat: port Topology.UniformSpace.Matrix (#3262) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Topology/UniformSpace/Matrix.lean + theorem Matrix.uniformContinuous + theorem Matrix.uniformity 2023-04-04 01:03:23 3ec9411 feat: port Data.MvPolynomial.Monad (#2887) - [x] depends on: #2861 - [x] depends on: #2886 ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Data/MvPolynomial/Monad.lean + theorem MvPolynomial.aeval_bind₁ + theorem MvPolynomial.aeval_bind₂ + theorem MvPolynomial.aeval_comp_bind₁ + theorem MvPolynomial.aeval_eq_bind₁ + theorem MvPolynomial.aeval_id_eq_join₁ + theorem MvPolynomial.aeval_id_rename + def MvPolynomial.bind₁ + theorem MvPolynomial.bind₁_C_right + theorem MvPolynomial.bind₁_X_left + theorem MvPolynomial.bind₁_X_right + theorem MvPolynomial.bind₁_bind₁ + theorem MvPolynomial.bind₁_comp_bind₁ + theorem MvPolynomial.bind₁_comp_rename + theorem MvPolynomial.bind₁_id + theorem MvPolynomial.bind₁_monomial + theorem MvPolynomial.bind₁_rename + def MvPolynomial.bind₂ + theorem MvPolynomial.bind₂_C_left + theorem MvPolynomial.bind₂_C_right + theorem MvPolynomial.bind₂_X_right + theorem MvPolynomial.bind₂_bind₂ + theorem MvPolynomial.bind₂_comp_C + theorem MvPolynomial.bind₂_comp_bind₂ + theorem MvPolynomial.bind₂_id + theorem MvPolynomial.bind₂_map + theorem MvPolynomial.bind₂_monomial + theorem MvPolynomial.bind₂_monomial_one + theorem MvPolynomial.eval₂Hom_C_eq_bind₁ + theorem MvPolynomial.eval₂Hom_C_id_eq_join₁ + theorem MvPolynomial.eval₂Hom_C_left + theorem MvPolynomial.eval₂Hom_bind₁ + theorem MvPolynomial.eval₂Hom_bind₂ + theorem MvPolynomial.eval₂Hom_comp_C + theorem MvPolynomial.eval₂Hom_comp_bind₂ + theorem MvPolynomial.eval₂Hom_eq_bind₂ + theorem MvPolynomial.eval₂Hom_id_X_eq_join₂ + theorem MvPolynomial.hom_bind₁ + def MvPolynomial.join₁ + theorem MvPolynomial.join₁_rename + def MvPolynomial.join₂ + theorem MvPolynomial.join₂_comp_map + theorem MvPolynomial.join₂_map + theorem MvPolynomial.map_bind₁ + theorem MvPolynomial.map_bind₂ + theorem MvPolynomial.map_comp_C + theorem MvPolynomial.mem_vars_bind₁ + theorem MvPolynomial.rename_bind₁ + theorem MvPolynomial.rename_comp_bind₁ + theorem MvPolynomial.vars_bind₁ 2023-04-03 20:29:41 f1aa471 feat: port RingTheory.FiniteType (#3241) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/RingTheory/FiniteType.lean + theorem AddMonoidAlgebra.exists_finset_adjoin_eq_top + theorem AddMonoidAlgebra.fg_of_finiteType + theorem AddMonoidAlgebra.finiteType_iff_fg + theorem AddMonoidAlgebra.finiteType_iff_group_fg + theorem AddMonoidAlgebra.mem_adjoin_support + theorem AddMonoidAlgebra.mem_closure_of_mem_span_closure + theorem AddMonoidAlgebra.mvPolynomial_aeval_of_surjective_of_closure + theorem AddMonoidAlgebra.of'_mem_span + theorem AddMonoidAlgebra.support_gen_of_gen' + theorem AddMonoidAlgebra.support_gen_of_gen + theorem AlgHom.Finite.finiteType + theorem AlgHom.FiniteType.comp + theorem AlgHom.FiniteType.comp_surjective + theorem AlgHom.FiniteType.id + theorem AlgHom.FiniteType.of_comp_finiteType + theorem AlgHom.FiniteType.of_surjective + def AlgHom.FiniteType + theorem Algebra.FiniteType.equiv + theorem Algebra.FiniteType.iff_quotient_mvPolynomial'' + theorem Algebra.FiniteType.iff_quotient_mvPolynomial' + theorem Algebra.FiniteType.iff_quotient_mvPolynomial + theorem Algebra.FiniteType.isNoetherianRing + theorem Algebra.FiniteType.of_restrictScalars_finiteType + theorem Algebra.FiniteType.of_surjective + theorem Algebra.FiniteType.self + theorem Algebra.FiniteType.trans + theorem Module.Finite.injective_of_surjective_endomorphism + theorem MonoidAlgebra.exists_finset_adjoin_eq_top + theorem MonoidAlgebra.fg_of_finiteType + theorem MonoidAlgebra.finiteType_iff_fg + theorem MonoidAlgebra.finiteType_iff_group_fg + theorem MonoidAlgebra.mem_adjoin_support + theorem MonoidAlgebra.mem_closure_of_mem_span_closure + theorem MonoidAlgebra.mvPolynomial_aeval_of_surjective_of_closure + theorem MonoidAlgebra.of_mem_span_of_iff + theorem MonoidAlgebra.support_gen_of_gen' + theorem MonoidAlgebra.support_gen_of_gen + theorem RingHom.Finite.finiteType + theorem RingHom.FiniteType.comp + theorem RingHom.FiniteType.comp_surjective + theorem RingHom.FiniteType.id + theorem RingHom.FiniteType.of_comp_finiteType + theorem RingHom.FiniteType.of_finite + theorem RingHom.FiniteType.of_surjective + def RingHom.FiniteType + theorem Subalgebra.fg_iff_finiteType + theorem modulePolynomialOfEndo.isScalarTower + def modulePolynomialOfEndo + theorem modulePolynomialOfEndo_smul_def 2023-04-03 15:27:52 f85368f feat Port/Computability.RegularExpressions (#2306) port of computability.regular_expressions The previous file defined `attribute [match_pattern] Mul.mul` but this is not allowed in Lean 4 ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Computability/RegularExpressions.lean + theorem RegularExpression.add_rmatch_iff + theorem RegularExpression.char_rmatch_iff + theorem RegularExpression.comp_def + def RegularExpression.deriv + theorem RegularExpression.deriv_add + theorem RegularExpression.deriv_char_of_ne + theorem RegularExpression.deriv_char_self + theorem RegularExpression.deriv_one + theorem RegularExpression.deriv_star + theorem RegularExpression.deriv_zero + def RegularExpression.map + theorem RegularExpression.map_id + theorem RegularExpression.map_map + def RegularExpression.matchEpsilon + def RegularExpression.matches' + theorem RegularExpression.matches'_add + theorem RegularExpression.matches'_char + theorem RegularExpression.matches'_epsilon + theorem RegularExpression.matches'_map + theorem RegularExpression.matches'_mul + theorem RegularExpression.matches'_pow + theorem RegularExpression.matches'_star + theorem RegularExpression.matches'_zero + theorem RegularExpression.mul_rmatch_iff + theorem RegularExpression.one_def + theorem RegularExpression.one_rmatch_iff + theorem RegularExpression.plus_def + def RegularExpression.rmatch + theorem RegularExpression.rmatch_iff_matches' + theorem RegularExpression.star_rmatch_iff + theorem RegularExpression.zero_def + theorem RegularExpression.zero_rmatch + inductive RegularExpression 2023-04-03 13:22:38 ab2cc87 feat: port Data.Matrix.Block (#3232) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Data/Matrix/Block.lean + def Matrix.IsTwoBlockDiagonal + def Matrix.blockDiag' + def Matrix.blockDiag'AddMonoidHom + theorem Matrix.blockDiag'_add + theorem Matrix.blockDiag'_apply + theorem Matrix.blockDiag'_blockDiagonal' + theorem Matrix.blockDiag'_conjTranspose + theorem Matrix.blockDiag'_diagonal + theorem Matrix.blockDiag'_map + theorem Matrix.blockDiag'_neg + theorem Matrix.blockDiag'_one + theorem Matrix.blockDiag'_smul + theorem Matrix.blockDiag'_sub + theorem Matrix.blockDiag'_transpose + theorem Matrix.blockDiag'_zero + def Matrix.blockDiag + def Matrix.blockDiagAddMonoidHom + theorem Matrix.blockDiag_add + theorem Matrix.blockDiag_apply + theorem Matrix.blockDiag_blockDiagonal + theorem Matrix.blockDiag_conjTranspose + theorem Matrix.blockDiag_diagonal + theorem Matrix.blockDiag_map + theorem Matrix.blockDiag_neg + theorem Matrix.blockDiag_one + theorem Matrix.blockDiag_smul + theorem Matrix.blockDiag_sub + theorem Matrix.blockDiag_transpose + theorem Matrix.blockDiag_zero + def Matrix.blockDiagonal' + def Matrix.blockDiagonal'AddMonoidHom + def Matrix.blockDiagonal'RingHom + theorem Matrix.blockDiagonal'_add + theorem Matrix.blockDiagonal'_apply' + theorem Matrix.blockDiagonal'_apply + theorem Matrix.blockDiagonal'_apply_eq + theorem Matrix.blockDiagonal'_apply_ne + theorem Matrix.blockDiagonal'_conjTranspose + theorem Matrix.blockDiagonal'_diagonal + theorem Matrix.blockDiagonal'_eq_blockDiagonal + theorem Matrix.blockDiagonal'_map + theorem Matrix.blockDiagonal'_mul + theorem Matrix.blockDiagonal'_neg + theorem Matrix.blockDiagonal'_one + theorem Matrix.blockDiagonal'_pow + theorem Matrix.blockDiagonal'_smul + theorem Matrix.blockDiagonal'_sub + theorem Matrix.blockDiagonal'_submatrix_eq_blockDiagonal + theorem Matrix.blockDiagonal'_transpose + theorem Matrix.blockDiagonal'_zero + def Matrix.blockDiagonal + def Matrix.blockDiagonalAddMonoidHom + def Matrix.blockDiagonalRingHom + theorem Matrix.blockDiagonal_add + theorem Matrix.blockDiagonal_apply' + theorem Matrix.blockDiagonal_apply + theorem Matrix.blockDiagonal_apply_eq + theorem Matrix.blockDiagonal_apply_ne + theorem Matrix.blockDiagonal_conjTranspose + theorem Matrix.blockDiagonal_diagonal + theorem Matrix.blockDiagonal_map + theorem Matrix.blockDiagonal_mul + theorem Matrix.blockDiagonal_neg + theorem Matrix.blockDiagonal_one + theorem Matrix.blockDiagonal_pow + theorem Matrix.blockDiagonal_smul + theorem Matrix.blockDiagonal_sub + theorem Matrix.blockDiagonal_transpose + theorem Matrix.blockDiagonal_zero + def Matrix.fromBlocks + theorem Matrix.fromBlocks_add + theorem Matrix.fromBlocks_apply₁₁ + theorem Matrix.fromBlocks_apply₁₂ + theorem Matrix.fromBlocks_apply₂₁ + theorem Matrix.fromBlocks_apply₂₂ + theorem Matrix.fromBlocks_conjTranspose + theorem Matrix.fromBlocks_diagonal + theorem Matrix.fromBlocks_map + theorem Matrix.fromBlocks_mulVec + theorem Matrix.fromBlocks_multiply + theorem Matrix.fromBlocks_neg + theorem Matrix.fromBlocks_one + theorem Matrix.fromBlocks_smul + theorem Matrix.fromBlocks_submatrix_sum_swap_left + theorem Matrix.fromBlocks_submatrix_sum_swap_right + theorem Matrix.fromBlocks_submatrix_sum_swap_sum_swap + theorem Matrix.fromBlocks_to_blocks + theorem Matrix.fromBlocks_transpose + def Matrix.toBlock + theorem Matrix.toBlock_apply + theorem Matrix.toBlock_diagonal_disjoint + theorem Matrix.toBlock_diagonal_self + theorem Matrix.toBlock_mul_eq_add + theorem Matrix.toBlock_mul_eq_mul + theorem Matrix.toBlock_one_disjoint + theorem Matrix.toBlock_one_self + def Matrix.toBlocks₁₁ + def Matrix.toBlocks₁₂ + def Matrix.toBlocks₂₁ + def Matrix.toBlocks₂₂ + def Matrix.toSquareBlock + def Matrix.toSquareBlockProp + theorem Matrix.toSquareBlockProp_def + theorem Matrix.toSquareBlock_def + theorem Matrix.to_blocks_from_blocks₁₁ + theorem Matrix.to_blocks_from_blocks₁₂ + theorem Matrix.to_blocks_from_blocks₂₁ + theorem Matrix.to_blocks_from_blocks₂₂ + theorem Matrix.vecMul_fromBlocks Modified Mathlib/Order/PropInstances.lean 2023-04-03 12:12:47 5d6642d feat: port Data.Finset.Interval (#2169) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Data/Finset/Basic.lean Added Mathlib/Data/Finset/Interval.lean + theorem Finset.Icc_eq_filter_powerset + theorem Finset.Icc_eq_image_powerset + theorem Finset.Ico_eq_filter_ssubsets + theorem Finset.Ico_eq_image_ssubsets + theorem Finset.Iic_eq_powerset + theorem Finset.Iio_eq_ssubsets + theorem Finset.Ioc_eq_filter_powerset + theorem Finset.Ioo_eq_filter_ssubsets + theorem Finset.card_Icc_finset + theorem Finset.card_Ico_finset + theorem Finset.card_Iic_finset + theorem Finset.card_Iio_finset + theorem Finset.card_Ioc_finset + theorem Finset.card_Ioo_finset 2023-04-03 11:59:13 e90bd52 feat: Port/Data.List.Intervals (#1479) feat: Port/data.list.intervals ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Data/List/Intervals.lean + theorem List.Ico.append_consecutive + theorem List.Ico.bagInter_consecutive + theorem List.Ico.chain'_succ + theorem List.Ico.eq_cons + theorem List.Ico.eq_empty_iff + theorem List.Ico.eq_nil_of_le + theorem List.Ico.filter_le + theorem List.Ico.filter_le_of_bot + theorem List.Ico.filter_le_of_le + theorem List.Ico.filter_le_of_le_bot + theorem List.Ico.filter_le_of_top_le + theorem List.Ico.filter_lt + theorem List.Ico.filter_lt_of_ge + theorem List.Ico.filter_lt_of_le_bot + theorem List.Ico.filter_lt_of_succ_bot + theorem List.Ico.filter_lt_of_top_le + theorem List.Ico.inter_consecutive + theorem List.Ico.length + theorem List.Ico.map_add + theorem List.Ico.map_sub + theorem List.Ico.mem + theorem List.Ico.nodup + theorem List.Ico.not_mem_top + theorem List.Ico.pairwise_lt + theorem List.Ico.pred_singleton + theorem List.Ico.self_empty + theorem List.Ico.succ_singleton + theorem List.Ico.succ_top + theorem List.Ico.trichotomy + theorem List.Ico.zero_bot + def List.Ico 2023-04-03 11:48:23 59e4a79 feat: port Logic.Hydra (#2290) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Data/Multiset/Basic.lean Modified Mathlib/Data/Multiset/Sections.lean Added Mathlib/Logic/Hydra.lean + theorem Acc.cutExpand + def Relation.CutExpand + theorem Relation.acc_of_singleton + theorem Relation.cutExpand_add_left + theorem Relation.cutExpand_fibration + theorem Relation.cutExpand_iff + theorem Relation.cutExpand_le_invImage_lex + theorem Relation.cutExpand_singleton + theorem Relation.cutExpand_singleton_singleton + theorem Relation.not_cutExpand_zero + theorem WellFounded.cutExpand 2023-04-03 11:03:07 dfd333b feat: port Data.Matrix.DualNumber (#3239) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Data/Matrix/DualNumber.lean + def Matrix.dualNumberEquiv 2023-04-03 10:24:07 f1dea49 feat: port Data.Matrix.Hadamard (#3238) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Data/Matrix/Hadamard.lean + theorem Matrix.add_hadamard + theorem Matrix.diagonal_hadamard_diagonal + theorem Matrix.dotProduct_vecMul_hadamard + def Matrix.hadamard + theorem Matrix.hadamard_add + theorem Matrix.hadamard_apply + theorem Matrix.hadamard_assoc + theorem Matrix.hadamard_comm + theorem Matrix.hadamard_one + theorem Matrix.hadamard_smul + theorem Matrix.hadamard_zero + theorem Matrix.one_hadamard + theorem Matrix.smul_hadamard + theorem Matrix.sum_hadamard_eq + theorem Matrix.zero_hadamard 2023-04-03 10:11:51 6b9016a feat: port Data.Fin.Tuple.Reflection (#3237) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Data/Fin/Tuple/Reflection.lean + def FinVec.Exists + def FinVec.Forall + def FinVec.etaExpand + theorem FinVec.etaExpand_eq + theorem FinVec.exists_iff + theorem FinVec.forall_iff + def FinVec.map + theorem FinVec.map_eq + def FinVec.seq + theorem FinVec.seq_eq + def FinVec.sum + theorem FinVec.sum_eq 2023-04-03 10:00:36 e00f1aa feat: port AlgebraicTopology.DoldKan.Compatibility (#3188) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/AlgebraicTopology/DoldKan/Compatibility.lean + def AlgebraicTopology.DoldKan.Compatibility.equivalence + theorem AlgebraicTopology.DoldKan.Compatibility.equivalence_functor + def AlgebraicTopology.DoldKan.Compatibility.equivalence₀ + def AlgebraicTopology.DoldKan.Compatibility.equivalence₁ + def AlgebraicTopology.DoldKan.Compatibility.equivalence₁CounitIso + theorem AlgebraicTopology.DoldKan.Compatibility.equivalence₁CounitIso_eq + def AlgebraicTopology.DoldKan.Compatibility.equivalence₁UnitIso + theorem AlgebraicTopology.DoldKan.Compatibility.equivalence₁UnitIso_eq + theorem AlgebraicTopology.DoldKan.Compatibility.equivalence₁_inverse + def AlgebraicTopology.DoldKan.Compatibility.equivalence₂ + def AlgebraicTopology.DoldKan.Compatibility.equivalence₂CounitIso + theorem AlgebraicTopology.DoldKan.Compatibility.equivalence₂CounitIso_eq + def AlgebraicTopology.DoldKan.Compatibility.equivalence₂UnitIso + theorem AlgebraicTopology.DoldKan.Compatibility.equivalence₂UnitIso_eq + theorem AlgebraicTopology.DoldKan.Compatibility.equivalence₂_inverse 2023-04-03 09:47:41 ee6812d feat: port CategoryTheory.Triangulated.Basic (#3046) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Triangulated/Basic.lean + def CategoryTheory.Pretriangulated.Triangle.homMk + theorem CategoryTheory.Pretriangulated.Triangle.hom_ext + def CategoryTheory.Pretriangulated.Triangle.isoMk + def CategoryTheory.Pretriangulated.Triangle.mk + structure CategoryTheory.Pretriangulated.Triangle + def CategoryTheory.Pretriangulated.TriangleMorphism.comp + structure CategoryTheory.Pretriangulated.TriangleMorphism + def CategoryTheory.Pretriangulated.contractibleTriangle + def CategoryTheory.Pretriangulated.triangleMorphismId 2023-04-03 09:35:33 7864109 feat: CI remove awaiting-CI label automatically (#3240) Simply a forward port of existing CI infrastructure ESTIMATED CHANGES Modified .github/workflows/bors.yml Modified .github/workflows/build.yml Modified .github/workflows/build.yml.in Modified .github/workflows/build_fork.yml 2023-04-03 00:49:03 9632377 feat: port CategoryTheory.Shift.Basic (#3039) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/CategoryTheory/Monoidal/Discrete.lean Added Mathlib/CategoryTheory/Shift/Basic.lean + theorem CategoryTheory.HasShift.shift_obj_obj + theorem CategoryTheory.ShiftMkCore.add_zero_inv_app + theorem CategoryTheory.ShiftMkCore.assoc_inv_app + theorem CategoryTheory.ShiftMkCore.shiftFunctorAdd_eq + theorem CategoryTheory.ShiftMkCore.shiftFunctorZero_eq + theorem CategoryTheory.ShiftMkCore.shiftFunctor_eq + theorem CategoryTheory.ShiftMkCore.zero_add_inv_app + structure CategoryTheory.ShiftMkCore + def CategoryTheory.hasShiftMk + def CategoryTheory.hasShiftOfFullyFaithful + def CategoryTheory.hasShiftOfFullyFaithful_add + def CategoryTheory.hasShiftOfFullyFaithful_zero + theorem CategoryTheory.map_hasShiftOfFullyFaithful_add_hom_app + theorem CategoryTheory.map_hasShiftOfFullyFaithful_add_inv_app + theorem CategoryTheory.map_hasShiftOfFullyFaithful_zero_hom_app + theorem CategoryTheory.map_hasShiftOfFullyFaithful_zero_inv_app + theorem CategoryTheory.shiftComm_hom_comp + theorem CategoryTheory.shiftComm_symm + def CategoryTheory.shiftEquiv' + def CategoryTheory.shiftFunctor + def CategoryTheory.shiftFunctorAdd' + theorem CategoryTheory.shiftFunctorAdd'_add_zero + theorem CategoryTheory.shiftFunctorAdd'_add_zero_hom_app + theorem CategoryTheory.shiftFunctorAdd'_add_zero_inv_app + theorem CategoryTheory.shiftFunctorAdd'_assoc + theorem CategoryTheory.shiftFunctorAdd'_assoc_hom_app + theorem CategoryTheory.shiftFunctorAdd'_assoc_inv_app + theorem CategoryTheory.shiftFunctorAdd'_eq_shiftFunctorAdd + theorem CategoryTheory.shiftFunctorAdd'_zero_add + theorem CategoryTheory.shiftFunctorAdd'_zero_add_hom_app + theorem CategoryTheory.shiftFunctorAdd'_zero_add_inv_app + def CategoryTheory.shiftFunctorAdd + theorem CategoryTheory.shiftFunctorAdd_add_zero_hom_app + theorem CategoryTheory.shiftFunctorAdd_add_zero_inv_app + theorem CategoryTheory.shiftFunctorAdd_assoc + theorem CategoryTheory.shiftFunctorAdd_assoc_hom_app + theorem CategoryTheory.shiftFunctorAdd_assoc_inv_app + theorem CategoryTheory.shiftFunctorAdd_zero_add_hom_app + theorem CategoryTheory.shiftFunctorAdd_zero_add_inv_app + def CategoryTheory.shiftFunctorComm + theorem CategoryTheory.shiftFunctorComm_eq + theorem CategoryTheory.shiftFunctorComm_hom_app_comp_shift_shiftFunctorAdd_hom_app + theorem CategoryTheory.shiftFunctorComm_symm + def CategoryTheory.shiftFunctorCompIsoId + def CategoryTheory.shiftFunctorZero + theorem CategoryTheory.shiftFunctorZero_hom_app_shift + theorem CategoryTheory.shiftFunctorZero_inv_app_shift + theorem CategoryTheory.shiftFunctor_inv + def CategoryTheory.shiftMonoidalFunctor + theorem CategoryTheory.shift_comm' + theorem CategoryTheory.shift_equiv_triangle + theorem CategoryTheory.shift_neg_shift' + theorem CategoryTheory.shift_shift' + theorem CategoryTheory.shift_shiftFunctorCompIsoId_add_neg_self_hom_app + theorem CategoryTheory.shift_shiftFunctorCompIsoId_add_neg_self_inv_app + theorem CategoryTheory.shift_shiftFunctorCompIsoId_hom_app + theorem CategoryTheory.shift_shiftFunctorCompIsoId_inv_app + theorem CategoryTheory.shift_shiftFunctorCompIsoId_neg_add_self_hom_app + theorem CategoryTheory.shift_shiftFunctorCompIsoId_neg_add_self_inv_app + theorem CategoryTheory.shift_shift_neg' + theorem CategoryTheory.shift_zero' + theorem CategoryTheory.shift_zero_eq_zero 2023-04-02 23:34:59 bb7d4c7 chore: tidy various files (#3233) ESTIMATED CHANGES Modified Mathlib/Analysis/Convex/Extreme.lean Modified Mathlib/CategoryTheory/Elements.lean +/- def CategoryTheory.CategoryOfElements.fromCostructuredArrow +/- def CategoryTheory.CategoryOfElements.fromStructuredArrow +/- def CategoryTheory.CategoryOfElements.toStructuredArrow Modified Mathlib/Data/Finset/Basic.lean Modified Mathlib/Data/MvPolynomial/Division.lean + theorem MvPolynomial.X_divMonomial + theorem MvPolynomial.X_dvd_X + theorem MvPolynomial.X_dvd_iff_modMonomial_eq_zero + theorem MvPolynomial.X_dvd_monomial + theorem MvPolynomial.X_mul_divMonomial + theorem MvPolynomial.X_mul_modMonomial + theorem MvPolynomial.modMonomial_X - theorem MvPolynomial.modMonomial_x + theorem MvPolynomial.mul_X_divMonomial + theorem MvPolynomial.mul_X_modMonomial - theorem MvPolynomial.mul_x_divMonomial - theorem MvPolynomial.mul_x_modMonomial - theorem MvPolynomial.x_divMonomial - theorem MvPolynomial.x_dvd_iff_modMonomial_eq_zero - theorem MvPolynomial.x_dvd_monomial - theorem MvPolynomial.x_dvd_x - theorem MvPolynomial.x_mul_divMonomial - theorem MvPolynomial.x_mul_modMonomial Modified Mathlib/Data/Nat/Factorization/Basic.lean Modified Mathlib/Data/Nat/Totient.lean - theorem Nat.card_units_zMod_lt_sub_one + theorem Nat.card_units_zmod_lt_sub_one Modified Mathlib/Data/Polynomial/FieldDivision.lean - theorem Polynomial.divByMonic_add_X_Sub_C_mul_derivate_divByMonic_eq_derivative + theorem Polynomial.divByMonic_add_X_sub_C_mul_derivate_divByMonic_eq_derivative +/- theorem Polynomial.map_div + theorem Polynomial.mod_X_sub_C_eq_C_eval - theorem Polynomial.mod_x_sub_c_eq_c_eval + theorem Polynomial.not_irreducible_C - theorem Polynomial.not_irreducible_c Modified Mathlib/Data/Polynomial/Mirror.lean Modified Mathlib/NumberTheory/LucasPrimality.lean Modified Mathlib/RingTheory/Polynomial/Vieta.lean Modified Mathlib/Topology/Algebra/Polynomial.lean 2023-04-02 23:34:58 1c65b42 feat: port LinearAlgebra.Matrix.Trace (#3231) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/LinearAlgebra/Matrix/Trace.lean + def Matrix.trace + def Matrix.traceAddMonoidHom + def Matrix.traceLinearMap + theorem Matrix.trace_add + theorem Matrix.trace_col_mul_row + theorem Matrix.trace_conjTranspose + theorem Matrix.trace_fin_one + theorem Matrix.trace_fin_three + theorem Matrix.trace_fin_two + theorem Matrix.trace_fin_zero + theorem Matrix.trace_list_sum + theorem Matrix.trace_mul_comm + theorem Matrix.trace_mul_cycle' + theorem Matrix.trace_mul_cycle + theorem Matrix.trace_multiset_sum + theorem Matrix.trace_neg + theorem Matrix.trace_one + theorem Matrix.trace_smul + theorem Matrix.trace_sub + theorem Matrix.trace_sum + theorem Matrix.trace_transpose + theorem Matrix.trace_transpose_mul + theorem Matrix.trace_zero 2023-04-02 23:34:57 ec578b0 fix: Tactic/FieldSimp at hypotheses (#3230) As reported by @AlexKontorovich https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/.60field_simp.60/near/346381872 ESTIMATED CHANGES Modified Mathlib/Tactic/FieldSimp.lean Modified test/FieldSimp.lean 2023-04-02 23:34:56 3c957e7 feat: port Combinatorics.Additive.Etransform (#3229) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Combinatorics/Additive/Etransform.lean + theorem Finset.mulDysonEtransform.card + theorem Finset.mulDysonEtransform.smul_finset_snd_subset_fst + theorem Finset.mulDysonEtransform.subset + def Finset.mulDysonEtransform + theorem Finset.mulDysonEtransform_idem + theorem Finset.mulEtransformLeft.card + theorem Finset.mulEtransformLeft.fst_mul_snd_subset + def Finset.mulEtransformLeft + theorem Finset.mulEtransformLeft_inv + theorem Finset.mulEtransformLeft_one + theorem Finset.mulEtransformRight.card + theorem Finset.mulEtransformRight.fst_mul_snd_subset + def Finset.mulEtransformRight + theorem Finset.mulEtransformRight_inv + theorem Finset.mulEtransformRight_one 2023-04-02 23:34:54 bd6d8bc feat: Cast of natural is measurable (#3226) Match https://github.com/leanprover-community/mathlib/pull/18676 ESTIMATED CHANGES Modified Mathlib/MeasureTheory/MeasurableSpace.lean + theorem measurable_intCast + theorem measurable_natCast 2023-04-02 23:34:53 7eee433 feat: port CategoryTheory.Sites.SheafOfTypes (#3223) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/CategoryTheory/Adjunction/Evaluation.lean Modified Mathlib/CategoryTheory/Limits/Constructions/FiniteProductsOfBinaryProducts.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Multiequalizer.lean Modified Mathlib/CategoryTheory/Limits/Shapes/Products.lean Added Mathlib/CategoryTheory/Sites/SheafOfTypes.lean + theorem CategoryTheory.Equalizer.FirstObj.ext + def CategoryTheory.Equalizer.FirstObj + def CategoryTheory.Equalizer.Presieve.SecondObj + theorem CategoryTheory.Equalizer.Presieve.compatible_iff + def CategoryTheory.Equalizer.Presieve.firstMap + def CategoryTheory.Equalizer.Presieve.secondMap + theorem CategoryTheory.Equalizer.Presieve.sheaf_condition + theorem CategoryTheory.Equalizer.Presieve.w + theorem CategoryTheory.Equalizer.Sieve.SecondObj.ext + def CategoryTheory.Equalizer.Sieve.SecondObj + theorem CategoryTheory.Equalizer.Sieve.compatible_iff + theorem CategoryTheory.Equalizer.Sieve.equalizer_sheaf_condition + def CategoryTheory.Equalizer.Sieve.firstMap + def CategoryTheory.Equalizer.Sieve.secondMap + theorem CategoryTheory.Equalizer.Sieve.w + def CategoryTheory.Equalizer.firstObjEqFamily + def CategoryTheory.Equalizer.forkMap + theorem CategoryTheory.Presieve.FamilyOfElements.Compatible.compPresheafMap + theorem CategoryTheory.Presieve.FamilyOfElements.Compatible.functorPullback + theorem CategoryTheory.Presieve.FamilyOfElements.Compatible.pullback + theorem CategoryTheory.Presieve.FamilyOfElements.Compatible.restrict + theorem CategoryTheory.Presieve.FamilyOfElements.Compatible.sieveExtend + theorem CategoryTheory.Presieve.FamilyOfElements.Compatible.to_sieveCompatible + def CategoryTheory.Presieve.FamilyOfElements.Compatible + theorem CategoryTheory.Presieve.FamilyOfElements.IsAmalgamation.compPresheafMap + def CategoryTheory.Presieve.FamilyOfElements.IsAmalgamation + def CategoryTheory.Presieve.FamilyOfElements.PullbackCompatible + def CategoryTheory.Presieve.FamilyOfElements.SieveCompatible + def CategoryTheory.Presieve.FamilyOfElements.compPresheafMap + theorem CategoryTheory.Presieve.FamilyOfElements.compPresheafMap_comp + theorem CategoryTheory.Presieve.FamilyOfElements.compPresheafMap_id + theorem CategoryTheory.Presieve.FamilyOfElements.comp_of_compatible + def CategoryTheory.Presieve.FamilyOfElements.functorPullback + def CategoryTheory.Presieve.FamilyOfElements.pullback + def CategoryTheory.Presieve.FamilyOfElements.restrict + def CategoryTheory.Presieve.FamilyOfElements + def CategoryTheory.Presieve.IsSeparated + theorem CategoryTheory.Presieve.IsSeparatedFor.ext + theorem CategoryTheory.Presieve.IsSeparatedFor.isSheafFor + def CategoryTheory.Presieve.IsSeparatedFor + theorem CategoryTheory.Presieve.IsSheaf.isSheafFor + def CategoryTheory.Presieve.IsSheaf + theorem CategoryTheory.Presieve.IsSheafFor.functorInclusion_comp_extend + theorem CategoryTheory.Presieve.IsSheafFor.hom_ext + theorem CategoryTheory.Presieve.IsSheafFor.isAmalgamation + theorem CategoryTheory.Presieve.IsSheafFor.isSeparatedFor + theorem CategoryTheory.Presieve.IsSheafFor.unique_extend + theorem CategoryTheory.Presieve.IsSheafFor.valid_glue + def CategoryTheory.Presieve.IsSheafFor + def CategoryTheory.Presieve.YonedaSheafCondition + theorem CategoryTheory.Presieve.compatible_iff_sieveCompatible + theorem CategoryTheory.Presieve.extend_agrees + theorem CategoryTheory.Presieve.extend_restrict + theorem CategoryTheory.Presieve.extension_iff_amalgamation + theorem CategoryTheory.Presieve.isAmalgamation_restrict + theorem CategoryTheory.Presieve.isAmalgamation_sieveExtend + theorem CategoryTheory.Presieve.isSeparatedFor_and_exists_isAmalgamation_iff_isSheafFor + theorem CategoryTheory.Presieve.isSeparatedFor_iff_generate + theorem CategoryTheory.Presieve.isSeparatedFor_top + theorem CategoryTheory.Presieve.isSeparated_of_isSheaf + theorem CategoryTheory.Presieve.isSheafFor_iff_generate + theorem CategoryTheory.Presieve.isSheafFor_iff_yonedaSheafCondition + theorem CategoryTheory.Presieve.isSheafFor_iso + theorem CategoryTheory.Presieve.isSheafFor_singleton_iso + theorem CategoryTheory.Presieve.isSheafFor_subsieve + theorem CategoryTheory.Presieve.isSheafFor_subsieve_aux + theorem CategoryTheory.Presieve.isSheafFor_top_sieve + theorem CategoryTheory.Presieve.isSheaf_bot + theorem CategoryTheory.Presieve.isSheaf_iso + theorem CategoryTheory.Presieve.isSheaf_of_le + theorem CategoryTheory.Presieve.isSheaf_of_yoneda + theorem CategoryTheory.Presieve.isSheaf_pretopology + theorem CategoryTheory.Presieve.is_compatible_of_exists_amalgamation + def CategoryTheory.Presieve.natTransEquivCompatibleFamily + theorem CategoryTheory.Presieve.pullbackCompatible_iff + theorem CategoryTheory.Presieve.restrict_extend + theorem CategoryTheory.Presieve.restrict_inj + structure CategoryTheory.SheafOfTypes.Hom + structure CategoryTheory.SheafOfTypes + def CategoryTheory.sheafOfTypesBotEquiv + def CategoryTheory.sheafOfTypesToPresheaf 2023-04-02 23:34:51 00fcb9a chore: fix casing in RingTheory.Polynomial.Basic (#3218) ESTIMATED CHANGES Modified Mathlib/RingTheory/Polynomial/Basic.lean + def Ideal.degreeLE - def Ideal.degreeLe + theorem Ideal.is_fg_degreeLE - theorem Ideal.is_fg_degreeLe + def Polynomial.degreeLE + theorem Polynomial.degreeLE_eq_span_X_pow + theorem Polynomial.degreeLE_mono + def Polynomial.degreeLT + def Polynomial.degreeLTEquiv + theorem Polynomial.degreeLTEquiv_eq_zero_iff_eq_zero + theorem Polynomial.degreeLT_eq_span_X_pow + theorem Polynomial.degreeLT_mono - def Polynomial.degreeLe - theorem Polynomial.degreeLe_eq_span_X_pow - theorem Polynomial.degreeLe_mono - def Polynomial.degreeLt - def Polynomial.degreeLtEquiv - theorem Polynomial.degreeLtEquiv_eq_zero_iff_eq_zero - theorem Polynomial.degreeLt_eq_span_X_pow - theorem Polynomial.degreeLt_mono + theorem Polynomial.eval_eq_sum_degreeLTEquiv - theorem Polynomial.eval_eq_sum_degreeLtEquiv + theorem Polynomial.mem_degreeLE + theorem Polynomial.mem_degreeLT - theorem Polynomial.mem_degreeLe - theorem Polynomial.mem_degreeLt 2023-04-02 23:34:50 ca72fc9 golf: Order.InitialSeg (#3212) Probably not worth backporting to Mathlib 3. ESTIMATED CHANGES Modified Mathlib/Order/InitialSeg.lean 2023-04-02 23:34:49 8882e05 chore: Golf `algebra.order.lattice_group` (#2478) Match https://github.com/leanprover-community/mathlib/pull/18046 ESTIMATED CHANGES Modified Mathlib/Algebra/Order/LatticeGroup.lean +/- theorem LatticeOrderedCommGroup.mabs_of_one_le +/- theorem LatticeOrderedCommGroup.neg_eq_one_iff' +/- theorem LatticeOrderedCommGroup.neg_of_le_one +/- theorem LatticeOrderedCommGroup.pos_eq_neg_inv +/- theorem LatticeOrderedCommGroup.pos_eq_one_iff + theorem inf_mul +/- theorem mul_inf +/- theorem mul_sup + theorem sup_mul 2023-04-02 21:59:02 3d5d140 chore: bump to nightly-2023-03-31 (#3216) ESTIMATED CHANGES Modified lean-toolchain 2023-04-02 17:01:26 8bc80c9 feat: some string functions, doc-strings, copyright headers (#3220) Some additional string functions I needed, and cleaning up a file that was created during prehistory. ESTIMATED CHANGES Modified Mathlib/Data/String/Defs.lean + def String.count + def String.stripPrefix + def String.stripSuffix Modified Mathlib/Data/String/Lemmas.lean 2023-04-02 17:01:22 5483442 feat: port Data.Matrix.Basic (#2960) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Data/Matrix/Basic.lean + def AddEquiv.mapMatrix + theorem AddEquiv.mapMatrix_refl + theorem AddEquiv.mapMatrix_symm + theorem AddEquiv.mapMatrix_trans + def AddMonoidHom.mapMatrix + theorem AddMonoidHom.mapMatrix_comp + theorem AddMonoidHom.mapMatrix_id + def AlgEquiv.mapMatrix + theorem AlgEquiv.mapMatrix_refl + theorem AlgEquiv.mapMatrix_symm + theorem AlgEquiv.mapMatrix_trans + def AlgHom.mapMatrix + theorem AlgHom.mapMatrix_comp + theorem AlgHom.mapMatrix_id + def Equiv.mapMatrix + theorem Equiv.mapMatrix_refl + theorem Equiv.mapMatrix_symm + theorem Equiv.mapMatrix_trans + theorem IsLeftRegular.matrix + theorem IsSMulRegular.matrix + def LinearEquiv.mapMatrix + theorem LinearEquiv.mapMatrix_refl + theorem LinearEquiv.mapMatrix_symm + theorem LinearEquiv.mapMatrix_trans + def LinearMap.mapMatrix + theorem LinearMap.mapMatrix_comp + theorem LinearMap.mapMatrix_id + def Matrix.addMonoidHomMulLeft + def Matrix.addMonoidHomMulRight + theorem Matrix.add_apply + theorem Matrix.add_dotProduct + theorem Matrix.add_mulVec + theorem Matrix.add_vecMul + theorem Matrix.algebraMap_eq_diagonal + theorem Matrix.algebraMap_eq_diagonalRingHom + theorem Matrix.algebraMap_eq_smul + theorem Matrix.algebraMap_matrix_apply + theorem Matrix.bit0_apply + theorem Matrix.bit1_apply + theorem Matrix.bit1_apply_eq + theorem Matrix.bit1_apply_ne + theorem Matrix.coe_scalar + def Matrix.col + theorem Matrix.col_add + theorem Matrix.col_apply + theorem Matrix.col_mulVec + theorem Matrix.col_smul + theorem Matrix.col_vecMul + def Matrix.conjTranspose + def Matrix.conjTransposeAddEquiv + theorem Matrix.conjTransposeAddEquiv_symm + def Matrix.conjTransposeLinearEquiv + theorem Matrix.conjTransposeLinearEquiv_symm + def Matrix.conjTransposeRingEquiv + theorem Matrix.conjTranspose_add + theorem Matrix.conjTranspose_apply + theorem Matrix.conjTranspose_col + theorem Matrix.conjTranspose_conjTranspose + theorem Matrix.conjTranspose_intCast_smul + theorem Matrix.conjTranspose_inv_intCast_smul + theorem Matrix.conjTranspose_inv_natCast_smul + theorem Matrix.conjTranspose_list_prod + theorem Matrix.conjTranspose_list_sum + theorem Matrix.conjTranspose_map + theorem Matrix.conjTranspose_mul + theorem Matrix.conjTranspose_multiset_sum + theorem Matrix.conjTranspose_natCast_smul + theorem Matrix.conjTranspose_neg + theorem Matrix.conjTranspose_nsmul + theorem Matrix.conjTranspose_one + theorem Matrix.conjTranspose_pow + theorem Matrix.conjTranspose_ratCast_smul + theorem Matrix.conjTranspose_rat_smul + theorem Matrix.conjTranspose_reindex + theorem Matrix.conjTranspose_row + theorem Matrix.conjTranspose_smul + theorem Matrix.conjTranspose_smul_non_comm + theorem Matrix.conjTranspose_smul_self + theorem Matrix.conjTranspose_sub + theorem Matrix.conjTranspose_submatrix + theorem Matrix.conjTranspose_sum + theorem Matrix.conjTranspose_zero + theorem Matrix.conjTranspose_zsmul + def Matrix.diag + def Matrix.diagAddMonoidHom + def Matrix.diagLinearMap + theorem Matrix.diag_add + theorem Matrix.diag_apply + theorem Matrix.diag_col_mul_row + theorem Matrix.diag_conjTranspose + theorem Matrix.diag_diagonal + theorem Matrix.diag_list_sum + theorem Matrix.diag_map + theorem Matrix.diag_multiset_sum + theorem Matrix.diag_neg + theorem Matrix.diag_one + theorem Matrix.diag_smul + theorem Matrix.diag_sub + theorem Matrix.diag_submatrix + theorem Matrix.diag_sum + theorem Matrix.diag_transpose + theorem Matrix.diag_zero + def Matrix.diagonal + def Matrix.diagonalAddMonoidHom + def Matrix.diagonalAlgHom + def Matrix.diagonalLinearMap + def Matrix.diagonalRingHom + theorem Matrix.diagonal_add + theorem Matrix.diagonal_apply + theorem Matrix.diagonal_apply_eq + theorem Matrix.diagonal_apply_ne' + theorem Matrix.diagonal_apply_ne + theorem Matrix.diagonal_conjTranspose + theorem Matrix.diagonal_dotProduct + theorem Matrix.diagonal_eq_diagonal_iff + theorem Matrix.diagonal_injective + theorem Matrix.diagonal_map + theorem Matrix.diagonal_mul + theorem Matrix.diagonal_mulVec_single + theorem Matrix.diagonal_mul_diagonal' + theorem Matrix.diagonal_mul_diagonal + theorem Matrix.diagonal_neg + theorem Matrix.diagonal_one + theorem Matrix.diagonal_pow + theorem Matrix.diagonal_smul + theorem Matrix.diagonal_transpose + theorem Matrix.diagonal_updateColumn_single + theorem Matrix.diagonal_updateRow_single + theorem Matrix.diagonal_zero + def Matrix.dotProduct + theorem Matrix.dotProduct_add + theorem Matrix.dotProduct_assoc + theorem Matrix.dotProduct_comm + theorem Matrix.dotProduct_diagonal' + theorem Matrix.dotProduct_diagonal + theorem Matrix.dotProduct_mulVec + theorem Matrix.dotProduct_neg + theorem Matrix.dotProduct_pUnit + theorem Matrix.dotProduct_single + theorem Matrix.dotProduct_smul + theorem Matrix.dotProduct_star + theorem Matrix.dotProduct_sub + theorem Matrix.dotProduct_zero' + theorem Matrix.dotProduct_zero + theorem Matrix.ext' + theorem Matrix.ext + theorem Matrix.ext_iff + def Matrix.map + theorem Matrix.map_algebraMap + theorem Matrix.map_apply + theorem Matrix.map_id + theorem Matrix.map_injective + theorem Matrix.map_map + theorem Matrix.map_mul + theorem Matrix.map_one + theorem Matrix.map_op_smul' + theorem Matrix.map_smul' + theorem Matrix.map_smul + theorem Matrix.map_updateColumn + theorem Matrix.map_updateRow + def Matrix.mulVec.addMonoidHomLeft + def Matrix.mulVec + theorem Matrix.mulVec_add + theorem Matrix.mulVec_conjTranspose + theorem Matrix.mulVec_diagonal + theorem Matrix.mulVec_mulVec + theorem Matrix.mulVec_neg + theorem Matrix.mulVec_single + theorem Matrix.mulVec_smul + theorem Matrix.mulVec_smul_assoc + theorem Matrix.mulVec_transpose + theorem Matrix.mulVec_vecMul + theorem Matrix.mulVec_zero + theorem Matrix.mul_apply' + theorem Matrix.mul_apply + theorem Matrix.mul_diagonal + theorem Matrix.mul_eq_mul + theorem Matrix.mul_mul_apply + theorem Matrix.mul_mul_left + theorem Matrix.mul_mul_right + theorem Matrix.mul_smul + theorem Matrix.mul_submatrix_one + theorem Matrix.neg_apply + theorem Matrix.neg_dotProduct + theorem Matrix.neg_mulVec + theorem Matrix.neg_of + theorem Matrix.neg_vecMul + def Matrix.of + theorem Matrix.of_add_of + theorem Matrix.of_apply + theorem Matrix.of_sub_of + theorem Matrix.of_symm_apply + theorem Matrix.of_zero + theorem Matrix.one_apply + theorem Matrix.one_apply_eq + theorem Matrix.one_apply_ne' + theorem Matrix.one_apply_ne + theorem Matrix.one_eq_pi_single + theorem Matrix.one_mulVec + theorem Matrix.one_submatrix_mul + def Matrix.reindex + theorem Matrix.reindex_apply + theorem Matrix.reindex_refl_refl + theorem Matrix.reindex_symm + theorem Matrix.reindex_trans + def Matrix.row + theorem Matrix.row_add + theorem Matrix.row_apply + theorem Matrix.row_mulVec + theorem Matrix.row_mul_col_apply + theorem Matrix.row_smul + theorem Matrix.row_vecMul + theorem Matrix.scalar.commute + def Matrix.scalar + theorem Matrix.scalar_apply_eq + theorem Matrix.scalar_apply_ne + theorem Matrix.scalar_inj + theorem Matrix.single_dotProduct + theorem Matrix.single_vecMul + theorem Matrix.single_vecMul_diagonal + theorem Matrix.smul_apply + theorem Matrix.smul_dotProduct + theorem Matrix.smul_eq_diagonal_mul + theorem Matrix.smul_eq_mul_diagonal + theorem Matrix.smul_mul + theorem Matrix.smul_mulVec_assoc + theorem Matrix.smul_of + theorem Matrix.star_apply + theorem Matrix.star_dotProduct + theorem Matrix.star_dotProduct_star + theorem Matrix.star_eq_conjTranspose + theorem Matrix.star_mul + theorem Matrix.star_mulVec + theorem Matrix.star_vecMul + def Matrix.subDown + def Matrix.subDownLeft + def Matrix.subDownRight + def Matrix.subLeft + def Matrix.subRight + def Matrix.subUp + def Matrix.subUpLeft + def Matrix.subUpRight + theorem Matrix.sub_apply + theorem Matrix.sub_dotProduct + theorem Matrix.sub_mulVec + def Matrix.submatrix + theorem Matrix.submatrix_add + theorem Matrix.submatrix_apply + theorem Matrix.submatrix_diagonal + theorem Matrix.submatrix_diagonal_embedding + theorem Matrix.submatrix_diagonal_equiv + theorem Matrix.submatrix_id_id + theorem Matrix.submatrix_map + theorem Matrix.submatrix_mul + theorem Matrix.submatrix_mul_equiv + theorem Matrix.submatrix_mul_transpose_submatrix + theorem Matrix.submatrix_neg + theorem Matrix.submatrix_one + theorem Matrix.submatrix_one_embedding + theorem Matrix.submatrix_one_equiv + theorem Matrix.submatrix_smul + theorem Matrix.submatrix_sub + theorem Matrix.submatrix_submatrix + theorem Matrix.submatrix_zero + theorem Matrix.sum_apply + theorem Matrix.sum_elim_dotProduct_sum_elim + def Matrix.transpose + def Matrix.transposeAddEquiv + theorem Matrix.transposeAddEquiv_symm + def Matrix.transposeAlgEquiv + def Matrix.transposeLinearEquiv + theorem Matrix.transposeLinearEquiv_symm + def Matrix.transposeRingEquiv + theorem Matrix.transpose_add + theorem Matrix.transpose_apply + theorem Matrix.transpose_col + theorem Matrix.transpose_list_prod + theorem Matrix.transpose_list_sum + theorem Matrix.transpose_map + theorem Matrix.transpose_mul + theorem Matrix.transpose_multiset_sum + theorem Matrix.transpose_neg + theorem Matrix.transpose_one + theorem Matrix.transpose_pow + theorem Matrix.transpose_reindex + theorem Matrix.transpose_row + theorem Matrix.transpose_smul + theorem Matrix.transpose_sub + theorem Matrix.transpose_submatrix + theorem Matrix.transpose_sum + theorem Matrix.transpose_transpose + theorem Matrix.transpose_zero + theorem Matrix.two_mul_expl + def Matrix.updateColumn + theorem Matrix.updateColumn_apply + theorem Matrix.updateColumn_conjTranspose + theorem Matrix.updateColumn_eq_self + theorem Matrix.updateColumn_ne + theorem Matrix.updateColumn_self + theorem Matrix.updateColumn_subsingleton + theorem Matrix.updateColumn_transpose + def Matrix.updateRow + theorem Matrix.updateRow_apply + theorem Matrix.updateRow_conjTranspose + theorem Matrix.updateRow_eq_self + theorem Matrix.updateRow_ne + theorem Matrix.updateRow_self + theorem Matrix.updateRow_subsingleton + theorem Matrix.updateRow_transpose + def Matrix.vecMul + def Matrix.vecMulVec + theorem Matrix.vecMulVec_apply + theorem Matrix.vecMulVec_eq + theorem Matrix.vecMul_add + theorem Matrix.vecMul_conjTranspose + theorem Matrix.vecMul_diagonal + theorem Matrix.vecMul_mulVec + theorem Matrix.vecMul_neg + theorem Matrix.vecMul_one + theorem Matrix.vecMul_smul + theorem Matrix.vecMul_sub + theorem Matrix.vecMul_transpose + theorem Matrix.vecMul_vecMul + theorem Matrix.vecMul_zero + theorem Matrix.zero_apply + theorem Matrix.zero_dotProduct' + theorem Matrix.zero_dotProduct + theorem Matrix.zero_mulVec + theorem Matrix.zero_vecMul + def Matrix + def RingEquiv.mapMatrix + theorem RingEquiv.mapMatrix_refl + theorem RingEquiv.mapMatrix_symm + theorem RingEquiv.mapMatrix_trans + def RingHom.mapMatrix + theorem RingHom.mapMatrix_comp + theorem RingHom.mapMatrix_id + theorem RingHom.map_dotProduct + theorem RingHom.map_matrix_mul + theorem RingHom.map_mulVec + theorem RingHom.map_vecMul Modified Mathlib/GroupTheory/GroupAction/Pi.lean 2023-04-02 16:48:03 c80a851 feat: port CategoryTheory.Monad.Kleisli (#3209) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Monad/Kleisli.lean + def CategoryTheory.Cokleisli.Adjunction.adj + def CategoryTheory.Cokleisli.Adjunction.fromCokleisli + def CategoryTheory.Cokleisli.Adjunction.toCokleisli + def CategoryTheory.Cokleisli.Adjunction.toCokleisliCompFromCokleisliIsoSelf + def CategoryTheory.Cokleisli + def CategoryTheory.Kleisli.Adjunction.adj + def CategoryTheory.Kleisli.Adjunction.fromKleisli + def CategoryTheory.Kleisli.Adjunction.toKleisli + def CategoryTheory.Kleisli.Adjunction.toKleisliCompFromKleisliIsoSelf + def CategoryTheory.Kleisli 2023-04-02 16:12:36 0ec696f feat: `a • t ⊆ s • t` (#3227) Match https://github.com/leanprover-community/mathlib/pull/18697 ESTIMATED CHANGES Modified Mathlib/Data/Finset/NAry.lean +/- theorem Finset.image_subset_image₂_right + theorem Finset.image₂_insert_left + theorem Finset.image₂_insert_right + theorem Finset.image₂_inter_union_subset_union + theorem Finset.image₂_subset_iff_left + theorem Finset.image₂_subset_iff_right + theorem Finset.image₂_union_inter_subset_union Modified Mathlib/Data/Finset/Pointwise.lean + theorem Finset.bunionᵢ_op_smul_finset + theorem Finset.inter_div_union_subset_union + theorem Finset.inter_mul_union_subset_union + theorem Finset.inter_smul_union_subset_union + theorem Finset.mul_subset_iff_left + theorem Finset.mul_subset_iff_right + theorem Finset.op_smul_finset_mul_eq_mul_smul_finset + theorem Finset.op_smul_finset_smul_eq_smul_smul_finset + theorem Finset.op_smul_finset_subset_mul - theorem Finset.smul_finset_mem_smul_finset + theorem Finset.smul_finset_subset_smul + theorem Finset.smul_mem_smul_finset + theorem Finset.union_div_inter_subset_union + theorem Finset.union_mul_inter_subset_union + theorem Finset.union_smul_inter_subset_union Modified Mathlib/Data/Set/NAry.lean + theorem Set.image2_insert_left + theorem Set.image2_insert_right + theorem Set.image2_inter_union_subset_union + theorem Set.image2_subset_iff_left + theorem Set.image2_subset_iff_right +/- theorem Set.image2_swap + theorem Set.image2_union_inter_subset_union Modified Mathlib/Data/Set/Pointwise/Basic.lean + theorem Set.inter_div_union_subset_union + theorem Set.inter_mul_union_subset_union + theorem Set.union_div_inter_subset_union + theorem Set.union_mul_inter_subset_union Modified Mathlib/Data/Set/Pointwise/SMul.lean + theorem Set.inter_smul_union_subset_union + theorem Set.inter_vsub_union_subset_union + theorem Set.mul_subset_iff_left + theorem Set.mul_subset_iff_right + theorem Set.op_smul_set_mul_eq_mul_smul_set + theorem Set.op_smul_set_smul_eq_smul_smul_set + theorem Set.op_smul_set_subset_mul + theorem Set.smul_set_subset_smul + theorem Set.union_smul_inter_subset_union + theorem Set.union_vsub_inter_subset_union +/- theorem Set.unionᵢ_op_smul_set 2023-04-02 14:13:16 445481f feat: port RingTheory.Adjoin.Tower (#3210) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/RingTheory/Adjoin/Tower.lean + theorem Algebra.adjoin_algebraMap + theorem Algebra.adjoin_res_eq_adjoin_res + theorem Algebra.adjoin_restrictScalars + theorem Algebra.fg_trans' + theorem exists_subalgebra_of_fg + theorem fg_of_fg_of_fg 2023-04-02 10:00:27 0107c50 chore: forward-port leanprover-community/mathlib#10255 (#3201) Proofs copied verbatim from mathport, no adjustments needed. ESTIMATED CHANGES Modified Mathlib/Data/Fin/Tuple/Basic.lean + theorem Fin.append_left_eq_cons + theorem Fin.append_right_eq_snoc 2023-04-02 10:00:26 2cea862 chore: forward port #18440 (#3183) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Comma.lean Modified Mathlib/CategoryTheory/StructuredArrow.lean 2023-04-02 09:47:20 fcca249 chore: forward-port leanprover-community/mathlib#18687 (#3202) This change was already applied in a previous forward-port in order to fix compilation. The porting note can now be removed, since mathlib3 now contains the same generalization. * [`algebra.star.self_adjoint`@`9abfa6f0727d5adc99067e325e15d1a9de17fd8e`..`a6ece35404f60597c651689c1b46ead86de5ac1b`](https://leanprover-community.github.io/mathlib-port-status/file/algebra/star/self_adjoint?range=9abfa6f0727d5adc99067e325e15d1a9de17fd8e..a6ece35404f60597c651689c1b46ead86de5ac1b) ESTIMATED CHANGES Modified Mathlib/Algebra/Star/SelfAdjoint.lean 2023-04-02 07:27:30 8945882 feat: factor out backtracking code from solve_by_elim (#2920) Following up from discussion on [zulip](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/.60mono.60.20changes.3F). No change in functionality, this is just a refactor. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Tactic/Backtracking.lean + def Except.emoji + def Lean.MVarId.firstContinuation + structure Mathlib.Tactic.BacktrackConfig + def Mathlib.Tactic.backtrack Modified Mathlib/Tactic/SolveByElim.lean - def Lean.MVarId.applyFirst +/- structure Mathlib.Tactic.SolveByElim.Config + def Mathlib.Tactic.SolveByElim.applyLemmas + def Mathlib.Tactic.SolveByElim.applyTactics - def exceptEmoji 2023-04-02 05:56:28 fee5099 fix: polynomial powers must be numerals (#3224) As [reported on Zulip](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/Bug.20in.20.60polyrith.60.3F/near/346281922). ESTIMATED CHANGES Modified Mathlib/Tactic/Polyrith.lean Modified test/polyrith.lean 2023-04-01 22:20:51 196e4a1 feat: port LinearAlgebra.DirectSum.Finsupp (#3205) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/LinearAlgebra/DirectSum/Finsupp.lean + def finsuppTensorFinsupp' + theorem finsuppTensorFinsupp'_apply_apply + theorem finsuppTensorFinsupp'_single_tmul_single + def finsuppTensorFinsupp + theorem finsuppTensorFinsupp_apply + theorem finsuppTensorFinsupp_single + theorem finsuppTensorFinsupp_symm_single 2023-04-01 19:08:43 5520914 chore: tidy various files (#3124) ESTIMATED CHANGES Modified Mathlib/Algebra/Lie/NonUnitalNonAssocAlgebra.lean Modified Mathlib/Algebra/Ring/Basic.lean + theorem AddMonoidHom.coe_mulLeft + theorem AddMonoidHom.coe_mulRight - theorem AddMonoidHom.coe_mul_left - theorem AddMonoidHom.coe_mul_right +/- def AddMonoidHom.mulLeft +/- def AddMonoidHom.mulRight + theorem AddMonoidHom.mulRight_apply - theorem AddMonoidHom.mul_right_apply Modified Mathlib/CategoryTheory/Category/ULift.lean Modified Mathlib/CategoryTheory/Limits/Constructions/FiniteProductsOfBinaryProducts.lean Modified Mathlib/CategoryTheory/Limits/Shapes/StrictInitial.lean Modified Mathlib/Data/Holor.lean + theorem Holor.slice_unitVec_mul - theorem Holor.slice_unit_vec_mul + theorem Holor.sum_unitVec_mul_slice - theorem Holor.sum_unit_vec_mul_slice Modified Mathlib/Data/PFun.lean + theorem PFun.dom_toSubtype + theorem PFun.dom_toSubtype_apply_iff - theorem PFun.dom_to_subtype - theorem PFun.dom_to_subtype_apply_iff + theorem PFun.mem_toSubtype_iff - theorem PFun.mem_to_subtype_iff + theorem PFun.preimage_asSubtype - theorem PFun.preimage_as_subtype + theorem PFun.toSubtype_apply - theorem PFun.to_subtype_apply Modified Mathlib/Data/Polynomial/Degree/Lemmas.lean + theorem Polynomial.natDegree_C_mul_eq_of_mul_ne_zero - theorem Polynomial.natDegree_c_mul_eq_of_mul_ne_zero + theorem Polynomial.natDegree_mul_C_eq_of_mul_ne_zero - theorem Polynomial.natDegree_mul_c_eq_of_mul_ne_zero Modified Mathlib/Data/Polynomial/Derivative.lean + theorem Polynomial.eq_C_of_derivative_eq_zero - theorem Polynomial.eq_c_of_derivative_eq_zero + theorem Polynomial.iterate_derivative_X - theorem Polynomial.iterate_derivative_x Modified Mathlib/Data/Polynomial/HasseDeriv.lean Modified Mathlib/Data/Polynomial/Monic.lean + theorem Polynomial.natDegree_pow_X_add_C - theorem Polynomial.natDegree_pow_X_add_c Modified Mathlib/Data/Polynomial/Taylor.lean Modified Mathlib/Deprecated/Subfield.lean Modified Mathlib/GroupTheory/Submonoid/Pointwise.lean Modified Mathlib/LinearAlgebra/Dfinsupp.lean +/- def Dfinsupp.lapply +/- def Dfinsupp.lmk - theorem Submodule.mem_bsupr_iff_exists_dfinsupp + theorem Submodule.mem_bsupᵢ_iff_exists_dfinsupp Modified Mathlib/RingTheory/Ideal/Quotient.lean Modified Mathlib/RingTheory/Polynomial/Pochhammer.lean + theorem Polynomial.mul_X_add_nat_cast_comp - theorem Polynomial.mul_x_add_nat_cast_comp + theorem pochhammer_succ_comp_X_add_one - theorem pochhammer_succ_comp_x_add_one Modified Mathlib/SetTheory/Ordinal/FixedPoint.lean Modified Mathlib/Tactic/TFAE.lean Modified Mathlib/Topology/Algebra/UniformRing.lean Modified Mathlib/Topology/Homeomorph.lean +/- def Homeomorph.funUnique +/- def Homeomorph.piFinTwo.{u} + def Homeomorph.prodPUnit - def Homeomorph.prodPunit +/- def Homeomorph.setCongr Modified Mathlib/Topology/MetricSpace/Antilipschitz.lean + theorem AntilipschitzWith.to_rightInvOn' - theorem AntilipschitzWith.to_right_inv_on' Modified Mathlib/Topology/MetricSpace/Infsep.lean 2023-04-01 17:37:29 3bca586 feat: additions to ListM API (#3181) ESTIMATED CHANGES Modified Mathlib/Data/ListM.lean Modified test/ListM.lean 2023-04-01 16:28:21 93bf16c chore: Miscellaneous lemmas (#3213) Match https://github.com/leanprover-community/mathlib/pull/18677 ESTIMATED CHANGES Modified Mathlib/Algebra/Support.lean + theorem Function.mulSupport_int_cast + theorem Function.mulSupport_nat_cast + theorem Function.mulSupport_zero + theorem Function.support_int_cast + theorem Function.support_nat_cast + theorem Function.support_one Modified Mathlib/Data/Int/CharZero.lean + theorem Int.cast_eq_one + theorem Int.cast_ne_one Modified Mathlib/Data/Real/ENNReal.lean + theorem ENNReal.ofReal_toReal_eq_iff + theorem ENNReal.toReal_ofReal_eq_iff Modified Mathlib/Data/Set/Basic.lean + theorem Set.diff_singleton_sSubset + theorem Set.insert_diff_singleton_comm + theorem Set.inter_diff_distrib_left + theorem Set.inter_diff_distrib_right + theorem Set.inter_setOf_eq_sep + theorem Set.setOf_inter_eq_sep + theorem Set.singleton_subset_singleton Modified Mathlib/Logic/Function/Basic.lean + theorem Function.onFun_apply Modified Mathlib/Order/ConditionallyCompleteLattice/Basic.lean + theorem WithBot.infₛ_eq + theorem WithBot.supₛ_eq + theorem WithTop.infₛ_eq + theorem WithTop.supₛ_eq 2023-04-01 16:09:16 b38baa7 chore: re-port Algebra.CharP.Basic (#3191) This forward-ports changes from leanprover-community/mathlib#11364 One unrelated downstream file times out, presumably due to the import graph subtly changing. ESTIMATED CHANGES Modified Mathlib/Algebra/CharP/Basic.lean +/- theorem add_pow_char_of_commute +/- theorem add_pow_char_pow_of_commute + theorem add_pow_prime_eq + theorem add_pow_prime_pow_eq + theorem exists_add_pow_prime_eq + theorem exists_add_pow_prime_pow_eq Modified Mathlib/Data/ZMod/Basic.lean Modified Mathlib/RingTheory/Polynomial/Basic.lean 2023-04-01 11:24:08 3b6fdff feat: When `s ×ˢ t` is finite (#3214) Match https://github.com/leanprover-community/mathlib/pull/18674 ESTIMATED CHANGES Modified Mathlib/Data/Set/Finite.lean - theorem Set.Finite.image2 + theorem Set.Finite.of_prod_left + theorem Set.Finite.of_prod_right - theorem Set.Finite.offDiag - theorem Set.Finite.prod - theorem Set.Infinite.nonempty + theorem Set.Infinite.of_image + theorem Set.finite_prod + theorem Set.infinite_image2 - theorem Set.infinite_of_infinite_image Modified Mathlib/Data/Set/Pointwise/Finite.lean + theorem Set.Infinite.of_smul_set + theorem Set.finite_smul_set + theorem Set.infinite_mul + theorem Set.infinite_smul_set 2023-03-31 17:01:58 b9a0a30 feat: port #18527 (#3190) Mathlib 3: https://github.com/leanprover-community/mathlib/pull/18527 ESTIMATED CHANGES Modified Mathlib/Order/InitialSeg.lean + theorem wellFounded_iff_principalSeg.{u} + theorem wellFounded_iff_wellFounded_subrel 2023-03-31 16:49:04 ebccaf0 chore: forward port a typo in IsHomeomorphicTrivialBundle (#3185) ESTIMATED CHANGES Modified Mathlib/Topology/FiberBundle/IsHomeomorphicTrivialBundle.lean 2023-03-31 14:20:08 dcbcc20 feat: port Data.Set.List + leanprover-community/mathlib#18647 (#3203) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Data/List/Lemmas.lean - theorem List.range_map - theorem List.range_map_coe Modified Mathlib/Data/Multiset/Basic.lean Added Mathlib/Data/Set/List.lean + theorem Set.range_list_get? + theorem Set.range_list_getD + theorem Set.range_list_getI + theorem Set.range_list_map + theorem Set.range_list_map_coe + theorem Set.range_list_nthLe Modified Mathlib/GroupTheory/Submonoid/Membership.lean Modified test/lift.lean 2023-03-31 13:00:34 98f40c3 refactor: Refactor coercions in `Data.Num.Basic` (#2780) This PR: 1. gives the coercions `coe` attributes. 2. replace `coeTC` with `coeHTCT`, otherwise coercions get complicated as shown. ```lean variable (p : PosNum) example : ℤ := p -- ↑↑p, we want ↑p. ``` ESTIMATED CHANGES Modified Mathlib/Data/Num/Basic.lean +/- def castNum +/- def castPosNum +/- def castZNum 2023-03-31 11:27:20 5cf0100 chore: forward-port mathlib #18682 (#3200) ESTIMATED CHANGES Modified Mathlib/Data/Finset/Image.lean + theorem Finset.image_sdiff + theorem Finset.image_symmDiff Modified Mathlib/Data/Finset/Pointwise.lean + theorem Finset.smul_finset_inter + theorem Finset.smul_finset_inter₀ + theorem Finset.smul_finset_sdiff + theorem Finset.smul_finset_sdiff₀ + theorem Finset.smul_finset_symmDiff + theorem Finset.smul_finset_symm_diff₀ + theorem Finset.smul_finset_univ + theorem Finset.smul_univ Modified Mathlib/Data/Set/Pointwise/SMul.lean 2023-03-31 10:48:28 c04b29d feat: port RingTheory.MvPolynomial.WeightedHomogeneous (#3192) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/RingTheory/MvPolynomial/WeightedHomogeneous.lean + theorem MvPolynomial.IsWeightedHomogeneous.add + theorem MvPolynomial.IsWeightedHomogeneous.coeff_eq_zero + theorem MvPolynomial.IsWeightedHomogeneous.inj_right + theorem MvPolynomial.IsWeightedHomogeneous.mul + theorem MvPolynomial.IsWeightedHomogeneous.prod + theorem MvPolynomial.IsWeightedHomogeneous.sum + theorem MvPolynomial.IsWeightedHomogeneous.weighted_total_degree + def MvPolynomial.IsWeightedHomogeneous + theorem MvPolynomial.coeff_weightedHomogeneousComponent + theorem MvPolynomial.isWeightedHomogeneous_C + theorem MvPolynomial.isWeightedHomogeneous_X + theorem MvPolynomial.isWeightedHomogeneous_monomial + theorem MvPolynomial.isWeightedHomogeneous_of_total_degree_zero + theorem MvPolynomial.isWeightedHomogeneous_one + theorem MvPolynomial.isWeightedHomogeneous_zero + theorem MvPolynomial.le_weightedTotalDegree + theorem MvPolynomial.mem_weightedHomogeneousSubmodule + theorem MvPolynomial.sum_weightedHomogeneousComponent + def MvPolynomial.weightedDegree' + def MvPolynomial.weightedHomogeneousComponent + theorem MvPolynomial.weightedHomogeneousComponent_C_mul + theorem MvPolynomial.weightedHomogeneousComponent_apply + theorem MvPolynomial.weightedHomogeneousComponent_eq_zero' + theorem MvPolynomial.weightedHomogeneousComponent_eq_zero + theorem MvPolynomial.weightedHomogeneousComponent_finsupp + theorem MvPolynomial.weightedHomogeneousComponent_isWeightedHomogeneous + theorem MvPolynomial.weightedHomogeneousComponent_weighted_homogeneous_polynomial + theorem MvPolynomial.weightedHomogeneousComponent_zero + def MvPolynomial.weightedHomogeneousSubmodule + theorem MvPolynomial.weightedHomogeneousSubmodule_eq_finsupp_supported + theorem MvPolynomial.weightedHomogeneousSubmodule_mul + def MvPolynomial.weightedTotalDegree' + theorem MvPolynomial.weightedTotalDegree'_eq_bot_iff + theorem MvPolynomial.weightedTotalDegree'_zero + def MvPolynomial.weightedTotalDegree + theorem MvPolynomial.weightedTotalDegree_coe + theorem MvPolynomial.weightedTotalDegree_zero 2023-03-31 10:28:01 3ba9781 feat: port RingTheory.Adjoin.Fg (#3199) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/RingTheory/Adjoin/Fg.lean + theorem Algebra.fg_trans + theorem Subalgebra.Fg.map + theorem Subalgebra.Fg.prod + def Subalgebra.Fg + theorem Subalgebra.fg_adjoin_finset + theorem Subalgebra.fg_bot + theorem Subalgebra.fg_def + theorem Subalgebra.fg_of_fg_map + theorem Subalgebra.fg_of_fg_toSubmodule + theorem Subalgebra.fg_of_noetherian + theorem Subalgebra.fg_of_submodule_fg + theorem Subalgebra.fg_top + theorem Subalgebra.induction_on_adjoin + theorem isNoetherianRing_of_fg + theorem is_noetherian_subring_closure 2023-03-31 10:28:00 de2321d feat: port CategoryTheory.Elements (#2815) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Elements.lean + theorem CategoryTheory.CategoryOfElements.comp_val + def CategoryTheory.CategoryOfElements.costructuredArrowYonedaEquivalence + theorem CategoryTheory.CategoryOfElements.costructuredArrow_yoneda_equivalence_naturality + theorem CategoryTheory.CategoryOfElements.ext + def CategoryTheory.CategoryOfElements.fromCostructuredArrow + theorem CategoryTheory.CategoryOfElements.fromCostructuredArrow_obj_mk + def CategoryTheory.CategoryOfElements.fromStructuredArrow + theorem CategoryTheory.CategoryOfElements.fromStructuredArrow_map + theorem CategoryTheory.CategoryOfElements.fromStructuredArrow_obj + theorem CategoryTheory.CategoryOfElements.from_toCostructuredArrow_eq + theorem CategoryTheory.CategoryOfElements.id_val + def CategoryTheory.CategoryOfElements.map + theorem CategoryTheory.CategoryOfElements.map_π + def CategoryTheory.CategoryOfElements.structuredArrowEquivalence + def CategoryTheory.CategoryOfElements.toCostructuredArrow + def CategoryTheory.CategoryOfElements.toStructuredArrow + theorem CategoryTheory.CategoryOfElements.toStructuredArrow_obj + theorem CategoryTheory.CategoryOfElements.to_comma_map_right + theorem CategoryTheory.CategoryOfElements.to_fromCostructuredArrow_eq + def CategoryTheory.CategoryOfElements.π + theorem CategoryTheory.Functor.Elements.ext + def CategoryTheory.Functor.Elements Modified Mathlib/CategoryTheory/StructuredArrow.lean + theorem CategoryTheory.CostructuredArrow.eqToHom_left + theorem CategoryTheory.CostructuredArrow.hom_ext + theorem CategoryTheory.StructuredArrow.hom_ext 2023-03-31 10:15:59 fa99b80 feat: port LinearAlgebra.DirectSum.TensorProduct (#2977) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/LinearAlgebra/DirectSum/TensorProduct.lean + def TensorProduct.directSumLeft + theorem TensorProduct.directSumLeft_symm_lof_tmul + theorem TensorProduct.directSumLeft_tmul_lof + def TensorProduct.directSumRight + theorem TensorProduct.directSumRight_symm_lof_tmul + theorem TensorProduct.directSumRight_tmul_lof + theorem TensorProduct.directSum_lof_tmul_lof 2023-03-30 13:54:48 ac1e75f refactor: hypothesis naming in custom recursors (#1658) I have renamed hypotheses in `WithBot.recBotCoe`, `WithTop.recTopCoe` and `Finset.cons_induction` on the basis that rather than ```lean cases f₁ using WithBot.recBotCoe with | h₁ => … | h₂ f₁ => … ``` we would prefer to be able to write ```lean cases f₁ using WithBot.recBotCoe with | bot => … | coe f₁ => … ``` and rather than ```lean induction s using cons_induction with | h₁ => … | @h₂ c s hc ih => … ``` we would prefer ```lean induction s using cons_induction with | empty => … | @cons c t hc ih => … ```` I also tidied up some of inf' stuff in Finset.Lattice by using named arguments to specify the dual type instead of `@`s and `_ _ _`. ESTIMATED CHANGES Modified Mathlib/Data/Finset/Basic.lean +/- theorem Finset.cons_induction Modified Mathlib/Data/Finset/Lattice.lean Modified Mathlib/Data/Multiset/Basic.lean Modified Mathlib/Order/WithBot.lean +/- def WithBot.recBotCoe +/- def WithTop.recTopCoe 2023-03-30 13:14:01 d38f441 feat: port RingTheory.Polynomial.Basic (#3067) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/RingTheory/Polynomial/Basic.lean + def Ideal.degreeLe + theorem Ideal.eq_zero_of_constant_mem_of_maximal + theorem Ideal.isPrime_map_C_iff_isPrime + theorem Ideal.isPrime_map_C_of_isPrime + theorem Ideal.is_fg_degreeLe + def Ideal.leadingCoeff + def Ideal.leadingCoeffNth + theorem Ideal.leadingCoeffNth_mono + theorem Ideal.mem_leadingCoeff + theorem Ideal.mem_leadingCoeffNth + theorem Ideal.mem_leadingCoeffNth_zero + theorem Ideal.mem_map_C_iff + theorem Ideal.mem_ofPolynomial + def Ideal.ofPolynomial + theorem Ideal.polynomial_mem_ideal_of_coeff_mem_ideal + theorem Ideal.polynomial_not_isField + theorem MvPolynomial.isNoetherianRing_fin + theorem MvPolynomial.isNoetherianRing_fin_0 + theorem MvPolynomial.ker_map + theorem MvPolynomial.map_mvPolynomial_eq_eval₂ + theorem MvPolynomial.mem_ideal_of_coeff_mem_ideal + theorem MvPolynomial.mem_map_C_iff + theorem MvPolynomial.noZeroDivisors_fin + theorem MvPolynomial.noZeroDivisors_of_finite + theorem MvPolynomial.prime_C_iff + theorem MvPolynomial.prime_rename_iff + theorem Polynomial.Monic.geom_sum' + theorem Polynomial.Monic.geom_sum + theorem Polynomial.coeff_mem_frange + theorem Polynomial.coeff_ofSubring + theorem Polynomial.coeff_prod_mem_ideal_pow_tsub + theorem Polynomial.coeff_restriction' + theorem Polynomial.coeff_restriction + theorem Polynomial.coeff_toSubring + theorem Polynomial.coeff_to_subring' + def Polynomial.degreeLe + theorem Polynomial.degreeLe_eq_span_X_pow + theorem Polynomial.degreeLe_mono + def Polynomial.degreeLt + def Polynomial.degreeLtEquiv + theorem Polynomial.degreeLtEquiv_eq_zero_iff_eq_zero + theorem Polynomial.degreeLt_eq_span_X_pow + theorem Polynomial.degreeLt_mono + theorem Polynomial.degree_restriction + theorem Polynomial.degree_toSubring + theorem Polynomial.disjoint_ker_aeval_of_coprime + theorem Polynomial.eval_eq_sum_degreeLtEquiv + theorem Polynomial.eval₂_restriction + theorem Polynomial.exists_irreducible_of_degree_pos + theorem Polynomial.exists_irreducible_of_natDegree_ne_zero + theorem Polynomial.exists_irreducible_of_natDegree_pos + def Polynomial.frange + theorem Polynomial.frange_ofSubring + theorem Polynomial.frange_one + theorem Polynomial.frange_zero + theorem Polynomial.geom_sum_X_comp_X_add_one_eq_sum + theorem Polynomial.ker_mapRingHom + theorem Polynomial.ker_modByMonicHom + theorem Polynomial.linearIndependent_powers_iff_aeval + theorem Polynomial.map_restriction + theorem Polynomial.map_toSubring + theorem Polynomial.mem_degreeLe + theorem Polynomial.mem_degreeLt + theorem Polynomial.mem_frange_iff + theorem Polynomial.mem_ker_mod_by_monic + theorem Polynomial.monic_geom_sum_X + theorem Polynomial.monic_restriction + theorem Polynomial.monic_toSubring + theorem Polynomial.natDegree_restriction + theorem Polynomial.natDegree_toSubring + def Polynomial.ofSubring + theorem Polynomial.prime_C_iff + def Polynomial.restriction + theorem Polynomial.restriction_one + theorem Polynomial.restriction_zero + theorem Polynomial.sup_aeval_range_eq_top_of_coprime + theorem Polynomial.sup_ker_aeval_eq_ker_aeval_mul_of_coprime + theorem Polynomial.sup_ker_aeval_le_ker_aeval_mul + theorem Polynomial.support_restriction + theorem Polynomial.support_toSubring + def Polynomial.toSubring + theorem Polynomial.toSubring_one + theorem Polynomial.toSubring_zero 2023-03-30 08:13:53 55a5c6b chore: bump SHA in Data/ENat/Basic (#3178) * [`data.enat.basic`@`9003f28797c0664a49e4179487267c494477d853`..`ceb887ddf3344dab425292e497fa2af91498437c`](https://leanprover-community.github.io/mathlib-port-status/file/data/enat/basic?range=9003f28797c0664a49e4179487267c494477d853..ceb887ddf3344dab425292e497fa2af91498437c) The change in mathlib3 is irrelevant, as `coe_zero` is no longer a simp lemma. ESTIMATED CHANGES Modified Mathlib/Data/ENat/Basic.lean 2023-03-30 08:13:52 915c292 chore: bump SHA in Data.TypeVec (#3177) Only whitespace changes in * [`data.typevec`@`39af7d3bf61a98e928812dbc3e16f4ea8b795ca3`..`4fcbc82dc2257986c03e113f87bc5ce021243a44`](https://leanprover-community.github.io/mathlib-port-status/file/data/typevec?range=39af7d3bf61a98e928812dbc3e16f4ea8b795ca3..4fcbc82dc2257986c03e113f87bc5ce021243a44) so just bumping the SHA. ESTIMATED CHANGES Modified Mathlib/Data/TypeVec.lean 2023-03-30 08:13:51 9d15a22 chore: update sha in CategoryTheory.Adjunction.Opposites (#3176) * [`category_theory.adjunction.opposites`@`f3ee4628e2dc737653af924c41fa681abc2a4f4a`..`0148d455199ed64bf8eb2f493a1e7eb9211ce170`](https://leanprover-community.github.io/mathlib-port-status/file/category_theory/adjunction/opposites?range=f3ee4628e2dc737653af924c41fa681abc2a4f4a..0148d455199ed64bf8eb2f493a1e7eb9211ce170) The changes in https://github.com/leanprover-community/mathlib/pull/18680 were already part of https://github.com/leanprover-community/mathlib4/pull/2424, so we just need to update the SHA. ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Adjunction/Opposites.lean 2023-03-30 08:13:50 abb3db3 feat: port LinearAlgebra.AffineSpace.Pointwise (#3132) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/LinearAlgebra/AffineSpace/Pointwise.lean + theorem AffineSubspace.coe_pointwise_vadd + theorem AffineSubspace.map_pointwise_vadd + theorem AffineSubspace.pointwise_vadd_bot + theorem AffineSubspace.pointwise_vadd_direction + theorem AffineSubspace.pointwise_vadd_eq_map + theorem AffineSubspace.pointwise_vadd_span + theorem AffineSubspace.vadd_mem_pointwise_vadd_iff 2023-03-30 08:02:58 6dd7fe4 chore: bump SHA in Combinatorics/Composition (#3184) * [`combinatorics.composition`@`2705404e701abc6b3127da906f40bae062a169c9`..`92ca63f0fb391a9ca5f22d2409a6080e786d99f7`](https://leanprover-community.github.io/mathlib-port-status/file/combinatorics/composition?range=2705404e701abc6b3127da906f40bae062a169c9..92ca63f0fb391a9ca5f22d2409a6080e786d99f7) Nothing to do but bump the SHA. ESTIMATED CHANGES Modified Mathlib/Combinatorics/Composition.lean 2023-03-30 05:03:21 fc8024e feat: port Order.UpperLower.LocallyFinite (#3182) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Order/UpperLower/LocallyFinite.lean 2023-03-30 05:03:20 c367fef chore: forward port leanprover-community/mathlib#18657 (#3164) ESTIMATED CHANGES Modified Mathlib/Order/CompleteBooleanAlgebra.lean Modified Mathlib/Order/Hom/CompleteLattice.lean 2023-03-30 05:03:19 bf43216 feat(NumberTheory/Zsqrtd/Basic) Lemmas about ofNat (#3052) ESTIMATED CHANGES Modified Mathlib/NumberTheory/Zsqrtd/Basic.lean + theorem Zsqrtd.ofNat_im + theorem Zsqrtd.ofNat_re 2023-03-30 05:03:18 65b1274 feat: add `AddMonoidHom.smulLeft` and `AddMonoidHom.smul` (#2968) ESTIMATED CHANGES Modified Mathlib/Algebra/Module/Hom.lean + theorem AddMonoidHom.coe_smul' + theorem AddMonoidHom.coe_smul 2023-03-30 05:03:17 ebe85f7 fix: do not use ToAdditive.applyAttributes outside ToAdditive (#2934) * The `ToAdditive` version does some `to_additive`-specific things. * Update docs to reflect that we apply the attribute to both the source and target declaration * In Lean 3 the only attribute we ever copied was `simp`, which doesn't care if it's applied multiple times, so we don't check if the declaration already is applied to the source declaration. This is a risk, since it means that `@[simp, elementwise]` or `@[simp, reassoc]` will not be changed to `@[elementwise (attr := simp)]` or `@[reassoc (attr := simp)]` * Note: copying the simp attribute from the source declaration is not a great solution, since the simp priority is not easily accessible in the environment (without walking the whole simp-`DiscrTree`) ESTIMATED CHANGES Modified Mathlib/Tactic/Elementwise.lean Modified Mathlib/Tactic/Reassoc.lean Modified Mathlib/Util/AddRelatedDecl.lean 2023-03-30 05:03:16 374abad feat: port ModelTheory.Basic (#2296) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/ModelTheory/Basic.lean + def Embedding.empty + def Equiv.empty + def Equiv.inducedStructure + def Equiv.inducedStructureEquiv + theorem Equiv.toEquiv_inducedStructureEquiv + theorem Equiv.toFun_inducedStructureEquiv + theorem Equiv.toFun_inducedStructureEquiv_Symm + theorem FirstOrder.Language.Embedding.coeFn_ofInjective + theorem FirstOrder.Language.Embedding.coe_injective + theorem FirstOrder.Language.Embedding.coe_toHom + def FirstOrder.Language.Embedding.comp + theorem FirstOrder.Language.Embedding.comp_apply + theorem FirstOrder.Language.Embedding.comp_assoc + theorem FirstOrder.Language.Embedding.comp_toHom + theorem FirstOrder.Language.Embedding.ext + theorem FirstOrder.Language.Embedding.ext_iff + theorem FirstOrder.Language.Embedding.injective + theorem FirstOrder.Language.Embedding.map_constants + theorem FirstOrder.Language.Embedding.map_fun + theorem FirstOrder.Language.Embedding.map_rel + def FirstOrder.Language.Embedding.ofInjective + theorem FirstOrder.Language.Embedding.ofInjective_toHom + def FirstOrder.Language.Embedding.refl + theorem FirstOrder.Language.Embedding.refl_apply + def FirstOrder.Language.Embedding.toHom + structure FirstOrder.Language.Embedding + theorem FirstOrder.Language.Equiv.apply_symm_apply + theorem FirstOrder.Language.Equiv.bijective + theorem FirstOrder.Language.Equiv.coe_injective + theorem FirstOrder.Language.Equiv.coe_toEmbedding + theorem FirstOrder.Language.Equiv.coe_toHom + def FirstOrder.Language.Equiv.comp + theorem FirstOrder.Language.Equiv.comp_apply + theorem FirstOrder.Language.Equiv.comp_assoc + theorem FirstOrder.Language.Equiv.ext + theorem FirstOrder.Language.Equiv.ext_iff + theorem FirstOrder.Language.Equiv.injective + theorem FirstOrder.Language.Equiv.map_constants + theorem FirstOrder.Language.Equiv.map_fun + theorem FirstOrder.Language.Equiv.map_rel + def FirstOrder.Language.Equiv.refl + theorem FirstOrder.Language.Equiv.refl_apply + theorem FirstOrder.Language.Equiv.surjective + def FirstOrder.Language.Equiv.symm + theorem FirstOrder.Language.Equiv.symm_apply_apply + def FirstOrder.Language.Equiv.toEmbedding + theorem FirstOrder.Language.Equiv.toEmbedding_toHom + def FirstOrder.Language.Equiv.toHom + structure FirstOrder.Language.Equiv + def FirstOrder.Language.Hom.comp + theorem FirstOrder.Language.Hom.comp_apply + theorem FirstOrder.Language.Hom.comp_assoc + theorem FirstOrder.Language.Hom.ext + theorem FirstOrder.Language.Hom.ext_iff + def FirstOrder.Language.Hom.id + theorem FirstOrder.Language.Hom.id_apply + theorem FirstOrder.Language.Hom.map_constants + theorem FirstOrder.Language.Hom.map_fun + theorem FirstOrder.Language.Hom.map_rel + theorem FirstOrder.Language.Hom.toFun_eq_coe + structure FirstOrder.Language.Hom + theorem FirstOrder.Language.HomClass.map_constants + def FirstOrder.Language.HomClass.strongHomClassOfIsAlgebraic + def FirstOrder.Language.HomClass.toHom + def FirstOrder.Language.RelMap₂ + def FirstOrder.Language.StrongHomClass.toEmbedding + def FirstOrder.Language.StrongHomClass.toEquiv + theorem FirstOrder.Language.Structure.funMap_apply₀ + theorem FirstOrder.Language.Structure.funMap_apply₁ + theorem FirstOrder.Language.Structure.funMap_apply₂ + theorem FirstOrder.Language.Structure.relMap_apply₁ + theorem FirstOrder.Language.Structure.relMap_apply₂ + def FirstOrder.Language.Symbols + def FirstOrder.Language.card + theorem FirstOrder.Language.card_eq_card_functions_add_card_relations + theorem FirstOrder.Language.card_functions_sum + theorem FirstOrder.Language.card_mk₂ + theorem FirstOrder.Language.card_relations_sum + theorem FirstOrder.Language.card_sum + def FirstOrder.Language.constantMap + theorem FirstOrder.Language.constants_mk₂ + theorem FirstOrder.Language.empty.nonempty_embedding_iff + theorem FirstOrder.Language.empty.nonempty_equiv_iff + theorem FirstOrder.Language.empty_card + theorem FirstOrder.Language.funMap_eq_coe_constants + theorem FirstOrder.Language.funMap_sum_inl + theorem FirstOrder.Language.funMap_sum_inr + def FirstOrder.Language.funMap₂ + def FirstOrder.Language.inhabited.trivialStructure + theorem FirstOrder.Language.nonempty_of_nonempty_constants + theorem FirstOrder.Language.relMap_sum_inl + theorem FirstOrder.Language.relMap_sum_inr + theorem FirstOrder.Language.toEmbedding_embedding_empty + theorem FirstOrder.Language.toEquiv_equiv_empty + theorem FirstOrder.Language.toFun_embedding_empty + theorem FirstOrder.Language.toFun_equiv_empty + structure FirstOrder.Language + theorem FirstOrder.Sequence₂.lift_mk + theorem FirstOrder.Sequence₂.sum_card + def FirstOrder.Sequence₂ + def Function.emptyHom 2023-03-30 03:29:08 67bb167 feat: Decidability of `curry`/`uncurry` (#3116) ESTIMATED CHANGES Modified Mathlib/Logic/Function/Basic.lean 2023-03-30 03:18:44 876c5e3 chore: update SHA, forward-port, golf (#3180) * `Order/Filter/ENNReal`: update SHA; * forward-port a minor golf; * golf more. ESTIMATED CHANGES Modified Mathlib/Order/Filter/ENNReal.lean +/- theorem ENNReal.limsup_eq_zero_iff 2023-03-30 02:56:51 2f06b36 feat: port data.mllist (#2945) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Data/ListM.lean Added test/ListM.lean + def F + def S + def append + def half_or_fail 2023-03-29 23:55:35 7c82cee chore: update SHA (#3174) * Update SHA of `Mathlib.Algebra.QuadraticDiscriminant`. Most changes were forward-ported during initial porting. * Drop an unused `have`, squash 2 lines. ESTIMATED CHANGES Modified Mathlib/Algebra/QuadraticDiscriminant.lean +/- theorem discrim_lt_zero 2023-03-29 23:55:33 3035dbf chore: drop 2 lemmas, update SHA (#3173) Forward-port leanprover-community/mathlib#18660. ESTIMATED CHANGES Modified Mathlib/Topology/Basic.lean - theorem isClosed_unionᵢ_prop - theorem isOpen_interᵢ_prop 2023-03-29 23:55:32 244e610 feat: port CategoryTheory.Category.TwoP (#3169) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Category/TwoP.lean + theorem TwoP.coe_of + theorem TwoP.coe_toBipointed + def TwoP.of + theorem TwoP.swapEquiv_symm + structure TwoP + theorem TwoP_swap_comp_forget_to_Bipointed + theorem pointedToTwoPFst_comp_forget_to_bipointed + theorem pointedToTwoPFst_comp_swap + theorem pointedToTwoPSnd_comp_forget_to_bipointed + theorem pointedToTwoPSnd_comp_swap 2023-03-29 23:55:30 8de0917 fix: alias FVarIds for `change` and `clear_value` (#2937) The tactics `change ... at` and `clear_value` do a `revert`/`intro` pattern, but the `FVarId`s before and after `revert`/`intro` weren't given an `FVarAliasInfo` record in the info tree. This could cause the unused variable linter to not see that variables were being used. ESTIMATED CHANGES Modified Mathlib/Tactic/Basic.lean + def Lean.MVarId.changeLocalDecl' + def Lean.MVarId.withReverted + def Mathlib.Tactic.pushFVarAliasInfo Modified test/change.lean 2023-03-29 23:55:29 ba7950c feat: Add instance of Infinite String (#1973) This proves that the `String` type is infinite. ESTIMATED CHANGES Modified Mathlib/Data/Fintype/Card.lean 2023-03-29 13:26:48 26daa9a feat: port NumberTheory.LucasPrimality (#3166) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/NumberTheory/LucasPrimality.lean + theorem lucas_primality 2023-03-29 12:50:38 ad140a7 feat: port Topology.Algebra.Polynomial (#3168) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Topology/Algebra/Polynomial.lean + theorem Polynomial.coeff_bdd_of_roots_le + theorem Polynomial.coeff_le_of_roots_le + theorem Polynomial.eq_one_of_roots_le + theorem Polynomial.exists_forall_norm_le + theorem Polynomial.tendsto_abv_aeval_atTop + theorem Polynomial.tendsto_abv_atTop + theorem Polynomial.tendsto_abv_eval₂_atTop + theorem Polynomial.tendsto_norm_atTop 2023-03-29 10:59:12 a06940b feat: forward-port #18321 (#3101) ESTIMATED CHANGES Modified Mathlib/Data/Analysis/Topology.lean Modified Mathlib/Topology/Constructions.lean - theorem continuous_subtype_nhds_cover Modified Mathlib/Topology/ContinuousFunction/Basic.lean Modified Mathlib/Topology/ContinuousOn.lean + theorem continuous_of_cover_nhds + theorem nhdsWithin_bunionᵢ +/- theorem nhdsWithin_eq_nhds + theorem nhdsWithin_unionᵢ + theorem nhdsWithin_unionₛ Modified Mathlib/Topology/LocallyFinite.lean +/- theorem LocallyFinite.closure_unionᵢ + theorem LocallyFinite.continuousOn_unionᵢ' + theorem LocallyFinite.continuousOn_unionᵢ Modified Mathlib/Topology/SubsetProperties.lean 2023-03-29 10:04:58 be0f288 feat: port Analysis.Convex.Extreme (#3167) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/Convex/Extreme.lean + theorem Convex.mem_extremePoints_iff_convex_diff + theorem Convex.mem_extremePoints_iff_mem_diff_convexHull_diff + theorem IsExtreme.convex_diff + theorem IsExtreme.extremePoints_eq + theorem IsExtreme.extremePoints_subset_extremePoints + theorem IsExtreme.inter + def IsExtreme + def Set.extremePoints + theorem extremePoints_convexHull_subset + theorem extremePoints_empty + theorem extremePoints_pi + theorem extremePoints_prod + theorem extremePoints_singleton + theorem extremePoints_subset + theorem inter_extremePoints_subset_extremePoints_of_subset + theorem isExtreme_binterᵢ + theorem isExtreme_interᵢ + theorem isExtreme_interₛ + theorem mem_extremePoints + theorem mem_extremePoints_iff_extreme_singleton + theorem mem_extremePoints_iff_forall_segment 2023-03-29 09:53:37 44b9073 feat: port CategoryTheory.Monoidal.Transport (#3151) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Monoidal/Transport.lean + def CategoryTheory.Monoidal.Transported + def CategoryTheory.Monoidal.fromTransported + def CategoryTheory.Monoidal.laxToTransported + def CategoryTheory.Monoidal.toTransported + def CategoryTheory.Monoidal.transport + def CategoryTheory.Monoidal.transportedMonoidalCounitIso + def CategoryTheory.Monoidal.transportedMonoidalUnitIso 2023-03-29 09:39:55 836642a chore: sync Data. Nat.Fib (#3150) ESTIMATED CHANGES Modified Mathlib/Data/Nat/Fib.lean 2023-03-29 09:28:53 126877a feat: port Data.Polynomial.PartialFractions (#3133) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Data/Polynomial/PartialFractions.lean + theorem div_eq_quo_add_rem_div_add_rem_div + theorem div_eq_quo_add_sum_rem_div 2023-03-29 09:12:43 6e96221 feat: port Data.Polynomial.Mirror (#3130) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Data/Polynomial/Mirror.lean + theorem Polynomial.coeff_mirror + theorem Polynomial.coeff_mul_mirror + theorem Polynomial.irreducible_of_mirror + theorem Polynomial.mirror_C + theorem Polynomial.mirror_X + theorem Polynomial.mirror_eq_iff + theorem Polynomial.mirror_eq_zero + theorem Polynomial.mirror_eval_one + theorem Polynomial.mirror_inj + theorem Polynomial.mirror_involutive + theorem Polynomial.mirror_leadingCoeff + theorem Polynomial.mirror_mirror + theorem Polynomial.mirror_monomial + theorem Polynomial.mirror_mul_of_domain + theorem Polynomial.mirror_natDegree + theorem Polynomial.mirror_natTrailingDegree + theorem Polynomial.mirror_neg + theorem Polynomial.mirror_smul + theorem Polynomial.mirror_trailingCoeff + theorem Polynomial.mirror_zero + theorem Polynomial.natDegree_mul_mirror + theorem Polynomial.natTrailingDegree_mul_mirror 2023-03-29 09:00:26 87a0508 feat: port RingTheory.Localization.Module (#3129) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/RingTheory/Localization/Module.lean + theorem Basis.localizationLocalization_apply + theorem Basis.localizationLocalization_repr_algebraMap + theorem LinearIndependent.iff_fractionRing + theorem LinearIndependent.localization + theorem LinearIndependent.localization_localization + theorem SpanEqTop.localization_localization 2023-03-29 06:53:18 1e9f59d chore: forward port leanprover-community/mathlib#18667 (#3163) ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Monoid/Canonical/Defs.lean + theorem le_mul_of_le_left + theorem le_mul_of_le_right Modified Mathlib/Algebra/Order/Monoid/MinMax.lean + theorem le_or_le_of_mul_le_mul + theorem le_or_lt_of_mul_le_mul + theorem lt_or_le_of_mul_le_mul +/- theorem lt_or_lt_of_mul_lt_mul +/- theorem mul_lt_mul_iff_of_le_of_le Modified Mathlib/Order/Basic.lean + theorem gt_or_eq_of_le 2023-03-29 06:33:39 5cc968e chore: sync Algebra.Order.Hom.Ring (#3153) ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Hom/Ring.lean 2023-03-29 05:49:32 10563d1 chore: re-port Mathlib.Algebra.Star.SelfAdjoint (#3159) This file was sufficiently far out of sync that it seemed sensible to just report it. A fresh output from mathport is included as a first commit; making it possible to diff both against the version in mathlib, and the version from mathlib. The change to `Mathlib.Algebra.Star.Module` was forgotten in #2926. ESTIMATED CHANGES Modified Mathlib/Algebra/Star/Module.lean Modified Mathlib/Algebra/Star/SelfAdjoint.lean + theorem IsSelfAdjoint.all +/- theorem IsSelfAdjoint.div +/- theorem IsSelfAdjoint.inv +/- theorem IsSelfAdjoint.isStarNormal +/- theorem IsSelfAdjoint.smul + theorem IsSelfAdjoint.smul_mem_skewAdjoint +/- theorem IsSelfAdjoint.zpow + theorem isSelfAdjoint_add_star_self + theorem isSelfAdjoint_intCast + theorem isSelfAdjoint_natCast + theorem isSelfAdjoint_ratCast + theorem isSelfAdjoint_smul_of_mem_skewAdjoint + theorem isSelfAdjoint_star_add_self - theorem selfAdjoint.ratCast_mem +/- theorem selfAdjoint.val_zpow +/- def selfAdjoint +/- theorem skewAdjoint.isStarNormal_of_mem +/- def skewAdjoint 2023-03-29 05:49:30 e94327c feat: port RingTheory.Polynomial.Vieta (#3137) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Data/Polynomial/RingDivision.lean + theorem Polynomial.C_leadingCoeff_mul_prod_multiset_X_sub_C - theorem Polynomial.c_leadingCoeff_mul_prod_multiset_X_sub_C Modified Mathlib/Data/Polynomial/Splits.lean Added Mathlib/RingTheory/Polynomial/Vieta.lean + theorem Finset.prod_X_add_C_coeff + theorem Multiset.esymm_neg + theorem Multiset.prod_X_add_C_coeff' + theorem Multiset.prod_X_add_C_coeff + theorem Multiset.prod_X_add_C_eq_sum_esymm + theorem Multiset.prod_X_sub_C_coeff + theorem Multiset.prod_X_sub_X_eq_sum_esymm + theorem MvPolynomial.prod_C_add_X_eq_sum_esymm + theorem MvPolynomial.prod_X_add_C_coeff + theorem Polynomial.coeff_eq_esymm_roots_of_card + theorem Polynomial.coeff_eq_esymm_roots_of_splits 2023-03-29 05:49:29 abf03ca feat: port Data.Polynomial.Degree.CardPowDegree (#3134) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Data/Polynomial/Degree/CardPowDegree.lean + theorem Polynomial.cardPowDegree_apply + theorem Polynomial.cardPowDegree_isEuclidean + theorem Polynomial.cardPowDegree_nonzero + theorem Polynomial.cardPowDegree_zero 2023-03-29 05:49:28 eb9d5a4 feat: port Algebra.CharP.Quotient (#3131) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/CharP/Quotient.lean + theorem CharP.quotient' + theorem CharP.quotient + theorem Ideal.Quotient.index_eq_zero 2023-03-29 05:37:32 27f5769 feat: port Data.Nat.Totient (#3156) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Data/Nat/Totient.lean + theorem Nat.Ico_filter_coprime_le + theorem Nat.card_units_zMod_lt_sub_one + theorem Nat.filter_coprime_Ico_eq_totient + theorem Nat.prime_iff_card_units + theorem Nat.sum_totient' + theorem Nat.sum_totient + def Nat.totient + theorem Nat.totient_div_of_dvd + theorem Nat.totient_dvd_of_dvd + theorem Nat.totient_eq_card_coprime + theorem Nat.totient_eq_card_lt_and_coprime + theorem Nat.totient_eq_div_factors_mul + theorem Nat.totient_eq_iff_prime + theorem Nat.totient_eq_mul_prod_factors + theorem Nat.totient_eq_one_iff + theorem Nat.totient_eq_prod_factorization + theorem Nat.totient_even + theorem Nat.totient_gcd_mul_totient_mul + theorem Nat.totient_le + theorem Nat.totient_lt + theorem Nat.totient_mul + theorem Nat.totient_mul_of_prime_of_dvd + theorem Nat.totient_mul_of_prime_of_not_dvd + theorem Nat.totient_mul_prod_factors + theorem Nat.totient_one + theorem Nat.totient_pos + theorem Nat.totient_prime + theorem Nat.totient_prime_pow + theorem Nat.totient_prime_pow_succ + theorem Nat.totient_super_multiplicative + theorem Nat.totient_two + theorem Nat.totient_zero + theorem ZMod.card_units_eq_totient 2023-03-29 02:11:37 9106121 fix: Fixes unexpanders for functors and natural transformations/isos. (#3160) [Zulip discussion](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/unexpanders.20for.20functors/near/345271408) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Functor/Basic.lean Modified Mathlib/CategoryTheory/NatIso.lean Modified Mathlib/CategoryTheory/NatTrans.lean 2023-03-29 02:11:35 db52482 feat: port Data.Nat.Choose.Factorization (#3158) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Data/Nat/Choose/Factorization.lean + theorem Nat.factorization_centralBinom_eq_zero_of_two_mul_lt + theorem Nat.factorization_centralBinom_of_two_mul_self_lt_three_mul + theorem Nat.factorization_choose_eq_zero_of_lt + theorem Nat.factorization_choose_le_log + theorem Nat.factorization_choose_le_one + theorem Nat.factorization_choose_of_lt_three_mul + theorem Nat.factorization_factorial_eq_zero_of_lt + theorem Nat.le_two_mul_of_factorization_centralBinom_pos + theorem Nat.pow_factorization_choose_le + theorem Nat.prod_pow_factorization_centralBinom + theorem Nat.prod_pow_factorization_choose 2023-03-29 02:11:34 e040592 feat: port Data.Nat.Factorization.PrimePow (#3157) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Data/Nat/Factorization/PrimePow.lean + theorem IsPrimePow.exists_ord_compl_eq_one + theorem IsPrimePow.minFac_pow_factorization_eq + theorem Nat.coprime.isPrimePow_dvd_mul + theorem Nat.mul_divisors_filter_prime_pow + theorem exists_ord_compl_eq_one_iff_isPrimePow + theorem isPrimePow_iff_card_support_factorization_eq_one + theorem isPrimePow_iff_factorization_eq_single + theorem isPrimePow_iff_minFac_pow_factorization_eq + theorem isPrimePow_iff_unique_prime_dvd + theorem isPrimePow_of_minFac_pow_factorization_eq + theorem isPrimePow_pow_iff 2023-03-29 01:18:13 074dad7 feat: port IMO 2006 Q5 helper results (#3136) We don't port the IMO proof itself since it seems there's no archive in Mathlib4. Mathlib 3: https://github.com/leanprover-community/mathlib/pull/15613 ESTIMATED CHANGES Modified Mathlib/Data/Int/Basic.lean + theorem Int.sign_coe_add_one + theorem Int.sign_negSucc Modified Mathlib/Data/Int/Order/Basic.lean + theorem Int.sign_add_eq_of_sign_eq Modified Mathlib/Data/List/Cycle.lean + theorem Cycle.mem_map Modified Mathlib/Data/Polynomial/Degree/Lemmas.lean + theorem Polynomial.natDegree_iterate_comp Modified Mathlib/Data/Polynomial/Eval.lean + theorem Polynomial.iterate_comp_eval₂ 2023-03-29 00:39:56 d8d0c89 feat: port Algebra.Category.Group.Preadditive (#3144) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Category/GroupCat/Preadditive.lean + theorem AddCommGroupCat.hom_add_apply Modified Mathlib/CategoryTheory/Preadditive/Basic.lean 2023-03-28 23:29:00 956b01d feat: port ordinal fixed point changes (#3155) Ports https://github.com/leanprover-community/mathlib/pull/18322 and https://github.com/leanprover-community/mathlib/pull/18323. ESTIMATED CHANGES Modified Mathlib/SetTheory/Ordinal/FixedPoint.lean +/- theorem Ordinal.apply_lt_nfpBFamily + theorem Ordinal.apply_lt_nfpBFamily_iff 2023-03-28 23:28:59 869fc2f chore: rename `mkpair` → `pair` (#2324) We rename the ported `mkpair` to `pair`, as `mkpair` didn't follow the naming convention and `pair` pairs well with `unpair`. A poll for this decision was held on [zulip](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/naming.20bikeshed.3A.20.60mkpair.60.2F.60unpair.60). ESTIMATED CHANGES Modified Mathlib/Computability/Primrec.lean - theorem Nat.Primrec'.mkpair + theorem Nat.Primrec'.natPair - theorem Primrec₂.mkpair + theorem Primrec₂.natPair Modified Mathlib/Data/Countable/Basic.lean Modified Mathlib/Data/Nat/Pairing.lean - theorem Nat.add_le_mkpair + theorem Nat.add_le_pair - theorem Nat.left_le_mkpair + theorem Nat.left_le_pair - theorem Nat.max_sq_add_min_le_mkpair + theorem Nat.max_sq_add_min_le_pair - def Nat.mkpair - def Nat.mkpairEquiv - theorem Nat.mkpair_eq_mkpair - theorem Nat.mkpair_lt_max_add_one_sq - theorem Nat.mkpair_lt_mkpair_left - theorem Nat.mkpair_lt_mkpair_right - theorem Nat.mkpair_unpair' - theorem Nat.mkpair_unpair + def Nat.pair + def Nat.pairEquiv + theorem Nat.pair_eq_pair + theorem Nat.pair_lt_max_add_one_sq + theorem Nat.pair_lt_pair_left + theorem Nat.pair_lt_pair_right + theorem Nat.pair_unpair' + theorem Nat.pair_unpair - theorem Nat.right_le_mkpair + theorem Nat.right_le_pair - theorem Nat.unpair_mkpair + theorem Nat.unpair_pair Modified Mathlib/Logic/Encodable/Basic.lean +/- theorem Encodable.encode_prod_val +/- theorem Encodable.encode_sigma_val Modified Mathlib/Logic/Equiv/List.lean Modified Mathlib/Logic/Equiv/Nat.lean 2023-03-28 23:18:52 02e640f chore: update `Syntax.lean` (#2343) Oops—I didn't update `Syntax.lean` when I ported `wlog`. I gave the file a once-over and found that `Syntax.lean` also wasn't updated for `polyrith` and `slice`, so I updated it for those as well. ESTIMATED CHANGES Modified Mathlib/Mathport/Syntax.lean 2023-03-28 22:14:37 b15c183 feat: Port CategoryTheory.Adjunction.Opposites (#2424) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Adjunction/Opposites.lean + def CategoryTheory.Adjunction.adjointOfOpAdjointOp + def CategoryTheory.Adjunction.adjointOfUnopAdjointUnop + def CategoryTheory.Adjunction.adjointOpOfAdjointUnop + def CategoryTheory.Adjunction.adjointUnopOfAdjointOp + theorem CategoryTheory.Adjunction.homEquiv_leftAdjointUniq_hom_app + theorem CategoryTheory.Adjunction.homEquiv_symm_rightAdjointUniq_hom_app + def CategoryTheory.Adjunction.leftAdjointUniq + theorem CategoryTheory.Adjunction.leftAdjointUniq_hom_app_counit + theorem CategoryTheory.Adjunction.leftAdjointUniq_hom_counit + theorem CategoryTheory.Adjunction.leftAdjointUniq_inv_app + theorem CategoryTheory.Adjunction.leftAdjointUniq_refl + theorem CategoryTheory.Adjunction.leftAdjointUniq_trans + theorem CategoryTheory.Adjunction.leftAdjointUniq_trans_app + def CategoryTheory.Adjunction.leftAdjointsCoyonedaEquiv + def CategoryTheory.Adjunction.natIsoOfLeftAdjointNatIso + def CategoryTheory.Adjunction.natIsoOfRightAdjointNatIso + def CategoryTheory.Adjunction.opAdjointOfUnopAdjoint + def CategoryTheory.Adjunction.opAdjointOpOfAdjoint + def CategoryTheory.Adjunction.rightAdjointUniq + theorem CategoryTheory.Adjunction.rightAdjointUniq_hom_app_counit + theorem CategoryTheory.Adjunction.rightAdjointUniq_hom_counit + theorem CategoryTheory.Adjunction.rightAdjointUniq_inv_app + theorem CategoryTheory.Adjunction.rightAdjointUniq_refl + theorem CategoryTheory.Adjunction.rightAdjointUniq_trans + theorem CategoryTheory.Adjunction.rightAdjointUniq_trans_app + theorem CategoryTheory.Adjunction.unit_leftAdjointUniq_hom + theorem CategoryTheory.Adjunction.unit_leftAdjointUniq_hom_app + theorem CategoryTheory.Adjunction.unit_rightAdjointUniq_hom + theorem CategoryTheory.Adjunction.unit_rightAdjointUniq_hom_app + def CategoryTheory.Adjunction.unopAdjointOfOpAdjoint + def CategoryTheory.Adjunction.unopAdjointUnopOfAdjoint 2023-03-28 21:34:04 2606cd8 feat: forward-port leanprover-community/mathlib#18159 (#3154) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Linear/Basic.lean + def CategoryTheory.Linear.homCongr + theorem CategoryTheory.Linear.homCongr_apply + theorem CategoryTheory.Linear.homCongr_symm_apply Modified Mathlib/LinearAlgebra/Finsupp.lean + theorem Finsupp.llift_apply + theorem Finsupp.llift_symm_apply 2023-03-28 18:09:29 02c081e feat: port Algebra.Star.CHSH (#3135) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Star/Basic.lean + theorem star_ofNat Added Mathlib/Algebra/Star/CHSH.lean + theorem CHSH_id + theorem CHSH_inequality_of_comm + structure IsCHSHTuple + theorem TsirelsonInequality.sqrt_two_inv_mul_self + theorem TsirelsonInequality.tsirelson_inequality_aux + theorem tsirelson_inequality Modified Mathlib/Data/Nat/Cast/Basic.lean + theorem map_ofNat 2023-03-28 12:28:09 ad723d1 chore: update sha for Control.LawfulFix (#3149) The only change here comes from a change in `wlog` in mathlib3.The change is already present in mathlib4. ESTIMATED CHANGES Modified Mathlib/Control/LawfulFix.lean 2023-03-28 12:18:19 910ab72 feat: port Analysis.Convex.Strict (#3148) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/Convex/Strict.lean + theorem Directed.strictConvex_unionᵢ + theorem DirectedOn.strictConvex_unionₛ + theorem IsOpen.strictConvex_iff + theorem Set.Subsingleton.strictConvex + theorem StrictConvex.add + theorem StrictConvex.add_left + theorem StrictConvex.add_right + theorem StrictConvex.add_smul_mem + theorem StrictConvex.add_smul_sub_mem + theorem StrictConvex.affine_image + theorem StrictConvex.affine_preimage + theorem StrictConvex.affinity + theorem StrictConvex.eq_of_openSegment_subset_frontier + theorem StrictConvex.is_linear_image + theorem StrictConvex.is_linear_preimage + theorem StrictConvex.linear_image + theorem StrictConvex.linear_preimage + theorem StrictConvex.mem_smul_of_zero_mem + theorem StrictConvex.neg + theorem StrictConvex.openSegment_subset + theorem StrictConvex.preimage_add_left + theorem StrictConvex.preimage_add_right + theorem StrictConvex.preimage_smul + theorem StrictConvex.smul + theorem StrictConvex.smul_mem_of_zero_mem + theorem StrictConvex.sub + theorem StrictConvex.vadd + def StrictConvex + theorem strictConvex_Icc + theorem strictConvex_Ici + theorem strictConvex_Ico + theorem strictConvex_Iic + theorem strictConvex_Iio + theorem strictConvex_Ioc + theorem strictConvex_Ioi + theorem strictConvex_Ioo + theorem strictConvex_empty + theorem strictConvex_iff_convex + theorem strictConvex_iff_div + theorem strictConvex_iff_openSegment_subset + theorem strictConvex_iff_ordConnected + theorem strictConvex_singleton + theorem strictConvex_uIcc + theorem strictConvex_uIoc + theorem strictConvex_univ 2023-03-28 12:18:17 8e91a9b feat: Port/Data.Nat.Factorization.Basic (#3043) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Data/Nat/Factorization/Basic.lean + theorem Nat.Icc_factorization_eq_pow_dvd + theorem Nat.Ico_filter_pow_dvd_eq + theorem Nat.Ioc_filter_dvd_card_eq_div + theorem Nat.Prime.dvd_iff_one_le_factorization + theorem Nat.Prime.eq_of_factorization_pos + theorem Nat.Prime.factorization + theorem Nat.Prime.factorization_pos_of_dvd + theorem Nat.Prime.factorization_pow + theorem Nat.Prime.factorization_self + theorem Nat.Prime.pow_dvd_iff_dvd_ord_proj + theorem Nat.Prime.pow_dvd_iff_le_factorization + theorem Nat.card_multiples + theorem Nat.coprime_ord_compl + theorem Nat.dvd_iff_div_factorization_eq_tsub + theorem Nat.dvd_iff_prime_pow_dvd_dvd + theorem Nat.dvd_of_factorization_pos + theorem Nat.dvd_of_mem_factorization + theorem Nat.dvd_ord_compl_of_dvd_not_dvd + theorem Nat.dvd_ord_proj_of_dvd + theorem Nat.eq_factorization_iff + theorem Nat.eq_iff_prime_padicValNat_eq + theorem Nat.eq_of_factorization_eq + theorem Nat.eq_pow_of_factorization_eq_single + theorem Nat.exists_eq_pow_mul_and_not_dvd + theorem Nat.exists_factorization_lt_of_lt + theorem Nat.factor_iff_mem_factorization + def Nat.factorization + def Nat.factorizationEquiv + theorem Nat.factorizationEquiv_apply + theorem Nat.factorizationEquiv_inv_apply + theorem Nat.factorization_def + theorem Nat.factorization_disjoint_of_coprime + theorem Nat.factorization_div + theorem Nat.factorization_eq_card_pow_dvd + theorem Nat.factorization_eq_factors_multiset + theorem Nat.factorization_eq_of_coprime_left + theorem Nat.factorization_eq_of_coprime_right + theorem Nat.factorization_eq_zero_iff' + theorem Nat.factorization_eq_zero_iff + theorem Nat.factorization_eq_zero_iff_remainder + theorem Nat.factorization_eq_zero_of_lt + theorem Nat.factorization_eq_zero_of_non_prime + theorem Nat.factorization_eq_zero_of_not_dvd + theorem Nat.factorization_eq_zero_of_remainder + theorem Nat.factorization_gcd + theorem Nat.factorization_inj + theorem Nat.factorization_lcm + theorem Nat.factorization_le_factorization_mul_left + theorem Nat.factorization_le_factorization_mul_right + theorem Nat.factorization_le_iff_dvd + theorem Nat.factorization_le_of_le_pow + theorem Nat.factorization_lt + theorem Nat.factorization_mul + theorem Nat.factorization_mul_apply_of_coprime + theorem Nat.factorization_mul_of_coprime + theorem Nat.factorization_mul_support + theorem Nat.factorization_mul_support_of_coprime + theorem Nat.factorization_one + theorem Nat.factorization_one_right + theorem Nat.factorization_ord_compl + theorem Nat.factorization_pow + theorem Nat.factorization_prime_le_iff_dvd + theorem Nat.factorization_prod + theorem Nat.factorization_prod_pow_eq_self + theorem Nat.factorization_zero + theorem Nat.factorization_zero_right + theorem Nat.factors_count_eq + theorem Nat.le_of_mem_factorization + theorem Nat.multiplicative_factorization' + theorem Nat.multiplicative_factorization + theorem Nat.multiplicity_eq_factorization + theorem Nat.not_dvd_ord_compl + theorem Nat.ord_compl_dvd + theorem Nat.ord_compl_dvd_ord_compl_iff_dvd + theorem Nat.ord_compl_dvd_ord_compl_of_dvd + theorem Nat.ord_compl_le + theorem Nat.ord_compl_mul + theorem Nat.ord_compl_of_not_prime + theorem Nat.ord_compl_pos + theorem Nat.ord_proj_dvd + theorem Nat.ord_proj_dvd_ord_proj_iff_dvd + theorem Nat.ord_proj_dvd_ord_proj_of_dvd + theorem Nat.ord_proj_le + theorem Nat.ord_proj_mul + theorem Nat.ord_proj_mul_ord_compl_eq_self + theorem Nat.ord_proj_of_not_prime + theorem Nat.ord_proj_pos + theorem Nat.pos_of_mem_factorization + theorem Nat.pow_succ_factorization_not_dvd + theorem Nat.prime_of_mem_factorization + theorem Nat.prod_factorization_eq_prod_factors + theorem Nat.prod_factors_gcd_mul_prod_factors_mul + theorem Nat.prod_pow_factorization_eq_self + theorem Nat.prod_pow_prime_padicValNat + theorem Nat.prod_prime_factors_dvd + def Nat.recOnPosPrimePosCoprime + def Nat.recOnPrimeCoprime + def Nat.recOnPrimePow + theorem Nat.setOf_pow_dvd_eq_Icc_factorization + theorem Nat.support_factorization 2023-03-28 12:06:28 77b0a84 feat: port Analysis.Convex.Hull (#3147) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Analysis/Convex/Hull.lean + theorem AffineMap.image_convexHull + theorem Convex.convexHull_eq + theorem Convex.convexHull_subset_iff + theorem Convex.convex_remove_iff_not_mem_convexHull_remove + theorem IsLinearMap.convexHull_image + theorem LinearMap.convexHull_image + theorem affineSpan_convexHull + def convexHull + theorem convexHull_convexHull_union_left + theorem convexHull_convexHull_union_right + theorem convexHull_empty + theorem convexHull_empty_iff + theorem convexHull_eq_interᵢ + theorem convexHull_min + theorem convexHull_mono + theorem convexHull_neg + theorem convexHull_nonempty_iff + theorem convexHull_pair + theorem convexHull_singleton + theorem convexHull_smul + theorem convexHull_subset_affineSpan + theorem convexHull_univ + theorem convex_convexHull + theorem mem_convexHull_iff + theorem segment_subset_convexHull + theorem subset_convexHull 2023-03-28 11:05:20 25d14ba feat: port Analysis.Convex.Basic (#3061) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Order/Module.lean Added Mathlib/Analysis/Convex/Basic.lean + theorem AffineSubspace.convex + theorem Antitone.convex_ge + theorem Antitone.convex_gt + theorem Antitone.convex_le + theorem Antitone.convex_lt + theorem AntitoneOn.convex_ge + theorem AntitoneOn.convex_gt + theorem AntitoneOn.convex_le + theorem AntitoneOn.convex_lt + theorem Convex.add + theorem Convex.add_smul + theorem Convex.add_smul_mem + theorem Convex.add_smul_sub_mem + theorem Convex.affine_image + theorem Convex.affine_preimage + theorem Convex.affinity + theorem Convex.inter + theorem Convex.is_linear_image + theorem Convex.is_linear_preimage + theorem Convex.linear_image + theorem Convex.linear_preimage + theorem Convex.mem_smul_of_zero_mem + theorem Convex.neg + theorem Convex.openSegment_subset + theorem Convex.prod + theorem Convex.segment_subset + theorem Convex.smul + theorem Convex.smul_mem_of_zero_mem + theorem Convex.smul_preimage + theorem Convex.starConvex + theorem Convex.starConvex_iff + theorem Convex.sub + theorem Convex.translate + theorem Convex.translate_preimage_left + theorem Convex.translate_preimage_right + theorem Convex.vadd + def Convex + theorem Directed.convex_unionᵢ + theorem DirectedOn.convex_unionₛ + theorem Monotone.convex_ge + theorem Monotone.convex_gt + theorem Monotone.convex_le + theorem Monotone.convex_lt + theorem MonotoneOn.convex_ge + theorem MonotoneOn.convex_gt + theorem MonotoneOn.convex_le + theorem MonotoneOn.convex_lt + theorem Set.OrdConnected.convex + theorem Set.OrdConnected.convex_of_chain + theorem convex_Icc + theorem convex_Ici + theorem convex_Ico + theorem convex_Iic + theorem convex_Iio + theorem convex_Ioc + theorem convex_Ioi + theorem convex_Ioo + theorem convex_empty + theorem convex_halfspace_ge + theorem convex_halfspace_gt + theorem convex_halfspace_le + theorem convex_halfspace_lt + theorem convex_hyperplane + theorem convex_iff_div + theorem convex_iff_forall_pos + theorem convex_iff_openSegment_subset + theorem convex_iff_ordConnected + theorem convex_iff_pairwise_pos + theorem convex_iff_pointwise_add_subset + theorem convex_iff_segment_subset + theorem convex_interᵢ + theorem convex_interᵢ₂ + theorem convex_interₛ + theorem convex_openSegment + theorem convex_pi + theorem convex_segment + theorem convex_singleton + theorem convex_stdSimplex + theorem convex_uIcc + theorem convex_univ + theorem ite_eq_mem_stdSimplex + def stdSimplex + theorem stdSimplex_eq_inter 2023-03-28 10:53:25 f8741cb feat: port Algebra.GCDMonoid.Div (#3143) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/GCDMonoid/Div.lean + theorem Finset.Int.gcd_div_eq_one + theorem Finset.Int.gcd_div_id_eq_one + theorem Finset.Nat.gcd_div_eq_one + theorem Finset.Nat.gcd_div_id_eq_one + theorem Finset.Polynomial.gcd_div_eq_one + theorem Finset.Polynomial.gcd_div_id_eq_one 2023-03-28 10:43:54 7fb2ff3 feat: port Algebra.CubicDiscriminant (#3142) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/CubicDiscriminant.lean + theorem Cubic.C_mul_prod_X_sub_C_eq + theorem Cubic.a_of_eq + theorem Cubic.b_eq_three_roots + theorem Cubic.b_of_eq + theorem Cubic.c_eq_three_roots + theorem Cubic.c_of_eq + theorem Cubic.card_roots_le + theorem Cubic.card_roots_of_disc_ne_zero + theorem Cubic.coeff_eq_a + theorem Cubic.coeff_eq_b + theorem Cubic.coeff_eq_c + theorem Cubic.coeff_eq_d + theorem Cubic.coeff_eq_zero + theorem Cubic.d_eq_three_roots + theorem Cubic.d_of_eq + theorem Cubic.degree_of_a_eq_zero' + theorem Cubic.degree_of_a_eq_zero + theorem Cubic.degree_of_a_ne_zero' + theorem Cubic.degree_of_a_ne_zero + theorem Cubic.degree_of_b_eq_zero' + theorem Cubic.degree_of_b_eq_zero + theorem Cubic.degree_of_b_ne_zero' + theorem Cubic.degree_of_b_ne_zero + theorem Cubic.degree_of_c_eq_zero' + theorem Cubic.degree_of_c_eq_zero + theorem Cubic.degree_of_c_ne_zero' + theorem Cubic.degree_of_c_ne_zero + theorem Cubic.degree_of_d_eq_zero' + theorem Cubic.degree_of_d_eq_zero + theorem Cubic.degree_of_d_ne_zero' + theorem Cubic.degree_of_d_ne_zero + theorem Cubic.degree_of_zero + def Cubic.disc + theorem Cubic.disc_eq_prod_three_roots + theorem Cubic.disc_ne_zero_iff_roots_ne + theorem Cubic.disc_ne_zero_iff_roots_nodup + theorem Cubic.eq_prod_three_roots + theorem Cubic.eq_sum_three_roots + def Cubic.equiv + theorem Cubic.leadingCoeff_of_a_ne_zero' + theorem Cubic.leadingCoeff_of_a_ne_zero + theorem Cubic.leadingCoeff_of_b_ne_zero' + theorem Cubic.leadingCoeff_of_b_ne_zero + theorem Cubic.leadingCoeff_of_c_eq_zero' + theorem Cubic.leadingCoeff_of_c_eq_zero + theorem Cubic.leadingCoeff_of_c_ne_zero' + theorem Cubic.leadingCoeff_of_c_ne_zero + def Cubic.map + theorem Cubic.map_roots + theorem Cubic.map_toPoly + theorem Cubic.mem_roots_iff + theorem Cubic.monic_of_a_eq_one' + theorem Cubic.monic_of_a_eq_one + theorem Cubic.monic_of_b_eq_one' + theorem Cubic.monic_of_b_eq_one + theorem Cubic.monic_of_c_eq_one' + theorem Cubic.monic_of_c_eq_one + theorem Cubic.monic_of_d_eq_one' + theorem Cubic.monic_of_d_eq_one + theorem Cubic.natDegree_of_a_eq_zero' + theorem Cubic.natDegree_of_a_eq_zero + theorem Cubic.natDegree_of_a_ne_zero' + theorem Cubic.natDegree_of_a_ne_zero + theorem Cubic.natDegree_of_b_eq_zero' + theorem Cubic.natDegree_of_b_eq_zero + theorem Cubic.natDegree_of_b_ne_zero' + theorem Cubic.natDegree_of_b_ne_zero + theorem Cubic.natDegree_of_c_eq_zero' + theorem Cubic.natDegree_of_c_eq_zero + theorem Cubic.natDegree_of_c_ne_zero' + theorem Cubic.natDegree_of_c_ne_zero + theorem Cubic.natDegree_of_zero + theorem Cubic.ne_zero_of_a_ne_zero + theorem Cubic.ne_zero_of_b_ne_zero + theorem Cubic.ne_zero_of_c_ne_zero + theorem Cubic.ne_zero_of_d_ne_zero + theorem Cubic.of_a_eq_zero' + theorem Cubic.of_a_eq_zero + theorem Cubic.of_b_eq_zero' + theorem Cubic.of_b_eq_zero + theorem Cubic.of_c_eq_zero' + theorem Cubic.of_c_eq_zero + theorem Cubic.of_d_eq_zero' + theorem Cubic.of_d_eq_zero + theorem Cubic.prod_X_sub_C_eq + def Cubic.roots + theorem Cubic.splits_iff_card_roots + theorem Cubic.splits_iff_roots_eq_three + def Cubic.toPoly + theorem Cubic.toPoly_eq_zero_iff + theorem Cubic.toPoly_injective + theorem Cubic.zero + structure Cubic 2023-03-27 23:46:55 d6829e6 chore: Fix `cast` mistakes (#3141) Match https://github.com/leanprover-community/mathlib/pull/18654 * [`algebra.group.opposite`@`acebd8d49928f6ed8920e502a6c90674e75bd441`..`76de8ae01554c3b37d66544866659ff174e66e1f`](https://leanprover-community.github.io/mathlib-port-status/file/algebra/group/opposite?range=acebd8d49928f6ed8920e502a6c90674e75bd441..76de8ae01554c3b37d66544866659ff174e66e1f) * [`algebra.ring.defs`@`314d3a578607dbd2eb2481ab15fceeb62b36cbdb`..`76de8ae01554c3b37d66544866659ff174e66e1f`](https://leanprover-community.github.io/mathlib-port-status/file/algebra/ring/defs?range=314d3a578607dbd2eb2481ab15fceeb62b36cbdb..76de8ae01554c3b37d66544866659ff174e66e1f) * [`algebra.ring.opposite`@`acebd8d49928f6ed8920e502a6c90674e75bd441`..`76de8ae01554c3b37d66544866659ff174e66e1f`](https://leanprover-community.github.io/mathlib-port-status/file/algebra/ring/opposite?range=acebd8d49928f6ed8920e502a6c90674e75bd441..76de8ae01554c3b37d66544866659ff174e66e1f) * [`algebra.field.opposite`@`acebd8d49928f6ed8920e502a6c90674e75bd441`..`76de8ae01554c3b37d66544866659ff174e66e1f`](https://leanprover-community.github.io/mathlib-port-status/file/algebra/field/opposite?range=acebd8d49928f6ed8920e502a6c90674e75bd441..76de8ae01554c3b37d66544866659ff174e66e1f) ESTIMATED CHANGES Modified Mathlib/Algebra/Field/Opposite.lean Modified Mathlib/Algebra/Group/Opposite.lean Modified Mathlib/Algebra/Ring/Defs.lean Modified Mathlib/Algebra/Ring/Opposite.lean 2023-03-27 23:46:54 426aed3 feat: port changes to `order/game_add` (#2532) Simultaneously ports various PRs on this file. This also fixes a mis-ported alias in `Mathlib/Order/RelIso/Basic.lean` ESTIMATED CHANGES Modified Mathlib/Order/GameAdd.lean + theorem Acc.sym2_gameAdd + theorem Prod.GameAdd.fix_eq + theorem Prod.GameAdd.induction + theorem Prod.GameAdd.to_sym2 + theorem Prod.gameAdd_iff + theorem Prod.gameAdd_mk_iff + theorem Prod.gameAdd_swap_swap + theorem Prod.gameAdd_swap_swap_mk +/- theorem Prod.rprod_le_transGen_gameAdd + theorem Sym2.GameAdd.fix_eq + theorem Sym2.GameAdd.fst + theorem Sym2.GameAdd.fst_snd + theorem Sym2.GameAdd.induction + theorem Sym2.GameAdd.snd + theorem Sym2.GameAdd.snd_fst + def Sym2.GameAdd + theorem Sym2.gameAdd_iff + theorem Sym2.gameAdd_mk'_iff + theorem WellFounded.sym2_gameAdd Modified Mathlib/Order/RelIso/Basic.lean 2023-03-27 22:17:46 f92bbb9 feat: `LinearOrder α` extends `Ord α` (#2858) This PR makes `LinearOrder` lawfully extend `Ord`. Since `LinearOrder` has decidable order relations, we take `compare` to be `compareOfLessAndEq` by default for a linear order. Since typeclass synthesis is preferred by structure instances to optparams, this does not create non-defeq diamonds for types which already have a different implementation of `Ord`. We also add a field `compare_eq_compareOfLessAndEq` which encodes the lawful quality by demanding equality to the canonical comparison. Motivation: `Array` functions like `min` largely use `Ord`, so this lets us seamlessly use these array functions when we only have a linear order. See [zulip](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/Ord.20.C9.91.20from.20LinearOrder.20.C9.91.3F). ESTIMATED CHANGES Modified Mathlib/Data/Fin/Basic.lean Modified Mathlib/Init/Algebra/Order.lean + theorem compare_eq_iff_eq + theorem compare_ge_iff_ge + theorem compare_gt_iff_gt + theorem compare_iff + theorem compare_le_iff_le + theorem compare_lt_iff_lt Modified Mathlib/Init/Data/Ordering/Basic.lean + def Ordering.toRel Modified Mathlib/Order/Basic.lean + def LinearOrder.liftWithOrd' + def LinearOrder.liftWithOrd + theorem compare_of_injective_eq_compareOfLessAndEq Modified Mathlib/Tactic/Ring/Basic.lean 2023-03-27 21:46:40 39576ed chore: Split `data.set.pairwise` (#3117) Match https://github.com/leanprover-community/mathlib/pull/17880 The new import of `Mathlib.Data.Set.Lattice` in `Mathlib.Data.Finset.Basic` was implied transitively from tactic imports present in Lean 3. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/BigOperators/Basic.lean Modified Mathlib/Data/Finset/Basic.lean Modified Mathlib/Data/Finset/Option.lean Modified Mathlib/Data/List/Nodup.lean Modified Mathlib/Data/Multiset/FinsetOps.lean Modified Mathlib/Data/Prod/TProd.lean Modified Mathlib/Data/Set/Intervals/Group.lean Renamed Mathlib/Data/Set/Pairwise.lean to Mathlib/Data/Set/Pairwise/Basic.lean - theorem Pairwise.bunionᵢ_injective - theorem Pairwise.subset_of_bunionᵢ_subset_bunionᵢ - theorem Set.PairwiseDisjoint.bunionᵢ - theorem Set.PairwiseDisjoint.subset_of_bunionᵢ_subset_bunionᵢ - theorem Set.bunionᵢ_diff_bunionᵢ_eq - theorem Set.pairwiseDisjoint_unionᵢ - theorem Set.pairwiseDisjoint_unionₛ - theorem Set.pairwise_unionᵢ - theorem Set.pairwise_unionₛ Added Mathlib/Data/Set/Pairwise/Lattice.lean + theorem Pairwise.bunionᵢ_injective + theorem Pairwise.subset_of_bunionᵢ_subset_bunionᵢ + theorem Set.PairwiseDisjoint.bunionᵢ + theorem Set.PairwiseDisjoint.subset_of_bunionᵢ_subset_bunionᵢ + theorem Set.bunionᵢ_diff_bunionᵢ_eq + theorem Set.pairwiseDisjoint_unionᵢ + theorem Set.pairwiseDisjoint_unionₛ + theorem Set.pairwise_unionᵢ + theorem Set.pairwise_unionₛ Modified Mathlib/Data/Set/Pointwise/SMul.lean Modified Mathlib/Order/Antichain.lean Modified Mathlib/Order/Chain.lean Modified Mathlib/Order/SuccPred/IntervalSucc.lean 2023-03-27 21:01:22 2cacae9 feat: The upper closure is bounded below (#3138) Match https://github.com/leanprover-community/mathlib/pull/18637 [`order.upper_lower.basic`@`59694bd07f0a39c5beccba34bd9f413a160782bf`..`e9ce88cd0d54891c714c604076084f763dd480ed`](https://leanprover-community.github.io/mathlib-port-status/file/order/upper_lower/basic?range=59694bd07f0a39c5beccba34bd9f413a160782bf..e9ce88cd0d54891c714c604076084f763dd480ed) ESTIMATED CHANGES Modified Mathlib/Order/UpperLower/Basic.lean + theorem bddAbove_lowerClosure + theorem bddBelow_upperClosure + theorem lowerBounds_upperClosure + theorem upperBounds_lowerClosure 2023-03-27 21:01:20 f7b1c21 feat: Simple graphs form a complete boolean algebra (#2502) Match https://github.com/leanprover-community/mathlib/pull/18285 * [`combinatorics.simple_graph.basic`@`db53863fb135228820ee0b08e8dce9349a3d911b`..`c6ef6387ede9983aee397d442974e61f89dfd87b`](https://leanprover-community.github.io/mathlib-port-status/file/combinatorics/simple_graph/basic?range=db53863fb135228820ee0b08e8dce9349a3d911b..c6ef6387ede9983aee397d442974e61f89dfd87b) * [`combinatorics.simple_graph.subgraph`@`d6e84a0d3db8910c99b3aa0c56be88fa8bab6f80`..`c6ef6387ede9983aee397d442974e61f89dfd87b`](https://leanprover-community.github.io/mathlib-port-status/file/combinatorics/simple_graph/subgraph?range=d6e84a0d3db8910c99b3aa0c56be88fa8bab6f80..c6ef6387ede9983aee397d442974e61f89dfd87b) ESTIMATED CHANGES Modified Mathlib/Combinatorics/SimpleGraph/Basic.lean + theorem SimpleGraph.adj_inj + theorem SimpleGraph.adj_injective + theorem SimpleGraph.infᵢ_adj + theorem SimpleGraph.infᵢ_adj_of_nonempty + theorem SimpleGraph.infₛ_adj + theorem SimpleGraph.infₛ_adj_of_nonempty + theorem SimpleGraph.supᵢ_adj + theorem SimpleGraph.supₛ_adj Modified Mathlib/Combinatorics/SimpleGraph/Subgraph.lean - def SimpleGraph.Subgraph.IsSubgraph - def SimpleGraph.Subgraph.bot - theorem SimpleGraph.Subgraph.bot_verts + theorem SimpleGraph.Subgraph.edgeSet_infᵢ + theorem SimpleGraph.Subgraph.edgeSet_infₛ + theorem SimpleGraph.Subgraph.edgeSet_supᵢ + theorem SimpleGraph.Subgraph.edgeSet_supₛ +/- theorem SimpleGraph.Subgraph.inf_adj + theorem SimpleGraph.Subgraph.infᵢ_adj + theorem SimpleGraph.Subgraph.infᵢ_adj_of_nonempty + theorem SimpleGraph.Subgraph.infₛ_adj + theorem SimpleGraph.Subgraph.infₛ_adj_of_nonempty - def SimpleGraph.Subgraph.inter + theorem SimpleGraph.Subgraph.neighborSet_bot + theorem SimpleGraph.Subgraph.neighborSet_infᵢ + theorem SimpleGraph.Subgraph.neighborSet_infₛ + theorem SimpleGraph.Subgraph.neighborSet_supᵢ + theorem SimpleGraph.Subgraph.neighborSet_supₛ + theorem SimpleGraph.Subgraph.neighborSet_top +/- theorem SimpleGraph.Subgraph.not_bot_adj + theorem SimpleGraph.Subgraph.spanningCoe_inj +/- theorem SimpleGraph.Subgraph.sup_adj + theorem SimpleGraph.Subgraph.supᵢ_adj + theorem SimpleGraph.Subgraph.supₛ_adj - def SimpleGraph.Subgraph.top + theorem SimpleGraph.Subgraph.top_adj - theorem SimpleGraph.Subgraph.top_adj_iff - theorem SimpleGraph.Subgraph.top_verts - def SimpleGraph.Subgraph.union + theorem SimpleGraph.Subgraph.verts_bot +/- theorem SimpleGraph.Subgraph.verts_inf + theorem SimpleGraph.Subgraph.verts_infᵢ + theorem SimpleGraph.Subgraph.verts_infₛ +/- theorem SimpleGraph.Subgraph.verts_sup + theorem SimpleGraph.Subgraph.verts_supᵢ + theorem SimpleGraph.Subgraph.verts_supₛ + theorem SimpleGraph.Subgraph.verts_top 2023-03-27 20:51:41 d969fc0 chore: Update `RingTheory.RingInvo` SHA (#3140) Match https://github.com/leanprover-community/mathlib/pull/18175. This made it to the original port, but the SHA was wrong. [`ring_theory.ring_invo`@`09597669f02422ed388036273d8848119699c22f`..`ec2dfcae3677bcdc0d8e906831b1d251dfcbc0f1`](https://leanprover-community.github.io/mathlib-port-status/file/ring_theory/ring_invo?range=09597669f02422ed388036273d8848119699c22f..ec2dfcae3677bcdc0d8e906831b1d251dfcbc0f1) ESTIMATED CHANGES Modified Mathlib/RingTheory/RingInvo.lean 2023-03-27 18:03:11 7664848 feat: `s ∩ t * s ∪ t ⊆ s * t` (#1619) Match https://github.com/leanprover-community/mathlib/pull/17961 ESTIMATED CHANGES Modified Mathlib/Data/Finset/NAry.lean + theorem Finset.image₂_inter_union_subset + theorem Finset.image₂_union_inter_subset + theorem Set.Finite.toFinset_image2 + theorem Set.toFinset_image2 Modified Mathlib/Data/Finset/Pointwise.lean + theorem Finset.card_one + theorem Finset.card_smul_finset + theorem Finset.image_smul_comm + theorem Finset.image_smul_distrib + theorem Finset.inter_mul_union_subset + theorem Finset.union_mul_inter_subset + theorem Set.Finite.toFinset_mul + theorem Set.Finite.toFinset_one + theorem Set.Finite.toFinset_smul + theorem Set.Finite.toFinset_smul_set + theorem Set.Finite.toFinset_vsub + theorem Set.toFinset_mul + theorem Set.toFinset_one + theorem Set.toFinset_smul + theorem Set.toFinset_smul_set + theorem Set.toFinset_vsub Modified Mathlib/Data/Polynomial/RingDivision.lean Modified Mathlib/Data/Set/Finite.lean Modified Mathlib/Data/Set/NAry.lean + theorem Set.image2_inter_union_subset + theorem Set.image2_union_inter_subset Modified Mathlib/Data/Set/Pointwise/Basic.lean + theorem Set.inter_mul_union_subset + theorem Set.union_mul_inter_subset Modified Mathlib/Data/Set/Pointwise/Finite.lean + theorem Set.finite_one Modified Mathlib/Data/Set/Pointwise/SMul.lean + theorem Set.image_smul_comm + theorem Set.image_smul_distrib 2023-03-27 16:13:50 4d365d3 chore: update SHAs (#3128) I forgot to add the SHAs in #3121 when forward-porting leanprover-community/mathlib#18644 ESTIMATED CHANGES Modified Mathlib/Analysis/NormedSpace/MStructure.lean Modified Mathlib/Data/List/Func.lean Modified Mathlib/Logic/Equiv/List.lean 2023-03-27 16:13:49 25df797 fix: restore mathlib3 definition of Multiset.count (#3088) Previously discussed in https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/count_eq_card_filter_eq ESTIMATED CHANGES Modified Mathlib/Algebra/BigOperators/Associated.lean Modified Mathlib/Data/Multiset/Basic.lean +/- theorem Multiset.coe_count +/- theorem Multiset.count_replicate +/- theorem Multiset.count_replicate_self Modified Mathlib/Data/Multiset/Dedup.lean Modified Mathlib/Data/Multiset/Nodup.lean 2023-03-27 16:01:07 86e3d29 feat: port CategoryTheory.Localization.Opposite (#2949) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Localization/Opposite.lean + def CategoryTheory.Localization.StrictUniversalPropertyFixedTarget.op 2023-03-27 15:24:13 b8f0154 feat: forward-port #15990 (#3120) ESTIMATED CHANGES Modified Mathlib/SetTheory/Ordinal/Arithmetic.lean + theorem Ordinal.mod_le + theorem Ordinal.mod_mod + theorem Ordinal.mod_mod_of_dvd + theorem Ordinal.mul_add_mod_self + theorem Ordinal.mul_mod Modified Mathlib/SetTheory/Ordinal/Exponential.lean + theorem Ordinal.div_opow_log_pos +/- theorem Ordinal.opow_dvd_opow 2023-03-27 15:03:10 da32edd chore: fix align linebreaks (#3127) Same as #3103, I missed those before, probably because I didn't rebase on HEAD before. This shouldnow include all cases of aligns with linebreak. ``` find . -type f -name "*.lean" -exec sed -i -E 'N;s/^#align ([^[:space:]]+)\n *([^[:space:]]+)$/#align \1 \2/' {} \; ``` ESTIMATED CHANGES Modified Mathlib/Algebra/CharZero/Quotient.lean Modified Mathlib/CategoryTheory/EssentiallySmall.lean Modified Mathlib/CategoryTheory/Limits/ConeCategory.lean Modified Mathlib/GroupTheory/MonoidLocalization.lean Modified Mathlib/Order/Partition/Equipartition.lean 2023-03-27 15:03:09 de17926 feat: port Data.Polynomial.Splits (#3107) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Data/Polynomial/Splits.lean + theorem Polynomial.Splits.def + def Polynomial.Splits + theorem Polynomial.adjoin_rootSet_eq_range + theorem Polynomial.aeval_root_derivative_of_splits + theorem Polynomial.degree_eq_card_roots' + theorem Polynomial.degree_eq_card_roots + theorem Polynomial.degree_eq_one_of_irreducible_of_splits + theorem Polynomial.eq_X_sub_C_of_splits_of_single_root + theorem Polynomial.eq_prod_roots_of_monic_of_splits_id + theorem Polynomial.eq_prod_roots_of_splits + theorem Polynomial.eq_prod_roots_of_splits_id + theorem Polynomial.exists_root_of_splits' + theorem Polynomial.exists_root_of_splits + theorem Polynomial.image_rootSet + theorem Polynomial.map_rootOfSplits' + theorem Polynomial.map_rootOfSplits + theorem Polynomial.mem_lift_of_splits_of_roots_mem_range + theorem Polynomial.natDegree_eq_card_roots' + theorem Polynomial.natDegree_eq_card_roots + theorem Polynomial.prod_roots_eq_coeff_zero_of_monic_of_split + def Polynomial.rootOfSplits' + theorem Polynomial.rootOfSplits'_eq_rootOfSplits + def Polynomial.rootOfSplits + theorem Polynomial.roots_map + theorem Polynomial.roots_ne_zero_of_splits' + theorem Polynomial.roots_ne_zero_of_splits + theorem Polynomial.splits_C + theorem Polynomial.splits_X + theorem Polynomial.splits_X_pow + theorem Polynomial.splits_X_sub_C + theorem Polynomial.splits_comp_of_splits + theorem Polynomial.splits_id_iff_splits + theorem Polynomial.splits_iff + theorem Polynomial.splits_iff_card_roots + theorem Polynomial.splits_iff_exists_multiset + theorem Polynomial.splits_map_iff + theorem Polynomial.splits_mul + theorem Polynomial.splits_mul_iff + theorem Polynomial.splits_of_degree_eq_one + theorem Polynomial.splits_of_degree_le_one + theorem Polynomial.splits_of_exists_multiset + theorem Polynomial.splits_of_isUnit + theorem Polynomial.splits_of_map_degree_eq_one + theorem Polynomial.splits_of_map_eq_C + theorem Polynomial.splits_of_natDegree_eq_one + theorem Polynomial.splits_of_natDegree_le_one + theorem Polynomial.splits_of_splits_gcd_left + theorem Polynomial.splits_of_splits_gcd_right + theorem Polynomial.splits_of_splits_id + theorem Polynomial.splits_of_splits_mul' + theorem Polynomial.splits_of_splits_mul + theorem Polynomial.splits_of_splits_of_dvd + theorem Polynomial.splits_one + theorem Polynomial.splits_pow + theorem Polynomial.splits_prod + theorem Polynomial.splits_prod_iff + theorem Polynomial.splits_zero + theorem Polynomial.sum_roots_eq_nextCoeff_of_monic_of_split 2023-03-27 13:58:40 5fddd0c chore: forward-port leanprover-community/mathlib#18644 (#3121) ESTIMATED CHANGES Modified Mathlib/Analysis/NormedSpace/MStructure.lean Modified Mathlib/Data/List/Func.lean +/- theorem List.Func.nil_sub +/- theorem List.Func.sub_nil Modified Mathlib/Logic/Equiv/List.lean +/- def Equiv.listEquivSelfOfEquivNat 2023-03-27 13:48:43 363572d feat: port CategoryTheory.Localization.Predicate (#2930) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Localization/Predicate.lean + theorem CategoryTheory.Functor.IsLocalization.for_id + theorem CategoryTheory.Functor.IsLocalization.mk' + theorem CategoryTheory.Functor.IsLocalization.of_equivalence_target + theorem CategoryTheory.Functor.IsLocalization.of_iso + def CategoryTheory.Localization.Lifting.iso + def CategoryTheory.Localization.Lifting.ofIsos + structure CategoryTheory.Localization.StrictUniversalPropertyFixedTarget + def CategoryTheory.Localization.compEquivalenceFromModelInverseIso + theorem CategoryTheory.Localization.comp_liftNatTrans + def CategoryTheory.Localization.equivalenceFromModel + theorem CategoryTheory.Localization.essSurj + def CategoryTheory.Localization.fac + def CategoryTheory.Localization.functorEquivalence + theorem CategoryTheory.Localization.inverts + def CategoryTheory.Localization.isoOfHom + def CategoryTheory.Localization.lift + def CategoryTheory.Localization.liftNatIso + def CategoryTheory.Localization.liftNatTrans + theorem CategoryTheory.Localization.liftNatTrans_app + theorem CategoryTheory.Localization.liftNatTrans_id + theorem CategoryTheory.Localization.natTrans_ext + def CategoryTheory.Localization.qCompEquivalenceFromModelFunctorIso + def CategoryTheory.Localization.strictUniversalPropertyFixedTargetId + def CategoryTheory.Localization.strictUniversalPropertyFixedTargetQ + def CategoryTheory.Localization.whiskeringLeftFunctor' + theorem CategoryTheory.Localization.whiskeringLeftFunctor'_eq + theorem CategoryTheory.Localization.whiskeringLeftFunctor'_obj + def CategoryTheory.Localization.whiskeringLeftFunctor 2023-03-27 13:30:37 b306241 chore: strip trailing spaces in `Data.Polynomial.RingDivision` (#3126) This was introduced in #3029, due to a combination of `mathport` emitting trailing spaces, and the PR author not using an editor that strips them automatically (unlike vscode which does). ESTIMATED CHANGES Modified Mathlib/Data/Polynomial/RingDivision.lean +/- theorem Polynomial.roots_X_pow 2023-03-27 13:30:35 5121293 chore: forward-port leanprover-community/mathlib#18636 (#3125) The change to `Mathlib/Data/Set/Intervals/OrdConnected.lean` was already forward-ported in #3077. Also fixes a remaining `simple_graph` in the comments of one of the files. ESTIMATED CHANGES Modified Mathlib/Data/Set/Intervals/OrdConnected.lean Modified Mathlib/Order/Antichain.lean + theorem IsAntichain.not_lt + theorem isAntichain_iff_forall_not_lt 2023-03-27 13:30:34 32f816e feat: port CategoryTheory.Monoidal.Discrete (#3038) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Monoidal/Discrete.lean + def CategoryTheory.Discrete.monoidalFunctor + def CategoryTheory.Discrete.monoidalFunctorComp + theorem CategoryTheory.Discrete.monoidal_tensorUnit_as 2023-03-27 12:09:53 7c5a533 feat: port Data.MvPolynomial.Division (#3100) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Data/MvPolynomial/Division.lean + theorem MvPolynomial.add_divMonomial + theorem MvPolynomial.coeff_divMonomial + theorem MvPolynomial.coeff_modMonomial_of_le + theorem MvPolynomial.coeff_modMonomial_of_not_le + theorem MvPolynomial.divMonomial_add + theorem MvPolynomial.divMonomial_add_modMonomial + theorem MvPolynomial.divMonomial_add_modMonomial_single + theorem MvPolynomial.divMonomial_monomial + theorem MvPolynomial.divMonomial_monomial_mul + theorem MvPolynomial.divMonomial_mul_monomial + theorem MvPolynomial.divMonomial_zero + theorem MvPolynomial.modMonomial_add_divMonomial + theorem MvPolynomial.modMonomial_add_divMonomial_single + theorem MvPolynomial.modMonomial_x + theorem MvPolynomial.monomial_dvd_monomial + theorem MvPolynomial.monomial_modMonomial + theorem MvPolynomial.monomial_mul_modMonomial + theorem MvPolynomial.monomial_one_dvd_iff_modMonomial_eq_zero + theorem MvPolynomial.monomial_one_dvd_monomial_one + theorem MvPolynomial.mul_monomial_modMonomial + theorem MvPolynomial.mul_x_divMonomial + theorem MvPolynomial.mul_x_modMonomial + theorem MvPolynomial.support_divMonomial + theorem MvPolynomial.x_divMonomial + theorem MvPolynomial.x_dvd_iff_modMonomial_eq_zero + theorem MvPolynomial.x_dvd_monomial + theorem MvPolynomial.x_dvd_x + theorem MvPolynomial.x_mul_divMonomial + theorem MvPolynomial.x_mul_modMonomial + theorem MvPolynomial.zero_divMonomial 2023-03-27 12:09:52 3266301 feat: port Combinatorics.SimpleGraph.Matching (#3071) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Combinatorics/SimpleGraph/Matching.lean + theorem SimpleGraph.Subgraph.IsMatching.even_card + theorem SimpleGraph.Subgraph.IsMatching.support_eq_verts + theorem SimpleGraph.Subgraph.IsMatching.toEdge.surjective + theorem SimpleGraph.Subgraph.IsMatching.toEdge_eq_of_adj + theorem SimpleGraph.Subgraph.IsMatching.toEdge_eq_toEdge_of_adj + def SimpleGraph.Subgraph.IsMatching + theorem SimpleGraph.Subgraph.IsPerfectMatching.even_card + def SimpleGraph.Subgraph.IsPerfectMatching + theorem SimpleGraph.Subgraph.isMatching_iff_forall_degree + theorem SimpleGraph.Subgraph.isPerfectMatching_iff + theorem SimpleGraph.Subgraph.isPerfectMatching_iff_forall_degree 2023-03-27 11:56:54 1b816f7 feat: port Combinatorics.Derangements.Finite (#3102) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Combinatorics/Derangements/Finite.lean + theorem card_derangements_eq_numDerangements + theorem card_derangements_fin_add_two + theorem card_derangements_fin_eq_numDerangements + theorem card_derangements_invariant + def numDerangements + theorem numDerangements_add_two + theorem numDerangements_one + theorem numDerangements_succ + theorem numDerangements_sum + theorem numDerangements_zero 2023-03-27 11:17:31 50754c1 chore: update SHA (#3123) #1798 did not update the SHA https://leanprover-community.github.io/mathlib-port-status/file/order/game_add?range=99e8971dc62f1f7ecf693d75e75fbbabd55849de..6f870fad180eb0f5d8f1e4f385216c25513cb2f8 ESTIMATED CHANGES Modified Mathlib/Order/GameAdd.lean 2023-03-27 10:38:31 2d6e2be sync: update sha from backports (#3079) These files have been primarily modified by backports and need little modification: * `topology.basic`: #1826 - modified with a porting note, which can now be removed * `data.real.cau_seq_completion`: #1469 - not a backport, but forgot to update the SHA * `order.filter.n_ary.basic`: #1967 - this PR forgot to update the SHA * `ring_theory.valuation.basic`: The change is a small golf that is now included in this PR ESTIMATED CHANGES Modified Mathlib/Data/Real/CauSeqCompletion.lean Modified Mathlib/Order/Filter/NAry.lean Modified Mathlib/RingTheory/Valuation/Basic.lean +/- theorem Valuation.toMonoidWithZeroHom_coe_eq_coe Modified Mathlib/Topology/Basic.lean 2023-03-27 07:56:30 a0733e9 chore: bump Std (#3113) Notably incorporates https://github.com/leanprover/std4/pull/98 and https://github.com/leanprover/std4/pull/109. https://github.com/leanprover/std4/pull/98 moves a number of lemmas from Mathlib to Std, so the bump requires deleting them in Mathlib. I did check on each lemma whether its attributes were kept in the move (and gave attribute markings in Mathlib if they were not present in Std), but a reviewer may wish to re-check. `List.mem_map` changed statement from `b ∈ l.map f ↔ ∃ a, a ∈ l ∧ b = f a` to `b ∈ l.map f ↔ ∃ a, a ∈ l ∧ f a = b`. Similarly for `List.exists_of_mem_map`. This was a deliberate change, so I have simply adjusted proofs (many become simpler, which supports the change). I also deleted `List.mem_map'`, `List.exists_of_mem_map'`, which were temporary versions in Mathlib while waiting for this change (replacing their uses with the unprimed versions). Also, the lemma `sublist_nil_iff_eq_nil` seems to have been renamed to `sublist_nil` during the move, so I added an alias for the old name. (another issue fixed during review by @digama0) ~~`List.Sublist.filter` had an argument change from explicit to implicit. This appears to have been an oversight (cc @JamesGallicchio). I have temporarily introduced `List.Sublist.filter'` with the argument explicit, and replaced Mathlib uses of `Sublist.filter` with `Sublist.filter'`. Later we can fix the argument in Std, and then delete `List.Sublist.filter'`.~~ ESTIMATED CHANGES Modified Mathlib/Algebra/TrivSqZeroExt.lean Modified Mathlib/Combinatorics/SimpleGraph/Connectivity.lean Modified Mathlib/Combinatorics/Young/YoungDiagram.lean Modified Mathlib/Data/Fin/Tuple/NatAntidiagonal.lean Modified Mathlib/Data/Finsupp/BigOperators.lean Modified Mathlib/Data/Fintype/Perm.lean Modified Mathlib/Data/Int/Range.lean Modified Mathlib/Data/List/Basic.lean - theorem List.Sublist.diff_right - theorem List.Sublist.eq_of_length - theorem List.Sublist.eq_of_length_le - theorem List.Sublist.erase - theorem List.Sublist.filter - theorem List.Sublist.filterMap - theorem List.cons_diff - theorem List.cons_diff_of_mem - theorem List.cons_diff_of_not_mem - theorem List.diff_append - theorem List.diff_cons - theorem List.diff_cons_right - theorem List.diff_eq_foldl - theorem List.diff_erase - theorem List.diff_nil - theorem List.diff_sublist - theorem List.diff_subset - theorem List.eq_replicate - theorem List.filterMap_append - theorem List.filterMap_cons - theorem List.filterMap_cons_none - theorem List.filterMap_cons_some - theorem List.filterMap_eq_filter - theorem List.filterMap_eq_map - theorem List.filterMap_filter - theorem List.filterMap_filterMap - theorem List.filterMap_join - theorem List.filterMap_map - theorem List.filterMap_nil - theorem List.filterMap_some - theorem List.filter_append - theorem List.filter_congr' - theorem List.filter_cons_of_neg - theorem List.filter_cons_of_pos - theorem List.filter_eq_nil - theorem List.filter_eq_self - theorem List.filter_filter - theorem List.filter_filterMap - theorem List.filter_length_eq_length - theorem List.filter_nil - theorem List.filter_sublist - theorem List.find?_cons_of_neg - theorem List.find?_cons_of_pos - theorem List.find?_eq_none - theorem List.find?_some - theorem List.length_filterMap_le - theorem List.length_filter_le - theorem List.map_filter - theorem List.map_filterMap - theorem List.map_filterMap_of_inv - theorem List.map_filterMap_some_eq_filter_map_is_some - theorem List.mem_diff_of_mem - theorem List.mem_filterMap - theorem List.mem_map' - theorem List.mem_of_ne_of_mem - theorem List.ne_and_not_mem_of_not_mem_cons - theorem List.ne_of_not_mem_cons - theorem List.nil_diff - theorem List.not_mem_append - theorem List.not_mem_cons_of_ne_of_not_mem - theorem List.not_mem_of_not_mem_cons - theorem List.replicate_sublist_replicate - theorem List.singleton_sublist - theorem List.sublist_nil_iff_eq_nil Modified Mathlib/Data/List/Card.lean Modified Mathlib/Data/List/Dedup.lean Modified Mathlib/Data/List/FinRange.lean Modified Mathlib/Data/List/Join.lean Modified Mathlib/Data/List/Nodup.lean Modified Mathlib/Data/List/Pairwise.lean Modified Mathlib/Data/List/Perm.lean Modified Mathlib/Data/List/Rotate.lean Modified Mathlib/Data/List/Sections.lean Modified Mathlib/Data/List/Sigma.lean Modified Mathlib/Data/Multiset/Antidiagonal.lean Modified Mathlib/Data/Multiset/Basic.lean Modified Mathlib/Data/Multiset/Powerset.lean Modified Mathlib/Data/Vector/Mem.lean Modified Mathlib/Deprecated/Subgroup.lean Modified Mathlib/Deprecated/Subring.lean Modified Mathlib/Dynamics/PeriodicPts.lean Modified Mathlib/GroupTheory/Perm/Sign.lean Modified Mathlib/RingTheory/Subsemiring/Basic.lean Modified Mathlib/SetTheory/Ordinal/CantorNormalForm.lean Modified lake-manifest.json 2023-03-27 07:56:28 9738781 feat: port CategoryTheory.Monoidal.Linear (#3112) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Monoidal/Linear.lean + theorem CategoryTheory.monoidalLinearOfFaithful 2023-03-27 05:33:48 0bcbc98 chore: tidy various files (#3110) ESTIMATED CHANGES Modified Mathlib/Algebra/Algebra/RestrictScalars.lean + theorem RestrictScalars.smul_def - theorem restrictScalars.smul_def Modified Mathlib/Algebra/FreeAlgebra.lean Modified Mathlib/Analysis/NormedSpace/MStructure.lean Modified Mathlib/CategoryTheory/Monoidal/NaturalTransformation.lean Modified Mathlib/Control/LawfulFix.lean +/- def Part.toUnitMono Modified Mathlib/Data/Finsupp/WellFounded.lean Modified Mathlib/Data/MvPolynomial/Rename.lean + theorem MvPolynomial.rename_prod_mk_eval₂ - theorem MvPolynomial.rename_prodmk_eval₂ Modified Mathlib/Data/Polynomial/DenomsClearable.lean Modified Mathlib/Data/Tree.lean Modified Mathlib/NumberTheory/PythagoreanTriples.lean + theorem circleEquivGen_apply + theorem circleEquivGen_symm_apply - theorem circle_equiv_apply - theorem circle_equiv_symm_apply - theorem sq_ne_two_fin_zMod_four + theorem sq_ne_two_fin_zmod_four Modified Mathlib/NumberTheory/Zsqrtd/ToReal.lean Modified Mathlib/RingTheory/Adjoin/Basic.lean Modified Mathlib/RingTheory/Localization/FractionRing.lean Modified Mathlib/RingTheory/Multiplicity.lean Modified Mathlib/RingTheory/MvPolynomial/Symmetric.lean + theorem MvPolynomial.IsSymmetric.C - theorem MvPolynomial.IsSymmetric.c +/- def MvPolynomial.symmetricSubalgebra Modified Mathlib/Topology/Algebra/UniformMulAction.lean +/- theorem UniformSpace.Completion.smul_def 2023-03-27 05:33:47 43c97dd chore: fix align linebreaks (#3103) Apparently we have CI scripts that assume those fall on a single line. The command line used to fix the aligns was: ```bash find . -type f -name "*.lean" -exec sed -i -E 'N;s/^#align ([^[:space:]]+)\n *([^[:space:]]+)$/#align \1 \2/' {} \; ``` ESTIMATED CHANGES Modified Mathlib/Algebra/CharZero/Quotient.lean Modified Mathlib/CategoryTheory/Bicategory/Basic.lean Modified Mathlib/CategoryTheory/Bicategory/Functor.lean Modified Mathlib/CategoryTheory/EssentiallySmall.lean Modified Mathlib/CategoryTheory/Limits/ConeCategory.lean Modified Mathlib/Combinatorics/Composition.lean Modified Mathlib/Combinatorics/DoubleCounting.lean Modified Mathlib/Combinatorics/SetFamily/LYM.lean Modified Mathlib/GroupTheory/Coset.lean Modified Mathlib/GroupTheory/MonoidLocalization.lean Modified Mathlib/GroupTheory/Perm/Subgroup.lean Modified Mathlib/Order/Filter/Bases.lean Modified Mathlib/Order/LocallyFinite.lean Modified Mathlib/Order/Partition/Equipartition.lean 2023-03-27 05:33:46 30a60ca chore: normalize line endings for file hash (#3096) ESTIMATED CHANGES Modified Cache/Hashing.lean + def Cache.Hashing.hashFileContents 2023-03-27 05:33:44 81e6796 feat: add regression test from leanprover-community/mathlib#18645 (#3086) The bug is not present in the lean 4 version of the `ring` tactic, but we port the regression test anyway. ESTIMATED CHANGES Modified test/ring.lean 2023-03-27 05:33:43 6749040 chore: remove `Mathlib.Tactic.Expect` (#3026) This removes `Mathlib.Tactic.Expect` since its functionality is now absorbed into `fail_if_success` and `success_if_fail_with_msg`. (Also, it had no extant uses.) See [zulip.](https://leanprover.zulipchat.com/#narrow/stream/144837-PR-reviews/topic/mathlib4.232204.20port.20success_if_fail_with_msg) ESTIMATED CHANGES Modified Mathlib.lean Deleted Mathlib/Tactic/Expect.lean Deleted test/Expect.lean 2023-03-27 05:33:41 48b7f84 feat: extend `fix-line-breaks.py` to deeper `by`s and `where`s (#2996) This PR extends the `fix-line-breaks.py` script introduced in #2839 to handle `by` and `where` keywords that are deeper in a theorem, definition or the like. ESTIMATED CHANGES Modified scripts/fix-line-breaks.py 2023-03-27 05:33:40 3548e53 fix: to_additive warns about more attributes (#2935) * Warn about all simp-attributes * Warn about `elab_as_elim` ESTIMATED CHANGES Modified Mathlib/Algebra/Free.lean Modified Mathlib/Analysis/Normed/Group/Basic.lean Modified Mathlib/Tactic/ToAdditive.lean 2023-03-27 05:33:39 ffbbaaa Refactor uses to `rename_i` that have easy fixes (#2429) ESTIMATED CHANGES Modified Mathlib/Combinatorics/Young/SemistandardTableau.lean Modified Mathlib/Data/Finmap.lean Modified Mathlib/Data/Finsupp/Pointwise.lean Modified Mathlib/Data/LazyList/Basic.lean Modified Mathlib/Data/Nat/Fib.lean Modified Mathlib/Data/PFunctor/Univariate/M.lean Modified Mathlib/Data/Set/Intervals/Basic.lean Modified Mathlib/Data/Set/Intervals/Monotone.lean Modified Mathlib/Data/Sum/Interval.lean Modified Mathlib/Data/Sym/Sym2.lean Modified Mathlib/Data/TypeVec.lean Modified Mathlib/Init/Data/Nat/Bitwise.lean Modified Mathlib/Logic/Encodable/Basic.lean Modified Mathlib/Order/ConditionallyCompleteLattice/Basic.lean Modified Mathlib/Order/Disjointed.lean Modified Mathlib/Order/Ideal.lean Modified Mathlib/Order/MinMax.lean Modified Mathlib/Order/SuccPred/LinearLocallyFinite.lean 2023-03-27 03:38:17 50c0cdf feat: strengthen `apply_fun` capabilities (#2942) Use `Lean.MVarId.congrN!` rather than `Lean.MVarId.congrN` when proving congruence. This lets `apply_fun Fintype.card at h` work (note that there are `Fintype` instances involved, so it needs to apply `Subsingleton.elim`). ESTIMATED CHANGES Modified Mathlib/Tactic/ApplyFun.lean Modified Mathlib/Tactic/Congr!.lean +/- def Lean.MVarId.congrN! Modified test/apply_fun.lean 2023-03-27 00:51:35 6e9bc1c feat: sync Data.Set.Intervals.OrdConnected (#3077) ESTIMATED CHANGES Modified Mathlib/Data/Set/Intervals/OrdConnected.lean 2023-03-26 23:21:57 db7172d feat: forward-port #18148 (#3104) ESTIMATED CHANGES Modified Mathlib/Algebra/Category/MonCat/Basic.lean Modified Mathlib/CategoryTheory/Closed/Monoidal.lean + theorem CategoryTheory.MonoidalClosed.ofEquiv_curry_def + theorem CategoryTheory.MonoidalClosed.ofEquiv_uncurry_def 2023-03-26 23:21:55 076068b chore: sync Mathlib.Algebra.Star.Pi (#3081) ESTIMATED CHANGES Modified Mathlib/Algebra/Star/Pi.lean Modified Mathlib/Algebra/Star/Prod.lean 2023-03-26 23:21:54 027df74 chore: sync Data.List.Perm (#3076) ESTIMATED CHANGES Modified Mathlib/Data/List/Perm.lean - theorem List.Perm.eq_singleton - theorem List.Perm.singleton_eq 2023-03-26 23:21:53 c001e38 chore: sync Data.List.Rotate (#3040) * [`data.list.rotate`@`ccad6d5093bd2f5c6ca621fc74674cce51355af6`..`f694c7dead66f5d4c80f446c796a5aad14707f0e`](https://leanprover-community.github.io/mathlib-port-status/file/data/list/rotate?range=ccad6d5093bd2f5c6ca621fc74674cce51355af6..f694c7dead66f5d4c80f446c796a5aad14707f0e) Also add non-deprecated versions of some lemmas (use `List.get` instead of `List.nthLe`). ESTIMATED CHANGES Modified Mathlib/Data/List/Rotate.lean + theorem List.get?_rotate + theorem List.get_eq_get_rotate + theorem List.get_rotate + theorem List.head?_rotate + theorem List.rotate_eq_self_iff_eq_replicate + theorem List.rotate_one_eq_self_iff_eq_replicate + theorem List.rotate_replicate +/- theorem List.rotate_singleton 2023-03-26 23:21:52 01f3e27 chore: forward-port leanprover-community/mathlib#18600 (#3005) ESTIMATED CHANGES Modified Mathlib/Data/Fintype/Fin.lean + theorem Fin.Iio_castSucc + theorem Fin.Iio_last_eq_map + theorem Fin.map_valEmbedding_univ 2023-03-26 23:21:51 4545ac2 feat: add `Finmap.keysLookupEquiv` (#2359) This is a forward-port of leanprover-community/mathlib#18151 ESTIMATED CHANGES Modified Mathlib/Data/Finmap.lean + def Finmap.keysLookupEquiv + theorem Finmap.keysLookupEquiv_symm_apply_keys + theorem Finmap.keysLookupEquiv_symm_apply_lookup + theorem Finmap.lookup_eq_some_iff + theorem Finmap.mem_lookup_iff + theorem Finmap.nodup_entries + theorem Finmap.sigma_keys_lookup + theorem Multiset.nodup_keys 2023-03-26 23:21:50 884393f chore: forward-port leanprover-community/mathlib#17895 (#2046) It looks like one of the files in leanprover-community/mathlib#17895 was caught in a race condition and missed the other forward-port. ESTIMATED CHANGES Modified Mathlib/Algebra/GroupPower/Order.lean + theorem Monotone.pow_right + theorem StrictMono.pow_right' + theorem le_max_of_sq_le_mul + theorem le_of_pow_le_pow' + theorem lt_max_of_sq_lt_mul + theorem lt_of_pow_lt_pow' + theorem min_le_of_mul_le_sq + theorem min_lt_max_of_mul_lt_mul + theorem min_lt_of_mul_lt_sq + theorem pow_mono_right + theorem pow_strictMono_right' + theorem pow_strictMono_right - theorem strictMono_pow 2023-03-26 23:21:49 2398057 feat: port Data.Multiset.Basic changes from mathlib3 (#1726) ESTIMATED CHANGES Modified Mathlib/Data/Multiset/Basic.lean 2023-03-26 22:26:46 5ea27f7 chore: forward-port leanprover-community/mathlib#18597 (#2926) This is a forward-port of https://github.com/leanprover-community/mathlib/pull/18597 Some notes: * This doesn't forward-port the changes to [`algebra/star/self_adjoint`](https://leanprover-community.github.io/mathlib-port-status/file/algebra/star/self_adjoint); I plan to re-port this file from scratch after https://github.com/leanprover-community/mathlib/pull/18565 lands. For now, I just add some hacks to keep it compiling. * It seems that the changes to `algebra/periodic` were made during porting, see https://github.com/leanprover-community/mathlib4/pull/1963/files/2a6b385f555c37f3eb5e4dd9c113e0a1b5f6b958..578a6252973bcdbd1a6ce4fc0fe2791295cf80e4#r1140354814. So there is nothing to do other than update the SHA. ESTIMATED CHANGES Modified Mathlib/Algebra/Module/Basic.lean +/- theorem inv_nat_cast_smul_comm +/- theorem inv_nat_cast_smul_eq +/- theorem map_inv_nat_cast_smul Modified Mathlib/Algebra/Periodic.lean Modified Mathlib/Algebra/Star/Basic.lean +/- theorem star_div' +/- theorem star_inv' +/- theorem star_zpow₀ Modified Mathlib/Algebra/Star/Module.lean +/- theorem star_inv_nat_cast_smul Modified Mathlib/Algebra/Star/Pointwise.lean Modified Mathlib/Algebra/Star/SelfAdjoint.lean +/- theorem IsSelfAdjoint.div +/- theorem IsSelfAdjoint.inv +/- theorem IsSelfAdjoint.zpow 2023-03-26 21:07:52 8f18946 feat: port CategoryTheory.GlueData (#3099) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/GlueData.lean + def CategoryTheory.GlueData.diagram + def CategoryTheory.GlueData.diagramIso + theorem CategoryTheory.GlueData.diagramIso_app_left + theorem CategoryTheory.GlueData.diagramIso_app_right + theorem CategoryTheory.GlueData.diagramIso_hom_app_left + theorem CategoryTheory.GlueData.diagramIso_hom_app_right + theorem CategoryTheory.GlueData.diagramIso_inv_app_left + theorem CategoryTheory.GlueData.diagramIso_inv_app_right + theorem CategoryTheory.GlueData.diagram_fst + theorem CategoryTheory.GlueData.diagram_fstFrom + theorem CategoryTheory.GlueData.diagram_l + theorem CategoryTheory.GlueData.diagram_left + theorem CategoryTheory.GlueData.diagram_r + theorem CategoryTheory.GlueData.diagram_right + theorem CategoryTheory.GlueData.diagram_snd + theorem CategoryTheory.GlueData.diagram_sndFrom + theorem CategoryTheory.GlueData.glue_condition + def CategoryTheory.GlueData.glued + def CategoryTheory.GlueData.gluedIso + theorem CategoryTheory.GlueData.hasColimit_mapGlueData_diagram + theorem CategoryTheory.GlueData.hasColimit_multispan_comp + def CategoryTheory.GlueData.mapGlueData + def CategoryTheory.GlueData.sigmaOpens + theorem CategoryTheory.GlueData.t'_comp_eq_pullbackSymmetry + theorem CategoryTheory.GlueData.t'_iij + theorem CategoryTheory.GlueData.t'_iji + theorem CategoryTheory.GlueData.t'_inv + theorem CategoryTheory.GlueData.t'_jii + theorem CategoryTheory.GlueData.t_inv + theorem CategoryTheory.GlueData.types_ι_jointly_surjective + theorem CategoryTheory.GlueData.types_π_surjective + def CategoryTheory.GlueData.vPullbackCone + def CategoryTheory.GlueData.vPullbackConeIsLimitOfMap + def CategoryTheory.GlueData.ι + theorem CategoryTheory.GlueData.ι_gluedIso_hom + theorem CategoryTheory.GlueData.ι_gluedIso_inv + theorem CategoryTheory.GlueData.ι_jointly_surjective + def CategoryTheory.GlueData.π + structure CategoryTheory.GlueData 2023-03-26 20:49:42 d010c13 feat: port CategoryTheory.Sites.Spaces (#3111) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Sites/Spaces.lean + def Opens.grothendieckTopology + def Opens.pretopology + theorem Opens.pretopology_ofGrothendieck + theorem Opens.pretopology_toGrothendieck 2023-03-26 18:06:08 780abda feat: port Data.MvPolynomial.Cardinal (#3090) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Data/MvPolynomial/Cardinal.lean + theorem MvPolynomial.cardinal_lift_mk_le_max + theorem MvPolynomial.cardinal_mk_eq_lift + theorem MvPolynomial.cardinal_mk_eq_max + theorem MvPolynomial.cardinal_mk_eq_max_lift + theorem MvPolynomial.cardinal_mk_le_max 2023-03-26 17:53:08 e2501e8 chore: download recent curl if necessary on x64 Linux (#3097) ESTIMATED CHANGES Modified Cache/IO.lean + def Cache.IO.CURLBIN + def Cache.IO.CURLVERSION + def Cache.IO.getCurl + def Cache.IO.runCurl Modified Cache/Requests.lean 2023-03-26 08:17:35 ea4e0dd feat: port Algebra.Category.GroupCat.Zero (#3092) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Category/GroupCat/Zero.lean + theorem CommGroupCat.isZero_of_subsingleton + theorem GroupCat.isZero_of_subsingleton 2023-03-26 08:04:19 003bcd7 feat: port CategoryTheory.Sites.Pretopology (#3093) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Sites/Pretopology.lean + def CategoryTheory.Pretopology.gi + theorem CategoryTheory.Pretopology.le_def + theorem CategoryTheory.Pretopology.mem_toGrothendieck + def CategoryTheory.Pretopology.ofGrothendieck + def CategoryTheory.Pretopology.toGrothendieck + theorem CategoryTheory.Pretopology.toGrothendieck_bot + def CategoryTheory.Pretopology.trivial + structure CategoryTheory.Pretopology 2023-03-26 07:04:00 fa5d1a1 feat: port RepresentationTheory.Maschke (#2986) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Module/LinearMap.lean Modified Mathlib/Algebra/MonoidAlgebra/Basic.lean Modified Mathlib/Data/Fintype/Card.lean Added Mathlib/RepresentationTheory/Maschke.lean + def LinearMap.conjugate + theorem LinearMap.conjugate_apply + theorem LinearMap.conjugate_i + def LinearMap.equivariantProjection + theorem LinearMap.equivariantProjection_apply + theorem LinearMap.equivariantProjection_condition + def LinearMap.sumOfConjugates + def LinearMap.sumOfConjugatesEquivariant + theorem LinearMap.sumOfConjugatesEquivariant_apply + theorem LinearMap.sumOfConjugates_apply + theorem MonoidAlgebra.Submodule.exists_isCompl + theorem MonoidAlgebra.exists_leftInverse_of_injective 2023-03-25 22:02:41 a552c81 feat: sync Algebra.Hom.Group (#3074) ESTIMATED CHANGES Modified Mathlib/Algebra/Hom/Group.lean + theorem MonoidHom.coe_copy + theorem MonoidHom.copy_eq + theorem MonoidWithZeroHom.coe_copy + theorem MonoidWithZeroHom.copy_eq + theorem MulHom.coe_copy + theorem MulHom.coe_copy_eq + theorem OneHom.coe_copy + theorem OneHom.coe_copy_eq 2023-03-25 21:45:07 705192e chore: forward port leanprover-community/mathlib#15905 at Data.Polynomial.Inductions (#3098) ESTIMATED CHANGES Modified Mathlib/Data/Polynomial/Inductions.lean 2023-03-25 13:19:34 66aed11 feat: port/Computability.Primrec (#2360) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Computability/Primrec.lean + def Nat.Primrec'.Vec + theorem Nat.Primrec'.add + theorem Nat.Primrec'.comp' + theorem Nat.Primrec'.comp₁ + theorem Nat.Primrec'.comp₂ + theorem Nat.Primrec'.const + theorem Nat.Primrec'.head + theorem Nat.Primrec'.idv + theorem Nat.Primrec'.if_lt + theorem Nat.Primrec'.mkpair + theorem Nat.Primrec'.mul + theorem Nat.Primrec'.of_eq + theorem Nat.Primrec'.of_prim + theorem Nat.Primrec'.prec' + theorem Nat.Primrec'.pred + theorem Nat.Primrec'.prim_iff + theorem Nat.Primrec'.prim_iff₁ + theorem Nat.Primrec'.prim_iff₂ + theorem Nat.Primrec'.sqrt + theorem Nat.Primrec'.sub + theorem Nat.Primrec'.tail + theorem Nat.Primrec'.to_prim + theorem Nat.Primrec'.unpair₁ + theorem Nat.Primrec'.unpair₂ + theorem Nat.Primrec'.vec_iff + inductive Nat.Primrec' + theorem Nat.Primrec.add + theorem Nat.Primrec.cases1 + theorem Nat.Primrec.cases + theorem Nat.Primrec.const + theorem Nat.Primrec.mul + theorem Nat.Primrec.of_eq + theorem Nat.Primrec.pow + theorem Nat.Primrec.prec1 + theorem Nat.Primrec.pred + theorem Nat.Primrec.sub + theorem Nat.Primrec.swap' + def Nat.unpaired + theorem Primcodable.mem_range_encode + def Primcodable.ofEquiv + def Primcodable.subtype + def Primrec.PrimrecBounded + theorem Primrec.bind_decode_iff + theorem Primrec.comp + theorem Primrec.comp₂ + theorem Primrec.cond + theorem Primrec.const + theorem Primrec.dom_bool + theorem Primrec.dom_bool₂ + theorem Primrec.dom_denumerable + theorem Primrec.dom_fintype + theorem Primrec.encdec + theorem Primrec.encode_iff + theorem Primrec.fin_app + theorem Primrec.fin_curry + theorem Primrec.fin_curry₁ + theorem Primrec.fin_succ + theorem Primrec.fin_val + theorem Primrec.fin_val_iff + theorem Primrec.fst + theorem Primrec.ite + theorem Primrec.list_append + theorem Primrec.list_cases + theorem Primrec.list_concat + theorem Primrec.list_cons + theorem Primrec.list_findIdx + theorem Primrec.list_findIdx₁ + theorem Primrec.list_foldl + theorem Primrec.list_foldr + theorem Primrec.list_get? + theorem Primrec.list_get?₁ + theorem Primrec.list_getD + theorem Primrec.list_getI + theorem Primrec.list_head? + theorem Primrec.list_headI + theorem Primrec.list_indexOf + theorem Primrec.list_indexOf₁ + theorem Primrec.list_join + theorem Primrec.list_length + theorem Primrec.list_map + theorem Primrec.list_ofFn + theorem Primrec.list_range + theorem Primrec.list_rec + theorem Primrec.list_reverse + theorem Primrec.list_tail + theorem Primrec.map_decode_iff + theorem Primrec.nat_add + theorem Primrec.nat_bodd + theorem Primrec.nat_cases' + theorem Primrec.nat_cases + theorem Primrec.nat_cases₁ + theorem Primrec.nat_div2 + theorem Primrec.nat_div + theorem Primrec.nat_double + theorem Primrec.nat_double_succ + theorem Primrec.nat_elim' + theorem Primrec.nat_elim + theorem Primrec.nat_elim₁ + theorem Primrec.nat_findGreatest + theorem Primrec.nat_iff + theorem Primrec.nat_iterate + theorem Primrec.nat_le + theorem Primrec.nat_lt + theorem Primrec.nat_max + theorem Primrec.nat_min + theorem Primrec.nat_mod + theorem Primrec.nat_mul + theorem Primrec.nat_sqrt + theorem Primrec.nat_strong_rec + theorem Primrec.nat_sub + theorem Primrec.ofEquiv + theorem Primrec.ofEquiv_iff + theorem Primrec.ofEquiv_symm + theorem Primrec.ofEquiv_symm_iff + theorem Primrec.ofNat_iff + theorem Primrec.of_eq + theorem Primrec.of_graph + theorem Primrec.option_bind + theorem Primrec.option_bind₁ + theorem Primrec.option_cases + theorem Primrec.option_get + theorem Primrec.option_getD + theorem Primrec.option_guard + theorem Primrec.option_iget + theorem Primrec.option_isSome + theorem Primrec.option_map + theorem Primrec.option_map₁ + theorem Primrec.option_orElse + theorem Primrec.option_some + theorem Primrec.option_some_iff + theorem Primrec.pair + theorem Primrec.pred + theorem Primrec.snd + theorem Primrec.subtype_mk + theorem Primrec.subtype_val + theorem Primrec.subtype_val_iff + theorem Primrec.succ + theorem Primrec.sum_cases + theorem Primrec.sum_inl + theorem Primrec.sum_inr + theorem Primrec.to₂ + theorem Primrec.ulower_down + theorem Primrec.ulower_up + theorem Primrec.unpair + theorem Primrec.vector_cons + theorem Primrec.vector_get + theorem Primrec.vector_head + theorem Primrec.vector_length + theorem Primrec.vector_nth' + theorem Primrec.vector_ofFn + theorem Primrec.vector_of_fn' + theorem Primrec.vector_tail + theorem Primrec.vector_toList + theorem Primrec.vector_toList_iff + def Primrec + theorem PrimrecPred.and + theorem PrimrecPred.comp + theorem PrimrecPred.not + theorem PrimrecPred.of_eq + theorem PrimrecPred.or + def PrimrecPred + theorem PrimrecRel.comp + theorem PrimrecRel.comp₂ + theorem PrimrecRel.of_eq + def PrimrecRel + theorem Primrec₂.comp + theorem Primrec₂.comp₂ + theorem Primrec₂.const + theorem Primrec₂.curry + theorem Primrec₂.encode_iff + theorem Primrec₂.left + theorem Primrec₂.mkpair + theorem Primrec₂.nat_iff' + theorem Primrec₂.nat_iff + theorem Primrec₂.ofNat_iff + theorem Primrec₂.of_eq + theorem Primrec₂.option_some_iff + theorem Primrec₂.right + theorem Primrec₂.swap + theorem Primrec₂.uncurry + theorem Primrec₂.unpaired' + theorem Primrec₂.unpaired + def Primrec₂ Modified Mathlib/Data/List/Basic.lean + theorem List.findIdx_cons + theorem List.findIdx_nil 2023-03-25 12:28:46 525ff05 feat: port Algebra.MonoidAlgebra.Division (#3068) This is the second part of the forward port of leanprover-community/mathlib#15905. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/MonoidAlgebra/Division.lean + theorem AddMonoidAlgebra.add_divOf + theorem AddMonoidAlgebra.divOf_add + theorem AddMonoidAlgebra.divOf_add_modOf + theorem AddMonoidAlgebra.divOf_apply + theorem AddMonoidAlgebra.divOf_zero + theorem AddMonoidAlgebra.modOf_add_divOf + theorem AddMonoidAlgebra.modOf_apply_add_self + theorem AddMonoidAlgebra.modOf_apply_of_exists_add + theorem AddMonoidAlgebra.modOf_apply_of_not_exists_add + theorem AddMonoidAlgebra.modOf_apply_self_add + theorem AddMonoidAlgebra.mul_of'_divOf + theorem AddMonoidAlgebra.mul_of'_modOf + theorem AddMonoidAlgebra.of'_divOf + theorem AddMonoidAlgebra.of'_dvd_iff_modOf_eq_zero + theorem AddMonoidAlgebra.of'_modOf + theorem AddMonoidAlgebra.of'_mul_divOf + theorem AddMonoidAlgebra.of'_mul_modOf + theorem AddMonoidAlgebra.support_divOf + theorem AddMonoidAlgebra.zero_divOf 2023-03-25 07:18:46 56d3d97 chore: update SHA for Data.List.Count (#3075) ESTIMATED CHANGES Modified Mathlib/Data/List/Count.lean 2023-03-25 07:07:35 5a447a0 feat: port LinearAlgebra.AffineSpace.Ordered (#3094) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/LinearAlgebra/AffineSpace/Ordered.lean + theorem left_le_lineMap_iff_le + theorem left_le_midpoint + theorem left_lt_lineMap_iff_lt + theorem lineMap_le_left_iff_le + theorem lineMap_le_lineMap_iff_of_lt + theorem lineMap_le_map_iff_slope_le_slope + theorem lineMap_le_map_iff_slope_le_slope_left + theorem lineMap_le_map_iff_slope_le_slope_right + theorem lineMap_le_right_iff_le + theorem lineMap_lt_left_iff_lt + theorem lineMap_lt_lineMap_iff_of_lt + theorem lineMap_lt_map_iff_slope_lt_slope + theorem lineMap_lt_map_iff_slope_lt_slope_left + theorem lineMap_lt_map_iff_slope_lt_slope_right + theorem lineMap_lt_right_iff_lt + theorem lineMap_mono_endpoints + theorem lineMap_mono_left + theorem lineMap_mono_right + theorem lineMap_strict_mono_endpoints + theorem lineMap_strict_mono_left + theorem lineMap_strict_mono_right + theorem map_le_lineMap_iff_slope_le_slope + theorem map_le_lineMap_iff_slope_le_slope_left + theorem map_le_lineMap_iff_slope_le_slope_right + theorem map_lt_lineMap_iff_slope_lt_slope + theorem map_lt_lineMap_iff_slope_lt_slope_left + theorem map_lt_lineMap_iff_slope_lt_slope_right + theorem midpoint_le_left + theorem midpoint_le_midpoint + theorem midpoint_le_right + theorem right_le_lineMap_iff_le + theorem right_le_midpoint + theorem right_lt_lineMap_iff_lt 2023-03-25 01:18:03 cd7f2d5 feat: port LinearAlgebra.AffineSpace.MidpointZero (#3084) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/LinearAlgebra/AffineSpace/MidpointZero.lean + theorem homothety_invOf_two + theorem homothety_inv_two + theorem homothety_one_half + theorem lineMap_inv_two + theorem lineMap_one_half + theorem pi_midpoint_apply 2023-03-25 00:41:48 03015c8 fix: correctly mark outparams in HomotopyLike (#3089) ESTIMATED CHANGES Modified Mathlib/Topology/Homotopy/Basic.lean 2023-03-24 21:47:06 503db27 feat: port LinearAlgebra.AffineSpace.Restrict (#3085) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/LinearAlgebra/AffineSpace/Restrict.lean + theorem AffineMap.restrict.bijective + theorem AffineMap.restrict.coe_apply + theorem AffineMap.restrict.injective + theorem AffineMap.restrict.linear + theorem AffineMap.restrict.linear_aux + theorem AffineMap.restrict.surjective + def AffineMap.restrict + theorem AffineSubspace.nonempty_map 2023-03-24 20:38:35 046951e chore: forward-port #18591 (#3078) ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Field/Basic.lean - theorem pow_minus_two_nonneg Modified Mathlib/Algebra/Order/Field/Power.lean + theorem zpow_neg_two_nonneg 2023-03-24 20:19:30 31b4870 feat: port RingTheory.Polynomial.Content (#3066) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/RingTheory/Polynomial/Content.lean + theorem Polynomial.C_content_dvd + theorem Polynomial.IsPrimitive.content_eq_one + theorem Polynomial.IsPrimitive.dvd_primPart_iff_dvd + theorem Polynomial.IsPrimitive.mul + theorem Polynomial.IsPrimitive.ne_zero + theorem Polynomial.IsPrimitive.primPart_eq + def Polynomial.IsPrimitive + theorem Polynomial.Monic.isPrimitive + theorem Polynomial.aeval_primPart_eq_zero + def Polynomial.content + theorem Polynomial.content_C + theorem Polynomial.content_C_mul + theorem Polynomial.content_X + theorem Polynomial.content_X_mul + theorem Polynomial.content_X_pow + theorem Polynomial.content_dvd_coeff + theorem Polynomial.content_eq_gcd_leadingCoeff_content_eraseLead + theorem Polynomial.content_eq_gcd_range_of_lt + theorem Polynomial.content_eq_gcd_range_succ + theorem Polynomial.content_eq_zero_iff + theorem Polynomial.content_monomial + theorem Polynomial.content_mul + theorem Polynomial.content_mul_aux + theorem Polynomial.content_one + theorem Polynomial.content_primPart + theorem Polynomial.content_zero + theorem Polynomial.degree_gcd_le_left + theorem Polynomial.degree_gcd_le_right + theorem Polynomial.dvd_content_iff_C_dvd + theorem Polynomial.dvd_iff_content_dvd_content_and_primPart_dvd_primPart + theorem Polynomial.eq_C_content_mul_primPart + theorem Polynomial.eval₂_primPart_eq_zero + theorem Polynomial.exists_primitive_lcm_of_isPrimitive + theorem Polynomial.gcd_content_eq_of_dvd_sub + theorem Polynomial.isPrimitive_iff_content_eq_one + theorem Polynomial.isPrimitive_iff_isUnit_of_c_dvd + theorem Polynomial.isPrimitive_of_dvd + theorem Polynomial.isPrimitive_one + theorem Polynomial.isPrimitive_primPart + theorem Polynomial.isUnit_primPart_C + theorem Polynomial.natDegree_primPart + theorem Polynomial.normUnit_content + theorem Polynomial.normalize_content + theorem Polynomial.primPart_dvd + theorem Polynomial.primPart_mul + theorem Polynomial.primPart_ne_zero + theorem Polynomial.primPart_zero 2023-03-24 20:19:29 90fa71a chore: forward-port leanprover-community#15905 (#3059) ESTIMATED CHANGES Modified Mathlib/Algebra/MonoidAlgebra/Basic.lean + theorem AddMonoidAlgebra.mul_single_apply_of_not_exists_add + theorem AddMonoidAlgebra.single_mul_apply_of_not_exists_add + theorem MonoidAlgebra.mul_single_apply_of_not_exists_mul + theorem MonoidAlgebra.single_mul_apply_of_not_exists_mul 2023-03-24 20:19:27 a569461 feat: port CategoryTheory.Localization.Construction (#2917) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Localization/Construction.lean + structure CategoryTheory.Localization.Construction.LocQuiver + def CategoryTheory.Localization.Construction.NatTransExtension.app + theorem CategoryTheory.Localization.Construction.NatTransExtension.app_eq + def CategoryTheory.Localization.Construction.WhiskeringLeftEquivalence.counitIso + def CategoryTheory.Localization.Construction.WhiskeringLeftEquivalence.functor + def CategoryTheory.Localization.Construction.WhiskeringLeftEquivalence.inverse + def CategoryTheory.Localization.Construction.WhiskeringLeftEquivalence.unitIso + theorem CategoryTheory.Localization.Construction.fac + def CategoryTheory.Localization.Construction.lift + def CategoryTheory.Localization.Construction.liftToPathCategory + theorem CategoryTheory.Localization.Construction.morphismProperty_is_top' + theorem CategoryTheory.Localization.Construction.morphismProperty_is_top + def CategoryTheory.Localization.Construction.natTransExtension + theorem CategoryTheory.Localization.Construction.natTransExtension_hcomp + theorem CategoryTheory.Localization.Construction.natTrans_hcomp_injective + def CategoryTheory.Localization.Construction.objEquiv + inductive CategoryTheory.Localization.Construction.relations + theorem CategoryTheory.Localization.Construction.uniq + def CategoryTheory.Localization.Construction.wIso + def CategoryTheory.Localization.Construction.whiskeringLeftEquivalence + def CategoryTheory.Localization.Construction.ιPaths + def CategoryTheory.Localization.Construction.ψ₁ + def CategoryTheory.Localization.Construction.ψ₂ + def CategoryTheory.MorphismProperty.Localization + def CategoryTheory.MorphismProperty.Q + theorem CategoryTheory.MorphismProperty.Q_inverts Modified Mathlib/CategoryTheory/MorphismProperty.lean + theorem CategoryTheory.MorphismProperty.FunctorsInverting.ext + theorem CategoryTheory.MorphismProperty.top_apply + theorem CategoryTheory.MorphismProperty.top_eq Modified Mathlib/CategoryTheory/Quotient.lean 2023-03-24 18:51:24 2077901 feat: port InformationTheory.Hamming (#2891) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/InformationTheory/Hamming.lean + theorem Hamming.dist_eq_hammingDist + theorem Hamming.nndist_eq_hammingDist + theorem Hamming.nnnorm_eq_hammingNorm + theorem Hamming.norm_eq_hammingNorm + def Hamming.ofHamming + theorem Hamming.ofHamming_add + theorem Hamming.ofHamming_inj + theorem Hamming.ofHamming_neg + theorem Hamming.ofHamming_smul + theorem Hamming.ofHamming_sub + theorem Hamming.ofHamming_symm_eq + theorem Hamming.ofHamming_toHamming + theorem Hamming.ofHamming_zero + def Hamming.toHamming + theorem Hamming.toHamming_add + theorem Hamming.toHamming_inj + theorem Hamming.toHamming_neg + theorem Hamming.toHamming_ofHamming + theorem Hamming.toHamming_smul + theorem Hamming.toHamming_sub + theorem Hamming.toHamming_symm_eq + theorem Hamming.toHamming_zero + def Hamming + theorem eq_of_hammingDist_eq_zero + def hammingDist + theorem hammingDist_comm + theorem hammingDist_comp + theorem hammingDist_comp_le_hammingDist + theorem hammingDist_eq_hammingNorm + theorem hammingDist_eq_zero + theorem hammingDist_le_card_fintype + theorem hammingDist_lt_one + theorem hammingDist_ne_zero + theorem hammingDist_nonneg + theorem hammingDist_pos + theorem hammingDist_self + theorem hammingDist_smul + theorem hammingDist_smul_le_hammingDist + theorem hammingDist_triangle + theorem hammingDist_triangle_left + theorem hammingDist_triangle_right + theorem hammingDist_zero_left + theorem hammingDist_zero_right + def hammingNorm + theorem hammingNorm_comp + theorem hammingNorm_comp_le_hammingNorm + theorem hammingNorm_eq_zero + theorem hammingNorm_le_card_fintype + theorem hammingNorm_lt_one + theorem hammingNorm_ne_zero_iff + theorem hammingNorm_nonneg + theorem hammingNorm_pos_iff + theorem hammingNorm_smul + theorem hammingNorm_smul_le_hammingNorm + theorem hammingNorm_zero + theorem hamming_zero_eq_dist + theorem swap_hammingDist 2023-03-24 18:51:23 429abca feat: Port CategoryTheory.Monoidal.NaturalTransformation (#2466) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Monoidal/NaturalTransformation.lean + theorem CategoryTheory.MonoidalNatIso.ofComponents.hom_app + theorem CategoryTheory.MonoidalNatIso.ofComponents.inv_app + def CategoryTheory.MonoidalNatIso.ofComponents + theorem CategoryTheory.MonoidalNatTrans.comp_toNatTrans + theorem CategoryTheory.MonoidalNatTrans.comp_toNatTrans_lax + def CategoryTheory.MonoidalNatTrans.hcomp + def CategoryTheory.MonoidalNatTrans.id + def CategoryTheory.MonoidalNatTrans.prod + def CategoryTheory.MonoidalNatTrans.vcomp + structure CategoryTheory.MonoidalNatTrans + def CategoryTheory.monoidalCounit + def CategoryTheory.monoidalUnit 2023-03-24 18:51:21 6f748f1 feat: port Data.Finset.Sym (#2168) Some instances that were not synthezised automatically are added to the files Data.Sym.Basic and Data.Sym.Sym2 See https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/Classical ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Data/Finset/Sym.lean + theorem Finset.diag_mem_sym2_iff + theorem Finset.diag_mem_sym2_mem_iff + theorem Finset.eq_empty_of_sym_eq_empty + theorem Finset.image_diag_union_image_offDiag + theorem Finset.isDiag_mk'_of_mem_diag + theorem Finset.mem_sym2_iff + theorem Finset.mem_sym_iff + theorem Finset.mk'_mem_sym2_iff + theorem Finset.not_isDiag_mk'_of_mem_offDiag + theorem Finset.replicate_mem_sym + theorem Finset.sym2_empty + theorem Finset.sym2_eq_empty + theorem Finset.sym2_mono + theorem Finset.sym2_nonempty + theorem Finset.sym2_singleton + theorem Finset.sym2_univ + def Finset.symInsertEquiv + theorem Finset.sym_empty + theorem Finset.sym_eq_empty + theorem Finset.sym_fill_mem + theorem Finset.sym_filterNe_mem + theorem Finset.sym_inter + theorem Finset.sym_mono + theorem Finset.sym_nonempty + theorem Finset.sym_singleton + theorem Finset.sym_succ + theorem Finset.sym_union + theorem Finset.sym_univ + theorem Finset.sym_zero Modified Mathlib/Data/Sym/Basic.lean Modified Mathlib/Data/Sym/Sym2.lean 2023-03-24 17:48:27 5c5703c feat: Missing opposite instances (#2940) Match https://github.com/leanprover-community/mathlib/pull/18602 ESTIMATED CHANGES Modified Mathlib/Algebra/Field/Opposite.lean + theorem MulOpposite.op_ratCast + theorem MulOpposite.unop_ratCast Modified Mathlib/Algebra/Group/Opposite.lean + theorem MulOpposite.op_intCast + theorem MulOpposite.op_natCast + theorem MulOpposite.unop_intCast + theorem MulOpposite.unop_natCast Modified Mathlib/Algebra/Ring/Defs.lean Modified Mathlib/Algebra/Ring/Opposite.lean Modified Mathlib/Data/Int/Cast/Defs.lean Modified Mathlib/Data/Int/Cast/Lemmas.lean - theorem MulOpposite.op_intCast - theorem MulOpposite.unop_intCast Modified Mathlib/Data/Nat/Cast/Basic.lean - theorem MulOpposite.op_natCast - theorem MulOpposite.unop_natCast Modified Mathlib/Data/Rat/Cast.lean - theorem MulOpposite.op_ratCast - theorem MulOpposite.unop_ratCast 2023-03-24 17:26:46 61e4cec feat: port Data.Polynomial.FieldDivision (#3057) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Data/Polynomial/FieldDivision.lean + theorem Polynomial.C_mul_dvd + theorem Polynomial.Monic.normalize_eq_self + theorem Polynomial.X_sub_C_dvd_derivative_of_X_sub_C_dvd_divByMonic + theorem Polynomial.X_sub_C_mul_divByMonic_eq_sub_modByMonic + theorem Polynomial.coe_normUnit + theorem Polynomial.coe_normUnit_of_ne_zero + theorem Polynomial.coeff_inv_units + theorem Polynomial.degree_add_div + theorem Polynomial.degree_div_le + theorem Polynomial.degree_div_lt + theorem Polynomial.degree_map + theorem Polynomial.degree_mul_leadingCoeff_inv + theorem Polynomial.degree_normalize + theorem Polynomial.degree_pos_of_irreducible + theorem Polynomial.degree_pos_of_ne_zero_of_nonunit + theorem Polynomial.derivative_rootMultiplicity_of_root + def Polynomial.div + theorem Polynomial.divByMonic_add_X_Sub_C_mul_derivate_divByMonic_eq_derivative + theorem Polynomial.divByMonic_eq_div + theorem Polynomial.div_C_mul + theorem Polynomial.div_def + theorem Polynomial.div_eq_zero_iff + theorem Polynomial.dvd_C_mul + theorem Polynomial.eval_gcd_eq_zero + theorem Polynomial.eval₂_gcd_eq_zero + theorem Polynomial.exists_root_of_degree_eq_one + theorem Polynomial.gcd_map + theorem Polynomial.irreducible_of_degree_eq_one + theorem Polynomial.isCoprime_map + theorem Polynomial.isCoprime_of_is_root_of_eval_derivative_ne_zero + theorem Polynomial.isRoot_gcd_iff_isRoot_left_right + theorem Polynomial.isUnit_iff_degree_eq_zero + theorem Polynomial.isUnit_map + theorem Polynomial.leadingCoeff_div + theorem Polynomial.leadingCoeff_map + theorem Polynomial.leadingCoeff_normalize + theorem Polynomial.map_div + theorem Polynomial.map_dvd_map' + theorem Polynomial.map_eq_zero + theorem Polynomial.map_mod + theorem Polynomial.map_ne_zero + theorem Polynomial.mem_roots_map + def Polynomial.mod + theorem Polynomial.modByMonic_eq_mod + theorem Polynomial.mod_def + theorem Polynomial.mod_eq_self_iff + theorem Polynomial.mod_x_sub_c_eq_c_eval + theorem Polynomial.monic_map_iff + theorem Polynomial.monic_mul_leadingCoeff_inv + theorem Polynomial.monic_normalize + theorem Polynomial.mul_div_eq_iff_isRoot + theorem Polynomial.natDegree_map + theorem Polynomial.normalize_monic + theorem Polynomial.not_irreducible_c + theorem Polynomial.prime_of_degree_eq_one + theorem Polynomial.rootMultiplicity_sub_one_le_derivative_rootMultiplicity + theorem Polynomial.rootSet_C_mul_X_pow + theorem Polynomial.rootSet_X_pow + theorem Polynomial.rootSet_monomial + theorem Polynomial.rootSet_prod + theorem Polynomial.root_gcd_iff_root_left_right + theorem Polynomial.root_left_of_root_gcd + theorem Polynomial.root_right_of_root_gcd + theorem Polynomial.roots_normalize 2023-03-24 17:26:45 e716737 feat: port Analysis.Convex.Star (#3050) Fin 2`, `add_monoid_hom --> AddMonoidHom` Remove `\n` from `to_additive` docstrings that were inserted by mathport. Move files and directories with `Gcd` and `Smul` to `GCD` and `SMul` ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/CovariantAndContravariant.lean Modified Mathlib/Algebra/EuclideanDomain/Basic.lean Modified Mathlib/Algebra/Group/Basic.lean Modified Mathlib/Algebra/Group/Commute.lean Modified Mathlib/Algebra/Group/Defs.lean Modified Mathlib/Algebra/Group/InjSurj.lean Modified Mathlib/Algebra/Group/Opposite.lean Modified Mathlib/Algebra/Group/Prod.lean Modified Mathlib/Algebra/Group/Semiconj.lean Modified Mathlib/Algebra/Group/ULift.lean Modified Mathlib/Algebra/Group/Units.lean Modified Mathlib/Algebra/Group/WithOne/Basic.lean Modified Mathlib/Algebra/Group/WithOne/Defs.lean Modified Mathlib/Algebra/GroupPower/Basic.lean Modified Mathlib/Algebra/GroupPower/Lemmas.lean Modified Mathlib/Algebra/GroupPower/Ring.lean Modified Mathlib/Algebra/Hom/Aut.lean Modified Mathlib/Algebra/Hom/Equiv/Units/Basic.lean Modified Mathlib/Algebra/Hom/Group.lean Modified Mathlib/Algebra/Hom/Iterate.lean Modified Mathlib/Algebra/Hom/Ring.lean Modified Mathlib/Algebra/Hom/Units.lean Modified Mathlib/Algebra/Invertible.lean + theorem nonempty_invertible_iff_isUnit - theorem nonempty_invertible_iff_is_unit Modified Mathlib/Algebra/Order/AbsoluteValue.lean Modified Mathlib/Algebra/Order/Hom/Monoid.lean Modified Mathlib/Algebra/Order/Monoid/Basic.lean Modified Mathlib/Algebra/Order/Monoid/Cancel/Basic.lean Modified Mathlib/Algebra/Order/Monoid/NatCast.lean Modified Mathlib/Algebra/Order/Monoid/WithTop.lean Modified Mathlib/Algebra/Regular/SMul.lean Modified Mathlib/Algebra/Ring/Basic.lean Modified Mathlib/Algebra/Ring/Opposite.lean Renamed Mathlib/Algebra/SmulWithZero.lean to Mathlib/Algebra/SMulWithZero.lean + def SMulWithZero.compHom - def SmulWithZero.compHom Modified Mathlib/CategoryTheory/Iso.lean Modified Mathlib/Combinatorics/Quiver/Symmetric.lean Modified Mathlib/Control/Traversable/Basic.lean Modified Mathlib/Data/Fin/Fin2.lean Modified Mathlib/Data/Finset/Basic.lean Modified Mathlib/Data/Fintype/Basic.lean Modified Mathlib/Data/FunLike/Basic.lean Modified Mathlib/Data/FunLike/Equiv.lean Modified Mathlib/Data/Int/Basic.lean Modified Mathlib/Data/Int/Cast/Lemmas.lean Renamed Mathlib/Data/Int/Gcd.lean to Mathlib/Data/Int/GCD.lean Modified Mathlib/Data/List/Range.lean Renamed Mathlib/Data/Nat/Gcd/Basic.lean to Mathlib/Data/Nat/GCD/Basic.lean Modified Mathlib/Data/Nat/Order/Basic.lean Modified Mathlib/Data/Nat/Prime.lean Modified Mathlib/Data/Nat/Units.lean Modified Mathlib/Data/Option/Basic.lean Modified Mathlib/Data/Option/Defs.lean Modified Mathlib/Data/Option/NAry.lean Modified Mathlib/Data/PEquiv.lean Modified Mathlib/Data/Part.lean Modified Mathlib/Data/Quot.lean Modified Mathlib/Data/Rat/Defs.lean Modified Mathlib/Data/Rel.lean Modified Mathlib/Data/Set/Basic.lean Modified Mathlib/Data/Set/Function.lean Modified Mathlib/Data/Set/Image.lean Modified Mathlib/Data/Set/Intervals/UnorderedInterval.lean Modified Mathlib/Data/Set/Lattice.lean Modified Mathlib/Data/Setoid/Basic.lean Modified Mathlib/Data/Sigma/Order.lean Modified Mathlib/Dynamics/FixedPoints/Basic.lean Modified Mathlib/GroupTheory/EckmannHilton.lean Modified Mathlib/GroupTheory/GroupAction/Defs.lean Modified Mathlib/GroupTheory/GroupAction/Group.lean + theorem isUnit_smul_iff - theorem is_unit_smul_iff Modified Mathlib/GroupTheory/GroupAction/Opposite.lean Modified Mathlib/GroupTheory/GroupAction/Option.lean Modified Mathlib/GroupTheory/GroupAction/Pi.lean Modified Mathlib/GroupTheory/GroupAction/Prod.lean Modified Mathlib/GroupTheory/GroupAction/Sum.lean Modified Mathlib/GroupTheory/GroupAction/Units.lean Modified Mathlib/GroupTheory/Perm/Basic.lean Modified Mathlib/Init/Algebra/Classes.lean Modified Mathlib/Init/Data/List/Basic.lean Modified Mathlib/Logic/Basic.lean Modified Mathlib/Logic/Embedding/Basic.lean Modified Mathlib/Logic/Equiv/Defs.lean + theorem Equiv.invFun_as_coe - theorem Equiv.inv_fun_as_coe + theorem Equiv.toFun_as_coe + theorem Equiv.toFun_as_coe_apply - theorem Equiv.to_fun_as_coe - theorem Equiv.to_fun_as_coe_apply Modified Mathlib/Logic/Equiv/Embedding.lean Modified Mathlib/Logic/Function/Basic.lean Modified Mathlib/Logic/Nontrivial.lean Modified Mathlib/Logic/Unique.lean Modified Mathlib/Order/BooleanAlgebra.lean Modified Mathlib/Order/Disjoint.lean Modified Mathlib/Order/GaloisConnection.lean Modified Mathlib/Order/Heyting/Basic.lean + theorem ofDual_compl + theorem ofDual_himp + theorem ofDual_hnot - theorem of_dual_compl - theorem of_dual_himp - theorem of_dual_hnot + theorem toDual_compl + theorem toDual_hnot + theorem toDual_sdiff - theorem to_dual_compl - theorem to_dual_hnot - theorem to_dual_sdiff Modified Mathlib/Order/Hom/Basic.lean Modified Mathlib/Order/InitialSeg.lean + theorem InitialSeg.antisymm_toFun - theorem InitialSeg.antisymm_to_fun Modified Mathlib/Order/RelIso/Basic.lean Modified Mathlib/Order/WithBot.lean Modified Mathlib/RingTheory/Coprime/Basic.lean + theorem IsCoprime.isUnit_of_dvd' + theorem IsCoprime.isUnit_of_dvd - theorem IsCoprime.is_unit_of_dvd' - theorem IsCoprime.is_unit_of_dvd Modified Mathlib/Tactic/Convert.lean Modified Mathlib/Tactic/FinCases.lean Modified Mathlib/Tactic/LinearCombination.lean 2022-12-23 12:08:40 3fe9b59 feat: port Data.PNat.Basic (#1144) Fairly straight forward, with no bigger issues. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Data/PNat/Basic.lean + def Equiv.pnatEquivNat + theorem Nat.succPNat_inj + theorem Nat.succPNat_injective + theorem Nat.succPNat_le_succPNat + theorem Nat.succPNat_lt_succPNat + theorem Nat.succPNat_mono + theorem Nat.succPNat_strictMono + def OrderIso.pnatIsoNat + theorem OrderIso.pnatIsoNat_symm_apply + theorem PNat.add_coe + theorem PNat.add_one_le_iff + theorem PNat.add_sub_of_lt + theorem PNat.bit0_le_bit0 + theorem PNat.bit0_le_bit1 + theorem PNat.bit1_le_bit0 + theorem PNat.bit1_le_bit1 + theorem PNat.bot_eq_one + def PNat.caseStrongInductionOn + def PNat.coeAddHom + def PNat.coeMonoidHom + theorem PNat.coe_bit0 + theorem PNat.coe_bit1 + theorem PNat.coe_coeMonoidHom + theorem PNat.coe_inj + theorem PNat.div_add_mod' + theorem PNat.div_add_mod + theorem PNat.dvd_antisymm + theorem PNat.dvd_iff' + theorem PNat.dvd_iff + theorem PNat.dvd_one_iff + theorem PNat.exists_eq_succ_of_ne_one + theorem PNat.le_of_dvd + theorem PNat.le_one_iff + theorem PNat.lt_add_left + theorem PNat.lt_add_one_iff + theorem PNat.lt_add_right + theorem PNat.mk_bit0 + theorem PNat.mk_bit1 + theorem PNat.modDivAux_spec + theorem PNat.mod_add_div' + theorem PNat.mod_add_div + theorem PNat.mod_le + theorem PNat.mul_coe + theorem PNat.mul_div_exact + theorem PNat.natPred_add_one + theorem PNat.natPred_inj + theorem PNat.natPred_injective + theorem PNat.natPred_le_natPred + theorem PNat.natPred_lt_natPred + theorem PNat.natPred_monotone + theorem PNat.natPred_strictMono + theorem PNat.one_add_natPred + theorem PNat.pos_of_div_pos + theorem PNat.pow_coe + def PNat.recOn + theorem PNat.recOn_one + theorem PNat.recOn_succ + theorem PNat.sub_coe 2022-12-23 10:03:33 3c3553c fix: do not track origin/master when creating porting branches (#1182) This prevents maintainers accidentally pushing to master ESTIMATED CHANGES Modified scripts/start_port.sh 2022-12-23 10:35:01+01:00 436cde8 Revert "Initial file copy from mathport" This reverts commit c4a53859992bfffb07f0dcb0879a9377b7fffdde. ESTIMATED CHANGES Deleted Mathlib/Order/ConditionallyCompleteLattice/Basic.lean - theorem GaloisConnection.l_cSup' - theorem GaloisConnection.l_cSup - theorem GaloisConnection.l_csupr - theorem GaloisConnection.l_csupr_set - theorem GaloisConnection.u_cInf' - theorem GaloisConnection.u_cInf - theorem GaloisConnection.u_cinfi - theorem GaloisConnection.u_cinfi_set - theorem Inf_eq_argmin_on - theorem Inf_mem - theorem IsGLB.cInf_eq - theorem IsGLB.cinfi_eq - theorem IsGLB.cinfi_set_eq - theorem IsGreatest.Sup_mem - theorem IsGreatest.cSup_eq - theorem IsLUB.cSup_eq - theorem IsLUB.csupr_eq - theorem IsLUB.csupr_set_eq - theorem IsLeast.Inf_mem - theorem IsLeast.cInf_eq - theorem Monotone.cInf_image_le - theorem Monotone.cSup_image_le - theorem Monotone.csupr_mem_Inter_Icc_of_antitone - theorem Monotone.le_cInf_image - theorem Monotone.le_cSup_image - theorem Monotone.map_Inf - theorem MonotoneOn.map_Inf - theorem OrderIso.map_cInf' - theorem OrderIso.map_cInf - theorem OrderIso.map_cSup' - theorem OrderIso.map_cSup - theorem OrderIso.map_cinfi - theorem OrderIso.map_cinfi_set - theorem OrderIso.map_csupr - theorem OrderIso.map_csupr_set - theorem WithBot.cSup_empty - theorem WithBot.coe_Inf' - theorem WithBot.coe_Sup' - theorem WithBot.coe_infi - theorem WithBot.coe_supr - theorem WithBot.csupr_empty - theorem WithTop.cInf_empty - theorem WithTop.cinfi_empty - theorem WithTop.coe_Inf' - theorem WithTop.coe_Inf - theorem WithTop.coe_Sup' - theorem WithTop.coe_Sup - theorem WithTop.coe_infi - theorem WithTop.coe_supr - theorem WithTop.is_glb_Inf' - theorem WithTop.is_glb_Inf - theorem WithTop.is_lub_Sup' - theorem WithTop.is_lub_Sup - theorem WithTop.supr_coe_eq_top - theorem WithTop.supr_coe_lt_top - theorem cInf_Icc - theorem cInf_Ici - theorem cInf_Ico - theorem cInf_Ioc - theorem cInf_Ioi - theorem cInf_Ioo - theorem cInf_eq_of_forall_ge_of_forall_gt_exists_lt - theorem cInf_image2_eq_cInf_cInf - theorem cInf_image2_eq_cInf_cSup - theorem cInf_image2_eq_cSup_cInf - theorem cInf_image2_eq_cSup_cSup - theorem cInf_insert - theorem cInf_le' - theorem cInf_le - theorem cInf_le_cInf' - theorem cInf_le_cInf - theorem cInf_le_cSup - theorem cInf_le_iff - theorem cInf_le_of_le - theorem cInf_lt_of_lt - theorem cInf_pair - theorem cInf_singleton - theorem cInf_union - theorem cInf_univ - theorem cInf_upper_bounds_eq_cSup - theorem cSup_Icc - theorem cSup_Ico - theorem cSup_Iic - theorem cSup_Iio - theorem cSup_Ioc - theorem cSup_Ioo - theorem cSup_empty - theorem cSup_eq_of_forall_le_of_forall_lt_exists_gt - theorem cSup_eq_of_is_forall_le_of_forall_le_imp_ge - theorem cSup_image2_eq_cInf_cInf - theorem cSup_image2_eq_cInf_cSup - theorem cSup_image2_eq_cSup_cInf - theorem cSup_image2_eq_cSup_cSup - theorem cSup_insert - theorem cSup_inter_le - theorem cSup_le' - theorem cSup_le - theorem cSup_le_cSup - theorem cSup_le_iff' - theorem cSup_le_iff - theorem cSup_lower_bounds_eq_cInf - theorem cSup_pair - theorem cSup_singleton - theorem cSup_union - theorem cinfi_const - theorem cinfi_eq_of_forall_ge_of_forall_gt_exists_lt - theorem cinfi_le' - theorem cinfi_le - theorem cinfi_le_of_le - theorem cinfi_mono - theorem cinfi_pos - theorem cinfi_set_le - def conditionallyCompleteLatticeOfInf - def conditionallyCompleteLatticeOfLatticeOfInf - def conditionallyCompleteLatticeOfLatticeOfSup - def conditionallyCompleteLatticeOfSup - theorem csupr_const - theorem csupr_eq_of_forall_le_of_forall_lt_exists_gt - theorem csupr_false - theorem csupr_le' - theorem csupr_le - theorem csupr_le_iff' - theorem csupr_le_iff - theorem csupr_mem_Inter_Icc_of_antitone_Icc - theorem csupr_mono' - theorem csupr_mono - theorem csupr_of_empty - theorem csupr_pos - theorem csupr_set_le_iff - theorem exists_between_of_forall_le - theorem exists_lt_of_cInf_lt - theorem exists_lt_of_cinfi_lt - theorem exists_lt_of_lt_cSup' - theorem exists_lt_of_lt_cSup - theorem exists_lt_of_lt_csupr' - theorem exists_lt_of_lt_csupr - theorem infi_mem - theorem infi_unique - theorem is_glb_cInf - theorem is_glb_cinfi - theorem is_glb_cinfi_set - theorem is_least_Inf - theorem is_lub_cSup' - theorem is_lub_cSup - theorem is_lub_csupr - theorem is_lub_csupr_set - theorem le_cInf - theorem le_cInf_iff'' - theorem le_cInf_iff' - theorem le_cInf_iff - theorem le_cInf_inter - theorem le_cSup - theorem le_cSup_iff' - theorem le_cSup_iff - theorem le_cSup_of_le - theorem le_cinfi - theorem le_cinfi_iff' - theorem le_cinfi_iff - theorem le_cinfi_set_iff - theorem le_csupr - theorem le_csupr_iff' - theorem le_csupr_of_le - theorem le_csupr_set - theorem lt_cSup_of_lt - theorem not_mem_of_cSup_lt - theorem not_mem_of_lt_cInf - theorem subset_Icc_cInf_cSup - theorem supr_unique 2022-12-23 10:34:50+01:00 b58cc7d Revert "Mathbin -> Mathlib; add import to Mathlib.lean" This reverts commit b3dc815ff645b88567102c69525cfc3bfaca30cc. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Order/ConditionallyCompleteLattice/Basic.lean 2022-12-23 10:31:44+01:00 b3dc815 Mathbin -> Mathlib; add import to Mathlib.lean ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Order/ConditionallyCompleteLattice/Basic.lean 2022-12-23 10:31:44+01:00 c4a5385 Initial file copy from mathport ESTIMATED CHANGES Added Mathlib/Order/ConditionallyCompleteLattice/Basic.lean + theorem GaloisConnection.l_cSup' + theorem GaloisConnection.l_cSup + theorem GaloisConnection.l_csupr + theorem GaloisConnection.l_csupr_set + theorem GaloisConnection.u_cInf' + theorem GaloisConnection.u_cInf + theorem GaloisConnection.u_cinfi + theorem GaloisConnection.u_cinfi_set + theorem Inf_eq_argmin_on + theorem Inf_mem + theorem IsGLB.cInf_eq + theorem IsGLB.cinfi_eq + theorem IsGLB.cinfi_set_eq + theorem IsGreatest.Sup_mem + theorem IsGreatest.cSup_eq + theorem IsLUB.cSup_eq + theorem IsLUB.csupr_eq + theorem IsLUB.csupr_set_eq + theorem IsLeast.Inf_mem + theorem IsLeast.cInf_eq + theorem Monotone.cInf_image_le + theorem Monotone.cSup_image_le + theorem Monotone.csupr_mem_Inter_Icc_of_antitone + theorem Monotone.le_cInf_image + theorem Monotone.le_cSup_image + theorem Monotone.map_Inf + theorem MonotoneOn.map_Inf + theorem OrderIso.map_cInf' + theorem OrderIso.map_cInf + theorem OrderIso.map_cSup' + theorem OrderIso.map_cSup + theorem OrderIso.map_cinfi + theorem OrderIso.map_cinfi_set + theorem OrderIso.map_csupr + theorem OrderIso.map_csupr_set + theorem WithBot.cSup_empty + theorem WithBot.coe_Inf' + theorem WithBot.coe_Sup' + theorem WithBot.coe_infi + theorem WithBot.coe_supr + theorem WithBot.csupr_empty + theorem WithTop.cInf_empty + theorem WithTop.cinfi_empty + theorem WithTop.coe_Inf' + theorem WithTop.coe_Inf + theorem WithTop.coe_Sup' + theorem WithTop.coe_Sup + theorem WithTop.coe_infi + theorem WithTop.coe_supr + theorem WithTop.is_glb_Inf' + theorem WithTop.is_glb_Inf + theorem WithTop.is_lub_Sup' + theorem WithTop.is_lub_Sup + theorem WithTop.supr_coe_eq_top + theorem WithTop.supr_coe_lt_top + theorem cInf_Icc + theorem cInf_Ici + theorem cInf_Ico + theorem cInf_Ioc + theorem cInf_Ioi + theorem cInf_Ioo + theorem cInf_eq_of_forall_ge_of_forall_gt_exists_lt + theorem cInf_image2_eq_cInf_cInf + theorem cInf_image2_eq_cInf_cSup + theorem cInf_image2_eq_cSup_cInf + theorem cInf_image2_eq_cSup_cSup + theorem cInf_insert + theorem cInf_le' + theorem cInf_le + theorem cInf_le_cInf' + theorem cInf_le_cInf + theorem cInf_le_cSup + theorem cInf_le_iff + theorem cInf_le_of_le + theorem cInf_lt_of_lt + theorem cInf_pair + theorem cInf_singleton + theorem cInf_union + theorem cInf_univ + theorem cInf_upper_bounds_eq_cSup + theorem cSup_Icc + theorem cSup_Ico + theorem cSup_Iic + theorem cSup_Iio + theorem cSup_Ioc + theorem cSup_Ioo + theorem cSup_empty + theorem cSup_eq_of_forall_le_of_forall_lt_exists_gt + theorem cSup_eq_of_is_forall_le_of_forall_le_imp_ge + theorem cSup_image2_eq_cInf_cInf + theorem cSup_image2_eq_cInf_cSup + theorem cSup_image2_eq_cSup_cInf + theorem cSup_image2_eq_cSup_cSup + theorem cSup_insert + theorem cSup_inter_le + theorem cSup_le' + theorem cSup_le + theorem cSup_le_cSup + theorem cSup_le_iff' + theorem cSup_le_iff + theorem cSup_lower_bounds_eq_cInf + theorem cSup_pair + theorem cSup_singleton + theorem cSup_union + theorem cinfi_const + theorem cinfi_eq_of_forall_ge_of_forall_gt_exists_lt + theorem cinfi_le' + theorem cinfi_le + theorem cinfi_le_of_le + theorem cinfi_mono + theorem cinfi_pos + theorem cinfi_set_le + def conditionallyCompleteLatticeOfInf + def conditionallyCompleteLatticeOfLatticeOfInf + def conditionallyCompleteLatticeOfLatticeOfSup + def conditionallyCompleteLatticeOfSup + theorem csupr_const + theorem csupr_eq_of_forall_le_of_forall_lt_exists_gt + theorem csupr_false + theorem csupr_le' + theorem csupr_le + theorem csupr_le_iff' + theorem csupr_le_iff + theorem csupr_mem_Inter_Icc_of_antitone_Icc + theorem csupr_mono' + theorem csupr_mono + theorem csupr_of_empty + theorem csupr_pos + theorem csupr_set_le_iff + theorem exists_between_of_forall_le + theorem exists_lt_of_cInf_lt + theorem exists_lt_of_cinfi_lt + theorem exists_lt_of_lt_cSup' + theorem exists_lt_of_lt_cSup + theorem exists_lt_of_lt_csupr' + theorem exists_lt_of_lt_csupr + theorem infi_mem + theorem infi_unique + theorem is_glb_cInf + theorem is_glb_cinfi + theorem is_glb_cinfi_set + theorem is_least_Inf + theorem is_lub_cSup' + theorem is_lub_cSup + theorem is_lub_csupr + theorem is_lub_csupr_set + theorem le_cInf + theorem le_cInf_iff'' + theorem le_cInf_iff' + theorem le_cInf_iff + theorem le_cInf_inter + theorem le_cSup + theorem le_cSup_iff' + theorem le_cSup_iff + theorem le_cSup_of_le + theorem le_cinfi + theorem le_cinfi_iff' + theorem le_cinfi_iff + theorem le_cinfi_set_iff + theorem le_csupr + theorem le_csupr_iff' + theorem le_csupr_of_le + theorem le_csupr_set + theorem lt_cSup_of_lt + theorem not_mem_of_cSup_lt + theorem not_mem_of_lt_cInf + theorem subset_Icc_cInf_cSup + theorem supr_unique 2022-12-23 02:51:01 3bc6212 refactor: use `Is*CancelMulZero` (#1137) This is a Lean 4 version of leanprover-community/mathlib#17963 ESTIMATED CHANGES Modified Mathlib/Algebra/Associated.lean - theorem Associates.eq_of_mul_eq_mul_left - theorem Associates.eq_of_mul_eq_mul_right Modified Mathlib/Algebra/GroupWithZero/Basic.lean Modified Mathlib/Algebra/GroupWithZero/Defs.lean - theorem CommMonoidWithZero.IsLeftCancelMulZero.to_IsCancelMulZero - theorem CommMonoidWithZero.IsLeftCancelMulZero.to_IsRightCancelMulZero - theorem CommMonoidWithZero.IsRightCancelMulZero.to_IsCancelMulZero - theorem CommMonoidWithZero.IsRightCancelMulZero.to_IsLeftCancelMulZero + theorem IsLeftCancelMulZero.to_IsCancelMulZero + theorem IsLeftCancelMulZero.to_IsRightCancelMulZero + theorem IsRightCancelMulZero.to_IsCancelMulZero + theorem IsRightCancelMulZero.to_IsLeftCancelMulZero Modified Mathlib/Algebra/Ring/Regular.lean Modified Mathlib/Data/Nat/Basic.lean Modified Mathlib/Data/Nat/Choose/Basic.lean 2022-12-23 02:31:57 4b0358a chore: bump to 2022-12-22 (#1157) ESTIMATED CHANGES Modified Mathlib/Algebra/Associated.lean Modified Mathlib/Algebra/Field/Defs.lean +/- def Rat.castRec Modified Mathlib/Algebra/Group/ULift.lean Modified Mathlib/Algebra/Hom/Units.lean Modified Mathlib/Algebra/Parity.lean Modified Mathlib/Data/Nat/Factorial/Basic.lean Modified Mathlib/Init/Align.lean Modified Mathlib/Init/Logic.lean Modified Mathlib/Logic/Nontrivial.lean Modified Mathlib/Order/Antisymmetrization.lean Modified Mathlib/Order/InitialSeg.lean Modified Mathlib/Order/RelIso/Basic.lean Modified lake-manifest.json Modified lean-toolchain 2022-12-23 02:11:59 8eeb13b chore: #align is_lawful_functor LawfulFunctor (#1173) ESTIMATED CHANGES Modified Mathlib/Init/Align.lean 2022-12-22 21:50:05 ca97e7b feat: port Data.Stream.Init (#849) e574b1a4e891376b0ef974b926da39e05da12a06 Due to name collisions with `Stream` in Lean 4, the structure is `Stream'` as earlier defined. Recursive proofs were changed a bit to show termination. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Data/Stream/Init.lean + def Stream'.IsBisimulation + theorem Stream'.all_def + theorem Stream'.any_def + theorem Stream'.append_append_stream + theorem Stream'.append_stream_head_tail + theorem Stream'.append_take_drop + theorem Stream'.bisim_simple + theorem Stream'.coinduction + theorem Stream'.composition + theorem Stream'.cons_append_stream + theorem Stream'.cons_injective2 + theorem Stream'.cons_injective_left + theorem Stream'.cons_injective_right + theorem Stream'.cons_nth_inits_core + theorem Stream'.const_eq + theorem Stream'.corec'_eq + theorem Stream'.corec_def + theorem Stream'.corec_eq + theorem Stream'.corec_id_f_eq_iterate + theorem Stream'.corec_id_id_eq_const + theorem Stream'.cycle_eq + theorem Stream'.cycle_singleton + theorem Stream'.drop_append_stream + theorem Stream'.drop_const + theorem Stream'.drop_drop + theorem Stream'.drop_map + theorem Stream'.drop_succ + theorem Stream'.drop_zip + theorem Stream'.enum_eq_zip + theorem Stream'.eq_of_bisim + theorem Stream'.eq_or_mem_of_mem_cons + theorem Stream'.even_cons_cons + theorem Stream'.even_interleave + theorem Stream'.even_tail + theorem Stream'.exists_of_mem_map + theorem Stream'.head_cons + theorem Stream'.head_drop + theorem Stream'.head_even + theorem Stream'.head_iterate + theorem Stream'.head_map + theorem Stream'.head_zip + theorem Stream'.homomorphism + theorem Stream'.identity + theorem Stream'.inits_core_eq + theorem Stream'.inits_eq + theorem Stream'.inits_tail + theorem Stream'.interchange + theorem Stream'.interleave_eq + theorem Stream'.interleave_even_odd + theorem Stream'.interleave_tail_tail + theorem Stream'.iterate_eq + theorem Stream'.iterate_id + theorem Stream'.length_take + theorem Stream'.map_append_stream + theorem Stream'.map_cons + theorem Stream'.map_const + theorem Stream'.map_eq + theorem Stream'.map_eq_apply + theorem Stream'.map_id + theorem Stream'.map_iterate + theorem Stream'.map_map + theorem Stream'.map_tail + theorem Stream'.mem_append_stream_left + theorem Stream'.mem_append_stream_right + theorem Stream'.mem_cons + theorem Stream'.mem_cons_of_mem + theorem Stream'.mem_const + theorem Stream'.mem_cycle + theorem Stream'.mem_interleave_left + theorem Stream'.mem_interleave_right + theorem Stream'.mem_map + theorem Stream'.mem_of_mem_even + theorem Stream'.mem_of_mem_odd + theorem Stream'.mem_of_nth_eq + theorem Stream'.nats_eq + theorem Stream'.nil_append_stream + theorem Stream'.nth_const + theorem Stream'.nth_drop + theorem Stream'.nth_enum + theorem Stream'.nth_even + theorem Stream'.nth_inits + theorem Stream'.nth_interleave_left + theorem Stream'.nth_interleave_right + theorem Stream'.nth_map + theorem Stream'.nth_nats + theorem Stream'.nth_odd + theorem Stream'.nth_of_bisim + theorem Stream'.nth_succ + theorem Stream'.nth_succ_cons + theorem Stream'.nth_succ_iterate + theorem Stream'.nth_tails + theorem Stream'.nth_take_succ + theorem Stream'.nth_unfolds_head_tail + theorem Stream'.nth_zero_cons + theorem Stream'.nth_zero_iterate + theorem Stream'.nth_zip + theorem Stream'.odd_eq + theorem Stream'.tail_cons + theorem Stream'.tail_const + theorem Stream'.tail_drop + theorem Stream'.tail_eq_drop + theorem Stream'.tail_even + theorem Stream'.tail_inits + theorem Stream'.tail_interleave + theorem Stream'.tail_iterate + theorem Stream'.tail_map + theorem Stream'.tail_zip + theorem Stream'.tails_eq + theorem Stream'.tails_eq_iterate + theorem Stream'.take_succ + theorem Stream'.take_theorem + theorem Stream'.take_zero + theorem Stream'.unfolds_eq + theorem Stream'.unfolds_head_eq + theorem Stream'.zip_eq + theorem Stream'.zip_inits_tails 2022-12-22 21:16:08 e865530 feat: better coercions from hom classes to hom types (#1150) Discussed [here](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/Algebra.2ERing.2EEquiv.20help.20request/near/317172807) ESTIMATED CHANGES Modified Mathlib/Algebra/Hom/Equiv/Basic.lean + def MulEquivClass.toMulEquiv Modified Mathlib/Algebra/Hom/Group.lean + def MonoidHomClass.toMonoidHom + def MonoidWithZeroHomClass.toMonoidWithZeroHom + def MulHomClass.toMulHom + def OneHomClass.toOneHom Modified Mathlib/Algebra/Hom/Ring.lean + def NonUnitalRingHomClass.toNonUnitalRingHom +/- theorem RingHom.toMonoidWithZeroHom_eq_coe + def RingHomClass.toRingHom Modified Mathlib/Logic/Equiv/Defs.lean + def EquivLike.toEquiv Modified Mathlib/Order/Hom/Basic.lean + def OrderHomClass.toOrderHom + def OrderIsoClass.toOrderIso 2022-12-22 21:16:07 c2c04ce feat: port data.nat.even_odd_rec (#1148) First commit for data.nat.even_odd_rec Mathlib commit : ba2245edf0c8bb155f1569fd9b9492a9b384cde6 ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Data/Nat/EvenOddRec.lean + def Nat.evenOddRec + theorem Nat.evenOddRec_even + theorem Nat.evenOddRec_odd + theorem Nat.evenOddRec_zero 2022-12-22 21:16:05 e172f2a chore: clean up `positivity` stub theory (#1100) Restore the lemmas for the so-far-implemented `positivity` extensions to their mathlib3 positions, attributes (they were all `private`), and typeclasses. Also remove nonsense instances of some typeclasses in the test file. This things are all newly possible now that the underlying theory has been implemented. ESTIMATED CHANGES Modified Mathlib/Tactic/Positivity/Basic.lean - theorem mul_ne_zero_of_ne_zero_of_pos - theorem mul_ne_zero_of_pos_of_ne_zero - theorem mul_nonneg_of_nonneg_of_pos - theorem mul_nonneg_of_pos_of_nonneg - theorem pow_zero_pos Modified test/positivity.lean 2022-12-22 20:57:52 10507fe chore: fix names (#1171) ESTIMATED CHANGES Modified Mathlib/Data/Nat/Cast/Basic.lean Modified Mathlib/Data/Set/Basic.lean Modified Mathlib/Data/Set/Function.lean 2022-12-22 20:38:01 1820a89 chore: in scripts/start_port.sh add port/ to generated branch name (#1170) ESTIMATED CHANGES Modified scripts/start_port.sh 2022-12-22 20:13:01 682500f feat: port Data.Rel (#1134) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Data/Rel.lean + def Function.graph + def Rel.codom + theorem Rel.codom_inv + def Rel.comp + theorem Rel.comp_assoc + theorem Rel.comp_left_id + theorem Rel.comp_right_id + def Rel.core + theorem Rel.core_comp + theorem Rel.core_id + theorem Rel.core_inter + theorem Rel.core_mono + theorem Rel.core_subset + theorem Rel.core_union + theorem Rel.core_univ + def Rel.dom + theorem Rel.dom_inv + theorem Rel.dom_mono + theorem Rel.ext + def Rel.image + theorem Rel.image_comp + theorem Rel.image_core_gc + theorem Rel.image_id + theorem Rel.image_inter + theorem Rel.image_mono + theorem Rel.image_subset + theorem Rel.image_subset_iff + theorem Rel.image_union + theorem Rel.image_univ + def Rel.inv + theorem Rel.inv_comp + theorem Rel.inv_def + theorem Rel.inv_id + theorem Rel.inv_inv + theorem Rel.mem_core + theorem Rel.mem_image + theorem Rel.mem_preimage + def Rel.preimage + theorem Rel.preimage_comp + theorem Rel.preimage_def + theorem Rel.preimage_id + theorem Rel.preimage_inter + theorem Rel.preimage_mono + theorem Rel.preimage_union + theorem Rel.preimage_univ + def Rel.restrictDomain + def Rel + theorem Set.image_eq + theorem Set.preimage_eq + theorem Set.preimage_eq_core 2022-12-22 19:54:39 9b1cd33 feat: port Control.Traversable.Equiv (#1136) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Control/Traversable/Equiv.lean 2022-12-22 19:05:55 73e7cc5 chore: fix docstrings in Data.List.Defs (#1166) ESTIMATED CHANGES Modified Mathlib/Data/List/Defs.lean 2022-12-22 18:28:39 4c70fde feat: port data.nat.prime (#1156) - [x] depends on #1142 ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Data/Nat/Prime.lean + theorem Int.prime_three + theorem Int.prime_two + theorem Nat.Prime.coprime_iff_not_dvd + theorem Nat.Prime.coprime_pow_of_not_dvd + theorem Nat.Prime.dvd_factorial + theorem Nat.Prime.dvd_iff_eq + theorem Nat.Prime.dvd_iff_not_coprime + theorem Nat.Prime.dvd_mul + theorem Nat.Prime.dvd_mul_of_dvd_ne + theorem Nat.Prime.dvd_of_dvd_pow + theorem Nat.Prime.eq_one_of_pow + theorem Nat.Prime.eq_one_or_self_of_dvd + theorem Nat.Prime.eq_two_or_odd' + theorem Nat.Prime.eq_two_or_odd + theorem Nat.Prime.even_iff + theorem Nat.Prime.five_le_of_ne_two_of_ne_three + theorem Nat.Prime.minFac_eq + theorem Nat.Prime.mod_two_eq_one_iff_ne_two + theorem Nat.Prime.mul_eq_prime_sq_iff + theorem Nat.Prime.ne_one + theorem Nat.Prime.ne_zero + theorem Nat.Prime.not_coprime_iff_dvd + theorem Nat.Prime.not_dvd_mul + theorem Nat.Prime.not_dvd_one + theorem Nat.Prime.odd_of_ne_two + theorem Nat.Prime.one_lt + theorem Nat.Prime.pos + theorem Nat.Prime.pow_eq_iff + theorem Nat.Prime.pow_minFac + theorem Nat.Prime.pow_not_prime' + theorem Nat.Prime.pow_not_prime + theorem Nat.Prime.pred_pos + theorem Nat.Prime.two_le + def Nat.Prime + theorem Nat.Primes.coe_nat_inj + theorem Nat.Primes.coe_nat_injective + def Nat.Primes + theorem Nat.coprime_of_dvd' + theorem Nat.coprime_of_dvd + theorem Nat.coprime_of_lt_prime + theorem Nat.coprime_or_dvd_of_prime + theorem Nat.coprime_pow_primes + theorem Nat.coprime_primes + def Nat.decidablePrime1 + theorem Nat.dvd_of_forall_prime_mul_dvd + theorem Nat.dvd_prime + theorem Nat.dvd_prime_pow + theorem Nat.dvd_prime_two_le + theorem Nat.eq_one_iff_not_exists_prime_dvd + theorem Nat.eq_or_coprime_of_le_prime + theorem Nat.eq_prime_pow_of_dvd_least_prime_pow + theorem Nat.exists_dvd_of_not_prime2 + theorem Nat.exists_dvd_of_not_prime + theorem Nat.exists_infinite_primes + theorem Nat.exists_prime_and_dvd + theorem Nat.factors_lemma + theorem Nat.irreducible_iff_nat_prime + theorem Nat.irreducible_iff_prime + theorem Nat.le_minFac' + theorem Nat.le_minFac + def Nat.minFac + def Nat.minFacAux + theorem Nat.minFacAux_has_prop + theorem Nat.minFac_dvd + theorem Nat.minFac_eq + theorem Nat.minFac_eq_one_iff + theorem Nat.minFac_eq_two_iff + theorem Nat.minFac_has_prop + theorem Nat.minFac_le + theorem Nat.minFac_le_div + theorem Nat.minFac_le_of_dvd + theorem Nat.minFac_lemma + theorem Nat.minFac_one + theorem Nat.minFac_pos + theorem Nat.minFac_prime + theorem Nat.minFac_sq_le_self + theorem Nat.minFac_zero + theorem Nat.ne_one_iff_exists_prime_dvd + theorem Nat.not_bddAbove_setOf_prime + theorem Nat.not_prime_iff_minFac_lt + theorem Nat.not_prime_mul' + theorem Nat.not_prime_mul + theorem Nat.not_prime_one + theorem Nat.not_prime_zero + theorem Nat.pow_minFac + theorem Nat.prime_def_le_sqrt + theorem Nat.prime_def_lt'' + theorem Nat.prime_def_lt' + theorem Nat.prime_def_lt + theorem Nat.prime_def_minFac + theorem Nat.prime_dvd_prime_iff_eq + theorem Nat.prime_iff + theorem Nat.prime_iff_prime_int + theorem Nat.prime_mul_iff + theorem Nat.prime_of_coprime + theorem Nat.prime_three + theorem Nat.prime_two + theorem Nat.succ_dvd_or_succ_dvd_of_succ_sum_dvd_mul + theorem Nat.succ_pred_prime 2022-12-22 18:05:28 f5fe44e feat: port Algebra.Ring.Pi (#1151) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Ring/Pi.lean + def Pi.constNonUnitalRingHom + def Pi.constRingHom + def Pi.evalNonUnitalRingHom + def Pi.evalRingHom + theorem Pi.nonUnitalRingHom_injective + theorem Pi.ringHom_injective 2022-12-22 16:59:52 ce30ba6 feat port: Data.Set.Lattice (#1121) Mostly name changes. The proof of `subset_bunionᵢ_of_mem` needed a bunch of explicit arguments for some reason. I also moved the definition of `set.sUnion` from `Init.Set` into this file and changed its name. I also `protected` the definition of `Set.compl` ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Data/Set/Lattice.lean + theorem Antitone.inter + theorem Antitone.interᵢ_nat_add + theorem Antitone.union + theorem AntitoneOn.inter + theorem AntitoneOn.union + theorem Disjoint.image + theorem Disjoint.inter_left' + theorem Disjoint.inter_left + theorem Disjoint.inter_right' + theorem Disjoint.inter_right + theorem Disjoint.ne_of_mem + theorem Disjoint.of_image + theorem Disjoint.of_preimage + theorem Disjoint.preimage + theorem Disjoint.subset_left_of_subset_union + theorem Disjoint.subset_right_of_subset_union + theorem Disjoint.union_left + theorem Disjoint.union_right + theorem Function.Surjective.interᵢ_comp + theorem Function.Surjective.unionᵢ_comp + theorem Monotone.inter + theorem Monotone.union + theorem Monotone.unionᵢ_nat_add + theorem MonotoneOn.inter + theorem MonotoneOn.union + theorem Set.Ici_supᵢ + theorem Set.Ici_supᵢ₂ + theorem Set.Ici_supₛ + theorem Set.Iic_infᵢ + theorem Set.Iic_infᵢ₂ + theorem Set.Iic_infₛ + theorem Set.InjOn.image_binterᵢ_eq + theorem Set.InjOn.image_inter + theorem Set.InjOn.image_interᵢ_eq + theorem Set.Nonempty.of_unionₛ + theorem Set.Nonempty.of_unionₛ_eq_univ + theorem Set.Sigma.univ + theorem Set.antitone_bforall + theorem Set.antitone_setOf + theorem Set.bijOn_interᵢ + theorem Set.bijOn_interᵢ_of_directed + theorem Set.bijOn_unionᵢ + theorem Set.bijOn_unionᵢ_of_directed + theorem Set.bijective_iff_bijective_of_unionᵢ_eq_univ + theorem Set.binterᵢ_and' + theorem Set.binterᵢ_and + theorem Set.binterᵢ_empty + theorem Set.binterᵢ_eq_interᵢ + theorem Set.binterᵢ_image + theorem Set.binterᵢ_insert + theorem Set.binterᵢ_inter + theorem Set.binterᵢ_mono + theorem Set.binterᵢ_pair + theorem Set.binterᵢ_range + theorem Set.binterᵢ_singleton + theorem Set.binterᵢ_subset_binterᵢ_left + theorem Set.binterᵢ_subset_of_mem + theorem Set.binterᵢ_union + theorem Set.binterᵢ_unionᵢ + theorem Set.binterᵢ_univ + theorem Set.bunionᵢ_and' + theorem Set.bunionᵢ_and + theorem Set.bunionᵢ_diff_bunionᵢ_subset + theorem Set.bunionᵢ_empty + theorem Set.bunionᵢ_eq_unionᵢ + theorem Set.bunionᵢ_image + theorem Set.bunionᵢ_insert + theorem Set.bunionᵢ_mono + theorem Set.bunionᵢ_of_singleton + theorem Set.bunionᵢ_pair + theorem Set.bunionᵢ_preimage_singleton + theorem Set.bunionᵢ_range + theorem Set.bunionᵢ_range_preimage_singleton + theorem Set.bunionᵢ_self + theorem Set.bunionᵢ_singleton + theorem Set.bunionᵢ_subset_bunionᵢ_left + theorem Set.bunionᵢ_union + theorem Set.bunionᵢ_unionᵢ + theorem Set.bunionᵢ_univ + theorem Set.compl_interᵢ + theorem Set.compl_interᵢ₂ + theorem Set.compl_interₛ + theorem Set.compl_unionᵢ + theorem Set.compl_unionᵢ₂ + theorem Set.compl_unionₛ + theorem Set.diff_interᵢ + theorem Set.diff_unionᵢ + theorem Set.directed_on_unionᵢ + theorem Set.disjoint_diff + theorem Set.disjoint_empty + theorem Set.disjoint_iff_forall_ne + theorem Set.disjoint_image_iff + theorem Set.disjoint_image_image + theorem Set.disjoint_image_of_injective + theorem Set.disjoint_of_subset + theorem Set.disjoint_of_subset_left + theorem Set.disjoint_of_subset_right + theorem Set.disjoint_or_nonempty_inter + theorem Set.disjoint_preimage_iff + theorem Set.disjoint_singleton + theorem Set.disjoint_singleton_left + theorem Set.disjoint_singleton_right + theorem Set.disjoint_union_left + theorem Set.disjoint_union_right + theorem Set.disjoint_unionᵢ_left + theorem Set.disjoint_unionᵢ_right + theorem Set.disjoint_unionᵢ₂_left + theorem Set.disjoint_unionᵢ₂_right + theorem Set.disjoint_unionₛ_left + theorem Set.disjoint_unionₛ_right + theorem Set.disjoint_univ + theorem Set.empty_disjoint + theorem Set.exists_set_mem_of_union_eq_top + theorem Set.image2_eq_seq + theorem Set.image2_eq_unionᵢ + theorem Set.image2_interᵢ_subset_left + theorem Set.image2_interᵢ_subset_right + theorem Set.image2_interᵢ₂_subset_left + theorem Set.image2_interᵢ₂_subset_right + theorem Set.image2_unionᵢ_left + theorem Set.image2_unionᵢ_right + theorem Set.image2_unionᵢ₂_left + theorem Set.image2_unionᵢ₂_right + theorem Set.image_eq_unionᵢ + theorem Set.image_interᵢ + theorem Set.image_interᵢ_subset + theorem Set.image_interᵢ₂ + theorem Set.image_interᵢ₂_subset + theorem Set.image_interₛ_subset + theorem Set.image_projection_prod + theorem Set.image_seq + theorem Set.image_unionᵢ + theorem Set.image_unionᵢ₂ + theorem Set.infᵢ_eq_dif + theorem Set.infᵢ_eq_interᵢ + theorem Set.infₛ_eq_interₛ + theorem Set.inj_on_unionᵢ_of_directed + theorem Set.injective_iff_injective_of_unionᵢ_eq_univ + theorem Set.inter_binterᵢ + theorem Set.inter_empty_of_inter_unionₛ_empty + theorem Set.inter_eq_interᵢ + theorem Set.inter_interᵢ + theorem Set.inter_interᵢ_nat_succ + theorem Set.inter_unionᵢ + theorem Set.inter_unionᵢ₂ + def Set.interᵢ + theorem Set.interᵢ_and + theorem Set.interᵢ_coe_set + theorem Set.interᵢ_comm + theorem Set.interᵢ_congr + theorem Set.interᵢ_congr_Prop + theorem Set.interᵢ_congr_of_surjective + theorem Set.interᵢ_const + theorem Set.interᵢ_dite + theorem Set.interᵢ_eq_compl_unionᵢ_compl + theorem Set.interᵢ_eq_empty_iff + theorem Set.interᵢ_eq_if + theorem Set.interᵢ_eq_univ + theorem Set.interᵢ_exists + theorem Set.interᵢ_false + theorem Set.interᵢ_ge_eq_interᵢ_nat_add + theorem Set.interᵢ_inter + theorem Set.interᵢ_inter_distrib + theorem Set.interᵢ_interᵢ_eq' + theorem Set.interᵢ_interᵢ_eq_left + theorem Set.interᵢ_interᵢ_eq_or_left + theorem Set.interᵢ_interᵢ_eq_right + theorem Set.interᵢ_ite + theorem Set.interᵢ_mono' + theorem Set.interᵢ_mono + theorem Set.interᵢ_of_empty + theorem Set.interᵢ_option + theorem Set.interᵢ_or + theorem Set.interᵢ_plift_down + theorem Set.interᵢ_plift_up + theorem Set.interᵢ_setOf + theorem Set.interᵢ_subset + theorem Set.interᵢ_subset_interᵢ₂ + theorem Set.interᵢ_subset_of_subset + theorem Set.interᵢ_subtype + theorem Set.interᵢ_true + theorem Set.interᵢ_union + theorem Set.interᵢ_union_of_antitone + theorem Set.interᵢ_union_of_monotone + theorem Set.interᵢ_univ + theorem Set.interᵢ₂_comm + theorem Set.interᵢ₂_congr + theorem Set.interᵢ₂_eq_empty_iff + theorem Set.interᵢ₂_mono' + theorem Set.interᵢ₂_mono + theorem Set.interᵢ₂_subset + theorem Set.interᵢ₂_subset_of_subset + theorem Set.interᵢ₂_union + def Set.interₛ + theorem Set.interₛ_diff_singleton_univ + theorem Set.interₛ_empty + theorem Set.interₛ_eq_binterᵢ + theorem Set.interₛ_eq_compl_unionₛ_compl + theorem Set.interₛ_eq_empty_iff + theorem Set.interₛ_eq_interᵢ + theorem Set.interₛ_eq_univ + theorem Set.interₛ_image + theorem Set.interₛ_insert + theorem Set.interₛ_pair + theorem Set.interₛ_prod + theorem Set.interₛ_prod_interₛ + theorem Set.interₛ_prod_interₛ_subset + theorem Set.interₛ_range + theorem Set.interₛ_singleton + theorem Set.interₛ_subset_interₛ + theorem Set.interₛ_subset_of_mem + theorem Set.interₛ_union + theorem Set.interₛ_union_interₛ + theorem Set.interₛ_unionᵢ + def Set.kernImage + theorem Set.mapsTo_interᵢ + theorem Set.mapsTo_interᵢ_interᵢ + theorem Set.mapsTo_interᵢ₂ + theorem Set.mapsTo_interᵢ₂_interᵢ₂ + theorem Set.mapsTo_interₛ + theorem Set.mapsTo_unionᵢ + theorem Set.mapsTo_unionᵢ_unionᵢ + theorem Set.mapsTo_unionᵢ₂ + theorem Set.mapsTo_unionᵢ₂_unionᵢ₂ + theorem Set.mapsTo_unionₛ + theorem Set.mem_binterᵢ + theorem Set.mem_bunionᵢ + theorem Set.mem_interᵢ + theorem Set.mem_interᵢ_of_mem + theorem Set.mem_interᵢ₂ + theorem Set.mem_interᵢ₂_of_mem + theorem Set.mem_interₛ + theorem Set.mem_seq_iff + theorem Set.mem_unionᵢ + theorem Set.mem_unionᵢ_of_mem + theorem Set.mem_unionᵢ₂ + theorem Set.mem_unionᵢ₂_of_mem + theorem Set.mem_unionₛ + theorem Set.mem_unionₛ_of_mem + theorem Set.monotone_image + theorem Set.monotone_preimage + theorem Set.monotone_setOf + theorem Set.nonempty_bunionᵢ + theorem Set.nonempty_interᵢ + theorem Set.nonempty_interᵢ₂ + theorem Set.nonempty_interₛ + theorem Set.nonempty_of_union_eq_top_of_nonempty + theorem Set.nonempty_unionᵢ + theorem Set.nonempty_unionₛ + theorem Set.not_disjoint_iff + theorem Set.not_disjoint_iff_nonempty_inter + theorem Set.not_mem_of_not_mem_unionₛ + theorem Set.pi_def + theorem Set.pi_diff_pi_subset + theorem Set.preimage_eq_empty + theorem Set.preimage_eq_empty_iff + theorem Set.preimage_interᵢ + theorem Set.preimage_interᵢ₂ + theorem Set.preimage_interₛ + theorem Set.preimage_unionᵢ + theorem Set.preimage_unionᵢ₂ + theorem Set.preimage_unionₛ + theorem Set.prod_eq_bunionᵢ_left + theorem Set.prod_eq_bunionᵢ_right + theorem Set.prod_eq_seq + theorem Set.prod_image_seq_comm + theorem Set.prod_interₛ + theorem Set.prod_unionᵢ + theorem Set.prod_unionᵢ₂ + theorem Set.prod_unionₛ + theorem Set.range_eq_unionᵢ + theorem Set.range_sigma_eq_unionᵢ_range + theorem Set.restrictPreimage_bijective + theorem Set.restrictPreimage_injective + theorem Set.restrictPreimage_surjective + def Set.seq + theorem Set.seq_def + theorem Set.seq_mono + theorem Set.seq_seq + theorem Set.seq_singleton + theorem Set.seq_subset + theorem Set.setOf_exists + theorem Set.setOf_forall + def Set.sigmaToUnionᵢ + theorem Set.sigmaToUnionᵢ_bijective + theorem Set.sigmaToUnionᵢ_injective + theorem Set.sigmaToUnionᵢ_surjective + theorem Set.singleton_seq + theorem Set.subset_bunionᵢ_of_mem + theorem Set.subset_diff + theorem Set.subset_interᵢ + theorem Set.subset_interᵢ_iff + theorem Set.subset_interᵢ₂ + theorem Set.subset_interᵢ₂_iff + theorem Set.subset_interₛ + theorem Set.subset_interₛ_iff + theorem Set.subset_unionᵢ + theorem Set.subset_unionᵢ_of_subset + theorem Set.subset_unionᵢ₂ + theorem Set.subset_unionᵢ₂_of_subset + theorem Set.subset_unionₛ_of_mem + theorem Set.subset_unionₛ_of_subset + theorem Set.supᵢ_eq_unionᵢ + theorem Set.supₛ_eq_unionₛ + theorem Set.surjOn_interᵢ + theorem Set.surjOn_interᵢ_interᵢ + theorem Set.surjOn_unionᵢ + theorem Set.surjOn_unionᵢ_unionᵢ + theorem Set.surjOn_unionᵢ₂ + theorem Set.surjOn_unionᵢ₂_unionᵢ₂ + theorem Set.surjOn_unionₛ + theorem Set.surjective_iff_surjective_of_unionᵢ_eq_univ + theorem Set.union_distrib_interᵢ_left + theorem Set.union_distrib_interᵢ_right + theorem Set.union_distrib_interᵢ₂_left + theorem Set.union_distrib_interᵢ₂_right + theorem Set.union_eq_unionᵢ + theorem Set.union_interᵢ + theorem Set.union_interᵢ₂ + theorem Set.union_unionᵢ + theorem Set.union_unionᵢ_nat_succ + def Set.unionᵢ + theorem Set.unionᵢ_and + theorem Set.unionᵢ_coe_set + theorem Set.unionᵢ_comm + theorem Set.unionᵢ_congr + theorem Set.unionᵢ_congr_Prop + theorem Set.unionᵢ_congr_of_surjective + theorem Set.unionᵢ_const + theorem Set.unionᵢ_diff + theorem Set.unionᵢ_dite + theorem Set.unionᵢ_empty + theorem Set.unionᵢ_eq_compl_interᵢ_compl + theorem Set.unionᵢ_eq_dif + theorem Set.unionᵢ_eq_empty + theorem Set.unionᵢ_eq_if + theorem Set.unionᵢ_eq_range_psigma + theorem Set.unionᵢ_eq_range_sigma + theorem Set.unionᵢ_eq_univ_iff + theorem Set.unionᵢ_exists + theorem Set.unionᵢ_false + theorem Set.unionᵢ_ge_eq_unionᵢ_nat_add + theorem Set.unionᵢ_image_left + theorem Set.unionᵢ_image_preimage_sigma_mk_eq_self + theorem Set.unionᵢ_image_right + theorem Set.unionᵢ_inter + theorem Set.unionᵢ_inter_of_antitone + theorem Set.unionᵢ_inter_of_monotone + theorem Set.unionᵢ_inter_subset + theorem Set.unionᵢ_interᵢ_ge_nat_add + theorem Set.unionᵢ_interᵢ_subset + theorem Set.unionᵢ_ite + theorem Set.unionᵢ_mono' + theorem Set.unionᵢ_mono + theorem Set.unionᵢ_nonempty_index + theorem Set.unionᵢ_nonempty_self + theorem Set.unionᵢ_of_empty + theorem Set.unionᵢ_of_singleton + theorem Set.unionᵢ_of_singleton_coe + theorem Set.unionᵢ_option + theorem Set.unionᵢ_or + theorem Set.unionᵢ_plift_down + theorem Set.unionᵢ_plift_up + theorem Set.unionᵢ_prod + theorem Set.unionᵢ_prod_const + theorem Set.unionᵢ_prod_of_monotone + theorem Set.unionᵢ_range_eq_unionᵢ + theorem Set.unionᵢ_range_eq_unionₛ + theorem Set.unionᵢ_setOf + theorem Set.unionᵢ_singleton_eq_range + theorem Set.unionᵢ_subset + theorem Set.unionᵢ_subset_iff + theorem Set.unionᵢ_subset_unionᵢ_const + theorem Set.unionᵢ_subtype + theorem Set.unionᵢ_true + theorem Set.unionᵢ_union + theorem Set.unionᵢ_union_distrib + theorem Set.unionᵢ_unionᵢ_eq' + theorem Set.unionᵢ_unionᵢ_eq_left + theorem Set.unionᵢ_unionᵢ_eq_or_left + theorem Set.unionᵢ_unionᵢ_eq_right + theorem Set.unionᵢ_univ_pi + theorem Set.unionᵢ₂_comm + theorem Set.unionᵢ₂_congr + theorem Set.unionᵢ₂_eq_univ_iff + theorem Set.unionᵢ₂_inter + theorem Set.unionᵢ₂_mono' + theorem Set.unionᵢ₂_mono + theorem Set.unionᵢ₂_prod_const + theorem Set.unionᵢ₂_subset + theorem Set.unionᵢ₂_subset_iff + theorem Set.unionᵢ₂_subset_unionᵢ + def Set.unionₛ + theorem Set.unionₛ_diff_singleton_empty + theorem Set.unionₛ_empty + theorem Set.unionₛ_eq_bunionᵢ + theorem Set.unionₛ_eq_compl_interₛ_compl + theorem Set.unionₛ_eq_empty + theorem Set.unionₛ_eq_unionᵢ + theorem Set.unionₛ_eq_univ_iff + theorem Set.unionₛ_image + theorem Set.unionₛ_insert + theorem Set.unionₛ_inter_unionₛ + theorem Set.unionₛ_mono + theorem Set.unionₛ_pair + theorem Set.unionₛ_prod_const + theorem Set.unionₛ_range + theorem Set.unionₛ_singleton + theorem Set.unionₛ_subset + theorem Set.unionₛ_subset_iff + theorem Set.unionₛ_subset_unionₛ + theorem Set.unionₛ_union + theorem Set.unionₛ_unionᵢ + theorem Set.univ_disjoint + theorem Set.univ_pi_eq_interᵢ + theorem Set.univ_subtype + theorem infᵢ_unionᵢ + theorem infₛ_unionₛ + theorem supᵢ_unionᵢ + theorem supₛ_unionₛ Modified Mathlib/Init/Set.lean - def Set.compl - def Set.sUnion 2022-12-22 16:42:07 1d0befd feat: port Data.Int.Sqrt (#1167) Only notable thing here is that ```@[pp_nodot]``` was commented out since that is currently an unknown attribute. Hope that's the way to do it! ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Data/Int/Sqrt.lean + theorem Int.exists_mul_self + def Int.sqrt + theorem Int.sqrt_eq + theorem Int.sqrt_nonneg 2022-12-22 16:42:06 10cae9e feat: script to start port of new file (#1160) Based in part on https://github.com/leanprover-community/mathlib-tools/pull/147, but maybe it is more convenient for it to be a standalone script. ESTIMATED CHANGES Added scripts/start_port.sh 2022-12-22 16:23:40 e0d4c04 feat port: GroupTheory.GroupAction.Group (#1146) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Data/Int/Basic.lean Added Mathlib/GroupTheory/GroupAction/Group.lean + def AddAction.toPermHom + theorem Commute.smul_left_iff + theorem Commute.smul_left_iff₀ + theorem Commute.smul_right_iff + theorem Commute.smul_right_iff₀ + def DistribMulAction.toAddAut + def DistribMulAction.toAddEquiv + theorem IsUnit.smul_eq_zero + theorem IsUnit.smul_left_cancel + theorem IsUnit.smul_sub_iff_sub_inv_smul + def MulAction.toPerm + def MulAction.toPermHom + theorem MulAction.to_perm_injective + def MulDistribMulAction.toMulAut + def MulDistribMulAction.toMulEquiv + def arrowAction + def arrowMulDistribMulAction + theorem eq_inv_smul_iff + theorem eq_inv_smul_iff₀ + theorem inv_smul_eq_iff + theorem inv_smul_eq_iff₀ + theorem inv_smul_smul + theorem inv_smul_smul₀ + theorem is_unit_smul_iff + def mulAutArrow + theorem smul_eq_iff_eq_inv_smul + theorem smul_eq_zero_iff_eq' + theorem smul_eq_zero_iff_eq + theorem smul_inv + theorem smul_inv_smul + theorem smul_inv_smul₀ + theorem smul_left_cancel + theorem smul_left_cancel_iff + theorem smul_ne_zero_iff_ne' + theorem smul_ne_zero_iff_ne + theorem smul_zpow 2022-12-22 13:30:37 0a5db45 feat: port Order.Hom.Order (#1152) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Order/Hom/Order.lean + theorem OrderHom.coe_infᵢ + theorem OrderHom.coe_supᵢ + theorem OrderHom.infᵢ_apply + theorem OrderHom.infₛ_apply + theorem OrderHom.iterate_sup_le_sup_iff + theorem OrderHom.supᵢ_apply + theorem OrderHom.supₛ_apply 2022-12-22 13:30:35 336525b feat: Port `Data.Nat.Sqrt` (#1142) ba2245edf0c8bb155f1569fd9b9492a9b384cde6 ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Data/Nat/ForSqrt.lean + theorem Nat.sqrt.iter_sq_le + theorem Nat.sqrt.lt_iter_succ_sq Added Mathlib/Data/Nat/Sqrt.lean + theorem Nat.eq_sqrt' + theorem Nat.eq_sqrt + theorem Nat.exists_mul_self' + theorem Nat.exists_mul_self + theorem Nat.le_sqrt' + theorem Nat.le_sqrt + theorem Nat.le_three_of_sqrt_eq_one + theorem Nat.lt_succ_sqrt' + theorem Nat.lt_succ_sqrt + theorem Nat.not_exists_sq' + theorem Nat.not_exists_sq + theorem Nat.sqrt_add_eq' + theorem Nat.sqrt_add_eq + theorem Nat.sqrt_eq' + theorem Nat.sqrt_eq + theorem Nat.sqrt_eq_zero + theorem Nat.sqrt_le' + theorem Nat.sqrt_le + theorem Nat.sqrt_le_add + theorem Nat.sqrt_le_self + theorem Nat.sqrt_le_sqrt + theorem Nat.sqrt_lt' + theorem Nat.sqrt_lt + theorem Nat.sqrt_lt_self + theorem Nat.sqrt_mul_sqrt_lt_succ' + theorem Nat.sqrt_mul_sqrt_lt_succ + theorem Nat.sqrt_one + theorem Nat.sqrt_pos + theorem Nat.sqrt_succ_le_succ_sqrt + theorem Nat.sqrt_zero + theorem Nat.succ_le_succ_sqrt' + theorem Nat.succ_le_succ_sqrt 2022-12-22 13:12:10 ab199e6 feat: port GroupTheory.Perm.ViaEmbedding (#1163) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/GroupTheory/Perm/ViaEmbedding.lean + theorem Equiv.Perm.viaEmbeddingHom_apply + theorem Equiv.Perm.viaEmbeddingHom_injective + theorem Equiv.Perm.viaEmbedding_apply + theorem Equiv.Perm.viaEmbedding_apply_of_not_mem 2022-12-22 13:12:09 418c468 feat: port Order.Monotone.Odd (#1162) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Order/Monotone/Odd.lean + theorem antitone_of_odd_of_monotone_on_nonneg + theorem monotone_of_odd_of_monotone_on_nonneg + theorem strictAnti_of_odd_strictAnti_on_nonneg + theorem strictMono_of_odd_strictMono_on_nonneg 2022-12-22 12:46:43 e35fccb feat: port Data.Nat.Cast.Field (#1161) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Data/Nat/Cast/Field.lean + theorem Nat.cast_div + theorem Nat.cast_div_div_div_cancel_right + theorem Nat.cast_div_le + theorem Nat.inv_pos_of_nat + theorem Nat.one_div_le_one_div + theorem Nat.one_div_lt_one_div + theorem Nat.one_div_pos_of_nat 2022-12-22 09:07:42 9bbfc70 feat: port CategoryTheory.Category.KleisliCat (#843) mathlib SHA: 70d50ecfd4900dd6d328da39ab7ebd516abe4025 Porting notes: 1. Unable to locate a lean4 equivalent to unfold_projs 2. Unsure if the `nolint` attribute should be kept or removed. `#lint` still complains about unused arguments in the definition of `KleisliCat` ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Category/KleisliCat.lean + theorem CategoryTheory.KleisliCat.comp_def + theorem CategoryTheory.KleisliCat.id_def + def CategoryTheory.KleisliCat.mk + def CategoryTheory.KleisliCat 2022-12-22 08:50:04 7061338 feat: port `Algebra.Hom.Iterate` (#1133) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Hom/Iterate.lean + theorem AddMonoid.End.coe_pow + theorem AddMonoidHom.iterate_map_smul + theorem AddMonoidHom.iterate_map_zsmul + theorem Commute.function_commute_mul_left + theorem Commute.function_commute_mul_right + theorem Equiv.Perm.coe_pow + theorem Monoid.End.coe_pow + theorem MonoidHom.coe_pow + theorem MonoidHom.iterate_map_div + theorem MonoidHom.iterate_map_inv + theorem MonoidHom.iterate_map_mul + theorem MonoidHom.iterate_map_one + theorem MonoidHom.iterate_map_pow + theorem MonoidHom.iterate_map_zpow + theorem RingHom.coe_pow + theorem RingHom.iterate_map_add + theorem RingHom.iterate_map_mul + theorem RingHom.iterate_map_neg + theorem RingHom.iterate_map_one + theorem RingHom.iterate_map_pow + theorem RingHom.iterate_map_smul + theorem RingHom.iterate_map_sub + theorem RingHom.iterate_map_zero + theorem RingHom.iterate_map_zsmul + theorem SemiconjBy.function_semiconj_mul_left + theorem SemiconjBy.function_semiconj_mul_right_swap + theorem hom_coe_pow + theorem mul_left_iterate + theorem mul_right_iterate + theorem mul_right_iterate_apply_one + theorem pow_iterate + theorem smul_iterate + theorem zpow_iterate 2022-12-22 08:25:43 7374a9a feat: port Data.Setoid.Basic (#1117) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Data/Setoid/Basic.lean + theorem Quot.subsingleton_iff + theorem Quotient.eq_rel + theorem Quotient.subsingleton_iff + def Setoid.Rel + theorem Setoid.bot_def + def Setoid.comap + theorem Setoid.comap_eq + theorem Setoid.comap_rel + theorem Setoid.comm' + def Setoid.correspondence + theorem Setoid.eq_iff_rel_eq + theorem Setoid.eq_top_iff + theorem Setoid.eqvGen_eq + theorem Setoid.eqvGen_idem + theorem Setoid.eqvGen_le + theorem Setoid.eqvGen_mono + theorem Setoid.eqvGen_of_setoid + theorem Setoid.ext' + theorem Setoid.ext_iff + def Setoid.gi + theorem Setoid.inf_def + theorem Setoid.inf_iff_and + theorem Setoid.infₛ_def + theorem Setoid.injective_iff_ker_bot + def Setoid.ker + theorem Setoid.ker_apply_mk_out' + theorem Setoid.ker_apply_mk_out + theorem Setoid.ker_def + theorem Setoid.ker_eq_lift_of_injective + theorem Setoid.ker_iff_mem_preimage + theorem Setoid.ker_lift_injective + theorem Setoid.ker_mk_eq + theorem Setoid.le_def + def Setoid.liftEquiv + theorem Setoid.lift_unique + def Setoid.map + def Setoid.mapOfSurjective + theorem Setoid.mapOfSurjective_eq_map + def Setoid.quotientKerEquivOfRightInverse + def Setoid.quotientQuotientEquivQuotient + theorem Setoid.refl' + theorem Setoid.sup_def + theorem Setoid.sup_eq_eqvGen + theorem Setoid.supₛ_def + theorem Setoid.supₛ_eq_eqvGen + theorem Setoid.symm' + theorem Setoid.top_def + theorem Setoid.trans' 2022-12-22 03:31:28 afe3592 feat: port algebra.group.conj (#1158) Port of algebra.group.conj Based on 0743cc5d9d86bcd1bba10f480e948a257d65056f ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Group/Conj.lean + def ConjClasses.carrier + theorem ConjClasses.carrier_eq_preimage_mk + theorem ConjClasses.exists_rep + theorem ConjClasses.forall_isConj + def ConjClasses.map + theorem ConjClasses.map_surjective + theorem ConjClasses.mem_carrier_iff_mk_eq + theorem ConjClasses.mem_carrier_mk + def ConjClasses.mkEquiv + theorem ConjClasses.mk_bijective + theorem ConjClasses.mk_eq_mk_iff_isConj + theorem ConjClasses.mk_injective + theorem ConjClasses.mk_surjective + theorem ConjClasses.one_eq_mk_one + theorem ConjClasses.quot_mk_eq_mk + theorem ConjClasses.quotient_mk_eq_mk + def ConjClasses + theorem IsConj.conjugatesOf_eq + theorem IsConj.refl + theorem IsConj.symm + theorem IsConj.trans + def IsConj + theorem conj_injective + theorem conj_inv + theorem conj_mul + theorem conj_pow + theorem conj_zpow + def conjugatesOf + theorem isConj_comm + theorem isConj_iff + theorem isConj_iff_conjugatesOf_eq + theorem isConj_iff_eq + theorem isConj_iff₀ + theorem isConj_one_left + theorem isConj_one_right + theorem mem_conjugatesOf_self 2022-12-22 01:22:35 84b6200 Feat: port algebra.regular.smul (#1154) Port of algebra.regular.smul Based on 550b58538991c8977703fdeb7c9d51a5aa27df11 ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Regular/SMul.lean + theorem IsLeftRegular.isSMulRegular + theorem IsRightRegular.isSMulRegular + theorem IsSMulRegular.isLeftRegular + theorem IsSMulRegular.isRightRegular + theorem IsSMulRegular.mul + theorem IsSMulRegular.mul_and_mul_iff + theorem IsSMulRegular.mul_iff + theorem IsSMulRegular.mul_iff_right + theorem IsSMulRegular.not_zero + theorem IsSMulRegular.not_zero_iff + theorem IsSMulRegular.of_mul + theorem IsSMulRegular.of_mul_eq_one + theorem IsSMulRegular.of_smul + theorem IsSMulRegular.of_smul_eq_one + theorem IsSMulRegular.one + theorem IsSMulRegular.pow + theorem IsSMulRegular.pow_iff + theorem IsSMulRegular.smul + theorem IsSMulRegular.smul_iff + theorem IsSMulRegular.zero + theorem IsSMulRegular.zero_iff_subsingleton + def IsSMulRegular + theorem IsUnit.isSMulRegular + theorem Units.isSMulRegular + theorem isLeftRegular_iff + theorem isRightRegular_iff + theorem isSMulRegular_of_group 2022-12-21 16:29:30 3f6e309 feat: port data.nat.choose.bounds (#1139) Port of data.nat.choose.bounds based on 550b58538991c8977703fdeb7c9d51a5aa27df11 ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Data/Nat/Choose/Bounds.lean + theorem Nat.choose_le_pow + theorem Nat.pow_le_choose 2022-12-21 12:42:34 8aa6d64 feat port Data.Int.Gcd (#981) fc2ed6f838ce7c9b7c7171e58d78eaf7b438fb0e - [x] depends on #1040 - [x] depends on #1043 - [x] depends on #1050 - [x] depends on #1055 ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Data/Int/Gcd.lean + theorem Int.dvd_gcd + theorem Int.dvd_lcm_left + theorem Int.dvd_lcm_right + theorem Int.dvd_of_dvd_mul_left_of_gcd_one + theorem Int.dvd_of_dvd_mul_right_of_gcd_one + theorem Int.dvd_of_mul_dvd_mul_left + theorem Int.dvd_of_mul_dvd_mul_right + theorem Int.exists_gcd_one' + theorem Int.exists_gcd_one + def Int.gcdA + def Int.gcdB + theorem Int.gcd_assoc + theorem Int.gcd_comm + theorem Int.gcd_div + theorem Int.gcd_div_gcd_div_gcd + theorem Int.gcd_dvd_gcd_mul_left + theorem Int.gcd_dvd_gcd_mul_left_right + theorem Int.gcd_dvd_gcd_mul_right + theorem Int.gcd_dvd_gcd_mul_right_right + theorem Int.gcd_dvd_gcd_of_dvd_left + theorem Int.gcd_dvd_gcd_of_dvd_right + theorem Int.gcd_dvd_iff + theorem Int.gcd_dvd_left + theorem Int.gcd_dvd_right + theorem Int.gcd_eq_gcd_ab + theorem Int.gcd_eq_left + theorem Int.gcd_eq_right + theorem Int.gcd_eq_zero_iff + theorem Int.gcd_greatest + theorem Int.gcd_least_linear + theorem Int.gcd_mul_lcm + theorem Int.gcd_mul_left + theorem Int.gcd_mul_right + theorem Int.gcd_neg_left + theorem Int.gcd_neg_right + theorem Int.gcd_one_left + theorem Int.gcd_one_right + theorem Int.gcd_pos_iff + theorem Int.gcd_pos_of_non_zero_left + theorem Int.gcd_pos_of_non_zero_right + theorem Int.gcd_self + theorem Int.gcd_zero_left + theorem Int.gcd_zero_right + def Int.lcm + theorem Int.lcm_assoc + theorem Int.lcm_comm + theorem Int.lcm_def + theorem Int.lcm_dvd + theorem Int.lcm_one_left + theorem Int.lcm_one_right + theorem Int.lcm_self + theorem Int.lcm_zero_left + theorem Int.lcm_zero_right + theorem Int.natAbs_ediv + theorem Int.ne_zero_of_gcd + theorem Int.pow_dvd_pow_iff + theorem Nat.exists_mul_emod_eq_gcd + theorem Nat.exists_mul_emod_eq_one_of_coprime + def Nat.gcdA + theorem Nat.gcdA_zero_left + theorem Nat.gcdA_zero_right + def Nat.gcdB + theorem Nat.gcdB_zero_left + theorem Nat.gcdB_zero_right + theorem Nat.gcd_eq_gcd_ab + def Nat.xgcd + def Nat.xgcdAux + theorem Nat.xgcdAux_succ + theorem Nat.xgcdAux_zero + theorem Nat.xgcd_aux_P + theorem Nat.xgcd_aux_fst + theorem Nat.xgcd_aux_rec + theorem Nat.xgcd_aux_val + theorem Nat.xgcd_val + theorem Nat.xgcd_zero_left + theorem gcd_nsmul_eq_zero + theorem pow_gcd_eq_one 2022-12-21 11:37:20 f7e13bf feat: port data.countable.small (#1128) Port of Data.Countable.Small based on bbeb185db4ccee8ed07dc48449414ebfa39cb821 ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Data/Countable/Small.lean 2022-12-21 11:12:28 2a588a7 chore: tidy various files (#1145) ESTIMATED CHANGES Modified Mathlib/Algebra/Associated.lean Modified Mathlib/Algebra/Group/Defs.lean Modified Mathlib/Algebra/GroupPower/Lemmas.lean - theorem Int.abs_le_self_sq + theorem Int.natAbs_le_self_sq + theorem Int.natAbs_pow + theorem Int.natAbs_sq' + theorem Int.natAbs_sq - theorem Int.nat_abs_pow - theorem Int.nat_abs_sq' - theorem Int.nat_abs_sq + theorem Units.pow_ofPowEqOne - theorem Units.pow_of_pow_eq_one + theorem invOf_pow - theorem inv_of_pow + theorem isUnit_ofPowEqOne + theorem isUnit_pow_iff + theorem isUnit_pow_succ_iff - theorem is_unit_of_pow_eq_one - theorem is_unit_pow_iff - theorem is_unit_pow_succ_iff + theorem multiplesAddHom_symm_apply +/- def multiplesHom + theorem multiplesHom_apply + theorem multiplesHom_symm_apply - theorem multiples_add_hom_symm_apply - theorem multiples_hom_apply - theorem multiples_hom_symm_apply +/- def powersHom + theorem powersHom_apply + theorem powersHom_symm_apply + theorem powersMulHom_apply + theorem powersMulHom_symm_apply - theorem powers_hom_apply - theorem powers_hom_symm_apply - theorem powers_mul_hom_apply - theorem powers_mul_hom_symm_apply + theorem strictMono_pow_bit1 - theorem strict_mono_pow_bit1 + theorem zmultiplesAddHom_apply + theorem zmultiplesAddHom_symm_apply + theorem zmultiplesHom_apply + theorem zmultiplesHom_symm_apply - theorem zmultiples_add_hom_apply - theorem zmultiples_add_hom_symm_apply - theorem zmultiples_hom_apply - theorem zmultiples_hom_symm_apply + theorem zpow_strictMono_left + theorem zpow_strictMono_right - theorem zpow_strict_mono_left - theorem zpow_strict_mono_right + theorem zpowersHom_apply + theorem zpowersHom_symm_apply + theorem zpowersMulHom_apply + theorem zpowersMulHom_symm_apply - theorem zpowers_hom_apply - theorem zpowers_hom_symm_apply - theorem zpowers_mul_hom_apply - theorem zpowers_mul_hom_symm_apply Modified Mathlib/Algebra/Parity.lean + theorem Odd.strictMono_pow - theorem Odd.strict_mono_pow Modified Mathlib/CategoryTheory/Functor/FullyFaithful.lean Modified Mathlib/Data/Erased.lean Modified Mathlib/Dynamics/FixedPoints/Basic.lean + theorem Function.Semiconj.mapsTo_fixedPoints - theorem Function.Semiconj.maps_to_fixedPoints + theorem Function.mapsTo_fixedPoints_comp - theorem Function.maps_to_fixedPoints_comp Modified Mathlib/GroupTheory/GroupAction/Opposite.lean Modified Mathlib/GroupTheory/GroupAction/Pi.lean Modified Mathlib/Order/CompleteLattice.lean + theorem ofDual_infᵢ + theorem ofDual_infₛ + theorem ofDual_supᵢ + theorem ofDual_supₛ - theorem of_dual_infᵢ - theorem of_dual_infₛ - theorem of_dual_supᵢ - theorem of_dual_supₛ + theorem toDual_infᵢ + theorem toDual_infₛ + theorem toDual_supᵢ + theorem toDual_supₛ - theorem to_dual_infᵢ - theorem to_dual_infₛ - theorem to_dual_supᵢ - theorem to_dual_supₛ Modified Mathlib/Order/GaloisConnection.lean + theorem GaloisCoinsertion.strictMono_l - theorem GaloisCoinsertion.strict_mono_l + theorem GaloisInsertion.strictMono_u - theorem GaloisInsertion.strict_mono_u + theorem Nat.galoisConnection_mul_div - theorem Nat.galois_connection_mul_div Modified Mathlib/Order/Hom/Set.lean 2022-12-21 08:49:42 f441f7f chore: add source header to Combinatorics.Quiver.Symmetric (#1141) This file was refactored in this simultaneous Mathlib3 PR: https://github.com/leanprover-community/mathlib/commit/706d88f2b8fdfeb0b22796433d7a6c1a010af9f2 so I added the header which matches this PR's SHA. ESTIMATED CHANGES Modified Mathlib/Combinatorics/Quiver/Symmetric.lean 2022-12-21 06:53:52 dddfba9 feat: Port `Data.Nat.Size` (#1140) 550b58538991c8977703fdeb7c9d51a5aa27df11 ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Data/Nat/Order/Basic.lean + theorem Nat.bit0_le_bit1_iff + theorem Nat.bit0_le_bit + theorem Nat.bit0_lt_bit1_iff + theorem Nat.bit1_le_bit0_iff + theorem Nat.bit1_lt_bit0_iff + theorem Nat.bit_le + theorem Nat.bit_le_bit1 + theorem Nat.bit_lt_bit0 + theorem Nat.bit_lt_bit Added Mathlib/Data/Nat/Size.lean + theorem Nat.lt_size + theorem Nat.lt_size_self + theorem Nat.one_shiftl + theorem Nat.shiftl'_ne_zero_left + theorem Nat.shiftl'_tt_eq_mul_pow + theorem Nat.shiftl'_tt_ne_zero + theorem Nat.shiftl_eq_mul_pow + theorem Nat.shiftr_eq_div_pow + theorem Nat.size_bit0 + theorem Nat.size_bit1 + theorem Nat.size_bit + theorem Nat.size_eq_bits_len + theorem Nat.size_eq_zero + theorem Nat.size_le + theorem Nat.size_le_size + theorem Nat.size_one + theorem Nat.size_pos + theorem Nat.size_pow + theorem Nat.size_shiftl' + theorem Nat.size_shiftl + theorem Nat.size_zero + theorem Nat.zero_shiftl + theorem Nat.zero_shiftr 2022-12-21 06:35:58 047ae09 fix: improved transitivity, handles `HEq.trans` (#1125) Transitivity handles heterogeneous cases and premutations of parameters. Fixes #1119 ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Functor/FullyFaithful.lean Modified Mathlib/Tactic/Relation/Trans.lean + def Mathlib.Tactic.getExplicitFuncArg? + def Mathlib.Tactic.getExplicitRelArg? + def Mathlib.Tactic.getExplicitRelArgCore + def Trans.het Modified test/trans.lean 2022-12-21 05:43:56 489f104 feat: port Algebra.SmulWithZero (#1130) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/SmulWithZero.lean + def MulActionWithZero.compHom + def SmulWithZero.compHom + def smulMonoidWithZeroHom + theorem smul_inv₀ + theorem zero_smul 2022-12-21 05:43:55 2a93c2b Feat port algebra.order.positive.field (#1129) Port of Algebra.Order.Positive.Field based on bbeb185db4ccee8ed07dc48449414ebfa39cb821 ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Order/Positive/Field.lean + theorem Positive.coe_inv + theorem Positive.coe_zpow 2022-12-21 05:22:49 e9bd329 feat: port Algebra.Hom.Aut (#1111) d4f69d96f3532729da8ebb763f4bc26fcf640f06 ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Hom/Aut.lean + theorem AddAut.apply_inv_self + theorem AddAut.coe_mul + theorem AddAut.coe_one + def AddAut.conj + theorem AddAut.conj_apply + theorem AddAut.conj_inv_apply + theorem AddAut.conj_symm_apply + theorem AddAut.inv_apply_self + theorem AddAut.inv_def + theorem AddAut.mul_apply + theorem AddAut.mul_def + theorem AddAut.one_apply + theorem AddAut.one_def + def AddAut.toPerm + theorem MulAut.apply_inv_self + theorem MulAut.coe_mul + theorem MulAut.coe_one + def MulAut.conj + theorem MulAut.conj_apply + theorem MulAut.conj_inv_apply + theorem MulAut.conj_symm_apply + theorem MulAut.inv_apply_self + theorem MulAut.inv_def + theorem MulAut.mul_apply + theorem MulAut.mul_def + theorem MulAut.one_apply + theorem MulAut.one_def + def MulAut.toPerm + def MulAut 2022-12-21 04:42:23 0c2d434 feat: port Data.Nat.Bits (#1095) New Pull Request for data.nat.bits Reasons for opening: 1. https://github.com/leanprover-community/mathlib4/pull/1075#issuecomment-1356499087 2. https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/data.2Enat.2Ebits/near/316544221 ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/EuclideanDomain/Defs.lean Added Mathlib/Data/Nat/Bits.lean + def Nat.binaryRec' + def Nat.binaryRecFromOne + theorem Nat.binary_rec_eq' + theorem Nat.bit0_bits + theorem Nat.bit0_eq_bit0 + theorem Nat.bit0_mod_two + theorem Nat.bit1_bits + theorem Nat.bit1_eq_bit1 + theorem Nat.bit1_eq_one + theorem Nat.bit1_mod_two + theorem Nat.bitCasesOn_bit0 + theorem Nat.bitCasesOn_bit1 + theorem Nat.bitCasesOn_bit + theorem Nat.bit_add' + theorem Nat.bit_add + theorem Nat.bit_cases_on_inj + theorem Nat.bit_cases_on_injective + theorem Nat.bit_eq_zero_iff + theorem Nat.bit_ne_zero + theorem Nat.bits_append_bit + theorem Nat.boddDiv2_eq + theorem Nat.bodd_bit0 + theorem Nat.bodd_bit1 + theorem Nat.bodd_eq_bits_head + theorem Nat.div2_bit0 + theorem Nat.div2_bit1 + theorem Nat.div2_bits_eq_tail + theorem Nat.one_bits + theorem Nat.one_eq_bit1 + theorem Nat.pos_of_bit0_pos + theorem Nat.zero_bits Modified Mathlib/Init/Align.lean Modified Mathlib/Init/Data/List/Basic.lean + def List.headI Added Mathlib/Init/Data/Nat/Bitwise.lean + def Nat.binaryRec + theorem Nat.binaryRec_decreasing + theorem Nat.binary_rec_eq + theorem Nat.binary_rec_zero + theorem Nat.bit0_val + theorem Nat.bit1_val + def Nat.bit + def Nat.bitCasesOn + theorem Nat.bit_decomp + theorem Nat.bit_val + theorem Nat.bit_zero + def Nat.bits + def Nat.bitwise' + theorem Nat.bitwise'_bit + theorem Nat.bitwise'_bit_aux + theorem Nat.bitwise'_swap + theorem Nat.bitwise'_zero + theorem Nat.bitwise'_zero_left + theorem Nat.bitwise'_zero_right + def Nat.bodd + def Nat.boddDiv2 + theorem Nat.bodd_add + theorem Nat.bodd_add_div2 + theorem Nat.bodd_bit + theorem Nat.bodd_mul + theorem Nat.bodd_one + theorem Nat.bodd_succ + theorem Nat.bodd_two + theorem Nat.bodd_zero + def Nat.div2 + theorem Nat.div2_bit + theorem Nat.div2_one + theorem Nat.div2_succ + theorem Nat.div2_two + theorem Nat.div2_val + theorem Nat.div2_zero + def Nat.land' + theorem Nat.land'_bit + def Nat.ldiff' + theorem Nat.ldiff'_bit + def Nat.lor' + theorem Nat.lor'_bit + def Nat.lxor' + theorem Nat.lxor'_bit + theorem Nat.mod_two_of_bodd + def Nat.shiftl' + theorem Nat.shiftl'_add + theorem Nat.shiftl'_sub + def Nat.shiftl + theorem Nat.shiftl_add + theorem Nat.shiftl_sub + theorem Nat.shiftl_succ + theorem Nat.shiftl_zero + def Nat.shiftr + theorem Nat.shiftr_add + theorem Nat.shiftr_zero + def Nat.size + def Nat.testBit + theorem Nat.test_bit_bitwise' + theorem Nat.test_bit_land' + theorem Nat.test_bit_ldiff' + theorem Nat.test_bit_lor' + theorem Nat.test_bit_lxor' + theorem Nat.test_bit_succ + theorem Nat.test_bit_zero Modified Mathlib/Init/Data/Nat/Lemmas.lean Modified scripts/nolints.json 2022-12-21 04:17:12 3f9ce17 feat: implement basic version of tauto tactic (#1081) Adds a basic version of the `tauto` tactic, mostly a line-by-line translation of the Lean 3 version. * As per [this zulip discussion](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/Understanding.20tauto.2Elean.20.28mathlib3.29/near/303177080), makes `tauto` always-classical and eliminates `tauto!`. * Does not yet add any symmetry-based logic or the fancy union-find datastructure from https://github.com/leanprover-community/mathlib/pull/180. * Adds a `andThenOnSubgoals` tactic combinator in `Mathlib.Tactic.Basic`. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Group/TypeTags.lean Modified Mathlib/Data/Int/Units.lean Modified Mathlib/Data/Set/Basic.lean +/- theorem Set.forall_in_swap Modified Mathlib/Data/Set/Prod.lean Modified Mathlib/Lean/Meta.lean + def Lean.Elab.Tactic.liftMetaTactic' +/- def Lean.MVarId.replace Modified Mathlib/Mathport/Syntax.lean Modified Mathlib/Tactic/Core.lean + def Lean.Elab.Tactic.andThenOnSubgoals + def Lean.Elab.Tactic.iterateAtMost Modified Mathlib/Tactic/Relation/Symm.lean Modified Mathlib/Tactic/SplitIfs.lean Added Mathlib/Tactic/Tauto.lean + structure Mathlib.Tactic.Tauto.Config + def Mathlib.Tactic.Tauto.casesMatcher + def Mathlib.Tactic.Tauto.coreConstructorMatcher + def Mathlib.Tactic.Tauto.distribNot + def Mathlib.Tactic.Tauto.distribNotAt + def Mathlib.Tactic.Tauto.finishingConstructorMatcher + def Mathlib.Tactic.Tauto.tautoCore + def Mathlib.Tactic.Tauto.tautology Added test/Tauto.lean 2022-12-21 01:11:54 5131af1 fix: wrong location for `Dynamics.FixedPoints.Basic` (#1131) In #1120 I put `Dynamics.FixedPoints.Basic` in `Dynamics.Basic` by mistake. ESTIMATED CHANGES Modified Mathlib.lean Renamed Mathlib/Dynamics/Basic.lean to Mathlib/Dynamics/FixedPoints/Basic.lean 2022-12-20 23:45:00 8fbf796 feat: `polyrith` tactic (#942) The main functionality of `polyrith` is represented here: it contacts Sagemath to get the coefficients required to pass to linear_combination. TODO: * [x] fix docs & lint * [ ] fix tests * There are some auxiliary tactics used to construct test cases for `polyrith` and perform dry-run testing which does not require contacting sage in CI. Since the mock testing setup is not done yet, you can only test it for real right now, but I don't want to run that in CI for the same reason so currently all the tests are commented out. Most of them are still failing though because of things like a missing instance for `CommSemiring Rat` or the existence of the `Real` type entirely. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Order/Heyting/Basic.lean +/- theorem himp_inf_himp_inf_le Modified Mathlib/Tactic/Core.lean + def Mathlib.getMathlibDir + def Mathlib.getPackageDir Modified Mathlib/Tactic/NormNum/Core.lean + def Mathlib.Meta.NormNum.Result.toRat Added Mathlib/Tactic/Polyrith.lean + def Mathlib.Tactic.Polyrith.Poly.add' + def Mathlib.Tactic.Polyrith.Poly.format + def Mathlib.Tactic.Polyrith.Poly.mul' + def Mathlib.Tactic.Polyrith.Poly.pow' + def Mathlib.Tactic.Polyrith.Poly.sumM + def Mathlib.Tactic.Polyrith.Poly.toSyntax + def Mathlib.Tactic.Polyrith.Poly.unDiv? + def Mathlib.Tactic.Polyrith.Poly.unNeg? + inductive Mathlib.Tactic.Polyrith.Poly + structure Mathlib.Tactic.Polyrith.SageError + def Mathlib.Tactic.Polyrith.SageResult + structure Mathlib.Tactic.Polyrith.SageSuccess + inductive Mathlib.Tactic.Polyrith.Source + def Mathlib.Tactic.Polyrith.createSageArgs + def Mathlib.Tactic.Polyrith.parseContext + def Mathlib.Tactic.Polyrith.polyrith + def Mathlib.Tactic.Polyrith.sageOutput Added scripts/polyrith_sage.py Added scripts/polyrith_sage_helper.py Added test/polyrith.lean 2022-12-20 20:06:30 e49a66f feat: port CategoryTheory.Whiskering (#1071) - [x] depends on: #846 ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Whiskering.lean + def CategoryTheory.Functor.associator + def CategoryTheory.Functor.leftUnitor + theorem CategoryTheory.Functor.pentagon + def CategoryTheory.Functor.rightUnitor + theorem CategoryTheory.Functor.triangle + def CategoryTheory.isoWhiskerLeft + theorem CategoryTheory.isoWhiskerLeft_hom + theorem CategoryTheory.isoWhiskerLeft_inv + def CategoryTheory.isoWhiskerRight + theorem CategoryTheory.isoWhiskerRight_hom + theorem CategoryTheory.isoWhiskerRight_inv + def CategoryTheory.whiskerLeft + theorem CategoryTheory.whiskerLeft_comp + theorem CategoryTheory.whiskerLeft_id' + theorem CategoryTheory.whiskerLeft_id + theorem CategoryTheory.whiskerLeft_twice + def CategoryTheory.whiskerRight + theorem CategoryTheory.whiskerRight_comp + theorem CategoryTheory.whiskerRight_id' + theorem CategoryTheory.whiskerRight_id + theorem CategoryTheory.whiskerRight_left + theorem CategoryTheory.whiskerRight_twice + def CategoryTheory.whiskeringLeft + def CategoryTheory.whiskeringRight 2022-12-20 19:46:11 4ca7b4e feat: port Data.Rat.Order (#1116) - [x] depends on: #998 ESTIMATED CHANGES Modified Mathlib/Data/Rat/Order.lean + theorem Rat.abs_def + theorem Rat.divInt_nonneg + theorem Rat.div_lt_div_iff_mul_lt_mul + theorem Rat.lt_one_iff_num_lt_denom + theorem Rat.nonneg_iff_zero_le + def Rat.numDenCasesOn''.{u} + theorem Rat.num_nonneg_iff_zero_le + theorem Rat.num_pos_iff_pos Modified test/linarith.lean 2022-12-20 17:49:10 998f183 chore: fix source header (#1127) ESTIMATED CHANGES Modified Mathlib/GroupTheory/GroupAction/Opposite.lean 2022-12-20 15:25:26 2737973 feat port: Data.Erased (#937) 10b4e499f43088dd3bb7b5796184ad5216648ab1 One instance at the end is a bit longer because we don't have `refine' { .. }`. No other issues ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Data/Erased.lean + def Erased.OutType + def Erased.bind + theorem Erased.bind_def + theorem Erased.bind_eq_out + def Erased.choice + def Erased.join + theorem Erased.join_eq_out + def Erased.map + theorem Erased.map_def + theorem Erased.map_out + def Erased.mk + theorem Erased.mk_out + theorem Erased.nonempty_iff + theorem Erased.out_inj + theorem Erased.out_mk + theorem Erased.out_proof + theorem Erased.pure_def + def Erased 2022-12-20 15:03:47 1946e5d feat: remove some @s and add some #aligns (#1123) This was supposed to be a review of #1001 but I missed the boat. Antoine added in a bunch of @s which were not present in the autoported file but were at that time necessary because MulOpposite was a type synonym. Now that it's a structure they're no longer needed so I removed them. Also a bunch of #aligns were missing related to to_additive. ESTIMATED CHANGES Modified Mathlib/GroupTheory/GroupAction/Opposite.lean 2022-12-20 14:03:25 64406f7 chore: add source header to Data.Rat.Defs (#1122) ESTIMATED CHANGES Modified Mathlib/Data/Rat/Defs.lean 2022-12-20 13:42:54 db9b53a feat: port Data.Pi.Lex (#1104) mathlib3 SHA: d4f69d96f3532729da8ebb763f4bc26fcf640f06 ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Data/Pi/Lex.lean + theorem Pi.Lex.noMaxOrder' + theorem Pi.isTrichotomous_lex + theorem Pi.le_toLex_update_self_iff + theorem Pi.lex_desc + theorem Pi.lex_lt_of_lt + theorem Pi.lex_lt_of_lt_of_preorder + theorem Pi.lt_toLex_update_self_iff + theorem Pi.ofLex_apply + theorem Pi.toLex_apply + theorem Pi.toLex_monotone + theorem Pi.toLex_strictMono + theorem Pi.toLex_update_le_self_iff + theorem Pi.toLex_update_lt_self_iff Modified Mathlib/Order/Max.lean Modified Mathlib/Order/Synonym.lean 2022-12-20 13:42:52 4474192 feat: port GroupTheory.GroupAction.Opposite (#1001) mathlib SHA : fc2ed6f838ce7c9b7c7171e58d78eaf7b438fb0e ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/GroupTheory/GroupAction/Opposite.lean + theorem MulOpposite.op_smul_eq_op_smul_op + theorem MulOpposite.smul_eq_mul_unop + theorem MulOpposite.unop_smul_eq_unop_smul_unop + theorem op_smul_eq_mul 2022-12-20 13:26:27 893f77f feat: port `Dynamics.Basic` (#1120) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Dynamics/Basic.lean + theorem Function.Commute.invOn_fixedPoints_comp + theorem Function.Commute.left_bijOn_fixedPoints_comp + theorem Function.Commute.right_bijOn_fixedPoints_comp + theorem Function.Injective.isFixedPt_apply_iff + theorem Function.IsFixedPt.left_of_comp + theorem Function.IsFixedPt.preimage_iterate + theorem Function.IsFixedPt.to_leftInverse + def Function.IsFixedPt + theorem Function.Semiconj.maps_to_fixedPoints + theorem Function.bijOn_fixedPoints_comp + def Function.fixedPoints + theorem Function.fixedPoints_id + theorem Function.fixedPoints_subset_range + theorem Function.invOn_fixedPoints_comp + theorem Function.isFixedPt_id + theorem Function.maps_to_fixedPoints_comp + theorem Function.mem_fixedPoints + theorem Function.mem_fixedPoints_iff Modified Mathlib/Logic/Equiv/Defs.lean + theorem Equiv.leftInverse_symm - theorem Equiv.left_inverse_symm + theorem Equiv.rightInverse_symm - theorem Equiv.right_inverse_symm Modified Mathlib/Logic/Equiv/Set.lean 2022-12-20 13:09:40 e4f636e feat: port `GroupTheory.GroupAction.Pi` (#1115) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/GroupTheory/GroupAction/Pi.lean + theorem Function.extend_smul + theorem Function.update_smul + theorem Pi.faithfulSMul_at + theorem Pi.single_smul' + theorem Pi.single_smul + theorem Pi.single_smul₀ + theorem Pi.smul_apply' + theorem Set.piecewise_smul 2022-12-20 11:07:51 acffbef chore: port order.basic again (#1112) There seem to have been a number of changes since this was ported, and this takes the opportunity to restore the `#align`s. ESTIMATED CHANGES Modified Mathlib/Order/Basic.lean +/- theorem Function.const_le_const +/- theorem Function.const_lt_const +/- theorem LE.le.ge_iff_eq +/- theorem LE.le.gt_iff_ne +/- theorem LE.le.le_iff_eq +/- theorem LE.le.lt_iff_ne +/- theorem LE.le.not_gt_iff_eq +/- theorem LE.le.not_lt_iff_eq +/- theorem OrderDual.partialOrder.dual_dual +/- theorem PUnit.not_lt + def StrongLT +/- theorem associative_of_commutative_of_le +/- theorem commutative_of_le + theorem denselyOrdered_orderDual +/- theorem le_Prop_eq + theorem le_of_strongLT +/- theorem le_update_iff + theorem le_update_self_iff + theorem lt_of_strongLT + theorem lt_update_self_iff +/- theorem max_def' + theorem max_def_lt +/- theorem min_def' + theorem min_def_lt + theorem strongLT_of_le_of_strongLT + theorem strongLT_of_strongLT_of_le +/- theorem update_le_iff + theorem update_le_self_iff +/- theorem update_le_update_iff + theorem update_lt_self_iff Modified Mathlib/Order/WithBot.lean 2022-12-20 08:57:18 b78b790 feat: port Order.CompleteBooleanAlgebra (#1107) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Order/CompleteBooleanAlgebra.lean + theorem PUnit.infₛ_eq + theorem PUnit.supₛ_eq + theorem binfᵢ_sup_binfᵢ + theorem bsupᵢ_inf_bsupᵢ + theorem compl_infᵢ + theorem compl_infₛ' + theorem compl_infₛ + theorem compl_supᵢ + theorem compl_supₛ' + theorem compl_supₛ + theorem disjoint_supᵢ_iff + theorem disjoint_supᵢ₂_iff + theorem disjoint_supₛ_iff + theorem inf_supᵢ_eq + theorem inf_supᵢ₂_eq + theorem inf_supₛ_eq + theorem infᵢ_sup_eq + theorem infᵢ_sup_infᵢ + theorem infᵢ_sup_of_antitone + theorem infᵢ_sup_of_monotone + theorem infᵢ₂_sup_eq + theorem infₛ_sup_eq + theorem infₛ_sup_infₛ + theorem sup_infᵢ_eq + theorem sup_infᵢ₂_eq + theorem sup_infₛ_eq + theorem supᵢ_disjoint_iff + theorem supᵢ_inf_eq + theorem supᵢ_inf_of_antitone + theorem supᵢ_inf_of_monotone + theorem supᵢ_inf_supᵢ + theorem supᵢ₂_disjoint_iff + theorem supᵢ₂_inf_eq + theorem supₛ_disjoint_iff + theorem supₛ_inf_eq + theorem supₛ_inf_supₛ 2022-12-20 06:34:10 6bc2e2c feat: port Data.Rat.Defs and Data.Rat.Basic (#998) fc2ed6f838ce7c9b7c7171e58d78eaf7b438fb0e - [x] depends on: #996 - [x] depends on: #1096 ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Data/Rat/Basic.lean Modified Mathlib/Data/Rat/Defs.lean + theorem Rat.add_def'' + theorem Rat.coe_int_den + theorem Rat.coe_int_div_eq_divInt + theorem Rat.coe_int_eq_divInt + theorem Rat.coe_int_inj + theorem Rat.coe_int_num + theorem Rat.coe_int_num_of_den_eq_one + theorem Rat.coe_nat_den + theorem Rat.coe_nat_eq_divInt + theorem Rat.coe_nat_num + theorem Rat.den_eq_one_iff + theorem Rat.den_neg_eq_den + theorem Rat.den_one + theorem Rat.den_zero + theorem Rat.divInt_div_divInt_cancel_left + theorem Rat.divInt_div_divInt_cancel_right + theorem Rat.divInt_eq_div + theorem Rat.divInt_eq_zero + theorem Rat.divInt_mul_divInt_cancel + theorem Rat.divInt_ne_zero + theorem Rat.divInt_ne_zero_of_ne_zero + theorem Rat.divInt_neg_den + theorem Rat.divInt_neg_one_one + theorem Rat.divInt_one_one + theorem Rat.divInt_zero_one + theorem Rat.div_num_den + theorem Rat.eq_iff_mul_eq_mul + theorem Rat.inv_def' + theorem Rat.lift_binop_eq + theorem Rat.mkRat_eq + theorem Rat.mk_denom_ne_zero_of_ne_zero + theorem Rat.mk_num_ne_zero_of_ne_zero + theorem Rat.mul_def' + theorem Rat.mul_num_den + theorem Rat.neg_def + theorem Rat.normalize_eq_mk' + def Rat.numDenCasesOn'.{u} + def Rat.numDenCasesOn.{u} + theorem Rat.num_den' + theorem Rat.num_den + theorem Rat.num_div_den + theorem Rat.num_ne_zero_of_ne_zero + theorem Rat.num_neg_eq_neg_num + theorem Rat.num_one + theorem Rat.num_zero + theorem Rat.ofInt_eq_cast + theorem Rat.pos + theorem Rat.sub_def'' + theorem Rat.zero_iff_num_zero + theorem Rat.zero_mk + theorem Rat.zero_of_num_zero 2022-12-20 06:11:28 77f3e39 chore: remove remaining sorries in Abel.lean (#1106) Removes the remaining sorries in Abel.lean. This has been made possible by the landing of https://github.com/leanprover-community/mathlib4/pull/1055. This is a continuation of https://github.com/leanprover-community/mathlib4/pull/915. ESTIMATED CHANGES Modified Mathlib/Tactic/Abel.lean 2022-12-20 05:52:09 b9e1901 fix: Data.List.Defs (#1118) Fixes some problems surrounding `Data.List.Defs` that were affecting the ongoing port of `Data.List.Basic`. * introduces `takeI` as a faithful port of `take'` and fixes the align * `take'` was previously erroneously aligned with `takeD`. `takeD` uses an explicitly-provided argument as a default whereas `takeI` uses`Inhabited`'s `default`. * reverses the dependency `Data.List.Chain` → `Data.List.Defs` to `Data.List.Defs` → `Data.List.Chain` * This was causing a circular dependency for `Data.List.Basic` when it attempted to import `Data.List.Defs`. * We move `chain_cons` from `Data.List.Chain` into `Data.List.Defs`. * All of these changes are in keeping mathlib3's original structure. * We have to supplement `Control.Traversable.Basic`'s imports, since it was previously relying on `Data.Option.Defs` via `Data.List.Defs` ← `Data.List.Chain` ← ... See [this Zulip conversation](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/Data.2EList.2EBasic/near/316851513) for more context. ESTIMATED CHANGES Modified Mathlib/Control/Traversable/Basic.lean Modified Mathlib/Data/List/Chain.lean - theorem List.chain_cons Modified Mathlib/Data/List/Defs.lean + theorem List.chain_cons + def List.takeI 2022-12-20 05:52:06 f6f194d chore: cancel previous runs in CI (#1037) ESTIMATED CHANGES Modified .github/workflows/bors.yml Modified .github/workflows/build.yml Modified .github/workflows/build.yml.in Modified .github/workflows/build_fork.yml 2022-12-20 05:52:05 a2d69bd fix: reintroduce to_fun_as_coe as simp lemma (#931) This is a proposed fix for the broken simp calls in #922. See https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/.60simp.60.20calls.20broken.20in.20mathlib4.23922/near/314783451 for more details. Note that `to_fun_as_coe` was a syntactic tautology when it was ported, but this is no longer the case because we now have `FunLike`. ESTIMATED CHANGES Modified Mathlib/Algebra/Group/WithOne/Basic.lean + theorem AddEquiv.withZeroCongr_apply + theorem MulEquiv.withOneCongr_apply Modified Mathlib/Algebra/Hom/Equiv/Basic.lean + theorem MonoidHom.toMulEquiv_apply + theorem MonoidHom.toMulEquiv_symmApply + theorem MulEquiv.monoidHomCongr_apply + theorem MulEquiv.ofBijective_apply + theorem MulEquiv.piSubsingleton_apply + theorem MulEquiv.piSubsingleton_symmApply + theorem MulHom.toMulEquiv_apply + theorem MulHom.toMulEquiv_symmApply Modified Mathlib/Algebra/Hom/Equiv/Units/Basic.lean + theorem AddEquiv.neg_apply + theorem MulEquiv.inv_apply Modified Mathlib/Logic/Equiv/Defs.lean + theorem Equiv.to_fun_as_coe + theorem Equiv.to_fun_as_coe_apply Modified Mathlib/Order/RelIso/Group.lean + theorem RelIso.coe_mul + theorem RelIso.coe_one - theorem RelIso.toFun_mul - theorem RelIso.toFun_one 2022-12-20 05:52:04 bf9d289 feat: port CategoryTheory.Functor.FullyFaithful (#846) mathlib SHA: 70d50ecfd4900dd6d328da39ab7ebd516abe4025 Porting notes: 1. ~~`aesop_cat` was unable to close goals that `tidy` was able to. I left an example proof of what `tidy` emits (with some cleanup).~~ 2. `unfold_projs` is not ported. Is it an easy tactic to port over or is there a better "lean4" way? (ed: not needed) 3. `trans` doesn't seem to work with `HEq` (see https://github.com/leanprover-community/mathlib4/issues/1119) 4. Some documentation is needed for `Full` and `Faithful`. Please feel free to fill it in if you wish. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/CategoryTheory/Category/Basic.lean Added Mathlib/CategoryTheory/Functor/FullyFaithful.lean + theorem CategoryTheory.Faithful.div_comp + theorem CategoryTheory.Faithful.div_faithful + theorem CategoryTheory.Faithful.of_comp + theorem CategoryTheory.Faithful.of_comp_eq + theorem CategoryTheory.Faithful.of_comp_iso + theorem CategoryTheory.Faithful.of_iso + def CategoryTheory.Full.ofCompFaithful + def CategoryTheory.Full.ofCompFaithfulIso + def CategoryTheory.Full.ofIso + theorem CategoryTheory.Functor.image_preimage + theorem CategoryTheory.Functor.mapIso_injective + theorem CategoryTheory.Functor.map_injective + theorem CategoryTheory.Functor.map_surjective + def CategoryTheory.Functor.preimage + def CategoryTheory.Functor.preimageIso + theorem CategoryTheory.Functor.preimageIso_mapIso + def CategoryTheory.NatIso.equivOfCompFullyFaithful + def CategoryTheory.NatTrans.equivOfCompFullyFaithful + def CategoryTheory.equivOfFullyFaithful + def CategoryTheory.fullyFaithfulCancelRight + theorem CategoryTheory.fullyFaithfulCancelRight_hom_app + theorem CategoryTheory.fullyFaithfulCancelRight_inv_app + theorem CategoryTheory.isIso_of_fully_faithful + def CategoryTheory.isoEquivOfFullyFaithful + def CategoryTheory.natIsoOfCompFullyFaithful + theorem CategoryTheory.natIsoOfCompFullyFaithful_hom + theorem CategoryTheory.natIsoOfCompFullyFaithful_inv + def CategoryTheory.natTransOfCompFullyFaithful + theorem CategoryTheory.preimage_comp + theorem CategoryTheory.preimage_id + theorem CategoryTheory.preimage_map Modified lake-manifest.json 2022-12-20 05:33:55 69dfd0b feat: port Algebra.Associated (#1098) dcf2250875895376a142faeeac5eabff32c48655 * [x] depends on #1055 * [x] depends on #1092 ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Associated.lean + theorem Associated.dvd_iff_dvd_left + theorem Associated.dvd_iff_dvd_right + theorem Associated.eq_zero_iff + theorem Associated.isUnit_iff + theorem Associated.mul_left + theorem Associated.mul_mul + theorem Associated.mul_right + theorem Associated.ne_zero_iff + theorem Associated.of_mul_left + theorem Associated.of_mul_right + theorem Associated.of_pow_associated_of_prime' + theorem Associated.of_pow_associated_of_prime + theorem Associated.pow_pow + theorem Associated.prime_iff + def Associated + theorem Associates.Prime.le_or_le + theorem Associates.associated_map_mk + theorem Associates.bot_eq_one + theorem Associates.coe_unit_eq_one + theorem Associates.dvdNotUnit_iff_lt + theorem Associates.dvdNotUnit_of_lt + theorem Associates.dvd_eq_le + theorem Associates.dvd_of_mk_le_mk + theorem Associates.eq_of_mul_eq_mul_left + theorem Associates.eq_of_mul_eq_mul_right + theorem Associates.exists_non_zero_rep + theorem Associates.exists_rep + theorem Associates.forall_associated + theorem Associates.irreducible_iff_prime_iff + theorem Associates.irreducible_mk + theorem Associates.isUnit_iff_eq_bot + theorem Associates.isUnit_iff_eq_one + theorem Associates.isUnit_mk + theorem Associates.le_mul_left + theorem Associates.le_mul_right + theorem Associates.le_of_mul_le_mul_left + theorem Associates.le_one_iff + theorem Associates.mk_dvdNotUnit_mk_iff + theorem Associates.mk_dvd_mk + theorem Associates.mk_eq_mk_iff_associated + theorem Associates.mk_eq_zero + theorem Associates.mk_injective + theorem Associates.mk_le_mk_iff_dvd_iff + theorem Associates.mk_le_mk_of_dvd + theorem Associates.mk_monoid_hom_apply + theorem Associates.mk_mul_mk + theorem Associates.mk_ne_zero + theorem Associates.mk_one + theorem Associates.mk_pow + theorem Associates.mk_surjective + theorem Associates.mul_eq_one_iff + theorem Associates.mul_mono + theorem Associates.one_eq_mk_one + theorem Associates.one_le + theorem Associates.one_or_eq_of_le_of_prime + theorem Associates.prime_mk + theorem Associates.quot_mk_eq_mk + theorem Associates.quotient_mk_eq_mk + theorem Associates.units_eq_one + theorem DvdNotUnit.isUnit_of_irreducible_right + theorem DvdNotUnit.ne + theorem DvdNotUnit.not_associated + theorem DvdNotUnit.not_unit + theorem Irreducible.associated_of_dvd + theorem Irreducible.dvd_comm + theorem Irreducible.dvd_irreducible_iff_associated + theorem Irreducible.dvd_symm + theorem Irreducible.isUnit_or_isUnit + theorem Irreducible.ne_one + theorem Irreducible.ne_zero + theorem Irreducible.not_dvd_one + theorem Irreducible.not_square + structure Irreducible + theorem IsSquare.not_irreducible + theorem IsSquare.not_prime + theorem MulEquiv.prime_iff + theorem Prime.associated_of_dvd + theorem Prime.dvd_of_dvd_pow + theorem Prime.dvd_of_pow_dvd_pow_mul_pow_of_square_not_dvd + theorem Prime.dvd_or_dvd + theorem Prime.dvd_prime_iff_associated + theorem Prime.left_dvd_or_dvd_right_of_dvd_mul + theorem Prime.ne_one + theorem Prime.ne_zero + theorem Prime.not_dvd_one + theorem Prime.not_square + theorem Prime.not_unit + theorem Prime.pow_dvd_of_dvd_mul_left + theorem Prime.pow_dvd_of_dvd_mul_right + def Prime + theorem associated_eq_eq + theorem associated_iff_eq + theorem associated_isUnit_mul_left_iff + theorem associated_isUnit_mul_right_iff + theorem associated_mul_isUnit_left_iff + theorem associated_mul_isUnit_right_iff + theorem associated_mul_unit_left + theorem associated_mul_unit_left_iff + theorem associated_mul_unit_right + theorem associated_mul_unit_right_iff + theorem associated_of_dvd_dvd + theorem associated_one_iff_isUnit + theorem associated_one_of_associated_mul_one + theorem associated_one_of_mul_eq_one + theorem associated_unit_mul_left + theorem associated_unit_mul_left_iff + theorem associated_unit_mul_right + theorem associated_unit_mul_right_iff + theorem associated_zero_iff_eq_zero + theorem comap_prime + theorem dvdNotUnit_of_dvdNotUnit_associated + theorem dvd_dvd_iff_associated + theorem dvd_prime_pow + theorem eq_of_prime_pow_eq' + theorem eq_of_prime_pow_eq + theorem irreducible_iff + theorem irreducible_isUnit_mul + theorem irreducible_mul_iff + theorem irreducible_mul_isUnit + theorem irreducible_mul_units + theorem irreducible_or_factor + theorem irreducible_units_mul + theorem isUnit_of_associated_mul + theorem not_irreducible_of_not_unit_dvdNotUnit + theorem not_irreducible_one + theorem not_irreducible_zero + theorem not_prime_one + theorem not_prime_zero + theorem of_irreducible_mul + theorem of_irreducible_pow + theorem pow_injective_of_not_unit + theorem pow_not_prime + theorem prime_dvd_prime_iff_eq + theorem prime_pow_succ_dvd_mul + theorem succ_dvd_or_succ_dvd_of_succ_sum_dvd_mul + theorem unit_associated_one + theorem units_eq_one 2022-12-20 05:33:54 70c8a66 feat: make MulOpposite and AddOpposite structures (#1036) This refactor makes `αᵐᵒᵖ` and `αᵃᵒᵖ` into structures with one field, an idea more appropriate in Lean 4 than the Lean 3 approach of type synonyms. ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Opposite.lean Modified Mathlib/Algebra/Opposites.lean +/- theorem AddOpposite.unop_div + structure AddOpposite - def MulOpposite.op +/- theorem MulOpposite.op_inj - def MulOpposite.unop +/- theorem MulOpposite.unop_op + structure MulOpposite - def MulOpposite Modified Mathlib/Algebra/Ring/Opposite.lean Modified Mathlib/GroupTheory/GroupAction/Defs.lean 2022-12-20 05:15:31 e90dd14 feat: port `Data.Set.Intervals.UnorderedInterval` (#1062) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Data/Set/Intervals/UnorderedInterval.lean + theorem Set.Icc_min_max + theorem Set.Icc_subset_interval' + theorem Set.Icc_subset_interval + theorem Set.Ioc_subset_intervalOC' + theorem Set.Ioc_subset_intervalOC + theorem Set.bdd_below_bdd_above_iff_subset_interval + theorem Set.dual_interval + theorem Set.eq_of_mem_intervalOC_of_mem_intervalOC' + theorem Set.eq_of_mem_intervalOC_of_mem_intervalOC + theorem Set.eq_of_mem_interval_of_mem_interval' + theorem Set.eq_of_mem_interval_of_mem_interval + theorem Set.eq_of_not_mem_intervalOC_of_not_mem_intervalOC + theorem Set.forall_intervalOC_iff + def Set.interval + def Set.intervalOC + theorem Set.intervalOC_eq_union + theorem Set.intervalOC_injective_left + theorem Set.intervalOC_injective_right + theorem Set.intervalOC_of_le + theorem Set.intervalOC_of_lt + theorem Set.intervalOC_subset_intervalOC_of_interval_subset_interval + theorem Set.intervalOC_swap + theorem Set.interval_eq_union + theorem Set.interval_injective_left + theorem Set.interval_injective_right + theorem Set.interval_of_ge + theorem Set.interval_of_gt + theorem Set.interval_of_le + theorem Set.interval_of_lt + theorem Set.interval_of_not_ge + theorem Set.interval_of_not_le + theorem Set.interval_self + theorem Set.interval_subset_Icc + theorem Set.interval_subset_interval + theorem Set.interval_subset_interval_iff_le' + theorem Set.interval_subset_interval_iff_le + theorem Set.interval_subset_interval_iff_mem + theorem Set.interval_subset_interval_left + theorem Set.interval_subset_interval_right + theorem Set.interval_subset_interval_union_interval + theorem Set.interval_swap + theorem Set.left_mem_interval + theorem Set.left_mem_intervalOC + theorem Set.mem_interval + theorem Set.mem_intervalOC + theorem Set.mem_interval_of_ge + theorem Set.mem_interval_of_le + theorem Set.monotoneOn_or_antitoneOn_iff_interval + theorem Set.monotone_or_antitone_iff_interval + theorem Set.nonempty_interval + theorem Set.not_mem_intervalOC + theorem Set.not_mem_interval_of_gt + theorem Set.not_mem_interval_of_lt + theorem Set.right_mem_interval + theorem Set.right_mem_intervalOC 2022-12-20 02:08:28 63aa45c feat port: Order.Monotone.Union (#1083) d012cd09a9b256d870751284dd6a29882b0be105 ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Order/Monotone/Union.lean 2022-12-20 01:51:20 53cea70 fix: docstring typo (#1113) Presumably a regex error. ESTIMATED CHANGES Modified Mathlib/Order/CompleteLattice.lean 2022-12-19 23:59:10 c1efed9 feat: port Order.GaloisConnection (#1099) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Order/GaloisConnection.lean + def GaloisCoinsertion.dual + theorem GaloisCoinsertion.isGLB_of_l_image + theorem GaloisCoinsertion.isLUB_of_l_image + theorem GaloisCoinsertion.l_injective + theorem GaloisCoinsertion.l_le_l_iff + def GaloisCoinsertion.liftBoundedOrder + def GaloisCoinsertion.liftCompleteLattice + def GaloisCoinsertion.liftLattice + def GaloisCoinsertion.liftOrderBot + def GaloisCoinsertion.liftSemilatticeInf + def GaloisCoinsertion.liftSemilatticeSup + def GaloisCoinsertion.monotoneIntro + def GaloisCoinsertion.ofDual + theorem GaloisCoinsertion.strict_mono_l + theorem GaloisCoinsertion.u_bsupᵢ_l + theorem GaloisCoinsertion.u_bsupᵢ_of_lu_eq_self + theorem GaloisCoinsertion.u_inf_l + theorem GaloisCoinsertion.u_infᵢ_l + theorem GaloisCoinsertion.u_infₛ_l_image + theorem GaloisCoinsertion.u_l_eq + theorem GaloisCoinsertion.u_l_leftInverse + theorem GaloisCoinsertion.u_sup_l + theorem GaloisCoinsertion.u_supᵢ_l + theorem GaloisCoinsertion.u_supᵢ_of_lu_eq_self + theorem GaloisCoinsertion.u_supₛ_l_image + theorem GaloisCoinsertion.u_surjective + structure GaloisCoinsertion + theorem GaloisConnection.bddAbove_l_image + theorem GaloisConnection.bddBelow_u_image + theorem GaloisConnection.exists_eq_l + theorem GaloisConnection.exists_eq_u + theorem GaloisConnection.isGLB_l + theorem GaloisConnection.isGLB_u_image + theorem GaloisConnection.isGreatest_u + theorem GaloisConnection.isLUB_l_image + theorem GaloisConnection.isLUB_u + theorem GaloisConnection.isLeast_l + theorem GaloisConnection.l_bot + theorem GaloisConnection.l_comm_iff_u_comm + theorem GaloisConnection.l_comm_of_u_comm + theorem GaloisConnection.l_eq + theorem GaloisConnection.l_eq_bot + theorem GaloisConnection.l_le + theorem GaloisConnection.l_sup + theorem GaloisConnection.l_supᵢ + theorem GaloisConnection.l_supᵢ₂ + theorem GaloisConnection.l_supₛ + theorem GaloisConnection.l_u_l_eq_l' + theorem GaloisConnection.l_u_l_eq_l + theorem GaloisConnection.l_u_le + theorem GaloisConnection.l_u_le_trans + theorem GaloisConnection.l_unique + theorem GaloisConnection.le_iff_le + theorem GaloisConnection.le_u + theorem GaloisConnection.le_u_l + theorem GaloisConnection.le_u_l_trans + def GaloisConnection.liftOrderBot + def GaloisConnection.liftOrderTop + theorem GaloisConnection.lowerBounds_u_image + theorem GaloisConnection.lt_iff_lt + theorem GaloisConnection.monotone_intro + theorem GaloisConnection.monotone_l + theorem GaloisConnection.monotone_u + def GaloisConnection.toGaloisCoinsertion + def GaloisConnection.toGaloisInsertion + theorem GaloisConnection.u_comm_of_l_comm + theorem GaloisConnection.u_eq + theorem GaloisConnection.u_eq_top + theorem GaloisConnection.u_inf + theorem GaloisConnection.u_infᵢ + theorem GaloisConnection.u_infᵢ₂ + theorem GaloisConnection.u_infₛ + theorem GaloisConnection.u_l_u_eq_u' + theorem GaloisConnection.u_l_u_eq_u + theorem GaloisConnection.u_top + theorem GaloisConnection.u_unique + theorem GaloisConnection.upperBounds_l_image + def GaloisConnection + def GaloisInsertion.dual + theorem GaloisInsertion.isGLB_of_u_image + theorem GaloisInsertion.isLUB_of_u_image + theorem GaloisInsertion.l_binfᵢ_of_ul_eq_self + theorem GaloisInsertion.l_binfᵢ_u + theorem GaloisInsertion.l_bsupᵢ_u + theorem GaloisInsertion.l_inf_u + theorem GaloisInsertion.l_infᵢ_of_ul_eq_self + theorem GaloisInsertion.l_infᵢ_u + theorem GaloisInsertion.l_infₛ_u_image + theorem GaloisInsertion.l_sup_u + theorem GaloisInsertion.l_supᵢ_u + theorem GaloisInsertion.l_supₛ_u_image + theorem GaloisInsertion.l_surjective + theorem GaloisInsertion.l_u_eq + theorem GaloisInsertion.leftInverse_l_u + def GaloisInsertion.liftBoundedOrder + def GaloisInsertion.liftCompleteLattice + def GaloisInsertion.liftLattice + def GaloisInsertion.liftOrderTop + def GaloisInsertion.liftSemilatticeInf + def GaloisInsertion.liftSemilatticeSup + def GaloisInsertion.monotoneIntro + def GaloisInsertion.ofDual + theorem GaloisInsertion.strict_mono_u + theorem GaloisInsertion.u_injective + theorem GaloisInsertion.u_le_u_iff + structure GaloisInsertion + theorem Nat.galois_connection_mul_div + theorem OrderIso.bddAbove_image + theorem OrderIso.bddAbove_preimage + theorem OrderIso.bddBelow_image + theorem OrderIso.bddBelow_preimage + theorem OrderIso.to_galoisConnection + def WithBot.giUnbot'Bot + theorem infₛ_image2_eq_infₛ_infₛ + theorem infₛ_image2_eq_infₛ_supₛ + theorem infₛ_image2_eq_supₛ_infₛ + theorem infₛ_image2_eq_supₛ_supₛ + theorem supₛ_image2_eq_infₛ_infₛ + theorem supₛ_image2_eq_infₛ_supₛ + theorem supₛ_image2_eq_supₛ_infₛ + theorem supₛ_image2_eq_supₛ_supₛ 2022-12-19 23:36:52 172b850 feat: port Algebra.Order.Field.Basic (#1065) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Order/Field/Basic.lean + theorem IsGLB.mul_left + theorem IsGLB.mul_right + theorem IsLUB.mul_left + theorem IsLUB.mul_right + theorem Monotone.div_const + def OrderIso.mulLeft₀ + def OrderIso.mulRight₀ + theorem StrictMono.div_const + theorem abs_div + theorem abs_inv + theorem abs_one_div + theorem add_div_two_lt_right + theorem add_halves + theorem add_self_div_two + theorem add_sub_div_two_lt + theorem div_le_div + theorem div_le_div_iff + theorem div_le_div_left + theorem div_le_div_of_le + theorem div_le_div_of_le_left + theorem div_le_div_of_le_of_nonneg + theorem div_le_div_of_nonpos_of_le + theorem div_le_div_right + theorem div_le_div_right_of_neg + theorem div_le_iff' + theorem div_le_iff + theorem div_le_iff_of_neg' + theorem div_le_iff_of_neg + theorem div_le_of_nonneg_of_le_mul + theorem div_le_one + theorem div_le_one_iff + theorem div_le_one_of_le + theorem div_le_one_of_neg + theorem div_le_self + theorem div_lt_div' + theorem div_lt_div + theorem div_lt_div_iff + theorem div_lt_div_left + theorem div_lt_div_of_lt + theorem div_lt_div_of_lt_left + theorem div_lt_div_of_neg_of_lt + theorem div_lt_div_right + theorem div_lt_div_right_of_neg + theorem div_lt_iff' + theorem div_lt_iff + theorem div_lt_iff_of_neg' + theorem div_lt_iff_of_neg + theorem div_lt_one + theorem div_lt_one_iff + theorem div_lt_one_of_neg + theorem div_lt_self + theorem div_mul_le_div_mul_of_div_le_div + theorem div_neg_iff + theorem div_neg_of_neg_of_pos + theorem div_neg_of_pos_of_neg + theorem div_nonneg + theorem div_nonneg_iff + theorem div_nonneg_of_nonpos + theorem div_nonpos_iff + theorem div_nonpos_of_nonneg_of_nonpos + theorem div_nonpos_of_nonpos_of_nonneg + theorem div_pos + theorem div_pos_iff + theorem div_pos_of_neg_of_neg + theorem div_self_le_one + theorem div_two_lt_of_pos + theorem div_two_sub_self + theorem exists_add_lt_and_pos_of_lt + theorem exists_pos_mul_lt + theorem half_le_self + theorem half_lt_self + theorem half_pos + theorem inv_le + theorem inv_le_inv + theorem inv_le_inv_of_le + theorem inv_le_inv_of_neg + theorem inv_le_of_inv_le + theorem inv_le_of_neg + theorem inv_le_one + theorem inv_le_one_iff + theorem inv_lt + theorem inv_lt_inv + theorem inv_lt_inv_of_lt + theorem inv_lt_inv_of_neg + theorem inv_lt_of_inv_lt + theorem inv_lt_of_neg + theorem inv_lt_one + theorem inv_lt_one_iff + theorem inv_lt_one_iff_of_pos + theorem inv_lt_zero + theorem inv_mul_le_iff' + theorem inv_mul_le_iff + theorem inv_mul_lt_iff' + theorem inv_mul_lt_iff + theorem inv_nonneg + theorem inv_nonpos + theorem inv_pos + theorem inv_pos_le_iff_one_le_mul' + theorem inv_pos_le_iff_one_le_mul + theorem inv_pos_lt_iff_one_lt_mul' + theorem inv_pos_lt_iff_one_lt_mul + theorem inv_pow_anti + theorem inv_pow_le_inv_pow_of_le + theorem inv_pow_lt_inv_pow_of_lt + theorem inv_pow_strictAnti + theorem inv_strictAntiOn + theorem le_div_iff' + theorem le_div_iff + theorem le_div_iff_of_neg' + theorem le_div_iff_of_neg + theorem le_div_self + theorem le_inv + theorem le_inv_of_neg + theorem le_of_forall_sub_le + theorem le_of_neg_of_one_div_le_one_div + theorem le_of_one_div_le_one_div + theorem le_one_div + theorem le_one_div_of_neg + theorem left_lt_add_div_two + theorem lt_div_iff' + theorem lt_div_iff + theorem lt_div_iff_of_neg' + theorem lt_div_iff_of_neg + theorem lt_inv + theorem lt_inv_of_neg + theorem lt_of_neg_of_one_div_lt_one_div + theorem lt_of_one_div_lt_one_div + theorem lt_one_div + theorem lt_one_div_of_neg + theorem max_div_div_right + theorem max_div_div_right_of_nonpos + theorem min_div_div_right + theorem min_div_div_right_of_nonpos + theorem mul_inv_le_iff' + theorem mul_inv_le_iff + theorem mul_inv_lt_iff' + theorem mul_inv_lt_iff + theorem mul_le_mul_of_mul_div_le + theorem mul_self_inj_of_nonneg + theorem mul_sub_mul_div_mul_neg_iff + theorem mul_sub_mul_div_mul_nonpos_iff + theorem one_div_le + theorem one_div_le_neg_one + theorem one_div_le_of_neg + theorem one_div_le_one_div + theorem one_div_le_one_div_of_le + theorem one_div_le_one_div_of_neg + theorem one_div_le_one_div_of_neg_of_le + theorem one_div_lt + theorem one_div_lt_neg_one + theorem one_div_lt_of_neg + theorem one_div_lt_one_div + theorem one_div_lt_one_div_of_lt + theorem one_div_lt_one_div_of_neg + theorem one_div_lt_one_div_of_neg_of_lt + theorem one_div_neg + theorem one_div_nonneg + theorem one_div_nonpos + theorem one_div_pos + theorem one_div_pow_anti + theorem one_div_pow_le_one_div_pow_of_le + theorem one_div_pow_lt_one_div_pow_of_lt + theorem one_div_pow_strictAnti + theorem one_div_strictAntiOn + theorem one_half_lt_one + theorem one_half_pos + theorem one_le_div + theorem one_le_div_iff + theorem one_le_div_of_neg + theorem one_le_inv + theorem one_le_inv_iff + theorem one_le_one_div + theorem one_lt_div + theorem one_lt_div_iff + theorem one_lt_div_of_neg + theorem one_lt_inv + theorem one_lt_inv_iff + theorem one_lt_one_div + theorem pow_minus_two_nonneg + theorem sub_one_div_inv_le_two + theorem sub_self_div_two + theorem two_inv_lt_one + theorem zpow_nonneg + theorem zpow_pos_of_pos 2022-12-19 15:36:13 395f197 feat: port group_theory.perm.basic (#1105) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/GroupTheory/Perm/Basic.lean + theorem Equiv.Perm.apply_inv_self + theorem Equiv.Perm.coe_mul + theorem Equiv.Perm.coe_one + theorem Equiv.Perm.default_eq + theorem Equiv.Perm.eq_inv_iff_eq + def Equiv.Perm.equivUnitsEnd + def Equiv.Perm.extendDomainHom + theorem Equiv.Perm.extendDomainHom_injective + theorem Equiv.Perm.extendDomain_eq_one_iff + theorem Equiv.Perm.extendDomain_inv + theorem Equiv.Perm.extendDomain_mul + theorem Equiv.Perm.extendDomain_one + theorem Equiv.Perm.inv_apply_self + theorem Equiv.Perm.inv_def + theorem Equiv.Perm.inv_eq_iff_eq + theorem Equiv.Perm.inv_subtypePerm + theorem Equiv.Perm.inv_trans_self + theorem Equiv.Perm.iterate_eq_pow + theorem Equiv.Perm.mem_iff_ofSubtype_apply_mem + theorem Equiv.Perm.mul_apply + theorem Equiv.Perm.mul_def + theorem Equiv.Perm.mul_refl + theorem Equiv.Perm.mul_symm + def Equiv.Perm.ofSubtype + theorem Equiv.Perm.ofSubtype_apply_coe + theorem Equiv.Perm.ofSubtype_apply_of_mem + theorem Equiv.Perm.ofSubtype_apply_of_not_mem + theorem Equiv.Perm.ofSubtype_subtypePerm + theorem Equiv.Perm.one_apply + theorem Equiv.Perm.one_def + theorem Equiv.Perm.one_symm + theorem Equiv.Perm.one_trans + theorem Equiv.Perm.permCongr_eq_mul + theorem Equiv.Perm.refl_inv + theorem Equiv.Perm.refl_mul + theorem Equiv.Perm.self_trans_inv + def Equiv.Perm.sigmaCongrRightHom + theorem Equiv.Perm.sigmaCongrRightHom_injective + theorem Equiv.Perm.sigmaCongrRight_inv + theorem Equiv.Perm.sigmaCongrRight_mul + theorem Equiv.Perm.sigmaCongrRight_one + def Equiv.Perm.subtypeCongrHom + theorem Equiv.Perm.subtypeCongrHom_injective + theorem Equiv.Perm.subtypeEquivSubtypePerm_apply_of_mem + theorem Equiv.Perm.subtypeEquivSubtypePerm_apply_of_not_mem + def Equiv.Perm.subtypePerm + theorem Equiv.Perm.subtypePerm_apply + theorem Equiv.Perm.subtypePerm_inv + theorem Equiv.Perm.subtypePerm_mul + theorem Equiv.Perm.subtypePerm_ofSubtype + theorem Equiv.Perm.subtypePerm_one + theorem Equiv.Perm.subtypePerm_pow + theorem Equiv.Perm.subtypePerm_zpow + def Equiv.Perm.sumCongrHom + theorem Equiv.Perm.sumCongrHom_injective + theorem Equiv.Perm.sumCongr_inv + theorem Equiv.Perm.sumCongr_mul + theorem Equiv.Perm.sumCongr_one + theorem Equiv.Perm.sumCongr_one_swap + theorem Equiv.Perm.sumCongr_swap_one + theorem Equiv.Perm.symm_mul + theorem Equiv.Perm.trans_one + theorem Equiv.Perm.zpow_apply_comm + theorem Equiv.mul_swap_eq_iff + theorem Equiv.mul_swap_eq_swap_mul + theorem Equiv.mul_swap_involutive + theorem Equiv.mul_swap_mul_self + theorem Equiv.swap_apply_apply + theorem Equiv.swap_eq_one_iff + theorem Equiv.swap_inv + theorem Equiv.swap_mul_eq_iff + theorem Equiv.swap_mul_eq_mul_swap + theorem Equiv.swap_mul_involutive + theorem Equiv.swap_mul_self + theorem Equiv.swap_mul_self_mul + theorem Equiv.swap_mul_swap_mul_swap + def MonoidHom.toHomPerm 2022-12-19 15:36:12 80b4179 feat: port Algebra.Parity (#1092) dcf2250875895376a142faeeac5eabff32c48655 - [x] depends on: #1055 ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Parity.lean + theorem Even.add_odd + theorem Even.isSquare_pow + theorem Even.isSquare_zpow + theorem Even.mul_left + theorem Even.mul_right + theorem Even.neg_one_pow + theorem Even.neg_one_zpow + theorem Even.neg_pow + theorem Even.neg_zpow + theorem Even.pow_abs + theorem Even.pow_nonneg + theorem Even.pow_of_ne_zero + theorem Even.pow_pos + theorem Even.pow_pos_iff + theorem Even.sub_odd + theorem Even.tsub + theorem IsSquare.div + theorem IsSquare.map + theorem IsSquare.mul + theorem IsSquare.pow + theorem IsSquare.zpow + def IsSquare + theorem IsSquare_sq + theorem Odd.add_even + theorem Odd.add_odd + theorem Odd.map + theorem Odd.mul + theorem Odd.neg + theorem Odd.neg_one_pow + theorem Odd.neg_pow + theorem Odd.pos + theorem Odd.pow + theorem Odd.pow_neg + theorem Odd.pow_neg_iff + theorem Odd.pow_nonneg_iff + theorem Odd.pow_nonpos + theorem Odd.pow_nonpos_iff + theorem Odd.pow_pos_iff + theorem Odd.strict_mono_pow + theorem Odd.sub_even + theorem Odd.sub_odd + def Odd + theorem even_abs + theorem even_bit0 + theorem even_iff_exists_bit0 + theorem even_iff_exists_two_mul + theorem even_iff_two_dvd + theorem even_neg_two + theorem even_two + theorem even_two_mul + theorem isSquare_iff_exists_sq + theorem isSquare_inv + theorem isSquare_mul_self + theorem isSquare_one + theorem isSquare_op_iff + theorem isSquare_zero + theorem odd_abs + theorem odd_bit1 + theorem odd_iff_exists_bit1 + theorem odd_neg + theorem odd_neg_one + theorem odd_one + theorem odd_two_mul_add_one + theorem pow_bit0_abs + theorem range_two_mul + theorem range_two_mul_add_one 2022-12-19 15:36:10 331a5bb feat: port Data.Nat.Log (#1089) 11bb0c9152e5d14278fb0ac5e0be6d50e2c8fa05 Warning: attributes `mono` and `pp_nodot` are unknown and were commented out (with porting notes). ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Data/Nat/Log.lean + theorem Nat.add_pred_div_lt + def Nat.clog + theorem Nat.clog_anti_left + theorem Nat.clog_antitone_left + theorem Nat.clog_eq_one + theorem Nat.clog_mono_right + theorem Nat.clog_monotone + theorem Nat.clog_of_left_le_one + theorem Nat.clog_of_right_le_one + theorem Nat.clog_of_two_le + theorem Nat.clog_one_left + theorem Nat.clog_one_right + theorem Nat.clog_pos + theorem Nat.clog_pow + theorem Nat.clog_zero_left + theorem Nat.clog_zero_right + theorem Nat.le_log_of_pow_le + theorem Nat.le_pow_clog + theorem Nat.le_pow_iff_clog_le + def Nat.log + theorem Nat.log_anti_left + theorem Nat.log_antitone_left + theorem Nat.log_div_base + theorem Nat.log_div_mul_self + theorem Nat.log_eq_iff + theorem Nat.log_eq_of_pow_le_of_lt_pow + theorem Nat.log_eq_one_iff' + theorem Nat.log_eq_one_iff + theorem Nat.log_eq_zero_iff + theorem Nat.log_le_clog + theorem Nat.log_lt_of_lt_pow + theorem Nat.log_mono_right + theorem Nat.log_monotone + theorem Nat.log_mul_base + theorem Nat.log_of_left_le_one + theorem Nat.log_of_lt + theorem Nat.log_of_one_lt_of_le + theorem Nat.log_one_left + theorem Nat.log_one_right + theorem Nat.log_pos + theorem Nat.log_pos_iff + theorem Nat.log_pow + theorem Nat.log_zero_left + theorem Nat.log_zero_right + theorem Nat.lt_pow_iff_log_lt + theorem Nat.lt_pow_of_log_lt + theorem Nat.lt_pow_succ_log_self + theorem Nat.pow_le_iff_le_log + theorem Nat.pow_le_of_le_log + theorem Nat.pow_log_le_add_one + theorem Nat.pow_log_le_self + theorem Nat.pow_lt_iff_lt_clog + theorem Nat.pow_pred_clog_lt_self 2022-12-19 11:23:10 1bec125 feat port Algebra.GroupPower.Lemmas (#1055) aba57d4d3dae35460225919dcd82fe91355162f9 - [x] depends on #1043 - [x] depends on #1050 ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Basic.lean + theorem bit0_neg Modified Mathlib/Algebra/GroupPower/Lemmas.lean + theorem AddMonoidHom.apply_int + theorem AddMonoidHom.apply_nat + theorem Commute.cast_int_left + theorem Commute.cast_int_mul_cast_int_mul + theorem Commute.cast_int_mul_left + theorem Commute.cast_int_mul_right + theorem Commute.cast_int_mul_self + theorem Commute.cast_int_right + theorem Commute.cast_nat_mul_cast_nat_mul + theorem Commute.cast_nat_mul_left + theorem Commute.cast_nat_mul_right + theorem Commute.cast_nat_mul_self + theorem Commute.self_cast_int_mul + theorem Commute.self_cast_int_mul_cast_int_mul + theorem Commute.self_cast_nat_mul + theorem Commute.self_cast_nat_mul_cast_nat_mul + theorem Commute.units_zpow_left + theorem Commute.units_zpow_right + theorem Int.abs_le_self_sq +/- theorem Int.cast_pow + theorem Int.coe_nat_pow + theorem Int.le_self_sq + theorem Int.nat_abs_pow + theorem Int.nat_abs_sq' + theorem Int.nat_abs_sq + theorem Int.of_add_mul + theorem Int.pow_right_injective + theorem Int.to_add_pow + theorem Int.to_add_zpow + theorem IsUnit.pow + theorem MonoidHom.apply_mint + theorem MonoidHom.apply_mnat + theorem MonoidHom.ext_mnat + theorem MulOpposite.op_pow + theorem MulOpposite.op_zpow + theorem MulOpposite.unop_pow + theorem MulOpposite.unop_zpow +/- theorem Nat.cast_pow + theorem Nat.of_add_mul + theorem Nat.to_add_pow + theorem SemiconjBy.cast_int_mul_cast_int_mul + theorem SemiconjBy.cast_int_mul_left + theorem SemiconjBy.cast_int_mul_right + theorem SemiconjBy.cast_nat_mul_cast_nat_mul + theorem SemiconjBy.cast_nat_mul_left + theorem SemiconjBy.cast_nat_mul_right + theorem SemiconjBy.units_zpow_right + theorem Units.conj_pow' + theorem Units.conj_pow + def Units.ofPow + def Units.ofPowEqOne + theorem Units.pow_of_pow_eq_one + theorem WithBot.coe_nsmul + theorem abs_add_eq_add_abs_iff + theorem abs_add_eq_add_abs_le + theorem abs_nsmul + theorem abs_pow + theorem abs_zsmul + theorem bit0_mul + theorem bit1_mul + theorem inv_of_pow + def invertibleOfPowEqOne + theorem is_unit_of_pow_eq_one + theorem is_unit_pow_iff + theorem is_unit_pow_succ_iff + theorem mul_bit0 + theorem mul_bit1 + theorem mul_self_zpow + theorem mul_zpow_self + def multiplesAddHom + theorem multiplesAddHom_apply + def multiplesHom + theorem multiples_add_hom_symm_apply + theorem multiples_hom_apply + theorem multiples_hom_symm_apply + theorem neg_one_pow_eq_pow_mod_two +/- theorem nsmul_eq_mul' +/- theorem nsmul_eq_mul + theorem nsmul_one + theorem one_add_mul_le_pow' + theorem one_add_mul_le_pow + theorem one_add_mul_sub_le_pow + theorem one_lt_zpow' + theorem pow_bit1_neg_iff + theorem pow_bit1_nonneg_iff + theorem pow_bit1_nonpos_iff + theorem pow_bit1_pos_iff + theorem pow_le_of_le_one + theorem pow_le_pow_of_le_one + theorem pow_le_pow_of_le_one_aux + def powersHom + def powersMulHom + theorem powers_hom_apply + theorem powers_hom_symm_apply + theorem powers_mul_hom_apply + theorem powers_mul_hom_symm_apply + theorem sign_cases_of_C_mul_pow_nonneg + theorem smul_pow' + theorem smul_pow + theorem sq_le + theorem strict_mono_pow_bit1 + def zmultiplesAddHom + def zmultiplesHom + theorem zmultiples_add_hom_apply + theorem zmultiples_add_hom_symm_apply + theorem zmultiples_hom_apply + theorem zmultiples_hom_symm_apply + theorem zpow_add + theorem zpow_add_one + theorem zpow_bit0' + theorem zpow_bit0 + theorem zpow_bit0_neg + theorem zpow_bit1 + theorem zpow_eq_zpow_iff' + theorem zpow_le_zpow' + theorem zpow_le_zpow + theorem zpow_le_zpow_iff' + theorem zpow_le_zpow_iff + theorem zpow_left_inj + theorem zpow_left_injective + theorem zpow_lt_zpow' + theorem zpow_lt_zpow + theorem zpow_lt_zpow_iff' + theorem zpow_lt_zpow_iff + theorem zpow_mono_left + theorem zpow_mono_right + theorem zpow_mul' + theorem zpow_mul + theorem zpow_mul_comm + theorem zpow_one_add + theorem zpow_strict_mono_left + theorem zpow_strict_mono_right + theorem zpow_sub + theorem zpow_sub_one + def zpowersHom + def zpowersMulHom + theorem zpowers_hom_apply + theorem zpowers_hom_symm_apply + theorem zpowers_mul_hom_apply + theorem zpowers_mul_hom_symm_apply + theorem zsmul_eq_mul' + theorem zsmul_eq_mul + theorem zsmul_int_int + theorem zsmul_int_one + theorem zsmul_one Modified Mathlib/Algebra/Invertible.lean Modified Mathlib/Data/Int/Basic.lean 2022-12-18 21:44:05 94dfa4b feat: add to_additive aligns in Algebra.Group.Opposite (#1097) Adding some additive #aligns in a file ported before the autoporter did this automatically. ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Opposite.lean 2022-12-18 21:17:00 a9a1f7d chore: update lean4/std4 (#1096) ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Basic.lean Modified Mathlib/Algebra/Group/Opposite.lean Modified Mathlib/Algebra/GroupPower/Order.lean Modified Mathlib/Algebra/GroupPower/Ring.lean Modified Mathlib/Algebra/GroupWithZero/Units/Basic.lean Modified Mathlib/Algebra/Order/Invertible.lean +/- theorem invOf_lt_zero +/- theorem invOf_nonpos Modified Mathlib/Algebra/Order/Monoid/Canonical/Defs.lean Modified Mathlib/Algebra/Order/Monoid/WithTop.lean Modified Mathlib/Algebra/Order/Sub/Canonical.lean Modified Mathlib/CategoryTheory/Iso.lean Modified Mathlib/Data/List/Basic.lean Modified Mathlib/Data/List/Pairwise.lean Modified Mathlib/Data/List/Range.lean Modified Mathlib/Data/Nat/Basic.lean +/- theorem Nat.lt_one_add_iff +/- theorem Nat.one_add_le_iff Modified Mathlib/Data/Nat/Order/Basic.lean Modified Mathlib/Data/Set/Basic.lean Modified Mathlib/Data/Set/Function.lean Modified Mathlib/Data/Set/Prod.lean Modified Mathlib/Data/Set/Sigma.lean Modified Mathlib/Init/Data/Int/Basic.lean - theorem Int.neg_negSucc Modified Mathlib/Init/Set.lean Modified Mathlib/Logic/Basic.lean +/- theorem xor_iff_iff_not +/- theorem xor_iff_not_iff' Modified Mathlib/Logic/Equiv/Defs.lean Modified Mathlib/Mathport/Notation.lean Modified Mathlib/Order/Bounded.lean Modified Mathlib/Order/BoundedOrder.lean Modified Mathlib/Order/Bounds/Basic.lean Modified Mathlib/Order/CompleteLattice.lean Modified Mathlib/Order/Disjoint.lean Modified Mathlib/Order/Heyting/Basic.lean Modified Mathlib/Order/InitialSeg.lean Modified Mathlib/Order/Iterate.lean Modified Mathlib/Order/MinMax.lean Modified Mathlib/Order/PropInstances.lean Modified Mathlib/Order/SymmDiff.lean Modified Mathlib/Order/WithBot.lean Modified lake-manifest.json Modified lean-toolchain 2022-12-18 21:16:58 f168625 chore: add source headers to ported theory files (#1094) The script used to do this is included. The yaml file was obtained from https://raw.githubusercontent.com/wiki/leanprover-community/mathlib/mathlib4-port-status.md ESTIMATED CHANGES Modified Mathlib/Algebra/Abs.lean Modified Mathlib/Algebra/CharZero/Defs.lean Modified Mathlib/Algebra/CovariantAndContravariant.lean Modified Mathlib/Algebra/Divisibility/Basic.lean Modified Mathlib/Algebra/Divisibility/Units.lean Modified Mathlib/Algebra/EuclideanDomain/Basic.lean Modified Mathlib/Algebra/EuclideanDomain/Defs.lean Modified Mathlib/Algebra/Field/Basic.lean Modified Mathlib/Algebra/Field/Defs.lean Modified Mathlib/Algebra/Group/Basic.lean Modified Mathlib/Algebra/Group/Commutator.lean Modified Mathlib/Algebra/Group/Commute.lean Modified Mathlib/Algebra/Group/Defs.lean Modified Mathlib/Algebra/Group/Ext.lean Modified Mathlib/Algebra/Group/InjSurj.lean Modified Mathlib/Algebra/Group/Opposite.lean Modified Mathlib/Algebra/Group/OrderSynonym.lean Modified Mathlib/Algebra/Group/Prod.lean Modified Mathlib/Algebra/Group/Semiconj.lean Modified Mathlib/Algebra/Group/TypeTags.lean Modified Mathlib/Algebra/Group/ULift.lean Modified Mathlib/Algebra/Group/Units.lean Modified Mathlib/Algebra/Group/WithOne/Basic.lean Modified Mathlib/Algebra/Group/WithOne/Defs.lean Modified Mathlib/Algebra/Group/WithOne/Units.lean Modified Mathlib/Algebra/GroupPower/Basic.lean Modified Mathlib/Algebra/GroupPower/Identities.lean Modified Mathlib/Algebra/GroupPower/Order.lean Modified Mathlib/Algebra/GroupPower/Ring.lean Modified Mathlib/Algebra/GroupWithZero/Basic.lean Modified Mathlib/Algebra/GroupWithZero/Commute.lean Modified Mathlib/Algebra/GroupWithZero/Defs.lean Modified Mathlib/Algebra/GroupWithZero/Divisibility.lean Modified Mathlib/Algebra/GroupWithZero/InjSurj.lean Modified Mathlib/Algebra/GroupWithZero/Semiconj.lean Modified Mathlib/Algebra/GroupWithZero/Units/Basic.lean Modified Mathlib/Algebra/GroupWithZero/Units/Lemmas.lean Modified Mathlib/Algebra/HierarchyDesign.lean Modified Mathlib/Algebra/Hom/Commute.lean Modified Mathlib/Algebra/Hom/Embedding.lean Modified Mathlib/Algebra/Hom/Equiv/Basic.lean Modified Mathlib/Algebra/Hom/Equiv/TypeTags.lean Modified Mathlib/Algebra/Hom/Equiv/Units/Basic.lean Modified Mathlib/Algebra/Hom/Equiv/Units/GroupWithZero.lean Modified Mathlib/Algebra/Hom/Group.lean Modified Mathlib/Algebra/Hom/GroupInstances.lean Modified Mathlib/Algebra/Hom/Ring.lean Modified Mathlib/Algebra/Hom/Units.lean Modified Mathlib/Algebra/Homology/ComplexShape.lean Modified Mathlib/Algebra/Invertible.lean Modified Mathlib/Algebra/NeZero.lean Modified Mathlib/Algebra/Opposites.lean Modified Mathlib/Algebra/Order/AbsoluteValue.lean Modified Mathlib/Algebra/Order/Field/Canonical/Basic.lean Modified Mathlib/Algebra/Order/Field/Canonical/Defs.lean Modified Mathlib/Algebra/Order/Field/Defs.lean Modified Mathlib/Algebra/Order/Field/InjSurj.lean Modified Mathlib/Algebra/Order/Group/Abs.lean Modified Mathlib/Algebra/Order/Group/Defs.lean Modified Mathlib/Algebra/Order/Group/DenselyOrdered.lean Modified Mathlib/Algebra/Order/Group/InjSurj.lean Modified Mathlib/Algebra/Order/Group/Instances.lean Modified Mathlib/Algebra/Order/Group/MinMax.lean Modified Mathlib/Algebra/Order/Group/OrderIso.lean Modified Mathlib/Algebra/Order/Group/Prod.lean Modified Mathlib/Algebra/Order/Group/TypeTags.lean Modified Mathlib/Algebra/Order/Group/Units.lean Modified Mathlib/Algebra/Order/Group/WithTop.lean Modified Mathlib/Algebra/Order/Hom/Basic.lean Modified Mathlib/Algebra/Order/Hom/Monoid.lean Modified Mathlib/Algebra/Order/Invertible.lean Modified Mathlib/Algebra/Order/Monoid/Basic.lean Modified Mathlib/Algebra/Order/Monoid/Cancel/Basic.lean Modified Mathlib/Algebra/Order/Monoid/Cancel/Defs.lean Modified Mathlib/Algebra/Order/Monoid/Canonical/Defs.lean Modified Mathlib/Algebra/Order/Monoid/Defs.lean Modified Mathlib/Algebra/Order/Monoid/Lemmas.lean Modified Mathlib/Algebra/Order/Monoid/MinMax.lean Modified Mathlib/Algebra/Order/Monoid/NatCast.lean Modified Mathlib/Algebra/Order/Monoid/OrderDual.lean Modified Mathlib/Algebra/Order/Monoid/Prod.lean Modified Mathlib/Algebra/Order/Monoid/ToMulBot.lean Modified Mathlib/Algebra/Order/Monoid/TypeTags.lean Modified Mathlib/Algebra/Order/Monoid/Units.lean Modified Mathlib/Algebra/Order/Monoid/WithTop.lean Modified Mathlib/Algebra/Order/Monoid/WithZero/Basic.lean Modified Mathlib/Algebra/Order/Monoid/WithZero/Defs.lean Modified Mathlib/Algebra/Order/Positive/Ring.lean Modified Mathlib/Algebra/Order/Ring/Abs.lean Modified Mathlib/Algebra/Order/Ring/Canonical.lean Modified Mathlib/Algebra/Order/Ring/CharZero.lean Modified Mathlib/Algebra/Order/Ring/Cone.lean Modified Mathlib/Algebra/Order/Ring/Defs.lean Modified Mathlib/Algebra/Order/Ring/InjSurj.lean Modified Mathlib/Algebra/Order/Ring/Lemmas.lean Modified Mathlib/Algebra/Order/Sub/Basic.lean Modified Mathlib/Algebra/Order/Sub/Canonical.lean Modified Mathlib/Algebra/Order/Sub/Defs.lean Modified Mathlib/Algebra/Order/Sub/WithTop.lean Modified Mathlib/Algebra/Order/WithZero.lean Modified Mathlib/Algebra/Order/ZeroLEOne.lean Modified Mathlib/Algebra/PEmptyInstances.lean Modified Mathlib/Algebra/Quotient.lean Modified Mathlib/Algebra/Regular/Basic.lean Modified Mathlib/Algebra/Ring/Basic.lean Modified Mathlib/Algebra/Ring/Commute.lean Modified Mathlib/Algebra/Ring/Defs.lean Modified Mathlib/Algebra/Ring/Divisibility.lean Modified Mathlib/Algebra/Ring/Idempotents.lean Modified Mathlib/Algebra/Ring/InjSurj.lean Modified Mathlib/Algebra/Ring/Opposite.lean Modified Mathlib/Algebra/Ring/OrderSynonym.lean Modified Mathlib/Algebra/Ring/Regular.lean Modified Mathlib/Algebra/Ring/Semiconj.lean Modified Mathlib/Algebra/Ring/Units.lean Modified Mathlib/CategoryTheory/Category/Basic.lean Modified Mathlib/CategoryTheory/Category/RelCat.lean Modified Mathlib/CategoryTheory/ConcreteCategory/Bundled.lean Modified Mathlib/CategoryTheory/Functor/Basic.lean Modified Mathlib/CategoryTheory/Functor/Category.lean Modified Mathlib/CategoryTheory/Functor/Default.lean Modified Mathlib/CategoryTheory/Functor/Functorial.lean Modified Mathlib/CategoryTheory/Iso.lean Modified Mathlib/CategoryTheory/NatIso.lean Modified Mathlib/CategoryTheory/NatTrans.lean Modified Mathlib/CategoryTheory/Thin.lean Modified Mathlib/Combinatorics/Quiver/Arborescence.lean Modified Mathlib/Combinatorics/Quiver/Basic.lean Modified Mathlib/Combinatorics/Quiver/Cast.lean Modified Mathlib/Combinatorics/Quiver/ConnectedComponent.lean Modified Mathlib/Combinatorics/Quiver/Path.lean Modified Mathlib/Combinatorics/Quiver/Push.lean Modified Mathlib/Combinatorics/Quiver/Subquiver.lean Modified Mathlib/Control/Applicative.lean Modified Mathlib/Control/Basic.lean Modified Mathlib/Control/EquivFunctor.lean Modified Mathlib/Control/Functor.lean Modified Mathlib/Control/Monad/Basic.lean Modified Mathlib/Control/Traversable/Basic.lean Modified Mathlib/Control/Traversable/Lemmas.lean Modified Mathlib/Control/ULift.lean Modified Mathlib/Data/Bool/Basic.lean Modified Mathlib/Data/Bool/Set.lean Modified Mathlib/Data/Bracket.lean Modified Mathlib/Data/Char.lean Modified Mathlib/Data/Countable/Defs.lean Modified Mathlib/Data/DList/Basic.lean Modified Mathlib/Data/Fin/Fin2.lean Modified Mathlib/Data/Finite/Defs.lean Modified Mathlib/Data/FunLike/Basic.lean Modified Mathlib/Data/FunLike/Embedding.lean Modified Mathlib/Data/FunLike/Equiv.lean Modified Mathlib/Data/Int/Basic.lean Modified Mathlib/Data/Int/Cast/Basic.lean Modified Mathlib/Data/Int/Cast/Defs.lean Modified Mathlib/Data/Int/Cast/Field.lean Modified Mathlib/Data/Int/Cast/Lemmas.lean Modified Mathlib/Data/Int/Cast/Prod.lean Modified Mathlib/Data/Int/CharZero.lean Modified Mathlib/Data/Int/Div.lean Modified Mathlib/Data/Int/Dvd/Basic.lean Modified Mathlib/Data/Int/LeastGreatest.lean Modified Mathlib/Data/Int/Order/Basic.lean Modified Mathlib/Data/Int/Order/Lemmas.lean Modified Mathlib/Data/Int/Units.lean Modified Mathlib/Data/LazyList.lean Modified Mathlib/Data/List/Defs.lean Modified Mathlib/Data/List/Lex.lean Modified Mathlib/Data/Nat/Basic.lean Modified Mathlib/Data/Nat/Cast/Basic.lean Modified Mathlib/Data/Nat/Cast/Defs.lean Modified Mathlib/Data/Nat/Cast/Prod.lean Modified Mathlib/Data/Nat/Cast/WithTop.lean Modified Mathlib/Data/Nat/Dist.lean Modified Mathlib/Data/Nat/Gcd/Basic.lean Modified Mathlib/Data/Nat/Order/Basic.lean Modified Mathlib/Data/Nat/Order/Lemmas.lean Modified Mathlib/Data/Nat/PSub.lean Modified Mathlib/Data/Nat/Set.lean Modified Mathlib/Data/Nat/Units.lean Modified Mathlib/Data/Nat/Upto.lean Modified Mathlib/Data/Num/Basic.lean Modified Mathlib/Data/Opposite.lean Modified Mathlib/Data/Option/Basic.lean Modified Mathlib/Data/Option/Defs.lean Modified Mathlib/Data/Option/NAry.lean Modified Mathlib/Data/PEquiv.lean Modified Mathlib/Data/PNat/Defs.lean Modified Mathlib/Data/PSigma/Order.lean Modified Mathlib/Data/Part.lean Modified Mathlib/Data/Pi/Algebra.lean Modified Mathlib/Data/Prod/Basic.lean Modified Mathlib/Data/Prod/Lex.lean Modified Mathlib/Data/Prod/PProd.lean Modified Mathlib/Data/Quot.lean Modified Mathlib/Data/Rat/Init.lean Modified Mathlib/Data/Set/Basic.lean Modified Mathlib/Data/Set/BoolIndicator.lean Modified Mathlib/Data/Set/Enumerate.lean Modified Mathlib/Data/Set/Image.lean Modified Mathlib/Data/Set/NAry.lean Modified Mathlib/Data/Set/Opposite.lean Modified Mathlib/Data/Set/Prod.lean Modified Mathlib/Data/Set/Sigma.lean Modified Mathlib/Data/SetLike/Basic.lean Modified Mathlib/Data/Sigma/Basic.lean Modified Mathlib/Data/Sigma/Lex.lean Modified Mathlib/Data/Sigma/Order.lean Modified Mathlib/Data/Stream/Defs.lean Modified Mathlib/Data/Subtype.lean Modified Mathlib/Data/Sum/Basic.lean Modified Mathlib/Data/Sum/Order.lean Modified Mathlib/Data/TwoPointing.lean Modified Mathlib/Data/ULift.lean Modified Mathlib/Data/Vector.lean Modified Mathlib/GroupTheory/EckmannHilton.lean Modified Mathlib/GroupTheory/GroupAction/Defs.lean Modified Mathlib/GroupTheory/GroupAction/Option.lean Modified Mathlib/GroupTheory/GroupAction/Sigma.lean Modified Mathlib/GroupTheory/GroupAction/Sum.lean Modified Mathlib/GroupTheory/GroupAction/Units.lean Modified Mathlib/Logic/Basic.lean Modified Mathlib/Logic/Embedding/Basic.lean Modified Mathlib/Logic/Embedding/Set.lean Modified Mathlib/Logic/Equiv/Basic.lean Modified Mathlib/Logic/Equiv/Defs.lean Modified Mathlib/Logic/Equiv/Embedding.lean Modified Mathlib/Logic/Equiv/Option.lean Modified Mathlib/Logic/Function/Basic.lean Modified Mathlib/Logic/Function/Conjugate.lean Modified Mathlib/Logic/Function/Iterate.lean Modified Mathlib/Logic/IsEmpty.lean Modified Mathlib/Logic/Lemmas.lean Modified Mathlib/Logic/Nonempty.lean Modified Mathlib/Logic/Nontrivial.lean Modified Mathlib/Logic/Pairwise.lean Modified Mathlib/Logic/Relation.lean Modified Mathlib/Logic/Relator.lean Modified Mathlib/Logic/Unique.lean Modified Mathlib/Order/Antisymmetrization.lean Modified Mathlib/Order/Basic.lean Modified Mathlib/Order/BooleanAlgebra.lean Modified Mathlib/Order/BoundedOrder.lean Modified Mathlib/Order/Compare.lean Modified Mathlib/Order/Directed.lean Modified Mathlib/Order/Disjoint.lean Modified Mathlib/Order/GameAdd.lean Modified Mathlib/Order/Heyting/Basic.lean Modified Mathlib/Order/Heyting/Boundary.lean Modified Mathlib/Order/Hom/Basic.lean Modified Mathlib/Order/InitialSeg.lean Modified Mathlib/Order/Iterate.lean Modified Mathlib/Order/Lattice.lean Modified Mathlib/Order/Max.lean Modified Mathlib/Order/MinMax.lean Modified Mathlib/Order/Monotone/Basic.lean Modified Mathlib/Order/Monotone/Monovary.lean Modified Mathlib/Order/PropInstances.lean Modified Mathlib/Order/RelClasses.lean Modified Mathlib/Order/RelIso/Basic.lean Modified Mathlib/Order/RelIso/Group.lean Modified Mathlib/Order/RelIso/Set.lean Modified Mathlib/Order/SymmDiff.lean Modified Mathlib/Order/Synonym.lean Modified Mathlib/Order/WellFounded.lean Modified Mathlib/Order/WithBot.lean Modified Mathlib/RingTheory/Coprime/Basic.lean Added scripts/align.py 2022-12-18 21:16:56 f0939b2 feat: port algebra.group.pi (#1088) mathlib3port tracking sha: `b3f25363ae62cb169e72cd6b8b1ac97bacf21ca7` ### Porting notes * Moved `AddMonoidWithOne` and `AddGroupWithOne` here from their original files. * Corrected the name of `Pi.Single` to `Pi.single` in `Data.Pi.Algebra`, on which this depends. (Note: this change was only done in the final two commits, which can be split off into a subsequent PR for a good history if need be.) * Replaced explicit data fields by sourcing previously-defined instances where possible, as per [this zulip discussion](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/not.20porting.20pi_instance) * Changed a name: `update_eq_div_mulSingle` => `update_eq_div_mul_mulSingle`, as it involves a multiplication of two `mulSingle`s. (Note: the additive version in mathlib is `update_eq_sub_add_single`, and `to_additive` "agrees" that `update_eq_div_mul_mulSingle` is the right name in mathlib4.) ### Review questions * Are we sure about using instances as sources where possible? Just want to double-check that it won't cause any problems. * If so, should the "highest-up" or "lowest-down" instances be used for sourcing when diamonds occur? E.g. `Foo` extends `Bar0`, `Bar1`, and both have relevant instances `bar0`, `bar1`. However, `Bar1` extends `Baz`, and we also have a relevant instance `baz` which suffices for everything not in `Bar0`. Should the instance for `Foo` start `{ bar0, bar1 with ... }` or `{ bar0, baz with ... }`? Does it matter? * Should the data `mul := (· * ·)`, `zero := (0 : ∀ i, f i)` remain explicit or be obtained by sourcing `Pi.instMul`, `Pi.instZero` respectively? ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Group/Pi.lean + theorem Function.const_eq_one + theorem Function.const_ne_one + theorem Function.update_div + theorem Function.update_inv + theorem Function.update_mul + theorem Function.update_one + def MonoidHom.coeFn + def MonoidHom.single + theorem MonoidHom.single_apply + def MulHom.coeFn + theorem MulHom.coe_mul + def MulHom.single + def OneHom.single + theorem OneHom.single_apply + def Pi.constMonoidHom + def Pi.constMulHom + def Pi.evalMonoidHom + def Pi.evalMulHom + def Pi.monoidHom + theorem Pi.monoidHom_injective + def Pi.mulHom + theorem Pi.mulHom_injective + theorem Pi.mulSingle_apply_commute + theorem Pi.mulSingle_commute + theorem Pi.mulSingle_inv + theorem Pi.mulSingle_mul + theorem Pi.mulSingle_mul_mulSingle_eq_mulSingle_mul_mulSingle + theorem Pi.single_div + theorem Pi.single_mul + theorem Pi.update_eq_div_mul_mulSingle + theorem Set.piecewise_div + theorem Set.piecewise_inv + theorem Set.piecewise_mul + theorem Set.preimage_one Modified Mathlib/Data/Int/Cast/Lemmas.lean Modified Mathlib/Data/Nat/Cast/Basic.lean Modified Mathlib/Data/Pi/Algebra.lean 2022-12-18 10:04:09 4850534 feat port: order.complete_lattice (#1053) aba57d4d3dae35460225919dcd82fe91355162f9 ~~Depends on #1040~~ ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Order/Group/Instances.lean Modified Mathlib/Algebra/Order/Monoid/OrderDual.lean Modified Mathlib/Order/Basic.lean +/- theorem OrderDual.Preorder.dual_dual +/- theorem OrderDual.linearOrder.dual_dual Added Mathlib/Order/CompleteLattice.lean + theorem Antitone.infᵢ_nat_add + theorem Antitone.le_map_infᵢ + theorem Antitone.le_map_infᵢ₂ + theorem Antitone.le_map_infₛ + theorem Antitone.map_supᵢ_le + theorem Antitone.map_supᵢ₂_le + theorem Antitone.map_supₛ_le + theorem Equiv.infᵢ_comp + theorem Equiv.supᵢ_comp + theorem Function.Surjective.infᵢ_comp + theorem Function.Surjective.supᵢ_comp + theorem IsGLB.infᵢ_eq + theorem IsGLB.infₛ_eq + theorem IsLUB.supᵢ_eq + theorem IsLUB.supₛ_eq + theorem Monotone.infᵢ_comp_eq + theorem Monotone.le_map_supᵢ + theorem Monotone.le_map_supᵢ₂ + theorem Monotone.le_map_supₛ + theorem Monotone.map_infᵢ_le + theorem Monotone.map_infᵢ₂_le + theorem Monotone.map_infₛ_le + theorem Monotone.supᵢ_comp_eq + theorem Monotone.supᵢ_nat_add + theorem OrderIso.map_infᵢ + theorem OrderIso.map_infₛ + theorem OrderIso.map_supᵢ + theorem OrderIso.map_supₛ + theorem binary_relation_infₛ_iff + theorem binary_relation_supₛ_iff + theorem binfᵢ_const + theorem binfᵢ_inf + theorem binfᵢ_mono + theorem binfᵢ_prod + theorem bsupᵢ_const + theorem bsupᵢ_mono + theorem bsupᵢ_prod + theorem bsupᵢ_sup + def completeLatticeOfCompleteSemilatticeInf + def completeLatticeOfCompleteSemilatticeSup + def completeLatticeOfInf + def completeLatticeOfSup + theorem disjoint_supₛ_left + theorem disjoint_supₛ_right + theorem eq_singleton_bot_of_supₛ_eq_bot_of_nonempty + theorem eq_singleton_top_of_infₛ_eq_top_of_nonempty + theorem inf_binfᵢ + theorem inf_eq_infᵢ + theorem inf_infᵢ + theorem inf_infᵢ_nat_succ + def infᵢ.unexpander + def infᵢ + theorem infᵢ_Prop_eq + theorem infᵢ_and' + theorem infᵢ_and + theorem infᵢ_apply + theorem infᵢ_bool_eq + theorem infᵢ_comm + theorem infᵢ_congr + theorem infᵢ_congr_Prop + theorem infᵢ_const + theorem infᵢ_const_mono + theorem infᵢ_dite + theorem infᵢ_emptyset + theorem infᵢ_eq_bot + theorem infᵢ_eq_dif + theorem infᵢ_eq_if + theorem infᵢ_eq_of_forall_ge_of_forall_gt_exists_lt + theorem infᵢ_eq_top + theorem infᵢ_exists + theorem infᵢ_extend_top + theorem infᵢ_false + theorem infᵢ_ge_eq_infᵢ_nat_add + theorem infᵢ_image + theorem infᵢ_inf + theorem infᵢ_inf_eq + theorem infᵢ_infᵢ_eq_left + theorem infᵢ_infᵢ_eq_right + theorem infᵢ_insert + theorem infᵢ_ite + theorem infᵢ_le' + theorem infᵢ_le + theorem infᵢ_le_iff + theorem infᵢ_le_infᵢ_of_subset + theorem infᵢ_le_infᵢ₂ + theorem infᵢ_le_of_le + theorem infᵢ_lt_iff + theorem infᵢ_mono' + theorem infᵢ_mono + theorem infᵢ_nat_gt_zero_eq + theorem infᵢ_ne_top_subtype + theorem infᵢ_neg + theorem infᵢ_of_empty' + theorem infᵢ_of_empty + theorem infᵢ_option + theorem infᵢ_option_elim + theorem infᵢ_or + theorem infᵢ_pair + theorem infᵢ_plift_down + theorem infᵢ_plift_up + theorem infᵢ_pos + theorem infᵢ_prod + theorem infᵢ_range' + theorem infᵢ_range + theorem infᵢ_sigma + theorem infᵢ_singleton + theorem infᵢ_split + theorem infᵢ_split_single + theorem infᵢ_subtype'' + theorem infᵢ_subtype' + theorem infᵢ_subtype + theorem infᵢ_sum + theorem infᵢ_sup_infᵢ_le + theorem infᵢ_supᵢ_ge_nat_add + theorem infᵢ_top + theorem infᵢ_true + theorem infᵢ_union + theorem infᵢ_univ + theorem infᵢ₂_comm + theorem infᵢ₂_eq_top + theorem infᵢ₂_le + theorem infᵢ₂_le_of_le + theorem infᵢ₂_mono' + theorem infᵢ₂_mono + theorem infₛ_Prop_eq + theorem infₛ_apply + theorem infₛ_diff_singleton_top + theorem infₛ_empty + theorem infₛ_eq_bot + theorem infₛ_eq_infᵢ' + theorem infₛ_eq_infᵢ + theorem infₛ_eq_of_forall_ge_of_forall_gt_exists_lt + theorem infₛ_eq_top + theorem infₛ_image' + theorem infₛ_image2 + theorem infₛ_image + theorem infₛ_insert + theorem infₛ_le + theorem infₛ_le_iff + theorem infₛ_le_infₛ + theorem infₛ_le_infₛ_of_forall_exists_le + theorem infₛ_le_infₛ_of_subset_insert_top + theorem infₛ_le_of_le + theorem infₛ_le_supₛ + theorem infₛ_lt_iff + theorem infₛ_pair + theorem infₛ_range + theorem infₛ_singleton + theorem infₛ_sup_le_infᵢ_sup + theorem infₛ_union + theorem infₛ_univ + theorem isGLB_binfᵢ + theorem isGLB_infᵢ + theorem isGLB_infₛ + theorem isLUB_bsupᵢ + theorem isLUB_supᵢ + theorem isLUB_supₛ + theorem le_infᵢ + theorem le_infᵢ_comp + theorem le_infᵢ_const + theorem le_infᵢ_iff + theorem le_infᵢ₂ + theorem le_infᵢ₂_iff + theorem le_infₛ + theorem le_infₛ_iff + theorem le_infₛ_inter + theorem le_supᵢ' + theorem le_supᵢ + theorem le_supᵢ_iff + theorem le_supᵢ_inf_supᵢ + theorem le_supᵢ_of_le + theorem le_supᵢ₂ + theorem le_supᵢ₂_of_le + theorem le_supₛ + theorem le_supₛ_iff + theorem le_supₛ_of_le + theorem lt_infᵢ_iff + theorem lt_supᵢ_iff + theorem lt_supₛ_iff + theorem monotone_infₛ_of_monotone + theorem monotone_supₛ_of_monotone + theorem of_dual_infᵢ + theorem of_dual_infₛ + theorem of_dual_supᵢ + theorem of_dual_supₛ + theorem sup_bsupᵢ + theorem sup_eq_supᵢ + theorem sup_infₛ_le_infᵢ_sup + theorem sup_supᵢ + theorem sup_supᵢ_nat_succ + def supᵢ.unexpander + def supᵢ + theorem supᵢ_Prop_eq + theorem supᵢ_and' + theorem supᵢ_and + theorem supᵢ_apply + theorem supᵢ_bool_eq + theorem supᵢ_bot + theorem supᵢ_comm + theorem supᵢ_comp_le + theorem supᵢ_congr + theorem supᵢ_congr_Prop + theorem supᵢ_const + theorem supᵢ_const_le + theorem supᵢ_const_mono + theorem supᵢ_dite + theorem supᵢ_emptyset + theorem supᵢ_eq_bot + theorem supᵢ_eq_dif + theorem supᵢ_eq_if + theorem supᵢ_eq_of_forall_le_of_forall_lt_exists_gt + theorem supᵢ_eq_top + theorem supᵢ_exists + theorem supᵢ_extend_bot + theorem supᵢ_false + theorem supᵢ_ge_eq_supᵢ_nat_add + theorem supᵢ_image + theorem supᵢ_inf_le_inf_supₛ + theorem supᵢ_inf_le_supₛ_inf + theorem supᵢ_infᵢ_ge_nat_add + theorem supᵢ_infᵢ_le_infᵢ_supᵢ + theorem supᵢ_insert + theorem supᵢ_ite + theorem supᵢ_le + theorem supᵢ_le_iff + theorem supᵢ_le_supᵢ_of_subset + theorem supᵢ_lt_iff + theorem supᵢ_mono' + theorem supᵢ_mono + theorem supᵢ_nat_gt_zero_eq + theorem supᵢ_ne_bot_subtype + theorem supᵢ_neg + theorem supᵢ_of_empty' + theorem supᵢ_of_empty + theorem supᵢ_option + theorem supᵢ_option_elim + theorem supᵢ_or + theorem supᵢ_pair + theorem supᵢ_plift_down + theorem supᵢ_plift_up + theorem supᵢ_pos + theorem supᵢ_prod + theorem supᵢ_range' + theorem supᵢ_range + theorem supᵢ_sigma + theorem supᵢ_singleton + theorem supᵢ_split + theorem supᵢ_split_single + theorem supᵢ_subtype'' + theorem supᵢ_subtype' + theorem supᵢ_subtype + theorem supᵢ_sum + theorem supᵢ_sup + theorem supᵢ_sup_eq + theorem supᵢ_supᵢ_eq_left + theorem supᵢ_supᵢ_eq_right + theorem supᵢ_true + theorem supᵢ_union + theorem supᵢ_univ + theorem supᵢ₂_comm + theorem supᵢ₂_eq_bot + theorem supᵢ₂_le + theorem supᵢ₂_le_iff + theorem supᵢ₂_le_supᵢ + theorem supᵢ₂_mono' + theorem supᵢ₂_mono + theorem supₛ_Prop_eq + theorem supₛ_apply + theorem supₛ_diff_singleton_bot + theorem supₛ_empty + theorem supₛ_eq_bot + theorem supₛ_eq_of_forall_le_of_forall_lt_exists_gt + theorem supₛ_eq_supᵢ' + theorem supₛ_eq_supᵢ + theorem supₛ_eq_top + theorem supₛ_image' + theorem supₛ_image2 + theorem supₛ_image + theorem supₛ_insert + theorem supₛ_inter_le + theorem supₛ_le + theorem supₛ_le_iff + theorem supₛ_le_supₛ + theorem supₛ_le_supₛ_of_forall_exists_le + theorem supₛ_le_supₛ_of_subset_insert_bot + theorem supₛ_pair + theorem supₛ_range + theorem supₛ_singleton + theorem supₛ_union + theorem supₛ_univ + theorem to_dual_infᵢ + theorem to_dual_infₛ + theorem to_dual_supᵢ + theorem to_dual_supₛ + theorem unary_relation_infₛ_iff + theorem unary_relation_supₛ_iff 2022-12-17 23:54:37 da4d01d feat: port Data.Int.Dvd.Pow (#1087) mathlib SHA : b3f25363ae62cb169e72cd6b8b1ac97bacf21ca7 I don't know what to do with `sign_pow_bit1`. I get a warning that `bit1` is deprecated, does that mean I should just delete the lemma? ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Data/Int/Dvd/Pow.lean + theorem Int.dvd_of_pow_dvd + theorem Int.pow_dvd_of_le_of_pow_dvd + theorem Int.sign_pow_bit1 2022-12-17 23:54:36 4e2a723 chore: tidy various files (#1086) ESTIMATED CHANGES Modified Mathlib/Algebra/EuclideanDomain/Basic.lean Modified Mathlib/Algebra/Field/Basic.lean + theorem ofDual_rat_cast + theorem ofLex_rat_cast - theorem of_dual_rat_cast - theorem of_lex_rat_cast + theorem toDual_rat_cast + theorem toLex_rat_cast - theorem to_dual_rat_cast - theorem to_lex_rat_cast Modified Mathlib/Algebra/Group/Opposite.lean + theorem AddOpposite.opMulEquiv_toEquiv - theorem AddOpposite.op_mul_equiv_to_equiv + theorem MulOpposite.opAddEquiv_toEquiv - theorem MulOpposite.op_add_equiv_to_equiv + theorem MulOpposite.semiconjBy_op + theorem MulOpposite.semiconjBy_unop - theorem MulOpposite.semiconj_by_op - theorem MulOpposite.semiconj_by_unop + theorem Units.coe_opEquiv_symm - theorem Units.coe_op_equiv_symm + theorem Units.coe_unop_opEquiv - theorem Units.coe_unop_op_equiv Modified Mathlib/Algebra/Hom/Equiv/TypeTags.lean Modified Mathlib/Algebra/Hom/Ring.lean + theorem NonUnitalRingHom.coe_toMulHom - theorem NonUnitalRingHom.coe_to_mulHom + theorem RingHom.coe_addMonoidHom_id - theorem RingHom.coe_add_monoid_hom_id + theorem RingHom.coe_monoidHom_id - theorem RingHom.coe_monoid_hom_id + theorem RingHom.isUnit_map - theorem RingHom.is_unit_map Modified Mathlib/Algebra/Order/AbsoluteValue.lean + theorem AbsoluteValue.coe_toMonoidHom - theorem AbsoluteValue.coe_to_monoid_hom Modified Mathlib/Algebra/Order/Hom/Monoid.lean + theorem strictAnti_iff_map_neg + theorem strictAnti_iff_map_pos + theorem strictMono_iff_map_neg + theorem strictMono_iff_map_pos - theorem strict_anti_iff_map_neg - theorem strict_anti_iff_map_pos - theorem strict_mono_iff_map_neg - theorem strict_mono_iff_map_pos Modified Mathlib/Algebra/Order/Invertible.lean Modified Mathlib/Algebra/Order/Monoid/ToMulBot.lean + theorem WithZero.toMulBot_coe_ofAdd - theorem WithZero.toMulBot_coe_of_add Modified Mathlib/Algebra/Ring/Opposite.lean Modified Mathlib/Control/Traversable/Lemmas.lean + theorem Traversable.pureTransformation_apply - theorem Traversable.pure_transformation_apply Modified Mathlib/Data/Bool/Basic.lean + theorem Bool.ofNat_le_ofNat + theorem Bool.ofNat_toNat - theorem Bool.of_nat_le_of_nat - theorem Bool.of_nat_to_nat + theorem Bool.toNat_le_toNat - theorem Bool.to_nat_le_to_nat Modified Mathlib/Data/Int/Cast/Lemmas.lean + theorem Int.castAddHom_int + theorem Int.castRingHom_int - theorem Int.cast_add_hom_int - theorem Int.cast_ring_hom_int + theorem Int.cast_strictMono - theorem Int.cast_strict_mono + theorem Int.coe_castAddHom + theorem Int.coe_castRingHom - theorem Int.coe_cast_add_hom - theorem Int.coe_cast_ring_hom + theorem Sum.elim_intCast_intCast - theorem Sum.elim_int_cast_int_cast + theorem ofDual_int_cast + theorem ofLex_int_cast - theorem of_dual_int_cast - theorem of_lex_int_cast + theorem toDual_int_cast + theorem toLex_int_cast - theorem to_dual_int_cast - theorem to_lex_int_cast Modified Mathlib/Data/Int/Div.lean + theorem Int.eq_of_mod_eq_of_natAbs_sub_lt_natAbs - theorem Int.eq_of_mod_eq_of_nat_abs_sub_lt_nat_abs + theorem Int.natAbs_le_of_dvd_ne_zero - theorem Int.nat_abs_le_of_dvd_ne_zero Modified Mathlib/Data/Int/LeastGreatest.lean +/- theorem Int.exists_greatest_of_bdd +/- theorem Int.exists_least_of_bdd Modified Mathlib/Data/Int/Order/Basic.lean + theorem Int.lt_of_toNat_lt - theorem Int.lt_of_to_nat_lt + theorem Int.lt_toNat - theorem Int.lt_to_nat + theorem Int.toNat_eq_zero + theorem Int.toNat_le + theorem Int.toNat_le_toNat + theorem Int.toNat_lt_toNat + theorem Int.toNat_pred_coe_of_pos + theorem Int.toNat_sub_of_le - theorem Int.to_nat_eq_zero - theorem Int.to_nat_le - theorem Int.to_nat_le_to_nat - theorem Int.to_nat_lt_to_nat - theorem Int.to_nat_pred_coe_of_pos - theorem Int.to_nat_sub_of_le Modified Mathlib/Data/Nat/Cast/Basic.lean + theorem NeZero.nat_of_neZero - theorem NeZero.nat_of_ne_zero Modified Mathlib/Data/Nat/Factorial/Basic.lean Modified Mathlib/Data/Nat/Pow.lean + theorem Nat.pow_left_strictMono - theorem Nat.pow_left_strict_mono + theorem Nat.pow_right_strictMono - theorem Nat.pow_right_strict_mono Modified Mathlib/Data/PEquiv.lean + theorem PEquiv.injective_of_forall_isSome - theorem PEquiv.injective_of_forall_is_some + theorem PEquiv.isSome_symm_get - theorem PEquiv.is_some_symm_get Modified Mathlib/Data/Set/BoolIndicator.lean Modified Mathlib/Data/Set/Function.lean Modified Mathlib/Data/Set/Image.lean + theorem Set.preimage_setOf_eq - theorem Set.preimage_set_of_eq Modified Mathlib/Data/Set/Intervals/ProjIcc.lean + theorem Set.projIcc_of_right_le - theorem Set.proj_Icc_of_right_le Modified Mathlib/Data/Set/Intervals/SurjOn.lean Modified Mathlib/Data/Set/NAry.lean Modified Mathlib/Data/TwoPointing.lean Modified Mathlib/Data/Vector.lean + theorem Vector.toList_append + theorem Vector.toList_cons + theorem Vector.toList_drop + theorem Vector.toList_length + theorem Vector.toList_nil + theorem Vector.toList_take - theorem Vector.to_list_append - theorem Vector.to_list_cons - theorem Vector.to_list_drop - theorem Vector.to_list_length - theorem Vector.to_list_nil - theorem Vector.to_list_take Modified Mathlib/Logic/Embedding/Set.lean Modified Mathlib/Logic/Equiv/Embedding.lean Modified Mathlib/Logic/Equiv/Set.lean Modified Mathlib/Order/Bounds/Basic.lean + theorem isGLB_Icc + theorem isGLB_Ico + theorem isGLB_Ioc + theorem isGLB_Ioo + theorem isGLB_univ - theorem is_glb_Icc - theorem is_glb_Ico - theorem is_glb_Ioc - theorem is_glb_Ioo - theorem is_glb_univ Modified Mathlib/Order/Directed.lean + theorem directedOn_image + theorem directedOn_of_inf_mem - theorem directed_on_image - theorem directed_on_of_inf_mem + theorem isDirected_mono - theorem is_directed_mono Modified Mathlib/Order/InitialSeg.lean + theorem InitialSeg.codRestrict_apply - theorem InitialSeg.cod_restrict_apply + theorem InitialSeg.leLt_apply - theorem InitialSeg.le_lt_apply + theorem InitialSeg.ltOrEq_apply_left + theorem InitialSeg.ltOrEq_apply_right - theorem InitialSeg.lt_or_eq_apply_left - theorem InitialSeg.lt_or_eq_apply_right + theorem PrincipalSeg.codRestrict_apply + theorem PrincipalSeg.codRestrict_top - theorem PrincipalSeg.cod_restrict_apply - theorem PrincipalSeg.cod_restrict_top + theorem PrincipalSeg.equivLt_apply + theorem PrincipalSeg.equivLt_top - theorem PrincipalSeg.equiv_lt_apply - theorem PrincipalSeg.equiv_lt_top + theorem PrincipalSeg.ofElement_apply + theorem PrincipalSeg.ofElement_top + theorem PrincipalSeg.ofIsEmpty_top - theorem PrincipalSeg.of_element_apply - theorem PrincipalSeg.of_element_top - theorem PrincipalSeg.of_is_empty_top Modified Mathlib/Order/LatticeIntervals.lean Modified Mathlib/Order/WellFounded.lean Modified Mathlib/Tactic/ModCases.lean 2022-12-17 23:54:34 41bff33 feat: port `Data.Set.Intervals.Group` (#1038) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Order/Monoid/Defs.lean Added Mathlib/Data/Set/Intervals/Group.lean + theorem Set.add_mem_Icc_iff_left + theorem Set.add_mem_Icc_iff_right + theorem Set.add_mem_Ico_iff_left + theorem Set.add_mem_Ico_iff_right + theorem Set.add_mem_Ioc_iff_left + theorem Set.add_mem_Ioc_iff_right + theorem Set.add_mem_Ioo_iff_left + theorem Set.add_mem_Ioo_iff_right + theorem Set.inv_mem_Icc_iff + theorem Set.inv_mem_Ico_iff + theorem Set.inv_mem_Ioc_iff + theorem Set.inv_mem_Ioo_iff + theorem Set.mem_Icc_iff_abs_le + theorem Set.nonempty_Ico_sdiff + theorem Set.sub_mem_Icc_iff_left + theorem Set.sub_mem_Icc_iff_right + theorem Set.sub_mem_Ico_iff_left + theorem Set.sub_mem_Ico_iff_right + theorem Set.sub_mem_Ioc_iff_left + theorem Set.sub_mem_Ioc_iff_right + theorem Set.sub_mem_Ioo_iff_left + theorem Set.sub_mem_Ioo_iff_right 2022-12-17 23:34:36 22fb95d feat: port Data.Set.Intervals.WithBotTop (#1072) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Data/Set/Intervals/WithBotTop.lean + theorem WithBot.image_coe_Icc + theorem WithBot.image_coe_Ici + theorem WithBot.image_coe_Ico + theorem WithBot.image_coe_Iic + theorem WithBot.image_coe_Iio + theorem WithBot.image_coe_Ioc + theorem WithBot.image_coe_Ioi + theorem WithBot.image_coe_Ioo + theorem WithBot.preimage_coe_Icc + theorem WithBot.preimage_coe_Ici + theorem WithBot.preimage_coe_Ico + theorem WithBot.preimage_coe_Iic + theorem WithBot.preimage_coe_Iio + theorem WithBot.preimage_coe_Ioc + theorem WithBot.preimage_coe_Ioc_bot + theorem WithBot.preimage_coe_Ioi + theorem WithBot.preimage_coe_Ioi_bot + theorem WithBot.preimage_coe_Ioo + theorem WithBot.preimage_coe_Ioo_bot + theorem WithBot.preimage_coe_bot + theorem WithBot.range_coe + theorem WithTop.image_coe_Icc + theorem WithTop.image_coe_Ici + theorem WithTop.image_coe_Ico + theorem WithTop.image_coe_Iic + theorem WithTop.image_coe_Iio + theorem WithTop.image_coe_Ioc + theorem WithTop.image_coe_Ioi + theorem WithTop.image_coe_Ioo + theorem WithTop.preimage_coe_Icc + theorem WithTop.preimage_coe_Ici + theorem WithTop.preimage_coe_Ico + theorem WithTop.preimage_coe_Ico_top + theorem WithTop.preimage_coe_Iic + theorem WithTop.preimage_coe_Iio + theorem WithTop.preimage_coe_Iio_top + theorem WithTop.preimage_coe_Ioc + theorem WithTop.preimage_coe_Ioi + theorem WithTop.preimage_coe_Ioo + theorem WithTop.preimage_coe_Ioo_top + theorem WithTop.preimage_coe_top + theorem WithTop.range_coe 2022-12-17 15:07:55 5c3a3c5 doc: add `lake build +` command to README (#1076) ESTIMATED CHANGES Modified README.md 2022-12-17 09:35:27 0ea857e feat: port `Data.List.Func` (#1048) `aba57d4d3dae35460225919dcd82fe91355162f9` ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Data/List/Func.lean + def List.Func.Equiv + def List.Func.add + theorem List.Func.add_nil + theorem List.Func.eq_get_of_mem + theorem List.Func.eq_of_equiv + theorem List.Func.equiv_of_eq + theorem List.Func.equiv_refl + theorem List.Func.equiv_symm + theorem List.Func.equiv_trans + theorem List.Func.forall_val_of_forall_mem + def List.Func.get + theorem List.Func.get_add + theorem List.Func.get_eq_default_of_le + theorem List.Func.get_map' + theorem List.Func.get_map + theorem List.Func.get_neg + theorem List.Func.get_nil + theorem List.Func.get_pointwise + theorem List.Func.get_set + theorem List.Func.get_set_eq_of_ne + theorem List.Func.get_sub + theorem List.Func.length_add + theorem List.Func.length_neg + theorem List.Func.length_pointwise + theorem List.Func.length_set + theorem List.Func.length_sub + theorem List.Func.map_add_map + theorem List.Func.mem_get_of_le + theorem List.Func.mem_get_of_ne_zero + def List.Func.neg + theorem List.Func.nil_add + theorem List.Func.nil_pointwise + theorem List.Func.nil_sub + def List.Func.pointwise + theorem List.Func.pointwise_nil + def List.Func.set + def List.Func.sub + theorem List.Func.sub_nil 2022-12-17 09:19:00 2bbc6c2 feat port: Data.Int.Order.Units (#1082) d012cd09a9b256d870751284dd6a29882b0be105 ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Data/Int/Order/Units.lean + theorem Int.isUnit_iff_abs_eq + theorem Int.isUnit_sq + theorem Int.neg_one_pow_ne_zero + theorem Int.sq_eq_one_of_sq_le_three + theorem Int.sq_eq_one_of_sq_lt_four + theorem Int.units_coe_mul_self + theorem Int.units_inv_eq_self + theorem Int.units_mul_self + theorem Int.units_pow_eq_pow_mod_two + theorem Int.units_sq 2022-12-17 09:18:59 0b5dd3e feat port: Logic.Small.Basic (#1079) d012cd09a9b256d870751284dd6a29882b0be105 ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Logic/Small/Basic.lean + def Shrink + theorem Small.mk' + theorem not_small_type + theorem small_congr + theorem small_lift + theorem small_map + theorem small_of_injective + theorem small_of_surjective + theorem small_subset + theorem small_type 2022-12-17 08:57:55 4a230a9 feat port: Data.Nat.Choose.Basic (#1073) d012cd09a9b256d870751284dd6a29882b0be105 ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Data/Nat/Choose/Basic.lean + theorem Nat.add_choose + theorem Nat.add_choose_mul_factorial_mul_factorial + theorem Nat.ascFactorial_eq_factorial_mul_choose + def Nat.choose + theorem Nat.choose_eq_asc_factorial_div_factorial + theorem Nat.choose_eq_descFactorial_div_factorial + theorem Nat.choose_eq_factorial_div_factorial + theorem Nat.choose_eq_zero_iff + theorem Nat.choose_eq_zero_of_lt + theorem Nat.choose_le_add + theorem Nat.choose_le_choose + theorem Nat.choose_le_middle + theorem Nat.choose_le_succ + theorem Nat.choose_le_succ_of_lt_half_left + theorem Nat.choose_mono + theorem Nat.choose_mul + theorem Nat.choose_mul_factorial_mul_factorial + theorem Nat.choose_mul_succ_eq + theorem Nat.choose_one_right + theorem Nat.choose_pos + theorem Nat.choose_self + theorem Nat.choose_succ_right_eq + theorem Nat.choose_succ_self + theorem Nat.choose_succ_self_right + theorem Nat.choose_succ_succ + theorem Nat.choose_symm + theorem Nat.choose_symm_add + theorem Nat.choose_symm_half + theorem Nat.choose_symm_of_eq_add + theorem Nat.choose_two_right + theorem Nat.choose_zero_right + theorem Nat.choose_zero_succ + theorem Nat.descFactorial_eq_factorial_mul_choose + theorem Nat.factorial_dvd_ascFactorial + theorem Nat.factorial_dvd_descFactorial + theorem Nat.factorial_mul_factorial_dvd_factorial + theorem Nat.factorial_mul_factorial_dvd_factorial_add + def Nat.multichoose + theorem Nat.multichoose_eq + theorem Nat.multichoose_one + theorem Nat.multichoose_one_right + theorem Nat.multichoose_succ_succ + theorem Nat.multichoose_two + theorem Nat.multichoose_zero_right + theorem Nat.multichoose_zero_succ + theorem Nat.succ_mul_choose_eq + theorem Nat.triangle_succ 2022-12-17 08:37:53 32618bf feat: Refactor ConnectedComponent (#971) … in order to sync with PR 17665 on mathlib3. See https://github.com/leanprover-community/mathlib/pull/17665 ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Combinatorics/Quiver/ConnectedComponent.lean - def Quiver.Path.reverse - theorem Quiver.Path.reverse_comp - theorem Quiver.Path.reverse_reverse - theorem Quiver.Path.reverse_toPath - def Quiver.Symmetrify.lift - theorem Quiver.Symmetrify.lift_reverse - theorem Quiver.Symmetrify.lift_spec - theorem Quiver.Symmetrify.lift_unique - def Quiver.Symmetrify.of - def Quiver.Symmetrify +/- def Quiver.WeaklyConnectedComponent - def Quiver.reverse - theorem Quiver.reverse_reverse Modified Mathlib/Combinatorics/Quiver/Push.lean - theorem Push.lift_comp - theorem Push.lift_obj - theorem Push.lift_unique - def Push.of - theorem Push.of_obj - def Push - inductive PushQuiver + theorem Quiver.Push.lift_comp + theorem Quiver.Push.lift_obj + theorem Quiver.Push.lift_unique + def Quiver.Push.of + theorem Quiver.Push.of_obj + def Quiver.Push + inductive Quiver.PushQuiver Added Mathlib/Combinatorics/Quiver/Symmetric.lean + theorem Prefunctor.map_reverse + def Quiver.IsPreconnected + def Quiver.Path.reverse + theorem Quiver.Path.reverse_comp + theorem Quiver.Path.reverse_reverse + theorem Quiver.Path.reverse_toPath + theorem Quiver.Push.of_reverse + def Quiver.Symmetrify.lift + theorem Quiver.Symmetrify.lift_reverse + theorem Quiver.Symmetrify.lift_spec + theorem Quiver.Symmetrify.lift_unique + def Quiver.Symmetrify.of + def Quiver.Symmetrify + theorem Quiver.eq_reverse_iff + def Quiver.reverse + theorem Quiver.reverse_inj + theorem Quiver.reverse_reverse + theorem Quiver.symmetrify_reverse 2022-12-17 08:03:59 a1c0d0a chore: move Monovary.lean (#1085) To match leanprover-community/mathlib#17946. ESTIMATED CHANGES Modified Mathlib.lean Renamed Mathlib/Order/Monovary.lean to Mathlib/Order/Monotone/Monovary.lean 2022-12-16 13:20:56 8d5a552 feat port: Data.Nat.Dist (#1023) ee0c179cd3c8a45aa5bffbf1b41d8dbede452865 ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Data/Nat/Dist.lean + theorem Nat.dist.def + theorem Nat.dist.triangle_inequality + def Nat.dist + theorem Nat.dist_add_add_left + theorem Nat.dist_add_add_right + theorem Nat.dist_comm + theorem Nat.dist_eq_intro + theorem Nat.dist_eq_sub_of_le + theorem Nat.dist_eq_sub_of_le_right + theorem Nat.dist_eq_zero + theorem Nat.dist_mul_left + theorem Nat.dist_mul_right + theorem Nat.dist_pos_of_ne + theorem Nat.dist_self + theorem Nat.dist_succ_succ + theorem Nat.dist_tri_left' + theorem Nat.dist_tri_left + theorem Nat.dist_tri_right' + theorem Nat.dist_tri_right + theorem Nat.dist_zero_left + theorem Nat.dist_zero_right + theorem Nat.eq_of_dist_eq_zero 2022-12-16 12:32:53 7059664 feat: import library_search and whatsnew early (#925) ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Sub/Canonical.lean Modified Mathlib/Data/Prod/Basic.lean Modified Mathlib/Logic/Function/Basic.lean 2022-12-16 12:16:26 de900e0 feat: port Data.Set.Intervals.OrderIso (#1067) I am not sure about the names of the last two defs. Almost perfect, capitalization of Icc and friends was wrong and one trivial correction. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Data/Set/Intervals/OrderIso.lean + def OrderIso.IciBot + def OrderIso.IicTop + theorem OrderIso.image_Icc + theorem OrderIso.image_Ici + theorem OrderIso.image_Ico + theorem OrderIso.image_Iic + theorem OrderIso.image_Iio + theorem OrderIso.image_Ioc + theorem OrderIso.image_Ioi + theorem OrderIso.image_Ioo + theorem OrderIso.preimage_Icc + theorem OrderIso.preimage_Ici + theorem OrderIso.preimage_Ico + theorem OrderIso.preimage_Iic + theorem OrderIso.preimage_Iio + theorem OrderIso.preimage_Ioc + theorem OrderIso.preimage_Ioi + theorem OrderIso.preimage_Ioo 2022-12-16 12:16:25 740c255 feat: Port `Data.Nat.Factorial.Basic` (#1066) d012cd09a9b256d870751284dd6a29882b0be105 ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Data/Nat/Factorial/Basic.lean + theorem Nat.add_descFactorial_eq_ascFactorial + theorem Nat.add_factorial_le_factorial_add + theorem Nat.add_factorial_lt_factorial_add + theorem Nat.add_factorial_succ_le_factorial_add_succ + theorem Nat.add_factorial_succ_lt_factorial_add_succ + def Nat.ascFactorial + theorem Nat.ascFactorial_eq_div + theorem Nat.ascFactorial_le_pow_add + theorem Nat.ascFactorial_lt_pow_add + theorem Nat.ascFactorial_of_sub + theorem Nat.ascFactorial_pos + theorem Nat.ascFactorial_succ + theorem Nat.ascFactorial_zero + def Nat.descFactorial + theorem Nat.descFactorial_eq_div + theorem Nat.descFactorial_eq_zero_iff_lt + theorem Nat.descFactorial_le_pow + theorem Nat.descFactorial_lt_pow + theorem Nat.descFactorial_one + theorem Nat.descFactorial_self + theorem Nat.descFactorial_succ + theorem Nat.descFactorial_zero + theorem Nat.dvd_factorial + def Nat.factorial + theorem Nat.factorial_dvd_factorial + theorem Nat.factorial_eq_one + theorem Nat.factorial_inj + theorem Nat.factorial_le + theorem Nat.factorial_lt + theorem Nat.factorial_mul_ascFactorial + theorem Nat.factorial_mul_descFactorial + theorem Nat.factorial_mul_pow_le_factorial + theorem Nat.factorial_mul_pow_sub_le_factorial + theorem Nat.factorial_ne_zero + theorem Nat.factorial_one + theorem Nat.factorial_pos + theorem Nat.factorial_succ + theorem Nat.factorial_two + theorem Nat.factorial_zero + theorem Nat.lt_factorial_self + theorem Nat.monotone_factorial + theorem Nat.mul_factorial_pred + theorem Nat.one_lt_factorial + theorem Nat.pow_lt_ascFactorial' + theorem Nat.pow_lt_ascFactorial + theorem Nat.pow_sub_le_descFactorial + theorem Nat.pow_sub_lt_descFactorial' + theorem Nat.pow_sub_lt_descFactorial + theorem Nat.pow_succ_le_ascFactorial + theorem Nat.self_le_factorial + theorem Nat.succ_ascFactorial + theorem Nat.succ_descFactorial + theorem Nat.succ_descFactorial_succ + theorem Nat.zero_ascFactorial + theorem Nat.zero_descFactorial_succ 2022-12-16 12:00:21 3675299 feat: port Order.LatticeIntervals (#1070) Lots of renames, but easy. I've added names for all instances ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Order/LatticeIntervals.lean + theorem Set.Ici.coe_bot + theorem Set.Ici.coe_top + theorem Set.Iic.coe_bot + theorem Set.Iic.coe_top 2022-12-16 12:00:20 c5e582f feat: port Algebra.Order.Group.Bounds (#1069) easy ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Order/Group/Bounds.lean + theorem IsGLB.exists_between_self_add' + theorem IsGLB.exists_between_self_add + theorem IsLUB.exists_between_sub_self' + theorem IsLUB.exists_between_sub_self 2022-12-16 11:44:50 07ab3cf feat: Port GroupTheory.GroupAction.Prod (#1056) mathlib3 SHA: aba57d4d3dae35460225919dcd82fe91355162f9 ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/GroupTheory/GroupAction/Prod.lean + theorem Prod.pow_def + theorem Prod.pow_fst + theorem Prod.pow_mk + theorem Prod.pow_snd + theorem Prod.pow_swap + theorem Prod.smul_def + theorem Prod.smul_fst + theorem Prod.smul_mk + theorem Prod.smul_mk_zero + theorem Prod.smul_snd + theorem Prod.smul_swap + theorem Prod.smul_zero_mk + def smulMonoidHom + def smulMulHom 2022-12-16 11:28:23 287e7a2 feat: port Data.Set.Intervals.surjOn (#1064) Mathlib SHA: a59dad53320b73ef180174aae867addd707ef00e ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Data/Set/Intervals/SurjOn.lean + theorem surjOn_Icc_of_monotone_surjective + theorem surjOn_Ici_of_monotone_surjective + theorem surjOn_Ico_of_monotone_surjective + theorem surjOn_Iic_of_monotone_surjective + theorem surjOn_Iio_of_monotone_surjective + theorem surjOn_Ioc_of_monotone_surjective + theorem surjOn_Ioi_of_monotone_surjective + theorem surjOn_Ioo_of_monotone_surjective 2022-12-16 10:09:21 75f8cb4 feat: port algebra.hom.group_instances (#941) ~~Todo: `to_additive` on the `CommGroup` instance seems to take forever and still not work.~~ ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Group/Defs.lean Modified Mathlib/Algebra/Hom/Group.lean Added Mathlib/Algebra/Hom/GroupInstances.lean + theorem AddMonoid.End.int_cast_apply + def AddMonoid.End.mulLeft + def AddMonoid.End.mulRight + theorem AddMonoid.End.natCast_apply + theorem AddMonoidHom.coe_flip_mul + theorem AddMonoidHom.coe_mul + theorem AddMonoidHom.map_mul_iff + def AddMonoidHom.mul + theorem AddMonoidHom.mul_apply + def MonoidHom.compHom' + def MonoidHom.compHom + def MonoidHom.compl₂ + theorem MonoidHom.compl₂_apply + def MonoidHom.compr₂ + theorem MonoidHom.compr₂_apply + def MonoidHom.eval + theorem MonoidHom.ext_iff₂ + def MonoidHom.flip + def MonoidHom.flipHom + theorem MonoidHom.flip_apply + theorem MonoidHom.map_div₂ + theorem MonoidHom.map_inv₂ + theorem MonoidHom.map_mul₂ + theorem MonoidHom.map_one₂ 2022-12-16 09:48:13 ddf4802 perf: improve to_additive performance (#1060) Using ``` def Ones : ℕ → Q(Nat) | 0 => q(1) | (n+1) => q($(Ones n) + $(Ones n)) ``` The new `to_additive` takes `45ms` on `Ones 500` (higher gives stack overflows) The old `to_additive` takes `13794ms` on `Ones 17` (exponential in the argument) There is still one issue workaround by using `transform` in `etaExpand`. * Remove `replaceRecM` and `replaceRecMeta` that are exponentially slow * Remove `replaceRecTraversal` because its interface is less convenient than `replaceRec` ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/GroupPower/Order.lean Modified Mathlib/Data/Fin/Fin2.lean Modified Mathlib/Data/Stream/Defs.lean Modified Mathlib/Init/Data/Fin/Basic.lean Modified Mathlib/Init/Data/Int/Basic.lean Modified Mathlib/Init/Data/List/Basic.lean Modified Mathlib/Init/Data/List/Lemmas.lean Modified Mathlib/Init/Data/Nat/Basic.lean Modified Mathlib/Init/Data/Nat/Lemmas.lean Added Mathlib/Init/Data/Nat/Notation.lean Modified Mathlib/Lean/Expr/ReplaceRec.lean - def Lean.Expr.replaceRecTraversal Modified Mathlib/Tactic/PermuteGoals.lean Modified Mathlib/Tactic/Simps/Basic.lean Modified Mathlib/Tactic/ToAdditive.lean +/- def ToAdditive.additiveTest +/- def ToAdditive.applyReplacementFun - def ToAdditive.getReorder - def ToAdditive.ignore - def ToAdditive.isRelevant - def ToAdditive.replaceAll - def ToAdditive.shouldReorder +/- def ToAdditive.shouldTranslateNumeral Modified test/Expr.lean Modified test/apply_fun.lean Modified test/cases.lean Modified test/toAdditive.lean + def Test.Ones - theorem Test.bar7_works - def Test.foo7 - theorem Test.foo7_works 2022-12-16 04:08:20 f976b5e fix: two to_additive changes (#1057) * Put configuration options of `to_additive` before other arguments * Generate equation lemmas and insert them in the dictionary even when the additive declaration already exists. ESTIMATED CHANGES Modified Mathlib/Algebra/Group/OrderSynonym.lean Modified Mathlib/Algebra/Hom/Group.lean Modified Mathlib/Data/Pi/Algebra.lean Modified Mathlib/Tactic/ToAdditive.lean + def ToAdditive.copyMetaData Modified test/toAdditive.lean 2022-12-16 03:51:12 91732b9 feat port:Data.Set.Intervals.ProjIcc (#1051) aba57d4d3dae35460225919dcd82fe91355162f9 ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Data/Set/Intervals/ProjIcc.lean + theorem Monotone.IccExtend + def Set.IccExtend + theorem Set.IccExtend_left + theorem Set.IccExtend_of_le_left + theorem Set.IccExtend_of_mem + theorem Set.IccExtend_of_right_le + theorem Set.IccExtend_range + theorem Set.IccExtend_right + theorem Set.Icc_extend_coe + theorem Set.monotone_projIcc + def Set.projIcc + theorem Set.projIcc_eq_left + theorem Set.projIcc_eq_right + theorem Set.projIcc_left + theorem Set.projIcc_of_le_left + theorem Set.projIcc_of_mem + theorem Set.projIcc_right + theorem Set.projIcc_surjOn + theorem Set.projIcc_surjective + theorem Set.projIcc_val + theorem Set.proj_Icc_of_right_le + theorem Set.range_projIcc + theorem Set.strictMonoOn_projIcc + theorem StrictMono.strictMonoOn_IccExtend 2022-12-16 03:51:11 29f7ec5 feat: port Data.Part (#1007) ee0c179cd3c8a45aa5bffbf1b41d8dbede452865 ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Data/Part.lean + theorem Part.Dom.of_bind + theorem Part.Mem.left_unique + theorem Part.append_def + theorem Part.append_get_eq + theorem Part.append_mem_append + def Part.assert + theorem Part.assert_defined + theorem Part.assert_neg + theorem Part.assert_pos + theorem Part.bind_assoc + theorem Part.bind_defined + theorem Part.bind_dom + theorem Part.bind_eq_bind + theorem Part.bind_le + theorem Part.bind_map + theorem Part.bind_none + theorem Part.bind_of_mem + theorem Part.bind_some + theorem Part.bind_some_eq_map + theorem Part.bind_some_right + theorem Part.bind_toOption + theorem Part.coe_none + theorem Part.coe_some + theorem Part.div_def + theorem Part.div_get_eq + theorem Part.div_mem_div + theorem Part.dom_iff_mem + theorem Part.elim_toOption + theorem Part.eq_get_iff_mem + theorem Part.eq_none_iff' + theorem Part.eq_none_iff + theorem Part.eq_none_or_eq_some + theorem Part.eq_some_iff + theorem Part.eta + theorem Part.ext' + theorem Part.ext + def Part.getOrElse + theorem Part.getOrElse_none + theorem Part.getOrElse_of_dom + theorem Part.getOrElse_of_not_dom + theorem Part.getOrElse_some + theorem Part.get_eq_get_of_eq + theorem Part.get_eq_iff_eq_some + theorem Part.get_eq_iff_mem + theorem Part.get_eq_of_mem + theorem Part.get_mem + theorem Part.get_some + theorem Part.inter_def + theorem Part.inter_get_eq + theorem Part.inter_mem_inter + theorem Part.inv_def + theorem Part.inv_mem_inv + theorem Part.inv_some + theorem Part.le_total_of_le_of_le + theorem Part.left_dom_of_append_dom + theorem Part.left_dom_of_div_dom + theorem Part.left_dom_of_inter_dom + theorem Part.left_dom_of_mod_dom + theorem Part.left_dom_of_mul_dom + theorem Part.left_dom_of_sdiff_dom + theorem Part.left_dom_of_union_dom + def Part.map + theorem Part.map_bind + theorem Part.map_eq_map + theorem Part.map_id' + theorem Part.map_map + theorem Part.map_none + theorem Part.map_some + theorem Part.mem_assert + theorem Part.mem_assert_iff + theorem Part.mem_bind + theorem Part.mem_bind_iff + theorem Part.mem_coe + theorem Part.mem_eq + theorem Part.mem_map + theorem Part.mem_map_iff + theorem Part.mem_mk_iff + theorem Part.mem_ofOption + theorem Part.mem_restrict + theorem Part.mem_some + theorem Part.mem_some_iff + theorem Part.mem_toOption + theorem Part.mem_unique + theorem Part.mod_def + theorem Part.mod_get_eq + theorem Part.mod_mem_mod + theorem Part.mul_def + theorem Part.mul_get_eq + theorem Part.mul_mem_mul + theorem Part.ne_none_iff + def Part.none + theorem Part.none_ne_some + theorem Part.none_to_option + theorem Part.not_mem_none + theorem Part.not_none_dom + def Part.ofOption + theorem Part.ofOption_dom + theorem Part.ofOption_eq_get + theorem Part.of_toOption + theorem Part.one_def + theorem Part.one_mem_one + theorem Part.pure_eq_some + def Part.restrict + theorem Part.ret_eq_some + theorem Part.right_dom_of_append_dom + theorem Part.right_dom_of_div_dom + theorem Part.right_dom_of_inter_dom + theorem Part.right_dom_of_mod_dom + theorem Part.right_dom_of_mul_dom + theorem Part.right_dom_of_sdiff_dom + theorem Part.right_dom_of_union_dom + theorem Part.sdiff_def + theorem Part.sdiff_get_eq + theorem Part.sdiff_mem_sdiff + def Part.some + theorem Part.some_append_some + theorem Part.some_div_some + theorem Part.some_dom + theorem Part.some_get + theorem Part.some_inj + theorem Part.some_injective + theorem Part.some_inter_some + theorem Part.some_mod_some + theorem Part.some_mul_some + theorem Part.some_ne_none + theorem Part.some_sdiff_some + theorem Part.some_to_option + theorem Part.some_union_some + def Part.toOption + theorem Part.toOption_eq_none_iff + theorem Part.toOption_eq_some_iff + theorem Part.to_ofOption + theorem Part.union_def + theorem Part.union_get_eq + theorem Part.union_mem_union + structure Part.{u} 2022-12-16 03:25:25 a0eb316 feat: port Order.Bounds.OrderIso (#1063) a59dad53320b73ef180174aae867addd707ef00e ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Order/Bounds/OrderIso.lean + theorem OrderIso.isGLB_image' + theorem OrderIso.isGLB_image + theorem OrderIso.isGLB_preimage' + theorem OrderIso.isGLB_preimage + theorem OrderIso.isLUB_image' + theorem OrderIso.isLUB_image + theorem OrderIso.isLUB_preimage' + theorem OrderIso.isLUB_preimage + theorem OrderIso.lowerBounds_image + theorem OrderIso.upperBounds_image 2022-12-16 03:25:24 b3da3ca feat port: Algebra.Field.Opposite (#1049) aba57d4d3dae35460225919dcd82fe91355162f9 ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Field/Opposite.lean 2022-12-16 03:25:22 7fb6b43 feat: port Order.Bounded (#1042) aba57d4d3dae35460225919dcd82fe91355162f9 ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Order/Bounded.lean + theorem Set.Bounded.mono + theorem Set.Bounded.rel_mono + theorem Set.Unbounded.mono + theorem Set.Unbounded.rel_mono + theorem Set.bounded_ge_Icc + theorem Set.bounded_ge_Ici + theorem Set.bounded_ge_Ico + theorem Set.bounded_ge_Ioc + theorem Set.bounded_ge_Ioi + theorem Set.bounded_ge_Ioo + theorem Set.bounded_ge_iff_bounded_gt + theorem Set.bounded_ge_inter_ge + theorem Set.bounded_ge_inter_gt + theorem Set.bounded_ge_inter_not_ge + theorem Set.bounded_ge_of_bounded_gt + theorem Set.bounded_gt_Icc + theorem Set.bounded_gt_Ici + theorem Set.bounded_gt_Ico + theorem Set.bounded_gt_Ioc + theorem Set.bounded_gt_Ioi + theorem Set.bounded_gt_Ioo + theorem Set.bounded_gt_inter_ge + theorem Set.bounded_gt_inter_gt + theorem Set.bounded_gt_inter_not_gt + theorem Set.bounded_inter_not + theorem Set.bounded_le_Icc + theorem Set.bounded_le_Ico + theorem Set.bounded_le_Iic + theorem Set.bounded_le_Iio + theorem Set.bounded_le_Ioc + theorem Set.bounded_le_Ioo + theorem Set.bounded_le_iff_bounded_lt + theorem Set.bounded_le_inter_le + theorem Set.bounded_le_inter_lt + theorem Set.bounded_le_inter_not_le + theorem Set.bounded_le_of_bounded_lt + theorem Set.bounded_lt_Icc + theorem Set.bounded_lt_Ico + theorem Set.bounded_lt_Iic + theorem Set.bounded_lt_Iio + theorem Set.bounded_lt_Ioc + theorem Set.bounded_lt_Ioo + theorem Set.bounded_lt_inter_le + theorem Set.bounded_lt_inter_lt + theorem Set.bounded_lt_inter_not_lt + theorem Set.bounded_self + theorem Set.unbounded_ge_iff + theorem Set.unbounded_ge_iff_unbounded_inter_ge + theorem Set.unbounded_ge_inter_gt + theorem Set.unbounded_ge_inter_not_ge + theorem Set.unbounded_ge_of_forall_exists_gt + theorem Set.unbounded_ge_univ + theorem Set.unbounded_gt_iff + theorem Set.unbounded_gt_iff_unbounded_ge + theorem Set.unbounded_gt_inter_gt + theorem Set.unbounded_gt_inter_not_gt + theorem Set.unbounded_gt_of_forall_exists_ge + theorem Set.unbounded_gt_of_unbounded_ge + theorem Set.unbounded_gt_univ + theorem Set.unbounded_inter_ge + theorem Set.unbounded_inter_not + theorem Set.unbounded_le_Ici + theorem Set.unbounded_le_Ioi + theorem Set.unbounded_le_iff + theorem Set.unbounded_le_inter_le + theorem Set.unbounded_le_inter_lt + theorem Set.unbounded_le_inter_not_le + theorem Set.unbounded_le_of_forall_exists_lt + theorem Set.unbounded_le_univ + theorem Set.unbounded_lt_Ici + theorem Set.unbounded_lt_Ioi + theorem Set.unbounded_lt_iff + theorem Set.unbounded_lt_iff_unbounded_le + theorem Set.unbounded_lt_inter_le + theorem Set.unbounded_lt_inter_lt + theorem Set.unbounded_lt_inter_not_lt + theorem Set.unbounded_lt_of_forall_exists_le + theorem Set.unbounded_lt_of_unbounded_le + theorem Set.unbounded_lt_univ 2022-12-16 03:06:30 f30d8e5 feat port Data.Nat.Pow (#1050) aba57d4d3dae35460225919dcd82fe91355162f9 - [x] depends on #1043 ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Data/Nat/Pow.lean + theorem Nat.dvd_of_pow_dvd + theorem Nat.lt_of_pow_dvd_right + theorem Nat.lt_pow_self + theorem Nat.lt_two_pow + theorem Nat.mod_pow_succ + theorem Nat.mul_lt_mul_pow_succ + theorem Nat.not_pos_pow_dvd + theorem Nat.one_le_pow' + theorem Nat.one_le_pow + theorem Nat.one_le_two_pow + theorem Nat.one_lt_pow' + theorem Nat.one_lt_pow + theorem Nat.one_lt_pow_iff + theorem Nat.one_lt_two_pow' + theorem Nat.one_lt_two_pow + theorem Nat.pow_div + theorem Nat.pow_dvd_of_le_of_pow_dvd + theorem Nat.pow_dvd_pow_iff_le_right' + theorem Nat.pow_dvd_pow_iff_le_right + theorem Nat.pow_dvd_pow_iff_pow_le_pow + theorem Nat.pow_le_iff_le_left + theorem Nat.pow_le_iff_le_right + theorem Nat.pow_left_injective + theorem Nat.pow_left_strict_mono + theorem Nat.pow_lt_iff_lt_left + theorem Nat.pow_lt_iff_lt_right + theorem Nat.pow_lt_pow_of_lt_left + theorem Nat.pow_lt_pow_of_lt_right + theorem Nat.pow_lt_pow_succ + theorem Nat.pow_mod + theorem Nat.pow_right_injective + theorem Nat.pow_right_strict_mono + theorem Nat.sq_sub_sq + theorem StrictMono.nat_pow 2022-12-15 21:58:39 39fe9f8 feat: port Algebra.GroupPower.Order (#1043) from fc2ed6f838ce7c9b7c7171e58d78eaf7b438fb0e have commented out `mono` annotations as the corresponding tactic is not yet implemented. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/GroupPower/Order.lean + theorem CanonicallyOrderedCommSemiring.pow_pos + theorem Left.one_le_pow_of_le + theorem Left.pow_le_one_of_le + theorem Left.pow_lt_one_iff' + theorem Left.pow_lt_one_iff + theorem Left.pow_lt_one_of_lt + theorem MonoidHom.map_neg + theorem MonoidHom.map_neg_one + theorem MonoidHom.map_sub_swap + theorem Right.one_le_pow_of_le + theorem Right.pow_le_one_of_le + theorem Right.pow_lt_one_iff + theorem Right.pow_lt_one_of_lt + theorem abs_le_of_sq_le_sq' + theorem abs_le_of_sq_le_sq + theorem abs_lt_of_sq_lt_sq' + theorem abs_lt_of_sq_lt_sq + theorem abs_neg_one_pow + theorem abs_sq + theorem le_of_pow_le_pow + theorem le_self_pow + theorem lt_of_mul_self_lt_mul_self + theorem lt_of_pow_lt_pow + theorem one_le_pow_iff + theorem one_le_pow_iff_of_nonneg + theorem one_le_pow_of_one_le' + theorem one_le_pow_of_one_le + theorem one_le_sq_iff + theorem one_le_sq_iff_one_le_abs + theorem one_le_zpow + theorem one_lt_pow' + theorem one_lt_pow + theorem one_lt_pow_iff + theorem one_lt_pow_iff_of_nonneg + theorem one_lt_sq_iff + theorem one_lt_sq_iff_one_lt_abs + theorem pow_abs + theorem pow_add_pow_le + theorem pow_bit0_nonneg + theorem pow_bit0_pos + theorem pow_bit0_pos_iff + theorem pow_bit0_pos_of_neg + theorem pow_bit1_neg + theorem pow_eq_one_iff + theorem pow_four_le_pow_two_of_pow_two_le + theorem pow_le_one' + theorem pow_le_one + theorem pow_le_one_iff + theorem pow_le_one_iff_of_nonneg + theorem pow_le_pow' + theorem pow_le_pow + theorem pow_le_pow_iff' + theorem pow_le_pow_iff + theorem pow_le_pow_of_le_left' + theorem pow_le_pow_of_le_left + theorem pow_le_pow_of_le_one' + theorem pow_left_inj + theorem pow_lt_one' + theorem pow_lt_one + theorem pow_lt_one_iff + theorem pow_lt_one_iff_of_nonneg + theorem pow_lt_pow' + theorem pow_lt_pow + theorem pow_lt_pow_iff' + theorem pow_lt_pow_iff + theorem pow_lt_pow_iff_of_lt_one + theorem pow_lt_pow_of_lt_left + theorem pow_lt_pow_of_lt_one + theorem pow_lt_pow_succ + theorem pow_lt_pow₀ + theorem pow_lt_self_of_lt_one + theorem pow_mono + theorem pow_pos_iff + theorem pow_strictMono_left + theorem sq_abs + theorem sq_eq_sq + theorem sq_eq_sq_iff_abs_eq_abs + theorem sq_le_one_iff + theorem sq_le_one_iff_abs_le_one + theorem sq_le_sq' + theorem sq_le_sq + theorem sq_lt_one_iff + theorem sq_lt_one_iff_abs_lt_one + theorem sq_lt_sq' + theorem sq_lt_sq + theorem sq_nonneg + theorem sq_pos_iff + theorem sq_pos_of_ne_zero + theorem sq_pos_of_neg + theorem sq_pos_of_pos + theorem strictAnti_pow + theorem strictMonoOn_pow + theorem strictMono_pow + theorem two_mul_le_add_sq + theorem zero_pow_le_one Modified Mathlib/Init/Data/Nat/Basic.lean Modified Mathlib/Tactic/Linarith/Lemmas.lean - theorem sq_nonneg Modified Mathlib/Tactic/Positivity/Basic.lean - theorem pow_bit0_nonneg 2022-12-15 21:39:23 cb8d553 feat: port Order.Hom.Set (#1059) mathlib3 SHA: 198161d833f2c01498c39c266b0b3dbe2c7a8c07 porting notes: none ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Order/Hom/Set.lean + def OrderIso.Set.univ + def OrderIso.compl + theorem OrderIso.image_eq_preimage + theorem OrderIso.image_preimage + theorem OrderIso.image_symm_image + theorem OrderIso.preimage_image + theorem OrderIso.preimage_symm_preimage + theorem OrderIso.range_eq + def OrderIso.setCongr + theorem OrderIso.symm_image_image + theorem OrderIso.symm_preimage_preimage + theorem StrictMono.coe_orderIsoOfSurjective + theorem StrictMono.orderIsoOfSurjective_self_symm_apply + theorem StrictMono.orderIsoOfSurjective_symm_apply_self + theorem compl_antitone + theorem compl_strictAnti 2022-12-15 21:06:20 c455292 feat: port Order.Bounds.Basic (#1040) aba57d4d3dae35460225919dcd82fe91355162f9 ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Order/Bounds/Basic.lean + theorem Antitone.image_lowerBounds_subset_upperBounds_image + theorem Antitone.image_upperBounds_subset_lowerBounds_image + theorem Antitone.map_bddAbove + theorem Antitone.map_bddBelow + theorem Antitone.map_isGreatest + theorem Antitone.map_isLeast + theorem Antitone.mem_lowerBounds_image + theorem Antitone.mem_upperBounds_image + theorem AntitoneOn.image_lowerBounds_subset_upperBounds_image + theorem AntitoneOn.image_upperBounds_subset_lowerBounds_image + theorem AntitoneOn.map_bddAbove + theorem AntitoneOn.map_bddBelow + theorem AntitoneOn.map_isGreatest + theorem AntitoneOn.map_isLeast + theorem AntitoneOn.mem_lowerBounds_image + theorem AntitoneOn.mem_lowerBounds_image_self + theorem AntitoneOn.mem_upperBounds_image + theorem AntitoneOn.mem_upperBounds_image_self + theorem BddAbove.bddAbove_image2_of_bddBelow + theorem BddAbove.bddBelow_image2_of_bddAbove + theorem BddAbove.dual + theorem BddAbove.exists_ge + theorem BddAbove.image2 + theorem BddAbove.image2_bddBelow + theorem BddAbove.insert + theorem BddAbove.inter_of_left + theorem BddAbove.inter_of_right + theorem BddAbove.mono + theorem BddAbove.union + def BddAbove + theorem BddBelow.bddAbove_image2_of_bddAbove + theorem BddBelow.bddBelow_image2_of_bddAbove + theorem BddBelow.dual + theorem BddBelow.exists_le + theorem BddBelow.image2 + theorem BddBelow.image2_bddAbove + theorem BddBelow.insert + theorem BddBelow.inter_of_left + theorem BddBelow.inter_of_right + theorem BddBelow.mono + theorem BddBelow.union + def BddBelow + theorem IsGLB.bddBelow + theorem IsGLB.dual + theorem IsGLB.exists_between' + theorem IsGLB.exists_between + theorem IsGLB.insert + theorem IsGLB.inter_Iic_of_mem + theorem IsGLB.lowerBounds_eq + theorem IsGLB.mono + theorem IsGLB.nonempty + theorem IsGLB.of_image + theorem IsGLB.of_subset_of_superset + theorem IsGLB.union + theorem IsGLB.unique + def IsGLB + theorem IsGreatest.bddAbove + theorem IsGreatest.dual + theorem IsGreatest.image2 + theorem IsGreatest.insert + theorem IsGreatest.isGreatest_iff_eq + theorem IsGreatest.isGreatest_image2_of_isLeast + theorem IsGreatest.isLUB + theorem IsGreatest.isLeast_image2 + theorem IsGreatest.isLeast_image2_of_isLeast + theorem IsGreatest.mono + theorem IsGreatest.nonempty + def IsGreatest.orderTop + theorem IsGreatest.union + theorem IsGreatest.unique + theorem IsGreatest.upperBounds_eq + def IsGreatest + theorem IsLUB.bddAbove + theorem IsLUB.dual + theorem IsLUB.exists_between' + theorem IsLUB.exists_between + theorem IsLUB.insert + theorem IsLUB.inter_Ici_of_mem + theorem IsLUB.mono + theorem IsLUB.nonempty + theorem IsLUB.of_image + theorem IsLUB.of_subset_of_superset + theorem IsLUB.union + theorem IsLUB.unique + theorem IsLUB.upperBounds_eq + def IsLUB + theorem IsLeast.bddBelow + theorem IsLeast.dual + theorem IsLeast.image2 + theorem IsLeast.insert + theorem IsLeast.isGLB + theorem IsLeast.isGreatest_image2 + theorem IsLeast.isGreatest_image2_of_isGreatest + theorem IsLeast.isLeast_iff_eq + theorem IsLeast.isLeast_image2_of_isGreatest + theorem IsLeast.lowerBounds_eq + theorem IsLeast.mono + theorem IsLeast.nonempty + def IsLeast.orderBot + theorem IsLeast.union + theorem IsLeast.unique + def IsLeast + theorem Monotone.image_lowerBounds_subset_lowerBounds_image + theorem Monotone.image_upperBounds_subset_upperBounds_image + theorem Monotone.map_bddAbove + theorem Monotone.map_bddBelow + theorem Monotone.map_isGreatest + theorem Monotone.map_isLeast + theorem Monotone.mem_lowerBounds_image + theorem Monotone.mem_upperBounds_image + theorem MonotoneOn.image_lowerBounds_subset_lowerBounds_image + theorem MonotoneOn.image_upperBounds_subset_upperBounds_image + theorem MonotoneOn.map_bddAbove + theorem MonotoneOn.map_bddBelow + theorem MonotoneOn.map_isGreatest + theorem MonotoneOn.map_isLeast + theorem MonotoneOn.mem_lowerBounds_image + theorem MonotoneOn.mem_lowerBounds_image_self + theorem MonotoneOn.mem_upperBounds_image + theorem MonotoneOn.mem_upperBounds_image_self + theorem NoMaxOrder.upperBounds_univ + theorem NoMinOrder.lowerBounds_univ + theorem OrderBot.lowerBounds_univ + theorem OrderTop.upperBounds_univ + theorem Set.Nonempty.bddAbove_lowerBounds + theorem Set.Nonempty.bddBelow_upperBounds + theorem Set.subsingleton_of_isLUB_le_isGLB + theorem bddAbove_Icc + theorem bddAbove_Ico + theorem bddAbove_Iic + theorem bddAbove_Iio + theorem bddAbove_Ioc + theorem bddAbove_Ioo + theorem bddAbove_def + theorem bddAbove_empty + theorem bddAbove_iff_exists_ge + theorem bddAbove_iff_subset_Iic + theorem bddAbove_insert + theorem bddAbove_singleton + theorem bddAbove_union + theorem bddBelow_Icc + theorem bddBelow_Ici + theorem bddBelow_Ico + theorem bddBelow_Ioc + theorem bddBelow_Ioi + theorem bddBelow_Ioo + theorem bddBelow_bddAbove_iff_subset_Icc + theorem bddBelow_def + theorem bddBelow_empty + theorem bddBelow_iff_exists_le + theorem bddBelow_iff_subset_Ici + theorem bddBelow_insert + theorem bddBelow_singleton + theorem bddBelow_union + theorem bot_mem_lowerBounds + theorem exists_glb_Ioi + theorem exists_lub_Iio + theorem glb_Ioi_eq_self_or_Ioi_eq_Ici + theorem image2_lowerBounds_lowerBounds_subset + theorem image2_lowerBounds_lowerBounds_subset_lowerBounds_image2 + theorem image2_lowerBounds_upperBounds_subset_lowerBounds_image2 + theorem image2_lowerBounds_upperBounds_subset_upperBounds_image2 + theorem image2_upperBounds_lowerBounds_subset_lowerBounds_image2 + theorem image2_upperBounds_lowerBounds_subset_upperBounds_image2 + theorem image2_upperBounds_upperBounds_subset + theorem image2_upperBounds_upperBounds_subset_upperBounds_image2 + theorem isGLB_Ici + theorem isGLB_Ioi + theorem isGLB_empty + theorem isGLB_iff_le_iff + theorem isGLB_le_isLUB + theorem isGLB_lt_iff + theorem isGLB_lt_isLUB_of_ne + theorem isGLB_pair + theorem isGLB_pi + theorem isGLB_prod + theorem isGLB_singleton + theorem isGLB_upperBounds + theorem isGreatest_Icc + theorem isGreatest_Iic + theorem isGreatest_Ioc + theorem isGreatest_pair + theorem isGreatest_singleton + theorem isGreatest_top_iff + theorem isGreatest_union_iff + theorem isGreatest_univ + theorem isLUB_Icc + theorem isLUB_Ico + theorem isLUB_Iic + theorem isLUB_Iio + theorem isLUB_Ioc + theorem isLUB_Ioo + theorem isLUB_empty + theorem isLUB_iff_le_iff + theorem isLUB_le_iff + theorem isLUB_lowerBounds + theorem isLUB_lt_iff + theorem isLUB_pair + theorem isLUB_pi + theorem isLUB_prod + theorem isLUB_singleton + theorem isLUB_univ + theorem isLeast_Icc + theorem isLeast_Ici + theorem isLeast_Ico + theorem isLeast_bot_iff + theorem isLeast_pair + theorem isLeast_singleton + theorem isLeast_union_iff + theorem isLeast_univ + theorem is_glb_Icc + theorem is_glb_Ico + theorem is_glb_Ioc + theorem is_glb_Ioo + theorem is_glb_univ + theorem le_glb_Ioi + theorem le_isGLB_iff + theorem le_of_isLUB_le_isGLB + def lowerBounds + theorem lowerBounds_Icc + theorem lowerBounds_Ici + theorem lowerBounds_Ico + theorem lowerBounds_Ioc + theorem lowerBounds_Ioi + theorem lowerBounds_Ioo + theorem lowerBounds_empty + theorem lowerBounds_insert + theorem lowerBounds_le_upperBounds + theorem lowerBounds_mono + theorem lowerBounds_mono_mem + theorem lowerBounds_mono_set + theorem lowerBounds_singleton + theorem lowerBounds_union + theorem lt_isGLB_iff + theorem lt_isLUB_iff + theorem lub_Iio_eq_self_or_Iio_eq_Iic + theorem lub_Iio_le + theorem mem_lowerBounds + theorem mem_lowerBounds_image2 + theorem mem_lowerBounds_image2_of_mem_lowerBounds_of_mem_lowerBounds + theorem mem_lowerBounds_image2_of_mem_lowerBounds_of_mem_upperBounds + theorem mem_lowerBounds_image2_of_mem_upperBounds + theorem mem_upperBounds + theorem mem_upperBounds_image2 + theorem mem_upperBounds_image2_of_mem_lowerBounds + theorem mem_upperBounds_image2_of_mem_upperBounds_of_mem_lowerBounds + theorem mem_upperBounds_image2_of_mem_upperBounds_of_mem_upperBounds + theorem nonempty_of_not_bddAbove + theorem nonempty_of_not_bddBelow + theorem not_bddAbove_iff' + theorem not_bddAbove_iff + theorem not_bddAbove_univ + theorem not_bddBelow_iff' + theorem not_bddBelow_iff + theorem not_bddBelow_univ + theorem subset_lowerBounds_upperBounds + theorem subset_upperBounds_lowerBounds + theorem top_mem_upperBounds + theorem union_lowerBounds_subset_lowerBounds_inter + theorem union_upperBounds_subset_upperBounds_inter + def upperBounds + theorem upperBounds_Icc + theorem upperBounds_Ico + theorem upperBounds_Iic + theorem upperBounds_Iio + theorem upperBounds_Ioc + theorem upperBounds_Ioo + theorem upperBounds_empty + theorem upperBounds_insert + theorem upperBounds_mono + theorem upperBounds_mono_mem + theorem upperBounds_mono_set + theorem upperBounds_singleton + theorem upperBounds_union 2022-12-15 19:18:38 1305c79 fix: alias uses type of lemma (#1058) `#check @Function.Surjective.range_eq` now gives ```lean @Surjective.range_eq : ∀ {α : Type u_2} {ι : Sort u_1} {f : ι → α}, Surjective f → range f = univ ``` as expected. ESTIMATED CHANGES Modified Mathlib/Tactic/Alias.lean +/- def Tactic.Alias.mkIffMpApp Modified test/Alias.lean + theorem Alias.checkType 2022-12-15 17:55:55 7495fe3 feat port: Logic.Equiv.Set (#1044) aba57d4d3dae35460225919dcd82fe91355162f9 ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Logic/Equiv/Set.lean + theorem Equiv.Set.image_symm_preimage + theorem Equiv.Set.insert_apply_left + theorem Equiv.Set.insert_apply_right + theorem Equiv.Set.insert_symm_apply_inl + theorem Equiv.Set.insert_symm_apply_inr + theorem Equiv.Set.sumCompl_apply_inl + theorem Equiv.Set.sumCompl_apply_inr + theorem Equiv.Set.sumCompl_symm_apply + theorem Equiv.Set.sumCompl_symm_apply_compl + theorem Equiv.Set.sumCompl_symm_apply_of_mem + theorem Equiv.Set.sumCompl_symm_apply_of_not_mem + theorem Equiv.Set.sumDiffSubset_apply_inl + theorem Equiv.Set.sumDiffSubset_apply_inr + theorem Equiv.Set.sumDiffSubset_symm_apply_of_mem + theorem Equiv.Set.sumDiffSubset_symm_apply_of_not_mem + theorem Equiv.Set.union_apply_left + theorem Equiv.Set.union_apply_right + theorem Equiv.Set.union_symm_apply_left + theorem Equiv.Set.union_symm_apply_right + theorem Equiv.apply_ofInjective_symm + theorem Equiv.coe_ofInjective_symm + theorem Equiv.eq_image_iff_symm_image_eq + theorem Equiv.eq_preimage_iff_image_eq + def Equiv.image + theorem Equiv.image_eq_iff_eq + theorem Equiv.image_preimage + theorem Equiv.image_subset + theorem Equiv.image_symm_image + theorem Equiv.ofInjective_symm_apply + theorem Equiv.ofLeftInverse'_eq_ofInjective + def Equiv.ofLeftInverse + theorem Equiv.ofLeftInverse_eq_ofInjective + def Equiv.ofPreimageEquiv + theorem Equiv.ofPreimageEquiv_map + theorem Equiv.preimage_eq_iff_eq_image + theorem Equiv.preimage_image + theorem Equiv.preimage_piEquivPiSubtypeProd_symm_pi + theorem Equiv.preimage_subset + theorem Equiv.preimage_symm_preimage + theorem Equiv.prod_assoc_image + theorem Equiv.prod_assoc_preimage + theorem Equiv.prod_assoc_symm_image + theorem Equiv.prod_assoc_symm_preimage + theorem Equiv.range_eq_univ + theorem Equiv.self_comp_ofInjective_symm + def Equiv.setCongr + def Equiv.setProdEquivSigma + def Equiv.sigmaPreimageEquiv + theorem Equiv.symm_image_image + theorem Equiv.symm_preimage_preimage + theorem Set.image_equiv_eq_preimage_symm + theorem Set.mem_image_equiv + theorem Set.preimage_equiv_eq_image_symm + theorem dite_comp_equiv_update 2022-12-15 14:12:23 862d5c1 feat port: Order.Monovary (#1022) ee0c179cd3c8a45aa5bffbf1b41d8dbede452865 ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Order/Monovary.lean + theorem Antivary.comp_antitone_left + theorem Antivary.comp_monotone_left + theorem Antivary.comp_right + theorem Antivary.dual + theorem Antivary.dual_left + theorem Antivary.dual_right + def Antivary + theorem AntivaryOn.comp_antitoneOn_right + theorem AntivaryOn.comp_antitone_on_left + theorem AntivaryOn.comp_monotoneOn_right + theorem AntivaryOn.comp_monotone_on_left + theorem AntivaryOn.comp_right + theorem AntivaryOn.dual + theorem AntivaryOn.dual_left + theorem AntivaryOn.dual_right + theorem AntivaryOn.empty + def AntivaryOn + theorem Monovary.comp_antitone_left + theorem Monovary.comp_monotone_left + theorem Monovary.comp_right + theorem Monovary.dual + theorem Monovary.dual_left + theorem Monovary.dual_right + def Monovary + theorem MonovaryOn.comp_antitoneOn_right + theorem MonovaryOn.comp_antitone_on_left + theorem MonovaryOn.comp_monotoneOn_right + theorem MonovaryOn.comp_monotone_on_left + theorem MonovaryOn.comp_right + theorem MonovaryOn.dual + theorem MonovaryOn.dual_left + theorem MonovaryOn.dual_right + theorem MonovaryOn.empty + def MonovaryOn + theorem antivaryOn_comm + theorem antivaryOn_const_left + theorem antivaryOn_const_right + theorem antivaryOn_id_iff + theorem antivaryOn_toDual_left + theorem antivaryOn_toDual_right + theorem antivaryOn_univ + theorem antivary_comm + theorem antivary_const_left + theorem antivary_const_right + theorem antivary_id_iff + theorem antivary_toDual_left + theorem antivary_toDual_right + theorem monovaryOn_comm + theorem monovaryOn_const_left + theorem monovaryOn_const_right + theorem monovaryOn_id_iff + theorem monovaryOn_self + theorem monovaryOn_toDual_left + theorem monovaryOn_toDual_right + theorem monovaryOn_univ + theorem monovary_comm + theorem monovary_const_left + theorem monovary_const_right + theorem monovary_id_iff + theorem monovary_self + theorem monovary_toDual_left + theorem monovary_toDual_right 2022-12-15 14:12:22 69e5406 feat port: algebra.ring.opposite (#977) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Ring/Opposite.lean + def NonUnitalRingHom.fromOpposite + def NonUnitalRingHom.op + def NonUnitalRingHom.toOpposite + def NonUnitalRingHom.unop + def RingHom.fromOpposite + def RingHom.op + def RingHom.toOpposite + def RingHom.unop 2022-12-15 13:49:20 021b6b6 feat: port `Data.Set.Enumerate` (#1041) According to mathport Sha `ee0c179cd3c8a45aa5bffbf1b41d8dbede452865` ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Data/Set/Enumerate.lean + def Set.enumerate + theorem Set.enumerate_eq_none + theorem Set.enumerate_eq_none_of_sel + theorem Set.enumerate_inj + theorem Set.enumerate_mem 2022-12-15 12:53:09 cbae1b5 chore: `set.image` lemmas (#1045) Match https://github.com/leanprover-community/mathlib/pull/17924, https://github.com/leanprover-community/mathlib/pull/17945 ESTIMATED CHANGES Modified Mathlib/Data/Set/Image.lean +/- theorem Set.image_inter Modified Mathlib/Data/Set/NAry.lean + theorem Set.image2_curry + theorem Set.image2_inter_left + theorem Set.image2_inter_right + theorem Set.image2_mk_eq_prod + theorem Set.image_prod + theorem Set.image_uncurry_prod Modified Mathlib/Data/Set/Prod.lean - theorem Set.image2_curry - theorem Set.image2_mk_eq_prod - theorem Set.image_prod - theorem Set.image_uncurry_prod 2022-12-15 11:48:16 b749664 feat: port Data.Set.Intervals.Monoid (#1039) aba57d4d3dae35460225919dcd82fe91355162f9 ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Data/Set/Intervals/Monoid.lean + theorem Set.Icc_add_bij + theorem Set.Ici_add_bij + theorem Set.Ico_add_bij + theorem Set.Ioc_add_bij + theorem Set.Ioi_add_bij + theorem Set.Ioo_add_bij + theorem Set.image_add_const_Icc + theorem Set.image_add_const_Ici + theorem Set.image_add_const_Ico + theorem Set.image_add_const_Ioc + theorem Set.image_add_const_Ioi + theorem Set.image_add_const_Ioo + theorem Set.image_const_add_Icc + theorem Set.image_const_add_Ici + theorem Set.image_const_add_Ico + theorem Set.image_const_add_Ioc + theorem Set.image_const_add_Ioi + theorem Set.image_const_add_Ioo 2022-12-15 10:44:58 9b60f00 feat: Checking associativity in partial order (#1030) Match https://github.com/leanprover-community/mathlib/pull/17942 ESTIMATED CHANGES Modified Mathlib/Order/Basic.lean + theorem associative_of_commutative_of_le + theorem commutative_of_le 2022-12-15 09:57:20 cdc9f72 feat: `(∀ p, f p) ↔ f true ∧ f false` (#1031) Match https://github.com/leanprover-community/mathlib/pull/17944 ESTIMATED CHANGES Modified Mathlib/Logic/Lemmas.lean + theorem Prop.exists + theorem Prop.forall 2022-12-15 05:01:03 03c0beb feat: Port `Data.Set.Intervals.Basic` (#1033) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Data/Set/Intervals/Basic.lean + theorem IsBot.Ici_eq + theorem IsMax.Ici_eq + theorem IsMax.Ioi_eq + theorem IsMin.Iic_eq + theorem IsMin.Iio_eq + theorem IsTop.Iic_eq + def Set.Icc + theorem Set.Icc_bot + theorem Set.Icc_bot_top + theorem Set.Icc_def + theorem Set.Icc_diff_Ico_same + theorem Set.Icc_diff_Ioc_same + theorem Set.Icc_diff_Ioo_same + theorem Set.Icc_diff_both + theorem Set.Icc_diff_left + theorem Set.Icc_diff_right + theorem Set.Icc_eq_empty + theorem Set.Icc_eq_empty_iff + theorem Set.Icc_eq_empty_of_lt + theorem Set.Icc_eq_singleton_iff + theorem Set.Icc_inter_Icc + theorem Set.Icc_inter_Icc_eq_singleton + theorem Set.Icc_prod_Icc + theorem Set.Icc_prod_eq + theorem Set.Icc_self + theorem Set.Icc_ssubset_Icc_left + theorem Set.Icc_ssubset_Icc_right + theorem Set.Icc_subset_Icc + theorem Set.Icc_subset_Icc_iff + theorem Set.Icc_subset_Icc_left + theorem Set.Icc_subset_Icc_right + theorem Set.Icc_subset_Icc_union_Icc + theorem Set.Icc_subset_Icc_union_Ioc + theorem Set.Icc_subset_Ici_iff + theorem Set.Icc_subset_Ici_self + theorem Set.Icc_subset_Ico_iff + theorem Set.Icc_subset_Ico_right + theorem Set.Icc_subset_Ico_union_Icc + theorem Set.Icc_subset_Iic_iff + theorem Set.Icc_subset_Iic_self + theorem Set.Icc_subset_Iio_iff + theorem Set.Icc_subset_Ioc_iff + theorem Set.Icc_subset_Ioi_iff + theorem Set.Icc_subset_Ioo + theorem Set.Icc_subset_Ioo_iff + theorem Set.Icc_top + theorem Set.Icc_union_Icc' + theorem Set.Icc_union_Icc + theorem Set.Icc_union_Icc_eq_Icc + theorem Set.Icc_union_Ici' + theorem Set.Icc_union_Ici + theorem Set.Icc_union_Ici_eq_Ici + theorem Set.Icc_union_Ico_eq_Ico + theorem Set.Icc_union_Ioc_eq_Icc + theorem Set.Icc_union_Ioi_eq_Ici + theorem Set.Icc_union_Ioo_eq_Ico + def Set.Ici + theorem Set.Ici_bot + theorem Set.Ici_def + theorem Set.Ici_diff_Ici + theorem Set.Ici_diff_Ioi + theorem Set.Ici_diff_Ioi_same + theorem Set.Ici_diff_left + theorem Set.Ici_inj + theorem Set.Ici_injective + theorem Set.Ici_inter_Ici + theorem Set.Ici_inter_Iic + theorem Set.Ici_inter_Iio + theorem Set.Ici_prod_Ici + theorem Set.Ici_prod_eq + theorem Set.Ici_subset_Icc_union_Ici + theorem Set.Ici_subset_Icc_union_Ioi + theorem Set.Ici_subset_Ici + theorem Set.Ici_subset_Ico_union_Ici + theorem Set.Ici_subset_Ioi + theorem Set.Ici_top + def Set.Ico + theorem Set.Ico_bot + theorem Set.Ico_def + theorem Set.Ico_diff_Iio + theorem Set.Ico_diff_Ioo_same + theorem Set.Ico_diff_left + theorem Set.Ico_eq_Ico_iff + theorem Set.Ico_eq_empty + theorem Set.Ico_eq_empty_iff + theorem Set.Ico_eq_empty_of_le + theorem Set.Ico_insert_right + theorem Set.Ico_inter_Ici + theorem Set.Ico_inter_Ico + theorem Set.Ico_inter_Iio + theorem Set.Ico_self + theorem Set.Ico_subset_Icc_self + theorem Set.Ico_subset_Icc_union_Ico + theorem Set.Ico_subset_Icc_union_Ioo + theorem Set.Ico_subset_Ici_self + theorem Set.Ico_subset_Ico + theorem Set.Ico_subset_Ico_iff + theorem Set.Ico_subset_Ico_left + theorem Set.Ico_subset_Ico_right + theorem Set.Ico_subset_Ico_union_Ico + theorem Set.Ico_subset_Iio_self + theorem Set.Ico_subset_Ioo_left + theorem Set.Ico_union_Icc_eq_Icc + theorem Set.Ico_union_Ici' + theorem Set.Ico_union_Ici + theorem Set.Ico_union_Ici_eq_Ici + theorem Set.Ico_union_Ico' + theorem Set.Ico_union_Ico + theorem Set.Ico_union_Ico_eq_Ico + theorem Set.Ico_union_right + def Set.Iic + theorem Set.Iic_bot + theorem Set.Iic_def + theorem Set.Iic_diff_Iic + theorem Set.Iic_diff_Iio + theorem Set.Iic_diff_Iio_same + theorem Set.Iic_diff_right + theorem Set.Iic_inj + theorem Set.Iic_injective + theorem Set.Iic_inter_Ici + theorem Set.Iic_inter_Iic + theorem Set.Iic_inter_Ioc_of_le + theorem Set.Iic_inter_Ioi + theorem Set.Iic_prod_Iic + theorem Set.Iic_prod_eq + theorem Set.Iic_subset_Iic + theorem Set.Iic_subset_Iic_union_Icc + theorem Set.Iic_subset_Iic_union_Ioc + theorem Set.Iic_subset_Iio + theorem Set.Iic_subset_Iio_union_Icc + theorem Set.Iic_top + theorem Set.Iic_union_Icc' + theorem Set.Iic_union_Icc + theorem Set.Iic_union_Icc_eq_Iic + theorem Set.Iic_union_Ici + theorem Set.Iic_union_Ici_of_le + theorem Set.Iic_union_Ico_eq_Iio + theorem Set.Iic_union_Ioc' + theorem Set.Iic_union_Ioc + theorem Set.Iic_union_Ioc_eq_Iic + theorem Set.Iic_union_Ioi + theorem Set.Iic_union_Ioi_of_le + theorem Set.Iic_union_Ioo_eq_Iio + def Set.Iio + theorem Set.Iio_bot + theorem Set.Iio_def + theorem Set.Iio_diff_Iic + theorem Set.Iio_diff_Iio + theorem Set.Iio_inj + theorem Set.Iio_injective + theorem Set.Iio_insert + theorem Set.Iio_inter_Ici + theorem Set.Iio_inter_Iio + theorem Set.Iio_inter_Ioi + theorem Set.Iio_ssubset_Iic_self + theorem Set.Iio_subset_Iic + theorem Set.Iio_subset_Iic_iff + theorem Set.Iio_subset_Iic_self + theorem Set.Iio_subset_Iic_union_Ico + theorem Set.Iio_subset_Iic_union_Ioo + theorem Set.Iio_subset_Iio + theorem Set.Iio_subset_Iio_iff + theorem Set.Iio_subset_Iio_union_Ico + theorem Set.Iio_union_Icc_eq_Iic + theorem Set.Iio_union_Ici + theorem Set.Iio_union_Ici_of_le + theorem Set.Iio_union_Ico' + theorem Set.Iio_union_Ico + theorem Set.Iio_union_Ico_eq_Iio + theorem Set.Iio_union_Ioi + theorem Set.Iio_union_Ioi_of_lt + theorem Set.Iio_union_Ioo' + theorem Set.Iio_union_Ioo + theorem Set.Iio_union_right + def Set.Ioc + theorem Set.Ioc_def + theorem Set.Ioc_diff_Iic + theorem Set.Ioc_diff_Ioi + theorem Set.Ioc_diff_Ioo_same + theorem Set.Ioc_diff_right + theorem Set.Ioc_eq_empty + theorem Set.Ioc_eq_empty_iff + theorem Set.Ioc_eq_empty_of_le + theorem Set.Ioc_insert_left + theorem Set.Ioc_inter_Iic + theorem Set.Ioc_inter_Ioc + theorem Set.Ioc_inter_Ioi + theorem Set.Ioc_inter_Ioo_of_left_lt + theorem Set.Ioc_inter_Ioo_of_right_le + theorem Set.Ioc_self + theorem Set.Ioc_subset_Icc_self + theorem Set.Ioc_subset_Iic_self + theorem Set.Ioc_subset_Ioc + theorem Set.Ioc_subset_Ioc_iff + theorem Set.Ioc_subset_Ioc_left + theorem Set.Ioc_subset_Ioc_right + theorem Set.Ioc_subset_Ioc_union_Icc + theorem Set.Ioc_subset_Ioc_union_Ioc + theorem Set.Ioc_subset_Ioi_self + theorem Set.Ioc_subset_Ioo_right + theorem Set.Ioc_subset_Ioo_union_Icc + theorem Set.Ioc_top + theorem Set.Ioc_union_Icc_eq_Ioc + theorem Set.Ioc_union_Ici_eq_Ioi + theorem Set.Ioc_union_Ico_eq_Ioo + theorem Set.Ioc_union_Ioc' + theorem Set.Ioc_union_Ioc + theorem Set.Ioc_union_Ioc_eq_Ioc + theorem Set.Ioc_union_Ioc_left + theorem Set.Ioc_union_Ioc_right + theorem Set.Ioc_union_Ioc_symm + theorem Set.Ioc_union_Ioc_union_Ioc_cycle + theorem Set.Ioc_union_Ioi' + theorem Set.Ioc_union_Ioi + theorem Set.Ioc_union_Ioi_eq_Ioi + theorem Set.Ioc_union_Ioo_eq_Ioo + theorem Set.Ioc_union_left + def Set.Ioi + theorem Set.Ioi_def + theorem Set.Ioi_diff_Ici + theorem Set.Ioi_diff_Ioi + theorem Set.Ioi_inj + theorem Set.Ioi_injective + theorem Set.Ioi_insert + theorem Set.Ioi_inter_Iic + theorem Set.Ioi_inter_Iio + theorem Set.Ioi_inter_Ioi + theorem Set.Ioi_ssubset_Ici_self + theorem Set.Ioi_subset_Ici + theorem Set.Ioi_subset_Ici_iff + theorem Set.Ioi_subset_Ici_self + theorem Set.Ioi_subset_Ioc_union_Ici + theorem Set.Ioi_subset_Ioc_union_Ioi + theorem Set.Ioi_subset_Ioi + theorem Set.Ioi_subset_Ioi_iff + theorem Set.Ioi_subset_Ioo_union_Ici + theorem Set.Ioi_top + theorem Set.Ioi_union_left + def Set.Ioo + theorem Set.Ioo_def + theorem Set.Ioo_eq_empty + theorem Set.Ioo_eq_empty_iff + theorem Set.Ioo_eq_empty_of_le + theorem Set.Ioo_insert_left + theorem Set.Ioo_insert_right + theorem Set.Ioo_inter_Ioc_of_left_le + theorem Set.Ioo_inter_Ioc_of_right_lt + theorem Set.Ioo_inter_Ioo + theorem Set.Ioo_self + theorem Set.Ioo_subset_Icc_self + theorem Set.Ioo_subset_Ico_self + theorem Set.Ioo_subset_Iio_self + theorem Set.Ioo_subset_Ioc_self + theorem Set.Ioo_subset_Ioc_union_Ico + theorem Set.Ioo_subset_Ioc_union_Ioo + theorem Set.Ioo_subset_Ioi_self + theorem Set.Ioo_subset_Ioo + theorem Set.Ioo_subset_Ioo_iff + theorem Set.Ioo_subset_Ioo_left + theorem Set.Ioo_subset_Ioo_right + theorem Set.Ioo_subset_Ioo_union_Ico + theorem Set.Ioo_union_Icc_eq_Ioc + theorem Set.Ioo_union_Ici_eq_Ioi + theorem Set.Ioo_union_Ico_eq_Ioo + theorem Set.Ioo_union_Ioi' + theorem Set.Ioo_union_Ioi + theorem Set.Ioo_union_Ioo' + theorem Set.Ioo_union_Ioo + theorem Set.Ioo_union_left + theorem Set.Ioo_union_right + theorem Set.compl_Ici + theorem Set.compl_Iic + theorem Set.compl_Iio + theorem Set.compl_Ioi + theorem Set.dual_Icc + theorem Set.dual_Ici + theorem Set.dual_Ico + theorem Set.dual_Iic + theorem Set.dual_Iio + theorem Set.dual_Ioc + theorem Set.dual_Ioi + theorem Set.dual_Ioo + theorem Set.eq_endpoints_or_mem_Ioo_of_mem_Icc + theorem Set.eq_left_or_mem_Ioo_of_mem_Ico + theorem Set.eq_right_or_mem_Ioo_of_mem_Ioc + theorem Set.left_mem_Icc + theorem Set.left_mem_Ici + theorem Set.left_mem_Ico + theorem Set.left_mem_Ioc + theorem Set.left_mem_Ioo + theorem Set.mem_Icc + theorem Set.mem_Icc_Ico_Ioc_Ioo_of_subset_of_subset + theorem Set.mem_Icc_of_Ico + theorem Set.mem_Icc_of_Ioc + theorem Set.mem_Icc_of_Ioo + theorem Set.mem_Ici + theorem Set.mem_Ici_Ioi_of_subset_of_subset + theorem Set.mem_Ici_of_Ioi + theorem Set.mem_Ico + theorem Set.mem_Ico_of_Ioo + theorem Set.mem_Iic + theorem Set.mem_Iic_Iio_of_subset_of_subset + theorem Set.mem_Iic_of_Iio + theorem Set.mem_Iio + theorem Set.mem_Ioc + theorem Set.mem_Ioc_of_Ioo + theorem Set.mem_Ioi + theorem Set.mem_Ioo + theorem Set.nonempty_Icc + theorem Set.nonempty_Icc_subtype + theorem Set.nonempty_Ici + theorem Set.nonempty_Ico + theorem Set.nonempty_Ico_subtype + theorem Set.nonempty_Iic + theorem Set.nonempty_Iio + theorem Set.nonempty_Ioc + theorem Set.nonempty_Ioc_subtype + theorem Set.nonempty_Ioi + theorem Set.nonempty_Ioo + theorem Set.nonempty_Ioo_subtype + theorem Set.not_mem_Icc_of_gt + theorem Set.not_mem_Icc_of_lt + theorem Set.not_mem_Ici + theorem Set.not_mem_Ico_of_ge + theorem Set.not_mem_Ico_of_lt + theorem Set.not_mem_Iic + theorem Set.not_mem_Iio + theorem Set.not_mem_Iio_self + theorem Set.not_mem_Ioc_of_gt + theorem Set.not_mem_Ioc_of_le + theorem Set.not_mem_Ioi + theorem Set.not_mem_Ioi_self + theorem Set.not_mem_Ioo_of_ge + theorem Set.not_mem_Ioo_of_le + theorem Set.right_mem_Icc + theorem Set.right_mem_Ico + theorem Set.right_mem_Iic + theorem Set.right_mem_Ioc + theorem Set.right_mem_Ioo Modified Mathlib/Order/MinMax.lean 2022-12-15 04:45:56 fd6ea18 feat: port Data.Set.Function (#1035) mathlib3 SHA: 198161d833f2c01498c39c266b0b3dbe2c7a8c07 porting notes: 1. There are just a few declarations that need fixing still 2. This was mostly fine, primarily tedious. One place I had to give an ugly workaround to avoid using `lift` since we don't have that yet. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Data/Set/Function.lean + theorem AntitoneOn.congr + theorem AntitoneOn.mono + theorem Function.Injective.comp_injOn + theorem Function.Injective.injOn_range + theorem Function.LeftInverse.leftInvOn + theorem Function.LeftInverse.rightInvOn_range + theorem Function.RightInverse.rightInvOn + theorem Function.Semiconj.bijOn_image + theorem Function.Semiconj.bijOn_range + theorem Function.Semiconj.injOn_image + theorem Function.Semiconj.injOn_preimage + theorem Function.Semiconj.injOn_range + theorem Function.Semiconj.mapsTo_image + theorem Function.Semiconj.mapsTo_preimage + theorem Function.Semiconj.mapsTo_range + theorem Function.Semiconj.surjOn_image + theorem Function.Semiconj.surjOn_range + theorem Function.Surjective.surjOn + theorem Function.insert_injOn + theorem Function.invFunOn_apply_eq + theorem Function.invFunOn_apply_mem + theorem Function.invFunOn_eq + theorem Function.invFunOn_mem + theorem Function.invFunOn_neg + theorem Function.invFunOn_pos + theorem Function.update_comp_eq_of_not_mem_range' + theorem Function.update_comp_eq_of_not_mem_range + theorem MonotoneOn.congr + theorem MonotoneOn.mono + theorem Set.BijOn.bijective + theorem Set.BijOn.comp + theorem Set.BijOn.compl + theorem Set.BijOn.congr + theorem Set.BijOn.image_eq + theorem Set.BijOn.injOn + theorem Set.BijOn.inter + theorem Set.BijOn.inter_mapsTo + theorem Set.BijOn.invOn_invFunOn + theorem Set.BijOn.mapsTo + theorem Set.BijOn.mk + theorem Set.BijOn.subset_range + theorem Set.BijOn.surjOn + theorem Set.BijOn.union + def Set.BijOn + theorem Set.EqOn.bijOn_iff + theorem Set.EqOn.cancel_left + theorem Set.EqOn.cancel_right + theorem Set.EqOn.comp_left + theorem Set.EqOn.comp_right + theorem Set.EqOn.congr_antitoneOn + theorem Set.EqOn.congr_monotoneOn + theorem Set.EqOn.congr_strictAntiOn + theorem Set.EqOn.congr_strictMonoOn + theorem Set.EqOn.image_eq + theorem Set.EqOn.injOn_iff + theorem Set.EqOn.inter_preimage_eq + theorem Set.EqOn.mapsTo_iff + theorem Set.EqOn.mono + theorem Set.EqOn.piecewise_ite' + theorem Set.EqOn.piecewise_ite + theorem Set.EqOn.surjOn_iff + theorem Set.EqOn.symm + theorem Set.EqOn.trans + theorem Set.EqOn.union + def Set.EqOn + theorem Set.InjOn.bijOn_image + theorem Set.InjOn.cancel_left + theorem Set.InjOn.comp + theorem Set.InjOn.congr + theorem Set.InjOn.eq_iff + theorem Set.InjOn.invFunOn_image + theorem Set.InjOn.leftInvOn_invFunOn + theorem Set.InjOn.mem_image_iff + theorem Set.InjOn.mem_of_mem_image + theorem Set.InjOn.mono + theorem Set.InjOn.ne_iff + theorem Set.InjOn.preimage_image_inter + theorem Set.InjOn.rightInvOn_of_leftInvOn + def Set.InjOn + theorem Set.InvOn.bijOn + theorem Set.InvOn.mono + theorem Set.InvOn.symm + def Set.InvOn + theorem Set.LeftInvOn.comp + theorem Set.LeftInvOn.congr_left + theorem Set.LeftInvOn.congr_right + theorem Set.LeftInvOn.eq + theorem Set.LeftInvOn.eqOn + theorem Set.LeftInvOn.image_image' + theorem Set.LeftInvOn.image_image + theorem Set.LeftInvOn.image_inter' + theorem Set.LeftInvOn.image_inter + theorem Set.LeftInvOn.injOn + theorem Set.LeftInvOn.mapsTo + theorem Set.LeftInvOn.mono + theorem Set.LeftInvOn.rightInvOn_image + theorem Set.LeftInvOn.surjOn + def Set.LeftInvOn + theorem Set.MapsTo.coe_restrict + theorem Set.MapsTo.comp + theorem Set.MapsTo.congr + theorem Set.MapsTo.image_subset + theorem Set.MapsTo.inter + theorem Set.MapsTo.inter_bijOn + theorem Set.MapsTo.inter_inter + theorem Set.MapsTo.iterate + theorem Set.MapsTo.iterate_restrict + theorem Set.MapsTo.mem_iff + theorem Set.MapsTo.mono + theorem Set.MapsTo.mono_left + theorem Set.MapsTo.mono_right + theorem Set.MapsTo.piecewise_ite + theorem Set.MapsTo.range_restrict + def Set.MapsTo.restrict + theorem Set.MapsTo.restrict_eq_codRestrict + theorem Set.MapsTo.restrict_inj + theorem Set.MapsTo.subset_preimage + theorem Set.MapsTo.surjOn_compl + theorem Set.MapsTo.union + theorem Set.MapsTo.union_union + theorem Set.MapsTo.val_restrict_apply + def Set.MapsTo + theorem Set.RightInvOn.comp + theorem Set.RightInvOn.congr_left + theorem Set.RightInvOn.congr_right + theorem Set.RightInvOn.eq + theorem Set.RightInvOn.eqOn + theorem Set.RightInvOn.mapsTo + theorem Set.RightInvOn.mono + theorem Set.RightInvOn.surjOn + def Set.RightInvOn + theorem Set.Subsingleton.injOn + theorem Set.SurjOn.bijOn_subset + theorem Set.SurjOn.cancel_right + theorem Set.SurjOn.comap_nonempty + theorem Set.SurjOn.comp + theorem Set.SurjOn.congr + theorem Set.SurjOn.image_eq_of_mapsTo + theorem Set.SurjOn.inter + theorem Set.SurjOn.inter_inter + theorem Set.SurjOn.invOn_invFunOn + theorem Set.SurjOn.leftInvOn_of_rightInvOn + theorem Set.SurjOn.mapsTo_compl + theorem Set.SurjOn.mapsTo_invFunOn + theorem Set.SurjOn.mono + theorem Set.SurjOn.rightInvOn_invFunOn + theorem Set.SurjOn.subset_range + theorem Set.SurjOn.union + theorem Set.SurjOn.union_union + def Set.SurjOn + theorem Set.apply_piecewise + theorem Set.apply_piecewise₂ + theorem Set.bijOn_empty + theorem Set.bijective_iff_bijOn_univ + def Set.codRestrict + theorem Set.codRestrict_restrict + theorem Set.eqOn_comm + theorem Set.eqOn_comp_right_iff + theorem Set.eqOn_empty + theorem Set.eqOn_of_leftInvOn_of_rightInvOn + theorem Set.eqOn_piecewise + theorem Set.eqOn_range + theorem Set.eqOn_refl + theorem Set.eqOn_union + theorem Set.eq_restrict_iff + theorem Set.exists_injOn_iff_injective + theorem Set.image_eq_iff_surjOn_mapsTo + theorem Set.image_restrict + theorem Set.injOn_empty + theorem Set.injOn_iff_injective + theorem Set.injOn_insert + theorem Set.injOn_of_injective + theorem Set.injOn_preimage + theorem Set.injOn_singleton + theorem Set.injOn_union + theorem Set.injective_codRestrict + theorem Set.injective_iff_injOn_univ + theorem Set.injective_piecewise_iff + theorem Set.le_piecewise + theorem Set.mapsTo' + theorem Set.mapsTo_empty + theorem Set.mapsTo_id + theorem Set.mapsTo_iff_exists_map_subtype + theorem Set.mapsTo_image + theorem Set.mapsTo_inter + theorem Set.mapsTo_preimage + theorem Set.mapsTo_range + theorem Set.mapsTo_singleton + theorem Set.mapsTo_union + theorem Set.mapsTo_univ + theorem Set.maps_image_to + theorem Set.maps_range_to + theorem Set.maps_univ_to + theorem Set.pi_piecewise + theorem Set.piecewise_compl + theorem Set.piecewise_empty + theorem Set.piecewise_eqOn + theorem Set.piecewise_eqOn_compl + theorem Set.piecewise_eq_of_mem + theorem Set.piecewise_eq_of_not_mem + theorem Set.piecewise_insert + theorem Set.piecewise_insert_of_ne + theorem Set.piecewise_insert_self + theorem Set.piecewise_le + theorem Set.piecewise_le_piecewise + theorem Set.piecewise_mem_pi + theorem Set.piecewise_op + theorem Set.piecewise_op₂ + theorem Set.piecewise_preimage + theorem Set.piecewise_range_comp + theorem Set.piecewise_same + theorem Set.piecewise_singleton + theorem Set.piecewise_univ + theorem Set.preimage_invFun_of_mem + theorem Set.preimage_invFun_of_not_mem + theorem Set.range_extend + theorem Set.range_extend_subset + theorem Set.range_piecewise + theorem Set.range_restrict + theorem Set.range_restrictPreimage + def Set.restrict + def Set.restrictPreimage + theorem Set.restrict_apply + theorem Set.restrict_comp_codRestrict + theorem Set.restrict_dite + theorem Set.restrict_dite_compl + theorem Set.restrict_eq + theorem Set.restrict_eq_iff + theorem Set.restrict_eq_restrict_iff + theorem Set.restrict_extend_compl_range + theorem Set.restrict_extend_range + theorem Set.restrict_ite + theorem Set.restrict_ite_compl + theorem Set.restrict_piecewise + theorem Set.restrict_piecewise_compl + theorem Set.surjOn_empty + theorem Set.surjOn_iff_exists_bijOn_subset + theorem Set.surjOn_iff_exists_map_subtype + theorem Set.surjOn_iff_surjective + theorem Set.surjOn_image + theorem Set.surjective_iff_surjOn_univ + theorem Set.surjective_mapsTo_image_restrict + theorem Set.univ_pi_piecewise + theorem Set.val_codRestrict_apply + theorem StrictAntiOn.comp + theorem StrictAntiOn.comp_strictMonoOn + theorem StrictAntiOn.congr + theorem StrictAntiOn.injOn + theorem StrictAntiOn.mono + theorem StrictMono.codRestrict + theorem StrictMonoOn.comp + theorem StrictMonoOn.comp_strictAntiOn + theorem StrictMonoOn.congr + theorem StrictMonoOn.injOn + theorem StrictMonoOn.mono + theorem strictMono_restrict 2022-12-14 23:20:04 d37e4a6 feat port: Data.Int.CharZero (#1029) ee0c179cd3c8a45aa5bffbf1b41d8dbede452865 ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Data/Int/CharZero.lean + theorem Int.cast_div_charZero + theorem Int.cast_eq_zero + theorem Int.cast_inj + theorem Int.cast_injective + theorem Int.cast_ne_zero + theorem RingHom.injective_int 2022-12-14 23:20:03 5122e3c feat: initialize_simps_projections has better tracing, hovers and jump-to-definition (#1025) * `initialize_simps_projections` now prints all tracing messages (with `?` or `trace.simps.debug`) as `MessageData` instead of `Format`, making it much more readable * Add hovers and jump-to-definition over most arguments to `initialize_simps_projections` - They work for the structure name and all custom simps projections - other arguments also have hovers, but no jump-to-definition (since in general they are generally compositions of projections, and even if it is a single projection, it's eta-expanded, so it doesn't do jump-to-definition). ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Lean/Message.lean Modified Mathlib/Tactic/Simps/Basic.lean + structure ProjectionRule +/- def getCompositeOfProjections 2022-12-14 23:20:02 922a88c feat port: Order.InitialSeg (#1012) ee0c179cd3c8a45aa5bffbf1b41d8dbede452865 ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Order/InitialSeg.lean + theorem InitialSeg.Antisymm.aux + def InitialSeg.antisymm + theorem InitialSeg.antisymm_symm + theorem InitialSeg.antisymm_to_fun + def InitialSeg.codRestrict + theorem InitialSeg.cod_restrict_apply + theorem InitialSeg.coe_coe_fn + theorem InitialSeg.eq_or_principal + theorem InitialSeg.init' + theorem InitialSeg.init_iff + def InitialSeg.leAdd + theorem InitialSeg.leAdd_apply + theorem InitialSeg.le_lt_apply + theorem InitialSeg.lt_or_eq_apply_left + theorem InitialSeg.lt_or_eq_apply_right + def InitialSeg.ofIsEmpty + def InitialSeg.ofIso + theorem InitialSeg.refl_apply + theorem InitialSeg.trans_apply + theorem InitialSeg.unique_of_trichotomous_of_irrefl + structure InitialSeg + def PrincipalSeg.codRestrict + theorem PrincipalSeg.cod_restrict_apply + theorem PrincipalSeg.cod_restrict_top + theorem PrincipalSeg.coe_coe_fn' + theorem PrincipalSeg.coe_fn_mk + theorem PrincipalSeg.down + def PrincipalSeg.equivLt + theorem PrincipalSeg.equiv_lt_apply + theorem PrincipalSeg.equiv_lt_top + theorem PrincipalSeg.init + theorem PrincipalSeg.init_iff + theorem PrincipalSeg.irrefl + def PrincipalSeg.ltEquiv + def PrincipalSeg.ltLe + theorem PrincipalSeg.lt_le_apply + theorem PrincipalSeg.lt_le_top + theorem PrincipalSeg.lt_top + def PrincipalSeg.ofElement + def PrincipalSeg.ofIsEmpty + theorem PrincipalSeg.of_element_apply + theorem PrincipalSeg.of_element_top + theorem PrincipalSeg.of_is_empty_top + def PrincipalSeg.pemptyToPunit + theorem PrincipalSeg.topLtTop + theorem PrincipalSeg.top_eq + theorem PrincipalSeg.trans_apply + theorem PrincipalSeg.trans_top + structure PrincipalSeg + theorem RelEmbedding.collapseF.lt + theorem RelEmbedding.collapseF.not_lt + theorem RelEmbedding.collapse_apply 2022-12-14 23:02:55 e8fa7b2 fix: initialize simps for FunLike structures (#1014) Because coercions and bundling has changed, we have to give all simps projections of all `FunLike` structures manually for now (#1013). Fixes linting issues in #977 ESTIMATED CHANGES Modified Mathlib/Algebra/Hom/Group.lean + def MonoidHom.Simps.apply + def MonoidWithZeroHom.Simps.apply + def MulHom.Simps.apply + def OneHom.Simps.apply Modified Mathlib/Algebra/Hom/Ring.lean + def NonUnitalRingHom.Simps.apply + def RingHom.Simps.apply Modified Mathlib/Order/Hom/Basic.lean + def OrderHom.Simps.coe Modified Mathlib/Order/RelIso/Basic.lean + def RelHom.Simps.apply 2022-12-14 16:48:47 657f1bb feat port: Algebra.Order.Group.Prod (#1026) ee0c179cd3c8a45aa5bffbf1b41d8dbede452865 ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Order/Group/Prod.lean 2022-12-14 16:48:46 a5d78c3 feat: port Data.Set.Prod (#1004) fc2ed6f838ce7c9b7c7171e58d78eaf7b438fb0e - [x] depends on: #1000 ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Data/Set/Prod.lean + theorem Antitone.set_prod + theorem AntitoneOn.set_prod + theorem Monotone.set_prod + theorem MonotoneOn.set_prod + theorem Set.Nonempty.fst + theorem Set.Nonempty.prod + theorem Set.Nonempty.snd + theorem Set.diag_preimage_prod + theorem Set.diag_preimage_prod_self + def Set.diagonal + theorem Set.disjoint_diagonal_offDiag + theorem Set.disjoint_prod + theorem Set.disjoint_univ_pi + theorem Set.empty_pi + theorem Set.empty_prod + theorem Set.eval_image_pi + theorem Set.eval_image_pi_subset + theorem Set.eval_image_univ_pi + theorem Set.eval_image_univ_pi_subset + theorem Set.eval_preimage' + theorem Set.eval_preimage + theorem Set.exists_prod_set + theorem Set.forall_prod_set + theorem Set.fst_image_prod + theorem Set.fst_image_prod_subset + theorem Set.image2_curry + theorem Set.image2_mk_eq_prod + theorem Set.image_prod + theorem Set.image_prod_mk_subset_prod + theorem Set.image_prod_mk_subset_prod_left + theorem Set.image_prod_mk_subset_prod_right + theorem Set.image_swap_prod + theorem Set.image_uncurry_prod + theorem Set.insert_pi + theorem Set.insert_prod + theorem Set.inter_prod + theorem Set.mem_diagonal + theorem Set.mem_diagonal_iff + theorem Set.mem_offDiag + theorem Set.mem_pi + theorem Set.mem_prod + theorem Set.mem_prod_eq + theorem Set.mem_univ_pi + theorem Set.mk_mem_prod + theorem Set.mk_preimage_prod + theorem Set.mk_preimage_prod_left + theorem Set.mk_preimage_prod_left_eq_empty + theorem Set.mk_preimage_prod_left_eq_if + theorem Set.mk_preimage_prod_left_fn_eq_if + theorem Set.mk_preimage_prod_right + theorem Set.mk_preimage_prod_right_eq_empty + theorem Set.mk_preimage_prod_right_eq_if + theorem Set.mk_preimage_prod_right_fn_eq_if + def Set.offDiag + theorem Set.offDiag_empty + theorem Set.offDiag_eq_empty + theorem Set.offDiag_eq_sep_prod + theorem Set.offDiag_insert + theorem Set.offDiag_inter + theorem Set.offDiag_mono + theorem Set.offDiag_nonempty + theorem Set.offDiag_singleton + theorem Set.offDiag_subset_prod + theorem Set.offDiag_union + theorem Set.offDiag_univ + def Set.pi + theorem Set.pi_congr + theorem Set.pi_eq_empty + theorem Set.pi_eq_empty_iff + theorem Set.pi_if + theorem Set.pi_inter_compl + theorem Set.pi_inter_distrib + theorem Set.pi_mono + theorem Set.pi_nonempty_iff + theorem Set.pi_subset_pi_iff + theorem Set.pi_univ + theorem Set.pi_update_of_mem + theorem Set.pi_update_of_not_mem + theorem Set.preimage_coe_coe_diagonal + theorem Set.preimage_pi + theorem Set.preimage_prod_map_prod + theorem Set.preimage_swap_prod + def Set.prod + theorem Set.prod_diff_prod + theorem Set.prod_empty + theorem Set.prod_eq + theorem Set.prod_eq_empty_iff + theorem Set.prod_eq_iff_eq + theorem Set.prod_eq_prod_iff + theorem Set.prod_eq_prod_iff_of_nonempty + theorem Set.prod_image_image_eq + theorem Set.prod_insert + theorem Set.prod_inter + theorem Set.prod_inter_prod + theorem Set.prod_mk_mem_set_prod_eq + theorem Set.prod_mono + theorem Set.prod_mono_left + theorem Set.prod_mono_right + theorem Set.prod_nonempty_iff + theorem Set.prod_preimage_eq + theorem Set.prod_preimage_left + theorem Set.prod_preimage_right + theorem Set.prod_range_range_eq + theorem Set.prod_range_univ_eq + theorem Set.prod_sdiff_diagonal + theorem Set.prod_self_ssubset_prod_self + theorem Set.prod_self_subset_prod_self + theorem Set.prod_singleton + theorem Set.prod_sub_preimage_iff + theorem Set.prod_subset_compl_diagonal_iff_disjoint + theorem Set.prod_subset_iff + theorem Set.prod_subset_preimage_fst + theorem Set.prod_subset_preimage_snd + theorem Set.prod_subset_prod_iff + theorem Set.prod_union + theorem Set.prod_univ + theorem Set.prod_univ_range_eq + theorem Set.range_dcomp + theorem Set.range_diag + theorem Set.range_pair_subset + theorem Set.range_prod_map + theorem Set.singleton_pi' + theorem Set.singleton_pi + theorem Set.singleton_prod + theorem Set.singleton_prod_singleton + theorem Set.snd_image_prod + theorem Set.snd_image_prod_subset + theorem Set.subset_eval_image_pi + theorem Set.subset_pi_eval_image + theorem Set.union_pi + theorem Set.union_prod + theorem Set.univ_pi_empty + theorem Set.univ_pi_eq_empty + theorem Set.univ_pi_eq_empty_iff + theorem Set.univ_pi_ite + theorem Set.univ_pi_nonempty_iff + theorem Set.univ_pi_singleton + theorem Set.univ_pi_subset_univ_pi_iff + theorem Set.univ_pi_update + theorem Set.univ_pi_update_univ + theorem Set.univ_prod + theorem Set.univ_prod_univ + theorem Set.update_preimage_pi + theorem Set.update_preimage_univ_pi 2022-12-14 16:48:45 4f850b6 feat: port Data.SetLike.Basic (#993) mathlib3 SHA: fc2ed6f838ce7c9b7c7171e58d78eaf7b438fb0e porting notes: 1. on `SetLike.exists` and `SetLike.forall`, the statement had to be massaged from `∃ x ∈ p, q ⟨x, ‹_›⟩` to `∃ (x : B) (h : x ∈ p), q ⟨x, ‹_›⟩`. Is this a bug? Answer: No, this is because `∃ x ∈ p` is now sugar for `∃ x, x ∈ p ∧ ...` instead of `∃ x, ∃ (h : x ∈ p), ...` 2. some lemmas were tagged with `@[mono]` but we don't have this attribute yet. I removed them but left porting notes with "TODO" to add them back. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Data/SetLike/Basic.lean + theorem SetLike.coe_eq_coe + theorem SetLike.coe_injective + theorem SetLike.coe_mem + theorem SetLike.coe_mono + theorem SetLike.coe_set_eq + theorem SetLike.coe_sort_coe + theorem SetLike.coe_ssubset_coe + theorem SetLike.coe_strictMono + theorem SetLike.coe_subset_coe + theorem SetLike.exists_of_lt + theorem SetLike.ext' + theorem SetLike.ext'_iff + theorem SetLike.ext + theorem SetLike.ext_iff + theorem SetLike.le_def + theorem SetLike.lt_iff_le_and_exists + theorem SetLike.mem_coe + theorem SetLike.not_le_iff_exists 2022-12-14 16:33:21 4952d78 feat port: Algebra.Order.Monoid.ToMulBot (#1024) ee0c179cd3c8a45aa5bffbf1b41d8dbede452865 ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Order/Monoid/ToMulBot.lean + def WithZero.toMulBot + theorem WithZero.toMulBot_coe + theorem WithZero.toMulBot_coe_of_add + theorem WithZero.toMulBot_le + theorem WithZero.toMulBot_lt + theorem WithZero.toMulBot_strictMono + theorem WithZero.toMulBot_symm_bot + theorem WithZero.toMulBot_zero 2022-12-14 15:48:21 f54c7ad fix: ldecl.isAuxDecl -> ldecl.isImplementationDetail in CasesM (#1028) Followup to https://github.com/leanprover-community/mathlib4/pull/991. See @JLimperg's comment https://github.com/leanprover-community/mathlib4/pull/991#issuecomment-1350805571 ESTIMATED CHANGES Modified Mathlib/Tactic/CasesM.lean 2022-12-14 15:48:20 1095dff chore Data.Nat.Cast.Prod change names (#1027) ESTIMATED CHANGES Modified Mathlib/Data/Nat/Cast/Prod.lean + theorem Prod.fst_natCast - theorem Prod.fst_nat_cast + theorem Prod.snd_natCast - theorem Prod.snd_nat_cast 2022-12-14 15:48:19 2d12265 feat port: Logic.Equiv.Embedding (#1021) ee0c179cd3c8a45aa5bffbf1b41d8dbede452865 ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Logic/Equiv/Embedding.lean + def Equiv.codRestrict + def Equiv.prodEmbeddingDisjointEquivSigmaEmbeddingRestricted + def Equiv.sumEmbeddingEquivProdEmbeddingDisjoint + def Equiv.sumEmbeddingEquivSigmaEmbeddingRestricted + def Equiv.uniqueEmbeddingEquivResult 2022-12-14 15:48:18 d70b81e feat port: Data.Nat.Upto (#1020) ee0c179cd3c8a45aa5bffbf1b41d8dbede452865 ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Data/Nat/Upto.lean + def Nat.Upto.succ + def Nat.Upto.zero + def Nat.Upto 2022-12-14 15:48:17 49c4ff2 feat port: Data.Nat.Cast.WithTop (#1019) ee0c179cd3c8a45aa5bffbf1b41d8dbede452865 ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Data/Nat/Cast/WithTop.lean + theorem Nat.cast_withBot + theorem Nat.cast_withTop 2022-12-14 15:48:16 2f08912 feat port: Algebra.Order.Field.Canonical.Basic (#1018) ee0c179cd3c8a45aa5bffbf1b41d8dbede452865 ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Order/Field/Canonical/Basic.lean + theorem tsub_div 2022-12-14 15:48:15 ef428bf feat port: Algebra.Order.Field.InjSurj (#1017) ee0c179cd3c8a45aa5bffbf1b41d8dbede452865 ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Order/Field/InjSurj.lean + def Function.Injective.linearOrderedField + def Function.Injective.linearOrderedSemifield 2022-12-14 15:48:14 61138ea feat port: Data.Int.Cast.Field (#1016) ee0c179cd3c8a45aa5bffbf1b41d8dbede452865 ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Data/Int/Cast/Field.lean + theorem Int.cast_div + theorem Int.cast_neg_natCast 2022-12-14 15:16:35 a53699a feat port: Data.Int.Cast.Prod (#1015) ee0c179cd3c8a45aa5bffbf1b41d8dbede452865 ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Data/Int/Cast/Prod.lean + theorem Prod.fst_intCast + theorem Prod.snd_intCast 2022-12-14 13:46:42 2d46f7b feat port: RingTheory.Coprime.Basic (#899) a95b16cbade0f938fc24abd05412bde1e84bab9b Turns out there are actually some more imports needed to port this file which were imported via `tactic.ring` in Lean3. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/RingTheory/Coprime/Basic.lean + theorem IsCoprime.add_mul_left_left + theorem IsCoprime.add_mul_left_left_iff + theorem IsCoprime.add_mul_left_right + theorem IsCoprime.add_mul_left_right_iff + theorem IsCoprime.add_mul_right_left + theorem IsCoprime.add_mul_right_left_iff + theorem IsCoprime.add_mul_right_right + theorem IsCoprime.add_mul_right_right_iff + theorem IsCoprime.dvd_of_dvd_mul_left + theorem IsCoprime.dvd_of_dvd_mul_right + theorem IsCoprime.is_unit_of_dvd' + theorem IsCoprime.is_unit_of_dvd + theorem IsCoprime.map + theorem IsCoprime.mul_add_left_left + theorem IsCoprime.mul_add_left_left_iff + theorem IsCoprime.mul_add_left_right + theorem IsCoprime.mul_add_left_right_iff + theorem IsCoprime.mul_add_right_left + theorem IsCoprime.mul_add_right_left_iff + theorem IsCoprime.mul_add_right_right + theorem IsCoprime.mul_add_right_right_iff + theorem IsCoprime.mul_dvd + theorem IsCoprime.mul_left + theorem IsCoprime.mul_left_iff + theorem IsCoprime.mul_right + theorem IsCoprime.mul_right_iff + theorem IsCoprime.ne_zero + theorem IsCoprime.neg_left + theorem IsCoprime.neg_left_iff + theorem IsCoprime.neg_neg + theorem IsCoprime.neg_neg_iff + theorem IsCoprime.neg_right + theorem IsCoprime.neg_right_iff + theorem IsCoprime.of_add_mul_left_left + theorem IsCoprime.of_add_mul_left_right + theorem IsCoprime.of_add_mul_right_left + theorem IsCoprime.of_add_mul_right_right + theorem IsCoprime.of_isCoprime_of_dvd_left + theorem IsCoprime.of_isCoprime_of_dvd_right + theorem IsCoprime.of_mul_add_left_left + theorem IsCoprime.of_mul_add_left_right + theorem IsCoprime.of_mul_add_right_left + theorem IsCoprime.of_mul_add_right_right + theorem IsCoprime.of_mul_left_left + theorem IsCoprime.of_mul_left_right + theorem IsCoprime.of_mul_right_left + theorem IsCoprime.of_mul_right_right + theorem IsCoprime.sq_add_sq_ne_zero + theorem IsCoprime.symm + def IsCoprime + theorem isCoprime_comm + theorem isCoprime_group_smul + theorem isCoprime_group_smul_left + theorem isCoprime_group_smul_right + theorem isCoprime_mul_unit_left + theorem isCoprime_mul_unit_left_left + theorem isCoprime_mul_unit_left_right + theorem isCoprime_mul_unit_right + theorem isCoprime_mul_unit_right_left + theorem isCoprime_mul_unit_right_right + theorem isCoprime_one_left + theorem isCoprime_one_right + theorem isCoprime_self + theorem isCoprime_zero_left + theorem isCoprime_zero_right + theorem not_isCoprime_zero_zero 2022-12-14 13:31:33 18fa17a feat port: Data.PEquiv (#1008) ee0c179cd3c8a45aa5bffbf1b41d8dbede452865 ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Data/PEquiv.lean + def Equiv.toPEquiv + theorem Equiv.toPEquiv_apply + theorem Equiv.toPEquiv_refl + theorem Equiv.toPEquiv_symm + theorem Equiv.toPEquiv_trans + theorem PEquiv.bot_apply + theorem PEquiv.bot_trans + theorem PEquiv.coe_mk_apply + theorem PEquiv.eq_some_iff + theorem PEquiv.ext + theorem PEquiv.ext_iff + theorem PEquiv.injective_of_forall_is_some + theorem PEquiv.injective_of_forall_ne_isSome + theorem PEquiv.is_some_symm_get + theorem PEquiv.le_def + theorem PEquiv.mem_iff_mem + theorem PEquiv.mem_ofSet_iff + theorem PEquiv.mem_ofSet_self_iff + theorem PEquiv.mem_single + theorem PEquiv.mem_single_iff + theorem PEquiv.mem_trans + def PEquiv.ofSet + theorem PEquiv.ofSet_eq_refl + theorem PEquiv.ofSet_eq_some_iff + theorem PEquiv.ofSet_eq_some_self_iff + theorem PEquiv.ofSet_symm + theorem PEquiv.ofSet_univ + theorem PEquiv.refl_apply + theorem PEquiv.refl_trans + theorem PEquiv.self_trans_symm + def PEquiv.single + theorem PEquiv.single_apply + theorem PEquiv.single_apply_of_ne + theorem PEquiv.single_subsingleton_eq_refl + theorem PEquiv.single_trans_of_eq_none + theorem PEquiv.single_trans_of_mem + theorem PEquiv.single_trans_single + theorem PEquiv.single_trans_single_of_ne + theorem PEquiv.symm_bot + theorem PEquiv.symm_injective + theorem PEquiv.symm_refl + theorem PEquiv.symm_single + theorem PEquiv.symm_symm + theorem PEquiv.symm_trans_rev + theorem PEquiv.symm_trans_self + theorem PEquiv.trans_assoc + theorem PEquiv.trans_bot + theorem PEquiv.trans_eq_none + theorem PEquiv.trans_eq_some + theorem PEquiv.trans_refl + theorem PEquiv.trans_single_of_eq_none + theorem PEquiv.trans_single_of_mem + theorem PEquiv.trans_symm_eq_iff_forall_is_some + structure PEquiv 2022-12-14 13:04:11 1353368 feat port: Data.Int.Div (#1011) ee0c179cd3c8a45aa5bffbf1b41d8dbede452865 ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Data/Int/Div.lean + theorem Int.eq_mul_div_of_mul_eq_mul_of_dvd_left + theorem Int.eq_of_mod_eq_of_nat_abs_sub_lt_nat_abs + theorem Int.eq_zero_of_dvd_of_natAbs_lt_natAbs + theorem Int.eq_zero_of_dvd_of_nonneg_of_lt + theorem Int.nat_abs_le_of_dvd_ne_zero + theorem Int.ofNat_add_negSucc_of_ge 2022-12-14 13:04:10 17b6dc1 feat port: Data.Nat.Cast.Prod (#1010) ee0c179cd3c8a45aa5bffbf1b41d8dbede452865 ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Data/Nat/Cast/Prod.lean + theorem Prod.fst_nat_cast + theorem Prod.snd_nat_cast 2022-12-14 12:46:45 a0054db feat: update mathlib mod-tac-stx 2022-12-01 (#992) This adds all the changes to tactic syntax that have happened in the period [2022-11-01 thru 2022-12-01](https://github.com/leanprover-community/mathlib/pulls?q=is%3Apr+closed%3A2022-11-01..2022-12-01+label%3Amodifies-tactic-syntax). ESTIMATED CHANGES Modified Mathlib/Data/Stream/Defs.lean Modified Mathlib/Mathport/Syntax.lean Modified scripts/nolints.json 2022-12-14 12:30:40 5c6a9da feat: port Data.Int.Cast.Lemmas (#995) fc2ed6f838ce7c9b7c7171e58d78eaf7b438fb0e ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/GroupPower/Lemmas.lean Deleted Mathlib/Data/Int/Cast.lean - theorem Int.cast_mul Modified Mathlib/Data/Int/Cast/Basic.lean Added Mathlib/Data/Int/Cast/Lemmas.lean + theorem AddMonoidHom.eq_int_cast_hom + theorem AddMonoidHom.ext_int + def Int.castAddHom + def Int.castRingHom + theorem Int.cast_abs + theorem Int.cast_add_hom_int + theorem Int.cast_comm + theorem Int.cast_commute + theorem Int.cast_ite + theorem Int.cast_le + theorem Int.cast_le_neg_one_of_neg + theorem Int.cast_le_neg_one_or_one_le_cast_of_ne_zero + theorem Int.cast_lt + theorem Int.cast_lt_zero + theorem Int.cast_max + theorem Int.cast_min + theorem Int.cast_mono + theorem Int.cast_mul + theorem Int.cast_natAbs + theorem Int.cast_nonneg + theorem Int.cast_nonpos + theorem Int.cast_one_le_of_pos + theorem Int.cast_pos + theorem Int.cast_ring_hom_int + theorem Int.cast_strict_mono + theorem Int.coe_cast_add_hom + theorem Int.coe_cast_ring_hom + theorem Int.coe_int_dvd + theorem Int.coe_nat_pos + theorem Int.coe_nat_succ_pos + theorem Int.commute_cast + theorem Int.nneg_mul_add_sq_of_abs_le_one + def Int.ofNatHom + theorem MonoidHom.ext_int + theorem MonoidHom.ext_mint + theorem MonoidWithZeroHom.ext_int + theorem MulOpposite.op_int_cast + theorem MulOpposite.unop_int_cast + theorem Pi.coe_int + theorem Pi.int_apply + theorem RingHom.eq_int_cast' + theorem RingHom.ext_int + theorem Sum.elim_int_cast_int_cast + theorem eq_int_cast' + theorem eq_int_cast + theorem ext_int' + theorem map_int_cast + theorem of_dual_int_cast + theorem of_lex_int_cast + theorem to_dual_int_cast + theorem to_lex_int_cast Modified Mathlib/Tactic/NormNum/Basic.lean 2022-12-14 10:48:17 3db783c feat: `prod.lex` is trichotomous (#989) Match https://github.com/leanprover-community/mathlib/pull/17931 ESTIMATED CHANGES Modified Mathlib/Data/Prod/Basic.lean + theorem Prod.lex_iff + theorem Prod.mk_inj_left + theorem Prod.mk_inj_right 2022-12-14 10:06:16 9f9bb0e chore: tidy up some files (#1009) ESTIMATED CHANGES Modified Mathlib/Algebra/Divisibility/Basic.lean Modified Mathlib/Algebra/Group/WithOne/Basic.lean +/- def WithOne.lift Modified Mathlib/Algebra/Hom/Equiv/Basic.lean + theorem MulEquiv.coe_toMonoidHom - theorem MulEquiv.coe_to_monoidHom + theorem MulEquiv.toMonoidHom_injective - theorem MulEquiv.to_monoidHom_injective Modified Mathlib/Algebra/Invertible.lean + theorem mul_mul_invOf_self_cancel - theorem mul_mul_inv_of_self_cancel Modified Mathlib/Algebra/Order/Monoid/WithZero/Basic.lean Modified Mathlib/Algebra/Order/Ring/Defs.lean + theorem Monotone.mul_strictMono - theorem Monotone.mul_strict_mono + theorem strictAnti_mul_left + theorem strictAnti_mul_right + theorem strictMonoOn_mul_self + theorem strictMono_mul_left_of_pos + theorem strictMono_mul_right_of_pos - theorem strict_anti_mul_left - theorem strict_anti_mul_right - theorem strict_mono_mul_left_of_pos - theorem strict_mono_mul_right_of_pos - theorem strict_mono_on_mul_self Modified Mathlib/Data/List/Defs.lean Modified Mathlib/Data/Nat/Order/Basic.lean Modified Mathlib/Data/PSigma/Order.lean Modified Mathlib/GroupTheory/GroupAction/Units.lean + theorem Units.smul_isUnit - theorem Units.smul_is_unit Modified Mathlib/Order/Antisymmetrization.lean + theorem OrderIso.dualAntisymmetrization_symm_apply - theorem OrderIso.dual_antisymmetrization_symm_apply + theorem antisymmRel_iff_eq - theorem antisymm_rel_iff_eq + theorem toAntisymmetrization_ofAntisymmetrization - theorem to_antisymmetrization_of_antisymmetrization + theorem wellFounded_antisymmetrization_iff - theorem well_founded_antisymmetrization_iff Modified Mathlib/Order/BooleanAlgebra.lean Modified Mathlib/Order/Hom/Basic.lean + theorem OrderEmbedding.ltEmbedding_apply - theorem OrderEmbedding.lt_embedding_apply +/- def OrderEmbedding.toOrderHom +/- def OrderHom.const +/- def OrderHom.curry +/- def OrderHom.dualIso + theorem OrderHom.orderHom_eq_id - theorem OrderHom.order_hom_eq_id +/- def OrderHom.piIso +/- def OrderHom.prodIso +/- def OrderIso.funUnique + theorem RelEmbedding.orderEmbeddingOfLtEmbedding_apply - theorem RelEmbedding.order_embedding_of_lt_embedding_apply Modified Mathlib/Order/SymmDiff.lean Modified Mathlib/Tactic/Linarith/Lemmas.lean 2022-12-14 09:49:14 d11e0f3 feat: port Algebra.Order.Invertible (#1006) ee0c179cd3c8a45aa5bffbf1b41d8dbede452865 ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Order/Invertible.lean + theorem invOf_le_one + theorem invOf_lt_zero + theorem invOf_nonneg + theorem invOf_nonpos + theorem invOf_pos 2022-12-14 09:49:12 d1e1c99 feat port Algebra.Field.Basic (#975) fc2ed6f838ce7c9b7c7171e58d78eaf7b438fb0e ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Field/Basic.lean + theorem add_div' + theorem add_div + theorem add_div_eq_mul_add_div + theorem div_add' + theorem div_add_div + theorem div_add_div_same + theorem div_add_one + theorem div_add_same + theorem div_neg + theorem div_neg_eq_neg_div + theorem div_neg_self + theorem div_sub' + theorem div_sub_div + theorem div_sub_div_same + theorem div_sub_one + theorem div_sub_same + theorem inv_add_inv + theorem inv_neg + theorem inv_sub_inv' + theorem inv_sub_inv + theorem neg_div' + theorem neg_div + theorem neg_div_neg_eq + theorem neg_div_self + theorem neg_inv + theorem of_dual_rat_cast + theorem of_lex_rat_cast + theorem one_add_div + theorem one_div_add_one_div + theorem one_div_mul_add_mul_one_div_eq_one_div_add_one_div + theorem one_div_mul_sub_mul_one_div_eq_one_div_add_one_div + theorem one_div_neg_eq_neg_one_div + theorem one_div_neg_one_eq_neg_one + theorem one_sub_div + theorem same_add_div + theorem same_sub_div + theorem sub_div' + theorem sub_div + theorem to_dual_rat_cast + theorem to_lex_rat_cast Modified Mathlib/Algebra/Ring/Basic.lean 2022-12-14 09:34:07 04b02cb feat port: Order.RelIso.Set (#1005) ee0c179cd3c8a45aa5bffbf1b41d8dbede452865 ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Order/RelIso/Set.lean + def RelEmbedding.codRestrict + theorem RelEmbedding.codRestrict_apply + theorem RelHomClass.map_inf + theorem RelHomClass.map_sup + theorem RelIso.range_eq + theorem Subrel.relEmbedding_apply + def Subrel + theorem subrel_val 2022-12-14 08:49:09 3bcd786 feat : port Data.Int.Dvd.Basic (#996) fc2ed6f838ce7c9b7c7171e58d78eaf7b438fb0e Easy. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Data/Int/Dvd/Basic.lean + theorem Int.coe_nat_dvd + theorem Int.coe_nat_dvd_left + theorem Int.coe_nat_dvd_right + theorem Int.dvd_natAbs_of_ofNat_dvd + theorem Int.ofNat_dvd_of_dvd_natAbs 2022-12-14 08:49:08 1fece09 feat: port Algebra.Order.AbsoluteValue (#974) mathlib SHA: fc2ed6f838ce7c9b7c7171e58d78eaf7b438fb0e ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Order/AbsoluteValue.lean + theorem AbsoluteValue.abs_abv_sub_le_abv_sub + theorem AbsoluteValue.coe_mk + theorem AbsoluteValue.coe_toMonoidWithZeroHom + theorem AbsoluteValue.coe_toMulHom + theorem AbsoluteValue.coe_to_monoid_hom + theorem AbsoluteValue.ext + theorem AbsoluteValue.map_one_of_is_regular + theorem AbsoluteValue.map_sub_eq_zero_iff + def AbsoluteValue.toMonoidHom + def AbsoluteValue.toMonoidWithZeroHom + structure AbsoluteValue + theorem IsAbsoluteValue.abs_abv_sub_le_abv_sub + def IsAbsoluteValue.abvHom' + def IsAbsoluteValue.abvHom + theorem IsAbsoluteValue.abv_div + theorem IsAbsoluteValue.abv_inv + theorem IsAbsoluteValue.abv_neg + theorem IsAbsoluteValue.abv_one' + theorem IsAbsoluteValue.abv_one + theorem IsAbsoluteValue.abv_pos + theorem IsAbsoluteValue.abv_pow + theorem IsAbsoluteValue.abv_sub + theorem IsAbsoluteValue.abv_sub_le + theorem IsAbsoluteValue.abv_zero + theorem IsAbsoluteValue.sub_abv_le_abv_sub + def IsAbsoluteValue.toAbsoluteValue 2022-12-14 08:34:40 9a73893 feat: Port Data.Int.Order.Lemmas (#1002) Based off mathlib3 SHA: fc2ed6f838ce7c9b7c7171e58d78eaf7b438fb0e ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Data/Int/Basic.lean Added Mathlib/Data/Int/Order/Lemmas.lean + theorem Int.dvd_div_of_mul_dvd + theorem Int.eq_zero_of_abs_lt_dvd + theorem Int.natAbs_eq_iff_mul_self_eq + theorem Int.natAbs_le_iff_mul_self_le + theorem Int.natAbs_lt_iff_mul_self_lt 2022-12-14 08:19:31 d261339 feat port data.int.least_greatest (#1003) Port of data.int.least_greatest based on 3342d1b2178381196f818146ff79bc0e7ccd9e2d ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Data/Int/LeastGreatest.lean + theorem Int.coe_greatestOfBdd_eq + theorem Int.coe_leastOfBdd_eq + theorem Int.exists_greatest_of_bdd + theorem Int.exists_least_of_bdd + def Int.greatestOfBdd + def Int.leastOfBdd 2022-12-14 04:57:55 5b9f3b9 chore: restore set image notation (#1000) - [x] depends on: #999 ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Data/Set/Image.lean +/- theorem Function.Injective.compl_image_eq +/- theorem Function.Injective.preimage_image +/- theorem Function.LeftInverse.image_image +/- theorem Function.Surjective.image_preimage +/- theorem Set.Nonempty.image +/- theorem Set.Nonempty.image_const +/- theorem Set.Nonempty.of_image +/- theorem Set.Subsingleton.image +/- theorem Set.compl_image_set_of +/- theorem Set.eq_preimage_iff_image_eq +/- def Set.imageFactorization +/- theorem Set.image_comp +/- theorem Set.image_compl_eq +/- theorem Set.image_compl_preimage +/- theorem Set.image_compl_subset +/- theorem Set.image_congr' +/- theorem Set.image_congr +/- theorem Set.image_diff +/- theorem Set.image_diff_preimage +/- theorem Set.image_empty +/- theorem Set.image_eq_empty +/- theorem Set.image_eq_image +/- theorem Set.image_eq_range +/- theorem Set.image_eta +/- theorem Set.image_id' +/- theorem Set.image_id +/- theorem Set.image_image +/- theorem Set.image_insert_eq +/- theorem Set.image_inter +/- theorem Set.image_inter_subset +/- theorem Set.image_pair +/- theorem Set.image_perm +/- theorem Set.image_preimage_eq +/- theorem Set.image_preimage_eq_iff +/- theorem Set.image_preimage_eq_inter_range +/- theorem Set.image_preimage_subset +/- theorem Set.image_singleton +/- theorem Set.image_subset +/- theorem Set.image_subset_iff +/- theorem Set.image_subset_image_iff +/- theorem Set.image_subset_range +/- theorem Set.image_symm_diff +/- theorem Set.image_union +/- theorem Set.image_union_image_compl_eq_range +/- theorem Set.image_univ +/- theorem Set.image_univ_of_surjective +/- theorem Set.insert_image_compl_eq_range +/- theorem Set.mem_image +/- theorem Set.mem_image_elim_on +/- theorem Set.mem_image_of_mem +/- theorem Set.mem_range_of_mem_image +/- theorem Set.nonempty_image_iff +/- theorem Set.nontrivial_of_image +/- theorem Set.preimage_eq_iff_eq_image +/- theorem Set.preimage_image_eq +/- theorem Set.preimage_image_preimage +/- theorem Set.preimage_inl_image_inr +/- theorem Set.preimage_inr_image_inl +/- theorem Set.range_comp +/- theorem Set.range_diff_image +/- theorem Set.range_diff_image_subset +/- theorem Set.subset_image_compl +/- theorem Set.subset_image_diff +/- theorem Set.subset_image_symm_diff +/- theorem Set.subset_image_union +/- theorem Set.subset_preimage_image +/- theorem Set.subset_range_iff_exists_image_eq +/- theorem Subtype.coe_image_subset +/- theorem Subtype.coe_image_univ +/- theorem Subtype.image_preimage_val Modified Mathlib/Data/Set/NAry.lean +/- theorem Set.image2_singleton_left +/- theorem Set.image2_singleton_right +/- theorem Set.image_subset_image2_left +/- theorem Set.image_subset_image2_right Modified Mathlib/Data/Set/Sigma.lean +/- theorem Set.fst_image_sigma +/- theorem Set.fst_image_sigma_subset +/- theorem Set.image_sigmaMk_subset_sigma_right +/- theorem Set.insert_sigma +/- theorem Set.singleton_sigma Modified Mathlib/Order/Directed.lean 2022-12-14 03:08:38 32bb171 chore: bump to nightly-2022-12-13 (#999) ESTIMATED CHANGES Modified Mathlib/Tactic/RestateAxiom.lean Modified Mathlib/Tactic/ToAdditive.lean Modified lean-toolchain 2022-12-14 03:08:37 d49808f feat port: logic.embedding.set (#986) fc2ed6f838ce7c9b7c7171e58d78eaf7b438fb0e ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Logic/Embedding/Set.lean + theorem Equiv.asEmbedding_range + def Function.Embedding.codRestrict + theorem Function.Embedding.codRestrict_apply + def Function.Embedding.coeWithTop + def Function.Embedding.optionElim + def Function.Embedding.optionEmbeddingEquiv + def Set.embeddingOfSubset + def subtypeOrEquiv + theorem subtypeOrEquiv_symm_inl + theorem subtypeOrEquiv_symm_inr 2022-12-14 03:08:36 c818a43 feat port: data.set.sigma (#982) fc2ed6f838ce7c9b7c7171e58d78eaf7b438fb0e ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Data/Set/Sigma.lean + theorem Set.Nonempty.sigma_fst + theorem Set.Nonempty.sigma_snd + theorem Set.empty_sigma + theorem Set.exists_sigma_iff + theorem Set.forall_sigma_iff + theorem Set.fst_image_sigma + theorem Set.fst_image_sigma_subset + theorem Set.image_sigmaMk_preimage_sigmaMap + theorem Set.image_sigmaMk_preimage_sigmaMap_subset + theorem Set.image_sigmaMk_subset_sigma_left + theorem Set.image_sigmaMk_subset_sigma_right + theorem Set.insert_sigma + theorem Set.mem_sigma_iff + theorem Set.mk_mem_sigma + theorem Set.mk_preimage_sigma + theorem Set.mk_preimage_sigma_eq_empty + theorem Set.mk_preimage_sigma_eq_if + theorem Set.mk_preimage_sigma_fn_eq_if + theorem Set.mk_sigma_iff + theorem Set.preimage_image_sigmaMk_of_ne + theorem Set.preimage_sigmaMap_sigma + theorem Set.range_sigmaMk + theorem Set.sigma_diff_sigma + theorem Set.sigma_empty + theorem Set.sigma_eq_empty_iff + theorem Set.sigma_insert + theorem Set.sigma_inter_sigma + theorem Set.sigma_mono + theorem Set.sigma_nonempty_iff + theorem Set.sigma_preimage_eq + theorem Set.sigma_preimage_left + theorem Set.sigma_preimage_right + theorem Set.sigma_singleton + theorem Set.sigma_subset_iff + theorem Set.sigma_subset_preimage_fst + theorem Set.sigma_union + theorem Set.sigma_univ + theorem Set.sigma_univ_range_eq + theorem Set.singleton_sigma + theorem Set.singleton_sigma_singleton + theorem Set.union_sigma + theorem Set.univ_sigma_univ 2022-12-14 02:53:19 4aa4f3d feat port: data.set.bool_indicator (#988) fc2ed6f838ce7c9b7c7171e58d78eaf7b438fb0e ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Data/Set/BoolIndicator.lean + theorem Set.mem_iff_boolIndicator + theorem Set.not_mem_iff_boolIndicator + theorem Set.preimage_boolIndicator + theorem Set.preimage_boolIndicator_eq_union + theorem Set.preimage_boolIndicator_false + theorem Set.preimage_boolIndicator_true 2022-12-14 02:02:22 54ed165 feat: port Combinatorics.Quiver.Arborescence (#997) mathlib SHA : fc2ed6f838ce7c9b7c7171e58d78eaf7b438fb0e ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Combinatorics/Quiver/Arborescence.lean + def Quiver.geodesicSubtree + def Quiver.root + theorem Quiver.shortest_path_spec 2022-12-14 02:02:21 e2fdb6a feat: port control.traversable.lemmas (#948) Port of control.traversable.lemmas Based on 3342d1b2178381196f818146ff79bc0e7ccd9e2d ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Control/Traversable/Lemmas.lean + def Traversable.PureTransformation + theorem Traversable.comp_sequence + theorem Traversable.id_sequence + theorem Traversable.map_eq_traverse_id + theorem Traversable.map_traverse' + theorem Traversable.map_traverse + theorem Traversable.naturality' + theorem Traversable.naturality_pf + theorem Traversable.pure_transformation_apply + theorem Traversable.pure_traverse + theorem Traversable.traverse_comp + theorem Traversable.traverse_eq_map_id' + theorem Traversable.traverse_id + theorem Traversable.traverse_map' + theorem Traversable.traverse_map 2022-12-14 01:47:47 098452b feat: port Algebra.Order.Hom.Monoid (#944) mathlib3 SHA: 3342d1b2178381196f818146ff79bc0e7ccd9e2d - [x] depends on: #952 ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Order/Hom/Monoid.lean + structure OrderAddMonoidHom + theorem OrderMonoidHom.cancel_left + theorem OrderMonoidHom.cancel_right + theorem OrderMonoidHom.coe_comp + theorem OrderMonoidHom.coe_comp_monoidHom + theorem OrderMonoidHom.coe_comp_orderHom + theorem OrderMonoidHom.coe_copy + theorem OrderMonoidHom.coe_id + theorem OrderMonoidHom.coe_mk + theorem OrderMonoidHom.coe_monoidHom + theorem OrderMonoidHom.coe_mul + theorem OrderMonoidHom.coe_one + theorem OrderMonoidHom.coe_orderHom + def OrderMonoidHom.comp + theorem OrderMonoidHom.comp_apply + theorem OrderMonoidHom.comp_assoc + theorem OrderMonoidHom.comp_id + theorem OrderMonoidHom.comp_mul + theorem OrderMonoidHom.comp_one + theorem OrderMonoidHom.copy_eq + theorem OrderMonoidHom.ext + theorem OrderMonoidHom.id_comp + def OrderMonoidHom.mk' + theorem OrderMonoidHom.mk_coe + theorem OrderMonoidHom.mul_apply + theorem OrderMonoidHom.mul_comp + theorem OrderMonoidHom.one_apply + theorem OrderMonoidHom.one_comp + theorem OrderMonoidHom.toFun_eq_coe + theorem OrderMonoidHom.toMonoidHom_eq_coe + theorem OrderMonoidHom.toMonoidHom_injective + def OrderMonoidHom.toOrderHom + theorem OrderMonoidHom.toOrderHom_eq_coe + theorem OrderMonoidHom.toOrderHom_injective + structure OrderMonoidHom + theorem OrderMonoidWithZeroHom.cancel_left + theorem OrderMonoidWithZeroHom.cancel_right + theorem OrderMonoidWithZeroHom.coe_comp + theorem OrderMonoidWithZeroHom.coe_comp_monoidWithZeroHom + theorem OrderMonoidWithZeroHom.coe_comp_orderMonoidHom + theorem OrderMonoidWithZeroHom.coe_copy + theorem OrderMonoidWithZeroHom.coe_id + theorem OrderMonoidWithZeroHom.coe_mk + theorem OrderMonoidWithZeroHom.coe_monoidWithZeroHom + theorem OrderMonoidWithZeroHom.coe_mul + theorem OrderMonoidWithZeroHom.coe_orderMonoidHom + def OrderMonoidWithZeroHom.comp + theorem OrderMonoidWithZeroHom.comp_apply + theorem OrderMonoidWithZeroHom.comp_assoc + theorem OrderMonoidWithZeroHom.comp_id + theorem OrderMonoidWithZeroHom.comp_mul + theorem OrderMonoidWithZeroHom.copy_eq + theorem OrderMonoidWithZeroHom.ext + theorem OrderMonoidWithZeroHom.id_comp + theorem OrderMonoidWithZeroHom.mk_coe + theorem OrderMonoidWithZeroHom.mul_apply + theorem OrderMonoidWithZeroHom.mul_comp + theorem OrderMonoidWithZeroHom.toFun_eq_coe + theorem OrderMonoidWithZeroHom.toMonoidWithZeroHom_eq_coe + theorem OrderMonoidWithZeroHom.toMonoidWithZeroHom_injective + def OrderMonoidWithZeroHom.toOrderMonoidHom + theorem OrderMonoidWithZeroHom.toOrderMonoidHom_eq_coe + theorem OrderMonoidWithZeroHom.toOrderMonoidHom_injective + structure OrderMonoidWithZeroHom + theorem antitone_iff_map_nonneg + theorem antitone_iff_map_nonpos + theorem map_nonneg + theorem map_nonpos + theorem monotone_iff_map_nonneg + theorem monotone_iff_map_nonpos + theorem strict_anti_iff_map_neg + theorem strict_anti_iff_map_pos + theorem strict_mono_iff_map_neg + theorem strict_mono_iff_map_pos 2022-12-13 23:46:06 be3b492 feat: port Data.Nat.Cast.Basic (#980) mathlib3 SHA: fc2ed6f838ce7c9b7c7171e58d78eaf7b438fb0e STATUS: Finished, except for porting `Pi.addMonoidWithOne`. See [this Zulip thread](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/not.20porting.20pi_instance) [Another issue during the port](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/simp.20regression.20with.20MonoidHomClass) ESTIMATED CHANGES Modified Mathlib/Algebra/GroupPower/Lemmas.lean + theorem Nat.cast_pow Modified Mathlib/Algebra/Hom/Group.lean Modified Mathlib/Data/Nat/Cast/Basic.lean + theorem AddMonoidHom.ext_nat + theorem MonoidWithZeroHom.ext_nat + theorem MulOpposite.op_natCast + theorem MulOpposite.unop_natCast + theorem Nat.StrictMono_cast + theorem Nat.abs_cast + def Nat.castAddMonoidHom + def Nat.castOrderEmbedding + def Nat.castRingHom + theorem Nat.castRingHom_nat + theorem Nat.cast_add_one_pos + theorem Nat.cast_comm +/- theorem Nat.cast_commute +/- theorem Nat.cast_id + theorem Nat.cast_le + theorem Nat.cast_le_one + theorem Nat.cast_lt + theorem Nat.cast_lt_one + theorem Nat.cast_max + theorem Nat.cast_min +/- theorem Nat.cast_mul + theorem Nat.cast_nonneg + theorem Nat.cast_pos - theorem Nat.cast_pow + theorem Nat.cast_tsub + theorem Nat.coe_castAddMonoidHom + theorem Nat.coe_castRingHom + theorem Nat.coe_nat_dvd + theorem Nat.commute_cast + theorem Nat.mono_cast + theorem Nat.one_le_cast + theorem Nat.one_lt_cast + theorem NeZero.nat_of_injective + theorem NeZero.nat_of_ne_zero + theorem Pi.coe_nat + theorem Pi.nat_apply + theorem RingHom.eq_natCast' + theorem Sum.elim_natCast_natCast + theorem eq_natCast' + theorem eq_natCast + theorem ext_nat'' + theorem ext_nat' + theorem ext_nat + theorem map_natCast' + theorem map_natCast + theorem ofDual_natCast + theorem ofLex_natCast + theorem toDual_natCast + theorem toLex_natCast Modified Mathlib/Tactic/NormNum/Basic.lean Modified Mathlib/Tactic/Ring/Basic.lean - def Mathlib.Tactic.Ring.ExBase.evalPos - def Mathlib.Tactic.Ring.ExProd.evalPos - def Mathlib.Tactic.Ring.ExSum.evalPos 2022-12-13 23:32:50 eab8de7 feat port: Data.Int.Order.Basic (#938) 10b4e499f43088dd3bb7b5796184ad5216648ab1 ESTIMATED CHANGES Modified Mathlib/Data/Int/Order/Basic.lean + theorem Int.abs_ediv_le_abs + theorem Int.abs_eq_natAbs + theorem Int.abs_le_one_iff + theorem Int.abs_lt_one_iff + theorem Int.abs_sign_of_nonzero + theorem Int.add_emod_eq_add_mod_right + theorem Int.coe_natAbs + theorem Int.coe_nat_eq_zero + theorem Int.coe_nat_ne_zero + theorem Int.coe_nat_ne_zero_iff_pos + theorem Int.coe_nat_nonpos_iff + theorem Int.ediv_dvd_ediv + theorem Int.ediv_dvd_of_dvd + theorem Int.ediv_eq_ediv_of_mul_eq_mul + theorem Int.ediv_eq_zero_of_lt_abs + theorem Int.ediv_pos_of_pos_of_dvd + theorem Int.emod_abs + theorem Int.emod_lt + theorem Int.emod_two_eq_zero_or_one + theorem Int.exists_lt_and_lt_iff_not_dvd + theorem Int.le_sub_one_iff + theorem Int.lt_of_to_nat_lt + theorem Int.lt_succ_self + theorem Int.lt_to_nat + theorem Int.natAbs_abs + theorem Int.natAbs_eq_of_dvd_dvd + theorem Int.neg_emod_two + theorem Int.one_le_abs + theorem Int.pred_self_lt + theorem Int.sign_mul_abs + theorem Int.sub_one_lt_iff + theorem Int.to_nat_eq_zero + theorem Int.to_nat_le + theorem Int.to_nat_le_to_nat + theorem Int.to_nat_lt_to_nat + theorem Int.to_nat_pred_coe_of_pos + theorem Int.to_nat_sub_of_le 2022-12-13 21:55:56 1a6a60e fix: ignore aux decls in casesMatching (#991) Adds a check so that we ignore auxiliary declarations in `casesMatching`. Adds a testcase that fails when the fix is not applied. This prevents errors of the form ``` failed to revert foo, it is an auxiliary declaration created to represent recursive definitions ``` See Zulip discussion here: https://leanprover.zulipchat.com/#narrow/stream/270676-lean4/topic/tactic.20'cases'.20failed.20nested.20error ESTIMATED CHANGES Modified Mathlib/Tactic/CasesM.lean Modified test/casesm.lean + theorem foo 2022-12-13 21:37:51 a87bd66 feat: port Combinatorics.Quiver.Cast (#990) mathlib SHA : fc2ed6f838ce7c9b7c7171e58d78eaf7b438fb0e ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Combinatorics/Quiver/Cast.lean + def Quiver.Hom.cast + theorem Quiver.Hom.cast_cast + theorem Quiver.Hom.cast_eq_cast + theorem Quiver.Hom.cast_eq_iff_heq + theorem Quiver.Hom.cast_heq + theorem Quiver.Hom.cast_rfl_rfl + theorem Quiver.Hom.eq_cast_iff_heq + def Quiver.Path.cast + theorem Quiver.Path.cast_cast + theorem Quiver.Path.cast_cons + theorem Quiver.Path.cast_eq_cast + theorem Quiver.Path.cast_eq_iff_heq + theorem Quiver.Path.cast_heq + theorem Quiver.Path.cast_nil + theorem Quiver.Path.cast_rfl_rfl + theorem Quiver.Path.eq_cast_iff_heq + theorem Quiver.cast_eq_of_cons_eq_cons + theorem Quiver.eq_nil_of_length_zero + theorem Quiver.hom_cast_eq_of_cons_eq_cons 2022-12-13 21:37:50 b040ecc feat: port Data.TwoPointing (#984) Mathlib SHA: fc2ed6f838ce7c9b7c7171e58d78eaf7b438fb0e ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Data/TwoPointing.lean + theorem TwoPointing.bool_fst + theorem TwoPointing.bool_snd + theorem TwoPointing.nonempty_two_pointing_iff + def TwoPointing.pi + theorem TwoPointing.pi_fst + theorem TwoPointing.pi_snd + def TwoPointing.prod + theorem TwoPointing.prod_fst + theorem TwoPointing.prod_snd + theorem TwoPointing.prop_fst + theorem TwoPointing.prop_snd + theorem TwoPointing.snd_ne_fst + theorem TwoPointing.sum_fst + theorem TwoPointing.sum_snd + def TwoPointing.swap + theorem TwoPointing.swap_fst + theorem TwoPointing.swap_snd + theorem TwoPointing.swap_swap + theorem TwoPointing.to_nontrivial + structure TwoPointing 2022-12-13 21:37:49 84da13b feat: port Data.Set.Opposite (#983) Mathlib SHA: fc2ed6f838ce7c9b7c7171e58d78eaf7b438fb0e The file produced by mathport had 0 errors! (And all proofs have become `by rfl`!) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Data/Set/Opposite.lean + theorem Set.mem_op + theorem Set.mem_unop + def Set.opEquiv + def Set.opEquiv_self + theorem Set.op_mem_op + theorem Set.op_unop + theorem Set.singleton_op + theorem Set.singleton_op_unop + theorem Set.singleton_unop + theorem Set.singleton_unop_op + theorem Set.unop_mem_unop + theorem Set.unop_op 2022-12-13 21:37:48 90cb7f7 feat: port Algebra.GroupPower.Ring (#979) Mathlib SHA: fc2ed6f838ce7c9b7c7171e58d78eaf7b438fb0e ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/GroupPower/Ring.lean + theorem Ring.inverse_pow + theorem add_sq' + theorem add_sq + theorem coe_powMonoidWithZeroHom + theorem eq_or_eq_neg_of_sq_eq_sq + theorem min_pow_dvd_add + theorem mul_neg_one_pow_eq_zero_iff + theorem ne_zero_pow + theorem neg_one_pow_eq_or + theorem neg_one_pow_mul_eq_zero_iff + theorem neg_one_sq + theorem neg_pow + theorem neg_pow_bit0 + theorem neg_pow_bit1 + theorem neg_sq + def powMonoidWithZeroHom + theorem powMonoidWithZeroHom_apply + theorem pow_dvd_pow_iff + theorem pow_eq_zero + theorem pow_eq_zero_iff' + theorem pow_eq_zero_iff + theorem pow_eq_zero_of_le + theorem pow_ne_zero + theorem pow_ne_zero_iff + theorem sq_eq_one_iff + theorem sq_eq_sq_iff_eq_or_eq_neg + theorem sq_eq_zero_iff + theorem sq_ne_one_iff + theorem sq_sub_sq + theorem sub_sq' + theorem sub_sq + theorem zero_pow' + theorem zero_pow + theorem zero_pow_eq + theorem zero_pow_eq_zero Modified Mathlib/Tactic/Positivity/Basic.lean - theorem pow_ne_zero 2022-12-13 21:37:47 0ddfc70 feat: Order.Max add #align plus a few name changes (#964) ESTIMATED CHANGES Modified Mathlib/Order/Max.lean Modified Mathlib/Order/WithBot.lean 2022-12-13 21:24:08 71edf26 feat: port Algebra.Order.Monoid.Prod (#987) Mathlib SHA: fc2ed6f838ce7c9b7c7171e58d78eaf7b438fb0e ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Order/Monoid/Prod.lean 2022-12-13 21:24:06 51820a5 feat: port Algebra.Order.Field.Canonical.Defs (#985) Mathlib SHA: fc2ed6f838ce7c9b7c7171e58d78eaf7b438fb0e Sorry, I forgot to push the mathport version. The only manual changes are: - breaking two align lines that were above 100 chars. - the deletion of a `@[protect_proj]` before line 20, which returned an error. I don't know whether that is the right thing to do or not. The wiki says I should protect all fields, but that class only extends two others and does not introduce new fields. - replace one `=>` by `↦` ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Order/Field/Canonical/Defs.lean 2022-12-13 21:24:05 5dc56e9 feat port: Order.WellFounded (#970) 1c521b4fb909320eca16b2bb6f8b5b0490b1cb5e Main change here was to remove some `@[simp]` attributes because `simp` apparently could not prove the lemma Y by `simp [Y]`. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Data/Sigma/Lex.lean Modified Mathlib/Order/RelClasses.lean Modified Mathlib/Order/RelIso/Basic.lean Added Mathlib/Order/WellFounded.lean + theorem Acc.induction_bot' + theorem Acc.induction_bot + theorem Function.argminOn_le + theorem Function.argminOn_mem + theorem Function.argmin_le + theorem Function.not_lt_argmin + theorem Function.not_lt_argminOn + theorem WellFounded.eq_iff_not_lt_of_le + theorem WellFounded.eq_strictMono_iff_eq_range + theorem WellFounded.has_min + theorem WellFounded.induction_bot' + theorem WellFounded.induction_bot + theorem WellFounded.min_le + theorem WellFounded.min_mem + theorem WellFounded.not_lt_min + theorem WellFounded.self_le_of_strictMono + theorem WellFounded.wellFounded_iff_has_max' + theorem WellFounded.wellFounded_iff_has_min' + theorem WellFounded.wellFounded_iff_has_min 2022-12-13 21:04:15 7d2d6ee chore: bump to get std4#63 (use Nat.cast in place of Int.ofNat) (#972) This verifies that https://github.com/leanprover/std4/pull/63 will work in mathlib4. Before merging this: * [x] check that https://github.com/leanprover/std4/pull/63 has been merged * [x] change `lakefile.lean` to point back to "main" for the std4 dependency * [ ] we may want to golf the proofs where I have added `simp only [Int.ofNat_eq_coe]`, to combine these into the adjacent rw/simp. ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Basic.lean Modified Mathlib/Algebra/Group/Opposite.lean Modified Mathlib/Data/Int/Basic.lean - theorem Int.coe_nat_le - theorem Int.coe_nat_lt +/- theorem Int.coe_nat_nonneg Modified Mathlib/Data/Int/Cast/Basic.lean Modified Mathlib/Data/Nat/Cast/Defs.lean Modified Mathlib/Init/Data/Int/Basic.lean - theorem Int.ofNat_eq_coe Modified Mathlib/Tactic/ModCases.lean Modified lake-manifest.json 2022-12-13 13:20:50 dd4f893 feat: port Algebra.Group.Prod (#968) mathlib3 SHA: cf9386b56953fb40904843af98b7a80757bbe7f9 ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Group/Prod.lean + theorem MonoidHom.coe_fst + theorem MonoidHom.coe_prod + theorem MonoidHom.coe_prodMap + theorem MonoidHom.coe_snd + theorem MonoidHom.comp_coprod + def MonoidHom.coprod + theorem MonoidHom.coprod_apply + theorem MonoidHom.coprod_comp_inl + theorem MonoidHom.coprod_comp_inr + theorem MonoidHom.coprod_inl_inr + theorem MonoidHom.coprod_unique + def MonoidHom.fst + theorem MonoidHom.fst_comp_inl + theorem MonoidHom.fst_comp_inr + theorem MonoidHom.fst_comp_prod + def MonoidHom.inl + theorem MonoidHom.inl_apply + def MonoidHom.inr + theorem MonoidHom.inr_apply + def MonoidHom.prodMap + theorem MonoidHom.prodMap_def + theorem MonoidHom.prod_apply + theorem MonoidHom.prod_comp_prodMap + theorem MonoidHom.prod_unique + def MonoidHom.snd + theorem MonoidHom.snd_comp_inl + theorem MonoidHom.snd_comp_inr + theorem MonoidHom.snd_comp_prod + theorem MulEquiv.coe_prodComm + theorem MulEquiv.coe_prodComm_symm + def MulEquiv.prodComm + def MulEquiv.prodCongr + def MulEquiv.prodUnique + def MulEquiv.prodUnits + def MulEquiv.uniqueProd + theorem MulHom.coe_fst + theorem MulHom.coe_prod + theorem MulHom.coe_prodMap + theorem MulHom.coe_snd + theorem MulHom.comp_coprod + def MulHom.coprod + theorem MulHom.coprod_apply + def MulHom.fst + theorem MulHom.fst_comp_prod + def MulHom.prodMap + theorem MulHom.prodMap_def + theorem MulHom.prod_apply + theorem MulHom.prod_comp_prodMap + theorem MulHom.prod_unique + def MulHom.snd + theorem MulHom.snd_comp_prod + theorem Prod.fst_div + theorem Prod.fst_inv + theorem Prod.fst_mul + theorem Prod.fst_mul_snd + theorem Prod.fst_one + theorem Prod.inv_mk + theorem Prod.mk_div_mk + theorem Prod.mk_eq_one + theorem Prod.mk_mul_mk + theorem Prod.mk_one_mul_mk_one + theorem Prod.mul_def + theorem Prod.one_eq_mk + theorem Prod.one_mk_mul_one_mk + theorem Prod.snd_div + theorem Prod.snd_inv + theorem Prod.snd_mul + theorem Prod.snd_one + theorem Prod.swap_div + theorem Prod.swap_inv + theorem Prod.swap_mul + theorem Prod.swap_one + def Units.embedProduct + theorem Units.embedProduct_injective + def divMonoidHom + def divMonoidWithZeroHom + def mulMonoidHom + def mulMonoidWithZeroHom + def mulMulHom 2022-12-13 13:05:29 6fe63fa hack: to_additive copies more attributes (#954) * `to_additive` now copies `ext`, `coe`, `refl`, `symm`, `trans` * Implemented in a hacky way * This could be used until a proper solution is available. ESTIMATED CHANGES Modified Mathlib/Algebra/Group/WithOne/Defs.lean Modified Mathlib/Tactic/ToAdditive.lean + def ToAdditive.hackyAddAttribute + def ToAdditive.hackyCopyAttr 2022-12-13 11:06:41 2e890fb feat: Port `Algebra.Hom.Ring` (#958) mathlib3 SHA: cf9386b56953fb40904843af98b7a80757bbe7f9 - [x] depends on: #949 ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/GroupWithZero/InjSurj.lean Modified Mathlib/Algebra/Hom/Group.lean Added Mathlib/Algebra/Hom/Ring.lean + theorem AddMonoidHom.coe_addMonoidHom_mkRingHomOfMulSelfOfTwoNeZero + theorem AddMonoidHom.coe_fn_mkRingHomOfMulSelfOfTwoNeZero + def AddMonoidHom.mkRingHomOfMulSelfOfTwoNeZero + theorem NonUnitalRingHom.cancel_left + theorem NonUnitalRingHom.cancel_right + theorem NonUnitalRingHom.coe_addMonoidHom_id + theorem NonUnitalRingHom.coe_addMonoidHom_injective + theorem NonUnitalRingHom.coe_addMonoidHom_mk + theorem NonUnitalRingHom.coe_comp + theorem NonUnitalRingHom.coe_comp_addMonoidHom + theorem NonUnitalRingHom.coe_comp_mulHom + theorem NonUnitalRingHom.coe_copy + theorem NonUnitalRingHom.coe_mul + theorem NonUnitalRingHom.coe_mulHom_id + theorem NonUnitalRingHom.coe_mulHom_injective + theorem NonUnitalRingHom.coe_mulHom_mk + theorem NonUnitalRingHom.coe_one + theorem NonUnitalRingHom.coe_toAddMonoidHom + theorem NonUnitalRingHom.coe_to_mulHom + theorem NonUnitalRingHom.coe_zero + def NonUnitalRingHom.comp + theorem NonUnitalRingHom.comp_apply + theorem NonUnitalRingHom.comp_assoc + theorem NonUnitalRingHom.comp_id + theorem NonUnitalRingHom.comp_zero + theorem NonUnitalRingHom.copy_eq + theorem NonUnitalRingHom.ext + theorem NonUnitalRingHom.ext_iff + theorem NonUnitalRingHom.id_apply + theorem NonUnitalRingHom.id_comp + theorem NonUnitalRingHom.mk_coe + theorem NonUnitalRingHom.mul_def + theorem NonUnitalRingHom.one_def + theorem NonUnitalRingHom.zero_apply + theorem NonUnitalRingHom.zero_comp + structure NonUnitalRingHom + theorem RingHom.cancel_left + theorem RingHom.cancel_right + theorem RingHom.codomain_trivial + theorem RingHom.codomain_trivial_iff_map_one_eq_zero + theorem RingHom.codomain_trivial_iff_range_eq_singleton_zero + theorem RingHom.codomain_trivial_iff_range_trivial + theorem RingHom.coe_addMonoidHom_injective + theorem RingHom.coe_addMonoidHom_mk + theorem RingHom.coe_add_monoid_hom_id + theorem RingHom.coe_coe + theorem RingHom.coe_comp + theorem RingHom.coe_copy + theorem RingHom.coe_inj + theorem RingHom.coe_mk + theorem RingHom.coe_monoidHom_injective + theorem RingHom.coe_monoidHom_mk + theorem RingHom.coe_monoid_hom_id + theorem RingHom.coe_mul + theorem RingHom.coe_one + def RingHom.comp + theorem RingHom.comp_apply + theorem RingHom.comp_assoc + theorem RingHom.comp_id + theorem RingHom.congr_arg + theorem RingHom.congr_fun + def RingHom.copy + theorem RingHom.copy_eq + theorem RingHom.domain_nontrivial + theorem RingHom.ext + theorem RingHom.ext_iff + def RingHom.id + theorem RingHom.id_apply + theorem RingHom.id_comp + theorem RingHom.is_unit_map + theorem RingHom.map_ite_one_zero + theorem RingHom.map_ite_zero_one + theorem RingHom.map_one_ne_zero + def RingHom.mk' + theorem RingHom.mk_coe + theorem RingHom.mul_def + theorem RingHom.one_def + theorem RingHom.toAddMonoidHom_eq_coe + theorem RingHom.toFun_eq_coe + theorem RingHom.toMonoidHom_eq_coe + theorem RingHom.toMonoidWithZeroHom_eq_coe + structure RingHom 2022-12-13 10:52:31 ca3be7d feat: `a * b ≤ c * d → min a b ≤ max c d` (#967) Match https://github.com/leanprover-community/mathlib/pull/17895 ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Monoid/Lemmas.lean + theorem min_le_max_of_mul_le_mul 2022-12-13 10:52:30 e6cc689 feat port: Order.Directed (#963) cf9386b56953fb40904843af98b7a80757bbe7f9 A few name changes in other files ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Order/Directed.lean + theorem Antitone.directed_ge + theorem Antitone.directed_le + theorem Directed.extend_bot + theorem Directed.mono + theorem Directed.mono_comp + def Directed + theorem DirectedOn.mono' + theorem DirectedOn.mono + def DirectedOn + theorem Monotone.directed_ge + theorem Monotone.directed_le + theorem directedOn_iff_directed + theorem directedOn_of_sup_mem + theorem directedOn_univ + theorem directedOn_univ_iff + theorem directed_comp + theorem directed_id + theorem directed_id_iff + theorem directed_of + theorem directed_of_inf + theorem directed_of_sup + theorem directed_on_image + theorem directed_on_of_inf_mem + theorem exists_ge_ge + theorem exists_le_le + theorem exists_lt_of_directed_ge + theorem exists_lt_of_directed_le + theorem isBot_iff_is_min + theorem isBot_or_exists_lt + theorem isTop_iff_is_max + theorem isTop_or_exists_gt + theorem is_directed_mono Modified Mathlib/Order/Max.lean 2022-12-13 10:52:29 eb136dd feat: Data.Set.Basic Add mem_setOf_eq (#962) Adding a missing lemma from Lean3 core. Alternatively we could just mark `mem_setOf` as a `simp` lemma and align Lean3's `set.mem_set_of_eq`, but the statements are slightly different `Eq` versus `Iff` so this is probably the method that make porting the easiest. ESTIMATED CHANGES Modified Mathlib/Data/Set/Basic.lean + theorem Set.mem_setOf_eq 2022-12-13 10:52:28 91af1f8 feat port: Data.Nat.Set (#961) cf9386b56953fb40904843af98b7a80757bbe7f9 Easy ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Data/Nat/Set.lean + theorem Nat.range_casesOn + theorem Nat.range_of_succ + theorem Nat.range_rec + theorem Nat.zero_union_range_succ 2022-12-13 10:52:27 1ab1df8 feat port: Data.Bool.Set (#960) cf9386b56953fb40904843af98b7a80757bbe7f9 Easy ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Data/Bool/Set.lean + theorem Bool.range_eq + theorem Bool.univ_eq 2022-12-13 10:38:44 e40deb4 feat port: Data.Set.NAry (#969) cf9386b56953fb40904843af98b7a80757bbe7f9 Easy. I changed the header because it seemed wrong in Lean3. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Data/Set/NAry.lean + theorem Set.Nonempty.image2 + theorem Set.Nonempty.of_image2_left + theorem Set.Nonempty.of_image2_right + theorem Set.forall_image2_iff + def Set.image2 + theorem Set.image2_assoc + theorem Set.image2_comm + theorem Set.image2_congr' + theorem Set.image2_congr + theorem Set.image2_distrib_subset_left + theorem Set.image2_distrib_subset_right + theorem Set.image2_empty_left + theorem Set.image2_empty_right + theorem Set.image2_eq_empty_iff + theorem Set.image2_image2_left + theorem Set.image2_image2_right + theorem Set.image2_image_left + theorem Set.image2_image_left_anticomm + theorem Set.image2_image_left_comm + theorem Set.image2_image_right + theorem Set.image2_inter_subset_left + theorem Set.image2_inter_subset_right + theorem Set.image2_left + theorem Set.image2_left_comm + theorem Set.image2_nonempty_iff + theorem Set.image2_right + theorem Set.image2_right_comm + theorem Set.image2_singleton + theorem Set.image2_singleton_left + theorem Set.image2_singleton_right + theorem Set.image2_subset + theorem Set.image2_subset_iff + theorem Set.image2_subset_left + theorem Set.image2_subset_right + theorem Set.image2_swap + theorem Set.image2_union_left + theorem Set.image2_union_right + def Set.image3 + theorem Set.image3_congr' + theorem Set.image3_congr + theorem Set.image3_mono + theorem Set.image_image2 + theorem Set.image_image2_antidistrib + theorem Set.image_image2_antidistrib_left + theorem Set.image_image2_antidistrib_right + theorem Set.image_image2_distrib + theorem Set.image_image2_distrib_left + theorem Set.image_image2_distrib_right + theorem Set.image_image2_right_anticomm + theorem Set.image_image2_right_comm + theorem Set.image_subset_image2_left + theorem Set.image_subset_image2_right + theorem Set.mem_image2 + theorem Set.mem_image2_iff + theorem Set.mem_image2_of_mem + theorem Set.mem_image3 2022-12-13 10:25:46 2803b4a chore: bump std4 to change instances for Div Int and Mod Int (#973) ESTIMATED CHANGES Modified Mathlib/Tactic/ModCases.lean +/- def Int.modeq Modified lake-manifest.json 2022-12-13 21:05:05+11:00 c8a276a Revert "chore: bump std4 to change instances for Div Int and Mod Int" This reverts commit b2df0b22db8a45a499ec8f393ef800e92d676962. ESTIMATED CHANGES Modified lake-manifest.json 2022-12-13 21:04:26+11:00 b2df0b2 chore: bump std4 to change instances for Div Int and Mod Int ESTIMATED CHANGES Modified lake-manifest.json 2022-12-12 19:11:24 c8da4db chore(Order/Monotone): move to `Order.Monotone.Basic` (#947) The Lean 3 version is leanprover-community/mathlib#17893 ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/CovariantAndContravariant.lean Modified Mathlib/Data/Int/Basic.lean Modified Mathlib/Order/Iterate.lean Modified Mathlib/Order/Lattice.lean Renamed Mathlib/Order/Monotone.lean to Mathlib/Order/Monotone/Basic.lean Modified Mathlib/Tactic/ApplyFun.lean 2022-12-12 18:44:55 06cc474 chore: Restore basic instances (#913) Match https://github.com/leanprover-community/mathlib/pull/17810 ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Group/Defs.lean Modified Mathlib/Algebra/Order/Group/Instances.lean 2022-12-12 18:44:54 16190b7 feat: port Data.Vector from lean-core (#834) Have also added some needed lemmas for Lists; from e574b1a4e891376b0ef974b926da39e05da12a06 ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Data/Vector.lean + def Vector.append + def Vector.cons + theorem Vector.cons_head_tail + def Vector.drop + def Vector.elim + def Vector.head + theorem Vector.head_cons + def Vector.length + def Vector.map + def Vector.mapAccumr + def Vector.mapAccumr₂ + theorem Vector.map_cons + theorem Vector.map_nil + def Vector.map₂ + def Vector.nil + def Vector.nth + def Vector.ofFn + def Vector.removeNth + def Vector.tail + theorem Vector.tail_cons + def Vector.take + def Vector.toList + theorem Vector.toList_mk + theorem Vector.to_list_append + theorem Vector.to_list_cons + theorem Vector.to_list_drop + theorem Vector.to_list_length + theorem Vector.to_list_nil + theorem Vector.to_list_take + def Vector.«repeat» + def Vector Added Mathlib/Init/Data/List/Basic.lean + def List.band + def List.bor + def List.findIndex + def List.ilast + def List.init + def List.last + theorem List.le_eq_not_gt + def List.mapWithIndex + def List.mapWithIndexCore + def List.map₂ + def List.nth + def List.nthLe + def List.updateNth + def List.«repeat» Added Mathlib/Init/Data/List/Lemmas.lean + theorem List.length_mapAccumr + theorem List.length_mapAccumr₂ + theorem List.length_map₂ + theorem List.length_repeat + def List.mapAccumr + def List.mapAccumr₂ 2022-12-12 18:31:56 e340c6a feat: port of Data.Nat.Gcd.Basic (#965) tracking cf9386b56953fb40904843af98b7a80757bbe7f9 Most of the code was already ported to Std. A couple of lemmas gave a linting error with simp normal form. I have commented out the simp attribute for this. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Data/Nat/Gcd/Basic.lean + theorem Nat.coprime.dvd_mul_left + theorem Nat.coprime.dvd_mul_right + theorem Nat.coprime.eq_of_mul_eq_zero + theorem Nat.coprime.lcm_eq_mul + theorem Nat.coprime.mul_add_mul_ne_mul + theorem Nat.coprime.symmetric + theorem Nat.coprime_add_mul_left_left + theorem Nat.coprime_add_mul_left_right + theorem Nat.coprime_add_mul_right_left + theorem Nat.coprime_add_mul_right_right + theorem Nat.coprime_add_self_left + theorem Nat.coprime_add_self_right + theorem Nat.coprime_mul_left_add_left + theorem Nat.coprime_mul_left_add_right + theorem Nat.coprime_mul_right_add_left + theorem Nat.coprime_mul_right_add_right + theorem Nat.coprime_one_left_iff + theorem Nat.coprime_one_right_iff + theorem Nat.coprime_pow_left_iff + theorem Nat.coprime_pow_right_iff + theorem Nat.coprime_self_add_left + theorem Nat.coprime_self_add_right + theorem Nat.dvd_mul + theorem Nat.eq_one_of_dvd_coprimes + theorem Nat.gcd_add_mul_left_left + theorem Nat.gcd_add_mul_left_right + theorem Nat.gcd_add_mul_right_left + theorem Nat.gcd_add_mul_right_right + theorem Nat.gcd_add_self_left + theorem Nat.gcd_add_self_right + theorem Nat.gcd_greatest + theorem Nat.gcd_mul_left_add_left + theorem Nat.gcd_mul_left_add_right + theorem Nat.gcd_mul_of_coprime_of_dvd + theorem Nat.gcd_mul_right_add_left + theorem Nat.gcd_mul_right_add_right + theorem Nat.gcd_self_add_left + theorem Nat.gcd_self_add_right + theorem Nat.lcm_dvd_iff + theorem Nat.lcm_dvd_mul + theorem Nat.not_coprime_zero_zero + theorem Nat.pow_dvd_pow_iff + def Nat.prodDvdAndDvdOfDvdProd 2022-12-12 10:13:01 2e80838 feat: port algebra.group.with_one.units (#955) Tracking mathlib commit: [4e87c8477c6c38b753f050bc9664b94ee859896c](https://github.com/leanprover-community/mathlib/commit/4e87c8477c6c38b753f050bc9664b94ee859896c) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Group/WithOne/Units.lean + def WithZero.unitsWithZeroEquiv 2022-12-12 09:33:18 573c745 feat: Port Data.Nat.Order.Lemmas (#927) mathlib3 SHA: 10b4e499f43088dd3bb7b5796184ad5216648ab1 - [x] Depends on #892 - [x] Depends on #907 ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Order/Positive/Ring.lean Added Mathlib/Data/Nat/Order/Lemmas.lean + theorem Nat.Subtype.coe_bot + theorem Nat.div_div_div_eq_div + theorem Nat.div_eq_iff_eq_of_dvd_dvd + theorem Nat.div_lt_div_of_lt_of_dvd + theorem Nat.dvd_div_iff + theorem Nat.dvd_div_of_mul_dvd + theorem Nat.dvd_iff_div_mul_eq + theorem Nat.dvd_iff_dvd_dvd + theorem Nat.dvd_iff_le_div_mul + theorem Nat.dvd_left_iff_eq + theorem Nat.dvd_left_injective + theorem Nat.dvd_right_iff_eq + theorem Nat.dvd_sub' + theorem Nat.eq_zero_of_dvd_of_lt + theorem Nat.mod_div_self + theorem Nat.not_dvd_iff_between_consec_multiples + theorem Nat.set_eq_univ + theorem Nat.succ_div + theorem Nat.succ_div_of_dvd + theorem Nat.succ_div_of_not_dvd Modified Mathlib/Data/Num/Basic.lean Modified Mathlib/Init/Algebra/Order.lean Modified Mathlib/Init/Data/Nat/Lemmas.lean Modified Mathlib/Order/Basic.lean 2022-12-12 09:20:56 20a6a92 feat: port algebra.order.group.densely_ordered (#956) Tracking mathlib commit: [4e87c8477c6c38b753f050bc9664b94ee859896c](https://github.com/leanprover-community/mathlib/commit/4e87c8477c6c38b753f050bc9664b94ee859896c) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Order/Group/DenselyOrdered.lean + theorem le_iff_forall_lt_one_mul_le + theorem le_iff_forall_one_lt_le_mul + theorem le_of_forall_lt_one_mul_le + theorem le_of_forall_one_lt_div_le 2022-12-12 09:20:55 506c756 feat: port Algebra.Hom.Equiv.TypeTags (#943) mathlib3 SHA: 3342d1b2178381196f818146ff79bc0e7ccd9e2d ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Hom/Equiv/Basic.lean Added Mathlib/Algebra/Hom/Equiv/TypeTags.lean + def AddEquiv.additiveMultiplicative + def AddEquiv.toMultiplicative'' + def AddEquiv.toMultiplicative' + def AddEquiv.toMultiplicative + def MulEquiv.multiplicativeAdditive + def MulEquiv.toAdditive'' + def MulEquiv.toAdditive' + def MulEquiv.toAdditive 2022-12-12 09:20:54 b02da0a feat: port Algebra.Order.WithZero (#903) mathlib3 655994e298904d7e5bbd1e18c95defd7b543eb94 ~~All remaining issues are elaboration problems involving the order-dual. I think these should be debugged carefully, but I am not sure whether I will have time this weekend, so help is welcome.~~ I fixed these with a bunch of `@` and opened a [Zulip thread](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/Type.20synonyms). - [x] depends on #910 - [x] depends on #923 ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Group/TypeTags.lean Added Mathlib/Algebra/Order/WithZero.lean + def Function.Injective.linearOrderedCommMonoidWithZero + def OrderIso.mulLeft₀' + theorem OrderIso.mulLeft₀'_symm + def OrderIso.mulRight₀' + theorem OrderIso.mulRight₀'_symm + theorem Units.zero_lt + theorem div_le_div_left₀ + theorem div_le_div_right₀ + theorem div_le_div₀ + theorem div_le_iff₀ + theorem inv_le_inv₀ + theorem inv_le_one₀ + theorem inv_lt_inv₀ + theorem inv_mul_lt_of_lt_mul₀ + theorem le_div_iff₀ + theorem le_mul_inv_iff₀ + theorem le_mul_inv_of_mul_le + theorem le_of_le_mul_right + theorem le_zero_iff + theorem lt_of_mul_lt_mul_of_le₀ + theorem mul_inv_le_iff₀ + theorem mul_inv_le_of_le_mul + theorem mul_inv_lt_of_lt_mul₀ + theorem mul_le_mul_left₀ + theorem mul_le_mul_right₀ + theorem mul_le_one₀ + theorem mul_lt_mul_of_lt_of_le₀ + theorem mul_lt_mul₀ + theorem mul_lt_right₀ + theorem ne_zero_of_lt + theorem not_lt_zero' + theorem one_le_inv₀ + theorem one_le_mul₀ + theorem zero_le' + theorem zero_lt_iff 2022-12-12 08:03:47 764d8fb chore: fix documentation for `id.mk` (#957) Corrects documentation for `id.mk` which previously implied that `id` was a lawful `Monad`, `Applicative` and `Functor` ESTIMATED CHANGES Modified Mathlib/Control/Functor.lean 2022-12-12 08:03:46 1200b9e fix: add parens so that sequences works as expected in setValue (#914) Followup to #908. Apparently `<;>` (in addition to plain `;`) has higher precedence than `try`. Adding parentheses restores the expected behavior. This isn't the first time we've been tripped up by unexpected precedence in the sequencing operators. See e.g. https://github.com/leanprover-community/mathlib4/pull/370#discussion_r949498757 ESTIMATED CHANGES Modified Mathlib/Logic/Embedding/Basic.lean 2022-12-12 07:45:30 a6ba4bb feat: Port Data.Set.Image (#949) mathlib3 SHA: f178c0e25af359f6cbc72a96a243efd3b12423a3 - [x] depends on: #892 ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Data/Set/Image.lean + theorem Function.Commute.set_image + theorem Function.Injective.compl_image_eq + theorem Function.Injective.exists_unique_of_mem_range + theorem Function.Injective.image_injective + theorem Function.Injective.mem_range_iff_exists_unique + theorem Function.Injective.mem_set_image + theorem Function.Injective.preimage_image + theorem Function.Injective.preimage_surjective + theorem Function.Injective.subsingleton_image_iff + theorem Function.LeftInverse.image_image + theorem Function.LeftInverse.preimage_preimage + theorem Function.Semiconj.set_image + theorem Function.Surjective.image_preimage + theorem Function.Surjective.image_surjective + theorem Function.Surjective.nonempty_preimage + theorem Function.Surjective.preimage_injective + theorem Function.Surjective.preimage_subset_preimage_iff + theorem Function.Surjective.range_comp + theorem Nat.mem_range_succ + theorem Option.injective_iff + theorem Option.range_eq + theorem Prod.range_fst + theorem Prod.range_snd + theorem Set.Nonempty.image + theorem Set.Nonempty.image_const + theorem Set.Nonempty.of_image + theorem Set.Nonempty.preimage' + theorem Set.Nonempty.preimage + theorem Set.Nontrivial.image + theorem Set.Nontrivial.preimage + theorem Set.Subsingleton.image + theorem Set.Subsingleton.preimage + theorem Set.Sum.elim_range + theorem Set.apply_rangeSplitting + theorem Set.ball_image_iff + theorem Set.ball_image_of_ball + theorem Set.bex_image_iff + theorem Set.coe_comp_rangeFactorization + theorem Set.comp_rangeSplitting + theorem Set.compl_compl_image + theorem Set.compl_image + theorem Set.compl_image_set_of + theorem Set.compl_range_inl + theorem Set.compl_range_inr + theorem Set.compl_range_some + theorem Set.eq_preimage_iff_image_eq + theorem Set.eq_preimage_subtype_val_iff + theorem Set.exists_image_iff + theorem Set.exists_range_iff' + theorem Set.exists_range_iff + theorem Set.exists_subset_range_and_iff + theorem Set.exists_subset_range_iff + theorem Set.exists_subtype_range_iff + theorem Set.forall_range_iff + theorem Set.forall_subtype_range_iff + def Set.imageFactorization + theorem Set.imageFactorization_eq + theorem Set.image_comm + theorem Set.image_comp + theorem Set.image_compl_eq + theorem Set.image_compl_preimage + theorem Set.image_compl_subset + theorem Set.image_congr' + theorem Set.image_congr + theorem Set.image_diff + theorem Set.image_diff_preimage + theorem Set.image_empty + theorem Set.image_eq_empty + theorem Set.image_eq_image + theorem Set.image_eq_preimage_of_inverse + theorem Set.image_eq_range + theorem Set.image_eta + theorem Set.image_id' + theorem Set.image_id + theorem Set.image_image + theorem Set.image_injective + theorem Set.image_insert_eq + theorem Set.image_inter + theorem Set.image_inter_nonempty_iff + theorem Set.image_inter_on + theorem Set.image_inter_preimage + theorem Set.image_inter_subset + theorem Set.image_pair + theorem Set.image_perm + theorem Set.image_preimage_eq + theorem Set.image_preimage_eq_iff + theorem Set.image_preimage_eq_inter_range + theorem Set.image_preimage_eq_of_subset + theorem Set.image_preimage_inl_union_image_preimage_inr + theorem Set.image_preimage_inter + theorem Set.image_preimage_subset + theorem Set.image_singleton + theorem Set.image_subset + theorem Set.image_subset_iff + theorem Set.image_subset_image_iff + theorem Set.image_subset_preimage_of_inverse + theorem Set.image_subset_range + theorem Set.image_surjective + theorem Set.image_swap_eq_preimage_swap + theorem Set.image_symm_diff + theorem Set.image_union + theorem Set.image_union_image_compl_eq_range + theorem Set.image_univ + theorem Set.image_univ_of_surjective + theorem Set.insert_image_compl_eq_range + theorem Set.insert_none_range_some + theorem Set.inter_preimage_subset + theorem Set.isCompl_range_inl_range_inr + theorem Set.isCompl_range_some_none + theorem Set.leftInverse_rangeSplitting + theorem Set.mem_compl_image + theorem Set.mem_image + theorem Set.mem_image_elim + theorem Set.mem_image_elim_on + theorem Set.mem_image_iff_bex + theorem Set.mem_image_iff_of_inverse + theorem Set.mem_image_of_mem + theorem Set.mem_preimage + theorem Set.mem_range + theorem Set.mem_range_of_mem_image + theorem Set.mem_range_self + theorem Set.nonempty_image_iff + theorem Set.nonempty_of_nonempty_preimage + theorem Set.nontrivial_of_image + theorem Set.nontrivial_of_preimage + def Set.preimage + theorem Set.preimage_comp + theorem Set.preimage_comp_eq + theorem Set.preimage_compl + theorem Set.preimage_compl_eq_image_compl + theorem Set.preimage_congr + theorem Set.preimage_const + theorem Set.preimage_const_of_mem + theorem Set.preimage_const_of_not_mem + theorem Set.preimage_diff + theorem Set.preimage_empty + theorem Set.preimage_eq_iff_eq_image + theorem Set.preimage_eq_preimage' + theorem Set.preimage_eq_preimage + theorem Set.preimage_id' + theorem Set.preimage_id + theorem Set.preimage_id_eq + theorem Set.preimage_image_eq + theorem Set.preimage_image_preimage + theorem Set.preimage_injective + theorem Set.preimage_inl_image_inr + theorem Set.preimage_inl_range_inr + theorem Set.preimage_inr_image_inl + theorem Set.preimage_inr_range_inl + theorem Set.preimage_inter + theorem Set.preimage_inter_range + theorem Set.preimage_ite + theorem Set.preimage_iterate_eq + theorem Set.preimage_mono + theorem Set.preimage_preimage + theorem Set.preimage_range + theorem Set.preimage_rangeSplitting + theorem Set.preimage_range_inter + theorem Set.preimage_set_of_eq + theorem Set.preimage_singleton_eq_empty + theorem Set.preimage_singleton_nonempty + theorem Set.preimage_subset_iff + theorem Set.preimage_subset_image_of_inverse + theorem Set.preimage_subset_preimage_iff + theorem Set.preimage_subtype_coe_eq_compl + theorem Set.preimage_surjective + theorem Set.preimage_union + theorem Set.preimage_univ + theorem Set.prod_quotient_preimage_eq_image + def Set.range + def Set.rangeFactorization + theorem Set.rangeFactorization_coe + theorem Set.rangeFactorization_eq + theorem Set.rangeSplitting_injective + theorem Set.range_comp + theorem Set.range_comp_subset_range + theorem Set.range_const + theorem Set.range_const_subset + theorem Set.range_diff_image + theorem Set.range_diff_image_subset + theorem Set.range_eq_empty + theorem Set.range_eq_empty_iff + theorem Set.range_eq_iff + theorem Set.range_eval + theorem Set.range_id' + theorem Set.range_id + theorem Set.range_iff_surjective + theorem Set.range_image + theorem Set.range_inclusion + theorem Set.range_inl_inter_range_inr + theorem Set.range_inl_union_range_inr + theorem Set.range_inr_inter_range_inl + theorem Set.range_inr_union_range_inl + theorem Set.range_ite_subset' + theorem Set.range_ite_subset + theorem Set.range_nonempty + theorem Set.range_nonempty_iff_nonempty + theorem Set.range_quot_lift + theorem Set.range_quot_mk + theorem Set.range_quotient_lift + theorem Set.range_quotient_lift_on' + theorem Set.range_quotient_mk' + theorem Set.range_quotient_mk + theorem Set.range_some_inter_none + theorem Set.range_some_union_none + theorem Set.range_subset_iff + theorem Set.range_subset_singleton + theorem Set.range_subtype_map + theorem Set.range_unique + theorem Set.rightInverse_rangeSplitting + theorem Set.subset_image_compl + theorem Set.subset_image_diff + theorem Set.subset_image_symm_diff + theorem Set.subset_image_union + theorem Set.subset_preimage_image + theorem Set.subset_preimage_univ + theorem Set.subset_range_iff_exists_image_eq + theorem Set.subsingleton_of_image + theorem Set.subsingleton_of_preimage + theorem Set.subsingleton_range + theorem Set.surjective_onto_image + theorem Set.surjective_onto_range + theorem Set.union_preimage_subset + theorem Subtype.coe_image + theorem Subtype.coe_image_of_subset + theorem Subtype.coe_image_subset + theorem Subtype.coe_image_univ + theorem Subtype.coe_preimage_self + theorem Subtype.exists_set_subtype + theorem Subtype.image_preimage_coe + theorem Subtype.image_preimage_val + theorem Subtype.preimage_coe_compl' + theorem Subtype.preimage_coe_compl + theorem Subtype.preimage_coe_eq_empty + theorem Subtype.preimage_coe_eq_preimage_coe_iff + theorem Subtype.preimage_coe_inter_self + theorem Subtype.preimage_coe_nonempty + theorem Subtype.preimage_val_eq_preimage_val_iff + theorem Subtype.range_coe + theorem Subtype.range_coe_subtype + theorem Subtype.range_val + theorem Subtype.range_val_subtype + theorem Sum.range_eq + theorem WithBot.range_eq + theorem WithTop.range_eq 2022-12-12 05:26:01 d29c2cb feat: port algebra.order.group.with_top (#946) Tracking mathlib commit: [f178c0e25af359f6cbc72a96a243efd3b12423a3](https://github.com/leanprover-community/mathlib/commit/f178c0e25af359f6cbc72a96a243efd3b12423a3) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Order/Group/WithTop.lean + theorem WithTop.coe_neg Modified Mathlib/Algebra/Order/Monoid/WithTop.lean 2022-12-12 05:26:00 3bd418e Algebra.order.sub.basic (#936) 10b4e499f43088dd3bb7b5796184ad5216648ab1 Easy one ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Order/Sub/Basic.lean + theorem AddHom.le_map_tsub + theorem AddMonoidHom.le_map_tsub + theorem OrderIso.map_tsub + theorem le_mul_tsub + theorem le_tsub_mul 2022-12-12 05:12:26 8ecca6f feat port: Algebra.EuclideanDomain.Basic (#919) 655994e298904d7e5bbd1e18c95defd7b543eb94 I also added some #align in Logic.Basic and added the theorem `by_cases` which is aligned to `classical.by_cases` in Lean3 There is one very ugly proof of `xgcdAux_P` because I wasn't sure how best to prove a statement like `∀ {x : α}, p x` when I don't want to introduce the variable `x` ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/EuclideanDomain/Basic.lean + theorem EuclideanDomain.div_dvd_of_dvd + theorem EuclideanDomain.div_one + theorem EuclideanDomain.div_self + theorem EuclideanDomain.dvd_div_of_mul_dvd + theorem EuclideanDomain.dvd_gcd + theorem EuclideanDomain.dvd_lcm_left + theorem EuclideanDomain.dvd_lcm_right + theorem EuclideanDomain.dvd_mod_iff + theorem EuclideanDomain.eq_div_of_mul_eq_left + theorem EuclideanDomain.eq_div_of_mul_eq_right + theorem EuclideanDomain.gcd_dvd + theorem EuclideanDomain.gcd_dvd_left + theorem EuclideanDomain.gcd_dvd_right + theorem EuclideanDomain.gcd_eq_gcd_ab + theorem EuclideanDomain.gcd_eq_left + theorem EuclideanDomain.gcd_mul_lcm + theorem EuclideanDomain.gcd_one_left + theorem EuclideanDomain.gcd_self + theorem EuclideanDomain.gcd_val + theorem EuclideanDomain.gcd_zero_right + theorem EuclideanDomain.lcm_dvd + theorem EuclideanDomain.lcm_dvd_iff + theorem EuclideanDomain.lcm_eq_zero_iff + theorem EuclideanDomain.lcm_zero_left + theorem EuclideanDomain.lcm_zero_right + theorem EuclideanDomain.mod_eq_zero + theorem EuclideanDomain.mod_one + theorem EuclideanDomain.mod_self + theorem EuclideanDomain.mul_div_assoc + theorem EuclideanDomain.mul_div_cancel + theorem EuclideanDomain.mul_div_cancel_left + theorem EuclideanDomain.mul_div_mul_cancel + theorem EuclideanDomain.mul_div_mul_comm_of_dvd_dvd + theorem EuclideanDomain.xgcdAux_P + theorem EuclideanDomain.xgcdAux_fst + theorem EuclideanDomain.xgcdAux_val + theorem EuclideanDomain.zero_div + theorem EuclideanDomain.zero_mod Modified Mathlib/Algebra/EuclideanDomain/Defs.lean Modified Mathlib/Logic/Basic.lean + theorem by_cases 2022-12-12 02:05:47 c37887c feat: port algebra.group.opposite (#912) Based off Mathlib3 SHA: 655994e298904d7e5bbd1e18c95defd7b543eb94 ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Group/Opposite.lean + def AddEquiv.mulOp + def AddEquiv.mulUnop + def AddHom.mulOp + def AddHom.mulUnop + def AddMonoidHom.mulOp + def AddMonoidHom.mulUnop + theorem AddMonoidHom.mul_op_ext + def AddOpposite.opMulEquiv + theorem AddOpposite.op_mul_equiv_to_equiv + theorem AddOpposite.op_pow + theorem AddOpposite.unop_pow + theorem Commute.op + def MonoidHom.fromOpposite + def MonoidHom.op + def MonoidHom.toOpposite + def MonoidHom.unop + def MulEquiv.inv' + def MulEquiv.op + def MulEquiv.unop + def MulHom.fromOpposite + def MulHom.op + def MulHom.toOpposite + def MulHom.unop + theorem MulOpposite.Commute.unop + theorem MulOpposite.commute_op + theorem MulOpposite.commute_unop + def MulOpposite.opAddEquiv + theorem MulOpposite.op_add_equiv_to_equiv + theorem MulOpposite.op_div + theorem MulOpposite.semiconj_by_op + theorem MulOpposite.semiconj_by_unop + theorem MulOpposite.unop_div + theorem SemiconjBy.op + theorem SemiconjBy.unop + theorem Units.coe_op_equiv_symm + theorem Units.coe_unop_op_equiv + def Units.opEquiv Modified Mathlib/Algebra/Hom/Equiv/Basic.lean + def MulEquiv.Simps.apply 2022-12-12 01:34:02 f1dedcd feat: port Data.Set.Basic (#892) 1b36dabc50929b36caec16306358a5cc44ab441e If more PRs arrive in mathlib that slice up Data.Set.Basic, that's okay, we'll just delete the relevant sections here. TODO: finish linting ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Data/Set/Basic.lean + theorem Disjoint.inter_eq + theorem Eq.subset + theorem Function.Injective.nonempty_apply_iff + theorem Membership.Mem.out + def Set.Elem + theorem Set.MemUnion.elim + theorem Set.Nonempty.eq_univ + theorem Set.Nonempty.inl + theorem Set.Nonempty.inr + theorem Set.Nonempty.left + theorem Set.Nonempty.mono + theorem Set.Nonempty.not_subset_empty + theorem Set.Nonempty.of_diff + theorem Set.Nonempty.right + theorem Set.Nonempty.subset_singleton_iff + theorem Set.Nonempty.to_subtype + theorem Set.Nonempty.to_type + theorem Set.Nontrivial.exists_lt + theorem Set.Nontrivial.exists_ne + theorem Set.Nontrivial.mono + theorem Set.Nontrivial.ne_singleton + theorem Set.Nontrivial.not_subset_empty + theorem Set.Nontrivial.not_subset_singleton + theorem Set.Nontrivial.pair_subset + theorem Set.Subset.antisymm + theorem Set.Subset.antisymm_iff + theorem Set.Subset.refl + theorem Set.Subset.rfl + theorem Set.Subset.trans + theorem Set.Subsingleton.anti + theorem Set.Subsingleton.coe_sort + theorem Set.Subsingleton.eq_empty_or_singleton + theorem Set.Subsingleton.eq_singleton_of_mem + theorem Set.Subsingleton.induction_on + theorem Set.antitoneOn_iff_antitone + theorem Set.antitoneOn_singleton + theorem Set.ball_empty_iff + theorem Set.ball_insert_iff + theorem Set.bex_insert_iff + theorem Set.bot_eq_empty + theorem Set.coe_eq_subtype + theorem Set.coe_inclusion + theorem Set.coe_setOf + theorem Set.compl_def + theorem Set.compl_empty + theorem Set.compl_empty_iff + theorem Set.compl_eq_univ_diff + theorem Set.compl_inter + theorem Set.compl_inter_self + theorem Set.compl_ne_eq_singleton + theorem Set.compl_ne_univ + theorem Set.compl_setOf + theorem Set.compl_singleton_eq + theorem Set.compl_subset_comm + theorem Set.compl_subset_compl + theorem Set.compl_subset_iff_union + theorem Set.compl_union + theorem Set.compl_union_self + theorem Set.compl_univ + theorem Set.compl_univ_iff + theorem Set.default_coe_singleton + theorem Set.diff_compl + theorem Set.diff_diff + theorem Set.diff_diff_cancel_left + theorem Set.diff_diff_comm + theorem Set.diff_diff_right + theorem Set.diff_diff_right_self + theorem Set.diff_empty + theorem Set.diff_eq + theorem Set.diff_eq_compl_inter + theorem Set.diff_eq_empty + theorem Set.diff_eq_self + theorem Set.diff_inter + theorem Set.diff_inter_diff + theorem Set.diff_inter_self + theorem Set.diff_inter_self_eq_diff + theorem Set.diff_self + theorem Set.diff_self_inter + theorem Set.diff_singleton_eq_self + theorem Set.diff_singleton_subset_iff + theorem Set.diff_subset + theorem Set.diff_subset_comm + theorem Set.diff_subset_diff + theorem Set.diff_subset_diff_left + theorem Set.diff_subset_diff_right + theorem Set.diff_subset_iff + theorem Set.diff_union_inter + theorem Set.diff_union_of_subset + theorem Set.diff_union_self + theorem Set.diff_univ + theorem Set.disjoint_compl_left_iff_subset + theorem Set.disjoint_compl_right_iff_subset + theorem Set.disjoint_iff_inter_eq_empty + theorem Set.disjoint_left + theorem Set.disjoint_right + theorem Set.empty_def + theorem Set.empty_diff + theorem Set.empty_inter + theorem Set.empty_ne_univ + theorem Set.empty_ssubset + theorem Set.empty_ssubset_singleton + theorem Set.empty_subset + theorem Set.empty_union + theorem Set.eq_empty_iff_forall_not_mem + theorem Set.eq_empty_of_forall_not_mem + theorem Set.eq_empty_of_isEmpty + theorem Set.eq_empty_of_ssubset_singleton + theorem Set.eq_empty_of_subset_empty + theorem Set.eq_empty_or_nonempty + theorem Set.eq_of_inclusion_surjective + theorem Set.eq_of_mem_singleton + theorem Set.eq_of_not_mem_of_mem_insert + theorem Set.eq_of_subset_of_subset + theorem Set.eq_or_mem_of_mem_insert + theorem Set.eq_singleton_iff_nonempty_unique_mem + theorem Set.eq_singleton_iff_unique_mem + theorem Set.eq_univ_iff_forall + theorem Set.eq_univ_of_forall + theorem Set.eq_univ_of_subset + theorem Set.exists_eq_singleton_iff_nonempty_subsingleton + theorem Set.exists_mem_of_nonempty + theorem Set.exists_of_ssubset + theorem Set.ext_iff + theorem Set.forall_in_swap + theorem Set.forall_insert_of_forall + theorem Set.forall_of_forall_insert + def Set.inclusion + theorem Set.inclusion_comp_inclusion + theorem Set.inclusion_eq_id + theorem Set.inclusion_inclusion + theorem Set.inclusion_injective + theorem Set.inclusion_mk + theorem Set.inclusion_right + theorem Set.inclusion_self + theorem Set.inf_eq_inter + theorem Set.insert_comm + theorem Set.insert_def + theorem Set.insert_diff_eq_singleton + theorem Set.insert_diff_of_mem + theorem Set.insert_diff_of_not_mem + theorem Set.insert_diff_self_of_not_mem + theorem Set.insert_diff_singleton + theorem Set.insert_eq + theorem Set.insert_eq_of_mem + theorem Set.insert_eq_self + theorem Set.insert_idem + theorem Set.insert_inj + theorem Set.insert_inter_distrib + theorem Set.insert_inter_of_mem + theorem Set.insert_inter_of_not_mem + theorem Set.insert_ne_self + theorem Set.insert_nonempty + theorem Set.insert_subset + theorem Set.insert_subset_insert + theorem Set.insert_subset_insert_iff + theorem Set.insert_union + theorem Set.insert_union_distrib + theorem Set.inter_assoc + theorem Set.inter_comm + theorem Set.inter_compl_nonempty_iff + theorem Set.inter_compl_self + theorem Set.inter_congr_left + theorem Set.inter_congr_right + theorem Set.inter_def + theorem Set.inter_diff_assoc + theorem Set.inter_diff_self + theorem Set.inter_distrib_left + theorem Set.inter_distrib_right + theorem Set.inter_empty + theorem Set.inter_eq_compl_compl_union_compl + theorem Set.inter_eq_inter_iff_left + theorem Set.inter_eq_inter_iff_right + theorem Set.inter_eq_left_iff_subset + theorem Set.inter_eq_right_iff_subset + theorem Set.inter_eq_self_of_subset_left + theorem Set.inter_eq_self_of_subset_right + theorem Set.inter_insert_of_mem + theorem Set.inter_insert_of_not_mem + theorem Set.inter_inter_distrib_left + theorem Set.inter_inter_distrib_right + theorem Set.inter_inter_inter_comm + theorem Set.inter_left_comm + theorem Set.inter_nonempty + theorem Set.inter_nonempty_iff_exists_left + theorem Set.inter_nonempty_iff_exists_right + theorem Set.inter_right_comm + theorem Set.inter_self + theorem Set.inter_singleton_eq_empty + theorem Set.inter_singleton_nonempty + theorem Set.inter_subset + theorem Set.inter_subset_inter + theorem Set.inter_subset_inter_left + theorem Set.inter_subset_inter_right + theorem Set.inter_subset_ite + theorem Set.inter_subset_left + theorem Set.inter_subset_right + theorem Set.inter_symmDiff_distrib_left + theorem Set.inter_symmDiff_distrib_right + theorem Set.inter_union_compl + theorem Set.inter_union_diff + theorem Set.inter_union_distrib_left + theorem Set.inter_union_distrib_right + theorem Set.inter_univ + theorem Set.isEmpty_coe_sort + theorem Set.ite_compl + theorem Set.ite_diff_self + theorem Set.ite_empty + theorem Set.ite_empty_left + theorem Set.ite_empty_right + theorem Set.ite_inter + theorem Set.ite_inter_compl_self + theorem Set.ite_inter_inter + theorem Set.ite_inter_of_inter_eq + theorem Set.ite_inter_self + theorem Set.ite_left + theorem Set.ite_mono + theorem Set.ite_right + theorem Set.ite_same + theorem Set.ite_subset_union + theorem Set.ite_univ + theorem Set.le_eq_subset + theorem Set.le_iff_subset + theorem Set.lt_eq_ssubset + theorem Set.lt_iff_ssubset + theorem Set.mem_compl + theorem Set.mem_compl_iff + theorem Set.mem_compl_singleton_iff + theorem Set.mem_def + theorem Set.mem_diff + theorem Set.mem_diff_of_mem + theorem Set.mem_diff_singleton + theorem Set.mem_diff_singleton_empty + theorem Set.mem_dite + theorem Set.mem_dite_empty_left + theorem Set.mem_dite_empty_right + theorem Set.mem_dite_univ_left + theorem Set.mem_dite_univ_right + theorem Set.mem_empty_iff_false + theorem Set.mem_insert + theorem Set.mem_insert_iff + theorem Set.mem_insert_of_mem + theorem Set.mem_inter + theorem Set.mem_inter_iff + theorem Set.mem_ite_empty_left + theorem Set.mem_ite_empty_right + theorem Set.mem_ite_univ_left + theorem Set.mem_ite_univ_right + theorem Set.mem_of_eq_of_mem + theorem Set.mem_of_mem_diff + theorem Set.mem_of_mem_insert_of_ne + theorem Set.mem_of_mem_inter_left + theorem Set.mem_of_mem_inter_right + theorem Set.mem_of_mem_of_subset + theorem Set.mem_of_subset_of_mem + theorem Set.mem_or_mem_of_mem_union + theorem Set.mem_powerset + theorem Set.mem_powerset_iff + theorem Set.mem_sep + theorem Set.mem_sep_iff + theorem Set.mem_setOf + theorem Set.mem_singleton + theorem Set.mem_singleton_iff + theorem Set.mem_singleton_of_eq + theorem Set.mem_symmDiff + theorem Set.mem_union + theorem Set.mem_union_left + theorem Set.mem_union_right + theorem Set.mem_univ + theorem Set.monotoneOn_iff_monotone + theorem Set.monotoneOn_singleton + theorem Set.monotone_powerset + theorem Set.ne_insert_of_not_mem + theorem Set.ne_univ_iff_exists_not_mem + theorem Set.nmem_setOf_iff + theorem Set.nmem_singleton_empty + theorem Set.nonempty_coe_sort + theorem Set.nonempty_compl + theorem Set.nonempty_def + theorem Set.nonempty_diff + theorem Set.nonempty_iff_ne_empty + theorem Set.nonempty_iff_univ_nonempty + theorem Set.nonempty_of_mem + theorem Set.nonempty_of_nonempty_subtype + theorem Set.nonempty_of_not_subset + theorem Set.nonempty_of_ssubset' + theorem Set.nonempty_of_ssubset + theorem Set.nontrivial_coe_sort + theorem Set.nontrivial_iff_exists_lt + theorem Set.nontrivial_iff_exists_ne + theorem Set.nontrivial_iff_pair_subset + theorem Set.nontrivial_mono + theorem Set.nontrivial_of_exists_lt + theorem Set.nontrivial_of_exists_ne + theorem Set.nontrivial_of_lt + theorem Set.nontrivial_of_mem_mem_ne + theorem Set.nontrivial_of_nontrivial + theorem Set.nontrivial_of_nontrivial_coe + theorem Set.nontrivial_of_pair_subset + theorem Set.nontrivial_of_univ_nontrivial + theorem Set.nontrivial_pair + theorem Set.nontrivial_univ + theorem Set.nontrivial_univ_iff + theorem Set.not_mem_compl_iff + theorem Set.not_mem_diff_of_mem + theorem Set.not_mem_empty + theorem Set.not_mem_of_mem_compl + theorem Set.not_mem_of_mem_diff + theorem Set.not_mem_subset + theorem Set.not_monotoneOn_not_antitoneOn_iff_exists_le_le + theorem Set.not_monotoneOn_not_antitoneOn_iff_exists_lt_lt + theorem Set.not_nonempty_empty + theorem Set.not_nonempty_iff_eq_empty + theorem Set.not_nontrivial_empty + theorem Set.not_nontrivial_iff + theorem Set.not_nontrivial_singleton + theorem Set.not_not_mem + theorem Set.not_subset + theorem Set.not_subset_iff_exists_mem_not_mem + theorem Set.not_subsingleton_iff + theorem Set.pair_comm + theorem Set.pair_eq_pair_iff + theorem Set.pair_eq_singleton + theorem Set.powerset_empty + theorem Set.powerset_inter + theorem Set.powerset_mono + theorem Set.powerset_nonempty + theorem Set.powerset_univ + theorem Set.sep_and + theorem Set.sep_empty + theorem Set.sep_eq_empty_iff_mem_false + theorem Set.sep_eq_of_subset + theorem Set.sep_eq_self_iff_mem_true + theorem Set.sep_ext_iff + theorem Set.sep_false + theorem Set.sep_inter + theorem Set.sep_mem_eq + theorem Set.sep_or + theorem Set.sep_setOf + theorem Set.sep_subset + theorem Set.sep_true + theorem Set.sep_union + theorem Set.sep_univ + theorem Set.setOf_and + theorem Set.setOf_app_iff + theorem Set.setOf_bijective + theorem Set.setOf_eq_eq_singleton' + theorem Set.setOf_eq_eq_singleton + theorem Set.setOf_false + theorem Set.setOf_mem_eq + theorem Set.setOf_or + theorem Set.setOf_set + theorem Set.setOf_subset_setOf + theorem Set.setOf_true + theorem Set.set_compr_eq_eq_singleton + theorem Set.singleton_def + theorem Set.singleton_eq_singleton_iff + theorem Set.singleton_injective + theorem Set.singleton_inter_eq_empty + theorem Set.singleton_inter_nonempty + theorem Set.singleton_ne_empty + theorem Set.singleton_nonempty + theorem Set.singleton_subset_iff + theorem Set.singleton_union + theorem Set.ssubset_def + theorem Set.ssubset_iff_insert + theorem Set.ssubset_iff_of_subset + theorem Set.ssubset_insert + theorem Set.ssubset_singleton_iff + theorem Set.ssubset_univ_iff + theorem Set.strictAntiOn_iff_strictAnti + theorem Set.strictAntiOn_singleton + theorem Set.strictMonoOn_iff_strictMono + theorem Set.strictMonoOn_singleton + theorem Set.subset_compl_comm + theorem Set.subset_compl_iff_disjoint_left + theorem Set.subset_compl_iff_disjoint_right + theorem Set.subset_compl_singleton_iff + theorem Set.subset_def + theorem Set.subset_diff_singleton + theorem Set.subset_diff_union + theorem Set.subset_empty_iff + theorem Set.subset_eq_empty + theorem Set.subset_insert + theorem Set.subset_insert_diff_singleton + theorem Set.subset_inter + theorem Set.subset_inter_iff + theorem Set.subset_ite + theorem Set.subset_of_mem_powerset + theorem Set.subset_singleton_iff + theorem Set.subset_singleton_iff_eq + theorem Set.subset_symmDiff_union_symmDiff_left + theorem Set.subset_symmDiff_union_symmDiff_right + theorem Set.subset_union_compl_iff_inter_subset + theorem Set.subset_union_left + theorem Set.subset_union_of_subset_left + theorem Set.subset_union_of_subset_right + theorem Set.subset_union_right + theorem Set.subset_univ + theorem Set.subsingleton_coe + theorem Set.subsingleton_empty + theorem Set.subsingleton_iff_singleton + theorem Set.subsingleton_isBot + theorem Set.subsingleton_isTop + theorem Set.subsingleton_of_forall_eq + theorem Set.subsingleton_of_subset_singleton + theorem Set.subsingleton_of_subsingleton + theorem Set.subsingleton_of_univ_subsingleton + theorem Set.subsingleton_singleton + theorem Set.subsingleton_univ + theorem Set.subsingleton_univ_iff + theorem Set.sup_eq_union + theorem Set.symmDiff_eq_empty + theorem Set.symmDiff_nonempty + theorem Set.symmDiff_subset_union + theorem Set.top_eq_univ + theorem Set.union_assoc + theorem Set.union_comm + theorem Set.union_compl_self + theorem Set.union_congr_left + theorem Set.union_congr_right + theorem Set.union_def + theorem Set.union_diff_cancel' + theorem Set.union_diff_cancel + theorem Set.union_diff_cancel_left + theorem Set.union_diff_cancel_right + theorem Set.union_diff_distrib + theorem Set.union_diff_left + theorem Set.union_diff_right + theorem Set.union_diff_self + theorem Set.union_distrib_left + theorem Set.union_distrib_right + theorem Set.union_empty + theorem Set.union_empty_iff + theorem Set.union_eq_compl_compl_inter_compl + theorem Set.union_eq_diff_union_diff_union_inter + theorem Set.union_eq_left_iff_subset + theorem Set.union_eq_right_iff_subset + theorem Set.union_eq_self_of_subset_left + theorem Set.union_eq_self_of_subset_right + theorem Set.union_eq_union_iff_left + theorem Set.union_eq_union_iff_right + theorem Set.union_insert + theorem Set.union_inter_cancel_left + theorem Set.union_inter_cancel_right + theorem Set.union_inter_distrib_left + theorem Set.union_inter_distrib_right + theorem Set.union_left_comm + theorem Set.union_nonempty + theorem Set.union_right_comm + theorem Set.union_self + theorem Set.union_singleton + theorem Set.union_subset + theorem Set.union_subset_iff + theorem Set.union_subset_union + theorem Set.union_subset_union_left + theorem Set.union_subset_union_right + theorem Set.union_union_distrib_left + theorem Set.union_union_distrib_right + theorem Set.union_union_union_comm + theorem Set.union_univ + theorem Set.univ_eq_empty_iff + theorem Set.univ_eq_true_false + theorem Set.univ_inter + theorem Set.univ_nonempty + theorem Set.univ_subset_iff + theorem Set.univ_union + theorem Set.univ_unique + theorem SetCoe.exists' + theorem SetCoe.exists + theorem SetCoe.ext + theorem SetCoe.ext_iff + theorem SetCoe.forall' + theorem SetCoe.forall + theorem Subsingleton.eq_univ_of_nonempty + theorem Subsingleton.mem_iff_nonempty + theorem Subsingleton.set_cases + theorem Subtype.mem + theorem set_coe_cast 2022-12-12 00:45:13 26ae332 fix: to_additive doesn't translate invFun (#940) fixes #859 ESTIMATED CHANGES Modified Mathlib/Tactic/ToAdditive.lean Modified test/toAdditive.lean 2022-12-12 00:45:12 ee4887c fix: address unneeded-name warning in tests/SplitIfs (#924) Removes an unused name, surfaced by the warning added in #877. ESTIMATED CHANGES Modified test/SplitIfs.lean 2022-12-12 00:29:58 292fae2 fix: `@[to_additive, simps]` will now work correctly (#951) Fixes part 2 of #950. Possible after https://github.com/leanprover/lean4/commit/a999015371adcc5516f2994b95251f312e3c820c ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Units.lean Modified Mathlib/Tactic/Simps/Basic.lean Modified test/Simps.lean 2022-12-12 00:01:54 ce3c4a8 fix: to_additive now translates projections (#952) * Projections can occur in terms that use the structure notation `{ ... with ... }`. * Nobody submitted a MWE, so I didn't add a test (I don't know exactly how to ensure that a projection is included in a term). I did check that this fixes the issues in #944 and #912 * Closes #939, it fixes both comments mentioned there. ESTIMATED CHANGES Modified Mathlib/Tactic/ToAdditive.lean 2022-12-10 18:56:27 c4c6eb6 refactor: use `IsLeftCancelMul` etc (#945) This is the Lean 4 version of leanprover-community/mathlib#17884. ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Defs.lean Modified Mathlib/Algebra/Group/TypeTags.lean 2022-12-10 17:30:59 00d74e9 feat port: Algebra.Order.Sub.WithTop (#932) 10b4e499f43088dd3bb7b5796184ad5216648ab1 Very Easy ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Order/Sub/WithTop.lean + theorem WithTop.coe_sub + theorem WithTop.map_sub + theorem WithTop.sub_top + theorem WithTop.top_sub_coe 2022-12-10 16:27:03 a3dff18 feat port: Algebra.Order.Ring.Cone (#935) 10b4e499f43088dd3bb7b5796184ad5216648ab1 No real problems other than the fact that the new autogenerated name for `ring.total_positive_cone.to_positive_cone` is `Ring.TotalPositiveCone.toPositiveCone_1`. No idea why there is a `_1` at the end. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Order/Group/Defs.lean Added Mathlib/Algebra/Order/Ring/Cone.lean + def LinearOrderedRing.mkOfPositiveCone + theorem Ring.PositiveCone.one_pos + structure Ring.PositiveCone + structure Ring.TotalPositiveCone + def StrictOrderedRing.mkOfPositiveCone 2022-12-10 13:41:00 825e257 feat port: Algebra.Order.Ring.Abs (#929) 10b4e499f43088dd3bb7b5796184ad5216648ab1 Easy peasy ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Order/Ring/Abs.lean + def absHom + theorem abs_cases + theorem abs_dvd + theorem abs_dvd_abs + theorem abs_dvd_self + theorem abs_eq_iff_mul_self_eq + theorem abs_eq_neg_self + theorem abs_eq_self + theorem abs_le_iff_mul_self_le + theorem abs_le_one_iff_mul_self_le_one + theorem abs_lt_iff_mul_self_lt + theorem abs_mul + theorem abs_mul_abs_self + theorem abs_mul_self + theorem abs_one + theorem abs_sub_sq + theorem abs_two + theorem dvd_abs + theorem max_zero_add_max_neg_zero_eq_abs_self + theorem self_dvd_abs 2022-12-10 13:29:00 26c4856 feat port: Algebra.Order.Group.MinMax (#933) 10b4e499f43088dd3bb7b5796184ad5216648ab1 A couple of times I had to explicitly give a Type to a lemma so Type class inference would work. No issues other than that ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Order/Group/MinMax.lean + theorem abs_max_sub_max_le_abs + theorem abs_max_sub_max_le_max + theorem abs_min_sub_min_le_max + theorem max_div_div_left' + theorem max_div_div_right' + theorem max_inv_inv' + theorem max_one_div_max_inv_one_eq_self + theorem max_sub_max_le_max + theorem min_div_div_left' + theorem min_div_div_right' + theorem min_inv_inv' 2022-12-10 13:28:59 ce207d1 chore: generalize IsDomain.toCancelCommMonoidWithZero to semirings (#928) Corresponding mathlib3 PR: [#17877](https://github.com/leanprover-community/mathlib/pull/17877). ESTIMATED CHANGES Modified Mathlib/Algebra/Ring/Regular.lean 2022-12-10 13:28:58 0b6f3c2 feat: port Data.Nat.Order.Basic (#907) 655994e298904d7e5bbd1e18c95defd7b543eb94 - [x] depends on: #905 ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Data/Nat/Basic.lean Added Mathlib/Data/Nat/Order/Basic.lean + theorem Nat.add_eq_max_iff + theorem Nat.add_eq_min_iff + theorem Nat.add_eq_one_iff + theorem Nat.add_eq_three_iff + theorem Nat.add_eq_two_iff + theorem Nat.add_mod_eq_ite + theorem Nat.add_pos_iff_pos_or_pos + theorem Nat.add_pos_left + theorem Nat.add_pos_right + theorem Nat.add_succ_lt_add + theorem Nat.diag_induction + theorem Nat.div_dvd_of_dvd + theorem Nat.div_eq_self + theorem Nat.div_eq_sub_mod_div + theorem Nat.div_mul_div_comm + theorem Nat.div_mul_div_le_div + theorem Nat.dvd_sub_mod + theorem Nat.eq_one_of_mul_eq_one_left + theorem Nat.eq_one_of_mul_eq_one_right + theorem Nat.eq_zero_of_double_le + theorem Nat.eq_zero_of_le_div + theorem Nat.eq_zero_of_le_half + theorem Nat.eq_zero_of_mul_le + theorem Nat.findGreatest_eq_iff + theorem Nat.findGreatest_eq_zero_iff + theorem Nat.findGreatest_is_greatest + theorem Nat.findGreatest_le + theorem Nat.findGreatest_mono + theorem Nat.findGreatest_mono_left + theorem Nat.findGreatest_mono_right + theorem Nat.findGreatest_of_ne_zero + theorem Nat.findGreatest_spec + theorem Nat.find_add + theorem Nat.find_pos + theorem Nat.le_add_one_iff + theorem Nat.le_add_pred_of_pos + theorem Nat.le_and_le_add_one_iff + theorem Nat.le_findGreatest + theorem Nat.le_mul_of_pos_left + theorem Nat.le_mul_of_pos_right + theorem Nat.le_mul_self + theorem Nat.le_or_le_of_add_eq_add_pred + theorem Nat.lt_mul_self_iff + theorem Nat.lt_of_lt_pred + theorem Nat.lt_one_iff + theorem Nat.lt_pred_iff + theorem Nat.max_eq_zero_iff + theorem Nat.min_eq_zero_iff + theorem Nat.mod_mul_left_div_self + theorem Nat.mod_mul_right_div_self + theorem Nat.mul_div_mul_comm_of_dvd_dvd + theorem Nat.mul_eq_one_iff + theorem Nat.mul_self_inj + theorem Nat.mul_self_le_mul_self + theorem Nat.mul_self_le_mul_self_iff + theorem Nat.mul_self_lt_mul_self + theorem Nat.mul_self_lt_mul_self_iff + theorem Nat.not_dvd_of_between_consec_multiples + theorem Nat.not_dvd_of_pos_of_lt + theorem Nat.one_le_iff_ne_zero + theorem Nat.one_le_of_lt + theorem Nat.one_lt_iff_ne_zero_and_ne_one + theorem Nat.one_mod + theorem Nat.pred_le_iff + theorem Nat.set_induction + theorem Nat.set_induction_bounded + theorem Nat.sub_mod_eq_zero_of_mod_eq + theorem Nat.sub_succ' + theorem Nat.succ_mul_pos + theorem Nat.two_le_iff + theorem Nat.two_mul_odd_div_two + theorem Nat.zero_max Modified Mathlib/Init/Data/Nat/Lemmas.lean + theorem Nat.eq_zero_of_mul_eq_zero 2022-12-10 13:15:52 6bd866e feat port: Algebra.Invertible (#930) 10b4e499f43088dd3bb7b5796184ad5216648ab1 I had to import `norm_num` and generalize some proofs in another file from `Semiring` to `NonAssocSemiring`. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Invertible.lean + theorem Commute.invOf_left + theorem Commute.invOf_right + def Invertible.copy + def Invertible.map + def Invertible.ofLeftInverse + theorem IsUnit.nonempty_invertible + theorem Ring.inverse_invertible + def Units.invertible + theorem commute_invOf + theorem div_mul_cancel_of_invertible + theorem div_self_of_invertible + theorem invOf_div + theorem invOf_eq_group_inv + theorem invOf_eq_inv + theorem invOf_eq_left_inv + theorem invOf_eq_right_inv + theorem invOf_inj + theorem invOf_invOf + theorem invOf_mul + theorem invOf_mul_self + theorem invOf_mul_self_assoc + theorem invOf_neg + theorem invOf_one + theorem invOf_two_add_invOf_two + theorem invOf_units + theorem inv_mul_cancel_of_invertible + def invertibleDiv + def invertibleEquivOfLeftInverse + def invertibleInv + def invertibleMul + def invertibleNeg + def invertibleOfGroup + def invertibleOfNonzero + def invertibleOne + theorem invertible_unique + theorem isUnit_of_invertible + theorem map_invOf + theorem mul_div_cancel_of_invertible + theorem mul_invOf_mul_self_cancel + theorem mul_invOf_self + theorem mul_invOf_self_assoc + theorem mul_inv_cancel_of_invertible + theorem mul_mul_inv_of_self_cancel + theorem nonempty_invertible_iff_is_unit + theorem nonzero_of_invertible + theorem one_sub_invOf_two + def unitOfInvertible Modified Mathlib/Algebra/Ring/Defs.lean 2022-12-09 12:21:01 a461e54 feat port: Algebra.Ring.Idempotents (#918) 655994e298904d7e5bbd1e18c95defd7b543eb94 No real problems here. One `nth_rw` changed to a `conv_rhs` ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Ring/Idempotents.lean + theorem IsIdempotentElem.coe_compl + theorem IsIdempotentElem.coe_one + theorem IsIdempotentElem.coe_zero + theorem IsIdempotentElem.compl_compl + theorem IsIdempotentElem.eq + theorem IsIdempotentElem.iff_eq_one + theorem IsIdempotentElem.iff_eq_zero_or_one + theorem IsIdempotentElem.mul_of_commute + theorem IsIdempotentElem.of_isIdempotent + theorem IsIdempotentElem.one + theorem IsIdempotentElem.one_compl + theorem IsIdempotentElem.one_sub + theorem IsIdempotentElem.one_sub_iff + theorem IsIdempotentElem.pow + theorem IsIdempotentElem.pow_succ_eq + theorem IsIdempotentElem.zero + theorem IsIdempotentElem.zero_compl + def IsIdempotentElem 2022-12-09 06:47:59 a88ea9c feat: port Algebra.Order.Monoid.WithTop (#902) mathlib3: 655994e298904d7e5bbd1e18c95defd7b543eb94 - [x] depends on #910 Not too bad. Mostly renaming instances and a few broken proofs. Things to double-check (all marked with `Porting note`): - `lift` is not implemented yet, I replaced it with `induction`. - In `addSemigroup` I didn't get `repeat` or `repeat'` to work. That could be golfed. - In `WithTop.addHom` the anonymous constructor didn't work, but writing it out, it did. Is that expected? - I'm a bit unsure about coersions. I left in most things and removed (commented out) the lemma `coe_coe_add_hom`. Could be worth gleaming over anything that has `coe` in it's name. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Order/Monoid/WithTop.lean + theorem WithBot.add_bot + theorem WithBot.add_coe_eq_bot_iff + theorem WithBot.add_eq_bot + theorem WithBot.add_eq_coe + theorem WithBot.add_ne_bot + theorem WithBot.bot_add + theorem WithBot.bot_lt_add + theorem WithBot.bot_ne_nat + theorem WithBot.coe_add + theorem WithBot.coe_add_eq_bot_iff + theorem WithBot.coe_eq_one + theorem WithBot.coe_lt_one + theorem WithBot.coe_nat + theorem WithBot.coe_one + theorem WithBot.nat_ne_bot + theorem WithBot.one_lt_coe + def WithTop.addHom + theorem WithTop.add_coe_eq_top_iff + theorem WithTop.add_eq_coe + theorem WithTop.add_eq_top + theorem WithTop.add_lt_top + theorem WithTop.add_ne_top + theorem WithTop.add_top + theorem WithTop.coe_add + theorem WithTop.coe_add_eq_top_iff + theorem WithTop.coe_eq_one + theorem WithTop.coe_lt_one + theorem WithTop.coe_nat + theorem WithTop.coe_one + theorem WithTop.nat_ne_top + theorem WithTop.one_eq_coe + theorem WithTop.one_lt_coe + theorem WithTop.one_ne_top + theorem WithTop.top_add + theorem WithTop.top_ne_nat + theorem WithTop.top_ne_one + theorem WithTop.zero_lt_coe + theorem WithTop.zero_lt_top 2022-12-09 05:45:09 af17f03 chore: split Mathport/Notation.lean out of Mathport/Syntax.lean (#926) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Data/PSigma/Order.lean Modified Mathlib/Data/Sigma/Order.lean Added Mathlib/Mathport/Notation.lean Modified Mathlib/Mathport/Syntax.lean Modified Mathlib/Tactic/Core.lean Modified test/notation3.lean 2022-12-09 01:22:45 d53ae16 port: Algebra.Order.Group.Abs (#896) a95b16cbade0f938fc24abd05412bde1e84bab9b - [x] depends on: #895 Issues: * typeclass inference * the absolute value notation can't cope with nesting or leading minus signs. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Order/Group/Abs.lean + theorem abs_abs + theorem abs_abs_sub_abs_le_abs_sub + theorem abs_add' + theorem abs_add + theorem abs_add_three + theorem abs_by_cases + theorem abs_choice + theorem abs_eq + theorem abs_eq_abs + theorem abs_eq_max_neg + theorem abs_eq_sup_inv + theorem abs_eq_zero + theorem abs_le' + theorem abs_le + theorem abs_le_abs + theorem abs_le_abs_of_nonneg + theorem abs_le_abs_of_nonpos + theorem abs_le_max_abs_abs + theorem abs_lt + theorem abs_max_le_max_abs_abs + theorem abs_min_le_max_abs_abs + theorem abs_neg + theorem abs_nonneg + theorem abs_nonpos_iff + theorem abs_of_neg + theorem abs_of_nonneg + theorem abs_of_nonpos + theorem abs_of_pos + theorem abs_pos + theorem abs_pos_of_neg + theorem abs_pos_of_pos + theorem abs_sub + theorem abs_sub_abs_le_abs_sub + theorem abs_sub_comm + theorem abs_sub_le + theorem abs_sub_le_iff + theorem abs_sub_lt_iff + theorem abs_zero + theorem add_abs_nonneg + theorem apply_abs_le_mul_of_one_le' + theorem apply_abs_le_mul_of_one_le + theorem dist_bdd_within_interval + theorem eq_of_abs_sub_eq_zero + theorem eq_of_abs_sub_nonpos + theorem eq_or_eq_neg_of_abs_eq + theorem le_abs' + theorem le_abs + theorem le_abs_self + theorem le_of_abs_le + theorem lt_abs + theorem lt_of_abs_lt + theorem max_sub_min_eq_abs' + theorem max_sub_min_eq_abs + theorem min_abs_abs_le_abs_max + theorem min_abs_abs_le_abs_min + theorem neg_abs_le_neg + theorem neg_abs_le_self + theorem neg_le_abs_self + theorem neg_le_of_abs_le + theorem neg_lt_of_abs_lt + theorem sub_le_of_abs_sub_le_left + theorem sub_le_of_abs_sub_le_right + theorem sub_lt_of_abs_sub_lt_left + theorem sub_lt_of_abs_sub_lt_right 2022-12-09 01:07:50 b7e4881 feat: re-port Algebra.Order.Monoid.WithZero (#923) This file had been modified in mathlib3 since the commit that the first port was based on. Here is the mathlib3 commit that this port is based on: [4dc134b97a3de65ef2ed881f3513d56260971562](https://github.com/leanprover-community/mathlib/commit/4dc134b97a3de65ef2ed881f3513d56260971562) The first commit here is the output of mathport on that commit, in case anyone wants to check the diff. ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Monoid/WithZero/Defs.lean 2022-12-09 01:07:49 8d5dfca feat: port Algebra.Order.Group.TypeTags (#921) mathlib3 SHA: 4dc134b97a3de65ef2ed881f3513d56260971562 porting notes: none ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Group/TypeTags.lean Added Mathlib/Algebra/Order/Group/TypeTags.lean 2022-12-09 01:07:47 300aa6f feat: port Algebra.GroupWithZero.Units.Lemmas (#920) Port of Algebra.GroupWithZero.Units.Lemmas based on 4dc134b97a3de65ef2ed881f3513d56260971562 ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/GroupWithZero/Units/Lemmas.lean + theorem MonoidWithZero.coe_inverse + theorem MonoidWithZero.inverse_apply + theorem Units.smul_mk0 + theorem div_div_cancel' + theorem div_div_div_cancel_right + theorem div_eq_div_iff + theorem div_eq_iff + theorem div_eq_iff_mul_eq + theorem div_eq_of_eq_mul + theorem div_eq_one_iff_eq + theorem div_helper + theorem div_left_inj' + theorem div_mul_cancel + theorem div_mul_cancel_of_imp + theorem div_mul_div_cancel + theorem div_mul_left + theorem div_mul_right + theorem div_self + theorem divp_mk0 + theorem eq_div_iff + theorem eq_div_iff_mul_eq + theorem eq_div_of_mul_eq + theorem eq_inv_mul_iff_mul_eq₀ + theorem eq_mul_inv_iff_mul_eq₀ + theorem eq_on_inv₀ + def invMonoidWithZeroHom + theorem inv_mul_eq_iff_eq_mul₀ + theorem inv_mul_eq_one₀ + theorem map_div₀ + theorem map_eq_zero + theorem map_inv₀ + theorem map_ne_zero + theorem mul_div_cancel' + theorem mul_div_cancel + theorem mul_div_cancel_left + theorem mul_div_cancel_left_of_imp + theorem mul_div_cancel_of_imp' + theorem mul_div_cancel_of_imp + theorem mul_div_mul_left + theorem mul_div_mul_right + theorem mul_eq_mul_of_div_eq_div + theorem mul_eq_one_iff_eq_inv₀ + theorem mul_eq_one_iff_inv_eq₀ + theorem mul_inv_eq_iff_eq_mul₀ + theorem mul_inv_eq_one₀ + theorem mul_mul_div + theorem mul_one_div_cancel + theorem one_div_mul_cancel 2022-12-09 01:07:46 25710f3 feat port: Algebra.Order.Ring.InjSurj (#917) 655994e298904d7e5bbd1e18c95defd7b543eb94 No real problems here ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Order/Ring/InjSurj.lean + def Function.Injective.linearOrderedRing 2022-12-09 01:07:45 e8ca847 feat port: Algebra.Order.Group.InjSurj (#916) 655994e298904d7e5bbd1e18c95defd7b543eb94 No problems here ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Order/Group/InjSurj.lean + def Function.Injective.linearOrderedCommGroup + def Function.Injective.orderedCommGroup 2022-12-09 01:07:44 a388280 feat port:Algebra.Order.Positive.Ring (#911) 655994e298904d7e5bbd1e18c95defd7b543eb94 Renaming `coe_mul` etc to `val_mul` and giving names to instances the only real changes here. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Order/Positive/Ring.lean + theorem Positive.coe_add + theorem Positive.val_mul + theorem Positive.val_one + theorem Positive.val_pow 2022-12-09 00:56:04 f4eb906 feat: port Algebra.Group.WithOne.Basic (#922) mathlib3 SHA: 4dc134b97a3de65ef2ed881f3513d56260971562 porting notes: 1. In `WithOne.lift` mathport's output was broken, but I think the only reason was that it was parenthesized wrong (or maybe it was a whitespace / formatting issue?) 2. In `MulEquiv.withOneCongr`, there were some `simp` calls that broke. I think this is a result of the way coercions are handled now. I think the net result is that `simp` doesn't get it into a form where it can apply `Equiv.symm_apply_apply`. 3. I added the `to_additive` attribute to `MulEquiv.withOneCongr_{refl, symm, trans}` because it just seemed to be missing from mathlib3. 4. `WithOne` already has semireducible transparency in mathlib4, so we are just ignoring the changing of transparency settings (this isn't even possible in Lean 4); see [Zulip](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/local.20semireducible) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Group/WithOne/Basic.lean + def MulEquiv.withOneCongr + theorem MulEquiv.withOneCongr_refl + theorem MulEquiv.withOneCongr_symm + theorem MulEquiv.withOneCongr_trans + def WithOne.coeMulHom + def WithOne.lift + theorem WithOne.lift_coe + theorem WithOne.lift_one + theorem WithOne.lift_unique + def WithOne.map + theorem WithOne.map_coe + theorem WithOne.map_comp + theorem WithOne.map_id + theorem WithOne.map_map 2022-12-08 22:23:57 87024ff chore: remove no-longer-needed sorries from Abel.lean (#915) * `one_zsmul` and `zsmul_zero` were added for real in #874, so we no longer need to stub them out. * We can now remove the sorries in `zero_smulg` and `term_smul`. ESTIMATED CHANGES Modified Mathlib/Tactic/Abel.lean - theorem Mathlib.Tactic.Abel.one_zsmul - theorem Mathlib.Tactic.Abel.zsmul_zero 2022-12-08 18:55:10 501d5f2 chore: refactor is_domain to allow semirings (#875) We refactor `is_domain` to allow semirings. Corresponding mathlib PR [#17831](https://github.com/leanprover-community/mathlib/pull/17831). ESTIMATED CHANGES Modified Mathlib/Algebra/Ring/Defs.lean 2022-12-08 12:56:04 5373d5e chore: naming instances around `WithBot`, `WithTop`, `WithOne` and `WithZero` (#910) `#align`s are missing, I'm having a hard time guessing the lean3 instance names... ESTIMATED CHANGES Modified Mathlib/Algebra/Group/WithOne/Defs.lean Modified Mathlib/Algebra/Order/Monoid/WithZero/Defs.lean Modified Mathlib/Order/WithBot.lean 2022-12-08 08:00:46 01f67d6 chore: remove stray debug statement in split_ifs (#909) ESTIMATED CHANGES Modified Mathlib/Tactic/SplitIfs.lean 2022-12-08 07:28:44 51eda27 feat: port Algebra.Order.[Ring|Field].Defs (#905) 655994e298904d7e5bbd1e18c95defd7b543eb94 Ports: * `Algebra.Order.Ring.Defs` * `Algebra.Order.Ring.Canonical` * `Algebra.Order.Ring.CharZero` * `Algebra.Order.Field.Defs` Todo: * [x] Fix a few proofs; nothing looks bad. * [x] Deal with unused arguments. * [x] Check #aligns * [x] Fix casing of names in comments. * [x] Long lines * [x] Linting * [x] Remove old `Algebra.Order.Ring` ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Group/Basic.lean + theorem bit0_add + theorem bit0_zero + theorem bit1_add' + theorem bit1_add + theorem bit1_zero Modified Mathlib/Algebra/Group/Defs.lean Added Mathlib/Algebra/Order/Field/Defs.lean Deleted Mathlib/Algebra/Order/Ring.lean Added Mathlib/Algebra/Order/Ring/Canonical.lean + theorem CanonicallyOrderedCommSemiring.mul_pos + theorem mul_add_mul_le_mul_add_mul' + theorem mul_add_mul_le_mul_add_mul + theorem mul_add_mul_lt_mul_add_mul' + theorem mul_add_mul_lt_mul_add_mul + theorem mul_tsub + theorem tsub_mul Added Mathlib/Algebra/Order/Ring/CharZero.lean Added Mathlib/Algebra/Order/Ring/Defs.lean + theorem Antitone.const_mul + theorem Antitone.const_mul_of_nonpos + theorem Antitone.mul + theorem Antitone.mul_const + theorem Antitone.mul_const_of_nonpos + theorem Antitone.mul_monotone + theorem Monotone.const_mul + theorem Monotone.const_mul_of_nonpos + theorem Monotone.mul + theorem Monotone.mul_antitone + theorem Monotone.mul_const + theorem Monotone.mul_const_of_nonpos + theorem Monotone.mul_strict_mono + theorem StrictAnti.const_mul + theorem StrictAnti.const_mul_of_neg + theorem StrictAnti.mul_const + theorem StrictAnti.mul_const_of_neg + theorem StrictMono.const_mul + theorem StrictMono.const_mul_of_neg + theorem StrictMono.mul + theorem StrictMono.mul_const + theorem StrictMono.mul_const_of_neg + theorem StrictMono.mul_monotone + def StrictOrderedCommRing.toOrderedCommRing' + def StrictOrderedCommSemiring.toOrderedCommSemiring' + def StrictOrderedRing.toOrderedRing' + def StrictOrderedSemiring.toOrderedSemiring' + theorem Units.inv_neg + theorem Units.inv_pos + theorem add_le_mul' + theorem add_le_mul + theorem add_le_mul_of_left_le_right + theorem add_le_mul_of_right_le_left + theorem add_le_mul_two_add + theorem add_one_le_two_mul + theorem antitone_mul_left + theorem antitone_mul_right + theorem bit0_le_bit0 + theorem bit0_lt_bit0 + theorem bit1_le_bit1 + theorem bit1_lt_bit1 + theorem bit1_mono + theorem bit1_pos' + theorem bit1_pos + theorem cmp_mul_neg_left + theorem cmp_mul_neg_right + theorem cmp_mul_pos_left + theorem cmp_mul_pos_right + theorem eq_zero_of_mul_self_add_mul_self_eq_zero + theorem le_iff_exists_nonneg_add + theorem le_neg_self_iff + theorem le_of_mul_le_of_one_le + theorem lt_mul_left + theorem lt_mul_right + theorem lt_mul_self + theorem lt_neg_self_iff + theorem lt_of_mul_lt_mul_of_nonpos_left + theorem lt_of_mul_lt_mul_of_nonpos_right + theorem lt_two_mul_self + theorem max_mul_mul_le_max_mul_max + theorem max_mul_of_nonneg + theorem min_mul_of_nonneg + theorem monotone_mul_left_of_nonneg + theorem monotone_mul_right_of_nonneg + theorem mul_le_mul_left_of_neg + theorem mul_le_mul_of_nonneg_of_nonpos' + theorem mul_le_mul_of_nonneg_of_nonpos + theorem mul_le_mul_of_nonpos_left + theorem mul_le_mul_of_nonpos_of_nonneg' + theorem mul_le_mul_of_nonpos_of_nonneg + theorem mul_le_mul_of_nonpos_of_nonpos' + theorem mul_le_mul_of_nonpos_of_nonpos + theorem mul_le_mul_of_nonpos_right + theorem mul_le_mul_right_of_neg + theorem mul_le_one + theorem mul_lt_mul'' + theorem mul_lt_mul' + theorem mul_lt_mul + theorem mul_lt_mul_left_of_neg + theorem mul_lt_mul_of_neg_left + theorem mul_lt_mul_of_neg_right + theorem mul_lt_mul_right_of_neg + theorem mul_lt_one_of_nonneg_of_lt_one_left + theorem mul_lt_one_of_nonneg_of_lt_one_right + theorem mul_max_of_nonneg + theorem mul_min_of_nonneg + theorem mul_neg_iff + theorem mul_nonneg_iff + theorem mul_nonneg_iff_left_nonneg_of_pos + theorem mul_nonneg_iff_right_nonneg_of_pos + theorem mul_nonneg_of_nonpos_of_nonpos + theorem mul_nonneg_of_three + theorem mul_nonpos_iff + theorem mul_pos_iff + theorem mul_pos_of_neg_of_neg + theorem mul_self_add_mul_self_eq_zero + theorem mul_self_inj + theorem mul_self_le_mul_self_iff + theorem mul_self_le_mul_self_of_le_of_neg_le + theorem mul_self_lt_mul_self + theorem mul_self_lt_mul_self_iff + theorem mul_self_nonneg + theorem mul_self_pos + theorem neg_iff_pos_of_mul_neg + theorem neg_le_self_iff + theorem neg_lt_self_iff + theorem neg_of_mul_neg_left + theorem neg_of_mul_neg_right + theorem neg_one_lt_zero + theorem nonneg_and_nonneg_or_nonpos_and_nonpos_of_mul_nnonneg + theorem nonneg_le_nonneg_of_sq_le_sq + theorem nonneg_of_mul_nonneg_left + theorem nonneg_of_mul_nonneg_right + theorem nonneg_of_mul_nonpos_left + theorem nonneg_of_mul_nonpos_right + theorem nonpos_of_mul_nonneg_left + theorem nonpos_of_mul_nonneg_right + theorem nonpos_of_mul_nonpos_left + theorem nonpos_of_mul_nonpos_right + theorem one_le_bit1 + theorem one_le_mul_of_one_le_of_one_le + theorem one_lt_bit1 + theorem one_lt_mul_of_le_of_lt + theorem one_lt_mul_of_lt_of_le + theorem pos_iff_neg_of_mul_neg + theorem pos_of_mul_neg_left + theorem pos_of_mul_neg_right + theorem pow_nonneg + theorem pow_pos + theorem strict_anti_mul_left + theorem strict_anti_mul_right + theorem strict_mono_mul_left_of_pos + theorem strict_mono_mul_right_of_pos + theorem strict_mono_on_mul_self + theorem sub_one_lt + theorem zero_le_bit0 + theorem zero_le_mul_left + theorem zero_le_mul_right + theorem zero_lt_bit0 Modified Mathlib/Algebra/Order/ZeroLEOne.lean Modified Mathlib/Data/Int/Basic.lean Modified Mathlib/Data/Int/Order/Basic.lean Modified Mathlib/Data/Rat/Order.lean Modified Mathlib/Tactic/Linarith/Lemmas.lean - theorem mul_nonneg_of_nonpos_of_nonpos - theorem mul_pos_of_neg_of_neg - theorem mul_self_nonneg - theorem zero_lt_one'' Modified Mathlib/Tactic/Linarith/Verification.lean Modified Mathlib/Tactic/Positivity/Basic.lean - theorem pow_nonneg - theorem pow_pos Modified Mathlib/Tactic/Zify.lean +/- theorem Mathlib.Tactic.Zify.nat_cast_ne Modified test/nontriviality.lean - theorem zero_le_one - theorem zero_le_two 2022-12-08 06:45:33 09784ea feat: port algebra.group.ulift (#906) Port of Algebra.Group.ULift based on 655994e298904d7e5bbd1e18c95defd7b543eb94 ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Group/ULift.lean + def ULift.MulEquiv.ulift + theorem ULift.div_down + theorem ULift.int_cast_down + theorem ULift.inv_down + theorem ULift.mul_down + theorem ULift.nat_cast_down + theorem ULift.one_down + theorem ULift.pow_down + theorem ULift.smul_down 2022-12-08 05:22:48 15b7cd9 fix: update comment and code referring to old split_ifs bug (#908) Now that https://github.com/leanprover-community/mathlib4/pull/761 has landed, we can use `split_ifs` in the proof of `setValue`. The proof is still not as nice as it could be, because we don't have `cc` yet. ESTIMATED CHANGES Modified Mathlib/Logic/Embedding/Basic.lean 2022-12-08 03:14:14 a95d81c chore: restore missing refl/symm/trans attributes after #857 (#904) ESTIMATED CHANGES Modified Mathlib/Algebra/Hom/Equiv/Basic.lean Modified Mathlib/Init/Align.lean Modified Mathlib/Init/Core.lean Modified Mathlib/Init/Logic.lean Modified Mathlib/Logic/Embedding/Basic.lean Modified Mathlib/Logic/Equiv/Defs.lean Modified Mathlib/Order/Hom/Basic.lean 2022-12-07 23:03:33 b4b59ba feat port: GroupTheory.GroupAction.Sigma (#885) mathlib3 SHA: f1a2caaf51ef593799107fe9a8d5e411599f3996 Another easy one. - [x] depends on #886 ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/GroupTheory/GroupAction/Sigma.lean + theorem Sigma.smul_def + theorem Sigma.smul_mk 2022-12-07 23:03:31 3ffbf78 feat : port Algebra.GroupPower.Basic (#874) mathlib3 SHA: 9b2660e1b25419042c8da10bf411aa3c67f14383 ESTIMATED CHANGES Modified Mathlib/Algebra/GroupPower/Basic.lean + theorem Commute.self_zpow + theorem Commute.zpow_left + theorem Commute.zpow_right + theorem Commute.zpow_self + theorem Commute.zpow_zpow + theorem Commute.zpow_zpow_self + theorem SemiconjBy.zpow_right +/- theorem add_nsmul + theorem div_pow + theorem div_zpow + theorem dvd_pow + theorem dvd_pow_self + theorem inv_pow + theorem inv_pow_sub + theorem inv_zpow' + theorem inv_zpow + theorem ite_pow + theorem mul_zpow + theorem mul_zpow_neg_one +/- theorem nsmul_zero + theorem ofAdd_nsmul + theorem ofAdd_zsmul + theorem ofMul_pow + theorem ofMul_zpow + theorem one_div_pow + theorem one_div_zpow +/- theorem one_nsmul +/- theorem one_pow + theorem one_zpow + def powMonoidHom + theorem pow_bit0' + theorem pow_bit0 + theorem pow_bit1' + theorem pow_bit1 + theorem pow_boole + theorem pow_dvd_pow + theorem pow_eq_pow_mod + theorem pow_inv_comm + theorem pow_ite + theorem pow_mul' + theorem pow_mul_comm' + theorem pow_mul_comm + theorem pow_mul_pow_eq_one + theorem pow_mul_pow_sub + theorem pow_right_comm + theorem pow_sub + theorem pow_sub_mul_pow + theorem pow_three' + theorem pow_three + theorem pow_two + def zpowGroupHom + theorem zpow_neg + theorem zpow_neg_coe_of_pos + theorem zpow_neg_one + theorem zpow_one + theorem zpow_two Modified Mathlib/Tactic/Abel.lean 2022-12-07 23:03:30 ad71455 feat: port Algebra.EuclideanDomain.Defs (#871) mathlib3 SHA: f1a2caaf51ef593799107fe9a8d5e411599f3996 ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/EuclideanDomain/Defs.lean + theorem EuclideanDomain.GCD.induction + theorem EuclideanDomain.div_add_mod' + theorem EuclideanDomain.div_add_mod + theorem EuclideanDomain.div_zero + def EuclideanDomain.gcd + def EuclideanDomain.gcdA + theorem EuclideanDomain.gcdA_zero_left + def EuclideanDomain.gcdB + theorem EuclideanDomain.gcdB_zero_left + theorem EuclideanDomain.gcd_zero_left + def EuclideanDomain.lcm + theorem EuclideanDomain.lt_one + theorem EuclideanDomain.mod_add_div' + theorem EuclideanDomain.mod_add_div + theorem EuclideanDomain.mod_eq_sub_mul_div + theorem EuclideanDomain.mod_lt + theorem EuclideanDomain.mod_zero + theorem EuclideanDomain.mul_right_not_lt + theorem EuclideanDomain.val_dvd_le + def EuclideanDomain.xgcd + def EuclideanDomain.xgcdAux + theorem EuclideanDomain.xgcdAux_rec + theorem EuclideanDomain.xgcd_val + theorem EuclideanDomain.xgcd_zero_left Modified scripts/nolints.json 2022-12-07 22:52:29 26e28f0 feat: port Algebra.Hom.Equiv.Units.GroupWithZero (#901) mathlib3 655994e298904d7e5bbd1e18c95defd7b543eb94 ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Hom/Equiv/Units/GroupWithZero.lean + theorem Equiv.mulLeft_bijective₀ + theorem Equiv.mulRight_bijective₀ 2022-12-07 19:06:22 cd34133 chore: remove lean_packages directory (#900) ESTIMATED CHANGES Deleted lean_packages/Qq Deleted lean_packages/std 2022-12-07 16:35:28 fa9629d feat: port Algebra.Order.Group.Units (#898) mathlib3 a95b16cbade0f938fc24abd05412bde1e84bab9b Porting notes: - the module docstring title in mathlib3 was incorrect (probably a relic of a hasty split), I have changed it here without backporting - one elaboration issue, see [Zulip](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/elaboration.20failure.20in.20algebra.2Eorder.2Egroup.2Eunits) - same issue with instance names as in #890, and I made the same choice about how to fix it ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Group/Units.lean Added Mathlib/Algebra/Order/Group/Units.lean Modified Mathlib/Algebra/Order/Monoid/Units.lean 2022-12-07 15:23:14 811a627 port: Algebra.Hom.Equiv.Units.Basic and Algebra.Order.Group.OrderIso (#895) a95b16cbade0f938fc24abd05412bde1e84bab9b ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Hom/Equiv/Units/Basic.lean + theorem Equiv.coe_mulLeft + theorem Equiv.coe_mulRight + theorem Equiv.divLeft_eq_inv_trans_mulLeft + theorem Equiv.divRight_eq_mulRight_inv + theorem Equiv.mulLeft_symm + theorem Equiv.mulLeft_symm_apply + theorem Equiv.mulRight_symm + theorem Equiv.mulRight_symm_apply + theorem Group.mulLeft_bijective + theorem Group.mulRight_bijective + def MulEquiv.inv + theorem MulEquiv.inv_symm + theorem Units.coe_mapEquiv + def Units.mapEquiv + theorem Units.mapEquiv_symm + def Units.mulLeft + theorem Units.mulLeft_bijective + theorem Units.mulLeft_symm + def Units.mulRight + theorem Units.mulRight_bijective + theorem Units.mulRight_symm + theorem coe_toUnits + def toUnits Added Mathlib/Algebra/Order/Group/OrderIso.lean + def OrderIso.inv + def OrderIso.mulLeft + theorem OrderIso.mulLeft_symm + def OrderIso.mulRight + theorem OrderIso.mulRight_symm + theorem inv_le' + theorem le_inv' 2022-12-07 15:11:37 afda3ab port: Algebra.Order.Monoid.NatCast (#893) Ported by hand from current mathlib: 07fee0ca54c320250c98bacf31ca5f288b2bcbe2 This is thoroughly ridiculous, but it my fault for merging https://github.com/leanprover-community/mathlib/pull/17820, see discussion on [zulip](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/OfNat). Rather than proving 1 + 1 = 2 (I feel ridiculous), these lemmas should just happen later in mathlib, with stronger typeclasses. But these files are holding up the port, so its better to get this ported as is, and we can make it more sensible later... ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Order/Monoid/NatCast.lean + theorem lt_add_one + theorem lt_one_add + theorem one_le_two' + theorem one_le_two + theorem one_lt_two + theorem zero_le_four + theorem zero_le_three + theorem zero_le_two + theorem zero_lt_four' + theorem zero_lt_four + theorem zero_lt_three' + theorem zero_lt_three + theorem zero_lt_two' + theorem zero_lt_two Added Mathlib/Algebra/Order/ZeroLEOne.lean + theorem zero_le_one' + theorem zero_le_one + theorem zero_lt_one' + theorem zero_lt_one Modified Mathlib/Data/Nat/Cast/Defs.lean + theorem three_add_one_eq_four + theorem two_add_one_eq_three Modified Mathlib/Tactic/Linarith/Lemmas.lean + theorem zero_lt_one'' - theorem zero_lt_one Modified Mathlib/Tactic/Linarith/Verification.lean 2022-12-07 12:38:55 d89dd2a feat port: Order.Antisymmetrization (#876) Mathlib SHA f1a2caaf51ef593799107fe9a8d5e411599f3996 There were a bunch of changes from `toAntisymmetrization (. ≤ .)` to `@toAntisymmetrization α (· ≤ ·) _` and also the coercion to fun for `OrderIso.dualAntisymmetrization α` did not trigger without making `α` explicit, previously there was an underscore in place of `α` ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Order/Antisymmetrization.lean + theorem AntisymmRel.image + def AntisymmRel.setoid + theorem AntisymmRel.symm + theorem AntisymmRel.trans + def AntisymmRel + def Antisymmetrization + theorem OrderHom.antisymmetrization_apply + theorem OrderHom.antisymmetrization_apply_mk + theorem OrderHom.coe_antisymmetrization + def OrderIso.dualAntisymmetrization + theorem OrderIso.dualAntisymmetrization_apply + theorem OrderIso.dual_antisymmetrization_symm_apply + theorem acc_antisymmetrization_iff + theorem antisymmRel_refl + theorem antisymmRel_swap + theorem antisymm_rel_iff_eq + theorem antisymmetrization_fibration + theorem ofAntisymmetrization_le_ofAntisymmetrization_iff + theorem ofAntisymmetrization_lt_ofAntisymmetrization_iff + def toAntisymmetrization + theorem toAntisymmetrization_le_toAntisymmetrization_iff + theorem toAntisymmetrization_lt_toAntisymmetrization_iff + theorem toAntisymmetrization_mono + theorem to_antisymmetrization_of_antisymmetrization + theorem well_founded_antisymmetrization_iff Modified Mathlib/Order/Basic.lean Added lean_packages/Qq Added lean_packages/std 2022-12-07 07:59:55 70683c9 feat port: Group theory.GroupAction.Sum (#882) Mathlib SHA: f1a2caaf51ef593799107fe9a8d5e411599f3996 This was an easy one - [x] depends on #886 ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/GroupTheory/GroupAction/Sum.lean + theorem Sum.smul_def + theorem Sum.smul_inl + theorem Sum.smul_inr + theorem Sum.smul_swap 2022-12-07 07:48:36 7967fa9 feat port: Data.Sum.Order (#880) Mathlib SHA f1a2caaf51ef593799107fe9a8d5e411599f3996 The main difficulty here was having to add a bunch of explicit types where the type was `OrderDual` when there where funny defeq tricks in Mathlib3. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Data/Sum/Order.lean + def OrderIso.sumAssoc + theorem OrderIso.sumAssoc_apply_inl_inl + theorem OrderIso.sumAssoc_apply_inl_inr + theorem OrderIso.sumAssoc_apply_inr + theorem OrderIso.sumAssoc_symm_apply_inl + theorem OrderIso.sumAssoc_symm_apply_inr_inl + theorem OrderIso.sumAssoc_symm_apply_inr_inr + def OrderIso.sumComm + theorem OrderIso.sumComm_symm + def OrderIso.sumDualDistrib + theorem OrderIso.sumDualDistrib_inl + theorem OrderIso.sumDualDistrib_inr + theorem OrderIso.sumDualDistrib_symm_inl + theorem OrderIso.sumDualDistrib_symm_inr + def OrderIso.sumLexAssoc + theorem OrderIso.sumLexAssoc_apply_inl_inl + theorem OrderIso.sumLexAssoc_apply_inl_inr + theorem OrderIso.sumLexAssoc_apply_inr + theorem OrderIso.sumLexAssoc_symm_apply_inl + theorem OrderIso.sumLexAssoc_symm_apply_inr_inl + theorem OrderIso.sumLexAssoc_symm_apply_inr_inr + def OrderIso.sumLexDualAntidistrib + theorem OrderIso.sumLexDualAntidistrib_inl + theorem OrderIso.sumLexDualAntidistrib_inr + theorem OrderIso.sumLexDualAntidistrib_symm_inl + theorem OrderIso.sumLexDualAntidistrib_symm_inr + theorem Sum.Lex.inl_bot + theorem Sum.Lex.inl_le_inl_iff + theorem Sum.Lex.inl_le_inr + theorem Sum.Lex.inl_lt_inl_iff + theorem Sum.Lex.inl_lt_inr + theorem Sum.Lex.inl_mono + theorem Sum.Lex.inl_strictMono + theorem Sum.Lex.inr_le_inr_iff + theorem Sum.Lex.inr_lt_inr_iff + theorem Sum.Lex.inr_mono + theorem Sum.Lex.inr_strictMono + theorem Sum.Lex.inr_top + theorem Sum.Lex.le_def + theorem Sum.Lex.lt_def + theorem Sum.Lex.not_inr_le_inl + theorem Sum.Lex.not_inr_lt_inl + theorem Sum.Lex.toLex_le_toLex + theorem Sum.Lex.toLex_lt_toLex + theorem Sum.Lex.toLex_mono + theorem Sum.Lex.toLex_strictMono + theorem Sum.LiftRel.refl + theorem Sum.LiftRel.trans + theorem Sum.denselyOrdered_iff + theorem Sum.inl_le_inl_iff + theorem Sum.inl_lt_inl_iff + theorem Sum.inl_mono + theorem Sum.inl_strictMono + theorem Sum.inr_le_inr_iff + theorem Sum.inr_lt_inr_iff + theorem Sum.inr_mono + theorem Sum.inr_strictMono + theorem Sum.le_def + theorem Sum.lt_def + theorem Sum.noMaxOrder_iff + theorem Sum.noMinOrder_iff + theorem Sum.not_inl_le_inr + theorem Sum.not_inl_lt_inr + theorem Sum.not_inr_le_inl + theorem Sum.not_inr_lt_inl + theorem Sum.swap_le_swap_iff + theorem Sum.swap_lt_swap_iff + def WithBot.orderIsoPUnitSumLex + theorem WithBot.orderIsoPUnitSumLex_bot + theorem WithBot.orderIsoPUnitSumLex_symm_inl + theorem WithBot.orderIsoPUnitSumLex_symm_inr + theorem WithBot.orderIsoPUnitSumLex_toLex + def WithTop.orderIsoSumLexPUnit + theorem WithTop.orderIsoSumLexPUnit_symm_inl + theorem WithTop.orderIsoSumLexPUnit_symm_inr + theorem WithTop.orderIsoSumLexPUnit_toLex + theorem WithTop.orderIsoSumLexPUnit_top 2022-12-07 07:37:21 778daab feat port: GroupTheory.GroupAction.Option (#884) Mathlib3 SHA: f1a2caaf51ef593799107fe9a8d5e411599f3996 This was also an easy one - [x] depends on #886 ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/GroupTheory/GroupAction/Option.lean + theorem Option.smul_def + theorem Option.smul_none + theorem Option.smul_some 2022-12-07 03:37:36 ed38b3a feat: port Algebra.Order.Monoid.[TypeTags, Units] (#873) mathlib3 SHA: f1a2caaf51ef593799107fe9a8d5e411599f3996 ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Order/Monoid/TypeTags.lean + theorem Additive.ofMul_le + theorem Additive.ofMul_lt + theorem Additive.toMul_le + theorem Additive.toMul_lt + theorem Multiplicative.ofAdd_le + theorem Multiplicative.ofAdd_lt + theorem Multiplicative.toAdd_le + theorem Multiplicative.toAdd_lt Added Mathlib/Algebra/Order/Monoid/Units.lean + theorem Units.max_val + theorem Units.min_val + def Units.orderEmbeddingVal + theorem Units.val_le_val + theorem Units.val_lt_val 2022-12-07 03:37:34 4bd624b feat: port Combinatorics.Quiver.Push (#868) mathlib3 SHA: 9b2660e1b25419042c8da10bf411aa3c67f14383 ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Combinatorics/Quiver/Push.lean + theorem Push.lift_comp + theorem Push.lift_obj + theorem Push.lift_unique + def Push.of + theorem Push.of_obj + def Push + inductive PushQuiver 2022-12-07 03:37:33 d95a165 feat: port Control.Traversable.Basic (#788) thing copied from mathlib3port: 1fc36cc9c8264e6e81253f88be7fb2cb6c92d76a - [x] Depends on: #803 (for `list.traverse`) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Control/Traversable/Basic.lean + theorem ApplicativeTransformation.app_eq_coe + theorem ApplicativeTransformation.coe_inj + theorem ApplicativeTransformation.coe_mk + def ApplicativeTransformation.comp + theorem ApplicativeTransformation.comp_apply + theorem ApplicativeTransformation.comp_assoc + theorem ApplicativeTransformation.comp_id + theorem ApplicativeTransformation.ext + theorem ApplicativeTransformation.ext_iff + def ApplicativeTransformation.idTransformation + theorem ApplicativeTransformation.id_comp + theorem ApplicativeTransformation.preserves_map' + theorem ApplicativeTransformation.preserves_map + theorem ApplicativeTransformation.preserves_pure + theorem ApplicativeTransformation.preserves_seq + structure ApplicativeTransformation + def sequence 2022-12-07 03:26:37 64a332c feat: port Algebra.Order.Group.Instances (#890) mathlib3 a95b16cbade0f938fc24abd05412bde1e84bab9b Porting notes: - cannibalizes the former ad-hoc port `Algebra/Order/Group` - a number of proofs were broken because of instance auto-naming differences between Lean 3 and Lean 4. I did not change such names, instead I corrected the instance-invocations-by-name in the place where they were used, and added `#align`s by the original instances so that mathport won't make the same mistake again. Is this the correct fix or should I do something different? ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Group/OrderSynonym.lean Deleted Mathlib/Algebra/Order/Group.lean Added Mathlib/Algebra/Order/Group/Instances.lean Modified Mathlib/Algebra/Order/Monoid/OrderDual.lean Modified Mathlib/Algebra/Order/Ring.lean Modified Mathlib/Order/Basic.lean 2022-12-07 02:29:53 376d360 feat: port Algebra.Group.Ext (#850) mathlib SHA: e574b1a4e891376b0ef974b926da39e05da12a06 Porting notes: 1. Constructing a `MonoidHom` (or `OneHom`) with ambiguous instances requires the use of the `mk` constructor and using `(_)` to disable the TC inference on the input type. 2. For the proofs of injectivity, I needed to destructure the instances further for the proofs to work. In the case of `CancelCommMonoid.toCommMonoid_injective`, I needed to nest `injection` tactics. Not sure if `injection` or `congr` should do these automatically. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Group/Ext.lean + theorem CancelCommMonoid.ext + theorem CancelCommMonoid.toCommMonoid_injective + theorem CancelMonoid.ext + theorem CancelMonoid.toLeftCancelMonoid_injective + theorem CommGroup.ext + theorem CommMonoid.ext + theorem CommMonoid.toMonoid_injective + theorem DivInvMonoid.ext + theorem Group.ext + theorem LeftCancelMonoid.ext + theorem LeftCancelMonoid.toMonoid_injective + theorem Monoid.ext + theorem RightCancelMonoid.ext + theorem RightCancelMonoid.toMonoid_injective 2022-12-07 02:18:09 6fad74b chore: fix SMulZeroClass and DistribSMul names (#894) No other branches seem to be affected by this change, afaict. ESTIMATED CHANGES Modified Mathlib/GroupTheory/GroupAction/Defs.lean + def Function.Surjective.distribSMulLeft - def Function.Surjective.distribSmulLeft +/- def Function.Surjective.smulZeroClassLeft + def SMulZeroClass.compFun + def SMulZeroClass.toZeroHom - def SmulZeroClass.compFun - def SmulZeroClass.toZeroHom Modified Mathlib/GroupTheory/GroupAction/Units.lean 2022-12-07 00:50:31 03a67f9 chore: GroupTheory.GroupAction.Defs rename HasFaithfulSMul (#886) ESTIMATED CHANGES Modified Mathlib/GroupTheory/GroupAction/Defs.lean +/- theorem smul_left_injective' Modified Mathlib/GroupTheory/GroupAction/Units.lean 2022-12-07 00:05:36 5357bab feat: Data.Sum.Basic add some #align (#881) ESTIMATED CHANGES Modified Mathlib/Data/Sum/Basic.lean 2022-12-06 23:44:38 a51b058 feat: Algebra.Group.Defs add some #align (#879) Also changing `Vsub` to `VSub`. There are two lemmas in mathlib3 aligned to `zpow_ofNat`, both `zpow_coe_nat` and `zpow_of_nat`, I'm not sure if this is a problem. I didn't add `#align` to every declaration, only the ones where I thought there might be a problem. ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Defs.lean Modified scripts/nolints.json 2022-12-06 23:44:36 ffc45d3 feat port: GroupTheory.GroupAction.Units (#878) Mathlib SHA: f1a2caaf51ef593799107fe9a8d5e411599f3996 ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/GroupTheory/GroupAction/Units.lean + theorem IsUnit.inv_smul + theorem IsUnit.smul + theorem Units.smul_def + theorem Units.smul_inv + theorem Units.smul_is_unit + theorem Units.val_smul 2022-12-06 23:13:37 f2f7443 feat: log warning for unused names in `split_ifs with` (#877) When `split_ifs with` splits a single if-then-else, it only consumes a single name (this matches the mathlib3 behavior). I noticed some places where we seem to be assuming that it consumes a separate name for each branch. To avoid that kind of confusion in the future, this PR adds a warning for any unused names. ESTIMATED CHANGES Modified Mathlib/Data/Nat/PSub.lean Modified Mathlib/Order/Heyting/Basic.lean Modified Mathlib/Tactic/SplitIfs.lean 2022-12-06 23:13:35 213105f fix: removed (incorrect) test for symm, trans attributes (#857) Fixes error I made: introducing a test for `symm` and `trans` attributes to check that the lemmas were "genuinely" symm/trans lemmas. However the tests had false positives, e.g. #855 (which has been added to the tests). This short commit removes the tests. They were not present in `mathlib3` anyway and the worst that happens if a lemma is incorrectly labelled is that the `symm` tactic tries and fails with this. As a warning it may be useful to have a test, but it should have no false positives. For now it seems the best approach is to drop the test. ESTIMATED CHANGES Modified Mathlib/Tactic/Relation/Symm.lean Modified Mathlib/Tactic/Relation/Trans.lean Modified test/symm.lean + structure MulEquiv + def MulHom.inverse + def foo_symm 2022-12-06 23:13:34 a2d57a9 feat: port Algebra.Hom.Equiv.Basic (#835) mathlib3 SHA: 76171581280d5b5d1e2d1f4f37e5420357bdc636 ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Hom/Equiv/Basic.lean + structure AddEquiv + theorem Equiv.inv_symm + def MonoidHom.inverse + def MonoidHom.toMulEquiv + def MulEquiv.Simps.symmApply + theorem MulEquiv.apply_eq_iff_eq + theorem MulEquiv.apply_eq_iff_symm_apply + theorem MulEquiv.apply_symm_apply + def MulEquiv.arrowCongr + theorem MulEquiv.coe_monoidHom_refl + theorem MulEquiv.coe_monoidHom_trans + theorem MulEquiv.coe_refl + theorem MulEquiv.coe_toMulHom + theorem MulEquiv.coe_to_monoidHom + theorem MulEquiv.coe_trans + theorem MulEquiv.comp_symm_eq + theorem MulEquiv.eq_comp_symm + theorem MulEquiv.eq_symm_apply + theorem MulEquiv.eq_symm_comp + theorem MulEquiv.ext + theorem MulEquiv.ext_iff + theorem MulEquiv.invFun_eq_symm + theorem MulEquiv.map_ne_one_iff + def MulEquiv.mk' + theorem MulEquiv.mk_coe' + theorem MulEquiv.mk_coe + def MulEquiv.monoidHomCongr + def MulEquiv.mulEquivOfUnique + theorem MulEquiv.ofBijective_apply_symm_apply + def MulEquiv.piCongrRight + theorem MulEquiv.piCongrRight_refl + theorem MulEquiv.piCongrRight_symm + theorem MulEquiv.piCongrRight_trans + def MulEquiv.piSubsingleton + def MulEquiv.refl + theorem MulEquiv.refl_apply + theorem MulEquiv.refl_symm + theorem MulEquiv.self_comp_symm + theorem MulEquiv.self_trans_symm + def MulEquiv.symm + theorem MulEquiv.symm_apply_apply + theorem MulEquiv.symm_apply_eq + theorem MulEquiv.symm_bijective + theorem MulEquiv.symm_comp_eq + theorem MulEquiv.symm_comp_self + theorem MulEquiv.symm_mk + theorem MulEquiv.symm_symm + theorem MulEquiv.symm_trans_apply + theorem MulEquiv.symm_trans_self + theorem MulEquiv.toEquiv_symm + def MulEquiv.toMonoidHom + theorem MulEquiv.to_monoidHom_injective + def MulEquiv.trans + theorem MulEquiv.trans_apply + structure MulEquiv + theorem MulEquivClass.map_eq_one_iff + theorem MulEquivClass.map_ne_one_iff + def MulHom.inverse + def MulHom.toMulEquiv Modified Mathlib/Algebra/Hom/Group.lean - theorem map_zsmul' Modified Mathlib/Algebra/Hom/Units.lean Modified Mathlib/Logic/Function/Basic.lean 2022-12-06 22:18:57 6981386 chore: tidy Order.Hom.Basic (#889) ESTIMATED CHANGES Modified Mathlib/Order/Hom/Basic.lean + theorem Codisjoint.map_orderIso - theorem Codisjoint.map_order_iso + theorem Disjoint.map_orderIso - theorem Disjoint.map_order_iso + theorem OrderEmbedding.coe_ofMapLeIff - theorem OrderEmbedding.coe_of_map_le_iff + theorem OrderIso.coe_dualDual + theorem OrderIso.coe_dualDual_symm - theorem OrderIso.coe_dual_dual - theorem OrderIso.coe_dual_dual_symm + theorem OrderIso.coe_prodComm - theorem OrderIso.coe_prod_comm + theorem OrderIso.coe_toOrderEmbedding - theorem OrderIso.coe_to_order_embedding + theorem OrderIso.complementedLattice + theorem OrderIso.complementedLattice_iff - theorem OrderIso.complemented_lattice - theorem OrderIso.complemented_lattice_iff + theorem OrderIso.dualDual_apply + theorem OrderIso.dualDual_symm_apply - theorem OrderIso.dual_dual_apply - theorem OrderIso.dual_dual_symm_apply + theorem OrderIso.funUnique_symm_apply - theorem OrderIso.fun_unique_symm_apply + theorem OrderIso.prodComm_symm - theorem OrderIso.prod_comm_symm + theorem OrderIso.refl_toEquiv - theorem OrderIso.refl_to_equiv + theorem OrderIso.toEquiv_symm + theorem OrderIso.toFun_eq_coe - theorem OrderIso.to_equiv_symm - theorem OrderIso.to_fun_eq_coe + theorem WithTop.coe_toDualBotEquiv - theorem WithTop.coe_to_dualBotEquiv_eq + theorem codisjoint_map_orderIso_iff - theorem codisjoint_map_order_iso_iff + theorem disjoint_map_orderIso_iff - theorem disjoint_map_order_iso_iff 2022-12-06 19:52:50 21bd5f5 feat: port Data.Sigma.Order (#887) mathlib3 SHA: 1fc36cc9c8264e6e81253f88be7fb2cb6c92d76a porting notes: smooth, but there was one instance here and in `Data.PSigma.Order` that was wrong because it was wrong in mathlib3. Since that instance (apparently) never got used in mathlib3 I haven't bothered to make a mathlib3 PR to fix it, and instead I have just fixed it here. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Data/PSigma/Order.lean Added Mathlib/Data/Sigma/Order.lean + theorem Sigma.Lex.le_def + theorem Sigma.Lex.lt_def + theorem Sigma.le_def + theorem Sigma.lt_def + theorem Sigma.mk_le_mk_iff + theorem Sigma.mk_lt_mk_iff 2022-12-06 18:35:24 869deb8 feat: port Algebra.Order.Monoid.Cancel.Basic (#883) mathlib3 [f1a2caaf51ef593799107fe9a8d5e411599f3996](https://github.com/leanprover-community/mathlib/commit/f1a2caaf51ef593799107fe9a8d5e411599f3996) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Order/Monoid/Cancel/Basic.lean + def Function.Injective.linearOrderedCancelCommMonoid + def Function.Injective.orderedCancelCommMonoid 2022-12-06 17:05:58 6a007d3 feat: port Algebra.Ring.Divisibility (#864) Based off mathlib3 SHA: f1a2caaf51ef593799107fe9a8d5e411599f3996 ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Ring/Divisibility.lean + theorem Dvd.dvd.linear_comb + theorem dvd_add + theorem dvd_add_iff_left + theorem dvd_add_iff_right + theorem dvd_add_left + theorem dvd_add_right + theorem dvd_add_self_left + theorem dvd_add_self_right + theorem dvd_iff_dvd_of_dvd_sub + theorem dvd_mul_sub_mul + theorem dvd_neg + theorem dvd_neg_of_dvd + theorem dvd_of_dvd_neg + theorem dvd_of_neg_dvd + theorem dvd_sub + theorem neg_dvd + theorem neg_dvd_of_dvd + theorem two_dvd_bit0 + theorem two_dvd_bit1 2022-12-06 14:16:45 52832ae chore: refactor is_domain (#799) Refactor the definiton of `IsDomain` to use `IsCancelMulZero` instead of `NoZeroDivisors`. This is the correct property for a semiring (to do in a future refactor). We also fix some names in `Algebra.Group.Defs`. Corresponding mathlib3 PR [#17721](https://github.com/leanprover-community/mathlib/pull/17721). ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Defs.lean + theorem CommSemigroup.IsLeftCancelMul.toIsCancelMul + theorem CommSemigroup.IsLeftCancelMul.toIsRightCancelMul - theorem CommSemigroup.IsLeftCancelMul.to_IsCancelMul - theorem CommSemigroup.IsLeftCancelMul.to_IsRightCancelMul + theorem CommSemigroup.IsRightCancelMul.toIsCancelMul + theorem CommSemigroup.IsRightCancelMul.toIsLeftCancelMul - theorem CommSemigroup.IsRightCancelMul.to_IsCancelMul - theorem CommSemigroup.IsRightCancelMul.to_IsLeftCancelMul Modified Mathlib/Algebra/Ring/Basic.lean + theorem IsLeftCancelMulZero.toNoZeroDivisors + theorem IsRightCancelMulZero.toNoZeroDivisors + theorem NoZeroDivisors.toIsDomain Modified Mathlib/Algebra/Ring/Defs.lean Modified Mathlib/Algebra/Ring/Regular.lean 2022-12-06 13:59:39 d3f6db5 feat: port Algebra.Order.Monoid.Basic (#872) mathlib3 SHA: 9b2660e1b25419042c8da10bf411aa3c67f14383 ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Order/Monoid/Basic.lean + def Function.Injective.linearOrderedCommMonoid + def Function.Injective.orderedCommMonoid + def OrderEmbedding.mulLeft + def OrderEmbedding.mulRight 2022-12-06 13:59:38 439961d feat: port algebra.order.group.defs (#869) Tracking mathlib commit: [f1a2caaf51ef593799107fe9a8d5e411599f3996](https://github.com/leanprover-community/mathlib/commit/f1a2caaf51ef593799107fe9a8d5e411599f3996) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Order/Group.lean - theorem Left.one_lt_inv_iff - theorem one_lt_div' Added Mathlib/Algebra/Order/Group/Defs.lean + structure AddCommGroup.PositiveCone + structure AddCommGroup.TotalPositiveCone + theorem Antitone.inv + theorem AntitoneOn.inv + theorem Left.inv_le_one_iff + theorem Left.inv_le_self + theorem Left.inv_lt_one_iff + theorem Left.inv_lt_self + theorem Left.one_le_inv_iff + theorem Left.one_lt_inv_iff + theorem Left.self_le_inv + theorem Left.self_lt_inv + def LinearOrderedAddCommGroup.mkOfPositiveCone + theorem LinearOrderedCommGroup.mul_lt_mul_left' + theorem Monotone.inv + theorem MonotoneOn.inv + def OrderedAddCommGroup.mkOfPositiveCone + theorem Right.inv_le_one_iff + theorem Right.inv_le_self + theorem Right.inv_lt_one_iff + theorem Right.inv_lt_self + theorem Right.one_le_inv_iff + theorem Right.one_lt_inv_iff + theorem Right.self_le_inv + theorem Right.self_lt_inv + theorem StrictAnti.inv + theorem StrictAntiOn.inv + theorem StrictMono.inv + theorem StrictMonoOn.inv + theorem cmp_div_one' + theorem div_le_comm + theorem div_le_div'' + theorem div_le_div_flip + theorem div_le_div_iff' + theorem div_le_div_iff_left + theorem div_le_div_iff_right + theorem div_le_div_left' + theorem div_le_div_right' + theorem div_le_iff_le_mul' + theorem div_le_iff_le_mul + theorem div_le_inv_mul_iff + theorem div_le_one' + theorem div_le_self_iff + theorem div_lt_comm + theorem div_lt_div'' + theorem div_lt_div_iff' + theorem div_lt_div_iff_left + theorem div_lt_div_iff_right + theorem div_lt_div_left' + theorem div_lt_div_right' + theorem div_lt_iff_lt_mul' + theorem div_lt_iff_lt_mul + theorem div_lt_one' + theorem div_lt_self_iff + theorem eq_one_of_inv_eq' + theorem exists_one_lt' + theorem inv_le_div_iff_le_mul' + theorem inv_le_div_iff_le_mul + theorem inv_le_iff_one_le_mul' + theorem inv_le_iff_one_le_mul + theorem inv_le_inv' + theorem inv_le_inv_iff + theorem inv_le_one_of_one_le + theorem inv_lt' + theorem inv_lt_div_iff_lt_mul' + theorem inv_lt_div_iff_lt_mul + theorem inv_lt_iff_one_lt_mul' + theorem inv_lt_iff_one_lt_mul + theorem inv_lt_inv' + theorem inv_lt_inv_iff + theorem inv_lt_one_of_one_lt + theorem inv_mul_le_iff_le_mul' + theorem inv_mul_le_iff_le_mul + theorem inv_mul_le_one_iff + theorem inv_mul_lt_iff_lt_mul' + theorem inv_mul_lt_iff_lt_mul + theorem inv_mul_lt_one_iff + theorem inv_mul_lt_one_iff_lt + theorem le_div_comm + theorem le_div_iff_mul_le' + theorem le_div_iff_mul_le + theorem le_div_self_iff + theorem le_iff_forall_one_lt_lt_mul + theorem le_inv_iff_mul_le_one_left + theorem le_inv_iff_mul_le_one_right + theorem le_inv_mul_iff_le + theorem le_inv_mul_iff_mul_le + theorem le_mul_inv_iff_le + theorem le_mul_inv_iff_mul_le + theorem le_of_forall_one_lt_lt_mul + theorem lt_div_comm + theorem lt_div_iff_mul_lt' + theorem lt_div_iff_mul_lt + theorem lt_inv' + theorem lt_inv_iff_mul_lt_one' + theorem lt_inv_iff_mul_lt_one + theorem lt_inv_mul_iff_lt + theorem lt_inv_mul_iff_mul_lt + theorem lt_mul_inv_iff_lt + theorem lt_mul_inv_iff_mul_lt + theorem mul_inv_le_iff_le_mul' + theorem mul_inv_le_iff_le_mul + theorem mul_inv_le_inv_mul_iff + theorem mul_inv_le_mul_inv_iff' + theorem mul_inv_le_one_iff + theorem mul_inv_le_one_iff_le + theorem mul_inv_lt_iff_le_mul' + theorem mul_inv_lt_iff_lt_mul + theorem mul_inv_lt_inv_mul_iff + theorem mul_inv_lt_mul_inv_iff' + theorem mul_inv_lt_one_iff + theorem one_le_div' + theorem one_le_inv_of_le_one + theorem one_lt_div' Modified Mathlib/Tactic/Linarith/Lemmas.lean - theorem neg_neg_of_pos - theorem neg_nonpos_of_nonneg - theorem sub_neg_of_lt - theorem sub_nonpos_of_le Modified scripts/nolints.json 2022-12-06 13:59:37 92593ea feat: port Algebra.Order.Monoid.WithZero (#851) mathlib3 SHA: dad7ecf9a1feae63e6e49f07619b7087403fb8d4 Ports Algebra.Order.Monoid.WithZero.[Defs, Basic]. - [x] depends on #841 - [x] depends on leanprover-community/mathlib#17820 I'm planning to wait until leanprover-community/mathlib#17820 is approved before doing a final refactor to move lemmas where they're needed. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Group/WithOne/Defs.lean Added Mathlib/Algebra/Order/Monoid/WithZero/Basic.lean Added Mathlib/Algebra/Order/Monoid/WithZero/Defs.lean + theorem WithZero.coe_le_coe + theorem WithZero.coe_lt_coe + theorem WithZero.zero_eq_bot + theorem WithZero.zero_le + theorem WithZero.zero_lt_coe 2022-12-06 13:47:03 fde5a99 feat: port Algebra.GroupWithZero.Divisibility (#870) mathlib3 SHA: f1a2caaf51ef593799107fe9a8d5e411599f3996 ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/GroupWithZero/Divisibility.lean + def DvdNotUnit + theorem dvdNotUnit_of_dvd_of_not_dvd + theorem dvd_and_not_dvd_iff + theorem dvd_zero + theorem eq_zero_of_zero_dvd + theorem mul_dvd_mul_iff_left + theorem mul_dvd_mul_iff_right + theorem ne_zero_of_dvd_ne_zero + theorem zero_dvd_iff 2022-12-06 09:09:22 bc3ae97 feat: port group_theory.group_action.defs (#854) Tracking mathlib commit: [dad7ecf9a1feae63e6e49f07619b7087403fb8d4](https://github.com/leanprover-community/mathlib/commit/dad7ecf9a1feae63e6e49f07619b7087403fb8d4) - [x] depends on: #832 ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/GroupTheory/GroupAction/Defs.lean + def AddAction.ofEndHom + def AddAction.toEndHom + theorem AddMonoid.End.smul_def + theorem Commute.smul_left + theorem Commute.smul_right + def DistribMulAction.compHom + def DistribMulAction.toAddMonoidEnd + def DistribMulAction.toAddMonoidHom + def DistribSMul.compFun + def DistribSMul.toAddMonoidHom + theorem Function.End.smul_def + def Function.Surjective.distribMulActionLeft + def Function.Surjective.distribSmulLeft + def Function.Surjective.mulActionLeft + def Function.Surjective.smulZeroClassLeft + theorem IsCentralScalar.unop_smul_eq_smul + theorem IsScalarTower.of_smul_one_mul + def MulAction.compHom + theorem MulAction.exists_smul_eq + def MulAction.ofEndHom + theorem MulAction.surjective_smul + def MulAction.toEndHom + def MulAction.toFun + theorem MulAction.toFun_apply + def MulDistribMulAction.compHom + def MulDistribMulAction.toMonoidEnd + def MulDistribMulAction.toMonoidHom + theorem MulDistribMulAction.toMonoidHom_apply + theorem SMul.comp.isScalarTower + def SMul.comp.smul + theorem SMul.comp.smulCommClass' + theorem SMul.comp.smulCommClass + def SMul.comp + theorem SMulCommClass.of_mul_smul_one + theorem SMulCommClass.symm + def SmulZeroClass.compFun + def SmulZeroClass.toZeroHom + theorem comp_smul_left + theorem ite_smul + theorem mul_smul_comm + theorem mul_smul_one + theorem ofAdd_smul + theorem ofMul_vadd + theorem one_smul + theorem one_smul_eq_id + def smulOneHom + theorem smul_add + theorem smul_assoc + theorem smul_div' + theorem smul_eq_mul + theorem smul_inv' + theorem smul_ite + theorem smul_left_injective' + theorem smul_mul' + theorem smul_mul_assoc + theorem smul_mul_smul + theorem smul_neg + theorem smul_one_mul + theorem smul_one_smul + theorem smul_smul + theorem smul_smul_smul_comm + theorem smul_sub + theorem smul_zero + theorem toAdd_vadd + theorem toMul_smul 2022-12-06 06:42:05 c6da265 chore: copy `norm_cast` attributes in `to_additive` (#847) ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Units.lean Modified Mathlib/Tactic/ToAdditive.lean +/- def ToAdditive.copySimpAttribute 2022-12-06 05:20:26 ec65f59 chore: bump to std4 2022-12-05 (#865) ESTIMATED CHANGES Modified Mathlib/Data/FunLike/Basic.lean Modified Mathlib/Init/Algebra/Classes.lean Modified Mathlib/Order/RelClasses.lean Modified lake-manifest.json Modified lean-toolchain 2022-12-06 03:48:20 8a3baed feat: port Algebra.Group.WithOne.Defs (#841) mathlib3 commit hash e574b1a4e891376b0ef974b926da39e05da12a06 ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Group/WithOne/Defs.lean + def WithOne.coe + theorem WithOne.coe_inj + theorem WithOne.coe_inv + theorem WithOne.coe_mul + theorem WithOne.coe_ne_one + theorem WithOne.coe_unone + theorem WithOne.ne_one_iff_exists + theorem WithOne.one_ne_coe + def WithOne.recOneCoe + def WithOne.unone + theorem WithOne.unone_coe + def WithOne + theorem WithZero.coe_div + theorem WithZero.coe_inv + theorem WithZero.coe_mul + theorem WithZero.coe_one + theorem WithZero.coe_pow + theorem WithZero.coe_zpow + theorem WithZero.inv_zero + theorem WithZero.mul_zero + theorem WithZero.zero_mul 2022-12-06 03:48:19 56b03ee feat: port Order.Hom.Basic (#804) mathlib3 git sha 62a5626868683c104774de8d85b9855234ac807c - [x] depends on: #772 - [x] depends on: #838 ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Logic/Relation.lean Modified Mathlib/Order/BooleanAlgebra.lean Modified Mathlib/Order/Compare.lean Added Mathlib/Order/Hom/Basic.lean + theorem Codisjoint.map_order_iso + theorem Disjoint.map_order_iso + theorem Equiv.coe_toOrderIso + def Equiv.toOrderIso + theorem Equiv.toOrderIso_toEquiv + theorem OrderEmbedding.coe_ofStrictMono + theorem OrderEmbedding.coe_of_map_le_iff + theorem OrderEmbedding.eq_iff_eq + theorem OrderEmbedding.le_iff_le + theorem OrderEmbedding.le_map_sup + def OrderEmbedding.ltEmbedding + theorem OrderEmbedding.lt_embedding_apply + theorem OrderEmbedding.lt_iff_lt + theorem OrderEmbedding.map_inf_le + def OrderEmbedding.ofMapLeIff + def OrderEmbedding.ofStrictMono + def OrderEmbedding.subtype + def OrderEmbedding.toOrderHom + def OrderHom.Subtype.val + def OrderHom.apply + theorem OrderHom.apply_mono + def OrderHom.coeFnHom + theorem OrderHom.coe_copy + theorem OrderHom.coe_fun_mk + theorem OrderHom.coe_le_coe + def OrderHom.comp + theorem OrderHom.comp_const + theorem OrderHom.comp_id + theorem OrderHom.comp_mono + theorem OrderHom.comp_prod_comp_same + def OrderHom.compₘ + def OrderHom.const + theorem OrderHom.const_comp + theorem OrderHom.copy_eq + def OrderHom.curry + theorem OrderHom.curry_apply + theorem OrderHom.curry_symm_apply + def OrderHom.diag + def OrderHom.dualIso + theorem OrderHom.dual_comp + theorem OrderHom.dual_id + theorem OrderHom.ext + def OrderHom.fst + theorem OrderHom.fst_comp_prod + theorem OrderHom.fst_prod_snd + def OrderHom.id + theorem OrderHom.id_comp + theorem OrderHom.le_def + theorem OrderHom.mk_le_mk + def OrderHom.onDiag + theorem OrderHom.order_hom_eq_id + def OrderHom.pi + def OrderHom.piIso + def OrderHom.prodIso + def OrderHom.prodMap + theorem OrderHom.prod_mono + def OrderHom.prodₘ + def OrderHom.snd + theorem OrderHom.snd_comp_prod + theorem OrderHom.symm_dual_comp + theorem OrderHom.symm_dual_id + structure OrderHom + theorem OrderIso.apply_eq_iff_eq + theorem OrderIso.apply_eq_iff_eq_symm_apply + theorem OrderIso.apply_symm_apply + theorem OrderIso.coe_dual_dual + theorem OrderIso.coe_dual_dual_symm + theorem OrderIso.coe_prod_comm + theorem OrderIso.coe_refl + theorem OrderIso.coe_to_order_embedding + theorem OrderIso.coe_trans + theorem OrderIso.complemented_lattice + theorem OrderIso.complemented_lattice_iff + def OrderIso.dualDual + theorem OrderIso.dual_dual_apply + theorem OrderIso.dual_dual_symm_apply + theorem OrderIso.ext + def OrderIso.funUnique + theorem OrderIso.fun_unique_symm_apply + theorem OrderIso.isCompl + theorem OrderIso.isCompl_iff + theorem OrderIso.le_iff_le + theorem OrderIso.le_symm_apply + theorem OrderIso.lt_iff_lt + theorem OrderIso.map_bot' + theorem OrderIso.map_bot + theorem OrderIso.map_inf + theorem OrderIso.map_sup + theorem OrderIso.map_top' + theorem OrderIso.map_top + def OrderIso.ofCmpEqCmp + def OrderIso.ofHomInv + def OrderIso.ofRelIsoLT + theorem OrderIso.ofRelIsoLT_apply + theorem OrderIso.ofRelIsoLT_symm + theorem OrderIso.ofRelIsoLT_toRelIsoLT + def OrderIso.prodComm + theorem OrderIso.prod_comm_symm + def OrderIso.refl + theorem OrderIso.refl_apply + theorem OrderIso.refl_to_equiv + theorem OrderIso.refl_trans + def OrderIso.symm + theorem OrderIso.symm_apply_apply + theorem OrderIso.symm_apply_eq + theorem OrderIso.symm_apply_le + theorem OrderIso.symm_injective + theorem OrderIso.symm_refl + theorem OrderIso.symm_symm + theorem OrderIso.symm_trans + theorem OrderIso.symm_trans_apply + def OrderIso.toOrderEmbedding + def OrderIso.toRelIsoLT + theorem OrderIso.toRelIsoLT_apply + theorem OrderIso.toRelIsoLT_ofRelIsoLT + theorem OrderIso.toRelIsoLT_symm + theorem OrderIso.to_equiv_symm + theorem OrderIso.to_fun_eq_coe + def OrderIso.trans + theorem OrderIso.trans_apply + theorem OrderIso.trans_refl + def OrderIso.withBotCongr + theorem OrderIso.withBotCongr_refl + theorem OrderIso.withBotCongr_symm + theorem OrderIso.withBotCongr_trans + def OrderIso.withTopCongr + theorem OrderIso.withTopCongr_refl + theorem OrderIso.withTopCongr_symm + theorem OrderIso.withTopCongr_trans + def Pi.evalOrderHom + def RelEmbedding.orderEmbeddingOfLtEmbedding + theorem RelEmbedding.order_embedding_of_lt_embedding_apply + theorem RelEmbedding.toOrderHom_injective + def RelHom.toOrderHom + def StrictMono.orderIsoOfRightInverse + theorem WithBot.coe_toDualTopEquiv_eq + theorem WithBot.toDualTopEquiv_bot + theorem WithBot.toDualTopEquiv_coe + theorem WithBot.toDualTopEquiv_symm_bot + theorem WithBot.toDualTopEquiv_symm_coe + theorem WithTop.coe_to_dualBotEquiv_eq + theorem WithTop.toDualBotEquiv_coe + theorem WithTop.toDualBotEquiv_symm_coe + theorem WithTop.toDualBotEquiv_symm_top + theorem WithTop.toDualBotEquiv_top + theorem codisjoint_map_order_iso_iff + theorem disjoint_map_order_iso_iff + theorem le_map_inv_iff + theorem lt_map_inv_iff + theorem map_inv_le_iff + theorem map_inv_lt_iff + theorem map_lt_map_iff Modified Mathlib/Order/RelIso/Basic.lean Modified Mathlib/Order/WithBot.lean Modified Mathlib/Tactic/ApplyFun.lean Modified Mathlib/Tactic/Coe.lean Modified Mathlib/Tactic/Simps/Basic.lean 2022-12-06 03:34:57 4d2af6e chore: remove bad outParams (#867) ESTIMATED CHANGES Modified Mathlib/Algebra/Hom/Group.lean Modified Mathlib/Algebra/Order/Hom/Basic.lean 2022-12-06 02:39:09 b7012a6 feat: port Order.Heyting.Boundary (#844) mathlib SHA: 70d50ecfd4900dd6d328da39ab7ebd516abe4025 Porting notes: 1. Needed to fix the proof of `boundary_le_boundary_sup_sup_boundary_inf_left` as simp produced a different term than in mathlib3 2. The `scoped` notation doesn't automatically introduce the notation into the current scope. ~~3. The lint error seems like a bug. Can anyone confirm?~~ ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Order/Heyting/Boundary.lean + def Coheyting.boundary + theorem Coheyting.boundary_bot + theorem Coheyting.boundary_eq_bot + theorem Coheyting.boundary_hnot_hnot + theorem Coheyting.boundary_hnot_le + theorem Coheyting.boundary_idem + theorem Coheyting.boundary_inf + theorem Coheyting.boundary_inf_le + theorem Coheyting.boundary_le + theorem Coheyting.boundary_le_boundary_sup_sup_boundary_inf_left + theorem Coheyting.boundary_le_boundary_sup_sup_boundary_inf_right + theorem Coheyting.boundary_le_hnot + theorem Coheyting.boundary_sup_le + theorem Coheyting.boundary_sup_sup_boundary_inf + theorem Coheyting.boundary_top + theorem Coheyting.hnot_boundary + theorem Coheyting.hnot_eq_top_iff_exists_boundary + theorem Coheyting.hnot_hnot_sup_boundary + theorem Coheyting.inf_hnot_self 2022-12-06 02:20:52 5bdee75 feat: port data.list.defs (#803) Port of `data.list.defs`, mostly consists of appropriate `#align`s to map `mathlib` `List` functions to the appropriate definitions in `Std4` Based on 1fc36cc9c8264e6e81253f88be7fb2cb6c92d76a ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Control/Functor.lean + def Functor.mapConstRev Added Mathlib/Data/List/Defs.lean + def List.All₂ + def List.alternatingProd + def List.alternatingSum + def List.andM + def List.choose + def List.chooseX + def List.dedup + def List.destutter' + def List.destutter + def List.erasep + def List.extractp + def List.findM + def List.findM?' + def List.foldlIdxM + def List.foldrIdxM + def List.getI + def List.mapAsyncChunked + def List.mapDiagM' + def List.mapIdxM' + def List.mapIdxMAux' + def List.map₂Left' + def List.map₂Left + def List.map₂Right' + def List.map₂Right + def List.orM + def List.permutations' + def List.permutations'Aux + def List.permutations + def List.permutationsAux.rec + def List.permutationsAux2 + def List.permutationsAux + def List.prod + def List.replaceIf + def List.sublistsAux₁ + def List.sum + def List.zipWith3 + def List.zipWith4 + def List.zipWith5 2022-12-06 02:09:22 d5a4ef2 feat: port Algebra.Divisibility.Units (#848) Mathlib SHA: e574b1a4e891376b0ef974b926da39e05da12a06 - [x] depends on: #833 ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Divisibility/Units.lean + theorem IsUnit.dvd + theorem IsUnit.dvd_mul_left + theorem IsUnit.dvd_mul_right + theorem IsUnit.mul_left_dvd + theorem IsUnit.mul_right_dvd + theorem Units.coe_dvd + theorem Units.dvd_mul_left + theorem Units.dvd_mul_right + theorem Units.mul_left_dvd + theorem Units.mul_right_dvd + theorem isUnit_iff_dvd_one + theorem isUnit_iff_forall_dvd + theorem isUnit_of_dvd_one + theorem isUnit_of_dvd_unit + theorem not_isUnit_of_not_isUnit_dvd 2022-12-06 01:47:50 bc09bc5 feat: port Algebra.Group.TypeTags (#832) Mathlib 6eb334bd8f3433d5b08ba156b8ec3e6af47e1904 ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Group/Basic.lean Modified Mathlib/Algebra/Group/Defs.lean Modified Mathlib/Algebra/Group/InjSurj.lean Modified Mathlib/Algebra/Group/OrderSynonym.lean Added Mathlib/Algebra/Group/TypeTags.lean + def AddMonoidHom.toMultiplicative'' + def AddMonoidHom.toMultiplicative' + def AddMonoidHom.toMultiplicative + def Additive.ofMul + theorem Additive.ofMul_symm_eq + def Additive.toMul + theorem Additive.toMul_symm_eq + def Additive + def MonoidHom.toAdditive'' + def MonoidHom.toAdditive' + def MonoidHom.toAdditive + def Multiplicative.ofAdd + theorem Multiplicative.ofAdd_symm_eq + def Multiplicative.toAdd + theorem Multiplicative.toAdd_symm_eq + def Multiplicative + theorem ofAdd_add + theorem ofAdd_eq_one + theorem ofAdd_neg + theorem ofAdd_sub + theorem ofAdd_toAdd + theorem ofAdd_zero + theorem ofMul_div + theorem ofMul_eq_zero + theorem ofMul_inv + theorem ofMul_mul + theorem ofMul_one + theorem ofMul_toMul + theorem toAdd_div + theorem toAdd_inv + theorem toAdd_mul + theorem toAdd_ofAdd + theorem toAdd_one + theorem toMul_add + theorem toMul_neg + theorem toMul_ofMul + theorem toMul_sub + theorem toMul_zero Modified Mathlib/Algebra/Opposites.lean Modified Mathlib/Algebra/Ring/Basic.lean Modified Mathlib/Algebra/Ring/Defs.lean Modified Mathlib/Algebra/Ring/InjSurj.lean Modified scripts/nolints.json 2022-12-06 00:44:08 c1e117a feat: port Order.SymmDiff (#842) mathlib3 SHA: 6eb334bd8f3433d5b08ba156b8ec3e6af47e1904 ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Order/SymmDiff.lean + theorem Bool.symmDiff_eq_xor + theorem Codisjoint.bihimp_eq_inf + theorem Codisjoint.bihimp_inf_bihimp_le_left + theorem Codisjoint.bihimp_inf_bihimp_le_right + theorem Disjoint.le_symmDiff_sup_symmDiff_left + theorem Disjoint.le_symmDiff_sup_symmDiff_right + theorem Disjoint.symmDiff_eq_sup + theorem IsCompl.bihimp_eq_bot + theorem IsCompl.symmDiff_eq_top + theorem Pi.bihimp_apply + theorem Pi.bihimp_def + theorem Pi.symmDiff_apply + theorem Pi.symmDiff_def + def bihimp + theorem bihimp_assoc + theorem bihimp_bihimp_bihimp_comm + theorem bihimp_bihimp_cancel_left + theorem bihimp_bihimp_cancel_right + theorem bihimp_bihimp_self + theorem bihimp_bihimp_sup + theorem bihimp_bot + theorem bihimp_comm + theorem bihimp_def + theorem bihimp_eq' + theorem bihimp_eq + theorem bihimp_eq_bot + theorem bihimp_eq_inf + theorem bihimp_eq_inf_himp_inf + theorem bihimp_eq_left + theorem bihimp_eq_right + theorem bihimp_eq_top + theorem bihimp_fst + theorem bihimp_himp_eq_inf + theorem bihimp_himp_left + theorem bihimp_himp_right + theorem bihimp_hnot_self + theorem bihimp_iff_iff + theorem bihimp_inf_sup + theorem bihimp_le_iff_left + theorem bihimp_le_iff_right + theorem bihimp_left_comm + theorem bihimp_left_inj + theorem bihimp_left_injective + theorem bihimp_left_involutive + theorem bihimp_left_surjective + theorem bihimp_of_ge + theorem bihimp_of_le + theorem bihimp_right_comm + theorem bihimp_right_inj + theorem bihimp_right_injective + theorem bihimp_right_involutive + theorem bihimp_right_surjective + theorem bihimp_self + theorem bihimp_snd + theorem bihimp_top + theorem bihimp_triangle + theorem bot_bihimp + theorem bot_symmDiff + theorem codisjoint_bihimp_sup + theorem compl_bihimp + theorem compl_bihimp_compl + theorem compl_bihimp_self + theorem compl_symmDiff + theorem compl_symmDiff_compl + theorem compl_symmDiff_self + theorem disjoint_symmDiff_inf + theorem himp_bihimp + theorem himp_bihimp_eq_inf + theorem himp_bihimp_left + theorem himp_bihimp_right + theorem hnot_symmDiff_self + theorem inf_himp_bihimp + theorem inf_le_bihimp + theorem inf_sup_symmDiff + theorem inf_symmDiff_distrib_left + theorem inf_symmDiff_distrib_right + theorem inf_symmDiff_symmDiff + theorem le_bihimp + theorem le_bihimp_iff + theorem le_symmDiff_iff_left + theorem le_symmDiff_iff_right + theorem ofDual_bihimp + theorem ofDual_symmDiff + theorem sdiff_symmDiff' + theorem sdiff_symmDiff + theorem sdiff_symmDiff_eq_sup + theorem sdiff_symmDiff_left + theorem sdiff_symmDiff_right + theorem sup_bihimp_bihimp + theorem sup_himp_bihimp + theorem sup_inf_bihimp + theorem sup_sdiff_symmDiff + def symmDiff + theorem symmDiff_assoc + theorem symmDiff_bot + theorem symmDiff_comm + theorem symmDiff_compl_self + theorem symmDiff_def + theorem symmDiff_eq' + theorem symmDiff_eq + theorem symmDiff_eq_Xor' + theorem symmDiff_eq_bot + theorem symmDiff_eq_iff_sdiff_eq + theorem symmDiff_eq_left + theorem symmDiff_eq_right + theorem symmDiff_eq_sup + theorem symmDiff_eq_sup_sdiff_inf + theorem symmDiff_eq_top + theorem symmDiff_fst + theorem symmDiff_hnot_self + theorem symmDiff_le + theorem symmDiff_le_iff + theorem symmDiff_le_sup + theorem symmDiff_left_comm + theorem symmDiff_left_inj + theorem symmDiff_left_injective + theorem symmDiff_left_involutive + theorem symmDiff_left_surjective + theorem symmDiff_of_ge + theorem symmDiff_of_le + theorem symmDiff_right_comm + theorem symmDiff_right_inj + theorem symmDiff_right_injective + theorem symmDiff_right_involutive + theorem symmDiff_right_surjective + theorem symmDiff_sdiff + theorem symmDiff_sdiff_eq_sup + theorem symmDiff_sdiff_inf + theorem symmDiff_sdiff_left + theorem symmDiff_sdiff_right + theorem symmDiff_self + theorem symmDiff_snd + theorem symmDiff_sup_inf + theorem symmDiff_symmDiff_cancel_left + theorem symmDiff_symmDiff_cancel_right + theorem symmDiff_symmDiff_inf + theorem symmDiff_symmDiff_left + theorem symmDiff_symmDiff_right' + theorem symmDiff_symmDiff_right + theorem symmDiff_symmDiff_self' + theorem symmDiff_symmDiff_symmDiff_comm + theorem symmDiff_top' + theorem symmDiff_top + theorem symmDiff_triangle + theorem toDual_bihimp + theorem toDual_symmDiff + theorem top_bihimp + theorem top_symmDiff' + theorem top_symmDiff 2022-12-06 00:29:36 1adc86b doc(Logic/Basic): fix module docstring (#853) We use namespaces `Decidable` and `Classical`, not `decidable` and `classical`. ESTIMATED CHANGES Modified Mathlib/Logic/Basic.lean 2022-12-05 23:25:51 f7a138d feat: port algebra.divisibility.basic (#833) Based off mathlib3 SHA: 70d50ecfd4900dd6d328da39ab7ebd516abe4025 There were a few changes in behavior from Lean 3 to Lean 4: * `Exists.intro c h` -> `Exists.intro c h.symm` in the proof of `Dvd.intro` (`h : a * c = b` no longer unifies with `b = a * c`?) * `dvd_refl` -> `fun {a} => dvd_refl a` in the proof of `dvd_rfl` (`a | a` no longer unifies with `∀ {a : α}, a ∣ a`?) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Divisibility/Basic.lean + theorem Dvd.elim + theorem Dvd.elim_left + theorem Dvd.intro + theorem Dvd.intro_left + theorem MonoidHom.map_dvd + theorem MulHom.map_dvd + theorem dvd_iff_exists_eq_mul_left + theorem dvd_mul_left + theorem dvd_mul_of_dvd_left + theorem dvd_mul_of_dvd_right + theorem dvd_mul_right + theorem dvd_of_mul_left_dvd + theorem dvd_of_mul_right_dvd + theorem dvd_refl + theorem dvd_rfl + theorem dvd_trans + theorem exists_eq_mul_left_of_dvd + theorem exists_eq_mul_right_of_dvd + theorem map_dvd + theorem mul_dvd_mul + theorem mul_dvd_mul_left + theorem mul_dvd_mul_right + theorem one_dvd + theorem pow_dvd_pow_of_dvd 2022-12-05 19:18:06 91bc2ab chore: update std 12-05 (#863) ESTIMATED CHANGES Modified Mathlib/Lean/Expr/Basic.lean - def Lean.Expr.toSyntax Modified Mathlib/Order/Basic.lean Modified lake-manifest.json 2022-12-05 16:10:37 0510151 feat(combinatorics/Quiver/Path): port some path lemmas (#861) In order to synchronize with [mathlib#17617](https://github.com/leanprover-community/mathlib/pull/17617). ESTIMATED CHANGES Modified Mathlib/Combinatorics/Quiver/Basic.lean Modified Mathlib/Combinatorics/Quiver/Path.lean + theorem Quiver.Path.cons_ne_nil + theorem Quiver.Path.heq_of_cons_eq_cons + theorem Quiver.Path.hom_heq_of_cons_eq_cons + theorem Quiver.Path.nil_ne_cons + theorem Quiver.Path.obj_eq_of_cons_eq_cons 2022-12-05 07:41:16 9b15aa6 feat(Combinatorics/Quiver/Basic): Add comp_id and id_comp lemmas for prefunctors (#858) In order to synchronize with [mathlib#17617](https://github.com/leanprover-community/mathlib/pull/17617). ESTIMATED CHANGES Modified Mathlib/Combinatorics/Quiver/Basic.lean + theorem Prefunctor.comp_id + theorem Prefunctor.id_comp 2022-12-04 13:08:48+11:00 ef2f034 chore: parallelize testing in CI (#845) ESTIMATED CHANGES Modified .github/workflows/bors.yml Modified .github/workflows/build.yml Modified .github/workflows/build.yml.in Modified .github/workflows/build_fork.yml 2022-12-04 13:06:05+11:00 96bcd37 feat: Match mathlib#17801 (#839) * feat: Match mathlib#17801 * fix proof ESTIMATED CHANGES Modified Mathlib/Order/Monotone.lean +/- theorem antitoneOn_univ +/- theorem monotoneOn_univ + theorem not_monotone_not_antitone_iff_exists_le_le + theorem not_monotone_not_antitone_iff_exists_lt_lt +/- theorem strictAntiOn_univ +/- theorem strictMonoOn_univ 2022-12-04 13:05:47+11:00 e6628dd feat: Match mathlib#16761 (#840) * feat: Match mathlib#16761 * fix ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Monoid/Lemmas.lean + theorem mul_le_mul_iff_of_ge 2022-12-04 13:01:57+11:00 8aaf280 feat: port CategoryTheory.NatIso (#820) * feat: port CategoryTheory.NatIso * Initial fixes * Additional porting notes * Update to mathlib4 names * Fix lints * Swap tidy with aesop * Use the correct lowerCamelCase * Fix Category.assoc proofs. Explicitly prove ofComponents * fix reassoc * chore: fix aesop_cat wrapper for aesop * . * fix reassoc * aesop rules * cleanup ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/CategoryTheory/Iso.lean Added Mathlib/CategoryTheory/NatIso.lean + def CategoryTheory.Iso.app + theorem CategoryTheory.Iso.hom_inv_id_app + theorem CategoryTheory.Iso.inv_hom_id_app + theorem CategoryTheory.NatIso.app_hom + theorem CategoryTheory.NatIso.app_inv + theorem CategoryTheory.NatIso.cancel_natIso_hom_left + theorem CategoryTheory.NatIso.cancel_natIso_hom_right + theorem CategoryTheory.NatIso.cancel_natIso_hom_right_assoc + theorem CategoryTheory.NatIso.cancel_natIso_inv_left + theorem CategoryTheory.NatIso.cancel_natIso_inv_right + theorem CategoryTheory.NatIso.cancel_natIso_inv_right_assoc + def CategoryTheory.NatIso.hcomp + theorem CategoryTheory.NatIso.inv_inv_app + theorem CategoryTheory.NatIso.inv_map_inv_app + theorem CategoryTheory.NatIso.isIso_inv_app + theorem CategoryTheory.NatIso.isIso_map_iff + theorem CategoryTheory.NatIso.isIso_of_isIso_app + theorem CategoryTheory.NatIso.naturality_1' + theorem CategoryTheory.NatIso.naturality_1 + theorem CategoryTheory.NatIso.naturality_2' + theorem CategoryTheory.NatIso.naturality_2 + theorem CategoryTheory.NatIso.ofComponents.app + def CategoryTheory.NatIso.ofComponents + theorem CategoryTheory.NatIso.trans_app Modified Mathlib/Tactic/Reassoc.lean 2022-12-04 13:00:09+11:00 9f19a1b feat: port algebra.ring.basic (#830) * copy and obvious corrections * fix * using autoimplicits * reinserted map_bit0 * linter * import adhoc file * fix imports * compiles * satisfy linter * fix: move stuff out of Algebra.RIng.Basic_old * fix tests ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/GroupPower/Lemmas.lean Modified Mathlib/Algebra/Ring/Basic.lean + def AddHom.mulLeft + def AddHom.mulRight + theorem AddMonoidHom.coe_mul_left + theorem AddMonoidHom.coe_mul_right + def AddMonoidHom.mulLeft + def AddMonoidHom.mulRight + theorem AddMonoidHom.mul_right_apply - theorem Int.cast_Nat_cast - theorem Int.cast_eq_cast_iff_Nat - theorem Int.cast_id - theorem Int.natAbs_cast - theorem Int.ofNat_eq_cast - theorem Nat.cast_commute - theorem Nat.cast_id - theorem Nat.cast_mul - theorem Nat.cast_pow + theorem Vieta_formula_quadratic - theorem coe_nat_zsmul + theorem inv_neg' + theorem map_bit0 + theorem pred_ne_self + theorem succ_ne_self - theorem zpow_coe_nat Modified Mathlib/Data/Int/Basic.lean + theorem Int.cast_Nat_cast + theorem Int.cast_eq_cast_iff_Nat + theorem Int.cast_id + theorem Int.natAbs_cast + theorem Int.ofNat_eq_cast + theorem coe_nat_zsmul + theorem zpow_coe_nat Modified Mathlib/Data/Nat/Basic.lean Added Mathlib/Data/Nat/Cast/Basic.lean + theorem Nat.cast_commute + theorem Nat.cast_id + theorem Nat.cast_mul + theorem Nat.cast_pow Modified Mathlib/Tactic/Abel.lean Modified Mathlib/Tactic/NormNum/Core.lean Modified Mathlib/Tactic/Zify.lean Modified test/Zify.lean 2022-12-04 12:55:00+11:00 e710a7b feat: port Combinatorics.Quiver.ConnectedComponent (#836) * feat: port Combinatorics.Quiver.ConnectedComponent * pleased lint ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Combinatorics/Quiver/ConnectedComponent.lean + def Quiver.Path.reverse + theorem Quiver.Path.reverse_comp + theorem Quiver.Path.reverse_reverse + theorem Quiver.Path.reverse_toPath + def Quiver.Symmetrify.lift + theorem Quiver.Symmetrify.lift_reverse + theorem Quiver.Symmetrify.lift_spec + theorem Quiver.Symmetrify.lift_unique + def Quiver.Symmetrify.of + def Quiver.Symmetrify + def Quiver.WeaklyConnectedComponent + def Quiver.reverse + theorem Quiver.reverse_reverse + def Quiver.wideSubquiverSymmetrify + def Quiver.zigzagSetoid 2022-12-04 12:47:19+11:00 6956cfb chore: bump to nightly-2022-12-03 (#838) * chore: bump to nightly-2022-12-03 * Prod.ext in core renamed to Prod.eta * bump ESTIMATED CHANGES Modified Mathlib/Data/Prod/Basic.lean - theorem Prod.ext' + theorem Prod.ext Modified Mathlib/Order/Basic.lean Modified lake-manifest.json Modified lean-toolchain Modified test/Simps.lean 2022-12-03 07:07:36 d596d19 chore: fix aesop_cat wrapper for aesop (#825) ESTIMATED CHANGES Modified Mathlib/CategoryTheory/Category/Basic.lean Modified Mathlib/CategoryTheory/Category/RelCat.lean Modified Mathlib/CategoryTheory/Functor/Basic.lean Modified Mathlib/CategoryTheory/Functor/Category.lean Modified Mathlib/CategoryTheory/Functor/Functorial.lean 2022-12-03 03:40:48 1078125 feat: port Algebra.Hom.Units (#745) mathlib3 SHA: 76171581280d5b5d1e2d1f4f37e5420357bdc636 Seems relatively straightforward. Some lemma names (e.g. `units.coe_zpow -> Units.val_zpow_eq_zpow_val`) are renamed to refer to `val` instead of `coe`, following the convention used in `Algebra.Group.Units`. - [x] depends on: #659 ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Hom/Group.lean Added Mathlib/Algebra/Hom/Units.lean + theorem Group.isUnit + theorem IsUnit.coe_liftRight + theorem IsUnit.div + theorem IsUnit.eq_on_inv + theorem IsUnit.inv + theorem IsUnit.liftRight_inv_mul + theorem IsUnit.map + theorem IsUnit.mul_liftRight_inv + theorem IsUnit.of_leftInverse + def IsUnit.unit' + theorem MonoidHom.coe_toHomUnits + def MonoidHom.toHomUnits + def Units.coeHom + theorem Units.coeHom_apply + theorem Units.coe_liftRight + theorem Units.coe_map + theorem Units.coe_map_inv + def Units.liftRight + theorem Units.liftRight_inv_mul + def Units.map + theorem Units.map_comp + theorem Units.map_id + theorem Units.mul_liftRight_inv + theorem Units.val_div_eq_div_val + theorem Units.val_pow_eq_pow_val + theorem Units.val_zpow_eq_zpow_val + theorem divp_eq_div + theorem eq_on_inv + theorem isUnit_map_of_leftInverse + theorem map_units_inv 2022-12-03 03:03:39 1e9b2f1 feat: port Algebra.Hom.Commute (#831) mathlib3 SHA: 6eb334bd8f3433d5b08ba156b8ec3e6af47e1904 ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Hom/Commute.lean 2022-12-03 00:16:01 2b51fb7 feat: port `nth_rewrite` (#823) We just use features that are already in core. The implementation of `Occurrences` seems to be better than in Lean 3. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Mathport/Syntax.lean Added Mathlib/Tactic/NthRewrite.lean + def Mathlib.Tactic.evalNthRewriteSeq + def Mathlib.Tactic.rewriteLocalDecl' + def Mathlib.Tactic.rewriteTarget' Added test/NthRewrite.lean 2022-12-02 23:34:06 eb3149f feat: port Combinatorics.Quiver.Subquiver (#828) Mathlib SHA : 70d50ecfd4900dd6d328da39ab7ebd516abe4025 ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Combinatorics/Quiver/Subquiver.lean + def Quiver.Labelling + structure Quiver.Total + def Quiver.wideSubquiverEquivSetTotal + def WideSubquiver.toType + def WideSubquiver 2022-12-02 23:34:05 487ae74 feat: port Algebra.Hom.Group (#659) mathlib3 SHA: 8c53048add6ffacdda0b36c4917bfe37e209b0ba - [x] depends on #563 - [x] depends on https://github.com/leanprover-community/mathlib/pull/17733 - [x] depends on https://github.com/leanprover/lean4/pull/1901 - [x] depends on https://github.com/leanprover/lean4/pull/1907 ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Group/Defs.lean + theorem negSucc_zsmul Added Mathlib/Algebra/Hom/Group.lean + structure AddHom + theorem AddMonoid.coe_mul + theorem AddMonoid.coe_one + structure AddMonoidHom + theorem Monoid.coe_mul + theorem Monoid.coe_one + theorem MonoidHom.cancel_left + theorem MonoidHom.cancel_right + theorem MonoidHom.coe_coe + theorem MonoidHom.coe_comp + theorem MonoidHom.coe_inj + theorem MonoidHom.coe_mk + theorem MonoidHom.coe_of_map_div + theorem MonoidHom.coe_of_map_mul_inv + def MonoidHom.comp + theorem MonoidHom.comp_apply + theorem MonoidHom.comp_assoc + theorem MonoidHom.comp_id + theorem MonoidHom.comp_inv + theorem MonoidHom.comp_mul + theorem MonoidHom.comp_one + theorem MonoidHom.congr_arg + theorem MonoidHom.congr_fun + theorem MonoidHom.div_apply + theorem MonoidHom.ext + theorem MonoidHom.ext_iff + def MonoidHom.id + theorem MonoidHom.id_comp + theorem MonoidHom.inv_apply + theorem MonoidHom.inv_comp + theorem MonoidHom.map_exists_left_inv + theorem MonoidHom.map_exists_right_inv + def MonoidHom.mk' + theorem MonoidHom.mk_coe + theorem MonoidHom.mul_apply + theorem MonoidHom.mul_comp + def MonoidHom.ofMapDiv + def MonoidHom.ofMapMulInv + theorem MonoidHom.one_apply + theorem MonoidHom.one_comp + theorem MonoidHom.toMulHom_coe + theorem MonoidHom.toMulHom_injective + theorem MonoidHom.toOneHom_coe + theorem MonoidHom.toOneHom_injective + structure MonoidHom + theorem MonoidWithZeroHom.cancel_left + theorem MonoidWithZeroHom.cancel_right + theorem MonoidWithZeroHom.coe_coe + theorem MonoidWithZeroHom.coe_comp + theorem MonoidWithZeroHom.coe_inj + theorem MonoidWithZeroHom.coe_mk + def MonoidWithZeroHom.comp + theorem MonoidWithZeroHom.comp_apply + theorem MonoidWithZeroHom.comp_assoc + theorem MonoidWithZeroHom.comp_id + theorem MonoidWithZeroHom.congr_arg + theorem MonoidWithZeroHom.congr_fun + theorem MonoidWithZeroHom.ext + theorem MonoidWithZeroHom.ext_iff + def MonoidWithZeroHom.id + theorem MonoidWithZeroHom.id_comp + theorem MonoidWithZeroHom.mk_coe + theorem MonoidWithZeroHom.toMonoidHom_coe + theorem MonoidWithZeroHom.toMonoidHom_injective + theorem MonoidWithZeroHom.toZeroHom_coe + theorem MonoidWithZeroHom.toZeroHom_injective + structure MonoidWithZeroHom + theorem MulHom.cancel_left + theorem MulHom.cancel_right + theorem MulHom.coe_coe + theorem MulHom.coe_comp + theorem MulHom.coe_inj + theorem MulHom.coe_mk + def MulHom.comp + theorem MulHom.comp_apply + theorem MulHom.comp_assoc + theorem MulHom.comp_id + theorem MulHom.comp_mul + theorem MulHom.congr_arg + theorem MulHom.congr_fun + theorem MulHom.ext + theorem MulHom.ext_iff + def MulHom.id + theorem MulHom.id_comp + theorem MulHom.mk_coe + theorem MulHom.mul_apply + theorem MulHom.mul_comp + structure MulHom + theorem NeZero.of_injective + theorem NeZero.of_map + theorem OneHom.cancel_left + theorem OneHom.cancel_right + theorem OneHom.coe_coe + theorem OneHom.coe_comp + theorem OneHom.coe_inj + theorem OneHom.coe_mk + def OneHom.comp + theorem OneHom.comp_apply + theorem OneHom.comp_assoc + theorem OneHom.comp_id + theorem OneHom.comp_one + theorem OneHom.congr_arg + theorem OneHom.congr_fun + theorem OneHom.ext + theorem OneHom.ext_iff + def OneHom.id + theorem OneHom.id_comp + theorem OneHom.mk_coe + theorem OneHom.one_apply + theorem OneHom.one_comp + structure OneHom + structure ZeroHom + theorem coe_invMonoidHom + theorem injective_iff_map_eq_one' + theorem injective_iff_map_eq_one + def invMonoidHom + theorem invMonoidHom_apply + theorem map_div' + theorem map_div + theorem map_eq_one_iff + theorem map_inv + theorem map_mul + theorem map_mul_eq_one + theorem map_mul_inv + theorem map_ne_one_iff + theorem map_one + theorem map_pow + theorem map_zpow' + theorem map_zpow + theorem map_zsmul' + theorem ne_one_of_map Modified Mathlib/Logic/Nonempty.lean Modified lean-toolchain 2022-12-02 23:23:06 5658b22 feat: add Semigroup.to_isAssociative (#826) This instance was missing for some reason in Algebra.Group.Defs. ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Defs.lean 2022-12-02 21:54:38 2f47f97 chore: bump to nightly-2022-12-02 (#824) ~~This is blocked on https://github.com/JLimperg/aesop/pull/32.~~ ~~We'll need to re-run `lake update -Kdoc=on` after that has been merged.~~ ESTIMATED CHANGES Modified Mathlib/Tactic/ApplyRules.lean Modified lake-manifest.json Modified lean-toolchain 2022-12-02 17:14:05 69dcf62 feat: nlinarith (#819) ESTIMATED CHANGES Modified Mathlib/Lean/Expr/Traverse.lean + def Lean.Expr.foldlM Modified Mathlib/Tactic/Linarith/Frontend.lean Modified Mathlib/Tactic/Linarith/Lemmas.lean + theorem Linarith.mul_zero_eq + theorem Linarith.zero_mul_eq + theorem mul_nonneg_of_nonpos_of_nonpos + theorem mul_pos_of_neg_of_neg + theorem mul_self_nonneg + theorem sq_nonneg Modified Mathlib/Tactic/Linarith/Preprocessing.lean + def Linarith.defaultPreprocessors - def Linarith.default_preprocessors + def Linarith.nlinarithExtras Modified test/linarith.lean + theorem bar + theorem norm_eq_zero_iff + theorem norm_nonpos_left + theorem norm_nonpos_right + theorem norm_zero_left 2022-12-02 17:14:03 608fd2f feat: port Order.BooleanAlgebra (#794) mathlib3 sha 39af7d3bf61a98e928812dbc3e16f4ea8b795ca3 - [x] depends on: #793 ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Data/Bool/Basic.lean Modified Mathlib/Init/Algebra/Classes.lean Modified Mathlib/Order/Basic.lean Added Mathlib/Order/BooleanAlgebra.lean + theorem Bool.compl_eq_bnot + theorem Bool.inf_eq_band + theorem Bool.sup_eq_bor + theorem Disjoint.sdiff_eq_of_sup_eq + def GeneralizedBooleanAlgebra.toBooleanAlgebra + theorem IsCompl.compl_eq_iff + theorem compl_bijective + theorem compl_comp_compl + theorem compl_compl + theorem compl_eq_bot + theorem compl_eq_comm + theorem compl_eq_iff_is_compl + theorem compl_eq_top + theorem compl_himp + theorem compl_himp_compl + theorem compl_inf + theorem compl_inj_iff + theorem compl_injective + theorem compl_involutive + theorem compl_le_compl_iff_le + theorem compl_le_iff_compl_le + theorem compl_le_of_compl_le + theorem compl_sdiff + theorem compl_sdiff_compl + theorem compl_sup_eq_top + theorem compl_surjective + theorem disjoint_compl_left_iff + theorem disjoint_compl_right_iff + theorem disjoint_inf_sdiff + theorem disjoint_sdiff_iff_le + theorem disjoint_sdiff_sdiff + theorem disjoint_sdiff_self_left + theorem disjoint_sdiff_self_right + theorem eq_compl_comm + theorem eq_compl_iff_is_compl + theorem eq_of_sdiff_eq_sdiff + theorem himp_eq + theorem hnot_eq_compl + theorem inf_compl_eq_bot' + theorem inf_inf_sdiff + theorem inf_sdiff + theorem inf_sdiff_assoc + theorem inf_sdiff_distrib_left + theorem inf_sdiff_distrib_right + theorem inf_sdiff_eq_bot_iff + theorem inf_sdiff_inf + theorem inf_sdiff_right_comm + theorem inf_sdiff_self_left + theorem inf_sdiff_self_right + theorem is_compl_compl + theorem le_iff_disjoint_sdiff + theorem le_iff_eq_sup_sdiff + theorem le_sdiff_iff + theorem sdiff_compl + theorem sdiff_eq + theorem sdiff_eq_comm + theorem sdiff_eq_sdiff_iff_inf_eq_inf + theorem sdiff_eq_self_iff_disjoint' + theorem sdiff_eq_self_iff_disjoint + theorem sdiff_eq_symm + theorem sdiff_inf_sdiff + theorem sdiff_lt + theorem sdiff_lt_sdiff_right + theorem sdiff_sdiff_eq_sdiff_sup + theorem sdiff_sdiff_eq_self + theorem sdiff_sdiff_left' + theorem sdiff_sdiff_right' + theorem sdiff_sdiff_right + theorem sdiff_sdiff_right_self + theorem sdiff_sdiff_sup_sdiff' + theorem sdiff_sdiff_sup_sdiff + theorem sdiff_sup + theorem sdiff_unique + theorem sup_compl_eq_top + theorem sup_eq_sdiff_sup_sdiff_sup_inf + theorem sup_inf_inf_compl + theorem sup_inf_inf_sdiff + theorem sup_inf_sdiff + theorem sup_lt_of_lt_sdiff_left + theorem sup_lt_of_lt_sdiff_right + theorem sup_sdiff_inf + theorem top_sdiff Modified Mathlib/Order/BoundedOrder.lean Modified Mathlib/Order/Heyting/Basic.lean Modified Mathlib/Order/Lattice.lean 2022-12-02 17:02:07 c06bd6a feat: to_additive can reorder arguments of generated declaration (#818) * This allows `@[to_additive]` on lemmas about `Pow` without having to write the corresponding lemmas about SMul explicitly. * Add syntax `to_additive (reorder := ...)` that will automatically reorder the arguments in the additive declaration and will reorder the arguments in all future uses of `to_additive` * Deprecate `@[to_additive_reorder]` attribute. * We keep it for now, so that it can display a warning message when porting a file with the attribute * We allow `@[to_additive (reorder := ...)]` on declarations that are already additivized, so that we can give the `reorder` information to projections of structures. * Maybe at some point we can add a syntax to "doubly additivize" a declaration about `Pow`, so that it generates both the `SMul` and `VAdd` declarations. ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Defs.lean Modified Mathlib/Algebra/Group/OrderSynonym.lean - theorem ofDual_smul' - theorem ofDual_smul - theorem ofLex_smul' - theorem ofLex_smul - theorem toDual_smul' - theorem toDual_smul - theorem toLex_smul' - theorem toLex_smul Modified Mathlib/Data/Pi/Algebra.lean - theorem Pi.smul_apply - theorem Pi.smul_comp - theorem Pi.smul_const - theorem Pi.smul_def Modified Mathlib/Lean/Expr/Basic.lean + def Lean.ConstantInfo.updateConstantVal + def Lean.ConstantInfo.updateLevelParams +/- def Lean.ConstantInfo.updateName +/- def Lean.ConstantInfo.updateType Modified Mathlib/Tactic/Simps/Basic.lean Modified Mathlib/Tactic/ToAdditive.lean + def List.swapFirstTwo +/- def ToAdditive.getReorder + def ToAdditive.reorderForall + def ToAdditive.reorderLambda +/- def ToAdditive.shouldReorder Modified test/toAdditive.lean + def Test.foo12 + theorem Test.foo13 + def Test.foo14 + theorem Test.foo15 + theorem Test.foo16 2022-12-02 15:15:32 2aba564 feat: port Data.Stream.Defs (#665) Mathlib SHA: 39af7d3bf61a98e928812dbc3e16f4ea8b795ca3 Diff view: https://github.com/leanprover-community/mathlib4/compare/7f9d342...stream ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Data/Stream/Defs.lean + def Stream'.All + def Stream'.Any + def Stream'.appendStream' + def Stream'.apply + def Stream'.cons + def Stream'.const + def Stream'.corec' + def Stream'.corec + def Stream'.corecOn + def Stream'.corecState + def Stream'.cycle + def Stream'.drop + def Stream'.enum + def Stream'.even + def Stream'.head + def Stream'.inits + def Stream'.initsCore + def Stream'.interleave + def Stream'.iterate + def Stream'.map + def Stream'.nats + def Stream'.nth + def Stream'.odd + def Stream'.pure + def Stream'.tail + def Stream'.tails + def Stream'.take + def Stream'.unfolds + def Stream'.zip + def Stream' Modified scripts/nolints.json 2022-12-02 13:27:17 1afcd44 feat: port 4 files from category_theory (#822) mathlib SHA: afad8e438d03f9d89da2914aa06cb4964ba87a18 ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Category/RelCat.lean + def CategoryTheory.RelCat Added Mathlib/CategoryTheory/Functor/Default.lean Added Mathlib/CategoryTheory/Functor/Functorial.lean + def CategoryTheory.Functor.of + theorem CategoryTheory.Functorial.map_comp + theorem CategoryTheory.Functorial.map_id + def CategoryTheory.functorial_comp + theorem CategoryTheory.map'_as_map + def CategoryTheory.map + theorem CategoryTheory.map_functorial_obj Added Mathlib/CategoryTheory/Thin.lean + def CategoryTheory.iso_of_both_ways + def CategoryTheory.thin_category 2022-12-02 12:29:44 7be1630 chore: remove hack not needed since lean4#1892 fixed (#821) ESTIMATED CHANGES Modified Mathlib/Order/Disjoint.lean 2022-12-02 01:48:08 73a6419 feat: `has_le.le.not_lt_iff_eq` (#768) Matches https://github.com/leanprover-community/mathlib/pull/17734 ESTIMATED CHANGES Modified Mathlib/Order/Basic.lean + theorem LE.le.ge_iff_eq + theorem LE.le.gt_iff_ne +/- theorem LE.le.le_iff_eq +/- theorem LE.le.lt_iff_ne + theorem LE.le.not_gt_iff_eq + theorem LE.le.not_lt_iff_eq 2022-12-01 23:11:41 7ee8c7b feat: port Order.Heyting.Basic (#793) mathlib3 sha 4e42a9d0a79d151ee359c270e498b1a00cc6fa4e - [x] depends on: #792 - [x] depends on: https://github.com/leanprover-community/mathlib4/pull/800 ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Order/Monoid/Canonical/Defs.lean Modified Mathlib/Order/BoundedOrder.lean Added Mathlib/Order/Heyting/Basic.lean + theorem Codisjoint.himp_eq_left + theorem Codisjoint.himp_eq_right + theorem Codisjoint.himp_inf_cancel_left + theorem Codisjoint.himp_inf_cancel_right + def CoheytingAlgebra.ofHNot + def CoheytingAlgebra.ofSDiff + theorem Disjoint.disjoint_sdiff_left + theorem Disjoint.disjoint_sdiff_right + theorem Disjoint.sdiff_eq_left + theorem Disjoint.sdiff_eq_right + theorem Disjoint.sup_sdiff_cancel_left + theorem Disjoint.sup_sdiff_cancel_right + def HeytingAlgebra.ofCompl + def HeytingAlgebra.ofHImp + theorem IsCompl.compl_eq + theorem IsCompl.eq_compl + theorem IsCompl.eq_hnot + theorem IsCompl.hnot_eq + theorem LE.le.codisjoint_hnot_left + theorem LE.le.codisjoint_hnot_right + theorem LE.le.disjoint_compl_left + theorem LE.le.disjoint_compl_right + def LinearOrder.toBiheytingAlgebra + theorem PUnit.bot_eq + theorem PUnit.compl_eq + theorem PUnit.himp_eq + theorem PUnit.hnot_eq + theorem PUnit.inf_eq + theorem PUnit.sdiff_eq + theorem PUnit.sup_eq + theorem PUnit.top_eq + theorem Pi.himp_apply + theorem Pi.himp_def + theorem Pi.hnot_apply + theorem Pi.hnot_def + theorem bot_himp + theorem bot_sdiff + theorem codisjoint_hnot_hnot_left_iff + theorem codisjoint_hnot_hnot_right_iff + theorem codisjoint_hnot_left + theorem codisjoint_hnot_right + theorem compl_anti + theorem compl_bot + theorem compl_compl_compl + theorem compl_compl_himp_distrib + theorem compl_compl_inf_distrib + theorem compl_iff_not + theorem compl_inf_eq_bot + theorem compl_inf_self + theorem compl_le_compl + theorem compl_le_himp + theorem compl_le_hnot + theorem compl_sup + theorem compl_sup_compl_le + theorem compl_sup_distrib + theorem compl_sup_le_himp + theorem compl_top + theorem compl_unique + theorem disjoint_compl_compl_left_iff + theorem disjoint_compl_compl_right_iff + theorem disjoint_compl_left + theorem disjoint_compl_right + theorem fst_compl + theorem fst_himp + theorem fst_hnot + theorem fst_sdiff + theorem himp_bot + theorem himp_compl + theorem himp_compl_comm + theorem himp_eq_top_iff + theorem himp_himp + theorem himp_idem + theorem himp_iff_imp + theorem himp_inf_distrib + theorem himp_inf_himp_cancel + theorem himp_inf_himp_inf_le + theorem himp_inf_le + theorem himp_inf_self + theorem himp_le_himp + theorem himp_le_himp_himp_himp + theorem himp_le_himp_left + theorem himp_le_himp_right + theorem himp_left_comm + theorem himp_self + theorem himp_top + theorem himp_triangle + theorem hnot_anti + theorem hnot_bot + theorem hnot_hnot_hnot + theorem hnot_hnot_le + theorem hnot_hnot_sdiff_distrib + theorem hnot_hnot_sup_distrib + theorem hnot_inf_distrib + theorem hnot_le_comm + theorem hnot_le_hnot + theorem hnot_le_iff_codisjoint_left + theorem hnot_le_iff_codisjoint_right + theorem hnot_sdiff + theorem hnot_sdiff_comm + theorem hnot_sup_self + theorem hnot_top + theorem inf_compl_eq_bot + theorem inf_compl_self + theorem inf_himp + theorem inf_himp_le + theorem inf_sdiff_left + theorem inf_sdiff_right + theorem inf_sdiff_sup_left + theorem inf_sdiff_sup_right + theorem le_compl_comm + theorem le_compl_compl + theorem le_compl_iff_disjoint_left + theorem le_compl_iff_disjoint_right + theorem le_himp + theorem le_himp_comm + theorem le_himp_himp + theorem le_himp_iff' + theorem le_himp_iff + theorem le_himp_iff_left + theorem le_hnot_inf_hnot + theorem le_sdiff_sup + theorem le_sup_sdiff + theorem le_sup_sdiff_sup_sdiff + theorem of_dual_compl + theorem of_dual_himp + theorem of_dual_hnot + theorem sdiff_bot + theorem sdiff_eq_bot_iff + theorem sdiff_idem + theorem sdiff_inf + theorem sdiff_inf_distrib + theorem sdiff_inf_self_left + theorem sdiff_inf_self_right + theorem sdiff_le + theorem sdiff_le_comm + theorem sdiff_le_hnot + theorem sdiff_le_iff' + theorem sdiff_le_iff + theorem sdiff_le_iff_left + theorem sdiff_le_inf_hnot + theorem sdiff_le_sdiff + theorem sdiff_le_sdiff_left + theorem sdiff_le_sdiff_of_sup_le_sup_left + theorem sdiff_le_sdiff_of_sup_le_sup_right + theorem sdiff_le_sdiff_right + theorem sdiff_right_comm + theorem sdiff_sdiff + theorem sdiff_sdiff_comm + theorem sdiff_sdiff_le + theorem sdiff_sdiff_left + theorem sdiff_sdiff_sdiff_le_sdiff + theorem sdiff_sdiff_self + theorem sdiff_self + theorem sdiff_sup_cancel + theorem sdiff_sup_sdiff_cancel + theorem sdiff_sup_self + theorem sdiff_top + theorem sdiff_triangle + theorem snd_compl + theorem snd_himp + theorem snd_hnot + theorem snd_sdiff + theorem sup_compl_le_himp + theorem sup_himp_distrib + theorem sup_himp_self_left + theorem sup_himp_self_right + theorem sup_hnot_self + theorem sup_le_of_le_sdiff_left + theorem sup_le_of_le_sdiff_right + theorem sup_sdiff + theorem sup_sdiff_cancel' + theorem sup_sdiff_cancel_right + theorem sup_sdiff_distrib + theorem sup_sdiff_eq_sup + theorem sup_sdiff_left + theorem sup_sdiff_left_self + theorem sup_sdiff_right + theorem sup_sdiff_right_self + theorem sup_sdiff_self + theorem to_dual_compl + theorem to_dual_hnot + theorem to_dual_sdiff + theorem top_himp + theorem top_sdiff' Modified Mathlib/Order/Lattice.lean 2022-12-01 21:54:56 2e6b1a9 feat: add info and jump-to-definition for simps (#817) * Mousing over `fst` or `snd` of `@[simps fst snd]` will show the generated declaration * If no argument is given, mousing over `simps` will show the first generated declaration. I am [not sure](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/how.20to.20configure.20jump.20to.20definition/near/313330305) if we can show all of them. * Jump to definition now works, and will either redirect to `simps` or the relevant argument of `simps`. ESTIMATED CHANGES Modified Mathlib/Tactic/Simps/Basic.lean +/- def simpsTac Modified test/Simps.lean 2022-12-01 21:54:55 c8ba7d0 feat: port a basic version of applyAssumption (#708) This is the most boring version of `apply_assumption` that does not symmetry and so on, but I think it might be better to include this into mathlib4 now, maybe it solves some porting issues already. The other features are probably less trivial. ESTIMATED CHANGES Modified Mathlib/Mathport/Syntax.lean Modified Mathlib/Tactic/SolveByElim.lean + def Mathlib.Tactic.SolveByElim.elabContextLemmas Modified test/SolveByElim.lean 2022-12-01 21:40:40 04e92ad feat: show info on to_additive even if the declaration already exists (#816) * We move the place where we declare `termInfo` so that it also exists if the additive declaration already existed. * If it already exists, we set `isBinder := false` * Other than that there are some code changes that do not affect the behavior of `@[to_additive]`. * We move `Config` (formerly `ValueType`) up in preparation to add a `reorder` configuration so that `@[to_additive]` can reorder arguments. ESTIMATED CHANGES Modified Mathlib/Tactic/ToAdditive.lean + structure ToAdditive.Config - structure ToAdditive.ValueType +/- def ToAdditive.addToAdditiveAttr +/- def ToAdditive.transformDecl Modified test/toAdditive.lean 2022-12-01 18:18:18 ed45c42 chore: fix field name in DivisionRing (#808) ESTIMATED CHANGES Modified Mathlib/Algebra/Field/Defs.lean 2022-12-01 18:07:35 839fc2e fix: bugs in linarith (#810) Thanks to Jasmin Blanchette for the failing examples, now fixed. ESTIMATED CHANGES Modified Mathlib/Algebra/Ring/Basic.lean Modified Mathlib/Tactic/Linarith/Preprocessing.lean Modified Mathlib/Tactic/Zify.lean Modified test/Zify.lean Modified test/linarith.lean Modified test/norm_cast.lean 2022-12-01 17:40:15 a764138 feat: port Combinatorics.Quiver.Path (#811) Mathlib3 SHA : 62a5626868683c104774de8d85b9855234ac807c - [ ] depends on: #749 ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Combinatorics/Quiver/Path.lean + def Prefunctor.mapPath + theorem Prefunctor.mapPath_comp + theorem Prefunctor.mapPath_cons + theorem Prefunctor.mapPath_nil + theorem Prefunctor.mapPath_toPath + def Quiver.Hom.toPath + def Quiver.Path.comp + theorem Quiver.Path.comp_assoc + theorem Quiver.Path.comp_cons + theorem Quiver.Path.comp_inj' + theorem Quiver.Path.comp_inj + theorem Quiver.Path.comp_inj_left + theorem Quiver.Path.comp_inj_right + theorem Quiver.Path.comp_injective_left + theorem Quiver.Path.comp_injective_right + theorem Quiver.Path.comp_nil + theorem Quiver.Path.eq_of_length_zero + def Quiver.Path.length + theorem Quiver.Path.length_comp + theorem Quiver.Path.length_cons + theorem Quiver.Path.length_nil + theorem Quiver.Path.nil_comp + def Quiver.Path.toList + theorem Quiver.Path.toList_chain_nonempty + theorem Quiver.Path.toList_comp + theorem Quiver.Path.toList_inj + theorem Quiver.Path.toList_injective + inductive Quiver.Path 2022-12-01 16:13:14 147bb19 feat: port Algebra.Order.Sub.Canonical (#814) mathlib3 SHA: 62a5626868683c104774de8d85b9855234ac807c Note that the simpNF linter thinks that some of the lemmas are incorrectly written. I'm not sure what the intended fix is. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Order/Monoid/Canonical/Defs.lean Added Mathlib/Algebra/Order/Sub/Canonical.lean + def CanonicallyOrderedAddMonoid.toAddCancelCommMonoid + theorem add_le_of_le_tsub_left_of_le + theorem add_le_of_le_tsub_right_of_le + theorem add_tsub_assoc_of_le + theorem add_tsub_cancel_iff_le + theorem add_tsub_cancel_of_le + theorem add_tsub_eq_max + theorem add_tsub_tsub_cancel + theorem eq_tsub_iff_add_eq_of_le + theorem le_tsub_iff_le_tsub + theorem le_tsub_iff_left + theorem le_tsub_iff_right + theorem lt_of_tsub_lt_tsub_left_of_le + theorem lt_of_tsub_lt_tsub_right_of_le + theorem lt_tsub_iff_left_of_le + theorem lt_tsub_iff_right_of_le + theorem tsub_add_cancel_iff_le + theorem tsub_add_cancel_of_le + theorem tsub_add_eq_add_tsub + theorem tsub_add_eq_max + theorem tsub_add_min + theorem tsub_add_tsub_cancel + theorem tsub_add_tsub_comm + theorem tsub_eq_iff_eq_add_of_le + theorem tsub_eq_tsub_min + theorem tsub_eq_zero_iff_le + theorem tsub_inj_left + theorem tsub_inj_right + theorem tsub_le_self + theorem tsub_le_tsub_iff_left + theorem tsub_le_tsub_iff_right + theorem tsub_left_inj + theorem tsub_lt_iff_left + theorem tsub_lt_iff_right + theorem tsub_lt_iff_tsub_lt + theorem tsub_lt_of_lt + theorem tsub_lt_self + theorem tsub_lt_self_iff + theorem tsub_lt_tsub_iff_left_of_le + theorem tsub_lt_tsub_iff_left_of_le_of_le + theorem tsub_lt_tsub_iff_right + theorem tsub_lt_tsub_left_of_le + theorem tsub_lt_tsub_right_of_le + theorem tsub_min + theorem tsub_pos_iff_lt + theorem tsub_pos_iff_not_le + theorem tsub_pos_of_lt + theorem tsub_right_inj + theorem tsub_self + theorem tsub_self_add + theorem tsub_tsub_assoc + theorem tsub_tsub_cancel_of_le + theorem tsub_tsub_tsub_cancel_left + theorem tsub_tsub_tsub_cancel_right + theorem zero_tsub 2022-12-01 15:57:32 fc1a3ee feat: port Order.RelIso.Group (#813) mathlib3 SHA: 62a5626868683c104774de8d85b9855234ac807c I would appreciate advice on naming lemmas about coercions, the porting guide doesn't say what to do. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Order/RelIso/Group.lean + theorem RelIso.apply_inv_self + theorem RelIso.inv_apply_self + theorem RelIso.mul_apply + theorem RelIso.toFun_mul + theorem RelIso.toFun_one 2022-12-01 15:46:19 f9c99d8 feat: port Data.PSigma.Order (#815) mathlib3 SHA: 62a5626868683c104774de8d85b9855234ac807c ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Data/PSigma/Order.lean Modified Mathlib/Data/Sigma/Basic.lean Modified Mathlib/Mathport/Syntax.lean 2022-12-01 15:35:21 c5ffca6 port: several files from category_theory (#749) mathlib git sha: 8350c34a64b9bc3fc64335df8006bffcadc7baa6 Also ports the reassoc attribute. - [x] depends on: #755 ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/Category/Basic.lean + theorem CategoryTheory.cancel_epi + theorem CategoryTheory.cancel_epi_id + theorem CategoryTheory.cancel_mono + theorem CategoryTheory.cancel_mono_id + theorem CategoryTheory.comp_dite + theorem CategoryTheory.comp_ite + theorem CategoryTheory.dite_comp + theorem CategoryTheory.epi_comp + theorem CategoryTheory.epi_of_epi + theorem CategoryTheory.epi_of_epi_fac + theorem CategoryTheory.eq_of_comp_left_eq' + theorem CategoryTheory.eq_of_comp_left_eq + theorem CategoryTheory.eq_of_comp_right_eq' + theorem CategoryTheory.eq_of_comp_right_eq + theorem CategoryTheory.eq_whisker + theorem CategoryTheory.id_of_comp_left_id + theorem CategoryTheory.id_of_comp_right_id + theorem CategoryTheory.ite_comp + theorem CategoryTheory.mono_comp + theorem CategoryTheory.mono_of_mono + theorem CategoryTheory.mono_of_mono_fac + theorem CategoryTheory.whisker_eq + def Std.Tactic.Ext.extCore' Added Mathlib/CategoryTheory/Functor/Basic.lean + def CategoryTheory.Functor.comp + theorem CategoryTheory.Functor.comp_map + theorem CategoryTheory.Functor.id_map + theorem CategoryTheory.Functor.id_obj + theorem CategoryTheory.Functor.map_dite + theorem CategoryTheory.Functor.toPrefunctor_comp + structure CategoryTheory.Functor Added Mathlib/CategoryTheory/Functor/Category.lean + theorem CategoryTheory.NatTrans.app_naturality + theorem CategoryTheory.NatTrans.comp_app + theorem CategoryTheory.NatTrans.congr_app + theorem CategoryTheory.NatTrans.epi_of_epi_app + theorem CategoryTheory.NatTrans.exchange + theorem CategoryTheory.NatTrans.ext' + def CategoryTheory.NatTrans.hcomp + theorem CategoryTheory.NatTrans.hcomp_id_app + theorem CategoryTheory.NatTrans.id_app + theorem CategoryTheory.NatTrans.id_hcomp_app + theorem CategoryTheory.NatTrans.mono_of_mono_app + theorem CategoryTheory.NatTrans.naturality_app + theorem CategoryTheory.NatTrans.vcomp_app' + theorem CategoryTheory.NatTrans.vcomp_eq_comp + theorem CategoryTheory.map_hom_inv_app + theorem CategoryTheory.map_inv_hom_app Added Mathlib/CategoryTheory/Iso.lean + def CategoryTheory.Functor.mapIso + theorem CategoryTheory.Functor.mapIso_refl + theorem CategoryTheory.Functor.mapIso_symm + theorem CategoryTheory.Functor.mapIso_trans + theorem CategoryTheory.Functor.map_hom_inv + theorem CategoryTheory.Functor.map_inv + theorem CategoryTheory.Functor.map_inv_hom + theorem CategoryTheory.IsIso.Iso.inv_hom + theorem CategoryTheory.IsIso.Iso.inv_inv + theorem CategoryTheory.IsIso.comp_inv_eq + theorem CategoryTheory.IsIso.eq_comp_inv + theorem CategoryTheory.IsIso.eq_inv_comp + theorem CategoryTheory.IsIso.eq_inv_of_hom_inv_id + theorem CategoryTheory.IsIso.eq_inv_of_inv_hom_id + theorem CategoryTheory.IsIso.hom_inv_id + theorem CategoryTheory.IsIso.hom_inv_id_assoc + theorem CategoryTheory.IsIso.inv_comp + theorem CategoryTheory.IsIso.inv_comp_eq + theorem CategoryTheory.IsIso.inv_eq_inv + theorem CategoryTheory.IsIso.inv_eq_of_hom_inv_id + theorem CategoryTheory.IsIso.inv_eq_of_inv_hom_id + theorem CategoryTheory.IsIso.inv_hom_id + theorem CategoryTheory.IsIso.inv_hom_id_assoc + theorem CategoryTheory.IsIso.inv_id + theorem CategoryTheory.IsIso.inv_inv + theorem CategoryTheory.IsIso.of_isIso_comp_left + theorem CategoryTheory.IsIso.of_isIso_comp_right + theorem CategoryTheory.IsIso.of_isIso_fac_left + theorem CategoryTheory.IsIso.of_isIso_fac_right + theorem CategoryTheory.Iso.cancel_iso_hom_left + theorem CategoryTheory.Iso.cancel_iso_hom_right + theorem CategoryTheory.Iso.cancel_iso_hom_right_assoc + theorem CategoryTheory.Iso.cancel_iso_inv_left + theorem CategoryTheory.Iso.cancel_iso_inv_right + theorem CategoryTheory.Iso.cancel_iso_inv_right_assoc + theorem CategoryTheory.Iso.comp_hom_eq_id + theorem CategoryTheory.Iso.comp_inv_eq + theorem CategoryTheory.Iso.comp_inv_eq_id + theorem CategoryTheory.Iso.eq_comp_inv + theorem CategoryTheory.Iso.eq_inv_comp + theorem CategoryTheory.Iso.ext + theorem CategoryTheory.Iso.hom_comp_eq_id + theorem CategoryTheory.Iso.hom_eq_inv + theorem CategoryTheory.Iso.inv_comp_eq + theorem CategoryTheory.Iso.inv_comp_eq_id + theorem CategoryTheory.Iso.inv_eq_inv + theorem CategoryTheory.Iso.inv_ext' + theorem CategoryTheory.Iso.inv_ext + theorem CategoryTheory.Iso.nonempty_iso_symm + def CategoryTheory.Iso.refl + theorem CategoryTheory.Iso.refl_symm + theorem CategoryTheory.Iso.refl_trans + theorem CategoryTheory.Iso.self_symm_id + theorem CategoryTheory.Iso.self_symm_id_assoc + def CategoryTheory.Iso.symm + theorem CategoryTheory.Iso.symm_eq_iff + theorem CategoryTheory.Iso.symm_hom + theorem CategoryTheory.Iso.symm_inv + theorem CategoryTheory.Iso.symm_mk + theorem CategoryTheory.Iso.symm_self_id + theorem CategoryTheory.Iso.symm_self_id_assoc + theorem CategoryTheory.Iso.symm_symm_eq + def CategoryTheory.Iso.trans + theorem CategoryTheory.Iso.trans_assoc + theorem CategoryTheory.Iso.trans_mk + theorem CategoryTheory.Iso.trans_refl + theorem CategoryTheory.Iso.trans_symm + structure CategoryTheory.Iso + theorem CategoryTheory.asIso_hom + theorem CategoryTheory.asIso_inv + theorem CategoryTheory.comp_hom_eq_id + theorem CategoryTheory.comp_inv_eq_id + theorem CategoryTheory.eq_of_inv_eq_inv + theorem CategoryTheory.hom_comp_eq_id + theorem CategoryTheory.inv_comp_eq_id + theorem CategoryTheory.isIso_of_comp_hom_eq_id + theorem CategoryTheory.isIso_of_hom_comp_eq_id Added Mathlib/CategoryTheory/NatTrans.lean + theorem CategoryTheory.NatTrans.id_app' + def CategoryTheory.NatTrans.vcomp + theorem CategoryTheory.NatTrans.vcomp_app + structure CategoryTheory.NatTrans + theorem CategoryTheory.congr_app Added Mathlib/Combinatorics/Quiver/Basic.lean + def Prefunctor.comp + theorem Prefunctor.comp_assoc + theorem Prefunctor.ext + def Prefunctor.id + structure Prefunctor + def Quiver.Empty + def Quiver.Hom.op + def Quiver.Hom.unop + def Quiver.IsThin + theorem Quiver.empty_arrow Modified Mathlib/Mathport/Syntax.lean Added Mathlib/Tactic/Reassoc.lean + def CategoryTheory.categorySimp + theorem CategoryTheory.eq_whisker' + def CategoryTheory.reassoc Modified lake-manifest.json 2022-12-01 10:59:59 fe45d2d feat: port Algebra.Order.Monoid.Canonical.Defs (#778) mathlib SHA: 1fc36cc9c8264e6e81253f88be7fb2cb6c92d76a Porting Notes: ~~1. Haven't touched `protect_proj`. If someone knows what to do to fix this, please feel free.~~ ~~2. `LinearOrder.toLattice` is found in `Order.Lattice` which is both not ported yet and not imported.~~ 3. `simp_rw` seems to be more aggressive in lean4, so a proof was rewritten to just use `rw` alone. 4. `simpa` seemed to continue to try and solve a goal after it had already been solved. 5. `one_lt_mul_iff` needed an additional `rfl` to solve. This wasn't needed in lean3. 6. Some `simp` lemmas are not simp-normal form. I have not debugged any of these yet. 7. Further documentation is needed. If anyone wants to add them, please feel free. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Order/Monoid/Canonical/Defs.lean + theorem NeZero.of_gt + theorem NeZero.pos + theorem bot_eq_one' + theorem bot_eq_one + theorem eq_one_or_one_lt + theorem exists_one_lt_mul_of_lt' + theorem exists_one_lt_mul_of_lt + theorem le_iff_exists_mul' + theorem le_iff_exists_mul + theorem le_iff_forall_one_lt_lt_mul' + theorem le_mul_left + theorem le_mul_right + theorem le_mul_self + theorem le_of_forall_one_lt_le_mul + theorem le_of_forall_one_lt_lt_mul' + theorem le_of_mul_le_left + theorem le_of_mul_le_right + theorem le_one_iff_eq_one + theorem le_self_mul + theorem lt_iff_exists_mul + theorem min_mul_distrib' + theorem min_mul_distrib + theorem min_one + theorem mul_eq_one_iff + theorem one_le + theorem one_lt_iff_ne_one + theorem one_lt_mul_iff + theorem one_min + theorem pos_of_gt + theorem self_le_mul_left + theorem self_le_mul_right Modified Mathlib/Tactic/Positivity/Core.lean - theorem zero_le 2022-12-01 01:59:14 3fc1358 feat: port Data.Int.Units (#807) mathlib3 SHA: 62a5626868683c104774de8d85b9855234ac807c I'm a bit confused about the choice of indenting that mathport uses in proofs - I've tried to copy it, but I can't find any documentation to explain a preferred style in Lean 4. I also added a missing `#align` in `Algebra.Group.Units`. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Group/Units.lean Added Mathlib/Data/Int/Units.lean + theorem Int.eq_one_or_neg_one_of_mul_eq_neg_one' + theorem Int.eq_one_or_neg_one_of_mul_eq_neg_one + theorem Int.eq_one_or_neg_one_of_mul_eq_one' + theorem Int.eq_one_or_neg_one_of_mul_eq_one + theorem Int.isUnit_add_isUnit_eq_isUnit_add_isUnit + theorem Int.isUnit_eq_one_or + theorem Int.isUnit_eq_or_eq_neg + theorem Int.isUnit_iff + theorem Int.isUnit_iff_natAbs_eq + theorem Int.isUnit_mul_self + theorem Int.mul_eq_neg_one_iff_eq_one_or_neg_one + theorem Int.mul_eq_one_iff_eq_one_or_neg_one + theorem Int.ofNat_isUnit + theorem Int.units_eq_one_or + theorem Int.units_natAbs Modified Mathlib/Init/Data/Int/Basic.lean 2022-11-30 21:59:20 e48be15 feat: port Data.Nat.PSub (#806) mathlib3 SHA: 62a5626868683c104774de8d85b9855234ac807c I'm not sure if the file should be called `Psub.lean` or `PSub.lean` - mathport chooses the former. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Data/Nat/PSub.lean + def Nat.ppred + theorem Nat.ppred_eq_none + theorem Nat.ppred_eq_pred + theorem Nat.ppred_eq_some + theorem Nat.ppred_succ + theorem Nat.ppred_zero + theorem Nat.pred_eq_ppred + def Nat.psub' + theorem Nat.psub'_eq_psub + def Nat.psub + theorem Nat.psub_add + theorem Nat.psub_eq_none + theorem Nat.psub_eq_some + theorem Nat.psub_eq_sub + theorem Nat.psub_succ + theorem Nat.psub_zero + theorem Nat.sub_eq_psub 2022-11-30 21:35:53 d0c22ca feat: port Algebra.Field.Defs (#668) Tracking mathlib commit: [39af7d3bf61a98e928812dbc3e16f4ea8b795ca3](https://github.com/leanprover-community/mathlib/commit/39af7d3bf61a98e928812dbc3e16f4ea8b795ca3) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Field/Defs.lean + theorem Field.toIsField + theorem IsField.nontrivial + structure IsField + def Rat.castRec + theorem Rat.cast_def + theorem Rat.cast_mk' + theorem Rat.smul_def + theorem Semifield.toIsField + theorem not_isField_of_subsingleton + def qsmulRec + theorem uniq_inv_of_is_field Modified Mathlib/Data/Rat/Init.lean 2022-11-30 20:46:37 60889a2 feat: port Data.Nat.Units (#805) mathlib3 SHA: 62a5626868683c104774de8d85b9855234ac807c Mathport worked really well on this file - there were no errors, just naming changes which I believe I've fixed. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Data/Nat/Units.lean + theorem Nat.addUnits_eq_zero + theorem Nat.units_eq_one 2022-11-30 20:20:13 5213b20 feat: port Order.RelIso.Basic (#772) SHA 19091d8f2e537e76a81d1608e011dd4d03f94642 Finished the port ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Order/RelIso/Basic.lean + def RelEmbedding.Simps.apply + theorem RelEmbedding.coe_fn_injective + theorem RelEmbedding.coe_trans + theorem RelEmbedding.eq_preimage + theorem RelEmbedding.ext + theorem RelEmbedding.ext_iff + theorem RelEmbedding.inj + theorem RelEmbedding.injective + theorem RelEmbedding.map_rel_iff + def RelEmbedding.ofIsEmpty + def RelEmbedding.ofMapRelIff + theorem RelEmbedding.ofMapRelIff_coe + def RelEmbedding.ofMonotone + theorem RelEmbedding.ofMonotone_coe + def RelEmbedding.preimage + def RelEmbedding.prodLexMap + def RelEmbedding.prodLexMkLeft + def RelEmbedding.prodLexMkRight + def RelEmbedding.sumLexInl + def RelEmbedding.sumLexInr + def RelEmbedding.sumLexMap + def RelEmbedding.sumLiftRelInl + def RelEmbedding.sumLiftRelInr + def RelEmbedding.sumLiftRelMap + def RelEmbedding.toRelHom + theorem RelEmbedding.trans_apply + structure RelEmbedding + theorem RelHom.coe_fn_injective + theorem RelHom.coe_fn_toFun + theorem RelHom.ext + theorem RelHom.ext_iff + theorem RelHom.injective_of_increasing + def RelHom.preimage + structure RelHom + def RelIso.Simps.apply + def RelIso.Simps.symmApply + theorem RelIso.apply_symm_apply + theorem RelIso.coe_fn_injective + theorem RelIso.coe_fn_mk + theorem RelIso.coe_fn_symm_mk + theorem RelIso.coe_fn_toEquiv + theorem RelIso.default_def + theorem RelIso.eq_iff_eq + theorem RelIso.ext + theorem RelIso.ext_iff + theorem RelIso.map_rel_iff + def RelIso.prodLexCongr + def RelIso.relIsoOfIsEmpty + def RelIso.relIsoOfUniqueOfIrrefl + def RelIso.relIsoOfUniqueOfRefl + theorem RelIso.rel_symm_apply + def RelIso.sumLexCongr + theorem RelIso.symm_apply_apply + theorem RelIso.symm_apply_rel + theorem RelIso.toEquiv_injective + def RelIso.toRelEmbedding + structure RelIso + def Subtype.relEmbedding + theorem Surjective.wellFounded_iff + theorem injective_of_increasing + theorem preimage_equivalence + theorem wellFounded_lift₂_iff 2022-11-30 18:00:48 80eed25 feat: port Data.Nat.Basic (#729) This is based on a *future* version of mathlib3, once https://github.com/leanprover-community/mathlib/pull/17763 and https://github.com/leanprover-community/mathlib/pull/17759 have landed. - [x] depends on #727 - [x] depends on #730 ESTIMATED CHANGES Modified Mathlib/Data/Fin/Basic.lean + theorem Nat.Up.WF + theorem Nat.Up.next + def Nat.Up + def Nat.upRel Modified Mathlib/Data/Nat/Basic.lean + theorem LT.lt.nat_succ_le - theorem Nat.Up.WF - theorem Nat.Up.next - def Nat.Up + theorem Nat.add_def + theorem Nat.add_mod_eq_add_mod_left + theorem Nat.add_mod_eq_add_mod_right + theorem Nat.add_one_le_iff + theorem Nat.add_succ_sub_one + theorem Nat.and_forall_succ + def Nat.decreasingInduction' + def Nat.decreasingInduction + theorem Nat.decreasingInduction_self + theorem Nat.decreasingInduction_succ' + theorem Nat.decreasingInduction_succ + theorem Nat.decreasingInduction_succ_left + theorem Nat.decreasingInduction_trans + theorem Nat.div_add_mod' + theorem Nat.div_le_div_left + theorem Nat.div_le_iff_le_mul_add_pred + theorem Nat.div_lt_iff_lt_mul' + theorem Nat.div_lt_one_iff + theorem Nat.div_lt_self' + theorem Nat.eq_of_dvd_of_div_eq_one + theorem Nat.eq_of_le_of_lt_succ + theorem Nat.eq_of_lt_succ_of_not_lt + theorem Nat.eq_zero_of_dvd_of_div_eq_zero + theorem Nat.exists_eq_add_of_le + theorem Nat.exists_eq_add_of_lt + theorem Nat.exists_lt_succ + theorem Nat.findGreatest_eq + theorem Nat.findGreatest_of_not + theorem Nat.findGreatest_succ + theorem Nat.findGreatest_zero + theorem Nat.find_comp_succ + theorem Nat.find_eq_iff + theorem Nat.find_eq_zero + theorem Nat.find_le + theorem Nat.find_le_iff + theorem Nat.find_lt_iff + theorem Nat.find_mono + theorem Nat.forall_lt_succ + def Nat.leRecOn' + def Nat.leRecOn + theorem Nat.leRecOn_injective + theorem Nat.leRecOn_self + theorem Nat.leRecOn_succ' + theorem Nat.leRecOn_succ + theorem Nat.leRecOn_succ_left + theorem Nat.leRecOn_surjective + theorem Nat.leRecOn_trans + theorem Nat.le_div_iff_mul_le' + theorem Nat.le_find_iff + theorem Nat.le_induction + theorem Nat.le_of_pred_lt + theorem Nat.lt_add_one_iff + theorem Nat.lt_div_mul_add + theorem Nat.lt_find_iff + theorem Nat.lt_iff_add_one_le + theorem Nat.lt_iff_le_pred + theorem Nat.lt_mul_div_succ + theorem Nat.lt_mul_of_div_lt + theorem Nat.lt_of_div_lt_div + theorem Nat.lt_one_add_iff + theorem Nat.lt_succ_iff + theorem Nat.lt_succ_iff_lt_or_eq + theorem Nat.max_succ_succ + theorem Nat.mod_add_div' + theorem Nat.mod_eq_iff_lt + theorem Nat.mod_mod_of_dvd + theorem Nat.mod_succ_eq_iff_lt + theorem Nat.mul_add_mod + theorem Nat.mul_add_mod_of_lt + theorem Nat.mul_def + theorem Nat.mul_div_le_mul_div_assoc + theorem Nat.mul_dvd_of_dvd_div + theorem Nat.mul_left_eq_self_iff + theorem Nat.mul_ne_mul_left + theorem Nat.mul_ne_mul_right + theorem Nat.mul_right_eq_self_iff + theorem Nat.not_succ_lt_self + theorem Nat.of_le_succ + theorem Nat.one_add_le_iff + theorem Nat.one_le_div_iff + theorem Nat.one_lt_succ_succ + theorem Nat.or_exists_succ + def Nat.pincerRecursion + theorem Nat.pred_eq_of_eq_succ + theorem Nat.pred_eq_self_iff + theorem Nat.pred_eq_sub_one + theorem Nat.pred_eq_succ_iff + theorem Nat.pred_one_add + theorem Nat.pred_sub + theorem Nat.rec_add_one + theorem Nat.rec_zero + def Nat.strongRecOn' + theorem Nat.strongRecOn'_beta + def Nat.strongSubRecursion + theorem Nat.succ_add_sub_one + theorem Nat.succ_injective + theorem Nat.succ_le_iff + theorem Nat.succ_lt_succ_iff + theorem Nat.succ_ne_succ + theorem Nat.succ_pos' + theorem Nat.succ_succ_ne_one + theorem Nat.two_lt_of_ne + theorem Nat.two_mul_ne_two_mul_add_one - def Nat.upRel Modified Mathlib/Init/Logic.lean 2022-11-30 17:39:05 8b5a89e feat: port Control.Monad.Basic (#752) mathlib SHA: 76171581280d5b5d1e2d1f4f37e5420357bdc636 Not sure what I need to do with the attributes. Also, should the type signatures be golfed in lean4 style? ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Control/Monad/Basic.lean + def ReaderT.equiv + def StateT.equiv + def StateT.eval + theorem map_eq_bind_pure_comp Modified Mathlib/Control/SimpSet.lean 2022-11-30 17:39:04 0f79411 chore: record pp_nodot on the tactic todo list (#712) ESTIMATED CHANGES Modified Mathlib/Mathport/Syntax.lean Modified scripts/nolints.json 2022-11-30 17:19:11 2f7863d chore: fix naming conventions in Order.WithBot (#801) ESTIMATED CHANGES Modified Mathlib/Order/RelClasses.lean Modified Mathlib/Order/WithBot.lean + theorem WithBot.coe_strictMono - theorem WithBot.coe_strict_mono + theorem WithBot.recBotCoe_bot + theorem WithBot.recBotCoe_coe - theorem WithBot.rec_bot_coe_bot - theorem WithBot.rec_bot_coe_coe + theorem WithBot.strictMono_iff + theorem WithBot.strictMono_map_iff - theorem WithBot.strict_mono_iff - theorem WithBot.strict_mono_map_iff + theorem WithBot.wellFounded_gt + theorem WithBot.wellFounded_lt - theorem WithBot.well_founded_gt - theorem WithBot.well_founded_lt + theorem WithTop.coe_strictMono - theorem WithTop.coe_strict_mono + theorem WithTop.recTopCoe_coe + theorem WithTop.recTopCoe_top - theorem WithTop.rec_top_coe_coe - theorem WithTop.rec_top_coe_top + theorem WithTop.strictMono_iff + theorem WithTop.strictMono_map_iff - theorem WithTop.strict_mono_iff - theorem WithTop.strict_mono_map_iff + theorem WithTop.wellFounded_gt + theorem WithTop.wellFounded_lt - theorem WithTop.well_founded_gt - theorem WithTop.well_founded_lt 2022-11-30 17:19:08 932da6e chore: bump to nightly-2022-11-30 (#800) ESTIMATED CHANGES Modified Mathlib/Data/Prod/Basic.lean Modified Mathlib/Init/Data/Bool/Lemmas.lean Modified lake-manifest.json Modified lean-toolchain 2022-11-30 16:55:00 c8e9a35 feat: port Control.Applicative (#798) mathlib3 SHA: 4e42a9d0a79d151ee359c270e498b1a00cc6fa4e A couple of changes needed to be made because `Seq.seq` now has a `Unit` argument. There remain some sorries that were previously solved by `control_laws_tac`. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Control/Applicative.lean + theorem Applicative.ext + theorem Applicative.map_seq_map + theorem Applicative.pure_seq_eq_map' + theorem Comp.seq_mk + theorem Functor.Comp.applicative_comp_id + theorem Functor.Comp.applicative_id_comp + theorem Functor.Comp.map_pure + theorem Functor.Comp.pure_seq_eq_map + theorem Functor.Comp.seq_assoc + theorem Functor.Comp.seq_pure 2022-11-30 16:38:12 dc615a3 feat: meta code for the category_theory port (#755) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Lean/Meta.lean + def Lean.Meta.mapForallTelescope' + def Lean.Meta.mapForallTelescope Added Mathlib/Lean/Meta/Simp.lean + def Lean.Meta.simpOnlyNames + def Lean.Meta.simpTheoremsOfNames + def Lean.Meta.simpType 2022-11-30 13:42:55 3a3b30d feat: add IsCancelMulZero (#724) We add `IsCancelMulZero` and related classes. This is the continuation of [#606](https://github.com/leanprover-community/mathlib4/pull/606). Corresponding mathlib3 PR [#17716](https://github.com/leanprover-community/mathlib/pull/17716). ESTIMATED CHANGES Modified Mathlib/Algebra/GroupWithZero/Defs.lean + theorem CommMonoidWithZero.IsLeftCancelMulZero.to_IsCancelMulZero + theorem CommMonoidWithZero.IsLeftCancelMulZero.to_IsRightCancelMulZero + theorem CommMonoidWithZero.IsRightCancelMulZero.to_IsCancelMulZero + theorem CommMonoidWithZero.IsRightCancelMulZero.to_IsLeftCancelMulZero 2022-11-30 12:38:37 7a4d2ab feat: align LawfulApplicative.pure_seq (#797) In core Lean 3, the class `is_lawful_applicative` has a field `pure_seq_eq_map`. In core Lean 4 the name of the corresponding field in `LawfulApplicative` has been shortened to `pure_seq`, so it needs aligning. ESTIMATED CHANGES Modified Mathlib/Init/Align.lean 2022-11-30 11:32:08 7d27cfc feat: add comparative benchmarking script (#756) This script: 1. does a complete build of mathlib (using downloaded oleans) and mathlib4 (slowly). 2. rebuilds just the "theory" files in mathlib4 3. rebuilds the corresponding files in mathlib3 4. reports the time taken for steps 2. and 3. I propose posting the output of this script regularly at https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/port.20benchmark Please feel free to edit this PR to change formatting / make more robust / etc. ESTIMATED CHANGES Added scripts/benchmark.sh 2022-11-30 11:22:42 e2d4e53 fix: remove unnecessary example in Data.Pi.Algebra (#796) It seems that during the port of Data.Pi.Algebra I accidentally left in an `example` testing if stuff worked. ESTIMATED CHANGES Modified Mathlib/Data/Pi/Algebra.lean 2022-11-30 08:34:26 090135a feat: port Order.PropInstances (#792) mathlib3 sha 4e42a9d0a79d151ee359c270e498b1a00cc6fa4e ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Order/PropInstances.lean + theorem Pi.codisjoint_iff + theorem Pi.disjoint_iff + theorem Pi.isCompl_iff + theorem Prop.bot_eq_false + theorem Prop.codisjoint_iff + theorem Prop.disjoint_iff + theorem Prop.isCompl_iff + theorem Prop.top_eq_true + theorem inf_Prop_eq + theorem sup_Prop_eq 2022-11-30 05:06:04 f6e67b2 feat: port Algebra.Ring.Regular (#795) mathlib SHA: 4e42a9d0a79d151ee359c270e498b1a00cc6fa4e Porting Notes: 1. Basically no errors. Only needed to fix some lambdas having implicit arguments. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Ring/Regular.lean + def NoZeroDivisors.toCancelCommMonoidWithZero + def NoZeroDivisors.toCancelMonoidWithZero + theorem isLeftRegular_of_non_zero_divisor + theorem isRegular_iff_ne_zero' + theorem isRegular_of_ne_zero' + theorem isRightRegular_of_non_zero_divisor 2022-11-30 01:07:46 425142c refactor: improve the way simps traces messages (#789) * Previously it was done with a configuration option, but it is much cleaner by using the option, so that we can use `trace[simps.verbose] ...` * Add `KVMap.updateBool` which simplifies some applications * Uncomment some tests of `simps` * Minor tweaks ESTIMATED CHANGES Modified Mathlib/Data/KVMap.lean + def Lean.KVMap.updateBool Modified Mathlib/Tactic/Simps/Basic.lean Modified Mathlib/Tactic/ToAdditive.lean +/- def ToAdditive.addToAdditiveAttr Modified test/Simps.lean 2022-11-30 00:57:53 69cf326 fix: delete superfluous to_additive names (#790) * Most of these were already giving trace messages, but they are only shown in the command-line when running `lake build --verbose` * Use the name default name for the additive version for `instUniqueUnits` (the previous name didn't correspond to the multiplicative version at all) ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Defs.lean Modified Mathlib/Algebra/Group/Units.lean Modified Mathlib/Algebra/Order/Group.lean Modified Mathlib/Data/Pi/Algebra.lean 2022-11-30 00:16:07 d2ce889 chore: remove some sorries (#791) The `decidable_le` sorries broke mathport because they need to be compiled. ESTIMATED CHANGES Modified Mathlib/Data/Int/Order/Basic.lean Modified Mathlib/Data/Rat/Order.lean 2022-11-29 21:05:45 624d945 feat(Algebra.Order.Monoid.OrderDual): port file (#786) mathlib3 SHA: 1fc36cc9c8264e6e81253f88be7fb2cb6c92d76a Notes: 1. On line 80, the elaborator tries to synthesise `OrderedCancelCommMonoid αᵒᵈ` and fails, instead of using `OrderedCancelCommMonoid α` as is intended - so I needed to write out the instance explicitly. 2. A couple of `@[to_additive]`s needed to be added. Signed-off-by: thirdsgames ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Order/Monoid/Cancel/Defs.lean Modified Mathlib/Algebra/Order/Monoid/Defs.lean Added Mathlib/Algebra/Order/Monoid/OrderDual.lean 2022-11-29 20:56:26 0ef0e73 chore(Algebra/Order/Ring/Lemmas): fix names (#781) ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Ring/Lemmas.lean + theorem MulPosMono.toMulPosReflectLT - theorem MulPosMono.to_mul_pos_reflect_lt + theorem MulPosMonoRev.toMulPosStrictMono - theorem MulPosMonoRev.to_mul_pos_strict_mono + theorem MulPosReflectLT.toMulPosMono - theorem MulPosReflectLT.to_mul_pos_mono + theorem PosMulMono.toPosMulReflectLT - theorem PosMulMono.to_pos_mul_reflect_lt + theorem PosMulMonoRev.toPosMulStrictMono - theorem PosMulMonoRev.to_pos_mul_strict_mono + theorem PosMulReflectLT.toPosMulMono - theorem PosMulReflectLT.to_pos_mul_mono + theorem mulPosMono_iff_mulPosReflectLT + theorem mulPosStrictMono_iff_mulPosMonoRev - theorem mul_pos_mono_iff_mul_pos_reflect_lt - theorem mul_pos_strict_mono_iff_mul_pos_mono_rev + theorem posMulMono_iff_posMulReflectLT + theorem posMulStrictMono_iff_posMulMonoRev - theorem pos_mul_mono_iff_pos_mul_reflect_lt - theorem pos_mul_strict_mono_iff_pos_mul_mono_rev 2022-11-29 20:56:25 25f9f17 feat: port Order.WithBot (#777) SHA: 4674d16c9f219334f07b9220ea5f315838bbb573 Finished port The main change was introducing `WithBot.some` and `WithTop.some` and defining the coercion as `WithBot.some` instead of `Option.some` to avoid elaboration issues with using `Option.some`. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Order/WithBot.lean + theorem WithBot.bot_lt_coe + theorem WithBot.bot_ne_coe + theorem WithBot.coe_eq_coe + theorem WithBot.coe_inf + theorem WithBot.coe_inj + theorem WithBot.coe_injective + theorem WithBot.coe_le + theorem WithBot.coe_le_coe + theorem WithBot.coe_le_iff + theorem WithBot.coe_lt_coe + theorem WithBot.coe_max + theorem WithBot.coe_min + theorem WithBot.coe_mono + theorem WithBot.coe_ne_bot + theorem WithBot.coe_strict_mono + theorem WithBot.coe_sup + theorem WithBot.coe_unbot + theorem WithBot.le_coe_iff + theorem WithBot.le_coe_unbot' + theorem WithBot.le_ofDual_iff + theorem WithBot.le_toDual_iff + theorem WithBot.lt_coe_iff + theorem WithBot.lt_iff_exists_coe + theorem WithBot.lt_iff_exists_coe_btwn + theorem WithBot.lt_ofDual_iff + theorem WithBot.lt_toDual_iff + def WithBot.map + theorem WithBot.map_bot + theorem WithBot.map_coe + theorem WithBot.map_comm + theorem WithBot.map_le_iff + theorem WithBot.map_ofDual + theorem WithBot.map_toDual + theorem WithBot.monotone_iff + theorem WithBot.monotone_map_iff + theorem WithBot.ne_bot_iff_exists + theorem WithBot.none_eq_bot + theorem WithBot.none_le + theorem WithBot.none_lt_some + theorem WithBot.not_coe_le_bot + theorem WithBot.not_lt_none + theorem WithBot.ofDual_apply_bot + theorem WithBot.ofDual_apply_coe + theorem WithBot.ofDual_le_iff + theorem WithBot.ofDual_le_ofDual_iff + theorem WithBot.ofDual_lt_iff + theorem WithBot.ofDual_lt_ofDual_iff + theorem WithBot.ofDual_map + theorem WithBot.ofDual_symm_apply + def WithBot.recBotCoe + theorem WithBot.rec_bot_coe_bot + theorem WithBot.rec_bot_coe_coe + def WithBot.some + theorem WithBot.some_eq_coe + theorem WithBot.some_le_some + theorem WithBot.some_lt_some + theorem WithBot.strict_mono_iff + theorem WithBot.strict_mono_map_iff + theorem WithBot.toDual_apply_bot + theorem WithBot.toDual_apply_coe + theorem WithBot.toDual_le_iff + theorem WithBot.toDual_le_toDual_iff + theorem WithBot.toDual_lt_iff + theorem WithBot.toDual_lt_toDual_iff + theorem WithBot.toDual_map + theorem WithBot.toDual_symm_apply + def WithBot.unbot' + theorem WithBot.unbot'_bot + theorem WithBot.unbot'_bot_le_iff + theorem WithBot.unbot'_coe + theorem WithBot.unbot'_lt_iff + def WithBot.unbot + theorem WithBot.unbot_coe + theorem WithBot.well_founded_gt + theorem WithBot.well_founded_lt + def WithBot + theorem WithTop.coe_eq_coe + theorem WithTop.coe_inf + theorem WithTop.coe_le_coe + theorem WithTop.coe_le_iff + theorem WithTop.coe_lt_coe + theorem WithTop.coe_lt_iff + theorem WithTop.coe_lt_top + theorem WithTop.coe_max + theorem WithTop.coe_min + theorem WithTop.coe_mono + theorem WithTop.coe_ne_top + theorem WithTop.coe_strict_mono + theorem WithTop.coe_sup + theorem WithTop.coe_untop + theorem WithTop.le_coe + theorem WithTop.le_coe_iff + theorem WithTop.le_none + theorem WithTop.le_ofDual_iff + theorem WithTop.le_toDual_iff + theorem WithTop.lt_iff_exists_coe + theorem WithTop.lt_iff_exists_coe_btwn + theorem WithTop.lt_ofDual_iff + theorem WithTop.lt_toDual_iff + def WithTop.map + theorem WithTop.map_coe + theorem WithTop.map_comm + theorem WithTop.map_le_iff + theorem WithTop.map_ofDual + theorem WithTop.map_toDual + theorem WithTop.map_top + theorem WithTop.monotone_iff + theorem WithTop.monotone_map_iff + theorem WithTop.ne_top_iff_exists + theorem WithTop.none_eq_top + theorem WithTop.not_none_lt + theorem WithTop.not_top_le_coe + theorem WithTop.ofDual_apply_coe + theorem WithTop.ofDual_apply_top + theorem WithTop.ofDual_le_iff + theorem WithTop.ofDual_le_ofDual_iff + theorem WithTop.ofDual_lt_iff + theorem WithTop.ofDual_lt_ofDual_iff + theorem WithTop.ofDual_map + theorem WithTop.ofDual_symm_apply + def WithTop.recTopCoe + theorem WithTop.rec_top_coe_coe + theorem WithTop.rec_top_coe_top + def WithTop.some + theorem WithTop.some_eq_coe + theorem WithTop.some_le_some + theorem WithTop.some_lt_none + theorem WithTop.some_lt_some + theorem WithTop.strict_mono_iff + theorem WithTop.strict_mono_map_iff + theorem WithTop.toDual_apply_coe + theorem WithTop.toDual_apply_top + theorem WithTop.toDual_le_iff + theorem WithTop.toDual_le_toDual_iff + theorem WithTop.toDual_lt_iff + theorem WithTop.toDual_lt_toDual_iff + theorem WithTop.toDual_map + theorem WithTop.toDual_symm_apply + theorem WithTop.top_ne_coe + def WithTop.untop' + theorem WithTop.untop'_coe + theorem WithTop.untop'_top + def WithTop.untop + theorem WithTop.untop_coe + theorem WithTop.well_founded_gt + theorem WithTop.well_founded_lt + def WithTop 2022-11-29 20:45:38 463b024 feat(Data.Prod.Lex): port file (#783) mathlib3 SHA: 1fc36cc9c8264e6e81253f88be7fb2cb6c92d76a porting notes: there are several issues here that should probably be fixed before this gets merged 1. `Prod.Lex` is not protect in core, so when you have this namespace open and try to refer to `Lex`, Lean finds `Prod.Lex` instead of `_root_.Lex`. This is not a huge deal since we have notation `α ×ₗ β`, but we should probably ask for it to be protected in core. See https://github.com/leanprover/lean4/pull/1895 2. on the declarations `toLex_mono` and `toLex_strictMono`, Lean sees right through the type synonym `α ×ₗ β` to `α × β` and uses the wrong `Preorder` instance, which is why I had to provide them manually. I think this is a bug and should be fixed, otherwise it will cause loads of other issues down the road (for other type synonyms) and the errors will be hard to diagnose. EDIT: Hopefully https://github.com/leanprover/lean4/issues/1891 will provide a fix. 3. I had to provide the definitions of `min` and `max` for the `LinearOrder` instance manually because in Lean 4 we have the classes `Min` and `Max` which have no counterpart in Lean 3. In this case it's a bit annoying because `ite` requires decidability, so I effectively had to provide that three times in this instance declaration. Surely there should be a better way? ESTIMATED CHANGES Modified .github/workflows/bors.yml Modified .github/workflows/build.yml Modified .github/workflows/build.yml.in Modified .github/workflows/build_fork.yml Modified Mathlib.lean Modified Mathlib/Data/Prod/Basic.lean - theorem Prod.Lex_def + theorem Prod.lex_def Added Mathlib/Data/Prod/Lex.lean + theorem Prod.Lex.le_iff + theorem Prod.Lex.lt_iff + theorem Prod.Lex.toLex_mono + theorem Prod.Lex.toLex_strictMono Modified Mathlib/Init/Algebra/Order.lean 2022-11-29 19:28:03 68d5751 chore: bump to nightly-2022-11-29 (#785) `injection` and `congr` both became more powerful in Lean 4 core, so some proofs simplify. ESTIMATED CHANGES Modified Mathlib/Algebra/GroupWithZero/Units/Basic.lean Modified Mathlib/Logic/Function/Basic.lean Modified Mathlib/Order/BoundedOrder.lean Modified Mathlib/Order/Lattice.lean Modified Mathlib/Tactic/Recover.lean - def Lean.HashSet.insertMany Modified lake-manifest.json Modified lean-toolchain 2022-11-29 19:28:01 24ac0e4 feat: better name guessing for to_additive (#779) * `@[to_additive]` will now correctly guess names with `CoeTC`, `CoeT` and `CoeHTCT` in it * rewrite function `targetName`. - It will now warn the user if it gives a composite name that can be auto-generated (before `to_additive` would never warn if a composite name was given). - the logic when `allowAutoName = true` now corresponds to the docstring - Fix a bug where declarations were silently allowed to translate to itself (maybe because the `return` statements returned a value for the whole function?) - Add some more tracing - The behavior of namespaces when giving a composite name has been changed. It will always generate a name with the same number of components. Example: ```lean namespace MeasureTheory.MulMeasure @[to_additive AddMeasure.myOperation] def myOperation := ... -- before: generates `AddMeasure.myOperation` (and never gives a warning) -- after: generates `MeasureTheory.AddMeasure.myOperation` (and probably warns that the name can be auto-generated) end MeasureTheory.MulMeasure ``` * This should fix all problems in #659 other than #660 Minor changes: * When applying `@[to_additive]` to a structure, add a trace message if no translation is inserted for a field. * Define `Name.fromComponents` and `Name.splitAt` * Reduce transitive imports of `Tactic/toAdditive` * Move some auxiliary declarations from `Tactic/Simps` to more appropriate places - swap arguments of `String.isPrefixOf?` - improve `Name.getString` ESTIMATED CHANGES Modified Mathlib/Data/String/Defs.lean + def String.isPrefixOf? Modified Mathlib/Lean/Expr/Basic.lean + def Lean.Name.fromComponents + def Lean.Name.getString + def Lean.Name.splitAt + def Lean.Name.updateLast Modified Mathlib/Tactic/Simps/Basic.lean - def Lean.Name.getString - def Lean.Name.updateLast - def String.isPrefixOf? Modified Mathlib/Tactic/ToAdditive.lean - def allCapitalNames + def endCapitalNames Modified test/toAdditive.lean 2022-11-29 19:18:14 716d703 chore: have CI cleanup before starting (#787) ESTIMATED CHANGES Modified .github/workflows/bors.yml Modified .github/workflows/build.yml Modified .github/workflows/build.yml.in Modified .github/workflows/build_fork.yml 2022-11-28 22:47:10 bef01ac docs (Order.BoundedOrder): fix typos (#775) A minor fix which I failed to get in before the PR porting this file was merged :-) ESTIMATED CHANGES Modified Mathlib/Order/BoundedOrder.lean 2022-11-28 22:47:09 104cff4 feat: port Algebra.Order.Monoid.Cancel.Defs (#774) sha 1fc36cc9c8264e6e81253f88be7fb2cb6c92d76a ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Order/Group.lean Deleted Mathlib/Algebra/Order/Monoid/Cancel.lean Added Mathlib/Algebra/Order/Monoid/Cancel/Defs.lean + theorem OrderedCancelCommMonoid.lt_of_mul_lt_mul_left 2022-11-28 22:38:31 4449a0a feat: port Order.Disjoint (#773) sha 1fc36cc9c8264e6e81253f88be7fb2cb6c92d76a ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Order/Disjoint.lean + theorem Codisjoint.comm + theorem Codisjoint.dual + theorem Codisjoint.eq_top + theorem Codisjoint.eq_top_of_ge + theorem Codisjoint.eq_top_of_le + theorem Codisjoint.inf_left + theorem Codisjoint.inf_right + theorem Codisjoint.left_le_of_le_inf_left + theorem Codisjoint.left_le_of_le_inf_right + theorem Codisjoint.mono + theorem Codisjoint.mono_left + theorem Codisjoint.mono_right + theorem Codisjoint.ne + theorem Codisjoint.of_codisjoint_sup_of_le' + theorem Codisjoint.of_codisjoint_sup_of_le + theorem Codisjoint.sup_left' + theorem Codisjoint.sup_left + theorem Codisjoint.sup_right' + theorem Codisjoint.sup_right + theorem Codisjoint.symm + theorem Codisjoint.top_le + def Codisjoint + theorem Disjoint.comm + theorem Disjoint.dual + theorem Disjoint.eq_bot + theorem Disjoint.eq_bot_of_ge + theorem Disjoint.eq_bot_of_le + theorem Disjoint.inf_left' + theorem Disjoint.inf_left + theorem Disjoint.inf_right' + theorem Disjoint.inf_right + theorem Disjoint.le_bot + theorem Disjoint.le_of_codisjoint + theorem Disjoint.left_le_of_le_sup_left + theorem Disjoint.left_le_of_le_sup_right + theorem Disjoint.mono + theorem Disjoint.mono_left + theorem Disjoint.mono_right + theorem Disjoint.ne + theorem Disjoint.of_disjoint_inf_of_le' + theorem Disjoint.of_disjoint_inf_of_le + theorem Disjoint.sup_left + theorem Disjoint.sup_right + theorem Disjoint.symm + def Disjoint + theorem IsCompl.disjoint_left_iff + theorem IsCompl.disjoint_right_iff + theorem IsCompl.dual + theorem IsCompl.inf_eq_bot + theorem IsCompl.inf_left_eq_bot_iff + theorem IsCompl.inf_left_le_of_le_sup_right + theorem IsCompl.inf_right_eq_bot_iff + theorem IsCompl.inf_sup + theorem IsCompl.le_left_iff + theorem IsCompl.le_right_iff + theorem IsCompl.le_sup_right_iff_inf_left_le + theorem IsCompl.left_le_iff + theorem IsCompl.left_unique + theorem IsCompl.ofDual + theorem IsCompl.of_eq + theorem IsCompl.of_le + theorem IsCompl.right_le_iff + theorem IsCompl.right_unique + theorem IsCompl.sup_eq_top + theorem IsCompl.sup_inf + structure IsCompl + theorem bot_codisjoint + theorem codisjoint_assoc + theorem codisjoint_bot + theorem codisjoint_iff + theorem codisjoint_iff_le_sup + theorem codisjoint_inf_left + theorem codisjoint_inf_right + theorem codisjoint_left_comm + theorem codisjoint_ofDual_iff + theorem codisjoint_right_comm + theorem codisjoint_self + theorem codisjoint_toDual_iff + theorem codisjoint_top_left + theorem codisjoint_top_right + theorem disjoint_assoc + theorem disjoint_bot_left + theorem disjoint_bot_right + theorem disjoint_iff + theorem disjoint_iff_inf_le + theorem disjoint_left_comm + theorem disjoint_ofDual_iff + theorem disjoint_right_comm + theorem disjoint_self + theorem disjoint_sup_left + theorem disjoint_sup_right + theorem disjoint_toDual_iff + theorem disjoint_top + theorem eq_bot_of_isCompl_top + theorem eq_bot_of_top_isCompl + theorem eq_top_of_bot_isCompl + theorem eq_top_of_isCompl_bot + theorem isCompl_bot_top + theorem isCompl_iff + theorem isCompl_ofDual_iff + theorem isCompl_toDual_iff + theorem isCompl_top_bot + theorem symmetric_codisjoint + theorem symmetric_disjoint + theorem top_disjoint 2022-11-28 22:26:37 9dbb2a0 feat: port linarith (#526) TODO: * Before merge - [x] fix a bug in linarith in mathlib3 I just found ... - [x] depends on: #519 - [x] style lint - [x] docs - [X] move theory stubs to a separate PR, for easier tracking: #733 - [x] failing to parse the `LinarithConfig` option * Before or after merge? - [ ] Implement the `removeNe` preprocessor. - [ ] Add support for restricting to a single type. How to store a `Type` in `LinarithConfig`? * After merge - [ ] Teach `norm_num` to solve `example [LinearOrderedRing α] : (0 : α) < 37 := by norm_num`. - [ ] Port `zify_proof` (plumbing for `zify`), and add the `natToInt` preprocessor. Mostly done now, but see #741 before all the tests will work. - [ ] Port `cancel_denoms` tactic, and add the `cancelDenoms` preprocessor. - [ ] Add the `nlinarith` preprocessor and front-end syntax. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Data/HashMap.lean + def Std.HashMap.consVal + def Std.HashMap.keys + def Std.HashMap.values + def Std.RBSet.insertList Modified Mathlib/Lean/Expr/Basic.lean + def Lean.Expr.ensureHasNoMVars + def Lean.Expr.ofInt + def Lean.Expr.ofNat + def Lean.Expr.zero? + def Lean.mkConst' Modified Mathlib/Lean/Meta.lean + def Lean.Elab.Tactic.liftMetaFinishingTactic + def Lean.Elab.Tactic.run_for +/- def Lean.MVarId.existsi +/- def Lean.MVarId.replace Modified Mathlib/Mathport/Syntax.lean Modified Mathlib/Tactic/Abel.lean - def Lean.Expr.ofInt - def Lean.Expr.ofNat Added Mathlib/Tactic/Linarith.lean Added Mathlib/Tactic/Linarith/Datatypes.lean + def Linarith.Branch + def Linarith.CertificateOracle + def Linarith.Comp.add + def Linarith.Comp.cmp + def Linarith.Comp.coeffOf + def Linarith.Comp.isContr + def Linarith.Comp.scale + def Linarith.Comp.vars + structure Linarith.Comp + def Linarith.GlobalBranchingPreprocessor.process + structure Linarith.GlobalBranchingPreprocessor + def Linarith.GlobalPreprocessor.branching + structure Linarith.GlobalPreprocessor + def Linarith.Ineq.cmp + def Linarith.Ineq.max + def Linarith.Ineq.toConstMulName + def Linarith.Ineq.toString + inductive Linarith.Ineq + def Linarith.LinarithConfig.updateReducibility + structure Linarith.LinarithConfig + def Linarith.Linexp.cmp + def Linarith.Linexp.contains + def Linarith.Linexp.get + def Linarith.Linexp.scale + def Linarith.Linexp.vars + def Linarith.Linexp.zfind + def Linarith.Linexp + def Linarith.Preprocessor.globalize + structure Linarith.Preprocessor + def Linarith.getRelSides + def Linarith.linarithTraceProofs + def Linarith.mkSingleCompZeroOf + def Linarith.parseCompAndExpr Added Mathlib/Tactic/Linarith/Elimination.lean + def Linarith.CompSource.flatten + def Linarith.CompSource.toString + inductive Linarith.CompSource + def Linarith.FourierMotzkin.produceCertificate + structure Linarith.LinarithData + def Linarith.LinarithM + def Linarith.PComp.add + def Linarith.PComp.assump + def Linarith.PComp.cmp + def Linarith.PComp.isContr + def Linarith.PComp.maybeMinimal + def Linarith.PComp.scale + structure Linarith.PComp + def Linarith.elimAllVarsM + def Linarith.elimVar + def Linarith.elimVarM + def Linarith.elimWithSet + def Linarith.getMaxVar + def Linarith.getPCompSet + def Linarith.mkLinarithData + def Linarith.pelimVar + def Linarith.splitSetByVarSign + def Linarith.update + def Linarith.validate Added Mathlib/Tactic/Linarith/Frontend.lean + def Linarith.applyContrLemma + def Linarith.findLinarithContradiction + def Linarith.getContrLemma + def Linarith.partitionByType + def Linarith.runLinarith Added Mathlib/Tactic/Linarith/Lemmas.lean + theorem Linarith.eq_of_eq_of_eq + theorem Linarith.eq_of_not_lt_of_not_gt + theorem Linarith.le_of_eq_of_le + theorem Linarith.le_of_le_of_eq + theorem Linarith.lt_irrefl + theorem Linarith.lt_of_eq_of_lt + theorem Linarith.lt_of_lt_of_eq + theorem Linarith.mul_eq + theorem Linarith.mul_neg + theorem Linarith.mul_nonpos + theorem le_zero_of_zero_ge + theorem lt_zero_of_zero_gt + theorem neg_neg_of_pos + theorem neg_nonpos_of_nonneg + theorem sub_neg_of_lt + theorem sub_nonpos_of_le + theorem zero_lt_one Added Mathlib/Tactic/Linarith/Parsing.lean + def Linarith.Monom.lt + def Linarith.Monom.one + def Linarith.Monom + def Linarith.Sum.mul + def Linarith.Sum.one + def Linarith.Sum.pow + def Linarith.Sum.scaleByMonom + def Linarith.Sum + def Linarith.SumOfMonom + def Linarith.elimMonom + def Linarith.linearFormOfAtom + def Linarith.linearFormsAndMaxVar + def Linarith.one + def Linarith.scalar + def Linarith.toComp + def Linarith.toCompFold + def Linarith.var + def List.findDefeq Added Mathlib/Tactic/Linarith/Preprocessing.lean + def Linarith.Expr.compare + def Linarith.compWithZero + def Linarith.default_preprocessors + def Linarith.flipNegatedComparison + def Linarith.isNatIntCoe + def Linarith.isStrictIntComparison + def Linarith.mkNonstrictIntProof + def Linarith.mk_coe_nat_nonneg_prf + def Linarith.natToInt + def Linarith.preprocess + def Linarith.removeNegations + def Linarith.strengthenStrictInt Added Mathlib/Tactic/Linarith/Verification.lean + def Linarith.addExprs' + def Linarith.addExprs + def Linarith.addIneq + def Linarith.addNegEqProofs + def Linarith.leftOfIneqProof + def Linarith.mkLTZeroProof + def Linarith.mkNegOneLtZeroProof + def Linarith.mulExpr' + def Linarith.mulExpr + def Linarith.proveEqZeroUsing + def Linarith.proveFalseByLinarith + def Linarith.typeOfIneqProof + def Qq.inferTypeQ' + def Qq.ofNatQ Modified Mathlib/Tactic/NormNum/Basic.lean Modified Mathlib/Tactic/Zify.lean Modified Mathlib/Util/SynthesizeUsing.lean +/- def synthesizeUsing Added test/linarith.lean 2022-11-28 20:12:18 5c8f880 feat: port Algebra.Order.Monoid.Defs (#771) from mathlib3port 76171581280d5b5d1e2d1f4f37e5420357bdc636 The structure definitions and instances already existed, in the placeholder file `Algebra.Order.Monoid`; just a couple of lemmas needed to be ported. The remaining material in the placeholder file `Algebra.Order.Monoid` was about ordered-cancel-monoids, so I have moved this to a new placeholder file `Algebra.Order.Monoid.Cancel` (itself to be replaced eventually by `Algebra.Order.Monoid.Cancel.*`). I commented out the lemma ```lean theorem bit0_pos [OrderedAddCommMonoid α] {a : α} (h : 0 < a) : 0 < bit0 a := add_pos' h h ``` was this the right move or should I have deleted it? Or kept and labelled as a nolint? ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Order/Group.lean Deleted Mathlib/Algebra/Order/Monoid.lean - theorem Mul.to_covariantClass_left - theorem Mul.to_covariantClass_right Added Mathlib/Algebra/Order/Monoid/Cancel.lean Added Mathlib/Algebra/Order/Monoid/Defs.lean + theorem Mul.to_CovariantClass_left + theorem Mul.to_CovariantClass_right + theorem add_top + theorem bit0_pos + theorem top_add Modified Mathlib/Algebra/Order/Ring.lean 2022-11-28 17:28:05 f784a3c feat: port control.functor (#612) mathlib3 SHA: 71ca477041bcd6d7c745fe555dc49735c12944b7 - [x] depends on: #588 Notes: 1. There is a discrepancy between the Lean 3 and Lean 4 types of `has_seq.seq` and `Seq.seq`. I added an `ₓ` for alignment. 2. There were one or two places where the existing `simp` or `rw` calls didn't succeed, but I'm not entirely sure why. 3. In `Functor.Comp.functor_comp_id` and `Functor.Comp.functor_id_comp` I had to use `Id` instead of `id`, because only the former has the `Monad` instance. 4. I had to change the imports, but I think what is there now is minimal. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Control/Functor.lean + def Functor.AddConst.mk + def Functor.AddConst.run + def Functor.AddConst + theorem Functor.Comp.functor_comp_id + theorem Functor.Comp.functor_id_comp + theorem Functor.Comp.map_mk + def Functor.Comp.mk + def Functor.Comp.run + def Functor.Comp + def Functor.Const.mk' + def Functor.Const.mk + def Functor.Const.run + def Functor.Const + def Functor.Liftp + def Functor.Liftr + theorem Functor.ext + theorem Functor.map_comp_map + theorem Functor.map_id + theorem Functor.of_mem_supp + def Functor.supp + def id.mk 2022-11-28 16:57:38 716300a feat(Algebra/GroupWithZero/Commute): port file (#762) mathlib3 SHA: 76171581280d5b5d1e2d1f4f37e5420357bdc636 porting notes: easy 1. There were two lemmas that had been ad hoc ported into Algebra.Ring.Basic, which caused these to be marked as dubious translations by Mathport (because the type class assumptions didn't match), so I have just `#align`ed them *without* an `ₓ` here. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/GroupWithZero/Commute.lean + theorem Commute.div_left + theorem Commute.div_right + theorem Commute.inv_left_iff₀ + theorem Commute.inv_left₀ + theorem Commute.inv_right_iff₀ + theorem Commute.inv_right₀ + theorem Commute.ring_inverse_ring_inverse + theorem Commute.zero_left + theorem Commute.zero_right + theorem Ring.mul_inverse_rev' + theorem Ring.mul_inverse_rev Modified Mathlib/Algebra/Ring/Basic.lean - theorem Commute.zero_left - theorem Commute.zero_right 2022-11-28 16:29:33 0f9bf8d feat: port Logic.Equiv.Option (#674) Initial port for Logic.Equiv.Option -- syntax, naming & many proofs. Based on 39af7d3bf61a98e928812dbc3e16f4ea8b795ca3 ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Logic/Equiv/Option.lean + theorem Equiv.coe_optionSubtype_apply_apply + def Equiv.optionCongr + theorem Equiv.optionCongr_eq_equivFunctor_mapEquiv + theorem Equiv.optionCongr_injective + theorem Equiv.optionCongr_refl + theorem Equiv.optionCongr_symm + theorem Equiv.optionCongr_trans + def Equiv.optionSubtype + theorem Equiv.optionSubtype_apply_apply + theorem Equiv.optionSubtype_apply_symm_apply + theorem Equiv.optionSubtype_symm_apply_apply_coe + theorem Equiv.optionSubtype_symm_apply_apply_none + theorem Equiv.optionSubtype_symm_apply_apply_some + theorem Equiv.optionSubtype_symm_apply_symm_apply + theorem Equiv.option_symm_apply_none_iff + def Equiv.removeNone + def Equiv.removeNone_aux + theorem Equiv.removeNone_aux_inv + theorem Equiv.removeNone_aux_none + theorem Equiv.removeNone_aux_some + theorem Equiv.removeNone_none + theorem Equiv.removeNone_optionCongr + theorem Equiv.removeNone_some + theorem Equiv.removeNone_symm + theorem Equiv.some_removeNone_iff 2022-11-28 16:05:27 038093f chore: fix todos in `to_additive` (#765) These were made possible by additions in core. ESTIMATED CHANGES Modified Mathlib/Algebra/Group/OrderSynonym.lean Modified Mathlib/Tactic/ToAdditive.lean 2022-11-28 16:05:26 84b363a feat(Algebra/Order/Monoid/MinMax): port file (#763) mathlib3 SHA: 76171581280d5b5d1e2d1f4f37e5420357bdc636 porting notes: mathport perfect modulo line breaks and an import! ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Order/Monoid/MinMax.lean + theorem fn_min_mul_fn_max + theorem lt_or_lt_of_mul_lt_mul + theorem max_le_mul_of_one_le + theorem max_mul_mul_left + theorem max_mul_mul_right + theorem min_le_mul_of_one_le_left + theorem min_le_mul_of_one_le_right + theorem min_mul_max + theorem min_mul_mul_left + theorem min_mul_mul_right + theorem mul_lt_mul_iff_of_le_of_le 2022-11-28 16:05:24 b863d2a fix: update context in recursive calls in split_ifs (#761) Fixes #760. Before this change, we were failing at an fvar lookup here: https://github.com/leanprover-community/mathlib4/blob/91897c46c6cdf35faad92219848764a4e6f87d86/Mathlib/Tactic/SplitIfs.lean#L44 ESTIMATED CHANGES Modified Mathlib/Tactic/SplitIfs.lean Modified test/SplitIfs.lean 2022-11-28 16:05:22 41c6832 feat(Algebra/Regular/Basic): port file (#758) mathlib SHA: 76171581280d5b5d1e2d1f4f37e5420357bdc636 Porting notes: 1. It seems like `to_additive` is not correctly converting `IsLeftRegular`, `IsRightRegular`, and `IsRegular`. Giving explicit names for their conversion fixes this issue. 2. The proof of `IsLeftRegular.ne_zero` needed an additional type annotation to behave properly ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Regular/Basic.lean + theorem Commute.isRegular_iff + structure IsAddRegular + theorem IsLeftRegular.mul + theorem IsLeftRegular.ne_zero + theorem IsLeftRegular.of_mul + theorem IsLeftRegular.right_of_commute + theorem IsLeftRegular.subsingleton + def IsLeftRegular + theorem IsRegular.and_of_mul_of_mul + theorem IsRegular.ne_zero + theorem IsRegular.subsingleton + structure IsRegular + theorem IsRightRegular.mul + theorem IsRightRegular.ne_zero + theorem IsRightRegular.of_mul + theorem IsRightRegular.subsingleton + def IsRightRegular + theorem IsUnit.isRegular + theorem Units.isRegular + theorem isLeftRegular_of_leftCancelSemigroup + theorem isLeftRegular_of_mul_eq_one + theorem isLeftRegular_zero_iff_subsingleton + theorem isRegular_iff_ne_zero + theorem isRegular_iff_subsingleton + theorem isRegular_mul_and_mul_iff + theorem isRegular_mul_iff + theorem isRegular_of_cancelMonoid + theorem isRegular_of_ne_zero + theorem isRegular_one + theorem isRightRegular_of_mul_eq_one + theorem isRightRegular_of_rightCancelSemigroup + theorem isRightRegular_zero_iff_subsingleton + theorem mul_isLeftRegular_iff + theorem mul_isRightRegular_iff + theorem not_isLeftRegular_zero + theorem not_isLeftRegular_zero_iff + theorem not_isRegular_zero + theorem not_isRightRegular_zero + theorem not_isRightRegular_zero_iff Modified Mathlib/Tactic/ToAdditive.lean Modified test/toAdditive.lean 2022-11-28 15:54:16 74deab3 feat: port Order.BoundedOrder (#697) - [x] depends on: #642 - [x] depends on: https://github.com/leanprover-community/mathlib/pull/17730 Tracking mathlib commit: [e50b8c261b0a000b806ec0e1356b41945eda61f7](https://github.com/leanprover-community/mathlib/commit/e50b8c261b0a000b806ec0e1356b41945eda61f7) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Order/BoundedOrder.lean + theorem Antitone.ball + theorem Antitone.forall + theorem BoundedOrder.ext + def BoundedOrder.lift + theorem Monotone.ball + theorem Monotone.forall + theorem Ne.bot_lt' + theorem Ne.bot_lt + theorem Ne.lt_top' + theorem Ne.lt_top + theorem OrderBot.ext + theorem OrderBot.ext_bot + def OrderBot.lift + theorem OrderDual.ofDual_bot + theorem OrderDual.ofDual_top + theorem OrderDual.toDual_bot + theorem OrderDual.toDual_top + theorem OrderTop.ext + theorem OrderTop.ext_top + def OrderTop.lift + theorem Pi.bot_apply + theorem Pi.bot_def + theorem Pi.top_apply + theorem Pi.top_def + theorem StrictAnti.apply_eq_bot_iff + theorem StrictAnti.apply_eq_top_iff + theorem StrictMono.apply_eq_bot_iff + theorem StrictMono.apply_eq_top_iff + theorem StrictMono.maximal_preimage_top + theorem StrictMono.minimal_preimage_bot + theorem Subtype.coe_bot + theorem Subtype.coe_eq_bot_iff + theorem Subtype.coe_eq_top_iff + theorem Subtype.coe_top + theorem Subtype.mk_bot + theorem Subtype.mk_eq_bot_iff + theorem Subtype.mk_eq_top_iff + theorem Subtype.mk_top + theorem antitone_le + theorem antitone_lt + theorem bot_eq_false + theorem bot_inf_eq + theorem bot_le + theorem bot_lt_iff_ne_bot + theorem bot_lt_top + theorem bot_ne_top + theorem bot_sup_eq + theorem bot_unique + theorem eq_bot_iff + theorem eq_bot_mono + theorem eq_bot_of_bot_eq_top + theorem eq_bot_of_minimal + theorem eq_bot_or_bot_lt + theorem eq_top_iff + theorem eq_top_mono + theorem eq_top_of_bot_eq_top + theorem eq_top_or_lt_top + theorem exists_ge_and_iff_exists + theorem exists_le_and_iff_exists + theorem inf_bot_eq + theorem inf_eq_top_iff + theorem inf_top_eq + theorem isBot_bot + theorem isBot_iff_eq_bot + theorem isMax_iff_eq_top + theorem isMax_top + theorem isMin_bot + theorem isMin_iff_eq_bot + theorem isTop_iff_eq_top + theorem isTop_top + theorem le_bot_iff + theorem le_top + theorem lt_top_iff_ne_top + theorem max_bot_left + theorem max_bot_right + theorem max_eq_bot + theorem max_eq_top + theorem max_top_left + theorem max_top_right + theorem min_bot_left + theorem min_bot_right + theorem min_eq_bot + theorem min_eq_top + theorem min_top_left + theorem min_top_right + theorem monotone_and + theorem monotone_le + theorem monotone_lt + theorem monotone_or + theorem ne_bot_of_gt + theorem ne_bot_of_le_ne_bot + theorem ne_top_of_le_ne_top + theorem ne_top_of_lt + theorem not_bot_lt_iff + theorem not_isBot_iff_ne_bot + theorem not_isMax_bot + theorem not_isMax_iff_ne_top + theorem not_isMin_iff_ne_bot + theorem not_isMin_top + theorem not_isTop_iff_ne_top + theorem not_lt_bot + theorem not_lt_top_iff + theorem not_top_lt + theorem subsingleton_iff_bot_eq_top + theorem subsingleton_of_bot_eq_top + theorem subsingleton_of_top_le_bot + theorem sup_bot_eq + theorem sup_eq_bot_iff + theorem sup_top_eq + theorem top_eq_true + theorem top_inf_eq + theorem top_le_iff + theorem top_ne_bot + theorem top_sup_eq + theorem top_unique 2022-11-28 15:54:14 c2db4e5 feat: port Data.Pi.Algebra (#564) - [x] depends on: #579 Mathlib SHA: 17a9f8f7a4ef32ee65d418103367cf30e84e631d Done with the reviews. This should hopefully now be ready to merge. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Data/Pi/Algebra.lean + theorem Function.bijective_pi_map + theorem Function.extend_div + theorem Function.extend_inv + theorem Function.extend_mul + theorem Function.extend_one + theorem Function.injective_pi_map + theorem Function.surjective_pi_map + theorem Pi.apply_mulSingle + theorem Pi.apply_mulSingle₂ + theorem Pi.bit0_apply + theorem Pi.bit1_apply + theorem Pi.comp_one + theorem Pi.const_div + theorem Pi.const_inv + theorem Pi.const_mul + theorem Pi.const_one + theorem Pi.const_pow + theorem Pi.div_apply + theorem Pi.div_comp + theorem Pi.div_def + theorem Pi.inv_apply + theorem Pi.inv_comp + theorem Pi.inv_def + def Pi.mulSingle + theorem Pi.mulSingle_apply + theorem Pi.mulSingle_comm + theorem Pi.mulSingle_eq_of_ne' + theorem Pi.mulSingle_eq_of_ne + theorem Pi.mulSingle_eq_same + theorem Pi.mulSingle_inj + theorem Pi.mulSingle_injective + theorem Pi.mulSingle_one + theorem Pi.mulSingle_op + theorem Pi.mulSingle_op₂ + theorem Pi.mul_apply + theorem Pi.mul_comp + theorem Pi.mul_def + theorem Pi.one_apply + theorem Pi.one_comp + theorem Pi.one_def + theorem Pi.pow_apply + theorem Pi.pow_comp + theorem Pi.pow_def + theorem Pi.prod_fst_snd + theorem Pi.prod_snd_fst + theorem Pi.smul_apply + theorem Pi.smul_comp + theorem Pi.smul_const + theorem Pi.smul_def + theorem Subsingleton.pi_mulSingle_eq + theorem Sum.elim_div_div + theorem Sum.elim_inv_inv + theorem Sum.elim_mulSingle_one + theorem Sum.elim_mul_mul + theorem Sum.elim_one_mulSingle + theorem Sum.elim_one_one + def uniqueOfSurjectiveOne 2022-11-28 15:29:38 6d140cb feat: port Algebra.Hom.Embedding (#764) sha 76171581280d5b5d1e2d1f4f37e5420357bdc636 ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Hom/Embedding.lean + def mulLeftEmbedding + def mulRightEmbedding + theorem mul_left_embedding_eq_mul_right_embedding 2022-11-28 15:20:43 1b19085 fix: to_additive generates equation lemmas for target (#767) * Also copy attributes for equation lemmas * Add a comment why we generate equation lemmas for non-recursive definitions. * This will allow us to doubly additivize a declaration (e.g. `Pow -> SMul -> VAdd`) ESTIMATED CHANGES Modified Mathlib/Tactic/ToAdditive.lean 2022-11-28 14:58:59 7ff66d2 fix: fix translation errors in various files (#716) ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Defs.lean Modified Mathlib/Algebra/Group/OrderSynonym.lean Modified Mathlib/Algebra/Order/Ring/Lemmas.lean Modified Mathlib/Data/Bracket.lean Modified Mathlib/Logic/Basic.lean Modified Mathlib/Order/Basic.lean Modified Mathlib/Tactic/ToAdditive.lean 2022-11-28 14:48:47 2563df7 fix: remove submodules (#766) I believe these were accidentally added by @semorrison in 06f1a772ab89aa7b71aeea19c1319f7d1bdeec00 as part of #700 ESTIMATED CHANGES Deleted lean_packages/Qq Deleted lean_packages/aesop Deleted lean_packages/std 2022-11-28 02:17:17 91897c4 feat(Algebra/Group/Commute): port file (#750) mathlib3 SHA: 76171581280d5b5d1e2d1f4f37e5420357bdc636 porting notes: mostly smooth 1. This completely rewrites the existing ad hoc port 2. there were several dubious translation warnings. I think none of them are issues, but I have left comments and also added `ₓ` to those declarations. If you want to see the translation errors see 46d095eabc7afb8d06e21f3b9c61c9a5eea1df5f 3. I fixed a naming error in `Algebra/Group/Semiconj` 4. `simpNF` told me that it could prove some lemmas, so I removed the `simp` attribute and left porting notes. ESTIMATED CHANGES 2022-11-28 02:06:37 dd60a64 feat(Algebra/Ring/Commute): port file (#759) mathlib3 SHA: 76171581280d5b5d1e2d1f4f37e5420357bdc636 - [ ] depends on: #750 porting notes: basically perfect by mathport! 1. I marked things involving `bit0` and `bit1` as deprecated, but left them in. 2. For some reason `Commute.add_right` and `Commute.add_left` were marked as dubious translations, and this seemed to be because from Lean 3 we have `Distrib`, but Lean 4 expected `Semiring`, so I just `#align`ed with an `ₓ` ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Group/Commute.lean + theorem Commute.inv_inv + theorem Commute.inv_inv_iff + theorem Commute.inv_left + theorem Commute.inv_left_iff + theorem Commute.inv_mul_cancel_assoc + theorem Commute.inv_right + theorem Commute.inv_right_iff + theorem Commute.isUnit_mul_iff + theorem Commute.mul_inv_cancel_assoc + theorem Commute.units_inv_left + theorem Commute.units_inv_left_iff + theorem Commute.units_inv_right + theorem Commute.units_inv_right_iff + theorem Commute.units_of_val + theorem Commute.units_val + theorem Commute.units_val_iff + def Units.leftOfMul + def Units.rightOfMul + theorem inv_mul_cancel_comm + theorem inv_mul_cancel_comm_assoc + theorem isUnit_mul_self_iff + theorem mul_inv_cancel_comm + theorem mul_inv_cancel_comm_assoc Modified Mathlib/Algebra/Group/Semiconj.lean - theorem SemiconjBy.units_coe - theorem SemiconjBy.units_coe_iff - theorem SemiconjBy.units_of_coe + theorem SemiconjBy.units_of_val + theorem SemiconjBy.units_val + theorem SemiconjBy.units_val_iff Modified Mathlib/Algebra/GroupPower/Basic.lean - theorem succ_nsmul' Modified Mathlib/Algebra/Ring/Basic.lean - theorem Commute.add_left - theorem Commute.add_right Added Mathlib/Algebra/Ring/Commute.lean + theorem Commute.add_left + theorem Commute.add_right + theorem Commute.bit0_left + theorem Commute.bit0_right + theorem Commute.bit1_left + theorem Commute.bit1_right + theorem Commute.mul_self_eq_mul_self_iff + theorem Commute.mul_self_sub_mul_self_eq' + theorem Commute.mul_self_sub_mul_self_eq + theorem Commute.neg_left + theorem Commute.neg_left_iff + theorem Commute.neg_one_left + theorem Commute.neg_one_right + theorem Commute.neg_right + theorem Commute.neg_right_iff + theorem Commute.sub_left + theorem Commute.sub_right + theorem Units.inv_eq_self_iff + theorem mul_self_eq_mul_self_iff + theorem mul_self_eq_one_iff + theorem mul_self_sub_mul_self + theorem mul_self_sub_one 2022-11-28 02:06:36 92b8c7b feat(Algebra/GroupWithZero/Semiconj): port file (#757) mathlib3 SHA: 76171581280d5b5d1e2d1f4f37e5420357bdc636 porting notes: another perfect shot by mathport! ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/GroupWithZero/Semiconj.lean + theorem SemiconjBy.div_right + theorem SemiconjBy.inv_right_iff₀ + theorem SemiconjBy.inv_right₀ + theorem SemiconjBy.inv_symm_left_iff₀ + theorem SemiconjBy.inv_symm_left₀ + theorem SemiconjBy.zero_left + theorem SemiconjBy.zero_right 2022-11-28 01:58:24 6cf4e3a port logic.embedding.basic (#700) From mathlib3port: e50b8c261b0a000b806ec0e1356b41945eda61f7 ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Logic/Basic.lean + theorem eq_ite_iff Added Mathlib/Logic/Embedding/Basic.lean + def Equiv.asEmbedding + theorem Equiv.coe_toEmbedding + def Equiv.embeddingCongr + theorem Equiv.embeddingCongr_apply_trans + theorem Equiv.embeddingCongr_refl + theorem Equiv.embeddingCongr_symm + theorem Equiv.embeddingCongr_trans + theorem Equiv.refl_toEmbedding + def Equiv.subtypeInjectiveEquivEmbedding + theorem Equiv.toEmbedding_apply + theorem Equiv.trans_toEmbedding + def Function.Embedding.Simps.apply + theorem Function.Embedding.apply_eq_iff_eq + def Function.Embedding.arrowCongrRight + theorem Function.Embedding.arrowCongrRight_apply + theorem Function.Embedding.coeFn_mk + theorem Function.Embedding.coe_injective + theorem Function.Embedding.coe_prodMap + theorem Function.Embedding.coe_quotientOut + theorem Function.Embedding.coe_subtype + theorem Function.Embedding.coe_sumMap + theorem Function.Embedding.equiv_symm_toEmbedding_trans_toEmbedding + theorem Function.Embedding.equiv_toEmbedding_trans_symm_toEmbedding + theorem Function.Embedding.ext + theorem Function.Embedding.ext_iff + def Function.Embedding.inl + def Function.Embedding.inr + theorem Function.Embedding.mk_coe + def Function.Embedding.optionMap + def Function.Embedding.piCongrRight + def Function.Embedding.pprodMap + def Function.Embedding.prodMap + def Function.Embedding.punit + def Function.Embedding.sectl + def Function.Embedding.sectr + def Function.Embedding.setValue + theorem Function.Embedding.setValue_eq + def Function.Embedding.sigmaMap + def Function.Embedding.sigmaMk + def Function.Embedding.subtype + def Function.Embedding.sumMap + theorem Function.Embedding.swap_apply + theorem Function.Embedding.swap_comp + theorem Function.Embedding.toFun_eq_coe + structure Function.Embedding + def Subtype.impEmbedding + def subtypeOrLeftEmbedding + theorem subtypeOrLeftEmbedding_apply_left + theorem subtypeOrLeftEmbedding_apply_right Added lean_packages/Qq Added lean_packages/aesop Added lean_packages/std 2022-11-27 23:16:25 b774567 feat(Algebra/Ring/Semiconj): port file (#751) mathlib3 SHA: 76171581280d5b5d1e2d1f4f37e5420357bdc636 porting notes: 1. Woot! mathport succeeded with no help! 2. I had to remove the `simp` attribute on two declarations because `simpNF` said so. I left porting notes. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Ring/Semiconj.lean + theorem SemiconjBy.add_left + theorem SemiconjBy.add_right + theorem SemiconjBy.neg_left + theorem SemiconjBy.neg_left_iff + theorem SemiconjBy.neg_one_left + theorem SemiconjBy.neg_one_right + theorem SemiconjBy.neg_right + theorem SemiconjBy.neg_right_iff + theorem SemiconjBy.sub_left + theorem SemiconjBy.sub_right 2022-11-27 22:58:33 de9b486 feat(Algebra/GroupWithZero/Units/Basic): port file (#735) mathlib3 SHA: 71ca477041bcd6d7c745fe555dc49735c12944b7 porting notes: 1. `mul_inv_cancel` has an extra explicit argument now (from another file that was ported); does this need to be fixed? (FIXED) 2. I'm worried about the proof of `Units.mul_inv'` because it suggests to me that something is wrong, but maybe this is a result of how casts are handled now? We should look into it. (FIXED: the issue was that Lean 4 elaborated the theorem statement differently than Lean 3, so the lemma was actually invisibly stated incorrectly; the fix was to help the elaborator to produce the right statement.) 3. A few other proofs required trivial fixes, but it's a bit surprising they needed them. 4. I couldn't seem to add the `protected` attribute to the alias `Ne.isUnit` (#740) 5. It seems that `AssertExists` or rather `AssertNotExists` is not implemented yet in mathlib4, so we can't use it to guard against import creep at the bottom of the file, but I think this is fine for now. 6. A few `simp` lemmas now trip the `simpNF` linter because they involve coercions and can be proven by `simp` already, so I removed the `simp` attribute. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/GroupWithZero/Units/Basic.lean + theorem GroupWithZero.eq_zero_or_unit + theorem IsUnit.mk0 + theorem IsUnit.mul_left_eq_zero + theorem IsUnit.mul_right_eq_zero + theorem IsUnit.ne_zero + theorem IsUnit.ring_inverse + theorem Ring.eq_mul_inverse_iff_mul_eq + theorem Ring.inverse_eq_inv' + theorem Ring.inverse_eq_inv + theorem Ring.inverse_mul_cancel + theorem Ring.inverse_mul_cancel_left + theorem Ring.inverse_mul_cancel_right + theorem Ring.inverse_mul_eq_iff_eq_mul + theorem Ring.inverse_non_unit + theorem Ring.inverse_one + theorem Ring.inverse_unit + theorem Ring.inverse_zero + theorem Ring.mul_inverse_cancel + theorem Ring.mul_inverse_cancel_left + theorem Ring.mul_inverse_cancel_right + theorem Units.exists0' + theorem Units.exists0 + theorem Units.exists_iff_ne_zero + theorem Units.inv_mul' + def Units.mk0 + theorem Units.mk0_inj + theorem Units.mk0_mul + theorem Units.mk0_one + theorem Units.mk0_val + theorem Units.mul_inv' + theorem Units.mul_left_eq_zero + theorem Units.mul_right_eq_zero + theorem Units.ne_zero + theorem Units.val_mk0 + theorem div_eq_zero_iff + theorem div_ne_zero + theorem div_ne_zero_iff + theorem isUnit_iff_ne_zero + theorem isUnit_ring_inverse + theorem isUnit_zero_iff + theorem not_isUnit_zero 2022-11-27 22:58:32 3df696e feat: port Algebra.Order.Sub.Defs (#732) Based on '71ca477041bcd6d7c745fe555dc49735c12944b7' ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Order/Sub/Defs.lean + theorem add_le_add_add_tsub + theorem add_tsub_add_eq_tsub_left + theorem add_tsub_add_eq_tsub_right + theorem add_tsub_add_le_tsub_add_tsub + theorem add_tsub_add_le_tsub_left + theorem add_tsub_add_le_tsub_right + theorem add_tsub_cancel_left + theorem add_tsub_cancel_right + theorem add_tsub_le_assoc + theorem add_tsub_le_left + theorem add_tsub_le_right + theorem add_tsub_le_tsub_add + theorem antitone_const_tsub + theorem eq_tsub_of_add_eq + theorem le_add_tsub' + theorem le_add_tsub + theorem le_add_tsub_swap + theorem le_tsub_add + theorem le_tsub_add_add + theorem le_tsub_of_add_le_left + theorem le_tsub_of_add_le_right + theorem lt_add_of_tsub_lt_left + theorem lt_add_of_tsub_lt_right + theorem lt_of_tsub_lt_tsub_left + theorem lt_of_tsub_lt_tsub_right + theorem lt_tsub_comm + theorem lt_tsub_iff_left + theorem lt_tsub_iff_right + theorem lt_tsub_of_add_lt_left + theorem lt_tsub_of_add_lt_right + theorem tsub_add_eq_tsub_tsub + theorem tsub_add_eq_tsub_tsub_swap + theorem tsub_eq_of_eq_add + theorem tsub_eq_of_eq_add_rev + theorem tsub_le_iff_left + theorem tsub_le_iff_right + theorem tsub_le_iff_tsub_le + theorem tsub_le_tsub + theorem tsub_le_tsub_add_tsub + theorem tsub_le_tsub_left + theorem tsub_le_tsub_right + theorem tsub_nonpos + theorem tsub_right_comm + theorem tsub_tsub + theorem tsub_tsub_le + theorem tsub_tsub_le_tsub_add + theorem tsub_tsub_tsub_le_tsub + theorem tsub_zero 2022-11-27 22:50:43 522ccf7 chore: use explicit arguments in Init.Logic to match mathlib3 (#753) ESTIMATED CHANGES Modified Mathlib/Init/CcLemmas.lean Modified Mathlib/Init/Logic.lean Modified Mathlib/Order/RelClasses.lean 2022-11-27 08:50:26 7c09b05 feat: port Data.Countable.Defs (#736) Mathlib SHA: 71ca477041bcd6d7c745fe555dc49735c12944b7 ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Data/Countable/Defs.lean + theorem Countable.exists_injective_nat + theorem Countable.of_equiv + theorem Equiv.countable_iff + theorem countable_iff_exists_surjective + theorem exists_surjective_nat 2022-11-27 05:24:20 3f8b9ff chore: bump to nightly-2022-11-26 (#747) ESTIMATED CHANGES Modified lake-manifest.json Modified lean-toolchain 2022-11-27 04:26:20 c4adc91 feat(Algebra/Ring/Units): port file (#746) mathlib3 SHA: 71ca477041bcd6d7c745fe555dc49735c12944b7 porting notes: we're missing `assoc_rw` and `simp_rw` I think, so I had to work around it for now, but I left a note. Otherwise very smooth. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Ring/Units.lean + theorem IsUnit.neg + theorem IsUnit.neg_iff + theorem IsUnit.sub_iff + theorem Units.add_divp + theorem Units.divp_add + theorem Units.divp_add_divp + theorem Units.divp_add_divp_same + theorem Units.divp_sub + theorem Units.divp_sub_divp + theorem Units.divp_sub_divp_same + theorem Units.neg_divp + theorem Units.sub_divp 2022-11-27 03:29:32 1176a2c style(Algebra/Order/Monoid/Lemmas): Update to current naming convention (#743) Per the wiki, `mul_le_cancellable` should translate to `MulLECancellable`. Also changes `mul_le_cancellable_one` to `mulLECancellable_one`. ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Monoid/Lemmas.lean + theorem Contravariant.MulLECancellable - theorem Contravariant.MulLeCancellable + def MulLECancellable - def MulLeCancellable + theorem mulLECancellable_one - theorem mul_le_cancellable_one 2022-11-26 16:56:00 6689472 feat: stubs in ad-hoc ported files for linarith algebra requirements (#733) `linarith` needs various things that haven't been ported yet. This PR adds various sorried stubs in ad-hoc ported files ahead of where we're currently up to. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Order/Ring.lean Modified Mathlib/Data/Int/Order/Basic.lean Added Mathlib/Data/Rat/Defs.lean Added Mathlib/Data/Rat/Order.lean Modified Mathlib/Tactic/Positivity/Basic.lean Modified test/positivity.lean 2022-11-26 16:48:13 0d2f062 feat: port algebra.group.semiconj (#717) mathlib SHA e50b8c261b0a000b806ec0e1356b41945eda61f7 This completes an earlier partial port of the file. ~~I added a workaround for the issue explained by Floris at https://github.com/leanprover-community/mathlib4/pull/707#issuecomment-1326669750.~~ ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Semiconj.lean + theorem SemiconjBy.conj_mk + theorem SemiconjBy.inv_inv_symm + theorem SemiconjBy.inv_inv_symm_iff + theorem SemiconjBy.inv_right + theorem SemiconjBy.inv_right_iff + theorem SemiconjBy.inv_symm_left + theorem SemiconjBy.inv_symm_left_iff + theorem SemiconjBy.units_coe + theorem SemiconjBy.units_coe_iff + theorem SemiconjBy.units_inv_right + theorem SemiconjBy.units_inv_right_iff + theorem SemiconjBy.units_inv_symm_left + theorem SemiconjBy.units_inv_symm_left_iff + theorem SemiconjBy.units_of_coe +/- def SemiconjBy + theorem Units.mk_semiconjBy + theorem semiconjBy_iff_eq Modified Mathlib/Logic/Function/Basic.lean 2022-11-26 15:48:35 f1d21e5 chore: make argument to mul_inv_cancel implicit (#737) This matches mathlib3. ESTIMATED CHANGES Modified Mathlib/Algebra/GroupWithZero/Basic.lean Modified Mathlib/Algebra/GroupWithZero/Defs.lean + theorem mul_inv_cancel Modified Mathlib/Algebra/GroupWithZero/InjSurj.lean 2022-11-26 05:38:40 d3ff87d feat(Algebra/Ring/InjSurj): port file (#734) mathlib3 SHA: 71ca477041bcd6d7c745fe555dc49735c12944b7 porting notes: mostly smooth but: 1. there were two places where I had to add `MulZeroClass` explicitly (toward the end of the file), which was weird 2. one declaration is surprisingly slow for no apparent reason ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Ring/InjSurj.lean 2022-11-26 05:25:48 5f78e34 chore: bump to nightly-2022-11-25 (#731) ESTIMATED CHANGES Modified Mathlib/Data/Nat/Cast/Defs.lean Modified Mathlib/Order/Basic.lean Modified lake-manifest.json Modified lean-toolchain 2022-11-26 03:55:43 315d3a6 feat: port order.minmax (#728) Port of `order.minmax` Based on 71ca477041bcd6d7c745fe555dc49735c12944b7 ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Order/MinMax.lean + theorem Antitone.map_max + theorem Antitone.map_min + theorem AntitoneOn.map_max + theorem AntitoneOn.map_min + theorem Max.left_comm + theorem Max.right_comm + theorem Monotone.map_max + theorem Monotone.map_min + theorem MonotoneOn.map_max + theorem MonotoneOn.map_min + theorem le_max_iff + theorem le_max_of_le_left + theorem le_max_of_le_right + theorem le_min_iff + theorem le_of_max_le_left + theorem le_of_max_le_right + theorem lt_max_iff + theorem lt_max_of_lt_left + theorem lt_max_of_lt_right + theorem lt_min_iff + theorem max_associative + theorem max_cases + theorem max_choice + theorem max_commutative + theorem max_eq_iff + theorem max_eq_left_iff + theorem max_eq_right_iff + theorem max_le_iff + theorem max_le_max + theorem max_left_commutative + theorem max_lt_iff + theorem max_lt_max + theorem max_lt_max_left_iff + theorem max_lt_max_right_iff + theorem max_min_distrib_left + theorem max_min_distrib_right + theorem min_associative + theorem min_cases + theorem min_choice + theorem min_commutative + theorem min_eq_iff + theorem min_eq_left_iff + theorem min_eq_right_iff + theorem min_le_iff + theorem min_le_max + theorem min_le_min + theorem min_le_of_left_le + theorem min_le_of_right_le + theorem min_left_commutative + theorem min_lt_iff + theorem min_lt_max + theorem min_lt_min + theorem min_lt_min_left_iff + theorem min_lt_min_right_iff + theorem min_lt_of_left_lt + theorem min_lt_of_right_lt + theorem min_max_distrib_left + theorem min_max_distrib_right + theorem min_right_comm 2022-11-25 21:42:12 39eb593 chore: make the 'p' argument to Nat.find implicit (#730) This matches lean3. ESTIMATED CHANGES Modified Mathlib/Init/Data/Nat/Lemmas.lean 2022-11-25 20:23:16 a8872c3 feat: port Control.Basic (#588) mathlib3 SHA: 08aeb33b5b693fb1392a7568ae2c0b253516535e porting notes: 1. The notation `$<` has been removed entirely. It is the same operation as `|>` in Lean 4 except with lower priority and a quick grep revealed it occurred literally nowhere in mathlib3. 2. The dubious translation errors were due to order of implicit arguments and have been `#alignₓ`ed (except `Sum.bind` I'm not sure what the issue was, see [Zulip](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/why.20dubious.3F)) 3. The `fish` definition is no longer needed because `>=>` has the correct (i.e., same as mathlib3's `fish`) binding precedence (`55`) in core Lean 4. 4. It should be noted that `>=>` was left-associative in Lean 3, but it is now right-associative in Lean 4. There is a comment to this effect near `fish_assoc`. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Control/Basic.lean + theorem CommApplicative.commutative_map + theorem Functor.map_map + def List.mapAccumLM + def List.mapAccumRM + def List.partitionM + theorem fish_assoc + theorem fish_pipe + theorem fish_pure + theorem guard_false + theorem guard_true + theorem joinM_map_joinM + theorem joinM_map_map + theorem joinM_map_pure + theorem joinM_pure + theorem map_bind + theorem map_seq + theorem pure_id'_seq + theorem seq_bind_eq + theorem seq_map_assoc + def succeeds + def tryM + def zipWithM' + def zipWithM Added Mathlib/Control/SimpSet.lean Modified Mathlib/Data/Equiv/Functor.lean - theorem Functor.map_map 2022-11-25 20:16:16 d04316c feat: port data.finite.defs (#698) Ports `data.finite.defs` with renaming to address `Mathlib4` naming conventions Based on `mathlib` e50b8c261b0a000b806ec0e1356b41945eda61f7 ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Data/Finite/Defs.lean + theorem Equiv.finite_iff + theorem Equiv.infinite_iff + theorem Finite.exists_equiv_fin + theorem Finite.ofBijective + theorem Finite.of_equiv + theorem Function.Bijective.finite_iff + theorem finite_iff_exists_equiv_fin + theorem finite_or_infinite + theorem not_finite + theorem not_finite_iff_infinite + theorem not_infinite_iff_finite 2022-11-25 20:16:15 be9c254 feat: port: Data.DList.Basic (#616) To review: had to cross port `lazy_OfList` from Lean core, naming is odd in `Std` (`Std.DList` rather than `Std.Data.DList` Also not clear about naming choices... ported from 8c53048add6ffacdda0b36c4917bfe37e209b0ba ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Data/DList/Basic.lean + def Std.DList.join + def Std.DList.lazy_ofList + theorem Std.DList_lazy + theorem Std.DList_singleton 2022-11-25 20:07:26 eb3711a chore: reduce imports in Algebra.Group.Defs (#727) ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Defs.lean Modified Mathlib/Algebra/Homology/ComplexShape.lean Modified Mathlib/Algebra/Ring/Defs.lean Modified Mathlib/Logic/Equiv/Basic.lean 2022-11-25 19:49:18 58f7cd0 chore(Algebra/Order/Hom/Basic): remove outParam (#692) Remove unedeed `outParam`. ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Hom/Basic.lean 2022-11-25 17:46:32 4510beb feat: port Order.Lattice (#642) Tracking mathlib commit: [fd47bdf09e90f553519c712378e651975fe8c829](https://github.com/leanprover-community/mathlib/commit/fd47bdf09e90f553519c712378e651975fe8c829) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Data/Subtype.lean Modified Mathlib/Init/Algebra/Order.lean + def maxDefault + def minDefault Modified Mathlib/Order/Basic.lean Added Mathlib/Order/Lattice.lean + theorem Antitone.le_map_inf + theorem Antitone.map_inf + theorem Antitone.map_sup + theorem Antitone.map_sup_le + def DistribLattice.ofInfSupLe + theorem Lattice.ext + def Lattice.mk' + def Lattice.toLinearOrder + theorem Monotone.forall_le_of_antitone + theorem Monotone.le_map_sup + theorem Monotone.map_inf + theorem Monotone.map_inf_le + theorem Monotone.map_sup + theorem Monotone.of_map_inf + theorem Monotone.of_map_sup + theorem Ne.inf_lt_or_inf_lt + theorem Ne.lt_sup_or_lt_sup + theorem Pi.inf_apply + theorem Pi.inf_def + theorem Pi.sup_apply + theorem Pi.sup_def + theorem Prod.fst_inf + theorem Prod.fst_sup + theorem Prod.inf_def + theorem Prod.mk_inf_mk + theorem Prod.mk_sup_mk + theorem Prod.snd_inf + theorem Prod.snd_sup + theorem Prod.sup_def + theorem Prod.swap_inf + theorem Prod.swap_sup + theorem SemilatticeInf.dual_dual + theorem SemilatticeInf.ext + theorem SemilatticeInf.ext_inf + def SemilatticeInf.mk' + theorem SemilatticeSup.dual_dual + theorem SemilatticeSup.ext + theorem SemilatticeSup.ext_sup + def SemilatticeSup.mk' + theorem Subtype.coe_inf + theorem Subtype.coe_sup + theorem Subtype.mk_inf_mk + theorem Subtype.mk_sup_mk + theorem eq_of_inf_eq_sup_eq + theorem inf_assoc + theorem inf_comm + theorem inf_congr_left + theorem inf_congr_right + theorem inf_eq_inf_iff_left + theorem inf_eq_inf_iff_right + theorem inf_eq_left + theorem inf_eq_min + theorem inf_eq_minDefault + theorem inf_eq_right + theorem inf_idem + theorem inf_ind + theorem inf_inf_distrib_left + theorem inf_inf_distrib_right + theorem inf_inf_inf_comm + theorem inf_le_iff + theorem inf_le_inf + theorem inf_le_inf_left + theorem inf_le_inf_right + theorem inf_le_ite + theorem inf_le_left' + theorem inf_le_left + theorem inf_le_of_left_le + theorem inf_le_of_right_le + theorem inf_le_right' + theorem inf_le_right + theorem inf_le_sup + theorem inf_left_comm + theorem inf_left_idem + theorem inf_left_right_swap + theorem inf_lt_iff + theorem inf_lt_left + theorem inf_lt_left_or_right + theorem inf_lt_of_left_lt + theorem inf_lt_of_right_lt + theorem inf_lt_right + theorem inf_lt_sup + theorem inf_right_comm + theorem inf_right_idem + theorem inf_sup_left + theorem inf_sup_right + theorem inf_sup_self + theorem ite_le_sup + theorem le_antisymm' + theorem le_iff_exists_sup + theorem le_inf + theorem le_inf_iff + theorem le_inf_sup + theorem le_of_inf_le_sup_le + theorem le_sup_iff + theorem le_sup_inf + theorem le_sup_left' + theorem le_sup_left + theorem le_sup_of_le_left + theorem le_sup_of_le_right + theorem le_sup_right' + theorem le_sup_right + theorem left_eq_inf + theorem left_eq_sup + theorem left_lt_sup + theorem left_or_right_lt_sup + theorem lt_inf_iff + theorem lt_sup_iff + theorem lt_sup_of_lt_left + theorem lt_sup_of_lt_right + theorem max_max_max_comm + theorem min_min_min_comm + theorem ofDual_inf + theorem ofDual_max + theorem ofDual_min + theorem ofDual_sup + theorem right_eq_inf + theorem right_eq_sup + theorem right_lt_sup + theorem semilatticeSup_mk'_partialOrder_eq_semilatticeInf_mk'_partialOrder + theorem sup_assoc + theorem sup_comm + theorem sup_congr_left + theorem sup_congr_right + theorem sup_eq_iff_inf_eq + theorem sup_eq_left + theorem sup_eq_max + theorem sup_eq_maxDefault + theorem sup_eq_right + theorem sup_eq_sup_iff_left + theorem sup_eq_sup_iff_right + theorem sup_idem + theorem sup_ind + theorem sup_inf_le + theorem sup_inf_left + theorem sup_inf_right + theorem sup_inf_self + theorem sup_le + theorem sup_le_iff + theorem sup_le_inf + theorem sup_le_sup + theorem sup_le_sup_left + theorem sup_le_sup_right + theorem sup_left_comm + theorem sup_left_idem + theorem sup_left_right_swap + theorem sup_lt_iff + theorem sup_right_comm + theorem sup_right_idem + theorem sup_sup_distrib_left + theorem sup_sup_distrib_right + theorem sup_sup_sup_comm + theorem toDual_inf + theorem toDual_max + theorem toDual_min + theorem toDual_sup 2022-11-25 17:34:01 fbfd058 feat(Algebra/GroupWithZero/InjSurj): port file (#722) mathlib3 SHA: 6b3325cdf0b4b23496391a451324c95a1dc36d9e porting notes: * overall, very straightforward * I made `GroupWithZero` extend `Nontrivial` to match mathlib3, and we didn't have this instance previously because it didn't extend that class. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/GroupWithZero/InjSurj.lean 2022-11-25 16:51:06 1346fdf chore: fix IsEmpty capitalization in docstring (#726) ESTIMATED CHANGES Modified Mathlib/Logic/IsEmpty.lean 2022-11-25 16:37:45 79c0d38 feat: port Algebra.GroupWithZero.Basic (#669) Tracking mathlib commit: [39af7d3bf61a98e928812dbc3e16f4ea8b795ca3](https://github.com/leanprover-community/mathlib/commit/39af7d3bf61a98e928812dbc3e16f4ea8b795ca3) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Group/Defs.lean Added Mathlib/Algebra/GroupWithZero/Basic.lean + theorem GroupWithZero.mul_left_injective + theorem GroupWithZero.mul_right_injective + theorem div_div_self + theorem div_mul_eq_mul_div₀ + theorem div_self_mul_self' + theorem div_self_mul_self + theorem div_zero + theorem eq_of_zero_eq_one + theorem eq_zero_of_mul_eq_self_left + theorem eq_zero_of_mul_eq_self_right + theorem eq_zero_of_mul_self_eq_zero + theorem eq_zero_of_one_div_eq_zero + theorem eq_zero_of_zero_eq_one + theorem inv_eq_zero + theorem inv_mul_cancel + theorem inv_mul_cancel_left₀ + theorem inv_mul_cancel_right₀ + theorem inv_mul_mul_self + theorem inv_ne_zero + theorem left_ne_zero_of_mul + theorem left_ne_zero_of_mul_eq_one + theorem mul_eq_mul_left_iff + theorem mul_eq_mul_right_iff + theorem mul_eq_zero_of_ne_zero_imp_eq_zero + theorem mul_inv_cancel_left₀ + theorem mul_inv_cancel_right₀ + theorem mul_inv_mul_self + theorem mul_left_eq_self₀ + theorem mul_left_inj' + theorem mul_left_surjective₀ + theorem mul_ne_zero + theorem mul_right_eq_self₀ + theorem mul_right_inj' + theorem mul_right_surjective₀ + theorem mul_self_div_self + theorem mul_self_mul_inv + theorem mul_zero_eq_const + theorem ne_zero_and_ne_zero_of_mul + theorem ne_zero_of_one_div_ne_zero + theorem one_div_ne_zero + theorem right_ne_zero_of_mul + theorem right_ne_zero_of_mul_eq_one + theorem subsingleton_iff_zero_eq_one + def uniqueOfZeroEqOne + theorem zero_div + theorem zero_eq_inv + theorem zero_mul_eq_const + theorem zero_ne_one_or_forall_eq_0 Modified Mathlib/Algebra/GroupWithZero/Defs.lean Modified Mathlib/Tactic/Positivity/Basic.lean - theorem mul_ne_zero 2022-11-25 16:27:38 736a068 fix: `@[to_additive?]` prints the added translations when they already exist (#718) Previously the trace option was only set when the target declaration didn't exist. Now `@[to_additive?]` should always print something. ESTIMATED CHANGES Modified Mathlib/Tactic/ToAdditive.lean 2022-11-25 16:23:55 e40e2a7 feat: improve `toAdditive.guessName` (#715) * The heuristic to split names did it wrong on a long sequence of capital letters. The new heuristic is to have a sequence of "white-listed" names that only consist of capital letters (currently `["LE", "LT", "WF"]`). This new heuristic correctly splits `ZeroLEHAdd` and `HSMul` * translate `[h]pow` to `[h]smul` (see #706). I believe Mathlib4 never used the previous automatic translation `pow -> nsmul` (I used regex `@\[to_additive\]\n?.*(_p|P| p)ow` to search). Since capitalization goes wrong in this case, add some cases in `fixAbbreviation` to fix it. * Fix all places where the capitalization `Smul` was used instead of `SMul`. ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Defs.lean +/- theorem zpow_eq_pow Modified Mathlib/Algebra/Group/OrderSynonym.lean Modified Mathlib/Data/Bracket.lean Modified Mathlib/Tactic/ToAdditive.lean + def allCapitalNames Modified test/toAdditive.lean 2022-11-25 16:16:34 abaaf02 chore: remove incorrect name for instance PartialOrder Prop (#725) ESTIMATED CHANGES Modified Mathlib/Order/Basic.lean 2022-11-24 21:48:34 ad9d93b feat: port Algebra.Opposites (#644) mathlib SHA: fd47bdf09e90f553519c712378e651975fe8c829 ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Opposites.lean + theorem AddOpposite.op_div + theorem AddOpposite.op_eq_one_iff + theorem AddOpposite.op_inv + theorem AddOpposite.op_mul + theorem AddOpposite.op_one + theorem AddOpposite.unop_div + theorem AddOpposite.unop_eq_one_iff + theorem AddOpposite.unop_inv + theorem AddOpposite.unop_mul + theorem AddOpposite.unop_one + def MulOpposite.op + def MulOpposite.opEquiv + theorem MulOpposite.op_add + theorem MulOpposite.op_bijective + theorem MulOpposite.op_comp_unop + theorem MulOpposite.op_eq_one_iff + theorem MulOpposite.op_eq_zero_iff + theorem MulOpposite.op_inj + theorem MulOpposite.op_injective + theorem MulOpposite.op_inv + theorem MulOpposite.op_mul + theorem MulOpposite.op_ne_zero_iff + theorem MulOpposite.op_neg + theorem MulOpposite.op_one + theorem MulOpposite.op_smul + theorem MulOpposite.op_sub + theorem MulOpposite.op_surjective + theorem MulOpposite.op_unop + theorem MulOpposite.op_zero + def MulOpposite.unop + theorem MulOpposite.unop_add + theorem MulOpposite.unop_bijective + theorem MulOpposite.unop_comp_op + theorem MulOpposite.unop_eq_one_iff + theorem MulOpposite.unop_eq_zero_iff + theorem MulOpposite.unop_inj + theorem MulOpposite.unop_injective + theorem MulOpposite.unop_inv + theorem MulOpposite.unop_mul + theorem MulOpposite.unop_ne_zero_iff + theorem MulOpposite.unop_neg + theorem MulOpposite.unop_one + theorem MulOpposite.unop_op + theorem MulOpposite.unop_smul + theorem MulOpposite.unop_sub + theorem MulOpposite.unop_surjective + theorem MulOpposite.unop_zero + def MulOpposite Modified Mathlib/Logic/Equiv/Defs.lean 2022-11-24 20:15:46 e500559 chore: reenable aesop (#721) ESTIMATED CHANGES Modified lake-manifest.json Modified lakefile.lean 2022-11-24 20:02:02 80497b7 chore: bump to 2022-11-24 (#720) ESTIMATED CHANGES Modified .gitignore Modified Mathlib/Order/Iterate.lean Added lake-manifest.json Modified lean-toolchain Deleted lean_packages/manifest.json 2022-11-24 18:44:02 1e07df2 chore: enable bots (#714) This copies across all the bots we had running on mathlib, in particular: * the bot that adds and removes `ready-to-merge` and `delegated` * the merge conflicts bot * the dependent issues bots (adding the dependent issues tag, and ticking off closed issues) * the maintainer merge bot I think I have added appropriate github secrets that allow these bots to run. Presumably after we merge this we should exercise all the bots. ESTIMATED CHANGES Added .github/workflows/add_label_from_comment.yml Added .github/workflows/add_label_from_review.yml Added .github/workflows/dependent-issues.yml Added .github/workflows/maintainer_merge_comment.yml Added .github/workflows/maintainer_merge_review.yml Added .github/workflows/maintainer_merge_review_comment.yml Added .github/workflows/merge_conflicts.yml Added .github/workflows/sync_closed_tasks.yaml 2022-11-24 18:44:00 b711a3b feat(Algebra/Group/InjSurj): port file (#707) mathlib3 SHA: f69e8f317a18ab43f12cdcacaa1a3765eb512065 This was a very straightforward port. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Group/InjSurj.lean 2022-11-24 18:32:39 c174706 fix: minor changes in Groups/Defs (#719) * Remove instance and add `to_additive` * Point some comments to the right issue * Resolves the issue in #707 * Might conflict with #717 ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Defs.lean 2022-11-24 15:22:25 6b6f033 chore: fix case errors in Order.Max (#713) ESTIMATED CHANGES Modified Mathlib/Order/Max.lean + theorem Prod.isBot_iff + theorem Prod.isMax_iff + theorem Prod.isMin_iff + theorem Prod.isTop_iff - theorem Prod.is_bot_iff - theorem Prod.is_max_iff - theorem Prod.is_min_iff - theorem Prod.is_top_iff + theorem isBot_ofDual_iff + theorem isBot_toDual_iff + theorem isMax_iff_forall_not_lt + theorem isMax_ofDual_iff + theorem isMax_toDual_iff + theorem isMin_iff_forall_not_lt + theorem isMin_ofDual_iff + theorem isMin_toDual_iff + theorem isTop_ofDual_iff + theorem isTop_toDual_iff - theorem is_bot_of_dual_iff - theorem is_bot_to_dual_iff - theorem is_max_iff_forall_not_lt - theorem is_max_of_dual_iff - theorem is_max_to_dual_iff - theorem is_min_iff_forall_not_lt - theorem is_min_of_dual_iff - theorem is_min_to_dual_iff - theorem is_top_of_dual_iff - theorem is_top_to_dual_iff + theorem not_isBot + theorem not_isMax + theorem not_isMax_iff + theorem not_isMax_of_lt + theorem not_isMin + theorem not_isMin_iff + theorem not_isMin_of_lt + theorem not_isTop - theorem not_is_bot - theorem not_is_max - theorem not_is_max_iff - theorem not_is_max_of_lt - theorem not_is_min - theorem not_is_min_iff - theorem not_is_min_of_lt - theorem not_is_top Modified Mathlib/Order/Monotone.lean 2022-11-24 15:14:59 88f8c69 doc: fix some docs in Algebra/Group/Defs (#711) ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Defs.lean 2022-11-24 08:55:19-06:00 9817e81 Revert "chore: enable bots" This reverts commit 666a2aced883484dfaefc47ba8cbda144327b7fb. ESTIMATED CHANGES Deleted .github/workflows/add_label_from_comment.yml Deleted .github/workflows/add_label_from_review.yml Deleted .github/workflows/dependent-issues.yml Deleted .github/workflows/maintainer_merge_comment.yml Deleted .github/workflows/maintainer_merge_review.yml Deleted .github/workflows/maintainer_merge_review_comment.yml Deleted .github/workflows/merge_conflicts.yml Deleted .github/workflows/sync_closed_tasks.yaml 2022-11-24 08:53:43-06:00 666a2ac chore: enable bots ESTIMATED CHANGES Added .github/workflows/add_label_from_comment.yml Added .github/workflows/add_label_from_review.yml Added .github/workflows/dependent-issues.yml Added .github/workflows/maintainer_merge_comment.yml Added .github/workflows/maintainer_merge_review.yml Added .github/workflows/maintainer_merge_review_comment.yml Added .github/workflows/merge_conflicts.yml Added .github/workflows/sync_closed_tasks.yaml 2022-11-24 14:35:48 20713f8 fix: let toAdditive handle more auxiliary declarations (#699) * This PR will correctly deal with names starting with ``env.mainModule ++ `_auxLemma`` (generated by `simp`) * Also add a test for this case (reported on Zulip) * Also correctly deal with equation lemmas, which are have `mkPrivateName env pre` as prefix, instead of `pre`. It fixes both of the following issues: - Previously this would sometimes not translate the equation lemmas, since the naming heuristic didn't change their name - If it would translate a lemma, it would not apply it, since it wasn't additive to the `translations` dictionary. ESTIMATED CHANGES Modified Mathlib/Lean/Expr/Basic.lean - def Lean.Expr.listNamesWithPrefix + def Lean.Expr.listNamesWithPrefixes Modified Mathlib/Tactic/ToAdditive.lean Modified test/toAdditive.lean + def Test.IsUnit' + theorem Test.isUnit'_iff_exists_inv' + theorem Test.isUnit'_iff_exists_inv 2022-11-24 14:16:23 ffd2fb5 chore(Algebra.Group.Defs): use `to_additive` (#710) `to_additive` now works here. ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Defs.lean 2022-11-24 08:51:20 6bf4de4 fix(Algebra/Group/Defs): make `to_additive` play nice with `pow` and `smul` (#706) The additivization of `pow` was borked because `Pow.pow` is really `HPow.hPow` under the hood via the instance `instHPow`. Consequently, it was useful to create a heterogeneous `SMul` type class `HSMul`, through which the `•` notation now derives. The upshot is that `to_additive` can now handle lemmas involving `pow` as is seen in a few places in this PR, thereby fixing some TODOs. Note that this also makes it possible to port files rapidly approaching (e.g., `Algebra/Group/InjSurj.lean`) without resorting to nasty hacks or omitting the additive versions. See the discussion on [Zulip](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/to_additive.20issues) ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Basic.lean Modified Mathlib/Algebra/Group/Defs.lean - theorem nsmul_eq_smul - theorem ofNat_zsmul - theorem succ_nsmul - theorem zero_nsmul - theorem zero_zsmul +/- theorem zpow_eq_pow +/- theorem zpow_zero - theorem zsmul_eq_smul Modified Mathlib/Tactic/Abel.lean Modified Mathlib/Tactic/Ring/Basic.lean 2022-11-24 08:33:57 f4bb553 feat: synchronize with mathlib#16944 (#691) Synchronize with leanprover-community/mathlib#16944 ESTIMATED CHANGES Modified Mathlib/Logic/Function/Basic.lean + theorem Function.FactorsThrough.apply_extend + theorem Function.FactorsThrough.extend_apply + theorem Function.FactorsThrough.extend_comp + def Function.FactorsThrough + theorem Function.Injective.FactorsThrough + theorem Function.Injective.apply_extend + theorem Function.Injective.extend_apply - theorem Function.apply_extend - theorem Function.extend_apply + theorem Function.factorsThrough_iff 2022-11-24 03:35:45 2db0b30 feat(Data/Quot): add 2 lemmas (#701) * Add `Quot.surjective_lift` and `Quotient.surjective_liftOn'`. * This is the `mathlib4` version of leanprover-community/mathlib#17699. ESTIMATED CHANGES Modified Mathlib/Data/Quot.lean + theorem Quot.surjective_lift + theorem Quotient.surjective_liftOn' 2022-11-24 03:21:25 2dac4fd feat(Data/ULift): port from mathlib (#703) Based on leanprover-community/mathlib3port@ec25b1a1c540bc430225653b11b16558e83406d3 and leanprover-community/mathlib@e50b8c261b0a000b806ec0e1356b41945eda61f7. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Data/ULift.lean + theorem PLift.down_bijective + theorem PLift.down_surjective + theorem PLift.up_bijective + theorem PLift.up_inj + theorem PLift.up_injective + theorem PLift.up_surjective + theorem PLift.«exists» + theorem PLift.«forall» + theorem ULift.down_bijective + theorem ULift.down_surjective + theorem ULift.up_bijective + theorem ULift.up_inj + theorem ULift.up_injective + theorem ULift.up_surjective + theorem ULift.«exists» + theorem ULift.«forall» 2022-11-24 02:24:22 2d5a70d feat(Data/Sum/Basic): sync with mathlib3 (#702) * Mathlib4 version of leanprover-community/mathlib#17059. * Drop `simp` attributes on `Sum.getLeft` etc. These attrs make Lean4 simplify `getLeft x` to a `match` expression, not only `getLeft (inl x)` to `some x`. ESTIMATED CHANGES Modified Mathlib/Data/Sum/Basic.lean + theorem Sum.Not_isLeft + theorem Sum.Not_isRight + theorem Sum.getLeft_inl + theorem Sum.getLeft_inr + theorem Sum.getLeft_map + theorem Sum.getLeft_swap + theorem Sum.getRight_inl + theorem Sum.getRight_inr + theorem Sum.getRight_map + theorem Sum.getRight_swap + theorem Sum.isLeft_eq_false + theorem Sum.isLeft_iff + theorem Sum.isLeft_inl + theorem Sum.isLeft_inr + theorem Sum.isLeft_map + theorem Sum.isLeft_swap + theorem Sum.isRight_eq_false + theorem Sum.isRight_iff + theorem Sum.isRight_inl + theorem Sum.isRight_inr + theorem Sum.isRight_map + theorem Sum.isRight_swap + theorem Sum.not_isLeft + theorem Sum.not_isRight 2022-11-24 02:24:21 e5d627e fix: [Add]Monoid: use +1 in field and remove primes (#696) ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Defs.lean Modified Mathlib/Algebra/GroupWithZero/Defs.lean Modified Mathlib/Algebra/Ring/Basic.lean Modified Mathlib/Data/Fin/Basic.lean Modified Mathlib/Data/UInt.lean Modified scripts/nolints.json 2022-11-24 02:24:20 968aa14 chore: updates from mathlib3 (#695) The `scripts/port_status.py` now outputs the `git` commands to see what has changed in mathlib3 since the recorded git sha. I used this to update some files, and update their recorded git sha on the port status page. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Data/FunLike/Basic.lean + theorem FunLike.subsingleton_cod Modified Mathlib/Data/FunLike/Equiv.lean + theorem EquivLike.subsingleton_dom Renamed Mathlib/Init/Data/Rat.lean to Mathlib/Data/Rat/Init.lean Modified Mathlib/Logic/Basic.lean + theorem xor_iff_iff_not + theorem xor_iff_not_iff' +/- theorem xor_iff_not_iff + theorem xor_not_left + theorem xor_not_not + theorem xor_not_right Modified Mathlib/Logic/Lemmas.lean Modified Mathlib/Order/Iterate.lean 2022-11-24 02:16:25 5204244 chore: to_additive adds instances (#678) ESTIMATED CHANGES Modified Mathlib/Algebra/CovariantAndContravariant.lean Modified Mathlib/Algebra/Group/Basic.lean Modified Mathlib/Algebra/Group/Defs.lean Modified Mathlib/Algebra/Group/OrderSynonym.lean Modified Mathlib/Algebra/Order/Group.lean Modified Mathlib/Algebra/Order/Monoid.lean Modified Mathlib/Algebra/PEmptyInstances.lean Modified Mathlib/Tactic/ToAdditive.lean + def ToAdditive.copyInstanceAttribute + def ToAdditive.copySimpAttribute Modified test/toAdditive.lean + theorem Test.one_fooClass + theorem Test.zero_fooClass 2022-11-24 01:53:44 822c870 fix: fix to_additive handling of Nat and Int (#689) * Remove `[to_additive]` attributes from `Nat` and `Int`. That attribute disables all useful heuristics for `to_additive` on these types. * deal with literals in specific types, like `Nat`. This uses a new attribute `@[to_additive_fixed_numeral]`. * Add `to_additive_relevant_arg` attribute for heterogenous operations * Fix `to_additive_reorder` arguments on `HPow.hPow` * Fix parsing of `to_additive_relevant_arg` to use 1-indexed numbers instead of 0-indexed numbers * Do not add `relevantArgAttr` on many declarations if they would have the default value anyway. * Revert test `foo2` in `tests/ToAdditive` to the Lean 3 behavior. Previosuly the test would only succeed if the heuristics for `Nat` and `Int` were disabled. * Some cleanup in code, comments and docs ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Defs.lean Modified Mathlib/Data/Fin/Basic.lean Modified Mathlib/Init/ZeroOne.lean Modified Mathlib/Tactic/ToAdditive.lean +/- def ToAdditive.firstMultiplicativeArg + def ToAdditive.shouldTranslateNumeral Modified test/toAdditive.lean + theorem Test.Bar.bar'_works + theorem Test.bar10_works + theorem Test.bar11_works +/- theorem Test.bar2_works + theorem Test.bar8_works + theorem Test.bar9_works + def Test.foo10 + def Test.foo11 +/- theorem Test.foo2_works + def Test.foo8 + def Test.foo9 2022-11-23 19:36:27 f017f32 feat: port Logic.Equiv.Basic (#631) mathlib SHA: c3019c79074b0619edb4b27553a91b2e82242395 [I think this is right..?] WIP - [x] depends on: #550 ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Group/Defs.lean Added Mathlib/Init/Data/Sigma/Basic.lean + theorem ex_of_psig Added Mathlib/Logic/Equiv/Basic.lean + theorem Equiv.Perm.eq_of_prodExtendRight_ne + def Equiv.Perm.extendDomain + theorem Equiv.Perm.extendDomain_apply_image + theorem Equiv.Perm.extendDomain_apply_not_subtype + theorem Equiv.Perm.extendDomain_apply_subtype + theorem Equiv.Perm.extendDomain_refl + theorem Equiv.Perm.extendDomain_symm + theorem Equiv.Perm.extendDomain_trans + theorem Equiv.Perm.fst_prodExtendRight + def Equiv.Perm.prodExtendRight + theorem Equiv.Perm.prodExtendRight_apply_eq + theorem Equiv.Perm.prodExtendRight_apply_ne + theorem Equiv.Perm.subtypeCongr.apply + theorem Equiv.Perm.subtypeCongr.left_apply + theorem Equiv.Perm.subtypeCongr.left_apply_subtype + theorem Equiv.Perm.subtypeCongr.refl + theorem Equiv.Perm.subtypeCongr.right_apply + theorem Equiv.Perm.subtypeCongr.right_apply_subtype + theorem Equiv.Perm.subtypeCongr.symm + theorem Equiv.Perm.subtypeCongr.trans + def Equiv.Perm.subtypeCongr + def Equiv.Perm.sumCongr + theorem Equiv.Perm.sumCongr_apply + theorem Equiv.Perm.sumCongr_refl + theorem Equiv.Perm.sumCongr_refl_swap + theorem Equiv.Perm.sumCongr_swap_refl + theorem Equiv.Perm.sumCongr_symm + theorem Equiv.Perm.sumCongr_trans + theorem Equiv.apply_swap_eq_self + def Equiv.arrowProdEquivProdArrow + def Equiv.boolArrowEquivProd + def Equiv.boolEquivPUnitSumPUnit + def Equiv.boolProdEquivSum + theorem Equiv.coe_piCongr' + theorem Equiv.coe_piCongr_symm + theorem Equiv.coe_prodComm + theorem Equiv.coe_prodUnique + theorem Equiv.coe_subtypeEquivCodomain + theorem Equiv.coe_subtypeEquivCodomain_symm + theorem Equiv.coe_uniqueProd + theorem Equiv.comp_swap_eq_update + def Equiv.curry + def Equiv.emptyProd + def Equiv.emptySum + theorem Equiv.emptySum_apply_inr + def Equiv.funSplitAt + def Equiv.intEquivNatSumNat + theorem Equiv.isEmpty_congr + def Equiv.listEquivOfEquiv + def Equiv.natEquivNatSumPUnit + def Equiv.natSumPUnitEquivNat + theorem Equiv.ofBijective_apply_symm_apply + theorem Equiv.ofBijective_symm_apply_apply + def Equiv.ofFiberEquiv + theorem Equiv.ofFiberEquiv_map + def Equiv.optionEquivSumPUnit + theorem Equiv.optionEquivSumPUnit_coe + theorem Equiv.optionEquivSumPUnit_none + theorem Equiv.optionEquivSumPUnit_some + theorem Equiv.optionEquivSumPUnit_symm_inl + theorem Equiv.optionEquivSumPUnit_symm_inr + def Equiv.optionIsSomeEquiv + def Equiv.pemptyProd + def Equiv.piComm + theorem Equiv.piComm_symm + def Equiv.piCongr' + theorem Equiv.piCongr'_apply + theorem Equiv.piCongr'_symm_apply_symm_apply + def Equiv.piCongr + def Equiv.piCongrLeft' + def Equiv.piCongrLeft + def Equiv.piCongrRight + theorem Equiv.piCongr_apply_apply + theorem Equiv.piCongr_symm_apply + def Equiv.piCurry + def Equiv.piEquivPiSubtypeProd + def Equiv.piEquivSubtypeSigma + def Equiv.piOptionEquivProd + def Equiv.piSplitAt + def Equiv.pprodCongr + def Equiv.pprodEquivProd + def Equiv.pprodEquivProdPLift + def Equiv.pprodProd + def Equiv.prodAssoc + def Equiv.prodComm + theorem Equiv.prodComm_apply + theorem Equiv.prodComm_symm + def Equiv.prodCongr + def Equiv.prodCongrLeft + theorem Equiv.prodCongrLeft_apply + theorem Equiv.prodCongrLeft_trans_prodComm + def Equiv.prodCongrRight + theorem Equiv.prodCongrRight_apply + theorem Equiv.prodCongrRight_trans_prodComm + theorem Equiv.prodCongr_refl_left + theorem Equiv.prodCongr_refl_right + theorem Equiv.prodCongr_symm + def Equiv.prodEmpty + def Equiv.prodPEmpty + def Equiv.prodPProd + def Equiv.prodPUnit + def Equiv.prodShear + def Equiv.prodSumDistrib + theorem Equiv.prodSumDistrib_apply_left + theorem Equiv.prodSumDistrib_apply_right + theorem Equiv.prodSumDistrib_symm_apply_left + theorem Equiv.prodSumDistrib_symm_apply_right + def Equiv.prodUnique + theorem Equiv.prodUnique_apply + theorem Equiv.prodUnique_symm_apply + def Equiv.psumCongr + def Equiv.psumEquivSum + def Equiv.psumSum + def Equiv.punitProd + theorem Equiv.semiconj_conj + theorem Equiv.semiconj₂_conj + def Equiv.setValue + theorem Equiv.setValue_eq + theorem Equiv.sigmaCongrRight_sigmaEquivProd + theorem Equiv.sigmaEquivProd_sigmaCongrRight + def Equiv.sigmaFiberEquiv + def Equiv.sigmaNatSucc + def Equiv.sigmaOptionEquivOfSome + def Equiv.sigmaProdDistrib + def Equiv.sigmaSubtypeEquivOfSubset + def Equiv.sigmaSubtypeFiberEquiv + def Equiv.sigmaSubtypeFiberEquivSubtype + def Equiv.sigmaSumDistrib + def Equiv.subtypeCongr + def Equiv.subtypeEquiv + def Equiv.subtypeEquivCodomain + theorem Equiv.subtypeEquivCodomain_apply + theorem Equiv.subtypeEquivCodomain_symm_apply + theorem Equiv.subtypeEquivCodomain_symm_apply_eq + theorem Equiv.subtypeEquivCodomain_symm_apply_ne + def Equiv.subtypeEquivOfSubtype' + def Equiv.subtypeEquivOfSubtype + def Equiv.subtypeEquivProp + def Equiv.subtypeEquivRight + theorem Equiv.subtypeEquiv_apply + theorem Equiv.subtypeEquiv_refl + theorem Equiv.subtypeEquiv_symm + theorem Equiv.subtypeEquiv_trans + def Equiv.subtypePiEquivPi + def Equiv.subtypePreimage + theorem Equiv.subtypePreimage_symm_apply_coe_neg + theorem Equiv.subtypePreimage_symm_apply_coe_pos + def Equiv.subtypeProdEquivProd + def Equiv.subtypeProdEquivSigmaSubtype + def Equiv.subtypeQuotientEquivQuotientSubtype + theorem Equiv.subtypeQuotientEquivQuotientSubtype_mk + theorem Equiv.subtypeQuotientEquivQuotientSubtype_symm_mk + def Equiv.subtypeSigmaEquiv + def Equiv.subtypeSubtypeEquivSubtype + def Equiv.subtypeSubtypeEquivSubtypeExists + def Equiv.subtypeSubtypeEquivSubtypeInter + def Equiv.subtypeUnivEquiv + def Equiv.sumArrowEquivProdArrow + theorem Equiv.sumArrowEquivProdArrow_apply_fst + theorem Equiv.sumArrowEquivProdArrow_apply_snd + theorem Equiv.sumArrowEquivProdArrow_symm_apply_inl + theorem Equiv.sumArrowEquivProdArrow_symm_apply_inr + def Equiv.sumAssoc + theorem Equiv.sumAssoc_apply_inl_inl + theorem Equiv.sumAssoc_apply_inl_inr + theorem Equiv.sumAssoc_apply_inr + theorem Equiv.sumAssoc_symm_apply_inl + theorem Equiv.sumAssoc_symm_apply_inr_inl + theorem Equiv.sumAssoc_symm_apply_inr_inr + def Equiv.sumComm + theorem Equiv.sumComm_symm + def Equiv.sumCompl + theorem Equiv.sumCompl_apply_inl + theorem Equiv.sumCompl_apply_inr + theorem Equiv.sumCompl_apply_symm_of_neg + theorem Equiv.sumCompl_apply_symm_of_pos + def Equiv.sumCongr + theorem Equiv.sumCongr_refl + theorem Equiv.sumCongr_symm + theorem Equiv.sumCongr_trans + def Equiv.sumEmpty + theorem Equiv.sumEmpty_apply_inl + def Equiv.sumEquivSigmaBool + def Equiv.sumPSum + def Equiv.sumProdDistrib + theorem Equiv.sumProdDistrib_apply_left + theorem Equiv.sumProdDistrib_apply_right + theorem Equiv.sumProdDistrib_symm_apply_left + theorem Equiv.sumProdDistrib_symm_apply_right + def Equiv.swap + def Equiv.swapCore + theorem Equiv.swapCore_comm + theorem Equiv.swapCore_self + theorem Equiv.swapCore_swapCore + theorem Equiv.swap_apply_def + theorem Equiv.swap_apply_eq_iff + theorem Equiv.swap_apply_left + theorem Equiv.swap_apply_ne_self_iff + theorem Equiv.swap_apply_of_ne_of_ne + theorem Equiv.swap_apply_right + theorem Equiv.swap_apply_self + theorem Equiv.swap_comm + theorem Equiv.swap_comp_apply + theorem Equiv.swap_eq_refl_iff + theorem Equiv.swap_eq_update + theorem Equiv.swap_self + theorem Equiv.swap_swap + theorem Equiv.symm_swap + theorem Equiv.symm_trans_swap_trans + theorem Equiv.trans_swap_trans_symm + def Equiv.uniqueCongr + def Equiv.uniqueProd + theorem Equiv.uniqueProd_apply + theorem Equiv.uniqueProd_symm_apply + theorem Function.Injective.map_swap + theorem Function.Injective.swap_apply + theorem Function.Injective.swap_comp + theorem Function.Involutive.coe_toPerm + def Function.Involutive.toPerm + theorem Function.Involutive.toPerm_involutive + theorem Function.Involutive.toPerm_symm + theorem Function.piCongrLeft'_symm_update + theorem Function.piCongrLeft'_update + theorem Function.update_apply_equiv_apply + theorem Function.update_comp_equiv + theorem PLift.eq_up_iff_down_eq + def equivOfSubsingletonOfSubsingleton + def subsingletonProdSelfEquiv + def uniqueUniqueEquiv Modified Mathlib/Logic/Equiv/Defs.lean + def Equiv.Simps.apply + theorem Equiv.coe_fn_mk + theorem Equiv.left_inv' + theorem Equiv.right_inv' Modified Mathlib/Order/Compare.lean - theorem Ordering.Compares_eq - theorem Ordering.Compares_gt - theorem Ordering.Compares_lt + theorem Ordering.compares_eq + theorem Ordering.compares_gt + theorem Ordering.compares_lt Modified Mathlib/Order/Monotone.lean +/- theorem antitoneOn_toDual_comp_iff +/- theorem antitone_toDual_comp_iff +/- theorem monotoneOn_toDual_comp_iff +/- theorem monotone_toDual_comp_iff +/- theorem strictAntiOn_toDual_comp_iff +/- theorem strictAnti_toDual_comp_iff +/- theorem strictMonoOn_toDual_comp_iff +/- theorem strictMono_toDual_comp_iff Modified Mathlib/Order/Synonym.lean 2022-11-23 19:23:35 8b2d844 feat: port Algebra.GroupTheory.EckmannHilton (#626) mathlib3 sha: 71dbd401af609bb5065d060b8f221d2a31e2b8d7 ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/GroupTheory/EckmannHilton.lean + structure EckmannHilton.IsUnital + theorem EckmannHilton.MulOneClass.isUnital + def EckmannHilton.commGroup + def EckmannHilton.commMonoid + theorem EckmannHilton.mul + theorem EckmannHilton.mul_assoc + theorem EckmannHilton.mul_comm + theorem EckmannHilton.one 2022-11-23 19:15:39 de92e20 feat: port Algebra.Order.Ring.Lemmas (#482) mathlib3 hash: 7cca171008afb30576d2d4c51173700a780c23d0 FIXME: `local notation` doesn't work, had to make just `notation` and turn off `quotPrecheck` ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Order/Ring.lean Added Mathlib/Algebra/Order/Ring/Lemmas.lean + theorem Left.lt_mul_of_lt_of_one_le_of_nonneg + theorem Left.mul_le_one_of_le_of_le + theorem Left.mul_lt_of_le_of_lt_one_of_pos + theorem Left.mul_lt_of_lt_of_le_one_of_nonneg + theorem Left.mul_nonneg + theorem Left.mul_pos + theorem Left.neg_of_mul_neg_left + theorem Left.neg_of_mul_neg_right + theorem Left.one_le_mul_of_le_of_le + theorem Left.one_lt_mul_of_le_of_lt_of_pos + theorem MulPosMono.toMulPosStrictMono + theorem MulPosMono.to_mul_pos_reflect_lt + theorem MulPosMonoRev.to_mul_pos_strict_mono + theorem MulPosReflectLT.toMulPosMonoRev + theorem MulPosReflectLT.to_mul_pos_mono + theorem PosMulMono.toPosMulStrictMono + theorem PosMulMono.to_pos_mul_reflect_lt + theorem PosMulMonoRev.to_pos_mul_strict_mono + theorem PosMulReflectLT.toPosMulMonoRev + theorem PosMulReflectLT.to_pos_mul_mono + theorem Right.mul_le_one_of_le_of_le + theorem Right.mul_lt_one_of_le_of_lt_of_nonneg + theorem Right.mul_lt_one_of_lt_of_le_of_pos + theorem Right.mul_nonneg + theorem Right.mul_pos + theorem Right.neg_of_mul_neg_left + theorem Right.neg_of_mul_neg_right + theorem Right.one_le_mul_of_le_of_le + theorem Right.one_lt_mul_of_le_of_lt_of_nonneg + theorem Right.one_lt_mul_of_lt_of_le_of_pos + theorem Right.one_lt_mul_of_lt_of_lt + theorem exists_square_le' + theorem le_mul_iff_one_le_left + theorem le_mul_iff_one_le_right + theorem le_mul_of_le_mul_of_nonneg_left + theorem le_mul_of_le_mul_of_nonneg_right + theorem le_mul_of_le_of_one_le' + theorem le_mul_of_le_of_one_le_of_nonneg + theorem le_mul_of_one_le_left + theorem le_mul_of_one_le_of_le_of_nonneg + theorem le_mul_of_one_le_right + theorem le_of_le_mul_of_le_one_of_nonneg_left + theorem le_of_le_mul_of_le_one_of_nonneg_right + theorem le_of_mul_le_mul_left + theorem le_of_mul_le_mul_right + theorem le_of_mul_le_of_one_le_nonneg_right + theorem le_of_mul_le_of_one_le_of_nonneg_left + theorem lt_mul_iff_one_lt_left + theorem lt_mul_iff_one_lt_right + theorem lt_mul_of_le_of_one_lt' + theorem lt_mul_of_le_of_one_lt_of_pos + theorem lt_mul_of_lt_mul_of_nonneg_left + theorem lt_mul_of_lt_mul_of_nonneg_right + theorem lt_mul_of_lt_of_one_le' + theorem lt_mul_of_lt_of_one_le_of_nonneg + theorem lt_mul_of_lt_of_one_lt_of_pos + theorem lt_mul_of_one_le_of_lt_of_nonneg + theorem lt_mul_of_one_lt_left + theorem lt_mul_of_one_lt_of_le_of_pos + theorem lt_mul_of_one_lt_of_lt_of_nonneg + theorem lt_mul_of_one_lt_of_lt_of_pos + theorem lt_mul_of_one_lt_right + theorem lt_of_lt_mul_of_le_one_of_nonneg_left + theorem lt_of_lt_mul_of_le_one_of_nonneg_right + theorem lt_of_mul_lt_mul_left + theorem lt_of_mul_lt_mul_right + theorem lt_of_mul_lt_of_one_le_of_nonneg_left + theorem mulPosMonoRev_iff_mulPosReflectLT + theorem mulPosMono_iff_covariant_pos + theorem mulPosMono_iff_mulPosStrictMono + theorem mulPosReflectLT_iff_contravariant_pos + theorem mul_eq_mul_iff_eq_and_eq_of_pos' + theorem mul_eq_mul_iff_eq_and_eq_of_pos + theorem mul_le_iff_le_one_left + theorem mul_le_iff_le_one_right + theorem mul_le_mul + theorem mul_le_mul_left + theorem mul_le_mul_of_le_of_le + theorem mul_le_mul_of_nonneg_left + theorem mul_le_mul_of_nonneg_right + theorem mul_le_mul_right + theorem mul_le_of_le_of_le_one' + theorem mul_le_of_le_of_le_one_of_nonneg + theorem mul_le_of_le_one_left + theorem mul_le_of_le_one_of_le' + theorem mul_le_of_le_one_of_le_of_nonneg + theorem mul_le_of_le_one_right + theorem mul_le_of_mul_le_of_nonneg_left + theorem mul_le_of_mul_le_of_nonneg_right + theorem mul_left_cancel_iff_of_pos + theorem mul_lt_iff_lt_one_left + theorem mul_lt_iff_lt_one_right + theorem mul_lt_mul_left + theorem mul_lt_mul_of_le_of_le' + theorem mul_lt_mul_of_le_of_lt' + theorem mul_lt_mul_of_lt_of_lt' + theorem mul_lt_mul_of_nonneg_of_pos + theorem mul_lt_mul_of_pos_left + theorem mul_lt_mul_of_pos_of_nonneg + theorem mul_lt_mul_of_pos_of_pos + theorem mul_lt_mul_of_pos_right + theorem mul_lt_mul_right + theorem mul_lt_of_le_of_lt_one' + theorem mul_lt_of_le_of_lt_one_of_pos + theorem mul_lt_of_le_one_of_lt' + theorem mul_lt_of_le_one_of_lt_of_nonneg + theorem mul_lt_of_lt_of_le_one' + theorem mul_lt_of_lt_of_le_one_of_nonneg + theorem mul_lt_of_lt_of_lt_one_of_pos + theorem mul_lt_of_lt_one_left + theorem mul_lt_of_lt_one_of_le' + theorem mul_lt_of_lt_one_of_le_of_pos + theorem mul_lt_of_lt_one_of_lt_of_pos + theorem mul_lt_of_lt_one_right + theorem mul_lt_of_mul_lt_of_nonneg_left + theorem mul_lt_of_mul_lt_of_nonneg_right + theorem mul_neg_of_neg_of_pos + theorem mul_neg_of_pos_of_neg + theorem mul_nonpos_of_nonneg_of_nonpos + theorem mul_nonpos_of_nonpos_of_nonneg + theorem mul_pos_mono_iff_mul_pos_reflect_lt + theorem mul_pos_strict_mono_iff_mul_pos_mono_rev + theorem mul_right_cancel_iff_of_pos + theorem mul_self_le_mul_self + theorem neg_iff_neg_of_mul_pos + theorem neg_of_mul_pos_left + theorem neg_of_mul_pos_right + theorem posMulMonoRev_iff_mulPosMonoRev + theorem posMulMonoRev_iff_posMulReflectLT + theorem posMulMono_iff_covariant_pos + theorem posMulMono_iff_mulPosMono + theorem posMulMono_iff_posMulStrictMono + theorem posMulReflectLT_iff_contravariant_pos + theorem posMulReflectLT_iff_mulPosReflectLT + theorem posMulStrictMono_iff_mulPosStrictMono + theorem pos_and_pos_or_neg_and_neg_of_mul_pos + theorem pos_iff_pos_of_mul_pos + theorem pos_mul_mono_iff_pos_mul_reflect_lt + theorem pos_mul_strict_mono_iff_pos_mul_mono_rev + theorem pos_of_mul_pos_left + theorem pos_of_mul_pos_right + theorem zero_lt_mul_left + theorem zero_lt_mul_right Modified Mathlib/Tactic/Positivity/Basic.lean - theorem mul_nonneg - theorem mul_pos +/- theorem pow_bit0_nonneg +/- theorem pow_nonneg +/- theorem pow_pos Modified test/positivity.lean 2022-11-23 19:08:44 1c4dc66 chore: move mod_cases tests to test (#688) added in #593 ESTIMATED CHANGES Renamed mod_cases.lean to test/mod_cases.lean 2022-11-23 18:45:34 e19a28b chore: plumbing for `zify` (#623) ESTIMATED CHANGES Modified Mathlib/Tactic/Zify.lean + def Mathlib.Tactic.Zify.applySimpResultToProp' + def Mathlib.Tactic.Zify.mkZifyContext + def Mathlib.Tactic.Zify.zifyProof 2022-11-23 17:58:35 477f4ab chore: bump to nightly-2022-11-23 (#693) ESTIMATED CHANGES Modified Mathlib/Data/FunLike/Basic.lean Modified Mathlib/Data/List/Chain.lean Modified Mathlib/Data/List/Pairwise.lean Modified Mathlib/Data/List/Perm.lean Modified Mathlib/Tactic/NormCast/Tactic.lean Modified lean-toolchain Modified lean_packages/manifest.json 2022-11-23 17:47:18 8fbfbef feat: local variable info on `cases'` args (#687) This makes the `a b c` in `cases' foo with a b c` get hovers and syntax highlighting for the variables that were introduced. ESTIMATED CHANGES Modified Mathlib/Data/Sum/Basic.lean Modified Mathlib/Logic/Relation.lean Modified Mathlib/Order/GameAdd.lean Modified Mathlib/Tactic/Cases.lean 2022-11-23 17:37:20 f494c27 doc: remove obsolete note about mk_iff (#690) This note was added in #560. Since then, `@[mk_iff]` was implemented in #561, and was added to `IsWellFounded` in #663. ESTIMATED CHANGES Modified Mathlib/Order/RelClasses.lean 2022-11-23 13:54:34 f08601a feat: port LazyList (#686) from commit c3019c79074b0619edb4b27553a91b2e82242395 ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Data/LazyList.lean + def LazyList.append + def LazyList.approx + def LazyList.filter + def LazyList.headI + def LazyList.join + def LazyList.map + def LazyList.map₂ + def LazyList.nth + def LazyList.ofList + def LazyList.singleton + def LazyList.tail + def LazyList.toList + def LazyList.zip + def LazyList.«for» + inductive LazyList 2022-11-23 13:44:07 aa2a725 feat: port Data.List.Lex (#672) mathlib3 SHA: 39af7d3bf61a98e928812dbc3e16f4ea8b795ca3 Porting notes: 1. There was a mathport "failed to parenthesize" error, but it was easily worked around, see the first commit for details. 2. I had to use `aux` declarations when constructing things recursively inside the field of a structure. I asked about this on [Zulip](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/recursive.20definitions.20in.20instance.20fields) and also [here](https://leanprover.zulipchat.com/#narrow/stream/270676-lean4/topic/recursive.20definition.20in.20structure.20fields), but so far there doesn't seem to be a better way. In any case, it compiles so it should be fine. Otherwise, this port was very smooth. 3. Because of the `aux where` (which is really `let rec aux`) this caused the `defLemma` linter to fire, which is being handled in [lean4#1866](https://github.com/leanprover/lean4/pull/1866), so for now we just add these declarations to `nolints.json`; see [Zulip](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/recursive.20definitions.20in.20instance.20fields) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Data/List/Lex.lean + theorem Decidable.List.Lex.ne_iff + theorem List.Lex.append_left + theorem List.Lex.append_right + theorem List.Lex.cons_iff + theorem List.Lex.imp + theorem List.Lex.ne_iff + theorem List.Lex.not_nil_right + theorem List.Lex.to_ne + inductive List.Lex + theorem List.nil_lt_cons Modified scripts/nolints.json 2022-11-23 13:44:06 dceff8b feat: Port Data/Option/NAry.lean (#656) Mathport pretty much got it right from the getgo, there is some things that can no longer be `simp`, but most importantly a defeq broke. Mathlib sha 39af7d3bf61a98e928812dbc3e16f4ea8b795ca3 ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Data/Option/NAry.lean + theorem Option.map_map₂ + theorem Option.map_map₂_antidistrib + theorem Option.map_map₂_antidistrib_left + theorem Option.map_map₂_antidistrib_right + theorem Option.map_map₂_distrib + theorem Option.map_map₂_distrib_left + theorem Option.map_map₂_distrib_right + theorem Option.map_map₂_right_anticomm + theorem Option.map_map₂_right_comm + theorem Option.map_uncurry + def Option.map₂ + theorem Option.map₂_assoc + theorem Option.map₂_coe_coe + theorem Option.map₂_coe_left + theorem Option.map₂_coe_right + theorem Option.map₂_comm + theorem Option.map₂_curry + theorem Option.map₂_def + theorem Option.map₂_eq_none_iff + theorem Option.map₂_left_comm + theorem Option.map₂_map_left + theorem Option.map₂_map_left_anticomm + theorem Option.map₂_map_left_comm + theorem Option.map₂_map_right + theorem Option.map₂_none_left + theorem Option.map₂_none_right + theorem Option.map₂_right_comm + theorem Option.map₂_some_some + theorem Option.map₂_swap + theorem Option.mem_map₂_iff 2022-11-23 13:35:28 a7cbedd feat(Algebra.Group.Defs): add IsCancelMul (#606) We add a class `IsCancelMul` (and also other related classes). I've also fixed a lot of docstrings. Corresponding mathlib3 PR is [#17440](https://github.com/leanprover-community/mathlib/pull/17440). ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Defs.lean + theorem CommSemigroup.IsLeftCancelMul.to_IsCancelMul + theorem CommSemigroup.IsLeftCancelMul.to_IsRightCancelMul + theorem CommSemigroup.IsRightCancelMul.to_IsCancelMul + theorem CommSemigroup.IsRightCancelMul.to_IsLeftCancelMul Modified Mathlib/Algebra/Group/OrderSynonym.lean +/- theorem ofDual_smul' +/- theorem ofDual_smul +/- theorem ofLex_smul' +/- theorem ofLex_smul +/- theorem toDual_smul' +/- theorem toDual_smul +/- theorem toLex_smul' +/- theorem toLex_smul Modified Mathlib/Tactic/Abel.lean Modified Mathlib/Tactic/Ring/Basic.lean Modified scripts/nolints.json 2022-11-23 12:04:56 8755ae3 feat(Logic.Basic): add ne_and_eq_iff_right (#673) Corresponding mathlib3 PR [#17673](https://github.com/leanprover-community/mathlib/pull/17673) From flt-regular ESTIMATED CHANGES Modified Mathlib/Logic/Basic.lean + theorem ne_and_eq_iff_right 2022-11-23 07:02:13 dd656ba feat: port Data.Sigma.Lex (#646) mathlib3 sha: fd47bdf09e90f553519c712378e651975fe8c829 ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Data/Sigma/Lex.lean + theorem PSigma.Lex.mono + theorem PSigma.Lex.mono_left + theorem PSigma.Lex.mono_right + theorem PSigma.lex_iff + theorem Sigma.Lex.mono + theorem Sigma.Lex.mono_left + theorem Sigma.Lex.mono_right + inductive Sigma.Lex + theorem Sigma.lex_iff + theorem Sigma.lex_swap 2022-11-22 23:35:16-05:00 2c9415c fix: scoped[NS] parser issues ESTIMATED CHANGES Modified Mathlib/Tactic/ScopedNS.lean 2022-11-23 04:05:39 cbc0834 feat: port Algebra.Group.Units (#549) mathlib hash: 7cca171008afb30576d2d4c51173700a780c23d0 - [x] depends on: #600 ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Units.lean + theorem IsUnit.exists_left_inv + theorem IsUnit.exists_right_inv + theorem IsUnit.mul + theorem IsUnit.mul_iff + theorem IsUnit.mul_left_inj + theorem IsUnit.mul_right_inj + theorem IsUnit.mul_val_inv + theorem IsUnit.unit_of_val_units + theorem IsUnit.unit_spec + theorem IsUnit.val_inv_mul + def IsUnit + def Units.copy + theorem Units.copy_eq + theorem Units.eq_iff + theorem Units.eq_inv_mul_iff_mul_eq + theorem Units.eq_mul_inv_iff_mul_eq + theorem Units.ext + theorem Units.ext_iff + theorem Units.inv_eq_val_inv + theorem Units.inv_mk + theorem Units.inv_mul + theorem Units.inv_mul_cancel_left + theorem Units.inv_mul_cancel_right + theorem Units.inv_mul_eq_iff_eq_mul + theorem Units.inv_mul_eq_one + theorem Units.inv_mul_of_eq + theorem Units.inv_unique + theorem Units.isUnit_mul_units + theorem Units.isUnit_units_mul + def Units.mkOfMulEqOne + theorem Units.mk_val + theorem Units.mul_eq_one_iff_eq_inv + theorem Units.mul_eq_one_iff_inv_eq + theorem Units.mul_inv + theorem Units.mul_inv_cancel_left + theorem Units.mul_inv_cancel_right + theorem Units.mul_inv_eq_iff_eq_mul + theorem Units.mul_inv_eq_one + theorem Units.mul_inv_of_eq + theorem Units.mul_left_inj + theorem Units.mul_right_inj + theorem Units.val_eq_one + theorem Units.val_inv_eq_inv_val + theorem Units.val_mk + theorem Units.val_mkOfMulEqOne + theorem Units.val_mul + theorem Units.val_one + def divp + theorem divp_assoc' + theorem divp_assoc + theorem divp_divp_eq_divp_mul + theorem divp_eq_divp_iff + theorem divp_eq_iff_mul_eq + theorem divp_eq_one_iff_eq + theorem divp_inv + theorem divp_left_inj + theorem divp_mul_cancel + theorem divp_mul_divp + theorem divp_mul_eq_mul_divp + theorem divp_one + theorem divp_self + theorem eq_divp_iff_mul_eq + theorem inv_eq_one_divp' + theorem inv_eq_one_divp + theorem isUnit_iff_exists_inv' + theorem isUnit_iff_exists_inv + theorem isUnit_of_mul_eq_one + theorem isUnit_of_mul_isUnit_left + theorem isUnit_of_mul_isUnit_right + theorem isUnit_of_subsingleton + theorem isUnit_one + theorem mul_divp_cancel + theorem one_divp + theorem unique_one + theorem val_div_eq_divp 2022-11-23 03:12:55 76b3234 feat: port Data.Int.Cast.Basic (#670) mathlib3 SHA: 39af7d3bf61a98e928812dbc3e16f4ea8b795ca3 Porting notes: 1. Some lemmas were transferred from `Data.Int.Cast.Defs` in order to match mathlib3 (I accidentally put them in the wrong place when I had ported that file because those lemmas were already present in mathlib4.) 2. The lemmas just mentioned have retained their `simp` attribute for the reason Gabriel mentioned on that PR (#641), even though that attribute isn't present on the mathlib3 version. 3. The `bit0` and `bit1` lemmas have been marked as deprecated. 4. There were many dubious translation errors, I believe primarily because of the difference in the way coercions are handled, so I have `#align`ed all of these with `ₓ`. I believe this is the correct thing to do, but confirmation would be nice. ESTIMATED CHANGES Modified Mathlib/Algebra/Ring/Basic.lean Modified Mathlib/Data/Int/Cast/Basic.lean +/- theorem Int.cast_add + theorem Int.cast_bit0 + theorem Int.cast_bit1 + theorem Int.cast_four +/- theorem Int.cast_neg + theorem Int.cast_negOfNat + theorem Int.cast_negSucc + theorem Int.cast_ofNat + theorem Int.cast_one +/- theorem Int.cast_sub +/- theorem Int.cast_subNatNat + theorem Int.cast_three + theorem Int.cast_two + theorem Int.cast_zero + theorem Int.ofNat_bit0 + theorem Int.ofNat_bit1 + theorem Nat.cast_pred Modified Mathlib/Data/Int/Cast/Defs.lean - theorem Int.cast_negSucc - theorem Int.cast_ofNat - theorem Int.cast_one - theorem Int.cast_zero 2022-11-23 03:03:35 c5e4579 feat: port Order.Iterate (#648) mathlib SHA: fd47bdf09e90f553519c712378e651975fe8c829 ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Order/Iterate.lean + theorem Function.Commute.iterate_le_of_map_le + theorem Function.Commute.iterate_pos_eq_iff_map_eq + theorem Function.Commute.iterate_pos_le_iff_map_le' + theorem Function.Commute.iterate_pos_le_iff_map_le + theorem Function.Commute.iterate_pos_lt_iff_map_lt' + theorem Function.Commute.iterate_pos_lt_iff_map_lt + theorem Function.Commute.iterate_pos_lt_of_map_lt' + theorem Function.Commute.iterate_pos_lt_of_map_lt + theorem Function.antitone_iterate_of_le_id + theorem Function.id_le_iterate_of_id_le + theorem Function.iterate_le_id_of_le_id + theorem Function.monotone_iterate_of_id_le + theorem Monotone.antitone_iterate_of_map_le + theorem Monotone.iterate_comp_le_of_le + theorem Monotone.iterate_le_of_le + theorem Monotone.le_iterate_comp_of_le + theorem Monotone.le_iterate_of_le + theorem Monotone.monotone_iterate_of_le_map + theorem Monotone.seq_le_seq + theorem Monotone.seq_lt_seq_of_le_of_lt + theorem Monotone.seq_lt_seq_of_lt_of_le + theorem Monotone.seq_pos_lt_seq_of_le_of_lt + theorem Monotone.seq_pos_lt_seq_of_lt_of_le + theorem StrictMono.strictAnti_iterate_of_map_lt + theorem StrictMono.strictMono_iterate_of_lt_map 2022-11-23 02:26:22 d84e109 feat: port algebra.ring.order_synonym (#671) mathlib3 sha: 39af7d3bf61a98e928812dbc3e16f4ea8b795ca3 ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Ring/OrderSynonym.lean 2022-11-22 22:32:20 8679c7a feat: add trace nodes to SolveByElim (#681) Add trace nodes to `solve_by_elim` which make the search structure and local successes/failures a bit clearer. For example ![screenshot](https://user-images.githubusercontent.com/13901751/203224162-f4a73c74-1b33-4a69-9856-50e20437fe71.png) (Continued from #675.) ESTIMATED CHANGES Modified Mathlib/Tactic/SolveByElim.lean + def Mathlib.Tactic.SolveByElim.exceptEmoji 2022-11-22 21:55:02 5230db6 chore: remove upstreamed tactics 11-21 (#684) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Data/FunLike/Basic.lean +/- theorem FunLike.coe_eq_coe_fn Modified Mathlib/Init/Logic.lean Modified Mathlib/Logic/Basic.lean Modified Mathlib/Mathport/Syntax.lean Deleted Mathlib/Tactic/Congr.lean Deleted Mathlib/Tactic/DocCommands.lean Deleted Mathlib/Tactic/SeqFocus.lean Deleted Mathlib/Tactic/SimpTrace.lean - def Mathlib.Tactic.dsimpLocation' Modified Mathlib/Tactic/SolveByElim.lean Modified scripts/style-exceptions.txt Deleted test/DocCommands.lean - def hi - def one - def three - def two Deleted test/SeqFocus.lean Deleted test/congr.lean Deleted test/simp_trace.lean - def bar - def baz - def foo 2022-11-22 19:01:29 edcfa8f chore: add priority in Algebra.Group.Basic (#677) ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Basic.lean Modified Mathlib/Algebra/Group/Defs.lean 2022-11-22 18:54:25 af987ca chore: bump to nightly-2022-11-21 (#679) ESTIMATED CHANGES Modified Mathlib/Init/Logic.lean Modified Mathlib/Tactic/Core.lean - def Lean.Parser.Tactic.dsimpArg Modified lean-toolchain Modified lean_packages/manifest.json 2022-11-22 18:22:09 a9b37e6 fix(Tactic/ToAdditive): deal with the auxilliary `.proof_i` and `.eq_i` declarations (#680) * Also allow `@[to_additive!]`/`@[to_additive?]` and friends without spaces. * I added tiny documentations because of the doc_blame linter. It would be better to use `@[inherit_doc ...]` on the initialization of the `to_additive` attribute, but I don't know the name of that. Help would be appreciated (though this can wait for a later PR). * Add missing documentation in the rest of the file. For the other initialize attributes I copied the Lean 3 documentation that was removed in Lean 4 for some reason. I did not check if the implementation is exactly the same. ESTIMATED CHANGES Modified Mathlib/Tactic/ToAdditive.lean +/- def ToAdditive.isInternal' Modified test/toAdditive.lean + def Test.IsUnit + theorem Test.isUnit_iff_exists_inv 2022-11-22 17:56:02 ae4b738 fix: scoped[NS] missing some notation rules (#676) As [reported on Zulip](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/scoped.5BNS.5D/near/311517092). ESTIMATED CHANGES Modified Mathlib/Tactic/ScopedNS.lean 2022-11-22 17:27:30 03e5988 fix: temporarily disable aesop (#682) ESTIMATED CHANGES Modified lakefile.lean 2022-11-22 07:59:39 1292163 feat: add `fun x ↦ t` syntax (#617) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/CovariantAndContravariant.lean Modified Mathlib/Algebra/Group/Basic.lean +/- theorem div_left_injective +/- theorem div_right_injective +/- theorem leftInverse_div_mul_left +/- theorem leftInverse_inv +/- theorem leftInverse_mul_left_div +/- theorem mul_right_surjective +/- theorem rightInverse_inv Modified Mathlib/Algebra/Group/Commutator.lean Modified Mathlib/Algebra/Group/Defs.lean +/- def leftMul +/- theorem mul_left_injective +/- theorem mul_right_injective +/- def rightMul Modified Mathlib/Algebra/NeZero.lean Modified Mathlib/Algebra/Order/Group.lean Modified Mathlib/Algebra/Order/Monoid.lean Modified Mathlib/Control/Writer.lean Modified Mathlib/Data/BinaryHeap.lean Modified Mathlib/Data/Bool/Basic.lean +/- theorem Bool.not_ne_id Modified Mathlib/Data/ByteArray.lean Modified Mathlib/Data/Fin/Basic.lean +/- theorem Fin.gt_wf Modified Mathlib/Data/Finset/Basic.lean Modified Mathlib/Data/FunLike/Basic.lean +/- theorem FunLike.coe_eq_coe_fn +/- theorem FunLike.coe_injective Modified Mathlib/Data/FunLike/Embedding.lean Modified Mathlib/Data/FunLike/Equiv.lean +/- theorem EquivLike.inv_injective Modified Mathlib/Data/Int/Basic.lean +/- theorem Int.coe_nat_strictMono Modified Mathlib/Data/Int/Cast.lean Modified Mathlib/Data/KVMap.lean Modified Mathlib/Data/List/Basic.lean +/- theorem List.append_left_injective +/- theorem List.append_right_injective Modified Mathlib/Data/List/Card.lean Modified Mathlib/Data/List/Chain.lean Modified Mathlib/Data/List/Nodup.lean Modified Mathlib/Data/List/Pairwise.lean Modified Mathlib/Data/List/Perm.lean Modified Mathlib/Data/List/Range.lean +/- theorem List.chain_succ_range' +/- def List.finRange Modified Mathlib/Data/Multiset/Basic.lean Modified Mathlib/Data/Multiset/Nodup.lean Modified Mathlib/Data/Nat/Basic.lean Modified Mathlib/Data/Option/Basic.lean +/- theorem Option.coe_def +/- theorem Option.elim_none_some +/- theorem Option.map_injective' +/- theorem Option.none_orElse' +/- theorem Option.orElse_eq_none' +/- theorem Option.orElse_none' +/- theorem Option.pbind_eq_bind +/- theorem Option.some_injective +/- theorem Option.some_orElse' Modified Mathlib/Data/Option/Defs.lean Modified Mathlib/Data/Prod/Basic.lean +/- theorem Prod.id_prod +/- theorem Prod.map_def +/- def Prod.swap Modified Mathlib/Data/Prod/PProd.lean Modified Mathlib/Data/Quot.lean +/- theorem true_equivalence Modified Mathlib/Data/Sigma/Basic.lean Modified Mathlib/Data/Subtype.lean +/- theorem Subtype.coe_injective +/- def Subtype.coind Modified Mathlib/Data/Sum/Basic.lean +/- theorem Sum.inl_injective +/- theorem Sum.inr_injective Modified Mathlib/Data/UInt.lean Modified Mathlib/Data/UnionFind.lean Modified Mathlib/Init/Algebra/Classes.lean Modified Mathlib/Init/CcLemmas.lean Modified Mathlib/Init/Classical.lean Modified Mathlib/Init/Core.lean Modified Mathlib/Init/Data/Fin/Basic.lean +/- theorem Fin.ne_of_vne +/- theorem Fin.vne_of_ne Modified Mathlib/Init/Data/Nat/Lemmas.lean Modified Mathlib/Init/Function.lean +/- theorem Function.injective_id Modified Mathlib/Init/Logic.lean +/- theorem not_of_eq_false +/- theorem not_or_of_not Modified Mathlib/Init/Propext.lean Modified Mathlib/Init/Set.lean Modified Mathlib/Lean/Expr/Basic.lean Modified Mathlib/Lean/Expr/ReplaceRec.lean Modified Mathlib/Lean/Meta.lean Modified Mathlib/Logic/Basic.lean +/- theorem dite_eq_ite +/- theorem dite_eq_left_iff +/- theorem dite_eq_right_iff +/- theorem dite_ne_left_iff +/- theorem dite_ne_right_iff +/- theorem exists_unique_false +/- theorem fact_iff +/- theorem forall_or_of_or_forall Modified Mathlib/Logic/Function/Basic.lean +/- theorem Function.Bijective.comp_right +/- theorem Function.Injective.of_comp +/- theorem Function.Injective2.left' +/- theorem Function.Injective2.right' +/- theorem Function.Surjective.injective_comp_right +/- theorem Function.Surjective.of_comp +/- theorem Function.const_def +/- theorem Function.const_injective +/- def Function.extend +/- theorem Function.extend_injective +/- theorem Function.id_def +/- theorem Function.uncurry_def +/- theorem Function.update_injective Modified Mathlib/Logic/Function/Conjugate.lean +/- theorem Function.Semiconj₂.id_left Modified Mathlib/Logic/Function/Iterate.lean +/- theorem Function.iterate_commute +/- theorem List.foldr_const Modified Mathlib/Logic/IsEmpty.lean Modified Mathlib/Logic/Lemmas.lean Modified Mathlib/Logic/Nonempty.lean Modified Mathlib/Logic/Nontrivial.lean Modified Mathlib/Logic/Relation.lean +/- theorem IsRefl.reflexive +/- theorem Reflexive.comap +/- def Relation.Join +/- theorem Relation.reflexive_join +/- theorem Relation.reflexive_reflTransGen +/- theorem Relation.symmetric_join +/- theorem Relation.transitive_reflTransGen +/- theorem Relation.transitive_transGen +/- theorem Symmetric.comap Modified Mathlib/Logic/Unique.lean Modified Mathlib/Mathport/Rename.lean Modified Mathlib/Mathport/Syntax.lean Modified Mathlib/Order/Basic.lean +/- theorem Eq.not_lt +/- theorem le_Prop_eq +/- theorem lt_of_le_of_ne' +/- theorem ne_of_not_le +/- theorem not_lt_of_le Modified Mathlib/Order/Monotone.lean +/- theorem Function.const_mono +/- theorem List.foldl_monotone +/- theorem List.foldl_strictMono +/- theorem StrictMono.id_le +/- theorem Subtype.mono_coe +/- theorem antitone_app +/- theorem antitone_const +/- theorem antitone_lam +/- theorem monotoneOn_id +/- theorem monotone_app +/- theorem monotone_const +/- theorem monotone_fst +/- theorem monotone_id +/- theorem monotone_lam +/- theorem monotone_snd +/- theorem strictMonoOn_id +/- theorem strictMono_id Modified Mathlib/Tactic/Abel.lean +/- def Mathlib.Tactic.Abel.elabAbelNFConv Modified Mathlib/Tactic/Alias.lean Modified Mathlib/Tactic/ApplyFun.lean Modified Mathlib/Tactic/ApplyRules.lean Modified Mathlib/Tactic/Basic.lean Modified Mathlib/Tactic/CasesM.lean Modified Mathlib/Tactic/Choose.lean Modified Mathlib/Tactic/Clear!.lean Modified Mathlib/Tactic/ClearExcept.lean Modified Mathlib/Tactic/Clear_.lean Modified Mathlib/Tactic/Coe.lean Modified Mathlib/Tactic/Congr.lean Modified Mathlib/Tactic/Contrapose.lean +/- theorem Mathlib.Tactic.Contrapose.mtr Modified Mathlib/Tactic/Conv.lean Modified Mathlib/Tactic/Convert.lean Modified Mathlib/Tactic/FinCases.lean Modified Mathlib/Tactic/Find.lean Modified Mathlib/Tactic/GeneralizeProofs.lean Modified Mathlib/Tactic/Have.lean Modified Mathlib/Tactic/HelpCmd.lean Modified Mathlib/Tactic/IrreducibleDef.lean Modified Mathlib/Tactic/LeftRight.lean Modified Mathlib/Tactic/MkIffOfInductiveProp.lean Modified Mathlib/Tactic/NormCast/Tactic.lean +/- def Tactic.NormCast.evalPushCast Modified Mathlib/Tactic/NormNum/Core.lean +/- def Mathlib.Tactic.elabNormNum1Conv +/- def Mathlib.Tactic.elabNormNumConv Modified Mathlib/Tactic/PrintPrefix.lean Modified Mathlib/Tactic/PushNeg.lean +/- def Mathlib.Tactic.PushNeg.elabPushNegConv Modified Mathlib/Tactic/Relation/Rfl.lean Modified Mathlib/Tactic/Relation/Symm.lean Modified Mathlib/Tactic/Relation/Trans.lean Modified Mathlib/Tactic/Rename.lean Modified Mathlib/Tactic/RenameBVar.lean Modified Mathlib/Tactic/Replace.lean Modified Mathlib/Tactic/Ring/Basic.lean Modified Mathlib/Tactic/Ring/RingNF.lean +/- def Mathlib.Tactic.RingNF.elabRingNFConv Modified Mathlib/Tactic/RunCmd.lean Modified Mathlib/Tactic/Sat/FromLRAT.lean +/- theorem Sat.Clause.reify_zero +/- theorem Sat.Fmla.subsumes_self Modified Mathlib/Tactic/Set.lean Modified Mathlib/Tactic/SimpIntro.lean Modified Mathlib/Tactic/SimpTrace.lean Modified Mathlib/Tactic/Simps/Basic.lean Modified Mathlib/Tactic/SplitIfs.lean Modified Mathlib/Tactic/SudoSetOption.lean Modified Mathlib/Tactic/SwapVar.lean Modified Mathlib/Tactic/ToAdditive.lean Modified Mathlib/Tactic/UnsetOption.lean Modified Mathlib/Testing/SlimCheck/Sampleable.lean Modified Mathlib/Util/Export.lean Added Mathlib/Util/MapsTo.lean + def Mathlib.Util.MapsTo.delabLam Modified Mathlib/Util/Simp.lean Modified Mathlib/Util/Tactic.lean Modified Mathlib/Util/WithWeakNamespace.lean 2022-11-22 00:47:35 fb0fd70 feat: port Control.EquivFunctor (#649) Initial port, fixed naming, comments and line breaks. Against fd47bdf09e90f553519c712378e651975fe8c829 ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Control/EquivFunctor.lean + theorem EquivFunctor.mapEquiv.injective + def EquivFunctor.mapEquiv + theorem EquivFunctor.mapEquiv_apply + theorem EquivFunctor.mapEquiv_refl + theorem EquivFunctor.mapEquiv_symm + theorem EquivFunctor.mapEquiv_symm_apply + theorem EquivFunctor.mapEquiv_trans 2022-11-21 04:21:28 112b847 feat: `mod_cases` tactic (#593) * [x] depends on #587 Implements the `mod_cases` tactic, a teaching tactic used by @hrmacbeth 's class which is also generally useful. * The tactic `mod_cases h : e % 3` will perform a case disjunction on `e : ℤ` and yield subgoals containing the assumptions `h : e ≡ 0 [ZMOD 3]`, `h : e ≡ 1 [ZMOD 3]`, `h : e ≡ 2 [ZMOD 3]` respectively. * In general, `mod_cases h : e % n` works when `n` is a positive numeral and `e` is an expression of type `ℤ`. * If `h` is omitted as in `mod_cases e % n`, it will be default-named `H`. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Mathport/Syntax.lean Added Mathlib/Tactic/ModCases.lean + def Int.modeq + def Mathlib.Tactic.ModCases.OnModCases + def Mathlib.Tactic.ModCases.onModCases_start + def Mathlib.Tactic.ModCases.onModCases_stop + def Mathlib.Tactic.ModCases.onModCases_succ Added mod_cases.lean 2022-11-21 03:50:59 1442970 feat: `nontriviality` tactic (#600) Supercedes #548. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Data/Nat/Basic.lean Modified Mathlib/Mathport/Syntax.lean Modified Mathlib/Tactic/LibrarySearch.lean +/- def Mathlib.Tactic.LibrarySearch.solveByElim Added Mathlib/Tactic/Nontriviality.lean Added Mathlib/Tactic/Nontriviality/Core.lean + def Mathlib.Tactic.Nontriviality.elabNontriviality + def Mathlib.Tactic.Nontriviality.nontrivialityByAssumption + def Mathlib.Tactic.Nontriviality.nontrivialityByElim + theorem Mathlib.Tactic.Nontriviality.subsingleton_or_nontrivial_elim Modified Mathlib/Tactic/SolveByElim.lean Added test/nontriviality.lean + def EmptyOrUniv + theorem Set.empty_union + theorem Subsingleton.set_empty_or_univ' + theorem Subsingleton.set_empty_or_univ + theorem zero_le_one + theorem zero_le_two 2022-11-20 21:39:25 085e7ab feat: port Algebra.Ring.Defs (#655) Tracking mathlib commit: [39af7d3bf61a98e928812dbc3e16f4ea8b795ca3](https://github.com/leanprover-community/mathlib/commit/39af7d3bf61a98e928812dbc3e16f4ea8b795ca3) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Group/Defs.lean Modified Mathlib/Algebra/GroupWithZero/Defs.lean Modified Mathlib/Algebra/Ring/Basic.lean - theorem add_mul - theorem mul_add - theorem mul_neg - theorem mul_sub_right_distrib - theorem neg_mul - theorem neg_mul_eq_neg_mul Added Mathlib/Algebra/Ring/Defs.lean + theorem add_mul_self_eq + theorem add_one_mul + theorem bit0_eq_two_mul + theorem boole_mul + theorem distrib_three_right + theorem ite_and_mul_zero + theorem ite_mul + theorem ite_mul_zero_left + theorem ite_mul_zero_right + theorem left_distrib + theorem mul_add_eq_mul_add_iff_sub_mul_add_eq + theorem mul_add_one + theorem mul_boole + theorem mul_ite + theorem mul_neg + theorem mul_neg_one + theorem mul_one_add + theorem mul_one_sub + theorem mul_sub_left_distrib + theorem mul_sub_one + theorem mul_sub_right_distrib + theorem mul_two + theorem neg_eq_neg_one_mul + theorem neg_mul + theorem neg_mul_comm + theorem neg_mul_eq_mul_neg + theorem neg_mul_eq_neg_mul + theorem neg_mul_neg + theorem neg_one_mul + theorem one_add_mul + theorem one_sub_mul + theorem right_distrib + theorem sub_mul_add_eq_of_mul_add_eq_mul_add + theorem sub_one_mul + theorem two_mul Modified Mathlib/Data/Nat/Cast/Defs.lean + theorem one_add_one_eq_two Modified Mathlib/Tactic/NormNum/Basic.lean Modified Mathlib/Tactic/NormNum/Core.lean Modified Mathlib/Tactic/Ring/Basic.lean +/- theorem Mathlib.Tactic.Ring.cast_neg 2022-11-20 21:24:04 d419b09 chore: fix linter warnings in tests (#662) ESTIMATED CHANGES Modified lean_packages/manifest.json Modified test/Clear!.lean Modified test/ClearExcept.lean Modified test/Clear_.lean Modified test/Have.lean Modified test/PermuteGoals.lean Modified test/Replace.lean Modified test/Set.lean Modified test/Simps.lean Modified test/SolveByElim.lean Modified test/basicTactics.lean Modified test/congr.lean Modified test/irreducibleDef.lean Modified test/librarySearch.lean +/- theorem lemma_with_false_in_head Modified test/positivity.lean 2022-11-20 21:15:49 cd40c74 feat: `#noalign` command; `align.precheck` option (#663) * The `#noalign` command is like `#align` but it doesn't take a lean 4 name. The semantics are that mathport will delete the theorem which would have been translated at this point, and future references will use `sorry` instead. I am unsure how much we will need this, but it is good for documenting intentional deletions. * The `#align` command now checks that the lean 4 declaration (after stripping `ₓ`) exists. It still requires that the lean 4 name be fully qualified, but it will tell you if you tried to reference something that was in scope. (I don't want it to do name resolution on its own because this will make it harder to compare with the lean 3 version.) You can disable the check using `set_option align.precheck false`. * The `mk_iff` command now does name resolution and attaches proper definition info to the input span. * As expected, the precheck caught a ton of naming bugs in ported files. ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Monoid/Lemmas.lean + theorem bit0_mono + theorem bit0_strict_mono Modified Mathlib/Data/Bool/Basic.lean Modified Mathlib/Data/Option/Basic.lean Modified Mathlib/Data/PNat/Defs.lean Modified Mathlib/Data/Prod/Basic.lean Modified Mathlib/Init/Algebra/Order.lean Modified Mathlib/Init/Align.lean Modified Mathlib/Init/Classical.lean Modified Mathlib/Init/Core.lean Modified Mathlib/Init/Function.lean Modified Mathlib/Init/Logic.lean Modified Mathlib/Logic/Basic.lean - theorem ExistsUnique.intro2 + theorem ExistsUnique.intro₂ - theorem ExistsUnique.unique2 + theorem ExistsUnique.unique₂ + theorem ball_and - theorem ball_and_distrib - theorem forall_or_distrib_right + theorem forall_or_right + theorem or_congr_left' + theorem or_congr_right' Modified Mathlib/Logic/Function/Basic.lean Modified Mathlib/Logic/Function/Conjugate.lean Modified Mathlib/Logic/IsEmpty.lean - theorem Function.extend_of_empty + theorem Function.extend_of_isEmpty + theorem wellFounded_of_isEmpty - theorem well_founded_of_empty Modified Mathlib/Logic/Relation.lean Modified Mathlib/Mathport/Rename.lean +/- def Mathlib.Prelude.Rename.addNameAlignment + def Mathlib.Prelude.Rename.elabNoAlign + def Mathlib.Prelude.Rename.ensureUnused + def Mathlib.Prelude.Rename.removeX Modified Mathlib/Order/Compare.lean + theorem cmpLE_ofDual - theorem cmp_LE_of_dual Modified Mathlib/Order/Monotone.lean Modified Mathlib/Order/RelClasses.lean - theorem IsWellFounded_iff Modified Mathlib/Order/Synonym.lean + theorem ofLex_symm_eq - theorem of_lex_symm_eq Modified Mathlib/Tactic/MkIffOfInductiveProp.lean +/- def Mathlib.Tactic.MkIff.mkIffOfInductivePropImpl 2022-11-20 20:44:59 7a3282c feat: port Algebra.Group.OrderSynonym (#651) Tracking mathlib commit: [c3019c79074b0619edb4b27553a91b2e82242395](https://github.com/leanprover-community/mathlib/commit/c3019c79074b0619edb4b27553a91b2e82242395) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Group/OrderSynonym.lean + theorem ofDual_div + theorem ofDual_inv + theorem ofDual_mul + theorem ofDual_one + theorem ofDual_pow + theorem ofDual_smul' + theorem ofDual_smul + theorem ofLex_div + theorem ofLex_inv + theorem ofLex_mul + theorem ofLex_one + theorem ofLex_pow + theorem ofLex_smul' + theorem ofLex_smul + theorem pow_ofDual + theorem pow_ofLex + theorem pow_toDual + theorem pow_toLex + theorem toDual_div + theorem toDual_inv + theorem toDual_mul + theorem toDual_one + theorem toDual_pow + theorem toDual_smul' + theorem toDual_smul + theorem toLex_div + theorem toLex_inv + theorem toLex_mul + theorem toLex_one + theorem toLex_pow + theorem toLex_smul' + theorem toLex_smul Modified Mathlib/Tactic/ToAdditive.lean 2022-11-20 16:07:09 f7dc75b feat: port Algebra.Quotient (#643) Had to do very little. Please let me know if there is something I missed. Starting mathlib commit: c3019c79074b0619edb4b27553a91b2e82242395 ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Quotient.lean + def HasQuotient.quotient 2022-11-20 11:51:23 d199195 feat: port Algebra/HierarchyDesign (#657) Capitalisation may not be perfect. SHA 39af7d3bf61a98e928812dbc3e16f4ea8b795ca3 ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/HierarchyDesign.lean 2022-11-20 10:32:49 bff5461 feat: port Algebra.Order.Hom.Basic (#627) mathlib3 sha: 17ef379e997badd73e5eabb4d38f11919ab3c4b3 ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Order/Hom/Basic.lean + theorem le_map_add_map_div + theorem le_map_div_add_map_div + theorem le_map_div_mul_map_div + theorem le_map_mul_map_div 2022-11-20 09:55:36 9a1d282 feat: port Order.GameAdd (#645) mathlib SHA: fd47bdf09e90f553519c712378e651975fe8c829 ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Init/Align.lean Added Mathlib/Order/GameAdd.lean + theorem Acc.prod_gameAdd + inductive Prod.GameAdd + theorem Prod.gameAdd_le_lex + theorem Prod.rprod_le_transGen_gameAdd + theorem WellFounded.prod_gameAdd 2022-11-20 09:34:00 23e5bef feat: bring solve_by_elim closer to parity with mathlib3 (#629) * Adds `trivial`, `rfl`, `congrFun`, and `congrArg` lemmas by default. * Defers elaboration, to support cases where a lemma's implicit parameters must be instantiated more than once. * Improves backtracking by working in the `TacticM` monad. In the old `MetaM` version, the recursive call only represents the work on a single subgoal, which may succeed but then later lead us to a dead end. With `TacticM` as done in the PR, it's natural for the recursive call to represent the entire remaining proof, including non-main subgoals. * Adds tests to exercise all of these new features. Compare to the [mathlib3 version](https://github.com/leanprover-community/mathlib/blob/bef2305bab21e60a6d5f1e4bee5d2f14a21ac5a8/src/tactic/solve_by_elim.lean). ESTIMATED CHANGES Modified Mathlib/Tactic/LibrarySearch.lean +/- def Mathlib.Tactic.LibrarySearch.solveByElim Modified Mathlib/Tactic/SolveByElim.lean - def Lean.Meta.solveByElim - def Lean.Tactic.solveByElimImpl + def Mathlib.Tactic.SolveByElim.mkAssumptionSet + def Mathlib.Tactic.SolveByElim.solveByElimAux + def Mathlib.Tactic.SolveByElim.solveByElimImpl Modified scripts/nolints.json Modified test/SolveByElim.lean 2022-11-20 09:01:12 afd0c16 feat: port algebra.order.monoid.lemmas (#608) I had to change one proof due to a `to_additive` issue, see [Zulip](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/to_additive.20thinks.20it's.20in.20a.20namespace). mathlib3 sha: 7cca171008afb30576d2d4c51173700a780c23d0 [Diff from mathport output](https://github.com/leanprover-community/mathlib4/compare/40d48abdfdf951c6dc1cb7681de7fb46156a0039..hrmacbeth-algebra-monoid-lemmas) - [x] depends on: #591 ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Order/Group.lean Modified Mathlib/Algebra/Order/Monoid.lean Added Mathlib/Algebra/Order/Monoid/Lemmas.lean + theorem Antitone.const_mul' + theorem Antitone.mul' + theorem Antitone.mul_const' + theorem Antitone.mul_strict_anti' + theorem AntitoneOn.const_mul' + theorem AntitoneOn.mul' + theorem AntitoneOn.mul_const' + theorem AntitoneOn.mul_strict_anti' + theorem Contravariant.MulLeCancellable + def Contravariant.toLeftCancelSemigroup + def Contravariant.toRightCancelSemigroup + theorem Left.mul_eq_mul_iff_eq_and_eq + theorem Left.mul_le_one + theorem Left.mul_lt_mul + theorem Left.mul_lt_one' + theorem Left.mul_lt_one + theorem Left.mul_lt_one_of_le_of_lt + theorem Left.mul_lt_one_of_lt_of_le + theorem Left.one_le_mul + theorem Left.one_lt_mul' + theorem Left.one_lt_mul + theorem Left.one_lt_mul_of_le_of_lt + theorem Left.one_lt_mul_of_lt_of_le + theorem Monotone.const_mul' + theorem Monotone.mul' + theorem Monotone.mul_const' + theorem Monotone.mul_strict_mono' + theorem MonotoneOn.const_mul' + theorem MonotoneOn.mul' + theorem MonotoneOn.mul_const' + theorem MonotoneOn.mul_strict_mono' + def MulLeCancellable + theorem Right.mul_eq_mul_iff_eq_and_eq + theorem Right.mul_le_one + theorem Right.mul_lt_mul + theorem Right.mul_lt_one' + theorem Right.mul_lt_one + theorem Right.mul_lt_one_of_le_of_lt + theorem Right.mul_lt_one_of_lt_of_le + theorem Right.one_le_mul + theorem Right.one_lt_mul' + theorem Right.one_lt_mul + theorem Right.one_lt_mul_of_le_of_lt + theorem Right.one_lt_mul_of_lt_of_le + theorem StrictAnti.const_mul' + theorem StrictAnti.mul' + theorem StrictAnti.mul_antitone' + theorem StrictAnti.mul_const' + theorem StrictAntiOn.const_mul' + theorem StrictAntiOn.mul' + theorem StrictAntiOn.mul_antitone' + theorem StrictAntiOn.mul_const' + theorem StrictMono.const_mul' + theorem StrictMono.mul' + theorem StrictMono.mul_const' + theorem StrictMono.mul_monotone' + theorem StrictMonoOn.const_mul' + theorem StrictMonoOn.mul' + theorem StrictMonoOn.mul_const' + theorem StrictMonoOn.mul_monotone' + theorem cmp_mul_left' + theorem cmp_mul_right' + theorem eq_one_of_mul_le_one_left + theorem eq_one_of_mul_le_one_right + theorem eq_one_of_one_le_mul_left + theorem eq_one_of_one_le_mul_right + theorem exists_square_le + theorem le_mul_iff_one_le_left' + theorem le_mul_iff_one_le_right' + theorem le_mul_of_le_mul_left + theorem le_mul_of_le_mul_right + theorem le_mul_of_le_of_one_le + theorem le_mul_of_one_le_left' + theorem le_mul_of_one_le_of_le + theorem le_mul_of_one_le_right' + theorem le_of_le_mul_of_le_one_left + theorem le_of_le_mul_of_le_one_right + theorem le_of_mul_le_mul_left' + theorem le_of_mul_le_mul_right' + theorem le_of_mul_le_of_one_le_left + theorem le_of_mul_le_of_one_le_right + theorem le_one_of_mul_le_left + theorem le_one_of_mul_le_right + theorem lt_mul_iff_one_lt_left' + theorem lt_mul_iff_one_lt_right' + theorem lt_mul_of_le_of_one_lt + theorem lt_mul_of_lt_mul_left + theorem lt_mul_of_lt_mul_right + theorem lt_mul_of_lt_of_one_le + theorem lt_mul_of_lt_of_one_lt' + theorem lt_mul_of_lt_of_one_lt + theorem lt_mul_of_one_le_of_lt + theorem lt_mul_of_one_lt_left' + theorem lt_mul_of_one_lt_of_le + theorem lt_mul_of_one_lt_of_lt' + theorem lt_mul_of_one_lt_of_lt + theorem lt_mul_of_one_lt_right' + theorem lt_of_lt_mul_of_le_one_left + theorem lt_of_lt_mul_of_le_one_right + theorem lt_of_mul_lt_mul_left' + theorem lt_of_mul_lt_mul_right' + theorem lt_of_mul_lt_of_one_le_left + theorem lt_of_mul_lt_of_one_le_right + theorem lt_one_of_mul_lt_left + theorem lt_one_of_mul_lt_right + theorem mul_eq_one_iff' + theorem mul_le_cancellable_one + theorem mul_le_iff_le_one_left' + theorem mul_le_iff_le_one_right' + theorem mul_le_mul' + theorem mul_le_mul_iff_left + theorem mul_le_mul_iff_right + theorem mul_le_mul_left' + theorem mul_le_mul_right' + theorem mul_le_mul_three + theorem mul_le_of_le_of_le_one + theorem mul_le_of_le_one_left' + theorem mul_le_of_le_one_of_le + theorem mul_le_of_le_one_right' + theorem mul_le_of_mul_le_left + theorem mul_le_of_mul_le_right + theorem mul_left_cancel'' + theorem mul_lt_iff_lt_one_left' + theorem mul_lt_iff_lt_one_right' + theorem mul_lt_mul_iff_left + theorem mul_lt_mul_iff_right + theorem mul_lt_mul_left' + theorem mul_lt_mul_of_le_of_lt + theorem mul_lt_mul_of_lt_of_le + theorem mul_lt_mul_of_lt_of_lt + theorem mul_lt_mul_right' + theorem mul_lt_of_le_of_lt_one + theorem mul_lt_of_le_one_of_lt + theorem mul_lt_of_lt_of_le_one + theorem mul_lt_of_lt_of_lt_one' + theorem mul_lt_of_lt_of_lt_one + theorem mul_lt_of_lt_one_left' + theorem mul_lt_of_lt_one_of_le + theorem mul_lt_of_lt_one_of_lt' + theorem mul_lt_of_lt_one_of_lt + theorem mul_lt_of_lt_one_right' + theorem mul_lt_of_mul_lt_left + theorem mul_lt_of_mul_lt_right + theorem mul_right_cancel'' + theorem one_le_of_le_mul_left + theorem one_le_of_le_mul_right + theorem one_lt_of_lt_mul_left + theorem one_lt_of_lt_mul_right Deleted Mathlib/Algebra/Order/MonoidLemmas.lean - theorem le_of_mul_le_mul_left' - theorem lt_of_mul_lt_mul_left' - theorem mul_le_mul_iff_left - theorem mul_le_mul_iff_right - theorem mul_le_mul_left' - theorem mul_lt_mul_iff_left - theorem mul_lt_mul_iff_right - theorem mul_lt_mul_left' Modified Mathlib/Init/Algebra/Order.lean Modified Mathlib/Tactic/Positivity/Basic.lean - theorem add_nonneg - theorem add_pos - theorem lt_add_of_le_of_pos - theorem lt_add_of_pos_of_le 2022-11-20 08:54:00 f04a595 feat: Port Algebra.CharZero.Defs (#661) mathlib4 SHA 39af7d3bf61a98e928812dbc3e16f4ea8b795ca3 ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/CharZero/Defs.lean + theorem Nat.cast_add_one_ne_zero + theorem Nat.cast_eq_one + theorem Nat.cast_eq_zero + theorem Nat.cast_inj + theorem Nat.cast_injective + theorem Nat.cast_ne_one + theorem Nat.cast_ne_zero + theorem charZero_of_inj_zero 2022-11-20 07:14:36 e1378b6 feat: port Mathlib.Control.ULift (#638) against `mathlib` fd47bdf09e90f553519c712378e651975fe8c829 ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Control/ULift.lean + theorem PLift.bind_up + theorem PLift.map_up + theorem PLift.rec.constant + theorem PLift.seq_up + theorem ULift.bind_up + theorem ULift.map_up + theorem ULift.rec.constant + theorem ULift.seq_up 2022-11-20 07:14:35 1b6572f perf: optimizations in `norm_num` and `ring` (#613) With a little help from perf and hotspot, I managed to find and improve some expensive bits in `norm_num` and `ring`. As a result, the time spent in `linear_combination` in the linear_combination test suite (which is spent almost 100% in `ring1`, of which about 35% is in `norm_num`) is decreased by just over 50%. ESTIMATED CHANGES Modified Mathlib/Tactic/NormNum/Basic.lean +/- theorem Mathlib.Meta.NormNum.isNat_ofNat Modified Mathlib/Tactic/NormNum/Core.lean +/- theorem Mathlib.Meta.NormNum.IsInt.neg_to_eq +/- theorem Mathlib.Meta.NormNum.IsInt.nonneg_to_eq +/- theorem Mathlib.Meta.NormNum.IsNat.to_eq + def Mathlib.Meta.NormNum.mkOfNat Modified Mathlib/Tactic/Ring/Basic.lean 2022-11-20 07:08:23 b73d5ac feat: port remaining missing Algebra.GroupWithZero.Defs (#563) Tracking mathlib3 sha: 39af7d3bf61a98e928812dbc3e16f4ea8b795ca3 The file had been missing some classes, added those. Apart from adding missing classes, put in docstrings for the module, as well as classes and lemmas that were missing them. Turns out this file doesn't rely on the Logic.Nontrivial import. This file still has `AddMonoidWithOne` at the bottom of the file -- this is in `dat.nat.cast.defs` in mathlib3 -- I left it in because it is likely in this file to assist with downstream tactic usage. ESTIMATED CHANGES Modified Mathlib/Algebra/GroupWithZero/Defs.lean + theorem mul_eq_zero + theorem mul_eq_zero_comm + theorem mul_eq_zero_of_left + theorem mul_eq_zero_of_right + theorem mul_left_cancel₀ + theorem mul_left_injective₀ + theorem mul_ne_zero_comm + theorem mul_ne_zero_iff + theorem mul_right_cancel₀ + theorem mul_right_injective₀ + theorem mul_self_eq_zero + theorem mul_self_ne_zero + theorem pullback_nonzero + theorem zero_eq_mul + theorem zero_eq_mul_self + theorem zero_ne_mul_self Modified Mathlib/Tactic/Positivity/Basic.lean +/- theorem mul_ne_zero +/- theorem mul_ne_zero_of_ne_zero_of_pos +/- theorem mul_ne_zero_of_pos_of_ne_zero Modified scripts/nolints.json 2022-11-20 06:29:43 0992175 port: Data.Opposite (#650) Commented the meta code at the end that I cannot handle myself. (Never needed it when using category theory in mathlib3...). Following the comment `(If Lean supported definitional eta equality for records, we could achieve the same goals using a structure with one field.)` in the file, would not it be slightly nicer to use a structure with one field (named `unop`?!) for `Opposite` instead of a type synonym as it was the case in mathlib3 since it seems that in Lean 4 we would still have nice definitional equalities `op_unop` and `unop_op`? Mathlib SHA : fd47bdf09e90f553519c712378e651975fe8c829 ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Data/Opposite.lean + def Opposite.equivToOpposite + theorem Opposite.equivToOpposite_coe + theorem Opposite.equivToOpposite_symm_coe + def Opposite.op + theorem Opposite.op_eq_iff_eq_unop + theorem Opposite.op_inj_iff + theorem Opposite.op_injective + theorem Opposite.op_unop + def Opposite.unop + theorem Opposite.unop_eq_iff_eq_op + theorem Opposite.unop_inj_iff + theorem Opposite.unop_injective + theorem Opposite.unop_op + def Opposite 2022-11-20 06:21:21 13b5722 fix(Tactic/Simps): use capital letter for namespace (#647) * Custom simps projections now are declared as `def MyStructure.Simps.myProjection` instead of `def MyStructure.simps.myProjection`. This declaration was already used in the library multiple times, even though it did nothing before. * Use `symm_apply` instead of `symmApply` for lemmas generated by `simps`. * Remove custom `simps` projection for `Subtype`. It did nothing, since coercions expand to `Subtype.val`. (Do we also want to rename the generated lemmas to `foo_val` instead of `foo_coe`?) * Simplify some proofs using definitional eta for structures ESTIMATED CHANGES Modified Mathlib/Data/Subtype.lean - def Subtype.Simps.coe Modified Mathlib/Logic/Equiv/Defs.lean - def Equiv.Simps.symmApply + def Equiv.Simps.symm_apply +/- def Equiv.sigmaEquivProd Modified Mathlib/Tactic/Simps/Basic.lean Modified test/Simps.lean + def AddHomPlus.Simps.apply - def AddHomPlus.simps.apply + def AddHomPlus2.Simps.mul - def AddHomPlus2.simps.mul + def DecoratedEquiv.Simps.apply + def DecoratedEquiv.Simps.symm_apply - def DecoratedEquiv.simps.apply - def DecoratedEquiv.simps.symm_apply + def FaultyUniverses.Equiv.Simps.invFun - def FaultyUniverses.Equiv.simps.invFun + def Foo2.Simps.elim - def Foo2.simps.elim + def FurtherDecoratedEquiv.Simps.apply + def FurtherDecoratedEquiv.Simps.symm_apply - def FurtherDecoratedEquiv.simps.apply - def FurtherDecoratedEquiv.simps.symm_apply + def ManualCoercion.Equiv.Simps.invFun - def ManualCoercion.Equiv.simps.invFun + def ManualInitialize.Equiv.Simps.invFun - def ManualInitialize.Equiv.simps.invFun + def ManualProjectionNames.Equiv.Simps.symm_apply - def ManualProjectionNames.Equiv.simps.symm_apply + def ManualUniverses.Equiv.Simps.invFun - def ManualUniverses.Equiv.simps.invFun + def NewTop.Simps.newElim - def NewTop.simps.newElim + def OneMore.Simps.apply + def OneMore.Simps.symm_apply - def OneMore.simps.apply - def OneMore.simps.symm_apply + def PrefixProjectionNames.Equiv.Simps.symm_apply - def PrefixProjectionNames.Equiv.simps.symm_apply 2022-11-20 00:17:15 4ee6f3d feat: port data.{nat, int}.cast.defs (#641) mathlib3 SHA: bb168510ef455e9280a152e7f31673cabd3d7496 Porting notes for `Mathlib.Data.Nat.Cast.Defs` 1. I have moved `AddMonoidWithOne` and related lemmas from `Mathlib.Algebra.GroupWithZero.Defs` into this file. All but 3 of these were in this file in mathlib3, so this is the correct place. The extra 3 are new lemmas in Mathlib4, and I made a note to this effect. 2. mathport marked some translations as dubious because they used `AddMonoidWithOne` instead of `NatCast` because the latter didn't exist until this PR, so I just fixed them to use `NatCast` and `#align`ed (with no `ₓ`). 3. I need someone (e.g., @gebner) to rewrite the library note about coercions because I don't know enough. 4. I reimplemented `Nat.binCast` from scratch because we don't have `Nat.binaryRec`. The proof of `Nat.binCast_eq` can likely be improved quite a bit. 5. I marked `Nat.cast_bit0` and `Nat.cast_bit1` as deprecated since `bit0` and `bit1` are deprecated. 6. I added an instance of `OfNat R n` for `n : ℕ` when `R` has an `AddMonoidWithOne` instance. I think we want this in order to talk about literals as terms in `R` (e.g., `37 : R`). This instance does not appear in mathlib3 and is new. 7. ~~I kept the (lack of) `simp` attributes from mathlib3 for certain lemmas which were already ported to mathlib4. This caused some breakage which I fixed. I thought it was better to be consistent with the mathlib3 `simp` set.~~ Per Gabriel's suggestion, I have kept these as `simp` lemmas. Porting notes for `Mathlib.Data.Int.Cast.Defs` 1. This file already existed in Mathlib4, but it's contents corresponded to things in mathlib3's `data.int.cast.basic`, so I have moved the previous contents to `Mathlib.Data.Int.Cast.Basic`, hence the reason for the weird diff. 2. I have moved `AddGroupWithOne` and the rest of that material out of `Mathlib.Algebra.GroupWithZero.Defs` so these files are now independent and `Mathlib.Data.Int.Cast.Defs` I think is a faithful and complete translation of the mathlib3 file. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/GroupWithZero/Defs.lean - def Int.cast - theorem Int.cast_negSucc - theorem Int.cast_ofNat - theorem Int.cast_one - theorem Int.cast_zero - def Nat.cast - theorem Nat.cast_add - theorem Nat.cast_ofNat - theorem Nat.cast_one - theorem Nat.cast_succ - theorem Nat.cast_zero Modified Mathlib/Algebra/Ring/Basic.lean Modified Mathlib/Data/Int/Cast.lean Added Mathlib/Data/Int/Cast/Basic.lean + theorem Int.cast_add + theorem Int.cast_neg + theorem Int.cast_sub + theorem Int.cast_subNatNat + theorem Nat.cast_sub Modified Mathlib/Data/Int/Cast/Defs.lean + def Int.cast - theorem Int.cast_add - theorem Int.cast_neg + theorem Int.cast_negSucc + theorem Int.cast_ofNat + theorem Int.cast_one - theorem Int.cast_sub - theorem Int.cast_subNatNat + theorem Int.cast_zero - theorem Nat.cast_sub Added Mathlib/Data/Nat/Cast/Defs.lean + theorem Nat.binCast_eq + theorem Nat.cast_add + theorem Nat.cast_add_one + theorem Nat.cast_bit0 + theorem Nat.cast_bit1 + theorem Nat.cast_ite + theorem Nat.cast_ofNat + theorem Nat.cast_one + theorem Nat.cast_succ + theorem Nat.cast_two + theorem Nat.cast_zero + theorem NeZero.natCast_ne + theorem NeZero.of_neZero_natCast + theorem NeZero.pos_of_neZero_natCast Modified Mathlib/Tactic/NormCast/Tactic.lean Modified Mathlib/Tactic/NormNum/Basic.lean Modified Mathlib/Tactic/NormNum/Core.lean 2022-11-20 00:02:15 bf6af1f chore: split check all files imported CI step (#632) ESTIMATED CHANGES Modified .github/workflows/bors.yml Modified .github/workflows/build.yml Modified .github/workflows/build.yml.in Modified .github/workflows/build_fork.yml 2022-11-19 23:53:23 9964d23 chore: fixing some naming issues in Data/* (#570) ESTIMATED CHANGES Modified Mathlib/Data/Option/Basic.lean + theorem Option.Mem.leftUnique - theorem Option.Mem.left_unique Modified Mathlib/Data/Prod/Basic.lean Modified Mathlib/Data/Quot.lean + theorem Quot.liftOn_mk + theorem Quot.liftOn₂_mk - theorem Quot.lift_on_mk - theorem Quot.lift_on₂_mk + theorem Quotient.hrecOn'_mk'' + theorem Quotient.hrecOn₂'_mk'' - theorem Quotient.hrec_on'_mk'' - theorem Quotient.hrec_on₂'_mk'' + theorem Quotient.liftOn_mk + theorem Quotient.liftOn₂_mk - theorem Quotient.lift_on_mk - theorem Quotient.lift_on₂_mk Modified Mathlib/Data/Sigma/Basic.lean + theorem Prod.fst_comp_toSigma - theorem Prod.fst_comp_to_sigma + theorem Prod.fst_toSigma - theorem Prod.fst_to_sigma + theorem Prod.snd_toSigma - theorem Prod.snd_to_sigma + theorem Prod.toSigma_mk - theorem Prod.to_sigma_mk 2022-11-19 23:29:55 a63164b chore: bump to nightly-2022-11-19 (#658) ESTIMATED CHANGES Modified Mathlib/Data/List/Range.lean - theorem List.rangeAux_range' + theorem List.range_loop_range' Modified lean-toolchain Modified lean_packages/manifest.json 2022-11-19 03:04:14 5c39c43 fix: use new `coerce?` API (#652) https://github.com/leanprover/lean4/pull/1729 introduced a coercion API that is similar to the functions currently implemented by `Mathlib.Tactic.Coe`, so we can now directly use the core functions. Apparently I also changed the `mkCoe` API, which broke the `(↑)` notation. This is also fixed by using the new functions. ESTIMATED CHANGES Modified Mathlib/Tactic/Coe.lean - def Lean.Elab.Term.CoeImpl.mkFunCoe - def Lean.Elab.Term.CoeImpl.mkSortCoe Added test/coe.lean 2022-11-18 10:29:46 6be213c feat: port Algebra.Homology.ComplexShape (#635) (Not the most useful port at this stage. Just wanted to try some easy file.) mathlib SHA : fd47bdf09e90f553519c712378e651975fe8c829 ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Homology/ComplexShape.lean + def ComplexShape.down' + theorem ComplexShape.down'_mk + def ComplexShape.down + theorem ComplexShape.down_mk + def ComplexShape.next + theorem ComplexShape.next_eq' + def ComplexShape.prev + theorem ComplexShape.prev_eq' + def ComplexShape.refl + def ComplexShape.symm + theorem ComplexShape.symm_symm + def ComplexShape.trans + def ComplexShape.up' + def ComplexShape.up + structure ComplexShape 2022-11-18 09:07:04 8722e20 feat: port Order.Monotone (#591) mathlib3 hash: fd47bdf09e90f553519c712378e651975fe8c829 - [x] depends on: #567 - [x] depends on: #560 - [x] depends on: #569 ESTIMATED CHANGES Modified Mathlib/Init/Set.lean Modified Mathlib/Order/Monotone.lean + theorem Antitone.comp_monotoneOn + theorem Antitone.ne_of_lt_of_lt_int + theorem Antitone.ne_of_lt_of_lt_nat + theorem Antitone.prod_map + theorem Antitone.reflect_lt + theorem Antitone.strictAnti_iff_injective + theorem Antitone.strictAnti_of_injective - theorem Antitone.strict_anti_of_injective + theorem AntitoneOn.reflect_lt + theorem Function.const_mono + theorem Function.const_strictMono + theorem Int.exists_strictAnti + theorem Int.exists_strictMono + theorem Int.rel_of_forall_rel_succ_of_le + theorem Int.rel_of_forall_rel_succ_of_lt + theorem List.foldl_monotone + theorem List.foldl_strictMono + theorem List.foldr_monotone + theorem List.foldr_strictMono + theorem Monotone.comp_antitoneOn + theorem Monotone.ne_of_lt_of_lt_int + theorem Monotone.ne_of_lt_of_lt_nat + theorem Monotone.prod_map + theorem Monotone.reflect_lt + theorem Monotone.strictMono_iff_injective + theorem Monotone.strictMono_of_injective - theorem Monotone.strict_mono_of_injective + theorem MonotoneOn.reflect_lt + theorem Nat.exists_strictAnti' + theorem Nat.exists_strictAnti + theorem Nat.exists_strictMono' + theorem Nat.exists_strictMono + theorem Nat.rel_of_forall_rel_succ_of_le + theorem Nat.rel_of_forall_rel_succ_of_le_of_le + theorem Nat.rel_of_forall_rel_succ_of_le_of_lt + theorem Nat.rel_of_forall_rel_succ_of_lt + theorem StrictAnti.cmp_map_eq + theorem StrictAnti.comp_strictMono + theorem StrictAnti.comp_strictMonoOn + theorem StrictAnti.injective + theorem StrictAnti.isMax_of_apply + theorem StrictAnti.isMin_of_apply + theorem StrictAnti.le_iff_le + theorem StrictAnti.lt_iff_lt + theorem StrictAnti.maximal_of_minimal_image + theorem StrictAnti.minimal_of_maximal_image + theorem StrictAnti.prod_map + theorem StrictAntiOn.cmp_map_eq + theorem StrictAntiOn.eq_iff_eq + theorem StrictAntiOn.le_iff_le + theorem StrictAntiOn.lt_iff_lt + theorem StrictMono.cmp_map_eq + theorem StrictMono.comp_strictAnti + theorem StrictMono.comp_strictAntiOn + theorem StrictMono.id_le + theorem StrictMono.injective + theorem StrictMono.isMax_of_apply + theorem StrictMono.isMin_of_apply + theorem StrictMono.le_iff_le + theorem StrictMono.lt_iff_lt + theorem StrictMono.maximal_of_maximal_image + theorem StrictMono.minimal_of_minimal_image + theorem StrictMono.prod_map + theorem StrictMonoOn.cmp_map_eq + theorem StrictMonoOn.eq_iff_eq + theorem StrictMonoOn.le_iff_le + theorem StrictMonoOn.lt_iff_lt + theorem Subtype.mono_coe + theorem Subtype.strictMono_coe + theorem antitoneOn_comp_ofDual_iff + theorem antitoneOn_const + theorem antitoneOn_iff_forall_lt + theorem antitoneOn_toDual_comp_iff + theorem antitoneOn_univ + theorem antitone_comp_ofDual_iff + theorem antitone_int_of_succ_le + theorem antitone_nat_of_succ_le - theorem antitone_on_const - theorem antitone_on_iff_forall_lt + theorem antitone_toDual_comp_iff +/- theorem injective_of_le_imp_le + theorem injective_of_lt_imp_ne + theorem monotoneOn_comp_ofDual_iff + theorem monotoneOn_const + theorem monotoneOn_id + theorem monotoneOn_iff_forall_lt + theorem monotoneOn_toDual_comp_iff + theorem monotoneOn_univ + theorem monotone_comp_ofDual_iff + theorem monotone_fst + theorem monotone_int_of_le_succ + theorem monotone_nat_of_le_succ - theorem monotone_on_const - theorem monotone_on_id - theorem monotone_on_iff_forall_lt + theorem monotone_snd + theorem monotone_toDual_comp_iff + theorem strictAntiOn_comp_ofDual_iff + theorem strictAntiOn_toDual_comp_iff + theorem strictAntiOn_univ + theorem strictAnti_comp_ofDual_iff + theorem strictAnti_int_of_succ_lt + theorem strictAnti_nat_of_succ_lt + theorem strictAnti_of_le_iff_le + theorem strictAnti_toDual_comp_iff + theorem strictMonoOn_comp_ofDual_iff + theorem strictMonoOn_id + theorem strictMonoOn_toDual_comp_iff + theorem strictMonoOn_univ + theorem strictMono_comp_ofDual_iff + theorem strictMono_id + theorem strictMono_int_of_lt_succ + theorem strictMono_nat_of_lt_succ + theorem strictMono_of_le_iff_le + theorem strictMono_toDual_comp_iff - theorem strict_mono_id - theorem strict_mono_on_id 2022-11-18 06:17:18 7e81227 chore: add `pgame_wf_tac` stub (#640) ESTIMATED CHANGES Modified Mathlib/Mathport/Syntax.lean Modified scripts/nolints.json 2022-11-18 04:44:58 454d62c feat: port Order.Compare (#569) mathlib3 hash: fd47bdf09e90f553519c712378e651975fe8c829 - [x] depends on: #568 - [x] depends on: #562 ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Order/Compare.lean + theorem Eq.cmp_eq_eq' + theorem Eq.cmp_eq_eq + theorem LT.lt.cmp_eq_gt + theorem LT.lt.cmp_eq_lt + theorem Ordering.Compares.cmp_eq + theorem Ordering.Compares.eq_eq + theorem Ordering.Compares.eq_gt + theorem Ordering.Compares.eq_lt + theorem Ordering.Compares.inj + theorem Ordering.Compares.le_antisymm + theorem Ordering.Compares.le_total + theorem Ordering.Compares.ne_gt + theorem Ordering.Compares.ne_lt + def Ordering.Compares + theorem Ordering.Compares_eq + theorem Ordering.Compares_gt + theorem Ordering.Compares_lt + theorem Ordering.compares_iff_of_compares_impl + theorem Ordering.compares_swap + theorem Ordering.orElse_eq_lt + theorem Ordering.swap_eq_iff_eq_swap + theorem Ordering.swap_orElse + def cmpLE + theorem cmpLE_eq_cmp + theorem cmpLE_swap + theorem cmpLE_toDual + theorem cmp_LE_of_dual + theorem cmp_compares + theorem cmp_eq_cmp_symm + theorem cmp_eq_eq_iff + theorem cmp_eq_gt_iff + theorem cmp_eq_lt_iff + theorem cmp_ofDual + theorem cmp_self_eq_eq + theorem cmp_swap + theorem cmp_toDual + theorem eq_iff_eq_of_cmp_eq_cmp + theorem le_iff_le_of_cmp_eq_cmp + def linearOrderOfCompares + theorem lt_iff_lt_of_cmp_eq_cmp + theorem ofDual_compares_ofDual + theorem toDual_compares_toDual 2022-11-18 04:23:08 50b8845 chore: add aesop dependency (#636) I would like to experiment next week to see if `aesop` can replace `tidy` in the basic category theory library. (And also just give aesop some exercise.) This PR is just adding it as a dependency, to check nothing is going to go horribly wrong right away. :-) ESTIMATED CHANGES Modified lakefile.lean Modified lean_packages/manifest.json 2022-11-18 04:15:53 e07097c feat: port Order.Max (#567) mathlib3 hash: fd47bdf09e90f553519c712378e651975fe8c829 - [x] depends on: #566 - [x] depends on: #562 ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Order/Max.lean + theorem IsBot.fst + theorem IsBot.mono + theorem IsBot.prod_mk + theorem IsBot.snd + def IsBot + theorem IsMax.fst + theorem IsMax.mono + theorem IsMax.not_lt + theorem IsMax.prod_mk + theorem IsMax.snd + def IsMax + theorem IsMin.fst + theorem IsMin.mono + theorem IsMin.not_lt + theorem IsMin.prod_mk + theorem IsMin.snd + def IsMin + theorem IsTop.fst + theorem IsTop.mono + theorem IsTop.prod_mk + theorem IsTop.snd + def IsTop + theorem NoBotOrder.to_noMinOrder + theorem NoMaxOrder.not_acc + theorem NoMinOrder.not_acc + theorem NoTopOrder.to_noMaxOrder + theorem Prod.is_bot_iff + theorem Prod.is_max_iff + theorem Prod.is_min_iff + theorem Prod.is_top_iff + theorem is_bot_of_dual_iff + theorem is_bot_to_dual_iff + theorem is_max_iff_forall_not_lt + theorem is_max_of_dual_iff + theorem is_max_to_dual_iff + theorem is_min_iff_forall_not_lt + theorem is_min_of_dual_iff + theorem is_min_to_dual_iff + theorem is_top_of_dual_iff + theorem is_top_to_dual_iff + theorem no_bot_order_iff_no_min_order + theorem no_top_order_iff_no_max_order + theorem not_is_bot + theorem not_is_max + theorem not_is_max_iff + theorem not_is_max_of_lt + theorem not_is_min + theorem not_is_min_iff + theorem not_is_min_of_lt + theorem not_is_top 2022-11-18 04:03:42 25fc282 fix: terminationSuffix in `lemma` command (#637) ESTIMATED CHANGES Modified Mathlib/Mathport/Syntax.lean Modified Mathlib/Tactic/Basic.lean + def Mathlib.Tactic.expandLemma Modified lean_packages/manifest.json 2022-11-18 03:49:07 63095f3 feat: port Order.Synonym (#562) mathlib3 hash: fd47bdf09e90f553519c712378e651975fe8c829 - [x] depends on: #556 - [x] depends on: #550 ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Order/Synonym.lean + def Lex + theorem OrderDual.le_toDual + theorem OrderDual.lt_toDual + def OrderDual.ofDual + theorem OrderDual.ofDual_inj + theorem OrderDual.ofDual_le_ofDual + theorem OrderDual.ofDual_lt_ofDual + theorem OrderDual.ofDual_symm_eq + theorem OrderDual.ofDual_toDual + def OrderDual.toDual + theorem OrderDual.toDual_inj + theorem OrderDual.toDual_le + theorem OrderDual.toDual_le_toDual + theorem OrderDual.toDual_lt + theorem OrderDual.toDual_lt_toDual + theorem OrderDual.toDual_ofDual + theorem OrderDual.toDual_symm_eq + def ofLex + theorem ofLex_inj + theorem ofLex_toLex + theorem of_lex_symm_eq + def toLex + theorem toLex_inj + theorem toLex_ofLex + theorem toLex_symm_eq 2022-11-18 03:37:14 bffd150 feat: port Order.RelClasses (#560) mathlib3 hash: fd47bdf09e90f553519c712378e651975fe8c829 - [x] depends on: #556 ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Order/RelClasses.lean + theorem IsAntisymm.swap + theorem IsAsymm.swap + theorem IsIrrefl.swap + theorem IsLinearOrder.swap + theorem IsOrderConnected.neg_trans + theorem IsPartialOrder.swap + theorem IsPreorder.swap + theorem IsRefl.swap + theorem IsStrictOrder.swap + theorem IsStrictTotalOrder.swap + theorem IsTotal.swap + theorem IsTotalPreorder.swap + theorem IsTrans.swap + theorem IsTrichotomous.swap + theorem IsWellFounded.apply + def IsWellFounded.fix + theorem IsWellFounded.fix_eq + theorem IsWellFounded.induction + def IsWellFounded.toWellFoundedRelation + theorem IsWellFounded_iff + def IsWellOrder.toHasWellFounded + def Set.Bounded + def Set.Unbounded + theorem Set.not_bounded_iff + theorem Set.not_unbounded_iff + theorem Set.unbounded_of_isEmpty + theorem Subrelation.isWellFounded + theorem Subsingleton.isWellOrder + theorem WellFounded.asymmetric + theorem WellFoundedGt.apply + def WellFoundedGt.fix + theorem WellFoundedGt.fix_eq + theorem WellFoundedGt.induction + def WellFoundedGt.toWellFoundedRelation + def WellFoundedGt + theorem WellFoundedLt.apply + def WellFoundedLt.fix + theorem WellFoundedLt.fix_eq + theorem WellFoundedLt.induction + def WellFoundedLt.toWellFoundedRelation + def WellFoundedLt + theorem WellFoundedRelation.asymmetric + theorem antisymm' + theorem antisymm_iff + theorem antisymm_of' + theorem antisymm_of + theorem comm + theorem comm_of + theorem empty_relation_apply + theorem eq_empty_relation + theorem eq_or_ssubset_of_subset + theorem extensional_of_trichotomous_of_irrefl + theorem isStrictWeakOrder_of_isOrderConnected + def linearOrderOfSTO + theorem ne_of_irrefl' + theorem ne_of_irrefl + theorem ne_of_not_subset + theorem ne_of_not_superset + theorem ne_of_ssubset + theorem ne_of_ssuperset + theorem not_rel_of_subsingleton + theorem not_ssubset_of_subset + theorem not_subset_of_ssubset + theorem of_eq + def partialOrderOfSO + theorem rel_of_subsingleton + theorem right_iff_left_not_left + theorem right_iff_left_not_left_of + theorem ssubset_asymm + theorem ssubset_iff_subset_ne + theorem ssubset_iff_subset_not_subset + theorem ssubset_irrefl + theorem ssubset_irrfl + theorem ssubset_of_ne_of_subset + theorem ssubset_of_ssubset_of_subset + theorem ssubset_of_subset_not_subset + theorem ssubset_of_subset_of_ne + theorem ssubset_of_subset_of_ssubset + theorem ssubset_or_eq_of_subset + theorem ssubset_trans + theorem subset_antisymm + theorem subset_antisymm_iff + theorem subset_iff_ssubset_or_eq + theorem subset_of_eq + theorem subset_of_ssubset + theorem subset_refl + theorem subset_rfl + theorem subset_trans + theorem superset_antisymm + theorem superset_antisymm_iff + theorem superset_of_eq + theorem trans_trichotomous_left + theorem trans_trichotomous_right + theorem transitive_ge + theorem transitive_gt + theorem transitive_le + theorem transitive_lt + theorem transitive_of_trans + theorem wellFoundedGt_dual_iff + theorem wellFoundedLt_dual_iff 2022-11-18 00:38:13 92ded3b feat: port logic.equiv.defs (#550) mathlib3 sha: 7951ed37deb3b2923a6f47d9bdcb4d69a8703550 ~~Waiting on the release of [nightly-2022-11-17](https://github.com/leanprover/lean4-nightly/releases/tag/nightly-2022-11-17).~~ - [x] depends on: #541 - [x] depends on: #559 ESTIMATED CHANGES Modified Mathlib.lean Deleted Mathlib/Data/Equiv/Basic.lean - theorem Equiv.apply_symm_apply - theorem Equiv.coe_fn_mk - theorem Equiv.inv_fun_as_coe - def Equiv.perm - def Equiv.refl - theorem Equiv.self_comp_symm - def Equiv.symm - theorem Equiv.symm_apply_apply - theorem Equiv.symm_comp_self - def Equiv.trans - structure Equiv Modified Mathlib/Data/Equiv/Functor.lean Modified Mathlib/Data/Quot.lean Added Mathlib/Logic/Equiv/Defs.lean + theorem Equiv.Perm.coe_subsingleton + theorem Equiv.Perm.ext + theorem Equiv.Perm.ext_iff + def Equiv.Perm.sigmaCongrRight + theorem Equiv.Perm.sigmaCongrRight_refl + theorem Equiv.Perm.sigmaCongrRight_symm + theorem Equiv.Perm.sigmaCongrRight_trans + theorem Equiv.Perm.subsingleton_eq_refl + def Equiv.Perm + def Equiv.Simps.symmApply + theorem Equiv.apply_eq_iff_eq + theorem Equiv.apply_eq_iff_eq_symm_apply + theorem Equiv.apply_symm_apply + def Equiv.arrowCongr' + theorem Equiv.arrowCongr'_refl + theorem Equiv.arrowCongr'_symm + theorem Equiv.arrowCongr'_trans + def Equiv.arrowCongr + theorem Equiv.arrowCongr_comp + theorem Equiv.arrowCongr_refl + theorem Equiv.arrowCongr_symm + theorem Equiv.arrowCongr_trans + def Equiv.arrowPUnitEquivPUnit + def Equiv.arrowPUnitOfIsEmpty + theorem Equiv.bijective_comp + theorem Equiv.cast_apply + theorem Equiv.cast_eq_iff_heq + theorem Equiv.cast_refl + theorem Equiv.cast_symm + theorem Equiv.cast_trans + theorem Equiv.coe_fn_injective + theorem Equiv.coe_fn_symm_mk + theorem Equiv.coe_refl + theorem Equiv.coe_trans + theorem Equiv.comp_bijective + theorem Equiv.comp_injective + theorem Equiv.comp_surjective + theorem Equiv.comp_symm_eq + def Equiv.conj + theorem Equiv.conj_comp + theorem Equiv.conj_refl + theorem Equiv.conj_symm + theorem Equiv.conj_trans + def Equiv.emptyArrowEquivPUnit + theorem Equiv.eq_comp_symm + theorem Equiv.eq_symm_apply + theorem Equiv.eq_symm_comp + def Equiv.equivCongr + theorem Equiv.equivCongr_apply_apply + theorem Equiv.equivCongr_refl + theorem Equiv.equivCongr_refl_left + theorem Equiv.equivCongr_refl_right + theorem Equiv.equivCongr_symm + theorem Equiv.equivCongr_trans + def Equiv.equivEmpty + def Equiv.equivEmptyEquiv + def Equiv.equivOfIsEmpty + def Equiv.equivOfUnique + def Equiv.equivPEmpty + def Equiv.equivPUnit + theorem Equiv.ext + theorem Equiv.ext_iff + def Equiv.falseArrowEquivPUnit + def Equiv.funUnique + theorem Equiv.injective_comp + theorem Equiv.inv_fun_as_coe + theorem Equiv.left_inverse_symm + theorem Equiv.nonempty_congr + def Equiv.ofIff + def Equiv.pemptyArrowEquivPUnit + def Equiv.permCongr + theorem Equiv.permCongr_apply + theorem Equiv.permCongr_def + theorem Equiv.permCongr_refl + theorem Equiv.permCongr_symm + theorem Equiv.permCongr_symm_apply + theorem Equiv.permCongr_trans + def Equiv.piSubsingleton + def Equiv.propEquivPEmpty + def Equiv.propEquivPUnit + def Equiv.psigmaCongrRight + theorem Equiv.psigmaCongrRight_refl + theorem Equiv.psigmaCongrRight_symm + theorem Equiv.psigmaCongrRight_trans + def Equiv.psigmaEquivSigma + def Equiv.psigmaEquivSigmaPLift + def Equiv.psigmaEquivSubtype + def Equiv.punitArrowEquiv + def Equiv.punitEquivPUnit + theorem Equiv.refl_apply + theorem Equiv.refl_symm + theorem Equiv.refl_trans + theorem Equiv.right_inverse_symm + theorem Equiv.self_comp_symm + theorem Equiv.self_trans_symm + def Equiv.sigmaAssoc + def Equiv.sigmaCongr + def Equiv.sigmaCongrLeft' + def Equiv.sigmaCongrLeft + def Equiv.sigmaCongrRight + theorem Equiv.sigmaCongrRight_refl + theorem Equiv.sigmaCongrRight_symm + theorem Equiv.sigmaCongrRight_trans + def Equiv.sigmaEquivProd + def Equiv.sigmaEquivProdOfEquiv + def Equiv.sigmaPLiftEquivSubtype + def Equiv.sigmaULiftPLiftEquivSubtype + theorem Equiv.subsingleton_congr + theorem Equiv.surjective_comp + theorem Equiv.symm_apply_apply + theorem Equiv.symm_apply_eq + theorem Equiv.symm_comp_eq + theorem Equiv.symm_comp_self + theorem Equiv.symm_symm + theorem Equiv.symm_symm_apply + theorem Equiv.symm_trans_apply + theorem Equiv.symm_trans_self + theorem Equiv.trans_apply + theorem Equiv.trans_assoc + theorem Equiv.trans_refl + def Equiv.trueArrowEquiv + structure Equiv + theorem Quot.congr_mk + theorem Quotient.congr_mk Modified Mathlib/Logic/Unique.lean +/- def uniqueProp Modified test/Simps.lean 2022-11-18 00:25:34 04e42de feat: port data.num.basic (#607) Mathlib3 SHA: aab56fd783b265168f660d6b46709961153c4c20 Notes: 1. This is the first file I've ported, so I'm sure I've made some errors somewhere; be on the lookout! 2. The `deriving has_reflect` instances have been omitted because the corresponding class `Lean.ToExpr` has no default implementation currently, and these can safely be omitted for now. 3. `castPosNum` (and a few friends nearby) are marked as deprecated because it uses the deprecated `bit0` and `bit1` in its implementation. 4. `Num.ofNat'` needed to be redefined from scratch because there is no corresponding declaration for `nat.binary_rec` in Lean 4. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Data/Num/Basic.lean + def Num.bit + def Num.cmp + def Num.div2 + def Num.div + def Num.gcd + def Num.gcdAux + def Num.mod + def Num.natSize + def Num.ofNat' + def Num.ofZNum' + def Num.ofZNum + def Num.ppred + def Num.pred + def Num.psub + def Num.size + def Num.sub' + def Num.succ' + def Num.succ + def Num.toZNum + def Num.toZNumNeg + inductive Num + def PosNum.bit + def PosNum.cmp + def PosNum.div' + def PosNum.divMod + def PosNum.divModAux + def PosNum.isOne + def PosNum.mod' + def PosNum.natSize + def PosNum.ofNat + def PosNum.ofNatSucc + def PosNum.ofZNum' + def PosNum.ofZNum + def PosNum.pred' + def PosNum.pred + def PosNum.size + def PosNum.sub' + def PosNum.succ + inductive PosNum + def ZNum.abs + def ZNum.cmp + def ZNum.div + def ZNum.gcd + def ZNum.mod + def ZNum.ofInt' + def ZNum.pred + def ZNum.succ + def ZNum.zNeg + inductive ZNum + def castNum + def castPosNum + def castZNum 2022-11-17 23:48:41 56284fa feat: make to_additive handle noncomputable properly (#625) ESTIMATED CHANGES Modified Mathlib/Tactic/ToAdditive.lean Modified test/toAdditive.lean + def Test.Foo.foo' 2022-11-17 18:45:53 46129a8 feat: port data.char (#609) mathlib3 SHA: aab56fd783b265168f660d6b46709961153c4c20 Note: This file already existed in Mathlib4, so the material from mathlib3 was just added, but didn't replace the existing results. ESTIMATED CHANGES Modified Mathlib/Data/Char.lean + theorem Char.ofNat_toNat 2022-11-17 14:37:48 cfff74d feat: improve `ToAdditive.guessName` to work with capitalisation (#579) This is a suggestion for `to_additive` to parse names in the new naming conventions. It does keep capitalised abbreviations like "LE" together but it would not split a single capitalised char off. E.g. "OneCommMonoidLEHMul_one_lt_Conj₂Pow" becomes "ZeroAddCommMonoidLEHAdd_pos_Conj₂Nsmul" ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Defs.lean Modified Mathlib/Algebra/PEmptyInstances.lean Modified Mathlib/Init/ZeroOne.lean Modified Mathlib/Tactic/ToAdditive.lean - def ToAdditive.addCommPrefix + def ToAdditive.applyNameDict + def ToAdditive.capitalizeFirstLike + def ToAdditive.capitalizeLike + def ToAdditive.fixAbbreviation Modified test/toAdditive.lean + def Test.checkGuessName 2022-11-17 13:19:30 e872bdb feat: port logic.pairwise (#622) mathlib3 sha: 70fd9563a21e7b963887c9360bd29b2393e6225a Added an extra align because mathport got it wrong in the ported file. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Logic/Function/Basic.lean Added Mathlib/Logic/Pairwise.lean + theorem Function.injective_iff_pairwise_ne + theorem Pairwise.mono + theorem Pairwise.set_pairwise + def Pairwise + theorem Reflexive.set_pairwise_iff + theorem Set.Pairwise.imp + theorem Set.Pairwise.imp_on + theorem Set.Pairwise.on_injective + theorem Set.pairwise_of_forall 2022-11-17 12:59:40 df1708e chore: bump to nightly 2022-11-17 (#624) ESTIMATED CHANGES Modified Mathlib/Data/UnionFind.lean Modified Mathlib/Tactic/LibrarySearch.lean +/- def Mathlib.Tactic.LibrarySearch.librarySearch Modified Mathlib/Tactic/NormNum/Core.lean Modified Mathlib/Tactic/Positivity/Core.lean Modified Mathlib/Tactic/Relation/Rfl.lean Modified Mathlib/Tactic/Relation/Symm.lean Modified Mathlib/Tactic/Relation/Trans.lean Modified Mathlib/Util/Simp.lean +/- def Lean.Meta.DiscrTree.getElements Modified lean-toolchain Modified lean_packages/manifest.json 2022-11-17 12:36:27 5d13813 feat: port Data.PNat.Defs (#604) First attempt - I hope it's going in the right direction ported from [70fd9563a21e7b963887c9360bd29b2393e6225a](https://github.com/leanprover-community/mathlib/commit/70fd9563a21e7b963887c9360bd29b2393e6225a) (technically from an earlier commit, but it hasn't changed since) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Data/PNat/Defs.lean + theorem Nat.natPred_succPNat + def Nat.succPNat + theorem Nat.succPNat_coe + def Nat.toPNat' + theorem Nat.toPNat'_coe + def Nat.toPNat + theorem PNat.coe_eq_one_iff + theorem PNat.coe_injective + theorem PNat.coe_le_coe + theorem PNat.coe_lt_coe + theorem PNat.coe_toPNat' + def PNat.div + def PNat.divExact + theorem PNat.div_coe + theorem PNat.eq + theorem PNat.mk_coe + theorem PNat.mk_le_mk + theorem PNat.mk_lt_mk + theorem PNat.mk_one + def PNat.mod + def PNat.modDiv + def PNat.modDivAux + theorem PNat.mod_coe + def PNat.natPred + theorem PNat.natPred_eq_pred + theorem PNat.ne_zero + theorem PNat.not_lt_one + theorem PNat.one_coe + theorem PNat.one_le + theorem PNat.pos + def PNat.strongInductionOn + theorem PNat.succPNat_natPred + theorem PNat.toPNat'_coe + def PNat 2022-11-17 11:52:36 a1db010 feat: `infer_auto_param` tactic (#621) It is merged with `infer_opt_param` to one tactic `infer_param` that does both optParam and autoParam. ESTIMATED CHANGES Modified Mathlib/Mathport/Syntax.lean Modified Mathlib/Tactic/InferParam.lean Modified test/InferParam.lean + theorem InferParamTest.zero_le_add' +/- theorem InferParamTest.zero_le_add 2022-11-17 11:19:28 8b52fa0 feat: port Algebra.PEmptyInstances (#615) Synchronized with commit 71dbd401af609bb5065d060b8f221d2a31e2b8d7 ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/PEmptyInstances.lean 2022-11-17 11:12:50 a72f025 feat: synchronize with mathlib3 #17477 (#577) mathlib3: https://github.com/leanprover-community/mathlib/pull/17477 ESTIMATED CHANGES Modified Mathlib/Algebra/GroupWithZero/Defs.lean Modified Mathlib/Algebra/NeZero.lean + theorem NeZero.ne' + theorem four_ne_zero' + theorem four_ne_zero + theorem ne_zero_of_eq_one + theorem one_ne_zero' + theorem one_ne_zero + theorem three_ne_zero' + theorem three_ne_zero + theorem two_ne_zero' + theorem two_ne_zero + theorem zero_ne_one' + theorem zero_ne_one 2022-11-17 07:20:57 596c401 feat: `scoped[NS]` command (was: `localized`) (#619) This just moves the `localized` command from `Mathlib.Mathport.Syntax` into its own file and adds some documentation. Also renames `localized` to `scoped` per the [Zulip discussion](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/porting.20.60localized.60/near/310546999). ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Mathport/Syntax.lean Added Mathlib/Tactic/ScopedNS.lean 2022-11-17 07:14:33 bf8af5f chore: cleanup for mathport update (#620) * `add_decl_doc` already exists in core (this declaration was just shadowing it) * `setup_tactic_parser` is not planned for porting; the nearest equivalent is nothing at all * `mk_simp_attribute` can mostly be aligned to `register_simp_attr`, and the remaining part (the `:= ids,*`) can't be supported at all and will give a suitable port message in mathport * `std_next` alignment consistently gives a stack overflow when porting on my machine; I think this is a recent regression (possibly leanprover-community/mathport#192?) but this is a quick fix since this function doesn't matter too much. ESTIMATED CHANGES Modified Mathlib/Init/Align.lean Modified Mathlib/Mathport/Syntax.lean 2022-11-17 05:45:39 3d0ca44 feat: `linear_combination` tactic (#605) I made some opinionated changes in this reimplementation: * The default behavior has been changed to call `ring1` as the normalization tactic instead of `ring_nf`. In particular, it neither normalizes in atoms, nor does it produce subgoals (it is a finishing tactic). You can use `(norm := skip)` to do the equivalent of `{normalize := ff}`, and `(norm := ring_nf)` to use it nonterminally. * The `linear_combination2` tactic produces two subgoals instead of one, showing that the weighted sums of the LHSs adds up to the LHS of the goal and similarly for the RHSs. Also useful to this end is the `<- h` operator (reappropriating the `<- e` term syntax new in lean 4), which reverses an equation, making it contribute its LHS to the RHS and vice versa. Also you can now do constant additions `h + x` which are necessary to make the LHS and RHS both line up. This makes it usable even on semirings. cc: @robertylewis @hrmacbeth ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Lean/Expr/Basic.lean + def Lean.Expr.toSyntax Modified Mathlib/Mathport/Syntax.lean Added Mathlib/Tactic/LinearCombination.lean + structure Mathlib.Tactic.LinearCombination.Config + theorem Mathlib.Tactic.LinearCombination.add_pf + theorem Mathlib.Tactic.LinearCombination.c_add_pf + theorem Mathlib.Tactic.LinearCombination.c_div_pf + theorem Mathlib.Tactic.LinearCombination.c_mul_pf + theorem Mathlib.Tactic.LinearCombination.c_sub_pf + theorem Mathlib.Tactic.LinearCombination.div_pf + def Mathlib.Tactic.LinearCombination.elabLinearCombination + theorem Mathlib.Tactic.LinearCombination.eq_of_add + theorem Mathlib.Tactic.LinearCombination.eq_trans₃ + theorem Mathlib.Tactic.LinearCombination.inv_pf + theorem Mathlib.Tactic.LinearCombination.mul_pf + theorem Mathlib.Tactic.LinearCombination.neg_pf + theorem Mathlib.Tactic.LinearCombination.pf_add_c + theorem Mathlib.Tactic.LinearCombination.pf_div_c + theorem Mathlib.Tactic.LinearCombination.pf_mul_c + theorem Mathlib.Tactic.LinearCombination.pf_sub_c + theorem Mathlib.Tactic.LinearCombination.sub_pf Added test/linear_combination.lean 2022-11-17 03:31:29 1049885 feat: `positivity` tactic (#578) * [x] depends on #574 Implements the `positivity` tactic core, plus several of the `positivity` extensions. Most of the remaining extensions are blocked on theory files. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/CovariantAndContravariant.lean Modified Mathlib/Mathport/Syntax.lean Added Mathlib/Tactic/Positivity.lean Added Mathlib/Tactic/Positivity/Basic.lean + def Mathlib.Meta.Positivity.evalAdd + def Mathlib.Meta.Positivity.evalMul + def Mathlib.Meta.Positivity.evalPow + def Mathlib.Meta.Positivity.evalPowZero + theorem add_nonneg + theorem add_pos + theorem lt_add_of_le_of_pos + theorem lt_add_of_pos_of_le + theorem mul_ne_zero + theorem mul_ne_zero_of_ne_zero_of_pos + theorem mul_ne_zero_of_pos_of_ne_zero + theorem mul_nonneg + theorem mul_nonneg_of_nonneg_of_pos + theorem mul_nonneg_of_pos_of_nonneg + theorem mul_pos + theorem pow_bit0_nonneg + theorem pow_ne_zero + theorem pow_nonneg + theorem pow_pos + theorem pow_zero_pos Added Mathlib/Tactic/Positivity/Core.lean + def Mathlib.Meta.Positivity.Meta.Positivity.positivity + structure Mathlib.Meta.Positivity.PositivityExt + def Mathlib.Meta.Positivity.Strictness.toString + inductive Mathlib.Meta.Positivity.Strictness + def Mathlib.Meta.Positivity.catchNone + def Mathlib.Meta.Positivity.compareHyp + def Mathlib.Meta.Positivity.compareHypEq + def Mathlib.Meta.Positivity.compareHypLE + def Mathlib.Meta.Positivity.compareHypLT + def Mathlib.Meta.Positivity.core + theorem Mathlib.Meta.Positivity.lt_of_le_of_ne' + def Mathlib.Meta.Positivity.mkPositivityExt + theorem Mathlib.Meta.Positivity.nonneg_of_isNat + def Mathlib.Meta.Positivity.normNumPositivity + theorem Mathlib.Meta.Positivity.nz_of_isNegNat + def Mathlib.Meta.Positivity.orElse + theorem Mathlib.Meta.Positivity.pos_of_isNat + def Mathlib.Meta.Positivity.positivityCanon + def Mathlib.Meta.Positivity.throwNone + theorem ne_of_ne_of_eq' + theorem zero_le Modified scripts/nolints.json Added test/positivity.lean 2022-11-17 02:58:55 8badb04 feat: use `ring_nf` on `ring1` error message (#610) Fixes the issue at https://github.com/leanprover-community/mathlib4/pull/605#issuecomment-1315580574. ESTIMATED CHANGES Modified Mathlib/Tactic/Abel.lean Modified Mathlib/Tactic/Ring/Basic.lean Modified Mathlib/Tactic/Ring/RingNF.lean 2022-11-17 00:10:12 43bcd67 doc: update by_contra' docs (#596) * `false` -> `False` (we're talking about the Prop, not the Bool). * `begin .. end` -> `by ...` * Remove obsolete comment about `push_neg` not being implemented. (It landed in #344). ESTIMATED CHANGES Modified Mathlib/Tactic/ByContra.lean 2022-11-16 23:26:37 f054774 chore: rename Set.mem -> Set.Mem (#594) ESTIMATED CHANGES Modified Mathlib/Init/Set.lean Modified scripts/nolints.json 2022-11-16 23:18:51 99333e8 feat: port Logic.Relation (#565) mathlib3 sha: 5ca6e9d2bb25feeebdefe9bd9de163897bdecd05 Relatively straightforward. Depends on ~~#559 (`EqvGen`)~~ and ~~#561 (`mk-iffs` attribute)~~ ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Init/Logic.lean + theorem Equivalence.reflexive + theorem Equivalence.symmetric + theorem Equivalence.transitive Added Mathlib/Logic/Relation.lean + theorem Acc.TransGen + theorem Acc.of_downward_closed + theorem Acc.of_fibration + theorem Equivalence.comap + theorem Equivalence.eqvGen_eq + theorem Equivalence.eqvGen_iff + theorem EqvGen.mono + theorem IsRefl.reflexive + theorem Reflexive.comap + theorem Reflexive.ne_imp_iff + theorem Reflexive.rel_of_ne_imp + def Relation.Comp + def Relation.Fibration + def Relation.Join + theorem Relation.ReflGen.mono + theorem Relation.ReflGen.to_reflTransGen + inductive Relation.ReflGen + theorem Relation.ReflTransGen.cases_head + theorem Relation.ReflTransGen.cases_head_iff + theorem Relation.ReflTransGen.cases_tail + theorem Relation.ReflTransGen.head + theorem Relation.ReflTransGen.head_induction_on + theorem Relation.ReflTransGen.lift' + theorem Relation.ReflTransGen.lift + theorem Relation.ReflTransGen.mono + theorem Relation.ReflTransGen.single + theorem Relation.ReflTransGen.swap + theorem Relation.ReflTransGen.symmetric + theorem Relation.ReflTransGen.total_of_right_unique + theorem Relation.ReflTransGen.trans + theorem Relation.ReflTransGen.trans_induction_on + inductive Relation.ReflTransGen + theorem Relation.TransGen.closed + theorem Relation.TransGen.head' + theorem Relation.TransGen.head'_iff + theorem Relation.TransGen.head + theorem Relation.TransGen.head_induction_on + theorem Relation.TransGen.lift' + theorem Relation.TransGen.lift + theorem Relation.TransGen.mono + theorem Relation.TransGen.swap + theorem Relation.TransGen.tail' + theorem Relation.TransGen.tail'_iff + theorem Relation.TransGen.to_reflTransGen + theorem Relation.TransGen.trans + theorem Relation.TransGen.trans_induction_on + theorem Relation.TransGen.trans_left + theorem Relation.TransGen.trans_right + inductive Relation.TransGen + theorem Relation.church_rosser + theorem Relation.comp_assoc + theorem Relation.comp_eq + theorem Relation.comp_iff + theorem Relation.eq_comp + theorem Relation.equivalence_join + theorem Relation.equivalence_join_reflTransGen + theorem Relation.flip_comp + theorem Relation.iff_comp + theorem Relation.join_of_equivalence + theorem Relation.join_of_single + theorem Relation.reflTransGen_closed + theorem Relation.reflTransGen_eq_self + theorem Relation.reflTransGen_iff_eq + theorem Relation.reflTransGen_iff_eq_or_transGen + theorem Relation.reflTransGen_of_equivalence + theorem Relation.reflTransGen_of_transitive_reflexive + theorem Relation.reflTransGen_swap + theorem Relation.refl_trans_gen_idem + theorem Relation.reflexive_join + theorem Relation.reflexive_reflTransGen + theorem Relation.symmetric_join + theorem Relation.transGen_eq_self + theorem Relation.transGen_idem + theorem Relation.transGen_swap + theorem Relation.transitive_join + theorem Relation.transitive_reflTransGen + theorem Relation.transitive_transGen + theorem Symmetric.comap + theorem Symmetric.flip_eq + theorem Symmetric.swap_eq + theorem Transitive.comap + theorem WellFounded.transGen + theorem acc_transGen_iff + theorem flip_eq_iff + theorem reflexive_ne_imp_iff + theorem swap_eq_iff 2022-11-16 12:26:35 d40db2a doc (Tactic/MkIffOfInductiveProp): change example to conform to lean … (#614) …4 naming conventions ESTIMATED CHANGES Modified Mathlib/Tactic/MkIffOfInductiveProp.lean 2022-11-15 22:02:21 28bde4b feat: refactoring RingNF, `ring1_nf` tactic (#601) The `ring1_nf` tactic acts like `ring1` in that it expects the goal to be an equality and does not produce subgoals, but it will recursively simplify inside atoms like `ring_nf` does in recursive mode. ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Defs.lean Modified Mathlib/Tactic/Ring/Basic.lean + def Mathlib.Tactic.Ring.proveEq Modified Mathlib/Tactic/Ring/RingNF.lean - inductive Mathlib.Tactic.Ring.RingMode - structure Mathlib.Tactic.Ring.RingNF.Config - theorem Mathlib.Tactic.Ring.add_assoc_rev - theorem Mathlib.Tactic.Ring.add_neg - def Mathlib.Tactic.Ring.elabRingNFConv - theorem Mathlib.Tactic.Ring.int_rawCast_1 - theorem Mathlib.Tactic.Ring.int_rawCast_2 - theorem Mathlib.Tactic.Ring.mul_assoc_rev - theorem Mathlib.Tactic.Ring.mul_neg - theorem Mathlib.Tactic.Ring.nat_rawCast_0 - theorem Mathlib.Tactic.Ring.nat_rawCast_1 - theorem Mathlib.Tactic.Ring.nat_rawCast_2 - def Mathlib.Tactic.Ring.ringNFLocalDecl - def Mathlib.Tactic.Ring.ringNFTarget + structure Mathlib.Tactic.RingNF.Config + structure Mathlib.Tactic.RingNF.Context + inductive Mathlib.Tactic.RingNF.RingMode + theorem Mathlib.Tactic.RingNF.add_assoc_rev + theorem Mathlib.Tactic.RingNF.add_neg + def Mathlib.Tactic.RingNF.elabRingNFConv + theorem Mathlib.Tactic.RingNF.int_rawCast_1 + theorem Mathlib.Tactic.RingNF.int_rawCast_2 + theorem Mathlib.Tactic.RingNF.mul_assoc_rev + theorem Mathlib.Tactic.RingNF.mul_neg + theorem Mathlib.Tactic.RingNF.nat_rawCast_0 + theorem Mathlib.Tactic.RingNF.nat_rawCast_1 + theorem Mathlib.Tactic.RingNF.nat_rawCast_2 + def Mathlib.Tactic.RingNF.rewrite + def Mathlib.Tactic.RingNF.ringNFLocalDecl + def Mathlib.Tactic.RingNF.ringNFTarget 2022-11-15 08:49:44 cf221b5 chore: remove obsolete CommandQuote (#602) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Mathport/Syntax.lean Deleted Mathlib/Tactic/CommandQuote.lean - def Lean.Elab.Term.elabCommandQuot - def command.quot Modified scripts/style-exceptions.txt 2022-11-15 07:22:24 5e7eb7c chore: bump std (#603) Let's try out the new simp lhs linter. ESTIMATED CHANGES Modified Mathlib/Data/Quot.lean Modified Mathlib/Logic/Function/Basic.lean Modified lean_packages/manifest.json 2022-11-14 23:06:13 4d10f38 feat: add doc strings in alias command (#598) Follows the mathlib3 version: https://github.com/leanprover-community/mathlib/blob/1158f6d88df46d30c657ffce6bfdb9e9aceb4955/src/tactic/alias.lean#L85 ESTIMATED CHANGES Modified Mathlib/Tactic/Alias.lean + def Tactic.Alias.Target.toName + def Tactic.Alias.Target.toString + inductive Tactic.Alias.Target +/- def Tactic.Alias.aliasIff Modified test/Alias.lean 2022-11-14 20:37:34 3055f90 feat: `abel_nf`, `abel` tactic (#555) This is basically a copy-paste job from `ring_nf`. It adds the analogous things for `abel`: * `abel1` solves abelian group equalities * `abel_nf` rewrites abelian group equalities in hyps or target to a normal form, including recursively inside atoms * `abel_nf` is also a conv tactic that does the same thing * `abel` calls `abel1` and then `abel_nf` with a trace message * `abel` is also a conv tactic that solves equalities by rewriting them to `True` ESTIMATED CHANGES Modified Mathlib/Tactic/Abel.lean + inductive Mathlib.Tactic.Abel.AbelMode + structure Mathlib.Tactic.Abel.AbelNF.Config + def Mathlib.Tactic.Abel.Context.app + def Mathlib.Tactic.Abel.Context.iapp + def Mathlib.Tactic.Abel.Context.intToExpr + def Mathlib.Tactic.Abel.Context.mkApp + def Mathlib.Tactic.Abel.Context.mkTerm + structure Mathlib.Tactic.Abel.Context + def Mathlib.Tactic.Abel.NormalExpr.e + def Mathlib.Tactic.Abel.NormalExpr.isAtom + def Mathlib.Tactic.Abel.NormalExpr.term' + def Mathlib.Tactic.Abel.NormalExpr.zero' + inductive Mathlib.Tactic.Abel.NormalExpr + def Mathlib.Tactic.Abel.abelNFLocalDecl + def Mathlib.Tactic.Abel.abelNFTarget + def Mathlib.Tactic.Abel.add_g + theorem Mathlib.Tactic.Abel.const_add_term + theorem Mathlib.Tactic.Abel.const_add_termg + def Mathlib.Tactic.Abel.elabAbelNFConv + def Mathlib.Tactic.Abel.evalAtom + def Mathlib.Tactic.Abel.evalNeg + def Mathlib.Tactic.Abel.evalSMul' + def Mathlib.Tactic.Abel.evalSMul + def Mathlib.Tactic.Abel.mkContext + theorem Mathlib.Tactic.Abel.one_zsmul + def Mathlib.Tactic.Abel.smul + def Mathlib.Tactic.Abel.smulg + theorem Mathlib.Tactic.Abel.subst_into_add + theorem Mathlib.Tactic.Abel.subst_into_addg + theorem Mathlib.Tactic.Abel.subst_into_negg + theorem Mathlib.Tactic.Abel.subst_into_smul + theorem Mathlib.Tactic.Abel.subst_into_smul_upcast + theorem Mathlib.Tactic.Abel.subst_into_smulg + def Mathlib.Tactic.Abel.term + theorem Mathlib.Tactic.Abel.term_add_const + theorem Mathlib.Tactic.Abel.term_add_constg + theorem Mathlib.Tactic.Abel.term_add_term + theorem Mathlib.Tactic.Abel.term_add_termg + theorem Mathlib.Tactic.Abel.term_atom + theorem Mathlib.Tactic.Abel.term_atomg + theorem Mathlib.Tactic.Abel.term_eq + theorem Mathlib.Tactic.Abel.term_neg + theorem Mathlib.Tactic.Abel.term_smul + theorem Mathlib.Tactic.Abel.term_smulg + def Mathlib.Tactic.Abel.termg + theorem Mathlib.Tactic.Abel.termg_eq + theorem Mathlib.Tactic.Abel.unfold_smul + theorem Mathlib.Tactic.Abel.unfold_smulg + theorem Mathlib.Tactic.Abel.unfold_sub + theorem Mathlib.Tactic.Abel.unfold_zsmul + theorem Mathlib.Tactic.Abel.zero_smul + theorem Mathlib.Tactic.Abel.zero_smulg + theorem Mathlib.Tactic.Abel.zero_term + theorem Mathlib.Tactic.Abel.zero_termg + theorem Mathlib.Tactic.Abel.zsmul_zero - def Tactic.Abel.Context.app - def Tactic.Abel.Context.iapp - def Tactic.Abel.Context.intToExpr - def Tactic.Abel.Context.mkApp - def Tactic.Abel.Context.mkTerm - structure Tactic.Abel.Context - def Tactic.Abel.NormalExpr.e - def Tactic.Abel.NormalExpr.term' - def Tactic.Abel.NormalExpr.zero' - inductive Tactic.Abel.NormalExpr - def Tactic.Abel.add_g - theorem Tactic.Abel.const_add_term - theorem Tactic.Abel.const_add_termg - def Tactic.Abel.eval_atom - def Tactic.Abel.eval_neg - def Tactic.Abel.eval_smul' - def Tactic.Abel.eval_smul - def Tactic.Abel.mkContext - def Tactic.Abel.smul - def Tactic.Abel.smulg - theorem Tactic.Abel.subst_into_add - theorem Tactic.Abel.subst_into_addg - theorem Tactic.Abel.subst_into_negg - theorem Tactic.Abel.subst_into_smul - theorem Tactic.Abel.subst_into_smul_upcast - theorem Tactic.Abel.subst_into_smulg - def Tactic.Abel.term - theorem Tactic.Abel.term_add_const - theorem Tactic.Abel.term_add_constg - theorem Tactic.Abel.term_add_term - theorem Tactic.Abel.term_add_termg - theorem Tactic.Abel.term_atom - theorem Tactic.Abel.term_atomg - theorem Tactic.Abel.term_neg - theorem Tactic.Abel.term_smul - theorem Tactic.Abel.term_smulg - def Tactic.Abel.termg - theorem Tactic.Abel.unfold_smul - theorem Tactic.Abel.unfold_smulg - theorem Tactic.Abel.unfold_sub - theorem Tactic.Abel.unfold_zsmul - theorem Tactic.Abel.zero_smul - theorem Tactic.Abel.zero_smulg - theorem Tactic.Abel.zero_term - theorem Tactic.Abel.zero_termg - def Tactic.abel1Impl Modified test/abel.lean 2022-11-14 20:10:53 ee8a4ec chore: update deps 11-14 (#597) ESTIMATED CHANGES Modified lean-toolchain Modified lean_packages/manifest.json 2022-11-14 11:36:50 0e3a542 feat: port Order.Basic (#556) `min` and `max` defaults are now the same between lean3 and lean4, so porting proofs in the future should be easier. ESTIMATED CHANGES Modified Mathlib/Init/Core.lean Modified Mathlib/Order/Basic.lean + def AsLinearOrder +/- theorem Eq.not_gt +/- theorem Eq.not_lt + theorem Function.const_le_const + theorem Function.const_lt_const +/- theorem LE.le.le_iff_eq +/- theorem LE.le.le_or_le +/- theorem LE.le.le_or_lt +/- theorem LE.le.lt_iff_ne +/- theorem LE.le.lt_or_le +/- theorem LT.lt.lt_or_lt +/- theorem LT.lt.ne' + def LinearOrder.lift' +/- def LinearOrder.lift + theorem LinearOrder.toPartialOrder_injective - theorem LinearOrder.to_partial_order_injective - theorem NE.le_iff_lt - theorem NE.lt_of_le' - theorem NE.lt_of_le + theorem Ne.le_iff_lt + theorem Ne.lt_of_le' + theorem Ne.lt_of_le + theorem Ne.lt_or_lt + theorem Ne.not_le_or_not_le + def Order.Preimage - def Order.preimage + theorem OrderDual.Preorder.dual_dual + theorem OrderDual.linearOrder.dual_dual + theorem OrderDual.partialOrder.dual_dual + def OrderDual + theorem PUnit.max_eq + theorem PUnit.min_eq + theorem PUnit.not_lt +/- def PartialOrder.lift + theorem PartialOrder.toPreorder_injective - theorem PartialOrder.to_preorder_injective +/- theorem Pi.compl_apply +/- theorem Pi.compl_def +/- theorem Pi.le_def +/- theorem Pi.lt_def + theorem Pi.sdiff_apply + theorem Pi.sdiff_def +/- def Preorder.lift + theorem Preorder.toLE_injective - theorem Preorder.to_le_injective +/- theorem Prod.le_def +/- theorem Prod.lt_iff +/- theorem Prod.mk_le_mk +/- theorem Prod.mk_le_mk_iff_left +/- theorem Prod.mk_le_mk_iff_right +/- theorem Prod.mk_lt_mk +/- theorem Prod.mk_lt_mk_iff_left +/- theorem Prod.mk_lt_mk_iff_right +/- theorem Prod.swap_le_swap +/- theorem Prod.swap_lt_swap +/- theorem Subtype.coe_le_coe +/- theorem Subtype.coe_lt_coe +/- theorem Subtype.mk_le_mk +/- theorem Subtype.mk_lt_mk +/- theorem dense_or_discrete +/- theorem eq_iff_le_not_lt +/- theorem eq_of_forall_ge_iff + theorem eq_of_forall_gt_iff +/- theorem eq_of_forall_le_iff + theorem eq_of_forall_lt_iff + theorem eq_of_ge_of_not_gt +/- theorem eq_of_le_of_forall_ge_of_dense +/- theorem eq_of_le_of_forall_le_of_dense + theorem eq_of_le_of_not_lt + theorem eq_or_gt_of_le +/- theorem eq_or_lt_of_le +/- theorem exists_between +/- theorem exists_ge_of_linear +/- theorem forall_lt_iff_le' +/- theorem forall_lt_iff_le +/- theorem ge_antisymm +/- theorem ge_iff_le +/- theorem ge_of_eq +/- theorem gt_iff_lt + theorem le_Prop_eq +/- theorem le_iff_eq_or_lt +/- theorem le_iff_le_iff_lt_iff_lt +/- theorem le_imp_le_iff_lt_imp_lt +/- theorem le_implies_le_of_le_of_le +/- theorem le_of_eq_of_le' +/- theorem le_of_eq_of_le +/- theorem le_of_forall_ge_of_dense +/- theorem le_of_forall_le' +/- theorem le_of_forall_le +/- theorem le_of_forall_le_of_dense +/- theorem le_of_forall_lt' +/- theorem le_of_forall_lt +/- theorem le_of_le_of_eq' +/- theorem le_of_le_of_eq +/- theorem le_rfl +/- theorem le_trans' +/- theorem le_update_iff +/- theorem lt_iff_le_and_ne +/- theorem lt_iff_lt_of_le_iff_le' +/- theorem lt_iff_lt_of_le_iff_le - theorem lt_iff_not_ge' + theorem lt_iff_not_le +/- theorem lt_imp_lt_of_le_imp_le +/- theorem lt_of_eq_of_lt' +/- theorem lt_of_eq_of_lt +/- theorem lt_of_le_of_lt' +/- theorem lt_of_le_of_ne' +/- theorem lt_of_lt_of_eq' +/- theorem lt_of_lt_of_eq +/- theorem lt_of_lt_of_le' - theorem lt_of_not_ge' + theorem lt_of_not_le + theorem lt_or_lt_iff_ne +/- theorem lt_self_iff_false +/- theorem lt_trans' + theorem max_def' + theorem max_rec' + theorem max_rec + theorem min_def' + theorem min_rec' + theorem min_rec - theorem ne.lt_or_lt +/- theorem ne_iff_lt_iff_le + theorem ne_of_not_le +/- theorem not_le_of_lt +/- theorem not_lt_iff_eq_or_lt +/- theorem not_lt_of_le - theorem order_dual.Preorder.dual_dual - theorem order_dual.linear_order.dual_dual - theorem order_dual.partial_order.dual_dual - def order_dual + theorem rel_imp_eq_of_rel_imp_le + theorem subrelation_iff_le +/- theorem update_le_iff +/- theorem update_le_update_iff 2022-11-14 10:32:49 45f4c47 feat: port data.int.basic (#584) * [x] depends on #583 The final section `/-! # units -/` has not been ported, because it still depends on some earlier files. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Group/Defs.lean Modified Mathlib/Data/Int/Basic.lean + theorem Int.coe_nat_div + theorem Int.coe_nat_ediv + theorem Int.coe_nat_inj' + theorem Int.coe_nat_mod + theorem Int.coe_nat_nonneg + theorem Int.coe_nat_strictMono + theorem Int.coe_pred_of_pos + theorem Int.ediv_of_neg_of_pos + theorem Int.natAbs_ne_zero_of_ne_zero + theorem Int.nat_succ_eq_int_succ + theorem Int.neg_nat_succ + theorem Int.neg_pred + theorem Int.neg_succ + def Int.pred + theorem Int.pred_nat_succ + theorem Int.pred_neg_pred + theorem Int.pred_succ + theorem Int.sign_coe_nat_of_nonzero + def Int.succ + theorem Int.succ_neg_nat_succ + theorem Int.succ_neg_succ + theorem Int.succ_pred + theorem Int.toNat_coe_nat + theorem Int.toNat_coe_nat_add_one Modified Mathlib/Data/Int/Cast.lean Added Mathlib/Data/Int/Order/Basic.lean Modified Mathlib/Data/UnionFind.lean Modified Mathlib/Init/Algebra/Order.lean +/- theorem le_refl Modified scripts/lint-style.py Modified scripts/style-exceptions.txt 2022-11-14 10:01:39 35aa345 refactor: docs and simplifications for mk_iff (#595) Some cleanup and documentation for #561. ESTIMATED CHANGES Modified Mathlib/Tactic/MkIffOfInductiveProp.lean + structure Mathlib.Tactic.MkIff.Shape + def Mathlib.Tactic.MkIff.listBoolMerge - def Mathlib.Tactic.MkIff.listOptionMerge +/- def Mathlib.Tactic.MkIff.toCases Modified test/MkIffOfInductive.lean 2022-11-14 00:08:30 e0335f9 feat: add `#whnfR` command for reducible whnf (#581) Better naming suggestions are welcome. ESTIMATED CHANGES Modified Mathlib/Tactic/Conv.lean 2022-11-13 23:57:28 4ffe685 doc: update README (#573) ESTIMATED CHANGES Modified README.md 2022-11-13 23:57:27 719ea42 chore: renaming and alignment for various definitions and lemmas (#572) ESTIMATED CHANGES Modified Mathlib/Data/FunLike/Equiv.lean Modified Mathlib/Init/Function.lean + theorem Function.HasLeftInverse.injective + def Function.HasLeftInverse + theorem Function.HasRightInverse.surjective + def Function.HasRightInverse - theorem Function.LeftInverse_of_surjective_of_RightInverse - theorem Function.RightInverse_of_injective_of_LeftInverse - theorem Function.has_LeftInverse.injective - def Function.has_LeftInverse - theorem Function.has_RightInverse.surjective - def Function.has_RightInverse + theorem Function.leftInverse_of_surjective_of_rightInverse + theorem Function.rightInverse_of_injective_of_leftInverse Modified Mathlib/Logic/Basic.lean Modified Mathlib/Logic/Function/Basic.lean + theorem Function.Bijective.existsUnique_iff - theorem Function.Bijective.exists_unique_iff + theorem Function.Injective.hasLeftInverse - theorem Function.Injective.has_left_inverse + theorem Function.LeftInverse.eq_rightInverse - theorem Function.LeftInverse.eq_right_inverse + theorem Function.LeftInverse.rightInverse_of_injective + theorem Function.LeftInverse.rightInverse_of_surjective - theorem Function.LeftInverse.right_inverse_of_injective - theorem Function.LeftInverse.right_inverse_of_surjective + theorem Function.RightInverse.leftInverse_of_injective + theorem Function.RightInverse.leftInverse_of_surjective - theorem Function.RightInverse.left_inverse_of_injective - theorem Function.RightInverse.left_inverse_of_surjective + theorem Function.Surjective.hasRightInverse - theorem Function.Surjective.has_right_inverse + theorem Function.bijective_iff_existsUnique - theorem Function.bijective_iff_exists_unique + theorem Function.injective_iff_hasLeftInverse - theorem Function.injective_iff_has_left_inverse + theorem Function.injective_of_isPartialInv + theorem Function.injective_of_isPartialInv_right - theorem Function.injective_of_partial_inv - theorem Function.injective_of_partial_inv_right + theorem Function.injective_surjInv - theorem Function.injective_surj_inv + theorem Function.invFun_comp + theorem Function.invFun_eq + theorem Function.invFun_eq_of_injective_of_rightInverse + theorem Function.invFun_neg + theorem Function.invFun_surjective - theorem Function.inv_fun_comp - theorem Function.inv_fun_eq - theorem Function.inv_fun_eq_of_injective_of_right_inverse - theorem Function.inv_fun_neg - theorem Function.inv_fun_surjective + theorem Function.isPartialInv_left - theorem Function.is_partial_inv_left + theorem Function.leftInverse_iff_comp + theorem Function.leftInverse_invFun + theorem Function.leftInverse_surjInv - theorem Function.left_inverse_iff_comp - theorem Function.left_inverse_inv_fun - theorem Function.left_inverse_surj_inv + theorem Function.partialInv_left + theorem Function.partialInv_of_injective - theorem Function.partial_inv_left - theorem Function.partial_inv_of_injective + theorem Function.rightInverse_iff_comp + theorem Function.rightInverse_invFun + theorem Function.rightInverse_surjInv - theorem Function.right_inverse_iff_comp - theorem Function.right_inverse_inv_fun - theorem Function.right_inverse_surj_inv + theorem Function.surjInv_eq - theorem Function.surj_inv_eq + theorem Function.surjective_iff_hasRightInverse - theorem Function.surjective_iff_has_right_inverse Modified Mathlib/Logic/Function/Conjugate.lean + theorem Function.Semiconj₂.isAssociative_left + theorem Function.Semiconj₂.isAssociative_right + theorem Function.Semiconj₂.isIdempotent_left + theorem Function.Semiconj₂.isIdempotent_right - theorem Function.Semiconj₂.is_associative_left - theorem Function.Semiconj₂.is_associative_right - theorem Function.Semiconj₂.is_idempotent_left - theorem Function.Semiconj₂.is_idempotent_right 2022-11-13 23:50:45 8e256c3 feat: port Logic.Function.Iterate (#585) For review purposes: [Diff from mathport output](https://github.com/leanprover-community/mathlib4/compare/ebed2e9a663d299b963facf58eb501cf65d18bd8...hrmacbeth-logic-function-iterate) TODO, in this PR or a later one: edit the proof of `Iterate.rec` to be computable. See [Mario's comment](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/two.20errors/near/309414778). ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Logic/Function/Iterate.lean + theorem Function.Bijective.iterate + theorem Function.Commute.comp_iterate + theorem Function.Commute.iterate_eq_of_map_eq + theorem Function.Commute.iterate_iterate + theorem Function.Commute.iterate_iterate_self + theorem Function.Commute.iterate_left + theorem Function.Commute.iterate_right + theorem Function.Commute.iterate_self + theorem Function.Commute.self_iterate + theorem Function.Injective.iterate + def Function.Iterate.rec + theorem Function.Iterate.rec_zero + theorem Function.LeftInverse.iterate + theorem Function.RightInverse.iterate + theorem Function.Semiconj.iterate_left + theorem Function.Semiconj.iterate_right + theorem Function.Semiconj₂.iterate + theorem Function.Surjective.iterate + theorem Function.comp_iterate_pred_of_pos + theorem Function.iterate_add + theorem Function.iterate_add_apply + theorem Function.iterate_comm + theorem Function.iterate_commute + theorem Function.iterate_fixed + theorem Function.iterate_id + theorem Function.iterate_mul + theorem Function.iterate_one + theorem Function.iterate_pred_comp_of_pos + theorem Function.iterate_succ' + theorem Function.iterate_succ + theorem Function.iterate_succ_apply' + theorem Function.iterate_succ_apply + theorem Function.iterate_zero + theorem Function.iterate_zero_apply + theorem List.foldl_const + theorem List.foldr_const 2022-11-13 23:39:31 63c7bb1 CovariantClass naming fixes + #align (#590) Correct PR compared against master, incorporating suggestions to previous PR ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Group.lean Modified Mathlib/Algebra/Order/Monoid.lean + theorem Mul.to_covariantClass_left + theorem Mul.to_covariantClass_right - theorem Mul.to_covariant_class_left - theorem Mul.to_covariant_class_right 2022-11-13 23:39:30 c1ee635 fix: naming convention for `cmp` and `cmpUsing` (#589) according to https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/naming.20conventions/near/309189032 ESTIMATED CHANGES Modified Mathlib/Init/Data/Ordering/Basic.lean - def Cmp - def CmpUsing + def cmp + def cmpUsing 2022-11-13 23:39:29 b7ef81c feat: align init.data.int.{basic, order} (#583) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Group/Defs.lean Modified Mathlib/Data/Int/Basic.lean Modified Mathlib/Init/Align.lean Added Mathlib/Init/Data/Int/Basic.lean + theorem Int.eq_zero_of_natAbs_eq_zero + theorem Int.natAbs_pos_of_ne_zero + theorem Int.neg_negSucc + theorem Int.ofNat_eq_coe Deleted Mathlib/Init/Data/Int/Notation.lean Modified Mathlib/Init/Data/Int/Order.lean + theorem Int.le.elim + theorem Int.lt.elim + theorem Int.mul_neg_eq_neg_mul_symm + theorem Int.neg_mul_eq_neg_mul_symm Modified scripts/nolints.json 2022-11-13 23:39:28 61b52b9 feat: port Algebra.Group.Commutator (#582) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Group/Commutator.lean + theorem commutatorElement_def 2022-11-13 23:39:26 a48a515 chore: fix names in algebra/group (#580) I might have missed a lemma or two, but I think that the folder is now good. ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Basic.lean + theorem leftInverse_div_mul_left + theorem leftInverse_inv + theorem leftInverse_inv_mul_mul_right + theorem leftInverse_mul_left_div + theorem leftInverse_mul_right_inv_mul - theorem left_inverse_div_mul_left - theorem left_inverse_inv - theorem left_inverse_inv_mul_mul_right - theorem left_inverse_mul_left_div - theorem left_inverse_mul_right_inv_mul + theorem rightInverse_inv - theorem right_inverse_inv Modified Mathlib/Algebra/Group/Commute.lean 2022-11-13 23:39:25 fa0fc4e feat: port data.rat.init (#575) All the constructions are in `Std.Data.Rat`, we only add the notation. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Init/Data/Rat.lean 2022-11-13 23:33:52 9eff3c1 fix: make `clear!` delete class instances (#574) Although this was part of the original implementation, this behavior is actually undesirable for one of the main use cases of `clear!`, which is to remove a local class instance which is messing up typeclass inference, since it will just silently do nothing even if you say specifically to remove the instance (and everything that depends on it). If we need to recover the old behavior, I suggest adding it under a flag. ESTIMATED CHANGES Modified Mathlib/Tactic/Clear!.lean Modified test/Clear!.lean 2022-11-13 23:24:03 9de2b43 feat: port mk_iff and mk_iff_of_inductive_prop (#561) This is a direct translation of the [mathlib3 version](https://github.com/leanprover-community/mathlib/blob/1499a80b158f835d31d22d6a6770476abdc53a60/src/tactic/mk_iff_of_inductive_prop.lean) and [its tests](https://github.com/leanprover-community/mathlib/blob/1499a80b158f835d31d22d6a6770476abdc53a60/test/mk_iff_of_inductive.lean) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Lean/Meta.lean + def Lean.MVarId.existsi Modified Mathlib/Mathport/Syntax.lean Added Mathlib/Tactic/MkIffOfInductiveProp.lean + def Mathlib.Tactic.MkIff.List.init + def Mathlib.Tactic.MkIff.constrToProp + def Mathlib.Tactic.MkIff.listOptionMerge + def Mathlib.Tactic.MkIff.mkAndList + def Mathlib.Tactic.MkIff.mkExistsList + def Mathlib.Tactic.MkIff.mkIffOfInductivePropImpl + def Mathlib.Tactic.MkIff.mkOpList + def Mathlib.Tactic.MkIff.mkOrList + def Mathlib.Tactic.MkIff.nCasesProd + def Mathlib.Tactic.MkIff.nCasesSum + def Mathlib.Tactic.MkIff.splitThenConstructor + def Mathlib.Tactic.MkIff.toCases + def Mathlib.Tactic.MkIff.toInductive Added test/MkIffOfInductive.lean + inductive ReflTransGen + structure foo2 + structure foo + inductive test.is_true 2022-11-13 20:12:44 056cc6b chore: update std4 11-13 (#587) The main work is cleaning up all the new linter warnings. Also turns on `warningAsError` globally, which in particular means that `sorry`s will break the build; you have to use `set_option warningAsError false` to locally disable this behavior when needed. ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Basic.lean +/- theorem div_mul_div_cancel'' +/- theorem div_mul_mul_cancel +/- theorem mul_div_cancel'_right +/- theorem mul_div_div_cancel +/- theorem mul_mul_div_cancel +/- theorem mul_mul_inv_cancel'_right Modified Mathlib/Algebra/Ring/Basic.lean Modified Mathlib/Data/Fin/Basic.lean Modified Mathlib/Data/FunLike/Basic.lean Modified Mathlib/Data/List/Basic.lean Modified Mathlib/Data/List/Pairwise.lean Modified Mathlib/Data/List/Range.lean Modified Mathlib/Data/Option/Basic.lean Modified Mathlib/Data/Prod/Basic.lean Modified Mathlib/Init/CcLemmas.lean Modified Mathlib/Init/Core.lean Modified Mathlib/Init/Data/Nat/Lemmas.lean Modified Mathlib/Init/ZeroOne.lean Modified Mathlib/Logic/Basic.lean Modified Mathlib/Logic/Nontrivial.lean Modified Mathlib/Logic/Unique.lean Modified Mathlib/Tactic/Abel.lean Modified lakefile.lean Modified lean_packages/manifest.json 2022-11-12 21:38:57-08:00 3fe6184 Revert "name covariant_class -> covariantClass + attribute" This reverts commit 2b62592b814921403d220112be7850059d211ed3. ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Group.lean Modified Mathlib/Algebra/Order/Monoid.lean - theorem Mul.to_covariantClass_left - theorem Mul.to_covariantClass_right + theorem Mul.to_covariant_class_left + theorem Mul.to_covariant_class_right 2022-11-12 20:45:47-08:00 2b62592 name covariant_class -> covariantClass + attribute ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Group.lean Modified Mathlib/Algebra/Order/Monoid.lean + theorem Mul.to_covariantClass_left + theorem Mul.to_covariantClass_right - theorem Mul.to_covariant_class_left - theorem Mul.to_covariant_class_right 2022-11-12 02:35:31 8e25cb0 chore: update deps 11-10 (#576) ESTIMATED CHANGES Modified Mathlib/Logic/Basic.lean Modified Mathlib/Logic/Function/Basic.lean Modified Mathlib/Mathport/Syntax.lean Modified Mathlib/Tactic/Convert.lean - def Lean.MVarId.congrN' Modified Mathlib/Tactic/Ring/RingNF.lean Modified Mathlib/Testing/SlimCheck/Sampleable.lean Modified lean-toolchain Modified lean_packages/manifest.json 2022-11-11 07:33:35 b1cf06c chore: rename and alignment `is_empty` → `isEmpty` in lemmas (#571) ESTIMATED CHANGES Modified Mathlib/Logic/IsEmpty.lean + theorem Subtype.isEmpty_of_false - theorem Subtype.is_empty_of_false + theorem isEmpty_Prop + theorem isEmpty_iff + theorem isEmpty_or_nonempty + theorem isEmpty_pi + theorem isEmpty_plift + theorem isEmpty_pprod + theorem isEmpty_prod + theorem isEmpty_psigma + theorem isEmpty_psum + theorem isEmpty_sigma + theorem isEmpty_subtype + theorem isEmpty_sum + theorem isEmpty_ulift - theorem is_empty_Prop - theorem is_empty_iff - theorem is_empty_or_nonempty - theorem is_empty_pi - theorem is_empty_plift - theorem is_empty_pprod - theorem is_empty_prod - theorem is_empty_psigma - theorem is_empty_psum - theorem is_empty_sigma - theorem is_empty_subtype - theorem is_empty_sum - theorem is_empty_ulift + theorem not_isEmpty_iff + theorem not_isEmpty_of_nonempty - theorem not_is_empty_iff - theorem not_is_empty_of_nonempty Modified Mathlib/Logic/Unique.lean + theorem Option.subsingleton_iff_isEmpty - theorem Option.subsingleton_iff_is_empty 2022-11-11 04:19:16 d88e542 feat: port Algebra.NeZero (#557) The lemmas `coe_trans` and `trans` were removed (see [zulip discussion](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/mathlib4.23557/near/308688583)). ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/NeZero.lean + theorem NeZero.ne + theorem NeZero.of_pos + theorem eq_zero_or_neZero + theorem neZero_iff + theorem not_neZero 2022-11-11 02:27:42 20f9b28 feat: Init.Data.Ordering.Basic (#568) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Init/Data/Ordering/Basic.lean + def Cmp + def CmpUsing + def Ordering.orElse 2022-11-11 01:58:29 ed092fc feat: port Mathlib.Logic.Nontrivial (#547) The simp tag is registered in a separate file ESTIMATED CHANGES Modified Mathlib/Logic/Nontrivial.lean + theorem Pi.nontrivial_at + theorem Subtype.nontrivial_iff_exists_ne + theorem exists_ne + theorem exists_pair_lt + theorem exists_pair_ne + theorem false_of_nontrivial_of_subsingleton + theorem nontrivial_iff + theorem nontrivial_iff_exists_ne + theorem nontrivial_iff_lt + theorem nontrivial_of_lt + theorem nontrivial_of_ne + theorem not_nontrivial + theorem not_nontrivial_iff_subsingleton + theorem not_subsingleton + theorem subsingleton_iff + theorem subsingleton_or_nontrivial 2022-11-10 23:55:33 4680538 feat(Logic/Function/Basic): `update_eq_self_iff` (#558) Matches https://github.com/leanprover-community/mathlib/pull/17168 I do not have access to non-master branches so this PR is from a fork. ESTIMATED CHANGES Modified Mathlib/Logic/Function/Basic.lean + theorem Function.eq_update_self_iff + theorem Function.ne_update_self_iff + theorem Function.update_eq_self_iff + theorem Function.update_ne_self_iff 2022-11-10 23:34:50 8983526 feat: port Data.Quot (#559) This is my first PR to mathlib4 so please check carefully! This PR ports `data.quot` and the definition of `eqv_gen` from core Lean 3. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Data/Quot.lean + theorem Quot.eq + def Quot.factor + theorem Quot.factor_mk_eq + theorem Quot.lift_mk + theorem Quot.lift_on_mk + theorem Quot.lift_on₂_mk + theorem Quot.lift₂_mk + theorem Quot.map₂_mk + theorem Quot.out_eq + theorem Quotient.choice_eq + theorem Quotient.eq + theorem Quotient.eq_mk_iff_out + theorem Quotient.exact' + theorem Quotient.hrec_on'_mk'' + theorem Quotient.hrec_on₂'_mk'' + theorem Quotient.induction_on_pi + theorem Quotient.lift_comp_mk + theorem Quotient.lift_mk + theorem Quotient.lift_on_mk + theorem Quotient.lift_on₂_mk + theorem Quotient.lift₂_mk + theorem Quotient.map'_mk'' + theorem Quotient.map'_mk + theorem Quotient.map_mk + theorem Quotient.map₂'_mk'' + theorem Quotient.map₂_mk + theorem Quotient.mk_eq_iff_out + theorem Quotient.mk_out' + theorem Quotient.mk_out + theorem Quotient.out_eq' + theorem Quotient.out_eq + theorem Quotient.out_equiv_out + theorem Quotient.out_inj + theorem Quotient.out_injective + theorem Quotient.sound' + theorem Quotient.surjective_Quotient_mk'' + theorem Setoid.ext + def Trunc.bind + theorem Trunc.exists_rep + theorem Trunc.ind + def Trunc.lift + def Trunc.map + def Trunc.mk + theorem Trunc.out_eq + def Trunc.{u} + theorem forall_quotient_iff + theorem nonempty_quotient_iff + theorem surjective_quot_mk + theorem surjective_quotient_mk + theorem true_equivalence Added Mathlib/Init/Data/Quot.lean + def EqvGen.Setoid + theorem EqvGen.is_equivalence + inductive EqvGen + theorem Quot.EqvGen_sound + theorem Quot.exact Modified Mathlib/Logic/Unique.lean 2022-11-10 22:45:59 e1cacd4 feat: port of Data.FunLike (#541) This is a very naive port of `data.fun_like`. I've never really engaged with this classes in mathlib3, and I haven't attempted to think about how they might work in Lean 4... This PR is really just provocation, hoping that @Vierkantor may come and have a look. :-) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Data/FunLike/Basic.lean + structure CoolerHom + theorem FunLike.coe_eq_coe_fn + theorem FunLike.coe_fn_eq + theorem FunLike.coe_injective + theorem FunLike.exists_ne + theorem FunLike.ext' + theorem FunLike.ext'_iff + theorem FunLike.ext + theorem FunLike.ext_iff + theorem FunLike.ne_iff + theorem do_something + theorem map_cool + theorem map_op Added Mathlib/Data/FunLike/Embedding.lean + structure CoolerEmbedding + theorem EmbeddingLike.apply_eq_iff_eq + theorem EmbeddingLike.comp_injective + theorem do_something + theorem map_cool + theorem map_op Added Mathlib/Data/FunLike/Equiv.lean + structure CoolerIso + theorem EquivLike.apply_eq_iff_eq + theorem EquivLike.apply_inv_apply + theorem EquivLike.bijective_comp + theorem EquivLike.comp_bijective + theorem EquivLike.comp_injective + theorem EquivLike.comp_surjective + theorem EquivLike.injective_comp + theorem EquivLike.inv_apply_apply + theorem EquivLike.inv_injective + theorem EquivLike.surjective_comp + theorem do_something + theorem map_cool 2022-11-07 22:11:39 d78a3d4 feat: `ring` conv tactic (#553) * [x] depends on #539 * [x] depends on #552 This implements the `ring` conv tactic, which rewrites a target that is an equality in rings to `True`. I'm not sure if anyone uses this, but it is what it is and it brings down our metrics. ESTIMATED CHANGES Modified Mathlib/Mathport/Syntax.lean Modified Mathlib/Tactic/Conv.lean + def Mathlib.Tactic.Conv.elabDischargeConv Modified Mathlib/Tactic/Ring/RingNF.lean Modified test/ring.lean 2022-11-07 21:53:48 9b2767f feat: `ring_nf` tactic (#552) * [x] depends on #551 (only to avoid conflicts) Implements the `ring_nf` tactic, and makes `ring` call both `ring1` and `ring_nf` like in mathlib. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Mathport/Syntax.lean Modified Mathlib/Tactic/Ring.lean - def Lean.LOption.toOption - def Mathlib.Tactic.Ring.Cache.nat - structure Mathlib.Tactic.Ring.Cache - structure Mathlib.Tactic.Ring.Context - def Mathlib.Tactic.Ring.ExBase.evalPos - def Mathlib.Tactic.Ring.ExBase.toProd - inductive Mathlib.Tactic.Ring.ExBase - def Mathlib.Tactic.Ring.ExProd.coeff - def Mathlib.Tactic.Ring.ExProd.evalPos - def Mathlib.Tactic.Ring.ExProd.mkNat - def Mathlib.Tactic.Ring.ExProd.mkNegNat - def Mathlib.Tactic.Ring.ExProd.toSum - inductive Mathlib.Tactic.Ring.ExProd - def Mathlib.Tactic.Ring.ExSum.evalPos - inductive Mathlib.Tactic.Ring.ExSum - structure Mathlib.Tactic.Ring.ExtractCoeff - inductive Mathlib.Tactic.Ring.Overlap - structure Mathlib.Tactic.Ring.Result - def Mathlib.Tactic.Ring.RingM.run - structure Mathlib.Tactic.Ring.State - def Mathlib.Tactic.Ring.addAtom - theorem Mathlib.Tactic.Ring.add_congr - theorem Mathlib.Tactic.Ring.add_mul - theorem Mathlib.Tactic.Ring.add_overlap_pf - theorem Mathlib.Tactic.Ring.add_overlap_pf_zero - theorem Mathlib.Tactic.Ring.add_pf_add_gt - theorem Mathlib.Tactic.Ring.add_pf_add_lt - theorem Mathlib.Tactic.Ring.add_pf_add_overlap - theorem Mathlib.Tactic.Ring.add_pf_add_overlap_zero - theorem Mathlib.Tactic.Ring.add_pf_add_zero - theorem Mathlib.Tactic.Ring.add_pf_zero_add - theorem Mathlib.Tactic.Ring.add_pos_left - theorem Mathlib.Tactic.Ring.add_pos_right - theorem Mathlib.Tactic.Ring.atom_pf - theorem Mathlib.Tactic.Ring.cast_neg - theorem Mathlib.Tactic.Ring.cast_pos - theorem Mathlib.Tactic.Ring.cast_zero - theorem Mathlib.Tactic.Ring.coeff_mul - theorem Mathlib.Tactic.Ring.coeff_one - theorem Mathlib.Tactic.Ring.const_pos - def Mathlib.Tactic.Ring.evalAddOverlap - def Mathlib.Tactic.Ring.evalAtom - def Mathlib.Tactic.Ring.evalCast - def Mathlib.Tactic.Ring.evalMul - def Mathlib.Tactic.Ring.evalMul₁ - def Mathlib.Tactic.Ring.evalNSMul - def Mathlib.Tactic.Ring.evalNeg - def Mathlib.Tactic.Ring.evalNegProd - def Mathlib.Tactic.Ring.evalPow - def Mathlib.Tactic.Ring.evalPowAtom - def Mathlib.Tactic.Ring.evalPowProd - def Mathlib.Tactic.Ring.evalPowProdAtom - def Mathlib.Tactic.Ring.evalSub - def Mathlib.Tactic.Ring.extractCoeff - def Mathlib.Tactic.Ring.instCommSemiringNat - theorem Mathlib.Tactic.Ring.mul_add - theorem Mathlib.Tactic.Ring.mul_congr - theorem Mathlib.Tactic.Ring.mul_exp_pos - theorem Mathlib.Tactic.Ring.mul_one - theorem Mathlib.Tactic.Ring.mul_pf_left - theorem Mathlib.Tactic.Ring.mul_pf_right - theorem Mathlib.Tactic.Ring.mul_pow - theorem Mathlib.Tactic.Ring.mul_pp_pf_overlap - theorem Mathlib.Tactic.Ring.mul_zero - theorem Mathlib.Tactic.Ring.nat_cast_add - theorem Mathlib.Tactic.Ring.nat_cast_mul - theorem Mathlib.Tactic.Ring.nat_cast_nat - theorem Mathlib.Tactic.Ring.nat_cast_zero - theorem Mathlib.Tactic.Ring.neg_add - theorem Mathlib.Tactic.Ring.neg_congr - theorem Mathlib.Tactic.Ring.neg_mul - theorem Mathlib.Tactic.Ring.neg_one_mul - theorem Mathlib.Tactic.Ring.neg_zero - theorem Mathlib.Tactic.Ring.nsmul_congr - theorem Mathlib.Tactic.Ring.of_eq - theorem Mathlib.Tactic.Ring.one_mul - theorem Mathlib.Tactic.Ring.one_pow - theorem Mathlib.Tactic.Ring.pow_add - theorem Mathlib.Tactic.Ring.pow_atom - theorem Mathlib.Tactic.Ring.pow_bit0 - theorem Mathlib.Tactic.Ring.pow_bit1 - theorem Mathlib.Tactic.Ring.pow_congr - theorem Mathlib.Tactic.Ring.pow_nat - theorem Mathlib.Tactic.Ring.pow_one - theorem Mathlib.Tactic.Ring.pow_one_cast - theorem Mathlib.Tactic.Ring.pow_prod_atom - theorem Mathlib.Tactic.Ring.pow_zero - theorem Mathlib.Tactic.Ring.single_pow - theorem Mathlib.Tactic.Ring.smul_eq_cast - theorem Mathlib.Tactic.Ring.smul_nat - theorem Mathlib.Tactic.Ring.sub_congr - theorem Mathlib.Tactic.Ring.sub_pf - def Mathlib.Tactic.Ring.sℕ - theorem Mathlib.Tactic.Ring.zero_mul - theorem Mathlib.Tactic.Ring.zero_pow Added Mathlib/Tactic/Ring/Basic.lean + def Lean.LOption.toOption + def Mathlib.Tactic.Ring.Cache.nat + structure Mathlib.Tactic.Ring.Cache + structure Mathlib.Tactic.Ring.Context + def Mathlib.Tactic.Ring.ExBase.evalPos + def Mathlib.Tactic.Ring.ExBase.toProd + inductive Mathlib.Tactic.Ring.ExBase + def Mathlib.Tactic.Ring.ExProd.coeff + def Mathlib.Tactic.Ring.ExProd.evalPos + def Mathlib.Tactic.Ring.ExProd.mkNat + def Mathlib.Tactic.Ring.ExProd.mkNegNat + def Mathlib.Tactic.Ring.ExProd.toSum + inductive Mathlib.Tactic.Ring.ExProd + def Mathlib.Tactic.Ring.ExSum.evalPos + inductive Mathlib.Tactic.Ring.ExSum + structure Mathlib.Tactic.Ring.ExtractCoeff + inductive Mathlib.Tactic.Ring.Overlap + structure Mathlib.Tactic.Ring.Result + def Mathlib.Tactic.Ring.RingM.run + structure Mathlib.Tactic.Ring.State + def Mathlib.Tactic.Ring.addAtom + theorem Mathlib.Tactic.Ring.add_congr + theorem Mathlib.Tactic.Ring.add_mul + theorem Mathlib.Tactic.Ring.add_overlap_pf + theorem Mathlib.Tactic.Ring.add_overlap_pf_zero + theorem Mathlib.Tactic.Ring.add_pf_add_gt + theorem Mathlib.Tactic.Ring.add_pf_add_lt + theorem Mathlib.Tactic.Ring.add_pf_add_overlap + theorem Mathlib.Tactic.Ring.add_pf_add_overlap_zero + theorem Mathlib.Tactic.Ring.add_pf_add_zero + theorem Mathlib.Tactic.Ring.add_pf_zero_add + theorem Mathlib.Tactic.Ring.add_pos_left + theorem Mathlib.Tactic.Ring.add_pos_right + theorem Mathlib.Tactic.Ring.atom_pf' + theorem Mathlib.Tactic.Ring.atom_pf + theorem Mathlib.Tactic.Ring.cast_neg + theorem Mathlib.Tactic.Ring.cast_pos + theorem Mathlib.Tactic.Ring.cast_zero + theorem Mathlib.Tactic.Ring.coeff_mul + theorem Mathlib.Tactic.Ring.coeff_one + theorem Mathlib.Tactic.Ring.const_pos + def Mathlib.Tactic.Ring.evalAddOverlap + def Mathlib.Tactic.Ring.evalAtom + def Mathlib.Tactic.Ring.evalCast + def Mathlib.Tactic.Ring.evalMul + def Mathlib.Tactic.Ring.evalMul₁ + def Mathlib.Tactic.Ring.evalNSMul + def Mathlib.Tactic.Ring.evalNeg + def Mathlib.Tactic.Ring.evalNegProd + def Mathlib.Tactic.Ring.evalPow + def Mathlib.Tactic.Ring.evalPowAtom + def Mathlib.Tactic.Ring.evalPowProd + def Mathlib.Tactic.Ring.evalPowProdAtom + def Mathlib.Tactic.Ring.evalSub + def Mathlib.Tactic.Ring.extractCoeff + def Mathlib.Tactic.Ring.instCommSemiringNat + theorem Mathlib.Tactic.Ring.mul_add + theorem Mathlib.Tactic.Ring.mul_congr + theorem Mathlib.Tactic.Ring.mul_exp_pos + theorem Mathlib.Tactic.Ring.mul_one + theorem Mathlib.Tactic.Ring.mul_pf_left + theorem Mathlib.Tactic.Ring.mul_pf_right + theorem Mathlib.Tactic.Ring.mul_pow + theorem Mathlib.Tactic.Ring.mul_pp_pf_overlap + theorem Mathlib.Tactic.Ring.mul_zero + theorem Mathlib.Tactic.Ring.nat_cast_add + theorem Mathlib.Tactic.Ring.nat_cast_mul + theorem Mathlib.Tactic.Ring.nat_cast_nat + theorem Mathlib.Tactic.Ring.nat_cast_zero + theorem Mathlib.Tactic.Ring.neg_add + theorem Mathlib.Tactic.Ring.neg_congr + theorem Mathlib.Tactic.Ring.neg_mul + theorem Mathlib.Tactic.Ring.neg_one_mul + theorem Mathlib.Tactic.Ring.neg_zero + theorem Mathlib.Tactic.Ring.nsmul_congr + theorem Mathlib.Tactic.Ring.of_eq + theorem Mathlib.Tactic.Ring.one_mul + theorem Mathlib.Tactic.Ring.one_pow + theorem Mathlib.Tactic.Ring.pow_add + theorem Mathlib.Tactic.Ring.pow_atom + theorem Mathlib.Tactic.Ring.pow_bit0 + theorem Mathlib.Tactic.Ring.pow_bit1 + theorem Mathlib.Tactic.Ring.pow_congr + theorem Mathlib.Tactic.Ring.pow_nat + theorem Mathlib.Tactic.Ring.pow_one + theorem Mathlib.Tactic.Ring.pow_one_cast + theorem Mathlib.Tactic.Ring.pow_prod_atom + theorem Mathlib.Tactic.Ring.pow_zero + theorem Mathlib.Tactic.Ring.single_pow + theorem Mathlib.Tactic.Ring.smul_eq_cast + theorem Mathlib.Tactic.Ring.smul_nat + theorem Mathlib.Tactic.Ring.sub_congr + theorem Mathlib.Tactic.Ring.sub_pf + def Mathlib.Tactic.Ring.sℕ + theorem Mathlib.Tactic.Ring.zero_mul + theorem Mathlib.Tactic.Ring.zero_pow Added Mathlib/Tactic/Ring/RingNF.lean + def Mathlib.Tactic.Ring.ExBase.isAtom + def Mathlib.Tactic.Ring.ExProd.isAtom + def Mathlib.Tactic.Ring.ExSum.isAtom + inductive Mathlib.Tactic.Ring.RingMode + structure Mathlib.Tactic.Ring.RingNF.Config + theorem Mathlib.Tactic.Ring.add_assoc_rev + theorem Mathlib.Tactic.Ring.add_neg + def Mathlib.Tactic.Ring.elabRingNFConv + theorem Mathlib.Tactic.Ring.int_rawCast_1 + theorem Mathlib.Tactic.Ring.int_rawCast_2 + theorem Mathlib.Tactic.Ring.mul_assoc_rev + theorem Mathlib.Tactic.Ring.mul_neg + theorem Mathlib.Tactic.Ring.nat_rawCast_0 + theorem Mathlib.Tactic.Ring.nat_rawCast_1 + theorem Mathlib.Tactic.Ring.nat_rawCast_2 + def Mathlib.Tactic.Ring.ringNFLocalDecl + def Mathlib.Tactic.Ring.ringNFTarget Modified test/ring.lean 2022-11-07 21:34:33 baa4810 feat: `norm_num` addition on `AddMonoidWithOne` (#551) As [requested on Zulip](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/norm_num.20for.20non-semirings/near/308145432). ESTIMATED CHANGES Modified Mathlib/Tactic/NormNum/Basic.lean +/- theorem Mathlib.Meta.NormNum.isNat_add +/- theorem Mathlib.Meta.NormNum.isNat_cast +/- theorem Mathlib.Meta.NormNum.isNat_ofNat +/- theorem Mathlib.Meta.NormNum.isNat_one +/- theorem Mathlib.Meta.NormNum.isNat_zero Modified Mathlib/Tactic/NormNum/Core.lean +/- theorem Mathlib.Meta.NormNum.IsNat.of_raw +/- theorem Mathlib.Meta.NormNum.IsNat.to_eq +/- theorem Mathlib.Meta.NormNum.IsNat.to_raw_eq +/- structure Mathlib.Meta.NormNum.IsNat + def Mathlib.Meta.NormNum.inferAddMonoidWithOne + def Mathlib.Meta.NormNum.instAddMonoidWithOne + def Mathlib.Meta.NormNum.instAddMonoidWithOneNat - def Mathlib.Meta.NormNum.instSemiringNat +/- def Nat.rawCast Modified Mathlib/Tactic/Ring.lean Modified test/norm_num.lean 2022-11-07 21:34:32 c11114a feat: `classical` tactic (#540) Note that `classical` had to be turned into a scoping tactic, because AFAIK there isn't a way to perform additional actions at the end of elaboration. In lean 3 this wasn't a problem since the environment is rolled back after a `theorem` is elaborated, but in lean 4 you can add global definitions during elaboration of a theorem so something has to clean up afterward. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Mathport/Syntax.lean Modified Mathlib/Tactic/Basic.lean Added Mathlib/Tactic/Classical.lean Added test/classical.lean + def bar'' + def bar' + def bar 2022-11-07 21:34:31 a300eb9 feat: `#conv` command: `#simp`, `#norm_num` etc. (#539) The command `#conv $tac => $e` will run a conv tactic `tac` on `e` and display the resulting simplified version of `e'`. This is used to implement several other user commands: * `#whnf e` displays the weak head normal form of `e` * `#simp e` displays the simp normal form of `e` * `#norm_num e` evaluates `e` using `norm_num` * `#push_neg e` shows the result of `push_neg` on `e` The `conv` versions of `norm_num` and `push_neg` are also added here, so that the commands can be implemented as macros. ESTIMATED CHANGES Modified Mathlib/Mathport/Syntax.lean Modified Mathlib/Tactic/Conv.lean Modified Mathlib/Tactic/NormNum/Core.lean + def Mathlib.Meta.NormNum.getSimpContext + def Mathlib.Tactic.elabNormNum1Conv + def Mathlib.Tactic.elabNormNumConv Modified Mathlib/Tactic/PushNeg.lean + def Mathlib.Tactic.PushNeg.elabPushNegConv + def Mathlib.Tactic.PushNeg.pushNegCore 2022-11-07 21:34:30 9b4fc7f feat: `congr'` and `rcongr` tactics (#538) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Mathport/Syntax.lean Modified Mathlib/Tactic/Clear!.lean Modified Mathlib/Tactic/Clear_.lean Added Mathlib/Tactic/Congr.lean Modified lean_packages/manifest.json Modified scripts/nolints.json Modified test/Simps.lean + theorem types.ext Added test/congr.lean Deleted test/rcases.lean 2022-11-07 21:25:38 23409b4 feat: port apply_fun (#475) This will need minor additions once the tactic `mono` is ported, and some additional testing after `Logic.Equiv.Basic` and `Order.Hom.Basic` are ported. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Mathport/Syntax.lean Added Mathlib/Tactic/ApplyFun.lean + def Lean.MVarId.note + def Mathlib.Tactic.applyFunHyp + def Mathlib.Tactic.applyFunTarget + def Mathlib.Tactic.applyFunTargetFailure Added test/apply_fun.lean 2022-11-07 20:49:34 eb88353 feat: generalize_proofs tactic (#447) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Mathport/Syntax.lean Added Mathlib/Tactic/GeneralizeProofs.lean + structure Mathlib.Tactic.GeneralizeProofs.State Added test/GeneralizeProofs.lean + def List.nthLe 2022-11-07 04:25:37 b902a2a feat: port Data.Prod.Basic (#545) moves and restructures existing Data.Prod ESTIMATED CHANGES Modified Mathlib.lean Deleted Mathlib/Data/Prod.lean - theorem Function.Injective.prod_map - theorem Function.Surjective.prod_map - theorem Prod.eq_iff_fst_eq_snd_eq - theorem Prod.exists' - theorem Prod.ext' - theorem Prod.ext_iff - theorem Prod.forall' - theorem Prod.fst_eq_iff - theorem Prod.fst_injective - theorem Prod.fst_surjective - theorem Prod.fst_swap - theorem Prod.id_prod - theorem Prod.lex_def - theorem Prod.map_comp_map - theorem Prod.map_def - theorem Prod.map_fst' - theorem Prod.map_fst - theorem Prod.map_map - theorem Prod.map_mk - theorem Prod.map_snd' - theorem Prod.map_snd - theorem Prod.mk.inj_iff - theorem Prod.mk.inj_left - theorem Prod.mk.inj_right - theorem Prod.snd_eq_iff - theorem Prod.snd_injective - theorem Prod.snd_surjective - theorem Prod.snd_swap - def Prod.swap - theorem Prod.swap_LeftInverse - theorem Prod.swap_RightInverse - theorem Prod.swap_bijective - theorem Prod.swap_inj - theorem Prod.swap_injective - theorem Prod.swap_prod_mk - theorem Prod.swap_surjective - theorem Prod.swap_swap - theorem Prod.swap_swap_eq - theorem Prod.«exists» - theorem Prod.«forall» - theorem prod_map Added Mathlib/Data/Prod/Basic.lean + theorem Function.Bijective.Prod_map + theorem Function.Injective.Prod_map + theorem Function.Involutive.Prod_map + theorem Function.LeftInverse.Prod_map + theorem Function.RightInverse.Prod_map + theorem Function.Surjective.Prod_map + theorem Prod.Lex.refl_left + theorem Prod.Lex.refl_right + theorem Prod.Lex.trans + theorem Prod.Lex_def + theorem Prod.eq_iff_fst_eq_snd_eq + theorem Prod.exists' + theorem Prod.ext' + theorem Prod.ext_iff + theorem Prod.forall' + theorem Prod.fst_comp_mk + theorem Prod.fst_eq_iff + theorem Prod.fst_injective + theorem Prod.fst_surjective + theorem Prod.fst_swap + theorem Prod.id_prod + theorem Prod.map_comp_map + theorem Prod.map_def + theorem Prod.map_fst' + theorem Prod.map_fst + theorem Prod.map_id + theorem Prod.map_map + theorem Prod.map_mk + theorem Prod.map_snd' + theorem Prod.map_snd + theorem Prod.mk.inj_iff + theorem Prod.mk.inj_left + theorem Prod.mk.inj_right + theorem Prod.snd_comp_mk + theorem Prod.snd_eq_iff + theorem Prod.snd_injective + theorem Prod.snd_surjective + theorem Prod.snd_swap + def Prod.swap + theorem Prod.swap_bijective + theorem Prod.swap_inj + theorem Prod.swap_injective + theorem Prod.swap_leftInverse + theorem Prod.swap_prod_mk + theorem Prod.swap_rightInverse + theorem Prod.swap_surjective + theorem Prod.swap_swap + theorem Prod.swap_swap_eq + theorem Prod.«exists» + theorem Prod.«forall» + theorem Prod_map Modified Mathlib/Order/Basic.lean Modified test/Simps.lean 2022-11-07 03:58:16 fd97e04 feat: port Data.Option.Basic (#493) - Define `getOrElse` here -- likely belongs in `Std` - lemmas mentioning `coe` now use up-arrow, even though that refers to `some` directly - `Option.elim` has different argument order ESTIMATED CHANGES Modified Mathlib/Data/Option/Basic.lean + theorem Option.Mem.left_unique + theorem Option.bind_eq_bind + theorem Option.bind_eq_none' + theorem Option.bind_eq_some' + theorem Option.bind_pmap + def Option.casesOn' + theorem Option.casesOn'_coe + theorem Option.casesOn'_none + theorem Option.casesOn'_none_coe + theorem Option.casesOn'_some + theorem Option.choice_eq_none + theorem Option.coe_def + theorem Option.coe_get + theorem Option.elim_none_some + theorem Option.eq_of_mem_of_mem + theorem Option.getD_coe + theorem Option.getD_default_eq_iget + theorem Option.guard_eq_some' + theorem Option.iget_mem + theorem Option.iget_of_mem + theorem Option.joinM_eq_join + theorem Option.join_pmap_eq_pmap_join + theorem Option.liftOrGet_choice - theorem Option.lift_or_get_none_left - theorem Option.lift_or_get_none_right - theorem Option.lift_or_get_some_some + theorem Option.map_bind' + theorem Option.map_bind + theorem Option.map_coe' + theorem Option.map_coe + theorem Option.map_comm + theorem Option.map_comp_some + theorem Option.map_eq_id + theorem Option.map_inj + theorem Option.map_injective' + theorem Option.map_pbind + theorem Option.map_pmap + theorem Option.mem_pmem + theorem Option.none_bind' + theorem Option.none_orElse' + theorem Option.orElse_eq_none' + theorem Option.orElse_eq_none + theorem Option.orElse_eq_some' + theorem Option.orElse_eq_some + theorem Option.orElse_none' + theorem Option.pbind_eq_bind + theorem Option.pbind_eq_none + theorem Option.pbind_eq_some + theorem Option.pbind_map + theorem Option.pmap_bind + theorem Option.pmap_eq_map + theorem Option.pmap_eq_none_iff + theorem Option.pmap_eq_some_iff + theorem Option.pmap_map + theorem Option.pmap_none + theorem Option.pmap_some + theorem Option.seq_some + theorem Option.some_bind' +/- theorem Option.some_injective + theorem Option.some_orElse' 2022-11-07 03:29:14 a1af176 feat: port Data.Subtype (#546) ESTIMATED CHANGES Modified Mathlib/Data/Subtype.lean + def Subtype.Simps.coe +/- theorem Subtype.coe_eq_iff + theorem Subtype.coe_eq_of_eq_mk +/- theorem Subtype.coe_eta + theorem Subtype.coe_inj +/- theorem Subtype.coe_injective +/- theorem Subtype.coe_mk + theorem Subtype.coe_prop +/- def Subtype.coind +/- theorem Subtype.coind_bijective +/- theorem Subtype.coind_injective +/- theorem Subtype.coind_surjective +/- theorem Subtype.equiv_iff +/- theorem Subtype.ext_iff +/- theorem Subtype.ext_iff_val +/- theorem Subtype.ext_val +/- theorem Subtype.heq_iff_coe_eq +/- def Subtype.map +/- theorem Subtype.map_id +/- theorem Subtype.map_injective +/- theorem Subtype.map_involutive +/- theorem Subtype.prop +/- def Subtype.restrict +/- theorem Subtype.restrict_apply +/- theorem Subtype.restrict_def +/- theorem Subtype.restrict_injective - def Subtype.simps.coe + theorem Subtype.surjective_restrict + theorem Subtype.val_inj +/- theorem Subtype.val_prop + theorem exists_eq_subtype_mk_iff + theorem exists_subtype_mk_eq_iff 2022-11-07 03:20:44 8c70608 feat: port Init.Data.Prod (#543) add `#align prod Prod` to Init.Data.Core should the align be in Init.Data.Prod instead? ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Data/Prod.lean - theorem Prod.mk.eta Modified Mathlib/Init/Core.lean Added Mathlib/Init/Data/Prod.lean + theorem Prod.mk.eta 2022-11-07 03:20:42 e68b0f5 feat: port `onFun` and `combine` notations in Init.Logic (#542) * Adds two notation declarations that present in [lean 3](https://github.com/leanprover-community/lean/blob/fc13c8c72a15dab71a2c2b31410c2cadc3526bd7/library/init/function.lean#L55-L56) and [Lean3port](https://github.com/leanprover-community/lean3port/blob/ae7ce5b9527a8b90ea052208fc8d9f670725420c/Leanbin/Init/Function.lean#L61-L65) but not yet in mathlib4. The `onFun` notation is needed in Logic/Relation. I'm not sure whether the `combine` notation is ever actually used, but we should include it for consistency. * Updates the name of `on_fun` to `onFun`, to match the naming conventions in the mathport output. * Adds a docstring to `combine` to satisfy the linter. * Fixes a typo in another docstring: "calles"` -> "called". ESTIMATED CHANGES Modified Mathlib/Init/Function.lean + def Function.onFun - def Function.on_fun Modified scripts/nolints.json 2022-11-07 03:12:17 9966778 feat: port data.bool.basic (#534) Issues that came up: 1) my understanding of the lean 4 naming convention is that capital/small letter choices are often dictated to you. However Lean 4 has `not` for bools and `Not` for props. This causes the following issue: in my port I have gone for the name ```lean4 theorem Not_eq_not : ∀ {a b : Bool}, ¬a = !b ↔ a = b ``` What should this theorem be called? The algorithm says `not_eq_not` which is misleading...or is it? It comes up a few times (the others are `not_iff_Not` and `Not_not_eq`) 2) When defining LinearOrder I had to do a lot of unfolding which is not present in Lean 3. ``` instance : LinearOrder Bool where le := fun a b => a = false ∨ b = true le_refl := by unfold LE.le; decide le_trans := by unfold LE.le; decide le_antisymm := by unfold LE.le Preorder.toLE; decide le_total := by unfold LE.le Preorder.toLE PartialOrder.toPreorder; decide decidable_le := by unfold LE.le Preorder.toLE PartialOrder.toPreorder; exact inferInstance ... ``` 3) Again on orders: `lt_iff_le_not_le` is not an autoparam so I had to prove it explicitly with `Iff.rfl`. Do autoparams exist in Lean 4 yet? Does this need to be flagged? 4) Because the names of many functions on booleans changed (`bor` -> `or`, `bnot` -> `not` etc) I had to #align a lot of stuff. However the namespace also changed (`bool` -> `Bool`). Am I right in thinking that the few theorems like `bool.lt_iff`, which becomes `Bool.lt_iff` (i.e. the theorem name itself survived the naming change but the namespace did not) do *not* need to be #align ed? ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Data/Bool/Basic.lean + theorem Bool.and_comm + theorem Bool.and_elim_left + theorem Bool.and_elim_right + theorem Bool.and_intro + theorem Bool.and_le_left + theorem Bool.and_le_right + theorem Bool.and_left_comm + theorem Bool.and_not_self + theorem Bool.and_or_distrib_left + theorem Bool.and_or_distrib_right + theorem Bool.and_xor_distrib_left + theorem Bool.and_xor_distrib_right + theorem Bool.apply_apply_apply + theorem Bool.coe_bool_iff + theorem Bool.coe_decide + theorem Bool.cond_decide + theorem Bool.cond_eq_ite + theorem Bool.cond_not + theorem Bool.decide_False + theorem Bool.decide_True + theorem Bool.decide_and + theorem Bool.decide_coe + theorem Bool.decide_eq + theorem Bool.decide_not + theorem Bool.decide_or + theorem Bool.default_bool + theorem Bool.dichotomy + theorem Bool.eq_false_of_ne_true + theorem Bool.eq_false_of_not_eq_true' + theorem Bool.eq_not_iff + theorem Bool.eq_or_eq_not + theorem Bool.eq_true_of_ne_false + theorem Bool.eq_true_of_not_eq_false' + theorem Bool.exists_bool + theorem Bool.false_eq_decide_iff + theorem Bool.false_le + theorem Bool.false_lt_true + theorem Bool.forall_bool + theorem Bool.injective_iff + theorem Bool.le_and + theorem Bool.le_iff_imp + theorem Bool.le_true + theorem Bool.left_le_or + theorem Bool.lt_iff + theorem Bool.ne_not + theorem Bool.not_and + theorem Bool.not_and_self + theorem Bool.not_eq_iff + theorem Bool.not_eq_not + theorem Bool.not_false' + theorem Bool.not_iff_not + theorem Bool.not_inj + theorem Bool.not_ne + theorem Bool.not_ne_id + theorem Bool.not_ne_self + theorem Bool.not_not_eq + theorem Bool.not_or + theorem Bool.not_or_self + def Bool.ofNat + theorem Bool.of_decide_iff + theorem Bool.of_nat_le_of_nat + theorem Bool.of_nat_to_nat + theorem Bool.or_and_distrib_left + theorem Bool.or_and_distrib_right + theorem Bool.or_comm + theorem Bool.or_inl + theorem Bool.or_inr + theorem Bool.or_le + theorem Bool.or_left_comm + theorem Bool.or_not_self + theorem Bool.right_le_or + theorem Bool.self_ne_not + def Bool.toNat + theorem Bool.to_nat_le_to_nat + theorem Bool.true_eq_decide_iff + theorem Bool.xor_assoc + theorem Bool.xor_comm + theorem Bool.xor_false_left + theorem Bool.xor_false_right + theorem Bool.xor_iff_ne + theorem Bool.xor_left_comm + theorem Bool.xor_not_left + theorem Bool.xor_not_not + theorem Bool.xor_not_right Modified Mathlib/Init/Algebra/Order.lean 2022-11-06 08:48:39 728737c feat: port Logic.Function.Conjugate (#533) This is my first PR to mathlib4. It seems to be a short and simple file, but could you please check I got the naming conventions right, please? (in particular: is it `Semiconj` or `SemiConj`?) No name changes from mathlib3port, only had to adapt some proofs: e.g. `function.comp_app` is now `Function.comp_apply`. Does this need an `#align` statement, too? ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Init/Function.lean Added Mathlib/Logic/Function/Conjugate.lean + theorem Function.Commute.comp_left + theorem Function.Commute.comp_right + theorem Function.Commute.id_left + theorem Function.Commute.id_right + theorem Function.Commute.option_map + theorem Function.Commute.refl + theorem Function.Commute.symm + def Function.Commute + theorem Function.Semiconj.commute + theorem Function.Semiconj.comp_left + theorem Function.Semiconj.comp_right + theorem Function.Semiconj.id_left + theorem Function.Semiconj.id_right + theorem Function.Semiconj.inverses_right + theorem Function.Semiconj.option_map + def Function.Semiconj + theorem Function.Semiconj₂.comp + theorem Function.Semiconj₂.id_left + theorem Function.Semiconj₂.is_associative_left + theorem Function.Semiconj₂.is_associative_right + theorem Function.Semiconj₂.is_idempotent_left + theorem Function.Semiconj₂.is_idempotent_right + def Function.Semiconj₂ 2022-11-06 08:48:38 51a712f feat: port Init.Control.Combinators (#530) - TODO: check if List.mfirst align is correct ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Init/Control/Combinators.lean + def Monad.cond + def Monad.filter + def Monad.foldl + def Monad.join + def Monad.mapM' + def Monad.mapM + def Monad.sequence' + def Monad.sequence + def Monad.unlessb + def Monad.whenb + def condM + def joinM + def when + def whenM Modified scripts/nolints.json 2022-11-06 08:25:53 d1bae74 feat: port Logic.Lemmas (#537) For some funny reason there were aliases to lemmas from `init.cc_lemmas`, which is PR'd to mathlib4 as #532. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Logic/Lemmas.lean + theorem dite_dite_distrib_left + theorem dite_dite_distrib_right + theorem dite_ite_distrib_left + theorem dite_ite_distrib_right + theorem ite_dite_distrib_left + theorem ite_dite_distrib_right + theorem ite_ite_distrib_left + theorem ite_ite_distrib_right 2022-11-06 08:14:11 aff50f9 feat: port init/cc_lemmas.lean (#532) I started porting logic/lemmas.lean, but found that I needed cc_lemmas.lean first. Compare to * the Lean 3 version: https://github.com/leanprover-community/lean/blob/fc13c8c72a15dab71a2c2b31410c2cadc3526bd7/library/init/cc_lemmas.lean * the lean3port version: https://github.com/leanprover-community/lean/blob/fc13c8c72a15dab71a2c2b31410c2cadc3526bd7/library/init/cc_lemmas.lean The main adjustments I needed to make were of the form `(true_iff_iff _)` -> `true_iff_iff`, because the mathlib4 version of [`true_iff_iff`](https://github.com/leanprover-community/mathlib4/blob/172bedc47e099f17a6dad47ed2bb4789c5ad1618/Mathlib/Init/Logic.lean#L192) (and similar lemmas) takes its argument implicitly, which the mathlib3 version takes it explicitly. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Init/CcLemmas.lean + theorem and_eq_of_eq + theorem and_eq_of_eq_false_left + theorem and_eq_of_eq_false_right + theorem and_eq_of_eq_true_left + theorem and_eq_of_eq_true_right + theorem eq_false_of_not_eq_true + theorem eq_false_of_or_eq_false_left + theorem eq_false_of_or_eq_false_right + theorem eq_true_of_and_eq_true_left + theorem eq_true_of_and_eq_true_right + theorem eq_true_of_not_eq_false + theorem false_of_a_eq_not_a + theorem if_eq_of_eq + theorem if_eq_of_eq_false + theorem if_eq_of_eq_true + theorem iff_eq_of_eq_true_left + theorem iff_eq_of_eq_true_right + theorem iff_eq_true_of_eq + theorem imp_eq_of_eq_false_left + theorem imp_eq_of_eq_false_right + theorem imp_eq_of_eq_true_left + theorem imp_eq_of_eq_true_right + theorem imp_eq_true_of_eq + theorem ne_of_eq_of_ne + theorem ne_of_ne_of_eq + theorem not_eq_of_eq_false + theorem not_eq_of_eq_true + theorem not_imp_eq_of_eq_false_right + theorem or_eq_of_eq + theorem or_eq_of_eq_false_left + theorem or_eq_of_eq_false_right + theorem or_eq_of_eq_true_left + theorem or_eq_of_eq_true_right 2022-11-04 20:57:07 415530d feat: update mathlib mod-tac-stx 2022-11-01 (#536) This adds all the changes to tactic syntax that have happened in the period [2022-02-22 thru 2022-11-01](https://github.com/leanprover-community/mathlib/pulls?q=is%3Apr+closed%3A2022-02-22..2022-11-01+label%3Amodifies-tactic-syntax). ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Defs.lean Modified Mathlib/Mathport/Syntax.lean Modified Mathlib/Tactic/Basic.lean + def Mathlib.Tactic.elabVariables - def elabVariables Modified lean_packages/manifest.json Modified scripts/nolints.json 2022-11-03 22:33:26 4d4fafa chore: update std4 11-03 (#535) The main change is that `guard_target` and friends now use reducible defeq instead of syntactic eq by default. ESTIMATED CHANGES Modified Mathlib/Tactic/Cache.lean + def Mathlib.Tactic.Cache.get + def Mathlib.Tactic.Cache.mk + def Mathlib.Tactic.Cache + def Mathlib.Tactic.DeclCache.get + def Mathlib.Tactic.DeclCache.mk + def Mathlib.Tactic.DeclCache - def Tactic.Cache.get - def Tactic.Cache.mk - def Tactic.Cache - def Tactic.DeclCache.get - def Tactic.DeclCache.mk - def Tactic.DeclCache Modified Mathlib/Tactic/Find.lean + def Mathlib.Tactic.Find.findType - def Tactic.Find.findType Modified Mathlib/Tactic/LibrarySearch.lean + def Mathlib.Tactic.LibrarySearch.librarySearch + def Mathlib.Tactic.LibrarySearch.lines + def Mathlib.Tactic.LibrarySearch.solveByElim - def Tactic.LibrarySearch.librarySearch - def Tactic.LibrarySearch.lines - def Tactic.LibrarySearch.solveByElim Modified lean_packages/manifest.json Modified scripts/nolints.json Modified test/Contrapose.lean Modified test/PermuteGoals.lean Modified test/Set.lean Modified test/Simps.lean Modified test/SwapVar.lean Modified test/Use.lean Modified test/Zify.lean Modified test/basicTactics.lean Modified test/cases.lean Modified test/convert.lean Modified test/fin_cases.lean Modified test/norm_cast.lean Modified test/push_neg.lean Modified test/rcases.lean Modified test/simp_intro.lean 2022-11-03 02:52:56 172bedc feat: port algebra.group_power.identities (#531) An easy port, no changes required, which serves as a test of some of the new `ring` features. Note: the mathlib3 file https://github.com/leanprover-community/mathlib/blob/master/src/algebra/group_power/identities.lean includes quite a lot of very long lines, for aesthetic reasons. Should they be nolinted here? If so, how? ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/GroupPower/Identities.lean + theorem pow_four_add_four_mul_pow_four' + theorem pow_four_add_four_mul_pow_four + theorem sq_add_mul_sq_mul_sq_add_mul_sq + theorem sq_add_sq_mul_sq_add_sq + theorem sum_eight_sq_mul_sum_eight_sq + theorem sum_four_sq_mul_sum_four_sq 2022-11-03 02:45:58 7901e76 feat: port Logic.Unique (#512) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Init/Data/Fin/Basic.lean + theorem Fin.eq_of_veq + theorem Fin.ne_of_vne + theorem Fin.veq_of_eq + theorem Fin.vne_of_ne Modified Mathlib/Logic/IsEmpty.lean Added Mathlib/Logic/Unique.lean + theorem Fin.default_eq_zero + theorem Fin.eq_zero + def Function.Surjective.uniqueOfSurjectiveConst + theorem Option.subsingleton_iff_is_empty + theorem PUnit.default_eq_unit + theorem Pi.default_apply + theorem Pi.default_def + theorem Unique.bijective + theorem Unique.default_eq + theorem Unique.eq_default + theorem Unique.exists_iff + theorem Unique.forall_iff + def Unique.mk' + structure Unique + theorem eq_const_of_unique + theorem heq_const_of_unique + def uniqueOfSubsingleton + def uniqueProp + theorem unique_iff_exists_unique + theorem unique_iff_subsingleton_and_nonempty + theorem unique_subtype_iff_exists_unique Modified Mathlib/Tactic/Inhabit.lean Modified test/Inhabit.lean + def Unique.mk' + structure Unique 2022-11-02 22:22:12 ecd4645 feat: port Logic.Function.Basic (#511) ESTIMATED CHANGES Modified Mathlib/Init/Function.lean Modified Mathlib/Logic/Basic.lean Modified Mathlib/Logic/Function/Basic.lean + theorem Bool.involutive_not + theorem Function.Bijective.comp_left + theorem Function.Bijective.comp_right - theorem Function.Bijective.exists_unique + theorem Function.Bijective.exists_unique_iff +/- theorem Function.Bijective.of_comp_iff' +/- theorem Function.Bijective.of_comp_iff + theorem Function.Injective.comp_left - def Function.Injective.decidable_eq +/- theorem Function.Injective.eq_iff' +/- theorem Function.Injective.eq_iff - theorem Function.Injective.has_LeftInverse + theorem Function.Injective.has_left_inverse +/- theorem Function.Injective.ne +/- theorem Function.Injective.ne_iff' +/- theorem Function.Injective.ne_iff +/- theorem Function.Injective.of_comp +/- theorem Function.Injective.of_comp_iff' +/- theorem Function.Injective.of_comp_iff + theorem Function.Injective.surjective_comp_right' + theorem Function.Injective.surjective_comp_right +/- theorem Function.Injective2.eq_iff + theorem Function.Injective2.left' + theorem Function.Injective2.right' +/- def Function.Injective2 +/- theorem Function.Involutive.comp_self +/- def Function.Involutive + def Function.IsPartialInv - theorem Function.LeftInverse.RightInverse + theorem Function.LeftInverse.cast_eq +/- theorem Function.LeftInverse.comp - theorem Function.LeftInverse.eq_RightInverse + theorem Function.LeftInverse.eq_rec_eq + theorem Function.LeftInverse.eq_rec_on_eq + theorem Function.LeftInverse.eq_right_inverse + theorem Function.LeftInverse.rightInverse + theorem Function.LeftInverse.right_inverse_of_injective + theorem Function.LeftInverse.right_inverse_of_surjective +/- theorem Function.LeftInverse.surjective - theorem Function.LeftInverse_iff_comp - theorem Function.LeftInverse_inv_fun - theorem Function.LeftInverse_surj_inv - theorem Function.RightInverse.LeftInverse +/- theorem Function.RightInverse.comp +/- theorem Function.RightInverse.injective + theorem Function.RightInverse.leftInverse + theorem Function.RightInverse.left_inverse_of_injective + theorem Function.RightInverse.left_inverse_of_surjective - theorem Function.RightInverse_iff_comp - theorem Function.RightInverse_inv_fun - theorem Function.RightInverse_surj_inv + theorem Function.Surjective.comp_left - theorem Function.Surjective.exists - theorem Function.Surjective.exists₂ - theorem Function.Surjective.exists₃ - theorem Function.Surjective.forall - theorem Function.Surjective.forall₂ - theorem Function.Surjective.forall₃ - theorem Function.Surjective.has_RightInverse + theorem Function.Surjective.has_right_inverse + theorem Function.Surjective.injective_comp_right +/- theorem Function.Surjective.of_comp +/- theorem Function.Surjective.of_comp_iff' +/- theorem Function.Surjective.of_comp_iff + theorem Function.apply_extend +/- theorem Function.apply_update + theorem Function.apply_update₂ +/- theorem Function.bijective_iff_exists_unique +/- theorem Function.bijective_iff_has_inverse +/- theorem Function.cantor_injective +/- theorem Function.cantor_surjective +/- theorem Function.comp_const +/- theorem Function.comp_update +/- theorem Function.const_comp +/- theorem Function.const_def + theorem Function.const_inj + theorem Function.const_injective +/- theorem Function.curry_apply +/- theorem Function.eq_update_iff + theorem Function.eval_apply + theorem Function.exists_update_iff + def Function.extend +/- theorem Function.extend_apply +/- theorem Function.extend_comp +/- theorem Function.extend_def + theorem Function.extend_injective +/- theorem Function.funext_iff +/- theorem Function.id_def - theorem Function.injective_iff_has_LeftInverse + theorem Function.injective_iff_has_left_inverse +/- theorem Function.injective_of_partial_inv +/- theorem Function.injective_of_partial_inv_right +/- theorem Function.injective_of_subsingleton +/- theorem Function.injective_surj_inv +/- theorem Function.inv_fun_comp +/- theorem Function.inv_fun_eq - theorem Function.inv_fun_eq_of_injective_of_RightInverse + theorem Function.inv_fun_eq_of_injective_of_right_inverse +/- theorem Function.inv_fun_neg - theorem Function.inv_fun_on_eq' - theorem Function.inv_fun_on_eq - theorem Function.inv_fun_on_mem - theorem Function.inv_fun_on_neg - theorem Function.inv_fun_on_pos +/- theorem Function.inv_fun_surjective +/- theorem Function.involutive_iff_iter_2_eq_id - def Function.is_partial_inv +/- theorem Function.is_partial_inv_left + theorem Function.left_inverse_iff_comp + theorem Function.left_inverse_inv_fun + theorem Function.left_inverse_surj_inv + theorem Function.ne_iff + theorem Function.not_surjective_Type +/- theorem Function.partial_inv_left +/- theorem Function.partial_inv_of_injective + theorem Function.right_inverse_iff_comp + theorem Function.right_inverse_inv_fun + theorem Function.right_inverse_surj_inv +/- theorem Function.sometimes_spec +/- theorem Function.surj_inv_eq + theorem Function.surjective_eval - theorem Function.surjective_iff_has_RightInverse + theorem Function.surjective_iff_has_right_inverse + theorem Function.surjective_of_right_cancellable_Prop +/- theorem Function.surjective_to_subsingleton +/- theorem Function.uncurry_apply_pair +/- theorem Function.uncurry_bicompl +/- theorem Function.uncurry_bicompr +/- theorem Function.uncurry_def +/- def Function.update +/- theorem Function.update_apply +/- theorem Function.update_comm +/- theorem Function.update_comp_eq_of_forall_ne' +/- theorem Function.update_comp_eq_of_forall_ne +/- theorem Function.update_comp_eq_of_injective' +/- theorem Function.update_comp_eq_of_injective +/- theorem Function.update_eq_iff +/- theorem Function.update_eq_self +/- theorem Function.update_idem +/- theorem Function.update_injective +/- theorem Function.update_noteq +/- theorem Function.update_same + theorem InvImage.equivalence + theorem IsSymmOp.flip_eq + def Set.SeparatesPoints + def Set.piecewise + theorem cast_bijective + theorem cast_inj + theorem eq_mp_bijective + theorem eq_mpr_bijective + theorem eq_rec_inj + theorem eq_rec_on_bijective - def set.piecewise - def set.separates_points 2022-11-02 22:11:34 fabc6b9 feat: port core Lean 3 init.data.bool.{basic,lemmas} (#523) Because Lean 3 `band` and `and` have become Lean 4 `and` and `And`, and because of Lean 4 naming conventions, there are various name clashes between booly and proppy lemmas (e.g. `and_assoc` in Lean 4 is about Props). I resolve this by putting all the booly lemmas into the Bool namespace. In this PR I port all core Lean 3 bool lemmas which aren't in core Lean 4 into mathlib4, and do a lot of #align ing (including aligning core Lean 3 lemmas with their corresponding core Lean 4 names). This PR is a prerequisite for a port of mathlib3 data.bool.basic, which I have also completed and will PR next, but it seemed to me that this PR already had the possibility of generating some discussion points so I thought I'd try this first. Some core Lean 3 lemma names are quite idiosyncratic but I've faithfully copied them over mindlessly, at least in this initial commit. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Init/Align.lean Added Mathlib/Init/Data/Bool/Basic.lean + def xor Added Mathlib/Init/Data/Bool/Lemmas.lean + theorem Bool.and_coe_iff + theorem Bool.and_eq_false_eq_eq_false_or_eq_false + theorem Bool.and_eq_true_eq_eq_true_and_eq_true + theorem Bool.bool_eq_false + theorem Bool.bool_iff_false + theorem Bool.coe_false + theorem Bool.coe_sort_false + theorem Bool.coe_sort_true + theorem Bool.coe_true + theorem Bool.cond_false + theorem Bool.cond_self.{u} + theorem Bool.cond_true + theorem Bool.decide_congr + theorem Bool.decide_false + theorem Bool.decide_false_iff + theorem Bool.decide_iff + theorem Bool.decide_true + theorem Bool.eq_false_eq_not_eq_true + theorem Bool.eq_false_of_not_eq_true + theorem Bool.eq_true_eq_not_eq_false + theorem Bool.eq_true_of_not_eq_false + theorem Bool.false_eq_true_eq_False + theorem Bool.false_xor + theorem Bool.ite_eq_false_distrib + theorem Bool.ite_eq_true_distrib + theorem Bool.not_eq_false_eq_eq_true + theorem Bool.not_eq_true_eq_eq_false + theorem Bool.of_decide_false + theorem Bool.of_decide_true + theorem Bool.or_coe_iff + theorem Bool.or_eq_false_eq_eq_false_and_eq_false + theorem Bool.or_eq_true_eq_eq_true_or_eq_true + theorem Bool.true_eq_false_eq_False + theorem Bool.true_xor + theorem Bool.xor_coe_iff + theorem Bool.xor_false + theorem Bool.xor_self + theorem Bool.xor_true 2022-11-02 03:07:33 bf4eda5 feat: port convert_to (#527) There is still the issue that the original mathlib3 version allows for holes in the type, but the simplest version of `convert_to` works. ESTIMATED CHANGES Modified Mathlib/Mathport/Syntax.lean Modified Mathlib/Tactic/Convert.lean Modified test/convert.lean 2022-11-02 01:18:53 f8373eb fix: missing imports (#529) ESTIMATED CHANGES Modified Mathlib/Mathport/Syntax.lean 2022-11-01 23:52:57 f922308 fix: `solve_by_elim` syntax regression (#528) ESTIMATED CHANGES Modified Mathlib/Tactic/SolveByElim.lean 2022-11-01 23:28:01 6f1cc3b feat: `ring_exp` tactic, subtraction in `ring` (#519) Another complete rewrite. This implements one `ring` to rule them all: it incorporates both `ring_exp` and `ring` behaviors, now under the name `ring`. (`ring_exp` had some small (1.4x) performance issues that prevented it from being used by default; I'm hoping that those issues are fixed now, and we can revisit later if it becomes an issue.) ESTIMATED CHANGES Modified Mathlib/Algebra/GroupPower/Basic.lean + theorem succ_nsmul' Modified Mathlib/Algebra/GroupPower/Lemmas.lean + theorem nsmul_eq_mul' + theorem nsmul_eq_mul Modified Mathlib/Algebra/Ring/Basic.lean + theorem Commute.add_left + theorem Commute.add_right + theorem Commute.zero_left + theorem Commute.zero_right + theorem Nat.cast_commute + theorem mul_neg + theorem neg_mul +/- theorem neg_mul_eq_neg_mul Modified Mathlib/Mathport/Syntax.lean Modified Mathlib/Tactic/NormNum/Basic.lean Modified Mathlib/Tactic/NormNum/Core.lean + def Int.rawCast + theorem Mathlib.Meta.NormNum.IsInt.of_raw + theorem Mathlib.Meta.NormNum.IsInt.to_raw_eq + theorem Mathlib.Meta.NormNum.IsNat.of_raw +/- theorem Mathlib.Meta.NormNum.IsNat.to_eq + theorem Mathlib.Meta.NormNum.IsNat.to_raw_eq + def Mathlib.Meta.NormNum.Result.ofRawInt + def Mathlib.Meta.NormNum.Result.ofRawNat + def Mathlib.Meta.NormNum.Result.toRawEq + def Nat.rawCast Modified Mathlib/Tactic/Ring.lean + def Lean.LOption.toOption + def Mathlib.Tactic.Ring.Cache.nat +/- structure Mathlib.Tactic.Ring.Cache + structure Mathlib.Tactic.Ring.Context + def Mathlib.Tactic.Ring.ExBase.evalPos + def Mathlib.Tactic.Ring.ExBase.toProd + inductive Mathlib.Tactic.Ring.ExBase + def Mathlib.Tactic.Ring.ExProd.coeff + def Mathlib.Tactic.Ring.ExProd.evalPos + def Mathlib.Tactic.Ring.ExProd.mkNat + def Mathlib.Tactic.Ring.ExProd.mkNegNat + def Mathlib.Tactic.Ring.ExProd.toSum + inductive Mathlib.Tactic.Ring.ExProd + def Mathlib.Tactic.Ring.ExSum.evalPos + inductive Mathlib.Tactic.Ring.ExSum + structure Mathlib.Tactic.Ring.ExtractCoeff - def Mathlib.Tactic.Ring.HornerExpr.e - def Mathlib.Tactic.Ring.HornerExpr.isZero - def Mathlib.Tactic.Ring.HornerExpr.pp - def Mathlib.Tactic.Ring.HornerExpr.reflConv - def Mathlib.Tactic.Ring.HornerExpr.xadd' - inductive Mathlib.Tactic.Ring.HornerExpr + inductive Mathlib.Tactic.Ring.Overlap + structure Mathlib.Tactic.Ring.Result +/- def Mathlib.Tactic.Ring.RingM.run - def Mathlib.Tactic.Ring.State.numAtoms + theorem Mathlib.Tactic.Ring.add_congr + theorem Mathlib.Tactic.Ring.add_mul + theorem Mathlib.Tactic.Ring.add_overlap_pf + theorem Mathlib.Tactic.Ring.add_overlap_pf_zero + theorem Mathlib.Tactic.Ring.add_pf_add_gt + theorem Mathlib.Tactic.Ring.add_pf_add_lt + theorem Mathlib.Tactic.Ring.add_pf_add_overlap + theorem Mathlib.Tactic.Ring.add_pf_add_overlap_zero + theorem Mathlib.Tactic.Ring.add_pf_add_zero + theorem Mathlib.Tactic.Ring.add_pf_zero_add + theorem Mathlib.Tactic.Ring.add_pos_left + theorem Mathlib.Tactic.Ring.add_pos_right + theorem Mathlib.Tactic.Ring.atom_pf + theorem Mathlib.Tactic.Ring.cast_neg + theorem Mathlib.Tactic.Ring.cast_pos + theorem Mathlib.Tactic.Ring.cast_zero + theorem Mathlib.Tactic.Ring.coeff_mul + theorem Mathlib.Tactic.Ring.coeff_one - theorem Mathlib.Tactic.Ring.const_add_horner + theorem Mathlib.Tactic.Ring.const_pos + def Mathlib.Tactic.Ring.evalAddOverlap +/- def Mathlib.Tactic.Ring.evalAtom + def Mathlib.Tactic.Ring.evalCast - def Mathlib.Tactic.Ring.evalConstMul - def Mathlib.Tactic.Ring.evalHorner + def Mathlib.Tactic.Ring.evalMul + def Mathlib.Tactic.Ring.evalMul₁ + def Mathlib.Tactic.Ring.evalNSMul + def Mathlib.Tactic.Ring.evalNeg + def Mathlib.Tactic.Ring.evalNegProd + def Mathlib.Tactic.Ring.evalPow + def Mathlib.Tactic.Ring.evalPowAtom + def Mathlib.Tactic.Ring.evalPowProd + def Mathlib.Tactic.Ring.evalPowProdAtom + def Mathlib.Tactic.Ring.evalSub + def Mathlib.Tactic.Ring.extractCoeff - def Mathlib.Tactic.Ring.horner - theorem Mathlib.Tactic.Ring.horner_add_const - theorem Mathlib.Tactic.Ring.horner_add_horner_eq - theorem Mathlib.Tactic.Ring.horner_add_horner_gt - theorem Mathlib.Tactic.Ring.horner_add_horner_lt - theorem Mathlib.Tactic.Ring.horner_atom - theorem Mathlib.Tactic.Ring.horner_const_mul - theorem Mathlib.Tactic.Ring.horner_horner - theorem Mathlib.Tactic.Ring.horner_mul_const - theorem Mathlib.Tactic.Ring.horner_mul_horner - theorem Mathlib.Tactic.Ring.horner_mul_horner_zero - theorem Mathlib.Tactic.Ring.horner_pow + def Mathlib.Tactic.Ring.instCommSemiringNat - def Mathlib.Tactic.Ring.mkAppCS + theorem Mathlib.Tactic.Ring.mul_add + theorem Mathlib.Tactic.Ring.mul_congr + theorem Mathlib.Tactic.Ring.mul_exp_pos + theorem Mathlib.Tactic.Ring.mul_one + theorem Mathlib.Tactic.Ring.mul_pf_left + theorem Mathlib.Tactic.Ring.mul_pf_right + theorem Mathlib.Tactic.Ring.mul_pow + theorem Mathlib.Tactic.Ring.mul_pp_pf_overlap + theorem Mathlib.Tactic.Ring.mul_zero + theorem Mathlib.Tactic.Ring.nat_cast_add + theorem Mathlib.Tactic.Ring.nat_cast_mul + theorem Mathlib.Tactic.Ring.nat_cast_nat + theorem Mathlib.Tactic.Ring.nat_cast_zero + theorem Mathlib.Tactic.Ring.neg_add + theorem Mathlib.Tactic.Ring.neg_congr + theorem Mathlib.Tactic.Ring.neg_mul + theorem Mathlib.Tactic.Ring.neg_one_mul + theorem Mathlib.Tactic.Ring.neg_zero + theorem Mathlib.Tactic.Ring.nsmul_congr + theorem Mathlib.Tactic.Ring.of_eq + theorem Mathlib.Tactic.Ring.one_mul + theorem Mathlib.Tactic.Ring.one_pow + theorem Mathlib.Tactic.Ring.pow_add + theorem Mathlib.Tactic.Ring.pow_atom + theorem Mathlib.Tactic.Ring.pow_bit0 + theorem Mathlib.Tactic.Ring.pow_bit1 + theorem Mathlib.Tactic.Ring.pow_congr + theorem Mathlib.Tactic.Ring.pow_nat + theorem Mathlib.Tactic.Ring.pow_one + theorem Mathlib.Tactic.Ring.pow_one_cast + theorem Mathlib.Tactic.Ring.pow_prod_atom - theorem Mathlib.Tactic.Ring.pow_succ_eq + theorem Mathlib.Tactic.Ring.pow_zero + theorem Mathlib.Tactic.Ring.single_pow + theorem Mathlib.Tactic.Ring.smul_eq_cast + theorem Mathlib.Tactic.Ring.smul_nat + theorem Mathlib.Tactic.Ring.sub_congr + theorem Mathlib.Tactic.Ring.sub_pf - theorem Mathlib.Tactic.Ring.subst_into_add - theorem Mathlib.Tactic.Ring.subst_into_mul - theorem Mathlib.Tactic.Ring.subst_into_pow + def Mathlib.Tactic.Ring.sℕ - theorem Mathlib.Tactic.Ring.zero_horner + theorem Mathlib.Tactic.Ring.zero_mul + theorem Mathlib.Tactic.Ring.zero_pow Modified lean_packages/manifest.json Modified test/ring.lean 2022-11-01 23:28:00 0c6ca88 feat: library_search using (#503) Implement the `library_search using X` clause, which only returns results for which `X` appears as a subexpression. The mathlib3 implementation is still cleverer, but would require full implementation of `solveByElim` with backtracking across multiple goals. I'll get there later. ESTIMATED CHANGES Modified Mathlib/Tactic/LibrarySearch.lean +/- def Tactic.LibrarySearch.librarySearch Modified test/librarySearch.lean 2022-11-01 22:54:12 243f55c chore(init/data/int): move lemmas (#525) The file `Init.Data.Int.Basic` contained three declarations: * `Int.LinearOrder` * `Int.coe_nat_le` * `Int.coe_nat_lt` In mathlib3 all three of these were in other files: the first in `Init.Data.Int.Order` and the two last in `Data.Int.Basic`. I propose moving them to the corresponding mathlib4 files so that people know where to look for them. [Zulip](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/Porting.20status.20for.20lean3.20core/near/306899172) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Control/Random.lean Modified Mathlib/Data/Int/Basic.lean + theorem Int.coe_nat_le + theorem Int.coe_nat_lt Renamed Mathlib/Init/Data/Int/Basic.lean to Mathlib/Init/Data/Int/Order.lean - theorem Int.coe_nat_le - theorem Int.coe_nat_lt Modified test/norm_cast.lean 2022-11-01 20:56:00 f8f7fd5 feat: upgrade solve_by_elim (#474) This is still far from feature parity with mathlib3, but at least you can add custom expressions, and omit the local context. ESTIMATED CHANGES Modified Mathlib/Tactic/LibrarySearch.lean + def Tactic.LibrarySearch.solveByElim Modified Mathlib/Tactic/SolveByElim.lean + def Lean.Meta.getLocalHyps +/- def Lean.Meta.solveByElim + def Lean.Tactic.solveByElimImpl Modified test/SolveByElim.lean - def test1 - def test2 - def test3 - def test4 - def test5 - def test6 2022-11-01 00:14:24 50ba914 feat: port abel1 (#509) This is a quick and dirty port of `abel1`, just a direct translation of what is in Lean 3, with minimal modifications to use the new `norm_num`. (This PR depends on #507, integer operations for norm_num.) Recall `abel1` is the tactic that solves equations; I haven't done the normalizer tactic `abel` yet, but hopefully it's straightforward from here. - [x] depends on: #507 ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Group/Basic.lean Modified Mathlib/Algebra/Group/Defs.lean + theorem ofNat_zsmul + theorem zero_zsmul - theorem zpow_coe_nat +/- theorem zpow_eq_pow + theorem zpow_negSucc - theorem zpow_neg_succ_of_nat + theorem zpow_ofNat - theorem zpow_of_nat +/- theorem zpow_zero + theorem zsmul_eq_smul Modified Mathlib/Algebra/GroupPower/Basic.lean + theorem add_nsmul + theorem nsmul_zero + theorem one_nsmul + theorem one_pow Modified Mathlib/Algebra/Ring/Basic.lean + theorem coe_nat_zsmul + theorem zpow_coe_nat Modified Mathlib/Mathport/Syntax.lean Added Mathlib/Tactic/Abel.lean + def Lean.Expr.ofInt + def Lean.Expr.ofNat + def Tactic.Abel.Context.app + def Tactic.Abel.Context.iapp + def Tactic.Abel.Context.intToExpr + def Tactic.Abel.Context.mkApp + def Tactic.Abel.Context.mkTerm + structure Tactic.Abel.Context + def Tactic.Abel.NormalExpr.e + def Tactic.Abel.NormalExpr.term' + def Tactic.Abel.NormalExpr.zero' + inductive Tactic.Abel.NormalExpr + def Tactic.Abel.add_g + theorem Tactic.Abel.const_add_term + theorem Tactic.Abel.const_add_termg + def Tactic.Abel.eval_atom + def Tactic.Abel.eval_neg + def Tactic.Abel.eval_smul' + def Tactic.Abel.eval_smul + def Tactic.Abel.mkContext + def Tactic.Abel.smul + def Tactic.Abel.smulg + theorem Tactic.Abel.subst_into_add + theorem Tactic.Abel.subst_into_addg + theorem Tactic.Abel.subst_into_negg + theorem Tactic.Abel.subst_into_smul + theorem Tactic.Abel.subst_into_smul_upcast + theorem Tactic.Abel.subst_into_smulg + def Tactic.Abel.term + theorem Tactic.Abel.term_add_const + theorem Tactic.Abel.term_add_constg + theorem Tactic.Abel.term_add_term + theorem Tactic.Abel.term_add_termg + theorem Tactic.Abel.term_atom + theorem Tactic.Abel.term_atomg + theorem Tactic.Abel.term_neg + theorem Tactic.Abel.term_smul + theorem Tactic.Abel.term_smulg + def Tactic.Abel.termg + theorem Tactic.Abel.unfold_smul + theorem Tactic.Abel.unfold_smulg + theorem Tactic.Abel.unfold_sub + theorem Tactic.Abel.unfold_zsmul + theorem Tactic.Abel.zero_smul + theorem Tactic.Abel.zero_smulg + theorem Tactic.Abel.zero_term + theorem Tactic.Abel.zero_termg + def Tactic.abel1Impl Added test/abel.lean + def id' 2022-10-31 23:16:16 42d80ac feat: port `zify` (#517) Initial port of `zify`. The tests are not really good, this is due to the fact that the relevant `norm_cast` lemmas do not exist yet. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Mathport/Syntax.lean Added Mathlib/Tactic/Zify.lean + theorem Mathlib.Tactic.Zify.nat_cast_eq + theorem Mathlib.Tactic.Zify.nat_cast_le + theorem Mathlib.Tactic.Zify.nat_cast_lt + theorem Mathlib.Tactic.Zify.nat_cast_ne Added Mathlib/Tactic/Zify/Attr.lean Added test/Zify.lean 2022-10-31 22:34:45 ba35569 chore: bump to 2022-10-29 (#522) ESTIMATED CHANGES Modified Mathlib/Mathport/Syntax.lean Modified Mathlib/Tactic/SimpRw.lean Modified lean-toolchain 2022-10-31 21:45:31 8c399ac chore: reactivate iff [congr] annotations (#515) since the congr tactic now accepts `iff` lemmas, like in Lean 3, see https://github.com/leanprover/lean4/issues/1763 ESTIMATED CHANGES Modified Mathlib/Logic/Basic.lean 2022-10-30 23:48:43 e2dbc0a feat: port split_ifs tactic (#508) This is intended to be as close as possible of a translation of the mathlib3 version: https://github.com/leanprover-community/mathlib/blob/12a7da107a39ef936c5d4a8cb873018ad05b07a6/src/tactic/split_ifs.lean ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Mathport/Syntax.lean Added Mathlib/Tactic/SplitIfs.lean Added test/SplitIfs.lean 2022-10-30 14:28:34 8ad035b fix: error message in #align (#524) As [reported on Zulip](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/.23align.20bug.20when.20already.20aligned/near/306961859). ESTIMATED CHANGES Modified Mathlib/Mathport/Rename.lean 2022-10-30 02:11:04 d372dfb feat: typeclasses for linarith (#520) These are just partial ports of files, containing the typeclasses that `linarith` wants. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Group/Defs.lean Modified Mathlib/Algebra/Order/Monoid.lean Modified Mathlib/Algebra/Order/Ring.lean Added Mathlib/Logic/Nontrivial.lean 2022-10-30 01:42:34 38a3856 chore: remove nolints (#521) After https://github.com/leanprover/lean4/issues/1730 was closed, we can remove some nolints. ESTIMATED CHANGES Modified Mathlib/Algebra/Order/Group.lean Modified Mathlib/Algebra/Order/Ring.lean 2022-10-28 22:53:53 760faf5 feat: port CategoryTheory.ConcreteCategory.Bundled (#514) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/CategoryTheory/ConcreteCategory/Bundled.lean + theorem CategoryTheory.Bundled.coe_mk + def CategoryTheory.Bundled.map + def CategoryTheory.Bundled.of + structure CategoryTheory.Bundled 2022-10-28 16:17:48 fb1d1c6 chore: bump lean 2022-10-28 (#513) ESTIMATED CHANGES Modified lean-toolchain Modified lean_packages/manifest.json 2022-10-27 14:32:09 bb3e01e chore: update lean + std4 10-27 (#510) The support for `Max` and `Min` classes is still somewhat minimal (no pun intended). The relevant files still require proper porting. ESTIMATED CHANGES Modified Mathlib/Data/Fin/Basic.lean Modified Mathlib/Data/Sigma/Basic.lean Modified Mathlib/Init/Algebra/Functions.lean +/- theorem le_max_left +/- theorem le_max_right +/- theorem le_min + theorem max_def +/- theorem max_le +/- theorem max_self + theorem min_def +/- theorem min_le_left +/- theorem min_le_right +/- theorem min_self Modified Mathlib/Init/Algebra/Order.lean Modified Mathlib/Init/Data/Nat/Lemmas.lean Modified Mathlib/Order/Basic.lean +/- theorem LinearOrder.to_partial_order_injective Modified Mathlib/Tactic/CommandQuote.lean Modified Mathlib/Tactic/Simps/Basic.lean Modified lean-toolchain Modified lean_packages/manifest.json Modified scripts/runLinter.lean 2022-10-27 06:57:18 7893f87 feat: add `@[binport]` (internal) attr for mathport defs (#506) ESTIMATED CHANGES Modified Mathlib/Mathport/Rename.lean 2022-10-27 04:20:27 960dc0e feat: integer operations in `norm_num` (#507) Another major rewrite of `norm_num`, this time to support returning integers as well as nats. Rational numbers are included but stubbed for now pending the rest of the algebraic typeclasses. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/GroupPower/Lemmas.lean + theorem Int.cast_pow + theorem pow_eq Modified Mathlib/Algebra/GroupWithZero/Defs.lean +/- def Int.cast +/- theorem Int.cast_negSucc +/- theorem Int.cast_ofNat +/- theorem Int.cast_one +/- theorem Int.cast_zero Modified Mathlib/Algebra/Ring/Basic.lean + theorem mul_sub_right_distrib Added Mathlib/Data/Int/Basic.lean Added Mathlib/Data/Int/Cast.lean + theorem Int.cast_mul Added Mathlib/Data/Int/Cast/Defs.lean + theorem Int.cast_add + theorem Int.cast_neg + theorem Int.cast_sub + theorem Int.cast_subNatNat + theorem Nat.cast_sub Modified Mathlib/Tactic/Convert.lean Modified Mathlib/Tactic/NormNum/Basic.lean +/- def Mathlib.Meta.NormNum.evalAdd + def Mathlib.Meta.NormNum.evalIntCast +/- def Mathlib.Meta.NormNum.evalMul +/- def Mathlib.Meta.NormNum.evalNatCast + def Mathlib.Meta.NormNum.evalNeg +/- def Mathlib.Meta.NormNum.evalOfNat +/- def Mathlib.Meta.NormNum.evalOne +/- def Mathlib.Meta.NormNum.evalPow + def Mathlib.Meta.NormNum.evalSub +/- def Mathlib.Meta.NormNum.evalZero - def Mathlib.Meta.NormNum.instSemiringNat + theorem Mathlib.Meta.NormNum.isInt_add + theorem Mathlib.Meta.NormNum.isInt_cast + theorem Mathlib.Meta.NormNum.isInt_mul + theorem Mathlib.Meta.NormNum.isInt_neg + theorem Mathlib.Meta.NormNum.isInt_pow + theorem Mathlib.Meta.NormNum.isInt_sub +/- theorem Mathlib.Meta.NormNum.isNat_add +/- theorem Mathlib.Meta.NormNum.isNat_cast + theorem Mathlib.Meta.NormNum.isNat_int_cast +/- theorem Mathlib.Meta.NormNum.isNat_mul + theorem Mathlib.Meta.NormNum.isNat_ofNat +/- theorem Mathlib.Meta.NormNum.isNat_one +/- theorem Mathlib.Meta.NormNum.isNat_pow +/- theorem Mathlib.Meta.NormNum.isNat_zero - def Mathlib.Meta.NormNum.withSemiring Modified Mathlib/Tactic/NormNum/Core.lean + theorem Mathlib.Meta.NormNum.IsInt.neg_to_eq + theorem Mathlib.Meta.NormNum.IsInt.nonneg_to_eq + theorem Mathlib.Meta.NormNum.IsInt.to_isNat + structure Mathlib.Meta.NormNum.IsInt + theorem Mathlib.Meta.NormNum.IsNat.raw_refl + theorem Mathlib.Meta.NormNum.IsNat.to_eq + theorem Mathlib.Meta.NormNum.IsNat.to_isInt + structure Mathlib.Meta.NormNum.IsNat + structure Mathlib.Meta.NormNum.IsRat + inductive Mathlib.Meta.NormNum.Result' + def Mathlib.Meta.NormNum.Result.isInt + def Mathlib.Meta.NormNum.Result.isNat + def Mathlib.Meta.NormNum.Result.isNegNat + def Mathlib.Meta.NormNum.Result.isRat + def Mathlib.Meta.NormNum.Result.toInt - def Mathlib.Meta.NormNum.Result.toIsNat - def Mathlib.Meta.NormNum.Result.toIsNatQ +/- def Mathlib.Meta.NormNum.Result.toSimpResult + def Mathlib.Meta.NormNum.Result - inductive Mathlib.Meta.NormNum.Result +/- def Mathlib.Meta.NormNum.derive + def Mathlib.Meta.NormNum.deriveInt + def Mathlib.Meta.NormNum.deriveNat' + def Mathlib.Meta.NormNum.deriveNat - def Mathlib.Meta.NormNum.deriveQ +/- def Mathlib.Meta.NormNum.eval - theorem Mathlib.Meta.NormNum.eval_of_isNat + def Mathlib.Meta.NormNum.inferRing + def Mathlib.Meta.NormNum.inferSemiring + def Mathlib.Meta.NormNum.instRingInt + def Mathlib.Meta.NormNum.instSemiringNat + def Mathlib.Meta.NormNum.isIntLit - def Mathlib.Meta.NormNum.isNat + def Mathlib.Meta.NormNum.isNatLit + def Mathlib.Meta.NormNum.isNormalForm + def Mathlib.Meta.NormNum.isRatLit + def Mathlib.Meta.NormNum.mkRawIntLit Modified lean_packages/manifest.json Modified test/norm_num.lean 2022-10-26 09:33:51 f64a355 feat: port Data.Option.Defs (#504) ESTIMATED CHANGES Modified Mathlib/Data/List/Basic.lean - theorem Option.mem_toList Modified Mathlib/Data/Option/Basic.lean +/- theorem Option.lift_or_get_none_left +/- theorem Option.lift_or_get_none_right Modified Mathlib/Data/Option/Defs.lean + def Option.decidableEqNone + def Option.iget + theorem Option.iget_some + theorem Option.is_none_iff_eq_none - def Option.lift_or_get - def Option.melim + theorem Option.mem_some_iff + theorem Option.mem_toList - def Option.mgetD - def Option.mmap.{u, 2022-10-25 00:59:33 2f2b44a feat: Port Logic.Nonempty (#487) - [x] depends on: #484 * Deleted `nonempty_empty` since `std4` now has that as `not_nonempty_empty` and as a simp lemma * Added an import to access `Zero` for `Zero.Nonempty` * Could not provide a `One.Nonempty` because `One` isn't defined yet * Used mathport's implicit type params, not sure what the style guidelines are * Gave previously anonymous instances names: `Prod.Nonempty`, `Pi.Nonempty` ESTIMATED CHANGES Modified Mathlib/Init/Logic.lean Modified Mathlib/Logic/Nonempty.lean +/- theorem Classical.nonempty_pi + theorem Function.Surjective.nonempty +/- theorem Nonempty.elim_to_inhabited +/- theorem Nonempty.exists +/- theorem Nonempty.forall +/- theorem Nonempty.map +/- theorem exists_true_iff_nonempty +/- theorem nonempty_Prop +/- theorem nonempty_plift +/- theorem nonempty_pprod +/- theorem nonempty_psigma +/- theorem nonempty_psum +/- theorem nonempty_sigma +/- theorem nonempty_subtype +/- theorem not_nonempty_iff_imp_false +/- theorem subsingleton_of_not_nonempty Modified test/choose.lean 2022-10-25 00:37:57 adad544 feat: port Data.Sum.Basic (#497) Changed the import from `Data.Option.Basic` to `Logic.Function.Basic` because that is enough ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Data/Sum/Basic.lean + theorem Function.Injective.sum_elim + theorem Function.Injective.sum_map + theorem Function.Surjective.sum_map + theorem Sum.Lex.mono + theorem Sum.Lex.mono_left + theorem Sum.Lex.mono_right + inductive Sum.Lex + theorem Sum.LiftRel.mono + theorem Sum.LiftRel.mono_left + theorem Sum.LiftRel.mono_right + inductive Sum.LiftRel + theorem Sum.comp_elim + theorem Sum.elim_comp_inl + theorem Sum.elim_comp_inl_inr + theorem Sum.elim_comp_inr + theorem Sum.elim_comp_map + theorem Sum.elim_const_const + theorem Sum.elim_inl + theorem Sum.elim_inl_inr + theorem Sum.elim_inr + theorem Sum.elim_lam_const_lam_const + theorem Sum.elim_update_left + theorem Sum.elim_update_right + def Sum.getLeft + theorem Sum.getLeft_eq_none_iff + def Sum.getRight + theorem Sum.getRight_eq_none_iff + theorem Sum.inl.inj_iff + theorem Sum.inl_injective + theorem Sum.inl_ne_inr + theorem Sum.inr.inj_iff + theorem Sum.inr_injective + theorem Sum.inr_ne_inl + def Sum.isLeft + def Sum.isRight + theorem Sum.lex_acc_inl + theorem Sum.lex_acc_inr + theorem Sum.lex_inl_inl + theorem Sum.lex_inr_inl + theorem Sum.lex_inr_inr + theorem Sum.lex_wf + theorem Sum.liftRel_inl_inl + theorem Sum.liftRel_inr_inr + theorem Sum.liftRel_subrelation_lex + theorem Sum.liftRel_swap_iff + theorem Sum.map_comp_map + theorem Sum.map_id_id + theorem Sum.map_inl + theorem Sum.map_inr + theorem Sum.map_map + theorem Sum.not_liftRel_inl_inr + theorem Sum.not_liftRel_inr_inl + def Sum.swap + theorem Sum.swap_inl + theorem Sum.swap_inr + theorem Sum.swap_left_inverse + theorem Sum.swap_right_inverse + theorem Sum.swap_swap + theorem Sum.swap_swap_eq + theorem Sum.update_elim_inl + theorem Sum.update_elim_inr + theorem Sum.update_inl_apply_inl + theorem Sum.update_inl_apply_inr + theorem Sum.update_inl_comp_inl + theorem Sum.update_inl_comp_inr + theorem Sum.update_inr_apply_inl + theorem Sum.update_inr_apply_inr + theorem Sum.update_inr_comp_inl + theorem Sum.update_inr_comp_inr + theorem Sum.«exists» + theorem Sum.«forall» + def Sum3.in₀ + def Sum3.in₁ + def Sum3.in₂ 2022-10-25 00:24:13 766c69d feat: port Data.Prop.PProd (#496) Doesn't need the full port of `logic.basic` so we can port without depending on the other PR ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Data/Prod/PProd.lean + theorem Function.Injective.pprod_map + theorem PProd.exists' + theorem PProd.forall' + theorem PProd.mk.eta + theorem PProd.«exists» + theorem PProd.«forall» 2022-10-24 23:24:17 d411237 chore: capitalise Injective (#501) We had previously been changing mathport output to write `Function.injective` rather than `Function.Injective`. At https://github.com/leanprover-community/mathlib4/pull/498#discussion_r1003840030 @digama0 pointed out that mathport is capitalising correctly here. This PR re-capitalises `Injective`, `Surjective`, `Bijective`, and `Involutive`, all in the `Function` namespace. ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Basic.lean +/- theorem div_left_injective +/- theorem div_right_injective +/- theorem inv_injective +/- theorem inv_involutive +/- theorem inv_surjective +/- theorem mul_left_surjective +/- theorem mul_right_surjective Modified Mathlib/Algebra/Group/Defs.lean +/- theorem CommGroup.toGroup_injective +/- theorem mul_left_injective +/- theorem mul_right_injective Modified Mathlib/Data/List/Basic.lean +/- theorem List.append_left_injective +/- theorem List.append_right_injective +/- theorem List.cons_injective +/- theorem List.length_injective +/- theorem List.length_injective_iff +/- theorem List.mem_map_of_injective Modified Mathlib/Data/List/Nodup.lean Modified Mathlib/Data/Option/Basic.lean +/- theorem Option.map_injective +/- theorem Option.some_injective Modified Mathlib/Data/Prod.lean + theorem Function.Injective.prod_map + theorem Function.Surjective.prod_map - theorem Function.injective.prod_map - theorem Function.surjective.prod_map +/- theorem Prod.fst_injective +/- theorem Prod.fst_surjective +/- theorem Prod.snd_injective +/- theorem Prod.snd_surjective +/- theorem Prod.swap_bijective +/- theorem Prod.swap_injective +/- theorem Prod.swap_surjective Modified Mathlib/Data/Sigma/Basic.lean + theorem Function.Injective.of_sigma_map + theorem Function.Injective.sigma_map + theorem Function.Injective.sigma_map_iff + theorem Function.Surjective.sigma_map - theorem Function.injective.of_sigma_map - theorem Function.injective.sigma_map - theorem Function.injective.sigma_map_iff - theorem Function.surjective.sigma_map +/- theorem sigma_mk_injective Modified Mathlib/Data/Subtype.lean +/- theorem Subtype.coe_injective +/- theorem Subtype.restrict_injective +/- theorem Subtype.val_injective Modified Mathlib/Init/Function.lean + theorem Function.Bijective.comp + def Function.Bijective + theorem Function.Injective.comp + def Function.Injective +/- theorem Function.LeftInverse.injective +/- theorem Function.LeftInverse_of_surjective_of_RightInverse +/- theorem Function.RightInverse.surjective + theorem Function.Surjective.comp + def Function.Surjective - theorem Function.bijective.comp - def Function.bijective +/- theorem Function.bijective_id +/- theorem Function.has_LeftInverse.injective +/- theorem Function.has_RightInverse.surjective - theorem Function.injective.comp - def Function.injective +/- theorem Function.injective_id - theorem Function.surjective.comp - def Function.surjective +/- theorem Function.surjective_id Modified Mathlib/Logic/Basic.lean +/- theorem PLift.down_injective +/- theorem ULift.down_injective Modified Mathlib/Logic/Function/Basic.lean + theorem Function.Bijective.exists_unique + theorem Function.Bijective.of_comp_iff' + theorem Function.Bijective.of_comp_iff + def Function.Injective.decidable_eq + theorem Function.Injective.dite + theorem Function.Injective.eq_iff' + theorem Function.Injective.eq_iff + theorem Function.Injective.has_LeftInverse + theorem Function.Injective.ne + theorem Function.Injective.ne_iff' + theorem Function.Injective.ne_iff + theorem Function.Injective.of_comp + theorem Function.Injective.of_comp_iff' + theorem Function.Injective.of_comp_iff + theorem Function.Injective2.eq_iff + def Function.Injective2 + theorem Function.Involutive.comp_self + def Function.Involutive +/- theorem Function.LeftInverse_inv_fun +/- theorem Function.LeftInverse_surj_inv +/- theorem Function.RightInverse_inv_fun +/- theorem Function.RightInverse_surj_inv + theorem Function.Surjective.exists + theorem Function.Surjective.exists₂ + theorem Function.Surjective.exists₃ + theorem Function.Surjective.forall + theorem Function.Surjective.forall₂ + theorem Function.Surjective.forall₃ + theorem Function.Surjective.has_RightInverse + theorem Function.Surjective.of_comp + theorem Function.Surjective.of_comp_iff' + theorem Function.Surjective.of_comp_iff - theorem Function.bijective.exists_unique - theorem Function.bijective.of_comp_iff' - theorem Function.bijective.of_comp_iff +/- theorem Function.bijective_iff_exists_unique +/- theorem Function.bijective_iff_has_inverse +/- theorem Function.cantor_surjective +/- theorem Function.extend_apply +/- theorem Function.extend_comp - def Function.injective.decidable_eq - theorem Function.injective.dite - theorem Function.injective.eq_iff' - theorem Function.injective.eq_iff - theorem Function.injective.has_LeftInverse - theorem Function.injective.ne - theorem Function.injective.ne_iff' - theorem Function.injective.ne_iff - theorem Function.injective.of_comp - theorem Function.injective.of_comp_iff' - theorem Function.injective.of_comp_iff - theorem Function.injective2.eq_iff - def Function.injective2 +/- theorem Function.injective_iff_has_LeftInverse +/- theorem Function.injective_of_partial_inv +/- theorem Function.injective_surj_inv +/- theorem Function.inv_fun_comp +/- theorem Function.inv_fun_surjective - theorem Function.involutive.comp_self - def Function.involutive +/- theorem Function.involutive_iff_iter_2_eq_id +/- theorem Function.partial_inv_left +/- theorem Function.partial_inv_of_injective +/- theorem Function.surj_inv_eq - theorem Function.surjective.exists - theorem Function.surjective.exists₂ - theorem Function.surjective.exists₃ - theorem Function.surjective.forall - theorem Function.surjective.forall₂ - theorem Function.surjective.forall₃ - theorem Function.surjective.has_RightInverse - theorem Function.surjective.of_comp - theorem Function.surjective.of_comp_iff' - theorem Function.surjective.of_comp_iff +/- theorem Function.surjective_iff_has_RightInverse +/- theorem Function.update_comp_eq_of_injective' +/- theorem Function.update_injective Modified Mathlib/Order/Basic.lean +/- def LinearOrder.lift +/- def PartialOrder.lift +/- theorem Preorder.to_le_injective Modified Mathlib/Order/Monotone.lean +/- theorem Antitone.strict_anti_of_injective +/- theorem Monotone.strict_mono_of_injective Modified test/Simps.lean 2022-10-24 15:16:40 9efcb95 feat: port Logic/Basic (#484) Two reasons to get this out of the way: * it's at the root of all our (non-tactic) import trees, so blocking almost everything * it's more complicated than most other things, because it contains a partial port of the mathlib3 content, but so does `Std4` I've attempted to make sure everything from mathlib3's `logic.basic` is here, *unless* it is already in Std4. Additionally I've replaced some definitions with aliases. Thanks for @javra's work on this. Discussion of this PR is ongoing on [zulip](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/porting.20logic.2Ebasic). ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Group/Basic.lean Modified Mathlib/Data/List/Card.lean Modified Mathlib/Data/List/Pairwise.lean Modified Mathlib/Data/List/Range.lean Modified Mathlib/Init/Align.lean Added Mathlib/Init/Classical.lean + theorem Classical.cases + theorem Classical.cases_on + theorem Classical.cases_true_false + theorem Classical.eq_false_or_eq_true Modified Mathlib/Init/Logic.lean + theorem ExistsUnique.exists + theorem ExistsUnique.unique - theorem exists_of_exists_unique - theorem unique_of_exists_unique Modified Mathlib/Logic/Basic.lean + theorem And.exists + theorem BAll.imp_left + theorem BAll.imp_right + theorem BEx.elim + theorem BEx.imp_left + theorem BEx.imp_right + theorem BEx.intro - theorem Ball.imp_left - theorem Ball.imp_right + def Classical.choice_of_byContradiction' + theorem Classical.some_spec₂ +/- theorem Decidable.eq_or_ne +/- theorem Decidable.ne_or_eq + theorem Eq.congr_left + theorem Eq.congr_right + theorem Exists.fst + theorem Exists.snd + theorem ExistsUnique.elim₂ - theorem ExistsUnique.exists + theorem ExistsUnique.exists₂ + theorem ExistsUnique.intro2 + theorem ExistsUnique.unique2 + theorem Exists₂.imp + theorem Exists₃.imp + theorem Fact.elim + def Function.swap₂ - theorem Iff.not +/- theorem Iff.not_left +/- theorem Iff.not_right + theorem Imp.swap + theorem Ne.ne_or_ne +/- theorem Or.elim3 + theorem PLift.down_inj + theorem PLift.down_injective + theorem ULift.down_inj + theorem ULift.down_injective + theorem and_forall_ne +/- theorem and_iff_not_or_not + theorem apply_dite₂ + theorem apply_ite₂ + theorem ball_and_distrib + theorem ball_cond_comm + theorem ball_congr + theorem ball_mem_comm + theorem ball_of_forall + theorem ball_or_left + theorem ball_true_iff + theorem bex_congr + theorem bex_def + theorem bex_eq_left + theorem bex_imp + theorem bex_of_exists + theorem bex_or + theorem bex_or_left +/- theorem by_contradiction + theorem cast_cast + theorem cast_eq_iff_heq + theorem congr_arg_heq + theorem congr_arg_refl + theorem congr_fun_congr_arg + theorem congr_fun_rfl + theorem congr_fun₂ + theorem congr_fun₃ + theorem congr_heq + theorem congr_refl_left + theorem congr_refl_right + theorem dite_apply + theorem dite_dite_comm + theorem dite_eq_iff' + theorem dite_eq_iff + theorem dite_eq_ite + theorem dite_eq_left_iff + theorem dite_eq_or_eq + theorem dite_eq_right_iff + theorem dite_ne_left_iff + theorem dite_ne_right_iff + theorem eq_equivalence + theorem eq_iff_eq_cancel_left + theorem eq_iff_eq_cancel_right + theorem eq_mp_eq_cast + theorem eq_mpr_eq_cast +/- theorem eq_or_ne + theorem eq_true_eq_id + theorem exists_apply_eq_apply' + theorem exists_comm + theorem exists_const + theorem exists_eq_right' + theorem exists_exists_and_eq_and + theorem exists_exists_eq_and + theorem exists_iff_of_forall + theorem exists_of_bex + theorem exists_or_eq_left' + theorem exists_or_eq_left + theorem exists_or_eq_right' + theorem exists_or_eq_right + theorem exists_prop_congr' + theorem exists_prop_congr + theorem exists_prop_of_false + theorem exists_prop_of_true + theorem exists_swap + theorem exists_true_left + theorem exists_unique_const + theorem exists_unique_eq' + theorem exists_unique_eq + theorem exists_unique_false + theorem exists_unique_iff_exists + theorem exists_unique_prop + theorem exists_unique_prop_of_true + theorem exists₂_comm + theorem fact_iff + theorem forall_apply_eq_imp_iff' + theorem forall_apply_eq_imp_iff + theorem forall_apply_eq_imp_iff₂ + theorem forall_eq_apply_imp_iff' + theorem forall_eq_apply_imp_iff + theorem forall_exists_index + theorem forall_imp_iff_exists_imp + theorem forall_of_ball + theorem forall_or_distrib_right + theorem forall_or_left + theorem forall_or_of_or_forall + theorem forall_prop_congr' + theorem forall_prop_congr + theorem forall_true_iff' +/- theorem forall_true_iff + theorem forall_true_left + theorem forall₂_imp + theorem forall₂_swap + theorem forall₂_true_iff + theorem forall₃_imp + theorem forall₃_true_iff + theorem funext₂ + theorem funext₃ + theorem heq_of_cast_eq +/- theorem iff_iff_and_or_not_and_not +/- theorem iff_iff_not_or_and_or_not +/- theorem iff_mpr_iff_true_intro +/- theorem iff_not_comm + theorem imp_forall_iff +/- theorem imp_iff_not_or + theorem imp_or' + theorem imp_or - theorem imp_or_distrib' - theorem imp_or_distrib + theorem ite_and + theorem ite_apply + theorem ite_eq_iff' + theorem ite_eq_iff + theorem ite_eq_left_iff + theorem ite_eq_or_eq + theorem ite_eq_right_iff + theorem ite_ite_comm + theorem ite_ne_left_iff + theorem ite_ne_right_iff + theorem ne_of_apply_ne +/- theorem ne_or_eq - theorem not_and_distrib +/- theorem not_and_not_right + theorem not_and_or + theorem not_ball + theorem not_ball_of_bex_not + theorem not_bex + theorem not_exists_not +/- theorem not_forall + theorem not_forall_not +/- theorem not_iff +/- theorem not_iff_comm +/- theorem not_iff_not +/- theorem not_imp_comm +/- theorem not_imp_not +/- theorem not_imp_self +/- theorem not_ne_iff +/- theorem not_or_of_imp + theorem not_xor +/- theorem of_not_imp - theorem or_congr_left' - theorem or_congr_right' +/- theorem or_iff_not_and_not +/- theorem or_iff_not_imp_left +/- theorem or_iff_not_imp_right + theorem or_not_of_imp + theorem pi_congr + theorem rec_heq_of_heq + theorem xor_iff_not_iff Modified Mathlib/Logic/Function/Basic.lean Modified Mathlib/Logic/IsEmpty.lean Modified Mathlib/Tactic/PushNeg.lean - theorem Mathlib.Tactic.PushNeg.not_and_distrib_eq + theorem Mathlib.Tactic.PushNeg.not_and_or_eq +/- theorem Mathlib.Tactic.PushNeg.not_or_eq 2022-10-24 03:22:18 e094621 feat: port Init/Data/Option/Instances (#485) ESTIMATED CHANGES Modified Mathlib/Init/Align.lean 2022-10-24 03:11:37 5f59bce chore: bump std4 (#495) ESTIMATED CHANGES Modified lean_packages/manifest.json 2022-10-24 03:11:36 db2b67f feat: port `copy_doc_string` command (#494) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Mathport/Syntax.lean Added Mathlib/Tactic/DocCommands.lean Added test/DocCommands.lean + def hi + def one + def three + def two 2022-10-24 02:39:27 72b7486 feat: reorganize `Init` alignments (#491) * [x] depends on #490 ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Data/Bracket.lean Added Mathlib/Init/Align.lean Modified Mathlib/Logic/Basic.lean Deleted Mathlib/Mathport/SpecialNames.lean 2022-10-24 02:14:33 467222f feat: port convert tactic (#492) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Mathport/Syntax.lean Added Mathlib/Tactic/Convert.lean + def Lean.MVarId.congrN' + def Lean.MVarId.convert Added test/convert.lean 2022-10-24 02:02:55 bc191fe feat: align `init.{core, logic}` (#490) With this, the files `init.core` and `init.logic` are synchronized, although we aren't currently tracking files from `init` in [port-status](https://github.com/leanprover-community/mathlib/wiki/mathlib4-port-status). ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Group/Defs.lean Modified Mathlib/Data/List/Basic.lean Modified Mathlib/Data/List/Pairwise.lean +/- theorem List.pairwise_append_comm +/- theorem List.pairwise_middle Modified Mathlib/Data/List/Perm.lean +/- theorem List.Perm.pairwise_iff Modified Mathlib/Data/String/Defs.lean +/- def String.isPrefix +/- def String.isSuffix Modified Mathlib/Init/Algebra/Classes.lean Modified Mathlib/Init/Algebra/Functions.lean +/- theorem min_left_comm Added Mathlib/Init/Core.lean + inductive BinTree + def Combinator.I + def Combinator.K + def Combinator.S + def PProd.mk.injArrow + def Prod.mk.injArrow + def Std.Prec.arrow + def Std.Prec.max + def Std.Prec.maxPlus + def Std.Priority.default + def Std.Priority.max Modified Mathlib/Init/Logic.lean + def AntiSymmetric + def AsFalse + theorem AsTrue.get + def AsTrue + def Associative + def Commutative + theorem Decidable.not_or_iff_and_not + def Decidable.recOn_false + def Decidable.recOn_true + def EmptyRelation +/- theorem ExistsUnique.elim +/- theorem ExistsUnique.intro - theorem Iff.elim_left - theorem Iff.elim_right + theorem Implies.trans + def Implies + theorem InvImage.irreflexive + theorem InvImage.trans + def Irreflexive + def IsDecEq + def IsDecRefl + def LeftCancelative + def LeftCommutative + def LeftDistributive + def LeftIdentity +/- theorem Ne.def + def NonContradictory + def Reflexive + def RightCancelative + def RightCommutative + def RightDistributive + def RightIdentity +/- def RightInverse + def Symmetric + def Total + def Transitive + def Xor' + theorem and_assoc' + theorem and_comm' + theorem and_false_iff + theorem and_self_iff + theorem and_true_iff - def anti_symmetric - def as_false - def as_true - def associative +/- theorem cast_proof_irrel - def commutative +/- theorem decidable_eq_inl_refl +/- theorem decidable_eq_inr_neg +/- def decidable_eq_of_bool_pred + theorem decide_False' + theorem decide_True' +/- theorem dif_ctx_congr +/- theorem dif_ctx_simp_congr - def empty_relation + theorem eq_rec_compose - def equivalence +/- theorem exists_of_exists_unique +/- theorem exists_unique_congr +/- theorem exists_unique_of_exists_of_unique + theorem false_and_iff + theorem false_iff_iff + theorem false_or_iff +/- theorem heq_of_eq_rec_left +/- theorem heq_of_eq_rec_right +/- theorem if_congr +/- theorem if_congr_prop +/- theorem if_ctx_congr +/- theorem if_ctx_congr_prop +/- theorem if_ctx_simp_congr_prop +/- theorem if_simp_congr_prop + theorem if_t_t + theorem iff_false_iff + theorem iff_self_iff + theorem iff_true_iff +/- theorem imp_of_if_neg +/- theorem imp_of_if_pos - theorem inv_image.irreflexive - theorem inv_image.trans - def inv_image - def irreflexive - def is_dec_eq - def is_dec_refl - def left_cancelative +/- theorem left_comm - def left_commutative - def left_distributive - def left_identity +/- theorem let_body_eq +/- theorem let_eq +/- theorem let_value_eq +/- theorem let_value_heq - theorem mk_equivalence - def non_contradictory +/- theorem not_of_eq_false + theorem not_or_of_not - theorem of_as_true +/- theorem of_heq_true - theorem opt_param_eq + theorem or_assoc' + theorem or_comm' + theorem or_false_iff + theorem or_self_iff + theorem or_true_iff + theorem rec_subsingleton - def reflexive - def right_cancelative +/- theorem right_comm - def right_commutative - def right_distributive - def right_identity - def subrelation - def symmetric - def total +/- theorem trans_rel_left +/- theorem trans_rel_right - def transitive + theorem true_and_iff + theorem true_iff_iff + theorem true_or_iff +/- theorem unique_of_exists_unique - def xor Deleted Mathlib/Init/Zero.lean Added Mathlib/Init/ZeroOne.lean + def bit0 + def bit1 Modified Mathlib/Logic/Basic.lean +/- theorem dec_em' +/- theorem em' +/- theorem xor_comm +/- theorem xor_false +/- theorem xor_self +/- theorem xor_true Modified Mathlib/Mathport/Rename.lean Modified Mathlib/Mathport/SpecialNames.lean Modified Mathlib/Order/Basic.lean Modified Mathlib/Tactic/Simps/Basic.lean Modified scripts/nolints.json 2022-10-24 00:48:37 6a2d6f5 feat: Port Logic.IsEmpty (#486) Following @semorrison's video ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Logic/Function/Basic.lean + theorem Function.extend_apply' Added Mathlib/Logic/IsEmpty.lean + theorem Function.extend_of_empty + theorem IsEmpty.exists_iff + theorem IsEmpty.forall_iff + theorem Subtype.is_empty_of_false + def isEmptyElim + theorem is_empty_Prop + theorem is_empty_iff + theorem is_empty_or_nonempty + theorem is_empty_pi + theorem is_empty_plift + theorem is_empty_pprod + theorem is_empty_prod + theorem is_empty_psigma + theorem is_empty_psum + theorem is_empty_sigma + theorem is_empty_subtype + theorem is_empty_sum + theorem is_empty_ulift + theorem not_is_empty_iff + theorem not_is_empty_of_nonempty + theorem not_nonempty_iff + theorem well_founded_of_empty Modified scripts/nolints.json 2022-10-23 22:46:38 4410004 feat: split implementation of `to_additive` from the attribute (#469) * This way we can add `@[to_additive]` attributes much easier via metaprogramming. * Useful for the `@[simps]` attribute ESTIMATED CHANGES Modified Mathlib/Tactic/ToAdditive.lean 2022-10-23 22:23:39 cd78956 chore: fix missing instances in Algebra/Group/Basic (#481) ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Basic.lean Modified Mathlib/Algebra/Group/Defs.lean 2022-10-23 22:23:38 d4ca349 chore: port Init.Propext (#471) Porting anything trivial to port which contains lemmas mentioned by mathlib3's `norm_num` or `ring`. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Init/Propext.lean + theorem Iff.to_eq + theorem eq_false_intro + theorem eq_true_intro + theorem iff_eq_eq + theorem imp_congr_ctx_eq + theorem imp_congr_eq 2022-10-23 22:19:09 a26dc82 feat: partial port of Algebra/Order/ (#470) These aren't complete ports, mostly just the typeclass definition parts of * `Algebra.Order.Monoid` * `Algebra.Order.Group` * `Algebra.Order.Ring` Creating these typeclasses with sorried instances for use with `linarith` was barely easier than porting the instances too. - [x] depends on #467 ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Order/Group.lean + theorem Left.one_lt_inv_iff + theorem one_lt_div' Added Mathlib/Algebra/Order/Monoid.lean + theorem Mul.to_covariant_class_left + theorem Mul.to_covariant_class_right Added Mathlib/Algebra/Order/MonoidLemmas.lean + theorem le_of_mul_le_mul_left' + theorem lt_of_mul_lt_mul_left' + theorem mul_le_mul_iff_left + theorem mul_le_mul_iff_right + theorem mul_le_mul_left' + theorem mul_lt_mul_iff_left + theorem mul_lt_mul_iff_right + theorem mul_lt_mul_left' Added Mathlib/Algebra/Order/Ring.lean Modified Mathlib/Init/Algebra/Order.lean 2022-10-23 12:09:17 93bd803 feat: port simps (#445) `@[simps]` mostly works. There are a few unimplemented features, but many basic cases will work correctly. See module doc for more information. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Mathport/Syntax.lean Deleted Mathlib/Tactic/Simps.lean Added Mathlib/Tactic/Simps/Basic.lean + def Lean.Meta.mkSimpContext + def Lean.Meta.mkSimpContextResult + def Lean.Name.getString + def Lean.Name.updateLast + def ParsedProjectionData.toProjectionData + structure ParsedProjectionData + structure ProjectionData + def Simps.Config.asFn + def Simps.Config.lemmasOnly + structure Simps.Config + def String.isPrefixOf? + def elabInitializeSimpsProjections + def elabSimpsRule + def getCompositeOfProjections + def hasSimpAttribute + def projectionsInfo + def simpsAddProjection + def simpsApplyProjectionRules + def simpsFindAutomaticProjections + def simpsFindCustomProjection + def simpsGetProjectionExprs + def simpsGetRawProjections + def simpsResolveNotationClass + def simpsTac + def updateName Added Mathlib/Tactic/Simps/NotationClass.lean Modified Mathlib/Tactic/ToAdditive.lean + def ToAdditive.addToAdditiveAttr Modified test/Simps.lean + structure AddHom + def AddHomPlus.simps.apply + def AddHomPlus2.simps.mul + structure AddMonoidHom + structure AlgHom + structure ComplicatedEquivPlusData + def CountNested.nested1 + def CountNested.nested2 + def DecoratedEquiv.simps.apply + def DecoratedEquiv.simps.symm_apply + def DecoratedEquiv.symm + structure DecoratedEquiv + def Equiv'.trans + structure Equiv' + structure EquivPlusData + structure FaultyManualCoercion.Equiv + def FaultyUniverses.Equiv.simps.invFun + def FaultyUniverses.Equiv.symm + structure FaultyUniverses.Equiv + structure Foo1 + def Foo2.simps.elim + structure Foo2 + def FurtherDecoratedEquiv.simps.apply + def FurtherDecoratedEquiv.simps.symm_apply + def FurtherDecoratedEquiv.symm + structure FurtherDecoratedEquiv + structure Left + def ManualCoercion.Equiv.simps.invFun + def ManualCoercion.Equiv.symm + structure ManualCoercion.Equiv + def ManualInitialize.Equiv.simps.invFun + def ManualInitialize.Equiv.symm + structure ManualInitialize.Equiv + def ManualProjectionNames.Equiv.simps.symm_apply + def ManualProjectionNames.Equiv.symm + structure ManualProjectionNames.Equiv + def ManualUniverses.Equiv.simps.invFun + def ManualUniverses.Equiv.symm + structure ManualUniverses.Equiv + structure MyFunctor + def MyProd.map + structure MyProd + structure MyType + def Nat.SetPlus1 + def Nat.SetPlus2 + def Nat.SetPlus3 + structure NeedsPropClass + def NestedNonFullyApplied.Equiv.symm2 + def NestedNonFullyApplied.Equiv.symm3 + def NestedNonFullyApplied.Equiv.symm + structure NestedNonFullyApplied.Equiv + def NewTop.simps.newElim + structure NewTop + def OneMore.simps.apply + def OneMore.simps.symm_apply + def OneMore.symm + structure OneMore + structure PartiallyAppliedStr + def PrefixProjectionNames.Equiv.simps.symm_apply + def PrefixProjectionNames.Equiv.symm + structure PrefixProjectionNames.Equiv + def PrefixProjectionNames.foo + structure Right + structure RingHom + structure SetPlus + structure Top + structure VeryPartiallyAppliedStr - structure X + structure ZeroHom + def another_term + def bar + def baz + structure coercing.BSemigroup + structure coercing.Equiv2 + structure coercing.FooStr + structure coercing.VooStr + def coercing.bar + def coercing.foo2 + def coercing.foo + def coercing.new_bar + def coercing.voo2 + def coercing.voo + def fffoo2 + def fffoo + def ffoo3 + def ffoo4 + def ffoo + def foo.bar1 + def foo.foo + def foo.rfl2 + def foo.rfl3 + def foo2 + def foo + def let1 + def let2 + def let3 + def let4 + def myAlgHom + def myNatEquiv + def myRingHom + def myTypeDef + def my_equiv + def partially_applied_term + def pprodEquivProd2 + def rflWithData' + def rflWithData + def some_test1 + def specify.specify1 + def specify.specify2 + def specify.specify3 + def specify.specify4 + def succeed_without_simplification_possible + def test + def test_PropClass + def test_sneaky + def thing + def very_partially_applied_term - def x 2022-10-22 17:27:22 6682711 feat: port choose (#420) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Lean/Expr/Basic.lean + def Lean.Expr.addLocalVarInfoForBinderIdent + def Lean.Expr.getBinderName Modified Mathlib/Mathport/Syntax.lean Added Mathlib/Tactic/Choose.lean + def Mathlib.Tactic.Choose.ElimStatus.merge + inductive Mathlib.Tactic.Choose.ElimStatus + def Mathlib.Tactic.Choose.choose1 + def Mathlib.Tactic.Choose.choose1WithInfo + def Mathlib.Tactic.Choose.elabChoose + def Mathlib.Tactic.Choose.mkFreshNameFrom + def Mathlib.Tactic.Choose.mk_sometimes Added test/choose.lean 2022-10-22 16:26:09 5ad3946 feat: `symm` and `trans` tactics (#253) I have implemented a symm tactic, using annotations for symm rules. This follows (including using code from) the ext implementation. I also have a couple of test examples ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Group/Commute.lean Added Mathlib/Lean/Meta.lean + def Lean.MVarId.replace Modified Mathlib/Mathport/Attributes.lean Modified Mathlib/Tactic/Relation/Rfl.lean Added Mathlib/Tactic/Relation/Symm.lean Added Mathlib/Tactic/Relation/Trans.lean + def Trans.simple Modified scripts/nolints.json Added test/symm.lean + def eq_symm + def sameParity + def sameParity_symm Added test/trans.lean + def eq_trans + def nleq + def nleq_trans 2022-10-22 16:15:16 fdabd1a feat: `simp_intro` tactic (#446) The `simp_intro` tactic is a combination of `simp` and `intro`: it will simplify the types of variables as it introduces them and uses the new variables to simplify later arguments and the goal. ```lean example : x + 0 = y → x = z := by simp_intro h -- h: x = y ⊢ y = z sorry ``` ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Mathport/Syntax.lean Added Mathlib/Tactic/SimpIntro.lean Added test/simp_intro.lean 2022-10-22 09:30:54 e164a3e chore: bump std4 10-22 (#489) ESTIMATED CHANGES Modified Mathlib/Init/Set.lean Modified Mathlib/Logic/Equiv/LocalEquiv.lean Modified lean_packages/manifest.json Modified scripts/nolints.json 2022-10-22 01:52:05 f493ef4 feat: track "synthetic" and "dubious" `#align` (#488) Companion PR to leanprover-community/mathport#187 ESTIMATED CHANGES Modified Mathlib/Mathport/Rename.lean + structure Mathlib.Prelude.Rename.NameEntry + def Mathlib.Prelude.Rename.RenameMap.find? + def Mathlib.Prelude.Rename.RenameMap.insert - def Mathlib.Prelude.Rename.RenameMap.insertPair + structure Mathlib.Prelude.Rename.RenameMap +/- def Mathlib.Prelude.Rename.addNameAlignment Modified Mathlib/Mathport/Syntax.lean 2022-10-20 15:23:29 63a677d chore: update lean + std4 10-20 (#483) ESTIMATED CHANGES Modified Mathlib/Algebra/Abs.lean Modified Mathlib/Algebra/Group/Defs.lean Modified Mathlib/Data/Bracket.lean Modified Mathlib/Data/Fin/Fin2.lean Modified Mathlib/Data/List/Perm.lean Modified Mathlib/Data/Subtype.lean +/- theorem Subtype.restrict_def Modified Mathlib/Init/Algebra/Classes.lean Modified Mathlib/Init/Data/Nat/Lemmas.lean Modified Mathlib/Init/Logic.lean +/- def unexpandExistsUnique Modified Mathlib/Init/Set.lean Modified Mathlib/Mathport/Attributes.lean Modified Mathlib/Mathport/Rename.lean +/- def Mathlib.Prelude.Rename.elabAlign +/- def Mathlib.Prelude.Rename.elabLookup3 Modified Mathlib/Tactic/Alias.lean +/- def Tactic.Alias.elabAlias +/- def Tactic.Alias.elabAliasLR +/- def Tactic.Alias.elabAliasLRDots Modified Mathlib/Tactic/Basic.lean +/- def elabVariables Modified Mathlib/Tactic/CasesM.lean Modified Mathlib/Tactic/CommandQuote.lean +/- def Lean.Elab.Term.elabCommandQuot +/- def command.quot Modified Mathlib/Tactic/Core.lean Modified Mathlib/Tactic/NormCast/Tactic.lean Modified Mathlib/Tactic/NormNum/Core.lean Modified Mathlib/Tactic/PermuteGoals.lean Modified Mathlib/Tactic/PrintPrefix.lean +/- def Lean.Elab.Command.elabPrintPrefix Modified Mathlib/Tactic/Relation/Rfl.lean Modified Mathlib/Tactic/RunCmd.lean +/- def Mathlib.RunCmd.elabRunElab Modified Mathlib/Tactic/SimpTrace.lean Modified Mathlib/Tactic/Simps.lean Modified Mathlib/Tactic/ToAdditive.lean Modified Mathlib/Util/MemoFix.lean Modified Mathlib/Util/Time.lean +/- def timeCmdElab Modified lakefile.lean Modified lean-toolchain Modified lean_packages/manifest.json 2022-10-20 09:55:11 98af8e3 feat: port Data/Sigma/Basic (#479) My first attempt to port a file to mathlib4. Please review my code style carefully -- I'm still not 100% sure about the rules yet. Notes: 1) The file uses `Function.surjective.forall` once, and this declaration is in Mathlib.Logic.Function.Basic. Conversely, importing that file gives us everything we need. As a result the imports in this file look totally unrelated to the corresponding imports in the mathlib3 file. 2) The proof of `mk.inj_iff` in mathlib3 was `by simp` but this failed in mathlib4 so I knocked up a longer proof (lines 56-57). Should I worry about this? In Lean 3 `simp?` suggested `simp only [implies_true_iff, and.congr_left_iff]`, which didn't work in Lean 3, and `squeeze_simp` suggested `simp only` which (to my mild surprise) does ;-) 3) I also edited the module docstring because I found the Lean 3 docstring claim that a dependent product was "like `α × β`" and then immediately "a generalization of `α ⊕ β`" confusing (these are not the same alpha and beta; the idea is that the first alpha is bool in the second example; hopefully my explanation is now better). ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Data/Sigma/Basic.lean + theorem Function.injective.of_sigma_map + theorem Function.injective.sigma_map + theorem Function.injective.sigma_map_iff + theorem Function.surjective.sigma_map + def PSigma.elim + theorem PSigma.elim_val + theorem PSigma.ext + theorem PSigma.ext_iff + def PSigma.map + theorem PSigma.mk.inj_iff + theorem PSigma.subtype_ext + theorem PSigma.subtype_ext_iff + theorem PSigma.«exists» + theorem PSigma.«forall» + theorem Prod.fst_comp_to_sigma + theorem Prod.fst_to_sigma + theorem Prod.snd_to_sigma + def Prod.toSigma + theorem Prod.to_sigma_mk + def Sigma.curry + theorem Sigma.curry_uncurry + theorem Sigma.eta + theorem Sigma.ext + theorem Sigma.ext_iff + def Sigma.map + theorem Sigma.mk.inj_iff + theorem Sigma.subtype_ext + theorem Sigma.subtype_ext_iff + def Sigma.uncurry + theorem Sigma.uncurry_curry + theorem Sigma.«exists» + theorem Sigma.«forall» + theorem sigma_mk_injective 2022-10-20 03:09:28 0d8da32 feat: norm_num extensions (#468) This PR is an almost complete rewrite of `norm_num` to implement its functionality via an extensible attribute for plugins, and use `Qq` for expression construction. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Group/Defs.lean Modified Mathlib/Tactic/NormNum.lean - def Lean.Meta.Simp.Result.ofTrue - def Mathlib.Meta.NormNum.elabNormNum - def Mathlib.Meta.NormNum.eval - theorem Mathlib.Meta.NormNum.eval_eq_of_isNat - theorem Mathlib.Meta.NormNum.eval_of_isNat - def Mathlib.Meta.NormNum.instSemiringNat - def Mathlib.Meta.NormNum.isNat - theorem Mathlib.Meta.NormNum.isNat_add - theorem Mathlib.Meta.NormNum.isNat_cast - theorem Mathlib.Meta.NormNum.isNat_mul - theorem Mathlib.Meta.NormNum.isNat_pow - theorem Mathlib.Meta.NormNum.isNat_rawNat - def Mathlib.Meta.NormNum.normNumAt - def Mathlib.Meta.NormNum.tryNormNum? Added Mathlib/Tactic/NormNum/Basic.lean + def Mathlib.Meta.NormNum.evalAdd + def Mathlib.Meta.NormNum.evalMul + def Mathlib.Meta.NormNum.evalNatCast + def Mathlib.Meta.NormNum.evalOfNat + def Mathlib.Meta.NormNum.evalOne + def Mathlib.Meta.NormNum.evalPow + def Mathlib.Meta.NormNum.evalZero + def Mathlib.Meta.NormNum.instSemiringNat + theorem Mathlib.Meta.NormNum.isNat_add + theorem Mathlib.Meta.NormNum.isNat_cast + theorem Mathlib.Meta.NormNum.isNat_mul + theorem Mathlib.Meta.NormNum.isNat_one + theorem Mathlib.Meta.NormNum.isNat_pow + theorem Mathlib.Meta.NormNum.isNat_zero + def Mathlib.Meta.NormNum.withSemiring Added Mathlib/Tactic/NormNum/Core.lean + def Lean.Meta.Simp.Result.ofTrue + structure Mathlib.Meta.NormNum.NormNumExt + def Mathlib.Meta.NormNum.Result.toIsNat + def Mathlib.Meta.NormNum.Result.toIsNatQ + def Mathlib.Meta.NormNum.Result.toSimpResult + inductive Mathlib.Meta.NormNum.Result + def Mathlib.Meta.NormNum.derive + def Mathlib.Meta.NormNum.deriveQ + def Mathlib.Meta.NormNum.elabNormNum + def Mathlib.Meta.NormNum.eval + theorem Mathlib.Meta.NormNum.eval_of_isNat + def Mathlib.Meta.NormNum.isNat + def Mathlib.Meta.NormNum.mkNormNumExt + def Mathlib.Meta.NormNum.normNumAt + def Mathlib.Meta.NormNum.tryNormNum? Modified Mathlib/Tactic/Ring.lean 2022-10-20 01:01:55 c41ef59 feat: port fin_cases (#437) This is a port of `fin_cases`. It doesn't yet support the `with` or `using` clauses from mathlib3. I could remove the dependence on #433, but would have to (temporarily) remove all the tests to do so. * depends on: #433 ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Mathport/Syntax.lean Modified Mathlib/Tactic/Core.lean + def Lean.Elab.Tactic.allGoals Added Mathlib/Tactic/FinCases.lean + def Lean.Elab.Tactic.getMemType Added test/fin_cases.lean 2022-10-20 09:17:24+11:00 ec44a74 feat: port Data/Bracket (#480) * port data.bracket * strip 'has' and add align * lint * inheritdoc * Mathlib.lean entry ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Data/Bracket.lean Modified Mathlib/Mathport/SpecialNames.lean 2022-10-19 07:31:24 e891db2 feat: port Init/Algebra/Classes.lean (#476) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Init/Algebra/Classes.lean + theorem antisymm + theorem asymm + theorem asymm_of + theorem eq_of_eqv_lt + theorem eq_of_incomp + theorem eqv_lt_iff_eq + theorem incomp_iff_eq + theorem incomp_trans + theorem incomp_trans_of + theorem irrefl + theorem irrefl_of + theorem is_strict_weak_order_of_is_total_preorder + theorem lt_of_incomp_of_lt + theorem lt_of_lt_of_incomp + theorem not_lt_of_lt + theorem refl + theorem refl_of + theorem symm + theorem symm_of + theorem total_of + theorem trans + theorem trans_of + theorem trichotomous + theorem trichotomous_of Modified scripts/nolints.json 2022-10-19 04:27:07 10fdf3b feat: port Logic/Relator (#385) Port logic/relator.lean and add comments in the places where the linter demands them. Compare to the mathlib3 version: https://github.com/leanprover-community/mathlib/blob/7362d50a80c3e7f7a1fb5adb1c0b6ba593db103d/src/logic/relator.lean ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Logic/Relator.lean + theorem Relator.BiTotal.rel_exists + theorem Relator.BiTotal.rel_forall + def Relator.BiTotal + def Relator.BiUnique + theorem Relator.LeftTotal.rel_exists + def Relator.LeftTotal + theorem Relator.LeftUnique.flip + def Relator.LeftUnique + def Relator.LiftFun + theorem Relator.RightTotal.rel_forall + def Relator.RightTotal + def Relator.RightUnique + theorem Relator.bi_total_eq + theorem Relator.left_unique_of_rel_eq + theorem Relator.rel_and + theorem Relator.rel_eq + theorem Relator.rel_iff + theorem Relator.rel_imp + theorem Relator.rel_not + theorem Relator.rel_or 2022-10-18 21:07:54 9ce9121 feat: port algebra.abs (#477) Note that `mathport` completely dropped the line ``notation `|`a`|` := abs a`` in https://github.com/leanprover-community/mathlib3port/blob/5a66d9b4aff2f94aabca7f3daead2a383d7f2117/Mathbin/Algebra/Abs.lean. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Abs.lean 2022-10-18 20:09:27 f752b62 feat: port Data.Fin.Fin2 (#478) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Data/Fin/Fin2.lean + def Fin2.add + def Fin2.elim0 + def Fin2.insertPerm + def Fin2.left + def Fin2.ofNat' + def Fin2.optOfNat + def Fin2.remapLeft + def Fin2.toNat + inductive Fin2 2022-10-17 23:07:58 f4484bd feat: port apply_rules from mathlib3 (#412) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Mathport/Syntax.lean Added Mathlib/Tactic/ApplyRules.lean + def Mathlib.Tactic.applyRules Added test/apply_rules.lean 2022-10-17 21:30:14 d0b0a73 feat: port Algebra/CovariantAndContravariant (#467) These are mostly instances required so that lemmas needed for linarith actually fire in the presence of `LinearOrderedCommRing`. - [x] depends on #457 ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/CovariantAndContravariant.lean + theorem Antitone.covariant_of_const' + theorem Antitone.covariant_of_const + theorem Contravariant.flip + def Contravariant + theorem Covariant.flip + theorem Covariant.monotone_of_const + def Covariant + theorem Group.covariant_iff_contravariant + theorem Group.covariant_swap_iff_contravariant_swap + theorem Monotone.covariant_of_const' + theorem Monotone.covariant_of_const + theorem act_rel_act_of_rel + theorem act_rel_act_of_rel_of_rel + theorem act_rel_of_act_rel_of_rel_act_rel + theorem act_rel_of_rel_of_act_rel + theorem contravariant_flip_mul_iff + theorem contravariant_lt_of_contravariant_le + theorem covariant_flip_mul_iff + theorem covariant_le_iff_contravariant_lt + theorem covariant_le_of_covariant_lt + theorem covariant_lt_iff_contravariant_le + theorem flip_mul + theorem rel_act_of_act_rel_act_of_rel_act + theorem rel_act_of_rel_of_rel_act + theorem rel_iff_cov + theorem rel_of_act_rel_act Modified Mathlib/Order/Monotone.lean + theorem Antitone.comp_monotone + theorem Monotone.comp_antitone Modified Mathlib/Tactic/ToAdditive.lean 2022-10-15 07:56:51 12db1d9 chore: update dependencies (#473) ESTIMATED CHANGES Modified lean_packages/manifest.json 2022-10-14 00:13:06 26e9fca feat: replace Algebra/Group/{Defs,Basic} with direct ports from mathlib3 (#457) This PR discards and replaces with a direct port from mathlib3 the files: * `Algebra/Group/Defs.lean` * `Algebra/Group/Basic.lean` These files contained an ad-hoc redevelopment of parts of the algebraic hierarchy, and the expense of interfacing their content with other material which we need to port from mathlib3 to support tactic development was too high. The rest of the PR consists of making everything work again! To do so, we add *partial* ports of mathlib3's * `Algebra/Group/Units.lean` * `Algebra/Group/Semiconj.lean` * `Algebra/Group/Commute.lean` (just the initial segment of each which was required to provide the lemmas we need to patch up problems from the main replacement above). ~~Unfortunately it's still not working: there are mysterious (to me!) failures in `Tactic/Ring.lean`, which all seem to come down to the simplifier not wanting to use `zero_add` and `add_zero`, even though `exact` or `rw` accepts them. If @digama0 or @gebner would be able to have a look at these and provide some advice I'd much appreciate it.~~ - [x] depends on: #461 ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Group/Basic.lean - theorem add_add_add_comm - theorem add_right_eq_self + theorem comp_mul_left + theorem comp_mul_right + theorem div_div + theorem div_div_cancel + theorem div_div_cancel_left + theorem div_div_div_cancel_left + theorem div_div_div_cancel_right' + theorem div_div_div_comm + theorem div_div_div_eq + theorem div_div_eq_mul_div + theorem div_div_self' + theorem div_eq_div_iff_div_eq_div + theorem div_eq_div_iff_mul_eq_mul + theorem div_eq_div_mul_div + theorem div_eq_iff_eq_mul' + theorem div_eq_iff_eq_mul + theorem div_eq_inv_mul + theorem div_eq_inv_self + theorem div_eq_mul_one_div + theorem div_eq_of_eq_mul'' + theorem div_eq_of_eq_mul' + theorem div_eq_one + theorem div_eq_self + theorem div_inv_eq_mul + theorem div_left_inj + theorem div_left_injective + theorem div_mul + theorem div_mul_cancel'' + theorem div_mul_cancel' + theorem div_mul_comm + theorem div_mul_div_cancel'' + theorem div_mul_div_cancel' + theorem div_mul_div_comm + theorem div_mul_eq_div_div + theorem div_mul_eq_div_div_swap + theorem div_mul_eq_div_mul_one_div + theorem div_mul_eq_mul_div + theorem div_mul_mul_cancel + theorem div_ne_one + theorem div_ne_one_of_ne + theorem div_one + theorem div_right_comm + theorem div_right_inj + theorem div_right_injective + theorem div_self' + theorem eq_div_iff_mul_eq'' + theorem eq_div_iff_mul_eq' + theorem eq_div_of_mul_eq'' + theorem eq_div_of_mul_eq' + theorem eq_iff_eq_of_div_eq_div + theorem eq_inv_iff_eq_inv + theorem eq_inv_iff_mul_eq_one + theorem eq_inv_mul_iff_mul_eq + theorem eq_inv_mul_of_mul_eq + theorem eq_inv_of_eq_inv + theorem eq_inv_of_mul_eq_one_left + theorem eq_inv_of_mul_eq_one_right + theorem eq_mul_inv_iff_mul_eq + theorem eq_mul_inv_of_mul_eq + theorem eq_mul_of_div_eq' + theorem eq_mul_of_div_eq + theorem eq_mul_of_inv_mul_eq + theorem eq_mul_of_mul_inv_eq + theorem eq_of_div_eq_one + theorem eq_of_one_div_eq_one_div + theorem eq_one_div_of_mul_eq_one_left + theorem eq_one_div_of_mul_eq_one_right + theorem eq_one_iff_eq_one_of_mul_eq_one + theorem exists_npow_eq_one_of_zpow_eq_one + theorem inv_comp_inv + theorem inv_div' + theorem inv_div + theorem inv_div_inv + theorem inv_div_left + theorem inv_eq_iff_inv_eq + theorem inv_eq_iff_mul_eq_one + theorem inv_eq_of_mul_eq_one_left + theorem inv_eq_one + theorem inv_eq_one_div + theorem inv_inj + theorem inv_injective + theorem inv_inv_div_inv + theorem inv_involutive + theorem inv_mul' + theorem inv_mul_eq_div + theorem inv_mul_eq_iff_eq_mul + theorem inv_mul_eq_of_eq_mul + theorem inv_mul_eq_one + theorem inv_ne_one + theorem inv_surjective + theorem inv_unique + theorem ite_mul_one + theorem ite_one_mul + theorem left_inverse_div_mul_left + theorem left_inverse_inv + theorem left_inverse_inv_mul_mul_right + theorem left_inverse_mul_left_div + theorem left_inverse_mul_right_inv_mul + theorem mul_comm_div + theorem mul_div + theorem mul_div_assoc' + theorem mul_div_assoc + theorem mul_div_cancel''' + theorem mul_div_cancel'' + theorem mul_div_cancel'_right + theorem mul_div_div_cancel + theorem mul_div_left_comm + theorem mul_div_mul_comm + theorem mul_div_mul_left_eq_div + theorem mul_div_mul_right_eq_div + theorem mul_div_right_comm + theorem mul_eq_of_eq_div' + theorem mul_eq_of_eq_div + theorem mul_eq_of_eq_inv_mul + theorem mul_eq_of_eq_mul_inv + theorem mul_eq_one_iff_eq_inv + theorem mul_eq_one_iff_inv_eq + theorem mul_inv + theorem mul_inv_eq_iff_eq_mul + theorem mul_inv_eq_of_eq_mul + theorem mul_inv_eq_one + theorem mul_left_comm + theorem mul_left_eq_self + theorem mul_left_surjective + theorem mul_mul_div_cancel + theorem mul_mul_inv_cancel'_right +/- theorem mul_mul_mul_comm + theorem mul_one_div + theorem mul_one_eq_id + theorem mul_right_comm + theorem mul_right_eq_self + theorem mul_right_surjective + theorem mul_rotate' + theorem mul_rotate + theorem one_div + theorem one_div_div + theorem one_div_mul_one_div + theorem one_div_mul_one_div_rev + theorem one_div_one + theorem one_div_one_div + theorem one_eq_inv + theorem one_mul_eq_id + theorem right_inverse_inv - theorem self_eq_add_right + theorem self_eq_mul_left + theorem self_eq_mul_right Added Mathlib/Algebra/Group/Commute.lean + theorem Commute.mul_left + theorem Commute.mul_right + theorem Commute.one_left + theorem Commute.one_right + theorem Commute.pow_left + theorem Commute.pow_pow + theorem Commute.pow_pow_self + theorem Commute.pow_right + theorem Commute.pow_self + theorem Commute.self_pow + def Commute + theorem pow_succ' Modified Mathlib/Algebra/Group/Defs.lean + theorem CommGroup.toGroup_injective + theorem Group.toDivInvMonoid_injective - def Int.cast - theorem Int.cast_negSucc - theorem Int.cast_ofNat - theorem Int.cast_one - theorem Int.cast_zero + theorem MulOneClass.ext - def Nat.cast - theorem Nat.cast_add - theorem Nat.cast_ofNat - theorem Nat.cast_one - theorem Nat.cast_succ - theorem Nat.cast_zero - theorem add_assoc - theorem add_comm - theorem add_left_cancel - theorem add_left_cancel_iff - theorem add_left_inj - theorem add_left_neg - theorem add_neg_cancel_right - theorem add_neg_self - theorem add_right_cancel - theorem add_right_cancel_iff - theorem add_right_inj - theorem add_right_neg - theorem add_zero + theorem div_eq_mul_inv - theorem eq_of_sub_eq_zero' - def gpow_rec - def gsmul_rec - theorem inv_eq_of_mul_eq_one + theorem inv_eq_of_mul_eq_one_right +/- theorem inv_inv +/- theorem inv_mul_cancel_left + theorem inv_mul_cancel_right +/- theorem inv_mul_self + theorem inv_one + def leftMul +/- theorem left_inv_eq_right_inv - theorem left_neg_eq_right_neg + theorem mul_assoc + theorem mul_comm + theorem mul_inv_cancel_left +/- theorem mul_inv_cancel_right + theorem mul_inv_rev +/- theorem mul_inv_self - theorem mul_left_comm +/- theorem mul_left_inj + theorem mul_left_injective + theorem mul_ne_mul_left + theorem mul_ne_mul_right +/- theorem mul_one - theorem mul_pow +/- theorem mul_right_cancel - theorem mul_right_comm +/- theorem mul_right_inj + theorem mul_right_injective +/- theorem mul_right_inv - theorem neg_add_cancel_left - theorem neg_add_self - theorem neg_eq_of_add_eq_zero - theorem neg_neg + def npowRec +/- theorem npow_eq_pow - def npow_rec + def nsmulRec + theorem nsmul_eq_smul - def nsmul_rec +/- theorem one_mul - theorem pow_add - theorem pow_mul - theorem pow_mul_comm - theorem pow_one - theorem pow_succ' +/- theorem pow_succ +/- theorem pow_zero + def rightMul + theorem succ_nsmul - theorem zero_add + theorem zero_nsmul + def zpowRec + theorem zpow_coe_nat + theorem zpow_eq_pow + theorem zpow_neg_succ_of_nat + theorem zpow_of_nat + theorem zpow_zero + def zsmulRec Added Mathlib/Algebra/Group/Semiconj.lean + theorem SemiconjBy.mul_left + theorem SemiconjBy.mul_right + theorem SemiconjBy.one_left + theorem SemiconjBy.one_right + theorem SemiconjBy.pow_right + def SemiconjBy Added Mathlib/Algebra/Group/Units.lean + structure AddUnits + structure Units Added Mathlib/Algebra/GroupPower/Basic.lean + theorem Commute.mul_pow + theorem mul_pow + theorem pow_add + theorem pow_mul + theorem pow_one Modified Mathlib/Algebra/GroupWithZero/Defs.lean + def Int.cast + theorem Int.cast_negSucc + theorem Int.cast_ofNat + theorem Int.cast_one + theorem Int.cast_zero + def Nat.cast + theorem Nat.cast_add + theorem Nat.cast_ofNat + theorem Nat.cast_one + theorem Nat.cast_succ + theorem Nat.cast_zero + theorem eq_of_sub_eq_zero' + theorem pow_succ'' Modified Mathlib/Algebra/Ring/Basic.lean Modified Mathlib/Data/Fin/Basic.lean Modified Mathlib/Data/UInt.lean Modified Mathlib/Data/UnionFind.lean Modified Mathlib/Init/Logic.lean Modified Mathlib/Logic/Basic.lean + theorem Iff.not + theorem Iff.not_left + theorem Iff.not_right Modified Mathlib/Tactic/NormCast/Tactic.lean Modified Mathlib/Tactic/Ring.lean +/- theorem Mathlib.Tactic.Ring.horner_horner +/- theorem Mathlib.Tactic.Ring.zero_horner Modified scripts/nolints.json 2022-10-13 06:15:54 a6c72be feat: to_additive calls addDeclarationRanges (#461) ESTIMATED CHANGES Modified Mathlib/Tactic/ToAdditive.lean +/- def ToAdditive.transformDecl Modified test/toAdditive.lean 2022-10-13 02:35:37 458330e feat: add simp frontend for norm_num (#451) No new functionality here except that norm_num now calls itself as discharger. More to come. ESTIMATED CHANGES Modified Mathlib/Tactic/NormNum.lean - def Lean.Meta.NormNum.derive - def Lean.Meta.NormNum.elabNormNum - def Lean.Meta.NormNum.eval - def Lean.Meta.NormNum.evalEq - theorem Lean.Meta.NormNum.eval_eq_of_isNat - theorem Lean.Meta.NormNum.eval_of_isNat - def Lean.Meta.NormNum.instSemiringNat - def Lean.Meta.NormNum.isNat - theorem Lean.Meta.NormNum.isNat_add - theorem Lean.Meta.NormNum.isNat_cast - theorem Lean.Meta.NormNum.isNat_mul - theorem Lean.Meta.NormNum.isNat_pow - theorem Lean.Meta.NormNum.isNat_rawNat - def Lean.Meta.NormNum.normNumHyp - def Lean.Meta.NormNum.normNumTarget + def Lean.Meta.Simp.Result.ofTrue + def Mathlib.Meta.NormNum.elabNormNum + def Mathlib.Meta.NormNum.eval + theorem Mathlib.Meta.NormNum.eval_eq_of_isNat + theorem Mathlib.Meta.NormNum.eval_of_isNat + def Mathlib.Meta.NormNum.instSemiringNat + def Mathlib.Meta.NormNum.isNat + theorem Mathlib.Meta.NormNum.isNat_add + theorem Mathlib.Meta.NormNum.isNat_cast + theorem Mathlib.Meta.NormNum.isNat_mul + theorem Mathlib.Meta.NormNum.isNat_pow + theorem Mathlib.Meta.NormNum.isNat_rawNat + def Mathlib.Meta.NormNum.normNumAt + def Mathlib.Meta.NormNum.tryNormNum? Modified Mathlib/Tactic/Ring.lean + structure Mathlib.Tactic.Ring.Cache + def Mathlib.Tactic.Ring.HornerExpr.e + def Mathlib.Tactic.Ring.HornerExpr.isZero + def Mathlib.Tactic.Ring.HornerExpr.pp + def Mathlib.Tactic.Ring.HornerExpr.reflConv + def Mathlib.Tactic.Ring.HornerExpr.xadd' + inductive Mathlib.Tactic.Ring.HornerExpr + def Mathlib.Tactic.Ring.RingM.run + def Mathlib.Tactic.Ring.State.numAtoms + structure Mathlib.Tactic.Ring.State + def Mathlib.Tactic.Ring.addAtom + theorem Mathlib.Tactic.Ring.const_add_horner + def Mathlib.Tactic.Ring.evalAtom + def Mathlib.Tactic.Ring.evalConstMul + def Mathlib.Tactic.Ring.evalHorner + def Mathlib.Tactic.Ring.horner + theorem Mathlib.Tactic.Ring.horner_add_const + theorem Mathlib.Tactic.Ring.horner_add_horner_eq + theorem Mathlib.Tactic.Ring.horner_add_horner_gt + theorem Mathlib.Tactic.Ring.horner_add_horner_lt + theorem Mathlib.Tactic.Ring.horner_atom + theorem Mathlib.Tactic.Ring.horner_const_mul + theorem Mathlib.Tactic.Ring.horner_horner + theorem Mathlib.Tactic.Ring.horner_mul_const + theorem Mathlib.Tactic.Ring.horner_mul_horner + theorem Mathlib.Tactic.Ring.horner_mul_horner_zero + theorem Mathlib.Tactic.Ring.horner_pow + def Mathlib.Tactic.Ring.mkAppCS + theorem Mathlib.Tactic.Ring.pow_succ_eq + theorem Mathlib.Tactic.Ring.subst_into_add + theorem Mathlib.Tactic.Ring.subst_into_mul + theorem Mathlib.Tactic.Ring.subst_into_pow + theorem Mathlib.Tactic.Ring.zero_horner - structure Tactic.Ring.Cache - def Tactic.Ring.HornerExpr.e - def Tactic.Ring.HornerExpr.isZero - def Tactic.Ring.HornerExpr.pp - def Tactic.Ring.HornerExpr.reflConv - def Tactic.Ring.HornerExpr.xadd' - inductive Tactic.Ring.HornerExpr - def Tactic.Ring.RingM.run - def Tactic.Ring.State.numAtoms - structure Tactic.Ring.State - def Tactic.Ring.addAtom - theorem Tactic.Ring.const_add_horner - def Tactic.Ring.evalAtom - def Tactic.Ring.evalConstMul - def Tactic.Ring.evalHorner - def Tactic.Ring.horner - theorem Tactic.Ring.horner_add_const - theorem Tactic.Ring.horner_add_horner_eq - theorem Tactic.Ring.horner_add_horner_gt - theorem Tactic.Ring.horner_add_horner_lt - theorem Tactic.Ring.horner_atom - theorem Tactic.Ring.horner_const_mul - theorem Tactic.Ring.horner_horner - theorem Tactic.Ring.horner_mul_const - theorem Tactic.Ring.horner_mul_horner - theorem Tactic.Ring.horner_mul_horner_zero - theorem Tactic.Ring.horner_pow - def Tactic.Ring.mkAppCS - theorem Tactic.Ring.pow_succ_eq - theorem Tactic.Ring.subst_into_add - theorem Tactic.Ring.subst_into_mul - theorem Tactic.Ring.subst_into_pow - theorem Tactic.Ring.zero_horner Modified scripts/nolints.json 2022-10-12 17:28:42 7a39bc9 chore: update lean + std4 10-12 (#466) ESTIMATED CHANGES Modified Mathlib/Tactic/ByContra.lean Modified Mathlib/Util/Export.lean Modified lean-toolchain Modified lean_packages/manifest.json Modified test/byContra.lean 2022-10-11 09:52:47+11:00 1203930 chore: bump std (#464) * chore: bumping std * chore: remove unused theorem ESTIMATED CHANGES Modified Mathlib/Data/Array/Basic.lean - theorem Array.size_mapIdxM_map Modified Mathlib/Data/List/Pairwise.lean - theorem List.Pairwise.imp - theorem List.pairwise_append - theorem List.pairwise_map Modified Mathlib/Data/List/Range.lean Modified lean_packages/manifest.json 2022-10-10 22:17:25 916d876 feat: align Exists.choose and Exists.choose_spec (#463) Continuing from https://github.com/leanprover-community/mathlib4/pull/391, aligns mathlib3's `Exists.some` to std4's `Exists.choose` and, mathlib3's `Exists.some_spec` to std4's `Exists.choose_spec`. Lean 3: https://github.com/leanprover-community/mathlib/blob/d20f598ea7bbf11ae0f59ef4b95adb413ef7698d/src/logic/basic.lean#L1029-L1038 Lean 4: https://github.com/leanprover/std4/blob/b3590e627717a7d7b981924fa7b1ae0527a7627e/Std/Logic.lean#L409-L414 ESTIMATED CHANGES Modified Mathlib/Mathport/SpecialNames.lean 2022-10-10 21:33:19 9dd1a74 feat: `simp?` and `squeeze_scope` tactics (#449) The `simp?` tactic is a simple wrapper around the simp with trace behavior implemented in core. The `squeeze_scope` tactic allows aggregating multiple calls to `simp` coming from the same syntax but in different branches of execution, such as in `cases x <;> simp`. The reported `simp` call covers all simp lemmas used by this syntax. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Mathport/Syntax.lean Added Mathlib/Tactic/SimpTrace.lean + def Mathlib.Tactic.dsimpLocation' Added test/simp_trace.lean + def bar + def baz + def foo 2022-10-10 21:29:38 f275d4b chore: long lines (#460) ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Defs.lean +/- theorem Int.cast_negSucc +/- theorem Nat.cast_succ +/- theorem Nat.cast_zero Modified Mathlib/Control/Random.lean +/- def Random.randBound Modified Mathlib/Data/Fin/Basic.lean +/- theorem Fin.neg_def Modified Mathlib/Data/List/Basic.lean Modified Mathlib/Data/Option/Defs.lean +/- def Option.melim +/- def Option.mmap.{u, Modified Mathlib/Data/String/Lemmas.lean +/- theorem String.leftpad_length Modified Mathlib/Data/UnionFind.lean +/- theorem UFModel.Models.rank_eq Modified Mathlib/Init/Algebra/Functions.lean +/- theorem eq_max Modified Mathlib/Init/Data/Nat/Lemmas.lean Modified Mathlib/Init/Logic.lean +/- theorem decidable_eq_inr_neg +/- def decidable_eq_of_bool_pred Modified Mathlib/Lean/Expr/Basic.lean +/- def Lean.Expr.modifyArgM Modified Mathlib/Lean/Expr/ReplaceRec.lean +/- def Lean.Expr.replaceRecTraversal Modified Mathlib/Logic/Function/Basic.lean Modified Mathlib/Logic/Nonempty.lean +/- theorem Classical.nonempty_pi Modified Mathlib/Mathport/Syntax.lean Modified Mathlib/Order/Basic.lean +/- theorem Pi.le_def +/- theorem Preorder.to_le_injective +/- theorem Prod.swap_lt_swap Modified Mathlib/Tactic/Cache.lean +/- def Tactic.Cache.get +/- def Tactic.DeclCache.mk Modified Mathlib/Tactic/Cases.lean Modified Mathlib/Tactic/Coe.lean +/- def Lean.Elab.Term.CoeImpl.elabPartiallyAppliedCoe Modified Mathlib/Tactic/Find.lean Modified Mathlib/Tactic/Inhabit.lean Modified Mathlib/Tactic/IrreducibleDef.lean Modified Mathlib/Tactic/LeftRight.lean Modified Mathlib/Tactic/LibrarySearch.lean Modified Mathlib/Tactic/NormCast/Tactic.lean Modified Mathlib/Tactic/PushNeg.lean Modified Mathlib/Tactic/Ring.lean +/- theorem Tactic.Ring.horner_pow Modified Mathlib/Tactic/ToAdditive.lean Modified Mathlib/Testing/SlimCheck/Gen.lean +/- def SlimCheck.Gen.choose +/- theorem SlimCheck.Gen.chooseNatLt_aux Modified Mathlib/Testing/SlimCheck/Sampleable.lean +/- def SlimCheck.Char.sampleable +/- def SlimCheck.Fin.shrink +/- def SlimCheck.SampleableExt.interpSample Modified Mathlib/Testing/SlimCheck/Testable.lean +/- def SlimCheck.Testable.check +/- def SlimCheck.Testable.minimize +/- def SlimCheck.Testable.minimizeAux +/- def SlimCheck.Testable.runSuiteAux Modified Mathlib/Util/MemoFix.lean Modified Mathlib/Util/Simp.lean Modified Mathlib/Util/WhatsNew.lean Modified scripts/style-exceptions.txt 2022-10-10 21:19:10 aafd406 Mark `h_generalize` as `S` (#462) In https://github.com/leanprover-community/mathlib/pull/16839 I removed all uses of the `h_generalize` tactics in mathlib, so that we can ignore it for the purposes of a working port of mathlib Due dilligence reveals that it is used a few times in flypitch, https://github.com/flypitch/flypitch/blob/aea5800db1f4cce53fc4a113711454b27388ecf8/src/forcing.lean, so maybe a more ambitious mathport would cover it, but it certainly seems low priority to me ESTIMATED CHANGES Modified Mathlib/Mathport/Syntax.lean 2022-10-09 12:44:05 16f8e87 chore: bump lean 2022-10-09 (#459) ESTIMATED CHANGES Modified lean-toolchain Modified lean_packages/manifest.json 2022-10-08 09:24:11 089576b feat: minimal port of `Fintype (Fin n)` (#433) - [x] depends on: #429 ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Data/Fin/Basic.lean Modified Mathlib/Data/Fintype/Basic.lean Modified Mathlib/Data/List/Basic.lean + def List.attach + theorem List.attach_map_val + theorem List.map_pmap + theorem List.mem_attach + theorem List.mem_pmap + def List.pmap + theorem List.pmap_congr + theorem List.pmap_eq_map + theorem List.pmap_eq_map_attach + theorem List.pmap_map Added Mathlib/Data/List/Chain.lean + theorem List.Chain.imp' + theorem List.Chain.imp + theorem List.chain_cons + theorem List.chain_iff_pairwise Added Mathlib/Data/List/Nodup.lean + theorem List.Nodup.map_on + theorem List.Nodup.of_map + theorem List.Nodup.pmap + theorem List.nodup_attach Modified Mathlib/Data/List/Pairwise.lean + theorem List.Pairwise.and_mem + theorem List.Pairwise.iff_of_mem + theorem List.Pairwise.imp + theorem List.Pairwise.imp_of_mem + theorem List.Pairwise.map + theorem List.Pairwise.of_map + theorem List.pairwise_map + theorem List.pairwise_singleton + theorem List.rel_of_pairwise_cons Modified Mathlib/Data/List/Perm.lean Added Mathlib/Data/List/Range.lean + theorem List.chain_lt_range' + theorem List.chain_succ_range' + def List.finRange + theorem List.fin_range_zero + theorem List.mem_fin_range + theorem List.mem_range' + theorem List.mem_range + theorem List.nodup_fin_range + theorem List.nodup_range' + theorem List.nodup_range + theorem List.pairwise_lt_range' + theorem List.rangeAux_range' + theorem List.range_eq_range' Modified Mathlib/Data/Multiset/Basic.lean - def Mem + def Multiset.Mem Modified Mathlib/Logic/Basic.lean + theorem Ball.imp_left + theorem Ball.imp_right + theorem forall_swap 2022-10-07 00:48:15 4f147b2 feat: port solve_aux (#452) Per [zulip](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/solve_aux/near/302563156). ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Util/SynthesizeUsing.lean + def synthesizeUsing 2022-10-07 00:39:07 c4cf55b feat(Mathlib/Tactic/Contrapose): add `contrapose` tactic (#454) This ports `contrapose` and `contrapose!` as a collection of macro rules and provides a few basic tests. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Mathport/Syntax.lean Added Mathlib/Tactic/Contrapose.lean + theorem Mathlib.Tactic.Contrapose.mtr Added test/Contrapose.lean 2022-10-06 16:57:32 5ad3d5f chore: add the QQ library as a dependency (#453) This will be used for many things (`Expr` synthesis and pattern matching in tactics), but for now it's just a line in the lakefile. ESTIMATED CHANGES Modified README.md Modified lakefile.lean Modified lean_packages/manifest.json 2022-10-05 00:21:54 a4369ab chore: bump to 2022-10-03 (#450) ESTIMATED CHANGES Modified Mathlib/Tactic/Sat/FromLRAT.lean Modified lean-toolchain Modified lean_packages/manifest.json 2022-10-01 22:27:48 56b19bd chore: update lean + std4 09-30 (#448) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Mathport/Rename.lean Modified Mathlib/Mathport/Syntax.lean Modified Mathlib/Tactic/Cases.lean +/- def Lean.Parser.Tactic.ElimApp.evalNames Modified Mathlib/Tactic/Conv.lean Deleted Mathlib/Tactic/DSimp.lean - def Mathlib.Tactic.Conv.evalDSimp Modified Mathlib/Tactic/Find.lean Modified Mathlib/Tactic/HelpCmd.lean Modified Mathlib/Tactic/Recover.lean + def Lean.HashSet.insertMany - def Std.HashSet.insertMany Modified Mathlib/Util/Export.lean Modified Mathlib/Util/MemoFix.lean Modified Mathlib/Util/Simp.lean + def Lean.PHashSet.toList - def Std.PHashSet.toList Modified lean-toolchain Modified lean_packages/manifest.json Modified scripts/nolints.json Deleted test/DSimp.lean Modified test/Have.lean 2022-09-30 18:50:01 726746f feat: port order/monotone, needed for apply_fun (#441) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Order/Monotone.lean + theorem Antitone.imp + theorem Antitone.strict_anti_of_injective + def Antitone + def AntitoneOn + theorem Function.monotone_eval + theorem Monotone.comp_le_comp_left + theorem Monotone.imp + theorem Monotone.strict_mono_of_injective + def Monotone + def MonotoneOn + theorem StrictAnti.imp + def StrictAnti + def StrictAntiOn + theorem StrictMono.imp + def StrictMono + def StrictMonoOn + theorem Subsingleton.antitone' + theorem Subsingleton.monotone' + theorem antitone_app + theorem antitone_const + theorem antitone_iff_forall_lt + theorem antitone_lam + theorem antitone_on_const + theorem antitone_on_iff_forall_lt + theorem injective_of_le_imp_le + theorem monotone_app + theorem monotone_const + theorem monotone_id + theorem monotone_iff_forall_lt + theorem monotone_lam + theorem monotone_on_const + theorem monotone_on_id + theorem monotone_on_iff_forall_lt + theorem strict_mono_id + theorem strict_mono_on_id 2022-09-30 18:32:27 c240bdf feat: add an unset_option command (#422) Adds a user command to unset options, returning them to their default state, this is either a convenience feature, or can be used for the slightly rare instance where unset options behave differently to any particular setting (e.g. pp.proofs). This didn't exist in Lean 3. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Data/KVMap.lean + def Lean.KVMap.erase + def Lean.KVMap.eraseCore Added Mathlib/Tactic/UnsetOption.lean + def Lean.Elab.elabUnsetOption Added test/UnsetOption.lean 2022-09-30 18:28:19 a9a8bee chore: remove fsplit from Syntax.lean (#439) mathport replaces `split` with `constructor`, and `fsplit` with `fconstructor`, so there's no need to port anything for `fsplit`. ESTIMATED CHANGES Modified Mathlib/Mathport/Syntax.lean 2022-09-30 18:28:17 a8b986f chore: import induction' everywhere (#438) By adding `import Mathlib.Tactic.Cases` to `Mathlib/Tactic/Basic`, we ensure that `induction'`, which is used frequently by `mathport`'s output, is available everywhere. ESTIMATED CHANGES Modified Mathlib/Tactic/Basic.lean 2022-09-30 18:28:16 0af359a feat: `casesm` / `constructorm` tactic (#434) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Mathport/Syntax.lean Added Mathlib/Tactic/CasesM.lean + def Mathlib.Tactic.elabCasesType + def Mathlib.Tactic.elabPatterns + def Mathlib.Tactic.matchPatterns Added test/casesm.lean + inductive Test 2022-09-30 18:23:39 fdd0ff1 feat: Extend `rfl` tactic to use `refl` attribute. (#436) This extends the `rfl` tactic in Lean 4 to use `refl` attribute. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Mathport/Attributes.lean Modified Mathlib/Mathport/Syntax.lean Added Mathlib/Tactic/Relation/Rfl.lean Added test/rfl.lean + def Foo.le + theorem Foo.le_refl + structure Foo + def iseqv_refl 2022-09-27 18:58:10 ac8e480 chore: update lean + std4 09-26 (#444) ESTIMATED CHANGES Modified lean_packages/manifest.json 2022-09-27 18:10:27 ff5a7f9 chore: more 'S' tactics (#440) These all have zero occurrences in mathlib. ESTIMATED CHANGES Modified Mathlib/Mathport/Syntax.lean 2022-09-27 16:34:57 86dc846 chore: `case''` and `any_goals` moved to core (#442) ESTIMATED CHANGES Modified Mathlib/Mathport/Syntax.lean Modified Mathlib/Tactic/Basic.lean 2022-09-27 16:29:45 6ff78b4 chore: update lean + std4 09-26 (#443) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Data/List/Basic.lean Modified Mathlib/Init/Data/Nat/Lemmas.lean Modified Mathlib/Mathport/Syntax.lean Modified Mathlib/Tactic/Conv.lean Modified Mathlib/Tactic/DSimp.lean Modified Mathlib/Tactic/LibrarySearch.lean Modified Mathlib/Tactic/NormCast/Tactic.lean Modified Mathlib/Tactic/NormNum.lean Modified Mathlib/Tactic/PushNeg.lean Deleted Mathlib/Tactic/ShowTerm.lean Modified Mathlib/Tactic/ToAdditive.lean Deleted Mathlib/Tactic/TryThis.lean - def Tactic.TryThis.addExactSuggestion - def Tactic.TryThis.addSuggestion - def Tactic.TryThis.addTermSuggestion - def Tactic.TryThis.delabToRefinableSyntax Modified Mathlib/Util/Simp.lean Modified lean-toolchain Modified lean_packages/manifest.json Modified scripts/nolints.json Modified scripts/runLinter.lean Deleted test/showTerm.lean 2022-09-23 02:45:33 492d30e feat: minimal port of Fintype (#429) This is a bare minimum port of the definitions of `Finset` / `Multiset` / `Fintype`. I am hoping that these are enough to port the `fin_cases` tactic. (i.e. replacing the unfinished work in #346, which still had sorries in the corresponding material) Where possible I have started by copying and pasting the output from `mathlib3port`. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Data/Finset/Basic.lean + theorem Finset.mem_def + structure Finset Added Mathlib/Data/Fintype/Basic.lean + theorem Finset.mem_univ + def Finset.univ Modified Mathlib/Data/List/Basic.lean + theorem List.mem_split Added Mathlib/Data/List/Pairwise.lean + theorem List.pairwise_append + theorem List.pairwise_append_comm + theorem List.pairwise_middle Modified Mathlib/Data/List/Perm.lean + theorem List.Perm.cons_inv + theorem List.Perm.eq_nil + theorem List.Perm.length_eq + theorem List.Perm.mem_iff + theorem List.Perm.nil_eq + theorem List.Perm.nodup_iff + theorem List.Perm.pairwise_iff + theorem List.perm_induction_on + theorem List.perm_inv_core Added Mathlib/Data/Multiset/Basic.lean + def Mem + def Multiset Added Mathlib/Data/Multiset/Nodup.lean + def Multiset.Nodup Modified Mathlib/Logic/Basic.lean + theorem forall_prop_of_false + theorem forall_true_iff 2022-09-23 01:29:50 9328c66 feat: dsimp for conv-mode (#419) This PR defines `dsimp` for conv-mode. The implementation is very similar to `simp`, but easier since `dsimp` cannot fail. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Mathport/Syntax.lean Added Mathlib/Tactic/DSimp.lean + def Mathlib.Tactic.Conv.evalDSimp Added test/DSimp.lean 2022-09-23 00:56:03 112430b chore: update lean + std4 09-22 (#435) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Data/Array/Basic.lean - theorem Array.data_get?_eq_getElem? - theorem Array.data_get_eq_getElem - theorem Array.get?_eq_getElem? - theorem Array.get?_len_le - theorem Array.get?_push_eq - theorem Array.get?_push_lt - theorem Array.get?_set - theorem Array.get?_set_eq - theorem Array.get?_set_ne - theorem Array.getData_eq_getElem - theorem Array.getElem?_eq_get - theorem Array.getElem_mapIdx - theorem Array.getElem_mapIdxM_map - theorem Array.getElem_ofFn - theorem Array.getElem_ofFn_loop - theorem Array.get_eq_getElem - theorem Array.get_push - theorem Array.get_push_eq - theorem Array.get_push_lt - theorem Array.get_set - theorem Array.get_set_eq - theorem Array.get_set_ne - theorem Array.size_mapIdx - theorem Array.size_mapIdxM_Id +/- theorem Array.size_mapIdxM_map - theorem Array.size_ofFn - theorem Array.size_ofFn_loop - theorem Array.size_reverse - theorem Array.size_reverse_rev - theorem Array.size_swap! - theorem Array.toArray_data - theorem List.toArrayAux_data - theorem getElem!_fin - theorem getElem?_fin - theorem getElem?_neg - theorem getElem?_pos - theorem getElem_fin Modified Mathlib/Data/Option/Basic.lean Modified Mathlib/Data/UnionFind.lean Deleted Mathlib/Init/Data/Option/Instances.lean Modified Mathlib/Logic/Equiv/LocalEquiv.lean Modified Mathlib/Mathport/Syntax.lean Modified Mathlib/Tactic/Alias.lean Modified Mathlib/Tactic/RestateAxiom.lean Modified Mathlib/Tactic/Substs.lean Modified Mathlib/Tactic/TryThis.lean Modified lean-toolchain Modified lean_packages/manifest.json Modified scripts/nolints.json Modified test/Have.lean Modified test/toAdditive.lean 2022-09-21 21:36:19 2c662cc feat: `Mathport.Syntax` updates (#432) * `injections with xs,+` is implemented in core (leanprover/lean4#1631), removing it so we remember to update mathport later * `unfold'`, `dunfold`, `unfold1` have an alternative translation in leanprover-community/mathport#177 which makes them no longer needed * `guard_lhs` is now spelled `guard_target` and exists in std ESTIMATED CHANGES Modified Mathlib/Mathport/Syntax.lean 2022-09-20 20:34:16 15b3a0c chore: mark some tactics as 'skip' (#431) ESTIMATED CHANGES Modified Mathlib/Mathport/Syntax.lean 2022-09-19 23:27:42 0efb9bb feat: add econstructor tactic. (#426) Add `econstructor` tactic. ESTIMATED CHANGES Modified Mathlib/Mathport/Syntax.lean Modified Mathlib/Tactic/Constructor.lean Renamed test/fconstructor.lean to test/Constructor.lean 2022-09-19 23:23:59 0d2b4d6 feat: add appUnexpander for ExistsUnique (#428) Follows the same pattern as the unexpander for `Exists`: https://github.com/leanprover/lean4/blob/ad0f8d32584496330c15055c5e1c3dc795bb8679/src/Init/NotationExtra.lean#L170-L174 Closes #421. ESTIMATED CHANGES Modified Mathlib/Init/Logic.lean + def unexpandExistsUnique 2022-09-19 04:13:47 2a23207 chore: cleanup after lean4#1396 (#427) Remove `set_option linter.unusedVariables false` that a no longer needed after https://github.com/leanprover/lean4/pull/1396. ESTIMATED CHANGES Modified Mathlib/Data/List/Perm.lean Modified Mathlib/Init/Data/Nat/Lemmas.lean Modified Mathlib/Tactic/Sat/FromLRAT.lean 2022-09-18 21:43:15 624accd fix: use `False` instead of `false` in empty set (#424) fixes #423 ESTIMATED CHANGES Modified Mathlib/Init/Set.lean 2022-09-16 17:48:15 ccbd91a fix: remove deprecated definitions (#418) This PR replaces deprecated definitions in favor of the new version. ESTIMATED CHANGES Modified Mathlib/Logic/Equiv/LocalEquiv.lean Modified Mathlib/Tactic/NormNum.lean Modified Mathlib/Tactic/PushNeg.lean Modified Mathlib/Tactic/SwapVar.lean 2022-09-15 17:09:01 4a089ec chore: clean up mathport syntax file (#417) ESTIMATED CHANGES Modified Mathlib/Mathport/Syntax.lean 2022-09-15 16:18:33 5fe5703 chore: mark mapply as S (#416) ESTIMATED CHANGES Modified Mathlib/Mathport/Syntax.lean 2022-09-15 14:29:42 559fa0b chore: remove stuff moved to std4 (#415) ESTIMATED CHANGES Modified Mathlib/Data/Option/Basic.lean - theorem Option.lift_or_get_choice Deleted test/Simpa.lean - def foo 2022-09-15 13:39:39 456b9f6 chore: bump to 2022-09-15 (#414) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Data/Array/Basic.lean Modified Mathlib/Data/List/Basic.lean - theorem List.Pairwise_cons - theorem List.cons_union - theorem List.disjoint_append_left - theorem List.disjoint_comm - theorem List.disjoint_cons_left - theorem List.disjoint_iff_ne - theorem List.disjoint_left - theorem List.disjoint_nil_left - theorem List.disjoint_nil_right - theorem List.disjoint_of_disjoint_append_left_left - theorem List.disjoint_of_disjoint_append_left_right - theorem List.disjoint_of_disjoint_cons_left - theorem List.disjoint_of_disjoint_cons_right - theorem List.disjoint_of_subset_left - theorem List.disjoint_of_subset_right - theorem List.disjoint_right - theorem List.disjoint_singleton - theorem List.disjoint_symm - theorem List.eq_or_mem_of_mem_insert - theorem List.erase_append_left - theorem List.erase_append_right - theorem List.erase_cons - theorem List.erase_cons_head - theorem List.erase_cons_tail - theorem List.erase_eq_erasep - theorem List.erase_nil - theorem List.erase_of_not_mem - theorem List.erase_subset - theorem List.erasep_append_left - theorem List.erasep_append_right - theorem List.erasep_cons - theorem List.erasep_cons_of_neg - theorem List.erasep_cons_of_pos - theorem List.erasep_map - theorem List.erasep_nil - theorem List.erasep_of_forall_not - theorem List.erasep_subset - theorem List.exists_erase_eq - theorem List.exists_of_erasep - theorem List.exists_or_eq_self_of_erasep - theorem List.ext - theorem List.ext_get - theorem List.get?_append - theorem List.get?_append_right - theorem List.get?_concat_length - theorem List.get?_map - theorem List.get?_modifyNth - theorem List.get?_modifyNth_eq - theorem List.get?_modifyNth_ne - theorem List.get?_set_eq - theorem List.get?_set_ne - theorem List.get?_set_of_lt - theorem List.getLast_eq_get - theorem List.get_append - theorem List.get_append_right' - theorem List.get_append_right_aux - theorem List.get_cons_length - theorem List.get_map - theorem List.get_of_eq - theorem List.get_replicate - theorem List.get_set_eq - theorem List.get_set_ne - theorem List.get_singleton - theorem List.get_zero - theorem List.insert_of_mem - theorem List.insert_of_not_mem - def List.leftpad - theorem List.leftpad_length - theorem List.leftpad_prefix - theorem List.leftpad_suffix - theorem List.length_erase_of_mem - theorem List.length_erasep_of_mem - theorem List.length_insert_of_mem - theorem List.length_insert_of_not_mem - theorem List.mem_erase_of_ne - theorem List.mem_erasep_of_neg - theorem List.mem_insert_iff - theorem List.mem_insert_of_mem - theorem List.mem_insert_self - theorem List.mem_inter_iff - theorem List.mem_of_mem_erase - theorem List.mem_of_mem_erasep - theorem List.mem_or_eq_of_mem_set - theorem List.mem_union_iff - theorem List.modifyNthTail_id - theorem List.modifyNthTail_length - theorem List.modifyNth_eq_set - theorem List.modify_get?_length - theorem List.nil_union - theorem List.removeNth_eq_nth_tail - theorem List.set_comm - theorem List.set_eq_modifyNth - theorem List.set_nil - theorem List.set_succ - theorem List.singleton_disjoint Modified Mathlib/Data/List/Card.lean +/- theorem List.card_union_disjoint Modified Mathlib/Data/Option/Basic.lean - theorem Option.ball_ne_none - theorem Option.bex_ne_none - theorem Option.bind_assoc - theorem Option.bind_comm - theorem Option.bind_eq_none - theorem Option.bind_eq_some - theorem Option.bind_id_eq_join - theorem Option.bind_map_comm - theorem Option.bind_some - theorem Option.choice_eq - theorem Option.choice_isSome_iff_nonempty - theorem Option.comp_map - theorem Option.elim_none - theorem Option.elim_some - theorem Option.eq_none_iff_forall_not_mem - theorem Option.eq_some_iff_get_eq - theorem Option.ext - theorem Option.getD_map - theorem Option.getD_none - theorem Option.getD_of_ne_none - theorem Option.getD_some - theorem Option.get_mem - theorem Option.get_of_mem - theorem Option.get_some - theorem Option.guard_eq_some - theorem Option.isNone_none - theorem Option.isNone_some - theorem Option.isSome_iff_exists - theorem Option.isSome_none - theorem Option.isSome_some - theorem Option.join_eq_some - theorem Option.join_join - theorem Option.join_map_eq_map_join - theorem Option.join_ne_none' - theorem Option.join_ne_none - theorem Option.map_comp_map - theorem Option.map_congr - theorem Option.map_eq_map - theorem Option.map_eq_none' - theorem Option.map_eq_none - theorem Option.map_eq_some' - theorem Option.map_eq_some - theorem Option.map_id' - theorem Option.map_map - theorem Option.map_none' - theorem Option.map_none - theorem Option.map_some' - theorem Option.map_some - theorem Option.mem_map_of_mem - theorem Option.mem_of_mem_join - theorem Option.mem_unique - theorem Option.ne_none_iff_exists' - theorem Option.ne_none_iff_exists - theorem Option.ne_none_iff_isSome - theorem Option.none_bind - theorem Option.none_orelse - theorem Option.not_isSome - theorem Option.not_isSome_iff_eq_none - theorem Option.not_mem_none - theorem Option.orelse_none - theorem Option.some_bind - theorem Option.some_get - theorem Option.some_ne_none - theorem Option.some_orelse - theorem Option.to_list_none - theorem Option.to_list_some Modified Mathlib/Data/Option/Defs.lean - def Option.decidable_eq_none - def Option.guard - theorem Option.isNone_iff_eq_none - def Option.join - theorem Option.mem_def - theorem Option.mem_iff - def Option.pbind - def Option.pmap - theorem Option.some_inj - def Option.toList Modified Mathlib/Data/UnionFind.lean Deleted Mathlib/Init/Data/Option/Basic.lean - def Option.get Modified Mathlib/Tactic/Core.lean - def Lean.Parser.Tactic.simpArg Deleted Mathlib/Tactic/Simpa.lean Modified lean-toolchain Modified lean_packages/manifest.json Modified test/Simpa.lean 2022-09-15 13:26:46 bc465c4 fix: various bors issues (#413) ESTIMATED CHANGES Modified .github/workflows/bors.yml Modified .github/workflows/build.yml Modified .github/workflows/build.yml.in Modified .github/workflows/build_fork.yml Modified Mathlib/Tactic/Alias.lean +/- def Tactic.Alias.aliasIff Modified bors.toml 2022-09-15 12:35:21 3ccef23 feat: better info tracking in `alias` (#408) This lets you hover over the identifiers in `alias` to see the types of things, and go to definition works. ESTIMATED CHANGES Modified Mathlib/Tactic/Alias.lean +/- def Tactic.Alias.aliasIff +/- def Tactic.Alias.elabAlias +/- def Tactic.Alias.elabAliasLR +/- def Tactic.Alias.elabAliasLRDots 2022-09-15 12:32:23 cf08845 chore: port lint-style.py from mathlib (#352) Some of these are no longer relevant, but I want to see what works before cleaning up. ESTIMATED CHANGES Added .github/workflows/bors.yml Modified .github/workflows/build.yml Added .github/workflows/build.yml.in Added .github/workflows/build_fork.yml Added .github/workflows/mk_build_yml.sh Added scripts/lint-style.py Added scripts/lint-style.sh Added scripts/style-exceptions.txt Added scripts/update-style-exceptions.sh 2022-09-15 04:19:37 d1ab525 chore: simp `with` clauses are no longer needed (#409) Some mathport syntax cleanup: * use `simpArgs` instead of `[simpArg,*]` * use `dsimpArg` / `dsimpArgs` instead of `simpArg` (excludes `*`) for consistency with core * remove `simp'`, `dsimp'` which are no longer needed since all features exist upstream * mark `rw_search` as "skip" since it is no longer attested in mathlib * remove `squeeze_simp`, it overlaps with `simp?` in functionality so we'll just make one thing that does both ESTIMATED CHANGES Modified Mathlib/Mathport/Syntax.lean Modified Mathlib/Tactic/Core.lean + def Lean.Parser.Tactic.dsimpArg + def Lean.Parser.Tactic.getDSimpArgs Modified Mathlib/Tactic/LibrarySearch.lean Modified Mathlib/Tactic/NormNum.lean Modified Mathlib/Tactic/Simpa.lean Modified Mathlib/Tactic/SolveByElim.lean Modified scripts/nolints.json 2022-09-14 02:02:40 df8292b chore: missing module docs (#411) ESTIMATED CHANGES Modified Mathlib/Tactic/Spread.lean Modified Mathlib/Tactic/SudoSetOption.lean Modified Mathlib/Tactic/SwapVar.lean Modified Mathlib/Tactic/ToAdditive.lean Modified Mathlib/Tactic/Trace.lean 2022-09-13 18:59:50 9268173 chore(Mathport/Syntax): mark some tactics `S` (#410) Mark some tactics `S` since they are not strict prelims for porting ESTIMATED CHANGES Modified Mathlib/Mathport/Syntax.lean 2022-09-13 09:19:24 0cf4d5f chore: upgrade to elan 1.4.2 (#407) ESTIMATED CHANGES Modified .github/workflows/build.yml 2022-09-12 10:41:33 dd1ecc5 chore: bump to 2022-09-11 (#406) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Data/Array/Basic.lean +/- theorem Array.getElem_ofFn - theorem Array.size_mkEmpty +/- theorem Array.size_ofFn +/- theorem Array.size_ofFn_loop - theorem List.toArray_data Modified Mathlib/Data/List/Basic.lean - theorem List.Fin.exists_iff - theorem List.append_eq_cons_iff - theorem List.append_eq_has_append - theorem List.append_eq_nil - theorem List.append_inj' - theorem List.append_inj - theorem List.append_inj_left' - theorem List.append_inj_left - theorem List.append_inj_right' - theorem List.append_inj_right - theorem List.append_left_inj - theorem List.append_ne_nil_of_left_ne_nil - theorem List.append_ne_nil_of_ne_nil_left - theorem List.append_ne_nil_of_ne_nil_right - theorem List.append_right_inj - theorem List.append_subset_iff - theorem List.bind_map - theorem List.cons_eq_append_iff - theorem List.cons_inj - theorem List.cons_ne_nil - theorem List.cons_ne_self - theorem List.cons_subset - theorem List.empty_eq - theorem List.eq_nil_iff_forall_not_mem - theorem List.eq_nil_of_subset_nil - theorem List.eq_of_mem_replicate - theorem List.eq_of_mem_singleton - theorem List.eq_or_ne_mem_of_mem +/- theorem List.erasep_cons_of_neg +/- theorem List.erasep_cons_of_pos +/- theorem List.erasep_map - theorem List.exists_cons_of_ne_nil - theorem List.exists_mem_cons_iff +/- theorem List.exists_mem_cons_of_exists - theorem List.exists_mem_of_length_pos - theorem List.exists_mem_of_ne_nil - theorem List.exists_of_mem_bind - theorem List.exists_of_mem_join - theorem List.exists_of_mem_map +/- theorem List.exists_or_eq_self_of_erasep - theorem List.forall_mem_append - theorem List.forall_mem_cons - theorem List.forall_mem_map_iff - theorem List.forall_mem_nil - theorem List.forall_mem_singleton - theorem List.get?_eq_get - theorem List.get?_eq_none_iff - theorem List.get?_eq_some - theorem List.get?_len_le - theorem List.get?_mem - theorem List.get?_of_mem - theorem List.get?_zero - theorem List.getLast_append - theorem List.getLast_concat - theorem List.getLast_cons - theorem List.get_cons_drop - theorem List.get_mem - theorem List.get_of_mem - theorem List.head_eq_of_cons_eq - theorem List.join_cons - theorem List.join_nil - theorem List.length_eq_one - theorem List.length_eq_zero - theorem List.length_pos_iff_exists_mem - theorem List.length_pos_iff_ne_nil - theorem List.length_pos_of_mem - theorem List.length_pos_of_ne_nil - theorem List.length_singleton - theorem List.map_eq_append_split - theorem List.map_eq_nil - theorem List.map_subset - theorem List.mem_bind - theorem List.mem_bind_of_mem - theorem List.mem_constructor - theorem List.mem_filter - theorem List.mem_iff_get - theorem List.mem_iff_get? - theorem List.mem_join - theorem List.mem_join_of_mem - theorem List.mem_map - theorem List.mem_map_of_mem - theorem List.mem_of_mem_cons_of_mem - theorem List.mem_replicate - theorem List.mem_reverse - theorem List.mem_reverseAux - theorem List.mem_singleton - theorem List.mem_singleton_self - theorem List.ne_nil_of_length_pos - theorem List.ne_nil_of_mem - theorem List.nil_eq_append_iff +/- theorem List.not_exists_mem_nil - theorem List.or_exists_of_exists_mem_cons - theorem List.replicate_succ - theorem List.singleton_append - theorem List.subset_append_of_subset_left - theorem List.subset_append_of_subset_right - theorem List.subset_def - theorem List.tail_eq_of_cons_eq - theorem List.take_append_drop Modified Mathlib/Data/List/Card.lean Deleted Mathlib/Data/List/Defs.lean - def List.Chain' - inductive List.Chain - inductive List.Forall₂ - def List.Nodup - inductive List.Pairwise - def List.allSome - def List.count - def List.countp - def List.disjoint - def List.eraseDup - def List.erasep - def List.extractp - def List.fillNones - def List.find - def List.findIdx? - def List.findIdxs - def List.foldlIdx - def List.foldlIdxAux - def List.foldrIdx - def List.foldrIdxAux - def List.getRest - def List.ilast' - def List.indexOf? - def List.indexesOf - def List.indexesValues - def List.inits - def List.insertNth - def List.isInfix - def List.isPrefix - def List.isSuffix - def List.last' - def List.lookmap - def List.mapWithComplement - def List.mapWithPrefixSuffix - def List.mapWithPrefixSuffixAux - def List.map₂Left' - def List.map₂Left - def List.map₂Right' - def List.map₂Right - def List.mmap' - def List.mmap'Diag - def List.mmap - def List.mmapFilter - def List.mmapUpperTriangle - def List.modifyHead - def List.modifyLast - def List.modifyNth - def List.modifyNthTail - def List.ofFn - def List.ofFnAux - def List.ofFnNthVal - def List.partitionMap - def List.product - def List.pwFilter - def List.range' - def List.reduceOption - def List.revzip - def List.rotate' - def List.rotate - def List.scanl - def List.scanr - def List.scanrAux - def List.sections - def List.slice - def List.splitAt - def List.splitAtD - def List.splitOn - def List.splitOnP - def List.splitOnPAux - def List.sublists' - def List.sublists'Aux - def List.sublists - def List.sublistsAux - def List.sublistsAux₁ - def List.tails - def List.takeD - def List.takeList - def List.toChunks - def List.toChunksAux - def List.transpose - def List.transposeAux - def List.zipLeft' - def List.zipLeft - def List.zipRight' - def List.zipRight - def List.zipWith₃ - def List.zipWith₄ - def List.zipWith₅ Modified Mathlib/Data/List/Perm.lean Modified Mathlib/Logic/Basic.lean + theorem Or.imp3 + theorem and_or_imp + theorem imp_iff_or_not + theorem imp_iff_right_iff + theorem not_ne_iff + theorem or_congr_left' + theorem or_congr_right' Modified Mathlib/Logic/Equiv/MfldSimpsAttr.lean Modified Mathlib/Logic/Nonempty.lean - theorem nonempty_empty Modified Mathlib/Tactic/Cases.lean Modified Mathlib/Tactic/PermuteGoals.lean Modified lean-toolchain Modified lean_packages/manifest.json Modified test/cases.lean 2022-09-09 17:03:15 d1850df feat(Mathlib/Tactic/Existsi): the existsi tactic (#405) As suggested by Gabriel, we define `existsi` as a macro and `existsi a` expands to `refine ⟨a, ?_⟩`. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Mathport/Syntax.lean Added Mathlib/Tactic/Existsi.lean Added test/Existsi.lean 2022-09-08 18:38:33 6a081f5 chore: bump std4 09-08 (#403) Lots of stuff moved to std4 in this bump, so many files were removed or shrunk dramatically. In order to avoid too much churn, all the renamed theorems in `Mathlib.Init.Logic` and `Mathlib.Logic.Basic` have been turned into `alias` declarations, which we may clean up later. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Ring/Basic.lean +/- theorem Int.cast_eq_cast_iff_Nat Modified Mathlib/Data/Array/Basic.lean Modified Mathlib/Data/List/Basic.lean - theorem List.eq_of_mem_repeat' + theorem List.eq_of_mem_replicate +/- theorem List.eq_or_mem_of_mem_insert - theorem List.get_repeat' + theorem List.get_replicate +/- theorem List.insert_of_mem +/- theorem List.insert_of_not_mem +/- def List.leftpad +/- theorem List.leftpad_prefix +/- theorem List.mem_insert_iff +/- theorem List.mem_insert_of_mem +/- theorem List.mem_insert_self - theorem List.mem_repeat' + theorem List.mem_replicate - theorem List.repeat'_succ + theorem List.replicate_succ Modified Mathlib/Data/List/Card.lean +/- theorem List.insert_equiv_cons Modified Mathlib/Data/List/Defs.lean Modified Mathlib/Data/Nat/Basic.lean - theorem Nat.le_pred_of_lt - theorem Nat.le_sub_iff_add_le - theorem Nat.le_zero_iff - theorem Nat.lt_succ_iff - theorem Nat.mul_div_le - theorem Nat.sub_lt_self - theorem Nat.succ_eq_one_add - theorem Nat.succ_inj' Modified Mathlib/Data/Option/Defs.lean Modified Mathlib/Data/Prod.lean Modified Mathlib/Data/String/Defs.lean - def String.repeat' + def String.replicate Modified Mathlib/Data/String/Lemmas.lean +/- theorem String.leftpad_prefix - theorem String.length_repeat' + theorem String.length_replicate Modified Mathlib/Data/Subtype.lean Deleted Mathlib/Init/Data/List/Basic.lean - def List.after - def List.band - def List.bor - def List.findIdx - theorem List.getLast_cons_cons - theorem List.getLast_singleton - theorem List.get_cons_succ - theorem List.get_cons_zero - def List.indexOf - def List.insert - def List.last! - def List.mapIdx - def List.mapIdxAux - def List.mapIdxM - theorem List.mem_cons - theorem List.not_mem_nil - def List.removeNth - def List.repeat' - def List.tail Deleted Mathlib/Init/Data/List/Instances.lean Deleted Mathlib/Init/Data/List/Lemmas.lean - theorem List.append_bind - theorem List.ball_cons - theorem List.ball_nil - theorem List.bex_cons - theorem List.cons_bind - theorem List.cons_subset_cons - theorem List.eq_nil_of_length_eq_zero - theorem List.eq_or_mem_of_mem_cons - theorem List.length_drop - theorem List.length_le_of_sublist - theorem List.length_map₂ - theorem List.length_removeNth - theorem List.length_repeat' - theorem List.length_tail - theorem List.length_take - theorem List.length_take_le - theorem List.map_append - theorem List.map_cons - theorem List.map_id - theorem List.map_map - theorem List.map_nil - theorem List.map_singleton - theorem List.mem_append - theorem List.mem_append_eq - theorem List.mem_append_left - theorem List.mem_append_right - theorem List.mem_cons_eq - theorem List.mem_cons_iff - theorem List.mem_cons_of_mem - theorem List.mem_cons_self - theorem List.mem_nil_iff - theorem List.ne_nil_of_length_eq_succ - theorem List.nil_bind - theorem List.nil_subset - theorem List.not_bex_nil - inductive List.sublist - theorem List.subset.refl - theorem List.subset.trans - theorem List.subset_append_left - theorem List.subset_append_right - theorem List.subset_cons - theorem List.subset_cons_of_subset - theorem List.subset_of_cons_subset Modified Mathlib/Init/Data/Nat/Basic.lean Modified Mathlib/Init/Data/Nat/Lemmas.lean Deleted Mathlib/Init/Dvd.lean Deleted Mathlib/Init/ExtendedBinder.lean Modified Mathlib/Init/Logic.lean - theorem And.assoc - def And.elim - theorem And.imp - theorem And.left_comm - theorem And.swap - theorem And.symm - theorem Bool.eq_false_or_eq_true - theorem Bool.ff_ne_tt - def Decidable.by_cases - theorem Decidable.by_contradiction - theorem Decidable.not_not_iff - theorem Decidable.not_or_iff_and_not - theorem Eq.to_iff - theorem Exists.imp - theorem Iff.elim +/- theorem Iff.elim_left +/- theorem Iff.elim_right - theorem Not.intro - theorem Or.assoc - theorem Or.comm - theorem Or.left_comm - theorem Or.swap - theorem Or.symm - theorem and_assoc - theorem and_comm - theorem and_congr - theorem and_congr_right - theorem and_iff_left - theorem and_iff_right - theorem and_implies - theorem and_not_self - theorem congr_arg - theorem congr_fun - theorem eq_comm - theorem eq_rec_heq - theorem eq_self_iff_true - theorem exists_congr - theorem exists_imp_exists - theorem false_iff_true - theorem false_implies_iff - theorem false_of_true_eq_false - theorem false_of_true_iff_false - theorem forall_congr' - theorem forall_not_of_not_exists - theorem heq_self_iff_true - theorem if_false - theorem if_true - theorem iff_congr - theorem iff_false_intro - theorem iff_not_self - theorem iff_true_intro - theorem imp_congr - theorem imp_congr_ctx - theorem imp_congr_left - theorem imp_congr_right + theorem imp_of_if_neg + theorem imp_of_if_pos - theorem implies_of_if_neg - theorem implies_of_if_pos - theorem implies_true_iff - theorem ne_self_iff_false - theorem neq_of_not_iff - theorem non_contradictory_em - theorem non_contradictory_intro - theorem not_and_self - theorem not_false_iff - theorem not_iff_false_intro - theorem not_iff_not_of_iff - theorem not_iff_self - theorem not_non_contradictory_iff_absurd - theorem not_of_iff_false - theorem not_of_not_not_not - theorem not_or - theorem not_true - theorem of_iff_true - theorem or_assoc - theorem or_comm - theorem or_congr - theorem or_iff_left_of_imp - theorem or_iff_right_of_imp - theorem plift.down_up - theorem plift.up_down - structure plift - theorem proof_irrel +/- theorem trans_rel_left +/- theorem trans_rel_right - theorem true_eq_false_of_false - theorem true_iff_false - theorem true_implies_iff - theorem ulift.down_up - theorem ulift.up_down - structure ulift.{r, Modified Mathlib/Init/Set.lean Deleted Mathlib/Init/SetNotation.lean - def insertUnexpander - def singletonUnexpander Modified Mathlib/Logic/Basic.lean - theorem And.congr_left_iff - theorem And.congr_right_iff - theorem And.imp_left - theorem And.imp_right - theorem And.right_comm - theorem And.rotate - theorem Decidable.iff_iff_not_or_and_or_not - theorem Decidable.not_and - theorem Decidable.not_imp_self - def Empty.elim - theorem Exists.choose_spec - theorem Exists.nonempty - theorem Not.decidable_imp_symm - def Or.by_cases' - theorem and_congr_left' - theorem and_congr_left - theorem and_congr_right' - theorem and_iff_left_iff_imp - theorem and_iff_left_of_imp - theorem and_iff_right_iff_imp - theorem and_iff_right_of_imp - theorem and_imp - theorem and_not_self_iff - theorem and_or_distrib_left - theorem and_or_distrib_right - theorem and_self_left - theorem and_self_right +/- theorem and_symm_left +/- theorem and_symm_right - theorem apply_dite - theorem apply_ite - theorem beq_eq_false_iff_ne - theorem by_contra - theorem congr_arg2 - theorem dec_em - def decidable_of_bool - def decidable_of_iff' - def decidable_of_iff - theorem decide_eq_false_iff_not - theorem decide_eq_true_iff - theorem dite_not - theorem em - theorem eq_iff_iff - theorem eq_rec_constant - theorem exists_and_distrib_left - theorem exists_and_distrib_right - theorem exists_apply_eq_apply - theorem exists_eq' - theorem exists_eq - theorem exists_eq_left' - theorem exists_eq_left - theorem exists_eq_right - theorem exists_eq_right_right' - theorem exists_eq_right_right - theorem exists_false - theorem exists_imp_distrib - theorem exists_imp_exists' - theorem exists_prop - theorem exists₂_congr - theorem exists₃_congr - theorem exists₄_congr - theorem false_ne_true - theorem forall_and_distrib - theorem forall_const - theorem forall_eq' - theorem forall_eq - theorem forall_eq_or_imp - theorem forall_imp - theorem forall_prop_of_true - theorem forall₂_congr - theorem forall₃_congr - theorem forall₄_congr - theorem heq_iff_eq - theorem iff_and_self - theorem iff_def' - theorem iff_def - theorem iff_false_left - theorem iff_false_right - theorem iff_iff_eq +/- theorem iff_iff_not_or_and_or_not - theorem iff_of_eq - theorem iff_self_and - theorem iff_true_left - theorem iff_true_right - theorem imp.swap - theorem imp_and_distrib - theorem imp_false - theorem imp_iff_right - theorem imp_imp_imp - theorem imp_intro - theorem imp_not_comm - theorem imp_not_self - theorem imp_self - theorem imp_true_iff - theorem ite_id - theorem ite_not - theorem ne_comm - theorem not.decidable_imp_symm - theorem not_and' - theorem not_and - theorem not_and_of_not_left - theorem not_and_of_not_or_not - theorem not_and_of_not_right - theorem not_and_self_iff - theorem not_exists - theorem not_exists_of_forall_not - theorem not_forall_of_exists_not - theorem not_imp_of_and_not - theorem not_not_em - theorem not_not_not - theorem not_not_of_not_imp - theorem not_of_not_imp - theorem not_or_distrib - theorem or.right_comm - theorem or_and_distrib_left - theorem or_and_distrib_right - theorem or_congr_left - theorem or_congr_right - theorem or_iff_left_iff_imp - theorem or_iff_right_iff_imp - theorem or_imp_distrib - theorem or_left_comm +/- theorem or_of_or_of_imp_left +/- theorem or_of_or_of_imp_of_imp +/- theorem or_of_or_of_imp_right - theorem or_self_left - theorem or_self_right - theorem peirce' - theorem proof_irrel_heq Modified Mathlib/Logic/Function/Basic.lean Modified Mathlib/Mathport/Syntax.lean Modified Mathlib/Order/Basic.lean +/- theorem Prod.swap_le_swap Deleted Mathlib/Tactic/Ext.lean - def Mathlib.Tactic.Ext.extAttribute - def Mathlib.Tactic.Ext.extLemmas - def Mathlib.Tactic.Ext.liftCommandElabM - def Mathlib.Tactic.Ext.mkAndN - def Mathlib.Tactic.Ext.mkIff - def Mathlib.Tactic.Ext.withExtHyps Deleted Mathlib/Tactic/HaveI.lean - def Mathlib.Tactic.«haveI» - def Mathlib.Tactic.«letI» Deleted Mathlib/Tactic/RCases.lean - def Lean.Meta.FVarSubst.append - def Lean.Meta.RCases.RCasesPatt.alts' - def Lean.Meta.RCases.RCasesPatt.alts₁ - def Lean.Meta.RCases.RCasesPatt.alts₁Core - def Lean.Meta.RCases.RCasesPatt.asAlts - def Lean.Meta.RCases.RCasesPatt.asTuple - def Lean.Meta.RCases.RCasesPatt.ref - def Lean.Meta.RCases.RCasesPatt.tuple' - def Lean.Meta.RCases.RCasesPatt.tuple₁ - def Lean.Meta.RCases.RCasesPatt.tuple₁Core - def Lean.Meta.RCases.RCasesPatt.typed? - inductive Lean.Meta.RCases.RCasesPatt - def Lean.Meta.RCases.finish - def Lean.Meta.RCases.generalizeExceptFVar - def Lean.Meta.RCases.obtainNone - def Lean.Meta.RCases.processConstructor - def Lean.Meta.RCases.processConstructors - def Lean.Meta.RCases.rcases - def Lean.Meta.RCases.rintro - def Lean.Meta.RCases.subst' - def Lean.Meta.RCases.tryClearMany' Modified Mathlib/Tactic/Recover.lean Modified lean_packages/manifest.json Modified scripts/nolints.json Modified test/PermuteGoals.lean Modified test/cases.lean Deleted test/ext.lean - structure A - structure B - structure C Modified test/rcases.lean Modified test/toAdditive.lean +/- theorem Test.bar2_works +/- def Test.foo2 +/- theorem Test.foo2_works 2022-09-08 17:40:26 5475224 feat(Mathlib/Tactic/TypeCheck): add `type_check` tactic (#318) Lean 3 version: https://github.com/leanprover-community/lean/blob/master/library/init/meta/interactive.lean#L1664 ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Mathport/Syntax.lean Added Mathlib/Tactic/TypeCheck.lean Added test/TypeCheck.lean 2022-09-08 16:01:19 38b5190 update README (#402) I forgot the zeroth step when updating elan just now. ESTIMATED CHANGES Modified README.md 2022-09-08 13:59:56 615e34d feat(Tactic/ByContra): by_contra' tactic (#343) Implementation of `by_contra'`. Note that it needs the (as yet unimplemented) `push_neg`. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Mathport/Syntax.lean Added Mathlib/Tactic/ByContra.lean Modified Mathlib/Tactic/PushNeg.lean Added test/byContra.lean 2022-09-07 12:54:59 fff99b9 feat(Mathlib/Logic/Equiv/LocalEquiv): add the `mfld_set_tac` tactic (#331) This PR adds the `mfld_set_tac` tactic. This tactic relies on a custom simp set which mostly contain lemmas about advanced math that is not yet in mathlib4. In the test file, we have created stubs of a random subset of the various definitions and lemmas it needs; this will need to be revisited during the port. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Init/Set.lean + theorem Set.ext Added Mathlib/Logic/Equiv/LocalEquiv.lean Added Mathlib/Logic/Equiv/MfldSimpsAttr.lean Modified Mathlib/Mathport/Syntax.lean Added test/MfldSetTac.lean + theorem LocalEquiv.coe_trans + theorem LocalEquiv.coe_trans_symm + theorem LocalEquiv.left_inv + theorem LocalEquiv.map_source + def LocalEquiv.symm + theorem LocalEquiv.symm_source + def LocalEquiv.trans + theorem LocalEquiv.trans_source + structure LocalEquiv + theorem LocalHomeomorph.coe_coe + theorem LocalHomeomorph.coe_coe_symm + theorem LocalHomeomorph.left_inv + def LocalHomeomorph.symm + theorem LocalHomeomorph.symm_to_LocalEquiv + structure LocalHomeomorph + theorem ModelWithCorners.left_inv + def ModelWithCorners.symm + theorem ModelWithCorners.to_local_equiv_coe + theorem ModelWithCorners.to_local_equiv_coe_symm + structure ModelWithCorners + theorem Set.inter_univ + theorem Set.mem_inter_eq + theorem Set.mem_preimage + theorem Set.mem_set_of_eq + def Set.preimage + theorem Set.preimage_inter + theorem Set.preimage_univ 2022-09-07 12:51:23 d14e33d feat: `apply with` tactic (#400) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Mathport/Syntax.lean Added Mathlib/Tactic/ApplyWith.lean Added test/apply_with.lean 2022-09-06 13:11:44 d682465 chore: update lean + std4 09-05 (#401) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Group/Defs.lean Modified Mathlib/Algebra/Ring/Basic.lean Modified Mathlib/Control/Random.lean Modified Mathlib/Init/Data/Int/Basic.lean - theorem Int.add_assoc_aux1 - theorem Int.add_assoc_aux2 + theorem Int.coe_nat_le + theorem Int.coe_nat_lt - theorem Int.eq_x_or_neg - theorem Int.eq_zero_ofNatAbs_eq_zero - def Int.fdiv - def Int.fmod - def Int.gcd - theorem Int.mul_negSucc_ofNat_negSucc_ofNat - theorem Int.natAbs_eq - theorem Int.natAbs_mul_self - theorem Int.natAbs_neg - theorem Int.natAbs_ofNat - theorem Int.natAbs_one - theorem Int.natAbs_pos_of_ne_zero - theorem Int.natAbs_zero - theorem Int.negOfNat_add - theorem Int.negOfNat_eq_subNatNat_zero - theorem Int.negOfNat_mul_negSucc_ofNat - theorem Int.negOfNat_mul_ofNat - theorem Int.negSucc_ofNat_add_negSucc_ofNat - theorem Int.negSucc_ofNat_add_ofNat - theorem Int.negSucc_ofNat_coe' - theorem Int.negSucc_ofNat_coe - theorem Int.negSucc_ofNat_eq - theorem Int.negSucc_ofNat_inj_iff - theorem Int.negSucc_ofNat_mul_negOfNat - theorem Int.negSucc_ofNat_mul_subNatNat - theorem Int.negSucc_ofNat_ofNat - theorem Int.neg_neg_ofNat_succ - theorem Int.neg_ofNat_of_succ - theorem Int.neg_ofNat_zero - theorem Int.ofNat_add - theorem Int.ofNat_add_negSucc_ofNat - theorem Int.ofNat_add_ofNat - theorem Int.ofNat_eq_ofNat_iff - theorem Int.ofNat_mul - theorem Int.ofNat_mul_negOfNat - theorem Int.ofNat_mul_negSucc_ofNat - theorem Int.ofNat_mul_ofNat - theorem Int.ofNat_mul_subNatNat - theorem Int.ofNat_one - theorem Int.ofNat_sub - theorem Int.ofNat_succ - theorem Int.ofNat_zero - def Int.quot - def Int.rem - def Int.sign - theorem Int.sign_mul_natAbs - theorem Int.sign_neg_one - theorem Int.sign_one - theorem Int.sign_zero - theorem Int.subNatNat_add - theorem Int.subNatNat_add_add - theorem Int.subNatNat_add_left - theorem Int.subNatNat_add_negSucc_ofNat - theorem Int.subNatNat_add_right - theorem Int.subNatNat_elim - theorem Int.subNatNat_of_le - theorem Int.subNatNat_of_lt - theorem Int.subNatNat_of_sub_eq_succ - theorem Int.subNatNat_of_sub_eq_zero - theorem Int.subNatNat_sub - theorem Int.sub_nat_self - theorem Int.toNat_sub Added Mathlib/Init/Data/Int/Notation.lean Deleted Mathlib/Init/Data/Int/Order.lean - theorem Int.NonNeg.elim - theorem Int.add_one_le_of_lt - theorem Int.eq_natAbs_of_zero_le - theorem Int.eq_neg_succ_of_lt_zero - theorem Int.eq_ofNat_of_zero_le - theorem Int.eq_one_of_mul_eq_self_left - theorem Int.eq_one_of_mul_eq_self_right - theorem Int.eq_succ_of_zero_lt - theorem Int.eq_zero_of_sign_eq_zero - theorem Int.exists_eq_neg_ofNat - theorem Int.le.dest - theorem Int.le.dest_sub - theorem Int.le.intro - theorem Int.le.intro_sub - theorem Int.le_def - theorem Int.le_natAbs - theorem Int.le_of_lt - theorem Int.le_of_lt_add_one - theorem Int.le_of_sub_one_lt - theorem Int.le_sub_one_of_lt - theorem Int.lt.dest - theorem Int.lt.intro - theorem Int.lt_add_one_of_le - theorem Int.lt_add_succ - theorem Int.lt_iff_add_one_le - theorem Int.lt_of_add_one_le - theorem Int.lt_of_le_sub_one - theorem Int.lt_succ - theorem Int.mul_neg_eq_neg_mul_symm - theorem Int.natAbs_of_nonneg - theorem Int.neg_mul_eq_neg_mul_symm - theorem Int.neg_of_sign_eq_neg_one - theorem Int.neg_succ_lt_zero - theorem Int.nonneg_def - theorem Int.nonneg_or_nonneg_neg - theorem Int.ofNat_le - theorem Int.ofNat_lt - theorem Int.ofNat_natAbs_eq_of_nonneg - theorem Int.ofNat_natAbs_of_nonpos - theorem Int.ofNat_nonneg - theorem Int.ofNat_succ_pos - theorem Int.ofNat_zero_le - theorem Int.pos_of_sign_eq_one - theorem Int.sign_eq_neg_one_iff_neg - theorem Int.sign_eq_neg_one_of_neg - theorem Int.sign_eq_one_iff_pos - theorem Int.sign_eq_one_of_pos - theorem Int.sign_eq_zero_iff_zero - theorem Int.sign_of_succ - theorem Int.sub_one_lt_of_le Modified Mathlib/Init/Logic.lean - theorem Not.imp - theorem Or.imp - theorem Or.imp_left - theorem Or.imp_right Modified Mathlib/Logic/Basic.lean Modified Mathlib/Tactic/NormCast.lean Deleted Mathlib/Tactic/NormCast/CoeExt.lean - structure Tactic.NormCast.CoeFnInfo - inductive Tactic.NormCast.CoeFnType - def Tactic.NormCast.addCoeDelaborator - def Tactic.NormCast.coeDelaborator - def Tactic.NormCast.getCoeFnInfo? - def Tactic.NormCast.registerCoercion Deleted Mathlib/Tactic/NormCast/Ext.lean - inductive Tactic.NormCast.Label - structure Tactic.NormCast.NormCastExtension - def Tactic.NormCast.addElim - def Tactic.NormCast.addInfer - def Tactic.NormCast.addMove - def Tactic.NormCast.addSquash - def Tactic.NormCast.classifyType - def Tactic.NormCast.countInternalCoes - def Tactic.NormCast.getSimpArgs Deleted Mathlib/Tactic/NormCast/Lemmas.lean Modified Mathlib/Tactic/NormCast/Tactic.lean Modified Mathlib/Tactic/RunCmd.lean Modified Mathlib/Tactic/Trace.lean Modified lean-toolchain Modified lean_packages/manifest.json Modified scripts/nolints.json Modified test/norm_cast.lean Modified test/toAdditive.lean 2022-09-04 16:30:52 74e0984 chore: bump to 2022-09-04 (#398) ESTIMATED CHANGES Modified lean-toolchain 2022-09-04 16:26:28 d354c0d feat: depend on std4 (#397) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Data/Array/Defs.lean - def Array.flatten - def Array.ofFn - def Array.range - def Array.reduceOption Modified Mathlib/Data/Fin/Basic.lean Modified Mathlib/Data/Nat/Basic.lean Deleted Mathlib/Data/Nat/Gcd.lean - theorem Nat.coprime.coprime_div_left - theorem Nat.coprime.coprime_div_right - theorem Nat.coprime.coprime_dvd_left - theorem Nat.coprime.coprime_dvd_right - theorem Nat.coprime.coprime_mul_left - theorem Nat.coprime.coprime_mul_left_right - theorem Nat.coprime.coprime_mul_right - theorem Nat.coprime.coprime_mul_right_right - theorem Nat.coprime.dvd_of_dvd_mul_left - theorem Nat.coprime.dvd_of_dvd_mul_right - theorem Nat.coprime.eq_one_of_dvd - theorem Nat.coprime.gcd_both - theorem Nat.coprime.gcd_eq_one - theorem Nat.coprime.gcd_left - theorem Nat.coprime.gcd_mul - theorem Nat.coprime.gcd_mul_left_cancel - theorem Nat.coprime.gcd_mul_left_cancel_right - theorem Nat.coprime.gcd_mul_right_cancel - theorem Nat.coprime.gcd_mul_right_cancel_right - theorem Nat.coprime.gcd_right - theorem Nat.coprime.mul - theorem Nat.coprime.mul_dvd_of_dvd_of_dvd - theorem Nat.coprime.mul_right - theorem Nat.coprime.pow - theorem Nat.coprime.pow_left - theorem Nat.coprime.pow_right - theorem Nat.coprime.symm - def Nat.coprime - theorem Nat.coprime_comm - theorem Nat.coprime_div_gcd_div_gcd - theorem Nat.coprime_iff_gcd_eq_one - theorem Nat.coprime_mul_iff_left - theorem Nat.coprime_mul_iff_right - theorem Nat.coprime_one_left - theorem Nat.coprime_one_left_iff - theorem Nat.coprime_one_right - theorem Nat.coprime_one_right_iff - theorem Nat.coprime_self - theorem Nat.coprime_zero_left - theorem Nat.coprime_zero_right - theorem Nat.dvd_gcd - theorem Nat.dvd_gcd_iff - theorem Nat.dvd_lcm_left - theorem Nat.dvd_lcm_right - theorem Nat.eq_zero_of_gcd_eq_zero_left - theorem Nat.eq_zero_of_gcd_eq_zero_right - theorem Nat.exists_coprime' - theorem Nat.exists_coprime - theorem Nat.gcd.induction - theorem Nat.gcd_add_mul_self - theorem Nat.gcd_assoc - theorem Nat.gcd_comm - theorem Nat.gcd_div - theorem Nat.gcd_dvd - theorem Nat.gcd_dvd_gcd_mul_left - theorem Nat.gcd_dvd_gcd_mul_left_right - theorem Nat.gcd_dvd_gcd_mul_right - theorem Nat.gcd_dvd_gcd_mul_right_right - theorem Nat.gcd_dvd_gcd_of_dvd_left - theorem Nat.gcd_dvd_gcd_of_dvd_right - theorem Nat.gcd_dvd_left - theorem Nat.gcd_dvd_right - theorem Nat.gcd_eq_left - theorem Nat.gcd_eq_left_iff_dvd - theorem Nat.gcd_eq_right - theorem Nat.gcd_eq_right_iff_dvd - theorem Nat.gcd_eq_zero_iff - theorem Nat.gcd_gcd_self_left_left - theorem Nat.gcd_gcd_self_left_right - theorem Nat.gcd_gcd_self_right_left - theorem Nat.gcd_gcd_self_right_right - theorem Nat.gcd_le_left - theorem Nat.gcd_le_right - theorem Nat.gcd_mul_dvd_mul_gcd - theorem Nat.gcd_mul_gcd_of_coprime_of_mul_eq_mul - theorem Nat.gcd_mul_lcm - theorem Nat.gcd_mul_left - theorem Nat.gcd_mul_left_left - theorem Nat.gcd_mul_left_right - theorem Nat.gcd_mul_right - theorem Nat.gcd_mul_right_left - theorem Nat.gcd_mul_right_right - theorem Nat.gcd_one_right - theorem Nat.gcd_pos_of_pos_left - theorem Nat.gcd_pos_of_pos_right - theorem Nat.gcd_rec - def Nat.lcm - theorem Nat.lcm_assoc - theorem Nat.lcm_comm - theorem Nat.lcm_dvd - theorem Nat.lcm_ne_zero - theorem Nat.lcm_one_left - theorem Nat.lcm_one_right - theorem Nat.lcm_self - theorem Nat.lcm_zero_left - theorem Nat.lcm_zero_right - theorem Nat.not_coprime_of_dvd_of_dvd - def Nat.prod_dvd_and_dvd_of_dvd_prod Modified Mathlib/Init/Data/List/Basic.lean Modified Mathlib/Init/Data/List/Lemmas.lean +/- theorem List.length_take_le Modified Mathlib/Init/Data/Nat/Lemmas.lean - theorem Nat.add_div_left - theorem Nat.add_div_right - theorem Nat.add_mod - theorem Nat.add_mod_left - theorem Nat.add_mod_mod - theorem Nat.add_mod_right - theorem Nat.add_mul_div_left - theorem Nat.add_mul_div_right - theorem Nat.add_mul_mod_self_left - theorem Nat.add_mul_mod_self_right - theorem Nat.add_one_ne_zero - theorem Nat.div_eq_of_lt - theorem Nat.div_eq_sub_div - theorem Nat.div_lt_iff_lt_mul - theorem Nat.div_mul_le_self - theorem Nat.dvd_antisymm - theorem Nat.dvd_iff_mod_eq_zero - theorem Nat.dvd_mod_iff - theorem Nat.dvd_of_mod_eq_zero - theorem Nat.dvd_sub - theorem Nat.eq_one_of_dvd_one - theorem Nat.eq_zero_of_add_eq_zero - theorem Nat.eq_zero_of_mul_eq_zero - theorem Nat.eq_zero_or_eq_succ_pred - theorem Nat.exists_eq_succ_of_ne_zero - theorem Nat.le_div_iff_mul_le - theorem Nat.le_lt_antisymm - theorem Nat.le_of_dvd - theorem Nat.le_of_mod_lt - theorem Nat.le_succ_of_pred_le - theorem Nat.lt_le_antisymm - theorem Nat.lt_succ_of_lt - theorem Nat.min_succ_succ - theorem Nat.mod_add_div - theorem Nat.mod_add_mod - theorem Nat.mod_eq_zero_of_dvd - theorem Nat.mod_mod - theorem Nat.mod_two_eq_zero_or_one - theorem Nat.mul_div_left - theorem Nat.mul_div_right - theorem Nat.mul_mod - theorem Nat.mul_mod_left - theorem Nat.mul_mod_mul_left - theorem Nat.mul_mod_mul_right - theorem Nat.mul_mod_right - theorem Nat.mul_sub_div - theorem Nat.one_add - theorem Nat.one_pos - theorem Nat.pos_of_dvd_of_pos - theorem Nat.pow_eq - theorem Nat.pow_succ' - theorem Nat.pred_inj - theorem Nat.pred_lt_pred - theorem Nat.sub_eq_sub_min - theorem Nat.sub_lt_succ - theorem Nat.sub_mul_div - theorem Nat.sub_mul_mod - theorem Nat.sub_one_sub_lt - theorem Nat.succ_add_eq_succ_add - theorem Nat.succ_mul_succ_eq - theorem Nat.succ_ne_self - theorem Nat.succ_pred_eq_of_pos - theorem Nat.succ_sub - theorem Nat.succ_sub_one - theorem Nat.succ_sub_sub_succ Modified Mathlib/Init/Logic.lean - def Not.elim - theorem Or.neg_resolve_left - theorem Or.neg_resolve_right - theorem Or.resolve_left - theorem Or.resolve_right - theorem not_congr - theorem not_or_intro Modified Mathlib/Lean/Expr/ReplaceRec.lean Deleted Mathlib/Lean/NameMapAttribute.lean - def Lean.NameMapAttribute.add - def Lean.NameMapAttribute.find? - structure Lean.NameMapAttribute - structure Lean.NameMapAttributeImpl - def Lean.NameMapExtension.add - def Lean.NameMapExtension.find? - def Lean.NameMapExtension - def Lean.mkNameMapExtension - def Lean.registerNameMapAttribute Modified Mathlib/Logic/Basic.lean - theorem iff_of_false - theorem iff_of_true Modified Mathlib/Logic/Function/Basic.lean Modified Mathlib/Logic/Nonempty.lean Modified Mathlib/Mathport/Syntax.lean Modified Mathlib/Tactic/Basic.lean - def evalGuardHyp Modified Mathlib/Tactic/Cases.lean Modified Mathlib/Tactic/CommandQuote.lean Deleted Mathlib/Tactic/Lint.lean Deleted Mathlib/Tactic/Lint/Basic.lean - structure Mathlib.Tactic.Lint.Linter - def Mathlib.Tactic.Lint.NamedLinter.name - structure Mathlib.Tactic.Lint.NamedLinter - def Mathlib.Tactic.Lint.getLinter - def Mathlib.Tactic.Lint.getLinters - def Mathlib.Tactic.Lint.isAutoDecl - def Mathlib.Tactic.Lint.shouldBeLinted Deleted Mathlib/Tactic/Lint/Frontend.lean - def Lean.TagAttribute.getDecls - inductive Mathlib.Tactic.Lint.LintVerbosity - def Mathlib.Tactic.Lint.formatLinterResults - def Mathlib.Tactic.Lint.getAllDecls - def Mathlib.Tactic.Lint.getChecks - def Mathlib.Tactic.Lint.getDeclsInCurrModule - def Mathlib.Tactic.Lint.getDeclsInMathlib - def Mathlib.Tactic.Lint.groupedByFilename - def Mathlib.Tactic.Lint.lintCore - def Mathlib.Tactic.Lint.printWarning - def Mathlib.Tactic.Lint.printWarnings - def Mathlib.Tactic.Lint.sortResults Deleted Mathlib/Tactic/Lint/Misc.lean - def Mathlib.Tactic.Lint.checkType - def Mathlib.Tactic.Lint.checkUnivs - def Mathlib.Tactic.Lint.defLemma - def Mathlib.Tactic.Lint.docBlame - def Mathlib.Tactic.Lint.docBlameThm - def Mathlib.Tactic.Lint.dupNamespace - def Mathlib.Tactic.Lint.explicitVarsOfIff - def Mathlib.Tactic.Lint.findUnusedHaves - def Mathlib.Tactic.Lint.synTaut - def Mathlib.Tactic.Lint.unusedArguments - def Mathlib.Tactic.Lint.unusedHavesSuffices Deleted Mathlib/Tactic/Lint/Simp.lean - structure Mathlib.Tactic.Lint.SimpTheoremInfo - def Mathlib.Tactic.Lint.checkAllSimpTheoremInfos - def Mathlib.Tactic.Lint.constToSimpDeclMap - def Mathlib.Tactic.Lint.decorateError - def Mathlib.Tactic.Lint.elements - def Mathlib.Tactic.Lint.formatLemmas - def Mathlib.Tactic.Lint.heuristicallyExtractSimpTheorems - def Mathlib.Tactic.Lint.heuristicallyExtractSimpTheoremsCore - def Mathlib.Tactic.Lint.isConditionalHyps - def Mathlib.Tactic.Lint.isEqnLemma? - def Mathlib.Tactic.Lint.isSimpEq - def Mathlib.Tactic.Lint.isSimpTheorem - def Mathlib.Tactic.Lint.simpComm - def Mathlib.Tactic.Lint.simpNF - def Mathlib.Tactic.Lint.simpVarHead - def Mathlib.Tactic.Lint.withSimpTheoremInfos Deleted Mathlib/Tactic/NoMatch.lean - def Lean.Elab.Term.elabNoMatch' Modified Mathlib/Tactic/NormCast/Tactic.lean Deleted Mathlib/Tactic/OpenPrivate.lean - def Lean.Elab.Command.elabExportPrivate - def Lean.Elab.Command.elabOpenPrivate - def Lean.Elab.Command.elabOpenPrivateLike - def Lean.Environment.declsInModuleIdx - def Lean.Environment.moduleIdxForModule? - def Lean.Meta.collectPrivateIn Modified Mathlib/Tactic/RunCmd.lean Modified Mathlib/Tactic/ToAdditive.lean Modified Mathlib/Tactic/Trace.lean Deleted Mathlib/Util/LibraryNote.lean - def Mathlib.Util.LibraryNote.LibraryNoteEntry - def Mathlib.Util.LibraryNote.getDocCommentContent Modified Mathlib/Util/Simp.lean Deleted Mathlib/Util/TermUnsafe.lean - def Mathlib.TermUnsafe.mkAuxName Modified Mathlib/Util/WhatsNew.lean Modified lakefile.lean Modified lean_packages/manifest.json Modified scripts/runLinter.lean Modified test/nomatch.lean Modified test/norm_num.lean 2022-09-02 13:27:51 2d78fed chore: bump to 2022-09-01 (#396) ESTIMATED CHANGES Modified Mathlib/Util/MemoFix.lean Modified lean-toolchain 2022-09-02 10:43:30 880bf07 feat(Mathlib/Tactic/PushNeg): implement the `push_neg` tactic (#344) This PR implements the `push_neg` tactic. This code is based on https://github.com/leanprover-community/mathlib4/pull/193/ and on the original Lean 3 `push_neg` code. It notably implements a new feature: if `set_option push_neg.use_distrib true` is set, then it performs `(¬ (p ∧ q)) = (¬ p ∨ ¬ q)` instead of `(¬ (p ∧ q)) = (p → ¬ q)`. Note: I'm not too sure what the conventions are for options (i.e. is `push_neg.use_distrib` an appropriate name?). Also, I don't know what the "group" string of the option is for, so I left it blank. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Mathport/Syntax.lean Added Mathlib/Tactic/PushNeg.lean + theorem Mathlib.Tactic.PushNeg.not_and_distrib_eq + theorem Mathlib.Tactic.PushNeg.not_and_eq + theorem Mathlib.Tactic.PushNeg.not_exists_eq + theorem Mathlib.Tactic.PushNeg.not_forall_eq + theorem Mathlib.Tactic.PushNeg.not_implies_eq + theorem Mathlib.Tactic.PushNeg.not_le_eq + theorem Mathlib.Tactic.PushNeg.not_lt_eq + theorem Mathlib.Tactic.PushNeg.not_ne_eq + theorem Mathlib.Tactic.PushNeg.not_not_eq + theorem Mathlib.Tactic.PushNeg.not_or_eq + def Mathlib.Tactic.PushNeg.pushNegLocalDecl + def Mathlib.Tactic.PushNeg.pushNegTarget + def Mathlib.Tactic.PushNeg.transformNegationStep Added test/push_neg.lean 2022-08-31 15:26:08 90004fd chore: update 'section binary' in Init/Logic to use infix notation and `calc` (#386) This makes the code more closely match the mathlib3 version: https://github.com/leanprover-community/lean/blob/741670c439f1ca266bc7fe61ef7212cc9afd9dd8/library/init/logic.lean#L1064-L1097 ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Defs.lean Modified Mathlib/Init/Logic.lean +/- def RightInverse +/- def associative +/- def commutative +/- def left_cancelative +/- def left_distributive +/- def left_identity +/- def right_cancelative +/- def right_distributive +/- def right_identity Modified scripts/nolints.json 2022-08-31 09:21:10 380fbe1 chore: bump to 2022-08-31 (#393) ESTIMATED CHANGES Modified lean-toolchain 2022-08-31 08:57:45 62b6470 chore: bump to 2022-08-30 (#392) ESTIMATED CHANGES Modified Mathlib/Tactic/Recover.lean Modified Mathlib/Util/Export.lean Modified Mathlib/Util/MemoFix.lean Modified lean-toolchain 2022-08-29 05:45:56 3d525b8 feat: align Classical.choose and Classical.choose_spec (#391) `classical.some` and `classical.some_spec` become `Classical.choose` and `Classical.choose_spec`. Lean 3: https://github.com/leanprover-community/lean/blob/741670c439f1ca266bc7fe61ef7212cc9afd9dd8/library/init/classical.lean#L19-L23 Lean 4: https://github.com/leanprover/lean4/blob/e80028b7d1be11b190e5439fab33f9a034f6babf/src/Init/Classical.lean#L19-L23 ESTIMATED CHANGES Modified Mathlib/Mathport/SpecialNames.lean 2022-08-27 10:24:51 2e3cdfa chore: bump to 2022-08-27 (#390) ESTIMATED CHANGES Modified lean-toolchain 2022-08-26 18:48:59 362fc2d fix: rename and.swap to And.swap (#389) Fixes typo from #34. Compare to lean3port: https://github.com/leanprover-community/lean3port/blob/f32c612cbcf601def6e4546470e8d2776a7f54d1/Leanbin/Init/Logic.lean#L217 ESTIMATED CHANGES Modified Mathlib/Init/Logic.lean + theorem And.swap - theorem and.swap 2022-08-24 14:22:22 e877b4d feat: substs tactic (#314) Added the substs tactic, which just applies subst to multiple hypotheses at once. This is my first PR to mathlib; let me know what needs to change! ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Mathport/Syntax.lean Added Mathlib/Tactic/Substs.lean 2022-08-24 14:16:53 3a2b8a9 feat: `rename_bvar` tactic (#342) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Lean/Expr/Basic.lean + def Lean.Expr.renameBVar Modified Mathlib/Mathport/Syntax.lean Added Mathlib/Tactic/RenameBVar.lean + def Mathlib.Tactic.renameBVarHyp + def Mathlib.Tactic.renameBVarTarget Modified Mathlib/Tactic/SwapVar.lean Modified Mathlib/Util/Tactic.lean - def Mathlib.Tactic.getNameAndFVarId +/- def Mathlib.Tactic.modifyLocalContext + def Mathlib.Tactic.modifyLocalDecl + def Mathlib.Tactic.modifyMetavarDecl + def Mathlib.Tactic.modifyTarget 2022-08-24 14:06:11 260313c feat: recover as a tactic combinator (#336) Following a suggestion of @digama0 `recover` is implemented as wrapping tactics so that if goals are closed incorrectly they are reopened. Below are examples (test suggested by @gebner). Some code is from Aesop. ```lean /-- problematic tactic for testing recovery -/ elab "this" "is" "a" "problem" : tactic => Lean.Elab.Tactic.setGoals [] /- The main test-/ example : 1 = 1 := by recover this is a problem rfl /- Tests that recover does no harm -/ example : 3 < 4 := by recover decide example : 1 = 1 := by recover skip ; rfl example : 2 = 2 := by recover skip rfl ``` ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Mathport/Syntax.lean Added Mathlib/Tactic/Recover.lean + def Std.HashSet.insertMany Added test/recover.lean 2022-08-24 13:53:29 7e9814d chore: disable decide in simp linter (#384) The `decide` support is pretty flaky in simp. ESTIMATED CHANGES Modified Mathlib/Init/Logic.lean Modified Mathlib/Tactic/Lint/Simp.lean 2022-08-24 13:53:28 93ec19e feat: more lemmas about decide/== (#383) ESTIMATED CHANGES Modified Mathlib/Data/List/Basic.lean Modified Mathlib/Logic/Basic.lean - theorem EqIffBeqTrue - theorem NeqIffBeqFalse + theorem beq_eq_false_iff_ne +/- theorem decide_eq_true_iff 2022-08-24 13:42:12 9e017ff feat: port List.length_injective_iff and List.length_injective (#378) Replace commented-out Lean 3 `List.length_injective_iff` and `List.length_injective` lemmas, port them to Lean 4. Compare to the current mathlib3 versions: https://github.com/leanprover-community/mathlib/blob/6f1ad8258079beb8437c2e402d4218f4e6b7f9f6/src/data/list/basic.lean#L256-L266 ESTIMATED CHANGES Modified Mathlib/Data/List/Basic.lean + theorem List.length_injective + theorem List.length_injective_iff 2022-08-24 11:42:42 0ae295c chore: update nolints (#382) ESTIMATED CHANGES Modified scripts/nolints.json 2022-08-24 11:42:41 2629553 feat: port 'section relation' in Init/Logic (#379) #34 left `section relation` as a TODO. This PR fills it in. Compare to the Lean 3 version: https://github.com/leanprover-community/lean/blob/741670c439f1ca266bc7fe61ef7212cc9afd9dd8/library/init/logic.lean#L1027-L1062 ESTIMATED CHANGES Modified Mathlib/Init/Logic.lean + def anti_symmetric + def empty_relation + def equivalence + theorem inv_image.irreflexive + theorem inv_image.trans + def inv_image + def irreflexive + theorem mk_equivalence + def reflexive + def subrelation + def symmetric + def total + def transitive 2022-08-24 11:40:11 7c9da28 feat: `Array.ofFn` and lemmas (#381) This adds the `Array.ofFn` function which is analogous to `List.ofFn` as well as characterizing lemmas. ESTIMATED CHANGES Modified Mathlib/Data/Array/Basic.lean + theorem Array.getElem_mapIdx + theorem Array.getElem_mapIdxM_map + theorem Array.getElem_ofFn + theorem Array.getElem_ofFn_loop + theorem Array.size_mapIdx + theorem Array.size_mapIdxM_Id + theorem Array.size_mapIdxM_map + theorem Array.size_mkEmpty + theorem Array.size_ofFn + theorem Array.size_ofFn_loop + theorem Array.size_reverse + theorem Array.size_reverse_rev + theorem Array.size_swap! Modified Mathlib/Data/Array/Defs.lean + def Array.ofFn Modified Mathlib/Init/Data/Nat/Lemmas.lean 2022-08-24 13:39:28+02:00 9d27bb9 feat: more coercion notations ESTIMATED CHANGES Modified Mathlib/Tactic/Coe.lean + def Lean.Elab.Term.CoeImpl.elabPartiallyAppliedCoe + def Lean.Elab.Term.CoeImpl.mkFunCoe + def Lean.Elab.Term.CoeImpl.mkSortCoe 2022-08-23 13:36:22 5db2213 chore: clean up style of injective.dite using dsimp and by_cases (#377) It seems that Lean 4's `dsimp` has gotten closer to parity with Lean 3's `dsimp` since this code landed. Compare to the mathlib3 version of `injective.dite` here: https://github.com/leanprover-community/mathlib/blob/f089486a9af40d019f9ecf7d86a055eb2801124b/src/logic/function/basic.lean#L114-L126 ESTIMATED CHANGES Modified Mathlib/Logic/Function/Basic.lean 2022-08-22 17:24:31 d211150 chore: uncomment cons_injective and cons_inj in Data/List/Basic.lean (#372) Uncomment two theorems that were added in commented form in #22. You may compare to the mathlib3 versions here: https://github.com/leanprover-community/mathlib/blob/aaf7dc2c34831dbd92a21b9e37c1f63017d35f45/src/data/list/basic.lean#L50-L54 ESTIMATED CHANGES Modified Mathlib/Data/List/Basic.lean + theorem List.cons_inj + theorem List.cons_injective 2022-08-22 17:22:08 ac04239 chore: update injective_of_partial_inv_right to use ∈ notation (#376) Now that #137 has landed, we can resolve the TODO for `injective_of_partial_inv_right`, and use `Membership` notation. Compare to the mathlib3 version: https://github.com/leanprover-community/mathlib/blob/0a31295e2b264618f8a09f512d8dcf072c02faab/src/logic/function/basic.lean#L253-L255 ESTIMATED CHANGES Modified Mathlib/Logic/Function/Basic.lean 2022-08-22 16:05:03 6c88b50 fix: remove @[reducible] attribute from Function.injective (#375) In mathlib3, [`function.injective`](https://github.com/leanprover-community/lean/blob/4b58f26becf336a50cf037c3e2894b6f2938956e/library/init/function.lean#L73) is not reducible, so `Function.injective` should not be reducible here either. To avoid errors in `Order/Basic` ("@[ext] attribute only applies to structures or lemmas proving x = y"), we need to adjust `extAttribute` too. Fixes some problems seen in #372. ESTIMATED CHANGES Modified Mathlib/Init/Function.lean +/- def Function.injective Modified Mathlib/Tactic/Ext.lean 2022-08-22 14:24:22 107f2a6 chore: bump to nightly-2022-08-22 (#374) ESTIMATED CHANGES Modified lean-toolchain 2022-08-22 14:24:21 a0d035b feat: port type classes for set notation (#373) ESTIMATED CHANGES Modified Mathlib/Init/Set.lean - def Set.insertUnexpander - def Set.singletonUnexpander Modified Mathlib/Init/SetNotation.lean + def insertUnexpander + def singletonUnexpander Modified Mathlib/Mathport/SpecialNames.lean 2022-08-19 11:08:46 fc3fbd2 fix: apply multiple ext-lemmas in a row (#370) ESTIMATED CHANGES Modified Mathlib/Order/Basic.lean Modified Mathlib/Tactic/Ext.lean 2022-08-18 23:31:13 1c52381 remove some old commented-out Data/List/Basic theorems (#371) After #137, `length_tail` and `length_drop` live in `Init/Data/List/Lemmas`. ESTIMATED CHANGES Modified Mathlib/Data/List/Basic.lean 2022-08-18 18:40:11 3bfa449 feat(Mathlib/Order/Basic): port most of data/order/basic.lean (#348) Ports most of [data/order/basic.lean](https://github.com/leanprover-community/mathlib/blob/master/src/order/basic.lean) from mathlib3, leaving a few TODOs. This file lives near the base of the file-import dependency graph; having it ported should enable more experimentation with higher-level parts of the algebraic hierarchy. Some challenges that came up: - Lean 4 defines `max` and `min` in the prelude, while Lean 3 (as of https://github.com/leanprover-community/lean/pull/609) defines them differently as part of `linear_order`. We will need to figure out how to resolve this conflict. - In Lean 3, the lexicographic order on products uses a wrapper type `lex α β`. In Lean 4, the prelude instance `instLTProd` defines the lexicographic order directly on `α × β`. In this PR, I needed to verbosely disambiguate which instance to use. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Group/Defs.lean Added Mathlib/Init/Zero.lean Modified Mathlib/Logic/Basic.lean Added Mathlib/Order/Basic.lean + theorem Eq.not_gt + theorem Eq.not_lt + theorem LE.le.le_iff_eq + theorem LE.le.le_or_le + theorem LE.le.le_or_lt + theorem LE.le.lt_iff_ne + theorem LE.le.lt_or_le + theorem LT.lt.lt_or_lt + theorem LT.lt.ne' + theorem LinearOrder.ext + def LinearOrder.lift + theorem LinearOrder.to_partial_order_injective + theorem NE.le_iff_lt + theorem NE.lt_of_le' + theorem NE.lt_of_le + def Order.preimage + theorem PartialOrder.ext + def PartialOrder.lift + theorem PartialOrder.to_preorder_injective + theorem Pi.compl_apply + theorem Pi.compl_def + theorem Pi.le_def + theorem Pi.lt_def + theorem Preorder.ext + def Preorder.lift + theorem Preorder.to_le_injective + theorem Prod.le_def + theorem Prod.lt_iff + theorem Prod.mk_le_mk + theorem Prod.mk_le_mk_iff_left + theorem Prod.mk_le_mk_iff_right + theorem Prod.mk_lt_mk + theorem Prod.mk_lt_mk_iff_left + theorem Prod.mk_lt_mk_iff_right + theorem Prod.swap_le_swap + theorem Prod.swap_lt_swap + theorem Subtype.coe_le_coe + theorem Subtype.coe_lt_coe + theorem Subtype.mk_le_mk + theorem Subtype.mk_lt_mk + theorem dense_or_discrete + theorem eq_iff_le_not_lt + theorem eq_of_forall_ge_iff + theorem eq_of_forall_le_iff + theorem eq_of_le_of_forall_ge_of_dense + theorem eq_of_le_of_forall_le_of_dense + theorem eq_or_lt_of_le + theorem exists_between + theorem exists_ge_of_linear + theorem forall_lt_iff_le' + theorem forall_lt_iff_le + theorem ge_antisymm + theorem ge_iff_le + theorem ge_of_eq + theorem gt_iff_lt + theorem le_iff_eq_or_lt + theorem le_iff_le_iff_lt_iff_lt + theorem le_imp_le_iff_lt_imp_lt + theorem le_implies_le_of_le_of_le + theorem le_of_eq_of_le' + theorem le_of_eq_of_le + theorem le_of_forall_ge_of_dense + theorem le_of_forall_le' + theorem le_of_forall_le + theorem le_of_forall_le_of_dense + theorem le_of_forall_lt' + theorem le_of_forall_lt + theorem le_of_le_of_eq' + theorem le_of_le_of_eq + theorem le_rfl + theorem le_trans' + theorem le_update_iff + theorem lt_iff_le_and_ne + theorem lt_iff_lt_of_le_iff_le' + theorem lt_iff_lt_of_le_iff_le + theorem lt_iff_not_ge' + theorem lt_imp_lt_of_le_imp_le + theorem lt_of_eq_of_lt' + theorem lt_of_eq_of_lt + theorem lt_of_le_of_lt' + theorem lt_of_le_of_ne' + theorem lt_of_lt_of_eq' + theorem lt_of_lt_of_eq + theorem lt_of_lt_of_le' + theorem lt_of_not_ge' + theorem lt_self_iff_false + theorem lt_trans' + theorem ne.lt_or_lt + theorem ne_iff_lt_iff_le + theorem not_le_of_lt + theorem not_lt_iff_eq_or_lt + theorem not_lt_of_le + theorem order_dual.Preorder.dual_dual + theorem order_dual.linear_order.dual_dual + theorem order_dual.partial_order.dual_dual + def order_dual + theorem update_le_iff + theorem update_le_update_iff 2022-08-18 18:05:48 9731d07 chore: record failing tests for use from mathlib3 (#356) Documentation only change for now, tracking regression in the `use` tactic. Anyone who would like to try implementing the remaining features of `use` is welcome to tackle these failing tests! ESTIMATED CHANGES Modified Mathlib/Tactic/Use.lean Modified test/Use.lean 2022-08-18 18:02:35 6261372 feat: Add support for building documentation via facets (#365) This adds supports for building the documentation via a Lake facet as described in the README. The `meta if` is in place so that mathlib can still update a nightly version and have doc-gen breaking without its own build breaking in order for doc-gen not to becoome the critical path of a nightly update. Furthermore it also helps compile times as barely any users wants to actually use it. The facet itself also has a huge performance advantage, on my local machine the old doc-gen4 from master with the unified (non parallel) build approach took 8-9 min to run. The new one that uses the full power of being parallelized by Lake on a per module basis only takes 2 minutes. Furthermore once this PR is merged the CI of doc-gen4 should run through and deploy the first version that has (at least partial) support for linking back from the LeanInk rendered code into doc-gen pages. ESTIMATED CHANGES Modified .gitignore Modified README.md Modified lakefile.lean Added lean_packages/manifest.json 2022-08-18 15:45:35 9140a30 chore: more alignments (#368) ESTIMATED CHANGES Modified Mathlib/Mathport/SpecialNames.lean 2022-08-16 12:40:24 f16c278 chore: bump to nightly-2022-08-16 (#367) ESTIMATED CHANGES Modified Mathlib/Tactic/LibrarySearch.lean Modified lean-toolchain 2022-08-13 12:17:58 a4f624b feat: add `#help` (option/attr/tactic) command (#358) The `#help` command can be used to list all definitions in a variety of extensible aspects of lean. * `#help option` lists options (used in `set_option myOption`) * `#help attr` lists attributes (used in `@[myAttr] def foo := ...`) * `#help cats` lists syntax categories (like `term`, `tactic`, `stx` etc) * `#help cat C` lists elements of syntax category C * `#help term`, `#help tactic`, `#help conv` are shorthand for `#help cat term` etc. All forms take an optional identifier to narrow the search; for example `#help option pp` shows only `pp.*` options. This command depends on several unmerged lean core PRs to add the necessary APIs to support these queries: * [x] Depends on leanprover/lean4#1384 (to get docstrings for attributes) * [x] Depends on leanprover/lean4#1391 (polyfill provided) * [x] Depends on leanprover/lean4#1392 (to enumerate syntax in a syntax category, without which `#help cat` doesn't work at all) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Tactic/Basic.lean Added Mathlib/Tactic/HelpCmd.lean 2022-08-13 12:14:41 9354f12 feat: merge RunCmd and RunTac, add `by_elab` (#361) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Data/List/Basic.lean Modified Mathlib/Mathport/Syntax.lean Modified Mathlib/Tactic/Conv.lean Modified Mathlib/Tactic/RunCmd.lean + def Mathlib.RunCmd.elabRunElab Deleted Mathlib/Tactic/RunTac.lean Modified scripts/nolints.json Added test/runCmd.lean Deleted test/runTac.lean 2022-08-12 14:42:06 88962d2 update library_search documentation to refer to new snake_case syntax (#366) Updates the documentation to keep it in sync with the changes in #141, where the syntax was changed from `librarySearch` to `library_search`. ESTIMATED CHANGES Modified Mathlib/Tactic/LibrarySearch.lean 2022-08-11 16:02:30 c5ef8bc add [elabAsElim] attribute to Nat.gcd.induction (#364) Adds `[elabAsElim]` to `Nat.gcd.induction`, to bring it in line with mathlib3's version: https://github.com/leanprover-community/lean/blob/22b09be35ef66aece11e6e8f5d114f42b064259b/library/init/data/nat/gcd.lean#L42-L43 This is possible now that https://github.com/leanprover/lean4/commit/012cb13f51604cbb3bad96c8234f30acb746065c has landed. This allows us to simplify some proofs. ESTIMATED CHANGES Modified Mathlib/Data/Nat/Gcd.lean +/- theorem Nat.dvd_gcd +/- theorem Nat.gcd_dvd 2022-08-09 19:17:28 cf2e683 chore: remove DeclName (#362) Since this has been upstreamed, it is no longer needed in mathlib4. closes #354 ESTIMATED CHANGES Modified Mathlib.lean Deleted Mathlib/Util/DeclName.lean 2022-08-09 19:13:11 148380a port some lemmas for use in fin_cases (#350) Ports [`mem_cons_iff`](https://github.com/leanprover-community/lean/blob/3526539070ea6268df5dd373deeb3ac8b9621952/library/init/data/list/lemmas.lean#L100-L101) and [`forall_eq_or_imp`](https://github.com/leanprover-community/mathlib/blob/8edffc250c25db5a7bada5472dd02a166f7f8bfc/src/logic/basic.lean#L1135-L1137), to be used in the proof of `Chain.Pairwise` in https://github.com/leanprover-community/mathlib4/pull/346. ESTIMATED CHANGES Modified Mathlib/Init/Data/List/Lemmas.lean + theorem List.mem_cons_iff Modified Mathlib/Logic/Basic.lean + theorem forall_eq_or_imp 2022-08-09 15:10:15 735ae27 chore: update to nightly-2022-08-09 (#360) ESTIMATED CHANGES Modified Mathlib/Mathport/Syntax.lean Modified Mathlib/Tactic/Alias.lean Modified Mathlib/Tactic/Find.lean Modified Mathlib/Tactic/PrintPrefix.lean Modified Mathlib/Tactic/RunCmd.lean Modified Mathlib/Tactic/Sat/FromLRAT.lean Modified Mathlib/Tactic/TryThis.lean +/- def Tactic.TryThis.addSuggestion Modified lean-toolchain Modified scripts/nolints.json 2022-08-06 10:05:51 28a4767 feat: norm_num1 (#326) todos: - [x] implement norm_num at a local hypothesis how should I do this? - [x] norm_num as a simp-like tactic? i.e; eg norm num at `⊢ isPrime (x + (2 + 3))` should give `⊢ isPrime (x + 5)`? - [x] port examples and tests - [x] original norm_num uses simp with discharger being norm_num again. ESTIMATED CHANGES Modified Mathlib/Mathport/Syntax.lean Modified Mathlib/Tactic/Core.lean Modified Mathlib/Tactic/NormNum.lean + def Lean.Meta.NormNum.derive + def Lean.Meta.NormNum.elabNormNum +/- def Lean.Meta.NormNum.eval + def Lean.Meta.NormNum.normNumHyp + def Lean.Meta.NormNum.normNumTarget Modified Mathlib/Tactic/Ring.lean Added test/norm_num.lean + def foo 2022-08-01 09:31:05 7da24c4 chore: bump to 2022-07-31 (#359) ESTIMATED CHANGES Modified Mathlib/Init/Set.lean Modified Mathlib/Tactic/Basic.lean Modified Mathlib/Tactic/Cases.lean Modified Mathlib/Tactic/Constructor.lean Modified Mathlib/Tactic/Ext.lean Modified Mathlib/Tactic/Have.lean +/- def Mathlib.Tactic.haveLetCore Modified Mathlib/Tactic/InferParam.lean Modified Mathlib/Tactic/Inhabit.lean +/- def Lean.Elab.Tactic.evalInhabit Modified Mathlib/Tactic/LeftRight.lean +/- def Mathlib.Tactic.LeftRight.leftRightMeta Modified Mathlib/Tactic/LibrarySearch.lean +/- def Tactic.LibrarySearch.librarySearch Modified Mathlib/Tactic/NormCast/Tactic.lean Modified Mathlib/Tactic/RCases.lean +/- def Lean.Meta.RCases.generalizeExceptFVar +/- def Lean.Meta.RCases.subst' +/- def Lean.Meta.RCases.tryClearMany' Modified Mathlib/Tactic/Replace.lean Modified Mathlib/Tactic/Ring.lean +/- def Tactic.Ring.RingM.run Modified Mathlib/Tactic/SeqFocus.lean Modified Mathlib/Tactic/Set.lean Modified Mathlib/Tactic/SolveByElim.lean Modified Mathlib/Util/Tactic.lean Modified lean-toolchain 2022-07-31 21:11:32 f6714df chore: update to nightly-2022-07-28 (#357) Changed all names related to leanprover/lean4#1346 that I could find. - [x] leanprover/lean4#1375 ESTIMATED CHANGES Modified Mathlib/Init/ExtendedBinder.lean Modified Mathlib/Lean/NameMapAttribute.lean Modified Mathlib/Tactic/Basic.lean Modified Mathlib/Tactic/Cases.lean Modified Mathlib/Tactic/Clear!.lean Modified Mathlib/Tactic/ClearExcept.lean Modified Mathlib/Tactic/Clear_.lean Modified Mathlib/Tactic/Constructor.lean Modified Mathlib/Tactic/Ext.lean Modified Mathlib/Tactic/Have.lean Modified Mathlib/Tactic/HaveI.lean Modified Mathlib/Tactic/InferParam.lean Modified Mathlib/Tactic/Inhabit.lean Modified Mathlib/Tactic/LeftRight.lean Modified Mathlib/Tactic/LibrarySearch.lean Modified Mathlib/Tactic/NormCast/CoeExt.lean Modified Mathlib/Tactic/NormCast/Tactic.lean Modified Mathlib/Tactic/NormNum.lean Modified Mathlib/Tactic/RCases.lean Modified Mathlib/Tactic/Rename.lean Modified Mathlib/Tactic/Replace.lean Modified Mathlib/Tactic/Ring.lean Modified Mathlib/Tactic/SeqFocus.lean Modified Mathlib/Tactic/Set.lean Modified Mathlib/Tactic/SolveByElim.lean Modified Mathlib/Testing/SlimCheck/Testable.lean Modified Mathlib/Util/Simp.lean Modified Mathlib/Util/Tactic.lean Modified lean-toolchain Modified test/toAdditive.lean +/- def Test.foo_mul 2022-07-27 13:58:18 876d9cc feat: add inhabit tactic (#340) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Mathport/Syntax.lean Added Mathlib/Tactic/Inhabit.lean + def Lean.Elab.Tactic.evalInhabit + def Lean.Elab.Tactic.nonempty_prop_to_inhabited Added test/Inhabit.lean 2022-07-27 01:12:54 3fe7c59 doc: missing module docs for Mathlib/Util/ (#355) ESTIMATED CHANGES Modified Mathlib/Util/Export.lean Modified Mathlib/Util/IncludeStr.lean Modified Mathlib/Util/LibraryNote.lean Modified Mathlib/Util/MemoFix.lean Modified Mathlib/Util/Simp.lean Modified Mathlib/Util/Syntax.lean Modified Mathlib/Util/Tactic.lean Modified Mathlib/Util/Time.lean Modified Mathlib/Util/WithWeakNamespace.lean 2022-07-27 01:09:34 fde7b1f chore: normalise copyright headers (#353) Easier to normalise all `Author: X` to `Authors: X`, rather than adding flexibility to the linting scripts. This is already the style in the template, and hopefully once it is uniform it will trivially stay uniform as everyone copies and pastes. ESTIMATED CHANGES Modified Mathlib/Data/List/Card.lean Modified Mathlib/Init/Data/List/Basic.lean Modified Mathlib/Init/Data/List/Instances.lean Modified Mathlib/Init/Data/List/Lemmas.lean Modified Mathlib/Init/Function.lean Modified Mathlib/Lean/Exception.lean Modified Mathlib/Lean/LocalContext.lean Modified Mathlib/Lean/NameMapAttribute.lean Modified Mathlib/Tactic/Basic.lean Modified Mathlib/Tactic/Cache.lean Modified Mathlib/Tactic/Coe.lean Modified Mathlib/Tactic/Constructor.lean Modified Mathlib/Tactic/Conv.lean Modified Mathlib/Tactic/Ext.lean Modified Mathlib/Tactic/Find.lean Modified Mathlib/Tactic/IrreducibleDef.lean Modified Mathlib/Tactic/LeftRight.lean Modified Mathlib/Tactic/LibrarySearch.lean Modified Mathlib/Tactic/NoMatch.lean Modified Mathlib/Tactic/OpenPrivate.lean Modified Mathlib/Tactic/PermuteGoals.lean Modified Mathlib/Tactic/Rename.lean Modified Mathlib/Tactic/RunTac.lean Modified Mathlib/Tactic/Sat/FromLRAT.lean Modified Mathlib/Tactic/SeqFocus.lean Modified Mathlib/Tactic/Set.lean Modified Mathlib/Tactic/ShowTerm.lean Modified Mathlib/Tactic/SolveByElim.lean Modified Mathlib/Tactic/Spread.lean Modified Mathlib/Tactic/Trace.lean Modified Mathlib/Tactic/TryThis.lean Modified Mathlib/Util/Export.lean Modified Mathlib/Util/WhatsNew.lean Modified test/Set.lean Modified test/SolveByElim.lean Modified test/Use.lean Modified test/showTerm.lean 2022-07-26 23:33:21 cc34775 chore: revert #337 after #1324 landed in lean4 (#351) Reverting #337, now that https://github.com/leanprover/lean4/issues/1324 has landed and we've bumped to a relevant nightly. ESTIMATED CHANGES Modified Mathlib/Tactic/Lint/Misc.lean 2022-07-26 07:03:36 297e7ea feat(Mathlib/Tactic/Replace): add version of `replace` without `:=` (#341) As @digama0 said in #332, `replace` was missing part of its implementation, namely the case where the proof is not immediately given but rather deferred to an additional goal. This PR adds this case. ESTIMATED CHANGES Modified Mathlib/Tactic/Replace.lean Modified test/Replace.lean 2022-07-26 06:52:36 858879e fix: support docstring syntax in `alias` (#349) Add syntax support for doc strings in `alias`. The implementation is still stubbed out, this is just a quick fix for leanprover-community/mathport#156. ESTIMATED CHANGES Modified Mathlib/Tactic/Alias.lean 2022-07-26 02:05:11 204a3c8 make simpsAttr comment a real doc comment and remove nolint (#347) Now that https://github.com/leanprover/lean4/commit/cdb855d281de74c9e7f89ddd9aa258261685e364 has landed, `initialize` statements can get real docstrings, and we no longer need to silence the linter. ESTIMATED CHANGES Modified Mathlib/Tactic/Simps.lean Modified scripts/nolints.json 2022-07-25 04:00:05 fac1d43 feat: add clear! tactic (#328) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Mathport/Syntax.lean Added Mathlib/Tactic/Clear!.lean Added test/Clear!.lean 2022-07-25 03:45:45 f632bd1 feat: `expect_...` tactics for testing (#334) feat: `expect_failure`, `expect_failure_message`, `expect_goal` and `expect_hyp` ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Tactic/Expect.lean Added test/Expect.lean 2022-07-25 03:37:37 c431c2a chore: bump to nightly-2022-07-24 (#345) ESTIMATED CHANGES Modified Mathlib/Tactic/GuardHypNums.lean - def Lean.LocalContext.size Modified Mathlib/Util/Simp.lean Modified lean-toolchain 2022-07-21 20:56:12 dda51df feat(Mathlib/Tactic/SeqFocus): implement mapTacs and seqFocus tactics (#329) This implements a new tactic, `mapTacs`, which applies a sequence of tactics to the sequence of goals, which is assumed to have the same length. It then uses this tactic to implement `seq_focus` from Lean 3. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Mathport/Syntax.lean Added Mathlib/Tactic/SeqFocus.lean Added test/SeqFocus.lean 2022-07-20 13:25:45 ac1f012 hack: disable docblame lint for initializers (#337) To be removed once https://github.com/leanprover/lean4/issues/1324 lands. ESTIMATED CHANGES Modified Mathlib/Tactic/Lint/Misc.lean 2022-07-20 07:32:22 0f5691f feat: GuardHypNums tactic (#313) There seems to be a bug that makes this crash when no numeral is provided. Sebastian has been notified. Should the length function move somewhere else? ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Mathport/Syntax.lean Added Mathlib/Tactic/GuardHypNums.lean + def Lean.LocalContext.size Added test/GuardHypNums.lean 2022-07-20 04:38:11 760e963 feat(Mathlib/Tactic/Basic): add `triv` tactic (#317) My first tactic, please check carefully! mathlib3 tactic is https://github.com/leanprover-community/mathlib/blob/903e8941f0862f6c34f28babbb607842a7f8a6c7/src/tactic/interactive.lean#L663 ESTIMATED CHANGES Modified Mathlib/Mathport/Syntax.lean Modified Mathlib/Tactic/Basic.lean Added test/triv.lean 2022-07-20 04:34:11 f641758 feat: `swap_var` tactic (#321) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Mathport/Syntax.lean Added Mathlib/Tactic/SwapVar.lean Added Mathlib/Util/Tactic.lean + def Mathlib.Tactic.getNameAndFVarId + def Mathlib.Tactic.modifyLocalContext Added test/SwapVar.lean 2022-07-20 01:04:22 e933bba Remove `replace` from the list of unimplemented tactics. (#332) Remove `replace` from the list of unimplemented tactics. Turns out I volunteered for something that was done already. ESTIMATED CHANGES Modified Mathlib/Mathport/Syntax.lean 2022-07-20 00:54:24 924005d feat: port fconstructor (#315) This is a draft PR, as it relies on https://github.com/leanprover/lean4/pull/1319. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Mathport/Syntax.lean Added Mathlib/Tactic/Constructor.lean Added test/fconstructor.lean + structure Foo 2022-07-19 22:24:45 a7a8e46 feat(Mathlib/Tactic): implement `infer_opt_param` (#316) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Mathport/Syntax.lean Added Mathlib/Tactic/InferParam.lean Added test/InferParam.lean + theorem InferParamTest.zero_le_add 2022-07-19 18:14:52 855c733 feat: clearExcept tactic (#327) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Mathport/Syntax.lean Added Mathlib/Tactic/ClearExcept.lean Added test/ClearExcept.lean 2022-07-19 15:13:46 867f9d4 feat(Mathlib/Tactic/Clear_): add clear_ tactic (#319) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Mathport/Syntax.lean Added Mathlib/Tactic/Clear_.lean Added test/Clear_.lean 2022-07-19 14:51:24 23d76ae chore(Mathport/Syntax): add syntax for coherence tactic (#310) Should have been added after https://github.com/leanprover-community/mathlib/pull/13417. ESTIMATED CHANGES Modified Mathlib/Mathport/Syntax.lean 2022-07-19 18:16:00+10:00 d82ec3a chore: bump to nightly-2022-07-19 (#325) ESTIMATED CHANGES Modified lean-toolchain 2022-07-19 07:27:15 0a94f19 feat: simultaneous `rename'` (#324) This implements the simultaneous rename behavior mentioned in https://github.com/leanprover-community/mathlib4/pull/309#discussion_r923711774 , and also fixes some of the go-to-definition behavior on the identifiers. ESTIMATED CHANGES Modified Mathlib/Tactic/Rename.lean Modified test/Rename.lean 2022-07-19 01:15:21-04:00 a47c51f chore: add header ESTIMATED CHANGES Modified Mathlib/Tactic/Trace.lean 2022-07-19 15:13:13+10:00 21365cb feat: add trace tactic (#323) * feat: add trace tactic ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Mathport/Syntax.lean Added Mathlib/Tactic/Trace.lean Added test/trace.lean 2022-07-18 20:25:49-07:00 249dea0 feat(Mathlib/Tactic/Basic): Add `clear_aux_decl` tactic (#322) * Add clear_aux_decl tactic * Update Mathlib/Tactic/Basic.lean ESTIMATED CHANGES Modified Mathlib/Mathport/Syntax.lean Modified Mathlib/Tactic/Basic.lean 2022-07-18 19:30:21 0ab7ad8 feat: GuardGoalNums tactic (#312) What did I do wrong? :smile: ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Tactic/GuardGoalNums.lean Added test/GuardGoalNums.lean 2022-07-18 19:28:22 b74da51 docs(Tactic/Rename): improve the docstring (#309) ESTIMATED CHANGES Modified Mathlib/Tactic/Rename.lean Added test/Rename.lean 2022-07-18 19:03:23 fbae8ac doc(Tactic/Basic): add a comment explaining that we are extending core's rfl tactic (#311) ESTIMATED CHANGES Modified Mathlib/Tactic/Basic.lean 2022-07-18 16:36:47 becb290 chore: add make lint command (#308) ESTIMATED CHANGES Modified .github/workflows/build.yml Modified GNUmakefile Modified lakefile.lean 2022-07-18 14:13:28 9a76952 feat: `haveI` and `letI` syntax (#305) `haveI := inst; val` simulates the `by haveI := inst; exact val` syntax from Lean 3. While the Lean 4 `have` always introduces a local instance, it creates a `let_fun` term even when in tactic mode. The Lean 3 `have` tactic however inlined the value. The new `haveI` and `letI` syntax always inlines the value. See https://github.com/leanprover/lean4/issues/1313 ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Data/Array/Basic.lean Added Mathlib/Tactic/HaveI.lean + def Mathlib.Tactic.«haveI» + def Mathlib.Tactic.«letI» Modified Mathlib/Tactic/Lint/Misc.lean 2022-07-18 10:51:04 92d435b feat: add getElem_fin lemmas (#304) ESTIMATED CHANGES Modified Mathlib/Data/Array/Basic.lean +/- theorem Array.get?_eq_getElem? +/- theorem Array.getData_eq_getElem +/- theorem Array.get_eq_getElem + theorem getElem!_fin + theorem getElem?_fin + theorem getElem_fin Modified Mathlib/Data/UnionFind.lean +/- theorem UnionFind.parent_lt +/- theorem UnionFind.rank_lt 2022-07-18 09:44:33 57b04cf bump: nightly-2022-07-18 (#303) ESTIMATED CHANGES Modified lean-toolchain 2022-07-12 10:11:40 aa176e5 chore: bump to 2022-07-12 (#301) ESTIMATED CHANGES Modified Mathlib/Init/Logic.lean - theorem And.comm Modified Mathlib/Lean/Expr/Basic.lean Modified Mathlib/Lean/Expr/Traverse.lean Modified Mathlib/Tactic/Alias.lean Modified Mathlib/Tactic/LibrarySearch.lean Modified Mathlib/Tactic/Lint/Basic.lean Modified Mathlib/Tactic/Lint/Simp.lean Modified Mathlib/Tactic/NormNum.lean Modified Mathlib/Tactic/RestateAxiom.lean Modified Mathlib/Tactic/Ring.lean Modified Mathlib/Tactic/ToAdditive.lean Modified Mathlib/Testing/SlimCheck/Testable.lean Modified Mathlib/Util/Export.lean Modified lean-toolchain 2022-07-11 12:59:23 8f609e0 chore: bump to nightly-2022-07-11 (#300) ESTIMATED CHANGES Modified Mathlib/Data/Array/Basic.lean + theorem Array.data_get?_eq_getElem? + theorem Array.data_get_eq_getElem - theorem Array.data_toArray - theorem Array.ext' - theorem Array.get?_eq_get - theorem Array.get?_eq_get? + theorem Array.get?_eq_getElem? +/- theorem Array.get?_len_le +/- theorem Array.get?_push_eq +/- theorem Array.get?_set +/- theorem Array.get?_set_eq +/- theorem Array.get?_set_ne + theorem Array.getData_eq_getElem + theorem Array.getElem?_eq_get - theorem Array.get_eq_get + theorem Array.get_eq_getElem +/- theorem Array.get_push + theorem Array.get_push_eq + theorem Array.get_push_lt + theorem Array.get_set + theorem Array.get_set_eq + theorem Array.get_set_ne - theorem Array.toArrayLit_eq' + theorem Array.toArray_data + theorem getElem?_neg + theorem getElem?_pos Modified Mathlib/Data/Fin/Basic.lean - theorem Fin.mod_eq - theorem Fin.mod_eq_val - theorem Fin.modn_def Modified Mathlib/Data/List/Basic.lean - theorem List.concat_eq_append - theorem List.drop_eq_nil_of_le +/- theorem List.get?_concat_length Modified Mathlib/Data/UnionFind.lean Modified Mathlib/Init/Logic.lean Modified Mathlib/Tactic/Have.lean Modified Mathlib/Tactic/Lint/Frontend.lean Modified Mathlib/Tactic/NoMatch.lean Modified Mathlib/Tactic/NormNum.lean + theorem Lean.Meta.NormNum.isNat_cast Modified Mathlib/Tactic/RCases.lean Modified Mathlib/Tactic/Ring.lean Modified Mathlib/Tactic/ToAdditive.lean Modified Mathlib/Testing/SlimCheck/Testable.lean Modified lean-toolchain 2022-07-04 10:05:26 08d5c58 fix: command quotation (#299) ESTIMATED CHANGES Modified Mathlib/Tactic/CommandQuote.lean + def Lean.Elab.Term.elabCommandQuot 2022-07-04 09:26:58 90cd45d chore: bump to nightly-2022-07-04 (#298) ESTIMATED CHANGES Modified Mathlib/Data/Array/Basic.lean Modified Mathlib/Init/ExtendedBinder.lean Modified Mathlib/Tactic/Cases.lean Modified Mathlib/Tactic/IrreducibleDef.lean Modified Mathlib/Tactic/Lint/Frontend.lean Modified Mathlib/Tactic/NoMatch.lean Modified Mathlib/Tactic/RCases.lean Modified Mathlib/Tactic/Ring.lean + def Tactic.Ring.State.numAtoms Modified Mathlib/Tactic/Sat/FromLRAT.lean Modified Mathlib/Tactic/ToAdditive.lean Modified lean-toolchain 2022-07-01 15:19:55 ecd3744 fix: make `(command|...) produce correct type (#297) Apparently the elaborated type of a syntax quotation depends on the kind name, which needs to be `command.quot` so that we get ``TSyntax `command``. ESTIMATED CHANGES Modified Mathlib/Tactic/CommandQuote.lean - def Lean.Elab.Term.elabCommandQuot - def Lean.Parser.Term.Command.quot + def command.quot 2022-07-01 14:04:25 078d5ed fix: 'linter' -> 'mathlibLinter' in mathlibLinterAttr comment (#296) Updates the comment on `mathlibLinterAttr` with the correct name of the attribute. ESTIMATED CHANGES Modified Mathlib/Tactic/Lint/Basic.lean 2022-07-01 07:50:34 e103199 chore: bump to nightly-2022-06-30 (#295) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Data/UInt.lean Modified Mathlib/Init/ExtendedBinder.lean Modified Mathlib/Init/Set.lean Modified Mathlib/Mathport/Syntax.lean Modified Mathlib/Tactic/Basic.lean Modified Mathlib/Tactic/Cases.lean Modified Mathlib/Tactic/Ext.lean Modified Mathlib/Tactic/IrreducibleDef.lean Modified Mathlib/Tactic/Lint/Frontend.lean Modified Mathlib/Tactic/NoMatch.lean Modified Mathlib/Tactic/NormCast/Ext.lean Modified Mathlib/Tactic/NormCast/Lemmas.lean Modified Mathlib/Tactic/NormCast/Tactic.lean Modified Mathlib/Tactic/PermuteGoals.lean Modified Mathlib/Tactic/RCases.lean Modified Mathlib/Tactic/RunCmd.lean Modified Mathlib/Tactic/RunTac.lean Modified Mathlib/Tactic/Sat/FromLRAT.lean Modified Mathlib/Tactic/SimpRw.lean Modified Mathlib/Tactic/Spread.lean Modified Mathlib/Tactic/SudoSetOption.lean Modified Mathlib/Tactic/ToAdditive.lean Modified Mathlib/Tactic/TryThis.lean +/- def Tactic.TryThis.delabToRefinableSyntax Modified Mathlib/Util/DeclName.lean Deleted Mathlib/Util/Eval.lean Modified Mathlib/Util/IncludeStr.lean Modified Mathlib/Util/LibraryNote.lean Added Mathlib/Util/Syntax.lean + def Lean.Syntax.TSepArray.ofElems + def Lean.TSyntax.replaceM Modified lean-toolchain Modified scripts/nolints.json Modified test/notation3.lean Modified test/rcases.lean 2022-06-30 08:11:32 60d5441 feat: port the 'alias' command (#293) Compare to https://github.com/leanprover-community/mathlib/blob/07c83c81c0016c1ac08e8c9c3f1260c2f4c6ac7f/src/tactic/alias.lean The `mkIffMpApp` and `aliasIff` functions are direct translations of the mathlib3 versions. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Mathport/Syntax.lean Added Mathlib/Tactic/Alias.lean + def Tactic.Alias.aliasIff + def Tactic.Alias.appendNamespace + def Tactic.Alias.elabAlias + def Tactic.Alias.elabAliasLR + def Tactic.Alias.elabAliasLRDots + def Tactic.Alias.mkIffMpApp + theorem alias1 + theorem alias2 Added test/Alias.lean + theorem Alias.A.a_iff_a_and_a + theorem Alias.A.ab_iff_ba + def Alias.A.bar + theorem Alias.A.baz + theorem Alias.A.foo 2022-06-25 21:05:19 c46f8b6 chore: bump to 2022-06-25 (#294) ESTIMATED CHANGES Modified Mathlib/Data/List/Basic.lean - theorem List.mem_filterAux Modified Mathlib/Init/Logic.lean + theorem Bool.eq_false_or_eq_true Modified lean-toolchain 2022-06-24 09:15:57 867d773 chore: bump to 2022-06-24 (#292) ESTIMATED CHANGES Modified Mathlib/Init/Data/List/Instances.lean Modified Mathlib/Testing/SlimCheck/Testable.lean Modified lean-toolchain Modified test/nomatch.lean 2022-06-23 18:33:28 20c6d70 chore: fix unused variables from linter (#289) This makes mathlib pass the new unused variables linter added to lean 4 core. ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Defs.lean Modified Mathlib/Control/Random.lean Modified Mathlib/Data/Array/Basic.lean Modified Mathlib/Data/Fin/Basic.lean +/- theorem Fin.size_positive Modified Mathlib/Data/List/Basic.lean +/- theorem List.drop_eq_nil_of_le +/- theorem List.get?_append_right +/- theorem List.mem_or_eq_of_mem_set +/- theorem List.set_comm Modified Mathlib/Data/List/Card.lean Modified Mathlib/Data/List/Defs.lean +/- def List.takeD Modified Mathlib/Data/List/Perm.lean +/- theorem List.Perm.swap' +/- theorem List.perm_insertNth Modified Mathlib/Data/Nat/Basic.lean Modified Mathlib/Data/Nat/Gcd.lean Modified Mathlib/Data/Option/Basic.lean Modified Mathlib/Data/Option/Defs.lean Modified Mathlib/Data/Prod.lean Modified Mathlib/Data/String/Lemmas.lean Modified Mathlib/Data/Subtype.lean Modified Mathlib/Data/UnionFind.lean Modified Mathlib/Init/Algebra/Functions.lean Modified Mathlib/Init/Algebra/Order.lean Modified Mathlib/Init/Data/Int/Basic.lean Modified Mathlib/Init/Data/Int/Order.lean +/- theorem Int.nonneg_or_nonneg_neg Modified Mathlib/Init/Data/List/Basic.lean Modified Mathlib/Init/Data/List/Lemmas.lean +/- theorem List.subset.refl +/- theorem List.subset_cons Modified Mathlib/Init/Data/Nat/Lemmas.lean +/- theorem Nat.add_mod +/- theorem Nat.add_mod_mod +/- def Nat.discriminate +/- theorem Nat.dvd_of_mod_eq_zero +/- theorem Nat.nat_repr_len_aux +/- theorem Nat.repr_length +/- theorem Nat.to_digits_core_length +/- theorem Nat.to_digits_core_lens_eq +/- theorem Nat.to_digits_core_lens_eq_aux Modified Mathlib/Init/Data/Option/Basic.lean Modified Mathlib/Init/Function.lean Modified Mathlib/Init/Logic.lean +/- def Decidable.by_cases +/- theorem if_congr_prop Modified Mathlib/Init/Set.lean +/- def Set.univ Modified Mathlib/Lean/Expr/Basic.lean Modified Mathlib/Logic/Basic.lean +/- def decidable_of_bool +/- def decidable_of_iff' +/- def decidable_of_iff +/- theorem exists_false +/- theorem exists_prop Modified Mathlib/Logic/Function/Basic.lean +/- theorem Function.const_def Modified Mathlib/Logic/Nonempty.lean +/- theorem exists_true_iff_nonempty Modified Mathlib/Mathport/Rename.lean Modified Mathlib/Mathport/Syntax.lean Modified Mathlib/Tactic/Basic.lean Modified Mathlib/Tactic/Ext.lean Modified Mathlib/Tactic/LibrarySearch.lean Modified Mathlib/Tactic/Lint/Basic.lean Modified Mathlib/Tactic/Lint/Misc.lean Modified Mathlib/Tactic/Lint/Simp.lean Modified Mathlib/Tactic/NoMatch.lean Modified Mathlib/Tactic/NormCast/Ext.lean Modified Mathlib/Tactic/NormCast/Tactic.lean Modified Mathlib/Tactic/NormNum.lean Modified Mathlib/Tactic/RCases.lean Modified Mathlib/Tactic/RestateAxiom.lean Modified Mathlib/Tactic/Ring.lean Modified Mathlib/Tactic/Sat/FromLRAT.lean Modified Mathlib/Tactic/Simps.lean Modified Mathlib/Tactic/SolveByElim.lean Modified Mathlib/Tactic/ToAdditive.lean Modified Mathlib/Tactic/TryThis.lean Modified Mathlib/Testing/SlimCheck/Gen.lean Modified Mathlib/Testing/SlimCheck/Testable.lean +/- def SlimCheck.NamedBinder Modified Mathlib/Util/Export.lean Modified Mathlib/Util/WhatsNew.lean Modified test/rcases.lean 2022-06-23 18:25:20 bf4c72f chore: bump to 2022-06-23 (#291) ESTIMATED CHANGES Modified .github/workflows/build.yml Modified Mathlib/Tactic/Lint/Simp.lean Modified lean-toolchain 2022-06-19 14:35:39 1ac9dea chore: bump to 2022-06-19 (#288) ESTIMATED CHANGES Modified Mathlib/Lean/Expr/Traverse.lean - def Lean.Expr.traverseApp - def Lean.Meta.traverseChildren - def Lean.Meta.traverseForall - def Lean.Meta.traverseLambda - def Lean.Meta.traverseLet Modified lean-toolchain 2022-06-17 09:34:40 58f072f chore: bump to 2022-06-17 (#287) ESTIMATED CHANGES Modified Mathlib/Lean/Expr/ReplaceRec.lean - def Lean.Expr.replaceRecM - def Lean.Expr.replaceRecMeta Modified Mathlib/Tactic/IrreducibleDef.lean Modified Mathlib/Tactic/Spread.lean Modified Mathlib/Util/Export.lean Modified Mathlib/Util/MemoFix.lean Modified lean-toolchain Modified test/librarySearch.lean 2022-06-13 21:57:46 8b7a86a chore: save file map, too (#286) @gebner you beat me to the version bump :) I was also including this change. ESTIMATED CHANGES Modified Mathlib/Tactic/Cache.lean 2022-06-13 19:31:10 e5f6993 feat: port misc linters (#276) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Group/Defs.lean Modified Mathlib/Data/Array/Defs.lean +/- def Array.range Modified Mathlib/Data/List/Basic.lean + theorem Option.mem_toList Modified Mathlib/Data/Option/Defs.lean - theorem Option.mem_toList Modified Mathlib/Init/Data/Nat/Lemmas.lean - theorem Nat.Nat.pow_eq - theorem Nat.Nat.pow_succ' + theorem Nat.pow_eq + theorem Nat.pow_succ' Modified Mathlib/Init/Logic.lean + theorem Iff.elim - def Iff.elim + theorem Iff.elim_left - def Iff.elim_left + theorem Iff.elim_right - def Iff.elim_right + theorem congr_arg - def congr_arg + theorem congr_fun - def congr_fun + theorem eq_rec_heq - def eq_rec_heq + theorem proof_irrel - def proof_irrel Modified Mathlib/Lean/NameMapAttribute.lean Modified Mathlib/Logic/Basic.lean Modified Mathlib/Tactic/Lint.lean Modified Mathlib/Tactic/Lint/Basic.lean +/- def Mathlib.Tactic.Lint.shouldBeLinted Added Mathlib/Tactic/Lint/Misc.lean + def Mathlib.Tactic.Lint.checkType + def Mathlib.Tactic.Lint.checkUnivs + def Mathlib.Tactic.Lint.defLemma + def Mathlib.Tactic.Lint.docBlame + def Mathlib.Tactic.Lint.docBlameThm + def Mathlib.Tactic.Lint.dupNamespace + def Mathlib.Tactic.Lint.explicitVarsOfIff + def Mathlib.Tactic.Lint.findUnusedHaves + def Mathlib.Tactic.Lint.synTaut + def Mathlib.Tactic.Lint.unusedArguments + def Mathlib.Tactic.Lint.unusedHavesSuffices Modified Mathlib/Tactic/Lint/Simp.lean Modified Mathlib/Testing/SlimCheck/Gen.lean +/- def SlimCheck.Gen.prodOf Modified Mathlib/Testing/SlimCheck/Sampleable.lean Modified Mathlib/Testing/SlimCheck/Testable.lean Modified scripts/nolints.json 2022-06-13 18:50:54 5c95192 perf: compile runLinter.lean (#285) This gets us from 1630ms to 635ms runtime. ESTIMATED CHANGES Modified .github/workflows/build.yml Modified lakefile.lean Modified scripts/runLinter.lean + def readJsonFile + def writeJsonFile 2022-06-13 18:37:55 4f6c829 chore: bump to 2022-06-13 (#284) ESTIMATED CHANGES Modified Mathlib/Data/BinaryHeap.lean Modified Mathlib/Init/Data/Nat/Lemmas.lean - theorem Nat.div_lt_self Modified Mathlib/Tactic/Cache.lean +/- def Tactic.Cache.get Modified Mathlib/Tactic/Cases.lean Modified Mathlib/Tactic/Lint/Frontend.lean Modified Mathlib/Util/IncludeStr.lean Modified lakefile.lean Modified lean-toolchain 2022-06-11 08:07:10 84ca33e feat: add ne_comm (#283) ESTIMATED CHANGES Modified Mathlib/Logic/Basic.lean + theorem ne_comm 2022-06-02 19:04:46 6895646 feat: WriterT monad transformer (#281) Partial porting of @cipher1024 's mathlib3 code. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Control/Writer.lean + def Writer + def WriterT.monad + def WriterT 2022-06-02 16:49:49 0dcae07 feat: add nolints.json (#279) ESTIMATED CHANGES Added scripts/nolints.json Modified scripts/runLinter.lean 2022-06-01 14:51:59 d7f638f chore: remove unnecessary have (#280) ESTIMATED CHANGES Modified Mathlib/Logic/Function/Basic.lean 2022-06-01 13:04:59 663db50 fix: remove syntactic tautology (#278) ESTIMATED CHANGES Modified Mathlib/Data/Equiv/Basic.lean - theorem Equiv.to_fun_as_coe 2022-06-01 12:17:05 6edcbb3 fix: unused arguments (#277) ESTIMATED CHANGES Modified Mathlib/Data/BinaryHeap.lean +/- theorem BinaryHeap.size_mkHeap Modified Mathlib/Data/List/Basic.lean +/- theorem List.get_zero +/- theorem List.leftpad_prefix +/- theorem List.leftpad_suffix Modified Mathlib/Data/UnionFind.lean Modified Mathlib/Tactic/Core.lean +/- def Lean.setProtected Modified Mathlib/Testing/SlimCheck/Testable.lean +/- def SlimCheck.retry 2022-06-01 10:36:29 fa4c522 chore: bump to nightly 05-31 (#275) I deleted substVars from the syntax file as it is now in core lean since https://github.com/leanprover/lean4/commit/40fc64480a15e551025f16218050bc83802c3463 and the syntax is pretty foolproof. Is that the correct thing to do? ESTIMATED CHANGES Modified Mathlib/Mathport/Syntax.lean Modified lean-toolchain 2022-05-24 19:42:53 2be753a fix: use overloaded syntax for `{a,b,c}` (#274) ESTIMATED CHANGES Modified Mathlib/Init/Set.lean Modified Mathlib/Tactic/NormCast/Tactic.lean Modified Mathlib/Util/WhatsNew.lean 2022-05-22 11:59:11 2ffca8d fix: fun.: construct correct matchDiscr syntax (#273) Fixes #272 ESTIMATED CHANGES Modified Mathlib/Tactic/NoMatch.lean Modified test/nomatch.lean 2022-05-20 07:18:43 0f56824 chore: bump to nightly-2022-05-19 (#271) ESTIMATED CHANGES Modified lean-toolchain 2022-05-11 23:41:34 9c54c41 feat: `to_additive` (#234) By @fpvandoorn. Depends on #129 Closes #229 ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Group/Basic.lean - theorem add_left_comm - theorem add_right_comm Modified Mathlib/Algebra/Group/Defs.lean +/- theorem inv_eq_of_mul_eq_one +/- theorem inv_inv +/- theorem inv_mul_cancel_left +/- theorem mul_inv_cancel_right +/- theorem mul_left_inj +/- theorem mul_left_inv +/- theorem mul_one +/- theorem mul_right_inj +/- theorem mul_right_inv +/- theorem one_mul Modified Mathlib/Data/List/Defs.lean + def List.findIdx? + def List.indexOf? Added Mathlib/Lean/Exception.lean + def successIfFail Added Mathlib/Lean/NameMapAttribute.lean + def Lean.NameMapAttribute.add + def Lean.NameMapAttribute.find? + structure Lean.NameMapAttribute + structure Lean.NameMapAttributeImpl + def Lean.NameMapExtension.add + def Lean.NameMapExtension.find? + def Lean.NameMapExtension + def Lean.mkNameMapExtension + def Lean.registerNameMapAttribute Modified Mathlib/Mathport/Syntax.lean Modified Mathlib/Tactic/Core.lean + def Lean.toModifiers + def Lean.toPreDefinition Modified Mathlib/Tactic/NormCast/Tactic.lean Added Mathlib/Tactic/ToAdditive.lean + structure ToAdditive.ValueType + def ToAdditive.addCommPrefix + def ToAdditive.additiveTest + def ToAdditive.applyReplacementFun + def ToAdditive.copyAttributes + def ToAdditive.etaExpandN + def ToAdditive.expand + def ToAdditive.findTranslation? + def ToAdditive.firstMultiplicativeArg + def ToAdditive.getReorder + def ToAdditive.guessName + def ToAdditive.ignore + def ToAdditive.insertTranslation + def ToAdditive.isInternal' + def ToAdditive.isRelevant + def ToAdditive.proceedFields + def ToAdditive.replaceAll + def ToAdditive.shouldReorder + def ToAdditive.targetName + def ToAdditive.transformDecl + def ToAdditive.updateDecl Added test/toAdditive.lean + theorem Test.bar0_works + theorem Test.bar1_works + theorem Test.bar2_works + theorem Test.bar3_works + theorem Test.bar7_works + def Test.foo0 + def Test.foo1 + theorem Test.foo1_works + def Test.foo2 + theorem Test.foo2_works + def Test.foo3 + theorem Test.foo3_works + def Test.foo4 + theorem Test.foo4_test + def Test.foo5 + def Test.foo6 + def Test.foo7 + theorem Test.foo7_works + def Test.foo_mul + def Test.nat_pi_has_one + def Test.pi_nat_has_one + def Test.some_def.in_namespace + def Test.some_def 2022-05-10 11:29:14 4df5616 chore: bump to nightly-2022-05-10 (#269) ESTIMATED CHANGES Modified Mathlib/Init/Data/Int/Order.lean Modified Mathlib/Tactic/Cases.lean Modified Mathlib/Tactic/Have.lean Modified Mathlib/Tactic/RCases.lean Modified lean-toolchain 2022-05-03 10:16:36 f2a316c feat: `left` and `right` tactics (#260) `left` and `right` tactics implemented with tests/examples ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Mathport/Syntax.lean Added Mathlib/Tactic/LeftRight.lean + def Mathlib.Tactic.LeftRight.leftRightMeta Added test/left_right.lean + def two: + def zero: 2022-05-03 08:44:13 d8cecf6 chore: bump to nightly-2022-05-03 (#268) ESTIMATED CHANGES Modified Mathlib/Data/BinaryHeap.lean Modified Mathlib/Data/Fin/Basic.lean +/- theorem Fin.ofNat'_succ Modified lean-toolchain 2022-04-28 15:22:51 7778d96 feat: slim check (#254) An absolute minimal port of Lean 3's slim_check, not featuring stuff like subtypes, existential quantifiers etc. But the basic infrastructure to set all of this up and some basic instances already as well. The `PhantomFunction` was introduced to avoid noncomputable instances since `SizeOf` is not computable but we need to store it as a field in `SampleableExt` so we work around this by defining a `PhantomFunction` which is guaranteed to be eliminated by the compiler during code generation. I do however believe that this is not the right file for it to live in? ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Control/Random.lean + def IO.runRandWith Modified Mathlib/Data/List/Perm.lean + theorem List.perm_insertNth Modified Mathlib/Data/Nat/Basic.lean + theorem Nat.le_pred_of_lt Added Mathlib/Testing/SlimCheck/Gen.lean + def SlimCheck.Gen.arrayOf + def SlimCheck.Gen.choose + def SlimCheck.Gen.chooseAny + def SlimCheck.Gen.chooseNatLt + theorem SlimCheck.Gen.chooseNatLt_aux + def SlimCheck.Gen.elements + def SlimCheck.Gen.getSize + def SlimCheck.Gen.listOf + def SlimCheck.Gen.oneOf + def SlimCheck.Gen.permutationOf + def SlimCheck.Gen.prodOf + def SlimCheck.Gen.resize + def SlimCheck.Gen.run Added Mathlib/Testing/SlimCheck/Sampleable.lean + def SlimCheck.Char.sampleable + def SlimCheck.Fin.shrink + def SlimCheck.Nat.shrink + def SlimCheck.NoShrink.get + def SlimCheck.NoShrink.mk + def SlimCheck.NoShrink + def SlimCheck.SampleableExt.interpSample + def SlimCheck.SampleableExt.mkSelfContained Added Mathlib/Testing/SlimCheck/Testable.lean + def SlimCheck.Configuration.verbose + structure SlimCheck.Configuration + def SlimCheck.NamedBinder + def SlimCheck.TestResult.addInfo + def SlimCheck.TestResult.addVarInfo + def SlimCheck.TestResult.and + def SlimCheck.TestResult.combine + def SlimCheck.TestResult.iff + def SlimCheck.TestResult.imp + def SlimCheck.TestResult.isFailure + def SlimCheck.TestResult.or + def SlimCheck.TestResult.toString + inductive SlimCheck.TestResult + def SlimCheck.Testable.addShrinks + def SlimCheck.Testable.check + def SlimCheck.Testable.checkIO + def SlimCheck.Testable.formatFailure + def SlimCheck.Testable.minimize + def SlimCheck.Testable.minimizeAux + def SlimCheck.Testable.runProp + def SlimCheck.Testable.runSuite + def SlimCheck.Testable.runSuiteAux + def SlimCheck.Testable.slimTrace + def SlimCheck.giveUp + def SlimCheck.retry 2022-04-28 14:20:32 800bc41 bump: nightly-2022-04-28 (#267) ESTIMATED CHANGES Modified lean-toolchain 2022-04-27 01:11:59 9c01694 chore: bump to nightly-2022-04-26 (#266) ESTIMATED CHANGES Modified Mathlib/Mathport/Syntax.lean Modified Mathlib/Tactic/Lint/Frontend.lean Modified Mathlib/Tactic/Lint/Simp.lean Modified Mathlib/Tactic/NormCast/Tactic.lean Modified Mathlib/Util/Simp.lean Modified lean-toolchain 2022-04-26 13:58:25 c01494c feat: more expr traversal functions (#263) - split Mathlib/Lean/Expr into multiple files. - implement a version of replaceRecM that correctly instantiates free vars. - some additonal Expr functions These are prereqs of #234 and #229 ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Lean/Expr.lean - def Lean.BinderInfo.brackets - def Lean.Expr.constName - def Lean.Expr.getAppFnArgs - def Lean.Expr.natLit! - def Lean.Name.mapPrefix Added Mathlib/Lean/Expr/Basic.lean + def Lean.BinderInfo.brackets + def Lean.ConstantInfo.isDef + def Lean.ConstantInfo.isThm + def Lean.ConstantInfo.toDeclaration! + def Lean.ConstantInfo.updateName + def Lean.ConstantInfo.updateType + def Lean.ConstantInfo.updateValue + def Lean.Expr.bvarIdx? + def Lean.Expr.constName + def Lean.Expr.getAppFnArgs + def Lean.Expr.getArg? + def Lean.Expr.getRevArg? + def Lean.Expr.listNamesWithPrefix + def Lean.Expr.modifyAppArg + def Lean.Expr.modifyAppArgM + def Lean.Expr.modifyArg + def Lean.Expr.modifyArgM + def Lean.Expr.modifyRevArg + def Lean.Expr.natLit! + def Lean.Name.mapPrefix Modified Mathlib/Lean/Expr/ReplaceRec.lean + def Lean.Expr.replaceRecM + def Lean.Expr.replaceRecMeta Modified Mathlib/Lean/Expr/Traverse.lean + def Lean.Expr.traverseApp + def Lean.Meta.traverseChildren + def Lean.Meta.traverseForall + def Lean.Meta.traverseLambda + def Lean.Meta.traverseLet 2022-04-25 18:38:06 45731d6 fix: use low priority for exists (#264) ESTIMATED CHANGES Modified Mathlib/Mathport/Syntax.lean 2022-04-18 20:01:53-07:00 d897dbd chore: update toolchain (#261) * chore: update toolchain step 1 * fix build ESTIMATED CHANGES Modified Mathlib/Tactic/Cases.lean Modified Mathlib/Tactic/Have.lean Modified Mathlib/Tactic/Lint/Frontend.lean Modified Mathlib/Tactic/NormCast/Tactic.lean Modified Mathlib/Tactic/RCases.lean Modified Mathlib/Tactic/Ring.lean Modified Mathlib/Tactic/Sat/FromLRAT.lean Modified Mathlib/Tactic/Set.lean Modified Mathlib/Tactic/SimpRw.lean Modified Mathlib/Tactic/TryThis.lean Modified lean-toolchain 2022-04-05 23:04:28 1b6c2fb chore: update nightly-2022-04-04 (#257) ESTIMATED CHANGES Modified Mathlib/Mathport/Syntax.lean Modified Mathlib/Tactic/Ext.lean Modified lean-toolchain 2022-04-04 17:52:18 a56a3c3 feat: mathport syntax triage (#256) Also `open_locale` was removed (mathport will be edited to emit `open` instead), and `to_expr'` (which shouldn't have been on the list in the first place), and `copy_doc_string` no longer allows an empty list on the right. ESTIMATED CHANGES Modified Mathlib/Mathport/Syntax.lean 2022-04-03 14:09:14 c799762 fix: library_search suggestions (#255) Reported at https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/Proof.20of.20false.20using.20library_search ESTIMATED CHANGES Modified Mathlib/Tactic/LibrarySearch.lean 2022-03-29 16:40:34 ed053df feat: `replaceRec` (#129) * Add a more flexible version of `Expr.replace` ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Lean/Expr/ReplaceRec.lean + def Lean.Expr.replaceRec + def Lean.Expr.replaceRecTraversal Added Mathlib/Lean/Expr/Traverse.lean + def Lean.Expr.traverseChildren Added test/Expr.lean + def bar + def foo + def reorderLastArguments 2022-03-28 13:05:37 977e6e1 chore: bump toolchain to nightly-2022-03-27 (#252) ESTIMATED CHANGES Modified lean-toolchain 2022-03-24 23:13:01-07:00 1a00052 feat: `eapply` and `fapply` (#250) ESTIMATED CHANGES Modified Mathlib/Mathport/Syntax.lean Modified Mathlib/Tactic/Basic.lean 2022-03-25 00:14:41 8429fdb feat: set tactic (#242) Adding `set` tactic ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Mathport/Syntax.lean Added Mathlib/Tactic/Set.lean Added test/Set.lean 2022-03-22 18:02:19+01:00 a6473fc fix: reverting 'Meta.getSimpTheorems' to 'pure simpTheorems' (#249) ESTIMATED CHANGES Modified Mathlib/Util/Simp.lean 2022-03-22 05:59:10 b59f265 fix: `let` should be using `haveIdLhs` (#246) ESTIMATED CHANGES Modified Mathlib/Tactic/Have.lean - def Lean.Parser.Term.letIdLhs' 2022-03-22 05:33:39 6f2b676 feat: extended `have` and `let` tactics (#232) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Data/Array/Defs.lean + def Array.flatten Modified Mathlib/Mathport/Syntax.lean Added Mathlib/Tactic/Have.lean + def Lean.Parser.Term.haveIdLhs' + def Lean.Parser.Term.letIdLhs' + def Mathlib.Tactic.haveLetCore Added test/Have.lean 2022-03-21 22:05:42 ca6e1a0 chore : bump toolchain to nightly-2022-03-21 (#244) ESTIMATED CHANGES Modified Mathlib/Data/ByteArray.lean Modified Mathlib/Mathport/Syntax.lean Modified Mathlib/Tactic/Lint/Simp.lean Modified Mathlib/Tactic/NormCast/Tactic.lean Modified Mathlib/Tactic/RestateAxiom.lean Modified Mathlib/Util/LibraryNote.lean Modified Mathlib/Util/Simp.lean Modified lean-toolchain 2022-03-21 14:23:32 260cceb chore: bump to nightly (#241) List.length_map was added to core and the arguments are the other way around. ESTIMATED CHANGES Modified Mathlib/Data/List/Basic.lean +/- theorem List.get_map Modified Mathlib/Init/Data/List/Lemmas.lean - theorem List.length_map Modified lean-toolchain 2022-03-21 07:51:10 ead320e chore: reduce duplication in simp tactic syntaxes (#240) See https://github.com/leanprover-community/mathlib4/pull/236#issuecomment-1071914406 ESTIMATED CHANGES Modified Mathlib/Mathport/Syntax.lean Modified Mathlib/Tactic/Simpa.lean 2022-03-18 19:54:56 6f904de feat: `memoFix` (#237) A memoised fixpoint function. As written by Gabriel: https://github.com/leanprover-community/mathlib4/pull/129#discussion_r766735562 ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Util/MemoFix.lean 2022-03-18 13:32:32 9698ecb fix: make library_search ignore sorry (#239) Fixes #226. ESTIMATED CHANGES Modified Mathlib/Tactic/LibrarySearch.lean 2022-03-18 01:18:37 26b8c00 fix : making `replace` tactic less strict (#238) ESTIMATED CHANGES Modified Mathlib/Tactic/Replace.lean Modified test/Replace.lean 2022-03-18 00:58:34 91f7a82 fix: simpa syntax (#236) Fix for #235 ESTIMATED CHANGES Modified Mathlib/Tactic/Simpa.lean 2022-03-17 17:35:37 39a3625 feat : `replace` tactic (part 1) (#230) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Mathport/Syntax.lean Added Mathlib/Tactic/Replace.lean Added test/Replace.lean 2022-03-17 16:33:08+01:00 809d064 chore: unify simpa syntax (#235) ESTIMATED CHANGES Modified Mathlib/Mathport/Syntax.lean Modified Mathlib/Tactic/Simpa.lean 2022-03-17 12:10:55 c56001b chore: Update compiler to latest nightly (#233) ESTIMATED CHANGES Modified Mathlib/Data/List/Card.lean Modified Mathlib/Data/Nat/Basic.lean Modified Mathlib/Init/Data/Nat/Lemmas.lean Modified lean-toolchain 2022-03-16 19:39:53 c6804db feat: `restate_axiom` (#228) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Mathport/Syntax.lean Added Mathlib/Tactic/RestateAxiom.lean Added test/restate_axiom.lean + structure A 2022-03-14 18:42:29 72341a8 feat : `simpa` tactic (#224) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Mathport/Syntax.lean Modified Mathlib/Tactic/Core.lean + def Lean.Parser.Tactic.getSimpArgs + def Lean.Parser.Tactic.getUsingArg + def Lean.Parser.Tactic.getWithArgs Added Mathlib/Tactic/Simpa.lean Added test/Simpa.lean + def foo 2022-03-14 10:11:59 f442fad fix: Off by one random Bool error (#225) ESTIMATED CHANGES Modified Mathlib/Control/Random.lean +/- def Random.randBool 2022-03-13 10:28:57-07:00 0bdee9f chore: bump to nightly-2022-03-13 (#227) ESTIMATED CHANGES Modified Mathlib/Data/List/Basic.lean Modified lean-toolchain 2022-03-10 10:43:36 62c2af3 feat: LRAT proof replay (#222) This is based on a suggestion by @avigad. From the docs: ```lean lrat_proof foo "p cnf 2 4 1 2 0 -1 2 0 1 -2 0 -1 -2 0" "5 -2 0 4 3 0 5 d 3 4 0 6 1 0 5 1 0 6 d 1 0 7 0 5 2 6 0" ``` produces the theorem: ```lean foo : ∀ (a a_1 : Prop), (¬a ∧ ¬a_1 ∨ a ∧ ¬a_1) ∨ ¬a ∧ a_1 ∨ a ∧ a_1 ``` There is still some design work to be done on how exactly to make this usable in practice; in particular the generated theorem is always written in DNF, while for a tactic we would generally want to infer the structure from the goal statement instead of the CNF file. The main aim of this implementation is to be as high performance as can be reasonably achieved while still being proof-object-based (there is some definitional unfolding but nothing too heavy). I haven't tried to give it any truly massive proofs yet (I will have to figure out how to run it compiled first), but it seems to hold up reasonably well even on proofs in the 10000 line range. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Tactic/Sat/FromLRAT.lean + structure Mathlib.Tactic.Sat.Clause + structure Mathlib.Tactic.Sat.LClause + inductive Mathlib.Tactic.Sat.LRATStep + def Mathlib.Tactic.Sat.Parser.parseDimacs + def Mathlib.Tactic.Sat.Parser.parseInt + def Mathlib.Tactic.Sat.Parser.parseLRAT + def Mathlib.Tactic.Sat.Parser.parseNat + def Mathlib.Tactic.Sat.buildClause + def Mathlib.Tactic.Sat.fromLRAT + def Mathlib.Tactic.Sat.fromLRATAux + def Sat.Clause.cons + def Sat.Clause.nil + structure Sat.Clause.reify + theorem Sat.Clause.reify_and + theorem Sat.Clause.reify_one + theorem Sat.Clause.reify_zero + def Sat.Clause + def Sat.Fmla.and + def Sat.Fmla.one + def Sat.Fmla.proof + theorem Sat.Fmla.proof_of_subsumes + theorem Sat.Fmla.refute + structure Sat.Fmla.reify + theorem Sat.Fmla.reify_one + theorem Sat.Fmla.reify_or + structure Sat.Fmla.subsumes + theorem Sat.Fmla.subsumes_left + theorem Sat.Fmla.subsumes_right + theorem Sat.Fmla.subsumes_self + def Sat.Literal.negate + def Sat.Literal.ofInt + structure Sat.Literal.reify + theorem Sat.Literal.reify_neg + theorem Sat.Literal.reify_pos + inductive Sat.Literal + theorem Sat.Valuation.by_cases + def Sat.Valuation.implies + def Sat.Valuation.mk + theorem Sat.Valuation.mk_implies + def Sat.Valuation.neg + def Sat.Valuation.satisfies + structure Sat.Valuation.satisfies_fmla + def Sat.Valuation 2022-03-10 08:15:06 94f50d0 feat: include_str macro (#221) This is not my work, it is copied from https://github.com/leanprover/doc-gen4/blob/5f7d380/DocGen4/IncludeStr.lean by @hargoniX and @xubaiw ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Util/IncludeStr.lean 2022-03-09 10:51:50 f2359f0 chore: bump to nightly-2022-03-09 (#223) ESTIMATED CHANGES Modified lean-toolchain 2022-03-08 09:05:33 a382ac9 feat: Implement Control.Random without streams (#218) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Control/Random.lean + def IO.runRand + def Rand.next + def Rand.range + def Rand.split + def Random.rand + def Random.randBool + def Random.randBound + def Random.randFin Modified Mathlib/Init/Data/Int/Order.lean + theorem Int.ofNat_natAbs_eq_of_nonneg 2022-03-08 09:02:45 900e55a fix: auto-bounds should be parameters, not indices (#220) See: https://leanprover.zulipchat.com/#narrow/stream/270676-lean4/topic/Regression.20in.20implicit.20argument.20inference ESTIMATED CHANGES Modified Mathlib/Data/List/Perm.lean +/- inductive List.Perm Modified Mathlib/Init/Data/List/Lemmas.lean +/- inductive List.sublist 2022-03-08 08:13:13 f7bb444 chore: bump to nightly-2022-03-07 (#219) ESTIMATED CHANGES Modified Mathlib/Data/List/Basic.lean Modified Mathlib/Data/List/Card.lean Modified Mathlib/Data/List/Perm.lean Modified Mathlib/Data/Option/Defs.lean Modified Mathlib/Data/Prod.lean Modified Mathlib/Init/Data/List/Basic.lean - def List.mem - theorem List.mem_nil + theorem List.not_mem_nil Modified Mathlib/Init/Data/List/Instances.lean Modified Mathlib/Init/Data/List/Lemmas.lean +/- theorem List.ball_nil +/- theorem List.eq_or_mem_of_mem_cons +/- theorem List.mem_cons_eq +/- theorem List.mem_cons_of_mem +/- theorem List.mem_cons_self +/- theorem List.mem_nil_iff +/- theorem List.not_bex_nil - theorem List.not_mem_nil +/- theorem List.subset_cons Modified Mathlib/Init/Data/Nat/Lemmas.lean Modified Mathlib/Init/Logic.lean - def decidable_of_decidable_of_eq - def decidable_of_decidable_of_iff - theorem if_t_t Modified Mathlib/Init/Set.lean Modified Mathlib/Init/SetNotation.lean Modified Mathlib/Logic/Basic.lean Modified lean-toolchain 2022-03-02 10:34:13 5d22f07 chore: bump to nightly-2022-03-02 (#217) ESTIMATED CHANGES Modified lean-toolchain 2022-03-01 10:48:01 f472efc chore: bump to nightly-2022-03-01 (#216) ESTIMATED CHANGES Modified Mathlib/Data/List/Basic.lean + theorem List.eq_of_mem_repeat' - theorem List.eq_of_mem_repeat + theorem List.get_append_right' - theorem List.get_append_right + theorem List.get_repeat' - theorem List.get_repeat +/- theorem List.leftpad_prefix + theorem List.mem_repeat' - theorem List.mem_repeat + theorem List.repeat'_succ - theorem List.repeat_succ Modified Mathlib/Data/Nat/Basic.lean - theorem Nat.eq_of_mul_eq_mul_right Modified Mathlib/Data/String/Defs.lean + def String.repeat' - def String.repeat Modified Mathlib/Data/String/Lemmas.lean +/- theorem String.leftpad_prefix + theorem String.length_repeat' - theorem String.length_repeat Modified Mathlib/Init/Data/List/Basic.lean + def List.repeat' - def List.repeat Modified Mathlib/Init/Data/List/Lemmas.lean + theorem List.length_repeat' - theorem List.length_repeat Modified Mathlib/Init/Data/Nat/Lemmas.lean Modified Mathlib/Logic/Basic.lean +/- theorem heq_iff_eq Modified Mathlib/Util/Simp.lean Modified lean-toolchain 2022-02-27 14:34:45 de721d3 Fin n is a LinearOrder (#215) I'm not exactly sure whether this is the correct location? The change is pretty trivial to move wherever anyways. ESTIMATED CHANGES Modified Mathlib/Data/Fin/Basic.lean + theorem Fin.le_antisymm + theorem Fin.le_refl + theorem Fin.le_total + theorem Fin.le_trans + theorem Fin.lt_iff_le_not_le 2022-02-24 13:15:15 042ca5d feat: `norm_cast` (#191) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Group/Defs.lean +/- theorem Int.cast_negSucc +/- theorem Int.cast_one +/- theorem Int.cast_zero +/- theorem Nat.cast_add +/- theorem Nat.cast_ofNat +/- theorem Nat.cast_succ +/- theorem Nat.cast_zero Modified Mathlib/Algebra/Ring/Basic.lean +/- theorem Int.cast_Nat_cast + theorem Int.cast_eq_cast_iff_Nat +/- theorem Int.cast_id + theorem Int.natAbs_cast +/- theorem Nat.cast_id Modified Mathlib/Init/Data/Int/Basic.lean Modified Mathlib/Init/Data/Int/Order.lean +/- theorem Int.ofNat_le +/- theorem Int.ofNat_lt Modified Mathlib/Mathport/Syntax.lean Modified Mathlib/Tactic/NormCast.lean - structure Tactic.NormCast.NormCastExtension - def Tactic.NormCast.addElim - def Tactic.NormCast.addInfer - def Tactic.NormCast.addMove - def Tactic.NormCast.addSquash Added Mathlib/Tactic/NormCast/CoeExt.lean + structure Tactic.NormCast.CoeFnInfo + inductive Tactic.NormCast.CoeFnType + def Tactic.NormCast.addCoeDelaborator + def Tactic.NormCast.coeDelaborator + def Tactic.NormCast.getCoeFnInfo? + def Tactic.NormCast.registerCoercion Added Mathlib/Tactic/NormCast/Ext.lean + inductive Tactic.NormCast.Label + structure Tactic.NormCast.NormCastExtension + def Tactic.NormCast.addElim + def Tactic.NormCast.addInfer + def Tactic.NormCast.addMove + def Tactic.NormCast.addSquash + def Tactic.NormCast.classifyType + def Tactic.NormCast.countInternalCoes + def Tactic.NormCast.getSimpArgs Added Mathlib/Tactic/NormCast/Lemmas.lean Added Mathlib/Tactic/NormCast/Tactic.lean + def Tactic.NormCast.derive + def Tactic.NormCast.evalConvNormCast + def Tactic.NormCast.evalPushCast + def Tactic.NormCast.isCoeOf? + def Tactic.NormCast.isNumeral? + def Tactic.NormCast.mkCoe + def Tactic.NormCast.normCastHyp + def Tactic.NormCast.normCastTarget + def Tactic.NormCast.numeralToCoe + def Tactic.NormCast.prove + def Tactic.NormCast.proveEqUsing + def Tactic.NormCast.proveEqUsingDown + def Tactic.NormCast.splittingProcedure Added Mathlib/Util/Simp.lean + def Lean.Meta.DiscrTree.getElements + def Lean.Meta.Simp.getPropHyps + def Lean.Meta.Simp.mkCast + def Lean.Meta.Simp.mkEqSymm + def Lean.Meta.Simp.mkSimpContext' + def Std.PHashSet.toList Added test/norm_cast.lean + theorem b + def hidden.WithZero.of + def hidden.WithZero + theorem hidden.coe_inj + theorem hidden.coe_one + theorem hidden.mul_coe + structure p 2022-02-23 11:41:23 4f105d6 feat: make `open private` work on partial def (#213) ESTIMATED CHANGES Modified Mathlib/Tactic/OpenPrivate.lean 2022-02-23 09:06:13 5be1724 feat: `AddMonoidWithOne`, `AddGroupWithOne` (#206) Counterpart to leanprover-community/mathlib#12182. Solves the performance issues with polymorphic numerals from #177, as well as the diamonds with Nat. A noteworthy feature is that after importing mathlib, the coercion `ℕ → ℤ` changes from `Int.ofNat` to `Nat.cast`. ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Defs.lean + def Int.cast + theorem Int.cast_negSucc + theorem Int.cast_ofNat + theorem Int.cast_one + theorem Int.cast_zero + def Nat.cast + theorem Nat.cast_add + theorem Nat.cast_ofNat + theorem Nat.cast_one + theorem Nat.cast_succ + theorem Nat.cast_zero Modified Mathlib/Algebra/Ring/Basic.lean + theorem Int.cast_Nat_cast + theorem Int.cast_id + theorem Int.ofNat_eq_cast - theorem Nat.cast_Int - theorem Nat.cast_Nat - theorem Nat.cast_add + theorem Nat.cast_id +/- theorem Nat.cast_mul - theorem Nat.cast_one +/- theorem Nat.cast_pow - theorem Nat.cast_succ' - theorem Nat.cast_succ - theorem Nat.cast_succ_succ - theorem Nat.cast_zero - theorem Nat.pow_succ' Modified Mathlib/Data/Fin/Basic.lean + def Fin.ofInt' Modified Mathlib/Data/UInt.lean Modified Mathlib/Init/Data/Int/Order.lean Modified Mathlib/Init/Data/Nat/Lemmas.lean + theorem Nat.Nat.pow_eq + theorem Nat.Nat.pow_succ' Modified Mathlib/Tactic/NormNum.lean +/- def Lean.Meta.NormNum.isNat 2022-02-22 12:43:49-08:00 7a5aae8 feat: improve linear_combination syntax (#212) ESTIMATED CHANGES Modified Mathlib/Mathport/Syntax.lean Modified Mathlib/Tactic/LibrarySearch.lean 2022-02-22 19:12:32 d1c5e58 chore: modifies-tactic-syntax update 2022-02-22 (#211) Updates `Syntax.lean` for all changes in https://github.com/leanprover-community/mathlib/issues?q=label%3Amodifies-tactic-syntax+closed%3A%3C2022-02-22 . ESTIMATED CHANGES Modified Mathlib/Mathport/Syntax.lean Modified Mathlib/Tactic/LibrarySearch.lean 2022-02-22 16:50:29 d36c9a5 fix: space after separator (#210) Fixes https://github.com/leanprover-community/mathport/pull/122#issuecomment-1047958493 ESTIMATED CHANGES Modified Mathlib/Mathport/Syntax.lean 2022-02-22 16:16:33 f198b69 fix: with_weak_namespace registers ns (#209) fixes [#208](https://github.com/leanprover-community/mathlib4/issues/208) ESTIMATED CHANGES Modified Mathlib/Util/WithWeakNamespace.lean 2022-02-22 15:10:03 7f1c5b3 chore: align ulift (#207) ESTIMATED CHANGES Modified Mathlib/Mathport/SpecialNames.lean 2022-02-22 10:38:07 ca7674d chore: align psum (#205) ESTIMATED CHANGES Modified Mathlib/Mathport/SpecialNames.lean 2022-02-21 18:07:33 e5b2b21 chore: bump to nightly-2022-02-21 (#203) ESTIMATED CHANGES Modified Mathlib/Init/Data/Int/Basic.lean Modified Mathlib/Init/Data/List/Lemmas.lean - theorem List.append_eq_append Modified Mathlib/Init/Data/Nat/Lemmas.lean - theorem Nat.mul_pred_left - theorem Nat.mul_pred_right - theorem Nat.pred_succ - theorem Nat.pred_zero Modified lean-toolchain 2022-02-21 17:55:30 2ea19e2 fix: align has_dvd (#202) ESTIMATED CHANGES Modified Mathlib/Init/Dvd.lean Modified Mathlib/Mathport/SpecialNames.lean 2022-02-21 17:53:21 5f2933e fix: align psigma (#201) ESTIMATED CHANGES Modified Mathlib/Mathport/SpecialNames.lean 2022-02-21 17:40:53 a7b020c chore: use the same names as in mathport (#200) Ideally this would cause mathport to align these definitions, and then we can translate the notation. ESTIMATED CHANGES Modified Mathlib/Data/Equiv/Basic.lean +/- def Equiv.symm Modified Mathlib/Data/Equiv/Functor.lean Modified Mathlib/Data/Prod.lean + theorem Prod.swap_LeftInverse + theorem Prod.swap_RightInverse - theorem Prod.swap_left_inverse - theorem Prod.swap_right_inverse Modified Mathlib/Init/Function.lean + theorem Function.LeftInverse.injective + def Function.LeftInverse + theorem Function.LeftInverse_of_surjective_of_RightInverse + theorem Function.RightInverse.surjective + def Function.RightInverse + theorem Function.RightInverse_of_injective_of_LeftInverse + theorem Function.has_LeftInverse.injective + def Function.has_LeftInverse + theorem Function.has_RightInverse.surjective + def Function.has_RightInverse - theorem Function.has_left_inverse.injective - def Function.has_left_inverse - theorem Function.has_right_inverse.surjective - def Function.has_right_inverse - theorem Function.left_inverse.injective - def Function.left_inverse - theorem Function.left_inverse_of_surjective_of_right_inverse - theorem Function.right_inverse.surjective - def Function.right_inverse - theorem Function.right_inverse_of_injective_of_left_inverse Modified Mathlib/Init/Logic.lean + def RightInverse - def right_inverse Modified Mathlib/Logic/Function/Basic.lean + theorem Function.LeftInverse.RightInverse + theorem Function.LeftInverse.comp + theorem Function.LeftInverse.comp_eq_id + theorem Function.LeftInverse.eq_RightInverse + theorem Function.LeftInverse.surjective + theorem Function.LeftInverse_iff_comp + theorem Function.LeftInverse_inv_fun + theorem Function.LeftInverse_surj_inv + theorem Function.RightInverse.LeftInverse + theorem Function.RightInverse.comp + theorem Function.RightInverse.comp_eq_id + theorem Function.RightInverse.injective + theorem Function.RightInverse_iff_comp + theorem Function.RightInverse_inv_fun + theorem Function.RightInverse_surj_inv +/- theorem Function.bijective_iff_has_inverse + theorem Function.injective.has_LeftInverse - theorem Function.injective.has_left_inverse + theorem Function.injective_iff_has_LeftInverse - theorem Function.injective_iff_has_left_inverse +/- theorem Function.inv_fun_comp + theorem Function.inv_fun_eq_of_injective_of_RightInverse - theorem Function.inv_fun_eq_of_injective_of_right_inverse - theorem Function.left_inverse.comp - theorem Function.left_inverse.comp_eq_id - theorem Function.left_inverse.eq_right_inverse - theorem Function.left_inverse.right_inverse - theorem Function.left_inverse.surjective - theorem Function.left_inverse_iff_comp - theorem Function.left_inverse_inv_fun - theorem Function.left_inverse_surj_inv - theorem Function.right_inverse.comp - theorem Function.right_inverse.comp_eq_id - theorem Function.right_inverse.injective - theorem Function.right_inverse.left_inverse - theorem Function.right_inverse_iff_comp - theorem Function.right_inverse_inv_fun - theorem Function.right_inverse_surj_inv + theorem Function.surjective.has_RightInverse - theorem Function.surjective.has_right_inverse + theorem Function.surjective_iff_has_RightInverse - theorem Function.surjective_iff_has_right_inverse 2022-02-21 14:51:31 4b4eb5b feat: use rintro patterns for ext (#197) ESTIMATED CHANGES Modified Mathlib/Logic/Function/Basic.lean Modified Mathlib/Mathport/Syntax.lean Modified Mathlib/Tactic/Ext.lean Modified test/ext.lean 2022-02-21 14:49:29 5544193 feat: `(↑)` notation for coercions (#199) See https://github.com/leanprover-community/mathport/issues/116#issuecomment-1046836990 The notation is a bit problematic for the pretty-printer, as it doesn't automatically insert parentheses to disambiguate it from the built-in coercion notation. Alternatives: 1. Use a different token. 2. Magically define `(↑ ∙)` to be the eta-reduction of `fun x => ↑x`. PS: the old macro for `↑ x` was redundant since it's been moved to core some time ago. ESTIMATED CHANGES Modified Mathlib/Data/Subtype.lean +/- theorem Subtype.restrict_def Modified Mathlib/Tactic/Coe.lean 2022-02-20 22:01:04-08:00 792d625 chore: dead code (#198) ESTIMATED CHANGES Modified Mathlib/Mathport/Syntax.lean 2022-02-20 20:06:08-08:00 c71a689 feat: add foldl/foldr in notation3 (#196) * feat: add foldl/foldr in notation3 * Apply suggestions from code review ESTIMATED CHANGES Modified Mathlib/Mathport/Syntax.lean Modified test/notation3.lean 2022-02-17 14:53:05 b6afb0d chore: bump to nightly-2022-02-17 (#195) ESTIMATED CHANGES Modified Mathlib/Data/Array/Basic.lean +/- theorem Array.get_eq_get Modified Mathlib/Data/List/Basic.lean + theorem List.Fin.exists_iff +/- theorem List.get?_eq_get +/- theorem List.get?_eq_some +/- theorem List.get_append +/- theorem List.get_cons_drop - theorem List.get_map' +/- theorem List.get_map - theorem List.get_map_rev +/- theorem List.get_mem +/- theorem List.get_of_eq +/- theorem List.get_of_mem +/- theorem List.get_repeat +/- theorem List.get_singleton +/- theorem List.get_zero +/- theorem List.mem_iff_get +/- theorem List.mem_iff_get? Modified Mathlib/Init/Data/List/Basic.lean +/- theorem List.get_cons_zero Modified Mathlib/Init/Data/Nat/Lemmas.lean Modified lean-toolchain 2022-02-14 13:50:43 9ea62cd chore: bump to nightly-2022-02-13 (#194) ESTIMATED CHANGES Modified Mathlib/Data/Fin/Basic.lean Modified Mathlib/Data/List/Basic.lean +/- theorem List.eq_or_ne_mem_of_mem Modified Mathlib/Init/Data/Nat/Lemmas.lean Modified lean-toolchain 2022-02-11 13:11:09 89fab7c chore: bump to nightly-2022-02-11 (#192) ESTIMATED CHANGES Modified Mathlib/Data/List/Basic.lean + theorem List.getLast_append + theorem List.getLast_concat + theorem List.getLast_cons + theorem List.getLast_eq_get - theorem List.last_append - theorem List.last_concat - theorem List.last_cons - theorem List.last_eq_get - theorem List.last_singleton Modified Mathlib/Init/Data/List/Basic.lean + theorem List.getLast_cons_cons + theorem List.getLast_singleton - def List.last Modified Mathlib/Tactic/Lint/Frontend.lean Modified lean-toolchain 2022-02-10 13:39:46 0b0c07f refactor: make ring more like mathlib (#190) ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Defs.lean Modified Mathlib/Algebra/GroupWithZero/Defs.lean Modified Mathlib/Algebra/Ring/Basic.lean +/- theorem add_mul +/- theorem mul_add Modified Mathlib/Data/Fin/Basic.lean Modified Mathlib/Data/UInt.lean 2022-02-09 13:22:22 226f899 feat: rcases and rintro tactics (#182) I finally got around to porting `rcases` for real. There are a few things that should probably be upstreamed: `generalizeExceptFVar` is a piece of a function in `cases`, and `FVarSubst.append` does not belong here. Indeed `FVarSubst.append` is only needed because `cases` does not expose a `FVarSubst` argument even though it talks about having one in the comments. `obtain`, `rcases`, and `rintro` are fully implemented, but `rcases?` and `rintro?` have not been implemented yet; I intend to do these in a follow up PR. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Mathport/Syntax.lean Modified Mathlib/Tactic/Ext.lean Added Mathlib/Tactic/RCases.lean + def Lean.Meta.FVarSubst.append + def Lean.Meta.RCases.RCasesPatt.alts' + def Lean.Meta.RCases.RCasesPatt.alts₁ + def Lean.Meta.RCases.RCasesPatt.alts₁Core + def Lean.Meta.RCases.RCasesPatt.asAlts + def Lean.Meta.RCases.RCasesPatt.asTuple + def Lean.Meta.RCases.RCasesPatt.ref + def Lean.Meta.RCases.RCasesPatt.tuple' + def Lean.Meta.RCases.RCasesPatt.tuple₁ + def Lean.Meta.RCases.RCasesPatt.tuple₁Core + def Lean.Meta.RCases.RCasesPatt.typed? + inductive Lean.Meta.RCases.RCasesPatt + def Lean.Meta.RCases.finish + def Lean.Meta.RCases.generalizeExceptFVar + def Lean.Meta.RCases.obtainNone + def Lean.Meta.RCases.processConstructor + def Lean.Meta.RCases.processConstructors + def Lean.Meta.RCases.rcases + def Lean.Meta.RCases.rintro + def Lean.Meta.RCases.subst' + def Lean.Meta.RCases.tryClearMany' Deleted Mathlib/Tactic/Rcases.lean Added test/rcases.lean 2022-02-08 14:04:25 7f7ccfe feat: `use` tactic (#184) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Mathport/Syntax.lean Added Mathlib/Tactic/Use.lean Added test/Use.lean 2022-02-08 12:21:59 ba16185 chore: bump to nightly-2022-02-08 (#189) ESTIMATED CHANGES Modified lean-toolchain 2022-02-07 19:05:59 d54e4e1 feat: library_note (#188) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Logic/Basic.lean Modified Mathlib/Mathport/Syntax.lean Modified Mathlib/Tactic/Lint/Simp.lean Added Mathlib/Util/LibraryNote.lean + def Mathlib.Util.LibraryNote.LibraryNoteEntry + def Mathlib.Util.LibraryNote.getDocCommentContent 2022-02-07 13:35:26 147444b chore: bump to nightly-2022-02-07 (#186) ESTIMATED CHANGES Modified Mathlib/Tactic/Lint/Simp.lean - structure Mathlib.Tactic.Lint.SimpLemmaInfo + structure Mathlib.Tactic.Lint.SimpTheoremInfo - def Mathlib.Tactic.Lint.checkAllSimpLemmaInfos + def Mathlib.Tactic.Lint.checkAllSimpTheoremInfos - def Mathlib.Tactic.Lint.heuristicallyExtractSimpLemmas - def Mathlib.Tactic.Lint.heuristicallyExtractSimpLemmasCore + def Mathlib.Tactic.Lint.heuristicallyExtractSimpTheorems + def Mathlib.Tactic.Lint.heuristicallyExtractSimpTheoremsCore - def Mathlib.Tactic.Lint.isSimpLemma + def Mathlib.Tactic.Lint.isSimpTheorem - def Mathlib.Tactic.Lint.withSimpLemmaInfos + def Mathlib.Tactic.Lint.withSimpTheoremInfos Modified Mathlib/Tactic/NormCast.lean Modified lean-toolchain 2022-02-07 12:43:28 09097f6 feat: cases' and induction' tactics (#183) This adds a lean 3 compatible syntax for cases and induction: `cases' x with a b c d`, `induction' x with a b ih_b c ih_c` ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Data/List/Defs.lean + def List.splitAtD Modified Mathlib/Mathport/Syntax.lean Added Mathlib/Tactic/Cases.lean + def Lean.Parser.Tactic.ElimApp.evalNames Added test/cases.lean + inductive Bar + inductive Foo 2022-02-07 10:11:56 2331f95 chore: drop `rotate_goals` tactic (#185) Dropping `rotate_goals` tactic because it's already available as `rotate_left` and `rotate_right` ESTIMATED CHANGES Modified Mathlib/Tactic/PermuteGoals.lean - def Mathlib.Tactic.onGoal 2022-02-06 19:49:45 fd3f20b feat: `rotate_goals`, `pick_goal` and `swap` (#178) * Port `rotate` as `rotate_goals` * Port `swap` as `pick_goal` * Make `swap` a shortcut for `pick_goal 2` * Modify `work_on_goal` to be indexed from `1`. It's also renamed to `on_goal` and has a different syntax. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Mathport/Syntax.lean Added Mathlib/Tactic/PermuteGoals.lean + def Mathlib.Tactic.onGoal + def Mathlib.Tactic.splitGoalsAndGetNth Deleted Mathlib/Tactic/WorkOnGoal.lean Added test/PermuteGoals.lean Deleted test/workOnGoal.lean 2022-02-06 13:45:56 96cd61a chore: bump to nightly-2022-02-06 (#181) ESTIMATED CHANGES Modified Mathlib/Data/ByteArray.lean Modified Mathlib/Data/List/Defs.lean Modified Mathlib/Data/Option/Defs.lean Modified Mathlib/Init/Data/List/Basic.lean Modified Mathlib/Init/ExtendedBinder.lean Modified Mathlib/Lean/LocalContext.lean Modified Mathlib/Mathport/Syntax.lean Modified Mathlib/Tactic/Basic.lean Modified Mathlib/Tactic/Cache.lean Modified Mathlib/Tactic/Ext.lean Modified Mathlib/Tactic/Find.lean Modified Mathlib/Tactic/IrreducibleDef.lean Modified Mathlib/Tactic/LibrarySearch.lean Modified Mathlib/Tactic/Lint/Basic.lean Modified Mathlib/Tactic/Lint/Frontend.lean Modified Mathlib/Tactic/Lint/Simp.lean Modified Mathlib/Tactic/NormNum.lean Modified Mathlib/Tactic/OpenPrivate.lean Modified Mathlib/Tactic/PrintPrefix.lean Modified Mathlib/Tactic/Ring.lean +/- def Tactic.Ring.HornerExpr.reflConv Modified Mathlib/Tactic/Simps.lean Modified Mathlib/Tactic/SudoSetOption.lean Modified Mathlib/Tactic/TryThis.lean Modified Mathlib/Util/Export.lean Modified Mathlib/Util/TermUnsafe.lean Modified Mathlib/Util/WhatsNew.lean Modified lean-toolchain 2022-02-06 02:43:34-08:00 98deec5 feat: porting `simp_rw` (#180) * porting simp_rw * importing SimpRw.lean * fixing copyrights ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Mathport/Syntax.lean Added Mathlib/Tactic/SimpRw.lean Added test/SimpRw.lean 2022-02-04 11:24:05 6c61d4c chore: bump to nightly-2022-02-04 (#179) ESTIMATED CHANGES Modified lean-toolchain 2022-02-01 18:42:36 cc9b9f3 refactor: remove numeric (#177) This removes the `Numeric` parent for `Semiring` which was used for both coercions and numerals, and replaces it by a low-priority instance for `OfNat` on `Semiring`. The coercion from Nat to R is removed. Numerals are now implemented using `Nat.cast`. As Sebastian has noted, to avoid diamonds for *numerals* it suffices that `Nat.cast n` and `(n : R)` are definitionally equal for every `n : Nat`. It is not necessary that `(Nat.cast ∙)` and `(∙ : R)` are definitionally equal as functions (and after this PR they are not, for most rings). Similarly, `Nat.cast` is carefully defined so that both `0 = 0` and `1 = 1` are true definitionally in any ring. The setup still has a couple of downsides: 1. `OfNat.ofNat` must never be applied to anything except concrete natural numbers (or we get diamonds). 2. `(123456 : R)` is a massive performance issue when executing in the VM. :-/ (Which is not entirely true, in reality it fails quickly due to a stack overflow.) We do not register `Nat.cast` as a coercion because of the performance issues. ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Defs.lean + theorem eq_of_sub_eq_zero' Modified Mathlib/Algebra/Ring/Basic.lean + theorem Nat.cast_Int + theorem Nat.cast_Nat + theorem Nat.cast_add + theorem Nat.cast_mul + theorem Nat.cast_one + theorem Nat.cast_pow + theorem Nat.cast_succ' + theorem Nat.cast_succ + theorem Nat.cast_succ_succ + theorem Nat.cast_zero - theorem Nat.ofNat_eq_Nat + theorem Nat.pow_succ' + theorem neg_mul_eq_neg_mul - theorem ofNat_add - theorem ofNat_eq_ofNat - theorem ofNat_mul - theorem ofNat_one - theorem ofNat_pow - theorem ofNat_zero Modified Mathlib/Data/Fin/Basic.lean + theorem Fin.ext + theorem Fin.ext_iff + theorem Fin.neg_def + theorem Fin.ofNat'_one + theorem Fin.ofNat'_succ + theorem Fin.ofNat'_zero + theorem Fin.one_val +/- theorem Fin.size_positive' Modified Mathlib/Data/UInt.lean Modified Mathlib/Tactic/NormNum.lean +/- theorem Lean.Meta.NormNum.isNat_rawNat - def Lean.Meta.mkOfNatLit Modified test/ring.lean 2022-02-01 15:23:46 537323f refactor: use `List.splitAt` in `work_on_goal` (#175) This implementation traverses the list of goals less times. It also adds some functions that can be useful in the future (where should they go?) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Data/List/Defs.lean Modified Mathlib/Tactic/Basic.lean Added Mathlib/Tactic/WorkOnGoal.lean Modified test/basicTactics.lean Added test/workOnGoal.lean 2022-02-01 13:42:34 4e68bcc chore: bump to nightly-2022-02-01 (#176) ESTIMATED CHANGES Modified lean-toolchain 2022-01-31 09:25:08 048690d chore: bump to nightly-2022-01-31 (#174) ESTIMATED CHANGES Modified Mathlib/Tactic/Lint/Simp.lean Modified lean-toolchain 2022-01-28 09:06:37 4450abf Improve 'iterate' tactic docstring (#173) [Zulip link](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/Tactic.20status.3F/near/269204923) ESTIMATED CHANGES Modified Mathlib/Tactic/Basic.lean 2022-01-27 16:51:47 dd7b052 feat: union-find data structure (#139) This was surprisingly intricate to get right, considering that the implementation in CLRS is only 11 lines for all the functions in the API put together. All the invariants here are used only to prove that accesses are in bounds and the `link` function terminates. The fact that `(a.set ..).size` is not defeq to `a.size` causes no end of headache. Here I've experimented with a `UFModel` ghost type, which has simpler defeqs based on `Fin n -> A` functions instead of lists ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Data/UnionFind.lean + theorem UFModel.Agrees.empty + theorem UFModel.Agrees.get_eq' + theorem UFModel.Agrees.get_eq + theorem UFModel.Agrees.mk' + theorem UFModel.Agrees.push + theorem UFModel.Agrees.set + theorem UFModel.Agrees.size_eq + inductive UFModel.Agrees + theorem UFModel.Models.empty + theorem UFModel.Models.parent_eq' + theorem UFModel.Models.parent_eq + theorem UFModel.Models.push + theorem UFModel.Models.rank_eq + theorem UFModel.Models.setParent + theorem UFModel.Models.size_eq + def UFModel.Models + def UFModel.empty + def UFModel.push + def UFModel.setParent + def UFModel.setParentBump + structure UFModel + structure UFNode + def UnionFind.empty + def UnionFind.find + def UnionFind.findAux + def UnionFind.link + theorem UnionFind.lt_rankMax' + theorem UnionFind.lt_rankMax + def UnionFind.mkEmpty + theorem UnionFind.model' + theorem UnionFind.parent_lt + def UnionFind.push + def UnionFind.rank + def UnionFind.rankMax + def UnionFind.rankMaxAux + theorem UnionFind.rank_eq + theorem UnionFind.rank_lt + def UnionFind.size + def UnionFind.union + structure UnionFind 2022-01-27 13:13:28 bb4a16c feat: whatsnew in ... (#169) ```lean whatsnew in attribute [simp] List.iota ``` Prints: ```lean theorem List.iota.match_1.eq_2.{u_1} : ∀ (motive : Nat → Sort u_1) (h_1 : Unit → motive 0) (h_2 : (m n : Nat) → m = n + 1 → motive (Nat.succ n)) (n : Nat), (match Nat.succ n with | 0 => h_1 () | m@h:(Nat.succ n) => h_2 m n h) = h_2 (n + 1) n (_ : n + 1 = n + 1) := fun motive h_1 h_2 n => Eq.refl (h_2 (Nat.succ n) n (Eq.refl (Nat.succ n))) theorem List.iota.match_1.splitter.{u_1} : (motive : Nat → Sort u_1) → (x : Nat) → motive 0 → ((n : Nat) → motive (Nat.succ n)) → motive x := fun motive x h_1 h_2 => Nat.casesOn x h_1 fun n => h_2 n theorem List.iota._eq_2 : ∀ (n : Nat), List.iota (Nat.succ n) = Nat.succ n :: List.iota n := fun n => Eq.refl (List.iota (Nat.succ n)) theorem List.iota.match_1.eq_1.{u_1} : ∀ (motive : Nat → Sort u_1) (h_1 : Unit → motive 0) (h_2 : (m n : Nat) → m = n + 1 → motive (Nat.succ n)), (match 0 with | 0 => h_1 () | m@h:(Nat.succ n) => h_2 m n h) = h_1 () := fun motive h_1 h_2 => Eq.refl (h_1 ()) theorem List.iota._eq_1 : List.iota 0 = [] := Eq.refl (List.iota 0) -- simpExt extension: 4 new entries ``` ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Util/WhatsNew.lean + def Mathlib.WhatsNew.diffExtension + def Mathlib.WhatsNew.whatsNew 2022-01-27 10:44:25 23d4e91 chore: bump to nightly-2022-01-27 (#171) bors merge ESTIMATED CHANGES Modified lean-toolchain 2022-01-26 15:13:26 3e02133 chore: update to new filter_upwards syntax (#170) ESTIMATED CHANGES Modified Mathlib/Mathport/Syntax.lean 2022-01-26 11:38:28 08d84db chore: bump to nightly-2022-01-26 (#168) bors merge ESTIMATED CHANGES Modified Mathlib/Data/List/Card.lean Modified Mathlib/Init/Data/Int/Basic.lean Modified lean-toolchain 2022-01-25 19:14:25 52a7561 chore: align has_inv (#167) ESTIMATED CHANGES Modified Mathlib/Mathport/SpecialNames.lean 2022-01-25 18:31:45 5f1cc76 fix: use correct mvar context in ring (#166) fixes #165 ESTIMATED CHANGES Modified Mathlib/Tactic/Ring.lean 2022-01-24 13:16:38 3a835b7 chore: bump to nightly-2022-01-23 (#164) ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Basic.lean - theorem mul_left_comm - theorem mul_right_comm Modified Mathlib/Algebra/Group/Defs.lean - theorem mul_assoc - theorem mul_comm + theorem mul_left_comm +/- theorem mul_pow + theorem mul_right_comm Modified Mathlib/Data/List/Basic.lean Modified Mathlib/Init/Data/Int/Basic.lean Modified Mathlib/Logic/Basic.lean Modified Mathlib/Tactic/Ring.lean Modified lean-toolchain 2022-01-20 22:25:38 48d4f92 fix: align has_[zero|one] (#163) If I recall, these were omitted originally simply because the Lean4 classes didn't exist at the time. Note: I am currently unable to run mathport to confirm that this change does not cause unexpected issues. ESTIMATED CHANGES Modified Mathlib/Mathport/SpecialNames.lean 2022-01-19 12:52:19 fe835a1 chore: bump to nightly-2022-01-19 (#162) ESTIMATED CHANGES Modified lean-toolchain Modified test/librarySearch.lean 2022-01-17 11:23:11 7046e13 chore: add back unfold tactic stub (#161) ESTIMATED CHANGES Modified Mathlib/Mathport/Syntax.lean 2022-01-17 11:03:02 c4c15e0 chore: bump to nightly-2022-01-17 (#160) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Data/BinaryHeap.lean Modified Mathlib/Data/ByteArray.lean Deleted Mathlib/Init/WF.lean Added Mathlib/Logic/Nonempty.lean + theorem Classical.nonempty_pi + theorem Nonempty.elim_to_inhabited + theorem Nonempty.exists + theorem Nonempty.forall + theorem Nonempty.map + theorem exists_true_iff_nonempty + theorem nonempty_Prop + theorem nonempty_empty + theorem nonempty_plift + theorem nonempty_pprod + theorem nonempty_prod + theorem nonempty_psigma + theorem nonempty_psum + theorem nonempty_sigma + theorem nonempty_subtype + theorem nonempty_sum + theorem nonempty_ulift + theorem not_nonempty_iff_imp_false + theorem subsingleton_of_not_nonempty Modified Mathlib/Tactic/Cache.lean Modified Mathlib/Tactic/Ext.lean Modified Mathlib/Tactic/NormCast.lean Modified Mathlib/Util/Export.lean +/- def Lean.Export.runExportM Modified Mathlib/Util/TermUnsafe.lean Modified lean-toolchain Modified test/irreducibleDef.lean 2022-01-12 11:50:15 089ae0a chore: bump to nightly-2022-01-12 (#159) ESTIMATED CHANGES Modified Mathlib/Init/Data/List/Basic.lean + theorem List.get_cons_succ + theorem List.get_cons_zero Modified Mathlib/Mathport/Syntax.lean Modified Mathlib/Tactic/Lint/Frontend.lean Modified Mathlib/Tactic/Lint/Simp.lean + def Mathlib.Tactic.Lint.isEqnLemma? Modified lean-toolchain 2022-01-06 09:48:44 011b906 chore: bump to nightly-2022-01-06 (#158) ESTIMATED CHANGES Modified lean-toolchain 2022-01-05 12:31:51 879a435 chore: bump to nightly-2022-01-05 (#157) ESTIMATED CHANGES Modified lean-toolchain 2022-01-04 11:21:52 dac563e chore: bump to nightly-2022-01-04 (#156) ESTIMATED CHANGES Modified lean-toolchain 2022-01-01 12:11:32 b0cd472 feat: add classical tactic (#155) ESTIMATED CHANGES Modified Mathlib/Mathport/Syntax.lean Modified Mathlib/Tactic/Basic.lean 2021-12-28 11:55:24 1fd2cbe refactor: make @[ext] an attribute (on structures) (#153) Instead of a macro expansion. ESTIMATED CHANGES Modified Mathlib/Tactic/Ext.lean - structure Mathlib.Tactic.Ext.$n:ident + def Mathlib.Tactic.Ext.extAttribute + def Mathlib.Tactic.Ext.extLemmas + def Mathlib.Tactic.Ext.liftCommandElabM 2021-12-28 05:39:50-05:00 5903a66 fix: don't use `(a b)*` in rename' parser ESTIMATED CHANGES Modified Mathlib/Tactic/Rename.lean 2021-12-28 05:38:58-05:00 4c5df8d chore: sorry tactic is upstream now ESTIMATED CHANGES Modified Mathlib/Tactic/Basic.lean 2021-12-28 03:22:40-05:00 d93ff76 feat: support binderIdent in introv ESTIMATED CHANGES Modified Mathlib/Tactic/Basic.lean 2021-12-28 02:56:07-05:00 c789857 fix: use config in apply_with' ESTIMATED CHANGES Modified Mathlib/Mathport/Syntax.lean 2021-12-28 02:50:18-05:00 583eb01 feat: add conv simp' stub ESTIMATED CHANGES Modified Mathlib/Mathport/Syntax.lean 2021-12-27 23:06:40-08:00 c11fbda chore: use Parser.Tactic.{config, discharger} (#154) ESTIMATED CHANGES Modified Mathlib/Mathport/Syntax.lean Modified Mathlib/Tactic/SolveByElim.lean 2021-12-27 10:07:50 893a57b feat: add withWeakNamespace (#151) This is slightly different and potentially more useful than the mathport version, because it lets you escape the current namespace. Which is what we want for the localized notation. I've put in a version which appends the namespace for use in mathport (although I can't really tell what it's used for there ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Mathport/Syntax.lean Added Mathlib/Util/WithWeakNamespace.lean + def Lean.Elab.Command.resolveNamespace + def Lean.Elab.Command.withWeakNamespace 2021-12-27 10:02:13 1e27f0d chore: bump to nightly-2021-12-26 (#152) ESTIMATED CHANGES Modified lean-toolchain 2021-12-23 22:21:21 3721c69 feat: stubs for localized commands (#150) ESTIMATED CHANGES Modified Mathlib/Mathport/Syntax.lean 2021-12-23 22:19:37 61c09e0 feat: decl_name! macro (#149) I was hoping to be able to use this in `NormCast.lean`, but unfortunately it does not work because it picks up the name of the internal declaration `initFn` from the desugaring of `initialize`: ```lean `(def initFn : IO $type := do $doSeq @[$attrId:ident initFn] constant $id : $type) ``` @Kha What do you think about changing the desugaring to `def initFn : IO $type := with_decl_name% $id do $doSeq`? Will this interfere with other uses of `getDeclName?`? It seems to be mostly used in error messages and `leading_parser` type stuff, so grabbing the internal name seems less useful than the one the user wrote. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Util/DeclName.lean 2021-12-23 14:37:49 91fe082 feat: @[norm_cast] attribute (#147) I'm not entirely sure I got this right. In particular, I'm not sure if `normCastExt` should be a `builtin_initialize` or `initialize` block. They both seem to work, except that in the `initialize` version I can't access the environment to construct the initial `SimpLemmas` object, which is initialized to a nonempty set. As written (but with `initialize` instead of `builtin_initialize`), it will crash at the `run_cmd` line because you can't evaluate an `initialize` value in the same file as the definition. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Mathport/Syntax.lean Added Mathlib/Tactic/NormCast.lean + structure Tactic.NormCast.NormCastExtension + def Tactic.NormCast.addElim + def Tactic.NormCast.addInfer + def Tactic.NormCast.addMove + def Tactic.NormCast.addSquash Modified Mathlib/Tactic/RunCmd.lean Modified Mathlib/Tactic/Simps.lean 2021-12-23 14:24:23 c68d91d feat: Init.Data.Int.{Basic, Order} (#148) Moves `Data.Int.Basic` to `Init.Data.Int.Basic` to keep the parallel with mathlib/lean3 file organization. `Data.Int.Basic` will be restored (with the actual contents of mathlib's `data.int.basic`) in a future commit. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Ring/Basic.lean Deleted Mathlib/Data/Int/Basic.lean - theorem Int.add_assoc_aux1 - theorem Int.add_assoc_aux2 - theorem Int.eq_x_or_neg - theorem Int.eq_zero_ofNatAbs_eq_zero - def Int.fdiv - def Int.fmod - def Int.gcd - theorem Int.mul_negSucc_ofNat_negSucc_ofNat - theorem Int.natAbs_eq - theorem Int.natAbs_mul_self - theorem Int.natAbs_neg - theorem Int.natAbs_ofNat - theorem Int.natAbs_one - theorem Int.natAbs_pos_of_ne_zero - theorem Int.natAbs_zero - theorem Int.negOfNat_add - theorem Int.negOfNat_eq_subNatNat_zero - theorem Int.negOfNat_mul_negSucc_ofNat - theorem Int.negOfNat_mul_ofNat - theorem Int.negSucc_ofNat_add_negSucc_ofNat - theorem Int.negSucc_ofNat_add_ofNat - theorem Int.negSucc_ofNat_coe' - theorem Int.negSucc_ofNat_coe - theorem Int.negSucc_ofNat_eq - theorem Int.negSucc_ofNat_inj_iff - theorem Int.negSucc_ofNat_mul_negOfNat - theorem Int.negSucc_ofNat_mul_subNatNat - theorem Int.negSucc_ofNat_ofNat - theorem Int.neg_neg_ofNat_succ - theorem Int.neg_ofNat_of_succ - theorem Int.neg_ofNat_zero - theorem Int.ofNat_add - theorem Int.ofNat_add_negSucc_ofNat - theorem Int.ofNat_add_ofNat - theorem Int.ofNat_eq_ofNat_iff - theorem Int.ofNat_mul - theorem Int.ofNat_mul_negOfNat - theorem Int.ofNat_mul_negSucc_ofNat - theorem Int.ofNat_mul_ofNat - theorem Int.ofNat_mul_subNatNat - theorem Int.ofNat_one - theorem Int.ofNat_sub - theorem Int.ofNat_succ - theorem Int.ofNat_zero - def Int.quot - def Int.rem - def Int.sign - theorem Int.sign_mul_natAbs - theorem Int.sign_neg_one - theorem Int.sign_one - theorem Int.sign_zero - theorem Int.subNatNat_add - theorem Int.subNatNat_add_add - theorem Int.subNatNat_add_left - theorem Int.subNatNat_add_negSucc_ofNat - theorem Int.subNatNat_add_right - theorem Int.subNatNat_elim - theorem Int.subNatNat_of_le - theorem Int.subNatNat_of_lt - theorem Int.subNatNat_of_sub_eq_succ - theorem Int.subNatNat_of_sub_eq_zero - theorem Int.subNatNat_sub - theorem Int.sub_nat_self - theorem Int.toNat_sub Modified Mathlib/Data/Nat/Basic.lean + theorem Nat.succ_eq_one_add Modified Mathlib/Init/Algebra/Order.lean +/- theorem le_refl Modified Mathlib/Init/Data/Int/Basic.lean + theorem Int.add_assoc_aux1 + theorem Int.add_assoc_aux2 + theorem Int.eq_x_or_neg + theorem Int.eq_zero_ofNatAbs_eq_zero + def Int.fdiv + def Int.fmod + def Int.gcd + theorem Int.mul_negSucc_ofNat_negSucc_ofNat + theorem Int.natAbs_eq + theorem Int.natAbs_mul_self + theorem Int.natAbs_neg + theorem Int.natAbs_ofNat + theorem Int.natAbs_one + theorem Int.natAbs_pos_of_ne_zero + theorem Int.natAbs_zero + theorem Int.negOfNat_add + theorem Int.negOfNat_eq_subNatNat_zero + theorem Int.negOfNat_mul_negSucc_ofNat + theorem Int.negOfNat_mul_ofNat + theorem Int.negSucc_ofNat_add_negSucc_ofNat + theorem Int.negSucc_ofNat_add_ofNat + theorem Int.negSucc_ofNat_coe' + theorem Int.negSucc_ofNat_coe + theorem Int.negSucc_ofNat_eq + theorem Int.negSucc_ofNat_inj_iff + theorem Int.negSucc_ofNat_mul_negOfNat + theorem Int.negSucc_ofNat_mul_subNatNat + theorem Int.negSucc_ofNat_ofNat + theorem Int.neg_neg_ofNat_succ + theorem Int.neg_ofNat_of_succ + theorem Int.neg_ofNat_zero + theorem Int.ofNat_add + theorem Int.ofNat_add_negSucc_ofNat + theorem Int.ofNat_add_ofNat + theorem Int.ofNat_eq_ofNat_iff + theorem Int.ofNat_mul + theorem Int.ofNat_mul_negOfNat + theorem Int.ofNat_mul_negSucc_ofNat + theorem Int.ofNat_mul_ofNat + theorem Int.ofNat_mul_subNatNat + theorem Int.ofNat_one + theorem Int.ofNat_sub + theorem Int.ofNat_succ + theorem Int.ofNat_zero + def Int.quot + def Int.rem + def Int.sign + theorem Int.sign_mul_natAbs + theorem Int.sign_neg_one + theorem Int.sign_one + theorem Int.sign_zero + theorem Int.subNatNat_add + theorem Int.subNatNat_add_add + theorem Int.subNatNat_add_left + theorem Int.subNatNat_add_negSucc_ofNat + theorem Int.subNatNat_add_right + theorem Int.subNatNat_elim + theorem Int.subNatNat_of_le + theorem Int.subNatNat_of_lt + theorem Int.subNatNat_of_sub_eq_succ + theorem Int.subNatNat_of_sub_eq_zero + theorem Int.subNatNat_sub + theorem Int.sub_nat_self + theorem Int.toNat_sub Added Mathlib/Init/Data/Int/Order.lean + theorem Int.NonNeg.elim + theorem Int.add_one_le_of_lt + theorem Int.eq_natAbs_of_zero_le + theorem Int.eq_neg_succ_of_lt_zero + theorem Int.eq_ofNat_of_zero_le + theorem Int.eq_one_of_mul_eq_self_left + theorem Int.eq_one_of_mul_eq_self_right + theorem Int.eq_succ_of_zero_lt + theorem Int.eq_zero_of_sign_eq_zero + theorem Int.exists_eq_neg_ofNat + theorem Int.le.dest + theorem Int.le.dest_sub + theorem Int.le.intro + theorem Int.le.intro_sub + theorem Int.le_def + theorem Int.le_natAbs + theorem Int.le_of_lt + theorem Int.le_of_lt_add_one + theorem Int.le_of_sub_one_lt + theorem Int.le_sub_one_of_lt + theorem Int.lt.dest + theorem Int.lt.intro + theorem Int.lt_add_one_of_le + theorem Int.lt_add_succ + theorem Int.lt_iff_add_one_le + theorem Int.lt_of_add_one_le + theorem Int.lt_of_le_sub_one + theorem Int.lt_succ + theorem Int.mul_neg_eq_neg_mul_symm + theorem Int.natAbs_of_nonneg + theorem Int.neg_mul_eq_neg_mul_symm + theorem Int.neg_of_sign_eq_neg_one + theorem Int.neg_succ_lt_zero + theorem Int.nonneg_def + theorem Int.nonneg_or_nonneg_neg + theorem Int.ofNat_le + theorem Int.ofNat_lt + theorem Int.ofNat_natAbs_of_nonpos + theorem Int.ofNat_nonneg + theorem Int.ofNat_succ_pos + theorem Int.ofNat_zero_le + theorem Int.pos_of_sign_eq_one + theorem Int.sign_eq_neg_one_iff_neg + theorem Int.sign_eq_neg_one_of_neg + theorem Int.sign_eq_one_iff_pos + theorem Int.sign_eq_one_of_pos + theorem Int.sign_eq_zero_iff_zero + theorem Int.sign_of_succ + theorem Int.sub_one_lt_of_le Modified Mathlib/Init/Data/Nat/Lemmas.lean Modified Mathlib/Init/Logic.lean + theorem Exists.imp + def Not.elim + theorem Not.imp +/- theorem exists_imp_exists Modified Mathlib/Logic/Basic.lean - theorem Exists.imp - def Not.elim - theorem Not.imp 2021-12-23 10:04:22 19f0dde chore: bump to nightly-2021-12-23 (#146) ESTIMATED CHANGES Modified lean-toolchain 2021-12-22 09:15:52 073329c chore: bump to nightly-2021-12-22 (#145) ESTIMATED CHANGES Modified lean-toolchain 2021-12-21 16:45:16-08:00 640a762 feat: support `_` in extended binders (#144) ESTIMATED CHANGES Modified Mathlib/Init/ExtendedBinder.lean 2021-12-21 18:45:33 8576f11 chore: remove obsolete example (#143) ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Defs.lean 2021-12-21 11:15:44 2d095db feat: support extended binders in notation3 (#142) ESTIMATED CHANGES Modified Mathlib/Mathport/Syntax.lean Modified test/notation3.lean 2021-12-21 10:05:07 70af8b9 chore: snake case tactics (#141) Per the discussion at https://leanprover.zulipchat.com/#narrow/stream/270676-lean4/topic/tactic.20naming.20convention , tactics should be snake-cased. This implements the mathlib4 part of the conversion, and the mathport part is leanprover-community/mathport#79 . ESTIMATED CHANGES Modified Mathlib/Data/List/Basic.lean +/- theorem List.get?_zero Modified Mathlib/Mathport/Syntax.lean Modified Mathlib/Tactic/Basic.lean Modified Mathlib/Tactic/Conv.lean Modified Mathlib/Tactic/Ext.lean Modified Mathlib/Tactic/LibrarySearch.lean Modified Mathlib/Tactic/NormNum.lean Modified Mathlib/Tactic/RunTac.lean Modified Mathlib/Tactic/ShowTerm.lean Modified Mathlib/Tactic/SolveByElim.lean Modified test/SolveByElim.lean +/- def test1 +/- def test2 +/- def test3 +/- def test4 +/- def test5 +/- def test6 Modified test/basicTactics.lean Modified test/ext.lean Modified test/librarySearch.lean Modified test/runTac.lean Modified test/showTerm.lean 2021-12-20 08:28:15+11:00 57882b8 bump: nightly-2021-12-19 (#140) ESTIMATED CHANGES Modified Mathlib/Init/Logic.lean +/- theorem implies_true_iff Modified lean-toolchain 2021-12-18 19:28:14-08:00 560f08f feat: more theorems on arrays and binary heaps (#138) ESTIMATED CHANGES Modified Mathlib/Data/Array/Basic.lean + theorem Array.get?_eq_get + theorem Array.get?_eq_get? + theorem Array.get?_len_le + theorem Array.get?_push_eq + theorem Array.get?_push_lt + theorem Array.get?_set + theorem Array.get?_set_eq + theorem Array.get?_set_ne + theorem Array.get_eq_get + theorem Array.get_push Modified Mathlib/Data/BinaryHeap.lean + def BinaryHeap.decreaseKey + def BinaryHeap.get + def BinaryHeap.increaseKey + def BinaryHeap.insertExtractMax + def BinaryHeap.replaceMax + def BinaryHeap.singleton + theorem BinaryHeap.size_pos_of_max 2021-12-18 19:21:45-08:00 9b4a236 feat: porting Data.List.Defs, Init.Data.List.Basic (#137) This ports the files: * `Init.Data.Option.{Basic, Instances}` * `Init.Data.List.{Basic, Instances, Lemmas}` * `Data.Option.{Basic, Defs}` * `Data.List.Defs` nearly in their entirety; a few definitions were skipped for missing prerequisites. * `length'` and `append'` were removed, since they have been upstreamed * `Nat.min` is now simp-reduced in favor of `min`, and existing theorems restated using `min` * `Function.injective` now uses `{{}}` arguments ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Data/List/Basic.lean + theorem List.Pairwise_cons - def List.append' - theorem List.append'_eq_append - theorem List.append_bind + theorem List.append_eq_cons_iff + theorem List.append_inj' + theorem List.append_inj + theorem List.append_inj_left' + theorem List.append_inj_left + theorem List.append_inj_right' + theorem List.append_inj_right + theorem List.append_left_cancel + theorem List.append_left_inj + theorem List.append_left_injective + theorem List.append_right_cancel + theorem List.append_right_inj + theorem List.append_right_injective - theorem List.ball_cons - theorem List.ball_nil - theorem List.bex_cons - theorem List.concat_eq_append' +/- theorem List.concat_eq_append - theorem List.cons_bind + theorem List.cons_eq_append_iff - theorem List.cons_subset_cons - def List.count - def List.countp - def List.disjoint - theorem List.drop_eq_nil_of_le' +/- theorem List.drop_eq_nil_of_le - theorem List.eq_nil_of_length_eq_zero + theorem List.eq_of_mem_repeat - theorem List.eq_or_mem_of_mem_cons - def List.eraseDup +/- theorem List.erase_subset - def List.erasep +/- theorem List.erasep_subset + theorem List.ext + theorem List.ext_get + theorem List.get?_append + theorem List.get?_append_right + theorem List.get?_concat_length + theorem List.get?_eq_get + theorem List.get?_eq_none_iff + theorem List.get?_eq_some + theorem List.get?_injective + theorem List.get?_len_le + theorem List.get?_map + theorem List.get?_mem + theorem List.get?_modifyNth + theorem List.get?_modifyNth_eq + theorem List.get?_modifyNth_ne + theorem List.get?_of_mem + theorem List.get?_set_eq + theorem List.get?_set_ne + theorem List.get?_set_of_lt + theorem List.get?_zero + theorem List.get_append + theorem List.get_append_right + theorem List.get_append_right_aux + theorem List.get_cons_length + theorem List.get_map' + theorem List.get_map + theorem List.get_map_rev + theorem List.get_mem + theorem List.get_of_eq + theorem List.get_of_mem + theorem List.get_repeat + theorem List.get_set_eq + theorem List.get_set_ne + theorem List.get_singleton + theorem List.get_zero - def List.insert +/- theorem List.insert_of_mem - def List.isInfix - def List.isPrefix - def List.isSuffix +/- theorem List.join_cons +/- theorem List.join_nil + theorem List.last_append + theorem List.last_concat + theorem List.last_cons + theorem List.last_eq_get + theorem List.last_singleton - def List.length' - theorem List.length'_eq_length - theorem List.length_map - theorem List.length_repeat - theorem List.map_append - theorem List.map_cons + theorem List.map_eq_append_split - theorem List.map_id - theorem List.map_map - theorem List.map_nil - theorem List.map_singleton - def List.mem - theorem List.mem_append - theorem List.mem_append_eq - theorem List.mem_append_left - theorem List.mem_append_right - theorem List.mem_cons - theorem List.mem_cons_eq - theorem List.mem_cons_iff - theorem List.mem_cons_of_mem - theorem List.mem_cons_self +/- theorem List.mem_erase_of_ne + theorem List.mem_iff_get + theorem List.mem_iff_get? - theorem List.mem_nil - theorem List.mem_nil_iff + theorem List.mem_or_eq_of_mem_set + theorem List.mem_repeat + theorem List.modifyNthTail_id + theorem List.modifyNthTail_length + theorem List.modifyNth_eq_set + theorem List.modify_get?_length - theorem List.ne_nil_of_length_eq_succ - theorem List.nil_bind - theorem List.nil_subset - def List.nodup - theorem List.not_bex_nil - theorem List.not_mem_nil - inductive List.pairwise - theorem List.pairwise_cons - def List.product +/- theorem List.product_spec - def List.pwFilter + theorem List.removeNth_eq_nth_tail - def List.repeat +/- theorem List.repeat_succ + theorem List.set_comm + theorem List.set_eq_modifyNth + theorem List.set_nil + theorem List.set_succ - theorem List.subset.refl - theorem List.subset.trans - theorem List.subset_append_left - theorem List.subset_append_right - theorem List.subset_cons - theorem List.subset_cons_of_subset - theorem List.subset_of_cons_subset + theorem List.take_append_drop Modified Mathlib/Data/List/Defs.lean + def List.Chain' + inductive List.Chain + inductive List.Forall₂ + def List.Nodup + inductive List.Pairwise + def List.allSome + def List.count + def List.countp + def List.disjoint + def List.eraseDup + def List.erasep + def List.extractp + def List.fillNones + def List.find + def List.findIdxs + def List.foldlIdx + def List.foldlIdxAux + def List.foldrIdx + def List.foldrIdxAux + def List.getRest + def List.ilast' + def List.indexesOf + def List.indexesValues + def List.inits + def List.insertNth + def List.isInfix + def List.isPrefix + def List.isSuffix + def List.last' + def List.lookmap - def List.mapIdx - def List.mapIdxM + def List.mapWithComplement + def List.mapWithPrefixSuffix + def List.mapWithPrefixSuffixAux + def List.map₂Left' + def List.map₂Left + def List.map₂Right' + def List.map₂Right + def List.mmap' + def List.mmap'Diag + def List.mmap + def List.mmapFilter + def List.mmapUpperTriangle + def List.modifyHead + def List.modifyLast + def List.modifyNth + def List.modifyNthTail + def List.ofFn + def List.ofFnAux + def List.ofFnNthVal + def List.partitionMap + def List.product + def List.pwFilter + def List.range' +/- def List.reduceOption + def List.revzip + def List.rotate' + def List.rotate + def List.scanl + def List.scanr + def List.scanrAux + def List.sections + def List.slice + def List.splitAt + def List.splitOn + def List.splitOnP + def List.splitOnPAux + def List.sublists' + def List.sublists'Aux + def List.sublists + def List.sublistsAux + def List.sublistsAux₁ + def List.tails + def List.takeD + def List.takeList + def List.toChunks + def List.toChunksAux + def List.transpose + def List.transposeAux + def List.zipLeft' + def List.zipLeft + def List.zipRight' + def List.zipRight + def List.zipWith₃ + def List.zipWith₄ + def List.zipWith₅ Modified Mathlib/Data/Nat/Basic.lean + theorem Nat.le_zero_iff + theorem Nat.lt_succ_iff + theorem Nat.succ_inj' Added Mathlib/Data/Option/Basic.lean + theorem Option.ball_ne_none + theorem Option.bex_ne_none + theorem Option.bind_assoc + theorem Option.bind_comm + theorem Option.bind_eq_none + theorem Option.bind_eq_some + theorem Option.bind_id_eq_join + theorem Option.bind_map_comm + theorem Option.bind_some + theorem Option.choice_eq + theorem Option.choice_isSome_iff_nonempty + theorem Option.comp_map + theorem Option.elim_none + theorem Option.elim_some + theorem Option.eq_none_iff_forall_not_mem + theorem Option.eq_some_iff_get_eq + theorem Option.ext + theorem Option.getD_map + theorem Option.getD_none + theorem Option.getD_of_ne_none + theorem Option.getD_some + theorem Option.get_mem + theorem Option.get_of_mem + theorem Option.get_some + theorem Option.guard_eq_some + theorem Option.isNone_none + theorem Option.isNone_some + theorem Option.isSome_iff_exists + theorem Option.isSome_none + theorem Option.isSome_some + theorem Option.join_eq_some + theorem Option.join_join + theorem Option.join_map_eq_map_join + theorem Option.join_ne_none' + theorem Option.join_ne_none + theorem Option.lift_or_get_choice + theorem Option.lift_or_get_none_left + theorem Option.lift_or_get_none_right + theorem Option.lift_or_get_some_some + theorem Option.map_comp_map + theorem Option.map_congr + theorem Option.map_eq_map + theorem Option.map_eq_none' + theorem Option.map_eq_none + theorem Option.map_eq_some' + theorem Option.map_eq_some + theorem Option.map_id' + theorem Option.map_injective + theorem Option.map_map + theorem Option.map_none' + theorem Option.map_none + theorem Option.map_some' + theorem Option.map_some + theorem Option.mem_map_of_mem + theorem Option.mem_of_mem_join + theorem Option.mem_unique + theorem Option.ne_none_iff_exists' + theorem Option.ne_none_iff_exists + theorem Option.ne_none_iff_isSome + theorem Option.none_bind + theorem Option.none_orelse + theorem Option.not_isSome + theorem Option.not_isSome_iff_eq_none + theorem Option.not_mem_none + theorem Option.orelse_none + theorem Option.some_bind + theorem Option.some_get + theorem Option.some_injective + theorem Option.some_ne_none + theorem Option.some_orelse + theorem Option.to_list_none + theorem Option.to_list_some Added Mathlib/Data/Option/Defs.lean + def Option.decidable_eq_none + def Option.guard + theorem Option.isNone_iff_eq_none + def Option.join + def Option.lift_or_get + def Option.maybe.{u, + def Option.melim + theorem Option.mem_def + theorem Option.mem_iff + theorem Option.mem_toList + def Option.mgetD + def Option.mmap.{u, + def Option.pbind + def Option.pmap + inductive Option.rel + theorem Option.some_inj + def Option.toList Modified Mathlib/Data/Prod.lean Added Mathlib/Init/Data/List/Basic.lean + def List.after + def List.band + def List.bor + def List.findIdx + def List.indexOf + def List.insert + def List.last! + def List.last + def List.mapIdx + def List.mapIdxAux + def List.mapIdxM + def List.mem + theorem List.mem_cons + theorem List.mem_nil + def List.removeNth + def List.repeat + def List.tail Added Mathlib/Init/Data/List/Instances.lean Added Mathlib/Init/Data/List/Lemmas.lean + theorem List.append_bind + theorem List.append_eq_append + theorem List.ball_cons + theorem List.ball_nil + theorem List.bex_cons + theorem List.cons_bind + theorem List.cons_subset_cons + theorem List.eq_nil_of_length_eq_zero + theorem List.eq_or_mem_of_mem_cons + theorem List.length_drop + theorem List.length_le_of_sublist + theorem List.length_map + theorem List.length_map₂ + theorem List.length_removeNth + theorem List.length_repeat + theorem List.length_tail + theorem List.length_take + theorem List.length_take_le + theorem List.map_append + theorem List.map_cons + theorem List.map_id + theorem List.map_map + theorem List.map_nil + theorem List.map_singleton + theorem List.mem_append + theorem List.mem_append_eq + theorem List.mem_append_left + theorem List.mem_append_right + theorem List.mem_cons_eq + theorem List.mem_cons_of_mem + theorem List.mem_cons_self + theorem List.mem_nil_iff + theorem List.ne_nil_of_length_eq_succ + theorem List.nil_bind + theorem List.nil_subset + theorem List.not_bex_nil + theorem List.not_mem_nil + inductive List.sublist + theorem List.subset.refl + theorem List.subset.trans + theorem List.subset_append_left + theorem List.subset_append_right + theorem List.subset_cons + theorem List.subset_cons_of_subset + theorem List.subset_of_cons_subset Modified Mathlib/Init/Data/Nat/Lemmas.lean Added Mathlib/Init/Data/Option/Basic.lean + def Option.get Added Mathlib/Init/Data/Option/Instances.lean Modified Mathlib/Init/Function.lean +/- def Function.injective +/- theorem Function.injective_id 2021-12-16 18:00:46 6276f24 feat: binary heaps (#136) The main addition is a type `BinaryHeap α lt` of binary max-heaps stored in an array. Also some cleanup: * Fix line length and formatting in `Data.Fin.Basic` * Add `Mathlib.Init.WF` for some more tools for proving well foundedness * Use `termination_by` instead of manual termination compilation for `String.toAsciiByteArray` and `ByteSlice.forIn` I originally wrote `heapifyDown` et al without the embedded postcondition, but proving facts about definitions like `heapifyDown` is incredibly painful right now. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Data/BinaryHeap.lean + def Array.heapSort + def Array.toBinaryHeap + def BinaryHeap.empty + def BinaryHeap.extractMax + def BinaryHeap.heapifyDown + def BinaryHeap.heapifyUp + def BinaryHeap.insert + def BinaryHeap.max + def BinaryHeap.mkHeap + def BinaryHeap.popMax + def BinaryHeap.popMaxAux + def BinaryHeap.size + theorem BinaryHeap.size_heapifyDown + theorem BinaryHeap.size_heapifyUp + theorem BinaryHeap.size_insert + theorem BinaryHeap.size_mkHeap + theorem BinaryHeap.size_popMax + structure BinaryHeap Modified Mathlib/Data/ByteArray.lean - def String.toAsciiByteArray.loop Modified Mathlib/Data/Fin/Basic.lean +/- theorem Fin.add_def +/- theorem Fin.checked_add_spec +/- theorem Fin.checked_mul_spec +/- theorem Fin.checked_sub_spec + theorem Fin.gt_wf +/- theorem Fin.mod_def +/- theorem Fin.modn_def +/- theorem Fin.mul_def - theorem Fin.one_def: + theorem Fin.one_def +/- theorem Fin.sub_def + def Fin.upRel Modified Mathlib/Data/Nat/Basic.lean + def Nat.upRel Added Mathlib/Init/WF.lean 2021-12-15 08:57:25 8090594 feat: implement notation3 (#134) A fun bit of meta-meta-programming. ESTIMATED CHANGES Modified Mathlib/Mathport/Syntax.lean Added test/notation3.lean + def Test.Filter.atTop + def Test.Filter.eventually + def Test.Filter 2021-12-15 13:42:47+11:00 5c7f349 bump: nightly-2021-12-15 ESTIMATED CHANGES Modified lean-toolchain 2021-12-14 11:34:48 9d230e1 chore: remove noncomputable theory (#133) This is now called `noncomputable section`. ESTIMATED CHANGES Modified Mathlib/Mathport/Syntax.lean 2021-12-14 11:24:22 92b1cbe chore: bump to Lean 4 nightly 2021-12-14 (#132) ESTIMATED CHANGES Modified lean-toolchain 2021-12-13 17:00:21 a078d35 perf: use CoeTail for coercion from Nat to Numeric (#131) The blanket coercion leads to slow type class search (because `Numeric ?α` is introduced as a subgoal). https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/Deterministic.20timeout.20with.20Inhabited.20from.20Zero/near/264682061 ESTIMATED CHANGES Modified Mathlib/Algebra/Ring/Basic.lean 2021-12-13 13:16:41 c2a9a63 feat(*): migrated some lemmas about disjoint lists (#126) ESTIMATED CHANGES Modified Mathlib/Data/List/Basic.lean + def List.disjoint + theorem List.disjoint_append_left + theorem List.disjoint_comm + theorem List.disjoint_cons_left + theorem List.disjoint_iff_ne + theorem List.disjoint_left + theorem List.disjoint_nil_left + theorem List.disjoint_nil_right + theorem List.disjoint_of_disjoint_append_left_left + theorem List.disjoint_of_disjoint_append_left_right + theorem List.disjoint_of_disjoint_cons_left + theorem List.disjoint_of_disjoint_cons_right + theorem List.disjoint_of_subset_left + theorem List.disjoint_of_subset_right + theorem List.disjoint_right + theorem List.disjoint_singleton + theorem List.disjoint_symm + theorem List.singleton_disjoint Modified Mathlib/Data/List/Card.lean - def List.disjoint Modified Mathlib/Logic/Basic.lean +/- theorem exists_false + theorem forall_eq' +/- theorem forall_eq 2021-12-13 09:29:04 b9d13f4 chore: bump to Lean 4 nightly 2021-12-13 (#130) ESTIMATED CHANGES Modified Mathlib/Data/ByteArray.lean +/- def ByteSlice.toString Modified Mathlib/Data/List/Defs.lean Modified Mathlib/Lean/Expr.lean +/- def Lean.Name.mapPrefix Modified Mathlib/Mathport/Rename.lean +/- def Mathlib.Prelude.Rename.getRenameMap Modified Mathlib/Tactic/Lint/Frontend.lean +/- def Lean.TagAttribute.getDecls Modified Mathlib/Tactic/Lint/Simp.lean - def Option.mapM Modified Mathlib/Tactic/OpenPrivate.lean Modified lean-toolchain 2021-12-09 18:37:25 e592389 doc(README): add LC_ALL=C (#128) See https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/generating.20Mathlib.2Elean ESTIMATED CHANGES Modified .github/workflows/build.yml Modified README.md 2021-12-09 16:23:15 cc793ef feat(*): some auxiliary definitions for toAdditive (#112) * Define some extra functions about List, String, Name, Binder and Expr (ported from Lean 3) * Move some definitions about Expr from `Tactic/Core` to `Lean/Expr`. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Data/Array/Defs.lean + def Array.range + def Array.reduceOption Added Mathlib/Data/List/Defs.lean + def List.mapIdx + def List.mapIdxM + def List.reduceOption Modified Mathlib/Data/String/Defs.lean + def String.mapTokens Added Mathlib/Lean/Expr.lean + def Lean.BinderInfo.brackets + def Lean.Expr.constName + def Lean.Expr.getAppFnArgs + def Lean.Expr.natLit! + def Lean.Name.mapPrefix Modified Mathlib/Tactic/Core.lean - def Lean.Expr.getAppFnArgs - def Lean.Expr.natLit! + def Lean.setProtected 2021-12-09 11:59:33 79568f0 doc(README): add build instructions (#117) Mostly retrieved from https://leanprover.zulipchat.com/#narrow/stream/270676-lean4/topic/Self-contained.20native.20toolchain ESTIMATED CHANGES Modified README.md 2021-12-08 11:09:45 559d1ea chore: bump to Lean 4 nightly 2021-12-08 (#127) ESTIMATED CHANGES Modified lean-toolchain 2021-12-06 13:54:08+01:00 0544562 chore: small progress on equiv and list basics (#124) * small progress on equiv and list basics * Apply suggestions from code review * removing @[simp] from theorem * adapting names and filling another gap in Logic.Function.Basic * fixing lint * fixing functor and removing simp mark * recovering commented theorem marked with simp * removing theorem without simp mark * adding old todo theorem ESTIMATED CHANGES Modified Mathlib/Data/Equiv/Basic.lean + theorem Equiv.apply_symm_apply + theorem Equiv.coe_fn_mk + theorem Equiv.inv_fun_as_coe + def Equiv.perm + def Equiv.refl + theorem Equiv.self_comp_symm + def Equiv.symm + theorem Equiv.symm_apply_apply + theorem Equiv.symm_comp_self + theorem Equiv.to_fun_as_coe + def Equiv.trans + structure Equiv - theorem equiv.apply_symm_apply - theorem equiv.coe_fn_mk - def equiv.perm - def equiv.refl - theorem equiv.self_comp_symm - def equiv.symm - theorem equiv.symm_apply_apply - theorem equiv.symm_comp_self - def equiv.trans - structure equiv Modified Mathlib/Data/Equiv/Functor.lean Modified Mathlib/Data/List/Basic.lean + theorem List.mem_map_of_injective - theorem List.repeatSucc + theorem List.repeat_succ Modified Mathlib/Logic/Function/Basic.lean + theorem Function.involutive_iff_iter_2_eq_id 2021-12-06 13:53:56+01:00 1cf1181 refactor: add term syntax for unsafe (#125) * refactor: add term syntax for unsafe * simplify termunsafe impl * Remove debugging code. * Put eval* functions in separate file. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Tactic/Lint/Basic.lean + def Mathlib.Tactic.Lint.getLinter Modified Mathlib/Tactic/RunCmd.lean Modified Mathlib/Tactic/RunTac.lean Added Mathlib/Util/Eval.lean Added Mathlib/Util/TermUnsafe.lean + def Mathlib.TermUnsafe.mkAuxName 2021-12-03 11:58:08 5cedf41 hack: increase timeout in cache construction (#122) ESTIMATED CHANGES Modified Mathlib/Tactic/Cache.lean 2021-12-03 10:26:19 1953686 chore: bump to nightly-2021-12-03 (#121) ESTIMATED CHANGES Modified lean-toolchain 2021-12-02 15:30:47 d58927f chore: use lake env lean (#120) ESTIMATED CHANGES Modified GNUmakefile 2021-12-01 16:05:49 6fb96d4 chore: clean up conv tactic stubs (#119) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Mathport/Syntax.lean Added Mathlib/Tactic/Conv.lean 2021-12-01 14:43:31 e4efce3 feat: `{ x + 10 | x < 10 }` (#118) Ports the set replacement syntax from Lean 3. For that, I've also added a general framework where you can register relations to use in binders (e.g. `∀ ε > 0, ∃ x ∈ ball y ε, ...`). You can register a new relation with a single command, and it automatically works in quantifiers, set comprehensions, etc.: ```lean local binder_predicate x " within " eps:term " of " y:term => `(dist $x $y <= $eps) -- ∃ x within ε of y, ... -- { x within ε of y | ... } ``` The quantified variable can only be at the beginning, because this makes parsing much easier. (So no `∀ 42 < x < 99, x < 300`.) There is also no unexpander support yet. See also https://github.com/leanprover-community/mathport/issues/13. Mario suggested also supporting `∀ ε δ > 0, ...` there, but I'm not sure how important that is. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Init/ExtendedBinder.lean Modified Mathlib/Init/Set.lean + def Set.setOf.unexpander Modified Mathlib/Init/SetNotation.lean Modified Mathlib/Mathport/Syntax.lean 2021-12-01 10:27:54 0931e29 feat: add rename' tactic (#114) Not to be confused with the core tactic called rename. ```lean rename x = y => h -- is equivalent to: rename' ‹x = y› => h ``` ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Mathport/Syntax.lean Added Mathlib/Tactic/Rename.lean 2021-12-01 10:18:41 d3cb87d feat: add `` `(command| ..) `` quote (#116) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Tactic/CommandQuote.lean + def Lean.Elab.Term.elabCommandQuot + def Lean.Parser.Term.Command.quot 2021-12-01 12:03:35+11:00 d9f8224 bump: Lean 4 to nightly-20211201 ESTIMATED CHANGES 2021-12-01 11:59:30+11:00 1165d05 bump: Lean 4 to nightly-20211201 ESTIMATED CHANGES Modified lean-toolchain 2021-11-30 17:06:12 ceae891 refactor(Data/Int): move Int notation to separate file (#113) * Rename `one_succ_zero` -> `one_eq_succ_zero` * Declare `ℤ` notation in init * Minimize some imports ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Group/Defs.lean Modified Mathlib/Algebra/Ring/Basic.lean Modified Mathlib/Data/Int/Basic.lean Added Mathlib/Init/Data/Int/Basic.lean Modified Mathlib/Init/Data/Nat/Basic.lean Modified Mathlib/Init/Data/Nat/Lemmas.lean + theorem Nat.one_eq_succ_zero - theorem Nat.one_succ_zero 2021-11-30 14:25:25 e31b7cc chore: move run_cmd to separate file and remove comments (#111) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Mathport/Syntax.lean - def Lean.Elab.Command.$(mkIdent - def Lean.Elab.Command.elabIncludeCmd - def Lean.Elab.Command.elabOmitCmd - def Lean.Elab.Command.elabRunCmd - def Lean.Elab.Term.elabCommandQuot - def Lean.Parser.Term.Command.quot Added Mathlib/Tactic/RunCmd.lean 2021-11-30 14:22:44 2906363 feat: no-operation simps attribute, to avoid unnecessary errors in mathport output (#106) This is lame: not an actual port of `@[simps]` in all its glory, just a no-operation attribute so we have fewer errors on declarations in the output of mathport. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Mathport/Syntax.lean Added Mathlib/Tactic/Simps.lean Added test/Simps.lean + structure X + def x 2021-11-30 09:44:11 8fe6808 chore: bump to Lean 4 nightly 2021-11-30 (#110) ESTIMATED CHANGES Modified Mathlib/Data/Char.lean +/- theorem Char.utf8Size_pos Modified Mathlib/Data/List/Basic.lean +/- theorem List.eq_of_mem_singleton - theorem decidable.List.eq_or_ne_mem_of_mem Modified lean-toolchain 2021-11-29 17:58:45 561e9d6 feat: irreducible_def: universe levels, equations (#109) This brings the syntax closer to `def` and should make it easier to use it in mathport. ESTIMATED CHANGES Modified Mathlib/Tactic/IrreducibleDef.lean - theorem Lean.Elab.Command.$n_def + theorem Lean.Elab.Command.$n_def:ident + structure Lean.Elab.Command.Wrapper$[.{$us,*}]? - structure Lean.Elab.Command.Wrapper + def Lean.Elab.Command.definition$[.{$us,*}]? - def Lean.Elab.Command.definition Modified test/irreducibleDef.lean 2021-11-28 10:22:53 9a944b6 chore: bump to nightly-2021-11-28 (#108) ESTIMATED CHANGES Modified Mathlib/Init/Logic.lean Modified Mathlib/Tactic/Lint/Frontend.lean - def Mathlib.Tactic.Lint.findDeclarationRanges? +/- def Mathlib.Tactic.Lint.printWarnings +/- def Mathlib.Tactic.Lint.sortResults Modified lean-toolchain 2021-11-24 10:25:58 3d0564a chore: bump to nightly-2021-11-24 (#107) ESTIMATED CHANGES Modified Mathlib/Init/Function.lean - theorem Function.comp_app Modified Mathlib/Init/Logic.lean Modified Mathlib/Logic/Function/Basic.lean - theorem Function.comp_apply - theorem Function.const_apply +/- def Function.eval - theorem Function.eval_apply Modified lean-toolchain 2021-11-23 09:05:30 d0d9b32 chore: remove workaround in irreducible_def (#105) ESTIMATED CHANGES Modified Mathlib/Tactic/IrreducibleDef.lean 2021-11-23 08:57:42 7b28b02 feat(Tactic): finish implementation of iterate (#96) ESTIMATED CHANGES Modified Mathlib/Mathport/Syntax.lean Modified Mathlib/Tactic/Basic.lean Modified test/basicTactics.lean 2021-11-23 08:56:29 48b4c97 chore: bump to nightly-2021-11-23 (#104) ESTIMATED CHANGES Modified Mathlib/Data/List/Basic.lean +/- theorem List.length_singleton +/- theorem List.mem_insert_self +/- theorem List.mem_singleton +/- theorem List.singleton_append Modified lean-toolchain 2021-11-23 08:55:10 d1acce4 cleanup: macro_guide.md has been migrated to Lean 4 (#103) See https://github.com/leanprover/lean4/pull/791/files ESTIMATED CHANGES Deleted docs/macro_guide.md 2021-11-22 19:08:26 bc7ef82 chore: clean up mathport stubs (#102) I've removed all syntax stubs which were either already present, or which have direct replacements. Companion PR to mathport here: https://github.com/leanprover-community/mathport/pull/49 ESTIMATED CHANGES Modified Mathlib/Mathport/Syntax.lean Modified Mathlib/Tactic/RunTac.lean 2021-11-22 15:44:55 c8520c4 feat: add simp linter (#100) Still requires a bit more testing. 1. Lean now has a built-in feature called "linter" which is something different, I've tried to use `mathlibLinter` for the attribute. 1. ~~I haven't checked that nolint works yet.~~ 1. ~~The simp linter is still a bit buggy (reports "can be replace by `by simp only []`" way too often)~~ 1. ~~Detecting automatically generated declarations is a todo.~~ 1. CI integration with nolints.txt is missing. 1. Other linters are also missing. ESTIMATED CHANGES Modified .github/workflows/build.yml Modified Mathlib.lean Modified Mathlib/Algebra/Group/Defs.lean +/- theorem neg_eq_of_add_eq_zero Modified Mathlib/Data/Equiv/Basic.lean +/- theorem equiv.coe_fn_mk Modified Mathlib/Data/List/Basic.lean +/- theorem List.append_ne_nil_of_left_ne_nil +/- theorem List.append_ne_nil_of_ne_nil_left +/- theorem List.append_ne_nil_of_ne_nil_right +/- theorem List.length_singleton +/- theorem List.mem_cons +/- theorem List.mem_insert_self +/- theorem List.mem_nil +/- theorem List.mem_nil_iff +/- theorem List.mem_singleton +/- theorem List.not_mem_nil + theorem List.repeatSucc - def List.repeatSucc +/- theorem List.singleton_append Modified Mathlib/Data/Nat/Basic.lean Modified Mathlib/Data/Prod.lean +/- theorem Prod.map_mk +/- theorem Prod.mk.inj_iff +/- theorem Prod.swap_left_inverse +/- theorem Prod.swap_right_inverse +/- theorem prod_map Modified Mathlib/Data/String/Lemmas.lean +/- theorem String.congr_append Modified Mathlib/Data/Subtype.lean +/- theorem Subtype.coe_mk +/- theorem Subtype.val_prop Modified Mathlib/Init/Data/Nat/Basic.lean - theorem Nat.nat_zero_eq_zero Modified Mathlib/Init/Logic.lean +/- theorem Ne.def +/- theorem eq_self_iff_true +/- theorem not_false_iff +/- theorem not_true +/- theorem opt_param_eq Modified Mathlib/Logic/Basic.lean Modified Mathlib/Logic/Function/Basic.lean +/- theorem Function.const_apply Modified Mathlib/Mathport/Attributes.lean Modified Mathlib/Mathport/Syntax.lean Added Mathlib/Tactic/Lint.lean Added Mathlib/Tactic/Lint/Basic.lean + structure Mathlib.Tactic.Lint.Linter + def Mathlib.Tactic.Lint.NamedLinter.name + structure Mathlib.Tactic.Lint.NamedLinter + def Mathlib.Tactic.Lint.getLinters + def Mathlib.Tactic.Lint.isAutoDecl + def Mathlib.Tactic.Lint.shouldBeLinted Added Mathlib/Tactic/Lint/Frontend.lean + def Lean.TagAttribute.getDecls + inductive Mathlib.Tactic.Lint.LintVerbosity + def Mathlib.Tactic.Lint.findDeclarationRanges? + def Mathlib.Tactic.Lint.formatLinterResults + def Mathlib.Tactic.Lint.getAllDecls + def Mathlib.Tactic.Lint.getChecks + def Mathlib.Tactic.Lint.getDeclsInCurrModule + def Mathlib.Tactic.Lint.getDeclsInMathlib + def Mathlib.Tactic.Lint.groupedByFilename + def Mathlib.Tactic.Lint.lintCore + def Mathlib.Tactic.Lint.printWarning + def Mathlib.Tactic.Lint.printWarnings + def Mathlib.Tactic.Lint.sortResults Added Mathlib/Tactic/Lint/Simp.lean + structure Mathlib.Tactic.Lint.SimpLemmaInfo + def Mathlib.Tactic.Lint.checkAllSimpLemmaInfos + def Mathlib.Tactic.Lint.constToSimpDeclMap + def Mathlib.Tactic.Lint.decorateError + def Mathlib.Tactic.Lint.elements + def Mathlib.Tactic.Lint.formatLemmas + def Mathlib.Tactic.Lint.heuristicallyExtractSimpLemmas + def Mathlib.Tactic.Lint.heuristicallyExtractSimpLemmasCore + def Mathlib.Tactic.Lint.isConditionalHyps + def Mathlib.Tactic.Lint.isSimpEq + def Mathlib.Tactic.Lint.isSimpLemma + def Mathlib.Tactic.Lint.simpComm + def Mathlib.Tactic.Lint.simpNF + def Mathlib.Tactic.Lint.simpVarHead + def Mathlib.Tactic.Lint.withSimpLemmaInfos + def Option.mapM Added scripts/runLinter.lean 2021-11-22 09:47:17 978ee9f feat: add irreducible_def command (#99) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Tactic/IrreducibleDef.lean + theorem Lean.Elab.Command.$n_def + structure Lean.Elab.Command.Wrapper + def Lean.Elab.Command.definition Added test/irreducibleDef.lean 2021-11-22 15:23:49+11:00 9b812ac Merge pull request #101 from leanprover-community/bump-nightly-2021-11-22 chore: bump to nightly-2021-11-22 ESTIMATED CHANGES 2021-11-22 15:07:52+11:00 5b7d41a chore: bump to nightly-2021-11-22 ESTIMATED CHANGES Modified lean-toolchain 2021-11-19 07:29:46 f739029 feat(Data/UInt, Data/Fin/Basic) declarations (#90) Add new Fin instances, extend the UInt declarations to other UInt types using a macro. This incorporates @gebner's suggestions to add boolean methods for checking under/overflow, and adding separate instances of `Fin size`. I still can't figure out the elaboration issue mentioned [here on zulip](https://leanprover.zulipchat.com/#narrow/stream/270676-lean4/topic/simp.20type.20annotations/near/260877092), so I can't use the macro on USize yet. ESTIMATED CHANGES Modified Mathlib/Data/Fin/Basic.lean + def Fin.addOverflows? - theorem Fin.add_assoc - theorem Fin.add_comm +/- theorem Fin.add_def - theorem Fin.add_left_neg - theorem Fin.add_zero - def Fin.gsmul - theorem Fin.gsmul_neg' - theorem Fin.gsmul_succ' - theorem Fin.gsmul_zero' + theorem Fin.mod_def + theorem Fin.mod_eq_of_lt + theorem Fin.mod_eq_val + theorem Fin.mod_lt +/- theorem Fin.modn_def + def Fin.mulOverflows? - theorem Fin.mul_comm +/- theorem Fin.mul_def - def Fin.nsmul - theorem Fin.nsmul_succ' - theorem Fin.nsmuls_eq - theorem Fin.of_nat_zero + theorem Fin.one_def: - theorem Fin.positive_size + theorem Fin.size_positive' + theorem Fin.size_positive + def Fin.subUnderflows? +/- theorem Fin.sub_def - theorem Fin.sub_eq_add_neg + theorem Fin.val_eq_of_lt - theorem Fin.val_one - theorem Fin.val_zero - theorem Fin.zero_add + theorem Fin.zero_def - theorem Fin.zero_mul + theorem zero_lt_of_lt Modified Mathlib/Data/Nat/Basic.lean Modified Mathlib/Data/UInt.lean + theorem $typeName.add_def + theorem $typeName.eq_of_val_eq + theorem $typeName.mk_val_eq + theorem $typeName.mod_def + theorem $typeName.mul_def + theorem $typeName.neg_def + theorem $typeName.one_def + theorem $typeName.sub_def + theorem $typeName.val_eq_of_eq + theorem $typeName.zero_def - theorem Fin.val_eq_of_lt + theorem UInt16.size_positive + theorem UInt16.val_eq_of_lt + theorem UInt32.size_positive +/- theorem UInt32.val_eq_of_lt + theorem UInt64.size_positive + theorem UInt64.val_eq_of_lt + theorem UInt8.size_positive + theorem UInt8.val_eq_of_lt + theorem USize.size_positive + theorem USize.val_eq_of_lt Modified Mathlib/Init/Data/Nat/Lemmas.lean + theorem Nat.le_of_mod_lt 2021-11-17 10:16:47 1c6e0b9 chore: bump to nightly-2021-11-17 (#98) ESTIMATED CHANGES Modified lean-toolchain 2021-11-16 22:02:22 447474d chore: ci: do not install lean 3 (#97) ESTIMATED CHANGES Modified .github/workflows/build.yml 2021-11-15 10:10:19 12ac7fe chore(Tactic/Basic): cleanup and add doc-strings (#95) This gets Tactic/Basic.lean and Mathport/Syntax.lean closer to being in sync, and also copies across some tactic doc-strings from mathlib3. Not perfect yet, but hopefully all changes are improvements... ESTIMATED CHANGES Modified Mathlib/Mathport/Syntax.lean Modified Mathlib/Tactic/Basic.lean 2021-11-15 09:12:10 74efc4a feat(Tactic/workOnGoal): port workOnGoal from mathlib (#93) ESTIMATED CHANGES Modified Mathlib/Mathport/Syntax.lean Modified Mathlib/Tactic/Basic.lean Modified test/basicTactics.lean 2021-11-15 09:08:35 e47dccc fix(Tactic): assumption' (#94) `assumption'` was duplicated in `Mathport/Syntax.lean` and `Tactic/Basic.Lean`, and in both cases incorrectly used `all_goals` rather than `any_goals`. ESTIMATED CHANGES Modified Mathlib/Mathport/Syntax.lean Modified Mathlib/Tactic/Basic.lean 2021-11-13 17:52:58 eaab772 chore: bump to nightly-2021-11-12 (#91) ESTIMATED CHANGES Modified lean-toolchain 2021-11-11 08:07:28 7f40a5c chore: bump to nightly-2021-11-10 and cleanup (#89) Bumps to the Lean 4 nightly from 2021-11-10, and cleans up `Cache.lean` post https://github.com/leanprover/lean4/pull/772. ESTIMATED CHANGES Modified Mathlib/Tactic/Cache.lean Modified lean-toolchain 2021-11-09 15:23:44 64f9c43 fix: add precedence for guardExpr (#87) This may have gotten lost when moving from `Mathport/Syntax`: https://github.com/leanprover-community/mathlib4/blob/master/Mathlib/Mathport/Syntax.lean#L308-L309 ESTIMATED CHANGES Modified Mathlib/Tactic/Basic.lean 2021-11-09 08:19:58 d4ec6b4 feat(Data/Fin/Basic) (#84) Add some lemmas and instances for Fin. I'm not sure whether this definition of `Fin.gsmul` is okay. The one in mathlib3 is super buried, so I couldn't figure out how it's actually defined (it' called zsmul in mathlib3). ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Data/Fin/Basic.lean + theorem Fin.add_assoc + theorem Fin.add_comm + theorem Fin.add_def + theorem Fin.add_left_neg + theorem Fin.add_zero + def Fin.checkedAdd + def Fin.checkedMul + def Fin.checkedSub + theorem Fin.checked_add_spec + theorem Fin.checked_mul_spec + theorem Fin.checked_sub_spec + def Fin.gsmul + theorem Fin.gsmul_neg' + theorem Fin.gsmul_succ' + theorem Fin.gsmul_zero' + theorem Fin.mod_eq + theorem Fin.modn_def + theorem Fin.mul_comm + theorem Fin.mul_def + def Fin.nsmul + theorem Fin.nsmul_succ' + theorem Fin.nsmuls_eq + theorem Fin.of_nat_zero + def Fin.overflowingAdd + def Fin.overflowingMul + theorem Fin.positive_size + theorem Fin.sub_def + theorem Fin.sub_eq_add_neg + def Fin.underflowingSub + theorem Fin.val_one + theorem Fin.val_zero + theorem Fin.zero_add + theorem Fin.zero_mul Modified Mathlib/Init/Data/Nat/Lemmas.lean + theorem Nat.add_mod + theorem Nat.add_mod_mod + theorem Nat.mod_add_mod + theorem Nat.mod_mod + theorem Nat.mul_mod 2021-11-09 08:17:10 e15f5f7 chore: bump to lean4:nightly-2021-11-07 (#86) Bumps to lean4:nightly-2021-11-07. ESTIMATED CHANGES Modified Mathlib/Tactic/Cache.lean +/- def Tactic.Cache.get Modified lean-toolchain 2021-11-08 23:14:48 c140fc8 chore: bump to lean4:nightly-2021-11-02 (#85) This bump is trivial, but some problems appear for later nightlies, so I'll do it in stages for clarity. ESTIMATED CHANGES Modified lean-toolchain 2021-11-08 09:32:39 b0c3952 refactor(Mathport): move mathport prelude to mathlib4 (#80) Moving `Mathport/Prelude/*` out of mathport into mathlib4. I've added a README that will hopefully help bystanders: ``` Mathport prelude === This directory contains instructions for `mathport`, helping it to translate `mathlib` and align declarations and tactics with `mathlib4`. (These files were formerly part of `mathport`, in the directory `Mathport/Prelude/`.) `SpecialNames.lean` : Contains `#align X Y` statements, where `X` is an identifier from mathlib3 which should be aligned with the identifier `Y` from mathlib4. Sometimes we need `#align` statements just to handle exceptions to casing rules, but there are also many exceptional cases. `Syntax.lean` : Contains unimplemented stubs of tactics which need to be migrated from Lean3 to Lean4. When porting tactics, you can move the relevant stubs to a new file and use them as a starting point. Please make sure this file stays in sync with new tactic implementations (and in particular that the syntax is not defined twice). Please preserve the syntax of existing mathlib tactics, so that there are no unnecessary parse errors in the source files generated by `synport`. It is fine to fail with an error message for unimplemented features for now. ``` ESTIMATED CHANGES Modified .github/workflows/build.yml Modified Mathlib.lean Added Mathlib/Mathport/Attributes.lean Added Mathlib/Mathport/README.md Added Mathlib/Mathport/Rename.lean + def Mathlib.Prelude.Rename.RenameMap.insertPair + def Mathlib.Prelude.Rename.addNameAlignment + def Mathlib.Prelude.Rename.elabAlign + def Mathlib.Prelude.Rename.elabLookup3 + def Mathlib.Prelude.Rename.getRenameMap Added Mathlib/Mathport/SpecialNames.lean Added Mathlib/Mathport/Syntax.lean + def Lean.Elab.Command.$(mkIdent + def Lean.Elab.Command.elabIncludeCmd + def Lean.Elab.Command.elabOmitCmd + def Lean.Elab.Command.elabRunCmd + def Lean.Elab.Term.elabCommandQuot + def Lean.Parser.Term.Command.quot Modified Mathlib/Tactic/Basic.lean Modified Mathlib/Tactic/Core.lean + def Lean.Parser.Tactic.simpArg Modified Mathlib/Tactic/Ext.lean Modified Mathlib/Tactic/LibrarySearch.lean Modified Mathlib/Tactic/NormNum.lean Added Mathlib/Tactic/Rcases.lean Modified Mathlib/Tactic/ShowTerm.lean Modified Mathlib/Tactic/SolveByElim.lean Modified test/basicTactics.lean Modified test/ext.lean Modified test/showTerm.lean 2021-11-03 09:54:50 28111cf feat(Init/Data/Nat/Lemmas); nat to string length lemmas (#77) Add lemmas about the length of strings produced by core's `Nat.toDigitsCore`, and `Nat.repr`. I needed `repr_length` and `to_digits_core_length` for making guarantees about padded string lengths in ISO 8601 times and figured they might be useful for other users doing software stuff (if the maintainers feel differently just reject the PR). As indicated by the doc comment, `to_digits_core` works for bases greater than one, so it should also work for binary and hex. I found the new digit printing function to be a little bit difficult to work with so the proofs are kind of long. ESTIMATED CHANGES Modified Mathlib/Init/Data/Nat/Lemmas.lean + theorem Nat.nat_repr_len_aux + theorem Nat.repr_length + theorem Nat.to_digits_core_length + theorem Nat.to_digits_core_lens_eq + theorem Nat.to_digits_core_lens_eq_aux 2021-11-01 08:34:37 a8cf6b3 chore: bump to nightly-2021-10-28 and revert regression (#81) This bumps Lean, and reverses the change made to deal with the regression from https://github.com/leanprover-community/mathlib4/pull/79. ESTIMATED CHANGES Modified Mathlib/Data/Int/Basic.lean Modified Mathlib/Tactic/NoMatch.lean Modified Mathlib/Tactic/TryThis.lean Modified lean-toolchain 2021-11-01 08:33:29 357595a feat(coercion for decidable predicates to bool) (#83) Very small addition of a coercion for decidable predicates `(A -> Prop)` to `(A -> Bool)`. I was surprised this isn't in the prelude; passing a decidable predicate to something like List.filter currently fails. ESTIMATED CHANGES Modified Mathlib/Logic/Basic.lean 2021-11-01 08:32:21 999cd05 refactor(remove Decidable.to_bool) (#82) `Decidable.to_bool` seems to be in the prelude as `Decidable.decide`; the removed lemmas `to_bool_true_eq_tt` and `to_bool_false_eq_ff` correspond to the prelude's `decide_true_eq_true` and `decide_false_eq_false`. ESTIMATED CHANGES Modified Mathlib/Init/Logic.lean - def Decidable.to_bool - theorem to_bool_false_eq_ff - theorem to_bool_true_eq_tt 2021-10-27 04:32:12 87bfda7 doc(language): macro guide (#75) Add first draft of documentation introducing the macro system to contributors at a higher level than the official paper; consolidate links to official resources and good examples to learn from. ESTIMATED CHANGES Added docs/macro_guide.md 2021-10-26 08:01:13 b05d1f2 chore(lean-toolchain): bump to nightly-2021-10-26 (#79) ESTIMATED CHANGES Modified Mathlib/Data/Int/Basic.lean Modified lean-toolchain 2021-10-25 07:31:23 fad6b41 refactor(Init): move files which are translations of Lean3 core into Init/ (#78) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Data/List/Basic.lean Modified Mathlib/Data/List/Perm.lean Modified Mathlib/Data/Nat/Gcd.lean Modified Mathlib/Data/Prod.lean Modified Mathlib/Data/Subtype.lean Modified Mathlib/Init/Data/Nat/Basic.lean Renamed Mathlib/Dvd.lean to Mathlib/Init/Dvd.lean Renamed Mathlib/Function.lean to Mathlib/Init/Function.lean Renamed Mathlib/Set.lean to Mathlib/Init/Set.lean Renamed Mathlib/SetNotation.lean to Mathlib/Init/SetNotation.lean Modified Mathlib/Logic/Basic.lean Modified Mathlib/Logic/Function/Basic.lean 2021-10-18 13:29:39 c33b823 chore: bump to nightly-2021-10-18 (#76) ESTIMATED CHANGES Modified lean-toolchain 2021-10-18 09:49:28 6b8b239 feat: ext tactic (#73) - `ext : 42` is not implemented yet - `@[ext] structure Foo` is not supported by core (yet?), so I have implemented a cool workaround ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Data/Prod.lean +/- theorem Prod.map_def Modified Mathlib/Data/Subtype.lean Modified Mathlib/Init/Logic.lean Modified Mathlib/Logic/Basic.lean +/- theorem xor_false +/- theorem xor_true Modified Mathlib/Logic/Function/Basic.lean Modified Mathlib/Tactic/Basic.lean Added Mathlib/Tactic/Ext.lean + structure Mathlib.Tactic.Ext.$n:ident + def Mathlib.Tactic.Ext.mkAndN + def Mathlib.Tactic.Ext.mkIff + def Mathlib.Tactic.Ext.withExtHyps Modified Mathlib/Tactic/NormNum.lean - def Lean.Tactic.evalNormNum Added test/ext.lean + structure A + structure B + structure C 2021-10-18 09:11:53 b28a3d5 chore: switch to using lake (#74) ESTIMATED CHANGES Modified .github/workflows/build.yml Modified GNUmakefile Added lakefile.lean Added lean-toolchain Deleted leanpkg.toml 2021-10-15 13:06:31 3d63bb8 fix: remove zero diamond (#72) ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Defs.lean Modified Mathlib/Algebra/GroupWithZero/Defs.lean Modified Mathlib/Algebra/Ring/Basic.lean - theorem Int.ofNat_eq_ofNat - theorem Semiring.ofNat_pow +/- theorem add_mul +/- theorem mul_add - theorem mul_zero + theorem ofNat_add + theorem ofNat_eq_ofNat + theorem ofNat_mul + theorem ofNat_one + theorem ofNat_pow + theorem ofNat_zero - theorem zero_mul Modified Mathlib/Tactic/NormNum.lean 2021-10-14 09:04:49 60afa55 chore: remove split tactic (#70) https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/Renaming.20.60split.60 ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Data/List/Basic.lean + theorem List.mem_constructor - theorem List.mem_split Modified Mathlib/Data/List/Card.lean Modified Mathlib/Init/Data/Nat/Lemmas.lean Modified Mathlib/Logic/Basic.lean Modified Mathlib/Tactic/Basic.lean Deleted Mathlib/Tactic/Split.lean - def Lean.Meta.split Modified test/Split.lean Modified test/basicTactics.lean Modified test/showTerm.lean 2021-10-14 07:32:58 ade323e feat(Tactic/ShowTerm): port of show_term (#44) `showTerm` wraps another tactic, and prints a "Try this: ..." message containing a term that contain replace the tactic invocation. In future, we will implement code actions in the editor rather that expect the editor to parse this trace message string. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Tactic/LibrarySearch.lean Added Mathlib/Tactic/ShowTerm.lean Added Mathlib/Tactic/TryThis.lean + def Tactic.TryThis.addExactSuggestion + def Tactic.TryThis.addSuggestion + def Tactic.TryThis.addTermSuggestion + def Tactic.TryThis.delabToRefinableSyntax Modified test/librarySearch.lean Added test/showTerm.lean 2021-10-13 13:25:44 5375e19 fix: `match h 1 with.` (#69) Fixes #68 ESTIMATED CHANGES Modified Mathlib/Tactic/NoMatch.lean Added test/nomatch.lean + def ComplicatedEmpty 2021-10-13 09:00:54 467b715 feat: librarySearch (#65) This adds a simple version of the `librarySearch` tactic from mathlib. - The implementation uses discrimination trees, with the hope of better scalability. - A new cache data structure is introduced to simplify the caching of such indexing data structures. Some todos: - There is no "try this" yet. I'm waiting for code actions to land in Lean 4. - It only does reducible matching for now. I hope that I'll be able to abuse the discrimination trees to do indexing for semireducible matching as well. - `Iff.mp`, etc. projections are not implemented yet. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Tactic/Cache.lean + def Tactic.Cache.get + def Tactic.Cache.mk + def Tactic.Cache + def Tactic.DeclCache.get + def Tactic.DeclCache.mk + def Tactic.DeclCache Modified Mathlib/Tactic/Find.lean Added Mathlib/Tactic/LibrarySearch.lean + def Tactic.LibrarySearch.librarySearch + def Tactic.LibrarySearch.lines Modified test/Find.lean + theorem add_comm_zero Added test/librarySearch.lean + inductive P + theorem lemma_with_false_in_head + theorem lemma_with_gt_in_head 2021-10-12 13:57:06 8466c7f chore: bump to nightly 2021-10-12 (#67) ESTIMATED CHANGES Modified leanpkg.toml 2021-10-11 17:57:18-07:00 fded094 feat(List/String leftpad) (#66) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Data/List/Basic.lean + def List.isInfix + def List.isPrefix + def List.isSuffix + def List.leftpad + theorem List.leftpad_length + theorem List.leftpad_prefix + theorem List.leftpad_suffix + theorem List.length_repeat Added Mathlib/Data/String/Defs.lean + def String.isPrefix + def String.isSuffix + def String.leftpad + def String.repeat Added Mathlib/Data/String/Lemmas.lean + theorem String.congr_append + theorem String.leftpad_length + theorem String.leftpad_prefix + theorem String.leftpad_suffix + theorem String.length_append + theorem String.length_eq_list_length + theorem String.length_repeat Modified Mathlib/Init/Data/Nat/Lemmas.lean 2021-10-10 06:49:38 0022625 chore: bump to nightly-2021-10-10 (#64) ESTIMATED CHANGES Modified leanpkg.toml 2021-10-09 07:33:26 35c2f2b feat: bump to nightly-2021-10-09 (#63) ESTIMATED CHANGES Modified leanpkg.toml 2021-10-07 18:23:47+11:00 d82e2dd Merge pull request #62 from leanprover-community/bump-2021-10-07 chore(leanpkg.toml): trivial bump to nightly-2021-10-07 ESTIMATED CHANGES Modified leanpkg.toml 2021-10-07 18:22:59+11:00 bbac173 Merge pull request #57 from leanprover-community/testdir chore: move tests into test directory ESTIMATED CHANGES Modified .github/workflows/build.yml Added GNUmakefile Modified Mathlib.lean Modified Mathlib/Tactic/Basic.lean Modified Mathlib/Tactic/Ring.lean Modified Mathlib/Tactic/RunTac.lean Modified leanpkg.toml Renamed Mathlib/Test/Find.lean to test/Find.lean Renamed Mathlib/Test/SolveByElim.lean to test/SolveByElim.lean Renamed Mathlib/Test/Split.lean to test/Split.lean Added test/basicTactics.lean Added test/ring.lean Added test/runTac.lean Added test/spread.lean 2021-10-07 18:22:19+11:00 caabafa chore(leanpkg.toml): trivial bump to nightly-2021-10-07 ESTIMATED CHANGES Modified .github/workflows/build.yml Deleted GNUmakefile Modified Mathlib.lean Modified Mathlib/Tactic/Basic.lean Modified Mathlib/Tactic/Ring.lean Modified Mathlib/Tactic/RunTac.lean Renamed test/Find.lean to Mathlib/Test/Find.lean Renamed test/SolveByElim.lean to Mathlib/Test/SolveByElim.lean Renamed test/Split.lean to Mathlib/Test/Split.lean Modified leanpkg.toml Deleted test/basicTactics.lean Deleted test/ring.lean Deleted test/runTac.lean Deleted test/spread.lean 2021-10-07 14:13:01+11:00 5992823 Merge remote-tracking branch 'origin/master' into testdir ESTIMATED CHANGES Modified .github/workflows/build.yml Added GNUmakefile Modified Mathlib.lean Modified Mathlib/Tactic/Basic.lean Modified Mathlib/Tactic/Ring.lean Modified Mathlib/Tactic/RunTac.lean Renamed Mathlib/Test/Find.lean to test/Find.lean Renamed Mathlib/Test/SolveByElim.lean to test/SolveByElim.lean Renamed Mathlib/Test/Split.lean to test/Split.lean Added test/basicTactics.lean Added test/ring.lean Added test/runTac.lean Added test/spread.lean 2021-10-05 16:50:14 a92eb02 chore: ci: remove leftover from mathlib3 (#61) ESTIMATED CHANGES Modified .github/workflows/build.yml 2021-10-05 16:47:39 2d8293a chore: update lean nightly (#60) ESTIMATED CHANGES Modified leanpkg.toml 2021-10-05 16:47:38 1c502ee chore: remove block tactic (#58) This is included upstream now. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Data/List/Basic.lean Modified Mathlib/Data/Nat/Basic.lean Modified Mathlib/Init/Algebra/Functions.lean Modified Mathlib/Init/Data/Nat/Lemmas.lean Modified Mathlib/Logic/Basic.lean Modified Mathlib/Logic/Function/Basic.lean Modified Mathlib/Tactic/Basic.lean Deleted Mathlib/Tactic/Block.lean - def Lean.Elab.Tactic.closeAllOrAdmit - def Lean.Elab.Tactic.focusAndBlock Modified Mathlib/Test/Split.lean 2021-10-05 16:47:37 800f2dc feat: list permutations and pairwise (#56) The only thing that isn't just an addition from mathlib is changing the binder on subset to a weak implicit. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Data/List/Basic.lean + theorem List.append_ne_nil_of_left_ne_nil + def List.count + def List.countp + def List.eraseDup + def List.nodup + inductive List.pairwise + theorem List.pairwise_cons + def List.pwFilter Modified Mathlib/Data/List/Card.lean Added Mathlib/Data/List/Perm.lean + theorem List.Perm.Equivalence + theorem List.Perm.subset + theorem List.Perm.swap' + inductive List.Perm + theorem List.Perm_comm + theorem List.perm_middle 2021-10-05 12:20:26 1dba5d4 feat: List.product (#59) ESTIMATED CHANGES Modified .github/workflows/build.yml Deleted GNUmakefile Modified Mathlib.lean Modified Mathlib/Data/List/Basic.lean + def List.product + theorem List.product_spec Modified Mathlib/Logic/Basic.lean + theorem and_symm_left + theorem and_symm_right + theorem exists_eq_right_right' + theorem exists_eq_right_right + theorem exists_prop Modified Mathlib/Tactic/Basic.lean Modified Mathlib/Tactic/Ring.lean Modified Mathlib/Tactic/RunTac.lean Renamed test/Find.lean to Mathlib/Test/Find.lean Renamed test/SolveByElim.lean to Mathlib/Test/SolveByElim.lean Renamed test/Split.lean to Mathlib/Test/Split.lean Deleted test/basicTactics.lean Deleted test/ring.lean Deleted test/runTac.lean Deleted test/spread.lean 2021-10-05 10:56:28+02:00 7a27e18 chore: move tests into test directory ESTIMATED CHANGES Modified .github/workflows/build.yml Added GNUmakefile Modified Mathlib.lean Modified Mathlib/Tactic/Basic.lean Modified Mathlib/Tactic/Ring.lean Modified Mathlib/Tactic/RunTac.lean Renamed Mathlib/Test/Find.lean to test/Find.lean Renamed Mathlib/Test/SolveByElim.lean to test/SolveByElim.lean Renamed Mathlib/Test/Split.lean to test/Split.lean Added test/basicTactics.lean Added test/ring.lean Added test/runTac.lean Added test/spread.lean 2021-10-02 12:55:38 210fc85 feat(*): bump to nightly-2021-10-02 (#54) ESTIMATED CHANGES Modified Mathlib/Data/Nat/Basic.lean Modified Mathlib/Data/Nat/Gcd.lean Modified Mathlib/Init/Data/Nat/Lemmas.lean Modified Mathlib/Init/Logic.lean Modified leanpkg.toml 2021-10-01 12:19:20 4e2e759 remove Nat.le_of_lt in favor of more general version in Init/Algebra/Order (#53) Now that #48 has added `instance : LinearOrder Nat`, we don't need to define a Nat-only version of `ne_of_lt`. (compare to the mathlib3: https://github.com/leanprover-community/mathlib/blob/master/src/data/nat/gcd.lean#L79) ESTIMATED CHANGES Modified Mathlib/Data/Nat/Gcd.lean 2021-09-29 17:02:27 82407e4 feat(Tactic/SolveByElim): minimal implementation (#43) This is far from feature-parity with mathlib3's `SolveByElim`, but has the basic functionality. I'll add more later. ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Lean/LocalContext.lean + def Lean.LocalContext.firstDeclM + def Lean.LocalContext.lastDeclM Added Mathlib/Tactic/SolveByElim.lean + def Lean.Meta.solveByElim Added Mathlib/Test/SolveByElim.lean + def test1 + def test2 + def test3 + def test4 + def test5 + def test6 2021-09-29 16:59:58 820d0b6 feat: add Init/Data/Nat/Basic.lean and Init/Data/Nat/Lemmas.lean (#48) Continuing work from #34 and #35, adds `Init/Data/Nat/Basic.lean` and `Init/Data/Nat/Lemmas.lean`, corresponding to files in the Lean 3 prelude. This will help to keep a clear mapping between Lean 3 files and Lean 4 files. Populates the new files with items moved from `Data/Nat/Basic.lean` and `Data/Nat/Gcd.lean`. Fills in some missing items and leaves a few TODOs. Moves `fix'` in `Init/Logic.lean`. ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Data/Int/Basic.lean Modified Mathlib/Data/Nat/Basic.lean - theorem Nat.add_div_left - theorem Nat.add_div_right - theorem Nat.add_mod_left - theorem Nat.add_mod_right - theorem Nat.add_mul_div_left - theorem Nat.add_mul_div_right - theorem Nat.add_mul_mod_self_left - theorem Nat.add_mul_mod_self_right - theorem Nat.add_one_ne_zero - theorem Nat.add_sub_of_le - def Nat.discriminate - theorem Nat.div_eq_of_lt - theorem Nat.div_eq_sub_div - theorem Nat.div_lt_iff_lt_mul - theorem Nat.div_lt_self - theorem Nat.div_mul_le_self - theorem Nat.eq_of_mul_eq_mul_left - theorem Nat.eq_zero_of_add_eq_zero - theorem Nat.eq_zero_of_add_eq_zero_left - theorem Nat.eq_zero_of_add_eq_zero_right - theorem Nat.eq_zero_of_mul_eq_zero - theorem Nat.eq_zero_or_eq_succ_pred - theorem Nat.exists_eq_succ_of_ne_zero - theorem Nat.le_div_iff_mul_le - theorem Nat.le_lt_antisymm - theorem Nat.le_of_le_of_sub_le_sub_right - theorem Nat.le_succ_of_pred_le - theorem Nat.lt_le_antisymm - theorem Nat.lt_succ_of_lt - theorem Nat.mod_add_div - theorem Nat.mul_div_left - theorem Nat.mul_div_right - theorem Nat.mul_mod_left - theorem Nat.mul_mod_mul_left - theorem Nat.mul_mod_mul_right - theorem Nat.mul_mod_right - theorem Nat.mul_pred_left - theorem Nat.mul_pred_right - theorem Nat.mul_sub_div - theorem Nat.one_add - theorem Nat.one_pos - theorem Nat.one_succ_zero - theorem Nat.pred_inj - theorem Nat.pred_lt_pred - theorem Nat.pred_succ - theorem Nat.pred_zero - theorem Nat.sub_add_min_cancel - theorem Nat.sub_eq_sub_min - theorem Nat.sub_eq_zero_of_le - def Nat.sub_induction - theorem Nat.sub_lt_succ - theorem Nat.sub_mul_div - theorem Nat.sub_mul_mod - theorem Nat.sub_one - theorem Nat.sub_one_sub_lt - theorem Nat.sub_self_add - theorem Nat.succ_add_eq_succ_add - theorem Nat.succ_mul_succ_eq - theorem Nat.succ_ne_self - theorem Nat.succ_pred_eq_of_pos - theorem Nat.succ_sub - theorem Nat.succ_sub_one - theorem Nat.succ_sub_sub_succ - def Nat.two_step_induction Modified Mathlib/Data/Nat/Gcd.lean - theorem Nat.dvd_antisymm - theorem Nat.dvd_iff_mod_eq_zero - theorem Nat.dvd_mod_iff - theorem Nat.dvd_of_mod_eq_zero - theorem Nat.dvd_sub - theorem Nat.eq_one_of_dvd_one - theorem Nat.le_of_dvd - theorem Nat.mod_eq_zero_of_dvd - theorem Nat.pos_of_dvd_of_pos Added Mathlib/Init/Data/Nat/Basic.lean + theorem Nat.nat_zero_eq_zero Added Mathlib/Init/Data/Nat/Lemmas.lean + theorem Nat.add_div_left + theorem Nat.add_div_right + theorem Nat.add_mod_left + theorem Nat.add_mod_right + theorem Nat.add_mul_div_left + theorem Nat.add_mul_div_right + theorem Nat.add_mul_mod_self_left + theorem Nat.add_mul_mod_self_right + theorem Nat.add_one_ne_zero + def Nat.discriminate + theorem Nat.div_eq_of_lt + theorem Nat.div_eq_sub_div + theorem Nat.div_lt_iff_lt_mul + theorem Nat.div_lt_self + theorem Nat.div_mul_le_self + theorem Nat.dvd_antisymm + theorem Nat.dvd_iff_mod_eq_zero + theorem Nat.dvd_mod_iff + theorem Nat.dvd_of_mod_eq_zero + theorem Nat.dvd_sub + theorem Nat.eq_one_of_dvd_one + theorem Nat.eq_zero_of_add_eq_zero + theorem Nat.eq_zero_of_mul_eq_zero + theorem Nat.eq_zero_or_eq_succ_pred + theorem Nat.exists_eq_succ_of_ne_zero + def Nat.iterate + theorem Nat.le_div_iff_mul_le + theorem Nat.le_lt_antisymm + theorem Nat.le_of_dvd + theorem Nat.le_succ_of_pred_le + theorem Nat.lt_le_antisymm + theorem Nat.lt_succ_of_lt + theorem Nat.min_succ_succ + theorem Nat.mod_add_div + theorem Nat.mod_eq_zero_of_dvd + theorem Nat.mod_two_eq_zero_or_one + theorem Nat.mul_div_left + theorem Nat.mul_div_right + theorem Nat.mul_mod_left + theorem Nat.mul_mod_mul_left + theorem Nat.mul_mod_mul_right + theorem Nat.mul_mod_right + theorem Nat.mul_pred_left + theorem Nat.mul_pred_right + theorem Nat.mul_sub_div + theorem Nat.one_add + theorem Nat.one_pos + theorem Nat.one_succ_zero + theorem Nat.pos_of_dvd_of_pos + theorem Nat.pred_inj + theorem Nat.pred_lt_pred + theorem Nat.pred_succ + theorem Nat.pred_zero + theorem Nat.sub_eq_sub_min + def Nat.sub_induction + theorem Nat.sub_lt_succ + theorem Nat.sub_mul_div + theorem Nat.sub_mul_mod + theorem Nat.sub_one_sub_lt + theorem Nat.succ_add_eq_succ_add + theorem Nat.succ_mul_succ_eq + theorem Nat.succ_ne_self + theorem Nat.succ_pred_eq_of_pos + theorem Nat.succ_sub + theorem Nat.succ_sub_one + theorem Nat.succ_sub_sub_succ + def Nat.two_step_induction Modified Mathlib/Init/Logic.lean + def WellFounded.fix' Modified Mathlib/Logic/Basic.lean - def WellFounded.fix' 2021-09-29 16:59:07 a199b46 feat(Tactic/Find): Sebastian's #find command (#51) From https://leanprover.zulipchat.com/#narrow/stream/270676-lean4/topic/.23find ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Tactic/Find.lean + def Tactic.Find.findType Added Mathlib/Test/Find.lean 2021-09-29 16:57:42 9a495ab feat: invite bors (#52) ESTIMATED CHANGES Modified .github/workflows/build.yml Added bors.toml 2021-09-24 22:20:54-07:00 5fbb5bb refactor(Tactic/NormNum): change to isNat function (#49) ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Defs.lean Modified Mathlib/Algebra/Ring/Basic.lean +/- theorem Nat.ofNat_eq_Nat Modified Mathlib/Tactic/NormNum.lean + def Lean.Meta.NormNum.evalEq + theorem Lean.Meta.NormNum.eval_eq_of_isNat + theorem Lean.Meta.NormNum.eval_of_isNat + def Lean.Meta.NormNum.instSemiringNat + def Lean.Meta.NormNum.isNat + theorem Lean.Meta.NormNum.isNat_add + theorem Lean.Meta.NormNum.isNat_mul + theorem Lean.Meta.NormNum.isNat_pow + theorem Lean.Meta.NormNum.isNat_rawNat - theorem Lean.Meta.NormNum.ofNat_add - theorem Lean.Meta.NormNum.ofNat_mul - theorem Lean.Meta.NormNum.ofNat_nat - theorem Lean.Meta.NormNum.ofNat_pow 2021-09-24 22:16:42-07:00 bd3ce2f chore(*): update to nightly-2021-09-24 (#50) ESTIMATED CHANGES Modified Mathlib/Data/Int/Basic.lean Modified Mathlib/Data/List/Basic.lean - theorem List.length_append Modified Mathlib/Data/List/Card.lean Modified Mathlib/Data/Nat/Basic.lean Modified Mathlib/Data/Nat/Gcd.lean Modified Mathlib/Data/Prod.lean Modified Mathlib/Init/Logic.lean +/- theorem heq_self_iff_true +/- theorem of_heq_true Modified Mathlib/Tactic/Basic.lean Modified Mathlib/Tactic/Block.lean Modified leanpkg.toml 2021-08-26 10:28:48+02:00 7ac5698 update lean version (#46) ESTIMATED CHANGES Modified Mathlib/Data/List/Basic.lean Modified Mathlib/Init/Algebra/Functions.lean Modified Mathlib/Init/Algebra/Order.lean Modified Mathlib/Init/Logic.lean - theorem Or.elim - theorem Or.elim_on Modified Mathlib/Logic/Basic.lean Modified leanpkg.toml 2021-08-25 10:57:21+02:00 8d64503 port init/algebra/functions.lean (#45) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Init/Algebra/Functions.lean + theorem eq_max + theorem eq_min + theorem le_max_left + theorem le_max_right + theorem le_min + theorem lt_min + theorem max_assoc + theorem max_comm + theorem max_eq_left + theorem max_eq_left_of_lt + theorem max_eq_right + theorem max_eq_right_of_lt + theorem max_le + theorem max_left_comm + theorem max_lt + theorem max_self + theorem min_assoc + theorem min_comm + theorem min_eq_left + theorem min_eq_left_of_lt + theorem min_eq_right + theorem min_eq_right_of_lt + theorem min_le_left + theorem min_le_right + theorem min_left_comm + theorem min_self Modified Mathlib/Init/Logic.lean + def associative + def commutative + def left_cancelative + theorem left_comm + def left_commutative + def left_distributive + def left_identity + def right_cancelative + theorem right_comm + def right_commutative + def right_distributive + def right_identity + def right_inverse 2021-08-24 10:34:30+02:00 5c4f6b7 update lean version to nightly-2021-08-24 (#42) * update lean version * perhaps cleaner * Update Mathlib/Data/Nat/Basic.lean * bump to nightly-2021-08-24, since I need it * update Mathlib.lean? ESTIMATED CHANGES Modified .github/workflows/build.yml Modified Mathlib.lean Modified Mathlib/Data/Int/Basic.lean Modified Mathlib/Data/List/Basic.lean Modified Mathlib/Data/Nat/Basic.lean Modified Mathlib/Init/Logic.lean - theorem not_not_intro Modified leanpkg.toml 2021-08-24 11:16:08+10:00 1f90636 comment out failing test ESTIMATED CHANGES Modified Mathlib/Test/Split.lean 2021-08-23 11:57:03+10:00 1f9ecce can't do fsplit yet, noting why ESTIMATED CHANGES Modified Mathlib/Tactic/Split.lean Added Mathlib/Test/Split.lean 2021-08-19 18:21:27+02:00 83bd4ca perf(Tactic/Ring) : optimizations (#41) ESTIMATED CHANGES Modified Mathlib/Tactic/NormNum.lean Modified Mathlib/Tactic/Ring.lean + def Tactic.Ring.mkAppCS 2021-08-19 15:14:00+02:00 84271fe CommRing ℤ instance (#40) * feat : instance Z CommRing * fix : typo SubNegMonoid * fix : unnecessary lemma ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Defs.lean Modified Mathlib/Algebra/Ring/Basic.lean + theorem Int.ofNat_eq_ofNat 2021-08-18 12:57:53+02:00 fd28beb Ring tactic fix (#39) * aligned tactic names to mathport * added byContra tactic * added guardExprEq guardTarget guardHyp * added introv * Update Mathlib/Tactic/Basic.lean * Update Mathlib/Tactic/Basic.lean * added exacts * use of elab and examples * matchTarget * byContra all cases * sorry & iterate * fix : get to build * fix : get to build * fix : get to build 3 * fix : alpha eq in guardHyp but consuming mdata * feat : repeat' tactic * feat : anyGoals tactic * feat(Algebra/Group/Defs): Monoid lemmas * feat(Tactic/Ring): starting ring * fix: fixed normNum * fix : compatibility Numeric.ofNat with One.one and Zero.zero * fix : removed print * fix: fixed normNum * feat: ring with only additions and one variable * feat: ring tactic furnctional for addition and multiplication * feat(Algebra) : more lemmas * feat (Tactic/NormNum) : normNum exponentiation * feat (Tactic/Ring) : exponentiation for ring * fix : updated with new version of mkNatLit * fix : import ring * chore : update to newer lean version * doc (Tactic/Ring) : add author * fix(Algebra/Group/Defs) : Monoid.npow * chore(Tactic/Ring) : updated to new lean version * fix(Tactic/Ring) : fixed issue with constant multiplication ESTIMATED CHANGES Modified Mathlib/Tactic/Ring.lean 2021-08-18 03:40:02-04:00 72d6942 missed a spot ESTIMATED CHANGES Modified Mathlib.lean 2021-08-18 03:22:07-04:00 14be067 fix build ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Tactic/Ring.lean Deleted Mathlib/Test/Ring.lean 2021-08-18 00:45:12-04:00 05b74b0 fix(Tactic/NormNum): fix normNum bug [Reported on zulip](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/panic.20while.20testing.20ring.20tactic/near/249677205). Also some minor cleanup of normNum and ring. ESTIMATED CHANGES Added Mathlib/Tactic/Core.lean + def Lean.Expr.getAppFnArgs + def Lean.Expr.natLit! Modified Mathlib/Tactic/NormNum.lean + def Lean.Meta.NormNum.eval + theorem Lean.Meta.NormNum.ofNat_nat Modified Mathlib/Tactic/Ring.lean - def Lean.Expr.getAppFnAndArgs +/- def Tactic.Ring.HornerExpr.pp + def Tactic.Ring.RingM.run - def Tactic.Ring.run 2021-08-18 00:39:50-04:00 3d61f90 feat(Tactic/RunTac): runTac tactic ESTIMATED CHANGES Added Mathlib/Tactic/RunTac.lean 2021-08-18 12:36:16+10:00 c0c6924 Merge branch 'master' of github.com:leanprover-community/mathlib4 ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Data/Int/Basic.lean +/- theorem Int.eq_x_or_neg + theorem Int.eq_zero_ofNatAbs_eq_zero - theorem Int.eq_zero_of_nat_abs_eq_zero +/- def Int.gcd + theorem Int.mul_negSucc_ofNat_negSucc_ofNat - theorem Int.mul_neg_succ_of_nat_neg_succ_of_nat + theorem Int.natAbs_eq + theorem Int.natAbs_mul_self + theorem Int.natAbs_neg + theorem Int.natAbs_ofNat + theorem Int.natAbs_one + theorem Int.natAbs_pos_of_ne_zero + theorem Int.natAbs_zero - def Int.nat_abs - theorem Int.nat_abs_eq - theorem Int.nat_abs_mul_self - theorem Int.nat_abs_neg - theorem Int.nat_abs_of_nat - theorem Int.nat_abs_one - theorem Int.nat_abs_pos_of_ne_zero - theorem Int.nat_abs_zero - def Int.nat_mod + theorem Int.negOfNat_add + theorem Int.negOfNat_eq_subNatNat_zero + theorem Int.negOfNat_mul_negSucc_ofNat + theorem Int.negOfNat_mul_ofNat + theorem Int.negSucc_ofNat_add_negSucc_ofNat + theorem Int.negSucc_ofNat_add_ofNat + theorem Int.negSucc_ofNat_coe' + theorem Int.negSucc_ofNat_coe + theorem Int.negSucc_ofNat_eq + theorem Int.negSucc_ofNat_inj_iff + theorem Int.negSucc_ofNat_mul_negOfNat + theorem Int.negSucc_ofNat_mul_subNatNat + theorem Int.negSucc_ofNat_ofNat + theorem Int.neg_neg_ofNat_succ - theorem Int.neg_neg_of_nat_succ + theorem Int.neg_ofNat_of_succ + theorem Int.neg_ofNat_zero - def Int.neg_of_nat - theorem Int.neg_of_nat_add - theorem Int.neg_of_nat_eq_sub_nat_nat_zero - theorem Int.neg_of_nat_mul_neg_succ_of_nat - theorem Int.neg_of_nat_mul_of_nat - theorem Int.neg_of_nat_of_succ - theorem Int.neg_of_nat_zero - theorem Int.neg_succ_of_nat_add_neg_succ_of_nat - theorem Int.neg_succ_of_nat_add_of_nat - theorem Int.neg_succ_of_nat_coe' - theorem Int.neg_succ_of_nat_coe - theorem Int.neg_succ_of_nat_eq - theorem Int.neg_succ_of_nat_inj_iff - theorem Int.neg_succ_of_nat_mul_neg_of_nat - theorem Int.neg_succ_of_nat_mul_sub_nat_nat - theorem Int.neg_succ_of_nat_of_nat - def Int.nonneg + theorem Int.ofNat_add + theorem Int.ofNat_add_negSucc_ofNat + theorem Int.ofNat_add_ofNat + theorem Int.ofNat_eq_ofNat_iff + theorem Int.ofNat_mul + theorem Int.ofNat_mul_negOfNat + theorem Int.ofNat_mul_negSucc_ofNat + theorem Int.ofNat_mul_ofNat + theorem Int.ofNat_mul_subNatNat + theorem Int.ofNat_one + theorem Int.ofNat_sub + theorem Int.ofNat_succ + theorem Int.ofNat_zero - theorem Int.of_nat_add - theorem Int.of_nat_add_neg_succ_of_nat - theorem Int.of_nat_add_of_nat - theorem Int.of_nat_eq_coe - theorem Int.of_nat_eq_of_nat_iff - theorem Int.of_nat_mul - theorem Int.of_nat_mul_neg_of_nat - theorem Int.of_nat_mul_neg_succ_of_nat - theorem Int.of_nat_mul_of_nat - theorem Int.of_nat_mul_sub_nat_nat - theorem Int.of_nat_one - theorem Int.of_nat_sub - theorem Int.of_nat_succ - theorem Int.of_nat_zero + theorem Int.sign_mul_natAbs - theorem Int.sign_mul_nat_abs + theorem Int.subNatNat_add + theorem Int.subNatNat_add_add + theorem Int.subNatNat_add_left + theorem Int.subNatNat_add_negSucc_ofNat + theorem Int.subNatNat_add_right + theorem Int.subNatNat_elim + theorem Int.subNatNat_of_le + theorem Int.subNatNat_of_lt + theorem Int.subNatNat_of_sub_eq_succ + theorem Int.subNatNat_of_sub_eq_zero + theorem Int.subNatNat_sub - def Int.sub_nat_nat - theorem Int.sub_nat_nat_add - theorem Int.sub_nat_nat_add_add - theorem Int.sub_nat_nat_add_left - theorem Int.sub_nat_nat_add_neg_succ_of_nat - theorem Int.sub_nat_nat_add_right - theorem Int.sub_nat_nat_elim - theorem Int.sub_nat_nat_of_le - theorem Int.sub_nat_nat_of_lt - theorem Int.sub_nat_nat_of_sub_eq_succ - theorem Int.sub_nat_nat_of_sub_eq_zero - theorem Int.sub_nat_nat_sub +/- theorem Int.sub_nat_self + theorem Int.toNat_sub - def Int.to_nat - theorem Int.to_nat_sub Modified Mathlib/Data/List/Card.lean Modified Mathlib/Data/Subtype.lean - theorem Subtype.coe_prop - theorem Subtype.val_eq_coe +/- theorem Subtype.val_prop Modified Mathlib/Init/Logic.lean + theorem And.left_comm + theorem Bool.ff_ne_tt - theorem and_left_comm - theorem bool.ff_ne_tt Modified Mathlib/Logic/Basic.lean + theorem And.congr_left_iff + theorem And.congr_right_iff + theorem And.imp_left + theorem And.imp_right + theorem And.right_comm + theorem And.rotate + theorem Decidable.iff_iff_not_or_and_or_not + theorem Decidable.not_imp_self + theorem Not.decidable_imp_symm + theorem Not.imp_symm + theorem Or.elim3 + theorem and_congr_left' + theorem and_congr_left + theorem and_congr_right' + theorem and_iff_left_iff_imp + theorem and_iff_left_of_imp + theorem and_iff_not_or_not + theorem and_iff_right_iff_imp + theorem and_iff_right_of_imp + theorem and_not_self_iff + theorem and_or_distrib_left + theorem and_or_distrib_right + theorem and_self_left + theorem and_self_right + theorem by_contra + def decidable_of_bool + def decidable_of_iff' +/- def decidable_of_iff + theorem iff_and_self + theorem iff_false_left + theorem iff_false_right + theorem iff_iff_and_or_not_and_not + theorem iff_iff_not_or_and_or_not + theorem iff_mpr_iff_true_intro + theorem iff_not_comm + theorem iff_of_false + theorem iff_of_true + theorem iff_self_and + theorem iff_true_left + theorem iff_true_right + theorem imp.swap + theorem imp_iff_not_or + theorem imp_imp_imp + theorem imp_not_comm + theorem imp_not_self + theorem imp_or_distrib' + theorem imp_or_distrib + theorem not_and' + theorem not_and_distrib + theorem not_and_not_right + theorem not_and_of_not_left + theorem not_and_of_not_or_not + theorem not_and_of_not_right + theorem not_and_self_iff + theorem not_iff + theorem not_iff_comm + theorem not_iff_not + theorem not_imp + theorem not_imp_comm + theorem not_imp_not + theorem not_imp_of_and_not + theorem not_imp_self + theorem not_not + theorem not_or_distrib + theorem not_or_of_imp + theorem of_not_imp + theorem of_not_not - theorem or.elim3 + theorem or_and_distrib_left + theorem or_and_distrib_right + theorem or_iff_left_iff_imp + theorem or_iff_not_and_not + theorem or_iff_not_imp_left + theorem or_iff_not_imp_right + theorem or_iff_right_iff_imp + theorem or_self_left + theorem or_self_right + theorem peirce' + theorem peirce + theorem xor_comm + theorem xor_false + theorem xor_self + theorem xor_true Added Mathlib/Tactic/Coe.lean 2021-08-18 12:36:12+10:00 dea9d0d test(Tactic/Ring): a test case causing a panic ESTIMATED CHANGES Added Mathlib/Test/Ring.lean 2021-08-18 12:21:15+10:00 b14f53b feat(Util/Time): #time command ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Data/Int/Basic.lean +/- theorem Int.eq_x_or_neg - theorem Int.eq_zero_ofNatAbs_eq_zero + theorem Int.eq_zero_of_nat_abs_eq_zero +/- def Int.gcd - theorem Int.mul_negSucc_ofNat_negSucc_ofNat + theorem Int.mul_neg_succ_of_nat_neg_succ_of_nat - theorem Int.natAbs_eq - theorem Int.natAbs_mul_self - theorem Int.natAbs_neg - theorem Int.natAbs_ofNat - theorem Int.natAbs_one - theorem Int.natAbs_pos_of_ne_zero - theorem Int.natAbs_zero + def Int.nat_abs + theorem Int.nat_abs_eq + theorem Int.nat_abs_mul_self + theorem Int.nat_abs_neg + theorem Int.nat_abs_of_nat + theorem Int.nat_abs_one + theorem Int.nat_abs_pos_of_ne_zero + theorem Int.nat_abs_zero + def Int.nat_mod - theorem Int.negOfNat_add - theorem Int.negOfNat_eq_subNatNat_zero - theorem Int.negOfNat_mul_negSucc_ofNat - theorem Int.negOfNat_mul_ofNat - theorem Int.negSucc_ofNat_add_negSucc_ofNat - theorem Int.negSucc_ofNat_add_ofNat - theorem Int.negSucc_ofNat_coe' - theorem Int.negSucc_ofNat_coe - theorem Int.negSucc_ofNat_eq - theorem Int.negSucc_ofNat_inj_iff - theorem Int.negSucc_ofNat_mul_negOfNat - theorem Int.negSucc_ofNat_mul_subNatNat - theorem Int.negSucc_ofNat_ofNat - theorem Int.neg_neg_ofNat_succ + theorem Int.neg_neg_of_nat_succ - theorem Int.neg_ofNat_of_succ - theorem Int.neg_ofNat_zero + def Int.neg_of_nat + theorem Int.neg_of_nat_add + theorem Int.neg_of_nat_eq_sub_nat_nat_zero + theorem Int.neg_of_nat_mul_neg_succ_of_nat + theorem Int.neg_of_nat_mul_of_nat + theorem Int.neg_of_nat_of_succ + theorem Int.neg_of_nat_zero + theorem Int.neg_succ_of_nat_add_neg_succ_of_nat + theorem Int.neg_succ_of_nat_add_of_nat + theorem Int.neg_succ_of_nat_coe' + theorem Int.neg_succ_of_nat_coe + theorem Int.neg_succ_of_nat_eq + theorem Int.neg_succ_of_nat_inj_iff + theorem Int.neg_succ_of_nat_mul_neg_of_nat + theorem Int.neg_succ_of_nat_mul_sub_nat_nat + theorem Int.neg_succ_of_nat_of_nat + def Int.nonneg - theorem Int.ofNat_add - theorem Int.ofNat_add_negSucc_ofNat - theorem Int.ofNat_add_ofNat - theorem Int.ofNat_eq_ofNat_iff - theorem Int.ofNat_mul - theorem Int.ofNat_mul_negOfNat - theorem Int.ofNat_mul_negSucc_ofNat - theorem Int.ofNat_mul_ofNat - theorem Int.ofNat_mul_subNatNat - theorem Int.ofNat_one - theorem Int.ofNat_sub - theorem Int.ofNat_succ - theorem Int.ofNat_zero + theorem Int.of_nat_add + theorem Int.of_nat_add_neg_succ_of_nat + theorem Int.of_nat_add_of_nat + theorem Int.of_nat_eq_coe + theorem Int.of_nat_eq_of_nat_iff + theorem Int.of_nat_mul + theorem Int.of_nat_mul_neg_of_nat + theorem Int.of_nat_mul_neg_succ_of_nat + theorem Int.of_nat_mul_of_nat + theorem Int.of_nat_mul_sub_nat_nat + theorem Int.of_nat_one + theorem Int.of_nat_sub + theorem Int.of_nat_succ + theorem Int.of_nat_zero - theorem Int.sign_mul_natAbs + theorem Int.sign_mul_nat_abs - theorem Int.subNatNat_add - theorem Int.subNatNat_add_add - theorem Int.subNatNat_add_left - theorem Int.subNatNat_add_negSucc_ofNat - theorem Int.subNatNat_add_right - theorem Int.subNatNat_elim - theorem Int.subNatNat_of_le - theorem Int.subNatNat_of_lt - theorem Int.subNatNat_of_sub_eq_succ - theorem Int.subNatNat_of_sub_eq_zero - theorem Int.subNatNat_sub + def Int.sub_nat_nat + theorem Int.sub_nat_nat_add + theorem Int.sub_nat_nat_add_add + theorem Int.sub_nat_nat_add_left + theorem Int.sub_nat_nat_add_neg_succ_of_nat + theorem Int.sub_nat_nat_add_right + theorem Int.sub_nat_nat_elim + theorem Int.sub_nat_nat_of_le + theorem Int.sub_nat_nat_of_lt + theorem Int.sub_nat_nat_of_sub_eq_succ + theorem Int.sub_nat_nat_of_sub_eq_zero + theorem Int.sub_nat_nat_sub +/- theorem Int.sub_nat_self - theorem Int.toNat_sub + def Int.to_nat + theorem Int.to_nat_sub Modified Mathlib/Data/List/Card.lean Modified Mathlib/Data/Subtype.lean + theorem Subtype.coe_prop + theorem Subtype.val_eq_coe +/- theorem Subtype.val_prop Modified Mathlib/Init/Logic.lean - theorem And.left_comm - theorem Bool.ff_ne_tt + theorem and_left_comm + theorem bool.ff_ne_tt Modified Mathlib/Logic/Basic.lean - theorem And.congr_left_iff - theorem And.congr_right_iff - theorem And.imp_left - theorem And.imp_right - theorem And.right_comm - theorem And.rotate - theorem Decidable.iff_iff_not_or_and_or_not - theorem Decidable.not_imp_self - theorem Not.decidable_imp_symm - theorem Not.imp_symm - theorem Or.elim3 - theorem and_congr_left' - theorem and_congr_left - theorem and_congr_right' - theorem and_iff_left_iff_imp - theorem and_iff_left_of_imp - theorem and_iff_not_or_not - theorem and_iff_right_iff_imp - theorem and_iff_right_of_imp - theorem and_not_self_iff - theorem and_or_distrib_left - theorem and_or_distrib_right - theorem and_self_left - theorem and_self_right - theorem by_contra - def decidable_of_bool - def decidable_of_iff' +/- def decidable_of_iff - theorem iff_and_self - theorem iff_false_left - theorem iff_false_right - theorem iff_iff_and_or_not_and_not - theorem iff_iff_not_or_and_or_not - theorem iff_mpr_iff_true_intro - theorem iff_not_comm - theorem iff_of_false - theorem iff_of_true - theorem iff_self_and - theorem iff_true_left - theorem iff_true_right - theorem imp.swap - theorem imp_iff_not_or - theorem imp_imp_imp - theorem imp_not_comm - theorem imp_not_self - theorem imp_or_distrib' - theorem imp_or_distrib - theorem not_and' - theorem not_and_distrib - theorem not_and_not_right - theorem not_and_of_not_left - theorem not_and_of_not_or_not - theorem not_and_of_not_right - theorem not_and_self_iff - theorem not_iff - theorem not_iff_comm - theorem not_iff_not - theorem not_imp - theorem not_imp_comm - theorem not_imp_not - theorem not_imp_of_and_not - theorem not_imp_self - theorem not_not - theorem not_or_distrib - theorem not_or_of_imp - theorem of_not_imp - theorem of_not_not + theorem or.elim3 - theorem or_and_distrib_left - theorem or_and_distrib_right - theorem or_iff_left_iff_imp - theorem or_iff_not_and_not - theorem or_iff_not_imp_left - theorem or_iff_not_imp_right - theorem or_iff_right_iff_imp - theorem or_self_left - theorem or_self_right - theorem peirce' - theorem peirce - theorem xor_comm - theorem xor_false - theorem xor_self - theorem xor_true Deleted Mathlib/Tactic/Coe.lean Added Mathlib/Util/Time.lean + def timeCmdElab 2021-08-17 15:37:29+02:00 7bb2952 chore(Data.Int.Basic): naming convention, duplicate lemmasc ESTIMATED CHANGES Modified Mathlib/Data/Int/Basic.lean +/- theorem Int.eq_x_or_neg + theorem Int.eq_zero_ofNatAbs_eq_zero - theorem Int.eq_zero_of_nat_abs_eq_zero +/- def Int.gcd + theorem Int.mul_negSucc_ofNat_negSucc_ofNat - theorem Int.mul_neg_succ_of_nat_neg_succ_of_nat + theorem Int.natAbs_eq + theorem Int.natAbs_mul_self + theorem Int.natAbs_neg + theorem Int.natAbs_ofNat + theorem Int.natAbs_one + theorem Int.natAbs_pos_of_ne_zero + theorem Int.natAbs_zero - def Int.nat_abs - theorem Int.nat_abs_eq - theorem Int.nat_abs_mul_self - theorem Int.nat_abs_neg - theorem Int.nat_abs_of_nat - theorem Int.nat_abs_one - theorem Int.nat_abs_pos_of_ne_zero - theorem Int.nat_abs_zero - def Int.nat_mod + theorem Int.negOfNat_add + theorem Int.negOfNat_eq_subNatNat_zero + theorem Int.negOfNat_mul_negSucc_ofNat + theorem Int.negOfNat_mul_ofNat + theorem Int.negSucc_ofNat_add_negSucc_ofNat + theorem Int.negSucc_ofNat_add_ofNat + theorem Int.negSucc_ofNat_coe' + theorem Int.negSucc_ofNat_coe + theorem Int.negSucc_ofNat_eq + theorem Int.negSucc_ofNat_inj_iff + theorem Int.negSucc_ofNat_mul_negOfNat + theorem Int.negSucc_ofNat_mul_subNatNat + theorem Int.negSucc_ofNat_ofNat + theorem Int.neg_neg_ofNat_succ - theorem Int.neg_neg_of_nat_succ + theorem Int.neg_ofNat_of_succ + theorem Int.neg_ofNat_zero - def Int.neg_of_nat - theorem Int.neg_of_nat_add - theorem Int.neg_of_nat_eq_sub_nat_nat_zero - theorem Int.neg_of_nat_mul_neg_succ_of_nat - theorem Int.neg_of_nat_mul_of_nat - theorem Int.neg_of_nat_of_succ - theorem Int.neg_of_nat_zero - theorem Int.neg_succ_of_nat_add_neg_succ_of_nat - theorem Int.neg_succ_of_nat_add_of_nat - theorem Int.neg_succ_of_nat_coe' - theorem Int.neg_succ_of_nat_coe - theorem Int.neg_succ_of_nat_eq - theorem Int.neg_succ_of_nat_inj_iff - theorem Int.neg_succ_of_nat_mul_neg_of_nat - theorem Int.neg_succ_of_nat_mul_sub_nat_nat - theorem Int.neg_succ_of_nat_of_nat - def Int.nonneg + theorem Int.ofNat_add + theorem Int.ofNat_add_negSucc_ofNat + theorem Int.ofNat_add_ofNat + theorem Int.ofNat_eq_ofNat_iff + theorem Int.ofNat_mul + theorem Int.ofNat_mul_negOfNat + theorem Int.ofNat_mul_negSucc_ofNat + theorem Int.ofNat_mul_ofNat + theorem Int.ofNat_mul_subNatNat + theorem Int.ofNat_one + theorem Int.ofNat_sub + theorem Int.ofNat_succ + theorem Int.ofNat_zero - theorem Int.of_nat_add - theorem Int.of_nat_add_neg_succ_of_nat - theorem Int.of_nat_add_of_nat - theorem Int.of_nat_eq_coe - theorem Int.of_nat_eq_of_nat_iff - theorem Int.of_nat_mul - theorem Int.of_nat_mul_neg_of_nat - theorem Int.of_nat_mul_neg_succ_of_nat - theorem Int.of_nat_mul_of_nat - theorem Int.of_nat_mul_sub_nat_nat - theorem Int.of_nat_one - theorem Int.of_nat_sub - theorem Int.of_nat_succ - theorem Int.of_nat_zero + theorem Int.sign_mul_natAbs - theorem Int.sign_mul_nat_abs + theorem Int.subNatNat_add + theorem Int.subNatNat_add_add + theorem Int.subNatNat_add_left + theorem Int.subNatNat_add_negSucc_ofNat + theorem Int.subNatNat_add_right + theorem Int.subNatNat_elim + theorem Int.subNatNat_of_le + theorem Int.subNatNat_of_lt + theorem Int.subNatNat_of_sub_eq_succ + theorem Int.subNatNat_of_sub_eq_zero + theorem Int.subNatNat_sub - def Int.sub_nat_nat - theorem Int.sub_nat_nat_add - theorem Int.sub_nat_nat_add_add - theorem Int.sub_nat_nat_add_left - theorem Int.sub_nat_nat_add_neg_succ_of_nat - theorem Int.sub_nat_nat_add_right - theorem Int.sub_nat_nat_elim - theorem Int.sub_nat_nat_of_le - theorem Int.sub_nat_nat_of_lt - theorem Int.sub_nat_nat_of_sub_eq_succ - theorem Int.sub_nat_nat_of_sub_eq_zero - theorem Int.sub_nat_nat_sub +/- theorem Int.sub_nat_self + theorem Int.toNat_sub - def Int.to_nat - theorem Int.to_nat_sub 2021-08-17 15:24:56+02:00 323e428 Expand ↑-notation. (#37) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Data/Int/Basic.lean Modified Mathlib/Data/Subtype.lean - theorem Subtype.coe_prop - theorem Subtype.val_eq_coe +/- theorem Subtype.val_prop Added Mathlib/Tactic/Coe.lean 2021-08-17 10:02:56+02:00 51e2314 port remaining items from 'section propositional' in logic/basic (#36) ESTIMATED CHANGES Modified Mathlib/Data/List/Card.lean Modified Mathlib/Init/Logic.lean + theorem And.left_comm + theorem Bool.ff_ne_tt - theorem and_left_comm - theorem bool.ff_ne_tt Modified Mathlib/Logic/Basic.lean + theorem And.congr_left_iff + theorem And.congr_right_iff + theorem And.imp_left + theorem And.imp_right + theorem And.right_comm + theorem And.rotate + theorem Decidable.iff_iff_not_or_and_or_not + theorem Decidable.not_imp_self + theorem Not.decidable_imp_symm + theorem Not.imp_symm + theorem Or.elim3 + theorem and_congr_left' + theorem and_congr_left + theorem and_congr_right' + theorem and_iff_left_iff_imp + theorem and_iff_left_of_imp + theorem and_iff_not_or_not + theorem and_iff_right_iff_imp + theorem and_iff_right_of_imp + theorem and_not_self_iff + theorem and_or_distrib_left + theorem and_or_distrib_right + theorem and_self_left + theorem and_self_right + theorem by_contra + def decidable_of_bool + def decidable_of_iff' +/- def decidable_of_iff + theorem iff_and_self + theorem iff_false_left + theorem iff_false_right + theorem iff_iff_and_or_not_and_not + theorem iff_iff_not_or_and_or_not + theorem iff_mpr_iff_true_intro + theorem iff_not_comm + theorem iff_of_false + theorem iff_of_true + theorem iff_self_and + theorem iff_true_left + theorem iff_true_right + theorem imp.swap + theorem imp_iff_not_or + theorem imp_imp_imp + theorem imp_not_comm + theorem imp_not_self + theorem imp_or_distrib' + theorem imp_or_distrib + theorem not_and' + theorem not_and_distrib + theorem not_and_not_right + theorem not_and_of_not_left + theorem not_and_of_not_or_not + theorem not_and_of_not_right + theorem not_and_self_iff + theorem not_iff + theorem not_iff_comm + theorem not_iff_not + theorem not_imp + theorem not_imp_comm + theorem not_imp_not + theorem not_imp_of_and_not + theorem not_imp_self + theorem not_not + theorem not_or_distrib + theorem not_or_of_imp + theorem of_not_imp + theorem of_not_not - theorem or.elim3 + theorem or_and_distrib_left + theorem or_and_distrib_right + theorem or_iff_left_iff_imp + theorem or_iff_not_and_not + theorem or_iff_not_imp_left + theorem or_iff_not_imp_right + theorem or_iff_right_iff_imp + theorem or_self_left + theorem or_self_right + theorem peirce' + theorem peirce + theorem xor_comm + theorem xor_false + theorem xor_self + theorem xor_true 2021-08-16 20:42:16+02:00 e104896 ring tactic (#33) * aligned tactic names to mathport * added byContra tactic * added guardExprEq guardTarget guardHyp * added introv * Update Mathlib/Tactic/Basic.lean * Update Mathlib/Tactic/Basic.lean * added exacts * use of elab and examples * matchTarget * byContra all cases * sorry & iterate * fix : get to build * fix : get to build * fix : get to build 3 * fix : alpha eq in guardHyp but consuming mdata * feat : repeat' tactic * feat : anyGoals tactic * feat(Algebra/Group/Defs): Monoid lemmas * feat(Tactic/Ring): starting ring * fix: fixed normNum * fix : compatibility Numeric.ofNat with One.one and Zero.zero * fix : removed print * fix: fixed normNum * feat: ring with only additions and one variable * feat: ring tactic furnctional for addition and multiplication * feat(Algebra) : more lemmas * feat (Tactic/NormNum) : normNum exponentiation * feat (Tactic/Ring) : exponentiation for ring * fix : updated with new version of mkNatLit * fix : import ring * chore : update to newer lean version * doc (Tactic/Ring) : add author * fix(Algebra/Group/Defs) : Monoid.npow * chore(Tactic/Ring) : updated to new lean version ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Group/Defs.lean +/- theorem mul_one + theorem mul_pow +/- theorem npow_eq_pow - theorem npow_succ' - theorem npow_zero' +/- theorem one_mul + theorem pow_add + theorem pow_mul + theorem pow_mul_comm + theorem pow_one + theorem pow_succ' + theorem pow_succ + theorem pow_zero Modified Mathlib/Algebra/Ring/Basic.lean + theorem Nat.ofNat_eq_Nat + theorem Semiring.ofNat_pow + theorem add_mul + theorem mul_add + theorem mul_zero + theorem zero_mul Modified Mathlib/Tactic/NormNum.lean + theorem Lean.Meta.NormNum.ofNat_pow Added Mathlib/Tactic/Ring.lean + def Lean.Expr.getAppFnAndArgs + structure Tactic.Ring.Cache + def Tactic.Ring.HornerExpr.e + def Tactic.Ring.HornerExpr.isZero + def Tactic.Ring.HornerExpr.pp + def Tactic.Ring.HornerExpr.reflConv + def Tactic.Ring.HornerExpr.xadd' + inductive Tactic.Ring.HornerExpr + structure Tactic.Ring.State + def Tactic.Ring.addAtom + theorem Tactic.Ring.const_add_horner + def Tactic.Ring.evalAtom + def Tactic.Ring.evalConstMul + def Tactic.Ring.evalHorner + def Tactic.Ring.horner + theorem Tactic.Ring.horner_add_const + theorem Tactic.Ring.horner_add_horner_eq + theorem Tactic.Ring.horner_add_horner_gt + theorem Tactic.Ring.horner_add_horner_lt + theorem Tactic.Ring.horner_atom + theorem Tactic.Ring.horner_const_mul + theorem Tactic.Ring.horner_horner + theorem Tactic.Ring.horner_mul_const + theorem Tactic.Ring.horner_mul_horner + theorem Tactic.Ring.horner_mul_horner_zero + theorem Tactic.Ring.horner_pow + theorem Tactic.Ring.pow_succ_eq + def Tactic.Ring.run + theorem Tactic.Ring.subst_into_add + theorem Tactic.Ring.subst_into_mul + theorem Tactic.Ring.subst_into_pow + theorem Tactic.Ring.zero_horner 2021-08-16 15:51:10+02:00 9e1c8d9 Use built-in multiple-source syntax for spreads. That is, elaborate `{ __ := foo }` into `{ foo with }`. This is still useful in where clauses: ```lean instance : Ring Bool where __ := instSemiringBool -- ... ``` ESTIMATED CHANGES Modified Mathlib/Tactic/Spread.lean - def Lean.Term.Elab.elabSpread 2021-08-16 10:12:18+02:00 d903df0 Update Lean version. ESTIMATED CHANGES Modified Mathlib/Data/Int/Basic.lean +/- theorem Int.to_nat_sub Modified Mathlib/Tactic/Block.lean Modified Mathlib/Tactic/NoMatch.lean Modified leanpkg.toml 2021-08-16 10:06:49+02:00 82d3af9 move Mathlib/Algebra/Order.lean to Mathlib/Init/Algebra/Order.lean (#35) ESTIMATED CHANGES Modified Mathlib.lean Renamed Mathlib/Algebra/Order.lean to Mathlib/Init/Algebra/Order.lean 2021-08-12 12:17:29+02:00 b5285cb split out Lean 3 prelude items from Logic/Basic.lean to Init/Logic.lean (#34) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Init/Logic.lean + theorem And.assoc + theorem And.comm + def And.elim + theorem And.imp + theorem And.symm + def Decidable.by_cases + theorem Decidable.by_contradiction + theorem Decidable.not_not_iff + theorem Decidable.not_or_iff_and_not + def Decidable.to_bool + theorem Eq.to_iff + theorem ExistsUnique.elim + theorem ExistsUnique.intro + def ExistsUnique + def Iff.elim + def Iff.elim_left + def Iff.elim_right + theorem Ne.def + theorem Not.intro + theorem Or.assoc + theorem Or.comm + theorem Or.elim + theorem Or.elim_on + theorem Or.imp + theorem Or.imp_left + theorem Or.imp_right + theorem Or.left_comm + theorem Or.neg_resolve_left + theorem Or.neg_resolve_right + theorem Or.resolve_left + theorem Or.resolve_right + theorem Or.swap + theorem Or.symm + theorem and.swap + theorem and_assoc + theorem and_comm + theorem and_congr + theorem and_congr_right + theorem and_iff_left + theorem and_iff_right + theorem and_implies + theorem and_left_comm + theorem and_not_self + def as_false + def as_true + theorem bool.ff_ne_tt + theorem cast_proof_irrel + def congr_arg + def congr_fun + theorem decidable_eq_inl_refl + theorem decidable_eq_inr_neg + def decidable_eq_of_bool_pred + def decidable_of_decidable_of_eq + def decidable_of_decidable_of_iff + theorem dif_ctx_congr + theorem dif_ctx_simp_congr + theorem eq_comm + def eq_rec_heq + theorem eq_self_iff_true + theorem exists_congr + theorem exists_imp_exists + theorem exists_of_exists_unique + theorem exists_unique_congr + theorem exists_unique_of_exists_of_unique + theorem false_iff_true + theorem false_implies_iff + theorem false_of_true_eq_false + theorem false_of_true_iff_false + theorem forall_congr' + theorem forall_not_of_not_exists + theorem heq_of_eq_rec_left + theorem heq_of_eq_rec_right + theorem heq_self_iff_true + theorem if_congr + theorem if_congr_prop + theorem if_ctx_congr + theorem if_ctx_congr_prop + theorem if_ctx_simp_congr_prop + theorem if_false + theorem if_simp_congr_prop + theorem if_t_t + theorem if_true + theorem iff_congr + theorem iff_false_intro + theorem iff_not_self + theorem iff_true_intro + theorem imp_congr + theorem imp_congr_ctx + theorem imp_congr_left + theorem imp_congr_right + theorem implies_of_if_neg + theorem implies_of_if_pos + theorem implies_true_iff + def is_dec_eq + def is_dec_refl + theorem let_body_eq + theorem let_eq + theorem let_value_eq + theorem let_value_heq + theorem ne_self_iff_false + theorem neq_of_not_iff + def non_contradictory + theorem non_contradictory_em + theorem non_contradictory_intro + theorem not_and_self + theorem not_congr + theorem not_false_iff + theorem not_iff_false_intro + theorem not_iff_not_of_iff + theorem not_iff_self + theorem not_non_contradictory_iff_absurd + theorem not_not_intro + theorem not_of_eq_false + theorem not_of_iff_false + theorem not_of_not_not_not + theorem not_or + theorem not_or_intro + theorem not_true + theorem of_as_true + theorem of_heq_true + theorem of_iff_true + theorem opt_param_eq + theorem or_assoc + theorem or_comm + theorem or_congr + theorem or_iff_left_of_imp + theorem or_iff_right_of_imp + theorem plift.down_up + theorem plift.up_down + structure plift + def proof_irrel + theorem to_bool_false_eq_ff + theorem to_bool_true_eq_tt + theorem trans_rel_left + theorem trans_rel_right + theorem true_eq_false_of_false + theorem true_iff_false + theorem true_implies_iff + theorem ulift.down_up + theorem ulift.up_down + structure ulift.{r, + theorem unique_of_exists_unique + def xor Modified Mathlib/Logic/Basic.lean - def And.elim - theorem And.imp - theorem And.symm - def Decidable.by_cases - def Decidable.by_contradiction + theorem Decidable.eq_or_ne + theorem Decidable.ne_or_eq + def Empty.elim - theorem Eq.to_iff + theorem Exists.choose_spec +/- theorem Exists.imp - theorem ExistsUnique.intro - theorem ExistsUnique.unique - def ExistsUnique - def Iff.elim - def Iff.elim_left - def Iff.elim_right - theorem Ne.def +/- def Not.elim + theorem Not.imp - theorem Not.intro - def Or.by_cases - theorem Or.elim - theorem Or.imp - theorem Or.imp_left - theorem Or.imp_right - theorem Or.neg_resolve_left - theorem Or.neg_resolve_right - theorem Or.resolve_left - theorem Or.resolve_right - theorem Or.symm - theorem and_assoc - theorem and_comm - theorem and_congr - theorem and_congr_right - theorem and_iff_left - theorem and_iff_right - theorem and_left_comm - theorem and_not_self + theorem by_contradiction - theorem cast_proof_irrel - def congr_arg - def congr_fun + theorem dec_em' + theorem dec_em - def decidable_of_decidable_of_iff + theorem em' + theorem em - theorem eq_comm + theorem eq_iff_iff + theorem eq_or_ne - def eq_rec_heq - theorem eq_self_iff_true - theorem exists_congr +/- theorem exists_imp_distrib + theorem exists_imp_exists' - theorem exists_unique_congr + theorem exists₂_congr + theorem exists₃_congr + theorem exists₄_congr - theorem false_imp_iff + theorem false_ne_true - theorem forall_congr' + theorem forall_imp - theorem forall_not_of_not_exists + theorem forall₂_congr + theorem forall₃_congr + theorem forall₄_congr - theorem heq_of_eq_rec_left - theorem heq_of_eq_rec_right - theorem heq_self_iff_true + def hidden - theorem if_false - theorem if_true - theorem iff_comm - theorem iff_congr + theorem iff_def' + theorem iff_def - theorem iff_false_intro + theorem iff_iff_eq - theorem iff_not_self - theorem iff_true_intro + theorem imp_and_distrib - theorem imp_congr - theorem imp_congr_ctx - theorem imp_congr_left - theorem imp_congr_right + theorem imp_false + theorem imp_iff_right + theorem imp_intro + theorem imp_self +/- theorem imp_true_iff + theorem ne_or_eq - theorem ne_self_iff_false - theorem neq_of_not_iff +/- theorem not.decidable_imp_symm - theorem not_and_self - theorem not_congr +/- theorem not_exists + theorem not_exists_of_forall_not - theorem not_false_iff - theorem not_iff_false_intro - theorem not_iff_not_of_iff - theorem not_iff_self - theorem not_not_intro + theorem not_not_of_not_imp - theorem not_of_eq_false - theorem not_of_iff_false + theorem not_of_not_imp - theorem not_or - theorem not_or_intro - theorem not_true - theorem of_heq_true - theorem of_iff_true + theorem or.elim3 + theorem or.right_comm - theorem or_assoc - theorem or_comm - theorem or_congr + theorem or_congr_left + theorem or_congr_right + theorem or_not + theorem or_of_or_of_imp_left + theorem or_of_or_of_imp_of_imp + theorem or_of_or_of_imp_right - theorem plift.down_up - theorem plift.up_down - structure plift - def proof_irrel + theorem proof_irrel_heq - theorem ulift.down_up - theorem ulift.up_down - structure ulift.{r, Modified Mathlib/Logic/Function/Basic.lean 2021-08-12 12:16:55+02:00 3ce73ce Tactic implementations (#30) * aligned tactic names to mathport * added byContra tactic * added guardExprEq guardTarget guardHyp * added introv * Update Mathlib/Tactic/Basic.lean * Update Mathlib/Tactic/Basic.lean * added exacts * use of elab and examples * matchTarget * byContra all cases * sorry & iterate * fix : get to build * fix : get to build * fix : get to build 3 * fix : alpha eq in guardHyp but consuming mdata * feat : repeat' tactic * feat : anyGoals tactic * feat(Algebra/Group/Defs): Monoid lemmas ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Defs.lean +/- theorem mul_one + theorem npow_eq_pow + theorem npow_succ' + theorem npow_zero' +/- theorem one_mul Modified Mathlib/Tactic/Basic.lean 2021-08-11 18:47:33+02:00 bb29f49 update lean to nightly-2021-08-11 (#32) ESTIMATED CHANGES Modified Mathlib/Algebra/Ring/Basic.lean Modified Mathlib/Data/Array/Basic.lean + theorem Array.toArrayLit_eq' - theorem Array.toArrayLit_eq Modified Mathlib/Data/ByteArray.lean Modified Mathlib/Data/Int/Basic.lean Modified Mathlib/Data/List/Basic.lean Modified Mathlib/Data/Nat/Basic.lean - def Nat.eq_of_beq_eq_true - def Nat.eq_zero_of_le_zero - theorem Nat.eq_zero_or_pos - def Nat.le_add_left - def Nat.le_add_right - def Nat.le_of_lt_succ - def Nat.le_of_succ_le - def Nat.le_of_succ_le_succ - def Nat.le_step - def Nat.le_succ - def Nat.le_succ_of_le - def Nat.lt_of_succ_le - def Nat.lt_of_succ_lt - def Nat.lt_or_eq_of_le_succ - def Nat.lt_succ_self - def Nat.nat_zero_eq_zero - def Nat.ne_of_beq_eq_false - def Nat.not_lt_zero - def Nat.not_succ_le_self - theorem Nat.not_succ_le_zero - def Nat.pos_pos_of_pos - def Nat.pow_le_pow_of_le_left - def Nat.pow_le_pow_of_le_right - def Nat.pow_succ - def Nat.pow_zero - def Nat.pred_le - def Nat.pred_le_pred - def Nat.pred_lt - def Nat.sub_le - def Nat.sub_lt - def Nat.succ_eq_add_one - def Nat.succ_le_of_lt - def Nat.succ_le_succ - def Nat.succ_ne_zero - def Nat.succ_pos - def Nat.zero_eq - def Nat.zero_le - def Nat.zero_lt_succ Modified Mathlib/Data/Nat/Gcd.lean Modified Mathlib/Data/UInt.lean Modified Mathlib/Logic/Basic.lean +/- theorem Decidable.not_and - def Decidable.of_not_not - theorem and_false - theorem and_self - theorem and_true - def cast_eq - def cast_heq - theorem dif_eq_if - def dif_neg - def dif_pos - def eq_of_heq +/- def eq_rec_heq - theorem false_and - theorem false_iff - def false_of_ne - theorem false_or + theorem forall_congr' - theorem forall_congr - def heq_of_eq - def heq_of_eq_of_heq - def heq_of_heq_of_eq - def if_neg - def if_pos - theorem iff_false - theorem iff_iff_implies_and_implies - theorem iff_self - theorem iff_true - def ne_false_of_self - def ne_true_of_not - def not_false - def of_eq_true - theorem optParam_eq - theorem or_false - theorem or_self - theorem or_true - theorem true_and - theorem true_iff - def true_ne_false - theorem true_or - def type_eq_of_heq Modified Mathlib/Logic/Function/Basic.lean +/- theorem Function.surj_inv_eq Modified leanpkg.toml 2021-08-11 09:28:26+02:00 5f8a207 update lean to nightly-2021-08-06 (#31) * update lean to nightly-2021-08-06 * rework to avoid non-terminal simp ESTIMATED CHANGES Modified Mathlib/Data/List/Basic.lean Modified Mathlib/Tactic/OpenPrivate.lean Modified Mathlib/Tactic/PrintPrefix.lean Modified leanpkg.toml 2021-08-03 14:34:21+02:00 7822926 Few tactic implementations (#27) * aligned tactic names to mathport * added byContra tactic * added guardExprEq guardTarget guardHyp * added introv * Update Mathlib/Tactic/Basic.lean * Update Mathlib/Tactic/Basic.lean * added exacts * use of elab and examples * matchTarget * byContra all cases * sorry & iterate * fix : get to build * fix : get to build * fix : get to build 3 ESTIMATED CHANGES Modified Mathlib/Tactic/Basic.lean + def evalGuardHyp 2021-08-03 11:55:32+02:00 1a8b123 feat(Data/Prod) port data/prod.lean (#28) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Data/Prod.lean + theorem Function.injective.prod_map + theorem Function.surjective.prod_map + theorem Prod.eq_iff_fst_eq_snd_eq + theorem Prod.exists' + theorem Prod.ext' + theorem Prod.ext_iff + theorem Prod.forall' + theorem Prod.fst_eq_iff + theorem Prod.fst_injective + theorem Prod.fst_surjective + theorem Prod.fst_swap + theorem Prod.id_prod + theorem Prod.lex_def + theorem Prod.map_comp_map + theorem Prod.map_def + theorem Prod.map_fst' + theorem Prod.map_fst + theorem Prod.map_map + theorem Prod.map_mk + theorem Prod.map_snd' + theorem Prod.map_snd + theorem Prod.mk.eta + theorem Prod.mk.inj_iff + theorem Prod.mk.inj_left + theorem Prod.mk.inj_right + theorem Prod.snd_eq_iff + theorem Prod.snd_injective + theorem Prod.snd_surjective + theorem Prod.snd_swap + def Prod.swap + theorem Prod.swap_bijective + theorem Prod.swap_inj + theorem Prod.swap_injective + theorem Prod.swap_left_inverse + theorem Prod.swap_prod_mk + theorem Prod.swap_right_inverse + theorem Prod.swap_surjective + theorem Prod.swap_swap + theorem Prod.swap_swap_eq + theorem Prod.«exists» + theorem Prod.«forall» + theorem prod_map Modified Mathlib/Logic/Basic.lean + def Iff.elim_left + def Iff.elim_right + def decidable_of_decidable_of_iff + theorem not_iff_not_of_iff 2021-08-03 11:53:15+02:00 191c247 feat(Data/Subtype) port data/subtype.lean from mathlib3 (#29) ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Data/Subtype.lean + theorem Subtype.coe_eq_iff + theorem Subtype.coe_eta + theorem Subtype.coe_injective + theorem Subtype.coe_mk + theorem Subtype.coe_prop + def Subtype.coind + theorem Subtype.coind_bijective + theorem Subtype.coind_injective + theorem Subtype.coind_surjective + theorem Subtype.equiv_iff + theorem Subtype.equivalence + theorem Subtype.ext_iff + theorem Subtype.ext_iff_val + theorem Subtype.ext_val + theorem Subtype.heq_iff_coe_eq + theorem Subtype.heq_iff_coe_heq + def Subtype.map + theorem Subtype.map_comp + theorem Subtype.map_id + theorem Subtype.map_injective + theorem Subtype.map_involutive + theorem Subtype.mk_eq_mk + theorem Subtype.prop + def Subtype.restrict + theorem Subtype.restrict_apply + theorem Subtype.restrict_def + theorem Subtype.restrict_injective + def Subtype.simps.coe + theorem Subtype.val_eq_coe + theorem Subtype.val_injective + theorem Subtype.val_prop Modified Mathlib/Logic/Basic.lean + theorem heq_iff_eq 2021-07-27 17:57:55+02:00 fe7587a feat(Logic/Function/Basic) port most remaining items (#26) * port logic/function/basic.lean up to update_idem * fill in hole in forall_update_iff proof * Finish most of the rest of Function/Basic * use block tactic ESTIMATED CHANGES Modified Mathlib/Logic/Basic.lean + theorem apply_dite + theorem apply_ite + theorem congr_arg2 + theorem dite_not + theorem eq_rec_constant + theorem exists_apply_eq_apply + theorem forall_const + theorem forall_prop_of_true + theorem ite_not Modified Mathlib/Logic/Function/Basic.lean + theorem Function.apply_update + def Function.bicompl + def Function.bicompr + theorem Function.bijective_iff_has_inverse + theorem Function.comp_update + theorem Function.curry_apply + theorem Function.eq_update_iff + theorem Function.extend_apply + theorem Function.extend_comp + theorem Function.extend_def + theorem Function.forall_update_iff + theorem Function.injective.has_left_inverse + theorem Function.injective2.eq_iff + def Function.injective2 + theorem Function.injective_iff_has_left_inverse + theorem Function.injective_surj_inv + theorem Function.inv_fun_comp + theorem Function.inv_fun_eq + theorem Function.inv_fun_eq_of_injective_of_right_inverse + theorem Function.inv_fun_neg + theorem Function.inv_fun_on_eq' + theorem Function.inv_fun_on_eq + theorem Function.inv_fun_on_mem + theorem Function.inv_fun_on_neg + theorem Function.inv_fun_on_pos + theorem Function.inv_fun_surjective + theorem Function.involutive.comp_self + def Function.involutive + theorem Function.left_inverse_inv_fun + theorem Function.left_inverse_surj_inv + theorem Function.right_inverse_inv_fun + theorem Function.right_inverse_surj_inv + theorem Function.sometimes_eq + theorem Function.sometimes_spec + theorem Function.surj_inv_eq + theorem Function.surjective.has_right_inverse + theorem Function.surjective_iff_has_right_inverse + theorem Function.surjective_to_subsingleton + theorem Function.uncurry_apply_pair + theorem Function.uncurry_bicompl + theorem Function.uncurry_bicompr + theorem Function.uncurry_def + def Function.update + theorem Function.update_apply + theorem Function.update_comm + theorem Function.update_comp_eq_of_forall_ne' + theorem Function.update_comp_eq_of_forall_ne + theorem Function.update_comp_eq_of_injective' + theorem Function.update_comp_eq_of_injective + theorem Function.update_eq_iff + theorem Function.update_eq_self + theorem Function.update_idem + theorem Function.update_injective + theorem Function.update_noteq + theorem Function.update_same + def set.piecewise + def set.separates_points 2021-07-27 16:28:52+02:00 e7cd8e7 Update Lean version. ESTIMATED CHANGES Modified leanpkg.toml 2021-07-12 11:41:04+02:00 1fd1cdc Update Lean version. ESTIMATED CHANGES Modified leanpkg.toml 2021-07-12 11:40:19+02:00 e99f68f feat(Data/List/Card): add a theory of cardinality for lists (#25) ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Data/List/Basic.lean + theorem List.cons_union + theorem List.mem_filter + theorem List.mem_filterAux + theorem List.mem_inter_iff + theorem List.mem_reverse + theorem List.mem_reverseAux + theorem List.mem_union_iff + theorem List.nil_union Added Mathlib/Data/List/Card.lean + def List.card + theorem List.card_append_disjoint + theorem List.card_cons_of_mem + theorem List.card_cons_of_not_mem + theorem List.card_eq_of_equiv + theorem List.card_insert_of_mem + theorem List.card_insert_of_not_mem + theorem List.card_le_card_cons + theorem List.card_map_eq_of_inj_on + theorem List.card_map_le + theorem List.card_nil + theorem List.card_remove_of_mem + theorem List.card_subset_le + theorem List.card_union_disjoint + def List.disjoint + theorem List.equiv_iff_subset_and_subset + def List.inj_on + theorem List.inj_on_of_subset + theorem List.insert_equiv_cons + theorem List.mem_of_mem_remove + theorem List.mem_remove_iff + def List.remove + theorem List.remove_eq_of_not_mem + theorem List.union_equiv_append Modified Mathlib/Logic/Basic.lean + theorem decide_eq_false_iff_not + theorem decide_eq_true_iff 2021-07-09 12:40:47-04:00 5212f0c feat(Data/List/Basic): start porting from mathlib (#22) * feat(Data/List/Basic): start porting from mathlib * fix(Mathlib): fix order of imports * fixes from Gabriel * fix set syntax ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Data/List/Basic.lean + theorem List.append_bind + theorem List.append_eq_has_append + theorem List.append_eq_nil + theorem List.append_ne_nil_of_ne_nil_left + theorem List.append_ne_nil_of_ne_nil_right + theorem List.append_subset_iff + theorem List.append_subset_of_subset_of_subset + theorem List.ball_cons + theorem List.ball_nil + theorem List.bex_cons + theorem List.bind_map + theorem List.cons_bind + theorem List.cons_ne_nil + theorem List.cons_ne_self + theorem List.cons_subset + theorem List.cons_subset_cons + theorem List.cons_subset_of_subset_of_mem + theorem List.empty_eq + theorem List.eq_nil_iff_forall_not_mem + theorem List.eq_nil_of_length_eq_zero + theorem List.eq_nil_of_subset_nil + theorem List.eq_of_mem_singleton + theorem List.eq_or_mem_of_mem_cons + theorem List.eq_or_mem_of_mem_insert + theorem List.eq_or_ne_mem_of_mem + theorem List.erase_append_left + theorem List.erase_append_right + theorem List.erase_cons + theorem List.erase_cons_head + theorem List.erase_cons_tail + theorem List.erase_eq_erasep + theorem List.erase_nil + theorem List.erase_of_not_mem + theorem List.erase_subset + def List.erasep + theorem List.erasep_append_left + theorem List.erasep_append_right + theorem List.erasep_cons + theorem List.erasep_cons_of_neg + theorem List.erasep_cons_of_pos + theorem List.erasep_map + theorem List.erasep_nil + theorem List.erasep_of_forall_not + theorem List.erasep_subset + theorem List.exists_cons_of_ne_nil + theorem List.exists_erase_eq + theorem List.exists_mem_cons_iff + theorem List.exists_mem_cons_of + theorem List.exists_mem_cons_of_exists + theorem List.exists_mem_of_length_pos + theorem List.exists_mem_of_ne_nil + theorem List.exists_of_erasep + theorem List.exists_of_length_succ + theorem List.exists_of_mem_bind + theorem List.exists_of_mem_join + theorem List.exists_of_mem_map + theorem List.exists_or_eq_self_of_erasep + theorem List.forall_mem_append + theorem List.forall_mem_cons + theorem List.forall_mem_map_iff + theorem List.forall_mem_nil + theorem List.forall_mem_of_forall_mem_cons + theorem List.forall_mem_singleton + theorem List.head_eq_of_cons_eq + def List.insert + theorem List.insert_of_mem + theorem List.insert_of_not_mem + theorem List.length_append + theorem List.length_eq_one + theorem List.length_eq_zero + theorem List.length_erase_of_mem + theorem List.length_erasep_of_mem + theorem List.length_insert_of_mem + theorem List.length_insert_of_not_mem + theorem List.length_map + theorem List.length_pos_iff_exists_mem + theorem List.length_pos_iff_ne_nil + theorem List.length_pos_of_mem + theorem List.length_pos_of_ne_nil + theorem List.length_singleton + theorem List.map_append + theorem List.map_eq_nil + theorem List.map_id + theorem List.map_map + theorem List.map_singleton + theorem List.map_subset +/- theorem List.mem_append + theorem List.mem_append_eq + theorem List.mem_append_left + theorem List.mem_append_right + theorem List.mem_bind_of_mem + theorem List.mem_cons_eq + theorem List.mem_cons_iff + theorem List.mem_cons_of_mem + theorem List.mem_cons_self + theorem List.mem_erase_of_ne + theorem List.mem_erasep_of_neg + theorem List.mem_insert_iff + theorem List.mem_insert_of_mem + theorem List.mem_insert_self + theorem List.mem_join_of_mem + theorem List.mem_map_of_mem + theorem List.mem_nil_iff + theorem List.mem_of_mem_cons_of_mem + theorem List.mem_of_mem_erase + theorem List.mem_of_mem_erasep + theorem List.mem_of_ne_of_mem + theorem List.mem_singleton + theorem List.mem_singleton_self + theorem List.mem_split + theorem List.ne_and_not_mem_of_not_mem_cons + theorem List.ne_nil_of_length_eq_succ + theorem List.ne_nil_of_length_pos + theorem List.ne_nil_of_mem + theorem List.ne_of_not_mem_cons + theorem List.nil_bind + theorem List.nil_eq_append_iff + theorem List.nil_subset + theorem List.not_bex_nil + theorem List.not_exists_mem_nil + theorem List.not_mem_append + theorem List.not_mem_cons_of_ne_of_not_mem + theorem List.not_mem_nil + theorem List.not_mem_of_not_mem_cons + theorem List.or_exists_of_exists_mem_cons + theorem List.singleton_append + theorem List.subset.refl + theorem List.subset.trans + theorem List.subset_append_left + theorem List.subset_append_of_subset_left + theorem List.subset_append_of_subset_right + theorem List.subset_append_right + theorem List.subset_cons + theorem List.subset_cons_of_subset + theorem List.subset_def + theorem List.subset_of_cons_subset + theorem List.tail_eq_of_cons_eq + theorem decidable.List.eq_or_ne_mem_of_mem Modified Mathlib/Data/Nat/Basic.lean Modified Mathlib/Logic/Basic.lean + theorem EqIffBeqTrue + theorem NeqIffBeqFalse + theorem and_imp + theorem exists_and_distrib_left + theorem exists_and_distrib_right + theorem exists_eq' + theorem exists_eq + theorem exists_eq_left' + theorem exists_eq_left + theorem exists_eq_right + theorem exists_false + theorem exists_imp_distrib + theorem forall_and_distrib + theorem forall_eq + theorem not.decidable_imp_symm + theorem not_and + theorem not_exists + theorem not_forall + theorem not_forall_of_exists_not + theorem or_imp_distrib Deleted Mathlib/Mem.lean Modified Mathlib/Set.lean Added Mathlib/SetNotation.lean 2021-07-09 12:32:08-04:00 2ea02e9 feat(Logic/Function) port everything up to partial_inv_left (#24) ESTIMATED CHANGES Modified Mathlib/Logic/Basic.lean + def decidable_of_iff + theorem iff_of_eq Modified Mathlib/Logic/Function/Basic.lean + theorem Function.bijective.exists_unique + theorem Function.bijective.of_comp_iff' + theorem Function.bijective.of_comp_iff + theorem Function.bijective_iff_exists_unique + theorem Function.cantor_injective + theorem Function.cantor_surjective + theorem Function.comp_apply + theorem Function.comp_const + theorem Function.const_apply + theorem Function.const_comp + theorem Function.const_def + def Function.eval + theorem Function.eval_apply + theorem Function.funext_iff + theorem Function.hfunext + theorem Function.id_def + def Function.injective.decidable_eq + theorem Function.injective.dite + theorem Function.injective.eq_iff' + theorem Function.injective.eq_iff + theorem Function.injective.ne + theorem Function.injective.ne_iff' + theorem Function.injective.ne_iff + theorem Function.injective.of_comp + theorem Function.injective.of_comp_iff' + theorem Function.injective.of_comp_iff + theorem Function.injective_of_partial_inv + theorem Function.injective_of_partial_inv_right + theorem Function.injective_of_subsingleton + def Function.is_partial_inv + theorem Function.is_partial_inv_left + theorem Function.left_inverse.comp_eq_id + theorem Function.left_inverse.eq_right_inverse + theorem Function.left_inverse.right_inverse + theorem Function.left_inverse.surjective + theorem Function.left_inverse_iff_comp + theorem Function.partial_inv_left + theorem Function.partial_inv_of_injective + theorem Function.right_inverse.comp_eq_id + theorem Function.right_inverse.injective + theorem Function.right_inverse.left_inverse + theorem Function.right_inverse_iff_comp + theorem Function.surjective.exists + theorem Function.surjective.exists₂ + theorem Function.surjective.exists₃ + theorem Function.surjective.forall + theorem Function.surjective.forall₂ + theorem Function.surjective.forall₃ + theorem Function.surjective.of_comp + theorem Function.surjective.of_comp_iff' + theorem Function.surjective.of_comp_iff 2021-07-09 12:30:39-04:00 9a4a3ba feat(Data/Int): port data.int.basic from the lean3 prelude (#23) * port lean3 core's int/basic.lean * refactor(Int): undo my strange naming * add coe_nat_inj which I apparantly forgot about * minor cleanup * add missing imports * cleanup proofs, implementing kevin's suggestions ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Group/Defs.lean Added Mathlib/Data/Int/Basic.lean + theorem Int.add_assoc_aux1 + theorem Int.add_assoc_aux2 + theorem Int.eq_x_or_neg + theorem Int.eq_zero_of_nat_abs_eq_zero + def Int.fdiv + def Int.fmod + def Int.gcd + theorem Int.mul_neg_succ_of_nat_neg_succ_of_nat + def Int.nat_abs + theorem Int.nat_abs_eq + theorem Int.nat_abs_mul_self + theorem Int.nat_abs_neg + theorem Int.nat_abs_of_nat + theorem Int.nat_abs_one + theorem Int.nat_abs_pos_of_ne_zero + theorem Int.nat_abs_zero + def Int.nat_mod + theorem Int.neg_neg_of_nat_succ + def Int.neg_of_nat + theorem Int.neg_of_nat_add + theorem Int.neg_of_nat_eq_sub_nat_nat_zero + theorem Int.neg_of_nat_mul_neg_succ_of_nat + theorem Int.neg_of_nat_mul_of_nat + theorem Int.neg_of_nat_of_succ + theorem Int.neg_of_nat_zero + theorem Int.neg_succ_of_nat_add_neg_succ_of_nat + theorem Int.neg_succ_of_nat_add_of_nat + theorem Int.neg_succ_of_nat_coe' + theorem Int.neg_succ_of_nat_coe + theorem Int.neg_succ_of_nat_eq + theorem Int.neg_succ_of_nat_inj_iff + theorem Int.neg_succ_of_nat_mul_neg_of_nat + theorem Int.neg_succ_of_nat_mul_sub_nat_nat + theorem Int.neg_succ_of_nat_of_nat + def Int.nonneg + theorem Int.of_nat_add + theorem Int.of_nat_add_neg_succ_of_nat + theorem Int.of_nat_add_of_nat + theorem Int.of_nat_eq_coe + theorem Int.of_nat_eq_of_nat_iff + theorem Int.of_nat_mul + theorem Int.of_nat_mul_neg_of_nat + theorem Int.of_nat_mul_neg_succ_of_nat + theorem Int.of_nat_mul_of_nat + theorem Int.of_nat_mul_sub_nat_nat + theorem Int.of_nat_one + theorem Int.of_nat_sub + theorem Int.of_nat_succ + theorem Int.of_nat_zero + def Int.quot + def Int.rem + def Int.sign + theorem Int.sign_mul_nat_abs + theorem Int.sign_neg_one + theorem Int.sign_one + theorem Int.sign_zero + def Int.sub_nat_nat + theorem Int.sub_nat_nat_add + theorem Int.sub_nat_nat_add_add + theorem Int.sub_nat_nat_add_left + theorem Int.sub_nat_nat_add_neg_succ_of_nat + theorem Int.sub_nat_nat_add_right + theorem Int.sub_nat_nat_elim + theorem Int.sub_nat_nat_of_le + theorem Int.sub_nat_nat_of_lt + theorem Int.sub_nat_nat_of_sub_eq_succ + theorem Int.sub_nat_nat_of_sub_eq_zero + theorem Int.sub_nat_nat_sub + theorem Int.sub_nat_self + def Int.to_nat + theorem Int.to_nat_sub 2021-07-06 12:21:07+02:00 93b0fef Update Lean version. ESTIMATED CHANGES Modified Mathlib/Data/Equiv/Basic.lean Modified Mathlib/Function.lean Modified Mathlib/Set.lean Modified leanpkg.toml 2021-07-02 18:14:36-04:00 dc3a995 feat(data/nat/gcd.lean): port from Lean 3 (except for pow_dvd_pow_iff) (#20) * port data/nat/gcd.lean (except for pow_dvd_pow_iff) * minor touchup * move Dvd class and notation to top level file, like Mem * add copyright header * add missing imports * gcd_induction -> gcd.induction * simplify usages of gcd.induction via the 'induction' tactic * remove unused import * tiny simplification of gcd_rec proof * use eq_zero_of_mul_eq_zero ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Data/Nat/Basic.lean + theorem Nat.eq_of_mul_eq_mul_right Added Mathlib/Data/Nat/Gcd.lean + theorem Nat.coprime.coprime_div_left + theorem Nat.coprime.coprime_div_right + theorem Nat.coprime.coprime_dvd_left + theorem Nat.coprime.coprime_dvd_right + theorem Nat.coprime.coprime_mul_left + theorem Nat.coprime.coprime_mul_left_right + theorem Nat.coprime.coprime_mul_right + theorem Nat.coprime.coprime_mul_right_right + theorem Nat.coprime.dvd_of_dvd_mul_left + theorem Nat.coprime.dvd_of_dvd_mul_right + theorem Nat.coprime.eq_one_of_dvd + theorem Nat.coprime.gcd_both + theorem Nat.coprime.gcd_eq_one + theorem Nat.coprime.gcd_left + theorem Nat.coprime.gcd_mul + theorem Nat.coprime.gcd_mul_left_cancel + theorem Nat.coprime.gcd_mul_left_cancel_right + theorem Nat.coprime.gcd_mul_right_cancel + theorem Nat.coprime.gcd_mul_right_cancel_right + theorem Nat.coprime.gcd_right + theorem Nat.coprime.mul + theorem Nat.coprime.mul_dvd_of_dvd_of_dvd + theorem Nat.coprime.mul_right + theorem Nat.coprime.pow + theorem Nat.coprime.pow_left + theorem Nat.coprime.pow_right + theorem Nat.coprime.symm + def Nat.coprime + theorem Nat.coprime_comm + theorem Nat.coprime_div_gcd_div_gcd + theorem Nat.coprime_iff_gcd_eq_one + theorem Nat.coprime_mul_iff_left + theorem Nat.coprime_mul_iff_right + theorem Nat.coprime_one_left + theorem Nat.coprime_one_left_iff + theorem Nat.coprime_one_right + theorem Nat.coprime_one_right_iff + theorem Nat.coprime_self + theorem Nat.coprime_zero_left + theorem Nat.coprime_zero_right + theorem Nat.dvd_antisymm + theorem Nat.dvd_gcd + theorem Nat.dvd_gcd_iff + theorem Nat.dvd_iff_mod_eq_zero + theorem Nat.dvd_lcm_left + theorem Nat.dvd_lcm_right + theorem Nat.dvd_mod_iff + theorem Nat.dvd_of_mod_eq_zero + theorem Nat.dvd_sub + theorem Nat.eq_one_of_dvd_one + theorem Nat.eq_zero_of_gcd_eq_zero_left + theorem Nat.eq_zero_of_gcd_eq_zero_right + theorem Nat.exists_coprime' + theorem Nat.exists_coprime + theorem Nat.gcd.induction + theorem Nat.gcd_add_mul_self + theorem Nat.gcd_assoc + theorem Nat.gcd_comm + theorem Nat.gcd_div + theorem Nat.gcd_dvd + theorem Nat.gcd_dvd_gcd_mul_left + theorem Nat.gcd_dvd_gcd_mul_left_right + theorem Nat.gcd_dvd_gcd_mul_right + theorem Nat.gcd_dvd_gcd_mul_right_right + theorem Nat.gcd_dvd_gcd_of_dvd_left + theorem Nat.gcd_dvd_gcd_of_dvd_right + theorem Nat.gcd_dvd_left + theorem Nat.gcd_dvd_right + theorem Nat.gcd_eq_left + theorem Nat.gcd_eq_left_iff_dvd + theorem Nat.gcd_eq_right + theorem Nat.gcd_eq_right_iff_dvd + theorem Nat.gcd_eq_zero_iff + theorem Nat.gcd_gcd_self_left_left + theorem Nat.gcd_gcd_self_left_right + theorem Nat.gcd_gcd_self_right_left + theorem Nat.gcd_gcd_self_right_right + theorem Nat.gcd_le_left + theorem Nat.gcd_le_right + theorem Nat.gcd_mul_dvd_mul_gcd + theorem Nat.gcd_mul_gcd_of_coprime_of_mul_eq_mul + theorem Nat.gcd_mul_lcm + theorem Nat.gcd_mul_left + theorem Nat.gcd_mul_left_left + theorem Nat.gcd_mul_left_right + theorem Nat.gcd_mul_right + theorem Nat.gcd_mul_right_left + theorem Nat.gcd_mul_right_right + theorem Nat.gcd_one_right + theorem Nat.gcd_pos_of_pos_left + theorem Nat.gcd_pos_of_pos_right + theorem Nat.gcd_rec + def Nat.lcm + theorem Nat.lcm_assoc + theorem Nat.lcm_comm + theorem Nat.lcm_dvd + theorem Nat.lcm_ne_zero + theorem Nat.lcm_one_left + theorem Nat.lcm_one_right + theorem Nat.lcm_self + theorem Nat.lcm_zero_left + theorem Nat.lcm_zero_right + theorem Nat.le_of_dvd + theorem Nat.mod_eq_zero_of_dvd + theorem Nat.not_coprime_of_dvd_of_dvd + theorem Nat.pos_of_dvd_of_pos + def Nat.prod_dvd_and_dvd_of_dvd_prod Added Mathlib/Dvd.lean 2021-07-02 18:11:53-04:00 25e4f06 feat (Algebra): port init.algebra.order (#18) * feat (Algebra): port init.algebra.order * capitalise sections and classes * capitalise sections and classes pt 2 I don't think I commited everything properly first time round. * add missing import * change class fields capitalisation ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Algebra/Order.lean + theorem Decidable.eq_or_lt_of_le + theorem Decidable.le_iff_lt_or_eq + theorem Decidable.lt_or_eq_of_le + theorem eq_or_lt_of_not_lt + theorem ge_trans + theorem gt_irrefl + theorem gt_of_ge_of_gt + theorem gt_of_gt_of_ge + theorem gt_trans + theorem le_antisymm + theorem le_antisymm_iff + theorem le_iff_lt_or_eq + theorem le_imp_le_of_lt_imp_lt + theorem le_not_le_of_lt + theorem le_of_eq + theorem le_of_eq_or_lt + theorem le_of_lt + theorem le_of_lt_or_eq + theorem le_of_not_ge + theorem le_of_not_gt + theorem le_of_not_le + theorem le_of_not_lt + theorem le_or_gt + theorem le_or_lt + theorem le_refl + theorem le_total + theorem le_trans + theorem lt_asymm + def lt_by_cases + theorem lt_iff_le_not_le + theorem lt_iff_not_ge + theorem lt_irrefl + theorem lt_of_le_not_le + theorem lt_of_le_of_lt + theorem lt_of_le_of_ne + theorem lt_of_lt_of_le + theorem lt_of_not_ge + theorem lt_or_eq_of_le + theorem lt_or_ge + theorem lt_or_gt_of_ne + theorem lt_or_le + theorem lt_trans + theorem lt_trichotomy + theorem ne_iff_lt_or_gt + theorem ne_of_gt + theorem ne_of_lt + theorem not_le + theorem not_le_of_gt + theorem not_lt + theorem not_lt_of_ge + theorem not_lt_of_gt 2021-07-02 18:05:30-04:00 79208b0 feat(Algebra/Group/Defs): add DivInvMonoid (#7) * feat(Algebra/*): beginning of algebra heirarchy * update -- instance Ring to Semiring now working * add group proofs * now finished everything in Sebastien's suggested list * feat(Mathlib/Algebra/Group): add DivInvMonoid and SubNegMonoid * add comment ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Defs.lean Modified Mathlib/Algebra/GroupWithZero/Defs.lean 2021-06-29 20:08:42+02:00 7f871d7 Update Lean version. ESTIMATED CHANGES Modified Mathlib/Tactic/Block.lean Modified Mathlib/Tactic/NoMatch.lean Modified leanpkg.toml 2021-06-22 14:47:27+02:00 c1e1d52 list(basic): Add repeat & repeat succ (#16) ESTIMATED CHANGES Modified Mathlib/Data/List/Basic.lean + def List.repeat + def List.repeatSucc 2021-06-22 14:44:40+02:00 2bc8c22 Expand readme ESTIMATED CHANGES Modified README.md 2021-06-22 14:41:33+02:00 933e72a Create README.md (#19) ESTIMATED CHANGES Added README.md 2021-06-22 13:18:12+02:00 e49a034 bump lean version ESTIMATED CHANGES Modified leanpkg.toml 2021-06-21 20:37:33+02:00 988e7d3 fix: `matches` is now a keyword (#21) ESTIMATED CHANGES Modified Mathlib/Tactic/PrintPrefix.lean 2021-06-09 15:19:50+02:00 46fcadf update lean version ESTIMATED CHANGES Modified leanpkg.toml 2021-06-09 11:55:34+02:00 f8294a6 feat (Data/Equiv/Basic): add `equiv` (#13) * add lemma macro * port init/function * equiv is an equivalence relation * a bit more equiv * functors send equivs to equivs * more tinkering * add changes suggested by review * add missing imports ESTIMATED CHANGES Modified Mathlib.lean Added Mathlib/Data/Equiv/Basic.lean + theorem equiv.apply_symm_apply + theorem equiv.coe_fn_mk + def equiv.perm + def equiv.refl + theorem equiv.self_comp_symm + def equiv.symm + theorem equiv.symm_apply_apply + theorem equiv.symm_comp_self + def equiv.trans + structure equiv Added Mathlib/Data/Equiv/Functor.lean + def Functor.map_equiv + theorem Functor.map_equiv_apply + theorem Functor.map_equiv_symm_apply + theorem Functor.map_map Added Mathlib/Function.lean + def Function.app + theorem Function.bijective.comp + def Function.bijective + theorem Function.bijective_id + def Function.combine + theorem Function.comp.assoc + theorem Function.comp.left_id + theorem Function.comp.right_id + theorem Function.comp_app + theorem Function.comp_const_right + def Function.comp_left + def Function.comp_right + def Function.curry + theorem Function.curry_uncurry + theorem Function.has_left_inverse.injective + def Function.has_left_inverse + theorem Function.has_right_inverse.surjective + def Function.has_right_inverse + theorem Function.injective.comp + def Function.injective + theorem Function.injective_id + theorem Function.left_id + theorem Function.left_inverse.injective + def Function.left_inverse + theorem Function.left_inverse_of_surjective_of_right_inverse + def Function.on_fun + theorem Function.right_id + theorem Function.right_inverse.surjective + def Function.right_inverse + theorem Function.right_inverse_of_injective_of_left_inverse + theorem Function.surjective.comp + def Function.surjective + theorem Function.surjective_id + def Function.swap + def Function.uncurry + theorem Function.uncurry_curry Added Mathlib/Logic/Function/Basic.lean + theorem Function.left_inverse.comp + theorem Function.right_inverse.comp 2021-06-07 17:28:40+02:00 19f26fc chore: update lean version ESTIMATED CHANGES Modified leanpkg.toml 2021-06-07 17:28:40+02:00 ce54fae ci: check that all files are imported ESTIMATED CHANGES Modified .github/workflows/build.yml Modified Mathlib.lean 2021-06-03 21:36:27+02:00 ac54aaa add Mem notation for lists (#12) * add Mem notation for lists * delete comment ESTIMATED CHANGES Modified Mathlib/Data/List/Basic.lean + theorem List.join_cons + theorem List.join_nil + theorem List.map_cons + theorem List.map_nil +/- theorem List.mem_bind + theorem List.mem_cons +/- theorem List.mem_map + theorem List.mem_nil 2021-06-03 21:22:28+02:00 302ad90 ci: enable actions on prs Kevin keeps opening PRs from his fork which doesn't have GH actions enabled. ESTIMATED CHANGES Modified .github/workflows/build.yml 2021-06-03 10:22:47+02:00 6262928 chore: update lean version ESTIMATED CHANGES Modified leanpkg.toml 2021-06-02 13:03:47+02:00 5b04a77 chore: use syntax matcher ESTIMATED CHANGES Modified Mathlib/Tactic/Spread.lean 2021-06-02 12:27:00+02:00 b7abf37 feat: add spread syntax ESTIMATED CHANGES Modified Mathlib.lean Modified Mathlib/Algebra/Group/Defs.lean Modified Mathlib/Algebra/Ring/Basic.lean Added Mathlib/Tactic/Spread.lean + def Lean.Term.Elab.elabSpread 2021-06-01 13:25:27+02:00 2f99b7d chore: remove unnecessary variable statement ESTIMATED CHANGES Modified Mathlib/Set.lean 2021-06-01 13:04:46+02:00 2614fd4 refactor: remove some explicit instance names. ESTIMATED CHANGES Modified Mathlib/Algebra/Group/Defs.lean Modified Mathlib/Algebra/Ring/Basic.lean 2021-05-31 22:35:05+02:00 6542db3 chore: update to current Lean ESTIMATED CHANGES Modified Mathlib.lean - theorem foo Modified Mathlib/Algebra/Ring/Basic.lean Modified Mathlib/Data/Array/Basic.lean Modified Mathlib/Data/Nat/Basic.lean Modified Mathlib/Tactic/NormNum.lean Modified leanpkg.toml 2021-05-31 22:21:08+02:00 debfaf3 refactor: remove experimental plugin again ESTIMATED CHANGES Deleted Makefile Deleted Mathlib/Plugin.lean Deleted rec_deps.sh 2021-05-26 22:07:40+02:00 99f436b Improve module docstring for Set.lean (#10) ESTIMATED CHANGES Modified Mathlib/Set.lean 2021-05-26 21:19:18+02:00 7ed9e11 feat(Set): Add set notation for finite sets (#9) * add set notation * update * Delete TODO * deleted extra case * Update * update * Delete TODO again ESTIMATED CHANGES Modified Mathlib/Set.lean + def Set.insertUnexpander + def Set.singletonUnexpander 2021-05-25 13:38:19+02:00 50610c3 feat(Set): port Lean 3 init.data.set (#8) * add all Lean 3 set stuff * pull out mem notation into separate file * add module docstring * apply suggestions from code review * change to new syntax for structures ESTIMATED CHANGES Added Mathlib/Mem.lean Added Mathlib/Set.lean + def Set.compl + def Set.image + def Set.powerset + def Set.sUnion + def Set.univ + def Set + def setOf 2021-05-19 15:46:28+02:00 e5cd871 feat(Tactic/OpenPrivate): allow specifying module name ESTIMATED CHANGES Modified Mathlib/Tactic/OpenPrivate.lean +/- def Lean.Elab.Command.elabOpenPrivateLike + def Lean.Environment.declsInModuleIdx + def Lean.Environment.moduleIdxForModule? 2021-05-19 15:26:26+02:00 d746c16 feat(Tactic/SudoSetOption): add sudo set_option command ESTIMATED CHANGES Added Mathlib/Tactic/SudoSetOption.lean 2021-05-19 15:16:43+02:00 9e84bcf chore(.vscode): make copyright snippet available ESTIMATED CHANGES Modified .vscode/copyright.code-snippets 2021-05-18 17:20:53-04:00 c5bc601 chore(leanpkg.toml): update nightly ESTIMATED CHANGES Modified leanpkg.toml 2021-05-15 12:52:45+10:00 1dd7324 chore(.vscode): add vscode files ESTIMATED CHANGES Added .vscode/copyright.code-snippets Added .vscode/settings.json 2021-05-14 12:59:40-07:00 adb0f6e feat(Algebra/*): beginning of algebra hierarchy (#4) ESTIMATED CHANGES Added Mathlib/Algebra/Group/Basic.lean + theorem add_add_add_comm + theorem add_left_comm + theorem add_right_comm + theorem add_right_eq_self + theorem mul_left_comm + theorem mul_mul_mul_comm + theorem mul_right_comm + theorem self_eq_add_right Added Mathlib/Algebra/Group/Defs.lean + theorem add_assoc + theorem add_comm + theorem add_left_cancel + theorem add_left_cancel_iff + theorem add_left_inj + theorem add_left_neg + theorem add_neg_cancel_right + theorem add_neg_self + theorem add_right_cancel + theorem add_right_cancel_iff + theorem add_right_inj + theorem add_right_neg + theorem add_zero + def gpow_rec + def gsmul_rec + theorem inv_eq_of_mul_eq_one + theorem inv_inv + theorem inv_mul_cancel_left + theorem inv_mul_self + theorem left_inv_eq_right_inv + theorem left_neg_eq_right_neg + theorem mul_assoc + theorem mul_comm + theorem mul_inv_cancel_right + theorem mul_inv_self + theorem mul_left_cancel + theorem mul_left_cancel_iff + theorem mul_left_inj + theorem mul_left_inv + theorem mul_one + theorem mul_right_cancel + theorem mul_right_cancel_iff + theorem mul_right_inj + theorem mul_right_inv + theorem neg_add_cancel_left + theorem neg_add_self + theorem neg_eq_of_add_eq_zero + theorem neg_neg + def npow_rec + def nsmul_rec + theorem one_mul + theorem zero_add Added Mathlib/Algebra/GroupWithZero/Defs.lean Added Mathlib/Algebra/Ring/Basic.lean 2021-05-14 00:28:13-04:00 8f76c3b feat(Util/Export): export format generator ESTIMATED CHANGES Added Mathlib/Util/Export.lean + structure Lean.Export.Alloc + inductive Lean.Export.Entry + structure Lean.Export.State + def Lean.Export.alloc + def Lean.Export.biStr + def Lean.Export.exportLevel + def Lean.Export.exportName + def Lean.Export.runExportM 2021-05-13 20:13:11-04:00 773594c feat(Tactic/NormNum): basic normNum from zulip ESTIMATED CHANGES Modified Mathlib/Plugin.lean Added Mathlib/Tactic/NormNum.lean + theorem Lean.Meta.NormNum.ofNat_add + theorem Lean.Meta.NormNum.ofNat_mul + def Lean.Meta.mkOfNatLit + def Lean.Tactic.evalNormNum 2021-05-12 18:20:22-04:00 79ee5f9 fix(Data/Array/Basic): fix build ESTIMATED CHANGES Modified Mathlib/Data/Array/Basic.lean Modified Mathlib/Data/List/Basic.lean + theorem List.drop_eq_nil_of_le' +/- theorem List.drop_eq_nil_of_le 2021-05-12 12:29:56-04:00 0b55162 fix(Tactic/PrintPrefix): fix attribution ESTIMATED CHANGES Modified Mathlib/Tactic/PrintPrefix.lean 2021-05-11 23:07:27-04:00 851f46b fix(Tactic/Basic): change already exists ESTIMATED CHANGES Modified Mathlib/Tactic/Basic.lean 2021-05-11 23:07:07-04:00 21ff8c5 feat(Data/List): versions of list functions with lean 3 style defeq ESTIMATED CHANGES Modified Mathlib/Data/List/Basic.lean + def List.append' + theorem List.append'_eq_append + theorem List.concat_eq_append' +/- theorem List.concat_eq_append +/- theorem List.drop_eq_nil_of_le + def List.length' + theorem List.length'_eq_length 2021-05-11 21:05:21-04:00 6470fee feat(Data/Array/Basic): add toArrayLit_eq from doomed PR lean#390 ESTIMATED CHANGES Added Mathlib/Data/Array/Basic.lean + theorem Array.data_toArray + theorem Array.ext' + theorem Array.toArrayLit_eq + theorem List.toArrayAux_data + theorem List.toArray_data Modified Mathlib/Data/List/Basic.lean + theorem List.concat_eq_append + theorem List.drop_eq_nil_of_le + theorem List.get_cons_drop 2021-05-11 20:55:06-04:00 1b5782b refactor(Data/Nat/Basic): trying out blocks It really does cause parser issues modulo lean#451, but I still think it's better than the alternative and we can remove the parens once it's fixed. ESTIMATED CHANGES Modified Mathlib/Data/Nat/Basic.lean 2021-05-11 20:48:48-04:00 d8806d9 fix(Tactic/Basic): fix transitivity parser ESTIMATED CHANGES Modified Mathlib/Data/Nat/Basic.lean Modified Mathlib/Tactic/Basic.lean 2021-05-11 20:46:35-04:00 f222bad chore(*): update lean ESTIMATED CHANGES Modified Mathlib/Data/Nat/Basic.lean Modified leanpkg.toml 2021-05-11 20:37:07-04:00 c0334ec chore(Tactic/Block): add note about lean#451 ESTIMATED CHANGES Modified Mathlib/Tactic/Block.lean 2021-05-10 15:48:26-04:00 8ced11c feat(Tactic/Block): block structuring tactic ESTIMATED CHANGES Modified Mathlib/Data/Nat/Basic.lean Modified Mathlib/Tactic/Basic.lean Added Mathlib/Tactic/Block.lean + def Lean.Elab.Tactic.closeAllOrAdmit + def Lean.Elab.Tactic.focusAndBlock Modified Mathlib/Tactic/NoMatch.lean Modified Mathlib/Tactic/Split.lean - def Lean.Elab.Tactic.evalSplit 2021-05-10 14:03:06-04:00 935b55c fix(Tactic): add headers ESTIMATED CHANGES Modified Mathlib/Tactic/Basic.lean Modified Mathlib/Tactic/Split.lean 2021-05-10 14:02:52-04:00 4991f5e feat(Tactic/NoMatch): more uniform null pattern matches ESTIMATED CHANGES Added Mathlib/Tactic/NoMatch.lean + def Lean.Elab.Term.elabNoMatch' 2021-05-10 14:00:35-04:00 622bcad feat(Tactic/PrintPrefix): better error messages ESTIMATED CHANGES Modified Mathlib/Tactic/PrintPrefix.lean - structure FindOptions + def Lean.Elab.Command.elabPrintPrefix + structure Lean.Meta.FindOptions + def Lean.Meta.find + def Lean.Meta.findCore - def find - def findCore 2021-05-10 13:57:13-04:00 00a0e78 feat(Tactic/OpenPrivate): make export private also open ESTIMATED CHANGES Modified Mathlib/Tactic/OpenPrivate.lean 2021-05-10 11:03:31-04:00 81e736e feat(Tactic/PrintPrefix): #print prefix command from Kevin Buzzard ESTIMATED CHANGES Added Mathlib/Tactic/PrintPrefix.lean + structure FindOptions + def find + def findCore 2021-05-10 10:20:38-04:00 71241b3 feat(Tactic/OpenPrivate): Add `open private` command ESTIMATED CHANGES Added Mathlib/Tactic/OpenPrivate.lean + def Lean.Elab.Command.elabExportPrivate + def Lean.Elab.Command.elabOpenPrivate + def Lean.Elab.Command.elabOpenPrivateLike + def Lean.Meta.collectPrivateIn Modified Mathlib/Tactic/Split.lean 2021-05-10 07:26:09-04:00 31c2297 feat(Tactic/Basic): add variables command It works, but also yells at you ESTIMATED CHANGES Modified Mathlib/Tactic/Basic.lean + def elabVariables 2021-05-10 06:38:06-04:00 8464aba feat(Tactic/Split): add split tactic ESTIMATED CHANGES Modified Mathlib/Data/Nat/Basic.lean Modified Mathlib/Tactic/Basic.lean Added Mathlib/Tactic/Split.lean + def Lean.Elab.Tactic.evalSplit + def Lean.Meta.split 2021-05-10 11:21:40+02:00 e3af066 Bump Lean version. ESTIMATED CHANGES Modified leanpkg.toml 2021-05-10 11:21:08+02:00 cac3274 Disable plugin temporarily. ESTIMATED CHANGES Modified Makefile 2021-05-10 04:19:56-04:00 c993c93 import init.data.nat.lemmas ESTIMATED CHANGES Modified Mathlib/Data/Nat/Basic.lean +/- theorem Nat.Up.WF +/- theorem Nat.Up.next +/- def Nat.Up + theorem Nat.add_div_left + theorem Nat.add_div_right + theorem Nat.add_mod_left + theorem Nat.add_mod_right + theorem Nat.add_mul_div_left + theorem Nat.add_mul_div_right + theorem Nat.add_mul_mod_self_left + theorem Nat.add_mul_mod_self_right + theorem Nat.add_one_ne_zero + theorem Nat.add_sub_of_le + def Nat.discriminate + theorem Nat.div_eq_of_lt + theorem Nat.div_eq_sub_div + theorem Nat.div_lt_iff_lt_mul + theorem Nat.div_lt_self + theorem Nat.div_mul_le_self + def Nat.eq_of_beq_eq_true + theorem Nat.eq_of_mul_eq_mul_left + theorem Nat.eq_zero_of_add_eq_zero + theorem Nat.eq_zero_of_add_eq_zero_left + theorem Nat.eq_zero_of_add_eq_zero_right + def Nat.eq_zero_of_le_zero + theorem Nat.eq_zero_of_mul_eq_zero + theorem Nat.eq_zero_or_eq_succ_pred + theorem Nat.eq_zero_or_pos + theorem Nat.exists_eq_succ_of_ne_zero + def Nat.le_add_left + def Nat.le_add_right + theorem Nat.le_div_iff_mul_le + theorem Nat.le_lt_antisymm + theorem Nat.le_of_le_of_sub_le_sub_right + def Nat.le_of_lt_succ + def Nat.le_of_succ_le + def Nat.le_of_succ_le_succ + def Nat.le_step + theorem Nat.le_sub_iff_add_le + def Nat.le_succ + def Nat.le_succ_of_le + theorem Nat.le_succ_of_pred_le + theorem Nat.lt_le_antisymm + def Nat.lt_of_succ_le + def Nat.lt_of_succ_lt + def Nat.lt_or_eq_of_le_succ + theorem Nat.lt_succ_of_lt + def Nat.lt_succ_self + theorem Nat.mod_add_div + theorem Nat.mul_div_le + theorem Nat.mul_div_left + theorem Nat.mul_div_right + theorem Nat.mul_mod_left + theorem Nat.mul_mod_mul_left + theorem Nat.mul_mod_mul_right + theorem Nat.mul_mod_right + theorem Nat.mul_pred_left + theorem Nat.mul_pred_right + theorem Nat.mul_sub_div + def Nat.nat_zero_eq_zero + def Nat.ne_of_beq_eq_false + def Nat.not_lt_zero + def Nat.not_succ_le_self + theorem Nat.not_succ_le_zero + theorem Nat.one_add + theorem Nat.one_pos + theorem Nat.one_succ_zero + def Nat.pos_pos_of_pos + def Nat.pow_le_pow_of_le_left + def Nat.pow_le_pow_of_le_right + def Nat.pow_succ + def Nat.pow_zero + theorem Nat.pred_inj + def Nat.pred_le + def Nat.pred_le_pred + def Nat.pred_lt + theorem Nat.pred_lt_pred + theorem Nat.pred_succ + theorem Nat.pred_zero + theorem Nat.sub_add_min_cancel + theorem Nat.sub_eq_sub_min + theorem Nat.sub_eq_zero_of_le + def Nat.sub_induction + def Nat.sub_le + def Nat.sub_lt + theorem Nat.sub_lt_self + theorem Nat.sub_lt_succ + theorem Nat.sub_mul_div + theorem Nat.sub_mul_mod + theorem Nat.sub_one + theorem Nat.sub_one_sub_lt + theorem Nat.sub_self_add + theorem Nat.succ_add_eq_succ_add + def Nat.succ_eq_add_one + def Nat.succ_le_of_lt + def Nat.succ_le_succ + theorem Nat.succ_mul_succ_eq + theorem Nat.succ_ne_self + def Nat.succ_ne_zero + def Nat.succ_pos + theorem Nat.succ_pred_eq_of_pos + theorem Nat.succ_sub + theorem Nat.succ_sub_one + theorem Nat.succ_sub_sub_succ + def Nat.two_step_induction + def Nat.zero_eq + def Nat.zero_le + def Nat.zero_lt_succ Modified Mathlib/Logic/Basic.lean + theorem Decidable.not_and - def Decidable.not_and + def WellFounded.fix' Modified Mathlib/Tactic/Basic.lean 2021-05-09 22:49:15-04:00 b4c2d60 feat(Logic/Basic): import init.logic ESTIMATED CHANGES Modified Mathlib/Logic/Basic.lean + def And.elim + theorem And.imp + theorem And.symm + def Decidable.by_cases + def Decidable.by_contradiction + def Decidable.not_and + def Decidable.of_not_not + theorem Eq.to_iff + theorem Exists.imp + theorem Exists.nonempty + theorem ExistsUnique.exists + theorem ExistsUnique.intro + theorem ExistsUnique.unique + def ExistsUnique + def Iff.elim + theorem Ne.def + def Not.elim + theorem Not.intro + def Or.by_cases' + def Or.by_cases + theorem Or.elim + theorem Or.imp + theorem Or.imp_left +/- theorem Or.imp_right + theorem Or.neg_resolve_left + theorem Or.neg_resolve_right + theorem Or.resolve_left + theorem Or.resolve_right +/- theorem Or.symm + theorem and_assoc + theorem and_comm + theorem and_congr + theorem and_congr_right + theorem and_false + theorem and_iff_left + theorem and_iff_right + theorem and_left_comm + theorem and_not_self + theorem and_self + theorem and_true + def cast_eq + def cast_heq + theorem cast_proof_irrel + def congr_arg + def congr_fun + theorem dif_eq_if + def dif_neg + def dif_pos + theorem eq_comm + def eq_of_heq + def eq_rec_heq + theorem eq_self_iff_true + theorem exists_congr + theorem exists_unique_congr + theorem false_and + theorem false_iff + theorem false_imp_iff + def false_of_ne + theorem false_or + theorem forall_congr + theorem forall_not_of_not_exists + def heq_of_eq + def heq_of_eq_of_heq + theorem heq_of_eq_rec_left + theorem heq_of_eq_rec_right + def heq_of_heq_of_eq + theorem heq_self_iff_true + theorem if_false + def if_neg + def if_pos + theorem if_true + theorem iff_comm + theorem iff_congr + theorem iff_false + theorem iff_false_intro + theorem iff_iff_implies_and_implies + theorem iff_not_self + theorem iff_self + theorem iff_true + theorem iff_true_intro + theorem imp_congr + theorem imp_congr_ctx + theorem imp_congr_left + theorem imp_congr_right + theorem imp_true_iff + theorem ite_id + def ne_false_of_self + theorem ne_self_iff_false + def ne_true_of_not + theorem neq_of_not_iff + theorem not_and_self + theorem not_congr + def not_false + theorem not_false_iff + theorem not_iff_false_intro + theorem not_iff_self + theorem not_not_em + theorem not_not_intro + theorem not_not_not + theorem not_of_eq_false + theorem not_of_iff_false + theorem not_or + theorem not_or_intro + theorem not_true + def of_eq_true + theorem of_heq_true + theorem of_iff_true + theorem optParam_eq +/- theorem or_assoc + theorem or_comm + theorem or_congr + theorem or_false + theorem or_left_comm + theorem or_self + theorem or_true + theorem plift.down_up + theorem plift.up_down + structure plift + def proof_irrel + theorem true_and + theorem true_iff + def true_ne_false + theorem true_or + def type_eq_of_heq + theorem ulift.down_up + theorem ulift.up_down + structure ulift.{r, Modified Mathlib/Tactic/Basic.lean 2021-05-09 20:58:23+02:00 2e16b86 Add a LICENSE ESTIMATED CHANGES Added LICENSE 2021-05-09 12:29:45+02:00 6c70d11 refactor(leanpkg.toml): add plugin support ESTIMATED CHANGES Modified .github/workflows/build.yml Added Makefile Modified Mathlib.lean Modified Mathlib/Logic/Basic.lean Added Mathlib/Plugin.lean Renamed prelude/MathlibPrelude/Tactic/Basic.lean to Mathlib/Tactic/Basic.lean Modified leanpkg.toml Deleted prelude/MathlibPrelude.lean Deleted prelude/leanpkg.toml Added rec_deps.sh 2021-05-09 11:56:21+02:00 ea7fbc9 feat(.github): add github actions ci ESTIMATED CHANGES Added .github/workflows/build.yml 2021-05-09 05:35:23-04:00 b45b7b6 feat(*): dumping my ForMathlib collection ESTIMATED CHANGES Added Mathlib/Data/ByteArray.lean + def ByteArray.toSlice + def ByteArray.toSliceT + def ByteSlice.forIn.loop + def ByteSlice.getOp + def ByteSlice.toArray + def ByteSlice.toString + structure ByteSlice + def ByteSliceT.getOp + def ByteSliceT.size + def ByteSliceT.toSlice + structure ByteSliceT + def String.toAsciiByteArray.loop + def String.toAsciiByteArray Added Mathlib/Data/Char.lean + def Char.toUInt8 + theorem Char.utf8Size_pos + theorem String.csize_pos Added Mathlib/Data/List/Basic.lean + def List.mem + theorem List.mem_append + theorem List.mem_bind + theorem List.mem_join + theorem List.mem_map Added Mathlib/Data/Nat/Basic.lean + theorem Nat.Up.WF + theorem Nat.Up.next + def Nat.Up Added Mathlib/Data/UInt.lean + theorem Fin.val_eq_of_lt + theorem UInt32.val_eq_of_lt + def UInt8.isAlpha + def UInt8.isAlphanum + def UInt8.isDigit + def UInt8.isLower + def UInt8.isUpper + def UInt8.toChar + theorem UInt8.toChar_aux Modified Mathlib/Logic/Basic.lean + theorem Or.imp_right + theorem Or.symm + theorem or_assoc 2021-05-09 10:28:11+02:00 482681e fix(*): fix imports ESTIMATED CHANGES Modified Mathlib/Logic/Basic.lean Modified prelude/MathlibPrelude.lean 2021-05-09 10:19:30+02:00 eeee210 fix(*): get everything to build ESTIMATED CHANGES Modified .gitignore Renamed src/Test.lean to Mathlib.lean Added Mathlib/Logic/Basic.lean Modified leanpkg.toml Deleted prelude/Main.lean Added prelude/MathlibPrelude.lean Renamed prelude/Tactic/Basic.lean to prelude/MathlibPrelude/Tactic/Basic.lean Modified prelude/leanpkg.toml 2021-05-09 03:57:19-04:00 9d3f14b fix(prelude): add leanpkg.toml ESTIMATED CHANGES Added prelude/leanpkg.toml 2021-05-09 03:51:43-04:00 1dc6ddd feat(*): initial commit ESTIMATED CHANGES